<?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>183448</bug_id>
          
          <creation_ts>2018-03-08 05:25:17 -0800</creation_ts>
          <short_desc>[GTK][WPE] Add API to convert between DOM and JSCValue</short_desc>
          <delta_ts>2018-03-26 13:56:42 -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>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>136989</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Ross Kirsling">ross.kirsling</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>ross.kirsling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1404713</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-03-08 05:25:17 -0800</bug_when>
    <thetext>For GTK+ port we will deprecate most of the DOM bindings API, we will leave only a few classes Node, Element, Document, etc. and even for those most of their methods and properties will be deprecated. We will only leave API for things that can&apos;t be done with JavaScript.
For WPE we will add a minimum DOM API, that will allow us to expose the web extensions API we currently disable because it uses DOM bindings.

In both cases we need a way to get a JSCValue from a WebKitDOMObject and every DOM object will also provide a factory method to create an instance from a JSCValue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1404716</commentid>
    <comment_count>1</comment_count>
      <attachid>335294</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-03-08 05:31:24 -0800</bug_when>
    <thetext>Created attachment 335294
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406965</commentid>
    <comment_count>2</comment_count>
      <attachid>335931</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-03-16 04:29:58 -0700</bug_when>
    <thetext>Created attachment 335931
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1407185</commentid>
    <comment_count>3</comment_count>
      <attachid>335931</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-03-16 17:41:07 -0700</bug_when>
    <thetext>Comment on attachment 335931
WIP patch

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

&gt; Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitFrame.cpp:27
&gt;  #include &lt;jsc/JSCContextPrivate.h&gt;

Alphabetize jsc below WebCore and above wtf: all the uppercase headers come first.

&gt; Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitFrame.cpp:154
&gt; +JSCValue* webkit_frame_get_js_value_for_dom_object(WebKitFrame* frame, WebKitDOMObject* domObject)
&gt; +{
&gt; +    return webkit_frame_get_js_value_for_dom_object_in_script_world(frame, domObject, webkit_script_world_get_default());
&gt; +}

Would it make sense to force users to explicitly pass a WebKitScriptWorld? Could prevent mistakes?

&gt; Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitFrame.cpp:168
&gt; +        JSC::JSLockHolder lock(exec);

So why is a lock needed here, but not in webkit_dom_note_for_js_value()... because the JSC::ExecState is used?

&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.cpp:47
&gt; +    g_print(&quot;Leaked objects in WebProcess:&quot;);
&gt; +    for (const auto object : s_watchedObjects)
&gt; +        g_print(&quot; %s(%p)&quot;, g_type_name_from_instance(reinterpret_cast&lt;GTypeInstance*&gt;(object)), object);
&gt; +    g_print(&quot;\n&quot;);

This should use g_fprintf and stderr, so that it causes the test to fail.

&gt; Tools/TestWebKitAPI/Tests/WebKitGtk/EditorTest.cpp:34
&gt; +    bool testSelectionchanged(WebKitWebPage* page)

testSelectionChanged</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1407238</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-03-17 02:32:23 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #3)
&gt; Comment on attachment 335931 [details]
&gt; WIP patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=335931&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitFrame.cpp:27
&gt; &gt;  #include &lt;jsc/JSCContextPrivate.h&gt;
&gt; 
&gt; Alphabetize jsc below WebCore and above wtf: all the uppercase headers come
&gt; first.
&gt; 
&gt; &gt; Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitFrame.cpp:154
&gt; &gt; +JSCValue* webkit_frame_get_js_value_for_dom_object(WebKitFrame* frame, WebKitDOMObject* domObject)
&gt; &gt; +{
&gt; &gt; +    return webkit_frame_get_js_value_for_dom_object_in_script_world(frame, domObject, webkit_script_world_get_default());
&gt; &gt; +}
&gt; 
&gt; Would it make sense to force users to explicitly pass a WebKitScriptWorld?
&gt; Could prevent mistakes?

99% of the cases you want to use the default, so this is a convenience function to get the value using the default world and will be documented as such. It&apos;s equivalent to webkit_frame_get_js_context and get_js_context_for_scripot_world.

&gt; &gt; Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitFrame.cpp:168
&gt; &gt; +        JSC::JSLockHolder lock(exec);
&gt; 
&gt; So why is a lock needed here, but not in webkit_dom_note_for_js_value()...
&gt; because the JSC::ExecState is used?

We are creating a new value in the context here to wrap a node, while when getting the wrapped node, we are just querying an existing value. toWrapped is just a jsDynamicCast in the end.

&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.cpp:47
&gt; &gt; +    g_print(&quot;Leaked objects in WebProcess:&quot;);
&gt; &gt; +    for (const auto object : s_watchedObjects)
&gt; &gt; +        g_print(&quot; %s(%p)&quot;, g_type_name_from_instance(reinterpret_cast&lt;GTypeInstance*&gt;(object)), object);
&gt; &gt; +    g_print(&quot;\n&quot;);
&gt; 
&gt; This should use g_fprintf and stderr, so that it causes the test to fail.

No, we don&apos;t want the test to fail on the first error message, we want to see the whole message, the test will fail anyway because we assert right after this.

&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitGtk/EditorTest.cpp:34
&gt; &gt; +    bool testSelectionchanged(WebKitWebPage* page)
&gt; 
&gt; testSelectionChanged

Right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408350</commentid>
    <comment_count>5</comment_count>
      <attachid>336279</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-03-22 07:31:12 -0700</bug_when>
    <thetext>Created attachment 336279
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408352</commentid>
    <comment_count>6</comment_count>
      <attachid>336280</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-03-22 07:34:17 -0700</bug_when>
    <thetext>Created attachment 336280
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408389</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-03-22 09:19:15 -0700</bug_when>
    <thetext>I don&apos;t see what&apos;s making the build to fail with all the warnings, but it builds fine for me locally with current gtk-doc. The warnings are a gtk-doc issue, IMO, see https://bugzilla.gnome.org/show_bug.cgi?id=794590</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408755</commentid>
    <comment_count>8</comment_count>
      <attachid>336280</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-03-23 10:44:00 -0700</bug_when>
    <thetext>Comment on attachment 336280
Patch

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

&gt; Source/WebKit/PlatformWPE.cmake:169
&gt; +    ${WEBKIT_DIR}/WebProcess/InjectedBundle/API/wpe/DOM/WebKitDOMDocument.h
&gt; +    ${WEBKIT_DIR}/WebProcess/InjectedBundle/API/wpe/DOM/WebKitDOMElement.h
&gt; +    ${WEBKIT_DIR}/WebProcess/InjectedBundle/API/wpe/DOM/WebKitDOMNode.h
&gt; +    ${WEBKIT_DIR}/WebProcess/InjectedBundle/API/wpe/DOM/WebKitDOMObject.h

So these are the DOM APIs that will live on undeprecated. I think it worked out OK for WebKitDOMDocument, WebKitDOMNode, and WebKitDOMObject, but I&apos;m quite uncertain about WebKitDOMElement. The former WebKitDOMHTMLInputElement functions that you are providing there seem like hacked-on afterthoughts. Maybe it would make sense to keep WebKitDOMHTMLInputElement undeprecated as well? Are there any other ways we could provide the required functionality?

&gt; Source/WebKit/WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMElement.cpp:55
&gt; +#if PLATFORM(GTK)
&gt; +    return WEBKIT_DOM_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_ELEMENT, &quot;core-object&quot;, coreObject, nullptr));
&gt; +#else
&gt; +    auto* element = WEBKIT_DOM_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_ELEMENT, nullptr));
&gt; +    webkitDOMNodeSetCoreObject(WEBKIT_DOM_NODE(element), static_cast&lt;WebCore::Node*&gt;(coreObject));
&gt; +    return element;
&gt; +#endif

My main concern with this patch is that removing the deprecated stuff from the GTK+ 4 API will be quite difficult. It will be much easier to prepare for that now, rather than later. I would change all the #if PLATFORM(GTK) conditions to #if PLATFORM(GTK) &amp;&amp; GTK_CHECK_VERSION(3, 90, 0). That way, our GTK+ 4 API will automatically get the WPE version of the code, which will save us the trouble of updating all these conditions in the future.

&gt; Source/WebKit/WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMElement.cpp:66
&gt; +#if PLATFORM(GTK)
&gt; +G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
&gt; +G_DEFINE_TYPE_WITH_CODE(WebKitDOMElement, webkit_dom_element, WEBKIT_DOM_TYPE_NODE, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkitDOMElementDOMEventTargetInit))
&gt; +G_GNUC_END_IGNORE_DEPRECATIONS;
&gt; +#else
&gt; +G_DEFINE_TYPE(WebKitDOMElement, webkit_dom_element, WEBKIT_DOM_TYPE_NODE)
&gt; +#endif

Ditto.

&gt; Source/WebKit/WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMElement.cpp:73
&gt; +#if PLATFORM(GTK)
&gt; +    GObjectClass* gobjectClass = G_OBJECT_CLASS(elementClass);
&gt; +    webkitDOMElementInstallProperties(gobjectClass);
&gt; +#endif

Ditto.

&gt; Source/WebKit/WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMElement.cpp:99
&gt; +    if (is&lt;WebCore::HTMLInputElement&gt;(node))
&gt; +        return downcast&lt;WebCore::HTMLInputElement&gt;(*node).lastChangeWasUserEdit();
&gt; +
&gt; +    if (is&lt;WebCore::HTMLTextAreaElement&gt;(node))
&gt; +        return downcast&lt;WebCore::HTMLTextAreaElement&gt;(*node).lastChangeWasUserEdit();

I&apos;d use g_return_val_if_fail(is&lt;WebCore::HTMLInputElement&gt;(node) || is&lt;WebCore::HTMLTextAreaElement(node)). That would make debugging easier. It&apos;s programmer error, right?

&gt; Source/WebKit/WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMElement.cpp:120
&gt; +    if (!is&lt;WebCore::HTMLInputElement&gt;(node))
&gt; +        return false;

Ditto. etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408756</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-03-23 10:45:30 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #8)
&gt; Maybe it would make sense to keep WebKitDOMHTMLInputElement undeprecated as
&gt; well?

I&apos;m not confident that would be a good idea, it&apos;s more of a strawman suggestion. I see the value in getting rid of all the specific DOM classes. But moving its methods up to WebKitDOMElement just doesn&apos;t seem terribly clean.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409217</commentid>
    <comment_count>10</comment_count>
      <attachid>336280</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-03-25 18:04:53 -0700</bug_when>
    <thetext>Comment on attachment 336280
Patch

You also need to add WebKitWebProcessEnumTypes.h to WPE&apos;s webkit-web-extension.h to avoid introducing bug #183998 for WPE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409260</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-03-26 00:05:04 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #8)
&gt; Comment on attachment 336280 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=336280&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/PlatformWPE.cmake:169
&gt; &gt; +    ${WEBKIT_DIR}/WebProcess/InjectedBundle/API/wpe/DOM/WebKitDOMDocument.h
&gt; &gt; +    ${WEBKIT_DIR}/WebProcess/InjectedBundle/API/wpe/DOM/WebKitDOMElement.h
&gt; &gt; +    ${WEBKIT_DIR}/WebProcess/InjectedBundle/API/wpe/DOM/WebKitDOMNode.h
&gt; &gt; +    ${WEBKIT_DIR}/WebProcess/InjectedBundle/API/wpe/DOM/WebKitDOMObject.h
&gt; 
&gt; So these are the DOM APIs that will live on undeprecated.

For now, there might be more, but not much more, only the ones that don&apos;t inherit from Node and have API not available in JS. They will probably show up when trying to migrate evolution.

&gt; I think it worked
&gt; out OK for WebKitDOMDocument, WebKitDOMNode, and WebKitDOMObject, but I&apos;m
&gt; quite uncertain about WebKitDOMElement. The former WebKitDOMHTMLInputElement
&gt; functions that you are providing there seem like hacked-on afterthoughts.
&gt; Maybe it would make sense to keep WebKitDOMHTMLInputElement undeprecated as
&gt; well?

No, that would require to keep the intermediate classes. I don&apos;t think we should expose any HTML class at all.

&gt; Are there any other ways we could provide the required functionality?

We could move them to the Node class, like mac does, but I think they make more sense in Element.

&gt; &gt; Source/WebKit/WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMElement.cpp:55
&gt; &gt; +#if PLATFORM(GTK)
&gt; &gt; +    return WEBKIT_DOM_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_ELEMENT, &quot;core-object&quot;, coreObject, nullptr));
&gt; &gt; +#else
&gt; &gt; +    auto* element = WEBKIT_DOM_ELEMENT(g_object_new(WEBKIT_DOM_TYPE_ELEMENT, nullptr));
&gt; &gt; +    webkitDOMNodeSetCoreObject(WEBKIT_DOM_NODE(element), static_cast&lt;WebCore::Node*&gt;(coreObject));
&gt; &gt; +    return element;
&gt; &gt; +#endif
&gt; 
&gt; My main concern with this patch is that removing the deprecated stuff from
&gt; the GTK+ 4 API will be quite difficult. It will be much easier to prepare
&gt; for that now, rather than later. I would change all the #if PLATFORM(GTK)
&gt; conditions to #if PLATFORM(GTK) &amp;&amp; GTK_CHECK_VERSION(3, 90, 0). That way,
&gt; our GTK+ 4 API will automatically get the WPE version of the code, which
&gt; will save us the trouble of updating all these conditions in the future.

What does GTK+ have to do with this? It&apos;s very confusing to make this conditional to a GTK+ version when it has nothing to do with GTK+. If we ever bump the ABI version we will simply remove all deprecated code.

&gt; &gt; Source/WebKit/WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMElement.cpp:66
&gt; &gt; +#if PLATFORM(GTK)
&gt; &gt; +G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
&gt; &gt; +G_DEFINE_TYPE_WITH_CODE(WebKitDOMElement, webkit_dom_element, WEBKIT_DOM_TYPE_NODE, G_IMPLEMENT_INTERFACE(WEBKIT_DOM_TYPE_EVENT_TARGET, webkitDOMElementDOMEventTargetInit))
&gt; &gt; +G_GNUC_END_IGNORE_DEPRECATIONS;
&gt; &gt; +#else
&gt; &gt; +G_DEFINE_TYPE(WebKitDOMElement, webkit_dom_element, WEBKIT_DOM_TYPE_NODE)
&gt; &gt; +#endif
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebKit/WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMElement.cpp:73
&gt; &gt; +#if PLATFORM(GTK)
&gt; &gt; +    GObjectClass* gobjectClass = G_OBJECT_CLASS(elementClass);
&gt; &gt; +    webkitDOMElementInstallProperties(gobjectClass);
&gt; &gt; +#endif
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Source/WebKit/WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMElement.cpp:99
&gt; &gt; +    if (is&lt;WebCore::HTMLInputElement&gt;(node))
&gt; &gt; +        return downcast&lt;WebCore::HTMLInputElement&gt;(*node).lastChangeWasUserEdit();
&gt; &gt; +
&gt; &gt; +    if (is&lt;WebCore::HTMLTextAreaElement&gt;(node))
&gt; &gt; +        return downcast&lt;WebCore::HTMLTextAreaElement&gt;(*node).lastChangeWasUserEdit();
&gt; 
&gt; I&apos;d use g_return_val_if_fail(is&lt;WebCore::HTMLInputElement&gt;(node) ||
&gt; is&lt;WebCore::HTMLTextAreaElement(node)). That would make debugging easier.
&gt; It&apos;s programmer error, right?

Not necessarily. I think it&apos;s ok to call it with any element and assume it returns FALSE. I even add a test case for this.

&gt; &gt; Source/WebKit/WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMElement.cpp:120
&gt; &gt; +    if (!is&lt;WebCore::HTMLInputElement&gt;(node))
&gt; &gt; +        return false;
&gt; 
&gt; Ditto. etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409264</commentid>
    <comment_count>12</comment_count>
      <attachid>336509</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-03-26 01:01:32 -0700</bug_when>
    <thetext>Created attachment 336509
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409266</commentid>
    <comment_count>13</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-03-26 01:44:31 -0700</bug_when>
    <thetext>Committed r229973: &lt;https://trac.webkit.org/changeset/229973&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409292</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-03-26 07:56:09 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #11)
&gt; For now, there might be more, but not much more, only the ones that don&apos;t
&gt; inherit from Node and have API not available in JS. They will probably show
&gt; up when trying to migrate evolution.

They all inherit from WebKitDOMNode, because WebKitDOMElement itself inherits from WebKitDOMNode.

&gt; No, that would require to keep the intermediate classes. I don&apos;t think we
&gt; should expose any HTML class at all.

OK.

&gt; What does GTK+ have to do with this? It&apos;s very confusing to make this
&gt; conditional to a GTK+ version when it has nothing to do with GTK+. If we
&gt; ever bump the ABI version we will simply remove all deprecated code.

Surely we are going to want to remove this code from the GTK+ 4 API, but we are not going to want to drop support for the GTK+ 3 API at the same time. So we are going to have to go in and add all these conditionals later anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409294</commentid>
    <comment_count>15</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-03-26 08:18:46 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #14)
&gt; (In reply to Carlos Garcia Campos from comment #11)
&gt; &gt; For now, there might be more, but not much more, only the ones that don&apos;t
&gt; &gt; inherit from Node and have API not available in JS. They will probably show
&gt; &gt; up when trying to migrate evolution.
&gt; 
&gt; They all inherit from WebKitDOMNode, because WebKitDOMElement itself
&gt; inherits from WebKitDOMNode.

Not at all, WebKitDOMBlob, WebKitDOMCSSRule, WebKitDOMCSSStyleDeclaration, WebKitDOMStyleSheet, WebKitDOMEvent, WebKitDOMRange, and a few other I don&apos;t remember now aren&apos;t nodes, they inherit from WebKitDOMObject.

&gt; &gt; No, that would require to keep the intermediate classes. I don&apos;t think we
&gt; &gt; should expose any HTML class at all.
&gt; 
&gt; OK.
&gt; 
&gt; &gt; What does GTK+ have to do with this? It&apos;s very confusing to make this
&gt; &gt; conditional to a GTK+ version when it has nothing to do with GTK+. If we
&gt; &gt; ever bump the ABI version we will simply remove all deprecated code.
&gt; 
&gt; Surely we are going to want to remove this code from the GTK+ 4 API, but we
&gt; are not going to want to drop support for the GTK+ 3 API at the same time.
&gt; So we are going to have to go in and add all these conditionals later anyway.

We will see how to do it, but checking GTK version in glib code shared by GTK and WPE ports is not the right thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409394</commentid>
    <comment_count>16</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-03-26 13:52:59 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409395</commentid>
    <comment_count>17</comment_count>
      <attachid>336539</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-03-26 13:53:06 -0700</bug_when>
    <thetext>Created attachment 336539
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409397</commentid>
    <comment_count>18</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-03-26 13:54:34 -0700</bug_when>
    <thetext>I&apos;m sorry, I don&apos;t understand how &quot;webkit-patch land-safely&quot; attached this patch to this ticket! It should have been attached to https://bugs.webkit.org/show_bug.cgi?id=183655.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409398</commentid>
    <comment_count>19</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-03-26 13:56:18 -0700</bug_when>
    <thetext>cq-&apos;d the misfired patch. I apologize for the commotion.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335294</attachid>
            <date>2018-03-08 05:31:24 -0800</date>
            <delta_ts>2018-03-16 04:29:58 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>wk2-js-dom-bridge.diff</filename>
            <type>text/plain</type>
            <size>31355</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQy
Z3RrLTQuMC1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2Rv
Y3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0CmluZGV4IGIyNmI3ZTE0YzIzLi5mMGZmNTE1
OTZlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dl
YmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0CkBAIC0xNDkxLDYgKzE0OTEs
OCBAQCB3ZWJraXRfZnJhbWVfZ2V0X2phdmFzY3JpcHRfZ2xvYmFsX2NvbnRleHQKIHdlYmtpdF9m
cmFtZV9nZXRfamF2YXNjcmlwdF9jb250ZXh0X2Zvcl9zY3JpcHRfd29ybGQKIHdlYmtpdF9mcmFt
ZV9nZXRfanNfY29udGV4dAogd2Via2l0X2ZyYW1lX2dldF9qc19jb250ZXh0X2Zvcl9zY3JpcHRf
d29ybGQKK3dlYmtpdF9mcmFtZV9nZXRfanNfdmFsdWVfZm9yX2RvbV9vYmplY3QKK3dlYmtpdF9m
cmFtZV9nZXRfanNfdmFsdWVfZm9yX2RvbV9vYmplY3RfaW5fc2NyaXB0X3dvcmxkCiAKIDxTVUJT
RUNUSU9OIFN0YW5kYXJkPgogV2ViS2l0RnJhbWVDbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdEZyYW1lLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRG
cmFtZS5jcHAKaW5kZXggMWQxYTk4ZTExN2IuLmU0YzI5YTBhYjY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0RnJhbWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xp
Yi9XZWJLaXRGcmFtZS5jcHAKQEAgLTIwLDkgKzIwLDE0IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiV2ViS2l0RnJhbWUuaCIKIAorI2luY2x1ZGUgIldlYktpdERPTU5vZGVQcml2
YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RnJhbWVQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
U2NyaXB0V29ybGRQcml2YXRlLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNMb2NrLmg+
CiAjaW5jbHVkZSA8anNjL0pTQ0NvbnRleHRQcml2YXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9G
cmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSlNOb2RlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9T
Y3JpcHRDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvV1RGR1R5cGUuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTE0MiwzICsxNDcsMjggQEAgSlNDQ29udGV4
dCogd2Via2l0X2ZyYW1lX2dldF9qc19jb250ZXh0X2Zvcl9zY3JpcHRfd29ybGQoV2ViS2l0RnJh
bWUqIGZyYW1lLCBXZWIKIAogICAgIHJldHVybiBqc2NDb250ZXh0R2V0T3JDcmVhdGUoZnJhbWUt
PnByaXYtPndlYkZyYW1lLT5qc0NvbnRleHRGb3JXb3JsZCh3ZWJraXRTY3JpcHRXb3JsZEdldElu
amVjdGVkQnVuZGxlU2NyaXB0V29ybGQod29ybGQpKSkubGVha1JlZigpOwogfQorCitKU0NWYWx1
ZSogd2Via2l0X2ZyYW1lX2dldF9qc192YWx1ZV9mb3JfZG9tX29iamVjdChXZWJLaXRGcmFtZSog
ZnJhbWUsIFdlYktpdERPTU9iamVjdCogZG9tT2JqZWN0KQoreworICAgIHJldHVybiB3ZWJraXRf
ZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0X2luX3NjcmlwdF93b3JsZChmcmFtZSwg
ZG9tT2JqZWN0LCB3ZWJraXRfc2NyaXB0X3dvcmxkX2dldF9kZWZhdWx0KCkpOworfQorCitKU0NW
YWx1ZSogd2Via2l0X2ZyYW1lX2dldF9qc192YWx1ZV9mb3JfZG9tX29iamVjdF9pbl9zY3JpcHRf
d29ybGQoV2ViS2l0RnJhbWUqIGZyYW1lLCBXZWJLaXRET01PYmplY3QqIGRvbU9iamVjdCwgV2Vi
S2l0U2NyaXB0V29ybGQqIHdvcmxkKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJ
VF9JU19GUkFNRShmcmFtZSksIG51bGxwdHIpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdF
QktJVF9ET01fSVNfT0JKRUNUKGRvbU9iamVjdCksIG51bGxwdHIpOworICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9JU19TQ1JJUFRfV09STEQod29ybGQpLCBudWxscHRyKTsKKworICAg
IGF1dG8qIHdrV29ybGQgPSB3ZWJraXRTY3JpcHRXb3JsZEdldEluamVjdGVkQnVuZGxlU2NyaXB0
V29ybGQod29ybGQpOworICAgIGF1dG8ganNDb250ZXh0ID0ganNjQ29udGV4dEdldE9yQ3JlYXRl
KGZyYW1lLT5wcml2LT53ZWJGcmFtZS0+anNDb250ZXh0Rm9yV29ybGQod2tXb3JsZCkpOworICAg
IEpTRE9NV2luZG93KiBnbG9iYWxPYmplY3QgPSBmcmFtZS0+cHJpdi0+d2ViRnJhbWUtPmNvcmVG
cmFtZSgpLT5zY3JpcHQoKS5nbG9iYWxPYmplY3Qod2tXb3JsZC0+Y29yZVdvcmxkKCkpOworICAg
IEpTQzo6RXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CisgICAg
SlNWYWx1ZVJlZiBqc1ZhbHVlID0gbnVsbHB0cjsKKyAgICB7CisgICAgICAgIEpTQzo6SlNMb2Nr
SG9sZGVyIGxvY2soZXhlYyk7CisgICAgICAgIGlmIChXRUJLSVRfRE9NX0lTX05PREUoZG9tT2Jq
ZWN0KSkKKyAgICAgICAgICAgIGpzVmFsdWUgPSB0b1JlZihleGVjLCB0b0pTKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgV2ViS2l0Ojpjb3JlKFdFQktJVF9ET01fTk9ERShkb21PYmplY3QpKSkpOworICAg
IH0KKworICAgIHJldHVybiBqc1ZhbHVlID8ganNjQ29udGV4dEdldE9yQ3JlYXRlVmFsdWUoanND
b250ZXh0LmdldCgpLCBqc1ZhbHVlKS5sZWFrUmVmKCkgOiBudWxscHRyOworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTU5vZGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGUuY3BwCmluZGV4IGRjNzViMTA0N2ZhLi5mYmQxYzcz
Mzk3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlLmNwcApAQCAtMzAs
MTAgKzMwLDEzIEBACiAjaW5jbHVkZSAiV2ViS2l0RE9NTm9kZUxpc3RQcml2YXRlLmgiCiAjaW5j
bHVkZSAiV2ViS2l0RE9NTm9kZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRET01Qcml2YXRl
LmgiCisjaW5jbHVkZSA8anNjL0pTQ0NvbnRleHRQcml2YXRlLmg+CisjaW5jbHVkZSA8anNjL0pT
Q1ZhbHVlUHJpdmF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ1NTSW1wb3J0UnVsZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRE9NRXhjZXB0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVu
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9KU05vZGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NWR1Rlc3RzLmg+CiAjaW5j
bHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTY5NywzICs3
MDAsMTEgQEAgV2ViS2l0RE9NRWxlbWVudCogd2Via2l0X2RvbV9ub2RlX2dldF9wYXJlbnRfZWxl
bWVudChXZWJLaXRET01Ob2RlKiBzZWxmKQogICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0
UmVzdWx0LmdldCgpKTsKIH0KIAorV2ViS2l0RE9NTm9kZSogd2Via2l0X2RvbV9ub2RlX2Zvcl9q
c192YWx1ZShKU0NWYWx1ZSogdmFsdWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoSlND
X0lTX1ZBTFVFKHZhbHVlKSwgbnVsbHB0cik7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoanNj
X3ZhbHVlX2lzX29iamVjdCh2YWx1ZSksIG51bGxwdHIpOworCisgICAgYXV0byoganNPYmplY3Qg
PSBKU1ZhbHVlVG9PYmplY3QoanNjQ29udGV4dEdldEpTQ29udGV4dChqc2NfdmFsdWVfZ2V0X2Nv
bnRleHQodmFsdWUpKSwganNjVmFsdWVHZXRKU1ZhbHVlKHZhbHVlKSwgbnVsbHB0cik7CisgICAg
cmV0dXJuIGpzT2JqZWN0ID8gV2ViS2l0OjpraXQoV2ViQ29yZTo6SlNOb2RlOjp0b1dyYXBwZWQo
KnRvSlMoanNPYmplY3QpLT52bSgpLCB0b0pTKGpzT2JqZWN0KSkpIDogbnVsbHB0cjsKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01Ob2RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZS5oCmluZGV4IGM1NGM4YTczODllLi4zMWNm
NDFlZGVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZS5oCkBAIC0yNSw2
ICsyNSw3IEBACiAjZGVmaW5lIFdlYktpdERPTU5vZGVfaAogCiAjaW5jbHVkZSA8Z2xpYi1vYmpl
Y3QuaD4KKyNpbmNsdWRlIDxqc2MvanNjLmg+CiAjaW5jbHVkZSA8d2Via2l0ZG9tL1dlYktpdERP
TU9iamVjdC5oPgogI2luY2x1ZGUgPHdlYmtpdGRvbS93ZWJraXRkb21kZWZpbmVzLmg+CiAKQEAg
LTQyNyw2ICs0MjgsOSBAQCB3ZWJraXRfZG9tX25vZGVfc2V0X3RleHRfY29udGVudChXZWJLaXRE
T01Ob2RlKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJvcgogV0VCS0lUX0FQSSBXZWJL
aXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9ub2RlX2dldF9wYXJlbnRfZWxlbWVudChXZWJLaXRE
T01Ob2RlKiBzZWxmKTsKIAorV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlICoKK3dlYmtpdF9kb21f
bm9kZV9mb3JfanNfdmFsdWUoSlNDVmFsdWUqIHZhbHVlKTsKKwogR19FTkRfREVDTFMKIAogI2Vu
ZGlmIC8qIFdlYktpdERPTU5vZGVfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL2RvY3Mvd2Via2l0ZG9tZ3RrLTQuMC1z
ZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vZG9jcy93ZWJraXRkb21ndGstNC4wLXNlY3Rpb25zLnR4dAppbmRleCA3ODc4NjI0
NDE2NS4uNzc2ZWI0OGMzZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9kb2NzL3dlYmtpdGRvbWd0ay00LjAtc2VjdGlvbnMu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9kb2NzL3dlYmtpdGRvbWd0ay00LjAtc2VjdGlvbnMudHh0CkBAIC04OTcsNiArODk3LDcg
QEAgd2Via2l0X2RvbV9ub2RlX2dldF9uYW1lc3BhY2VfdXJpCiB3ZWJraXRfZG9tX25vZGVfZ2V0
X3ByZWZpeAogd2Via2l0X2RvbV9ub2RlX3NldF9wcmVmaXgKIHdlYmtpdF9kb21fbm9kZV9nZXRf
bG9jYWxfbmFtZQord2Via2l0X2RvbV9ub2RlX2Zvcl9qc192YWx1ZQogCiA8U1VCU0VDVElPTiBT
dGFuZGFyZD4KIFdlYktpdERPTU5vZGVDbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0RnJhbWUuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZyYW1lLmgKaW5k
ZXggMmM0NTU4YTdkOTguLjQ2NzljYWIwNjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRGcmFtZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZyYW1lLmgK
QEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlIDxqc2MvanNjLmg+CiAjaW5jbHVkZSA8d2Via2l0
Mi9XZWJLaXREZWZpbmVzLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRTY3JpcHRXb3JsZC5o
PgorI2luY2x1ZGUgPHdlYmtpdGRvbS93ZWJraXRkb20uaD4KIAogR19CRUdJTl9ERUNMUwogCkBA
IC03Niw2ICs3NywxNSBAQCBXRUJLSVRfQVBJIEpTQ0NvbnRleHQgKgogd2Via2l0X2ZyYW1lX2dl
dF9qc19jb250ZXh0X2Zvcl9zY3JpcHRfd29ybGQgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAg
KmZyYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgV2ViS2l0U2NyaXB0V29ybGQgKndvcmxkKTsKIAorV0VCS0lUX0FQSSBKU0NWYWx1ZSAq
Cit3ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0ICAgICAgICAgICAgICAg
ICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdERPTU9iamVjdCAgICpkb21fb2Jq
ZWN0KTsKKworV0VCS0lUX0FQSSBKU0NWYWx1ZSAqCit3ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVl
X2Zvcl9kb21fb2JqZWN0X2luX3NjcmlwdF93b3JsZCAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1l
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdlYktpdERPTU9iamVjdCAgICpkb21fb2JqZWN0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFNjcmlwdFdvcmxkICp3
b3JsZCk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL0ZyYW1lVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdEdMaWIvRnJhbWVUZXN0LmNwcAppbmRleCBmMGY0ZTQ3NGRjMy4uMGVl
Njg0YTdhMDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xp
Yi9GcmFtZVRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xp
Yi9GcmFtZVRlc3QuY3BwCkBAIC0yMSw2ICsyMSw3IEBACiAKICNpbmNsdWRlICJXZWJQcm9jZXNz
VGVzdC5oIgogI2luY2x1ZGUgPGdpby9naW8uaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVl
UHRyLmg+CiAKIGNsYXNzIFdlYktpdEZyYW1lVGVzdCA6IHB1YmxpYyBXZWJQcm9jZXNzVGVzdCB7
CiBwdWJsaWM6CkBAIC01OCw2ICs1OSw2MiBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAKKyAgICBib29sIHRlc3RKYXZhU2NyaXB0VmFsdWVzKFdlYktpdFdlYlBhZ2Uq
IHBhZ2UpCisgICAgeworICAgICAgICBXZWJLaXRGcmFtZSogZnJhbWUgPSB3ZWJraXRfd2ViX3Bh
Z2VfZ2V0X21haW5fZnJhbWUocGFnZSk7CisgICAgICAgIGdfYXNzZXJ0KFdFQktJVF9JU19GUkFN
RShmcmFtZSkpOworCisgICAgICAgIEdSZWZQdHI8SlNDQ29udGV4dD4ganNDb250ZXh0ID0gYWRv
cHRHUmVmKHdlYmtpdF9mcmFtZV9nZXRfanNfY29udGV4dChmcmFtZSkpOworICAgICAgICBnX2Fz
c2VydChKU0NfSVNfQ09OVEVYVChqc0NvbnRleHQuZ2V0KCkpKTsKKyAgICAgICAgYXNzZXJ0T2Jq
ZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChqc0NvbnRleHQuZ2V0KCkpKTsK
KworICAgICAgICBXZWJLaXRET01Eb2N1bWVudCogZG9jdW1lbnQgPSB3ZWJraXRfd2ViX3BhZ2Vf
Z2V0X2RvbV9kb2N1bWVudChwYWdlKTsKKyAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19E
T0NVTUVOVChkb2N1bWVudCkpOworICAgICAgICBhc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVz
dEZpbmlzaGVzKEdfT0JKRUNUKGRvY3VtZW50KSk7CisKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1
ZT4ganNEb2N1bWVudCA9IGFkb3B0R1JlZih3ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9k
b21fb2JqZWN0KGZyYW1lLCBXRUJLSVRfRE9NX09CSkVDVChkb2N1bWVudCkpKTsKKyAgICAgICAg
Z19hc3NlcnQoSlNDX0lTX1ZBTFVFKGpzRG9jdW1lbnQuZ2V0KCkpKTsKKyAgICAgICAgYXNzZXJ0
T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChqc0RvY3VtZW50LmdldCgp
KSk7CisgICAgICAgIGdfYXNzZXJ0KGpzY192YWx1ZV9nZXRfY29udGV4dChqc0RvY3VtZW50Lmdl
dCgpKSA9PSBqc0NvbnRleHQuZ2V0KCkpOworCisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHZh
bHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2dldF92YWx1ZShqc0NvbnRleHQuZ2V0KCksICJk
b2N1bWVudCIpKTsKKyAgICAgICAgZ19hc3NlcnQodmFsdWUuZ2V0KCkgPT0ganNEb2N1bWVudC5n
ZXQoKSk7CisKKyAgICAgICAgV2ViS2l0RE9NRWxlbWVudCogcCA9IHdlYmtpdF9kb21fZG9jdW1l
bnRfZ2V0X2VsZW1lbnRfYnlfaWQoZG9jdW1lbnQsICJwYXJhZ3JhcGgiKTsKKyAgICAgICAgZ19h
c3NlcnQoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHApKTsKKyAgICAgICAgYXNzZXJ0T2JqZWN0SXNE
ZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChwKSk7CisKKyAgICAgICAgR1JlZlB0cjxK
U0NWYWx1ZT4ganNQID0gYWRvcHRHUmVmKHdlYmtpdF9mcmFtZV9nZXRfanNfdmFsdWVfZm9yX2Rv
bV9vYmplY3QoZnJhbWUsIFdFQktJVF9ET01fT0JKRUNUKHApKSk7CisgICAgICAgIGdfYXNzZXJ0
KEpTQ19JU19WQUxVRShqc1AuZ2V0KCkpKTsKKyAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVk
V2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChqc1AuZ2V0KCkpKTsKKyAgICAgICAgZ19hc3NlcnQo
anNjX3ZhbHVlX2lzX29iamVjdChqc1AuZ2V0KCkpKTsKKyAgICAgICAgZ19hc3NlcnQoanNjX3Zh
bHVlX2dldF9jb250ZXh0KGpzUC5nZXQoKSkgPT0ganNDb250ZXh0LmdldCgpKTsKKworICAgICAg
ICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShqc0NvbnRleHQuZ2V0KCks
ICJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyYWdyYXBoJykiKSk7CisgICAgICAgIGdfYXNz
ZXJ0KHZhbHVlLmdldCgpID09IGpzUC5nZXQoKSk7CisgICAgICAgIHZhbHVlID0gYWRvcHRHUmVm
KGpzY192YWx1ZV9vYmplY3RfaW52b2tlX21ldGhvZChqc0RvY3VtZW50LmdldCgpLCAiZ2V0RWxl
bWVudEJ5SWQiLCBHX1RZUEVfU1RSSU5HLCAicGFyYWdyYXBoIiwgR19UWVBFX05PTkUpKTsKKyAg
ICAgICAgZ19hc3NlcnQodmFsdWUuZ2V0KCkgPT0ganNQLmdldCgpKTsKKworICAgICAgICB2YWx1
ZSA9IGFkb3B0R1JlZihqc2NfdmFsdWVfb2JqZWN0X2dldF9wcm9wZXJ0eShqc1AuZ2V0KCksICJp
bm5lclRleHQiKSk7CisgICAgICAgIGdfYXNzZXJ0KEpTQ19JU19WQUxVRSh2YWx1ZS5nZXQoKSkp
OworICAgICAgICBhc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNU
KHZhbHVlLmdldCgpKSk7CisgICAgICAgIGdfYXNzZXJ0KGpzY192YWx1ZV9pc19zdHJpbmcodmFs
dWUuZ2V0KCkpKTsKKyAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBzdHJWYWx1ZShqc2NfdmFsdWVf
dG9fc3RyaW5nKHZhbHVlLmdldCgpKSk7CisgICAgICAgIGdfYXNzZXJ0X2NtcHN0cihzdHJWYWx1
ZS5nZXQoKSwgPT0sICJUaGlzIGlzIGEgdGVzdCIpOworCisgICAgICAgIEdSZWZQdHI8SlNDVmFs
dWU+IGpzSW1hZ2UgPSBhZG9wdEdSZWYoanNjX3ZhbHVlX29iamVjdF9pbnZva2VfbWV0aG9kKGpz
RG9jdW1lbnQuZ2V0KCksICJnZXRFbGVtZW50QnlJZCIsIEdfVFlQRV9TVFJJTkcsICJpbWFnZSIs
IEdfVFlQRV9OT05FKSk7CisgICAgICAgIGdfYXNzZXJ0KEpTQ19JU19WQUxVRShqc0ltYWdlLmdl
dCgpKSk7CisgICAgICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19P
QkpFQ1QoanNJbWFnZS5nZXQoKSkpOworICAgICAgICBnX2Fzc2VydChqc2NfdmFsdWVfaXNfb2Jq
ZWN0KGpzSW1hZ2UuZ2V0KCkpKTsKKworICAgICAgICBXZWJLaXRET01Ob2RlKiBpbWFnZSA9IHdl
YmtpdF9kb21fbm9kZV9mb3JfanNfdmFsdWUoanNJbWFnZS5nZXQoKSk7CisgICAgICAgIGdfYXNz
ZXJ0KFdFQktJVF9ET01fSVNfRUxFTUVOVChpbWFnZSkpOworICAgICAgICBhc3NlcnRPYmplY3RJ
c0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKGltYWdlKSk7CisgICAgICAgIGdfYXNz
ZXJ0KHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRfYnlfaWQoZG9jdW1lbnQsICJpbWFn
ZSIpID09IFdFQktJVF9ET01fRUxFTUVOVChpbWFnZSkpOworCisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKwogICAgIGJvb2wgcnVuVGVzdChjb25zdCBjaGFyKiB0ZXN0TmFtZSwgV2ViS2l0
V2ViUGFnZSogcGFnZSkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmICghc3RyY21wKHRlc3RO
YW1lLCAibWFpbi1mcmFtZSIpKQpAQCAtNjYsNiArMTIzLDggQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgIHJldHVybiB0ZXN0VVJJKHBhZ2UpOwogICAgICAgICBpZiAoIXN0cmNtcCh0ZXN0TmFtZSwg
ImphdmFzY3JpcHQtY29udGV4dCIpKQogICAgICAgICAgICAgcmV0dXJuIHRlc3RKYXZhU2NyaXB0
Q29udGV4dChwYWdlKTsKKyAgICAgICAgaWYgKCFzdHJjbXAodGVzdE5hbWUsICJqYXZhc2NyaXB0
LXZhbHVlcyIpKQorICAgICAgICAgICAgcmV0dXJuIHRlc3RKYXZhU2NyaXB0VmFsdWVzKHBhZ2Up
OwogCiAgICAgICAgIGdfYXNzZXJ0X25vdF9yZWFjaGVkKCk7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTc3LDQgKzEzNiw1IEBAIHN0YXRpYyB2b2lkIF9fYXR0cmlidXRlX18oKGNvbnN0cnVj
dG9yKSkgcmVnaXN0ZXJUZXN0cygpCiAgICAgUkVHSVNURVJfVEVTVChXZWJLaXRGcmFtZVRlc3Qs
ICJXZWJLaXRGcmFtZS9tYWluLWZyYW1lIik7CiAgICAgUkVHSVNURVJfVEVTVChXZWJLaXRGcmFt
ZVRlc3QsICJXZWJLaXRGcmFtZS91cmkiKTsKICAgICBSRUdJU1RFUl9URVNUKFdlYktpdEZyYW1l
VGVzdCwgIldlYktpdEZyYW1lL2phdmFzY3JpcHQtY29udGV4dCIpOworICAgIFJFR0lTVEVSX1RF
U1QoV2ViS2l0RnJhbWVUZXN0LCAiV2ViS2l0RnJhbWUvamF2YXNjcmlwdC12YWx1ZXMiKTsKIH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0RnJh
bWUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RGcmFtZS5j
cHAKaW5kZXggMjM0MWZiMzE2ZGUuLjZmMzM3MjliMTgwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEZyYW1lLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEZyYW1lLmNwcApAQCAtMzYsMTEgKzM2LDE4
IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJLaXRGcmFtZUphdmFTY3JpcHRDb250ZXh0KFdlYlZpZXdU
ZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGdfYXNzZXJ0KHRlc3QtPnJ1bldlYlByb2Nl
c3NUZXN0KCJXZWJLaXRGcmFtZSIsICJqYXZhc2NyaXB0LWNvbnRleHQiKSk7CiB9CiAKK3N0YXRp
YyB2b2lkIHRlc3RXZWJLaXRGcmFtZUphdmFTY3JpcHRWYWx1ZXMoV2ViVmlld1Rlc3QqIHRlc3Qs
IGdjb25zdHBvaW50ZXIpCit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHRlc3RIVE1MID0gIjxo
dG1sPjxib2R5PjxwIGlkPSdwYXJhZ3JhcGgnPlRoaXMgaXMgYSB0ZXN0PC9wPjxpbWcgaWQ9J2lt
YWdlJyBzcmM9J2Zvby5wbmcnPjwvYm9keT48L2h0bWw+IjsKKyAgICBnX2Fzc2VydCh0ZXN0LT5y
dW5XZWJQcm9jZXNzVGVzdCgiV2ViS2l0RnJhbWUiLCAiamF2YXNjcmlwdC12YWx1ZXMiLCB0ZXN0
SFRNTCkpOworfQorCiB2b2lkIGJlZm9yZUFsbCgpCiB7CiAgICAgV2ViVmlld1Rlc3Q6OmFkZCgi
V2ViS2l0RnJhbWUiLCAibWFpbi1mcmFtZSIsIHRlc3RXZWJLaXRGcmFtZU1haW5GcmFtZSk7CiAg
ICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0RnJhbWUiLCAidXJpIiwgdGVzdFdlYktpdEZyYW1l
VVJJKTsKICAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRGcmFtZSIsICJqYXZhc2NyaXB0LWNv
bnRleHQiLCB0ZXN0V2ViS2l0RnJhbWVKYXZhU2NyaXB0Q29udGV4dCk7CisgICAgV2ViVmlld1Rl
c3Q6OmFkZCgiV2ViS2l0RnJhbWUiLCAiamF2YXNjcmlwdC12YWx1ZXMiLCB0ZXN0V2ViS2l0RnJh
bWVKYXZhU2NyaXB0VmFsdWVzKTsKIH0KIAogdm9pZCBhZnRlckFsbCgpCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvV2ViRXh0ZW5zaW9uVGVzdC5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvV2ViRXh0ZW5zaW9uVGVzdC5j
cHAKaW5kZXggMWFlMTk3MDk2MmEuLjg1ZWQ5OTIyOWRjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvV2ViRXh0ZW5zaW9uVGVzdC5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1dlYkV4dGVuc2lvblRlc3QuY3BwCkBA
IC0yMjksMTUgKzIyOSwyMyBAQCBzdGF0aWMgR1ZhcmlhbnQqIHNlcmlhbGl6ZUNvbnRleHRNZW51
KFdlYktpdENvbnRleHRNZW51KiBtZW51KQogICAgIHJldHVybiBnX3ZhcmlhbnRfYnVpbGRlcl9l
bmQoJmJ1aWxkZXIpOwogfQogCi1zdGF0aWMgR1ZhcmlhbnQqIHNlcmlhbGl6ZU5vZGUoV2ViS2l0
RE9NTm9kZSogbm9kZSkKK3N0YXRpYyBHVmFyaWFudCogc2VyaWFsaXplTm9kZShKU0NWYWx1ZSog
bm9kZSkKIHsKICAgICBHVmFyaWFudEJ1aWxkZXIgYnVpbGRlcjsKICAgICBnX3ZhcmlhbnRfYnVp
bGRlcl9pbml0KCZidWlsZGVyLCBHX1ZBUklBTlRfVFlQRV9BUlJBWSk7Ci0gICAgZ192YXJpYW50
X2J1aWxkZXJfYWRkKCZidWlsZGVyLCAie3N2fSIsICJOYW1lIiwgZ192YXJpYW50X25ld190YWtl
X3N0cmluZyh3ZWJraXRfZG9tX25vZGVfZ2V0X25vZGVfbmFtZShub2RlKSkpOwotICAgIGdfdmFy
aWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAiVHlwZSIsIGdfdmFyaWFudF9uZXdf
dWludDMyKHdlYmtpdF9kb21fbm9kZV9nZXRfbm9kZV90eXBlKG5vZGUpKSk7Ci0gICAgZ192YXJp
YW50X2J1aWxkZXJfYWRkKCZidWlsZGVyLCAie3N2fSIsICJDb250ZW50cyIsIGdfdmFyaWFudF9u
ZXdfdGFrZV9zdHJpbmcod2Via2l0X2RvbV9ub2RlX2dldF90ZXh0X2NvbnRlbnQobm9kZSkpKTsK
LSAgICBXZWJLaXRET01Ob2RlKiBwYXJlbnQgPSB3ZWJraXRfZG9tX25vZGVfZ2V0X3BhcmVudF9u
b2RlKG5vZGUpOwotICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAi
UGFyZW50IiwgcGFyZW50ID8gZ192YXJpYW50X25ld190YWtlX3N0cmluZyh3ZWJraXRfZG9tX25v
ZGVfZ2V0X25vZGVfbmFtZShwYXJlbnQpKSA6IGdfdmFyaWFudF9uZXdfc3RyaW5nKCJST09UIikp
OworICAgIEdSZWZQdHI8SlNDVmFsdWU+IHZhbHVlID0gYWRvcHRHUmVmKGpzY192YWx1ZV9vYmpl
Y3RfZ2V0X3Byb3BlcnR5KG5vZGUsICJub2RlTmFtZSIpKTsKKyAgICBnX3ZhcmlhbnRfYnVpbGRl
cl9hZGQoJmJ1aWxkZXIsICJ7c3Z9IiwgIk5hbWUiLCBnX3ZhcmlhbnRfbmV3X3Rha2Vfc3RyaW5n
KGpzY192YWx1ZV90b19zdHJpbmcodmFsdWUuZ2V0KCkpKSk7CisgICAgdmFsdWUgPSBhZG9wdEdS
ZWYoanNjX3ZhbHVlX29iamVjdF9nZXRfcHJvcGVydHkobm9kZSwgIm5vZGVUeXBlIikpOworICAg
IGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAiVHlwZSIsIGdfdmFyaWFu
dF9uZXdfdWludDMyKGpzY192YWx1ZV90b19pbnQzMih2YWx1ZS5nZXQoKSkpKTsKKyAgICB2YWx1
ZSA9IGFkb3B0R1JlZihqc2NfdmFsdWVfb2JqZWN0X2dldF9wcm9wZXJ0eShub2RlLCAidGV4dENv
bnRlbnQiKSk7CisgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZidWlsZGVyLCAie3N2fSIsICJD
b250ZW50cyIsIGdfdmFyaWFudF9uZXdfdGFrZV9zdHJpbmcoanNjX3ZhbHVlX3RvX3N0cmluZyh2
YWx1ZS5nZXQoKSkpKTsKKyAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfdmFsdWVfb2JqZWN0X2dl
dF9wcm9wZXJ0eShub2RlLCAicGFyZW50Tm9kZSIpKTsKKyAgICBpZiAoanNjX3ZhbHVlX2lzX251
bGwodmFsdWUuZ2V0KCkpKQorICAgICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmJ1aWxkZXIs
ICJ7c3Z9IiwgIlBhcmVudCIsIGdfdmFyaWFudF9uZXdfc3RyaW5nKCJST09UIikpOworICAgIGVs
c2UgeworICAgICAgICB2YWx1ZSA9IGpzY192YWx1ZV9vYmplY3RfZ2V0X3Byb3BlcnR5KHZhbHVl
LmdldCgpLCAibm9kZU5hbWUiKTsKKyAgICAgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZidWls
ZGVyLCAie3N2fSIsICJQYXJlbnQiLCBnX3ZhcmlhbnRfbmV3X3Rha2Vfc3RyaW5nKGpzY192YWx1
ZV90b19zdHJpbmcodmFsdWUuZ2V0KCkpKSk7CisgICAgfQogICAgIHJldHVybiBnX3ZhcmlhbnRf
YnVpbGRlcl9lbmQoJmJ1aWxkZXIpOwogfQogCkBAIC0yNjcsNyArMjc1LDkgQEAgc3RhdGljIGdi
b29sZWFuIGNvbnRleHRNZW51Q2FsbGJhY2soV2ViS2l0V2ViUGFnZSogcGFnZSwgV2ViS2l0Q29u
dGV4dE1lbnUqIG1lbnUKICAgICBpZiAoIWdfc3RyY21wMChwYWdlVVJJLCAiQ29udGV4dE1lbnVU
ZXN0Tm9kZSIpKSB7CiAgICAgICAgIFdlYktpdERPTU5vZGUqIG5vZGUgPSB3ZWJraXRfd2ViX2hp
dF90ZXN0X3Jlc3VsdF9nZXRfbm9kZShoaXRUZXN0UmVzdWx0KTsKICAgICAgICAgZ19hc3NlcnQo
V0VCS0lUX0RPTV9JU19OT0RFKG5vZGUpKTsKLSAgICAgICAgd2Via2l0X2NvbnRleHRfbWVudV9z
ZXRfdXNlcl9kYXRhKG1lbnUsIHNlcmlhbGl6ZU5vZGUobm9kZSkpOworICAgICAgICBhdXRvKiBm
cmFtZSA9IHdlYmtpdF93ZWJfcGFnZV9nZXRfbWFpbl9mcmFtZShwYWdlKTsKKyAgICAgICAgR1Jl
ZlB0cjxKU0NWYWx1ZT4ganNOb2RlID0gYWRvcHRHUmVmKHdlYmtpdF9mcmFtZV9nZXRfanNfdmFs
dWVfZm9yX2RvbV9vYmplY3QoZnJhbWUsIFdFQktJVF9ET01fT0JKRUNUKG5vZGUpKSk7CisgICAg
ICAgIHdlYmtpdF9jb250ZXh0X21lbnVfc2V0X3VzZXJfZGF0YShtZW51LCBzZXJpYWxpemVOb2Rl
KGpzTm9kZS5nZXQoKSkpOwogICAgICAgICByZXR1cm4gVFJVRTsKICAgICB9CiAKQEAgLTI4Miwy
OCArMjkyLDEzIEBAIHN0YXRpYyB2b2lkIGNvbnNvbGVNZXNzYWdlU2VudENhbGxiYWNrKFdlYktp
dFdlYlBhZ2UqIHdlYlBhZ2UsIFdlYktpdENvbnNvbGVNZXNzCiAgICAgICAgIHdlYmtpdF9jb25z
b2xlX21lc3NhZ2VfZ2V0X2xldmVsKGNvbnNvbGVNZXNzYWdlKSwgd2Via2l0X2NvbnNvbGVfbWVz
c2FnZV9nZXRfdGV4dChjb25zb2xlTWVzc2FnZSksCiAgICAgICAgIHdlYmtpdF9jb25zb2xlX21l
c3NhZ2VfZ2V0X2xpbmUoY29uc29sZU1lc3NhZ2UpLCB3ZWJraXRfY29uc29sZV9tZXNzYWdlX2dl
dF9zb3VyY2VfaWQoY29uc29sZU1lc3NhZ2UpKTsKICAgICBHVW5pcXVlUHRyPGNoYXI+IG1lc3Nh
Z2VTdHJpbmcoZ192YXJpYW50X3ByaW50KHZhcmlhbnQuZ2V0KCksIEZBTFNFKSk7Ci0jaWYgUExB
VEZPUk0oR1RLKQotICAgIEdSZWZQdHI8V2ViS2l0RE9NRE9NV2luZG93PiB3aW5kb3cgPSBhZG9w
dEdSZWYod2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZGVmYXVsdF92aWV3KHdlYmtpdF93ZWJfcGFn
ZV9nZXRfZG9tX2RvY3VtZW50KHdlYlBhZ2UpKSk7Ci0gICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9J
U19ET01fV0lORE9XKHdpbmRvdy5nZXQoKSkpOwotICAgIHdlYmtpdF9kb21fZG9tX3dpbmRvd193
ZWJraXRfbWVzc2FnZV9oYW5kbGVyc19wb3N0X21lc3NhZ2Uod2luZG93LmdldCgpLCAiY29uc29s
ZSIsIG1lc3NhZ2VTdHJpbmcuZ2V0KCkpOwotI2Vsc2UKLSAgICBHVW5pcXVlUHRyPGNoYXI+IGVz
Y2FwZWRNZXNzYWdlU3RyaW5nKHN0YXRpY19jYXN0PGNoYXIqPihnX21hbGxvYyhzdHJsZW4obWVz
c2FnZVN0cmluZy5nZXQoKSkgKiAyICsgMSkpKTsKLSAgICBjaGFyKiBzcmMgPSBtZXNzYWdlU3Ry
aW5nLmdldCgpOwotICAgIGNoYXIqIGRlc3QgPSBlc2NhcGVkTWVzc2FnZVN0cmluZy5nZXQoKTsK
LSAgICB3aGlsZSAoKnNyYykgewotICAgICAgICBpZiAoKnNyYyA9PSAnIicpIHsKLSAgICAgICAg
ICAgICpkZXN0KysgPSAnXFwnOwotICAgICAgICAgICAgKmRlc3QrKyA9ICciJzsKLSAgICAgICAg
fSBlbHNlCi0gICAgICAgICAgICAqZGVzdCsrID0gKnNyYzsKLSAgICAgICAgKytzcmM7CisgICAg
R1JlZlB0cjxKU0NDb250ZXh0PiBqc0NvbnRleHQgPSBhZG9wdEdSZWYod2Via2l0X2ZyYW1lX2dl
dF9qc19jb250ZXh0KHdlYmtpdF93ZWJfcGFnZV9nZXRfbWFpbl9mcmFtZSh3ZWJQYWdlKSkpOwor
ICAgIEdSZWZQdHI8SlNDVmFsdWU+IGNvbnNvbGUgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZh
bHVhdGUoanNDb250ZXh0LmdldCgpLCAid2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMuY29u
c29sZSIpKTsKKyAgICBnX2Fzc2VydChKU0NfSVNfVkFMVUUoY29uc29sZS5nZXQoKSkpOworICAg
IGlmIChqc2NfdmFsdWVfaXNfb2JqZWN0KGNvbnNvbGUuZ2V0KCkpKSB7CisgICAgICAgIEdSZWZQ
dHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfdmFsdWVfb2JqZWN0X2ludm9rZV9t
ZXRob2QoY29uc29sZS5nZXQoKSwgInBvc3RNZXNzYWdlIiwgR19UWVBFX1NUUklORywgbWVzc2Fn
ZVN0cmluZy5nZXQoKSwgR19UWVBFX05PTkUpKTsKKyAgICAgICAgZ19hc3NlcnQoSlNDX0lTX1ZB
TFVFKHJlc3VsdC5nZXQoKSkpOwogICAgIH0KLSAgICAqZGVzdCA9ICdcMCc7Ci0gICAgR1VuaXF1
ZVB0cjxjaGFyPiBzY3JpcHQoZ19zdHJkdXBfcHJpbnRmKCJ3aW5kb3cud2Via2l0Lm1lc3NhZ2VI
YW5kbGVycy5jb25zb2xlLnBvc3RNZXNzYWdlKFwiJXNcIik7IiwgZXNjYXBlZE1lc3NhZ2VTdHJp
bmcuZ2V0KCkpKTsKLSAgICBKU0dsb2JhbENvbnRleHRSZWYganNDb250ZXh0ID0gd2Via2l0X2Zy
YW1lX2dldF9qYXZhc2NyaXB0X2dsb2JhbF9jb250ZXh0KHdlYmtpdF93ZWJfcGFnZV9nZXRfbWFp
bl9mcmFtZSh3ZWJQYWdlKSk7Ci0gICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzU2NyaXB0
KEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzY3JpcHQuZ2V0KCkpKTsKLSAg
ICBKU0V2YWx1YXRlU2NyaXB0KGpzQ29udGV4dCwganNTY3JpcHQuZ2V0KCksIG51bGxwdHIsIG51
bGxwdHIsIDEsIG51bGxwdHIpOwotI2VuZGlmCiB9CiAKICNpZiBQTEFURk9STShHVEspCkBAIC0z
MjIsMTMgKzMxNywxNyBAQCBzdGF0aWMgdm9pZCBlbWl0Rm9ybUNvbnRyb2xzQXNzb2NpYXRlZChH
REJ1c0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IGNoYXIqCiAKIHN0YXRpYyB2b2lkIGZv
cm1Db250cm9sc0Fzc29jaWF0ZWRDYWxsYmFjayhXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlLCBHUHRy
QXJyYXkqIGZvcm1FbGVtZW50cywgV2ViS2l0V2ViRXh0ZW5zaW9uKiBleHRlbnNpb24pCiB7Cisg
ICAgYXV0byogZnJhbWUgPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X21haW5fZnJhbWUod2ViUGFnZSk7
CiAgICAgR1N0cmluZyogZm9ybUlkc0J1aWxkZXIgPSBnX3N0cmluZ19uZXcobnVsbHB0cik7CiAg
ICAgZm9yIChndWludCBpID0gMDsgaSA8IGZvcm1FbGVtZW50cy0+bGVuOyArK2kpIHsKICAgICAg
ICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19FTEVNRU5UKGdfcHRyX2FycmF5X2luZGV4KGZvcm1F
bGVtZW50cywgaSkpKTsKLSAgICAgICAgYXV0byBkb21FbGVtZW50ID0gV0VCS0lUX0RPTV9FTEVN
RU5UKGdfcHRyX2FycmF5X2luZGV4KGZvcm1FbGVtZW50cywgaSkpOwotICAgICAgICBHVW5pcXVl
UHRyPGNoYXI+IGVsZW1lbnRJRCh3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2lkKGRvbUVsZW1lbnQp
KTsKLSAgICAgICAgaWYgKGVsZW1lbnRJRCkKLSAgICAgICAgICAgIGdfc3RyaW5nX2FwcGVuZChm
b3JtSWRzQnVpbGRlciwgZWxlbWVudElELmdldCgpKTsKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1
ZT4gdmFsdWUgPSBhZG9wdEdSZWYod2Via2l0X2ZyYW1lX2dldF9qc192YWx1ZV9mb3JfZG9tX29i
amVjdChmcmFtZSwgV0VCS0lUX0RPTV9PQkpFQ1QoZ19wdHJfYXJyYXlfaW5kZXgoZm9ybUVsZW1l
bnRzLCBpKSkpKTsKKyAgICAgICAgZ19hc3NlcnQoSlNDX0lTX1ZBTFVFKHZhbHVlLmdldCgpKSk7
CisgICAgICAgIGdfYXNzZXJ0KGpzY192YWx1ZV9pc19vYmplY3QodmFsdWUuZ2V0KCkpKTsKKyAg
ICAgICAgZ19hc3NlcnQoanNjX3ZhbHVlX29iamVjdF9pc19pbnN0YW5jZV9vZih2YWx1ZS5nZXQo
KSwgIkVsZW1lbnQiKSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IGlkVmFsdWUgPSBhZG9w
dEdSZWYoanNjX3ZhbHVlX29iamVjdF9nZXRfcHJvcGVydHkodmFsdWUuZ2V0KCksICJpZCIpKTsK
KyAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBlbGVtZW50SUQoanNjX3ZhbHVlX3RvX3N0cmluZyhp
ZFZhbHVlLmdldCgpKSk7CisgICAgICAgIGdfc3RyaW5nX2FwcGVuZChmb3JtSWRzQnVpbGRlciwg
ZWxlbWVudElELmdldCgpKTsKICAgICB9CiAgICAgaWYgKCFmb3JtSWRzQnVpbGRlci0+bGVuKSB7
CiAgICAgICAgIGdfc3RyaW5nX2ZyZWUoZm9ybUlkc0J1aWxkZXIsIFRSVUUpOwpAQCAtMzU1LDcg
KzM1NCw3IEBAIHN0YXRpYyB2b2lkIGVtaXRGb3JtU3VibWlzc2lvbkV2ZW50KEdEQnVzQ29ubmVj
dGlvbiogY29ubmVjdGlvbiwgY29uc3QgY2hhciogbWV0CiAgICAgZ19hc3NlcnQob2spOwogfQog
Ci1zdGF0aWMgdm9pZCBoYW5kbGVGb3JtU3VibWlzc2lvbkNhbGxiYWNrKFdlYktpdFdlYlBhZ2Uq
IHdlYlBhZ2UsIERlbGF5ZWRTaWduYWxUeXBlIGRlbGF5ZWRTaWduYWxUeXBlLCBjb25zdCBjaGFy
KiBtZXRob2ROYW1lLCBXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIGZvcm1FbGVtZW50LCBXZWJL
aXRGcmFtZSogc291cmNlRnJhbWUsIFdlYktpdEZyYW1lKiB0YXJnZXRGcmFtZSwgR1B0ckFycmF5
KiB0ZXh0RmllbGROYW1lcywgR1B0ckFycmF5KiB0ZXh0RmllbGRWYWx1ZXMsIFdlYktpdFdlYkV4
dGVuc2lvbiogZXh0ZW5zaW9uKQorc3RhdGljIHZvaWQgaGFuZGxlRm9ybVN1Ym1pc3Npb25DYWxs
YmFjayhXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlLCBEZWxheWVkU2lnbmFsVHlwZSBkZWxheWVkU2ln
bmFsVHlwZSwgY29uc3QgY2hhciogbWV0aG9kTmFtZSwgY29uc3QgY2hhciogZm9ybUlELCBXZWJL
aXRGcmFtZSogc291cmNlRnJhbWUsIFdlYktpdEZyYW1lKiB0YXJnZXRGcmFtZSwgR1B0ckFycmF5
KiB0ZXh0RmllbGROYW1lcywgR1B0ckFycmF5KiB0ZXh0RmllbGRWYWx1ZXMsIFdlYktpdFdlYkV4
dGVuc2lvbiogZXh0ZW5zaW9uKQogewogICAgIEdTdHJpbmcqIG5hbWVzQnVpbGRlciA9IGdfc3Ry
aW5nX25ldyhudWxscHRyKTsKICAgICBmb3IgKGd1aW50IGkgPSAwOyBpIDwgdGV4dEZpZWxkTmFt
ZXMtPmxlbjsgKytpKSB7CkBAIC0zNzUsMTkgKzM3NCwyNiBAQCBzdGF0aWMgdm9pZCBoYW5kbGVG
b3JtU3VibWlzc2lvbkNhbGxiYWNrKFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2UsIERlbGF5ZWRTaWdu
YWxUeQogCiAgICAgZ3BvaW50ZXIgZGF0YSA9IGdfb2JqZWN0X2dldF9kYXRhKEdfT0JKRUNUKGV4
dGVuc2lvbiksICJkYnVzLWNvbm5lY3Rpb24iKTsKICAgICBpZiAoZGF0YSkKLSAgICAgICAgZW1p
dEZvcm1TdWJtaXNzaW9uRXZlbnQoR19EQlVTX0NPTk5FQ1RJT04oZGF0YSksIG1ldGhvZE5hbWUs
IHdlYmtpdF9kb21fZWxlbWVudF9nZXRfaWQoV0VCS0lUX0RPTV9FTEVNRU5UKGZvcm1FbGVtZW50
KSksIG5hbWVzLmdldCgpLCB2YWx1ZXMuZ2V0KCksIHdlYmtpdF9mcmFtZV9pc19tYWluX2ZyYW1l
KHRhcmdldEZyYW1lKSwgd2Via2l0X2ZyYW1lX2lzX21haW5fZnJhbWUoc291cmNlRnJhbWUpKTsK
KyAgICAgICAgZW1pdEZvcm1TdWJtaXNzaW9uRXZlbnQoR19EQlVTX0NPTk5FQ1RJT04oZGF0YSks
IG1ldGhvZE5hbWUsIGZvcm1JRCwgbmFtZXMuZ2V0KCksIHZhbHVlcy5nZXQoKSwgd2Via2l0X2Zy
YW1lX2lzX21haW5fZnJhbWUodGFyZ2V0RnJhbWUpLCB3ZWJraXRfZnJhbWVfaXNfbWFpbl9mcmFt
ZShzb3VyY2VGcmFtZSkpOwogICAgIGVsc2UKLSAgICAgICAgZGVsYXllZFNpZ25hbHNRdWV1ZS5h
cHBlbmQoRGVsYXllZFNpZ25hbChkZWxheWVkU2lnbmFsVHlwZSwgd2Via2l0X2RvbV9lbGVtZW50
X2dldF9pZChXRUJLSVRfRE9NX0VMRU1FTlQoZm9ybUVsZW1lbnQpKSwgbmFtZXMuZ2V0KCksIHZh
bHVlcy5nZXQoKSwgd2Via2l0X2ZyYW1lX2lzX21haW5fZnJhbWUodGFyZ2V0RnJhbWUpLCB3ZWJr
aXRfZnJhbWVfaXNfbWFpbl9mcmFtZShzb3VyY2VGcmFtZSkpKTsKKyAgICAgICAgZGVsYXllZFNp
Z25hbHNRdWV1ZS5hcHBlbmQoRGVsYXllZFNpZ25hbChkZWxheWVkU2lnbmFsVHlwZSwgZm9ybUlE
LCBuYW1lcy5nZXQoKSwgdmFsdWVzLmdldCgpLCB3ZWJraXRfZnJhbWVfaXNfbWFpbl9mcmFtZSh0
YXJnZXRGcmFtZSksIHdlYmtpdF9mcmFtZV9pc19tYWluX2ZyYW1lKHNvdXJjZUZyYW1lKSkpOwog
fQogCiBzdGF0aWMgdm9pZCB3aWxsU3VibWl0Rm9ybUNhbGxiYWNrKFdlYktpdFdlYlBhZ2UqIHdl
YlBhZ2UsIFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogZm9ybUVsZW1lbnQsIFdlYktpdEZvcm1T
dWJtaXNzaW9uU3RlcCBzdGVwLCBXZWJLaXRGcmFtZSogc291cmNlRnJhbWUsIFdlYktpdEZyYW1l
KiB0YXJnZXRGcmFtZSwgR1B0ckFycmF5KiB0ZXh0RmllbGROYW1lcywgR1B0ckFycmF5KiB0ZXh0
RmllbGRWYWx1ZXMsIFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uKQogeworICAgIEdSZWZQ
dHI8SlNDVmFsdWU+IGpzRm9ybUVsZW1lbnQgPSBhZG9wdEdSZWYod2Via2l0X2ZyYW1lX2dldF9q
c192YWx1ZV9mb3JfZG9tX29iamVjdCh3ZWJraXRfd2ViX3BhZ2VfZ2V0X21haW5fZnJhbWUod2Vi
UGFnZSksIFdFQktJVF9ET01fT0JKRUNUKGZvcm1FbGVtZW50KSkpOworICAgIGdfYXNzZXJ0KEpT
Q19JU19WQUxVRShqc0Zvcm1FbGVtZW50LmdldCgpKSk7CisgICAgZ19hc3NlcnQoanNjX3ZhbHVl
X2lzX29iamVjdChqc0Zvcm1FbGVtZW50LmdldCgpKSk7CisgICAgZ19hc3NlcnQoanNjX3ZhbHVl
X29iamVjdF9pc19pbnN0YW5jZV9vZihqc0Zvcm1FbGVtZW50LmdldCgpLCAiSFRNTEZvcm1FbGVt
ZW50IikpOworICAgIEdSZWZQdHI8SlNDVmFsdWU+IGlkVmFsdWUgPSBhZG9wdEdSZWYoanNjX3Zh
bHVlX29iamVjdF9nZXRfcHJvcGVydHkoanNGb3JtRWxlbWVudC5nZXQoKSwgImlkIikpOworICAg
IEdVbmlxdWVQdHI8Y2hhcj4gZm9ybUlEKGpzY192YWx1ZV90b19zdHJpbmcoaWRWYWx1ZS5nZXQo
KSkpOworCiAgICAgc3dpdGNoIChzdGVwKSB7CiAgICAgY2FzZSBXRUJLSVRfRk9STV9TVUJNSVNT
SU9OX1dJTExfU0VORF9ET01fRVZFTlQ6Ci0gICAgICAgIGhhbmRsZUZvcm1TdWJtaXNzaW9uQ2Fs
bGJhY2sod2ViUGFnZSwgRm9ybVN1Ym1pc3Npb25XaWxsU2VuZERPTUV2ZW50U2lnbmFsLCAiRm9y
bVN1Ym1pc3Npb25XaWxsU2VuZERPTUV2ZW50IiwgZm9ybUVsZW1lbnQsIHNvdXJjZUZyYW1lLCB0
YXJnZXRGcmFtZSwgdGV4dEZpZWxkTmFtZXMsIHRleHRGaWVsZFZhbHVlcywgZXh0ZW5zaW9uKTsK
KyAgICAgICAgaGFuZGxlRm9ybVN1Ym1pc3Npb25DYWxsYmFjayh3ZWJQYWdlLCBGb3JtU3VibWlz
c2lvbldpbGxTZW5kRE9NRXZlbnRTaWduYWwsICJGb3JtU3VibWlzc2lvbldpbGxTZW5kRE9NRXZl
bnQiLCBmb3JtSUQuZ2V0KCksIHNvdXJjZUZyYW1lLCB0YXJnZXRGcmFtZSwgdGV4dEZpZWxkTmFt
ZXMsIHRleHRGaWVsZFZhbHVlcywgZXh0ZW5zaW9uKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBXRUJLSVRfRk9STV9TVUJNSVNTSU9OX1dJTExfQ09NUExFVEU6Ci0gICAgICAgIGhhbmRsZUZv
cm1TdWJtaXNzaW9uQ2FsbGJhY2sod2ViUGFnZSwgRm9ybVN1Ym1pc3Npb25XaWxsQ29tcGxldGVT
aWduYWwsICJGb3JtU3VibWlzc2lvbldpbGxDb21wbGV0ZSIsIGZvcm1FbGVtZW50LCBzb3VyY2VG
cmFtZSwgdGFyZ2V0RnJhbWUsIHRleHRGaWVsZE5hbWVzLCB0ZXh0RmllbGRWYWx1ZXMsIGV4dGVu
c2lvbik7CisgICAgICAgIGhhbmRsZUZvcm1TdWJtaXNzaW9uQ2FsbGJhY2sod2ViUGFnZSwgRm9y
bVN1Ym1pc3Npb25XaWxsQ29tcGxldGVTaWduYWwsICJGb3JtU3VibWlzc2lvbldpbGxDb21wbGV0
ZSIsIGZvcm1JRC5nZXQoKSwgc291cmNlRnJhbWUsIHRhcmdldEZyYW1lLCB0ZXh0RmllbGROYW1l
cywgdGV4dEZpZWxkVmFsdWVzLCBleHRlbnNpb24pOwogICAgICAgICBicmVhazsKICAgICBkZWZh
dWx0OgogICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOwpAQCAtNDQ3LDE0ICs0NTMsMTAg
QEAgc3RhdGljIHZvaWQgbWV0aG9kQ2FsbENhbGxiYWNrKEdEQnVzQ29ubmVjdGlvbiogY29ubmVj
dGlvbiwgY29uc3QgY2hhciogc2VuZGVyLAogICAgICAgICBpZiAoIXBhZ2UpCiAgICAgICAgICAg
ICByZXR1cm47CiAKLSNpZiBQTEFURk9STShHVEspCi0gICAgICAgIFdlYktpdERPTURvY3VtZW50
KiBkb2N1bWVudCA9IHdlYmtpdF93ZWJfcGFnZV9nZXRfZG9tX2RvY3VtZW50KHBhZ2UpOwotICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IHRpdGxlKHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3RpdGxl
KGRvY3VtZW50KSk7CisgICAgICAgIEdSZWZQdHI8SlNDQ29udGV4dD4ganNDb250ZXh0ID0gYWRv
cHRHUmVmKHdlYmtpdF9mcmFtZV9nZXRfanNfY29udGV4dCh3ZWJraXRfd2ViX3BhZ2VfZ2V0X21h
aW5fZnJhbWUocGFnZSkpKTsKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gdGl0bGVWYWx1ZSA9
IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShqc0NvbnRleHQuZ2V0KCksICJkb2N1bWVu
dC50aXRsZSIpKTsKKyAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiB0aXRsZShqc2NfdmFsdWVfdG9f
c3RyaW5nKHRpdGxlVmFsdWUuZ2V0KCkpKTsKICAgICAgICAgZ19kYnVzX21ldGhvZF9pbnZvY2F0
aW9uX3JldHVybl92YWx1ZShpbnZvY2F0aW9uLCBnX3ZhcmlhbnRfbmV3KCIocykiLCB0aXRsZS5n
ZXQoKSkpOwotI2VsaWYgUExBVEZPUk0oV1BFKQotICAgICAgICAvLyBGSVhNRTogVXNlIEpTQyBB
UEkgdG8gZ2V0IHRoZSB0aXRsZSBmcm9tIEphdmFTY3JpcHQuCi0gICAgICAgIGdfZGJ1c19tZXRo
b2RfaW52b2NhdGlvbl9yZXR1cm5fdmFsdWUoaW52b2NhdGlvbiwgZ192YXJpYW50X25ldygiKHMp
IiwgIiIpKTsKLSNlbmRpZgogICAgIH0gZWxzZSBpZiAoIWdfc3RyY21wMChtZXRob2ROYW1lLCAi
UnVuSmF2YVNjcmlwdEluSXNvbGF0ZWRXb3JsZCIpKSB7CiAgICAgICAgIHVpbnQ2NF90IHBhZ2VJ
RDsKICAgICAgICAgY29uc3QgY2hhciogc2NyaXB0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1dlYlByb2Nlc3NUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9XZWJQcm9jZXNzVGVzdC5jcHAKaW5kZXggODRlMDcy
NTRlNjQuLjE5YzBjMGNmZWE2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdEdMaWIvV2ViUHJvY2Vzc1Rlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0R0xpYi9XZWJQcm9jZXNzVGVzdC5jcHAKQEAgLTM2LDYgKzM2LDE5IEBAIHN0
YXRpYyBUZXN0c01hcCYgdGVzdHNNYXAoKQogICAgIHJldHVybiBzX3Rlc3RzTWFwOwogfQogCitz
dGF0aWMgdm9pZCBjaGVja0xlYWtzKCkKK3sKKyAgICBpZiAoc193YXRjaGVkT2JqZWN0cy5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGdfcHJpbnQoIkxlYWtlZCBvYmplY3RzIGlu
IFdlYlByb2Nlc3M6Iik7CisgICAgZm9yIChjb25zdCBhdXRvIG9iamVjdCA6IHNfd2F0Y2hlZE9i
amVjdHMpCisgICAgICAgIGdfcHJpbnQoIiAlcyglcCkiLCBnX3R5cGVfbmFtZV9mcm9tX2luc3Rh
bmNlKHJlaW50ZXJwcmV0X2Nhc3Q8R1R5cGVJbnN0YW5jZSo+KG9iamVjdCkpLCBvYmplY3QpOwor
ICAgIGdfcHJpbnQoIlxuIik7CisKKyAgICBnX2Fzc2VydChzX3dhdGNoZWRPYmplY3RzLmlzRW1w
dHkoKSk7Cit9CisKIHZvaWQgV2ViUHJvY2Vzc1Rlc3Q6OmFkZChjb25zdCBTdHJpbmcmIHRlc3RO
YW1lLCBzdGQ6OmZ1bmN0aW9uPHN0ZDo6dW5pcXVlX3B0cjxXZWJQcm9jZXNzVGVzdD4gKCk+IGNs
b3N1cmUpCiB7CiAgICAgdGVzdHNNYXAoKS5hZGQodGVzdE5hbWUsIFdURk1vdmUoY2xvc3VyZSkp
OwpAQCAtNjgsMTYgKzgxLDcgQEAgc3RhdGljIGdib29sZWFuIHJ1blRlc3QoV2ViS2l0V2ViUGFn
ZSogd2ViUGFnZSwgY29uc3QgY2hhciogdGVzdFBhdGgpCiBzdGF0aWMgdm9pZCB3ZWJQcm9jZXNz
VGVzdFJ1bm5lckZpbmFsaXplKFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2UpCiB7CiAgICAgZ19vYmpl
Y3RfdW5yZWYod2ViUGFnZSk7Ci0KLSAgICBpZiAoc193YXRjaGVkT2JqZWN0cy5pc0VtcHR5KCkp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIGdfcHJpbnQoIkxlYWtlZCBvYmplY3RzIGluIFdlYlBy
b2Nlc3M6Iik7Ci0gICAgZm9yIChjb25zdCBhdXRvIG9iamVjdCA6IHNfd2F0Y2hlZE9iamVjdHMp
Ci0gICAgICAgIGdfcHJpbnQoIiAlcyglcCkiLCBnX3R5cGVfbmFtZV9mcm9tX2luc3RhbmNlKHJl
aW50ZXJwcmV0X2Nhc3Q8R1R5cGVJbnN0YW5jZSo+KG9iamVjdCkpLCBvYmplY3QpOwotICAgIGdf
cHJpbnQoIlxuIik7Ci0KLSAgICBnX2Fzc2VydChzX3dhdGNoZWRPYmplY3RzLmlzRW1wdHkoKSk7
CisgICAgY2hlY2tMZWFrcygpOwogfQogCiBzdGF0aWMgdm9pZCB3aW5kb3dPYmplY3RDbGVhcmVk
Q2FsbGJhY2soV2ViS2l0U2NyaXB0V29ybGQqIHdvcmxkLCBXZWJLaXRXZWJQYWdlKiB3ZWJQYWdl
LCBXZWJLaXRGcmFtZSogZnJhbWUsIFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uKQpAQCAt
MTAwLDMgKzEwNCw4IEBAIGV4dGVybiAiQyIgdm9pZCB3ZWJraXRfd2ViX2V4dGVuc2lvbl9pbml0
aWFsaXplKFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uKQogICAgIHdlYmtpdFdlYkV4dGVu
c2lvblNldEdhcmJhZ2VDb2xsZWN0T25QYWdlRGVzdHJveShleHRlbnNpb24pOwogICAgIGdfc2ln
bmFsX2Nvbm5lY3Qod2Via2l0X3NjcmlwdF93b3JsZF9nZXRfZGVmYXVsdCgpLCAid2luZG93LW9i
amVjdC1jbGVhcmVkIiwgR19DQUxMQkFDSyh3aW5kb3dPYmplY3RDbGVhcmVkQ2FsbGJhY2spLCBl
eHRlbnNpb24pOwogfQorCitzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fKChkZXN0cnVjdG9yKSkg
Y2hlY2tMZWFrc0F0RXhpdCgpCit7CisgICAgY2hlY2tMZWFrcygpOworfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRWRpdG9yVGVzdC5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9FZGl0b3JUZXN0LmNwcAppbmRleCBjMjJk
OGFiMzg5Mi4uZjlkMDQ0ODMxYmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R3RrL0VkaXRvclRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R3RrL0VkaXRvclRlc3QuY3BwCkBAIC0yMSwxMCArMjEsNiBAQAogCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Rlc3QuaCIKIAotI2RlZmluZSBXRUJLSVRfRE9NX1VTRV9VTlNUQUJMRV9B
UEkKLSNpbmNsdWRlIDx3ZWJraXRkb20vV2ViS2l0RE9NRE9NU2VsZWN0aW9uLmg+Ci0jaW5jbHVk
ZSA8d2Via2l0ZG9tL1dlYktpdERPTURPTVdpbmRvd1Vuc3RhYmxlLmg+Ci0KIGNsYXNzIFdlYktp
dFdlYkVkaXRvclRlc3QgOiBwdWJsaWMgV2ViUHJvY2Vzc1Rlc3QgewogcHVibGljOgogICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8V2ViUHJvY2Vzc1Rlc3Q+IGNyZWF0ZSgpIHsgcmV0dXJuIHN0
ZDo6dW5pcXVlX3B0cjxXZWJQcm9jZXNzVGVzdD4obmV3IFdlYktpdFdlYkVkaXRvclRlc3QoKSk7
IH0KQEAgLTM1LDg5ICszMSw0NSBAQCBwcml2YXRlOgogICAgICAgICAqc2VsZWN0aW9uQ2hhbmdl
ZCA9IHRydWU7CiAgICAgfQogCi0gICAgdm9pZCB0ZXN0U2VsZWN0aW9uU2VsZWN0QWxsKFdlYktp
dFdlYlBhZ2UqIHBhZ2UpCi0gICAgewotICAgICAgICBXZWJLaXRET01Eb2N1bWVudCogZG9jdW1l
bnQgPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2RvbV9kb2N1bWVudChwYWdlKTsKLSAgICAgICAgZ19h
c3NlcnQoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChkb2N1bWVudCkpOwotCi0gICAgICAgIHdlYmtp
dF9kb21fZG9jdW1lbnRfZXhlY19jb21tYW5kKGRvY3VtZW50LCAiU2VsZWN0QWxsIiwgZmFsc2Us
ICIiKTsKLSAgICB9Ci0KLSAgICB2b2lkIHRlc3RTZWxlY3Rpb25Db2xsYXBzZShXZWJLaXRXZWJQ
YWdlKiBwYWdlKQorICAgIGJvb2wgdGVzdFNlbGVjdGlvbmNoYW5nZWQoV2ViS2l0V2ViUGFnZSog
cGFnZSkKICAgICB7Ci0gICAgICAgIFdlYktpdERPTURvY3VtZW50KiBkb2N1bWVudCA9IHdlYmtp
dF93ZWJfcGFnZV9nZXRfZG9tX2RvY3VtZW50KHBhZ2UpOwotICAgICAgICBnX2Fzc2VydChXRUJL
SVRfRE9NX0lTX0RPQ1VNRU5UKGRvY3VtZW50KSk7Ci0gICAgICAgIEdSZWZQdHI8V2ViS2l0RE9N
RE9NV2luZG93PiBkb21XaW5kb3cgPSBhZG9wdEdSZWYod2Via2l0X2RvbV9kb2N1bWVudF9nZXRf
ZGVmYXVsdF92aWV3KGRvY3VtZW50KSk7Ci0gICAgICAgIGdfYXNzZXJ0KFdFQktJVF9ET01fSVNf
RE9NX1dJTkRPVyhkb21XaW5kb3cuZ2V0KCkpKTsKLSAgICAgICAgR1JlZlB0cjxXZWJLaXRET01E
T01TZWxlY3Rpb24+IGRvbVNlbGVjdGlvbiA9IGFkb3B0R1JlZih3ZWJraXRfZG9tX2RvbV93aW5k
b3dfZ2V0X3NlbGVjdGlvbihkb21XaW5kb3cuZ2V0KCkpKTsKLSAgICAgICAgZ19hc3NlcnQoV0VC
S0lUX0RPTV9JU19ET01fU0VMRUNUSU9OKGRvbVNlbGVjdGlvbi5nZXQoKSkpOwotCi0gICAgICAg
IHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9jb2xsYXBzZV90b19zdGFydChkb21TZWxlY3Rpb24u
Z2V0KCksIG51bGxwdHIpOwotICAgIH0KLQotICAgIHZvaWQgdGVzdFNlbGVjdGlvbk1vZGlmeU1v
dmUoV2ViS2l0V2ViUGFnZSogcGFnZSkKLSAgICB7Ci0gICAgICAgIFdlYktpdERPTURvY3VtZW50
KiBkb2N1bWVudCA9IHdlYmtpdF93ZWJfcGFnZV9nZXRfZG9tX2RvY3VtZW50KHBhZ2UpOwotICAg
ICAgICBnX2Fzc2VydChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKGRvY3VtZW50KSk7Ci0gICAgICAg
IEdSZWZQdHI8V2ViS2l0RE9NRE9NV2luZG93PiBkb21XaW5kb3cgPSBhZG9wdEdSZWYod2Via2l0
X2RvbV9kb2N1bWVudF9nZXRfZGVmYXVsdF92aWV3KGRvY3VtZW50KSk7Ci0gICAgICAgIGdfYXNz
ZXJ0KFdFQktJVF9ET01fSVNfRE9NX1dJTkRPVyhkb21XaW5kb3cuZ2V0KCkpKTsKLSAgICAgICAg
R1JlZlB0cjxXZWJLaXRET01ET01TZWxlY3Rpb24+IGRvbVNlbGVjdGlvbiA9IGFkb3B0R1JlZih3
ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3NlbGVjdGlvbihkb21XaW5kb3cuZ2V0KCkpKTsKLSAg
ICAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19ET01fU0VMRUNUSU9OKGRvbVNlbGVjdGlvbi5n
ZXQoKSkpOwotCi0gICAgICAgIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9tb2RpZnkoZG9tU2Vs
ZWN0aW9uLmdldCgpLCAibW92ZSIsICJmb3J3YXJkIiwgImNoYXJhY3RlciIpOwotICAgIH0KLQot
ICAgIHZvaWQgdGVzdFNlbGVjdGlvbk1vZGlmeUV4dGVuZChXZWJLaXRXZWJQYWdlKiBwYWdlKQot
ICAgIHsKLSAgICAgICAgV2ViS2l0RE9NRG9jdW1lbnQqIGRvY3VtZW50ID0gd2Via2l0X3dlYl9w
YWdlX2dldF9kb21fZG9jdW1lbnQocGFnZSk7Ci0gICAgICAgIGdfYXNzZXJ0KFdFQktJVF9ET01f
SVNfRE9DVU1FTlQoZG9jdW1lbnQpKTsKLSAgICAgICAgR1JlZlB0cjxXZWJLaXRET01ET01XaW5k
b3c+IGRvbVdpbmRvdyA9IGFkb3B0R1JlZih3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kZWZhdWx0
X3ZpZXcoZG9jdW1lbnQpKTsKLSAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19ET01fV0lO
RE9XKGRvbVdpbmRvdy5nZXQoKSkpOwotICAgICAgICBHUmVmUHRyPFdlYktpdERPTURPTVNlbGVj
dGlvbj4gZG9tU2VsZWN0aW9uID0gYWRvcHRHUmVmKHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRf
c2VsZWN0aW9uKGRvbVdpbmRvdy5nZXQoKSkpOwotICAgICAgICBnX2Fzc2VydChXRUJLSVRfRE9N
X0lTX0RPTV9TRUxFQ1RJT04oZG9tU2VsZWN0aW9uLmdldCgpKSk7Ci0KLSAgICAgICAgd2Via2l0
X2RvbV9kb21fc2VsZWN0aW9uX21vZGlmeShkb21TZWxlY3Rpb24uZ2V0KCksICJleHRlbmQiLCAi
Zm9yd2FyZCIsICJ3b3JkIik7Ci0gICAgfQotCi0gICAgdm9pZCB0ZXN0U2VsZWN0aW9uVW5zZWxl
Y3QoV2ViS2l0V2ViUGFnZSogcGFnZSkKLSAgICB7Ci0gICAgICAgIFdlYktpdERPTURvY3VtZW50
KiBkb2N1bWVudCA9IHdlYmtpdF93ZWJfcGFnZV9nZXRfZG9tX2RvY3VtZW50KHBhZ2UpOwotICAg
ICAgICBnX2Fzc2VydChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKGRvY3VtZW50KSk7CisgICAgICAg
IGJvb2wgc2VsZWN0aW9uQ2hhbmdlZCA9IGZhbHNlOworCisgICAgICAgIFdlYktpdFdlYkVkaXRv
ciogZWRpdG9yID0gd2Via2l0X3dlYl9wYWdlX2dldF9lZGl0b3IocGFnZSk7CisgICAgICAgIGdf
YXNzZXJ0KFdFQktJVF9JU19XRUJfRURJVE9SKGVkaXRvcikpOworICAgICAgICBhc3NlcnRPYmpl
Y3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKGVkaXRvcikpOworICAgICAgICBn
X3NpZ25hbF9jb25uZWN0X3N3YXBwZWQoZWRpdG9yLCAic2VsZWN0aW9uLWNoYW5nZWQiLCBHX0NB
TExCQUNLKHNlbGVjdGlvbkNoYW5nZWRDYWxsYmFjayksICZzZWxlY3Rpb25DaGFuZ2VkKTsKKwor
ICAgICAgICBHUmVmUHRyPEpTQ0NvbnRleHQ+IGpzQ29udGV4dCA9IGFkb3B0R1JlZih3ZWJraXRf
ZnJhbWVfZ2V0X2pzX2NvbnRleHQod2Via2l0X3dlYl9wYWdlX2dldF9tYWluX2ZyYW1lKHBhZ2Up
KSk7CisgICAgICAgIGdfYXNzZXJ0KEpTQ19JU19DT05URVhUKGpzQ29udGV4dC5nZXQoKSkpOwor
ICAgICAgICBhc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKGpz
Q29udGV4dC5nZXQoKSkpOworCisgICAgICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdGVwc1tdID0g
eworICAgICAgICAgICAgImRvY3VtZW50LmV4ZWNDb21tYW5kKCdTZWxlY3RBbGwnKSIsCisgICAg
ICAgICAgICAid2luZG93LmdldFNlbGVjdGlvbigpLmNvbGxhcHNlVG9TdGFydCgpIiwKKyAgICAg
ICAgICAgICJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCdtb3ZlJywgJ2ZvcndhcmQnLCAn
Y2hhcmFjdGVyJykiLAorICAgICAgICAgICAgIndpbmRvdy5nZXRTZWxlY3Rpb24oKS5tb2RpZnko
J2V4dGVuZCcsICdmb3J3YXJkJywgJ3dvcmQnKSIsCisgICAgICAgICAgICAiZG9jdW1lbnQuZXhl
Y0NvbW1hbmQoJ1Vuc2VsZWN0JykiLAorICAgICAgICAgICAgbnVsbHB0cgorICAgICAgICB9Owor
CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdDsKKyAgICAgICAgdW5zaWduZWQgaSA9
IDA7CisgICAgICAgIHdoaWxlIChjb25zdCBjaGFyKiBjb21tYW5kID0gc3RlcHNbaSsrXSkgewor
ICAgICAgICAgICAgZ19hc3NlcnQoIXNlbGVjdGlvbkNoYW5nZWQpOworICAgICAgICAgICAgcmVz
dWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGpzQ29udGV4dC5nZXQoKSwgY29t
bWFuZCkpOworICAgICAgICAgICAgZ19hc3NlcnQoSlNDX0lTX1ZBTFVFKHJlc3VsdC5nZXQoKSkp
OworICAgICAgICAgICAgZ19hc3NlcnQoc2VsZWN0aW9uQ2hhbmdlZCk7CisgICAgICAgICAgICBz
ZWxlY3Rpb25DaGFuZ2VkID0gZmFsc2U7CisgICAgICAgIH0KIAotICAgICAgICB3ZWJraXRfZG9t
X2RvY3VtZW50X2V4ZWNfY29tbWFuZChkb2N1bWVudCwgIlVuc2VsZWN0IiwgZmFsc2UsICIiKTsK
KyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAgYm9vbCBydW5UZXN0KGNvbnN0IGNo
YXIqIHRlc3ROYW1lLCBXZWJLaXRXZWJQYWdlKiBwYWdlKSBvdmVycmlkZQogICAgIHsKLSAgICAg
ICAgaWYgKCFzdHJjbXAodGVzdE5hbWUsICJzZWxlY3Rpb24tY2hhbmdlZCIpKSB7Ci0gICAgICAg
ICAgICBib29sIHNlbGVjdGlvbkNoYW5nZWQgPSBmYWxzZTsKLQotICAgICAgICAgICAgV2ViS2l0
V2ViRWRpdG9yKiBlZGl0b3IgPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2VkaXRvcihwYWdlKTsKLSAg
ICAgICAgICAgIGdfYXNzZXJ0KFdFQktJVF9JU19XRUJfRURJVE9SKGVkaXRvcikpOwotICAgICAg
ICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChlZGl0
b3IpKTsKLSAgICAgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZChlZGl0b3IsICJzZWxl
Y3Rpb24tY2hhbmdlZCIsIEdfQ0FMTEJBQ0soc2VsZWN0aW9uQ2hhbmdlZENhbGxiYWNrKSwgJnNl
bGVjdGlvbkNoYW5nZWQpOwotCi0gICAgICAgICAgICB0ZXN0U2VsZWN0aW9uU2VsZWN0QWxsKHBh
Z2UpOwotICAgICAgICAgICAgZ19hc3NlcnQoc2VsZWN0aW9uQ2hhbmdlZCk7Ci0KLSAgICAgICAg
ICAgIHNlbGVjdGlvbkNoYW5nZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIHRlc3RTZWxlY3Rpb25D
b2xsYXBzZShwYWdlKTsKLSAgICAgICAgICAgIGdfYXNzZXJ0KHNlbGVjdGlvbkNoYW5nZWQpOwot
Ci0gICAgICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkID0gZmFsc2U7Ci0gICAgICAgICAgICB0ZXN0
U2VsZWN0aW9uTW9kaWZ5TW92ZShwYWdlKTsKLSAgICAgICAgICAgIGdfYXNzZXJ0KHNlbGVjdGlv
bkNoYW5nZWQpOwotCi0gICAgICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkID0gZmFsc2U7Ci0gICAg
ICAgICAgICB0ZXN0U2VsZWN0aW9uTW9kaWZ5RXh0ZW5kKHBhZ2UpOwotICAgICAgICAgICAgZ19h
c3NlcnQoc2VsZWN0aW9uQ2hhbmdlZCk7Ci0KLSAgICAgICAgICAgIHNlbGVjdGlvbkNoYW5nZWQg
PSBmYWxzZTsKLSAgICAgICAgICAgIHRlc3RTZWxlY3Rpb25VbnNlbGVjdChwYWdlKTsKLSAgICAg
ICAgICAgIGdfYXNzZXJ0KHNlbGVjdGlvbkNoYW5nZWQpOwotCi0gICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICAgICAgfQorICAgICAgICBpZiAoIXN0cmNtcCh0ZXN0TmFtZSwgInNlbGVjdGlv
bi1jaGFuZ2VkIikpCisgICAgICAgICAgICByZXR1cm4gdGVzdFNlbGVjdGlvbmNoYW5nZWQocGFn
ZSk7CiAKICAgICAgICAgZ19hc3NlcnRfbm90X3JlYWNoZWQoKTsKICAgICAgICAgcmV0dXJuIGZh
bHNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335931</attachid>
            <date>2018-03-16 04:29:58 -0700</date>
            <delta_ts>2018-03-22 07:31:12 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>wk-jsc-dom-api.diff</filename>
            <type>text/plain</type>
            <size>28964</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQy
Z3RrLTQuMC1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2Rv
Y3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0CmluZGV4IGIyNmI3ZTE0YzIzLi5mMGZmNTE1
OTZlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dl
YmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0CkBAIC0xNDkxLDYgKzE0OTEs
OCBAQCB3ZWJraXRfZnJhbWVfZ2V0X2phdmFzY3JpcHRfZ2xvYmFsX2NvbnRleHQKIHdlYmtpdF9m
cmFtZV9nZXRfamF2YXNjcmlwdF9jb250ZXh0X2Zvcl9zY3JpcHRfd29ybGQKIHdlYmtpdF9mcmFt
ZV9nZXRfanNfY29udGV4dAogd2Via2l0X2ZyYW1lX2dldF9qc19jb250ZXh0X2Zvcl9zY3JpcHRf
d29ybGQKK3dlYmtpdF9mcmFtZV9nZXRfanNfdmFsdWVfZm9yX2RvbV9vYmplY3QKK3dlYmtpdF9m
cmFtZV9nZXRfanNfdmFsdWVfZm9yX2RvbV9vYmplY3RfaW5fc2NyaXB0X3dvcmxkCiAKIDxTVUJT
RUNUSU9OIFN0YW5kYXJkPgogV2ViS2l0RnJhbWVDbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdEZyYW1lLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRG
cmFtZS5jcHAKaW5kZXggMWQxYTk4ZTExN2IuLmU0YzI5YTBhYjY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0RnJhbWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xp
Yi9XZWJLaXRGcmFtZS5jcHAKQEAgLTIwLDkgKzIwLDE0IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiV2ViS2l0RnJhbWUuaCIKIAorI2luY2x1ZGUgIldlYktpdERPTU5vZGVQcml2
YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RnJhbWVQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
U2NyaXB0V29ybGRQcml2YXRlLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNMb2NrLmg+
CiAjaW5jbHVkZSA8anNjL0pTQ0NvbnRleHRQcml2YXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9G
cmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSlNOb2RlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9T
Y3JpcHRDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvV1RGR1R5cGUuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKQEAgLTE0MiwzICsxNDcsMjggQEAgSlNDQ29udGV4
dCogd2Via2l0X2ZyYW1lX2dldF9qc19jb250ZXh0X2Zvcl9zY3JpcHRfd29ybGQoV2ViS2l0RnJh
bWUqIGZyYW1lLCBXZWIKIAogICAgIHJldHVybiBqc2NDb250ZXh0R2V0T3JDcmVhdGUoZnJhbWUt
PnByaXYtPndlYkZyYW1lLT5qc0NvbnRleHRGb3JXb3JsZCh3ZWJraXRTY3JpcHRXb3JsZEdldElu
amVjdGVkQnVuZGxlU2NyaXB0V29ybGQod29ybGQpKSkubGVha1JlZigpOwogfQorCitKU0NWYWx1
ZSogd2Via2l0X2ZyYW1lX2dldF9qc192YWx1ZV9mb3JfZG9tX29iamVjdChXZWJLaXRGcmFtZSog
ZnJhbWUsIFdlYktpdERPTU9iamVjdCogZG9tT2JqZWN0KQoreworICAgIHJldHVybiB3ZWJraXRf
ZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0X2luX3NjcmlwdF93b3JsZChmcmFtZSwg
ZG9tT2JqZWN0LCB3ZWJraXRfc2NyaXB0X3dvcmxkX2dldF9kZWZhdWx0KCkpOworfQorCitKU0NW
YWx1ZSogd2Via2l0X2ZyYW1lX2dldF9qc192YWx1ZV9mb3JfZG9tX29iamVjdF9pbl9zY3JpcHRf
d29ybGQoV2ViS2l0RnJhbWUqIGZyYW1lLCBXZWJLaXRET01PYmplY3QqIGRvbU9iamVjdCwgV2Vi
S2l0U2NyaXB0V29ybGQqIHdvcmxkKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJ
VF9JU19GUkFNRShmcmFtZSksIG51bGxwdHIpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdF
QktJVF9ET01fSVNfT0JKRUNUKGRvbU9iamVjdCksIG51bGxwdHIpOworICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9JU19TQ1JJUFRfV09STEQod29ybGQpLCBudWxscHRyKTsKKworICAg
IGF1dG8qIHdrV29ybGQgPSB3ZWJraXRTY3JpcHRXb3JsZEdldEluamVjdGVkQnVuZGxlU2NyaXB0
V29ybGQod29ybGQpOworICAgIGF1dG8ganNDb250ZXh0ID0ganNjQ29udGV4dEdldE9yQ3JlYXRl
KGZyYW1lLT5wcml2LT53ZWJGcmFtZS0+anNDb250ZXh0Rm9yV29ybGQod2tXb3JsZCkpOworICAg
IEpTRE9NV2luZG93KiBnbG9iYWxPYmplY3QgPSBmcmFtZS0+cHJpdi0+d2ViRnJhbWUtPmNvcmVG
cmFtZSgpLT5zY3JpcHQoKS5nbG9iYWxPYmplY3Qod2tXb3JsZC0+Y29yZVdvcmxkKCkpOworICAg
IEpTQzo6RXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCk7CisgICAg
SlNWYWx1ZVJlZiBqc1ZhbHVlID0gbnVsbHB0cjsKKyAgICB7CisgICAgICAgIEpTQzo6SlNMb2Nr
SG9sZGVyIGxvY2soZXhlYyk7CisgICAgICAgIGlmIChXRUJLSVRfRE9NX0lTX05PREUoZG9tT2Jq
ZWN0KSkKKyAgICAgICAgICAgIGpzVmFsdWUgPSB0b1JlZihleGVjLCB0b0pTKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgV2ViS2l0Ojpjb3JlKFdFQktJVF9ET01fTk9ERShkb21PYmplY3QpKSkpOworICAg
IH0KKworICAgIHJldHVybiBqc1ZhbHVlID8ganNjQ29udGV4dEdldE9yQ3JlYXRlVmFsdWUoanND
b250ZXh0LmdldCgpLCBqc1ZhbHVlKS5sZWFrUmVmKCkgOiBudWxscHRyOworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTU5vZGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGUuY3BwCmluZGV4IGRjNzViMTA0N2ZhLi5mYmQxYzcz
Mzk3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlLmNwcApAQCAtMzAs
MTAgKzMwLDEzIEBACiAjaW5jbHVkZSAiV2ViS2l0RE9NTm9kZUxpc3RQcml2YXRlLmgiCiAjaW5j
bHVkZSAiV2ViS2l0RE9NTm9kZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRET01Qcml2YXRl
LmgiCisjaW5jbHVkZSA8anNjL0pTQ0NvbnRleHRQcml2YXRlLmg+CisjaW5jbHVkZSA8anNjL0pT
Q1ZhbHVlUHJpdmF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ1NTSW1wb3J0UnVsZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRE9NRXhjZXB0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVu
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9KU05vZGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NWR1Rlc3RzLmg+CiAjaW5j
bHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTY5NywzICs3
MDAsMTEgQEAgV2ViS2l0RE9NRWxlbWVudCogd2Via2l0X2RvbV9ub2RlX2dldF9wYXJlbnRfZWxl
bWVudChXZWJLaXRET01Ob2RlKiBzZWxmKQogICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0
UmVzdWx0LmdldCgpKTsKIH0KIAorV2ViS2l0RE9NTm9kZSogd2Via2l0X2RvbV9ub2RlX2Zvcl9q
c192YWx1ZShKU0NWYWx1ZSogdmFsdWUpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoSlND
X0lTX1ZBTFVFKHZhbHVlKSwgbnVsbHB0cik7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoanNj
X3ZhbHVlX2lzX29iamVjdCh2YWx1ZSksIG51bGxwdHIpOworCisgICAgYXV0byoganNPYmplY3Qg
PSBKU1ZhbHVlVG9PYmplY3QoanNjQ29udGV4dEdldEpTQ29udGV4dChqc2NfdmFsdWVfZ2V0X2Nv
bnRleHQodmFsdWUpKSwganNjVmFsdWVHZXRKU1ZhbHVlKHZhbHVlKSwgbnVsbHB0cik7CisgICAg
cmV0dXJuIGpzT2JqZWN0ID8gV2ViS2l0OjpraXQoV2ViQ29yZTo6SlNOb2RlOjp0b1dyYXBwZWQo
KnRvSlMoanNPYmplY3QpLT52bSgpLCB0b0pTKGpzT2JqZWN0KSkpIDogbnVsbHB0cjsKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01Ob2RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZS5oCmluZGV4IGM1NGM4YTczODllLi4zMWNm
NDFlZGVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZS5oCkBAIC0yNSw2
ICsyNSw3IEBACiAjZGVmaW5lIFdlYktpdERPTU5vZGVfaAogCiAjaW5jbHVkZSA8Z2xpYi1vYmpl
Y3QuaD4KKyNpbmNsdWRlIDxqc2MvanNjLmg+CiAjaW5jbHVkZSA8d2Via2l0ZG9tL1dlYktpdERP
TU9iamVjdC5oPgogI2luY2x1ZGUgPHdlYmtpdGRvbS93ZWJraXRkb21kZWZpbmVzLmg+CiAKQEAg
LTQyNyw2ICs0MjgsOSBAQCB3ZWJraXRfZG9tX25vZGVfc2V0X3RleHRfY29udGVudChXZWJLaXRE
T01Ob2RlKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJvcgogV0VCS0lUX0FQSSBXZWJL
aXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9ub2RlX2dldF9wYXJlbnRfZWxlbWVudChXZWJLaXRE
T01Ob2RlKiBzZWxmKTsKIAorV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlICoKK3dlYmtpdF9kb21f
bm9kZV9mb3JfanNfdmFsdWUoSlNDVmFsdWUqIHZhbHVlKTsKKwogR19FTkRfREVDTFMKIAogI2Vu
ZGlmIC8qIFdlYktpdERPTU5vZGVfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL2RvY3Mvd2Via2l0ZG9tZ3RrLTQuMC1z
ZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vZG9jcy93ZWJraXRkb21ndGstNC4wLXNlY3Rpb25zLnR4dAppbmRleCA3ODc4NjI0
NDE2NS4uNzc2ZWI0OGMzZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9kb2NzL3dlYmtpdGRvbWd0ay00LjAtc2VjdGlvbnMu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9kb2NzL3dlYmtpdGRvbWd0ay00LjAtc2VjdGlvbnMudHh0CkBAIC04OTcsNiArODk3LDcg
QEAgd2Via2l0X2RvbV9ub2RlX2dldF9uYW1lc3BhY2VfdXJpCiB3ZWJraXRfZG9tX25vZGVfZ2V0
X3ByZWZpeAogd2Via2l0X2RvbV9ub2RlX3NldF9wcmVmaXgKIHdlYmtpdF9kb21fbm9kZV9nZXRf
bG9jYWxfbmFtZQord2Via2l0X2RvbV9ub2RlX2Zvcl9qc192YWx1ZQogCiA8U1VCU0VDVElPTiBT
dGFuZGFyZD4KIFdlYktpdERPTU5vZGVDbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0RnJhbWUuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZyYW1lLmgKaW5k
ZXggMmM0NTU4YTdkOTguLjQ2NzljYWIwNjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRGcmFtZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZyYW1lLmgK
QEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlIDxqc2MvanNjLmg+CiAjaW5jbHVkZSA8d2Via2l0
Mi9XZWJLaXREZWZpbmVzLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRTY3JpcHRXb3JsZC5o
PgorI2luY2x1ZGUgPHdlYmtpdGRvbS93ZWJraXRkb20uaD4KIAogR19CRUdJTl9ERUNMUwogCkBA
IC03Niw2ICs3NywxNSBAQCBXRUJLSVRfQVBJIEpTQ0NvbnRleHQgKgogd2Via2l0X2ZyYW1lX2dl
dF9qc19jb250ZXh0X2Zvcl9zY3JpcHRfd29ybGQgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAg
KmZyYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgV2ViS2l0U2NyaXB0V29ybGQgKndvcmxkKTsKIAorV0VCS0lUX0FQSSBKU0NWYWx1ZSAq
Cit3ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0ICAgICAgICAgICAgICAg
ICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdERPTU9iamVjdCAgICpkb21fb2Jq
ZWN0KTsKKworV0VCS0lUX0FQSSBKU0NWYWx1ZSAqCit3ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVl
X2Zvcl9kb21fb2JqZWN0X2luX3NjcmlwdF93b3JsZCAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1l
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdlYktpdERPTU9iamVjdCAgICpkb21fb2JqZWN0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFNjcmlwdFdvcmxkICp3
b3JsZCk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL0ZyYW1lVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdEdMaWIvRnJhbWVUZXN0LmNwcAppbmRleCBmMGY0ZTQ3NGRjMy4uMGVl
Njg0YTdhMDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xp
Yi9GcmFtZVRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xp
Yi9GcmFtZVRlc3QuY3BwCkBAIC0yMSw2ICsyMSw3IEBACiAKICNpbmNsdWRlICJXZWJQcm9jZXNz
VGVzdC5oIgogI2luY2x1ZGUgPGdpby9naW8uaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVl
UHRyLmg+CiAKIGNsYXNzIFdlYktpdEZyYW1lVGVzdCA6IHB1YmxpYyBXZWJQcm9jZXNzVGVzdCB7
CiBwdWJsaWM6CkBAIC01OCw2ICs1OSw2MiBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAKKyAgICBib29sIHRlc3RKYXZhU2NyaXB0VmFsdWVzKFdlYktpdFdlYlBhZ2Uq
IHBhZ2UpCisgICAgeworICAgICAgICBXZWJLaXRGcmFtZSogZnJhbWUgPSB3ZWJraXRfd2ViX3Bh
Z2VfZ2V0X21haW5fZnJhbWUocGFnZSk7CisgICAgICAgIGdfYXNzZXJ0KFdFQktJVF9JU19GUkFN
RShmcmFtZSkpOworCisgICAgICAgIEdSZWZQdHI8SlNDQ29udGV4dD4ganNDb250ZXh0ID0gYWRv
cHRHUmVmKHdlYmtpdF9mcmFtZV9nZXRfanNfY29udGV4dChmcmFtZSkpOworICAgICAgICBnX2Fz
c2VydChKU0NfSVNfQ09OVEVYVChqc0NvbnRleHQuZ2V0KCkpKTsKKyAgICAgICAgYXNzZXJ0T2Jq
ZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChqc0NvbnRleHQuZ2V0KCkpKTsK
KworICAgICAgICBXZWJLaXRET01Eb2N1bWVudCogZG9jdW1lbnQgPSB3ZWJraXRfd2ViX3BhZ2Vf
Z2V0X2RvbV9kb2N1bWVudChwYWdlKTsKKyAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19E
T0NVTUVOVChkb2N1bWVudCkpOworICAgICAgICBhc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVz
dEZpbmlzaGVzKEdfT0JKRUNUKGRvY3VtZW50KSk7CisKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1
ZT4ganNEb2N1bWVudCA9IGFkb3B0R1JlZih3ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9k
b21fb2JqZWN0KGZyYW1lLCBXRUJLSVRfRE9NX09CSkVDVChkb2N1bWVudCkpKTsKKyAgICAgICAg
Z19hc3NlcnQoSlNDX0lTX1ZBTFVFKGpzRG9jdW1lbnQuZ2V0KCkpKTsKKyAgICAgICAgYXNzZXJ0
T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChqc0RvY3VtZW50LmdldCgp
KSk7CisgICAgICAgIGdfYXNzZXJ0KGpzY192YWx1ZV9nZXRfY29udGV4dChqc0RvY3VtZW50Lmdl
dCgpKSA9PSBqc0NvbnRleHQuZ2V0KCkpOworCisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHZh
bHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2dldF92YWx1ZShqc0NvbnRleHQuZ2V0KCksICJk
b2N1bWVudCIpKTsKKyAgICAgICAgZ19hc3NlcnQodmFsdWUuZ2V0KCkgPT0ganNEb2N1bWVudC5n
ZXQoKSk7CisKKyAgICAgICAgV2ViS2l0RE9NRWxlbWVudCogcCA9IHdlYmtpdF9kb21fZG9jdW1l
bnRfZ2V0X2VsZW1lbnRfYnlfaWQoZG9jdW1lbnQsICJwYXJhZ3JhcGgiKTsKKyAgICAgICAgZ19h
c3NlcnQoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHApKTsKKyAgICAgICAgYXNzZXJ0T2JqZWN0SXNE
ZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChwKSk7CisKKyAgICAgICAgR1JlZlB0cjxK
U0NWYWx1ZT4ganNQID0gYWRvcHRHUmVmKHdlYmtpdF9mcmFtZV9nZXRfanNfdmFsdWVfZm9yX2Rv
bV9vYmplY3QoZnJhbWUsIFdFQktJVF9ET01fT0JKRUNUKHApKSk7CisgICAgICAgIGdfYXNzZXJ0
KEpTQ19JU19WQUxVRShqc1AuZ2V0KCkpKTsKKyAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVk
V2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChqc1AuZ2V0KCkpKTsKKyAgICAgICAgZ19hc3NlcnQo
anNjX3ZhbHVlX2lzX29iamVjdChqc1AuZ2V0KCkpKTsKKyAgICAgICAgZ19hc3NlcnQoanNjX3Zh
bHVlX2dldF9jb250ZXh0KGpzUC5nZXQoKSkgPT0ganNDb250ZXh0LmdldCgpKTsKKworICAgICAg
ICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShqc0NvbnRleHQuZ2V0KCks
ICJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFyYWdyYXBoJykiKSk7CisgICAgICAgIGdfYXNz
ZXJ0KHZhbHVlLmdldCgpID09IGpzUC5nZXQoKSk7CisgICAgICAgIHZhbHVlID0gYWRvcHRHUmVm
KGpzY192YWx1ZV9vYmplY3RfaW52b2tlX21ldGhvZChqc0RvY3VtZW50LmdldCgpLCAiZ2V0RWxl
bWVudEJ5SWQiLCBHX1RZUEVfU1RSSU5HLCAicGFyYWdyYXBoIiwgR19UWVBFX05PTkUpKTsKKyAg
ICAgICAgZ19hc3NlcnQodmFsdWUuZ2V0KCkgPT0ganNQLmdldCgpKTsKKworICAgICAgICB2YWx1
ZSA9IGFkb3B0R1JlZihqc2NfdmFsdWVfb2JqZWN0X2dldF9wcm9wZXJ0eShqc1AuZ2V0KCksICJp
bm5lclRleHQiKSk7CisgICAgICAgIGdfYXNzZXJ0KEpTQ19JU19WQUxVRSh2YWx1ZS5nZXQoKSkp
OworICAgICAgICBhc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNU
KHZhbHVlLmdldCgpKSk7CisgICAgICAgIGdfYXNzZXJ0KGpzY192YWx1ZV9pc19zdHJpbmcodmFs
dWUuZ2V0KCkpKTsKKyAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBzdHJWYWx1ZShqc2NfdmFsdWVf
dG9fc3RyaW5nKHZhbHVlLmdldCgpKSk7CisgICAgICAgIGdfYXNzZXJ0X2NtcHN0cihzdHJWYWx1
ZS5nZXQoKSwgPT0sICJUaGlzIGlzIGEgdGVzdCIpOworCisgICAgICAgIEdSZWZQdHI8SlNDVmFs
dWU+IGpzSW1hZ2UgPSBhZG9wdEdSZWYoanNjX3ZhbHVlX29iamVjdF9pbnZva2VfbWV0aG9kKGpz
RG9jdW1lbnQuZ2V0KCksICJnZXRFbGVtZW50QnlJZCIsIEdfVFlQRV9TVFJJTkcsICJpbWFnZSIs
IEdfVFlQRV9OT05FKSk7CisgICAgICAgIGdfYXNzZXJ0KEpTQ19JU19WQUxVRShqc0ltYWdlLmdl
dCgpKSk7CisgICAgICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19P
QkpFQ1QoanNJbWFnZS5nZXQoKSkpOworICAgICAgICBnX2Fzc2VydChqc2NfdmFsdWVfaXNfb2Jq
ZWN0KGpzSW1hZ2UuZ2V0KCkpKTsKKworICAgICAgICBXZWJLaXRET01Ob2RlKiBpbWFnZSA9IHdl
YmtpdF9kb21fbm9kZV9mb3JfanNfdmFsdWUoanNJbWFnZS5nZXQoKSk7CisgICAgICAgIGdfYXNz
ZXJ0KFdFQktJVF9ET01fSVNfRUxFTUVOVChpbWFnZSkpOworICAgICAgICBhc3NlcnRPYmplY3RJ
c0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKGltYWdlKSk7CisgICAgICAgIGdfYXNz
ZXJ0KHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRfYnlfaWQoZG9jdW1lbnQsICJpbWFn
ZSIpID09IFdFQktJVF9ET01fRUxFTUVOVChpbWFnZSkpOworCisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKwogICAgIGJvb2wgcnVuVGVzdChjb25zdCBjaGFyKiB0ZXN0TmFtZSwgV2ViS2l0
V2ViUGFnZSogcGFnZSkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGlmICghc3RyY21wKHRlc3RO
YW1lLCAibWFpbi1mcmFtZSIpKQpAQCAtNjYsNiArMTIzLDggQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgIHJldHVybiB0ZXN0VVJJKHBhZ2UpOwogICAgICAgICBpZiAoIXN0cmNtcCh0ZXN0TmFtZSwg
ImphdmFzY3JpcHQtY29udGV4dCIpKQogICAgICAgICAgICAgcmV0dXJuIHRlc3RKYXZhU2NyaXB0
Q29udGV4dChwYWdlKTsKKyAgICAgICAgaWYgKCFzdHJjbXAodGVzdE5hbWUsICJqYXZhc2NyaXB0
LXZhbHVlcyIpKQorICAgICAgICAgICAgcmV0dXJuIHRlc3RKYXZhU2NyaXB0VmFsdWVzKHBhZ2Up
OwogCiAgICAgICAgIGdfYXNzZXJ0X25vdF9yZWFjaGVkKCk7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTc3LDQgKzEzNiw1IEBAIHN0YXRpYyB2b2lkIF9fYXR0cmlidXRlX18oKGNvbnN0cnVj
dG9yKSkgcmVnaXN0ZXJUZXN0cygpCiAgICAgUkVHSVNURVJfVEVTVChXZWJLaXRGcmFtZVRlc3Qs
ICJXZWJLaXRGcmFtZS9tYWluLWZyYW1lIik7CiAgICAgUkVHSVNURVJfVEVTVChXZWJLaXRGcmFt
ZVRlc3QsICJXZWJLaXRGcmFtZS91cmkiKTsKICAgICBSRUdJU1RFUl9URVNUKFdlYktpdEZyYW1l
VGVzdCwgIldlYktpdEZyYW1lL2phdmFzY3JpcHQtY29udGV4dCIpOworICAgIFJFR0lTVEVSX1RF
U1QoV2ViS2l0RnJhbWVUZXN0LCAiV2ViS2l0RnJhbWUvamF2YXNjcmlwdC12YWx1ZXMiKTsKIH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0RnJh
bWUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RGcmFtZS5j
cHAKaW5kZXggMjM0MWZiMzE2ZGUuLjZmMzM3MjliMTgwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEZyYW1lLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEZyYW1lLmNwcApAQCAtMzYsMTEgKzM2LDE4
IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJLaXRGcmFtZUphdmFTY3JpcHRDb250ZXh0KFdlYlZpZXdU
ZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGdfYXNzZXJ0KHRlc3QtPnJ1bldlYlByb2Nl
c3NUZXN0KCJXZWJLaXRGcmFtZSIsICJqYXZhc2NyaXB0LWNvbnRleHQiKSk7CiB9CiAKK3N0YXRp
YyB2b2lkIHRlc3RXZWJLaXRGcmFtZUphdmFTY3JpcHRWYWx1ZXMoV2ViVmlld1Rlc3QqIHRlc3Qs
IGdjb25zdHBvaW50ZXIpCit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIHRlc3RIVE1MID0gIjxo
dG1sPjxib2R5PjxwIGlkPSdwYXJhZ3JhcGgnPlRoaXMgaXMgYSB0ZXN0PC9wPjxpbWcgaWQ9J2lt
YWdlJyBzcmM9J2Zvby5wbmcnPjwvYm9keT48L2h0bWw+IjsKKyAgICBnX2Fzc2VydCh0ZXN0LT5y
dW5XZWJQcm9jZXNzVGVzdCgiV2ViS2l0RnJhbWUiLCAiamF2YXNjcmlwdC12YWx1ZXMiLCB0ZXN0
SFRNTCkpOworfQorCiB2b2lkIGJlZm9yZUFsbCgpCiB7CiAgICAgV2ViVmlld1Rlc3Q6OmFkZCgi
V2ViS2l0RnJhbWUiLCAibWFpbi1mcmFtZSIsIHRlc3RXZWJLaXRGcmFtZU1haW5GcmFtZSk7CiAg
ICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0RnJhbWUiLCAidXJpIiwgdGVzdFdlYktpdEZyYW1l
VVJJKTsKICAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRGcmFtZSIsICJqYXZhc2NyaXB0LWNv
bnRleHQiLCB0ZXN0V2ViS2l0RnJhbWVKYXZhU2NyaXB0Q29udGV4dCk7CisgICAgV2ViVmlld1Rl
c3Q6OmFkZCgiV2ViS2l0RnJhbWUiLCAiamF2YXNjcmlwdC12YWx1ZXMiLCB0ZXN0V2ViS2l0RnJh
bWVKYXZhU2NyaXB0VmFsdWVzKTsKIH0KIAogdm9pZCBhZnRlckFsbCgpCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvV2ViRXh0ZW5zaW9uVGVzdC5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvV2ViRXh0ZW5zaW9uVGVzdC5j
cHAKaW5kZXggZjI0NGIxNjNkN2IuLmNiOTU3YTE3ZjZiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvV2ViRXh0ZW5zaW9uVGVzdC5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1dlYkV4dGVuc2lvblRlc3QuY3BwCkBA
IC0yMjksMTUgKzIyOSwyMyBAQCBzdGF0aWMgR1ZhcmlhbnQqIHNlcmlhbGl6ZUNvbnRleHRNZW51
KFdlYktpdENvbnRleHRNZW51KiBtZW51KQogICAgIHJldHVybiBnX3ZhcmlhbnRfYnVpbGRlcl9l
bmQoJmJ1aWxkZXIpOwogfQogCi1zdGF0aWMgR1ZhcmlhbnQqIHNlcmlhbGl6ZU5vZGUoV2ViS2l0
RE9NTm9kZSogbm9kZSkKK3N0YXRpYyBHVmFyaWFudCogc2VyaWFsaXplTm9kZShKU0NWYWx1ZSog
bm9kZSkKIHsKICAgICBHVmFyaWFudEJ1aWxkZXIgYnVpbGRlcjsKICAgICBnX3ZhcmlhbnRfYnVp
bGRlcl9pbml0KCZidWlsZGVyLCBHX1ZBUklBTlRfVFlQRV9BUlJBWSk7Ci0gICAgZ192YXJpYW50
X2J1aWxkZXJfYWRkKCZidWlsZGVyLCAie3N2fSIsICJOYW1lIiwgZ192YXJpYW50X25ld190YWtl
X3N0cmluZyh3ZWJraXRfZG9tX25vZGVfZ2V0X25vZGVfbmFtZShub2RlKSkpOwotICAgIGdfdmFy
aWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAiVHlwZSIsIGdfdmFyaWFudF9uZXdf
dWludDMyKHdlYmtpdF9kb21fbm9kZV9nZXRfbm9kZV90eXBlKG5vZGUpKSk7Ci0gICAgZ192YXJp
YW50X2J1aWxkZXJfYWRkKCZidWlsZGVyLCAie3N2fSIsICJDb250ZW50cyIsIGdfdmFyaWFudF9u
ZXdfdGFrZV9zdHJpbmcod2Via2l0X2RvbV9ub2RlX2dldF90ZXh0X2NvbnRlbnQobm9kZSkpKTsK
LSAgICBXZWJLaXRET01Ob2RlKiBwYXJlbnQgPSB3ZWJraXRfZG9tX25vZGVfZ2V0X3BhcmVudF9u
b2RlKG5vZGUpOwotICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAi
UGFyZW50IiwgcGFyZW50ID8gZ192YXJpYW50X25ld190YWtlX3N0cmluZyh3ZWJraXRfZG9tX25v
ZGVfZ2V0X25vZGVfbmFtZShwYXJlbnQpKSA6IGdfdmFyaWFudF9uZXdfc3RyaW5nKCJST09UIikp
OworICAgIEdSZWZQdHI8SlNDVmFsdWU+IHZhbHVlID0gYWRvcHRHUmVmKGpzY192YWx1ZV9vYmpl
Y3RfZ2V0X3Byb3BlcnR5KG5vZGUsICJub2RlTmFtZSIpKTsKKyAgICBnX3ZhcmlhbnRfYnVpbGRl
cl9hZGQoJmJ1aWxkZXIsICJ7c3Z9IiwgIk5hbWUiLCBnX3ZhcmlhbnRfbmV3X3Rha2Vfc3RyaW5n
KGpzY192YWx1ZV90b19zdHJpbmcodmFsdWUuZ2V0KCkpKSk7CisgICAgdmFsdWUgPSBhZG9wdEdS
ZWYoanNjX3ZhbHVlX29iamVjdF9nZXRfcHJvcGVydHkobm9kZSwgIm5vZGVUeXBlIikpOworICAg
IGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAiVHlwZSIsIGdfdmFyaWFu
dF9uZXdfdWludDMyKGpzY192YWx1ZV90b19pbnQzMih2YWx1ZS5nZXQoKSkpKTsKKyAgICB2YWx1
ZSA9IGFkb3B0R1JlZihqc2NfdmFsdWVfb2JqZWN0X2dldF9wcm9wZXJ0eShub2RlLCAidGV4dENv
bnRlbnQiKSk7CisgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZidWlsZGVyLCAie3N2fSIsICJD
b250ZW50cyIsIGdfdmFyaWFudF9uZXdfdGFrZV9zdHJpbmcoanNjX3ZhbHVlX3RvX3N0cmluZyh2
YWx1ZS5nZXQoKSkpKTsKKyAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfdmFsdWVfb2JqZWN0X2dl
dF9wcm9wZXJ0eShub2RlLCAicGFyZW50Tm9kZSIpKTsKKyAgICBpZiAoanNjX3ZhbHVlX2lzX251
bGwodmFsdWUuZ2V0KCkpKQorICAgICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmJ1aWxkZXIs
ICJ7c3Z9IiwgIlBhcmVudCIsIGdfdmFyaWFudF9uZXdfc3RyaW5nKCJST09UIikpOworICAgIGVs
c2UgeworICAgICAgICB2YWx1ZSA9IGpzY192YWx1ZV9vYmplY3RfZ2V0X3Byb3BlcnR5KHZhbHVl
LmdldCgpLCAibm9kZU5hbWUiKTsKKyAgICAgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZidWls
ZGVyLCAie3N2fSIsICJQYXJlbnQiLCBnX3ZhcmlhbnRfbmV3X3Rha2Vfc3RyaW5nKGpzY192YWx1
ZV90b19zdHJpbmcodmFsdWUuZ2V0KCkpKSk7CisgICAgfQogICAgIHJldHVybiBnX3ZhcmlhbnRf
YnVpbGRlcl9lbmQoJmJ1aWxkZXIpOwogfQogCkBAIC0yNjcsNyArMjc1LDkgQEAgc3RhdGljIGdi
b29sZWFuIGNvbnRleHRNZW51Q2FsbGJhY2soV2ViS2l0V2ViUGFnZSogcGFnZSwgV2ViS2l0Q29u
dGV4dE1lbnUqIG1lbnUKICAgICBpZiAoIWdfc3RyY21wMChwYWdlVVJJLCAiQ29udGV4dE1lbnVU
ZXN0Tm9kZSIpKSB7CiAgICAgICAgIFdlYktpdERPTU5vZGUqIG5vZGUgPSB3ZWJraXRfd2ViX2hp
dF90ZXN0X3Jlc3VsdF9nZXRfbm9kZShoaXRUZXN0UmVzdWx0KTsKICAgICAgICAgZ19hc3NlcnQo
V0VCS0lUX0RPTV9JU19OT0RFKG5vZGUpKTsKLSAgICAgICAgd2Via2l0X2NvbnRleHRfbWVudV9z
ZXRfdXNlcl9kYXRhKG1lbnUsIHNlcmlhbGl6ZU5vZGUobm9kZSkpOworICAgICAgICBhdXRvKiBm
cmFtZSA9IHdlYmtpdF93ZWJfcGFnZV9nZXRfbWFpbl9mcmFtZShwYWdlKTsKKyAgICAgICAgR1Jl
ZlB0cjxKU0NWYWx1ZT4ganNOb2RlID0gYWRvcHRHUmVmKHdlYmtpdF9mcmFtZV9nZXRfanNfdmFs
dWVfZm9yX2RvbV9vYmplY3QoZnJhbWUsIFdFQktJVF9ET01fT0JKRUNUKG5vZGUpKSk7CisgICAg
ICAgIHdlYmtpdF9jb250ZXh0X21lbnVfc2V0X3VzZXJfZGF0YShtZW51LCBzZXJpYWxpemVOb2Rl
KGpzTm9kZS5nZXQoKSkpOwogICAgICAgICByZXR1cm4gVFJVRTsKICAgICB9CiAKQEAgLTI4Miwy
OCArMjkyLDEzIEBAIHN0YXRpYyB2b2lkIGNvbnNvbGVNZXNzYWdlU2VudENhbGxiYWNrKFdlYktp
dFdlYlBhZ2UqIHdlYlBhZ2UsIFdlYktpdENvbnNvbGVNZXNzCiAgICAgICAgIHdlYmtpdF9jb25z
b2xlX21lc3NhZ2VfZ2V0X2xldmVsKGNvbnNvbGVNZXNzYWdlKSwgd2Via2l0X2NvbnNvbGVfbWVz
c2FnZV9nZXRfdGV4dChjb25zb2xlTWVzc2FnZSksCiAgICAgICAgIHdlYmtpdF9jb25zb2xlX21l
c3NhZ2VfZ2V0X2xpbmUoY29uc29sZU1lc3NhZ2UpLCB3ZWJraXRfY29uc29sZV9tZXNzYWdlX2dl
dF9zb3VyY2VfaWQoY29uc29sZU1lc3NhZ2UpKTsKICAgICBHVW5pcXVlUHRyPGNoYXI+IG1lc3Nh
Z2VTdHJpbmcoZ192YXJpYW50X3ByaW50KHZhcmlhbnQuZ2V0KCksIEZBTFNFKSk7Ci0jaWYgUExB
VEZPUk0oR1RLKQotICAgIEdSZWZQdHI8V2ViS2l0RE9NRE9NV2luZG93PiB3aW5kb3cgPSBhZG9w
dEdSZWYod2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZGVmYXVsdF92aWV3KHdlYmtpdF93ZWJfcGFn
ZV9nZXRfZG9tX2RvY3VtZW50KHdlYlBhZ2UpKSk7Ci0gICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9J
U19ET01fV0lORE9XKHdpbmRvdy5nZXQoKSkpOwotICAgIHdlYmtpdF9kb21fZG9tX3dpbmRvd193
ZWJraXRfbWVzc2FnZV9oYW5kbGVyc19wb3N0X21lc3NhZ2Uod2luZG93LmdldCgpLCAiY29uc29s
ZSIsIG1lc3NhZ2VTdHJpbmcuZ2V0KCkpOwotI2Vsc2UKLSAgICBHVW5pcXVlUHRyPGNoYXI+IGVz
Y2FwZWRNZXNzYWdlU3RyaW5nKHN0YXRpY19jYXN0PGNoYXIqPihnX21hbGxvYyhzdHJsZW4obWVz
c2FnZVN0cmluZy5nZXQoKSkgKiAyICsgMSkpKTsKLSAgICBjaGFyKiBzcmMgPSBtZXNzYWdlU3Ry
aW5nLmdldCgpOwotICAgIGNoYXIqIGRlc3QgPSBlc2NhcGVkTWVzc2FnZVN0cmluZy5nZXQoKTsK
LSAgICB3aGlsZSAoKnNyYykgewotICAgICAgICBpZiAoKnNyYyA9PSAnIicpIHsKLSAgICAgICAg
ICAgICpkZXN0KysgPSAnXFwnOwotICAgICAgICAgICAgKmRlc3QrKyA9ICciJzsKLSAgICAgICAg
fSBlbHNlCi0gICAgICAgICAgICAqZGVzdCsrID0gKnNyYzsKLSAgICAgICAgKytzcmM7CisgICAg
R1JlZlB0cjxKU0NDb250ZXh0PiBqc0NvbnRleHQgPSBhZG9wdEdSZWYod2Via2l0X2ZyYW1lX2dl
dF9qc19jb250ZXh0KHdlYmtpdF93ZWJfcGFnZV9nZXRfbWFpbl9mcmFtZSh3ZWJQYWdlKSkpOwor
ICAgIEdSZWZQdHI8SlNDVmFsdWU+IGNvbnNvbGUgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZh
bHVhdGUoanNDb250ZXh0LmdldCgpLCAid2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMuY29u
c29sZSIpKTsKKyAgICBnX2Fzc2VydChKU0NfSVNfVkFMVUUoY29uc29sZS5nZXQoKSkpOworICAg
IGlmIChqc2NfdmFsdWVfaXNfb2JqZWN0KGNvbnNvbGUuZ2V0KCkpKSB7CisgICAgICAgIEdSZWZQ
dHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfdmFsdWVfb2JqZWN0X2ludm9rZV9t
ZXRob2QoY29uc29sZS5nZXQoKSwgInBvc3RNZXNzYWdlIiwgR19UWVBFX1NUUklORywgbWVzc2Fn
ZVN0cmluZy5nZXQoKSwgR19UWVBFX05PTkUpKTsKKyAgICAgICAgZ19hc3NlcnQoSlNDX0lTX1ZB
TFVFKHJlc3VsdC5nZXQoKSkpOwogICAgIH0KLSAgICAqZGVzdCA9ICdcMCc7Ci0gICAgR1VuaXF1
ZVB0cjxjaGFyPiBzY3JpcHQoZ19zdHJkdXBfcHJpbnRmKCJ3aW5kb3cud2Via2l0Lm1lc3NhZ2VI
YW5kbGVycy5jb25zb2xlLnBvc3RNZXNzYWdlKFwiJXNcIik7IiwgZXNjYXBlZE1lc3NhZ2VTdHJp
bmcuZ2V0KCkpKTsKLSAgICBKU0dsb2JhbENvbnRleHRSZWYganNDb250ZXh0ID0gd2Via2l0X2Zy
YW1lX2dldF9qYXZhc2NyaXB0X2dsb2JhbF9jb250ZXh0KHdlYmtpdF93ZWJfcGFnZV9nZXRfbWFp
bl9mcmFtZSh3ZWJQYWdlKSk7Ci0gICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGpzU2NyaXB0
KEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhzY3JpcHQuZ2V0KCkpKTsKLSAg
ICBKU0V2YWx1YXRlU2NyaXB0KGpzQ29udGV4dCwganNTY3JpcHQuZ2V0KCksIG51bGxwdHIsIG51
bGxwdHIsIDEsIG51bGxwdHIpOwotI2VuZGlmCiB9CiAKICNpZiBQTEFURk9STShHVEspCkBAIC0z
MjIsMTMgKzMxNywxNyBAQCBzdGF0aWMgdm9pZCBlbWl0Rm9ybUNvbnRyb2xzQXNzb2NpYXRlZChH
REJ1c0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IGNoYXIqCiAKIHN0YXRpYyB2b2lkIGZv
cm1Db250cm9sc0Fzc29jaWF0ZWRDYWxsYmFjayhXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlLCBHUHRy
QXJyYXkqIGZvcm1FbGVtZW50cywgV2ViS2l0V2ViRXh0ZW5zaW9uKiBleHRlbnNpb24pCiB7Cisg
ICAgYXV0byogZnJhbWUgPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X21haW5fZnJhbWUod2ViUGFnZSk7
CiAgICAgR1N0cmluZyogZm9ybUlkc0J1aWxkZXIgPSBnX3N0cmluZ19uZXcobnVsbHB0cik7CiAg
ICAgZm9yIChndWludCBpID0gMDsgaSA8IGZvcm1FbGVtZW50cy0+bGVuOyArK2kpIHsKICAgICAg
ICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19FTEVNRU5UKGdfcHRyX2FycmF5X2luZGV4KGZvcm1F
bGVtZW50cywgaSkpKTsKLSAgICAgICAgYXV0byBkb21FbGVtZW50ID0gV0VCS0lUX0RPTV9FTEVN
RU5UKGdfcHRyX2FycmF5X2luZGV4KGZvcm1FbGVtZW50cywgaSkpOwotICAgICAgICBHVW5pcXVl
UHRyPGNoYXI+IGVsZW1lbnRJRCh3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2lkKGRvbUVsZW1lbnQp
KTsKLSAgICAgICAgaWYgKGVsZW1lbnRJRCkKLSAgICAgICAgICAgIGdfc3RyaW5nX2FwcGVuZChm
b3JtSWRzQnVpbGRlciwgZWxlbWVudElELmdldCgpKTsKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1
ZT4gdmFsdWUgPSBhZG9wdEdSZWYod2Via2l0X2ZyYW1lX2dldF9qc192YWx1ZV9mb3JfZG9tX29i
amVjdChmcmFtZSwgV0VCS0lUX0RPTV9PQkpFQ1QoZ19wdHJfYXJyYXlfaW5kZXgoZm9ybUVsZW1l
bnRzLCBpKSkpKTsKKyAgICAgICAgZ19hc3NlcnQoSlNDX0lTX1ZBTFVFKHZhbHVlLmdldCgpKSk7
CisgICAgICAgIGdfYXNzZXJ0KGpzY192YWx1ZV9pc19vYmplY3QodmFsdWUuZ2V0KCkpKTsKKyAg
ICAgICAgZ19hc3NlcnQoanNjX3ZhbHVlX29iamVjdF9pc19pbnN0YW5jZV9vZih2YWx1ZS5nZXQo
KSwgIkVsZW1lbnQiKSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IGlkVmFsdWUgPSBhZG9w
dEdSZWYoanNjX3ZhbHVlX29iamVjdF9nZXRfcHJvcGVydHkodmFsdWUuZ2V0KCksICJpZCIpKTsK
KyAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBlbGVtZW50SUQoanNjX3ZhbHVlX3RvX3N0cmluZyhp
ZFZhbHVlLmdldCgpKSk7CisgICAgICAgIGdfc3RyaW5nX2FwcGVuZChmb3JtSWRzQnVpbGRlciwg
ZWxlbWVudElELmdldCgpKTsKICAgICB9CiAgICAgaWYgKCFmb3JtSWRzQnVpbGRlci0+bGVuKSB7
CiAgICAgICAgIGdfc3RyaW5nX2ZyZWUoZm9ybUlkc0J1aWxkZXIsIFRSVUUpOwpAQCAtMzgzLDcg
KzM4MiwxMyBAQCBzdGF0aWMgdm9pZCBoYW5kbGVGb3JtU3VibWlzc2lvbkNhbGxiYWNrKFdlYktp
dFdlYlBhZ2UqIHdlYlBhZ2UsIERlbGF5ZWRTaWduYWxUeQogc3RhdGljIHZvaWQgd2lsbFN1Ym1p
dEZvcm1DYWxsYmFjayhXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlLCBXZWJLaXRET01FbGVtZW50KiBm
b3JtRWxlbWVudCwgV2ViS2l0Rm9ybVN1Ym1pc3Npb25TdGVwIHN0ZXAsIFdlYktpdEZyYW1lKiBz
b3VyY2VGcmFtZSwgV2ViS2l0RnJhbWUqIHRhcmdldEZyYW1lLCBHUHRyQXJyYXkqIHRleHRGaWVs
ZE5hbWVzLCBHUHRyQXJyYXkqIHRleHRGaWVsZFZhbHVlcywgV2ViS2l0V2ViRXh0ZW5zaW9uKiBl
eHRlbnNpb24pCiB7CiAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19IVE1MX0ZPUk1fRUxFTUVO
VChmb3JtRWxlbWVudCkpOwotICAgIEdVbmlxdWVQdHI8Y2hhcj4gZm9ybUlEKHdlYmtpdF9kb21f
ZWxlbWVudF9nZXRfaWQoZm9ybUVsZW1lbnQpKTsKKyAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBqc0Zv
cm1FbGVtZW50ID0gYWRvcHRHUmVmKHdlYmtpdF9mcmFtZV9nZXRfanNfdmFsdWVfZm9yX2RvbV9v
YmplY3Qod2Via2l0X3dlYl9wYWdlX2dldF9tYWluX2ZyYW1lKHdlYlBhZ2UpLCBXRUJLSVRfRE9N
X09CSkVDVChmb3JtRWxlbWVudCkpKTsKKyAgICBnX2Fzc2VydChKU0NfSVNfVkFMVUUoanNGb3Jt
RWxlbWVudC5nZXQoKSkpOworICAgIGdfYXNzZXJ0KGpzY192YWx1ZV9pc19vYmplY3QoanNGb3Jt
RWxlbWVudC5nZXQoKSkpOworICAgIGdfYXNzZXJ0KGpzY192YWx1ZV9vYmplY3RfaXNfaW5zdGFu
Y2Vfb2YoanNGb3JtRWxlbWVudC5nZXQoKSwgIkhUTUxGb3JtRWxlbWVudCIpKTsKKyAgICBHUmVm
UHRyPEpTQ1ZhbHVlPiBpZFZhbHVlID0gYWRvcHRHUmVmKGpzY192YWx1ZV9vYmplY3RfZ2V0X3By
b3BlcnR5KGpzRm9ybUVsZW1lbnQuZ2V0KCksICJpZCIpKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+
IGZvcm1JRChqc2NfdmFsdWVfdG9fc3RyaW5nKGlkVmFsdWUuZ2V0KCkpKTsKKwogICAgIHN3aXRj
aCAoc3RlcCkgewogICAgIGNhc2UgV0VCS0lUX0ZPUk1fU1VCTUlTU0lPTl9XSUxMX1NFTkRfRE9N
X0VWRU5UOgogICAgICAgICBoYW5kbGVGb3JtU3VibWlzc2lvbkNhbGxiYWNrKHdlYlBhZ2UsIEZv
cm1TdWJtaXNzaW9uV2lsbFNlbmRET01FdmVudFNpZ25hbCwgIkZvcm1TdWJtaXNzaW9uV2lsbFNl
bmRET01FdmVudCIsIGZvcm1JRC5nZXQoKSwgc291cmNlRnJhbWUsIHRhcmdldEZyYW1lLCB0ZXh0
RmllbGROYW1lcywgdGV4dEZpZWxkVmFsdWVzLCBleHRlbnNpb24pOwpAQCAtNDQ5LDE0ICs0NTQs
MTAgQEAgc3RhdGljIHZvaWQgbWV0aG9kQ2FsbENhbGxiYWNrKEdEQnVzQ29ubmVjdGlvbiogY29u
bmVjdGlvbiwgY29uc3QgY2hhciogc2VuZGVyLAogICAgICAgICBpZiAoIXBhZ2UpCiAgICAgICAg
ICAgICByZXR1cm47CiAKLSNpZiBQTEFURk9STShHVEspCi0gICAgICAgIFdlYktpdERPTURvY3Vt
ZW50KiBkb2N1bWVudCA9IHdlYmtpdF93ZWJfcGFnZV9nZXRfZG9tX2RvY3VtZW50KHBhZ2UpOwot
ICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHRpdGxlKHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3Rp
dGxlKGRvY3VtZW50KSk7CisgICAgICAgIEdSZWZQdHI8SlNDQ29udGV4dD4ganNDb250ZXh0ID0g
YWRvcHRHUmVmKHdlYmtpdF9mcmFtZV9nZXRfanNfY29udGV4dCh3ZWJraXRfd2ViX3BhZ2VfZ2V0
X21haW5fZnJhbWUocGFnZSkpKTsKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gdGl0bGVWYWx1
ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShqc0NvbnRleHQuZ2V0KCksICJkb2N1
bWVudC50aXRsZSIpKTsKKyAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiB0aXRsZShqc2NfdmFsdWVf
dG9fc3RyaW5nKHRpdGxlVmFsdWUuZ2V0KCkpKTsKICAgICAgICAgZ19kYnVzX21ldGhvZF9pbnZv
Y2F0aW9uX3JldHVybl92YWx1ZShpbnZvY2F0aW9uLCBnX3ZhcmlhbnRfbmV3KCIocykiLCB0aXRs
ZS5nZXQoKSkpOwotI2VsaWYgUExBVEZPUk0oV1BFKQotICAgICAgICAvLyBGSVhNRTogVXNlIEpT
QyBBUEkgdG8gZ2V0IHRoZSB0aXRsZSBmcm9tIEphdmFTY3JpcHQuCi0gICAgICAgIGdfZGJ1c19t
ZXRob2RfaW52b2NhdGlvbl9yZXR1cm5fdmFsdWUoaW52b2NhdGlvbiwgZ192YXJpYW50X25ldygi
KHMpIiwgIiIpKTsKLSNlbmRpZgogICAgIH0gZWxzZSBpZiAoIWdfc3RyY21wMChtZXRob2ROYW1l
LCAiUnVuSmF2YVNjcmlwdEluSXNvbGF0ZWRXb3JsZCIpKSB7CiAgICAgICAgIHVpbnQ2NF90IHBh
Z2VJRDsKICAgICAgICAgY29uc3QgY2hhciogc2NyaXB0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1dlYlByb2Nlc3NUZXN0LmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9XZWJQcm9jZXNzVGVzdC5jcHAKaW5kZXggMjMw
ZmU4YjRjNTYuLjMwMmY1NzY0ZDhkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdEdMaWIvV2ViUHJvY2Vzc1Rlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R0xpYi9XZWJQcm9jZXNzVGVzdC5jcHAKQEAgLTM2LDYgKzM2LDE5IEBA
IHN0YXRpYyBUZXN0c01hcCYgdGVzdHNNYXAoKQogICAgIHJldHVybiBzX3Rlc3RzTWFwOwogfQog
CitzdGF0aWMgdm9pZCBjaGVja0xlYWtzKCkKK3sKKyAgICBpZiAoc193YXRjaGVkT2JqZWN0cy5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGdfcHJpbnQoIkxlYWtlZCBvYmplY3Rz
IGluIFdlYlByb2Nlc3M6Iik7CisgICAgZm9yIChjb25zdCBhdXRvIG9iamVjdCA6IHNfd2F0Y2hl
ZE9iamVjdHMpCisgICAgICAgIGdfcHJpbnQoIiAlcyglcCkiLCBnX3R5cGVfbmFtZV9mcm9tX2lu
c3RhbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8R1R5cGVJbnN0YW5jZSo+KG9iamVjdCkpLCBvYmplY3Qp
OworICAgIGdfcHJpbnQoIlxuIik7CisKKyAgICBnX2Fzc2VydChzX3dhdGNoZWRPYmplY3RzLmlz
RW1wdHkoKSk7Cit9CisKIHZvaWQgV2ViUHJvY2Vzc1Rlc3Q6OmFkZChjb25zdCBTdHJpbmcmIHRl
c3ROYW1lLCBzdGQ6OmZ1bmN0aW9uPHN0ZDo6dW5pcXVlX3B0cjxXZWJQcm9jZXNzVGVzdD4gKCk+
IGNsb3N1cmUpCiB7CiAgICAgdGVzdHNNYXAoKS5hZGQodGVzdE5hbWUsIFdURk1vdmUoY2xvc3Vy
ZSkpOwpAQCAtNjgsMTYgKzgxLDcgQEAgc3RhdGljIGdib29sZWFuIHJ1blRlc3QoV2ViS2l0V2Vi
UGFnZSogd2ViUGFnZSwgY29uc3QgY2hhciogdGVzdFBhdGgpCiBzdGF0aWMgdm9pZCB3ZWJQcm9j
ZXNzVGVzdFJ1bm5lckZpbmFsaXplKFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2UpCiB7CiAgICAgZ19v
YmplY3RfdW5yZWYod2ViUGFnZSk7Ci0KLSAgICBpZiAoc193YXRjaGVkT2JqZWN0cy5pc0VtcHR5
KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGdfcHJpbnQoIkxlYWtlZCBvYmplY3RzIGluIFdl
YlByb2Nlc3M6Iik7Ci0gICAgZm9yIChjb25zdCBhdXRvIG9iamVjdCA6IHNfd2F0Y2hlZE9iamVj
dHMpCi0gICAgICAgIGdfcHJpbnQoIiAlcyglcCkiLCBnX3R5cGVfbmFtZV9mcm9tX2luc3RhbmNl
KHJlaW50ZXJwcmV0X2Nhc3Q8R1R5cGVJbnN0YW5jZSo+KG9iamVjdCkpLCBvYmplY3QpOwotICAg
IGdfcHJpbnQoIlxuIik7Ci0KLSAgICBnX2Fzc2VydChzX3dhdGNoZWRPYmplY3RzLmlzRW1wdHko
KSk7CisgICAgY2hlY2tMZWFrcygpOwogfQogCiBzdGF0aWMgdm9pZCB3aW5kb3dPYmplY3RDbGVh
cmVkQ2FsbGJhY2soV2ViS2l0U2NyaXB0V29ybGQqIHdvcmxkLCBXZWJLaXRXZWJQYWdlKiB3ZWJQ
YWdlLCBXZWJLaXRGcmFtZSogZnJhbWUsIFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uKQpA
QCAtMTAwLDMgKzEwNCw4IEBAIGV4dGVybiAiQyIgdm9pZCB3ZWJraXRfd2ViX2V4dGVuc2lvbl9p
bml0aWFsaXplKFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uKQogICAgIHdlYmtpdFdlYkV4
dGVuc2lvblNldEdhcmJhZ2VDb2xsZWN0T25QYWdlRGVzdHJveShleHRlbnNpb24pOwogICAgIGdf
c2lnbmFsX2Nvbm5lY3Qod2Via2l0X3NjcmlwdF93b3JsZF9nZXRfZGVmYXVsdCgpLCAid2luZG93
LW9iamVjdC1jbGVhcmVkIiwgR19DQUxMQkFDSyh3aW5kb3dPYmplY3RDbGVhcmVkQ2FsbGJhY2sp
LCBleHRlbnNpb24pOwogfQorCitzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fKChkZXN0cnVjdG9y
KSkgY2hlY2tMZWFrc0F0RXhpdCgpCit7CisgICAgY2hlY2tMZWFrcygpOworfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRWRpdG9yVGVzdC5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9FZGl0b3JUZXN0LmNwcAppbmRleCBj
MjJkOGFiMzg5Mi4uZjlkMDQ0ODMxYmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0R3RrL0VkaXRvclRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0R3RrL0VkaXRvclRlc3QuY3BwCkBAIC0yMSwxMCArMjEsNiBAQAogCiAjaW5j
bHVkZSAiV2ViUHJvY2Vzc1Rlc3QuaCIKIAotI2RlZmluZSBXRUJLSVRfRE9NX1VTRV9VTlNUQUJM
RV9BUEkKLSNpbmNsdWRlIDx3ZWJraXRkb20vV2ViS2l0RE9NRE9NU2VsZWN0aW9uLmg+Ci0jaW5j
bHVkZSA8d2Via2l0ZG9tL1dlYktpdERPTURPTVdpbmRvd1Vuc3RhYmxlLmg+Ci0KIGNsYXNzIFdl
YktpdFdlYkVkaXRvclRlc3QgOiBwdWJsaWMgV2ViUHJvY2Vzc1Rlc3QgewogcHVibGljOgogICAg
IHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8V2ViUHJvY2Vzc1Rlc3Q+IGNyZWF0ZSgpIHsgcmV0dXJu
IHN0ZDo6dW5pcXVlX3B0cjxXZWJQcm9jZXNzVGVzdD4obmV3IFdlYktpdFdlYkVkaXRvclRlc3Qo
KSk7IH0KQEAgLTM1LDg5ICszMSw0NSBAQCBwcml2YXRlOgogICAgICAgICAqc2VsZWN0aW9uQ2hh
bmdlZCA9IHRydWU7CiAgICAgfQogCi0gICAgdm9pZCB0ZXN0U2VsZWN0aW9uU2VsZWN0QWxsKFdl
YktpdFdlYlBhZ2UqIHBhZ2UpCi0gICAgewotICAgICAgICBXZWJLaXRET01Eb2N1bWVudCogZG9j
dW1lbnQgPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2RvbV9kb2N1bWVudChwYWdlKTsKLSAgICAgICAg
Z19hc3NlcnQoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChkb2N1bWVudCkpOwotCi0gICAgICAgIHdl
YmtpdF9kb21fZG9jdW1lbnRfZXhlY19jb21tYW5kKGRvY3VtZW50LCAiU2VsZWN0QWxsIiwgZmFs
c2UsICIiKTsKLSAgICB9Ci0KLSAgICB2b2lkIHRlc3RTZWxlY3Rpb25Db2xsYXBzZShXZWJLaXRX
ZWJQYWdlKiBwYWdlKQorICAgIGJvb2wgdGVzdFNlbGVjdGlvbmNoYW5nZWQoV2ViS2l0V2ViUGFn
ZSogcGFnZSkKICAgICB7Ci0gICAgICAgIFdlYktpdERPTURvY3VtZW50KiBkb2N1bWVudCA9IHdl
YmtpdF93ZWJfcGFnZV9nZXRfZG9tX2RvY3VtZW50KHBhZ2UpOwotICAgICAgICBnX2Fzc2VydChX
RUJLSVRfRE9NX0lTX0RPQ1VNRU5UKGRvY3VtZW50KSk7Ci0gICAgICAgIEdSZWZQdHI8V2ViS2l0
RE9NRE9NV2luZG93PiBkb21XaW5kb3cgPSBhZG9wdEdSZWYod2Via2l0X2RvbV9kb2N1bWVudF9n
ZXRfZGVmYXVsdF92aWV3KGRvY3VtZW50KSk7Ci0gICAgICAgIGdfYXNzZXJ0KFdFQktJVF9ET01f
SVNfRE9NX1dJTkRPVyhkb21XaW5kb3cuZ2V0KCkpKTsKLSAgICAgICAgR1JlZlB0cjxXZWJLaXRE
T01ET01TZWxlY3Rpb24+IGRvbVNlbGVjdGlvbiA9IGFkb3B0R1JlZih3ZWJraXRfZG9tX2RvbV93
aW5kb3dfZ2V0X3NlbGVjdGlvbihkb21XaW5kb3cuZ2V0KCkpKTsKLSAgICAgICAgZ19hc3NlcnQo
V0VCS0lUX0RPTV9JU19ET01fU0VMRUNUSU9OKGRvbVNlbGVjdGlvbi5nZXQoKSkpOwotCi0gICAg
ICAgIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9jb2xsYXBzZV90b19zdGFydChkb21TZWxlY3Rp
b24uZ2V0KCksIG51bGxwdHIpOwotICAgIH0KLQotICAgIHZvaWQgdGVzdFNlbGVjdGlvbk1vZGlm
eU1vdmUoV2ViS2l0V2ViUGFnZSogcGFnZSkKLSAgICB7Ci0gICAgICAgIFdlYktpdERPTURvY3Vt
ZW50KiBkb2N1bWVudCA9IHdlYmtpdF93ZWJfcGFnZV9nZXRfZG9tX2RvY3VtZW50KHBhZ2UpOwot
ICAgICAgICBnX2Fzc2VydChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKGRvY3VtZW50KSk7Ci0gICAg
ICAgIEdSZWZQdHI8V2ViS2l0RE9NRE9NV2luZG93PiBkb21XaW5kb3cgPSBhZG9wdEdSZWYod2Vi
a2l0X2RvbV9kb2N1bWVudF9nZXRfZGVmYXVsdF92aWV3KGRvY3VtZW50KSk7Ci0gICAgICAgIGdf
YXNzZXJ0KFdFQktJVF9ET01fSVNfRE9NX1dJTkRPVyhkb21XaW5kb3cuZ2V0KCkpKTsKLSAgICAg
ICAgR1JlZlB0cjxXZWJLaXRET01ET01TZWxlY3Rpb24+IGRvbVNlbGVjdGlvbiA9IGFkb3B0R1Jl
Zih3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3NlbGVjdGlvbihkb21XaW5kb3cuZ2V0KCkpKTsK
LSAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19ET01fU0VMRUNUSU9OKGRvbVNlbGVjdGlv
bi5nZXQoKSkpOwotCi0gICAgICAgIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9tb2RpZnkoZG9t
U2VsZWN0aW9uLmdldCgpLCAibW92ZSIsICJmb3J3YXJkIiwgImNoYXJhY3RlciIpOwotICAgIH0K
LQotICAgIHZvaWQgdGVzdFNlbGVjdGlvbk1vZGlmeUV4dGVuZChXZWJLaXRXZWJQYWdlKiBwYWdl
KQotICAgIHsKLSAgICAgICAgV2ViS2l0RE9NRG9jdW1lbnQqIGRvY3VtZW50ID0gd2Via2l0X3dl
Yl9wYWdlX2dldF9kb21fZG9jdW1lbnQocGFnZSk7Ci0gICAgICAgIGdfYXNzZXJ0KFdFQktJVF9E
T01fSVNfRE9DVU1FTlQoZG9jdW1lbnQpKTsKLSAgICAgICAgR1JlZlB0cjxXZWJLaXRET01ET01X
aW5kb3c+IGRvbVdpbmRvdyA9IGFkb3B0R1JlZih3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kZWZh
dWx0X3ZpZXcoZG9jdW1lbnQpKTsKLSAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19ET01f
V0lORE9XKGRvbVdpbmRvdy5nZXQoKSkpOwotICAgICAgICBHUmVmUHRyPFdlYktpdERPTURPTVNl
bGVjdGlvbj4gZG9tU2VsZWN0aW9uID0gYWRvcHRHUmVmKHdlYmtpdF9kb21fZG9tX3dpbmRvd19n
ZXRfc2VsZWN0aW9uKGRvbVdpbmRvdy5nZXQoKSkpOwotICAgICAgICBnX2Fzc2VydChXRUJLSVRf
RE9NX0lTX0RPTV9TRUxFQ1RJT04oZG9tU2VsZWN0aW9uLmdldCgpKSk7Ci0KLSAgICAgICAgd2Vi
a2l0X2RvbV9kb21fc2VsZWN0aW9uX21vZGlmeShkb21TZWxlY3Rpb24uZ2V0KCksICJleHRlbmQi
LCAiZm9yd2FyZCIsICJ3b3JkIik7Ci0gICAgfQotCi0gICAgdm9pZCB0ZXN0U2VsZWN0aW9uVW5z
ZWxlY3QoV2ViS2l0V2ViUGFnZSogcGFnZSkKLSAgICB7Ci0gICAgICAgIFdlYktpdERPTURvY3Vt
ZW50KiBkb2N1bWVudCA9IHdlYmtpdF93ZWJfcGFnZV9nZXRfZG9tX2RvY3VtZW50KHBhZ2UpOwot
ICAgICAgICBnX2Fzc2VydChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKGRvY3VtZW50KSk7CisgICAg
ICAgIGJvb2wgc2VsZWN0aW9uQ2hhbmdlZCA9IGZhbHNlOworCisgICAgICAgIFdlYktpdFdlYkVk
aXRvciogZWRpdG9yID0gd2Via2l0X3dlYl9wYWdlX2dldF9lZGl0b3IocGFnZSk7CisgICAgICAg
IGdfYXNzZXJ0KFdFQktJVF9JU19XRUJfRURJVE9SKGVkaXRvcikpOworICAgICAgICBhc3NlcnRP
YmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKGVkaXRvcikpOworICAgICAg
ICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQoZWRpdG9yLCAic2VsZWN0aW9uLWNoYW5nZWQiLCBH
X0NBTExCQUNLKHNlbGVjdGlvbkNoYW5nZWRDYWxsYmFjayksICZzZWxlY3Rpb25DaGFuZ2VkKTsK
KworICAgICAgICBHUmVmUHRyPEpTQ0NvbnRleHQ+IGpzQ29udGV4dCA9IGFkb3B0R1JlZih3ZWJr
aXRfZnJhbWVfZ2V0X2pzX2NvbnRleHQod2Via2l0X3dlYl9wYWdlX2dldF9tYWluX2ZyYW1lKHBh
Z2UpKSk7CisgICAgICAgIGdfYXNzZXJ0KEpTQ19JU19DT05URVhUKGpzQ29udGV4dC5nZXQoKSkp
OworICAgICAgICBhc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNU
KGpzQ29udGV4dC5nZXQoKSkpOworCisgICAgICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdGVwc1td
ID0geworICAgICAgICAgICAgImRvY3VtZW50LmV4ZWNDb21tYW5kKCdTZWxlY3RBbGwnKSIsCisg
ICAgICAgICAgICAid2luZG93LmdldFNlbGVjdGlvbigpLmNvbGxhcHNlVG9TdGFydCgpIiwKKyAg
ICAgICAgICAgICJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCdtb3ZlJywgJ2ZvcndhcmQn
LCAnY2hhcmFjdGVyJykiLAorICAgICAgICAgICAgIndpbmRvdy5nZXRTZWxlY3Rpb24oKS5tb2Rp
ZnkoJ2V4dGVuZCcsICdmb3J3YXJkJywgJ3dvcmQnKSIsCisgICAgICAgICAgICAiZG9jdW1lbnQu
ZXhlY0NvbW1hbmQoJ1Vuc2VsZWN0JykiLAorICAgICAgICAgICAgbnVsbHB0cgorICAgICAgICB9
OworCisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdDsKKyAgICAgICAgdW5zaWduZWQg
aSA9IDA7CisgICAgICAgIHdoaWxlIChjb25zdCBjaGFyKiBjb21tYW5kID0gc3RlcHNbaSsrXSkg
eworICAgICAgICAgICAgZ19hc3NlcnQoIXNlbGVjdGlvbkNoYW5nZWQpOworICAgICAgICAgICAg
cmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGpzQ29udGV4dC5nZXQoKSwg
Y29tbWFuZCkpOworICAgICAgICAgICAgZ19hc3NlcnQoSlNDX0lTX1ZBTFVFKHJlc3VsdC5nZXQo
KSkpOworICAgICAgICAgICAgZ19hc3NlcnQoc2VsZWN0aW9uQ2hhbmdlZCk7CisgICAgICAgICAg
ICBzZWxlY3Rpb25DaGFuZ2VkID0gZmFsc2U7CisgICAgICAgIH0KIAotICAgICAgICB3ZWJraXRf
ZG9tX2RvY3VtZW50X2V4ZWNfY29tbWFuZChkb2N1bWVudCwgIlVuc2VsZWN0IiwgZmFsc2UsICIi
KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAgYm9vbCBydW5UZXN0KGNvbnN0
IGNoYXIqIHRlc3ROYW1lLCBXZWJLaXRXZWJQYWdlKiBwYWdlKSBvdmVycmlkZQogICAgIHsKLSAg
ICAgICAgaWYgKCFzdHJjbXAodGVzdE5hbWUsICJzZWxlY3Rpb24tY2hhbmdlZCIpKSB7Ci0gICAg
ICAgICAgICBib29sIHNlbGVjdGlvbkNoYW5nZWQgPSBmYWxzZTsKLQotICAgICAgICAgICAgV2Vi
S2l0V2ViRWRpdG9yKiBlZGl0b3IgPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2VkaXRvcihwYWdlKTsK
LSAgICAgICAgICAgIGdfYXNzZXJ0KFdFQktJVF9JU19XRUJfRURJVE9SKGVkaXRvcikpOwotICAg
ICAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChl
ZGl0b3IpKTsKLSAgICAgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZChlZGl0b3IsICJz
ZWxlY3Rpb24tY2hhbmdlZCIsIEdfQ0FMTEJBQ0soc2VsZWN0aW9uQ2hhbmdlZENhbGxiYWNrKSwg
JnNlbGVjdGlvbkNoYW5nZWQpOwotCi0gICAgICAgICAgICB0ZXN0U2VsZWN0aW9uU2VsZWN0QWxs
KHBhZ2UpOwotICAgICAgICAgICAgZ19hc3NlcnQoc2VsZWN0aW9uQ2hhbmdlZCk7Ci0KLSAgICAg
ICAgICAgIHNlbGVjdGlvbkNoYW5nZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIHRlc3RTZWxlY3Rp
b25Db2xsYXBzZShwYWdlKTsKLSAgICAgICAgICAgIGdfYXNzZXJ0KHNlbGVjdGlvbkNoYW5nZWQp
OwotCi0gICAgICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkID0gZmFsc2U7Ci0gICAgICAgICAgICB0
ZXN0U2VsZWN0aW9uTW9kaWZ5TW92ZShwYWdlKTsKLSAgICAgICAgICAgIGdfYXNzZXJ0KHNlbGVj
dGlvbkNoYW5nZWQpOwotCi0gICAgICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkID0gZmFsc2U7Ci0g
ICAgICAgICAgICB0ZXN0U2VsZWN0aW9uTW9kaWZ5RXh0ZW5kKHBhZ2UpOwotICAgICAgICAgICAg
Z19hc3NlcnQoc2VsZWN0aW9uQ2hhbmdlZCk7Ci0KLSAgICAgICAgICAgIHNlbGVjdGlvbkNoYW5n
ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIHRlc3RTZWxlY3Rpb25VbnNlbGVjdChwYWdlKTsKLSAg
ICAgICAgICAgIGdfYXNzZXJ0KHNlbGVjdGlvbkNoYW5nZWQpOwotCi0gICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICAgICAgfQorICAgICAgICBpZiAoIXN0cmNtcCh0ZXN0TmFtZSwgInNlbGVj
dGlvbi1jaGFuZ2VkIikpCisgICAgICAgICAgICByZXR1cm4gdGVzdFNlbGVjdGlvbmNoYW5nZWQo
cGFnZSk7CiAKICAgICAgICAgZ19hc3NlcnRfbm90X3JlYWNoZWQoKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336279</attachid>
            <date>2018-03-22 07:31:12 -0700</date>
            <delta_ts>2018-03-22 07:34:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-js-dom.diff</filename>
            <type>text/plain</type>
            <size>745557</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA0NTM4YWUwNzk4MC4uZGQ5
MTY2OTI5NjEgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAxOC0wMy0yMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBBZGQgQVBJIHRvIGNvbnZlcnQgYmV0d2VlbiBE
T00gYW5kIEpTQ1ZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODM0NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBEZWZpbmUgRk9SV0FSRElOR19IRUFERVJTX1dQRV9ET01fRElSLgorCisgICAgICAg
ICogU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2U6CisKIDIwMTgtMDMtMjEgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0g
SW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBKYXZhU2NyaXB0Q29yZSBnbGliIGJpbmRpbmdzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IGM0OTM2OWJiZDE1Li5lMmU2NTQ3ODk2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
OTUgQEAKKzIwMTgtMDMtMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtHVEtdW1dQRV0gQWRkIEFQSSB0byBjb252ZXJ0IGJldHdlZW4gRE9N
IGFuZCBKU0NWYWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTgzNDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIG1ldGhvZHMgdG8gZ2V0IGEgSlNDVmFsdWUgZm9yIGEgV2ViS2l0RE9NT2JqZWN0
IGFuZCB0byBjcmVhdGUgYSBXZWJLaXRET01Ob2RlIGZyb20gYSBKU0NWYWx1ZS4gRGVwcmVjYXRl
CisgICAgICAgIG1vc3Qgb2YgdGhlIEdUSysgRE9NIGJpbmRpbmdzIEFQSSBhbmQgbW92ZSB0aGUg
bm9uLWRlcHJlY2F0ZWQgcGFydHMgdG8gZ2xpYiBkaXIgdG8gYmUgZXhwb3NlZCBieSBXUEUgdG9v
LgorCisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgICogUGxhdGZvcm1XUEUu
Y21ha2U6CisgICAgICAgICogU291cmNlc0dUSy50eHQ6CisgICAgICAgICogU291cmNlc1dQRS50
eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0
aW9ucy50eHQ6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9E
T00vRE9NT2JqZWN0Q2FjaGUuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL0RPTU9iamVjdENhY2hlLmNwcC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9ET01PYmplY3RDYWNo
ZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vRE9NT2JqZWN0Q2FjaGUuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01Eb2N1bWVudC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpraXQpOgorICAgICAgICAoV2ViS2l0Ojpjb3JlKToKKyAgICAgICAgKFdl
YktpdDo6d3JhcERvY3VtZW50KToKKyAgICAgICAgKHdlYmtpdF9kb21fZG9jdW1lbnRfY2xhc3Nf
aW5pdCk6CisgICAgICAgICh3ZWJraXRfZG9tX2RvY3VtZW50X2luaXQpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTURvY3VtZW50UHJp
dmF0ZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlLmguCisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NRWxlbWVudC5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpraXQpOgorICAgICAgICAoV2ViS2l0Ojpjb3JlKToK
KyAgICAgICAgKFdlYktpdDo6d3JhcEVsZW1lbnQpOgorICAgICAgICAod2Via2l0X2RvbV9lbGVt
ZW50X2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0X2RvbV9lbGVtZW50X2luaXQpOgorICAg
ICAgICAod2Via2l0X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRfZWxlbWVudF9pc191c2VyX2VkaXRl
ZCk6CisgICAgICAgICh3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X2dldF9h
dXRvX2ZpbGxlZCk6CisgICAgICAgICh3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVt
ZW50X3NldF9hdXRvX2ZpbGxlZCk6CisgICAgICAgICh3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9p
bnB1dF9lbGVtZW50X3NldF9lZGl0aW5nX3ZhbHVlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01FbGVtZW50UHJpdmF0ZS5oOiBSZW5h
bWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUVsZW1lbnRQcml2YXRlLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NTm9kZS5jcHA6IEFkZGVkLgorICAgICAg
ICAoX1dlYktpdERPTU5vZGVQcml2YXRlOjp+X1dlYktpdERPTU5vZGVQcml2YXRlKToKKyAgICAg
ICAgKFdlYktpdDo6a2l0KToKKyAgICAgICAgKFdlYktpdDo6Y29yZSk6CisgICAgICAgIChXZWJL
aXQ6OndyYXBOb2RlKToKKyAgICAgICAgKHdlYmtpdERPTU5vZGVDb25zdHJ1Y3Rvcik6CisgICAg
ICAgICh3ZWJraXRET01Ob2RlRmluYWxpemUpOgorICAgICAgICAod2Via2l0X2RvbV9ub2RlX2lu
aXQpOgorICAgICAgICAod2Via2l0X2RvbV9ub2RlX2NsYXNzX2luaXQpOgorICAgICAgICAod2Vi
a2l0RE9NTm9kZVNldENvcmVPYmplY3QpOgorICAgICAgICAod2Via2l0RE9NTm9kZUdldENvcmVP
YmplY3QpOgorICAgICAgICAod2Via2l0X2RvbV9ub2RlX2Zvcl9qc192YWx1ZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NTm9kZVBy
aXZhdGUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVQcml2YXRlLmguCisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NT2JqZWN0LmNwcDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01PYmplY3QuY3BwLgorICAgICAgICAod2Via2l0RE9NT2JqZWN0U2V0UHJv
cGVydHkpOgorICAgICAgICAod2Via2l0X2RvbV9vYmplY3RfY2xhc3NfaW5pdCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NUHJpdmF0
ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0Ojp3cmFwKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01Qcml2YXRlLmg6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vRE9NT2JqZWN0Q2FjaGUuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9nbGliL1dlYktpdEZyYW1lLmNwcDoKKyAgICAgICAgKHdlYmtpdF9mcmFtZV9nZXRfanNf
dmFsdWVfZm9yX2RvbV9vYmplY3QpOgorICAgICAgICAod2Via2l0X2ZyYW1lX2dldF9qc192YWx1
ZV9mb3JfZG9tX29iamVjdF9pbl9zY3JpcHRfd29ybGQpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5jcHA6CisgICAgICAgICh3ZWJr
aXRfd2ViX3BhZ2VfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRXZWJQYWdlQ3JlYXRlKToK
KyAgICAgICAgKHdlYmtpdF93ZWJfcGFnZV9nZXRfZG9tX2RvY3VtZW50KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL0dPYmplY3RFdmVudExpc3RlbmVy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6R09iamVjdEV2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL0dPYmpl
Y3ROb2RlRmlsdGVyQ29uZGl0aW9uLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL0dPYmplY3RYUGF0aE5TUmVzb2x2ZXIuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQXR0ci5jcHA6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01BdHRyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01CbG9iLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUJsb2IuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNEQVRBU2VjdGlvbi5jcHA6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DREFUQVNl
Y3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUNTU1J1bGUuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTUnVsZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTUnVsZUxpc3QuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NT
UnVsZUxpc3QuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlv
bi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NQ1NTU3R5bGVTaGVldC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZVNoZWV0Lmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NWYWx1ZS5jcHA6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01DU1NWYWx1ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DaGFyYWN0ZXJEYXRhLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGll
bnRSZWN0LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUNsaWVudFJlY3QuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0LmNwcDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJl
Y3RMaXN0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01Db21tZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNvbW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTUltcGxlbWVudGF0aW9uLmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTURPTUltcGxlbWVudGF0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01TZWxlY3Rpb24uY3BwOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NU2VsZWN0aW9u
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01ET01Ub2tlbkxpc3QuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NVG9rZW5MaXN0Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01XaW5kb3cuY3BwOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
RE9NV2luZG93Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01EZXByZWNhdGVkLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50Lmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudEZyYWdt
ZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTURvY3VtZW50RnJhZ21lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50R3RrLmNwcDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01Eb2N1bWVudC5jcHAuCisgICAgICAgICh3ZWJraXRET01Eb2N1bWVudERPTUV2ZW50
VGFyZ2V0SW5pdCk6CisgICAgICAgICh3ZWJraXRET01Eb2N1bWVudEluc3RhbGxQcm9wZXJ0aWVz
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTURvY3VtZW50VHlwZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudFR5cGUuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1lbnQuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1l
bnRHdGsuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1lbnQuY3BwLgorICAgICAgICAod2Via2l0
RE9NRWxlbWVudERPTUV2ZW50VGFyZ2V0SW5pdCk6CisgICAgICAgICh3ZWJraXRET01FbGVtZW50
SW5zdGFsbFByb3BlcnRpZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NRXZlbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRXZlbnQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUV2ZW50VGFyZ2V0LmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUV2ZW50VGFyZ2V0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01GaWxlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUZpbGUuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUZpbGVMaXN0LmNwcDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUZp
bGVMaXN0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudC5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTEFwcGxldEVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxBcmVhRWxl
bWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MQXJlYUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCUkVsZW1lbnQuY3BwOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJS
RWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTEJhc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCYXNlRWxlbWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TEJvZHlFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxCb2R5RWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQu
Y3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxD
YW52YXNFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MQ29sbGVjdGlvbi5jcHA6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQ29sbGVjdGlvbi5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTERMaXN0RWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRExpc3RFbGVtZW50Lmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRGlyZWN0b3J5
RWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MRGlyZWN0b3J5RWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTERpdkVsZW1lbnQuY3Bw
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTERpdkVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxEb2N1bWVudC5jcHA6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRG9jdW1lbnQuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRW1iZWRFbGVtZW50LmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxFbWJlZEVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGaWVsZFNldEVsZW1lbnQuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZpZWxk
U2V0RWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTEZvbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGb250RWxlbWVudC5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGb3JtRWxlbWVudC5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVu
dC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MRnJhbWVFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRnJhbWVTZXRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxGcmFtZVNldEVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIUkVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEhSRWxlbWVudC5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTEhlYWRFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIZWFkRWxlbWVudC5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEhlYWRpbmdF
bGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxIZWFkaW5nRWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEh0bWxFbGVtZW50LmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxIdG1sRWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQuY3BwOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTElGcmFtZUVs
ZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TElucHV0RWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTElFbGVtZW50LmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxMSUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMYWJlbEVsZW1lbnQuY3BwOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExhYmVsRWxl
bWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTExlZ2VuZEVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExlZ2VuZEVsZW1lbnQuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxMaW5rRWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGlua0VsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNYXBFbGVtZW50LmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxNYXBFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWFycXVlZUVsZW1lbnQuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1hcnF1
ZWVFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MTWVudUVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1lbnVFbGVtZW50Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MTWV0YUVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTW9kRWxlbWVudC5j
cHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MTW9kRWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudC5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT0xpc3RF
bGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudC5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTE9wdEdyb3VwRWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT3B0R3JvdXBFbGVtZW50Lmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT3B0
aW9uRWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9wdGlvbnNDb2xsZWN0
aW9uLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFBhcmFncmFwaEVsZW1lbnQu
Y3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTFBhcmFncmFwaEVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TFBhcmFtRWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTFByZUVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFByZUVsZW1lbnQuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxQcml2YXRlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxRdW90ZUVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFF1b3RlRWxlbWVu
dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxT
ZWxlY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU3R5bGVFbGVtZW50
LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxTdHlsZUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxUYWJsZUNhcHRpb25FbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudC5jcHA6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MVGFibGVDZWxsRWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudC5jcHA6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFi
bGVDb2xFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxUYWJsZVJvd0VsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxUZXh0QXJlYUVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudC5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRpdGxl
RWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MVGl0bGVFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVUxpc3RFbGVtZW50LmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxVTGlzdEVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUtleWJvYXJkRXZlbnQuY3BwOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NS2V5Ym9hcmRFdmVudC5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NTWVkaWFMaXN0LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTU1lZGlhTGlzdC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTW91c2VFdmVudC5jcHA6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Nb3VzZUV2
ZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01OYW1lZE5vZGVNYXAuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTmFtZWROb2RlTWFwLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2Rl
RmlsdGVyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTU5vZGVGaWx0ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVHdGsuY3BwOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TU5vZGUuY3BwLgorICAgICAgICAod2Via2l0RE9NTm9kZURPTUV2ZW50VGFyZ2V0SW5pdCk6Cisg
ICAgICAgICh3ZWJraXRET01Ob2RlSW5zdGFsbFByb3BlcnRpZXMpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUl0ZXJhdG9yLmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTU5vZGVJdGVyYXRvci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUxpc3QuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUxpc3QuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU9iamVjdC5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NUHJpdmF0ZUd0ay5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJpdmF0ZS5jcHAuCisgICAgICAg
IChXZWJLaXQ6OndyYXBOb2RlR3RrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVByaXZhdGVHdGsuaDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Q
cml2YXRlLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJvY2Vzc2luZ0luc3RydWN0
aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01SYW5nZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01SYW5nZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NU3R5bGVTaGVldC5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01TdHlsZVNoZWV0
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01TdHlsZVNoZWV0TGlzdC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01TdHlsZVNoZWV0TGlzdC5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVGV4dC5jcHA6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01U
ZXh0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01UcmVlV2Fsa2VyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVRyZWVXYWxrZXIuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVVJRXZlbnQuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVUlF
dmVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NV2hlZWxFdmVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01XaGVlbEV2ZW50Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01YUGF0aEV4cHJlc3Npb24u
Y3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NWFBhdGhFeHByZXNzaW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01YUGF0aE5TUmVzb2x2ZXIuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhOU1Jl
c29sdmVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01YUGF0aFJlc3VsdC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01YUGF0aFJlc3VsdC5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vZG9jcy93ZWJraXRkb21ndGstNC4w
LXNlY3Rpb25zLnR4dDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvV2ViS2l0RnJhbWUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS93cGUvRE9NL1dlYktpdERPTURlZmluZXMuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudFBy
aXZhdGUuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9N
L1dlYktpdERPTURvY3VtZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL3dwZS9ET00vV2ViS2l0RE9NRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL1dlYktpdERPTU5vZGUuaDog
QWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL0RPTS9X
ZWJLaXRET01PYmplY3QuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU9iamVjdC5oLgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vd2Via2l0ZG9tLmg6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NTm9kZVByaXZhdGUuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS93cGUvV2ViS2l0RnJhbWUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS93cGUvV2ViS2l0V2ViSGl0VGVzdFJlc3VsdC5oOiBBZGRlZC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0V2ViUGFnZS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJQcm9jZXNz
RW51bVR5cGVzLmNwcC50ZW1wbGF0ZTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdFdlYlByb2Nlc3NFbnVtVHlwZXMuaC50ZW1wbGF0ZTog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTU9iamVjdFByaXZhdGUuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS93cGUvd2Via2l0LXdlYi1leHRlbnNpb24uaDoKKwogMjAxOC0wMy0y
MSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0dUS11bV1BFXSBKU0MgYmluZGluZ3Mgbm90IGludHJvc3BlY3RhYmxlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdU
Sy5jbWFrZQppbmRleCA0YWRjZmZiOTY2My4uMzU5MjJmNWFhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdU
Sy5jbWFrZQpAQCAtNDAxLDYgKzQwMSw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9JTkNMVURFX0RJ
UkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL2xpbnV4IgogICAgICIke1dF
QktJVF9ESVJ9L1VJUHJvY2Vzcy9zb3VwIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIiCisgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00iCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00iCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL3VuaXgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtV1BFLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFrZQppbmRleCAwM2U3
ZTFkOWY2Ny4uODIzZDQxNmI1ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1X
UEUuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtOCw2ICs4
LDcgQEAgc2V0KFdlYktpdF9TdG9yYWdlUHJvY2Vzc19PVVRQVVRfTkFNRSBXUEVTdG9yYWdlUHJv
Y2VzcykKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV1BFX0FQSV9ESVJ9
KQogZmlsZShNQUtFX0RJUkVDVE9SWSAke0ZPUldBUkRJTkdfSEVBREVSU19XUEVfRElSfSkKIGZp
bGUoTUFLRV9ESVJFQ1RPUlkgJHtGT1JXQVJESU5HX0hFQURFUlNfV1BFX0VYVEVOU0lPTl9ESVJ9
KQorZmlsZShNQUtFX0RJUkVDVE9SWSAke0ZPUldBUkRJTkdfSEVBREVSU19XUEVfRE9NX0RJUn0p
CiAKIGNvbmZpZ3VyZV9maWxlKHdwZS93cGUtd2Via2l0LnBjLmluICR7Q01BS0VfQklOQVJZX0RJ
Un0vd3BlLXdlYmtpdC5wYyBAT05MWSkKIApAQCAtNDIsOSArNDMsMTcgQEAgYWRkX2N1c3RvbV9j
b21tYW5kKAogICAgIENPTU1BTkQgbG4gLW4gLXMgLWYgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS93cGUgJHtGT1JXQVJESU5HX0hFQURFUlNfV1BFX0VYVEVOU0lP
Tl9ESVJ9L3dwZQogKQogCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7Rk9SV0FS
RElOR19IRUFERVJTX1dQRV9ET01fRElSfS93cGUKKyAgICBERVBFTkRTICR7V0VCS0lUX0RJUn0v
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL0RPTQorICAgIENPTU1BTkQgbG4gLW4g
LXMgLWYgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9N
ICR7Rk9SV0FSRElOR19IRUFERVJTX1dQRV9ET01fRElSfS93cGUKKyAgICBWRVJCQVRJTQorKQor
CiBhZGRfY3VzdG9tX3RhcmdldCh3ZWJraXR3cGUtZmFrZS1hcGktaGVhZGVycwogICAgIERFUEVO
RFMgJHtGT1JXQVJESU5HX0hFQURFUlNfV1BFX0RJUn0vd3BlCiAgICAgICAgICAgICAke0ZPUldB
UkRJTkdfSEVBREVSU19XUEVfRVhURU5TSU9OX0RJUn0vd3BlCisgICAgICAgICAgICAke0ZPUldB
UkRJTkdfSEVBREVSU19XUEVfRE9NX0RJUn0vd3BlCiApCiAKIHNldChXRUJLSVRfRVhUUkFfREVQ
RU5ERU5DSUVTCkBAIC04MCw2ICs4OSw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9ERVJJVkVEX1NP
VVJDRVMKICAgICAke0RFUklWRURfU09VUkNFU19XRUJLSVRfRElSfS9XZWJLaXRSZXNvdXJjZXNH
UmVzb3VyY2VCdW5kbGUuYwogCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfV1BFX0FQSV9ESVJ9L1dl
YktpdEVudW1UeXBlcy5jcHAKKyAgICAke0RFUklWRURfU09VUkNFU19XUEVfQVBJX0RJUn0vV2Vi
S2l0V2ViUHJvY2Vzc0VudW1UeXBlcy5jcHAKICkKIAogc2V0KFdQRV9BUElfSU5TVEFMTEVEX0hF
QURFUlMKQEAgLTEzOCw2ICsxNDgsMjcgQEAgc2V0KFdQRV9BUElfSU5TVEFMTEVEX0hFQURFUlMK
ICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL3dlYmtpdC5oCiApCiAKK3NldChX
UEVfV0VCX0VYVEVOU0lPTl9BUElfSU5TVEFMTEVEX0hFQURFUlMKKyAgICAke0RFUklWRURfU09V
UkNFU19XUEVfQVBJX0RJUn0vV2ViS2l0V2ViUHJvY2Vzc0VudW1UeXBlcy5oCisgICAgJHtXRUJL
SVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0Q29uc29sZU1l
c3NhZ2UuaAorICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
d3BlL1dlYktpdEZyYW1lLmgKKyAgICAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL3dwZS9XZWJLaXRTY3JpcHRXb3JsZC5oCisgICAgJHtXRUJLSVRfRElSfS9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0V2ViRWRpdG9yLmgKKyAgICAke1dF
QktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJFeHRl
bnNpb24uaAorICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
d3BlL1dlYktpdFdlYkhpdFRlc3RSZXN1bHQuaAorICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdFdlYlBhZ2UuaAorICAgICR7V0VCS0lUX0RJ
Un0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL3dlYmtpdC13ZWItZXh0ZW5zaW9u
LmgKKykKKworc2V0KFdQRV9ET01fQVBJX0lOU1RBTExFRF9IRUFERVJTCisgICAgJHtXRUJLSVRf
RElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL3dlYmtpdGRvbWRlZmlu
ZXMuaAorICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3Bl
L0RPTS93ZWJraXRkb20uaAorICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvd3BlL0RPTS9XZWJLaXRET01Eb2N1bWVudC5oCisgICAgJHtXRUJLSVRfRElSfS9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL1dlYktpdERPTUVsZW1lbnQuaAor
ICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL0RPTS9X
ZWJLaXRET01Ob2RlLmgKKyAgICAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL3dwZS9ET00vV2ViS2l0RE9NT2JqZWN0LmgKKykKKwogIyBUbyBnZW5lcmF0ZSBXZWJL
aXRFbnVtVHlwZXMuaCB3ZSB3YW50IHRvIHVzZSBhbGwgaW5zdGFsbGVkIGhlYWRlcnMsIGV4Y2Vw
dCBXZWJLaXRFbnVtVHlwZXMuaCBpdHNlbGYuCiBzZXQoV1BFX0VOVU1fR0VORVJBVElPTl9IRUFE
RVJTICR7V1BFX0FQSV9JTlNUQUxMRURfSEVBREVSU30pCiBsaXN0KFJFTU9WRV9JVEVNIFdQRV9F
TlVNX0dFTkVSQVRJT05fSEVBREVSUyAke0RFUklWRURfU09VUkNFU19XUEVfQVBJX0RJUn0vV2Vi
S2l0RW51bVR5cGVzLmgpCkBAIC0xNTIsNiArMTgzLDE5IEBAIGFkZF9jdXN0b21fY29tbWFuZCgK
ICAgICBWRVJCQVRJTQogKQogCitzZXQoV1BFX1dFQl9QUk9DRVNTX0VOVU1fR0VORVJBVElPTl9I
RUFERVJTICR7V1BFX1dFQl9FWFRFTlNJT05fQVBJX0lOU1RBTExFRF9IRUFERVJTfSkKK2xpc3Qo
UkVNT1ZFX0lURU0gV1BFX1dFQl9QUk9DRVNTX0VOVU1fR0VORVJBVElPTl9IRUFERVJTICR7REVS
SVZFRF9TT1VSQ0VTX1dQRV9BUElfRElSfS9XZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVzLmgpCith
ZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dQRV9BUElf
RElSfS9XZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVzLmgKKyAgICAgICAgICAgJHtERVJJVkVEX1NP
VVJDRVNfV1BFX0FQSV9ESVJ9L1dlYktpdFdlYlByb2Nlc3NFbnVtVHlwZXMuY3BwCisgICAgREVQ
RU5EUyAke1dQRV9XRUJfUFJPQ0VTU19FTlVNX0dFTkVSQVRJT05fSEVBREVSU30KKworICAgIENP
TU1BTkQgZ2xpYi1ta2VudW1zIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0V2ViUHJvY2Vzc0VudW1UeXBlcy5oLnRlbXBsYXRl
ICR7V1BFX1dFQl9QUk9DRVNTX0VOVU1fR0VORVJBVElPTl9IRUFERVJTfSB8IHNlZCBzL3dlYl9r
aXQvd2Via2l0LyB8IHNlZCBzL1dFQktJVF9UWVBFX0tJVC9XRUJLSVRfVFlQRS8gPiAke0RFUklW
RURfU09VUkNFU19XUEVfQVBJX0RJUn0vV2ViS2l0V2ViUHJvY2Vzc0VudW1UeXBlcy5oCisKKyAg
ICBDT01NQU5EIGdsaWItbWtlbnVtcyAtLXRlbXBsYXRlICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdFdlYlByb2Nlc3NFbnVtVHlwZXMuY3BwLnRl
bXBsYXRlICR7V1BFX1dFQl9QUk9DRVNTX0VOVU1fR0VORVJBVElPTl9IRUFERVJTfSB8IHNlZCBz
L3dlYl9raXQvd2Via2l0LyA+ICR7REVSSVZFRF9TT1VSQ0VTX1dQRV9BUElfRElSfS9XZWJLaXRX
ZWJQcm9jZXNzRW51bVR5cGVzLmNwcAorICAgIFZFUkJBVElNCispCisKIHNldChXZWJLaXRSZXNv
dXJjZXMKICkKIApAQCAtMTg0LDYgKzIyOCw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9JTkNMVURF
X0RJUkVDVE9SSUVTCiAgICAgIiR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0vSmF2YVNjcmlwdENv
cmUvZ2xpYiIKICAgICAiJHtGT1JXQVJESU5HX0hFQURFUlNfV1BFX0RJUn0iCiAgICAgIiR7Rk9S
V0FSRElOR19IRUFERVJTX1dQRV9FWFRFTlNJT05fRElSfSIKKyAgICAiJHtGT1JXQVJESU5HX0hF
QURFUlNfV1BFX0RPTV9ESVJ9IgogICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9IgogICAgICIk
e0RFUklWRURfU09VUkNFU19XUEVfQVBJX0RJUn0iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvIgpAQCAtMjE3LDcgKzI2Miw5IEBAIGxpc3QoQVBQRU5EIFdlYktp
dF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL3NvdXAi
CiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL3dwZSIKICAgICAiJHtXRUJLSVRfRElSfS9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliIgorICAgICIke1dFQktJVF9ESVJ9L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NIgogICAgICIke1dFQktJVF9ESVJ9
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZSIKKyAgICAiJHtXRUJLSVRfRElSfS9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NIgogICAgICIke1dFQktJVF9ESVJ9
L1dlYlByb2Nlc3Mvc291cCIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL3VuaXgiCiAg
ICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNl
c0dUSy50eHQKaW5kZXggMjhlNmNkNzA3NWQuLjQwMWNmNjFkNjFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50
eHQKQEAgLTI4MSw2ICsyODEsMTMgQEAgV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc01haW5HdGsu
Y3BwCiBXZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAKIFdl
YlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHAKIAorV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ2xpYi9ET00vRE9NT2JqZWN0Q2FjaGUuY3BwIEBuby11bmlmeQorV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NRG9jdW1lbnQuY3BwIEBuby11
bmlmeQorV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NRWxl
bWVudC5jcHAgQG5vLXVuaWZ5CitXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RP
TS9XZWJLaXRET01Ob2RlLmNwcCBAbm8tdW5pZnkKK1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2dsaWIvRE9NL1dlYktpdERPTU9iamVjdC5jcHAgQG5vLXVuaWZ5CitXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01Qcml2YXRlLmNwcCBAbm8tdW5pZnkK
KwogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRDb25zb2xlTWVzc2Fn
ZS5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktp
dEV4dGVuc2lvbk1hbmFnZXIuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ2xpYi9XZWJLaXRGcmFtZS5jcHAgQG5vLXVuaWZ5CkBAIC0yOTEsNyArMjk4LDYgQEAg
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJIaXRUZXN0UmVzdWx0
LmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0
V2ViUGFnZS5jcHAgQG5vLXVuaWZ5CiAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vQ29udmVydFRvVVRGOFN0cmluZy5jcHAKLVdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vRE9NT2JqZWN0Q2FjaGUuY3BwCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL0dPYmplY3RFdmVudExpc3RlbmVyLmNwcAogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vR09iamVjdFhQYXRoTlNSZXNvbHZlci5j
cHAKQEAgLTMxMiwxMCArMzE4LDEwIEBAIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NRE9NU2VsZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01Ub2tlbkxpc3QuY3BwCiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVdpbmRvdy5jcHAKIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRGVwcmVjYXRlZC5jcHAKLVdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnQuY3BwCitX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50R3Rr
LmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1
bWVudEZyYWdtZW50LmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01Eb2N1bWVudFR5cGUuY3BwCi1XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUVsZW1lbnQuY3BwCitXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUVsZW1lbnRHdGsuY3BwCiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUV2ZW50LmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVudFRhcmdldC5jcHAKIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRmlsZS5jcHAKQEAgLTM4MiwxMiArMzg4
LDExIEBAIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NS2V5
Ym9hcmRFdmVudC5jcHAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NTWVkaWFMaXN0LmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01Nb3VzZUV2ZW50LmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01OYW1lZE5vZGVNYXAuY3BwCi1XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGUuY3BwCitXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVHdGsuY3BwCiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVGaWx0ZXIuY3BwCiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVJdGVyYXRvci5jcHAKIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUxpc3QuY3BwCi1X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU9iamVjdC5jcHAK
LVdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJpdmF0ZS5j
cHAKK1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJpdmF0
ZUd0ay5jcHAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
UHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01SYW5nZS5jcHAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NU3R5bGVTaGVldC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU291cmNlc1dQRS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CmluZGV4IDcw
ZGJmZGZiY2MxLi5iYWI5YjA2NTZjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
V1BFLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CkBAIC0xOTYsMTIgKzE5
NiwyMCBAQCBVSVByb2Nlc3Mvd3BlL1dlYlBhc3RlYm9hcmRQcm94eVdQRS5jcHAKIFVJUHJvY2Vz
cy93cGUvV2ViUHJlZmVyZW5jZXNXUEUuY3BwCiBVSVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQb29s
V1BFLmNwcAogCitXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9ET01PYmpl
Y3RDYWNoZS5jcHAgQG5vLXVuaWZ5CitXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGli
L0RPTS9XZWJLaXRET01Eb2N1bWVudC5jcHAgQG5vLXVuaWZ5CitXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01FbGVtZW50LmNwcCBAbm8tdW5pZnkKK1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTU5vZGUuY3BwIEBuby11
bmlmeQorV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NT2Jq
ZWN0LmNwcCBAbm8tdW5pZnkKK1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9N
L1dlYktpdERPTVByaXZhdGUuY3BwIEBuby11bmlmeQorCiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9nbGliL1dlYktpdENvbnNvbGVNZXNzYWdlLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0RXh0ZW5zaW9uTWFuYWdlci5jcHAgQG5v
LXVuaWZ5CiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdEZyYW1lLmNw
cCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0U2Ny
aXB0V29ybGQuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xp
Yi9XZWJLaXRXZWJFZGl0b3IuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ2xpYi9XZWJLaXRXZWJFeHRlbnNpb24uY3BwIEBuby11bmlmeQorV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJIaXRUZXN0UmVzdWx0LmNwcCBAbm8tdW5p
ZnkKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5jcHAg
QG5vLXVuaWZ5CiAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvZ2xpYi9JbmplY3RlZEJ1bmRs
ZUdsaWIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2Rv
Y3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAppbmRleCBlOTUyMjMxNzIy
NS4uOGFjMDQyMDA3ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dApAQCAtMTQ5
MCw2ICsxNDkwLDggQEAgd2Via2l0X2ZyYW1lX2dldF9qYXZhc2NyaXB0X2dsb2JhbF9jb250ZXh0
CiB3ZWJraXRfZnJhbWVfZ2V0X2phdmFzY3JpcHRfY29udGV4dF9mb3Jfc2NyaXB0X3dvcmxkCiB3
ZWJraXRfZnJhbWVfZ2V0X2pzX2NvbnRleHQKIHdlYmtpdF9mcmFtZV9nZXRfanNfY29udGV4dF9m
b3Jfc2NyaXB0X3dvcmxkCit3ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0
Cit3ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0X2luX3NjcmlwdF93b3Js
ZAogCiA8U1VCU0VDVElPTiBTdGFuZGFyZD4KIFdlYktpdEZyYW1lQ2xhc3MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9ET01P
YmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2dsaWIvRE9NL0RPTU9iamVjdENhY2hlLmNwcApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVu
YW1lIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL0RPTU9iamVjdENhY2hlLmNwcApyZW5hbWUgdG8gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9ET01PYmplY3RDYWNoZS5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9E
T01PYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9nbGliL0RPTS9ET01PYmplY3RDYWNoZS5oCnNpbWlsYXJpdHkgaW5kZXggOTUlCnJlbmFt
ZSBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9ET01PYmplY3RDYWNoZS5oCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL0RPTU9iamVjdENhY2hlLmgKaW5kZXggZTNlOWZjM2Vj
ODcuLjJiY2JhNjYxMDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vRE9NT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL0RPTU9iamVjdENhY2hl
LmgKQEAgLTE2LDggKzE2LDcgQEAKICAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKICAqLwogCi0j
aWZuZGVmIERPTU9iamVjdENhY2hlX2gKLSNkZWZpbmUgRE9NT2JqZWN0Q2FjaGVfaAorI3ByYWdt
YSBvbmNlCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIE5vZGU7CkBAIC0zMiw1ICszMSwz
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBmb3JnZXQodm9pZCogb2JqZWN0SGFuZGxlKTsK
IH07CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTURv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z2xpYi9ET00vV2ViS2l0RE9NRG9jdW1lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5mYTcwYTMyZWMzOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NRG9jdW1l
bnQuY3BwCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDE4IElnYWxp
YSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRE
T01Eb2N1bWVudC5oIgorCisjaW5jbHVkZSAiRE9NT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJX
ZWJLaXRET01Eb2N1bWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01Ob2RlUHJpdmF0
ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTVByaXZhdGUuaCIKKworI2lmIFBMQVRGT1JNKEdUSykK
KyNpbmNsdWRlICJXZWJLaXRET01FdmVudFRhcmdldC5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitXZWJLaXRET01Eb2N1bWVudCoga2l0KFdlYkNvcmU6OkRvY3VtZW50KiBvYmop
Cit7CisgICAgcmV0dXJuIFdFQktJVF9ET01fRE9DVU1FTlQoa2l0KHN0YXRpY19jYXN0PFdlYkNv
cmU6Ok5vZGUqPihvYmopKSk7Cit9CisKK1dlYkNvcmU6OkRvY3VtZW50KiBjb3JlKFdlYktpdERP
TURvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQgPyBzdGF0aWNfY2Fz
dDxXZWJDb3JlOjpEb2N1bWVudCo+KHdlYmtpdERPTU5vZGVHZXRDb3JlT2JqZWN0KFdFQktJVF9E
T01fTk9ERShkb2N1bWVudCkpKSA6IG51bGxwdHI7Cit9CisKK1dlYktpdERPTURvY3VtZW50KiB3
cmFwRG9jdW1lbnQoV2ViQ29yZTo6RG9jdW1lbnQqIGNvcmVPYmplY3QpCit7CisgICAgQVNTRVJU
KGNvcmVPYmplY3QpOworI2lmIFBMQVRGT1JNKEdUSykKKyAgICByZXR1cm4gV0VCS0lUX0RPTV9E
T0NVTUVOVChnX29iamVjdF9uZXcoV0VCS0lUX0RPTV9UWVBFX0RPQ1VNRU5ULCAiY29yZS1vYmpl
Y3QiLCBjb3JlT2JqZWN0LCBudWxscHRyKSk7CisjZWxzZQorICAgIGF1dG8qIGRvY3VtZW50ID0g
V0VCS0lUX0RPTV9ET0NVTUVOVChnX29iamVjdF9uZXcoV0VCS0lUX0RPTV9UWVBFX0RPQ1VNRU5U
LCBudWxscHRyKSk7CisgICAgd2Via2l0RE9NTm9kZVNldENvcmVPYmplY3QoV0VCS0lUX0RPTV9O
T0RFKGRvY3VtZW50KSwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KGNvcmVPYmplY3QpKTsK
KyAgICByZXR1cm4gZG9jdW1lbnQ7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNpZiBQTEFURk9STShHVEspCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsK
K0dfREVGSU5FX1RZUEVfV0lUSF9DT0RFKFdlYktpdERPTURvY3VtZW50LCB3ZWJraXRfZG9tX2Rv
Y3VtZW50LCBXRUJLSVRfRE9NX1RZUEVfTk9ERSwgR19JTVBMRU1FTlRfSU5URVJGQUNFKFdFQktJ
VF9ET01fVFlQRV9FVkVOVF9UQVJHRVQsIHdlYmtpdERPTURvY3VtZW50RE9NRXZlbnRUYXJnZXRJ
bml0KSkKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKyNlbHNlCitHX0RFRklORV9U
WVBFKFdlYktpdERPTURvY3VtZW50LCB3ZWJraXRfZG9tX2RvY3VtZW50LCBXRUJLSVRfRE9NX1RZ
UEVfTk9ERSkKKyNlbmRpZgorCitzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX2RvY3VtZW50X2NsYXNz
X2luaXQoV2ViS2l0RE9NRG9jdW1lbnRDbGFzcyogZG9jdW1lbnRDbGFzcykKK3sKKyNpZiBQTEFU
Rk9STShHVEspCisgICAgR09iamVjdENsYXNzKiBnb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFT
Uyhkb2N1bWVudENsYXNzKTsKKyAgICB3ZWJraXRET01Eb2N1bWVudEluc3RhbGxQcm9wZXJ0aWVz
KGdvYmplY3RDbGFzcyk7CisjZW5kaWYKK30KKworc3RhdGljIHZvaWQgd2Via2l0X2RvbV9kb2N1
bWVudF9pbml0KFdlYktpdERPTURvY3VtZW50KikKK3sKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1
bWVudFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ2xpYi9ET00vV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlLmgKc2ltaWxhcml0eSBpbmRleCA4
MSUKcmVuYW1lIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50UHJpdmF0ZS5oCnJlbmFtZSB0byBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTURvY3Vt
ZW50UHJpdmF0ZS5oCmluZGV4IDYzM2NlZDUwZWIzLi4yM2YwMzIyMWFkYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTURvY3VtZW50UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlLmgKQEAgLTEs
NSArMSw1IEBACiAvKgotICogIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBz
b3VyY2UgcHJvamVjdC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMTggSWdhbGlhIFMuTC4KICAqCiAg
KiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCkBAIC0xNywxMSArMTcsMTAgQEAKICAqICBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KICAqLwogCi0jaWZuZGVmIFdlYktpdERPTURvY3VtZW50UHJpdmF0ZV9oCi0j
ZGVmaW5lIFdlYktpdERPTURvY3VtZW50UHJpdmF0ZV9oCisjcHJhZ21hIG9uY2UKIAorI2luY2x1
ZGUgIldlYktpdERPTURvY3VtZW50LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgot
I2luY2x1ZGUgPHdlYmtpdGRvbS9XZWJLaXRET01Eb2N1bWVudC5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIFdlYktpdERPTURvY3VtZW50KiB3cmFwRG9jdW1lbnQoV2ViQ29yZTo6RG9jdW1lbnQq
KTsKQEAgLTI5LDQgKzI4LDcgQEAgV2ViS2l0RE9NRG9jdW1lbnQqIGtpdChXZWJDb3JlOjpEb2N1
bWVudCopOwogV2ViQ29yZTo6RG9jdW1lbnQqIGNvcmUoV2ViS2l0RE9NRG9jdW1lbnQqKTsKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLyogV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRl
X2ggKi8KKyNpZiBQTEFURk9STShHVEspCit2b2lkIHdlYmtpdERPTURvY3VtZW50RE9NRXZlbnRU
YXJnZXRJbml0KFdlYktpdERPTUV2ZW50VGFyZ2V0SWZhY2UqKTsKK3ZvaWQgd2Via2l0RE9NRG9j
dW1lbnRJbnN0YWxsUHJvcGVydGllcyhHT2JqZWN0Q2xhc3MqKTsKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9X
ZWJLaXRET01FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NRWxlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjEzMzI0OTU1NzdhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRE
T01FbGVtZW50LmNwcApAQCAtMCwwICsxLDE2NCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIw
MTggSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldlYktpdERPTUVsZW1lbnQuaCIKKworI2luY2x1ZGUgIkRPTU9iamVjdENhY2hlLmgiCisjaW5j
bHVkZSAiV2ViS2l0RE9NRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01Ob2Rl
UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTVByaXZhdGUuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0hUTUxJbnB1dEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUTUxUZXh0QXJlYUVs
ZW1lbnQuaD4KKworI2lmIFBMQVRGT1JNKEdUSykKKyNpbmNsdWRlICJXZWJLaXRET01FdmVudFRh
cmdldC5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJLaXRET01FbGVtZW50
KiBraXQoV2ViQ29yZTo6RWxlbWVudCogb2JqKQoreworICAgIHJldHVybiBXRUJLSVRfRE9NX0VM
RU1FTlQoa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6Ok5vZGUqPihvYmopKSk7Cit9CisKK1dlYkNv
cmU6OkVsZW1lbnQqIGNvcmUoV2ViS2l0RE9NRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICByZXR1
cm4gZWxlbWVudCA/IHN0YXRpY19jYXN0PFdlYkNvcmU6OkVsZW1lbnQqPih3ZWJraXRET01Ob2Rl
R2V0Q29yZU9iamVjdChXRUJLSVRfRE9NX05PREUoZWxlbWVudCkpKSA6IG51bGxwdHI7Cit9CisK
K1dlYktpdERPTUVsZW1lbnQqIHdyYXBFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqIGNvcmVPYmpl
Y3QpCit7CisgICAgQVNTRVJUKGNvcmVPYmplY3QpOworI2lmIFBMQVRGT1JNKEdUSykKKyAgICBy
ZXR1cm4gV0VCS0lUX0RPTV9FTEVNRU5UKGdfb2JqZWN0X25ldyhXRUJLSVRfRE9NX1RZUEVfRUxF
TUVOVCwgImNvcmUtb2JqZWN0IiwgY29yZU9iamVjdCwgbnVsbHB0cikpOworI2Vsc2UKKyAgICBh
dXRvKiBlbGVtZW50ID0gV0VCS0lUX0RPTV9FTEVNRU5UKGdfb2JqZWN0X25ldyhXRUJLSVRfRE9N
X1RZUEVfRUxFTUVOVCwgbnVsbHB0cikpOworICAgIHdlYmtpdERPTU5vZGVTZXRDb3JlT2JqZWN0
KFdFQktJVF9ET01fTk9ERShlbGVtZW50KSwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KGNv
cmVPYmplY3QpKTsKKyAgICByZXR1cm4gZWxlbWVudDsKKyNlbmRpZgorfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2lmIFBMQVRGT1JNKEdUSykKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQ
UkVDQVRJT05TOworR19ERUZJTkVfVFlQRV9XSVRIX0NPREUoV2ViS2l0RE9NRWxlbWVudCwgd2Vi
a2l0X2RvbV9lbGVtZW50LCBXRUJLSVRfRE9NX1RZUEVfTk9ERSwgR19JTVBMRU1FTlRfSU5URVJG
QUNFKFdFQktJVF9ET01fVFlQRV9FVkVOVF9UQVJHRVQsIHdlYmtpdERPTUVsZW1lbnRET01FdmVu
dFRhcmdldEluaXQpKQorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOworI2Vsc2UKK0df
REVGSU5FX1RZUEUoV2ViS2l0RE9NRWxlbWVudCwgd2Via2l0X2RvbV9lbGVtZW50LCBXRUJLSVRf
RE9NX1RZUEVfTk9ERSkKKyNlbmRpZgorCitzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX2VsZW1lbnRf
Y2xhc3NfaW5pdChXZWJLaXRET01FbGVtZW50Q2xhc3MqIGVsZW1lbnRDbGFzcykKK3sKKyNpZiBQ
TEFURk9STShHVEspCisgICAgR09iamVjdENsYXNzKiBnb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9D
TEFTUyhlbGVtZW50Q2xhc3MpOworICAgIHdlYmtpdERPTUVsZW1lbnRJbnN0YWxsUHJvcGVydGll
cyhnb2JqZWN0Q2xhc3MpOworI2VuZGlmCit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdF9kb21fZWxl
bWVudF9pbml0KFdlYktpdERPTUVsZW1lbnQqKQoreworfQorCisvKioKKyAqIHdlYmtpdF9kb21f
ZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfaXNfdXNlcl9lZGl0ZWQ6CisgKiBAZWxlbWVudDog
YSAjV2ViS2l0RE9NRWxlbWVudAorICoKKyAqIEdldCB3aGV0aGVyIEBlbGVtZW50IGlzIGFuIEhU
TUwgdGV4dCBpbnB1dCBlbGVtZW50IHRoYXQgaGFzIGJlZW4gZWRpdGVkIGJ5IGEgdXNlciBhY3Rp
b24uCisgKgorICogUmV0dXJuczogd2hldGhlciBAZWxlbWVudCBoYXMgYmVlbiBlZGl0ZWQgYnkg
YSB1c2VyIGFjdGlvbi4KKyAqCisgKiBTaW5jZTogMi4yMgorICovCitnYm9vbGVhbiB3ZWJraXRf
ZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X2lzX3VzZXJfZWRpdGVkKFdlYktpdERPTUVs
ZW1lbnQqIGVsZW1lbnQpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9J
U19FTEVNRU5UKGVsZW1lbnQpLCBGQUxTRSk7CisKKyAgICBhdXRvKiBub2RlID0gd2Via2l0RE9N
Tm9kZUdldENvcmVPYmplY3QoV0VCS0lUX0RPTV9OT0RFKGVsZW1lbnQpKTsKKyAgICBpZiAoaXM8
V2ViQ29yZTo6SFRNTElucHV0RWxlbWVudD4obm9kZSkpCisgICAgICAgIHJldHVybiBkb3duY2Fz
dDxXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Pigqbm9kZSkubGFzdENoYW5nZVdhc1VzZXJFZGl0
KCk7CisKKyAgICBpZiAoaXM8V2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudD4obm9kZSkpCisg
ICAgICAgIHJldHVybiBkb3duY2FzdDxXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Pigqbm9k
ZSkubGFzdENoYW5nZVdhc1VzZXJFZGl0KCk7CisKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKKy8q
KgorICogd2Via2l0X2RvbV9lbGVtZW50X2lzX2h0bWxfaW5wdXRfZWxlbWVudF9hdXRvX2ZpbGxl
ZDoKKyAqIEBlbGVtZW50OiBhICNXZWJLaXRET01FbGVtZW50CisgKgorICogR2V0IHdoZXRoZXIg
dGhlIGVsZW1lbnQgaXMgYW4gSFRNTCBpbnB1dCBlbGVtZW50IHRoYXQgaGFzIGJlZW4gZmlsbGVk
IGF1dG9tYXRpY2FsbHkuCisgKgorICogUmV0dXJuczogd2hldGhlciBAZWxlbWVudCBoYXMgYmVl
biBmaWxsZWQgYXV0b21hdGljYWxseS4KKyAqCisgKiBTaW5jZTogMi4yMgorICovCitnYm9vbGVh
biB3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X2dldF9hdXRvX2ZpbGxlZChX
ZWJLaXRET01FbGVtZW50KiBlbGVtZW50KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdF
QktJVF9ET01fSVNfRUxFTUVOVChlbGVtZW50KSwgRkFMU0UpOworCisgICAgYXV0byogbm9kZSA9
IHdlYmtpdERPTU5vZGVHZXRDb3JlT2JqZWN0KFdFQktJVF9ET01fTk9ERShlbGVtZW50KSk7Cisg
ICAgaWYgKCFpczxXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Pihub2RlKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGRvd25jYXN0PFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1l
bnQ+KCpub2RlKS5pc0F1dG9GaWxsZWQoKTsKK30KKworLyoqCisgKiB3ZWJraXRfZG9tX2VsZW1l
bnRfaHRtbF9pbnB1dF9lbGVtZW50X3NldF9hdXRvX2ZpbGxlZDoKKyAqIEBlbGVtZW50OiBhICNX
ZWJLaXRET01FbGVtZW50CisgKiBAYXV0b19maWxsZWQ6IHZhbHVlIHRvIHNldAorICoKKyAqIFNl
dCB3aGV0aGVyIHRoZSBlbGVtZW50IGlzIGFuIEhUTUwgaW5wdXQgZWxlbWVudCB0aGF0IGhhcyBi
ZWVuIGZpbGxlZCBhdXRvbWF0aWNhbGx5LgorICogSWYgQGVsZW1lbnQgaXMgbm90IGFuIEhUTUwg
aW5wdXQgZWxlbWVudCB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90aGluZy4KKyAqCisgKiBTaW5jZTog
Mi4yMgorICovCit2b2lkIHdlYmtpdF9kb21fZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfc2V0
X2F1dG9fZmlsbGVkKFdlYktpdERPTUVsZW1lbnQqIGVsZW1lbnQsIGdib29sZWFuIGF1dG9GaWxs
ZWQpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoZWxlbWVu
dCkpOworCisgICAgYXV0byogbm9kZSA9IHdlYmtpdERPTU5vZGVHZXRDb3JlT2JqZWN0KFdFQktJ
VF9ET01fTk9ERShlbGVtZW50KSk7CisgICAgaWYgKCFpczxXZWJDb3JlOjpIVE1MSW5wdXRFbGVt
ZW50Pihub2RlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZG93bmNhc3Q8V2ViQ29yZTo6SFRN
TElucHV0RWxlbWVudD4oKm5vZGUpLnNldEF1dG9GaWxsZWQoYXV0b0ZpbGxlZCk7Cit9CisKKy8q
KgorICogd2Via2l0X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfZWRpdGluZ192
YWx1ZToKKyAqIEBlbGVtZW50OiBhICNXZWJLaXRET01FbGVtZW50CisgKiBAdmFsdWU6IHRoZSB0
ZXh0IHRvIHNldAorICoKKyAqIFNldCBlZGl0aW5nIHZhbHVlIG9mIGFuIEhUTUwgaW5wdXQgZWxl
bWVudC4gSWYgQGVsZW1lbnQgaXMgbm90IGFuIEhUTUwgaW5wdXQgZWxlbWVudCB0aGlzIGZ1bmN0
aW9uIGRvZXMgbm90aGluZy4KKyAqCisgKiBTaW5jZTogMi4yMgorICovCit2b2lkIHdlYmtpdF9k
b21fZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2VkaXRpbmdfdmFsdWUoV2ViS2l0RE9N
RWxlbWVudCogZWxlbWVudCwgY29uc3QgY2hhciogdmFsdWUpCit7CisgICAgZ19yZXR1cm5faWZf
ZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoZWxlbWVudCkpOworCisgICAgYXV0byogbm9kZSA9
IHdlYmtpdERPTU5vZGVHZXRDb3JlT2JqZWN0KFdFQktJVF9ET01fTk9ERShlbGVtZW50KSk7Cisg
ICAgaWYgKCFpczxXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Pihub2RlKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgZG93bmNhc3Q8V2ViQ29yZTo6SFRNTElucHV0RWxlbWVudD4oKm5vZGUpLnNl
dEVkaXRpbmdWYWx1ZShTdHJpbmc6OmZyb21VVEY4KHZhbHVlKSk7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NRWxlbWVudFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NRWxlbWVudFByaXZhdGUuaApzaW1pbGFyaXR5IGlu
ZGV4IDgxJQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudFByaXZhdGUuaApyZW5hbWUgdG8gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01F
bGVtZW50UHJpdmF0ZS5oCmluZGV4IDdjMWY0MzA4Y2FhLi4zZTA5ZDBiM2QxNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUVsZW1lbnRQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01FbGVtZW50UHJpdmF0ZS5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0IG9wZW4g
c291cmNlIHByb2plY3QuCisgKiAgQ29weXJpZ2h0IChDKSAyMDE4IElnYWxpYSBTLkwuCiAgKgog
ICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtMTcsMTEgKzE3LDEwIEBACiAgKiAgQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCiAgKi8KIAotI2lmbmRlZiBXZWJLaXRET01FbGVtZW50UHJpdmF0ZV9oCi0j
ZGVmaW5lIFdlYktpdERPTUVsZW1lbnRQcml2YXRlX2gKKyNwcmFnbWEgb25jZQogCisjaW5jbHVk
ZSAiV2ViS2l0RE9NRWxlbWVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRWxlbWVudC5oPgotI2lu
Y2x1ZGUgPHdlYmtpdGRvbS9XZWJLaXRET01FbGVtZW50Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogV2ViS2l0RE9NRWxlbWVudCogd3JhcEVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopOwpAQCAt
MjksNCArMjgsNyBAQCBXZWJLaXRET01FbGVtZW50KiBraXQoV2ViQ29yZTo6RWxlbWVudCopOwog
V2ViQ29yZTo6RWxlbWVudCogY29yZShXZWJLaXRET01FbGVtZW50Kik7CiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAotI2VuZGlmIC8qIFdlYktpdERPTUVsZW1lbnRQcml2YXRlX2ggKi8KKyNpZiBQ
TEFURk9STShHVEspCit2b2lkIHdlYmtpdERPTUVsZW1lbnRET01FdmVudFRhcmdldEluaXQoV2Vi
S2l0RE9NRXZlbnRUYXJnZXRJZmFjZSopOwordm9pZCB3ZWJraXRET01FbGVtZW50SW5zdGFsbFBy
b3BlcnRpZXMoR09iamVjdENsYXNzKik7CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NTm9kZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9N
L1dlYktpdERPTU5vZGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5iZDg5NTMxNmQ4MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NTm9kZS5jcHAKQEAgLTAsMCAr
MSwxNTQgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDE4IElnYWxpYSBTLkwuCisgKgorICog
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRET01Ob2RlLmgiCisKKyNp
bmNsdWRlICJET01PYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIldlYktpdERPTU5vZGVQcml2YXRl
LmgiCisjaW5jbHVkZSAiV2ViS2l0RE9NUHJpdmF0ZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSlNO
b2RlLmg+CisjaW5jbHVkZSA8anNjL0pTQ0NvbnRleHRQcml2YXRlLmg+CisjaW5jbHVkZSA8anNj
L0pTQ1ZhbHVlUHJpdmF0ZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworI2lmIFBMQVRG
T1JNKEdUSykKKyNpbmNsdWRlICJXZWJLaXRET01FdmVudFRhcmdldC5oIgorI2VuZGlmCisKKyNk
ZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0dFVF9QUklWQVRFKG9iaikgR19UWVBFX0lOU1RBTkNFX0dF
VF9QUklWQVRFKG9iaiwgV0VCS0lUX0RPTV9UWVBFX05PREUsIFdlYktpdERPTU5vZGVQcml2YXRl
KQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NTm9kZVByaXZhdGUgeworICAgIH5fV2ViS2l0
RE9NTm9kZVByaXZhdGUoKQorICAgIHsKKyAgICAgICAgV2ViS2l0OjpET01PYmplY3RDYWNoZTo6
Zm9yZ2V0KGNvcmVPYmplY3QuZ2V0KCkpOworICAgIH0KKworICAgIFJlZlB0cjxXZWJDb3JlOjpO
b2RlPiBjb3JlT2JqZWN0OworfSBXZWJLaXRET01Ob2RlUHJpdmF0ZTsKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK1dlYktpdERPTU5vZGUqIGtpdChXZWJDb3JlOjpOb2RlKiBvYmopCit7CisgICAg
aWYgKCFvYmopCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKGdwb2ludGVyIHJl
dCA9IERPTU9iamVjdENhY2hlOjpnZXQob2JqKSkKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ET01f
Tk9ERShyZXQpOworCisgICAgcmV0dXJuIHdyYXAob2JqKTsKK30KKworV2ViQ29yZTo6Tm9kZSog
Y29yZShXZWJLaXRET01Ob2RlKiBub2RlKQoreworICAgIHJldHVybiBub2RlID8gd2Via2l0RE9N
Tm9kZUdldENvcmVPYmplY3Qobm9kZSkgOiBudWxscHRyOworfQorCitXZWJLaXRET01Ob2RlKiB3
cmFwTm9kZShXZWJDb3JlOjpOb2RlKiBjb3JlT2JqZWN0KQoreworICAgIEFTU0VSVChjb3JlT2Jq
ZWN0KTsKKyNpZiBQTEFURk9STShHVEspCisgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERShnX29i
amVjdF9uZXcoV0VCS0lUX0RPTV9UWVBFX05PREUsICJjb3JlLW9iamVjdCIsIGNvcmVPYmplY3Qs
IG51bGxwdHIpKTsKKyNlbHNlCisgICAgYXV0byogbm9kZSA9IFdFQktJVF9ET01fTk9ERShnX29i
amVjdF9uZXcoV0VCS0lUX0RPTV9UWVBFX05PREUsIG51bGxwdHIpKTsKKyAgICB3ZWJraXRET01O
b2RlU2V0Q29yZU9iamVjdChub2RlLCBjb3JlT2JqZWN0KTsKKyAgICByZXR1cm4gbm9kZTsKKyNl
bmRpZgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2lmIFBMQVRGT1JNKEdUSykKK0df
R05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworR19ERUZJTkVfVFlQRV9XSVRIX0NPREUo
V2ViS2l0RE9NTm9kZSwgd2Via2l0X2RvbV9ub2RlLCBXRUJLSVRfRE9NX1RZUEVfT0JKRUNULCBH
X0lNUExFTUVOVF9JTlRFUkZBQ0UoV0VCS0lUX0RPTV9UWVBFX0VWRU5UX1RBUkdFVCwgd2Via2l0
RE9NTm9kZURPTUV2ZW50VGFyZ2V0SW5pdCkpCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElP
TlM7CisjZWxzZQorV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdERPTU5vZGUsIHdlYmtpdF9kb21f
bm9kZSwgV0VCS0lUX0RPTV9UWVBFX09CSkVDVCkKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oR1RL
KQorc3RhdGljIEdPYmplY3QqIHdlYmtpdERPTU5vZGVDb25zdHJ1Y3RvcihHVHlwZSB0eXBlLCBn
dWludCBjb25zdHJ1Y3RQcm9wZXJ0aWVzQ291bnQsIEdPYmplY3RDb25zdHJ1Y3RQYXJhbSogY29u
c3RydWN0UHJvcGVydGllcykKK3sKKyAgICBHT2JqZWN0KiBvYmplY3QgPSBHX09CSkVDVF9DTEFT
Uyh3ZWJraXRfZG9tX25vZGVfcGFyZW50X2NsYXNzKS0+Y29uc3RydWN0b3IodHlwZSwgY29uc3Ry
dWN0UHJvcGVydGllc0NvdW50LCBjb25zdHJ1Y3RQcm9wZXJ0aWVzKTsKKworICAgIHdlYmtpdERP
TU5vZGVTZXRDb3JlT2JqZWN0KFdFQktJVF9ET01fTk9ERShvYmplY3QpLCBzdGF0aWNfY2FzdDxX
ZWJDb3JlOjpOb2RlKj4oV0VCS0lUX0RPTV9PQkpFQ1Qob2JqZWN0KS0+Y29yZU9iamVjdCkpOwor
CisgICAgcmV0dXJuIG9iamVjdDsKK30KKworc3RhdGljIHZvaWQgd2Via2l0RE9NTm9kZUZpbmFs
aXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICBXZWJLaXRET01Ob2RlKiBub2RlID0gV0VCS0lU
X0RPTV9OT0RFKG9iamVjdCk7CisKKyAgICBXZWJLaXRET01Ob2RlUHJpdmF0ZSogcHJpdiA9IFdF
QktJVF9ET01fTk9ERV9HRVRfUFJJVkFURShub2RlKTsKKyAgICBwcml2LT5+V2ViS2l0RE9NTm9k
ZVByaXZhdGUoKTsKKworICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9kb21fbm9kZV9wYXJlbnRf
Y2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX25v
ZGVfaW5pdChXZWJLaXRET01Ob2RlKiBub2RlKQoreworICAgIFdlYktpdERPTU5vZGVQcml2YXRl
KiBwcml2ID0gV0VCS0lUX0RPTV9OT0RFX0dFVF9QUklWQVRFKG5vZGUpOworICAgIG5ldyAocHJp
dikgV2ViS2l0RE9NTm9kZVByaXZhdGUoKTsKK30KKyNlbmRpZgorCitzdGF0aWMgdm9pZCB3ZWJr
aXRfZG9tX25vZGVfY2xhc3NfaW5pdChXZWJLaXRET01Ob2RlQ2xhc3MqIG5vZGVDbGFzcykKK3sK
KyNpZiBQTEFURk9STShHVEspCisgICAgR09iamVjdENsYXNzKiBnb2JqZWN0Q2xhc3MgPSBHX09C
SkVDVF9DTEFTUyhub2RlQ2xhc3MpOworICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShnb2Jq
ZWN0Q2xhc3MsIHNpemVvZihXZWJLaXRET01Ob2RlUHJpdmF0ZSkpOworICAgIGdvYmplY3RDbGFz
cy0+Y29uc3RydWN0b3IgPSB3ZWJraXRET01Ob2RlQ29uc3RydWN0b3I7CisgICAgZ29iamVjdENs
YXNzLT5maW5hbGl6ZSA9IHdlYmtpdERPTU5vZGVGaW5hbGl6ZTsKKyAgICB3ZWJraXRET01Ob2Rl
SW5zdGFsbFByb3BlcnRpZXMoZ29iamVjdENsYXNzKTsKKyNlbmRpZgorfQorCit2b2lkIHdlYmtp
dERPTU5vZGVTZXRDb3JlT2JqZWN0KFdlYktpdERPTU5vZGUqIG5vZGUsIFdlYkNvcmU6Ok5vZGUq
IGNvcmVPYmplY3QpCit7CisgICAgV2ViS2l0RE9NTm9kZVByaXZhdGUqIHByaXYgPSBXRUJLSVRf
RE9NX05PREVfR0VUX1BSSVZBVEUobm9kZSk7CisgICAgcHJpdi0+Y29yZU9iamVjdCA9IGNvcmVP
YmplY3Q7CisgICAgV2ViS2l0OjpET01PYmplY3RDYWNoZTo6cHV0KGNvcmVPYmplY3QsIG5vZGUp
OworfQorCitXZWJDb3JlOjpOb2RlKiB3ZWJraXRET01Ob2RlR2V0Q29yZU9iamVjdChXZWJLaXRE
T01Ob2RlKiBub2RlKQoreworICAgIFdlYktpdERPTU5vZGVQcml2YXRlKiBwcml2ID0gV0VCS0lU
X0RPTV9OT0RFX0dFVF9QUklWQVRFKG5vZGUpOworICAgIHJldHVybiBwcml2LT5jb3JlT2JqZWN0
LmdldCgpOworfQorCisvKioKKyAqIHdlYmtpdF9kb21fbm9kZV9mb3JfanNfdmFsdWU6CisgKiBA
dmFsdWU6IGEgI0pTQ1ZhbHVlCisgKgorICogR2V0IHRoZSAjV2ViS2l0RE9NTm9kZSBmb3IgdGhl
IERPTSBub2RlIHJlZmVyZW5jZWQgYnkgQHZhbHVlLgorICoKKyAqIFJldHVybnM6ICh0cmFuc2Zl
ciBub25lKTogYSAjV2ViS2l0RE9NTm9kZSwgb3IgJU5VTEwgaWYgQHZhbHVlIGRvZXNuJ3QgcmVm
ZXJlbmNlIGEgRE9NIG5vZGUuCisgKgorICogU2luY2U6IDIuMjIKKyAqLworV2ViS2l0RE9NTm9k
ZSogd2Via2l0X2RvbV9ub2RlX2Zvcl9qc192YWx1ZShKU0NWYWx1ZSogdmFsdWUpCit7CisgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoSlNDX0lTX1ZBTFVFKHZhbHVlKSwgbnVsbHB0cik7CisgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoanNjX3ZhbHVlX2lzX29iamVjdCh2YWx1ZSksIG51bGxwdHIp
OworCisgICAgYXV0byoganNPYmplY3QgPSBKU1ZhbHVlVG9PYmplY3QoanNjQ29udGV4dEdldEpT
Q29udGV4dChqc2NfdmFsdWVfZ2V0X2NvbnRleHQodmFsdWUpKSwganNjVmFsdWVHZXRKU1ZhbHVl
KHZhbHVlKSwgbnVsbHB0cik7CisgICAgcmV0dXJuIGpzT2JqZWN0ID8gV2ViS2l0OjpraXQoV2Vi
Q29yZTo6SlNOb2RlOjp0b1dyYXBwZWQoKnRvSlMoanNPYmplY3QpLT52bSgpLCB0b0pTKGpzT2Jq
ZWN0KSkpIDogbnVsbHB0cjsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlUHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRE
T01Ob2RlUHJpdmF0ZS5oCnNpbWlsYXJpdHkgaW5kZXggNzQlCnJlbmFtZSBmcm9tIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2Rl
UHJpdmF0ZS5oCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTU5vZGVQcml2YXRlLmgKaW5kZXggOGQwYmViOWU2ZjIu
LjMwNWJkNTgyZDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZVByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTU5v
ZGVQcml2YXRlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogIFRoaXMgZmlsZSBpcyBwYXJ0IG9m
IHRoZSBXZWJLaXQgb3BlbiBzb3VyY2UgcHJvamVjdC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMTgg
SWdhbGlhIFMuTC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xNywxMSArMTcsMTAgQEAKICAq
ICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi0jaWZuZGVmIFdlYktpdERPTU5v
ZGVQcml2YXRlX2gKLSNkZWZpbmUgV2ViS2l0RE9NTm9kZVByaXZhdGVfaAorI3ByYWdtYSBvbmNl
CiAKKyNpbmNsdWRlICJXZWJLaXRET01Ob2RlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ob2RlLmg+
Ci0jaW5jbHVkZSA8d2Via2l0ZG9tL1dlYktpdERPTU5vZGUuaD4KIAogbmFtZXNwYWNlIFdlYktp
dCB7CiBXZWJLaXRET01Ob2RlKiB3cmFwTm9kZShXZWJDb3JlOjpOb2RlKik7CkBAIC0yOSw0ICsy
OCwxMCBAQCBXZWJLaXRET01Ob2RlKiBraXQoV2ViQ29yZTo6Tm9kZSopOwogV2ViQ29yZTo6Tm9k
ZSogY29yZShXZWJLaXRET01Ob2RlKik7CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlm
IC8qIFdlYktpdERPTU5vZGVQcml2YXRlX2ggKi8KK3ZvaWQgd2Via2l0RE9NTm9kZVNldENvcmVP
YmplY3QoV2ViS2l0RE9NTm9kZSosIFdlYkNvcmU6Ok5vZGUqKTsKK1dlYkNvcmU6Ok5vZGUqIHdl
YmtpdERPTU5vZGVHZXRDb3JlT2JqZWN0KFdlYktpdERPTU5vZGUqKTsKKworI2lmIFBMQVRGT1JN
KEdUSykKK3ZvaWQgd2Via2l0RE9NTm9kZURPTUV2ZW50VGFyZ2V0SW5pdChXZWJLaXRET01FdmVu
dFRhcmdldElmYWNlKik7Cit2b2lkIHdlYmtpdERPTU5vZGVJbnN0YWxsUHJvcGVydGllcyhHT2Jq
ZWN0Q2xhc3MqKTsKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTU9i
amVjdC5jcHAKc2ltaWxhcml0eSBpbmRleCA4OSUKcmVuYW1lIGZyb20gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU9iamVjdC5jcHAK
cmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xp
Yi9ET00vV2ViS2l0RE9NT2JqZWN0LmNwcAppbmRleCA4Njk1NjNlMmQzZC4uY2E1ZjNjNWMzOTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NT2JqZWN0LmNwcApAQCAtOCwx
MCArOCwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYktpdERPTU9iamVj
dC5oIgogCisjaWYgUExBVEZPUk0oR1RLKQogZW51bSB7Ci0gICAgRE9NX09CSkVDVF9QUk9QXzAs
Ci0gICAgRE9NX09CSkVDVF9QUk9QX0NPUkVfT0JKRUNUCisgICAgUFJPUF8wLAorICAgIFBST1Bf
Q09SRV9PQkpFQ1QKIH07CisjZW5kaWYKIAogR19ERUZJTkVfVFlQRShXZWJLaXRET01PYmplY3Qs
IHdlYmtpdF9kb21fb2JqZWN0LCBHX1RZUEVfT0JKRUNUKQogCkBAIC0xOSwxMCArMjEsMTEgQEAg
c3RhdGljIHZvaWQgd2Via2l0X2RvbV9vYmplY3RfaW5pdChXZWJLaXRET01PYmplY3QqKQogewog
fQogCisjaWYgUExBVEZPUk0oR1RLKQogc3RhdGljIHZvaWQgd2Via2l0RE9NT2JqZWN0U2V0UHJv
cGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLCBjb25zdCBHVmFsdWUqIHZh
bHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKIHsKICAgICBzd2l0Y2ggKHByb3BlcnR5SWQpIHsKLSAg
ICBjYXNlIERPTV9PQkpFQ1RfUFJPUF9DT1JFX09CSkVDVDoKKyAgICBjYXNlIFBST1BfQ09SRV9P
QkpFQ1Q6CiAgICAgICAgIFdFQktJVF9ET01fT0JKRUNUKG9iamVjdCktPmNvcmVPYmplY3QgPSBn
X3ZhbHVlX2dldF9wb2ludGVyKHZhbHVlKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoK
QEAgLTMwLDE4ICszMywyMSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRET01PYmplY3RTZXRQcm9wZXJ0
eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SWQsIGNvbnN0CiAgICAgICAgIGJyZWFr
OwogICAgIH0KIH0KKyNlbmRpZgogCiBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX29iamVjdF9jbGFz
c19pbml0KFdlYktpdERPTU9iamVjdENsYXNzKiBrbGFzcykKIHsKKyNpZiBQTEFURk9STShHVEsp
CiAgICAgR09iamVjdENsYXNzKiBnb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhrbGFzcyk7
CiAgICAgZ29iamVjdENsYXNzLT5zZXRfcHJvcGVydHkgPSB3ZWJraXRET01PYmplY3RTZXRQcm9w
ZXJ0eTsKIAogICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCiAgICAgICAgIGdv
YmplY3RDbGFzcywKLSAgICAgICAgRE9NX09CSkVDVF9QUk9QX0NPUkVfT0JKRUNULAorICAgICAg
ICBQUk9QX0NPUkVfT0JKRUNULAogICAgICAgICBnX3BhcmFtX3NwZWNfcG9pbnRlcigKICAgICAg
ICAgICAgICJjb3JlLW9iamVjdCIsCiAgICAgICAgICAgICAiQ29yZSBPYmplY3QiLAogICAgICAg
ICAgICAgIlRoZSBXZWJDb3JlIG9iamVjdCB0aGUgV2ViS2l0RE9NT2JqZWN0IHdyYXBzIiwKICAg
ICAgICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihHX1BBUkFNX1dSSVRBQkxFIHwgR19Q
QVJBTV9DT05TVFJVQ1RfT05MWSB8IEdfUEFSQU1fU1RBVElDX05BTUUgfCBHX1BBUkFNX1NUQVRJ
Q19OSUNLIHwgR19QQVJBTV9TVEFUSUNfQkxVUkIpKSk7CisjZW5kaWYKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2Vi
S2l0RE9NUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTVByaXZhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi45M2ZmYjg3ODEwYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9N
UHJpdmF0ZS5jcHAKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTgg
SWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAg
TGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl
ZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRET01Qcml2YXRlLmgiCisKKyNpbmNsdWRlICJXZWJL
aXRET01Eb2N1bWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01FbGVtZW50UHJpdmF0
ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTU5vZGVQcml2YXRlLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9IVE1MRm9ybUVsZW1lbnQuaD4KKworI2lmIFBMQVRGT1JNKEdUSykKKyNpbmNsdWRlICJXZWJL
aXRET01Qcml2YXRlR3RrLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYktp
dERPTU5vZGUqIHdyYXAoV2ViQ29yZTo6Tm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQobm9kZSk7
CisgICAgQVNTRVJUKG5vZGUtPm5vZGVUeXBlKCkpOworCisjaWYgUExBVEZPUk0oR1RLKQorICAg
IGlmIChhdXRvKiB3cmFwcGVyID0gd3JhcE5vZGVHdGsobm9kZSkpCisgICAgICAgIHJldHVybiB3
cmFwcGVyOworI2VuZGlmCisKKyAgICBzd2l0Y2ggKG5vZGUtPm5vZGVUeXBlKCkpIHsKKyAgICBj
YXNlIFdlYkNvcmU6Ok5vZGU6OkVMRU1FTlRfTk9ERToKKyAgICAgICAgcmV0dXJuIFdFQktJVF9E
T01fTk9ERSh3cmFwRWxlbWVudChkb3duY2FzdDxXZWJDb3JlOjpFbGVtZW50Pihub2RlKSkpOwor
ICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6RE9DVU1FTlRfTk9ERToKKyAgICAgICAgcmV0dXJuIFdF
QktJVF9ET01fTk9ERSh3cmFwRG9jdW1lbnQoZG93bmNhc3Q8V2ViQ29yZTo6RG9jdW1lbnQ+KG5v
ZGUpKSk7CisgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpBVFRSSUJVVEVfTk9ERToKKyAgICBjYXNl
IFdlYkNvcmU6Ok5vZGU6OlRFWFRfTk9ERToKKyAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6OkNEQVRB
X1NFQ1RJT05fTk9ERToKKyAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6OlBST0NFU1NJTkdfSU5TVFJV
Q1RJT05fTk9ERToKKyAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6OkNPTU1FTlRfTk9ERToKKyAgICBj
YXNlIFdlYkNvcmU6Ok5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToKKyAgICBjYXNlIFdlYkNvcmU6
Ok5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CisgICAgICAgIGJyZWFrOworICAgIH0KKwor
ICAgIHJldHVybiB3cmFwTm9kZShub2RlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2ds
aWIvRE9NL1dlYktpdERPTVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NUHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iOGRiMjc2NjZhYgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2Vi
S2l0RE9NUHJpdmF0ZS5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAx
OTk5LTIwMDEgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKKyAqICBDb3B5cmlnaHQgKEMp
IDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2VpbmlnIDxzYW1Ad2Via2l0Lm9y
Zz4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8
bGtjbEBsa2NsLm5ldD4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggTWFydGluIFNvdG8gPHNvdG9A
ZnJlZWRlc2t0b3Aub3JnPgorICogIENvcHlyaWdodCAoQykgMjAwOS0yMDEzIElnYWxpYSBTLkwu
CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK
KyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC
b3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIldlYktpdERPTU5vZGUuaCIKKyNpbmNsdWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5oPgorCisj
aWYgUExBVEZPUk0oR1RLKQorI2luY2x1ZGUgIldlYktpdERPTVByaXZhdGVHdGsuaCIKKyNlbmRp
ZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBOb2RlOworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCituYW1lc3BhY2UgV2ViS2l0IHsKK1dlYktpdERPTU5vZGUqIHdyYXAoV2ViQ29yZTo6
Tm9kZSopOworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0RnJhbWUuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdEZyYW1l
LmNwcAppbmRleCAwNDc3MTAwMTUxMi4uM2EyODJhZWQ4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRGcmFtZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dl
YktpdEZyYW1lLmNwcApAQCAtMjAsOCArMjAsMTMgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJXZWJLaXRGcmFtZS5oIgogCisjaW5jbHVkZSAiV2ViS2l0RE9NTm9kZVByaXZhdGUu
aCIKICNpbmNsdWRlICJXZWJLaXRGcmFtZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRTY3Jp
cHRXb3JsZFByaXZhdGUuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0xvY2suaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9KU05vZGUuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1NjcmlwdENvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxqc2MvSlNDQ29u
dGV4dFByaXZhdGUuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTE3MCwzICsxNzUsNTMgQEAgSlNDQ29udGV4dCogd2Vi
a2l0X2ZyYW1lX2dldF9qc19jb250ZXh0X2Zvcl9zY3JpcHRfd29ybGQoV2ViS2l0RnJhbWUqIGZy
YW1lLCBXZWIKIAogICAgIHJldHVybiBqc2NDb250ZXh0R2V0T3JDcmVhdGUoZnJhbWUtPnByaXYt
PndlYkZyYW1lLT5qc0NvbnRleHRGb3JXb3JsZCh3ZWJraXRTY3JpcHRXb3JsZEdldEluamVjdGVk
QnVuZGxlU2NyaXB0V29ybGQod29ybGQpKSkubGVha1JlZigpOwogfQorCisvKioKKyAqIHdlYmtp
dF9mcmFtZV9nZXRfanNfdmFsdWVfZm9yX2RvbV9vYmplY3Q6CisgKiBAZnJhbWU6IGEgI1dlYktp
dEZyYW1lCisgKiBAZG9tX29iamVjdDogYSAjV2ViS2l0RE9NT2JqZWN0CisgKgorICogR2V0IGEg
I0pTQ1ZhbHVlIHJlZmVyZW5jaW5nIHRoZSBnaXZlbiBET00gb2JqZWN0LiBUaGUgdmFsdWUgaXMg
Y3JlYXRlZCBpbiB0aGUgSmF2YVNjcmlwdCBleGVjdXRpb24KKyAqIGNvbnRleHQgb2YgQGZyYW1l
LgorICoKKyAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogdGhlICNKU0NWYWx1ZSByZWZlcmVu
Y2luZyBAZG9tX29iamVjdC4KKyAqCisgKiBTaW5jZTogMi4yMgorICovCitKU0NWYWx1ZSogd2Vi
a2l0X2ZyYW1lX2dldF9qc192YWx1ZV9mb3JfZG9tX29iamVjdChXZWJLaXRGcmFtZSogZnJhbWUs
IFdlYktpdERPTU9iamVjdCogZG9tT2JqZWN0KQoreworICAgIHJldHVybiB3ZWJraXRfZnJhbWVf
Z2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0X2luX3NjcmlwdF93b3JsZChmcmFtZSwgZG9tT2Jq
ZWN0LCB3ZWJraXRfc2NyaXB0X3dvcmxkX2dldF9kZWZhdWx0KCkpOworfQorCisvKioKKyAqIHdl
YmtpdF9mcmFtZV9nZXRfanNfdmFsdWVfZm9yX2RvbV9vYmplY3RfaW5fc2NyaXB0X3dvcmxkOgor
ICogQGZyYW1lOiBhICNXZWJLaXRGcmFtZQorICogQGRvbV9vYmplY3Q6IGEgI1dlYktpdERPTU9i
amVjdAorICogQHdvcmxkOiBhICNXZWJLaXRTY3JpcHRXb3JsZAorICoKKyAqIEdldCBhICNKU0NW
YWx1ZSByZWZlcmVuY2luZyB0aGUgZ2l2ZW4gRE9NIG9iamVjdC4gVGhlIHZhbHVlIGlzIGNyZWF0
ZWQgaW4gdGhlIEphdmFTY3JpcHQgZXhlY3V0aW9uCisgKiBjb250ZXh0IG9mIEBmcmFtZSBmb3Ig
dGhlIGdpdmVuICNXZWJLaXRTY3JpcHRXb3JsZC4KKyAqCisgKiBSZXR1cm5zOiAodHJhbnNmZXIg
ZnVsbCk6IHRoZSAjSlNDVmFsdWUgcmVmZXJlbmNpbmcgQGRvbV9vYmplY3QKKyAqCisgKiBTaW5j
ZTogMi4yMgorICovCitKU0NWYWx1ZSogd2Via2l0X2ZyYW1lX2dldF9qc192YWx1ZV9mb3JfZG9t
X29iamVjdF9pbl9zY3JpcHRfd29ybGQoV2ViS2l0RnJhbWUqIGZyYW1lLCBXZWJLaXRET01PYmpl
Y3QqIGRvbU9iamVjdCwgV2ViS2l0U2NyaXB0V29ybGQqIHdvcmxkKQoreworICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9JU19GUkFNRShmcmFtZSksIG51bGxwdHIpOworICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfT0JKRUNUKGRvbU9iamVjdCksIG51bGxwdHIp
OworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19TQ1JJUFRfV09STEQod29ybGQp
LCBudWxscHRyKTsKKworICAgIGF1dG8qIHdrV29ybGQgPSB3ZWJraXRTY3JpcHRXb3JsZEdldElu
amVjdGVkQnVuZGxlU2NyaXB0V29ybGQod29ybGQpOworICAgIGF1dG8ganNDb250ZXh0ID0ganNj
Q29udGV4dEdldE9yQ3JlYXRlKGZyYW1lLT5wcml2LT53ZWJGcmFtZS0+anNDb250ZXh0Rm9yV29y
bGQod2tXb3JsZCkpOworICAgIEpTRE9NV2luZG93KiBnbG9iYWxPYmplY3QgPSBmcmFtZS0+cHJp
di0+d2ViRnJhbWUtPmNvcmVGcmFtZSgpLT5zY3JpcHQoKS5nbG9iYWxPYmplY3Qod2tXb3JsZC0+
Y29yZVdvcmxkKCkpOworICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5n
bG9iYWxFeGVjKCk7CisgICAgSlNWYWx1ZVJlZiBqc1ZhbHVlID0gbnVsbHB0cjsKKyAgICB7Cisg
ICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7CisgICAgICAgIGlmIChXRUJLSVRf
RE9NX0lTX05PREUoZG9tT2JqZWN0KSkKKyAgICAgICAgICAgIGpzVmFsdWUgPSB0b1JlZihleGVj
LCB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgV2ViS2l0Ojpjb3JlKFdFQktJVF9ET01fTk9ERShk
b21PYmplY3QpKSkpOworICAgIH0KKworICAgIHJldHVybiBqc1ZhbHVlID8ganNjQ29udGV4dEdl
dE9yQ3JlYXRlVmFsdWUoanNDb250ZXh0LmdldCgpLCBqc1ZhbHVlKS5sZWFrUmVmKCkgOiBudWxs
cHRyOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9nbGliL1dlYktpdFdlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYlBhZ2UuY3BwCmluZGV4IDY5M2ZmNzU1
Njg1Li41NjQyZjE2MDc2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJQYWdlLmNwcApA
QCAtMzMsMTMgKzMzLDE4IEBACiAjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKICNpbmNsdWRlICJXZWJL
aXRDb25zb2xlTWVzc2FnZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRDb250ZXh0TWVudVBy
aXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01Eb2N1bWVudFByaXZhdGUuaCIKKyNpbmNsdWRl
ICJXZWJLaXRET01FbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTU5vZGVQcml2
YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RnJhbWVQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFNjcmlwdFdvcmxkUHJpdmF0ZS5oIgogI2luY2x1
ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0VVJJUmVzcG9u
c2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViRWRpdG9yUHJpdmF0ZS5oIgorI2luY2x1
ZGUgIldlYktpdFdlYkhpdFRlc3RSZXN1bHRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2Vi
UGFnZVByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVzLmgiCiAj
aW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+CkBAIC00Nyw2ICs1Miw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0hUTUxGb3JtRWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWFpbkZy
YW1lLmg+CiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KQEAgLTU0LDI4ICs2MCwxNiBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKLSNpZiBQTEFURk9S
TShHVEspCi0jaW5jbHVkZSAiV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlLmgiCi0jaW5jbHVkZSAi
V2ViS2l0RE9NRWxlbWVudFByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRET01IVE1MRm9ybUVs
ZW1lbnRQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0V2ViSGl0VGVzdFJlc3VsdFByaXZhdGUu
aCIKLSNpbmNsdWRlICJXZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVzLmgiCi0jZW5kaWYKLQogdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBlbnVtIHsK
ICAgICBET0NVTUVOVF9MT0FERUQsCiAgICAgU0VORF9SRVFVRVNULAotI2lmIFBMQVRGT1JNKEdU
SykKICAgICBDT05URVhUX01FTlUsCi0jZW5kaWYKICAgICBDT05TT0xFX01FU1NBR0VfU0VOVCwK
LSNpZiBQTEFURk9STShHVEspCiAgICAgRk9STV9DT05UUk9MU19BU1NPQ0lBVEVELAogICAgIFdJ
TExfU1VCTUlUX0ZPUk0sCi0jZW5kaWYKIAogICAgIExBU1RfU0lHTkFMCiB9OwpAQCAtMzM1LDcg
KzMyOSw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgYm9vbCBnZXRDdXN0b21NZW51RnJvbURl
ZmF1bHRJdGVtcyhXZWJQYWdlJiwgY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYgaGl0VGVz
dFJlc3VsdCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbT4mIGRlZmF1bHRN
ZW51LCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIG5ld01lbnUsIFJlZlB0cjxBUEk6
Ok9iamVjdD4mIHVzZXJEYXRhKSBvdmVycmlkZQogICAgIHsKLSNpZiBQTEFURk9STShHVEspCiAg
ICAgICAgIEdSZWZQdHI8V2ViS2l0Q29udGV4dE1lbnU+IGNvbnRleHRNZW51ID0gYWRvcHRHUmVm
KHdlYmtpdENvbnRleHRNZW51Q3JlYXRlKGtpdEl0ZW1zKGRlZmF1bHRNZW51KSkpOwogICAgICAg
ICBHUmVmUHRyPFdlYktpdFdlYkhpdFRlc3RSZXN1bHQ+IHdlYkhpdFRlc3RSZXN1bHQgPSBhZG9w
dEdSZWYod2Via2l0V2ViSGl0VGVzdFJlc3VsdENyZWF0ZShoaXRUZXN0UmVzdWx0KSk7CiAgICAg
ICAgIGdib29sZWFuIHJldHVyblZhbHVlOwpAQCAtMzUwLDEwICszNDMsNiBAQCBwcml2YXRlOgog
CiAgICAgICAgIHdlYmtpdENvbnRleHRNZW51UG9wdWxhdGUoY29udGV4dE1lbnUuZ2V0KCksIG5l
d01lbnUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKLSNlbGlmIFBMQVRGT1JNKFdQRSkKLSAgICAg
ICAgLy8gRklYTUU6IHVzZSBhIHNoYXJlZCBXZWJLaXRIaXRUZXN0UmVzdWx0IGluIFdQRS4KLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCiAgICAgfQogCiAgICAgV2ViS2l0V2ViUGFnZSog
bV93ZWJQYWdlOwpAQCAtMzc1LDcgKzM2NCw2IEBAIHByaXZhdGU6CiAgICAgV2ViS2l0V2ViUGFn
ZSogbV93ZWJQYWdlOwogfTsKIAotI2lmIFBMQVRGT1JNKEdUSykKIGNsYXNzIFBhZ2VGb3JtQ2xp
ZW50IGZpbmFsIDogcHVibGljIEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkZvcm1DbGllbnQgewogcHVi
bGljOgogICAgIGV4cGxpY2l0IFBhZ2VGb3JtQ2xpZW50KFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2Up
CkBAIC00MTcsMTIgKzQwNSwxMSBAQCBwcml2YXRlOgogICAgICAgICAgICAgZ19wdHJfYXJyYXlf
YWRkKHRleHRGaWVsZFZhbHVlcy5nZXQoKSwgZ19zdHJkdXAocGFpci5zZWNvbmQudXRmOCgpLmRh
dGEoKSkpOwogICAgICAgICB9CiAKLSAgICAgICAgZ19zaWduYWxfZW1pdChtX3dlYlBhZ2UsIHNp
Z25hbHNbV0lMTF9TVUJNSVRfRk9STV0sIDAsIFdFQktJVF9ET01fRUxFTUVOVChXZWJLaXQ6Omtp
dChmb3JtRWxlbWVudCkpLCBzdGVwLCB3ZWJraXRTb3VyY2VGcmFtZSwgd2Via2l0VGFyZ2V0RnJh
bWUsIHRleHRGaWVsZE5hbWVzLmdldCgpLCB0ZXh0RmllbGRWYWx1ZXMuZ2V0KCkpOworICAgICAg
ICBnX3NpZ25hbF9lbWl0KG1fd2ViUGFnZSwgc2lnbmFsc1tXSUxMX1NVQk1JVF9GT1JNXSwgMCwg
V0VCS0lUX0RPTV9FTEVNRU5UKFdlYktpdDo6a2l0KHN0YXRpY19jYXN0PE5vZGUqPihmb3JtRWxl
bWVudCkpKSwgc3RlcCwgd2Via2l0U291cmNlRnJhbWUsIHdlYmtpdFRhcmdldEZyYW1lLCB0ZXh0
RmllbGROYW1lcy5nZXQoKSwgdGV4dEZpZWxkVmFsdWVzLmdldCgpKTsKICAgICB9CiAKICAgICBX
ZWJLaXRXZWJQYWdlKiBtX3dlYlBhZ2U7CiB9OwotI2VuZGlmCiAKIHN0YXRpYyB2b2lkIHdlYmtp
dFdlYlBhZ2VHZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgR1ZhbHVl
KiB2YWx1ZSwgR1BhcmFtU3BlYyogcGFyYW1TcGVjKQogewpAQCAtNTA3LDcgKzQ5NCw2IEBAIHN0
YXRpYyB2b2lkIHdlYmtpdF93ZWJfcGFnZV9jbGFzc19pbml0KFdlYktpdFdlYlBhZ2VDbGFzcyog
a2xhc3MpCiAgICAgICAgIFdFQktJVF9UWVBFX1VSSV9SRVFVRVNULAogICAgICAgICBXRUJLSVRf
VFlQRV9VUklfUkVTUE9OU0UpOwogCi0jaWYgUExBVEZPUk0oR1RLKQogICAgIC8qKgogICAgICAq
IFdlYktpdFdlYlBhZ2U6OmNvbnRleHQtbWVudToKICAgICAgKiBAd2ViX3BhZ2U6IHRoZSAjV2Vi
S2l0V2ViUGFnZSBvbiB3aGljaCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKQEAgLTUzNyw3ICs1MjMs
NiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3BhZ2VfY2xhc3NfaW5pdChXZWJLaXRXZWJQYWdl
Q2xhc3MqIGtsYXNzKQogICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMiwKICAgICAgICAgV0VCS0lU
X1RZUEVfQ09OVEVYVF9NRU5VLAogICAgICAgICBXRUJLSVRfVFlQRV9XRUJfSElUX1RFU1RfUkVT
VUxUKTsKLSNlbmRpZgogCiAgICAgLyoqCiAgICAgICogV2ViS2l0V2ViUGFnZTo6Y29uc29sZS1t
ZXNzYWdlLXNlbnQ6CkBAIC01NjAsNyArNTQ1LDYgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9w
YWdlX2NsYXNzX2luaXQoV2ViS2l0V2ViUGFnZUNsYXNzKiBrbGFzcykKICAgICAgICAgR19UWVBF
X05PTkUsIDEsCiAgICAgICAgIFdFQktJVF9UWVBFX0NPTlNPTEVfTUVTU0FHRSB8IEdfU0lHTkFM
X1RZUEVfU1RBVElDX1NDT1BFKTsKIAotI2lmIFBMQVRGT1JNKEdUSykKICAgICAvKioKICAgICAg
KiBXZWJLaXRXZWJQYWdlOjpmb3JtLWNvbnRyb2xzLWFzc29jaWF0ZWQ6CiAgICAgICogQHdlYl9w
YWdlOiB0aGUgI1dlYktpdFdlYlBhZ2Ugb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCkBA
IC02NDYsNyArNjMwLDYgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9wYWdlX2NsYXNzX2luaXQo
V2ViS2l0V2ViUGFnZUNsYXNzKiBrbGFzcykKICAgICAgICAgV0VCS0lUX1RZUEVfRlJBTUUsCiAg
ICAgICAgIEdfVFlQRV9QVFJfQVJSQVksCiAgICAgICAgIEdfVFlQRV9QVFJfQVJSQVkpOwotI2Vu
ZGlmCiB9CiAKIFdlYlBhZ2UqIHdlYmtpdFdlYlBhZ2VHZXRQYWdlKFdlYktpdFdlYlBhZ2UgKndl
YlBhZ2UpCkBAIC02NjMsOSArNjQ2LDcgQEAgV2ViS2l0V2ViUGFnZSogd2Via2l0V2ViUGFnZUNy
ZWF0ZShXZWJQYWdlKiB3ZWJQYWdlKQogICAgIHdlYlBhZ2UtPnNldEluamVjdGVkQnVuZGxlUGFn
ZUxvYWRlckNsaWVudChzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VMb2FkZXJDbGllbnQ+KHBhZ2UpKTsK
ICAgICB3ZWJQYWdlLT5zZXRJbmplY3RlZEJ1bmRsZUNvbnRleHRNZW51Q2xpZW50KHN0ZDo6bWFr
ZV91bmlxdWU8UGFnZUNvbnRleHRNZW51Q2xpZW50PihwYWdlKSk7CiAgICAgd2ViUGFnZS0+c2V0
SW5qZWN0ZWRCdW5kbGVVSUNsaWVudChzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VVSUNsaWVudD4ocGFn
ZSkpOwotI2lmIFBMQVRGT1JNKEdUSykKICAgICB3ZWJQYWdlLT5zZXRJbmplY3RlZEJ1bmRsZUZv
cm1DbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxQYWdlRm9ybUNsaWVudD4ocGFnZSkpOwotI2VuZGlm
CiAKICAgICByZXR1cm4gcGFnZTsKIH0KQEAgLTcxNSw3ICs2OTYsNiBAQCB2b2lkIHdlYmtpdFdl
YlBhZ2VEaWRSZWNlaXZlTWVzc2FnZShXZWJLaXRXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2VOYQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotI2lmIFBMQVRG
T1JNKEdUSykKIC8qKgogICogd2Via2l0X3dlYl9wYWdlX2dldF9kb21fZG9jdW1lbnQ6CiAgKiBA
d2ViX3BhZ2U6IGEgI1dlYktpdFdlYlBhZ2UKQEAgLTcyNywxNSArNzA3LDEzIEBAIHZvaWQgd2Vi
a2l0V2ViUGFnZURpZFJlY2VpdmVNZXNzYWdlKFdlYktpdFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZU5hCiAgKi8KIFdlYktpdERPTURvY3VtZW50KiB3ZWJraXRfd2ViX3BhZ2Vf
Z2V0X2RvbV9kb2N1bWVudChXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlKQogewotICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfUEFHRSh3ZWJQYWdlKSwgMCk7CisgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9QQUdFKHdlYlBhZ2UpLCBudWxscHRyKTsKIAot
ICAgIE1haW5GcmFtZSogY29yZUZyYW1lID0gd2ViUGFnZS0+cHJpdi0+d2ViUGFnZS0+bWFpbkZy
YW1lKCk7Ci0gICAgaWYgKCFjb3JlRnJhbWUpCi0gICAgICAgIHJldHVybiAwOworICAgIGlmIChh
dXRvKiBjb3JlRnJhbWUgPSB3ZWJQYWdlLT5wcml2LT53ZWJQYWdlLT5tYWluRnJhbWUoKSkKKyAg
ICAgICAgcmV0dXJuIGtpdChjb3JlRnJhbWUtPmRvY3VtZW50KCkpOwogCi0gICAgcmV0dXJuIGtp
dChjb3JlRnJhbWUtPmRvY3VtZW50KCkpOworICAgIHJldHVybiBudWxscHRyOwogfQotI2VuZGlm
CiAKIC8qKgogICogd2Via2l0X3dlYl9wYWdlX2dldF9pZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2JqZWN0RXZlbnRM
aXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vR09iamVjdEV2ZW50TGlzdGVuZXIuY3BwCmluZGV4IDU0ZWZiYzcwMDAwLi45OTRi
OWFjZjI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL0dPYmplY3RFdmVudExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vR09iamVjdEV2ZW50TGlz
dGVuZXIuY3BwCkBAIC02Niw2ICs2Niw3IEBAIHZvaWQgR09iamVjdEV2ZW50TGlzdGVuZXI6Omdv
YmplY3REZXN0cm95ZWQoKQogCiB2b2lkIEdPYmplY3RFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVu
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgRXZlbnQmIGV2ZW50KQogeworICAgIEdfR05VQ19C
RUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwogICAgIEdWYWx1ZSBwYXJhbWV0ZXJzWzJdID0geyBH
X1ZBTFVFX0lOSVQsIEdfVkFMVUVfSU5JVCB9OwogICAgIGdfdmFsdWVfaW5pdCgmcGFyYW1ldGVy
c1swXSwgV0VCS0lUX0RPTV9UWVBFX0VWRU5UX1RBUkdFVCk7CiAgICAgZ192YWx1ZV9zZXRfb2Jq
ZWN0KCZwYXJhbWV0ZXJzWzBdLCBtX3RhcmdldCk7CkBAIC03Nyw2ICs3OCw3IEBAIHZvaWQgR09i
amVjdEV2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBF
dmVudCYgZXZlbnQpCiAgICAgZ19jbG9zdXJlX2ludm9rZShtX2hhbmRsZXIuZ2V0KCksIDAsIDIs
IHBhcmFtZXRlcnMsIE5VTEwpOwogICAgIGdfdmFsdWVfdW5zZXQocGFyYW1ldGVycyArIDApOwog
ICAgIGdfdmFsdWVfdW5zZXQocGFyYW1ldGVycyArIDEpOworICAgIEdfR05VQ19FTkRfSUdOT1JF
X0RFUFJFQ0FUSU9OUzsKIH0KIAogYm9vbCBHT2JqZWN0RXZlbnRMaXN0ZW5lcjo6b3BlcmF0b3I9
PShjb25zdCBFdmVudExpc3RlbmVyJiBsaXN0ZW5lcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2JqZWN0Tm9k
ZUZpbHRlckNvbmRpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwCmluZGV4IGEw
NjY1YjU4NmVhLi5iYTA5ZDg4MDNjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwCkBAIC0yNCw2ICsyNCw4IEBACiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FU
SU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIEdPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9u
Ojp+R09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24oKQpAQCAtMzcsMyArMzksNCBAQCB1bnNpZ25l
ZCBzaG9ydCBHT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZShOb2RlJiBub2Rl
KSBjb25zdAogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKK0dfR05VQ19FTkRfSUdOT1JFX0RF
UFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2JqZWN0WFBhdGhOU1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2JqZWN0WFBhdGhO
U1Jlc29sdmVyLmNwcAppbmRleCBhNGRmODJjYmUzNy4uOTA1ZTdiMjk3NDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2Jq
ZWN0WFBhdGhOU1Jlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vR09iamVjdFhQYXRoTlNSZXNvbHZlci5jcHAKQEAgLTIy
LDYgKzIyLDggQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwor
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogR09iamVjdFhQYXRoTlNSZXNvbHZlcjo6fkdPYmplY3RY
UGF0aE5TUmVzb2x2ZXIoKQpAQCAtMzQsMyArMzYsNCBAQCBTdHJpbmcgR09iamVjdFhQYXRoTlNS
ZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJlZml4KQogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01BdHRyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01BdHRyLmNwcAppbmRleCA2ODBiMTY1OTIwMC4u
NmJkOWFlZWQ4YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01BdHRyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQXR0ci5jcHAK
QEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUF0dHIqIGtpdChXZWJDb3JlOjpBdHRyKiBvYmopCkBA
IC0zMDcsMyArMzA5LDQgQEAgZ2NoYXIqIHdlYmtpdF9kb21fYXR0cl9nZXRfbG9jYWxfbmFtZShX
ZWJLaXRET01BdHRyKiBzZWxmKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0dfR05VQ19FTkRf
SUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01BdHRyLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQXR0ci5o
CmluZGV4IDk4NTk3ZmE2OTAwLi43MWM0YTExMTEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUF0dHIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NQXR0ci5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NQXR0ckNs
YXNzIHsKICAgICBXZWJLaXRET01Ob2RlQ2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lU
X0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fYXR0cl9nZXRf
dHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2F0dHJfZ2V0
X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NQXR0cgogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21fYXR0cl9nZXRfbmFtZShXZWJLaXRET01BdHRyKiBzZWxmKTsKIAogLyoq
CkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2F0dHJfZ2V0X25hbWUoV2ViS2l0RE9NQXR0
ciogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NQXR0cgogICoKICAqIFJldHVybnM6IEEg
I2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdi
b29sZWFuCiB3ZWJraXRfZG9tX2F0dHJfZ2V0X3NwZWNpZmllZChXZWJLaXRET01BdHRyKiBzZWxm
KTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2F0dHJfZ2V0X3NwZWNpZmll
ZChXZWJLaXRET01BdHRyKiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01BdHRyCiAgKgog
ICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBS
RUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9hdHRyX2dldF92YWx1ZShXZWJLaXRET01BdHRyKiBz
ZWxmKTsKIAogLyoqCkBAIC04MSw4ICs4NywxMCBAQCB3ZWJraXRfZG9tX2F0dHJfZ2V0X3ZhbHVl
KFdlYktpdERPTUF0dHIqIHNlbGYpOwogICogQHZhbHVlOiBBICNnY2hhcgogICogQGVycm9yOiAj
R0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21fYXR0cl9zZXRfdmFsdWUoV2ViS2l0RE9NQXR0ciogc2VsZiwgY29uc3QgZ2No
YXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtOTAsOCArOTgsMTAgQEAgd2Vi
a2l0X2RvbV9hdHRyX3NldF92YWx1ZShXZWJLaXRET01BdHRyKiBzZWxmLCBjb25zdCBnY2hhciog
dmFsdWUsIEdFcnJvcioqIGVycm8KICAqIEBzZWxmOiBBICNXZWJLaXRET01BdHRyCiAgKgogICog
UmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVtZW50CisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgV2ViS2l0RE9NRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUVsZW1l
bnQqCiB3ZWJraXRfZG9tX2F0dHJfZ2V0X293bmVyX2VsZW1lbnQoV2ViS2l0RE9NQXR0ciogc2Vs
Zik7CiAKIC8qKgpAQCAtMTAxLDggKzExMSwxMCBAQCB3ZWJraXRfZG9tX2F0dHJfZ2V0X293bmVy
X2VsZW1lbnQoV2ViS2l0RE9NQXR0ciogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnY2hhcgogICoK
ICAqIFNpbmNlOiAyLjE0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRF
RCBnY2hhcioKIHdlYmtpdF9kb21fYXR0cl9nZXRfbmFtZXNwYWNlX3VyaShXZWJLaXRET01BdHRy
KiBzZWxmKTsKIAogLyoqCkBAIC0xMTIsOCArMTI0LDEwIEBAIHdlYmtpdF9kb21fYXR0cl9nZXRf
bmFtZXNwYWNlX3VyaShXZWJLaXRET01BdHRyKiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2djaGFy
CiAgKgogICogU2luY2U6IDIuMTQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBS
RUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9hdHRyX2dldF9wcmVmaXgoV2ViS2l0RE9NQXR0ciog
c2VsZik7CiAKIC8qKgpAQCAtMTIzLDggKzEzNywxMCBAQCB3ZWJraXRfZG9tX2F0dHJfZ2V0X3By
ZWZpeChXZWJLaXRET01BdHRyKiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2djaGFyCiAgKgogICog
U2luY2U6IDIuMTQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdj
aGFyKgogd2Via2l0X2RvbV9hdHRyX2dldF9sb2NhbF9uYW1lKFdlYktpdERPTUF0dHIqIHNlbGYp
OwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUJsb2IuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUJsb2IuY3Bw
CmluZGV4IDA5ZDRhYzY0ZmYwLi42ZDg0YzIzOGQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUJsb2IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01CbG9iLmNwcApAQCAtMzYsNiArMzYsOCBAQCB0eXBlZGVmIHN0cnVjdCBfV2Vi
S2l0RE9NQmxvYlByaXZhdGUgewogICAgIFJlZlB0cjxXZWJDb3JlOjpCbG9iPiBjb3JlT2JqZWN0
OwogfSBXZWJLaXRET01CbG9iUHJpdmF0ZTsKIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNB
VElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01CbG9iKiBraXQoV2ViQ29y
ZTo6QmxvYiogb2JqKQpAQCAtMTM3LDMgKzEzOSw0IEBAIGd1aW50NjQgd2Via2l0X2RvbV9ibG9i
X2dldF9zaXplKFdlYktpdERPTUJsb2IqIHNlbGYpCiAgICAgZ3VpbnQ2NCByZXN1bHQgPSBpdGVt
LT5zaXplKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJF
Q0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01CbG9iLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQmxvYi5oCmluZGV4IGFjNTA4
MDE0ZTEwLi5hM2ZiNzdlYzk3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUJsb2IuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQmxv
Yi5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NQmxvYkNsYXNzIHsKICAgICBX
ZWJLaXRET01PYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBl
CitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9ibG9iX2dldF90eXBlKHZvaWQp
OwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21fYmxvYl9nZXRfdHlwZSh2b2lk
KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01CbG9iCiAgKgogICogUmV0dXJuczogQSAjZ3VpbnQ2
NAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGd1aW50NjQKK1dFQktJVF9ERVBSRUNBVEVEIGd1aW50NjQKIHdl
YmtpdF9kb21fYmxvYl9nZXRfc2l6ZShXZWJLaXRET01CbG9iKiBzZWxmKTsKIAogR19FTkRfREVD
TFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01DREFUQVNlY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNEQVRBU2VjdGlvbi5j
cHAKaW5kZXggZTAxYzYxZmUzMjUuLjA3MmM0ZDBkNDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ0RBVEFT
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NQ0RBVEFTZWN0aW9uLmNwcApAQCAtMzUsNiArMzUsOCBAQAog
I2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05V
Q19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2Vi
S2l0RE9NQ0RBVEFTZWN0aW9uKiBraXQoV2ViQ29yZTo6Q0RBVEFTZWN0aW9uKiBvYmopCkBAIC0x
MDIsMyArMTA0LDQgQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV9jZGF0YV9zZWN0aW9uX2luaXQo
V2ViS2l0RE9NQ0RBVEFTZWN0aW9uKiByZXF1ZXN0KQogICAgIFVOVVNFRF9QQVJBTShyZXF1ZXN0
KTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUNEQVRBU2VjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUNEQVRBU2VjdGlvbi5oCmluZGV4IDZmNDI0ODkyNzc4Li4x
MDQ2OGY4OGQ5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNEQVRBU2VjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DREFU
QVNlY3Rpb24uaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUNEQVRBU2VjdGlv
bkNsYXNzIHsKICAgICBXZWJLaXRET01UZXh0Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VC
S0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fY2RhdGFf
c2VjdGlvbl9nZXRfdHlwZSh2b2lkKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01D
U1NSdWxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01DU1NSdWxlLmNwcAppbmRleCAzOTVjYzg2ZDE1OC4uM2Y4YmZlNjZi
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01DU1NSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTUnVsZS5jcHAKQEAg
LTM4LDYgKzM4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTUNTU1J1bGVQcml2YXRlIHsK
ICAgICBSZWZQdHI8V2ViQ29yZTo6Q1NTUnVsZT4gY29yZU9iamVjdDsKIH0gV2ViS2l0RE9NQ1NT
UnVsZVByaXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NQ1NTUnVsZSoga2l0KFdlYkNvcmU6OkNTU1J1bGUq
IG9iaikKQEAgLTI0MCwzICsyNDIsNCBAQCBXZWJLaXRET01DU1NSdWxlKiB3ZWJraXRfZG9tX2Nz
c19ydWxlX2dldF9wYXJlbnRfcnVsZShXZWJLaXRET01DU1NSdWxlKiBzZWxmKQogICAgIHJldHVy
biBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKIH0KIAorR19HTlVDX0VORF9JR05P
UkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1J1bGUuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NSdWxl
LmgKaW5kZXggNDMwZjZmNjc0ZDguLjQwZDM2ODdhODQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTUnVs
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01DU1NSdWxlLmgKQEAgLTM5LDM2ICszOSw1MCBAQCBHX0JFR0lOX0RFQ0xT
CiAKIC8qKgogICogV0VCS0lUX0RPTV9DU1NfUlVMRV9VTktOT1dOX1JVTEU6CisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZp
bmUgV0VCS0lUX0RPTV9DU1NfUlVMRV9VTktOT1dOX1JVTEUgMAogCiAvKioKICAqIFdFQktJVF9E
T01fQ1NTX1JVTEVfU1RZTEVfUlVMRToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0NTU19SVUxF
X1NUWUxFX1JVTEUgMQogCiAvKioKICAqIFdFQktJVF9ET01fQ1NTX1JVTEVfQ0hBUlNFVF9SVUxF
OgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fQ1NTX1JVTEVfQ0hBUlNFVF9SVUxFIDIKIAogLyoq
CiAgKiBXRUJLSVRfRE9NX0NTU19SVUxFX0lNUE9SVF9SVUxFOgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJ
VF9ET01fQ1NTX1JVTEVfSU1QT1JUX1JVTEUgMwogCiAvKioKICAqIFdFQktJVF9ET01fQ1NTX1JV
TEVfTUVESUFfUlVMRToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0NTU19SVUxFX01FRElBX1JV
TEUgNAogCiAvKioKICAqIFdFQktJVF9ET01fQ1NTX1JVTEVfRk9OVF9GQUNFX1JVTEU6CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8K
ICNkZWZpbmUgV0VCS0lUX0RPTV9DU1NfUlVMRV9GT05UX0ZBQ0VfUlVMRSA1CiAKIC8qKgogICog
V0VCS0lUX0RPTV9DU1NfUlVMRV9QQUdFX1JVTEU6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9D
U1NfUlVMRV9QQUdFX1JVTEUgNgogCkBAIC04MCw3ICs5NCw3IEBAIHN0cnVjdCBfV2ViS2l0RE9N
Q1NTUnVsZUNsYXNzIHsKICAgICBXZWJLaXRET01PYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CiB9
OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2Rv
bV9jc3NfcnVsZV9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC04OCw4ICsxMDIsMTAgQEAgd2Vi
a2l0X2RvbV9jc3NfcnVsZV9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01D
U1NSdWxlCiAgKgogICogUmV0dXJuczogQSAjZ3VzaG9ydAorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGd1c2hv
cnQKK1dFQktJVF9ERVBSRUNBVEVEIGd1c2hvcnQKIHdlYmtpdF9kb21fY3NzX3J1bGVfZ2V0X3J1
bGVfdHlwZShXZWJLaXRET01DU1NSdWxlKiBzZWxmKTsKIAogLyoqCkBAIC05Nyw4ICsxMTMsMTAg
QEAgd2Via2l0X2RvbV9jc3NfcnVsZV9nZXRfcnVsZV90eXBlKFdlYktpdERPTUNTU1J1bGUqIHNl
bGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUNTU1J1bGUKICAqCiAgKiBSZXR1cm5zOiBBICNn
Y2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3
ZWJraXRfZG9tX2Nzc19ydWxlX2dldF9jc3NfdGV4dChXZWJLaXRET01DU1NSdWxlKiBzZWxmKTsK
IAogLyoqCkBAIC0xMDcsOCArMTI1LDEwIEBAIHdlYmtpdF9kb21fY3NzX3J1bGVfZ2V0X2Nzc190
ZXh0KFdlYktpdERPTUNTU1J1bGUqIHNlbGYpOwogICogQHZhbHVlOiBBICNnY2hhcgogICogQGVy
cm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21fY3NzX3J1bGVfc2V0X2Nzc190ZXh0KFdlYktpdERPTUNTU1J1bGUq
IHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTEx
Niw4ICsxMzYsMTAgQEAgd2Via2l0X2RvbV9jc3NfcnVsZV9zZXRfY3NzX3RleHQoV2ViS2l0RE9N
Q1NTUnVsZSogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXIKICAqIEBzZWxmOiBBICNXZWJL
aXRET01DU1NSdWxlCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRE
T01DU1NTdHlsZVNoZWV0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NQ1NTU3R5bGVTaGVldCoK
K1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUNTU1N0eWxlU2hlZXQqCiB3ZWJraXRfZG9tX2Nz
c19ydWxlX2dldF9wYXJlbnRfc3R5bGVfc2hlZXQoV2ViS2l0RE9NQ1NTUnVsZSogc2VsZik7CiAK
IC8qKgpAQCAtMTI1LDggKzE0NywxMCBAQCB3ZWJraXRfZG9tX2Nzc19ydWxlX2dldF9wYXJlbnRf
c3R5bGVfc2hlZXQoV2ViS2l0RE9NQ1NTUnVsZSogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NQ1NTUnVsZQogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9N
Q1NTUnVsZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUNTU1J1bGUqCitXRUJLSVRfREVQUkVD
QVRFRCBXZWJLaXRET01DU1NSdWxlKgogd2Via2l0X2RvbV9jc3NfcnVsZV9nZXRfcGFyZW50X3J1
bGUoV2ViS2l0RE9NQ1NTUnVsZSogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NQ1NTUnVsZUxpc3QuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1J1bGVMaXN0LmNwcAppbmRleCBjOTMyYWRlNTc4
ZC4uODJkOTIxMjMzMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NSdWxlTGlzdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUNTU1J1bGVMaXN0LmNwcApAQCAtMzcsNiArMzcsOCBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0
RE9NQ1NTUnVsZUxpc3RQcml2YXRlIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6Q1NTUnVsZUxpc3Q+
IGNvcmVPYmplY3Q7CiB9IFdlYktpdERPTUNTU1J1bGVMaXN0UHJpdmF0ZTsKIAorR19HTlVDX0JF
R0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRE
T01DU1NSdWxlTGlzdCoga2l0KFdlYkNvcmU6OkNTU1J1bGVMaXN0KiBvYmopCkBAIC0xNDksMyAr
MTUxLDQgQEAgZ3Vsb25nIHdlYmtpdF9kb21fY3NzX3J1bGVfbGlzdF9nZXRfbGVuZ3RoKFdlYktp
dERPTUNTU1J1bGVMaXN0KiBzZWxmKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0dfR05VQ19F
TkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NSdWxlTGlzdC5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUNTU1J1bGVMaXN0LmgKaW5kZXggMDRkZWIwNTM4MDkuLmQ5YTRkYTViOGU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NQ1NTUnVsZUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTUnVsZUxpc3QuaApAQCAtNDUsNyAr
NDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUNTU1J1bGVMaXN0Q2xhc3MgewogICAgIFdlYktpdERP
TU9iamVjdENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJ
VF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2Nzc19ydWxlX2xpc3RfZ2V0X3R5cGUodm9p
ZCk7CiAKIC8qKgpAQCAtNTQsOCArNTQsMTAgQEAgd2Via2l0X2RvbV9jc3NfcnVsZV9saXN0X2dl
dF90eXBlKHZvaWQpOwogICogQGluZGV4OiBBICNndWxvbmcKICAqCiAgKiBSZXR1cm5zOiAodHJh
bnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUNTU1J1bGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRE
T01DU1NSdWxlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NQ1NTUnVsZSoKIHdlYmtpdF9k
b21fY3NzX3J1bGVfbGlzdF9pdGVtKFdlYktpdERPTUNTU1J1bGVMaXN0KiBzZWxmLCBndWxvbmcg
aW5kZXgpOwogCiAvKioKQEAgLTYzLDggKzY1LDEwIEBAIHdlYmtpdF9kb21fY3NzX3J1bGVfbGlz
dF9pdGVtKFdlYktpdERPTUNTU1J1bGVMaXN0KiBzZWxmLCBndWxvbmcgaW5kZXgpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUNTU1J1bGVMaXN0CiAgKgogICogUmV0dXJuczogQSAjZ3Vsb25nCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQUkVDQVRFRCBndWxvbmcKIHdlYmtpdF9k
b21fY3NzX3J1bGVfbGlzdF9nZXRfbGVuZ3RoKFdlYktpdERPTUNTU1J1bGVMaXN0KiBzZWxmKTsK
IAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01DU1NTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCA5MThkMjVkN2QwMC4uZjQ3NDFjOWZm
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NT
U3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTM4LDYgKzM4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dl
YktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb25Qcml2YXRlIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6
Q1NTU3R5bGVEZWNsYXJhdGlvbj4gY29yZU9iamVjdDsKIH0gV2ViS2l0RE9NQ1NTU3R5bGVEZWNs
YXJhdGlvblByaXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbioga2l0KFdl
YkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb24qIG9iaikKQEAgLTMwMywzICszMDUsNCBAQCBXZWJL
aXRET01DU1NSdWxlKiB3ZWJraXRfZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9nZXRfcGFyZW50
X3J1bGUoV2ViS2l0RE9NQ1NTUwogICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0
LmdldCgpKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uLmgK
aW5kZXggODhmZTdiODVmNmUuLjczNWZjMzA4ZjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTU3R5bGVE
ZWNsYXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uLmgKQEAgLTQ1LDcgKzQ1
LDcgQEAgc3RydWN0IF9XZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uQ2xhc3MgewogICAgIFdl
YktpdERPTU9iamVjdENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUK
K1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlv
bl9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01NCw4ICs1NCwxMCBAQCB3ZWJraXRfZG9tX2Nz
c19zdHlsZV9kZWNsYXJhdGlvbl9nZXRfdHlwZSh2b2lkKTsKICAqIEBwcm9wZXJ0eU5hbWU6IEEg
I2djaGFyCiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioK
K1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRp
b25fZ2V0X3Byb3BlcnR5X3ZhbHVlKFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24qIHNlbGYs
IGNvbnN0IGdjaGFyKiBwcm9wZXJ0eU5hbWUpOwogCiAvKioKQEAgLTY1LDggKzY3LDEwIEBAIHdl
YmtpdF9kb21fY3NzX3N0eWxlX2RlY2xhcmF0aW9uX2dldF9wcm9wZXJ0eV92YWx1ZShXZWJLaXRE
T01DU1NTdHlsZURlY2xhcmF0aW9uCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5z
OiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2No
YXIqCiB3ZWJraXRfZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9yZW1vdmVfcHJvcGVydHkoV2Vi
S2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiogc2VsZiwgY29uc3QgZ2NoYXIqIHByb3BlcnR5TmFt
ZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTc1LDggKzc5LDEwIEBAIHdlYmtpdF9kb21f
Y3NzX3N0eWxlX2RlY2xhcmF0aW9uX3JlbW92ZV9wcm9wZXJ0eShXZWJLaXRET01DU1NTdHlsZURl
Y2xhcmF0aW9uKiBzCiAgKiBAcHJvcGVydHlOYW1lOiBBICNnY2hhcgogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21fY3NzX3N0eWxlX2RlY2xhcmF0aW9uX2dldF9wcm9wZXJ0eV9wcmlvcml0
eShXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uKiBzZWxmLCBjb25zdCBnY2hhciogcHJvcGVy
dHlOYW1lKTsKIAogLyoqCkBAIC04Nyw4ICs5MywxMCBAQCB3ZWJraXRfZG9tX2Nzc19zdHlsZV9k
ZWNsYXJhdGlvbl9nZXRfcHJvcGVydHlfcHJpb3JpdHkoV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJh
dAogICogQHByaW9yaXR5OiBBICNnY2hhcgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fY3NzX3N0
eWxlX2RlY2xhcmF0aW9uX3NldF9wcm9wZXJ0eShXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9u
KiBzZWxmLCBjb25zdCBnY2hhciogcHJvcGVydHlOYW1lLCBjb25zdCBnY2hhciogdmFsdWUsIGNv
bnN0IGdjaGFyKiBwcmlvcml0eSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTk3LDggKzEw
NSwxMCBAQCB3ZWJraXRfZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9zZXRfcHJvcGVydHkoV2Vi
S2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiogc2VsZgogICogQGluZGV4OiBBICNndWxvbmcKICAq
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9pdGVtKFdl
YktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24qIHNlbGYsIGd1bG9uZyBpbmRleCk7CiAKIC8qKgpA
QCAtMTA3LDggKzExNywxMCBAQCB3ZWJraXRfZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9pdGVt
KFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24qIHNlbGYsIGd1bG9uZwogICogQHByb3BlcnR5
TmFtZTogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2Nzc19zdHlsZV9k
ZWNsYXJhdGlvbl9nZXRfcHJvcGVydHlfc2hvcnRoYW5kKFdlYktpdERPTUNTU1N0eWxlRGVjbGFy
YXRpb24qIHNlbGYsIGNvbnN0IGdjaGFyKiBwcm9wZXJ0eU5hbWUpOwogCiAvKioKQEAgLTExNyw4
ICsxMjksMTAgQEAgd2Via2l0X2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRpb25fZ2V0X3Byb3BlcnR5
X3Nob3J0aGFuZChXZWJLaXRET01DU1NTdHlsZURlY2xhcmEKICAqIEBwcm9wZXJ0eU5hbWU6IEEg
I2djaGFyCiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9v
bGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fY3NzX3N0eWxlX2Rl
Y2xhcmF0aW9uX2lzX3Byb3BlcnR5X2ltcGxpY2l0KFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRp
b24qIHNlbGYsIGNvbnN0IGdjaGFyKiBwcm9wZXJ0eU5hbWUpOwogCiAvKioKQEAgLTEyNiw4ICsx
NDAsMTAgQEAgd2Via2l0X2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRpb25faXNfcHJvcGVydHlfaW1w
bGljaXQoV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGkKICAqIEBzZWxmOiBBICNXZWJLaXRET01D
U1NTdHlsZURlY2xhcmF0aW9uCiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9jc3Nfc3R5
bGVfZGVjbGFyYXRpb25fZ2V0X2Nzc190ZXh0KFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24q
IHNlbGYpOwogCiAvKioKQEAgLTEzNiw4ICsxNTIsMTAgQEAgd2Via2l0X2RvbV9jc3Nfc3R5bGVf
ZGVjbGFyYXRpb25fZ2V0X2Nzc190ZXh0KFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24qIHNl
bGYKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqIEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2Nzc19zdHls
ZV9kZWNsYXJhdGlvbl9zZXRfY3NzX3RleHQoV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiog
c2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTQ1
LDggKzE2MywxMCBAQCB3ZWJraXRfZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9zZXRfY3NzX3Rl
eHQoV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiogc2VsZgogICogQHNlbGY6IEEgI1dlYktp
dERPTUNTU1N0eWxlRGVjbGFyYXRpb24KICAqCiAgKiBSZXR1cm5zOiBBICNndWxvbmcKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Via2l0X2RvbV9j
c3Nfc3R5bGVfZGVjbGFyYXRpb25fZ2V0X2xlbmd0aChXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0
aW9uKiBzZWxmKTsKIAogLyoqCkBAIC0xNTQsOCArMTc0LDEwIEBAIHdlYmtpdF9kb21fY3NzX3N0
eWxlX2RlY2xhcmF0aW9uX2dldF9sZW5ndGgoV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbgogICoKICAq
IFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NQ1NTUnVsZQorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIFdlYktpdERPTUNTU1J1bGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01DU1NS
dWxlKgogd2Via2l0X2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRpb25fZ2V0X3BhcmVudF9ydWxlKFdl
YktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24qIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUNTU1N0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1N0eWxlU2hlZXQuY3BwCmluZGV4
IDAwMDc0NzcwNzZjLi4yYTExMmFlMmVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1N0eWxlU2hlZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01DU1NTdHlsZVNoZWV0LmNwcApAQCAtMzQsNiArMzQsOCBAQAogI2luY2x1
ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJ
Tl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9N
Q1NTU3R5bGVTaGVldCoga2l0KFdlYkNvcmU6OkNTU1N0eWxlU2hlZXQqIG9iaikKQEAgLTIxNCwz
ICsyMTYsNCBAQCBXZWJLaXRET01DU1NSdWxlTGlzdCogd2Via2l0X2RvbV9jc3Nfc3R5bGVfc2hl
ZXRfZ2V0X3J1bGVzKFdlYktpdERPTUNTU1N0eWxlU2hlZQogICAgIHJldHVybiBXZWJLaXQ6Omtp
dChnb2JqZWN0UmVzdWx0LmdldCgpKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJ
T05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1N0eWxlU2hlZXQuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZVNoZWV0
LmgKaW5kZXggOWE4NWI2NTc3OGUuLmEwNGUwNGZhMTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTU3R5
bGVTaGVldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZVNoZWV0LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3Ry
dWN0IF9XZWJLaXRET01DU1NTdHlsZVNoZWV0Q2xhc3MgewogICAgIFdlYktpdERPTVN0eWxlU2hl
ZXRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQ
UkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9jc3Nfc3R5bGVfc2hlZXRfZ2V0X3R5cGUodm9pZCk7
CiAKIC8qKgpAQCAtNTYsOCArNTYsMTAgQEAgd2Via2l0X2RvbV9jc3Nfc3R5bGVfc2hlZXRfZ2V0
X3R5cGUodm9pZCk7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiBBICNndWxv
bmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Vi
a2l0X2RvbV9jc3Nfc3R5bGVfc2hlZXRfaW5zZXJ0X3J1bGUoV2ViS2l0RE9NQ1NTU3R5bGVTaGVl
dCogc2VsZiwgY29uc3QgZ2NoYXIqIHJ1bGUsIGd1bG9uZyBpbmRleCwgR0Vycm9yKiogZXJyb3Ip
OwogCiAvKioKQEAgLTY2LDggKzY4LDEwIEBAIHdlYmtpdF9kb21fY3NzX3N0eWxlX3NoZWV0X2lu
c2VydF9ydWxlKFdlYktpdERPTUNTU1N0eWxlU2hlZXQqIHNlbGYsIGNvbnN0IGdjaGFyCiAgKiBA
aW5kZXg6IEEgI2d1bG9uZwogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fY3NzX3N0eWxlX3NoZWV0
X2RlbGV0ZV9ydWxlKFdlYktpdERPTUNTU1N0eWxlU2hlZXQqIHNlbGYsIGd1bG9uZyBpbmRleCwg
R0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTc5LDggKzgzLDEwIEBAIHdlYmtpdF9kb21fY3Nz
X3N0eWxlX3NoZWV0X2RlbGV0ZV9ydWxlKFdlYktpdERPTUNTU1N0eWxlU2hlZXQqIHNlbGYsIGd1
bG9uZyBpbmRlCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZwor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2Rv
bV9jc3Nfc3R5bGVfc2hlZXRfYWRkX3J1bGUoV2ViS2l0RE9NQ1NTU3R5bGVTaGVldCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHNlbGVjdG9yLCBjb25zdCBnY2hhciogc3R5bGUsIGd1bG9uZyBpbmRleCwg
R0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTg5LDggKzk1LDEwIEBAIHdlYmtpdF9kb21fY3Nz
X3N0eWxlX3NoZWV0X2FkZF9ydWxlKFdlYktpdERPTUNTU1N0eWxlU2hlZXQqIHNlbGYsIGNvbnN0
IGdjaGFyKiBzCiAgKiBAaW5kZXg6IEEgI2d1bG9uZwogICogQGVycm9yOiAjR0Vycm9yCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
Y3NzX3N0eWxlX3NoZWV0X3JlbW92ZV9ydWxlKFdlYktpdERPTUNTU1N0eWxlU2hlZXQqIHNlbGYs
IGd1bG9uZyBpbmRleCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTk4LDggKzEwNiwxMCBA
QCB3ZWJraXRfZG9tX2Nzc19zdHlsZV9zaGVldF9yZW1vdmVfcnVsZShXZWJLaXRET01DU1NTdHls
ZVNoZWV0KiBzZWxmLCBndWxvbmcgaW5kZQogICogQHNlbGY6IEEgI1dlYktpdERPTUNTU1N0eWxl
U2hlZXQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUNTU1J1
bGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01DU1NSdWxlKgorV0VCS0lUX0RFUFJFQ0FURUQg
V2ViS2l0RE9NQ1NTUnVsZSoKIHdlYmtpdF9kb21fY3NzX3N0eWxlX3NoZWV0X2dldF9vd25lcl9y
dWxlKFdlYktpdERPTUNTU1N0eWxlU2hlZXQqIHNlbGYpOwogCiAvKioKQEAgLTEwNyw4ICsxMTcs
MTAgQEAgd2Via2l0X2RvbV9jc3Nfc3R5bGVfc2hlZXRfZ2V0X293bmVyX3J1bGUoV2ViS2l0RE9N
Q1NTU3R5bGVTaGVldCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NQ1NTU3R5bGVTaGVl
dAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NQ1NTUnVsZUxp
c3QKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01DU1NSdWxlTGlzdCoKK1dFQktJVF9ERVBSRUNB
VEVEIFdlYktpdERPTUNTU1J1bGVMaXN0Kgogd2Via2l0X2RvbV9jc3Nfc3R5bGVfc2hlZXRfZ2V0
X2Nzc19ydWxlcyhXZWJLaXRET01DU1NTdHlsZVNoZWV0KiBzZWxmKTsKIAogLyoqCkBAIC0xMTYs
OCArMTI4LDEwIEBAIHdlYmtpdF9kb21fY3NzX3N0eWxlX3NoZWV0X2dldF9jc3NfcnVsZXMoV2Vi
S2l0RE9NQ1NTU3R5bGVTaGVldCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NQ1NTU3R5
bGVTaGVldAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NQ1NT
UnVsZUxpc3QKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01DU1NSdWxlTGlzdCoKK1dFQktJVF9E
RVBSRUNBVEVEIFdlYktpdERPTUNTU1J1bGVMaXN0Kgogd2Via2l0X2RvbV9jc3Nfc3R5bGVfc2hl
ZXRfZ2V0X3J1bGVzKFdlYktpdERPTUNTU1N0eWxlU2hlZXQqIHNlbGYpOwogCiBHX0VORF9ERUNM
UwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUNTU1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NWYWx1ZS5jcHAKaW5kZXgg
YjNjM2UwZmQzODUuLjZhOWViNTkyODk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTVmFsdWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01DU1NWYWx1ZS5jcHAKQEAgLTM3LDYgKzM3LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dl
YktpdERPTUNTU1ZhbHVlUHJpdmF0ZSB7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkRlcHJlY2F0ZWRD
U1NPTVZhbHVlPiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01DU1NWYWx1ZVByaXZhdGU7CiAKK0df
R05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
V2ViS2l0RE9NQ1NTVmFsdWUqIGtpdChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZSogb2Jq
KQpAQCAtMTkzLDMgKzE5NSw0IEBAIGd1c2hvcnQgd2Via2l0X2RvbV9jc3NfdmFsdWVfZ2V0X2Nz
c192YWx1ZV90eXBlKFdlYktpdERPTUNTU1ZhbHVlKiBzZWxmKQogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01D
U1NWYWx1ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUNTU1ZhbHVlLmgKaW5kZXggZDI0M2JiZjJkYWQuLmQzYWI5OGMxYzkx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NQ1NTVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTVmFsdWUuaApAQCAtMzks
MjEgKzM5LDI5IEBAIEdfQkVHSU5fREVDTFMKIAogLyoqCiAgKiBXRUJLSVRfRE9NX0NTU19WQUxV
RV9DU1NfSU5IRVJJVDoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0NTU19WQUxVRV9DU1NfSU5I
RVJJVCAwCiAKIC8qKgogICogV0VCS0lUX0RPTV9DU1NfVkFMVUVfQ1NTX1BSSU1JVElWRV9WQUxV
RToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0NTU19WQUxVRV9DU1NfUFJJTUlUSVZFX1ZBTFVF
IDEKIAogLyoqCiAgKiBXRUJLSVRfRE9NX0NTU19WQUxVRV9DU1NfVkFMVUVfTElTVDoKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwog
I2RlZmluZSBXRUJLSVRfRE9NX0NTU19WQUxVRV9DU1NfVkFMVUVfTElTVCAyCiAKIC8qKgogICog
V0VCS0lUX0RPTV9DU1NfVkFMVUVfQ1NTX0NVU1RPTToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9N
X0NTU19WQUxVRV9DU1NfQ1VTVE9NIDMKIApAQCAtNjUsNyArNzMsNyBAQCBzdHJ1Y3QgX1dlYktp
dERPTUNTU1ZhbHVlQ2xhc3MgewogICAgIFdlYktpdERPTU9iamVjdENsYXNzIHBhcmVudF9jbGFz
czsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJr
aXRfZG9tX2Nzc192YWx1ZV9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC03Myw4ICs4MSwxMCBA
QCB3ZWJraXRfZG9tX2Nzc192YWx1ZV9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01DU1NWYWx1ZQogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fY3NzX3ZhbHVlX2dl
dF9jc3NfdGV4dChXZWJLaXRET01DU1NWYWx1ZSogc2VsZik7CiAKIC8qKgpAQCAtODMsOCArOTMs
MTAgQEAgd2Via2l0X2RvbV9jc3NfdmFsdWVfZ2V0X2Nzc190ZXh0KFdlYktpdERPTUNTU1ZhbHVl
KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqIEBlcnJvcjogI0dFcnJvcgogICoKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2Nz
c192YWx1ZV9zZXRfY3NzX3RleHQoV2ViS2l0RE9NQ1NTVmFsdWUqIHNlbGYsIGNvbnN0IGdjaGFy
KiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTkyLDggKzEwNCwxMCBAQCB3ZWJr
aXRfZG9tX2Nzc192YWx1ZV9zZXRfY3NzX3RleHQoV2ViS2l0RE9NQ1NTVmFsdWUqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSwgRwogICogQHNlbGY6IEEgI1dlYktpdERPTUNTU1ZhbHVlCiAgKgog
ICogUmV0dXJuczogQSAjZ3VzaG9ydAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGd1c2hvcnQKK1dFQktJVF9E
RVBSRUNBVEVEIGd1c2hvcnQKIHdlYmtpdF9kb21fY3NzX3ZhbHVlX2dldF9jc3NfdmFsdWVfdHlw
ZShXZWJLaXRET01DU1NWYWx1ZSogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NQ2hhcmFjdGVyRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YS5jcHAKaW5kZXggNjIwNzUz
Y2M1MDguLmNlOTA5NzcyOTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUNoYXJhY3RlckRhdGEuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSA8d3Rm
L0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9S
RV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01DaGFyYWN0
ZXJEYXRhKiBraXQoV2ViQ29yZTo6Q2hhcmFjdGVyRGF0YSogb2JqKQpAQCAtMjU2LDMgKzI1OCw0
IEBAIGd1bG9uZyB3ZWJraXRfZG9tX2NoYXJhY3Rlcl9kYXRhX2dldF9sZW5ndGgoV2ViS2l0RE9N
Q2hhcmFjdGVyRGF0YSogc2VsZikKICAgICBndWxvbmcgcmVzdWx0ID0gaXRlbS0+bGVuZ3RoKCk7
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01DaGFyYWN0ZXJEYXRhLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YS5oCmlu
ZGV4IDI3NWE1YjllNzdiLi5iNGY5ODBmMDc2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNoYXJhY3RlckRh
dGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YS5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBf
V2ViS2l0RE9NQ2hhcmFjdGVyRGF0YUNsYXNzIHsKICAgICBXZWJLaXRET01Ob2RlQ2xhc3MgcGFy
ZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5
cGUKIHdlYmtpdF9kb21fY2hhcmFjdGVyX2RhdGFfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAt
NTYsOCArNTYsMTAgQEAgd2Via2l0X2RvbV9jaGFyYWN0ZXJfZGF0YV9nZXRfdHlwZSh2b2lkKTsK
ICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fY2hhcmFj
dGVyX2RhdGFfc3Vic3RyaW5nX2RhdGEoV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YSogc2VsZiwgZ3Vs
b25nIG9mZnNldCwgZ3Vsb25nIGxlbmd0aCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTY2
LDggKzY4LDEwIEBAIHdlYmtpdF9kb21fY2hhcmFjdGVyX2RhdGFfc3Vic3RyaW5nX2RhdGEoV2Vi
S2l0RE9NQ2hhcmFjdGVyRGF0YSogc2VsZiwgZ3Vsb25nIG9mCiAgKiBAZGF0YTogQSAjZ2NoYXIK
ICAqIEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2NoYXJhY3Rlcl9kYXRhX2FwcGVuZF9kYXRhKFdlYktp
dERPTUNoYXJhY3RlckRhdGEqIHNlbGYsIGNvbnN0IGdjaGFyKiBkYXRhLCBHRXJyb3IqKiBlcnJv
cik7CiAKIC8qKgpAQCAtNzcsOCArODEsMTAgQEAgd2Via2l0X2RvbV9jaGFyYWN0ZXJfZGF0YV9h
cHBlbmRfZGF0YShXZWJLaXRET01DaGFyYWN0ZXJEYXRhKiBzZWxmLCBjb25zdCBnY2hhcioKICAq
IEBkYXRhOiBBICNnY2hhcgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fY2hhcmFjdGVyX2RhdGFf
aW5zZXJ0X2RhdGEoV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YSogc2VsZiwgZ3Vsb25nIG9mZnNldCwg
Y29uc3QgZ2NoYXIqIGRhdGEsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC04OCw4ICs5NCwx
MCBAQCB3ZWJraXRfZG9tX2NoYXJhY3Rlcl9kYXRhX2luc2VydF9kYXRhKFdlYktpdERPTUNoYXJh
Y3RlckRhdGEqIHNlbGYsIGd1bG9uZyBvZmZzZQogICogQGxlbmd0aDogQSAjZ3Vsb25nCiAgKiBA
ZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9jaGFyYWN0ZXJfZGF0YV9kZWxldGVfZGF0YShXZWJLaXRET01D
aGFyYWN0ZXJEYXRhKiBzZWxmLCBndWxvbmcgb2Zmc2V0LCBndWxvbmcgbGVuZ3RoLCBHRXJyb3Iq
KiBlcnJvcik7CiAKIC8qKgpAQCAtMTAwLDggKzEwOCwxMCBAQCB3ZWJraXRfZG9tX2NoYXJhY3Rl
cl9kYXRhX2RlbGV0ZV9kYXRhKFdlYktpdERPTUNoYXJhY3RlckRhdGEqIHNlbGYsIGd1bG9uZyBv
ZmZzZQogICogQGRhdGE6IEEgI2djaGFyCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9jaGFyYWN0
ZXJfZGF0YV9yZXBsYWNlX2RhdGEoV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YSogc2VsZiwgZ3Vsb25n
IG9mZnNldCwgZ3Vsb25nIGxlbmd0aCwgY29uc3QgZ2NoYXIqIGRhdGEsIEdFcnJvcioqIGVycm9y
KTsKIAogLyoqCkBAIC0xMDksOCArMTE5LDEwIEBAIHdlYmtpdF9kb21fY2hhcmFjdGVyX2RhdGFf
cmVwbGFjZV9kYXRhKFdlYktpdERPTUNoYXJhY3RlckRhdGEqIHNlbGYsIGd1bG9uZyBvZmZzCiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YQogICoKICAqIFJldHVybnM6IEEgI2dj
aGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdl
YmtpdF9kb21fY2hhcmFjdGVyX2RhdGFfZ2V0X2RhdGEoV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YSog
c2VsZik7CiAKIC8qKgpAQCAtMTE5LDggKzEzMSwxMCBAQCB3ZWJraXRfZG9tX2NoYXJhY3Rlcl9k
YXRhX2dldF9kYXRhKFdlYktpdERPTUNoYXJhY3RlckRhdGEqIHNlbGYpOwogICogQHZhbHVlOiBB
ICNnY2hhcgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fY2hhcmFjdGVyX2RhdGFfc2V0X2RhdGEo
V2ViS2l0RE9NQ2hhcmFjdGVyRGF0YSogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3Iq
KiBlcnJvcik7CiAKIC8qKgpAQCAtMTI4LDggKzE0MiwxMCBAQCB3ZWJraXRfZG9tX2NoYXJhY3Rl
cl9kYXRhX3NldF9kYXRhKFdlYktpdERPTUNoYXJhY3RlckRhdGEqIHNlbGYsIGNvbnN0IGdjaGFy
KiB2YQogICogQHNlbGY6IEEgI1dlYktpdERPTUNoYXJhY3RlckRhdGEKICAqCiAgKiBSZXR1cm5z
OiBBICNndWxvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1
bG9uZwogd2Via2l0X2RvbV9jaGFyYWN0ZXJfZGF0YV9nZXRfbGVuZ3RoKFdlYktpdERPTUNoYXJh
Y3RlckRhdGEqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJl
Y3QuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUNsaWVudFJlY3QuY3BwCmluZGV4IDE2MTI2ZTI4N2JjLi5lNTBmYTU5YWRj
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0LmNw
cApAQCAtMzcsNiArMzcsOCBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NQ2xpZW50UmVjdFBy
aXZhdGUgewogICAgIFJlZlB0cjxXZWJDb3JlOjpET01SZWN0PiBjb3JlT2JqZWN0OwogfSBXZWJL
aXRET01DbGllbnRSZWN0UHJpdmF0ZTsKIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElP
TlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01DbGllbnRSZWN0KiBraXQoV2Vi
Q29yZTo6RE9NUmVjdCogb2JqKQpAQCAtMjQwLDMgKzI0Miw0IEBAIGdmbG9hdCB3ZWJraXRfZG9t
X2NsaWVudF9yZWN0X2dldF9oZWlnaHQoV2ViS2l0RE9NQ2xpZW50UmVjdCogc2VsZikKICAgICBn
X3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0NMSUVOVF9SRUNUKHNlbGYpLCAwKTsK
ICAgICByZXR1cm4gV2ViS2l0Ojpjb3JlKHNlbGYpLT5oZWlnaHQoKTsKIH0KK0dfR05VQ19FTkRf
SUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
Q2xpZW50UmVjdC5oCmluZGV4IGI1OWQ5NzBlMGY1Li5iNDkxZDIyYWE4MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUNsaWVudFJlY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdC5oCkBAIC00NSw3ICs0NSw3IEBA
IHN0cnVjdCBfV2ViS2l0RE9NQ2xpZW50UmVjdENsYXNzIHsKICAgICBXZWJLaXRET01PYmplY3RD
bGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVD
QVRFRCBHVHlwZQogd2Via2l0X2RvbV9jbGllbnRfcmVjdF9nZXRfdHlwZSh2b2lkKTsKIAogLyoq
CkBAIC01Nyw4ICs1NywxMCBAQCB3ZWJraXRfZG9tX2NsaWVudF9yZWN0X2dldF90eXBlKHZvaWQp
OwogICogUmV0dXJuczogQSAjZ2Zsb2F0CiAgKgogICogU2luY2U6IDIuMTgKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnZmxvYXQKK1dFQktJVF9ERVBSRUNBVEVEIGdmbG9hdAogd2Via2l0X2RvbV9jbGllbnRf
cmVjdF9nZXRfdG9wKFdlYktpdERPTUNsaWVudFJlY3QqIHNlbGYpOwogCiAvKioKQEAgLTcwLDgg
KzcyLDEwIEBAIHdlYmtpdF9kb21fY2xpZW50X3JlY3RfZ2V0X3RvcChXZWJLaXRET01DbGllbnRS
ZWN0KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2dmbG9hdAogICoKICAqIFNpbmNlOiAyLjE4Cisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2Zsb2F0CitXRUJLSVRfREVQUkVDQVRFRCBnZmxvYXQKIHdlYmtpdF9k
b21fY2xpZW50X3JlY3RfZ2V0X3JpZ2h0KFdlYktpdERPTUNsaWVudFJlY3QqIHNlbGYpOwogCiAv
KioKQEAgLTgzLDggKzg3LDEwIEBAIHdlYmtpdF9kb21fY2xpZW50X3JlY3RfZ2V0X3JpZ2h0KFdl
YktpdERPTUNsaWVudFJlY3QqIHNlbGYpOwogICogUmV0dXJuczogQSAjZ2Zsb2F0CiAgKgogICog
U2luY2U6IDIuMTgKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnZmxvYXQKK1dFQktJVF9ERVBSRUNBVEVEIGdm
bG9hdAogd2Via2l0X2RvbV9jbGllbnRfcmVjdF9nZXRfYm90dG9tKFdlYktpdERPTUNsaWVudFJl
Y3QqIHNlbGYpOwogCiAvKioKQEAgLTk2LDggKzEwMiwxMCBAQCB3ZWJraXRfZG9tX2NsaWVudF9y
ZWN0X2dldF9ib3R0b20oV2ViS2l0RE9NQ2xpZW50UmVjdCogc2VsZik7CiAgKiBSZXR1cm5zOiBB
ICNnZmxvYXQKICAqCiAgKiBTaW5jZTogMi4xOAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdmbG9hdAorV0VC
S0lUX0RFUFJFQ0FURUQgZ2Zsb2F0CiB3ZWJraXRfZG9tX2NsaWVudF9yZWN0X2dldF9sZWZ0KFdl
YktpdERPTUNsaWVudFJlY3QqIHNlbGYpOwogCiAvKioKQEAgLTEwOSw4ICsxMTcsMTAgQEAgd2Vi
a2l0X2RvbV9jbGllbnRfcmVjdF9nZXRfbGVmdChXZWJLaXRET01DbGllbnRSZWN0KiBzZWxmKTsK
ICAqIFJldHVybnM6IEEgI2dmbG9hdAogICoKICAqIFNpbmNlOiAyLjE4CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2Zsb2F0CitXRUJLSVRfREVQUkVDQVRFRCBnZmxvYXQKIHdlYmtpdF9kb21fY2xpZW50X3Jl
Y3RfZ2V0X3dpZHRoKFdlYktpdERPTUNsaWVudFJlY3QqIHNlbGYpOwogCiAvKioKQEAgLTEyMiw4
ICsxMzIsMTAgQEAgd2Via2l0X2RvbV9jbGllbnRfcmVjdF9nZXRfd2lkdGgoV2ViS2l0RE9NQ2xp
ZW50UmVjdCogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnZmxvYXQKICAqCiAgKiBTaW5jZTogMi4x
OAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdmbG9hdAorV0VCS0lUX0RFUFJFQ0FURUQgZ2Zsb2F0CiB3ZWJr
aXRfZG9tX2NsaWVudF9yZWN0X2dldF9oZWlnaHQoV2ViS2l0RE9NQ2xpZW50UmVjdCogc2VsZik7
CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUNsaWVudFJlY3RMaXN0LmNwcAppbmRleCAwNzFjNmU0ZTI4My4uOTUwMzZhZDg0YjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01DbGllbnRSZWN0TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0LmNw
cApAQCAtMzgsNiArMzgsOCBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NQ2xpZW50UmVjdExp
c3RQcml2YXRlIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6RE9NUmVjdExpc3Q+IGNvcmVPYmplY3Q7
CiB9IFdlYktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0ZTsKIAorR19HTlVDX0JFR0lOX0lHTk9S
RV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01DbGllbnRS
ZWN0TGlzdCoga2l0KFdlYkNvcmU6OkRPTVJlY3RMaXN0KiBvYmopCkBAIC0xNDQsMyArMTQ2LDQg
QEAgZ3Vsb25nIHdlYmtpdF9kb21fY2xpZW50X3JlY3RfbGlzdF9nZXRfbGVuZ3RoKFdlYktpdERP
TUNsaWVudFJlY3RMaXN0KiBzZWxmKQogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9E
T01fSVNfQ0xJRU5UX1JFQ1RfTElTVChzZWxmKSwgMCk7CiAgICAgcmV0dXJuIFdlYktpdDo6Y29y
ZShzZWxmKS0+bGVuZ3RoKCk7CiB9CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdC5oCmlu
ZGV4IGViOWE0Zjc5ZTRiLi4yZDljMDVmZjhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RM
aXN0LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0
IF9XZWJLaXRET01DbGllbnRSZWN0TGlzdENsYXNzIHsKICAgICBXZWJLaXRET01PYmplY3RDbGFz
cyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRF
RCBHVHlwZQogd2Via2l0X2RvbV9jbGllbnRfcmVjdF9saXN0X2dldF90eXBlKHZvaWQpOwogCiAv
KioKQEAgLTU3LDggKzU3LDEwIEBAIHdlYmtpdF9kb21fY2xpZW50X3JlY3RfbGlzdF9nZXRfdHlw
ZSh2b2lkKTsKICAqIFJldHVybnM6IEEgI2d1bG9uZwogICoKICAqIFNpbmNlOiAyLjE4CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQUkVDQVRFRCBndWxvbmcKIHdlYmtpdF9kb21f
Y2xpZW50X3JlY3RfbGlzdF9nZXRfbGVuZ3RoKFdlYktpdERPTUNsaWVudFJlY3RMaXN0KiBzZWxm
KTsKIAogLyoqCkBAIC03MSw4ICs3MywxMCBAQCB3ZWJraXRfZG9tX2NsaWVudF9yZWN0X2xpc3Rf
Z2V0X2xlbmd0aChXZWJLaXRET01DbGllbnRSZWN0TGlzdCogc2VsZik7CiAgKiBSZXR1cm5zOiAo
dHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUNsaWVudFJlY3QKICAqCiAgKiBTaW5jZTogMi4x
OAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUNsaWVudFJlY3QqIHdlYmtpdF9kb21fY2xpZW50
X3JlY3RfbGlzdF9pdGVtKFdlYktpdERPTUNsaWVudFJlY3RMaXN0KiBzZWxmLCBndWxvbmcgaW5k
ZXgpOworV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NQ2xpZW50UmVjdCogd2Via2l0X2RvbV9j
bGllbnRfcmVjdF9saXN0X2l0ZW0oV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHNlbGYsIGd1bG9u
ZyBpbmRleCk7CiAKIEdfRU5EX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Db21tZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01Db21tZW50LmNwcAppbmRleCBlZGU5ZTBjODhiZC4uZWFiMzRmYTIyMTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01Db21tZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ29tbWVudC5jcHAKQEAgLTM1LDYgKzM1LDgg
QEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitH
X0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IFdlYktpdERPTUNvbW1lbnQqIGtpdChXZWJDb3JlOjpDb21tZW50KiBvYmopCkBAIC0xMDIsMyAr
MTA0LDQgQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV9jb21tZW50X2luaXQoV2ViS2l0RE9NQ29t
bWVudCogcmVxdWVzdCkKICAgICBVTlVTRURfUEFSQU0ocmVxdWVzdCk7CiB9CiAKK0dfR05VQ19F
TkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Db21tZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
Q29tbWVudC5oCmluZGV4IDY2YmZiNjNhNDhlLi5mYzczYWIwMGJjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUNvbW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NQ29tbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBf
V2ViS2l0RE9NQ29tbWVudENsYXNzIHsKICAgICBXZWJLaXRET01DaGFyYWN0ZXJEYXRhQ2xhc3Mg
cGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQg
R1R5cGUKIHdlYmtpdF9kb21fY29tbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogR19FTkRfREVDTFMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01ET01JbXBsZW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NSW1wbGVtZW50
YXRpb24uY3BwCmluZGV4IDQ0NTkyNmUyNDU1Li5mOTFjZjUwYTA2ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TURPTUltcGxlbWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NSW1wbGVtZW50YXRpb24uY3BwCkBA
IC00Miw2ICs0Miw4IEBAIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01ET01JbXBsZW1lbnRhdGlv
blByaXZhdGUgewogICAgIFJlZlB0cjxXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbj4gY29yZU9i
amVjdDsKIH0gV2ViS2l0RE9NRE9NSW1wbGVtZW50YXRpb25Qcml2YXRlOwogCitHX0dOVUNfQkVH
SU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERP
TURPTUltcGxlbWVudGF0aW9uKiBraXQoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb24qIG9iaikK
QEAgLTE4MSwzICsxODMsNCBAQCBXZWJLaXRET01IVE1MRG9jdW1lbnQqIHdlYmtpdF9kb21fZG9t
X2ltcGxlbWVudGF0aW9uX2NyZWF0ZV9odG1sX2RvY3VtZW50KFdlYktpdAogICAgIHJldHVybiBX
ZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVf
REVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTUltcGxlbWVudGF0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
RE9NSW1wbGVtZW50YXRpb24uaAppbmRleCAwZTkyZTgxZDU1Ny4uMmVjMDQyZmQ4ZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01ET01JbXBsZW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01JbXBsZW1lbnRhdGlv
bi5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NRE9NSW1wbGVtZW50YXRpb25D
bGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VC
S0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fZG9tX2lt
cGxlbWVudGF0aW9uX2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTU1LDggKzU1LDEwIEBAIHdl
YmtpdF9kb21fZG9tX2ltcGxlbWVudGF0aW9uX2dldF90eXBlKHZvaWQpOwogICogQHZlcnNpb246
IEEgI2djaGFyCiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Ym9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZG9tX2ltcGxl
bWVudGF0aW9uX2hhc19mZWF0dXJlKFdlYktpdERPTURPTUltcGxlbWVudGF0aW9uKiBzZWxmLCBj
b25zdCBnY2hhciogZmVhdHVyZSwgY29uc3QgZ2NoYXIqIHZlcnNpb24pOwogCiAvKioKQEAgLTY4
LDggKzcwLDEwIEBAIHdlYmtpdF9kb21fZG9tX2ltcGxlbWVudGF0aW9uX2hhc19mZWF0dXJlKFdl
YktpdERPTURPTUltcGxlbWVudGF0aW9uKiBzZWxmLCBjb25zCiAgKiBAZXJyb3I6ICNHRXJyb3IK
ICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTURvY3VtZW50VHlw
ZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTURvY3VtZW50VHlwZSoKK1dFQktJVF9ERVBSRUNB
VEVEIFdlYktpdERPTURvY3VtZW50VHlwZSoKIHdlYmtpdF9kb21fZG9tX2ltcGxlbWVudGF0aW9u
X2NyZWF0ZV9kb2N1bWVudF90eXBlKFdlYktpdERPTURPTUltcGxlbWVudGF0aW9uKiBzZWxmLCBj
b25zdCBnY2hhciogcXVhbGlmaWVkTmFtZSwgY29uc3QgZ2NoYXIqIHB1YmxpY0lkLCBjb25zdCBn
Y2hhciogc3lzdGVtSWQsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC04MSw4ICs4NSwxMCBA
QCB3ZWJraXRfZG9tX2RvbV9pbXBsZW1lbnRhdGlvbl9jcmVhdGVfZG9jdW1lbnRfdHlwZShXZWJL
aXRET01ET01JbXBsZW1lbnRhdGlvbiogcwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0
dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Eb2N1bWVudAorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIFdlYktpdERPTURvY3VtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRG9jdW1l
bnQqCiB3ZWJraXRfZG9tX2RvbV9pbXBsZW1lbnRhdGlvbl9jcmVhdGVfZG9jdW1lbnQoV2ViS2l0
RE9NRE9NSW1wbGVtZW50YXRpb24qIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lc3BhY2VVUkksIGNv
bnN0IGdjaGFyKiBxdWFsaWZpZWROYW1lLCBXZWJLaXRET01Eb2N1bWVudFR5cGUqIGRvY3R5cGUs
IEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC05Myw4ICs5OSwxMCBAQCB3ZWJraXRfZG9tX2Rv
bV9pbXBsZW1lbnRhdGlvbl9jcmVhdGVfZG9jdW1lbnQoV2ViS2l0RE9NRE9NSW1wbGVtZW50YXRp
b24qIHNlbGYsCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
ZnVsbCk6IEEgI1dlYktpdERPTUNTU1N0eWxlU2hlZXQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRE
T01DU1NTdHlsZVNoZWV0KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NQ1NTU3R5bGVTaGVl
dCoKIHdlYmtpdF9kb21fZG9tX2ltcGxlbWVudGF0aW9uX2NyZWF0ZV9jc3Nfc3R5bGVfc2hlZXQo
V2ViS2l0RE9NRE9NSW1wbGVtZW50YXRpb24qIHNlbGYsIGNvbnN0IGdjaGFyKiB0aXRsZSwgY29u
c3QgZ2NoYXIqIG1lZGlhLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTAzLDggKzExMSwx
MCBAQCB3ZWJraXRfZG9tX2RvbV9pbXBsZW1lbnRhdGlvbl9jcmVhdGVfY3NzX3N0eWxlX3NoZWV0
KFdlYktpdERPTURPTUltcGxlbWVudGF0aW9uKgogICogQHRpdGxlOiBBICNnY2hhcgogICoKICAq
IFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NSFRNTERvY3VtZW50CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTERvY3VtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2Vi
S2l0RE9NSFRNTERvY3VtZW50Kgogd2Via2l0X2RvbV9kb21faW1wbGVtZW50YXRpb25fY3JlYXRl
X2h0bWxfZG9jdW1lbnQoV2ViS2l0RE9NRE9NSW1wbGVtZW50YXRpb24qIHNlbGYsIGNvbnN0IGdj
aGFyKiB0aXRsZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NU2VsZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01ET01TZWxlY3Rpb24uY3BwCmluZGV4IGY4NWYyNTQ1NTY5Li5kMDk0N2U0NmIz
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTURPTVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVNlbGVjdGlv
bi5jcHAKQEAgLTM5LDYgKzM5LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTURPTVNlbGVj
dGlvblByaXZhdGUgewogICAgIFJlZlB0cjxXZWJDb3JlOjpET01TZWxlY3Rpb24+IGNvcmVPYmpl
Y3Q7CiB9IFdlYktpdERPTURPTVNlbGVjdGlvblByaXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05P
UkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NRE9NU2Vs
ZWN0aW9uKiBraXQoV2ViQ29yZTo6RE9NU2VsZWN0aW9uKiBvYmopCkBAIC01MjksMyArNTMxLDQg
QEAgZ3Vsb25nIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfZXh0ZW50X29mZnNldChXZWJL
aXRET01ET01TZWxlY3Rpb24qIHNlbGYpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorR19HTlVD
X0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVNlbGVjdGlvbi5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTURPTVNlbGVjdGlvbi5oCmluZGV4IGFlNTU4Yjk0NGEzLi45Y2EwN2VmYTMxNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTURPTVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01TZWxlY3Rpb24uaApAQCAt
NDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTURPTVNlbGVjdGlvbkNsYXNzIHsKICAgICBX
ZWJLaXRET01PYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBl
CitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2dldF90
eXBlKHZvaWQpOwogCiAvKioKQEAgLTU1LDggKzU1LDEwIEBAIHdlYmtpdF9kb21fZG9tX3NlbGVj
dGlvbl9nZXRfdHlwZSh2b2lkKTsKICAqIEBvZmZzZXQ6IEEgI2d1bG9uZwogICoKICAqIFNpbmNl
OiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9kb21fc2VsZWN0aW9uX2NvbGxhcHNlKFdlYktpdERPTURPTVNlbGVjdGlvbiogc2Vs
ZiwgV2ViS2l0RE9NTm9kZSogbm9kZSwgZ3Vsb25nIG9mZnNldCk7CiAKIC8qKgpAQCAtNjUsOCAr
NjcsMTAgQEAgd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2NvbGxhcHNlKFdlYktpdERPTURPTVNl
bGVjdGlvbiogc2VsZiwgV2ViS2l0RE9NTm9kZSogbm8KICAqIEBlcnJvcjogI0dFcnJvcgogICoK
ICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2NvbGxhcHNlX3RvX2VuZChXZWJLaXRET01E
T01TZWxlY3Rpb24qIHNlbGYsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC03NSw4ICs3OSwx
MCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fY29sbGFwc2VfdG9fZW5kKFdlYktpdERPTURP
TVNlbGVjdGlvbiogc2VsZiwgR0Vycm9yKiogZQogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICog
U2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fY29sbGFwc2VfdG9fc3RhcnQoV2ViS2l0RE9NRE9N
U2VsZWN0aW9uKiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtODQsOCArOTAsMTAg
QEAgd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2NvbGxhcHNlX3RvX3N0YXJ0KFdlYktpdERPTURP
TVNlbGVjdGlvbiogc2VsZiwgR0Vycm9yKioKICAqIEBzZWxmOiBBICNXZWJLaXRET01ET01TZWxl
Y3Rpb24KICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9kZWxldGVfZnJvbV9kb2N1
bWVudChXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYpOwogCiAvKioKQEAgLTk3LDggKzEwNSwx
MCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZGVsZXRlX2Zyb21fZG9jdW1lbnQoV2ViS2l0
RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2dib29sZWFuCiAgKgogICog
U2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQg
Z2Jvb2xlYW4KIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9jb250YWluc19ub2RlKFdlYktpdERP
TURPTVNlbGVjdGlvbiogc2VsZiwgV2ViS2l0RE9NTm9kZSogbm9kZSwgZ2Jvb2xlYW4gYWxsb3dQ
YXJ0aWFsKTsKIAogLyoqCkBAIC0xMDcsOCArMTE3LDEwIEBAIHdlYmtpdF9kb21fZG9tX3NlbGVj
dGlvbl9jb250YWluc19ub2RlKFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZiwgV2ViS2l0RE9N
Tm9kCiAgKiBAbm9kZTogQSAjV2ViS2l0RE9NTm9kZQogICoKICAqIFNpbmNlOiAyLjE2CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21f
c2VsZWN0aW9uX3NlbGVjdF9hbGxfY2hpbGRyZW4oV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxm
LCBXZWJLaXRET01Ob2RlKiBub2RlKTsKIAogLyoqCkBAIC0xMTksOCArMTMxLDEwIEBAIHdlYmtp
dF9kb21fZG9tX3NlbGVjdGlvbl9zZWxlY3RfYWxsX2NoaWxkcmVuKFdlYktpdERPTURPTVNlbGVj
dGlvbiogc2VsZiwgV2ViS2l0CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBTaW5jZTogMi4x
NgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21fZG9tX3NlbGVjdGlvbl9leHRlbmQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmLCBXZWJL
aXRET01Ob2RlKiBub2RlLCBndWxvbmcgb2Zmc2V0LCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpA
QCAtMTMyLDggKzE0NiwxMCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZXh0ZW5kKFdlYktp
dERPTURPTVNlbGVjdGlvbiogc2VsZiwgV2ViS2l0RE9NTm9kZSogbm9kZQogICogUmV0dXJuczog
KHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01SYW5nZQogICoKICAqIFNpbmNlOiAyLjE2Cisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAg
Ki8KLVdFQktJVF9BUEkgV2ViS2l0RE9NUmFuZ2UqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRE
T01SYW5nZSoKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfcmFuZ2VfYXQoV2ViS2l0RE9N
RE9NU2VsZWN0aW9uKiBzZWxmLCBndWxvbmcgaW5kZXgsIEdFcnJvcioqIGVycm9yKTsKIAogLyoq
CkBAIC0xNDEsOCArMTU3LDEwIEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfcmFuZ2Vf
YXQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmLCBndWxvbmcgaW5kZXgsCiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NRE9NU2VsZWN0aW9uCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rp
b25fcmVtb3ZlX2FsbF9yYW5nZXMoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKIAogLyoq
CkBAIC0xNTEsOCArMTY5LDEwIEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9yZW1vdmVfYWxs
X3JhbmdlcyhXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYpOwogICogQHJhbmdlOiBBICNXZWJL
aXRET01SYW5nZQogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2FkZF9yYW5nZShX
ZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYsIFdlYktpdERPTVJhbmdlKiByYW5nZSk7CiAKIC8q
KgpAQCAtMTY0LDggKzE4NCwxMCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fYWRkX3Jhbmdl
KFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZiwgV2ViS2l0RE9NUmFuZ2UqCiAgKiBAZXh0ZW50
T2Zmc2V0OiBBICNndWxvbmcKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9zZXRf
YmFzZV9hbmRfZXh0ZW50KFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZiwgV2ViS2l0RE9NTm9k
ZSogYmFzZU5vZGUsIGd1bG9uZyBiYXNlT2Zmc2V0LCBXZWJLaXRET01Ob2RlKiBleHRlbnROb2Rl
LCBndWxvbmcgZXh0ZW50T2Zmc2V0KTsKIAogLyoqCkBAIC0xNzUsOCArMTk3LDEwIEBAIHdlYmtp
dF9kb21fZG9tX3NlbGVjdGlvbl9zZXRfYmFzZV9hbmRfZXh0ZW50KFdlYktpdERPTURPTVNlbGVj
dGlvbiogc2VsZiwgV2ViS2l0CiAgKiBAb2Zmc2V0OiBBICNndWxvbmcKICAqCiAgKiBTaW5jZTog
Mi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtp
dF9kb21fZG9tX3NlbGVjdGlvbl9zZXRfcG9zaXRpb24oV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBz
ZWxmLCBXZWJLaXRET01Ob2RlKiBub2RlLCBndWxvbmcgb2Zmc2V0KTsKIAogLyoqCkBAIC0xODQs
OCArMjA4LDEwIEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9zZXRfcG9zaXRpb24oV2ViS2l0
RE9NRE9NU2VsZWN0aW9uKiBzZWxmLCBXZWJLaXRET01Ob2RlCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NRE9NU2VsZWN0aW9uCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZW1wdHko
V2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKIAogLyoqCkBAIC0xOTYsOCArMjIyLDEwIEBA
IHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9lbXB0eShXZWJLaXRET01ET01TZWxlY3Rpb24qIHNl
bGYpOwogICogQGdyYW51bGFyaXR5OiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21f
c2VsZWN0aW9uX21vZGlmeShXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYsIGNvbnN0IGdjaGFy
KiBhbHRlciwgY29uc3QgZ2NoYXIqIGRpcmVjdGlvbiwgY29uc3QgZ2NoYXIqIGdyYW51bGFyaXR5
KTsKIAogLyoqCkBAIC0yMDcsOCArMjM1LDEwIEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9t
b2RpZnkoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmLCBjb25zdCBnY2hhciogYWx0ZXIsCiAg
KiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBTaW5j
ZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogICovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRF
RCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2dldF9hbmNob3Jfbm9k
ZShXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYpOwogCiAvKioKQEAgLTIxOCw4ICsyNDgsMTAg
QEAgd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2dldF9hbmNob3Jfbm9kZShXZWJLaXRET01ET01T
ZWxlY3Rpb24qIHNlbGYpOwogICogUmV0dXJuczogQSAjZ3Vsb25nCiAgKgogICogU2luY2U6IDIu
MTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICAqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Vi
a2l0X2RvbV9kb21fc2VsZWN0aW9uX2dldF9hbmNob3Jfb2Zmc2V0KFdlYktpdERPTURPTVNlbGVj
dGlvbiogc2VsZik7CiAKIC8qKgpAQCAtMjI5LDggKzI2MSwxMCBAQCB3ZWJraXRfZG9tX2RvbV9z
ZWxlY3Rpb25fZ2V0X2FuY2hvcl9vZmZzZXQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsK
ICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQogICoKICAqIFNp
bmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNB
VEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X2ZvY3VzX25v
ZGUoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKIAogLyoqCkBAIC0yNDAsOCArMjc0LDEw
IEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfZm9jdXNfbm9kZShXZWJLaXRET01ET01T
ZWxlY3Rpb24qIHNlbGYpOwogICogUmV0dXJuczogQSAjZ3Vsb25nCiAgKgogICogU2luY2U6IDIu
MTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICAqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Vi
a2l0X2RvbV9kb21fc2VsZWN0aW9uX2dldF9mb2N1c19vZmZzZXQoV2ViS2l0RE9NRE9NU2VsZWN0
aW9uKiBzZWxmKTsKIAogLyoqCkBAIC0yNTEsOCArMjg3LDEwIEBAIHdlYmtpdF9kb21fZG9tX3Nl
bGVjdGlvbl9nZXRfZm9jdXNfb2Zmc2V0KFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZik7CiAg
KiBSZXR1cm5zOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9B
UEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2RvbV9z
ZWxlY3Rpb25fZ2V0X2lzX2NvbGxhcHNlZChXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYpOwog
CiAvKioKQEAgLTI2Miw4ICszMDAsMTAgQEAgd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2dldF9p
c19jb2xsYXBzZWQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKICAqIFJldHVybnM6IEEg
I2d1bG9uZwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ3Vsb25nCitXRUJL
SVRfREVQUkVDQVRFRCBndWxvbmcKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfcmFuZ2Vf
Y291bnQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKIAogLyoqCkBAIC0yNzMsOCArMzEz
LDEwIEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfcmFuZ2VfY291bnQoV2ViS2l0RE9N
RE9NU2VsZWN0aW9uKiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2djaGFyCiAgKgogICogU2luY2U6
IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICAqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgog
d2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2dldF9zZWxlY3Rpb25fdHlwZShXZWJLaXRET01ET01T
ZWxlY3Rpb24qIHNlbGYpOwogCiAvKioKQEAgLTI4NCw4ICszMjYsMTAgQEAgd2Via2l0X2RvbV9k
b21fc2VsZWN0aW9uX2dldF9zZWxlY3Rpb25fdHlwZShXZWJLaXRET01ET01TZWxlY3Rpb24qIHNl
bGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCiAgKgog
ICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RF
UFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfYmFz
ZV9ub2RlKFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZik7CiAKIC8qKgpAQCAtMjk1LDggKzMz
OSwxMCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X2Jhc2Vfbm9kZShXZWJLaXRET01E
T01TZWxlY3Rpb24qIHNlbGYpOwogICogUmV0dXJuczogQSAjZ3Vsb25nCiAgKgogICogU2luY2U6
IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICAqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwog
d2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2dldF9iYXNlX29mZnNldChXZWJLaXRET01ET01TZWxl
Y3Rpb24qIHNlbGYpOwogCiAvKioKQEAgLTMwNiw4ICszNTIsMTAgQEAgd2Via2l0X2RvbV9kb21f
c2VsZWN0aW9uX2dldF9iYXNlX29mZnNldChXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYpOwog
ICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCiAgKgogICogU2lu
Y2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FU
RUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfZXh0ZW50X25v
ZGUoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKIAogLyoqCkBAIC0zMTcsOCArMzY1LDEw
IEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfZXh0ZW50X25vZGUoV2ViS2l0RE9NRE9N
U2VsZWN0aW9uKiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2d1bG9uZwogICoKICAqIFNpbmNlOiAy
LjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQUkVDQVRFRCBndWxvbmcKIHdl
YmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfZXh0ZW50X29mZnNldChXZWJLaXRET01ET01TZWxl
Y3Rpb24qIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVRva2VuTGlz
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NRE9NVG9rZW5MaXN0LmNwcAppbmRleCA5YTkyMTczMmQzYi4uNjVjN2ZiZTI3
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01ET01Ub2tlbkxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01Ub2tlbkxp
c3QuY3BwCkBAIC0zNyw2ICszNyw4IEBAIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01ET01Ub2tl
bkxpc3RQcml2YXRlIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6RE9NVG9rZW5MaXN0PiBjb3JlT2Jq
ZWN0OwogfSBXZWJLaXRET01ET01Ub2tlbkxpc3RQcml2YXRlOwogCitHX0dOVUNfQkVHSU5fSUdO
T1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTURPTVRv
a2VuTGlzdCoga2l0KFdlYkNvcmU6OkRPTVRva2VuTGlzdCogb2JqKQpAQCAtMjgwLDMgKzI4Miw0
IEBAIHZvaWQgd2Via2l0X2RvbV9kb21fdG9rZW5fbGlzdF9zZXRfdmFsdWUoV2ViS2l0RE9NRE9N
VG9rZW5MaXN0KiBzZWxmLCBjb25zdCBnY2hhCiAgICAgaXRlbS0+c2V0VmFsdWUoY29udmVydGVk
VmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NRE9NVG9rZW5MaXN0LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NVG9rZW5MaXN0LmgKaW5kZXggMjIzZjBlMjYz
MDYuLjYwM2RiNzFhNzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NVG9rZW5MaXN0LmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TURPTVRva2VuTGlzdC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NRE9NVG9r
ZW5MaXN0Q2xhc3MgewogICAgIFdlYktpdERPTU9iamVjdENsYXNzIHBhcmVudF9jbGFzczsKIH07
CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9t
X2RvbV90b2tlbl9saXN0X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTU2LDggKzU2LDEwIEBA
IHdlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfZ2V0X3R5cGUodm9pZCk7CiAgKiBSZXR1cm5zOiBB
ICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfaXRlbShXZWJL
aXRET01ET01Ub2tlbkxpc3QqIHNlbGYsIGd1bG9uZyBpbmRleCk7CiAKIC8qKgpAQCAtNjgsOCAr
NzAsMTAgQEAgd2Via2l0X2RvbV9kb21fdG9rZW5fbGlzdF9pdGVtKFdlYktpdERPTURPTVRva2Vu
TGlzdCogc2VsZiwgZ3Vsb25nIGluZGV4KTsKICAqIFJldHVybnM6IEEgI2dib29sZWFuCiAgKgog
ICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfY29udGFpbnMoV2ViS2l0RE9N
RE9NVG9rZW5MaXN0KiBzZWxmLCBjb25zdCBnY2hhciogdG9rZW4pOwogCiAvKioKQEAgLTc5LDgg
KzgzLDEwIEBAIHdlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfY29udGFpbnMoV2ViS2l0RE9NRE9N
VG9rZW5MaXN0KiBzZWxmLCBjb25zdCBnY2hhciogdG9rCiAgKiBALi4uOiBsaXN0IG9mICNnY2hh
ciBlbmRlZCBieSAlTlVMTC4KICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfYWRk
KFdlYktpdERPTURPTVRva2VuTGlzdCogc2VsZiwgR0Vycm9yKiogZXJyb3IsIC4uLik7CiAKIC8q
KgpAQCAtOTAsOCArOTYsMTAgQEAgd2Via2l0X2RvbV9kb21fdG9rZW5fbGlzdF9hZGQoV2ViS2l0
RE9NRE9NVG9rZW5MaXN0KiBzZWxmLCBHRXJyb3IqKiBlcnJvciwgLi4uKTsKICAqIEAuLi46IGxp
c3Qgb2YgI2djaGFyIGVuZGVkIGJ5ICVOVUxMLgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21fdG9r
ZW5fbGlzdF9yZW1vdmUoV2ViS2l0RE9NRE9NVG9rZW5MaXN0KiBzZWxmLCBHRXJyb3IqKiBlcnJv
ciwgLi4uKTsKIAogLyoqCkBAIC0xMDQsOCArMTEyLDEwIEBAIHdlYmtpdF9kb21fZG9tX3Rva2Vu
X2xpc3RfcmVtb3ZlKFdlYktpdERPTURPTVRva2VuTGlzdCogc2VsZiwgR0Vycm9yKiogZXJyb3Is
IC4uCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdF
QktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9t
X2RvbV90b2tlbl9saXN0X3RvZ2dsZShXZWJLaXRET01ET01Ub2tlbkxpc3QqIHNlbGYsIGNvbnN0
IGdjaGFyKiB0b2tlbiwgZ2Jvb2xlYW4gZm9yY2UsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBA
IC0xMTYsOCArMTI2LDEwIEBAIHdlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfdG9nZ2xlKFdlYktp
dERPTURPTVRva2VuTGlzdCogc2VsZiwgY29uc3QgZ2NoYXIqIHRva2VuCiAgKiBAZXJyb3I6ICNH
RXJyb3IKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfcmVwbGFjZShXZWJLaXRE
T01ET01Ub2tlbkxpc3QqIHNlbGYsIGNvbnN0IGdjaGFyKiB0b2tlbiwgY29uc3QgZ2NoYXIqIG5l
d1Rva2VuLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTI3LDggKzEzOSwxMCBAQCB3ZWJr
aXRfZG9tX2RvbV90b2tlbl9saXN0X3JlcGxhY2UoV2ViS2l0RE9NRE9NVG9rZW5MaXN0KiBzZWxm
LCBjb25zdCBnY2hhciogdG9rZQogICogUmV0dXJuczogQSAjZ3Vsb25nCiAgKgogICogU2luY2U6
IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICAqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwog
d2Via2l0X2RvbV9kb21fdG9rZW5fbGlzdF9nZXRfbGVuZ3RoKFdlYktpdERPTURPTVRva2VuTGlz
dCogc2VsZik7CiAKIC8qKgpAQCAtMTM4LDggKzE1MiwxMCBAQCB3ZWJraXRfZG9tX2RvbV90b2tl
bl9saXN0X2dldF9sZW5ndGgoV2ViS2l0RE9NRE9NVG9rZW5MaXN0KiBzZWxmKTsKICAqIFJldHVy
bnM6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnY2hhcioK
K1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb21fdG9rZW5fbGlzdF9nZXRf
dmFsdWUoV2ViS2l0RE9NRE9NVG9rZW5MaXN0KiBzZWxmKTsKIAogLyoqCkBAIC0xNDgsOCArMTY0
LDEwIEBAIHdlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfZ2V0X3ZhbHVlKFdlYktpdERPTURPTVRv
a2VuTGlzdCogc2VsZik7CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICAqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2RvbV90b2tlbl9saXN0X3NldF92YWx1ZShXZWJLaXRET01ET01Ub2tlbkxpc3QqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NV2lu
ZG93LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01ET01XaW5kb3cuY3BwCmluZGV4IDc1ZGZiOTNmYWUxLi45YTMyYWRmMWY5
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTURPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVdpbmRvdy5jcHAK
QEAgLTQ4LDYgKzQ4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTURPTVdpbmRvd1ByaXZh
dGUgewogICAgIFJlZlB0cjxXZWJDb3JlOjpET01XaW5kb3c+IGNvcmVPYmplY3Q7CiB9IFdlYktp
dERPTURPTVdpbmRvd1ByaXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05T
OworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NRE9NV2luZG93KiBraXQoV2ViQ29y
ZTo6RE9NV2luZG93KiBvYmopCkBAIC0xMDU3LDMgKzEwNTksNCBAQCBnYm9vbGVhbiB3ZWJraXRf
ZG9tX2RvbV93aW5kb3dfd2Via2l0X21lc3NhZ2VfaGFuZGxlcnNfcG9zdF9tZXNzYWdlKFdlYktp
dERPTURPTQogCiAgICAgcmV0dXJuIFRSVUU7CiB9CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNB
VElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NV2luZG93LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NV2luZG93LmgKaW5k
ZXggYjU0OGZjYjJmNWQuLmMwZjU0YjhlYzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NV2luZG93LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTURPTVdpbmRvdy5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9N
RE9NV2luZG93Q2xhc3MgewogICAgIFdlYktpdERPTU9iamVjdENsYXNzIHBhcmVudF9jbGFzczsK
IH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRf
ZG9tX2RvbV93aW5kb3dfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTUsOCArNTUsMTAgQEAg
d2Via2l0X2RvbV9kb21fd2luZG93X2dldF90eXBlKHZvaWQpOwogICogUmV0dXJuczogKHRyYW5z
ZmVyIGZ1bGwpOiBBICNXZWJLaXRET01ET01TZWxlY3Rpb24KICAqCiAgKiBTaW5jZTogMi4xNgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
ICovCi1XRUJLSVRfQVBJIFdlYktpdERPTURPTVNlbGVjdGlvbioKK1dFQktJVF9ERVBSRUNBVEVE
IFdlYktpdERPTURPTVNlbGVjdGlvbioKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2VsZWN0
aW9uKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpAQCAtNjQsOCArNjYsMTAgQEAg
d2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zZWxlY3Rpb24oV2ViS2l0RE9NRE9NV2luZG93KiBz
ZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cKICAqCiAgKiBTaW5jZTogMi4x
NgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21fZG9tX3dpbmRvd19mb2N1cyhXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAvKioKQEAg
LTczLDggKzc3LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19mb2N1cyhXZWJLaXRET01ET01X
aW5kb3cqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdwogICoKICAqIFNp
bmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9kb21fd2luZG93X2JsdXIoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAog
LyoqCkBAIC04Miw4ICs4OCwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfYmx1cihXZWJLaXRE
T01ET01XaW5kb3cqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdwogICoK
ICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9kb21fd2luZG93X2Nsb3NlKFdlYktpdERPTURPTVdpbmRvdyogc2Vs
Zik7CiAKIC8qKgpAQCAtOTEsOCArOTksMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X2Nsb3Nl
KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2lu
ZG93CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfcHJpbnQoV2ViS2l0RE9NRE9NV2lu
ZG93KiBzZWxmKTsKIAogLyoqCkBAIC0xMDAsOCArMTEwLDEwIEBAIHdlYmtpdF9kb21fZG9tX3dp
bmRvd19wcmludChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTURPTVdpbmRvdwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21fd2luZG93X3N0b3AoV2ViS2l0
RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC0xMTAsOCArMTIyLDEwIEBAIHdlYmtpdF9k
b21fZG9tX3dpbmRvd19zdG9wKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBAbWVzc2Fn
ZTogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19hbGVydChXZWJLaXRE
T01ET01XaW5kb3cqIHNlbGYsIGNvbnN0IGdjaGFyKiBtZXNzYWdlKTsKIAogLyoqCkBAIC0xMjIs
OCArMTM2LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19hbGVydChXZWJLaXRET01ET01XaW5k
b3cqIHNlbGYsIGNvbnN0IGdjaGFyKiBtZXNzYWdlKTsKICAqIFJldHVybnM6IEEgI2dib29sZWFu
CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZG9tX3dpbmRvd19jb25maXJtKFdlYktpdERP
TURPTVdpbmRvdyogc2VsZiwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UpOwogCiAvKioKQEAgLTEzNSw4
ICsxNTEsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X2NvbmZpcm0oV2ViS2l0RE9NRE9NV2lu
ZG93KiBzZWxmLCBjb25zdCBnY2hhciogbWVzc2FnZSk7CiAgKiBSZXR1cm5zOiBBICNnY2hhcgog
ICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVD
QVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19wcm9tcHQoV2ViS2l0RE9NRE9NV2lu
ZG93KiBzZWxmLCBjb25zdCBnY2hhciogbWVzc2FnZSwgY29uc3QgZ2NoYXIqIGRlZmF1bHRWYWx1
ZSk7CiAKIC8qKgpAQCAtMTUzLDggKzE3MSwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfcHJv
bXB0KFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UsIGNvbgog
ICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRf
QVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9kb21f
d2luZG93X2ZpbmQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBjb25zdCBnY2hhciogc3RyaW5n
LCBnYm9vbGVhbiBjYXNlU2Vuc2l0aXZlLCBnYm9vbGVhbiBiYWNrd2FyZHMsIGdib29sZWFuIHdy
YXAsIGdib29sZWFuIHdob2xlV29yZCwgZ2Jvb2xlYW4gc2VhcmNoSW5GcmFtZXMsIGdib29sZWFu
IHNob3dEaWFsb2cpOwogCiAvKioKQEAgLTE2NCw4ICsxODQsMTAgQEAgd2Via2l0X2RvbV9kb21f
d2luZG93X2ZpbmQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBjb25zdCBnY2hhciogc3RyaW5n
LCBnYm9vbGUKICAqIEB5OiBBICNnZG91YmxlCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvbV93aW5k
b3dfc2Nyb2xsX2J5KFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgZ2RvdWJsZSB4LCBnZG91Ymxl
IHkpOwogCiAvKioKQEAgLTE3NSw4ICsxOTcsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X3Nj
cm9sbF9ieShXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGdkb3VibGUgeCwgZ2RvdWJsZSB5KTsK
ICAqIEB5OiBBICNnZG91YmxlCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfc2Nyb2xs
X3RvKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgZ2RvdWJsZSB4LCBnZG91YmxlIHkpOwogCiAv
KioKQEAgLTE4Niw4ICsyMTAsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X3Njcm9sbF90byhX
ZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGdkb3VibGUgeCwgZ2RvdWJsZSB5KTsKICAqIEB5OiBB
ICNnZmxvYXQKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19tb3ZlX2J5KFdlYktpdERP
TURPTVdpbmRvdyogc2VsZiwgZ2Zsb2F0IHgsIGdmbG9hdCB5KTsKIAogLyoqCkBAIC0xOTcsOCAr
MjIzLDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19tb3ZlX2J5KFdlYktpdERPTURPTVdpbmRv
dyogc2VsZiwgZ2Zsb2F0IHgsIGdmbG9hdCB5KTsKICAqIEB5OiBBICNnZmxvYXQKICAqCiAgKiBT
aW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21fZG9tX3dpbmRvd19tb3ZlX3RvKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwg
Z2Zsb2F0IHgsIGdmbG9hdCB5KTsKIAogLyoqCkBAIC0yMDgsOCArMjM2LDEwIEBAIHdlYmtpdF9k
b21fZG9tX3dpbmRvd19tb3ZlX3RvKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgZ2Zsb2F0IHgs
IGdmbG9hdCB5KTsKICAqIEB5OiBBICNnZmxvYXQKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3dp
bmRvd19yZXNpemVfYnkoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBnZmxvYXQgeCwgZ2Zsb2F0
IHkpOwogCiAvKioKQEAgLTIxOSw4ICsyNDksMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X3Jl
c2l6ZV9ieShXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGdmbG9hdCB4LCBnZmxvYXQgeSk7CiAg
KiBAaGVpZ2h0OiBBICNnZmxvYXQKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19yZXNp
emVfdG8oV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBnZmxvYXQgd2lkdGgsIGdmbG9hdCBoZWln
aHQpOwogCiAvKioKQEAgLTIzMiw4ICsyNjQsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X3Jl
c2l6ZV90byhXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGdmbG9hdCB3aWR0aCwgZ2Zsb2F0IGgK
ICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJh
dGlvbgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NQ1NTU3R5
bGVEZWNsYXJhdGlvbioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUNTU1N0eWxlRGVjbGFy
YXRpb24qCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2NvbXB1dGVkX3N0eWxlKFdlYktpdERP
TURPTVdpbmRvdyogc2VsZiwgV2ViS2l0RE9NRWxlbWVudCogZWxlbWVudCwgY29uc3QgZ2NoYXIq
IHBzZXVkb0VsZW1lbnQpOwogCiAvKioKQEAgLTI0MSw4ICsyNzUsMTAgQEAgd2Via2l0X2RvbV9k
b21fd2luZG93X2dldF9jb21wdXRlZF9zdHlsZShXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIFdl
YktpdERPTUVsZW0KICAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cKICAqCiAgKiBTaW5j
ZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21fZG9tX3dpbmRvd19jYXB0dXJlX2V2ZW50cyhXZWJLaXRET01ET01XaW5kb3cqIHNl
bGYpOwogCiAvKioKQEAgLTI1MCw4ICsyODYsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X2Nh
cHR1cmVfZXZlbnRzKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NRE9NV2luZG93CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfcmVsZWFzZV9l
dmVudHMoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC0yNjEsOCArMjk5LDEw
IEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19yZWxlYXNlX2V2ZW50cyhXZWJLaXRET01ET01XaW5k
b3cqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVt
ZW50CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50
KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZG9tX3dp
bmRvd19nZXRfZnJhbWVfZWxlbWVudChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAvKioK
QEAgLTI3Miw4ICszMTIsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9mcmFtZV9lbGVt
ZW50KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgog
ICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBS
RUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X29mZnNjcmVlbl9idWZm
ZXJpbmcoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC0yODMsOCArMzI1LDEw
IEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfb2Zmc2NyZWVuX2J1ZmZlcmluZyhXZWJLaXRE
T01ET01XaW5kb3cqIHNlbGYpOwogICogUmV0dXJuczogQSAjZ2xvbmcKICAqCiAgKiBTaW5jZTog
Mi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogICovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Vi
a2l0X2RvbV9kb21fd2luZG93X2dldF9vdXRlcl9oZWlnaHQoV2ViS2l0RE9NRE9NV2luZG93KiBz
ZWxmKTsKIAogLyoqCkBAIC0yOTQsOCArMzM4LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19n
ZXRfb3V0ZXJfaGVpZ2h0KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiBB
ICNnbG9uZwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJ
VF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X291dGVyX3dpZHRo
KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpAQCAtMzA1LDggKzM1MSwxMCBAQCB3
ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X291dGVyX3dpZHRoKFdlYktpdERPTURPTVdpbmRvdyog
c2VsZik7CiAgKiBSZXR1cm5zOiBBICNnbG9uZwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdF
QktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2RvbV93
aW5kb3dfZ2V0X2lubmVyX2hlaWdodChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAvKioK
QEAgLTMxNiw4ICszNjQsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9pbm5lcl9oZWln
aHQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2dsb25nCiAgKgog
ICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQg
Z2xvbmcKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfaW5uZXJfd2lkdGgoV2ViS2l0RE9NRE9N
V2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC0zMjcsOCArMzc3LDEwIEBAIHdlYmtpdF9kb21fZG9t
X3dpbmRvd19nZXRfaW5uZXJfd2lkdGgoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIFJl
dHVybnM6IEEgI2dsb25nCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnbG9u
ZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2Ny
ZWVuX3goV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC0zMzgsOCArMzkwLDEw
IEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2NyZWVuX3goV2ViS2l0RE9NRE9NV2luZG93
KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2dsb25nCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwot
V0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fZG9t
X3dpbmRvd19nZXRfc2NyZWVuX3koV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBA
IC0zNDksOCArNDAzLDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2NyZWVuX3koV2Vi
S2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2dsb25nCiAgKgogICogU2lu
Y2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcK
IHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2NyZWVuX2xlZnQoV2ViS2l0RE9NRE9NV2luZG93
KiBzZWxmKTsKIAogLyoqCkBAIC0zNjAsOCArNDE2LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRv
d19nZXRfc2NyZWVuX2xlZnQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIFJldHVybnM6
IEEgI2dsb25nCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnbG9uZworV0VC
S0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2NyZWVuX3Rv
cChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAvKioKQEAgLTM3MSw4ICs0MjksMTAgQEAg
d2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zY3JlZW5fdG9wKFdlYktpdERPTURPTVdpbmRvdyog
c2VsZik7CiAgKiBSZXR1cm5zOiBBICNnbG9uZwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdF
QktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2RvbV93
aW5kb3dfZ2V0X3Njcm9sbF94KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpAQCAt
MzgyLDggKzQ0MiwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3Njcm9sbF94KFdlYktp
dERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnbG9uZwogICoKICAqIFNpbmNl
OiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3
ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3Njcm9sbF95KFdlYktpdERPTURPTVdpbmRvdyogc2Vs
Zik7CiAKIC8qKgpAQCAtMzkzLDggKzQ1NSwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0
X3Njcm9sbF95KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnbG9u
ZwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBS
RUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3BhZ2VfeF9vZmZzZXQoV2Vi
S2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC00MDQsOCArNDY4LDEwIEBAIHdlYmtp
dF9kb21fZG9tX3dpbmRvd19nZXRfcGFnZV94X29mZnNldChXZWJLaXRET01ET01XaW5kb3cqIHNl
bGYpOwogICogUmV0dXJuczogQSAjZ2xvbmcKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJL
SVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9kb21fd2lu
ZG93X2dldF9wYWdlX3lfb2Zmc2V0KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpA
QCAtNDE1LDggKzQ4MSwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3BhZ2VfeV9vZmZz
ZXQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2dib29sZWFuCiAg
KgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJF
Q0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfY2xvc2VkKFdlYktpdERP
TURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpAQCAtNDI2LDggKzQ5NCwxMCBAQCB3ZWJraXRfZG9t
X2RvbV93aW5kb3dfZ2V0X2Nsb3NlZChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogICogUmV0
dXJuczogQSAjZ3Vsb25nCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBndWxv
bmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9s
ZW5ndGgoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC00MzcsOCArNTA3LDEw
IEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfbGVuZ3RoKFdlYktpdERPTURPTVdpbmRvdyog
c2VsZik7CiAgKiBSZXR1cm5zOiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9t
X3dpbmRvd19nZXRfbmFtZShXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAvKioKQEAgLTQ0
Nyw4ICs1MTksMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9uYW1lKFdlYktpdERPTURP
TVdpbmRvdyogc2VsZik7CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICAqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2RvbV93aW5kb3dfc2V0X25hbWUoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBjb25zdCBnY2hh
ciogdmFsdWUpOwogCiAvKioKQEAgLTQ1OCw4ICs1MzIsMTAgQEAgd2Via2l0X2RvbV9kb21fd2lu
ZG93X3NldF9uYW1lKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVl
KTsKICAqIFJldHVybnM6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lU
X0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb21fd2lu
ZG93X2dldF9zdGF0dXMoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC00Njgs
OCArNTQ0LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc3RhdHVzKFdlYktpdERPTURP
TVdpbmRvdyogc2VsZik7CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICAqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2RvbV93aW5kb3dfc2V0X3N0YXR1cyhXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNDc5LDggKzU1NywxMCBAQCB3ZWJraXRfZG9tX2RvbV93
aW5kb3dfc2V0X3N0YXR1cyhXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGNvbnN0IGdjaGFyKiB2
YWx1ZSk7CiAgKiBSZXR1cm5zOiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9t
X3dpbmRvd19nZXRfZGVmYXVsdF9zdGF0dXMoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAog
LyoqCkBAIC00ODksOCArNTY5LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfZGVmYXVs
dF9zdGF0dXMoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2NoYXIK
ICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19zZXRfZGVmYXVsdF9zdGF0dXMoV2ViS2l0
RE9NRE9NV2luZG93KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTUwMCw4
ICs1ODIsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X3NldF9kZWZhdWx0X3N0YXR1cyhXZWJL
aXRET01ET01XaW5kb3cqIHNlbGYsIGNvbnN0IGdjaGFyKgogICogUmV0dXJuczogKHRyYW5zZmVy
IGZ1bGwpOiBBICNXZWJLaXRET01ET01XaW5kb3cKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1X
RUJLSVRfQVBJIFdlYktpdERPTURPTVdpbmRvdyoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERP
TURPTVdpbmRvdyoKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2VsZihXZWJLaXRET01ET01X
aW5kb3cqIHNlbGYpOwogCiAvKioKQEAgLTUxMSw4ICs1OTUsMTAgQEAgd2Via2l0X2RvbV9kb21f
d2luZG93X2dldF9zZWxmKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiAo
dHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTURPTVdpbmRvdwogICoKICAqIFNpbmNlOiAyLjE2
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAgKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRE9NV2luZG93KgorV0VCS0lUX0RFUFJFQ0FURUQg
V2ViS2l0RE9NRE9NV2luZG93Kgogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF93aW5kb3coV2Vi
S2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC01MjIsOCArNjA4LDEwIEBAIHdlYmtp
dF9kb21fZG9tX3dpbmRvd19nZXRfd2luZG93KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAg
KiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTURPTVdpbmRvdwogICoKICAq
IFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRE9NV2luZG93KgorV0VCS0lU
X0RFUFJFQ0FURUQgV2ViS2l0RE9NRE9NV2luZG93Kgogd2Via2l0X2RvbV9kb21fd2luZG93X2dl
dF9mcmFtZXMoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC01MzMsOCArNjIx
LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfZnJhbWVzKFdlYktpdERPTURPTVdpbmRv
dyogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTURPTVdp
bmRvdwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRE9NV2lu
ZG93KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRE9NV2luZG93Kgogd2Via2l0X2RvbV9k
b21fd2luZG93X2dldF9vcGVuZXIoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBA
IC01NDQsOCArNjM0LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfb3BlbmVyKFdlYktp
dERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dl
YktpdERPTURPTVdpbmRvdwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgV2Vi
S2l0RE9NRE9NV2luZG93KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRE9NV2luZG93Kgog
d2Via2l0X2RvbV9kb21fd2luZG93X2dldF9wYXJlbnQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxm
KTsKIAogLyoqCkBAIC01NTUsOCArNjQ3LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRf
cGFyZW50KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
ZnVsbCk6IEEgI1dlYktpdERPTURPTVdpbmRvdwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdF
QktJVF9BUEkgV2ViS2l0RE9NRE9NV2luZG93KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9N
RE9NV2luZG93Kgogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF90b3AoV2ViS2l0RE9NRE9NV2lu
ZG93KiBzZWxmKTsKIAogLyoqCkBAIC01NjYsOCArNjYwLDEwIEBAIHdlYmtpdF9kb21fZG9tX3dp
bmRvd19nZXRfdG9wKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJh
bnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgogICogU2luY2U6IDIuMTYKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAq
LwotV0VCS0lUX0FQSSBXZWJLaXRET01Eb2N1bWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktp
dERPTURvY3VtZW50Kgogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9kb2N1bWVudChXZWJLaXRE
T01ET01XaW5kb3cqIHNlbGYpOwogCiAvKioKQEAgLTU3Nyw4ICs2NzMsMTAgQEAgd2Via2l0X2Rv
bV9kb21fd2luZG93X2dldF9kb2N1bWVudChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogICog
UmV0dXJuczogQSAjZ2RvdWJsZQogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkg
Z2RvdWJsZQorV0VCS0lUX0RFUFJFQ0FURUQgZ2RvdWJsZQogd2Via2l0X2RvbV9kb21fd2luZG93
X2dldF9kZXZpY2VfcGl4ZWxfcmF0aW8oV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoq
CkBAIC01ODgsOCArNjg2LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfZGV2aWNlX3Bp
eGVsX3JhdGlvKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnbG9u
ZwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBS
RUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X29yaWVudGF0aW9uKFdlYktp
dERPTURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpAQCAtNjAxLDggKzcwMSwxMCBAQCB3ZWJraXRf
ZG9tX2RvbV93aW5kb3dfZ2V0X29yaWVudGF0aW9uKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7
CiAgKiBSZXR1cm5zOiBXaGV0aGVyIHRoZSBtZXNzYWdlIHdhcyBzdWNjZXNzZnVsbHkgc2VudC4K
ICAqCiAgKiBTaW5jZTogMi44CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBS
RUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfd2Via2l0X21lc3NhZ2VfaGFu
ZGxlcnNfcG9zdF9tZXNzYWdlKFdlYktpdERPTURPTVdpbmRvdyogd2luZG93LCBjb25zdCBnY2hh
ciogaGFuZGxlciwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTURlcHJlY2F0ZWQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURlcHJlY2F0ZWQuY3BwCmluZGV4IGVjNzBm
MzgzNjI4Li4wZDg5MzUyZGIyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURlcHJlY2F0ZWQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01EZXByZWNhdGVkLmNwcApAQCAtMzgsNiArMzgsOCBAQAogI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorR19HTlVDX0JFR0lOX0lH
Tk9SRV9ERVBSRUNBVElPTlM7CisKIGdjaGFyKiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRf
aW5uZXJfaHRtbChXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZikKIHsKICAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0hUTUxfRUxFTUVOVChzZWxmKSwgbnVsbHB0cik7CkBA
IC0zMjUsMyArMzI3LDQgQEAgZ2NoYXIqIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfd2Via2l0X3Jl
Z2lvbl9vdmVyc2V0KFdlYktpdERPTUVsZW1lbnQqKQogICAgIGdfd2FybmluZygiJXM6IENTUyBS
ZWdpb25zIHN1cHBvcnQgaGFzIGJlZW4gcmVtb3ZlZCwgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdGhp
bmcuIiwgX19mdW5jX18pOwogICAgIHJldHVybiBudWxscHRyOwogfQorR19HTlVDX0VORF9JR05P
UkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1l
bnQuaAppbmRleCA0YTgzZTAzNWJkZi4uNjY5YTZhMTY3ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudC5oCkBAIC01NSw4ICs1NSwxMCBAQCB3ZWJraXRfZG9t
X2RvY3VtZW50X2dldF90eXBlKHZvaWQpOwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0
dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVtZW50CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgV2ViS2l0RE9NRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUVsZW1lbnQq
CiB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9lbGVtZW50KFdlYktpdERPTURvY3VtZW50KiBz
ZWxmLCBjb25zdCBnY2hhciogdGFnTmFtZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTY0
LDggKzY2LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2VsZW1lbnQoV2ViS2l0RE9N
RG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB0YWdOYW1lCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERP
TURvY3VtZW50RnJhZ21lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Eb2N1bWVudEZyYWdt
ZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudCoKIHdlYmtp
dF9kb21fZG9jdW1lbnRfY3JlYXRlX2RvY3VtZW50X2ZyYWdtZW50KFdlYktpdERPTURvY3VtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC03NCw4ICs3OCwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2Ny
ZWF0ZV9kb2N1bWVudF9mcmFnbWVudChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBAZGF0
YTogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERP
TVRleHQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01UZXh0KgorV0VCS0lUX0RFUFJFQ0FURUQg
V2ViS2l0RE9NVGV4dCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX3RleHRfbm9kZShXZWJL
aXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGRhdGEpOwogCiAvKioKQEAgLTg0LDgg
KzkwLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX3RleHRfbm9kZShXZWJLaXRET01E
b2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGRhdGEpCiAgKiBAZGF0YTogQSAjZ2NoYXIKICAq
CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUNvbW1lbnQKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBXZWJLaXRET01Db21tZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9N
Q29tbWVudCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2NvbW1lbnQoV2ViS2l0RE9NRG9j
dW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBkYXRhKTsKIAogLyoqCkBAIC05NSw4ICsxMDMsMTAg
QEAgd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfY29tbWVudChXZWJLaXRET01Eb2N1bWVudCog
c2VsZiwgY29uc3QgZ2NoYXIqIGRhdGEpOwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0
dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01DREFUQVNlY3Rpb24KKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBXZWJLaXRET01DREFUQVNlY3Rpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRE
T01DREFUQVNlY3Rpb24qCiB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9jZGF0YV9zZWN0aW9u
KFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogZGF0YSwgR0Vycm9yKiogZXJy
b3IpOwogCiAvKioKQEAgLTEwNyw4ICsxMTcsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9jcmVh
dGVfY2RhdGFfc2VjdGlvbihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGQK
ICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAj
V2ViS2l0RE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9N
UHJvY2Vzc2luZ0luc3RydWN0aW9uKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NUHJvY2Vz
c2luZ0luc3RydWN0aW9uKgogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfcHJvY2Vzc2luZ19p
bnN0cnVjdGlvbihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHRhcmdldCwg
Y29uc3QgZ2NoYXIqIGRhdGEsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xMTgsOCArMTMw
LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX3Byb2Nlc3NpbmdfaW5zdHJ1Y3Rpb24o
V2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAg
KiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUF0dHIKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBXZWJLaXRET01BdHRyKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NQXR0cioKIHdl
YmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2F0dHJpYnV0ZShXZWJLaXRET01Eb2N1bWVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIG5hbWUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xMzAsOCAr
MTQ0LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2F0dHJpYnV0ZShXZWJLaXRET01E
b2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWUsCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
ZnVsbCk6IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCiAgKgogICogU2luY2U6IDIuMTIKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKK1dFQktJVF9ERVBSRUNBVEVE
IFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZWxlbWVu
dHNfYnlfdGFnX25hbWVfYXNfaHRtbF9jb2xsZWN0aW9uKFdlYktpdERPTURvY3VtZW50KiBzZWxm
LCBjb25zdCBnY2hhciogdGFnbmFtZSk7CiAKIC8qKgpAQCAtMTQyLDggKzE1OCwxMCBAQCB3ZWJr
aXRfZG9tX2RvY3VtZW50X2dldF9lbGVtZW50c19ieV90YWdfbmFtZV9hc19odG1sX2NvbGxlY3Rp
b24oV2ViS2l0RE9NRG9jdW1lbgogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczog
KHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0
RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX2Rv
Y3VtZW50X2ltcG9ydF9ub2RlKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBXZWJLaXRET01Ob2Rl
KiBpbXBvcnRlZE5vZGUsIGdib29sZWFuIGRlZXAsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBA
IC0xNTQsOCArMTcyLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfaW1wb3J0X25vZGUoV2ViS2l0
RE9NRG9jdW1lbnQqIHNlbGYsIFdlYktpdERPTU5vZGUqIGltcG9ydGVkCiAgKiBAZXJyb3I6ICNH
RXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUVsZW1l
bnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQg
V2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2VsZW1lbnRfbnMo
V2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lc3BhY2VVUkksIGNvbnN0
IGdjaGFyKiBxdWFsaWZpZWROYW1lLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTY2LDgg
KzE4NiwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9lbGVtZW50X25zKFdlYktpdERP
TURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZQogICogQGVycm9yOiAjR0Vycm9yCiAg
KgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01BdHRyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgV2ViS2l0RE9NQXR0cioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUF0dHIq
CiB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9hdHRyaWJ1dGVfbnMoV2ViS2l0RE9NRG9jdW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lc3BhY2VVUkksIGNvbnN0IGdjaGFyKiBxdWFsaWZp
ZWROYW1lLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTc5LDggKzIwMSwxMCBAQCB3ZWJr
aXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9hdHRyaWJ1dGVfbnMoV2ViS2l0RE9NRG9jdW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiBuYQogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJL
aXRET01IVE1MQ29sbGVjdGlvbgogICoKICAqIFNpbmNlOiAyLjEyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
V2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1M
Q29sbGVjdGlvbioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRzX2J5X3RhZ19uYW1l
X25zX2FzX2h0bWxfY29sbGVjdGlvbihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2No
YXIqIG5hbWVzcGFjZVVSSSwgY29uc3QgZ2NoYXIqIGxvY2FsTmFtZSk7CiAKIC8qKgpAQCAtMTkw
LDggKzIxNCwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9lbGVtZW50c19ieV90YWdfbmFt
ZV9uc19hc19odG1sX2NvbGxlY3Rpb24oV2ViS2l0RE9NRG9jdQogICogQGVycm9yOiAjR0Vycm9y
CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5v
ZGUqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2Fkb3B0X25vZGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNl
bGYsIFdlYktpdERPTU5vZGUqIHNvdXJjZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTIw
MSw4ICsyMjcsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9hZG9wdF9ub2RlKFdlYktpdERPTURv
Y3VtZW50KiBzZWxmLCBXZWJLaXRET01Ob2RlKiBzb3VyY2UsIEcKICAqIEBlcnJvcjogI0dFcnJv
cgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NRXZlbnQKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBXZWJLaXRET01FdmVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERP
TUV2ZW50Kgogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfZXZlbnQoV2ViS2l0RE9NRG9jdW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBldmVudFR5cGUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoq
CkBAIC0yMTAsOCArMjM4LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2V2ZW50KFdl
YktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogZXZlbnRUeXBlCiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEg
I1dlYktpdERPTVJhbmdlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NUmFuZ2UqCitXRUJLSVRf
REVQUkVDQVRFRCBXZWJLaXRET01SYW5nZSoKIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX3Jh
bmdlKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMjQsOCArMjU0LDEwIEBA
IHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX3JhbmdlKFdlYktpdERPTURvY3VtZW50KiBzZWxm
KTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTog
QSAjV2ViS2l0RE9NTm9kZUl0ZXJhdG9yCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZUl0
ZXJhdG9yKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZUl0ZXJhdG9yKgogd2Via2l0
X2RvbV9kb2N1bWVudF9jcmVhdGVfbm9kZV9pdGVyYXRvcihXZWJLaXRET01Eb2N1bWVudCogc2Vs
ZiwgV2ViS2l0RE9NTm9kZSogcm9vdCwgZ3Vsb25nIHdoYXRUb1Nob3csIFdlYktpdERPTU5vZGVG
aWx0ZXIqIGZpbHRlciwgZ2Jvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJlbmNlcywgR0Vycm9yKiog
ZXJyb3IpOwogCiAvKioKQEAgLTIzOCw4ICsyNzAsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9j
cmVhdGVfbm9kZV9pdGVyYXRvcihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgV2ViS2l0RE9NTm9k
ZSoKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTog
QSAjV2ViS2l0RE9NVHJlZVdhbGtlcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTVRyZWVXYWxr
ZXIqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01UcmVlV2Fsa2VyKgogd2Via2l0X2RvbV9k
b2N1bWVudF9jcmVhdGVfdHJlZV93YWxrZXIoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIFdlYktp
dERPTU5vZGUqIHJvb3QsIGd1bG9uZyB3aGF0VG9TaG93LCBXZWJLaXRET01Ob2RlRmlsdGVyKiBm
aWx0ZXIsIGdib29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMsIEdFcnJvcioqIGVycm9yKTsK
IAogLyoqCkBAIC0yNDksOCArMjgzLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX3Ry
ZWVfd2Fsa2VyKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBXZWJLaXRET01Ob2RlKiByCiAgKiBA
cHNldWRvRWxlbWVudDogKGFsbG93LW5vbmUpOiBBICNnY2hhcgogICoKICAqIFJldHVybnM6ICh0
cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24qCitXRUJLSVRfREVQUkVDQVRFRCBX
ZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfb3Zl
cnJpZGVfc3R5bGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIFdlYktpdERPTUVsZW1lbnQqIGVs
ZW1lbnQsIGNvbnN0IGdjaGFyKiBwc2V1ZG9FbGVtZW50KTsKIAogLyoqCkBAIC0yNjEsOCArMjk3
LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X292ZXJyaWRlX3N0eWxlKFdlYktpdERPTURv
Y3VtZW50KiBzZWxmLCBXZWJLaXRET01FbGVtZW50CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAg
KiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTVhQYXRoRXhwcmVzc2lvbgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIFdlYktpdERPTVhQYXRoRXhwcmVzc2lvbioKK1dFQktJVF9ERVBSRUNB
VEVEIFdlYktpdERPTVhQYXRoRXhwcmVzc2lvbioKIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRl
X2V4cHJlc3Npb24oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBleHByZXNz
aW9uLCBXZWJLaXRET01YUGF0aE5TUmVzb2x2ZXIqIHJlc29sdmVyLCBHRXJyb3IqKiBlcnJvcik7
CiAKIC8qKgpAQCAtMjcxLDggKzMwOSwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9l
eHByZXNzaW9uKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogZXhwcgogICog
QG5vZGVSZXNvbHZlcjogQSAjV2ViS2l0RE9NTm9kZQogICoKICAqIFJldHVybnM6ICh0cmFuc2Zl
ciBmdWxsKTogQSAjV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2Vi
S2l0RE9NWFBhdGhOU1Jlc29sdmVyKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NWFBhdGhO
U1Jlc29sdmVyKgogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfbnNfcmVzb2x2ZXIoV2ViS2l0
RE9NRG9jdW1lbnQqIHNlbGYsIFdlYktpdERPTU5vZGUqIG5vZGVSZXNvbHZlcik7CiAKIC8qKgpA
QCAtMjg2LDggKzMyNiwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9uc19yZXNvbHZl
cihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgV2ViS2l0RE9NTm9kZSogbgogICogQGVycm9yOiAj
R0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01YUGF0
aFJlc3VsdAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTVhQYXRoUmVzdWx0KgorV0VCS0lUX0RF
UFJFQ0FURUQgV2ViS2l0RE9NWFBhdGhSZXN1bHQqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2V2YWx1
YXRlKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogZXhwcmVzc2lvbiwgV2Vi
S2l0RE9NTm9kZSogY29udGV4dE5vZGUsIFdlYktpdERPTVhQYXRoTlNSZXNvbHZlciogcmVzb2x2
ZXIsIGd1c2hvcnQgdHlwZSwgV2ViS2l0RE9NWFBhdGhSZXN1bHQqIGluUmVzdWx0LCBHRXJyb3Iq
KiBlcnJvcik7CiAKIC8qKgpAQCAtMjk4LDggKzM0MCwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50
X2V2YWx1YXRlKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogZXhwcmVzc2lv
biwgVwogICogQHZhbHVlOiBBICNnY2hhcgogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJr
aXRfZG9tX2RvY3VtZW50X2V4ZWNfY29tbWFuZChXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29u
c3QgZ2NoYXIqIGNvbW1hbmQsIGdib29sZWFuIHVzZXJJbnRlcmZhY2UsIGNvbnN0IGdjaGFyKiB2
YWx1ZSk7CiAKIC8qKgpAQCAtMzA4LDggKzM1MiwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2V4
ZWNfY29tbWFuZChXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGNvbW1hbmQs
CiAgKiBAY29tbWFuZDogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0
X2RvbV9kb2N1bWVudF9xdWVyeV9jb21tYW5kX2VuYWJsZWQoV2ViS2l0RE9NRG9jdW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiBjb21tYW5kKTsKIAogLyoqCkBAIC0zMTgsOCArMzY0LDEwIEBAIHdl
YmtpdF9kb21fZG9jdW1lbnRfcXVlcnlfY29tbWFuZF9lbmFibGVkKFdlYktpdERPTURvY3VtZW50
KiBzZWxmLCBjb25zdCBnY2hhcioKICAqIEBjb21tYW5kOiBBICNnY2hhcgogICoKICAqIFJldHVy
bnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNB
VEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2RvY3VtZW50X3F1ZXJ5X2NvbW1hbmRfaW5kZXRlcm0o
V2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBjb21tYW5kKTsKIAogLyoqCkBA
IC0zMjgsOCArMzc2LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfcXVlcnlfY29tbWFuZF9pbmRl
dGVybShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqCiAgKiBAY29tbWFuZDog
QSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdi
b29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9kb2N1bWVudF9x
dWVyeV9jb21tYW5kX3N0YXRlKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciog
Y29tbWFuZCk7CiAKIC8qKgpAQCAtMzM4LDggKzM4OCwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50
X3F1ZXJ5X2NvbW1hbmRfc3RhdGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFy
KiBjbwogICogQGNvbW1hbmQ6IEEgI2djaGFyCiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4K
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdl
YmtpdF9kb21fZG9jdW1lbnRfcXVlcnlfY29tbWFuZF9zdXBwb3J0ZWQoV2ViS2l0RE9NRG9jdW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBjb21tYW5kKTsKIAogLyoqCkBAIC0zNDgsOCArNDAwLDEw
IEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfcXVlcnlfY29tbWFuZF9zdXBwb3J0ZWQoV2ViS2l0RE9N
RG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyCiAgKiBAY29tbWFuZDogQSAjZ2NoYXIKICAqCiAg
KiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJF
Q0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2RvY3VtZW50X3F1ZXJ5X2NvbW1hbmRfdmFsdWUoV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBjb21tYW5kKTsKIAogLyoqCkBAIC0z
NTgsOCArNDEyLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfcXVlcnlfY29tbWFuZF92YWx1ZShX
ZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGNvCiAgKiBAZWxlbWVudE5hbWU6
IEEgI2djaGFyCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01O
b2RlTGlzdAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGVMaXN0KgorV0VCS0lUX0RFUFJF
Q0FURUQgV2ViS2l0RE9NTm9kZUxpc3QqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9lbGVtZW50
c19ieV9uYW1lKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogZWxlbWVudE5h
bWUpOwogCiAvKioKQEAgLTM2OSw4ICs0MjUsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRf
ZWxlbWVudHNfYnlfbmFtZShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGUK
ICAqIEB5OiBBICNnbG9uZwogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2Vi
S2l0RE9NRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCitXRUJLSVRf
REVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9kb2N1bWVudF9lbGVtZW50
X2Zyb21fcG9pbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGdsb25nIHgsIGdsb25nIHkpOwog
CiAvKioKQEAgLTM3OCw4ICs0MzYsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9lbGVtZW50X2Zy
b21fcG9pbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGdsb25nIHgsIGdsb25nIHkKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxs
KTogQSAjV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktp
dERPTUNTU1N0eWxlRGVjbGFyYXRpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01DU1NT
dHlsZURlY2xhcmF0aW9uKgogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfY3NzX3N0eWxlX2Rl
Y2xhcmF0aW9uKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0zOTAsOCArNDUw
LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2Nzc19zdHlsZV9kZWNsYXJhdGlvbihX
ZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEg
I1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCiAgKgogICogU2luY2U6IDIuMTIKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERP
TUhUTUxDb2xsZWN0aW9uKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZWxlbWVudHNfYnlfY2xh
c3NfbmFtZV9hc19odG1sX2NvbGxlY3Rpb24oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0
IGdjaGFyKiBjbGFzc05hbWVzKTsKIAogLyoqCkBAIC0zOTksOCArNDYxLDEwIEBAIHdlYmtpdF9k
b21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRzX2J5X2NsYXNzX25hbWVfYXNfaHRtbF9jb2xsZWN0aW9u
KFdlYktpdERPTURvY3VtCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQ
UkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9kb2N1bWVudF9oYXNfZm9jdXMoV2ViS2l0RE9N
RG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTQwOSw4ICs0NzMsMTAgQEAgd2Via2l0X2RvbV9k
b2N1bWVudF9oYXNfZm9jdXMoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQGVsZW1lbnRJ
ZDogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERP
TUVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50KgorV0VCS0lUX0RFUFJF
Q0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRf
YnlfaWQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBlbGVtZW50SWQpOwog
CiAvKioKQEAgLTQyMCw4ICs0ODYsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZWxlbWVu
dF9ieV9pZChXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGVsZW0KICAqIEBl
cnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0
RE9NRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCitXRUJLSVRfREVQ
UkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9kb2N1bWVudF9xdWVyeV9zZWxl
Y3RvcihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHNlbGVjdG9ycywgR0Vy
cm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTQzMSw4ICs0OTksMTAgQEAgd2Via2l0X2RvbV9kb2N1
bWVudF9xdWVyeV9zZWxlY3RvcihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IHNlbGVjdG8KICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBm
dWxsKTogQSAjV2ViS2l0RE9NTm9kZUxpc3QKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2Rl
TGlzdCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGVMaXN0Kgogd2Via2l0X2RvbV9k
b2N1bWVudF9xdWVyeV9zZWxlY3Rvcl9hbGwoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0
IGdjaGFyKiBzZWxlY3RvcnMsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC00NDAsOCArNTEw
LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfcXVlcnlfc2VsZWN0b3JfYWxsKFdlYktpdERPTURv
Y3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogc2VsCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9j
dW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTURvY3Vt
ZW50VHlwZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTURvY3VtZW50VHlwZSoKK1dFQktJVF9E
RVBSRUNBVEVEIFdlYktpdERPTURvY3VtZW50VHlwZSoKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0
X2RvY3R5cGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTQ0OSw4ICs1MjEs
MTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZG9jdHlwZShXZWJLaXRET01Eb2N1bWVudCog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiAo
dHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTURPTUltcGxlbWVudGF0aW9uCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgV2ViS2l0RE9NRE9NSW1wbGVtZW50YXRpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJL
aXRET01ET01JbXBsZW1lbnRhdGlvbioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2ltcGxlbWVu
dGF0aW9uKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC00NTgsOCArNTMyLDEw
IEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2ltcGxlbWVudGF0aW9uKFdlYktpdERPTURvY3Vt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVy
bnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IFdlYktpdERPTUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgog
d2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZG9jdW1lbnRfZWxlbWVudChXZWJLaXRET01Eb2N1bWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtNDY3LDggKzU0MywxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50
X2dldF9kb2N1bWVudF9lbGVtZW50KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9j
dW1lbnRfZ2V0X2lucHV0X2VuY29kaW5nKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC00NzYsOCArNTU0LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2lucHV0X2VuY29k
aW5nKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1
bWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitX
RUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3htbF9lbmNv
ZGluZyhXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNDg1LDggKzU2NSwxMCBA
QCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF94bWxfZW5jb2RpbmcoV2ViS2l0RE9NRG9jdW1lbnQq
IHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgogICogUmV0dXJuczog
QSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFy
Kgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfeG1sX3ZlcnNpb24oV2ViS2l0RE9NRG9jdW1lbnQq
IHNlbGYpOwogCiAvKioKQEAgLTQ5NSw4ICs1NzcsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9n
ZXRfeG1sX3ZlcnNpb24oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNn
Y2hhcgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X3htbF92ZXJzaW9uKFdl
YktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJvcioqIGVycm9y
KTsKIAogLyoqCkBAIC01MDQsOCArNTg4LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X3ht
bF92ZXJzaW9uKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsCiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVh
bgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgog
d2Via2l0X2RvbV9kb2N1bWVudF9nZXRfeG1sX3N0YW5kYWxvbmUoV2ViS2l0RE9NRG9jdW1lbnQq
IHNlbGYpOwogCiAvKioKQEAgLTUxNCw4ICs2MDAsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9n
ZXRfeG1sX3N0YW5kYWxvbmUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBB
ICNnYm9vbGVhbgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X3htbF9zdGFu
ZGFsb25lKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSwgR0Vycm9yKiog
ZXJyb3IpOwogCiAvKioKQEAgLTUyMyw4ICs2MTEsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9z
ZXRfeG1sX3N0YW5kYWxvbmUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVl
LAogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2No
YXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Vi
a2l0X2RvbV9kb2N1bWVudF9nZXRfZG9jdW1lbnRfdXJpKFdlYktpdERPTURvY3VtZW50KiBzZWxm
KTsKIAogLyoqCkBAIC01MzIsOCArNjIyLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2Rv
Y3VtZW50X3VyaShXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NRG9jdW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb2N1bWVudF9zZXRfZG9jdW1l
bnRfdXJpKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAv
KioKQEAgLTU0MSw4ICs2MzMsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9zZXRfZG9jdW1lbnRf
dXJpKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUKICAqIEBzZWxm
OiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTog
QSAjV2ViS2l0RE9NRE9NV2luZG93CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRE9NV2luZG93
KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRE9NV2luZG93Kgogd2Via2l0X2RvbV9kb2N1
bWVudF9nZXRfZGVmYXVsdF92aWV3KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC01NTAsOCArNjQ0LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2RlZmF1bHRfdmlldyhX
ZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTVN0eWxlU2hlZXRM
aXN0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NU3R5bGVTaGVldExpc3QqCitXRUJLSVRfREVQ
UkVDQVRFRCBXZWJLaXRET01TdHlsZVNoZWV0TGlzdCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0
X3N0eWxlX3NoZWV0cyhXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNTU5LDgg
KzY1NSwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9zdHlsZV9zaGVldHMoV2ViS2l0RE9N
RG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNB
VEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfdGl0bGUoV2ViS2l0RE9NRG9jdW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTU2OCw4ICs2NjYsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVu
dF9nZXRfdGl0bGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTURvY3VtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X3RpdGxl
KFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAg
LTU3OSw4ICs2NzksMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9zZXRfdGl0bGUoV2ViS2l0RE9N
RG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAgKiBSZXR1cm5zOiBBICNnY2hh
cgogICoKICAqIFNpbmNlOiAyLjE0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2Rlc2lnbl9tb2RlKFdlYktp
dERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC01ODksOCArNjkxLDEwIEBAIHdlYmtpdF9k
b21fZG9jdW1lbnRfZ2V0X2Rlc2lnbl9tb2RlKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAq
IEB2YWx1ZTogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNAorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X2Rlc2ln
bl9tb2RlKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAv
KioKQEAgLTU5OCw4ICs3MDIsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9zZXRfZGVzaWduX21v
ZGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSkKICAqIEBzZWxm
OiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9j
dW1lbnRfZ2V0X3JlZmVycmVyKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02
MDcsOCArNzEzLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3JlZmVycmVyKFdlYktpdERP
TURvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAq
IFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVD
QVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2RvbWFpbihXZWJLaXRET01Eb2N1
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjE2LDggKzcyNCwxMCBAQCB3ZWJraXRfZG9tX2RvY3Vt
ZW50X2dldF9kb21haW4oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTURvY3VtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF9n
ZXRfdXJsKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02MjYsOCArNzM2LDEw
IEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3VybChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7
CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2RvY3Vt
ZW50X2dldF9jb29raWUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIEdFcnJvcioqIGVycm9yKTsK
IAogLyoqCkBAIC02MzYsOCArNzQ4LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2Nvb2tp
ZShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogICogQHZhbHVlOiBB
ICNnY2hhcgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X2Nvb2tpZShXZWJL
aXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7
CiAKIC8qKgpAQCAtNjQ1LDggKzc1OSwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X3NldF9jb29r
aWUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0VycgogICog
QHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5v
bmUpOiBBICNXZWJLaXRET01IVE1MRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhU
TUxFbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTEVsZW1lbnQqCiB3ZWJr
aXRfZG9tX2RvY3VtZW50X2dldF9ib2R5KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC02NTUsOCArNzcxLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2JvZHkoV2ViS2l0
RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNXZWJLaXRET01IVE1MRWxlbWVudAog
ICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBS
RUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X2JvZHkoV2ViS2l0RE9NRG9jdW1l
bnQqIHNlbGYsIFdlYktpdERPTUhUTUxFbGVtZW50KiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOwog
CiAvKioKQEAgLTY2NCw4ICs3ODIsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9zZXRfYm9keShX
ZWJLaXRET01Eb2N1bWVudCogc2VsZiwgV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHZhbHUKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25l
KTogQSAjV2ViS2l0RE9NSFRNTEhlYWRFbGVtZW50CisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9N
SFRNTEhlYWRFbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTEhlYWRFbGVt
ZW50Kgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfaGVhZChXZWJLaXRET01Eb2N1bWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtNjczLDggKzc5MywxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9o
ZWFkKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1
bWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NSFRNTENv
bGxlY3Rpb24KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKK1dFQktJ
VF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgogd2Via2l0X2RvbV9kb2N1bWVu
dF9nZXRfaW1hZ2VzKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02ODIsOCAr
ODA0LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2ltYWdlcyhXZWJLaXRET01Eb2N1bWVu
dCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5z
OiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRE
T01IVE1MQ29sbGVjdGlvbioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2FwcGxldHMoV2ViS2l0
RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTY5MSw4ICs4MTUsMTAgQEAgd2Via2l0X2Rv
bV9kb2N1bWVudF9nZXRfYXBwbGV0cyhXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6
IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRN
TENvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioK
IHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2xpbmtzKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsK
IAogLyoqCkBAIC03MDAsOCArODI2LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2xpbmtz
KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVu
dAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NSFRNTENvbGxl
Y3Rpb24KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKK1dFQktJVF9E
RVBSRUNBVEVEIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgogd2Via2l0X2RvbV9kb2N1bWVudF9n
ZXRfZm9ybXMoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTcwOSw4ICs4Mzcs
MTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZm9ybXMoV2ViS2l0RE9NRG9jdW1lbnQqIHNl
bGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgogICogUmV0dXJuczogKHRy
YW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1MQ29sbGVjdGlvbgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRN
TENvbGxlY3Rpb24qCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9hbmNob3JzKFdlYktpdERPTURv
Y3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC03MjAsOCArODUwLDEwIEBAIHdlYmtpdF9kb21fZG9j
dW1lbnRfZ2V0X2FuY2hvcnMoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogUmV0dXJuczog
KHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1MQ29sbGVjdGlvbgogICoKICAqIFNpbmNl
OiAyLjE0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCitXRUJLSVRf
REVQUkVDQVRFRCBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKIHdlYmtpdF9kb21fZG9jdW1lbnRf
Z2V0X2VtYmVkcyhXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNzMxLDggKzg2
MywxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9lbWJlZHMoV2ViS2l0RE9NRG9jdW1lbnQq
IHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1MQ29s
bGVjdGlvbgogICoKICAqIFNpbmNlOiAyLjE0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRN
TENvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioK
IHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3BsdWdpbnMoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTc0Miw4ICs4NzYsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfcGx1
Z2lucyhXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVs
bCk6IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCiAgKgogICogU2luY2U6IDIuMTQKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKK1dFQktJVF9ERVBSRUNBVEVEIFdl
YktpdERPTUhUTUxDb2xsZWN0aW9uKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfc2NyaXB0cyhX
ZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNzUxLDggKzg4NywxMCBAQCB3ZWJr
aXRfZG9tX2RvY3VtZW50X2dldF9zY3JpcHRzKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9k
b21fZG9jdW1lbnRfZ2V0X2xhc3RfbW9kaWZpZWQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTc2MCw4ICs4OTgsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfbGFzdF9t
b2RpZmllZChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
RG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFy
KgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jaGFy
c2V0KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC03NjksOCArOTA5LDEwIEBA
IHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2NoYXJzZXQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21fZG9jdW1lbnRfc2V0X2NoYXJzZXQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzc4LDggKzkyMCwxMCBAQCB3ZWJraXRfZG9tX2RvY3Vt
ZW50X3NldF9jaGFyc2V0KFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgogICogUmV0dXJuczogQSAj
Z2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgog
d2Via2l0X2RvbV9kb2N1bWVudF9nZXRfcmVhZHlfc3RhdGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNl
bGYpOwogCiAvKioKQEAgLTc4Nyw4ICs5MzEsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRf
cmVhZHlfc3RhdGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTURvY3VtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Y2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRf
Y2hhcmFjdGVyX3NldChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNzk2LDgg
Kzk0MiwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jaGFyYWN0ZXJfc2V0KFdlYktpdERP
TURvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAq
IFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVD
QVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3ByZWZlcnJlZF9zdHlsZXNoZWV0
X3NldChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtODA1LDggKzk1MywxMCBA
QCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9wcmVmZXJyZWRfc3R5bGVzaGVldF9zZXQoV2ViS2l0
RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBS
RUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfc2VsZWN0ZWRfc3R5bGVzaGVl
dF9zZXQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgxNCw4ICs5NjQsMTAg
QEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfc2VsZWN0ZWRfc3R5bGVzaGVldF9zZXQoV2ViS2l0
RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKiBA
dmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X3NlbGVjdGVkX3N0eWxlc2hlZXRfc2V0
KFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAg
LTgyMyw4ICs5NzUsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9zZXRfc2VsZWN0ZWRfc3R5bGVz
aGVldF9zZXQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGcKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2Vi
S2l0RE9NRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCitXRUJLSVRf
REVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfYWN0
aXZlX2VsZW1lbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgzNCw4ICs5
ODgsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfYWN0aXZlX2VsZW1lbnQoV2ViS2l0RE9N
RG9jdW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi4x
NAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJr
aXRfZG9tX2RvY3VtZW50X2dldF9jb21wYXRfbW9kZShXZWJLaXRET01Eb2N1bWVudCogc2VsZik7
CiAKIC8qKgpAQCAtODQ3LDggKzEwMDMsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfY29t
cGF0X21vZGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVy
IGZ1bGwpOiBBICNXZWJLaXRET01SYW5nZQogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgV2ViS2l0RE9NUmFuZ2UqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01SYW5nZSoK
IHdlYmtpdF9kb21fZG9jdW1lbnRfY2FyZXRfcmFuZ2VfZnJvbV9wb2ludChXZWJLaXRET01Eb2N1
bWVudCogc2VsZiwgZ2xvbmcgeCwgZ2xvbmcgeSk7CiAKIC8qKgpAQCAtODU2LDggKzEwMTQsMTAg
QEAgd2Via2l0X2RvbV9kb2N1bWVudF9jYXJldF9yYW5nZV9mcm9tX3BvaW50KFdlYktpdERPTURv
Y3VtZW50KiBzZWxmLCBnbG9uZyB4LCBnbG8KICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVu
dAogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9kb2N1bWVudF93ZWJraXRfY2FuY2VsX2Z1bGxzY3JlZW4o
V2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTg2NSw4ICsxMDI1LDEwIEBAIHdl
YmtpdF9kb21fZG9jdW1lbnRfd2Via2l0X2NhbmNlbF9mdWxsc2NyZWVuKFdlYktpdERPTURvY3Vt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFNpbmNl
OiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9kb2N1bWVudF93ZWJraXRfZXhpdF9mdWxsc2NyZWVuKFdlYktpdERPTURvY3VtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC04NzQsOCArMTAzNiwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50
X3dlYmtpdF9leGl0X2Z1bGxzY3JlZW4oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvY3VtZW50X2V4
aXRfcG9pbnRlcl9sb2NrKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04ODUs
OCArMTA0OSwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2V4aXRfcG9pbnRlcl9sb2NrKFdlYktp
dERPTURvY3VtZW50KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2djaGFyCiAgKgogICogU2luY2U6
IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgog
d2Via2l0X2RvbV9kb2N1bWVudF9nZXRfY29udGVudF90eXBlKFdlYktpdERPTURvY3VtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC04OTYsOCArMTA2MiwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dl
dF9jb250ZW50X3R5cGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogQSAj
Z2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kaXIoV2ViS2l0RE9N
RG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTkwNiw4ICsxMDc0LDEwIEBAIHdlYmtpdF9kb21f
ZG9jdW1lbnRfZ2V0X2RpcihXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBAdmFsdWU6IEEg
I2djaGFyCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRf
REVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvY3VtZW50X3NldF9kaXIoV2ViS2l0RE9NRG9j
dW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtOTE3LDggKzEwODcs
MTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9zZXRfZGlyKFdlYktpdERPTURvY3VtZW50KiBzZWxm
LCBjb25zdCBnY2hhciogdmFsdWUpOwogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KICAqCiAgKiBT
aW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBn
Ym9vbGVhbgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2lzX2Z1bGxzY3JlZW4oV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTkyOCw4ICsxMTAwLDEwIEBAIHdlYmtp
dF9kb21fZG9jdW1lbnRfZ2V0X3dlYmtpdF9pc19mdWxsc2NyZWVuKFdlYktpdERPTURvY3VtZW50
KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2dib29sZWFuCiAgKgogICogU2luY2U6IDIuMTYKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtp
dF9kb21fZG9jdW1lbnRfZ2V0X3dlYmtpdF9mdWxsc2NyZWVuX2tleWJvYXJkX2lucHV0X2FsbG93
ZWQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTkzOSw4ICsxMTEzLDEwIEBA
IHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3dlYmtpdF9mdWxsc2NyZWVuX2tleWJvYXJkX2lucHV0
X2FsbG93ZWQoV2ViS2l0RE9NRG9jdW1lCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEg
I1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdl
YktpdERPTUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Vi
a2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2N1cnJlbnRfZnVsbHNjcmVlbl9lbGVtZW50KFdl
YktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC05NTAsOCArMTEyNiwxMCBAQCB3ZWJr
aXRfZG9tX2RvY3VtZW50X2dldF93ZWJraXRfY3VycmVudF9mdWxsc2NyZWVuX2VsZW1lbnQoV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbAogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KICAqCiAgKiBTaW5j
ZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9v
bGVhbgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2Z1bGxzY3JlZW5fZW5hYmxlZChX
ZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtOTYxLDggKzExMzksMTAgQEAgd2Vi
a2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2Z1bGxzY3JlZW5fZW5hYmxlZChXZWJLaXRET01E
b2N1bWVudCogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERP
TUVsZW1lbnQKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVs
ZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9k
b2N1bWVudF9nZXRfd2Via2l0X2Z1bGxzY3JlZW5fZWxlbWVudChXZWJLaXRET01Eb2N1bWVudCog
c2VsZik7CiAKIC8qKgpAQCAtOTcyLDggKzExNTIsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9n
ZXRfd2Via2l0X2Z1bGxzY3JlZW5fZWxlbWVudChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAg
KiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBT
aW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCitXRUJLSVRfREVQ
UkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfcG9pbnRl
cl9sb2NrX2VsZW1lbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTk4Myw4
ICsxMTY1LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3BvaW50ZXJfbG9ja19lbGVtZW50
KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2djaGFyCiAgKgogICog
U2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdj
aGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfdmlzaWJpbGl0eV9zdGF0ZShXZWJLaXRET01E
b2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtOTk0LDggKzExNzgsMTAgQEAgd2Via2l0X2RvbV9k
b2N1bWVudF9nZXRfdmlzaWJpbGl0eV9zdGF0ZShXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAg
KiBSZXR1cm5zOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2RvY3Vt
ZW50X2dldF9oaWRkZW4oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEwMDUs
OCArMTE5MSwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9oaWRkZW4oV2ViS2l0RE9NRG9j
dW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01I
VE1MU2NyaXB0RWxlbWVudAogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2Vi
S2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1M
U2NyaXB0RWxlbWVudCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2N1cnJlbnRfc2NyaXB0KFdl
YktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMDE2LDggKzEyMDQsMTAgQEAgd2Vi
a2l0X2RvbV9kb2N1bWVudF9nZXRfY3VycmVudF9zY3JpcHQoV2ViS2l0RE9NRG9jdW1lbnQqIHNl
bGYpOwogICogUmV0dXJuczogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2RvY3Vt
ZW50X2dldF9vcmlnaW4oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEwMjcs
OCArMTIxNywxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9vcmlnaW4oV2ViS2l0RE9NRG9j
dW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01F
bGVtZW50CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVt
ZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZG9j
dW1lbnRfZ2V0X3Njcm9sbGluZ19lbGVtZW50KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0xMDM4LDggKzEyMzAsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfc2Nyb2xs
aW5nX2VsZW1lbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5z
ZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1MQ29sbGVjdGlvbgogICoKICAqIFNpbmNlOiAyLjE2
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVD
QVRFRCBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2No
aWxkcmVuKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMDQ5LDggKzEyNDMs
MTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfY2hpbGRyZW4oV2ViS2l0RE9NRG9jdW1lbnQq
IHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVtZW50
CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50Kgor
V0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZG9jdW1lbnRf
Z2V0X2ZpcnN0X2VsZW1lbnRfY2hpbGQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTEwNjAsOCArMTI1NiwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9maXJzdF9lbGVt
ZW50X2NoaWxkKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIFJldHVybnM6ICh0cmFuc2Zl
ciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgV2ViS2l0RE9NRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUVs
ZW1lbnQqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9sYXN0X2VsZW1lbnRfY2hpbGQoV2ViS2l0
RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEwNzEsOCArMTI2OSwxMCBAQCB3ZWJraXRf
ZG9tX2RvY3VtZW50X2dldF9sYXN0X2VsZW1lbnRfY2hpbGQoV2ViS2l0RE9NRG9jdW1lbnQqIHNl
bGYpOwogICogUmV0dXJuczogQSAjZ3Vsb25nCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Via2l0X2RvbV9kb2N1
bWVudF9nZXRfY2hpbGRfZWxlbWVudF9jb3VudChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAK
IEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
RG9jdW1lbnRGcmFnbWVudC5jcHAKaW5kZXggNDExNTMzNGU1Y2QuLmU4ZmVjNjlhMDhmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50RnJhZ21l
bnQuY3BwCkBAIC0zOSw2ICszOSw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50KiBraXQoV2Vi
Q29yZTo6RG9jdW1lbnRGcmFnbWVudCogb2JqKQpAQCAtMjYwLDMgKzI2Miw0IEBAIGd1bG9uZyB3
ZWJraXRfZG9tX2RvY3VtZW50X2ZyYWdtZW50X2dldF9jaGlsZF9lbGVtZW50X2NvdW50KFdlYktp
dERPTURvY3VtZW50RnJhCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorR19HTlVDX0VORF9JR05P
UkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50RnJhZ21lbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01Eb2N1bWVudEZyYWdtZW50LmgKaW5kZXggZjFhYjdiMjA0OTguLjA5NzY2OTJmMzRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudEZyYWdtZW50
LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01Eb2N1bWVudEZyYWdtZW50Q2xh
c3MgewogICAgIFdlYktpdERPTU5vZGVDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRf
QVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9kb2N1bWVudF9m
cmFnbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Niw4ICs1NiwxMCBAQCB3ZWJraXRf
ZG9tX2RvY3VtZW50X2ZyYWdtZW50X2dldF90eXBlKHZvaWQpOwogICogUmV0dXJuczogKHRyYW5z
ZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVtZW50CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwot
V0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9N
RWxlbWVudCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfZnJhZ21lbnRfZ2V0X2VsZW1lbnRfYnlfaWQo
V2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGVsZW1lbnRJZCk7
CiAKIC8qKgpAQCAtNjksOCArNzEsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9mcmFnbWVudF9n
ZXRfZWxlbWVudF9ieV9pZChXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50KiBzZWxmLAogICogUmV0
dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVtZW50CiAgKgogICogU2luY2U6
IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICAqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FU
RUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfZnJhZ21lbnRfcXVlcnlf
c2VsZWN0b3IoV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHNl
bGVjdG9ycywgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTgyLDggKzg2LDEwIEBAIHdlYmtp
dF9kb21fZG9jdW1lbnRfZnJhZ21lbnRfcXVlcnlfc2VsZWN0b3IoV2ViS2l0RE9NRG9jdW1lbnRG
cmFnbWVudCogc2VsZiwgY29uCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktp
dERPTU5vZGVMaXN0CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBXZWJLaXRE
T01Ob2RlTGlzdCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGVMaXN0Kgogd2Via2l0
X2RvbV9kb2N1bWVudF9mcmFnbWVudF9xdWVyeV9zZWxlY3Rvcl9hbGwoV2ViS2l0RE9NRG9jdW1l
bnRGcmFnbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHNlbGVjdG9ycywgR0Vycm9yKiogZXJyb3Ip
OwogCiAvKioKQEAgLTkzLDggKzk5LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZnJhZ21lbnRf
cXVlcnlfc2VsZWN0b3JfYWxsKFdlYktpdERPTURvY3VtZW50RnJhZ21lbnQqIHNlbGYsCiAgKiBS
ZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCiAgKgog
ICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioK
K1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgogd2Via2l0X2RvbV9k
b2N1bWVudF9mcmFnbWVudF9nZXRfY2hpbGRyZW4oV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMTA0LDggKzExMiwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2Zy
YWdtZW50X2dldF9jaGlsZHJlbihXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50KiBzZWxmKTsKICAq
IFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFNp
bmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRWxlbWVudCoKK1dFQktJVF9ERVBS
RUNBVEVEIFdlYktpdERPTUVsZW1lbnQqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2ZyYWdtZW50X2dl
dF9maXJzdF9lbGVtZW50X2NoaWxkKFdlYktpdERPTURvY3VtZW50RnJhZ21lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTExNSw4ICsxMjUsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9mcmFnbWVudF9n
ZXRfZmlyc3RfZWxlbWVudF9jaGlsZChXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50KgogICogUmV0
dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVtZW50CiAgKgogICogU2luY2U6
IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICAqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FU
RUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfZnJhZ21lbnRfZ2V0X2xh
c3RfZWxlbWVudF9jaGlsZChXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC0xMjYsOCArMTM4LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZnJhZ21lbnRfZ2V0X2xh
c3RfZWxlbWVudF9jaGlsZChXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50KiBzCiAgKiBSZXR1cm5z
OiBBICNndWxvbmcKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIGd1bG9uZwor
V0VCS0lUX0RFUFJFQ0FURUQgZ3Vsb25nCiB3ZWJraXRfZG9tX2RvY3VtZW50X2ZyYWdtZW50X2dl
dF9jaGlsZF9lbGVtZW50X2NvdW50KFdlYktpdERPTURvY3VtZW50RnJhZ21lbnQqIHNlbGYpOwog
CiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVu
dEd0ay5jcHAKc2ltaWxhcml0eSBpbmRleCA5OCUKcmVuYW1lIGZyb20gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50LmNw
cApyZW5hbWUgdG8gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTURvY3VtZW50R3RrLmNwcAppbmRleCA0YjkyOWU2MWI1Mi4uOTUwNTQx
ZjA5YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50R3Rr
LmNwcApAQCAtMjEsNyArMjEsNiBAQAogI2luY2x1ZGUgIldlYktpdERPTURvY3VtZW50LmgiCiAK
ICNpbmNsdWRlICJDb252ZXJ0VG9VVEY4U3RyaW5nLmgiCi0jaW5jbHVkZSAiRE9NT2JqZWN0Q2Fj
aGUuaCIKICNpbmNsdWRlICJHT2JqZWN0RXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIldlYktp
dERPTUF0dHJQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RE9NQ0RBVEFTZWN0aW9uUHJpdmF0
ZS5oIgpAQCAtNjAsMjUgKzU5LDcgQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgogCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotV2ViS2l0RE9NRG9jdW1l
bnQqIGtpdChXZWJDb3JlOjpEb2N1bWVudCogb2JqKQotewotICAgIHJldHVybiBXRUJLSVRfRE9N
X0RPQ1VNRU5UKGtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpOb2RlKj4ob2JqKSkpOwotfQotCi1X
ZWJDb3JlOjpEb2N1bWVudCogY29yZShXZWJLaXRET01Eb2N1bWVudCogcmVxdWVzdCkKLXsKLSAg
ICByZXR1cm4gcmVxdWVzdCA/IHN0YXRpY19jYXN0PFdlYkNvcmU6OkRvY3VtZW50Kj4oV0VCS0lU
X0RPTV9PQkpFQ1QocmVxdWVzdCktPmNvcmVPYmplY3QpIDogMDsKLX0KLQotV2ViS2l0RE9NRG9j
dW1lbnQqIHdyYXBEb2N1bWVudChXZWJDb3JlOjpEb2N1bWVudCogY29yZU9iamVjdCkKLXsKLSAg
ICBBU1NFUlQoY29yZU9iamVjdCk7Ci0gICAgcmV0dXJuIFdFQktJVF9ET01fRE9DVU1FTlQoZ19v
YmplY3RfbmV3KFdFQktJVF9ET01fVFlQRV9ET0NVTUVOVCwgImNvcmUtb2JqZWN0IiwgY29yZU9i
amVjdCwgbnVsbHB0cikpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKK0dfR05VQ19CRUdJ
Tl9JR05PUkVfREVQUkVDQVRJT05TOwogCiBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X2RvbV9kb2N1
bWVudF9kaXNwYXRjaF9ldmVudChXZWJLaXRET01FdmVudFRhcmdldCogdGFyZ2V0LCBXZWJLaXRE
T01FdmVudCogZXZlbnQsIEdFcnJvcioqIGVycm9yKQogewpAQCAtMTA4LDE1ICs4OSwxMyBAQCBz
dGF0aWMgZ2Jvb2xlYW4gd2Via2l0X2RvbV9kb2N1bWVudF9yZW1vdmVfZXZlbnRfbGlzdGVuZXIo
V2ViS2l0RE9NRXZlbnRUYXJnZXQqCiAgICAgcmV0dXJuIFdlYktpdDo6R09iamVjdEV2ZW50TGlz
dGVuZXI6OnJlbW92ZUV2ZW50TGlzdGVuZXIoR19PQkpFQ1QodGFyZ2V0KSwgY29yZVRhcmdldCwg
ZXZlbnROYW1lLCBoYW5kbGVyLCB1c2VDYXB0dXJlKTsKIH0KIAotc3RhdGljIHZvaWQgd2Via2l0
X2RvbV9kb2N1bWVudF9kb21fZXZlbnRfdGFyZ2V0X2luaXQoV2ViS2l0RE9NRXZlbnRUYXJnZXRJ
ZmFjZSogaWZhY2UpCit2b2lkIHdlYmtpdERPTURvY3VtZW50RE9NRXZlbnRUYXJnZXRJbml0KFdl
YktpdERPTUV2ZW50VGFyZ2V0SWZhY2UqIGlmYWNlKQogewogICAgIGlmYWNlLT5kaXNwYXRjaF9l
dmVudCA9IHdlYmtpdF9kb21fZG9jdW1lbnRfZGlzcGF0Y2hfZXZlbnQ7CiAgICAgaWZhY2UtPmFk
ZF9ldmVudF9saXN0ZW5lciA9IHdlYmtpdF9kb21fZG9jdW1lbnRfYWRkX2V2ZW50X2xpc3RlbmVy
OwogICAgIGlmYWNlLT5yZW1vdmVfZXZlbnRfbGlzdGVuZXIgPSB3ZWJraXRfZG9tX2RvY3VtZW50
X3JlbW92ZV9ldmVudF9saXN0ZW5lcjsKIH0KIAotR19ERUZJTkVfVFlQRV9XSVRIX0NPREUoV2Vi
S2l0RE9NRG9jdW1lbnQsIHdlYmtpdF9kb21fZG9jdW1lbnQsIFdFQktJVF9ET01fVFlQRV9OT0RF
LCBHX0lNUExFTUVOVF9JTlRFUkZBQ0UoV0VCS0lUX0RPTV9UWVBFX0VWRU5UX1RBUkdFVCwgd2Vi
a2l0X2RvbV9kb2N1bWVudF9kb21fZXZlbnRfdGFyZ2V0X2luaXQpKQotCiBlbnVtIHsKICAgICBE
T01fRE9DVU1FTlRfUFJPUF8wLAogICAgIERPTV9ET0NVTUVOVF9QUk9QX0RPQ1RZUEUsCkBAIC0z
NzQsOSArMzUzLDggQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfcHJvcGVy
dHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLAogICAgIH0KIH0KIAotc3RhdGlj
IHZvaWQgd2Via2l0X2RvbV9kb2N1bWVudF9jbGFzc19pbml0KFdlYktpdERPTURvY3VtZW50Q2xh
c3MqIHJlcXVlc3RDbGFzcykKK3ZvaWQgd2Via2l0RE9NRG9jdW1lbnRJbnN0YWxsUHJvcGVydGll
cyhHT2JqZWN0Q2xhc3MqIGdvYmplY3RDbGFzcykKIHsKLSAgICBHT2JqZWN0Q2xhc3MqIGdvYmpl
Y3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFzcyk7CiAgICAgZ29iamVjdENsYXNz
LT5zZXRfcHJvcGVydHkgPSB3ZWJraXRfZG9tX2RvY3VtZW50X3NldF9wcm9wZXJ0eTsKICAgICBn
b2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3Byb3Bl
cnR5OwogCkBAIC04OTIsMTEgKzg3MCw2IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fZG9jdW1l
bnRfY2xhc3NfaW5pdChXZWJLaXRET01Eb2N1bWVudENsYXNzKiByZXF1ZXN0Q2xhc3MpCiAKIH0K
IAotc3RhdGljIHZvaWQgd2Via2l0X2RvbV9kb2N1bWVudF9pbml0KFdlYktpdERPTURvY3VtZW50
KiByZXF1ZXN0KQotewotICAgIFVOVVNFRF9QQVJBTShyZXF1ZXN0KTsKLX0KLQogV2ViS2l0RE9N
RWxlbWVudCogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfZWxlbWVudChXZWJLaXRET01Eb2N1
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHRhZ05hbWUsIEdFcnJvcioqIGVycm9yKQogewogICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKQEAgLTIwMDgsMyArMTk4MSw0
IEBAIGd1bG9uZyB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jaGlsZF9lbGVtZW50X2NvdW50KFdl
YktpdERPTURvY3VtZW50KiBzZWxmKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0dfR05VQ19F
TkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudFR5cGUuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTURvY3VtZW50VHlwZS5jcHAKaW5kZXggYWM4N2Y2NDE3MDYuLjg4ODczYjI4MmYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRUeXBlLmNw
cApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NRG9jdW1lbnRUeXBlKiBraXQoV2ViQ29yZTo6RG9j
dW1lbnRUeXBlKiBvYmopCkBAIC0yNDksMyArMjUxLDQgQEAgZ2NoYXIqIHdlYmtpdF9kb21fZG9j
dW1lbnRfdHlwZV9nZXRfc3lzdGVtX2lkKFdlYktpdERPTURvY3VtZW50VHlwZSogc2VsZikKICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRUeXBlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRUeXBlLmgKaW5kZXgg
OGI4OTlhMTE2ZGEuLjM5YjUxMjIyNWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRUeXBlLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTURvY3VtZW50VHlwZS5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0
RE9NRG9jdW1lbnRUeXBlQ2xhc3MgewogICAgIFdlYktpdERPTU5vZGVDbGFzcyBwYXJlbnRfY2xh
c3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Vi
a2l0X2RvbV9kb2N1bWVudF90eXBlX2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUz
LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfdHlwZV9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01Eb2N1bWVudFR5cGUKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9t
X2RvY3VtZW50X3R5cGVfZ2V0X25hbWUoV2ViS2l0RE9NRG9jdW1lbnRUeXBlKiBzZWxmKTsKIAog
LyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X3R5cGVfZ2V0X25hbWUo
V2ViS2l0RE9NRG9jdW1lbnRUeXBlKiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1
bWVudFR5cGUKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTU5h
bWVkTm9kZU1hcAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5hbWVkTm9kZU1hcCoKK1dFQktJ
VF9ERVBSRUNBVEVEIFdlYktpdERPTU5hbWVkTm9kZU1hcCoKIHdlYmtpdF9kb21fZG9jdW1lbnRf
dHlwZV9nZXRfZW50aXRpZXMoV2ViS2l0RE9NRG9jdW1lbnRUeXBlKiBzZWxmKTsKIAogLyoqCkBA
IC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X3R5cGVfZ2V0X2VudGl0aWVzKFdl
YktpdERPTURvY3VtZW50VHlwZSogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1l
bnRUeXBlCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01OYW1l
ZE5vZGVNYXAKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01OYW1lZE5vZGVNYXAqCitXRUJLSVRf
REVQUkVDQVRFRCBXZWJLaXRET01OYW1lZE5vZGVNYXAqCiB3ZWJraXRfZG9tX2RvY3VtZW50X3R5
cGVfZ2V0X25vdGF0aW9ucyhXZWJLaXRET01Eb2N1bWVudFR5cGUqIHNlbGYpOwogCiAvKioKQEAg
LTgwLDggKzg2LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfdHlwZV9nZXRfbm90YXRpb25zKFdl
YktpdERPTURvY3VtZW50VHlwZSogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1l
bnRUeXBlCiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioK
K1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF90eXBlX2dldF9p
bnRlcm5hbF9zdWJzZXQoV2ViS2l0RE9NRG9jdW1lbnRUeXBlKiBzZWxmKTsKIAogLyoqCkBAIC04
OSw4ICs5NywxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X3R5cGVfZ2V0X2ludGVybmFsX3N1YnNl
dChXZWJLaXRET01Eb2N1bWVudFR5cGUqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURv
Y3VtZW50VHlwZQogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2No
YXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9jdW1lbnRfdHlwZV9n
ZXRfcHVibGljX2lkKFdlYktpdERPTURvY3VtZW50VHlwZSogc2VsZik7CiAKIC8qKgpAQCAtOTgs
OCArMTA4LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfdHlwZV9nZXRfcHVibGljX2lkKFdlYktp
dERPTURvY3VtZW50VHlwZSogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnRU
eXBlCiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dF
QktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF90eXBlX2dldF9zeXN0
ZW1faWQoV2ViS2l0RE9NRG9jdW1lbnRUeXBlKiBzZWxmKTsKIAogR19FTkRfREVDTFMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01FbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudC5oCmluZGV4IGRiYTc1MWUwY2MzLi5i
ZDIxZWRiMmQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudC5o
CkBAIC00NiwxMCArNDYsMjUgQEAgc3RydWN0IF9XZWJLaXRET01FbGVtZW50Q2xhc3MgewogfTsK
IAogV0VCS0lUX0FQSSBHVHlwZQotd2Via2l0X2RvbV9lbGVtZW50X2dldF90eXBlKHZvaWQpOwor
d2Via2l0X2RvbV9lbGVtZW50X2dldF90eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
dm9pZCk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9kb21fZWxlbWVudF9odG1sX2lu
cHV0X2VsZW1lbnRfaXNfdXNlcl9lZGl0ZWQgICAgKFdlYktpdERPTUVsZW1lbnQgKmVsZW1lbnQp
OworCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9l
bGVtZW50X2dldF9hdXRvX2ZpbGxlZCAgIChXZWJLaXRET01FbGVtZW50ICplbGVtZW50KTsKKwor
V0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X3Nl
dF9hdXRvX2ZpbGxlZCAgIChXZWJLaXRET01FbGVtZW50ICplbGVtZW50LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAg
ICAgICAgYXV0b19maWxsZWQpOworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZG9tX2VsZW1lbnRf
aHRtbF9pbnB1dF9lbGVtZW50X3NldF9lZGl0aW5nX3ZhbHVlIChXZWJLaXRET01FbGVtZW50ICpl
bGVtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgY2hhciAgICAgICAqdmFsdWUpOwogCiAvKioKICAqIFdFQktJVF9ET01f
RUxFTUVOVF9BTExPV19LRVlCT0FSRF9JTlBVVDoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0VM
RU1FTlRfQUxMT1dfS0VZQk9BUkRfSU5QVVQgMQogCkBAIC01OSw4ICs3NCwxMCBAQCB3ZWJraXRf
ZG9tX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAbmFtZTogQSAjZ2NoYXIKICAqCiAgKiBS
ZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2F0dHJpYnV0ZShXZWJLaXRET01FbGVt
ZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZSk7CiAKIC8qKgpAQCAtNzAsOCArODcsMTAgQEAg
d2Via2l0X2RvbV9lbGVtZW50X2dldF9hdHRyaWJ1dGUoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIG5hbWUpOwogICogQHZhbHVlOiBBICNnY2hhcgogICogQGVycm9yOiAjR0Vy
cm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21fZWxlbWVudF9zZXRfYXR0cmlidXRlKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyKiBuYW1lLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKIAog
LyoqCkBAIC03OSw4ICs5OCwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X2F0dHJpYnV0ZShX
ZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZSwgY29ucwogICogQHNlbGY6
IEEgI1dlYktpdERPTUVsZW1lbnQKICAqIEBuYW1lOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRfcmVt
b3ZlX2F0dHJpYnV0ZShXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZSk7
CiAKIC8qKgpAQCAtODksOCArMTEwLDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9yZW1vdmVfYXR0
cmlidXRlKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lKTsKICAqIEBu
YW1lOiBBICNnY2hhcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0
RE9NQXR0cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUF0dHIqCitXRUJLSVRfREVQUkVDQVRF
RCBXZWJLaXRET01BdHRyKgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9hdHRyaWJ1dGVfbm9kZShX
ZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZSk7CiAKIC8qKgpAQCAtMTAw
LDggKzEyMywxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2F0dHJpYnV0ZV9ub2RlKFdlYktp
dERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lKQogICogQGVycm9yOiAjR0Vycm9y
CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01BdHRyCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgV2ViS2l0RE9NQXR0cioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUF0
dHIqCiB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X2F0dHJpYnV0ZV9ub2RlKFdlYktpdERPTUVsZW1l
bnQqIHNlbGYsIFdlYktpdERPTUF0dHIqIG5ld0F0dHIsIEdFcnJvcioqIGVycm9yKTsKIAogLyoq
CkBAIC0xMTEsOCArMTM2LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9zZXRfYXR0cmlidXRlX25v
ZGUoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgV2ViS2l0RE9NQXR0ciogbmV3CiAgKiBAZXJyb3I6
ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUF0
dHIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01BdHRyKgorV0VCS0lUX0RFUFJFQ0FURUQgV2Vi
S2l0RE9NQXR0cioKIHdlYmtpdF9kb21fZWxlbWVudF9yZW1vdmVfYXR0cmlidXRlX25vZGUoV2Vi
S2l0RE9NRWxlbWVudCogc2VsZiwgV2ViS2l0RE9NQXR0ciogb2xkQXR0ciwgR0Vycm9yKiogZXJy
b3IpOwogCiAvKioKQEAgLTEyMyw4ICsxNTAsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X3JlbW92
ZV9hdHRyaWJ1dGVfbm9kZShXZWJLaXRET01FbGVtZW50KiBzZWxmLCBXZWJLaXRET01BdHRyKgog
ICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1MQ29sbGVjdGlvbgog
ICoKICAqIFNpbmNlOiAyLjEyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTENvbGxlY3Rp
b24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKIHdlYmtpdF9k
b21fZWxlbWVudF9nZXRfZWxlbWVudHNfYnlfdGFnX25hbWVfYXNfaHRtbF9jb2xsZWN0aW9uKFdl
YktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lKTsKIAogLyoqCkBAIC0xMzIs
OCArMTYxLDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfZWxlbWVudHNfYnlfdGFnX25hbWVf
YXNfaHRtbF9jb2xsZWN0aW9uKFdlYktpdERPTUVsZW1lbnQqCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2VsZW1lbnRf
aGFzX2F0dHJpYnV0ZXMoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTQzLDgg
KzE3NCwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfaGFzX2F0dHJpYnV0ZXMoV2ViS2l0RE9NRWxl
bWVudCogc2VsZik7CiAgKiBAbG9jYWxOYW1lOiBBICNnY2hhcgogICoKICAqIFJldHVybnM6IEEg
I2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioK
IHdlYmtpdF9kb21fZWxlbWVudF9nZXRfYXR0cmlidXRlX25zKFdlYktpdERPTUVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiBuYW1lc3BhY2VVUkksIGNvbnN0IGdjaGFyKiBsb2NhbE5hbWUpOwog
CiAvKioKQEAgLTE1NSw4ICsxODgsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9hdHRyaWJ1
dGVfbnMoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWVzcGEKICAqIEB2
YWx1ZTogQSAjZ2NoYXIKICAqIEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X2F0dHJp
YnV0ZV9ucyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZXNwYWNlVVJJ
LCBjb25zdCBnY2hhciogcXVhbGlmaWVkTmFtZSwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3Iq
KiBlcnJvcik7CiAKIC8qKgpAQCAtMTY1LDggKzIwMCwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRf
c2V0X2F0dHJpYnV0ZV9ucyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFt
ZXNwYQogICogQG5hbWVzcGFjZVVSSTogQSAjZ2NoYXIKICAqIEBsb2NhbE5hbWU6IEEgI2djaGFy
CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtp
dF9kb21fZWxlbWVudF9yZW1vdmVfYXR0cmlidXRlX25zKFdlYktpdERPTUVsZW1lbnQqIHNlbGYs
IGNvbnN0IGdjaGFyKiBuYW1lc3BhY2VVUkksIGNvbnN0IGdjaGFyKiBsb2NhbE5hbWUpOwogCiAv
KioKQEAgLTE3OCw4ICsyMTUsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X3JlbW92ZV9hdHRyaWJ1
dGVfbnMoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWUKICAqIFJldHVy
bnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24KICAqCiAgKiBT
aW5jZTogMi4xMgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgorV0VC
S0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCiB3ZWJraXRfZG9tX2VsZW1l
bnRfZ2V0X2VsZW1lbnRzX2J5X3RhZ19uYW1lX25zX2FzX2h0bWxfY29sbGVjdGlvbihXZWJLaXRE
T01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZXNwYWNlVVJJLCBjb25zdCBnY2hhciog
bG9jYWxOYW1lKTsKIAogLyoqCkBAIC0xODksOCArMjI4LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVu
dF9nZXRfZWxlbWVudHNfYnlfdGFnX25hbWVfbnNfYXNfaHRtbF9jb2xsZWN0aW9uKFdlYktpdERP
TUVsZW1lCiAgKiBAbG9jYWxOYW1lOiBBICNnY2hhcgogICoKICAqIFJldHVybnM6ICh0cmFuc2Zl
ciBub25lKTogQSAjV2ViS2l0RE9NQXR0cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUF0dHIq
CitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01BdHRyKgogd2Via2l0X2RvbV9lbGVtZW50X2dl
dF9hdHRyaWJ1dGVfbm9kZV9ucyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciog
bmFtZXNwYWNlVVJJLCBjb25zdCBnY2hhciogbG9jYWxOYW1lKTsKIAogLyoqCkBAIC0yMDAsOCAr
MjQxLDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfYXR0cmlidXRlX25vZGVfbnMoV2ViS2l0
RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAq
CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUF0dHIKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBXZWJLaXRET01BdHRyKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NQXR0cioK
IHdlYmtpdF9kb21fZWxlbWVudF9zZXRfYXR0cmlidXRlX25vZGVfbnMoV2ViS2l0RE9NRWxlbWVu
dCogc2VsZiwgV2ViS2l0RE9NQXR0ciogbmV3QXR0ciwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioK
QEAgLTIxMCw4ICsyNTMsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X3NldF9hdHRyaWJ1dGVfbm9k
ZV9ucyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBXZWJLaXRET01BdHRyKgogICogQG5hbWU6IEEg
I2djaGFyCiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9v
bGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZWxlbWVudF9oYXNf
YXR0cmlidXRlKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lKTsKIAog
LyoqCkBAIC0yMjEsMjQgKzI2NiwzMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfaGFzX2F0dHJpYnV0
ZShXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZSk7CiAgKiBAbG9jYWxO
YW1lOiBBICNnY2hhcgogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2VsZW1l
bnRfaGFzX2F0dHJpYnV0ZV9ucyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciog
bmFtZXNwYWNlVVJJLCBjb25zdCBnY2hhciogbG9jYWxOYW1lKTsKIAogLyoqCiAgKiB3ZWJraXRf
ZG9tX2VsZW1lbnRfZm9jdXM6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2Vs
ZW1lbnRfZm9jdXMoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAKIC8qKgogICogd2Via2l0X2Rv
bV9lbGVtZW50X2JsdXI6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1l
bnRfYmx1cihXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNDYsOCArMjk3LDEw
IEBAIHdlYmtpdF9kb21fZWxlbWVudF9ibHVyKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqIEBhbGlnbldpdGhUb3A6IEEgI2dib29sZWFu
CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtp
dF9kb21fZWxlbWVudF9zY3JvbGxfaW50b192aWV3KFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGdi
b29sZWFuIGFsaWduV2l0aFRvcCk7CiAKIC8qKgpAQCAtMjU1LDggKzMwOCwxMCBAQCB3ZWJraXRf
ZG9tX2VsZW1lbnRfc2Nyb2xsX2ludG9fdmlldyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBnYm9v
bGVhbiBhbGlnbldpdGhUbwogICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqIEBjZW50
ZXJJZk5lZWRlZDogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9lbGVtZW50X3Njcm9sbF9pbnRvX3ZpZXdfaWZf
bmVlZGVkKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGdib29sZWFuIGNlbnRlcklmTmVlZGVkKTsK
IAogLyoqCkBAIC0yNjQsOCArMzE5LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9zY3JvbGxfaW50
b192aWV3X2lmX25lZWRlZChXZWJLaXRET01FbGVtZW50KiBzZWxmLCBnYm9vbGVhbiBjCiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICogQGxpbmVzOiBBICNnbG9uZwogICoKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1l
bnRfc2Nyb2xsX2J5X2xpbmVzKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGdsb25nIGxpbmVzKTsK
IAogLyoqCkBAIC0yNzMsOCArMzMwLDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9zY3JvbGxfYnlf
bGluZXMoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgZ2xvbmcgbGluZXMpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUVsZW1lbnQKICAqIEBwYWdlczogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9lbGVtZW50X3Njcm9s
bF9ieV9wYWdlcyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBnbG9uZyBwYWdlcyk7CiAKIC8qKgpA
QCAtMjg1LDggKzM0NCwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfc2Nyb2xsX2J5X3BhZ2VzKFdl
YktpdERPTUVsZW1lbnQqIHNlbGYsIGdsb25nIHBhZ2VzKTsKICAqIFJldHVybnM6ICh0cmFuc2Zl
ciBmdWxsKTogQSAjV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24KICAqCiAgKiBTaW5jZTogMi4xMgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgorV0VCS0lUX0RFUFJFQ0FU
RUQgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2VsZW1l
bnRzX2J5X2NsYXNzX25hbWVfYXNfaHRtbF9jb2xsZWN0aW9uKFdlYktpdERPTUVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiBuYW1lKTsKIAogLyoqCkBAIC0yOTYsOCArMzU3LDEwIEBAIHdlYmtp
dF9kb21fZWxlbWVudF9nZXRfZWxlbWVudHNfYnlfY2xhc3NfbmFtZV9hc19odG1sX2NvbGxlY3Rp
b24oV2ViS2l0RE9NRWxlbWVuCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAo
dHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJL
aXRET01FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtp
dF9kb21fZWxlbWVudF9xdWVyeV9zZWxlY3RvcihXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogc2VsZWN0b3JzLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMzA3LDggKzM3
MCwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfcXVlcnlfc2VsZWN0b3IoV2ViS2l0RE9NRWxlbWVu
dCogc2VsZiwgY29uc3QgZ2NoYXIqIHNlbGVjdG9ycwogICogQGVycm9yOiAjR0Vycm9yCiAgKgog
ICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01Ob2RlTGlzdAorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIFdlYktpdERPTU5vZGVMaXN0KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9N
Tm9kZUxpc3QqCiB3ZWJraXRfZG9tX2VsZW1lbnRfcXVlcnlfc2VsZWN0b3JfYWxsKFdlYktpdERP
TUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBzZWxlY3RvcnMsIEdFcnJvcioqIGVycm9yKTsK
IAogLyoqCkBAIC0zMTYsOCArMzgxLDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9xdWVyeV9zZWxl
Y3Rvcl9hbGwoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHNlbGVjCiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21f
ZWxlbWVudF9nZXRfdGFnX25hbWUoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
MzI1LDggKzM5MiwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3RhZ19uYW1lKFdlYktpdERP
TUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTU5hbWVkTm9kZU1hcAorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIFdlYktpdERPTU5hbWVkTm9kZU1hcCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktp
dERPTU5hbWVkTm9kZU1hcCoKIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfYXR0cmlidXRlcyhXZWJL
aXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0zMzQsOCArNDAzLDEwIEBAIHdlYmtpdF9k
b21fZWxlbWVudF9nZXRfYXR0cmlidXRlcyhXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01FbGVtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwp
OiBBICNXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0
RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUNTU1N0
eWxlRGVjbGFyYXRpb24qCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3N0eWxlKFdlYktpdERPTUVs
ZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTM0Myw4ICs0MTQsMTAgQEAgd2Via2l0X2RvbV9lbGVt
ZW50X2dldF9zdHlsZShXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01FbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Y2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9p
ZChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0zNTIsOCArNDI1LDEwIEBAIHdl
YmtpdF9kb21fZWxlbWVudF9nZXRfaWQoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRf
c2V0X2lkKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8q
KgpAQCAtMzYzLDggKzQzOCwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X2lkKFdlYktpdERP
TUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAgKiBSZXR1cm5zOiBBICNnY2hh
cgogICoKICAqIFNpbmNlOiAyLjE0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfbmFtZXNwYWNlX3VyaShXZWJL
aXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0zNzQsOCArNDUxLDEwIEBAIHdlYmtpdF9k
b21fZWxlbWVudF9nZXRfbmFtZXNwYWNlX3VyaShXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKICAq
IFJldHVybnM6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTQKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Y2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9w
cmVmaXgoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMzg1LDggKzQ2NCwxMCBA
QCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3ByZWZpeChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsK
ICAqIFJldHVybnM6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTQKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9lbGVtZW50X2dl
dF9sb2NhbF9uYW1lKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTM5NCw4ICs0
NzUsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9sb2NhbF9uYW1lKFdlYktpdERPTUVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnZG91YmxlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2RvdWJsZQorV0VCS0lUX0RFUFJFQ0FURUQg
Z2RvdWJsZQogd2Via2l0X2RvbV9lbGVtZW50X2dldF9vZmZzZXRfbGVmdChXZWJLaXRET01FbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC00MDMsOCArNDg2LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVu
dF9nZXRfb2Zmc2V0X2xlZnQoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dkb3VibGUKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnZG91YmxlCitXRUJLSVRfREVQUkVDQVRFRCBnZG91YmxlCiB3ZWJraXRfZG9tX2VsZW1l
bnRfZ2V0X29mZnNldF90b3AoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNDEy
LDggKzQ5NywxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X29mZnNldF90b3AoV2ViS2l0RE9N
RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJl
dHVybnM6IEEgI2dkb3VibGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnZG91YmxlCitXRUJLSVRfREVQUkVD
QVRFRCBnZG91YmxlCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X29mZnNldF93aWR0aChXZWJLaXRE
T01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC00MjEsOCArNTA4LDEwIEBAIHdlYmtpdF9kb21f
ZWxlbWVudF9nZXRfb2Zmc2V0X3dpZHRoKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnZG91YmxlCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2RvdWJsZQorV0VCS0lUX0RFUFJFQ0FURUQgZ2RvdWJsZQogd2Via2l0X2Rv
bV9lbGVtZW50X2dldF9vZmZzZXRfaGVpZ2h0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTQzMCw4ICs1MTksMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9vZmZzZXRfaGVp
Z2h0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnZG91YmxlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2RvdWJsZQor
V0VCS0lUX0RFUFJFQ0FURUQgZ2RvdWJsZQogd2Via2l0X2RvbV9lbGVtZW50X2dldF9jbGllbnRf
bGVmdChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC00MzksOCArNTMwLDEwIEBA
IHdlYmtpdF9kb21fZWxlbWVudF9nZXRfY2xpZW50X2xlZnQoV2ViS2l0RE9NRWxlbWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dk
b3VibGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnZG91YmxlCitXRUJLSVRfREVQUkVDQVRFRCBnZG91Ymxl
CiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2NsaWVudF90b3AoV2ViS2l0RE9NRWxlbWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtNDQ4LDggKzU0MSwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2Ns
aWVudF90b3AoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dkb3VibGUKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnZG91
YmxlCitXRUJLSVRfREVQUkVDQVRFRCBnZG91YmxlCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2Ns
aWVudF93aWR0aChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC00NTcsOCArNTUy
LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfY2xpZW50X3dpZHRoKFdlYktpdERPTUVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnZG91YmxlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2RvdWJsZQorV0VCS0lUX0RFUFJFQ0FURUQg
Z2RvdWJsZQogd2Via2l0X2RvbV9lbGVtZW50X2dldF9jbGllbnRfaGVpZ2h0KFdlYktpdERPTUVs
ZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTQ2Niw4ICs1NjMsMTAgQEAgd2Via2l0X2RvbV9lbGVt
ZW50X2dldF9jbGllbnRfaGVpZ2h0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9lbGVtZW50
X2dldF9zY3JvbGxfbGVmdChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC00NzUs
OCArNTc0LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfc2Nyb2xsX2xlZnQoV2ViS2l0RE9N
RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICogQHZhbHVl
OiBBICNnbG9uZwogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2
b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X3Njcm9sbF9sZWZ0KFdlYktpdERPTUVsZW1lbnQq
IHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCkBAIC00ODQsOCArNTg1LDEwIEBAIHdlYmtpdF9k
b21fZWxlbWVudF9zZXRfc2Nyb2xsX2xlZnQoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgZ2xvbmcg
dmFsdWUpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwog
d2Via2l0X2RvbV9lbGVtZW50X2dldF9zY3JvbGxfdG9wKFdlYktpdERPTUVsZW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTQ5Myw4ICs1OTYsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9zY3Jv
bGxfdG9wKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUVs
ZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9lbGVtZW50X3NldF9zY3JvbGxfdG9wKFdl
YktpdERPTUVsZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCkBAIC01MDIsOCArNjA3
LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9zZXRfc2Nyb2xsX3RvcChXZWJLaXRET01FbGVtZW50
KiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoK
ICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBS
RUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3Njcm9sbF93aWR0aChXZWJLaXRE
T01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC01MTEsOCArNjE4LDEwIEBAIHdlYmtpdF9kb21f
ZWxlbWVudF9nZXRfc2Nyb2xsX3dpZHRoKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9lbGVt
ZW50X2dldF9zY3JvbGxfaGVpZ2h0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTUyNSw4ICs2MzQsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9zY3JvbGxfaGVpZ2h0KFdl
YktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNX
ZWJLaXRET01DbGllbnRSZWN0CiAgKgogICogU2luY2U6IDIuMTgKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBX
ZWJLaXRET01DbGllbnRSZWN0KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NQ2xpZW50UmVj
dCoKIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfYm91bmRpbmdfY2xpZW50X3JlY3QoV2ViS2l0RE9N
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNTM5LDggKzY1MCwxMCBAQCB3ZWJraXRfZG9tX2Vs
ZW1lbnRfZ2V0X2JvdW5kaW5nX2NsaWVudF9yZWN0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwog
ICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01DbGllbnRSZWN0TGlzdAog
ICoKICAqIFNpbmNlOiAyLjE4CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NQ2xpZW50UmVjdExp
c3QqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01DbGllbnRSZWN0TGlzdCoKIHdlYmtpdF9k
b21fZWxlbWVudF9nZXRfY2xpZW50X3JlY3RzKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTU0OCw4ICs2NjEsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9jbGllbnRfcmVj
dHMoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVu
dAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJL
aXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9vZmZzZXRfcGFyZW50KFdlYktp
dERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTU1OSw4ICs2NzQsMTAgQEAgd2Via2l0X2Rv
bV9lbGVtZW50X2dldF9vZmZzZXRfcGFyZW50KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICog
UmV0dXJuczogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi44CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2No
YXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfaW5u
ZXJfaHRtbChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC01NzAsOCArNjg3LDEw
IEBAIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfaW5uZXJfaHRtbChXZWJLaXRET01FbGVtZW50KiBz
ZWxmKTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFNpbmNlOiAyLjgKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0
X2lubmVyX2h0bWwoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBH
RXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtNTgxLDggKzcwMCwxMCBAQCB3ZWJraXRfZG9tX2Vs
ZW1lbnRfc2V0X2lubmVyX2h0bWwoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IHZhbHVlLCBHRQogICogUmV0dXJuczogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi44CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21f
ZWxlbWVudF9nZXRfb3V0ZXJfaHRtbChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC01OTIsOCArNzEzLDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfb3V0ZXJfaHRtbChXZWJL
aXRET01FbGVtZW50KiBzZWxmKTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFNpbmNlOiAy
LjgKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRf
ZG9tX2VsZW1lbnRfc2V0X291dGVyX2h0bWwoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3Qg
Z2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtNjAxLDggKzcyNCwxMCBA
QCB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X291dGVyX2h0bWwoV2ViS2l0RE9NRWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRQogICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2NsYXNzX25hbWUoV2Vi
S2l0RE9NRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjEwLDggKzczNSwxMCBAQCB3ZWJraXRf
ZG9tX2VsZW1lbnRfZ2V0X2NsYXNzX25hbWUoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1l
bnRfc2V0X2NsYXNzX25hbWUoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlKTsKIAogLyoqCkBAIC02MTksOCArNzQ2LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9zZXRf
Y2xhc3NfbmFtZShXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
bm9uZSk6IEEgI1dlYktpdERPTUVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVt
ZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZWxl
bWVudF9nZXRfcHJldmlvdXNfZWxlbWVudF9zaWJsaW5nKFdlYktpdERPTUVsZW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTYyOCw4ICs3NTcsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9wcmV2
aW91c19lbGVtZW50X3NpYmxpbmcoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAj
V2ViS2l0RE9NRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCitXRUJL
SVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9u
ZXh0X2VsZW1lbnRfc2libGluZyhXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02
MzksOCArNzcwLDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfbmV4dF9lbGVtZW50X3NpYmxp
bmcoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6
IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCiAgKgogICogU2luY2U6IDIuMTAKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktp
dERPTUhUTUxDb2xsZWN0aW9uKgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9jaGlsZHJlbihXZWJL
aXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02NDgsOCArNzgxLDEwIEBAIHdlYmtpdF9k
b21fZWxlbWVudF9nZXRfY2hpbGRyZW4oV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTog
QSAjV2ViS2l0RE9NRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCitX
RUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9lbGVtZW50X2dl
dF9maXJzdF9lbGVtZW50X2NoaWxkKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTY1Nyw4ICs3OTIsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9maXJzdF9lbGVtZW50X2No
aWxkKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUVsZW1lbnQK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2Vi
S2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfbGFzdF9lbGVtZW50X2NoaWxk
KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTY2Niw4ICs4MDMsMTAgQEAgd2Vi
a2l0X2RvbV9lbGVtZW50X2dldF9sYXN0X2VsZW1lbnRfY2hpbGQoV2ViS2l0RE9NRWxlbWVudCog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJldHVybnM6IEEg
I2d1bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGd1bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vsb25n
CiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2NoaWxkX2VsZW1lbnRfY291bnQoV2ViS2l0RE9NRWxl
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjc5LDggKzgxOCwxMCBAQCB3ZWJraXRfZG9tX2VsZW1l
bnRfZ2V0X2NoaWxkX2VsZW1lbnRfY291bnQoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBS
ZXR1cm5zOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2VsZW1lbnRf
bWF0Y2hlcyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogc2VsZWN0b3JzLCBH
RXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtNjkyLDggKzgzMywxMCBAQCB3ZWJraXRfZG9tX2Vs
ZW1lbnRfbWF0Y2hlcyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogc2VsZWN0
b3JzLCBHRXJybwogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVt
ZW50CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50
KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZWxlbWVu
dF9jbG9zZXN0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBzZWxlY3RvcnMs
IEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC03MDUsOCArODQ4LDEwIEBAIHdlYmtpdF9kb21f
ZWxlbWVudF9jbG9zZXN0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBzZWxl
Y3RvcnMsIEdFcnJvCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3
ZWJraXRfZG9tX2VsZW1lbnRfd2Via2l0X21hdGNoZXNfc2VsZWN0b3IoV2ViS2l0RE9NRWxlbWVu
dCogc2VsZiwgY29uc3QgZ2NoYXIqIHNlbGVjdG9ycywgR0Vycm9yKiogZXJyb3IpOwogCiAvKioK
QEAgLTcxNCw4ICs4NTksMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X3dlYmtpdF9tYXRjaGVzX3Nl
bGVjdG9yKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKgogICogQHNlbGY6IEEg
I1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZWxlbWVudF93ZWJraXRfcmVx
dWVzdF9mdWxsc2NyZWVuKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTcyOCw4
ICs4NzUsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X3dlYmtpdF9yZXF1ZXN0X2Z1bGxzY3JlZW4o
V2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEg
I1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdl
YktpdERPTUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Vi
a2l0X2RvbV9lbGVtZW50X2luc2VydF9hZGphY2VudF9lbGVtZW50KFdlYktpdERPTUVsZW1lbnQq
IHNlbGYsIGNvbnN0IGdjaGFyKiB3aGVyZSwgV2ViS2l0RE9NRWxlbWVudCogZWxlbWVudCwgR0Vy
cm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTc0MCw4ICs4ODksMTAgQEAgd2Via2l0X2RvbV9lbGVt
ZW50X2luc2VydF9hZGphY2VudF9lbGVtZW50KFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0
IGdjaGFyKgogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRf
aW5zZXJ0X2FkamFjZW50X2h0bWwoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IHdoZXJlLCBjb25zdCBnY2hhciogaHRtbCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTc1
Miw4ICs5MDMsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2luc2VydF9hZGphY2VudF9odG1sKFdl
YktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB3aGUKICAqIEBlcnJvcjogI0dFcnJv
cgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9lbGVtZW50X2luc2VydF9hZGphY2VudF90ZXh0KFdlYktp
dERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB3aGVyZSwgY29uc3QgZ2NoYXIqIHRleHQs
IEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC03NjEsOCArOTE0LDEwIEBAIHdlYmtpdF9kb21f
ZWxlbWVudF9pbnNlcnRfYWRqYWNlbnRfdGV4dChXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogd2hlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFNpbmNl
OiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9lbGVtZW50X3JlcXVlc3RfcG9pbnRlcl9sb2NrKFdlYktpdERPTUVsZW1lbnQqIHNl
bGYpOwogCiAvKioKQEAgLTc3MSw4ICs5MjYsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X3JlcXVl
c3RfcG9pbnRlcl9sb2NrKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogQGVycm9yOiAjR0Vy
cm9yCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRfcmVtb3ZlKFdlYktpdERPTUVsZW1lbnQq
IHNlbGYsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC03ODIsOCArOTM5LDEwIEBAIHdlYmtp
dF9kb21fZWxlbWVudF9yZW1vdmUoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgR0Vycm9yKiogZXJy
b3IpOwogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01ET01Ub2tlbkxp
c3QKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTURPTVRva2Vu
TGlzdCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTURPTVRva2VuTGlzdCoKIHdlYmtpdF9k
b21fZWxlbWVudF9nZXRfY2xhc3NfbGlzdChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogR19F
TkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FbGVtZW50R3RrLmNw
cApzaW1pbGFyaXR5IGluZGV4IDk4JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudC5jcHAKcmVuYW1l
IHRvIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01FbGVtZW50R3RrLmNwcAppbmRleCA3YTgyNjMzYTU4YS4uMzFhMTU4ZWRlZmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudEd0ay5jcHAKQEAgLTIx
LDcgKzIxLDYgQEAKICNpbmNsdWRlICJXZWJLaXRET01FbGVtZW50LmgiCiAKICNpbmNsdWRlIDxX
ZWJDb3JlL0NTU0ltcG9ydFJ1bGUuaD4KLSNpbmNsdWRlICJET01PYmplY3RDYWNoZS5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRE9NRXhjZXB0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ET01SZWN0
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgpAQCAtNDcsMjUgKzQ2LDcgQEAKICNp
bmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCi1uYW1lc3Bh
Y2UgV2ViS2l0IHsKLQotV2ViS2l0RE9NRWxlbWVudCoga2l0KFdlYkNvcmU6OkVsZW1lbnQqIG9i
aikKLXsKLSAgICByZXR1cm4gV0VCS0lUX0RPTV9FTEVNRU5UKGtpdChzdGF0aWNfY2FzdDxXZWJD
b3JlOjpOb2RlKj4ob2JqKSkpOwotfQotCi1XZWJDb3JlOjpFbGVtZW50KiBjb3JlKFdlYktpdERP
TUVsZW1lbnQqIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIHJlcXVlc3QgPyBzdGF0aWNfY2FzdDxX
ZWJDb3JlOjpFbGVtZW50Kj4oV0VCS0lUX0RPTV9PQkpFQ1QocmVxdWVzdCktPmNvcmVPYmplY3Qp
IDogMDsKLX0KLQotV2ViS2l0RE9NRWxlbWVudCogd3JhcEVsZW1lbnQoV2ViQ29yZTo6RWxlbWVu
dCogY29yZU9iamVjdCkKLXsKLSAgICBBU1NFUlQoY29yZU9iamVjdCk7Ci0gICAgcmV0dXJuIFdF
QktJVF9ET01fRUxFTUVOVChnX29iamVjdF9uZXcoV0VCS0lUX0RPTV9UWVBFX0VMRU1FTlQsICJj
b3JlLW9iamVjdCIsIGNvcmVPYmplY3QsIG51bGxwdHIpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKIAogc3RhdGljIGdib29s
ZWFuIHdlYmtpdF9kb21fZWxlbWVudF9kaXNwYXRjaF9ldmVudChXZWJLaXRET01FdmVudFRhcmdl
dCogdGFyZ2V0LCBXZWJLaXRET01FdmVudCogZXZlbnQsIEdFcnJvcioqIGVycm9yKQogewpAQCAt
OTUsMTUgKzc2LDEzIEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRfZG9tX2VsZW1lbnRfcmVtb3Zl
X2V2ZW50X2xpc3RlbmVyKFdlYktpdERPTUV2ZW50VGFyZ2V0KiB0CiAgICAgcmV0dXJuIFdlYktp
dDo6R09iamVjdEV2ZW50TGlzdGVuZXI6OnJlbW92ZUV2ZW50TGlzdGVuZXIoR19PQkpFQ1QodGFy
Z2V0KSwgY29yZVRhcmdldCwgZXZlbnROYW1lLCBoYW5kbGVyLCB1c2VDYXB0dXJlKTsKIH0KIAot
c3RhdGljIHZvaWQgd2Via2l0X2RvbV9lbGVtZW50X2RvbV9ldmVudF90YXJnZXRfaW5pdChXZWJL
aXRET01FdmVudFRhcmdldElmYWNlKiBpZmFjZSkKK3ZvaWQgd2Via2l0RE9NRWxlbWVudERPTUV2
ZW50VGFyZ2V0SW5pdChXZWJLaXRET01FdmVudFRhcmdldElmYWNlKiBpZmFjZSkKIHsKICAgICBp
ZmFjZS0+ZGlzcGF0Y2hfZXZlbnQgPSB3ZWJraXRfZG9tX2VsZW1lbnRfZGlzcGF0Y2hfZXZlbnQ7
CiAgICAgaWZhY2UtPmFkZF9ldmVudF9saXN0ZW5lciA9IHdlYmtpdF9kb21fZWxlbWVudF9hZGRf
ZXZlbnRfbGlzdGVuZXI7CiAgICAgaWZhY2UtPnJlbW92ZV9ldmVudF9saXN0ZW5lciA9IHdlYmtp
dF9kb21fZWxlbWVudF9yZW1vdmVfZXZlbnRfbGlzdGVuZXI7CiB9CiAKLUdfREVGSU5FX1RZUEVf
V0lUSF9DT0RFKFdlYktpdERPTUVsZW1lbnQsIHdlYmtpdF9kb21fZWxlbWVudCwgV0VCS0lUX0RP
TV9UWVBFX05PREUsIEdfSU1QTEVNRU5UX0lOVEVSRkFDRShXRUJLSVRfRE9NX1RZUEVfRVZFTlRf
VEFSR0VULCB3ZWJraXRfZG9tX2VsZW1lbnRfZG9tX2V2ZW50X3RhcmdldF9pbml0KSkKLQogZW51
bSB7CiAgICAgRE9NX0VMRU1FTlRfUFJPUF8wLAogICAgIERPTV9FTEVNRU5UX1BST1BfVEFHX05B
TUUsCkBAIC0yNzMsOSArMjUyLDggQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV9lbGVtZW50X2dl
dF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SWQsIEcKICAgICB9CiB9
CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF9kb21fZWxlbWVudF9jbGFzc19pbml0KFdlYktpdERPTUVs
ZW1lbnRDbGFzcyogcmVxdWVzdENsYXNzKQordm9pZCB3ZWJraXRET01FbGVtZW50SW5zdGFsbFBy
b3BlcnRpZXMoR09iamVjdENsYXNzKiBnb2JqZWN0Q2xhc3MpCiB7Ci0gICAgR09iamVjdENsYXNz
KiBnb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhyZXF1ZXN0Q2xhc3MpOwogICAgIGdvYmpl
Y3RDbGFzcy0+c2V0X3Byb3BlcnR5ID0gd2Via2l0X2RvbV9lbGVtZW50X3NldF9wcm9wZXJ0eTsK
ICAgICBnb2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtpdF9kb21fZWxlbWVudF9nZXRf
cHJvcGVydHk7CiAKQEAgLTU5OCwxMSArNTc2LDYgQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV9l
bGVtZW50X2NsYXNzX2luaXQoV2ViS2l0RE9NRWxlbWVudENsYXNzKiByZXF1ZXN0Q2xhc3MpCiAK
IH0KIAotc3RhdGljIHZvaWQgd2Via2l0X2RvbV9lbGVtZW50X2luaXQoV2ViS2l0RE9NRWxlbWVu
dCogcmVxdWVzdCkKLXsKLSAgICBVTlVTRURfUEFSQU0ocmVxdWVzdCk7Ci19Ci0KIGdjaGFyKiB3
ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2F0dHJpYnV0ZShXZWJLaXRET01FbGVtZW50KiBzZWxmLCBj
b25zdCBnY2hhciogbmFtZSkKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CkBAIC0xMzg4LDMgKzEzNjEsNCBAQCBndWxvbmcgd2Via2l0X2RvbV9lbGVtZW50X2dl
dF9jaGlsZF9lbGVtZW50X2NvdW50KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVudC5jcHAKaW5kZXggYmE3Mzc0ODE3OWYuLjQ4MmQ1
YjkyNDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVudC5jcHAKQEAg
LTM4LDYgKzM4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTUV2ZW50UHJpdmF0ZSB7CiAg
ICAgUmVmUHRyPFdlYkNvcmU6OkV2ZW50PiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01FdmVudFBy
aXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogV2ViS2l0RE9NRXZlbnQqIGtpdChXZWJDb3JlOjpFdmVudCogb2JqKQpAQCAt
NDA4LDMgKzQxMCw0IEBAIHZvaWQgd2Via2l0X2RvbV9ldmVudF9zZXRfY2FuY2VsX2J1YmJsZShX
ZWJLaXRET01FdmVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpCiAgICAgaXRlbS0+c2V0Q2FuY2Vs
QnViYmxlKHZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRXZlbnQuaAppbmRleCBmMmUxODk4NTZmMi4uYTU2
OTUzNWViNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVudC5oCkBAIC0z
OSwxMDEgKzM5LDE0MSBAQCBHX0JFR0lOX0RFQ0xTCiAKIC8qKgogICogV0VCS0lUX0RPTV9FVkVO
VF9OT05FOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fRVZFTlRfTk9ORSAwCiAKIC8qKgogICog
V0VCS0lUX0RPTV9FVkVOVF9DQVBUVVJJTkdfUEhBU0U6CisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RP
TV9FVkVOVF9DQVBUVVJJTkdfUEhBU0UgMQogCiAvKioKICAqIFdFQktJVF9ET01fRVZFTlRfQVRf
VEFSR0VUOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fRVZFTlRfQVRfVEFSR0VUIDIKIAogLyoq
CiAgKiBXRUJLSVRfRE9NX0VWRU5UX0JVQkJMSU5HX1BIQVNFOgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJ
VF9ET01fRVZFTlRfQlVCQkxJTkdfUEhBU0UgMwogCiAvKioKICAqIFdFQktJVF9ET01fRVZFTlRf
TU9VU0VET1dOOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fRVZFTlRfTU9VU0VET1dOIDEKIAog
LyoqCiAgKiBXRUJLSVRfRE9NX0VWRU5UX01PVVNFVVA6CisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RP
TV9FVkVOVF9NT1VTRVVQIDIKIAogLyoqCiAgKiBXRUJLSVRfRE9NX0VWRU5UX01PVVNFT1ZFUjoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0VWRU5UX01PVVNFT1ZFUiA0CiAKIC8qKgogICogV0VC
S0lUX0RPTV9FVkVOVF9NT1VTRU9VVDoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0VWRU5UX01P
VVNFT1VUIDgKIAogLyoqCiAgKiBXRUJLSVRfRE9NX0VWRU5UX01PVVNFTU9WRToKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2Rl
ZmluZSBXRUJLSVRfRE9NX0VWRU5UX01PVVNFTU9WRSAxNgogCiAvKioKICAqIFdFQktJVF9ET01f
RVZFTlRfTU9VU0VEUkFHOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fRVZFTlRfTU9VU0VEUkFH
IDMyCiAKIC8qKgogICogV0VCS0lUX0RPTV9FVkVOVF9DTElDSzoKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJL
SVRfRE9NX0VWRU5UX0NMSUNLIDY0CiAKIC8qKgogICogV0VCS0lUX0RPTV9FVkVOVF9EQkxDTElD
SzoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0VWRU5UX0RCTENMSUNLIDEyOAogCiAvKioKICAq
IFdFQktJVF9ET01fRVZFTlRfS0VZRE9XTjoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0VWRU5U
X0tFWURPV04gMjU2CiAKIC8qKgogICogV0VCS0lUX0RPTV9FVkVOVF9LRVlVUDoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2Rl
ZmluZSBXRUJLSVRfRE9NX0VWRU5UX0tFWVVQIDUxMgogCiAvKioKICAqIFdFQktJVF9ET01fRVZF
TlRfS0VZUFJFU1M6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9FVkVOVF9LRVlQUkVTUyAxMDI0
CiAKIC8qKgogICogV0VCS0lUX0RPTV9FVkVOVF9EUkFHRFJPUDoKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJL
SVRfRE9NX0VWRU5UX0RSQUdEUk9QIDIwNDgKIAogLyoqCiAgKiBXRUJLSVRfRE9NX0VWRU5UX0ZP
Q1VTOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fRVZFTlRfRk9DVVMgNDA5NgogCiAvKioKICAq
IFdFQktJVF9ET01fRVZFTlRfQkxVUjoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0VWRU5UX0JM
VVIgODE5MgogCiAvKioKICAqIFdFQktJVF9ET01fRVZFTlRfU0VMRUNUOgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5l
IFdFQktJVF9ET01fRVZFTlRfU0VMRUNUIDE2Mzg0CiAKIC8qKgogICogV0VCS0lUX0RPTV9FVkVO
VF9DSEFOR0U6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9FVkVOVF9DSEFOR0UgMzI3NjgKIApA
QCAtMTQ1LDIzICsxODUsMjcgQEAgc3RydWN0IF9XZWJLaXRET01FdmVudENsYXNzIHsKICAgICBX
ZWJLaXRET01PYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBl
CitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9ldmVudF9nZXRfdHlwZSh2b2lk
KTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX2V2ZW50X3N0b3BfcHJvcGFnYXRpb246CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NRXZlbnQKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9ldmVudF9zdG9wX3Byb3BhZ2F0aW9uKFdlYktpdERP
TUV2ZW50KiBzZWxmKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX2V2ZW50X3ByZXZlbnRfZGVmYXVs
dDoKICAqIEBzZWxmOiBBICNXZWJLaXRET01FdmVudAogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2V2ZW50X3ByZXZlbnRfZGVmYXVs
dChXZWJLaXRET01FdmVudCogc2VsZik7CiAKIC8qKgpAQCAtMTcxLDggKzIxNSwxMCBAQCB3ZWJr
aXRfZG9tX2V2ZW50X3ByZXZlbnRfZGVmYXVsdChXZWJLaXRET01FdmVudCogc2VsZik7CiAgKiBA
Y2FuQnViYmxlQXJnOiBBICNnYm9vbGVhbgogICogQGNhbmNlbGFibGVBcmc6IEEgI2dib29sZWFu
CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtp
dF9kb21fZXZlbnRfaW5pdF9ldmVudChXZWJLaXRET01FdmVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IGV2ZW50VHlwZUFyZywgZ2Jvb2xlYW4gY2FuQnViYmxlQXJnLCBnYm9vbGVhbiBjYW5jZWxhYmxl
QXJnKTsKIAogLyoqCkBAIC0xODAsOCArMjI2LDEwIEBAIHdlYmtpdF9kb21fZXZlbnRfaW5pdF9l
dmVudChXZWJLaXRET01FdmVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGV2ZW50VHlwZUFyZywgZ2Jv
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRf
ZG9tX2V2ZW50X2dldF9ldmVudF90eXBlKFdlYktpdERPTUV2ZW50KiBzZWxmKTsKIAogLyoqCkBA
IC0xODksOCArMjM3LDEwIEBAIHdlYmtpdF9kb21fZXZlbnRfZ2V0X2V2ZW50X3R5cGUoV2ViS2l0
RE9NRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUV2ZW50CiAgKgogICogUmV0
dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01FdmVudFRhcmdldAorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIFdlYktpdERPTUV2ZW50VGFyZ2V0KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9N
RXZlbnRUYXJnZXQqCiB3ZWJraXRfZG9tX2V2ZW50X2dldF90YXJnZXQoV2ViS2l0RE9NRXZlbnQq
IHNlbGYpOwogCiAvKioKQEAgLTE5OCw4ICsyNDgsMTAgQEAgd2Via2l0X2RvbV9ldmVudF9nZXRf
dGFyZ2V0KFdlYktpdERPTUV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01FdmVu
dAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NRXZlbnRUYXJn
ZXQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FdmVudFRhcmdldCoKK1dFQktJVF9ERVBSRUNB
VEVEIFdlYktpdERPTUV2ZW50VGFyZ2V0Kgogd2Via2l0X2RvbV9ldmVudF9nZXRfY3VycmVudF90
YXJnZXQoV2ViS2l0RE9NRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTIwNyw4ICsyNTksMTAgQEAg
d2Via2l0X2RvbV9ldmVudF9nZXRfY3VycmVudF90YXJnZXQoV2ViS2l0RE9NRXZlbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ3VzaG9y
dAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGd1c2hvcnQKK1dFQktJVF9ERVBSRUNBVEVEIGd1c2hvcnQKIHdl
YmtpdF9kb21fZXZlbnRfZ2V0X2V2ZW50X3BoYXNlKFdlYktpdERPTUV2ZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0yMTYsOCArMjcwLDEwIEBAIHdlYmtpdF9kb21fZXZlbnRfZ2V0X2V2ZW50X3BoYXNl
KFdlYktpdERPTUV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01FdmVudAogICoK
ICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJ
VF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2V2ZW50X2dldF9idWJibGVzKFdlYktp
dERPTUV2ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMjUsOCArMjgxLDEwIEBAIHdlYmtpdF9kb21f
ZXZlbnRfZ2V0X2J1YmJsZXMoV2ViS2l0RE9NRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZXZlbnRf
Z2V0X2NhbmNlbGFibGUoV2ViS2l0RE9NRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTIzNCw4ICsy
OTIsMTAgQEAgd2Via2l0X2RvbV9ldmVudF9nZXRfY2FuY2VsYWJsZShXZWJLaXRET01FdmVudCog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
dWludDMyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ3VpbnQzMgorV0VCS0lUX0RFUFJFQ0FURUQgZ3VpbnQz
Mgogd2Via2l0X2RvbV9ldmVudF9nZXRfdGltZV9zdGFtcChXZWJLaXRET01FdmVudCogc2VsZik7
CiAKIC8qKgpAQCAtMjQzLDggKzMwMywxMCBAQCB3ZWJraXRfZG9tX2V2ZW50X2dldF90aW1lX3N0
YW1wKFdlYktpdERPTUV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01FdmVudAog
ICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NRXZlbnRUYXJnZXQK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FdmVudFRhcmdldCoKK1dFQktJVF9ERVBSRUNBVEVE
IFdlYktpdERPTUV2ZW50VGFyZ2V0Kgogd2Via2l0X2RvbV9ldmVudF9nZXRfc3JjX2VsZW1lbnQo
V2ViS2l0RE9NRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTI1Miw4ICszMTQsMTAgQEAgd2Via2l0
X2RvbV9ldmVudF9nZXRfc3JjX2VsZW1lbnQoV2ViS2l0RE9NRXZlbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9k
b21fZXZlbnRfZ2V0X3JldHVybl92YWx1ZShXZWJLaXRET01FdmVudCogc2VsZik7CiAKIC8qKgpA
QCAtMjYxLDggKzMyNSwxMCBAQCB3ZWJraXRfZG9tX2V2ZW50X2dldF9yZXR1cm5fdmFsdWUoV2Vi
S2l0RE9NRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUV2ZW50CiAgKiBAdmFs
dWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21fZXZlbnRfc2V0X3JldHVybl92YWx1ZShXZWJLaXRET01FdmVu
dCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTI3MCw4ICszMzYsMTAgQEAgd2Vi
a2l0X2RvbV9ldmVudF9zZXRfcmV0dXJuX3ZhbHVlKFdlYktpdERPTUV2ZW50KiBzZWxmLCBnYm9v
bGVhbiB2YWx1ZSk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRXZlbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRF
RCBnYm9vbGVhbgogd2Via2l0X2RvbV9ldmVudF9nZXRfY2FuY2VsX2J1YmJsZShXZWJLaXRET01F
dmVudCogc2VsZik7CiAKIC8qKgpAQCAtMjc5LDggKzM0NywxMCBAQCB3ZWJraXRfZG9tX2V2ZW50
X2dldF9jYW5jZWxfYnViYmxlKFdlYktpdERPTUV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01FdmVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2V2ZW50X3NldF9jYW5j
ZWxfYnViYmxlKFdlYktpdERPTUV2ZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIEdfRU5E
X0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUV2ZW50VGFyZ2V0
LmNwcAppbmRleCA4Yjc1MGI0NzU0MS4uZmUxYTA0M2E4MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVu
dFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUV2ZW50VGFyZ2V0LmNwcApAQCAtMzgsNiArMzgsOCBAQAog
I2luY2x1ZGUgIldlYktpdERPTVByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRy
Lmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiB0eXBlZGVmIFdlYktp
dERPTUV2ZW50VGFyZ2V0SWZhY2UgV2ViS2l0RE9NRXZlbnRUYXJnZXRJbnRlcmZhY2U7CiAKIEdf
REVGSU5FX0lOVEVSRkFDRShXZWJLaXRET01FdmVudFRhcmdldCwgd2Via2l0X2RvbV9ldmVudF90
YXJnZXQsIEdfVFlQRV9PQkpFQ1QpCkBAIC0xMTIsMyArMTE0LDQgQEAgV2ViQ29yZTo6RXZlbnRU
YXJnZXQqIGNvcmUoV2ViS2l0RE9NRXZlbnRUYXJnZXQqIHJlcXVlc3QpCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NRXZlbnRUYXJnZXQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVudFRhcmdldC5oCmluZGV4IGFkYzIxMDZjN2M0
Li43NWFhYzE4OTQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUV2ZW50VGFyZ2V0LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUV2
ZW50VGFyZ2V0LmgKQEAgLTU0LDcgKzU0LDcgQEAgc3RydWN0IF9XZWJLaXRET01FdmVudFRhcmdl
dElmYWNlIHsKIH07CiAKIAotV0VCS0lUX0FQSSBHVHlwZSAgICAgd2Via2l0X2RvbV9ldmVudF90
YXJnZXRfZ2V0X3R5cGUodm9pZCkgR19HTlVDX0NPTlNUOworV0VCS0lUX0RFUFJFQ0FURUQgR1R5
cGUgICAgIHdlYmtpdF9kb21fZXZlbnRfdGFyZ2V0X2dldF90eXBlKHZvaWQpIEdfR05VQ19DT05T
VDsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX2V2ZW50X3RhcmdldF9kaXNwYXRjaF9ldmVudDoKQEAg
LTYzLDggKzYzLDEwIEBAIFdFQktJVF9BUEkgR1R5cGUgICAgIHdlYmtpdF9kb21fZXZlbnRfdGFy
Z2V0X2dldF90eXBlKHZvaWQpIEdfR05VQ19DT05TVDsKICAqIEBlcnJvcjogcmV0dXJuIGxvY2F0
aW9uIGZvciBhbiBlcnJvciBvciAlTlVMTAogICoKICAqIFJldHVybnM6IGEgI2dib29sZWFuCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAg
Ki8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4gIHdlYmtpdF9kb21fZXZlbnRfdGFyZ2V0X2Rpc3BhdGNo
X2V2ZW50KFdlYktpdERPTUV2ZW50VGFyZ2V0ICp0YXJnZXQsCitXRUJLSVRfREVQUkVDQVRFRCBn
Ym9vbGVhbiAgd2Via2l0X2RvbV9ldmVudF90YXJnZXRfZGlzcGF0Y2hfZXZlbnQoV2ViS2l0RE9N
RXZlbnRUYXJnZXQgKnRhcmdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdERPTUV2ZW50ICAgICAgICpldmVudCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdFcnJvciAgICAgICAgICAgICAgKiplcnJvcik7CiAKQEAgLTc3LDggKzc5LDEwIEBAIFdFQktJ
VF9BUEkgZ2Jvb2xlYW4gIHdlYmtpdF9kb21fZXZlbnRfdGFyZ2V0X2Rpc3BhdGNoX2V2ZW50KFdl
YktpdERPTUV2ZW50VGFyZ2V0CiAgKiBAdXNlcl9kYXRhOiBBICNncG9pbnRlcgogICoKICAqIFJl
dHVybnM6IGEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4gIHdlYmtpdF9kb21f
ZXZlbnRfdGFyZ2V0X2FkZF9ldmVudF9saXN0ZW5lcihXZWJLaXRET01FdmVudFRhcmdldCAqdGFy
Z2V0LAorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4gIHdlYmtpdF9kb21fZXZlbnRfdGFyZ2V0
X2FkZF9ldmVudF9saXN0ZW5lcihXZWJLaXRET01FdmVudFRhcmdldCAqdGFyZ2V0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGNoYXIgICAgICAgICAgICpldmVudF9uYW1lLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDYWxsYmFjayAgICAg
ICAgICAgICBoYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICAgICAgICB1c2VfY2FwdHVy
ZSwKQEAgLTkyLDggKzk2LDEwIEBAIFdFQktJVF9BUEkgZ2Jvb2xlYW4gIHdlYmtpdF9kb21fZXZl
bnRfdGFyZ2V0X2FkZF9ldmVudF9saXN0ZW5lcihXZWJLaXRET01FdmVudFRhCiAgKiBAdXNlX2Nh
cHR1cmU6IEEgI2dib29sZWFuCiAgKgogICogUmV0dXJuczogYSAjZ2Jvb2xlYW4KKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VC
S0lUX0FQSSBnYm9vbGVhbiAgd2Via2l0X2RvbV9ldmVudF90YXJnZXRfcmVtb3ZlX2V2ZW50X2xp
c3RlbmVyKFdlYktpdERPTUV2ZW50VGFyZ2V0ICp0YXJnZXQsCitXRUJLSVRfREVQUkVDQVRFRCBn
Ym9vbGVhbiAgd2Via2l0X2RvbV9ldmVudF90YXJnZXRfcmVtb3ZlX2V2ZW50X2xpc3RlbmVyKFdl
YktpdERPTUV2ZW50VGFyZ2V0ICp0YXJnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAgICAgICAg
ICAgKmV2ZW50X25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NhbGxiYWNrICAgICAgICAgICAgIGhhbmRsZXIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgIHVzZV9jYXB0dXJlKTsKQEAgLTEwOSw4
ICsxMTUsMTAgQEAgV0VCS0lUX0FQSSBnYm9vbGVhbiAgd2Via2l0X2RvbV9ldmVudF90YXJnZXRf
cmVtb3ZlX2V2ZW50X2xpc3RlbmVyKFdlYktpdERPTUV2ZW4KICAqIGluc3RlYWQgb2YgYSBjYWxs
YmFja3MgZm9yIGVhc2llciBiaW5kaW5nIGluIG90aGVyIGxhbmd1YWdlcy4KICAqCiAgKiBSZXR1
cm5zOiBhICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIGdib29sZWFuIHdlYmtpdF9kb21fZXZl
bnRfdGFyZ2V0X2FkZF9ldmVudF9saXN0ZW5lcl93aXRoX2Nsb3N1cmUoV2ViS2l0RE9NRXZlbnRU
YXJnZXQgKnRhcmdldCwKK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuIHdlYmtpdF9kb21fZXZl
bnRfdGFyZ2V0X2FkZF9ldmVudF9saXN0ZW5lcl93aXRoX2Nsb3N1cmUoV2ViS2l0RE9NRXZlbnRU
YXJnZXQgKnRhcmdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICAgICAgICAgICAq
ZXZlbnRfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ2xvc3VyZSAgICAgICAgICAgICAqaGFu
ZGxlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgICAgICAgdXNlX2NhcHR1
cmUpOwpAQCAtMTI2LDggKzEzNCwxMCBAQCBXRUJLSVRfQVBJIGdib29sZWFuIHdlYmtpdF9kb21f
ZXZlbnRfdGFyZ2V0X2FkZF9ldmVudF9saXN0ZW5lcl93aXRoX2Nsb3N1cmUoV2ViSwogICogaW5z
dGVhZCBvZiBhIGNhbGxiYWNrcyBmb3IgZWFzaWVyIGJpbmRpbmcgaW4gb3RoZXIgbGFuZ3VhZ2Vz
LgogICoKICAqIFJldHVybnM6IGEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4g
d2Via2l0X2RvbV9ldmVudF90YXJnZXRfcmVtb3ZlX2V2ZW50X2xpc3RlbmVyX3dpdGhfY2xvc3Vy
ZShXZWJLaXRET01FdmVudFRhcmdldCAqdGFyZ2V0LAorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xl
YW4gd2Via2l0X2RvbV9ldmVudF90YXJnZXRfcmVtb3ZlX2V2ZW50X2xpc3RlbmVyX3dpdGhfY2xv
c3VyZShXZWJLaXRET01FdmVudFRhcmdldCAqdGFyZ2V0LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGNoYXIgICAgICAgICAgICpldmVudF9uYW1lLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdDbG9zdXJlICAgICAgICAgICAgICpoYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdi
b29sZWFuICAgICAgICAgICAgICB1c2VfY2FwdHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRmlsZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NRmlsZS5jcHAKaW5kZXggM2RkZDE3MDBhYzguLmQ2MzlmOTVlNWJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NRmlsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUZpbGUuY3BwCkBAIC0zMiw2ICszMiw4IEBACiAj
aW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVD
X0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJL
aXRET01GaWxlKiBraXQoV2ViQ29yZTo6RmlsZSogb2JqKQpAQCAtMTAyLDMgKzEwNCw0IEBAIGdj
aGFyKiB3ZWJraXRfZG9tX2ZpbGVfZ2V0X25hbWUoV2ViS2l0RE9NRmlsZSogc2VsZikKICAgICBn
Y2hhciogcmVzdWx0ID0gY29udmVydFRvVVRGOFN0cmluZyhpdGVtLT5uYW1lKCkpOwogICAgIHJl
dHVybiByZXN1bHQ7CiB9CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NRmlsZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUZpbGUuaAppbmRleCAzMjM4YjZhYzc4OC4uMGMwMjM1MDIx
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01GaWxlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUZpbGUuaApAQCAtNDUsNyArNDUs
NyBAQCBzdHJ1Y3QgX1dlYktpdERPTUZpbGVDbGFzcyB7CiAgICAgV2ViS2l0RE9NQmxvYkNsYXNz
IHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVE
IEdUeXBlCiB3ZWJraXRfZG9tX2ZpbGVfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCAr
NTMsMTAgQEAgd2Via2l0X2RvbV9maWxlX2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUZpbGUKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2ZpbGVfZ2V0X25hbWUo
V2ViS2l0RE9NRmlsZSogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRmls
ZUxpc3QuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUZpbGVMaXN0LmNwcAppbmRleCAxNTE5MmM5NzFmMC4uZGE1NDE2YzYz
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01GaWxlTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUZpbGVMaXN0LmNwcApA
QCAtMzgsNiArMzgsOCBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NRmlsZUxpc3RQcml2YXRl
IHsKICAgICBSZWZQdHI8V2ViQ29yZTo6RmlsZUxpc3Q+IGNvcmVPYmplY3Q7CiB9IFdlYktpdERP
TUZpbGVMaXN0UHJpdmF0ZTsKIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01GaWxlTGlzdCoga2l0KFdlYkNvcmU6OkZp
bGVMaXN0KiBvYmopCkBAIC0xNTAsMyArMTUyLDQgQEAgZ3Vsb25nIHdlYmtpdF9kb21fZmlsZV9s
aXN0X2dldF9sZW5ndGgoV2ViS2l0RE9NRmlsZUxpc3QqIHNlbGYpCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUZpbGVMaXN0LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NRmlsZUxpc3QuaAppbmRleCBiZjVjOWMxNGQwMC4uMGZiYzk0OGIw
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01GaWxlTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01GaWxlTGlzdC5oCkBAIC00
NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NRmlsZUxpc3RDbGFzcyB7CiAgICAgV2ViS2l0
RE9NT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VC
S0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fZmlsZV9saXN0X2dldF90eXBlKHZvaWQp
OwogCiAvKioKQEAgLTU0LDggKzU0LDEwIEBAIHdlYmtpdF9kb21fZmlsZV9saXN0X2dldF90eXBl
KHZvaWQpOwogICogQGluZGV4OiBBICNndWxvbmcKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
ZnVsbCk6IEEgI1dlYktpdERPTUZpbGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01GaWxlKgor
V0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRmlsZSoKIHdlYmtpdF9kb21fZmlsZV9saXN0X2l0
ZW0oV2ViS2l0RE9NRmlsZUxpc3QqIHNlbGYsIGd1bG9uZyBpbmRleCk7CiAKIC8qKgpAQCAtNjMs
OCArNjUsMTAgQEAgd2Via2l0X2RvbV9maWxlX2xpc3RfaXRlbShXZWJLaXRET01GaWxlTGlzdCog
c2VsZiwgZ3Vsb25nIGluZGV4KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01GaWxlTGlzdAogICoK
ICAqIFJldHVybnM6IEEgI2d1bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGd1bG9uZworV0VCS0lUX0RF
UFJFQ0FURUQgZ3Vsb25nCiB3ZWJraXRfZG9tX2ZpbGVfbGlzdF9nZXRfbGVuZ3RoKFdlYktpdERP
TUZpbGVMaXN0KiBzZWxmKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQW5j
aG9yRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IDg1ZGMzYWRh
YzE4Li44ZTVlZGRjMDhlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQuY3BwCkBAIC0zNyw2ICszNyw4IEBACiAjaW5jbHVk
ZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lO
X0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01I
VE1MQW5jaG9yRWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50KiBvYmopCkBA
IC03ODEsMyArNzgzLDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0
X2hhc2goV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGMKICAgICBpdGVtLT5zZXRI
YXNoKGNvbnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05T
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEFuY2hvckVs
ZW1lbnQuaAppbmRleCA1ZDcxMDhlOWFkYi4uODRjYzc1ODQxMDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MQW5jaG9yRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudC5oCkBAIC00NSw3
ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnRDbGFzcyB7CiAgICAg
V2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJ
IEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9l
bGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9k
b21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MQW5jaG9yRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRt
bF9hbmNob3JfZWxlbWVudF9nZXRfY2hhcnNldChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9l
bGVtZW50X2dldF9jaGFyc2V0KFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hh
cgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJr
aXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0X2NoYXJzZXQoV2ViS2l0RE9NSFRNTEFuY2hv
ckVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUs
MTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF9jaGFyc2V0KFdlYktpdERP
TUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb24KICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
QW5jaG9yRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hbmNob3Jf
ZWxlbWVudF9nZXRfY29vcmRzKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0
X2Nvb3JkcyhXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X2FuY2hvcl9lbGVtZW50X3NldF9jb29yZHMoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtODksOCArOTcsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF9jb29yZHMoV2ViS2l0RE9NSFRNTEFuY2hvckVs
ZW1lbnQqIHNlbGYsIGNvbnMKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRf
aHJlZmxhbmcoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTk4
LDggKzEwOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X2hyZWZsYW5n
KFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MQW5jaG9yRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9y
X2VsZW1lbnRfc2V0X2hyZWZsYW5nKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBj
b25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF9ocmVmbGFuZyhXZWJLaXRET01IVE1MQW5jaG9yRWxl
bWVudCogc2VsZiwgY28KICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudAog
ICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRf
REVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfbmFt
ZShXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTE2LDggKzEz
MCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0RE9N
SFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNo
b3JFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9z
ZXRfbmFtZShXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlKTsKIAogLyoqCkBAIC0xMjUsOCArMTQxLDEwIEBAIHdlYmtpdF9kb21faHRtbF9hbmNob3Jf
ZWxlbWVudF9zZXRfbmFtZShXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZiwgY29uc3QK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfcmVsKFdlYktpdERPTUhUTUxB
bmNob3JFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMzQsOCArMTUyLDEwIEBAIHdlYmtpdF9k
b21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfcmVsKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50
KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudAogICogQHZh
bHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0X3JlbChXZWJLaXRET01I
VE1MQW5jaG9yRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0x
NDMsOCArMTYzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9zZXRfcmVsKFdl
YktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25zdCBnCiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0
bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X3JldihXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtMTUyLDggKzE3NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2Vs
ZW1lbnRfZ2V0X3JldihXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF9yZXYoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQq
IHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTYxLDggKzE4NSwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0X3JldihXZWJLaXRET01IVE1MQW5jaG9y
RWxlbWVudCogc2VsZiwgY29uc3QgZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNob3JF
bGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioK
K1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50
X2dldF9zaGFwZShXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
MTcwLDggKzE5NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X3NoYXBl
KFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MQW5jaG9yRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9y
X2VsZW1lbnRfc2V0X3NoYXBlKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE3OSw4ICsyMDcsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2FuY2hvcl9lbGVtZW50X3NldF9zaGFwZShXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCog
c2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudAogICoK
ICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfdGFyZ2V0
KFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xODgsOCArMjE4
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfdGFyZ2V0KFdlYktpdERP
TUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQW5j
aG9yRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRf
c2V0X3RhcmdldChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IHZhbHVlKTsKIAogLyoqCkBAIC0xOTcsOCArMjI5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hbmNo
b3JfZWxlbWVudF9zZXRfdGFyZ2V0KFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBj
b25zCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqCiAgKiBSZXR1
cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQg
Z2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X3R5cGVfYXR0cihXZWJL
aXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjA2LDggKzI0MCwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X3R5cGVfYXR0cihXZWJLaXRET01I
VE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hv
ckVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3Nl
dF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFy
KiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjE1LDggKzI1MSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5j
aG9yX2VsZW1lbnRfc2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2Vs
ZiwgYwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50CiAgKgogICogUmV0
dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVE
IGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF90ZXh0KFdlYktpdERP
TUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMjUsOCArMjYzLDEwIEBAIHdl
YmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfdGV4dChXZWJLaXRET01IVE1MQW5jaG9y
RWxlbWVudCogc2VsZik7CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0X3RleHQoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQq
IHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjM0LDggKzI3NCwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0X3RleHQoV2ViS2l0RE9NSFRNTEFuY2hv
ckVsZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVs
ZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgor
V0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRf
Z2V0X2hyZWYoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTI0
Myw4ICsyODUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF9ocmVmKFdl
YktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MQW5jaG9yRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2Vs
ZW1lbnRfc2V0X2hyZWYoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjUyLDggKzI5NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
YW5jaG9yX2VsZW1lbnRfc2V0X2hyZWYoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYs
IGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X3Byb3RvY29sKFdl
YktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNjEsOCArMzA3LDEw
IEBAIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfcHJvdG9jb2woV2ViS2l0RE9N
SFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNo
b3JFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9z
ZXRfcHJvdG9jb2woV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFy
KiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjcwLDggKzMxOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5j
aG9yX2VsZW1lbnRfc2V0X3Byb3RvY29sKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxm
LCBjbwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50CiAgKgogICogUmV0
dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVE
IGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF9ob3N0KFdlYktpdERP
TUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNzksOCArMzI5LDEwIEBAIHdl
YmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfaG9zdChXZWJLaXRET01IVE1MQW5jaG9y
RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF9ob3N0KFdl
YktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAv
KioKQEAgLTI4OCw4ICszNDAsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3Nl
dF9ob3N0KFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0
X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF9ob3N0bmFtZShXZWJLaXRET01IVE1MQW5jaG9y
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjk3LDggKzM1MSwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X2hvc3RuYW1lKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50
KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudAogICogQHZh
bHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0X2hvc3RuYW1lKFdlYktp
dERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioK
QEAgLTMwNiw4ICszNjIsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF9o
b3N0bmFtZShXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZiwgY28KICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9k
b21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfcG9ydChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtMzE1LDggKzM3MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5j
aG9yX2VsZW1lbnRfZ2V0X3BvcnQoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dj
aGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9zZXRfcG9ydChXZWJLaXRET01IVE1MQW5jaG9y
RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0zMjQsOCArMzg0
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9zZXRfcG9ydChXZWJLaXRET01I
VE1MQW5jaG9yRWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
QW5jaG9yRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hbmNob3Jf
ZWxlbWVudF9nZXRfcGF0aG5hbWUoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTMzMyw4ICszOTUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50
X2dldF9wYXRobmFtZShXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF9wYXRobmFtZShXZWJLaXRET01IVE1MQW5jaG9yRWxl
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0zNDIsOCArNDA2LDEw
IEBAIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9zZXRfcGF0aG5hbWUoV2ViS2l0RE9N
SFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGNvCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFu
Y2hvckVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2Vs
ZW1lbnRfZ2V0X3NlYXJjaChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtMzUxLDggKzQxNywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0
X3NlYXJjaChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X2FuY2hvcl9lbGVtZW50X3NldF9zZWFyY2goV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMzYwLDggKzQyOCwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0X3NlYXJjaChXZWJLaXRET01IVE1MQW5jaG9y
RWxlbWVudCogc2VsZiwgY29ucwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNob3JFbGVt
ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dF
QktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dl
dF9oYXNoKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0zNjks
OCArNDM5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfaGFzaChXZWJL
aXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TEFuY2hvckVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVt
ZW50X3NldF9oYXNoKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hh
ciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxBcHBsZXRFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudC5jcHAKaW5kZXggOWQ1OWI0ZGIzMGMuLjVj
MTdlOGNiYTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MQXBwbGV0RWxlbWVudC5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYv
R2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JF
X0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxBcHBs
ZXRFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTEFwcGxldEVsZW1lbnQqIG9iaikKQEAgLTUyNCwz
ICs1MjYsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9zZXRfd2lkdGgo
V2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYsCiAgICAgaXRlbS0+c2V0QXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OndpZHRoQXR0ciwgY29u
dmVydGVkVmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudC5o
CmluZGV4IDRkOTAxNDU3M2ExLi5iY2UwOWFjYmIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxBcHBs
ZXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcg
QEAgc3RydWN0IF9XZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRE
T01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUK
K1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRf
Z2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1s
X2FwcGxldF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxBcHBsZXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FwcGxl
dF9lbGVtZW50X2dldF9hbGlnbihXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dl
dF9hbGlnbihXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X2FwcGxldF9lbGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERPTUhUTUxBcHBsZXRFbGVt
ZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dldF9h
bHQoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9nZXRfYWx0KFdlYktpdERPTUhU
TUxBcHBsZXRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXBwbGV0
RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRfc2V0
X2FsdChXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVl
KTsKIAogLyoqCkBAIC04OSw4ICs5NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1l
bnRfc2V0X2FsdChXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZiwgY29uc3QgZwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAj
Z2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgog
d2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dldF9hcmNoaXZlKFdlYktpdERPTUhUTUxB
cHBsZXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC05OCw4ICsxMDgsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2FwcGxldF9lbGVtZW50X2dldF9hcmNoaXZlKFdlYktpdERPTUhUTUxBcHBsZXRFbGVt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudAogICog
QHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRfc2V0X2FyY2hpdmUoV2Vi
S2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8q
KgpAQCAtMTA3LDggKzExOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRfc2V0
X2FyY2hpdmUoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYsIGNvbgogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0
X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dldF9jb2RlKFdlYktpdERPTUhUTUxBcHBsZXRFbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMTYsOCArMTMwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9h
cHBsZXRfZWxlbWVudF9nZXRfY29kZShXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X3NldF9jb2RlKFdlYktpdERPTUhUTUxBcHBs
ZXRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEyNSw4ICsx
NDEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X3NldF9jb2RlKFdlYktpdERP
TUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxBcHBsZXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FwcGxl
dF9lbGVtZW50X2dldF9jb2RlX2Jhc2UoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTEzNCw4ICsxNTIsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVt
ZW50X2dldF9jb2RlX2Jhc2UoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFy
CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtp
dF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9zZXRfY29kZV9iYXNlKFdlYktpdERPTUhUTUxBcHBs
ZXRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE0Myw4ICsx
NjMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X3NldF9jb2RlX2Jhc2UoV2Vi
S2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYsIGMKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MQXBwbGV0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hcHBs
ZXRfZWxlbWVudF9nZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmKTsK
IAogLyoqCkBAIC0xNTIsOCArMTc0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVu
dF9nZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfYXBwbGV0X2VsZW1lbnRfc2V0X2hlaWdodChXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVu
dCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNjEsOCArMTg1LDEwIEBA
IHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9zZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxB
cHBsZXRFbGVtZW50KiBzZWxmLCBjb25zCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFwcGxl
dEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25n
CitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50
X2dldF9oc3BhY2UoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTE3MCw4ICsxOTYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dldF9oc3Bh
Y2UoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dsb25nCiAgKgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hcHBs
ZXRfZWxlbWVudF9zZXRfaHNwYWNlKFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmLCBn
bG9uZyB2YWx1ZSk7CiAKIC8qKgpAQCAtMTc5LDggKzIwNywxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
YXBwbGV0X2VsZW1lbnRfc2V0X2hzcGFjZShXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2Vs
ZiwgZ2xvbgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNB
VEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dldF9uYW1lKFdlYktp
dERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xODgsOCArMjE4LDEwIEBA
IHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9nZXRfbmFtZShXZWJLaXRET01IVE1MQXBw
bGV0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1l
bnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X3NldF9uYW1l
KFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwog
CiAvKioKQEAgLTE5Nyw4ICsyMjksMTAgQEAgd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50
X3NldF9uYW1lKFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2No
YXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Vi
a2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dldF9vYmplY3QoV2ViS2l0RE9NSFRNTEFwcGxl
dEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTIwNiw4ICsyNDAsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2FwcGxldF9lbGVtZW50X2dldF9vYmplY3QoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQq
IHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKiBAdmFs
dWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9zZXRfb2JqZWN0KFdlYktpdERP
TUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAg
LTIxNSw4ICsyNTEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X3NldF9vYmpl
Y3QoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYsIGNvbnMKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0
bWxfYXBwbGV0X2VsZW1lbnRfZ2V0X3ZzcGFjZShXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMjI0LDggKzI2MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0
X2VsZW1lbnRfZ2V0X3ZzcGFjZShXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZik7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xv
bmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X3NldF92c3BhY2UoV2ViS2l0RE9NSFRNTEFwcGxl
dEVsZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCkBAIC0yMzMsOCArMjczLDEwIEBA
IHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9zZXRfdnNwYWNlKFdlYktpdERPTUhUTUxB
cHBsZXRFbGVtZW50KiBzZWxmLCBnbG9uCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFwcGxl
dEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFy
KgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1l
bnRfZ2V0X3dpZHRoKFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC0yNDIsOCArMjg0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9nZXRfd2lk
dGgoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hcHBs
ZXRfZWxlbWVudF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEFy
ZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQXJlYUVsZW1lbnQuY3BwCmluZGV4IDIzYWRiMjRiMjJj
Li44ZTA5ZTcwOWY5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxBcmVhRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxBcmVhRWxlbWVudC5jcHAKQEAgLTM3LDYgKzM3LDggQEAKICNpbmNsdWRlIDx3dGYv
R2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JF
X0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxBcmVh
RWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxBcmVhRWxlbWVudCogb2JqKQpAQCAtNTk5LDMgKzYw
MSw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9zZXRfaGFzaChXZWJLaXRE
T01IVE1MQXJlYUVsZW1lbnQqIHNlbGYsIGNvbnN0CiAgICAgaXRlbS0+c2V0SGFzaChjb252ZXJ0
ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MQXJlYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQXJlYUVsZW1lbnQuaAppbmRleCA4
ZTI0NWY4MzMwMy4uMzA5YzczY2U2ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQXJlYUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9X
ZWJLaXRET01IVE1MQXJlYUVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRD
bGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVD
QVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsK
IAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dl
dF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcmVhRWxlbWVudAogICoK
ICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfZ2V0X2FsdChXZWJL
aXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdl
YmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfZ2V0X2FsdChXZWJLaXRET01IVE1MQXJlYUVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcmVhRWxlbWVudAogICogQHZh
bHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X3NldF9hbHQoV2ViS2l0RE9NSFRN
TEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTcxLDgg
Kzc1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfc2V0X2FsdChXZWJLaXRET01I
VE1MQXJlYUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTEFyZWFFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FyZWFf
ZWxlbWVudF9nZXRfY29vcmRzKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtODAsOCArODYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9nZXRfY29v
cmRzKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTEFyZWFFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hcmVhX2Vs
ZW1lbnRfc2V0X2Nvb3JkcyhXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtODksOCArOTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2Fy
ZWFfZWxlbWVudF9zZXRfY29vcmRzKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZiwgY29u
c3QgZ2MKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1
cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVD
QVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9nZXRfbm9faHJlZihX
ZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTk4LDggKzEwOCwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dldF9ub19ocmVmKFdlYktpdERPTUhUTUxB
cmVhRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50
CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfc2V0X25vX2hy
ZWYoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIC8q
KgpAQCAtMTA3LDggKzExOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X3NldF9u
b19ocmVmKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZiwgZ2Jvb2xlYQogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxBcmVhRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9k
b21faHRtbF9hcmVhX2VsZW1lbnRfZ2V0X3NoYXBlKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMTE2LDggKzEzMCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9l
bGVtZW50X2dldF9zaGFwZShXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxBcmVhRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfYXJlYV9lbGVtZW50X3NldF9zaGFwZShXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTI1LDggKzE0MSwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X3NldF9zaGFwZShXZWJLaXRET01IVE1MQXJlYUVsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjaAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcmVhRWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfZ2V0X3Rh
cmdldChXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEzNCw4ICsx
NTIsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9nZXRfdGFyZ2V0KFdlYktpdERP
TUhUTUxBcmVhRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFyZWFF
bGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfc2V0X3Rh
cmdldChXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7
CiAKIC8qKgpAQCAtMTQzLDggKzE2MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50
X3NldF90YXJnZXQoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdCBnYwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcmVhRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dj
aGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdl
YmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfZ2V0X2hyZWYoV2ViS2l0RE9NSFRNTEFyZWFFbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNTIsOCArMTc0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9h
cmVhX2VsZW1lbnRfZ2V0X2hyZWYoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9odG1sX2FyZWFfZWxlbWVudF9zZXRfaHJlZihXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQq
IHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTYxLDggKzE4NSwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X3NldF9ocmVmKFdlYktpdERPTUhUTUxBcmVhRWxl
bWVudCogc2VsZiwgY29uc3QgZ2NoYQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcmVhRWxl
bWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitX
RUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfZ2V0
X3Byb3RvY29sKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTcx
LDggKzE5NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dldF9wcm90b2NvbChX
ZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNnY2hhcgogICoK
ICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9zZXRfcHJvdG9jb2woV2ViS2l0RE9N
SFRNTEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE4
MCw4ICsyMDgsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9zZXRfcHJvdG9jb2wo
V2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxBcmVhRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9h
cmVhX2VsZW1lbnRfZ2V0X2hvc3QoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0xOTAsOCArMjIwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfZ2V0
X2hvc3QoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2No
YXIKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBS
RUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfc2V0X2hvc3QoV2ViS2l0
RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAg
LTE5OSw4ICsyMzEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9zZXRfaG9zdChX
ZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGEKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MQXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0
bWxfYXJlYV9lbGVtZW50X2dldF9ob3N0bmFtZShXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNl
bGYpOwogCiAvKioKQEAgLTIwOSw4ICsyNDMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FyZWFfZWxl
bWVudF9nZXRfaG9zdG5hbWUoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmKTsKICAqIEB2
YWx1ZTogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfc2V0
X2hvc3RuYW1lKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlKTsKIAogLyoqCkBAIC0yMTgsOCArMjU0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcmVhX2Vs
ZW1lbnRfc2V0X2hvc3RuYW1lKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZiwgY29uc3QK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIq
CiB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dldF9wb3J0KFdlYktpdERPTUhUTUxBcmVh
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjI4LDggKzI2NiwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfYXJlYV9lbGVtZW50X2dldF9wb3J0KFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZik7
CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVt
ZW50X3NldF9wb3J0KFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IHZhbHVlKTsKIAogLyoqCkBAIC0yMzcsOCArMjc3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcmVh
X2VsZW1lbnRfc2V0X3BvcnQoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdCBn
Y2hhCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50CiAgKgogICogUmV0dXJu
czogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdj
aGFyKgogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9nZXRfcGF0aG5hbWUoV2ViS2l0RE9N
SFRNTEFyZWFFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNDcsOCArMjg5LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9hcmVhX2VsZW1lbnRfZ2V0X3BhdGhuYW1lKFdlYktpdERPTUhUTUxBcmVhRWxl
bWVudCogc2VsZik7CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0
bWxfYXJlYV9lbGVtZW50X3NldF9wYXRobmFtZShXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjU2LDggKzMwMCwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X3NldF9wYXRobmFtZShXZWJLaXRET01IVE1MQXJlYUVs
ZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9nZXRfc2Vh
cmNoKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjY2LDggKzMx
MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dldF9zZWFyY2goV2ViS2l0RE9N
SFRNTEFyZWFFbGVtZW50KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCiAgKiBTaW5j
ZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfc2V0X3NlYXJjaChXZWJLaXRET01IVE1MQXJlYUVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjc1LDggKzMyMywx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X3NldF9zZWFyY2goV2ViS2l0RE9NSFRN
TEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdCBnYwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxB
cmVhRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2No
YXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1l
bnRfZ2V0X2hhc2goV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0y
ODUsOCArMzM1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfZ2V0X2hhc2goV2Vi
S2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCiAg
KiBTdGFiaWxpdHk6IFVuc3RhYmxlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9zZXRfaGFzaChXZWJLaXRE
T01IVE1MQXJlYUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RF
Q0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJSRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJSRWxlbWVu
dC5jcHAKaW5kZXggYjYxNjk3MjIwNDIuLjZlMzI3YWZlODBiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TEJSRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCUkVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4
IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAor
R19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBXZWJLaXRET01IVE1MQlJFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTEJSRWxlbWVudCogb2Jq
KQpAQCAtMTY3LDMgKzE2OSw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX2JyX2VsZW1lbnRfc2V0
X2NsZWFyKFdlYktpdERPTUhUTUxCUkVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjCiAgICAgaXRlbS0+
c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmNs
ZWFyQXR0ciwgY29udmVydGVkVmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNB
VElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJSRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCUkVsZW1l
bnQuaAppbmRleCA0Nzc3MWFjOGNlNy4uMjU0MDI3NzUzOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
QlJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCUkVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBz
dHJ1Y3QgX1dlYktpdERPTUhUTUxCUkVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVs
ZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRf
REVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2JyX2VsZW1lbnRfZ2V0X3R5cGUodm9p
ZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2JyX2VsZW1lbnRf
Z2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEJSRWxlbWVudAogICoK
ICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9icl9lbGVtZW50X2dldF9jbGVhcihXZWJL
aXRET01IVE1MQlJFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfYnJfZWxlbWVudF9nZXRfY2xlYXIoV2ViS2l0RE9NSFRNTEJSRWxlbWVudCog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEJSRWxlbWVudAogICogQHZhbHVlOiBB
ICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2h0bWxfYnJfZWxlbWVudF9zZXRfY2xlYXIoV2ViS2l0RE9NSFRNTEJSRWxl
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MQmFzZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCYXNlRWxlbWVudC5jcHAKaW5k
ZXggOTQzNmM5NTU5M2IuLjlkMTBlMmNjMmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJhc2VFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTEJhc2VFbGVtZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAog
I2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05V
Q19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2Vi
S2l0RE9NSFRNTEJhc2VFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTEJhc2VFbGVtZW50KiBvYmop
CkBAIC0yMDQsMyArMjA2LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfYmFzZV9lbGVtZW50X3Nl
dF90YXJnZXQoV2ViS2l0RE9NSFRNTEJhc2VFbGVtZW50KiBzZWxmLCBjb24KICAgICBpdGVtLT5z
ZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6dGFy
Z2V0QXR0ciwgY29udmVydGVkVmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNB
VElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJhc2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJhc2VF
bGVtZW50LmgKaW5kZXggZWYyMjQyYjZjZmUuLjQ4ZjE1MGJjZGU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTEJhc2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCYXNlRWxlbWVudC5oCkBAIC00NSw3ICs0
NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTEJhc2VFbGVtZW50Q2xhc3MgewogICAgIFdlYktp
dERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlw
ZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF9iYXNlX2VsZW1lbnRf
Z2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1s
X2Jhc2VfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
QmFzZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYmFzZV9lbGVt
ZW50X2dldF9ocmVmKFdlYktpdERPTUhUTUxCYXNlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
NjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2Jhc2VfZWxlbWVudF9nZXRfaHJlZihXZWJL
aXRET01IVE1MQmFzZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxC
YXNlRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYmFzZV9lbGVtZW50X3Nl
dF9ocmVmKFdlYktpdERPTUhUTUxCYXNlRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVl
KTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYmFzZV9lbGVtZW50
X3NldF9ocmVmKFdlYktpdERPTUhUTUxCYXNlRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYQogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxCYXNlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dj
aGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdl
YmtpdF9kb21faHRtbF9iYXNlX2VsZW1lbnRfZ2V0X3RhcmdldChXZWJLaXRET01IVE1MQmFzZUVs
ZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9i
YXNlX2VsZW1lbnRfZ2V0X3RhcmdldChXZWJLaXRET01IVE1MQmFzZUVsZW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxCYXNlRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hh
cgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJr
aXRfZG9tX2h0bWxfYmFzZV9lbGVtZW50X3NldF90YXJnZXQoV2ViS2l0RE9NSFRNTEJhc2VFbGVt
ZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxCb2R5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50LmNwcAppbmRl
eCBlYzU4YzUxOTNhMi4uMWIyNzBkNTg2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQm9keUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MQm9keUVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAj
aW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVD
X0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJL
aXRET01IVE1MQm9keUVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MQm9keUVsZW1lbnQqIG9iaikK
QEAgLTM0OCwzICszNTAsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9ib2R5X2VsZW1lbnRfc2V0
X3ZfbGluayhXZWJLaXRET01IVE1MQm9keUVsZW1lbnQqIHNlbGYsIGNvbgogICAgIGl0ZW0tPnNl
dEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjp2bGlu
a0F0dHIsIGNvbnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJ
T05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCb2R5RWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCb2R5RWxl
bWVudC5oCmluZGV4IDU3MGViYmFmNWQ2Li4xOWYxNTIwZjQyMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxCb2R5RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQm9keUVsZW1lbnQuaApAQCAtNDUsNyArNDUs
NyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxCb2R5RWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRE
T01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUK
K1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X2dl
dF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9i
b2R5X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEJv
ZHlFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hh
cioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2JvZHlfZWxlbWVu
dF9nZXRfYV9saW5rKFdlYktpdERPTUhUTUxCb2R5RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
NjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2JvZHlfZWxlbWVudF9nZXRfYV9saW5rKFdl
YktpdERPTUhUTUxCb2R5RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TEJvZHlFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9ib2R5X2VsZW1lbnRf
c2V0X2FfbGluayhXZWJLaXRET01IVE1MQm9keUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2
YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2JvZHlfZWxl
bWVudF9zZXRfYV9saW5rKFdlYktpdERPTUhUTUxCb2R5RWxlbWVudCogc2VsZiwgY29uc3QgZ2MK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQm9keUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIq
CiB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X2dldF9iYWNrZ3JvdW5kKFdlYktpdERPTUhU
TUxCb2R5RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtODAsOCArODYsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2JvZHlfZWxlbWVudF9nZXRfYmFja2dyb3VuZChXZWJLaXRET01IVE1MQm9keUVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxCb2R5RWxlbWVudAogICogQHZh
bHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X3NldF9iYWNrZ3JvdW5kKFdlYktp
dERPTUhUTUxCb2R5RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBA
IC04OSw4ICs5NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X3NldF9iYWNrZ3Jv
dW5kKFdlYktpdERPTUhUTUxCb2R5RWxlbWVudCogc2VsZiwgY29ucwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxCb2R5RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRt
bF9ib2R5X2VsZW1lbnRfZ2V0X2JnX2NvbG9yKFdlYktpdERPTUhUTUxCb2R5RWxlbWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtOTgsOCArMTA4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9ib2R5X2VsZW1l
bnRfZ2V0X2JnX2NvbG9yKFdlYktpdERPTUhUTUxCb2R5RWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF9ib2R5X2VsZW1lbnRfc2V0X2JnX2NvbG9yKFdlYktpdERPTUhUTUxCb2R5RWxlbWVudCog
c2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMDcsOCArMTE5LDEwIEBAIHdl
YmtpdF9kb21faHRtbF9ib2R5X2VsZW1lbnRfc2V0X2JnX2NvbG9yKFdlYktpdERPTUhUTUxCb2R5
RWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQm9keUVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X2dldF9s
aW5rKFdlYktpdERPTUhUTUxCb2R5RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTE2LDggKzEz
MCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X2dldF9saW5rKFdlYktpdERPTUhU
TUxCb2R5RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEJvZHlFbGVt
ZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9ib2R5X2VsZW1lbnRfc2V0X2xpbmso
V2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAv
KioKQEAgLTEyNSw4ICsxNDEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2JvZHlfZWxlbWVudF9zZXRf
bGluayhXZWJLaXRET01IVE1MQm9keUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGEKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MQm9keUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRf
ZG9tX2h0bWxfYm9keV9lbGVtZW50X2dldF90ZXh0KFdlYktpdERPTUhUTUxCb2R5RWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMTM0LDggKzE1MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYm9keV9l
bGVtZW50X2dldF90ZXh0KFdlYktpdERPTUhUTUxCb2R5RWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF9ib2R5X2VsZW1lbnRfc2V0X3RleHQoV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50KiBzZWxm
LCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE0Myw4ICsxNjMsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2JvZHlfZWxlbWVudF9zZXRfdGV4dChXZWJLaXRET01IVE1MQm9keUVsZW1lbnQq
IHNlbGYsIGNvbnN0IGdjaGEKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQm9keUVsZW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X2dldF92X2xp
bmsoV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNTIsOCArMTc0
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9ib2R5X2VsZW1lbnRfZ2V0X3ZfbGluayhXZWJLaXRET01I
VE1MQm9keUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxCb2R5RWxl
bWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X3NldF92X2xp
bmsoV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwog
CiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCdXR0b25FbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MQnV0dG9uRWxlbWVudC5jcHAKaW5kZXggM2ZmZWY2Yjg2MGIuLjYxNjgzMWIxZDIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQnV0dG9u
RWxlbWVudC5jcHAKQEAgLTM4LDYgKzM4LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9O
UzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50KiBr
aXQoV2ViQ29yZTo6SFRNTEJ1dHRvbkVsZW1lbnQqIG9iaikKQEAgLTM1NCwzICszNTYsNCBAQCBn
Ym9vbGVhbiB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfZ2V0X3dpbGxfdmFsaWRhdGUo
V2ViS2l0RE9NSFRNTEJ1dHRvbkVsZQogICAgIGdib29sZWFuIHJlc3VsdCA9IGl0ZW0tPndpbGxW
YWxpZGF0ZSgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBS
RUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
QnV0dG9uRWxlbWVudC5oCmluZGV4IDk1MDQxMjQyOTJlLi5hN2EyNjkwY2Y3NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxCdXR0b25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCdXR0b25FbGVtZW50LmgK
QEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudENsYXNz
IHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdF
QktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxf
YnV0dG9uX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2J1dHRvbl9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxCdXR0b25FbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xl
YW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4K
IHdlYmtpdF9kb21faHRtbF9idXR0b25fZWxlbWVudF9nZXRfYXV0b2ZvY3VzKFdlYktpdERPTUhU
TUxCdXR0b25FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfZ2V0X2F1dG9mb2N1cyhXZWJLaXRET01IVE1MQnV0dG9u
RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2J1dHRvbl9lbGVtZW50X3NldF9hdXRv
Zm9jdXMoV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsK
IAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRf
c2V0X2F1dG9mb2N1cyhXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudCogc2VsZiwgZwogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxCdXR0b25FbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jv
b2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xl
YW4KIHdlYmtpdF9kb21faHRtbF9idXR0b25fZWxlbWVudF9nZXRfZGlzYWJsZWQoV2ViS2l0RE9N
SFRNTEJ1dHRvbkVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9idXR0b25fZWxlbWVudF9nZXRfZGlzYWJsZWQoV2ViS2l0RE9NSFRNTEJ1dHRv
bkVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxCdXR0b25FbGVtZW50
CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9idXR0b25fZWxlbWVudF9zZXRfZGlz
YWJsZWQoV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsK
IAogLyoqCkBAIC04OSw4ICs5NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRf
c2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50KiBzZWxmLCBnYgogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxCdXR0b25FbGVtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5z
ZmVyIG5vbmUpOiBBICNXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBX
ZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1M
Rm9ybUVsZW1lbnQqCiB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfZ2V0X2Zvcm0oV2Vi
S2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTk4LDggKzEwOCwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfZ2V0X2Zvcm0oV2ViS2l0RE9NSFRNTEJ1
dHRvbkVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxCdXR0b25FbGVt
ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dF
QktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2J1dHRvbl9lbGVtZW50X2dl
dF9idXR0b25fdHlwZShXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudCogc2VsZik7CiAKIC8qKgpA
QCAtMTA3LDggKzExOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfZ2V0X2J1
dHRvbl90eXBlKFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50KiBzZWxmKQogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxCdXR0b25FbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRt
bF9idXR0b25fZWxlbWVudF9zZXRfYnV0dG9uX3R5cGUoV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTE2LDggKzEzMCwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfc2V0X2J1dHRvbl90eXBlKFdlYktpdERP
TUhUTUxCdXR0b25FbGVtZW50KiBzZWxmLAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxCdXR0
b25FbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hh
cioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2J1dHRvbl9lbGVt
ZW50X2dldF9uYW1lKFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC0xMjUsOCArMTQxLDEwIEBAIHdlYmtpdF9kb21faHRtbF9idXR0b25fZWxlbWVudF9nZXRfbmFt
ZShXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTEJ1dHRvbkVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2J1dHRv
bl9lbGVtZW50X3NldF9uYW1lKFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEzNCw4ICsxNTIsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2J1dHRvbl9lbGVtZW50X3NldF9uYW1lKFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50KiBz
ZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxCdXR0b25FbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBS
RUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2J1dHRvbl9lbGVtZW50X2dldF92YWx1ZShX
ZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTQzLDggKzE2Mywx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfZ2V0X3ZhbHVlKFdlYktpdERPTUhU
TUxCdXR0b25FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQnV0dG9u
RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfc2V0
X3ZhbHVlKFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUpOwogCiAvKioKQEAgLTE1Miw4ICsxNzQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2J1dHRvbl9l
bGVtZW50X3NldF92YWx1ZShXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudCogc2VsZiwgY29uc3QK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVE
IGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfZ2V0X3dpbGxfdmFsaWRh
dGUoV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQ2FudmFzRWxlbWVu
dC5jcHAKaW5kZXggODMyMWM1NjkwZmUuLmYzM2JhYmU3ODNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTM1
LDYgKzM1LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIFdlYktpdERPTUhUTUxDYW52YXNFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTENh
bnZhc0VsZW1lbnQqIG9iaikKQEAgLTE5OSwzICsyMDEsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRt
bF9jYW52YXNfZWxlbWVudF9zZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxDYW52YXNFbGVtZW50KiBz
ZWxmLAogICAgIGl0ZW0tPnNldEhlaWdodCh2YWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JF
X0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQ2FudmFzRWxlbWVudC5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxDYW52YXNFbGVtZW50LmgKaW5kZXggNDZmMzk3ZjRjYWYuLjYwZDU2NzI5M2UzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTENhbnZhc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTENhbnZhc0VsZW1l
bnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxDYW52YXNFbGVtZW50
Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsK
IAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21f
aHRtbF9jYW52YXNfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1Mywx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfY2FudmFzX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTENhbnZhc0VsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Vi
a2l0X2RvbV9odG1sX2NhbnZhc19lbGVtZW50X2dldF93aWR0aChXZWJLaXRET01IVE1MQ2FudmFz
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1s
X2NhbnZhc19lbGVtZW50X2dldF93aWR0aChXZWJLaXRET01IVE1MQ2FudmFzRWxlbWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTENhbnZhc0VsZW1lbnQKICAqIEB2YWx1ZTog
QSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9p
ZAogd2Via2l0X2RvbV9odG1sX2NhbnZhc19lbGVtZW50X3NldF93aWR0aChXZWJLaXRET01IVE1M
Q2FudmFzRWxlbWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioKQEAgLTcxLDggKzc1LDEw
IEBAIHdlYmtpdF9kb21faHRtbF9jYW52YXNfZWxlbWVudF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRN
TENhbnZhc0VsZW1lbnQqIHNlbGYsIGdsb25nCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTENh
bnZhc0VsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGds
b25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1sX2NhbnZhc19lbGVt
ZW50X2dldF9oZWlnaHQoV2ViS2l0RE9NSFRNTENhbnZhc0VsZW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTgwLDggKzg2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9jYW52YXNfZWxlbWVudF9nZXRfaGVp
Z2h0KFdlYktpdERPTUhUTUxDYW52YXNFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MQ2FudmFzRWxlbWVudAogICogQHZhbHVlOiBBICNnbG9uZwogICoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfY2Fu
dmFzX2VsZW1lbnRfc2V0X2hlaWdodChXZWJLaXRET01IVE1MQ2FudmFzRWxlbWVudCogc2VsZiwg
Z2xvbmcgdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxDb2xsZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MQ29sbGVjdGlvbi5jcHAKaW5kZXggNzAyNjI4NGY4MDMuLjI1NTg1
YWI3NjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
Q29sbGVjdGlvbi5jcHAKQEAgLTM4LDYgKzM4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERP
TUhUTUxDb2xsZWN0aW9uUHJpdmF0ZSB7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkhUTUxDb2xsZWN0
aW9uPiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01IVE1MQ29sbGVjdGlvblByaXZhdGU7CiAKK0df
R05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
V2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qIGtpdChXZWJDb3JlOjpIVE1MQ29sbGVjdGlvbiogb2Jq
KQpAQCAtMTYxLDMgKzE2Myw0IEBAIGd1bG9uZyB3ZWJraXRfZG9tX2h0bWxfY29sbGVjdGlvbl9n
ZXRfbGVuZ3RoKFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKiBzZWxmKQogICAgIHJldHVybiByZXN1
bHQ7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MQ29sbGVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxDb2xsZWN0aW9uLmgKaW5kZXggMmM0YTA2NGYz
ZDMuLjJjM2IxNTI4MTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTENvbGxlY3Rpb24uaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhU
TUxDb2xsZWN0aW9uQ2xhc3MgewogICAgIFdlYktpdERPTU9iamVjdENsYXNzIHBhcmVudF9jbGFz
czsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJr
aXRfZG9tX2h0bWxfY29sbGVjdGlvbl9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01NCw4ICs1
NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfY29sbGVjdGlvbl9nZXRfdHlwZSh2b2lkKTsKICAqIEBp
bmRleDogQSAjZ3Vsb25nCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJL
aXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNB
VEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX2h0bWxfY29sbGVjdGlvbl9pdGVtKFdlYktp
dERPTUhUTUxDb2xsZWN0aW9uKiBzZWxmLCBndWxvbmcgaW5kZXgpOwogCiAvKioKQEAgLTY0LDgg
KzY2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9jb2xsZWN0aW9uX2l0ZW0oV2ViS2l0RE9NSFRNTENv
bGxlY3Rpb24qIHNlbGYsIGd1bG9uZyBpbmRleCk7CiAgKiBAbmFtZTogQSAjZ2NoYXIKICAqCiAg
KiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdl
YmtpdF9kb21faHRtbF9jb2xsZWN0aW9uX25hbWVkX2l0ZW0oV2ViS2l0RE9NSFRNTENvbGxlY3Rp
b24qIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lKTsKIAogLyoqCkBAIC03Myw4ICs3NywxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfY29sbGVjdGlvbl9uYW1lZF9pdGVtKFdlYktpdERPTUhUTUxDb2xsZWN0
aW9uKiBzZWxmLCBjb25zdCBnY2hhcgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0
aW9uCiAgKgogICogUmV0dXJuczogQSAjZ3Vsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ3Vsb25nCitX
RUJLSVRfREVQUkVDQVRFRCBndWxvbmcKIHdlYmtpdF9kb21faHRtbF9jb2xsZWN0aW9uX2dldF9s
ZW5ndGgoV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxETGlzdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxETGlzdEVsZW1lbnQu
Y3BwCmluZGV4IGYxMTJmYzY5NjRlLi42NGJiZTkyYjE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxE
TGlzdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRExpc3RFbGVtZW50LmNwcApAQCAtMzYsNiAr
MzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogV2ViS2l0RE9NSFRNTERMaXN0RWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxETGlzdEVs
ZW1lbnQqIG9iaikKQEAgLTE2NiwzICsxNjgsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9kX2xp
c3RfZWxlbWVudF9zZXRfY29tcGFjdChXZWJLaXRET01IVE1MRExpc3RFbGVtZW50KiBzZWxmLAog
ICAgIGl0ZW0tPnNldEJvb2xlYW5BdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjb21wYWN0
QXR0ciwgdmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTERMaXN0RWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxETGlzdEVsZW1lbnQuaApp
bmRleCBhNmFlNzA4OWI0ZC4uMjgwMTc5MmI5OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRExpc3RF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxETGlzdEVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBz
dHJ1Y3QgX1dlYktpdERPTUhUTUxETGlzdEVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRN
TEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJL
SVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2RfbGlzdF9lbGVtZW50X2dldF90
eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9kX2xp
c3RfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRExp
c3RFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Ym9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9kX2xp
c3RfZWxlbWVudF9nZXRfY29tcGFjdChXZWJLaXRET01IVE1MRExpc3RFbGVtZW50KiBzZWxmKTsK
IAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZF9saXN0X2VsZW1lbnRf
Z2V0X2NvbXBhY3QoV2ViS2l0RE9NSFRNTERMaXN0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTERMaXN0RWxlbWVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfZF9saXN0X2VsZW1lbnRfc2V0X2NvbXBhY3QoV2ViS2l0RE9NSFRNTERMaXN0RWxlbWVu
dCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxEaXJlY3RvcnlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRGlyZWN0b3J5RWxlbWVudC5jcHAK
aW5kZXggMWYyYTliMDVkYmIuLjMxMWYxZjA2ZjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTERpcmVj
dG9yeUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRGlyZWN0b3J5RWxlbWVudC5jcHAKQEAgLTM2
LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIFdlYktpdERPTUhUTUxEaXJlY3RvcnlFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRN
TERpcmVjdG9yeUVsZW1lbnQqIG9iaikKQEAgLTE2NiwzICsxNjgsNCBAQCB2b2lkIHdlYmtpdF9k
b21faHRtbF9kaXJlY3RvcnlfZWxlbWVudF9zZXRfY29tcGFjdChXZWJLaXRET01IVE1MRGlyZWN0
b3J5RWxlbWVudAogICAgIGl0ZW0tPnNldEJvb2xlYW5BdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5h
bWVzOjpjb21wYWN0QXR0ciwgdmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNB
VElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTERpcmVjdG9yeUVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
RGlyZWN0b3J5RWxlbWVudC5oCmluZGV4IDc2YWQ2N2ZkNzdlLi45OTdiZTI0NjQ4YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxEaXJlY3RvcnlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxEaXJlY3RvcnlF
bGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MRGlyZWN0b3J5
RWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFz
czsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJr
aXRfZG9tX2h0bWxfZGlyZWN0b3J5X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAt
NTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2RpcmVjdG9yeV9lbGVtZW50X2dldF90eXBl
KHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxEaXJlY3RvcnlFbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9kaXJlY3RvcnlfZWxlbWVudF9n
ZXRfY29tcGFjdChXZWJLaXRET01IVE1MRGlyZWN0b3J5RWxlbWVudCogc2VsZik7CiAKIC8qKgpA
QCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2RpcmVjdG9yeV9lbGVtZW50X2dldF9j
b21wYWN0KFdlYktpdERPTUhUTUxEaXJlY3RvcnlFbGVtZW50KiBzZWwKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MRGlyZWN0b3J5RWxlbWVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfZGlyZWN0b3J5X2VsZW1lbnRfc2V0X2NvbXBhY3QoV2ViS2l0RE9NSFRNTERpcmVjdG9y
eUVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MRGl2RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTERpdkVsZW1lbnQuY3BwCmluZGV4
IDEzY2NjY2U3ODg1Li41ZjA2NDE2ZGNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxEaXZFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTERpdkVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5j
bHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JF
R0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRE
T01IVE1MRGl2RWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxEaXZFbGVtZW50KiBvYmopCkBAIC0x
NjgsMyArMTcwLDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfZGl2X2VsZW1lbnRfc2V0X2FsaWdu
KFdlYktpdERPTUhUTUxEaXZFbGVtZW50KiBzZWxmLCBjb25zdAogICAgIGl0ZW0tPnNldEF0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjphbGlnbkF0dHIs
IGNvbnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxEaXZFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTERpdkVsZW1lbnQuaApp
bmRleCA1ZjkyMDc2ZWNhOS4uNjIxNDNiOTIxMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRGl2RWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MRGl2RWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVj
dCBfV2ViS2l0RE9NSFRNTERpdkVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1l
bnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQ
UkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2Rpdl9lbGVtZW50X2dldF90eXBlKHZvaWQp
OwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9kaXZfZWxlbWVudF9n
ZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRGl2RWxlbWVudAogICoK
ICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9kaXZfZWxlbWVudF9nZXRfYWxpZ24oV2Vi
S2l0RE9NSFRNTERpdkVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdl
YmtpdF9kb21faHRtbF9kaXZfZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRNTERpdkVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxEaXZFbGVtZW50CiAgKiBAdmFs
dWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21faHRtbF9kaXZfZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRN
TERpdkVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTERvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRG9jdW1lbnQuY3BwCmlu
ZGV4IDk1MWE0YmRiZmY5Li5mNzEyZThkOWYyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxEb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxEb2N1bWVudC5jcHAKQEAgLTM1LDYgKzM1LDggQEAKICNpbmNs
dWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVH
SU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERP
TUhUTUxEb2N1bWVudCoga2l0KFdlYkNvcmU6OkhUTUxEb2N1bWVudCogb2JqKQpAQCAtNDI1LDMg
KzQyNyw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X3NldF92bGlua19jb2xvcihX
ZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYsIGNvbnN0CiAgICAgaXRlbS0+c2V0VmxpbmtDb2xv
cihjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRG9jdW1lbnQuaAppbmRl
eCAzYTI0MGU1MTg1OC4uOTRjMmE3MjQ3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRG9jdW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTERvY3VtZW50LmgKQEAgLTQ1LDM5ICs0NSw0NyBAQCBzdHJ1Y3QgX1dl
YktpdERPTUhUTUxEb2N1bWVudENsYXNzIHsKICAgICBXZWJLaXRET01Eb2N1bWVudENsYXNzIHBh
cmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdU
eXBlCiB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgogICog
d2Via2l0X2RvbV9odG1sX2RvY3VtZW50X2Nsb3NlOgogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxEb2N1bWVudAogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2
b2lkCiB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfY2xvc2UoV2ViS2l0RE9NSFRNTERvY3VtZW50
KiBzZWxmKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfY2xlYXI6CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTERvY3VtZW50CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9kb2N1bWVudF9jbGVhcihX
ZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKICAqIHdlYmtpdF9kb21faHRtbF9k
b2N1bWVudF9jYXB0dXJlX2V2ZW50czoKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRG9jdW1l
bnQKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9odG1sX2RvY3VtZW50X2NhcHR1cmVfZXZlbnRzKFdlYktpdERPTUhUTUxEb2N1bWVu
dCogc2VsZik7CiAKIC8qKgogICogd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X3JlbGVhc2VfZXZl
bnRzOgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxEb2N1bWVudAogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZG9jdW1l
bnRfcmVsZWFzZV9ldmVudHMoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC04NSw4ICs5MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfcmVsZWFzZV9ldmVudHMo
V2ViS2l0RE9NSFRNTERvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
RG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25n
CitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X2dldF93
aWR0aChXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTk0LDggKzEwNCwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfZ2V0X3dpZHRoKFdlYktpdERPTUhUTUxEb2N1
bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTERvY3VtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FU
RUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF9kb2N1bWVudF9nZXRfaGVpZ2h0KFdlYktpdERPTUhU
TUxEb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTAzLDggKzExNSwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfZG9jdW1lbnRfZ2V0X2hlaWdodChXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxEb2N1bWVudAogICoKICAqIFJldHVybnM6IEEgI2dj
aGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdl
YmtpdF9kb21faHRtbF9kb2N1bWVudF9nZXRfZGlyKFdlYktpdERPTUhUTUxEb2N1bWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtMTEyLDggKzEyNiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRf
Z2V0X2RpcihXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxEb2N1bWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRf
c2V0X2RpcihXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7
CiAKIC8qKgpAQCAtMTIxLDggKzEzNywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfc2V0
X2RpcihXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZQogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxEb2N1bWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFy
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtp
dF9kb21faHRtbF9kb2N1bWVudF9nZXRfYmdfY29sb3IoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC0xMzAsOCArMTQ4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9kb2N1bWVu
dF9nZXRfYmdfY29sb3IoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MRG9jdW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2Rv
Y3VtZW50X3NldF9iZ19jb2xvcihXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTM5LDggKzE1OSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
ZG9jdW1lbnRfc2V0X2JnX2NvbG9yKFdlYktpdERPTUhUTUxEb2N1bWVudCogc2VsZiwgY29uc3Qg
Z2NoYXIqCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTERvY3VtZW50CiAgKgogICogUmV0dXJu
czogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdj
aGFyKgogd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X2dldF9mZ19jb2xvcihXZWJLaXRET01IVE1M
RG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE0OCw4ICsxNzAsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2RvY3VtZW50X2dldF9mZ19jb2xvcihXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxEb2N1bWVudAogICogQHZhbHVlOiBBICNnY2hhcgog
ICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRf
ZG9tX2h0bWxfZG9jdW1lbnRfc2V0X2ZnX2NvbG9yKFdlYktpdERPTUhUTUxEb2N1bWVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNTcsOCArMTgxLDEwIEBAIHdlYmtp
dF9kb21faHRtbF9kb2N1bWVudF9zZXRfZmdfY29sb3IoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBz
ZWxmLCBjb25zdCBnY2hhcioKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRG9jdW1lbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfZ2V0X2FsaW5rX2NvbG9y
KFdlYktpdERPTUhUTUxEb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTY2LDggKzE5MiwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfZ2V0X2FsaW5rX2NvbG9yKFdlYktpdERPTUhUTUxE
b2N1bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTERvY3VtZW50CiAgKiBA
dmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9kb2N1bWVudF9zZXRfYWxpbmtfY29sb3IoV2ViS2l0
RE9NSFRNTERvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE3
NSw4ICsyMDMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X3NldF9hbGlua19jb2xvcihX
ZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGEKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZG9j
dW1lbnRfZ2V0X2xpbmtfY29sb3IoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC0xODQsOCArMjE0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9kb2N1bWVudF9nZXRfbGlua19j
b2xvcihXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxEb2N1bWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfc2V0
X2xpbmtfY29sb3IoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUpOwogCiAvKioKQEAgLTE5Myw4ICsyMjUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2RvY3VtZW50
X3NldF9saW5rX2NvbG9yKFdlYktpdERPTUhUTUxEb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
Y2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3
ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfZ2V0X3ZsaW5rX2NvbG9yKFdlYktpdERPTUhUTUxEb2N1
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjAyLDggKzIzNiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
ZG9jdW1lbnRfZ2V0X3ZsaW5rX2NvbG9yKFdlYktpdERPTUhUTUxEb2N1bWVudCogc2VsZik7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTERvY3VtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21faHRtbF9kb2N1bWVudF9zZXRfdmxpbmtfY29sb3IoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBz
ZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRWxlbWVudC5jcHAKaW5kZXggOTM0Y2U0Yjc0ZmYu
LjdlMTcxNTQwMzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MRWxlbWVudC5jcHAKQEAgLTM3LDYgKzM3LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FU
SU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxFbGVtZW50KiBraXQo
V2ViQ29yZTo6SFRNTEVsZW1lbnQqIG9iaikKQEAgLTYzNywzICs2MzksNCBAQCB2b2lkIHdlYmtp
dF9kb21faHRtbF9lbGVtZW50X3NldF9zcGVsbGNoZWNrKFdlYktpdERPTUhUTUxFbGVtZW50KiBz
ZWxmLCBnYm9vbGVhbgogICAgIGl0ZW0tPnNldFNwZWxsY2hlY2sodmFsdWUpOwogfQogCitHX0dO
VUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MRWxlbWVudC5oCmluZGV4IDJkMWZiNWE1ZTRmLi4zYzM4NWQxNmI3OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxFbGVtZW50LmgKQEAgLTQ1
LDE1ICs0NSwxNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgewogICAgIFdl
YktpdERPTUVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBl
CitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X3R5
cGUodm9pZCk7CiAKIC8qKgogICogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfY2xpY2s6CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfY2xpY2soV2Vi
S2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYxLDggKzYzLDEwIEBAIHdlYmtp
dF9kb21faHRtbF9lbGVtZW50X2NsaWNrKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFy
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtp
dF9kb21faHRtbF9lbGVtZW50X2dldF90aXRsZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtNzAsOCArNzQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X3Rp
dGxlKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9zZXRfdGl0
bGUoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8q
KgpAQCAtNzksOCArODUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X3RpdGxlKFdl
YktpdERPTUhUTUxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRt
bF9lbGVtZW50X2dldF9sYW5nKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC04OCw4ICs5NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfbGFuZyhXZWJLaXRE
T01IVE1MRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X2xhbmcoV2ViS2l0RE9N
SFRNTEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtOTcsOCAr
MTA3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF9sYW5nKFdlYktpdERPTUhUTUxF
bGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9n
ZXRfZGlyKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMDYsOCArMTE4
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X2dldF9kaXIoV2ViS2l0RE9NSFRNTEVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxFbGVtZW50CiAgKiBAdmFsdWU6
IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZv
aWQKIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF9kaXIoV2ViS2l0RE9NSFRNTEVsZW1lbnQq
IHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTE1LDggKzEyOSwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9zZXRfZGlyKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxm
LCBjb25zdCBnY2hhciogdmFsdWUpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxFbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lU
X0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X2dldF90YWJfaW5kZXgo
V2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEyNCw4ICsxNDAsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X3RhYl9pbmRleChXZWJLaXRET01IVE1MRWxlbWVu
dCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKICAqIEB2YWx1ZTog
QSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9p
ZAogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X3RhYl9pbmRleChXZWJLaXRET01IVE1MRWxl
bWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioKQEAgLTEzMyw4ICsxNTEsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X3RhYl9pbmRleChXZWJLaXRET01IVE1MRWxlbWVudCog
c2VsZiwgZ2xvbmcgdmFsdWUpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxFbGVtZW50CiAg
KgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9E
RVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X2FjY2Vzc19rZXko
V2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE0Miw4ICsxNjIsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X2FjY2Vzc19rZXkoV2ViS2l0RE9NSFRNTEVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxFbGVtZW50CiAgKiBAdmFsdWU6
IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZv
aWQKIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF9hY2Nlc3Nfa2V5KFdlYktpdERPTUhUTUxF
bGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE1MSw4ICsxNzMs
MTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X2FjY2Vzc19rZXkoV2ViS2l0RE9NSFRN
TEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxF
bGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioK
K1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X2lu
bmVyX3RleHQoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE2MSw4ICsx
ODUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X2lubmVyX3RleHQoV2ViS2l0RE9N
SFRNTEVsZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNnY2hhcgogICogQGVycm9yOiAjR0Vy
cm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF9lbGVtZW50X3NldF9pbm5lcl90ZXh0KFdlYktpdERPTUhUTUxFbGVtZW50
KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0x
NzAsOCArMTk2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF9pbm5lcl90ZXh0KFdl
YktpdERPTUhUTUxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhcioKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9lbGVt
ZW50X2dldF9vdXRlcl90ZXh0KFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC0xODAsOCArMjA4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X2dldF9vdXRlcl90ZXh0
KFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqIEBl
cnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9zZXRfb3V0ZXJfdGV4dChXZWJLaXRET01I
VE1MRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7CiAK
IC8qKgpAQCAtMTg5LDggKzIxOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9zZXRfb3V0
ZXJfdGV4dChXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqCiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9t
X2h0bWxfZWxlbWVudF9nZXRfY29udGVudF9lZGl0YWJsZShXZWJLaXRET01IVE1MRWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMTk5LDggKzIzMSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZWxlbWVu
dF9nZXRfY29udGVudF9lZGl0YWJsZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZik7CiAgKiBA
dmFsdWU6IEEgI2djaGFyCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0
X2NvbnRlbnRfZWRpdGFibGUoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFy
KiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTIwOCw4ICsyNDIsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X2NvbnRlbnRfZWRpdGFibGUoV2ViS2l0RE9NSFRNTEVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGcKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRWxlbWVudAog
ICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dF
QktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfaXNf
Y29udGVudF9lZGl0YWJsZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
MjE5LDggKzI1NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfaXNfY29udGVudF9l
ZGl0YWJsZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnYm9v
bGVhbgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJ
VF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfdHJhbnNs
YXRlKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMjksOCArMjY3LDEw
IEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X2dldF90cmFuc2xhdGUoV2ViS2l0RE9NSFRNTEVs
ZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX2VsZW1lbnRfc2V0X3RyYW5zbGF0ZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwg
Z2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTI0MCw4ICsyODAsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2VsZW1lbnRfc2V0X3RyYW5zbGF0ZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwgZ2Jv
b2xlYW4gdmFsdWUKICAqIFJldHVybnM6IEEgI2dib29sZWFuCiAgKgogICogU2luY2U6IDIuMTYK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdl
YmtpdF9kb21faHRtbF9lbGVtZW50X2dldF9kcmFnZ2FibGUoV2ViS2l0RE9NSFRNTEVsZW1lbnQq
IHNlbGYpOwogCiAvKioKQEAgLTI1MCw4ICsyOTIsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1l
bnRfZ2V0X2RyYWdnYWJsZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZik7CiAgKiBAdmFsdWU6
IEEgI2dib29sZWFuCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9zZXRfZHJhZ2dh
YmxlKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIC8qKgpA
QCAtMjYxLDggKzMwNSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9zZXRfZHJhZ2dhYmxl
KFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZQogICogUmV0dXJuczog
QSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfd2Via2l0
ZHJvcHpvbmUoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTI3MSw4ICsz
MTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X3dlYmtpdGRyb3B6b25lKFdlYktp
dERPTUhUTUxFbGVtZW50KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCiAgKiBTaW5j
ZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF9lbGVtZW50X3NldF93ZWJraXRkcm9wem9uZShXZWJLaXRET01IVE1MRWxl
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0yODIsOCArMzMwLDEw
IEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF93ZWJraXRkcm9wem9uZShXZWJLaXRET01I
VE1MRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgogICoK
ICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNB
VEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfaGlkZGVuKFdlYktpdERP
TUhUTUxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yOTIsOCArMzQyLDEwIEBAIHdlYmtpdF9k
b21faHRtbF9lbGVtZW50X2dldF9oaWRkZW4oV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwog
ICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRf
c2V0X2hpZGRlbihXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwog
CiAvKioKQEAgLTMwMyw4ICszNTUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X2hp
ZGRlbihXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogICogUmV0
dXJuczogQSAjZ2Jvb2xlYW4KICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdi
b29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX2VsZW1l
bnRfZ2V0X3NwZWxsY2hlY2soV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTMxMyw4ICszNjcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X3NwZWxsY2hlY2so
V2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoK
ICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X3NwZWxsY2hlY2soV2ViS2l0RE9NSFRN
TEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MRW1iZWRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRW1iZWRFbGVtZW50LmNwcApp
bmRleCA4ZjA3MDlhMjkyOS4uOTEzMTI0NjkzOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRW1iZWRF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudC5jcHAKQEAgLTM2LDYgKzM2LDgg
QEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitH
X0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IFdlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MRW1iZWRFbGVtZW50
KiBvYmopCkBAIC0zNDQsMyArMzQ2LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxl
bWVudF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudCogc2VsZiwgZ2wKICAgICBp
dGVtLT5zZXRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OndpZHRoQXR0ciwg
dmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTEVtYmVkRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQuaAppbmRleCA2
OGQyMzMzMGM5Yi4uNmVhZmQ1N2NmZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRW1iZWRFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3Qg
X1dlYktpdERPTUhUTUxFbWJlZEVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1l
bnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQ
UkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfZ2V0X3R5cGUodm9p
ZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VtYmVkX2VsZW1l
bnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9lbWJlZF9lbGVtZW50X2dldF9h
bGlnbihXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2
NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9N
SFRNTEVtYmVkRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVtYmVk
RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9zZXRf
YWxpZ24oV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVl
KTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVu
dF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudCogc2VsZiwgY29uc3QgZwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Vi
a2l0X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfZ2V0X2hlaWdodChXZWJLaXRET01IVE1MRW1iZWRF
bGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
ZW1iZWRfZWxlbWVudF9nZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfc2V0X2hlaWdodChXZWJLaXRET01IVE1MRW1i
ZWRFbGVtZW50KiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAKIC8qKgpAQCAtODksOCArOTcsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfc2V0X2hlaWdodChXZWJLaXRET01IVE1MRW1i
ZWRFbGVtZW50KiBzZWxmLCBnbG9uZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxFbWJlZEVs
ZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgor
V0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9n
ZXRfbmFtZShXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC05OCw4
ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0
RE9NSFRNTEVtYmVkRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVt
YmVkRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9z
ZXRfbmFtZShXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUpOwogCiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Via2l0X2RvbV9odG1sX2VtYmVkX2Vs
ZW1lbnRfc2V0X25hbWUoV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudCogc2VsZiwgY29uc3QgZ2MK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50CiAgKgogICogUmV0dXJuczog
QSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFy
Kgogd2Via2l0X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfZ2V0X3NyYyhXZWJLaXRET01IVE1MRW1i
ZWRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMTYsOCArMTMwLDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9lbWJlZF9lbGVtZW50X2dldF9zcmMoV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudAogICogQHZhbHVlOiBB
ICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9zZXRfc3JjKFdlYktpdERPTUhUTUxFbWJl
ZEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTI1LDggKzE0
MSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9zZXRfc3JjKFdlYktpdERPTUhU
TUxFbWJlZEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaAogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxFbWJlZEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZW1iZWRf
ZWxlbWVudF9nZXRfdHlwZV9hdHRyKFdlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTEzNCw4ICsxNTIsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRf
Z2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF9lbWJlZF9lbGVtZW50X3NldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVu
dCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNDMsOCArMTYzLDEwIEBA
IHdlYmtpdF9kb21faHRtbF9lbWJlZF9lbGVtZW50X3NldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRN
TEVtYmVkRWxlbWVudCogc2VsZiwgY29uCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVtYmVk
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcK
K1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9n
ZXRfd2lkdGgoV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTUy
LDggKzE3NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9nZXRfd2lkdGgoV2Vi
S2l0RE9NSFRNTEVtYmVkRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TEVtYmVkRWxlbWVudAogICogQHZhbHVlOiBBICNnbG9uZwogICoKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVu
dF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudCogc2VsZiwgZ2xvbmcgdmFsdWUp
OwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGaWVsZFNldEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxGaWVsZFNldEVsZW1lbnQuY3BwCmluZGV4IDkxYTJjZDgyYmQwLi42ZjEwNGI0
ZWFhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGaWVsZFNldEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MRmllbGRTZXRFbGVtZW50LmNwcApAQCAtMzgsNiArMzgsOCBAQAogI2luY2x1ZGUgPHd0Zi9H
ZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVf
REVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTEZpZWxk
U2V0RWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxGaWVsZFNldEVsZW1lbnQqIG9iaikKQEAgLTE0
MywzICsxNDUsNCBAQCBXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHdlYmtpdF9kb21faHRtbF9m
aWVsZF9zZXRfZWxlbWVudF9nZXRfZm9ybShXZWJLaXRET01IVAogICAgIFJlZlB0cjxXZWJDb3Jl
OjpIVE1MRm9ybUVsZW1lbnQ+IGdvYmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5mb3Jt
KCkpOwogICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKIH0KK0df
R05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRmllbGRT
ZXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTEZpZWxkU2V0RWxlbWVudC5oCmluZGV4IGI4NzY2MTc3YjI4
Li40NGFlYTY0NDQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGaWVsZFNldEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTEZpZWxkU2V0RWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2Vi
S2l0RE9NSFRNTEZpZWxkU2V0RWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVu
dENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBS
RUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfZmllbGRfc2V0X2VsZW1lbnRfZ2V0X3R5cGUo
dm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ZpZWxkX3Nl
dF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGaWVs
ZFNldEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERP
TUhUTUxGb3JtRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxGb3JtRWxlbWVu
dCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCoKIHdlYmtpdF9k
b21faHRtbF9maWVsZF9zZXRfZWxlbWVudF9nZXRfZm9ybShXZWJLaXRET01IVE1MRmllbGRTZXRF
bGVtZW50KiBzZWxmKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRm9udEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxGb250RWxlbWVudC5jcHAKaW5kZXggNjBmNjdlNzdkZDIuLmVm
OTQ4ZDk1NTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZvbnRFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTEZvbnRFbGVtZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQ
UkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTEZvbnRFbGVt
ZW50KiBraXQoV2ViQ29yZTo6SFRNTEZvbnRFbGVtZW50KiBvYmopCkBAIC0yNDAsMyArMjQyLDQg
QEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfZm9udF9lbGVtZW50X3NldF9zaXplKFdlYktpdERPTUhU
TUxGb250RWxlbWVudCogc2VsZiwgY29uc3QKICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0
U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6c2l6ZUF0dHIsIGNvbnZlcnRlZFZh
bHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxGb250RWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGb250RWxlbWVudC5oCmluZGV4IDhhMmUw
ODIzMWI4Li43ODI5ZDZiM2I1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGb250RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MRm9udEVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktp
dERPTUhUTUxGb250RWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNz
IHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVE
IEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfZm9udF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAv
KioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9mb250X2VsZW1lbnRfZ2V0X3R5
cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZvbnRFbGVtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNB
VEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2ZvbnRfZWxlbWVudF9nZXRfY29sb3IoV2ViS2l0
RE9NSFRNTEZvbnRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfZm9udF9lbGVtZW50X2dldF9jb2xvcihXZWJLaXRET01IVE1MRm9udEVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGb250RWxlbWVudAogICogQHZh
bHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZm9udF9lbGVtZW50X3NldF9jb2xvcihXZWJLaXRET01I
VE1MRm9udEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEs
OCArNzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ZvbnRfZWxlbWVudF9zZXRfY29sb3IoV2ViS2l0
RE9NSFRNTEZvbnRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2gKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MRm9udEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZm9u
dF9lbGVtZW50X2dldF9mYWNlKFdlYktpdERPTUhUTUxGb250RWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtODAsOCArODYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ZvbnRfZWxlbWVudF9nZXRfZmFj
ZShXZWJLaXRET01IVE1MRm9udEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxGb250RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZm9udF9lbGVt
ZW50X3NldF9mYWNlKFdlYktpdERPTUhUTUxGb250RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IHZhbHVlKTsKIAogLyoqCkBAIC04OSw4ICs5NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZm9udF9l
bGVtZW50X3NldF9mYWNlKFdlYktpdERPTUhUTUxGb250RWxlbWVudCogc2VsZiwgY29uc3QgZ2No
YQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGb250RWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21faHRtbF9mb250X2VsZW1lbnRfZ2V0X3NpemUoV2ViS2l0RE9NSFRNTEZv
bnRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC05OCw4ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2ZvbnRfZWxlbWVudF9nZXRfc2l6ZShXZWJLaXRET01IVE1MRm9udEVsZW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGb250RWxlbWVudAogICogQHZhbHVlOiBBICNn
Y2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3
ZWJraXRfZG9tX2h0bWxfZm9udF9lbGVtZW50X3NldF9zaXplKFdlYktpdERPTUhUTUxGb250RWxl
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MRm9ybUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGb3JtRWxlbWVudC5jcHAKaW5k
ZXggMTczMjc3Njg0YTcuLmVkOTZmMWI1M2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZvcm1FbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50LmNwcApAQCAtMzcsNiArMzcsOCBAQAog
I2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05V
Q19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2Vi
S2l0RE9NSFRNTEZvcm1FbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50KiBvYmop
CkBAIC00NDUsMyArNDQ3LDQgQEAgZ2xvbmcgd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9n
ZXRfbGVuZ3RoKFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogc2VsZikKICAgICBnbG9uZyByZXN1
bHQgPSBpdGVtLT5sZW5ndGgoKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQorR19HTlVDX0VORF9J
R05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGb3JtRWxlbWVudC5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxGb3JtRWxlbWVudC5oCmluZGV4IGI5ZWY4YTY1YmZlLi41ZTY0YTNmY2FmNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxGb3JtRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRm9ybUVsZW1lbnQu
aApAQCAtNDUsMjMgKzQ1LDI3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50Q2xh
c3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAot
V0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRt
bF9mb3JtX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgogICogd2Via2l0X2RvbV9odG1s
X2Zvcm1fZWxlbWVudF9zdWJtaXQ6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVt
ZW50CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfc3VibWl0KFdlYktpdERPTUhUTUxGb3JtRWxlbWVu
dCogc2VsZik7CiAKIC8qKgogICogd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9yZXNldDoK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxl
bWVudF9yZXNldChXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTY5
LDggKzczLDEwIEBAIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfcmVzZXQoV2ViS2l0RE9N
SFRNTEZvcm1FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRm9ybUVs
ZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgor
V0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X2dl
dF9hY2NlcHRfY2hhcnNldChXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTc4LDggKzg0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfZ2V0X2FjY2Vw
dF9jaGFyc2V0KFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9m
b3JtX2VsZW1lbnRfc2V0X2FjY2VwdF9jaGFyc2V0KFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCog
c2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC04Nyw4ICs5NSwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X3NldF9hY2NlcHRfY2hhcnNldChXZWJLaXRET01IVE1M
Rm9ybUVsZW1lbnQqIHNlbGYsCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9nZXRfYWN0
aW9uKFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtOTYsOCArMTA2
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfZ2V0X2FjdGlvbihXZWJLaXRET01I
VE1MRm9ybUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGb3JtRWxl
bWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X3NldF9hY3Rp
b24oV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwog
CiAvKioKQEAgLTEwNSw4ICsxMTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9z
ZXRfYWN0aW9uKFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogc2VsZiwgY29uc3QgZ2MKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hh
cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJr
aXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X2dldF9lbmN0eXBlKFdlYktpdERPTUhUTUxGb3JtRWxl
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTE0LDggKzEyOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
Zm9ybV9lbGVtZW50X2dldF9lbmN0eXBlKFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dj
aGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfc2V0X2VuY3R5cGUoV2ViS2l0RE9NSFRNTEZvcm1F
bGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEyMyw4ICsxMzks
MTAgQEAgd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9zZXRfZW5jdHlwZShXZWJLaXRET01I
VE1MRm9ybUVsZW1lbnQqIHNlbGYsIGNvbnN0IGcKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
Rm9ybUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVt
ZW50X2dldF9lbmNvZGluZyhXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTEzMiw4ICsxNTAsMTAgQEAgd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9nZXRfZW5j
b2RpbmcoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MRm9ybUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2Zvcm1f
ZWxlbWVudF9zZXRfZW5jb2RpbmcoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE0MSw4ICsxNjEsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2Zvcm1fZWxlbWVudF9zZXRfZW5jb2RpbmcoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBz
ZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGb3JtRWxlbWVudAogICoKICAq
IFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVD
QVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfZ2V0X21ldGhvZChXZWJL
aXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE1MCw4ICsxNzIsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9nZXRfbWV0aG9kKFdlYktpdERPTUhUTUxGb3Jt
RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50CiAg
KiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBS
RUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfc2V0X21ldGhvZChXZWJL
aXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpA
QCAtMTU5LDggKzE4MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X3NldF9tZXRo
b2QoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmLCBjb25zdCBnYwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxGb3JtRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21f
aHRtbF9mb3JtX2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxm
KTsKIAogLyoqCkBAIC0xNjgsOCArMTk0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1l
bnRfZ2V0X25hbWUoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X2Zvcm1fZWxlbWVudF9zZXRfbmFtZShXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTc3LDggKzIwNSwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfZm9ybV9lbGVtZW50X3NldF9uYW1lKFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2NoYQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGb3JtRWxlbWVudAogICoK
ICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfZ2V0X3RhcmdldChX
ZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE4Niw4ICsyMTYsMTAg
QEAgd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9nZXRfdGFyZ2V0KFdlYktpdERPTUhUTUxG
b3JtRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50
CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfc2V0X3RhcmdldChX
ZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8q
KgpAQCAtMTk1LDggKzIyNywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X3NldF90
YXJnZXQoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmLCBjb25zdCBnYwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxGb3JtRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBm
dWxsKTogQSAjV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRE
T01IVE1MQ29sbGVjdGlvbioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxDb2xsZWN0
aW9uKgogd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9nZXRfZWxlbWVudHMoV2ViS2l0RE9N
SFRNTEZvcm1FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMDQsOCArMjM4LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9mb3JtX2VsZW1lbnRfZ2V0X2VsZW1lbnRzKFdlYktpdERPTUhUTUxGb3JtRWxl
bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJF
Q0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfZ2V0X2xlbmd0aChXZWJL
aXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxGcmFtZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQuY3BwCmluZGV4
IDc5YzE2MGRiZmMwLi5jMTVmNmE0ODY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGcmFtZUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MRnJhbWVFbGVtZW50LmNwcApAQCAtMzgsNiArMzgsOCBAQAog
I2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05V
Q19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2Vi
S2l0RE9NSFRNTEZyYW1lRWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxGcmFtZUVsZW1lbnQqIG9i
aikKQEAgLTUxMiwzICs1MTQsNCBAQCBnbG9uZyB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVu
dF9nZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYpCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxGcmFtZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRnJhbWVFbGVtZW50LmgKaW5kZXgg
NzNjN2JjYzJmNzQuLjBmZWZmNDcyMjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MRnJhbWVFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0
IF9XZWJLaXRET01IVE1MRnJhbWVFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVt
ZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RF
UFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF90eXBlKHZv
aWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVt
ZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGcmFtZUVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9nZXRf
ZnJhbWVfYm9yZGVyKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF9mcmFtZV9i
b3JkZXIoV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTEZyYW1lRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZnJh
bWVfZWxlbWVudF9zZXRfZnJhbWVfYm9yZGVyKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfc2V0X2ZyYW1lX2JvcmRlcihXZWJLaXRET01IVE1MRnJh
bWVFbGVtZW50KiBzZWxmLAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9nZXRfbG9u
Z19kZXNjKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDgg
Kzg2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF9sb25nX2Rlc2MoV2Vi
S2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TEZyYW1lRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVu
dF9zZXRfbG9uZ19kZXNjKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtODksOCArOTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2Zy
YW1lX2VsZW1lbnRfc2V0X2xvbmdfZGVzYyhXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxm
LCBjb24KICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50CiAgKgogICogUmV0
dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVE
IGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfZ2V0X21hcmdpbl9oZWlnaHQo
V2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtOTgsOCArMTA4LDEw
IEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF9tYXJnaW5faGVpZ2h0KFdlYktp
dERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYpCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZy
YW1lRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9z
ZXRfbWFyZ2luX2hlaWdodChXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmLCBjb25zdCBn
Y2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Via2l0X2RvbV9odG1s
X2ZyYW1lX2VsZW1lbnRfc2V0X21hcmdpbl9oZWlnaHQoV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVu
dCogc2VsZiwKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNB
VEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfZ2V0X21hcmdpbl93aWR0
aChXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMTYsOCArMTMw
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF9tYXJnaW5fd2lkdGgoV2Vi
S2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TEZyYW1lRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVu
dF9zZXRfbWFyZ2luX3dpZHRoKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYsIGNvbnN0
IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTI1LDggKzE0MSwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfZnJhbWVfZWxlbWVudF9zZXRfbWFyZ2luX3dpZHRoKFdlYktpdERPTUhUTUxGcmFtZUVsZW1l
bnQqIHNlbGYsCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudAogICoKICAq
IFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVD
QVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF9uYW1lKFdlYktp
dERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEzNCw4ICsxNTIsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0RE9NSFRNTEZyYW1l
RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudAog
ICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9zZXRfbmFtZShXZWJL
aXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioK
QEAgLTE0Myw4ICsxNjMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfc2V0X25h
bWUoV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZiwgY29uc3QgZ2MKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4K
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdl
YmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF9ub19yZXNpemUoV2ViS2l0RE9NSFRNTEZy
YW1lRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTUyLDggKzE3NCwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfZnJhbWVfZWxlbWVudF9nZXRfbm9fcmVzaXplKFdlYktpdERPTUhUTUxGcmFtZUVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQKICAqIEB2
YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfc2V0X25vX3Jlc2l6ZShX
ZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIC8qKgpA
QCAtMTYxLDggKzE4NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9zZXRfbm9f
cmVzaXplKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYsIGdibwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9t
X2h0bWxfZnJhbWVfZWxlbWVudF9nZXRfc2Nyb2xsaW5nKFdlYktpdERPTUhUTUxGcmFtZUVsZW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTE3MCw4ICsxOTYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2Zy
YW1lX2VsZW1lbnRfZ2V0X3Njcm9sbGluZyhXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxm
KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50CiAgKiBAdmFsdWU6IEEg
I2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X3NldF9zY3JvbGxpbmcoV2ViS2l0RE9NSFRN
TEZyYW1lRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNzks
OCArMjA3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X3NldF9zY3JvbGxpbmco
V2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZiwgY29uCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTEZyYW1lRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9m
cmFtZV9lbGVtZW50X2dldF9zcmMoV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtMTg4LDggKzIxOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9n
ZXRfc3JjKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxGcmFtZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2Zy
YW1lX2VsZW1lbnRfc2V0X3NyYyhXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE5Nyw4ICsyMjksMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2ZyYW1lX2VsZW1lbnRfc2V0X3NyYyhXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxm
LCBjb25zdCBnY2gKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50CiAgKgog
ICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Eb2N1bWVudAorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIFdlYktpdERPTURvY3VtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9N
RG9jdW1lbnQqCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9nZXRfY29udGVudF9kb2N1
bWVudChXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMDYsOCAr
MjQwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF9jb250ZW50X2RvY3Vt
ZW50KFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTEZyYW1lRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2Vi
S2l0RE9NRE9NV2luZG93CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRE9NV2luZG93KgorV0VC
S0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRE9NV2luZG93Kgogd2Via2l0X2RvbV9odG1sX2ZyYW1l
X2VsZW1lbnRfZ2V0X2NvbnRlbnRfd2luZG93KFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNl
bGYpOwogCiAvKioKQEAgLTIxNSw4ICsyNTEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ZyYW1lX2Vs
ZW1lbnRfZ2V0X2NvbnRlbnRfd2luZG93KFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50CiAgKgogICogUmV0dXJuczog
QSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcK
IHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF93aWR0aChXZWJLaXRET01IVE1MRnJh
bWVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMjQsOCArMjYyLDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9mcmFtZV9lbGVtZW50X2dldF93aWR0aChXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBz
ZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50CiAgKgogICogUmV0
dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQg
Z2xvbmcKIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF9oZWlnaHQoV2ViS2l0RE9N
SFRNTEZyYW1lRWxlbWVudCogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTEZyYW1lU2V0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAKaW5k
ZXggNzViY2U0MzM4MGMuLmIxZWRlNWI0M2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZyYW1lU2V0
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGcmFtZVNldEVsZW1lbnQuY3BwCkBAIC0zNiw2ICsz
Niw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
IAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBXZWJLaXRET01IVE1MRnJhbWVTZXRFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTEZyYW1l
U2V0RWxlbWVudCogb2JqKQpAQCAtMjA0LDMgKzIwNiw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1s
X2ZyYW1lX3NldF9lbGVtZW50X3NldF9yb3dzKFdlYktpdERPTUhUTUxGcmFtZVNldEVsZW1lbnQq
IHNlCiAgICAgaXRlbS0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3Jl
OjpIVE1MTmFtZXM6OnJvd3NBdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRf
SUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRnJhbWVTZXRFbGVtZW50
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTEZyYW1lU2V0RWxlbWVudC5oCmluZGV4IGJhMmIxYmQwMTNhLi4yNTIwOGYz
NGE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGcmFtZVNldEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TEZyYW1lU2V0RWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRN
TEZyYW1lU2V0RWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBh
cmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdU
eXBlCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfc2V0X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAK
IC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ZyYW1lX3NldF9lbGVtZW50
X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGcmFtZVNldEVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfc2V0X2VsZW1lbnRf
Z2V0X2NvbHMoV2ViS2l0RE9NSFRNTEZyYW1lU2V0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
NjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ZyYW1lX3NldF9lbGVtZW50X2dldF9jb2xz
KFdlYktpdERPTUhUTUxGcmFtZVNldEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxGcmFtZVNldEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2Zy
YW1lX3NldF9lbGVtZW50X3NldF9jb2xzKFdlYktpdERPTUhUTUxGcmFtZVNldEVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2ZyYW1lX3NldF9lbGVtZW50X3NldF9jb2xzKFdlYktpdERPTUhUTUxGcmFtZVNl
dEVsZW1lbnQqIHNlbGYsIGMKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRnJhbWVTZXRFbGVt
ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dF
QktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2ZyYW1lX3NldF9lbGVtZW50
X2dldF9yb3dzKFdlYktpdERPTUhUTUxGcmFtZVNldEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTgwLDggKzg2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9zZXRfZWxlbWVudF9nZXRfcm93
cyhXZWJLaXRET01IVE1MRnJhbWVTZXRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MRnJhbWVTZXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9m
cmFtZV9zZXRfZWxlbWVudF9zZXRfcm93cyhXZWJLaXRET01IVE1MRnJhbWVTZXRFbGVtZW50KiBz
ZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxIUkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIUkVsZW1lbnQuY3BwCmluZGV4IDliMDEwYmYy
Zjc0Li4yZjZlMjQwYjEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIUkVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MSFJFbGVtZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9H
ZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVf
REVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTEhSRWxl
bWVudCoga2l0KFdlYkNvcmU6OkhUTUxIUkVsZW1lbnQqIG9iaikKQEAgLTI3NCwzICsyNzYsNCBA
QCB2b2lkIHdlYmtpdF9kb21faHRtbF9ocl9lbGVtZW50X3NldF93aWR0aChXZWJLaXRET01IVE1M
SFJFbGVtZW50KiBzZWxmLCBjb25zdCBnYwogICAgIGl0ZW0tPnNldEF0dHJpYnV0ZVdpdGhvdXRT
eW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjp3aWR0aEF0dHIsIGNvbnZlcnRlZFZh
bHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxIUkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSFJFbGVtZW50LmgKaW5kZXggNmZhY2JjMGVk
ZjUuLmYwM2QwN2VkYWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEhSRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MSFJFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1M
SFJFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2Ns
YXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdl
YmtpdF9kb21faHRtbF9ocl9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDgg
KzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9ocl9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxIUkVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hh
cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJr
aXRfZG9tX2h0bWxfaHJfZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRNTEhSRWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2hyX2VsZW1l
bnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxIUkVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxIUkVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2hy
X2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERPTUhUTUxIUkVsZW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2hy
X2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERPTUhUTUxIUkVsZW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxIUkVsZW1lbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRF
RCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX2hyX2VsZW1lbnRfZ2V0X25vX3NoYWRlKFdlYktp
dERPTUhUTUxIUkVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9ocl9lbGVtZW50X2dldF9ub19zaGFkZShXZWJLaXRET01IVE1MSFJFbGVtZW50
KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSFJFbGVtZW50CiAgKiBAdmFsdWU6
IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21faHRtbF9ocl9lbGVtZW50X3NldF9ub19zaGFkZShXZWJLaXRET01I
VE1MSFJFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIC8qKgpAQCAtODksOCArOTcs
MTAgQEAgd2Via2l0X2RvbV9odG1sX2hyX2VsZW1lbnRfc2V0X25vX3NoYWRlKFdlYktpdERPTUhU
TUxIUkVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHYKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
SFJFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hh
cioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2hyX2VsZW1lbnRf
Z2V0X3NpemUoV2ViS2l0RE9NSFRNTEhSRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtOTgsOCAr
MTA4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9ocl9lbGVtZW50X2dldF9zaXplKFdlYktpdERPTUhU
TUxIUkVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxIUkVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2hyX2VsZW1lbnRfc2V0X3NpemUoV2ViS2l0
RE9NSFRNTEhSRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0x
MDcsOCArMTE5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9ocl9lbGVtZW50X3NldF9zaXplKFdlYktp
dERPTUhUTUxIUkVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTEhSRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9o
cl9lbGVtZW50X2dldF93aWR0aChXZWJLaXRET01IVE1MSFJFbGVtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC0xMTYsOCArMTMwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9ocl9lbGVtZW50X2dldF93aWR0
aChXZWJLaXRET01IVE1MSFJFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MSFJFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9ocl9lbGVtZW50X3Nl
dF93aWR0aChXZWJLaXRET01IVE1MSFJFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
OwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIZWFkRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTEhlYWRFbGVtZW50LmNwcAppbmRleCA5NjVmN2M5NDZkYy4uZWQ0NjllYzlkODYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MSGVhZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSGVhZEVsZW1l
bnQuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MSGVhZEVsZW1lbnQqIGtpdChXZWJD
b3JlOjpIVE1MSGVhZEVsZW1lbnQqIG9iaikKQEAgLTE2OCwzICsxNzAsNCBAQCB2b2lkIHdlYmtp
dF9kb21faHRtbF9oZWFkX2VsZW1lbnRfc2V0X3Byb2ZpbGUoV2ViS2l0RE9NSFRNTEhlYWRFbGVt
ZW50KiBzZWxmLCBjbwogICAgIGl0ZW0tPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24oV2ViQ29yZTo6SFRNTE5hbWVzOjpwcm9maWxlQXR0ciwgY29udmVydGVkVmFsdWUpOwogfQog
CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEhl
YWRFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTEhlYWRFbGVtZW50LmgKaW5kZXggY2U4MTZjZTY5NGUuLjlm
Y2RjNGYyMTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEhlYWRFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxIZWFkRWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTEhl
YWRFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2Ns
YXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdl
YmtpdF9kb21faHRtbF9oZWFkX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMs
OCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2hlYWRfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSGVhZEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIq
CiB3ZWJraXRfZG9tX2h0bWxfaGVhZF9lbGVtZW50X2dldF9wcm9maWxlKFdlYktpdERPTUhUTUxI
ZWFkRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2hlYWRfZWxlbWVudF9nZXRfcHJvZmlsZShXZWJLaXRET01IVE1MSGVhZEVsZW1lbnQqIHNl
bGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxIZWFkRWxlbWVudAogICogQHZhbHVlOiBB
ICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2h0bWxfaGVhZF9lbGVtZW50X3NldF9wcm9maWxlKFdlYktpdERPTUhUTUxI
ZWFkRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MSGVhZGluZ0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIZWFkaW5nRWxl
bWVudC5jcHAKaW5kZXggY2RjNGUyZWI3ZWIuLjE3ZmUxYmMyZjA2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTEhlYWRpbmdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEhlYWRpbmdFbGVtZW50LmNwcApA
QCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTEhlYWRpbmdFbGVtZW50KiBraXQoV2ViQ29yZTo6
SFRNTEhlYWRpbmdFbGVtZW50KiBvYmopCkBAIC0xNjgsMyArMTcwLDQgQEAgdm9pZCB3ZWJraXRf
ZG9tX2h0bWxfaGVhZGluZ19lbGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MSGVhZGluZ0Vs
ZW1lbnQqIHNlbGYKICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9u
KFdlYkNvcmU6OkhUTUxOYW1lczo6YWxpZ25BdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0df
R05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSGVhZGlu
Z0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MSGVhZGluZ0VsZW1lbnQuaAppbmRleCA0NzAwNjJjMDg4ZS4u
YzJiNDJkMTJkZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSGVhZGluZ0VsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTEhlYWRpbmdFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRE
T01IVE1MSGVhZGluZ0VsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFz
cyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRF
RCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2hlYWRpbmdfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsK
IAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaGVhZGluZ19lbGVtZW50
X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxIZWFkaW5nRWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9oZWFkaW5nX2VsZW1lbnRfZ2V0
X2FsaWduKFdlYktpdERPTUhUTUxIZWFkaW5nRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIs
OCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2hlYWRpbmdfZWxlbWVudF9nZXRfYWxpZ24oV2Vi
S2l0RE9NSFRNTEhlYWRpbmdFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MSGVhZGluZ0VsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2hlYWRpbmdf
ZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTEhlYWRpbmdFbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIdG1s
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTEh0bWxFbGVtZW50LmNwcAppbmRleCA2NWVjNzJkYmExZC4u
OTE3YjA2ODk4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSHRtbEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MSHRtbEVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSA8d3RmL0dl
dFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9E
RVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MSHRtbEVs
ZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MSHRtbEVsZW1lbnQqIG9iaikKQEAgLTE2NiwzICsxNjgs
NCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9odG1sX2VsZW1lbnRfc2V0X3ZlcnNpb24oV2ViS2l0
RE9NSFRNTEh0bWxFbGVtZW50KiBzZWxmLCBjbwogICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZFZh
bHVlID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKTsKICAgICBpdGVtLT5zZXRBdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6dmVyc2lvbkF0dHIs
IGNvbnZlcnRlZFZhbHVlKTsKIH0KK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MSHRtbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSHRtbEVsZW1lbnQuaApp
bmRleCAyNjAyMGM1ZGVmNy4uOGM4ZWFmNzQ5YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSHRtbEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTEh0bWxFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3Ry
dWN0IF9XZWJLaXRET01IVE1MSHRtbEVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVs
ZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRf
REVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2h0bWxfZWxlbWVudF9nZXRfdHlwZSh2
b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaHRtbF9lbGVt
ZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxIdG1sRWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9odG1sX2VsZW1lbnRfZ2V0X3Zl
cnNpb24oV2ViS2l0RE9NSFRNTEh0bWxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2
NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaHRtbF9lbGVtZW50X2dldF92ZXJzaW9uKFdlYktpdERP
TUhUTUxIdG1sRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEh0bWxF
bGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9odG1sX2VsZW1lbnRfc2V0X3Zl
cnNpb24oV2ViS2l0RE9NSFRNTEh0bWxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
OwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MSUZyYW1lRWxlbWVudC5jcHAKaW5kZXggZWMyNjljN2FmM2YuLjI4YjUxY2U5MGU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSUZy
YW1lRWxlbWVudC5jcHAKQEAgLTM4LDYgKzM4LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FU
SU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50
KiBraXQoV2ViQ29yZTo6SFRNTElGcmFtZUVsZW1lbnQqIG9iaikKQEAgLTU0MCwzICs1NDIsNCBA
QCBXZWJLaXRET01ET01XaW5kb3cqIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9nZXRf
Y29udGVudF93aW5kb3coV2ViS2l0RE9NSAogICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0
UmVzdWx0LmdldCgpKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQu
aAppbmRleCA3YmM3ZTc3NmUyMS4uNTlmNDVkZjE3NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSUZy
YW1lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudC5oCkBAIC00NSw3ICs0NSw3
IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0
RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBl
CitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50
X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRt
bF9pZnJhbWVfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MSUZyYW1lRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9pZnJh
bWVfZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9n
ZXRfYWxpZ24oV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRt
bF9pZnJhbWVfZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MSUZyYW1lRWxl
bWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9nZXRf
ZnJhbWVfYm9yZGVyKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X2ZyYW1l
X2JvcmRlcihXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZgogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxJRnJhbWVFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9p
ZnJhbWVfZWxlbWVudF9zZXRfZnJhbWVfYm9yZGVyKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50
KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTg5LDggKzk3LDEwIEBAIHdl
YmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9zZXRfZnJhbWVfYm9yZGVyKFdlYktpdERPTUhU
TUxJRnJhbWVFbGVtZW50KiBzZWxmCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElGcmFtZUVs
ZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgor
V0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRf
Z2V0X2hlaWdodChXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
OTgsOCArMTA4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9nZXRfaGVpZ2h0
KFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MSUZyYW1lRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaWZyYW1l
X2VsZW1lbnRfc2V0X2hlaWdodChXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZiwgY29u
c3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMDcsOCArMTE5LDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9pZnJhbWVfZWxlbWVudF9zZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50
KiBzZWxmLCBjb25zCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X2xvbmdf
ZGVzYyhXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTE2LDgg
KzEzMCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X2xvbmdfZGVzYyhX
ZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTElGcmFtZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lmcmFtZV9l
bGVtZW50X3NldF9sb25nX2Rlc2MoV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTI1LDggKzE0MSwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfaWZyYW1lX2VsZW1lbnRfc2V0X2xvbmdfZGVzYyhXZWJLaXRET01IVE1MSUZyYW1lRWxl
bWVudCogc2VsZiwgYwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50CiAg
KgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9E
RVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X2dldF9tYXJn
aW5faGVpZ2h0KFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0x
MzQsOCArMTUyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9nZXRfbWFyZ2lu
X2hlaWdodChXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsCiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTElGcmFtZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lm
cmFtZV9lbGVtZW50X3NldF9tYXJnaW5faGVpZ2h0KFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50
KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE0Myw4ICsxNjMsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X3NldF9tYXJnaW5faGVpZ2h0KFdlYktpdERP
TUhUTUxJRnJhbWVFbGVtZW50KiBzZWwKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSUZyYW1l
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIq
CitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVu
dF9nZXRfbWFyZ2luX3dpZHRoKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0xNTIsOCArMTc0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9n
ZXRfbWFyZ2luX3dpZHRoKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmCiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX2lmcmFtZV9lbGVtZW50X3NldF9tYXJnaW5fd2lkdGgoV2ViS2l0RE9NSFRNTElGcmFt
ZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTYxLDggKzE4
NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfc2V0X21hcmdpbl93aWR0aChX
ZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZgogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxJRnJhbWVFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2lmcmFt
ZV9lbGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0xNzAsOCArMTk2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9n
ZXRfbmFtZShXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X2lmcmFtZV9lbGVtZW50X3NldF9uYW1lKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxm
LCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE3OSw4ICsyMDcsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X3NldF9uYW1lKFdlYktpdERPTUhUTUxJRnJhbWVFbGVt
ZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X2dldF9z
Y3JvbGxpbmcoV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE4
OCw4ICsyMTgsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X2dldF9zY3JvbGxp
bmcoV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxJRnJhbWVFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pZnJh
bWVfZWxlbWVudF9zZXRfc2Nyb2xsaW5nKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxm
LCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE5Nyw4ICsyMjksMTAgQEAgd2Via2l0
X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X3NldF9zY3JvbGxpbmcoV2ViS2l0RE9NSFRNTElGcmFt
ZUVsZW1lbnQqIHNlbGYsIGMKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9nZXRf
c3JjKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMDYsOCAr
MjQwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9nZXRfc3JjKFdlYktpdERP
TUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSUZy
YW1lRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRf
c2V0X3NyYyhXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlKTsKIAogLyoqCkBAIC0yMTUsOCArMjUxLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pZnJhbWVf
ZWxlbWVudF9zZXRfc3JjKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmLCBjb25zdCBn
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2No
YXIqCiB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X3dpZHRoKFdlYktpdERPTUhU
TUxJRnJhbWVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMjQsOCArMjYyLDEwIEBAIHdlYmtp
dF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9nZXRfd2lkdGgoV2ViS2l0RE9NSFRNTElGcmFtZUVs
ZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50CiAg
KiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBS
RUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9zZXRfd2lkdGgoV2Vi
S2l0RE9NSFRNTElGcmFtZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8q
KgpAQCAtMjMzLDggKzI3MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfc2V0
X3dpZHRoKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVy
IG5vbmUpOiBBICNXZWJLaXRET01Eb2N1bWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTURv
Y3VtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRG9jdW1lbnQqCiB3ZWJraXRfZG9t
X2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X2NvbnRlbnRfZG9jdW1lbnQoV2ViS2l0RE9NSFRNTElG
cmFtZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTI0Miw4ICsyODQsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2lmcmFtZV9lbGVtZW50X2dldF9jb250ZW50X2RvY3VtZW50KFdlYktpdERPTUhUTUxJ
RnJhbWVFbGVtZW50KgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50CiAg
KgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01ET01XaW5kb3cKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBXZWJLaXRET01ET01XaW5kb3cqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJL
aXRET01ET01XaW5kb3cqCiB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X2NvbnRl
bnRfd2luZG93KFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmKTsKIAogR19FTkRfREVD
TFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSW1hZ2VF
bGVtZW50LmNwcAppbmRleCBlNGVjNGQzNDY1MC4uNzViYzk2MjUzY2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudC5jcHAKQEAg
LTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1M
SW1hZ2VFbGVtZW50KiBvYmopCkBAIC03MDUsMyArNzA3LDQgQEAgZ2xvbmcgd2Via2l0X2RvbV9o
dG1sX2ltYWdlX2VsZW1lbnRfZ2V0X3koV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZikK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxJbWFnZUVsZW1l
bnQuaAppbmRleCBiNDkyODM0OGY0Yy4uYmQ0Y2I1OGZkMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
SW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQuaApAQCAtNDUsNyArNDUs
NyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0
RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBl
CitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRf
Z2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1s
X2ltYWdlX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TEltYWdlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9pbWFnZV9l
bGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF9uYW1l
KFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxJbWFnZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2ltYWdlX2Vs
ZW1lbnRfc2V0X25hbWUoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZiwgY29uc3QgZ2No
YXIqIHZhbHVlKTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1h
Z2VfZWxlbWVudF9zZXRfbmFtZShXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBjb25z
dCBnYwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQKICAqCiAgKiBSZXR1
cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQg
Z2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9N
SFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtODAsOCArODYsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxJbWFnZUVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQKICAqIEB2
YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERP
TUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAt
ODksOCArOTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0X2FsaWduKFdl
YktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGcKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MSW1hZ2VFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1s
X2ltYWdlX2VsZW1lbnRfZ2V0X2FsdChXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsK
IAogLyoqCkBAIC05OCw4ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRf
Z2V0X2FsdChXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9p
bWFnZV9lbGVtZW50X3NldF9hbHQoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZiwgY29u
c3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMDcsOCArMTE5LDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9pbWFnZV9lbGVtZW50X3NldF9hbHQoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2NoCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAogICoK
ICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF9ib3JkZXIo
V2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTE2LDggKzEzMCwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfYm9yZGVyKFdlYktpdERPTUhU
TUxJbWFnZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbWFnZUVs
ZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0X2Jv
cmRlcihXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
OwogCiAvKioKQEAgLTEyNSw4ICsxNDEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1l
bnRfc2V0X2JvcmRlcihXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBjb25zdAogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Vi
a2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X2hlaWdodChXZWJLaXRET01IVE1MSW1hZ2VF
bGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMzQsOCArMTUyLDEwIEBAIHdlYmtpdF9kb21faHRt
bF9pbWFnZV9lbGVtZW50X2dldF9oZWlnaHQoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAogICogQHZhbHVlOiBB
ICNnbG9uZwogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9zZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxJ
bWFnZUVsZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCkBAIC0xNDMsOCArMTYzLDEw
IEBAIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X3NldF9oZWlnaHQoV2ViS2l0RE9NSFRN
TEltYWdlRWxlbWVudCogc2VsZiwgZ2xvbmcKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW1h
Z2VFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9u
ZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50
X2dldF9oc3BhY2UoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
MTUyLDggKzE3NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfaHNwYWNl
KFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxJbWFnZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2ltYWdlX2Vs
ZW1lbnRfc2V0X2hzcGFjZShXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBnbG9uZyB2
YWx1ZSk7CiAKIC8qKgpAQCAtMTYxLDggKzE4NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2Vf
ZWxlbWVudF9zZXRfaHNwYWNlKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYsIGdsb25n
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVE
IGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfaXNfbWFwKFdlYktp
dERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE3MCw4ICsxOTYsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X2lzX21hcChXZWJLaXRET01IVE1MSW1h
Z2VFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50
CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X3NldF9pc19t
YXAoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAv
KioKQEAgLTE3OSw4ICsyMDcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0
X2lzX21hcChXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBnYm9vbGUKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0
X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X2xvbmdfZGVzYyhXZWJLaXRET01IVE1MSW1hZ2VF
bGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xODgsOCArMjE4LDEwIEBAIHdlYmtpdF9kb21faHRt
bF9pbWFnZV9lbGVtZW50X2dldF9sb25nX2Rlc2MoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAogICogQHZhbHVl
OiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2
b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9zZXRfbG9uZ19kZXNjKFdlYktpdERP
TUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAt
MTk3LDggKzIyOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9zZXRfbG9uZ19k
ZXNjKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYsIGNvbgogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxJbWFnZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0
bWxfaW1hZ2VfZWxlbWVudF9nZXRfc3JjKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTIwNiw4ICsyNDAsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1l
bnRfZ2V0X3NyYyhXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRt
bF9pbWFnZV9lbGVtZW50X3NldF9zcmMoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0yMTUsOCArMjUxLDEwIEBAIHdlYmtpdF9k
b21faHRtbF9pbWFnZV9lbGVtZW50X3NldF9zcmMoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCog
c2VsZiwgY29uc3QgZ2NoCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAog
ICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRf
REVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF91c2Vf
bWFwKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTIyNCw4ICsy
NjIsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X3VzZV9tYXAoV2ViS2l0
RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElt
YWdlRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9z
ZXRfdXNlX21hcChXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciog
dmFsdWUpOwogCiAvKioKQEAgLTIzMyw4ICsyNzMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdl
X2VsZW1lbnRfc2V0X3VzZV9tYXAoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZiwgY29u
c3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50CiAgKgogICogUmV0dXJu
czogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xv
bmcKIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF92c3BhY2UoV2ViS2l0RE9NSFRN
TEltYWdlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjQyLDggKzI4NCwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfdnNwYWNlKFdlYktpdERPTUhUTUxJbWFnZUVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQKICAqIEB2
YWx1ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0X3ZzcGFjZShXZWJLaXRE
T01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAKIC8qKgpAQCAtMjUxLDgg
KzI5NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9zZXRfdnNwYWNlKFdlYktp
dERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYsIGdsb25nCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTEltYWdlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2Vf
ZWxlbWVudF9nZXRfd2lkdGgoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtMjYwLDggKzMwNiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRf
d2lkdGgoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTEltYWdlRWxlbWVudAogICogQHZhbHVlOiBBICNnbG9uZwogICoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW1h
Z2VfZWxlbWVudF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZiwgZ2xv
bmcgdmFsdWUpOwogCiAvKioKQEAgLTI2OSw4ICszMTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lt
YWdlX2VsZW1lbnRfc2V0X3dpZHRoKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYsIGds
b25nIHYKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50CiAgKgogICogUmV0
dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJF
Q0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF9jb21wbGV0
ZShXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNzgsOCArMzI4
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF9jb21wbGV0ZShXZWJLaXRE
T01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW1h
Z2VFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hh
cioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1l
bnRfZ2V0X2xvd3NyYyhXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC0yODcsOCArMzM5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF9sb3dz
cmMoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTEltYWdlRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2Vf
ZWxlbWVudF9zZXRfbG93c3JjKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYsIGNvbnN0
IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjk2LDggKzM1MCwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfaW1hZ2VfZWxlbWVudF9zZXRfbG93c3JjKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNl
bGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAogICoKICAq
IFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNB
VEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfbmF0dXJhbF9oZWln
aHQoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMzA1LDggKzM2
MSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfbmF0dXJhbF9oZWlnaHQo
V2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZgogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxJbWFnZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1sX2ltYWdlX2Vs
ZW1lbnRfZ2V0X25hdHVyYWxfd2lkdGgoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtMzE0LDggKzM3MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVu
dF9nZXRfbmF0dXJhbF93aWR0aChXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKQogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Vi
a2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X3goV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtMzIzLDggKzM4MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1h
Z2VfZWxlbWVudF9nZXRfeChXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xv
bmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtp
dF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF95KFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQq
IHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGQ3ZDdmZmIxYmI1Li5hMWEyMGY1
YjA0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
SW5wdXRFbGVtZW50LmNwcApAQCAtNDAsNiArNDAsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVD
QVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTElucHV0RWxlbWVu
dCoga2l0KFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQqIG9iaikKQEAgLTEwMDcsMyArMTAwOSw0
IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2VkaXRpbmdfdmFsdWUo
V2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCoKIAogICBXZWJLaXQ6OmNvcmUoc2VsZiktPnNldEVk
aXRpbmdWYWx1ZShXVEY6OlN0cmluZzo6ZnJvbVVURjgodmFsdWUpKTsKIH0KK0dfR05VQ19FTkRf
SUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSW5wdXRFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDU0MzM0NDJlZGQ4Li45NmFlYmIyNGRiMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTElucHV0RWxl
bWVudC5oCkBAIC00NSwxNSArNDUsMTcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MSW5wdXRFbGVt
ZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwog
fTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9k
b21faHRtbF9pbnB1dF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKICAqIHdlYmtpdF9k
b21faHRtbF9pbnB1dF9lbGVtZW50X3NlbGVjdDoKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
SW5wdXRFbGVtZW50CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NlbGVjdChXZWJLaXRET01IVE1M
SW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02MSw4ICs2MywxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfaW5wdXRfZWxlbWVudF9zZWxlY3QoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICoKICAqIFJldHVy
bnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBn
Y2hhcioKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9hY2NlcHQoV2ViS2l0RE9N
SFRNTElucHV0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNzAsOCArNzQsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2FjY2VwdChXZWJLaXRET01IVE1MSW5wdXRFbGVt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKiBA
dmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9hY2NlcHQoV2ViS2l0
RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBA
IC03OSw4ICs4NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfYWNjZXB0
KFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTElucHV0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRt
bF9pbnB1dF9lbGVtZW50X2dldF9hbHQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtODgsOCArOTYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRf
Z2V0X2FsdChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9p
bnB1dF9lbGVtZW50X3NldF9hbHQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgY29u
c3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC05Nyw4ICsxMDcsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2lucHV0X2VsZW1lbnRfc2V0X2FsdChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxm
LCBjb25zdCBnY2gKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9h
dXRvZm9jdXMoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTA2
LDggKzExOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfYXV0b2ZvY3Vz
KFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxJbnB1dEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lucHV0
X2VsZW1lbnRfc2V0X2F1dG9mb2N1cyhXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBn
Ym9vbGVhbiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTE1LDggKzEyOSwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfaW5wdXRfZWxlbWVudF9zZXRfYXV0b2ZvY3VzKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQq
IHNlbGYsIGdibwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqCiAg
KiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRf
REVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2Rl
ZmF1bHRfY2hlY2tlZChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC0xMjUsOCArMTQxLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9kZWZh
dWx0X2NoZWNrZWQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsCiAgKiBAdmFsdWU6IEEg
I2dib29sZWFuCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfZGVm
YXVsdF9jaGVja2VkKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZh
bHVlKTsKIAogLyoqCkBAIC0xMzQsOCArMTUyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9l
bGVtZW50X3NldF9kZWZhdWx0X2NoZWNrZWQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2Vs
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVE
IGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfY2hlY2tlZChXZWJL
aXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNDMsOCArMTYzLDEwIEBA
IHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9jaGVja2VkKFdlYktpdERPTUhUTUxJ
bnB1dEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1l
bnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2No
ZWNrZWQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwog
CiAvKioKQEAgLTE1Miw4ICsxNzQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRf
c2V0X2NoZWNrZWQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgZ2Jvb2wKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jv
b2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xl
YW4KIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9kaXNhYmxlZChXZWJLaXRET01I
VE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNjEsOCArMTg1LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9kaXNhYmxlZChXZWJLaXRET01IVE1MSW5wdXRF
bGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAg
KiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9kaXNhYmxl
ZChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIC8q
KgpAQCAtMTcwLDggKzE5NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRf
ZGlzYWJsZWQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgZ2JvbwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
bm9uZSk6IEEgI1dlYktpdERPTUhUTUxGb3JtRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktp
dERPTUhUTUxGb3JtRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxGb3Jt
RWxlbWVudCoKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9mb3JtKFdlYktpdERP
TUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE3OSw4ICsyMDcsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2Zvcm0oV2ViS2l0RE9NSFRNTElucHV0RWxl
bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICoK
ICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NRmlsZUxpc3QKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBXZWJLaXRET01GaWxlTGlzdCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERP
TUZpbGVMaXN0Kgogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2ZpbGVzKFdlYktp
dERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE4OCw4ICsyMTgsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2ZpbGVzKFdlYktpdERPTUhUTUxJbnB1
dEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NRmlsZUxpc3QKICAqCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRf
c2V0X2ZpbGVzKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIFdlYktpdERPTUZpbGVM
aXN0KiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTk3LDggKzIyOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
aW5wdXRfZWxlbWVudF9zZXRfZmlsZXMoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwg
V2ViS2l0RAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNndWxvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNB
VEVEIGd1bG9uZwogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2hlaWdodChXZWJL
aXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMDYsOCArMjQwLDEwIEBA
IHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9oZWlnaHQoV2ViS2l0RE9NSFRNTElu
cHV0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVu
dAogICogQHZhbHVlOiBBICNndWxvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2hlaWdo
dChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBndWxvbmcgdmFsdWUpOwogCiAvKioK
QEAgLTIxNSw4ICsyNTEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2hl
aWdodChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBndWxvbmcKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4K
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdl
YmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9pbmRldGVybWluYXRlKFdlYktpdERPTUhU
TUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTIyNCw4ICsyNjIsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2luZGV0ZXJtaW5hdGUoV2ViS2l0RE9NSFRNTElu
cHV0RWxlbWVudCogc2VsZikKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50
CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9pbmRl
dGVybWluYXRlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVl
KTsKIAogLyoqCkBAIC0yMzMsOCArMjczLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVt
ZW50X3NldF9pbmRldGVybWluYXRlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsCiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEg
I2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3
ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfbWF4X2xlbmd0aChXZWJLaXRET01IVE1M
SW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNDMsOCArMjg1LDEwIEBAIHdlYmtpdF9k
b21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9tYXhfbGVuZ3RoKFdlYktpdERPTUhUTUxJbnB1dEVs
ZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNnbG9uZwogICogQGVycm9yOiAjR0Vycm9yCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9tYXhfbGVuZ3RoKFdlYktpdERPTUhUTUxJbnB1dEVs
ZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMjUy
LDggKzI5NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfbWF4X2xlbmd0
aChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBnbAogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxJbnB1dEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2Rv
bV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X211bHRpcGxlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTI2MSw4ICszMDcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lu
cHV0X2VsZW1lbnRfZ2V0X211bHRpcGxlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9p
ZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X211bHRpcGxlKFdlYktpdERPTUhU
TUxJbnB1dEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBAIC0yNzAsOCAr
MzE4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9tdWx0aXBsZShXZWJL
aXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBnYm9vCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTElucHV0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9pbnB1
dF9lbGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTI3OSw4ICszMjksMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0
X25hbWUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTElucHV0RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW5w
dXRfZWxlbWVudF9zZXRfbmFtZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTI5MCw4ICszNDIsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2lucHV0X2VsZW1lbnRfc2V0X25hbWUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2MKICAqIFJldHVybnM6IEEgI2dib29sZWFuCiAgKgogICogU2luY2U6IDIuMTYK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdl
YmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9yZWFkX29ubHkoV2ViS2l0RE9NSFRNTElu
cHV0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjk5LDggKzM1MywxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfcmVhZF9vbmx5KFdlYktpdERPTUhUTUxJbnB1dEVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqIEB2
YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X3JlYWRfb25seShX
ZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIC8qKgpA
QCAtMzA4LDggKzM2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfcmVh
ZF9vbmx5KFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGdibwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNndWxvbmcKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Via2l0X2Rv
bV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X3NpemUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMzE4LDggKzM3NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRf
ZWxlbWVudF9nZXRfc2l6ZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKICAqIEB2
YWx1ZTogQSAjZ3Vsb25nCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1l
bnRfc2V0X3NpemUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgZ3Vsb25nIHZhbHVl
LCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMzI3LDggKzM4NywxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfc2l6ZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBz
ZWxmLCBndWxvbmcgdgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfc3JjKFdl
YktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTMzNiw4ICszOTgsMTAg
QEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X3NyYyhXZWJLaXRET01IVE1MSW5w
dXRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50
CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9zcmMoV2Vi
S2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoq
CkBAIC0zNDUsOCArNDA5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9z
cmMoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoCiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9k
b21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9pbnB1dF90eXBlKFdlYktpdERPTUhUTUxJbnB1dEVs
ZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTM1NCw4ICs0MjAsMTAgQEAgd2Via2l0X2RvbV9odG1s
X2lucHV0X2VsZW1lbnRfZ2V0X2lucHV0X3R5cGUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICogQHZhbHVl
OiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2
b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfaW5wdXRfdHlwZShXZWJLaXRE
T01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAg
LTM2Myw4ICs0MzEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2lucHV0
X3R5cGUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgY28KICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9o
dG1sX2lucHV0X2VsZW1lbnRfZ2V0X2RlZmF1bHRfdmFsdWUoV2ViS2l0RE9NSFRNTElucHV0RWxl
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMzcyLDggKzQ0MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
aW5wdXRfZWxlbWVudF9nZXRfZGVmYXVsdF92YWx1ZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50
KiBzZWxmKQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqIEB2YWx1
ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2RlZmF1bHRfdmFsdWUoV2Vi
S2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoq
CkBAIC0zODEsOCArNDUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9k
ZWZhdWx0X3ZhbHVlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsCiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9k
b21faHRtbF9pbnB1dF9lbGVtZW50X2dldF92YWx1ZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC0zOTAsOCArNDY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1
dF9lbGVtZW50X2dldF92YWx1ZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFy
CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtp
dF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF92YWx1ZShXZWJLaXRET01IVE1MSW5wdXRFbGVt
ZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTM5OSw4ICs0NzUsMTAg
QEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X3ZhbHVlKFdlYktpdERPTUhUTUxJ
bnB1dEVsZW1lbnQqIHNlbGYsIGNvbnN0IGcKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5w
dXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ3Vsb25nCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ3Vs
b25nCitXRUJLSVRfREVQUkVDQVRFRCBndWxvbmcKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVt
ZW50X2dldF93aWR0aChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC00MDgsOCArNDg2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF93aWR0
aChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MSW5wdXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2d1bG9uZwogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRf
ZWxlbWVudF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgZ3Vsb25n
IHZhbHVlKTsKIAogLyoqCkBAIC00MTcsOCArNDk3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1
dF9lbGVtZW50X3NldF93aWR0aChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBndWxv
bmcKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKgogICogUmV0dXJu
czogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF93aWxsX3ZhbGlk
YXRlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTQyNiw4ICs1
MDgsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X3dpbGxfdmFsaWRhdGUo
V2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZikKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MSW5wdXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2lucHV0
X2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTQzNSw4ICs1MTksMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0
X2FsaWduKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lu
cHV0X2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNDQ0LDggKzUzMCwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCog
c2VsZiwgY29uc3QgZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfdXNlX21h
cChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC00NTMsOCArNTQx
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF91c2VfbWFwKFdlYktpdERP
TUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1
dEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0
X3VzZV9tYXAoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlKTsKIAogLyoqCkBAIC00NjQsOCArNTU0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9l
bGVtZW50X3NldF91c2VfbWFwKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGNvbnN0
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE0CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9pbnB1
dF9lbGVtZW50X2dldF9jYXB0dXJlX3R5cGUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtNDc0LDggKzU2NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxl
bWVudF9nZXRfY2FwdHVyZV90eXBlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwog
ICogQHZhbHVlOiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1l
bnRfc2V0X2NhcHR1cmVfdHlwZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTQ4Myw4ICs1NzcsMTEgQEAgd2Via2l0X2RvbV9o
dG1sX2lucHV0X2VsZW1lbnRfc2V0X2NhcHR1cmVfdHlwZShXZWJLaXRET01IVE1MSW5wdXRFbGVt
ZW50KiBzZWxmLAogICogQGlucHV0OiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ugd2Vi
a2l0X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRfZWxlbWVudF9pc191c2VyX2VkaXRlZCgpIGluc3Rl
YWQuCiAgKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4gd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1l
bnRfaXNfZWRpdGVkKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIGlucHV0KTsKK1dFQktJVF9E
RVBSRUNBVEVEX0ZPUih3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X2lzX3Vz
ZXJfZWRpdGVkKSBnYm9vbGVhbgord2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfaXNfZWRp
dGVkKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIGlucHV0KTsKIAogLyoqCiAgKiB3ZWJraXRf
ZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfYXV0b19maWxsZWQ6CkBAIC00OTMsOCArNTkwLDEw
IEBAIFdFQktJVF9BUEkgZ2Jvb2xlYW4gd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfaXNf
ZWRpdGVkKFdlYktpdERPTUhUTUxJbnB1dEVsCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgogICoK
ICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIHdlYmtpdF9kb21f
ZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2F1dG9fZmlsbGVkKCkgaW5zdGVhZC4KICAq
LwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURURfRk9SKHdlYmtpdF9kb21f
ZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2F1dG9fZmlsbGVkKSBnYm9vbGVhbgogd2Vi
a2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2F1dG9fZmlsbGVkKFdlYktpdERPTUhUTUxJ
bnB1dEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTUwMyw4ICs2MDIsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2F1dG9fZmlsbGVkKFdlYktpdERPTUhUTUxJbnB1dEVs
ZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIHdlYmtpdF9kb21fZWxlbWVudF9odG1sX2lu
cHV0X2VsZW1lbnRfc2V0X2F1dG9fZmlsbGVkKCkgaW5zdGVhZC4KICAqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRF9GT1Iod2Via2l0X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRf
ZWxlbWVudF9zZXRfYXV0b19maWxsZWQpIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVt
ZW50X3NldF9hdXRvX2ZpbGxlZChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBnYm9v
bGVhbiB2YWx1ZSk7CiAKIC8qKgpAQCAtNTEzLDggKzYxNCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
aW5wdXRfZWxlbWVudF9zZXRfYXV0b19maWxsZWQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCog
c2VsZiwgZwogICogQHZhbHVlOiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIHdlYmtpdF9kb21fZWxlbWVudF9odG1sX2lucHV0X2VsZW1l
bnRfc2V0X2VkaXRpbmdfdmFsdWUoKSBpbnN0ZWFkLgogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEX0ZPUih3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50
X3NldF9lZGl0aW5nX3ZhbHVlKSB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9z
ZXRfZWRpdGluZ192YWx1ZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBjb25zdCBn
Y2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMSUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxMSUVsZW1lbnQuY3BwCmluZGV4IDcxMzMxYzM2NGRmLi5jNjBhZDdm
ZmI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMSUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTElF
bGVtZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05T
OworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTExJRWxlbWVudCoga2l0KFdl
YkNvcmU6OkhUTUxMSUVsZW1lbnQqIG9iaikKQEAgLTIwMiwzICsyMDQsNCBAQCB2b2lkIHdlYmtp
dF9kb21faHRtbF9saV9lbGVtZW50X3NldF92YWx1ZShXZWJLaXRET01IVE1MTElFbGVtZW50KiBz
ZWxmLCBnbG9uZyB2YQogICAgIGl0ZW0tPnNldEludGVncmFsQXR0cmlidXRlKFdlYkNvcmU6OkhU
TUxOYW1lczo6dmFsdWVBdHRyLCB2YWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJF
Q0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTElFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExJRWxl
bWVudC5oCmluZGV4IGNmZDFlMDU1NzljLi43N2IzZDUxY2U1MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxMSUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExJRWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBA
IHN0cnVjdCBfV2ViS2l0RE9NSFRNTExJRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1M
RWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJ
VF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfbGlfZWxlbWVudF9nZXRfdHlwZSh2
b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbGlfZWxlbWVu
dF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTElFbGVtZW50CiAg
KgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9E
RVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2xpX2VsZW1lbnRfZ2V0X3R5cGVfYXR0
cihXZWJLaXRET01IVE1MTElFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfbGlfZWxlbWVudF9nZXRfdHlwZV9hdHRyKFdlYktpdERPTUhUTUxM
SUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxMSUVsZW1lbnQKICAq
IEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2xpX2VsZW1lbnRfc2V0X3R5cGVfYXR0cihXZWJL
aXRET01IVE1MTElFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAg
LTcxLDggKzc1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9saV9lbGVtZW50X3NldF90eXBlX2F0dHIo
V2ViS2l0RE9NSFRNTExJRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoCiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTExJRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfbGlf
ZWxlbWVudF9nZXRfdmFsdWUoV2ViS2l0RE9NSFRNTExJRWxlbWVudCogc2VsZik7CiAKIC8qKgpA
QCAtODAsOCArODYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2xpX2VsZW1lbnRfZ2V0X3ZhbHVlKFdl
YktpdERPTUhUTUxMSUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxM
SUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2xpX2VsZW1lbnRfc2V0X3Zh
bHVlKFdlYktpdERPTUhUTUxMSUVsZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogR19FTkRf
REVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGFiZWxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGFi
ZWxFbGVtZW50LmNwcAppbmRleCA5ODc5ZjJiYzI0Yi4uMzc2M2M1NzNkMGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MTGFiZWxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExhYmVsRWxlbWVudC5jcHAK
QEAgLTM4LDYgKzM4LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxMYWJlbEVsZW1lbnQqIGtpdChXZWJDb3JlOjpI
VE1MTGFiZWxFbGVtZW50KiBvYmopCkBAIC0xOTIsMyArMTk0LDQgQEAgdm9pZCB3ZWJraXRfZG9t
X2h0bWxfbGFiZWxfZWxlbWVudF9zZXRfaHRtbF9mb3IoV2ViS2l0RE9NSFRNTExhYmVsRWxlbWVu
dCogc2VsZiwKICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdl
YkNvcmU6OkhUTUxOYW1lczo6Zm9yQXR0ciwgY29udmVydGVkVmFsdWUpOwogfQogCitHX0dOVUNf
RU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExhYmVsRWxlbWVu
dC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxMYWJlbEVsZW1lbnQuaAppbmRleCAwMWI3ZDY4ODA5Zi4uNmQzZTUxNjg3
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGFiZWxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMYWJl
bEVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxMYWJlbEVs
ZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7
CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0
X2RvbV9odG1sX2xhYmVsX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCAr
NTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2xhYmVsX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExhYmVsRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0
cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9N
SFRNTEZvcm1FbGVtZW50Kgogd2Via2l0X2RvbV9odG1sX2xhYmVsX2VsZW1lbnRfZ2V0X2Zvcm0o
V2ViS2l0RE9NSFRNTExhYmVsRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAg
QEAgd2Via2l0X2RvbV9odG1sX2xhYmVsX2VsZW1lbnRfZ2V0X2Zvcm0oV2ViS2l0RE9NSFRNTExh
YmVsRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExhYmVsRWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9sYWJlbF9lbGVtZW50X2dldF9o
dG1sX2ZvcihXZWJLaXRET01IVE1MTGFiZWxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC03MSw4
ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbGFiZWxfZWxlbWVudF9nZXRfaHRtbF9mb3IoV2Vi
S2l0RE9NSFRNTExhYmVsRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TExhYmVsRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfbGFiZWxfZWxlbWVu
dF9zZXRfaHRtbF9mb3IoV2ViS2l0RE9NSFRNTExhYmVsRWxlbWVudCogc2VsZiwgY29uc3QgZ2No
YXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGVnZW5kRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTExlZ2VuZEVsZW1lbnQuY3BwCmluZGV4IGM1MjcyNmMxOTBjLi5h
OWM2MmJlN2I5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMZWdlbmRFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTExlZ2VuZEVsZW1lbnQuY3BwCkBAIC0zNyw2ICszNyw4IEBACiAjaW5jbHVkZSA8d3Rm
L0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9S
RV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MTGVn
ZW5kRWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxMZWdlbmRFbGVtZW50KiBvYmopCkBAIC0xOTIs
MyArMTk0LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfbGVnZW5kX2VsZW1lbnRfc2V0X2FsaWdu
KFdlYktpdERPTUhUTUxMZWdlbmRFbGVtZW50KiBzZWxmLAogICAgIGl0ZW0tPnNldEF0dHJpYnV0
ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjphbGlnbkF0dHIsIGNv
bnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxMZWdlbmRFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExlZ2VuZEVsZW1lbnQu
aAppbmRleCA3MGU4NTNjNDU2My4uODI2NmIwNjY2NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGVn
ZW5kRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGVnZW5kRWxlbWVudC5oCkBAIC00NSw3ICs0NSw3
IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTExlZ2VuZEVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0
RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBl
CitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2xlZ2VuZF9lbGVtZW50
X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRt
bF9sZWdlbmRfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MTGVnZW5kRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2Vi
S2l0RE9NSFRNTEZvcm1FbGVtZW50CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTEZvcm1F
bGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50Kgogd2Vi
a2l0X2RvbV9odG1sX2xlZ2VuZF9lbGVtZW50X2dldF9mb3JtKFdlYktpdERPTUhUTUxMZWdlbmRF
bGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
bGVnZW5kX2VsZW1lbnRfZ2V0X2Zvcm0oV2ViS2l0RE9NSFRNTExlZ2VuZEVsZW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxMZWdlbmRFbGVtZW50CiAgKgogICogUmV0dXJu
czogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdj
aGFyKgogd2Via2l0X2RvbV9odG1sX2xlZ2VuZF9lbGVtZW50X2dldF9hbGlnbihXZWJLaXRET01I
VE1MTGVnZW5kRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2xlZ2VuZF9lbGVtZW50X2dldF9hbGlnbihXZWJLaXRET01IVE1MTGVnZW5kRWxl
bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExlZ2VuZEVsZW1lbnQKICAq
IEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2xlZ2VuZF9lbGVtZW50X3NldF9hbGlnbihXZWJL
aXRET01IVE1MTGVnZW5kRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19F
TkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxM
aW5rRWxlbWVudC5jcHAKaW5kZXggY2U4MWJlYjY4OTcuLjc3ZDA0MDI2YWM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTExpbmtFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50LmNwcApA
QCAtMzgsNiArMzgsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRN
TExpbmtFbGVtZW50KiBvYmopCkBAIC01MDgsMyArNTEwLDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0
bWxfbGlua19lbGVtZW50X3NldF9zaXplcyhXZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIGxpbmtF
bGVtZW4KIAogICAgIFdlYktpdDo6Y29yZShsaW5rRWxlbWVudCktPnNpemVzKCkuc2V0VmFsdWUo
U3RyaW5nOjpmcm9tVVRGOCh2YWx1ZSkpOwogfQorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJ
T05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMaW5rRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMaW5rRWxl
bWVudC5oCmluZGV4IDE0YzMzNTNkMTc2Li43NWZjOWI2YThjYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxMaW5rRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGlua0VsZW1lbnQuaApAQCAtNDUsNyArNDUs
NyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxMaW5rRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRE
T01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUK
K1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X2dl
dF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9s
aW5rX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExp
bmtFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Ym9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9saW5r
X2VsZW1lbnRfZ2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9nZXRf
ZGlzYWJsZWQoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MTGlua0VsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X2xpbmtfZWxlbWVudF9zZXRfZGlzYWJsZWQoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxm
LCBnYm9vbGVhbiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2xpbmtfZWxlbWVudF9zZXRfZGlzYWJsZWQoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBz
ZWxmLCBnYm9vbGUKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTGlua0VsZW1lbnQKICAqCiAg
KiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJF
Q0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF9jaGFyc2V0KFdl
YktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtODAsOCArODYsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9nZXRfY2hhcnNldChXZWJLaXRET01IVE1MTGlu
a0VsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxMaW5rRWxlbWVudAog
ICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X3NldF9jaGFyc2V0KFdl
YktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoq
CkBAIC04OSw4ICs5NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X3NldF9jaGFy
c2V0KFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29uc3QgZwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxMaW5rRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21f
aHRtbF9saW5rX2VsZW1lbnRfZ2V0X2hyZWYoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxm
KTsKIAogLyoqCkBAIC05OCw4ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVu
dF9nZXRfaHJlZihXZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxMaW5rRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxf
bGlua19lbGVtZW50X3NldF9ocmVmKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29u
c3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMDcsOCArMTE5LDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9saW5rX2VsZW1lbnRfc2V0X2hyZWYoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxm
LCBjb25zdCBnY2hhCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBS
RUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9nZXRfaHJlZmxhbmco
V2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMTYsOCArMTMwLDEw
IEBAIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfZ2V0X2hyZWZsYW5nKFdlYktpdERPTUhU
TUxMaW5rRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExpbmtFbGVt
ZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfc2V0X2hyZWZs
YW5nKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsK
IAogLyoqCkBAIC0xMjUsOCArMTQxLDEwIEBAIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRf
c2V0X2hyZWZsYW5nKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MTGlua0VsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hh
cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJr
aXRfZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF9tZWRpYShXZWJLaXRET01IVE1MTGlua0VsZW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTEzNCw4ICsxNTIsMTAgQEAgd2Via2l0X2RvbV9odG1sX2xp
bmtfZWxlbWVudF9nZXRfbWVkaWEoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MTGlua0VsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9odG1sX2xpbmtfZWxlbWVudF9zZXRfbWVkaWEoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50
KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE0Myw4ICsxNjMsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9zZXRfbWVkaWEoV2ViS2l0RE9NSFRNTExpbmtF
bGVtZW50KiBzZWxmLCBjb25zdCBnY2gKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTGlua0Vs
ZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgor
V0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X2dl
dF9yZWwoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNTIsOCAr
MTc0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfZ2V0X3JlbChXZWJLaXRET01I
VE1MTGlua0VsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxMaW5rRWxl
bWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X3NldF9yZWwo
V2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAv
KioKQEAgLTE2MSw4ICsxODUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9zZXRf
cmVsKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MTGlua0VsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRf
ZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF9yZXYoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC0xNzAsOCArMTk2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9saW5rX2Vs
ZW1lbnRfZ2V0X3JldihXZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxMaW5rRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0
bWxfbGlua19lbGVtZW50X3NldF9yZXYoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmLCBj
b25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE3OSw4ICsyMDcsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2xpbmtfZWxlbWVudF9zZXRfcmV2KFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTGlua0VsZW1lbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF90YXJnZXQo
V2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xODgsOCArMjE4LDEw
IEBAIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfZ2V0X3RhcmdldChXZWJLaXRET01IVE1M
TGlua0VsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxMaW5rRWxlbWVu
dAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRf
REVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X3NldF90YXJnZXQo
V2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAv
KioKQEAgLTE5Nyw4ICsyMjksMTAgQEAgd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9zZXRf
dGFyZ2V0KFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29uc3QgZ2MKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MTGlua0VsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRf
ZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTExpbmtFbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMDYsOCArMjQwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9s
aW5rX2VsZW1lbnRfZ2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxMaW5rRWxlbWVudAogICogQHZhbHVlOiBBICNn
Y2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3
ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X3NldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTExp
bmtFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTIxNSw4ICsy
NTEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9zZXRfdHlwZV9hdHRyKFdlYktp
dERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MTGlua0VsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktp
dERPTVN0eWxlU2hlZXQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01TdHlsZVNoZWV0KgorV0VC
S0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NU3R5bGVTaGVldCoKIHdlYmtpdF9kb21faHRtbF9saW5r
X2VsZW1lbnRfZ2V0X3NoZWV0KFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtMjI2LDggKzI2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF9z
aGVldChXZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5z
ZmVyIGZ1bGwpOiBBICNXZWJLaXRET01ET01Ub2tlbkxpc3QKICAqCiAgKiBTaW5jZTogMi4xNgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIFdlYktpdERPTURPTVRva2VuTGlzdCoKK1dFQktJVF9ERVBSRUNBVEVE
IFdlYktpdERPTURPTVRva2VuTGlzdCoKIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfZ2V0
X3NpemVzKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjM2LDgg
KzI3NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF9zaXplcyhXZWJLaXRE
T01IVE1MTGlua0VsZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBhICNnY2hhcgogICoKICAqIFNp
bmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9zZXRfc2l6ZXMoV2ViS2l0RE9NSFRNTExpbmtF
bGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxNYXBFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWFwRWxlbWVudC5jcHAKaW5k
ZXggMTFkY2FhOWQ4MTAuLmIxM2JkY2QzZjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1hcEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MTWFwRWxlbWVudC5jcHAKQEAgLTM3LDYgKzM3LDggQEAKICNp
bmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNf
QkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktp
dERPTUhUTUxNYXBFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTE1hcEVsZW1lbnQqIG9iaikKQEAg
LTE5MiwzICsxOTQsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9tYXBfZWxlbWVudF9zZXRfbmFt
ZShXZWJLaXRET01IVE1MTWFwRWxlbWVudCogc2VsZiwgY29uc3QgZwogICAgIGl0ZW0tPnNldEF0
dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpuYW1lQXR0
ciwgY29udmVydGVkVmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTE1hcEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWFwRWxlbWVudC5o
CmluZGV4IDZmNWE2MjU1NWYwLi5kZWNhMTM4ZjI3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNYXBF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxNYXBFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3Ry
dWN0IF9XZWJLaXRET01IVE1MTWFwRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxl
bWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9E
RVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfbWFwX2VsZW1lbnRfZ2V0X3R5cGUodm9p
ZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX21hcF9lbGVtZW50
X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxNYXBFbGVtZW50CiAg
KgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1MQ29sbGVjdGlv
bgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgorV0VCS0lUX0RFUFJF
Q0FURUQgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCiB3ZWJraXRfZG9tX2h0bWxfbWFwX2VsZW1l
bnRfZ2V0X2FyZWFzKFdlYktpdERPTUhUTUxNYXBFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02
Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbWFwX2VsZW1lbnRfZ2V0X2FyZWFzKFdlYktp
dERPTUhUTUxNYXBFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTWFw
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIq
CitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9tYXBfZWxlbWVudF9n
ZXRfbmFtZShXZWJLaXRET01IVE1MTWFwRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNzEsOCAr
NzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX21hcF9lbGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhU
TUxNYXBFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTWFwRWxlbWVu
dAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRf
REVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfbWFwX2VsZW1lbnRfc2V0X25hbWUoV2Vi
S2l0RE9NSFRNTE1hcEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5E
X0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1hcnF1ZWVFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
TWFycXVlZUVsZW1lbnQuY3BwCmluZGV4IDMwODhlOWE4MDVhLi4wMjg1Yzg0NzdkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxNYXJxdWVlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNYXJxdWVlRWxl
bWVudC5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsK
KwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxNYXJxdWVlRWxlbWVudCoga2l0
KFdlYkNvcmU6OkhUTUxNYXJxdWVlRWxlbWVudCogb2JqKQpAQCAtMTE3LDMgKzExOSw0IEBAIHZv
aWQgd2Via2l0X2RvbV9odG1sX21hcnF1ZWVfZWxlbWVudF9zdG9wKFdlYktpdERPTUhUTUxNYXJx
dWVlRWxlbWVudCogc2VsZikKICAgICBXZWJDb3JlOjpIVE1MTWFycXVlZUVsZW1lbnQqIGl0ZW0g
PSBXZWJLaXQ6OmNvcmUoc2VsZik7CiAgICAgaXRlbS0+c3RvcCgpOwogfQorR19HTlVDX0VORF9J
R05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNYXJxdWVlRWxlbWVudC5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxNYXJxdWVlRWxlbWVudC5oCmluZGV4IDBkNmI4MmRmNDAyLi5jNmYwYTE5NmY0
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxNYXJxdWVlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWFy
cXVlZUVsZW1lbnQuaApAQCAtNDUsMjMgKzQ1LDI3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTE1h
cnF1ZWVFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50
X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUK
IHdlYmtpdF9kb21faHRtbF9tYXJxdWVlX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgog
ICogd2Via2l0X2RvbV9odG1sX21hcnF1ZWVfZWxlbWVudF9zdGFydDoKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MTWFycXVlZUVsZW1lbnQKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX21hcnF1ZWVfZWxlbWVudF9zdGFy
dChXZWJLaXRET01IVE1MTWFycXVlZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKICAqIHdlYmtpdF9k
b21faHRtbF9tYXJxdWVlX2VsZW1lbnRfc3RvcDoKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
TWFycXVlZUVsZW1lbnQKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9odG1sX21hcnF1ZWVfZWxlbWVudF9zdG9wKFdlYktpdERPTUhU
TUxNYXJxdWVlRWxlbWVudCogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTE1lbnVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWVudUVsZW1lbnQuY3BwCmluZGV4IGRjNmI2
YjRlNjA5Li4wMzI1Y2I4MWJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNZW51RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxNZW51RWxlbWVudC5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRl
IDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5f
SUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhU
TUxNZW51RWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxNZW51RWxlbWVudCogb2JqKQpAQCAtMTY2
LDMgKzE2OCw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX21lbnVfZWxlbWVudF9zZXRfY29tcGFj
dChXZWJLaXRET01IVE1MTWVudUVsZW1lbnQqIHNlbGYsIGdiCiAgICAgaXRlbS0+c2V0Qm9vbGVh
bkF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmNvbXBhY3RBdHRyLCB2YWx1ZSk7CiB9CiAK
K0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWVu
dUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MTWVudUVsZW1lbnQuaAppbmRleCAxZjY3MDg2MzkzZC4uMmE0
NmI1ODUzNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWVudUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TE1lbnVFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MTWVu
dUVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xh
c3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Vi
a2l0X2RvbV9odG1sX21lbnVfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4
ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbWVudV9lbGVtZW50X2dldF90eXBlKHZvaWQpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxNZW51RWxlbWVudAogICoKICAqIFJldHVybnM6IEEg
I2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdi
b29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfbWVudV9lbGVtZW50X2dldF9jb21wYWN0KFdlYktpdERP
TUhUTUxNZW51RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0
X2RvbV9odG1sX21lbnVfZWxlbWVudF9nZXRfY29tcGFjdChXZWJLaXRET01IVE1MTWVudUVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxNZW51RWxlbWVudAogICogQHZh
bHVlOiBBICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfbWVudV9lbGVtZW50X3NldF9jb21wYWN0KFdlYktp
dERPTUhUTUxNZW51RWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiBHX0VORF9ERUNM
UwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxNZXRhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1ldGFFbGVt
ZW50LmNwcAppbmRleCAwZDUwYzA1NjY1Zi4uNTUyOWJkNTM1NWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MTWV0YUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWV0YUVsZW1lbnQuY3BwCkBAIC0zNiw2
ICszNiw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MTWV0YUVs
ZW1lbnQqIG9iaikKQEAgLTI3NiwzICsyNzgsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9tZXRh
X2VsZW1lbnRfc2V0X3NjaGVtZShXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQqIHNlbGYsIGNvbgog
ICAgIGl0ZW0tPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRN
TE5hbWVzOjpzY2hlbWVBdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdO
T1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWV0YUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MTWV0YUVsZW1lbnQuaAppbmRleCBlY2RhOTcwODRhNS4uZGM4MzcyY2YxYzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MTWV0YUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50LmgK
QEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MTWV0YUVsZW1lbnRDbGFzcyB7
CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJL
SVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX21l
dGFfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfbWV0YV9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxNZXRhRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRt
bF9tZXRhX2VsZW1lbnRfZ2V0X2NvbnRlbnQoV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50KiBzZWxm
KTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbWV0YV9lbGVtZW50
X2dldF9jb250ZW50KFdlYktpdERPTUhUTUxNZXRhRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRt
bF9tZXRhX2VsZW1lbnRfc2V0X2NvbnRlbnQoV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50KiBzZWxm
LCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTcxLDggKzc1LDEwIEBAIHdlYmtpdF9k
b21faHRtbF9tZXRhX2VsZW1lbnRfc2V0X2NvbnRlbnQoV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50
KiBzZWxmLCBjb25zdCBnCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50CiAg
KgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9E
RVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX21ldGFfZWxlbWVudF9nZXRfaHR0cF9l
cXVpdihXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9tZXRhX2VsZW1lbnRfZ2V0X2h0dHBfZXF1aXYoV2ViS2l0
RE9NSFRNTE1ldGFFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTWV0
YUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX21ldGFfZWxlbWVudF9zZXRf
aHR0cF9lcXVpdihXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2
YWx1ZSk7CiAKIC8qKgpAQCAtODksOCArOTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX21ldGFfZWxl
bWVudF9zZXRfaHR0cF9lcXVpdihXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQqIHNlbGYsIGNvbnMK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIq
CiB3ZWJraXRfZG9tX2h0bWxfbWV0YV9lbGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhUTUxNZXRh
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtOTgsOCArMTA4LDEwIEBAIHdlYmtpdF9kb21faHRt
bF9tZXRhX2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50KiBzZWxmKTsK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2No
YXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9odG1sX21ldGFfZWxlbWVudF9zZXRfbmFtZShXZWJLaXRET01IVE1MTWV0YUVsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTA3LDggKzExOSwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfbWV0YV9lbGVtZW50X3NldF9uYW1lKFdlYktpdERPTUhUTUxNZXRh
RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxNZXRh
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIq
CitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9tZXRhX2VsZW1lbnRf
Z2V0X3NjaGVtZShXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEx
Niw4ICsxMzAsMTAgQEAgd2Via2l0X2RvbV9odG1sX21ldGFfZWxlbWVudF9nZXRfc2NoZW1lKFdl
YktpdERPTUhUTUxNZXRhRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TE1ldGFFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9tZXRhX2VsZW1lbnRf
c2V0X3NjaGVtZShXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2
YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1vZEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxNb2RFbGVtZW50LmNwcAppbmRleCAyZTU5MDE3MGMxYi4uNWRkZTE0Y2E2MTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MTW9kRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNb2RFbGVt
ZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwor
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTE1vZEVsZW1lbnQqIGtpdChXZWJD
b3JlOjpIVE1MTW9kRWxlbWVudCogb2JqKQpAQCAtMjA0LDMgKzIwNiw0IEBAIHZvaWQgd2Via2l0
X2RvbV9odG1sX21vZF9lbGVtZW50X3NldF9kYXRlX3RpbWUoV2ViS2l0RE9NSFRNTE1vZEVsZW1l
bnQqIHNlbGYsIGNvCiAgICAgaXRlbS0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlv
bihXZWJDb3JlOjpIVE1MTmFtZXM6OmRhdGV0aW1lQXR0ciwgY29udmVydGVkVmFsdWUpOwogfQog
CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1v
ZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MTW9kRWxlbWVudC5oCmluZGV4IGU5Yzc3MGZhZjQ2Li42MTdm
MGQwMWQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNb2RFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxN
b2RFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MTW9kRWxl
bWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsK
IH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRf
ZG9tX2h0bWxfbW9kX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMs
MTAgQEAgd2Via2l0X2RvbV9odG1sX21vZF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxNb2RFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0
X2RvbV9odG1sX21vZF9lbGVtZW50X2dldF9jaXRlKFdlYktpdERPTUhUTUxNb2RFbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbW9kX2VsZW1l
bnRfZ2V0X2NpdGUoV2ViS2l0RE9NSFRNTE1vZEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxNb2RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9t
b2RfZWxlbWVudF9zZXRfY2l0ZShXZWJLaXRET01IVE1MTW9kRWxlbWVudCogc2VsZiwgY29uc3Qg
Z2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
bW9kX2VsZW1lbnRfc2V0X2NpdGUoV2ViS2l0RE9NSFRNTE1vZEVsZW1lbnQqIHNlbGYsIGNvbnN0
IGdjaGFyKgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxNb2RFbGVtZW50CiAgKgogICogUmV0
dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVE
IGdjaGFyKgogd2Via2l0X2RvbV9odG1sX21vZF9lbGVtZW50X2dldF9kYXRlX3RpbWUoV2ViS2l0
RE9NSFRNTE1vZEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9tb2RfZWxlbWVudF9nZXRfZGF0ZV90aW1lKFdlYktpdERPTUhUTUxNb2RFbGVt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTW9kRWxlbWVudAogICogQHZh
bHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfbW9kX2VsZW1lbnRfc2V0X2RhdGVfdGltZShXZWJLaXRE
T01IVE1MTW9kRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVD
TFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT0xpc3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT0xpc3RF
bGVtZW50LmNwcAppbmRleCBiNWRjMTliNzRjYS4uYTMwYzZkNjJjZGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MT0xpc3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudC5jcHAKQEAg
LTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1M
T0xpc3RFbGVtZW50KiBvYmopCkBAIC0yMzYsMyArMjM4LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0
bWxfb19saXN0X2VsZW1lbnRfc2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MT0xpc3RFbGVtZW50
KiBzZWwKICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNv
cmU6OkhUTUxOYW1lczo6dHlwZUF0dHIsIGNvbnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VO
RF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MT0xpc3RFbGVtZW50LmgKaW5kZXggYmNhOGEyZDFlZjcuLmRlZTEyOGYxMDI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT0xpc3RF
bGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MT0xpc3RFbGVt
ZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwog
fTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9k
b21faHRtbF9vX2xpc3RfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1
MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb19saXN0X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEg
I2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdi
b29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfb19saXN0X2VsZW1lbnRfZ2V0X2NvbXBhY3QoV2ViS2l0
RE9NSFRNTE9MaXN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX29fbGlzdF9lbGVtZW50X2dldF9jb21wYWN0KFdlYktpdERPTUhUTUxPTGlz
dEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX29fbGlzdF9lbGVtZW50X3NldF9jb21w
YWN0KFdlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAog
LyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb19saXN0X2VsZW1lbnRfc2V0
X2NvbXBhY3QoV2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudCogc2VsZiwgZ2JvbwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZwor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2Rv
bV9odG1sX29fbGlzdF9lbGVtZW50X2dldF9zdGFydChXZWJLaXRET01IVE1MT0xpc3RFbGVtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb19saXN0
X2VsZW1lbnRfZ2V0X3N0YXJ0KFdlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQqIHNlbGYpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9odG1sX29fbGlzdF9lbGVtZW50X3NldF9zdGFydChXZWJLaXRET01IVE1MT0xpc3RFbGVt
ZW50KiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAKIC8qKgpAQCAtODksOCArOTcsMTAgQEAgd2Via2l0
X2RvbV9odG1sX29fbGlzdF9lbGVtZW50X3NldF9zdGFydChXZWJLaXRET01IVE1MT0xpc3RFbGVt
ZW50KiBzZWxmLCBnbG9uZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfb19saXN0X2VsZW1lbnRfZ2V0X3R5
cGVfYXR0cihXZWJLaXRET01IVE1MT0xpc3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC05OCw4
ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9odG1sX29fbGlzdF9lbGVtZW50X2dldF90eXBlX2F0dHIo
V2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTE9MaXN0RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfb19saXN0X2Vs
ZW1lbnRfc2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MT0xpc3RFbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPYmpl
Y3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudC5jcHAKaW5kZXggYjFiNjQ3ZTBh
OWEuLjkwNjhlMzEwMTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudC5jcHAKQEAgLTM4LDYgKzM4LDggQEAKICNpbmNsdWRl
IDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5f
SUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhU
TUxPYmplY3RFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQqIG9iaikKQEAg
LTc1MCwzICs3NTIsNCBAQCBXZWJLaXRET01Eb2N1bWVudCogd2Via2l0X2RvbV9odG1sX29iamVj
dF9lbGVtZW50X2dldF9jb250ZW50X2RvY3VtZW50KFdlYktpdERPTQogICAgIHJldHVybiBXZWJL
aXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQ
UkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TE9iamVjdEVsZW1lbnQuaAppbmRleCA1ZDNiZGU3MjI1OC4uMTBjZWZhMGQ2ZmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudC5o
CkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnRDbGFz
cyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1X
RUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1s
X29iamVjdF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBA
IHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2Zl
ciBub25lKTogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2Vi
S2l0RE9NSFRNTEZvcm1FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTEZv
cm1FbGVtZW50Kgogd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X2dldF9mb3JtKFdlYktp
dERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X2Zvcm0oV2ViS2l0RE9NSFRNTE9iamVj
dEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X2dldF9j
b2RlKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC03MSw4ICs3
NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X2NvZGUoV2ViS2l0RE9N
SFRNTE9iamVjdEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmpl
Y3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9z
ZXRfY29kZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlKTsKIAogLyoqCkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2Vs
ZW1lbnRfc2V0X2NvZGUoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGNvbnN0CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIq
CiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxP
YmplY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04OSw4ICs5NywxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50
KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudAogICogQHZh
bHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERP
TUhUTUxPYmplY3RFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAg
LTk4LDggKzEwOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfc2V0X2FsaWdu
KFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9o
dG1sX29iamVjdF9lbGVtZW50X2dldF9hcmNoaXZlKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC0xMDcsOCArMTE5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vYmpl
Y3RfZWxlbWVudF9nZXRfYXJjaGl2ZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X3NldF9hcmNoaXZlKFdlYktpdERPTUhUTUxP
YmplY3RFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTExNiw4
ICsxMzAsMTAgQEAgd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X3NldF9hcmNoaXZlKFdl
YktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmLCBjb24KICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MT2JqZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9v
YmplY3RfZWxlbWVudF9nZXRfYm9yZGVyKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxm
KTsKIAogLyoqCkBAIC0xMjUsOCArMTQxLDEwIEBAIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxl
bWVudF9nZXRfYm9yZGVyKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgog
ICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRf
ZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfc2V0X2JvcmRlcihXZWJLaXRET01IVE1MT2JqZWN0RWxl
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMzQsOCArMTUyLDEw
IEBAIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfYm9yZGVyKFdlYktpdERPTUhU
TUxPYmplY3RFbGVtZW50KiBzZWxmLCBjb25zCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9i
amVjdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2Vs
ZW1lbnRfZ2V0X2NvZGVfYmFzZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtMTQzLDggKzE2MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRf
Z2V0X2NvZGVfYmFzZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX29iamVjdF9lbGVtZW50X3NldF9jb2RlX2Jhc2UoV2ViS2l0RE9NSFRNTE9iamVjdEVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTUyLDggKzE3NCwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfc2V0X2NvZGVfYmFzZShXZWJLaXRE
T01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwgYwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxP
YmplY3RFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Y2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX29iamVjdF9l
bGVtZW50X2dldF9jb2RlX3R5cGUoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTE2MSw4ICsxODUsMTAgQEAgd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50
X2dldF9jb2RlX3R5cGUoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfY29kZV90eXBlKFdlYktpdERPTUhUTUxPYmplY3RF
bGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE3MCw4ICsxOTYs
MTAgQEAgd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X3NldF9jb2RlX3R5cGUoV2ViS2l0
RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGMKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
T2JqZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9vYmplY3Rf
ZWxlbWVudF9nZXRfZGF0YShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtMTc5LDggKzIwNywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0
X2RhdGEoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9v
YmplY3RfZWxlbWVudF9zZXRfZGF0YShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xODgsOCArMjE4LDEwIEBAIHdlYmtpdF9k
b21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfZGF0YShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVu
dCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudAog
ICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dF
QktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRf
Z2V0X2RlY2xhcmUoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTE5Nyw4ICsyMjksMTAgQEAgd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X2dldF9kZWNs
YXJlKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MT2JqZWN0RWxlbWVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxf
b2JqZWN0X2VsZW1lbnRfc2V0X2RlY2xhcmUoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNl
bGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBAIC0yMDYsOCArMjQwLDEwIEBAIHdlYmtpdF9k
b21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfZGVjbGFyZShXZWJLaXRET01IVE1MT2JqZWN0RWxl
bWVudCogc2VsZiwgZ2JvCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X2hl
aWdodChXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjE1LDgg
KzI1MSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X2hlaWdodChXZWJL
aXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TE9iamVjdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVt
ZW50X3NldF9oZWlnaHQoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjI0LDggKzI2MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
b2JqZWN0X2VsZW1lbnRfc2V0X2hlaWdodChXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2Vs
ZiwgY29ucwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FU
RUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9nZXRfaHNwYWNlKFdlYktp
dERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMzMsOCArMjczLDEwIEBA
IHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9nZXRfaHNwYWNlKFdlYktpdERPTUhUTUxP
YmplY3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT2JqZWN0RWxl
bWVudAogICogQHZhbHVlOiBBICNnbG9uZwogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfc2V0X2hz
cGFjZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAv
KioKQEAgLTI0Miw4ICsyODQsMTAgQEAgd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X3Nl
dF9oc3BhY2UoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGdsb24KICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFy
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtp
dF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9nZXRfbmFtZShXZWJLaXRET01IVE1MT2JqZWN0RWxl
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjUxLDggKzI5NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
b2JqZWN0X2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAgKiBAdmFsdWU6IEEg
I2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfbmFtZShXZWJLaXRET01IVE1MT2Jq
ZWN0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0yNjAsOCAr
MzA2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfbmFtZShXZWJLaXRE
T01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MT2JqZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9vYmpl
Y3RfZWxlbWVudF9nZXRfc3RhbmRieShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtMjY5LDggKzMxNywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1l
bnRfZ2V0X3N0YW5kYnkoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfc3RhbmRieShXZWJLaXRET01IVE1MT2JqZWN0RWxl
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0yNzgsOCArMzI4LDEw
IEBAIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfc3RhbmRieShXZWJLaXRET01I
VE1MT2JqZWN0RWxlbWVudCogc2VsZiwgY29uCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9i
amVjdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2Vs
ZW1lbnRfZ2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtMjg3LDggKzMzOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRf
Z2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX29iamVjdF9lbGVtZW50X3NldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTE9iamVjdEVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjk2LDggKzM1MCwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfc2V0X3R5cGVfYXR0cihXZWJLaXRE
T01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwgYwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxP
YmplY3RFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Y2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX29iamVjdF9l
bGVtZW50X2dldF91c2VfbWFwKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0zMDUsOCArMzYxLDEwIEBAIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9n
ZXRfdXNlX21hcChXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9o
dG1sX29iamVjdF9lbGVtZW50X3NldF91c2VfbWFwKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50
KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTMxNCw4ICszNzIsMTAgQEAg
d2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X3NldF91c2VfbWFwKFdlYktpdERPTUhUTUxP
YmplY3RFbGVtZW50KiBzZWxmLCBjb24KICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT2JqZWN0
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcK
K1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRf
Z2V0X3ZzcGFjZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
MzIzLDggKzM4MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X3ZzcGFj
ZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX29iamVj
dF9lbGVtZW50X3NldF92c3BhY2UoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGds
b25nIHZhbHVlKTsKIAogLyoqCkBAIC0zMzIsOCArMzk0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9v
YmplY3RfZWxlbWVudF9zZXRfdnNwYWNlKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxm
LCBnbG9uCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X3dpZHRoKFdlYktp
dERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0zNDEsOCArNDA1LDEwIEBA
IHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9nZXRfd2lkdGgoV2ViS2l0RE9NSFRNTE9i
amVjdEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVt
ZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfd2lk
dGgoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7
CiAKIC8qKgpAQCAtMzUwLDggKzQxNiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1l
bnRfc2V0X3dpZHRoKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmLCBjb25zdAogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAgKgogICogUmV0dXJuczogKHRy
YW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Eb2N1bWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktp
dERPTURvY3VtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRG9jdW1lbnQqCiB3ZWJr
aXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X2NvbnRlbnRfZG9jdW1lbnQoV2ViS2l0RE9N
SFRNTE9iamVjdEVsZW1lbnQqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxPcHRHcm91cEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRHcm91cEVsZW1lbnQuY3BwCmlu
ZGV4IDAyZjUxNGFmZDliLi45YTAxODllODlhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRHcm91
cEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT3B0R3JvdXBFbGVtZW50LmNwcApAQCAtMzYsNiAr
MzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogV2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxPcHRH
cm91cEVsZW1lbnQqIG9iaikKQEAgLTIwMiwzICsyMDQsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRt
bF9vcHRfZ3JvdXBfZWxlbWVudF9zZXRfbGFiZWwoV2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxlbWVu
dCogcwogICAgIGl0ZW0tPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29y
ZTo6SFRNTE5hbWVzOjpsYWJlbEF0dHIsIGNvbnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VO
RF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRHcm91cEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MT3B0R3JvdXBFbGVtZW50LmgKaW5kZXggYmQ4MmZhOGJkZDQuLmVlNjc1
NjEyM2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MT3B0R3JvdXBFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01I
VE1MT3B0R3JvdXBFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3Mg
cGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQg
R1R5cGUKIHdlYmtpdF9kb21faHRtbF9vcHRfZ3JvdXBfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsK
IAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb3B0X2dyb3VwX2VsZW1l
bnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxl
bWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xl
YW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfb3B0X2dyb3Vw
X2VsZW1lbnRfZ2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxPcHRHcm91cEVsZW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vcHRfZ3JvdXBfZWxl
bWVudF9nZXRfZGlzYWJsZWQoV2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxlbWVudCogc2VsCiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxlbWVudAogICogQHZhbHVlOiBBICNnYm9v
bGVhbgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3
ZWJraXRfZG9tX2h0bWxfb3B0X2dyb3VwX2VsZW1lbnRfc2V0X2Rpc2FibGVkKFdlYktpdERPTUhU
TUxPcHRHcm91cEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBAIC03MSw4
ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb3B0X2dyb3VwX2VsZW1lbnRfc2V0X2Rpc2FibGVk
KFdlYktpdERPTUhUTUxPcHRHcm91cEVsZW1lbnQqIHNlbAogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxPcHRHcm91cEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxf
b3B0X2dyb3VwX2VsZW1lbnRfZ2V0X2xhYmVsKFdlYktpdERPTUhUTUxPcHRHcm91cEVsZW1lbnQq
IHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vcHRfZ3Jv
dXBfZWxlbWVudF9nZXRfbGFiZWwoV2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxlbWVudCogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxlbWVudAogICogQHZhbHVlOiBB
ICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2h0bWxfb3B0X2dyb3VwX2VsZW1lbnRfc2V0X2xhYmVsKFdlYktpdERPTUhU
TUxPcHRHcm91cEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RF
Q0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRp
b25FbGVtZW50LmNwcAppbmRleCBjOTFkODdhNTI4MS4uODk1YTcxMjczMDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MT3B0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRpb25FbGVtZW50LmNw
cApAQCAtMzcsNiArMzcsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQqIGtpdChXZWJDb3Jl
OjpIVE1MT3B0aW9uRWxlbWVudCogb2JqKQpAQCAtMzc2LDMgKzM3OCw0IEBAIGdsb25nIHdlYmtp
dF9kb21faHRtbF9vcHRpb25fZWxlbWVudF9nZXRfaW5kZXgoV2ViS2l0RE9NSFRNTE9wdGlvbkVs
ZW1lbnQqIHNlbGYpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorR19HTlVDX0VORF9JR05PUkVf
REVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRpb25FbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTE9wdGlvbkVsZW1lbnQuaAppbmRleCA1Mzg3MDU2OTA5My4uM2U5ZmQ4NzdhYjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT3B0aW9uRWxlbWVu
dC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnRD
bGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9Owog
Ci1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9o
dG1sX29wdGlvbl9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEw
IEBAIHdlYmtpdF9kb21faHRtbF9vcHRpb25fZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2di
b29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29s
ZWFuCiB3ZWJraXRfZG9tX2h0bWxfb3B0aW9uX2VsZW1lbnRfZ2V0X2Rpc2FibGVkKFdlYktpdERP
TUhUTUxPcHRpb25FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfb3B0aW9uX2VsZW1lbnRfZ2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxPcHRp
b25FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVu
dAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfb3B0aW9uX2VsZW1lbnRfc2V0X2Rp
c2FibGVkKFdlYktpdERPTUhUTUxPcHRpb25FbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7
CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50
X3NldF9kaXNhYmxlZChXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCogc2VsZiwgZ2IKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFu
c2ZlciBub25lKTogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50CisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
V2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRN
TEZvcm1FbGVtZW50Kgogd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50X2dldF9mb3JtKFdl
YktpdERPTUhUTUxPcHRpb25FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4NiwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfb3B0aW9uX2VsZW1lbnRfZ2V0X2Zvcm0oV2ViS2l0RE9NSFRNTE9w
dGlvbkVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPcHRpb25FbGVt
ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dF
QktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50X2dl
dF9sYWJlbChXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtODks
OCArOTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50X2dldF9sYWJlbChXZWJL
aXRET01IVE1MT3B0aW9uRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TE9wdGlvbkVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVt
ZW50X3NldF9sYWJlbChXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCogc2VsZiwgY29uc3QgZ2No
YXIqIHZhbHVlKTsKIAogLyoqCkBAIC05OCw4ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9odG1sX29w
dGlvbl9lbGVtZW50X3NldF9sYWJlbChXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCogc2VsZiwg
Y29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudAogICoKICAqIFJl
dHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBS
RUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfb3B0aW9uX2VsZW1lbnRfZ2V0X2RlZmF1
bHRfc2VsZWN0ZWQoV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTEwNyw4ICsxMTksMTAgQEAgd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50X2dldF9kZWZh
dWx0X3NlbGVjdGVkKFdlYktpdERPTUhUTUxPcHRpb25FbGVtZW50KgogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxPcHRpb25FbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRt
bF9vcHRpb25fZWxlbWVudF9zZXRfZGVmYXVsdF9zZWxlY3RlZChXZWJLaXRET01IVE1MT3B0aW9u
RWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTExNiw4ICsxMzAsMTAg
QEAgd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50X3NldF9kZWZhdWx0X3NlbGVjdGVkKFdl
YktpdERPTUhUTUxPcHRpb25FbGVtZW50KgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPcHRp
b25FbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Ym9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9vcHRp
b25fZWxlbWVudF9nZXRfc2VsZWN0ZWQoV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTEyNSw4ICsxNDEsMTAgQEAgd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVt
ZW50X2dldF9zZWxlY3RlZChXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCogc2VsZik7CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xl
YW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50X3NldF9zZWxlY3RlZChXZWJLaXRET01IVE1MT3B0
aW9uRWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTEzNCw4ICsxNTIs
MTAgQEAgd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50X3NldF9zZWxlY3RlZChXZWJLaXRE
T01IVE1MT3B0aW9uRWxlbWVudCogc2VsZiwgZ2IKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
T3B0aW9uRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9vcHRpb25f
ZWxlbWVudF9nZXRfdmFsdWUoV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTE0Myw4ICsxNjMsMTAgQEAgd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50X2dl
dF92YWx1ZShXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X29wdGlvbl9lbGVtZW50X3NldF92YWx1ZShXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNTIsOCArMTc0LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9vcHRpb25fZWxlbWVudF9zZXRfdmFsdWUoV2ViS2l0RE9NSFRNTE9wdGlvbkVs
ZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfb3B0aW9uX2VsZW1lbnRfZ2V0
X3RleHQoV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE2MSw4
ICsxODUsMTAgQEAgd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50X2dldF90ZXh0KFdlYktp
dERPTUhUTUxPcHRpb25FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
T3B0aW9uRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfb3B0aW9uX2Vs
ZW1lbnRfZ2V0X2luZGV4KFdlYktpdERPTUhUTUxPcHRpb25FbGVtZW50KiBzZWxmKTsKIAogR19F
TkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHAKaW5kZXggOWMxMTg2MzNiZWUuLmM5ZjU0Y2MzNWZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TE9wdGlvbnNDb2xsZWN0aW9uLmNwcApAQCAtMzQsNiArMzQsOCBAQAogI2luY2x1ZGUgPHd0Zi9H
ZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVf
REVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTE9wdGlv
bnNDb2xsZWN0aW9uKiBraXQoV2ViQ29yZTo6SFRNTE9wdGlvbnNDb2xsZWN0aW9uKiBvYmopCkBA
IC0xNjMsMyArMTY1LDQgQEAgZ3Vsb25nIHdlYmtpdF9kb21faHRtbF9vcHRpb25zX2NvbGxlY3Rp
b25fZ2V0X2xlbmd0aChXZWJLaXRET01IVE1MT3B0aW9uc0NvbGxlY3QKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgK
aW5kZXggYjdiYzYwOWUzODkuLjAwZjBhODNkNDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9wdGlv
bnNDb2xsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oCkBAIC00NSw3
ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ2xhc3Mgewog
ICAgIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uQ2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VC
S0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF9v
cHRpb25zX2NvbGxlY3Rpb25fZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTQsOCArNTQsMTAg
QEAgd2Via2l0X2RvbV9odG1sX29wdGlvbnNfY29sbGVjdGlvbl9nZXRfdHlwZSh2b2lkKTsKICAq
IEBuYW1lOiBBICNnY2hhcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2Vi
S2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVD
QVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9odG1sX29wdGlvbnNfY29sbGVjdGlvbl9u
YW1lZF9pdGVtKFdlYktpdERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbiogc2VsZiwgY29uc3QgZ2No
YXIqIG5hbWUpOwogCiAvKioKQEAgLTYzLDggKzY1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vcHRp
b25zX2NvbGxlY3Rpb25fbmFtZWRfaXRlbShXZWJLaXRET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24q
IHNlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uCiAgKgogICog
UmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FU
RUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF9vcHRpb25zX2NvbGxlY3Rpb25fZ2V0X3NlbGVjdGVk
X2luZGV4KFdlYktpdERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbiogc2VsZik7CiAKIC8qKgpAQCAt
NzIsOCArNzYsMTAgQEAgd2Via2l0X2RvbV9odG1sX29wdGlvbnNfY29sbGVjdGlvbl9nZXRfc2Vs
ZWN0ZWRfaW5kZXgoV2ViS2l0RE9NSFRNTE9wdGlvbnNDb2xsZWMKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24KICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X29wdGlvbnNfY29sbGVjdGlvbl9zZXRfc2VsZWN0ZWRfaW5kZXgoV2ViS2l0RE9NSFRNTE9wdGlv
bnNDb2xsZWN0aW9uKiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAKIC8qKgpAQCAtODEsOCArODcsMTAg
QEAgd2Via2l0X2RvbV9odG1sX29wdGlvbnNfY29sbGVjdGlvbl9zZXRfc2VsZWN0ZWRfaW5kZXgo
V2ViS2l0RE9NSFRNTE9wdGlvbnNDb2xsZWMKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT3B0
aW9uc0NvbGxlY3Rpb24KICAqCiAgKiBSZXR1cm5zOiBBICNndWxvbmcKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Via2l0X2RvbV9odG1sX29wdGlv
bnNfY29sbGVjdGlvbl9nZXRfbGVuZ3RoKFdlYktpdERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbiog
c2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFBhcmFncmFwaEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50LmNwcAppbmRleCAxMjQwMjhhMmMyMS4u
MDFiMjg1NzIwYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUGFyYWdyYXBoRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1
ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJ
Tl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9N
SFRNTFBhcmFncmFwaEVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MUGFyYWdyYXBoRWxlbWVudCog
b2JqKQpAQCAtMTY4LDMgKzE3MCw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX3BhcmFncmFwaF9l
bGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MUGFyYWdyYXBoRWxlbWVudCoKICAgICBpdGVt
LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6
YWxpZ25BdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJF
Q0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUGFyYWdyYXBoRWxlbWVudC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxQYXJhZ3JhcGhFbGVtZW50LmgKaW5kZXggZjhkOTAyZmJhMDIuLmFkNzNjNDUxOGZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTFBhcmFncmFwaEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFBhcmFncmFw
aEVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxQYXJhZ3Jh
cGhFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2Ns
YXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdl
YmtpdF9kb21faHRtbF9wYXJhZ3JhcGhfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBA
IC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfcGFyYWdyYXBoX2VsZW1lbnRfZ2V0X3R5
cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFBhcmFncmFwaEVsZW1lbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfcGFyYWdyYXBoX2VsZW1lbnRfZ2V0X2Fs
aWduKFdlYktpdERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4
ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfcGFyYWdyYXBoX2VsZW1lbnRfZ2V0X2FsaWduKFdl
YktpdERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50KiBzZWxmKQogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxQYXJhZ3JhcGhFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9wYXJh
Z3JhcGhfZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFBhcmFncmFwaEVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTFBhcmFtRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFBhcmFtRWxlbWVudC5jcHAKaW5kZXggOTk1
MjdhZjNjM2EuLjI5YmEwZjExNWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFBhcmFtRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5j
bHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JF
R0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRE
T01IVE1MUGFyYW1FbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTFBhcmFtRWxlbWVudCogb2JqKQpA
QCAtMjc2LDMgKzI3OCw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX3BhcmFtX2VsZW1lbnRfc2V0
X3ZhbHVlX3R5cGUoV2ViS2l0RE9NSFRNTFBhcmFtRWxlbWVudCogc2VsCiAgICAgaXRlbS0+c2V0
QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnZhbHVl
dHlwZUF0dHIsIGNvbnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVD
QVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUGFy
YW1FbGVtZW50LmgKaW5kZXggNjg4OGEwYjEwNWMuLjA4ZjcxM2JjZWU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTFBhcmFtRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUGFyYW1FbGVtZW50LmgKQEAgLTQ1
LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MUGFyYW1FbGVtZW50Q2xhc3MgewogICAg
IFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQ
SSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF9wYXJhbV9l
bGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9k
b21faHRtbF9wYXJhbV9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxQYXJhbUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxf
cGFyYW1fZWxlbWVudF9nZXRfbmFtZShXZWJLaXRET01IVE1MUGFyYW1FbGVtZW50KiBzZWxmKTsK
IAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfcGFyYW1fZWxlbWVudF9n
ZXRfbmFtZShXZWJLaXRET01IVE1MUGFyYW1FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MUGFyYW1FbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9w
YXJhbV9lbGVtZW50X3NldF9uYW1lKFdlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX3BhcmFtX2VsZW1lbnRfc2V0X25hbWUoV2ViS2l0RE9NSFRNTFBhcmFtRWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2MKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MUGFyYW1FbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBS
RUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3BhcmFtX2VsZW1lbnRfZ2V0X3R5cGVfYXR0
cihXZWJLaXRET01IVE1MUGFyYW1FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4Niwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfcGFyYW1fZWxlbWVudF9nZXRfdHlwZV9hdHRyKFdlYktpdERP
TUhUTUxQYXJhbUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxQYXJh
bUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3BhcmFtX2VsZW1lbnRfc2V0
X3R5cGVfYXR0cihXZWJLaXRET01IVE1MUGFyYW1FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciog
dmFsdWUpOwogCiAvKioKQEAgLTg5LDggKzk3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9wYXJhbV9l
bGVtZW50X3NldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTFBhcmFtRWxlbWVudCogc2VsZiwgY29u
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFBhcmFtRWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21faHRtbF9wYXJhbV9lbGVtZW50X2dldF92YWx1ZShXZWJLaXRET01IVE1M
UGFyYW1FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC05OCw4ICsxMDgsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX3BhcmFtX2VsZW1lbnRfZ2V0X3ZhbHVlKFdlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQq
IHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQKICAqIEB2YWx1
ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX3BhcmFtX2VsZW1lbnRfc2V0X3ZhbHVlKFdlYktpdERPTUhU
TUxQYXJhbUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTA3
LDggKzExOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfcGFyYW1fZWxlbWVudF9zZXRfdmFsdWUoV2Vi
S2l0RE9NSFRNTFBhcmFtRWxlbWVudCogc2VsZiwgY29uc3QgZwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxQYXJhbUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxf
cGFyYW1fZWxlbWVudF9nZXRfdmFsdWVfdHlwZShXZWJLaXRET01IVE1MUGFyYW1FbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC0xMTYsOCArMTMwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9wYXJhbV9l
bGVtZW50X2dldF92YWx1ZV90eXBlKFdlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2No
YXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9odG1sX3BhcmFtX2VsZW1lbnRfc2V0X3ZhbHVlX3R5cGUoV2ViS2l0RE9NSFRNTFBh
cmFtRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MUHJlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFByZUVsZW1lbnQuY3Bw
CmluZGV4IGI5OWNmMWY0OWIxLi40YWUyMTEzYTk2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQcmVF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFByZUVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4IEBA
CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19H
TlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBX
ZWJLaXRET01IVE1MUHJlRWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxQcmVFbGVtZW50KiBvYmop
CkBAIC0yMDAsMyArMjAyLDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfcHJlX2VsZW1lbnRfc2V0
X3dyYXAoV2ViS2l0RE9NSFRNTFByZUVsZW1lbnQqIHNlbGYsIGdib29sZWEKICAgICBpdGVtLT5z
ZXRCb29sZWFuQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6d3JhcEF0dHIsIHZhbHVlKTsK
IH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxQcmVFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFByZUVsZW1lbnQuaAppbmRleCAzOGNkZTk0ZmJmZC4u
YjBhY2EzOTI4NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUHJlRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MUHJlRWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTFBy
ZUVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xh
c3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Vi
a2l0X2RvbV9odG1sX3ByZV9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDgg
KzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9wcmVfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MUHJlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2ds
b25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJr
aXRfZG9tX2h0bWxfcHJlX2VsZW1lbnRfZ2V0X3dpZHRoKFdlYktpdERPTUhUTUxQcmVFbGVtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfcHJlX2Vs
ZW1lbnRfZ2V0X3dpZHRoKFdlYktpdERPTUhUTUxQcmVFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MUHJlRWxlbWVudAogICogQHZhbHVlOiBBICNnbG9uZwogICoKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0
bWxfcHJlX2VsZW1lbnRfc2V0X3dpZHRoKFdlYktpdERPTUhUTUxQcmVFbGVtZW50KiBzZWxmLCBn
bG9uZyB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX3By
ZV9lbGVtZW50X3NldF93aWR0aChXZWJLaXRET01IVE1MUHJlRWxlbWVudCogc2VsZiwgZ2xvbmcg
dmFsdWUKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MUHJlRWxlbWVudAogICoKICAqIFJldHVy
bnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNB
VEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfcHJlX2VsZW1lbnRfZ2V0X3dyYXAoV2ViS2l0
RE9NSFRNTFByZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9wcmVfZWxlbWVudF9nZXRfd3JhcChXZWJLaXRET01IVE1MUHJlRWxlbWVudCog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFByZUVsZW1lbnQKICAqIEB2YWx1ZTog
QSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX3ByZV9lbGVtZW50X3NldF93cmFwKFdlYktpdERPTUhUTUxQ
cmVFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTFByaXZhdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQcml2YXRlLmNwcAppbmRleCAxMGIx
MDRlY2UyMy4uYmE0MjI5ZWQzZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUHJpdmF0ZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxQcml2YXRlLmNwcApAQCAtMTM5LDYgKzEzOSw4IEBACiAjaW5jbHVkZSAiV2Vi
S2l0RE9NSFRNTFRpdGxlRWxlbWVudFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRET01IVE1M
VUxpc3RFbGVtZW50UHJpdmF0ZS5oIgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9O
UzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAt
MjQxLDMgKzI0Myw0IEBAIFdlYktpdERPTUhUTUxFbGVtZW50KiB3cmFwKEhUTUxFbGVtZW50KiBl
bGVtZW50KQogfQogCiB9CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTFF1b3RlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFF1b3RlRWxlbWVudC5jcHAK
aW5kZXggNWQyYjQ0ZDBlYTEuLmNmYjRiMzk3NjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFF1b3Rl
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxRdW90ZUVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4
IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAor
R19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBXZWJLaXRET01IVE1MUXVvdGVFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTFF1b3RlRWxlbWVu
dCogb2JqKQpAQCAtMTY4LDMgKzE3MCw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX3F1b3RlX2Vs
ZW1lbnRfc2V0X2NpdGUoV2ViS2l0RE9NSFRNTFF1b3RlRWxlbWVudCogc2VsZiwgY29uCiAgICAg
aXRlbS0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFt
ZXM6OmNpdGVBdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RF
UFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUXVvdGVFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TFF1b3RlRWxlbWVudC5oCmluZGV4IDg5YzA4ODA4ZGUxLi5kNjVlNzM0ZWZlMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxRdW90ZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFF1b3RlRWxlbWVudC5oCkBA
IC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTFF1b3RlRWxlbWVudENsYXNzIHsK
ICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJ
VF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfcXVv
dGVfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfcXVvdGVfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MUXVvdGVFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9o
dG1sX3F1b3RlX2VsZW1lbnRfZ2V0X2NpdGUoV2ViS2l0RE9NSFRNTFF1b3RlRWxlbWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3F1b3RlX2VsZW1l
bnRfZ2V0X2NpdGUoV2ViS2l0RE9NSFRNTFF1b3RlRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTFF1b3RlRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0
bWxfcXVvdGVfZWxlbWVudF9zZXRfY2l0ZShXZWJLaXRET01IVE1MUXVvdGVFbGVtZW50KiBzZWxm
LCBjb25zdCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxTY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggN2Nm
MzI1NzVkMTQuLjhiMTQxZmUzYjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudC5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNp
bmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNf
QkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktp
dERPTUhUTUxTY3JpcHRFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTFNjcmlwdEVsZW1lbnQqIG9i
aikKQEAgLTM4MCwzICszODIsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9zY3JpcHRfZWxlbWVu
dF9zZXRfdHlwZV9hdHRyKFdlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50KiBzZQogICAgIFdURjo6
U3RyaW5nIGNvbnZlcnRlZFZhbHVlID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKTsKICAg
ICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxO
YW1lczo6dHlwZUF0dHIsIGNvbnZlcnRlZFZhbHVlKTsKIH0KK0dfR05VQ19FTkRfSUdOT1JFX0RF
UFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxTY3JpcHRFbGVtZW50LmgKaW5kZXggNmI5OGM0NzRhNDQuLjFhMTExOWRjNmNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQu
aApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50Q2xh
c3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAot
V0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRt
bF9zY3JpcHRfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hh
cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJr
aXRfZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfZ2V0X3RleHQoV2ViS2l0RE9NSFRNTFNjcmlwdEVs
ZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9z
Y3JpcHRfZWxlbWVudF9nZXRfdGV4dChXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudCogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X3NldF90ZXh0KFdlYktpdERPTUhUTUxTY3Jp
cHRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTcxLDggKzc1
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9zY3JpcHRfZWxlbWVudF9zZXRfdGV4dChXZWJLaXRET01I
VE1MU2NyaXB0RWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
U2NyaXB0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9zY3JpcHRf
ZWxlbWVudF9nZXRfaHRtbF9mb3IoV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTgwLDggKzg2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9zY3JpcHRfZWxlbWVudF9n
ZXRfaHRtbF9mb3IoV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF9zY3JpcHRfZWxlbWVudF9zZXRfaHRtbF9mb3IoV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtODksOCArOTcsMTAgQEAg
d2Via2l0X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X3NldF9odG1sX2ZvcihXZWJLaXRET01IVE1M
U2NyaXB0RWxlbWVudCogc2VsZiwgY28KICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MU2NyaXB0
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIq
CitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9zY3JpcHRfZWxlbWVu
dF9nZXRfZXZlbnQoV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTk4LDggKzEwOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfZ2V0X2V2ZW50
KFdlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MU2NyaXB0RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfc2NyaXB0
X2VsZW1lbnRfc2V0X2V2ZW50KFdlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Via2l0X2RvbV9o
dG1sX3NjcmlwdF9lbGVtZW50X3NldF9ldmVudChXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudCog
c2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudAogICoK
ICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9zY3JpcHRfZWxlbWVudF9nZXRfY2hhcnNl
dChXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTE3LDggKzEz
MSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfZ2V0X2NoYXJzZXQoV2ViS2l0
RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNnY2hhcgogICoKICAq
IFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9p
ZAogd2Via2l0X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X3NldF9jaGFyc2V0KFdlYktpdERPTUhU
TUxTY3JpcHRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEy
Niw4ICsxNDIsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X3NldF9jaGFyc2V0
KFdlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50KiBzZWxmLCBjb24KICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MU2NyaXB0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRf
ZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfZ2V0X2RlZmVyKFdlYktpdERPTUhUTUxTY3JpcHRFbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMzUsOCArMTUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9z
Y3JpcHRfZWxlbWVudF9nZXRfZGVmZXIoV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50CiAgKiBAdmFsdWU6IEEg
I2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZv
aWQKIHdlYmtpdF9kb21faHRtbF9zY3JpcHRfZWxlbWVudF9zZXRfZGVmZXIoV2ViS2l0RE9NSFRN
TFNjcmlwdEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBAIC0xNDQsOCAr
MTY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9zY3JpcHRfZWxlbWVudF9zZXRfZGVmZXIoV2ViS2l0
RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYsIGdib29sCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTFNjcmlwdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfc2Ny
aXB0X2VsZW1lbnRfZ2V0X3NyYyhXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtMTUzLDggKzE3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRf
Z2V0X3NyYyhXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X3NjcmlwdF9lbGVtZW50X3NldF9zcmMoV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYs
IGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTYyLDggKzE4NiwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfc2V0X3NyYyhXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVu
dCogc2VsZiwgY29uc3QgZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X2dldF90
eXBlX2F0dHIoV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE3
MSw4ICsxOTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X2dldF90eXBlX2F0
dHIoV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxTY3JpcHRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9zY3Jp
cHRfZWxlbWVudF9zZXRfdHlwZV9hdHRyKFdlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50KiBzZWxm
LCBjb25zdCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxTZWxlY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggYTQx
MGU5OGQyMDEuLjE5MGFjYmVlNzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTQyLDYgKzQyLDggQEAKICNp
bmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNf
QkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktp
dERPTUhUTUxTZWxlY3RFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQqIG9i
aikKQEAgLTU2NSwzICs1NjcsNCBAQCBnYm9vbGVhbiB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2Vs
ZW1lbnRfZ2V0X3dpbGxfdmFsaWRhdGUoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZQogICAgIGdib29s
ZWFuIHJlc3VsdCA9IGl0ZW0tPndpbGxWYWxpZGF0ZSgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9
CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFNl
bGVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudC5oCmluZGV4IGRlOGYzMjQ1Njk1
Li4wOTJjZGVlMjZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxTZWxlY3RFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRE
T01IVE1MU2VsZWN0RWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNz
IHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVE
IEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAK
IC8qKgpAQCAtNTQsOCArNTQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dl
dF90eXBlKHZvaWQpOwogICogQGluZGV4OiBBICNndWxvbmcKICAqCiAgKiBSZXR1cm5zOiAodHJh
bnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01O
b2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21faHRtbF9z
ZWxlY3RfZWxlbWVudF9pdGVtKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmLCBndWxv
bmcgaW5kZXgpOwogCiAvKioKQEAgLTY0LDggKzY2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9zZWxl
Y3RfZWxlbWVudF9pdGVtKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmLCBndWxvbmcg
aW5kCiAgKiBAbmFtZTogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6
IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lU
X0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVu
dF9uYW1lZF9pdGVtKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hh
ciogbmFtZSk7CiAKIC8qKgpAQCAtNzUsOCArNzksMTAgQEAgd2Via2l0X2RvbV9odG1sX3NlbGVj
dF9lbGVtZW50X25hbWVkX2l0ZW0oV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYsIGNv
bnMKICAqIEBiZWZvcmU6IEEgI1dlYktpdERPTUhUTUxFbGVtZW50CiAgKiBAZXJyb3I6ICNHRXJy
b3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2FkZChXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVu
dCogc2VsZiwgV2ViS2l0RE9NSFRNTEVsZW1lbnQqIGVsZW1lbnQsIFdlYktpdERPTUhUTUxFbGVt
ZW50KiBiZWZvcmUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC04NCw4ICs5MCwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfYWRkKFdlYktpdERPTUhUTUxTZWxlY3RFbGVt
ZW50KiBzZWxmLCBXZWJLaXRET01IVAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTZWxlY3RF
bGVtZW50CiAgKiBAaW5kZXg6IEEgI2dsb25nCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9yZW1v
dmUoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYsIGdsb25nIGluZGV4KTsKIAogLyoq
CkBAIC05Myw4ICsxMDEsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X3JlbW92
ZShXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudCogc2VsZiwgZ2xvbmcgaW4KICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFu
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3
ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X2F1dG9mb2N1cyhXZWJLaXRET01IVE1M
U2VsZWN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTAyLDggKzExMiwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X2F1dG9mb2N1cyhXZWJLaXRET01IVE1MU2VsZWN0
RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X3NldF9hdXRv
Zm9jdXMoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsK
IAogLyoqCkBAIC0xMTEsOCArMTIzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVu
dF9zZXRfYXV0b2ZvY3VzKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmLCBnCiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
Ym9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9v
bGVhbgogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dldF9kaXNhYmxlZChXZWJLaXRE
T01IVE1MU2VsZWN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTIwLDggKzEzNCwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxT
ZWxlY3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MU2VsZWN0RWxl
bWVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfc2V0
X2Rpc2FibGVkKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1
ZSk7CiAKIC8qKgpAQCAtMTI5LDggKzE0NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2Vs
ZW1lbnRfc2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmLCBnYgog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50CiAgKgogICogUmV0dXJuczog
KHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRE
T01IVE1MRm9ybUVsZW1lbnQqCiB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X2Zv
cm0oV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEzOCw4ICsx
NTYsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dldF9mb3JtKFdlYktpdERP
TUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MU2Vs
ZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfc2Vs
ZWN0X2VsZW1lbnRfZ2V0X211bHRpcGxlKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxm
KTsKIAogLyoqCkBAIC0xNDcsOCArMTY3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxl
bWVudF9nZXRfbXVsdGlwbGUoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dib29s
ZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9zZXRfbXVsdGlwbGUoV2ViS2l0RE9NSFRNTFNl
bGVjdEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBAIC0xNTYsOCArMTc4
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9zZXRfbXVsdGlwbGUoV2ViS2l0
RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYsIGdiCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TFNlbGVjdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0
X2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTE2NSw4ICsxODksMTAgQEAgd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dl
dF9uYW1lKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxf
c2VsZWN0X2VsZW1lbnRfc2V0X25hbWUoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYs
IGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTc0LDggKzIwMCwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfc2V0X25hbWUoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1l
bnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRf
REVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dldF9zaXpl
KFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xODMsOCArMjEx
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9nZXRfc2l6ZShXZWJLaXRET01I
VE1MU2VsZWN0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVj
dEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X3Nl
dF9zaXplKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAK
IC8qKgpAQCAtMTkyLDggKzIyMiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRf
c2V0X3NpemUoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYsIGdsb25nCiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hh
cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJr
aXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X3NlbGVjdF90eXBlKFdlYktpdERPTUhUTUxT
ZWxlY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMDEsOCArMjMzLDEwIEBAIHdlYmtpdF9k
b21faHRtbF9zZWxlY3RfZWxlbWVudF9nZXRfc2VsZWN0X3R5cGUoV2ViS2l0RE9NSFRNTFNlbGVj
dEVsZW1lbnQqIHNlbGYpCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUhUTUxPcHRpb25z
Q29sbGVjdGlvbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxPcHRpb25zQ29sbGVjdGlv
bioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbioKIHdl
YmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9nZXRfb3B0aW9ucyhXZWJLaXRET01IVE1MU2Vs
ZWN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjEwLDggKzI0NCwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X29wdGlvbnMoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ3Vsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQ
UkVDQVRFRCBndWxvbmcKIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9nZXRfbGVuZ3Ro
KFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMjAsOCArMjU2
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9nZXRfbGVuZ3RoKFdlYktpdERP
TUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ3Vsb25nCiAgKiBAZXJy
b3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X3NldF9sZW5ndGgoV2ViS2l0RE9N
SFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYsIGd1bG9uZyB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOwog
CiAvKioKQEAgLTIyOSw4ICsyNjcsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50
X3NldF9sZW5ndGgoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYsIGd1bG8KICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2ds
b25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJr
aXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X3NlbGVjdGVkX2luZGV4KFdlYktpdERPTUhU
TUxTZWxlY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMzgsOCArMjc4LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9nZXRfc2VsZWN0ZWRfaW5kZXgoV2ViS2l0RE9NSFRN
TFNlbGVjdEVsZW1lbnQqIHNlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1l
bnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X3NldF9zZWxl
Y3RlZF9pbmRleChXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudCogc2VsZiwgZ2xvbmcgdmFsdWUp
OwogCiAvKioKQEAgLTI0Nyw4ICsyODksMTAgQEAgd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVt
ZW50X3NldF9zZWxlY3RlZF9pbmRleChXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudCogc2UKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEg
I2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioK
IHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9nZXRfdmFsdWUoV2ViS2l0RE9NSFRNTFNl
bGVjdEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTI1Niw4ICszMDAsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX3NlbGVjdF9lbGVtZW50X2dldF92YWx1ZShXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVu
dCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQKICAqIEB2
YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X3NldF92YWx1ZShXZWJLaXRE
T01IVE1MU2VsZWN0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBA
IC0yNjUsOCArMzExLDEwIEBAIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9zZXRfdmFs
dWUoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Vi
a2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dldF93aWxsX3ZhbGlkYXRlKFdlYktpdERPTUhU
TUxTZWxlY3RFbGVtZW50KiBzZWxmKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MU3R5bGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU3R5bGVFbGVtZW50LmNwcAppbmRleCBhZDFk
ZGI5MGM0Zi4uZTc0Nzg4YjExZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU3R5bGVFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudC5jcHAKQEAgLTM3LDYgKzM3LDggQEAKICNpbmNs
dWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVH
SU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERP
TUhUTUxTdHlsZUVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MU3R5bGVFbGVtZW50KiBvYmopCkBA
IC0yNjAsMyArMjYyLDQgQEAgV2ViS2l0RE9NU3R5bGVTaGVldCogd2Via2l0X2RvbV9odG1sX3N0
eWxlX2VsZW1lbnRfZ2V0X3NoZWV0KFdlYktpdERPTUhUTUxTdHlsZUUKICAgICBSZWZQdHI8V2Vi
Q29yZTo6U3R5bGVTaGVldD4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPnNoZWV0
KCkpOwogICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKIH0KK0df
R05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU3R5bGVF
bGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudC5oCmluZGV4IDk5OGVjMmNhOTc4Li4yYTc2
NDVmODhkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxTdHlsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TFN0eWxlRWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTFN0
eWxlRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9j
bGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3
ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01
Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9nZXRfdHlwZSh2b2lk
KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MU3R5bGVFbGVtZW50CiAgKgogICogUmV0dXJu
czogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9zdHlsZV9lbGVtZW50X2dldF9kaXNhYmxlZChX
ZWJLaXRET01IVE1MU3R5bGVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9nZXRfZGlzYWJsZWQoV2ViS2l0RE9NSFRN
TFN0eWxlRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFN0eWxlRWxl
bWVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9zZXRf
ZGlzYWJsZWQoV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUp
OwogCiAvKioKQEAgLTcxLDggKzc1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9zdHlsZV9lbGVtZW50
X3NldF9kaXNhYmxlZChXZWJLaXRET01IVE1MU3R5bGVFbGVtZW50KiBzZWxmLCBnYm9vCiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dj
aGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdl
YmtpdF9kb21faHRtbF9zdHlsZV9lbGVtZW50X2dldF9tZWRpYShXZWJLaXRET01IVE1MU3R5bGVF
bGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
c3R5bGVfZWxlbWVudF9nZXRfbWVkaWEoV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudCogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudAogICogQHZhbHVlOiBBICNn
Y2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3
ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9zZXRfbWVkaWEoV2ViS2l0RE9NSFRNTFN0eWxl
RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC04OSw4ICs5Nywx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9zZXRfbWVkaWEoV2ViS2l0RE9NSFRN
TFN0eWxlRWxlbWVudCogc2VsZiwgY29uc3QgZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxT
dHlsZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxl
bWVudF9nZXRfdHlwZV9hdHRyKFdlYktpdERPTUhUTUxTdHlsZUVsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTk4LDggKzEwOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9nZXRf
dHlwZV9hdHRyKFdlYktpdERPTUhUTUxTdHlsZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxTdHlsZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X3N0eWxlX2VsZW1lbnRfc2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MU3R5bGVFbGVtZW50KiBz
ZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX3N0eWxlX2VsZW1lbnRfc2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MU3R5
bGVFbGVtZW50KiBzZWxmLCBjb24KICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MU3R5bGVFbGVt
ZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01TdHlsZVNo
ZWV0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NU3R5bGVTaGVldCoKK1dFQktJVF9ERVBSRUNB
VEVEIFdlYktpdERPTVN0eWxlU2hlZXQqCiB3ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9n
ZXRfc2hlZXQoV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudCogc2VsZik7CiAKIEdfRU5EX0RFQ0xT
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxU
YWJsZUNhcHRpb25FbGVtZW50LmNwcAppbmRleCA2ZGE0YjkwNjY3NC4uOGFiOTU4YmY2ZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxU
YWJsZUNhcHRpb25FbGVtZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9H
ZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVf
REVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTFRhYmxl
Q2FwdGlvbkVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MVGFibGVDYXB0aW9uRWxlbWVudCogb2Jq
KQpAQCAtMTY4LDMgKzE3MCw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NhcHRpb25f
ZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlQ2FwdGlvbkVsCiAgICAgaXRlbS0+
c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmFs
aWduQXR0ciwgY29udmVydGVkVmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNB
VElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCmluZGV4IDRlOTJkNmU2OWI0Li5jMjk3NDYzOTg2ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxU
YWJsZUNhcHRpb25FbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01I
VE1MVGFibGVDYXB0aW9uRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENs
YXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNB
VEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2FwdGlvbl9lbGVtZW50X2dldF90eXBl
KHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9j
YXB0aW9uX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TFRhYmxlQ2FwdGlvbkVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxf
dGFibGVfY2FwdGlvbl9lbGVtZW50X2dldF9hbGlnbihXZWJLaXRET01IVE1MVGFibGVDYXB0aW9u
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1s
X3RhYmxlX2NhcHRpb25fZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlQ2FwdGlv
bkVsZW1lbnQKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudAog
ICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2FwdGlvbl9lbGVtZW50X3NldF9h
bGlnbihXZWJLaXRET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVDZWxsRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwCmluZGV4IGFiZDc2YmNjOGMw
Li42Yjc5ZmM3ZjhhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5j
bHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JF
R0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRE
T01IVE1MVGFibGVDZWxsRWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxUYWJsZUNlbGxFbGVtZW50
KiBvYmopCkBAIC02NTMsMyArNjU1LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2Vs
bF9lbGVtZW50X3NldF9zY29wZShXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCoKICAgICBp
dGVtLT5zZXRTY29wZShjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RF
UFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudC5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxUYWJsZUNlbGxFbGVtZW50LmgKaW5kZXggODFjZmYxNWYyNTAuLmRlZjc1YzY1N2QwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxl
Q2VsbEVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxUYWJs
ZUNlbGxFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50
X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUK
IHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8q
KgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9n
ZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJ
VF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dl
dF9jZWxsX2luZGV4KFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dl
dF9jZWxsX2luZGV4KFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KgogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0
X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxl
Q2VsbEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTcxLDggKzc1LDEwIEBAIHdlYmtpdF9kb21f
aHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZUNlbGxF
bGVtZW50KiBzZWxmCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9zZXRfYWxp
Z24oV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1
ZSk7CiAKIC8qKgpAQCAtODAsOCArODYsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxf
ZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X2F4aXMoV2ViS2l0RE9N
SFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTg5LDggKzk3LDEwIEBAIHdl
YmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X2F4aXMoV2ViS2l0RE9NSFRNTFRh
YmxlQ2VsbEVsZW1lbnQqIHNlbGYpCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVu
dF9zZXRfYXhpcyhXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZiwgY29uc3QgZ2No
YXIqIHZhbHVlKTsKIAogLyoqCkBAIC05OCw4ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9odG1sX3Rh
YmxlX2NlbGxfZWxlbWVudF9zZXRfYXhpcyhXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCog
c2VsZiwKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudAogICoKICAq
IFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVD
QVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X2JnX2Nv
bG9yKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMDcs
OCArMTE5LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X2JnX2Nv
bG9yKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3Rh
YmxlX2NlbGxfZWxlbWVudF9zZXRfYmdfY29sb3IoV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTE2LDggKzEzMCwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X3NldF9iZ19jb2xvcihXZWJLaXRE
T01IVE1MVGFibGVDZWxsRWxlbWVudCogcwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJs
ZUNlbGxFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Y2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2Nl
bGxfZWxlbWVudF9nZXRfY2goV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTEyNSw4ICsxNDEsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxl
bWVudF9nZXRfY2goV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFy
CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtp
dF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0X2NoKFdlYktpdERPTUhUTUxUYWJsZUNl
bGxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEzNCw4ICsx
NTIsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9zZXRfY2goV2ViS2l0
RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYsIGMKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MVGFibGVDZWxsRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90
YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X2NoX29mZihXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtMTQzLDggKzE2MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfY2VsbF9lbGVtZW50X2dldF9jaF9vZmYoV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQq
IHNlbAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50CiAgKiBAdmFs
dWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0X2NoX29mZihXZWJL
aXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAog
LyoqCkBAIC0xNTIsOCArMTc0LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1l
bnRfc2V0X2NoX29mZihXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsCiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Vi
a2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9nZXRfY29sX3NwYW4oV2ViS2l0RE9NSFRN
TFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE2MSw4ICsxODUsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9nZXRfY29sX3NwYW4oV2ViS2l0RE9NSFRN
TFRhYmxlQ2VsbEVsZW1lbnQqIHMKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxs
RWxlbWVudAogICogQHZhbHVlOiBBICNnbG9uZwogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50
X3NldF9jb2xfc3BhbihXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZiwgZ2xvbmcg
dmFsdWUpOwogCiAvKioKQEAgLTE3MCw4ICsxOTYsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxl
X2NlbGxfZWxlbWVudF9zZXRfY29sX3NwYW4oV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQq
IHMKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudAogICoKICAqIFJl
dHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVE
IGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dldF9yb3dfc3BhbihX
ZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTc5LDggKzIw
NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dldF9yb3dfc3BhbihX
ZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogcwogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxUYWJsZUNlbGxFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dsb25nCiAgKgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9j
ZWxsX2VsZW1lbnRfc2V0X3Jvd19zcGFuKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBz
ZWxmLCBnbG9uZyB2YWx1ZSk7CiAKIC8qKgpAQCAtMTg4LDggKzIxOCwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X3NldF9yb3dfc3BhbihXZWJLaXRET01IVE1MVGFibGVD
ZWxsRWxlbWVudCogcwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9n
ZXRfaGVhZGVycyhXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZik7CiAKIC8qKgpA
QCAtMTk3LDggKzIyOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dl
dF9oZWFkZXJzKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZQogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0X2hlYWRlcnMoV2ViS2l0RE9NSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjA2LDggKzI0
MCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X3NldF9oZWFkZXJzKFdl
YktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZQogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxUYWJsZUNlbGxFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3Rh
YmxlX2NlbGxfZWxlbWVudF9nZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC0yMTUsOCArMjUxLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJs
ZV9jZWxsX2VsZW1lbnRfZ2V0X2hlaWdodChXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCog
c2VsCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQKICAqIEB2YWx1
ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9zZXRfaGVpZ2h0KFdlYktp
dERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAv
KioKQEAgLTIyNCw4ICsyNjIsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVu
dF9zZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWwKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2di
b29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29s
ZWFuCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dldF9ub193cmFwKFdlYktp
dERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMzMsOCArMjczLDEw
IEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X25vX3dyYXAoV2ViS2l0
RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRh
YmxlQ2VsbEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2Nl
bGxfZWxlbWVudF9zZXRfbm9fd3JhcChXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2Vs
ZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTI0Miw4ICsyODQsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9zZXRfbm9fd3JhcChXZWJLaXRET01IVE1MVGFibGVD
ZWxsRWxlbWVudCogc2UKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRf
Z2V0X3ZfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTI1MSw4ICsyOTUsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9n
ZXRfdl9hbGlnbihXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2UKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X3NldF92X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZUNl
bGxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTI2MCw4ICsz
MDYsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9zZXRfdl9hbGlnbihX
ZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2UKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MVGFibGVDZWxsRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90
YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X3dpZHRoKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC0yNjksOCArMzE3LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJs
ZV9jZWxsX2VsZW1lbnRfZ2V0X3dpZHRoKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBz
ZWxmCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQKICAqIEB2YWx1
ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9zZXRfd2lkdGgoV2ViS2l0
RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8q
KgpAQCAtMjc4LDggKzMyOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50
X3NldF93aWR0aChXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZgogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2No
YXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Vi
a2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9nZXRfYWJicihXZWJLaXRET01IVE1MVGFi
bGVDZWxsRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjg3LDggKzMzOSwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dldF9hYmJyKFdlYktpdERPTUhUTUxUYWJsZUNl
bGxFbGVtZW50KiBzZWxmKQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVt
ZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0
X2FiYnIoV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2
YWx1ZSk7CiAKIC8qKgpAQCAtMjk2LDggKzM1MCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVf
Y2VsbF9lbGVtZW50X3NldF9hYmJyKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxm
LAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50CiAgKgogICogUmV0
dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVE
IGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9nZXRfc2NvcGUoV2Vi
S2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTMwNSw4ICszNjEs
MTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9nZXRfc2NvcGUoV2ViS2l0
RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
VGFibGVDZWxsRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2Vs
bF9lbGVtZW50X3NldF9zY29wZShXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
VGFibGVDb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50LmNwcAppbmRleCA0
NjczYmNhMWNkYS4uMDkwZjIwOTJkMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVDb2xFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudC5jcHAKQEAgLTM2LDYgKzM2LDgg
QEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitH
X0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MVGFibGVDb2xF
bGVtZW50KiBvYmopCkBAIC0zNDYsMyArMzQ4LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfY29sX2VsZW1lbnRfc2V0X3dpZHRoKFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIHMK
ICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhU
TUxOYW1lczo6d2lkdGhBdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdO
T1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudC5oCmluZGV4IDU3MzlhMjAwNzQ1Li43MmEyNDBmMTM2
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRh
YmxlQ29sRWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTFRh
YmxlQ29sRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVu
dF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBl
CiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8q
KgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NvbF9lbGVtZW50X2dl
dF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRfZ2V0
X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYy
LDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jb2xfZWxlbWVudF9nZXRfYWxpZ24o
V2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTFRhYmxlQ29sRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfY29sX2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0
X2RvbV9odG1sX3RhYmxlX2NvbF9lbGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MVGFibGVD
b2xFbGVtZW50KiBzZWxmLAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRf
Z2V0X2NoKFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgw
LDggKzg2LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jb2xfZWxlbWVudF9nZXRfY2goV2Vi
S2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTFRhYmxlQ29sRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVf
Y29sX2VsZW1lbnRfc2V0X2NoKFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtODksOCArOTcsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX3RhYmxlX2NvbF9lbGVtZW50X3NldF9jaChXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50
KiBzZWxmLCBjb24KICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50CiAg
KgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9E
RVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2NvbF9lbGVtZW50X2dldF9j
aF9vZmYoV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtOTgs
OCArMTA4LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jb2xfZWxlbWVudF9nZXRfY2hfb2Zm
KFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIHNlbGYpCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTFRhYmxlQ29sRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfY29sX2VsZW1lbnRfc2V0X2NoX29mZihXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50KiBz
ZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX3RhYmxlX2NvbF9lbGVtZW50X3NldF9jaF9vZmYoV2ViS2l0RE9NSFRNTFRh
YmxlQ29sRWxlbWVudCogc2VsZiwKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDb2xF
bGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZwor
V0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jb2xfZWxlbWVu
dF9nZXRfc3BhbihXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC0xMTYsOCArMTMwLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jb2xfZWxlbWVudF9nZXRf
c3BhbihXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dsb25nCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRt
bF90YWJsZV9jb2xfZWxlbWVudF9zZXRfc3BhbihXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50
KiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAKIC8qKgpAQCAtMTI1LDggKzE0MSwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRfc2V0X3NwYW4oV2ViS2l0RE9NSFRNTFRhYmxlQ29s
RWxlbWVudCogc2VsZiwgZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRf
Z2V0X3ZfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudCogc2VsZik7CiAKIC8qKgpA
QCAtMTM0LDggKzE1MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRfZ2V0
X3ZfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudCogc2VsZgogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9o
dG1sX3RhYmxlX2NvbF9lbGVtZW50X3NldF92X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZUNvbEVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTQzLDggKzE2Mywx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRfc2V0X3ZfYWxpZ24oV2ViS2l0
RE9NSFRNTFRhYmxlQ29sRWxlbWVudCogc2VsZgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxU
YWJsZUNvbEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVf
Y29sX2VsZW1lbnRfZ2V0X3dpZHRoKFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTE1Miw4ICsxNzQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NvbF9l
bGVtZW50X2dldF93aWR0aChXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50KiBzZWxmKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dj
aGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF90YWJsZV9jb2xfZWxlbWVudF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRNTFRh
YmxlQ29sRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVFbGVt
ZW50LmNwcAppbmRleCBkMjRlZmEyZTEyNy4uYmJiNTU0NzQ0MDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MVGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudC5jcHAKQEAgLTQw
LDYgKzQwLDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MVGFi
bGVFbGVtZW50KiBvYmopCkBAIC02NjMsMyArNjY1LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxf
dGFibGVfZWxlbWVudF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZiwg
Y28KICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6
OkhUTUxOYW1lczo6d2lkdGhBdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRf
SUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTFRhYmxlRWxlbWVudC5oCmluZGV4IDlmMmQ5ZjViMWYwLi5mYTc4YmZlMzc3OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlRWxl
bWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVu
dENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07
CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9t
X2h0bWxfdGFibGVfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01MywxNiArNTMs
MjAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFu
c2ZlciBub25lKTogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJL
aXRET01IVE1MRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxFbGVtZW50
Kgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfY3JlYXRlX3RfaGVhZChXZWJLaXRET01I
VE1MVGFibGVFbGVtZW50KiBzZWxmKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX2h0bWxfdGFibGVf
ZWxlbWVudF9kZWxldGVfdF9oZWFkOgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUVs
ZW1lbnQKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZGVsZXRlX3RfaGVhZChXZWJLaXRET01IVE1M
VGFibGVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC03MCwxNiArNzQsMjAgQEAgd2Via2l0X2Rv
bV9odG1sX3RhYmxlX2VsZW1lbnRfZGVsZXRlX3RfaGVhZChXZWJLaXRET01IVE1MVGFibGVFbGVt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVFbGVtZW50CiAgKgog
ICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01IVE1MRWxlbWVudAorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxFbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2Vi
S2l0RE9NSFRNTEVsZW1lbnQqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9jcmVhdGVf
dF9mb290KFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKICAqIHdlYmtp
dF9kb21faHRtbF90YWJsZV9lbGVtZW50X2RlbGV0ZV90X2Zvb3Q6CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTFRhYmxlRWxlbWVudAogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRf
REVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9kZWxldGVfdF9m
b290KFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTg3LDE2ICs5
NSwyMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9kZWxldGVfdF9mb290KFdlYktp
dERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxU
YWJsZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERP
TUhUTUxFbGVtZW50CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTEVsZW1lbnQqCitXRUJL
SVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1MRWxlbWVudCoKIHdlYmtpdF9kb21faHRtbF90YWJs
ZV9lbGVtZW50X2NyZWF0ZV9jYXB0aW9uKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYp
OwogCiAvKioKICAqIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2RlbGV0ZV9jYXB0aW9u
OgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQKICAqCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxl
X2VsZW1lbnRfZGVsZXRlX2NhcHRpb24oV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtMTA2LDggKzExOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVu
dF9kZWxldGVfY2FwdGlvbihXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsKICAqIEBl
cnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0
RE9NSFRNTEVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MRWxlbWVudCoKK1dF
QktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxFbGVtZW50Kgogd2Via2l0X2RvbV9odG1sX3Rh
YmxlX2VsZW1lbnRfaW5zZXJ0X3JvdyhXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmLCBn
bG9uZyBpbmRleCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTExNiw4ICsxMzAsMTAgQEAg
d2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfaW5zZXJ0X3JvdyhXZWJLaXRET01IVE1MVGFi
bGVFbGVtZW50KiBzZWxmLCBnbG9uZwogICogQGluZGV4OiBBICNnbG9uZwogICogQGVycm9yOiAj
R0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2RlbGV0ZV9yb3coV2ViS2l0RE9NSFRNTFRh
YmxlRWxlbWVudCogc2VsZiwgZ2xvbmcgaW5kZXgsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBA
IC0xMjUsOCArMTQxLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2RlbGV0ZV9y
b3coV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZiwgZ2xvbmcKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MVGFibGVFbGVtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUp
OiBBICNXZWJLaXRET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdl
YktpdERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0
RE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVu
dF9nZXRfY2FwdGlvbihXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC0xMzUsOCArMTUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2dldF9jYXB0
aW9uKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNXZWJL
aXRET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudAogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRt
bF90YWJsZV9lbGVtZW50X3NldF9jYXB0aW9uKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNl
bGYsIFdlYktpdERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50KiB2YWx1ZSwgR0Vycm9yKiogZXJy
b3IpOwogCiAvKioKQEAgLTE0NCw4ICsxNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2Vs
ZW1lbnRfc2V0X2NhcHRpb24oV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZiwgV2ViS2kK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVFbGVtZW50CiAgKgogICogUmV0dXJuczog
KHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudAorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KgorV0VCS0lUX0RF
UFJFQ0FURUQgV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqCiB3ZWJraXRfZG9tX2h0
bWxfdGFibGVfZWxlbWVudF9nZXRfdF9oZWFkKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNl
bGYpOwogCiAvKioKQEAgLTE1NCw4ICsxNzYsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2Vs
ZW1lbnRfZ2V0X3RfaGVhZChXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsKICAqIEB2
YWx1ZTogQSAjV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKICAqIEBlcnJvcjogI0dF
cnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3
ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9zZXRfdF9oZWFkKFdlYktpdERPTUhUTUxUYWJs
ZUVsZW1lbnQqIHNlbGYsIFdlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiB2YWx1ZSwg
R0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTE2Myw4ICsxODcsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX3RhYmxlX2VsZW1lbnRfc2V0X3RfaGVhZChXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBz
ZWxmLCBXZWJLaXQKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVFbGVtZW50CiAgKgog
ICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01IVE1MVGFibGVTZWN0aW9u
RWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqCiB3
ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9nZXRfdF9mb290KFdlYktpdERPTUhUTUxUYWJs
ZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE3Myw4ICsxOTksMTAgQEAgd2Via2l0X2RvbV9o
dG1sX3RhYmxlX2VsZW1lbnRfZ2V0X3RfZm9vdChXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBz
ZWxmKTsKICAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKICAq
IEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9zZXRfdF9mb290KFdlYktp
dERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYsIFdlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50KiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTE4Miw4ICsyMTAsMTAgQEAg
d2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfc2V0X3RfZm9vdChXZWJLaXRET01IVE1MVGFi
bGVFbGVtZW50KiBzZWxmLCBXZWJLaXQKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVF
bGVtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1M
Q29sbGVjdGlvbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgorV0VC
S0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCiB3ZWJraXRfZG9tX2h0bWxf
dGFibGVfZWxlbWVudF9nZXRfcm93cyhXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsK
IAogLyoqCkBAIC0xOTEsOCArMjIxLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50
X2dldF9yb3dzKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVs
bCk6IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9N
SFRNTENvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1MQ29sbGVjdGlv
bioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2dldF90X2JvZGllcyhXZWJLaXRET01I
VE1MVGFibGVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMDAsOCArMjMyLDEwIEBAIHdlYmtp
dF9kb21faHRtbF90YWJsZV9lbGVtZW50X2dldF90X2JvZGllcyhXZWJLaXRET01IVE1MVGFibGVF
bGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVFbGVtZW50CiAg
KgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9E
RVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0X2FsaWdu
KFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTIwOSw4ICsyNDMs
MTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhU
TUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUVs
ZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfc2V0X2Fs
aWduKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7
CiAKIC8qKgpAQCAtMjE4LDggKzI1NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVu
dF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZiwgY29uc3QgZwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
Y2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3
ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9nZXRfYmdfY29sb3IoV2ViS2l0RE9NSFRNTFRh
YmxlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjI3LDggKzI2NSwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfdGFibGVfZWxlbWVudF9nZXRfYmdfY29sb3IoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVu
dCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudAogICogQHZh
bHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9zZXRfYmdfY29sb3IoV2ViS2l0
RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBA
IC0yMzYsOCArMjc2LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X3NldF9iZ19j
b2xvcihXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmLCBjb25zCiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21f
aHRtbF90YWJsZV9lbGVtZW50X2dldF9ib3JkZXIoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMjQ1LDggKzI4NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVf
ZWxlbWVudF9nZXRfYm9yZGVyKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfc2V0X2JvcmRlcihXZWJLaXRET01IVE1MVGFibGVFbGVt
ZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTI1NCw4ICsyOTgsMTAg
QEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfc2V0X2JvcmRlcihXZWJLaXRET01IVE1M
VGFibGVFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJs
ZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFy
KgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVu
dF9nZXRfY2VsbF9wYWRkaW5nKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTI2Myw4ICszMDksMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0
X2NlbGxfcGFkZGluZyhXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MVGFibGVFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF90YWJsZV9lbGVtZW50X3NldF9jZWxsX3BhZGRpbmcoV2ViS2l0RE9NSFRNTFRhYmxlRWxl
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0yNzIsOCArMzIwLDEw
IEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X3NldF9jZWxsX3BhZGRpbmcoV2ViS2l0
RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZiwKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFi
bGVFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hh
cioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1l
bnRfZ2V0X2NlbGxfc3BhY2luZyhXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0yODEsOCArMzMxLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2dl
dF9jZWxsX3NwYWNpbmcoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfdGFibGVfZWxlbWVudF9zZXRfY2VsbF9zcGFjaW5nKFdlYktpdERPTUhUTUxUYWJsZUVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjkwLDggKzM0Miwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9zZXRfY2VsbF9zcGFjaW5nKFdlYktp
dERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYsCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRh
YmxlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2No
YXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVt
ZW50X2dldF9ydWxlcyhXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC0yOTksOCArMzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2dldF9ydWxl
cyhXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MVGFibGVFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9l
bGVtZW50X3NldF9ydWxlcyhXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmLCBjb25zdCBn
Y2hhciogdmFsdWUpOwogCiAvKioKQEAgLTMwOCw4ICszNjQsMTAgQEAgd2Via2l0X2RvbV9odG1s
X3RhYmxlX2VsZW1lbnRfc2V0X3J1bGVzKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYs
IGNvbnN0IGcKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVFbGVtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNB
VEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0X3N1bW1hcnkoV2Vi
S2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMzE3LDggKzM3NSwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9nZXRfc3VtbWFyeShXZWJLaXRET01IVE1M
VGFibGVFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVFbGVt
ZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X3NldF9zdW1t
YXJ5KFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7
CiAKIC8qKgpAQCAtMzI2LDggKzM4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVu
dF9zZXRfc3VtbWFyeShXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmLCBjb25zdAogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
Y2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3
ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9nZXRfd2lkdGgoV2ViS2l0RE9NSFRNTFRhYmxl
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMzM1LDggKzM5NywxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfdGFibGVfZWxlbWVudF9nZXRfd2lkdGgoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudAogICogQHZhbHVlOiBB
ICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRNTFRh
YmxlRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVSb3dF
bGVtZW50LmNwcAppbmRleCBjNzdjMmE2ZWRjMC4uYzg3NGY1ODNkMTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MVGFibGVSb3dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudC5j
cHAKQEAgLTM4LDYgKzM4LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIGtpdChXZWJD
b3JlOjpIVE1MVGFibGVSb3dFbGVtZW50KiBvYmopCkBAIC00MTEsMyArNDEzLDQgQEAgdm9pZCB3
ZWJraXRfZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRfc2V0X3ZfYWxpZ24oV2ViS2l0RE9NSFRN
TFRhYmxlUm93RWxlbWVudCoKICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6dmFsaWduQXR0ciwgY29udmVydGVkVmFsdWUpOwog
fQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TFRhYmxlUm93RWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQuaAppbmRleCAwMzc5
MWY2YzRkYS4uOTJlYzFlNWI1MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1
Y3QgX1dlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRN
TEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJL
SVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X2dl
dF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTU1LDggKzU1LDEwIEBAIHdlYmtpdF9kb21faHRtbF90
YWJsZV9yb3dfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoK
ICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdl
YktpdERPTUhUTUxFbGVtZW50Kgogd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X2lu
c2VydF9jZWxsKFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNlbGYsIGdsb25nIGluZGV4
LCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtNjUsOCArNjcsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX3RhYmxlX3Jvd19lbGVtZW50X2luc2VydF9jZWxsKFdlYktpdERPTUhUTUxUYWJsZVJvd0Vs
ZW1lbnQqIHNlbGYKICAqIEBpbmRleDogQSAjZ2xvbmcKICAqIEBlcnJvcjogI0dFcnJvcgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfdGFibGVfcm93X2VsZW1lbnRfZGVsZXRlX2NlbGwoV2ViS2l0RE9NSFRNTFRhYmxlUm93
RWxlbWVudCogc2VsZiwgZ2xvbmcgaW5kZXgsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC03
NCw4ICs3OCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRfZGVsZXRlX2Nl
bGwoV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudCogc2VsZgogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxUYWJsZVJvd0VsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1s
X3RhYmxlX3Jvd19lbGVtZW50X2dldF9yb3dfaW5kZXgoV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxl
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtODMsOCArODksMTAgQEAgd2Via2l0X2RvbV9odG1sX3Rh
YmxlX3Jvd19lbGVtZW50X2dldF9yb3dfaW5kZXgoV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVu
dCogc2UKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FU
RUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9nZXRfc2VjdGlvbl9y
b3dfaW5kZXgoV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
OTIsOCArMTAwLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9nZXRfc2Vj
dGlvbl9yb3dfaW5kZXgoV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlCiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxs
KTogQSAjV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01I
VE1MQ29sbGVjdGlvbioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxDb2xsZWN0aW9u
Kgogd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X2dldF9jZWxscyhXZWJLaXRET01I
VE1MVGFibGVSb3dFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMDEsOCArMTExLDEwIEBAIHdl
YmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9nZXRfY2VsbHMoV2ViS2l0RE9NSFRNTFRh
YmxlUm93RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlUm93
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIq
CitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxl
bWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtMTEwLDggKzEyMiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRf
Z2V0X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MVGFibGVSb3dF
bGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTExOSw4ICsxMzMs
MTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X3NldF9hbGlnbihXZWJLaXRE
T01IVE1MVGFibGVSb3dFbGVtZW50KiBzZWxmLAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxU
YWJsZVJvd0VsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVf
cm93X2VsZW1lbnRfZ2V0X2JnX2NvbG9yKFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNl
bGYpOwogCiAvKioKQEAgLTEyOCw4ICsxNDQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jv
d19lbGVtZW50X2dldF9iZ19jb2xvcihXZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50KiBzZWwK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50CiAgKiBAdmFsdWU6IEEg
I2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9zZXRfYmdfY29sb3IoV2ViS2l0RE9N
SFRNTFRhYmxlUm93RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBA
IC0xMzcsOCArMTU1LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9zZXRf
YmdfY29sb3IoV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudCogc2VsCiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9k
b21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9nZXRfY2goV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxl
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTQ2LDggKzE2NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
dGFibGVfcm93X2VsZW1lbnRfZ2V0X2NoKFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNl
bGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQKICAqIEB2YWx1
ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X3NldF9jaChXZWJLaXRET01I
VE1MVGFibGVSb3dFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAg
LTE1NSw4ICsxNzcsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X3NldF9j
aChXZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50KiBzZWxmLCBjb24KICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2Rv
bV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X2dldF9jaF9vZmYoV2ViS2l0RE9NSFRNTFRhYmxlUm93
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTY0LDggKzE4OCwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfdGFibGVfcm93X2VsZW1lbnRfZ2V0X2NoX29mZihXZWJLaXRET01IVE1MVGFibGVSb3dFbGVt
ZW50KiBzZWxmKQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQKICAq
IEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X3NldF9jaF9vZmYo
V2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsK
IAogLyoqCkBAIC0xNzMsOCArMTk5LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxl
bWVudF9zZXRfY2hfb2ZmKFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNlbGYsCiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudAogICoKICAqIFJldHVybnM6IEEg
I2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioK
IHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9nZXRfdl9hbGlnbihXZWJLaXRET01I
VE1MVGFibGVSb3dFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xODIsOCArMjEwLDEwIEBAIHdl
YmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9nZXRfdl9hbGlnbihXZWJLaXRET01IVE1M
VGFibGVSb3dFbGVtZW50KiBzZWxmCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlUm93
RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRf
c2V0X3ZfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudCogc2VsZiwgY29uc3QgZ2No
YXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVTZWN0
aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwCmluZGV4IDUw
OTM2MzhhMzgzLi5mOTQzODE0OTA0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwCkBAIC0zOCw2
ICszOCw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudCoga2l0KFdlYkNvcmU6OkhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50KiBvYmopCkBAIC0zMjgsMyArMzMwLDQgQEAgV2ViS2l0RE9N
SFRNTENvbGxlY3Rpb24qIHdlYmtpdF9kb21faHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfZ2V0
X3Jvd3MoV2ViS2l0RE8KICAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQo
KSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
LmgKaW5kZXggYjBmN2IzYjIxM2MuLjY5MmUwODQyMTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaApA
QCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsK
IAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21f
aHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTUs
OCArNTUsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVudF9nZXRfdHlw
ZSh2b2lkKTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBu
b25lKTogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01I
VE1MRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxFbGVtZW50Kgogd2Vi
a2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVudF9pbnNlcnRfcm93KFdlYktpdERPTUhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50KiBzZWxmLCBnbG9uZyBpbmRleCwgR0Vycm9yKiogZXJyb3Ip
OwogCiAvKioKQEAgLTY1LDggKzY3LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9zZWN0aW9u
X2VsZW1lbnRfaW5zZXJ0X3JvdyhXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVuCiAgKiBA
aW5kZXg6IEEgI2dsb25nCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rp
b25fZWxlbWVudF9kZWxldGVfcm93KFdlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBz
ZWxmLCBnbG9uZyBpbmRleCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTc0LDggKzc4LDEw
IEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfZGVsZXRlX3JvdyhXZWJL
aXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVuCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfc2VjdGlvbl9lbGVtZW50X2dldF9hbGlnbihXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxl
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtODMsOCArODksMTAgQEAgd2Via2l0X2RvbV9odG1sX3Rh
YmxlX3NlY3Rpb25fZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogICog
QHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfc2VjdGlvbl9lbGVtZW50X3NldF9hbGln
bihXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlKTsKIAogLyoqCkBAIC05Miw4ICsxMDAsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX3Nl
Y3Rpb25fZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogICoKICAqIFJl
dHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRF
RCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfZ2V0X2NoKFdl
YktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMDEsOCAr
MTExLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfZ2V0X2NoKFdl
YktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBzCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3Rh
YmxlX3NlY3Rpb25fZWxlbWVudF9zZXRfY2goV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTEwLDggKzEyMiwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfc2VjdGlvbl9lbGVtZW50X3NldF9jaChXZWJLaXRET01I
VE1MVGFibGVTZWN0aW9uRWxlbWVudCogcwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3RhYmxl
X3NlY3Rpb25fZWxlbWVudF9nZXRfY2hfb2ZmKFdlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMTksOCArMTMzLDEwIEBAIHdlYmtpdF9kb21faHRtbF90
YWJsZV9zZWN0aW9uX2VsZW1lbnRfZ2V0X2NoX29mZihXZWJLaXRET01IVE1MVGFibGVTZWN0aW9u
RWxlbWVuCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKICAq
IEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVudF9zZXRfY2hf
b2ZmKFdlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciog
dmFsdWUpOwogCiAvKioKQEAgLTEyOCw4ICsxNDQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxl
X3NlY3Rpb25fZWxlbWVudF9zZXRfY2hfb2ZmKFdlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW4KICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogICoKICAq
IFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVD
QVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfZ2V0X3Zf
YWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTEzNyw4ICsxNTUsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVudF9n
ZXRfdl9hbGlnbihXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWUKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfdGFibGVfc2VjdGlvbl9lbGVtZW50X3NldF92X2FsaWduKFdlYktpdERPTUhUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE0
Niw4ICsxNjYsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVudF9zZXRf
dl9hbGlnbihXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWUKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBm
dWxsKTogQSAjV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRE
T01IVE1MQ29sbGVjdGlvbioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxDb2xsZWN0
aW9uKgogd2Via2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVudF9nZXRfcm93cyhXZWJL
aXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudCogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxl
bWVudC5jcHAKaW5kZXggMTUyODNkYWFiZGEuLjgwMGQyZDNmOGRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTFRleHRBcmVhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQuY3Bw
CkBAIC0zOCw2ICszOCw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBraXQoV2ViQ29y
ZTo6SFRNTFRleHRBcmVhRWxlbWVudCogb2JqKQpAQCAtNTcyLDMgKzU3NCw0IEBAIGdib29sZWFu
IHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9pc19lZGl0ZWQoV2ViS2l0RE9NSFRN
TFRleHRBcmVhRWxlbWVuCiAKICAgICByZXR1cm4gV2ViS2l0Ojpjb3JlKGFyZWEpLT5sYXN0Q2hh
bmdlV2FzVXNlckVkaXQoKTsKIH0KK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxl
bWVudC5oCmluZGV4IGI4ODdlNTRiOWJiLi4wZTlkYzE1Y2I2NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxUZXh0QXJlYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudC5oCkBAIC00
NSwxNSArNDUsMTcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50Q2xhc3Mg
ewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VC
S0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF90
ZXh0X2FyZWFfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX2h0
bWxfdGV4dF9hcmVhX2VsZW1lbnRfc2VsZWN0OgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxU
ZXh0QXJlYUVsZW1lbnQKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X3NlbGVjdChXZWJLaXRE
T01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Myw4ICs2NSwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfc2VsZWN0KFdlYktpdERPTUhUTUxUZXh0
QXJlYUVsZW1lbnQqIHNlbGYpOwogICogQGVuZDogQSAjZ2xvbmcKICAqIEBkaXJlY3Rpb246IEEg
I2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9zZXRfc2VsZWN0aW9uX3JhbmdlKFdl
YktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYsIGdsb25nIHN0YXJ0LCBnbG9uZyBlbmQs
IGNvbnN0IGdjaGFyKiBkaXJlY3Rpb24pOwogCiAvKioKQEAgLTcyLDggKzc2LDEwIEBAIHdlYmtp
dF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9zZXRfc2VsZWN0aW9uX3JhbmdlKFdlYktpdERP
TUhUTUxUZXh0QXJlYUVsZW1lCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxl
bWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xl
YW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVh
X2VsZW1lbnRfZ2V0X2F1dG9mb2N1cyhXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxm
KTsKIAogLyoqCkBAIC04MSw4ICs4NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2Vs
ZW1lbnRfZ2V0X2F1dG9mb2N1cyhXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZQogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jv
b2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X3NldF9hdXRvZm9jdXMoV2ViS2l0RE9N
SFRNTFRleHRBcmVhRWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTkw
LDggKzk4LDEwIEBAIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9zZXRfYXV0b2Zv
Y3VzKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTFRleHRBcmVhRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRf
ZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfZ2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxUZXh0
QXJlYUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTk5LDggKzEwOSwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfZ2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxUZXh0QXJl
YUVsZW1lbnQqIHNlbAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X3NldF9k
aXNhYmxlZChXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1
ZSk7CiAKIC8qKgpAQCAtMTA4LDggKzEyMCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVh
X2VsZW1lbnRfc2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbAog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1cm5z
OiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUhUTUxGb3JtRWxlbWVudAorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktp
dERPTUhUTUxGb3JtRWxlbWVudCoKIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9n
ZXRfZm9ybShXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0x
MTcsOCArMTMxLDEwIEBAIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfZm9y
bShXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9o
dG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTEyNiw4ICsxNDIsMTAgQEAgd2Via2l0X2RvbV9odG1sX3Rl
eHRfYXJlYV9lbGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNl
bGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKICAqIEB2YWx1
ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X3NldF9uYW1lKFdlYktpdERP
TUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpA
QCAtMTM1LDggKzE1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfc2V0
X25hbWUoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogc2VsZiwgYwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVh
bgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgog
d2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF9yZWFkX29ubHkoV2ViS2l0RE9N
SFRNTFRleHRBcmVhRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTQ0LDggKzE2NCwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfZ2V0X3JlYWRfb25seShXZWJLaXRET01I
VE1MVGV4dEFyZWFFbGVtZW50KiBzZQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUZXh0QXJl
YUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVt
ZW50X3NldF9yZWFkX29ubHkoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogc2VsZiwgZ2Jv
b2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTE1Myw4ICsxNzUsMTAgQEAgd2Via2l0X2RvbV9odG1s
X3RleHRfYXJlYV9lbGVtZW50X3NldF9yZWFkX29ubHkoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxl
bWVudCogc2UKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJF
Q0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfcm93cyhX
ZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNjIsOCArMTg2
LDEwIEBAIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfcm93cyhXZWJLaXRE
T01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
VGV4dEFyZWFFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dsb25nCiAgKgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFf
ZWxlbWVudF9zZXRfcm93cyhXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmLCBnbG9u
ZyB2YWx1ZSk7CiAKIC8qKgpAQCAtMTcxLDggKzE5NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGV4
dF9hcmVhX2VsZW1lbnRfc2V0X3Jvd3MoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogc2Vs
ZiwgZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRF
RCBnbG9uZwogd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF9jb2xzKFdlYktp
dERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE4MCw4ICsyMDgsMTAg
QEAgd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF9jb2xzKFdlYktpdERPTUhU
TUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUZXh0
QXJlYUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVt
ZW50X3NldF9jb2xzKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYsIGdsb25nIHZh
bHVlKTsKIAogLyoqCkBAIC0xODksOCArMjE5LDEwIEBAIHdlYmtpdF9kb21faHRtbF90ZXh0X2Fy
ZWFfZWxlbWVudF9zZXRfY29scyhXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmLCBn
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudAogICoKICAqIFJldHVy
bnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBn
Y2hhcioKIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfYXJlYV90eXBlKFdl
YktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE5OCw4ICsyMzAs
MTAgQEAgd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF9hcmVhX3R5cGUoV2Vi
S2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogc2UKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
VGV4dEFyZWFFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3RleHRf
YXJlYV9lbGVtZW50X2dldF9kZWZhdWx0X3ZhbHVlKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTIwNyw4ICsyNDEsMTAgQEAgd2Via2l0X2RvbV9odG1sX3Rl
eHRfYXJlYV9lbGVtZW50X2dldF9kZWZhdWx0X3ZhbHVlKFdlYktpdERPTUhUTUxUZXh0QXJlYUVs
ZW1lbnQKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKiBAdmFs
dWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9zZXRfZGVmYXVsdF92YWx1
ZShXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
OwogCiAvKioKQEAgLTIxNiw4ICsyNTIsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9l
bGVtZW50X3NldF9kZWZhdWx0X3ZhbHVlKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKgogICogUmV0dXJuczog
QSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFy
Kgogd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF92YWx1ZShXZWJLaXRET01I
VE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMjUsOCArMjYzLDEwIEBAIHdl
YmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfdmFsdWUoV2ViS2l0RE9NSFRNTFRl
eHRBcmVhRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRleHRBcmVh
RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRf
c2V0X3ZhbHVlKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFy
KiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjM0LDggKzI3NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGV4
dF9hcmVhX2VsZW1lbnRfc2V0X3ZhbHVlKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNl
bGYsCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudAogICoKICAqIFJl
dHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBS
RUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfZ2V0X3dp
bGxfdmFsaWRhdGUoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogc2VsZik7CiAKIC8qKgpA
QCAtMjQzLDggKzI4NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfZ2V0
X3dpbGxfdmFsaWRhdGUoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudAogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZwor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2Rv
bV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF9zZWxlY3Rpb25fc3RhcnQoV2ViS2l0RE9NSFRN
TFRleHRBcmVhRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjUyLDggKzI5NiwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfZ2V0X3NlbGVjdGlvbl9zdGFydChXZWJLaXRE
T01IVE1MVGV4dEFyZWFFbGVtZQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUZXh0QXJlYUVs
ZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X3Nl
dF9zZWxlY3Rpb25fc3RhcnQoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogc2VsZiwgZ2xv
bmcgdmFsdWUpOwogCiAvKioKQEAgLTI2MSw4ICszMDcsMTAgQEAgd2Via2l0X2RvbV9odG1sX3Rl
eHRfYXJlYV9lbGVtZW50X3NldF9zZWxlY3Rpb25fc3RhcnQoV2ViS2l0RE9NSFRNTFRleHRBcmVh
RWxlbWUKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FU
RUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfc2VsZWN0aW9u
X2VuZChXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNzAs
OCArMzE4LDEwIEBAIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfc2VsZWN0
aW9uX2VuZChXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTFRleHRBcmVhRWxlbWVudAogICogQHZhbHVlOiBBICNnbG9uZwogICoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGV4
dF9hcmVhX2VsZW1lbnRfc2V0X3NlbGVjdGlvbl9lbmQoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxl
bWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioKQEAgLTI3OSw4ICszMjksMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X3NldF9zZWxlY3Rpb25fZW5kKFdlYktpdERP
TUhUTUxUZXh0QXJlYUVsZW1lbnQKICAqIEBpbnB1dDogQSAjV2ViS2l0RE9NSFRNTFRleHRBcmVh
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2Jv
b2xlYW4gd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2lzX2VkaXRlZChXZWJLaXRE
T01IVE1MVGV4dEFyZWFFbGVtZW50KiBpbnB1dCk7CitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVh
biB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfaXNfZWRpdGVkKFdlYktpdERPTUhU
TUxUZXh0QXJlYUVsZW1lbnQqIGlucHV0KTsKIAogR19FTkRfREVDTFMKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxUaXRsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUaXRsZUVsZW1lbnQuY3BwCmluZGV4
IGM4MWY1MjNjYmQ2Li45MWUyNzdiMjI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUaXRsZUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MVGl0bGVFbGVtZW50LmNwcApAQCAtMzUsNiArMzUsOCBAQAog
I2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05V
Q19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2Vi
S2l0RE9NSFRNTFRpdGxlRWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxUaXRsZUVsZW1lbnQqIG9i
aikKQEAgLTE2NywzICsxNjksNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF90aXRsZV9lbGVtZW50
X3NldF90ZXh0KFdlYktpdERPTUhUTUxUaXRsZUVsZW1lbnQqIHNlbGYsIGNvbgogICAgIGl0ZW0t
PnNldFRleHQoY29udmVydGVkVmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNB
VElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRpdGxlRWxlbWVudC5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUaXRs
ZUVsZW1lbnQuaAppbmRleCA0ZTAwYThkNTM2Zi4uODU4MWNjMTY4NDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MVGl0bGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUaXRsZUVsZW1lbnQuaApAQCAtNDUs
NyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxUaXRsZUVsZW1lbnRDbGFzcyB7CiAgICAg
V2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJ
IEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX3RpdGxlX2Vs
ZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX3RpdGxlX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTFRpdGxlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90
aXRsZV9lbGVtZW50X2dldF90ZXh0KFdlYktpdERPTUhUTUxUaXRsZUVsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF90aXRsZV9lbGVtZW50X2dl
dF90ZXh0KFdlYktpdERPTUhUTUxUaXRsZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxUaXRsZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3Rp
dGxlX2VsZW1lbnRfc2V0X3RleHQoV2ViS2l0RE9NSFRNTFRpdGxlRWxlbWVudCogc2VsZiwgY29u
c3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVUxp
c3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVUxpc3RFbGVtZW50LmNwcAppbmRleCA1ZTE5ODgyZmM4
Yy4uNjg4M2U1MWQwYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVUxpc3RFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTFVMaXN0RWxlbWVudC5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3
dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdO
T1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxV
TGlzdEVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MVUxpc3RFbGVtZW50KiBvYmopCkBAIC0yMDIs
MyArMjA0LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfdV9saXN0X2VsZW1lbnRfc2V0X3R5cGVf
YXR0cihXZWJLaXRET01IVE1MVUxpc3RFbGVtZW50KiBzZWwKICAgICBpdGVtLT5zZXRBdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6dHlwZUF0dHIsIGNv
bnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxVTGlzdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVUxpc3RFbGVtZW50LmgK
aW5kZXggMzg5Yzc5NjVmNjMuLjhjODRhMmVhYzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFVMaXN0
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVUxpc3RFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAg
c3RydWN0IF9XZWJLaXRET01IVE1MVUxpc3RFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhU
TUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VC
S0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF91X2xpc3RfZWxlbWVudF9nZXRf
dHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdV9s
aXN0X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFVM
aXN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfdV9s
aXN0X2VsZW1lbnRfZ2V0X2NvbXBhY3QoV2ViS2l0RE9NSFRNTFVMaXN0RWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3VfbGlzdF9lbGVtZW50
X2dldF9jb21wYWN0KFdlYktpdERPTUhUTUxVTGlzdEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxVTGlzdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX3VfbGlzdF9lbGVtZW50X3NldF9jb21wYWN0KFdlYktpdERPTUhUTUxVTGlzdEVsZW1l
bnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfdV9saXN0X2VsZW1lbnRfc2V0X2NvbXBhY3QoV2ViS2l0RE9NSFRNTFVMaXN0
RWxlbWVudCogc2VsZiwgZ2JvbwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxVTGlzdEVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdV9saXN0X2VsZW1lbnRfZ2V0
X3R5cGVfYXR0cihXZWJLaXRET01IVE1MVUxpc3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04
MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdV9saXN0X2VsZW1lbnRfZ2V0X3R5cGVfYXR0
cihXZWJLaXRET01IVE1MVUxpc3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MVUxpc3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF91X2xpc3Rf
ZWxlbWVudF9zZXRfdHlwZV9hdHRyKFdlYktpdERPTUhUTUxVTGlzdEVsZW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NS2V5Ym9h
cmRFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NS2V5Ym9hcmRFdmVudC5jcHAKaW5kZXggOTYyNWRkNzdiZGMuLjQx
ZmNjOTc4MzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NS2V5Ym9hcmRFdmVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUtl
eWJvYXJkRXZlbnQuY3BwCkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNB
VElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01LZXlib2FyZEV2ZW50KiBr
aXQoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCogb2JqKQpAQCAtMjY4LDMgKzI3MCw0IEBAIGdib29s
ZWFuIHdlYmtpdF9kb21fa2V5Ym9hcmRfZXZlbnRfZ2V0X2FsdF9ncmFwaF9rZXkoV2ViS2l0RE9N
S2V5Ym9hcmRFdmVudCogc2VsCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorR19HTlVDX0VORF9J
R05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUtleWJvYXJkRXZlbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01LZXlib2FyZEV2ZW50LmgKaW5kZXggZmM3ZDFkZDIzMGMuLjExNGY1NGRjZjBhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NS2V5Ym9hcmRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01LZXlib2FyZEV2ZW50LmgKQEAgLTM5
LDIxICszOSwyOSBAQCBHX0JFR0lOX0RFQ0xTCiAKIC8qKgogICogV0VCS0lUX0RPTV9LRVlCT0FS
RF9FVkVOVF9LRVlfTE9DQVRJT05fU1RBTkRBUkQ6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9L
RVlCT0FSRF9FVkVOVF9LRVlfTE9DQVRJT05fU1RBTkRBUkQgMHgwMAogCiAvKioKICAqIFdFQktJ
VF9ET01fS0VZQk9BUkRfRVZFTlRfS0VZX0xPQ0FUSU9OX0xFRlQ6CisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VC
S0lUX0RPTV9LRVlCT0FSRF9FVkVOVF9LRVlfTE9DQVRJT05fTEVGVCAweDAxCiAKIC8qKgogICog
V0VCS0lUX0RPTV9LRVlCT0FSRF9FVkVOVF9LRVlfTE9DQVRJT05fUklHSFQ6CisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZp
bmUgV0VCS0lUX0RPTV9LRVlCT0FSRF9FVkVOVF9LRVlfTE9DQVRJT05fUklHSFQgMHgwMgogCiAv
KioKICAqIFdFQktJVF9ET01fS0VZQk9BUkRfRVZFTlRfS0VZX0xPQ0FUSU9OX05VTVBBRDoKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAq
LwogI2RlZmluZSBXRUJLSVRfRE9NX0tFWUJPQVJEX0VWRU5UX0tFWV9MT0NBVElPTl9OVU1QQUQg
MHgwMwogCkBAIC02NSw3ICs3Myw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NS2V5Ym9hcmRFdmVudENs
YXNzIHsKICAgICBXZWJLaXRET01VSUV2ZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VC
S0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fa2V5Ym9h
cmRfZXZlbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNzQsOCArODIsMTAgQEAgd2Via2l0
X2RvbV9rZXlib2FyZF9ldmVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBrZXlJZGVudGlmaWVyQXJn
OiBBICNnY2hhcgogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2tleWJvYXJk
X2V2ZW50X2dldF9tb2RpZmllcl9zdGF0ZShXZWJLaXRET01LZXlib2FyZEV2ZW50KiBzZWxmLCBj
b25zdCBnY2hhcioga2V5SWRlbnRpZmllckFyZyk7CiAKIC8qKgpAQCAtOTMsOCArMTAzLDEwIEBA
IHdlYmtpdF9kb21fa2V5Ym9hcmRfZXZlbnRfZ2V0X21vZGlmaWVyX3N0YXRlKFdlYktpdERPTUtl
eWJvYXJkRXZlbnQqIHNlbGYsIGNvbnN0CiAgKiBAbWV0YUtleTogQSAjZ2Jvb2xlYW4KICAqIEBh
bHRHcmFwaEtleTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9rZXlib2FyZF9ldmVudF9pbml0X2tleWJvYXJk
X2V2ZW50KFdlYktpdERPTUtleWJvYXJkRXZlbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB0eXBlLCBn
Ym9vbGVhbiBjYW5CdWJibGUsIGdib29sZWFuIGNhbmNlbGFibGUsIFdlYktpdERPTURPTVdpbmRv
dyogdmlldywgY29uc3QgZ2NoYXIqIGtleUlkZW50aWZpZXIsIGd1bG9uZyBsb2NhdGlvbiwgZ2Jv
b2xlYW4gY3RybEtleSwgZ2Jvb2xlYW4gYWx0S2V5LCBnYm9vbGVhbiBzaGlmdEtleSwgZ2Jvb2xl
YW4gbWV0YUtleSwgZ2Jvb2xlYW4gYWx0R3JhcGhLZXkpOwogCiAvKioKQEAgLTEwMiw4ICsxMTQs
MTAgQEAgd2Via2l0X2RvbV9rZXlib2FyZF9ldmVudF9pbml0X2tleWJvYXJkX2V2ZW50KFdlYktp
dERPTUtleWJvYXJkRXZlbnQqIHNlbGYsIGNvbnMKICAqIEBzZWxmOiBBICNXZWJLaXRET01LZXli
b2FyZEV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hh
cioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9rZXlib2FyZF9ldmVudF9n
ZXRfa2V5X2lkZW50aWZpZXIoV2ViS2l0RE9NS2V5Ym9hcmRFdmVudCogc2VsZik7CiAKIC8qKgpA
QCAtMTExLDggKzEyNSwxMCBAQCB3ZWJraXRfZG9tX2tleWJvYXJkX2V2ZW50X2dldF9rZXlfaWRl
bnRpZmllcihXZWJLaXRET01LZXlib2FyZEV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01LZXlib2FyZEV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ3Vsb25nCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQUkVDQVRFRCBndWxvbmcKIHdlYmtpdF9kb21fa2V5Ym9h
cmRfZXZlbnRfZ2V0X2tleV9sb2NhdGlvbihXZWJLaXRET01LZXlib2FyZEV2ZW50KiBzZWxmKTsK
IAogLyoqCkBAIC0xMjAsOCArMTM2LDEwIEBAIHdlYmtpdF9kb21fa2V5Ym9hcmRfZXZlbnRfZ2V0
X2tleV9sb2NhdGlvbihXZWJLaXRET01LZXlib2FyZEV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01LZXlib2FyZEV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtp
dF9kb21fa2V5Ym9hcmRfZXZlbnRfZ2V0X2N0cmxfa2V5KFdlYktpdERPTUtleWJvYXJkRXZlbnQq
IHNlbGYpOwogCiAvKioKQEAgLTEyOSw4ICsxNDcsMTAgQEAgd2Via2l0X2RvbV9rZXlib2FyZF9l
dmVudF9nZXRfY3RybF9rZXkoV2ViS2l0RE9NS2V5Ym9hcmRFdmVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NS2V5Ym9hcmRFdmVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFu
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3
ZWJraXRfZG9tX2tleWJvYXJkX2V2ZW50X2dldF9zaGlmdF9rZXkoV2ViS2l0RE9NS2V5Ym9hcmRF
dmVudCogc2VsZik7CiAKIC8qKgpAQCAtMTM4LDggKzE1OCwxMCBAQCB3ZWJraXRfZG9tX2tleWJv
YXJkX2V2ZW50X2dldF9zaGlmdF9rZXkoV2ViS2l0RE9NS2V5Ym9hcmRFdmVudCogc2VsZik7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NS2V5Ym9hcmRFdmVudAogICoKICAqIFJldHVybnM6IEEgI2di
b29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29s
ZWFuCiB3ZWJraXRfZG9tX2tleWJvYXJkX2V2ZW50X2dldF9hbHRfa2V5KFdlYktpdERPTUtleWJv
YXJkRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTE0Nyw4ICsxNjksMTAgQEAgd2Via2l0X2RvbV9r
ZXlib2FyZF9ldmVudF9nZXRfYWx0X2tleShXZWJLaXRET01LZXlib2FyZEV2ZW50KiBzZWxmKTsK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01LZXlib2FyZEV2ZW50CiAgKgogICogUmV0dXJuczogQSAj
Z2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jv
b2xlYW4KIHdlYmtpdF9kb21fa2V5Ym9hcmRfZXZlbnRfZ2V0X21ldGFfa2V5KFdlYktpdERPTUtl
eWJvYXJkRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTE1Niw4ICsxODAsMTAgQEAgd2Via2l0X2Rv
bV9rZXlib2FyZF9ldmVudF9nZXRfbWV0YV9rZXkoV2ViS2l0RE9NS2V5Ym9hcmRFdmVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NS2V5Ym9hcmRFdmVudAogICoKICAqIFJldHVybnM6
IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVE
IGdib29sZWFuCiB3ZWJraXRfZG9tX2tleWJvYXJkX2V2ZW50X2dldF9hbHRfZ3JhcGhfa2V5KFdl
YktpdERPTUtleWJvYXJkRXZlbnQqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTU1lZGlhTGlzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTWVkaWFMaXN0LmNwcAppbmRleCAyMDgwZWVmYmEwMy4u
ZmIxYjRhYmYzNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01NZWRpYUxpc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01NZWRp
YUxpc3QuY3BwCkBAIC0zNyw2ICszNyw4IEBAIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01NZWRp
YUxpc3RQcml2YXRlIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6TWVkaWFMaXN0PiBjb3JlT2JqZWN0
OwogfSBXZWJLaXRET01NZWRpYUxpc3RQcml2YXRlOwogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RF
UFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTU1lZGlhTGlzdCog
a2l0KFdlYkNvcmU6Ok1lZGlhTGlzdCogb2JqKQpAQCAtMjMyLDMgKzIzNCw0IEBAIGd1bG9uZyB3
ZWJraXRfZG9tX21lZGlhX2xpc3RfZ2V0X2xlbmd0aChXZWJLaXRET01NZWRpYUxpc3QqIHNlbGYp
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05T
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTU1lZGlhTGlzdC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU1lZGlhTGlzdC5oCmluZGV4IDcx
ZjZmNWFhY2ZhLi40MzM3OTc5YTAwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU1lZGlhTGlzdC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01NZWRpYUxpc3QuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTU1lZGlh
TGlzdENsYXNzIHsKICAgICBXZWJLaXRET01PYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CiB9Owog
Ci1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9t
ZWRpYV9saXN0X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTU0LDggKzU0LDEwIEBAIHdlYmtp
dF9kb21fbWVkaWFfbGlzdF9nZXRfdHlwZSh2b2lkKTsKICAqIEBpbmRleDogQSAjZ3Vsb25nCiAg
KgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9E
RVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9tZWRpYV9saXN0X2l0ZW0oV2ViS2l0RE9NTWVk
aWFMaXN0KiBzZWxmLCBndWxvbmcgaW5kZXgpOwogCiAvKioKQEAgLTY0LDggKzY2LDEwIEBAIHdl
YmtpdF9kb21fbWVkaWFfbGlzdF9pdGVtKFdlYktpdERPTU1lZGlhTGlzdCogc2VsZiwgZ3Vsb25n
IGluZGV4KTsKICAqIEBvbGRNZWRpdW06IEEgI2djaGFyCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9tZWRpYV9saXN0X2RlbGV0ZV9tZWRpdW0oV2ViS2l0RE9NTWVkaWFMaXN0KiBzZWxmLCBjb25z
dCBnY2hhciogb2xkTWVkaXVtLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtNzQsOCArNzgs
MTAgQEAgd2Via2l0X2RvbV9tZWRpYV9saXN0X2RlbGV0ZV9tZWRpdW0oV2ViS2l0RE9NTWVkaWFM
aXN0KiBzZWxmLCBjb25zdCBnY2hhciogb2xkTWUKICAqIEBuZXdNZWRpdW06IEEgI2djaGFyCiAg
KiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9tZWRpYV9saXN0X2FwcGVuZF9tZWRpdW0oV2ViS2l0RE9N
TWVkaWFMaXN0KiBzZWxmLCBjb25zdCBnY2hhciogbmV3TWVkaXVtLCBHRXJyb3IqKiBlcnJvcik7
CiAKIC8qKgpAQCAtODMsOCArODksMTAgQEAgd2Via2l0X2RvbV9tZWRpYV9saXN0X2FwcGVuZF9t
ZWRpdW0oV2ViS2l0RE9NTWVkaWFMaXN0KiBzZWxmLCBjb25zdCBnY2hhciogbmV3TWUKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01NZWRpYUxpc3QKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9t
X21lZGlhX2xpc3RfZ2V0X21lZGlhX3RleHQoV2ViS2l0RE9NTWVkaWFMaXN0KiBzZWxmKTsKIAog
LyoqCkBAIC05Myw4ICsxMDEsMTAgQEAgd2Via2l0X2RvbV9tZWRpYV9saXN0X2dldF9tZWRpYV90
ZXh0KFdlYktpdERPTU1lZGlhTGlzdCogc2VsZik7CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKiBA
ZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9tZWRpYV9saXN0X3NldF9tZWRpYV90ZXh0KFdlYktpdERPTU1l
ZGlhTGlzdCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8q
KgpAQCAtMTAyLDggKzExMiwxMCBAQCB3ZWJraXRfZG9tX21lZGlhX2xpc3Rfc2V0X21lZGlhX3Rl
eHQoV2ViS2l0RE9NTWVkaWFMaXN0KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdQogICogQHNlbGY6
IEEgI1dlYktpdERPTU1lZGlhTGlzdAogICoKICAqIFJldHVybnM6IEEgI2d1bG9uZworICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGd1bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vsb25nCiB3ZWJraXRfZG9tX21l
ZGlhX2xpc3RfZ2V0X2xlbmd0aChXZWJLaXRET01NZWRpYUxpc3QqIHNlbGYpOwogCiBHX0VORF9E
RUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTU1vdXNlRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU1vdXNlRXZlbnQuY3Bw
CmluZGV4IDE3ZGIzM2QxMjc1Li4wNTgwMGEzNTdmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU1vdXNlRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01Nb3VzZUV2ZW50LmNwcApAQCAtMzUsNiArMzUsOCBAQAogI2luY2x1
ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJ
Tl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9N
TW91c2VFdmVudCoga2l0KFdlYkNvcmU6Ok1vdXNlRXZlbnQqIG9iaikKQEAgLTQ2NiwzICs0Njgs
NCBAQCBXZWJLaXRET01Ob2RlKiB3ZWJraXRfZG9tX21vdXNlX2V2ZW50X2dldF90b19lbGVtZW50
KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpCiAgICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmpl
Y3RSZXN1bHQuZ2V0KCkpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NTW91c2VFdmVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU1vdXNlRXZlbnQuaAppbmRleCAxMjEy
YWZlZDdiMi4uZmQ0YTg2MDJjMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Nb3VzZUV2ZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTU1vdXNlRXZlbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTU1vdXNl
RXZlbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NVUlFdmVudENsYXNzIHBhcmVudF9jbGFzczsKIH07
CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9t
X21vdXNlX2V2ZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTY3LDggKzY3LDEwIEBAIHdl
YmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAYnV0dG9uOiBBICNndXNo
b3J0CiAgKiBAcmVsYXRlZFRhcmdldDogQSAjV2ViS2l0RE9NRXZlbnRUYXJnZXQKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9tb3Vz
ZV9ldmVudF9pbml0X21vdXNlX2V2ZW50KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYsIGNvbnN0
IGdjaGFyKiB0eXBlLCBnYm9vbGVhbiBjYW5CdWJibGUsIGdib29sZWFuIGNhbmNlbGFibGUsIFdl
YktpdERPTURPTVdpbmRvdyogdmlldywgZ2xvbmcgZGV0YWlsLCBnbG9uZyBzY3JlZW5YLCBnbG9u
ZyBzY3JlZW5ZLCBnbG9uZyBjbGllbnRYLCBnbG9uZyBjbGllbnRZLCBnYm9vbGVhbiBjdHJsS2V5
LCBnYm9vbGVhbiBhbHRLZXksIGdib29sZWFuIHNoaWZ0S2V5LCBnYm9vbGVhbiBtZXRhS2V5LCBn
dXNob3J0IGJ1dHRvbiwgV2ViS2l0RE9NRXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQpOwogCiAv
KioKQEAgLTc2LDggKzc4LDEwIEBAIHdlYmtpdF9kb21fbW91c2VfZXZlbnRfaW5pdF9tb3VzZV9l
dmVudChXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmLCBjb25zdCBnY2hhcioKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01Nb3VzZUV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fbW91c2Vf
ZXZlbnRfZ2V0X3NjcmVlbl94KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogCiAvKioKQEAg
LTg1LDggKzg5LDEwIEBAIHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X3NjcmVlbl94KFdlYktp
dERPTU1vdXNlRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU1vdXNlRXZlbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRf
REVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfc2NyZWVuX3koV2Vi
S2l0RE9NTW91c2VFdmVudCogc2VsZik7CiAKIC8qKgpAQCAtOTQsOCArMTAwLDEwIEBAIHdlYmtp
dF9kb21fbW91c2VfZXZlbnRfZ2V0X3NjcmVlbl95KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTU1vdXNlRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Vi
a2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfY2xpZW50X3goV2ViS2l0RE9NTW91c2VFdmVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtMTAzLDggKzExMSwxMCBAQCB3ZWJraXRfZG9tX21vdXNlX2V2ZW50X2dl
dF9jbGllbnRfeChXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01Nb3VzZUV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fbW91c2VfZXZlbnRf
Z2V0X2NsaWVudF95KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTExMiw4
ICsxMjIsMTAgQEAgd2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfY2xpZW50X3koV2ViS2l0RE9N
TW91c2VFdmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTW91c2VFdmVudAogICoK
ICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJ
VF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX21vdXNlX2V2ZW50X2dldF9jdHJsX2tl
eShXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMjEsOCArMTMzLDEwIEBA
IHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X2N0cmxfa2V5KFdlYktpdERPTU1vdXNlRXZlbnQq
IHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU1vdXNlRXZlbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRF
RCBnYm9vbGVhbgogd2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfc2hpZnRfa2V5KFdlYktpdERP
TU1vdXNlRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTEzMCw4ICsxNDQsMTAgQEAgd2Via2l0X2Rv
bV9tb3VzZV9ldmVudF9nZXRfc2hpZnRfa2V5KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTU1vdXNlRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9v
bGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVh
bgogd2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfYWx0X2tleShXZWJLaXRET01Nb3VzZUV2ZW50
KiBzZWxmKTsKIAogLyoqCkBAIC0xMzksOCArMTU1LDEwIEBAIHdlYmtpdF9kb21fbW91c2VfZXZl
bnRfZ2V0X2FsdF9rZXkoV2ViS2l0RE9NTW91c2VFdmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NTW91c2VFdmVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9t
X21vdXNlX2V2ZW50X2dldF9tZXRhX2tleShXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0xNDgsOCArMTY2LDEwIEBAIHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X21ldGFf
a2V5KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU1v
dXNlRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNndXNob3J0CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ3Vz
aG9ydAorV0VCS0lUX0RFUFJFQ0FURUQgZ3VzaG9ydAogd2Via2l0X2RvbV9tb3VzZV9ldmVudF9n
ZXRfYnV0dG9uKFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTE1Nyw4ICsx
NzcsMTAgQEAgd2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfYnV0dG9uKFdlYktpdERPTU1vdXNl
RXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU1vdXNlRXZlbnQKICAqCiAgKiBS
ZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUV2ZW50VGFyZ2V0CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgV2ViS2l0RE9NRXZlbnRUYXJnZXQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRE
T01FdmVudFRhcmdldCoKIHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X3JlbGF0ZWRfdGFyZ2V0
KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTE2Niw4ICsxODgsMTAgQEAg
d2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfcmVsYXRlZF90YXJnZXQoV2ViS2l0RE9NTW91c2VF
dmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTW91c2VFdmVudAogICoKICAqIFJl
dHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVE
IGdsb25nCiB3ZWJraXRfZG9tX21vdXNlX2V2ZW50X2dldF9vZmZzZXRfeChXZWJLaXRET01Nb3Vz
ZUV2ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNzUsOCArMTk5LDEwIEBAIHdlYmtpdF9kb21fbW91
c2VfZXZlbnRfZ2V0X29mZnNldF94KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTU1vdXNlRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9t
b3VzZV9ldmVudF9nZXRfb2Zmc2V0X3koV2ViS2l0RE9NTW91c2VFdmVudCogc2VsZik7CiAKIC8q
KgpAQCAtMTg0LDggKzIxMCwxMCBAQCB3ZWJraXRfZG9tX21vdXNlX2V2ZW50X2dldF9vZmZzZXRf
eShXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Nb3Vz
ZUV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZwor
V0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X3goV2Vi
S2l0RE9NTW91c2VFdmVudCogc2VsZik7CiAKIC8qKgpAQCAtMTkzLDggKzIyMSwxMCBAQCB3ZWJr
aXRfZG9tX21vdXNlX2V2ZW50X2dldF94KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTU1vdXNlRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZwor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2Rv
bV9tb3VzZV9ldmVudF9nZXRfeShXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmKTsKIAogLyoqCkBA
IC0yMDIsOCArMjMyLDEwIEBAIHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X3koV2ViS2l0RE9N
TW91c2VFdmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTW91c2VFdmVudAogICoK
ICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgog
d2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfZnJvbV9lbGVtZW50KFdlYktpdERPTU1vdXNlRXZl
bnQqIHNlbGYpOwogCiAvKioKQEAgLTIxMSw4ICsyNDMsMTAgQEAgd2Via2l0X2RvbV9tb3VzZV9l
dmVudF9nZXRfZnJvbV9lbGVtZW50KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTU1vdXNlRXZlbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9u
ZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VC
S0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0
X3RvX2VsZW1lbnQoV2ViS2l0RE9NTW91c2VFdmVudCogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NTmFtZWROb2RlTWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01OYW1lZE5vZGVNYXAuY3BwCmlu
ZGV4IGQyMWFkYjIzYjFhLi5iYWY2NThhNjQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5hbWVkTm9kZU1h
cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTU5hbWVkTm9kZU1hcC5jcHAKQEAgLTM5LDYgKzM5LDggQEAgdHlwZWRl
ZiBzdHJ1Y3QgX1dlYktpdERPTU5hbWVkTm9kZU1hcFByaXZhdGUgewogICAgIFJlZlB0cjxXZWJD
b3JlOjpOYW1lZE5vZGVNYXA+IGNvcmVPYmplY3Q7CiB9IFdlYktpdERPTU5hbWVkTm9kZU1hcFBy
aXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogV2ViS2l0RE9NTmFtZWROb2RlTWFwKiBraXQoV2ViQ29yZTo6TmFtZWROb2Rl
TWFwKiBvYmopCkBAIC0yMzgsMyArMjQwLDQgQEAgZ3Vsb25nIHdlYmtpdF9kb21fbmFtZWRfbm9k
ZV9tYXBfZ2V0X2xlbmd0aChXZWJLaXRET01OYW1lZE5vZGVNYXAqIHNlbGYpCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTU5hbWVkTm9kZU1hcC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5hbWVkTm9kZU1hcC5oCmluZGV4IDRjZmM4YmUz
ODgzLi4zYWY0MTI1MmNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5hbWVkTm9kZU1hcC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01OYW1lZE5vZGVNYXAuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTU5hbWVk
Tm9kZU1hcENsYXNzIHsKICAgICBXZWJLaXRET01PYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CiB9
OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2Rv
bV9uYW1lZF9ub2RlX21hcF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01NCw4ICs1NCwxMCBA
QCB3ZWJraXRfZG9tX25hbWVkX25vZGVfbWFwX2dldF90eXBlKHZvaWQpOwogICogQG5hbWU6IEEg
I2djaGFyCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2Rl
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktp
dERPTU5vZGUqCiB3ZWJraXRfZG9tX25hbWVkX25vZGVfbWFwX2dldF9uYW1lZF9pdGVtKFdlYktp
dERPTU5hbWVkTm9kZU1hcCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWUpOwogCiAvKioKQEAgLTY1
LDggKzY3LDEwIEBAIHdlYmtpdF9kb21fbmFtZWRfbm9kZV9tYXBfZ2V0X25hbWVkX2l0ZW0oV2Vi
S2l0RE9NTmFtZWROb2RlTWFwKiBzZWxmLCBjb25zdCBnY2hhCiAgKiBAZXJyb3I6ICNHRXJyb3IK
ICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9k
ZSoKIHdlYmtpdF9kb21fbmFtZWRfbm9kZV9tYXBfc2V0X25hbWVkX2l0ZW0oV2ViS2l0RE9NTmFt
ZWROb2RlTWFwKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBub2RlLCBHRXJyb3IqKiBlcnJvcik7CiAK
IC8qKgpAQCAtNzYsOCArODAsMTAgQEAgd2Via2l0X2RvbV9uYW1lZF9ub2RlX21hcF9zZXRfbmFt
ZWRfaXRlbShXZWJLaXRET01OYW1lZE5vZGVNYXAqIHNlbGYsIFdlYktpdERPTU4KICAqIEBlcnJv
cjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9N
Tm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBX
ZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9uYW1lZF9ub2RlX21hcF9yZW1vdmVfbmFtZWRfaXRl
bShXZWJLaXRET01OYW1lZE5vZGVNYXAqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lLCBHRXJyb3Iq
KiBlcnJvcik7CiAKIC8qKgpAQCAtODYsOCArOTIsMTAgQEAgd2Via2l0X2RvbV9uYW1lZF9ub2Rl
X21hcF9yZW1vdmVfbmFtZWRfaXRlbShXZWJLaXRET01OYW1lZE5vZGVNYXAqIHNlbGYsIGNvbnN0
IGcKICAqIEBpbmRleDogQSAjZ3Vsb25nCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUp
OiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJ
VF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX25hbWVkX25vZGVfbWFwX2l0
ZW0oV2ViS2l0RE9NTmFtZWROb2RlTWFwKiBzZWxmLCBndWxvbmcgaW5kZXgpOwogCiAvKioKQEAg
LTk3LDggKzEwNSwxMCBAQCB3ZWJraXRfZG9tX25hbWVkX25vZGVfbWFwX2l0ZW0oV2ViS2l0RE9N
TmFtZWROb2RlTWFwKiBzZWxmLCBndWxvbmcgaW5kZXgpOwogICogQGxvY2FsTmFtZTogQSAjZ2No
YXIKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9N
Tm9kZSoKIHdlYmtpdF9kb21fbmFtZWRfbm9kZV9tYXBfZ2V0X25hbWVkX2l0ZW1fbnMoV2ViS2l0
RE9NTmFtZWROb2RlTWFwKiBzZWxmLCBjb25zdCBnY2hhciogbmFtZXNwYWNlVVJJLCBjb25zdCBn
Y2hhciogbG9jYWxOYW1lKTsKIAogLyoqCkBAIC0xMDgsOCArMTE4LDEwIEBAIHdlYmtpdF9kb21f
bmFtZWRfbm9kZV9tYXBfZ2V0X25hbWVkX2l0ZW1fbnMoV2ViS2l0RE9NTmFtZWROb2RlTWFwKiBz
ZWxmLCBjb25zdCBnCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNm
ZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2Rl
KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fbmFtZWRfbm9k
ZV9tYXBfc2V0X25hbWVkX2l0ZW1fbnMoV2ViS2l0RE9NTmFtZWROb2RlTWFwKiBzZWxmLCBXZWJL
aXRET01Ob2RlKiBub2RlLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTIwLDggKzEzMiwx
MCBAQCB3ZWJraXRfZG9tX25hbWVkX25vZGVfbWFwX3NldF9uYW1lZF9pdGVtX25zKFdlYktpdERP
TU5hbWVkTm9kZU1hcCogc2VsZiwgV2ViS2l0RAogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICog
UmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJr
aXRfZG9tX25hbWVkX25vZGVfbWFwX3JlbW92ZV9uYW1lZF9pdGVtX25zKFdlYktpdERPTU5hbWVk
Tm9kZU1hcCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWVzcGFjZVVSSSwgY29uc3QgZ2NoYXIqIGxv
Y2FsTmFtZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTEyOSw4ICsxNDMsMTAgQEAgd2Vi
a2l0X2RvbV9uYW1lZF9ub2RlX21hcF9yZW1vdmVfbmFtZWRfaXRlbV9ucyhXZWJLaXRET01OYW1l
ZE5vZGVNYXAqIHNlbGYsIGNvbnMKICAqIEBzZWxmOiBBICNXZWJLaXRET01OYW1lZE5vZGVNYXAK
ICAqCiAgKiBSZXR1cm5zOiBBICNndWxvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJ
VF9ERVBSRUNBVEVEIGd1bG9uZwogd2Via2l0X2RvbV9uYW1lZF9ub2RlX21hcF9nZXRfbGVuZ3Ro
KFdlYktpdERPTU5hbWVkTm9kZU1hcCogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NTm9kZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTU5vZGUuaAppbmRleCBjNTRjOGE3Mzg5ZS4uYmZlMGQ4MDAyMjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01Ob2RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGUuaApAQCAtMjUsNiArMjUsNyBA
QAogI2RlZmluZSBXZWJLaXRET01Ob2RlX2gKIAogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+Cisj
aW5jbHVkZSA8anNjL2pzYy5oPgogI2luY2x1ZGUgPHdlYmtpdGRvbS9XZWJLaXRET01PYmplY3Qu
aD4KICNpbmNsdWRlIDx3ZWJraXRkb20vd2Via2l0ZG9tZGVmaW5lcy5oPgogCkBAIC0zOSw4NiAr
NDAsMTIwIEBAIEdfQkVHSU5fREVDTFMKIAogLyoqCiAgKiBXRUJLSVRfRE9NX05PREVfRUxFTUVO
VF9OT0RFOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9FTEVNRU5UX05PREUgMQogCiAv
KioKICAqIFdFQktJVF9ET01fTk9ERV9BVFRSSUJVVEVfTk9ERToKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJL
SVRfRE9NX05PREVfQVRUUklCVVRFX05PREUgMgogCiAvKioKICAqIFdFQktJVF9ET01fTk9ERV9U
RVhUX05PREU6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX1RFWFRfTk9ERSAzCiAKIC8q
KgogICogV0VCS0lUX0RPTV9OT0RFX0NEQVRBX1NFQ1RJT05fTk9ERToKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBX
RUJLSVRfRE9NX05PREVfQ0RBVEFfU0VDVElPTl9OT0RFIDQKIAogLyoqCiAgKiBXRUJLSVRfRE9N
X05PREVfRU5USVRZX1JFRkVSRU5DRV9OT0RFOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fTk9E
RV9FTlRJVFlfUkVGRVJFTkNFX05PREUgNQogCiAvKioKICAqIFdFQktJVF9ET01fTk9ERV9FTlRJ
VFlfTk9ERToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX05PREVfRU5USVRZX05PREUgNgogCiAv
KioKICAqIFdFQktJVF9ET01fTk9ERV9QUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8K
ICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX1BST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERSA3CiAK
IC8qKgogICogV0VCS0lUX0RPTV9OT0RFX0NPTU1FTlRfTk9ERToKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJL
SVRfRE9NX05PREVfQ09NTUVOVF9OT0RFIDgKIAogLyoqCiAgKiBXRUJLSVRfRE9NX05PREVfRE9D
VU1FTlRfTk9ERToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX05PREVfRE9DVU1FTlRfTk9ERSA5
CiAKIC8qKgogICogV0VCS0lUX0RPTV9OT0RFX0RPQ1VNRU5UX1RZUEVfTk9ERToKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2Rl
ZmluZSBXRUJLSVRfRE9NX05PREVfRE9DVU1FTlRfVFlQRV9OT0RFIDEwCiAKIC8qKgogICogV0VC
S0lUX0RPTV9OT0RFX0RPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lU
X0RPTV9OT0RFX0RPQ1VNRU5UX0ZSQUdNRU5UX05PREUgMTEKIAogLyoqCiAgKiBXRUJLSVRfRE9N
X05PREVfRE9DVU1FTlRfUE9TSVRJT05fRElTQ09OTkVDVEVEOgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJ
VF9ET01fTk9ERV9ET0NVTUVOVF9QT1NJVElPTl9ESVNDT05ORUNURUQgMHgwMQogCiAvKioKICAq
IFdFQktJVF9ET01fTk9ERV9ET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkc6CisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZp
bmUgV0VCS0lUX0RPTV9OT0RFX0RPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORyAweDAyCiAKIC8q
KgogICogV0VCS0lUX0RPTV9OT0RFX0RPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORzoKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwog
I2RlZmluZSBXRUJLSVRfRE9NX05PREVfRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HIDB4MDQK
IAogLyoqCiAgKiBXRUJLSVRfRE9NX05PREVfRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTlM6Cisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAg
Ki8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0RPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5TIDB4
MDgKIAogLyoqCiAgKiBXRUJLSVRfRE9NX05PREVfRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVE
X0JZOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9ET0NVTUVOVF9QT1NJVElPTl9DT05U
QUlORURfQlkgMHgxMAogCiAvKioKICAqIFdFQktJVF9ET01fTk9ERV9ET0NVTUVOVF9QT1NJVElP
Tl9JTVBMRU1FTlRBVElPTl9TUEVDSUZJQzoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX05PREVf
RE9DVU1FTlRfUE9TSVRJT05fSU1QTEVNRU5UQVRJT05fU1BFQ0lGSUMgMHgyMAogCkBAIC0xNDEs
OCArMTc2LDEwIEBAIHdlYmtpdF9kb21fbm9kZV9nZXRfdHlwZSh2b2lkKTsKICAqIEBlcnJvcjog
I0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9k
ZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJL
aXRET01Ob2RlKgogd2Via2l0X2RvbV9ub2RlX2luc2VydF9iZWZvcmUoV2ViS2l0RE9NTm9kZSog
c2VsZiwgV2ViS2l0RE9NTm9kZSogbmV3Q2hpbGQsIFdlYktpdERPTU5vZGUqIHJlZkNoaWxkLCBH
RXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTUzLDggKzE5MCwxMCBAQCB3ZWJraXRfZG9tX25v
ZGVfaW5zZXJ0X2JlZm9yZShXZWJLaXRET01Ob2RlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBuZXdD
aGlsZCwgV2ViSwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVy
IG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoK
K1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX25vZGVfcmVwbGFj
ZV9jaGlsZChXZWJLaXRET01Ob2RlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBuZXdDaGlsZCwgV2Vi
S2l0RE9NTm9kZSogb2xkQ2hpbGQsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xNjQsOCAr
MjAzLDEwIEBAIHdlYmtpdF9kb21fbm9kZV9yZXBsYWNlX2NoaWxkKFdlYktpdERPTU5vZGUqIHNl
bGYsIFdlYktpdERPTU5vZGUqIG5ld0NoaWxkLCBXZWJLCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAq
CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoK
IHdlYmtpdF9kb21fbm9kZV9yZW1vdmVfY2hpbGQoV2ViS2l0RE9NTm9kZSogc2VsZiwgV2ViS2l0
RE9NTm9kZSogb2xkQ2hpbGQsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xNzUsOCArMjE2
LDEwIEBAIHdlYmtpdF9kb21fbm9kZV9yZW1vdmVfY2hpbGQoV2ViS2l0RE9NTm9kZSogc2VsZiwg
V2ViS2l0RE9NTm9kZSogb2xkQ2hpbGQsIEdFcnJvCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAg
KiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdl
YmtpdF9kb21fbm9kZV9hcHBlbmRfY2hpbGQoV2ViS2l0RE9NTm9kZSogc2VsZiwgV2ViS2l0RE9N
Tm9kZSogbmV3Q2hpbGQsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xODQsOCArMjI3LDEw
IEBAIHdlYmtpdF9kb21fbm9kZV9hcHBlbmRfY2hpbGQoV2ViS2l0RE9NTm9kZSogc2VsZiwgV2Vi
S2l0RE9NTm9kZSogbmV3Q2hpbGQsIEdFcnJvCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTm9kZQog
ICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dF
QktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX25vZGVfaGFzX2NoaWxkX25vZGVz
KFdlYktpdERPTU5vZGUqIHNlbGYpOwogCiAvKioKQEAgLTE5NywxNiArMjQyLDIwIEBAIHdlYmtp
dF9kb21fbm9kZV9oYXNfY2hpbGRfbm9kZXMoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAgKiBSZXR1
cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBTaW5jZTogMi4x
NAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJL
aXRET01Ob2RlKgogd2Via2l0X2RvbV9ub2RlX2Nsb25lX25vZGVfd2l0aF9lcnJvcihXZWJLaXRE
T01Ob2RlKiBzZWxmLCBnYm9vbGVhbiBkZWVwLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgogICog
d2Via2l0X2RvbV9ub2RlX25vcm1hbGl6ZToKICAqIEBzZWxmOiBBICNXZWJLaXRET01Ob2RlCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21fbm9kZV9ub3JtYWxpemUoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAKIC8qKgpAQCAtMjE2LDgg
KzI2NSwxMCBAQCB3ZWJraXRfZG9tX25vZGVfbm9ybWFsaXplKFdlYktpdERPTU5vZGUqIHNlbGYp
OwogICogQHZlcnNpb246IEEgI2djaGFyCiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtp
dF9kb21fbm9kZV9pc19zdXBwb3J0ZWQoV2ViS2l0RE9NTm9kZSogc2VsZiwgY29uc3QgZ2NoYXIq
IGZlYXR1cmUsIGNvbnN0IGdjaGFyKiB2ZXJzaW9uKTsKIAogLyoqCkBAIC0yMjYsOCArMjc3LDEw
IEBAIHdlYmtpdF9kb21fbm9kZV9pc19zdXBwb3J0ZWQoV2ViS2l0RE9NTm9kZSogc2VsZiwgY29u
c3QgZ2NoYXIqIGZlYXR1cmUsIGNvbnN0IGdjCiAgKiBAb3RoZXI6IEEgI1dlYktpdERPTU5vZGUK
ICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitX
RUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9ub2RlX2lzX3NhbWVfbm9kZShX
ZWJLaXRET01Ob2RlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBvdGhlcik7CiAKIC8qKgpAQCAtMjM2
LDggKzI4OSwxMCBAQCB3ZWJraXRfZG9tX25vZGVfaXNfc2FtZV9ub2RlKFdlYktpdERPTU5vZGUq
IHNlbGYsIFdlYktpdERPTU5vZGUqIG90aGVyKTsKICAqIEBvdGhlcjogQSAjV2ViS2l0RE9NTm9k
ZQogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4K
K1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX25vZGVfaXNfZXF1YWxfbm9k
ZShXZWJLaXRET01Ob2RlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBvdGhlcik7CiAKIC8qKgpAQCAt
MjQ2LDggKzMwMSwxMCBAQCB3ZWJraXRfZG9tX25vZGVfaXNfZXF1YWxfbm9kZShXZWJLaXRET01O
b2RlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBvdGhlcik7CiAgKiBAbmFtZXNwYWNlVVJJOiBBICNn
Y2hhcgogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitX
RUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fbm9kZV9sb29rdXBfcHJlZml4KFdl
YktpdERPTU5vZGUqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lc3BhY2VVUkkpOwogCiAvKioKQEAg
LTI1Niw4ICszMTMsMTAgQEAgd2Via2l0X2RvbV9ub2RlX2xvb2t1cF9wcmVmaXgoV2ViS2l0RE9N
Tm9kZSogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWVzcGFjZVVSSSk7CiAgKiBAcHJlZml4OiBBICNn
Y2hhcgogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitX
RUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fbm9kZV9sb29rdXBfbmFtZXNwYWNl
X3VyaShXZWJLaXRET01Ob2RlKiBzZWxmLCBjb25zdCBnY2hhciogcHJlZml4KTsKIAogLyoqCkBA
IC0yNjYsOCArMzI1LDEwIEBAIHdlYmtpdF9kb21fbm9kZV9sb29rdXBfbmFtZXNwYWNlX3VyaShX
ZWJLaXRET01Ob2RlKiBzZWxmLCBjb25zdCBnY2hhciogcHJlZml4KTsKICAqIEBuYW1lc3BhY2VV
Ukk6IEEgI2djaGFyCiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fbm9kZV9p
c19kZWZhdWx0X25hbWVzcGFjZShXZWJLaXRET01Ob2RlKiBzZWxmLCBjb25zdCBnY2hhciogbmFt
ZXNwYWNlVVJJKTsKIAogLyoqCkBAIC0yNzYsOCArMzM3LDEwIEBAIHdlYmtpdF9kb21fbm9kZV9p
c19kZWZhdWx0X25hbWVzcGFjZShXZWJLaXRET01Ob2RlKiBzZWxmLCBjb25zdCBnY2hhciogbmFt
ZXNwYWNlCiAgKiBAb3RoZXI6IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBSZXR1cm5zOiBBICNn
dXNob3J0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ3VzaG9ydAorV0VCS0lUX0RFUFJFQ0FURUQgZ3VzaG9y
dAogd2Via2l0X2RvbV9ub2RlX2NvbXBhcmVfZG9jdW1lbnRfcG9zaXRpb24oV2ViS2l0RE9NTm9k
ZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogb3RoZXIpOwogCiAvKioKQEAgLTI4Niw4ICszNDksMTAg
QEAgd2Via2l0X2RvbV9ub2RlX2NvbXBhcmVfZG9jdW1lbnRfcG9zaXRpb24oV2ViS2l0RE9NTm9k
ZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogb3QKICAqIEBvdGhlcjogQSAjV2ViS2l0RE9NTm9kZQog
ICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dF
QktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX25vZGVfY29udGFpbnMoV2ViS2l0
RE9NTm9kZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogb3RoZXIpOwogCiAvKioKQEAgLTI5NSw4ICsz
NjAsMTAgQEAgd2Via2l0X2RvbV9ub2RlX2NvbnRhaW5zKFdlYktpdERPTU5vZGUqIHNlbGYsIFdl
YktpdERPTU5vZGUqIG90aGVyKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Ob2RlCiAgKgogICog
UmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNB
VEVEIGdjaGFyKgogd2Via2l0X2RvbV9ub2RlX2dldF9ub2RlX25hbWUoV2ViS2l0RE9NTm9kZSog
c2VsZik7CiAKIC8qKgpAQCAtMzA0LDggKzM3MSwxMCBAQCB3ZWJraXRfZG9tX25vZGVfZ2V0X25v
ZGVfbmFtZShXZWJLaXRET01Ob2RlKiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Ob2Rl
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9ub2RlX2dldF9ub2RlX3ZhbHVlKFdlYktp
dERPTU5vZGUqIHNlbGYpOwogCiAvKioKQEAgLTMxNCw4ICszODMsMTAgQEAgd2Via2l0X2RvbV9u
b2RlX2dldF9ub2RlX3ZhbHVlKFdlYktpdERPTU5vZGUqIHNlbGYpOwogICogQHZhbHVlOiBBICNn
Y2hhcgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fbm9kZV9zZXRfbm9kZV92YWx1ZShXZWJLaXRE
T01Ob2RlKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoq
CkBAIC0zMjMsOCArMzk0LDEwIEBAIHdlYmtpdF9kb21fbm9kZV9zZXRfbm9kZV92YWx1ZShXZWJL
aXRET01Ob2RlKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJvcioqCiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NTm9kZQogICoKICAqIFJldHVybnM6IEEgI2d1c2hvcnQKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBndXNob3J0CitXRUJLSVRfREVQUkVDQVRFRCBndXNob3J0CiB3ZWJraXRfZG9tX25vZGVf
Z2V0X25vZGVfdHlwZShXZWJLaXRET01Ob2RlKiBzZWxmKTsKIAogLyoqCkBAIC0zMzIsOCArNDA1
LDEwIEBAIHdlYmtpdF9kb21fbm9kZV9nZXRfbm9kZV90eXBlKFdlYktpdERPTU5vZGUqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
bm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgor
V0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fbm9kZV9nZXRfcGFy
ZW50X25vZGUoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAKIC8qKgpAQCAtMzQxLDggKzQxNiwxMCBA
QCB3ZWJraXRfZG9tX25vZGVfZ2V0X3BhcmVudF9ub2RlKFdlYktpdERPTU5vZGUqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVs
bCk6IEEgI1dlYktpdERPTU5vZGVMaXN0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZUxp
c3QqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlTGlzdCoKIHdlYmtpdF9kb21fbm9k
ZV9nZXRfY2hpbGRfbm9kZXMoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAKIC8qKgpAQCAtMzUwLDgg
KzQyNywxMCBAQCB3ZWJraXRfZG9tX25vZGVfZ2V0X2NoaWxkX25vZGVzKFdlYktpdERPTU5vZGUq
IHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBSZXR1cm5zOiAodHJh
bnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01O
b2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fbm9kZV9n
ZXRfZmlyc3RfY2hpbGQoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAKIC8qKgpAQCAtMzU5LDggKzQz
OCwxMCBAQCB3ZWJraXRfZG9tX25vZGVfZ2V0X2ZpcnN0X2NoaWxkKFdlYktpdERPTU5vZGUqIHNl
bGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNm
ZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2Rl
KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fbm9kZV9nZXRf
bGFzdF9jaGlsZChXZWJLaXRET01Ob2RlKiBzZWxmKTsKIAogLyoqCkBAIC0zNjgsOCArNDQ5LDEw
IEBAIHdlYmtpdF9kb21fbm9kZV9nZXRfbGFzdF9jaGlsZChXZWJLaXRET01Ob2RlKiBzZWxmKTsK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01Ob2RlCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5v
bmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dF
QktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX25vZGVfZ2V0X3ByZXZp
b3VzX3NpYmxpbmcoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAKIC8qKgpAQCAtMzc3LDggKzQ2MCwx
MCBAQCB3ZWJraXRfZG9tX25vZGVfZ2V0X3ByZXZpb3VzX3NpYmxpbmcoV2ViS2l0RE9NTm9kZSog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTm9kZQogICoKICAqIFJldHVybnM6ICh0cmFu
c2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5v
ZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9ub2RlX2dl
dF9uZXh0X3NpYmxpbmcoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAKIC8qKgpAQCAtMzg2LDggKzQ3
MSwxMCBAQCB3ZWJraXRfZG9tX25vZGVfZ2V0X25leHRfc2libGluZyhXZWJLaXRET01Ob2RlKiBz
ZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Ob2RlCiAgKgogICogUmV0dXJuczogKHRyYW5z
ZmVyIG5vbmUpOiBBICNXZWJLaXRET01Eb2N1bWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERP
TURvY3VtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRG9jdW1lbnQqCiB3ZWJraXRf
ZG9tX25vZGVfZ2V0X293bmVyX2RvY3VtZW50KFdlYktpdERPTU5vZGUqIHNlbGYpOwogCiAvKioK
QEAgLTM5NSw4ICs0ODIsMTAgQEAgd2Via2l0X2RvbV9ub2RlX2dldF9vd25lcl9kb2N1bWVudChX
ZWJLaXRET01Ob2RlKiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Ob2RlCiAgKgogICog
UmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNB
VEVEIGdjaGFyKgogd2Via2l0X2RvbV9ub2RlX2dldF9iYXNlX3VyaShXZWJLaXRET01Ob2RlKiBz
ZWxmKTsKIAogLyoqCkBAIC00MDQsOCArNDkzLDEwIEBAIHdlYmtpdF9kb21fbm9kZV9nZXRfYmFz
ZV91cmkoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTm9kZQog
ICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRf
REVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fbm9kZV9nZXRfdGV4dF9jb250ZW50KFdlYktp
dERPTU5vZGUqIHNlbGYpOwogCiAvKioKQEAgLTQxNCw4ICs1MDUsMTAgQEAgd2Via2l0X2RvbV9u
b2RlX2dldF90ZXh0X2NvbnRlbnQoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAgKiBAdmFsdWU6IEEg
I2djaGFyCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9ub2RlX3NldF90ZXh0X2NvbnRlbnQoV2Vi
S2l0RE9NTm9kZSogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7CiAK
IC8qKgpAQCAtNDIzLDEwICs1MTYsMTUgQEAgd2Via2l0X2RvbV9ub2RlX3NldF90ZXh0X2NvbnRl
bnQoV2ViS2l0RE9NTm9kZSogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01Ob2RlCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBB
ICNXZWJLaXRET01FbGVtZW50CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRWxlbWVudCoKK1dF
QktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUVsZW1lbnQqCiB3ZWJraXRfZG9tX25vZGVfZ2V0X3Bh
cmVudF9lbGVtZW50KFdlYktpdERPTU5vZGUqIHNlbGYpOwogCitXRUJLSVRfQVBJIFdlYktpdERP
TU5vZGUgKgord2Via2l0X2RvbV9ub2RlX2Zvcl9qc192YWx1ZShKU0NWYWx1ZSogdmFsdWUpOwor
CiBHX0VORF9ERUNMUwogCiAjZW5kaWYgLyogV2ViS2l0RE9NTm9kZV9oICovCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NTm9kZUZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUZpbHRlci5jcHAKaW5kZXggODc0N2UzNTFm
YTUuLmZkY2M5NGE0NjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUZpbHRlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TU5vZGVGaWx0ZXIuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAKIHR5cGVkZWYgV2ViS2l0RE9NTm9k
ZUZpbHRlcklmYWNlIFdlYktpdERPTU5vZGVGaWx0ZXJJbnRlcmZhY2U7CiAKK0dfR05VQ19CRUdJ
Tl9JR05PUkVfREVQUkVDQVRJT05TOworCiBHX0RFRklORV9JTlRFUkZBQ0UoV2ViS2l0RE9NTm9k
ZUZpbHRlciwgd2Via2l0X2RvbV9ub2RlX2ZpbHRlciwgR19UWVBFX09CSkVDVCkKIAogc3RhdGlj
IHZvaWQgd2Via2l0X2RvbV9ub2RlX2ZpbHRlcl9kZWZhdWx0X2luaXQoV2ViS2l0RE9NTm9kZUZp
bHRlcklmYWNlKikKQEAgLTgyLDMgKzg0LDQgQEAgUmVmUHRyPFdlYkNvcmU6Ok5vZGVGaWx0ZXI+
IGNvcmUoV2ViQ29yZTo6RG9jdW1lbnQqIGRvY3VtZW50LCBXZWJLaXRET01Ob2RlRmlsdGUKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NTm9kZUZpbHRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVGaWx0ZXIuaAppbmRleCAy
ZDg4ZjhmYjZmZi4uOWE4ZmVkNDkyZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlRmlsdGVyLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTU5vZGVGaWx0ZXIuaApAQCAtMzcsNiArMzcsOCBAQCBHX0JFR0lOX0RFQ0xTCiAgKiBp
bXBsZW1lbnRhdGlvbiB0byBhY2NlcHQgdGhlIGdpdmVuICNXZWJLaXRET01Ob2RlCiAgKgogICog
U2luY2U6IDIuNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9GSUxURVJfQUNDRVBUIDEK
IApAQCAtNDgsNiArNTAsOCBAQCBHX0JFR0lOX0RFQ0xTCiAgKiBiZSByZWplY3RlZCB0b28uCiAg
KgogICogU2luY2U6IDIuNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9GSUxURVJfUkVK
RUNUIDIKIApAQCAtNTksNiArNjMsOCBAQCBHX0JFR0lOX0RFQ0xTCiAgKiBub3QgYmUgc2tpcHBl
ZC4KICAqCiAgKiBTaW5jZTogMi42CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0ZJTFRF
Ul9TS0lQICAgMwogCkBAIC02OCw2ICs3NCw4IEBAIEdfQkVHSU5fREVDTFMKICAqIFNob3cgYWxs
IG5vZGVzLgogICoKICAqIFNpbmNlOiAyLjYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX05PREVf
RklMVEVSX1NIT1dfQUxMICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGCiAKQEAgLTc3LDYg
Kzg1LDggQEAgR19CRUdJTl9ERUNMUwogICogU2hvdyAjV2ViS2l0RE9NRWxlbWVudCBub2Rlcy4K
ICAqCiAgKiBTaW5jZTogMi42CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0ZJTFRFUl9T
SE9XX0VMRU1FTlQgICAgICAgICAgICAgICAgMHgwMDAwMDAwMQogCkBAIC04Niw2ICs5Niw4IEBA
IEdfQkVHSU5fREVDTFMKICAqIFNob3cgI1dlYktpdERPTUF0dHIgbm9kZXMuCiAgKgogICogU2lu
Y2U6IDIuNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9GSUxURVJfU0hPV19BVFRSSUJV
VEUgICAgICAgICAgICAgIDB4MDAwMDAwMDIKIApAQCAtOTUsNiArMTA3LDggQEAgR19CRUdJTl9E
RUNMUwogICogU2hvdyAjV2ViS2l0RE9NVGV4dCBub2Rlcy4KICAqCiAgKiBTaW5jZTogMi42Cisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAg
Ki8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0ZJTFRFUl9TSE9XX1RFWFQgICAgICAgICAgICAg
ICAgICAgMHgwMDAwMDAwNAogCkBAIC0xMDQsNiArMTE4LDggQEAgR19CRUdJTl9ERUNMUwogICog
U2hvdyAjV2ViS2l0RE9NQ0RhdGFTZWN0aW9uIG5vZGVzLgogICoKICAqIFNpbmNlOiAyLjYKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAq
LwogI2RlZmluZSBXRUJLSVRfRE9NX05PREVfRklMVEVSX1NIT1dfQ0RBVEFfU0VDVElPTiAgICAg
ICAgICAweDAwMDAwMDA4CiAKQEAgLTExMyw2ICsxMjksOCBAQCBHX0JFR0lOX0RFQ0xTCiAgKiBT
aG93ICNXZWJLaXRET01FbnRpdHlSZWZlcmVuY2Ugbm9kZXMuCiAgKgogICogU2luY2U6IDIuNgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
ICovCiAjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9GSUxURVJfU0hPV19FTlRJVFlfUkVGRVJFTkNF
ICAgICAgIDB4MDAwMDAwMTAKIApAQCAtMTIyLDYgKzE0MCw4IEBAIEdfQkVHSU5fREVDTFMKICAq
IFNob3cgI1dlYktpdERPTUVudGl0eSBub2Rlcy4KICAqCiAgKiBTaW5jZTogMi42CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNk
ZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0ZJTFRFUl9TSE9XX0VOVElUWSAgICAgICAgICAgICAgICAg
MHgwMDAwMDAyMAogCkBAIC0xMzEsNiArMTUxLDggQEAgR19CRUdJTl9ERUNMUwogICogU2hvdyAj
V2ViS2l0RE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uIG5vZGVzLgogICoKICAqIFNpbmNlOiAyLjYK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX05PREVfRklMVEVSX1NIT1dfUFJPQ0VTU0lOR19JTlNU
UlVDVElPTiAweDAwMDAwMDQwCiAKQEAgLTE0MCw2ICsxNjIsOCBAQCBHX0JFR0lOX0RFQ0xTCiAg
KiBTaG93ICNXZWJLaXRET01Db21tZW50IG5vZGVzLgogICoKICAqIFNpbmNlOiAyLjYKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwog
I2RlZmluZSBXRUJLSVRfRE9NX05PREVfRklMVEVSX1NIT1dfQ09NTUVOVCAgICAgICAgICAgICAg
ICAweDAwMDAwMDgwCiAKQEAgLTE0OSw2ICsxNzMsOCBAQCBHX0JFR0lOX0RFQ0xTCiAgKiBTaG93
ICNXZWJLaXRET01Eb2N1bWVudCBub2Rlcy4KICAqCiAgKiBTaW5jZTogMi42CisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZp
bmUgV0VCS0lUX0RPTV9OT0RFX0ZJTFRFUl9TSE9XX0RPQ1VNRU5UICAgICAgICAgICAgICAgMHgw
MDAwMDEwMAogCkBAIC0xNTgsNiArMTg0LDggQEAgR19CRUdJTl9ERUNMUwogICogU2hvdyAjV2Vi
S2l0RE9NRG9jdW1lbnRUeXBlIG5vZGVzLgogICoKICAqIFNpbmNlOiAyLjYKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmlu
ZSBXRUJLSVRfRE9NX05PREVfRklMVEVSX1NIT1dfRE9DVU1FTlRfVFlQRSAgICAgICAgICAweDAw
MDAwMjAwCiAKQEAgLTE2Nyw2ICsxOTUsOCBAQCBHX0JFR0lOX0RFQ0xTCiAgKiBTaG93ICNXZWJL
aXRET01Eb2N1bWVudEZyYWdtZW50IG5vZGVzLgogICoKICAqIFNpbmNlOiAyLjYKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2Rl
ZmluZSBXRUJLSVRfRE9NX05PREVfRklMVEVSX1NIT1dfRE9DVU1FTlRfRlJBR01FTlQgICAgICAw
eDAwMDAwNDAwCiAKQEAgLTE3Niw2ICsyMDYsOCBAQCBHX0JFR0lOX0RFQ0xTCiAgKiBTaG93ICNX
ZWJLaXRET01Ob3RhdGlvbiBub2Rlcy4KICAqCiAgKiBTaW5jZTogMi42CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUg
V0VCS0lUX0RPTV9OT0RFX0ZJTFRFUl9TSE9XX05PVEFUSU9OICAgICAgICAgICAgICAgMHgwMDAw
MDgwMAogCkBAIC0xOTMsNyArMjI1LDcgQEAgc3RydWN0IF9XZWJLaXRET01Ob2RlRmlsdGVySWZh
Y2UgewogfTsKIAogCi1XRUJLSVRfQVBJIEdUeXBlIHdlYmtpdF9kb21fbm9kZV9maWx0ZXJfZ2V0
X3R5cGUodm9pZCkgR19HTlVDX0NPTlNUOworV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUgd2Via2l0
X2RvbV9ub2RlX2ZpbHRlcl9nZXRfdHlwZSh2b2lkKSBHX0dOVUNfQ09OU1Q7CiAKIC8qKgogICog
d2Via2l0X2RvbV9ub2RlX2ZpbHRlcl9hY2NlcHRfbm9kZToKQEAgLTIwMSw4ICsyMzMsMTAgQEAg
V0VCS0lUX0FQSSBHVHlwZSB3ZWJraXRfZG9tX25vZGVfZmlsdGVyX2dldF90eXBlKHZvaWQpIEdf
R05VQ19DT05TVDsKICAqIEBub2RlOiBBICNXZWJLaXRET01Ob2RlCiAgKgogICogUmV0dXJuczog
YSAjZ3Nob3J0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ3Nob3J0IHdlYmtpdF9kb21fbm9kZV9maWx0ZXJf
YWNjZXB0X25vZGUoV2ViS2l0RE9NTm9kZUZpbHRlciAqZmlsdGVyLAorV0VCS0lUX0RFUFJFQ0FU
RUQgZ3Nob3J0IHdlYmtpdF9kb21fbm9kZV9maWx0ZXJfYWNjZXB0X25vZGUoV2ViS2l0RE9NTm9k
ZUZpbHRlciAqZmlsdGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXZWJLaXRET01Ob2RlICAgICAgICpub2RlKTsKIAogR19FTkRfREVDTFMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01Ob2RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlR3RrLmNwcApzaW1pbGFyaXR5IGlu
ZGV4IDkxJQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZS5jcHAKcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlR3RrLmNw
cAppbmRleCBkYzc1YjEwNDdmYS4uNWY4NjIyYjY5NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NTm9kZUd0ay5jcHAKQEAgLTIxLDcgKzIxLDYgQEAKICNpbmNsdWRlICJXZWJL
aXRET01Ob2RlLmgiCiAKICNpbmNsdWRlICJDb252ZXJ0VG9VVEY4U3RyaW5nLmgiCi0jaW5jbHVk
ZSAiRE9NT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJHT2JqZWN0RXZlbnRMaXN0ZW5lci5oIgog
I2luY2x1ZGUgIldlYktpdERPTURvY3VtZW50UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdERP
TUVsZW1lbnRQcml2YXRlLmgiCkBAIC0zNCw0MSArMzMsMTIgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L0RPTUV4Y2VwdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSlNO
b2RlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TVkdUZXN0cy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKLSNkZWZpbmUgV0VCS0lUX0RPTV9OT0RF
X0dFVF9QUklWQVRFKG9iaikgR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKG9iaiwgV0VCS0lU
X0RPTV9UWVBFX05PREUsIFdlYktpdERPTU5vZGVQcml2YXRlKQotCi10eXBlZGVmIHN0cnVjdCBf
V2ViS2l0RE9NTm9kZVByaXZhdGUgewotICAgIFJlZlB0cjxXZWJDb3JlOjpOb2RlPiBjb3JlT2Jq
ZWN0OwotfSBXZWJLaXRET01Ob2RlUHJpdmF0ZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVdl
YktpdERPTU5vZGUqIGtpdChXZWJDb3JlOjpOb2RlKiBvYmopCi17Ci0gICAgaWYgKCFvYmopCi0g
ICAgICAgIHJldHVybiAwOwotCi0gICAgaWYgKGdwb2ludGVyIHJldCA9IERPTU9iamVjdENhY2hl
OjpnZXQob2JqKSkKLSAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERShyZXQpOwotCi0gICAg
cmV0dXJuIHdyYXAob2JqKTsKLX0KLQotV2ViQ29yZTo6Tm9kZSogY29yZShXZWJLaXRET01Ob2Rl
KiByZXF1ZXN0KQotewotICAgIHJldHVybiByZXF1ZXN0ID8gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
Tm9kZSo+KFdFQktJVF9ET01fT0JKRUNUKHJlcXVlc3QpLT5jb3JlT2JqZWN0KSA6IDA7Ci19Ci0K
LVdlYktpdERPTU5vZGUqIHdyYXBOb2RlKFdlYkNvcmU6Ok5vZGUqIGNvcmVPYmplY3QpCi17Ci0g
ICAgQVNTRVJUKGNvcmVPYmplY3QpOwotICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUoZ19vYmpl
Y3RfbmV3KFdFQktJVF9ET01fVFlQRV9OT0RFLCAiY29yZS1vYmplY3QiLCBjb3JlT2JqZWN0LCBu
dWxscHRyKSk7Ci19Ci0KLX0KK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwogCiBz
dGF0aWMgZ2Jvb2xlYW4gd2Via2l0X2RvbV9ub2RlX2Rpc3BhdGNoX2V2ZW50KFdlYktpdERPTUV2
ZW50VGFyZ2V0KiB0YXJnZXQsIFdlYktpdERPTUV2ZW50KiBldmVudCwgR0Vycm9yKiogZXJyb3Ip
CiB7CkBAIC05OCwxNSArNjgsMTMgQEAgc3RhdGljIGdib29sZWFuIHdlYmtpdF9kb21fbm9kZV9y
ZW1vdmVfZXZlbnRfbGlzdGVuZXIoV2ViS2l0RE9NRXZlbnRUYXJnZXQqIHRhcmcKICAgICByZXR1
cm4gV2ViS2l0OjpHT2JqZWN0RXZlbnRMaXN0ZW5lcjo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihHX09C
SkVDVCh0YXJnZXQpLCBjb3JlVGFyZ2V0LCBldmVudE5hbWUsIGhhbmRsZXIsIHVzZUNhcHR1cmUp
OwogfQogCi1zdGF0aWMgdm9pZCB3ZWJraXRfZG9tX25vZGVfZG9tX2V2ZW50X3RhcmdldF9pbml0
KFdlYktpdERPTUV2ZW50VGFyZ2V0SWZhY2UqIGlmYWNlKQordm9pZCB3ZWJraXRET01Ob2RlRE9N
RXZlbnRUYXJnZXRJbml0KFdlYktpdERPTUV2ZW50VGFyZ2V0SWZhY2UqIGlmYWNlKQogewogICAg
IGlmYWNlLT5kaXNwYXRjaF9ldmVudCA9IHdlYmtpdF9kb21fbm9kZV9kaXNwYXRjaF9ldmVudDsK
ICAgICBpZmFjZS0+YWRkX2V2ZW50X2xpc3RlbmVyID0gd2Via2l0X2RvbV9ub2RlX2FkZF9ldmVu
dF9saXN0ZW5lcjsKICAgICBpZmFjZS0+cmVtb3ZlX2V2ZW50X2xpc3RlbmVyID0gd2Via2l0X2Rv
bV9ub2RlX3JlbW92ZV9ldmVudF9saXN0ZW5lcjsKIH0KIAotR19ERUZJTkVfVFlQRV9XSVRIX0NP
REUoV2ViS2l0RE9NTm9kZSwgd2Via2l0X2RvbV9ub2RlLCBXRUJLSVRfRE9NX1RZUEVfT0JKRUNU
LCBHX0lNUExFTUVOVF9JTlRFUkZBQ0UoV0VCS0lUX0RPTV9UWVBFX0VWRU5UX1RBUkdFVCwgd2Vi
a2l0X2RvbV9ub2RlX2RvbV9ldmVudF90YXJnZXRfaW5pdCkpCi0KIGVudW0gewogICAgIERPTV9O
T0RFX1BST1BfMCwKICAgICBET01fTk9ERV9QUk9QX05PREVfTkFNRSwKQEAgLTEyNCwxNiArOTIs
NiBAQCBlbnVtIHsKICAgICBET01fTk9ERV9QUk9QX1BBUkVOVF9FTEVNRU5ULAogfTsKIAotc3Rh
dGljIHZvaWQgd2Via2l0X2RvbV9ub2RlX2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKLXsKLSAg
ICBXZWJLaXRET01Ob2RlUHJpdmF0ZSogcHJpdiA9IFdFQktJVF9ET01fTk9ERV9HRVRfUFJJVkFU
RShvYmplY3QpOwotCi0gICAgV2ViS2l0OjpET01PYmplY3RDYWNoZTo6Zm9yZ2V0KHByaXYtPmNv
cmVPYmplY3QuZ2V0KCkpOwotCi0gICAgcHJpdi0+fldlYktpdERPTU5vZGVQcml2YXRlKCk7Ci0g
ICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2RvbV9ub2RlX3BhcmVudF9jbGFzcyktPmZpbmFsaXpl
KG9iamVjdCk7Ci19Ci0KIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fbm9kZV9zZXRfcHJvcGVydHko
R09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLCBjb25zdCBHVmFsdWUqIHZhbHVlLCBH
UGFyYW1TcGVjKiBwc3BlYykKIHsKICAgICBXZWJLaXRET01Ob2RlKiBzZWxmID0gV0VCS0lUX0RP
TV9OT0RFKG9iamVjdCk7CkBAIC0yMDEsMjMgKzE1OSw4IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9k
b21fbm9kZV9nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLCBH
VmFsCiAgICAgfQogfQogCi1zdGF0aWMgR09iamVjdCogd2Via2l0X2RvbV9ub2RlX2NvbnN0cnVj
dG9yKEdUeXBlIHR5cGUsIGd1aW50IGNvbnN0cnVjdFByb3BlcnRpZXNDb3VudCwgR09iamVjdENv
bnN0cnVjdFBhcmFtKiBjb25zdHJ1Y3RQcm9wZXJ0aWVzKQotewotICAgIEdPYmplY3QqIG9iamVj
dCA9IEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9kb21fbm9kZV9wYXJlbnRfY2xhc3MpLT5jb25zdHJ1
Y3Rvcih0eXBlLCBjb25zdHJ1Y3RQcm9wZXJ0aWVzQ291bnQsIGNvbnN0cnVjdFByb3BlcnRpZXMp
OwotCi0gICAgV2ViS2l0RE9NTm9kZVByaXZhdGUqIHByaXYgPSBXRUJLSVRfRE9NX05PREVfR0VU
X1BSSVZBVEUob2JqZWN0KTsKLSAgICBwcml2LT5jb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2Vi
Q29yZTo6Tm9kZSo+KFdFQktJVF9ET01fT0JKRUNUKG9iamVjdCktPmNvcmVPYmplY3QpOwotICAg
IFdlYktpdDo6RE9NT2JqZWN0Q2FjaGU6OnB1dChwcml2LT5jb3JlT2JqZWN0LmdldCgpLCBvYmpl
Y3QpOwotCi0gICAgcmV0dXJuIG9iamVjdDsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X2RvbV9u
b2RlX2NsYXNzX2luaXQoV2ViS2l0RE9NTm9kZUNsYXNzKiByZXF1ZXN0Q2xhc3MpCit2b2lkIHdl
YmtpdERPTU5vZGVJbnN0YWxsUHJvcGVydGllcyhHT2JqZWN0Q2xhc3MqIGdvYmplY3RDbGFzcykK
IHsKLSAgICBHT2JqZWN0Q2xhc3MqIGdvYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKHJlcXVl
c3RDbGFzcyk7Ci0gICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKGdvYmplY3RDbGFzcywgc2l6
ZW9mKFdlYktpdERPTU5vZGVQcml2YXRlKSk7Ci0gICAgZ29iamVjdENsYXNzLT5jb25zdHJ1Y3Rv
ciA9IHdlYmtpdF9kb21fbm9kZV9jb25zdHJ1Y3RvcjsKLSAgICBnb2JqZWN0Q2xhc3MtPmZpbmFs
aXplID0gd2Via2l0X2RvbV9ub2RlX2ZpbmFsaXplOwogICAgIGdvYmplY3RDbGFzcy0+c2V0X3By
b3BlcnR5ID0gd2Via2l0X2RvbV9ub2RlX3NldF9wcm9wZXJ0eTsKICAgICBnb2JqZWN0Q2xhc3Mt
PmdldF9wcm9wZXJ0eSA9IHdlYmtpdF9kb21fbm9kZV9nZXRfcHJvcGVydHk7CiAKQEAgLTM1Mywx
MiArMjk2LDYgQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV9ub2RlX2NsYXNzX2luaXQoV2ViS2l0
RE9NTm9kZUNsYXNzKiByZXF1ZXN0Q2xhc3MpCiAKIH0KIAotc3RhdGljIHZvaWQgd2Via2l0X2Rv
bV9ub2RlX2luaXQoV2ViS2l0RE9NTm9kZSogcmVxdWVzdCkKLXsKLSAgICBXZWJLaXRET01Ob2Rl
UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9ET01fTk9ERV9HRVRfUFJJVkFURShyZXF1ZXN0KTsKLSAg
ICBuZXcgKHByaXYpIFdlYktpdERPTU5vZGVQcml2YXRlKCk7Ci19Ci0KIFdlYktpdERPTU5vZGUq
IHdlYmtpdF9kb21fbm9kZV9pbnNlcnRfYmVmb3JlKFdlYktpdERPTU5vZGUqIHNlbGYsIFdlYktp
dERPTU5vZGUqIG5ld0NoaWxkLCBXZWJLaXRET01Ob2RlKiByZWZDaGlsZCwgR0Vycm9yKiogZXJy
b3IpCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpAQCAtNjk3
LDMgKzYzNCw0IEBAIFdlYktpdERPTUVsZW1lbnQqIHdlYmtpdF9kb21fbm9kZV9nZXRfcGFyZW50
X2VsZW1lbnQoV2ViS2l0RE9NTm9kZSogc2VsZikKICAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29i
amVjdFJlc3VsdC5nZXQoKSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01Ob2RlSXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVJdGVyYXRvci5jcHAK
aW5kZXggN2NkY2U0NjcwYjEuLmRmODBkYjdhYTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUl0ZXJh
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NTm9kZUl0ZXJhdG9yLmNwcApAQCAtMzksNiArMzksOCBAQCB0eXBl
ZGVmIHN0cnVjdCBfV2ViS2l0RE9NTm9kZUl0ZXJhdG9yUHJpdmF0ZSB7CiAgICAgUmVmUHRyPFdl
YkNvcmU6Ok5vZGVJdGVyYXRvcj4gY29yZU9iamVjdDsKIH0gV2ViS2l0RE9NTm9kZUl0ZXJhdG9y
UHJpdmF0ZTsKIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBXZWJLaXRET01Ob2RlSXRlcmF0b3IqIGtpdChXZWJDb3JlOjpOb2RlSXRl
cmF0b3IqIG9iaikKQEAgLTI3MiwzICsyNzQsNCBAQCBnYm9vbGVhbiB3ZWJraXRfZG9tX25vZGVf
aXRlcmF0b3JfZ2V0X3BvaW50ZXJfYmVmb3JlX3JlZmVyZW5jZV9ub2RlKFdlYktpdERPTU5vZAog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01Ob2RlSXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlSXRlcmF0b3IuaAppbmRl
eCA2Yzc5M2M3MTI5My4uZGQ0ZDY1MzdiM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlSXRlcmF0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NTm9kZUl0ZXJhdG9yLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJL
aXRET01Ob2RlSXRlcmF0b3JDbGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50
X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUK
IHdlYmtpdF9kb21fbm9kZV9pdGVyYXRvcl9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01NCw4
ICs1NCwxMCBAQCB3ZWJraXRfZG9tX25vZGVfaXRlcmF0b3JfZ2V0X3R5cGUodm9pZCk7CiAgKiBA
ZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktp
dERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FU
RUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fbm9kZV9pdGVyYXRvcl9uZXh0X25vZGUoV2Vi
S2l0RE9NTm9kZUl0ZXJhdG9yKiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtNjQs
MTYgKzY2LDIwIEBAIHdlYmtpdF9kb21fbm9kZV9pdGVyYXRvcl9uZXh0X25vZGUoV2ViS2l0RE9N
Tm9kZUl0ZXJhdG9yKiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAgKiBAZXJyb3I6ICNHRXJyb3IK
ICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9k
ZSoKIHdlYmtpdF9kb21fbm9kZV9pdGVyYXRvcl9wcmV2aW91c19ub2RlKFdlYktpdERPTU5vZGVJ
dGVyYXRvciogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKICAqIHdlYmtpdF9kb21fbm9k
ZV9pdGVyYXRvcl9kZXRhY2g6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTm9kZUl0ZXJhdG9yCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21fbm9kZV9pdGVyYXRvcl9kZXRhY2goV2ViS2l0RE9NTm9kZUl0ZXJhdG9yKiBzZWxmKTsKIAog
LyoqCkBAIC04MSw4ICs4NywxMCBAQCB3ZWJraXRfZG9tX25vZGVfaXRlcmF0b3JfZGV0YWNoKFdl
YktpdERPTU5vZGVJdGVyYXRvciogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTm9kZUl0
ZXJhdG9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2Rl
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktp
dERPTU5vZGUqCiB3ZWJraXRfZG9tX25vZGVfaXRlcmF0b3JfZ2V0X3Jvb3QoV2ViS2l0RE9NTm9k
ZUl0ZXJhdG9yKiBzZWxmKTsKIAogLyoqCkBAIC05MCw4ICs5OCwxMCBAQCB3ZWJraXRfZG9tX25v
ZGVfaXRlcmF0b3JfZ2V0X3Jvb3QoV2ViS2l0RE9NTm9kZUl0ZXJhdG9yKiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01Ob2RlSXRlcmF0b3IKICAqCiAgKiBSZXR1cm5zOiBBICNndWxvbmcK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Via2l0
X2RvbV9ub2RlX2l0ZXJhdG9yX2dldF93aGF0X3RvX3Nob3coV2ViS2l0RE9NTm9kZUl0ZXJhdG9y
KiBzZWxmKTsKIAogLyoqCkBAIC05OSw4ICsxMDksMTAgQEAgd2Via2l0X2RvbV9ub2RlX2l0ZXJh
dG9yX2dldF93aGF0X3RvX3Nob3coV2ViS2l0RE9NTm9kZUl0ZXJhdG9yKiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01Ob2RlSXRlcmF0b3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
ZnVsbCk6IEEgI1dlYktpdERPTU5vZGVGaWx0ZXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01O
b2RlRmlsdGVyKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZUZpbHRlcioKIHdlYmtp
dF9kb21fbm9kZV9pdGVyYXRvcl9nZXRfZmlsdGVyKFdlYktpdERPTU5vZGVJdGVyYXRvciogc2Vs
Zik7CiAKIC8qKgpAQCAtMTA4LDggKzEyMCwxMCBAQCB3ZWJraXRfZG9tX25vZGVfaXRlcmF0b3Jf
Z2V0X2ZpbHRlcihXZWJLaXRET01Ob2RlSXRlcmF0b3IqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTU5vZGVJdGVyYXRvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAj
V2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQ
UkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9ub2RlX2l0ZXJhdG9yX2dldF9yZWZl
cmVuY2Vfbm9kZShXZWJLaXRET01Ob2RlSXRlcmF0b3IqIHNlbGYpOwogCiAvKioKQEAgLTExNyw4
ICsxMzEsMTAgQEAgd2Via2l0X2RvbV9ub2RlX2l0ZXJhdG9yX2dldF9yZWZlcmVuY2Vfbm9kZShX
ZWJLaXRET01Ob2RlSXRlcmF0b3IqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU5vZGVJ
dGVyYXRvcgogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jv
b2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX25vZGVfaXRlcmF0
b3JfZ2V0X3BvaW50ZXJfYmVmb3JlX3JlZmVyZW5jZV9ub2RlKFdlYktpdERPTU5vZGVJdGVyYXRv
ciogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUxpc3QuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTU5vZGVMaXN0LmNwcAppbmRleCAxODc3OWY0ZDA0OC4uMDk1MjIxOGRkYmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01Ob2RlTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVMaXN0LmNwcApAQCAtMzgsNiArMzgs
OCBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NTm9kZUxpc3RQcml2YXRlIHsKICAgICBSZWZQ
dHI8V2ViQ29yZTo6Tm9kZUxpc3Q+IGNvcmVPYmplY3Q7CiB9IFdlYktpdERPTU5vZGVMaXN0UHJp
dmF0ZTsKIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBXZWJLaXRET01Ob2RlTGlzdCoga2l0KFdlYkNvcmU6Ok5vZGVMaXN0KiBvYmop
CkBAIC0xNTAsMyArMTUyLDQgQEAgZ3Vsb25nIHdlYmtpdF9kb21fbm9kZV9saXN0X2dldF9sZW5n
dGgoV2ViS2l0RE9NTm9kZUxpc3QqIHNlbGYpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorR19H
TlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVMaXN0Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NTm9kZUxpc3QuaAppbmRleCBjYTNlZTI2M2MxMi4uNDE3NWYzODdlNzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01Ob2RlTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlTGlzdC5oCkBAIC00NSw3ICs0NSw3IEBA
IHN0cnVjdCBfV2ViS2l0RE9NTm9kZUxpc3RDbGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xh
c3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FU
RUQgR1R5cGUKIHdlYmtpdF9kb21fbm9kZV9saXN0X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAg
LTU0LDggKzU0LDEwIEBAIHdlYmtpdF9kb21fbm9kZV9saXN0X2dldF90eXBlKHZvaWQpOwogICog
QGluZGV4OiBBICNndWxvbmcKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dl
YktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJF
Q0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fbm9kZV9saXN0X2l0ZW0oV2ViS2l0RE9N
Tm9kZUxpc3QqIHNlbGYsIGd1bG9uZyBpbmRleCk7CiAKIC8qKgpAQCAtNjMsOCArNjUsMTAgQEAg
d2Via2l0X2RvbV9ub2RlX2xpc3RfaXRlbShXZWJLaXRET01Ob2RlTGlzdCogc2VsZiwgZ3Vsb25n
IGluZGV4KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Ob2RlTGlzdAogICoKICAqIFJldHVybnM6
IEEgI2d1bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGd1bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vs
b25nCiB3ZWJraXRfZG9tX25vZGVfbGlzdF9nZXRfbGVuZ3RoKFdlYktpdERPTU5vZGVMaXN0KiBz
ZWxmKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01PYmplY3QuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01PYmpl
Y3QuaAppbmRleCA5YjdiODY3YjQxNi4uZjdmYmM5MzM4YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01PYmpl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NT2JqZWN0LmgKQEAgLTIxLDcgKzIxLDYgQEAKICAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgogICovCiAKLQogI2lmbmRlZiBXZWJLaXRET01PYmplY3RfaAogI2Rl
ZmluZSBXZWJLaXRET01PYmplY3RfaAogCkBAIC0zNyw4ICszNiw2IEBAIEdfQkVHSU5fREVDTFMK
ICNkZWZpbmUgV0VCS0lUX0RPTV9JU19PQkpFQ1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tf
Q0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX0RPTV9UWVBFX09CSkVDVCkpCiAjZGVmaW5lIFdF
QktJVF9ET01fT0JKRUNUX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFT
Uygob2JqKSwgIFdFQktJVF9ET01fVFlQRV9PQkpFQ1QsIFdlYktpdERPTU9iamVjdENsYXNzKSkK
IAotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTU9iamVjdFByaXZhdGUgV2ViS2l0RE9NT2JqZWN0
UHJpdmF0ZTsKLQogc3RydWN0IF9XZWJLaXRET01PYmplY3QgewogICAgIEdPYmplY3QgcGFyZW50
SW5zdGFuY2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcml2YXRlR3Rr
LmNwcApzaW1pbGFyaXR5IGluZGV4IDk2JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJpdmF0ZS5jcHAKcmVu
YW1lIHRvIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01Qcml2YXRlR3RrLmNwcAppbmRleCBlNjYxOGFlMzEyNi4uYzU3MmY5MjRmODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01Qcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJpdmF0ZUd0ay5jcHAKQEAg
LTI1LDcgKzI1LDYgQEAKICNpbmNsdWRlICJXZWJLaXRET01Qcml2YXRlLmgiCiAKICNpbmNsdWRl
IDxXZWJDb3JlL0Jsb2IuaD4KLSNpbmNsdWRlICJET01PYmplY3RDYWNoZS5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvRWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRXZlbnQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0V2ZW50VGFyZ2V0Lmg+CkBAIC02MiwxMiArNjEsMTQgQEAKICNpbmNsdWRlICJX
ZWJLaXRET01VSUV2ZW50UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdERPTVdoZWVsRXZlbnRQ
cml2YXRlLmgiCiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTo6SFRNTE5hbWVzOwogCi1XZWJLaXRET01Ob2RlKiB3cmFwKE5vZGUqIG5vZGUpCitX
ZWJLaXRET01Ob2RlKiB3cmFwTm9kZUd0ayhOb2RlKiBub2RlKQogewogICAgIEFTU0VSVChub2Rl
KTsKICAgICBBU1NFUlQobm9kZS0+bm9kZVR5cGUoKSk7CkBAIC03Niw3ICs3Nyw3IEBAIFdlYktp
dERPTU5vZGUqIHdyYXAoTm9kZSogbm9kZSkKICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToK
ICAgICAgICAgaWYgKGlzPEhUTUxFbGVtZW50Pigqbm9kZSkpCiAgICAgICAgICAgICByZXR1cm4g
V0VCS0lUX0RPTV9OT0RFKHdyYXAoZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KG5vZGUpKSk7Ci0gICAg
ICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcEVsZW1lbnQoZG93bmNhc3Q8RWxlbWVudD4o
bm9kZSkpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBOb2RlOjpBVFRSSUJV
VEVfTk9ERToKICAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFwQXR0cihzdGF0aWNf
Y2FzdDxBdHRyKj4obm9kZSkpKTsKICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKQEAgLTkwLDcg
KzkxLDcgQEAgV2ViS2l0RE9NTm9kZSogd3JhcChOb2RlKiBub2RlKQogICAgIGNhc2UgTm9kZTo6
RE9DVU1FTlRfTk9ERToKICAgICAgICAgaWYgKGlzPEhUTUxEb2N1bWVudD4oKm5vZGUpKQogICAg
ICAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFwSFRNTERvY3VtZW50KGRvd25jYXN0
PEhUTUxEb2N1bWVudD4obm9kZSkpKTsKLSAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3
cmFwRG9jdW1lbnQoZG93bmNhc3Q8RG9jdW1lbnQ+KG5vZGUpKSk7CisgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFOgogICAgICAgICByZXR1
cm4gV0VCS0lUX0RPTV9OT0RFKHdyYXBEb2N1bWVudFR5cGUoc3RhdGljX2Nhc3Q8RG9jdW1lbnRU
eXBlKj4obm9kZSkpKTsKICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CkBA
IC0xNTYsMyArMTU3LDQgQEAgV2ViS2l0RE9NQmxvYiogd3JhcChCbG9iKiBibG9iKQogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01Qcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJpdmF0ZUd0ay5oCnNpbWlsYXJpdHkgaW5k
ZXggNzklCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcml2YXRlLmgKcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcml2YXRlR3Rr
LmgKaW5kZXggMmUxNDk0MmNiMDUuLjE3ZDY3OWM1NmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01Qcml2YXRlR3RrLmgKQEAgLTIxLDEzICsyMSwxMCBAQAogICogIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg
IDAyMTEwLTEzMDEgIFVTQQogICovCiAKLSNpZm5kZWYgV2ViS2l0RE9NUHJpdmF0ZV9oCi0jZGVm
aW5lIFdlYktpdERPTVByaXZhdGVfaAorI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDx3ZWJraXRk
b20vd2Via2l0ZG9tZGVmaW5lcy5oPgorI2luY2x1ZGUgIndlYmtpdGRvbWRlZmluZXMuaCIKIAot
I2RlZmluZSBXRUJLSVRfUEFSQU1fUkVBREFCTEUgKChHUGFyYW1GbGFncykoR19QQVJBTV9SRUFE
QUJMRSB8IEdfUEFSQU1fU1RBVElDX05BTUUgfCBHX1BBUkFNX1NUQVRJQ19OSUNLIHwgR19QQVJB
TV9TVEFUSUNfQkxVUkIpKQotI2RlZmluZSBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFICgoR1BhcmFt
RmxhZ3MpKEdfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9TVEFUSUNfTkFNRSB8IEdfUEFSQU1f
U1RBVElDX05JQ0sgfCBHX1BBUkFNX1NUQVRJQ19CTFVSQikpCiAjZGVmaW5lIFdFQktJVF9XQVJO
X0ZFQVRVUkVfTk9UX1BSRVNFTlQoRmVhdHVyZSkgZ193YXJuaW5nKCJXZWJLaXRHVEsrIHdhcyBu
b3QgY29tcGlsZWQgd2l0aCBzdXBwb3J0IGZvciAiIEZlYXR1cmUpOwogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC00MCwxMiArMzcsMTAgQEAgY2xhc3MgQmxvYjsKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogbmFtZXNwYWNlIFdlYktpdCB7Ci1XZWJLaXRET01Ob2RlKiB3cmFwKFdlYkNvcmU6
Ok5vZGUqKTsKK1dlYktpdERPTU5vZGUqIHdyYXBOb2RlR3RrKFdlYkNvcmU6Ok5vZGUqKTsKIFdl
YktpdERPTUV2ZW50KiB3cmFwKFdlYkNvcmU6OkV2ZW50Kik7CiBXZWJLaXRET01TdHlsZVNoZWV0
KiB3cmFwKFdlYkNvcmU6OlN0eWxlU2hlZXQqKTsKIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKiB3
cmFwKFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uKik7CiBXZWJLaXRET01FdmVudFRhcmdldCogd3Jh
cChXZWJDb3JlOjpFdmVudFRhcmdldCopOwogV2ViS2l0RE9NQmxvYiogd3JhcChXZWJDb3JlOjpC
bG9iKik7CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFdlYktpdERPTVByaXZh
dGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLmNwcAppbmRleCBiMTVmZDcxZjEwNy4uZWNjODc4ZTQwNGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24uY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBS
RUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24qIGtpdChXZWJDb3JlOjpQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24qIG9iaikKQEAgLTE2
NiwzICsxNjgsNCBAQCBXZWJLaXRET01TdHlsZVNoZWV0KiB3ZWJraXRfZG9tX3Byb2Nlc3Npbmdf
aW5zdHJ1Y3Rpb25fZ2V0X3NoZWV0KFdlYktpdERPTVByb2NlcwogICAgIHJldHVybiBXZWJLaXQ6
OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVD
QVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVBy
b2Nlc3NpbmdJbnN0cnVjdGlvbi5oCmluZGV4IDAwMTVkYzg0NjhkLi4xZjY3NGY0NThjYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTVByb2Nlc3Np
bmdJbnN0cnVjdGlvbkNsYXNzIHsKICAgICBXZWJLaXRET01DaGFyYWN0ZXJEYXRhQ2xhc3MgcGFy
ZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5
cGUKIHdlYmtpdF9kb21fcHJvY2Vzc2luZ19pbnN0cnVjdGlvbl9nZXRfdHlwZSh2b2lkKTsKIAog
LyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX3Byb2Nlc3NpbmdfaW5zdHJ1Y3Rpb25f
Z2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NUHJvY2Vzc2luZ0luc3RydWN0
aW9uCiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dF
QktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9wcm9jZXNzaW5nX2luc3RydWN0aW9u
X2dldF90YXJnZXQoV2ViS2l0RE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uKiBzZWxmKTsKIAogLyoq
CkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX3Byb2Nlc3NpbmdfaW5zdHJ1Y3Rpb25fZ2V0
X3RhcmdldChXZWJLaXRET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24qIHNlbAogICogQHNlbGY6IEEg
I1dlYktpdERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbgogICoKICAqIFJldHVybnM6ICh0cmFuc2Zl
ciBmdWxsKTogQSAjV2ViS2l0RE9NU3R5bGVTaGVldAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERP
TVN0eWxlU2hlZXQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01TdHlsZVNoZWV0Kgogd2Vi
a2l0X2RvbV9wcm9jZXNzaW5nX2luc3RydWN0aW9uX2dldF9zaGVldChXZWJLaXRET01Qcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24qIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVJh
bmdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01SYW5nZS5jcHAKaW5kZXggODYxZWVmYTU4MTkuLmJlYjQzNWJiMTQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NUmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01SYW5nZS5jcHAKQEAgLTQwLDYgKzQw
LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTVJhbmdlUHJpdmF0ZSB7CiAgICAgUmVmUHRy
PFdlYkNvcmU6OlJhbmdlPiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01SYW5nZVByaXZhdGU7CiAK
K0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogV2ViS2l0RE9NUmFuZ2UqIGtpdChXZWJDb3JlOjpSYW5nZSogb2JqKQpAQCAtNjM1LDMgKzYz
Nyw0IEBAIGdjaGFyKiB3ZWJraXRfZG9tX3JhbmdlX2dldF90ZXh0KFdlYktpdERPTVJhbmdlKiBz
ZWxmKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FU
SU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01SYW5nZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVJhbmdlLmgKaW5kZXggZTYzYTZi
NDRlZDYuLmY4NTcyMjc2N2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUmFuZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUmFu
Z2UuaApAQCAtMzksNDEgKzM5LDU3IEBAIEdfQkVHSU5fREVDTFMKIAogLyoqCiAgKiBXRUJLSVRf
RE9NX1JBTkdFX1NUQVJUX1RPX1NUQVJUOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fUkFOR0Vf
U1RBUlRfVE9fU1RBUlQgMAogCiAvKioKICAqIFdFQktJVF9ET01fUkFOR0VfU1RBUlRfVE9fRU5E
OgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fUkFOR0VfU1RBUlRfVE9fRU5EIDEKIAogLyoqCiAg
KiBXRUJLSVRfRE9NX1JBTkdFX0VORF9UT19FTkQ6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9S
QU5HRV9FTkRfVE9fRU5EIDIKIAogLyoqCiAgKiBXRUJLSVRfRE9NX1JBTkdFX0VORF9UT19TVEFS
VDoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX1JBTkdFX0VORF9UT19TVEFSVCAzCiAKIC8qKgog
ICogV0VCS0lUX0RPTV9SQU5HRV9OT0RFX0JFRk9SRToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9N
X1JBTkdFX05PREVfQkVGT1JFIDAKIAogLyoqCiAgKiBXRUJLSVRfRE9NX1JBTkdFX05PREVfQUZU
RVI6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9SQU5HRV9OT0RFX0FGVEVSIDEKIAogLyoqCiAg
KiBXRUJLSVRfRE9NX1JBTkdFX05PREVfQkVGT1JFX0FORF9BRlRFUjoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBX
RUJLSVRfRE9NX1JBTkdFX05PREVfQkVGT1JFX0FORF9BRlRFUiAyCiAKIC8qKgogICogV0VCS0lU
X0RPTV9SQU5HRV9OT0RFX0lOU0lERToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX1JBTkdFX05P
REVfSU5TSURFIDMKIApAQCAtODUsNyArMTAxLDcgQEAgc3RydWN0IF9XZWJLaXRET01SYW5nZUNs
YXNzIHsKICAgICBXZWJLaXRET01PYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJL
SVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9yYW5nZV9n
ZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC05NSw4ICsxMTEsMTAgQEAgd2Via2l0X2RvbV9yYW5n
ZV9nZXRfdHlwZSh2b2lkKTsKICAqIEBvZmZzZXQ6IEEgI2dsb25nCiAgKiBAZXJyb3I6ICNHRXJy
b3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9yYW5nZV9zZXRfc3RhcnQoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5v
ZGUqIHJlZk5vZGUsIGdsb25nIG9mZnNldCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTEw
Niw4ICsxMjQsMTAgQEAgd2Via2l0X2RvbV9yYW5nZV9zZXRfc3RhcnQoV2ViS2l0RE9NUmFuZ2Uq
IHNlbGYsIFdlYktpdERPTU5vZGUqIHJlZk5vZGUsIGdsb25nIG8KICAqIEBvZmZzZXQ6IEEgI2ds
b25nCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9yYW5nZV9zZXRfZW5kKFdlYktpdERPTVJhbmdl
KiBzZWxmLCBXZWJLaXRET01Ob2RlKiByZWZOb2RlLCBnbG9uZyBvZmZzZXQsIEdFcnJvcioqIGVy
cm9yKTsKIAogLyoqCkBAIC0xMTYsOCArMTM2LDEwIEBAIHdlYmtpdF9kb21fcmFuZ2Vfc2V0X2Vu
ZChXZWJLaXRET01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogcmVmTm9kZSwgZ2xvbmcgb2Zm
CiAgKiBAcmVmTm9kZTogQSAjV2ViS2l0RE9NTm9kZQogICogQGVycm9yOiAjR0Vycm9yCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
cmFuZ2Vfc2V0X3N0YXJ0X2JlZm9yZShXZWJLaXRET01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9k
ZSogcmVmTm9kZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTEyNiw4ICsxNDgsMTAgQEAg
d2Via2l0X2RvbV9yYW5nZV9zZXRfc3RhcnRfYmVmb3JlKFdlYktpdERPTVJhbmdlKiBzZWxmLCBX
ZWJLaXRET01Ob2RlKiByZWZOb2RlLAogICogQHJlZk5vZGU6IEEgI1dlYktpdERPTU5vZGUKICAq
IEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX3JhbmdlX3NldF9zdGFydF9hZnRlcihXZWJLaXRET01SYW5n
ZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogcmVmTm9kZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioK
QEAgLTEzNiw4ICsxNjAsMTAgQEAgd2Via2l0X2RvbV9yYW5nZV9zZXRfc3RhcnRfYWZ0ZXIoV2Vi
S2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJlZk5vZGUsIEcKICAqIEByZWZOb2Rl
OiBBICNXZWJLaXRET01Ob2RlCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9yYW5nZV9zZXRfZW5k
X2JlZm9yZShXZWJLaXRET01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogcmVmTm9kZSwgR0Vy
cm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTE0Niw4ICsxNzIsMTAgQEAgd2Via2l0X2RvbV9yYW5n
ZV9zZXRfZW5kX2JlZm9yZShXZWJLaXRET01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogcmVm
Tm9kZSwgR0UKICAqIEByZWZOb2RlOiBBICNXZWJLaXRET01Ob2RlCiAgKiBAZXJyb3I6ICNHRXJy
b3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9yYW5nZV9zZXRfZW5kX2FmdGVyKFdlYktpdERPTVJhbmdlKiBzZWxmLCBXZWJLaXRE
T01Ob2RlKiByZWZOb2RlLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTU2LDggKzE4NCwx
MCBAQCB3ZWJraXRfZG9tX3JhbmdlX3NldF9lbmRfYWZ0ZXIoV2ViS2l0RE9NUmFuZ2UqIHNlbGYs
IFdlYktpdERPTU5vZGUqIHJlZk5vZGUsIEdFcgogICogQHRvU3RhcnQ6IEEgI2dib29sZWFuCiAg
KiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9yYW5nZV9jb2xsYXBzZShXZWJLaXRET01SYW5nZSogc2Vs
ZiwgZ2Jvb2xlYW4gdG9TdGFydCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTE2Niw4ICsx
OTYsMTAgQEAgd2Via2l0X2RvbV9yYW5nZV9jb2xsYXBzZShXZWJLaXRET01SYW5nZSogc2VsZiwg
Z2Jvb2xlYW4gdG9TdGFydCwgR0Vycm9yKiogZXJyb3IKICAqIEByZWZOb2RlOiBBICNXZWJLaXRE
T01Ob2RlCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9yYW5nZV9zZWxlY3Rfbm9kZShXZWJLaXRE
T01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogcmVmTm9kZSwgR0Vycm9yKiogZXJyb3IpOwog
CiAvKioKQEAgLTE3Niw4ICsyMDgsMTAgQEAgd2Via2l0X2RvbV9yYW5nZV9zZWxlY3Rfbm9kZShX
ZWJLaXRET01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogcmVmTm9kZSwgR0Vycm8KICAqIEBy
ZWZOb2RlOiBBICNXZWJLaXRET01Ob2RlCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9yYW5nZV9z
ZWxlY3Rfbm9kZV9jb250ZW50cyhXZWJLaXRET01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9kZSog
cmVmTm9kZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTE4OCw4ICsyMjIsMTAgQEAgd2Vi
a2l0X2RvbV9yYW5nZV9zZWxlY3Rfbm9kZV9jb250ZW50cyhXZWJLaXRET01SYW5nZSogc2VsZiwg
V2ViS2l0RE9NTm9kZSogcmVmTm8KICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6
IEEgI2dzaG9ydAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdzaG9ydAorV0VCS0lUX0RFUFJFQ0FURUQgZ3No
b3J0CiB3ZWJraXRfZG9tX3JhbmdlX2NvbXBhcmVfYm91bmRhcnlfcG9pbnRzKFdlYktpdERPTVJh
bmdlKiBzZWxmLCBndXNob3J0IGhvdywgV2ViS2l0RE9NUmFuZ2UqIHNvdXJjZVJhbmdlLCBHRXJy
b3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTk3LDggKzIzMywxMCBAQCB3ZWJraXRfZG9tX3Jhbmdl
X2NvbXBhcmVfYm91bmRhcnlfcG9pbnRzKFdlYktpdERPTVJhbmdlKiBzZWxmLCBndXNob3J0IGhv
dywgV2ViSwogICogQHNlbGY6IEEgI1dlYktpdERPTVJhbmdlCiAgKiBAZXJyb3I6ICNHRXJyb3IK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9yYW5nZV9kZWxldGVfY29udGVudHMoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIEdFcnJvcioq
IGVycm9yKTsKIAogLyoqCkBAIC0yMDcsOCArMjQ1LDEwIEBAIHdlYmtpdF9kb21fcmFuZ2VfZGVs
ZXRlX2NvbnRlbnRzKFdlYktpdERPTVJhbmdlKiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAgKiBA
ZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktp
dERPTURvY3VtZW50RnJhZ21lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Eb2N1bWVudEZy
YWdtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudCoKIHdl
YmtpdF9kb21fcmFuZ2VfZXh0cmFjdF9jb250ZW50cyhXZWJLaXRET01SYW5nZSogc2VsZiwgR0Vy
cm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTIxNyw4ICsyNTcsMTAgQEAgd2Via2l0X2RvbV9yYW5n
ZV9leHRyYWN0X2NvbnRlbnRzKFdlYktpdERPTVJhbmdlKiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7
CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEg
I1dlYktpdERPTURvY3VtZW50RnJhZ21lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Eb2N1
bWVudEZyYWdtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVu
dCoKIHdlYmtpdF9kb21fcmFuZ2VfY2xvbmVfY29udGVudHMoV2ViS2l0RE9NUmFuZ2UqIHNlbGYs
IEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0yMjcsOCArMjY5LDEwIEBAIHdlYmtpdF9kb21f
cmFuZ2VfY2xvbmVfY29udGVudHMoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIEdFcnJvcioqIGVycm9y
KTsKICAqIEBuZXdOb2RlOiBBICNXZWJLaXRET01Ob2RlCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9yYW5nZV9pbnNlcnRfbm9kZShXZWJLaXRET01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9kZSog
bmV3Tm9kZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTIzNyw4ICsyODEsMTAgQEAgd2Vi
a2l0X2RvbV9yYW5nZV9pbnNlcnRfbm9kZShXZWJLaXRET01SYW5nZSogc2VsZiwgV2ViS2l0RE9N
Tm9kZSogbmV3Tm9kZSwgR0Vycm8KICAqIEBuZXdQYXJlbnQ6IEEgI1dlYktpdERPTU5vZGUKICAq
IEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX3JhbmdlX3N1cnJvdW5kX2NvbnRlbnRzKFdlYktpdERPTVJh
bmdlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBuZXdQYXJlbnQsIEdFcnJvcioqIGVycm9yKTsKIAog
LyoqCkBAIC0yNDcsOCArMjkzLDEwIEBAIHdlYmtpdF9kb21fcmFuZ2Vfc3Vycm91bmRfY29udGVu
dHMoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5vZGUqIG5ld1BhcmVuCiAgKiBAZXJy
b3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERP
TVJhbmdlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NUmFuZ2UqCitXRUJLSVRfREVQUkVDQVRF
RCBXZWJLaXRET01SYW5nZSoKIHdlYmtpdF9kb21fcmFuZ2VfY2xvbmVfcmFuZ2UoV2ViS2l0RE9N
UmFuZ2UqIHNlbGYsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0yNTcsOCArMzA1LDEwIEBA
IHdlYmtpdF9kb21fcmFuZ2VfY2xvbmVfcmFuZ2UoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIEdFcnJv
cioqIGVycm9yKTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6IEEgI2djaGFy
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtp
dF9kb21fcmFuZ2VfdG9fc3RyaW5nKFdlYktpdERPTVJhbmdlKiBzZWxmLCBHRXJyb3IqKiBlcnJv
cik7CiAKIC8qKgpAQCAtMjY2LDggKzMxNiwxMCBAQCB3ZWJraXRfZG9tX3JhbmdlX3RvX3N0cmlu
ZyhXZWJLaXRET01SYW5nZSogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTVJhbmdlCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9yYW5nZV9kZXRhY2goV2ViS2l0
RE9NUmFuZ2UqIHNlbGYsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0yNzcsOCArMzI5LDEw
IEBAIHdlYmtpdF9kb21fcmFuZ2VfZGV0YWNoKFdlYktpdERPTVJhbmdlKiBzZWxmLCBHRXJyb3Iq
KiBlcnJvcik7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
bm9uZSk6IEEgI1dlYktpdERPTURvY3VtZW50RnJhZ21lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJL
aXRET01Eb2N1bWVudEZyYWdtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRG9jdW1l
bnRGcmFnbWVudCoKIHdlYmtpdF9kb21fcmFuZ2VfY3JlYXRlX2NvbnRleHR1YWxfZnJhZ21lbnQo
V2ViS2l0RE9NUmFuZ2UqIHNlbGYsIGNvbnN0IGdjaGFyKiBodG1sLCBHRXJyb3IqKiBlcnJvcik7
CiAKIC8qKgpAQCAtMjg4LDggKzM0MiwxMCBAQCB3ZWJraXRfZG9tX3JhbmdlX2NyZWF0ZV9jb250
ZXh0dWFsX2ZyYWdtZW50KFdlYktpdERPTVJhbmdlKiBzZWxmLCBjb25zdCBnY2hhciogaAogICog
QGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogQSAjZ3Nob3J0CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ3Nob3J0CitXRUJLSVRfREVQUkVDQVRFRCBnc2hvcnQKIHdlYmtpdF9kb21fcmFuZ2VfY29t
cGFyZV9ub2RlKFdlYktpdERPTVJhbmdlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiByZWZOb2RlLCBH
RXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMjk5LDggKzM1NSwxMCBAQCB3ZWJraXRfZG9tX3Jh
bmdlX2NvbXBhcmVfbm9kZShXZWJLaXRET01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogcmVm
Tm9kZSwgR0VycgogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xl
YW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4K
IHdlYmtpdF9kb21fcmFuZ2VfaW50ZXJzZWN0c19ub2RlKFdlYktpdERPTVJhbmdlKiBzZWxmLCBX
ZWJLaXRET01Ob2RlKiByZWZOb2RlLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMzExLDgg
KzM2OSwxMCBAQCB3ZWJraXRfZG9tX3JhbmdlX2ludGVyc2VjdHNfbm9kZShXZWJLaXRET01SYW5n
ZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogcmVmTm9kZSwgRwogICogQGVycm9yOiAjR0Vycm9yCiAg
KgogICogUmV0dXJuczogQSAjZ3Nob3J0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ3Nob3J0CitXRUJLSVRf
REVQUkVDQVRFRCBnc2hvcnQKIHdlYmtpdF9kb21fcmFuZ2VfY29tcGFyZV9wb2ludChXZWJLaXRE
T01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogcmVmTm9kZSwgZ2xvbmcgb2Zmc2V0LCBHRXJy
b3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMzIzLDggKzM4MywxMCBAQCB3ZWJraXRfZG9tX3Jhbmdl
X2NvbXBhcmVfcG9pbnQoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJlZk5v
ZGUsIGdsbwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4K
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdl
YmtpdF9kb21fcmFuZ2VfaXNfcG9pbnRfaW5fcmFuZ2UoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdl
YktpdERPTU5vZGUqIHJlZk5vZGUsIGdsb25nIG9mZnNldCwgR0Vycm9yKiogZXJyb3IpOwogCiAv
KioKQEAgLTMzMyw4ICszOTUsMTAgQEAgd2Via2l0X2RvbV9yYW5nZV9pc19wb2ludF9pbl9yYW5n
ZShXZWJLaXRET01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogcmVmTm9kZSwKICAqIEBlcnJv
cjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9N
Tm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBX
ZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9yYW5nZV9nZXRfc3RhcnRfY29udGFpbmVyKFdlYktp
dERPTVJhbmdlKiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMzQzLDggKzQwNywx
MCBAQCB3ZWJraXRfZG9tX3JhbmdlX2dldF9zdGFydF9jb250YWluZXIoV2ViS2l0RE9NUmFuZ2Uq
IHNlbGYsIEdFcnJvcioqIGVycm9yKTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVy
bnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGds
b25nCiB3ZWJraXRfZG9tX3JhbmdlX2dldF9zdGFydF9vZmZzZXQoV2ViS2l0RE9NUmFuZ2UqIHNl
bGYsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0zNTMsOCArNDE5LDEwIEBAIHdlYmtpdF9k
b21fcmFuZ2VfZ2V0X3N0YXJ0X29mZnNldChXZWJLaXRET01SYW5nZSogc2VsZiwgR0Vycm9yKiog
ZXJyb3IpOwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5v
bmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dF
QktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX3JhbmdlX2dldF9lbmRf
Y29udGFpbmVyKFdlYktpdERPTVJhbmdlKiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpA
QCAtMzYzLDggKzQzMSwxMCBAQCB3ZWJraXRfZG9tX3JhbmdlX2dldF9lbmRfY29udGFpbmVyKFdl
YktpdERPTVJhbmdlKiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAgKiBAZXJyb3I6ICNHRXJyb3IK
ICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRf
REVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9yYW5nZV9nZXRfZW5kX29mZnNldChXZWJLaXRE
T01SYW5nZSogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTM3Myw4ICs0NDMsMTAg
QEAgd2Via2l0X2RvbV9yYW5nZV9nZXRfZW5kX29mZnNldChXZWJLaXRET01SYW5nZSogc2VsZiwg
R0Vycm9yKiogZXJyb3IpOwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogQSAj
Z2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jv
b2xlYW4KIHdlYmtpdF9kb21fcmFuZ2VfZ2V0X2NvbGxhcHNlZChXZWJLaXRET01SYW5nZSogc2Vs
ZiwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTM4Myw4ICs0NTUsMTAgQEAgd2Via2l0X2Rv
bV9yYW5nZV9nZXRfY29sbGFwc2VkKFdlYktpdERPTVJhbmdlKiBzZWxmLCBHRXJyb3IqKiBlcnJv
cik7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6
IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lU
X0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fcmFuZ2VfZ2V0X2NvbW1vbl9h
bmNlc3Rvcl9jb250YWluZXIoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIEdFcnJvcioqIGVycm9yKTsK
IAogLyoqCkBAIC0zOTIsOCArNDY2LDEwIEBAIHdlYmtpdF9kb21fcmFuZ2VfZ2V0X2NvbW1vbl9h
bmNlc3Rvcl9jb250YWluZXIoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIEdFcnJvcioqIGVyCiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NUmFuZ2UKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX3Jh
bmdlX2dldF90ZXh0KFdlYktpdERPTVJhbmdlKiBzZWxmKTsKIAogLyoqCkBAIC00MDMsOCArNDc5
LDEwIEBAIHdlYmtpdF9kb21fcmFuZ2VfZ2V0X3RleHQoV2ViS2l0RE9NUmFuZ2UqIHNlbGYpOwog
ICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX3JhbmdlX2V4cGFuZChXZWJL
aXRET01SYW5nZSogc2VsZiwgY29uc3QgZ2NoYXIqIHVuaXQsIEdFcnJvcioqIGVycm9yKTsKIAog
R19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01TdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01TdHlsZVNo
ZWV0LmNwcAppbmRleCA0NDMyYTQ5OGM4ZC4uZWIyNDA1ODA3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01T
dHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NU3R5bGVTaGVldC5jcHAKQEAgLTM5LDYgKzM5LDggQEAg
dHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTVN0eWxlU2hlZXRQcml2YXRlIHsKICAgICBSZWZQdHI8
V2ViQ29yZTo6U3R5bGVTaGVldD4gY29yZU9iamVjdDsKIH0gV2ViS2l0RE9NU3R5bGVTaGVldFBy
aXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogV2ViS2l0RE9NU3R5bGVTaGVldCoga2l0KFdlYkNvcmU6OlN0eWxlU2hlZXQq
IG9iaikKQEAgLTMwMywzICszMDUsNCBAQCBXZWJLaXRET01NZWRpYUxpc3QqIHdlYmtpdF9kb21f
c3R5bGVfc2hlZXRfZ2V0X21lZGlhKFdlYktpdERPTVN0eWxlU2hlZXQqIHNlbGYpCiAgICAgcmV0
dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOwogfQogCitHX0dOVUNfRU5EX0lH
Tk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NU3R5bGVTaGVldC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVN0
eWxlU2hlZXQuaAppbmRleCAzZDgyNTEyZDlhNy4uZDZkMjA0MjMwYjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01TdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVN0eWxlU2hlZXQuaApAQCAtNDUsNyArNDUsNyBAQCBz
dHJ1Y3QgX1dlYktpdERPTVN0eWxlU2hlZXRDbGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xh
c3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FU
RUQgR1R5cGUKIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpA
QCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9zdHlsZV9zaGVldF9nZXRfdHlwZSh2b2lkKTsK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01TdHlsZVNoZWV0CiAgKgogICogUmV0dXJuczogQSAjZ2No
YXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Vi
a2l0X2RvbV9zdHlsZV9zaGVldF9nZXRfY29udGVudF90eXBlKFdlYktpdERPTVN0eWxlU2hlZXQq
IHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRf
Z2V0X2NvbnRlbnRfdHlwZShXZWJLaXRET01TdHlsZVNoZWV0KiBzZWxmKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01TdHlsZVNoZWV0CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9k
b21fc3R5bGVfc2hlZXRfZ2V0X2Rpc2FibGVkKFdlYktpdERPTVN0eWxlU2hlZXQqIHNlbGYpOwog
CiAvKioKQEAgLTcxLDggKzc1LDEwIEBAIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfZ2V0X2Rpc2Fi
bGVkKFdlYktpdERPTVN0eWxlU2hlZXQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTVN0
eWxlU2hlZXQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9zdHlsZV9zaGVldF9zZXRfZGlz
YWJsZWQoV2ViS2l0RE9NU3R5bGVTaGVldCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioK
QEAgLTgwLDggKzg2LDEwIEBAIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfc2V0X2Rpc2FibGVkKFdl
YktpdERPTVN0eWxlU2hlZXQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01TdHlsZVNoZWV0CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNX
ZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBS
RUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX3N0eWxlX3NoZWV0X2dldF9vd25lcl9u
b2RlKFdlYktpdERPTVN0eWxlU2hlZXQqIHNlbGYpOwogCiAvKioKQEAgLTg5LDggKzk3LDEwIEBA
IHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfZ2V0X293bmVyX25vZGUoV2ViS2l0RE9NU3R5bGVTaGVl
dCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NU3R5bGVTaGVldAogICoKICAqIFJldHVy
bnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NU3R5bGVTaGVldAorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIFdlYktpdERPTVN0eWxlU2hlZXQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01TdHls
ZVNoZWV0Kgogd2Via2l0X2RvbV9zdHlsZV9zaGVldF9nZXRfcGFyZW50X3N0eWxlX3NoZWV0KFdl
YktpdERPTVN0eWxlU2hlZXQqIHNlbGYpOwogCiAvKioKQEAgLTk4LDggKzEwOCwxMCBAQCB3ZWJr
aXRfZG9tX3N0eWxlX3NoZWV0X2dldF9wYXJlbnRfc3R5bGVfc2hlZXQoV2ViS2l0RE9NU3R5bGVT
aGVldCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NU3R5bGVTaGVldAogICoKICAqIFJl
dHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRF
RCBnY2hhcioKIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfZ2V0X2hyZWYoV2ViS2l0RE9NU3R5bGVT
aGVldCogc2VsZik7CiAKIC8qKgpAQCAtMTA3LDggKzExOSwxMCBAQCB3ZWJraXRfZG9tX3N0eWxl
X3NoZWV0X2dldF9ocmVmKFdlYktpdERPTVN0eWxlU2hlZXQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTVN0eWxlU2hlZXQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX3N0eWxl
X3NoZWV0X2dldF90aXRsZShXZWJLaXRET01TdHlsZVNoZWV0KiBzZWxmKTsKIAogLyoqCkBAIC0x
MTYsOCArMTMwLDEwIEBAIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfZ2V0X3RpdGxlKFdlYktpdERP
TVN0eWxlU2hlZXQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTVN0eWxlU2hlZXQKICAq
CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTU1lZGlhTGlzdAorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIFdlYktpdERPTU1lZGlhTGlzdCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktp
dERPTU1lZGlhTGlzdCoKIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfZ2V0X21lZGlhKFdlYktpdERP
TVN0eWxlU2hlZXQqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVN0eWxl
U2hlZXRMaXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01TdHlsZVNoZWV0TGlzdC5jcHAKaW5kZXggZGFmODhhMmVkNjYu
LjYxZDhkYjY5NjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NU3R5bGVTaGVldExpc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01TdHlsZVNoZWV0TGlzdC5jcHAKQEAgLTM4LDYgKzM4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dl
YktpdERPTVN0eWxlU2hlZXRMaXN0UHJpdmF0ZSB7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlN0eWxl
U2hlZXRMaXN0PiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01TdHlsZVNoZWV0TGlzdFByaXZhdGU7
CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogV2ViS2l0RE9NU3R5bGVTaGVldExpc3QqIGtpdChXZWJDb3JlOjpTdHlsZVNoZWV0TGlz
dCogb2JqKQpAQCAtMTUwLDMgKzE1Miw0IEBAIGd1bG9uZyB3ZWJraXRfZG9tX3N0eWxlX3NoZWV0
X2xpc3RfZ2V0X2xlbmd0aChXZWJLaXRET01TdHlsZVNoZWV0TGlzdCogc2VsZikKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NU3R5bGVTaGVldExpc3QuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01TdHlsZVNoZWV0TGlzdC5oCmluZGV4IDFi
ZTlkYTI0Mzk3Li5kNjQwNDc1YzA3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVN0eWxlU2hlZXRMaXN0LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTVN0eWxlU2hlZXRMaXN0LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJL
aXRET01TdHlsZVNoZWV0TGlzdENsYXNzIHsKICAgICBXZWJLaXRET01PYmplY3RDbGFzcyBwYXJl
bnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlw
ZQogd2Via2l0X2RvbV9zdHlsZV9zaGVldF9saXN0X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAg
LTU0LDggKzU0LDEwIEBAIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfbGlzdF9nZXRfdHlwZSh2b2lk
KTsKICAqIEBpbmRleDogQSAjZ3Vsb25nCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwp
OiBBICNXZWJLaXRET01TdHlsZVNoZWV0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NU3R5bGVT
aGVldCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTVN0eWxlU2hlZXQqCiB3ZWJraXRfZG9t
X3N0eWxlX3NoZWV0X2xpc3RfaXRlbShXZWJLaXRET01TdHlsZVNoZWV0TGlzdCogc2VsZiwgZ3Vs
b25nIGluZGV4KTsKIAogLyoqCkBAIC02Myw4ICs2NSwxMCBAQCB3ZWJraXRfZG9tX3N0eWxlX3No
ZWV0X2xpc3RfaXRlbShXZWJLaXRET01TdHlsZVNoZWV0TGlzdCogc2VsZiwgZ3Vsb25nIGluZGV4
KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01TdHlsZVNoZWV0TGlzdAogICoKICAqIFJldHVybnM6
IEEgI2d1bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGd1bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vs
b25nCiB3ZWJraXRfZG9tX3N0eWxlX3NoZWV0X2xpc3RfZ2V0X2xlbmd0aChXZWJLaXRET01TdHls
ZVNoZWV0TGlzdCogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVGV4dC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NVGV4dC5jcHAKaW5kZXggZGI1ODQ0OTUyZWUuLjk2MjA4N2EyNmMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVRleHQuY3BwCkBAIC0zNSw2ICszNSw4IEBACiAj
aW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVD
X0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJL
aXRET01UZXh0KiBraXQoV2ViQ29yZTo6VGV4dCogb2JqKQpAQCAtMTU3LDMgKzE1OSw0IEBAIGdj
aGFyKiB3ZWJraXRfZG9tX3RleHRfZ2V0X3dob2xlX3RleHQoV2ViS2l0RE9NVGV4dCogc2VsZikK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NVGV4dC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVRleHQuaAppbmRleCA1NGU2MmQ1ZTBkZC4u
NTVmOWY0OWRkYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01UZXh0LmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVRleHQuaApAQCAt
NDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTVRleHRDbGFzcyB7CiAgICAgV2ViS2l0RE9N
Q2hhcmFjdGVyRGF0YUNsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUK
K1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX3RleHRfZ2V0X3R5cGUodm9pZCk7
CiAKIC8qKgpAQCAtNTUsOCArNTUsMTAgQEAgd2Via2l0X2RvbV90ZXh0X2dldF90eXBlKHZvaWQp
OwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBB
ICNXZWJLaXRET01UZXh0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NVGV4dCoKK1dFQktJVF9E
RVBSRUNBVEVEIFdlYktpdERPTVRleHQqCiB3ZWJraXRfZG9tX3RleHRfc3BsaXRfdGV4dChXZWJL
aXRET01UZXh0KiBzZWxmLCBndWxvbmcgb2Zmc2V0LCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpA
QCAtNjQsOCArNjYsMTAgQEAgd2Via2l0X2RvbV90ZXh0X3NwbGl0X3RleHQoV2ViS2l0RE9NVGV4
dCogc2VsZiwgZ3Vsb25nIG9mZnNldCwgR0Vycm9yKiogZXJyb3IpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTVRleHQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX3RleHRfZ2V0X3dob2xl
X3RleHQoV2ViS2l0RE9NVGV4dCogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NVHJlZVdhbGtlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVHJlZVdhbGtlci5jcHAKaW5kZXggMGEzYWY1ZDEyYTgu
Ljg2NzYzOTE0NmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVHJlZVdhbGtlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVRy
ZWVXYWxrZXIuY3BwCkBAIC0zOSw2ICszOSw4IEBAIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01U
cmVlV2Fsa2VyUHJpdmF0ZSB7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlRyZWVXYWxrZXI+IGNvcmVP
YmplY3Q7CiB9IFdlYktpdERPTVRyZWVXYWxrZXJQcml2YXRlOwogCitHX0dOVUNfQkVHSU5fSUdO
T1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTVRyZWVX
YWxrZXIqIGtpdChXZWJDb3JlOjpUcmVlV2Fsa2VyKiBvYmopCkBAIC0zMjAsMyArMzIyLDQgQEAg
dm9pZCB3ZWJraXRfZG9tX3RyZWVfd2Fsa2VyX3NldF9jdXJyZW50X25vZGUoV2ViS2l0RE9NVHJl
ZVdhbGtlciogc2VsZiwgV2ViS2l0RE8KICAgICBpdGVtLT5zZXRDdXJyZW50Tm9kZSgqY29udmVy
dGVkVmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NVHJlZVdhbGtlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVRyZWVXYWxrZXIuaAppbmRleCA4NmY5NjAxMjU1
NC4uMDU3MDhkN2ZjNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01UcmVlV2Fsa2VyLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVRy
ZWVXYWxrZXIuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTVRyZWVXYWxrZXJD
bGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VC
S0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fdHJlZV93
YWxrZXJfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2Rv
bV90cmVlX3dhbGtlcl9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01UcmVl
V2Fsa2VyCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2Rl
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktp
dERPTU5vZGUqCiB3ZWJraXRfZG9tX3RyZWVfd2Fsa2VyX3BhcmVudF9ub2RlKFdlYktpdERPTVRy
ZWVXYWxrZXIqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21fdHJl
ZV93YWxrZXJfcGFyZW50X25vZGUoV2ViS2l0RE9NVHJlZVdhbGtlciogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NVHJlZVdhbGtlcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25l
KTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJL
SVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV90cmVlX3dhbGtlcl9maXJz
dF9jaGlsZChXZWJLaXRET01UcmVlV2Fsa2VyKiBzZWxmKTsKIAogLyoqCkBAIC03MSw4ICs3NSwx
MCBAQCB3ZWJraXRfZG9tX3RyZWVfd2Fsa2VyX2ZpcnN0X2NoaWxkKFdlYktpdERPTVRyZWVXYWxr
ZXIqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTVRyZWVXYWxrZXIKICAqCiAgKiBSZXR1
cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBX
ZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9k
b21fdHJlZV93YWxrZXJfbGFzdF9jaGlsZChXZWJLaXRET01UcmVlV2Fsa2VyKiBzZWxmKTsKIAog
LyoqCkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX3RyZWVfd2Fsa2VyX2xhc3RfY2hpbGQo
V2ViS2l0RE9NVHJlZVdhbGtlciogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVHJlZVdh
bGtlcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRE
T01Ob2RlKgogd2Via2l0X2RvbV90cmVlX3dhbGtlcl9wcmV2aW91c19zaWJsaW5nKFdlYktpdERP
TVRyZWVXYWxrZXIqIHNlbGYpOwogCiAvKioKQEAgLTg5LDggKzk3LDEwIEBAIHdlYmtpdF9kb21f
dHJlZV93YWxrZXJfcHJldmlvdXNfc2libGluZyhXZWJLaXRET01UcmVlV2Fsa2VyKiBzZWxmKTsK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01UcmVlV2Fsa2VyCiAgKgogICogUmV0dXJuczogKHRyYW5z
ZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9k
ZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX3RyZWVfd2Fs
a2VyX25leHRfc2libGluZyhXZWJLaXRET01UcmVlV2Fsa2VyKiBzZWxmKTsKIAogLyoqCkBAIC05
OCw4ICsxMDgsMTAgQEAgd2Via2l0X2RvbV90cmVlX3dhbGtlcl9uZXh0X3NpYmxpbmcoV2ViS2l0
RE9NVHJlZVdhbGtlciogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVHJlZVdhbGtlcgog
ICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2Rl
Kgogd2Via2l0X2RvbV90cmVlX3dhbGtlcl9wcmV2aW91c19ub2RlKFdlYktpdERPTVRyZWVXYWxr
ZXIqIHNlbGYpOwogCiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Via2l0X2RvbV90cmVlX3dh
bGtlcl9wcmV2aW91c19ub2RlKFdlYktpdERPTVRyZWVXYWxrZXIqIHNlbGYpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTVRyZWVXYWxrZXIKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6
IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lU
X0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fdHJlZV93YWxrZXJfbmV4dF9u
b2RlKFdlYktpdERPTVRyZWVXYWxrZXIqIHNlbGYpOwogCiAvKioKQEAgLTExNiw4ICsxMzAsMTAg
QEAgd2Via2l0X2RvbV90cmVlX3dhbGtlcl9uZXh0X25vZGUoV2ViS2l0RE9NVHJlZVdhbGtlciog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVHJlZVdhbGtlcgogICoKICAqIFJldHVybnM6
ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktp
dERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV90
cmVlX3dhbGtlcl9nZXRfcm9vdChXZWJLaXRET01UcmVlV2Fsa2VyKiBzZWxmKTsKIAogLyoqCkBA
IC0xMjUsOCArMTQxLDEwIEBAIHdlYmtpdF9kb21fdHJlZV93YWxrZXJfZ2V0X3Jvb3QoV2ViS2l0
RE9NVHJlZVdhbGtlciogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVHJlZVdhbGtlcgog
ICoKICAqIFJldHVybnM6IEEgI2d1bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGd1bG9uZworV0VCS0lU
X0RFUFJFQ0FURUQgZ3Vsb25nCiB3ZWJraXRfZG9tX3RyZWVfd2Fsa2VyX2dldF93aGF0X3RvX3No
b3coV2ViS2l0RE9NVHJlZVdhbGtlciogc2VsZik7CiAKIC8qKgpAQCAtMTM0LDggKzE1MiwxMCBA
QCB3ZWJraXRfZG9tX3RyZWVfd2Fsa2VyX2dldF93aGF0X3RvX3Nob3coV2ViS2l0RE9NVHJlZVdh
bGtlciogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVHJlZVdhbGtlcgogICoKICAqIFJl
dHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NTm9kZUZpbHRlcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIFdlYktpdERPTU5vZGVGaWx0ZXIqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01O
b2RlRmlsdGVyKgogd2Via2l0X2RvbV90cmVlX3dhbGtlcl9nZXRfZmlsdGVyKFdlYktpdERPTVRy
ZWVXYWxrZXIqIHNlbGYpOwogCiAvKioKQEAgLTE0Myw4ICsxNjMsMTAgQEAgd2Via2l0X2RvbV90
cmVlX3dhbGtlcl9nZXRfZmlsdGVyKFdlYktpdERPTVRyZWVXYWxrZXIqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTVRyZWVXYWxrZXIKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9u
ZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VC
S0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fdHJlZV93YWxrZXJfZ2V0
X2N1cnJlbnRfbm9kZShXZWJLaXRET01UcmVlV2Fsa2VyKiBzZWxmKTsKIAogLyoqCkBAIC0xNTMs
OCArMTc1LDEwIEBAIHdlYmtpdF9kb21fdHJlZV93YWxrZXJfZ2V0X2N1cnJlbnRfbm9kZShXZWJL
aXRET01UcmVlV2Fsa2VyKiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NTm9kZQogICog
QGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21fdHJlZV93YWxrZXJfc2V0X2N1cnJlbnRfbm9kZShXZWJLaXRE
T01UcmVlV2Fsa2VyKiBzZWxmLCBXZWJLaXRET01Ob2RlKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3Ip
OwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVVJRXZlbnQuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVVJRXZl
bnQuY3BwCmluZGV4IGIwMDhjNGYwNjY0Li45YWUwMTIzOWE4MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVVJ
RXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01VSUV2ZW50LmNwcApAQCAtMzQsNiArMzQsOCBAQAogI2luY2x1
ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJ
Tl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9N
VUlFdmVudCoga2l0KFdlYkNvcmU6OlVJRXZlbnQqIG9iaikKQEAgLTI3NywzICsyNzksNCBAQCBn
bG9uZyB3ZWJraXRfZG9tX3VpX2V2ZW50X2dldF9wYWdlX3koV2ViS2l0RE9NVUlFdmVudCogc2Vs
ZikKICAgICBnbG9uZyByZXN1bHQgPSBpdGVtLT5wYWdlWSgpOwogICAgIHJldHVybiByZXN1bHQ7
CiB9CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVUlF
dmVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTVVJRXZlbnQuaAppbmRleCA3ZjAzZTY1ODRhZS4uN2Q5OGNlMThkYjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01VSUV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVVJRXZlbnQuaApAQCAtNDUsNyArNDUs
NyBAQCBzdHJ1Y3QgX1dlYktpdERPTVVJRXZlbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NRXZlbnRD
bGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVD
QVRFRCBHVHlwZQogd2Via2l0X2RvbV91aV9ldmVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBA
IC01Nyw4ICs1NywxMCBAQCB3ZWJraXRfZG9tX3VpX2V2ZW50X2dldF90eXBlKHZvaWQpOwogICog
QHZpZXc6IEEgI1dlYktpdERPTURPTVdpbmRvdwogICogQGRldGFpbDogQSAjZ2xvbmcKICAqCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV91
aV9ldmVudF9pbml0X3VpX2V2ZW50KFdlYktpdERPTVVJRXZlbnQqIHNlbGYsIGNvbnN0IGdjaGFy
KiB0eXBlLCBnYm9vbGVhbiBjYW5CdWJibGUsIGdib29sZWFuIGNhbmNlbGFibGUsIFdlYktpdERP
TURPTVdpbmRvdyogdmlldywgZ2xvbmcgZGV0YWlsKTsKIAogLyoqCkBAIC02Niw4ICs2OCwxMCBA
QCB3ZWJraXRfZG9tX3VpX2V2ZW50X2luaXRfdWlfZXZlbnQoV2ViS2l0RE9NVUlFdmVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIHR5cGUsIGdibwogICogQHNlbGY6IEEgI1dlYktpdERPTVVJRXZlbnQK
ICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTURPTVdpbmRvdwor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIFdlYktpdERPTURPTVdpbmRvdyoKK1dFQktJVF9ERVBSRUNBVEVEIFdl
YktpdERPTURPTVdpbmRvdyoKIHdlYmtpdF9kb21fdWlfZXZlbnRfZ2V0X3ZpZXcoV2ViS2l0RE9N
VUlFdmVudCogc2VsZik7CiAKIC8qKgpAQCAtNzUsOCArNzksMTAgQEAgd2Via2l0X2RvbV91aV9l
dmVudF9nZXRfdmlldyhXZWJLaXRET01VSUV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01VSUV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fdWlfZXZlbnRfZ2V0X2Rl
dGFpbChXZWJLaXRET01VSUV2ZW50KiBzZWxmKTsKIAogLyoqCkBAIC04NCw4ICs5MCwxMCBAQCB3
ZWJraXRfZG9tX3VpX2V2ZW50X2dldF9kZXRhaWwoV2ViS2l0RE9NVUlFdmVudCogc2VsZik7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NVUlFdmVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9t
X3VpX2V2ZW50X2dldF9rZXlfY29kZShXZWJLaXRET01VSUV2ZW50KiBzZWxmKTsKIAogLyoqCkBA
IC05Myw4ICsxMDEsMTAgQEAgd2Via2l0X2RvbV91aV9ldmVudF9nZXRfa2V5X2NvZGUoV2ViS2l0
RE9NVUlFdmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVUlFdmVudAogICoKICAq
IFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNB
VEVEIGdsb25nCiB3ZWJraXRfZG9tX3VpX2V2ZW50X2dldF9jaGFyX2NvZGUoV2ViS2l0RE9NVUlF
dmVudCogc2VsZik7CiAKIC8qKgpAQCAtMTAyLDggKzExMiwxMCBAQCB3ZWJraXRfZG9tX3VpX2V2
ZW50X2dldF9jaGFyX2NvZGUoV2ViS2l0RE9NVUlFdmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NVUlFdmVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX3VpX2V2ZW50X2dl
dF9sYXllcl94KFdlYktpdERPTVVJRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTExMSw4ICsxMjMs
MTAgQEAgd2Via2l0X2RvbV91aV9ldmVudF9nZXRfbGF5ZXJfeChXZWJLaXRET01VSUV2ZW50KiBz
ZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01VSUV2ZW50CiAgKgogICogUmV0dXJuczogQSAj
Z2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdl
YmtpdF9kb21fdWlfZXZlbnRfZ2V0X2xheWVyX3koV2ViS2l0RE9NVUlFdmVudCogc2VsZik7CiAK
IC8qKgpAQCAtMTIwLDggKzEzNCwxMCBAQCB3ZWJraXRfZG9tX3VpX2V2ZW50X2dldF9sYXllcl95
KFdlYktpdERPTVVJRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTVVJRXZlbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRf
REVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV91aV9ldmVudF9nZXRfcGFnZV94KFdlYktpdERP
TVVJRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTEyOSw4ICsxNDUsMTAgQEAgd2Via2l0X2RvbV91
aV9ldmVudF9nZXRfcGFnZV94KFdlYktpdERPTVVJRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTVVJRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV91aV9ldmVudF9n
ZXRfcGFnZV95KFdlYktpdERPTVVJRXZlbnQqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTVdoZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVdoZWVsRXZlbnQuY3BwCmluZGV4IDVjNGEw
OWE4Mzk3Li4wZTFiYTZkYTU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVdoZWVsRXZlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01XaGVlbEV2ZW50LmNwcApAQCAtMzMsNiArMzMsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQ
UkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NV2hlZWxFdmVudCog
a2l0KFdlYkNvcmU6OldoZWVsRXZlbnQqIG9iaikKQEAgLTE1OSwzICsxNjEsNCBAQCBnbG9uZyB3
ZWJraXRfZG9tX3doZWVsX2V2ZW50X2dldF93aGVlbF9kZWx0YShXZWJLaXRET01XaGVlbEV2ZW50
KiBzZWxmKQogICAgIGdsb25nIHJlc3VsdCA9IGl0ZW0tPndoZWVsRGVsdGEoKTsKICAgICByZXR1
cm4gcmVzdWx0OwogfQorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTVdoZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01XaGVlbEV2ZW50LmgKaW5kZXggZmEyZjQ4NWEwZjQu
LjEyODUyZjUzZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NV2hlZWxFdmVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01XaGVl
bEV2ZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01XaGVlbEV2ZW50Q2xh
c3MgewogICAgIFdlYktpdERPTU1vdXNlRXZlbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1X
RUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV93aGVl
bF9ldmVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC02Myw4ICs2MywxMCBAQCB3ZWJraXRf
ZG9tX3doZWVsX2V2ZW50X2dldF90eXBlKHZvaWQpOwogICogQHNoaWZ0S2V5OiBBICNnYm9vbGVh
bgogICogQG1ldGFLZXk6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fd2hlZWxfZXZlbnRfaW5pdF93aGVlbF9l
dmVudChXZWJLaXRET01XaGVlbEV2ZW50KiBzZWxmLCBnbG9uZyB3aGVlbERlbHRhWCwgZ2xvbmcg
d2hlZWxEZWx0YVksIFdlYktpdERPTURPTVdpbmRvdyogdmlldywgZ2xvbmcgc2NyZWVuWCwgZ2xv
bmcgc2NyZWVuWSwgZ2xvbmcgY2xpZW50WCwgZ2xvbmcgY2xpZW50WSwgZ2Jvb2xlYW4gY3RybEtl
eSwgZ2Jvb2xlYW4gYWx0S2V5LCBnYm9vbGVhbiBzaGlmdEtleSwgZ2Jvb2xlYW4gbWV0YUtleSk7
CiAKIC8qKgpAQCAtNzIsOCArNzQsMTAgQEAgd2Via2l0X2RvbV93aGVlbF9ldmVudF9pbml0X3do
ZWVsX2V2ZW50KFdlYktpdERPTVdoZWVsRXZlbnQqIHNlbGYsIGdsb25nIHdoZWVsRGUKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01XaGVlbEV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21f
d2hlZWxfZXZlbnRfZ2V0X3doZWVsX2RlbHRhX3goV2ViS2l0RE9NV2hlZWxFdmVudCogc2VsZik7
CiAKIC8qKgpAQCAtODEsOCArODUsMTAgQEAgd2Via2l0X2RvbV93aGVlbF9ldmVudF9nZXRfd2hl
ZWxfZGVsdGFfeChXZWJLaXRET01XaGVlbEV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01XaGVlbEV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fd2hlZWxfZXZlbnRf
Z2V0X3doZWVsX2RlbHRhX3koV2ViS2l0RE9NV2hlZWxFdmVudCogc2VsZik7CiAKIC8qKgpAQCAt
OTAsOCArOTYsMTAgQEAgd2Via2l0X2RvbV93aGVlbF9ldmVudF9nZXRfd2hlZWxfZGVsdGFfeShX
ZWJLaXRET01XaGVlbEV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01XaGVlbEV2
ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VC
S0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fd2hlZWxfZXZlbnRfZ2V0X3doZWVsX2Rl
bHRhKFdlYktpdERPTVdoZWVsRXZlbnQqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTVhQYXRoRXhwcmVzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhFeHByZXNzaW9uLmNwcAppbmRl
eCAxNDZhOTZhMzdiMC4uOTYyYjZlNDI2NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01YUGF0aEV4cHJlc3Np
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01YUGF0aEV4cHJlc3Npb24uY3BwCkBAIC0zOSw2ICszOSw4IEBAIHR5
cGVkZWYgc3RydWN0IF9XZWJLaXRET01YUGF0aEV4cHJlc3Npb25Qcml2YXRlIHsKICAgICBSZWZQ
dHI8V2ViQ29yZTo6WFBhdGhFeHByZXNzaW9uPiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01YUGF0
aEV4cHJlc3Npb25Qcml2YXRlOwogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsK
KwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTVhQYXRoRXhwcmVzc2lvbioga2l0KFdl
YkNvcmU6OlhQYXRoRXhwcmVzc2lvbiogb2JqKQpAQCAtMTIxLDMgKzEyMyw0IEBAIFdlYktpdERP
TVhQYXRoUmVzdWx0KiB3ZWJraXRfZG9tX3hwYXRoX2V4cHJlc3Npb25fZXZhbHVhdGUoV2ViS2l0
RE9NWFBhdGhFeHByZXNzCiAgICAgcmV0dXJuIFdlYktpdDo6a2l0KHJlc3VsdC5yZWxlYXNlUmV0
dXJuVmFsdWUoKS5wdHIoKSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01YUGF0aEV4cHJlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01YUGF0aEV4cHJlc3Npb24u
aAppbmRleCBlZDdkM2UwMzViMS4uYjFjOTA3NTYyNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01YUGF0aEV4
cHJlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhFeHByZXNzaW9uLmgKQEAgLTQ1LDcgKzQ1LDcgQEAg
c3RydWN0IF9XZWJLaXRET01YUGF0aEV4cHJlc3Npb25DbGFzcyB7CiAgICAgV2ViS2l0RE9NT2Jq
ZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RF
UFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21feHBhdGhfZXhwcmVzc2lvbl9nZXRfdHlwZSh2b2lk
KTsKIAogLyoqCkBAIC01Nyw4ICs1NywxMCBAQCB3ZWJraXRfZG9tX3hwYXRoX2V4cHJlc3Npb25f
Z2V0X3R5cGUodm9pZCk7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJh
bnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTVhQYXRoUmVzdWx0CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2Vi
S2l0RE9NWFBhdGhSZXN1bHQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01YUGF0aFJlc3Vs
dCoKIHdlYmtpdF9kb21feHBhdGhfZXhwcmVzc2lvbl9ldmFsdWF0ZShXZWJLaXRET01YUGF0aEV4
cHJlc3Npb24qIHNlbGYsIFdlYktpdERPTU5vZGUqIGNvbnRleHROb2RlLCBndXNob3J0IHR5cGUs
IFdlYktpdERPTVhQYXRoUmVzdWx0KiBpblJlc3VsdCwgR0Vycm9yKiogZXJyb3IpOwogCiBHX0VO
RF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVhQYXRoTlNSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhO
U1Jlc29sdmVyLmNwcAppbmRleCBjNGJlMzlhMDhkZS4uZmU5NzI5ODAxZjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01YUGF0aE5TUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01YUGF0aE5TUmVzb2x2ZXIuY3BwCkBA
IC0yOCw2ICsyOCw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIHR5cGVkZWYg
V2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVySWZhY2UgV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVySW50
ZXJmYWNlOwogCiBHX0RFRklORV9JTlRFUkZBQ0UoV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyLCB3
ZWJraXRfZG9tX3hwYXRoX25zX3Jlc29sdmVyLCBHX1RZUEVfT0JKRUNUKQpAQCAtMTM4LDMgKzE0
MCw0IEBAIFdlYkNvcmU6OlhQYXRoTlNSZXNvbHZlciogY29yZShXZWJLaXRET01OYXRpdmVYUGF0
aE5TUmVzb2x2ZXIqIHhQYXRoTlNSZXNvbHZlcikKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhO
U1Jlc29sdmVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyLmgKaW5kZXggMmMxNjQ2ZDdkZWMuLjFm
MjdiOTJiMDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVhQ
YXRoTlNSZXNvbHZlci5oCkBAIC00NCw3ICs0NCw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NWFBhdGhO
U1Jlc29sdmVySWZhY2UgewogfTsKIAogCi1XRUJLSVRfQVBJIEdUeXBlIHdlYmtpdF9kb21feHBh
dGhfbnNfcmVzb2x2ZXJfZ2V0X3R5cGUodm9pZCkgR19HTlVDX0NPTlNUOworV0VCS0lUX0RFUFJF
Q0FURUQgR1R5cGUgd2Via2l0X2RvbV94cGF0aF9uc19yZXNvbHZlcl9nZXRfdHlwZSh2b2lkKSBH
X0dOVUNfQ09OU1Q7CiAKIC8qKgogICogd2Via2l0X2RvbV94cGF0aF9uc19yZXNvbHZlcl9sb29r
dXBfbmFtZXNwYWNlX3VyaToKQEAgLTUyLDggKzUyLDEwIEBAIFdFQktJVF9BUEkgR1R5cGUgd2Vi
a2l0X2RvbV94cGF0aF9uc19yZXNvbHZlcl9nZXRfdHlwZSh2b2lkKSBHX0dOVUNfQ09OU1Q7CiAg
KiBAcHJlZml4OiBUaGUgcHJlZml4IHRvIGxvb2t1cAogICoKICAqIFJldHVybnM6ICh0cmFuc2Zl
ciBmdWxsKTogYSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnY2hhciAqd2Via2l0X2RvbV94cGF0
aF9uc19yZXNvbHZlcl9sb29rdXBfbmFtZXNwYWNlX3VyaShXZWJLaXRET01YUGF0aE5TUmVzb2x2
ZXIgKnJlc29sdmVyLAorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIgKndlYmtpdF9kb21feHBhdGhf
bnNfcmVzb2x2ZXJfbG9va3VwX25hbWVzcGFjZV91cmkoV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVy
ICpyZXNvbHZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgICpwcmVmaXgp
OwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVhQYXRoUmVzdWx0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Y
UGF0aFJlc3VsdC5jcHAKaW5kZXggYWQzNmI3NWQxNjYuLjJjMDZhOTVmYWFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NWFBhdGhSZXN1bHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01YUGF0aFJlc3VsdC5jcHAKQEAgLTM4LDYg
KzM4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTVhQYXRoUmVzdWx0UHJpdmF0ZSB7CiAg
ICAgUmVmUHRyPFdlYkNvcmU6OlhQYXRoUmVzdWx0PiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01Y
UGF0aFJlc3VsdFByaXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwor
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NWFBhdGhSZXN1bHQqIGtpdChXZWJDb3Jl
OjpYUGF0aFJlc3VsdCogb2JqKQpAQCAtMzM1LDMgKzMzNyw0IEBAIGd1bG9uZyB3ZWJraXRfZG9t
X3hwYXRoX3Jlc3VsdF9nZXRfc25hcHNob3RfbGVuZ3RoKFdlYktpdERPTVhQYXRoUmVzdWx0KiBz
ZWxmLCBHCiAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKIH0KIAorR19H
TlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVhQYXRoUmVzdWx0
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NWFBhdGhSZXN1bHQuaAppbmRleCA3NzAzZjg2MTkxZi4uZjk4NTAyODgyMTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01YUGF0aFJlc3VsdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01YUGF0aFJlc3VsdC5oCkBAIC0z
OSw1MSArMzksNzEgQEAgR19CRUdJTl9ERUNMUwogCiAvKioKICAqIFdFQktJVF9ET01fWFBBVEhf
UkVTVUxUX0FOWV9UWVBFOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fWFBBVEhfUkVTVUxUX0FO
WV9UWVBFIDAKIAogLyoqCiAgKiBXRUJLSVRfRE9NX1hQQVRIX1JFU1VMVF9OVU1CRVJfVFlQRToK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX1hQQVRIX1JFU1VMVF9OVU1CRVJfVFlQRSAxCiAKIC8q
KgogICogV0VCS0lUX0RPTV9YUEFUSF9SRVNVTFRfU1RSSU5HX1RZUEU6CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUg
V0VCS0lUX0RPTV9YUEFUSF9SRVNVTFRfU1RSSU5HX1RZUEUgMgogCiAvKioKICAqIFdFQktJVF9E
T01fWFBBVEhfUkVTVUxUX0JPT0xFQU5fVFlQRToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX1hQ
QVRIX1JFU1VMVF9CT09MRUFOX1RZUEUgMwogCiAvKioKICAqIFdFQktJVF9ET01fWFBBVEhfUkVT
VUxUX1VOT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZUEU6CisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RP
TV9YUEFUSF9SRVNVTFRfVU5PUkRFUkVEX05PREVfSVRFUkFUT1JfVFlQRSA0CiAKIC8qKgogICog
V0VCS0lUX0RPTV9YUEFUSF9SRVNVTFRfT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZUEU6CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8K
ICNkZWZpbmUgV0VCS0lUX0RPTV9YUEFUSF9SRVNVTFRfT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZ
UEUgNQogCiAvKioKICAqIFdFQktJVF9ET01fWFBBVEhfUkVTVUxUX1VOT1JERVJFRF9OT0RFX1NO
QVBTSE9UX1RZUEU6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9YUEFUSF9SRVNVTFRfVU5PUkRF
UkVEX05PREVfU05BUFNIT1RfVFlQRSA2CiAKIC8qKgogICogV0VCS0lUX0RPTV9YUEFUSF9SRVNV
TFRfT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEU6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9Y
UEFUSF9SRVNVTFRfT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUgNwogCiAvKioKICAqIFdFQktJ
VF9ET01fWFBBVEhfUkVTVUxUX0FOWV9VTk9SREVSRURfTk9ERV9UWVBFOgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5l
IFdFQktJVF9ET01fWFBBVEhfUkVTVUxUX0FOWV9VTk9SREVSRURfTk9ERV9UWVBFIDgKIAogLyoq
CiAgKiBXRUJLSVRfRE9NX1hQQVRIX1JFU1VMVF9GSVJTVF9PUkRFUkVEX05PREVfVFlQRToKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAq
LwogI2RlZmluZSBXRUJLSVRfRE9NX1hQQVRIX1JFU1VMVF9GSVJTVF9PUkRFUkVEX05PREVfVFlQ
RSA5CiAKQEAgLTk1LDcgKzExNSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NWFBhdGhSZXN1bHRDbGFz
cyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lU
X0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21feHBhdGhfcmVz
dWx0X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTEwNCw4ICsxMjQsMTAgQEAgd2Via2l0X2Rv
bV94cGF0aF9yZXN1bHRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAg
KiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdl
YmtpdF9kb21feHBhdGhfcmVzdWx0X2l0ZXJhdGVfbmV4dChXZWJLaXRET01YUGF0aFJlc3VsdCog
c2VsZiwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTExNSw4ICsxMzcsMTAgQEAgd2Via2l0
X2RvbV94cGF0aF9yZXN1bHRfaXRlcmF0ZV9uZXh0KFdlYktpdERPTVhQYXRoUmVzdWx0KiBzZWxm
LCBHRXJyb3IqKiBlcnJvcikKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0
cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERP
TU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV94cGF0
aF9yZXN1bHRfc25hcHNob3RfaXRlbShXZWJLaXRET01YUGF0aFJlc3VsdCogc2VsZiwgZ3Vsb25n
IGluZGV4LCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTI0LDggKzE0OCwxMCBAQCB3ZWJr
aXRfZG9tX3hwYXRoX3Jlc3VsdF9zbmFwc2hvdF9pdGVtKFdlYktpdERPTVhQYXRoUmVzdWx0KiBz
ZWxmLCBndWxvbmcgaW5kZXgsCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NWFBhdGhSZXN1bHQKICAq
CiAgKiBSZXR1cm5zOiBBICNndXNob3J0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ3VzaG9ydAorV0VCS0lU
X0RFUFJFQ0FURUQgZ3VzaG9ydAogd2Via2l0X2RvbV94cGF0aF9yZXN1bHRfZ2V0X3Jlc3VsdF90
eXBlKFdlYktpdERPTVhQYXRoUmVzdWx0KiBzZWxmKTsKIAogLyoqCkBAIC0xMzQsOCArMTYwLDEw
IEBAIHdlYmtpdF9kb21feHBhdGhfcmVzdWx0X2dldF9yZXN1bHRfdHlwZShXZWJLaXRET01YUGF0
aFJlc3VsdCogc2VsZik7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiBBICNn
ZG91YmxlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2RvdWJsZQorV0VCS0lUX0RFUFJFQ0FURUQgZ2RvdWJs
ZQogd2Via2l0X2RvbV94cGF0aF9yZXN1bHRfZ2V0X251bWJlcl92YWx1ZShXZWJLaXRET01YUGF0
aFJlc3VsdCogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTE0NCw4ICsxNzIsMTAg
QEAgd2Via2l0X2RvbV94cGF0aF9yZXN1bHRfZ2V0X251bWJlcl92YWx1ZShXZWJLaXRET01YUGF0
aFJlc3VsdCogc2VsZiwgR0Vycm9yKiogZXIKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJl
dHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRF
RCBnY2hhcioKIHdlYmtpdF9kb21feHBhdGhfcmVzdWx0X2dldF9zdHJpbmdfdmFsdWUoV2ViS2l0
RE9NWFBhdGhSZXN1bHQqIHNlbGYsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xNTQsOCAr
MTg0LDEwIEBAIHdlYmtpdF9kb21feHBhdGhfcmVzdWx0X2dldF9zdHJpbmdfdmFsdWUoV2ViS2l0
RE9NWFBhdGhSZXN1bHQqIHNlbGYsIEdFcnJvcioqIGVyCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAq
CiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJL
SVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV94cGF0aF9yZXN1bHRfZ2V0X2Jvb2xl
YW5fdmFsdWUoV2ViS2l0RE9NWFBhdGhSZXN1bHQqIHNlbGYsIEdFcnJvcioqIGVycm9yKTsKIAog
LyoqCkBAIC0xNjQsOCArMTk2LDEwIEBAIHdlYmtpdF9kb21feHBhdGhfcmVzdWx0X2dldF9ib29s
ZWFuX3ZhbHVlKFdlYktpdERPTVhQYXRoUmVzdWx0KiBzZWxmLCBHRXJyb3IqKiBlCiAgKiBAZXJy
b3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERP
TU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQg
V2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21feHBhdGhfcmVzdWx0X2dldF9zaW5nbGVfbm9kZV92
YWx1ZShXZWJLaXRET01YUGF0aFJlc3VsdCogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioK
QEAgLTE3Myw4ICsyMDcsMTAgQEAgd2Via2l0X2RvbV94cGF0aF9yZXN1bHRfZ2V0X3NpbmdsZV9u
b2RlX3ZhbHVlKFdlYktpdERPTVhQYXRoUmVzdWx0KiBzZWxmLCBHRXJyb3IKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01YUGF0aFJlc3VsdAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRf
ZG9tX3hwYXRoX3Jlc3VsdF9nZXRfaW52YWxpZF9pdGVyYXRvcl9zdGF0ZShXZWJLaXRET01YUGF0
aFJlc3VsdCogc2VsZik7CiAKIC8qKgpAQCAtMTgzLDggKzIxOSwxMCBAQCB3ZWJraXRfZG9tX3hw
YXRoX3Jlc3VsdF9nZXRfaW52YWxpZF9pdGVyYXRvcl9zdGF0ZShXZWJLaXRET01YUGF0aFJlc3Vs
dCogc2VsZik7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiBBICNndWxvbmcK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Via2l0
X2RvbV94cGF0aF9yZXN1bHRfZ2V0X3NuYXBzaG90X2xlbmd0aChXZWJLaXRET01YUGF0aFJlc3Vs
dCogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL2RvY3Mvd2Vi
a2l0ZG9tZ3RrLTQuMC1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vZG9jcy93ZWJraXRkb21ndGstNC4wLXNlY3Rpb25zLnR4
dAppbmRleCA3ODc4NjI0NDE2NS4uMzQzNjdmNzgxODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9kb2NzL3dlYmtpdGRvbWd0
ay00LjAtc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9kb2NzL3dlYmtpdGRvbWd0ay00LjAtc2VjdGlvbnMudHh0CkBA
IC02MDAsNiArNjAwLDEwIEBAIFdlYktpdERPTUVsZW1lbnQKIAogV0VCS0lUX0RPTV9FTEVNRU5U
X0FMTE9XX0tFWUJPQVJEX0lOUFVUCiAKK3dlYmtpdF9kb21fZWxlbWVudF9odG1sX2lucHV0X2Vs
ZW1lbnRfaXNfdXNlcl9lZGl0ZWQKK3dlYmtpdF9kb21fZWxlbWVudF9odG1sX2lucHV0X2VsZW1l
bnRfZ2V0X2F1dG9fZmlsbGVkCit3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50
X3NldF9hdXRvX2ZpbGxlZAord2Via2l0X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRfZWxlbWVudF9z
ZXRfZWRpdGluZ192YWx1ZQogd2Via2l0X2RvbV9lbGVtZW50X2dldF9hdHRyaWJ1dGUKIHdlYmtp
dF9kb21fZWxlbWVudF9zZXRfYXR0cmlidXRlCiB3ZWJraXRfZG9tX2VsZW1lbnRfcmVtb3ZlX2F0
dHJpYnV0ZQpAQCAtODk3LDYgKzkwMSw3IEBAIHdlYmtpdF9kb21fbm9kZV9nZXRfbmFtZXNwYWNl
X3VyaQogd2Via2l0X2RvbV9ub2RlX2dldF9wcmVmaXgKIHdlYmtpdF9kb21fbm9kZV9zZXRfcHJl
Zml4CiB3ZWJraXRfZG9tX25vZGVfZ2V0X2xvY2FsX25hbWUKK3dlYmtpdF9kb21fbm9kZV9mb3Jf
anNfdmFsdWUKIAogPFNVQlNFQ1RJT04gU3RhbmRhcmQ+CiBXZWJLaXRET01Ob2RlQ2xhc3MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L1dlYktpdEZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9XZWJLaXRGcmFtZS5oCmluZGV4IDZjNTRhMjQ4NGE3Li5hMzEwMDYwYTM4MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
V2ViS2l0RnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9XZWJLaXRGcmFtZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8anNj
L2pzYy5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgogI2luY2x1ZGUgPHdl
YmtpdDIvV2ViS2l0U2NyaXB0V29ybGQuaD4KKyNpbmNsdWRlIDx3ZWJraXRkb20vd2Via2l0ZG9t
Lmg+CiAKIEdfQkVHSU5fREVDTFMKIApAQCAtNTQsMjcgKzU1LDM2IEBAIHN0cnVjdCBfV2ViS2l0
RnJhbWVDbGFzcyB7CiB9OwogCiBXRUJLSVRfQVBJIEdUeXBlCi13ZWJraXRfZnJhbWVfZ2V0X3R5
cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKTsKK3dlYmtpdF9mcmFtZV9n
ZXRfdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKTsKIAogV0VC
S0lUX0FQSSBnYm9vbGVhbgotd2Via2l0X2ZyYW1lX2lzX21haW5fZnJhbWUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lKTsKK3dlYmtpdF9mcmFtZV9p
c19tYWluX2ZyYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRGcmFtZSAg
ICAgICAqZnJhbWUpOwogCiBXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKLXdlYmtpdF9mcmFtZV9n
ZXRfdXJpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdEZyYW1lICAgICAg
ICpmcmFtZSk7Cit3ZWJraXRfZnJhbWVfZ2V0X3VyaSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lKTsKIAogV0VCS0lUX0RFUFJFQ0FU
RURfRk9SKHdlYmtpdF9mcmFtZV9nZXRfanNfY29udGV4dCkgSlNHbG9iYWxDb250ZXh0UmVmCi13
ZWJraXRfZnJhbWVfZ2V0X2phdmFzY3JpcHRfZ2xvYmFsX2NvbnRleHQgICAgICAgICAgIChXZWJL
aXRGcmFtZSAgICAgICAqZnJhbWUpOword2Via2l0X2ZyYW1lX2dldF9qYXZhc2NyaXB0X2dsb2Jh
bF9jb250ZXh0ICAgICAgICAgICAgICAgKFdlYktpdEZyYW1lICAgICAgICpmcmFtZSk7CiAKIFdF
QktJVF9ERVBSRUNBVEVEX0ZPUih3ZWJraXRfZnJhbWVfZ2V0X2pzX2NvbnRleHRfZm9yX3Njcmlw
dF93b3JsZCkgSlNHbG9iYWxDb250ZXh0UmVmCi13ZWJraXRfZnJhbWVfZ2V0X2phdmFzY3JpcHRf
Y29udGV4dF9mb3Jfc2NyaXB0X3dvcmxkIChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRT
Y3JpcHRXb3JsZCAqd29ybGQpOword2Via2l0X2ZyYW1lX2dldF9qYXZhc2NyaXB0X2NvbnRleHRf
Zm9yX3NjcmlwdF93b3JsZCAgICAgKFdlYktpdEZyYW1lICAgICAgICpmcmFtZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRT
Y3JpcHRXb3JsZCAqd29ybGQpOwogCiBXRUJLSVRfQVBJIEpTQ0NvbnRleHQgKgotd2Via2l0X2Zy
YW1lX2dldF9qc19jb250ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0RnJhbWUg
ICAgICAgKmZyYW1lKTsKK3dlYmtpdF9mcmFtZV9nZXRfanNfY29udGV4dCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUpOwogCiBXRUJLSVRfQVBJ
IEpTQ0NvbnRleHQgKgotd2Via2l0X2ZyYW1lX2dldF9qc19jb250ZXh0X2Zvcl9zY3JpcHRfd29y
bGQgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0U2NyaXB0V29ybGQgKndv
cmxkKTsKK3dlYmtpdF9mcmFtZV9nZXRfanNfY29udGV4dF9mb3Jfc2NyaXB0X3dvcmxkICAgICAg
ICAgICAgIChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0U2NyaXB0V29ybGQgKndv
cmxkKTsKKworV0VCS0lUX0FQSSBKU0NWYWx1ZSAqCit3ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVl
X2Zvcl9kb21fb2JqZWN0ICAgICAgICAgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1l
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdlYktpdERPTU9iamVjdCAgICpkb21fb2JqZWN0KTsKKworV0VCS0lUX0FQSSBKU0NWYWx1
ZSAqCit3ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0X2luX3NjcmlwdF93
b3JsZCAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdERPTU9iamVjdCAgICpkb21f
b2JqZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdlYktpdFNjcmlwdFdvcmxkICp3b3JsZCk7CiAKIEdfRU5EX0RFQ0xTCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3Bl
L0RPTS9XZWJLaXRET01EZWZpbmVzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL3dwZS9ET00vV2ViS2l0RE9NRGVmaW5lcy5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xZWY0ZjI4OWVkMgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL0RPTS9XZWJLaXRE
T01EZWZpbmVzLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJ
Z2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVRET01fSF9JTlNJREVfXykgJiYgIWRlZmlu
ZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d3BlL3dlYmtpdGRvbS5oPiBj
YW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0RE9NRGVm
aW5lc19oCisjZGVmaW5lIFdlYktpdERPTURlZmluZXNfaAorCisjaW5jbHVkZSA8Z2xpYi5oPgor
CisjaWZkZWYgR19PU19XSU4zMgorICAgICNpZmRlZiBCVUlMRElOR19XRUJLSVQKKyAgICAgICAg
I2RlZmluZSBXRUJLSVRfQVBJIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQorICAgICNlbHNlCisgICAg
ICAgICNkZWZpbmUgV0VCS0lUX0FQSSBfX2RlY2xzcGVjKGRsbGltcG9ydCkKKyAgICAjZW5kaWYK
KyNlbHNlCisgICAgI2RlZmluZSBXRUJLSVRfQVBJIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHko
ImRlZmF1bHQiKSkpCisjZW5kaWYKKworI2RlZmluZSBXRUJLSVRfREVQUkVDQVRFRCBXRUJLSVRf
QVBJIEdfREVQUkVDQVRFRAorI2RlZmluZSBXRUJLSVRfREVQUkVDQVRFRF9GT1IoZikgV0VCS0lU
X0FQSSBHX0RFUFJFQ0FURURfRk9SKGYpCisKKyNpZm5kZWYgV0VCS0lUX0FQSQorICAgICNkZWZp
bmUgV0VCS0lUX0FQSQorI2VuZGlmCisKKyNlbmRpZiAvKiBXZWJLaXRET01EZWZpbmVzX2ggKi8K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
d3BlL0RPTS9XZWJLaXRET01Eb2N1bWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL1dlYktpdERPTURvY3VtZW50LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjIyYzY3YzE3ZTg4Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL1dl
YktpdERPTURvY3VtZW50LmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVRET01fSF9JTlNJREVfXykgJiYg
IWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d3BlL3dlYmtpdGRv
bS5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0
RE9NRG9jdW1lbnRfaAorI2RlZmluZSBXZWJLaXRET01Eb2N1bWVudF9oCisKKyNpbmNsdWRlIDxn
bGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRET01Ob2RlLmg+CisjaW5jbHVkZSA8
d3BlL1dlYktpdERPTURlZmluZXMuaD4KKworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJ
VF9ET01fVFlQRV9ET0NVTUVOVCAgICAgICAgICAgICh3ZWJraXRfZG9tX2RvY3VtZW50X2dldF90
eXBlKCkpCisjZGVmaW5lIFdFQktJVF9ET01fRE9DVU1FTlQob2JqKSAgICAgICAgICAgIChHX1RZ
UEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX0RPTV9UWVBFX0RPQ1VNRU5ULCBX
ZWJLaXRET01Eb2N1bWVudCkpCisjZGVmaW5lIFdFQktJVF9ET01fRE9DVU1FTlRfQ0xBU1Moa2xh
c3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX0RPTV9UWVBF
X0RPQ1VNRU5ULCBXZWJLaXRET01Eb2N1bWVudENsYXNzKQorI2RlZmluZSBXRUJLSVRfRE9NX0lT
X0RPQ1VNRU5UKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiks
IFdFQktJVF9ET01fVFlQRV9ET0NVTUVOVCkpCisjZGVmaW5lIFdFQktJVF9ET01fSVNfRE9DVU1F
TlRfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lU
X0RPTV9UWVBFX0RPQ1VNRU5UKSkKKyNkZWZpbmUgV0VCS0lUX0RPTV9ET0NVTUVOVF9HRVRfQ0xB
U1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfRE9NX1RZ
UEVfRE9DVU1FTlQsIFdlYktpdERPTURvY3VtZW50Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBf
V2ViS2l0RE9NRG9jdW1lbnQgV2ViS2l0RE9NRG9jdW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfV2Vi
S2l0RE9NRG9jdW1lbnRDbGFzcyBXZWJLaXRET01Eb2N1bWVudENsYXNzOworCitzdHJ1Y3QgX1dl
YktpdERPTURvY3VtZW50IHsKKyAgICBXZWJLaXRET01Ob2RlIHBhcmVudF9pbnN0YW5jZTsKK307
CisKK3N0cnVjdCBfV2ViS2l0RE9NRG9jdW1lbnRDbGFzcyB7CisgICAgV2ViS2l0RE9NTm9kZUNs
YXNzIHBhcmVudF9jbGFzczsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF9kb21fZG9j
dW1lbnRfZ2V0X3R5cGUodm9pZCk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBXZWJLaXRE
T01Eb2N1bWVudF9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vV2ViS2l0RE9NRWxlbWVudC5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL1dlYktpdERPTUVsZW1lbnQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTZhNmFhMjc3YTIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL3dwZS9ET00vV2ViS2l0RE9NRWxlbWVudC5oCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lURE9NX0hf
SU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkg
PHdwZS93ZWJraXRkb20uaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisj
aWZuZGVmIFdlYktpdERPTUVsZW1lbnRfaAorI2RlZmluZSBXZWJLaXRET01FbGVtZW50X2gKKwor
I2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdERPTU5vZGUuaD4K
KyNpbmNsdWRlIDx3cGUvV2ViS2l0RE9NRGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNk
ZWZpbmUgV0VCS0lUX0RPTV9UWVBFX0VMRU1FTlQgICAgICAgICAgICAod2Via2l0X2RvbV9lbGVt
ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9ET01fRUxFTUVOVChvYmopICAgICAgICAg
ICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfRE9NX1RZUEVfRUxF
TUVOVCwgV2ViS2l0RE9NRWxlbWVudCkpCisjZGVmaW5lIFdFQktJVF9ET01fRUxFTUVOVF9DTEFT
UyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfRE9N
X1RZUEVfRUxFTUVOVCwgV2ViS2l0RE9NRWxlbWVudENsYXNzKQorI2RlZmluZSBXRUJLSVRfRE9N
X0lTX0VMRU1FTlQob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2Jq
KSwgV0VCS0lUX0RPTV9UWVBFX0VMRU1FTlQpKQorI2RlZmluZSBXRUJLSVRfRE9NX0lTX0VMRU1F
TlRfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lU
X0RPTV9UWVBFX0VMRU1FTlQpKQorI2RlZmluZSBXRUJLSVRfRE9NX0VMRU1FTlRfR0VUX0NMQVNT
KG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX0RPTV9UWVBF
X0VMRU1FTlQsIFdlYktpdERPTUVsZW1lbnRDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJL
aXRET01FbGVtZW50IFdlYktpdERPTUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9N
RWxlbWVudENsYXNzIFdlYktpdERPTUVsZW1lbnRDbGFzczsKKworc3RydWN0IF9XZWJLaXRET01F
bGVtZW50IHsKKyAgICBXZWJLaXRET01Ob2RlIHBhcmVudF9pbnN0YW5jZTsKK307CisKK3N0cnVj
dCBfV2ViS2l0RE9NRWxlbWVudENsYXNzIHsKKyAgICBXZWJLaXRET01Ob2RlQ2xhc3MgcGFyZW50
X2NsYXNzOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X2RvbV9lbGVtZW50X2dldF90
eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCk7CisKK1dFQktJVF9BUEkgZ2Jv
b2xlYW4KK3dlYmtpdF9kb21fZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfaXNfdXNlcl9lZGl0
ZWQgICAgKFdlYktpdERPTUVsZW1lbnQgKmVsZW1lbnQpOworCitXRUJLSVRfQVBJIGdib29sZWFu
Cit3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X2dldF9hdXRvX2ZpbGxlZCAg
IChXZWJLaXRET01FbGVtZW50ICplbGVtZW50KTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRf
ZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X3NldF9hdXRvX2ZpbGxlZCAgIChXZWJLaXRE
T01FbGVtZW50ICplbGVtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgYXV0b19maWxsZWQpOworV0VC
S0lUX0FQSSB2b2lkCit3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X3NldF9l
ZGl0aW5nX3ZhbHVlIChXZWJLaXRET01FbGVtZW50ICplbGVtZW50LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAgICAg
ICAqdmFsdWUpOworCitHX0VORF9ERUNMUworCisjZW5kaWYgLyogV2ViS2l0RE9NRWxlbWVudF9o
ICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL3dwZS9ET00vV2ViS2l0RE9NTm9kZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL1dlYktpdERPTU5vZGUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjQyODMzOGNhMDYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vV2ViS2l0
RE9NTm9kZS5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggSWdh
bGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lURE9NX0hfSU5TSURFX18pICYmICFkZWZpbmVk
KFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdwZS93ZWJraXRkb20uaD4gY2Fu
IGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdERPTU5vZGVf
aAorI2RlZmluZSBXZWJLaXRET01Ob2RlX2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+Cisj
aW5jbHVkZSA8anNjL2pzYy5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRET01PYmplY3QuaD4KKyNp
bmNsdWRlIDx3cGUvV2ViS2l0RE9NRGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZp
bmUgV0VCS0lUX0RPTV9UWVBFX05PREUgICAgICAgICAgICAod2Via2l0X2RvbV9ub2RlX2dldF90
eXBlKCkpCisjZGVmaW5lIFdFQktJVF9ET01fTk9ERShvYmopICAgICAgICAgICAgKEdfVFlQRV9D
SEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfRE9NX1RZUEVfTk9ERSwgV2ViS2l0RE9N
Tm9kZSkpCisjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9D
SEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfRE9NX1RZUEVfTk9ERSwgV2ViS2l0RE9N
Tm9kZUNsYXNzKQorI2RlZmluZSBXRUJLSVRfRE9NX0lTX05PREUob2JqKSAgICAgICAgIChHX1RZ
UEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX0RPTV9UWVBFX05PREUpKQorI2Rl
ZmluZSBXRUJLSVRfRE9NX0lTX05PREVfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1Nf
VFlQRSgoa2xhc3MpLCAgV0VCS0lUX0RPTV9UWVBFX05PREUpKQorI2RlZmluZSBXRUJLSVRfRE9N
X05PREVfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAg
V0VCS0lUX0RPTV9UWVBFX05PREUsIFdlYktpdERPTU5vZGVDbGFzcykpCisKK3R5cGVkZWYgc3Ry
dWN0IF9XZWJLaXRET01Ob2RlIFdlYktpdERPTU5vZGU7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0
RE9NTm9kZUNsYXNzIFdlYktpdERPTU5vZGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRE
T01Ob2RlUHJpdmF0ZSBXZWJLaXRET01Ob2RlUHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRET01O
b2RlIHsKKyAgICBXZWJLaXRET01PYmplY3QgcGFyZW50X2luc3RhbmNlOworCisgICAgV2ViS2l0
RE9NTm9kZVByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX1dlYktpdERPTU5vZGVDbGFzcyB7
CisgICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworfTsKKworV0VCS0lUX0FQ
SSBHVHlwZQord2Via2l0X2RvbV9ub2RlX2dldF90eXBlICAgICAodm9pZCk7CisKK1dFQktJVF9B
UEkgV2ViS2l0RE9NTm9kZSAqCit3ZWJraXRfZG9tX25vZGVfZm9yX2pzX3ZhbHVlIChKU0NWYWx1
ZSAqdmFsdWUpOworCitHX0VORF9ERUNMUworCisjZW5kaWYgLyogV2ViS2l0RE9NTm9kZV9oICov
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L3dwZS9ET00vV2ViS2l0RE9NT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vV2ViS2l0RE9NT2JqZWN0LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjc1NzU3NjIyMWI3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL1dlYktp
dERPTU9iamVjdC5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgg
SWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lURE9NX0hfSU5TSURFX18pICYmICFkZWZp
bmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdwZS93ZWJraXRkb20uaD4g
Y2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdERPTU9i
amVjdF9oCisjZGVmaW5lIFdlYktpdERPTU9iamVjdF9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVj
dC5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRET01EZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMK
KworI2RlZmluZSBXRUJLSVRfRE9NX1RZUEVfT0JKRUNUICAgICAgICAgICAgKHdlYmtpdF9kb21f
b2JqZWN0X2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9ET01fT0JKRUNUKG9iaikgICAgICAg
ICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9ET01fVFlQRV9P
QkpFQ1QsIFdlYktpdERPTU9iamVjdCkpCisjZGVmaW5lIFdFQktJVF9ET01fT0JKRUNUX0NMQVNT
KGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9ET01f
VFlQRV9PQkpFQ1QsIFdlYktpdERPTU9iamVjdENsYXNzKSkKKyNkZWZpbmUgV0VCS0lUX0RPTV9J
U19PQkpFQ1Qob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwg
V0VCS0lUX0RPTV9UWVBFX09CSkVDVCkpCisjZGVmaW5lIFdFQktJVF9ET01fSVNfT0JKRUNUX0NM
QVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9ET01f
VFlQRV9PQkpFQ1QpKQorI2RlZmluZSBXRUJLSVRfRE9NX09CSkVDVF9HRVRfQ0xBU1Mob2JqKSAg
KEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfRE9NX1RZUEVfT0JKRUNU
LCBXZWJLaXRET01PYmplY3RDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRET01PYmpl
Y3QgV2ViS2l0RE9NT2JqZWN0OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTU9iamVjdENsYXNz
IFdlYktpdERPTU9iamVjdENsYXNzOworCitzdHJ1Y3QgX1dlYktpdERPTU9iamVjdCB7CisgICAg
R09iamVjdCBwYXJlbnRJbnN0YW5jZTsKK307CisKK3N0cnVjdCBfV2ViS2l0RE9NT2JqZWN0Q2xh
c3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRDbGFzczsKK307CisKK1dFQktJVF9BUEkgR1R5
cGUKK3dlYmtpdF9kb21fb2JqZWN0X2dldF90eXBlKHZvaWQpOworCitHX0VORF9ERUNMUworCisj
ZW5kaWYgLyogV2ViS2l0RE9NT2JqZWN0X2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01PYmplY3RQcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9E
T00vd2Via2l0ZG9tLmgKc2ltaWxhcml0eSBpbmRleCA2NiUKcmVuYW1lIGZyb20gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU9iamVj
dFByaXZhdGUuaApyZW5hbWUgdG8gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS93cGUvRE9NL3dlYmtpdGRvbS5oCmluZGV4IDAyYjExYTZiZmFmLi45MmY3YTAyNGQ2
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTU9iamVjdFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vd2Via2l0ZG9tLmgKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTggSWdhbGlhIFMuTC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTcsMjIgKzE3
LDE3IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCisjaWZuZGVmIHdl
YmtpdGRvbV9oCisjZGVmaW5lIHdlYmtpdGRvbV9oCiAKLSNpZm5kZWYgV2ViS2l0RE9NT2JqZWN0
UHJpdmF0ZV9oCi0jZGVmaW5lIFdlYktpdERPTU9iamVjdFByaXZhdGVfaAorI2RlZmluZSBfX1dF
QktJVERPTV9IX0lOU0lERV9fCiAKLSNpbmNsdWRlIDx3ZWJraXRkb20vV2ViS2l0RE9NT2JqZWN0
Lmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdERPTURlZmluZXMuaD4KKyNpbmNsdWRlIDx3cGUvV2Vi
S2l0RE9NRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RE9NRWxlbWVudC5oPgorI2lu
Y2x1ZGUgPHdwZS9XZWJLaXRET01Ob2RlLmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdERPTU9iamVj
dC5oPgogCi1zdHJ1Y3QgX1dlYktpdERPTU9iamVjdCB7Ci0gICAgR09iamVjdCBwYXJlbnQ7Ci19
OworI3VuZGVmIF9fV0VCS0lURE9NX0hfSU5TSURFX18KIAotc3RydWN0IF9XZWJLaXRET01PYmpl
Y3RDbGFzcyB7Ci0gICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKLQotICAgIHZvaWQgKCog
d3JhcCkgKFdlYktpdERPTU9iamVjdCosIHZvaWQqIGNvcmVPYmplY3QpOwotfTsKLQotdm9pZCB3
ZWJraXRET01PYmplY3RXcmFwKFdlYktpdERPTU9iamVjdCosIHZvaWQqIGNvcmVPYmplY3QpOwot
Ci0jZW5kaWYgLyogV2ViS2l0RE9NT2JqZWN0X2ggKi8KKyNlbmRpZiAvKiB3ZWJraXRkb21faCAq
LwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS93cGUvV2ViS2l0RnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvd3BlL1dlYktpdEZyYW1lLmgKaW5kZXggOTRmMGQwMDQwNjMuLmEzYzYzOTRkYWQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L3dwZS9XZWJLaXRGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvd3BlL1dlYktpdEZyYW1lLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRl
IDxqc2MvanNjLmg+CiAjaW5jbHVkZSA8d3BlL1dlYktpdERlZmluZXMuaD4KICNpbmNsdWRlIDx3
cGUvV2ViS2l0U2NyaXB0V29ybGQuaD4KKyNpbmNsdWRlIDx3cGUvd2Via2l0ZG9tLmg+CiAKIEdf
QkVHSU5fREVDTFMKIApAQCAtNTMsMjAgKzU0LDI5IEBAIHN0cnVjdCBfV2ViS2l0RnJhbWVDbGFz
cyB7CiB9OwogCiBXRUJLSVRfQVBJIEdUeXBlCi13ZWJraXRfZnJhbWVfZ2V0X3R5cGUgICAgICAg
ICAgICAgICAgICAgICAgICAodm9pZCk7Cit3ZWJraXRfZnJhbWVfZ2V0X3R5cGUgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCk7CiAKIFdFQktJVF9BUEkgZ2Jvb2xlYW4K
LXdlYmtpdF9mcmFtZV9pc19tYWluX2ZyYW1lICAgICAgICAgICAgICAgICAgIChXZWJLaXRGcmFt
ZSAgICAgICAqZnJhbWUpOword2Via2l0X2ZyYW1lX2lzX21haW5fZnJhbWUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKFdlYktpdEZyYW1lICAgICAgICpmcmFtZSk7CiAKIFdFQktJVF9B
UEkgY29uc3QgZ2NoYXIgKgotd2Via2l0X2ZyYW1lX2dldF91cmkgICAgICAgICAgICAgICAgICAg
ICAgICAgKFdlYktpdEZyYW1lICAgICAgICpmcmFtZSk7Cit3ZWJraXRfZnJhbWVfZ2V0X3VyaSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAgKmZy
YW1lKTsKIAogV0VCS0lUX0FQSSBKU0NDb250ZXh0ICoKLXdlYmtpdF9mcmFtZV9nZXRfanNfY29u
dGV4dCAgICAgICAgICAgICAgICAgIChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUpOword2Via2l0
X2ZyYW1lX2dldF9qc19jb250ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktp
dEZyYW1lICAgICAgICpmcmFtZSk7CiAKIFdFQktJVF9BUEkgSlNDQ29udGV4dCAqCi13ZWJraXRf
ZnJhbWVfZ2V0X2pzX2NvbnRleHRfZm9yX3NjcmlwdF93b3JsZCAoV2ViS2l0RnJhbWUgICAgICAg
KmZyYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdl
YktpdFNjcmlwdFdvcmxkICp3b3JsZCk7Cit3ZWJraXRfZnJhbWVfZ2V0X2pzX2NvbnRleHRfZm9y
X3NjcmlwdF93b3JsZCAgICAgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdl
YktpdFNjcmlwdFdvcmxkICp3b3JsZCk7CisKK1dFQktJVF9BUEkgSlNDVmFsdWUgKgord2Via2l0
X2ZyYW1lX2dldF9qc192YWx1ZV9mb3JfZG9tX29iamVjdCAgICAgICAgICAgICAgICAgKFdlYktp
dEZyYW1lICAgICAgICpmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRET01PYmplY3QgICAqZG9tX29iamVjdCk7CisK
K1dFQktJVF9BUEkgSlNDVmFsdWUgKgord2Via2l0X2ZyYW1lX2dldF9qc192YWx1ZV9mb3JfZG9t
X29iamVjdF9pbl9zY3JpcHRfd29ybGQgKFdlYktpdEZyYW1lICAgICAgICpmcmFtZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJL
aXRET01PYmplY3QgICAqZG9tX29iamVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRTY3JpcHRXb3JsZCAqd29ybGQpOwog
CiBHX0VORF9ERUNMUwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJIaXRUZXN0UmVzdWx0LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJIaXRUZXN0UmVz
dWx0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZjNDNiMjVhOGNl
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS93cGUvV2ViS2l0V2ViSGl0VGVzdFJlc3VsdC5oCkBAIC0wLDAgKzEsNjggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiwxIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJ
VF9XRUJfRVhURU5TSU9OX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJ
T04pCisjZXJyb3IgIk9ubHkgPHdwZS93ZWJraXQtd2ViLWV4dGVuc2lvbi5oPiBjYW4gYmUgaW5j
bHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0V2ViSGl0VGVzdFJlc3Vs
dF9oCisjZGVmaW5lIFdlYktpdFdlYkhpdFRlc3RSZXN1bHRfaAorCisjaW5jbHVkZSA8Z2xpYi1v
YmplY3QuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5oPgorI2luY2x1ZGUgPHdwZS9X
ZWJLaXRIaXRUZXN0UmVzdWx0Lmg+CisjaW5jbHVkZSA8d3BlL3dlYmtpdGRvbS5oPgorCitHX0JF
R0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfV0VCX0hJVF9URVNUX1JFU1VMVCAgICAg
ICAgICAgICh3ZWJraXRfd2ViX2hpdF90ZXN0X3Jlc3VsdF9nZXRfdHlwZSgpKQorI2RlZmluZSBX
RUJLSVRfV0VCX0hJVF9URVNUX1JFU1VMVChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19J
TlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9XRUJfSElUX1RFU1RfUkVTVUxULCBXZWJL
aXRXZWJIaXRUZXN0UmVzdWx0KSkKKyNkZWZpbmUgV0VCS0lUX0lTX1dFQl9ISVRfVEVTVF9SRVNV
TFQob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lU
X1RZUEVfV0VCX0hJVF9URVNUX1JFU1VMVCkpCisjZGVmaW5lIFdFQktJVF9XRUJfSElUX1RFU1Rf
UkVTVUxUX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwg
IFdFQktJVF9UWVBFX1dFQl9ISVRfVEVTVF9SRVNVTFQsIFdlYktpdFdlYkhpdFRlc3RSZXN1bHRD
bGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19XRUJfSElUX1RFU1RfUkVTVUxUX0NMQVNTKGtsYXNz
KSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1dFQl9ISVRf
VEVTVF9SRVNVTFQpKQorI2RlZmluZSBXRUJLSVRfV0VCX0hJVF9URVNUX1JFU1VMVF9HRVRfQ0xB
U1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9X
RUJfSElUX1RFU1RfUkVTVUxULCBXZWJLaXRXZWJIaXRUZXN0UmVzdWx0Q2xhc3MpKQorCit0eXBl
ZGVmIHN0cnVjdCBfV2ViS2l0V2ViSGl0VGVzdFJlc3VsdCAgICAgICAgV2ViS2l0V2ViSGl0VGVz
dFJlc3VsdDsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJIaXRUZXN0UmVzdWx0Q2xhc3MgICBX
ZWJLaXRXZWJIaXRUZXN0UmVzdWx0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViSGl0
VGVzdFJlc3VsdFByaXZhdGUgV2ViS2l0V2ViSGl0VGVzdFJlc3VsdFByaXZhdGU7CisKK3N0cnVj
dCBfV2ViS2l0V2ViSGl0VGVzdFJlc3VsdCB7CisgICAgV2ViS2l0SGl0VGVzdFJlc3VsdCBwYXJl
bnQ7CisKKyAgICBXZWJLaXRXZWJIaXRUZXN0UmVzdWx0UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0
cnVjdCBfV2ViS2l0V2ViSGl0VGVzdFJlc3VsdENsYXNzIHsKKyAgICBXZWJLaXRIaXRUZXN0UmVz
dWx0Q2xhc3MgcGFyZW50X2NsYXNzOworCisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQwKSAo
dm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9pZCAo
Kl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQz
KSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfd2ViX2hpdF90ZXN0X3Jl
c3VsdF9nZXRfdHlwZSAodm9pZCk7CisKK1dFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSAqCit3ZWJr
aXRfd2ViX2hpdF90ZXN0X3Jlc3VsdF9nZXRfbm9kZSAoV2ViS2l0V2ViSGl0VGVzdFJlc3VsdCAq
aGl0X3Rlc3RfcmVzdWx0KTsKKworR19FTkRfREVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJQ
YWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9X
ZWJLaXRXZWJQYWdlLmgKaW5kZXggZWVmYmQ4MTAzOTQuLjMwZTBmOTMzNThjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRX
ZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS93cGUvV2ViS2l0V2ViUGFnZS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8d3BlL1dl
YktpdERlZmluZXMuaD4KICNpbmNsdWRlIDx3cGUvV2ViS2l0RnJhbWUuaD4KICNpbmNsdWRlIDx3
cGUvV2ViS2l0V2ViRWRpdG9yLmg+CisjaW5jbHVkZSA8d3BlL3dlYmtpdGRvbS5oPgogCiBHX0JF
R0lOX0RFQ0xTCiAKQEAgLTQ1LDYgKzQ2LDIxIEBAIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJQ
YWdlUHJpdmF0ZSBXZWJLaXRXZWJQYWdlUHJpdmF0ZTsKIC8qIEZvcndhcmQgZGVjbGFyYXRpb25z
ICovCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViRWRpdG9yICAgICAgV2ViS2l0V2ViRWRpdG9y
OwogCisvKioKKyAqIFdlYktpdEZvcm1TdWJtaXNzaW9uU3RlcDoKKyAqIEBXRUJLSVRfRk9STV9T
VUJNSVNTSU9OX1dJTExfU0VORF9ET01fRVZFTlQ6IGluZGljYXRlcyB0aGUgZm9ybSdzCisgKiBE
T00gc3VibWl0IGV2ZW50IGlzIGFib3V0IHRvIGJlIGVtaXR0ZWQuCisgKiBAV0VCS0lUX0ZPUk1f
U1VCTUlTU0lPTl9XSUxMX0NPTVBMRVRFOiBpbmRpY2F0ZXMgdGhlIGZvcm0gaXMgYWJvdXQKKyAq
IHRvIGJlIHN1Ym1pdHRlZC4KKyAqCisgKiBVc2VkIHRvIGluZGljYXRlIGEgcGFydGljdWxhciBz
dGFnZSBpbiBmb3JtIHN1Ym1pc3Npb24uIFNlZQorICogI1dlYktpdFdlYlBhZ2U6OndpbGwtc3Vi
bWl0LWZvcm0uCisgKi8KK3R5cGVkZWYgZW51bSB7CisgICAgV0VCS0lUX0ZPUk1fU1VCTUlTU0lP
Tl9XSUxMX1NFTkRfRE9NX0VWRU5ULAorICAgIFdFQktJVF9GT1JNX1NVQk1JU1NJT05fV0lMTF9D
T01QTEVURSwKK30gV2ViS2l0Rm9ybVN1Ym1pc3Npb25TdGVwOworCiBzdHJ1Y3QgX1dlYktpdFdl
YlBhZ2UgewogICAgIEdPYmplY3QgcGFyZW50OwogCkBAIC03MCw2ICs4Niw5IEBAIHdlYmtpdF93
ZWJfcGFnZV9nZXRfbWFpbl9mcmFtZSAgIChXZWJLaXRXZWJQYWdlICp3ZWJfcGFnZSk7CiBXRUJL
SVRfQVBJIFdlYktpdFdlYkVkaXRvciAqCiB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2VkaXRvciAgICAg
ICAoV2ViS2l0V2ViUGFnZSAqd2ViX3BhZ2UpOwogCitXRUJLSVRfQVBJIFdlYktpdERPTURvY3Vt
ZW50ICoKK3dlYmtpdF93ZWJfcGFnZV9nZXRfZG9tX2RvY3VtZW50IChXZWJLaXRXZWJQYWdlICp3
ZWJfcGFnZSk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0V2ViUHJvY2Vzc0Vu
dW1UeXBlcy5jcHAudGVtcGxhdGUgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVzLmNwcC50ZW1wbGF0ZQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjIwZWYxNWNkNzkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dw
ZS9XZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVzLmNwcC50ZW1wbGF0ZQpAQCAtMCwwICsxLDYyIEBA
CisvKioqIEJFR0lOIGZpbGUtaGVhZGVyICoqKi8KKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
SWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKi8KKworI2luY2x1ZGUgPGNvbmZpZy5oPgorI2luY2x1ZGUgIldlYktpdFdlYlByb2Nl
c3NFbnVtVHlwZXMuaCIKKworI2luY2x1ZGUgPHdwZS93ZWJraXQtd2ViLWV4dGVuc2lvbi5oPgor
ZXh0ZXJuICJDIiB7CisvKioqIEVORCBmaWxlLWhlYWRlciAqKiovCisKKworLyoqKiBCRUdJTiBm
aWxlLXByb2R1Y3Rpb24gKioqLworLy8gRW51bWVyYXRpb25zIGZyb20gQGZpbGVuYW1lQC4KKy8q
KiogRU5EIGZpbGUtcHJvZHVjdGlvbiAqKiovCisKKworLyoqKiBCRUdJTiB2YWx1ZS1oZWFkZXIg
KioqLworR1R5cGUgQGVudW1fbmFtZUBfZ2V0X3R5cGUoKQoreworICAgIHN0YXRpYyBjb25zdCBH
QFR5cGVAVmFsdWUgdmFsdWVzW10gPSB7CisvKioqIEVORCB2YWx1ZS1oZWFkZXIgKioqLworCisK
Ky8qKiogQkVHSU4gdmFsdWUtcHJvZHVjdGlvbiAqKiovCisgICAgICAgIHsgQFZBTFVFTkFNRUAs
ICJAVkFMVUVOQU1FQCIsICJAdmFsdWVuaWNrQCIgfSwKKy8qKiogRU5EIHZhbHVlLXByb2R1Y3Rp
b24gKioqLworCisKKy8qKiogQkVHSU4gdmFsdWUtdGFpbCAqKiovCisgICAgICAgIHsgMCwgTlVM
TCwgTlVMTCB9CisgICAgfTsKKworICAgIHN0YXRpYyBHVHlwZSB0eXBlID0gMDsKKyAgICBpZiAo
R19VTkxJS0VMWSghdHlwZSkpCisgICAgICAgIHR5cGUgPSBnX0B0eXBlQF9yZWdpc3Rlcl9zdGF0
aWMoIkBFbnVtTmFtZUAiLCB2YWx1ZXMpOworCisgICAgcmV0dXJuIHR5cGU7Cit9CisKKy8qKiog
RU5EIHZhbHVlLXRhaWwgKioqLworCisKKy8qKiogQkVHSU4gZmlsZS10YWlsICoqKi8KK30KKy8q
KiogRU5EIGZpbGUtdGFpbCAqKiovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVzLmgudGVt
cGxhdGUgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9X
ZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVzLmgudGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjU2MDk5MzEzOGNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0V2ViUHJvY2Vz
c0VudW1UeXBlcy5oLnRlbXBsYXRlCkBAIC0wLDAgKzEsNTQgQEAKKy8qKiogQkVHSU4gZmlsZS1o
ZWFkZXIgKioqLworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRl
ZmluZWQoX19XRUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJL
SVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3cGUvd2Via2l0LXdlYi1leHRlbnNpb24u
aD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdFQktJVF9X
RUJfUFJPQ0VTU19FTlVNX1RZUEVTX0gKKyNkZWZpbmUgV0VCS0lUX1dFQl9QUk9DRVNTX0VOVU1f
VFlQRVNfSAorCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0
RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisvKioqIEVORCBmaWxlLWhlYWRlciAqKiovCisK
KworLyoqKiBCRUdJTiBmaWxlLXByb2R1Y3Rpb24gKioqLworLyogRW51bWVyYXRpb25zIGZyb20g
QGJhc2VuYW1lQC4gKi8KKy8qKiogRU5EIGZpbGUtcHJvZHVjdGlvbiAqKiovCisKKworLyoqKiBC
RUdJTiBlbnVtZXJhdGlvbi1wcm9kdWN0aW9uICoqKi8KKyNkZWZpbmUgV0VCS0lUX1RZUEVfQEVO
VU1TSE9SVEAgQGVudW1fbmFtZUBfZ2V0X3R5cGUgKCkKKworV0VCS0lUX0FQSSBHVHlwZQorQGVu
dW1fbmFtZUBfZ2V0X3R5cGUgKHZvaWQpOworCisvKioqIEVORCBlbnVtZXJhdGlvbi1wcm9kdWN0
aW9uICoqKi8KKworCisvKioqIEJFR0lOIGZpbGUtdGFpbCAqKiovCitHX0VORF9ERUNMUworCisj
ZW5kaWYKKy8qKiogRU5EIGZpbGUtdGFpbCAqKiovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL3dlYmtpdC13ZWItZXh0ZW5zaW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS93ZWJr
aXQtd2ViLWV4dGVuc2lvbi5oCmluZGV4IDZmMDZhY2QyYWIwLi5jZDFkNDY4ZmNjZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvd2Vi
a2l0LXdlYi1leHRlbnNpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL3dwZS93ZWJraXQtd2ViLWV4dGVuc2lvbi5oCkBAIC0zNiw2ICszNiw3IEBA
CiAjaW5jbHVkZSA8d3BlL1dlYktpdFVSSVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8d3BlL1dlYktp
dFdlYkVkaXRvci5oPgogI2luY2x1ZGUgPHdwZS9XZWJLaXRXZWJFeHRlbnNpb24uaD4KKyNpbmNs
dWRlIDx3cGUvV2ViS2l0V2ViSGl0VGVzdFJlc3VsdC5oPgogI2luY2x1ZGUgPHdwZS9XZWJLaXRX
ZWJQYWdlLmg+CiAKICN1bmRlZiBfX1dFQktJVF9XRUJfRVhURU5TSU9OX0hfSU5TSURFX18KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlIGIvU291cmNlL2NtYWtlL09w
dGlvbnNXUEUuY21ha2UKaW5kZXggOTc0NTMzNmJkNGYuLjY4NDMzMTMyMjI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9u
c1dQRS5jbWFrZQpAQCAtMTE0LDYgKzExNCw3IEBAIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVT
RV9DT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCBUUlVFKQogc2V0KEZPUldBUkRJTkdfSEVB
REVSU19ESVIgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycykKIHNldChG
T1JXQVJESU5HX0hFQURFUlNfV1BFX0RJUiAke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9L3dwZSkK
IHNldChGT1JXQVJESU5HX0hFQURFUlNfV1BFX0VYVEVOU0lPTl9ESVIgJHtGT1JXQVJESU5HX0hF
QURFUlNfRElSfS93cGUtd2ViZXh0ZW5zaW9uKQorc2V0KEZPUldBUkRJTkdfSEVBREVSU19XUEVf
RE9NX0RJUiAke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9L3dwZS1kb20pCiBzZXQoREVSSVZFRF9T
T1VSQ0VTX0pBVkFTQ1JJUENPUkVXUEVfRElSICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRD
T1JFX0RJUn0vamF2YXNjcmlwdGNvcmV3cGUpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJ
UENPUkVfR0xJQl9BUElfRElSICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0v
amF2YXNjcmlwdGNvcmV3cGUvanNjKQogc2V0KERFUklWRURfU09VUkNFU19XUEVfQVBJX0RJUiAk
e0RFUklWRURfU09VUkNFU19XRUJLSVRfRElSfS93cGUpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2U3ZTMzY2YxMmIuLjMyZTZhZTFmMDA1IDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNjIgQEAKKzIwMTgtMDMtMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV0gQWRkIEFQSSB0byBjb252ZXJ0IGJldHdlZW4g
RE9NIGFuZCBKU0NWYWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgzNDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIHVuaXQgdGVzdHMgZm9yIG5vbi1kZXByZWNhdGVkIERPTSBBUEkgYW5kIHN3
aXRjaCBleGlzdGluZyB0ZXN0cyB0byB1c2Ugbm9uLWRlcHJlY2F0ZWQgQVBJIGV4Y2VwdCBmb3Ig
dGhlCisgICAgICAgIG9uZXMgdGhhdCB0ZXN0IHRoZSBkZXByZWNhdGVkIEFQSS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9ET01FbGVtZW50VGVzdC5jcHA6IEFk
ZGVkLgorICAgICAgICAoRE9NRWxlbWVudFRlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChET01FbGVt
ZW50VGVzdDo6dGVzdEF1dG9GaWxsKToKKyAgICAgICAgKHJlZ2lzdGVyVGVzdHMpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9FZGl0b3JUZXN0LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJLaXRXZWJFZGl0b3JUZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
V2ViRWRpdG9yVGVzdDo6c2VsZWN0aW9uQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYktp
dFdlYkVkaXRvclRlc3Q6OnRlc3RTZWxlY3Rpb25jaGFuZ2VkKToKKyAgICAgICAgKHJlZ2lzdGVy
VGVzdHMpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9GcmFtZVRl
c3QuY3BwOgorICAgICAgICAoV2ViS2l0RnJhbWVUZXN0Ojp0ZXN0SmF2YVNjcmlwdFZhbHVlcyk6
CisgICAgICAgIChyZWdpc3RlclRlc3RzKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdEdMaWIvVGVzdERPTUVsZW1lbnQuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU9iamVjdFBy
aXZhdGUuaC4KKyAgICAgICAgKHRlc3RXZWJLaXRET01FbGVtZW50QXV0b0ZpbGwpOgorICAgICAg
ICAoYmVmb3JlQWxsKToKKyAgICAgICAgKGFmdGVyQWxsKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEVkaXRvci5jcHA6IFJlbmFtZWQgZnJvbSBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0RWRpdG9yLmNwcC4KKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEZyYW1lLmNwcDoKKyAgICAgICAgKHRl
c3RXZWJLaXRGcmFtZUphdmFTY3JpcHRWYWx1ZXMpOgorICAgICAgICAoYmVmb3JlQWxsKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYkV4dGVuc2lvbnMu
Y3BwOgorICAgICAgICAoaW5wdXRFbGVtZW50SXNVc2VyRWRpdGVkKToKKyAgICAgICAgKHRlc3RX
ZWJFeHRlbnNpb25JbnB1dEVsZW1lbnRJc1VzZXJFZGl0ZWQpOgorICAgICAgICAodGVzdFdlYkV4
dGVuc2lvbkZvcm1TdWJtaXNzaW9uU3RlcHMpOgorICAgICAgICAoYmVmb3JlQWxsKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvV2ViRXh0ZW5zaW9uVGVzdC5jcHA6
CisgICAgICAgIChkb2N1bWVudExvYWRlZENhbGxiYWNrKToKKyAgICAgICAgKHNlcmlhbGl6ZU5v
ZGUpOgorICAgICAgICAoY29udGV4dE1lbnVDYWxsYmFjayk6CisgICAgICAgIChjb25zb2xlTWVz
c2FnZVNlbnRDYWxsYmFjayk6CisgICAgICAgIChmb3JtQ29udHJvbHNBc3NvY2lhdGVkQ2FsbGJh
Y2spOgorICAgICAgICAod2lsbFN1Ym1pdEZvcm1DYWxsYmFjayk6CisgICAgICAgIChwYWdlQ3Jl
YXRlZENhbGxiYWNrKToKKyAgICAgICAgKG1ldGhvZENhbGxDYWxsYmFjayk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1dlYlByb2Nlc3NUZXN0LmNwcDoKKyAgICAg
ICAgKGNoZWNrTGVha3MpOgorICAgICAgICAod2ViUHJvY2Vzc1Rlc3RSdW5uZXJGaW5hbGl6ZSk6
CisgICAgICAgIChjaGVja0xlYWtzQXRFeGl0KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdEd0ay9BdXRvY2xlYW51cHNUZXN0LmNwcDoKKyAgICAgICAgKEF1dG9jbGVhbnVw
c1Rlc3Q6OnRlc3RXZWJQcm9jZXNzQXV0b2NsZWFudXBzKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdEd0ay9ET01DbGllbnRSZWN0VGVzdC5jcHA6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9NTm9kZUZpbHRlclRlc3QuY3BwOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0RPTU5vZGVUZXN0LmNwcDoKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9ET01YUGF0aE5TUmVzb2x2ZXJUZXN0
LmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9FZGl0b3JUZXN0
LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2dsaWIvQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9nbGliL1BsYXRmb3JtR1RLLmNtYWtlOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvZ2xpYi9QbGF0Zm9ybVdQRS5jbWFrZToKKwogMjAxOC0wMy0y
MSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0dUS11bV1BFXSBKU0MgYmluZGluZ3Mgbm90IGludHJvc3BlY3RhYmxlCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKaW5kZXggZjFiMDkyZDFhZmUuLjMzM2RjZTI2NTY3IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CkBAIC0zNDIsNiArMzQyLDcg
QEAgX1NLSVBQRURfRklMRVNfV0lUSF9XQVJOSU5HID0gWwogICAgIHJlLmNvbXBpbGUocmUuZXNj
YXBlKG9zLnBhdGguam9pbignU291cmNlJywgJ1dlYktpdCcsICdVSVByb2Nlc3MnLCAnQVBJJywg
J3dwZScpICsgb3MucGF0aC5zZXApICsgcidXZWJLaXQoPyEuKlByaXZhdGVcLmgpLipcLmgkJyks
CiAgICAgcmUuY29tcGlsZShyZS5lc2NhcGUob3MucGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViS2l0
JywgJ1dlYlByb2Nlc3MnLCAnSW5qZWN0ZWRCdW5kbGUnLCAnQVBJJywgJ2d0aycpICsgb3MucGF0
aC5zZXApICsgcidXZWJLaXQoPyEuKlByaXZhdGVcLmgpLipcLmgkJyksCiAgICAgcmUuY29tcGls
ZShyZS5lc2NhcGUob3MucGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViS2l0JywgJ1dlYlByb2Nlc3Mn
LCAnSW5qZWN0ZWRCdW5kbGUnLCAnQVBJJywgJ3dwZScpICsgb3MucGF0aC5zZXApICsgcidXZWJL
aXQoPyEuKlByaXZhdGVcLmgpLipcLmgkJyksCisgICAgcmUuY29tcGlsZShyZS5lc2NhcGUob3Mu
cGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViS2l0JywgJ1dlYlByb2Nlc3MnLCAnSW5qZWN0ZWRCdW5k
bGUnLCAnQVBJJywgJ3dwZScsICdET00nKSArIG9zLnBhdGguc2VwKSArIHInV2ViS2l0KD8hLipQ
cml2YXRlXC5oKS4qXC5oJCcpLAogCiAgICAgIyBHT2JqZWN0IERPTSBiaW5kaW5ncyBjb3BpZWQg
ZnJvbSBnZW5lcmF0ZWQgY29kZSB1c2luZyBkaWZmZXJlbnQgY29kaW5nIHN0eWxlLgogICAgIG9z
LnBhdGguam9pbignU291cmNlJywgJ1dlYktpdCcsICdXZWJQcm9jZXNzJywgJ0luamVjdGVkQnVu
ZGxlJywgJ0FQSScsICdndGsnLCAnRE9NJyksCkBAIC0zNTAsNyArMzUxLDggQEAgX1NLSVBQRURf
RklMRVNfV0lUSF9XQVJOSU5HID0gWwogICAgIG9zLnBhdGguam9pbignU291cmNlJywgJ1dlYktp
dCcsICdVSVByb2Nlc3MnLCAnQVBJJywgJ2d0aycsICd3ZWJraXQyLmgnKSwKICAgICBvcy5wYXRo
LmpvaW4oJ1NvdXJjZScsICdXZWJLaXQnLCAnVUlQcm9jZXNzJywgJ0FQSScsICd3cGUnLCAnd2Vi
a2l0LmgnKSwKICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdXZWJLaXQnLCAnV2ViUHJvY2Vz
cycsICdJbmplY3RlZEJ1bmRsZScsICdBUEknLCAnZ3RrJywgJ3dlYmtpdC13ZWItZXh0ZW5zaW9u
LmgnKSwKLSAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdXZWJLaXQnLCAnV2ViUHJvY2Vzcycs
ICdJbmplY3RlZEJ1bmRsZScsICdBUEknLCAnd3BlJywgJ3dlYmtpdC13ZWItZXh0ZW5zaW9uLmgn
KV0KKyAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdXZWJLaXQnLCAnV2ViUHJvY2VzcycsICdJ
bmplY3RlZEJ1bmRsZScsICdBUEknLCAnd3BlJywgJ3dlYmtpdC13ZWItZXh0ZW5zaW9uLmgnKSwK
KyAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdXZWJLaXQnLCAnV2ViUHJvY2VzcycsICdJbmpl
Y3RlZEJ1bmRsZScsICdBUEknLCAnd3BlJywgJ0RPTScsICd3ZWJraXRkb20uaCcpXQogCiAjIEZp
bGVzIHRvIHNraXAgdGhhdCBhcmUgbW9yZSBjb21tb24gb3Igb2J2aW91cy4KICMKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9ET01FbGVtZW50VGVzdC5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvRE9NRWxlbWVudFRlc3Qu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45NTRlMWM1M2UyMAot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9E
T01FbGVtZW50VGVzdC5jcHAKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOCBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJXZWJQcm9j
ZXNzVGVzdC5oIgorI2luY2x1ZGUgPGdpby9naW8uaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5p
cXVlUHRyLmg+CisKK2NsYXNzIERPTUVsZW1lbnRUZXN0IDogcHVibGljIFdlYlByb2Nlc3NUZXN0
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFdlYlByb2Nlc3NUZXN0PiBj
cmVhdGUoKSB7IHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8V2ViUHJvY2Vzc1Rlc3Q+KG5ldyBET01F
bGVtZW50VGVzdCgpKTsgfQorCitwcml2YXRlOgorICAgIGJvb2wgdGVzdEF1dG9GaWxsKFdlYktp
dFdlYlBhZ2UqIHBhZ2UpCisgICAgeworICAgICAgICBXZWJLaXRGcmFtZSogZnJhbWUgPSB3ZWJr
aXRfd2ViX3BhZ2VfZ2V0X21haW5fZnJhbWUocGFnZSk7CisgICAgICAgIGdfYXNzZXJ0X3RydWUo
V0VCS0lUX0lTX0ZSQU1FKGZyYW1lKSk7CisKKyAgICAgICAgR1JlZlB0cjxKU0NDb250ZXh0PiBq
c0NvbnRleHQgPSBhZG9wdEdSZWYod2Via2l0X2ZyYW1lX2dldF9qc19jb250ZXh0KGZyYW1lKSk7
CisgICAgICAgIGdfYXNzZXJ0X3RydWUoSlNDX0lTX0NPTlRFWFQoanNDb250ZXh0LmdldCgpKSk7
CisgICAgICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1Qo
anNDb250ZXh0LmdldCgpKSk7CisKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4ganNJbnB1dEVs
ZW1lbnQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoanNDb250ZXh0LmdldCgpLCAi
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F1dG8tZmlsbCcpIikpOworICAgICAgICBnX2Fzc2Vy
dF90cnVlKEpTQ19JU19WQUxVRShqc0lucHV0RWxlbWVudC5nZXQoKSkpOworICAgICAgICBhc3Nl
cnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKGpzSW5wdXRFbGVtZW50
LmdldCgpKSk7CisgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX29iamVjdChqc0lu
cHV0RWxlbWVudC5nZXQoKSkpOworICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9vYmpl
Y3RfaXNfaW5zdGFuY2Vfb2YoanNJbnB1dEVsZW1lbnQuZ2V0KCksICJIVE1MSW5wdXRFbGVtZW50
IikpOworCisgICAgICAgIGF1dG8qIG5vZGUgPSB3ZWJraXRfZG9tX25vZGVfZm9yX2pzX3ZhbHVl
KGpzSW5wdXRFbGVtZW50LmdldCgpKTsKKyAgICAgICAgZ19hc3NlcnRfdHJ1ZShXRUJLSVRfRE9N
X0lTX05PREUobm9kZSkpOworICAgICAgICBhc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZp
bmlzaGVzKEdfT0JKRUNUKG5vZGUpKTsKKworICAgICAgICBhdXRvKiBlbGVtZW50ID0gV0VCS0lU
X0RPTV9FTEVNRU5UKG5vZGUpOworICAgICAgICBnX2Fzc2VydF9mYWxzZSh3ZWJraXRfZG9tX2Vs
ZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X2dldF9hdXRvX2ZpbGxlZChlbGVtZW50KSk7CisgICAg
ICAgIEdSZWZQdHI8SlNDVmFsdWU+IHZhbHVlID0gYWRvcHRHUmVmKGpzY192YWx1ZV9vYmplY3Rf
Z2V0X3Byb3BlcnR5KGpzSW5wdXRFbGVtZW50LmdldCgpLCAidmFsdWUiKSk7CisgICAgICAgIGdf
YXNzZXJ0X3RydWUoSlNDX0lTX1ZBTFVFKHZhbHVlLmdldCgpKSk7CisgICAgICAgIGdfYXNzZXJ0
X3RydWUoanNjX3ZhbHVlX2lzX3N0cmluZyh2YWx1ZS5nZXQoKSkpOworICAgICAgICBHVW5pcXVl
UHRyPGNoYXI+IHZhbHVlU3RyaW5nKGpzY192YWx1ZV90b19zdHJpbmcodmFsdWUuZ2V0KCkpKTsK
KyAgICAgICAgZ19hc3NlcnRfY21wc3RyKHZhbHVlU3RyaW5nLmdldCgpLCA9PSwgIiIpOworCisg
ICAgICAgIHdlYmtpdF9kb21fZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2VkaXRpbmdf
dmFsdWUoZWxlbWVudCwgImF1dG8gZmlsbGVkIHZhbHVlIik7CisgICAgICAgIHdlYmtpdF9kb21f
ZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2F1dG9fZmlsbGVkKGVsZW1lbnQsIFRSVUUp
OworICAgICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfdmFsdWVfb2JqZWN0X2dldF9wcm9wZXJ0
eShqc0lucHV0RWxlbWVudC5nZXQoKSwgInZhbHVlIikpOworICAgICAgICBnX2Fzc2VydF90cnVl
KEpTQ19JU19WQUxVRSh2YWx1ZS5nZXQoKSkpOworICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192
YWx1ZV9pc19zdHJpbmcodmFsdWUuZ2V0KCkpKTsKKyAgICAgICAgdmFsdWVTdHJpbmcucmVzZXQo
anNjX3ZhbHVlX3RvX3N0cmluZyh2YWx1ZS5nZXQoKSkpOworICAgICAgICBnX2Fzc2VydF9jbXBz
dHIodmFsdWVTdHJpbmcuZ2V0KCksID09LCAiYXV0byBmaWxsZWQgdmFsdWUiKTsKKyAgICAgICAg
Z19hc3NlcnRfdHJ1ZSh3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X2dldF9h
dXRvX2ZpbGxlZChlbGVtZW50KSk7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisg
ICAgYm9vbCBydW5UZXN0KGNvbnN0IGNoYXIqIHRlc3ROYW1lLCBXZWJLaXRXZWJQYWdlKiBwYWdl
KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgaWYgKCFzdHJjbXAodGVzdE5hbWUsICJhdXRvLWZp
bGwiKSkKKyAgICAgICAgICAgIHJldHVybiB0ZXN0QXV0b0ZpbGwocGFnZSk7CisKKyAgICAgICAg
Z19hc3NlcnRfbm90X3JlYWNoZWQoKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK307
CisKK3N0YXRpYyB2b2lkIF9fYXR0cmlidXRlX18oKGNvbnN0cnVjdG9yKSkgcmVnaXN0ZXJUZXN0
cygpCit7CisgICAgUkVHSVNURVJfVEVTVChET01FbGVtZW50VGVzdCwgIldlYktpdERPTUVsZW1l
bnQvYXV0by1maWxsIik7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdEdMaWIvRWRpdG9yVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdEdMaWIvRWRpdG9yVGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmY5ZDA0NDgzMWJlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRHTGliL0VkaXRvclRlc3QuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgUmVkIEhhdCBJbmMuCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKwor
I2luY2x1ZGUgIldlYlByb2Nlc3NUZXN0LmgiCisKK2NsYXNzIFdlYktpdFdlYkVkaXRvclRlc3Qg
OiBwdWJsaWMgV2ViUHJvY2Vzc1Rlc3QgeworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8V2ViUHJvY2Vzc1Rlc3Q+IGNyZWF0ZSgpIHsgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJQcm9jZXNzVGVzdD4obmV3IFdlYktpdFdlYkVkaXRvclRlc3QoKSk7IH0KKworcHJpdmF0ZToK
KyAgICBzdGF0aWMgdm9pZCBzZWxlY3Rpb25DaGFuZ2VkQ2FsbGJhY2soYm9vbCogc2VsZWN0aW9u
Q2hhbmdlZCkKKyAgICB7CisgICAgICAgICpzZWxlY3Rpb25DaGFuZ2VkID0gdHJ1ZTsKKyAgICB9
CisKKyAgICBib29sIHRlc3RTZWxlY3Rpb25jaGFuZ2VkKFdlYktpdFdlYlBhZ2UqIHBhZ2UpCisg
ICAgeworICAgICAgICBib29sIHNlbGVjdGlvbkNoYW5nZWQgPSBmYWxzZTsKKworICAgICAgICBX
ZWJLaXRXZWJFZGl0b3IqIGVkaXRvciA9IHdlYmtpdF93ZWJfcGFnZV9nZXRfZWRpdG9yKHBhZ2Up
OworICAgICAgICBnX2Fzc2VydChXRUJLSVRfSVNfV0VCX0VESVRPUihlZGl0b3IpKTsKKyAgICAg
ICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChlZGl0b3Ip
KTsKKyAgICAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKGVkaXRvciwgInNlbGVjdGlvbi1j
aGFuZ2VkIiwgR19DQUxMQkFDSyhzZWxlY3Rpb25DaGFuZ2VkQ2FsbGJhY2spLCAmc2VsZWN0aW9u
Q2hhbmdlZCk7CisKKyAgICAgICAgR1JlZlB0cjxKU0NDb250ZXh0PiBqc0NvbnRleHQgPSBhZG9w
dEdSZWYod2Via2l0X2ZyYW1lX2dldF9qc19jb250ZXh0KHdlYmtpdF93ZWJfcGFnZV9nZXRfbWFp
bl9mcmFtZShwYWdlKSkpOworICAgICAgICBnX2Fzc2VydChKU0NfSVNfQ09OVEVYVChqc0NvbnRl
eHQuZ2V0KCkpKTsKKyAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hl
cyhHX09CSkVDVChqc0NvbnRleHQuZ2V0KCkpKTsKKworICAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciogc3RlcHNbXSA9IHsKKyAgICAgICAgICAgICJkb2N1bWVudC5leGVjQ29tbWFuZCgnU2VsZWN0
QWxsJykiLAorICAgICAgICAgICAgIndpbmRvdy5nZXRTZWxlY3Rpb24oKS5jb2xsYXBzZVRvU3Rh
cnQoKSIsCisgICAgICAgICAgICAid2luZG93LmdldFNlbGVjdGlvbigpLm1vZGlmeSgnbW92ZScs
ICdmb3J3YXJkJywgJ2NoYXJhY3RlcicpIiwKKyAgICAgICAgICAgICJ3aW5kb3cuZ2V0U2VsZWN0
aW9uKCkubW9kaWZ5KCdleHRlbmQnLCAnZm9yd2FyZCcsICd3b3JkJykiLAorICAgICAgICAgICAg
ImRvY3VtZW50LmV4ZWNDb21tYW5kKCdVbnNlbGVjdCcpIiwKKyAgICAgICAgICAgIG51bGxwdHIK
KyAgICAgICAgfTsKKworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiByZXN1bHQ7CisgICAgICAg
IHVuc2lnbmVkIGkgPSAwOworICAgICAgICB3aGlsZSAoY29uc3QgY2hhciogY29tbWFuZCA9IHN0
ZXBzW2krK10pIHsKKyAgICAgICAgICAgIGdfYXNzZXJ0KCFzZWxlY3Rpb25DaGFuZ2VkKTsKKyAg
ICAgICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShqc0NvbnRl
eHQuZ2V0KCksIGNvbW1hbmQpKTsKKyAgICAgICAgICAgIGdfYXNzZXJ0KEpTQ19JU19WQUxVRShy
ZXN1bHQuZ2V0KCkpKTsKKyAgICAgICAgICAgIGdfYXNzZXJ0KHNlbGVjdGlvbkNoYW5nZWQpOwor
ICAgICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IGZhbHNlOworICAgICAgICB9CisKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgYm9vbCBydW5UZXN0KGNvbnN0IGNoYXIqIHRl
c3ROYW1lLCBXZWJLaXRXZWJQYWdlKiBwYWdlKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgaWYg
KCFzdHJjbXAodGVzdE5hbWUsICJzZWxlY3Rpb24tY2hhbmdlZCIpKQorICAgICAgICAgICAgcmV0
dXJuIHRlc3RTZWxlY3Rpb25jaGFuZ2VkKHBhZ2UpOworCisgICAgICAgIGdfYXNzZXJ0X25vdF9y
ZWFjaGVkKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9OworCitzdGF0aWMgdm9p
ZCBfX2F0dHJpYnV0ZV9fKChjb25zdHJ1Y3RvcikpIHJlZ2lzdGVyVGVzdHMoKQoreworICAgIFJF
R0lTVEVSX1RFU1QoV2ViS2l0V2ViRWRpdG9yVGVzdCwgIldlYktpdFdlYkVkaXRvci9zZWxlY3Rp
b24tY2hhbmdlZCIpOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL0ZyYW1lVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dEdMaWIvRnJhbWVUZXN0LmNwcAppbmRleCA4ODBjMTAzNzUxZC4uZTkxMGJmN2JjM2QgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9GcmFtZVRlc3QuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9GcmFtZVRlc3QuY3Bw
CkBAIC0yMSw2ICsyMSw3IEBACiAKICNpbmNsdWRlICJXZWJQcm9jZXNzVGVzdC5oIgogI2luY2x1
ZGUgPGdpby9naW8uaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKIGNsYXNz
IFdlYktpdEZyYW1lVGVzdCA6IHB1YmxpYyBXZWJQcm9jZXNzVGVzdCB7CiBwdWJsaWM6CkBAIC02
Miw2ICs2Myw3NCBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAg
ICBib29sIHRlc3RKYXZhU2NyaXB0VmFsdWVzKFdlYktpdFdlYlBhZ2UqIHBhZ2UpCisgICAgewor
ICAgICAgICBXZWJLaXRGcmFtZSogZnJhbWUgPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X21haW5fZnJh
bWUocGFnZSk7CisgICAgICAgIGdfYXNzZXJ0KFdFQktJVF9JU19GUkFNRShmcmFtZSkpOworCisg
ICAgICAgIEdSZWZQdHI8SlNDQ29udGV4dD4ganNDb250ZXh0ID0gYWRvcHRHUmVmKHdlYmtpdF9m
cmFtZV9nZXRfanNfY29udGV4dChmcmFtZSkpOworICAgICAgICBnX2Fzc2VydChKU0NfSVNfQ09O
VEVYVChqc0NvbnRleHQuZ2V0KCkpKTsKKyAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hl
blRlc3RGaW5pc2hlcyhHX09CSkVDVChqc0NvbnRleHQuZ2V0KCkpKTsKKworICAgICAgICBXZWJL
aXRET01Eb2N1bWVudCogZG9jdW1lbnQgPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2RvbV9kb2N1bWVu
dChwYWdlKTsKKyAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChkb2N1bWVu
dCkpOworICAgICAgICBhc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JK
RUNUKGRvY3VtZW50KSk7CisKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4ganNEb2N1bWVudCA9
IGFkb3B0R1JlZih3ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0KGZyYW1l
LCBXRUJLSVRfRE9NX09CSkVDVChkb2N1bWVudCkpKTsKKyAgICAgICAgZ19hc3NlcnQoSlNDX0lT
X1ZBTFVFKGpzRG9jdW1lbnQuZ2V0KCkpKTsKKyAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVk
V2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChqc0RvY3VtZW50LmdldCgpKSk7CisgICAgICAgIGdf
YXNzZXJ0KGpzY192YWx1ZV9nZXRfY29udGV4dChqc0RvY3VtZW50LmdldCgpKSA9PSBqc0NvbnRl
eHQuZ2V0KCkpOworCisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHZhbHVlID0gYWRvcHRHUmVm
KGpzY19jb250ZXh0X2dldF92YWx1ZShqc0NvbnRleHQuZ2V0KCksICJkb2N1bWVudCIpKTsKKyAg
ICAgICAgZ19hc3NlcnQodmFsdWUuZ2V0KCkgPT0ganNEb2N1bWVudC5nZXQoKSk7CisKKyNpZiBQ
TEFURk9STShHVEspCisgICAgICAgIEdfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwor
ICAgICAgICBXZWJLaXRET01FbGVtZW50KiBwID0gd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZWxl
bWVudF9ieV9pZChkb2N1bWVudCwgInBhcmFncmFwaCIpOworICAgICAgICBHX0dOVUNfRU5EX0lH
Tk9SRV9ERVBSRUNBVElPTlM7CisgICAgICAgIGdfYXNzZXJ0KFdFQktJVF9ET01fSVNfRUxFTUVO
VChwKSk7CisgICAgICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19P
QkpFQ1QocCkpOworCisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IGpzUCA9IGFkb3B0R1JlZih3
ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0KGZyYW1lLCBXRUJLSVRfRE9N
X09CSkVDVChwKSkpOworI2Vsc2UKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4ganNQID0gYWRv
cHRHUmVmKGpzY192YWx1ZV9vYmplY3RfaW52b2tlX21ldGhvZChqc0RvY3VtZW50LmdldCgpLCAi
Z2V0RWxlbWVudEJ5SWQiLCBHX1RZUEVfU1RSSU5HLCAicGFyYWdyYXBoIiwgR19UWVBFX05PTkUp
KTsKKyNlbmRpZgorICAgICAgICBnX2Fzc2VydChKU0NfSVNfVkFMVUUoanNQLmdldCgpKSk7Cisg
ICAgICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1QoanNQ
LmdldCgpKSk7CisgICAgICAgIGdfYXNzZXJ0KGpzY192YWx1ZV9pc19vYmplY3QoanNQLmdldCgp
KSk7CisgICAgICAgIGdfYXNzZXJ0KGpzY192YWx1ZV9nZXRfY29udGV4dChqc1AuZ2V0KCkpID09
IGpzQ29udGV4dC5nZXQoKSk7CisKKyAgICAgICAgdmFsdWUgPSBhZG9wdEdSZWYoanNjX2NvbnRl
eHRfZXZhbHVhdGUoanNDb250ZXh0LmdldCgpLCAiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bh
cmFncmFwaCcpIikpOworICAgICAgICBnX2Fzc2VydCh2YWx1ZS5nZXQoKSA9PSBqc1AuZ2V0KCkp
OworI2lmIFBMQVRGT1JNKEdUSykKKyAgICAgICAgdmFsdWUgPSBhZG9wdEdSZWYoanNjX3ZhbHVl
X29iamVjdF9pbnZva2VfbWV0aG9kKGpzRG9jdW1lbnQuZ2V0KCksICJnZXRFbGVtZW50QnlJZCIs
IEdfVFlQRV9TVFJJTkcsICJwYXJhZ3JhcGgiLCBHX1RZUEVfTk9ORSkpOworICAgICAgICBnX2Fz
c2VydCh2YWx1ZS5nZXQoKSA9PSBqc1AuZ2V0KCkpOworI2VuZGlmCisKKyAgICAgICAgdmFsdWUg
PSBhZG9wdEdSZWYoanNjX3ZhbHVlX29iamVjdF9nZXRfcHJvcGVydHkoanNQLmdldCgpLCAiaW5u
ZXJUZXh0IikpOworICAgICAgICBnX2Fzc2VydChKU0NfSVNfVkFMVUUodmFsdWUuZ2V0KCkpKTsK
KyAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVCh2
YWx1ZS5nZXQoKSkpOworICAgICAgICBnX2Fzc2VydChqc2NfdmFsdWVfaXNfc3RyaW5nKHZhbHVl
LmdldCgpKSk7CisgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gc3RyVmFsdWUoanNjX3ZhbHVlX3Rv
X3N0cmluZyh2YWx1ZS5nZXQoKSkpOworICAgICAgICBnX2Fzc2VydF9jbXBzdHIoc3RyVmFsdWUu
Z2V0KCksID09LCAiVGhpcyBpcyBhIHRlc3QiKTsKKworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVl
PiBqc0ltYWdlID0gYWRvcHRHUmVmKGpzY192YWx1ZV9vYmplY3RfaW52b2tlX21ldGhvZChqc0Rv
Y3VtZW50LmdldCgpLCAiZ2V0RWxlbWVudEJ5SWQiLCBHX1RZUEVfU1RSSU5HLCAiaW1hZ2UiLCBH
X1RZUEVfTk9ORSkpOworICAgICAgICBnX2Fzc2VydChKU0NfSVNfVkFMVUUoanNJbWFnZS5nZXQo
KSkpOworICAgICAgICBhc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JK
RUNUKGpzSW1hZ2UuZ2V0KCkpKTsKKyAgICAgICAgZ19hc3NlcnQoanNjX3ZhbHVlX2lzX29iamVj
dChqc0ltYWdlLmdldCgpKSk7CisKKyAgICAgICAgV2ViS2l0RE9NTm9kZSogaW1hZ2UgPSB3ZWJr
aXRfZG9tX25vZGVfZm9yX2pzX3ZhbHVlKGpzSW1hZ2UuZ2V0KCkpOworICAgICAgICBnX2Fzc2Vy
dChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoaW1hZ2UpKTsKKyAgICAgICAgYXNzZXJ0T2JqZWN0SXNE
ZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChpbWFnZSkpOworI2lmIFBMQVRGT1JNKEdU
SykKKyAgICAgICAgR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisgICAgICAgIGdf
YXNzZXJ0KHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRfYnlfaWQoZG9jdW1lbnQsICJp
bWFnZSIpID09IFdFQktJVF9ET01fRUxFTUVOVChpbWFnZSkpOworICAgICAgICBHX0dOVUNfRU5E
X0lHTk9SRV9ERVBSRUNBVElPTlM7CisjZW5kaWYKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisKICAgICBib29sIHJ1blRlc3QoY29uc3QgY2hhciogdGVzdE5hbWUsIFdlYktpdFdlYlBh
Z2UqIHBhZ2UpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAoIXN0cmNtcCh0ZXN0TmFtZSwg
Im1haW4tZnJhbWUiKSkKQEAgLTcwLDYgKzEzOSw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBy
ZXR1cm4gdGVzdFVSSShwYWdlKTsKICAgICAgICAgaWYgKCFzdHJjbXAodGVzdE5hbWUsICJqYXZh
c2NyaXB0LWNvbnRleHQiKSkKICAgICAgICAgICAgIHJldHVybiB0ZXN0SmF2YVNjcmlwdENvbnRl
eHQocGFnZSk7CisgICAgICAgIGlmICghc3RyY21wKHRlc3ROYW1lLCAiamF2YXNjcmlwdC12YWx1
ZXMiKSkKKyAgICAgICAgICAgIHJldHVybiB0ZXN0SmF2YVNjcmlwdFZhbHVlcyhwYWdlKTsKIAog
ICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBA
IC04MSw0ICsxNTIsNSBAQCBzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fKChjb25zdHJ1Y3Rvcikp
IHJlZ2lzdGVyVGVzdHMoKQogICAgIFJFR0lTVEVSX1RFU1QoV2ViS2l0RnJhbWVUZXN0LCAiV2Vi
S2l0RnJhbWUvbWFpbi1mcmFtZSIpOwogICAgIFJFR0lTVEVSX1RFU1QoV2ViS2l0RnJhbWVUZXN0
LCAiV2ViS2l0RnJhbWUvdXJpIik7CiAgICAgUkVHSVNURVJfVEVTVChXZWJLaXRGcmFtZVRlc3Qs
ICJXZWJLaXRGcmFtZS9qYXZhc2NyaXB0LWNvbnRleHQiKTsKKyAgICBSRUdJU1RFUl9URVNUKFdl
YktpdEZyYW1lVGVzdCwgIldlYktpdEZyYW1lL2phdmFzY3JpcHQtdmFsdWVzIik7CiB9CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdERPTUVsZW1l
bnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RET01FbGVt
ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2QyODA0NmJm
MjQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdM
aWIvVGVzdERPTUVsZW1lbnQuY3BwCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTggSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiwxIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIldl
YlZpZXdUZXN0LmgiCisKK3N0YXRpYyB2b2lkIHRlc3RXZWJLaXRET01FbGVtZW50QXV0b0ZpbGwo
V2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAgc3RhdGljIGNvbnN0IGdj
aGFyKiB0ZXN0SFRNTCA9ICI8aHRtbD48Ym9keT48Zm9ybSBhY3Rpb249JyMnPjxpbnB1dCBpZD0n
YXV0by1maWxsJz48L2lucHV0PjwvZm9ybT48L2JvZHk+PC9odG1sPiI7CisgICAgZ19hc3NlcnQo
dGVzdC0+cnVuV2ViUHJvY2Vzc1Rlc3QoIldlYktpdERPTUVsZW1lbnQiLCAiYXV0by1maWxsIiwg
dGVzdEhUTUwpKTsKK30KKwordm9pZCBiZWZvcmVBbGwoKQoreworICAgIFdlYlZpZXdUZXN0Ojph
ZGQoIldlYktpdERPTUVsZW1lbnQiLCAiYXV0by1maWxsIiwgdGVzdFdlYktpdERPTUVsZW1lbnRB
dXRvRmlsbCk7Cit9CisKK3ZvaWQgYWZ0ZXJBbGwoKQoreworfQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdEVkaXRvci5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEVkaXRvci5jcHAKc2ltaWxhcml0eSBpbmRl
eCA5NiUKcmVuYW1lIGZyb20gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVz
dEVkaXRvci5jcHAKcmVuYW1lIHRvIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xp
Yi9UZXN0RWRpdG9yLmNwcAppbmRleCBkMzRlZmVjZDE5MS4uNThiZTUzZTNiZWQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL1Rlc3RFZGl0b3IuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0RWRpdG9yLmNwcApA
QCAtMjAsOCArMjAsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAiV2ViVmll
d1Rlc3QuaCIKLSNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0jaW5jbHVkZSA8d2Via2l0Mi93ZWJraXQy
Lmg+CiAKIHN0YXRpYyB2b2lkIHRlc3RXZWJLaXRXZWJFZGl0b3JTZWxlY3Rpb25DaGFuZ2VkKFdl
YlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RGcmFtZS5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEZyYW1lLmNwcAppbmRleCAyMzQxZmIzMTZkZS4u
NmYzMzcyOWIxODAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
R0xpYi9UZXN0RnJhbWUuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
R0xpYi9UZXN0RnJhbWUuY3BwCkBAIC0zNiwxMSArMzYsMTggQEAgc3RhdGljIHZvaWQgdGVzdFdl
YktpdEZyYW1lSmF2YVNjcmlwdENvbnRleHQoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50
ZXIpCiAgICAgZ19hc3NlcnQodGVzdC0+cnVuV2ViUHJvY2Vzc1Rlc3QoIldlYktpdEZyYW1lIiwg
ImphdmFzY3JpcHQtY29udGV4dCIpKTsKIH0KIAorc3RhdGljIHZvaWQgdGVzdFdlYktpdEZyYW1l
SmF2YVNjcmlwdFZhbHVlcyhXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAg
ICBzdGF0aWMgY29uc3QgY2hhciogdGVzdEhUTUwgPSAiPGh0bWw+PGJvZHk+PHAgaWQ9J3BhcmFn
cmFwaCc+VGhpcyBpcyBhIHRlc3Q8L3A+PGltZyBpZD0naW1hZ2UnIHNyYz0nZm9vLnBuZyc+PC9i
b2R5PjwvaHRtbD4iOworICAgIGdfYXNzZXJ0KHRlc3QtPnJ1bldlYlByb2Nlc3NUZXN0KCJXZWJL
aXRGcmFtZSIsICJqYXZhc2NyaXB0LXZhbHVlcyIsIHRlc3RIVE1MKSk7Cit9CisKIHZvaWQgYmVm
b3JlQWxsKCkKIHsKICAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRGcmFtZSIsICJtYWluLWZy
YW1lIiwgdGVzdFdlYktpdEZyYW1lTWFpbkZyYW1lKTsKICAgICBXZWJWaWV3VGVzdDo6YWRkKCJX
ZWJLaXRGcmFtZSIsICJ1cmkiLCB0ZXN0V2ViS2l0RnJhbWVVUkkpOwogICAgIFdlYlZpZXdUZXN0
OjphZGQoIldlYktpdEZyYW1lIiwgImphdmFzY3JpcHQtY29udGV4dCIsIHRlc3RXZWJLaXRGcmFt
ZUphdmFTY3JpcHRDb250ZXh0KTsKKyAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRGcmFtZSIs
ICJqYXZhc2NyaXB0LXZhbHVlcyIsIHRlc3RXZWJLaXRGcmFtZUphdmFTY3JpcHRWYWx1ZXMpOwog
fQogCiB2b2lkIGFmdGVyQWxsKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R0xpYi9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYkV4dGVuc2lvbnMuY3BwCmluZGV4IGRmMDQzZGRmMDYw
Li45OGZhNzI0MTJkNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRHTGliL1Rlc3RXZWJFeHRlbnNpb25zLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdEdMaWIvVGVzdFdlYkV4dGVuc2lvbnMuY3BwCkBAIC0zMiw3ICszMiw2IEBAIHN0
YXRpYyBHVW5pcXVlUHRyPGNoYXI+IHNjcmlwdERpYWxvZ1Jlc3VsdDsKIAogI2RlZmluZSBGT1JN
X1NVQk1JU1NJT05fVEVTVF9JRCAiZm9ybS1zdWJtaXNzaW9uLXRlc3QtaWQiCiAKLSNpZiBQTEFU
Rk9STShHVEspCiBzdGF0aWMgdm9pZCB0ZXN0V2ViRXh0ZW5zaW9uR2V0VGl0bGUoV2ViVmlld1Rl
c3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiB7CiAgICAgdGVzdC0+bG9hZEh0bWwoIjxodG1sPjxo
ZWFkPjx0aXRsZT5XZWJLaXRHVEsrIFdlYiBFeHRlbnNpb25zIFRlc3Q8L3RpdGxlPjwvaGVhZD48
Ym9keT48L2JvZHk+PC9odG1sPiIsIDApOwpAQCAtNTMsNiArNTIsNTkgQEAgc3RhdGljIHZvaWQg
dGVzdFdlYkV4dGVuc2lvbkdldFRpdGxlKFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVy
KQogICAgIGdfdmFyaWFudF9nZXQocmVzdWx0LmdldCgpLCAiKCZzKSIsICZ0aXRsZSk7CiAgICAg
Z19hc3NlcnRfY21wc3RyKHRpdGxlLCA9PSwgIldlYktpdEdUSysgV2ViIEV4dGVuc2lvbnMgVGVz
dCIpOwogfQorCisjaWYgUExBVEZPUk0oR1RLKQorc3RhdGljIGdib29sZWFuIGlucHV0RWxlbWVu
dElzVXNlckVkaXRlZChHREJ1c1Byb3h5KiBwcm94eSwgdWludDY0X3QgcGFnZUlELCBjb25zdCBj
aGFyKiBlbGVtZW50SUQpCit7CisgICAgR1JlZlB0cjxHVmFyaWFudD4gcmVzdWx0ID0gYWRvcHRH
UmVmKGdfZGJ1c19wcm94eV9jYWxsX3N5bmMoCisgICAgICAgIHByb3h5LAorICAgICAgICAiSW5w
dXRFbGVtZW50SXNVc2VyRWRpdGVkIiwKKyAgICAgICAgZ192YXJpYW50X25ldygiKHQmcykiLCBw
YWdlSUQsIGVsZW1lbnRJRCksCisgICAgICAgIEdfREJVU19DQUxMX0ZMQUdTX05PTkUsCisgICAg
ICAgIC0xLCBudWxscHRyLCBudWxscHRyKSk7CisgICAgZ19hc3NlcnRfbm9ubnVsbChyZXN1bHQp
OworCisgICAgZ2Jvb2xlYW4gcmV0dmFsOworICAgIGdfdmFyaWFudF9nZXQocmVzdWx0LmdldCgp
LCAiKGIpIiwgJnJldHZhbCk7CisgICAgcmV0dXJuIHJldHZhbDsKK30KKworc3RhdGljIHZvaWQg
dGVzdFdlYkV4dGVuc2lvbklucHV0RWxlbWVudElzVXNlckVkaXRlZChXZWJWaWV3VGVzdCogdGVz
dCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAgICB0ZXN0LT5zaG93SW5XaW5kb3dBbmRXYWl0VW50aWxN
YXBwZWQoKTsKKyAgICB0ZXN0LT5sb2FkSHRtbCgiPGh0bWw+PGJvZHkgaWQ9J2JvZHknPjxpbnB1
dCBpZD0naW5wdXQnPjwvaW5wdXQ+PHRleHRhcmVhIGlkPSd0ZXh0YXJlYSc+PC90ZXh0YXJlYT48
L2JvZHk+PC9odG1sPiIsIG51bGxwdHIpOworICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hl
ZCgpOworCisgICAgR1VuaXF1ZVB0cjxjaGFyPiBleHRlbnNpb25CdXNOYW1lKGdfc3RyZHVwX3By
aW50Zigib3JnLndlYmtpdC5ndGsuV2ViRXh0ZW5zaW9uVGVzdCV1IiwgVGVzdDo6c193ZWJFeHRl
bnNpb25JRCkpOworICAgIEdSZWZQdHI8R0RCdXNQcm94eT4gcHJveHkgPSBhZG9wdEdSZWYoYnVz
LT5jcmVhdGVQcm94eShleHRlbnNpb25CdXNOYW1lLmdldCgpLAorICAgICAgICAiL29yZy93ZWJr
aXQvZ3RrL1dlYkV4dGVuc2lvblRlc3QiLCAib3JnLndlYmtpdC5ndGsuV2ViRXh0ZW5zaW9uVGVz
dCIsIHRlc3QtPm1fbWFpbkxvb3ApKTsKKworICAgIHVpbnQ2NF90IHBhZ2VJRCA9IHdlYmtpdF93
ZWJfdmlld19nZXRfcGFnZV9pZCh0ZXN0LT5tX3dlYlZpZXcpOworICAgIGdfYXNzZXJ0X2ZhbHNl
KGlucHV0RWxlbWVudElzVXNlckVkaXRlZChwcm94eS5nZXQoKSwgcGFnZUlELCAiaW5wdXQiKSk7
CisgICAgdGVzdC0+cnVuSmF2YVNjcmlwdEFuZFdhaXRVbnRpbEZpbmlzaGVkKCJkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaW5wdXQnKS5mb2N1cygpIiwgbnVsbHB0cik7CisgICAgdGVzdC0+a2V5
U3Ryb2tlKEdES19LRVlfYSk7CisgICAgd2hpbGUgKGd0a19ldmVudHNfcGVuZGluZygpKQorICAg
ICAgICBndGtfbWFpbl9pdGVyYXRpb24oKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IHJlc3VsdFN0
cmluZzsKKyAgICBkbyB7CisgICAgICAgIGF1dG8qIHJlc3VsdCA9IHRlc3QtPnJ1bkphdmFTY3Jp
cHRBbmRXYWl0VW50aWxGaW5pc2hlZCgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0Jyku
dmFsdWUiLCBudWxscHRyKTsKKyAgICAgICAgcmVzdWx0U3RyaW5nLnJlc2V0KFdlYlZpZXdUZXN0
OjpqYXZhc2NyaXB0UmVzdWx0VG9DU3RyaW5nKHJlc3VsdCkpOworICAgIH0gd2hpbGUgKGdfc3Ry
Y21wMChyZXN1bHRTdHJpbmcuZ2V0KCksICJhIikpOworICAgIGdfYXNzZXJ0X3RydWUoaW5wdXRF
bGVtZW50SXNVc2VyRWRpdGVkKHByb3h5LmdldCgpLCBwYWdlSUQsICJpbnB1dCIpKTsKKworICAg
IGdfYXNzZXJ0X2ZhbHNlKGlucHV0RWxlbWVudElzVXNlckVkaXRlZChwcm94eS5nZXQoKSwgcGFn
ZUlELCAidGV4dGFyZWEiKSk7CisgICAgdGVzdC0+cnVuSmF2YVNjcmlwdEFuZFdhaXRVbnRpbEZp
bmlzaGVkKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dGFyZWEnKS5mb2N1cygpIiwgbnVs
bHB0cik7CisgICAgdGVzdC0+a2V5U3Ryb2tlKEdES19LRVlfYik7CisgICAgd2hpbGUgKGd0a19l
dmVudHNfcGVuZGluZygpKQorICAgICAgICBndGtfbWFpbl9pdGVyYXRpb24oKTsKKyAgICBkbyB7
CisgICAgICAgIGF1dG8qIHJlc3VsdCA9IHRlc3QtPnJ1bkphdmFTY3JpcHRBbmRXYWl0VW50aWxG
aW5pc2hlZCgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHRhcmVhJykudmFsdWUiLCBudWxs
cHRyKTsKKyAgICAgICAgcmVzdWx0U3RyaW5nLnJlc2V0KFdlYlZpZXdUZXN0OjpqYXZhc2NyaXB0
UmVzdWx0VG9DU3RyaW5nKHJlc3VsdCkpOworICAgIH0gd2hpbGUgKGdfc3RyY21wMChyZXN1bHRT
dHJpbmcuZ2V0KCksICJiIikpOworICAgIGdfYXNzZXJ0X3RydWUoaW5wdXRFbGVtZW50SXNVc2Vy
RWRpdGVkKHByb3h5LmdldCgpLCBwYWdlSUQsICJ0ZXh0YXJlYSIpKTsKKworICAgIGdfYXNzZXJ0
X2ZhbHNlKGlucHV0RWxlbWVudElzVXNlckVkaXRlZChwcm94eS5nZXQoKSwgcGFnZUlELCAiYm9k
eSIpKTsKK30KICNlbmRpZgogCiBzdGF0aWMgdm9pZCBkb2N1bWVudExvYWRlZENhbGxiYWNrKEdE
QnVzQ29ubmVjdGlvbiosIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKiwgY29uc3QgY2hhciosIGNv
bnN0IGNoYXIqLCBHVmFyaWFudCosIFdlYlZpZXdUZXN0KiB0ZXN0KQpAQCAtMjIwLDYgKzI3Miw3
IEBAIHN0YXRpYyB2b2lkIHRlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNQZXJtaXNzaW9uUmVxdWVz
dChXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0CiAgICAgZ19tYWluX2xvb3BfcnVuKHRlc3QtPm1f
bWFpbkxvb3ApOwogICAgIGdfc2lnbmFsX2hhbmRsZXJfZGlzY29ubmVjdCh0ZXN0LT5tX3dlYlZp
ZXcsIHBlcm1pc3Npb25SZXF1ZXN0U2lnbmFsSUQpOwogfQorI2VuZGlmIC8vIFBMQVRGT1JNKEdU
SykKIAogc3RhdGljIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzQ2FsbGJhY2soR0RCdXND
b25uZWN0aW9uKiwgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKiwgY29uc3Qg
Y2hhciosIEdWYXJpYW50KiByZXN1bHQsIFdlYlZpZXdUZXN0KiB0ZXN0KQogewpAQCAtMzk5LDcg
KzQ1Miw2IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJFeHRlbnNpb25Gb3JtU3VibWlzc2lvblN0ZXBz
KEZvcm1TdWJtaXNzaW9uVGVzdCogdGVzdCwgZ2NvbnN0CiAgICAgICAgICI8aWZyYW1lIG5hbWU9
XCJ0YXJnZXRfZnJhbWVcIj48L2lmcmFtZT4iLCBudWxscHRyKTsKICAgICB0ZXN0LT53YWl0VW50
aWxMb2FkRmluaXNoZWQoKTsKIH0KLSNlbmRpZiAvLyBQTEFURk9STShHVEspCiAKIHZvaWQgYmVm
b3JlQWxsKCkKIHsKQEAgLTQwNyw5ICs0NTksOSBAQCB2b2lkIGJlZm9yZUFsbCgpCiAgICAgaWYg
KCFidXMtPnJ1bigpKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBGSVhNRTogVXNlIEpTQyBB
UEkgaW4gdGhlIGV4dGVuc2lvbiB0byBnZXQgdGhlIHRpdGxlIGZyb20gSmF2YVNjcmlwdC4KLSNp
ZiBQTEFURk9STShHVEspCiAgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0V2ViRXh0ZW5zaW9u
IiwgImRvbS1kb2N1bWVudC10aXRsZSIsIHRlc3RXZWJFeHRlbnNpb25HZXRUaXRsZSk7CisjaWYg
UExBVEZPUk0oR1RLKQorICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktpdFdlYkV4dGVuc2lvbiIs
ICJkb20taW5wdXQtZWxlbWVudC1pcy11c2VyLWVkaXRlZCIsIHRlc3RXZWJFeHRlbnNpb25JbnB1
dEVsZW1lbnRJc1VzZXJFZGl0ZWQpOwogI2VuZGlmCiAgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2Vi
S2l0V2ViRXh0ZW5zaW9uIiwgImRvY3VtZW50LWxvYWRlZC1zaWduYWwiLCB0ZXN0RG9jdW1lbnRM
b2FkZWRTaWduYWwpOwogICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAid2Vi
LXByb2Nlc3MtY3Jhc2hlZCIsIHRlc3RXZWJLaXRXZWJWaWV3UHJvY2Vzc0NyYXNoZWQpOwpAQCAt
NDE3LDkgKzQ2OSw5IEBAIHZvaWQgYmVmb3JlQWxsKCkKICAgICBXZWJWaWV3VGVzdDo6YWRkKCJX
ZWJLaXRXZWJFeHRlbnNpb24iLCAiaXNvbGF0ZWQtd29ybGQiLCB0ZXN0V2ViRXh0ZW5zaW9uSXNv
bGF0ZWRXb3JsZCk7CiAjaWYgUExBVEZPUk0oR1RLKQogICAgIFdlYlZpZXdUZXN0OjphZGQoIldl
YktpdFdlYlZpZXciLCAiaW5zdGFsbC1taXNzaW5nLXBsdWdpbnMtcGVybWlzc2lvbi1yZXF1ZXN0
IiwgdGVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0KTsKKyNlbmRpZgog
ICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktpdFdlYkV4dGVuc2lvbiIsICJmb3JtLWNvbnRyb2xz
LWFzc29jaWF0ZWQtc2lnbmFsIiwgdGVzdFdlYkV4dGVuc2lvbkZvcm1Db250cm9sc0Fzc29jaWF0
ZWQpOwogICAgIEZvcm1TdWJtaXNzaW9uVGVzdDo6YWRkKCJXZWJLaXRXZWJFeHRlbnNpb24iLCAi
Zm9ybS1zdWJtaXNzaW9uLXN0ZXBzIiwgdGVzdFdlYkV4dGVuc2lvbkZvcm1TdWJtaXNzaW9uU3Rl
cHMpOwotI2VuZGlmCiB9CiAKIHZvaWQgYWZ0ZXJBbGwoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1dlYkV4dGVuc2lvblRlc3QuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1dlYkV4dGVuc2lvblRlc3QuY3BwCmluZGV4
IDQ3NDUxMWVkYjgyLi5iNWVmY2Q5ZDk2OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRHTGliL1dlYkV4dGVuc2lvblRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9XZWJFeHRlbnNpb25UZXN0LmNwcApAQCAtNDcsNiAr
NDcsMTEgQEAgc3RhdGljIGNvbnN0IGNoYXIgaW50cm9zcGVjdGlvblhNTFtdID0KICAgICAiICAg
PGFyZyB0eXBlPSd0JyBuYW1lPSdwYWdlSUQnIGRpcmVjdGlvbj0naW4nLz4iCiAgICAgIiAgIDxh
cmcgdHlwZT0ncycgbmFtZT0ndGl0bGUnIGRpcmVjdGlvbj0nb3V0Jy8+IgogICAgICIgIDwvbWV0
aG9kPiIKKyAgICAiICA8bWV0aG9kIG5hbWU9J0lucHV0RWxlbWVudElzVXNlckVkaXRlZCc+Igor
ICAgICIgICAgPGFyZyB0eXBlPSd0JyBuYW1lPSdwYWdlSUQnIGRpcmVjdGlvbj0naW4nLz4iCisg
ICAgIiAgICA8YXJnIHR5cGU9J3MnIG5hbWU9J2VsZW1lbnRJRCcgZGlyZWN0aW9uPSdpbicvPiIK
KyAgICAiICAgIDxhcmcgdHlwZT0nYicgbmFtZT0naXNVc2VyRWRpdGVkJyBkaXJlY3Rpb249J291
dCcvPiIKKyAgICAiICA8L21ldGhvZD4iCiAgICAgIiAgPG1ldGhvZCBuYW1lPSdBYm9ydFByb2Nl
c3MnPiIKICAgICAiICA8L21ldGhvZD4iCiAgICAgIiAgPG1ldGhvZCBuYW1lPSdSdW5KYXZhU2Ny
aXB0SW5Jc29sYXRlZFdvcmxkJz4iCkBAIC04NiwxMSArOTEsOSBAQCBzdGF0aWMgY29uc3QgY2hh
ciBpbnRyb3NwZWN0aW9uWE1MW10gPQogdHlwZWRlZiBlbnVtIHsKICAgICBEb2N1bWVudExvYWRl
ZFNpZ25hbCwKICAgICBVUklDaGFuZ2VkU2lnbmFsLAotI2lmIFBMQVRGT1JNKEdUSykKICAgICBG
b3JtQ29udHJvbHNBc3NvY2lhdGVkU2lnbmFsLAogICAgIEZvcm1TdWJtaXNzaW9uV2lsbFNlbmRE
T01FdmVudFNpZ25hbCwKICAgICBGb3JtU3VibWlzc2lvbldpbGxDb21wbGV0ZVNpZ25hbCwKLSNl
bmRpZgogfSBEZWxheWVkU2lnbmFsVHlwZTsKIAogc3RydWN0IERlbGF5ZWRTaWduYWwgewpAQCAt
MTQyLDggKzE0NSwxMCBAQCBzdGF0aWMgdm9pZCBkb2N1bWVudExvYWRlZENhbGxiYWNrKFdlYktp
dFdlYlBhZ2UqIHdlYlBhZ2UsIFdlYktpdFdlYkV4dGVuc2lvbiogZQogewogI2lmIFBMQVRGT1JN
KEdUSykKICAgICBXZWJLaXRET01Eb2N1bWVudCogZG9jdW1lbnQgPSB3ZWJraXRfd2ViX3BhZ2Vf
Z2V0X2RvbV9kb2N1bWVudCh3ZWJQYWdlKTsKKyAgICBHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJF
Q0FUSU9OUzsKICAgICBHUmVmUHRyPFdlYktpdERPTURPTVdpbmRvdz4gd2luZG93ID0gYWRvcHRH
UmVmKHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2RlZmF1bHRfdmlldyhkb2N1bWVudCkpOwogICAg
IHdlYmtpdF9kb21fZG9tX3dpbmRvd193ZWJraXRfbWVzc2FnZV9oYW5kbGVyc19wb3N0X21lc3Nh
Z2Uod2luZG93LmdldCgpLCAiZG9tIiwgIkRvY3VtZW50TG9hZGVkIik7CisgICAgR19HTlVDX0VO
RF9JR05PUkVfREVQUkVDQVRJT05TOwogI2VuZGlmCiAKICAgICBncG9pbnRlciBkYXRhID0gZ19v
YmplY3RfZ2V0X2RhdGEoR19PQkpFQ1QoZXh0ZW5zaW9uKSwgImRidXMtY29ubmVjdGlvbiIpOwpA
QCAtMjE3LDggKzIyMiw2IEBAIHN0YXRpYyBnYm9vbGVhbiBzZW5kUmVxdWVzdENhbGxiYWNrKFdl
YktpdFdlYlBhZ2UqLCBXZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0LCBXCiAgICAgcmV0dXJuIHJl
dHVyblZhbHVlOwogfQogCi0vLyBGSVhNRTogZmlndXJlIG91dCB3aGF0IHRvIGRvIHdpdGggV2Vi
S2l0V2ViSGl0VGVzdFJlc3VsdCBpbiBXUEUuCi0jaWYgUExBVEZPUk0oR1RLKQogc3RhdGljIEdW
YXJpYW50KiBzZXJpYWxpemVDb250ZXh0TWVudShXZWJLaXRDb250ZXh0TWVudSogbWVudSkKIHsK
ICAgICBHVmFyaWFudEJ1aWxkZXIgYnVpbGRlcjsKQEAgLTIyOSwxNSArMjMyLDIzIEBAIHN0YXRp
YyBHVmFyaWFudCogc2VyaWFsaXplQ29udGV4dE1lbnUoV2ViS2l0Q29udGV4dE1lbnUqIG1lbnUp
CiAgICAgcmV0dXJuIGdfdmFyaWFudF9idWlsZGVyX2VuZCgmYnVpbGRlcik7CiB9CiAKLXN0YXRp
YyBHVmFyaWFudCogc2VyaWFsaXplTm9kZShXZWJLaXRET01Ob2RlKiBub2RlKQorc3RhdGljIEdW
YXJpYW50KiBzZXJpYWxpemVOb2RlKEpTQ1ZhbHVlKiBub2RlKQogewogICAgIEdWYXJpYW50QnVp
bGRlciBidWlsZGVyOwogICAgIGdfdmFyaWFudF9idWlsZGVyX2luaXQoJmJ1aWxkZXIsIEdfVkFS
SUFOVF9UWVBFX0FSUkFZKTsKLSAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmJ1aWxkZXIsICJ7
c3Z9IiwgIk5hbWUiLCBnX3ZhcmlhbnRfbmV3X3Rha2Vfc3RyaW5nKHdlYmtpdF9kb21fbm9kZV9n
ZXRfbm9kZV9uYW1lKG5vZGUpKSk7Ci0gICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZidWlsZGVy
LCAie3N2fSIsICJUeXBlIiwgZ192YXJpYW50X25ld191aW50MzIod2Via2l0X2RvbV9ub2RlX2dl
dF9ub2RlX3R5cGUobm9kZSkpKTsKLSAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmJ1aWxkZXIs
ICJ7c3Z9IiwgIkNvbnRlbnRzIiwgZ192YXJpYW50X25ld190YWtlX3N0cmluZyh3ZWJraXRfZG9t
X25vZGVfZ2V0X3RleHRfY29udGVudChub2RlKSkpOwotICAgIFdlYktpdERPTU5vZGUqIHBhcmVu
dCA9IHdlYmtpdF9kb21fbm9kZV9nZXRfcGFyZW50X25vZGUobm9kZSk7Ci0gICAgZ192YXJpYW50
X2J1aWxkZXJfYWRkKCZidWlsZGVyLCAie3N2fSIsICJQYXJlbnQiLCBwYXJlbnQgPyBnX3Zhcmlh
bnRfbmV3X3Rha2Vfc3RyaW5nKHdlYmtpdF9kb21fbm9kZV9nZXRfbm9kZV9uYW1lKHBhcmVudCkp
IDogZ192YXJpYW50X25ld19zdHJpbmcoIlJPT1QiKSk7CisgICAgR1JlZlB0cjxKU0NWYWx1ZT4g
dmFsdWUgPSBhZG9wdEdSZWYoanNjX3ZhbHVlX29iamVjdF9nZXRfcHJvcGVydHkobm9kZSwgIm5v
ZGVOYW1lIikpOworICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAi
TmFtZSIsIGdfdmFyaWFudF9uZXdfdGFrZV9zdHJpbmcoanNjX3ZhbHVlX3RvX3N0cmluZyh2YWx1
ZS5nZXQoKSkpKTsKKyAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfdmFsdWVfb2JqZWN0X2dldF9w
cm9wZXJ0eShub2RlLCAibm9kZVR5cGUiKSk7CisgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZi
dWlsZGVyLCAie3N2fSIsICJUeXBlIiwgZ192YXJpYW50X25ld191aW50MzIoanNjX3ZhbHVlX3Rv
X2ludDMyKHZhbHVlLmdldCgpKSkpOworICAgIHZhbHVlID0gYWRvcHRHUmVmKGpzY192YWx1ZV9v
YmplY3RfZ2V0X3Byb3BlcnR5KG5vZGUsICJ0ZXh0Q29udGVudCIpKTsKKyAgICBnX3ZhcmlhbnRf
YnVpbGRlcl9hZGQoJmJ1aWxkZXIsICJ7c3Z9IiwgIkNvbnRlbnRzIiwgZ192YXJpYW50X25ld190
YWtlX3N0cmluZyhqc2NfdmFsdWVfdG9fc3RyaW5nKHZhbHVlLmdldCgpKSkpOworICAgIHZhbHVl
ID0gYWRvcHRHUmVmKGpzY192YWx1ZV9vYmplY3RfZ2V0X3Byb3BlcnR5KG5vZGUsICJwYXJlbnRO
b2RlIikpOworICAgIGlmIChqc2NfdmFsdWVfaXNfbnVsbCh2YWx1ZS5nZXQoKSkpCisgICAgICAg
IGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAiUGFyZW50IiwgZ192YXJp
YW50X25ld19zdHJpbmcoIlJPT1QiKSk7CisgICAgZWxzZSB7CisgICAgICAgIHZhbHVlID0ganNj
X3ZhbHVlX29iamVjdF9nZXRfcHJvcGVydHkodmFsdWUuZ2V0KCksICJub2RlTmFtZSIpOworICAg
ICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmJ1aWxkZXIsICJ7c3Z9IiwgIlBhcmVudCIsIGdf
dmFyaWFudF9uZXdfdGFrZV9zdHJpbmcoanNjX3ZhbHVlX3RvX3N0cmluZyh2YWx1ZS5nZXQoKSkp
KTsKKyAgICB9CiAgICAgcmV0dXJuIGdfdmFyaWFudF9idWlsZGVyX2VuZCgmYnVpbGRlcik7CiB9
CiAKQEAgLTI2NywxMyArMjc4LDE0IEBAIHN0YXRpYyBnYm9vbGVhbiBjb250ZXh0TWVudUNhbGxi
YWNrKFdlYktpdFdlYlBhZ2UqIHBhZ2UsIFdlYktpdENvbnRleHRNZW51KiBtZW51CiAgICAgaWYg
KCFnX3N0cmNtcDAocGFnZVVSSSwgIkNvbnRleHRNZW51VGVzdE5vZGUiKSkgewogICAgICAgICBX
ZWJLaXRET01Ob2RlKiBub2RlID0gd2Via2l0X3dlYl9oaXRfdGVzdF9yZXN1bHRfZ2V0X25vZGUo
aGl0VGVzdFJlc3VsdCk7CiAgICAgICAgIGdfYXNzZXJ0KFdFQktJVF9ET01fSVNfTk9ERShub2Rl
KSk7Ci0gICAgICAgIHdlYmtpdF9jb250ZXh0X21lbnVfc2V0X3VzZXJfZGF0YShtZW51LCBzZXJp
YWxpemVOb2RlKG5vZGUpKTsKKyAgICAgICAgYXV0byogZnJhbWUgPSB3ZWJraXRfd2ViX3BhZ2Vf
Z2V0X21haW5fZnJhbWUocGFnZSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IGpzTm9kZSA9
IGFkb3B0R1JlZih3ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0KGZyYW1l
LCBXRUJLSVRfRE9NX09CSkVDVChub2RlKSkpOworICAgICAgICB3ZWJraXRfY29udGV4dF9tZW51
X3NldF91c2VyX2RhdGEobWVudSwgc2VyaWFsaXplTm9kZShqc05vZGUuZ2V0KCkpKTsKICAgICAg
ICAgcmV0dXJuIFRSVUU7CiAgICAgfQogCiAgICAgcmV0dXJuIEZBTFNFOwogfQotI2VuZGlmIC8v
IFBMQVRGT1JNKEdUSykKIAogc3RhdGljIHZvaWQgY29uc29sZU1lc3NhZ2VTZW50Q2FsbGJhY2so
V2ViS2l0V2ViUGFnZSogd2ViUGFnZSwgV2ViS2l0Q29uc29sZU1lc3NhZ2UqIGNvbnNvbGVNZXNz
YWdlKQogewpAQCAtMjgyLDMwICsyOTQsMTUgQEAgc3RhdGljIHZvaWQgY29uc29sZU1lc3NhZ2VT
ZW50Q2FsbGJhY2soV2ViS2l0V2ViUGFnZSogd2ViUGFnZSwgV2ViS2l0Q29uc29sZU1lc3MKICAg
ICAgICAgd2Via2l0X2NvbnNvbGVfbWVzc2FnZV9nZXRfbGV2ZWwoY29uc29sZU1lc3NhZ2UpLCB3
ZWJraXRfY29uc29sZV9tZXNzYWdlX2dldF90ZXh0KGNvbnNvbGVNZXNzYWdlKSwKICAgICAgICAg
d2Via2l0X2NvbnNvbGVfbWVzc2FnZV9nZXRfbGluZShjb25zb2xlTWVzc2FnZSksIHdlYmtpdF9j
b25zb2xlX21lc3NhZ2VfZ2V0X3NvdXJjZV9pZChjb25zb2xlTWVzc2FnZSkpOwogICAgIEdVbmlx
dWVQdHI8Y2hhcj4gbWVzc2FnZVN0cmluZyhnX3ZhcmlhbnRfcHJpbnQodmFyaWFudC5nZXQoKSwg
RkFMU0UpKTsKLSNpZiBQTEFURk9STShHVEspCi0gICAgR1JlZlB0cjxXZWJLaXRET01ET01XaW5k
b3c+IHdpbmRvdyA9IGFkb3B0R1JlZih3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kZWZhdWx0X3Zp
ZXcod2Via2l0X3dlYl9wYWdlX2dldF9kb21fZG9jdW1lbnQod2ViUGFnZSkpKTsKLSAgICBnX2Fz
c2VydChXRUJLSVRfRE9NX0lTX0RPTV9XSU5ET1cod2luZG93LmdldCgpKSk7Ci0gICAgd2Via2l0
X2RvbV9kb21fd2luZG93X3dlYmtpdF9tZXNzYWdlX2hhbmRsZXJzX3Bvc3RfbWVzc2FnZSh3aW5k
b3cuZ2V0KCksICJjb25zb2xlIiwgbWVzc2FnZVN0cmluZy5nZXQoKSk7Ci0jZWxzZQotICAgIEdV
bmlxdWVQdHI8Y2hhcj4gZXNjYXBlZE1lc3NhZ2VTdHJpbmcoc3RhdGljX2Nhc3Q8Y2hhcio+KGdf
bWFsbG9jKHN0cmxlbihtZXNzYWdlU3RyaW5nLmdldCgpKSAqIDIgKyAxKSkpOwotICAgIGNoYXIq
IHNyYyA9IG1lc3NhZ2VTdHJpbmcuZ2V0KCk7Ci0gICAgY2hhciogZGVzdCA9IGVzY2FwZWRNZXNz
YWdlU3RyaW5nLmdldCgpOwotICAgIHdoaWxlICgqc3JjKSB7Ci0gICAgICAgIGlmICgqc3JjID09
ICciJykgewotICAgICAgICAgICAgKmRlc3QrKyA9ICdcXCc7Ci0gICAgICAgICAgICAqZGVzdCsr
ID0gJyInOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICpkZXN0KysgPSAqc3JjOwotICAg
ICAgICArK3NyYzsKLSAgICB9Ci0gICAgKmRlc3QgPSAnXDAnOwotICAgIEdVbmlxdWVQdHI8Y2hh
cj4gc2NyaXB0KGdfc3RyZHVwX3ByaW50Zigid2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMu
Y29uc29sZS5wb3N0TWVzc2FnZShcIiVzXCIpOyIsIGVzY2FwZWRNZXNzYWdlU3RyaW5nLmdldCgp
KSk7CiAgICAgR1JlZlB0cjxKU0NDb250ZXh0PiBqc0NvbnRleHQgPSBhZG9wdEdSZWYod2Via2l0
X2ZyYW1lX2dldF9qc19jb250ZXh0KHdlYmtpdF93ZWJfcGFnZV9nZXRfbWFpbl9mcmFtZSh3ZWJQ
YWdlKSkpOwotICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29u
dGV4dF9ldmFsdWF0ZShqc0NvbnRleHQuZ2V0KCksIHNjcmlwdC5nZXQoKSkpOwotI2VuZGlmCisg
ICAgR1JlZlB0cjxKU0NWYWx1ZT4gY29uc29sZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFs
dWF0ZShqc0NvbnRleHQuZ2V0KCksICJ3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5jb25z
b2xlIikpOworICAgIGdfYXNzZXJ0KEpTQ19JU19WQUxVRShjb25zb2xlLmdldCgpKSk7CisgICAg
aWYgKGpzY192YWx1ZV9pc19vYmplY3QoY29uc29sZS5nZXQoKSkpIHsKKyAgICAgICAgR1JlZlB0
cjxKU0NWYWx1ZT4gcmVzdWx0ID0gYWRvcHRHUmVmKGpzY192YWx1ZV9vYmplY3RfaW52b2tlX21l
dGhvZChjb25zb2xlLmdldCgpLCAicG9zdE1lc3NhZ2UiLCBHX1RZUEVfU1RSSU5HLCBtZXNzYWdl
U3RyaW5nLmdldCgpLCBHX1RZUEVfTk9ORSkpOworICAgICAgICBnX2Fzc2VydChKU0NfSVNfVkFM
VUUocmVzdWx0LmdldCgpKSk7CisgICAgfQogfQogCi0jaWYgUExBVEZPUk0oR1RLKQogc3RhdGlj
IHZvaWQgZW1pdEZvcm1Db250cm9sc0Fzc29jaWF0ZWQoR0RCdXNDb25uZWN0aW9uKiBjb25uZWN0
aW9uLCBjb25zdCBjaGFyKiBmb3JtSWRzKQogewogICAgIGJvb2wgb2sgPSBnX2RidXNfY29ubmVj
dGlvbl9lbWl0X3NpZ25hbCgKQEAgLTMyMSwxMyArMzE4LDE3IEBAIHN0YXRpYyB2b2lkIGVtaXRG
b3JtQ29udHJvbHNBc3NvY2lhdGVkKEdEQnVzQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgY29uc3Qg
Y2hhcioKIAogc3RhdGljIHZvaWQgZm9ybUNvbnRyb2xzQXNzb2NpYXRlZENhbGxiYWNrKFdlYktp
dFdlYlBhZ2UqIHdlYlBhZ2UsIEdQdHJBcnJheSogZm9ybUVsZW1lbnRzLCBXZWJLaXRXZWJFeHRl
bnNpb24qIGV4dGVuc2lvbikKIHsKKyAgICBhdXRvKiBmcmFtZSA9IHdlYmtpdF93ZWJfcGFnZV9n
ZXRfbWFpbl9mcmFtZSh3ZWJQYWdlKTsKICAgICBHU3RyaW5nKiBmb3JtSWRzQnVpbGRlciA9IGdf
c3RyaW5nX25ldyhudWxscHRyKTsKICAgICBmb3IgKGd1aW50IGkgPSAwOyBpIDwgZm9ybUVsZW1l
bnRzLT5sZW47ICsraSkgewogICAgICAgICBnX2Fzc2VydChXRUJLSVRfRE9NX0lTX0VMRU1FTlQo
Z19wdHJfYXJyYXlfaW5kZXgoZm9ybUVsZW1lbnRzLCBpKSkpOwotICAgICAgICBhdXRvIGRvbUVs
ZW1lbnQgPSBXRUJLSVRfRE9NX0VMRU1FTlQoZ19wdHJfYXJyYXlfaW5kZXgoZm9ybUVsZW1lbnRz
LCBpKSk7Ci0gICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gZWxlbWVudElEKHdlYmtpdF9kb21fZWxl
bWVudF9nZXRfaWQoZG9tRWxlbWVudCkpOwotICAgICAgICBpZiAoZWxlbWVudElEKQotICAgICAg
ICAgICAgZ19zdHJpbmdfYXBwZW5kKGZvcm1JZHNCdWlsZGVyLCBlbGVtZW50SUQuZ2V0KCkpOwor
ICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiB2YWx1ZSA9IGFkb3B0R1JlZih3ZWJraXRfZnJhbWVf
Z2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0KGZyYW1lLCBXRUJLSVRfRE9NX09CSkVDVChnX3B0
cl9hcnJheV9pbmRleChmb3JtRWxlbWVudHMsIGkpKSkpOworICAgICAgICBnX2Fzc2VydChKU0Nf
SVNfVkFMVUUodmFsdWUuZ2V0KCkpKTsKKyAgICAgICAgZ19hc3NlcnQoanNjX3ZhbHVlX2lzX29i
amVjdCh2YWx1ZS5nZXQoKSkpOworICAgICAgICBnX2Fzc2VydChqc2NfdmFsdWVfb2JqZWN0X2lz
X2luc3RhbmNlX29mKHZhbHVlLmdldCgpLCAiRWxlbWVudCIpKTsKKyAgICAgICAgR1JlZlB0cjxK
U0NWYWx1ZT4gaWRWYWx1ZSA9IGFkb3B0R1JlZihqc2NfdmFsdWVfb2JqZWN0X2dldF9wcm9wZXJ0
eSh2YWx1ZS5nZXQoKSwgImlkIikpOworICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IGVsZW1lbnRJ
RChqc2NfdmFsdWVfdG9fc3RyaW5nKGlkVmFsdWUuZ2V0KCkpKTsKKyAgICAgICAgZ19zdHJpbmdf
YXBwZW5kKGZvcm1JZHNCdWlsZGVyLCBlbGVtZW50SUQuZ2V0KCkpOwogICAgIH0KICAgICBpZiAo
IWZvcm1JZHNCdWlsZGVyLT5sZW4pIHsKICAgICAgICAgZ19zdHJpbmdfZnJlZShmb3JtSWRzQnVp
bGRlciwgVFJVRSk7CkBAIC0zODEsOCArMzgyLDE4IEBAIHN0YXRpYyB2b2lkIGhhbmRsZUZvcm1T
dWJtaXNzaW9uQ2FsbGJhY2soV2ViS2l0V2ViUGFnZSogd2ViUGFnZSwgRGVsYXllZFNpZ25hbFR5
CiAKIHN0YXRpYyB2b2lkIHdpbGxTdWJtaXRGb3JtQ2FsbGJhY2soV2ViS2l0V2ViUGFnZSogd2Vi
UGFnZSwgV2ViS2l0RE9NRWxlbWVudCogZm9ybUVsZW1lbnQsIFdlYktpdEZvcm1TdWJtaXNzaW9u
U3RlcCBzdGVwLCBXZWJLaXRGcmFtZSogc291cmNlRnJhbWUsIFdlYktpdEZyYW1lKiB0YXJnZXRG
cmFtZSwgR1B0ckFycmF5KiB0ZXh0RmllbGROYW1lcywgR1B0ckFycmF5KiB0ZXh0RmllbGRWYWx1
ZXMsIFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uKQogeworI2lmIFBMQVRGT1JNKEdUSykK
KyAgICBHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKICAgICBnX2Fzc2VydChXRUJL
SVRfRE9NX0lTX0hUTUxfRk9STV9FTEVNRU5UKGZvcm1FbGVtZW50KSk7Ci0gICAgR1VuaXF1ZVB0
cjxjaGFyPiBmb3JtSUQod2Via2l0X2RvbV9lbGVtZW50X2dldF9pZChmb3JtRWxlbWVudCkpOwor
ICAgIEdfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKyNlbmRpZgorICAgIEdSZWZQdHI8
SlNDVmFsdWU+IGpzRm9ybUVsZW1lbnQgPSBhZG9wdEdSZWYod2Via2l0X2ZyYW1lX2dldF9qc192
YWx1ZV9mb3JfZG9tX29iamVjdCh3ZWJraXRfd2ViX3BhZ2VfZ2V0X21haW5fZnJhbWUod2ViUGFn
ZSksIFdFQktJVF9ET01fT0JKRUNUKGZvcm1FbGVtZW50KSkpOworICAgIGdfYXNzZXJ0KEpTQ19J
U19WQUxVRShqc0Zvcm1FbGVtZW50LmdldCgpKSk7CisgICAgZ19hc3NlcnQoanNjX3ZhbHVlX2lz
X29iamVjdChqc0Zvcm1FbGVtZW50LmdldCgpKSk7CisgICAgZ19hc3NlcnQoanNjX3ZhbHVlX29i
amVjdF9pc19pbnN0YW5jZV9vZihqc0Zvcm1FbGVtZW50LmdldCgpLCAiSFRNTEZvcm1FbGVtZW50
IikpOworICAgIEdSZWZQdHI8SlNDVmFsdWU+IGlkVmFsdWUgPSBhZG9wdEdSZWYoanNjX3ZhbHVl
X29iamVjdF9nZXRfcHJvcGVydHkoanNGb3JtRWxlbWVudC5nZXQoKSwgImlkIikpOworICAgIEdV
bmlxdWVQdHI8Y2hhcj4gZm9ybUlEKGpzY192YWx1ZV90b19zdHJpbmcoaWRWYWx1ZS5nZXQoKSkp
OworCiAgICAgc3dpdGNoIChzdGVwKSB7CiAgICAgY2FzZSBXRUJLSVRfRk9STV9TVUJNSVNTSU9O
X1dJTExfU0VORF9ET01fRVZFTlQ6CiAgICAgICAgIGhhbmRsZUZvcm1TdWJtaXNzaW9uQ2FsbGJh
Y2sod2ViUGFnZSwgRm9ybVN1Ym1pc3Npb25XaWxsU2VuZERPTUV2ZW50U2lnbmFsLCAiRm9ybVN1
Ym1pc3Npb25XaWxsU2VuZERPTUV2ZW50IiwgZm9ybUlELmdldCgpLCBzb3VyY2VGcmFtZSwgdGFy
Z2V0RnJhbWUsIHRleHRGaWVsZE5hbWVzLCB0ZXh0RmllbGRWYWx1ZXMsIGV4dGVuc2lvbik7CkBA
IC0zOTQsNyArNDA1LDYgQEAgc3RhdGljIHZvaWQgd2lsbFN1Ym1pdEZvcm1DYWxsYmFjayhXZWJL
aXRXZWJQYWdlKiB3ZWJQYWdlLCBXZWJLaXRET01FbGVtZW50KiBmb3IKICAgICAgICAgZ19hc3Nl
cnRfbm90X3JlYWNoZWQoKTsKICAgICB9CiB9Ci0jZW5kaWYKIAogc3RhdGljIHZvaWQgcGFnZUNy
ZWF0ZWRDYWxsYmFjayhXZWJLaXRXZWJFeHRlbnNpb24qIGV4dGVuc2lvbiwgV2ViS2l0V2ViUGFn
ZSogd2ViUGFnZSwgZ3BvaW50ZXIpCiB7CkBAIC00MDIsMTEgKzQxMiw5IEBAIHN0YXRpYyB2b2lk
IHBhZ2VDcmVhdGVkQ2FsbGJhY2soV2ViS2l0V2ViRXh0ZW5zaW9uKiBleHRlbnNpb24sIFdlYktp
dFdlYlBhZ2UqIHdlCiAgICAgZ19zaWduYWxfY29ubmVjdCh3ZWJQYWdlLCAibm90aWZ5Ojp1cmki
LCBHX0NBTExCQUNLKHVyaUNoYW5nZWRDYWxsYmFjayksIGV4dGVuc2lvbik7CiAgICAgZ19zaWdu
YWxfY29ubmVjdCh3ZWJQYWdlLCAic2VuZC1yZXF1ZXN0IiwgR19DQUxMQkFDSyhzZW5kUmVxdWVz
dENhbGxiYWNrKSwgbnVsbHB0cik7CiAgICAgZ19zaWduYWxfY29ubmVjdCh3ZWJQYWdlLCAiY29u
c29sZS1tZXNzYWdlLXNlbnQiLCBHX0NBTExCQUNLKGNvbnNvbGVNZXNzYWdlU2VudENhbGxiYWNr
KSwgbnVsbHB0cik7Ci0jaWYgUExBVEZPUk0oR1RLKQogICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2Vi
UGFnZSwgImNvbnRleHQtbWVudSIsIEdfQ0FMTEJBQ0soY29udGV4dE1lbnVDYWxsYmFjayksIG51
bGxwdHIpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2ViUGFnZSwgImZvcm0tY29udHJvbHMtYXNz
b2NpYXRlZCIsIEdfQ0FMTEJBQ0soZm9ybUNvbnRyb2xzQXNzb2NpYXRlZENhbGxiYWNrKSwgZXh0
ZW5zaW9uKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KHdlYlBhZ2UsICJ3aWxsLXN1Ym1pdC1mb3Jt
IiwgR19DQUxMQkFDSyh3aWxsU3VibWl0Rm9ybUNhbGxiYWNrKSwgZXh0ZW5zaW9uKTsKLSNlbmRp
ZgogfQogCiBzdGF0aWMgY2hhciogZWNob0NhbGxiYWNrKGNvbnN0IGNoYXIqIG1lc3NhZ2UpCkBA
IC00NDgsMTQgKzQ1NiwyNiBAQCBzdGF0aWMgdm9pZCBtZXRob2RDYWxsQ2FsbGJhY2soR0RCdXND
b25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBjaGFyKiBzZW5kZXIsCiAgICAgICAgIGlmICgh
cGFnZSkKICAgICAgICAgICAgIHJldHVybjsKIAotI2lmIFBMQVRGT1JNKEdUSykKLSAgICAgICAg
V2ViS2l0RE9NRG9jdW1lbnQqIGRvY3VtZW50ID0gd2Via2l0X3dlYl9wYWdlX2dldF9kb21fZG9j
dW1lbnQocGFnZSk7Ci0gICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gdGl0bGUod2Via2l0X2RvbV9k
b2N1bWVudF9nZXRfdGl0bGUoZG9jdW1lbnQpKTsKKyAgICAgICAgR1JlZlB0cjxKU0NDb250ZXh0
PiBqc0NvbnRleHQgPSBhZG9wdEdSZWYod2Via2l0X2ZyYW1lX2dldF9qc19jb250ZXh0KHdlYmtp
dF93ZWJfcGFnZV9nZXRfbWFpbl9mcmFtZShwYWdlKSkpOworICAgICAgICBHUmVmUHRyPEpTQ1Zh
bHVlPiB0aXRsZVZhbHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGpzQ29udGV4
dC5nZXQoKSwgImRvY3VtZW50LnRpdGxlIikpOworICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHRp
dGxlKGpzY192YWx1ZV90b19zdHJpbmcodGl0bGVWYWx1ZS5nZXQoKSkpOwogICAgICAgICBnX2Ri
dXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJuX3ZhbHVlKGludm9jYXRpb24sIGdfdmFyaWFudF9u
ZXcoIihzKSIsIHRpdGxlLmdldCgpKSk7Ci0jZWxpZiBQTEFURk9STShXUEUpCi0gICAgICAgIC8v
IEZJWE1FOiBVc2UgSlNDIEFQSSB0byBnZXQgdGhlIHRpdGxlIGZyb20gSmF2YVNjcmlwdC4KLSAg
ICAgICAgZ19kYnVzX21ldGhvZF9pbnZvY2F0aW9uX3JldHVybl92YWx1ZShpbnZvY2F0aW9uLCBn
X3ZhcmlhbnRfbmV3KCIocykiLCAiIikpOwotI2VuZGlmCisgICAgfSBlbHNlIGlmICghZ19zdHJj
bXAwKG1ldGhvZE5hbWUsICJJbnB1dEVsZW1lbnRJc1VzZXJFZGl0ZWQiKSkgeworICAgICAgICB1
aW50NjRfdCBwYWdlSUQ7CisgICAgICAgIGNvbnN0IGNoYXIqIGVsZW1lbnRJRDsKKyAgICAgICAg
Z192YXJpYW50X2dldChwYXJhbWV0ZXJzLCAiKHQmcykiLCAmcGFnZUlELCAmZWxlbWVudElEKTsK
KyAgICAgICAgV2ViS2l0V2ViUGFnZSogcGFnZSA9IGdldFdlYlBhZ2UoV0VCS0lUX1dFQl9FWFRF
TlNJT04odXNlckRhdGEpLCBwYWdlSUQsIGludm9jYXRpb24pOworICAgICAgICBpZiAoIXBhZ2Up
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgV2ViS2l0RE9NRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gd2Via2l0X3dlYl9wYWdlX2dldF9kb21fZG9jdW1lbnQocGFnZSk7CisgICAgICAgIFdl
YktpdEZyYW1lKiBmcmFtZSA9IHdlYmtpdF93ZWJfcGFnZV9nZXRfbWFpbl9mcmFtZShwYWdlKTsK
KyAgICAgICAgR1JlZlB0cjxKU0NDb250ZXh0PiBqc0NvbnRleHQgPSBhZG9wdEdSZWYod2Via2l0
X2ZyYW1lX2dldF9qc19jb250ZXh0KGZyYW1lKSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+
IGpzRG9jdW1lbnQgPSBhZG9wdEdSZWYod2Via2l0X2ZyYW1lX2dldF9qc192YWx1ZV9mb3JfZG9t
X29iamVjdChmcmFtZSwgV0VCS0lUX0RPTV9PQkpFQ1QoZG9jdW1lbnQpKSk7CisgICAgICAgIEdS
ZWZQdHI8SlNDVmFsdWU+IGpzSW5wdXRFbGVtZW50ID0gYWRvcHRHUmVmKGpzY192YWx1ZV9vYmpl
Y3RfaW52b2tlX21ldGhvZChqc0RvY3VtZW50LmdldCgpLCAiZ2V0RWxlbWVudEJ5SWQiLCBHX1RZ
UEVfU1RSSU5HLCBlbGVtZW50SUQsIEdfVFlQRV9OT05FKSk7CisgICAgICAgIFdlYktpdERPTU5v
ZGUqIG5vZGUgPSB3ZWJraXRfZG9tX25vZGVfZm9yX2pzX3ZhbHVlKGpzSW5wdXRFbGVtZW50Lmdl
dCgpKTsKKyAgICAgICAgZ2Jvb2xlYW4gaXNVc2VyRWRpdGVkID0gd2Via2l0X2RvbV9lbGVtZW50
X2h0bWxfaW5wdXRfZWxlbWVudF9pc191c2VyX2VkaXRlZChXRUJLSVRfRE9NX0VMRU1FTlQobm9k
ZSkpOworICAgICAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJuX3ZhbHVlKGludm9j
YXRpb24sIGdfdmFyaWFudF9uZXcoIihiKSIsIGlzVXNlckVkaXRlZCkpOwogICAgIH0gZWxzZSBp
ZiAoIWdfc3RyY21wMChtZXRob2ROYW1lLCAiUnVuSmF2YVNjcmlwdEluSXNvbGF0ZWRXb3JsZCIp
KSB7CiAgICAgICAgIHVpbnQ2NF90IHBhZ2VJRDsKICAgICAgICAgY29uc3QgY2hhciogc2NyaXB0
OwpAQCAtNTIzLDcgKzU0Myw2IEBAIHN0YXRpYyB2b2lkIGJ1c0FjcXVpcmVkQ2FsbGJhY2soR0RC
dXNDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBjaGFyKiBuYW1lLCBnCiAgICAgICAgIGNh
c2UgVVJJQ2hhbmdlZFNpZ25hbDoKICAgICAgICAgICAgIGVtaXRVUklDaGFuZ2VkKGNvbm5lY3Rp
b24sIGRlbGF5ZWRTaWduYWwuc3RyLmRhdGEoKSk7CiAgICAgICAgICAgICBicmVhazsKLSNpZiBQ
TEFURk9STShHVEspCiAgICAgICAgIGNhc2UgRm9ybUNvbnRyb2xzQXNzb2NpYXRlZFNpZ25hbDoK
ICAgICAgICAgICAgIGVtaXRGb3JtQ29udHJvbHNBc3NvY2lhdGVkKGNvbm5lY3Rpb24sIGRlbGF5
ZWRTaWduYWwuc3RyLmRhdGEoKSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTUzMyw4ICs1NTIs
NiBAQCBzdGF0aWMgdm9pZCBidXNBY3F1aXJlZENhbGxiYWNrKEdEQnVzQ29ubmVjdGlvbiogY29u
bmVjdGlvbiwgY29uc3QgY2hhciogbmFtZSwgZwogICAgICAgICBjYXNlIEZvcm1TdWJtaXNzaW9u
V2lsbFNlbmRET01FdmVudFNpZ25hbDoKICAgICAgICAgICAgIGVtaXRGb3JtU3VibWlzc2lvbkV2
ZW50KGNvbm5lY3Rpb24sICJGb3JtU3VibWlzc2lvbldpbGxTZW5kRE9NRXZlbnQiLCBkZWxheWVk
U2lnbmFsLnN0ci5kYXRhKCksIGRlbGF5ZWRTaWduYWwuc3RyMi5kYXRhKCksIGRlbGF5ZWRTaWdu
YWwuc3RyMy5kYXRhKCksIGRlbGF5ZWRTaWduYWwuYiwgZGVsYXllZFNpZ25hbC5iMik7CiAgICAg
ICAgICAgICBicmVhazsKLSNlbmRpZgotICAgICAgICAgICAgZ19hc3NlcnRfbm90X3JlYWNoZWQo
KTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0R0xpYi9XZWJQcm9jZXNzVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvV2ViUHJvY2Vzc1Rlc3QuY3BwCmluZGV4IDIzMGZlOGI0YzU2Li4z
MDJmNTc2NGQ4ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1dlYlByb2Nlc3NUZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdEdMaWIvV2ViUHJvY2Vzc1Rlc3QuY3BwCkBAIC0zNiw2ICszNiwxOSBAQCBzdGF0aWMgVGVz
dHNNYXAmIHRlc3RzTWFwKCkKICAgICByZXR1cm4gc190ZXN0c01hcDsKIH0KIAorc3RhdGljIHZv
aWQgY2hlY2tMZWFrcygpCit7CisgICAgaWYgKHNfd2F0Y2hlZE9iamVjdHMuaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBnX3ByaW50KCJMZWFrZWQgb2JqZWN0cyBpbiBXZWJQcm9j
ZXNzOiIpOworICAgIGZvciAoY29uc3QgYXV0byBvYmplY3QgOiBzX3dhdGNoZWRPYmplY3RzKQor
ICAgICAgICBnX3ByaW50KCIgJXMoJXApIiwgZ190eXBlX25hbWVfZnJvbV9pbnN0YW5jZShyZWlu
dGVycHJldF9jYXN0PEdUeXBlSW5zdGFuY2UqPihvYmplY3QpKSwgb2JqZWN0KTsKKyAgICBnX3By
aW50KCJcbiIpOworCisgICAgZ19hc3NlcnQoc193YXRjaGVkT2JqZWN0cy5pc0VtcHR5KCkpOwor
fQorCiB2b2lkIFdlYlByb2Nlc3NUZXN0OjphZGQoY29uc3QgU3RyaW5nJiB0ZXN0TmFtZSwgc3Rk
OjpmdW5jdGlvbjxzdGQ6OnVuaXF1ZV9wdHI8V2ViUHJvY2Vzc1Rlc3Q+ICgpPiBjbG9zdXJlKQog
ewogICAgIHRlc3RzTWFwKCkuYWRkKHRlc3ROYW1lLCBXVEZNb3ZlKGNsb3N1cmUpKTsKQEAgLTY4
LDE2ICs4MSw3IEBAIHN0YXRpYyBnYm9vbGVhbiBydW5UZXN0KFdlYktpdFdlYlBhZ2UqIHdlYlBh
Z2UsIGNvbnN0IGNoYXIqIHRlc3RQYXRoKQogc3RhdGljIHZvaWQgd2ViUHJvY2Vzc1Rlc3RSdW5u
ZXJGaW5hbGl6ZShXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlKQogewogICAgIGdfb2JqZWN0X3VucmVm
KHdlYlBhZ2UpOwotCi0gICAgaWYgKHNfd2F0Y2hlZE9iamVjdHMuaXNFbXB0eSgpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBnX3ByaW50KCJMZWFrZWQgb2JqZWN0cyBpbiBXZWJQcm9jZXNzOiIp
OwotICAgIGZvciAoY29uc3QgYXV0byBvYmplY3QgOiBzX3dhdGNoZWRPYmplY3RzKQotICAgICAg
ICBnX3ByaW50KCIgJXMoJXApIiwgZ190eXBlX25hbWVfZnJvbV9pbnN0YW5jZShyZWludGVycHJl
dF9jYXN0PEdUeXBlSW5zdGFuY2UqPihvYmplY3QpKSwgb2JqZWN0KTsKLSAgICBnX3ByaW50KCJc
biIpOwotCi0gICAgZ19hc3NlcnQoc193YXRjaGVkT2JqZWN0cy5pc0VtcHR5KCkpOworICAgIGNo
ZWNrTGVha3MoKTsKIH0KIAogc3RhdGljIHZvaWQgd2luZG93T2JqZWN0Q2xlYXJlZENhbGxiYWNr
KFdlYktpdFNjcmlwdFdvcmxkKiB3b3JsZCwgV2ViS2l0V2ViUGFnZSogd2ViUGFnZSwgV2ViS2l0
RnJhbWUqIGZyYW1lLCBXZWJLaXRXZWJFeHRlbnNpb24qIGV4dGVuc2lvbikKQEAgLTEwMCwzICsx
MDQsOCBAQCBleHRlcm4gIkMiIHZvaWQgd2Via2l0X3dlYl9leHRlbnNpb25faW5pdGlhbGl6ZShX
ZWJLaXRXZWJFeHRlbnNpb24qIGV4dGVuc2lvbikKICAgICB3ZWJraXRXZWJFeHRlbnNpb25TZXRH
YXJiYWdlQ29sbGVjdE9uUGFnZURlc3Ryb3koZXh0ZW5zaW9uKTsKICAgICBnX3NpZ25hbF9jb25u
ZWN0KHdlYmtpdF9zY3JpcHRfd29ybGRfZ2V0X2RlZmF1bHQoKSwgIndpbmRvdy1vYmplY3QtY2xl
YXJlZCIsIEdfQ0FMTEJBQ0sod2luZG93T2JqZWN0Q2xlYXJlZENhbGxiYWNrKSwgZXh0ZW5zaW9u
KTsKIH0KKworc3RhdGljIHZvaWQgX19hdHRyaWJ1dGVfXygoZGVzdHJ1Y3RvcikpIGNoZWNrTGVh
a3NBdEV4aXQoKQoreworICAgIGNoZWNrTGVha3MoKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0F1dG9jbGVhbnVwc1Rlc3QuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvQXV0b2NsZWFudXBzVGVzdC5jcHAKaW5kZXgg
YTIwY2JmZDczMzEuLjBlZGU3MmZhYzQ2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEd0ay9BdXRvY2xlYW51cHNUZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9BdXRvY2xlYW51cHNUZXN0LmNwcApAQCAtNDIsMTMgKzQy
LDE3IEBAIHByaXZhdGU6CiAgICAgICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0Rmlu
aXNoZXMoR19PQkpFQ1QoZG9jdW1lbnQpKTsKIAogICAgICAgICAvLyBUcmFuc2ZlciBmdWxsCisg
ICAgICAgIEdfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwogICAgICAgICBnX2F1dG9w
dHIoV2ViS2l0RE9NRE9NV2luZG93KSB3aW5kb3cgPSB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9k
ZWZhdWx0X3ZpZXcoZG9jdW1lbnQpOwogICAgICAgICBnX2Fzc2VydChXRUJLSVRfRE9NX0lTX0RP
TV9XSU5ET1cod2luZG93KSk7CisgICAgICAgIEdfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9O
UzsKICAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVD
VCh3aW5kb3cpKTsKIAogICAgICAgICAvLyBUcmFuc2ZlciBmdWxsCisgICAgICAgIEdfR05VQ19C
RUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwogICAgICAgICBnX2F1dG9wdHIoV2ViS2l0RE9NUmFu
Z2UpIHJhbmdlID0gd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfcmFuZ2UoZG9jdW1lbnQpOwog
ICAgICAgICBnX2Fzc2VydChXRUJLSVRfRE9NX0lTX1JBTkdFKHJhbmdlKSk7CisgICAgICAgIEdf
R05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKICAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxl
dGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChyYW5nZSkpOwogCiAgICAgICAgIHJldHVybiB0
cnVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9N
Q2xpZW50UmVjdFRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsv
RE9NQ2xpZW50UmVjdFRlc3QuY3BwCmluZGV4IGNhNTkyYzNhYmNmLi4yMGNkZmU1ZWY5MSAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9NQ2xpZW50UmVj
dFRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0RPTUNs
aWVudFJlY3RUZXN0LmNwcApAQCAtMjMsNiArMjMsOCBAQAogI2luY2x1ZGUgPGdpby9naW8uaD4K
ICNpbmNsdWRlIDx3ZWJraXQyL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmg+CiAKK0dfR05VQ19CRUdJ
Tl9JR05PUkVfREVQUkVDQVRJT05TOworCiBjbGFzcyBXZWJLaXRET01DbGllbnRSZWN0VGVzdCA6
IHB1YmxpYyBXZWJQcm9jZXNzVGVzdCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxXZWJQcm9jZXNzVGVzdD4gY3JlYXRlKCkgeyByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFdl
YktpdERPTUNsaWVudFJlY3RUZXN0PihuZXcgV2ViS2l0RE9NQ2xpZW50UmVjdFRlc3QoKSk7IH0K
QEAgLTEwMywzICsxMDUsNSBAQCBzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fKChjb25zdHJ1Y3Rv
cikpIHJlZ2lzdGVyVGVzdHMoKQogICAgIFJFR0lTVEVSX1RFU1QoV2ViS2l0RE9NQ2xpZW50UmVj
dFRlc3QsICJXZWJLaXRET01DbGllbnRSZWN0L2Rpdi1ib3VuZGluZy1jbGllbnQtcmVjdC1wb3Np
dGlvbiIpOwogICAgIFJFR0lTVEVSX1RFU1QoV2ViS2l0RE9NQ2xpZW50UmVjdFRlc3QsICJXZWJL
aXRET01DbGllbnRSZWN0L2Rpdi1jbGllbnQtcmVjdHMtcG9zaXRpb24tYW5kLWxlbmd0aCIpOwog
fQorCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9ET01Ob2RlRmlsdGVyVGVzdC5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9ET01Ob2RlRmlsdGVyVGVzdC5jcHAKaW5k
ZXggMGYxOGQxZjMxODQuLjg5NzA4MzZmNTBiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdEd0ay9ET01Ob2RlRmlsdGVyVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9NTm9kZUZpbHRlclRlc3QuY3BwCkBAIC0yNCw2
ICsyNCw4IEBACiAjaW5jbHVkZSA8d2Via2l0Mi93ZWJraXQtd2ViLWV4dGVuc2lvbi5oPgogI2lu
Y2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBS
RUNBVElPTlM7CisKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXROb2RlRmlsdGVyIHsKICAgICBHT2Jq
ZWN0IHBhcmVudDsKIH0gV2ViS2l0Tm9kZUZpbHRlcjsKQEAgLTIwMSw0ICsyMDMsNCBAQCBzdGF0
aWMgdm9pZCBfX2F0dHJpYnV0ZV9fKChjb25zdHJ1Y3RvcikpIHJlZ2lzdGVyVGVzdHMoKQogICAg
IFJFR0lTVEVSX1RFU1QoV2ViS2l0RE9NTm9kZUZpbHRlclRlc3QsICJXZWJLaXRET01Ob2RlRmls
dGVyL25vZGUtaXRlcmF0b3IiKTsKIH0KIAotCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElP
TlM7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9ET01O
b2RlVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9ET01Ob2Rl
VGVzdC5jcHAKaW5kZXggOWQ1N2I0MmQyYzEuLjc5ZDc2YWU3ZDIzIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9ET01Ob2RlVGVzdC5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9NTm9kZVRlc3QuY3BwCkBAIC0yNCw2
ICsyNCw4IEBACiAjaW5jbHVkZSA8d2Via2l0Mi93ZWJraXQtd2ViLWV4dGVuc2lvbi5oPgogI2lu
Y2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBS
RUNBVElPTlM7CisKIGNsYXNzIFdlYktpdERPTU5vZGVUZXN0IDogcHVibGljIFdlYlByb2Nlc3NU
ZXN0IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFdlYlByb2Nlc3NUZXN0
PiBjcmVhdGUoKSB7IHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0RE9NTm9kZVRlc3Q+KG5l
dyBXZWJLaXRET01Ob2RlVGVzdCgpKTsgfQpAQCAtMjk3LDQgKzI5OSw0IEBAIHN0YXRpYyB2b2lk
IF9fYXR0cmlidXRlX18oKGNvbnN0cnVjdG9yKSkgcmVnaXN0ZXJUZXN0cygpCiAgICAgUkVHSVNU
RVJfVEVTVChXZWJLaXRET01Ob2RlVGVzdCwgIldlYktpdERPTU5vZGUvZG9tLWNhY2hlIik7CiB9
CiAKLQorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9NWFBhdGhOU1Jlc29sdmVyVGVzdC5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9ET01YUGF0aE5TUmVzb2x2ZXJU
ZXN0LmNwcAppbmRleCAxMTA2NzdlNDE0Mi4uZWJiOGYzOTI0YTIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0RPTVhQYXRoTlNSZXNvbHZlclRlc3QuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0RPTVhQYXRoTlNSZXNv
bHZlclRlc3QuY3BwCkBAIC0yNCw2ICsyNCw4IEBACiAjaW5jbHVkZSA8d2Via2l0Mi93ZWJraXQt
d2ViLWV4dGVuc2lvbi5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KIAorR19H
TlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRY
UGF0aE5TUmVzb2x2ZXIgewogICAgIEdPYmplY3QgcGFyZW50OwogfSBXZWJLaXRYUGF0aE5TUmVz
b2x2ZXI7CkBAIC0xMjIsMyArMTI0LDUgQEAgc3RhdGljIHZvaWQgX19hdHRyaWJ1dGVfXygoY29u
c3RydWN0b3IpKSByZWdpc3RlclRlc3RzKCkKICAgICBSRUdJU1RFUl9URVNUKFdlYktpdERPTVhQ
YXRoTlNSZXNvbHZlclRlc3QsICJXZWJLaXRET01YUGF0aE5TUmVzb2x2ZXIvbmF0aXZlIik7CiAg
ICAgUkVHSVNURVJfVEVTVChXZWJLaXRET01YUGF0aE5TUmVzb2x2ZXJUZXN0LCAiV2ViS2l0RE9N
WFBhdGhOU1Jlc29sdmVyL2N1c3RvbSIpOwogfQorCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNB
VElPTlM7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9F
ZGl0b3JUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0VkaXRv
clRlc3QuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMjJkOGFiMzg5Mi4uMDAw
MDAwMDAwMDAKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRWRpdG9y
VGVzdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMzAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNSBSZWQgSGF0IEluYy4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAi
V2ViUHJvY2Vzc1Rlc3QuaCIKLQotI2RlZmluZSBXRUJLSVRfRE9NX1VTRV9VTlNUQUJMRV9BUEkK
LSNpbmNsdWRlIDx3ZWJraXRkb20vV2ViS2l0RE9NRE9NU2VsZWN0aW9uLmg+Ci0jaW5jbHVkZSA8
d2Via2l0ZG9tL1dlYktpdERPTURPTVdpbmRvd1Vuc3RhYmxlLmg+Ci0KLWNsYXNzIFdlYktpdFdl
YkVkaXRvclRlc3QgOiBwdWJsaWMgV2ViUHJvY2Vzc1Rlc3QgewotcHVibGljOgotICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8V2ViUHJvY2Vzc1Rlc3Q+IGNyZWF0ZSgpIHsgcmV0dXJuIHN0ZDo6
dW5pcXVlX3B0cjxXZWJQcm9jZXNzVGVzdD4obmV3IFdlYktpdFdlYkVkaXRvclRlc3QoKSk7IH0K
LQotcHJpdmF0ZToKLSAgICBzdGF0aWMgdm9pZCBzZWxlY3Rpb25DaGFuZ2VkQ2FsbGJhY2soYm9v
bCogc2VsZWN0aW9uQ2hhbmdlZCkKLSAgICB7Ci0gICAgICAgICpzZWxlY3Rpb25DaGFuZ2VkID0g
dHJ1ZTsKLSAgICB9Ci0KLSAgICB2b2lkIHRlc3RTZWxlY3Rpb25TZWxlY3RBbGwoV2ViS2l0V2Vi
UGFnZSogcGFnZSkKLSAgICB7Ci0gICAgICAgIFdlYktpdERPTURvY3VtZW50KiBkb2N1bWVudCA9
IHdlYmtpdF93ZWJfcGFnZV9nZXRfZG9tX2RvY3VtZW50KHBhZ2UpOwotICAgICAgICBnX2Fzc2Vy
dChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKGRvY3VtZW50KSk7Ci0KLSAgICAgICAgd2Via2l0X2Rv
bV9kb2N1bWVudF9leGVjX2NvbW1hbmQoZG9jdW1lbnQsICJTZWxlY3RBbGwiLCBmYWxzZSwgIiIp
OwotICAgIH0KLQotICAgIHZvaWQgdGVzdFNlbGVjdGlvbkNvbGxhcHNlKFdlYktpdFdlYlBhZ2Uq
IHBhZ2UpCi0gICAgewotICAgICAgICBXZWJLaXRET01Eb2N1bWVudCogZG9jdW1lbnQgPSB3ZWJr
aXRfd2ViX3BhZ2VfZ2V0X2RvbV9kb2N1bWVudChwYWdlKTsKLSAgICAgICAgZ19hc3NlcnQoV0VC
S0lUX0RPTV9JU19ET0NVTUVOVChkb2N1bWVudCkpOwotICAgICAgICBHUmVmUHRyPFdlYktpdERP
TURPTVdpbmRvdz4gZG9tV2luZG93ID0gYWRvcHRHUmVmKHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0
X2RlZmF1bHRfdmlldyhkb2N1bWVudCkpOwotICAgICAgICBnX2Fzc2VydChXRUJLSVRfRE9NX0lT
X0RPTV9XSU5ET1coZG9tV2luZG93LmdldCgpKSk7Ci0gICAgICAgIEdSZWZQdHI8V2ViS2l0RE9N
RE9NU2VsZWN0aW9uPiBkb21TZWxlY3Rpb24gPSBhZG9wdEdSZWYod2Via2l0X2RvbV9kb21fd2lu
ZG93X2dldF9zZWxlY3Rpb24oZG9tV2luZG93LmdldCgpKSk7Ci0gICAgICAgIGdfYXNzZXJ0KFdF
QktJVF9ET01fSVNfRE9NX1NFTEVDVElPTihkb21TZWxlY3Rpb24uZ2V0KCkpKTsKLQotICAgICAg
ICB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fY29sbGFwc2VfdG9fc3RhcnQoZG9tU2VsZWN0aW9u
LmdldCgpLCBudWxscHRyKTsKLSAgICB9Ci0KLSAgICB2b2lkIHRlc3RTZWxlY3Rpb25Nb2RpZnlN
b3ZlKFdlYktpdFdlYlBhZ2UqIHBhZ2UpCi0gICAgewotICAgICAgICBXZWJLaXRET01Eb2N1bWVu
dCogZG9jdW1lbnQgPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2RvbV9kb2N1bWVudChwYWdlKTsKLSAg
ICAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChkb2N1bWVudCkpOwotICAgICAg
ICBHUmVmUHRyPFdlYktpdERPTURPTVdpbmRvdz4gZG9tV2luZG93ID0gYWRvcHRHUmVmKHdlYmtp
dF9kb21fZG9jdW1lbnRfZ2V0X2RlZmF1bHRfdmlldyhkb2N1bWVudCkpOwotICAgICAgICBnX2Fz
c2VydChXRUJLSVRfRE9NX0lTX0RPTV9XSU5ET1coZG9tV2luZG93LmdldCgpKSk7Ci0gICAgICAg
IEdSZWZQdHI8V2ViS2l0RE9NRE9NU2VsZWN0aW9uPiBkb21TZWxlY3Rpb24gPSBhZG9wdEdSZWYo
d2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zZWxlY3Rpb24oZG9tV2luZG93LmdldCgpKSk7Ci0g
ICAgICAgIGdfYXNzZXJ0KFdFQktJVF9ET01fSVNfRE9NX1NFTEVDVElPTihkb21TZWxlY3Rpb24u
Z2V0KCkpKTsKLQotICAgICAgICB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fbW9kaWZ5KGRvbVNl
bGVjdGlvbi5nZXQoKSwgIm1vdmUiLCAiZm9yd2FyZCIsICJjaGFyYWN0ZXIiKTsKLSAgICB9Ci0K
LSAgICB2b2lkIHRlc3RTZWxlY3Rpb25Nb2RpZnlFeHRlbmQoV2ViS2l0V2ViUGFnZSogcGFnZSkK
LSAgICB7Ci0gICAgICAgIFdlYktpdERPTURvY3VtZW50KiBkb2N1bWVudCA9IHdlYmtpdF93ZWJf
cGFnZV9nZXRfZG9tX2RvY3VtZW50KHBhZ2UpOwotICAgICAgICBnX2Fzc2VydChXRUJLSVRfRE9N
X0lTX0RPQ1VNRU5UKGRvY3VtZW50KSk7Ci0gICAgICAgIEdSZWZQdHI8V2ViS2l0RE9NRE9NV2lu
ZG93PiBkb21XaW5kb3cgPSBhZG9wdEdSZWYod2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZGVmYXVs
dF92aWV3KGRvY3VtZW50KSk7Ci0gICAgICAgIGdfYXNzZXJ0KFdFQktJVF9ET01fSVNfRE9NX1dJ
TkRPVyhkb21XaW5kb3cuZ2V0KCkpKTsKLSAgICAgICAgR1JlZlB0cjxXZWJLaXRET01ET01TZWxl
Y3Rpb24+IGRvbVNlbGVjdGlvbiA9IGFkb3B0R1JlZih3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0
X3NlbGVjdGlvbihkb21XaW5kb3cuZ2V0KCkpKTsKLSAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0RP
TV9JU19ET01fU0VMRUNUSU9OKGRvbVNlbGVjdGlvbi5nZXQoKSkpOwotCi0gICAgICAgIHdlYmtp
dF9kb21fZG9tX3NlbGVjdGlvbl9tb2RpZnkoZG9tU2VsZWN0aW9uLmdldCgpLCAiZXh0ZW5kIiwg
ImZvcndhcmQiLCAid29yZCIpOwotICAgIH0KLQotICAgIHZvaWQgdGVzdFNlbGVjdGlvblVuc2Vs
ZWN0KFdlYktpdFdlYlBhZ2UqIHBhZ2UpCi0gICAgewotICAgICAgICBXZWJLaXRET01Eb2N1bWVu
dCogZG9jdW1lbnQgPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2RvbV9kb2N1bWVudChwYWdlKTsKLSAg
ICAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChkb2N1bWVudCkpOwotCi0gICAg
ICAgIHdlYmtpdF9kb21fZG9jdW1lbnRfZXhlY19jb21tYW5kKGRvY3VtZW50LCAiVW5zZWxlY3Qi
LCBmYWxzZSwgIiIpOwotICAgIH0KLQotICAgIGJvb2wgcnVuVGVzdChjb25zdCBjaGFyKiB0ZXN0
TmFtZSwgV2ViS2l0V2ViUGFnZSogcGFnZSkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIGlmICgh
c3RyY21wKHRlc3ROYW1lLCAic2VsZWN0aW9uLWNoYW5nZWQiKSkgewotICAgICAgICAgICAgYm9v
bCBzZWxlY3Rpb25DaGFuZ2VkID0gZmFsc2U7Ci0KLSAgICAgICAgICAgIFdlYktpdFdlYkVkaXRv
ciogZWRpdG9yID0gd2Via2l0X3dlYl9wYWdlX2dldF9lZGl0b3IocGFnZSk7Ci0gICAgICAgICAg
ICBnX2Fzc2VydChXRUJLSVRfSVNfV0VCX0VESVRPUihlZGl0b3IpKTsKLSAgICAgICAgICAgIGFz
c2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1QoZWRpdG9yKSk7Ci0g
ICAgICAgICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQoZWRpdG9yLCAic2VsZWN0aW9uLWNo
YW5nZWQiLCBHX0NBTExCQUNLKHNlbGVjdGlvbkNoYW5nZWRDYWxsYmFjayksICZzZWxlY3Rpb25D
aGFuZ2VkKTsKLQotICAgICAgICAgICAgdGVzdFNlbGVjdGlvblNlbGVjdEFsbChwYWdlKTsKLSAg
ICAgICAgICAgIGdfYXNzZXJ0KHNlbGVjdGlvbkNoYW5nZWQpOwotCi0gICAgICAgICAgICBzZWxl
Y3Rpb25DaGFuZ2VkID0gZmFsc2U7Ci0gICAgICAgICAgICB0ZXN0U2VsZWN0aW9uQ29sbGFwc2Uo
cGFnZSk7Ci0gICAgICAgICAgICBnX2Fzc2VydChzZWxlY3Rpb25DaGFuZ2VkKTsKLQotICAgICAg
ICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IGZhbHNlOwotICAgICAgICAgICAgdGVzdFNlbGVjdGlv
bk1vZGlmeU1vdmUocGFnZSk7Ci0gICAgICAgICAgICBnX2Fzc2VydChzZWxlY3Rpb25DaGFuZ2Vk
KTsKLQotICAgICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IGZhbHNlOwotICAgICAgICAgICAg
dGVzdFNlbGVjdGlvbk1vZGlmeUV4dGVuZChwYWdlKTsKLSAgICAgICAgICAgIGdfYXNzZXJ0KHNl
bGVjdGlvbkNoYW5nZWQpOwotCi0gICAgICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkID0gZmFsc2U7
Ci0gICAgICAgICAgICB0ZXN0U2VsZWN0aW9uVW5zZWxlY3QocGFnZSk7Ci0gICAgICAgICAgICBn
X2Fzc2VydChzZWxlY3Rpb25DaGFuZ2VkKTsKLQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgICAgIH0KLQotICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOwotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgfQotfTsKLQotc3RhdGljIHZvaWQgX19hdHRyaWJ1dGVfXygoY29uc3Ry
dWN0b3IpKSByZWdpc3RlclRlc3RzKCkKLXsKLSAgICBSRUdJU1RFUl9URVNUKFdlYktpdFdlYkVk
aXRvclRlc3QsICJXZWJLaXRXZWJFZGl0b3Ivc2VsZWN0aW9uLWNoYW5nZWQiKTsKLX0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvZ2xpYi9DTWFrZUxpc3RzLnR4dAppbmRleCA4NTA2ZjBhZjI4MS4uNjEyM2E5
YzBkNWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9DTWFrZUxpc3RzLnR4
dAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvQ01ha2VMaXN0cy50eHQKQEAgLTM2LDYg
KzM2LDggQEAgc2V0KFdlYktpdEdMaWJBUElUZXN0RXh0ZW5zaW9uX0xJQlJBUklFUwogKQogCiBz
ZXQoV2ViS2l0R0xpYkFQSVdlYlByb2Nlc3NUZXN0cworICAgICR7VE9PTFNfRElSfS9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvRE9NRWxlbWVudFRlc3QuY3BwCisgICAgJHtUT09MU19E
SVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9FZGl0b3JUZXN0LmNwcAogICAgICR7
VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvRnJhbWVUZXN0LmNwcAog
ICAgICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvV2ViUHJvY2Vz
c1Rlc3QuY3BwCiApCkBAIC0xMjIsNiArMTI0LDcgQEAgQUREX1dLMl9URVNUKFRlc3RDb29raWVN
YW5hZ2VyICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEMK
IEFERF9XSzJfVEVTVChUZXN0RG93bmxvYWRzICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdEdMaWIvVGVzdERvd25sb2Fkcy5jcHApCiBBRERfV0syX1RFU1QoVGVzdFdlYktp
dEZhdmljb25EYXRhYmFzZSAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1Rlc3RXZWJLaXRGYXZpY29uRGF0YWJhc2UuY3BwKQogQUREX1dLMl9URVNUKFRlc3RXZWJL
aXRGaW5kQ29udHJvbGxlciAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1Rlc3RXZWJLaXRGaW5kQ29udHJvbGxlci5jcHApCitBRERfV0syX1RFU1QoVGVzdEVkaXRv
ciAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RFZGl0b3Iu
Y3BwKQogQUREX1dLMl9URVNUKFRlc3RGcmFtZSAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRHTGliL1Rlc3RGcmFtZS5jcHApCiBBRERfV0syX1RFU1QoVGVzdExvYWRlckNs
aWVudCAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RMb2Fk
ZXJDbGllbnQuY3BwKQogQUREX1dLMl9URVNUKFRlc3RNdWx0aXByb2Nlc3MgJHtUT09MU19ESVJ9
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0TXVsdGlwcm9jZXNzLmNwcCkKQEAg
LTEzNywzICsxNDAsNCBAQCBBRERfV0syX1RFU1QoVGVzdFdlYktpdFdlYlZpZXcgJHtUT09MU19E
SVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VwogQUREX1dLMl9URVNUKFRl
c3RXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNwcCkKIEFERF9XSzJf
VEVTVChUZXN0V2Vic2l0ZURhdGEgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0R0xpYi9UZXN0V2Vic2l0ZURhdGEuY3BwKQogQUREX1dLMl9URVNUKFRlc3RDb25zb2xlTWVz
c2FnZSAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RDb25z
b2xlTWVzc2FnZS5jcHApCitBRERfV0syX1RFU1QoVGVzdERPTUVsZW1lbnQgJHtUT09MU19ESVJ9
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0RE9NRWxlbWVudC5jcHApCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvUGxhdGZvcm1HVEsuY21ha2UgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL2dsaWIvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggZGY2YTI2N2M5NGYu
LjViMjliODViODhlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvUGxhdGZv
cm1HVEsuY21ha2UKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1BsYXRmb3JtR1RLLmNt
YWtlCkBAIC0zMCw3ICszMCw2IEBAIGxpc3QoQVBQRU5EIFdlYktpdEdMaWJBUElXZWJQcm9jZXNz
VGVzdHMKICAgICAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9N
Tm9kZVRlc3QuY3BwCiAgICAgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
R3RrL0RPTU5vZGVGaWx0ZXJUZXN0LmNwcAogICAgICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEd0ay9ET01YUGF0aE5TUmVzb2x2ZXJUZXN0LmNwcAotICAgICR7VE9PTFNf
RElSfS9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9FZGl0b3JUZXN0LmNwcAogKQogCiBB
RERfV0syX1RFU1QoSW5zcGVjdG9yVGVzdFNlcnZlciAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRHdGsvSW5zcGVjdG9yVGVzdFNlcnZlci5jcHApCkBAIC00MCw3ICszOSw2
IEBAIEFERF9XSzJfVEVTVChUZXN0RE9NQ2xpZW50UmVjdCAke1RPT0xTX0RJUn0vVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdERPCiBBRERfV0syX1RFU1QoVGVzdERPTU5vZGUgJHtU
T09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL1Rlc3RET01Ob2RlLmNwcCkK
IEFERF9XSzJfVEVTVChUZXN0RE9NTm9kZUZpbHRlciAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRHdGsvVGVzdERPTU5vZGVGaWx0ZXIuY3BwKQogQUREX1dLMl9URVNUKFRl
c3RET01YUGF0aE5TUmVzb2x2ZXIgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0R3RrL1Rlc3RET01YUGF0aE5TUmVzb2x2ZXIuY3BwKQotQUREX1dLMl9URVNUKFRlc3RFZGl0
b3IgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL1Rlc3RFZGl0b3Iu
Y3BwKQogQUREX1dLMl9URVNUKFRlc3RJbnNwZWN0b3IgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R3RrL1Rlc3RJbnNwZWN0b3IuY3BwKQogQUREX1dLMl9URVNUKFRlc3RJ
bnNwZWN0b3JTZXJ2ZXIgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3Rr
L1Rlc3RJbnNwZWN0b3JTZXJ2ZXIuY3BwKQogQUREX1dLMl9URVNUKFRlc3RPcHRpb25NZW51ICR7
VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0T3B0aW9uTWVudS5j
cHApCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvUGxhdGZvcm1XUEUuY21h
a2UgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvUGxhdGZvcm1XUEUuY21ha2UKaW5kZXggYjVk
NWJkM2YxNjMuLmFmZjNiMzRmNWZmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2ds
aWIvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1BsYXRm
b3JtV1BFLmNtYWtlCkBAIC05LDYgKzksNyBAQCBsaXN0KEFQUEVORCBXZWJLaXRHTGliQVBJVGVz
dHNfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICR7REVSSVZFRF9TT1VSQ0VTX1dQRV9BUElfRElS
fQogICAgICR7Rk9SV0FSRElOR19IRUFERVJTX1dQRV9ESVJ9CiAgICAgJHtGT1JXQVJESU5HX0hF
QURFUlNfV1BFX0VYVEVOU0lPTl9ESVJ9CisgICAgJHtGT1JXQVJESU5HX0hFQURFUlNfV1BFX0RP
TV9ESVJ9CiAgICAgJHtUT09MU19ESVJ9L3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kCiApCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336280</attachid>
            <date>2018-03-22 07:34:17 -0700</date>
            <delta_ts>2018-03-26 01:01:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-js-dom.diff</filename>
            <type>text/plain</type>
            <size>745557</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA0NTM4YWUwNzk4MC4uZGQ5
MTY2OTI5NjEgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAxOC0wMy0yMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBBZGQgQVBJIHRvIGNvbnZlcnQgYmV0d2VlbiBE
T00gYW5kIEpTQ1ZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODM0NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBEZWZpbmUgRk9SV0FSRElOR19IRUFERVJTX1dQRV9ET01fRElSLgorCisgICAgICAg
ICogU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2U6CisKIDIwMTgtMDMtMjEgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0g
SW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBKYXZhU2NyaXB0Q29yZSBnbGliIGJpbmRpbmdzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IGM0OTM2OWJiZDE1Li5lMmU2NTQ3ODk2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
OTUgQEAKKzIwMTgtMDMtMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtHVEtdW1dQRV0gQWRkIEFQSSB0byBjb252ZXJ0IGJldHdlZW4gRE9N
IGFuZCBKU0NWYWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTgzNDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIG1ldGhvZHMgdG8gZ2V0IGEgSlNDVmFsdWUgZm9yIGEgV2ViS2l0RE9NT2JqZWN0
IGFuZCB0byBjcmVhdGUgYSBXZWJLaXRET01Ob2RlIGZyb20gYSBKU0NWYWx1ZS4gRGVwcmVjYXRl
CisgICAgICAgIG1vc3Qgb2YgdGhlIEdUSysgRE9NIGJpbmRpbmdzIEFQSSBhbmQgbW92ZSB0aGUg
bm9uLWRlcHJlY2F0ZWQgcGFydHMgdG8gZ2xpYiBkaXIgdG8gYmUgZXhwb3NlZCBieSBXUEUgdG9v
LgorCisgICAgICAgICogUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgICogUGxhdGZvcm1XUEUu
Y21ha2U6CisgICAgICAgICogU291cmNlc0dUSy50eHQ6CisgICAgICAgICogU291cmNlc1dQRS50
eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0
aW9ucy50eHQ6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9E
T00vRE9NT2JqZWN0Q2FjaGUuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL0RPTU9iamVjdENhY2hlLmNwcC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9ET01PYmplY3RDYWNo
ZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vRE9NT2JqZWN0Q2FjaGUuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01Eb2N1bWVudC5jcHA6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpraXQpOgorICAgICAgICAoV2ViS2l0Ojpjb3JlKToKKyAgICAgICAgKFdl
YktpdDo6d3JhcERvY3VtZW50KToKKyAgICAgICAgKHdlYmtpdF9kb21fZG9jdW1lbnRfY2xhc3Nf
aW5pdCk6CisgICAgICAgICh3ZWJraXRfZG9tX2RvY3VtZW50X2luaXQpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTURvY3VtZW50UHJp
dmF0ZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlLmguCisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NRWxlbWVudC5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpraXQpOgorICAgICAgICAoV2ViS2l0Ojpjb3JlKToK
KyAgICAgICAgKFdlYktpdDo6d3JhcEVsZW1lbnQpOgorICAgICAgICAod2Via2l0X2RvbV9lbGVt
ZW50X2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0X2RvbV9lbGVtZW50X2luaXQpOgorICAg
ICAgICAod2Via2l0X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRfZWxlbWVudF9pc191c2VyX2VkaXRl
ZCk6CisgICAgICAgICh3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X2dldF9h
dXRvX2ZpbGxlZCk6CisgICAgICAgICh3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVt
ZW50X3NldF9hdXRvX2ZpbGxlZCk6CisgICAgICAgICh3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9p
bnB1dF9lbGVtZW50X3NldF9lZGl0aW5nX3ZhbHVlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01FbGVtZW50UHJpdmF0ZS5oOiBSZW5h
bWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUVsZW1lbnRQcml2YXRlLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NTm9kZS5jcHA6IEFkZGVkLgorICAgICAg
ICAoX1dlYktpdERPTU5vZGVQcml2YXRlOjp+X1dlYktpdERPTU5vZGVQcml2YXRlKToKKyAgICAg
ICAgKFdlYktpdDo6a2l0KToKKyAgICAgICAgKFdlYktpdDo6Y29yZSk6CisgICAgICAgIChXZWJL
aXQ6OndyYXBOb2RlKToKKyAgICAgICAgKHdlYmtpdERPTU5vZGVDb25zdHJ1Y3Rvcik6CisgICAg
ICAgICh3ZWJraXRET01Ob2RlRmluYWxpemUpOgorICAgICAgICAod2Via2l0X2RvbV9ub2RlX2lu
aXQpOgorICAgICAgICAod2Via2l0X2RvbV9ub2RlX2NsYXNzX2luaXQpOgorICAgICAgICAod2Vi
a2l0RE9NTm9kZVNldENvcmVPYmplY3QpOgorICAgICAgICAod2Via2l0RE9NTm9kZUdldENvcmVP
YmplY3QpOgorICAgICAgICAod2Via2l0X2RvbV9ub2RlX2Zvcl9qc192YWx1ZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NTm9kZVBy
aXZhdGUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVQcml2YXRlLmguCisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NT2JqZWN0LmNwcDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01PYmplY3QuY3BwLgorICAgICAgICAod2Via2l0RE9NT2JqZWN0U2V0UHJv
cGVydHkpOgorICAgICAgICAod2Via2l0X2RvbV9vYmplY3RfY2xhc3NfaW5pdCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NUHJpdmF0
ZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0Ojp3cmFwKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01Qcml2YXRlLmg6IFJlbmFt
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vRE9NT2JqZWN0Q2FjaGUuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9nbGliL1dlYktpdEZyYW1lLmNwcDoKKyAgICAgICAgKHdlYmtpdF9mcmFtZV9nZXRfanNf
dmFsdWVfZm9yX2RvbV9vYmplY3QpOgorICAgICAgICAod2Via2l0X2ZyYW1lX2dldF9qc192YWx1
ZV9mb3JfZG9tX29iamVjdF9pbl9zY3JpcHRfd29ybGQpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5jcHA6CisgICAgICAgICh3ZWJr
aXRfd2ViX3BhZ2VfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRXZWJQYWdlQ3JlYXRlKToK
KyAgICAgICAgKHdlYmtpdF93ZWJfcGFnZV9nZXRfZG9tX2RvY3VtZW50KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL0dPYmplY3RFdmVudExpc3RlbmVy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6R09iamVjdEV2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL0dPYmpl
Y3ROb2RlRmlsdGVyQ29uZGl0aW9uLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL0dPYmplY3RYUGF0aE5TUmVzb2x2ZXIuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQXR0ci5jcHA6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01BdHRyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01CbG9iLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUJsb2IuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNEQVRBU2VjdGlvbi5jcHA6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DREFUQVNl
Y3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUNTU1J1bGUuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTUnVsZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTUnVsZUxpc3QuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NT
UnVsZUxpc3QuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlv
bi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NQ1NTU3R5bGVTaGVldC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZVNoZWV0Lmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NWYWx1ZS5jcHA6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01DU1NWYWx1ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DaGFyYWN0ZXJEYXRhLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGll
bnRSZWN0LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUNsaWVudFJlY3QuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0LmNwcDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJl
Y3RMaXN0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01Db21tZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNvbW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTUltcGxlbWVudGF0aW9uLmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTURPTUltcGxlbWVudGF0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01TZWxlY3Rpb24uY3BwOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NU2VsZWN0aW9u
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01ET01Ub2tlbkxpc3QuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NVG9rZW5MaXN0Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01XaW5kb3cuY3BwOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
RE9NV2luZG93Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01EZXByZWNhdGVkLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50Lmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudEZyYWdt
ZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTURvY3VtZW50RnJhZ21lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50R3RrLmNwcDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01Eb2N1bWVudC5jcHAuCisgICAgICAgICh3ZWJraXRET01Eb2N1bWVudERPTUV2ZW50
VGFyZ2V0SW5pdCk6CisgICAgICAgICh3ZWJraXRET01Eb2N1bWVudEluc3RhbGxQcm9wZXJ0aWVz
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTURvY3VtZW50VHlwZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudFR5cGUuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1lbnQuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1l
bnRHdGsuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1lbnQuY3BwLgorICAgICAgICAod2Via2l0
RE9NRWxlbWVudERPTUV2ZW50VGFyZ2V0SW5pdCk6CisgICAgICAgICh3ZWJraXRET01FbGVtZW50
SW5zdGFsbFByb3BlcnRpZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NRXZlbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRXZlbnQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUV2ZW50VGFyZ2V0LmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUV2ZW50VGFyZ2V0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01GaWxlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUZpbGUuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUZpbGVMaXN0LmNwcDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUZp
bGVMaXN0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudC5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTEFwcGxldEVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxBcmVhRWxl
bWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MQXJlYUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCUkVsZW1lbnQuY3BwOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJS
RWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTEJhc2VFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCYXNlRWxlbWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TEJvZHlFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxCb2R5RWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQu
Y3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxD
YW52YXNFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MQ29sbGVjdGlvbi5jcHA6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQ29sbGVjdGlvbi5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTERMaXN0RWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRExpc3RFbGVtZW50Lmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRGlyZWN0b3J5
RWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MRGlyZWN0b3J5RWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTERpdkVsZW1lbnQuY3Bw
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTERpdkVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxEb2N1bWVudC5jcHA6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRG9jdW1lbnQuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRW1iZWRFbGVtZW50LmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxFbWJlZEVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGaWVsZFNldEVsZW1lbnQuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZpZWxk
U2V0RWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTEZvbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGb250RWxlbWVudC5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGb3JtRWxlbWVudC5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVu
dC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MRnJhbWVFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRnJhbWVTZXRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxGcmFtZVNldEVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIUkVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEhSRWxlbWVudC5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTEhlYWRFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIZWFkRWxlbWVudC5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEhlYWRpbmdF
bGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxIZWFkaW5nRWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEh0bWxFbGVtZW50LmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxIdG1sRWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQuY3BwOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTElGcmFtZUVs
ZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TElucHV0RWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTElFbGVtZW50LmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxMSUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMYWJlbEVsZW1lbnQuY3BwOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExhYmVsRWxl
bWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTExlZ2VuZEVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExlZ2VuZEVsZW1lbnQuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxMaW5rRWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGlua0VsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNYXBFbGVtZW50LmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxNYXBFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWFycXVlZUVsZW1lbnQuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1hcnF1
ZWVFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MTWVudUVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1lbnVFbGVtZW50Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MTWV0YUVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTW9kRWxlbWVudC5j
cHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MTW9kRWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudC5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT0xpc3RF
bGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudC5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTE9wdEdyb3VwRWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT3B0R3JvdXBFbGVtZW50Lmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT3B0
aW9uRWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9wdGlvbnNDb2xsZWN0
aW9uLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFBhcmFncmFwaEVsZW1lbnQu
Y3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTFBhcmFncmFwaEVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TFBhcmFtRWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTFByZUVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFByZUVsZW1lbnQuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxQcml2YXRlLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxRdW90ZUVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFF1b3RlRWxlbWVu
dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxT
ZWxlY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU3R5bGVFbGVtZW50
LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxTdHlsZUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxUYWJsZUNhcHRpb25FbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudC5jcHA6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MVGFibGVDZWxsRWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudC5jcHA6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFi
bGVDb2xFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxUYWJsZVJvd0VsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxUZXh0QXJlYUVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudC5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRpdGxl
RWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MVGl0bGVFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVUxpc3RFbGVtZW50LmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxVTGlzdEVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUtleWJvYXJkRXZlbnQuY3BwOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NS2V5Ym9hcmRFdmVudC5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NTWVkaWFMaXN0LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTU1lZGlhTGlzdC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTW91c2VFdmVudC5jcHA6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Nb3VzZUV2
ZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01OYW1lZE5vZGVNYXAuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTmFtZWROb2RlTWFwLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2Rl
RmlsdGVyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTU5vZGVGaWx0ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVHdGsuY3BwOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TU5vZGUuY3BwLgorICAgICAgICAod2Via2l0RE9NTm9kZURPTUV2ZW50VGFyZ2V0SW5pdCk6Cisg
ICAgICAgICh3ZWJraXRET01Ob2RlSW5zdGFsbFByb3BlcnRpZXMpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUl0ZXJhdG9yLmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTU5vZGVJdGVyYXRvci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUxpc3QuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUxpc3QuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU9iamVjdC5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NUHJpdmF0ZUd0ay5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJpdmF0ZS5jcHAuCisgICAgICAg
IChXZWJLaXQ6OndyYXBOb2RlR3RrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVByaXZhdGVHdGsuaDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Q
cml2YXRlLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJvY2Vzc2luZ0luc3RydWN0
aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01SYW5nZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01SYW5nZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NU3R5bGVTaGVldC5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01TdHlsZVNoZWV0
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01TdHlsZVNoZWV0TGlzdC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01TdHlsZVNoZWV0TGlzdC5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVGV4dC5jcHA6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01U
ZXh0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01UcmVlV2Fsa2VyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVRyZWVXYWxrZXIuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVVJRXZlbnQuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVUlF
dmVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NV2hlZWxFdmVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01XaGVlbEV2ZW50Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01YUGF0aEV4cHJlc3Npb24u
Y3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NWFBhdGhFeHByZXNzaW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01YUGF0aE5TUmVzb2x2ZXIuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhOU1Jl
c29sdmVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01YUGF0aFJlc3VsdC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01YUGF0aFJlc3VsdC5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vZG9jcy93ZWJraXRkb21ndGstNC4w
LXNlY3Rpb25zLnR4dDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvV2ViS2l0RnJhbWUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS93cGUvRE9NL1dlYktpdERPTURlZmluZXMuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudFBy
aXZhdGUuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9N
L1dlYktpdERPTURvY3VtZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL3dwZS9ET00vV2ViS2l0RE9NRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL1dlYktpdERPTU5vZGUuaDog
QWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL0RPTS9X
ZWJLaXRET01PYmplY3QuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU9iamVjdC5oLgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vd2Via2l0ZG9tLmg6IFJlbmFtZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NTm9kZVByaXZhdGUuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS93cGUvV2ViS2l0RnJhbWUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS93cGUvV2ViS2l0V2ViSGl0VGVzdFJlc3VsdC5oOiBBZGRlZC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0V2ViUGFnZS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJQcm9jZXNz
RW51bVR5cGVzLmNwcC50ZW1wbGF0ZTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdFdlYlByb2Nlc3NFbnVtVHlwZXMuaC50ZW1wbGF0ZTog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTU9iamVjdFByaXZhdGUuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS93cGUvd2Via2l0LXdlYi1leHRlbnNpb24uaDoKKwogMjAxOC0wMy0y
MSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0dUS11bV1BFXSBKU0MgYmluZGluZ3Mgbm90IGludHJvc3BlY3RhYmxlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdU
Sy5jbWFrZQppbmRleCA0YWRjZmZiOTY2My4uMzU5MjJmNWFhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdU
Sy5jbWFrZQpAQCAtNDAxLDYgKzQwMSw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9JTkNMVURFX0RJ
UkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL2xpbnV4IgogICAgICIke1dF
QktJVF9ESVJ9L1VJUHJvY2Vzcy9zb3VwIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIiCisgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00iCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00iCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL3VuaXgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtV1BFLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFrZQppbmRleCAwM2U3
ZTFkOWY2Ny4uODIzZDQxNmI1ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1X
UEUuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtOCw2ICs4
LDcgQEAgc2V0KFdlYktpdF9TdG9yYWdlUHJvY2Vzc19PVVRQVVRfTkFNRSBXUEVTdG9yYWdlUHJv
Y2VzcykKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV1BFX0FQSV9ESVJ9
KQogZmlsZShNQUtFX0RJUkVDVE9SWSAke0ZPUldBUkRJTkdfSEVBREVSU19XUEVfRElSfSkKIGZp
bGUoTUFLRV9ESVJFQ1RPUlkgJHtGT1JXQVJESU5HX0hFQURFUlNfV1BFX0VYVEVOU0lPTl9ESVJ9
KQorZmlsZShNQUtFX0RJUkVDVE9SWSAke0ZPUldBUkRJTkdfSEVBREVSU19XUEVfRE9NX0RJUn0p
CiAKIGNvbmZpZ3VyZV9maWxlKHdwZS93cGUtd2Via2l0LnBjLmluICR7Q01BS0VfQklOQVJZX0RJ
Un0vd3BlLXdlYmtpdC5wYyBAT05MWSkKIApAQCAtNDIsOSArNDMsMTcgQEAgYWRkX2N1c3RvbV9j
b21tYW5kKAogICAgIENPTU1BTkQgbG4gLW4gLXMgLWYgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS93cGUgJHtGT1JXQVJESU5HX0hFQURFUlNfV1BFX0VYVEVOU0lP
Tl9ESVJ9L3dwZQogKQogCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7Rk9SV0FS
RElOR19IRUFERVJTX1dQRV9ET01fRElSfS93cGUKKyAgICBERVBFTkRTICR7V0VCS0lUX0RJUn0v
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL0RPTQorICAgIENPTU1BTkQgbG4gLW4g
LXMgLWYgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9N
ICR7Rk9SV0FSRElOR19IRUFERVJTX1dQRV9ET01fRElSfS93cGUKKyAgICBWRVJCQVRJTQorKQor
CiBhZGRfY3VzdG9tX3RhcmdldCh3ZWJraXR3cGUtZmFrZS1hcGktaGVhZGVycwogICAgIERFUEVO
RFMgJHtGT1JXQVJESU5HX0hFQURFUlNfV1BFX0RJUn0vd3BlCiAgICAgICAgICAgICAke0ZPUldB
UkRJTkdfSEVBREVSU19XUEVfRVhURU5TSU9OX0RJUn0vd3BlCisgICAgICAgICAgICAke0ZPUldB
UkRJTkdfSEVBREVSU19XUEVfRE9NX0RJUn0vd3BlCiApCiAKIHNldChXRUJLSVRfRVhUUkFfREVQ
RU5ERU5DSUVTCkBAIC04MCw2ICs4OSw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9ERVJJVkVEX1NP
VVJDRVMKICAgICAke0RFUklWRURfU09VUkNFU19XRUJLSVRfRElSfS9XZWJLaXRSZXNvdXJjZXNH
UmVzb3VyY2VCdW5kbGUuYwogCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfV1BFX0FQSV9ESVJ9L1dl
YktpdEVudW1UeXBlcy5jcHAKKyAgICAke0RFUklWRURfU09VUkNFU19XUEVfQVBJX0RJUn0vV2Vi
S2l0V2ViUHJvY2Vzc0VudW1UeXBlcy5jcHAKICkKIAogc2V0KFdQRV9BUElfSU5TVEFMTEVEX0hF
QURFUlMKQEAgLTEzOCw2ICsxNDgsMjcgQEAgc2V0KFdQRV9BUElfSU5TVEFMTEVEX0hFQURFUlMK
ICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL3dlYmtpdC5oCiApCiAKK3NldChX
UEVfV0VCX0VYVEVOU0lPTl9BUElfSU5TVEFMTEVEX0hFQURFUlMKKyAgICAke0RFUklWRURfU09V
UkNFU19XUEVfQVBJX0RJUn0vV2ViS2l0V2ViUHJvY2Vzc0VudW1UeXBlcy5oCisgICAgJHtXRUJL
SVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0Q29uc29sZU1l
c3NhZ2UuaAorICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
d3BlL1dlYktpdEZyYW1lLmgKKyAgICAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL3dwZS9XZWJLaXRTY3JpcHRXb3JsZC5oCisgICAgJHtXRUJLSVRfRElSfS9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0V2ViRWRpdG9yLmgKKyAgICAke1dF
QktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJFeHRl
bnNpb24uaAorICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
d3BlL1dlYktpdFdlYkhpdFRlc3RSZXN1bHQuaAorICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdFdlYlBhZ2UuaAorICAgICR7V0VCS0lUX0RJ
Un0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL3dlYmtpdC13ZWItZXh0ZW5zaW9u
LmgKKykKKworc2V0KFdQRV9ET01fQVBJX0lOU1RBTExFRF9IRUFERVJTCisgICAgJHtXRUJLSVRf
RElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL3dlYmtpdGRvbWRlZmlu
ZXMuaAorICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3Bl
L0RPTS93ZWJraXRkb20uaAorICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvd3BlL0RPTS9XZWJLaXRET01Eb2N1bWVudC5oCisgICAgJHtXRUJLSVRfRElSfS9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL1dlYktpdERPTUVsZW1lbnQuaAor
ICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL0RPTS9X
ZWJLaXRET01Ob2RlLmgKKyAgICAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL3dwZS9ET00vV2ViS2l0RE9NT2JqZWN0LmgKKykKKwogIyBUbyBnZW5lcmF0ZSBXZWJL
aXRFbnVtVHlwZXMuaCB3ZSB3YW50IHRvIHVzZSBhbGwgaW5zdGFsbGVkIGhlYWRlcnMsIGV4Y2Vw
dCBXZWJLaXRFbnVtVHlwZXMuaCBpdHNlbGYuCiBzZXQoV1BFX0VOVU1fR0VORVJBVElPTl9IRUFE
RVJTICR7V1BFX0FQSV9JTlNUQUxMRURfSEVBREVSU30pCiBsaXN0KFJFTU9WRV9JVEVNIFdQRV9F
TlVNX0dFTkVSQVRJT05fSEVBREVSUyAke0RFUklWRURfU09VUkNFU19XUEVfQVBJX0RJUn0vV2Vi
S2l0RW51bVR5cGVzLmgpCkBAIC0xNTIsNiArMTgzLDE5IEBAIGFkZF9jdXN0b21fY29tbWFuZCgK
ICAgICBWRVJCQVRJTQogKQogCitzZXQoV1BFX1dFQl9QUk9DRVNTX0VOVU1fR0VORVJBVElPTl9I
RUFERVJTICR7V1BFX1dFQl9FWFRFTlNJT05fQVBJX0lOU1RBTExFRF9IRUFERVJTfSkKK2xpc3Qo
UkVNT1ZFX0lURU0gV1BFX1dFQl9QUk9DRVNTX0VOVU1fR0VORVJBVElPTl9IRUFERVJTICR7REVS
SVZFRF9TT1VSQ0VTX1dQRV9BUElfRElSfS9XZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVzLmgpCith
ZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dQRV9BUElf
RElSfS9XZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVzLmgKKyAgICAgICAgICAgJHtERVJJVkVEX1NP
VVJDRVNfV1BFX0FQSV9ESVJ9L1dlYktpdFdlYlByb2Nlc3NFbnVtVHlwZXMuY3BwCisgICAgREVQ
RU5EUyAke1dQRV9XRUJfUFJPQ0VTU19FTlVNX0dFTkVSQVRJT05fSEVBREVSU30KKworICAgIENP
TU1BTkQgZ2xpYi1ta2VudW1zIC0tdGVtcGxhdGUgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0V2ViUHJvY2Vzc0VudW1UeXBlcy5oLnRlbXBsYXRl
ICR7V1BFX1dFQl9QUk9DRVNTX0VOVU1fR0VORVJBVElPTl9IRUFERVJTfSB8IHNlZCBzL3dlYl9r
aXQvd2Via2l0LyB8IHNlZCBzL1dFQktJVF9UWVBFX0tJVC9XRUJLSVRfVFlQRS8gPiAke0RFUklW
RURfU09VUkNFU19XUEVfQVBJX0RJUn0vV2ViS2l0V2ViUHJvY2Vzc0VudW1UeXBlcy5oCisKKyAg
ICBDT01NQU5EIGdsaWItbWtlbnVtcyAtLXRlbXBsYXRlICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdFdlYlByb2Nlc3NFbnVtVHlwZXMuY3BwLnRl
bXBsYXRlICR7V1BFX1dFQl9QUk9DRVNTX0VOVU1fR0VORVJBVElPTl9IRUFERVJTfSB8IHNlZCBz
L3dlYl9raXQvd2Via2l0LyA+ICR7REVSSVZFRF9TT1VSQ0VTX1dQRV9BUElfRElSfS9XZWJLaXRX
ZWJQcm9jZXNzRW51bVR5cGVzLmNwcAorICAgIFZFUkJBVElNCispCisKIHNldChXZWJLaXRSZXNv
dXJjZXMKICkKIApAQCAtMTg0LDYgKzIyOCw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9JTkNMVURF
X0RJUkVDVE9SSUVTCiAgICAgIiR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0vSmF2YVNjcmlwdENv
cmUvZ2xpYiIKICAgICAiJHtGT1JXQVJESU5HX0hFQURFUlNfV1BFX0RJUn0iCiAgICAgIiR7Rk9S
V0FSRElOR19IRUFERVJTX1dQRV9FWFRFTlNJT05fRElSfSIKKyAgICAiJHtGT1JXQVJESU5HX0hF
QURFUlNfV1BFX0RPTV9ESVJ9IgogICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9IgogICAgICIk
e0RFUklWRURfU09VUkNFU19XUEVfQVBJX0RJUn0iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvIgpAQCAtMjE3LDcgKzI2Miw5IEBAIGxpc3QoQVBQRU5EIFdlYktp
dF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL3NvdXAi
CiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL3dwZSIKICAgICAiJHtXRUJLSVRfRElSfS9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliIgorICAgICIke1dFQktJVF9ESVJ9L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NIgogICAgICIke1dFQktJVF9ESVJ9
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZSIKKyAgICAiJHtXRUJLSVRfRElSfS9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NIgogICAgICIke1dFQktJVF9ESVJ9
L1dlYlByb2Nlc3Mvc291cCIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL3VuaXgiCiAg
ICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNl
c0dUSy50eHQKaW5kZXggMjhlNmNkNzA3NWQuLjQwMWNmNjFkNjFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50
eHQKQEAgLTI4MSw2ICsyODEsMTMgQEAgV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc01haW5HdGsu
Y3BwCiBXZWJQcm9jZXNzL3NvdXAvV2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAKIFdl
YlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHAKIAorV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ2xpYi9ET00vRE9NT2JqZWN0Q2FjaGUuY3BwIEBuby11bmlmeQorV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NRG9jdW1lbnQuY3BwIEBuby11
bmlmeQorV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NRWxl
bWVudC5jcHAgQG5vLXVuaWZ5CitXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RP
TS9XZWJLaXRET01Ob2RlLmNwcCBAbm8tdW5pZnkKK1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2dsaWIvRE9NL1dlYktpdERPTU9iamVjdC5jcHAgQG5vLXVuaWZ5CitXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01Qcml2YXRlLmNwcCBAbm8tdW5pZnkK
KwogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRDb25zb2xlTWVzc2Fn
ZS5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktp
dEV4dGVuc2lvbk1hbmFnZXIuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ2xpYi9XZWJLaXRGcmFtZS5jcHAgQG5vLXVuaWZ5CkBAIC0yOTEsNyArMjk4LDYgQEAg
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJIaXRUZXN0UmVzdWx0
LmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0
V2ViUGFnZS5jcHAgQG5vLXVuaWZ5CiAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vQ29udmVydFRvVVRGOFN0cmluZy5jcHAKLVdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vRE9NT2JqZWN0Q2FjaGUuY3BwCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL0dPYmplY3RFdmVudExpc3RlbmVyLmNwcAogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vR09iamVjdFhQYXRoTlNSZXNvbHZlci5j
cHAKQEAgLTMxMiwxMCArMzE4LDEwIEBAIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NRE9NU2VsZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01Ub2tlbkxpc3QuY3BwCiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVdpbmRvdy5jcHAKIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRGVwcmVjYXRlZC5jcHAKLVdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnQuY3BwCitX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50R3Rr
LmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1
bWVudEZyYWdtZW50LmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01Eb2N1bWVudFR5cGUuY3BwCi1XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUVsZW1lbnQuY3BwCitXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUVsZW1lbnRHdGsuY3BwCiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUV2ZW50LmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVudFRhcmdldC5jcHAKIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRmlsZS5jcHAKQEAgLTM4MiwxMiArMzg4
LDExIEBAIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NS2V5
Ym9hcmRFdmVudC5jcHAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NTWVkaWFMaXN0LmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01Nb3VzZUV2ZW50LmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01OYW1lZE5vZGVNYXAuY3BwCi1XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGUuY3BwCitXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVHdGsuY3BwCiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVGaWx0ZXIuY3BwCiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVJdGVyYXRvci5jcHAKIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUxpc3QuY3BwCi1X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU9iamVjdC5jcHAK
LVdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJpdmF0ZS5j
cHAKK1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJpdmF0
ZUd0ay5jcHAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
UHJvY2Vzc2luZ0luc3RydWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01SYW5nZS5jcHAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NU3R5bGVTaGVldC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU291cmNlc1dQRS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CmluZGV4IDcw
ZGJmZGZiY2MxLi5iYWI5YjA2NTZjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
V1BFLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CkBAIC0xOTYsMTIgKzE5
NiwyMCBAQCBVSVByb2Nlc3Mvd3BlL1dlYlBhc3RlYm9hcmRQcm94eVdQRS5jcHAKIFVJUHJvY2Vz
cy93cGUvV2ViUHJlZmVyZW5jZXNXUEUuY3BwCiBVSVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQb29s
V1BFLmNwcAogCitXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9ET01PYmpl
Y3RDYWNoZS5jcHAgQG5vLXVuaWZ5CitXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGli
L0RPTS9XZWJLaXRET01Eb2N1bWVudC5jcHAgQG5vLXVuaWZ5CitXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01FbGVtZW50LmNwcCBAbm8tdW5pZnkKK1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTU5vZGUuY3BwIEBuby11
bmlmeQorV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NT2Jq
ZWN0LmNwcCBAbm8tdW5pZnkKK1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9N
L1dlYktpdERPTVByaXZhdGUuY3BwIEBuby11bmlmeQorCiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9nbGliL1dlYktpdENvbnNvbGVNZXNzYWdlLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0RXh0ZW5zaW9uTWFuYWdlci5jcHAgQG5v
LXVuaWZ5CiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdEZyYW1lLmNw
cCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0U2Ny
aXB0V29ybGQuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xp
Yi9XZWJLaXRXZWJFZGl0b3IuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ2xpYi9XZWJLaXRXZWJFeHRlbnNpb24uY3BwIEBuby11bmlmeQorV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJIaXRUZXN0UmVzdWx0LmNwcCBAbm8tdW5p
ZnkKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5jcHAg
QG5vLXVuaWZ5CiAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvZ2xpYi9JbmplY3RlZEJ1bmRs
ZUdsaWIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2Rv
Y3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAppbmRleCBlOTUyMjMxNzIy
NS4uOGFjMDQyMDA3ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dApAQCAtMTQ5
MCw2ICsxNDkwLDggQEAgd2Via2l0X2ZyYW1lX2dldF9qYXZhc2NyaXB0X2dsb2JhbF9jb250ZXh0
CiB3ZWJraXRfZnJhbWVfZ2V0X2phdmFzY3JpcHRfY29udGV4dF9mb3Jfc2NyaXB0X3dvcmxkCiB3
ZWJraXRfZnJhbWVfZ2V0X2pzX2NvbnRleHQKIHdlYmtpdF9mcmFtZV9nZXRfanNfY29udGV4dF9m
b3Jfc2NyaXB0X3dvcmxkCit3ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0
Cit3ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0X2luX3NjcmlwdF93b3Js
ZAogCiA8U1VCU0VDVElPTiBTdGFuZGFyZD4KIFdlYktpdEZyYW1lQ2xhc3MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9ET01P
YmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2dsaWIvRE9NL0RPTU9iamVjdENhY2hlLmNwcApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVu
YW1lIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL0RPTU9iamVjdENhY2hlLmNwcApyZW5hbWUgdG8gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9ET01PYmplY3RDYWNoZS5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9E
T01PYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9nbGliL0RPTS9ET01PYmplY3RDYWNoZS5oCnNpbWlsYXJpdHkgaW5kZXggOTUlCnJlbmFt
ZSBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9ET01PYmplY3RDYWNoZS5oCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL0RPTU9iamVjdENhY2hlLmgKaW5kZXggZTNlOWZjM2Vj
ODcuLjJiY2JhNjYxMDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vRE9NT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL0RPTU9iamVjdENhY2hl
LmgKQEAgLTE2LDggKzE2LDcgQEAKICAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKICAqLwogCi0j
aWZuZGVmIERPTU9iamVjdENhY2hlX2gKLSNkZWZpbmUgRE9NT2JqZWN0Q2FjaGVfaAorI3ByYWdt
YSBvbmNlCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIE5vZGU7CkBAIC0zMiw1ICszMSwz
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBmb3JnZXQodm9pZCogb2JqZWN0SGFuZGxlKTsK
IH07CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTURv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z2xpYi9ET00vV2ViS2l0RE9NRG9jdW1lbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5mYTcwYTMyZWMzOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NRG9jdW1l
bnQuY3BwCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDE4IElnYWxp
YSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRE
T01Eb2N1bWVudC5oIgorCisjaW5jbHVkZSAiRE9NT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJX
ZWJLaXRET01Eb2N1bWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01Ob2RlUHJpdmF0
ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTVByaXZhdGUuaCIKKworI2lmIFBMQVRGT1JNKEdUSykK
KyNpbmNsdWRlICJXZWJLaXRET01FdmVudFRhcmdldC5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitXZWJLaXRET01Eb2N1bWVudCoga2l0KFdlYkNvcmU6OkRvY3VtZW50KiBvYmop
Cit7CisgICAgcmV0dXJuIFdFQktJVF9ET01fRE9DVU1FTlQoa2l0KHN0YXRpY19jYXN0PFdlYkNv
cmU6Ok5vZGUqPihvYmopKSk7Cit9CisKK1dlYkNvcmU6OkRvY3VtZW50KiBjb3JlKFdlYktpdERP
TURvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gZG9jdW1lbnQgPyBzdGF0aWNfY2Fz
dDxXZWJDb3JlOjpEb2N1bWVudCo+KHdlYmtpdERPTU5vZGVHZXRDb3JlT2JqZWN0KFdFQktJVF9E
T01fTk9ERShkb2N1bWVudCkpKSA6IG51bGxwdHI7Cit9CisKK1dlYktpdERPTURvY3VtZW50KiB3
cmFwRG9jdW1lbnQoV2ViQ29yZTo6RG9jdW1lbnQqIGNvcmVPYmplY3QpCit7CisgICAgQVNTRVJU
KGNvcmVPYmplY3QpOworI2lmIFBMQVRGT1JNKEdUSykKKyAgICByZXR1cm4gV0VCS0lUX0RPTV9E
T0NVTUVOVChnX29iamVjdF9uZXcoV0VCS0lUX0RPTV9UWVBFX0RPQ1VNRU5ULCAiY29yZS1vYmpl
Y3QiLCBjb3JlT2JqZWN0LCBudWxscHRyKSk7CisjZWxzZQorICAgIGF1dG8qIGRvY3VtZW50ID0g
V0VCS0lUX0RPTV9ET0NVTUVOVChnX29iamVjdF9uZXcoV0VCS0lUX0RPTV9UWVBFX0RPQ1VNRU5U
LCBudWxscHRyKSk7CisgICAgd2Via2l0RE9NTm9kZVNldENvcmVPYmplY3QoV0VCS0lUX0RPTV9O
T0RFKGRvY3VtZW50KSwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KGNvcmVPYmplY3QpKTsK
KyAgICByZXR1cm4gZG9jdW1lbnQ7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNpZiBQTEFURk9STShHVEspCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsK
K0dfREVGSU5FX1RZUEVfV0lUSF9DT0RFKFdlYktpdERPTURvY3VtZW50LCB3ZWJraXRfZG9tX2Rv
Y3VtZW50LCBXRUJLSVRfRE9NX1RZUEVfTk9ERSwgR19JTVBMRU1FTlRfSU5URVJGQUNFKFdFQktJ
VF9ET01fVFlQRV9FVkVOVF9UQVJHRVQsIHdlYmtpdERPTURvY3VtZW50RE9NRXZlbnRUYXJnZXRJ
bml0KSkKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKyNlbHNlCitHX0RFRklORV9U
WVBFKFdlYktpdERPTURvY3VtZW50LCB3ZWJraXRfZG9tX2RvY3VtZW50LCBXRUJLSVRfRE9NX1RZ
UEVfTk9ERSkKKyNlbmRpZgorCitzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX2RvY3VtZW50X2NsYXNz
X2luaXQoV2ViS2l0RE9NRG9jdW1lbnRDbGFzcyogZG9jdW1lbnRDbGFzcykKK3sKKyNpZiBQTEFU
Rk9STShHVEspCisgICAgR09iamVjdENsYXNzKiBnb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFT
Uyhkb2N1bWVudENsYXNzKTsKKyAgICB3ZWJraXRET01Eb2N1bWVudEluc3RhbGxQcm9wZXJ0aWVz
KGdvYmplY3RDbGFzcyk7CisjZW5kaWYKK30KKworc3RhdGljIHZvaWQgd2Via2l0X2RvbV9kb2N1
bWVudF9pbml0KFdlYktpdERPTURvY3VtZW50KikKK3sKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1
bWVudFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ2xpYi9ET00vV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlLmgKc2ltaWxhcml0eSBpbmRleCA4
MSUKcmVuYW1lIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50UHJpdmF0ZS5oCnJlbmFtZSB0byBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTURvY3Vt
ZW50UHJpdmF0ZS5oCmluZGV4IDYzM2NlZDUwZWIzLi4yM2YwMzIyMWFkYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTURvY3VtZW50UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlLmgKQEAgLTEs
NSArMSw1IEBACiAvKgotICogIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBz
b3VyY2UgcHJvamVjdC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMTggSWdhbGlhIFMuTC4KICAqCiAg
KiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCkBAIC0xNywxMSArMTcsMTAgQEAKICAqICBCb3N0b24sIE1BIDAyMTEw
LTEzMDEsIFVTQS4KICAqLwogCi0jaWZuZGVmIFdlYktpdERPTURvY3VtZW50UHJpdmF0ZV9oCi0j
ZGVmaW5lIFdlYktpdERPTURvY3VtZW50UHJpdmF0ZV9oCisjcHJhZ21hIG9uY2UKIAorI2luY2x1
ZGUgIldlYktpdERPTURvY3VtZW50LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgot
I2luY2x1ZGUgPHdlYmtpdGRvbS9XZWJLaXRET01Eb2N1bWVudC5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIFdlYktpdERPTURvY3VtZW50KiB3cmFwRG9jdW1lbnQoV2ViQ29yZTo6RG9jdW1lbnQq
KTsKQEAgLTI5LDQgKzI4LDcgQEAgV2ViS2l0RE9NRG9jdW1lbnQqIGtpdChXZWJDb3JlOjpEb2N1
bWVudCopOwogV2ViQ29yZTo6RG9jdW1lbnQqIGNvcmUoV2ViS2l0RE9NRG9jdW1lbnQqKTsKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLyogV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRl
X2ggKi8KKyNpZiBQTEFURk9STShHVEspCit2b2lkIHdlYmtpdERPTURvY3VtZW50RE9NRXZlbnRU
YXJnZXRJbml0KFdlYktpdERPTUV2ZW50VGFyZ2V0SWZhY2UqKTsKK3ZvaWQgd2Via2l0RE9NRG9j
dW1lbnRJbnN0YWxsUHJvcGVydGllcyhHT2JqZWN0Q2xhc3MqKTsKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9X
ZWJLaXRET01FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NRWxlbWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjEzMzI0OTU1NzdhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRE
T01FbGVtZW50LmNwcApAQCAtMCwwICsxLDE2NCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIw
MTggSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldlYktpdERPTUVsZW1lbnQuaCIKKworI2luY2x1ZGUgIkRPTU9iamVjdENhY2hlLmgiCisjaW5j
bHVkZSAiV2ViS2l0RE9NRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01Ob2Rl
UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTVByaXZhdGUuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0hUTUxJbnB1dEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUTUxUZXh0QXJlYUVs
ZW1lbnQuaD4KKworI2lmIFBMQVRGT1JNKEdUSykKKyNpbmNsdWRlICJXZWJLaXRET01FdmVudFRh
cmdldC5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJLaXRET01FbGVtZW50
KiBraXQoV2ViQ29yZTo6RWxlbWVudCogb2JqKQoreworICAgIHJldHVybiBXRUJLSVRfRE9NX0VM
RU1FTlQoa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6Ok5vZGUqPihvYmopKSk7Cit9CisKK1dlYkNv
cmU6OkVsZW1lbnQqIGNvcmUoV2ViS2l0RE9NRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICByZXR1
cm4gZWxlbWVudCA/IHN0YXRpY19jYXN0PFdlYkNvcmU6OkVsZW1lbnQqPih3ZWJraXRET01Ob2Rl
R2V0Q29yZU9iamVjdChXRUJLSVRfRE9NX05PREUoZWxlbWVudCkpKSA6IG51bGxwdHI7Cit9CisK
K1dlYktpdERPTUVsZW1lbnQqIHdyYXBFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqIGNvcmVPYmpl
Y3QpCit7CisgICAgQVNTRVJUKGNvcmVPYmplY3QpOworI2lmIFBMQVRGT1JNKEdUSykKKyAgICBy
ZXR1cm4gV0VCS0lUX0RPTV9FTEVNRU5UKGdfb2JqZWN0X25ldyhXRUJLSVRfRE9NX1RZUEVfRUxF
TUVOVCwgImNvcmUtb2JqZWN0IiwgY29yZU9iamVjdCwgbnVsbHB0cikpOworI2Vsc2UKKyAgICBh
dXRvKiBlbGVtZW50ID0gV0VCS0lUX0RPTV9FTEVNRU5UKGdfb2JqZWN0X25ldyhXRUJLSVRfRE9N
X1RZUEVfRUxFTUVOVCwgbnVsbHB0cikpOworICAgIHdlYmtpdERPTU5vZGVTZXRDb3JlT2JqZWN0
KFdFQktJVF9ET01fTk9ERShlbGVtZW50KSwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KGNv
cmVPYmplY3QpKTsKKyAgICByZXR1cm4gZWxlbWVudDsKKyNlbmRpZgorfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2lmIFBMQVRGT1JNKEdUSykKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQ
UkVDQVRJT05TOworR19ERUZJTkVfVFlQRV9XSVRIX0NPREUoV2ViS2l0RE9NRWxlbWVudCwgd2Vi
a2l0X2RvbV9lbGVtZW50LCBXRUJLSVRfRE9NX1RZUEVfTk9ERSwgR19JTVBMRU1FTlRfSU5URVJG
QUNFKFdFQktJVF9ET01fVFlQRV9FVkVOVF9UQVJHRVQsIHdlYmtpdERPTUVsZW1lbnRET01FdmVu
dFRhcmdldEluaXQpKQorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOworI2Vsc2UKK0df
REVGSU5FX1RZUEUoV2ViS2l0RE9NRWxlbWVudCwgd2Via2l0X2RvbV9lbGVtZW50LCBXRUJLSVRf
RE9NX1RZUEVfTk9ERSkKKyNlbmRpZgorCitzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX2VsZW1lbnRf
Y2xhc3NfaW5pdChXZWJLaXRET01FbGVtZW50Q2xhc3MqIGVsZW1lbnRDbGFzcykKK3sKKyNpZiBQ
TEFURk9STShHVEspCisgICAgR09iamVjdENsYXNzKiBnb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9D
TEFTUyhlbGVtZW50Q2xhc3MpOworICAgIHdlYmtpdERPTUVsZW1lbnRJbnN0YWxsUHJvcGVydGll
cyhnb2JqZWN0Q2xhc3MpOworI2VuZGlmCit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdF9kb21fZWxl
bWVudF9pbml0KFdlYktpdERPTUVsZW1lbnQqKQoreworfQorCisvKioKKyAqIHdlYmtpdF9kb21f
ZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfaXNfdXNlcl9lZGl0ZWQ6CisgKiBAZWxlbWVudDog
YSAjV2ViS2l0RE9NRWxlbWVudAorICoKKyAqIEdldCB3aGV0aGVyIEBlbGVtZW50IGlzIGFuIEhU
TUwgdGV4dCBpbnB1dCBlbGVtZW50IHRoYXQgaGFzIGJlZW4gZWRpdGVkIGJ5IGEgdXNlciBhY3Rp
b24uCisgKgorICogUmV0dXJuczogd2hldGhlciBAZWxlbWVudCBoYXMgYmVlbiBlZGl0ZWQgYnkg
YSB1c2VyIGFjdGlvbi4KKyAqCisgKiBTaW5jZTogMi4yMgorICovCitnYm9vbGVhbiB3ZWJraXRf
ZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X2lzX3VzZXJfZWRpdGVkKFdlYktpdERPTUVs
ZW1lbnQqIGVsZW1lbnQpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9J
U19FTEVNRU5UKGVsZW1lbnQpLCBGQUxTRSk7CisKKyAgICBhdXRvKiBub2RlID0gd2Via2l0RE9N
Tm9kZUdldENvcmVPYmplY3QoV0VCS0lUX0RPTV9OT0RFKGVsZW1lbnQpKTsKKyAgICBpZiAoaXM8
V2ViQ29yZTo6SFRNTElucHV0RWxlbWVudD4obm9kZSkpCisgICAgICAgIHJldHVybiBkb3duY2Fz
dDxXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Pigqbm9kZSkubGFzdENoYW5nZVdhc1VzZXJFZGl0
KCk7CisKKyAgICBpZiAoaXM8V2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudD4obm9kZSkpCisg
ICAgICAgIHJldHVybiBkb3duY2FzdDxXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Pigqbm9k
ZSkubGFzdENoYW5nZVdhc1VzZXJFZGl0KCk7CisKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKKy8q
KgorICogd2Via2l0X2RvbV9lbGVtZW50X2lzX2h0bWxfaW5wdXRfZWxlbWVudF9hdXRvX2ZpbGxl
ZDoKKyAqIEBlbGVtZW50OiBhICNXZWJLaXRET01FbGVtZW50CisgKgorICogR2V0IHdoZXRoZXIg
dGhlIGVsZW1lbnQgaXMgYW4gSFRNTCBpbnB1dCBlbGVtZW50IHRoYXQgaGFzIGJlZW4gZmlsbGVk
IGF1dG9tYXRpY2FsbHkuCisgKgorICogUmV0dXJuczogd2hldGhlciBAZWxlbWVudCBoYXMgYmVl
biBmaWxsZWQgYXV0b21hdGljYWxseS4KKyAqCisgKiBTaW5jZTogMi4yMgorICovCitnYm9vbGVh
biB3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X2dldF9hdXRvX2ZpbGxlZChX
ZWJLaXRET01FbGVtZW50KiBlbGVtZW50KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdF
QktJVF9ET01fSVNfRUxFTUVOVChlbGVtZW50KSwgRkFMU0UpOworCisgICAgYXV0byogbm9kZSA9
IHdlYmtpdERPTU5vZGVHZXRDb3JlT2JqZWN0KFdFQktJVF9ET01fTk9ERShlbGVtZW50KSk7Cisg
ICAgaWYgKCFpczxXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Pihub2RlKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGRvd25jYXN0PFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1l
bnQ+KCpub2RlKS5pc0F1dG9GaWxsZWQoKTsKK30KKworLyoqCisgKiB3ZWJraXRfZG9tX2VsZW1l
bnRfaHRtbF9pbnB1dF9lbGVtZW50X3NldF9hdXRvX2ZpbGxlZDoKKyAqIEBlbGVtZW50OiBhICNX
ZWJLaXRET01FbGVtZW50CisgKiBAYXV0b19maWxsZWQ6IHZhbHVlIHRvIHNldAorICoKKyAqIFNl
dCB3aGV0aGVyIHRoZSBlbGVtZW50IGlzIGFuIEhUTUwgaW5wdXQgZWxlbWVudCB0aGF0IGhhcyBi
ZWVuIGZpbGxlZCBhdXRvbWF0aWNhbGx5LgorICogSWYgQGVsZW1lbnQgaXMgbm90IGFuIEhUTUwg
aW5wdXQgZWxlbWVudCB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90aGluZy4KKyAqCisgKiBTaW5jZTog
Mi4yMgorICovCit2b2lkIHdlYmtpdF9kb21fZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfc2V0
X2F1dG9fZmlsbGVkKFdlYktpdERPTUVsZW1lbnQqIGVsZW1lbnQsIGdib29sZWFuIGF1dG9GaWxs
ZWQpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoZWxlbWVu
dCkpOworCisgICAgYXV0byogbm9kZSA9IHdlYmtpdERPTU5vZGVHZXRDb3JlT2JqZWN0KFdFQktJ
VF9ET01fTk9ERShlbGVtZW50KSk7CisgICAgaWYgKCFpczxXZWJDb3JlOjpIVE1MSW5wdXRFbGVt
ZW50Pihub2RlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZG93bmNhc3Q8V2ViQ29yZTo6SFRN
TElucHV0RWxlbWVudD4oKm5vZGUpLnNldEF1dG9GaWxsZWQoYXV0b0ZpbGxlZCk7Cit9CisKKy8q
KgorICogd2Via2l0X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfZWRpdGluZ192
YWx1ZToKKyAqIEBlbGVtZW50OiBhICNXZWJLaXRET01FbGVtZW50CisgKiBAdmFsdWU6IHRoZSB0
ZXh0IHRvIHNldAorICoKKyAqIFNldCBlZGl0aW5nIHZhbHVlIG9mIGFuIEhUTUwgaW5wdXQgZWxl
bWVudC4gSWYgQGVsZW1lbnQgaXMgbm90IGFuIEhUTUwgaW5wdXQgZWxlbWVudCB0aGlzIGZ1bmN0
aW9uIGRvZXMgbm90aGluZy4KKyAqCisgKiBTaW5jZTogMi4yMgorICovCit2b2lkIHdlYmtpdF9k
b21fZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2VkaXRpbmdfdmFsdWUoV2ViS2l0RE9N
RWxlbWVudCogZWxlbWVudCwgY29uc3QgY2hhciogdmFsdWUpCit7CisgICAgZ19yZXR1cm5faWZf
ZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoZWxlbWVudCkpOworCisgICAgYXV0byogbm9kZSA9
IHdlYmtpdERPTU5vZGVHZXRDb3JlT2JqZWN0KFdFQktJVF9ET01fTk9ERShlbGVtZW50KSk7Cisg
ICAgaWYgKCFpczxXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Pihub2RlKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgZG93bmNhc3Q8V2ViQ29yZTo6SFRNTElucHV0RWxlbWVudD4oKm5vZGUpLnNl
dEVkaXRpbmdWYWx1ZShTdHJpbmc6OmZyb21VVEY4KHZhbHVlKSk7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NRWxlbWVudFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NRWxlbWVudFByaXZhdGUuaApzaW1pbGFyaXR5IGlu
ZGV4IDgxJQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudFByaXZhdGUuaApyZW5hbWUgdG8gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01F
bGVtZW50UHJpdmF0ZS5oCmluZGV4IDdjMWY0MzA4Y2FhLi4zZTA5ZDBiM2QxNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUVsZW1lbnRQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01FbGVtZW50UHJpdmF0ZS5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0IG9wZW4g
c291cmNlIHByb2plY3QuCisgKiAgQ29weXJpZ2h0IChDKSAyMDE4IElnYWxpYSBTLkwuCiAgKgog
ICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtMTcsMTEgKzE3LDEwIEBACiAgKiAgQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCiAgKi8KIAotI2lmbmRlZiBXZWJLaXRET01FbGVtZW50UHJpdmF0ZV9oCi0j
ZGVmaW5lIFdlYktpdERPTUVsZW1lbnRQcml2YXRlX2gKKyNwcmFnbWEgb25jZQogCisjaW5jbHVk
ZSAiV2ViS2l0RE9NRWxlbWVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRWxlbWVudC5oPgotI2lu
Y2x1ZGUgPHdlYmtpdGRvbS9XZWJLaXRET01FbGVtZW50Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogV2ViS2l0RE9NRWxlbWVudCogd3JhcEVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopOwpAQCAt
MjksNCArMjgsNyBAQCBXZWJLaXRET01FbGVtZW50KiBraXQoV2ViQ29yZTo6RWxlbWVudCopOwog
V2ViQ29yZTo6RWxlbWVudCogY29yZShXZWJLaXRET01FbGVtZW50Kik7CiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAotI2VuZGlmIC8qIFdlYktpdERPTUVsZW1lbnRQcml2YXRlX2ggKi8KKyNpZiBQ
TEFURk9STShHVEspCit2b2lkIHdlYmtpdERPTUVsZW1lbnRET01FdmVudFRhcmdldEluaXQoV2Vi
S2l0RE9NRXZlbnRUYXJnZXRJZmFjZSopOwordm9pZCB3ZWJraXRET01FbGVtZW50SW5zdGFsbFBy
b3BlcnRpZXMoR09iamVjdENsYXNzKik7CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NTm9kZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9N
L1dlYktpdERPTU5vZGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5iZDg5NTMxNmQ4MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NTm9kZS5jcHAKQEAgLTAsMCAr
MSwxNTQgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDE4IElnYWxpYSBTLkwuCisgKgorICog
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRET01Ob2RlLmgiCisKKyNp
bmNsdWRlICJET01PYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIldlYktpdERPTU5vZGVQcml2YXRl
LmgiCisjaW5jbHVkZSAiV2ViS2l0RE9NUHJpdmF0ZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSlNO
b2RlLmg+CisjaW5jbHVkZSA8anNjL0pTQ0NvbnRleHRQcml2YXRlLmg+CisjaW5jbHVkZSA8anNj
L0pTQ1ZhbHVlUHJpdmF0ZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworI2lmIFBMQVRG
T1JNKEdUSykKKyNpbmNsdWRlICJXZWJLaXRET01FdmVudFRhcmdldC5oIgorI2VuZGlmCisKKyNk
ZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0dFVF9QUklWQVRFKG9iaikgR19UWVBFX0lOU1RBTkNFX0dF
VF9QUklWQVRFKG9iaiwgV0VCS0lUX0RPTV9UWVBFX05PREUsIFdlYktpdERPTU5vZGVQcml2YXRl
KQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NTm9kZVByaXZhdGUgeworICAgIH5fV2ViS2l0
RE9NTm9kZVByaXZhdGUoKQorICAgIHsKKyAgICAgICAgV2ViS2l0OjpET01PYmplY3RDYWNoZTo6
Zm9yZ2V0KGNvcmVPYmplY3QuZ2V0KCkpOworICAgIH0KKworICAgIFJlZlB0cjxXZWJDb3JlOjpO
b2RlPiBjb3JlT2JqZWN0OworfSBXZWJLaXRET01Ob2RlUHJpdmF0ZTsKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK1dlYktpdERPTU5vZGUqIGtpdChXZWJDb3JlOjpOb2RlKiBvYmopCit7CisgICAg
aWYgKCFvYmopCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKGdwb2ludGVyIHJl
dCA9IERPTU9iamVjdENhY2hlOjpnZXQob2JqKSkKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ET01f
Tk9ERShyZXQpOworCisgICAgcmV0dXJuIHdyYXAob2JqKTsKK30KKworV2ViQ29yZTo6Tm9kZSog
Y29yZShXZWJLaXRET01Ob2RlKiBub2RlKQoreworICAgIHJldHVybiBub2RlID8gd2Via2l0RE9N
Tm9kZUdldENvcmVPYmplY3Qobm9kZSkgOiBudWxscHRyOworfQorCitXZWJLaXRET01Ob2RlKiB3
cmFwTm9kZShXZWJDb3JlOjpOb2RlKiBjb3JlT2JqZWN0KQoreworICAgIEFTU0VSVChjb3JlT2Jq
ZWN0KTsKKyNpZiBQTEFURk9STShHVEspCisgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERShnX29i
amVjdF9uZXcoV0VCS0lUX0RPTV9UWVBFX05PREUsICJjb3JlLW9iamVjdCIsIGNvcmVPYmplY3Qs
IG51bGxwdHIpKTsKKyNlbHNlCisgICAgYXV0byogbm9kZSA9IFdFQktJVF9ET01fTk9ERShnX29i
amVjdF9uZXcoV0VCS0lUX0RPTV9UWVBFX05PREUsIG51bGxwdHIpKTsKKyAgICB3ZWJraXRET01O
b2RlU2V0Q29yZU9iamVjdChub2RlLCBjb3JlT2JqZWN0KTsKKyAgICByZXR1cm4gbm9kZTsKKyNl
bmRpZgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2lmIFBMQVRGT1JNKEdUSykKK0df
R05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworR19ERUZJTkVfVFlQRV9XSVRIX0NPREUo
V2ViS2l0RE9NTm9kZSwgd2Via2l0X2RvbV9ub2RlLCBXRUJLSVRfRE9NX1RZUEVfT0JKRUNULCBH
X0lNUExFTUVOVF9JTlRFUkZBQ0UoV0VCS0lUX0RPTV9UWVBFX0VWRU5UX1RBUkdFVCwgd2Via2l0
RE9NTm9kZURPTUV2ZW50VGFyZ2V0SW5pdCkpCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElP
TlM7CisjZWxzZQorV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdERPTU5vZGUsIHdlYmtpdF9kb21f
bm9kZSwgV0VCS0lUX0RPTV9UWVBFX09CSkVDVCkKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oR1RL
KQorc3RhdGljIEdPYmplY3QqIHdlYmtpdERPTU5vZGVDb25zdHJ1Y3RvcihHVHlwZSB0eXBlLCBn
dWludCBjb25zdHJ1Y3RQcm9wZXJ0aWVzQ291bnQsIEdPYmplY3RDb25zdHJ1Y3RQYXJhbSogY29u
c3RydWN0UHJvcGVydGllcykKK3sKKyAgICBHT2JqZWN0KiBvYmplY3QgPSBHX09CSkVDVF9DTEFT
Uyh3ZWJraXRfZG9tX25vZGVfcGFyZW50X2NsYXNzKS0+Y29uc3RydWN0b3IodHlwZSwgY29uc3Ry
dWN0UHJvcGVydGllc0NvdW50LCBjb25zdHJ1Y3RQcm9wZXJ0aWVzKTsKKworICAgIHdlYmtpdERP
TU5vZGVTZXRDb3JlT2JqZWN0KFdFQktJVF9ET01fTk9ERShvYmplY3QpLCBzdGF0aWNfY2FzdDxX
ZWJDb3JlOjpOb2RlKj4oV0VCS0lUX0RPTV9PQkpFQ1Qob2JqZWN0KS0+Y29yZU9iamVjdCkpOwor
CisgICAgcmV0dXJuIG9iamVjdDsKK30KKworc3RhdGljIHZvaWQgd2Via2l0RE9NTm9kZUZpbmFs
aXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICBXZWJLaXRET01Ob2RlKiBub2RlID0gV0VCS0lU
X0RPTV9OT0RFKG9iamVjdCk7CisKKyAgICBXZWJLaXRET01Ob2RlUHJpdmF0ZSogcHJpdiA9IFdF
QktJVF9ET01fTk9ERV9HRVRfUFJJVkFURShub2RlKTsKKyAgICBwcml2LT5+V2ViS2l0RE9NTm9k
ZVByaXZhdGUoKTsKKworICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9kb21fbm9kZV9wYXJlbnRf
Y2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX25v
ZGVfaW5pdChXZWJLaXRET01Ob2RlKiBub2RlKQoreworICAgIFdlYktpdERPTU5vZGVQcml2YXRl
KiBwcml2ID0gV0VCS0lUX0RPTV9OT0RFX0dFVF9QUklWQVRFKG5vZGUpOworICAgIG5ldyAocHJp
dikgV2ViS2l0RE9NTm9kZVByaXZhdGUoKTsKK30KKyNlbmRpZgorCitzdGF0aWMgdm9pZCB3ZWJr
aXRfZG9tX25vZGVfY2xhc3NfaW5pdChXZWJLaXRET01Ob2RlQ2xhc3MqIG5vZGVDbGFzcykKK3sK
KyNpZiBQTEFURk9STShHVEspCisgICAgR09iamVjdENsYXNzKiBnb2JqZWN0Q2xhc3MgPSBHX09C
SkVDVF9DTEFTUyhub2RlQ2xhc3MpOworICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShnb2Jq
ZWN0Q2xhc3MsIHNpemVvZihXZWJLaXRET01Ob2RlUHJpdmF0ZSkpOworICAgIGdvYmplY3RDbGFz
cy0+Y29uc3RydWN0b3IgPSB3ZWJraXRET01Ob2RlQ29uc3RydWN0b3I7CisgICAgZ29iamVjdENs
YXNzLT5maW5hbGl6ZSA9IHdlYmtpdERPTU5vZGVGaW5hbGl6ZTsKKyAgICB3ZWJraXRET01Ob2Rl
SW5zdGFsbFByb3BlcnRpZXMoZ29iamVjdENsYXNzKTsKKyNlbmRpZgorfQorCit2b2lkIHdlYmtp
dERPTU5vZGVTZXRDb3JlT2JqZWN0KFdlYktpdERPTU5vZGUqIG5vZGUsIFdlYkNvcmU6Ok5vZGUq
IGNvcmVPYmplY3QpCit7CisgICAgV2ViS2l0RE9NTm9kZVByaXZhdGUqIHByaXYgPSBXRUJLSVRf
RE9NX05PREVfR0VUX1BSSVZBVEUobm9kZSk7CisgICAgcHJpdi0+Y29yZU9iamVjdCA9IGNvcmVP
YmplY3Q7CisgICAgV2ViS2l0OjpET01PYmplY3RDYWNoZTo6cHV0KGNvcmVPYmplY3QsIG5vZGUp
OworfQorCitXZWJDb3JlOjpOb2RlKiB3ZWJraXRET01Ob2RlR2V0Q29yZU9iamVjdChXZWJLaXRE
T01Ob2RlKiBub2RlKQoreworICAgIFdlYktpdERPTU5vZGVQcml2YXRlKiBwcml2ID0gV0VCS0lU
X0RPTV9OT0RFX0dFVF9QUklWQVRFKG5vZGUpOworICAgIHJldHVybiBwcml2LT5jb3JlT2JqZWN0
LmdldCgpOworfQorCisvKioKKyAqIHdlYmtpdF9kb21fbm9kZV9mb3JfanNfdmFsdWU6CisgKiBA
dmFsdWU6IGEgI0pTQ1ZhbHVlCisgKgorICogR2V0IHRoZSAjV2ViS2l0RE9NTm9kZSBmb3IgdGhl
IERPTSBub2RlIHJlZmVyZW5jZWQgYnkgQHZhbHVlLgorICoKKyAqIFJldHVybnM6ICh0cmFuc2Zl
ciBub25lKTogYSAjV2ViS2l0RE9NTm9kZSwgb3IgJU5VTEwgaWYgQHZhbHVlIGRvZXNuJ3QgcmVm
ZXJlbmNlIGEgRE9NIG5vZGUuCisgKgorICogU2luY2U6IDIuMjIKKyAqLworV2ViS2l0RE9NTm9k
ZSogd2Via2l0X2RvbV9ub2RlX2Zvcl9qc192YWx1ZShKU0NWYWx1ZSogdmFsdWUpCit7CisgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoSlNDX0lTX1ZBTFVFKHZhbHVlKSwgbnVsbHB0cik7CisgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoanNjX3ZhbHVlX2lzX29iamVjdCh2YWx1ZSksIG51bGxwdHIp
OworCisgICAgYXV0byoganNPYmplY3QgPSBKU1ZhbHVlVG9PYmplY3QoanNjQ29udGV4dEdldEpT
Q29udGV4dChqc2NfdmFsdWVfZ2V0X2NvbnRleHQodmFsdWUpKSwganNjVmFsdWVHZXRKU1ZhbHVl
KHZhbHVlKSwgbnVsbHB0cik7CisgICAgcmV0dXJuIGpzT2JqZWN0ID8gV2ViS2l0OjpraXQoV2Vi
Q29yZTo6SlNOb2RlOjp0b1dyYXBwZWQoKnRvSlMoanNPYmplY3QpLT52bSgpLCB0b0pTKGpzT2Jq
ZWN0KSkpIDogbnVsbHB0cjsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlUHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRE
T01Ob2RlUHJpdmF0ZS5oCnNpbWlsYXJpdHkgaW5kZXggNzQlCnJlbmFtZSBmcm9tIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2Rl
UHJpdmF0ZS5oCnJlbmFtZSB0byBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTU5vZGVQcml2YXRlLmgKaW5kZXggOGQwYmViOWU2ZjIu
LjMwNWJkNTgyZDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZVByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTU5v
ZGVQcml2YXRlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogIFRoaXMgZmlsZSBpcyBwYXJ0IG9m
IHRoZSBXZWJLaXQgb3BlbiBzb3VyY2UgcHJvamVjdC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMTgg
SWdhbGlhIFMuTC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xNywxMSArMTcsMTAgQEAKICAq
ICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi0jaWZuZGVmIFdlYktpdERPTU5v
ZGVQcml2YXRlX2gKLSNkZWZpbmUgV2ViS2l0RE9NTm9kZVByaXZhdGVfaAorI3ByYWdtYSBvbmNl
CiAKKyNpbmNsdWRlICJXZWJLaXRET01Ob2RlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ob2RlLmg+
Ci0jaW5jbHVkZSA8d2Via2l0ZG9tL1dlYktpdERPTU5vZGUuaD4KIAogbmFtZXNwYWNlIFdlYktp
dCB7CiBXZWJLaXRET01Ob2RlKiB3cmFwTm9kZShXZWJDb3JlOjpOb2RlKik7CkBAIC0yOSw0ICsy
OCwxMCBAQCBXZWJLaXRET01Ob2RlKiBraXQoV2ViQ29yZTo6Tm9kZSopOwogV2ViQ29yZTo6Tm9k
ZSogY29yZShXZWJLaXRET01Ob2RlKik7CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlm
IC8qIFdlYktpdERPTU5vZGVQcml2YXRlX2ggKi8KK3ZvaWQgd2Via2l0RE9NTm9kZVNldENvcmVP
YmplY3QoV2ViS2l0RE9NTm9kZSosIFdlYkNvcmU6Ok5vZGUqKTsKK1dlYkNvcmU6Ok5vZGUqIHdl
YmtpdERPTU5vZGVHZXRDb3JlT2JqZWN0KFdlYktpdERPTU5vZGUqKTsKKworI2lmIFBMQVRGT1JN
KEdUSykKK3ZvaWQgd2Via2l0RE9NTm9kZURPTUV2ZW50VGFyZ2V0SW5pdChXZWJLaXRET01FdmVu
dFRhcmdldElmYWNlKik7Cit2b2lkIHdlYmtpdERPTU5vZGVJbnN0YWxsUHJvcGVydGllcyhHT2Jq
ZWN0Q2xhc3MqKTsKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTU9i
amVjdC5jcHAKc2ltaWxhcml0eSBpbmRleCA4OSUKcmVuYW1lIGZyb20gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU9iamVjdC5jcHAK
cmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xp
Yi9ET00vV2ViS2l0RE9NT2JqZWN0LmNwcAppbmRleCA4Njk1NjNlMmQzZC4uY2E1ZjNjNWMzOTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NT2JqZWN0LmNwcApAQCAtOCwx
MCArOCwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYktpdERPTU9iamVj
dC5oIgogCisjaWYgUExBVEZPUk0oR1RLKQogZW51bSB7Ci0gICAgRE9NX09CSkVDVF9QUk9QXzAs
Ci0gICAgRE9NX09CSkVDVF9QUk9QX0NPUkVfT0JKRUNUCisgICAgUFJPUF8wLAorICAgIFBST1Bf
Q09SRV9PQkpFQ1QKIH07CisjZW5kaWYKIAogR19ERUZJTkVfVFlQRShXZWJLaXRET01PYmplY3Qs
IHdlYmtpdF9kb21fb2JqZWN0LCBHX1RZUEVfT0JKRUNUKQogCkBAIC0xOSwxMCArMjEsMTEgQEAg
c3RhdGljIHZvaWQgd2Via2l0X2RvbV9vYmplY3RfaW5pdChXZWJLaXRET01PYmplY3QqKQogewog
fQogCisjaWYgUExBVEZPUk0oR1RLKQogc3RhdGljIHZvaWQgd2Via2l0RE9NT2JqZWN0U2V0UHJv
cGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLCBjb25zdCBHVmFsdWUqIHZh
bHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKIHsKICAgICBzd2l0Y2ggKHByb3BlcnR5SWQpIHsKLSAg
ICBjYXNlIERPTV9PQkpFQ1RfUFJPUF9DT1JFX09CSkVDVDoKKyAgICBjYXNlIFBST1BfQ09SRV9P
QkpFQ1Q6CiAgICAgICAgIFdFQktJVF9ET01fT0JKRUNUKG9iamVjdCktPmNvcmVPYmplY3QgPSBn
X3ZhbHVlX2dldF9wb2ludGVyKHZhbHVlKTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoK
QEAgLTMwLDE4ICszMywyMSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRET01PYmplY3RTZXRQcm9wZXJ0
eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SWQsIGNvbnN0CiAgICAgICAgIGJyZWFr
OwogICAgIH0KIH0KKyNlbmRpZgogCiBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX29iamVjdF9jbGFz
c19pbml0KFdlYktpdERPTU9iamVjdENsYXNzKiBrbGFzcykKIHsKKyNpZiBQTEFURk9STShHVEsp
CiAgICAgR09iamVjdENsYXNzKiBnb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhrbGFzcyk7
CiAgICAgZ29iamVjdENsYXNzLT5zZXRfcHJvcGVydHkgPSB3ZWJraXRET01PYmplY3RTZXRQcm9w
ZXJ0eTsKIAogICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCiAgICAgICAgIGdv
YmplY3RDbGFzcywKLSAgICAgICAgRE9NX09CSkVDVF9QUk9QX0NPUkVfT0JKRUNULAorICAgICAg
ICBQUk9QX0NPUkVfT0JKRUNULAogICAgICAgICBnX3BhcmFtX3NwZWNfcG9pbnRlcigKICAgICAg
ICAgICAgICJjb3JlLW9iamVjdCIsCiAgICAgICAgICAgICAiQ29yZSBPYmplY3QiLAogICAgICAg
ICAgICAgIlRoZSBXZWJDb3JlIG9iamVjdCB0aGUgV2ViS2l0RE9NT2JqZWN0IHdyYXBzIiwKICAg
ICAgICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihHX1BBUkFNX1dSSVRBQkxFIHwgR19Q
QVJBTV9DT05TVFJVQ1RfT05MWSB8IEdfUEFSQU1fU1RBVElDX05BTUUgfCBHX1BBUkFNX1NUQVRJ
Q19OSUNLIHwgR19QQVJBTV9TVEFUSUNfQkxVUkIpKSk7CisjZW5kaWYKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2Vi
S2l0RE9NUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTVByaXZhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi45M2ZmYjg3ODEwYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9N
UHJpdmF0ZS5jcHAKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTgg
SWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAg
TGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl
ZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRET01Qcml2YXRlLmgiCisKKyNpbmNsdWRlICJXZWJL
aXRET01Eb2N1bWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01FbGVtZW50UHJpdmF0
ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTU5vZGVQcml2YXRlLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9IVE1MRm9ybUVsZW1lbnQuaD4KKworI2lmIFBMQVRGT1JNKEdUSykKKyNpbmNsdWRlICJXZWJL
aXRET01Qcml2YXRlR3RrLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYktp
dERPTU5vZGUqIHdyYXAoV2ViQ29yZTo6Tm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQobm9kZSk7
CisgICAgQVNTRVJUKG5vZGUtPm5vZGVUeXBlKCkpOworCisjaWYgUExBVEZPUk0oR1RLKQorICAg
IGlmIChhdXRvKiB3cmFwcGVyID0gd3JhcE5vZGVHdGsobm9kZSkpCisgICAgICAgIHJldHVybiB3
cmFwcGVyOworI2VuZGlmCisKKyAgICBzd2l0Y2ggKG5vZGUtPm5vZGVUeXBlKCkpIHsKKyAgICBj
YXNlIFdlYkNvcmU6Ok5vZGU6OkVMRU1FTlRfTk9ERToKKyAgICAgICAgcmV0dXJuIFdFQktJVF9E
T01fTk9ERSh3cmFwRWxlbWVudChkb3duY2FzdDxXZWJDb3JlOjpFbGVtZW50Pihub2RlKSkpOwor
ICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6RE9DVU1FTlRfTk9ERToKKyAgICAgICAgcmV0dXJuIFdF
QktJVF9ET01fTk9ERSh3cmFwRG9jdW1lbnQoZG93bmNhc3Q8V2ViQ29yZTo6RG9jdW1lbnQ+KG5v
ZGUpKSk7CisgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpBVFRSSUJVVEVfTk9ERToKKyAgICBjYXNl
IFdlYkNvcmU6Ok5vZGU6OlRFWFRfTk9ERToKKyAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6OkNEQVRB
X1NFQ1RJT05fTk9ERToKKyAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6OlBST0NFU1NJTkdfSU5TVFJV
Q1RJT05fTk9ERToKKyAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6OkNPTU1FTlRfTk9ERToKKyAgICBj
YXNlIFdlYkNvcmU6Ok5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToKKyAgICBjYXNlIFdlYkNvcmU6
Ok5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CisgICAgICAgIGJyZWFrOworICAgIH0KKwor
ICAgIHJldHVybiB3cmFwTm9kZShub2RlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2ds
aWIvRE9NL1dlYktpdERPTVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NUHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iOGRiMjc2NjZhYgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2Vi
S2l0RE9NUHJpdmF0ZS5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAx
OTk5LTIwMDEgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKKyAqICBDb3B5cmlnaHQgKEMp
IDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2VpbmlnIDxzYW1Ad2Via2l0Lm9y
Zz4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8
bGtjbEBsa2NsLm5ldD4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggTWFydGluIFNvdG8gPHNvdG9A
ZnJlZWRlc2t0b3Aub3JnPgorICogIENvcHlyaWdodCAoQykgMjAwOS0yMDEzIElnYWxpYSBTLkwu
CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK
KyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC
b3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIldlYktpdERPTU5vZGUuaCIKKyNpbmNsdWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5oPgorCisj
aWYgUExBVEZPUk0oR1RLKQorI2luY2x1ZGUgIldlYktpdERPTVByaXZhdGVHdGsuaCIKKyNlbmRp
ZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBOb2RlOworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCituYW1lc3BhY2UgV2ViS2l0IHsKK1dlYktpdERPTU5vZGUqIHdyYXAoV2ViQ29yZTo6
Tm9kZSopOworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0RnJhbWUuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdEZyYW1l
LmNwcAppbmRleCAwNDc3MTAwMTUxMi4uM2EyODJhZWQ4YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRGcmFtZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dl
YktpdEZyYW1lLmNwcApAQCAtMjAsOCArMjAsMTMgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJXZWJLaXRGcmFtZS5oIgogCisjaW5jbHVkZSAiV2ViS2l0RE9NTm9kZVByaXZhdGUu
aCIKICNpbmNsdWRlICJXZWJLaXRGcmFtZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRTY3Jp
cHRXb3JsZFByaXZhdGUuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0xvY2suaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9KU05vZGUuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1NjcmlwdENvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxqc2MvSlNDQ29u
dGV4dFByaXZhdGUuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTE3MCwzICsxNzUsNTMgQEAgSlNDQ29udGV4dCogd2Vi
a2l0X2ZyYW1lX2dldF9qc19jb250ZXh0X2Zvcl9zY3JpcHRfd29ybGQoV2ViS2l0RnJhbWUqIGZy
YW1lLCBXZWIKIAogICAgIHJldHVybiBqc2NDb250ZXh0R2V0T3JDcmVhdGUoZnJhbWUtPnByaXYt
PndlYkZyYW1lLT5qc0NvbnRleHRGb3JXb3JsZCh3ZWJraXRTY3JpcHRXb3JsZEdldEluamVjdGVk
QnVuZGxlU2NyaXB0V29ybGQod29ybGQpKSkubGVha1JlZigpOwogfQorCisvKioKKyAqIHdlYmtp
dF9mcmFtZV9nZXRfanNfdmFsdWVfZm9yX2RvbV9vYmplY3Q6CisgKiBAZnJhbWU6IGEgI1dlYktp
dEZyYW1lCisgKiBAZG9tX29iamVjdDogYSAjV2ViS2l0RE9NT2JqZWN0CisgKgorICogR2V0IGEg
I0pTQ1ZhbHVlIHJlZmVyZW5jaW5nIHRoZSBnaXZlbiBET00gb2JqZWN0LiBUaGUgdmFsdWUgaXMg
Y3JlYXRlZCBpbiB0aGUgSmF2YVNjcmlwdCBleGVjdXRpb24KKyAqIGNvbnRleHQgb2YgQGZyYW1l
LgorICoKKyAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogdGhlICNKU0NWYWx1ZSByZWZlcmVu
Y2luZyBAZG9tX29iamVjdC4KKyAqCisgKiBTaW5jZTogMi4yMgorICovCitKU0NWYWx1ZSogd2Vi
a2l0X2ZyYW1lX2dldF9qc192YWx1ZV9mb3JfZG9tX29iamVjdChXZWJLaXRGcmFtZSogZnJhbWUs
IFdlYktpdERPTU9iamVjdCogZG9tT2JqZWN0KQoreworICAgIHJldHVybiB3ZWJraXRfZnJhbWVf
Z2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0X2luX3NjcmlwdF93b3JsZChmcmFtZSwgZG9tT2Jq
ZWN0LCB3ZWJraXRfc2NyaXB0X3dvcmxkX2dldF9kZWZhdWx0KCkpOworfQorCisvKioKKyAqIHdl
YmtpdF9mcmFtZV9nZXRfanNfdmFsdWVfZm9yX2RvbV9vYmplY3RfaW5fc2NyaXB0X3dvcmxkOgor
ICogQGZyYW1lOiBhICNXZWJLaXRGcmFtZQorICogQGRvbV9vYmplY3Q6IGEgI1dlYktpdERPTU9i
amVjdAorICogQHdvcmxkOiBhICNXZWJLaXRTY3JpcHRXb3JsZAorICoKKyAqIEdldCBhICNKU0NW
YWx1ZSByZWZlcmVuY2luZyB0aGUgZ2l2ZW4gRE9NIG9iamVjdC4gVGhlIHZhbHVlIGlzIGNyZWF0
ZWQgaW4gdGhlIEphdmFTY3JpcHQgZXhlY3V0aW9uCisgKiBjb250ZXh0IG9mIEBmcmFtZSBmb3Ig
dGhlIGdpdmVuICNXZWJLaXRTY3JpcHRXb3JsZC4KKyAqCisgKiBSZXR1cm5zOiAodHJhbnNmZXIg
ZnVsbCk6IHRoZSAjSlNDVmFsdWUgcmVmZXJlbmNpbmcgQGRvbV9vYmplY3QKKyAqCisgKiBTaW5j
ZTogMi4yMgorICovCitKU0NWYWx1ZSogd2Via2l0X2ZyYW1lX2dldF9qc192YWx1ZV9mb3JfZG9t
X29iamVjdF9pbl9zY3JpcHRfd29ybGQoV2ViS2l0RnJhbWUqIGZyYW1lLCBXZWJLaXRET01PYmpl
Y3QqIGRvbU9iamVjdCwgV2ViS2l0U2NyaXB0V29ybGQqIHdvcmxkKQoreworICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9JU19GUkFNRShmcmFtZSksIG51bGxwdHIpOworICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfT0JKRUNUKGRvbU9iamVjdCksIG51bGxwdHIp
OworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19TQ1JJUFRfV09STEQod29ybGQp
LCBudWxscHRyKTsKKworICAgIGF1dG8qIHdrV29ybGQgPSB3ZWJraXRTY3JpcHRXb3JsZEdldElu
amVjdGVkQnVuZGxlU2NyaXB0V29ybGQod29ybGQpOworICAgIGF1dG8ganNDb250ZXh0ID0ganNj
Q29udGV4dEdldE9yQ3JlYXRlKGZyYW1lLT5wcml2LT53ZWJGcmFtZS0+anNDb250ZXh0Rm9yV29y
bGQod2tXb3JsZCkpOworICAgIEpTRE9NV2luZG93KiBnbG9iYWxPYmplY3QgPSBmcmFtZS0+cHJp
di0+d2ViRnJhbWUtPmNvcmVGcmFtZSgpLT5zY3JpcHQoKS5nbG9iYWxPYmplY3Qod2tXb3JsZC0+
Y29yZVdvcmxkKCkpOworICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0LT5n
bG9iYWxFeGVjKCk7CisgICAgSlNWYWx1ZVJlZiBqc1ZhbHVlID0gbnVsbHB0cjsKKyAgICB7Cisg
ICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7CisgICAgICAgIGlmIChXRUJLSVRf
RE9NX0lTX05PREUoZG9tT2JqZWN0KSkKKyAgICAgICAgICAgIGpzVmFsdWUgPSB0b1JlZihleGVj
LCB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgV2ViS2l0Ojpjb3JlKFdFQktJVF9ET01fTk9ERShk
b21PYmplY3QpKSkpOworICAgIH0KKworICAgIHJldHVybiBqc1ZhbHVlID8ganNjQ29udGV4dEdl
dE9yQ3JlYXRlVmFsdWUoanNDb250ZXh0LmdldCgpLCBqc1ZhbHVlKS5sZWFrUmVmKCkgOiBudWxs
cHRyOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9nbGliL1dlYktpdFdlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYlBhZ2UuY3BwCmluZGV4IDY5M2ZmNzU1
Njg1Li41NjQyZjE2MDc2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJQYWdlLmNwcApA
QCAtMzMsMTMgKzMzLDE4IEBACiAjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKICNpbmNsdWRlICJXZWJL
aXRDb25zb2xlTWVzc2FnZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRDb250ZXh0TWVudVBy
aXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01Eb2N1bWVudFByaXZhdGUuaCIKKyNpbmNsdWRl
ICJXZWJLaXRET01FbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTU5vZGVQcml2
YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RnJhbWVQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFNjcmlwdFdvcmxkUHJpdmF0ZS5oIgogI2luY2x1
ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0VVJJUmVzcG9u
c2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViRWRpdG9yUHJpdmF0ZS5oIgorI2luY2x1
ZGUgIldlYktpdFdlYkhpdFRlc3RSZXN1bHRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2Vi
UGFnZVByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVzLmgiCiAj
aW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+CkBAIC00Nyw2ICs1Miw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0hUTUxGb3JtRWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWFpbkZy
YW1lLmg+CiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KQEAgLTU0LDI4ICs2MCwxNiBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJp
bmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKLSNpZiBQTEFURk9S
TShHVEspCi0jaW5jbHVkZSAiV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlLmgiCi0jaW5jbHVkZSAi
V2ViS2l0RE9NRWxlbWVudFByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRET01IVE1MRm9ybUVs
ZW1lbnRQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0V2ViSGl0VGVzdFJlc3VsdFByaXZhdGUu
aCIKLSNpbmNsdWRlICJXZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVzLmgiCi0jZW5kaWYKLQogdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBlbnVtIHsK
ICAgICBET0NVTUVOVF9MT0FERUQsCiAgICAgU0VORF9SRVFVRVNULAotI2lmIFBMQVRGT1JNKEdU
SykKICAgICBDT05URVhUX01FTlUsCi0jZW5kaWYKICAgICBDT05TT0xFX01FU1NBR0VfU0VOVCwK
LSNpZiBQTEFURk9STShHVEspCiAgICAgRk9STV9DT05UUk9MU19BU1NPQ0lBVEVELAogICAgIFdJ
TExfU1VCTUlUX0ZPUk0sCi0jZW5kaWYKIAogICAgIExBU1RfU0lHTkFMCiB9OwpAQCAtMzM1LDcg
KzMyOSw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgYm9vbCBnZXRDdXN0b21NZW51RnJvbURl
ZmF1bHRJdGVtcyhXZWJQYWdlJiwgY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYgaGl0VGVz
dFJlc3VsdCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbT4mIGRlZmF1bHRN
ZW51LCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIG5ld01lbnUsIFJlZlB0cjxBUEk6
Ok9iamVjdD4mIHVzZXJEYXRhKSBvdmVycmlkZQogICAgIHsKLSNpZiBQTEFURk9STShHVEspCiAg
ICAgICAgIEdSZWZQdHI8V2ViS2l0Q29udGV4dE1lbnU+IGNvbnRleHRNZW51ID0gYWRvcHRHUmVm
KHdlYmtpdENvbnRleHRNZW51Q3JlYXRlKGtpdEl0ZW1zKGRlZmF1bHRNZW51KSkpOwogICAgICAg
ICBHUmVmUHRyPFdlYktpdFdlYkhpdFRlc3RSZXN1bHQ+IHdlYkhpdFRlc3RSZXN1bHQgPSBhZG9w
dEdSZWYod2Via2l0V2ViSGl0VGVzdFJlc3VsdENyZWF0ZShoaXRUZXN0UmVzdWx0KSk7CiAgICAg
ICAgIGdib29sZWFuIHJldHVyblZhbHVlOwpAQCAtMzUwLDEwICszNDMsNiBAQCBwcml2YXRlOgog
CiAgICAgICAgIHdlYmtpdENvbnRleHRNZW51UG9wdWxhdGUoY29udGV4dE1lbnUuZ2V0KCksIG5l
d01lbnUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKLSNlbGlmIFBMQVRGT1JNKFdQRSkKLSAgICAg
ICAgLy8gRklYTUU6IHVzZSBhIHNoYXJlZCBXZWJLaXRIaXRUZXN0UmVzdWx0IGluIFdQRS4KLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCiAgICAgfQogCiAgICAgV2ViS2l0V2ViUGFnZSog
bV93ZWJQYWdlOwpAQCAtMzc1LDcgKzM2NCw2IEBAIHByaXZhdGU6CiAgICAgV2ViS2l0V2ViUGFn
ZSogbV93ZWJQYWdlOwogfTsKIAotI2lmIFBMQVRGT1JNKEdUSykKIGNsYXNzIFBhZ2VGb3JtQ2xp
ZW50IGZpbmFsIDogcHVibGljIEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkZvcm1DbGllbnQgewogcHVi
bGljOgogICAgIGV4cGxpY2l0IFBhZ2VGb3JtQ2xpZW50KFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2Up
CkBAIC00MTcsMTIgKzQwNSwxMSBAQCBwcml2YXRlOgogICAgICAgICAgICAgZ19wdHJfYXJyYXlf
YWRkKHRleHRGaWVsZFZhbHVlcy5nZXQoKSwgZ19zdHJkdXAocGFpci5zZWNvbmQudXRmOCgpLmRh
dGEoKSkpOwogICAgICAgICB9CiAKLSAgICAgICAgZ19zaWduYWxfZW1pdChtX3dlYlBhZ2UsIHNp
Z25hbHNbV0lMTF9TVUJNSVRfRk9STV0sIDAsIFdFQktJVF9ET01fRUxFTUVOVChXZWJLaXQ6Omtp
dChmb3JtRWxlbWVudCkpLCBzdGVwLCB3ZWJraXRTb3VyY2VGcmFtZSwgd2Via2l0VGFyZ2V0RnJh
bWUsIHRleHRGaWVsZE5hbWVzLmdldCgpLCB0ZXh0RmllbGRWYWx1ZXMuZ2V0KCkpOworICAgICAg
ICBnX3NpZ25hbF9lbWl0KG1fd2ViUGFnZSwgc2lnbmFsc1tXSUxMX1NVQk1JVF9GT1JNXSwgMCwg
V0VCS0lUX0RPTV9FTEVNRU5UKFdlYktpdDo6a2l0KHN0YXRpY19jYXN0PE5vZGUqPihmb3JtRWxl
bWVudCkpKSwgc3RlcCwgd2Via2l0U291cmNlRnJhbWUsIHdlYmtpdFRhcmdldEZyYW1lLCB0ZXh0
RmllbGROYW1lcy5nZXQoKSwgdGV4dEZpZWxkVmFsdWVzLmdldCgpKTsKICAgICB9CiAKICAgICBX
ZWJLaXRXZWJQYWdlKiBtX3dlYlBhZ2U7CiB9OwotI2VuZGlmCiAKIHN0YXRpYyB2b2lkIHdlYmtp
dFdlYlBhZ2VHZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgR1ZhbHVl
KiB2YWx1ZSwgR1BhcmFtU3BlYyogcGFyYW1TcGVjKQogewpAQCAtNTA3LDcgKzQ5NCw2IEBAIHN0
YXRpYyB2b2lkIHdlYmtpdF93ZWJfcGFnZV9jbGFzc19pbml0KFdlYktpdFdlYlBhZ2VDbGFzcyog
a2xhc3MpCiAgICAgICAgIFdFQktJVF9UWVBFX1VSSV9SRVFVRVNULAogICAgICAgICBXRUJLSVRf
VFlQRV9VUklfUkVTUE9OU0UpOwogCi0jaWYgUExBVEZPUk0oR1RLKQogICAgIC8qKgogICAgICAq
IFdlYktpdFdlYlBhZ2U6OmNvbnRleHQtbWVudToKICAgICAgKiBAd2ViX3BhZ2U6IHRoZSAjV2Vi
S2l0V2ViUGFnZSBvbiB3aGljaCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKQEAgLTUzNyw3ICs1MjMs
NiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3BhZ2VfY2xhc3NfaW5pdChXZWJLaXRXZWJQYWdl
Q2xhc3MqIGtsYXNzKQogICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMiwKICAgICAgICAgV0VCS0lU
X1RZUEVfQ09OVEVYVF9NRU5VLAogICAgICAgICBXRUJLSVRfVFlQRV9XRUJfSElUX1RFU1RfUkVT
VUxUKTsKLSNlbmRpZgogCiAgICAgLyoqCiAgICAgICogV2ViS2l0V2ViUGFnZTo6Y29uc29sZS1t
ZXNzYWdlLXNlbnQ6CkBAIC01NjAsNyArNTQ1LDYgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9w
YWdlX2NsYXNzX2luaXQoV2ViS2l0V2ViUGFnZUNsYXNzKiBrbGFzcykKICAgICAgICAgR19UWVBF
X05PTkUsIDEsCiAgICAgICAgIFdFQktJVF9UWVBFX0NPTlNPTEVfTUVTU0FHRSB8IEdfU0lHTkFM
X1RZUEVfU1RBVElDX1NDT1BFKTsKIAotI2lmIFBMQVRGT1JNKEdUSykKICAgICAvKioKICAgICAg
KiBXZWJLaXRXZWJQYWdlOjpmb3JtLWNvbnRyb2xzLWFzc29jaWF0ZWQ6CiAgICAgICogQHdlYl9w
YWdlOiB0aGUgI1dlYktpdFdlYlBhZ2Ugb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCkBA
IC02NDYsNyArNjMwLDYgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9wYWdlX2NsYXNzX2luaXQo
V2ViS2l0V2ViUGFnZUNsYXNzKiBrbGFzcykKICAgICAgICAgV0VCS0lUX1RZUEVfRlJBTUUsCiAg
ICAgICAgIEdfVFlQRV9QVFJfQVJSQVksCiAgICAgICAgIEdfVFlQRV9QVFJfQVJSQVkpOwotI2Vu
ZGlmCiB9CiAKIFdlYlBhZ2UqIHdlYmtpdFdlYlBhZ2VHZXRQYWdlKFdlYktpdFdlYlBhZ2UgKndl
YlBhZ2UpCkBAIC02NjMsOSArNjQ2LDcgQEAgV2ViS2l0V2ViUGFnZSogd2Via2l0V2ViUGFnZUNy
ZWF0ZShXZWJQYWdlKiB3ZWJQYWdlKQogICAgIHdlYlBhZ2UtPnNldEluamVjdGVkQnVuZGxlUGFn
ZUxvYWRlckNsaWVudChzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VMb2FkZXJDbGllbnQ+KHBhZ2UpKTsK
ICAgICB3ZWJQYWdlLT5zZXRJbmplY3RlZEJ1bmRsZUNvbnRleHRNZW51Q2xpZW50KHN0ZDo6bWFr
ZV91bmlxdWU8UGFnZUNvbnRleHRNZW51Q2xpZW50PihwYWdlKSk7CiAgICAgd2ViUGFnZS0+c2V0
SW5qZWN0ZWRCdW5kbGVVSUNsaWVudChzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VVSUNsaWVudD4ocGFn
ZSkpOwotI2lmIFBMQVRGT1JNKEdUSykKICAgICB3ZWJQYWdlLT5zZXRJbmplY3RlZEJ1bmRsZUZv
cm1DbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxQYWdlRm9ybUNsaWVudD4ocGFnZSkpOwotI2VuZGlm
CiAKICAgICByZXR1cm4gcGFnZTsKIH0KQEAgLTcxNSw3ICs2OTYsNiBAQCB2b2lkIHdlYmtpdFdl
YlBhZ2VEaWRSZWNlaXZlTWVzc2FnZShXZWJLaXRXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2VOYQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotI2lmIFBMQVRG
T1JNKEdUSykKIC8qKgogICogd2Via2l0X3dlYl9wYWdlX2dldF9kb21fZG9jdW1lbnQ6CiAgKiBA
d2ViX3BhZ2U6IGEgI1dlYktpdFdlYlBhZ2UKQEAgLTcyNywxNSArNzA3LDEzIEBAIHZvaWQgd2Vi
a2l0V2ViUGFnZURpZFJlY2VpdmVNZXNzYWdlKFdlYktpdFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZU5hCiAgKi8KIFdlYktpdERPTURvY3VtZW50KiB3ZWJraXRfd2ViX3BhZ2Vf
Z2V0X2RvbV9kb2N1bWVudChXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlKQogewotICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfUEFHRSh3ZWJQYWdlKSwgMCk7CisgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9QQUdFKHdlYlBhZ2UpLCBudWxscHRyKTsKIAot
ICAgIE1haW5GcmFtZSogY29yZUZyYW1lID0gd2ViUGFnZS0+cHJpdi0+d2ViUGFnZS0+bWFpbkZy
YW1lKCk7Ci0gICAgaWYgKCFjb3JlRnJhbWUpCi0gICAgICAgIHJldHVybiAwOworICAgIGlmIChh
dXRvKiBjb3JlRnJhbWUgPSB3ZWJQYWdlLT5wcml2LT53ZWJQYWdlLT5tYWluRnJhbWUoKSkKKyAg
ICAgICAgcmV0dXJuIGtpdChjb3JlRnJhbWUtPmRvY3VtZW50KCkpOwogCi0gICAgcmV0dXJuIGtp
dChjb3JlRnJhbWUtPmRvY3VtZW50KCkpOworICAgIHJldHVybiBudWxscHRyOwogfQotI2VuZGlm
CiAKIC8qKgogICogd2Via2l0X3dlYl9wYWdlX2dldF9pZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2JqZWN0RXZlbnRM
aXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vR09iamVjdEV2ZW50TGlzdGVuZXIuY3BwCmluZGV4IDU0ZWZiYzcwMDAwLi45OTRi
OWFjZjI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL0dPYmplY3RFdmVudExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vR09iamVjdEV2ZW50TGlz
dGVuZXIuY3BwCkBAIC02Niw2ICs2Niw3IEBAIHZvaWQgR09iamVjdEV2ZW50TGlzdGVuZXI6Omdv
YmplY3REZXN0cm95ZWQoKQogCiB2b2lkIEdPYmplY3RFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVu
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgRXZlbnQmIGV2ZW50KQogeworICAgIEdfR05VQ19C
RUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwogICAgIEdWYWx1ZSBwYXJhbWV0ZXJzWzJdID0geyBH
X1ZBTFVFX0lOSVQsIEdfVkFMVUVfSU5JVCB9OwogICAgIGdfdmFsdWVfaW5pdCgmcGFyYW1ldGVy
c1swXSwgV0VCS0lUX0RPTV9UWVBFX0VWRU5UX1RBUkdFVCk7CiAgICAgZ192YWx1ZV9zZXRfb2Jq
ZWN0KCZwYXJhbWV0ZXJzWzBdLCBtX3RhcmdldCk7CkBAIC03Nyw2ICs3OCw3IEBAIHZvaWQgR09i
amVjdEV2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBF
dmVudCYgZXZlbnQpCiAgICAgZ19jbG9zdXJlX2ludm9rZShtX2hhbmRsZXIuZ2V0KCksIDAsIDIs
IHBhcmFtZXRlcnMsIE5VTEwpOwogICAgIGdfdmFsdWVfdW5zZXQocGFyYW1ldGVycyArIDApOwog
ICAgIGdfdmFsdWVfdW5zZXQocGFyYW1ldGVycyArIDEpOworICAgIEdfR05VQ19FTkRfSUdOT1JF
X0RFUFJFQ0FUSU9OUzsKIH0KIAogYm9vbCBHT2JqZWN0RXZlbnRMaXN0ZW5lcjo6b3BlcmF0b3I9
PShjb25zdCBFdmVudExpc3RlbmVyJiBsaXN0ZW5lcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2JqZWN0Tm9k
ZUZpbHRlckNvbmRpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwCmluZGV4IGEw
NjY1YjU4NmVhLi5iYTA5ZDg4MDNjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwCkBAIC0yNCw2ICsyNCw4IEBACiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FU
SU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIEdPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9u
Ojp+R09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24oKQpAQCAtMzcsMyArMzksNCBAQCB1bnNpZ25l
ZCBzaG9ydCBHT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZShOb2RlJiBub2Rl
KSBjb25zdAogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKK0dfR05VQ19FTkRfSUdOT1JFX0RF
UFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2JqZWN0WFBhdGhOU1Jlc29sdmVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2JqZWN0WFBhdGhO
U1Jlc29sdmVyLmNwcAppbmRleCBhNGRmODJjYmUzNy4uOTA1ZTdiMjk3NDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2Jq
ZWN0WFBhdGhOU1Jlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vR09iamVjdFhQYXRoTlNSZXNvbHZlci5jcHAKQEAgLTIy
LDYgKzIyLDggQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwor
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogR09iamVjdFhQYXRoTlNSZXNvbHZlcjo6fkdPYmplY3RY
UGF0aE5TUmVzb2x2ZXIoKQpAQCAtMzQsMyArMzYsNCBAQCBTdHJpbmcgR09iamVjdFhQYXRoTlNS
ZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJlZml4KQogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01BdHRyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01BdHRyLmNwcAppbmRleCA2ODBiMTY1OTIwMC4u
NmJkOWFlZWQ4YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01BdHRyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQXR0ci5jcHAK
QEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUF0dHIqIGtpdChXZWJDb3JlOjpBdHRyKiBvYmopCkBA
IC0zMDcsMyArMzA5LDQgQEAgZ2NoYXIqIHdlYmtpdF9kb21fYXR0cl9nZXRfbG9jYWxfbmFtZShX
ZWJLaXRET01BdHRyKiBzZWxmKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0dfR05VQ19FTkRf
SUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01BdHRyLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQXR0ci5o
CmluZGV4IDk4NTk3ZmE2OTAwLi43MWM0YTExMTEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUF0dHIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NQXR0ci5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NQXR0ckNs
YXNzIHsKICAgICBXZWJLaXRET01Ob2RlQ2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lU
X0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fYXR0cl9nZXRf
dHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2F0dHJfZ2V0
X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NQXR0cgogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21fYXR0cl9nZXRfbmFtZShXZWJLaXRET01BdHRyKiBzZWxmKTsKIAogLyoq
CkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2F0dHJfZ2V0X25hbWUoV2ViS2l0RE9NQXR0
ciogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NQXR0cgogICoKICAqIFJldHVybnM6IEEg
I2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdi
b29sZWFuCiB3ZWJraXRfZG9tX2F0dHJfZ2V0X3NwZWNpZmllZChXZWJLaXRET01BdHRyKiBzZWxm
KTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2F0dHJfZ2V0X3NwZWNpZmll
ZChXZWJLaXRET01BdHRyKiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01BdHRyCiAgKgog
ICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBS
RUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9hdHRyX2dldF92YWx1ZShXZWJLaXRET01BdHRyKiBz
ZWxmKTsKIAogLyoqCkBAIC04MSw4ICs4NywxMCBAQCB3ZWJraXRfZG9tX2F0dHJfZ2V0X3ZhbHVl
KFdlYktpdERPTUF0dHIqIHNlbGYpOwogICogQHZhbHVlOiBBICNnY2hhcgogICogQGVycm9yOiAj
R0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21fYXR0cl9zZXRfdmFsdWUoV2ViS2l0RE9NQXR0ciogc2VsZiwgY29uc3QgZ2No
YXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtOTAsOCArOTgsMTAgQEAgd2Vi
a2l0X2RvbV9hdHRyX3NldF92YWx1ZShXZWJLaXRET01BdHRyKiBzZWxmLCBjb25zdCBnY2hhciog
dmFsdWUsIEdFcnJvcioqIGVycm8KICAqIEBzZWxmOiBBICNXZWJLaXRET01BdHRyCiAgKgogICog
UmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVtZW50CisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgV2ViS2l0RE9NRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUVsZW1l
bnQqCiB3ZWJraXRfZG9tX2F0dHJfZ2V0X293bmVyX2VsZW1lbnQoV2ViS2l0RE9NQXR0ciogc2Vs
Zik7CiAKIC8qKgpAQCAtMTAxLDggKzExMSwxMCBAQCB3ZWJraXRfZG9tX2F0dHJfZ2V0X293bmVy
X2VsZW1lbnQoV2ViS2l0RE9NQXR0ciogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnY2hhcgogICoK
ICAqIFNpbmNlOiAyLjE0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRF
RCBnY2hhcioKIHdlYmtpdF9kb21fYXR0cl9nZXRfbmFtZXNwYWNlX3VyaShXZWJLaXRET01BdHRy
KiBzZWxmKTsKIAogLyoqCkBAIC0xMTIsOCArMTI0LDEwIEBAIHdlYmtpdF9kb21fYXR0cl9nZXRf
bmFtZXNwYWNlX3VyaShXZWJLaXRET01BdHRyKiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2djaGFy
CiAgKgogICogU2luY2U6IDIuMTQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBS
RUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9hdHRyX2dldF9wcmVmaXgoV2ViS2l0RE9NQXR0ciog
c2VsZik7CiAKIC8qKgpAQCAtMTIzLDggKzEzNywxMCBAQCB3ZWJraXRfZG9tX2F0dHJfZ2V0X3By
ZWZpeChXZWJLaXRET01BdHRyKiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2djaGFyCiAgKgogICog
U2luY2U6IDIuMTQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdj
aGFyKgogd2Via2l0X2RvbV9hdHRyX2dldF9sb2NhbF9uYW1lKFdlYktpdERPTUF0dHIqIHNlbGYp
OwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUJsb2IuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUJsb2IuY3Bw
CmluZGV4IDA5ZDRhYzY0ZmYwLi42ZDg0YzIzOGQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUJsb2IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01CbG9iLmNwcApAQCAtMzYsNiArMzYsOCBAQCB0eXBlZGVmIHN0cnVjdCBfV2Vi
S2l0RE9NQmxvYlByaXZhdGUgewogICAgIFJlZlB0cjxXZWJDb3JlOjpCbG9iPiBjb3JlT2JqZWN0
OwogfSBXZWJLaXRET01CbG9iUHJpdmF0ZTsKIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNB
VElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01CbG9iKiBraXQoV2ViQ29y
ZTo6QmxvYiogb2JqKQpAQCAtMTM3LDMgKzEzOSw0IEBAIGd1aW50NjQgd2Via2l0X2RvbV9ibG9i
X2dldF9zaXplKFdlYktpdERPTUJsb2IqIHNlbGYpCiAgICAgZ3VpbnQ2NCByZXN1bHQgPSBpdGVt
LT5zaXplKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJF
Q0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01CbG9iLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQmxvYi5oCmluZGV4IGFjNTA4
MDE0ZTEwLi5hM2ZiNzdlYzk3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUJsb2IuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQmxv
Yi5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NQmxvYkNsYXNzIHsKICAgICBX
ZWJLaXRET01PYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBl
CitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9ibG9iX2dldF90eXBlKHZvaWQp
OwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21fYmxvYl9nZXRfdHlwZSh2b2lk
KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01CbG9iCiAgKgogICogUmV0dXJuczogQSAjZ3VpbnQ2
NAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGd1aW50NjQKK1dFQktJVF9ERVBSRUNBVEVEIGd1aW50NjQKIHdl
YmtpdF9kb21fYmxvYl9nZXRfc2l6ZShXZWJLaXRET01CbG9iKiBzZWxmKTsKIAogR19FTkRfREVD
TFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01DREFUQVNlY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNEQVRBU2VjdGlvbi5j
cHAKaW5kZXggZTAxYzYxZmUzMjUuLjA3MmM0ZDBkNDBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ0RBVEFT
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NQ0RBVEFTZWN0aW9uLmNwcApAQCAtMzUsNiArMzUsOCBAQAog
I2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05V
Q19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2Vi
S2l0RE9NQ0RBVEFTZWN0aW9uKiBraXQoV2ViQ29yZTo6Q0RBVEFTZWN0aW9uKiBvYmopCkBAIC0x
MDIsMyArMTA0LDQgQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV9jZGF0YV9zZWN0aW9uX2luaXQo
V2ViS2l0RE9NQ0RBVEFTZWN0aW9uKiByZXF1ZXN0KQogICAgIFVOVVNFRF9QQVJBTShyZXF1ZXN0
KTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUNEQVRBU2VjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUNEQVRBU2VjdGlvbi5oCmluZGV4IDZmNDI0ODkyNzc4Li4x
MDQ2OGY4OGQ5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNEQVRBU2VjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DREFU
QVNlY3Rpb24uaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUNEQVRBU2VjdGlv
bkNsYXNzIHsKICAgICBXZWJLaXRET01UZXh0Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VC
S0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fY2RhdGFf
c2VjdGlvbl9nZXRfdHlwZSh2b2lkKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01D
U1NSdWxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01DU1NSdWxlLmNwcAppbmRleCAzOTVjYzg2ZDE1OC4uM2Y4YmZlNjZi
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01DU1NSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTUnVsZS5jcHAKQEAg
LTM4LDYgKzM4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTUNTU1J1bGVQcml2YXRlIHsK
ICAgICBSZWZQdHI8V2ViQ29yZTo6Q1NTUnVsZT4gY29yZU9iamVjdDsKIH0gV2ViS2l0RE9NQ1NT
UnVsZVByaXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NQ1NTUnVsZSoga2l0KFdlYkNvcmU6OkNTU1J1bGUq
IG9iaikKQEAgLTI0MCwzICsyNDIsNCBAQCBXZWJLaXRET01DU1NSdWxlKiB3ZWJraXRfZG9tX2Nz
c19ydWxlX2dldF9wYXJlbnRfcnVsZShXZWJLaXRET01DU1NSdWxlKiBzZWxmKQogICAgIHJldHVy
biBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKIH0KIAorR19HTlVDX0VORF9JR05P
UkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1J1bGUuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NSdWxl
LmgKaW5kZXggNDMwZjZmNjc0ZDguLjQwZDM2ODdhODQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTUnVs
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01DU1NSdWxlLmgKQEAgLTM5LDM2ICszOSw1MCBAQCBHX0JFR0lOX0RFQ0xT
CiAKIC8qKgogICogV0VCS0lUX0RPTV9DU1NfUlVMRV9VTktOT1dOX1JVTEU6CisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZp
bmUgV0VCS0lUX0RPTV9DU1NfUlVMRV9VTktOT1dOX1JVTEUgMAogCiAvKioKICAqIFdFQktJVF9E
T01fQ1NTX1JVTEVfU1RZTEVfUlVMRToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0NTU19SVUxF
X1NUWUxFX1JVTEUgMQogCiAvKioKICAqIFdFQktJVF9ET01fQ1NTX1JVTEVfQ0hBUlNFVF9SVUxF
OgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fQ1NTX1JVTEVfQ0hBUlNFVF9SVUxFIDIKIAogLyoq
CiAgKiBXRUJLSVRfRE9NX0NTU19SVUxFX0lNUE9SVF9SVUxFOgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJ
VF9ET01fQ1NTX1JVTEVfSU1QT1JUX1JVTEUgMwogCiAvKioKICAqIFdFQktJVF9ET01fQ1NTX1JV
TEVfTUVESUFfUlVMRToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0NTU19SVUxFX01FRElBX1JV
TEUgNAogCiAvKioKICAqIFdFQktJVF9ET01fQ1NTX1JVTEVfRk9OVF9GQUNFX1JVTEU6CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8K
ICNkZWZpbmUgV0VCS0lUX0RPTV9DU1NfUlVMRV9GT05UX0ZBQ0VfUlVMRSA1CiAKIC8qKgogICog
V0VCS0lUX0RPTV9DU1NfUlVMRV9QQUdFX1JVTEU6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9D
U1NfUlVMRV9QQUdFX1JVTEUgNgogCkBAIC04MCw3ICs5NCw3IEBAIHN0cnVjdCBfV2ViS2l0RE9N
Q1NTUnVsZUNsYXNzIHsKICAgICBXZWJLaXRET01PYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CiB9
OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2Rv
bV9jc3NfcnVsZV9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC04OCw4ICsxMDIsMTAgQEAgd2Vi
a2l0X2RvbV9jc3NfcnVsZV9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01D
U1NSdWxlCiAgKgogICogUmV0dXJuczogQSAjZ3VzaG9ydAorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGd1c2hv
cnQKK1dFQktJVF9ERVBSRUNBVEVEIGd1c2hvcnQKIHdlYmtpdF9kb21fY3NzX3J1bGVfZ2V0X3J1
bGVfdHlwZShXZWJLaXRET01DU1NSdWxlKiBzZWxmKTsKIAogLyoqCkBAIC05Nyw4ICsxMTMsMTAg
QEAgd2Via2l0X2RvbV9jc3NfcnVsZV9nZXRfcnVsZV90eXBlKFdlYktpdERPTUNTU1J1bGUqIHNl
bGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUNTU1J1bGUKICAqCiAgKiBSZXR1cm5zOiBBICNn
Y2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3
ZWJraXRfZG9tX2Nzc19ydWxlX2dldF9jc3NfdGV4dChXZWJLaXRET01DU1NSdWxlKiBzZWxmKTsK
IAogLyoqCkBAIC0xMDcsOCArMTI1LDEwIEBAIHdlYmtpdF9kb21fY3NzX3J1bGVfZ2V0X2Nzc190
ZXh0KFdlYktpdERPTUNTU1J1bGUqIHNlbGYpOwogICogQHZhbHVlOiBBICNnY2hhcgogICogQGVy
cm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21fY3NzX3J1bGVfc2V0X2Nzc190ZXh0KFdlYktpdERPTUNTU1J1bGUq
IHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTEx
Niw4ICsxMzYsMTAgQEAgd2Via2l0X2RvbV9jc3NfcnVsZV9zZXRfY3NzX3RleHQoV2ViS2l0RE9N
Q1NTUnVsZSogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXIKICAqIEBzZWxmOiBBICNXZWJL
aXRET01DU1NSdWxlCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRE
T01DU1NTdHlsZVNoZWV0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NQ1NTU3R5bGVTaGVldCoK
K1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUNTU1N0eWxlU2hlZXQqCiB3ZWJraXRfZG9tX2Nz
c19ydWxlX2dldF9wYXJlbnRfc3R5bGVfc2hlZXQoV2ViS2l0RE9NQ1NTUnVsZSogc2VsZik7CiAK
IC8qKgpAQCAtMTI1LDggKzE0NywxMCBAQCB3ZWJraXRfZG9tX2Nzc19ydWxlX2dldF9wYXJlbnRf
c3R5bGVfc2hlZXQoV2ViS2l0RE9NQ1NTUnVsZSogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NQ1NTUnVsZQogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9N
Q1NTUnVsZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUNTU1J1bGUqCitXRUJLSVRfREVQUkVD
QVRFRCBXZWJLaXRET01DU1NSdWxlKgogd2Via2l0X2RvbV9jc3NfcnVsZV9nZXRfcGFyZW50X3J1
bGUoV2ViS2l0RE9NQ1NTUnVsZSogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NQ1NTUnVsZUxpc3QuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1J1bGVMaXN0LmNwcAppbmRleCBjOTMyYWRlNTc4
ZC4uODJkOTIxMjMzMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NSdWxlTGlzdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUNTU1J1bGVMaXN0LmNwcApAQCAtMzcsNiArMzcsOCBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0
RE9NQ1NTUnVsZUxpc3RQcml2YXRlIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6Q1NTUnVsZUxpc3Q+
IGNvcmVPYmplY3Q7CiB9IFdlYktpdERPTUNTU1J1bGVMaXN0UHJpdmF0ZTsKIAorR19HTlVDX0JF
R0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRE
T01DU1NSdWxlTGlzdCoga2l0KFdlYkNvcmU6OkNTU1J1bGVMaXN0KiBvYmopCkBAIC0xNDksMyAr
MTUxLDQgQEAgZ3Vsb25nIHdlYmtpdF9kb21fY3NzX3J1bGVfbGlzdF9nZXRfbGVuZ3RoKFdlYktp
dERPTUNTU1J1bGVMaXN0KiBzZWxmKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0dfR05VQ19F
TkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NSdWxlTGlzdC5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUNTU1J1bGVMaXN0LmgKaW5kZXggMDRkZWIwNTM4MDkuLmQ5YTRkYTViOGU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NQ1NTUnVsZUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTUnVsZUxpc3QuaApAQCAtNDUsNyAr
NDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUNTU1J1bGVMaXN0Q2xhc3MgewogICAgIFdlYktpdERP
TU9iamVjdENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJ
VF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2Nzc19ydWxlX2xpc3RfZ2V0X3R5cGUodm9p
ZCk7CiAKIC8qKgpAQCAtNTQsOCArNTQsMTAgQEAgd2Via2l0X2RvbV9jc3NfcnVsZV9saXN0X2dl
dF90eXBlKHZvaWQpOwogICogQGluZGV4OiBBICNndWxvbmcKICAqCiAgKiBSZXR1cm5zOiAodHJh
bnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUNTU1J1bGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRE
T01DU1NSdWxlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NQ1NTUnVsZSoKIHdlYmtpdF9k
b21fY3NzX3J1bGVfbGlzdF9pdGVtKFdlYktpdERPTUNTU1J1bGVMaXN0KiBzZWxmLCBndWxvbmcg
aW5kZXgpOwogCiAvKioKQEAgLTYzLDggKzY1LDEwIEBAIHdlYmtpdF9kb21fY3NzX3J1bGVfbGlz
dF9pdGVtKFdlYktpdERPTUNTU1J1bGVMaXN0KiBzZWxmLCBndWxvbmcgaW5kZXgpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUNTU1J1bGVMaXN0CiAgKgogICogUmV0dXJuczogQSAjZ3Vsb25nCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQUkVDQVRFRCBndWxvbmcKIHdlYmtpdF9k
b21fY3NzX3J1bGVfbGlzdF9nZXRfbGVuZ3RoKFdlYktpdERPTUNTU1J1bGVMaXN0KiBzZWxmKTsK
IAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01DU1NTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCA5MThkMjVkN2QwMC4uZjQ3NDFjOWZm
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NT
U3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTM4LDYgKzM4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dl
YktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb25Qcml2YXRlIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6
Q1NTU3R5bGVEZWNsYXJhdGlvbj4gY29yZU9iamVjdDsKIH0gV2ViS2l0RE9NQ1NTU3R5bGVEZWNs
YXJhdGlvblByaXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbioga2l0KFdl
YkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb24qIG9iaikKQEAgLTMwMywzICszMDUsNCBAQCBXZWJL
aXRET01DU1NSdWxlKiB3ZWJraXRfZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9nZXRfcGFyZW50
X3J1bGUoV2ViS2l0RE9NQ1NTUwogICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0
LmdldCgpKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uLmgK
aW5kZXggODhmZTdiODVmNmUuLjczNWZjMzA4ZjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTU3R5bGVE
ZWNsYXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uLmgKQEAgLTQ1LDcgKzQ1
LDcgQEAgc3RydWN0IF9XZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uQ2xhc3MgewogICAgIFdl
YktpdERPTU9iamVjdENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUK
K1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlv
bl9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01NCw4ICs1NCwxMCBAQCB3ZWJraXRfZG9tX2Nz
c19zdHlsZV9kZWNsYXJhdGlvbl9nZXRfdHlwZSh2b2lkKTsKICAqIEBwcm9wZXJ0eU5hbWU6IEEg
I2djaGFyCiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioK
K1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRp
b25fZ2V0X3Byb3BlcnR5X3ZhbHVlKFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24qIHNlbGYs
IGNvbnN0IGdjaGFyKiBwcm9wZXJ0eU5hbWUpOwogCiAvKioKQEAgLTY1LDggKzY3LDEwIEBAIHdl
YmtpdF9kb21fY3NzX3N0eWxlX2RlY2xhcmF0aW9uX2dldF9wcm9wZXJ0eV92YWx1ZShXZWJLaXRE
T01DU1NTdHlsZURlY2xhcmF0aW9uCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5z
OiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2No
YXIqCiB3ZWJraXRfZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9yZW1vdmVfcHJvcGVydHkoV2Vi
S2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiogc2VsZiwgY29uc3QgZ2NoYXIqIHByb3BlcnR5TmFt
ZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTc1LDggKzc5LDEwIEBAIHdlYmtpdF9kb21f
Y3NzX3N0eWxlX2RlY2xhcmF0aW9uX3JlbW92ZV9wcm9wZXJ0eShXZWJLaXRET01DU1NTdHlsZURl
Y2xhcmF0aW9uKiBzCiAgKiBAcHJvcGVydHlOYW1lOiBBICNnY2hhcgogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21fY3NzX3N0eWxlX2RlY2xhcmF0aW9uX2dldF9wcm9wZXJ0eV9wcmlvcml0
eShXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uKiBzZWxmLCBjb25zdCBnY2hhciogcHJvcGVy
dHlOYW1lKTsKIAogLyoqCkBAIC04Nyw4ICs5MywxMCBAQCB3ZWJraXRfZG9tX2Nzc19zdHlsZV9k
ZWNsYXJhdGlvbl9nZXRfcHJvcGVydHlfcHJpb3JpdHkoV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJh
dAogICogQHByaW9yaXR5OiBBICNnY2hhcgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fY3NzX3N0
eWxlX2RlY2xhcmF0aW9uX3NldF9wcm9wZXJ0eShXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9u
KiBzZWxmLCBjb25zdCBnY2hhciogcHJvcGVydHlOYW1lLCBjb25zdCBnY2hhciogdmFsdWUsIGNv
bnN0IGdjaGFyKiBwcmlvcml0eSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTk3LDggKzEw
NSwxMCBAQCB3ZWJraXRfZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9zZXRfcHJvcGVydHkoV2Vi
S2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiogc2VsZgogICogQGluZGV4OiBBICNndWxvbmcKICAq
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9pdGVtKFdl
YktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24qIHNlbGYsIGd1bG9uZyBpbmRleCk7CiAKIC8qKgpA
QCAtMTA3LDggKzExNywxMCBAQCB3ZWJraXRfZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9pdGVt
KFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24qIHNlbGYsIGd1bG9uZwogICogQHByb3BlcnR5
TmFtZTogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2Nzc19zdHlsZV9k
ZWNsYXJhdGlvbl9nZXRfcHJvcGVydHlfc2hvcnRoYW5kKFdlYktpdERPTUNTU1N0eWxlRGVjbGFy
YXRpb24qIHNlbGYsIGNvbnN0IGdjaGFyKiBwcm9wZXJ0eU5hbWUpOwogCiAvKioKQEAgLTExNyw4
ICsxMjksMTAgQEAgd2Via2l0X2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRpb25fZ2V0X3Byb3BlcnR5
X3Nob3J0aGFuZChXZWJLaXRET01DU1NTdHlsZURlY2xhcmEKICAqIEBwcm9wZXJ0eU5hbWU6IEEg
I2djaGFyCiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9v
bGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fY3NzX3N0eWxlX2Rl
Y2xhcmF0aW9uX2lzX3Byb3BlcnR5X2ltcGxpY2l0KFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRp
b24qIHNlbGYsIGNvbnN0IGdjaGFyKiBwcm9wZXJ0eU5hbWUpOwogCiAvKioKQEAgLTEyNiw4ICsx
NDAsMTAgQEAgd2Via2l0X2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRpb25faXNfcHJvcGVydHlfaW1w
bGljaXQoV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGkKICAqIEBzZWxmOiBBICNXZWJLaXRET01D
U1NTdHlsZURlY2xhcmF0aW9uCiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9jc3Nfc3R5
bGVfZGVjbGFyYXRpb25fZ2V0X2Nzc190ZXh0KFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24q
IHNlbGYpOwogCiAvKioKQEAgLTEzNiw4ICsxNTIsMTAgQEAgd2Via2l0X2RvbV9jc3Nfc3R5bGVf
ZGVjbGFyYXRpb25fZ2V0X2Nzc190ZXh0KFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24qIHNl
bGYKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqIEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2Nzc19zdHls
ZV9kZWNsYXJhdGlvbl9zZXRfY3NzX3RleHQoV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiog
c2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTQ1
LDggKzE2MywxMCBAQCB3ZWJraXRfZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9zZXRfY3NzX3Rl
eHQoV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiogc2VsZgogICogQHNlbGY6IEEgI1dlYktp
dERPTUNTU1N0eWxlRGVjbGFyYXRpb24KICAqCiAgKiBSZXR1cm5zOiBBICNndWxvbmcKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Via2l0X2RvbV9j
c3Nfc3R5bGVfZGVjbGFyYXRpb25fZ2V0X2xlbmd0aChXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0
aW9uKiBzZWxmKTsKIAogLyoqCkBAIC0xNTQsOCArMTc0LDEwIEBAIHdlYmtpdF9kb21fY3NzX3N0
eWxlX2RlY2xhcmF0aW9uX2dldF9sZW5ndGgoV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbgogICoKICAq
IFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NQ1NTUnVsZQorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIFdlYktpdERPTUNTU1J1bGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01DU1NS
dWxlKgogd2Via2l0X2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRpb25fZ2V0X3BhcmVudF9ydWxlKFdl
YktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24qIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUNTU1N0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1N0eWxlU2hlZXQuY3BwCmluZGV4
IDAwMDc0NzcwNzZjLi4yYTExMmFlMmVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1N0eWxlU2hlZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01DU1NTdHlsZVNoZWV0LmNwcApAQCAtMzQsNiArMzQsOCBAQAogI2luY2x1
ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJ
Tl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9N
Q1NTU3R5bGVTaGVldCoga2l0KFdlYkNvcmU6OkNTU1N0eWxlU2hlZXQqIG9iaikKQEAgLTIxNCwz
ICsyMTYsNCBAQCBXZWJLaXRET01DU1NSdWxlTGlzdCogd2Via2l0X2RvbV9jc3Nfc3R5bGVfc2hl
ZXRfZ2V0X3J1bGVzKFdlYktpdERPTUNTU1N0eWxlU2hlZQogICAgIHJldHVybiBXZWJLaXQ6Omtp
dChnb2JqZWN0UmVzdWx0LmdldCgpKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJ
T05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1N0eWxlU2hlZXQuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZVNoZWV0
LmgKaW5kZXggOWE4NWI2NTc3OGUuLmEwNGUwNGZhMTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTU3R5
bGVTaGVldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZVNoZWV0LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3Ry
dWN0IF9XZWJLaXRET01DU1NTdHlsZVNoZWV0Q2xhc3MgewogICAgIFdlYktpdERPTVN0eWxlU2hl
ZXRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQ
UkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9jc3Nfc3R5bGVfc2hlZXRfZ2V0X3R5cGUodm9pZCk7
CiAKIC8qKgpAQCAtNTYsOCArNTYsMTAgQEAgd2Via2l0X2RvbV9jc3Nfc3R5bGVfc2hlZXRfZ2V0
X3R5cGUodm9pZCk7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiBBICNndWxv
bmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Vi
a2l0X2RvbV9jc3Nfc3R5bGVfc2hlZXRfaW5zZXJ0X3J1bGUoV2ViS2l0RE9NQ1NTU3R5bGVTaGVl
dCogc2VsZiwgY29uc3QgZ2NoYXIqIHJ1bGUsIGd1bG9uZyBpbmRleCwgR0Vycm9yKiogZXJyb3Ip
OwogCiAvKioKQEAgLTY2LDggKzY4LDEwIEBAIHdlYmtpdF9kb21fY3NzX3N0eWxlX3NoZWV0X2lu
c2VydF9ydWxlKFdlYktpdERPTUNTU1N0eWxlU2hlZXQqIHNlbGYsIGNvbnN0IGdjaGFyCiAgKiBA
aW5kZXg6IEEgI2d1bG9uZwogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fY3NzX3N0eWxlX3NoZWV0
X2RlbGV0ZV9ydWxlKFdlYktpdERPTUNTU1N0eWxlU2hlZXQqIHNlbGYsIGd1bG9uZyBpbmRleCwg
R0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTc5LDggKzgzLDEwIEBAIHdlYmtpdF9kb21fY3Nz
X3N0eWxlX3NoZWV0X2RlbGV0ZV9ydWxlKFdlYktpdERPTUNTU1N0eWxlU2hlZXQqIHNlbGYsIGd1
bG9uZyBpbmRlCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZwor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2Rv
bV9jc3Nfc3R5bGVfc2hlZXRfYWRkX3J1bGUoV2ViS2l0RE9NQ1NTU3R5bGVTaGVldCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHNlbGVjdG9yLCBjb25zdCBnY2hhciogc3R5bGUsIGd1bG9uZyBpbmRleCwg
R0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTg5LDggKzk1LDEwIEBAIHdlYmtpdF9kb21fY3Nz
X3N0eWxlX3NoZWV0X2FkZF9ydWxlKFdlYktpdERPTUNTU1N0eWxlU2hlZXQqIHNlbGYsIGNvbnN0
IGdjaGFyKiBzCiAgKiBAaW5kZXg6IEEgI2d1bG9uZwogICogQGVycm9yOiAjR0Vycm9yCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
Y3NzX3N0eWxlX3NoZWV0X3JlbW92ZV9ydWxlKFdlYktpdERPTUNTU1N0eWxlU2hlZXQqIHNlbGYs
IGd1bG9uZyBpbmRleCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTk4LDggKzEwNiwxMCBA
QCB3ZWJraXRfZG9tX2Nzc19zdHlsZV9zaGVldF9yZW1vdmVfcnVsZShXZWJLaXRET01DU1NTdHls
ZVNoZWV0KiBzZWxmLCBndWxvbmcgaW5kZQogICogQHNlbGY6IEEgI1dlYktpdERPTUNTU1N0eWxl
U2hlZXQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUNTU1J1
bGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01DU1NSdWxlKgorV0VCS0lUX0RFUFJFQ0FURUQg
V2ViS2l0RE9NQ1NTUnVsZSoKIHdlYmtpdF9kb21fY3NzX3N0eWxlX3NoZWV0X2dldF9vd25lcl9y
dWxlKFdlYktpdERPTUNTU1N0eWxlU2hlZXQqIHNlbGYpOwogCiAvKioKQEAgLTEwNyw4ICsxMTcs
MTAgQEAgd2Via2l0X2RvbV9jc3Nfc3R5bGVfc2hlZXRfZ2V0X293bmVyX3J1bGUoV2ViS2l0RE9N
Q1NTU3R5bGVTaGVldCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NQ1NTU3R5bGVTaGVl
dAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NQ1NTUnVsZUxp
c3QKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01DU1NSdWxlTGlzdCoKK1dFQktJVF9ERVBSRUNB
VEVEIFdlYktpdERPTUNTU1J1bGVMaXN0Kgogd2Via2l0X2RvbV9jc3Nfc3R5bGVfc2hlZXRfZ2V0
X2Nzc19ydWxlcyhXZWJLaXRET01DU1NTdHlsZVNoZWV0KiBzZWxmKTsKIAogLyoqCkBAIC0xMTYs
OCArMTI4LDEwIEBAIHdlYmtpdF9kb21fY3NzX3N0eWxlX3NoZWV0X2dldF9jc3NfcnVsZXMoV2Vi
S2l0RE9NQ1NTU3R5bGVTaGVldCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NQ1NTU3R5
bGVTaGVldAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NQ1NT
UnVsZUxpc3QKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01DU1NSdWxlTGlzdCoKK1dFQktJVF9E
RVBSRUNBVEVEIFdlYktpdERPTUNTU1J1bGVMaXN0Kgogd2Via2l0X2RvbV9jc3Nfc3R5bGVfc2hl
ZXRfZ2V0X3J1bGVzKFdlYktpdERPTUNTU1N0eWxlU2hlZXQqIHNlbGYpOwogCiBHX0VORF9ERUNM
UwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUNTU1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NWYWx1ZS5jcHAKaW5kZXgg
YjNjM2UwZmQzODUuLjZhOWViNTkyODk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTVmFsdWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01DU1NWYWx1ZS5jcHAKQEAgLTM3LDYgKzM3LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dl
YktpdERPTUNTU1ZhbHVlUHJpdmF0ZSB7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkRlcHJlY2F0ZWRD
U1NPTVZhbHVlPiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01DU1NWYWx1ZVByaXZhdGU7CiAKK0df
R05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
V2ViS2l0RE9NQ1NTVmFsdWUqIGtpdChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZSogb2Jq
KQpAQCAtMTkzLDMgKzE5NSw0IEBAIGd1c2hvcnQgd2Via2l0X2RvbV9jc3NfdmFsdWVfZ2V0X2Nz
c192YWx1ZV90eXBlKFdlYktpdERPTUNTU1ZhbHVlKiBzZWxmKQogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01D
U1NWYWx1ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUNTU1ZhbHVlLmgKaW5kZXggZDI0M2JiZjJkYWQuLmQzYWI5OGMxYzkx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NQ1NTVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTVmFsdWUuaApAQCAtMzks
MjEgKzM5LDI5IEBAIEdfQkVHSU5fREVDTFMKIAogLyoqCiAgKiBXRUJLSVRfRE9NX0NTU19WQUxV
RV9DU1NfSU5IRVJJVDoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0NTU19WQUxVRV9DU1NfSU5I
RVJJVCAwCiAKIC8qKgogICogV0VCS0lUX0RPTV9DU1NfVkFMVUVfQ1NTX1BSSU1JVElWRV9WQUxV
RToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0NTU19WQUxVRV9DU1NfUFJJTUlUSVZFX1ZBTFVF
IDEKIAogLyoqCiAgKiBXRUJLSVRfRE9NX0NTU19WQUxVRV9DU1NfVkFMVUVfTElTVDoKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwog
I2RlZmluZSBXRUJLSVRfRE9NX0NTU19WQUxVRV9DU1NfVkFMVUVfTElTVCAyCiAKIC8qKgogICog
V0VCS0lUX0RPTV9DU1NfVkFMVUVfQ1NTX0NVU1RPTToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9N
X0NTU19WQUxVRV9DU1NfQ1VTVE9NIDMKIApAQCAtNjUsNyArNzMsNyBAQCBzdHJ1Y3QgX1dlYktp
dERPTUNTU1ZhbHVlQ2xhc3MgewogICAgIFdlYktpdERPTU9iamVjdENsYXNzIHBhcmVudF9jbGFz
czsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJr
aXRfZG9tX2Nzc192YWx1ZV9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC03Myw4ICs4MSwxMCBA
QCB3ZWJraXRfZG9tX2Nzc192YWx1ZV9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01DU1NWYWx1ZQogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fY3NzX3ZhbHVlX2dl
dF9jc3NfdGV4dChXZWJLaXRET01DU1NWYWx1ZSogc2VsZik7CiAKIC8qKgpAQCAtODMsOCArOTMs
MTAgQEAgd2Via2l0X2RvbV9jc3NfdmFsdWVfZ2V0X2Nzc190ZXh0KFdlYktpdERPTUNTU1ZhbHVl
KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqIEBlcnJvcjogI0dFcnJvcgogICoKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2Nz
c192YWx1ZV9zZXRfY3NzX3RleHQoV2ViS2l0RE9NQ1NTVmFsdWUqIHNlbGYsIGNvbnN0IGdjaGFy
KiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTkyLDggKzEwNCwxMCBAQCB3ZWJr
aXRfZG9tX2Nzc192YWx1ZV9zZXRfY3NzX3RleHQoV2ViS2l0RE9NQ1NTVmFsdWUqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSwgRwogICogQHNlbGY6IEEgI1dlYktpdERPTUNTU1ZhbHVlCiAgKgog
ICogUmV0dXJuczogQSAjZ3VzaG9ydAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGd1c2hvcnQKK1dFQktJVF9E
RVBSRUNBVEVEIGd1c2hvcnQKIHdlYmtpdF9kb21fY3NzX3ZhbHVlX2dldF9jc3NfdmFsdWVfdHlw
ZShXZWJLaXRET01DU1NWYWx1ZSogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NQ2hhcmFjdGVyRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YS5jcHAKaW5kZXggNjIwNzUz
Y2M1MDguLmNlOTA5NzcyOTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUNoYXJhY3RlckRhdGEuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSA8d3Rm
L0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9S
RV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01DaGFyYWN0
ZXJEYXRhKiBraXQoV2ViQ29yZTo6Q2hhcmFjdGVyRGF0YSogb2JqKQpAQCAtMjU2LDMgKzI1OCw0
IEBAIGd1bG9uZyB3ZWJraXRfZG9tX2NoYXJhY3Rlcl9kYXRhX2dldF9sZW5ndGgoV2ViS2l0RE9N
Q2hhcmFjdGVyRGF0YSogc2VsZikKICAgICBndWxvbmcgcmVzdWx0ID0gaXRlbS0+bGVuZ3RoKCk7
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01DaGFyYWN0ZXJEYXRhLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YS5oCmlu
ZGV4IDI3NWE1YjllNzdiLi5iNGY5ODBmMDc2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNoYXJhY3RlckRh
dGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YS5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBf
V2ViS2l0RE9NQ2hhcmFjdGVyRGF0YUNsYXNzIHsKICAgICBXZWJLaXRET01Ob2RlQ2xhc3MgcGFy
ZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5
cGUKIHdlYmtpdF9kb21fY2hhcmFjdGVyX2RhdGFfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAt
NTYsOCArNTYsMTAgQEAgd2Via2l0X2RvbV9jaGFyYWN0ZXJfZGF0YV9nZXRfdHlwZSh2b2lkKTsK
ICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fY2hhcmFj
dGVyX2RhdGFfc3Vic3RyaW5nX2RhdGEoV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YSogc2VsZiwgZ3Vs
b25nIG9mZnNldCwgZ3Vsb25nIGxlbmd0aCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTY2
LDggKzY4LDEwIEBAIHdlYmtpdF9kb21fY2hhcmFjdGVyX2RhdGFfc3Vic3RyaW5nX2RhdGEoV2Vi
S2l0RE9NQ2hhcmFjdGVyRGF0YSogc2VsZiwgZ3Vsb25nIG9mCiAgKiBAZGF0YTogQSAjZ2NoYXIK
ICAqIEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2NoYXJhY3Rlcl9kYXRhX2FwcGVuZF9kYXRhKFdlYktp
dERPTUNoYXJhY3RlckRhdGEqIHNlbGYsIGNvbnN0IGdjaGFyKiBkYXRhLCBHRXJyb3IqKiBlcnJv
cik7CiAKIC8qKgpAQCAtNzcsOCArODEsMTAgQEAgd2Via2l0X2RvbV9jaGFyYWN0ZXJfZGF0YV9h
cHBlbmRfZGF0YShXZWJLaXRET01DaGFyYWN0ZXJEYXRhKiBzZWxmLCBjb25zdCBnY2hhcioKICAq
IEBkYXRhOiBBICNnY2hhcgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fY2hhcmFjdGVyX2RhdGFf
aW5zZXJ0X2RhdGEoV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YSogc2VsZiwgZ3Vsb25nIG9mZnNldCwg
Y29uc3QgZ2NoYXIqIGRhdGEsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC04OCw4ICs5NCwx
MCBAQCB3ZWJraXRfZG9tX2NoYXJhY3Rlcl9kYXRhX2luc2VydF9kYXRhKFdlYktpdERPTUNoYXJh
Y3RlckRhdGEqIHNlbGYsIGd1bG9uZyBvZmZzZQogICogQGxlbmd0aDogQSAjZ3Vsb25nCiAgKiBA
ZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9jaGFyYWN0ZXJfZGF0YV9kZWxldGVfZGF0YShXZWJLaXRET01D
aGFyYWN0ZXJEYXRhKiBzZWxmLCBndWxvbmcgb2Zmc2V0LCBndWxvbmcgbGVuZ3RoLCBHRXJyb3Iq
KiBlcnJvcik7CiAKIC8qKgpAQCAtMTAwLDggKzEwOCwxMCBAQCB3ZWJraXRfZG9tX2NoYXJhY3Rl
cl9kYXRhX2RlbGV0ZV9kYXRhKFdlYktpdERPTUNoYXJhY3RlckRhdGEqIHNlbGYsIGd1bG9uZyBv
ZmZzZQogICogQGRhdGE6IEEgI2djaGFyCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9jaGFyYWN0
ZXJfZGF0YV9yZXBsYWNlX2RhdGEoV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YSogc2VsZiwgZ3Vsb25n
IG9mZnNldCwgZ3Vsb25nIGxlbmd0aCwgY29uc3QgZ2NoYXIqIGRhdGEsIEdFcnJvcioqIGVycm9y
KTsKIAogLyoqCkBAIC0xMDksOCArMTE5LDEwIEBAIHdlYmtpdF9kb21fY2hhcmFjdGVyX2RhdGFf
cmVwbGFjZV9kYXRhKFdlYktpdERPTUNoYXJhY3RlckRhdGEqIHNlbGYsIGd1bG9uZyBvZmZzCiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YQogICoKICAqIFJldHVybnM6IEEgI2dj
aGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdl
YmtpdF9kb21fY2hhcmFjdGVyX2RhdGFfZ2V0X2RhdGEoV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YSog
c2VsZik7CiAKIC8qKgpAQCAtMTE5LDggKzEzMSwxMCBAQCB3ZWJraXRfZG9tX2NoYXJhY3Rlcl9k
YXRhX2dldF9kYXRhKFdlYktpdERPTUNoYXJhY3RlckRhdGEqIHNlbGYpOwogICogQHZhbHVlOiBB
ICNnY2hhcgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fY2hhcmFjdGVyX2RhdGFfc2V0X2RhdGEo
V2ViS2l0RE9NQ2hhcmFjdGVyRGF0YSogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3Iq
KiBlcnJvcik7CiAKIC8qKgpAQCAtMTI4LDggKzE0MiwxMCBAQCB3ZWJraXRfZG9tX2NoYXJhY3Rl
cl9kYXRhX3NldF9kYXRhKFdlYktpdERPTUNoYXJhY3RlckRhdGEqIHNlbGYsIGNvbnN0IGdjaGFy
KiB2YQogICogQHNlbGY6IEEgI1dlYktpdERPTUNoYXJhY3RlckRhdGEKICAqCiAgKiBSZXR1cm5z
OiBBICNndWxvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1
bG9uZwogd2Via2l0X2RvbV9jaGFyYWN0ZXJfZGF0YV9nZXRfbGVuZ3RoKFdlYktpdERPTUNoYXJh
Y3RlckRhdGEqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJl
Y3QuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUNsaWVudFJlY3QuY3BwCmluZGV4IDE2MTI2ZTI4N2JjLi5lNTBmYTU5YWRj
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0LmNw
cApAQCAtMzcsNiArMzcsOCBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NQ2xpZW50UmVjdFBy
aXZhdGUgewogICAgIFJlZlB0cjxXZWJDb3JlOjpET01SZWN0PiBjb3JlT2JqZWN0OwogfSBXZWJL
aXRET01DbGllbnRSZWN0UHJpdmF0ZTsKIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElP
TlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01DbGllbnRSZWN0KiBraXQoV2Vi
Q29yZTo6RE9NUmVjdCogb2JqKQpAQCAtMjQwLDMgKzI0Miw0IEBAIGdmbG9hdCB3ZWJraXRfZG9t
X2NsaWVudF9yZWN0X2dldF9oZWlnaHQoV2ViS2l0RE9NQ2xpZW50UmVjdCogc2VsZikKICAgICBn
X3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0NMSUVOVF9SRUNUKHNlbGYpLCAwKTsK
ICAgICByZXR1cm4gV2ViS2l0Ojpjb3JlKHNlbGYpLT5oZWlnaHQoKTsKIH0KK0dfR05VQ19FTkRf
SUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
Q2xpZW50UmVjdC5oCmluZGV4IGI1OWQ5NzBlMGY1Li5iNDkxZDIyYWE4MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUNsaWVudFJlY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdC5oCkBAIC00NSw3ICs0NSw3IEBA
IHN0cnVjdCBfV2ViS2l0RE9NQ2xpZW50UmVjdENsYXNzIHsKICAgICBXZWJLaXRET01PYmplY3RD
bGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVD
QVRFRCBHVHlwZQogd2Via2l0X2RvbV9jbGllbnRfcmVjdF9nZXRfdHlwZSh2b2lkKTsKIAogLyoq
CkBAIC01Nyw4ICs1NywxMCBAQCB3ZWJraXRfZG9tX2NsaWVudF9yZWN0X2dldF90eXBlKHZvaWQp
OwogICogUmV0dXJuczogQSAjZ2Zsb2F0CiAgKgogICogU2luY2U6IDIuMTgKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnZmxvYXQKK1dFQktJVF9ERVBSRUNBVEVEIGdmbG9hdAogd2Via2l0X2RvbV9jbGllbnRf
cmVjdF9nZXRfdG9wKFdlYktpdERPTUNsaWVudFJlY3QqIHNlbGYpOwogCiAvKioKQEAgLTcwLDgg
KzcyLDEwIEBAIHdlYmtpdF9kb21fY2xpZW50X3JlY3RfZ2V0X3RvcChXZWJLaXRET01DbGllbnRS
ZWN0KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2dmbG9hdAogICoKICAqIFNpbmNlOiAyLjE4Cisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2Zsb2F0CitXRUJLSVRfREVQUkVDQVRFRCBnZmxvYXQKIHdlYmtpdF9k
b21fY2xpZW50X3JlY3RfZ2V0X3JpZ2h0KFdlYktpdERPTUNsaWVudFJlY3QqIHNlbGYpOwogCiAv
KioKQEAgLTgzLDggKzg3LDEwIEBAIHdlYmtpdF9kb21fY2xpZW50X3JlY3RfZ2V0X3JpZ2h0KFdl
YktpdERPTUNsaWVudFJlY3QqIHNlbGYpOwogICogUmV0dXJuczogQSAjZ2Zsb2F0CiAgKgogICog
U2luY2U6IDIuMTgKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnZmxvYXQKK1dFQktJVF9ERVBSRUNBVEVEIGdm
bG9hdAogd2Via2l0X2RvbV9jbGllbnRfcmVjdF9nZXRfYm90dG9tKFdlYktpdERPTUNsaWVudFJl
Y3QqIHNlbGYpOwogCiAvKioKQEAgLTk2LDggKzEwMiwxMCBAQCB3ZWJraXRfZG9tX2NsaWVudF9y
ZWN0X2dldF9ib3R0b20oV2ViS2l0RE9NQ2xpZW50UmVjdCogc2VsZik7CiAgKiBSZXR1cm5zOiBB
ICNnZmxvYXQKICAqCiAgKiBTaW5jZTogMi4xOAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdmbG9hdAorV0VC
S0lUX0RFUFJFQ0FURUQgZ2Zsb2F0CiB3ZWJraXRfZG9tX2NsaWVudF9yZWN0X2dldF9sZWZ0KFdl
YktpdERPTUNsaWVudFJlY3QqIHNlbGYpOwogCiAvKioKQEAgLTEwOSw4ICsxMTcsMTAgQEAgd2Vi
a2l0X2RvbV9jbGllbnRfcmVjdF9nZXRfbGVmdChXZWJLaXRET01DbGllbnRSZWN0KiBzZWxmKTsK
ICAqIFJldHVybnM6IEEgI2dmbG9hdAogICoKICAqIFNpbmNlOiAyLjE4CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2Zsb2F0CitXRUJLSVRfREVQUkVDQVRFRCBnZmxvYXQKIHdlYmtpdF9kb21fY2xpZW50X3Jl
Y3RfZ2V0X3dpZHRoKFdlYktpdERPTUNsaWVudFJlY3QqIHNlbGYpOwogCiAvKioKQEAgLTEyMiw4
ICsxMzIsMTAgQEAgd2Via2l0X2RvbV9jbGllbnRfcmVjdF9nZXRfd2lkdGgoV2ViS2l0RE9NQ2xp
ZW50UmVjdCogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnZmxvYXQKICAqCiAgKiBTaW5jZTogMi4x
OAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdmbG9hdAorV0VCS0lUX0RFUFJFQ0FURUQgZ2Zsb2F0CiB3ZWJr
aXRfZG9tX2NsaWVudF9yZWN0X2dldF9oZWlnaHQoV2ViS2l0RE9NQ2xpZW50UmVjdCogc2VsZik7
CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUNsaWVudFJlY3RMaXN0LmNwcAppbmRleCAwNzFjNmU0ZTI4My4uOTUwMzZhZDg0YjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01DbGllbnRSZWN0TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0LmNw
cApAQCAtMzgsNiArMzgsOCBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NQ2xpZW50UmVjdExp
c3RQcml2YXRlIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6RE9NUmVjdExpc3Q+IGNvcmVPYmplY3Q7
CiB9IFdlYktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0ZTsKIAorR19HTlVDX0JFR0lOX0lHTk9S
RV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01DbGllbnRS
ZWN0TGlzdCoga2l0KFdlYkNvcmU6OkRPTVJlY3RMaXN0KiBvYmopCkBAIC0xNDQsMyArMTQ2LDQg
QEAgZ3Vsb25nIHdlYmtpdF9kb21fY2xpZW50X3JlY3RfbGlzdF9nZXRfbGVuZ3RoKFdlYktpdERP
TUNsaWVudFJlY3RMaXN0KiBzZWxmKQogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9E
T01fSVNfQ0xJRU5UX1JFQ1RfTElTVChzZWxmKSwgMCk7CiAgICAgcmV0dXJuIFdlYktpdDo6Y29y
ZShzZWxmKS0+bGVuZ3RoKCk7CiB9CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdC5oCmlu
ZGV4IGViOWE0Zjc5ZTRiLi4yZDljMDVmZjhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RM
aXN0LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0
IF9XZWJLaXRET01DbGllbnRSZWN0TGlzdENsYXNzIHsKICAgICBXZWJLaXRET01PYmplY3RDbGFz
cyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRF
RCBHVHlwZQogd2Via2l0X2RvbV9jbGllbnRfcmVjdF9saXN0X2dldF90eXBlKHZvaWQpOwogCiAv
KioKQEAgLTU3LDggKzU3LDEwIEBAIHdlYmtpdF9kb21fY2xpZW50X3JlY3RfbGlzdF9nZXRfdHlw
ZSh2b2lkKTsKICAqIFJldHVybnM6IEEgI2d1bG9uZwogICoKICAqIFNpbmNlOiAyLjE4CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQUkVDQVRFRCBndWxvbmcKIHdlYmtpdF9kb21f
Y2xpZW50X3JlY3RfbGlzdF9nZXRfbGVuZ3RoKFdlYktpdERPTUNsaWVudFJlY3RMaXN0KiBzZWxm
KTsKIAogLyoqCkBAIC03MSw4ICs3MywxMCBAQCB3ZWJraXRfZG9tX2NsaWVudF9yZWN0X2xpc3Rf
Z2V0X2xlbmd0aChXZWJLaXRET01DbGllbnRSZWN0TGlzdCogc2VsZik7CiAgKiBSZXR1cm5zOiAo
dHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUNsaWVudFJlY3QKICAqCiAgKiBTaW5jZTogMi4x
OAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUNsaWVudFJlY3QqIHdlYmtpdF9kb21fY2xpZW50
X3JlY3RfbGlzdF9pdGVtKFdlYktpdERPTUNsaWVudFJlY3RMaXN0KiBzZWxmLCBndWxvbmcgaW5k
ZXgpOworV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NQ2xpZW50UmVjdCogd2Via2l0X2RvbV9j
bGllbnRfcmVjdF9saXN0X2l0ZW0oV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHNlbGYsIGd1bG9u
ZyBpbmRleCk7CiAKIEdfRU5EX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Db21tZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01Db21tZW50LmNwcAppbmRleCBlZGU5ZTBjODhiZC4uZWFiMzRmYTIyMTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01Db21tZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ29tbWVudC5jcHAKQEAgLTM1LDYgKzM1LDgg
QEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitH
X0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IFdlYktpdERPTUNvbW1lbnQqIGtpdChXZWJDb3JlOjpDb21tZW50KiBvYmopCkBAIC0xMDIsMyAr
MTA0LDQgQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV9jb21tZW50X2luaXQoV2ViS2l0RE9NQ29t
bWVudCogcmVxdWVzdCkKICAgICBVTlVTRURfUEFSQU0ocmVxdWVzdCk7CiB9CiAKK0dfR05VQ19F
TkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Db21tZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
Q29tbWVudC5oCmluZGV4IDY2YmZiNjNhNDhlLi5mYzczYWIwMGJjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUNvbW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NQ29tbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBf
V2ViS2l0RE9NQ29tbWVudENsYXNzIHsKICAgICBXZWJLaXRET01DaGFyYWN0ZXJEYXRhQ2xhc3Mg
cGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQg
R1R5cGUKIHdlYmtpdF9kb21fY29tbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogR19FTkRfREVDTFMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01ET01JbXBsZW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NSW1wbGVtZW50
YXRpb24uY3BwCmluZGV4IDQ0NTkyNmUyNDU1Li5mOTFjZjUwYTA2ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TURPTUltcGxlbWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NSW1wbGVtZW50YXRpb24uY3BwCkBA
IC00Miw2ICs0Miw4IEBAIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01ET01JbXBsZW1lbnRhdGlv
blByaXZhdGUgewogICAgIFJlZlB0cjxXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbj4gY29yZU9i
amVjdDsKIH0gV2ViS2l0RE9NRE9NSW1wbGVtZW50YXRpb25Qcml2YXRlOwogCitHX0dOVUNfQkVH
SU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERP
TURPTUltcGxlbWVudGF0aW9uKiBraXQoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb24qIG9iaikK
QEAgLTE4MSwzICsxODMsNCBAQCBXZWJLaXRET01IVE1MRG9jdW1lbnQqIHdlYmtpdF9kb21fZG9t
X2ltcGxlbWVudGF0aW9uX2NyZWF0ZV9odG1sX2RvY3VtZW50KFdlYktpdAogICAgIHJldHVybiBX
ZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVf
REVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTUltcGxlbWVudGF0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
RE9NSW1wbGVtZW50YXRpb24uaAppbmRleCAwZTkyZTgxZDU1Ny4uMmVjMDQyZmQ4ZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01ET01JbXBsZW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01JbXBsZW1lbnRhdGlv
bi5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NRE9NSW1wbGVtZW50YXRpb25D
bGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VC
S0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fZG9tX2lt
cGxlbWVudGF0aW9uX2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTU1LDggKzU1LDEwIEBAIHdl
YmtpdF9kb21fZG9tX2ltcGxlbWVudGF0aW9uX2dldF90eXBlKHZvaWQpOwogICogQHZlcnNpb246
IEEgI2djaGFyCiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Ym9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZG9tX2ltcGxl
bWVudGF0aW9uX2hhc19mZWF0dXJlKFdlYktpdERPTURPTUltcGxlbWVudGF0aW9uKiBzZWxmLCBj
b25zdCBnY2hhciogZmVhdHVyZSwgY29uc3QgZ2NoYXIqIHZlcnNpb24pOwogCiAvKioKQEAgLTY4
LDggKzcwLDEwIEBAIHdlYmtpdF9kb21fZG9tX2ltcGxlbWVudGF0aW9uX2hhc19mZWF0dXJlKFdl
YktpdERPTURPTUltcGxlbWVudGF0aW9uKiBzZWxmLCBjb25zCiAgKiBAZXJyb3I6ICNHRXJyb3IK
ICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTURvY3VtZW50VHlw
ZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTURvY3VtZW50VHlwZSoKK1dFQktJVF9ERVBSRUNB
VEVEIFdlYktpdERPTURvY3VtZW50VHlwZSoKIHdlYmtpdF9kb21fZG9tX2ltcGxlbWVudGF0aW9u
X2NyZWF0ZV9kb2N1bWVudF90eXBlKFdlYktpdERPTURPTUltcGxlbWVudGF0aW9uKiBzZWxmLCBj
b25zdCBnY2hhciogcXVhbGlmaWVkTmFtZSwgY29uc3QgZ2NoYXIqIHB1YmxpY0lkLCBjb25zdCBn
Y2hhciogc3lzdGVtSWQsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC04MSw4ICs4NSwxMCBA
QCB3ZWJraXRfZG9tX2RvbV9pbXBsZW1lbnRhdGlvbl9jcmVhdGVfZG9jdW1lbnRfdHlwZShXZWJL
aXRET01ET01JbXBsZW1lbnRhdGlvbiogcwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0
dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Eb2N1bWVudAorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIFdlYktpdERPTURvY3VtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRG9jdW1l
bnQqCiB3ZWJraXRfZG9tX2RvbV9pbXBsZW1lbnRhdGlvbl9jcmVhdGVfZG9jdW1lbnQoV2ViS2l0
RE9NRE9NSW1wbGVtZW50YXRpb24qIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lc3BhY2VVUkksIGNv
bnN0IGdjaGFyKiBxdWFsaWZpZWROYW1lLCBXZWJLaXRET01Eb2N1bWVudFR5cGUqIGRvY3R5cGUs
IEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC05Myw4ICs5OSwxMCBAQCB3ZWJraXRfZG9tX2Rv
bV9pbXBsZW1lbnRhdGlvbl9jcmVhdGVfZG9jdW1lbnQoV2ViS2l0RE9NRE9NSW1wbGVtZW50YXRp
b24qIHNlbGYsCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
ZnVsbCk6IEEgI1dlYktpdERPTUNTU1N0eWxlU2hlZXQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRE
T01DU1NTdHlsZVNoZWV0KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NQ1NTU3R5bGVTaGVl
dCoKIHdlYmtpdF9kb21fZG9tX2ltcGxlbWVudGF0aW9uX2NyZWF0ZV9jc3Nfc3R5bGVfc2hlZXQo
V2ViS2l0RE9NRE9NSW1wbGVtZW50YXRpb24qIHNlbGYsIGNvbnN0IGdjaGFyKiB0aXRsZSwgY29u
c3QgZ2NoYXIqIG1lZGlhLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTAzLDggKzExMSwx
MCBAQCB3ZWJraXRfZG9tX2RvbV9pbXBsZW1lbnRhdGlvbl9jcmVhdGVfY3NzX3N0eWxlX3NoZWV0
KFdlYktpdERPTURPTUltcGxlbWVudGF0aW9uKgogICogQHRpdGxlOiBBICNnY2hhcgogICoKICAq
IFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NSFRNTERvY3VtZW50CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTERvY3VtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2Vi
S2l0RE9NSFRNTERvY3VtZW50Kgogd2Via2l0X2RvbV9kb21faW1wbGVtZW50YXRpb25fY3JlYXRl
X2h0bWxfZG9jdW1lbnQoV2ViS2l0RE9NRE9NSW1wbGVtZW50YXRpb24qIHNlbGYsIGNvbnN0IGdj
aGFyKiB0aXRsZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NU2VsZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01ET01TZWxlY3Rpb24uY3BwCmluZGV4IGY4NWYyNTQ1NTY5Li5kMDk0N2U0NmIz
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTURPTVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVNlbGVjdGlv
bi5jcHAKQEAgLTM5LDYgKzM5LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTURPTVNlbGVj
dGlvblByaXZhdGUgewogICAgIFJlZlB0cjxXZWJDb3JlOjpET01TZWxlY3Rpb24+IGNvcmVPYmpl
Y3Q7CiB9IFdlYktpdERPTURPTVNlbGVjdGlvblByaXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05P
UkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NRE9NU2Vs
ZWN0aW9uKiBraXQoV2ViQ29yZTo6RE9NU2VsZWN0aW9uKiBvYmopCkBAIC01MjksMyArNTMxLDQg
QEAgZ3Vsb25nIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfZXh0ZW50X29mZnNldChXZWJL
aXRET01ET01TZWxlY3Rpb24qIHNlbGYpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorR19HTlVD
X0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVNlbGVjdGlvbi5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTURPTVNlbGVjdGlvbi5oCmluZGV4IGFlNTU4Yjk0NGEzLi45Y2EwN2VmYTMxNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTURPTVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01TZWxlY3Rpb24uaApAQCAt
NDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTURPTVNlbGVjdGlvbkNsYXNzIHsKICAgICBX
ZWJLaXRET01PYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBl
CitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2dldF90
eXBlKHZvaWQpOwogCiAvKioKQEAgLTU1LDggKzU1LDEwIEBAIHdlYmtpdF9kb21fZG9tX3NlbGVj
dGlvbl9nZXRfdHlwZSh2b2lkKTsKICAqIEBvZmZzZXQ6IEEgI2d1bG9uZwogICoKICAqIFNpbmNl
OiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9kb21fc2VsZWN0aW9uX2NvbGxhcHNlKFdlYktpdERPTURPTVNlbGVjdGlvbiogc2Vs
ZiwgV2ViS2l0RE9NTm9kZSogbm9kZSwgZ3Vsb25nIG9mZnNldCk7CiAKIC8qKgpAQCAtNjUsOCAr
NjcsMTAgQEAgd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2NvbGxhcHNlKFdlYktpdERPTURPTVNl
bGVjdGlvbiogc2VsZiwgV2ViS2l0RE9NTm9kZSogbm8KICAqIEBlcnJvcjogI0dFcnJvcgogICoK
ICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2NvbGxhcHNlX3RvX2VuZChXZWJLaXRET01E
T01TZWxlY3Rpb24qIHNlbGYsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC03NSw4ICs3OSwx
MCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fY29sbGFwc2VfdG9fZW5kKFdlYktpdERPTURP
TVNlbGVjdGlvbiogc2VsZiwgR0Vycm9yKiogZQogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICog
U2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fY29sbGFwc2VfdG9fc3RhcnQoV2ViS2l0RE9NRE9N
U2VsZWN0aW9uKiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtODQsOCArOTAsMTAg
QEAgd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2NvbGxhcHNlX3RvX3N0YXJ0KFdlYktpdERPTURP
TVNlbGVjdGlvbiogc2VsZiwgR0Vycm9yKioKICAqIEBzZWxmOiBBICNXZWJLaXRET01ET01TZWxl
Y3Rpb24KICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9kZWxldGVfZnJvbV9kb2N1
bWVudChXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYpOwogCiAvKioKQEAgLTk3LDggKzEwNSwx
MCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZGVsZXRlX2Zyb21fZG9jdW1lbnQoV2ViS2l0
RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2dib29sZWFuCiAgKgogICog
U2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQg
Z2Jvb2xlYW4KIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9jb250YWluc19ub2RlKFdlYktpdERP
TURPTVNlbGVjdGlvbiogc2VsZiwgV2ViS2l0RE9NTm9kZSogbm9kZSwgZ2Jvb2xlYW4gYWxsb3dQ
YXJ0aWFsKTsKIAogLyoqCkBAIC0xMDcsOCArMTE3LDEwIEBAIHdlYmtpdF9kb21fZG9tX3NlbGVj
dGlvbl9jb250YWluc19ub2RlKFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZiwgV2ViS2l0RE9N
Tm9kCiAgKiBAbm9kZTogQSAjV2ViS2l0RE9NTm9kZQogICoKICAqIFNpbmNlOiAyLjE2CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21f
c2VsZWN0aW9uX3NlbGVjdF9hbGxfY2hpbGRyZW4oV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxm
LCBXZWJLaXRET01Ob2RlKiBub2RlKTsKIAogLyoqCkBAIC0xMTksOCArMTMxLDEwIEBAIHdlYmtp
dF9kb21fZG9tX3NlbGVjdGlvbl9zZWxlY3RfYWxsX2NoaWxkcmVuKFdlYktpdERPTURPTVNlbGVj
dGlvbiogc2VsZiwgV2ViS2l0CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBTaW5jZTogMi4x
NgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21fZG9tX3NlbGVjdGlvbl9leHRlbmQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmLCBXZWJL
aXRET01Ob2RlKiBub2RlLCBndWxvbmcgb2Zmc2V0LCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpA
QCAtMTMyLDggKzE0NiwxMCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZXh0ZW5kKFdlYktp
dERPTURPTVNlbGVjdGlvbiogc2VsZiwgV2ViS2l0RE9NTm9kZSogbm9kZQogICogUmV0dXJuczog
KHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01SYW5nZQogICoKICAqIFNpbmNlOiAyLjE2Cisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAg
Ki8KLVdFQktJVF9BUEkgV2ViS2l0RE9NUmFuZ2UqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRE
T01SYW5nZSoKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfcmFuZ2VfYXQoV2ViS2l0RE9N
RE9NU2VsZWN0aW9uKiBzZWxmLCBndWxvbmcgaW5kZXgsIEdFcnJvcioqIGVycm9yKTsKIAogLyoq
CkBAIC0xNDEsOCArMTU3LDEwIEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfcmFuZ2Vf
YXQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmLCBndWxvbmcgaW5kZXgsCiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NRE9NU2VsZWN0aW9uCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rp
b25fcmVtb3ZlX2FsbF9yYW5nZXMoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKIAogLyoq
CkBAIC0xNTEsOCArMTY5LDEwIEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9yZW1vdmVfYWxs
X3JhbmdlcyhXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYpOwogICogQHJhbmdlOiBBICNXZWJL
aXRET01SYW5nZQogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2FkZF9yYW5nZShX
ZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYsIFdlYktpdERPTVJhbmdlKiByYW5nZSk7CiAKIC8q
KgpAQCAtMTY0LDggKzE4NCwxMCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fYWRkX3Jhbmdl
KFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZiwgV2ViS2l0RE9NUmFuZ2UqCiAgKiBAZXh0ZW50
T2Zmc2V0OiBBICNndWxvbmcKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9zZXRf
YmFzZV9hbmRfZXh0ZW50KFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZiwgV2ViS2l0RE9NTm9k
ZSogYmFzZU5vZGUsIGd1bG9uZyBiYXNlT2Zmc2V0LCBXZWJLaXRET01Ob2RlKiBleHRlbnROb2Rl
LCBndWxvbmcgZXh0ZW50T2Zmc2V0KTsKIAogLyoqCkBAIC0xNzUsOCArMTk3LDEwIEBAIHdlYmtp
dF9kb21fZG9tX3NlbGVjdGlvbl9zZXRfYmFzZV9hbmRfZXh0ZW50KFdlYktpdERPTURPTVNlbGVj
dGlvbiogc2VsZiwgV2ViS2l0CiAgKiBAb2Zmc2V0OiBBICNndWxvbmcKICAqCiAgKiBTaW5jZTog
Mi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtp
dF9kb21fZG9tX3NlbGVjdGlvbl9zZXRfcG9zaXRpb24oV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBz
ZWxmLCBXZWJLaXRET01Ob2RlKiBub2RlLCBndWxvbmcgb2Zmc2V0KTsKIAogLyoqCkBAIC0xODQs
OCArMjA4LDEwIEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9zZXRfcG9zaXRpb24oV2ViS2l0
RE9NRE9NU2VsZWN0aW9uKiBzZWxmLCBXZWJLaXRET01Ob2RlCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NRE9NU2VsZWN0aW9uCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZW1wdHko
V2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKIAogLyoqCkBAIC0xOTYsOCArMjIyLDEwIEBA
IHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9lbXB0eShXZWJLaXRET01ET01TZWxlY3Rpb24qIHNl
bGYpOwogICogQGdyYW51bGFyaXR5OiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21f
c2VsZWN0aW9uX21vZGlmeShXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYsIGNvbnN0IGdjaGFy
KiBhbHRlciwgY29uc3QgZ2NoYXIqIGRpcmVjdGlvbiwgY29uc3QgZ2NoYXIqIGdyYW51bGFyaXR5
KTsKIAogLyoqCkBAIC0yMDcsOCArMjM1LDEwIEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9t
b2RpZnkoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmLCBjb25zdCBnY2hhciogYWx0ZXIsCiAg
KiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBTaW5j
ZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogICovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRF
RCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2dldF9hbmNob3Jfbm9k
ZShXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYpOwogCiAvKioKQEAgLTIxOCw4ICsyNDgsMTAg
QEAgd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2dldF9hbmNob3Jfbm9kZShXZWJLaXRET01ET01T
ZWxlY3Rpb24qIHNlbGYpOwogICogUmV0dXJuczogQSAjZ3Vsb25nCiAgKgogICogU2luY2U6IDIu
MTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICAqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Vi
a2l0X2RvbV9kb21fc2VsZWN0aW9uX2dldF9hbmNob3Jfb2Zmc2V0KFdlYktpdERPTURPTVNlbGVj
dGlvbiogc2VsZik7CiAKIC8qKgpAQCAtMjI5LDggKzI2MSwxMCBAQCB3ZWJraXRfZG9tX2RvbV9z
ZWxlY3Rpb25fZ2V0X2FuY2hvcl9vZmZzZXQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsK
ICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQogICoKICAqIFNp
bmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNB
VEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X2ZvY3VzX25v
ZGUoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKIAogLyoqCkBAIC0yNDAsOCArMjc0LDEw
IEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfZm9jdXNfbm9kZShXZWJLaXRET01ET01T
ZWxlY3Rpb24qIHNlbGYpOwogICogUmV0dXJuczogQSAjZ3Vsb25nCiAgKgogICogU2luY2U6IDIu
MTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICAqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Vi
a2l0X2RvbV9kb21fc2VsZWN0aW9uX2dldF9mb2N1c19vZmZzZXQoV2ViS2l0RE9NRE9NU2VsZWN0
aW9uKiBzZWxmKTsKIAogLyoqCkBAIC0yNTEsOCArMjg3LDEwIEBAIHdlYmtpdF9kb21fZG9tX3Nl
bGVjdGlvbl9nZXRfZm9jdXNfb2Zmc2V0KFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZik7CiAg
KiBSZXR1cm5zOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9B
UEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2RvbV9z
ZWxlY3Rpb25fZ2V0X2lzX2NvbGxhcHNlZChXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYpOwog
CiAvKioKQEAgLTI2Miw4ICszMDAsMTAgQEAgd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2dldF9p
c19jb2xsYXBzZWQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKICAqIFJldHVybnM6IEEg
I2d1bG9uZwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ3Vsb25nCitXRUJL
SVRfREVQUkVDQVRFRCBndWxvbmcKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfcmFuZ2Vf
Y291bnQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKIAogLyoqCkBAIC0yNzMsOCArMzEz
LDEwIEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfcmFuZ2VfY291bnQoV2ViS2l0RE9N
RE9NU2VsZWN0aW9uKiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2djaGFyCiAgKgogICogU2luY2U6
IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICAqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgog
d2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2dldF9zZWxlY3Rpb25fdHlwZShXZWJLaXRET01ET01T
ZWxlY3Rpb24qIHNlbGYpOwogCiAvKioKQEAgLTI4NCw4ICszMjYsMTAgQEAgd2Via2l0X2RvbV9k
b21fc2VsZWN0aW9uX2dldF9zZWxlY3Rpb25fdHlwZShXZWJLaXRET01ET01TZWxlY3Rpb24qIHNl
bGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCiAgKgog
ICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RF
UFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfYmFz
ZV9ub2RlKFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZik7CiAKIC8qKgpAQCAtMjk1LDggKzMz
OSwxMCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X2Jhc2Vfbm9kZShXZWJLaXRET01E
T01TZWxlY3Rpb24qIHNlbGYpOwogICogUmV0dXJuczogQSAjZ3Vsb25nCiAgKgogICogU2luY2U6
IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICAqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwog
d2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2dldF9iYXNlX29mZnNldChXZWJLaXRET01ET01TZWxl
Y3Rpb24qIHNlbGYpOwogCiAvKioKQEAgLTMwNiw4ICszNTIsMTAgQEAgd2Via2l0X2RvbV9kb21f
c2VsZWN0aW9uX2dldF9iYXNlX29mZnNldChXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYpOwog
ICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCiAgKgogICogU2lu
Y2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FU
RUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfZXh0ZW50X25v
ZGUoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKIAogLyoqCkBAIC0zMTcsOCArMzY1LDEw
IEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfZXh0ZW50X25vZGUoV2ViS2l0RE9NRE9N
U2VsZWN0aW9uKiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2d1bG9uZwogICoKICAqIFNpbmNlOiAy
LjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQUkVDQVRFRCBndWxvbmcKIHdl
YmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfZXh0ZW50X29mZnNldChXZWJLaXRET01ET01TZWxl
Y3Rpb24qIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVRva2VuTGlz
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NRE9NVG9rZW5MaXN0LmNwcAppbmRleCA5YTkyMTczMmQzYi4uNjVjN2ZiZTI3
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01ET01Ub2tlbkxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01Ub2tlbkxp
c3QuY3BwCkBAIC0zNyw2ICszNyw4IEBAIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01ET01Ub2tl
bkxpc3RQcml2YXRlIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6RE9NVG9rZW5MaXN0PiBjb3JlT2Jq
ZWN0OwogfSBXZWJLaXRET01ET01Ub2tlbkxpc3RQcml2YXRlOwogCitHX0dOVUNfQkVHSU5fSUdO
T1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTURPTVRv
a2VuTGlzdCoga2l0KFdlYkNvcmU6OkRPTVRva2VuTGlzdCogb2JqKQpAQCAtMjgwLDMgKzI4Miw0
IEBAIHZvaWQgd2Via2l0X2RvbV9kb21fdG9rZW5fbGlzdF9zZXRfdmFsdWUoV2ViS2l0RE9NRE9N
VG9rZW5MaXN0KiBzZWxmLCBjb25zdCBnY2hhCiAgICAgaXRlbS0+c2V0VmFsdWUoY29udmVydGVk
VmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NRE9NVG9rZW5MaXN0LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NVG9rZW5MaXN0LmgKaW5kZXggMjIzZjBlMjYz
MDYuLjYwM2RiNzFhNzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NVG9rZW5MaXN0LmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TURPTVRva2VuTGlzdC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NRE9NVG9r
ZW5MaXN0Q2xhc3MgewogICAgIFdlYktpdERPTU9iamVjdENsYXNzIHBhcmVudF9jbGFzczsKIH07
CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9t
X2RvbV90b2tlbl9saXN0X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTU2LDggKzU2LDEwIEBA
IHdlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfZ2V0X3R5cGUodm9pZCk7CiAgKiBSZXR1cm5zOiBB
ICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfaXRlbShXZWJL
aXRET01ET01Ub2tlbkxpc3QqIHNlbGYsIGd1bG9uZyBpbmRleCk7CiAKIC8qKgpAQCAtNjgsOCAr
NzAsMTAgQEAgd2Via2l0X2RvbV9kb21fdG9rZW5fbGlzdF9pdGVtKFdlYktpdERPTURPTVRva2Vu
TGlzdCogc2VsZiwgZ3Vsb25nIGluZGV4KTsKICAqIFJldHVybnM6IEEgI2dib29sZWFuCiAgKgog
ICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfY29udGFpbnMoV2ViS2l0RE9N
RE9NVG9rZW5MaXN0KiBzZWxmLCBjb25zdCBnY2hhciogdG9rZW4pOwogCiAvKioKQEAgLTc5LDgg
KzgzLDEwIEBAIHdlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfY29udGFpbnMoV2ViS2l0RE9NRE9N
VG9rZW5MaXN0KiBzZWxmLCBjb25zdCBnY2hhciogdG9rCiAgKiBALi4uOiBsaXN0IG9mICNnY2hh
ciBlbmRlZCBieSAlTlVMTC4KICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfYWRk
KFdlYktpdERPTURPTVRva2VuTGlzdCogc2VsZiwgR0Vycm9yKiogZXJyb3IsIC4uLik7CiAKIC8q
KgpAQCAtOTAsOCArOTYsMTAgQEAgd2Via2l0X2RvbV9kb21fdG9rZW5fbGlzdF9hZGQoV2ViS2l0
RE9NRE9NVG9rZW5MaXN0KiBzZWxmLCBHRXJyb3IqKiBlcnJvciwgLi4uKTsKICAqIEAuLi46IGxp
c3Qgb2YgI2djaGFyIGVuZGVkIGJ5ICVOVUxMLgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21fdG9r
ZW5fbGlzdF9yZW1vdmUoV2ViS2l0RE9NRE9NVG9rZW5MaXN0KiBzZWxmLCBHRXJyb3IqKiBlcnJv
ciwgLi4uKTsKIAogLyoqCkBAIC0xMDQsOCArMTEyLDEwIEBAIHdlYmtpdF9kb21fZG9tX3Rva2Vu
X2xpc3RfcmVtb3ZlKFdlYktpdERPTURPTVRva2VuTGlzdCogc2VsZiwgR0Vycm9yKiogZXJyb3Is
IC4uCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdF
QktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9t
X2RvbV90b2tlbl9saXN0X3RvZ2dsZShXZWJLaXRET01ET01Ub2tlbkxpc3QqIHNlbGYsIGNvbnN0
IGdjaGFyKiB0b2tlbiwgZ2Jvb2xlYW4gZm9yY2UsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBA
IC0xMTYsOCArMTI2LDEwIEBAIHdlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfdG9nZ2xlKFdlYktp
dERPTURPTVRva2VuTGlzdCogc2VsZiwgY29uc3QgZ2NoYXIqIHRva2VuCiAgKiBAZXJyb3I6ICNH
RXJyb3IKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfcmVwbGFjZShXZWJLaXRE
T01ET01Ub2tlbkxpc3QqIHNlbGYsIGNvbnN0IGdjaGFyKiB0b2tlbiwgY29uc3QgZ2NoYXIqIG5l
d1Rva2VuLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTI3LDggKzEzOSwxMCBAQCB3ZWJr
aXRfZG9tX2RvbV90b2tlbl9saXN0X3JlcGxhY2UoV2ViS2l0RE9NRE9NVG9rZW5MaXN0KiBzZWxm
LCBjb25zdCBnY2hhciogdG9rZQogICogUmV0dXJuczogQSAjZ3Vsb25nCiAgKgogICogU2luY2U6
IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICAqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwog
d2Via2l0X2RvbV9kb21fdG9rZW5fbGlzdF9nZXRfbGVuZ3RoKFdlYktpdERPTURPTVRva2VuTGlz
dCogc2VsZik7CiAKIC8qKgpAQCAtMTM4LDggKzE1MiwxMCBAQCB3ZWJraXRfZG9tX2RvbV90b2tl
bl9saXN0X2dldF9sZW5ndGgoV2ViS2l0RE9NRE9NVG9rZW5MaXN0KiBzZWxmKTsKICAqIFJldHVy
bnM6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnY2hhcioK
K1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb21fdG9rZW5fbGlzdF9nZXRf
dmFsdWUoV2ViS2l0RE9NRE9NVG9rZW5MaXN0KiBzZWxmKTsKIAogLyoqCkBAIC0xNDgsOCArMTY0
LDEwIEBAIHdlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfZ2V0X3ZhbHVlKFdlYktpdERPTURPTVRv
a2VuTGlzdCogc2VsZik7CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICAqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2RvbV90b2tlbl9saXN0X3NldF92YWx1ZShXZWJLaXRET01ET01Ub2tlbkxpc3QqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NV2lu
ZG93LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01ET01XaW5kb3cuY3BwCmluZGV4IDc1ZGZiOTNmYWUxLi45YTMyYWRmMWY5
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTURPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVdpbmRvdy5jcHAK
QEAgLTQ4LDYgKzQ4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTURPTVdpbmRvd1ByaXZh
dGUgewogICAgIFJlZlB0cjxXZWJDb3JlOjpET01XaW5kb3c+IGNvcmVPYmplY3Q7CiB9IFdlYktp
dERPTURPTVdpbmRvd1ByaXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05T
OworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NRE9NV2luZG93KiBraXQoV2ViQ29y
ZTo6RE9NV2luZG93KiBvYmopCkBAIC0xMDU3LDMgKzEwNTksNCBAQCBnYm9vbGVhbiB3ZWJraXRf
ZG9tX2RvbV93aW5kb3dfd2Via2l0X21lc3NhZ2VfaGFuZGxlcnNfcG9zdF9tZXNzYWdlKFdlYktp
dERPTURPTQogCiAgICAgcmV0dXJuIFRSVUU7CiB9CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNB
VElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NV2luZG93LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NV2luZG93LmgKaW5k
ZXggYjU0OGZjYjJmNWQuLmMwZjU0YjhlYzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NV2luZG93LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTURPTVdpbmRvdy5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9N
RE9NV2luZG93Q2xhc3MgewogICAgIFdlYktpdERPTU9iamVjdENsYXNzIHBhcmVudF9jbGFzczsK
IH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRf
ZG9tX2RvbV93aW5kb3dfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTUsOCArNTUsMTAgQEAg
d2Via2l0X2RvbV9kb21fd2luZG93X2dldF90eXBlKHZvaWQpOwogICogUmV0dXJuczogKHRyYW5z
ZmVyIGZ1bGwpOiBBICNXZWJLaXRET01ET01TZWxlY3Rpb24KICAqCiAgKiBTaW5jZTogMi4xNgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
ICovCi1XRUJLSVRfQVBJIFdlYktpdERPTURPTVNlbGVjdGlvbioKK1dFQktJVF9ERVBSRUNBVEVE
IFdlYktpdERPTURPTVNlbGVjdGlvbioKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2VsZWN0
aW9uKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpAQCAtNjQsOCArNjYsMTAgQEAg
d2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zZWxlY3Rpb24oV2ViS2l0RE9NRE9NV2luZG93KiBz
ZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cKICAqCiAgKiBTaW5jZTogMi4x
NgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21fZG9tX3dpbmRvd19mb2N1cyhXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAvKioKQEAg
LTczLDggKzc3LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19mb2N1cyhXZWJLaXRET01ET01X
aW5kb3cqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdwogICoKICAqIFNp
bmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9kb21fd2luZG93X2JsdXIoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAog
LyoqCkBAIC04Miw4ICs4OCwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfYmx1cihXZWJLaXRE
T01ET01XaW5kb3cqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdwogICoK
ICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9kb21fd2luZG93X2Nsb3NlKFdlYktpdERPTURPTVdpbmRvdyogc2Vs
Zik7CiAKIC8qKgpAQCAtOTEsOCArOTksMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X2Nsb3Nl
KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2lu
ZG93CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfcHJpbnQoV2ViS2l0RE9NRE9NV2lu
ZG93KiBzZWxmKTsKIAogLyoqCkBAIC0xMDAsOCArMTEwLDEwIEBAIHdlYmtpdF9kb21fZG9tX3dp
bmRvd19wcmludChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTURPTVdpbmRvdwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21fd2luZG93X3N0b3AoV2ViS2l0
RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC0xMTAsOCArMTIyLDEwIEBAIHdlYmtpdF9k
b21fZG9tX3dpbmRvd19zdG9wKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBAbWVzc2Fn
ZTogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19hbGVydChXZWJLaXRE
T01ET01XaW5kb3cqIHNlbGYsIGNvbnN0IGdjaGFyKiBtZXNzYWdlKTsKIAogLyoqCkBAIC0xMjIs
OCArMTM2LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19hbGVydChXZWJLaXRET01ET01XaW5k
b3cqIHNlbGYsIGNvbnN0IGdjaGFyKiBtZXNzYWdlKTsKICAqIFJldHVybnM6IEEgI2dib29sZWFu
CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZG9tX3dpbmRvd19jb25maXJtKFdlYktpdERP
TURPTVdpbmRvdyogc2VsZiwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UpOwogCiAvKioKQEAgLTEzNSw4
ICsxNTEsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X2NvbmZpcm0oV2ViS2l0RE9NRE9NV2lu
ZG93KiBzZWxmLCBjb25zdCBnY2hhciogbWVzc2FnZSk7CiAgKiBSZXR1cm5zOiBBICNnY2hhcgog
ICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVD
QVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19wcm9tcHQoV2ViS2l0RE9NRE9NV2lu
ZG93KiBzZWxmLCBjb25zdCBnY2hhciogbWVzc2FnZSwgY29uc3QgZ2NoYXIqIGRlZmF1bHRWYWx1
ZSk7CiAKIC8qKgpAQCAtMTUzLDggKzE3MSwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfcHJv
bXB0KFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UsIGNvbgog
ICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRf
QVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9kb21f
d2luZG93X2ZpbmQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBjb25zdCBnY2hhciogc3RyaW5n
LCBnYm9vbGVhbiBjYXNlU2Vuc2l0aXZlLCBnYm9vbGVhbiBiYWNrd2FyZHMsIGdib29sZWFuIHdy
YXAsIGdib29sZWFuIHdob2xlV29yZCwgZ2Jvb2xlYW4gc2VhcmNoSW5GcmFtZXMsIGdib29sZWFu
IHNob3dEaWFsb2cpOwogCiAvKioKQEAgLTE2NCw4ICsxODQsMTAgQEAgd2Via2l0X2RvbV9kb21f
d2luZG93X2ZpbmQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBjb25zdCBnY2hhciogc3RyaW5n
LCBnYm9vbGUKICAqIEB5OiBBICNnZG91YmxlCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvbV93aW5k
b3dfc2Nyb2xsX2J5KFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgZ2RvdWJsZSB4LCBnZG91Ymxl
IHkpOwogCiAvKioKQEAgLTE3NSw4ICsxOTcsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X3Nj
cm9sbF9ieShXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGdkb3VibGUgeCwgZ2RvdWJsZSB5KTsK
ICAqIEB5OiBBICNnZG91YmxlCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfc2Nyb2xs
X3RvKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgZ2RvdWJsZSB4LCBnZG91YmxlIHkpOwogCiAv
KioKQEAgLTE4Niw4ICsyMTAsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X3Njcm9sbF90byhX
ZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGdkb3VibGUgeCwgZ2RvdWJsZSB5KTsKICAqIEB5OiBB
ICNnZmxvYXQKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19tb3ZlX2J5KFdlYktpdERP
TURPTVdpbmRvdyogc2VsZiwgZ2Zsb2F0IHgsIGdmbG9hdCB5KTsKIAogLyoqCkBAIC0xOTcsOCAr
MjIzLDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19tb3ZlX2J5KFdlYktpdERPTURPTVdpbmRv
dyogc2VsZiwgZ2Zsb2F0IHgsIGdmbG9hdCB5KTsKICAqIEB5OiBBICNnZmxvYXQKICAqCiAgKiBT
aW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21fZG9tX3dpbmRvd19tb3ZlX3RvKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwg
Z2Zsb2F0IHgsIGdmbG9hdCB5KTsKIAogLyoqCkBAIC0yMDgsOCArMjM2LDEwIEBAIHdlYmtpdF9k
b21fZG9tX3dpbmRvd19tb3ZlX3RvKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgZ2Zsb2F0IHgs
IGdmbG9hdCB5KTsKICAqIEB5OiBBICNnZmxvYXQKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3dp
bmRvd19yZXNpemVfYnkoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBnZmxvYXQgeCwgZ2Zsb2F0
IHkpOwogCiAvKioKQEAgLTIxOSw4ICsyNDksMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X3Jl
c2l6ZV9ieShXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGdmbG9hdCB4LCBnZmxvYXQgeSk7CiAg
KiBAaGVpZ2h0OiBBICNnZmxvYXQKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19yZXNp
emVfdG8oV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBnZmxvYXQgd2lkdGgsIGdmbG9hdCBoZWln
aHQpOwogCiAvKioKQEAgLTIzMiw4ICsyNjQsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X3Jl
c2l6ZV90byhXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGdmbG9hdCB3aWR0aCwgZ2Zsb2F0IGgK
ICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJh
dGlvbgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NQ1NTU3R5
bGVEZWNsYXJhdGlvbioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUNTU1N0eWxlRGVjbGFy
YXRpb24qCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2NvbXB1dGVkX3N0eWxlKFdlYktpdERP
TURPTVdpbmRvdyogc2VsZiwgV2ViS2l0RE9NRWxlbWVudCogZWxlbWVudCwgY29uc3QgZ2NoYXIq
IHBzZXVkb0VsZW1lbnQpOwogCiAvKioKQEAgLTI0MSw4ICsyNzUsMTAgQEAgd2Via2l0X2RvbV9k
b21fd2luZG93X2dldF9jb21wdXRlZF9zdHlsZShXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIFdl
YktpdERPTUVsZW0KICAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cKICAqCiAgKiBTaW5j
ZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21fZG9tX3dpbmRvd19jYXB0dXJlX2V2ZW50cyhXZWJLaXRET01ET01XaW5kb3cqIHNl
bGYpOwogCiAvKioKQEAgLTI1MCw4ICsyODYsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X2Nh
cHR1cmVfZXZlbnRzKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NRE9NV2luZG93CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfcmVsZWFzZV9l
dmVudHMoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC0yNjEsOCArMjk5LDEw
IEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19yZWxlYXNlX2V2ZW50cyhXZWJLaXRET01ET01XaW5k
b3cqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVt
ZW50CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50
KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZG9tX3dp
bmRvd19nZXRfZnJhbWVfZWxlbWVudChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAvKioK
QEAgLTI3Miw4ICszMTIsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9mcmFtZV9lbGVt
ZW50KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgog
ICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBS
RUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X29mZnNjcmVlbl9idWZm
ZXJpbmcoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC0yODMsOCArMzI1LDEw
IEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfb2Zmc2NyZWVuX2J1ZmZlcmluZyhXZWJLaXRE
T01ET01XaW5kb3cqIHNlbGYpOwogICogUmV0dXJuczogQSAjZ2xvbmcKICAqCiAgKiBTaW5jZTog
Mi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogICovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Vi
a2l0X2RvbV9kb21fd2luZG93X2dldF9vdXRlcl9oZWlnaHQoV2ViS2l0RE9NRE9NV2luZG93KiBz
ZWxmKTsKIAogLyoqCkBAIC0yOTQsOCArMzM4LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19n
ZXRfb3V0ZXJfaGVpZ2h0KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiBB
ICNnbG9uZwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJ
VF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X291dGVyX3dpZHRo
KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpAQCAtMzA1LDggKzM1MSwxMCBAQCB3
ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X291dGVyX3dpZHRoKFdlYktpdERPTURPTVdpbmRvdyog
c2VsZik7CiAgKiBSZXR1cm5zOiBBICNnbG9uZwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdF
QktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2RvbV93
aW5kb3dfZ2V0X2lubmVyX2hlaWdodChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAvKioK
QEAgLTMxNiw4ICszNjQsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9pbm5lcl9oZWln
aHQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2dsb25nCiAgKgog
ICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQg
Z2xvbmcKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfaW5uZXJfd2lkdGgoV2ViS2l0RE9NRE9N
V2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC0zMjcsOCArMzc3LDEwIEBAIHdlYmtpdF9kb21fZG9t
X3dpbmRvd19nZXRfaW5uZXJfd2lkdGgoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIFJl
dHVybnM6IEEgI2dsb25nCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnbG9u
ZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2Ny
ZWVuX3goV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC0zMzgsOCArMzkwLDEw
IEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2NyZWVuX3goV2ViS2l0RE9NRE9NV2luZG93
KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2dsb25nCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwot
V0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fZG9t
X3dpbmRvd19nZXRfc2NyZWVuX3koV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBA
IC0zNDksOCArNDAzLDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2NyZWVuX3koV2Vi
S2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2dsb25nCiAgKgogICogU2lu
Y2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcK
IHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2NyZWVuX2xlZnQoV2ViS2l0RE9NRE9NV2luZG93
KiBzZWxmKTsKIAogLyoqCkBAIC0zNjAsOCArNDE2LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRv
d19nZXRfc2NyZWVuX2xlZnQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIFJldHVybnM6
IEEgI2dsb25nCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnbG9uZworV0VC
S0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2NyZWVuX3Rv
cChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAvKioKQEAgLTM3MSw4ICs0MjksMTAgQEAg
d2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zY3JlZW5fdG9wKFdlYktpdERPTURPTVdpbmRvdyog
c2VsZik7CiAgKiBSZXR1cm5zOiBBICNnbG9uZwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdF
QktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2RvbV93
aW5kb3dfZ2V0X3Njcm9sbF94KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpAQCAt
MzgyLDggKzQ0MiwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3Njcm9sbF94KFdlYktp
dERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnbG9uZwogICoKICAqIFNpbmNl
OiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3
ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3Njcm9sbF95KFdlYktpdERPTURPTVdpbmRvdyogc2Vs
Zik7CiAKIC8qKgpAQCAtMzkzLDggKzQ1NSwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0
X3Njcm9sbF95KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnbG9u
ZwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBS
RUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3BhZ2VfeF9vZmZzZXQoV2Vi
S2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC00MDQsOCArNDY4LDEwIEBAIHdlYmtp
dF9kb21fZG9tX3dpbmRvd19nZXRfcGFnZV94X29mZnNldChXZWJLaXRET01ET01XaW5kb3cqIHNl
bGYpOwogICogUmV0dXJuczogQSAjZ2xvbmcKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJL
SVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9kb21fd2lu
ZG93X2dldF9wYWdlX3lfb2Zmc2V0KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpA
QCAtNDE1LDggKzQ4MSwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3BhZ2VfeV9vZmZz
ZXQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2dib29sZWFuCiAg
KgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJF
Q0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfY2xvc2VkKFdlYktpdERP
TURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpAQCAtNDI2LDggKzQ5NCwxMCBAQCB3ZWJraXRfZG9t
X2RvbV93aW5kb3dfZ2V0X2Nsb3NlZChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogICogUmV0
dXJuczogQSAjZ3Vsb25nCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBndWxv
bmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9s
ZW5ndGgoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC00MzcsOCArNTA3LDEw
IEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfbGVuZ3RoKFdlYktpdERPTURPTVdpbmRvdyog
c2VsZik7CiAgKiBSZXR1cm5zOiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9t
X3dpbmRvd19nZXRfbmFtZShXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAvKioKQEAgLTQ0
Nyw4ICs1MTksMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9uYW1lKFdlYktpdERPTURP
TVdpbmRvdyogc2VsZik7CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICAqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2RvbV93aW5kb3dfc2V0X25hbWUoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBjb25zdCBnY2hh
ciogdmFsdWUpOwogCiAvKioKQEAgLTQ1OCw4ICs1MzIsMTAgQEAgd2Via2l0X2RvbV9kb21fd2lu
ZG93X3NldF9uYW1lKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVl
KTsKICAqIFJldHVybnM6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lU
X0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb21fd2lu
ZG93X2dldF9zdGF0dXMoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC00Njgs
OCArNTQ0LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc3RhdHVzKFdlYktpdERPTURP
TVdpbmRvdyogc2VsZik7CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICAqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2RvbV93aW5kb3dfc2V0X3N0YXR1cyhXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNDc5LDggKzU1NywxMCBAQCB3ZWJraXRfZG9tX2RvbV93
aW5kb3dfc2V0X3N0YXR1cyhXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGNvbnN0IGdjaGFyKiB2
YWx1ZSk7CiAgKiBSZXR1cm5zOiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9t
X3dpbmRvd19nZXRfZGVmYXVsdF9zdGF0dXMoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAog
LyoqCkBAIC00ODksOCArNTY5LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfZGVmYXVs
dF9zdGF0dXMoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2NoYXIK
ICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19zZXRfZGVmYXVsdF9zdGF0dXMoV2ViS2l0
RE9NRE9NV2luZG93KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTUwMCw4
ICs1ODIsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X3NldF9kZWZhdWx0X3N0YXR1cyhXZWJL
aXRET01ET01XaW5kb3cqIHNlbGYsIGNvbnN0IGdjaGFyKgogICogUmV0dXJuczogKHRyYW5zZmVy
IGZ1bGwpOiBBICNXZWJLaXRET01ET01XaW5kb3cKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1X
RUJLSVRfQVBJIFdlYktpdERPTURPTVdpbmRvdyoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERP
TURPTVdpbmRvdyoKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2VsZihXZWJLaXRET01ET01X
aW5kb3cqIHNlbGYpOwogCiAvKioKQEAgLTUxMSw4ICs1OTUsMTAgQEAgd2Via2l0X2RvbV9kb21f
d2luZG93X2dldF9zZWxmKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiAo
dHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTURPTVdpbmRvdwogICoKICAqIFNpbmNlOiAyLjE2
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAgKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRE9NV2luZG93KgorV0VCS0lUX0RFUFJFQ0FURUQg
V2ViS2l0RE9NRE9NV2luZG93Kgogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF93aW5kb3coV2Vi
S2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC01MjIsOCArNjA4LDEwIEBAIHdlYmtp
dF9kb21fZG9tX3dpbmRvd19nZXRfd2luZG93KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAg
KiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTURPTVdpbmRvdwogICoKICAq
IFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRE9NV2luZG93KgorV0VCS0lU
X0RFUFJFQ0FURUQgV2ViS2l0RE9NRE9NV2luZG93Kgogd2Via2l0X2RvbV9kb21fd2luZG93X2dl
dF9mcmFtZXMoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC01MzMsOCArNjIx
LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfZnJhbWVzKFdlYktpdERPTURPTVdpbmRv
dyogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTURPTVdp
bmRvdwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRE9NV2lu
ZG93KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRE9NV2luZG93Kgogd2Via2l0X2RvbV9k
b21fd2luZG93X2dldF9vcGVuZXIoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBA
IC01NDQsOCArNjM0LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfb3BlbmVyKFdlYktp
dERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dl
YktpdERPTURPTVdpbmRvdwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgV2Vi
S2l0RE9NRE9NV2luZG93KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRE9NV2luZG93Kgog
d2Via2l0X2RvbV9kb21fd2luZG93X2dldF9wYXJlbnQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxm
KTsKIAogLyoqCkBAIC01NTUsOCArNjQ3LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRf
cGFyZW50KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
ZnVsbCk6IEEgI1dlYktpdERPTURPTVdpbmRvdwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdF
QktJVF9BUEkgV2ViS2l0RE9NRE9NV2luZG93KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9N
RE9NV2luZG93Kgogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF90b3AoV2ViS2l0RE9NRE9NV2lu
ZG93KiBzZWxmKTsKIAogLyoqCkBAIC01NjYsOCArNjYwLDEwIEBAIHdlYmtpdF9kb21fZG9tX3dp
bmRvd19nZXRfdG9wKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJh
bnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgogICogU2luY2U6IDIuMTYKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAq
LwotV0VCS0lUX0FQSSBXZWJLaXRET01Eb2N1bWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktp
dERPTURvY3VtZW50Kgogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9kb2N1bWVudChXZWJLaXRE
T01ET01XaW5kb3cqIHNlbGYpOwogCiAvKioKQEAgLTU3Nyw4ICs2NzMsMTAgQEAgd2Via2l0X2Rv
bV9kb21fd2luZG93X2dldF9kb2N1bWVudChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogICog
UmV0dXJuczogQSAjZ2RvdWJsZQogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkg
Z2RvdWJsZQorV0VCS0lUX0RFUFJFQ0FURUQgZ2RvdWJsZQogd2Via2l0X2RvbV9kb21fd2luZG93
X2dldF9kZXZpY2VfcGl4ZWxfcmF0aW8oV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoq
CkBAIC01ODgsOCArNjg2LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfZGV2aWNlX3Bp
eGVsX3JhdGlvKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnbG9u
ZwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBS
RUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X29yaWVudGF0aW9uKFdlYktp
dERPTURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpAQCAtNjAxLDggKzcwMSwxMCBAQCB3ZWJraXRf
ZG9tX2RvbV93aW5kb3dfZ2V0X29yaWVudGF0aW9uKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7
CiAgKiBSZXR1cm5zOiBXaGV0aGVyIHRoZSBtZXNzYWdlIHdhcyBzdWNjZXNzZnVsbHkgc2VudC4K
ICAqCiAgKiBTaW5jZTogMi44CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBS
RUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfd2Via2l0X21lc3NhZ2VfaGFu
ZGxlcnNfcG9zdF9tZXNzYWdlKFdlYktpdERPTURPTVdpbmRvdyogd2luZG93LCBjb25zdCBnY2hh
ciogaGFuZGxlciwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTURlcHJlY2F0ZWQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURlcHJlY2F0ZWQuY3BwCmluZGV4IGVjNzBm
MzgzNjI4Li4wZDg5MzUyZGIyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURlcHJlY2F0ZWQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01EZXByZWNhdGVkLmNwcApAQCAtMzgsNiArMzgsOCBAQAogI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorR19HTlVDX0JFR0lOX0lH
Tk9SRV9ERVBSRUNBVElPTlM7CisKIGdjaGFyKiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRf
aW5uZXJfaHRtbChXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZikKIHsKICAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0hUTUxfRUxFTUVOVChzZWxmKSwgbnVsbHB0cik7CkBA
IC0zMjUsMyArMzI3LDQgQEAgZ2NoYXIqIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfd2Via2l0X3Jl
Z2lvbl9vdmVyc2V0KFdlYktpdERPTUVsZW1lbnQqKQogICAgIGdfd2FybmluZygiJXM6IENTUyBS
ZWdpb25zIHN1cHBvcnQgaGFzIGJlZW4gcmVtb3ZlZCwgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdGhp
bmcuIiwgX19mdW5jX18pOwogICAgIHJldHVybiBudWxscHRyOwogfQorR19HTlVDX0VORF9JR05P
UkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1l
bnQuaAppbmRleCA0YTgzZTAzNWJkZi4uNjY5YTZhMTY3ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudC5oCkBAIC01NSw4ICs1NSwxMCBAQCB3ZWJraXRfZG9t
X2RvY3VtZW50X2dldF90eXBlKHZvaWQpOwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0
dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVtZW50CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgV2ViS2l0RE9NRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUVsZW1lbnQq
CiB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9lbGVtZW50KFdlYktpdERPTURvY3VtZW50KiBz
ZWxmLCBjb25zdCBnY2hhciogdGFnTmFtZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTY0
LDggKzY2LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2VsZW1lbnQoV2ViS2l0RE9N
RG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB0YWdOYW1lCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERP
TURvY3VtZW50RnJhZ21lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Eb2N1bWVudEZyYWdt
ZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudCoKIHdlYmtp
dF9kb21fZG9jdW1lbnRfY3JlYXRlX2RvY3VtZW50X2ZyYWdtZW50KFdlYktpdERPTURvY3VtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC03NCw4ICs3OCwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2Ny
ZWF0ZV9kb2N1bWVudF9mcmFnbWVudChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBAZGF0
YTogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERP
TVRleHQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01UZXh0KgorV0VCS0lUX0RFUFJFQ0FURUQg
V2ViS2l0RE9NVGV4dCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX3RleHRfbm9kZShXZWJL
aXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGRhdGEpOwogCiAvKioKQEAgLTg0LDgg
KzkwLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX3RleHRfbm9kZShXZWJLaXRET01E
b2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGRhdGEpCiAgKiBAZGF0YTogQSAjZ2NoYXIKICAq
CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUNvbW1lbnQKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBXZWJLaXRET01Db21tZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9N
Q29tbWVudCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2NvbW1lbnQoV2ViS2l0RE9NRG9j
dW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBkYXRhKTsKIAogLyoqCkBAIC05NSw4ICsxMDMsMTAg
QEAgd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfY29tbWVudChXZWJLaXRET01Eb2N1bWVudCog
c2VsZiwgY29uc3QgZ2NoYXIqIGRhdGEpOwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0
dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01DREFUQVNlY3Rpb24KKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBXZWJLaXRET01DREFUQVNlY3Rpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRE
T01DREFUQVNlY3Rpb24qCiB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9jZGF0YV9zZWN0aW9u
KFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogZGF0YSwgR0Vycm9yKiogZXJy
b3IpOwogCiAvKioKQEAgLTEwNyw4ICsxMTcsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9jcmVh
dGVfY2RhdGFfc2VjdGlvbihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGQK
ICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAj
V2ViS2l0RE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9N
UHJvY2Vzc2luZ0luc3RydWN0aW9uKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NUHJvY2Vz
c2luZ0luc3RydWN0aW9uKgogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfcHJvY2Vzc2luZ19p
bnN0cnVjdGlvbihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHRhcmdldCwg
Y29uc3QgZ2NoYXIqIGRhdGEsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xMTgsOCArMTMw
LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX3Byb2Nlc3NpbmdfaW5zdHJ1Y3Rpb24o
V2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAg
KiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUF0dHIKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBXZWJLaXRET01BdHRyKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NQXR0cioKIHdl
YmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2F0dHJpYnV0ZShXZWJLaXRET01Eb2N1bWVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIG5hbWUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xMzAsOCAr
MTQ0LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2F0dHJpYnV0ZShXZWJLaXRET01E
b2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWUsCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
ZnVsbCk6IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCiAgKgogICogU2luY2U6IDIuMTIKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKK1dFQktJVF9ERVBSRUNBVEVE
IFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZWxlbWVu
dHNfYnlfdGFnX25hbWVfYXNfaHRtbF9jb2xsZWN0aW9uKFdlYktpdERPTURvY3VtZW50KiBzZWxm
LCBjb25zdCBnY2hhciogdGFnbmFtZSk7CiAKIC8qKgpAQCAtMTQyLDggKzE1OCwxMCBAQCB3ZWJr
aXRfZG9tX2RvY3VtZW50X2dldF9lbGVtZW50c19ieV90YWdfbmFtZV9hc19odG1sX2NvbGxlY3Rp
b24oV2ViS2l0RE9NRG9jdW1lbgogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczog
KHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0
RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX2Rv
Y3VtZW50X2ltcG9ydF9ub2RlKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBXZWJLaXRET01Ob2Rl
KiBpbXBvcnRlZE5vZGUsIGdib29sZWFuIGRlZXAsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBA
IC0xNTQsOCArMTcyLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfaW1wb3J0X25vZGUoV2ViS2l0
RE9NRG9jdW1lbnQqIHNlbGYsIFdlYktpdERPTU5vZGUqIGltcG9ydGVkCiAgKiBAZXJyb3I6ICNH
RXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUVsZW1l
bnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQg
V2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2VsZW1lbnRfbnMo
V2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lc3BhY2VVUkksIGNvbnN0
IGdjaGFyKiBxdWFsaWZpZWROYW1lLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTY2LDgg
KzE4NiwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9lbGVtZW50X25zKFdlYktpdERP
TURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZQogICogQGVycm9yOiAjR0Vycm9yCiAg
KgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01BdHRyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgV2ViS2l0RE9NQXR0cioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUF0dHIq
CiB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9hdHRyaWJ1dGVfbnMoV2ViS2l0RE9NRG9jdW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lc3BhY2VVUkksIGNvbnN0IGdjaGFyKiBxdWFsaWZp
ZWROYW1lLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTc5LDggKzIwMSwxMCBAQCB3ZWJr
aXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9hdHRyaWJ1dGVfbnMoV2ViS2l0RE9NRG9jdW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiBuYQogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJL
aXRET01IVE1MQ29sbGVjdGlvbgogICoKICAqIFNpbmNlOiAyLjEyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
V2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1M
Q29sbGVjdGlvbioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRzX2J5X3RhZ19uYW1l
X25zX2FzX2h0bWxfY29sbGVjdGlvbihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2No
YXIqIG5hbWVzcGFjZVVSSSwgY29uc3QgZ2NoYXIqIGxvY2FsTmFtZSk7CiAKIC8qKgpAQCAtMTkw
LDggKzIxNCwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9lbGVtZW50c19ieV90YWdfbmFt
ZV9uc19hc19odG1sX2NvbGxlY3Rpb24oV2ViS2l0RE9NRG9jdQogICogQGVycm9yOiAjR0Vycm9y
CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5v
ZGUqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2Fkb3B0X25vZGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNl
bGYsIFdlYktpdERPTU5vZGUqIHNvdXJjZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTIw
MSw4ICsyMjcsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9hZG9wdF9ub2RlKFdlYktpdERPTURv
Y3VtZW50KiBzZWxmLCBXZWJLaXRET01Ob2RlKiBzb3VyY2UsIEcKICAqIEBlcnJvcjogI0dFcnJv
cgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NRXZlbnQKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBXZWJLaXRET01FdmVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERP
TUV2ZW50Kgogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfZXZlbnQoV2ViS2l0RE9NRG9jdW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBldmVudFR5cGUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoq
CkBAIC0yMTAsOCArMjM4LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2V2ZW50KFdl
YktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogZXZlbnRUeXBlCiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEg
I1dlYktpdERPTVJhbmdlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NUmFuZ2UqCitXRUJLSVRf
REVQUkVDQVRFRCBXZWJLaXRET01SYW5nZSoKIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX3Jh
bmdlKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMjQsOCArMjU0LDEwIEBA
IHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX3JhbmdlKFdlYktpdERPTURvY3VtZW50KiBzZWxm
KTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTog
QSAjV2ViS2l0RE9NTm9kZUl0ZXJhdG9yCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZUl0
ZXJhdG9yKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZUl0ZXJhdG9yKgogd2Via2l0
X2RvbV9kb2N1bWVudF9jcmVhdGVfbm9kZV9pdGVyYXRvcihXZWJLaXRET01Eb2N1bWVudCogc2Vs
ZiwgV2ViS2l0RE9NTm9kZSogcm9vdCwgZ3Vsb25nIHdoYXRUb1Nob3csIFdlYktpdERPTU5vZGVG
aWx0ZXIqIGZpbHRlciwgZ2Jvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJlbmNlcywgR0Vycm9yKiog
ZXJyb3IpOwogCiAvKioKQEAgLTIzOCw4ICsyNzAsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9j
cmVhdGVfbm9kZV9pdGVyYXRvcihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgV2ViS2l0RE9NTm9k
ZSoKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTog
QSAjV2ViS2l0RE9NVHJlZVdhbGtlcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTVRyZWVXYWxr
ZXIqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01UcmVlV2Fsa2VyKgogd2Via2l0X2RvbV9k
b2N1bWVudF9jcmVhdGVfdHJlZV93YWxrZXIoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIFdlYktp
dERPTU5vZGUqIHJvb3QsIGd1bG9uZyB3aGF0VG9TaG93LCBXZWJLaXRET01Ob2RlRmlsdGVyKiBm
aWx0ZXIsIGdib29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMsIEdFcnJvcioqIGVycm9yKTsK
IAogLyoqCkBAIC0yNDksOCArMjgzLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX3Ry
ZWVfd2Fsa2VyKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBXZWJLaXRET01Ob2RlKiByCiAgKiBA
cHNldWRvRWxlbWVudDogKGFsbG93LW5vbmUpOiBBICNnY2hhcgogICoKICAqIFJldHVybnM6ICh0
cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24qCitXRUJLSVRfREVQUkVDQVRFRCBX
ZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfb3Zl
cnJpZGVfc3R5bGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIFdlYktpdERPTUVsZW1lbnQqIGVs
ZW1lbnQsIGNvbnN0IGdjaGFyKiBwc2V1ZG9FbGVtZW50KTsKIAogLyoqCkBAIC0yNjEsOCArMjk3
LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X292ZXJyaWRlX3N0eWxlKFdlYktpdERPTURv
Y3VtZW50KiBzZWxmLCBXZWJLaXRET01FbGVtZW50CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAg
KiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTVhQYXRoRXhwcmVzc2lvbgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIFdlYktpdERPTVhQYXRoRXhwcmVzc2lvbioKK1dFQktJVF9ERVBSRUNB
VEVEIFdlYktpdERPTVhQYXRoRXhwcmVzc2lvbioKIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRl
X2V4cHJlc3Npb24oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBleHByZXNz
aW9uLCBXZWJLaXRET01YUGF0aE5TUmVzb2x2ZXIqIHJlc29sdmVyLCBHRXJyb3IqKiBlcnJvcik7
CiAKIC8qKgpAQCAtMjcxLDggKzMwOSwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9l
eHByZXNzaW9uKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogZXhwcgogICog
QG5vZGVSZXNvbHZlcjogQSAjV2ViS2l0RE9NTm9kZQogICoKICAqIFJldHVybnM6ICh0cmFuc2Zl
ciBmdWxsKTogQSAjV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2Vi
S2l0RE9NWFBhdGhOU1Jlc29sdmVyKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NWFBhdGhO
U1Jlc29sdmVyKgogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfbnNfcmVzb2x2ZXIoV2ViS2l0
RE9NRG9jdW1lbnQqIHNlbGYsIFdlYktpdERPTU5vZGUqIG5vZGVSZXNvbHZlcik7CiAKIC8qKgpA
QCAtMjg2LDggKzMyNiwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9uc19yZXNvbHZl
cihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgV2ViS2l0RE9NTm9kZSogbgogICogQGVycm9yOiAj
R0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01YUGF0
aFJlc3VsdAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTVhQYXRoUmVzdWx0KgorV0VCS0lUX0RF
UFJFQ0FURUQgV2ViS2l0RE9NWFBhdGhSZXN1bHQqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2V2YWx1
YXRlKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogZXhwcmVzc2lvbiwgV2Vi
S2l0RE9NTm9kZSogY29udGV4dE5vZGUsIFdlYktpdERPTVhQYXRoTlNSZXNvbHZlciogcmVzb2x2
ZXIsIGd1c2hvcnQgdHlwZSwgV2ViS2l0RE9NWFBhdGhSZXN1bHQqIGluUmVzdWx0LCBHRXJyb3Iq
KiBlcnJvcik7CiAKIC8qKgpAQCAtMjk4LDggKzM0MCwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50
X2V2YWx1YXRlKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogZXhwcmVzc2lv
biwgVwogICogQHZhbHVlOiBBICNnY2hhcgogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJr
aXRfZG9tX2RvY3VtZW50X2V4ZWNfY29tbWFuZChXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29u
c3QgZ2NoYXIqIGNvbW1hbmQsIGdib29sZWFuIHVzZXJJbnRlcmZhY2UsIGNvbnN0IGdjaGFyKiB2
YWx1ZSk7CiAKIC8qKgpAQCAtMzA4LDggKzM1MiwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2V4
ZWNfY29tbWFuZChXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGNvbW1hbmQs
CiAgKiBAY29tbWFuZDogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0
X2RvbV9kb2N1bWVudF9xdWVyeV9jb21tYW5kX2VuYWJsZWQoV2ViS2l0RE9NRG9jdW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiBjb21tYW5kKTsKIAogLyoqCkBAIC0zMTgsOCArMzY0LDEwIEBAIHdl
YmtpdF9kb21fZG9jdW1lbnRfcXVlcnlfY29tbWFuZF9lbmFibGVkKFdlYktpdERPTURvY3VtZW50
KiBzZWxmLCBjb25zdCBnY2hhcioKICAqIEBjb21tYW5kOiBBICNnY2hhcgogICoKICAqIFJldHVy
bnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNB
VEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2RvY3VtZW50X3F1ZXJ5X2NvbW1hbmRfaW5kZXRlcm0o
V2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBjb21tYW5kKTsKIAogLyoqCkBA
IC0zMjgsOCArMzc2LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfcXVlcnlfY29tbWFuZF9pbmRl
dGVybShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqCiAgKiBAY29tbWFuZDog
QSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdi
b29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9kb2N1bWVudF9x
dWVyeV9jb21tYW5kX3N0YXRlKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciog
Y29tbWFuZCk7CiAKIC8qKgpAQCAtMzM4LDggKzM4OCwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50
X3F1ZXJ5X2NvbW1hbmRfc3RhdGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFy
KiBjbwogICogQGNvbW1hbmQ6IEEgI2djaGFyCiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4K
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdl
YmtpdF9kb21fZG9jdW1lbnRfcXVlcnlfY29tbWFuZF9zdXBwb3J0ZWQoV2ViS2l0RE9NRG9jdW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBjb21tYW5kKTsKIAogLyoqCkBAIC0zNDgsOCArNDAwLDEw
IEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfcXVlcnlfY29tbWFuZF9zdXBwb3J0ZWQoV2ViS2l0RE9N
RG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyCiAgKiBAY29tbWFuZDogQSAjZ2NoYXIKICAqCiAg
KiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJF
Q0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2RvY3VtZW50X3F1ZXJ5X2NvbW1hbmRfdmFsdWUoV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBjb21tYW5kKTsKIAogLyoqCkBAIC0z
NTgsOCArNDEyLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfcXVlcnlfY29tbWFuZF92YWx1ZShX
ZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGNvCiAgKiBAZWxlbWVudE5hbWU6
IEEgI2djaGFyCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01O
b2RlTGlzdAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGVMaXN0KgorV0VCS0lUX0RFUFJF
Q0FURUQgV2ViS2l0RE9NTm9kZUxpc3QqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9lbGVtZW50
c19ieV9uYW1lKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogZWxlbWVudE5h
bWUpOwogCiAvKioKQEAgLTM2OSw4ICs0MjUsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRf
ZWxlbWVudHNfYnlfbmFtZShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGUK
ICAqIEB5OiBBICNnbG9uZwogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2Vi
S2l0RE9NRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCitXRUJLSVRf
REVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9kb2N1bWVudF9lbGVtZW50
X2Zyb21fcG9pbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGdsb25nIHgsIGdsb25nIHkpOwog
CiAvKioKQEAgLTM3OCw4ICs0MzYsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9lbGVtZW50X2Zy
b21fcG9pbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGdsb25nIHgsIGdsb25nIHkKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxs
KTogQSAjV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktp
dERPTUNTU1N0eWxlRGVjbGFyYXRpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01DU1NT
dHlsZURlY2xhcmF0aW9uKgogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfY3NzX3N0eWxlX2Rl
Y2xhcmF0aW9uKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0zOTAsOCArNDUw
LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2Nzc19zdHlsZV9kZWNsYXJhdGlvbihX
ZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEg
I1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCiAgKgogICogU2luY2U6IDIuMTIKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERP
TUhUTUxDb2xsZWN0aW9uKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZWxlbWVudHNfYnlfY2xh
c3NfbmFtZV9hc19odG1sX2NvbGxlY3Rpb24oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0
IGdjaGFyKiBjbGFzc05hbWVzKTsKIAogLyoqCkBAIC0zOTksOCArNDYxLDEwIEBAIHdlYmtpdF9k
b21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRzX2J5X2NsYXNzX25hbWVfYXNfaHRtbF9jb2xsZWN0aW9u
KFdlYktpdERPTURvY3VtCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQ
UkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9kb2N1bWVudF9oYXNfZm9jdXMoV2ViS2l0RE9N
RG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTQwOSw4ICs0NzMsMTAgQEAgd2Via2l0X2RvbV9k
b2N1bWVudF9oYXNfZm9jdXMoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQGVsZW1lbnRJ
ZDogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERP
TUVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50KgorV0VCS0lUX0RFUFJF
Q0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRf
YnlfaWQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBlbGVtZW50SWQpOwog
CiAvKioKQEAgLTQyMCw4ICs0ODYsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZWxlbWVu
dF9ieV9pZChXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGVsZW0KICAqIEBl
cnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0
RE9NRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCitXRUJLSVRfREVQ
UkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9kb2N1bWVudF9xdWVyeV9zZWxl
Y3RvcihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHNlbGVjdG9ycywgR0Vy
cm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTQzMSw4ICs0OTksMTAgQEAgd2Via2l0X2RvbV9kb2N1
bWVudF9xdWVyeV9zZWxlY3RvcihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IHNlbGVjdG8KICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBm
dWxsKTogQSAjV2ViS2l0RE9NTm9kZUxpc3QKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2Rl
TGlzdCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGVMaXN0Kgogd2Via2l0X2RvbV9k
b2N1bWVudF9xdWVyeV9zZWxlY3Rvcl9hbGwoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0
IGdjaGFyKiBzZWxlY3RvcnMsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC00NDAsOCArNTEw
LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfcXVlcnlfc2VsZWN0b3JfYWxsKFdlYktpdERPTURv
Y3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogc2VsCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9j
dW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTURvY3Vt
ZW50VHlwZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTURvY3VtZW50VHlwZSoKK1dFQktJVF9E
RVBSRUNBVEVEIFdlYktpdERPTURvY3VtZW50VHlwZSoKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0
X2RvY3R5cGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTQ0OSw4ICs1MjEs
MTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZG9jdHlwZShXZWJLaXRET01Eb2N1bWVudCog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiAo
dHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTURPTUltcGxlbWVudGF0aW9uCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgV2ViS2l0RE9NRE9NSW1wbGVtZW50YXRpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJL
aXRET01ET01JbXBsZW1lbnRhdGlvbioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2ltcGxlbWVu
dGF0aW9uKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC00NTgsOCArNTMyLDEw
IEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2ltcGxlbWVudGF0aW9uKFdlYktpdERPTURvY3Vt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVy
bnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IFdlYktpdERPTUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgog
d2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZG9jdW1lbnRfZWxlbWVudChXZWJLaXRET01Eb2N1bWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtNDY3LDggKzU0MywxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50
X2dldF9kb2N1bWVudF9lbGVtZW50KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9j
dW1lbnRfZ2V0X2lucHV0X2VuY29kaW5nKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC00NzYsOCArNTU0LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2lucHV0X2VuY29k
aW5nKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1
bWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitX
RUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3htbF9lbmNv
ZGluZyhXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNDg1LDggKzU2NSwxMCBA
QCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF94bWxfZW5jb2RpbmcoV2ViS2l0RE9NRG9jdW1lbnQq
IHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgogICogUmV0dXJuczog
QSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFy
Kgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfeG1sX3ZlcnNpb24oV2ViS2l0RE9NRG9jdW1lbnQq
IHNlbGYpOwogCiAvKioKQEAgLTQ5NSw4ICs1NzcsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9n
ZXRfeG1sX3ZlcnNpb24oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNn
Y2hhcgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X3htbF92ZXJzaW9uKFdl
YktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJvcioqIGVycm9y
KTsKIAogLyoqCkBAIC01MDQsOCArNTg4LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X3ht
bF92ZXJzaW9uKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsCiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVh
bgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgog
d2Via2l0X2RvbV9kb2N1bWVudF9nZXRfeG1sX3N0YW5kYWxvbmUoV2ViS2l0RE9NRG9jdW1lbnQq
IHNlbGYpOwogCiAvKioKQEAgLTUxNCw4ICs2MDAsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9n
ZXRfeG1sX3N0YW5kYWxvbmUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBB
ICNnYm9vbGVhbgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X3htbF9zdGFu
ZGFsb25lKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSwgR0Vycm9yKiog
ZXJyb3IpOwogCiAvKioKQEAgLTUyMyw4ICs2MTEsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9z
ZXRfeG1sX3N0YW5kYWxvbmUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVl
LAogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2No
YXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Vi
a2l0X2RvbV9kb2N1bWVudF9nZXRfZG9jdW1lbnRfdXJpKFdlYktpdERPTURvY3VtZW50KiBzZWxm
KTsKIAogLyoqCkBAIC01MzIsOCArNjIyLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2Rv
Y3VtZW50X3VyaShXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NRG9jdW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb2N1bWVudF9zZXRfZG9jdW1l
bnRfdXJpKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAv
KioKQEAgLTU0MSw4ICs2MzMsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9zZXRfZG9jdW1lbnRf
dXJpKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUKICAqIEBzZWxm
OiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTog
QSAjV2ViS2l0RE9NRE9NV2luZG93CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRE9NV2luZG93
KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRE9NV2luZG93Kgogd2Via2l0X2RvbV9kb2N1
bWVudF9nZXRfZGVmYXVsdF92aWV3KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC01NTAsOCArNjQ0LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2RlZmF1bHRfdmlldyhX
ZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTVN0eWxlU2hlZXRM
aXN0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NU3R5bGVTaGVldExpc3QqCitXRUJLSVRfREVQ
UkVDQVRFRCBXZWJLaXRET01TdHlsZVNoZWV0TGlzdCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0
X3N0eWxlX3NoZWV0cyhXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNTU5LDgg
KzY1NSwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9zdHlsZV9zaGVldHMoV2ViS2l0RE9N
RG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNB
VEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfdGl0bGUoV2ViS2l0RE9NRG9jdW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTU2OCw4ICs2NjYsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVu
dF9nZXRfdGl0bGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTURvY3VtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X3RpdGxl
KFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAg
LTU3OSw4ICs2NzksMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9zZXRfdGl0bGUoV2ViS2l0RE9N
RG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAgKiBSZXR1cm5zOiBBICNnY2hh
cgogICoKICAqIFNpbmNlOiAyLjE0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2Rlc2lnbl9tb2RlKFdlYktp
dERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC01ODksOCArNjkxLDEwIEBAIHdlYmtpdF9k
b21fZG9jdW1lbnRfZ2V0X2Rlc2lnbl9tb2RlKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAq
IEB2YWx1ZTogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNAorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X2Rlc2ln
bl9tb2RlKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAv
KioKQEAgLTU5OCw4ICs3MDIsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9zZXRfZGVzaWduX21v
ZGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSkKICAqIEBzZWxm
OiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9j
dW1lbnRfZ2V0X3JlZmVycmVyKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02
MDcsOCArNzEzLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3JlZmVycmVyKFdlYktpdERP
TURvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAq
IFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVD
QVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2RvbWFpbihXZWJLaXRET01Eb2N1
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjE2LDggKzcyNCwxMCBAQCB3ZWJraXRfZG9tX2RvY3Vt
ZW50X2dldF9kb21haW4oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTURvY3VtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF9n
ZXRfdXJsKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02MjYsOCArNzM2LDEw
IEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3VybChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7
CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2RvY3Vt
ZW50X2dldF9jb29raWUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIEdFcnJvcioqIGVycm9yKTsK
IAogLyoqCkBAIC02MzYsOCArNzQ4LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2Nvb2tp
ZShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogICogQHZhbHVlOiBB
ICNnY2hhcgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X2Nvb2tpZShXZWJL
aXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7
CiAKIC8qKgpAQCAtNjQ1LDggKzc1OSwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X3NldF9jb29r
aWUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0VycgogICog
QHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5v
bmUpOiBBICNXZWJLaXRET01IVE1MRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhU
TUxFbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTEVsZW1lbnQqCiB3ZWJr
aXRfZG9tX2RvY3VtZW50X2dldF9ib2R5KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC02NTUsOCArNzcxLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2JvZHkoV2ViS2l0
RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNXZWJLaXRET01IVE1MRWxlbWVudAog
ICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBS
RUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X2JvZHkoV2ViS2l0RE9NRG9jdW1l
bnQqIHNlbGYsIFdlYktpdERPTUhUTUxFbGVtZW50KiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOwog
CiAvKioKQEAgLTY2NCw4ICs3ODIsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9zZXRfYm9keShX
ZWJLaXRET01Eb2N1bWVudCogc2VsZiwgV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHZhbHUKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25l
KTogQSAjV2ViS2l0RE9NSFRNTEhlYWRFbGVtZW50CisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9N
SFRNTEhlYWRFbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTEhlYWRFbGVt
ZW50Kgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfaGVhZChXZWJLaXRET01Eb2N1bWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtNjczLDggKzc5MywxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9o
ZWFkKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1
bWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NSFRNTENv
bGxlY3Rpb24KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKK1dFQktJ
VF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgogd2Via2l0X2RvbV9kb2N1bWVu
dF9nZXRfaW1hZ2VzKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02ODIsOCAr
ODA0LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2ltYWdlcyhXZWJLaXRET01Eb2N1bWVu
dCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5z
OiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRE
T01IVE1MQ29sbGVjdGlvbioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2FwcGxldHMoV2ViS2l0
RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTY5MSw4ICs4MTUsMTAgQEAgd2Via2l0X2Rv
bV9kb2N1bWVudF9nZXRfYXBwbGV0cyhXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6
IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRN
TENvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioK
IHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2xpbmtzKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsK
IAogLyoqCkBAIC03MDAsOCArODI2LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2xpbmtz
KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVu
dAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NSFRNTENvbGxl
Y3Rpb24KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKK1dFQktJVF9E
RVBSRUNBVEVEIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgogd2Via2l0X2RvbV9kb2N1bWVudF9n
ZXRfZm9ybXMoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTcwOSw4ICs4Mzcs
MTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZm9ybXMoV2ViS2l0RE9NRG9jdW1lbnQqIHNl
bGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgogICogUmV0dXJuczogKHRy
YW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1MQ29sbGVjdGlvbgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRN
TENvbGxlY3Rpb24qCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9hbmNob3JzKFdlYktpdERPTURv
Y3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC03MjAsOCArODUwLDEwIEBAIHdlYmtpdF9kb21fZG9j
dW1lbnRfZ2V0X2FuY2hvcnMoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogUmV0dXJuczog
KHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1MQ29sbGVjdGlvbgogICoKICAqIFNpbmNl
OiAyLjE0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCitXRUJLSVRf
REVQUkVDQVRFRCBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKIHdlYmtpdF9kb21fZG9jdW1lbnRf
Z2V0X2VtYmVkcyhXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNzMxLDggKzg2
MywxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9lbWJlZHMoV2ViS2l0RE9NRG9jdW1lbnQq
IHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1MQ29s
bGVjdGlvbgogICoKICAqIFNpbmNlOiAyLjE0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRN
TENvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioK
IHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3BsdWdpbnMoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTc0Miw4ICs4NzYsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfcGx1
Z2lucyhXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVs
bCk6IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCiAgKgogICogU2luY2U6IDIuMTQKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKK1dFQktJVF9ERVBSRUNBVEVEIFdl
YktpdERPTUhUTUxDb2xsZWN0aW9uKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfc2NyaXB0cyhX
ZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNzUxLDggKzg4NywxMCBAQCB3ZWJr
aXRfZG9tX2RvY3VtZW50X2dldF9zY3JpcHRzKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9k
b21fZG9jdW1lbnRfZ2V0X2xhc3RfbW9kaWZpZWQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTc2MCw4ICs4OTgsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfbGFzdF9t
b2RpZmllZChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
RG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFy
KgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jaGFy
c2V0KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC03NjksOCArOTA5LDEwIEBA
IHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2NoYXJzZXQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21fZG9jdW1lbnRfc2V0X2NoYXJzZXQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzc4LDggKzkyMCwxMCBAQCB3ZWJraXRfZG9tX2RvY3Vt
ZW50X3NldF9jaGFyc2V0KFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgogICogUmV0dXJuczogQSAj
Z2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgog
d2Via2l0X2RvbV9kb2N1bWVudF9nZXRfcmVhZHlfc3RhdGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNl
bGYpOwogCiAvKioKQEAgLTc4Nyw4ICs5MzEsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRf
cmVhZHlfc3RhdGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTURvY3VtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Y2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRf
Y2hhcmFjdGVyX3NldChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNzk2LDgg
Kzk0MiwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jaGFyYWN0ZXJfc2V0KFdlYktpdERP
TURvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAq
IFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVD
QVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3ByZWZlcnJlZF9zdHlsZXNoZWV0
X3NldChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtODA1LDggKzk1MywxMCBA
QCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9wcmVmZXJyZWRfc3R5bGVzaGVldF9zZXQoV2ViS2l0
RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBS
RUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfc2VsZWN0ZWRfc3R5bGVzaGVl
dF9zZXQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgxNCw4ICs5NjQsMTAg
QEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfc2VsZWN0ZWRfc3R5bGVzaGVldF9zZXQoV2ViS2l0
RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKiBA
dmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X3NlbGVjdGVkX3N0eWxlc2hlZXRfc2V0
KFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAg
LTgyMyw4ICs5NzUsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9zZXRfc2VsZWN0ZWRfc3R5bGVz
aGVldF9zZXQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGcKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2Vi
S2l0RE9NRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCitXRUJLSVRf
REVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfYWN0
aXZlX2VsZW1lbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgzNCw4ICs5
ODgsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfYWN0aXZlX2VsZW1lbnQoV2ViS2l0RE9N
RG9jdW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi4x
NAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJr
aXRfZG9tX2RvY3VtZW50X2dldF9jb21wYXRfbW9kZShXZWJLaXRET01Eb2N1bWVudCogc2VsZik7
CiAKIC8qKgpAQCAtODQ3LDggKzEwMDMsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfY29t
cGF0X21vZGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVy
IGZ1bGwpOiBBICNXZWJLaXRET01SYW5nZQogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgV2ViS2l0RE9NUmFuZ2UqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01SYW5nZSoK
IHdlYmtpdF9kb21fZG9jdW1lbnRfY2FyZXRfcmFuZ2VfZnJvbV9wb2ludChXZWJLaXRET01Eb2N1
bWVudCogc2VsZiwgZ2xvbmcgeCwgZ2xvbmcgeSk7CiAKIC8qKgpAQCAtODU2LDggKzEwMTQsMTAg
QEAgd2Via2l0X2RvbV9kb2N1bWVudF9jYXJldF9yYW5nZV9mcm9tX3BvaW50KFdlYktpdERPTURv
Y3VtZW50KiBzZWxmLCBnbG9uZyB4LCBnbG8KICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVu
dAogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9kb2N1bWVudF93ZWJraXRfY2FuY2VsX2Z1bGxzY3JlZW4o
V2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTg2NSw4ICsxMDI1LDEwIEBAIHdl
YmtpdF9kb21fZG9jdW1lbnRfd2Via2l0X2NhbmNlbF9mdWxsc2NyZWVuKFdlYktpdERPTURvY3Vt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFNpbmNl
OiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9kb2N1bWVudF93ZWJraXRfZXhpdF9mdWxsc2NyZWVuKFdlYktpdERPTURvY3VtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC04NzQsOCArMTAzNiwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50
X3dlYmtpdF9leGl0X2Z1bGxzY3JlZW4oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvY3VtZW50X2V4
aXRfcG9pbnRlcl9sb2NrKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04ODUs
OCArMTA0OSwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2V4aXRfcG9pbnRlcl9sb2NrKFdlYktp
dERPTURvY3VtZW50KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2djaGFyCiAgKgogICogU2luY2U6
IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgog
d2Via2l0X2RvbV9kb2N1bWVudF9nZXRfY29udGVudF90eXBlKFdlYktpdERPTURvY3VtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC04OTYsOCArMTA2MiwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dl
dF9jb250ZW50X3R5cGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogQSAj
Z2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kaXIoV2ViS2l0RE9N
RG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTkwNiw4ICsxMDc0LDEwIEBAIHdlYmtpdF9kb21f
ZG9jdW1lbnRfZ2V0X2RpcihXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBAdmFsdWU6IEEg
I2djaGFyCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRf
REVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvY3VtZW50X3NldF9kaXIoV2ViS2l0RE9NRG9j
dW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtOTE3LDggKzEwODcs
MTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9zZXRfZGlyKFdlYktpdERPTURvY3VtZW50KiBzZWxm
LCBjb25zdCBnY2hhciogdmFsdWUpOwogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KICAqCiAgKiBT
aW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBn
Ym9vbGVhbgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2lzX2Z1bGxzY3JlZW4oV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTkyOCw4ICsxMTAwLDEwIEBAIHdlYmtp
dF9kb21fZG9jdW1lbnRfZ2V0X3dlYmtpdF9pc19mdWxsc2NyZWVuKFdlYktpdERPTURvY3VtZW50
KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2dib29sZWFuCiAgKgogICogU2luY2U6IDIuMTYKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtp
dF9kb21fZG9jdW1lbnRfZ2V0X3dlYmtpdF9mdWxsc2NyZWVuX2tleWJvYXJkX2lucHV0X2FsbG93
ZWQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTkzOSw4ICsxMTEzLDEwIEBA
IHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3dlYmtpdF9mdWxsc2NyZWVuX2tleWJvYXJkX2lucHV0
X2FsbG93ZWQoV2ViS2l0RE9NRG9jdW1lCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEg
I1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdl
YktpdERPTUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Vi
a2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2N1cnJlbnRfZnVsbHNjcmVlbl9lbGVtZW50KFdl
YktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC05NTAsOCArMTEyNiwxMCBAQCB3ZWJr
aXRfZG9tX2RvY3VtZW50X2dldF93ZWJraXRfY3VycmVudF9mdWxsc2NyZWVuX2VsZW1lbnQoV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbAogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KICAqCiAgKiBTaW5j
ZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9v
bGVhbgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2Z1bGxzY3JlZW5fZW5hYmxlZChX
ZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtOTYxLDggKzExMzksMTAgQEAgd2Vi
a2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2Z1bGxzY3JlZW5fZW5hYmxlZChXZWJLaXRET01E
b2N1bWVudCogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERP
TUVsZW1lbnQKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVs
ZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9k
b2N1bWVudF9nZXRfd2Via2l0X2Z1bGxzY3JlZW5fZWxlbWVudChXZWJLaXRET01Eb2N1bWVudCog
c2VsZik7CiAKIC8qKgpAQCAtOTcyLDggKzExNTIsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9n
ZXRfd2Via2l0X2Z1bGxzY3JlZW5fZWxlbWVudChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAg
KiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBT
aW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCitXRUJLSVRfREVQ
UkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfcG9pbnRl
cl9sb2NrX2VsZW1lbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTk4Myw4
ICsxMTY1LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3BvaW50ZXJfbG9ja19lbGVtZW50
KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2djaGFyCiAgKgogICog
U2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdj
aGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfdmlzaWJpbGl0eV9zdGF0ZShXZWJLaXRET01E
b2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtOTk0LDggKzExNzgsMTAgQEAgd2Via2l0X2RvbV9k
b2N1bWVudF9nZXRfdmlzaWJpbGl0eV9zdGF0ZShXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAg
KiBSZXR1cm5zOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2RvY3Vt
ZW50X2dldF9oaWRkZW4oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEwMDUs
OCArMTE5MSwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9oaWRkZW4oV2ViS2l0RE9NRG9j
dW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01I
VE1MU2NyaXB0RWxlbWVudAogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2Vi
S2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1M
U2NyaXB0RWxlbWVudCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2N1cnJlbnRfc2NyaXB0KFdl
YktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMDE2LDggKzEyMDQsMTAgQEAgd2Vi
a2l0X2RvbV9kb2N1bWVudF9nZXRfY3VycmVudF9zY3JpcHQoV2ViS2l0RE9NRG9jdW1lbnQqIHNl
bGYpOwogICogUmV0dXJuczogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2RvY3Vt
ZW50X2dldF9vcmlnaW4oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEwMjcs
OCArMTIxNywxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9vcmlnaW4oV2ViS2l0RE9NRG9j
dW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01F
bGVtZW50CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVt
ZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZG9j
dW1lbnRfZ2V0X3Njcm9sbGluZ19lbGVtZW50KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0xMDM4LDggKzEyMzAsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfc2Nyb2xs
aW5nX2VsZW1lbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5z
ZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1MQ29sbGVjdGlvbgogICoKICAqIFNpbmNlOiAyLjE2
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVD
QVRFRCBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2No
aWxkcmVuKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMDQ5LDggKzEyNDMs
MTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfY2hpbGRyZW4oV2ViS2l0RE9NRG9jdW1lbnQq
IHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVtZW50
CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50Kgor
V0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZG9jdW1lbnRf
Z2V0X2ZpcnN0X2VsZW1lbnRfY2hpbGQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTEwNjAsOCArMTI1NiwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9maXJzdF9lbGVt
ZW50X2NoaWxkKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIFJldHVybnM6ICh0cmFuc2Zl
ciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgV2ViS2l0RE9NRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUVs
ZW1lbnQqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9sYXN0X2VsZW1lbnRfY2hpbGQoV2ViS2l0
RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEwNzEsOCArMTI2OSwxMCBAQCB3ZWJraXRf
ZG9tX2RvY3VtZW50X2dldF9sYXN0X2VsZW1lbnRfY2hpbGQoV2ViS2l0RE9NRG9jdW1lbnQqIHNl
bGYpOwogICogUmV0dXJuczogQSAjZ3Vsb25nCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Via2l0X2RvbV9kb2N1
bWVudF9nZXRfY2hpbGRfZWxlbWVudF9jb3VudChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAK
IEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
RG9jdW1lbnRGcmFnbWVudC5jcHAKaW5kZXggNDExNTMzNGU1Y2QuLmU4ZmVjNjlhMDhmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50RnJhZ21l
bnQuY3BwCkBAIC0zOSw2ICszOSw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50KiBraXQoV2Vi
Q29yZTo6RG9jdW1lbnRGcmFnbWVudCogb2JqKQpAQCAtMjYwLDMgKzI2Miw0IEBAIGd1bG9uZyB3
ZWJraXRfZG9tX2RvY3VtZW50X2ZyYWdtZW50X2dldF9jaGlsZF9lbGVtZW50X2NvdW50KFdlYktp
dERPTURvY3VtZW50RnJhCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorR19HTlVDX0VORF9JR05P
UkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50RnJhZ21lbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01Eb2N1bWVudEZyYWdtZW50LmgKaW5kZXggZjFhYjdiMjA0OTguLjA5NzY2OTJmMzRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudEZyYWdtZW50
LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01Eb2N1bWVudEZyYWdtZW50Q2xh
c3MgewogICAgIFdlYktpdERPTU5vZGVDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRf
QVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9kb2N1bWVudF9m
cmFnbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Niw4ICs1NiwxMCBAQCB3ZWJraXRf
ZG9tX2RvY3VtZW50X2ZyYWdtZW50X2dldF90eXBlKHZvaWQpOwogICogUmV0dXJuczogKHRyYW5z
ZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVtZW50CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwot
V0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9N
RWxlbWVudCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfZnJhZ21lbnRfZ2V0X2VsZW1lbnRfYnlfaWQo
V2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGVsZW1lbnRJZCk7
CiAKIC8qKgpAQCAtNjksOCArNzEsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9mcmFnbWVudF9n
ZXRfZWxlbWVudF9ieV9pZChXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50KiBzZWxmLAogICogUmV0
dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVtZW50CiAgKgogICogU2luY2U6
IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICAqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FU
RUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfZnJhZ21lbnRfcXVlcnlf
c2VsZWN0b3IoV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHNl
bGVjdG9ycywgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTgyLDggKzg2LDEwIEBAIHdlYmtp
dF9kb21fZG9jdW1lbnRfZnJhZ21lbnRfcXVlcnlfc2VsZWN0b3IoV2ViS2l0RE9NRG9jdW1lbnRG
cmFnbWVudCogc2VsZiwgY29uCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktp
dERPTU5vZGVMaXN0CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBXZWJLaXRE
T01Ob2RlTGlzdCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGVMaXN0Kgogd2Via2l0
X2RvbV9kb2N1bWVudF9mcmFnbWVudF9xdWVyeV9zZWxlY3Rvcl9hbGwoV2ViS2l0RE9NRG9jdW1l
bnRGcmFnbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHNlbGVjdG9ycywgR0Vycm9yKiogZXJyb3Ip
OwogCiAvKioKQEAgLTkzLDggKzk5LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZnJhZ21lbnRf
cXVlcnlfc2VsZWN0b3JfYWxsKFdlYktpdERPTURvY3VtZW50RnJhZ21lbnQqIHNlbGYsCiAgKiBS
ZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCiAgKgog
ICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioK
K1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgogd2Via2l0X2RvbV9k
b2N1bWVudF9mcmFnbWVudF9nZXRfY2hpbGRyZW4oV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMTA0LDggKzExMiwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2Zy
YWdtZW50X2dldF9jaGlsZHJlbihXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50KiBzZWxmKTsKICAq
IFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFNp
bmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRWxlbWVudCoKK1dFQktJVF9ERVBS
RUNBVEVEIFdlYktpdERPTUVsZW1lbnQqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2ZyYWdtZW50X2dl
dF9maXJzdF9lbGVtZW50X2NoaWxkKFdlYktpdERPTURvY3VtZW50RnJhZ21lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTExNSw4ICsxMjUsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9mcmFnbWVudF9n
ZXRfZmlyc3RfZWxlbWVudF9jaGlsZChXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50KgogICogUmV0
dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVtZW50CiAgKgogICogU2luY2U6
IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICAqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FU
RUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfZnJhZ21lbnRfZ2V0X2xh
c3RfZWxlbWVudF9jaGlsZChXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC0xMjYsOCArMTM4LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZnJhZ21lbnRfZ2V0X2xh
c3RfZWxlbWVudF9jaGlsZChXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50KiBzCiAgKiBSZXR1cm5z
OiBBICNndWxvbmcKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIGd1bG9uZwor
V0VCS0lUX0RFUFJFQ0FURUQgZ3Vsb25nCiB3ZWJraXRfZG9tX2RvY3VtZW50X2ZyYWdtZW50X2dl
dF9jaGlsZF9lbGVtZW50X2NvdW50KFdlYktpdERPTURvY3VtZW50RnJhZ21lbnQqIHNlbGYpOwog
CiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVu
dEd0ay5jcHAKc2ltaWxhcml0eSBpbmRleCA5OCUKcmVuYW1lIGZyb20gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50LmNw
cApyZW5hbWUgdG8gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTURvY3VtZW50R3RrLmNwcAppbmRleCA0YjkyOWU2MWI1Mi4uOTUwNTQx
ZjA5YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50R3Rr
LmNwcApAQCAtMjEsNyArMjEsNiBAQAogI2luY2x1ZGUgIldlYktpdERPTURvY3VtZW50LmgiCiAK
ICNpbmNsdWRlICJDb252ZXJ0VG9VVEY4U3RyaW5nLmgiCi0jaW5jbHVkZSAiRE9NT2JqZWN0Q2Fj
aGUuaCIKICNpbmNsdWRlICJHT2JqZWN0RXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIldlYktp
dERPTUF0dHJQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RE9NQ0RBVEFTZWN0aW9uUHJpdmF0
ZS5oIgpAQCAtNjAsMjUgKzU5LDcgQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgogCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotV2ViS2l0RE9NRG9jdW1l
bnQqIGtpdChXZWJDb3JlOjpEb2N1bWVudCogb2JqKQotewotICAgIHJldHVybiBXRUJLSVRfRE9N
X0RPQ1VNRU5UKGtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpOb2RlKj4ob2JqKSkpOwotfQotCi1X
ZWJDb3JlOjpEb2N1bWVudCogY29yZShXZWJLaXRET01Eb2N1bWVudCogcmVxdWVzdCkKLXsKLSAg
ICByZXR1cm4gcmVxdWVzdCA/IHN0YXRpY19jYXN0PFdlYkNvcmU6OkRvY3VtZW50Kj4oV0VCS0lU
X0RPTV9PQkpFQ1QocmVxdWVzdCktPmNvcmVPYmplY3QpIDogMDsKLX0KLQotV2ViS2l0RE9NRG9j
dW1lbnQqIHdyYXBEb2N1bWVudChXZWJDb3JlOjpEb2N1bWVudCogY29yZU9iamVjdCkKLXsKLSAg
ICBBU1NFUlQoY29yZU9iamVjdCk7Ci0gICAgcmV0dXJuIFdFQktJVF9ET01fRE9DVU1FTlQoZ19v
YmplY3RfbmV3KFdFQktJVF9ET01fVFlQRV9ET0NVTUVOVCwgImNvcmUtb2JqZWN0IiwgY29yZU9i
amVjdCwgbnVsbHB0cikpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKK0dfR05VQ19CRUdJ
Tl9JR05PUkVfREVQUkVDQVRJT05TOwogCiBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X2RvbV9kb2N1
bWVudF9kaXNwYXRjaF9ldmVudChXZWJLaXRET01FdmVudFRhcmdldCogdGFyZ2V0LCBXZWJLaXRE
T01FdmVudCogZXZlbnQsIEdFcnJvcioqIGVycm9yKQogewpAQCAtMTA4LDE1ICs4OSwxMyBAQCBz
dGF0aWMgZ2Jvb2xlYW4gd2Via2l0X2RvbV9kb2N1bWVudF9yZW1vdmVfZXZlbnRfbGlzdGVuZXIo
V2ViS2l0RE9NRXZlbnRUYXJnZXQqCiAgICAgcmV0dXJuIFdlYktpdDo6R09iamVjdEV2ZW50TGlz
dGVuZXI6OnJlbW92ZUV2ZW50TGlzdGVuZXIoR19PQkpFQ1QodGFyZ2V0KSwgY29yZVRhcmdldCwg
ZXZlbnROYW1lLCBoYW5kbGVyLCB1c2VDYXB0dXJlKTsKIH0KIAotc3RhdGljIHZvaWQgd2Via2l0
X2RvbV9kb2N1bWVudF9kb21fZXZlbnRfdGFyZ2V0X2luaXQoV2ViS2l0RE9NRXZlbnRUYXJnZXRJ
ZmFjZSogaWZhY2UpCit2b2lkIHdlYmtpdERPTURvY3VtZW50RE9NRXZlbnRUYXJnZXRJbml0KFdl
YktpdERPTUV2ZW50VGFyZ2V0SWZhY2UqIGlmYWNlKQogewogICAgIGlmYWNlLT5kaXNwYXRjaF9l
dmVudCA9IHdlYmtpdF9kb21fZG9jdW1lbnRfZGlzcGF0Y2hfZXZlbnQ7CiAgICAgaWZhY2UtPmFk
ZF9ldmVudF9saXN0ZW5lciA9IHdlYmtpdF9kb21fZG9jdW1lbnRfYWRkX2V2ZW50X2xpc3RlbmVy
OwogICAgIGlmYWNlLT5yZW1vdmVfZXZlbnRfbGlzdGVuZXIgPSB3ZWJraXRfZG9tX2RvY3VtZW50
X3JlbW92ZV9ldmVudF9saXN0ZW5lcjsKIH0KIAotR19ERUZJTkVfVFlQRV9XSVRIX0NPREUoV2Vi
S2l0RE9NRG9jdW1lbnQsIHdlYmtpdF9kb21fZG9jdW1lbnQsIFdFQktJVF9ET01fVFlQRV9OT0RF
LCBHX0lNUExFTUVOVF9JTlRFUkZBQ0UoV0VCS0lUX0RPTV9UWVBFX0VWRU5UX1RBUkdFVCwgd2Vi
a2l0X2RvbV9kb2N1bWVudF9kb21fZXZlbnRfdGFyZ2V0X2luaXQpKQotCiBlbnVtIHsKICAgICBE
T01fRE9DVU1FTlRfUFJPUF8wLAogICAgIERPTV9ET0NVTUVOVF9QUk9QX0RPQ1RZUEUsCkBAIC0z
NzQsOSArMzUzLDggQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfcHJvcGVy
dHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLAogICAgIH0KIH0KIAotc3RhdGlj
IHZvaWQgd2Via2l0X2RvbV9kb2N1bWVudF9jbGFzc19pbml0KFdlYktpdERPTURvY3VtZW50Q2xh
c3MqIHJlcXVlc3RDbGFzcykKK3ZvaWQgd2Via2l0RE9NRG9jdW1lbnRJbnN0YWxsUHJvcGVydGll
cyhHT2JqZWN0Q2xhc3MqIGdvYmplY3RDbGFzcykKIHsKLSAgICBHT2JqZWN0Q2xhc3MqIGdvYmpl
Y3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFzcyk7CiAgICAgZ29iamVjdENsYXNz
LT5zZXRfcHJvcGVydHkgPSB3ZWJraXRfZG9tX2RvY3VtZW50X3NldF9wcm9wZXJ0eTsKICAgICBn
b2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3Byb3Bl
cnR5OwogCkBAIC04OTIsMTEgKzg3MCw2IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fZG9jdW1l
bnRfY2xhc3NfaW5pdChXZWJLaXRET01Eb2N1bWVudENsYXNzKiByZXF1ZXN0Q2xhc3MpCiAKIH0K
IAotc3RhdGljIHZvaWQgd2Via2l0X2RvbV9kb2N1bWVudF9pbml0KFdlYktpdERPTURvY3VtZW50
KiByZXF1ZXN0KQotewotICAgIFVOVVNFRF9QQVJBTShyZXF1ZXN0KTsKLX0KLQogV2ViS2l0RE9N
RWxlbWVudCogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfZWxlbWVudChXZWJLaXRET01Eb2N1
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHRhZ05hbWUsIEdFcnJvcioqIGVycm9yKQogewogICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKQEAgLTIwMDgsMyArMTk4MSw0
IEBAIGd1bG9uZyB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jaGlsZF9lbGVtZW50X2NvdW50KFdl
YktpdERPTURvY3VtZW50KiBzZWxmKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0dfR05VQ19F
TkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudFR5cGUuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTURvY3VtZW50VHlwZS5jcHAKaW5kZXggYWM4N2Y2NDE3MDYuLjg4ODczYjI4MmYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRUeXBlLmNw
cApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NRG9jdW1lbnRUeXBlKiBraXQoV2ViQ29yZTo6RG9j
dW1lbnRUeXBlKiBvYmopCkBAIC0yNDksMyArMjUxLDQgQEAgZ2NoYXIqIHdlYmtpdF9kb21fZG9j
dW1lbnRfdHlwZV9nZXRfc3lzdGVtX2lkKFdlYktpdERPTURvY3VtZW50VHlwZSogc2VsZikKICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRUeXBlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRUeXBlLmgKaW5kZXgg
OGI4OTlhMTE2ZGEuLjM5YjUxMjIyNWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRUeXBlLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTURvY3VtZW50VHlwZS5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0
RE9NRG9jdW1lbnRUeXBlQ2xhc3MgewogICAgIFdlYktpdERPTU5vZGVDbGFzcyBwYXJlbnRfY2xh
c3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Vi
a2l0X2RvbV9kb2N1bWVudF90eXBlX2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUz
LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfdHlwZV9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01Eb2N1bWVudFR5cGUKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9t
X2RvY3VtZW50X3R5cGVfZ2V0X25hbWUoV2ViS2l0RE9NRG9jdW1lbnRUeXBlKiBzZWxmKTsKIAog
LyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X3R5cGVfZ2V0X25hbWUo
V2ViS2l0RE9NRG9jdW1lbnRUeXBlKiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1
bWVudFR5cGUKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTU5h
bWVkTm9kZU1hcAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5hbWVkTm9kZU1hcCoKK1dFQktJ
VF9ERVBSRUNBVEVEIFdlYktpdERPTU5hbWVkTm9kZU1hcCoKIHdlYmtpdF9kb21fZG9jdW1lbnRf
dHlwZV9nZXRfZW50aXRpZXMoV2ViS2l0RE9NRG9jdW1lbnRUeXBlKiBzZWxmKTsKIAogLyoqCkBA
IC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X3R5cGVfZ2V0X2VudGl0aWVzKFdl
YktpdERPTURvY3VtZW50VHlwZSogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1l
bnRUeXBlCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01OYW1l
ZE5vZGVNYXAKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01OYW1lZE5vZGVNYXAqCitXRUJLSVRf
REVQUkVDQVRFRCBXZWJLaXRET01OYW1lZE5vZGVNYXAqCiB3ZWJraXRfZG9tX2RvY3VtZW50X3R5
cGVfZ2V0X25vdGF0aW9ucyhXZWJLaXRET01Eb2N1bWVudFR5cGUqIHNlbGYpOwogCiAvKioKQEAg
LTgwLDggKzg2LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfdHlwZV9nZXRfbm90YXRpb25zKFdl
YktpdERPTURvY3VtZW50VHlwZSogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1l
bnRUeXBlCiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioK
K1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF90eXBlX2dldF9p
bnRlcm5hbF9zdWJzZXQoV2ViS2l0RE9NRG9jdW1lbnRUeXBlKiBzZWxmKTsKIAogLyoqCkBAIC04
OSw4ICs5NywxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X3R5cGVfZ2V0X2ludGVybmFsX3N1YnNl
dChXZWJLaXRET01Eb2N1bWVudFR5cGUqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURv
Y3VtZW50VHlwZQogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2No
YXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9jdW1lbnRfdHlwZV9n
ZXRfcHVibGljX2lkKFdlYktpdERPTURvY3VtZW50VHlwZSogc2VsZik7CiAKIC8qKgpAQCAtOTgs
OCArMTA4LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfdHlwZV9nZXRfcHVibGljX2lkKFdlYktp
dERPTURvY3VtZW50VHlwZSogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnRU
eXBlCiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dF
QktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF90eXBlX2dldF9zeXN0
ZW1faWQoV2ViS2l0RE9NRG9jdW1lbnRUeXBlKiBzZWxmKTsKIAogR19FTkRfREVDTFMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01FbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudC5oCmluZGV4IGRiYTc1MWUwY2MzLi5i
ZDIxZWRiMmQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudC5o
CkBAIC00NiwxMCArNDYsMjUgQEAgc3RydWN0IF9XZWJLaXRET01FbGVtZW50Q2xhc3MgewogfTsK
IAogV0VCS0lUX0FQSSBHVHlwZQotd2Via2l0X2RvbV9lbGVtZW50X2dldF90eXBlKHZvaWQpOwor
d2Via2l0X2RvbV9lbGVtZW50X2dldF90eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
dm9pZCk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9kb21fZWxlbWVudF9odG1sX2lu
cHV0X2VsZW1lbnRfaXNfdXNlcl9lZGl0ZWQgICAgKFdlYktpdERPTUVsZW1lbnQgKmVsZW1lbnQp
OworCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9l
bGVtZW50X2dldF9hdXRvX2ZpbGxlZCAgIChXZWJLaXRET01FbGVtZW50ICplbGVtZW50KTsKKwor
V0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X3Nl
dF9hdXRvX2ZpbGxlZCAgIChXZWJLaXRET01FbGVtZW50ICplbGVtZW50LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAg
ICAgICAgYXV0b19maWxsZWQpOworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZG9tX2VsZW1lbnRf
aHRtbF9pbnB1dF9lbGVtZW50X3NldF9lZGl0aW5nX3ZhbHVlIChXZWJLaXRET01FbGVtZW50ICpl
bGVtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgY2hhciAgICAgICAqdmFsdWUpOwogCiAvKioKICAqIFdFQktJVF9ET01f
RUxFTUVOVF9BTExPV19LRVlCT0FSRF9JTlBVVDoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0VM
RU1FTlRfQUxMT1dfS0VZQk9BUkRfSU5QVVQgMQogCkBAIC01OSw4ICs3NCwxMCBAQCB3ZWJraXRf
ZG9tX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAbmFtZTogQSAjZ2NoYXIKICAqCiAgKiBS
ZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2F0dHJpYnV0ZShXZWJLaXRET01FbGVt
ZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZSk7CiAKIC8qKgpAQCAtNzAsOCArODcsMTAgQEAg
d2Via2l0X2RvbV9lbGVtZW50X2dldF9hdHRyaWJ1dGUoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIG5hbWUpOwogICogQHZhbHVlOiBBICNnY2hhcgogICogQGVycm9yOiAjR0Vy
cm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21fZWxlbWVudF9zZXRfYXR0cmlidXRlKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyKiBuYW1lLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKIAog
LyoqCkBAIC03OSw4ICs5OCwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X2F0dHJpYnV0ZShX
ZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZSwgY29ucwogICogQHNlbGY6
IEEgI1dlYktpdERPTUVsZW1lbnQKICAqIEBuYW1lOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRfcmVt
b3ZlX2F0dHJpYnV0ZShXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZSk7
CiAKIC8qKgpAQCAtODksOCArMTEwLDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9yZW1vdmVfYXR0
cmlidXRlKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lKTsKICAqIEBu
YW1lOiBBICNnY2hhcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0
RE9NQXR0cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUF0dHIqCitXRUJLSVRfREVQUkVDQVRF
RCBXZWJLaXRET01BdHRyKgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9hdHRyaWJ1dGVfbm9kZShX
ZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZSk7CiAKIC8qKgpAQCAtMTAw
LDggKzEyMywxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2F0dHJpYnV0ZV9ub2RlKFdlYktp
dERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lKQogICogQGVycm9yOiAjR0Vycm9y
CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01BdHRyCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgV2ViS2l0RE9NQXR0cioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUF0
dHIqCiB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X2F0dHJpYnV0ZV9ub2RlKFdlYktpdERPTUVsZW1l
bnQqIHNlbGYsIFdlYktpdERPTUF0dHIqIG5ld0F0dHIsIEdFcnJvcioqIGVycm9yKTsKIAogLyoq
CkBAIC0xMTEsOCArMTM2LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9zZXRfYXR0cmlidXRlX25v
ZGUoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgV2ViS2l0RE9NQXR0ciogbmV3CiAgKiBAZXJyb3I6
ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUF0
dHIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01BdHRyKgorV0VCS0lUX0RFUFJFQ0FURUQgV2Vi
S2l0RE9NQXR0cioKIHdlYmtpdF9kb21fZWxlbWVudF9yZW1vdmVfYXR0cmlidXRlX25vZGUoV2Vi
S2l0RE9NRWxlbWVudCogc2VsZiwgV2ViS2l0RE9NQXR0ciogb2xkQXR0ciwgR0Vycm9yKiogZXJy
b3IpOwogCiAvKioKQEAgLTEyMyw4ICsxNTAsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X3JlbW92
ZV9hdHRyaWJ1dGVfbm9kZShXZWJLaXRET01FbGVtZW50KiBzZWxmLCBXZWJLaXRET01BdHRyKgog
ICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1MQ29sbGVjdGlvbgog
ICoKICAqIFNpbmNlOiAyLjEyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTENvbGxlY3Rp
b24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKIHdlYmtpdF9k
b21fZWxlbWVudF9nZXRfZWxlbWVudHNfYnlfdGFnX25hbWVfYXNfaHRtbF9jb2xsZWN0aW9uKFdl
YktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lKTsKIAogLyoqCkBAIC0xMzIs
OCArMTYxLDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfZWxlbWVudHNfYnlfdGFnX25hbWVf
YXNfaHRtbF9jb2xsZWN0aW9uKFdlYktpdERPTUVsZW1lbnQqCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2VsZW1lbnRf
aGFzX2F0dHJpYnV0ZXMoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTQzLDgg
KzE3NCwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfaGFzX2F0dHJpYnV0ZXMoV2ViS2l0RE9NRWxl
bWVudCogc2VsZik7CiAgKiBAbG9jYWxOYW1lOiBBICNnY2hhcgogICoKICAqIFJldHVybnM6IEEg
I2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioK
IHdlYmtpdF9kb21fZWxlbWVudF9nZXRfYXR0cmlidXRlX25zKFdlYktpdERPTUVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiBuYW1lc3BhY2VVUkksIGNvbnN0IGdjaGFyKiBsb2NhbE5hbWUpOwog
CiAvKioKQEAgLTE1NSw4ICsxODgsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9hdHRyaWJ1
dGVfbnMoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWVzcGEKICAqIEB2
YWx1ZTogQSAjZ2NoYXIKICAqIEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X2F0dHJp
YnV0ZV9ucyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZXNwYWNlVVJJ
LCBjb25zdCBnY2hhciogcXVhbGlmaWVkTmFtZSwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3Iq
KiBlcnJvcik7CiAKIC8qKgpAQCAtMTY1LDggKzIwMCwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRf
c2V0X2F0dHJpYnV0ZV9ucyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFt
ZXNwYQogICogQG5hbWVzcGFjZVVSSTogQSAjZ2NoYXIKICAqIEBsb2NhbE5hbWU6IEEgI2djaGFy
CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtp
dF9kb21fZWxlbWVudF9yZW1vdmVfYXR0cmlidXRlX25zKFdlYktpdERPTUVsZW1lbnQqIHNlbGYs
IGNvbnN0IGdjaGFyKiBuYW1lc3BhY2VVUkksIGNvbnN0IGdjaGFyKiBsb2NhbE5hbWUpOwogCiAv
KioKQEAgLTE3OCw4ICsyMTUsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X3JlbW92ZV9hdHRyaWJ1
dGVfbnMoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWUKICAqIFJldHVy
bnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24KICAqCiAgKiBT
aW5jZTogMi4xMgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgorV0VC
S0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCiB3ZWJraXRfZG9tX2VsZW1l
bnRfZ2V0X2VsZW1lbnRzX2J5X3RhZ19uYW1lX25zX2FzX2h0bWxfY29sbGVjdGlvbihXZWJLaXRE
T01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZXNwYWNlVVJJLCBjb25zdCBnY2hhciog
bG9jYWxOYW1lKTsKIAogLyoqCkBAIC0xODksOCArMjI4LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVu
dF9nZXRfZWxlbWVudHNfYnlfdGFnX25hbWVfbnNfYXNfaHRtbF9jb2xsZWN0aW9uKFdlYktpdERP
TUVsZW1lCiAgKiBAbG9jYWxOYW1lOiBBICNnY2hhcgogICoKICAqIFJldHVybnM6ICh0cmFuc2Zl
ciBub25lKTogQSAjV2ViS2l0RE9NQXR0cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUF0dHIq
CitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01BdHRyKgogd2Via2l0X2RvbV9lbGVtZW50X2dl
dF9hdHRyaWJ1dGVfbm9kZV9ucyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciog
bmFtZXNwYWNlVVJJLCBjb25zdCBnY2hhciogbG9jYWxOYW1lKTsKIAogLyoqCkBAIC0yMDAsOCAr
MjQxLDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfYXR0cmlidXRlX25vZGVfbnMoV2ViS2l0
RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAq
CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUF0dHIKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBXZWJLaXRET01BdHRyKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NQXR0cioK
IHdlYmtpdF9kb21fZWxlbWVudF9zZXRfYXR0cmlidXRlX25vZGVfbnMoV2ViS2l0RE9NRWxlbWVu
dCogc2VsZiwgV2ViS2l0RE9NQXR0ciogbmV3QXR0ciwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioK
QEAgLTIxMCw4ICsyNTMsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X3NldF9hdHRyaWJ1dGVfbm9k
ZV9ucyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBXZWJLaXRET01BdHRyKgogICogQG5hbWU6IEEg
I2djaGFyCiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9v
bGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZWxlbWVudF9oYXNf
YXR0cmlidXRlKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lKTsKIAog
LyoqCkBAIC0yMjEsMjQgKzI2NiwzMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfaGFzX2F0dHJpYnV0
ZShXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZSk7CiAgKiBAbG9jYWxO
YW1lOiBBICNnY2hhcgogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2VsZW1l
bnRfaGFzX2F0dHJpYnV0ZV9ucyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciog
bmFtZXNwYWNlVVJJLCBjb25zdCBnY2hhciogbG9jYWxOYW1lKTsKIAogLyoqCiAgKiB3ZWJraXRf
ZG9tX2VsZW1lbnRfZm9jdXM6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2Vs
ZW1lbnRfZm9jdXMoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAKIC8qKgogICogd2Via2l0X2Rv
bV9lbGVtZW50X2JsdXI6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1l
bnRfYmx1cihXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNDYsOCArMjk3LDEw
IEBAIHdlYmtpdF9kb21fZWxlbWVudF9ibHVyKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqIEBhbGlnbldpdGhUb3A6IEEgI2dib29sZWFu
CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtp
dF9kb21fZWxlbWVudF9zY3JvbGxfaW50b192aWV3KFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGdi
b29sZWFuIGFsaWduV2l0aFRvcCk7CiAKIC8qKgpAQCAtMjU1LDggKzMwOCwxMCBAQCB3ZWJraXRf
ZG9tX2VsZW1lbnRfc2Nyb2xsX2ludG9fdmlldyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBnYm9v
bGVhbiBhbGlnbldpdGhUbwogICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqIEBjZW50
ZXJJZk5lZWRlZDogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9lbGVtZW50X3Njcm9sbF9pbnRvX3ZpZXdfaWZf
bmVlZGVkKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGdib29sZWFuIGNlbnRlcklmTmVlZGVkKTsK
IAogLyoqCkBAIC0yNjQsOCArMzE5LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9zY3JvbGxfaW50
b192aWV3X2lmX25lZWRlZChXZWJLaXRET01FbGVtZW50KiBzZWxmLCBnYm9vbGVhbiBjCiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICogQGxpbmVzOiBBICNnbG9uZwogICoKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1l
bnRfc2Nyb2xsX2J5X2xpbmVzKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGdsb25nIGxpbmVzKTsK
IAogLyoqCkBAIC0yNzMsOCArMzMwLDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9zY3JvbGxfYnlf
bGluZXMoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgZ2xvbmcgbGluZXMpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUVsZW1lbnQKICAqIEBwYWdlczogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9lbGVtZW50X3Njcm9s
bF9ieV9wYWdlcyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBnbG9uZyBwYWdlcyk7CiAKIC8qKgpA
QCAtMjg1LDggKzM0NCwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfc2Nyb2xsX2J5X3BhZ2VzKFdl
YktpdERPTUVsZW1lbnQqIHNlbGYsIGdsb25nIHBhZ2VzKTsKICAqIFJldHVybnM6ICh0cmFuc2Zl
ciBmdWxsKTogQSAjV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24KICAqCiAgKiBTaW5jZTogMi4xMgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgorV0VCS0lUX0RFUFJFQ0FU
RUQgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2VsZW1l
bnRzX2J5X2NsYXNzX25hbWVfYXNfaHRtbF9jb2xsZWN0aW9uKFdlYktpdERPTUVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiBuYW1lKTsKIAogLyoqCkBAIC0yOTYsOCArMzU3LDEwIEBAIHdlYmtp
dF9kb21fZWxlbWVudF9nZXRfZWxlbWVudHNfYnlfY2xhc3NfbmFtZV9hc19odG1sX2NvbGxlY3Rp
b24oV2ViS2l0RE9NRWxlbWVuCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAo
dHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJL
aXRET01FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtp
dF9kb21fZWxlbWVudF9xdWVyeV9zZWxlY3RvcihXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogc2VsZWN0b3JzLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMzA3LDggKzM3
MCwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfcXVlcnlfc2VsZWN0b3IoV2ViS2l0RE9NRWxlbWVu
dCogc2VsZiwgY29uc3QgZ2NoYXIqIHNlbGVjdG9ycwogICogQGVycm9yOiAjR0Vycm9yCiAgKgog
ICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01Ob2RlTGlzdAorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIFdlYktpdERPTU5vZGVMaXN0KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9N
Tm9kZUxpc3QqCiB3ZWJraXRfZG9tX2VsZW1lbnRfcXVlcnlfc2VsZWN0b3JfYWxsKFdlYktpdERP
TUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBzZWxlY3RvcnMsIEdFcnJvcioqIGVycm9yKTsK
IAogLyoqCkBAIC0zMTYsOCArMzgxLDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9xdWVyeV9zZWxl
Y3Rvcl9hbGwoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHNlbGVjCiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21f
ZWxlbWVudF9nZXRfdGFnX25hbWUoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
MzI1LDggKzM5MiwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3RhZ19uYW1lKFdlYktpdERP
TUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTU5hbWVkTm9kZU1hcAorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIFdlYktpdERPTU5hbWVkTm9kZU1hcCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktp
dERPTU5hbWVkTm9kZU1hcCoKIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfYXR0cmlidXRlcyhXZWJL
aXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0zMzQsOCArNDAzLDEwIEBAIHdlYmtpdF9k
b21fZWxlbWVudF9nZXRfYXR0cmlidXRlcyhXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01FbGVtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwp
OiBBICNXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0
RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUNTU1N0
eWxlRGVjbGFyYXRpb24qCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3N0eWxlKFdlYktpdERPTUVs
ZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTM0Myw4ICs0MTQsMTAgQEAgd2Via2l0X2RvbV9lbGVt
ZW50X2dldF9zdHlsZShXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01FbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Y2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9p
ZChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0zNTIsOCArNDI1LDEwIEBAIHdl
YmtpdF9kb21fZWxlbWVudF9nZXRfaWQoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRf
c2V0X2lkKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8q
KgpAQCAtMzYzLDggKzQzOCwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X2lkKFdlYktpdERP
TUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAgKiBSZXR1cm5zOiBBICNnY2hh
cgogICoKICAqIFNpbmNlOiAyLjE0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfbmFtZXNwYWNlX3VyaShXZWJL
aXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0zNzQsOCArNDUxLDEwIEBAIHdlYmtpdF9k
b21fZWxlbWVudF9nZXRfbmFtZXNwYWNlX3VyaShXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKICAq
IFJldHVybnM6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTQKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Y2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9w
cmVmaXgoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMzg1LDggKzQ2NCwxMCBA
QCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3ByZWZpeChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsK
ICAqIFJldHVybnM6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTQKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9lbGVtZW50X2dl
dF9sb2NhbF9uYW1lKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTM5NCw4ICs0
NzUsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9sb2NhbF9uYW1lKFdlYktpdERPTUVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnZG91YmxlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2RvdWJsZQorV0VCS0lUX0RFUFJFQ0FURUQg
Z2RvdWJsZQogd2Via2l0X2RvbV9lbGVtZW50X2dldF9vZmZzZXRfbGVmdChXZWJLaXRET01FbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC00MDMsOCArNDg2LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVu
dF9nZXRfb2Zmc2V0X2xlZnQoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dkb3VibGUKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnZG91YmxlCitXRUJLSVRfREVQUkVDQVRFRCBnZG91YmxlCiB3ZWJraXRfZG9tX2VsZW1l
bnRfZ2V0X29mZnNldF90b3AoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNDEy
LDggKzQ5NywxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X29mZnNldF90b3AoV2ViS2l0RE9N
RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJl
dHVybnM6IEEgI2dkb3VibGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnZG91YmxlCitXRUJLSVRfREVQUkVD
QVRFRCBnZG91YmxlCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X29mZnNldF93aWR0aChXZWJLaXRE
T01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC00MjEsOCArNTA4LDEwIEBAIHdlYmtpdF9kb21f
ZWxlbWVudF9nZXRfb2Zmc2V0X3dpZHRoKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnZG91YmxlCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2RvdWJsZQorV0VCS0lUX0RFUFJFQ0FURUQgZ2RvdWJsZQogd2Via2l0X2Rv
bV9lbGVtZW50X2dldF9vZmZzZXRfaGVpZ2h0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTQzMCw4ICs1MTksMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9vZmZzZXRfaGVp
Z2h0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnZG91YmxlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2RvdWJsZQor
V0VCS0lUX0RFUFJFQ0FURUQgZ2RvdWJsZQogd2Via2l0X2RvbV9lbGVtZW50X2dldF9jbGllbnRf
bGVmdChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC00MzksOCArNTMwLDEwIEBA
IHdlYmtpdF9kb21fZWxlbWVudF9nZXRfY2xpZW50X2xlZnQoV2ViS2l0RE9NRWxlbWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dk
b3VibGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnZG91YmxlCitXRUJLSVRfREVQUkVDQVRFRCBnZG91Ymxl
CiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2NsaWVudF90b3AoV2ViS2l0RE9NRWxlbWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtNDQ4LDggKzU0MSwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2Ns
aWVudF90b3AoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dkb3VibGUKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnZG91
YmxlCitXRUJLSVRfREVQUkVDQVRFRCBnZG91YmxlCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2Ns
aWVudF93aWR0aChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC00NTcsOCArNTUy
LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfY2xpZW50X3dpZHRoKFdlYktpdERPTUVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnZG91YmxlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2RvdWJsZQorV0VCS0lUX0RFUFJFQ0FURUQg
Z2RvdWJsZQogd2Via2l0X2RvbV9lbGVtZW50X2dldF9jbGllbnRfaGVpZ2h0KFdlYktpdERPTUVs
ZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTQ2Niw4ICs1NjMsMTAgQEAgd2Via2l0X2RvbV9lbGVt
ZW50X2dldF9jbGllbnRfaGVpZ2h0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9lbGVtZW50
X2dldF9zY3JvbGxfbGVmdChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC00NzUs
OCArNTc0LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfc2Nyb2xsX2xlZnQoV2ViS2l0RE9N
RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICogQHZhbHVl
OiBBICNnbG9uZwogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2
b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X3Njcm9sbF9sZWZ0KFdlYktpdERPTUVsZW1lbnQq
IHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCkBAIC00ODQsOCArNTg1LDEwIEBAIHdlYmtpdF9k
b21fZWxlbWVudF9zZXRfc2Nyb2xsX2xlZnQoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgZ2xvbmcg
dmFsdWUpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwog
d2Via2l0X2RvbV9lbGVtZW50X2dldF9zY3JvbGxfdG9wKFdlYktpdERPTUVsZW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTQ5Myw4ICs1OTYsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9zY3Jv
bGxfdG9wKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUVs
ZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9lbGVtZW50X3NldF9zY3JvbGxfdG9wKFdl
YktpdERPTUVsZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCkBAIC01MDIsOCArNjA3
LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9zZXRfc2Nyb2xsX3RvcChXZWJLaXRET01FbGVtZW50
KiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoK
ICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBS
RUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3Njcm9sbF93aWR0aChXZWJLaXRE
T01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC01MTEsOCArNjE4LDEwIEBAIHdlYmtpdF9kb21f
ZWxlbWVudF9nZXRfc2Nyb2xsX3dpZHRoKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9lbGVt
ZW50X2dldF9zY3JvbGxfaGVpZ2h0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTUyNSw4ICs2MzQsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9zY3JvbGxfaGVpZ2h0KFdl
YktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNX
ZWJLaXRET01DbGllbnRSZWN0CiAgKgogICogU2luY2U6IDIuMTgKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBX
ZWJLaXRET01DbGllbnRSZWN0KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NQ2xpZW50UmVj
dCoKIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfYm91bmRpbmdfY2xpZW50X3JlY3QoV2ViS2l0RE9N
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNTM5LDggKzY1MCwxMCBAQCB3ZWJraXRfZG9tX2Vs
ZW1lbnRfZ2V0X2JvdW5kaW5nX2NsaWVudF9yZWN0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwog
ICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01DbGllbnRSZWN0TGlzdAog
ICoKICAqIFNpbmNlOiAyLjE4CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NQ2xpZW50UmVjdExp
c3QqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01DbGllbnRSZWN0TGlzdCoKIHdlYmtpdF9k
b21fZWxlbWVudF9nZXRfY2xpZW50X3JlY3RzKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTU0OCw4ICs2NjEsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9jbGllbnRfcmVj
dHMoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVu
dAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJL
aXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9vZmZzZXRfcGFyZW50KFdlYktp
dERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTU1OSw4ICs2NzQsMTAgQEAgd2Via2l0X2Rv
bV9lbGVtZW50X2dldF9vZmZzZXRfcGFyZW50KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICog
UmV0dXJuczogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi44CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2No
YXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfaW5u
ZXJfaHRtbChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC01NzAsOCArNjg3LDEw
IEBAIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfaW5uZXJfaHRtbChXZWJLaXRET01FbGVtZW50KiBz
ZWxmKTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFNpbmNlOiAyLjgKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0
X2lubmVyX2h0bWwoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBH
RXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtNTgxLDggKzcwMCwxMCBAQCB3ZWJraXRfZG9tX2Vs
ZW1lbnRfc2V0X2lubmVyX2h0bWwoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IHZhbHVlLCBHRQogICogUmV0dXJuczogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi44CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21f
ZWxlbWVudF9nZXRfb3V0ZXJfaHRtbChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC01OTIsOCArNzEzLDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfb3V0ZXJfaHRtbChXZWJL
aXRET01FbGVtZW50KiBzZWxmKTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFNpbmNlOiAy
LjgKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRf
ZG9tX2VsZW1lbnRfc2V0X291dGVyX2h0bWwoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3Qg
Z2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtNjAxLDggKzcyNCwxMCBA
QCB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X291dGVyX2h0bWwoV2ViS2l0RE9NRWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRQogICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2NsYXNzX25hbWUoV2Vi
S2l0RE9NRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjEwLDggKzczNSwxMCBAQCB3ZWJraXRf
ZG9tX2VsZW1lbnRfZ2V0X2NsYXNzX25hbWUoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1l
bnRfc2V0X2NsYXNzX25hbWUoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlKTsKIAogLyoqCkBAIC02MTksOCArNzQ2LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9zZXRf
Y2xhc3NfbmFtZShXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
bm9uZSk6IEEgI1dlYktpdERPTUVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVt
ZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZWxl
bWVudF9nZXRfcHJldmlvdXNfZWxlbWVudF9zaWJsaW5nKFdlYktpdERPTUVsZW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTYyOCw4ICs3NTcsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9wcmV2
aW91c19lbGVtZW50X3NpYmxpbmcoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAj
V2ViS2l0RE9NRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCitXRUJL
SVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9u
ZXh0X2VsZW1lbnRfc2libGluZyhXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02
MzksOCArNzcwLDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfbmV4dF9lbGVtZW50X3NpYmxp
bmcoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6
IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCiAgKgogICogU2luY2U6IDIuMTAKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktp
dERPTUhUTUxDb2xsZWN0aW9uKgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9jaGlsZHJlbihXZWJL
aXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02NDgsOCArNzgxLDEwIEBAIHdlYmtpdF9k
b21fZWxlbWVudF9nZXRfY2hpbGRyZW4oV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTog
QSAjV2ViS2l0RE9NRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCitX
RUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9lbGVtZW50X2dl
dF9maXJzdF9lbGVtZW50X2NoaWxkKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTY1Nyw4ICs3OTIsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9maXJzdF9lbGVtZW50X2No
aWxkKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUVsZW1lbnQK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2Vi
S2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfbGFzdF9lbGVtZW50X2NoaWxk
KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTY2Niw4ICs4MDMsMTAgQEAgd2Vi
a2l0X2RvbV9lbGVtZW50X2dldF9sYXN0X2VsZW1lbnRfY2hpbGQoV2ViS2l0RE9NRWxlbWVudCog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJldHVybnM6IEEg
I2d1bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGd1bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vsb25n
CiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2NoaWxkX2VsZW1lbnRfY291bnQoV2ViS2l0RE9NRWxl
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjc5LDggKzgxOCwxMCBAQCB3ZWJraXRfZG9tX2VsZW1l
bnRfZ2V0X2NoaWxkX2VsZW1lbnRfY291bnQoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBS
ZXR1cm5zOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2VsZW1lbnRf
bWF0Y2hlcyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogc2VsZWN0b3JzLCBH
RXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtNjkyLDggKzgzMywxMCBAQCB3ZWJraXRfZG9tX2Vs
ZW1lbnRfbWF0Y2hlcyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogc2VsZWN0
b3JzLCBHRXJybwogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVt
ZW50CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50
KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZWxlbWVu
dF9jbG9zZXN0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBzZWxlY3RvcnMs
IEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC03MDUsOCArODQ4LDEwIEBAIHdlYmtpdF9kb21f
ZWxlbWVudF9jbG9zZXN0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBzZWxl
Y3RvcnMsIEdFcnJvCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3
ZWJraXRfZG9tX2VsZW1lbnRfd2Via2l0X21hdGNoZXNfc2VsZWN0b3IoV2ViS2l0RE9NRWxlbWVu
dCogc2VsZiwgY29uc3QgZ2NoYXIqIHNlbGVjdG9ycywgR0Vycm9yKiogZXJyb3IpOwogCiAvKioK
QEAgLTcxNCw4ICs4NTksMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X3dlYmtpdF9tYXRjaGVzX3Nl
bGVjdG9yKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKgogICogQHNlbGY6IEEg
I1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZWxlbWVudF93ZWJraXRfcmVx
dWVzdF9mdWxsc2NyZWVuKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTcyOCw4
ICs4NzUsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X3dlYmtpdF9yZXF1ZXN0X2Z1bGxzY3JlZW4o
V2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEg
I1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdl
YktpdERPTUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Vi
a2l0X2RvbV9lbGVtZW50X2luc2VydF9hZGphY2VudF9lbGVtZW50KFdlYktpdERPTUVsZW1lbnQq
IHNlbGYsIGNvbnN0IGdjaGFyKiB3aGVyZSwgV2ViS2l0RE9NRWxlbWVudCogZWxlbWVudCwgR0Vy
cm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTc0MCw4ICs4ODksMTAgQEAgd2Via2l0X2RvbV9lbGVt
ZW50X2luc2VydF9hZGphY2VudF9lbGVtZW50KFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0
IGdjaGFyKgogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRf
aW5zZXJ0X2FkamFjZW50X2h0bWwoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IHdoZXJlLCBjb25zdCBnY2hhciogaHRtbCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTc1
Miw4ICs5MDMsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2luc2VydF9hZGphY2VudF9odG1sKFdl
YktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB3aGUKICAqIEBlcnJvcjogI0dFcnJv
cgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9lbGVtZW50X2luc2VydF9hZGphY2VudF90ZXh0KFdlYktp
dERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB3aGVyZSwgY29uc3QgZ2NoYXIqIHRleHQs
IEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC03NjEsOCArOTE0LDEwIEBAIHdlYmtpdF9kb21f
ZWxlbWVudF9pbnNlcnRfYWRqYWNlbnRfdGV4dChXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogd2hlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFNpbmNl
OiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9lbGVtZW50X3JlcXVlc3RfcG9pbnRlcl9sb2NrKFdlYktpdERPTUVsZW1lbnQqIHNl
bGYpOwogCiAvKioKQEAgLTc3MSw4ICs5MjYsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X3JlcXVl
c3RfcG9pbnRlcl9sb2NrKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogQGVycm9yOiAjR0Vy
cm9yCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRfcmVtb3ZlKFdlYktpdERPTUVsZW1lbnQq
IHNlbGYsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC03ODIsOCArOTM5LDEwIEBAIHdlYmtp
dF9kb21fZWxlbWVudF9yZW1vdmUoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgR0Vycm9yKiogZXJy
b3IpOwogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01ET01Ub2tlbkxp
c3QKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTURPTVRva2Vu
TGlzdCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTURPTVRva2VuTGlzdCoKIHdlYmtpdF9k
b21fZWxlbWVudF9nZXRfY2xhc3NfbGlzdChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogR19F
TkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FbGVtZW50R3RrLmNw
cApzaW1pbGFyaXR5IGluZGV4IDk4JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudC5jcHAKcmVuYW1l
IHRvIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01FbGVtZW50R3RrLmNwcAppbmRleCA3YTgyNjMzYTU4YS4uMzFhMTU4ZWRlZmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudEd0ay5jcHAKQEAgLTIx
LDcgKzIxLDYgQEAKICNpbmNsdWRlICJXZWJLaXRET01FbGVtZW50LmgiCiAKICNpbmNsdWRlIDxX
ZWJDb3JlL0NTU0ltcG9ydFJ1bGUuaD4KLSNpbmNsdWRlICJET01PYmplY3RDYWNoZS5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRE9NRXhjZXB0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ET01SZWN0
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgpAQCAtNDcsMjUgKzQ2LDcgQEAKICNp
bmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCi1uYW1lc3Bh
Y2UgV2ViS2l0IHsKLQotV2ViS2l0RE9NRWxlbWVudCoga2l0KFdlYkNvcmU6OkVsZW1lbnQqIG9i
aikKLXsKLSAgICByZXR1cm4gV0VCS0lUX0RPTV9FTEVNRU5UKGtpdChzdGF0aWNfY2FzdDxXZWJD
b3JlOjpOb2RlKj4ob2JqKSkpOwotfQotCi1XZWJDb3JlOjpFbGVtZW50KiBjb3JlKFdlYktpdERP
TUVsZW1lbnQqIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIHJlcXVlc3QgPyBzdGF0aWNfY2FzdDxX
ZWJDb3JlOjpFbGVtZW50Kj4oV0VCS0lUX0RPTV9PQkpFQ1QocmVxdWVzdCktPmNvcmVPYmplY3Qp
IDogMDsKLX0KLQotV2ViS2l0RE9NRWxlbWVudCogd3JhcEVsZW1lbnQoV2ViQ29yZTo6RWxlbWVu
dCogY29yZU9iamVjdCkKLXsKLSAgICBBU1NFUlQoY29yZU9iamVjdCk7Ci0gICAgcmV0dXJuIFdF
QktJVF9ET01fRUxFTUVOVChnX29iamVjdF9uZXcoV0VCS0lUX0RPTV9UWVBFX0VMRU1FTlQsICJj
b3JlLW9iamVjdCIsIGNvcmVPYmplY3QsIG51bGxwdHIpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKIAogc3RhdGljIGdib29s
ZWFuIHdlYmtpdF9kb21fZWxlbWVudF9kaXNwYXRjaF9ldmVudChXZWJLaXRET01FdmVudFRhcmdl
dCogdGFyZ2V0LCBXZWJLaXRET01FdmVudCogZXZlbnQsIEdFcnJvcioqIGVycm9yKQogewpAQCAt
OTUsMTUgKzc2LDEzIEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRfZG9tX2VsZW1lbnRfcmVtb3Zl
X2V2ZW50X2xpc3RlbmVyKFdlYktpdERPTUV2ZW50VGFyZ2V0KiB0CiAgICAgcmV0dXJuIFdlYktp
dDo6R09iamVjdEV2ZW50TGlzdGVuZXI6OnJlbW92ZUV2ZW50TGlzdGVuZXIoR19PQkpFQ1QodGFy
Z2V0KSwgY29yZVRhcmdldCwgZXZlbnROYW1lLCBoYW5kbGVyLCB1c2VDYXB0dXJlKTsKIH0KIAot
c3RhdGljIHZvaWQgd2Via2l0X2RvbV9lbGVtZW50X2RvbV9ldmVudF90YXJnZXRfaW5pdChXZWJL
aXRET01FdmVudFRhcmdldElmYWNlKiBpZmFjZSkKK3ZvaWQgd2Via2l0RE9NRWxlbWVudERPTUV2
ZW50VGFyZ2V0SW5pdChXZWJLaXRET01FdmVudFRhcmdldElmYWNlKiBpZmFjZSkKIHsKICAgICBp
ZmFjZS0+ZGlzcGF0Y2hfZXZlbnQgPSB3ZWJraXRfZG9tX2VsZW1lbnRfZGlzcGF0Y2hfZXZlbnQ7
CiAgICAgaWZhY2UtPmFkZF9ldmVudF9saXN0ZW5lciA9IHdlYmtpdF9kb21fZWxlbWVudF9hZGRf
ZXZlbnRfbGlzdGVuZXI7CiAgICAgaWZhY2UtPnJlbW92ZV9ldmVudF9saXN0ZW5lciA9IHdlYmtp
dF9kb21fZWxlbWVudF9yZW1vdmVfZXZlbnRfbGlzdGVuZXI7CiB9CiAKLUdfREVGSU5FX1RZUEVf
V0lUSF9DT0RFKFdlYktpdERPTUVsZW1lbnQsIHdlYmtpdF9kb21fZWxlbWVudCwgV0VCS0lUX0RP
TV9UWVBFX05PREUsIEdfSU1QTEVNRU5UX0lOVEVSRkFDRShXRUJLSVRfRE9NX1RZUEVfRVZFTlRf
VEFSR0VULCB3ZWJraXRfZG9tX2VsZW1lbnRfZG9tX2V2ZW50X3RhcmdldF9pbml0KSkKLQogZW51
bSB7CiAgICAgRE9NX0VMRU1FTlRfUFJPUF8wLAogICAgIERPTV9FTEVNRU5UX1BST1BfVEFHX05B
TUUsCkBAIC0yNzMsOSArMjUyLDggQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV9lbGVtZW50X2dl
dF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SWQsIEcKICAgICB9CiB9
CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF9kb21fZWxlbWVudF9jbGFzc19pbml0KFdlYktpdERPTUVs
ZW1lbnRDbGFzcyogcmVxdWVzdENsYXNzKQordm9pZCB3ZWJraXRET01FbGVtZW50SW5zdGFsbFBy
b3BlcnRpZXMoR09iamVjdENsYXNzKiBnb2JqZWN0Q2xhc3MpCiB7Ci0gICAgR09iamVjdENsYXNz
KiBnb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhyZXF1ZXN0Q2xhc3MpOwogICAgIGdvYmpl
Y3RDbGFzcy0+c2V0X3Byb3BlcnR5ID0gd2Via2l0X2RvbV9lbGVtZW50X3NldF9wcm9wZXJ0eTsK
ICAgICBnb2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtpdF9kb21fZWxlbWVudF9nZXRf
cHJvcGVydHk7CiAKQEAgLTU5OCwxMSArNTc2LDYgQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV9l
bGVtZW50X2NsYXNzX2luaXQoV2ViS2l0RE9NRWxlbWVudENsYXNzKiByZXF1ZXN0Q2xhc3MpCiAK
IH0KIAotc3RhdGljIHZvaWQgd2Via2l0X2RvbV9lbGVtZW50X2luaXQoV2ViS2l0RE9NRWxlbWVu
dCogcmVxdWVzdCkKLXsKLSAgICBVTlVTRURfUEFSQU0ocmVxdWVzdCk7Ci19Ci0KIGdjaGFyKiB3
ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2F0dHJpYnV0ZShXZWJLaXRET01FbGVtZW50KiBzZWxmLCBj
b25zdCBnY2hhciogbmFtZSkKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CkBAIC0xMzg4LDMgKzEzNjEsNCBAQCBndWxvbmcgd2Via2l0X2RvbV9lbGVtZW50X2dl
dF9jaGlsZF9lbGVtZW50X2NvdW50KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVudC5jcHAKaW5kZXggYmE3Mzc0ODE3OWYuLjQ4MmQ1
YjkyNDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVudC5jcHAKQEAg
LTM4LDYgKzM4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTUV2ZW50UHJpdmF0ZSB7CiAg
ICAgUmVmUHRyPFdlYkNvcmU6OkV2ZW50PiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01FdmVudFBy
aXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogV2ViS2l0RE9NRXZlbnQqIGtpdChXZWJDb3JlOjpFdmVudCogb2JqKQpAQCAt
NDA4LDMgKzQxMCw0IEBAIHZvaWQgd2Via2l0X2RvbV9ldmVudF9zZXRfY2FuY2VsX2J1YmJsZShX
ZWJLaXRET01FdmVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpCiAgICAgaXRlbS0+c2V0Q2FuY2Vs
QnViYmxlKHZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRXZlbnQuaAppbmRleCBmMmUxODk4NTZmMi4uYTU2
OTUzNWViNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVudC5oCkBAIC0z
OSwxMDEgKzM5LDE0MSBAQCBHX0JFR0lOX0RFQ0xTCiAKIC8qKgogICogV0VCS0lUX0RPTV9FVkVO
VF9OT05FOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fRVZFTlRfTk9ORSAwCiAKIC8qKgogICog
V0VCS0lUX0RPTV9FVkVOVF9DQVBUVVJJTkdfUEhBU0U6CisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RP
TV9FVkVOVF9DQVBUVVJJTkdfUEhBU0UgMQogCiAvKioKICAqIFdFQktJVF9ET01fRVZFTlRfQVRf
VEFSR0VUOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fRVZFTlRfQVRfVEFSR0VUIDIKIAogLyoq
CiAgKiBXRUJLSVRfRE9NX0VWRU5UX0JVQkJMSU5HX1BIQVNFOgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJ
VF9ET01fRVZFTlRfQlVCQkxJTkdfUEhBU0UgMwogCiAvKioKICAqIFdFQktJVF9ET01fRVZFTlRf
TU9VU0VET1dOOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fRVZFTlRfTU9VU0VET1dOIDEKIAog
LyoqCiAgKiBXRUJLSVRfRE9NX0VWRU5UX01PVVNFVVA6CisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RP
TV9FVkVOVF9NT1VTRVVQIDIKIAogLyoqCiAgKiBXRUJLSVRfRE9NX0VWRU5UX01PVVNFT1ZFUjoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0VWRU5UX01PVVNFT1ZFUiA0CiAKIC8qKgogICogV0VC
S0lUX0RPTV9FVkVOVF9NT1VTRU9VVDoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0VWRU5UX01P
VVNFT1VUIDgKIAogLyoqCiAgKiBXRUJLSVRfRE9NX0VWRU5UX01PVVNFTU9WRToKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2Rl
ZmluZSBXRUJLSVRfRE9NX0VWRU5UX01PVVNFTU9WRSAxNgogCiAvKioKICAqIFdFQktJVF9ET01f
RVZFTlRfTU9VU0VEUkFHOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fRVZFTlRfTU9VU0VEUkFH
IDMyCiAKIC8qKgogICogV0VCS0lUX0RPTV9FVkVOVF9DTElDSzoKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJL
SVRfRE9NX0VWRU5UX0NMSUNLIDY0CiAKIC8qKgogICogV0VCS0lUX0RPTV9FVkVOVF9EQkxDTElD
SzoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0VWRU5UX0RCTENMSUNLIDEyOAogCiAvKioKICAq
IFdFQktJVF9ET01fRVZFTlRfS0VZRE9XTjoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0VWRU5U
X0tFWURPV04gMjU2CiAKIC8qKgogICogV0VCS0lUX0RPTV9FVkVOVF9LRVlVUDoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2Rl
ZmluZSBXRUJLSVRfRE9NX0VWRU5UX0tFWVVQIDUxMgogCiAvKioKICAqIFdFQktJVF9ET01fRVZF
TlRfS0VZUFJFU1M6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9FVkVOVF9LRVlQUkVTUyAxMDI0
CiAKIC8qKgogICogV0VCS0lUX0RPTV9FVkVOVF9EUkFHRFJPUDoKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJL
SVRfRE9NX0VWRU5UX0RSQUdEUk9QIDIwNDgKIAogLyoqCiAgKiBXRUJLSVRfRE9NX0VWRU5UX0ZP
Q1VTOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fRVZFTlRfRk9DVVMgNDA5NgogCiAvKioKICAq
IFdFQktJVF9ET01fRVZFTlRfQkxVUjoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0VWRU5UX0JM
VVIgODE5MgogCiAvKioKICAqIFdFQktJVF9ET01fRVZFTlRfU0VMRUNUOgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5l
IFdFQktJVF9ET01fRVZFTlRfU0VMRUNUIDE2Mzg0CiAKIC8qKgogICogV0VCS0lUX0RPTV9FVkVO
VF9DSEFOR0U6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9FVkVOVF9DSEFOR0UgMzI3NjgKIApA
QCAtMTQ1LDIzICsxODUsMjcgQEAgc3RydWN0IF9XZWJLaXRET01FdmVudENsYXNzIHsKICAgICBX
ZWJLaXRET01PYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBl
CitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9ldmVudF9nZXRfdHlwZSh2b2lk
KTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX2V2ZW50X3N0b3BfcHJvcGFnYXRpb246CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NRXZlbnQKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9ldmVudF9zdG9wX3Byb3BhZ2F0aW9uKFdlYktpdERP
TUV2ZW50KiBzZWxmKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX2V2ZW50X3ByZXZlbnRfZGVmYXVs
dDoKICAqIEBzZWxmOiBBICNXZWJLaXRET01FdmVudAogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2V2ZW50X3ByZXZlbnRfZGVmYXVs
dChXZWJLaXRET01FdmVudCogc2VsZik7CiAKIC8qKgpAQCAtMTcxLDggKzIxNSwxMCBAQCB3ZWJr
aXRfZG9tX2V2ZW50X3ByZXZlbnRfZGVmYXVsdChXZWJLaXRET01FdmVudCogc2VsZik7CiAgKiBA
Y2FuQnViYmxlQXJnOiBBICNnYm9vbGVhbgogICogQGNhbmNlbGFibGVBcmc6IEEgI2dib29sZWFu
CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtp
dF9kb21fZXZlbnRfaW5pdF9ldmVudChXZWJLaXRET01FdmVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IGV2ZW50VHlwZUFyZywgZ2Jvb2xlYW4gY2FuQnViYmxlQXJnLCBnYm9vbGVhbiBjYW5jZWxhYmxl
QXJnKTsKIAogLyoqCkBAIC0xODAsOCArMjI2LDEwIEBAIHdlYmtpdF9kb21fZXZlbnRfaW5pdF9l
dmVudChXZWJLaXRET01FdmVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGV2ZW50VHlwZUFyZywgZ2Jv
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRf
ZG9tX2V2ZW50X2dldF9ldmVudF90eXBlKFdlYktpdERPTUV2ZW50KiBzZWxmKTsKIAogLyoqCkBA
IC0xODksOCArMjM3LDEwIEBAIHdlYmtpdF9kb21fZXZlbnRfZ2V0X2V2ZW50X3R5cGUoV2ViS2l0
RE9NRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUV2ZW50CiAgKgogICogUmV0
dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01FdmVudFRhcmdldAorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIFdlYktpdERPTUV2ZW50VGFyZ2V0KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9N
RXZlbnRUYXJnZXQqCiB3ZWJraXRfZG9tX2V2ZW50X2dldF90YXJnZXQoV2ViS2l0RE9NRXZlbnQq
IHNlbGYpOwogCiAvKioKQEAgLTE5OCw4ICsyNDgsMTAgQEAgd2Via2l0X2RvbV9ldmVudF9nZXRf
dGFyZ2V0KFdlYktpdERPTUV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01FdmVu
dAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NRXZlbnRUYXJn
ZXQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FdmVudFRhcmdldCoKK1dFQktJVF9ERVBSRUNB
VEVEIFdlYktpdERPTUV2ZW50VGFyZ2V0Kgogd2Via2l0X2RvbV9ldmVudF9nZXRfY3VycmVudF90
YXJnZXQoV2ViS2l0RE9NRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTIwNyw4ICsyNTksMTAgQEAg
d2Via2l0X2RvbV9ldmVudF9nZXRfY3VycmVudF90YXJnZXQoV2ViS2l0RE9NRXZlbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ3VzaG9y
dAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGd1c2hvcnQKK1dFQktJVF9ERVBSRUNBVEVEIGd1c2hvcnQKIHdl
YmtpdF9kb21fZXZlbnRfZ2V0X2V2ZW50X3BoYXNlKFdlYktpdERPTUV2ZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0yMTYsOCArMjcwLDEwIEBAIHdlYmtpdF9kb21fZXZlbnRfZ2V0X2V2ZW50X3BoYXNl
KFdlYktpdERPTUV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01FdmVudAogICoK
ICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJ
VF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2V2ZW50X2dldF9idWJibGVzKFdlYktp
dERPTUV2ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMjUsOCArMjgxLDEwIEBAIHdlYmtpdF9kb21f
ZXZlbnRfZ2V0X2J1YmJsZXMoV2ViS2l0RE9NRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZXZlbnRf
Z2V0X2NhbmNlbGFibGUoV2ViS2l0RE9NRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTIzNCw4ICsy
OTIsMTAgQEAgd2Via2l0X2RvbV9ldmVudF9nZXRfY2FuY2VsYWJsZShXZWJLaXRET01FdmVudCog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
dWludDMyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ3VpbnQzMgorV0VCS0lUX0RFUFJFQ0FURUQgZ3VpbnQz
Mgogd2Via2l0X2RvbV9ldmVudF9nZXRfdGltZV9zdGFtcChXZWJLaXRET01FdmVudCogc2VsZik7
CiAKIC8qKgpAQCAtMjQzLDggKzMwMywxMCBAQCB3ZWJraXRfZG9tX2V2ZW50X2dldF90aW1lX3N0
YW1wKFdlYktpdERPTUV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01FdmVudAog
ICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NRXZlbnRUYXJnZXQK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FdmVudFRhcmdldCoKK1dFQktJVF9ERVBSRUNBVEVE
IFdlYktpdERPTUV2ZW50VGFyZ2V0Kgogd2Via2l0X2RvbV9ldmVudF9nZXRfc3JjX2VsZW1lbnQo
V2ViS2l0RE9NRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTI1Miw4ICszMTQsMTAgQEAgd2Via2l0
X2RvbV9ldmVudF9nZXRfc3JjX2VsZW1lbnQoV2ViS2l0RE9NRXZlbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9k
b21fZXZlbnRfZ2V0X3JldHVybl92YWx1ZShXZWJLaXRET01FdmVudCogc2VsZik7CiAKIC8qKgpA
QCAtMjYxLDggKzMyNSwxMCBAQCB3ZWJraXRfZG9tX2V2ZW50X2dldF9yZXR1cm5fdmFsdWUoV2Vi
S2l0RE9NRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUV2ZW50CiAgKiBAdmFs
dWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21fZXZlbnRfc2V0X3JldHVybl92YWx1ZShXZWJLaXRET01FdmVu
dCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTI3MCw4ICszMzYsMTAgQEAgd2Vi
a2l0X2RvbV9ldmVudF9zZXRfcmV0dXJuX3ZhbHVlKFdlYktpdERPTUV2ZW50KiBzZWxmLCBnYm9v
bGVhbiB2YWx1ZSk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRXZlbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRF
RCBnYm9vbGVhbgogd2Via2l0X2RvbV9ldmVudF9nZXRfY2FuY2VsX2J1YmJsZShXZWJLaXRET01F
dmVudCogc2VsZik7CiAKIC8qKgpAQCAtMjc5LDggKzM0NywxMCBAQCB3ZWJraXRfZG9tX2V2ZW50
X2dldF9jYW5jZWxfYnViYmxlKFdlYktpdERPTUV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01FdmVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2V2ZW50X3NldF9jYW5j
ZWxfYnViYmxlKFdlYktpdERPTUV2ZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIEdfRU5E
X0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRXZlbnRUYXJnZXQuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUV2ZW50VGFyZ2V0
LmNwcAppbmRleCA4Yjc1MGI0NzU0MS4uZmUxYTA0M2E4MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVu
dFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUV2ZW50VGFyZ2V0LmNwcApAQCAtMzgsNiArMzgsOCBAQAog
I2luY2x1ZGUgIldlYktpdERPTVByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRy
Lmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiB0eXBlZGVmIFdlYktp
dERPTUV2ZW50VGFyZ2V0SWZhY2UgV2ViS2l0RE9NRXZlbnRUYXJnZXRJbnRlcmZhY2U7CiAKIEdf
REVGSU5FX0lOVEVSRkFDRShXZWJLaXRET01FdmVudFRhcmdldCwgd2Via2l0X2RvbV9ldmVudF90
YXJnZXQsIEdfVFlQRV9PQkpFQ1QpCkBAIC0xMTIsMyArMTE0LDQgQEAgV2ViQ29yZTo6RXZlbnRU
YXJnZXQqIGNvcmUoV2ViS2l0RE9NRXZlbnRUYXJnZXQqIHJlcXVlc3QpCiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NRXZlbnRUYXJnZXQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVudFRhcmdldC5oCmluZGV4IGFkYzIxMDZjN2M0
Li43NWFhYzE4OTQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUV2ZW50VGFyZ2V0LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUV2
ZW50VGFyZ2V0LmgKQEAgLTU0LDcgKzU0LDcgQEAgc3RydWN0IF9XZWJLaXRET01FdmVudFRhcmdl
dElmYWNlIHsKIH07CiAKIAotV0VCS0lUX0FQSSBHVHlwZSAgICAgd2Via2l0X2RvbV9ldmVudF90
YXJnZXRfZ2V0X3R5cGUodm9pZCkgR19HTlVDX0NPTlNUOworV0VCS0lUX0RFUFJFQ0FURUQgR1R5
cGUgICAgIHdlYmtpdF9kb21fZXZlbnRfdGFyZ2V0X2dldF90eXBlKHZvaWQpIEdfR05VQ19DT05T
VDsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX2V2ZW50X3RhcmdldF9kaXNwYXRjaF9ldmVudDoKQEAg
LTYzLDggKzYzLDEwIEBAIFdFQktJVF9BUEkgR1R5cGUgICAgIHdlYmtpdF9kb21fZXZlbnRfdGFy
Z2V0X2dldF90eXBlKHZvaWQpIEdfR05VQ19DT05TVDsKICAqIEBlcnJvcjogcmV0dXJuIGxvY2F0
aW9uIGZvciBhbiBlcnJvciBvciAlTlVMTAogICoKICAqIFJldHVybnM6IGEgI2dib29sZWFuCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAg
Ki8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4gIHdlYmtpdF9kb21fZXZlbnRfdGFyZ2V0X2Rpc3BhdGNo
X2V2ZW50KFdlYktpdERPTUV2ZW50VGFyZ2V0ICp0YXJnZXQsCitXRUJLSVRfREVQUkVDQVRFRCBn
Ym9vbGVhbiAgd2Via2l0X2RvbV9ldmVudF90YXJnZXRfZGlzcGF0Y2hfZXZlbnQoV2ViS2l0RE9N
RXZlbnRUYXJnZXQgKnRhcmdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdERPTUV2ZW50ICAgICAgICpldmVudCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdFcnJvciAgICAgICAgICAgICAgKiplcnJvcik7CiAKQEAgLTc3LDggKzc5LDEwIEBAIFdFQktJ
VF9BUEkgZ2Jvb2xlYW4gIHdlYmtpdF9kb21fZXZlbnRfdGFyZ2V0X2Rpc3BhdGNoX2V2ZW50KFdl
YktpdERPTUV2ZW50VGFyZ2V0CiAgKiBAdXNlcl9kYXRhOiBBICNncG9pbnRlcgogICoKICAqIFJl
dHVybnM6IGEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4gIHdlYmtpdF9kb21f
ZXZlbnRfdGFyZ2V0X2FkZF9ldmVudF9saXN0ZW5lcihXZWJLaXRET01FdmVudFRhcmdldCAqdGFy
Z2V0LAorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4gIHdlYmtpdF9kb21fZXZlbnRfdGFyZ2V0
X2FkZF9ldmVudF9saXN0ZW5lcihXZWJLaXRET01FdmVudFRhcmdldCAqdGFyZ2V0LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGNoYXIgICAgICAgICAgICpldmVudF9uYW1lLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDYWxsYmFjayAgICAg
ICAgICAgICBoYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICAgICAgICB1c2VfY2FwdHVy
ZSwKQEAgLTkyLDggKzk2LDEwIEBAIFdFQktJVF9BUEkgZ2Jvb2xlYW4gIHdlYmtpdF9kb21fZXZl
bnRfdGFyZ2V0X2FkZF9ldmVudF9saXN0ZW5lcihXZWJLaXRET01FdmVudFRhCiAgKiBAdXNlX2Nh
cHR1cmU6IEEgI2dib29sZWFuCiAgKgogICogUmV0dXJuczogYSAjZ2Jvb2xlYW4KKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VC
S0lUX0FQSSBnYm9vbGVhbiAgd2Via2l0X2RvbV9ldmVudF90YXJnZXRfcmVtb3ZlX2V2ZW50X2xp
c3RlbmVyKFdlYktpdERPTUV2ZW50VGFyZ2V0ICp0YXJnZXQsCitXRUJLSVRfREVQUkVDQVRFRCBn
Ym9vbGVhbiAgd2Via2l0X2RvbV9ldmVudF90YXJnZXRfcmVtb3ZlX2V2ZW50X2xpc3RlbmVyKFdl
YktpdERPTUV2ZW50VGFyZ2V0ICp0YXJnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAgICAgICAg
ICAgKmV2ZW50X25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NhbGxiYWNrICAgICAgICAgICAgIGhhbmRsZXIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgIHVzZV9jYXB0dXJlKTsKQEAgLTEwOSw4
ICsxMTUsMTAgQEAgV0VCS0lUX0FQSSBnYm9vbGVhbiAgd2Via2l0X2RvbV9ldmVudF90YXJnZXRf
cmVtb3ZlX2V2ZW50X2xpc3RlbmVyKFdlYktpdERPTUV2ZW4KICAqIGluc3RlYWQgb2YgYSBjYWxs
YmFja3MgZm9yIGVhc2llciBiaW5kaW5nIGluIG90aGVyIGxhbmd1YWdlcy4KICAqCiAgKiBSZXR1
cm5zOiBhICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIGdib29sZWFuIHdlYmtpdF9kb21fZXZl
bnRfdGFyZ2V0X2FkZF9ldmVudF9saXN0ZW5lcl93aXRoX2Nsb3N1cmUoV2ViS2l0RE9NRXZlbnRU
YXJnZXQgKnRhcmdldCwKK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuIHdlYmtpdF9kb21fZXZl
bnRfdGFyZ2V0X2FkZF9ldmVudF9saXN0ZW5lcl93aXRoX2Nsb3N1cmUoV2ViS2l0RE9NRXZlbnRU
YXJnZXQgKnRhcmdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICAgICAgICAgICAq
ZXZlbnRfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ2xvc3VyZSAgICAgICAgICAgICAqaGFu
ZGxlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgICAgICAgdXNlX2NhcHR1
cmUpOwpAQCAtMTI2LDggKzEzNCwxMCBAQCBXRUJLSVRfQVBJIGdib29sZWFuIHdlYmtpdF9kb21f
ZXZlbnRfdGFyZ2V0X2FkZF9ldmVudF9saXN0ZW5lcl93aXRoX2Nsb3N1cmUoV2ViSwogICogaW5z
dGVhZCBvZiBhIGNhbGxiYWNrcyBmb3IgZWFzaWVyIGJpbmRpbmcgaW4gb3RoZXIgbGFuZ3VhZ2Vz
LgogICoKICAqIFJldHVybnM6IGEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4g
d2Via2l0X2RvbV9ldmVudF90YXJnZXRfcmVtb3ZlX2V2ZW50X2xpc3RlbmVyX3dpdGhfY2xvc3Vy
ZShXZWJLaXRET01FdmVudFRhcmdldCAqdGFyZ2V0LAorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xl
YW4gd2Via2l0X2RvbV9ldmVudF90YXJnZXRfcmVtb3ZlX2V2ZW50X2xpc3RlbmVyX3dpdGhfY2xv
c3VyZShXZWJLaXRET01FdmVudFRhcmdldCAqdGFyZ2V0LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGNoYXIgICAgICAgICAgICpldmVudF9uYW1lLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdDbG9zdXJlICAgICAgICAgICAgICpoYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdi
b29sZWFuICAgICAgICAgICAgICB1c2VfY2FwdHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRmlsZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NRmlsZS5jcHAKaW5kZXggM2RkZDE3MDBhYzguLmQ2MzlmOTVlNWJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NRmlsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUZpbGUuY3BwCkBAIC0zMiw2ICszMiw4IEBACiAj
aW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVD
X0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJL
aXRET01GaWxlKiBraXQoV2ViQ29yZTo6RmlsZSogb2JqKQpAQCAtMTAyLDMgKzEwNCw0IEBAIGdj
aGFyKiB3ZWJraXRfZG9tX2ZpbGVfZ2V0X25hbWUoV2ViS2l0RE9NRmlsZSogc2VsZikKICAgICBn
Y2hhciogcmVzdWx0ID0gY29udmVydFRvVVRGOFN0cmluZyhpdGVtLT5uYW1lKCkpOwogICAgIHJl
dHVybiByZXN1bHQ7CiB9CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NRmlsZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUZpbGUuaAppbmRleCAzMjM4YjZhYzc4OC4uMGMwMjM1MDIx
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01GaWxlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUZpbGUuaApAQCAtNDUsNyArNDUs
NyBAQCBzdHJ1Y3QgX1dlYktpdERPTUZpbGVDbGFzcyB7CiAgICAgV2ViS2l0RE9NQmxvYkNsYXNz
IHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVE
IEdUeXBlCiB3ZWJraXRfZG9tX2ZpbGVfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCAr
NTMsMTAgQEAgd2Via2l0X2RvbV9maWxlX2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUZpbGUKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2ZpbGVfZ2V0X25hbWUo
V2ViS2l0RE9NRmlsZSogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRmls
ZUxpc3QuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUZpbGVMaXN0LmNwcAppbmRleCAxNTE5MmM5NzFmMC4uZGE1NDE2YzYz
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01GaWxlTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUZpbGVMaXN0LmNwcApA
QCAtMzgsNiArMzgsOCBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NRmlsZUxpc3RQcml2YXRl
IHsKICAgICBSZWZQdHI8V2ViQ29yZTo6RmlsZUxpc3Q+IGNvcmVPYmplY3Q7CiB9IFdlYktpdERP
TUZpbGVMaXN0UHJpdmF0ZTsKIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01GaWxlTGlzdCoga2l0KFdlYkNvcmU6OkZp
bGVMaXN0KiBvYmopCkBAIC0xNTAsMyArMTUyLDQgQEAgZ3Vsb25nIHdlYmtpdF9kb21fZmlsZV9s
aXN0X2dldF9sZW5ndGgoV2ViS2l0RE9NRmlsZUxpc3QqIHNlbGYpCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUZpbGVMaXN0LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NRmlsZUxpc3QuaAppbmRleCBiZjVjOWMxNGQwMC4uMGZiYzk0OGIw
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01GaWxlTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01GaWxlTGlzdC5oCkBAIC00
NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NRmlsZUxpc3RDbGFzcyB7CiAgICAgV2ViS2l0
RE9NT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VC
S0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fZmlsZV9saXN0X2dldF90eXBlKHZvaWQp
OwogCiAvKioKQEAgLTU0LDggKzU0LDEwIEBAIHdlYmtpdF9kb21fZmlsZV9saXN0X2dldF90eXBl
KHZvaWQpOwogICogQGluZGV4OiBBICNndWxvbmcKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
ZnVsbCk6IEEgI1dlYktpdERPTUZpbGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01GaWxlKgor
V0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRmlsZSoKIHdlYmtpdF9kb21fZmlsZV9saXN0X2l0
ZW0oV2ViS2l0RE9NRmlsZUxpc3QqIHNlbGYsIGd1bG9uZyBpbmRleCk7CiAKIC8qKgpAQCAtNjMs
OCArNjUsMTAgQEAgd2Via2l0X2RvbV9maWxlX2xpc3RfaXRlbShXZWJLaXRET01GaWxlTGlzdCog
c2VsZiwgZ3Vsb25nIGluZGV4KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01GaWxlTGlzdAogICoK
ICAqIFJldHVybnM6IEEgI2d1bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGd1bG9uZworV0VCS0lUX0RF
UFJFQ0FURUQgZ3Vsb25nCiB3ZWJraXRfZG9tX2ZpbGVfbGlzdF9nZXRfbGVuZ3RoKFdlYktpdERP
TUZpbGVMaXN0KiBzZWxmKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQW5j
aG9yRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IDg1ZGMzYWRh
YzE4Li44ZTVlZGRjMDhlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQuY3BwCkBAIC0zNyw2ICszNyw4IEBACiAjaW5jbHVk
ZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lO
X0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01I
VE1MQW5jaG9yRWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50KiBvYmopCkBA
IC03ODEsMyArNzgzLDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0
X2hhc2goV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGMKICAgICBpdGVtLT5zZXRI
YXNoKGNvbnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05T
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEFuY2hvckVs
ZW1lbnQuaAppbmRleCA1ZDcxMDhlOWFkYi4uODRjYzc1ODQxMDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MQW5jaG9yRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudC5oCkBAIC00NSw3
ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnRDbGFzcyB7CiAgICAg
V2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJ
IEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9l
bGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9k
b21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MQW5jaG9yRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRt
bF9hbmNob3JfZWxlbWVudF9nZXRfY2hhcnNldChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9l
bGVtZW50X2dldF9jaGFyc2V0KFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hh
cgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJr
aXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0X2NoYXJzZXQoV2ViS2l0RE9NSFRNTEFuY2hv
ckVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUs
MTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF9jaGFyc2V0KFdlYktpdERP
TUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb24KICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
QW5jaG9yRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hbmNob3Jf
ZWxlbWVudF9nZXRfY29vcmRzKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0
X2Nvb3JkcyhXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X2FuY2hvcl9lbGVtZW50X3NldF9jb29yZHMoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtODksOCArOTcsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF9jb29yZHMoV2ViS2l0RE9NSFRNTEFuY2hvckVs
ZW1lbnQqIHNlbGYsIGNvbnMKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRf
aHJlZmxhbmcoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTk4
LDggKzEwOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X2hyZWZsYW5n
KFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MQW5jaG9yRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9y
X2VsZW1lbnRfc2V0X2hyZWZsYW5nKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBj
b25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF9ocmVmbGFuZyhXZWJLaXRET01IVE1MQW5jaG9yRWxl
bWVudCogc2VsZiwgY28KICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudAog
ICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRf
REVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfbmFt
ZShXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTE2LDggKzEz
MCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0RE9N
SFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNo
b3JFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9z
ZXRfbmFtZShXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlKTsKIAogLyoqCkBAIC0xMjUsOCArMTQxLDEwIEBAIHdlYmtpdF9kb21faHRtbF9hbmNob3Jf
ZWxlbWVudF9zZXRfbmFtZShXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZiwgY29uc3QK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfcmVsKFdlYktpdERPTUhUTUxB
bmNob3JFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMzQsOCArMTUyLDEwIEBAIHdlYmtpdF9k
b21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfcmVsKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50
KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudAogICogQHZh
bHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0X3JlbChXZWJLaXRET01I
VE1MQW5jaG9yRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0x
NDMsOCArMTYzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9zZXRfcmVsKFdl
YktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25zdCBnCiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0
bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X3JldihXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtMTUyLDggKzE3NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2Vs
ZW1lbnRfZ2V0X3JldihXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF9yZXYoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQq
IHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTYxLDggKzE4NSwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0X3JldihXZWJLaXRET01IVE1MQW5jaG9y
RWxlbWVudCogc2VsZiwgY29uc3QgZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNob3JF
bGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioK
K1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50
X2dldF9zaGFwZShXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
MTcwLDggKzE5NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X3NoYXBl
KFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MQW5jaG9yRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9y
X2VsZW1lbnRfc2V0X3NoYXBlKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE3OSw4ICsyMDcsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2FuY2hvcl9lbGVtZW50X3NldF9zaGFwZShXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCog
c2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudAogICoK
ICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfdGFyZ2V0
KFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xODgsOCArMjE4
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfdGFyZ2V0KFdlYktpdERP
TUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQW5j
aG9yRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRf
c2V0X3RhcmdldChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IHZhbHVlKTsKIAogLyoqCkBAIC0xOTcsOCArMjI5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hbmNo
b3JfZWxlbWVudF9zZXRfdGFyZ2V0KFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBj
b25zCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqCiAgKiBSZXR1
cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQg
Z2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X3R5cGVfYXR0cihXZWJL
aXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjA2LDggKzI0MCwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X3R5cGVfYXR0cihXZWJLaXRET01I
VE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hv
ckVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3Nl
dF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFy
KiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjE1LDggKzI1MSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5j
aG9yX2VsZW1lbnRfc2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2Vs
ZiwgYwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50CiAgKgogICogUmV0
dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVE
IGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF90ZXh0KFdlYktpdERP
TUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMjUsOCArMjYzLDEwIEBAIHdl
YmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfdGV4dChXZWJLaXRET01IVE1MQW5jaG9y
RWxlbWVudCogc2VsZik7CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0X3RleHQoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQq
IHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjM0LDggKzI3NCwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0X3RleHQoV2ViS2l0RE9NSFRNTEFuY2hv
ckVsZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVs
ZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgor
V0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRf
Z2V0X2hyZWYoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTI0
Myw4ICsyODUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF9ocmVmKFdl
YktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MQW5jaG9yRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2Vs
ZW1lbnRfc2V0X2hyZWYoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjUyLDggKzI5NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
YW5jaG9yX2VsZW1lbnRfc2V0X2hyZWYoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYs
IGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X3Byb3RvY29sKFdl
YktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNjEsOCArMzA3LDEw
IEBAIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfcHJvdG9jb2woV2ViS2l0RE9N
SFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNo
b3JFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9z
ZXRfcHJvdG9jb2woV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFy
KiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjcwLDggKzMxOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5j
aG9yX2VsZW1lbnRfc2V0X3Byb3RvY29sKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxm
LCBjbwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50CiAgKgogICogUmV0
dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVE
IGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF9ob3N0KFdlYktpdERP
TUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNzksOCArMzI5LDEwIEBAIHdl
YmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfaG9zdChXZWJLaXRET01IVE1MQW5jaG9y
RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF9ob3N0KFdl
YktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAv
KioKQEAgLTI4OCw4ICszNDAsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3Nl
dF9ob3N0KFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0
X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF9ob3N0bmFtZShXZWJLaXRET01IVE1MQW5jaG9y
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjk3LDggKzM1MSwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X2hvc3RuYW1lKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50
KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudAogICogQHZh
bHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0X2hvc3RuYW1lKFdlYktp
dERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioK
QEAgLTMwNiw4ICszNjIsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF9o
b3N0bmFtZShXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZiwgY28KICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9k
b21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfcG9ydChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtMzE1LDggKzM3MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5j
aG9yX2VsZW1lbnRfZ2V0X3BvcnQoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dj
aGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9zZXRfcG9ydChXZWJLaXRET01IVE1MQW5jaG9y
RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0zMjQsOCArMzg0
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9zZXRfcG9ydChXZWJLaXRET01I
VE1MQW5jaG9yRWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
QW5jaG9yRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hbmNob3Jf
ZWxlbWVudF9nZXRfcGF0aG5hbWUoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTMzMyw4ICszOTUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50
X2dldF9wYXRobmFtZShXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF9wYXRobmFtZShXZWJLaXRET01IVE1MQW5jaG9yRWxl
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0zNDIsOCArNDA2LDEw
IEBAIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9zZXRfcGF0aG5hbWUoV2ViS2l0RE9N
SFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGNvCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFu
Y2hvckVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2Vs
ZW1lbnRfZ2V0X3NlYXJjaChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtMzUxLDggKzQxNywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0
X3NlYXJjaChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X2FuY2hvcl9lbGVtZW50X3NldF9zZWFyY2goV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMzYwLDggKzQyOCwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0X3NlYXJjaChXZWJLaXRET01IVE1MQW5jaG9y
RWxlbWVudCogc2VsZiwgY29ucwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNob3JFbGVt
ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dF
QktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dl
dF9oYXNoKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0zNjks
OCArNDM5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfaGFzaChXZWJL
aXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TEFuY2hvckVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVt
ZW50X3NldF9oYXNoKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hh
ciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxBcHBsZXRFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudC5jcHAKaW5kZXggOWQ1OWI0ZGIzMGMuLjVj
MTdlOGNiYTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MQXBwbGV0RWxlbWVudC5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYv
R2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JF
X0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxBcHBs
ZXRFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTEFwcGxldEVsZW1lbnQqIG9iaikKQEAgLTUyNCwz
ICs1MjYsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9zZXRfd2lkdGgo
V2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYsCiAgICAgaXRlbS0+c2V0QXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OndpZHRoQXR0ciwgY29u
dmVydGVkVmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudC5o
CmluZGV4IDRkOTAxNDU3M2ExLi5iY2UwOWFjYmIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxBcHBs
ZXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcg
QEAgc3RydWN0IF9XZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRE
T01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUK
K1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRf
Z2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1s
X2FwcGxldF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxBcHBsZXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FwcGxl
dF9lbGVtZW50X2dldF9hbGlnbihXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dl
dF9hbGlnbihXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X2FwcGxldF9lbGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERPTUhUTUxBcHBsZXRFbGVt
ZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dldF9h
bHQoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9nZXRfYWx0KFdlYktpdERPTUhU
TUxBcHBsZXRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXBwbGV0
RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRfc2V0
X2FsdChXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVl
KTsKIAogLyoqCkBAIC04OSw4ICs5NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1l
bnRfc2V0X2FsdChXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZiwgY29uc3QgZwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAj
Z2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgog
d2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dldF9hcmNoaXZlKFdlYktpdERPTUhUTUxB
cHBsZXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC05OCw4ICsxMDgsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2FwcGxldF9lbGVtZW50X2dldF9hcmNoaXZlKFdlYktpdERPTUhUTUxBcHBsZXRFbGVt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudAogICog
QHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRfc2V0X2FyY2hpdmUoV2Vi
S2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8q
KgpAQCAtMTA3LDggKzExOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRfc2V0
X2FyY2hpdmUoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYsIGNvbgogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0
X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dldF9jb2RlKFdlYktpdERPTUhUTUxBcHBsZXRFbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMTYsOCArMTMwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9h
cHBsZXRfZWxlbWVudF9nZXRfY29kZShXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X3NldF9jb2RlKFdlYktpdERPTUhUTUxBcHBs
ZXRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEyNSw4ICsx
NDEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X3NldF9jb2RlKFdlYktpdERP
TUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxBcHBsZXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FwcGxl
dF9lbGVtZW50X2dldF9jb2RlX2Jhc2UoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTEzNCw4ICsxNTIsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVt
ZW50X2dldF9jb2RlX2Jhc2UoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFy
CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtp
dF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9zZXRfY29kZV9iYXNlKFdlYktpdERPTUhUTUxBcHBs
ZXRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE0Myw4ICsx
NjMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X3NldF9jb2RlX2Jhc2UoV2Vi
S2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYsIGMKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MQXBwbGV0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hcHBs
ZXRfZWxlbWVudF9nZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmKTsK
IAogLyoqCkBAIC0xNTIsOCArMTc0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVu
dF9nZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfYXBwbGV0X2VsZW1lbnRfc2V0X2hlaWdodChXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVu
dCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNjEsOCArMTg1LDEwIEBA
IHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9zZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxB
cHBsZXRFbGVtZW50KiBzZWxmLCBjb25zCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFwcGxl
dEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25n
CitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50
X2dldF9oc3BhY2UoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTE3MCw4ICsxOTYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dldF9oc3Bh
Y2UoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dsb25nCiAgKgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hcHBs
ZXRfZWxlbWVudF9zZXRfaHNwYWNlKFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmLCBn
bG9uZyB2YWx1ZSk7CiAKIC8qKgpAQCAtMTc5LDggKzIwNywxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
YXBwbGV0X2VsZW1lbnRfc2V0X2hzcGFjZShXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2Vs
ZiwgZ2xvbgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNB
VEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dldF9uYW1lKFdlYktp
dERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xODgsOCArMjE4LDEwIEBA
IHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9nZXRfbmFtZShXZWJLaXRET01IVE1MQXBw
bGV0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1l
bnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X3NldF9uYW1l
KFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwog
CiAvKioKQEAgLTE5Nyw4ICsyMjksMTAgQEAgd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50
X3NldF9uYW1lKFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2No
YXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Vi
a2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dldF9vYmplY3QoV2ViS2l0RE9NSFRNTEFwcGxl
dEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTIwNiw4ICsyNDAsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2FwcGxldF9lbGVtZW50X2dldF9vYmplY3QoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQq
IHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKiBAdmFs
dWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9zZXRfb2JqZWN0KFdlYktpdERP
TUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAg
LTIxNSw4ICsyNTEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X3NldF9vYmpl
Y3QoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYsIGNvbnMKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0
bWxfYXBwbGV0X2VsZW1lbnRfZ2V0X3ZzcGFjZShXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMjI0LDggKzI2MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0
X2VsZW1lbnRfZ2V0X3ZzcGFjZShXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZik7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xv
bmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X3NldF92c3BhY2UoV2ViS2l0RE9NSFRNTEFwcGxl
dEVsZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCkBAIC0yMzMsOCArMjczLDEwIEBA
IHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9zZXRfdnNwYWNlKFdlYktpdERPTUhUTUxB
cHBsZXRFbGVtZW50KiBzZWxmLCBnbG9uCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFwcGxl
dEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFy
KgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1l
bnRfZ2V0X3dpZHRoKFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC0yNDIsOCArMjg0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9nZXRfd2lk
dGgoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hcHBs
ZXRfZWxlbWVudF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEFy
ZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQXJlYUVsZW1lbnQuY3BwCmluZGV4IDIzYWRiMjRiMjJj
Li44ZTA5ZTcwOWY5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxBcmVhRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxBcmVhRWxlbWVudC5jcHAKQEAgLTM3LDYgKzM3LDggQEAKICNpbmNsdWRlIDx3dGYv
R2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JF
X0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxBcmVh
RWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxBcmVhRWxlbWVudCogb2JqKQpAQCAtNTk5LDMgKzYw
MSw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9zZXRfaGFzaChXZWJLaXRE
T01IVE1MQXJlYUVsZW1lbnQqIHNlbGYsIGNvbnN0CiAgICAgaXRlbS0+c2V0SGFzaChjb252ZXJ0
ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MQXJlYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQXJlYUVsZW1lbnQuaAppbmRleCA4
ZTI0NWY4MzMwMy4uMzA5YzczY2U2ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQXJlYUVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9X
ZWJLaXRET01IVE1MQXJlYUVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRD
bGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVD
QVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsK
IAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dl
dF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcmVhRWxlbWVudAogICoK
ICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfZ2V0X2FsdChXZWJL
aXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdl
YmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfZ2V0X2FsdChXZWJLaXRET01IVE1MQXJlYUVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcmVhRWxlbWVudAogICogQHZh
bHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X3NldF9hbHQoV2ViS2l0RE9NSFRN
TEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTcxLDgg
Kzc1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfc2V0X2FsdChXZWJLaXRET01I
VE1MQXJlYUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTEFyZWFFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FyZWFf
ZWxlbWVudF9nZXRfY29vcmRzKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtODAsOCArODYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9nZXRfY29v
cmRzKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTEFyZWFFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hcmVhX2Vs
ZW1lbnRfc2V0X2Nvb3JkcyhXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtODksOCArOTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2Fy
ZWFfZWxlbWVudF9zZXRfY29vcmRzKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZiwgY29u
c3QgZ2MKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1
cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVD
QVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9nZXRfbm9faHJlZihX
ZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTk4LDggKzEwOCwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dldF9ub19ocmVmKFdlYktpdERPTUhUTUxB
cmVhRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50
CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfc2V0X25vX2hy
ZWYoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIC8q
KgpAQCAtMTA3LDggKzExOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X3NldF9u
b19ocmVmKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZiwgZ2Jvb2xlYQogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxBcmVhRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9k
b21faHRtbF9hcmVhX2VsZW1lbnRfZ2V0X3NoYXBlKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMTE2LDggKzEzMCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9l
bGVtZW50X2dldF9zaGFwZShXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxBcmVhRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfYXJlYV9lbGVtZW50X3NldF9zaGFwZShXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTI1LDggKzE0MSwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X3NldF9zaGFwZShXZWJLaXRET01IVE1MQXJlYUVsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjaAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcmVhRWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfZ2V0X3Rh
cmdldChXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEzNCw4ICsx
NTIsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9nZXRfdGFyZ2V0KFdlYktpdERP
TUhUTUxBcmVhRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFyZWFF
bGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfc2V0X3Rh
cmdldChXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7
CiAKIC8qKgpAQCAtMTQzLDggKzE2MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50
X3NldF90YXJnZXQoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdCBnYwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcmVhRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dj
aGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdl
YmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfZ2V0X2hyZWYoV2ViS2l0RE9NSFRNTEFyZWFFbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNTIsOCArMTc0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9h
cmVhX2VsZW1lbnRfZ2V0X2hyZWYoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9odG1sX2FyZWFfZWxlbWVudF9zZXRfaHJlZihXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQq
IHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTYxLDggKzE4NSwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X3NldF9ocmVmKFdlYktpdERPTUhUTUxBcmVhRWxl
bWVudCogc2VsZiwgY29uc3QgZ2NoYQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcmVhRWxl
bWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitX
RUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfZ2V0
X3Byb3RvY29sKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTcx
LDggKzE5NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dldF9wcm90b2NvbChX
ZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNnY2hhcgogICoK
ICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9zZXRfcHJvdG9jb2woV2ViS2l0RE9N
SFRNTEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE4
MCw4ICsyMDgsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9zZXRfcHJvdG9jb2wo
V2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxBcmVhRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9h
cmVhX2VsZW1lbnRfZ2V0X2hvc3QoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0xOTAsOCArMjIwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfZ2V0
X2hvc3QoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2No
YXIKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBS
RUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfc2V0X2hvc3QoV2ViS2l0
RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAg
LTE5OSw4ICsyMzEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9zZXRfaG9zdChX
ZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGEKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MQXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0
bWxfYXJlYV9lbGVtZW50X2dldF9ob3N0bmFtZShXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNl
bGYpOwogCiAvKioKQEAgLTIwOSw4ICsyNDMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FyZWFfZWxl
bWVudF9nZXRfaG9zdG5hbWUoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmKTsKICAqIEB2
YWx1ZTogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfc2V0
X2hvc3RuYW1lKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlKTsKIAogLyoqCkBAIC0yMTgsOCArMjU0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcmVhX2Vs
ZW1lbnRfc2V0X2hvc3RuYW1lKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZiwgY29uc3QK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIq
CiB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dldF9wb3J0KFdlYktpdERPTUhUTUxBcmVh
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjI4LDggKzI2NiwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfYXJlYV9lbGVtZW50X2dldF9wb3J0KFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZik7
CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVt
ZW50X3NldF9wb3J0KFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IHZhbHVlKTsKIAogLyoqCkBAIC0yMzcsOCArMjc3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcmVh
X2VsZW1lbnRfc2V0X3BvcnQoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdCBn
Y2hhCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50CiAgKgogICogUmV0dXJu
czogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdj
aGFyKgogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9nZXRfcGF0aG5hbWUoV2ViS2l0RE9N
SFRNTEFyZWFFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNDcsOCArMjg5LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9hcmVhX2VsZW1lbnRfZ2V0X3BhdGhuYW1lKFdlYktpdERPTUhUTUxBcmVhRWxl
bWVudCogc2VsZik7CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0
bWxfYXJlYV9lbGVtZW50X3NldF9wYXRobmFtZShXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjU2LDggKzMwMCwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X3NldF9wYXRobmFtZShXZWJLaXRET01IVE1MQXJlYUVs
ZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9nZXRfc2Vh
cmNoKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjY2LDggKzMx
MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dldF9zZWFyY2goV2ViS2l0RE9N
SFRNTEFyZWFFbGVtZW50KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCiAgKiBTaW5j
ZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfc2V0X3NlYXJjaChXZWJLaXRET01IVE1MQXJlYUVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjc1LDggKzMyMywx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X3NldF9zZWFyY2goV2ViS2l0RE9NSFRN
TEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdCBnYwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxB
cmVhRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2No
YXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1l
bnRfZ2V0X2hhc2goV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0y
ODUsOCArMzM1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfZ2V0X2hhc2goV2Vi
S2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCiAg
KiBTdGFiaWxpdHk6IFVuc3RhYmxlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9zZXRfaGFzaChXZWJLaXRE
T01IVE1MQXJlYUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RF
Q0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJSRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJSRWxlbWVu
dC5jcHAKaW5kZXggYjYxNjk3MjIwNDIuLjZlMzI3YWZlODBiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TEJSRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCUkVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4
IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAor
R19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBXZWJLaXRET01IVE1MQlJFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTEJSRWxlbWVudCogb2Jq
KQpAQCAtMTY3LDMgKzE2OSw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX2JyX2VsZW1lbnRfc2V0
X2NsZWFyKFdlYktpdERPTUhUTUxCUkVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjCiAgICAgaXRlbS0+
c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmNs
ZWFyQXR0ciwgY29udmVydGVkVmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNB
VElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJSRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCUkVsZW1l
bnQuaAppbmRleCA0Nzc3MWFjOGNlNy4uMjU0MDI3NzUzOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
QlJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCUkVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBz
dHJ1Y3QgX1dlYktpdERPTUhUTUxCUkVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVs
ZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRf
REVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2JyX2VsZW1lbnRfZ2V0X3R5cGUodm9p
ZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2JyX2VsZW1lbnRf
Z2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEJSRWxlbWVudAogICoK
ICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9icl9lbGVtZW50X2dldF9jbGVhcihXZWJL
aXRET01IVE1MQlJFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfYnJfZWxlbWVudF9nZXRfY2xlYXIoV2ViS2l0RE9NSFRNTEJSRWxlbWVudCog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEJSRWxlbWVudAogICogQHZhbHVlOiBB
ICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2h0bWxfYnJfZWxlbWVudF9zZXRfY2xlYXIoV2ViS2l0RE9NSFRNTEJSRWxl
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MQmFzZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCYXNlRWxlbWVudC5jcHAKaW5k
ZXggOTQzNmM5NTU5M2IuLjlkMTBlMmNjMmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJhc2VFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTEJhc2VFbGVtZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAog
I2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05V
Q19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2Vi
S2l0RE9NSFRNTEJhc2VFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTEJhc2VFbGVtZW50KiBvYmop
CkBAIC0yMDQsMyArMjA2LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfYmFzZV9lbGVtZW50X3Nl
dF90YXJnZXQoV2ViS2l0RE9NSFRNTEJhc2VFbGVtZW50KiBzZWxmLCBjb24KICAgICBpdGVtLT5z
ZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6dGFy
Z2V0QXR0ciwgY29udmVydGVkVmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNB
VElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJhc2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJhc2VF
bGVtZW50LmgKaW5kZXggZWYyMjQyYjZjZmUuLjQ4ZjE1MGJjZGU0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTEJhc2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCYXNlRWxlbWVudC5oCkBAIC00NSw3ICs0
NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTEJhc2VFbGVtZW50Q2xhc3MgewogICAgIFdlYktp
dERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlw
ZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF9iYXNlX2VsZW1lbnRf
Z2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1s
X2Jhc2VfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
QmFzZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYmFzZV9lbGVt
ZW50X2dldF9ocmVmKFdlYktpdERPTUhUTUxCYXNlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
NjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2Jhc2VfZWxlbWVudF9nZXRfaHJlZihXZWJL
aXRET01IVE1MQmFzZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxC
YXNlRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYmFzZV9lbGVtZW50X3Nl
dF9ocmVmKFdlYktpdERPTUhUTUxCYXNlRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVl
KTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYmFzZV9lbGVtZW50
X3NldF9ocmVmKFdlYktpdERPTUhUTUxCYXNlRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYQogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxCYXNlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dj
aGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdl
YmtpdF9kb21faHRtbF9iYXNlX2VsZW1lbnRfZ2V0X3RhcmdldChXZWJLaXRET01IVE1MQmFzZUVs
ZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9i
YXNlX2VsZW1lbnRfZ2V0X3RhcmdldChXZWJLaXRET01IVE1MQmFzZUVsZW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxCYXNlRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hh
cgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJr
aXRfZG9tX2h0bWxfYmFzZV9lbGVtZW50X3NldF90YXJnZXQoV2ViS2l0RE9NSFRNTEJhc2VFbGVt
ZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxCb2R5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50LmNwcAppbmRl
eCBlYzU4YzUxOTNhMi4uMWIyNzBkNTg2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQm9keUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MQm9keUVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAj
aW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVD
X0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJL
aXRET01IVE1MQm9keUVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MQm9keUVsZW1lbnQqIG9iaikK
QEAgLTM0OCwzICszNTAsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9ib2R5X2VsZW1lbnRfc2V0
X3ZfbGluayhXZWJLaXRET01IVE1MQm9keUVsZW1lbnQqIHNlbGYsIGNvbgogICAgIGl0ZW0tPnNl
dEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjp2bGlu
a0F0dHIsIGNvbnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJ
T05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCb2R5RWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCb2R5RWxl
bWVudC5oCmluZGV4IDU3MGViYmFmNWQ2Li4xOWYxNTIwZjQyMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxCb2R5RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQm9keUVsZW1lbnQuaApAQCAtNDUsNyArNDUs
NyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxCb2R5RWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRE
T01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUK
K1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X2dl
dF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9i
b2R5X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEJv
ZHlFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hh
cioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2JvZHlfZWxlbWVu
dF9nZXRfYV9saW5rKFdlYktpdERPTUhUTUxCb2R5RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
NjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2JvZHlfZWxlbWVudF9nZXRfYV9saW5rKFdl
YktpdERPTUhUTUxCb2R5RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TEJvZHlFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9ib2R5X2VsZW1lbnRf
c2V0X2FfbGluayhXZWJLaXRET01IVE1MQm9keUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2
YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2JvZHlfZWxl
bWVudF9zZXRfYV9saW5rKFdlYktpdERPTUhUTUxCb2R5RWxlbWVudCogc2VsZiwgY29uc3QgZ2MK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQm9keUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIq
CiB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X2dldF9iYWNrZ3JvdW5kKFdlYktpdERPTUhU
TUxCb2R5RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtODAsOCArODYsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2JvZHlfZWxlbWVudF9nZXRfYmFja2dyb3VuZChXZWJLaXRET01IVE1MQm9keUVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxCb2R5RWxlbWVudAogICogQHZh
bHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X3NldF9iYWNrZ3JvdW5kKFdlYktp
dERPTUhUTUxCb2R5RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBA
IC04OSw4ICs5NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X3NldF9iYWNrZ3Jv
dW5kKFdlYktpdERPTUhUTUxCb2R5RWxlbWVudCogc2VsZiwgY29ucwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxCb2R5RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRt
bF9ib2R5X2VsZW1lbnRfZ2V0X2JnX2NvbG9yKFdlYktpdERPTUhUTUxCb2R5RWxlbWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtOTgsOCArMTA4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9ib2R5X2VsZW1l
bnRfZ2V0X2JnX2NvbG9yKFdlYktpdERPTUhUTUxCb2R5RWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF9ib2R5X2VsZW1lbnRfc2V0X2JnX2NvbG9yKFdlYktpdERPTUhUTUxCb2R5RWxlbWVudCog
c2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMDcsOCArMTE5LDEwIEBAIHdl
YmtpdF9kb21faHRtbF9ib2R5X2VsZW1lbnRfc2V0X2JnX2NvbG9yKFdlYktpdERPTUhUTUxCb2R5
RWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQm9keUVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X2dldF9s
aW5rKFdlYktpdERPTUhUTUxCb2R5RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTE2LDggKzEz
MCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X2dldF9saW5rKFdlYktpdERPTUhU
TUxCb2R5RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEJvZHlFbGVt
ZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9ib2R5X2VsZW1lbnRfc2V0X2xpbmso
V2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAv
KioKQEAgLTEyNSw4ICsxNDEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2JvZHlfZWxlbWVudF9zZXRf
bGluayhXZWJLaXRET01IVE1MQm9keUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGEKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MQm9keUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRf
ZG9tX2h0bWxfYm9keV9lbGVtZW50X2dldF90ZXh0KFdlYktpdERPTUhUTUxCb2R5RWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMTM0LDggKzE1MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYm9keV9l
bGVtZW50X2dldF90ZXh0KFdlYktpdERPTUhUTUxCb2R5RWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF9ib2R5X2VsZW1lbnRfc2V0X3RleHQoV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50KiBzZWxm
LCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE0Myw4ICsxNjMsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2JvZHlfZWxlbWVudF9zZXRfdGV4dChXZWJLaXRET01IVE1MQm9keUVsZW1lbnQq
IHNlbGYsIGNvbnN0IGdjaGEKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQm9keUVsZW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X2dldF92X2xp
bmsoV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNTIsOCArMTc0
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9ib2R5X2VsZW1lbnRfZ2V0X3ZfbGluayhXZWJLaXRET01I
VE1MQm9keUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxCb2R5RWxl
bWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X3NldF92X2xp
bmsoV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwog
CiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCdXR0b25FbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MQnV0dG9uRWxlbWVudC5jcHAKaW5kZXggM2ZmZWY2Yjg2MGIuLjYxNjgzMWIxZDIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQnV0dG9u
RWxlbWVudC5jcHAKQEAgLTM4LDYgKzM4LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9O
UzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50KiBr
aXQoV2ViQ29yZTo6SFRNTEJ1dHRvbkVsZW1lbnQqIG9iaikKQEAgLTM1NCwzICszNTYsNCBAQCBn
Ym9vbGVhbiB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfZ2V0X3dpbGxfdmFsaWRhdGUo
V2ViS2l0RE9NSFRNTEJ1dHRvbkVsZQogICAgIGdib29sZWFuIHJlc3VsdCA9IGl0ZW0tPndpbGxW
YWxpZGF0ZSgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBS
RUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
QnV0dG9uRWxlbWVudC5oCmluZGV4IDk1MDQxMjQyOTJlLi5hN2EyNjkwY2Y3NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxCdXR0b25FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCdXR0b25FbGVtZW50LmgK
QEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudENsYXNz
IHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdF
QktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxf
YnV0dG9uX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2J1dHRvbl9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxCdXR0b25FbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xl
YW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4K
IHdlYmtpdF9kb21faHRtbF9idXR0b25fZWxlbWVudF9nZXRfYXV0b2ZvY3VzKFdlYktpdERPTUhU
TUxCdXR0b25FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfZ2V0X2F1dG9mb2N1cyhXZWJLaXRET01IVE1MQnV0dG9u
RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2J1dHRvbl9lbGVtZW50X3NldF9hdXRv
Zm9jdXMoV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsK
IAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRf
c2V0X2F1dG9mb2N1cyhXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudCogc2VsZiwgZwogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxCdXR0b25FbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jv
b2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xl
YW4KIHdlYmtpdF9kb21faHRtbF9idXR0b25fZWxlbWVudF9nZXRfZGlzYWJsZWQoV2ViS2l0RE9N
SFRNTEJ1dHRvbkVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9idXR0b25fZWxlbWVudF9nZXRfZGlzYWJsZWQoV2ViS2l0RE9NSFRNTEJ1dHRv
bkVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxCdXR0b25FbGVtZW50
CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9idXR0b25fZWxlbWVudF9zZXRfZGlz
YWJsZWQoV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsK
IAogLyoqCkBAIC04OSw4ICs5NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRf
c2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50KiBzZWxmLCBnYgogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxCdXR0b25FbGVtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5z
ZmVyIG5vbmUpOiBBICNXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBX
ZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1M
Rm9ybUVsZW1lbnQqCiB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfZ2V0X2Zvcm0oV2Vi
S2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTk4LDggKzEwOCwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfZ2V0X2Zvcm0oV2ViS2l0RE9NSFRNTEJ1
dHRvbkVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxCdXR0b25FbGVt
ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dF
QktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2J1dHRvbl9lbGVtZW50X2dl
dF9idXR0b25fdHlwZShXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudCogc2VsZik7CiAKIC8qKgpA
QCAtMTA3LDggKzExOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfZ2V0X2J1
dHRvbl90eXBlKFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50KiBzZWxmKQogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxCdXR0b25FbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRt
bF9idXR0b25fZWxlbWVudF9zZXRfYnV0dG9uX3R5cGUoV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTE2LDggKzEzMCwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfc2V0X2J1dHRvbl90eXBlKFdlYktpdERP
TUhUTUxCdXR0b25FbGVtZW50KiBzZWxmLAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxCdXR0
b25FbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hh
cioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2J1dHRvbl9lbGVt
ZW50X2dldF9uYW1lKFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC0xMjUsOCArMTQxLDEwIEBAIHdlYmtpdF9kb21faHRtbF9idXR0b25fZWxlbWVudF9nZXRfbmFt
ZShXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTEJ1dHRvbkVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2J1dHRv
bl9lbGVtZW50X3NldF9uYW1lKFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEzNCw4ICsxNTIsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2J1dHRvbl9lbGVtZW50X3NldF9uYW1lKFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50KiBz
ZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxCdXR0b25FbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBS
RUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2J1dHRvbl9lbGVtZW50X2dldF92YWx1ZShX
ZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTQzLDggKzE2Mywx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfZ2V0X3ZhbHVlKFdlYktpdERPTUhU
TUxCdXR0b25FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQnV0dG9u
RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfc2V0
X3ZhbHVlKFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUpOwogCiAvKioKQEAgLTE1Miw4ICsxNzQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2J1dHRvbl9l
bGVtZW50X3NldF92YWx1ZShXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudCogc2VsZiwgY29uc3QK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVE
IGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfZ2V0X3dpbGxfdmFsaWRh
dGUoV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQ2FudmFzRWxlbWVu
dC5jcHAKaW5kZXggODMyMWM1NjkwZmUuLmYzM2JhYmU3ODNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTM1
LDYgKzM1LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIFdlYktpdERPTUhUTUxDYW52YXNFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTENh
bnZhc0VsZW1lbnQqIG9iaikKQEAgLTE5OSwzICsyMDEsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRt
bF9jYW52YXNfZWxlbWVudF9zZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxDYW52YXNFbGVtZW50KiBz
ZWxmLAogICAgIGl0ZW0tPnNldEhlaWdodCh2YWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JF
X0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQ2FudmFzRWxlbWVudC5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxDYW52YXNFbGVtZW50LmgKaW5kZXggNDZmMzk3ZjRjYWYuLjYwZDU2NzI5M2UzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTENhbnZhc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTENhbnZhc0VsZW1l
bnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxDYW52YXNFbGVtZW50
Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsK
IAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21f
aHRtbF9jYW52YXNfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1Mywx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfY2FudmFzX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTENhbnZhc0VsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Vi
a2l0X2RvbV9odG1sX2NhbnZhc19lbGVtZW50X2dldF93aWR0aChXZWJLaXRET01IVE1MQ2FudmFz
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1s
X2NhbnZhc19lbGVtZW50X2dldF93aWR0aChXZWJLaXRET01IVE1MQ2FudmFzRWxlbWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTENhbnZhc0VsZW1lbnQKICAqIEB2YWx1ZTog
QSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9p
ZAogd2Via2l0X2RvbV9odG1sX2NhbnZhc19lbGVtZW50X3NldF93aWR0aChXZWJLaXRET01IVE1M
Q2FudmFzRWxlbWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioKQEAgLTcxLDggKzc1LDEw
IEBAIHdlYmtpdF9kb21faHRtbF9jYW52YXNfZWxlbWVudF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRN
TENhbnZhc0VsZW1lbnQqIHNlbGYsIGdsb25nCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTENh
bnZhc0VsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGds
b25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1sX2NhbnZhc19lbGVt
ZW50X2dldF9oZWlnaHQoV2ViS2l0RE9NSFRNTENhbnZhc0VsZW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTgwLDggKzg2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9jYW52YXNfZWxlbWVudF9nZXRfaGVp
Z2h0KFdlYktpdERPTUhUTUxDYW52YXNFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MQ2FudmFzRWxlbWVudAogICogQHZhbHVlOiBBICNnbG9uZwogICoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfY2Fu
dmFzX2VsZW1lbnRfc2V0X2hlaWdodChXZWJLaXRET01IVE1MQ2FudmFzRWxlbWVudCogc2VsZiwg
Z2xvbmcgdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxDb2xsZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MQ29sbGVjdGlvbi5jcHAKaW5kZXggNzAyNjI4NGY4MDMuLjI1NTg1
YWI3NjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
Q29sbGVjdGlvbi5jcHAKQEAgLTM4LDYgKzM4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERP
TUhUTUxDb2xsZWN0aW9uUHJpdmF0ZSB7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkhUTUxDb2xsZWN0
aW9uPiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01IVE1MQ29sbGVjdGlvblByaXZhdGU7CiAKK0df
R05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
V2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qIGtpdChXZWJDb3JlOjpIVE1MQ29sbGVjdGlvbiogb2Jq
KQpAQCAtMTYxLDMgKzE2Myw0IEBAIGd1bG9uZyB3ZWJraXRfZG9tX2h0bWxfY29sbGVjdGlvbl9n
ZXRfbGVuZ3RoKFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKiBzZWxmKQogICAgIHJldHVybiByZXN1
bHQ7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MQ29sbGVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxDb2xsZWN0aW9uLmgKaW5kZXggMmM0YTA2NGYz
ZDMuLjJjM2IxNTI4MTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTENvbGxlY3Rpb24uaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhU
TUxDb2xsZWN0aW9uQ2xhc3MgewogICAgIFdlYktpdERPTU9iamVjdENsYXNzIHBhcmVudF9jbGFz
czsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJr
aXRfZG9tX2h0bWxfY29sbGVjdGlvbl9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01NCw4ICs1
NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfY29sbGVjdGlvbl9nZXRfdHlwZSh2b2lkKTsKICAqIEBp
bmRleDogQSAjZ3Vsb25nCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJL
aXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNB
VEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX2h0bWxfY29sbGVjdGlvbl9pdGVtKFdlYktp
dERPTUhUTUxDb2xsZWN0aW9uKiBzZWxmLCBndWxvbmcgaW5kZXgpOwogCiAvKioKQEAgLTY0LDgg
KzY2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9jb2xsZWN0aW9uX2l0ZW0oV2ViS2l0RE9NSFRNTENv
bGxlY3Rpb24qIHNlbGYsIGd1bG9uZyBpbmRleCk7CiAgKiBAbmFtZTogQSAjZ2NoYXIKICAqCiAg
KiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdl
YmtpdF9kb21faHRtbF9jb2xsZWN0aW9uX25hbWVkX2l0ZW0oV2ViS2l0RE9NSFRNTENvbGxlY3Rp
b24qIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lKTsKIAogLyoqCkBAIC03Myw4ICs3NywxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfY29sbGVjdGlvbl9uYW1lZF9pdGVtKFdlYktpdERPTUhUTUxDb2xsZWN0
aW9uKiBzZWxmLCBjb25zdCBnY2hhcgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0
aW9uCiAgKgogICogUmV0dXJuczogQSAjZ3Vsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ3Vsb25nCitX
RUJLSVRfREVQUkVDQVRFRCBndWxvbmcKIHdlYmtpdF9kb21faHRtbF9jb2xsZWN0aW9uX2dldF9s
ZW5ndGgoV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxETGlzdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxETGlzdEVsZW1lbnQu
Y3BwCmluZGV4IGYxMTJmYzY5NjRlLi42NGJiZTkyYjE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxE
TGlzdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRExpc3RFbGVtZW50LmNwcApAQCAtMzYsNiAr
MzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogV2ViS2l0RE9NSFRNTERMaXN0RWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxETGlzdEVs
ZW1lbnQqIG9iaikKQEAgLTE2NiwzICsxNjgsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9kX2xp
c3RfZWxlbWVudF9zZXRfY29tcGFjdChXZWJLaXRET01IVE1MRExpc3RFbGVtZW50KiBzZWxmLAog
ICAgIGl0ZW0tPnNldEJvb2xlYW5BdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpjb21wYWN0
QXR0ciwgdmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTERMaXN0RWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxETGlzdEVsZW1lbnQuaApp
bmRleCBhNmFlNzA4OWI0ZC4uMjgwMTc5MmI5OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRExpc3RF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxETGlzdEVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBz
dHJ1Y3QgX1dlYktpdERPTUhUTUxETGlzdEVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRN
TEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJL
SVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2RfbGlzdF9lbGVtZW50X2dldF90
eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9kX2xp
c3RfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRExp
c3RFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Ym9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9kX2xp
c3RfZWxlbWVudF9nZXRfY29tcGFjdChXZWJLaXRET01IVE1MRExpc3RFbGVtZW50KiBzZWxmKTsK
IAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZF9saXN0X2VsZW1lbnRf
Z2V0X2NvbXBhY3QoV2ViS2l0RE9NSFRNTERMaXN0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTERMaXN0RWxlbWVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfZF9saXN0X2VsZW1lbnRfc2V0X2NvbXBhY3QoV2ViS2l0RE9NSFRNTERMaXN0RWxlbWVu
dCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxEaXJlY3RvcnlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRGlyZWN0b3J5RWxlbWVudC5jcHAK
aW5kZXggMWYyYTliMDVkYmIuLjMxMWYxZjA2ZjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTERpcmVj
dG9yeUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRGlyZWN0b3J5RWxlbWVudC5jcHAKQEAgLTM2
LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIFdlYktpdERPTUhUTUxEaXJlY3RvcnlFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRN
TERpcmVjdG9yeUVsZW1lbnQqIG9iaikKQEAgLTE2NiwzICsxNjgsNCBAQCB2b2lkIHdlYmtpdF9k
b21faHRtbF9kaXJlY3RvcnlfZWxlbWVudF9zZXRfY29tcGFjdChXZWJLaXRET01IVE1MRGlyZWN0
b3J5RWxlbWVudAogICAgIGl0ZW0tPnNldEJvb2xlYW5BdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5h
bWVzOjpjb21wYWN0QXR0ciwgdmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNB
VElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTERpcmVjdG9yeUVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
RGlyZWN0b3J5RWxlbWVudC5oCmluZGV4IDc2YWQ2N2ZkNzdlLi45OTdiZTI0NjQ4YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxEaXJlY3RvcnlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxEaXJlY3RvcnlF
bGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MRGlyZWN0b3J5
RWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFz
czsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJr
aXRfZG9tX2h0bWxfZGlyZWN0b3J5X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAt
NTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2RpcmVjdG9yeV9lbGVtZW50X2dldF90eXBl
KHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxEaXJlY3RvcnlFbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9kaXJlY3RvcnlfZWxlbWVudF9n
ZXRfY29tcGFjdChXZWJLaXRET01IVE1MRGlyZWN0b3J5RWxlbWVudCogc2VsZik7CiAKIC8qKgpA
QCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2RpcmVjdG9yeV9lbGVtZW50X2dldF9j
b21wYWN0KFdlYktpdERPTUhUTUxEaXJlY3RvcnlFbGVtZW50KiBzZWwKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MRGlyZWN0b3J5RWxlbWVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfZGlyZWN0b3J5X2VsZW1lbnRfc2V0X2NvbXBhY3QoV2ViS2l0RE9NSFRNTERpcmVjdG9y
eUVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MRGl2RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTERpdkVsZW1lbnQuY3BwCmluZGV4
IDEzY2NjY2U3ODg1Li41ZjA2NDE2ZGNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxEaXZFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTERpdkVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5j
bHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JF
R0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRE
T01IVE1MRGl2RWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxEaXZFbGVtZW50KiBvYmopCkBAIC0x
NjgsMyArMTcwLDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfZGl2X2VsZW1lbnRfc2V0X2FsaWdu
KFdlYktpdERPTUhUTUxEaXZFbGVtZW50KiBzZWxmLCBjb25zdAogICAgIGl0ZW0tPnNldEF0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjphbGlnbkF0dHIs
IGNvbnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxEaXZFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTERpdkVsZW1lbnQuaApp
bmRleCA1ZjkyMDc2ZWNhOS4uNjIxNDNiOTIxMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRGl2RWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MRGl2RWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVj
dCBfV2ViS2l0RE9NSFRNTERpdkVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1l
bnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQ
UkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2Rpdl9lbGVtZW50X2dldF90eXBlKHZvaWQp
OwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9kaXZfZWxlbWVudF9n
ZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRGl2RWxlbWVudAogICoK
ICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9kaXZfZWxlbWVudF9nZXRfYWxpZ24oV2Vi
S2l0RE9NSFRNTERpdkVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdl
YmtpdF9kb21faHRtbF9kaXZfZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRNTERpdkVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxEaXZFbGVtZW50CiAgKiBAdmFs
dWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21faHRtbF9kaXZfZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRN
TERpdkVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTERvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRG9jdW1lbnQuY3BwCmlu
ZGV4IDk1MWE0YmRiZmY5Li5mNzEyZThkOWYyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxEb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxEb2N1bWVudC5jcHAKQEAgLTM1LDYgKzM1LDggQEAKICNpbmNs
dWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVH
SU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERP
TUhUTUxEb2N1bWVudCoga2l0KFdlYkNvcmU6OkhUTUxEb2N1bWVudCogb2JqKQpAQCAtNDI1LDMg
KzQyNyw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X3NldF92bGlua19jb2xvcihX
ZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYsIGNvbnN0CiAgICAgaXRlbS0+c2V0VmxpbmtDb2xv
cihjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRG9jdW1lbnQuaAppbmRl
eCAzYTI0MGU1MTg1OC4uOTRjMmE3MjQ3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRG9jdW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTERvY3VtZW50LmgKQEAgLTQ1LDM5ICs0NSw0NyBAQCBzdHJ1Y3QgX1dl
YktpdERPTUhUTUxEb2N1bWVudENsYXNzIHsKICAgICBXZWJLaXRET01Eb2N1bWVudENsYXNzIHBh
cmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdU
eXBlCiB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgogICog
d2Via2l0X2RvbV9odG1sX2RvY3VtZW50X2Nsb3NlOgogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxEb2N1bWVudAogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2
b2lkCiB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfY2xvc2UoV2ViS2l0RE9NSFRNTERvY3VtZW50
KiBzZWxmKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfY2xlYXI6CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTERvY3VtZW50CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9kb2N1bWVudF9jbGVhcihX
ZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKICAqIHdlYmtpdF9kb21faHRtbF9k
b2N1bWVudF9jYXB0dXJlX2V2ZW50czoKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRG9jdW1l
bnQKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9odG1sX2RvY3VtZW50X2NhcHR1cmVfZXZlbnRzKFdlYktpdERPTUhUTUxEb2N1bWVu
dCogc2VsZik7CiAKIC8qKgogICogd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X3JlbGVhc2VfZXZl
bnRzOgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxEb2N1bWVudAogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZG9jdW1l
bnRfcmVsZWFzZV9ldmVudHMoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC04NSw4ICs5MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfcmVsZWFzZV9ldmVudHMo
V2ViS2l0RE9NSFRNTERvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
RG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25n
CitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X2dldF93
aWR0aChXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTk0LDggKzEwNCwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfZ2V0X3dpZHRoKFdlYktpdERPTUhUTUxEb2N1
bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTERvY3VtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FU
RUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF9kb2N1bWVudF9nZXRfaGVpZ2h0KFdlYktpdERPTUhU
TUxEb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTAzLDggKzExNSwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfZG9jdW1lbnRfZ2V0X2hlaWdodChXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxEb2N1bWVudAogICoKICAqIFJldHVybnM6IEEgI2dj
aGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdl
YmtpdF9kb21faHRtbF9kb2N1bWVudF9nZXRfZGlyKFdlYktpdERPTUhUTUxEb2N1bWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtMTEyLDggKzEyNiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRf
Z2V0X2RpcihXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxEb2N1bWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRf
c2V0X2RpcihXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7
CiAKIC8qKgpAQCAtMTIxLDggKzEzNywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfc2V0
X2RpcihXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZQogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxEb2N1bWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFy
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtp
dF9kb21faHRtbF9kb2N1bWVudF9nZXRfYmdfY29sb3IoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC0xMzAsOCArMTQ4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9kb2N1bWVu
dF9nZXRfYmdfY29sb3IoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MRG9jdW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2Rv
Y3VtZW50X3NldF9iZ19jb2xvcihXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTM5LDggKzE1OSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
ZG9jdW1lbnRfc2V0X2JnX2NvbG9yKFdlYktpdERPTUhUTUxEb2N1bWVudCogc2VsZiwgY29uc3Qg
Z2NoYXIqCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTERvY3VtZW50CiAgKgogICogUmV0dXJu
czogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdj
aGFyKgogd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X2dldF9mZ19jb2xvcihXZWJLaXRET01IVE1M
RG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE0OCw4ICsxNzAsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2RvY3VtZW50X2dldF9mZ19jb2xvcihXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxEb2N1bWVudAogICogQHZhbHVlOiBBICNnY2hhcgog
ICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRf
ZG9tX2h0bWxfZG9jdW1lbnRfc2V0X2ZnX2NvbG9yKFdlYktpdERPTUhUTUxEb2N1bWVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNTcsOCArMTgxLDEwIEBAIHdlYmtp
dF9kb21faHRtbF9kb2N1bWVudF9zZXRfZmdfY29sb3IoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBz
ZWxmLCBjb25zdCBnY2hhcioKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRG9jdW1lbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfZ2V0X2FsaW5rX2NvbG9y
KFdlYktpdERPTUhUTUxEb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTY2LDggKzE5MiwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfZ2V0X2FsaW5rX2NvbG9yKFdlYktpdERPTUhUTUxE
b2N1bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTERvY3VtZW50CiAgKiBA
dmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9kb2N1bWVudF9zZXRfYWxpbmtfY29sb3IoV2ViS2l0
RE9NSFRNTERvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE3
NSw4ICsyMDMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X3NldF9hbGlua19jb2xvcihX
ZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGEKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZG9j
dW1lbnRfZ2V0X2xpbmtfY29sb3IoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC0xODQsOCArMjE0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9kb2N1bWVudF9nZXRfbGlua19j
b2xvcihXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxEb2N1bWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfc2V0
X2xpbmtfY29sb3IoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUpOwogCiAvKioKQEAgLTE5Myw4ICsyMjUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2RvY3VtZW50
X3NldF9saW5rX2NvbG9yKFdlYktpdERPTUhUTUxEb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
Y2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3
ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfZ2V0X3ZsaW5rX2NvbG9yKFdlYktpdERPTUhUTUxEb2N1
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjAyLDggKzIzNiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
ZG9jdW1lbnRfZ2V0X3ZsaW5rX2NvbG9yKFdlYktpdERPTUhUTUxEb2N1bWVudCogc2VsZik7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTERvY3VtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21faHRtbF9kb2N1bWVudF9zZXRfdmxpbmtfY29sb3IoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBz
ZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRWxlbWVudC5jcHAKaW5kZXggOTM0Y2U0Yjc0ZmYu
LjdlMTcxNTQwMzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MRWxlbWVudC5jcHAKQEAgLTM3LDYgKzM3LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FU
SU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxFbGVtZW50KiBraXQo
V2ViQ29yZTo6SFRNTEVsZW1lbnQqIG9iaikKQEAgLTYzNywzICs2MzksNCBAQCB2b2lkIHdlYmtp
dF9kb21faHRtbF9lbGVtZW50X3NldF9zcGVsbGNoZWNrKFdlYktpdERPTUhUTUxFbGVtZW50KiBz
ZWxmLCBnYm9vbGVhbgogICAgIGl0ZW0tPnNldFNwZWxsY2hlY2sodmFsdWUpOwogfQogCitHX0dO
VUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MRWxlbWVudC5oCmluZGV4IDJkMWZiNWE1ZTRmLi4zYzM4NWQxNmI3OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxFbGVtZW50LmgKQEAgLTQ1
LDE1ICs0NSwxNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgewogICAgIFdl
YktpdERPTUVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBl
CitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X3R5
cGUodm9pZCk7CiAKIC8qKgogICogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfY2xpY2s6CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfY2xpY2soV2Vi
S2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYxLDggKzYzLDEwIEBAIHdlYmtp
dF9kb21faHRtbF9lbGVtZW50X2NsaWNrKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFy
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtp
dF9kb21faHRtbF9lbGVtZW50X2dldF90aXRsZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtNzAsOCArNzQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X3Rp
dGxlKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9zZXRfdGl0
bGUoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8q
KgpAQCAtNzksOCArODUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X3RpdGxlKFdl
YktpdERPTUhUTUxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRt
bF9lbGVtZW50X2dldF9sYW5nKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC04OCw4ICs5NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfbGFuZyhXZWJLaXRE
T01IVE1MRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X2xhbmcoV2ViS2l0RE9N
SFRNTEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtOTcsOCAr
MTA3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF9sYW5nKFdlYktpdERPTUhUTUxF
bGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9n
ZXRfZGlyKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMDYsOCArMTE4
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X2dldF9kaXIoV2ViS2l0RE9NSFRNTEVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxFbGVtZW50CiAgKiBAdmFsdWU6
IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZv
aWQKIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF9kaXIoV2ViS2l0RE9NSFRNTEVsZW1lbnQq
IHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTE1LDggKzEyOSwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9zZXRfZGlyKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxm
LCBjb25zdCBnY2hhciogdmFsdWUpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxFbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lU
X0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X2dldF90YWJfaW5kZXgo
V2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEyNCw4ICsxNDAsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X3RhYl9pbmRleChXZWJLaXRET01IVE1MRWxlbWVu
dCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKICAqIEB2YWx1ZTog
QSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9p
ZAogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X3RhYl9pbmRleChXZWJLaXRET01IVE1MRWxl
bWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioKQEAgLTEzMyw4ICsxNTEsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X3RhYl9pbmRleChXZWJLaXRET01IVE1MRWxlbWVudCog
c2VsZiwgZ2xvbmcgdmFsdWUpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxFbGVtZW50CiAg
KgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9E
RVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X2FjY2Vzc19rZXko
V2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE0Miw4ICsxNjIsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X2FjY2Vzc19rZXkoV2ViS2l0RE9NSFRNTEVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxFbGVtZW50CiAgKiBAdmFsdWU6
IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZv
aWQKIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF9hY2Nlc3Nfa2V5KFdlYktpdERPTUhUTUxF
bGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE1MSw4ICsxNzMs
MTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X2FjY2Vzc19rZXkoV2ViS2l0RE9NSFRN
TEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxF
bGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioK
K1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X2lu
bmVyX3RleHQoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE2MSw4ICsx
ODUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X2lubmVyX3RleHQoV2ViS2l0RE9N
SFRNTEVsZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNnY2hhcgogICogQGVycm9yOiAjR0Vy
cm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF9lbGVtZW50X3NldF9pbm5lcl90ZXh0KFdlYktpdERPTUhUTUxFbGVtZW50
KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0x
NzAsOCArMTk2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF9pbm5lcl90ZXh0KFdl
YktpdERPTUhUTUxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhcioKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9lbGVt
ZW50X2dldF9vdXRlcl90ZXh0KFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC0xODAsOCArMjA4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X2dldF9vdXRlcl90ZXh0
KFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqIEBl
cnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9zZXRfb3V0ZXJfdGV4dChXZWJLaXRET01I
VE1MRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7CiAK
IC8qKgpAQCAtMTg5LDggKzIxOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9zZXRfb3V0
ZXJfdGV4dChXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqCiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9t
X2h0bWxfZWxlbWVudF9nZXRfY29udGVudF9lZGl0YWJsZShXZWJLaXRET01IVE1MRWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMTk5LDggKzIzMSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZWxlbWVu
dF9nZXRfY29udGVudF9lZGl0YWJsZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZik7CiAgKiBA
dmFsdWU6IEEgI2djaGFyCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0
X2NvbnRlbnRfZWRpdGFibGUoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFy
KiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTIwOCw4ICsyNDIsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X2NvbnRlbnRfZWRpdGFibGUoV2ViS2l0RE9NSFRNTEVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGcKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRWxlbWVudAog
ICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dF
QktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfaXNf
Y29udGVudF9lZGl0YWJsZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
MjE5LDggKzI1NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfaXNfY29udGVudF9l
ZGl0YWJsZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnYm9v
bGVhbgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJ
VF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfdHJhbnNs
YXRlKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMjksOCArMjY3LDEw
IEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X2dldF90cmFuc2xhdGUoV2ViS2l0RE9NSFRNTEVs
ZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX2VsZW1lbnRfc2V0X3RyYW5zbGF0ZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwg
Z2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTI0MCw4ICsyODAsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2VsZW1lbnRfc2V0X3RyYW5zbGF0ZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwgZ2Jv
b2xlYW4gdmFsdWUKICAqIFJldHVybnM6IEEgI2dib29sZWFuCiAgKgogICogU2luY2U6IDIuMTYK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdl
YmtpdF9kb21faHRtbF9lbGVtZW50X2dldF9kcmFnZ2FibGUoV2ViS2l0RE9NSFRNTEVsZW1lbnQq
IHNlbGYpOwogCiAvKioKQEAgLTI1MCw4ICsyOTIsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1l
bnRfZ2V0X2RyYWdnYWJsZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZik7CiAgKiBAdmFsdWU6
IEEgI2dib29sZWFuCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9zZXRfZHJhZ2dh
YmxlKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIC8qKgpA
QCAtMjYxLDggKzMwNSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9zZXRfZHJhZ2dhYmxl
KFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZQogICogUmV0dXJuczog
QSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfd2Via2l0
ZHJvcHpvbmUoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTI3MSw4ICsz
MTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X3dlYmtpdGRyb3B6b25lKFdlYktp
dERPTUhUTUxFbGVtZW50KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCiAgKiBTaW5j
ZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF9lbGVtZW50X3NldF93ZWJraXRkcm9wem9uZShXZWJLaXRET01IVE1MRWxl
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0yODIsOCArMzMwLDEw
IEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF93ZWJraXRkcm9wem9uZShXZWJLaXRET01I
VE1MRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgogICoK
ICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNB
VEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfaGlkZGVuKFdlYktpdERP
TUhUTUxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yOTIsOCArMzQyLDEwIEBAIHdlYmtpdF9k
b21faHRtbF9lbGVtZW50X2dldF9oaWRkZW4oV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwog
ICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRf
c2V0X2hpZGRlbihXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwog
CiAvKioKQEAgLTMwMyw4ICszNTUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X2hp
ZGRlbihXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogICogUmV0
dXJuczogQSAjZ2Jvb2xlYW4KICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdi
b29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX2VsZW1l
bnRfZ2V0X3NwZWxsY2hlY2soV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTMxMyw4ICszNjcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X3NwZWxsY2hlY2so
V2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoK
ICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X3NwZWxsY2hlY2soV2ViS2l0RE9NSFRN
TEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MRW1iZWRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRW1iZWRFbGVtZW50LmNwcApp
bmRleCA4ZjA3MDlhMjkyOS4uOTEzMTI0NjkzOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRW1iZWRF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudC5jcHAKQEAgLTM2LDYgKzM2LDgg
QEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitH
X0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IFdlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MRW1iZWRFbGVtZW50
KiBvYmopCkBAIC0zNDQsMyArMzQ2LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxl
bWVudF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudCogc2VsZiwgZ2wKICAgICBp
dGVtLT5zZXRJbnRlZ3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OndpZHRoQXR0ciwg
dmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTEVtYmVkRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQuaAppbmRleCA2
OGQyMzMzMGM5Yi4uNmVhZmQ1N2NmZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRW1iZWRFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3Qg
X1dlYktpdERPTUhUTUxFbWJlZEVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1l
bnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQ
UkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfZ2V0X3R5cGUodm9p
ZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VtYmVkX2VsZW1l
bnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9lbWJlZF9lbGVtZW50X2dldF9h
bGlnbihXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2
NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9N
SFRNTEVtYmVkRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVtYmVk
RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9zZXRf
YWxpZ24oV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVl
KTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVu
dF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudCogc2VsZiwgY29uc3QgZwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Vi
a2l0X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfZ2V0X2hlaWdodChXZWJLaXRET01IVE1MRW1iZWRF
bGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
ZW1iZWRfZWxlbWVudF9nZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfc2V0X2hlaWdodChXZWJLaXRET01IVE1MRW1i
ZWRFbGVtZW50KiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAKIC8qKgpAQCAtODksOCArOTcsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfc2V0X2hlaWdodChXZWJLaXRET01IVE1MRW1i
ZWRFbGVtZW50KiBzZWxmLCBnbG9uZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxFbWJlZEVs
ZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgor
V0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9n
ZXRfbmFtZShXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC05OCw4
ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0
RE9NSFRNTEVtYmVkRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVt
YmVkRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9z
ZXRfbmFtZShXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUpOwogCiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Via2l0X2RvbV9odG1sX2VtYmVkX2Vs
ZW1lbnRfc2V0X25hbWUoV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudCogc2VsZiwgY29uc3QgZ2MK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50CiAgKgogICogUmV0dXJuczog
QSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFy
Kgogd2Via2l0X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfZ2V0X3NyYyhXZWJLaXRET01IVE1MRW1i
ZWRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMTYsOCArMTMwLDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9lbWJlZF9lbGVtZW50X2dldF9zcmMoV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudAogICogQHZhbHVlOiBB
ICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9zZXRfc3JjKFdlYktpdERPTUhUTUxFbWJl
ZEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTI1LDggKzE0
MSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9zZXRfc3JjKFdlYktpdERPTUhU
TUxFbWJlZEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaAogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxFbWJlZEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZW1iZWRf
ZWxlbWVudF9nZXRfdHlwZV9hdHRyKFdlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTEzNCw4ICsxNTIsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRf
Z2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF9lbWJlZF9lbGVtZW50X3NldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVu
dCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNDMsOCArMTYzLDEwIEBA
IHdlYmtpdF9kb21faHRtbF9lbWJlZF9lbGVtZW50X3NldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRN
TEVtYmVkRWxlbWVudCogc2VsZiwgY29uCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVtYmVk
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcK
K1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9n
ZXRfd2lkdGgoV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTUy
LDggKzE3NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9nZXRfd2lkdGgoV2Vi
S2l0RE9NSFRNTEVtYmVkRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TEVtYmVkRWxlbWVudAogICogQHZhbHVlOiBBICNnbG9uZwogICoKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVu
dF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudCogc2VsZiwgZ2xvbmcgdmFsdWUp
OwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGaWVsZFNldEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxGaWVsZFNldEVsZW1lbnQuY3BwCmluZGV4IDkxYTJjZDgyYmQwLi42ZjEwNGI0
ZWFhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGaWVsZFNldEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MRmllbGRTZXRFbGVtZW50LmNwcApAQCAtMzgsNiArMzgsOCBAQAogI2luY2x1ZGUgPHd0Zi9H
ZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVf
REVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTEZpZWxk
U2V0RWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxGaWVsZFNldEVsZW1lbnQqIG9iaikKQEAgLTE0
MywzICsxNDUsNCBAQCBXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHdlYmtpdF9kb21faHRtbF9m
aWVsZF9zZXRfZWxlbWVudF9nZXRfZm9ybShXZWJLaXRET01IVAogICAgIFJlZlB0cjxXZWJDb3Jl
OjpIVE1MRm9ybUVsZW1lbnQ+IGdvYmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5mb3Jt
KCkpOwogICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKIH0KK0df
R05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRmllbGRT
ZXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTEZpZWxkU2V0RWxlbWVudC5oCmluZGV4IGI4NzY2MTc3YjI4
Li40NGFlYTY0NDQ5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGaWVsZFNldEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTEZpZWxkU2V0RWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2Vi
S2l0RE9NSFRNTEZpZWxkU2V0RWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVu
dENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBS
RUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfZmllbGRfc2V0X2VsZW1lbnRfZ2V0X3R5cGUo
dm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ZpZWxkX3Nl
dF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGaWVs
ZFNldEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERP
TUhUTUxGb3JtRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxGb3JtRWxlbWVu
dCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCoKIHdlYmtpdF9k
b21faHRtbF9maWVsZF9zZXRfZWxlbWVudF9nZXRfZm9ybShXZWJLaXRET01IVE1MRmllbGRTZXRF
bGVtZW50KiBzZWxmKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRm9udEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxGb250RWxlbWVudC5jcHAKaW5kZXggNjBmNjdlNzdkZDIuLmVm
OTQ4ZDk1NTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZvbnRFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTEZvbnRFbGVtZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQ
UkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTEZvbnRFbGVt
ZW50KiBraXQoV2ViQ29yZTo6SFRNTEZvbnRFbGVtZW50KiBvYmopCkBAIC0yNDAsMyArMjQyLDQg
QEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfZm9udF9lbGVtZW50X3NldF9zaXplKFdlYktpdERPTUhU
TUxGb250RWxlbWVudCogc2VsZiwgY29uc3QKICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0
U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6c2l6ZUF0dHIsIGNvbnZlcnRlZFZh
bHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxGb250RWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGb250RWxlbWVudC5oCmluZGV4IDhhMmUw
ODIzMWI4Li43ODI5ZDZiM2I1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGb250RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MRm9udEVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktp
dERPTUhUTUxGb250RWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNz
IHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVE
IEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfZm9udF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAv
KioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9mb250X2VsZW1lbnRfZ2V0X3R5
cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZvbnRFbGVtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNB
VEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2ZvbnRfZWxlbWVudF9nZXRfY29sb3IoV2ViS2l0
RE9NSFRNTEZvbnRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfZm9udF9lbGVtZW50X2dldF9jb2xvcihXZWJLaXRET01IVE1MRm9udEVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGb250RWxlbWVudAogICogQHZh
bHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZm9udF9lbGVtZW50X3NldF9jb2xvcihXZWJLaXRET01I
VE1MRm9udEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEs
OCArNzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ZvbnRfZWxlbWVudF9zZXRfY29sb3IoV2ViS2l0
RE9NSFRNTEZvbnRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2gKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MRm9udEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZm9u
dF9lbGVtZW50X2dldF9mYWNlKFdlYktpdERPTUhUTUxGb250RWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtODAsOCArODYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ZvbnRfZWxlbWVudF9nZXRfZmFj
ZShXZWJLaXRET01IVE1MRm9udEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxGb250RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZm9udF9lbGVt
ZW50X3NldF9mYWNlKFdlYktpdERPTUhUTUxGb250RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IHZhbHVlKTsKIAogLyoqCkBAIC04OSw4ICs5NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZm9udF9l
bGVtZW50X3NldF9mYWNlKFdlYktpdERPTUhUTUxGb250RWxlbWVudCogc2VsZiwgY29uc3QgZ2No
YQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGb250RWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21faHRtbF9mb250X2VsZW1lbnRfZ2V0X3NpemUoV2ViS2l0RE9NSFRNTEZv
bnRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC05OCw4ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2ZvbnRfZWxlbWVudF9nZXRfc2l6ZShXZWJLaXRET01IVE1MRm9udEVsZW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGb250RWxlbWVudAogICogQHZhbHVlOiBBICNn
Y2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3
ZWJraXRfZG9tX2h0bWxfZm9udF9lbGVtZW50X3NldF9zaXplKFdlYktpdERPTUhUTUxGb250RWxl
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MRm9ybUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGb3JtRWxlbWVudC5jcHAKaW5k
ZXggMTczMjc3Njg0YTcuLmVkOTZmMWI1M2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZvcm1FbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50LmNwcApAQCAtMzcsNiArMzcsOCBAQAog
I2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05V
Q19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2Vi
S2l0RE9NSFRNTEZvcm1FbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50KiBvYmop
CkBAIC00NDUsMyArNDQ3LDQgQEAgZ2xvbmcgd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9n
ZXRfbGVuZ3RoKFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogc2VsZikKICAgICBnbG9uZyByZXN1
bHQgPSBpdGVtLT5sZW5ndGgoKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQorR19HTlVDX0VORF9J
R05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGb3JtRWxlbWVudC5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxGb3JtRWxlbWVudC5oCmluZGV4IGI5ZWY4YTY1YmZlLi41ZTY0YTNmY2FmNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxGb3JtRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRm9ybUVsZW1lbnQu
aApAQCAtNDUsMjMgKzQ1LDI3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50Q2xh
c3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAot
V0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRt
bF9mb3JtX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgogICogd2Via2l0X2RvbV9odG1s
X2Zvcm1fZWxlbWVudF9zdWJtaXQ6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVt
ZW50CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfc3VibWl0KFdlYktpdERPTUhUTUxGb3JtRWxlbWVu
dCogc2VsZik7CiAKIC8qKgogICogd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9yZXNldDoK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxl
bWVudF9yZXNldChXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTY5
LDggKzczLDEwIEBAIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfcmVzZXQoV2ViS2l0RE9N
SFRNTEZvcm1FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRm9ybUVs
ZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgor
V0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X2dl
dF9hY2NlcHRfY2hhcnNldChXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTc4LDggKzg0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfZ2V0X2FjY2Vw
dF9jaGFyc2V0KFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9m
b3JtX2VsZW1lbnRfc2V0X2FjY2VwdF9jaGFyc2V0KFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCog
c2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC04Nyw4ICs5NSwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X3NldF9hY2NlcHRfY2hhcnNldChXZWJLaXRET01IVE1M
Rm9ybUVsZW1lbnQqIHNlbGYsCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9nZXRfYWN0
aW9uKFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtOTYsOCArMTA2
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfZ2V0X2FjdGlvbihXZWJLaXRET01I
VE1MRm9ybUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGb3JtRWxl
bWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X3NldF9hY3Rp
b24oV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwog
CiAvKioKQEAgLTEwNSw4ICsxMTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9z
ZXRfYWN0aW9uKFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogc2VsZiwgY29uc3QgZ2MKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hh
cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJr
aXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X2dldF9lbmN0eXBlKFdlYktpdERPTUhUTUxGb3JtRWxl
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTE0LDggKzEyOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
Zm9ybV9lbGVtZW50X2dldF9lbmN0eXBlKFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dj
aGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfc2V0X2VuY3R5cGUoV2ViS2l0RE9NSFRNTEZvcm1F
bGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEyMyw4ICsxMzks
MTAgQEAgd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9zZXRfZW5jdHlwZShXZWJLaXRET01I
VE1MRm9ybUVsZW1lbnQqIHNlbGYsIGNvbnN0IGcKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
Rm9ybUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVt
ZW50X2dldF9lbmNvZGluZyhXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTEzMiw4ICsxNTAsMTAgQEAgd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9nZXRfZW5j
b2RpbmcoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MRm9ybUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2Zvcm1f
ZWxlbWVudF9zZXRfZW5jb2RpbmcoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE0MSw4ICsxNjEsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2Zvcm1fZWxlbWVudF9zZXRfZW5jb2RpbmcoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBz
ZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGb3JtRWxlbWVudAogICoKICAq
IFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVD
QVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfZ2V0X21ldGhvZChXZWJL
aXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE1MCw4ICsxNzIsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9nZXRfbWV0aG9kKFdlYktpdERPTUhUTUxGb3Jt
RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50CiAg
KiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBS
RUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfc2V0X21ldGhvZChXZWJL
aXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpA
QCAtMTU5LDggKzE4MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X3NldF9tZXRo
b2QoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmLCBjb25zdCBnYwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxGb3JtRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21f
aHRtbF9mb3JtX2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxm
KTsKIAogLyoqCkBAIC0xNjgsOCArMTk0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1l
bnRfZ2V0X25hbWUoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X2Zvcm1fZWxlbWVudF9zZXRfbmFtZShXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTc3LDggKzIwNSwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfZm9ybV9lbGVtZW50X3NldF9uYW1lKFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2NoYQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGb3JtRWxlbWVudAogICoK
ICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfZ2V0X3RhcmdldChX
ZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE4Niw4ICsyMTYsMTAg
QEAgd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9nZXRfdGFyZ2V0KFdlYktpdERPTUhUTUxG
b3JtRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50
CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfc2V0X3RhcmdldChX
ZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8q
KgpAQCAtMTk1LDggKzIyNywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X3NldF90
YXJnZXQoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmLCBjb25zdCBnYwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxGb3JtRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBm
dWxsKTogQSAjV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRE
T01IVE1MQ29sbGVjdGlvbioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxDb2xsZWN0
aW9uKgogd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9nZXRfZWxlbWVudHMoV2ViS2l0RE9N
SFRNTEZvcm1FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMDQsOCArMjM4LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9mb3JtX2VsZW1lbnRfZ2V0X2VsZW1lbnRzKFdlYktpdERPTUhUTUxGb3JtRWxl
bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJF
Q0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfZ2V0X2xlbmd0aChXZWJL
aXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxGcmFtZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQuY3BwCmluZGV4
IDc5YzE2MGRiZmMwLi5jMTVmNmE0ODY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGcmFtZUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MRnJhbWVFbGVtZW50LmNwcApAQCAtMzgsNiArMzgsOCBAQAog
I2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05V
Q19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2Vi
S2l0RE9NSFRNTEZyYW1lRWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxGcmFtZUVsZW1lbnQqIG9i
aikKQEAgLTUxMiwzICs1MTQsNCBAQCBnbG9uZyB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVu
dF9nZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYpCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxGcmFtZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRnJhbWVFbGVtZW50LmgKaW5kZXgg
NzNjN2JjYzJmNzQuLjBmZWZmNDcyMjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MRnJhbWVFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0
IF9XZWJLaXRET01IVE1MRnJhbWVFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVt
ZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RF
UFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF90eXBlKHZv
aWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVt
ZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGcmFtZUVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9nZXRf
ZnJhbWVfYm9yZGVyKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF9mcmFtZV9i
b3JkZXIoV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTEZyYW1lRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZnJh
bWVfZWxlbWVudF9zZXRfZnJhbWVfYm9yZGVyKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfc2V0X2ZyYW1lX2JvcmRlcihXZWJLaXRET01IVE1MRnJh
bWVFbGVtZW50KiBzZWxmLAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9nZXRfbG9u
Z19kZXNjKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDgg
Kzg2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF9sb25nX2Rlc2MoV2Vi
S2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TEZyYW1lRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVu
dF9zZXRfbG9uZ19kZXNjKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtODksOCArOTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2Zy
YW1lX2VsZW1lbnRfc2V0X2xvbmdfZGVzYyhXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxm
LCBjb24KICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50CiAgKgogICogUmV0
dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVE
IGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfZ2V0X21hcmdpbl9oZWlnaHQo
V2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtOTgsOCArMTA4LDEw
IEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF9tYXJnaW5faGVpZ2h0KFdlYktp
dERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYpCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZy
YW1lRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9z
ZXRfbWFyZ2luX2hlaWdodChXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmLCBjb25zdCBn
Y2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Via2l0X2RvbV9odG1s
X2ZyYW1lX2VsZW1lbnRfc2V0X21hcmdpbl9oZWlnaHQoV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVu
dCogc2VsZiwKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNB
VEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfZ2V0X21hcmdpbl93aWR0
aChXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMTYsOCArMTMw
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF9tYXJnaW5fd2lkdGgoV2Vi
S2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TEZyYW1lRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVu
dF9zZXRfbWFyZ2luX3dpZHRoKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYsIGNvbnN0
IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTI1LDggKzE0MSwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfZnJhbWVfZWxlbWVudF9zZXRfbWFyZ2luX3dpZHRoKFdlYktpdERPTUhUTUxGcmFtZUVsZW1l
bnQqIHNlbGYsCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudAogICoKICAq
IFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVD
QVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF9uYW1lKFdlYktp
dERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEzNCw4ICsxNTIsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0RE9NSFRNTEZyYW1l
RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudAog
ICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9zZXRfbmFtZShXZWJL
aXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioK
QEAgLTE0Myw4ICsxNjMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfc2V0X25h
bWUoV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZiwgY29uc3QgZ2MKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4K
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdl
YmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF9ub19yZXNpemUoV2ViS2l0RE9NSFRNTEZy
YW1lRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTUyLDggKzE3NCwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfZnJhbWVfZWxlbWVudF9nZXRfbm9fcmVzaXplKFdlYktpdERPTUhUTUxGcmFtZUVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQKICAqIEB2
YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfc2V0X25vX3Jlc2l6ZShX
ZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIC8qKgpA
QCAtMTYxLDggKzE4NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9zZXRfbm9f
cmVzaXplKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYsIGdibwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9t
X2h0bWxfZnJhbWVfZWxlbWVudF9nZXRfc2Nyb2xsaW5nKFdlYktpdERPTUhUTUxGcmFtZUVsZW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTE3MCw4ICsxOTYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2Zy
YW1lX2VsZW1lbnRfZ2V0X3Njcm9sbGluZyhXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxm
KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50CiAgKiBAdmFsdWU6IEEg
I2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X3NldF9zY3JvbGxpbmcoV2ViS2l0RE9NSFRN
TEZyYW1lRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNzks
OCArMjA3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X3NldF9zY3JvbGxpbmco
V2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZiwgY29uCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTEZyYW1lRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9m
cmFtZV9lbGVtZW50X2dldF9zcmMoV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtMTg4LDggKzIxOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9n
ZXRfc3JjKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxGcmFtZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2Zy
YW1lX2VsZW1lbnRfc2V0X3NyYyhXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE5Nyw4ICsyMjksMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2ZyYW1lX2VsZW1lbnRfc2V0X3NyYyhXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxm
LCBjb25zdCBnY2gKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50CiAgKgog
ICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Eb2N1bWVudAorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIFdlYktpdERPTURvY3VtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9N
RG9jdW1lbnQqCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9nZXRfY29udGVudF9kb2N1
bWVudChXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMDYsOCAr
MjQwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF9jb250ZW50X2RvY3Vt
ZW50KFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTEZyYW1lRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2Vi
S2l0RE9NRE9NV2luZG93CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRE9NV2luZG93KgorV0VC
S0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRE9NV2luZG93Kgogd2Via2l0X2RvbV9odG1sX2ZyYW1l
X2VsZW1lbnRfZ2V0X2NvbnRlbnRfd2luZG93KFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNl
bGYpOwogCiAvKioKQEAgLTIxNSw4ICsyNTEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ZyYW1lX2Vs
ZW1lbnRfZ2V0X2NvbnRlbnRfd2luZG93KFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50CiAgKgogICogUmV0dXJuczog
QSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcK
IHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF93aWR0aChXZWJLaXRET01IVE1MRnJh
bWVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMjQsOCArMjYyLDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9mcmFtZV9lbGVtZW50X2dldF93aWR0aChXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBz
ZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50CiAgKgogICogUmV0
dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQg
Z2xvbmcKIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF9oZWlnaHQoV2ViS2l0RE9N
SFRNTEZyYW1lRWxlbWVudCogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTEZyYW1lU2V0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAKaW5k
ZXggNzViY2U0MzM4MGMuLmIxZWRlNWI0M2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZyYW1lU2V0
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGcmFtZVNldEVsZW1lbnQuY3BwCkBAIC0zNiw2ICsz
Niw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
IAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBXZWJLaXRET01IVE1MRnJhbWVTZXRFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTEZyYW1l
U2V0RWxlbWVudCogb2JqKQpAQCAtMjA0LDMgKzIwNiw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1s
X2ZyYW1lX3NldF9lbGVtZW50X3NldF9yb3dzKFdlYktpdERPTUhUTUxGcmFtZVNldEVsZW1lbnQq
IHNlCiAgICAgaXRlbS0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3Jl
OjpIVE1MTmFtZXM6OnJvd3NBdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRf
SUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRnJhbWVTZXRFbGVtZW50
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTEZyYW1lU2V0RWxlbWVudC5oCmluZGV4IGJhMmIxYmQwMTNhLi4yNTIwOGYz
NGE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGcmFtZVNldEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TEZyYW1lU2V0RWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRN
TEZyYW1lU2V0RWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBh
cmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdU
eXBlCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfc2V0X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAK
IC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ZyYW1lX3NldF9lbGVtZW50
X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGcmFtZVNldEVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfc2V0X2VsZW1lbnRf
Z2V0X2NvbHMoV2ViS2l0RE9NSFRNTEZyYW1lU2V0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
NjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ZyYW1lX3NldF9lbGVtZW50X2dldF9jb2xz
KFdlYktpdERPTUhUTUxGcmFtZVNldEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxGcmFtZVNldEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2Zy
YW1lX3NldF9lbGVtZW50X3NldF9jb2xzKFdlYktpdERPTUhUTUxGcmFtZVNldEVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2ZyYW1lX3NldF9lbGVtZW50X3NldF9jb2xzKFdlYktpdERPTUhUTUxGcmFtZVNl
dEVsZW1lbnQqIHNlbGYsIGMKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRnJhbWVTZXRFbGVt
ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dF
QktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2ZyYW1lX3NldF9lbGVtZW50
X2dldF9yb3dzKFdlYktpdERPTUhUTUxGcmFtZVNldEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTgwLDggKzg2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9zZXRfZWxlbWVudF9nZXRfcm93
cyhXZWJLaXRET01IVE1MRnJhbWVTZXRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MRnJhbWVTZXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9m
cmFtZV9zZXRfZWxlbWVudF9zZXRfcm93cyhXZWJLaXRET01IVE1MRnJhbWVTZXRFbGVtZW50KiBz
ZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxIUkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIUkVsZW1lbnQuY3BwCmluZGV4IDliMDEwYmYy
Zjc0Li4yZjZlMjQwYjEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIUkVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MSFJFbGVtZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9H
ZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVf
REVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTEhSRWxl
bWVudCoga2l0KFdlYkNvcmU6OkhUTUxIUkVsZW1lbnQqIG9iaikKQEAgLTI3NCwzICsyNzYsNCBA
QCB2b2lkIHdlYmtpdF9kb21faHRtbF9ocl9lbGVtZW50X3NldF93aWR0aChXZWJLaXRET01IVE1M
SFJFbGVtZW50KiBzZWxmLCBjb25zdCBnYwogICAgIGl0ZW0tPnNldEF0dHJpYnV0ZVdpdGhvdXRT
eW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjp3aWR0aEF0dHIsIGNvbnZlcnRlZFZh
bHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxIUkVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSFJFbGVtZW50LmgKaW5kZXggNmZhY2JjMGVk
ZjUuLmYwM2QwN2VkYWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEhSRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MSFJFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1M
SFJFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2Ns
YXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdl
YmtpdF9kb21faHRtbF9ocl9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDgg
KzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9ocl9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxIUkVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hh
cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJr
aXRfZG9tX2h0bWxfaHJfZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRNTEhSRWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2hyX2VsZW1l
bnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxIUkVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxIUkVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2hy
X2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERPTUhUTUxIUkVsZW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2hy
X2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERPTUhUTUxIUkVsZW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxIUkVsZW1lbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRF
RCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX2hyX2VsZW1lbnRfZ2V0X25vX3NoYWRlKFdlYktp
dERPTUhUTUxIUkVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9ocl9lbGVtZW50X2dldF9ub19zaGFkZShXZWJLaXRET01IVE1MSFJFbGVtZW50
KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSFJFbGVtZW50CiAgKiBAdmFsdWU6
IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21faHRtbF9ocl9lbGVtZW50X3NldF9ub19zaGFkZShXZWJLaXRET01I
VE1MSFJFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIC8qKgpAQCAtODksOCArOTcs
MTAgQEAgd2Via2l0X2RvbV9odG1sX2hyX2VsZW1lbnRfc2V0X25vX3NoYWRlKFdlYktpdERPTUhU
TUxIUkVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHYKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
SFJFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hh
cioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2hyX2VsZW1lbnRf
Z2V0X3NpemUoV2ViS2l0RE9NSFRNTEhSRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtOTgsOCAr
MTA4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9ocl9lbGVtZW50X2dldF9zaXplKFdlYktpdERPTUhU
TUxIUkVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxIUkVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2hyX2VsZW1lbnRfc2V0X3NpemUoV2ViS2l0
RE9NSFRNTEhSRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0x
MDcsOCArMTE5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9ocl9lbGVtZW50X3NldF9zaXplKFdlYktp
dERPTUhUTUxIUkVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTEhSRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9o
cl9lbGVtZW50X2dldF93aWR0aChXZWJLaXRET01IVE1MSFJFbGVtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC0xMTYsOCArMTMwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9ocl9lbGVtZW50X2dldF93aWR0
aChXZWJLaXRET01IVE1MSFJFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MSFJFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9ocl9lbGVtZW50X3Nl
dF93aWR0aChXZWJLaXRET01IVE1MSFJFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
OwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIZWFkRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTEhlYWRFbGVtZW50LmNwcAppbmRleCA5NjVmN2M5NDZkYy4uZWQ0NjllYzlkODYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MSGVhZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSGVhZEVsZW1l
bnQuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MSGVhZEVsZW1lbnQqIGtpdChXZWJD
b3JlOjpIVE1MSGVhZEVsZW1lbnQqIG9iaikKQEAgLTE2OCwzICsxNzAsNCBAQCB2b2lkIHdlYmtp
dF9kb21faHRtbF9oZWFkX2VsZW1lbnRfc2V0X3Byb2ZpbGUoV2ViS2l0RE9NSFRNTEhlYWRFbGVt
ZW50KiBzZWxmLCBjbwogICAgIGl0ZW0tPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24oV2ViQ29yZTo6SFRNTE5hbWVzOjpwcm9maWxlQXR0ciwgY29udmVydGVkVmFsdWUpOwogfQog
CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEhl
YWRFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTEhlYWRFbGVtZW50LmgKaW5kZXggY2U4MTZjZTY5NGUuLjlm
Y2RjNGYyMTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEhlYWRFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxIZWFkRWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTEhl
YWRFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2Ns
YXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdl
YmtpdF9kb21faHRtbF9oZWFkX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMs
OCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2hlYWRfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSGVhZEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIq
CiB3ZWJraXRfZG9tX2h0bWxfaGVhZF9lbGVtZW50X2dldF9wcm9maWxlKFdlYktpdERPTUhUTUxI
ZWFkRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2hlYWRfZWxlbWVudF9nZXRfcHJvZmlsZShXZWJLaXRET01IVE1MSGVhZEVsZW1lbnQqIHNl
bGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxIZWFkRWxlbWVudAogICogQHZhbHVlOiBB
ICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2h0bWxfaGVhZF9lbGVtZW50X3NldF9wcm9maWxlKFdlYktpdERPTUhUTUxI
ZWFkRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MSGVhZGluZ0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIZWFkaW5nRWxl
bWVudC5jcHAKaW5kZXggY2RjNGUyZWI3ZWIuLjE3ZmUxYmMyZjA2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTEhlYWRpbmdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEhlYWRpbmdFbGVtZW50LmNwcApA
QCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTEhlYWRpbmdFbGVtZW50KiBraXQoV2ViQ29yZTo6
SFRNTEhlYWRpbmdFbGVtZW50KiBvYmopCkBAIC0xNjgsMyArMTcwLDQgQEAgdm9pZCB3ZWJraXRf
ZG9tX2h0bWxfaGVhZGluZ19lbGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MSGVhZGluZ0Vs
ZW1lbnQqIHNlbGYKICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9u
KFdlYkNvcmU6OkhUTUxOYW1lczo6YWxpZ25BdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0df
R05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSGVhZGlu
Z0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MSGVhZGluZ0VsZW1lbnQuaAppbmRleCA0NzAwNjJjMDg4ZS4u
YzJiNDJkMTJkZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSGVhZGluZ0VsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTEhlYWRpbmdFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRE
T01IVE1MSGVhZGluZ0VsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFz
cyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRF
RCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2hlYWRpbmdfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsK
IAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaGVhZGluZ19lbGVtZW50
X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxIZWFkaW5nRWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9oZWFkaW5nX2VsZW1lbnRfZ2V0
X2FsaWduKFdlYktpdERPTUhUTUxIZWFkaW5nRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIs
OCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2hlYWRpbmdfZWxlbWVudF9nZXRfYWxpZ24oV2Vi
S2l0RE9NSFRNTEhlYWRpbmdFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MSGVhZGluZ0VsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2hlYWRpbmdf
ZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTEhlYWRpbmdFbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIdG1s
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTEh0bWxFbGVtZW50LmNwcAppbmRleCA2NWVjNzJkYmExZC4u
OTE3YjA2ODk4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSHRtbEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MSHRtbEVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSA8d3RmL0dl
dFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9E
RVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MSHRtbEVs
ZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MSHRtbEVsZW1lbnQqIG9iaikKQEAgLTE2NiwzICsxNjgs
NCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9odG1sX2VsZW1lbnRfc2V0X3ZlcnNpb24oV2ViS2l0
RE9NSFRNTEh0bWxFbGVtZW50KiBzZWxmLCBjbwogICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZFZh
bHVlID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKTsKICAgICBpdGVtLT5zZXRBdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6dmVyc2lvbkF0dHIs
IGNvbnZlcnRlZFZhbHVlKTsKIH0KK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MSHRtbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSHRtbEVsZW1lbnQuaApp
bmRleCAyNjAyMGM1ZGVmNy4uOGM4ZWFmNzQ5YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSHRtbEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTEh0bWxFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3Ry
dWN0IF9XZWJLaXRET01IVE1MSHRtbEVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVs
ZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRf
REVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2h0bWxfZWxlbWVudF9nZXRfdHlwZSh2
b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaHRtbF9lbGVt
ZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxIdG1sRWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9odG1sX2VsZW1lbnRfZ2V0X3Zl
cnNpb24oV2ViS2l0RE9NSFRNTEh0bWxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2
NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaHRtbF9lbGVtZW50X2dldF92ZXJzaW9uKFdlYktpdERP
TUhUTUxIdG1sRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEh0bWxF
bGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9odG1sX2VsZW1lbnRfc2V0X3Zl
cnNpb24oV2ViS2l0RE9NSFRNTEh0bWxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
OwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MSUZyYW1lRWxlbWVudC5jcHAKaW5kZXggZWMyNjljN2FmM2YuLjI4YjUxY2U5MGU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSUZy
YW1lRWxlbWVudC5jcHAKQEAgLTM4LDYgKzM4LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FU
SU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50
KiBraXQoV2ViQ29yZTo6SFRNTElGcmFtZUVsZW1lbnQqIG9iaikKQEAgLTU0MCwzICs1NDIsNCBA
QCBXZWJLaXRET01ET01XaW5kb3cqIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9nZXRf
Y29udGVudF93aW5kb3coV2ViS2l0RE9NSAogICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0
UmVzdWx0LmdldCgpKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQu
aAppbmRleCA3YmM3ZTc3NmUyMS4uNTlmNDVkZjE3NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSUZy
YW1lRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudC5oCkBAIC00NSw3ICs0NSw3
IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0
RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBl
CitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50
X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRt
bF9pZnJhbWVfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MSUZyYW1lRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9pZnJh
bWVfZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9n
ZXRfYWxpZ24oV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRt
bF9pZnJhbWVfZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MSUZyYW1lRWxl
bWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9nZXRf
ZnJhbWVfYm9yZGVyKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X2ZyYW1l
X2JvcmRlcihXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZgogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxJRnJhbWVFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9p
ZnJhbWVfZWxlbWVudF9zZXRfZnJhbWVfYm9yZGVyKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50
KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTg5LDggKzk3LDEwIEBAIHdl
YmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9zZXRfZnJhbWVfYm9yZGVyKFdlYktpdERPTUhU
TUxJRnJhbWVFbGVtZW50KiBzZWxmCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElGcmFtZUVs
ZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgor
V0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRf
Z2V0X2hlaWdodChXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
OTgsOCArMTA4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9nZXRfaGVpZ2h0
KFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MSUZyYW1lRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaWZyYW1l
X2VsZW1lbnRfc2V0X2hlaWdodChXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZiwgY29u
c3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMDcsOCArMTE5LDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9pZnJhbWVfZWxlbWVudF9zZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50
KiBzZWxmLCBjb25zCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X2xvbmdf
ZGVzYyhXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTE2LDgg
KzEzMCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X2xvbmdfZGVzYyhX
ZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTElGcmFtZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lmcmFtZV9l
bGVtZW50X3NldF9sb25nX2Rlc2MoV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTI1LDggKzE0MSwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfaWZyYW1lX2VsZW1lbnRfc2V0X2xvbmdfZGVzYyhXZWJLaXRET01IVE1MSUZyYW1lRWxl
bWVudCogc2VsZiwgYwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50CiAg
KgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9E
RVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X2dldF9tYXJn
aW5faGVpZ2h0KFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0x
MzQsOCArMTUyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9nZXRfbWFyZ2lu
X2hlaWdodChXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsCiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTElGcmFtZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lm
cmFtZV9lbGVtZW50X3NldF9tYXJnaW5faGVpZ2h0KFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50
KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE0Myw4ICsxNjMsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X3NldF9tYXJnaW5faGVpZ2h0KFdlYktpdERP
TUhUTUxJRnJhbWVFbGVtZW50KiBzZWwKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSUZyYW1l
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIq
CitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVu
dF9nZXRfbWFyZ2luX3dpZHRoKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0xNTIsOCArMTc0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9n
ZXRfbWFyZ2luX3dpZHRoKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmCiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX2lmcmFtZV9lbGVtZW50X3NldF9tYXJnaW5fd2lkdGgoV2ViS2l0RE9NSFRNTElGcmFt
ZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTYxLDggKzE4
NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfc2V0X21hcmdpbl93aWR0aChX
ZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZgogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxJRnJhbWVFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2lmcmFt
ZV9lbGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0xNzAsOCArMTk2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9n
ZXRfbmFtZShXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X2lmcmFtZV9lbGVtZW50X3NldF9uYW1lKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxm
LCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE3OSw4ICsyMDcsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X3NldF9uYW1lKFdlYktpdERPTUhUTUxJRnJhbWVFbGVt
ZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X2dldF9z
Y3JvbGxpbmcoV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE4
OCw4ICsyMTgsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X2dldF9zY3JvbGxp
bmcoV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxJRnJhbWVFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pZnJh
bWVfZWxlbWVudF9zZXRfc2Nyb2xsaW5nKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxm
LCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE5Nyw4ICsyMjksMTAgQEAgd2Via2l0
X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X3NldF9zY3JvbGxpbmcoV2ViS2l0RE9NSFRNTElGcmFt
ZUVsZW1lbnQqIHNlbGYsIGMKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9nZXRf
c3JjKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMDYsOCAr
MjQwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9nZXRfc3JjKFdlYktpdERP
TUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSUZy
YW1lRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRf
c2V0X3NyYyhXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlKTsKIAogLyoqCkBAIC0yMTUsOCArMjUxLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pZnJhbWVf
ZWxlbWVudF9zZXRfc3JjKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmLCBjb25zdCBn
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2No
YXIqCiB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X3dpZHRoKFdlYktpdERPTUhU
TUxJRnJhbWVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMjQsOCArMjYyLDEwIEBAIHdlYmtp
dF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9nZXRfd2lkdGgoV2ViS2l0RE9NSFRNTElGcmFtZUVs
ZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50CiAg
KiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBS
RUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9zZXRfd2lkdGgoV2Vi
S2l0RE9NSFRNTElGcmFtZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8q
KgpAQCAtMjMzLDggKzI3MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfc2V0
X3dpZHRoKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVy
IG5vbmUpOiBBICNXZWJLaXRET01Eb2N1bWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTURv
Y3VtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRG9jdW1lbnQqCiB3ZWJraXRfZG9t
X2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X2NvbnRlbnRfZG9jdW1lbnQoV2ViS2l0RE9NSFRNTElG
cmFtZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTI0Miw4ICsyODQsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2lmcmFtZV9lbGVtZW50X2dldF9jb250ZW50X2RvY3VtZW50KFdlYktpdERPTUhUTUxJ
RnJhbWVFbGVtZW50KgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50CiAg
KgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01ET01XaW5kb3cKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBXZWJLaXRET01ET01XaW5kb3cqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJL
aXRET01ET01XaW5kb3cqCiB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X2NvbnRl
bnRfd2luZG93KFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmKTsKIAogR19FTkRfREVD
TFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSW1hZ2VF
bGVtZW50LmNwcAppbmRleCBlNGVjNGQzNDY1MC4uNzViYzk2MjUzY2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudC5jcHAKQEAg
LTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1M
SW1hZ2VFbGVtZW50KiBvYmopCkBAIC03MDUsMyArNzA3LDQgQEAgZ2xvbmcgd2Via2l0X2RvbV9o
dG1sX2ltYWdlX2VsZW1lbnRfZ2V0X3koV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZikK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxJbWFnZUVsZW1l
bnQuaAppbmRleCBiNDkyODM0OGY0Yy4uYmQ0Y2I1OGZkMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
SW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQuaApAQCAtNDUsNyArNDUs
NyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0
RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBl
CitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRf
Z2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1s
X2ltYWdlX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TEltYWdlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9pbWFnZV9l
bGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF9uYW1l
KFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxJbWFnZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2ltYWdlX2Vs
ZW1lbnRfc2V0X25hbWUoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZiwgY29uc3QgZ2No
YXIqIHZhbHVlKTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1h
Z2VfZWxlbWVudF9zZXRfbmFtZShXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBjb25z
dCBnYwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQKICAqCiAgKiBSZXR1
cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQg
Z2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9N
SFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtODAsOCArODYsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxJbWFnZUVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQKICAqIEB2
YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERP
TUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAt
ODksOCArOTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0X2FsaWduKFdl
YktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGcKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MSW1hZ2VFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1s
X2ltYWdlX2VsZW1lbnRfZ2V0X2FsdChXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsK
IAogLyoqCkBAIC05OCw4ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRf
Z2V0X2FsdChXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9p
bWFnZV9lbGVtZW50X3NldF9hbHQoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZiwgY29u
c3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMDcsOCArMTE5LDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9pbWFnZV9lbGVtZW50X3NldF9hbHQoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2NoCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAogICoK
ICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF9ib3JkZXIo
V2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTE2LDggKzEzMCwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfYm9yZGVyKFdlYktpdERPTUhU
TUxJbWFnZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbWFnZUVs
ZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0X2Jv
cmRlcihXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
OwogCiAvKioKQEAgLTEyNSw4ICsxNDEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1l
bnRfc2V0X2JvcmRlcihXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBjb25zdAogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Vi
a2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X2hlaWdodChXZWJLaXRET01IVE1MSW1hZ2VF
bGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMzQsOCArMTUyLDEwIEBAIHdlYmtpdF9kb21faHRt
bF9pbWFnZV9lbGVtZW50X2dldF9oZWlnaHQoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAogICogQHZhbHVlOiBB
ICNnbG9uZwogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9zZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxJ
bWFnZUVsZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCkBAIC0xNDMsOCArMTYzLDEw
IEBAIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X3NldF9oZWlnaHQoV2ViS2l0RE9NSFRN
TEltYWdlRWxlbWVudCogc2VsZiwgZ2xvbmcKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW1h
Z2VFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9u
ZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50
X2dldF9oc3BhY2UoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
MTUyLDggKzE3NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfaHNwYWNl
KFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxJbWFnZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2ltYWdlX2Vs
ZW1lbnRfc2V0X2hzcGFjZShXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBnbG9uZyB2
YWx1ZSk7CiAKIC8qKgpAQCAtMTYxLDggKzE4NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2Vf
ZWxlbWVudF9zZXRfaHNwYWNlKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYsIGdsb25n
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVE
IGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfaXNfbWFwKFdlYktp
dERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE3MCw4ICsxOTYsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X2lzX21hcChXZWJLaXRET01IVE1MSW1h
Z2VFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50
CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X3NldF9pc19t
YXAoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAv
KioKQEAgLTE3OSw4ICsyMDcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0
X2lzX21hcChXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBnYm9vbGUKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0
X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X2xvbmdfZGVzYyhXZWJLaXRET01IVE1MSW1hZ2VF
bGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xODgsOCArMjE4LDEwIEBAIHdlYmtpdF9kb21faHRt
bF9pbWFnZV9lbGVtZW50X2dldF9sb25nX2Rlc2MoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAogICogQHZhbHVl
OiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2
b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9zZXRfbG9uZ19kZXNjKFdlYktpdERP
TUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAt
MTk3LDggKzIyOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9zZXRfbG9uZ19k
ZXNjKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYsIGNvbgogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxJbWFnZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0
bWxfaW1hZ2VfZWxlbWVudF9nZXRfc3JjKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTIwNiw4ICsyNDAsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1l
bnRfZ2V0X3NyYyhXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRt
bF9pbWFnZV9lbGVtZW50X3NldF9zcmMoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0yMTUsOCArMjUxLDEwIEBAIHdlYmtpdF9k
b21faHRtbF9pbWFnZV9lbGVtZW50X3NldF9zcmMoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCog
c2VsZiwgY29uc3QgZ2NoCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAog
ICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRf
REVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF91c2Vf
bWFwKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTIyNCw4ICsy
NjIsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X3VzZV9tYXAoV2ViS2l0
RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElt
YWdlRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9z
ZXRfdXNlX21hcChXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciog
dmFsdWUpOwogCiAvKioKQEAgLTIzMyw4ICsyNzMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdl
X2VsZW1lbnRfc2V0X3VzZV9tYXAoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZiwgY29u
c3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50CiAgKgogICogUmV0dXJu
czogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xv
bmcKIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF92c3BhY2UoV2ViS2l0RE9NSFRN
TEltYWdlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjQyLDggKzI4NCwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfdnNwYWNlKFdlYktpdERPTUhUTUxJbWFnZUVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQKICAqIEB2
YWx1ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0X3ZzcGFjZShXZWJLaXRE
T01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAKIC8qKgpAQCAtMjUxLDgg
KzI5NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9zZXRfdnNwYWNlKFdlYktp
dERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYsIGdsb25nCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTEltYWdlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2Vf
ZWxlbWVudF9nZXRfd2lkdGgoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtMjYwLDggKzMwNiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRf
d2lkdGgoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTEltYWdlRWxlbWVudAogICogQHZhbHVlOiBBICNnbG9uZwogICoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW1h
Z2VfZWxlbWVudF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZiwgZ2xv
bmcgdmFsdWUpOwogCiAvKioKQEAgLTI2OSw4ICszMTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lt
YWdlX2VsZW1lbnRfc2V0X3dpZHRoKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYsIGds
b25nIHYKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50CiAgKgogICogUmV0
dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJF
Q0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF9jb21wbGV0
ZShXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNzgsOCArMzI4
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF9jb21wbGV0ZShXZWJLaXRE
T01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW1h
Z2VFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hh
cioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1l
bnRfZ2V0X2xvd3NyYyhXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC0yODcsOCArMzM5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF9sb3dz
cmMoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTEltYWdlRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2Vf
ZWxlbWVudF9zZXRfbG93c3JjKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYsIGNvbnN0
IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjk2LDggKzM1MCwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfaW1hZ2VfZWxlbWVudF9zZXRfbG93c3JjKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNl
bGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAogICoKICAq
IFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNB
VEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfbmF0dXJhbF9oZWln
aHQoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMzA1LDggKzM2
MSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfbmF0dXJhbF9oZWlnaHQo
V2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZgogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxJbWFnZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1sX2ltYWdlX2Vs
ZW1lbnRfZ2V0X25hdHVyYWxfd2lkdGgoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtMzE0LDggKzM3MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVu
dF9nZXRfbmF0dXJhbF93aWR0aChXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKQogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Vi
a2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X3goV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtMzIzLDggKzM4MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1h
Z2VfZWxlbWVudF9nZXRfeChXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xv
bmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtp
dF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF95KFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQq
IHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGQ3ZDdmZmIxYmI1Li5hMWEyMGY1
YjA0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
SW5wdXRFbGVtZW50LmNwcApAQCAtNDAsNiArNDAsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVD
QVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTElucHV0RWxlbWVu
dCoga2l0KFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQqIG9iaikKQEAgLTEwMDcsMyArMTAwOSw0
IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2VkaXRpbmdfdmFsdWUo
V2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCoKIAogICBXZWJLaXQ6OmNvcmUoc2VsZiktPnNldEVk
aXRpbmdWYWx1ZShXVEY6OlN0cmluZzo6ZnJvbVVURjgodmFsdWUpKTsKIH0KK0dfR05VQ19FTkRf
SUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSW5wdXRFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDU0MzM0NDJlZGQ4Li45NmFlYmIyNGRiMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTElucHV0RWxl
bWVudC5oCkBAIC00NSwxNSArNDUsMTcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MSW5wdXRFbGVt
ZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwog
fTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9k
b21faHRtbF9pbnB1dF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKICAqIHdlYmtpdF9k
b21faHRtbF9pbnB1dF9lbGVtZW50X3NlbGVjdDoKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
SW5wdXRFbGVtZW50CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NlbGVjdChXZWJLaXRET01IVE1M
SW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02MSw4ICs2MywxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfaW5wdXRfZWxlbWVudF9zZWxlY3QoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICoKICAqIFJldHVy
bnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBn
Y2hhcioKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9hY2NlcHQoV2ViS2l0RE9N
SFRNTElucHV0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNzAsOCArNzQsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2FjY2VwdChXZWJLaXRET01IVE1MSW5wdXRFbGVt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKiBA
dmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9hY2NlcHQoV2ViS2l0
RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBA
IC03OSw4ICs4NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfYWNjZXB0
KFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTElucHV0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRt
bF9pbnB1dF9lbGVtZW50X2dldF9hbHQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtODgsOCArOTYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRf
Z2V0X2FsdChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9p
bnB1dF9lbGVtZW50X3NldF9hbHQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgY29u
c3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC05Nyw4ICsxMDcsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2lucHV0X2VsZW1lbnRfc2V0X2FsdChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxm
LCBjb25zdCBnY2gKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9h
dXRvZm9jdXMoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTA2
LDggKzExOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfYXV0b2ZvY3Vz
KFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxJbnB1dEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lucHV0
X2VsZW1lbnRfc2V0X2F1dG9mb2N1cyhXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBn
Ym9vbGVhbiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTE1LDggKzEyOSwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfaW5wdXRfZWxlbWVudF9zZXRfYXV0b2ZvY3VzKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQq
IHNlbGYsIGdibwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqCiAg
KiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRf
REVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2Rl
ZmF1bHRfY2hlY2tlZChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC0xMjUsOCArMTQxLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9kZWZh
dWx0X2NoZWNrZWQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsCiAgKiBAdmFsdWU6IEEg
I2dib29sZWFuCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfZGVm
YXVsdF9jaGVja2VkKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZh
bHVlKTsKIAogLyoqCkBAIC0xMzQsOCArMTUyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9l
bGVtZW50X3NldF9kZWZhdWx0X2NoZWNrZWQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2Vs
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVE
IGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfY2hlY2tlZChXZWJL
aXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNDMsOCArMTYzLDEwIEBA
IHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9jaGVja2VkKFdlYktpdERPTUhUTUxJ
bnB1dEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1l
bnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2No
ZWNrZWQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwog
CiAvKioKQEAgLTE1Miw4ICsxNzQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRf
c2V0X2NoZWNrZWQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgZ2Jvb2wKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jv
b2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xl
YW4KIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9kaXNhYmxlZChXZWJLaXRET01I
VE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNjEsOCArMTg1LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9kaXNhYmxlZChXZWJLaXRET01IVE1MSW5wdXRF
bGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAg
KiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9kaXNhYmxl
ZChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIC8q
KgpAQCAtMTcwLDggKzE5NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRf
ZGlzYWJsZWQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgZ2JvbwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
bm9uZSk6IEEgI1dlYktpdERPTUhUTUxGb3JtRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktp
dERPTUhUTUxGb3JtRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxGb3Jt
RWxlbWVudCoKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9mb3JtKFdlYktpdERP
TUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE3OSw4ICsyMDcsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2Zvcm0oV2ViS2l0RE9NSFRNTElucHV0RWxl
bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICoK
ICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NRmlsZUxpc3QKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBXZWJLaXRET01GaWxlTGlzdCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERP
TUZpbGVMaXN0Kgogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2ZpbGVzKFdlYktp
dERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE4OCw4ICsyMTgsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2ZpbGVzKFdlYktpdERPTUhUTUxJbnB1
dEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NRmlsZUxpc3QKICAqCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRf
c2V0X2ZpbGVzKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIFdlYktpdERPTUZpbGVM
aXN0KiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTk3LDggKzIyOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
aW5wdXRfZWxlbWVudF9zZXRfZmlsZXMoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwg
V2ViS2l0RAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNndWxvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNB
VEVEIGd1bG9uZwogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2hlaWdodChXZWJL
aXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMDYsOCArMjQwLDEwIEBA
IHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9oZWlnaHQoV2ViS2l0RE9NSFRNTElu
cHV0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVu
dAogICogQHZhbHVlOiBBICNndWxvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2hlaWdo
dChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBndWxvbmcgdmFsdWUpOwogCiAvKioK
QEAgLTIxNSw4ICsyNTEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2hl
aWdodChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBndWxvbmcKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4K
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdl
YmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9pbmRldGVybWluYXRlKFdlYktpdERPTUhU
TUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTIyNCw4ICsyNjIsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2luZGV0ZXJtaW5hdGUoV2ViS2l0RE9NSFRNTElu
cHV0RWxlbWVudCogc2VsZikKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50
CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9pbmRl
dGVybWluYXRlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVl
KTsKIAogLyoqCkBAIC0yMzMsOCArMjczLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVt
ZW50X3NldF9pbmRldGVybWluYXRlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsCiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEg
I2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3
ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfbWF4X2xlbmd0aChXZWJLaXRET01IVE1M
SW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNDMsOCArMjg1LDEwIEBAIHdlYmtpdF9k
b21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9tYXhfbGVuZ3RoKFdlYktpdERPTUhUTUxJbnB1dEVs
ZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNnbG9uZwogICogQGVycm9yOiAjR0Vycm9yCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9tYXhfbGVuZ3RoKFdlYktpdERPTUhUTUxJbnB1dEVs
ZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMjUy
LDggKzI5NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfbWF4X2xlbmd0
aChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBnbAogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxJbnB1dEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2Rv
bV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X211bHRpcGxlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTI2MSw4ICszMDcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lu
cHV0X2VsZW1lbnRfZ2V0X211bHRpcGxlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9p
ZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X211bHRpcGxlKFdlYktpdERPTUhU
TUxJbnB1dEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBAIC0yNzAsOCAr
MzE4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9tdWx0aXBsZShXZWJL
aXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBnYm9vCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTElucHV0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9pbnB1
dF9lbGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTI3OSw4ICszMjksMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0
X25hbWUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTElucHV0RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW5w
dXRfZWxlbWVudF9zZXRfbmFtZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTI5MCw4ICszNDIsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2lucHV0X2VsZW1lbnRfc2V0X25hbWUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2MKICAqIFJldHVybnM6IEEgI2dib29sZWFuCiAgKgogICogU2luY2U6IDIuMTYK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdl
YmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9yZWFkX29ubHkoV2ViS2l0RE9NSFRNTElu
cHV0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjk5LDggKzM1MywxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfcmVhZF9vbmx5KFdlYktpdERPTUhUTUxJbnB1dEVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqIEB2
YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X3JlYWRfb25seShX
ZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIC8qKgpA
QCAtMzA4LDggKzM2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfcmVh
ZF9vbmx5KFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGdibwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNndWxvbmcKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Via2l0X2Rv
bV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X3NpemUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMzE4LDggKzM3NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRf
ZWxlbWVudF9nZXRfc2l6ZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKICAqIEB2
YWx1ZTogQSAjZ3Vsb25nCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1l
bnRfc2V0X3NpemUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgZ3Vsb25nIHZhbHVl
LCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMzI3LDggKzM4NywxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfc2l6ZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBz
ZWxmLCBndWxvbmcgdgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfc3JjKFdl
YktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTMzNiw4ICszOTgsMTAg
QEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X3NyYyhXZWJLaXRET01IVE1MSW5w
dXRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50
CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9zcmMoV2Vi
S2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoq
CkBAIC0zNDUsOCArNDA5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9z
cmMoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoCiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9k
b21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9pbnB1dF90eXBlKFdlYktpdERPTUhUTUxJbnB1dEVs
ZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTM1NCw4ICs0MjAsMTAgQEAgd2Via2l0X2RvbV9odG1s
X2lucHV0X2VsZW1lbnRfZ2V0X2lucHV0X3R5cGUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICogQHZhbHVl
OiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2
b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfaW5wdXRfdHlwZShXZWJLaXRE
T01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAg
LTM2Myw4ICs0MzEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2lucHV0
X3R5cGUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgY28KICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9o
dG1sX2lucHV0X2VsZW1lbnRfZ2V0X2RlZmF1bHRfdmFsdWUoV2ViS2l0RE9NSFRNTElucHV0RWxl
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMzcyLDggKzQ0MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
aW5wdXRfZWxlbWVudF9nZXRfZGVmYXVsdF92YWx1ZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50
KiBzZWxmKQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqIEB2YWx1
ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2RlZmF1bHRfdmFsdWUoV2Vi
S2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoq
CkBAIC0zODEsOCArNDUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9k
ZWZhdWx0X3ZhbHVlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsCiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9k
b21faHRtbF9pbnB1dF9lbGVtZW50X2dldF92YWx1ZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC0zOTAsOCArNDY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1
dF9lbGVtZW50X2dldF92YWx1ZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFy
CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtp
dF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF92YWx1ZShXZWJLaXRET01IVE1MSW5wdXRFbGVt
ZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTM5OSw4ICs0NzUsMTAg
QEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X3ZhbHVlKFdlYktpdERPTUhUTUxJ
bnB1dEVsZW1lbnQqIHNlbGYsIGNvbnN0IGcKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5w
dXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ3Vsb25nCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ3Vs
b25nCitXRUJLSVRfREVQUkVDQVRFRCBndWxvbmcKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVt
ZW50X2dldF93aWR0aChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC00MDgsOCArNDg2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF93aWR0
aChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MSW5wdXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2d1bG9uZwogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRf
ZWxlbWVudF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgZ3Vsb25n
IHZhbHVlKTsKIAogLyoqCkBAIC00MTcsOCArNDk3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1
dF9lbGVtZW50X3NldF93aWR0aChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBndWxv
bmcKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKgogICogUmV0dXJu
czogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF93aWxsX3ZhbGlk
YXRlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTQyNiw4ICs1
MDgsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X3dpbGxfdmFsaWRhdGUo
V2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZikKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MSW5wdXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2lucHV0
X2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTQzNSw4ICs1MTksMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0
X2FsaWduKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lu
cHV0X2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNDQ0LDggKzUzMCwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCog
c2VsZiwgY29uc3QgZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfdXNlX21h
cChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC00NTMsOCArNTQx
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF91c2VfbWFwKFdlYktpdERP
TUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1
dEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0
X3VzZV9tYXAoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlKTsKIAogLyoqCkBAIC00NjQsOCArNTU0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9l
bGVtZW50X3NldF91c2VfbWFwKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGNvbnN0
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE0CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9pbnB1
dF9lbGVtZW50X2dldF9jYXB0dXJlX3R5cGUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtNDc0LDggKzU2NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxl
bWVudF9nZXRfY2FwdHVyZV90eXBlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwog
ICogQHZhbHVlOiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1l
bnRfc2V0X2NhcHR1cmVfdHlwZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTQ4Myw4ICs1NzcsMTEgQEAgd2Via2l0X2RvbV9o
dG1sX2lucHV0X2VsZW1lbnRfc2V0X2NhcHR1cmVfdHlwZShXZWJLaXRET01IVE1MSW5wdXRFbGVt
ZW50KiBzZWxmLAogICogQGlucHV0OiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ugd2Vi
a2l0X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRfZWxlbWVudF9pc191c2VyX2VkaXRlZCgpIGluc3Rl
YWQuCiAgKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4gd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1l
bnRfaXNfZWRpdGVkKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIGlucHV0KTsKK1dFQktJVF9E
RVBSRUNBVEVEX0ZPUih3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X2lzX3Vz
ZXJfZWRpdGVkKSBnYm9vbGVhbgord2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfaXNfZWRp
dGVkKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIGlucHV0KTsKIAogLyoqCiAgKiB3ZWJraXRf
ZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfYXV0b19maWxsZWQ6CkBAIC00OTMsOCArNTkwLDEw
IEBAIFdFQktJVF9BUEkgZ2Jvb2xlYW4gd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfaXNf
ZWRpdGVkKFdlYktpdERPTUhUTUxJbnB1dEVsCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgogICoK
ICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIHdlYmtpdF9kb21f
ZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2F1dG9fZmlsbGVkKCkgaW5zdGVhZC4KICAq
LwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURURfRk9SKHdlYmtpdF9kb21f
ZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2F1dG9fZmlsbGVkKSBnYm9vbGVhbgogd2Vi
a2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2F1dG9fZmlsbGVkKFdlYktpdERPTUhUTUxJ
bnB1dEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTUwMyw4ICs2MDIsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2F1dG9fZmlsbGVkKFdlYktpdERPTUhUTUxJbnB1dEVs
ZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIHdlYmtpdF9kb21fZWxlbWVudF9odG1sX2lu
cHV0X2VsZW1lbnRfc2V0X2F1dG9fZmlsbGVkKCkgaW5zdGVhZC4KICAqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRF9GT1Iod2Via2l0X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRf
ZWxlbWVudF9zZXRfYXV0b19maWxsZWQpIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVt
ZW50X3NldF9hdXRvX2ZpbGxlZChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBnYm9v
bGVhbiB2YWx1ZSk7CiAKIC8qKgpAQCAtNTEzLDggKzYxNCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
aW5wdXRfZWxlbWVudF9zZXRfYXV0b19maWxsZWQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCog
c2VsZiwgZwogICogQHZhbHVlOiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIHdlYmtpdF9kb21fZWxlbWVudF9odG1sX2lucHV0X2VsZW1l
bnRfc2V0X2VkaXRpbmdfdmFsdWUoKSBpbnN0ZWFkLgogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEX0ZPUih3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50
X3NldF9lZGl0aW5nX3ZhbHVlKSB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9z
ZXRfZWRpdGluZ192YWx1ZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBjb25zdCBn
Y2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMSUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxMSUVsZW1lbnQuY3BwCmluZGV4IDcxMzMxYzM2NGRmLi5jNjBhZDdm
ZmI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMSUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTElF
bGVtZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05T
OworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTExJRWxlbWVudCoga2l0KFdl
YkNvcmU6OkhUTUxMSUVsZW1lbnQqIG9iaikKQEAgLTIwMiwzICsyMDQsNCBAQCB2b2lkIHdlYmtp
dF9kb21faHRtbF9saV9lbGVtZW50X3NldF92YWx1ZShXZWJLaXRET01IVE1MTElFbGVtZW50KiBz
ZWxmLCBnbG9uZyB2YQogICAgIGl0ZW0tPnNldEludGVncmFsQXR0cmlidXRlKFdlYkNvcmU6OkhU
TUxOYW1lczo6dmFsdWVBdHRyLCB2YWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJF
Q0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTElFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExJRWxl
bWVudC5oCmluZGV4IGNmZDFlMDU1NzljLi43N2IzZDUxY2U1MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxMSUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExJRWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBA
IHN0cnVjdCBfV2ViS2l0RE9NSFRNTExJRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1M
RWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJ
VF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfbGlfZWxlbWVudF9nZXRfdHlwZSh2
b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbGlfZWxlbWVu
dF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTElFbGVtZW50CiAg
KgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9E
RVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2xpX2VsZW1lbnRfZ2V0X3R5cGVfYXR0
cihXZWJLaXRET01IVE1MTElFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfbGlfZWxlbWVudF9nZXRfdHlwZV9hdHRyKFdlYktpdERPTUhUTUxM
SUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxMSUVsZW1lbnQKICAq
IEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2xpX2VsZW1lbnRfc2V0X3R5cGVfYXR0cihXZWJL
aXRET01IVE1MTElFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAg
LTcxLDggKzc1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9saV9lbGVtZW50X3NldF90eXBlX2F0dHIo
V2ViS2l0RE9NSFRNTExJRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoCiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTExJRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfbGlf
ZWxlbWVudF9nZXRfdmFsdWUoV2ViS2l0RE9NSFRNTExJRWxlbWVudCogc2VsZik7CiAKIC8qKgpA
QCAtODAsOCArODYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2xpX2VsZW1lbnRfZ2V0X3ZhbHVlKFdl
YktpdERPTUhUTUxMSUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxM
SUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2xpX2VsZW1lbnRfc2V0X3Zh
bHVlKFdlYktpdERPTUhUTUxMSUVsZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogR19FTkRf
REVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGFiZWxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGFi
ZWxFbGVtZW50LmNwcAppbmRleCA5ODc5ZjJiYzI0Yi4uMzc2M2M1NzNkMGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MTGFiZWxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExhYmVsRWxlbWVudC5jcHAK
QEAgLTM4LDYgKzM4LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxMYWJlbEVsZW1lbnQqIGtpdChXZWJDb3JlOjpI
VE1MTGFiZWxFbGVtZW50KiBvYmopCkBAIC0xOTIsMyArMTk0LDQgQEAgdm9pZCB3ZWJraXRfZG9t
X2h0bWxfbGFiZWxfZWxlbWVudF9zZXRfaHRtbF9mb3IoV2ViS2l0RE9NSFRNTExhYmVsRWxlbWVu
dCogc2VsZiwKICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdl
YkNvcmU6OkhUTUxOYW1lczo6Zm9yQXR0ciwgY29udmVydGVkVmFsdWUpOwogfQogCitHX0dOVUNf
RU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExhYmVsRWxlbWVu
dC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxMYWJlbEVsZW1lbnQuaAppbmRleCAwMWI3ZDY4ODA5Zi4uNmQzZTUxNjg3
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGFiZWxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMYWJl
bEVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxMYWJlbEVs
ZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7
CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0
X2RvbV9odG1sX2xhYmVsX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCAr
NTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2xhYmVsX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExhYmVsRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0
cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9N
SFRNTEZvcm1FbGVtZW50Kgogd2Via2l0X2RvbV9odG1sX2xhYmVsX2VsZW1lbnRfZ2V0X2Zvcm0o
V2ViS2l0RE9NSFRNTExhYmVsRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAg
QEAgd2Via2l0X2RvbV9odG1sX2xhYmVsX2VsZW1lbnRfZ2V0X2Zvcm0oV2ViS2l0RE9NSFRNTExh
YmVsRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExhYmVsRWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9sYWJlbF9lbGVtZW50X2dldF9o
dG1sX2ZvcihXZWJLaXRET01IVE1MTGFiZWxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC03MSw4
ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbGFiZWxfZWxlbWVudF9nZXRfaHRtbF9mb3IoV2Vi
S2l0RE9NSFRNTExhYmVsRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TExhYmVsRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfbGFiZWxfZWxlbWVu
dF9zZXRfaHRtbF9mb3IoV2ViS2l0RE9NSFRNTExhYmVsRWxlbWVudCogc2VsZiwgY29uc3QgZ2No
YXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGVnZW5kRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTExlZ2VuZEVsZW1lbnQuY3BwCmluZGV4IGM1MjcyNmMxOTBjLi5h
OWM2MmJlN2I5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMZWdlbmRFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTExlZ2VuZEVsZW1lbnQuY3BwCkBAIC0zNyw2ICszNyw4IEBACiAjaW5jbHVkZSA8d3Rm
L0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9S
RV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MTGVn
ZW5kRWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxMZWdlbmRFbGVtZW50KiBvYmopCkBAIC0xOTIs
MyArMTk0LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfbGVnZW5kX2VsZW1lbnRfc2V0X2FsaWdu
KFdlYktpdERPTUhUTUxMZWdlbmRFbGVtZW50KiBzZWxmLAogICAgIGl0ZW0tPnNldEF0dHJpYnV0
ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjphbGlnbkF0dHIsIGNv
bnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxMZWdlbmRFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExlZ2VuZEVsZW1lbnQu
aAppbmRleCA3MGU4NTNjNDU2My4uODI2NmIwNjY2NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGVn
ZW5kRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGVnZW5kRWxlbWVudC5oCkBAIC00NSw3ICs0NSw3
IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTExlZ2VuZEVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0
RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBl
CitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2xlZ2VuZF9lbGVtZW50
X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRt
bF9sZWdlbmRfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MTGVnZW5kRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2Vi
S2l0RE9NSFRNTEZvcm1FbGVtZW50CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTEZvcm1F
bGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50Kgogd2Vi
a2l0X2RvbV9odG1sX2xlZ2VuZF9lbGVtZW50X2dldF9mb3JtKFdlYktpdERPTUhUTUxMZWdlbmRF
bGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
bGVnZW5kX2VsZW1lbnRfZ2V0X2Zvcm0oV2ViS2l0RE9NSFRNTExlZ2VuZEVsZW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxMZWdlbmRFbGVtZW50CiAgKgogICogUmV0dXJu
czogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdj
aGFyKgogd2Via2l0X2RvbV9odG1sX2xlZ2VuZF9lbGVtZW50X2dldF9hbGlnbihXZWJLaXRET01I
VE1MTGVnZW5kRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2xlZ2VuZF9lbGVtZW50X2dldF9hbGlnbihXZWJLaXRET01IVE1MTGVnZW5kRWxl
bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExlZ2VuZEVsZW1lbnQKICAq
IEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2xlZ2VuZF9lbGVtZW50X3NldF9hbGlnbihXZWJL
aXRET01IVE1MTGVnZW5kRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19F
TkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxM
aW5rRWxlbWVudC5jcHAKaW5kZXggY2U4MWJlYjY4OTcuLjc3ZDA0MDI2YWM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTExpbmtFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50LmNwcApA
QCAtMzgsNiArMzgsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRN
TExpbmtFbGVtZW50KiBvYmopCkBAIC01MDgsMyArNTEwLDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0
bWxfbGlua19lbGVtZW50X3NldF9zaXplcyhXZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIGxpbmtF
bGVtZW4KIAogICAgIFdlYktpdDo6Y29yZShsaW5rRWxlbWVudCktPnNpemVzKCkuc2V0VmFsdWUo
U3RyaW5nOjpmcm9tVVRGOCh2YWx1ZSkpOwogfQorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJ
T05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMaW5rRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMaW5rRWxl
bWVudC5oCmluZGV4IDE0YzMzNTNkMTc2Li43NWZjOWI2YThjYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxMaW5rRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGlua0VsZW1lbnQuaApAQCAtNDUsNyArNDUs
NyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxMaW5rRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRE
T01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUK
K1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X2dl
dF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9s
aW5rX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExp
bmtFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Ym9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9saW5r
X2VsZW1lbnRfZ2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9nZXRf
ZGlzYWJsZWQoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MTGlua0VsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X2xpbmtfZWxlbWVudF9zZXRfZGlzYWJsZWQoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxm
LCBnYm9vbGVhbiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2xpbmtfZWxlbWVudF9zZXRfZGlzYWJsZWQoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBz
ZWxmLCBnYm9vbGUKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTGlua0VsZW1lbnQKICAqCiAg
KiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJF
Q0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF9jaGFyc2V0KFdl
YktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtODAsOCArODYsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9nZXRfY2hhcnNldChXZWJLaXRET01IVE1MTGlu
a0VsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxMaW5rRWxlbWVudAog
ICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X3NldF9jaGFyc2V0KFdl
YktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoq
CkBAIC04OSw4ICs5NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X3NldF9jaGFy
c2V0KFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29uc3QgZwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxMaW5rRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21f
aHRtbF9saW5rX2VsZW1lbnRfZ2V0X2hyZWYoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxm
KTsKIAogLyoqCkBAIC05OCw4ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVu
dF9nZXRfaHJlZihXZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxMaW5rRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxf
bGlua19lbGVtZW50X3NldF9ocmVmKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29u
c3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMDcsOCArMTE5LDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9saW5rX2VsZW1lbnRfc2V0X2hyZWYoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxm
LCBjb25zdCBnY2hhCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBS
RUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9nZXRfaHJlZmxhbmco
V2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMTYsOCArMTMwLDEw
IEBAIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfZ2V0X2hyZWZsYW5nKFdlYktpdERPTUhU
TUxMaW5rRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExpbmtFbGVt
ZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfc2V0X2hyZWZs
YW5nKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsK
IAogLyoqCkBAIC0xMjUsOCArMTQxLDEwIEBAIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRf
c2V0X2hyZWZsYW5nKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MTGlua0VsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hh
cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJr
aXRfZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF9tZWRpYShXZWJLaXRET01IVE1MTGlua0VsZW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTEzNCw4ICsxNTIsMTAgQEAgd2Via2l0X2RvbV9odG1sX2xp
bmtfZWxlbWVudF9nZXRfbWVkaWEoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MTGlua0VsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9odG1sX2xpbmtfZWxlbWVudF9zZXRfbWVkaWEoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50
KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE0Myw4ICsxNjMsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9zZXRfbWVkaWEoV2ViS2l0RE9NSFRNTExpbmtF
bGVtZW50KiBzZWxmLCBjb25zdCBnY2gKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTGlua0Vs
ZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgor
V0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X2dl
dF9yZWwoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNTIsOCAr
MTc0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfZ2V0X3JlbChXZWJLaXRET01I
VE1MTGlua0VsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxMaW5rRWxl
bWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X3NldF9yZWwo
V2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAv
KioKQEAgLTE2MSw4ICsxODUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9zZXRf
cmVsKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MTGlua0VsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRf
ZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF9yZXYoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC0xNzAsOCArMTk2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9saW5rX2Vs
ZW1lbnRfZ2V0X3JldihXZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxMaW5rRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0
bWxfbGlua19lbGVtZW50X3NldF9yZXYoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmLCBj
b25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE3OSw4ICsyMDcsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2xpbmtfZWxlbWVudF9zZXRfcmV2KFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTGlua0VsZW1lbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF90YXJnZXQo
V2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xODgsOCArMjE4LDEw
IEBAIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfZ2V0X3RhcmdldChXZWJLaXRET01IVE1M
TGlua0VsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxMaW5rRWxlbWVu
dAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRf
REVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X3NldF90YXJnZXQo
V2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAv
KioKQEAgLTE5Nyw4ICsyMjksMTAgQEAgd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9zZXRf
dGFyZ2V0KFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29uc3QgZ2MKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MTGlua0VsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRf
ZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTExpbmtFbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMDYsOCArMjQwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9s
aW5rX2VsZW1lbnRfZ2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxMaW5rRWxlbWVudAogICogQHZhbHVlOiBBICNn
Y2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3
ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X3NldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTExp
bmtFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTIxNSw4ICsy
NTEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9zZXRfdHlwZV9hdHRyKFdlYktp
dERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MTGlua0VsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktp
dERPTVN0eWxlU2hlZXQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01TdHlsZVNoZWV0KgorV0VC
S0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NU3R5bGVTaGVldCoKIHdlYmtpdF9kb21faHRtbF9saW5r
X2VsZW1lbnRfZ2V0X3NoZWV0KFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtMjI2LDggKzI2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF9z
aGVldChXZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5z
ZmVyIGZ1bGwpOiBBICNXZWJLaXRET01ET01Ub2tlbkxpc3QKICAqCiAgKiBTaW5jZTogMi4xNgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIFdlYktpdERPTURPTVRva2VuTGlzdCoKK1dFQktJVF9ERVBSRUNBVEVE
IFdlYktpdERPTURPTVRva2VuTGlzdCoKIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfZ2V0
X3NpemVzKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjM2LDgg
KzI3NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF9zaXplcyhXZWJLaXRE
T01IVE1MTGlua0VsZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBhICNnY2hhcgogICoKICAqIFNp
bmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9zZXRfc2l6ZXMoV2ViS2l0RE9NSFRNTExpbmtF
bGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxNYXBFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWFwRWxlbWVudC5jcHAKaW5k
ZXggMTFkY2FhOWQ4MTAuLmIxM2JkY2QzZjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1hcEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MTWFwRWxlbWVudC5jcHAKQEAgLTM3LDYgKzM3LDggQEAKICNp
bmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNf
QkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktp
dERPTUhUTUxNYXBFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTE1hcEVsZW1lbnQqIG9iaikKQEAg
LTE5MiwzICsxOTQsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9tYXBfZWxlbWVudF9zZXRfbmFt
ZShXZWJLaXRET01IVE1MTWFwRWxlbWVudCogc2VsZiwgY29uc3QgZwogICAgIGl0ZW0tPnNldEF0
dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpuYW1lQXR0
ciwgY29udmVydGVkVmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTE1hcEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWFwRWxlbWVudC5o
CmluZGV4IDZmNWE2MjU1NWYwLi5kZWNhMTM4ZjI3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNYXBF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxNYXBFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3Ry
dWN0IF9XZWJLaXRET01IVE1MTWFwRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxl
bWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9E
RVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfbWFwX2VsZW1lbnRfZ2V0X3R5cGUodm9p
ZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX21hcF9lbGVtZW50
X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxNYXBFbGVtZW50CiAg
KgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1MQ29sbGVjdGlv
bgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgorV0VCS0lUX0RFUFJF
Q0FURUQgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCiB3ZWJraXRfZG9tX2h0bWxfbWFwX2VsZW1l
bnRfZ2V0X2FyZWFzKFdlYktpdERPTUhUTUxNYXBFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02
Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbWFwX2VsZW1lbnRfZ2V0X2FyZWFzKFdlYktp
dERPTUhUTUxNYXBFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTWFw
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIq
CitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9tYXBfZWxlbWVudF9n
ZXRfbmFtZShXZWJLaXRET01IVE1MTWFwRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNzEsOCAr
NzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX21hcF9lbGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhU
TUxNYXBFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTWFwRWxlbWVu
dAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRf
REVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfbWFwX2VsZW1lbnRfc2V0X25hbWUoV2Vi
S2l0RE9NSFRNTE1hcEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5E
X0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1hcnF1ZWVFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
TWFycXVlZUVsZW1lbnQuY3BwCmluZGV4IDMwODhlOWE4MDVhLi4wMjg1Yzg0NzdkMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxNYXJxdWVlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNYXJxdWVlRWxl
bWVudC5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsK
KwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxNYXJxdWVlRWxlbWVudCoga2l0
KFdlYkNvcmU6OkhUTUxNYXJxdWVlRWxlbWVudCogb2JqKQpAQCAtMTE3LDMgKzExOSw0IEBAIHZv
aWQgd2Via2l0X2RvbV9odG1sX21hcnF1ZWVfZWxlbWVudF9zdG9wKFdlYktpdERPTUhUTUxNYXJx
dWVlRWxlbWVudCogc2VsZikKICAgICBXZWJDb3JlOjpIVE1MTWFycXVlZUVsZW1lbnQqIGl0ZW0g
PSBXZWJLaXQ6OmNvcmUoc2VsZik7CiAgICAgaXRlbS0+c3RvcCgpOwogfQorR19HTlVDX0VORF9J
R05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNYXJxdWVlRWxlbWVudC5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxNYXJxdWVlRWxlbWVudC5oCmluZGV4IDBkNmI4MmRmNDAyLi5jNmYwYTE5NmY0
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxNYXJxdWVlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWFy
cXVlZUVsZW1lbnQuaApAQCAtNDUsMjMgKzQ1LDI3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTE1h
cnF1ZWVFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50
X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUK
IHdlYmtpdF9kb21faHRtbF9tYXJxdWVlX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgog
ICogd2Via2l0X2RvbV9odG1sX21hcnF1ZWVfZWxlbWVudF9zdGFydDoKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MTWFycXVlZUVsZW1lbnQKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX21hcnF1ZWVfZWxlbWVudF9zdGFy
dChXZWJLaXRET01IVE1MTWFycXVlZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKICAqIHdlYmtpdF9k
b21faHRtbF9tYXJxdWVlX2VsZW1lbnRfc3RvcDoKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
TWFycXVlZUVsZW1lbnQKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9odG1sX21hcnF1ZWVfZWxlbWVudF9zdG9wKFdlYktpdERPTUhU
TUxNYXJxdWVlRWxlbWVudCogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTE1lbnVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWVudUVsZW1lbnQuY3BwCmluZGV4IGRjNmI2
YjRlNjA5Li4wMzI1Y2I4MWJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNZW51RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxNZW51RWxlbWVudC5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRl
IDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5f
SUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhU
TUxNZW51RWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxNZW51RWxlbWVudCogb2JqKQpAQCAtMTY2
LDMgKzE2OCw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX21lbnVfZWxlbWVudF9zZXRfY29tcGFj
dChXZWJLaXRET01IVE1MTWVudUVsZW1lbnQqIHNlbGYsIGdiCiAgICAgaXRlbS0+c2V0Qm9vbGVh
bkF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmNvbXBhY3RBdHRyLCB2YWx1ZSk7CiB9CiAK
K0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWVu
dUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MTWVudUVsZW1lbnQuaAppbmRleCAxZjY3MDg2MzkzZC4uMmE0
NmI1ODUzNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWVudUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TE1lbnVFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MTWVu
dUVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xh
c3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Vi
a2l0X2RvbV9odG1sX21lbnVfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4
ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbWVudV9lbGVtZW50X2dldF90eXBlKHZvaWQpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxNZW51RWxlbWVudAogICoKICAqIFJldHVybnM6IEEg
I2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdi
b29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfbWVudV9lbGVtZW50X2dldF9jb21wYWN0KFdlYktpdERP
TUhUTUxNZW51RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0
X2RvbV9odG1sX21lbnVfZWxlbWVudF9nZXRfY29tcGFjdChXZWJLaXRET01IVE1MTWVudUVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxNZW51RWxlbWVudAogICogQHZh
bHVlOiBBICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfbWVudV9lbGVtZW50X3NldF9jb21wYWN0KFdlYktp
dERPTUhUTUxNZW51RWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiBHX0VORF9ERUNM
UwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxNZXRhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1ldGFFbGVt
ZW50LmNwcAppbmRleCAwZDUwYzA1NjY1Zi4uNTUyOWJkNTM1NWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MTWV0YUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWV0YUVsZW1lbnQuY3BwCkBAIC0zNiw2
ICszNiw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MTWV0YUVs
ZW1lbnQqIG9iaikKQEAgLTI3NiwzICsyNzgsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9tZXRh
X2VsZW1lbnRfc2V0X3NjaGVtZShXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQqIHNlbGYsIGNvbgog
ICAgIGl0ZW0tPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRN
TE5hbWVzOjpzY2hlbWVBdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdO
T1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWV0YUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MTWV0YUVsZW1lbnQuaAppbmRleCBlY2RhOTcwODRhNS4uZGM4MzcyY2YxYzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MTWV0YUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50LmgK
QEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MTWV0YUVsZW1lbnRDbGFzcyB7
CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJL
SVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX21l
dGFfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfbWV0YV9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxNZXRhRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRt
bF9tZXRhX2VsZW1lbnRfZ2V0X2NvbnRlbnQoV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50KiBzZWxm
KTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbWV0YV9lbGVtZW50
X2dldF9jb250ZW50KFdlYktpdERPTUhUTUxNZXRhRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRt
bF9tZXRhX2VsZW1lbnRfc2V0X2NvbnRlbnQoV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50KiBzZWxm
LCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTcxLDggKzc1LDEwIEBAIHdlYmtpdF9k
b21faHRtbF9tZXRhX2VsZW1lbnRfc2V0X2NvbnRlbnQoV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50
KiBzZWxmLCBjb25zdCBnCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50CiAg
KgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9E
RVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX21ldGFfZWxlbWVudF9nZXRfaHR0cF9l
cXVpdihXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9tZXRhX2VsZW1lbnRfZ2V0X2h0dHBfZXF1aXYoV2ViS2l0
RE9NSFRNTE1ldGFFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTWV0
YUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX21ldGFfZWxlbWVudF9zZXRf
aHR0cF9lcXVpdihXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2
YWx1ZSk7CiAKIC8qKgpAQCAtODksOCArOTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX21ldGFfZWxl
bWVudF9zZXRfaHR0cF9lcXVpdihXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQqIHNlbGYsIGNvbnMK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIq
CiB3ZWJraXRfZG9tX2h0bWxfbWV0YV9lbGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhUTUxNZXRh
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtOTgsOCArMTA4LDEwIEBAIHdlYmtpdF9kb21faHRt
bF9tZXRhX2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50KiBzZWxmKTsK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2No
YXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9odG1sX21ldGFfZWxlbWVudF9zZXRfbmFtZShXZWJLaXRET01IVE1MTWV0YUVsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTA3LDggKzExOSwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfbWV0YV9lbGVtZW50X3NldF9uYW1lKFdlYktpdERPTUhUTUxNZXRh
RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxNZXRh
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIq
CitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9tZXRhX2VsZW1lbnRf
Z2V0X3NjaGVtZShXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEx
Niw4ICsxMzAsMTAgQEAgd2Via2l0X2RvbV9odG1sX21ldGFfZWxlbWVudF9nZXRfc2NoZW1lKFdl
YktpdERPTUhUTUxNZXRhRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TE1ldGFFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9tZXRhX2VsZW1lbnRf
c2V0X3NjaGVtZShXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2
YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1vZEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxNb2RFbGVtZW50LmNwcAppbmRleCAyZTU5MDE3MGMxYi4uNWRkZTE0Y2E2MTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MTW9kRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNb2RFbGVt
ZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwor
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTE1vZEVsZW1lbnQqIGtpdChXZWJD
b3JlOjpIVE1MTW9kRWxlbWVudCogb2JqKQpAQCAtMjA0LDMgKzIwNiw0IEBAIHZvaWQgd2Via2l0
X2RvbV9odG1sX21vZF9lbGVtZW50X3NldF9kYXRlX3RpbWUoV2ViS2l0RE9NSFRNTE1vZEVsZW1l
bnQqIHNlbGYsIGNvCiAgICAgaXRlbS0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlv
bihXZWJDb3JlOjpIVE1MTmFtZXM6OmRhdGV0aW1lQXR0ciwgY29udmVydGVkVmFsdWUpOwogfQog
CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1v
ZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MTW9kRWxlbWVudC5oCmluZGV4IGU5Yzc3MGZhZjQ2Li42MTdm
MGQwMWQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNb2RFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxN
b2RFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MTW9kRWxl
bWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsK
IH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRf
ZG9tX2h0bWxfbW9kX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMs
MTAgQEAgd2Via2l0X2RvbV9odG1sX21vZF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxNb2RFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0
X2RvbV9odG1sX21vZF9lbGVtZW50X2dldF9jaXRlKFdlYktpdERPTUhUTUxNb2RFbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbW9kX2VsZW1l
bnRfZ2V0X2NpdGUoV2ViS2l0RE9NSFRNTE1vZEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxNb2RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9t
b2RfZWxlbWVudF9zZXRfY2l0ZShXZWJLaXRET01IVE1MTW9kRWxlbWVudCogc2VsZiwgY29uc3Qg
Z2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
bW9kX2VsZW1lbnRfc2V0X2NpdGUoV2ViS2l0RE9NSFRNTE1vZEVsZW1lbnQqIHNlbGYsIGNvbnN0
IGdjaGFyKgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxNb2RFbGVtZW50CiAgKgogICogUmV0
dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVE
IGdjaGFyKgogd2Via2l0X2RvbV9odG1sX21vZF9lbGVtZW50X2dldF9kYXRlX3RpbWUoV2ViS2l0
RE9NSFRNTE1vZEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9tb2RfZWxlbWVudF9nZXRfZGF0ZV90aW1lKFdlYktpdERPTUhUTUxNb2RFbGVt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTW9kRWxlbWVudAogICogQHZh
bHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfbW9kX2VsZW1lbnRfc2V0X2RhdGVfdGltZShXZWJLaXRE
T01IVE1MTW9kRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVD
TFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT0xpc3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT0xpc3RF
bGVtZW50LmNwcAppbmRleCBiNWRjMTliNzRjYS4uYTMwYzZkNjJjZGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MT0xpc3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudC5jcHAKQEAg
LTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1M
T0xpc3RFbGVtZW50KiBvYmopCkBAIC0yMzYsMyArMjM4LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0
bWxfb19saXN0X2VsZW1lbnRfc2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MT0xpc3RFbGVtZW50
KiBzZWwKICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNv
cmU6OkhUTUxOYW1lczo6dHlwZUF0dHIsIGNvbnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VO
RF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MT0xpc3RFbGVtZW50LmgKaW5kZXggYmNhOGEyZDFlZjcuLmRlZTEyOGYxMDI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT0xpc3RF
bGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MT0xpc3RFbGVt
ZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwog
fTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9k
b21faHRtbF9vX2xpc3RfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1
MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb19saXN0X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEg
I2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdi
b29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfb19saXN0X2VsZW1lbnRfZ2V0X2NvbXBhY3QoV2ViS2l0
RE9NSFRNTE9MaXN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX29fbGlzdF9lbGVtZW50X2dldF9jb21wYWN0KFdlYktpdERPTUhUTUxPTGlz
dEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX29fbGlzdF9lbGVtZW50X3NldF9jb21w
YWN0KFdlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAog
LyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb19saXN0X2VsZW1lbnRfc2V0
X2NvbXBhY3QoV2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudCogc2VsZiwgZ2JvbwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZwor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2Rv
bV9odG1sX29fbGlzdF9lbGVtZW50X2dldF9zdGFydChXZWJLaXRET01IVE1MT0xpc3RFbGVtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb19saXN0
X2VsZW1lbnRfZ2V0X3N0YXJ0KFdlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQqIHNlbGYpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9odG1sX29fbGlzdF9lbGVtZW50X3NldF9zdGFydChXZWJLaXRET01IVE1MT0xpc3RFbGVt
ZW50KiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAKIC8qKgpAQCAtODksOCArOTcsMTAgQEAgd2Via2l0
X2RvbV9odG1sX29fbGlzdF9lbGVtZW50X3NldF9zdGFydChXZWJLaXRET01IVE1MT0xpc3RFbGVt
ZW50KiBzZWxmLCBnbG9uZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfb19saXN0X2VsZW1lbnRfZ2V0X3R5
cGVfYXR0cihXZWJLaXRET01IVE1MT0xpc3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC05OCw4
ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9odG1sX29fbGlzdF9lbGVtZW50X2dldF90eXBlX2F0dHIo
V2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTE9MaXN0RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfb19saXN0X2Vs
ZW1lbnRfc2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MT0xpc3RFbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPYmpl
Y3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudC5jcHAKaW5kZXggYjFiNjQ3ZTBh
OWEuLjkwNjhlMzEwMTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudC5jcHAKQEAgLTM4LDYgKzM4LDggQEAKICNpbmNsdWRl
IDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5f
SUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhU
TUxPYmplY3RFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTE9iamVjdEVsZW1lbnQqIG9iaikKQEAg
LTc1MCwzICs3NTIsNCBAQCBXZWJLaXRET01Eb2N1bWVudCogd2Via2l0X2RvbV9odG1sX29iamVj
dF9lbGVtZW50X2dldF9jb250ZW50X2RvY3VtZW50KFdlYktpdERPTQogICAgIHJldHVybiBXZWJL
aXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQ
UkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TE9iamVjdEVsZW1lbnQuaAppbmRleCA1ZDNiZGU3MjI1OC4uMTBjZWZhMGQ2ZmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudC5o
CkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnRDbGFz
cyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1X
RUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1s
X29iamVjdF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBA
IHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2Zl
ciBub25lKTogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2Vi
S2l0RE9NSFRNTEZvcm1FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTEZv
cm1FbGVtZW50Kgogd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X2dldF9mb3JtKFdlYktp
dERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X2Zvcm0oV2ViS2l0RE9NSFRNTE9iamVj
dEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X2dldF9j
b2RlKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC03MSw4ICs3
NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X2NvZGUoV2ViS2l0RE9N
SFRNTE9iamVjdEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmpl
Y3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9z
ZXRfY29kZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlKTsKIAogLyoqCkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2Vs
ZW1lbnRfc2V0X2NvZGUoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGNvbnN0CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIq
CiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxP
YmplY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04OSw4ICs5NywxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50
KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudAogICogQHZh
bHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERP
TUhUTUxPYmplY3RFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAg
LTk4LDggKzEwOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfc2V0X2FsaWdu
KFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9o
dG1sX29iamVjdF9lbGVtZW50X2dldF9hcmNoaXZlKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC0xMDcsOCArMTE5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vYmpl
Y3RfZWxlbWVudF9nZXRfYXJjaGl2ZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X3NldF9hcmNoaXZlKFdlYktpdERPTUhUTUxP
YmplY3RFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTExNiw4
ICsxMzAsMTAgQEAgd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X3NldF9hcmNoaXZlKFdl
YktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmLCBjb24KICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MT2JqZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9v
YmplY3RfZWxlbWVudF9nZXRfYm9yZGVyKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxm
KTsKIAogLyoqCkBAIC0xMjUsOCArMTQxLDEwIEBAIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxl
bWVudF9nZXRfYm9yZGVyKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgog
ICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRf
ZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfc2V0X2JvcmRlcihXZWJLaXRET01IVE1MT2JqZWN0RWxl
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMzQsOCArMTUyLDEw
IEBAIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfYm9yZGVyKFdlYktpdERPTUhU
TUxPYmplY3RFbGVtZW50KiBzZWxmLCBjb25zCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9i
amVjdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2Vs
ZW1lbnRfZ2V0X2NvZGVfYmFzZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtMTQzLDggKzE2MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRf
Z2V0X2NvZGVfYmFzZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX29iamVjdF9lbGVtZW50X3NldF9jb2RlX2Jhc2UoV2ViS2l0RE9NSFRNTE9iamVjdEVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTUyLDggKzE3NCwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfc2V0X2NvZGVfYmFzZShXZWJLaXRE
T01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwgYwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxP
YmplY3RFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Y2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX29iamVjdF9l
bGVtZW50X2dldF9jb2RlX3R5cGUoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTE2MSw4ICsxODUsMTAgQEAgd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50
X2dldF9jb2RlX3R5cGUoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfY29kZV90eXBlKFdlYktpdERPTUhUTUxPYmplY3RF
bGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE3MCw4ICsxOTYs
MTAgQEAgd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X3NldF9jb2RlX3R5cGUoV2ViS2l0
RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGMKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
T2JqZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9vYmplY3Rf
ZWxlbWVudF9nZXRfZGF0YShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtMTc5LDggKzIwNywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0
X2RhdGEoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9v
YmplY3RfZWxlbWVudF9zZXRfZGF0YShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xODgsOCArMjE4LDEwIEBAIHdlYmtpdF9k
b21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfZGF0YShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVu
dCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudAog
ICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dF
QktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRf
Z2V0X2RlY2xhcmUoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTE5Nyw4ICsyMjksMTAgQEAgd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X2dldF9kZWNs
YXJlKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MT2JqZWN0RWxlbWVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxf
b2JqZWN0X2VsZW1lbnRfc2V0X2RlY2xhcmUoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNl
bGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBAIC0yMDYsOCArMjQwLDEwIEBAIHdlYmtpdF9k
b21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfZGVjbGFyZShXZWJLaXRET01IVE1MT2JqZWN0RWxl
bWVudCogc2VsZiwgZ2JvCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X2hl
aWdodChXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjE1LDgg
KzI1MSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X2hlaWdodChXZWJL
aXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TE9iamVjdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVt
ZW50X3NldF9oZWlnaHQoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjI0LDggKzI2MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
b2JqZWN0X2VsZW1lbnRfc2V0X2hlaWdodChXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2Vs
ZiwgY29ucwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FU
RUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9nZXRfaHNwYWNlKFdlYktp
dERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMzMsOCArMjczLDEwIEBA
IHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9nZXRfaHNwYWNlKFdlYktpdERPTUhUTUxP
YmplY3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT2JqZWN0RWxl
bWVudAogICogQHZhbHVlOiBBICNnbG9uZwogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfc2V0X2hz
cGFjZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAv
KioKQEAgLTI0Miw4ICsyODQsMTAgQEAgd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X3Nl
dF9oc3BhY2UoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGdsb24KICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFy
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtp
dF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9nZXRfbmFtZShXZWJLaXRET01IVE1MT2JqZWN0RWxl
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjUxLDggKzI5NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
b2JqZWN0X2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAgKiBAdmFsdWU6IEEg
I2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfbmFtZShXZWJLaXRET01IVE1MT2Jq
ZWN0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0yNjAsOCAr
MzA2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfbmFtZShXZWJLaXRE
T01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MT2JqZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9vYmpl
Y3RfZWxlbWVudF9nZXRfc3RhbmRieShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtMjY5LDggKzMxNywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1l
bnRfZ2V0X3N0YW5kYnkoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfc3RhbmRieShXZWJLaXRET01IVE1MT2JqZWN0RWxl
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0yNzgsOCArMzI4LDEw
IEBAIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfc3RhbmRieShXZWJLaXRET01I
VE1MT2JqZWN0RWxlbWVudCogc2VsZiwgY29uCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9i
amVjdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2Vs
ZW1lbnRfZ2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtMjg3LDggKzMzOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRf
Z2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX29iamVjdF9lbGVtZW50X3NldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTE9iamVjdEVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjk2LDggKzM1MCwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfc2V0X3R5cGVfYXR0cihXZWJLaXRE
T01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwgYwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxP
YmplY3RFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Y2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX29iamVjdF9l
bGVtZW50X2dldF91c2VfbWFwKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0zMDUsOCArMzYxLDEwIEBAIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9n
ZXRfdXNlX21hcChXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9o
dG1sX29iamVjdF9lbGVtZW50X3NldF91c2VfbWFwKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50
KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTMxNCw4ICszNzIsMTAgQEAg
d2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X3NldF91c2VfbWFwKFdlYktpdERPTUhUTUxP
YmplY3RFbGVtZW50KiBzZWxmLCBjb24KICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT2JqZWN0
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcK
K1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRf
Z2V0X3ZzcGFjZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
MzIzLDggKzM4MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X3ZzcGFj
ZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX29iamVj
dF9lbGVtZW50X3NldF92c3BhY2UoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGds
b25nIHZhbHVlKTsKIAogLyoqCkBAIC0zMzIsOCArMzk0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9v
YmplY3RfZWxlbWVudF9zZXRfdnNwYWNlKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxm
LCBnbG9uCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X3dpZHRoKFdlYktp
dERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0zNDEsOCArNDA1LDEwIEBA
IHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9nZXRfd2lkdGgoV2ViS2l0RE9NSFRNTE9i
amVjdEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVt
ZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfd2lk
dGgoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7
CiAKIC8qKgpAQCAtMzUwLDggKzQxNiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1l
bnRfc2V0X3dpZHRoKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmLCBjb25zdAogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAgKgogICogUmV0dXJuczogKHRy
YW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Eb2N1bWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktp
dERPTURvY3VtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRG9jdW1lbnQqCiB3ZWJr
aXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X2NvbnRlbnRfZG9jdW1lbnQoV2ViS2l0RE9N
SFRNTE9iamVjdEVsZW1lbnQqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxPcHRHcm91cEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRHcm91cEVsZW1lbnQuY3BwCmlu
ZGV4IDAyZjUxNGFmZDliLi45YTAxODllODlhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRHcm91
cEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT3B0R3JvdXBFbGVtZW50LmNwcApAQCAtMzYsNiAr
MzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogV2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxPcHRH
cm91cEVsZW1lbnQqIG9iaikKQEAgLTIwMiwzICsyMDQsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRt
bF9vcHRfZ3JvdXBfZWxlbWVudF9zZXRfbGFiZWwoV2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxlbWVu
dCogcwogICAgIGl0ZW0tPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29y
ZTo6SFRNTE5hbWVzOjpsYWJlbEF0dHIsIGNvbnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VO
RF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRHcm91cEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MT3B0R3JvdXBFbGVtZW50LmgKaW5kZXggYmQ4MmZhOGJkZDQuLmVlNjc1
NjEyM2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MT3B0R3JvdXBFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01I
VE1MT3B0R3JvdXBFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3Mg
cGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQg
R1R5cGUKIHdlYmtpdF9kb21faHRtbF9vcHRfZ3JvdXBfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsK
IAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb3B0X2dyb3VwX2VsZW1l
bnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxl
bWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xl
YW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfb3B0X2dyb3Vw
X2VsZW1lbnRfZ2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxPcHRHcm91cEVsZW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vcHRfZ3JvdXBfZWxl
bWVudF9nZXRfZGlzYWJsZWQoV2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxlbWVudCogc2VsCiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxlbWVudAogICogQHZhbHVlOiBBICNnYm9v
bGVhbgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3
ZWJraXRfZG9tX2h0bWxfb3B0X2dyb3VwX2VsZW1lbnRfc2V0X2Rpc2FibGVkKFdlYktpdERPTUhU
TUxPcHRHcm91cEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBAIC03MSw4
ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb3B0X2dyb3VwX2VsZW1lbnRfc2V0X2Rpc2FibGVk
KFdlYktpdERPTUhUTUxPcHRHcm91cEVsZW1lbnQqIHNlbAogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxPcHRHcm91cEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxf
b3B0X2dyb3VwX2VsZW1lbnRfZ2V0X2xhYmVsKFdlYktpdERPTUhUTUxPcHRHcm91cEVsZW1lbnQq
IHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vcHRfZ3Jv
dXBfZWxlbWVudF9nZXRfbGFiZWwoV2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxlbWVudCogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxlbWVudAogICogQHZhbHVlOiBB
ICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2h0bWxfb3B0X2dyb3VwX2VsZW1lbnRfc2V0X2xhYmVsKFdlYktpdERPTUhU
TUxPcHRHcm91cEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RF
Q0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRp
b25FbGVtZW50LmNwcAppbmRleCBjOTFkODdhNTI4MS4uODk1YTcxMjczMDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MT3B0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRpb25FbGVtZW50LmNw
cApAQCAtMzcsNiArMzcsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQqIGtpdChXZWJDb3Jl
OjpIVE1MT3B0aW9uRWxlbWVudCogb2JqKQpAQCAtMzc2LDMgKzM3OCw0IEBAIGdsb25nIHdlYmtp
dF9kb21faHRtbF9vcHRpb25fZWxlbWVudF9nZXRfaW5kZXgoV2ViS2l0RE9NSFRNTE9wdGlvbkVs
ZW1lbnQqIHNlbGYpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorR19HTlVDX0VORF9JR05PUkVf
REVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRpb25FbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTE9wdGlvbkVsZW1lbnQuaAppbmRleCA1Mzg3MDU2OTA5My4uM2U5ZmQ4NzdhYjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT3B0aW9uRWxlbWVu
dC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnRD
bGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9Owog
Ci1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9o
dG1sX29wdGlvbl9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEw
IEBAIHdlYmtpdF9kb21faHRtbF9vcHRpb25fZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2di
b29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29s
ZWFuCiB3ZWJraXRfZG9tX2h0bWxfb3B0aW9uX2VsZW1lbnRfZ2V0X2Rpc2FibGVkKFdlYktpdERP
TUhUTUxPcHRpb25FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfb3B0aW9uX2VsZW1lbnRfZ2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxPcHRp
b25FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVu
dAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfb3B0aW9uX2VsZW1lbnRfc2V0X2Rp
c2FibGVkKFdlYktpdERPTUhUTUxPcHRpb25FbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7
CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50
X3NldF9kaXNhYmxlZChXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCogc2VsZiwgZ2IKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFu
c2ZlciBub25lKTogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50CisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
V2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRN
TEZvcm1FbGVtZW50Kgogd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50X2dldF9mb3JtKFdl
YktpdERPTUhUTUxPcHRpb25FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4NiwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfb3B0aW9uX2VsZW1lbnRfZ2V0X2Zvcm0oV2ViS2l0RE9NSFRNTE9w
dGlvbkVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPcHRpb25FbGVt
ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dF
QktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50X2dl
dF9sYWJlbChXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtODks
OCArOTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50X2dldF9sYWJlbChXZWJL
aXRET01IVE1MT3B0aW9uRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TE9wdGlvbkVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVt
ZW50X3NldF9sYWJlbChXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCogc2VsZiwgY29uc3QgZ2No
YXIqIHZhbHVlKTsKIAogLyoqCkBAIC05OCw4ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9odG1sX29w
dGlvbl9lbGVtZW50X3NldF9sYWJlbChXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCogc2VsZiwg
Y29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudAogICoKICAqIFJl
dHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBS
RUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfb3B0aW9uX2VsZW1lbnRfZ2V0X2RlZmF1
bHRfc2VsZWN0ZWQoV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTEwNyw4ICsxMTksMTAgQEAgd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50X2dldF9kZWZh
dWx0X3NlbGVjdGVkKFdlYktpdERPTUhUTUxPcHRpb25FbGVtZW50KgogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxPcHRpb25FbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRt
bF9vcHRpb25fZWxlbWVudF9zZXRfZGVmYXVsdF9zZWxlY3RlZChXZWJLaXRET01IVE1MT3B0aW9u
RWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTExNiw4ICsxMzAsMTAg
QEAgd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50X3NldF9kZWZhdWx0X3NlbGVjdGVkKFdl
YktpdERPTUhUTUxPcHRpb25FbGVtZW50KgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPcHRp
b25FbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Ym9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9vcHRp
b25fZWxlbWVudF9nZXRfc2VsZWN0ZWQoV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTEyNSw4ICsxNDEsMTAgQEAgd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVt
ZW50X2dldF9zZWxlY3RlZChXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCogc2VsZik7CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xl
YW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50X3NldF9zZWxlY3RlZChXZWJLaXRET01IVE1MT3B0
aW9uRWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTEzNCw4ICsxNTIs
MTAgQEAgd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50X3NldF9zZWxlY3RlZChXZWJLaXRE
T01IVE1MT3B0aW9uRWxlbWVudCogc2VsZiwgZ2IKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
T3B0aW9uRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9vcHRpb25f
ZWxlbWVudF9nZXRfdmFsdWUoV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTE0Myw4ICsxNjMsMTAgQEAgd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50X2dl
dF92YWx1ZShXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X29wdGlvbl9lbGVtZW50X3NldF92YWx1ZShXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNTIsOCArMTc0LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9vcHRpb25fZWxlbWVudF9zZXRfdmFsdWUoV2ViS2l0RE9NSFRNTE9wdGlvbkVs
ZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfb3B0aW9uX2VsZW1lbnRfZ2V0
X3RleHQoV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE2MSw4
ICsxODUsMTAgQEAgd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50X2dldF90ZXh0KFdlYktp
dERPTUhUTUxPcHRpb25FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
T3B0aW9uRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfb3B0aW9uX2Vs
ZW1lbnRfZ2V0X2luZGV4KFdlYktpdERPTUhUTUxPcHRpb25FbGVtZW50KiBzZWxmKTsKIAogR19F
TkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHAKaW5kZXggOWMxMTg2MzNiZWUuLmM5ZjU0Y2MzNWZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TE9wdGlvbnNDb2xsZWN0aW9uLmNwcApAQCAtMzQsNiArMzQsOCBAQAogI2luY2x1ZGUgPHd0Zi9H
ZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVf
REVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTE9wdGlv
bnNDb2xsZWN0aW9uKiBraXQoV2ViQ29yZTo6SFRNTE9wdGlvbnNDb2xsZWN0aW9uKiBvYmopCkBA
IC0xNjMsMyArMTY1LDQgQEAgZ3Vsb25nIHdlYmtpdF9kb21faHRtbF9vcHRpb25zX2NvbGxlY3Rp
b25fZ2V0X2xlbmd0aChXZWJLaXRET01IVE1MT3B0aW9uc0NvbGxlY3QKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgK
aW5kZXggYjdiYzYwOWUzODkuLjAwZjBhODNkNDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9wdGlv
bnNDb2xsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oCkBAIC00NSw3
ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uQ2xhc3Mgewog
ICAgIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uQ2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VC
S0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF9v
cHRpb25zX2NvbGxlY3Rpb25fZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTQsOCArNTQsMTAg
QEAgd2Via2l0X2RvbV9odG1sX29wdGlvbnNfY29sbGVjdGlvbl9nZXRfdHlwZSh2b2lkKTsKICAq
IEBuYW1lOiBBICNnY2hhcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2Vi
S2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVD
QVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9odG1sX29wdGlvbnNfY29sbGVjdGlvbl9u
YW1lZF9pdGVtKFdlYktpdERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbiogc2VsZiwgY29uc3QgZ2No
YXIqIG5hbWUpOwogCiAvKioKQEAgLTYzLDggKzY1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vcHRp
b25zX2NvbGxlY3Rpb25fbmFtZWRfaXRlbShXZWJLaXRET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24q
IHNlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uCiAgKgogICog
UmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FU
RUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF9vcHRpb25zX2NvbGxlY3Rpb25fZ2V0X3NlbGVjdGVk
X2luZGV4KFdlYktpdERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbiogc2VsZik7CiAKIC8qKgpAQCAt
NzIsOCArNzYsMTAgQEAgd2Via2l0X2RvbV9odG1sX29wdGlvbnNfY29sbGVjdGlvbl9nZXRfc2Vs
ZWN0ZWRfaW5kZXgoV2ViS2l0RE9NSFRNTE9wdGlvbnNDb2xsZWMKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24KICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X29wdGlvbnNfY29sbGVjdGlvbl9zZXRfc2VsZWN0ZWRfaW5kZXgoV2ViS2l0RE9NSFRNTE9wdGlv
bnNDb2xsZWN0aW9uKiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAKIC8qKgpAQCAtODEsOCArODcsMTAg
QEAgd2Via2l0X2RvbV9odG1sX29wdGlvbnNfY29sbGVjdGlvbl9zZXRfc2VsZWN0ZWRfaW5kZXgo
V2ViS2l0RE9NSFRNTE9wdGlvbnNDb2xsZWMKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT3B0
aW9uc0NvbGxlY3Rpb24KICAqCiAgKiBSZXR1cm5zOiBBICNndWxvbmcKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Via2l0X2RvbV9odG1sX29wdGlv
bnNfY29sbGVjdGlvbl9nZXRfbGVuZ3RoKFdlYktpdERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbiog
c2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFBhcmFncmFwaEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50LmNwcAppbmRleCAxMjQwMjhhMmMyMS4u
MDFiMjg1NzIwYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUGFyYWdyYXBoRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1
ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJ
Tl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9N
SFRNTFBhcmFncmFwaEVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MUGFyYWdyYXBoRWxlbWVudCog
b2JqKQpAQCAtMTY4LDMgKzE3MCw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX3BhcmFncmFwaF9l
bGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MUGFyYWdyYXBoRWxlbWVudCoKICAgICBpdGVt
LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6
YWxpZ25BdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJF
Q0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUGFyYWdyYXBoRWxlbWVudC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxQYXJhZ3JhcGhFbGVtZW50LmgKaW5kZXggZjhkOTAyZmJhMDIuLmFkNzNjNDUxOGZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTFBhcmFncmFwaEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFBhcmFncmFw
aEVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxQYXJhZ3Jh
cGhFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2Ns
YXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdl
YmtpdF9kb21faHRtbF9wYXJhZ3JhcGhfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBA
IC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfcGFyYWdyYXBoX2VsZW1lbnRfZ2V0X3R5
cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFBhcmFncmFwaEVsZW1lbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfcGFyYWdyYXBoX2VsZW1lbnRfZ2V0X2Fs
aWduKFdlYktpdERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4
ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfcGFyYWdyYXBoX2VsZW1lbnRfZ2V0X2FsaWduKFdl
YktpdERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50KiBzZWxmKQogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxQYXJhZ3JhcGhFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9wYXJh
Z3JhcGhfZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFBhcmFncmFwaEVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTFBhcmFtRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFBhcmFtRWxlbWVudC5jcHAKaW5kZXggOTk1
MjdhZjNjM2EuLjI5YmEwZjExNWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFBhcmFtRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5j
bHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JF
R0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRE
T01IVE1MUGFyYW1FbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTFBhcmFtRWxlbWVudCogb2JqKQpA
QCAtMjc2LDMgKzI3OCw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX3BhcmFtX2VsZW1lbnRfc2V0
X3ZhbHVlX3R5cGUoV2ViS2l0RE9NSFRNTFBhcmFtRWxlbWVudCogc2VsCiAgICAgaXRlbS0+c2V0
QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnZhbHVl
dHlwZUF0dHIsIGNvbnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVD
QVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUGFy
YW1FbGVtZW50LmgKaW5kZXggNjg4OGEwYjEwNWMuLjA4ZjcxM2JjZWU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTFBhcmFtRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUGFyYW1FbGVtZW50LmgKQEAgLTQ1
LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MUGFyYW1FbGVtZW50Q2xhc3MgewogICAg
IFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQ
SSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF9wYXJhbV9l
bGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9k
b21faHRtbF9wYXJhbV9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxQYXJhbUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxf
cGFyYW1fZWxlbWVudF9nZXRfbmFtZShXZWJLaXRET01IVE1MUGFyYW1FbGVtZW50KiBzZWxmKTsK
IAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfcGFyYW1fZWxlbWVudF9n
ZXRfbmFtZShXZWJLaXRET01IVE1MUGFyYW1FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MUGFyYW1FbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9w
YXJhbV9lbGVtZW50X3NldF9uYW1lKFdlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX3BhcmFtX2VsZW1lbnRfc2V0X25hbWUoV2ViS2l0RE9NSFRNTFBhcmFtRWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2MKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MUGFyYW1FbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBS
RUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3BhcmFtX2VsZW1lbnRfZ2V0X3R5cGVfYXR0
cihXZWJLaXRET01IVE1MUGFyYW1FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4Niwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfcGFyYW1fZWxlbWVudF9nZXRfdHlwZV9hdHRyKFdlYktpdERP
TUhUTUxQYXJhbUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxQYXJh
bUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3BhcmFtX2VsZW1lbnRfc2V0
X3R5cGVfYXR0cihXZWJLaXRET01IVE1MUGFyYW1FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciog
dmFsdWUpOwogCiAvKioKQEAgLTg5LDggKzk3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9wYXJhbV9l
bGVtZW50X3NldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTFBhcmFtRWxlbWVudCogc2VsZiwgY29u
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFBhcmFtRWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21faHRtbF9wYXJhbV9lbGVtZW50X2dldF92YWx1ZShXZWJLaXRET01IVE1M
UGFyYW1FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC05OCw4ICsxMDgsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX3BhcmFtX2VsZW1lbnRfZ2V0X3ZhbHVlKFdlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQq
IHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQKICAqIEB2YWx1
ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX3BhcmFtX2VsZW1lbnRfc2V0X3ZhbHVlKFdlYktpdERPTUhU
TUxQYXJhbUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTA3
LDggKzExOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfcGFyYW1fZWxlbWVudF9zZXRfdmFsdWUoV2Vi
S2l0RE9NSFRNTFBhcmFtRWxlbWVudCogc2VsZiwgY29uc3QgZwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxQYXJhbUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxf
cGFyYW1fZWxlbWVudF9nZXRfdmFsdWVfdHlwZShXZWJLaXRET01IVE1MUGFyYW1FbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC0xMTYsOCArMTMwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9wYXJhbV9l
bGVtZW50X2dldF92YWx1ZV90eXBlKFdlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2No
YXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9odG1sX3BhcmFtX2VsZW1lbnRfc2V0X3ZhbHVlX3R5cGUoV2ViS2l0RE9NSFRNTFBh
cmFtRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MUHJlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFByZUVsZW1lbnQuY3Bw
CmluZGV4IGI5OWNmMWY0OWIxLi40YWUyMTEzYTk2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQcmVF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFByZUVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4IEBA
CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19H
TlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBX
ZWJLaXRET01IVE1MUHJlRWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxQcmVFbGVtZW50KiBvYmop
CkBAIC0yMDAsMyArMjAyLDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfcHJlX2VsZW1lbnRfc2V0
X3dyYXAoV2ViS2l0RE9NSFRNTFByZUVsZW1lbnQqIHNlbGYsIGdib29sZWEKICAgICBpdGVtLT5z
ZXRCb29sZWFuQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6d3JhcEF0dHIsIHZhbHVlKTsK
IH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxQcmVFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFByZUVsZW1lbnQuaAppbmRleCAzOGNkZTk0ZmJmZC4u
YjBhY2EzOTI4NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUHJlRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MUHJlRWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTFBy
ZUVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xh
c3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Vi
a2l0X2RvbV9odG1sX3ByZV9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDgg
KzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9wcmVfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MUHJlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2ds
b25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJr
aXRfZG9tX2h0bWxfcHJlX2VsZW1lbnRfZ2V0X3dpZHRoKFdlYktpdERPTUhUTUxQcmVFbGVtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfcHJlX2Vs
ZW1lbnRfZ2V0X3dpZHRoKFdlYktpdERPTUhUTUxQcmVFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MUHJlRWxlbWVudAogICogQHZhbHVlOiBBICNnbG9uZwogICoKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0
bWxfcHJlX2VsZW1lbnRfc2V0X3dpZHRoKFdlYktpdERPTUhUTUxQcmVFbGVtZW50KiBzZWxmLCBn
bG9uZyB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX3By
ZV9lbGVtZW50X3NldF93aWR0aChXZWJLaXRET01IVE1MUHJlRWxlbWVudCogc2VsZiwgZ2xvbmcg
dmFsdWUKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MUHJlRWxlbWVudAogICoKICAqIFJldHVy
bnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNB
VEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfcHJlX2VsZW1lbnRfZ2V0X3dyYXAoV2ViS2l0
RE9NSFRNTFByZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9wcmVfZWxlbWVudF9nZXRfd3JhcChXZWJLaXRET01IVE1MUHJlRWxlbWVudCog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFByZUVsZW1lbnQKICAqIEB2YWx1ZTog
QSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX3ByZV9lbGVtZW50X3NldF93cmFwKFdlYktpdERPTUhUTUxQ
cmVFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTFByaXZhdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQcml2YXRlLmNwcAppbmRleCAxMGIx
MDRlY2UyMy4uYmE0MjI5ZWQzZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUHJpdmF0ZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxQcml2YXRlLmNwcApAQCAtMTM5LDYgKzEzOSw4IEBACiAjaW5jbHVkZSAiV2Vi
S2l0RE9NSFRNTFRpdGxlRWxlbWVudFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRET01IVE1M
VUxpc3RFbGVtZW50UHJpdmF0ZS5oIgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9O
UzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAt
MjQxLDMgKzI0Myw0IEBAIFdlYktpdERPTUhUTUxFbGVtZW50KiB3cmFwKEhUTUxFbGVtZW50KiBl
bGVtZW50KQogfQogCiB9CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTFF1b3RlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFF1b3RlRWxlbWVudC5jcHAK
aW5kZXggNWQyYjQ0ZDBlYTEuLmNmYjRiMzk3NjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFF1b3Rl
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxRdW90ZUVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4
IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAor
R19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBXZWJLaXRET01IVE1MUXVvdGVFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTFF1b3RlRWxlbWVu
dCogb2JqKQpAQCAtMTY4LDMgKzE3MCw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX3F1b3RlX2Vs
ZW1lbnRfc2V0X2NpdGUoV2ViS2l0RE9NSFRNTFF1b3RlRWxlbWVudCogc2VsZiwgY29uCiAgICAg
aXRlbS0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFt
ZXM6OmNpdGVBdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RF
UFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUXVvdGVFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TFF1b3RlRWxlbWVudC5oCmluZGV4IDg5YzA4ODA4ZGUxLi5kNjVlNzM0ZWZlMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxRdW90ZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFF1b3RlRWxlbWVudC5oCkBA
IC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTFF1b3RlRWxlbWVudENsYXNzIHsK
ICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJ
VF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfcXVv
dGVfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfcXVvdGVfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MUXVvdGVFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9o
dG1sX3F1b3RlX2VsZW1lbnRfZ2V0X2NpdGUoV2ViS2l0RE9NSFRNTFF1b3RlRWxlbWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3F1b3RlX2VsZW1l
bnRfZ2V0X2NpdGUoV2ViS2l0RE9NSFRNTFF1b3RlRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTFF1b3RlRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0
bWxfcXVvdGVfZWxlbWVudF9zZXRfY2l0ZShXZWJLaXRET01IVE1MUXVvdGVFbGVtZW50KiBzZWxm
LCBjb25zdCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxTY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggN2Nm
MzI1NzVkMTQuLjhiMTQxZmUzYjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudC5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNp
bmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNf
QkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktp
dERPTUhUTUxTY3JpcHRFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTFNjcmlwdEVsZW1lbnQqIG9i
aikKQEAgLTM4MCwzICszODIsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9zY3JpcHRfZWxlbWVu
dF9zZXRfdHlwZV9hdHRyKFdlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50KiBzZQogICAgIFdURjo6
U3RyaW5nIGNvbnZlcnRlZFZhbHVlID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKTsKICAg
ICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxO
YW1lczo6dHlwZUF0dHIsIGNvbnZlcnRlZFZhbHVlKTsKIH0KK0dfR05VQ19FTkRfSUdOT1JFX0RF
UFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxTY3JpcHRFbGVtZW50LmgKaW5kZXggNmI5OGM0NzRhNDQuLjFhMTExOWRjNmNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQu
aApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50Q2xh
c3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAot
V0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRt
bF9zY3JpcHRfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hh
cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJr
aXRfZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfZ2V0X3RleHQoV2ViS2l0RE9NSFRNTFNjcmlwdEVs
ZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9z
Y3JpcHRfZWxlbWVudF9nZXRfdGV4dChXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudCogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X3NldF90ZXh0KFdlYktpdERPTUhUTUxTY3Jp
cHRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTcxLDggKzc1
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9zY3JpcHRfZWxlbWVudF9zZXRfdGV4dChXZWJLaXRET01I
VE1MU2NyaXB0RWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
U2NyaXB0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9zY3JpcHRf
ZWxlbWVudF9nZXRfaHRtbF9mb3IoV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTgwLDggKzg2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9zY3JpcHRfZWxlbWVudF9n
ZXRfaHRtbF9mb3IoV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF9zY3JpcHRfZWxlbWVudF9zZXRfaHRtbF9mb3IoV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtODksOCArOTcsMTAgQEAg
d2Via2l0X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X3NldF9odG1sX2ZvcihXZWJLaXRET01IVE1M
U2NyaXB0RWxlbWVudCogc2VsZiwgY28KICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MU2NyaXB0
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIq
CitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9zY3JpcHRfZWxlbWVu
dF9nZXRfZXZlbnQoV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTk4LDggKzEwOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfZ2V0X2V2ZW50
KFdlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MU2NyaXB0RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfc2NyaXB0
X2VsZW1lbnRfc2V0X2V2ZW50KFdlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Via2l0X2RvbV9o
dG1sX3NjcmlwdF9lbGVtZW50X3NldF9ldmVudChXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudCog
c2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudAogICoK
ICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9zY3JpcHRfZWxlbWVudF9nZXRfY2hhcnNl
dChXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTE3LDggKzEz
MSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfZ2V0X2NoYXJzZXQoV2ViS2l0
RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNnY2hhcgogICoKICAq
IFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9p
ZAogd2Via2l0X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X3NldF9jaGFyc2V0KFdlYktpdERPTUhU
TUxTY3JpcHRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEy
Niw4ICsxNDIsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X3NldF9jaGFyc2V0
KFdlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50KiBzZWxmLCBjb24KICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MU2NyaXB0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRf
ZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfZ2V0X2RlZmVyKFdlYktpdERPTUhUTUxTY3JpcHRFbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMzUsOCArMTUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9z
Y3JpcHRfZWxlbWVudF9nZXRfZGVmZXIoV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50CiAgKiBAdmFsdWU6IEEg
I2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZv
aWQKIHdlYmtpdF9kb21faHRtbF9zY3JpcHRfZWxlbWVudF9zZXRfZGVmZXIoV2ViS2l0RE9NSFRN
TFNjcmlwdEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBAIC0xNDQsOCAr
MTY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9zY3JpcHRfZWxlbWVudF9zZXRfZGVmZXIoV2ViS2l0
RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYsIGdib29sCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTFNjcmlwdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfc2Ny
aXB0X2VsZW1lbnRfZ2V0X3NyYyhXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtMTUzLDggKzE3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRf
Z2V0X3NyYyhXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X3NjcmlwdF9lbGVtZW50X3NldF9zcmMoV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYs
IGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTYyLDggKzE4NiwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfc2V0X3NyYyhXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVu
dCogc2VsZiwgY29uc3QgZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X2dldF90
eXBlX2F0dHIoV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE3
MSw4ICsxOTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X2dldF90eXBlX2F0
dHIoV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxTY3JpcHRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9zY3Jp
cHRfZWxlbWVudF9zZXRfdHlwZV9hdHRyKFdlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50KiBzZWxm
LCBjb25zdCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxTZWxlY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggYTQx
MGU5OGQyMDEuLjE5MGFjYmVlNzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTQyLDYgKzQyLDggQEAKICNp
bmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNf
QkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktp
dERPTUhUTUxTZWxlY3RFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQqIG9i
aikKQEAgLTU2NSwzICs1NjcsNCBAQCBnYm9vbGVhbiB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2Vs
ZW1lbnRfZ2V0X3dpbGxfdmFsaWRhdGUoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZQogICAgIGdib29s
ZWFuIHJlc3VsdCA9IGl0ZW0tPndpbGxWYWxpZGF0ZSgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9
CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFNl
bGVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudC5oCmluZGV4IGRlOGYzMjQ1Njk1
Li4wOTJjZGVlMjZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxTZWxlY3RFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRE
T01IVE1MU2VsZWN0RWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNz
IHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVE
IEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAK
IC8qKgpAQCAtNTQsOCArNTQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dl
dF90eXBlKHZvaWQpOwogICogQGluZGV4OiBBICNndWxvbmcKICAqCiAgKiBSZXR1cm5zOiAodHJh
bnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01O
b2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21faHRtbF9z
ZWxlY3RfZWxlbWVudF9pdGVtKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmLCBndWxv
bmcgaW5kZXgpOwogCiAvKioKQEAgLTY0LDggKzY2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9zZWxl
Y3RfZWxlbWVudF9pdGVtKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmLCBndWxvbmcg
aW5kCiAgKiBAbmFtZTogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6
IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lU
X0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVu
dF9uYW1lZF9pdGVtKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hh
ciogbmFtZSk7CiAKIC8qKgpAQCAtNzUsOCArNzksMTAgQEAgd2Via2l0X2RvbV9odG1sX3NlbGVj
dF9lbGVtZW50X25hbWVkX2l0ZW0oV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYsIGNv
bnMKICAqIEBiZWZvcmU6IEEgI1dlYktpdERPTUhUTUxFbGVtZW50CiAgKiBAZXJyb3I6ICNHRXJy
b3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2FkZChXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVu
dCogc2VsZiwgV2ViS2l0RE9NSFRNTEVsZW1lbnQqIGVsZW1lbnQsIFdlYktpdERPTUhUTUxFbGVt
ZW50KiBiZWZvcmUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC04NCw4ICs5MCwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfYWRkKFdlYktpdERPTUhUTUxTZWxlY3RFbGVt
ZW50KiBzZWxmLCBXZWJLaXRET01IVAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTZWxlY3RF
bGVtZW50CiAgKiBAaW5kZXg6IEEgI2dsb25nCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9yZW1v
dmUoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYsIGdsb25nIGluZGV4KTsKIAogLyoq
CkBAIC05Myw4ICsxMDEsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X3JlbW92
ZShXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudCogc2VsZiwgZ2xvbmcgaW4KICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFu
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3
ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X2F1dG9mb2N1cyhXZWJLaXRET01IVE1M
U2VsZWN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTAyLDggKzExMiwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X2F1dG9mb2N1cyhXZWJLaXRET01IVE1MU2VsZWN0
RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X3NldF9hdXRv
Zm9jdXMoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsK
IAogLyoqCkBAIC0xMTEsOCArMTIzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVu
dF9zZXRfYXV0b2ZvY3VzKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmLCBnCiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
Ym9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9v
bGVhbgogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dldF9kaXNhYmxlZChXZWJLaXRE
T01IVE1MU2VsZWN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTIwLDggKzEzNCwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxT
ZWxlY3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MU2VsZWN0RWxl
bWVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfc2V0
X2Rpc2FibGVkKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1
ZSk7CiAKIC8qKgpAQCAtMTI5LDggKzE0NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2Vs
ZW1lbnRfc2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmLCBnYgog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50CiAgKgogICogUmV0dXJuczog
KHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRE
T01IVE1MRm9ybUVsZW1lbnQqCiB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X2Zv
cm0oV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEzOCw4ICsx
NTYsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dldF9mb3JtKFdlYktpdERP
TUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MU2Vs
ZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfc2Vs
ZWN0X2VsZW1lbnRfZ2V0X211bHRpcGxlKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxm
KTsKIAogLyoqCkBAIC0xNDcsOCArMTY3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxl
bWVudF9nZXRfbXVsdGlwbGUoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dib29s
ZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9zZXRfbXVsdGlwbGUoV2ViS2l0RE9NSFRNTFNl
bGVjdEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBAIC0xNTYsOCArMTc4
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9zZXRfbXVsdGlwbGUoV2ViS2l0
RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYsIGdiCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TFNlbGVjdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0
X2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTE2NSw4ICsxODksMTAgQEAgd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dl
dF9uYW1lKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxf
c2VsZWN0X2VsZW1lbnRfc2V0X25hbWUoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYs
IGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTc0LDggKzIwMCwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfc2V0X25hbWUoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1l
bnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRf
REVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dldF9zaXpl
KFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xODMsOCArMjEx
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9nZXRfc2l6ZShXZWJLaXRET01I
VE1MU2VsZWN0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVj
dEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X3Nl
dF9zaXplKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAK
IC8qKgpAQCAtMTkyLDggKzIyMiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRf
c2V0X3NpemUoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYsIGdsb25nCiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hh
cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJr
aXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X3NlbGVjdF90eXBlKFdlYktpdERPTUhUTUxT
ZWxlY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMDEsOCArMjMzLDEwIEBAIHdlYmtpdF9k
b21faHRtbF9zZWxlY3RfZWxlbWVudF9nZXRfc2VsZWN0X3R5cGUoV2ViS2l0RE9NSFRNTFNlbGVj
dEVsZW1lbnQqIHNlbGYpCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUhUTUxPcHRpb25z
Q29sbGVjdGlvbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxPcHRpb25zQ29sbGVjdGlv
bioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbioKIHdl
YmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9nZXRfb3B0aW9ucyhXZWJLaXRET01IVE1MU2Vs
ZWN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjEwLDggKzI0NCwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X29wdGlvbnMoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ3Vsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQ
UkVDQVRFRCBndWxvbmcKIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9nZXRfbGVuZ3Ro
KFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMjAsOCArMjU2
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9nZXRfbGVuZ3RoKFdlYktpdERP
TUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ3Vsb25nCiAgKiBAZXJy
b3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X3NldF9sZW5ndGgoV2ViS2l0RE9N
SFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYsIGd1bG9uZyB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOwog
CiAvKioKQEAgLTIyOSw4ICsyNjcsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50
X3NldF9sZW5ndGgoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYsIGd1bG8KICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2ds
b25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJr
aXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X3NlbGVjdGVkX2luZGV4KFdlYktpdERPTUhU
TUxTZWxlY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMzgsOCArMjc4LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9nZXRfc2VsZWN0ZWRfaW5kZXgoV2ViS2l0RE9NSFRN
TFNlbGVjdEVsZW1lbnQqIHNlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1l
bnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X3NldF9zZWxl
Y3RlZF9pbmRleChXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudCogc2VsZiwgZ2xvbmcgdmFsdWUp
OwogCiAvKioKQEAgLTI0Nyw4ICsyODksMTAgQEAgd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVt
ZW50X3NldF9zZWxlY3RlZF9pbmRleChXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudCogc2UKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEg
I2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioK
IHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9nZXRfdmFsdWUoV2ViS2l0RE9NSFRNTFNl
bGVjdEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTI1Niw4ICszMDAsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX3NlbGVjdF9lbGVtZW50X2dldF92YWx1ZShXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVu
dCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQKICAqIEB2
YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X3NldF92YWx1ZShXZWJLaXRE
T01IVE1MU2VsZWN0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBA
IC0yNjUsOCArMzExLDEwIEBAIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9zZXRfdmFs
dWUoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Vi
a2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dldF93aWxsX3ZhbGlkYXRlKFdlYktpdERPTUhU
TUxTZWxlY3RFbGVtZW50KiBzZWxmKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MU3R5bGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU3R5bGVFbGVtZW50LmNwcAppbmRleCBhZDFk
ZGI5MGM0Zi4uZTc0Nzg4YjExZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU3R5bGVFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudC5jcHAKQEAgLTM3LDYgKzM3LDggQEAKICNpbmNs
dWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVH
SU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERP
TUhUTUxTdHlsZUVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MU3R5bGVFbGVtZW50KiBvYmopCkBA
IC0yNjAsMyArMjYyLDQgQEAgV2ViS2l0RE9NU3R5bGVTaGVldCogd2Via2l0X2RvbV9odG1sX3N0
eWxlX2VsZW1lbnRfZ2V0X3NoZWV0KFdlYktpdERPTUhUTUxTdHlsZUUKICAgICBSZWZQdHI8V2Vi
Q29yZTo6U3R5bGVTaGVldD4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPnNoZWV0
KCkpOwogICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKIH0KK0df
R05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU3R5bGVF
bGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudC5oCmluZGV4IDk5OGVjMmNhOTc4Li4yYTc2
NDVmODhkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxTdHlsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TFN0eWxlRWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTFN0
eWxlRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9j
bGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3
ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01
Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9nZXRfdHlwZSh2b2lk
KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MU3R5bGVFbGVtZW50CiAgKgogICogUmV0dXJu
czogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9zdHlsZV9lbGVtZW50X2dldF9kaXNhYmxlZChX
ZWJLaXRET01IVE1MU3R5bGVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9nZXRfZGlzYWJsZWQoV2ViS2l0RE9NSFRN
TFN0eWxlRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFN0eWxlRWxl
bWVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9zZXRf
ZGlzYWJsZWQoV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUp
OwogCiAvKioKQEAgLTcxLDggKzc1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9zdHlsZV9lbGVtZW50
X3NldF9kaXNhYmxlZChXZWJLaXRET01IVE1MU3R5bGVFbGVtZW50KiBzZWxmLCBnYm9vCiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dj
aGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdl
YmtpdF9kb21faHRtbF9zdHlsZV9lbGVtZW50X2dldF9tZWRpYShXZWJLaXRET01IVE1MU3R5bGVF
bGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
c3R5bGVfZWxlbWVudF9nZXRfbWVkaWEoV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudCogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudAogICogQHZhbHVlOiBBICNn
Y2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3
ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9zZXRfbWVkaWEoV2ViS2l0RE9NSFRNTFN0eWxl
RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC04OSw4ICs5Nywx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9zZXRfbWVkaWEoV2ViS2l0RE9NSFRN
TFN0eWxlRWxlbWVudCogc2VsZiwgY29uc3QgZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxT
dHlsZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxl
bWVudF9nZXRfdHlwZV9hdHRyKFdlYktpdERPTUhUTUxTdHlsZUVsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTk4LDggKzEwOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9nZXRf
dHlwZV9hdHRyKFdlYktpdERPTUhUTUxTdHlsZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxTdHlsZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X3N0eWxlX2VsZW1lbnRfc2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MU3R5bGVFbGVtZW50KiBz
ZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX3N0eWxlX2VsZW1lbnRfc2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MU3R5
bGVFbGVtZW50KiBzZWxmLCBjb24KICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MU3R5bGVFbGVt
ZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01TdHlsZVNo
ZWV0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NU3R5bGVTaGVldCoKK1dFQktJVF9ERVBSRUNB
VEVEIFdlYktpdERPTVN0eWxlU2hlZXQqCiB3ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9n
ZXRfc2hlZXQoV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudCogc2VsZik7CiAKIEdfRU5EX0RFQ0xT
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxU
YWJsZUNhcHRpb25FbGVtZW50LmNwcAppbmRleCA2ZGE0YjkwNjY3NC4uOGFiOTU4YmY2ZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxU
YWJsZUNhcHRpb25FbGVtZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9H
ZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVf
REVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTFRhYmxl
Q2FwdGlvbkVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MVGFibGVDYXB0aW9uRWxlbWVudCogb2Jq
KQpAQCAtMTY4LDMgKzE3MCw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NhcHRpb25f
ZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlQ2FwdGlvbkVsCiAgICAgaXRlbS0+
c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmFs
aWduQXR0ciwgY29udmVydGVkVmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNB
VElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCmluZGV4IDRlOTJkNmU2OWI0Li5jMjk3NDYzOTg2ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxU
YWJsZUNhcHRpb25FbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01I
VE1MVGFibGVDYXB0aW9uRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENs
YXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNB
VEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2FwdGlvbl9lbGVtZW50X2dldF90eXBl
KHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9j
YXB0aW9uX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TFRhYmxlQ2FwdGlvbkVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxf
dGFibGVfY2FwdGlvbl9lbGVtZW50X2dldF9hbGlnbihXZWJLaXRET01IVE1MVGFibGVDYXB0aW9u
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1s
X3RhYmxlX2NhcHRpb25fZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlQ2FwdGlv
bkVsZW1lbnQKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudAog
ICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2FwdGlvbl9lbGVtZW50X3NldF9h
bGlnbihXZWJLaXRET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVDZWxsRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwCmluZGV4IGFiZDc2YmNjOGMw
Li42Yjc5ZmM3ZjhhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5j
bHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JF
R0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRE
T01IVE1MVGFibGVDZWxsRWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxUYWJsZUNlbGxFbGVtZW50
KiBvYmopCkBAIC02NTMsMyArNjU1LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2Vs
bF9lbGVtZW50X3NldF9zY29wZShXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCoKICAgICBp
dGVtLT5zZXRTY29wZShjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RF
UFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudC5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxUYWJsZUNlbGxFbGVtZW50LmgKaW5kZXggODFjZmYxNWYyNTAuLmRlZjc1YzY1N2QwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxl
Q2VsbEVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxUYWJs
ZUNlbGxFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50
X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUK
IHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8q
KgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9n
ZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJ
VF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dl
dF9jZWxsX2luZGV4KFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dl
dF9jZWxsX2luZGV4KFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KgogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0
X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxl
Q2VsbEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTcxLDggKzc1LDEwIEBAIHdlYmtpdF9kb21f
aHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZUNlbGxF
bGVtZW50KiBzZWxmCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9zZXRfYWxp
Z24oV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1
ZSk7CiAKIC8qKgpAQCAtODAsOCArODYsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxf
ZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X2F4aXMoV2ViS2l0RE9N
SFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTg5LDggKzk3LDEwIEBAIHdl
YmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X2F4aXMoV2ViS2l0RE9NSFRNTFRh
YmxlQ2VsbEVsZW1lbnQqIHNlbGYpCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVu
dF9zZXRfYXhpcyhXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZiwgY29uc3QgZ2No
YXIqIHZhbHVlKTsKIAogLyoqCkBAIC05OCw4ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9odG1sX3Rh
YmxlX2NlbGxfZWxlbWVudF9zZXRfYXhpcyhXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCog
c2VsZiwKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudAogICoKICAq
IFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVD
QVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X2JnX2Nv
bG9yKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMDcs
OCArMTE5LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X2JnX2Nv
bG9yKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3Rh
YmxlX2NlbGxfZWxlbWVudF9zZXRfYmdfY29sb3IoV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTE2LDggKzEzMCwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X3NldF9iZ19jb2xvcihXZWJLaXRE
T01IVE1MVGFibGVDZWxsRWxlbWVudCogcwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJs
ZUNlbGxFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Y2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2Nl
bGxfZWxlbWVudF9nZXRfY2goV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTEyNSw4ICsxNDEsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxl
bWVudF9nZXRfY2goV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFy
CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtp
dF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0X2NoKFdlYktpdERPTUhUTUxUYWJsZUNl
bGxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEzNCw4ICsx
NTIsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9zZXRfY2goV2ViS2l0
RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYsIGMKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MVGFibGVDZWxsRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90
YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X2NoX29mZihXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtMTQzLDggKzE2MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfY2VsbF9lbGVtZW50X2dldF9jaF9vZmYoV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQq
IHNlbAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50CiAgKiBAdmFs
dWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0X2NoX29mZihXZWJL
aXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAog
LyoqCkBAIC0xNTIsOCArMTc0LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1l
bnRfc2V0X2NoX29mZihXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsCiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Vi
a2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9nZXRfY29sX3NwYW4oV2ViS2l0RE9NSFRN
TFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE2MSw4ICsxODUsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9nZXRfY29sX3NwYW4oV2ViS2l0RE9NSFRN
TFRhYmxlQ2VsbEVsZW1lbnQqIHMKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxs
RWxlbWVudAogICogQHZhbHVlOiBBICNnbG9uZwogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50
X3NldF9jb2xfc3BhbihXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZiwgZ2xvbmcg
dmFsdWUpOwogCiAvKioKQEAgLTE3MCw4ICsxOTYsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxl
X2NlbGxfZWxlbWVudF9zZXRfY29sX3NwYW4oV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQq
IHMKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudAogICoKICAqIFJl
dHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVE
IGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dldF9yb3dfc3BhbihX
ZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTc5LDggKzIw
NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dldF9yb3dfc3BhbihX
ZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogcwogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxUYWJsZUNlbGxFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dsb25nCiAgKgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9j
ZWxsX2VsZW1lbnRfc2V0X3Jvd19zcGFuKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBz
ZWxmLCBnbG9uZyB2YWx1ZSk7CiAKIC8qKgpAQCAtMTg4LDggKzIxOCwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X3NldF9yb3dfc3BhbihXZWJLaXRET01IVE1MVGFibGVD
ZWxsRWxlbWVudCogcwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9n
ZXRfaGVhZGVycyhXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZik7CiAKIC8qKgpA
QCAtMTk3LDggKzIyOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dl
dF9oZWFkZXJzKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZQogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0X2hlYWRlcnMoV2ViS2l0RE9NSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjA2LDggKzI0
MCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X3NldF9oZWFkZXJzKFdl
YktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZQogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxUYWJsZUNlbGxFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3Rh
YmxlX2NlbGxfZWxlbWVudF9nZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC0yMTUsOCArMjUxLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJs
ZV9jZWxsX2VsZW1lbnRfZ2V0X2hlaWdodChXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCog
c2VsCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQKICAqIEB2YWx1
ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9zZXRfaGVpZ2h0KFdlYktp
dERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAv
KioKQEAgLTIyNCw4ICsyNjIsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVu
dF9zZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWwKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2di
b29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29s
ZWFuCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dldF9ub193cmFwKFdlYktp
dERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMzMsOCArMjczLDEw
IEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X25vX3dyYXAoV2ViS2l0
RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRh
YmxlQ2VsbEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2Nl
bGxfZWxlbWVudF9zZXRfbm9fd3JhcChXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2Vs
ZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTI0Miw4ICsyODQsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9zZXRfbm9fd3JhcChXZWJLaXRET01IVE1MVGFibGVD
ZWxsRWxlbWVudCogc2UKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRf
Z2V0X3ZfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTI1MSw4ICsyOTUsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9n
ZXRfdl9hbGlnbihXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2UKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X3NldF92X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZUNl
bGxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTI2MCw4ICsz
MDYsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9zZXRfdl9hbGlnbihX
ZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2UKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MVGFibGVDZWxsRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90
YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X3dpZHRoKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC0yNjksOCArMzE3LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJs
ZV9jZWxsX2VsZW1lbnRfZ2V0X3dpZHRoKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBz
ZWxmCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQKICAqIEB2YWx1
ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9zZXRfd2lkdGgoV2ViS2l0
RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8q
KgpAQCAtMjc4LDggKzMyOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50
X3NldF93aWR0aChXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZgogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2No
YXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Vi
a2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9nZXRfYWJicihXZWJLaXRET01IVE1MVGFi
bGVDZWxsRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjg3LDggKzMzOSwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dldF9hYmJyKFdlYktpdERPTUhUTUxUYWJsZUNl
bGxFbGVtZW50KiBzZWxmKQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVt
ZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0
X2FiYnIoV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2
YWx1ZSk7CiAKIC8qKgpAQCAtMjk2LDggKzM1MCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVf
Y2VsbF9lbGVtZW50X3NldF9hYmJyKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxm
LAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50CiAgKgogICogUmV0
dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVE
IGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9nZXRfc2NvcGUoV2Vi
S2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTMwNSw4ICszNjEs
MTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9nZXRfc2NvcGUoV2ViS2l0
RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
VGFibGVDZWxsRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2Vs
bF9lbGVtZW50X3NldF9zY29wZShXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
VGFibGVDb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50LmNwcAppbmRleCA0
NjczYmNhMWNkYS4uMDkwZjIwOTJkMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVDb2xFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudC5jcHAKQEAgLTM2LDYgKzM2LDgg
QEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitH
X0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MVGFibGVDb2xF
bGVtZW50KiBvYmopCkBAIC0zNDYsMyArMzQ4LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfY29sX2VsZW1lbnRfc2V0X3dpZHRoKFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIHMK
ICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhU
TUxOYW1lczo6d2lkdGhBdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdO
T1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudC5oCmluZGV4IDU3MzlhMjAwNzQ1Li43MmEyNDBmMTM2
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRh
YmxlQ29sRWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTFRh
YmxlQ29sRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVu
dF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBl
CiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8q
KgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NvbF9lbGVtZW50X2dl
dF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRfZ2V0
X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYy
LDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jb2xfZWxlbWVudF9nZXRfYWxpZ24o
V2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTFRhYmxlQ29sRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfY29sX2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0
X2RvbV9odG1sX3RhYmxlX2NvbF9lbGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MVGFibGVD
b2xFbGVtZW50KiBzZWxmLAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRf
Z2V0X2NoKFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgw
LDggKzg2LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jb2xfZWxlbWVudF9nZXRfY2goV2Vi
S2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTFRhYmxlQ29sRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVf
Y29sX2VsZW1lbnRfc2V0X2NoKFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtODksOCArOTcsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX3RhYmxlX2NvbF9lbGVtZW50X3NldF9jaChXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50
KiBzZWxmLCBjb24KICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50CiAg
KgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9E
RVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2NvbF9lbGVtZW50X2dldF9j
aF9vZmYoV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtOTgs
OCArMTA4LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jb2xfZWxlbWVudF9nZXRfY2hfb2Zm
KFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIHNlbGYpCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTFRhYmxlQ29sRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfY29sX2VsZW1lbnRfc2V0X2NoX29mZihXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50KiBz
ZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX3RhYmxlX2NvbF9lbGVtZW50X3NldF9jaF9vZmYoV2ViS2l0RE9NSFRNTFRh
YmxlQ29sRWxlbWVudCogc2VsZiwKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDb2xF
bGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZwor
V0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jb2xfZWxlbWVu
dF9nZXRfc3BhbihXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC0xMTYsOCArMTMwLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jb2xfZWxlbWVudF9nZXRf
c3BhbihXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dsb25nCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRt
bF90YWJsZV9jb2xfZWxlbWVudF9zZXRfc3BhbihXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50
KiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAKIC8qKgpAQCAtMTI1LDggKzE0MSwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRfc2V0X3NwYW4oV2ViS2l0RE9NSFRNTFRhYmxlQ29s
RWxlbWVudCogc2VsZiwgZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRf
Z2V0X3ZfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudCogc2VsZik7CiAKIC8qKgpA
QCAtMTM0LDggKzE1MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRfZ2V0
X3ZfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudCogc2VsZgogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9o
dG1sX3RhYmxlX2NvbF9lbGVtZW50X3NldF92X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZUNvbEVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTQzLDggKzE2Mywx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRfc2V0X3ZfYWxpZ24oV2ViS2l0
RE9NSFRNTFRhYmxlQ29sRWxlbWVudCogc2VsZgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxU
YWJsZUNvbEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVf
Y29sX2VsZW1lbnRfZ2V0X3dpZHRoKFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTE1Miw4ICsxNzQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NvbF9l
bGVtZW50X2dldF93aWR0aChXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50KiBzZWxmKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dj
aGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF90YWJsZV9jb2xfZWxlbWVudF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRNTFRh
YmxlQ29sRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVFbGVt
ZW50LmNwcAppbmRleCBkMjRlZmEyZTEyNy4uYmJiNTU0NzQ0MDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MVGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudC5jcHAKQEAgLTQw
LDYgKzQwLDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MVGFi
bGVFbGVtZW50KiBvYmopCkBAIC02NjMsMyArNjY1LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxf
dGFibGVfZWxlbWVudF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZiwg
Y28KICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6
OkhUTUxOYW1lczo6d2lkdGhBdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRf
SUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTFRhYmxlRWxlbWVudC5oCmluZGV4IDlmMmQ5ZjViMWYwLi5mYTc4YmZlMzc3OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlRWxl
bWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVu
dENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07
CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9t
X2h0bWxfdGFibGVfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01MywxNiArNTMs
MjAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFu
c2ZlciBub25lKTogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJL
aXRET01IVE1MRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxFbGVtZW50
Kgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfY3JlYXRlX3RfaGVhZChXZWJLaXRET01I
VE1MVGFibGVFbGVtZW50KiBzZWxmKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX2h0bWxfdGFibGVf
ZWxlbWVudF9kZWxldGVfdF9oZWFkOgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUVs
ZW1lbnQKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZGVsZXRlX3RfaGVhZChXZWJLaXRET01IVE1M
VGFibGVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC03MCwxNiArNzQsMjAgQEAgd2Via2l0X2Rv
bV9odG1sX3RhYmxlX2VsZW1lbnRfZGVsZXRlX3RfaGVhZChXZWJLaXRET01IVE1MVGFibGVFbGVt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVFbGVtZW50CiAgKgog
ICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01IVE1MRWxlbWVudAorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxFbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2Vi
S2l0RE9NSFRNTEVsZW1lbnQqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9jcmVhdGVf
dF9mb290KFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKICAqIHdlYmtp
dF9kb21faHRtbF90YWJsZV9lbGVtZW50X2RlbGV0ZV90X2Zvb3Q6CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTFRhYmxlRWxlbWVudAogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRf
REVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9kZWxldGVfdF9m
b290KFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTg3LDE2ICs5
NSwyMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9kZWxldGVfdF9mb290KFdlYktp
dERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxU
YWJsZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERP
TUhUTUxFbGVtZW50CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTEVsZW1lbnQqCitXRUJL
SVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1MRWxlbWVudCoKIHdlYmtpdF9kb21faHRtbF90YWJs
ZV9lbGVtZW50X2NyZWF0ZV9jYXB0aW9uKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYp
OwogCiAvKioKICAqIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2RlbGV0ZV9jYXB0aW9u
OgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQKICAqCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxl
X2VsZW1lbnRfZGVsZXRlX2NhcHRpb24oV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtMTA2LDggKzExOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVu
dF9kZWxldGVfY2FwdGlvbihXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsKICAqIEBl
cnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0
RE9NSFRNTEVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MRWxlbWVudCoKK1dF
QktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxFbGVtZW50Kgogd2Via2l0X2RvbV9odG1sX3Rh
YmxlX2VsZW1lbnRfaW5zZXJ0X3JvdyhXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmLCBn
bG9uZyBpbmRleCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTExNiw4ICsxMzAsMTAgQEAg
d2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfaW5zZXJ0X3JvdyhXZWJLaXRET01IVE1MVGFi
bGVFbGVtZW50KiBzZWxmLCBnbG9uZwogICogQGluZGV4OiBBICNnbG9uZwogICogQGVycm9yOiAj
R0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2RlbGV0ZV9yb3coV2ViS2l0RE9NSFRNTFRh
YmxlRWxlbWVudCogc2VsZiwgZ2xvbmcgaW5kZXgsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBA
IC0xMjUsOCArMTQxLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2RlbGV0ZV9y
b3coV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZiwgZ2xvbmcKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MVGFibGVFbGVtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUp
OiBBICNXZWJLaXRET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdl
YktpdERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0
RE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVu
dF9nZXRfY2FwdGlvbihXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC0xMzUsOCArMTUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2dldF9jYXB0
aW9uKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNXZWJL
aXRET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudAogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRt
bF90YWJsZV9lbGVtZW50X3NldF9jYXB0aW9uKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNl
bGYsIFdlYktpdERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50KiB2YWx1ZSwgR0Vycm9yKiogZXJy
b3IpOwogCiAvKioKQEAgLTE0NCw4ICsxNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2Vs
ZW1lbnRfc2V0X2NhcHRpb24oV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZiwgV2ViS2kK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVFbGVtZW50CiAgKgogICogUmV0dXJuczog
KHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudAorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KgorV0VCS0lUX0RF
UFJFQ0FURUQgV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqCiB3ZWJraXRfZG9tX2h0
bWxfdGFibGVfZWxlbWVudF9nZXRfdF9oZWFkKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNl
bGYpOwogCiAvKioKQEAgLTE1NCw4ICsxNzYsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2Vs
ZW1lbnRfZ2V0X3RfaGVhZChXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsKICAqIEB2
YWx1ZTogQSAjV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKICAqIEBlcnJvcjogI0dF
cnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3
ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9zZXRfdF9oZWFkKFdlYktpdERPTUhUTUxUYWJs
ZUVsZW1lbnQqIHNlbGYsIFdlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiB2YWx1ZSwg
R0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTE2Myw4ICsxODcsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX3RhYmxlX2VsZW1lbnRfc2V0X3RfaGVhZChXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBz
ZWxmLCBXZWJLaXQKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVFbGVtZW50CiAgKgog
ICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01IVE1MVGFibGVTZWN0aW9u
RWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqCiB3
ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9nZXRfdF9mb290KFdlYktpdERPTUhUTUxUYWJs
ZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE3Myw4ICsxOTksMTAgQEAgd2Via2l0X2RvbV9o
dG1sX3RhYmxlX2VsZW1lbnRfZ2V0X3RfZm9vdChXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBz
ZWxmKTsKICAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKICAq
IEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9zZXRfdF9mb290KFdlYktp
dERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYsIFdlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50KiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTE4Miw4ICsyMTAsMTAgQEAg
d2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfc2V0X3RfZm9vdChXZWJLaXRET01IVE1MVGFi
bGVFbGVtZW50KiBzZWxmLCBXZWJLaXQKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVF
bGVtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1M
Q29sbGVjdGlvbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgorV0VC
S0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCiB3ZWJraXRfZG9tX2h0bWxf
dGFibGVfZWxlbWVudF9nZXRfcm93cyhXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsK
IAogLyoqCkBAIC0xOTEsOCArMjIxLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50
X2dldF9yb3dzKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVs
bCk6IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9N
SFRNTENvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1MQ29sbGVjdGlv
bioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2dldF90X2JvZGllcyhXZWJLaXRET01I
VE1MVGFibGVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMDAsOCArMjMyLDEwIEBAIHdlYmtp
dF9kb21faHRtbF90YWJsZV9lbGVtZW50X2dldF90X2JvZGllcyhXZWJLaXRET01IVE1MVGFibGVF
bGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVFbGVtZW50CiAg
KgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9E
RVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0X2FsaWdu
KFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTIwOSw4ICsyNDMs
MTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhU
TUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUVs
ZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfc2V0X2Fs
aWduKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7
CiAKIC8qKgpAQCAtMjE4LDggKzI1NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVu
dF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZiwgY29uc3QgZwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
Y2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3
ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9nZXRfYmdfY29sb3IoV2ViS2l0RE9NSFRNTFRh
YmxlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjI3LDggKzI2NSwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfdGFibGVfZWxlbWVudF9nZXRfYmdfY29sb3IoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVu
dCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudAogICogQHZh
bHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9zZXRfYmdfY29sb3IoV2ViS2l0
RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBA
IC0yMzYsOCArMjc2LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X3NldF9iZ19j
b2xvcihXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmLCBjb25zCiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21f
aHRtbF90YWJsZV9lbGVtZW50X2dldF9ib3JkZXIoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMjQ1LDggKzI4NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVf
ZWxlbWVudF9nZXRfYm9yZGVyKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfc2V0X2JvcmRlcihXZWJLaXRET01IVE1MVGFibGVFbGVt
ZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTI1NCw4ICsyOTgsMTAg
QEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfc2V0X2JvcmRlcihXZWJLaXRET01IVE1M
VGFibGVFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJs
ZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFy
KgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVu
dF9nZXRfY2VsbF9wYWRkaW5nKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTI2Myw4ICszMDksMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0
X2NlbGxfcGFkZGluZyhXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MVGFibGVFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF90YWJsZV9lbGVtZW50X3NldF9jZWxsX3BhZGRpbmcoV2ViS2l0RE9NSFRNTFRhYmxlRWxl
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0yNzIsOCArMzIwLDEw
IEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X3NldF9jZWxsX3BhZGRpbmcoV2ViS2l0
RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZiwKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFi
bGVFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hh
cioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1l
bnRfZ2V0X2NlbGxfc3BhY2luZyhXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0yODEsOCArMzMxLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2dl
dF9jZWxsX3NwYWNpbmcoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfdGFibGVfZWxlbWVudF9zZXRfY2VsbF9zcGFjaW5nKFdlYktpdERPTUhUTUxUYWJsZUVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjkwLDggKzM0Miwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9zZXRfY2VsbF9zcGFjaW5nKFdlYktp
dERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYsCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRh
YmxlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2No
YXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVt
ZW50X2dldF9ydWxlcyhXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC0yOTksOCArMzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2dldF9ydWxl
cyhXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MVGFibGVFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9l
bGVtZW50X3NldF9ydWxlcyhXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmLCBjb25zdCBn
Y2hhciogdmFsdWUpOwogCiAvKioKQEAgLTMwOCw4ICszNjQsMTAgQEAgd2Via2l0X2RvbV9odG1s
X3RhYmxlX2VsZW1lbnRfc2V0X3J1bGVzKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYs
IGNvbnN0IGcKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVFbGVtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNB
VEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0X3N1bW1hcnkoV2Vi
S2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMzE3LDggKzM3NSwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9nZXRfc3VtbWFyeShXZWJLaXRET01IVE1M
VGFibGVFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVFbGVt
ZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X3NldF9zdW1t
YXJ5KFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7
CiAKIC8qKgpAQCAtMzI2LDggKzM4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVu
dF9zZXRfc3VtbWFyeShXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmLCBjb25zdAogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
Y2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3
ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9nZXRfd2lkdGgoV2ViS2l0RE9NSFRNTFRhYmxl
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMzM1LDggKzM5NywxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfdGFibGVfZWxlbWVudF9nZXRfd2lkdGgoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudAogICogQHZhbHVlOiBB
ICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRNTFRh
YmxlRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVSb3dF
bGVtZW50LmNwcAppbmRleCBjNzdjMmE2ZWRjMC4uYzg3NGY1ODNkMTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MVGFibGVSb3dFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudC5j
cHAKQEAgLTM4LDYgKzM4LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIGtpdChXZWJD
b3JlOjpIVE1MVGFibGVSb3dFbGVtZW50KiBvYmopCkBAIC00MTEsMyArNDEzLDQgQEAgdm9pZCB3
ZWJraXRfZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRfc2V0X3ZfYWxpZ24oV2ViS2l0RE9NSFRN
TFRhYmxlUm93RWxlbWVudCoKICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6dmFsaWduQXR0ciwgY29udmVydGVkVmFsdWUpOwog
fQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TFRhYmxlUm93RWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQuaAppbmRleCAwMzc5
MWY2YzRkYS4uOTJlYzFlNWI1MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1
Y3QgX1dlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRN
TEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJL
SVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X2dl
dF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTU1LDggKzU1LDEwIEBAIHdlYmtpdF9kb21faHRtbF90
YWJsZV9yb3dfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoK
ICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdl
YktpdERPTUhUTUxFbGVtZW50Kgogd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X2lu
c2VydF9jZWxsKFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNlbGYsIGdsb25nIGluZGV4
LCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtNjUsOCArNjcsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX3RhYmxlX3Jvd19lbGVtZW50X2luc2VydF9jZWxsKFdlYktpdERPTUhUTUxUYWJsZVJvd0Vs
ZW1lbnQqIHNlbGYKICAqIEBpbmRleDogQSAjZ2xvbmcKICAqIEBlcnJvcjogI0dFcnJvcgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfdGFibGVfcm93X2VsZW1lbnRfZGVsZXRlX2NlbGwoV2ViS2l0RE9NSFRNTFRhYmxlUm93
RWxlbWVudCogc2VsZiwgZ2xvbmcgaW5kZXgsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC03
NCw4ICs3OCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRfZGVsZXRlX2Nl
bGwoV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudCogc2VsZgogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxUYWJsZVJvd0VsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1s
X3RhYmxlX3Jvd19lbGVtZW50X2dldF9yb3dfaW5kZXgoV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxl
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtODMsOCArODksMTAgQEAgd2Via2l0X2RvbV9odG1sX3Rh
YmxlX3Jvd19lbGVtZW50X2dldF9yb3dfaW5kZXgoV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVu
dCogc2UKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FU
RUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9nZXRfc2VjdGlvbl9y
b3dfaW5kZXgoV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
OTIsOCArMTAwLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9nZXRfc2Vj
dGlvbl9yb3dfaW5kZXgoV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlCiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxs
KTogQSAjV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01I
VE1MQ29sbGVjdGlvbioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxDb2xsZWN0aW9u
Kgogd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X2dldF9jZWxscyhXZWJLaXRET01I
VE1MVGFibGVSb3dFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMDEsOCArMTExLDEwIEBAIHdl
YmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9nZXRfY2VsbHMoV2ViS2l0RE9NSFRNTFRh
YmxlUm93RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlUm93
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIq
CitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxl
bWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtMTEwLDggKzEyMiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRf
Z2V0X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MVGFibGVSb3dF
bGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTExOSw4ICsxMzMs
MTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X3NldF9hbGlnbihXZWJLaXRE
T01IVE1MVGFibGVSb3dFbGVtZW50KiBzZWxmLAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxU
YWJsZVJvd0VsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVf
cm93X2VsZW1lbnRfZ2V0X2JnX2NvbG9yKFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNl
bGYpOwogCiAvKioKQEAgLTEyOCw4ICsxNDQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jv
d19lbGVtZW50X2dldF9iZ19jb2xvcihXZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50KiBzZWwK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50CiAgKiBAdmFsdWU6IEEg
I2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9zZXRfYmdfY29sb3IoV2ViS2l0RE9N
SFRNTFRhYmxlUm93RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBA
IC0xMzcsOCArMTU1LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9zZXRf
YmdfY29sb3IoV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudCogc2VsCiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9k
b21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9nZXRfY2goV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxl
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTQ2LDggKzE2NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
dGFibGVfcm93X2VsZW1lbnRfZ2V0X2NoKFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNl
bGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQKICAqIEB2YWx1
ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X3NldF9jaChXZWJLaXRET01I
VE1MVGFibGVSb3dFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAg
LTE1NSw4ICsxNzcsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X3NldF9j
aChXZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50KiBzZWxmLCBjb24KICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2Rv
bV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X2dldF9jaF9vZmYoV2ViS2l0RE9NSFRNTFRhYmxlUm93
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTY0LDggKzE4OCwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfdGFibGVfcm93X2VsZW1lbnRfZ2V0X2NoX29mZihXZWJLaXRET01IVE1MVGFibGVSb3dFbGVt
ZW50KiBzZWxmKQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQKICAq
IEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X3NldF9jaF9vZmYo
V2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsK
IAogLyoqCkBAIC0xNzMsOCArMTk5LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxl
bWVudF9zZXRfY2hfb2ZmKFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNlbGYsCiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudAogICoKICAqIFJldHVybnM6IEEg
I2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioK
IHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9nZXRfdl9hbGlnbihXZWJLaXRET01I
VE1MVGFibGVSb3dFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xODIsOCArMjEwLDEwIEBAIHdl
YmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9nZXRfdl9hbGlnbihXZWJLaXRET01IVE1M
VGFibGVSb3dFbGVtZW50KiBzZWxmCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlUm93
RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRf
c2V0X3ZfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudCogc2VsZiwgY29uc3QgZ2No
YXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVTZWN0
aW9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwCmluZGV4IDUw
OTM2MzhhMzgzLi5mOTQzODE0OTA0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwCkBAIC0zOCw2
ICszOCw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudCoga2l0KFdlYkNvcmU6OkhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50KiBvYmopCkBAIC0zMjgsMyArMzMwLDQgQEAgV2ViS2l0RE9N
SFRNTENvbGxlY3Rpb24qIHdlYmtpdF9kb21faHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfZ2V0
X3Jvd3MoV2ViS2l0RE8KICAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQo
KSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
LmgKaW5kZXggYjBmN2IzYjIxM2MuLjY5MmUwODQyMTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaApA
QCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsK
IAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21f
aHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTUs
OCArNTUsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVudF9nZXRfdHlw
ZSh2b2lkKTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBu
b25lKTogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01I
VE1MRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxFbGVtZW50Kgogd2Vi
a2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVudF9pbnNlcnRfcm93KFdlYktpdERPTUhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50KiBzZWxmLCBnbG9uZyBpbmRleCwgR0Vycm9yKiogZXJyb3Ip
OwogCiAvKioKQEAgLTY1LDggKzY3LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9zZWN0aW9u
X2VsZW1lbnRfaW5zZXJ0X3JvdyhXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVuCiAgKiBA
aW5kZXg6IEEgI2dsb25nCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rp
b25fZWxlbWVudF9kZWxldGVfcm93KFdlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBz
ZWxmLCBnbG9uZyBpbmRleCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTc0LDggKzc4LDEw
IEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfZGVsZXRlX3JvdyhXZWJL
aXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVuCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfc2VjdGlvbl9lbGVtZW50X2dldF9hbGlnbihXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxl
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtODMsOCArODksMTAgQEAgd2Via2l0X2RvbV9odG1sX3Rh
YmxlX3NlY3Rpb25fZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogICog
QHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfc2VjdGlvbl9lbGVtZW50X3NldF9hbGln
bihXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlKTsKIAogLyoqCkBAIC05Miw4ICsxMDAsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX3Nl
Y3Rpb25fZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogICoKICAqIFJl
dHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRF
RCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfZ2V0X2NoKFdl
YktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMDEsOCAr
MTExLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfZ2V0X2NoKFdl
YktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBzCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3Rh
YmxlX3NlY3Rpb25fZWxlbWVudF9zZXRfY2goV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTEwLDggKzEyMiwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfc2VjdGlvbl9lbGVtZW50X3NldF9jaChXZWJLaXRET01I
VE1MVGFibGVTZWN0aW9uRWxlbWVudCogcwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3RhYmxl
X3NlY3Rpb25fZWxlbWVudF9nZXRfY2hfb2ZmKFdlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMTksOCArMTMzLDEwIEBAIHdlYmtpdF9kb21faHRtbF90
YWJsZV9zZWN0aW9uX2VsZW1lbnRfZ2V0X2NoX29mZihXZWJLaXRET01IVE1MVGFibGVTZWN0aW9u
RWxlbWVuCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKICAq
IEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVudF9zZXRfY2hf
b2ZmKFdlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciog
dmFsdWUpOwogCiAvKioKQEAgLTEyOCw4ICsxNDQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxl
X3NlY3Rpb25fZWxlbWVudF9zZXRfY2hfb2ZmKFdlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW4KICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogICoKICAq
IFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVD
QVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfZ2V0X3Zf
YWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTEzNyw4ICsxNTUsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVudF9n
ZXRfdl9hbGlnbihXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWUKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfdGFibGVfc2VjdGlvbl9lbGVtZW50X3NldF92X2FsaWduKFdlYktpdERPTUhUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE0
Niw4ICsxNjYsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVudF9zZXRf
dl9hbGlnbihXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWUKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBm
dWxsKTogQSAjV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRE
T01IVE1MQ29sbGVjdGlvbioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxDb2xsZWN0
aW9uKgogd2Via2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVudF9nZXRfcm93cyhXZWJL
aXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudCogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxl
bWVudC5jcHAKaW5kZXggMTUyODNkYWFiZGEuLjgwMGQyZDNmOGRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTFRleHRBcmVhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQuY3Bw
CkBAIC0zOCw2ICszOCw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBraXQoV2ViQ29y
ZTo6SFRNTFRleHRBcmVhRWxlbWVudCogb2JqKQpAQCAtNTcyLDMgKzU3NCw0IEBAIGdib29sZWFu
IHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9pc19lZGl0ZWQoV2ViS2l0RE9NSFRN
TFRleHRBcmVhRWxlbWVuCiAKICAgICByZXR1cm4gV2ViS2l0Ojpjb3JlKGFyZWEpLT5sYXN0Q2hh
bmdlV2FzVXNlckVkaXQoKTsKIH0KK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxl
bWVudC5oCmluZGV4IGI4ODdlNTRiOWJiLi4wZTlkYzE1Y2I2NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxUZXh0QXJlYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudC5oCkBAIC00
NSwxNSArNDUsMTcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50Q2xhc3Mg
ewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VC
S0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF90
ZXh0X2FyZWFfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX2h0
bWxfdGV4dF9hcmVhX2VsZW1lbnRfc2VsZWN0OgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxU
ZXh0QXJlYUVsZW1lbnQKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X3NlbGVjdChXZWJLaXRE
T01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Myw4ICs2NSwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfc2VsZWN0KFdlYktpdERPTUhUTUxUZXh0
QXJlYUVsZW1lbnQqIHNlbGYpOwogICogQGVuZDogQSAjZ2xvbmcKICAqIEBkaXJlY3Rpb246IEEg
I2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9zZXRfc2VsZWN0aW9uX3JhbmdlKFdl
YktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYsIGdsb25nIHN0YXJ0LCBnbG9uZyBlbmQs
IGNvbnN0IGdjaGFyKiBkaXJlY3Rpb24pOwogCiAvKioKQEAgLTcyLDggKzc2LDEwIEBAIHdlYmtp
dF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9zZXRfc2VsZWN0aW9uX3JhbmdlKFdlYktpdERP
TUhUTUxUZXh0QXJlYUVsZW1lCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxl
bWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xl
YW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVh
X2VsZW1lbnRfZ2V0X2F1dG9mb2N1cyhXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxm
KTsKIAogLyoqCkBAIC04MSw4ICs4NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2Vs
ZW1lbnRfZ2V0X2F1dG9mb2N1cyhXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZQogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jv
b2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X3NldF9hdXRvZm9jdXMoV2ViS2l0RE9N
SFRNTFRleHRBcmVhRWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTkw
LDggKzk4LDEwIEBAIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9zZXRfYXV0b2Zv
Y3VzKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTFRleHRBcmVhRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRf
ZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfZ2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxUZXh0
QXJlYUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTk5LDggKzEwOSwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfZ2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxUZXh0QXJl
YUVsZW1lbnQqIHNlbAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X3NldF9k
aXNhYmxlZChXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1
ZSk7CiAKIC8qKgpAQCAtMTA4LDggKzEyMCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVh
X2VsZW1lbnRfc2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbAog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1cm5z
OiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUhUTUxGb3JtRWxlbWVudAorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktp
dERPTUhUTUxGb3JtRWxlbWVudCoKIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9n
ZXRfZm9ybShXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0x
MTcsOCArMTMxLDEwIEBAIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfZm9y
bShXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9o
dG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTEyNiw4ICsxNDIsMTAgQEAgd2Via2l0X2RvbV9odG1sX3Rl
eHRfYXJlYV9lbGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNl
bGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKICAqIEB2YWx1
ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X3NldF9uYW1lKFdlYktpdERP
TUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpA
QCAtMTM1LDggKzE1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfc2V0
X25hbWUoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogc2VsZiwgYwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVh
bgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgog
d2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF9yZWFkX29ubHkoV2ViS2l0RE9N
SFRNTFRleHRBcmVhRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTQ0LDggKzE2NCwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfZ2V0X3JlYWRfb25seShXZWJLaXRET01I
VE1MVGV4dEFyZWFFbGVtZW50KiBzZQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUZXh0QXJl
YUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVt
ZW50X3NldF9yZWFkX29ubHkoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogc2VsZiwgZ2Jv
b2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTE1Myw4ICsxNzUsMTAgQEAgd2Via2l0X2RvbV9odG1s
X3RleHRfYXJlYV9lbGVtZW50X3NldF9yZWFkX29ubHkoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxl
bWVudCogc2UKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJF
Q0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfcm93cyhX
ZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNjIsOCArMTg2
LDEwIEBAIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfcm93cyhXZWJLaXRE
T01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
VGV4dEFyZWFFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dsb25nCiAgKgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFf
ZWxlbWVudF9zZXRfcm93cyhXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmLCBnbG9u
ZyB2YWx1ZSk7CiAKIC8qKgpAQCAtMTcxLDggKzE5NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGV4
dF9hcmVhX2VsZW1lbnRfc2V0X3Jvd3MoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogc2Vs
ZiwgZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRF
RCBnbG9uZwogd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF9jb2xzKFdlYktp
dERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE4MCw4ICsyMDgsMTAg
QEAgd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF9jb2xzKFdlYktpdERPTUhU
TUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUZXh0
QXJlYUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVt
ZW50X3NldF9jb2xzKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYsIGdsb25nIHZh
bHVlKTsKIAogLyoqCkBAIC0xODksOCArMjE5LDEwIEBAIHdlYmtpdF9kb21faHRtbF90ZXh0X2Fy
ZWFfZWxlbWVudF9zZXRfY29scyhXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmLCBn
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudAogICoKICAqIFJldHVy
bnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBn
Y2hhcioKIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfYXJlYV90eXBlKFdl
YktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE5OCw4ICsyMzAs
MTAgQEAgd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF9hcmVhX3R5cGUoV2Vi
S2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogc2UKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
VGV4dEFyZWFFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3RleHRf
YXJlYV9lbGVtZW50X2dldF9kZWZhdWx0X3ZhbHVlKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTIwNyw4ICsyNDEsMTAgQEAgd2Via2l0X2RvbV9odG1sX3Rl
eHRfYXJlYV9lbGVtZW50X2dldF9kZWZhdWx0X3ZhbHVlKFdlYktpdERPTUhUTUxUZXh0QXJlYUVs
ZW1lbnQKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKiBAdmFs
dWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9zZXRfZGVmYXVsdF92YWx1
ZShXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
OwogCiAvKioKQEAgLTIxNiw4ICsyNTIsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9l
bGVtZW50X3NldF9kZWZhdWx0X3ZhbHVlKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKgogICogUmV0dXJuczog
QSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFy
Kgogd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF92YWx1ZShXZWJLaXRET01I
VE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMjUsOCArMjYzLDEwIEBAIHdl
YmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfdmFsdWUoV2ViS2l0RE9NSFRNTFRl
eHRBcmVhRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRleHRBcmVh
RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRf
c2V0X3ZhbHVlKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFy
KiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjM0LDggKzI3NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGV4
dF9hcmVhX2VsZW1lbnRfc2V0X3ZhbHVlKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNl
bGYsCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudAogICoKICAqIFJl
dHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBS
RUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfZ2V0X3dp
bGxfdmFsaWRhdGUoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogc2VsZik7CiAKIC8qKgpA
QCAtMjQzLDggKzI4NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfZ2V0
X3dpbGxfdmFsaWRhdGUoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudAogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZwor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2Rv
bV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF9zZWxlY3Rpb25fc3RhcnQoV2ViS2l0RE9NSFRN
TFRleHRBcmVhRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjUyLDggKzI5NiwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfZ2V0X3NlbGVjdGlvbl9zdGFydChXZWJLaXRE
T01IVE1MVGV4dEFyZWFFbGVtZQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUZXh0QXJlYUVs
ZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X3Nl
dF9zZWxlY3Rpb25fc3RhcnQoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogc2VsZiwgZ2xv
bmcgdmFsdWUpOwogCiAvKioKQEAgLTI2MSw4ICszMDcsMTAgQEAgd2Via2l0X2RvbV9odG1sX3Rl
eHRfYXJlYV9lbGVtZW50X3NldF9zZWxlY3Rpb25fc3RhcnQoV2ViS2l0RE9NSFRNTFRleHRBcmVh
RWxlbWUKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FU
RUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfc2VsZWN0aW9u
X2VuZChXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNzAs
OCArMzE4LDEwIEBAIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfc2VsZWN0
aW9uX2VuZChXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTFRleHRBcmVhRWxlbWVudAogICogQHZhbHVlOiBBICNnbG9uZwogICoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGV4
dF9hcmVhX2VsZW1lbnRfc2V0X3NlbGVjdGlvbl9lbmQoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxl
bWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioKQEAgLTI3OSw4ICszMjksMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X3NldF9zZWxlY3Rpb25fZW5kKFdlYktpdERP
TUhUTUxUZXh0QXJlYUVsZW1lbnQKICAqIEBpbnB1dDogQSAjV2ViS2l0RE9NSFRNTFRleHRBcmVh
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2Jv
b2xlYW4gd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2lzX2VkaXRlZChXZWJLaXRE
T01IVE1MVGV4dEFyZWFFbGVtZW50KiBpbnB1dCk7CitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVh
biB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfaXNfZWRpdGVkKFdlYktpdERPTUhU
TUxUZXh0QXJlYUVsZW1lbnQqIGlucHV0KTsKIAogR19FTkRfREVDTFMKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxUaXRsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUaXRsZUVsZW1lbnQuY3BwCmluZGV4
IGM4MWY1MjNjYmQ2Li45MWUyNzdiMjI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUaXRsZUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MVGl0bGVFbGVtZW50LmNwcApAQCAtMzUsNiArMzUsOCBAQAog
I2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05V
Q19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2Vi
S2l0RE9NSFRNTFRpdGxlRWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxUaXRsZUVsZW1lbnQqIG9i
aikKQEAgLTE2NywzICsxNjksNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF90aXRsZV9lbGVtZW50
X3NldF90ZXh0KFdlYktpdERPTUhUTUxUaXRsZUVsZW1lbnQqIHNlbGYsIGNvbgogICAgIGl0ZW0t
PnNldFRleHQoY29udmVydGVkVmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNB
VElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRpdGxlRWxlbWVudC5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUaXRs
ZUVsZW1lbnQuaAppbmRleCA0ZTAwYThkNTM2Zi4uODU4MWNjMTY4NDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MVGl0bGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUaXRsZUVsZW1lbnQuaApAQCAtNDUs
NyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxUaXRsZUVsZW1lbnRDbGFzcyB7CiAgICAg
V2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJ
IEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX3RpdGxlX2Vs
ZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX3RpdGxlX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTFRpdGxlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90
aXRsZV9lbGVtZW50X2dldF90ZXh0KFdlYktpdERPTUhUTUxUaXRsZUVsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF90aXRsZV9lbGVtZW50X2dl
dF90ZXh0KFdlYktpdERPTUhUTUxUaXRsZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxUaXRsZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3Rp
dGxlX2VsZW1lbnRfc2V0X3RleHQoV2ViS2l0RE9NSFRNTFRpdGxlRWxlbWVudCogc2VsZiwgY29u
c3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVUxp
c3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVUxpc3RFbGVtZW50LmNwcAppbmRleCA1ZTE5ODgyZmM4
Yy4uNjg4M2U1MWQwYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVUxpc3RFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTFVMaXN0RWxlbWVudC5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3
dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdO
T1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxV
TGlzdEVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MVUxpc3RFbGVtZW50KiBvYmopCkBAIC0yMDIs
MyArMjA0LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfdV9saXN0X2VsZW1lbnRfc2V0X3R5cGVf
YXR0cihXZWJLaXRET01IVE1MVUxpc3RFbGVtZW50KiBzZWwKICAgICBpdGVtLT5zZXRBdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6dHlwZUF0dHIsIGNv
bnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxVTGlzdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVUxpc3RFbGVtZW50LmgK
aW5kZXggMzg5Yzc5NjVmNjMuLjhjODRhMmVhYzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFVMaXN0
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVUxpc3RFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAg
c3RydWN0IF9XZWJLaXRET01IVE1MVUxpc3RFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhU
TUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VC
S0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF91X2xpc3RfZWxlbWVudF9nZXRf
dHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdV9s
aXN0X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFVM
aXN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfdV9s
aXN0X2VsZW1lbnRfZ2V0X2NvbXBhY3QoV2ViS2l0RE9NSFRNTFVMaXN0RWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3VfbGlzdF9lbGVtZW50
X2dldF9jb21wYWN0KFdlYktpdERPTUhUTUxVTGlzdEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxVTGlzdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX3VfbGlzdF9lbGVtZW50X3NldF9jb21wYWN0KFdlYktpdERPTUhUTUxVTGlzdEVsZW1l
bnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfdV9saXN0X2VsZW1lbnRfc2V0X2NvbXBhY3QoV2ViS2l0RE9NSFRNTFVMaXN0
RWxlbWVudCogc2VsZiwgZ2JvbwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxVTGlzdEVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdV9saXN0X2VsZW1lbnRfZ2V0
X3R5cGVfYXR0cihXZWJLaXRET01IVE1MVUxpc3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04
MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdV9saXN0X2VsZW1lbnRfZ2V0X3R5cGVfYXR0
cihXZWJLaXRET01IVE1MVUxpc3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MVUxpc3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF91X2xpc3Rf
ZWxlbWVudF9zZXRfdHlwZV9hdHRyKFdlYktpdERPTUhUTUxVTGlzdEVsZW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NS2V5Ym9h
cmRFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NS2V5Ym9hcmRFdmVudC5jcHAKaW5kZXggOTYyNWRkNzdiZGMuLjQx
ZmNjOTc4MzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NS2V5Ym9hcmRFdmVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUtl
eWJvYXJkRXZlbnQuY3BwCkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNB
VElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01LZXlib2FyZEV2ZW50KiBr
aXQoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCogb2JqKQpAQCAtMjY4LDMgKzI3MCw0IEBAIGdib29s
ZWFuIHdlYmtpdF9kb21fa2V5Ym9hcmRfZXZlbnRfZ2V0X2FsdF9ncmFwaF9rZXkoV2ViS2l0RE9N
S2V5Ym9hcmRFdmVudCogc2VsCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorR19HTlVDX0VORF9J
R05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUtleWJvYXJkRXZlbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01LZXlib2FyZEV2ZW50LmgKaW5kZXggZmM3ZDFkZDIzMGMuLjExNGY1NGRjZjBhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NS2V5Ym9hcmRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01LZXlib2FyZEV2ZW50LmgKQEAgLTM5
LDIxICszOSwyOSBAQCBHX0JFR0lOX0RFQ0xTCiAKIC8qKgogICogV0VCS0lUX0RPTV9LRVlCT0FS
RF9FVkVOVF9LRVlfTE9DQVRJT05fU1RBTkRBUkQ6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9L
RVlCT0FSRF9FVkVOVF9LRVlfTE9DQVRJT05fU1RBTkRBUkQgMHgwMAogCiAvKioKICAqIFdFQktJ
VF9ET01fS0VZQk9BUkRfRVZFTlRfS0VZX0xPQ0FUSU9OX0xFRlQ6CisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VC
S0lUX0RPTV9LRVlCT0FSRF9FVkVOVF9LRVlfTE9DQVRJT05fTEVGVCAweDAxCiAKIC8qKgogICog
V0VCS0lUX0RPTV9LRVlCT0FSRF9FVkVOVF9LRVlfTE9DQVRJT05fUklHSFQ6CisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZp
bmUgV0VCS0lUX0RPTV9LRVlCT0FSRF9FVkVOVF9LRVlfTE9DQVRJT05fUklHSFQgMHgwMgogCiAv
KioKICAqIFdFQktJVF9ET01fS0VZQk9BUkRfRVZFTlRfS0VZX0xPQ0FUSU9OX05VTVBBRDoKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAq
LwogI2RlZmluZSBXRUJLSVRfRE9NX0tFWUJPQVJEX0VWRU5UX0tFWV9MT0NBVElPTl9OVU1QQUQg
MHgwMwogCkBAIC02NSw3ICs3Myw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NS2V5Ym9hcmRFdmVudENs
YXNzIHsKICAgICBXZWJLaXRET01VSUV2ZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VC
S0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fa2V5Ym9h
cmRfZXZlbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNzQsOCArODIsMTAgQEAgd2Via2l0
X2RvbV9rZXlib2FyZF9ldmVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBrZXlJZGVudGlmaWVyQXJn
OiBBICNnY2hhcgogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2tleWJvYXJk
X2V2ZW50X2dldF9tb2RpZmllcl9zdGF0ZShXZWJLaXRET01LZXlib2FyZEV2ZW50KiBzZWxmLCBj
b25zdCBnY2hhcioga2V5SWRlbnRpZmllckFyZyk7CiAKIC8qKgpAQCAtOTMsOCArMTAzLDEwIEBA
IHdlYmtpdF9kb21fa2V5Ym9hcmRfZXZlbnRfZ2V0X21vZGlmaWVyX3N0YXRlKFdlYktpdERPTUtl
eWJvYXJkRXZlbnQqIHNlbGYsIGNvbnN0CiAgKiBAbWV0YUtleTogQSAjZ2Jvb2xlYW4KICAqIEBh
bHRHcmFwaEtleTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9rZXlib2FyZF9ldmVudF9pbml0X2tleWJvYXJk
X2V2ZW50KFdlYktpdERPTUtleWJvYXJkRXZlbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB0eXBlLCBn
Ym9vbGVhbiBjYW5CdWJibGUsIGdib29sZWFuIGNhbmNlbGFibGUsIFdlYktpdERPTURPTVdpbmRv
dyogdmlldywgY29uc3QgZ2NoYXIqIGtleUlkZW50aWZpZXIsIGd1bG9uZyBsb2NhdGlvbiwgZ2Jv
b2xlYW4gY3RybEtleSwgZ2Jvb2xlYW4gYWx0S2V5LCBnYm9vbGVhbiBzaGlmdEtleSwgZ2Jvb2xl
YW4gbWV0YUtleSwgZ2Jvb2xlYW4gYWx0R3JhcGhLZXkpOwogCiAvKioKQEAgLTEwMiw4ICsxMTQs
MTAgQEAgd2Via2l0X2RvbV9rZXlib2FyZF9ldmVudF9pbml0X2tleWJvYXJkX2V2ZW50KFdlYktp
dERPTUtleWJvYXJkRXZlbnQqIHNlbGYsIGNvbnMKICAqIEBzZWxmOiBBICNXZWJLaXRET01LZXli
b2FyZEV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hh
cioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9rZXlib2FyZF9ldmVudF9n
ZXRfa2V5X2lkZW50aWZpZXIoV2ViS2l0RE9NS2V5Ym9hcmRFdmVudCogc2VsZik7CiAKIC8qKgpA
QCAtMTExLDggKzEyNSwxMCBAQCB3ZWJraXRfZG9tX2tleWJvYXJkX2V2ZW50X2dldF9rZXlfaWRl
bnRpZmllcihXZWJLaXRET01LZXlib2FyZEV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01LZXlib2FyZEV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ3Vsb25nCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQUkVDQVRFRCBndWxvbmcKIHdlYmtpdF9kb21fa2V5Ym9h
cmRfZXZlbnRfZ2V0X2tleV9sb2NhdGlvbihXZWJLaXRET01LZXlib2FyZEV2ZW50KiBzZWxmKTsK
IAogLyoqCkBAIC0xMjAsOCArMTM2LDEwIEBAIHdlYmtpdF9kb21fa2V5Ym9hcmRfZXZlbnRfZ2V0
X2tleV9sb2NhdGlvbihXZWJLaXRET01LZXlib2FyZEV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01LZXlib2FyZEV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtp
dF9kb21fa2V5Ym9hcmRfZXZlbnRfZ2V0X2N0cmxfa2V5KFdlYktpdERPTUtleWJvYXJkRXZlbnQq
IHNlbGYpOwogCiAvKioKQEAgLTEyOSw4ICsxNDcsMTAgQEAgd2Via2l0X2RvbV9rZXlib2FyZF9l
dmVudF9nZXRfY3RybF9rZXkoV2ViS2l0RE9NS2V5Ym9hcmRFdmVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NS2V5Ym9hcmRFdmVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFu
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3
ZWJraXRfZG9tX2tleWJvYXJkX2V2ZW50X2dldF9zaGlmdF9rZXkoV2ViS2l0RE9NS2V5Ym9hcmRF
dmVudCogc2VsZik7CiAKIC8qKgpAQCAtMTM4LDggKzE1OCwxMCBAQCB3ZWJraXRfZG9tX2tleWJv
YXJkX2V2ZW50X2dldF9zaGlmdF9rZXkoV2ViS2l0RE9NS2V5Ym9hcmRFdmVudCogc2VsZik7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NS2V5Ym9hcmRFdmVudAogICoKICAqIFJldHVybnM6IEEgI2di
b29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29s
ZWFuCiB3ZWJraXRfZG9tX2tleWJvYXJkX2V2ZW50X2dldF9hbHRfa2V5KFdlYktpdERPTUtleWJv
YXJkRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTE0Nyw4ICsxNjksMTAgQEAgd2Via2l0X2RvbV9r
ZXlib2FyZF9ldmVudF9nZXRfYWx0X2tleShXZWJLaXRET01LZXlib2FyZEV2ZW50KiBzZWxmKTsK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01LZXlib2FyZEV2ZW50CiAgKgogICogUmV0dXJuczogQSAj
Z2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jv
b2xlYW4KIHdlYmtpdF9kb21fa2V5Ym9hcmRfZXZlbnRfZ2V0X21ldGFfa2V5KFdlYktpdERPTUtl
eWJvYXJkRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTE1Niw4ICsxODAsMTAgQEAgd2Via2l0X2Rv
bV9rZXlib2FyZF9ldmVudF9nZXRfbWV0YV9rZXkoV2ViS2l0RE9NS2V5Ym9hcmRFdmVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NS2V5Ym9hcmRFdmVudAogICoKICAqIFJldHVybnM6
IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVE
IGdib29sZWFuCiB3ZWJraXRfZG9tX2tleWJvYXJkX2V2ZW50X2dldF9hbHRfZ3JhcGhfa2V5KFdl
YktpdERPTUtleWJvYXJkRXZlbnQqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTU1lZGlhTGlzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTWVkaWFMaXN0LmNwcAppbmRleCAyMDgwZWVmYmEwMy4u
ZmIxYjRhYmYzNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01NZWRpYUxpc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01NZWRp
YUxpc3QuY3BwCkBAIC0zNyw2ICszNyw4IEBAIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01NZWRp
YUxpc3RQcml2YXRlIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6TWVkaWFMaXN0PiBjb3JlT2JqZWN0
OwogfSBXZWJLaXRET01NZWRpYUxpc3RQcml2YXRlOwogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RF
UFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTU1lZGlhTGlzdCog
a2l0KFdlYkNvcmU6Ok1lZGlhTGlzdCogb2JqKQpAQCAtMjMyLDMgKzIzNCw0IEBAIGd1bG9uZyB3
ZWJraXRfZG9tX21lZGlhX2xpc3RfZ2V0X2xlbmd0aChXZWJLaXRET01NZWRpYUxpc3QqIHNlbGYp
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05T
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTU1lZGlhTGlzdC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU1lZGlhTGlzdC5oCmluZGV4IDcx
ZjZmNWFhY2ZhLi40MzM3OTc5YTAwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU1lZGlhTGlzdC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01NZWRpYUxpc3QuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTU1lZGlh
TGlzdENsYXNzIHsKICAgICBXZWJLaXRET01PYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CiB9Owog
Ci1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9t
ZWRpYV9saXN0X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTU0LDggKzU0LDEwIEBAIHdlYmtp
dF9kb21fbWVkaWFfbGlzdF9nZXRfdHlwZSh2b2lkKTsKICAqIEBpbmRleDogQSAjZ3Vsb25nCiAg
KgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9E
RVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9tZWRpYV9saXN0X2l0ZW0oV2ViS2l0RE9NTWVk
aWFMaXN0KiBzZWxmLCBndWxvbmcgaW5kZXgpOwogCiAvKioKQEAgLTY0LDggKzY2LDEwIEBAIHdl
YmtpdF9kb21fbWVkaWFfbGlzdF9pdGVtKFdlYktpdERPTU1lZGlhTGlzdCogc2VsZiwgZ3Vsb25n
IGluZGV4KTsKICAqIEBvbGRNZWRpdW06IEEgI2djaGFyCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9tZWRpYV9saXN0X2RlbGV0ZV9tZWRpdW0oV2ViS2l0RE9NTWVkaWFMaXN0KiBzZWxmLCBjb25z
dCBnY2hhciogb2xkTWVkaXVtLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtNzQsOCArNzgs
MTAgQEAgd2Via2l0X2RvbV9tZWRpYV9saXN0X2RlbGV0ZV9tZWRpdW0oV2ViS2l0RE9NTWVkaWFM
aXN0KiBzZWxmLCBjb25zdCBnY2hhciogb2xkTWUKICAqIEBuZXdNZWRpdW06IEEgI2djaGFyCiAg
KiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9tZWRpYV9saXN0X2FwcGVuZF9tZWRpdW0oV2ViS2l0RE9N
TWVkaWFMaXN0KiBzZWxmLCBjb25zdCBnY2hhciogbmV3TWVkaXVtLCBHRXJyb3IqKiBlcnJvcik7
CiAKIC8qKgpAQCAtODMsOCArODksMTAgQEAgd2Via2l0X2RvbV9tZWRpYV9saXN0X2FwcGVuZF9t
ZWRpdW0oV2ViS2l0RE9NTWVkaWFMaXN0KiBzZWxmLCBjb25zdCBnY2hhciogbmV3TWUKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01NZWRpYUxpc3QKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9t
X21lZGlhX2xpc3RfZ2V0X21lZGlhX3RleHQoV2ViS2l0RE9NTWVkaWFMaXN0KiBzZWxmKTsKIAog
LyoqCkBAIC05Myw4ICsxMDEsMTAgQEAgd2Via2l0X2RvbV9tZWRpYV9saXN0X2dldF9tZWRpYV90
ZXh0KFdlYktpdERPTU1lZGlhTGlzdCogc2VsZik7CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKiBA
ZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9tZWRpYV9saXN0X3NldF9tZWRpYV90ZXh0KFdlYktpdERPTU1l
ZGlhTGlzdCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8q
KgpAQCAtMTAyLDggKzExMiwxMCBAQCB3ZWJraXRfZG9tX21lZGlhX2xpc3Rfc2V0X21lZGlhX3Rl
eHQoV2ViS2l0RE9NTWVkaWFMaXN0KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdQogICogQHNlbGY6
IEEgI1dlYktpdERPTU1lZGlhTGlzdAogICoKICAqIFJldHVybnM6IEEgI2d1bG9uZworICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGd1bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vsb25nCiB3ZWJraXRfZG9tX21l
ZGlhX2xpc3RfZ2V0X2xlbmd0aChXZWJLaXRET01NZWRpYUxpc3QqIHNlbGYpOwogCiBHX0VORF9E
RUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTU1vdXNlRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU1vdXNlRXZlbnQuY3Bw
CmluZGV4IDE3ZGIzM2QxMjc1Li4wNTgwMGEzNTdmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU1vdXNlRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01Nb3VzZUV2ZW50LmNwcApAQCAtMzUsNiArMzUsOCBAQAogI2luY2x1
ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJ
Tl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9N
TW91c2VFdmVudCoga2l0KFdlYkNvcmU6Ok1vdXNlRXZlbnQqIG9iaikKQEAgLTQ2NiwzICs0Njgs
NCBAQCBXZWJLaXRET01Ob2RlKiB3ZWJraXRfZG9tX21vdXNlX2V2ZW50X2dldF90b19lbGVtZW50
KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpCiAgICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmpl
Y3RSZXN1bHQuZ2V0KCkpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NTW91c2VFdmVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU1vdXNlRXZlbnQuaAppbmRleCAxMjEy
YWZlZDdiMi4uZmQ0YTg2MDJjMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Nb3VzZUV2ZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTU1vdXNlRXZlbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTU1vdXNl
RXZlbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NVUlFdmVudENsYXNzIHBhcmVudF9jbGFzczsKIH07
CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9t
X21vdXNlX2V2ZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTY3LDggKzY3LDEwIEBAIHdl
YmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAYnV0dG9uOiBBICNndXNo
b3J0CiAgKiBAcmVsYXRlZFRhcmdldDogQSAjV2ViS2l0RE9NRXZlbnRUYXJnZXQKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9tb3Vz
ZV9ldmVudF9pbml0X21vdXNlX2V2ZW50KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYsIGNvbnN0
IGdjaGFyKiB0eXBlLCBnYm9vbGVhbiBjYW5CdWJibGUsIGdib29sZWFuIGNhbmNlbGFibGUsIFdl
YktpdERPTURPTVdpbmRvdyogdmlldywgZ2xvbmcgZGV0YWlsLCBnbG9uZyBzY3JlZW5YLCBnbG9u
ZyBzY3JlZW5ZLCBnbG9uZyBjbGllbnRYLCBnbG9uZyBjbGllbnRZLCBnYm9vbGVhbiBjdHJsS2V5
LCBnYm9vbGVhbiBhbHRLZXksIGdib29sZWFuIHNoaWZ0S2V5LCBnYm9vbGVhbiBtZXRhS2V5LCBn
dXNob3J0IGJ1dHRvbiwgV2ViS2l0RE9NRXZlbnRUYXJnZXQqIHJlbGF0ZWRUYXJnZXQpOwogCiAv
KioKQEAgLTc2LDggKzc4LDEwIEBAIHdlYmtpdF9kb21fbW91c2VfZXZlbnRfaW5pdF9tb3VzZV9l
dmVudChXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmLCBjb25zdCBnY2hhcioKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01Nb3VzZUV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fbW91c2Vf
ZXZlbnRfZ2V0X3NjcmVlbl94KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogCiAvKioKQEAg
LTg1LDggKzg5LDEwIEBAIHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X3NjcmVlbl94KFdlYktp
dERPTU1vdXNlRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU1vdXNlRXZlbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRf
REVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfc2NyZWVuX3koV2Vi
S2l0RE9NTW91c2VFdmVudCogc2VsZik7CiAKIC8qKgpAQCAtOTQsOCArMTAwLDEwIEBAIHdlYmtp
dF9kb21fbW91c2VfZXZlbnRfZ2V0X3NjcmVlbl95KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTU1vdXNlRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Vi
a2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfY2xpZW50X3goV2ViS2l0RE9NTW91c2VFdmVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtMTAzLDggKzExMSwxMCBAQCB3ZWJraXRfZG9tX21vdXNlX2V2ZW50X2dl
dF9jbGllbnRfeChXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01Nb3VzZUV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fbW91c2VfZXZlbnRf
Z2V0X2NsaWVudF95KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTExMiw4
ICsxMjIsMTAgQEAgd2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfY2xpZW50X3koV2ViS2l0RE9N
TW91c2VFdmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTW91c2VFdmVudAogICoK
ICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJ
VF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX21vdXNlX2V2ZW50X2dldF9jdHJsX2tl
eShXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMjEsOCArMTMzLDEwIEBA
IHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X2N0cmxfa2V5KFdlYktpdERPTU1vdXNlRXZlbnQq
IHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU1vdXNlRXZlbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRF
RCBnYm9vbGVhbgogd2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfc2hpZnRfa2V5KFdlYktpdERP
TU1vdXNlRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTEzMCw4ICsxNDQsMTAgQEAgd2Via2l0X2Rv
bV9tb3VzZV9ldmVudF9nZXRfc2hpZnRfa2V5KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTU1vdXNlRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9v
bGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVh
bgogd2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfYWx0X2tleShXZWJLaXRET01Nb3VzZUV2ZW50
KiBzZWxmKTsKIAogLyoqCkBAIC0xMzksOCArMTU1LDEwIEBAIHdlYmtpdF9kb21fbW91c2VfZXZl
bnRfZ2V0X2FsdF9rZXkoV2ViS2l0RE9NTW91c2VFdmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NTW91c2VFdmVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9t
X21vdXNlX2V2ZW50X2dldF9tZXRhX2tleShXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0xNDgsOCArMTY2LDEwIEBAIHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X21ldGFf
a2V5KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU1v
dXNlRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNndXNob3J0CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ3Vz
aG9ydAorV0VCS0lUX0RFUFJFQ0FURUQgZ3VzaG9ydAogd2Via2l0X2RvbV9tb3VzZV9ldmVudF9n
ZXRfYnV0dG9uKFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTE1Nyw4ICsx
NzcsMTAgQEAgd2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfYnV0dG9uKFdlYktpdERPTU1vdXNl
RXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU1vdXNlRXZlbnQKICAqCiAgKiBS
ZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUV2ZW50VGFyZ2V0CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgV2ViS2l0RE9NRXZlbnRUYXJnZXQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRE
T01FdmVudFRhcmdldCoKIHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X3JlbGF0ZWRfdGFyZ2V0
KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTE2Niw4ICsxODgsMTAgQEAg
d2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfcmVsYXRlZF90YXJnZXQoV2ViS2l0RE9NTW91c2VF
dmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTW91c2VFdmVudAogICoKICAqIFJl
dHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVE
IGdsb25nCiB3ZWJraXRfZG9tX21vdXNlX2V2ZW50X2dldF9vZmZzZXRfeChXZWJLaXRET01Nb3Vz
ZUV2ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNzUsOCArMTk5LDEwIEBAIHdlYmtpdF9kb21fbW91
c2VfZXZlbnRfZ2V0X29mZnNldF94KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTU1vdXNlRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9t
b3VzZV9ldmVudF9nZXRfb2Zmc2V0X3koV2ViS2l0RE9NTW91c2VFdmVudCogc2VsZik7CiAKIC8q
KgpAQCAtMTg0LDggKzIxMCwxMCBAQCB3ZWJraXRfZG9tX21vdXNlX2V2ZW50X2dldF9vZmZzZXRf
eShXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Nb3Vz
ZUV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZwor
V0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X3goV2Vi
S2l0RE9NTW91c2VFdmVudCogc2VsZik7CiAKIC8qKgpAQCAtMTkzLDggKzIyMSwxMCBAQCB3ZWJr
aXRfZG9tX21vdXNlX2V2ZW50X2dldF94KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTU1vdXNlRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZwor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2Rv
bV9tb3VzZV9ldmVudF9nZXRfeShXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmKTsKIAogLyoqCkBA
IC0yMDIsOCArMjMyLDEwIEBAIHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X3koV2ViS2l0RE9N
TW91c2VFdmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTW91c2VFdmVudAogICoK
ICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgog
d2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfZnJvbV9lbGVtZW50KFdlYktpdERPTU1vdXNlRXZl
bnQqIHNlbGYpOwogCiAvKioKQEAgLTIxMSw4ICsyNDMsMTAgQEAgd2Via2l0X2RvbV9tb3VzZV9l
dmVudF9nZXRfZnJvbV9lbGVtZW50KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTU1vdXNlRXZlbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9u
ZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VC
S0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0
X3RvX2VsZW1lbnQoV2ViS2l0RE9NTW91c2VFdmVudCogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NTmFtZWROb2RlTWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01OYW1lZE5vZGVNYXAuY3BwCmlu
ZGV4IGQyMWFkYjIzYjFhLi5iYWY2NThhNjQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5hbWVkTm9kZU1h
cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTU5hbWVkTm9kZU1hcC5jcHAKQEAgLTM5LDYgKzM5LDggQEAgdHlwZWRl
ZiBzdHJ1Y3QgX1dlYktpdERPTU5hbWVkTm9kZU1hcFByaXZhdGUgewogICAgIFJlZlB0cjxXZWJD
b3JlOjpOYW1lZE5vZGVNYXA+IGNvcmVPYmplY3Q7CiB9IFdlYktpdERPTU5hbWVkTm9kZU1hcFBy
aXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogV2ViS2l0RE9NTmFtZWROb2RlTWFwKiBraXQoV2ViQ29yZTo6TmFtZWROb2Rl
TWFwKiBvYmopCkBAIC0yMzgsMyArMjQwLDQgQEAgZ3Vsb25nIHdlYmtpdF9kb21fbmFtZWRfbm9k
ZV9tYXBfZ2V0X2xlbmd0aChXZWJLaXRET01OYW1lZE5vZGVNYXAqIHNlbGYpCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTU5hbWVkTm9kZU1hcC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5hbWVkTm9kZU1hcC5oCmluZGV4IDRjZmM4YmUz
ODgzLi4zYWY0MTI1MmNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5hbWVkTm9kZU1hcC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01OYW1lZE5vZGVNYXAuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTU5hbWVk
Tm9kZU1hcENsYXNzIHsKICAgICBXZWJLaXRET01PYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CiB9
OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2Rv
bV9uYW1lZF9ub2RlX21hcF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01NCw4ICs1NCwxMCBA
QCB3ZWJraXRfZG9tX25hbWVkX25vZGVfbWFwX2dldF90eXBlKHZvaWQpOwogICogQG5hbWU6IEEg
I2djaGFyCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2Rl
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktp
dERPTU5vZGUqCiB3ZWJraXRfZG9tX25hbWVkX25vZGVfbWFwX2dldF9uYW1lZF9pdGVtKFdlYktp
dERPTU5hbWVkTm9kZU1hcCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWUpOwogCiAvKioKQEAgLTY1
LDggKzY3LDEwIEBAIHdlYmtpdF9kb21fbmFtZWRfbm9kZV9tYXBfZ2V0X25hbWVkX2l0ZW0oV2Vi
S2l0RE9NTmFtZWROb2RlTWFwKiBzZWxmLCBjb25zdCBnY2hhCiAgKiBAZXJyb3I6ICNHRXJyb3IK
ICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9k
ZSoKIHdlYmtpdF9kb21fbmFtZWRfbm9kZV9tYXBfc2V0X25hbWVkX2l0ZW0oV2ViS2l0RE9NTmFt
ZWROb2RlTWFwKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBub2RlLCBHRXJyb3IqKiBlcnJvcik7CiAK
IC8qKgpAQCAtNzYsOCArODAsMTAgQEAgd2Via2l0X2RvbV9uYW1lZF9ub2RlX21hcF9zZXRfbmFt
ZWRfaXRlbShXZWJLaXRET01OYW1lZE5vZGVNYXAqIHNlbGYsIFdlYktpdERPTU4KICAqIEBlcnJv
cjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9N
Tm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBX
ZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9uYW1lZF9ub2RlX21hcF9yZW1vdmVfbmFtZWRfaXRl
bShXZWJLaXRET01OYW1lZE5vZGVNYXAqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lLCBHRXJyb3Iq
KiBlcnJvcik7CiAKIC8qKgpAQCAtODYsOCArOTIsMTAgQEAgd2Via2l0X2RvbV9uYW1lZF9ub2Rl
X21hcF9yZW1vdmVfbmFtZWRfaXRlbShXZWJLaXRET01OYW1lZE5vZGVNYXAqIHNlbGYsIGNvbnN0
IGcKICAqIEBpbmRleDogQSAjZ3Vsb25nCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUp
OiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJ
VF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX25hbWVkX25vZGVfbWFwX2l0
ZW0oV2ViS2l0RE9NTmFtZWROb2RlTWFwKiBzZWxmLCBndWxvbmcgaW5kZXgpOwogCiAvKioKQEAg
LTk3LDggKzEwNSwxMCBAQCB3ZWJraXRfZG9tX25hbWVkX25vZGVfbWFwX2l0ZW0oV2ViS2l0RE9N
TmFtZWROb2RlTWFwKiBzZWxmLCBndWxvbmcgaW5kZXgpOwogICogQGxvY2FsTmFtZTogQSAjZ2No
YXIKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9N
Tm9kZSoKIHdlYmtpdF9kb21fbmFtZWRfbm9kZV9tYXBfZ2V0X25hbWVkX2l0ZW1fbnMoV2ViS2l0
RE9NTmFtZWROb2RlTWFwKiBzZWxmLCBjb25zdCBnY2hhciogbmFtZXNwYWNlVVJJLCBjb25zdCBn
Y2hhciogbG9jYWxOYW1lKTsKIAogLyoqCkBAIC0xMDgsOCArMTE4LDEwIEBAIHdlYmtpdF9kb21f
bmFtZWRfbm9kZV9tYXBfZ2V0X25hbWVkX2l0ZW1fbnMoV2ViS2l0RE9NTmFtZWROb2RlTWFwKiBz
ZWxmLCBjb25zdCBnCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNm
ZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2Rl
KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fbmFtZWRfbm9k
ZV9tYXBfc2V0X25hbWVkX2l0ZW1fbnMoV2ViS2l0RE9NTmFtZWROb2RlTWFwKiBzZWxmLCBXZWJL
aXRET01Ob2RlKiBub2RlLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTIwLDggKzEzMiwx
MCBAQCB3ZWJraXRfZG9tX25hbWVkX25vZGVfbWFwX3NldF9uYW1lZF9pdGVtX25zKFdlYktpdERP
TU5hbWVkTm9kZU1hcCogc2VsZiwgV2ViS2l0RAogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICog
UmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJr
aXRfZG9tX25hbWVkX25vZGVfbWFwX3JlbW92ZV9uYW1lZF9pdGVtX25zKFdlYktpdERPTU5hbWVk
Tm9kZU1hcCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWVzcGFjZVVSSSwgY29uc3QgZ2NoYXIqIGxv
Y2FsTmFtZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTEyOSw4ICsxNDMsMTAgQEAgd2Vi
a2l0X2RvbV9uYW1lZF9ub2RlX21hcF9yZW1vdmVfbmFtZWRfaXRlbV9ucyhXZWJLaXRET01OYW1l
ZE5vZGVNYXAqIHNlbGYsIGNvbnMKICAqIEBzZWxmOiBBICNXZWJLaXRET01OYW1lZE5vZGVNYXAK
ICAqCiAgKiBSZXR1cm5zOiBBICNndWxvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJ
VF9ERVBSRUNBVEVEIGd1bG9uZwogd2Via2l0X2RvbV9uYW1lZF9ub2RlX21hcF9nZXRfbGVuZ3Ro
KFdlYktpdERPTU5hbWVkTm9kZU1hcCogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NTm9kZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTU5vZGUuaAppbmRleCBjNTRjOGE3Mzg5ZS4uYmZlMGQ4MDAyMjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01Ob2RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGUuaApAQCAtMjUsNiArMjUsNyBA
QAogI2RlZmluZSBXZWJLaXRET01Ob2RlX2gKIAogI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+Cisj
aW5jbHVkZSA8anNjL2pzYy5oPgogI2luY2x1ZGUgPHdlYmtpdGRvbS9XZWJLaXRET01PYmplY3Qu
aD4KICNpbmNsdWRlIDx3ZWJraXRkb20vd2Via2l0ZG9tZGVmaW5lcy5oPgogCkBAIC0zOSw4NiAr
NDAsMTIwIEBAIEdfQkVHSU5fREVDTFMKIAogLyoqCiAgKiBXRUJLSVRfRE9NX05PREVfRUxFTUVO
VF9OT0RFOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9FTEVNRU5UX05PREUgMQogCiAv
KioKICAqIFdFQktJVF9ET01fTk9ERV9BVFRSSUJVVEVfTk9ERToKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJL
SVRfRE9NX05PREVfQVRUUklCVVRFX05PREUgMgogCiAvKioKICAqIFdFQktJVF9ET01fTk9ERV9U
RVhUX05PREU6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX1RFWFRfTk9ERSAzCiAKIC8q
KgogICogV0VCS0lUX0RPTV9OT0RFX0NEQVRBX1NFQ1RJT05fTk9ERToKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBX
RUJLSVRfRE9NX05PREVfQ0RBVEFfU0VDVElPTl9OT0RFIDQKIAogLyoqCiAgKiBXRUJLSVRfRE9N
X05PREVfRU5USVRZX1JFRkVSRU5DRV9OT0RFOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fTk9E
RV9FTlRJVFlfUkVGRVJFTkNFX05PREUgNQogCiAvKioKICAqIFdFQktJVF9ET01fTk9ERV9FTlRJ
VFlfTk9ERToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX05PREVfRU5USVRZX05PREUgNgogCiAv
KioKICAqIFdFQktJVF9ET01fTk9ERV9QUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8K
ICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX1BST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERSA3CiAK
IC8qKgogICogV0VCS0lUX0RPTV9OT0RFX0NPTU1FTlRfTk9ERToKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJL
SVRfRE9NX05PREVfQ09NTUVOVF9OT0RFIDgKIAogLyoqCiAgKiBXRUJLSVRfRE9NX05PREVfRE9D
VU1FTlRfTk9ERToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX05PREVfRE9DVU1FTlRfTk9ERSA5
CiAKIC8qKgogICogV0VCS0lUX0RPTV9OT0RFX0RPQ1VNRU5UX1RZUEVfTk9ERToKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2Rl
ZmluZSBXRUJLSVRfRE9NX05PREVfRE9DVU1FTlRfVFlQRV9OT0RFIDEwCiAKIC8qKgogICogV0VC
S0lUX0RPTV9OT0RFX0RPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lU
X0RPTV9OT0RFX0RPQ1VNRU5UX0ZSQUdNRU5UX05PREUgMTEKIAogLyoqCiAgKiBXRUJLSVRfRE9N
X05PREVfRE9DVU1FTlRfUE9TSVRJT05fRElTQ09OTkVDVEVEOgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJ
VF9ET01fTk9ERV9ET0NVTUVOVF9QT1NJVElPTl9ESVNDT05ORUNURUQgMHgwMQogCiAvKioKICAq
IFdFQktJVF9ET01fTk9ERV9ET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkc6CisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZp
bmUgV0VCS0lUX0RPTV9OT0RFX0RPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORyAweDAyCiAKIC8q
KgogICogV0VCS0lUX0RPTV9OT0RFX0RPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORzoKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwog
I2RlZmluZSBXRUJLSVRfRE9NX05PREVfRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HIDB4MDQK
IAogLyoqCiAgKiBXRUJLSVRfRE9NX05PREVfRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTlM6Cisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAg
Ki8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0RPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5TIDB4
MDgKIAogLyoqCiAgKiBXRUJLSVRfRE9NX05PREVfRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVE
X0JZOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9ET0NVTUVOVF9QT1NJVElPTl9DT05U
QUlORURfQlkgMHgxMAogCiAvKioKICAqIFdFQktJVF9ET01fTk9ERV9ET0NVTUVOVF9QT1NJVElP
Tl9JTVBMRU1FTlRBVElPTl9TUEVDSUZJQzoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX05PREVf
RE9DVU1FTlRfUE9TSVRJT05fSU1QTEVNRU5UQVRJT05fU1BFQ0lGSUMgMHgyMAogCkBAIC0xNDEs
OCArMTc2LDEwIEBAIHdlYmtpdF9kb21fbm9kZV9nZXRfdHlwZSh2b2lkKTsKICAqIEBlcnJvcjog
I0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9k
ZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJL
aXRET01Ob2RlKgogd2Via2l0X2RvbV9ub2RlX2luc2VydF9iZWZvcmUoV2ViS2l0RE9NTm9kZSog
c2VsZiwgV2ViS2l0RE9NTm9kZSogbmV3Q2hpbGQsIFdlYktpdERPTU5vZGUqIHJlZkNoaWxkLCBH
RXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTUzLDggKzE5MCwxMCBAQCB3ZWJraXRfZG9tX25v
ZGVfaW5zZXJ0X2JlZm9yZShXZWJLaXRET01Ob2RlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBuZXdD
aGlsZCwgV2ViSwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVy
IG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoK
K1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX25vZGVfcmVwbGFj
ZV9jaGlsZChXZWJLaXRET01Ob2RlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBuZXdDaGlsZCwgV2Vi
S2l0RE9NTm9kZSogb2xkQ2hpbGQsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xNjQsOCAr
MjAzLDEwIEBAIHdlYmtpdF9kb21fbm9kZV9yZXBsYWNlX2NoaWxkKFdlYktpdERPTU5vZGUqIHNl
bGYsIFdlYktpdERPTU5vZGUqIG5ld0NoaWxkLCBXZWJLCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAq
CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoK
IHdlYmtpdF9kb21fbm9kZV9yZW1vdmVfY2hpbGQoV2ViS2l0RE9NTm9kZSogc2VsZiwgV2ViS2l0
RE9NTm9kZSogb2xkQ2hpbGQsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xNzUsOCArMjE2
LDEwIEBAIHdlYmtpdF9kb21fbm9kZV9yZW1vdmVfY2hpbGQoV2ViS2l0RE9NTm9kZSogc2VsZiwg
V2ViS2l0RE9NTm9kZSogb2xkQ2hpbGQsIEdFcnJvCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAg
KiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdl
YmtpdF9kb21fbm9kZV9hcHBlbmRfY2hpbGQoV2ViS2l0RE9NTm9kZSogc2VsZiwgV2ViS2l0RE9N
Tm9kZSogbmV3Q2hpbGQsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xODQsOCArMjI3LDEw
IEBAIHdlYmtpdF9kb21fbm9kZV9hcHBlbmRfY2hpbGQoV2ViS2l0RE9NTm9kZSogc2VsZiwgV2Vi
S2l0RE9NTm9kZSogbmV3Q2hpbGQsIEdFcnJvCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTm9kZQog
ICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dF
QktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX25vZGVfaGFzX2NoaWxkX25vZGVz
KFdlYktpdERPTU5vZGUqIHNlbGYpOwogCiAvKioKQEAgLTE5NywxNiArMjQyLDIwIEBAIHdlYmtp
dF9kb21fbm9kZV9oYXNfY2hpbGRfbm9kZXMoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAgKiBSZXR1
cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBTaW5jZTogMi4x
NAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJL
aXRET01Ob2RlKgogd2Via2l0X2RvbV9ub2RlX2Nsb25lX25vZGVfd2l0aF9lcnJvcihXZWJLaXRE
T01Ob2RlKiBzZWxmLCBnYm9vbGVhbiBkZWVwLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgogICog
d2Via2l0X2RvbV9ub2RlX25vcm1hbGl6ZToKICAqIEBzZWxmOiBBICNXZWJLaXRET01Ob2RlCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21fbm9kZV9ub3JtYWxpemUoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAKIC8qKgpAQCAtMjE2LDgg
KzI2NSwxMCBAQCB3ZWJraXRfZG9tX25vZGVfbm9ybWFsaXplKFdlYktpdERPTU5vZGUqIHNlbGYp
OwogICogQHZlcnNpb246IEEgI2djaGFyCiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtp
dF9kb21fbm9kZV9pc19zdXBwb3J0ZWQoV2ViS2l0RE9NTm9kZSogc2VsZiwgY29uc3QgZ2NoYXIq
IGZlYXR1cmUsIGNvbnN0IGdjaGFyKiB2ZXJzaW9uKTsKIAogLyoqCkBAIC0yMjYsOCArMjc3LDEw
IEBAIHdlYmtpdF9kb21fbm9kZV9pc19zdXBwb3J0ZWQoV2ViS2l0RE9NTm9kZSogc2VsZiwgY29u
c3QgZ2NoYXIqIGZlYXR1cmUsIGNvbnN0IGdjCiAgKiBAb3RoZXI6IEEgI1dlYktpdERPTU5vZGUK
ICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitX
RUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9ub2RlX2lzX3NhbWVfbm9kZShX
ZWJLaXRET01Ob2RlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBvdGhlcik7CiAKIC8qKgpAQCAtMjM2
LDggKzI4OSwxMCBAQCB3ZWJraXRfZG9tX25vZGVfaXNfc2FtZV9ub2RlKFdlYktpdERPTU5vZGUq
IHNlbGYsIFdlYktpdERPTU5vZGUqIG90aGVyKTsKICAqIEBvdGhlcjogQSAjV2ViS2l0RE9NTm9k
ZQogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4K
K1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX25vZGVfaXNfZXF1YWxfbm9k
ZShXZWJLaXRET01Ob2RlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBvdGhlcik7CiAKIC8qKgpAQCAt
MjQ2LDggKzMwMSwxMCBAQCB3ZWJraXRfZG9tX25vZGVfaXNfZXF1YWxfbm9kZShXZWJLaXRET01O
b2RlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBvdGhlcik7CiAgKiBAbmFtZXNwYWNlVVJJOiBBICNn
Y2hhcgogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitX
RUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fbm9kZV9sb29rdXBfcHJlZml4KFdl
YktpdERPTU5vZGUqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lc3BhY2VVUkkpOwogCiAvKioKQEAg
LTI1Niw4ICszMTMsMTAgQEAgd2Via2l0X2RvbV9ub2RlX2xvb2t1cF9wcmVmaXgoV2ViS2l0RE9N
Tm9kZSogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWVzcGFjZVVSSSk7CiAgKiBAcHJlZml4OiBBICNn
Y2hhcgogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitX
RUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fbm9kZV9sb29rdXBfbmFtZXNwYWNl
X3VyaShXZWJLaXRET01Ob2RlKiBzZWxmLCBjb25zdCBnY2hhciogcHJlZml4KTsKIAogLyoqCkBA
IC0yNjYsOCArMzI1LDEwIEBAIHdlYmtpdF9kb21fbm9kZV9sb29rdXBfbmFtZXNwYWNlX3VyaShX
ZWJLaXRET01Ob2RlKiBzZWxmLCBjb25zdCBnY2hhciogcHJlZml4KTsKICAqIEBuYW1lc3BhY2VV
Ukk6IEEgI2djaGFyCiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fbm9kZV9p
c19kZWZhdWx0X25hbWVzcGFjZShXZWJLaXRET01Ob2RlKiBzZWxmLCBjb25zdCBnY2hhciogbmFt
ZXNwYWNlVVJJKTsKIAogLyoqCkBAIC0yNzYsOCArMzM3LDEwIEBAIHdlYmtpdF9kb21fbm9kZV9p
c19kZWZhdWx0X25hbWVzcGFjZShXZWJLaXRET01Ob2RlKiBzZWxmLCBjb25zdCBnY2hhciogbmFt
ZXNwYWNlCiAgKiBAb3RoZXI6IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBSZXR1cm5zOiBBICNn
dXNob3J0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ3VzaG9ydAorV0VCS0lUX0RFUFJFQ0FURUQgZ3VzaG9y
dAogd2Via2l0X2RvbV9ub2RlX2NvbXBhcmVfZG9jdW1lbnRfcG9zaXRpb24oV2ViS2l0RE9NTm9k
ZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogb3RoZXIpOwogCiAvKioKQEAgLTI4Niw4ICszNDksMTAg
QEAgd2Via2l0X2RvbV9ub2RlX2NvbXBhcmVfZG9jdW1lbnRfcG9zaXRpb24oV2ViS2l0RE9NTm9k
ZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogb3QKICAqIEBvdGhlcjogQSAjV2ViS2l0RE9NTm9kZQog
ICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dF
QktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX25vZGVfY29udGFpbnMoV2ViS2l0
RE9NTm9kZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogb3RoZXIpOwogCiAvKioKQEAgLTI5NSw4ICsz
NjAsMTAgQEAgd2Via2l0X2RvbV9ub2RlX2NvbnRhaW5zKFdlYktpdERPTU5vZGUqIHNlbGYsIFdl
YktpdERPTU5vZGUqIG90aGVyKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Ob2RlCiAgKgogICog
UmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNB
VEVEIGdjaGFyKgogd2Via2l0X2RvbV9ub2RlX2dldF9ub2RlX25hbWUoV2ViS2l0RE9NTm9kZSog
c2VsZik7CiAKIC8qKgpAQCAtMzA0LDggKzM3MSwxMCBAQCB3ZWJraXRfZG9tX25vZGVfZ2V0X25v
ZGVfbmFtZShXZWJLaXRET01Ob2RlKiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Ob2Rl
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9ub2RlX2dldF9ub2RlX3ZhbHVlKFdlYktp
dERPTU5vZGUqIHNlbGYpOwogCiAvKioKQEAgLTMxNCw4ICszODMsMTAgQEAgd2Via2l0X2RvbV9u
b2RlX2dldF9ub2RlX3ZhbHVlKFdlYktpdERPTU5vZGUqIHNlbGYpOwogICogQHZhbHVlOiBBICNn
Y2hhcgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fbm9kZV9zZXRfbm9kZV92YWx1ZShXZWJLaXRE
T01Ob2RlKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoq
CkBAIC0zMjMsOCArMzk0LDEwIEBAIHdlYmtpdF9kb21fbm9kZV9zZXRfbm9kZV92YWx1ZShXZWJL
aXRET01Ob2RlKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJvcioqCiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NTm9kZQogICoKICAqIFJldHVybnM6IEEgI2d1c2hvcnQKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBndXNob3J0CitXRUJLSVRfREVQUkVDQVRFRCBndXNob3J0CiB3ZWJraXRfZG9tX25vZGVf
Z2V0X25vZGVfdHlwZShXZWJLaXRET01Ob2RlKiBzZWxmKTsKIAogLyoqCkBAIC0zMzIsOCArNDA1
LDEwIEBAIHdlYmtpdF9kb21fbm9kZV9nZXRfbm9kZV90eXBlKFdlYktpdERPTU5vZGUqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
bm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgor
V0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fbm9kZV9nZXRfcGFy
ZW50X25vZGUoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAKIC8qKgpAQCAtMzQxLDggKzQxNiwxMCBA
QCB3ZWJraXRfZG9tX25vZGVfZ2V0X3BhcmVudF9ub2RlKFdlYktpdERPTU5vZGUqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVs
bCk6IEEgI1dlYktpdERPTU5vZGVMaXN0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZUxp
c3QqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlTGlzdCoKIHdlYmtpdF9kb21fbm9k
ZV9nZXRfY2hpbGRfbm9kZXMoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAKIC8qKgpAQCAtMzUwLDgg
KzQyNywxMCBAQCB3ZWJraXRfZG9tX25vZGVfZ2V0X2NoaWxkX25vZGVzKFdlYktpdERPTU5vZGUq
IHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBSZXR1cm5zOiAodHJh
bnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01O
b2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fbm9kZV9n
ZXRfZmlyc3RfY2hpbGQoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAKIC8qKgpAQCAtMzU5LDggKzQz
OCwxMCBAQCB3ZWJraXRfZG9tX25vZGVfZ2V0X2ZpcnN0X2NoaWxkKFdlYktpdERPTU5vZGUqIHNl
bGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNm
ZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2Rl
KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fbm9kZV9nZXRf
bGFzdF9jaGlsZChXZWJLaXRET01Ob2RlKiBzZWxmKTsKIAogLyoqCkBAIC0zNjgsOCArNDQ5LDEw
IEBAIHdlYmtpdF9kb21fbm9kZV9nZXRfbGFzdF9jaGlsZChXZWJLaXRET01Ob2RlKiBzZWxmKTsK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01Ob2RlCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5v
bmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dF
QktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX25vZGVfZ2V0X3ByZXZp
b3VzX3NpYmxpbmcoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAKIC8qKgpAQCAtMzc3LDggKzQ2MCwx
MCBAQCB3ZWJraXRfZG9tX25vZGVfZ2V0X3ByZXZpb3VzX3NpYmxpbmcoV2ViS2l0RE9NTm9kZSog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTm9kZQogICoKICAqIFJldHVybnM6ICh0cmFu
c2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5v
ZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9ub2RlX2dl
dF9uZXh0X3NpYmxpbmcoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAKIC8qKgpAQCAtMzg2LDggKzQ3
MSwxMCBAQCB3ZWJraXRfZG9tX25vZGVfZ2V0X25leHRfc2libGluZyhXZWJLaXRET01Ob2RlKiBz
ZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Ob2RlCiAgKgogICogUmV0dXJuczogKHRyYW5z
ZmVyIG5vbmUpOiBBICNXZWJLaXRET01Eb2N1bWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERP
TURvY3VtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRG9jdW1lbnQqCiB3ZWJraXRf
ZG9tX25vZGVfZ2V0X293bmVyX2RvY3VtZW50KFdlYktpdERPTU5vZGUqIHNlbGYpOwogCiAvKioK
QEAgLTM5NSw4ICs0ODIsMTAgQEAgd2Via2l0X2RvbV9ub2RlX2dldF9vd25lcl9kb2N1bWVudChX
ZWJLaXRET01Ob2RlKiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Ob2RlCiAgKgogICog
UmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNB
VEVEIGdjaGFyKgogd2Via2l0X2RvbV9ub2RlX2dldF9iYXNlX3VyaShXZWJLaXRET01Ob2RlKiBz
ZWxmKTsKIAogLyoqCkBAIC00MDQsOCArNDkzLDEwIEBAIHdlYmtpdF9kb21fbm9kZV9nZXRfYmFz
ZV91cmkoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTm9kZQog
ICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRf
REVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fbm9kZV9nZXRfdGV4dF9jb250ZW50KFdlYktp
dERPTU5vZGUqIHNlbGYpOwogCiAvKioKQEAgLTQxNCw4ICs1MDUsMTAgQEAgd2Via2l0X2RvbV9u
b2RlX2dldF90ZXh0X2NvbnRlbnQoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAgKiBAdmFsdWU6IEEg
I2djaGFyCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9ub2RlX3NldF90ZXh0X2NvbnRlbnQoV2Vi
S2l0RE9NTm9kZSogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7CiAK
IC8qKgpAQCAtNDIzLDEwICs1MTYsMTUgQEAgd2Via2l0X2RvbV9ub2RlX3NldF90ZXh0X2NvbnRl
bnQoV2ViS2l0RE9NTm9kZSogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01Ob2RlCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBB
ICNXZWJLaXRET01FbGVtZW50CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRWxlbWVudCoKK1dF
QktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUVsZW1lbnQqCiB3ZWJraXRfZG9tX25vZGVfZ2V0X3Bh
cmVudF9lbGVtZW50KFdlYktpdERPTU5vZGUqIHNlbGYpOwogCitXRUJLSVRfQVBJIFdlYktpdERP
TU5vZGUgKgord2Via2l0X2RvbV9ub2RlX2Zvcl9qc192YWx1ZShKU0NWYWx1ZSogdmFsdWUpOwor
CiBHX0VORF9ERUNMUwogCiAjZW5kaWYgLyogV2ViS2l0RE9NTm9kZV9oICovCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NTm9kZUZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUZpbHRlci5jcHAKaW5kZXggODc0N2UzNTFm
YTUuLmZkY2M5NGE0NjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUZpbHRlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TU5vZGVGaWx0ZXIuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAKIHR5cGVkZWYgV2ViS2l0RE9NTm9k
ZUZpbHRlcklmYWNlIFdlYktpdERPTU5vZGVGaWx0ZXJJbnRlcmZhY2U7CiAKK0dfR05VQ19CRUdJ
Tl9JR05PUkVfREVQUkVDQVRJT05TOworCiBHX0RFRklORV9JTlRFUkZBQ0UoV2ViS2l0RE9NTm9k
ZUZpbHRlciwgd2Via2l0X2RvbV9ub2RlX2ZpbHRlciwgR19UWVBFX09CSkVDVCkKIAogc3RhdGlj
IHZvaWQgd2Via2l0X2RvbV9ub2RlX2ZpbHRlcl9kZWZhdWx0X2luaXQoV2ViS2l0RE9NTm9kZUZp
bHRlcklmYWNlKikKQEAgLTgyLDMgKzg0LDQgQEAgUmVmUHRyPFdlYkNvcmU6Ok5vZGVGaWx0ZXI+
IGNvcmUoV2ViQ29yZTo6RG9jdW1lbnQqIGRvY3VtZW50LCBXZWJLaXRET01Ob2RlRmlsdGUKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NTm9kZUZpbHRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVGaWx0ZXIuaAppbmRleCAy
ZDg4ZjhmYjZmZi4uOWE4ZmVkNDkyZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlRmlsdGVyLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTU5vZGVGaWx0ZXIuaApAQCAtMzcsNiArMzcsOCBAQCBHX0JFR0lOX0RFQ0xTCiAgKiBp
bXBsZW1lbnRhdGlvbiB0byBhY2NlcHQgdGhlIGdpdmVuICNXZWJLaXRET01Ob2RlCiAgKgogICog
U2luY2U6IDIuNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9GSUxURVJfQUNDRVBUIDEK
IApAQCAtNDgsNiArNTAsOCBAQCBHX0JFR0lOX0RFQ0xTCiAgKiBiZSByZWplY3RlZCB0b28uCiAg
KgogICogU2luY2U6IDIuNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9GSUxURVJfUkVK
RUNUIDIKIApAQCAtNTksNiArNjMsOCBAQCBHX0JFR0lOX0RFQ0xTCiAgKiBub3QgYmUgc2tpcHBl
ZC4KICAqCiAgKiBTaW5jZTogMi42CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0ZJTFRF
Ul9TS0lQICAgMwogCkBAIC02OCw2ICs3NCw4IEBAIEdfQkVHSU5fREVDTFMKICAqIFNob3cgYWxs
IG5vZGVzLgogICoKICAqIFNpbmNlOiAyLjYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX05PREVf
RklMVEVSX1NIT1dfQUxMICAgICAgICAgICAgICAgICAgICAweEZGRkZGRkZGCiAKQEAgLTc3LDYg
Kzg1LDggQEAgR19CRUdJTl9ERUNMUwogICogU2hvdyAjV2ViS2l0RE9NRWxlbWVudCBub2Rlcy4K
ICAqCiAgKiBTaW5jZTogMi42CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0ZJTFRFUl9T
SE9XX0VMRU1FTlQgICAgICAgICAgICAgICAgMHgwMDAwMDAwMQogCkBAIC04Niw2ICs5Niw4IEBA
IEdfQkVHSU5fREVDTFMKICAqIFNob3cgI1dlYktpdERPTUF0dHIgbm9kZXMuCiAgKgogICogU2lu
Y2U6IDIuNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9GSUxURVJfU0hPV19BVFRSSUJV
VEUgICAgICAgICAgICAgIDB4MDAwMDAwMDIKIApAQCAtOTUsNiArMTA3LDggQEAgR19CRUdJTl9E
RUNMUwogICogU2hvdyAjV2ViS2l0RE9NVGV4dCBub2Rlcy4KICAqCiAgKiBTaW5jZTogMi42Cisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAg
Ki8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0ZJTFRFUl9TSE9XX1RFWFQgICAgICAgICAgICAg
ICAgICAgMHgwMDAwMDAwNAogCkBAIC0xMDQsNiArMTE4LDggQEAgR19CRUdJTl9ERUNMUwogICog
U2hvdyAjV2ViS2l0RE9NQ0RhdGFTZWN0aW9uIG5vZGVzLgogICoKICAqIFNpbmNlOiAyLjYKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAq
LwogI2RlZmluZSBXRUJLSVRfRE9NX05PREVfRklMVEVSX1NIT1dfQ0RBVEFfU0VDVElPTiAgICAg
ICAgICAweDAwMDAwMDA4CiAKQEAgLTExMyw2ICsxMjksOCBAQCBHX0JFR0lOX0RFQ0xTCiAgKiBT
aG93ICNXZWJLaXRET01FbnRpdHlSZWZlcmVuY2Ugbm9kZXMuCiAgKgogICogU2luY2U6IDIuNgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
ICovCiAjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9GSUxURVJfU0hPV19FTlRJVFlfUkVGRVJFTkNF
ICAgICAgIDB4MDAwMDAwMTAKIApAQCAtMTIyLDYgKzE0MCw4IEBAIEdfQkVHSU5fREVDTFMKICAq
IFNob3cgI1dlYktpdERPTUVudGl0eSBub2Rlcy4KICAqCiAgKiBTaW5jZTogMi42CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNk
ZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0ZJTFRFUl9TSE9XX0VOVElUWSAgICAgICAgICAgICAgICAg
MHgwMDAwMDAyMAogCkBAIC0xMzEsNiArMTUxLDggQEAgR19CRUdJTl9ERUNMUwogICogU2hvdyAj
V2ViS2l0RE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uIG5vZGVzLgogICoKICAqIFNpbmNlOiAyLjYK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX05PREVfRklMVEVSX1NIT1dfUFJPQ0VTU0lOR19JTlNU
UlVDVElPTiAweDAwMDAwMDQwCiAKQEAgLTE0MCw2ICsxNjIsOCBAQCBHX0JFR0lOX0RFQ0xTCiAg
KiBTaG93ICNXZWJLaXRET01Db21tZW50IG5vZGVzLgogICoKICAqIFNpbmNlOiAyLjYKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwog
I2RlZmluZSBXRUJLSVRfRE9NX05PREVfRklMVEVSX1NIT1dfQ09NTUVOVCAgICAgICAgICAgICAg
ICAweDAwMDAwMDgwCiAKQEAgLTE0OSw2ICsxNzMsOCBAQCBHX0JFR0lOX0RFQ0xTCiAgKiBTaG93
ICNXZWJLaXRET01Eb2N1bWVudCBub2Rlcy4KICAqCiAgKiBTaW5jZTogMi42CisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZp
bmUgV0VCS0lUX0RPTV9OT0RFX0ZJTFRFUl9TSE9XX0RPQ1VNRU5UICAgICAgICAgICAgICAgMHgw
MDAwMDEwMAogCkBAIC0xNTgsNiArMTg0LDggQEAgR19CRUdJTl9ERUNMUwogICogU2hvdyAjV2Vi
S2l0RE9NRG9jdW1lbnRUeXBlIG5vZGVzLgogICoKICAqIFNpbmNlOiAyLjYKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmlu
ZSBXRUJLSVRfRE9NX05PREVfRklMVEVSX1NIT1dfRE9DVU1FTlRfVFlQRSAgICAgICAgICAweDAw
MDAwMjAwCiAKQEAgLTE2Nyw2ICsxOTUsOCBAQCBHX0JFR0lOX0RFQ0xTCiAgKiBTaG93ICNXZWJL
aXRET01Eb2N1bWVudEZyYWdtZW50IG5vZGVzLgogICoKICAqIFNpbmNlOiAyLjYKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2Rl
ZmluZSBXRUJLSVRfRE9NX05PREVfRklMVEVSX1NIT1dfRE9DVU1FTlRfRlJBR01FTlQgICAgICAw
eDAwMDAwNDAwCiAKQEAgLTE3Niw2ICsyMDYsOCBAQCBHX0JFR0lOX0RFQ0xTCiAgKiBTaG93ICNX
ZWJLaXRET01Ob3RhdGlvbiBub2Rlcy4KICAqCiAgKiBTaW5jZTogMi42CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUg
V0VCS0lUX0RPTV9OT0RFX0ZJTFRFUl9TSE9XX05PVEFUSU9OICAgICAgICAgICAgICAgMHgwMDAw
MDgwMAogCkBAIC0xOTMsNyArMjI1LDcgQEAgc3RydWN0IF9XZWJLaXRET01Ob2RlRmlsdGVySWZh
Y2UgewogfTsKIAogCi1XRUJLSVRfQVBJIEdUeXBlIHdlYmtpdF9kb21fbm9kZV9maWx0ZXJfZ2V0
X3R5cGUodm9pZCkgR19HTlVDX0NPTlNUOworV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUgd2Via2l0
X2RvbV9ub2RlX2ZpbHRlcl9nZXRfdHlwZSh2b2lkKSBHX0dOVUNfQ09OU1Q7CiAKIC8qKgogICog
d2Via2l0X2RvbV9ub2RlX2ZpbHRlcl9hY2NlcHRfbm9kZToKQEAgLTIwMSw4ICsyMzMsMTAgQEAg
V0VCS0lUX0FQSSBHVHlwZSB3ZWJraXRfZG9tX25vZGVfZmlsdGVyX2dldF90eXBlKHZvaWQpIEdf
R05VQ19DT05TVDsKICAqIEBub2RlOiBBICNXZWJLaXRET01Ob2RlCiAgKgogICogUmV0dXJuczog
YSAjZ3Nob3J0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ3Nob3J0IHdlYmtpdF9kb21fbm9kZV9maWx0ZXJf
YWNjZXB0X25vZGUoV2ViS2l0RE9NTm9kZUZpbHRlciAqZmlsdGVyLAorV0VCS0lUX0RFUFJFQ0FU
RUQgZ3Nob3J0IHdlYmtpdF9kb21fbm9kZV9maWx0ZXJfYWNjZXB0X25vZGUoV2ViS2l0RE9NTm9k
ZUZpbHRlciAqZmlsdGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXZWJLaXRET01Ob2RlICAgICAgICpub2RlKTsKIAogR19FTkRfREVDTFMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01Ob2RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlR3RrLmNwcApzaW1pbGFyaXR5IGlu
ZGV4IDkxJQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZS5jcHAKcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlR3RrLmNw
cAppbmRleCBkYzc1YjEwNDdmYS4uNWY4NjIyYjY5NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NTm9kZUd0ay5jcHAKQEAgLTIxLDcgKzIxLDYgQEAKICNpbmNsdWRlICJXZWJL
aXRET01Ob2RlLmgiCiAKICNpbmNsdWRlICJDb252ZXJ0VG9VVEY4U3RyaW5nLmgiCi0jaW5jbHVk
ZSAiRE9NT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJHT2JqZWN0RXZlbnRMaXN0ZW5lci5oIgog
I2luY2x1ZGUgIldlYktpdERPTURvY3VtZW50UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdERP
TUVsZW1lbnRQcml2YXRlLmgiCkBAIC0zNCw0MSArMzMsMTIgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L0RPTUV4Y2VwdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSlNO
b2RlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TVkdUZXN0cy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKLSNkZWZpbmUgV0VCS0lUX0RPTV9OT0RF
X0dFVF9QUklWQVRFKG9iaikgR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKG9iaiwgV0VCS0lU
X0RPTV9UWVBFX05PREUsIFdlYktpdERPTU5vZGVQcml2YXRlKQotCi10eXBlZGVmIHN0cnVjdCBf
V2ViS2l0RE9NTm9kZVByaXZhdGUgewotICAgIFJlZlB0cjxXZWJDb3JlOjpOb2RlPiBjb3JlT2Jq
ZWN0OwotfSBXZWJLaXRET01Ob2RlUHJpdmF0ZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVdl
YktpdERPTU5vZGUqIGtpdChXZWJDb3JlOjpOb2RlKiBvYmopCi17Ci0gICAgaWYgKCFvYmopCi0g
ICAgICAgIHJldHVybiAwOwotCi0gICAgaWYgKGdwb2ludGVyIHJldCA9IERPTU9iamVjdENhY2hl
OjpnZXQob2JqKSkKLSAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERShyZXQpOwotCi0gICAg
cmV0dXJuIHdyYXAob2JqKTsKLX0KLQotV2ViQ29yZTo6Tm9kZSogY29yZShXZWJLaXRET01Ob2Rl
KiByZXF1ZXN0KQotewotICAgIHJldHVybiByZXF1ZXN0ID8gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
Tm9kZSo+KFdFQktJVF9ET01fT0JKRUNUKHJlcXVlc3QpLT5jb3JlT2JqZWN0KSA6IDA7Ci19Ci0K
LVdlYktpdERPTU5vZGUqIHdyYXBOb2RlKFdlYkNvcmU6Ok5vZGUqIGNvcmVPYmplY3QpCi17Ci0g
ICAgQVNTRVJUKGNvcmVPYmplY3QpOwotICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUoZ19vYmpl
Y3RfbmV3KFdFQktJVF9ET01fVFlQRV9OT0RFLCAiY29yZS1vYmplY3QiLCBjb3JlT2JqZWN0LCBu
dWxscHRyKSk7Ci19Ci0KLX0KK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwogCiBz
dGF0aWMgZ2Jvb2xlYW4gd2Via2l0X2RvbV9ub2RlX2Rpc3BhdGNoX2V2ZW50KFdlYktpdERPTUV2
ZW50VGFyZ2V0KiB0YXJnZXQsIFdlYktpdERPTUV2ZW50KiBldmVudCwgR0Vycm9yKiogZXJyb3Ip
CiB7CkBAIC05OCwxNSArNjgsMTMgQEAgc3RhdGljIGdib29sZWFuIHdlYmtpdF9kb21fbm9kZV9y
ZW1vdmVfZXZlbnRfbGlzdGVuZXIoV2ViS2l0RE9NRXZlbnRUYXJnZXQqIHRhcmcKICAgICByZXR1
cm4gV2ViS2l0OjpHT2JqZWN0RXZlbnRMaXN0ZW5lcjo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihHX09C
SkVDVCh0YXJnZXQpLCBjb3JlVGFyZ2V0LCBldmVudE5hbWUsIGhhbmRsZXIsIHVzZUNhcHR1cmUp
OwogfQogCi1zdGF0aWMgdm9pZCB3ZWJraXRfZG9tX25vZGVfZG9tX2V2ZW50X3RhcmdldF9pbml0
KFdlYktpdERPTUV2ZW50VGFyZ2V0SWZhY2UqIGlmYWNlKQordm9pZCB3ZWJraXRET01Ob2RlRE9N
RXZlbnRUYXJnZXRJbml0KFdlYktpdERPTUV2ZW50VGFyZ2V0SWZhY2UqIGlmYWNlKQogewogICAg
IGlmYWNlLT5kaXNwYXRjaF9ldmVudCA9IHdlYmtpdF9kb21fbm9kZV9kaXNwYXRjaF9ldmVudDsK
ICAgICBpZmFjZS0+YWRkX2V2ZW50X2xpc3RlbmVyID0gd2Via2l0X2RvbV9ub2RlX2FkZF9ldmVu
dF9saXN0ZW5lcjsKICAgICBpZmFjZS0+cmVtb3ZlX2V2ZW50X2xpc3RlbmVyID0gd2Via2l0X2Rv
bV9ub2RlX3JlbW92ZV9ldmVudF9saXN0ZW5lcjsKIH0KIAotR19ERUZJTkVfVFlQRV9XSVRIX0NP
REUoV2ViS2l0RE9NTm9kZSwgd2Via2l0X2RvbV9ub2RlLCBXRUJLSVRfRE9NX1RZUEVfT0JKRUNU
LCBHX0lNUExFTUVOVF9JTlRFUkZBQ0UoV0VCS0lUX0RPTV9UWVBFX0VWRU5UX1RBUkdFVCwgd2Vi
a2l0X2RvbV9ub2RlX2RvbV9ldmVudF90YXJnZXRfaW5pdCkpCi0KIGVudW0gewogICAgIERPTV9O
T0RFX1BST1BfMCwKICAgICBET01fTk9ERV9QUk9QX05PREVfTkFNRSwKQEAgLTEyNCwxNiArOTIs
NiBAQCBlbnVtIHsKICAgICBET01fTk9ERV9QUk9QX1BBUkVOVF9FTEVNRU5ULAogfTsKIAotc3Rh
dGljIHZvaWQgd2Via2l0X2RvbV9ub2RlX2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKLXsKLSAg
ICBXZWJLaXRET01Ob2RlUHJpdmF0ZSogcHJpdiA9IFdFQktJVF9ET01fTk9ERV9HRVRfUFJJVkFU
RShvYmplY3QpOwotCi0gICAgV2ViS2l0OjpET01PYmplY3RDYWNoZTo6Zm9yZ2V0KHByaXYtPmNv
cmVPYmplY3QuZ2V0KCkpOwotCi0gICAgcHJpdi0+fldlYktpdERPTU5vZGVQcml2YXRlKCk7Ci0g
ICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2RvbV9ub2RlX3BhcmVudF9jbGFzcyktPmZpbmFsaXpl
KG9iamVjdCk7Ci19Ci0KIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fbm9kZV9zZXRfcHJvcGVydHko
R09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLCBjb25zdCBHVmFsdWUqIHZhbHVlLCBH
UGFyYW1TcGVjKiBwc3BlYykKIHsKICAgICBXZWJLaXRET01Ob2RlKiBzZWxmID0gV0VCS0lUX0RP
TV9OT0RFKG9iamVjdCk7CkBAIC0yMDEsMjMgKzE1OSw4IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9k
b21fbm9kZV9nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLCBH
VmFsCiAgICAgfQogfQogCi1zdGF0aWMgR09iamVjdCogd2Via2l0X2RvbV9ub2RlX2NvbnN0cnVj
dG9yKEdUeXBlIHR5cGUsIGd1aW50IGNvbnN0cnVjdFByb3BlcnRpZXNDb3VudCwgR09iamVjdENv
bnN0cnVjdFBhcmFtKiBjb25zdHJ1Y3RQcm9wZXJ0aWVzKQotewotICAgIEdPYmplY3QqIG9iamVj
dCA9IEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9kb21fbm9kZV9wYXJlbnRfY2xhc3MpLT5jb25zdHJ1
Y3Rvcih0eXBlLCBjb25zdHJ1Y3RQcm9wZXJ0aWVzQ291bnQsIGNvbnN0cnVjdFByb3BlcnRpZXMp
OwotCi0gICAgV2ViS2l0RE9NTm9kZVByaXZhdGUqIHByaXYgPSBXRUJLSVRfRE9NX05PREVfR0VU
X1BSSVZBVEUob2JqZWN0KTsKLSAgICBwcml2LT5jb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2Vi
Q29yZTo6Tm9kZSo+KFdFQktJVF9ET01fT0JKRUNUKG9iamVjdCktPmNvcmVPYmplY3QpOwotICAg
IFdlYktpdDo6RE9NT2JqZWN0Q2FjaGU6OnB1dChwcml2LT5jb3JlT2JqZWN0LmdldCgpLCBvYmpl
Y3QpOwotCi0gICAgcmV0dXJuIG9iamVjdDsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X2RvbV9u
b2RlX2NsYXNzX2luaXQoV2ViS2l0RE9NTm9kZUNsYXNzKiByZXF1ZXN0Q2xhc3MpCit2b2lkIHdl
YmtpdERPTU5vZGVJbnN0YWxsUHJvcGVydGllcyhHT2JqZWN0Q2xhc3MqIGdvYmplY3RDbGFzcykK
IHsKLSAgICBHT2JqZWN0Q2xhc3MqIGdvYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKHJlcXVl
c3RDbGFzcyk7Ci0gICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKGdvYmplY3RDbGFzcywgc2l6
ZW9mKFdlYktpdERPTU5vZGVQcml2YXRlKSk7Ci0gICAgZ29iamVjdENsYXNzLT5jb25zdHJ1Y3Rv
ciA9IHdlYmtpdF9kb21fbm9kZV9jb25zdHJ1Y3RvcjsKLSAgICBnb2JqZWN0Q2xhc3MtPmZpbmFs
aXplID0gd2Via2l0X2RvbV9ub2RlX2ZpbmFsaXplOwogICAgIGdvYmplY3RDbGFzcy0+c2V0X3By
b3BlcnR5ID0gd2Via2l0X2RvbV9ub2RlX3NldF9wcm9wZXJ0eTsKICAgICBnb2JqZWN0Q2xhc3Mt
PmdldF9wcm9wZXJ0eSA9IHdlYmtpdF9kb21fbm9kZV9nZXRfcHJvcGVydHk7CiAKQEAgLTM1Mywx
MiArMjk2LDYgQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV9ub2RlX2NsYXNzX2luaXQoV2ViS2l0
RE9NTm9kZUNsYXNzKiByZXF1ZXN0Q2xhc3MpCiAKIH0KIAotc3RhdGljIHZvaWQgd2Via2l0X2Rv
bV9ub2RlX2luaXQoV2ViS2l0RE9NTm9kZSogcmVxdWVzdCkKLXsKLSAgICBXZWJLaXRET01Ob2Rl
UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9ET01fTk9ERV9HRVRfUFJJVkFURShyZXF1ZXN0KTsKLSAg
ICBuZXcgKHByaXYpIFdlYktpdERPTU5vZGVQcml2YXRlKCk7Ci19Ci0KIFdlYktpdERPTU5vZGUq
IHdlYmtpdF9kb21fbm9kZV9pbnNlcnRfYmVmb3JlKFdlYktpdERPTU5vZGUqIHNlbGYsIFdlYktp
dERPTU5vZGUqIG5ld0NoaWxkLCBXZWJLaXRET01Ob2RlKiByZWZDaGlsZCwgR0Vycm9yKiogZXJy
b3IpCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpAQCAtNjk3
LDMgKzYzNCw0IEBAIFdlYktpdERPTUVsZW1lbnQqIHdlYmtpdF9kb21fbm9kZV9nZXRfcGFyZW50
X2VsZW1lbnQoV2ViS2l0RE9NTm9kZSogc2VsZikKICAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29i
amVjdFJlc3VsdC5nZXQoKSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01Ob2RlSXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVJdGVyYXRvci5jcHAK
aW5kZXggN2NkY2U0NjcwYjEuLmRmODBkYjdhYTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUl0ZXJh
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NTm9kZUl0ZXJhdG9yLmNwcApAQCAtMzksNiArMzksOCBAQCB0eXBl
ZGVmIHN0cnVjdCBfV2ViS2l0RE9NTm9kZUl0ZXJhdG9yUHJpdmF0ZSB7CiAgICAgUmVmUHRyPFdl
YkNvcmU6Ok5vZGVJdGVyYXRvcj4gY29yZU9iamVjdDsKIH0gV2ViS2l0RE9NTm9kZUl0ZXJhdG9y
UHJpdmF0ZTsKIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBXZWJLaXRET01Ob2RlSXRlcmF0b3IqIGtpdChXZWJDb3JlOjpOb2RlSXRl
cmF0b3IqIG9iaikKQEAgLTI3MiwzICsyNzQsNCBAQCBnYm9vbGVhbiB3ZWJraXRfZG9tX25vZGVf
aXRlcmF0b3JfZ2V0X3BvaW50ZXJfYmVmb3JlX3JlZmVyZW5jZV9ub2RlKFdlYktpdERPTU5vZAog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01Ob2RlSXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlSXRlcmF0b3IuaAppbmRl
eCA2Yzc5M2M3MTI5My4uZGQ0ZDY1MzdiM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlSXRlcmF0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NTm9kZUl0ZXJhdG9yLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJL
aXRET01Ob2RlSXRlcmF0b3JDbGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50
X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUK
IHdlYmtpdF9kb21fbm9kZV9pdGVyYXRvcl9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01NCw4
ICs1NCwxMCBAQCB3ZWJraXRfZG9tX25vZGVfaXRlcmF0b3JfZ2V0X3R5cGUodm9pZCk7CiAgKiBA
ZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktp
dERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FU
RUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fbm9kZV9pdGVyYXRvcl9uZXh0X25vZGUoV2Vi
S2l0RE9NTm9kZUl0ZXJhdG9yKiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtNjQs
MTYgKzY2LDIwIEBAIHdlYmtpdF9kb21fbm9kZV9pdGVyYXRvcl9uZXh0X25vZGUoV2ViS2l0RE9N
Tm9kZUl0ZXJhdG9yKiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAgKiBAZXJyb3I6ICNHRXJyb3IK
ICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9k
ZSoKIHdlYmtpdF9kb21fbm9kZV9pdGVyYXRvcl9wcmV2aW91c19ub2RlKFdlYktpdERPTU5vZGVJ
dGVyYXRvciogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKICAqIHdlYmtpdF9kb21fbm9k
ZV9pdGVyYXRvcl9kZXRhY2g6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTm9kZUl0ZXJhdG9yCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21fbm9kZV9pdGVyYXRvcl9kZXRhY2goV2ViS2l0RE9NTm9kZUl0ZXJhdG9yKiBzZWxmKTsKIAog
LyoqCkBAIC04MSw4ICs4NywxMCBAQCB3ZWJraXRfZG9tX25vZGVfaXRlcmF0b3JfZGV0YWNoKFdl
YktpdERPTU5vZGVJdGVyYXRvciogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTm9kZUl0
ZXJhdG9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2Rl
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktp
dERPTU5vZGUqCiB3ZWJraXRfZG9tX25vZGVfaXRlcmF0b3JfZ2V0X3Jvb3QoV2ViS2l0RE9NTm9k
ZUl0ZXJhdG9yKiBzZWxmKTsKIAogLyoqCkBAIC05MCw4ICs5OCwxMCBAQCB3ZWJraXRfZG9tX25v
ZGVfaXRlcmF0b3JfZ2V0X3Jvb3QoV2ViS2l0RE9NTm9kZUl0ZXJhdG9yKiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01Ob2RlSXRlcmF0b3IKICAqCiAgKiBSZXR1cm5zOiBBICNndWxvbmcK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Via2l0
X2RvbV9ub2RlX2l0ZXJhdG9yX2dldF93aGF0X3RvX3Nob3coV2ViS2l0RE9NTm9kZUl0ZXJhdG9y
KiBzZWxmKTsKIAogLyoqCkBAIC05OSw4ICsxMDksMTAgQEAgd2Via2l0X2RvbV9ub2RlX2l0ZXJh
dG9yX2dldF93aGF0X3RvX3Nob3coV2ViS2l0RE9NTm9kZUl0ZXJhdG9yKiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01Ob2RlSXRlcmF0b3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
ZnVsbCk6IEEgI1dlYktpdERPTU5vZGVGaWx0ZXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01O
b2RlRmlsdGVyKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZUZpbHRlcioKIHdlYmtp
dF9kb21fbm9kZV9pdGVyYXRvcl9nZXRfZmlsdGVyKFdlYktpdERPTU5vZGVJdGVyYXRvciogc2Vs
Zik7CiAKIC8qKgpAQCAtMTA4LDggKzEyMCwxMCBAQCB3ZWJraXRfZG9tX25vZGVfaXRlcmF0b3Jf
Z2V0X2ZpbHRlcihXZWJLaXRET01Ob2RlSXRlcmF0b3IqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTU5vZGVJdGVyYXRvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAj
V2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQ
UkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9ub2RlX2l0ZXJhdG9yX2dldF9yZWZl
cmVuY2Vfbm9kZShXZWJLaXRET01Ob2RlSXRlcmF0b3IqIHNlbGYpOwogCiAvKioKQEAgLTExNyw4
ICsxMzEsMTAgQEAgd2Via2l0X2RvbV9ub2RlX2l0ZXJhdG9yX2dldF9yZWZlcmVuY2Vfbm9kZShX
ZWJLaXRET01Ob2RlSXRlcmF0b3IqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU5vZGVJ
dGVyYXRvcgogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jv
b2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX25vZGVfaXRlcmF0
b3JfZ2V0X3BvaW50ZXJfYmVmb3JlX3JlZmVyZW5jZV9ub2RlKFdlYktpdERPTU5vZGVJdGVyYXRv
ciogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUxpc3QuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTU5vZGVMaXN0LmNwcAppbmRleCAxODc3OWY0ZDA0OC4uMDk1MjIxOGRkYmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01Ob2RlTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVMaXN0LmNwcApAQCAtMzgsNiArMzgs
OCBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NTm9kZUxpc3RQcml2YXRlIHsKICAgICBSZWZQ
dHI8V2ViQ29yZTo6Tm9kZUxpc3Q+IGNvcmVPYmplY3Q7CiB9IFdlYktpdERPTU5vZGVMaXN0UHJp
dmF0ZTsKIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBXZWJLaXRET01Ob2RlTGlzdCoga2l0KFdlYkNvcmU6Ok5vZGVMaXN0KiBvYmop
CkBAIC0xNTAsMyArMTUyLDQgQEAgZ3Vsb25nIHdlYmtpdF9kb21fbm9kZV9saXN0X2dldF9sZW5n
dGgoV2ViS2l0RE9NTm9kZUxpc3QqIHNlbGYpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorR19H
TlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVMaXN0Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NTm9kZUxpc3QuaAppbmRleCBjYTNlZTI2M2MxMi4uNDE3NWYzODdlNzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01Ob2RlTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlTGlzdC5oCkBAIC00NSw3ICs0NSw3IEBA
IHN0cnVjdCBfV2ViS2l0RE9NTm9kZUxpc3RDbGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xh
c3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FU
RUQgR1R5cGUKIHdlYmtpdF9kb21fbm9kZV9saXN0X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAg
LTU0LDggKzU0LDEwIEBAIHdlYmtpdF9kb21fbm9kZV9saXN0X2dldF90eXBlKHZvaWQpOwogICog
QGluZGV4OiBBICNndWxvbmcKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dl
YktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJF
Q0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fbm9kZV9saXN0X2l0ZW0oV2ViS2l0RE9N
Tm9kZUxpc3QqIHNlbGYsIGd1bG9uZyBpbmRleCk7CiAKIC8qKgpAQCAtNjMsOCArNjUsMTAgQEAg
d2Via2l0X2RvbV9ub2RlX2xpc3RfaXRlbShXZWJLaXRET01Ob2RlTGlzdCogc2VsZiwgZ3Vsb25n
IGluZGV4KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Ob2RlTGlzdAogICoKICAqIFJldHVybnM6
IEEgI2d1bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGd1bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vs
b25nCiB3ZWJraXRfZG9tX25vZGVfbGlzdF9nZXRfbGVuZ3RoKFdlYktpdERPTU5vZGVMaXN0KiBz
ZWxmKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01PYmplY3QuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01PYmpl
Y3QuaAppbmRleCA5YjdiODY3YjQxNi4uZjdmYmM5MzM4YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01PYmpl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NT2JqZWN0LmgKQEAgLTIxLDcgKzIxLDYgQEAKICAqIEJvc3RvbiwgTUEg
MDIxMTAtMTMwMSwgVVNBLgogICovCiAKLQogI2lmbmRlZiBXZWJLaXRET01PYmplY3RfaAogI2Rl
ZmluZSBXZWJLaXRET01PYmplY3RfaAogCkBAIC0zNyw4ICszNiw2IEBAIEdfQkVHSU5fREVDTFMK
ICNkZWZpbmUgV0VCS0lUX0RPTV9JU19PQkpFQ1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tf
Q0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX0RPTV9UWVBFX09CSkVDVCkpCiAjZGVmaW5lIFdF
QktJVF9ET01fT0JKRUNUX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFT
Uygob2JqKSwgIFdFQktJVF9ET01fVFlQRV9PQkpFQ1QsIFdlYktpdERPTU9iamVjdENsYXNzKSkK
IAotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTU9iamVjdFByaXZhdGUgV2ViS2l0RE9NT2JqZWN0
UHJpdmF0ZTsKLQogc3RydWN0IF9XZWJLaXRET01PYmplY3QgewogICAgIEdPYmplY3QgcGFyZW50
SW5zdGFuY2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcml2YXRlR3Rr
LmNwcApzaW1pbGFyaXR5IGluZGV4IDk2JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJpdmF0ZS5jcHAKcmVu
YW1lIHRvIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01Qcml2YXRlR3RrLmNwcAppbmRleCBlNjYxOGFlMzEyNi4uYzU3MmY5MjRmODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01Qcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJpdmF0ZUd0ay5jcHAKQEAg
LTI1LDcgKzI1LDYgQEAKICNpbmNsdWRlICJXZWJLaXRET01Qcml2YXRlLmgiCiAKICNpbmNsdWRl
IDxXZWJDb3JlL0Jsb2IuaD4KLSNpbmNsdWRlICJET01PYmplY3RDYWNoZS5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvRWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRXZlbnQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0V2ZW50VGFyZ2V0Lmg+CkBAIC02MiwxMiArNjEsMTQgQEAKICNpbmNsdWRlICJX
ZWJLaXRET01VSUV2ZW50UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdERPTVdoZWVsRXZlbnRQ
cml2YXRlLmgiCiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTo6SFRNTE5hbWVzOwogCi1XZWJLaXRET01Ob2RlKiB3cmFwKE5vZGUqIG5vZGUpCitX
ZWJLaXRET01Ob2RlKiB3cmFwTm9kZUd0ayhOb2RlKiBub2RlKQogewogICAgIEFTU0VSVChub2Rl
KTsKICAgICBBU1NFUlQobm9kZS0+bm9kZVR5cGUoKSk7CkBAIC03Niw3ICs3Nyw3IEBAIFdlYktp
dERPTU5vZGUqIHdyYXAoTm9kZSogbm9kZSkKICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToK
ICAgICAgICAgaWYgKGlzPEhUTUxFbGVtZW50Pigqbm9kZSkpCiAgICAgICAgICAgICByZXR1cm4g
V0VCS0lUX0RPTV9OT0RFKHdyYXAoZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KG5vZGUpKSk7Ci0gICAg
ICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcEVsZW1lbnQoZG93bmNhc3Q8RWxlbWVudD4o
bm9kZSkpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBOb2RlOjpBVFRSSUJV
VEVfTk9ERToKICAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFwQXR0cihzdGF0aWNf
Y2FzdDxBdHRyKj4obm9kZSkpKTsKICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKQEAgLTkwLDcg
KzkxLDcgQEAgV2ViS2l0RE9NTm9kZSogd3JhcChOb2RlKiBub2RlKQogICAgIGNhc2UgTm9kZTo6
RE9DVU1FTlRfTk9ERToKICAgICAgICAgaWYgKGlzPEhUTUxEb2N1bWVudD4oKm5vZGUpKQogICAg
ICAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFwSFRNTERvY3VtZW50KGRvd25jYXN0
PEhUTUxEb2N1bWVudD4obm9kZSkpKTsKLSAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3
cmFwRG9jdW1lbnQoZG93bmNhc3Q8RG9jdW1lbnQ+KG5vZGUpKSk7CisgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFOgogICAgICAgICByZXR1
cm4gV0VCS0lUX0RPTV9OT0RFKHdyYXBEb2N1bWVudFR5cGUoc3RhdGljX2Nhc3Q8RG9jdW1lbnRU
eXBlKj4obm9kZSkpKTsKICAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CkBA
IC0xNTYsMyArMTU3LDQgQEAgV2ViS2l0RE9NQmxvYiogd3JhcChCbG9iKiBibG9iKQogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01Qcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJpdmF0ZUd0ay5oCnNpbWlsYXJpdHkgaW5k
ZXggNzklCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcml2YXRlLmgKcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcml2YXRlR3Rr
LmgKaW5kZXggMmUxNDk0MmNiMDUuLjE3ZDY3OWM1NmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01Qcml2YXRlR3RrLmgKQEAgLTIxLDEzICsyMSwxMCBAQAogICogIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg
IDAyMTEwLTEzMDEgIFVTQQogICovCiAKLSNpZm5kZWYgV2ViS2l0RE9NUHJpdmF0ZV9oCi0jZGVm
aW5lIFdlYktpdERPTVByaXZhdGVfaAorI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDx3ZWJraXRk
b20vd2Via2l0ZG9tZGVmaW5lcy5oPgorI2luY2x1ZGUgIndlYmtpdGRvbWRlZmluZXMuaCIKIAot
I2RlZmluZSBXRUJLSVRfUEFSQU1fUkVBREFCTEUgKChHUGFyYW1GbGFncykoR19QQVJBTV9SRUFE
QUJMRSB8IEdfUEFSQU1fU1RBVElDX05BTUUgfCBHX1BBUkFNX1NUQVRJQ19OSUNLIHwgR19QQVJB
TV9TVEFUSUNfQkxVUkIpKQotI2RlZmluZSBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFICgoR1BhcmFt
RmxhZ3MpKEdfUEFSQU1fUkVBRFdSSVRFIHwgR19QQVJBTV9TVEFUSUNfTkFNRSB8IEdfUEFSQU1f
U1RBVElDX05JQ0sgfCBHX1BBUkFNX1NUQVRJQ19CTFVSQikpCiAjZGVmaW5lIFdFQktJVF9XQVJO
X0ZFQVRVUkVfTk9UX1BSRVNFTlQoRmVhdHVyZSkgZ193YXJuaW5nKCJXZWJLaXRHVEsrIHdhcyBu
b3QgY29tcGlsZWQgd2l0aCBzdXBwb3J0IGZvciAiIEZlYXR1cmUpOwogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC00MCwxMiArMzcsMTAgQEAgY2xhc3MgQmxvYjsKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogbmFtZXNwYWNlIFdlYktpdCB7Ci1XZWJLaXRET01Ob2RlKiB3cmFwKFdlYkNvcmU6
Ok5vZGUqKTsKK1dlYktpdERPTU5vZGUqIHdyYXBOb2RlR3RrKFdlYkNvcmU6Ok5vZGUqKTsKIFdl
YktpdERPTUV2ZW50KiB3cmFwKFdlYkNvcmU6OkV2ZW50Kik7CiBXZWJLaXRET01TdHlsZVNoZWV0
KiB3cmFwKFdlYkNvcmU6OlN0eWxlU2hlZXQqKTsKIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKiB3
cmFwKFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uKik7CiBXZWJLaXRET01FdmVudFRhcmdldCogd3Jh
cChXZWJDb3JlOjpFdmVudFRhcmdldCopOwogV2ViS2l0RE9NQmxvYiogd3JhcChXZWJDb3JlOjpC
bG9iKik7CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFdlYktpdERPTVByaXZh
dGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJv
Y2Vzc2luZ0luc3RydWN0aW9uLmNwcAppbmRleCBiMTVmZDcxZjEwNy4uZWNjODc4ZTQwNGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24uY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBS
RUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24qIGtpdChXZWJDb3JlOjpQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24qIG9iaikKQEAgLTE2
NiwzICsxNjgsNCBAQCBXZWJLaXRET01TdHlsZVNoZWV0KiB3ZWJraXRfZG9tX3Byb2Nlc3Npbmdf
aW5zdHJ1Y3Rpb25fZ2V0X3NoZWV0KFdlYktpdERPTVByb2NlcwogICAgIHJldHVybiBXZWJLaXQ6
OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVD
QVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVBy
b2Nlc3NpbmdJbnN0cnVjdGlvbi5oCmluZGV4IDAwMTVkYzg0NjhkLi4xZjY3NGY0NThjYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcm9jZXNzaW5n
SW5zdHJ1Y3Rpb24uaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTVByb2Nlc3Np
bmdJbnN0cnVjdGlvbkNsYXNzIHsKICAgICBXZWJLaXRET01DaGFyYWN0ZXJEYXRhQ2xhc3MgcGFy
ZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5
cGUKIHdlYmtpdF9kb21fcHJvY2Vzc2luZ19pbnN0cnVjdGlvbl9nZXRfdHlwZSh2b2lkKTsKIAog
LyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX3Byb2Nlc3NpbmdfaW5zdHJ1Y3Rpb25f
Z2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NUHJvY2Vzc2luZ0luc3RydWN0
aW9uCiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dF
QktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9wcm9jZXNzaW5nX2luc3RydWN0aW9u
X2dldF90YXJnZXQoV2ViS2l0RE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uKiBzZWxmKTsKIAogLyoq
CkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX3Byb2Nlc3NpbmdfaW5zdHJ1Y3Rpb25fZ2V0
X3RhcmdldChXZWJLaXRET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24qIHNlbAogICogQHNlbGY6IEEg
I1dlYktpdERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbgogICoKICAqIFJldHVybnM6ICh0cmFuc2Zl
ciBmdWxsKTogQSAjV2ViS2l0RE9NU3R5bGVTaGVldAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERP
TVN0eWxlU2hlZXQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01TdHlsZVNoZWV0Kgogd2Vi
a2l0X2RvbV9wcm9jZXNzaW5nX2luc3RydWN0aW9uX2dldF9zaGVldChXZWJLaXRET01Qcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24qIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVJh
bmdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01SYW5nZS5jcHAKaW5kZXggODYxZWVmYTU4MTkuLmJlYjQzNWJiMTQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NUmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01SYW5nZS5jcHAKQEAgLTQwLDYgKzQw
LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTVJhbmdlUHJpdmF0ZSB7CiAgICAgUmVmUHRy
PFdlYkNvcmU6OlJhbmdlPiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01SYW5nZVByaXZhdGU7CiAK
K0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogV2ViS2l0RE9NUmFuZ2UqIGtpdChXZWJDb3JlOjpSYW5nZSogb2JqKQpAQCAtNjM1LDMgKzYz
Nyw0IEBAIGdjaGFyKiB3ZWJraXRfZG9tX3JhbmdlX2dldF90ZXh0KFdlYktpdERPTVJhbmdlKiBz
ZWxmKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FU
SU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01SYW5nZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVJhbmdlLmgKaW5kZXggZTYzYTZi
NDRlZDYuLmY4NTcyMjc2N2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUmFuZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUmFu
Z2UuaApAQCAtMzksNDEgKzM5LDU3IEBAIEdfQkVHSU5fREVDTFMKIAogLyoqCiAgKiBXRUJLSVRf
RE9NX1JBTkdFX1NUQVJUX1RPX1NUQVJUOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fUkFOR0Vf
U1RBUlRfVE9fU1RBUlQgMAogCiAvKioKICAqIFdFQktJVF9ET01fUkFOR0VfU1RBUlRfVE9fRU5E
OgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fUkFOR0VfU1RBUlRfVE9fRU5EIDEKIAogLyoqCiAg
KiBXRUJLSVRfRE9NX1JBTkdFX0VORF9UT19FTkQ6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9S
QU5HRV9FTkRfVE9fRU5EIDIKIAogLyoqCiAgKiBXRUJLSVRfRE9NX1JBTkdFX0VORF9UT19TVEFS
VDoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX1JBTkdFX0VORF9UT19TVEFSVCAzCiAKIC8qKgog
ICogV0VCS0lUX0RPTV9SQU5HRV9OT0RFX0JFRk9SRToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9N
X1JBTkdFX05PREVfQkVGT1JFIDAKIAogLyoqCiAgKiBXRUJLSVRfRE9NX1JBTkdFX05PREVfQUZU
RVI6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9SQU5HRV9OT0RFX0FGVEVSIDEKIAogLyoqCiAg
KiBXRUJLSVRfRE9NX1JBTkdFX05PREVfQkVGT1JFX0FORF9BRlRFUjoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBX
RUJLSVRfRE9NX1JBTkdFX05PREVfQkVGT1JFX0FORF9BRlRFUiAyCiAKIC8qKgogICogV0VCS0lU
X0RPTV9SQU5HRV9OT0RFX0lOU0lERToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX1JBTkdFX05P
REVfSU5TSURFIDMKIApAQCAtODUsNyArMTAxLDcgQEAgc3RydWN0IF9XZWJLaXRET01SYW5nZUNs
YXNzIHsKICAgICBXZWJLaXRET01PYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJL
SVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9yYW5nZV9n
ZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC05NSw4ICsxMTEsMTAgQEAgd2Via2l0X2RvbV9yYW5n
ZV9nZXRfdHlwZSh2b2lkKTsKICAqIEBvZmZzZXQ6IEEgI2dsb25nCiAgKiBAZXJyb3I6ICNHRXJy
b3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9yYW5nZV9zZXRfc3RhcnQoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5v
ZGUqIHJlZk5vZGUsIGdsb25nIG9mZnNldCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTEw
Niw4ICsxMjQsMTAgQEAgd2Via2l0X2RvbV9yYW5nZV9zZXRfc3RhcnQoV2ViS2l0RE9NUmFuZ2Uq
IHNlbGYsIFdlYktpdERPTU5vZGUqIHJlZk5vZGUsIGdsb25nIG8KICAqIEBvZmZzZXQ6IEEgI2ds
b25nCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9yYW5nZV9zZXRfZW5kKFdlYktpdERPTVJhbmdl
KiBzZWxmLCBXZWJLaXRET01Ob2RlKiByZWZOb2RlLCBnbG9uZyBvZmZzZXQsIEdFcnJvcioqIGVy
cm9yKTsKIAogLyoqCkBAIC0xMTYsOCArMTM2LDEwIEBAIHdlYmtpdF9kb21fcmFuZ2Vfc2V0X2Vu
ZChXZWJLaXRET01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogcmVmTm9kZSwgZ2xvbmcgb2Zm
CiAgKiBAcmVmTm9kZTogQSAjV2ViS2l0RE9NTm9kZQogICogQGVycm9yOiAjR0Vycm9yCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
cmFuZ2Vfc2V0X3N0YXJ0X2JlZm9yZShXZWJLaXRET01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9k
ZSogcmVmTm9kZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTEyNiw4ICsxNDgsMTAgQEAg
d2Via2l0X2RvbV9yYW5nZV9zZXRfc3RhcnRfYmVmb3JlKFdlYktpdERPTVJhbmdlKiBzZWxmLCBX
ZWJLaXRET01Ob2RlKiByZWZOb2RlLAogICogQHJlZk5vZGU6IEEgI1dlYktpdERPTU5vZGUKICAq
IEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX3JhbmdlX3NldF9zdGFydF9hZnRlcihXZWJLaXRET01SYW5n
ZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogcmVmTm9kZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioK
QEAgLTEzNiw4ICsxNjAsMTAgQEAgd2Via2l0X2RvbV9yYW5nZV9zZXRfc3RhcnRfYWZ0ZXIoV2Vi
S2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJlZk5vZGUsIEcKICAqIEByZWZOb2Rl
OiBBICNXZWJLaXRET01Ob2RlCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9yYW5nZV9zZXRfZW5k
X2JlZm9yZShXZWJLaXRET01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogcmVmTm9kZSwgR0Vy
cm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTE0Niw4ICsxNzIsMTAgQEAgd2Via2l0X2RvbV9yYW5n
ZV9zZXRfZW5kX2JlZm9yZShXZWJLaXRET01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogcmVm
Tm9kZSwgR0UKICAqIEByZWZOb2RlOiBBICNXZWJLaXRET01Ob2RlCiAgKiBAZXJyb3I6ICNHRXJy
b3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9yYW5nZV9zZXRfZW5kX2FmdGVyKFdlYktpdERPTVJhbmdlKiBzZWxmLCBXZWJLaXRE
T01Ob2RlKiByZWZOb2RlLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTU2LDggKzE4NCwx
MCBAQCB3ZWJraXRfZG9tX3JhbmdlX3NldF9lbmRfYWZ0ZXIoV2ViS2l0RE9NUmFuZ2UqIHNlbGYs
IFdlYktpdERPTU5vZGUqIHJlZk5vZGUsIEdFcgogICogQHRvU3RhcnQ6IEEgI2dib29sZWFuCiAg
KiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9yYW5nZV9jb2xsYXBzZShXZWJLaXRET01SYW5nZSogc2Vs
ZiwgZ2Jvb2xlYW4gdG9TdGFydCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTE2Niw4ICsx
OTYsMTAgQEAgd2Via2l0X2RvbV9yYW5nZV9jb2xsYXBzZShXZWJLaXRET01SYW5nZSogc2VsZiwg
Z2Jvb2xlYW4gdG9TdGFydCwgR0Vycm9yKiogZXJyb3IKICAqIEByZWZOb2RlOiBBICNXZWJLaXRE
T01Ob2RlCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9yYW5nZV9zZWxlY3Rfbm9kZShXZWJLaXRE
T01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogcmVmTm9kZSwgR0Vycm9yKiogZXJyb3IpOwog
CiAvKioKQEAgLTE3Niw4ICsyMDgsMTAgQEAgd2Via2l0X2RvbV9yYW5nZV9zZWxlY3Rfbm9kZShX
ZWJLaXRET01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogcmVmTm9kZSwgR0Vycm8KICAqIEBy
ZWZOb2RlOiBBICNXZWJLaXRET01Ob2RlCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9yYW5nZV9z
ZWxlY3Rfbm9kZV9jb250ZW50cyhXZWJLaXRET01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9kZSog
cmVmTm9kZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTE4OCw4ICsyMjIsMTAgQEAgd2Vi
a2l0X2RvbV9yYW5nZV9zZWxlY3Rfbm9kZV9jb250ZW50cyhXZWJLaXRET01SYW5nZSogc2VsZiwg
V2ViS2l0RE9NTm9kZSogcmVmTm8KICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6
IEEgI2dzaG9ydAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdzaG9ydAorV0VCS0lUX0RFUFJFQ0FURUQgZ3No
b3J0CiB3ZWJraXRfZG9tX3JhbmdlX2NvbXBhcmVfYm91bmRhcnlfcG9pbnRzKFdlYktpdERPTVJh
bmdlKiBzZWxmLCBndXNob3J0IGhvdywgV2ViS2l0RE9NUmFuZ2UqIHNvdXJjZVJhbmdlLCBHRXJy
b3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTk3LDggKzIzMywxMCBAQCB3ZWJraXRfZG9tX3Jhbmdl
X2NvbXBhcmVfYm91bmRhcnlfcG9pbnRzKFdlYktpdERPTVJhbmdlKiBzZWxmLCBndXNob3J0IGhv
dywgV2ViSwogICogQHNlbGY6IEEgI1dlYktpdERPTVJhbmdlCiAgKiBAZXJyb3I6ICNHRXJyb3IK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9yYW5nZV9kZWxldGVfY29udGVudHMoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIEdFcnJvcioq
IGVycm9yKTsKIAogLyoqCkBAIC0yMDcsOCArMjQ1LDEwIEBAIHdlYmtpdF9kb21fcmFuZ2VfZGVs
ZXRlX2NvbnRlbnRzKFdlYktpdERPTVJhbmdlKiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAgKiBA
ZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktp
dERPTURvY3VtZW50RnJhZ21lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Eb2N1bWVudEZy
YWdtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudCoKIHdl
YmtpdF9kb21fcmFuZ2VfZXh0cmFjdF9jb250ZW50cyhXZWJLaXRET01SYW5nZSogc2VsZiwgR0Vy
cm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTIxNyw4ICsyNTcsMTAgQEAgd2Via2l0X2RvbV9yYW5n
ZV9leHRyYWN0X2NvbnRlbnRzKFdlYktpdERPTVJhbmdlKiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7
CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEg
I1dlYktpdERPTURvY3VtZW50RnJhZ21lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Eb2N1
bWVudEZyYWdtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVu
dCoKIHdlYmtpdF9kb21fcmFuZ2VfY2xvbmVfY29udGVudHMoV2ViS2l0RE9NUmFuZ2UqIHNlbGYs
IEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0yMjcsOCArMjY5LDEwIEBAIHdlYmtpdF9kb21f
cmFuZ2VfY2xvbmVfY29udGVudHMoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIEdFcnJvcioqIGVycm9y
KTsKICAqIEBuZXdOb2RlOiBBICNXZWJLaXRET01Ob2RlCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9yYW5nZV9pbnNlcnRfbm9kZShXZWJLaXRET01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9kZSog
bmV3Tm9kZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTIzNyw4ICsyODEsMTAgQEAgd2Vi
a2l0X2RvbV9yYW5nZV9pbnNlcnRfbm9kZShXZWJLaXRET01SYW5nZSogc2VsZiwgV2ViS2l0RE9N
Tm9kZSogbmV3Tm9kZSwgR0Vycm8KICAqIEBuZXdQYXJlbnQ6IEEgI1dlYktpdERPTU5vZGUKICAq
IEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX3JhbmdlX3N1cnJvdW5kX2NvbnRlbnRzKFdlYktpdERPTVJh
bmdlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBuZXdQYXJlbnQsIEdFcnJvcioqIGVycm9yKTsKIAog
LyoqCkBAIC0yNDcsOCArMjkzLDEwIEBAIHdlYmtpdF9kb21fcmFuZ2Vfc3Vycm91bmRfY29udGVu
dHMoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5vZGUqIG5ld1BhcmVuCiAgKiBAZXJy
b3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERP
TVJhbmdlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NUmFuZ2UqCitXRUJLSVRfREVQUkVDQVRF
RCBXZWJLaXRET01SYW5nZSoKIHdlYmtpdF9kb21fcmFuZ2VfY2xvbmVfcmFuZ2UoV2ViS2l0RE9N
UmFuZ2UqIHNlbGYsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0yNTcsOCArMzA1LDEwIEBA
IHdlYmtpdF9kb21fcmFuZ2VfY2xvbmVfcmFuZ2UoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIEdFcnJv
cioqIGVycm9yKTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6IEEgI2djaGFy
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtp
dF9kb21fcmFuZ2VfdG9fc3RyaW5nKFdlYktpdERPTVJhbmdlKiBzZWxmLCBHRXJyb3IqKiBlcnJv
cik7CiAKIC8qKgpAQCAtMjY2LDggKzMxNiwxMCBAQCB3ZWJraXRfZG9tX3JhbmdlX3RvX3N0cmlu
ZyhXZWJLaXRET01SYW5nZSogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTVJhbmdlCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9yYW5nZV9kZXRhY2goV2ViS2l0
RE9NUmFuZ2UqIHNlbGYsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0yNzcsOCArMzI5LDEw
IEBAIHdlYmtpdF9kb21fcmFuZ2VfZGV0YWNoKFdlYktpdERPTVJhbmdlKiBzZWxmLCBHRXJyb3Iq
KiBlcnJvcik7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
bm9uZSk6IEEgI1dlYktpdERPTURvY3VtZW50RnJhZ21lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJL
aXRET01Eb2N1bWVudEZyYWdtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRG9jdW1l
bnRGcmFnbWVudCoKIHdlYmtpdF9kb21fcmFuZ2VfY3JlYXRlX2NvbnRleHR1YWxfZnJhZ21lbnQo
V2ViS2l0RE9NUmFuZ2UqIHNlbGYsIGNvbnN0IGdjaGFyKiBodG1sLCBHRXJyb3IqKiBlcnJvcik7
CiAKIC8qKgpAQCAtMjg4LDggKzM0MiwxMCBAQCB3ZWJraXRfZG9tX3JhbmdlX2NyZWF0ZV9jb250
ZXh0dWFsX2ZyYWdtZW50KFdlYktpdERPTVJhbmdlKiBzZWxmLCBjb25zdCBnY2hhciogaAogICog
QGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogQSAjZ3Nob3J0CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ3Nob3J0CitXRUJLSVRfREVQUkVDQVRFRCBnc2hvcnQKIHdlYmtpdF9kb21fcmFuZ2VfY29t
cGFyZV9ub2RlKFdlYktpdERPTVJhbmdlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiByZWZOb2RlLCBH
RXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMjk5LDggKzM1NSwxMCBAQCB3ZWJraXRfZG9tX3Jh
bmdlX2NvbXBhcmVfbm9kZShXZWJLaXRET01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogcmVm
Tm9kZSwgR0VycgogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xl
YW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4K
IHdlYmtpdF9kb21fcmFuZ2VfaW50ZXJzZWN0c19ub2RlKFdlYktpdERPTVJhbmdlKiBzZWxmLCBX
ZWJLaXRET01Ob2RlKiByZWZOb2RlLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMzExLDgg
KzM2OSwxMCBAQCB3ZWJraXRfZG9tX3JhbmdlX2ludGVyc2VjdHNfbm9kZShXZWJLaXRET01SYW5n
ZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogcmVmTm9kZSwgRwogICogQGVycm9yOiAjR0Vycm9yCiAg
KgogICogUmV0dXJuczogQSAjZ3Nob3J0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ3Nob3J0CitXRUJLSVRf
REVQUkVDQVRFRCBnc2hvcnQKIHdlYmtpdF9kb21fcmFuZ2VfY29tcGFyZV9wb2ludChXZWJLaXRE
T01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogcmVmTm9kZSwgZ2xvbmcgb2Zmc2V0LCBHRXJy
b3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMzIzLDggKzM4MywxMCBAQCB3ZWJraXRfZG9tX3Jhbmdl
X2NvbXBhcmVfcG9pbnQoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJlZk5v
ZGUsIGdsbwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4K
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdl
YmtpdF9kb21fcmFuZ2VfaXNfcG9pbnRfaW5fcmFuZ2UoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdl
YktpdERPTU5vZGUqIHJlZk5vZGUsIGdsb25nIG9mZnNldCwgR0Vycm9yKiogZXJyb3IpOwogCiAv
KioKQEAgLTMzMyw4ICszOTUsMTAgQEAgd2Via2l0X2RvbV9yYW5nZV9pc19wb2ludF9pbl9yYW5n
ZShXZWJLaXRET01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogcmVmTm9kZSwKICAqIEBlcnJv
cjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9N
Tm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBX
ZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9yYW5nZV9nZXRfc3RhcnRfY29udGFpbmVyKFdlYktp
dERPTVJhbmdlKiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMzQzLDggKzQwNywx
MCBAQCB3ZWJraXRfZG9tX3JhbmdlX2dldF9zdGFydF9jb250YWluZXIoV2ViS2l0RE9NUmFuZ2Uq
IHNlbGYsIEdFcnJvcioqIGVycm9yKTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVy
bnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGds
b25nCiB3ZWJraXRfZG9tX3JhbmdlX2dldF9zdGFydF9vZmZzZXQoV2ViS2l0RE9NUmFuZ2UqIHNl
bGYsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0zNTMsOCArNDE5LDEwIEBAIHdlYmtpdF9k
b21fcmFuZ2VfZ2V0X3N0YXJ0X29mZnNldChXZWJLaXRET01SYW5nZSogc2VsZiwgR0Vycm9yKiog
ZXJyb3IpOwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5v
bmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dF
QktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX3JhbmdlX2dldF9lbmRf
Y29udGFpbmVyKFdlYktpdERPTVJhbmdlKiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpA
QCAtMzYzLDggKzQzMSwxMCBAQCB3ZWJraXRfZG9tX3JhbmdlX2dldF9lbmRfY29udGFpbmVyKFdl
YktpdERPTVJhbmdlKiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAgKiBAZXJyb3I6ICNHRXJyb3IK
ICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRf
REVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9yYW5nZV9nZXRfZW5kX29mZnNldChXZWJLaXRE
T01SYW5nZSogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTM3Myw4ICs0NDMsMTAg
QEAgd2Via2l0X2RvbV9yYW5nZV9nZXRfZW5kX29mZnNldChXZWJLaXRET01SYW5nZSogc2VsZiwg
R0Vycm9yKiogZXJyb3IpOwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogQSAj
Z2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jv
b2xlYW4KIHdlYmtpdF9kb21fcmFuZ2VfZ2V0X2NvbGxhcHNlZChXZWJLaXRET01SYW5nZSogc2Vs
ZiwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTM4Myw4ICs0NTUsMTAgQEAgd2Via2l0X2Rv
bV9yYW5nZV9nZXRfY29sbGFwc2VkKFdlYktpdERPTVJhbmdlKiBzZWxmLCBHRXJyb3IqKiBlcnJv
cik7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6
IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lU
X0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fcmFuZ2VfZ2V0X2NvbW1vbl9h
bmNlc3Rvcl9jb250YWluZXIoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIEdFcnJvcioqIGVycm9yKTsK
IAogLyoqCkBAIC0zOTIsOCArNDY2LDEwIEBAIHdlYmtpdF9kb21fcmFuZ2VfZ2V0X2NvbW1vbl9h
bmNlc3Rvcl9jb250YWluZXIoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIEdFcnJvcioqIGVyCiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NUmFuZ2UKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX3Jh
bmdlX2dldF90ZXh0KFdlYktpdERPTVJhbmdlKiBzZWxmKTsKIAogLyoqCkBAIC00MDMsOCArNDc5
LDEwIEBAIHdlYmtpdF9kb21fcmFuZ2VfZ2V0X3RleHQoV2ViS2l0RE9NUmFuZ2UqIHNlbGYpOwog
ICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX3JhbmdlX2V4cGFuZChXZWJL
aXRET01SYW5nZSogc2VsZiwgY29uc3QgZ2NoYXIqIHVuaXQsIEdFcnJvcioqIGVycm9yKTsKIAog
R19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01TdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01TdHlsZVNo
ZWV0LmNwcAppbmRleCA0NDMyYTQ5OGM4ZC4uZWIyNDA1ODA3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01T
dHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NU3R5bGVTaGVldC5jcHAKQEAgLTM5LDYgKzM5LDggQEAg
dHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTVN0eWxlU2hlZXRQcml2YXRlIHsKICAgICBSZWZQdHI8
V2ViQ29yZTo6U3R5bGVTaGVldD4gY29yZU9iamVjdDsKIH0gV2ViS2l0RE9NU3R5bGVTaGVldFBy
aXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogV2ViS2l0RE9NU3R5bGVTaGVldCoga2l0KFdlYkNvcmU6OlN0eWxlU2hlZXQq
IG9iaikKQEAgLTMwMywzICszMDUsNCBAQCBXZWJLaXRET01NZWRpYUxpc3QqIHdlYmtpdF9kb21f
c3R5bGVfc2hlZXRfZ2V0X21lZGlhKFdlYktpdERPTVN0eWxlU2hlZXQqIHNlbGYpCiAgICAgcmV0
dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOwogfQogCitHX0dOVUNfRU5EX0lH
Tk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NU3R5bGVTaGVldC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVN0
eWxlU2hlZXQuaAppbmRleCAzZDgyNTEyZDlhNy4uZDZkMjA0MjMwYjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01TdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVN0eWxlU2hlZXQuaApAQCAtNDUsNyArNDUsNyBAQCBz
dHJ1Y3QgX1dlYktpdERPTVN0eWxlU2hlZXRDbGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xh
c3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FU
RUQgR1R5cGUKIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpA
QCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9zdHlsZV9zaGVldF9nZXRfdHlwZSh2b2lkKTsK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01TdHlsZVNoZWV0CiAgKgogICogUmV0dXJuczogQSAjZ2No
YXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Vi
a2l0X2RvbV9zdHlsZV9zaGVldF9nZXRfY29udGVudF90eXBlKFdlYktpdERPTVN0eWxlU2hlZXQq
IHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRf
Z2V0X2NvbnRlbnRfdHlwZShXZWJLaXRET01TdHlsZVNoZWV0KiBzZWxmKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01TdHlsZVNoZWV0CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9k
b21fc3R5bGVfc2hlZXRfZ2V0X2Rpc2FibGVkKFdlYktpdERPTVN0eWxlU2hlZXQqIHNlbGYpOwog
CiAvKioKQEAgLTcxLDggKzc1LDEwIEBAIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfZ2V0X2Rpc2Fi
bGVkKFdlYktpdERPTVN0eWxlU2hlZXQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTVN0
eWxlU2hlZXQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9zdHlsZV9zaGVldF9zZXRfZGlz
YWJsZWQoV2ViS2l0RE9NU3R5bGVTaGVldCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioK
QEAgLTgwLDggKzg2LDEwIEBAIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfc2V0X2Rpc2FibGVkKFdl
YktpdERPTVN0eWxlU2hlZXQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01TdHlsZVNoZWV0CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNX
ZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBS
RUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX3N0eWxlX3NoZWV0X2dldF9vd25lcl9u
b2RlKFdlYktpdERPTVN0eWxlU2hlZXQqIHNlbGYpOwogCiAvKioKQEAgLTg5LDggKzk3LDEwIEBA
IHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfZ2V0X293bmVyX25vZGUoV2ViS2l0RE9NU3R5bGVTaGVl
dCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NU3R5bGVTaGVldAogICoKICAqIFJldHVy
bnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NU3R5bGVTaGVldAorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIFdlYktpdERPTVN0eWxlU2hlZXQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01TdHls
ZVNoZWV0Kgogd2Via2l0X2RvbV9zdHlsZV9zaGVldF9nZXRfcGFyZW50X3N0eWxlX3NoZWV0KFdl
YktpdERPTVN0eWxlU2hlZXQqIHNlbGYpOwogCiAvKioKQEAgLTk4LDggKzEwOCwxMCBAQCB3ZWJr
aXRfZG9tX3N0eWxlX3NoZWV0X2dldF9wYXJlbnRfc3R5bGVfc2hlZXQoV2ViS2l0RE9NU3R5bGVT
aGVldCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NU3R5bGVTaGVldAogICoKICAqIFJl
dHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRF
RCBnY2hhcioKIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfZ2V0X2hyZWYoV2ViS2l0RE9NU3R5bGVT
aGVldCogc2VsZik7CiAKIC8qKgpAQCAtMTA3LDggKzExOSwxMCBAQCB3ZWJraXRfZG9tX3N0eWxl
X3NoZWV0X2dldF9ocmVmKFdlYktpdERPTVN0eWxlU2hlZXQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTVN0eWxlU2hlZXQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX3N0eWxl
X3NoZWV0X2dldF90aXRsZShXZWJLaXRET01TdHlsZVNoZWV0KiBzZWxmKTsKIAogLyoqCkBAIC0x
MTYsOCArMTMwLDEwIEBAIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfZ2V0X3RpdGxlKFdlYktpdERP
TVN0eWxlU2hlZXQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTVN0eWxlU2hlZXQKICAq
CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTU1lZGlhTGlzdAorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIFdlYktpdERPTU1lZGlhTGlzdCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktp
dERPTU1lZGlhTGlzdCoKIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfZ2V0X21lZGlhKFdlYktpdERP
TVN0eWxlU2hlZXQqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVN0eWxl
U2hlZXRMaXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01TdHlsZVNoZWV0TGlzdC5jcHAKaW5kZXggZGFmODhhMmVkNjYu
LjYxZDhkYjY5NjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NU3R5bGVTaGVldExpc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01TdHlsZVNoZWV0TGlzdC5jcHAKQEAgLTM4LDYgKzM4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dl
YktpdERPTVN0eWxlU2hlZXRMaXN0UHJpdmF0ZSB7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlN0eWxl
U2hlZXRMaXN0PiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01TdHlsZVNoZWV0TGlzdFByaXZhdGU7
CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogV2ViS2l0RE9NU3R5bGVTaGVldExpc3QqIGtpdChXZWJDb3JlOjpTdHlsZVNoZWV0TGlz
dCogb2JqKQpAQCAtMTUwLDMgKzE1Miw0IEBAIGd1bG9uZyB3ZWJraXRfZG9tX3N0eWxlX3NoZWV0
X2xpc3RfZ2V0X2xlbmd0aChXZWJLaXRET01TdHlsZVNoZWV0TGlzdCogc2VsZikKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NU3R5bGVTaGVldExpc3QuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01TdHlsZVNoZWV0TGlzdC5oCmluZGV4IDFi
ZTlkYTI0Mzk3Li5kNjQwNDc1YzA3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVN0eWxlU2hlZXRMaXN0LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTVN0eWxlU2hlZXRMaXN0LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJL
aXRET01TdHlsZVNoZWV0TGlzdENsYXNzIHsKICAgICBXZWJLaXRET01PYmplY3RDbGFzcyBwYXJl
bnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlw
ZQogd2Via2l0X2RvbV9zdHlsZV9zaGVldF9saXN0X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAg
LTU0LDggKzU0LDEwIEBAIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfbGlzdF9nZXRfdHlwZSh2b2lk
KTsKICAqIEBpbmRleDogQSAjZ3Vsb25nCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwp
OiBBICNXZWJLaXRET01TdHlsZVNoZWV0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NU3R5bGVT
aGVldCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTVN0eWxlU2hlZXQqCiB3ZWJraXRfZG9t
X3N0eWxlX3NoZWV0X2xpc3RfaXRlbShXZWJLaXRET01TdHlsZVNoZWV0TGlzdCogc2VsZiwgZ3Vs
b25nIGluZGV4KTsKIAogLyoqCkBAIC02Myw4ICs2NSwxMCBAQCB3ZWJraXRfZG9tX3N0eWxlX3No
ZWV0X2xpc3RfaXRlbShXZWJLaXRET01TdHlsZVNoZWV0TGlzdCogc2VsZiwgZ3Vsb25nIGluZGV4
KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01TdHlsZVNoZWV0TGlzdAogICoKICAqIFJldHVybnM6
IEEgI2d1bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGd1bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vs
b25nCiB3ZWJraXRfZG9tX3N0eWxlX3NoZWV0X2xpc3RfZ2V0X2xlbmd0aChXZWJLaXRET01TdHls
ZVNoZWV0TGlzdCogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVGV4dC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NVGV4dC5jcHAKaW5kZXggZGI1ODQ0OTUyZWUuLjk2MjA4N2EyNmMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVRleHQuY3BwCkBAIC0zNSw2ICszNSw4IEBACiAj
aW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVD
X0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJL
aXRET01UZXh0KiBraXQoV2ViQ29yZTo6VGV4dCogb2JqKQpAQCAtMTU3LDMgKzE1OSw0IEBAIGdj
aGFyKiB3ZWJraXRfZG9tX3RleHRfZ2V0X3dob2xlX3RleHQoV2ViS2l0RE9NVGV4dCogc2VsZikK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NVGV4dC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVRleHQuaAppbmRleCA1NGU2MmQ1ZTBkZC4u
NTVmOWY0OWRkYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01UZXh0LmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVRleHQuaApAQCAt
NDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTVRleHRDbGFzcyB7CiAgICAgV2ViS2l0RE9N
Q2hhcmFjdGVyRGF0YUNsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUK
K1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX3RleHRfZ2V0X3R5cGUodm9pZCk7
CiAKIC8qKgpAQCAtNTUsOCArNTUsMTAgQEAgd2Via2l0X2RvbV90ZXh0X2dldF90eXBlKHZvaWQp
OwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBB
ICNXZWJLaXRET01UZXh0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NVGV4dCoKK1dFQktJVF9E
RVBSRUNBVEVEIFdlYktpdERPTVRleHQqCiB3ZWJraXRfZG9tX3RleHRfc3BsaXRfdGV4dChXZWJL
aXRET01UZXh0KiBzZWxmLCBndWxvbmcgb2Zmc2V0LCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpA
QCAtNjQsOCArNjYsMTAgQEAgd2Via2l0X2RvbV90ZXh0X3NwbGl0X3RleHQoV2ViS2l0RE9NVGV4
dCogc2VsZiwgZ3Vsb25nIG9mZnNldCwgR0Vycm9yKiogZXJyb3IpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTVRleHQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX3RleHRfZ2V0X3dob2xl
X3RleHQoV2ViS2l0RE9NVGV4dCogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NVHJlZVdhbGtlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVHJlZVdhbGtlci5jcHAKaW5kZXggMGEzYWY1ZDEyYTgu
Ljg2NzYzOTE0NmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVHJlZVdhbGtlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVRy
ZWVXYWxrZXIuY3BwCkBAIC0zOSw2ICszOSw4IEBAIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01U
cmVlV2Fsa2VyUHJpdmF0ZSB7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlRyZWVXYWxrZXI+IGNvcmVP
YmplY3Q7CiB9IFdlYktpdERPTVRyZWVXYWxrZXJQcml2YXRlOwogCitHX0dOVUNfQkVHSU5fSUdO
T1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTVRyZWVX
YWxrZXIqIGtpdChXZWJDb3JlOjpUcmVlV2Fsa2VyKiBvYmopCkBAIC0zMjAsMyArMzIyLDQgQEAg
dm9pZCB3ZWJraXRfZG9tX3RyZWVfd2Fsa2VyX3NldF9jdXJyZW50X25vZGUoV2ViS2l0RE9NVHJl
ZVdhbGtlciogc2VsZiwgV2ViS2l0RE8KICAgICBpdGVtLT5zZXRDdXJyZW50Tm9kZSgqY29udmVy
dGVkVmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NVHJlZVdhbGtlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVRyZWVXYWxrZXIuaAppbmRleCA4NmY5NjAxMjU1
NC4uMDU3MDhkN2ZjNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01UcmVlV2Fsa2VyLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVRy
ZWVXYWxrZXIuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTVRyZWVXYWxrZXJD
bGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VC
S0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fdHJlZV93
YWxrZXJfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2Rv
bV90cmVlX3dhbGtlcl9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01UcmVl
V2Fsa2VyCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2Rl
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktp
dERPTU5vZGUqCiB3ZWJraXRfZG9tX3RyZWVfd2Fsa2VyX3BhcmVudF9ub2RlKFdlYktpdERPTVRy
ZWVXYWxrZXIqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21fdHJl
ZV93YWxrZXJfcGFyZW50X25vZGUoV2ViS2l0RE9NVHJlZVdhbGtlciogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NVHJlZVdhbGtlcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25l
KTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJL
SVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV90cmVlX3dhbGtlcl9maXJz
dF9jaGlsZChXZWJLaXRET01UcmVlV2Fsa2VyKiBzZWxmKTsKIAogLyoqCkBAIC03MSw4ICs3NSwx
MCBAQCB3ZWJraXRfZG9tX3RyZWVfd2Fsa2VyX2ZpcnN0X2NoaWxkKFdlYktpdERPTVRyZWVXYWxr
ZXIqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTVRyZWVXYWxrZXIKICAqCiAgKiBSZXR1
cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBX
ZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9k
b21fdHJlZV93YWxrZXJfbGFzdF9jaGlsZChXZWJLaXRET01UcmVlV2Fsa2VyKiBzZWxmKTsKIAog
LyoqCkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX3RyZWVfd2Fsa2VyX2xhc3RfY2hpbGQo
V2ViS2l0RE9NVHJlZVdhbGtlciogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVHJlZVdh
bGtlcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRE
T01Ob2RlKgogd2Via2l0X2RvbV90cmVlX3dhbGtlcl9wcmV2aW91c19zaWJsaW5nKFdlYktpdERP
TVRyZWVXYWxrZXIqIHNlbGYpOwogCiAvKioKQEAgLTg5LDggKzk3LDEwIEBAIHdlYmtpdF9kb21f
dHJlZV93YWxrZXJfcHJldmlvdXNfc2libGluZyhXZWJLaXRET01UcmVlV2Fsa2VyKiBzZWxmKTsK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01UcmVlV2Fsa2VyCiAgKgogICogUmV0dXJuczogKHRyYW5z
ZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9k
ZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX3RyZWVfd2Fs
a2VyX25leHRfc2libGluZyhXZWJLaXRET01UcmVlV2Fsa2VyKiBzZWxmKTsKIAogLyoqCkBAIC05
OCw4ICsxMDgsMTAgQEAgd2Via2l0X2RvbV90cmVlX3dhbGtlcl9uZXh0X3NpYmxpbmcoV2ViS2l0
RE9NVHJlZVdhbGtlciogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVHJlZVdhbGtlcgog
ICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2Rl
Kgogd2Via2l0X2RvbV90cmVlX3dhbGtlcl9wcmV2aW91c19ub2RlKFdlYktpdERPTVRyZWVXYWxr
ZXIqIHNlbGYpOwogCiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Via2l0X2RvbV90cmVlX3dh
bGtlcl9wcmV2aW91c19ub2RlKFdlYktpdERPTVRyZWVXYWxrZXIqIHNlbGYpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTVRyZWVXYWxrZXIKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6
IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lU
X0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fdHJlZV93YWxrZXJfbmV4dF9u
b2RlKFdlYktpdERPTVRyZWVXYWxrZXIqIHNlbGYpOwogCiAvKioKQEAgLTExNiw4ICsxMzAsMTAg
QEAgd2Via2l0X2RvbV90cmVlX3dhbGtlcl9uZXh0X25vZGUoV2ViS2l0RE9NVHJlZVdhbGtlciog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVHJlZVdhbGtlcgogICoKICAqIFJldHVybnM6
ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktp
dERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV90
cmVlX3dhbGtlcl9nZXRfcm9vdChXZWJLaXRET01UcmVlV2Fsa2VyKiBzZWxmKTsKIAogLyoqCkBA
IC0xMjUsOCArMTQxLDEwIEBAIHdlYmtpdF9kb21fdHJlZV93YWxrZXJfZ2V0X3Jvb3QoV2ViS2l0
RE9NVHJlZVdhbGtlciogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVHJlZVdhbGtlcgog
ICoKICAqIFJldHVybnM6IEEgI2d1bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGd1bG9uZworV0VCS0lU
X0RFUFJFQ0FURUQgZ3Vsb25nCiB3ZWJraXRfZG9tX3RyZWVfd2Fsa2VyX2dldF93aGF0X3RvX3No
b3coV2ViS2l0RE9NVHJlZVdhbGtlciogc2VsZik7CiAKIC8qKgpAQCAtMTM0LDggKzE1MiwxMCBA
QCB3ZWJraXRfZG9tX3RyZWVfd2Fsa2VyX2dldF93aGF0X3RvX3Nob3coV2ViS2l0RE9NVHJlZVdh
bGtlciogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVHJlZVdhbGtlcgogICoKICAqIFJl
dHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NTm9kZUZpbHRlcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIFdlYktpdERPTU5vZGVGaWx0ZXIqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01O
b2RlRmlsdGVyKgogd2Via2l0X2RvbV90cmVlX3dhbGtlcl9nZXRfZmlsdGVyKFdlYktpdERPTVRy
ZWVXYWxrZXIqIHNlbGYpOwogCiAvKioKQEAgLTE0Myw4ICsxNjMsMTAgQEAgd2Via2l0X2RvbV90
cmVlX3dhbGtlcl9nZXRfZmlsdGVyKFdlYktpdERPTVRyZWVXYWxrZXIqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTVRyZWVXYWxrZXIKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9u
ZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VC
S0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fdHJlZV93YWxrZXJfZ2V0
X2N1cnJlbnRfbm9kZShXZWJLaXRET01UcmVlV2Fsa2VyKiBzZWxmKTsKIAogLyoqCkBAIC0xNTMs
OCArMTc1LDEwIEBAIHdlYmtpdF9kb21fdHJlZV93YWxrZXJfZ2V0X2N1cnJlbnRfbm9kZShXZWJL
aXRET01UcmVlV2Fsa2VyKiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NTm9kZQogICog
QGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21fdHJlZV93YWxrZXJfc2V0X2N1cnJlbnRfbm9kZShXZWJLaXRE
T01UcmVlV2Fsa2VyKiBzZWxmLCBXZWJLaXRET01Ob2RlKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3Ip
OwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVVJRXZlbnQuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVVJRXZl
bnQuY3BwCmluZGV4IGIwMDhjNGYwNjY0Li45YWUwMTIzOWE4MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVVJ
RXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01VSUV2ZW50LmNwcApAQCAtMzQsNiArMzQsOCBAQAogI2luY2x1
ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJ
Tl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9N
VUlFdmVudCoga2l0KFdlYkNvcmU6OlVJRXZlbnQqIG9iaikKQEAgLTI3NywzICsyNzksNCBAQCBn
bG9uZyB3ZWJraXRfZG9tX3VpX2V2ZW50X2dldF9wYWdlX3koV2ViS2l0RE9NVUlFdmVudCogc2Vs
ZikKICAgICBnbG9uZyByZXN1bHQgPSBpdGVtLT5wYWdlWSgpOwogICAgIHJldHVybiByZXN1bHQ7
CiB9CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVUlF
dmVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTVVJRXZlbnQuaAppbmRleCA3ZjAzZTY1ODRhZS4uN2Q5OGNlMThkYjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01VSUV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVVJRXZlbnQuaApAQCAtNDUsNyArNDUs
NyBAQCBzdHJ1Y3QgX1dlYktpdERPTVVJRXZlbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NRXZlbnRD
bGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVD
QVRFRCBHVHlwZQogd2Via2l0X2RvbV91aV9ldmVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBA
IC01Nyw4ICs1NywxMCBAQCB3ZWJraXRfZG9tX3VpX2V2ZW50X2dldF90eXBlKHZvaWQpOwogICog
QHZpZXc6IEEgI1dlYktpdERPTURPTVdpbmRvdwogICogQGRldGFpbDogQSAjZ2xvbmcKICAqCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV91
aV9ldmVudF9pbml0X3VpX2V2ZW50KFdlYktpdERPTVVJRXZlbnQqIHNlbGYsIGNvbnN0IGdjaGFy
KiB0eXBlLCBnYm9vbGVhbiBjYW5CdWJibGUsIGdib29sZWFuIGNhbmNlbGFibGUsIFdlYktpdERP
TURPTVdpbmRvdyogdmlldywgZ2xvbmcgZGV0YWlsKTsKIAogLyoqCkBAIC02Niw4ICs2OCwxMCBA
QCB3ZWJraXRfZG9tX3VpX2V2ZW50X2luaXRfdWlfZXZlbnQoV2ViS2l0RE9NVUlFdmVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIHR5cGUsIGdibwogICogQHNlbGY6IEEgI1dlYktpdERPTVVJRXZlbnQK
ICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTURPTVdpbmRvdwor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIFdlYktpdERPTURPTVdpbmRvdyoKK1dFQktJVF9ERVBSRUNBVEVEIFdl
YktpdERPTURPTVdpbmRvdyoKIHdlYmtpdF9kb21fdWlfZXZlbnRfZ2V0X3ZpZXcoV2ViS2l0RE9N
VUlFdmVudCogc2VsZik7CiAKIC8qKgpAQCAtNzUsOCArNzksMTAgQEAgd2Via2l0X2RvbV91aV9l
dmVudF9nZXRfdmlldyhXZWJLaXRET01VSUV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01VSUV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fdWlfZXZlbnRfZ2V0X2Rl
dGFpbChXZWJLaXRET01VSUV2ZW50KiBzZWxmKTsKIAogLyoqCkBAIC04NCw4ICs5MCwxMCBAQCB3
ZWJraXRfZG9tX3VpX2V2ZW50X2dldF9kZXRhaWwoV2ViS2l0RE9NVUlFdmVudCogc2VsZik7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NVUlFdmVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9t
X3VpX2V2ZW50X2dldF9rZXlfY29kZShXZWJLaXRET01VSUV2ZW50KiBzZWxmKTsKIAogLyoqCkBA
IC05Myw4ICsxMDEsMTAgQEAgd2Via2l0X2RvbV91aV9ldmVudF9nZXRfa2V5X2NvZGUoV2ViS2l0
RE9NVUlFdmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVUlFdmVudAogICoKICAq
IFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNB
VEVEIGdsb25nCiB3ZWJraXRfZG9tX3VpX2V2ZW50X2dldF9jaGFyX2NvZGUoV2ViS2l0RE9NVUlF
dmVudCogc2VsZik7CiAKIC8qKgpAQCAtMTAyLDggKzExMiwxMCBAQCB3ZWJraXRfZG9tX3VpX2V2
ZW50X2dldF9jaGFyX2NvZGUoV2ViS2l0RE9NVUlFdmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NVUlFdmVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX3VpX2V2ZW50X2dl
dF9sYXllcl94KFdlYktpdERPTVVJRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTExMSw4ICsxMjMs
MTAgQEAgd2Via2l0X2RvbV91aV9ldmVudF9nZXRfbGF5ZXJfeChXZWJLaXRET01VSUV2ZW50KiBz
ZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01VSUV2ZW50CiAgKgogICogUmV0dXJuczogQSAj
Z2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdl
YmtpdF9kb21fdWlfZXZlbnRfZ2V0X2xheWVyX3koV2ViS2l0RE9NVUlFdmVudCogc2VsZik7CiAK
IC8qKgpAQCAtMTIwLDggKzEzNCwxMCBAQCB3ZWJraXRfZG9tX3VpX2V2ZW50X2dldF9sYXllcl95
KFdlYktpdERPTVVJRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTVVJRXZlbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRf
REVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV91aV9ldmVudF9nZXRfcGFnZV94KFdlYktpdERP
TVVJRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTEyOSw4ICsxNDUsMTAgQEAgd2Via2l0X2RvbV91
aV9ldmVudF9nZXRfcGFnZV94KFdlYktpdERPTVVJRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTVVJRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV91aV9ldmVudF9n
ZXRfcGFnZV95KFdlYktpdERPTVVJRXZlbnQqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTVdoZWVsRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVdoZWVsRXZlbnQuY3BwCmluZGV4IDVjNGEw
OWE4Mzk3Li4wZTFiYTZkYTU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVdoZWVsRXZlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01XaGVlbEV2ZW50LmNwcApAQCAtMzMsNiArMzMsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQ
UkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NV2hlZWxFdmVudCog
a2l0KFdlYkNvcmU6OldoZWVsRXZlbnQqIG9iaikKQEAgLTE1OSwzICsxNjEsNCBAQCBnbG9uZyB3
ZWJraXRfZG9tX3doZWVsX2V2ZW50X2dldF93aGVlbF9kZWx0YShXZWJLaXRET01XaGVlbEV2ZW50
KiBzZWxmKQogICAgIGdsb25nIHJlc3VsdCA9IGl0ZW0tPndoZWVsRGVsdGEoKTsKICAgICByZXR1
cm4gcmVzdWx0OwogfQorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTVdoZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01XaGVlbEV2ZW50LmgKaW5kZXggZmEyZjQ4NWEwZjQu
LjEyODUyZjUzZWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NV2hlZWxFdmVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01XaGVl
bEV2ZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01XaGVlbEV2ZW50Q2xh
c3MgewogICAgIFdlYktpdERPTU1vdXNlRXZlbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1X
RUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV93aGVl
bF9ldmVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC02Myw4ICs2MywxMCBAQCB3ZWJraXRf
ZG9tX3doZWVsX2V2ZW50X2dldF90eXBlKHZvaWQpOwogICogQHNoaWZ0S2V5OiBBICNnYm9vbGVh
bgogICogQG1ldGFLZXk6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fd2hlZWxfZXZlbnRfaW5pdF93aGVlbF9l
dmVudChXZWJLaXRET01XaGVlbEV2ZW50KiBzZWxmLCBnbG9uZyB3aGVlbERlbHRhWCwgZ2xvbmcg
d2hlZWxEZWx0YVksIFdlYktpdERPTURPTVdpbmRvdyogdmlldywgZ2xvbmcgc2NyZWVuWCwgZ2xv
bmcgc2NyZWVuWSwgZ2xvbmcgY2xpZW50WCwgZ2xvbmcgY2xpZW50WSwgZ2Jvb2xlYW4gY3RybEtl
eSwgZ2Jvb2xlYW4gYWx0S2V5LCBnYm9vbGVhbiBzaGlmdEtleSwgZ2Jvb2xlYW4gbWV0YUtleSk7
CiAKIC8qKgpAQCAtNzIsOCArNzQsMTAgQEAgd2Via2l0X2RvbV93aGVlbF9ldmVudF9pbml0X3do
ZWVsX2V2ZW50KFdlYktpdERPTVdoZWVsRXZlbnQqIHNlbGYsIGdsb25nIHdoZWVsRGUKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01XaGVlbEV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21f
d2hlZWxfZXZlbnRfZ2V0X3doZWVsX2RlbHRhX3goV2ViS2l0RE9NV2hlZWxFdmVudCogc2VsZik7
CiAKIC8qKgpAQCAtODEsOCArODUsMTAgQEAgd2Via2l0X2RvbV93aGVlbF9ldmVudF9nZXRfd2hl
ZWxfZGVsdGFfeChXZWJLaXRET01XaGVlbEV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01XaGVlbEV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fd2hlZWxfZXZlbnRf
Z2V0X3doZWVsX2RlbHRhX3koV2ViS2l0RE9NV2hlZWxFdmVudCogc2VsZik7CiAKIC8qKgpAQCAt
OTAsOCArOTYsMTAgQEAgd2Via2l0X2RvbV93aGVlbF9ldmVudF9nZXRfd2hlZWxfZGVsdGFfeShX
ZWJLaXRET01XaGVlbEV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01XaGVlbEV2
ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VC
S0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fd2hlZWxfZXZlbnRfZ2V0X3doZWVsX2Rl
bHRhKFdlYktpdERPTVdoZWVsRXZlbnQqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTVhQYXRoRXhwcmVzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhFeHByZXNzaW9uLmNwcAppbmRl
eCAxNDZhOTZhMzdiMC4uOTYyYjZlNDI2NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01YUGF0aEV4cHJlc3Np
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01YUGF0aEV4cHJlc3Npb24uY3BwCkBAIC0zOSw2ICszOSw4IEBAIHR5
cGVkZWYgc3RydWN0IF9XZWJLaXRET01YUGF0aEV4cHJlc3Npb25Qcml2YXRlIHsKICAgICBSZWZQ
dHI8V2ViQ29yZTo6WFBhdGhFeHByZXNzaW9uPiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01YUGF0
aEV4cHJlc3Npb25Qcml2YXRlOwogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsK
KwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTVhQYXRoRXhwcmVzc2lvbioga2l0KFdl
YkNvcmU6OlhQYXRoRXhwcmVzc2lvbiogb2JqKQpAQCAtMTIxLDMgKzEyMyw0IEBAIFdlYktpdERP
TVhQYXRoUmVzdWx0KiB3ZWJraXRfZG9tX3hwYXRoX2V4cHJlc3Npb25fZXZhbHVhdGUoV2ViS2l0
RE9NWFBhdGhFeHByZXNzCiAgICAgcmV0dXJuIFdlYktpdDo6a2l0KHJlc3VsdC5yZWxlYXNlUmV0
dXJuVmFsdWUoKS5wdHIoKSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01YUGF0aEV4cHJlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01YUGF0aEV4cHJlc3Npb24u
aAppbmRleCBlZDdkM2UwMzViMS4uYjFjOTA3NTYyNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01YUGF0aEV4
cHJlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhFeHByZXNzaW9uLmgKQEAgLTQ1LDcgKzQ1LDcgQEAg
c3RydWN0IF9XZWJLaXRET01YUGF0aEV4cHJlc3Npb25DbGFzcyB7CiAgICAgV2ViS2l0RE9NT2Jq
ZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RF
UFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21feHBhdGhfZXhwcmVzc2lvbl9nZXRfdHlwZSh2b2lk
KTsKIAogLyoqCkBAIC01Nyw4ICs1NywxMCBAQCB3ZWJraXRfZG9tX3hwYXRoX2V4cHJlc3Npb25f
Z2V0X3R5cGUodm9pZCk7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJh
bnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTVhQYXRoUmVzdWx0CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2Vi
S2l0RE9NWFBhdGhSZXN1bHQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01YUGF0aFJlc3Vs
dCoKIHdlYmtpdF9kb21feHBhdGhfZXhwcmVzc2lvbl9ldmFsdWF0ZShXZWJLaXRET01YUGF0aEV4
cHJlc3Npb24qIHNlbGYsIFdlYktpdERPTU5vZGUqIGNvbnRleHROb2RlLCBndXNob3J0IHR5cGUs
IFdlYktpdERPTVhQYXRoUmVzdWx0KiBpblJlc3VsdCwgR0Vycm9yKiogZXJyb3IpOwogCiBHX0VO
RF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVhQYXRoTlNSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhO
U1Jlc29sdmVyLmNwcAppbmRleCBjNGJlMzlhMDhkZS4uZmU5NzI5ODAxZjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01YUGF0aE5TUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01YUGF0aE5TUmVzb2x2ZXIuY3BwCkBA
IC0yOCw2ICsyOCw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIHR5cGVkZWYg
V2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVySWZhY2UgV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVySW50
ZXJmYWNlOwogCiBHX0RFRklORV9JTlRFUkZBQ0UoV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyLCB3
ZWJraXRfZG9tX3hwYXRoX25zX3Jlc29sdmVyLCBHX1RZUEVfT0JKRUNUKQpAQCAtMTM4LDMgKzE0
MCw0IEBAIFdlYkNvcmU6OlhQYXRoTlNSZXNvbHZlciogY29yZShXZWJLaXRET01OYXRpdmVYUGF0
aE5TUmVzb2x2ZXIqIHhQYXRoTlNSZXNvbHZlcikKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhO
U1Jlc29sdmVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyLmgKaW5kZXggMmMxNjQ2ZDdkZWMuLjFm
MjdiOTJiMDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVhQ
YXRoTlNSZXNvbHZlci5oCkBAIC00NCw3ICs0NCw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NWFBhdGhO
U1Jlc29sdmVySWZhY2UgewogfTsKIAogCi1XRUJLSVRfQVBJIEdUeXBlIHdlYmtpdF9kb21feHBh
dGhfbnNfcmVzb2x2ZXJfZ2V0X3R5cGUodm9pZCkgR19HTlVDX0NPTlNUOworV0VCS0lUX0RFUFJF
Q0FURUQgR1R5cGUgd2Via2l0X2RvbV94cGF0aF9uc19yZXNvbHZlcl9nZXRfdHlwZSh2b2lkKSBH
X0dOVUNfQ09OU1Q7CiAKIC8qKgogICogd2Via2l0X2RvbV94cGF0aF9uc19yZXNvbHZlcl9sb29r
dXBfbmFtZXNwYWNlX3VyaToKQEAgLTUyLDggKzUyLDEwIEBAIFdFQktJVF9BUEkgR1R5cGUgd2Vi
a2l0X2RvbV94cGF0aF9uc19yZXNvbHZlcl9nZXRfdHlwZSh2b2lkKSBHX0dOVUNfQ09OU1Q7CiAg
KiBAcHJlZml4OiBUaGUgcHJlZml4IHRvIGxvb2t1cAogICoKICAqIFJldHVybnM6ICh0cmFuc2Zl
ciBmdWxsKTogYSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnY2hhciAqd2Via2l0X2RvbV94cGF0
aF9uc19yZXNvbHZlcl9sb29rdXBfbmFtZXNwYWNlX3VyaShXZWJLaXRET01YUGF0aE5TUmVzb2x2
ZXIgKnJlc29sdmVyLAorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIgKndlYmtpdF9kb21feHBhdGhf
bnNfcmVzb2x2ZXJfbG9va3VwX25hbWVzcGFjZV91cmkoV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVy
ICpyZXNvbHZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgICpwcmVmaXgp
OwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVhQYXRoUmVzdWx0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Y
UGF0aFJlc3VsdC5jcHAKaW5kZXggYWQzNmI3NWQxNjYuLjJjMDZhOTVmYWFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NWFBhdGhSZXN1bHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01YUGF0aFJlc3VsdC5jcHAKQEAgLTM4LDYg
KzM4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTVhQYXRoUmVzdWx0UHJpdmF0ZSB7CiAg
ICAgUmVmUHRyPFdlYkNvcmU6OlhQYXRoUmVzdWx0PiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01Y
UGF0aFJlc3VsdFByaXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwor
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NWFBhdGhSZXN1bHQqIGtpdChXZWJDb3Jl
OjpYUGF0aFJlc3VsdCogb2JqKQpAQCAtMzM1LDMgKzMzNyw0IEBAIGd1bG9uZyB3ZWJraXRfZG9t
X3hwYXRoX3Jlc3VsdF9nZXRfc25hcHNob3RfbGVuZ3RoKFdlYktpdERPTVhQYXRoUmVzdWx0KiBz
ZWxmLCBHCiAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKIH0KIAorR19H
TlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVhQYXRoUmVzdWx0
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NWFBhdGhSZXN1bHQuaAppbmRleCA3NzAzZjg2MTkxZi4uZjk4NTAyODgyMTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01YUGF0aFJlc3VsdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01YUGF0aFJlc3VsdC5oCkBAIC0z
OSw1MSArMzksNzEgQEAgR19CRUdJTl9ERUNMUwogCiAvKioKICAqIFdFQktJVF9ET01fWFBBVEhf
UkVTVUxUX0FOWV9UWVBFOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fWFBBVEhfUkVTVUxUX0FO
WV9UWVBFIDAKIAogLyoqCiAgKiBXRUJLSVRfRE9NX1hQQVRIX1JFU1VMVF9OVU1CRVJfVFlQRToK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX1hQQVRIX1JFU1VMVF9OVU1CRVJfVFlQRSAxCiAKIC8q
KgogICogV0VCS0lUX0RPTV9YUEFUSF9SRVNVTFRfU1RSSU5HX1RZUEU6CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUg
V0VCS0lUX0RPTV9YUEFUSF9SRVNVTFRfU1RSSU5HX1RZUEUgMgogCiAvKioKICAqIFdFQktJVF9E
T01fWFBBVEhfUkVTVUxUX0JPT0xFQU5fVFlQRToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX1hQ
QVRIX1JFU1VMVF9CT09MRUFOX1RZUEUgMwogCiAvKioKICAqIFdFQktJVF9ET01fWFBBVEhfUkVT
VUxUX1VOT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZUEU6CisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RP
TV9YUEFUSF9SRVNVTFRfVU5PUkRFUkVEX05PREVfSVRFUkFUT1JfVFlQRSA0CiAKIC8qKgogICog
V0VCS0lUX0RPTV9YUEFUSF9SRVNVTFRfT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZUEU6CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8K
ICNkZWZpbmUgV0VCS0lUX0RPTV9YUEFUSF9SRVNVTFRfT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZ
UEUgNQogCiAvKioKICAqIFdFQktJVF9ET01fWFBBVEhfUkVTVUxUX1VOT1JERVJFRF9OT0RFX1NO
QVBTSE9UX1RZUEU6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9YUEFUSF9SRVNVTFRfVU5PUkRF
UkVEX05PREVfU05BUFNIT1RfVFlQRSA2CiAKIC8qKgogICogV0VCS0lUX0RPTV9YUEFUSF9SRVNV
TFRfT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEU6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9Y
UEFUSF9SRVNVTFRfT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUgNwogCiAvKioKICAqIFdFQktJ
VF9ET01fWFBBVEhfUkVTVUxUX0FOWV9VTk9SREVSRURfTk9ERV9UWVBFOgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5l
IFdFQktJVF9ET01fWFBBVEhfUkVTVUxUX0FOWV9VTk9SREVSRURfTk9ERV9UWVBFIDgKIAogLyoq
CiAgKiBXRUJLSVRfRE9NX1hQQVRIX1JFU1VMVF9GSVJTVF9PUkRFUkVEX05PREVfVFlQRToKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAq
LwogI2RlZmluZSBXRUJLSVRfRE9NX1hQQVRIX1JFU1VMVF9GSVJTVF9PUkRFUkVEX05PREVfVFlQ
RSA5CiAKQEAgLTk1LDcgKzExNSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NWFBhdGhSZXN1bHRDbGFz
cyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lU
X0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21feHBhdGhfcmVz
dWx0X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTEwNCw4ICsxMjQsMTAgQEAgd2Via2l0X2Rv
bV94cGF0aF9yZXN1bHRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAg
KiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdl
YmtpdF9kb21feHBhdGhfcmVzdWx0X2l0ZXJhdGVfbmV4dChXZWJLaXRET01YUGF0aFJlc3VsdCog
c2VsZiwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTExNSw4ICsxMzcsMTAgQEAgd2Via2l0
X2RvbV94cGF0aF9yZXN1bHRfaXRlcmF0ZV9uZXh0KFdlYktpdERPTVhQYXRoUmVzdWx0KiBzZWxm
LCBHRXJyb3IqKiBlcnJvcikKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0
cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERP
TU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV94cGF0
aF9yZXN1bHRfc25hcHNob3RfaXRlbShXZWJLaXRET01YUGF0aFJlc3VsdCogc2VsZiwgZ3Vsb25n
IGluZGV4LCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTI0LDggKzE0OCwxMCBAQCB3ZWJr
aXRfZG9tX3hwYXRoX3Jlc3VsdF9zbmFwc2hvdF9pdGVtKFdlYktpdERPTVhQYXRoUmVzdWx0KiBz
ZWxmLCBndWxvbmcgaW5kZXgsCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NWFBhdGhSZXN1bHQKICAq
CiAgKiBSZXR1cm5zOiBBICNndXNob3J0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ3VzaG9ydAorV0VCS0lU
X0RFUFJFQ0FURUQgZ3VzaG9ydAogd2Via2l0X2RvbV94cGF0aF9yZXN1bHRfZ2V0X3Jlc3VsdF90
eXBlKFdlYktpdERPTVhQYXRoUmVzdWx0KiBzZWxmKTsKIAogLyoqCkBAIC0xMzQsOCArMTYwLDEw
IEBAIHdlYmtpdF9kb21feHBhdGhfcmVzdWx0X2dldF9yZXN1bHRfdHlwZShXZWJLaXRET01YUGF0
aFJlc3VsdCogc2VsZik7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiBBICNn
ZG91YmxlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2RvdWJsZQorV0VCS0lUX0RFUFJFQ0FURUQgZ2RvdWJs
ZQogd2Via2l0X2RvbV94cGF0aF9yZXN1bHRfZ2V0X251bWJlcl92YWx1ZShXZWJLaXRET01YUGF0
aFJlc3VsdCogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTE0NCw4ICsxNzIsMTAg
QEAgd2Via2l0X2RvbV94cGF0aF9yZXN1bHRfZ2V0X251bWJlcl92YWx1ZShXZWJLaXRET01YUGF0
aFJlc3VsdCogc2VsZiwgR0Vycm9yKiogZXIKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJl
dHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRF
RCBnY2hhcioKIHdlYmtpdF9kb21feHBhdGhfcmVzdWx0X2dldF9zdHJpbmdfdmFsdWUoV2ViS2l0
RE9NWFBhdGhSZXN1bHQqIHNlbGYsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xNTQsOCAr
MTg0LDEwIEBAIHdlYmtpdF9kb21feHBhdGhfcmVzdWx0X2dldF9zdHJpbmdfdmFsdWUoV2ViS2l0
RE9NWFBhdGhSZXN1bHQqIHNlbGYsIEdFcnJvcioqIGVyCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAq
CiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJL
SVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV94cGF0aF9yZXN1bHRfZ2V0X2Jvb2xl
YW5fdmFsdWUoV2ViS2l0RE9NWFBhdGhSZXN1bHQqIHNlbGYsIEdFcnJvcioqIGVycm9yKTsKIAog
LyoqCkBAIC0xNjQsOCArMTk2LDEwIEBAIHdlYmtpdF9kb21feHBhdGhfcmVzdWx0X2dldF9ib29s
ZWFuX3ZhbHVlKFdlYktpdERPTVhQYXRoUmVzdWx0KiBzZWxmLCBHRXJyb3IqKiBlCiAgKiBAZXJy
b3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERP
TU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQg
V2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21feHBhdGhfcmVzdWx0X2dldF9zaW5nbGVfbm9kZV92
YWx1ZShXZWJLaXRET01YUGF0aFJlc3VsdCogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioK
QEAgLTE3Myw4ICsyMDcsMTAgQEAgd2Via2l0X2RvbV94cGF0aF9yZXN1bHRfZ2V0X3NpbmdsZV9u
b2RlX3ZhbHVlKFdlYktpdERPTVhQYXRoUmVzdWx0KiBzZWxmLCBHRXJyb3IKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01YUGF0aFJlc3VsdAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRf
ZG9tX3hwYXRoX3Jlc3VsdF9nZXRfaW52YWxpZF9pdGVyYXRvcl9zdGF0ZShXZWJLaXRET01YUGF0
aFJlc3VsdCogc2VsZik7CiAKIC8qKgpAQCAtMTgzLDggKzIxOSwxMCBAQCB3ZWJraXRfZG9tX3hw
YXRoX3Jlc3VsdF9nZXRfaW52YWxpZF9pdGVyYXRvcl9zdGF0ZShXZWJLaXRET01YUGF0aFJlc3Vs
dCogc2VsZik7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiBBICNndWxvbmcK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Via2l0
X2RvbV94cGF0aF9yZXN1bHRfZ2V0X3NuYXBzaG90X2xlbmd0aChXZWJLaXRET01YUGF0aFJlc3Vs
dCogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL2RvY3Mvd2Vi
a2l0ZG9tZ3RrLTQuMC1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vZG9jcy93ZWJraXRkb21ndGstNC4wLXNlY3Rpb25zLnR4
dAppbmRleCA3ODc4NjI0NDE2NS4uMzQzNjdmNzgxODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9kb2NzL3dlYmtpdGRvbWd0
ay00LjAtc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9kb2NzL3dlYmtpdGRvbWd0ay00LjAtc2VjdGlvbnMudHh0CkBA
IC02MDAsNiArNjAwLDEwIEBAIFdlYktpdERPTUVsZW1lbnQKIAogV0VCS0lUX0RPTV9FTEVNRU5U
X0FMTE9XX0tFWUJPQVJEX0lOUFVUCiAKK3dlYmtpdF9kb21fZWxlbWVudF9odG1sX2lucHV0X2Vs
ZW1lbnRfaXNfdXNlcl9lZGl0ZWQKK3dlYmtpdF9kb21fZWxlbWVudF9odG1sX2lucHV0X2VsZW1l
bnRfZ2V0X2F1dG9fZmlsbGVkCit3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50
X3NldF9hdXRvX2ZpbGxlZAord2Via2l0X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRfZWxlbWVudF9z
ZXRfZWRpdGluZ192YWx1ZQogd2Via2l0X2RvbV9lbGVtZW50X2dldF9hdHRyaWJ1dGUKIHdlYmtp
dF9kb21fZWxlbWVudF9zZXRfYXR0cmlidXRlCiB3ZWJraXRfZG9tX2VsZW1lbnRfcmVtb3ZlX2F0
dHJpYnV0ZQpAQCAtODk3LDYgKzkwMSw3IEBAIHdlYmtpdF9kb21fbm9kZV9nZXRfbmFtZXNwYWNl
X3VyaQogd2Via2l0X2RvbV9ub2RlX2dldF9wcmVmaXgKIHdlYmtpdF9kb21fbm9kZV9zZXRfcHJl
Zml4CiB3ZWJraXRfZG9tX25vZGVfZ2V0X2xvY2FsX25hbWUKK3dlYmtpdF9kb21fbm9kZV9mb3Jf
anNfdmFsdWUKIAogPFNVQlNFQ1RJT04gU3RhbmRhcmQ+CiBXZWJLaXRET01Ob2RlQ2xhc3MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L1dlYktpdEZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9XZWJLaXRGcmFtZS5oCmluZGV4IDZjNTRhMjQ4NGE3Li5hMzEwMDYwYTM4MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
V2ViS2l0RnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9XZWJLaXRGcmFtZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8anNj
L2pzYy5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgogI2luY2x1ZGUgPHdl
YmtpdDIvV2ViS2l0U2NyaXB0V29ybGQuaD4KKyNpbmNsdWRlIDx3ZWJraXRkb20vd2Via2l0ZG9t
Lmg+CiAKIEdfQkVHSU5fREVDTFMKIApAQCAtNTQsMjcgKzU1LDM2IEBAIHN0cnVjdCBfV2ViS2l0
RnJhbWVDbGFzcyB7CiB9OwogCiBXRUJLSVRfQVBJIEdUeXBlCi13ZWJraXRfZnJhbWVfZ2V0X3R5
cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKTsKK3dlYmtpdF9mcmFtZV9n
ZXRfdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKTsKIAogV0VC
S0lUX0FQSSBnYm9vbGVhbgotd2Via2l0X2ZyYW1lX2lzX21haW5fZnJhbWUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lKTsKK3dlYmtpdF9mcmFtZV9p
c19tYWluX2ZyYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRGcmFtZSAg
ICAgICAqZnJhbWUpOwogCiBXRUJLSVRfQVBJIGNvbnN0IGdjaGFyICoKLXdlYmtpdF9mcmFtZV9n
ZXRfdXJpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdEZyYW1lICAgICAg
ICpmcmFtZSk7Cit3ZWJraXRfZnJhbWVfZ2V0X3VyaSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lKTsKIAogV0VCS0lUX0RFUFJFQ0FU
RURfRk9SKHdlYmtpdF9mcmFtZV9nZXRfanNfY29udGV4dCkgSlNHbG9iYWxDb250ZXh0UmVmCi13
ZWJraXRfZnJhbWVfZ2V0X2phdmFzY3JpcHRfZ2xvYmFsX2NvbnRleHQgICAgICAgICAgIChXZWJL
aXRGcmFtZSAgICAgICAqZnJhbWUpOword2Via2l0X2ZyYW1lX2dldF9qYXZhc2NyaXB0X2dsb2Jh
bF9jb250ZXh0ICAgICAgICAgICAgICAgKFdlYktpdEZyYW1lICAgICAgICpmcmFtZSk7CiAKIFdF
QktJVF9ERVBSRUNBVEVEX0ZPUih3ZWJraXRfZnJhbWVfZ2V0X2pzX2NvbnRleHRfZm9yX3Njcmlw
dF93b3JsZCkgSlNHbG9iYWxDb250ZXh0UmVmCi13ZWJraXRfZnJhbWVfZ2V0X2phdmFzY3JpcHRf
Y29udGV4dF9mb3Jfc2NyaXB0X3dvcmxkIChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRT
Y3JpcHRXb3JsZCAqd29ybGQpOword2Via2l0X2ZyYW1lX2dldF9qYXZhc2NyaXB0X2NvbnRleHRf
Zm9yX3NjcmlwdF93b3JsZCAgICAgKFdlYktpdEZyYW1lICAgICAgICpmcmFtZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRT
Y3JpcHRXb3JsZCAqd29ybGQpOwogCiBXRUJLSVRfQVBJIEpTQ0NvbnRleHQgKgotd2Via2l0X2Zy
YW1lX2dldF9qc19jb250ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0RnJhbWUg
ICAgICAgKmZyYW1lKTsKK3dlYmtpdF9mcmFtZV9nZXRfanNfY29udGV4dCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUpOwogCiBXRUJLSVRfQVBJ
IEpTQ0NvbnRleHQgKgotd2Via2l0X2ZyYW1lX2dldF9qc19jb250ZXh0X2Zvcl9zY3JpcHRfd29y
bGQgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0U2NyaXB0V29ybGQgKndv
cmxkKTsKK3dlYmtpdF9mcmFtZV9nZXRfanNfY29udGV4dF9mb3Jfc2NyaXB0X3dvcmxkICAgICAg
ICAgICAgIChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0U2NyaXB0V29ybGQgKndv
cmxkKTsKKworV0VCS0lUX0FQSSBKU0NWYWx1ZSAqCit3ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVl
X2Zvcl9kb21fb2JqZWN0ICAgICAgICAgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1l
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFdlYktpdERPTU9iamVjdCAgICpkb21fb2JqZWN0KTsKKworV0VCS0lUX0FQSSBKU0NWYWx1
ZSAqCit3ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0X2luX3NjcmlwdF93
b3JsZCAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdERPTU9iamVjdCAgICpkb21f
b2JqZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdlYktpdFNjcmlwdFdvcmxkICp3b3JsZCk7CiAKIEdfRU5EX0RFQ0xTCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3Bl
L0RPTS9XZWJLaXRET01EZWZpbmVzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL3dwZS9ET00vV2ViS2l0RE9NRGVmaW5lcy5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xZWY0ZjI4OWVkMgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL0RPTS9XZWJLaXRE
T01EZWZpbmVzLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBJ
Z2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVRET01fSF9JTlNJREVfXykgJiYgIWRlZmlu
ZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d3BlL3dlYmtpdGRvbS5oPiBj
YW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0RE9NRGVm
aW5lc19oCisjZGVmaW5lIFdlYktpdERPTURlZmluZXNfaAorCisjaW5jbHVkZSA8Z2xpYi5oPgor
CisjaWZkZWYgR19PU19XSU4zMgorICAgICNpZmRlZiBCVUlMRElOR19XRUJLSVQKKyAgICAgICAg
I2RlZmluZSBXRUJLSVRfQVBJIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQorICAgICNlbHNlCisgICAg
ICAgICNkZWZpbmUgV0VCS0lUX0FQSSBfX2RlY2xzcGVjKGRsbGltcG9ydCkKKyAgICAjZW5kaWYK
KyNlbHNlCisgICAgI2RlZmluZSBXRUJLSVRfQVBJIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHko
ImRlZmF1bHQiKSkpCisjZW5kaWYKKworI2RlZmluZSBXRUJLSVRfREVQUkVDQVRFRCBXRUJLSVRf
QVBJIEdfREVQUkVDQVRFRAorI2RlZmluZSBXRUJLSVRfREVQUkVDQVRFRF9GT1IoZikgV0VCS0lU
X0FQSSBHX0RFUFJFQ0FURURfRk9SKGYpCisKKyNpZm5kZWYgV0VCS0lUX0FQSQorICAgICNkZWZp
bmUgV0VCS0lUX0FQSQorI2VuZGlmCisKKyNlbmRpZiAvKiBXZWJLaXRET01EZWZpbmVzX2ggKi8K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
d3BlL0RPTS9XZWJLaXRET01Eb2N1bWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL1dlYktpdERPTURvY3VtZW50LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjIyYzY3YzE3ZTg4Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL1dl
YktpdERPTURvY3VtZW50LmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVRET01fSF9JTlNJREVfXykgJiYg
IWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d3BlL3dlYmtpdGRv
bS5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0
RE9NRG9jdW1lbnRfaAorI2RlZmluZSBXZWJLaXRET01Eb2N1bWVudF9oCisKKyNpbmNsdWRlIDxn
bGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRET01Ob2RlLmg+CisjaW5jbHVkZSA8
d3BlL1dlYktpdERPTURlZmluZXMuaD4KKworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJ
VF9ET01fVFlQRV9ET0NVTUVOVCAgICAgICAgICAgICh3ZWJraXRfZG9tX2RvY3VtZW50X2dldF90
eXBlKCkpCisjZGVmaW5lIFdFQktJVF9ET01fRE9DVU1FTlQob2JqKSAgICAgICAgICAgIChHX1RZ
UEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX0RPTV9UWVBFX0RPQ1VNRU5ULCBX
ZWJLaXRET01Eb2N1bWVudCkpCisjZGVmaW5lIFdFQktJVF9ET01fRE9DVU1FTlRfQ0xBU1Moa2xh
c3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX0RPTV9UWVBF
X0RPQ1VNRU5ULCBXZWJLaXRET01Eb2N1bWVudENsYXNzKQorI2RlZmluZSBXRUJLSVRfRE9NX0lT
X0RPQ1VNRU5UKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiks
IFdFQktJVF9ET01fVFlQRV9ET0NVTUVOVCkpCisjZGVmaW5lIFdFQktJVF9ET01fSVNfRE9DVU1F
TlRfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lU
X0RPTV9UWVBFX0RPQ1VNRU5UKSkKKyNkZWZpbmUgV0VCS0lUX0RPTV9ET0NVTUVOVF9HRVRfQ0xB
U1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfRE9NX1RZ
UEVfRE9DVU1FTlQsIFdlYktpdERPTURvY3VtZW50Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBf
V2ViS2l0RE9NRG9jdW1lbnQgV2ViS2l0RE9NRG9jdW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfV2Vi
S2l0RE9NRG9jdW1lbnRDbGFzcyBXZWJLaXRET01Eb2N1bWVudENsYXNzOworCitzdHJ1Y3QgX1dl
YktpdERPTURvY3VtZW50IHsKKyAgICBXZWJLaXRET01Ob2RlIHBhcmVudF9pbnN0YW5jZTsKK307
CisKK3N0cnVjdCBfV2ViS2l0RE9NRG9jdW1lbnRDbGFzcyB7CisgICAgV2ViS2l0RE9NTm9kZUNs
YXNzIHBhcmVudF9jbGFzczsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF9kb21fZG9j
dW1lbnRfZ2V0X3R5cGUodm9pZCk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBXZWJLaXRE
T01Eb2N1bWVudF9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vV2ViS2l0RE9NRWxlbWVudC5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL1dlYktpdERPTUVsZW1lbnQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTZhNmFhMjc3YTIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL3dwZS9ET00vV2ViS2l0RE9NRWxlbWVudC5oCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lURE9NX0hf
SU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkg
PHdwZS93ZWJraXRkb20uaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisj
aWZuZGVmIFdlYktpdERPTUVsZW1lbnRfaAorI2RlZmluZSBXZWJLaXRET01FbGVtZW50X2gKKwor
I2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdERPTU5vZGUuaD4K
KyNpbmNsdWRlIDx3cGUvV2ViS2l0RE9NRGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNk
ZWZpbmUgV0VCS0lUX0RPTV9UWVBFX0VMRU1FTlQgICAgICAgICAgICAod2Via2l0X2RvbV9lbGVt
ZW50X2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9ET01fRUxFTUVOVChvYmopICAgICAgICAg
ICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfRE9NX1RZUEVfRUxF
TUVOVCwgV2ViS2l0RE9NRWxlbWVudCkpCisjZGVmaW5lIFdFQktJVF9ET01fRUxFTUVOVF9DTEFT
UyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfRE9N
X1RZUEVfRUxFTUVOVCwgV2ViS2l0RE9NRWxlbWVudENsYXNzKQorI2RlZmluZSBXRUJLSVRfRE9N
X0lTX0VMRU1FTlQob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2Jq
KSwgV0VCS0lUX0RPTV9UWVBFX0VMRU1FTlQpKQorI2RlZmluZSBXRUJLSVRfRE9NX0lTX0VMRU1F
TlRfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lU
X0RPTV9UWVBFX0VMRU1FTlQpKQorI2RlZmluZSBXRUJLSVRfRE9NX0VMRU1FTlRfR0VUX0NMQVNT
KG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX0RPTV9UWVBF
X0VMRU1FTlQsIFdlYktpdERPTUVsZW1lbnRDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJL
aXRET01FbGVtZW50IFdlYktpdERPTUVsZW1lbnQ7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9N
RWxlbWVudENsYXNzIFdlYktpdERPTUVsZW1lbnRDbGFzczsKKworc3RydWN0IF9XZWJLaXRET01F
bGVtZW50IHsKKyAgICBXZWJLaXRET01Ob2RlIHBhcmVudF9pbnN0YW5jZTsKK307CisKK3N0cnVj
dCBfV2ViS2l0RE9NRWxlbWVudENsYXNzIHsKKyAgICBXZWJLaXRET01Ob2RlQ2xhc3MgcGFyZW50
X2NsYXNzOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X2RvbV9lbGVtZW50X2dldF90
eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCk7CisKK1dFQktJVF9BUEkgZ2Jv
b2xlYW4KK3dlYmtpdF9kb21fZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfaXNfdXNlcl9lZGl0
ZWQgICAgKFdlYktpdERPTUVsZW1lbnQgKmVsZW1lbnQpOworCitXRUJLSVRfQVBJIGdib29sZWFu
Cit3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X2dldF9hdXRvX2ZpbGxlZCAg
IChXZWJLaXRET01FbGVtZW50ICplbGVtZW50KTsKKworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRf
ZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X3NldF9hdXRvX2ZpbGxlZCAgIChXZWJLaXRE
T01FbGVtZW50ICplbGVtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgYXV0b19maWxsZWQpOworV0VC
S0lUX0FQSSB2b2lkCit3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X3NldF9l
ZGl0aW5nX3ZhbHVlIChXZWJLaXRET01FbGVtZW50ICplbGVtZW50LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAgICAg
ICAqdmFsdWUpOworCitHX0VORF9ERUNMUworCisjZW5kaWYgLyogV2ViS2l0RE9NRWxlbWVudF9o
ICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL3dwZS9ET00vV2ViS2l0RE9NTm9kZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL1dlYktpdERPTU5vZGUuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjQyODMzOGNhMDYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vV2ViS2l0
RE9NTm9kZS5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggSWdh
bGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lURE9NX0hfSU5TSURFX18pICYmICFkZWZpbmVk
KFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdwZS93ZWJraXRkb20uaD4gY2Fu
IGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdERPTU5vZGVf
aAorI2RlZmluZSBXZWJLaXRET01Ob2RlX2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+Cisj
aW5jbHVkZSA8anNjL2pzYy5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRET01PYmplY3QuaD4KKyNp
bmNsdWRlIDx3cGUvV2ViS2l0RE9NRGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZp
bmUgV0VCS0lUX0RPTV9UWVBFX05PREUgICAgICAgICAgICAod2Via2l0X2RvbV9ub2RlX2dldF90
eXBlKCkpCisjZGVmaW5lIFdFQktJVF9ET01fTk9ERShvYmopICAgICAgICAgICAgKEdfVFlQRV9D
SEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfRE9NX1RZUEVfTk9ERSwgV2ViS2l0RE9N
Tm9kZSkpCisjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9D
SEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfRE9NX1RZUEVfTk9ERSwgV2ViS2l0RE9N
Tm9kZUNsYXNzKQorI2RlZmluZSBXRUJLSVRfRE9NX0lTX05PREUob2JqKSAgICAgICAgIChHX1RZ
UEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX0RPTV9UWVBFX05PREUpKQorI2Rl
ZmluZSBXRUJLSVRfRE9NX0lTX05PREVfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1Nf
VFlQRSgoa2xhc3MpLCAgV0VCS0lUX0RPTV9UWVBFX05PREUpKQorI2RlZmluZSBXRUJLSVRfRE9N
X05PREVfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAg
V0VCS0lUX0RPTV9UWVBFX05PREUsIFdlYktpdERPTU5vZGVDbGFzcykpCisKK3R5cGVkZWYgc3Ry
dWN0IF9XZWJLaXRET01Ob2RlIFdlYktpdERPTU5vZGU7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0
RE9NTm9kZUNsYXNzIFdlYktpdERPTU5vZGVDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRE
T01Ob2RlUHJpdmF0ZSBXZWJLaXRET01Ob2RlUHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRET01O
b2RlIHsKKyAgICBXZWJLaXRET01PYmplY3QgcGFyZW50X2luc3RhbmNlOworCisgICAgV2ViS2l0
RE9NTm9kZVByaXZhdGUgKnByaXY7Cit9OworCitzdHJ1Y3QgX1dlYktpdERPTU5vZGVDbGFzcyB7
CisgICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworfTsKKworV0VCS0lUX0FQ
SSBHVHlwZQord2Via2l0X2RvbV9ub2RlX2dldF90eXBlICAgICAodm9pZCk7CisKK1dFQktJVF9B
UEkgV2ViS2l0RE9NTm9kZSAqCit3ZWJraXRfZG9tX25vZGVfZm9yX2pzX3ZhbHVlIChKU0NWYWx1
ZSAqdmFsdWUpOworCitHX0VORF9ERUNMUworCisjZW5kaWYgLyogV2ViS2l0RE9NTm9kZV9oICov
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L3dwZS9ET00vV2ViS2l0RE9NT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vV2ViS2l0RE9NT2JqZWN0LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjc1NzU3NjIyMWI3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL1dlYktp
dERPTU9iamVjdC5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgg
SWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lURE9NX0hfSU5TSURFX18pICYmICFkZWZp
bmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdwZS93ZWJraXRkb20uaD4g
Y2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdERPTU9i
amVjdF9oCisjZGVmaW5lIFdlYktpdERPTU9iamVjdF9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVj
dC5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRET01EZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMK
KworI2RlZmluZSBXRUJLSVRfRE9NX1RZUEVfT0JKRUNUICAgICAgICAgICAgKHdlYmtpdF9kb21f
b2JqZWN0X2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9ET01fT0JKRUNUKG9iaikgICAgICAg
ICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9ET01fVFlQRV9P
QkpFQ1QsIFdlYktpdERPTU9iamVjdCkpCisjZGVmaW5lIFdFQktJVF9ET01fT0JKRUNUX0NMQVNT
KGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9ET01f
VFlQRV9PQkpFQ1QsIFdlYktpdERPTU9iamVjdENsYXNzKSkKKyNkZWZpbmUgV0VCS0lUX0RPTV9J
U19PQkpFQ1Qob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwg
V0VCS0lUX0RPTV9UWVBFX09CSkVDVCkpCisjZGVmaW5lIFdFQktJVF9ET01fSVNfT0JKRUNUX0NM
QVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9ET01f
VFlQRV9PQkpFQ1QpKQorI2RlZmluZSBXRUJLSVRfRE9NX09CSkVDVF9HRVRfQ0xBU1Mob2JqKSAg
KEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfRE9NX1RZUEVfT0JKRUNU
LCBXZWJLaXRET01PYmplY3RDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRET01PYmpl
Y3QgV2ViS2l0RE9NT2JqZWN0OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTU9iamVjdENsYXNz
IFdlYktpdERPTU9iamVjdENsYXNzOworCitzdHJ1Y3QgX1dlYktpdERPTU9iamVjdCB7CisgICAg
R09iamVjdCBwYXJlbnRJbnN0YW5jZTsKK307CisKK3N0cnVjdCBfV2ViS2l0RE9NT2JqZWN0Q2xh
c3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRDbGFzczsKK307CisKK1dFQktJVF9BUEkgR1R5
cGUKK3dlYmtpdF9kb21fb2JqZWN0X2dldF90eXBlKHZvaWQpOworCitHX0VORF9ERUNMUworCisj
ZW5kaWYgLyogV2ViS2l0RE9NT2JqZWN0X2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01PYmplY3RQcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9E
T00vd2Via2l0ZG9tLmgKc2ltaWxhcml0eSBpbmRleCA2NiUKcmVuYW1lIGZyb20gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU9iamVj
dFByaXZhdGUuaApyZW5hbWUgdG8gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS93cGUvRE9NL3dlYmtpdGRvbS5oCmluZGV4IDAyYjExYTZiZmFmLi45MmY3YTAyNGQ2
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTU9iamVjdFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vd2Via2l0ZG9tLmgKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTggSWdhbGlhIFMuTC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTcsMjIgKzE3
LDE3IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCisjaWZuZGVmIHdl
YmtpdGRvbV9oCisjZGVmaW5lIHdlYmtpdGRvbV9oCiAKLSNpZm5kZWYgV2ViS2l0RE9NT2JqZWN0
UHJpdmF0ZV9oCi0jZGVmaW5lIFdlYktpdERPTU9iamVjdFByaXZhdGVfaAorI2RlZmluZSBfX1dF
QktJVERPTV9IX0lOU0lERV9fCiAKLSNpbmNsdWRlIDx3ZWJraXRkb20vV2ViS2l0RE9NT2JqZWN0
Lmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdERPTURlZmluZXMuaD4KKyNpbmNsdWRlIDx3cGUvV2Vi
S2l0RE9NRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RE9NRWxlbWVudC5oPgorI2lu
Y2x1ZGUgPHdwZS9XZWJLaXRET01Ob2RlLmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdERPTU9iamVj
dC5oPgogCi1zdHJ1Y3QgX1dlYktpdERPTU9iamVjdCB7Ci0gICAgR09iamVjdCBwYXJlbnQ7Ci19
OworI3VuZGVmIF9fV0VCS0lURE9NX0hfSU5TSURFX18KIAotc3RydWN0IF9XZWJLaXRET01PYmpl
Y3RDbGFzcyB7Ci0gICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKLQotICAgIHZvaWQgKCog
d3JhcCkgKFdlYktpdERPTU9iamVjdCosIHZvaWQqIGNvcmVPYmplY3QpOwotfTsKLQotdm9pZCB3
ZWJraXRET01PYmplY3RXcmFwKFdlYktpdERPTU9iamVjdCosIHZvaWQqIGNvcmVPYmplY3QpOwot
Ci0jZW5kaWYgLyogV2ViS2l0RE9NT2JqZWN0X2ggKi8KKyNlbmRpZiAvKiB3ZWJraXRkb21faCAq
LwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS93cGUvV2ViS2l0RnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvd3BlL1dlYktpdEZyYW1lLmgKaW5kZXggOTRmMGQwMDQwNjMuLmEzYzYzOTRkYWQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L3dwZS9XZWJLaXRGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvd3BlL1dlYktpdEZyYW1lLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRl
IDxqc2MvanNjLmg+CiAjaW5jbHVkZSA8d3BlL1dlYktpdERlZmluZXMuaD4KICNpbmNsdWRlIDx3
cGUvV2ViS2l0U2NyaXB0V29ybGQuaD4KKyNpbmNsdWRlIDx3cGUvd2Via2l0ZG9tLmg+CiAKIEdf
QkVHSU5fREVDTFMKIApAQCAtNTMsMjAgKzU0LDI5IEBAIHN0cnVjdCBfV2ViS2l0RnJhbWVDbGFz
cyB7CiB9OwogCiBXRUJLSVRfQVBJIEdUeXBlCi13ZWJraXRfZnJhbWVfZ2V0X3R5cGUgICAgICAg
ICAgICAgICAgICAgICAgICAodm9pZCk7Cit3ZWJraXRfZnJhbWVfZ2V0X3R5cGUgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCk7CiAKIFdFQktJVF9BUEkgZ2Jvb2xlYW4K
LXdlYmtpdF9mcmFtZV9pc19tYWluX2ZyYW1lICAgICAgICAgICAgICAgICAgIChXZWJLaXRGcmFt
ZSAgICAgICAqZnJhbWUpOword2Via2l0X2ZyYW1lX2lzX21haW5fZnJhbWUgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKFdlYktpdEZyYW1lICAgICAgICpmcmFtZSk7CiAKIFdFQktJVF9B
UEkgY29uc3QgZ2NoYXIgKgotd2Via2l0X2ZyYW1lX2dldF91cmkgICAgICAgICAgICAgICAgICAg
ICAgICAgKFdlYktpdEZyYW1lICAgICAgICpmcmFtZSk7Cit3ZWJraXRfZnJhbWVfZ2V0X3VyaSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAgKmZy
YW1lKTsKIAogV0VCS0lUX0FQSSBKU0NDb250ZXh0ICoKLXdlYmtpdF9mcmFtZV9nZXRfanNfY29u
dGV4dCAgICAgICAgICAgICAgICAgIChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUpOword2Via2l0
X2ZyYW1lX2dldF9qc19jb250ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktp
dEZyYW1lICAgICAgICpmcmFtZSk7CiAKIFdFQktJVF9BUEkgSlNDQ29udGV4dCAqCi13ZWJraXRf
ZnJhbWVfZ2V0X2pzX2NvbnRleHRfZm9yX3NjcmlwdF93b3JsZCAoV2ViS2l0RnJhbWUgICAgICAg
KmZyYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdl
YktpdFNjcmlwdFdvcmxkICp3b3JsZCk7Cit3ZWJraXRfZnJhbWVfZ2V0X2pzX2NvbnRleHRfZm9y
X3NjcmlwdF93b3JsZCAgICAgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdl
YktpdFNjcmlwdFdvcmxkICp3b3JsZCk7CisKK1dFQktJVF9BUEkgSlNDVmFsdWUgKgord2Via2l0
X2ZyYW1lX2dldF9qc192YWx1ZV9mb3JfZG9tX29iamVjdCAgICAgICAgICAgICAgICAgKFdlYktp
dEZyYW1lICAgICAgICpmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRET01PYmplY3QgICAqZG9tX29iamVjdCk7CisK
K1dFQktJVF9BUEkgSlNDVmFsdWUgKgord2Via2l0X2ZyYW1lX2dldF9qc192YWx1ZV9mb3JfZG9t
X29iamVjdF9pbl9zY3JpcHRfd29ybGQgKFdlYktpdEZyYW1lICAgICAgICpmcmFtZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJL
aXRET01PYmplY3QgICAqZG9tX29iamVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRTY3JpcHRXb3JsZCAqd29ybGQpOwog
CiBHX0VORF9ERUNMUwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJIaXRUZXN0UmVzdWx0LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJIaXRUZXN0UmVz
dWx0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZjNDNiMjVhOGNl
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS93cGUvV2ViS2l0V2ViSGl0VGVzdFJlc3VsdC5oCkBAIC0wLDAgKzEsNjggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiwxIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJ
VF9XRUJfRVhURU5TSU9OX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJ
T04pCisjZXJyb3IgIk9ubHkgPHdwZS93ZWJraXQtd2ViLWV4dGVuc2lvbi5oPiBjYW4gYmUgaW5j
bHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0V2ViSGl0VGVzdFJlc3Vs
dF9oCisjZGVmaW5lIFdlYktpdFdlYkhpdFRlc3RSZXN1bHRfaAorCisjaW5jbHVkZSA8Z2xpYi1v
YmplY3QuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5oPgorI2luY2x1ZGUgPHdwZS9X
ZWJLaXRIaXRUZXN0UmVzdWx0Lmg+CisjaW5jbHVkZSA8d3BlL3dlYmtpdGRvbS5oPgorCitHX0JF
R0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfV0VCX0hJVF9URVNUX1JFU1VMVCAgICAg
ICAgICAgICh3ZWJraXRfd2ViX2hpdF90ZXN0X3Jlc3VsdF9nZXRfdHlwZSgpKQorI2RlZmluZSBX
RUJLSVRfV0VCX0hJVF9URVNUX1JFU1VMVChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19J
TlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9XRUJfSElUX1RFU1RfUkVTVUxULCBXZWJL
aXRXZWJIaXRUZXN0UmVzdWx0KSkKKyNkZWZpbmUgV0VCS0lUX0lTX1dFQl9ISVRfVEVTVF9SRVNV
TFQob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lU
X1RZUEVfV0VCX0hJVF9URVNUX1JFU1VMVCkpCisjZGVmaW5lIFdFQktJVF9XRUJfSElUX1RFU1Rf
UkVTVUxUX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwg
IFdFQktJVF9UWVBFX1dFQl9ISVRfVEVTVF9SRVNVTFQsIFdlYktpdFdlYkhpdFRlc3RSZXN1bHRD
bGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19XRUJfSElUX1RFU1RfUkVTVUxUX0NMQVNTKGtsYXNz
KSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1dFQl9ISVRf
VEVTVF9SRVNVTFQpKQorI2RlZmluZSBXRUJLSVRfV0VCX0hJVF9URVNUX1JFU1VMVF9HRVRfQ0xB
U1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9X
RUJfSElUX1RFU1RfUkVTVUxULCBXZWJLaXRXZWJIaXRUZXN0UmVzdWx0Q2xhc3MpKQorCit0eXBl
ZGVmIHN0cnVjdCBfV2ViS2l0V2ViSGl0VGVzdFJlc3VsdCAgICAgICAgV2ViS2l0V2ViSGl0VGVz
dFJlc3VsdDsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJIaXRUZXN0UmVzdWx0Q2xhc3MgICBX
ZWJLaXRXZWJIaXRUZXN0UmVzdWx0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViSGl0
VGVzdFJlc3VsdFByaXZhdGUgV2ViS2l0V2ViSGl0VGVzdFJlc3VsdFByaXZhdGU7CisKK3N0cnVj
dCBfV2ViS2l0V2ViSGl0VGVzdFJlc3VsdCB7CisgICAgV2ViS2l0SGl0VGVzdFJlc3VsdCBwYXJl
bnQ7CisKKyAgICBXZWJLaXRXZWJIaXRUZXN0UmVzdWx0UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0
cnVjdCBfV2ViS2l0V2ViSGl0VGVzdFJlc3VsdENsYXNzIHsKKyAgICBXZWJLaXRIaXRUZXN0UmVz
dWx0Q2xhc3MgcGFyZW50X2NsYXNzOworCisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQwKSAo
dm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9pZCAo
Kl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQz
KSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfd2ViX2hpdF90ZXN0X3Jl
c3VsdF9nZXRfdHlwZSAodm9pZCk7CisKK1dFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSAqCit3ZWJr
aXRfd2ViX2hpdF90ZXN0X3Jlc3VsdF9nZXRfbm9kZSAoV2ViS2l0V2ViSGl0VGVzdFJlc3VsdCAq
aGl0X3Rlc3RfcmVzdWx0KTsKKworR19FTkRfREVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJQ
YWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9X
ZWJLaXRXZWJQYWdlLmgKaW5kZXggZWVmYmQ4MTAzOTQuLjMwZTBmOTMzNThjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRX
ZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS93cGUvV2ViS2l0V2ViUGFnZS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8d3BlL1dl
YktpdERlZmluZXMuaD4KICNpbmNsdWRlIDx3cGUvV2ViS2l0RnJhbWUuaD4KICNpbmNsdWRlIDx3
cGUvV2ViS2l0V2ViRWRpdG9yLmg+CisjaW5jbHVkZSA8d3BlL3dlYmtpdGRvbS5oPgogCiBHX0JF
R0lOX0RFQ0xTCiAKQEAgLTQ1LDYgKzQ2LDIxIEBAIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJQ
YWdlUHJpdmF0ZSBXZWJLaXRXZWJQYWdlUHJpdmF0ZTsKIC8qIEZvcndhcmQgZGVjbGFyYXRpb25z
ICovCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViRWRpdG9yICAgICAgV2ViS2l0V2ViRWRpdG9y
OwogCisvKioKKyAqIFdlYktpdEZvcm1TdWJtaXNzaW9uU3RlcDoKKyAqIEBXRUJLSVRfRk9STV9T
VUJNSVNTSU9OX1dJTExfU0VORF9ET01fRVZFTlQ6IGluZGljYXRlcyB0aGUgZm9ybSdzCisgKiBE
T00gc3VibWl0IGV2ZW50IGlzIGFib3V0IHRvIGJlIGVtaXR0ZWQuCisgKiBAV0VCS0lUX0ZPUk1f
U1VCTUlTU0lPTl9XSUxMX0NPTVBMRVRFOiBpbmRpY2F0ZXMgdGhlIGZvcm0gaXMgYWJvdXQKKyAq
IHRvIGJlIHN1Ym1pdHRlZC4KKyAqCisgKiBVc2VkIHRvIGluZGljYXRlIGEgcGFydGljdWxhciBz
dGFnZSBpbiBmb3JtIHN1Ym1pc3Npb24uIFNlZQorICogI1dlYktpdFdlYlBhZ2U6OndpbGwtc3Vi
bWl0LWZvcm0uCisgKi8KK3R5cGVkZWYgZW51bSB7CisgICAgV0VCS0lUX0ZPUk1fU1VCTUlTU0lP
Tl9XSUxMX1NFTkRfRE9NX0VWRU5ULAorICAgIFdFQktJVF9GT1JNX1NVQk1JU1NJT05fV0lMTF9D
T01QTEVURSwKK30gV2ViS2l0Rm9ybVN1Ym1pc3Npb25TdGVwOworCiBzdHJ1Y3QgX1dlYktpdFdl
YlBhZ2UgewogICAgIEdPYmplY3QgcGFyZW50OwogCkBAIC03MCw2ICs4Niw5IEBAIHdlYmtpdF93
ZWJfcGFnZV9nZXRfbWFpbl9mcmFtZSAgIChXZWJLaXRXZWJQYWdlICp3ZWJfcGFnZSk7CiBXRUJL
SVRfQVBJIFdlYktpdFdlYkVkaXRvciAqCiB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2VkaXRvciAgICAg
ICAoV2ViS2l0V2ViUGFnZSAqd2ViX3BhZ2UpOwogCitXRUJLSVRfQVBJIFdlYktpdERPTURvY3Vt
ZW50ICoKK3dlYmtpdF93ZWJfcGFnZV9nZXRfZG9tX2RvY3VtZW50IChXZWJLaXRXZWJQYWdlICp3
ZWJfcGFnZSk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0V2ViUHJvY2Vzc0Vu
dW1UeXBlcy5jcHAudGVtcGxhdGUgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVzLmNwcC50ZW1wbGF0ZQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjIwZWYxNWNkNzkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dw
ZS9XZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVzLmNwcC50ZW1wbGF0ZQpAQCAtMCwwICsxLDYyIEBA
CisvKioqIEJFR0lOIGZpbGUtaGVhZGVyICoqKi8KKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
SWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCisgKi8KKworI2luY2x1ZGUgPGNvbmZpZy5oPgorI2luY2x1ZGUgIldlYktpdFdlYlByb2Nl
c3NFbnVtVHlwZXMuaCIKKworI2luY2x1ZGUgPHdwZS93ZWJraXQtd2ViLWV4dGVuc2lvbi5oPgor
ZXh0ZXJuICJDIiB7CisvKioqIEVORCBmaWxlLWhlYWRlciAqKiovCisKKworLyoqKiBCRUdJTiBm
aWxlLXByb2R1Y3Rpb24gKioqLworLy8gRW51bWVyYXRpb25zIGZyb20gQGZpbGVuYW1lQC4KKy8q
KiogRU5EIGZpbGUtcHJvZHVjdGlvbiAqKiovCisKKworLyoqKiBCRUdJTiB2YWx1ZS1oZWFkZXIg
KioqLworR1R5cGUgQGVudW1fbmFtZUBfZ2V0X3R5cGUoKQoreworICAgIHN0YXRpYyBjb25zdCBH
QFR5cGVAVmFsdWUgdmFsdWVzW10gPSB7CisvKioqIEVORCB2YWx1ZS1oZWFkZXIgKioqLworCisK
Ky8qKiogQkVHSU4gdmFsdWUtcHJvZHVjdGlvbiAqKiovCisgICAgICAgIHsgQFZBTFVFTkFNRUAs
ICJAVkFMVUVOQU1FQCIsICJAdmFsdWVuaWNrQCIgfSwKKy8qKiogRU5EIHZhbHVlLXByb2R1Y3Rp
b24gKioqLworCisKKy8qKiogQkVHSU4gdmFsdWUtdGFpbCAqKiovCisgICAgICAgIHsgMCwgTlVM
TCwgTlVMTCB9CisgICAgfTsKKworICAgIHN0YXRpYyBHVHlwZSB0eXBlID0gMDsKKyAgICBpZiAo
R19VTkxJS0VMWSghdHlwZSkpCisgICAgICAgIHR5cGUgPSBnX0B0eXBlQF9yZWdpc3Rlcl9zdGF0
aWMoIkBFbnVtTmFtZUAiLCB2YWx1ZXMpOworCisgICAgcmV0dXJuIHR5cGU7Cit9CisKKy8qKiog
RU5EIHZhbHVlLXRhaWwgKioqLworCisKKy8qKiogQkVHSU4gZmlsZS10YWlsICoqKi8KK30KKy8q
KiogRU5EIGZpbGUtdGFpbCAqKiovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVzLmgudGVt
cGxhdGUgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9X
ZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVzLmgudGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjU2MDk5MzEzOGNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0V2ViUHJvY2Vz
c0VudW1UeXBlcy5oLnRlbXBsYXRlCkBAIC0wLDAgKzEsNTQgQEAKKy8qKiogQkVHSU4gZmlsZS1o
ZWFkZXIgKioqLworLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRl
ZmluZWQoX19XRUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJL
SVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3cGUvd2Via2l0LXdlYi1leHRlbnNpb24u
aD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdFQktJVF9X
RUJfUFJPQ0VTU19FTlVNX1RZUEVTX0gKKyNkZWZpbmUgV0VCS0lUX1dFQl9QUk9DRVNTX0VOVU1f
VFlQRVNfSAorCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0
RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisvKioqIEVORCBmaWxlLWhlYWRlciAqKiovCisK
KworLyoqKiBCRUdJTiBmaWxlLXByb2R1Y3Rpb24gKioqLworLyogRW51bWVyYXRpb25zIGZyb20g
QGJhc2VuYW1lQC4gKi8KKy8qKiogRU5EIGZpbGUtcHJvZHVjdGlvbiAqKiovCisKKworLyoqKiBC
RUdJTiBlbnVtZXJhdGlvbi1wcm9kdWN0aW9uICoqKi8KKyNkZWZpbmUgV0VCS0lUX1RZUEVfQEVO
VU1TSE9SVEAgQGVudW1fbmFtZUBfZ2V0X3R5cGUgKCkKKworV0VCS0lUX0FQSSBHVHlwZQorQGVu
dW1fbmFtZUBfZ2V0X3R5cGUgKHZvaWQpOworCisvKioqIEVORCBlbnVtZXJhdGlvbi1wcm9kdWN0
aW9uICoqKi8KKworCisvKioqIEJFR0lOIGZpbGUtdGFpbCAqKiovCitHX0VORF9ERUNMUworCisj
ZW5kaWYKKy8qKiogRU5EIGZpbGUtdGFpbCAqKiovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL3dlYmtpdC13ZWItZXh0ZW5zaW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS93ZWJr
aXQtd2ViLWV4dGVuc2lvbi5oCmluZGV4IDZmMDZhY2QyYWIwLi5jZDFkNDY4ZmNjZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvd2Vi
a2l0LXdlYi1leHRlbnNpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL3dwZS93ZWJraXQtd2ViLWV4dGVuc2lvbi5oCkBAIC0zNiw2ICszNiw3IEBA
CiAjaW5jbHVkZSA8d3BlL1dlYktpdFVSSVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8d3BlL1dlYktp
dFdlYkVkaXRvci5oPgogI2luY2x1ZGUgPHdwZS9XZWJLaXRXZWJFeHRlbnNpb24uaD4KKyNpbmNs
dWRlIDx3cGUvV2ViS2l0V2ViSGl0VGVzdFJlc3VsdC5oPgogI2luY2x1ZGUgPHdwZS9XZWJLaXRX
ZWJQYWdlLmg+CiAKICN1bmRlZiBfX1dFQktJVF9XRUJfRVhURU5TSU9OX0hfSU5TSURFX18KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlIGIvU291cmNlL2NtYWtlL09w
dGlvbnNXUEUuY21ha2UKaW5kZXggOTc0NTMzNmJkNGYuLjY4NDMzMTMyMjI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9u
c1dQRS5jbWFrZQpAQCAtMTE0LDYgKzExNCw3IEBAIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVT
RV9DT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCBUUlVFKQogc2V0KEZPUldBUkRJTkdfSEVB
REVSU19ESVIgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycykKIHNldChG
T1JXQVJESU5HX0hFQURFUlNfV1BFX0RJUiAke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9L3dwZSkK
IHNldChGT1JXQVJESU5HX0hFQURFUlNfV1BFX0VYVEVOU0lPTl9ESVIgJHtGT1JXQVJESU5HX0hF
QURFUlNfRElSfS93cGUtd2ViZXh0ZW5zaW9uKQorc2V0KEZPUldBUkRJTkdfSEVBREVSU19XUEVf
RE9NX0RJUiAke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9L3dwZS1kb20pCiBzZXQoREVSSVZFRF9T
T1VSQ0VTX0pBVkFTQ1JJUENPUkVXUEVfRElSICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRD
T1JFX0RJUn0vamF2YXNjcmlwdGNvcmV3cGUpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJ
UENPUkVfR0xJQl9BUElfRElSICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0v
amF2YXNjcmlwdGNvcmV3cGUvanNjKQogc2V0KERFUklWRURfU09VUkNFU19XUEVfQVBJX0RJUiAk
e0RFUklWRURfU09VUkNFU19XRUJLSVRfRElSfS93cGUpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2U3ZTMzY2YxMmIuLjMyZTZhZTFmMDA1IDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNjIgQEAKKzIwMTgtMDMtMjIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV0gQWRkIEFQSSB0byBjb252ZXJ0IGJldHdlZW4g
RE9NIGFuZCBKU0NWYWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgzNDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIHVuaXQgdGVzdHMgZm9yIG5vbi1kZXByZWNhdGVkIERPTSBBUEkgYW5kIHN3
aXRjaCBleGlzdGluZyB0ZXN0cyB0byB1c2Ugbm9uLWRlcHJlY2F0ZWQgQVBJIGV4Y2VwdCBmb3Ig
dGhlCisgICAgICAgIG9uZXMgdGhhdCB0ZXN0IHRoZSBkZXByZWNhdGVkIEFQSS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9ET01FbGVtZW50VGVzdC5jcHA6IEFk
ZGVkLgorICAgICAgICAoRE9NRWxlbWVudFRlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChET01FbGVt
ZW50VGVzdDo6dGVzdEF1dG9GaWxsKToKKyAgICAgICAgKHJlZ2lzdGVyVGVzdHMpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9FZGl0b3JUZXN0LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJLaXRXZWJFZGl0b3JUZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
V2ViRWRpdG9yVGVzdDo6c2VsZWN0aW9uQ2hhbmdlZENhbGxiYWNrKToKKyAgICAgICAgKFdlYktp
dFdlYkVkaXRvclRlc3Q6OnRlc3RTZWxlY3Rpb25jaGFuZ2VkKToKKyAgICAgICAgKHJlZ2lzdGVy
VGVzdHMpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9GcmFtZVRl
c3QuY3BwOgorICAgICAgICAoV2ViS2l0RnJhbWVUZXN0Ojp0ZXN0SmF2YVNjcmlwdFZhbHVlcyk6
CisgICAgICAgIChyZWdpc3RlclRlc3RzKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdEdMaWIvVGVzdERPTUVsZW1lbnQuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU9iamVjdFBy
aXZhdGUuaC4KKyAgICAgICAgKHRlc3RXZWJLaXRET01FbGVtZW50QXV0b0ZpbGwpOgorICAgICAg
ICAoYmVmb3JlQWxsKToKKyAgICAgICAgKGFmdGVyQWxsKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEVkaXRvci5jcHA6IFJlbmFtZWQgZnJvbSBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0RWRpdG9yLmNwcC4KKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEZyYW1lLmNwcDoKKyAgICAgICAgKHRl
c3RXZWJLaXRGcmFtZUphdmFTY3JpcHRWYWx1ZXMpOgorICAgICAgICAoYmVmb3JlQWxsKToKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYkV4dGVuc2lvbnMu
Y3BwOgorICAgICAgICAoaW5wdXRFbGVtZW50SXNVc2VyRWRpdGVkKToKKyAgICAgICAgKHRlc3RX
ZWJFeHRlbnNpb25JbnB1dEVsZW1lbnRJc1VzZXJFZGl0ZWQpOgorICAgICAgICAodGVzdFdlYkV4
dGVuc2lvbkZvcm1TdWJtaXNzaW9uU3RlcHMpOgorICAgICAgICAoYmVmb3JlQWxsKToKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvV2ViRXh0ZW5zaW9uVGVzdC5jcHA6
CisgICAgICAgIChkb2N1bWVudExvYWRlZENhbGxiYWNrKToKKyAgICAgICAgKHNlcmlhbGl6ZU5v
ZGUpOgorICAgICAgICAoY29udGV4dE1lbnVDYWxsYmFjayk6CisgICAgICAgIChjb25zb2xlTWVz
c2FnZVNlbnRDYWxsYmFjayk6CisgICAgICAgIChmb3JtQ29udHJvbHNBc3NvY2lhdGVkQ2FsbGJh
Y2spOgorICAgICAgICAod2lsbFN1Ym1pdEZvcm1DYWxsYmFjayk6CisgICAgICAgIChwYWdlQ3Jl
YXRlZENhbGxiYWNrKToKKyAgICAgICAgKG1ldGhvZENhbGxDYWxsYmFjayk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1dlYlByb2Nlc3NUZXN0LmNwcDoKKyAgICAg
ICAgKGNoZWNrTGVha3MpOgorICAgICAgICAod2ViUHJvY2Vzc1Rlc3RSdW5uZXJGaW5hbGl6ZSk6
CisgICAgICAgIChjaGVja0xlYWtzQXRFeGl0KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdEd0ay9BdXRvY2xlYW51cHNUZXN0LmNwcDoKKyAgICAgICAgKEF1dG9jbGVhbnVw
c1Rlc3Q6OnRlc3RXZWJQcm9jZXNzQXV0b2NsZWFudXBzKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdEd0ay9ET01DbGllbnRSZWN0VGVzdC5jcHA6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9NTm9kZUZpbHRlclRlc3QuY3BwOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0RPTU5vZGVUZXN0LmNwcDoKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9ET01YUGF0aE5TUmVzb2x2ZXJUZXN0
LmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9FZGl0b3JUZXN0
LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2dsaWIvQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9nbGliL1BsYXRmb3JtR1RLLmNtYWtlOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvZ2xpYi9QbGF0Zm9ybVdQRS5jbWFrZToKKwogMjAxOC0wMy0y
MSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0dUS11bV1BFXSBKU0MgYmluZGluZ3Mgbm90IGludHJvc3BlY3RhYmxlCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKaW5kZXggZjFiMDkyZDFhZmUuLjMzM2RjZTI2NTY3IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CkBAIC0zNDIsNiArMzQyLDcg
QEAgX1NLSVBQRURfRklMRVNfV0lUSF9XQVJOSU5HID0gWwogICAgIHJlLmNvbXBpbGUocmUuZXNj
YXBlKG9zLnBhdGguam9pbignU291cmNlJywgJ1dlYktpdCcsICdVSVByb2Nlc3MnLCAnQVBJJywg
J3dwZScpICsgb3MucGF0aC5zZXApICsgcidXZWJLaXQoPyEuKlByaXZhdGVcLmgpLipcLmgkJyks
CiAgICAgcmUuY29tcGlsZShyZS5lc2NhcGUob3MucGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViS2l0
JywgJ1dlYlByb2Nlc3MnLCAnSW5qZWN0ZWRCdW5kbGUnLCAnQVBJJywgJ2d0aycpICsgb3MucGF0
aC5zZXApICsgcidXZWJLaXQoPyEuKlByaXZhdGVcLmgpLipcLmgkJyksCiAgICAgcmUuY29tcGls
ZShyZS5lc2NhcGUob3MucGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViS2l0JywgJ1dlYlByb2Nlc3Mn
LCAnSW5qZWN0ZWRCdW5kbGUnLCAnQVBJJywgJ3dwZScpICsgb3MucGF0aC5zZXApICsgcidXZWJL
aXQoPyEuKlByaXZhdGVcLmgpLipcLmgkJyksCisgICAgcmUuY29tcGlsZShyZS5lc2NhcGUob3Mu
cGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViS2l0JywgJ1dlYlByb2Nlc3MnLCAnSW5qZWN0ZWRCdW5k
bGUnLCAnQVBJJywgJ3dwZScsICdET00nKSArIG9zLnBhdGguc2VwKSArIHInV2ViS2l0KD8hLipQ
cml2YXRlXC5oKS4qXC5oJCcpLAogCiAgICAgIyBHT2JqZWN0IERPTSBiaW5kaW5ncyBjb3BpZWQg
ZnJvbSBnZW5lcmF0ZWQgY29kZSB1c2luZyBkaWZmZXJlbnQgY29kaW5nIHN0eWxlLgogICAgIG9z
LnBhdGguam9pbignU291cmNlJywgJ1dlYktpdCcsICdXZWJQcm9jZXNzJywgJ0luamVjdGVkQnVu
ZGxlJywgJ0FQSScsICdndGsnLCAnRE9NJyksCkBAIC0zNTAsNyArMzUxLDggQEAgX1NLSVBQRURf
RklMRVNfV0lUSF9XQVJOSU5HID0gWwogICAgIG9zLnBhdGguam9pbignU291cmNlJywgJ1dlYktp
dCcsICdVSVByb2Nlc3MnLCAnQVBJJywgJ2d0aycsICd3ZWJraXQyLmgnKSwKICAgICBvcy5wYXRo
LmpvaW4oJ1NvdXJjZScsICdXZWJLaXQnLCAnVUlQcm9jZXNzJywgJ0FQSScsICd3cGUnLCAnd2Vi
a2l0LmgnKSwKICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdXZWJLaXQnLCAnV2ViUHJvY2Vz
cycsICdJbmplY3RlZEJ1bmRsZScsICdBUEknLCAnZ3RrJywgJ3dlYmtpdC13ZWItZXh0ZW5zaW9u
LmgnKSwKLSAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdXZWJLaXQnLCAnV2ViUHJvY2Vzcycs
ICdJbmplY3RlZEJ1bmRsZScsICdBUEknLCAnd3BlJywgJ3dlYmtpdC13ZWItZXh0ZW5zaW9uLmgn
KV0KKyAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdXZWJLaXQnLCAnV2ViUHJvY2VzcycsICdJ
bmplY3RlZEJ1bmRsZScsICdBUEknLCAnd3BlJywgJ3dlYmtpdC13ZWItZXh0ZW5zaW9uLmgnKSwK
KyAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdXZWJLaXQnLCAnV2ViUHJvY2VzcycsICdJbmpl
Y3RlZEJ1bmRsZScsICdBUEknLCAnd3BlJywgJ0RPTScsICd3ZWJraXRkb20uaCcpXQogCiAjIEZp
bGVzIHRvIHNraXAgdGhhdCBhcmUgbW9yZSBjb21tb24gb3Igb2J2aW91cy4KICMKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9ET01FbGVtZW50VGVzdC5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvRE9NRWxlbWVudFRlc3Qu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45NTRlMWM1M2UyMAot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9E
T01FbGVtZW50VGVzdC5jcHAKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOCBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJXZWJQcm9j
ZXNzVGVzdC5oIgorI2luY2x1ZGUgPGdpby9naW8uaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5p
cXVlUHRyLmg+CisKK2NsYXNzIERPTUVsZW1lbnRUZXN0IDogcHVibGljIFdlYlByb2Nlc3NUZXN0
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFdlYlByb2Nlc3NUZXN0PiBj
cmVhdGUoKSB7IHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8V2ViUHJvY2Vzc1Rlc3Q+KG5ldyBET01F
bGVtZW50VGVzdCgpKTsgfQorCitwcml2YXRlOgorICAgIGJvb2wgdGVzdEF1dG9GaWxsKFdlYktp
dFdlYlBhZ2UqIHBhZ2UpCisgICAgeworICAgICAgICBXZWJLaXRGcmFtZSogZnJhbWUgPSB3ZWJr
aXRfd2ViX3BhZ2VfZ2V0X21haW5fZnJhbWUocGFnZSk7CisgICAgICAgIGdfYXNzZXJ0X3RydWUo
V0VCS0lUX0lTX0ZSQU1FKGZyYW1lKSk7CisKKyAgICAgICAgR1JlZlB0cjxKU0NDb250ZXh0PiBq
c0NvbnRleHQgPSBhZG9wdEdSZWYod2Via2l0X2ZyYW1lX2dldF9qc19jb250ZXh0KGZyYW1lKSk7
CisgICAgICAgIGdfYXNzZXJ0X3RydWUoSlNDX0lTX0NPTlRFWFQoanNDb250ZXh0LmdldCgpKSk7
CisgICAgICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1Qo
anNDb250ZXh0LmdldCgpKSk7CisKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4ganNJbnB1dEVs
ZW1lbnQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoanNDb250ZXh0LmdldCgpLCAi
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2F1dG8tZmlsbCcpIikpOworICAgICAgICBnX2Fzc2Vy
dF90cnVlKEpTQ19JU19WQUxVRShqc0lucHV0RWxlbWVudC5nZXQoKSkpOworICAgICAgICBhc3Nl
cnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKGpzSW5wdXRFbGVtZW50
LmdldCgpKSk7CisgICAgICAgIGdfYXNzZXJ0X3RydWUoanNjX3ZhbHVlX2lzX29iamVjdChqc0lu
cHV0RWxlbWVudC5nZXQoKSkpOworICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9vYmpl
Y3RfaXNfaW5zdGFuY2Vfb2YoanNJbnB1dEVsZW1lbnQuZ2V0KCksICJIVE1MSW5wdXRFbGVtZW50
IikpOworCisgICAgICAgIGF1dG8qIG5vZGUgPSB3ZWJraXRfZG9tX25vZGVfZm9yX2pzX3ZhbHVl
KGpzSW5wdXRFbGVtZW50LmdldCgpKTsKKyAgICAgICAgZ19hc3NlcnRfdHJ1ZShXRUJLSVRfRE9N
X0lTX05PREUobm9kZSkpOworICAgICAgICBhc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZp
bmlzaGVzKEdfT0JKRUNUKG5vZGUpKTsKKworICAgICAgICBhdXRvKiBlbGVtZW50ID0gV0VCS0lU
X0RPTV9FTEVNRU5UKG5vZGUpOworICAgICAgICBnX2Fzc2VydF9mYWxzZSh3ZWJraXRfZG9tX2Vs
ZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X2dldF9hdXRvX2ZpbGxlZChlbGVtZW50KSk7CisgICAg
ICAgIEdSZWZQdHI8SlNDVmFsdWU+IHZhbHVlID0gYWRvcHRHUmVmKGpzY192YWx1ZV9vYmplY3Rf
Z2V0X3Byb3BlcnR5KGpzSW5wdXRFbGVtZW50LmdldCgpLCAidmFsdWUiKSk7CisgICAgICAgIGdf
YXNzZXJ0X3RydWUoSlNDX0lTX1ZBTFVFKHZhbHVlLmdldCgpKSk7CisgICAgICAgIGdfYXNzZXJ0
X3RydWUoanNjX3ZhbHVlX2lzX3N0cmluZyh2YWx1ZS5nZXQoKSkpOworICAgICAgICBHVW5pcXVl
UHRyPGNoYXI+IHZhbHVlU3RyaW5nKGpzY192YWx1ZV90b19zdHJpbmcodmFsdWUuZ2V0KCkpKTsK
KyAgICAgICAgZ19hc3NlcnRfY21wc3RyKHZhbHVlU3RyaW5nLmdldCgpLCA9PSwgIiIpOworCisg
ICAgICAgIHdlYmtpdF9kb21fZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2VkaXRpbmdf
dmFsdWUoZWxlbWVudCwgImF1dG8gZmlsbGVkIHZhbHVlIik7CisgICAgICAgIHdlYmtpdF9kb21f
ZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2F1dG9fZmlsbGVkKGVsZW1lbnQsIFRSVUUp
OworICAgICAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfdmFsdWVfb2JqZWN0X2dldF9wcm9wZXJ0
eShqc0lucHV0RWxlbWVudC5nZXQoKSwgInZhbHVlIikpOworICAgICAgICBnX2Fzc2VydF90cnVl
KEpTQ19JU19WQUxVRSh2YWx1ZS5nZXQoKSkpOworICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192
YWx1ZV9pc19zdHJpbmcodmFsdWUuZ2V0KCkpKTsKKyAgICAgICAgdmFsdWVTdHJpbmcucmVzZXQo
anNjX3ZhbHVlX3RvX3N0cmluZyh2YWx1ZS5nZXQoKSkpOworICAgICAgICBnX2Fzc2VydF9jbXBz
dHIodmFsdWVTdHJpbmcuZ2V0KCksID09LCAiYXV0byBmaWxsZWQgdmFsdWUiKTsKKyAgICAgICAg
Z19hc3NlcnRfdHJ1ZSh3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X2dldF9h
dXRvX2ZpbGxlZChlbGVtZW50KSk7CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisg
ICAgYm9vbCBydW5UZXN0KGNvbnN0IGNoYXIqIHRlc3ROYW1lLCBXZWJLaXRXZWJQYWdlKiBwYWdl
KSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgaWYgKCFzdHJjbXAodGVzdE5hbWUsICJhdXRvLWZp
bGwiKSkKKyAgICAgICAgICAgIHJldHVybiB0ZXN0QXV0b0ZpbGwocGFnZSk7CisKKyAgICAgICAg
Z19hc3NlcnRfbm90X3JlYWNoZWQoKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK307
CisKK3N0YXRpYyB2b2lkIF9fYXR0cmlidXRlX18oKGNvbnN0cnVjdG9yKSkgcmVnaXN0ZXJUZXN0
cygpCit7CisgICAgUkVHSVNURVJfVEVTVChET01FbGVtZW50VGVzdCwgIldlYktpdERPTUVsZW1l
bnQvYXV0by1maWxsIik7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdEdMaWIvRWRpdG9yVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdEdMaWIvRWRpdG9yVGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjQzY2VkMGM1Nzc0Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRHTGliL0VkaXRvclRlc3QuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgUmVkIEhhdCBJbmMuCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisg
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisg
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKwor
I2luY2x1ZGUgIldlYlByb2Nlc3NUZXN0LmgiCisKK2NsYXNzIFdlYktpdFdlYkVkaXRvclRlc3Qg
OiBwdWJsaWMgV2ViUHJvY2Vzc1Rlc3QgeworcHVibGljOgorICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8V2ViUHJvY2Vzc1Rlc3Q+IGNyZWF0ZSgpIHsgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJQcm9jZXNzVGVzdD4obmV3IFdlYktpdFdlYkVkaXRvclRlc3QoKSk7IH0KKworcHJpdmF0ZToK
KyAgICBzdGF0aWMgdm9pZCBzZWxlY3Rpb25DaGFuZ2VkQ2FsbGJhY2soYm9vbCogc2VsZWN0aW9u
Q2hhbmdlZCkKKyAgICB7CisgICAgICAgICpzZWxlY3Rpb25DaGFuZ2VkID0gdHJ1ZTsKKyAgICB9
CisKKyAgICBib29sIHRlc3RTZWxlY3Rpb25DaGFuZ2VkKFdlYktpdFdlYlBhZ2UqIHBhZ2UpCisg
ICAgeworICAgICAgICBib29sIHNlbGVjdGlvbkNoYW5nZWQgPSBmYWxzZTsKKworICAgICAgICBX
ZWJLaXRXZWJFZGl0b3IqIGVkaXRvciA9IHdlYmtpdF93ZWJfcGFnZV9nZXRfZWRpdG9yKHBhZ2Up
OworICAgICAgICBnX2Fzc2VydChXRUJLSVRfSVNfV0VCX0VESVRPUihlZGl0b3IpKTsKKyAgICAg
ICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChlZGl0b3Ip
KTsKKyAgICAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKGVkaXRvciwgInNlbGVjdGlvbi1j
aGFuZ2VkIiwgR19DQUxMQkFDSyhzZWxlY3Rpb25DaGFuZ2VkQ2FsbGJhY2spLCAmc2VsZWN0aW9u
Q2hhbmdlZCk7CisKKyAgICAgICAgR1JlZlB0cjxKU0NDb250ZXh0PiBqc0NvbnRleHQgPSBhZG9w
dEdSZWYod2Via2l0X2ZyYW1lX2dldF9qc19jb250ZXh0KHdlYmtpdF93ZWJfcGFnZV9nZXRfbWFp
bl9mcmFtZShwYWdlKSkpOworICAgICAgICBnX2Fzc2VydChKU0NfSVNfQ09OVEVYVChqc0NvbnRl
eHQuZ2V0KCkpKTsKKyAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hl
cyhHX09CSkVDVChqc0NvbnRleHQuZ2V0KCkpKTsKKworICAgICAgICBzdGF0aWMgY29uc3QgY2hh
ciogc3RlcHNbXSA9IHsKKyAgICAgICAgICAgICJkb2N1bWVudC5leGVjQ29tbWFuZCgnU2VsZWN0
QWxsJykiLAorICAgICAgICAgICAgIndpbmRvdy5nZXRTZWxlY3Rpb24oKS5jb2xsYXBzZVRvU3Rh
cnQoKSIsCisgICAgICAgICAgICAid2luZG93LmdldFNlbGVjdGlvbigpLm1vZGlmeSgnbW92ZScs
ICdmb3J3YXJkJywgJ2NoYXJhY3RlcicpIiwKKyAgICAgICAgICAgICJ3aW5kb3cuZ2V0U2VsZWN0
aW9uKCkubW9kaWZ5KCdleHRlbmQnLCAnZm9yd2FyZCcsICd3b3JkJykiLAorICAgICAgICAgICAg
ImRvY3VtZW50LmV4ZWNDb21tYW5kKCdVbnNlbGVjdCcpIiwKKyAgICAgICAgICAgIG51bGxwdHIK
KyAgICAgICAgfTsKKworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiByZXN1bHQ7CisgICAgICAg
IHVuc2lnbmVkIGkgPSAwOworICAgICAgICB3aGlsZSAoY29uc3QgY2hhciogY29tbWFuZCA9IHN0
ZXBzW2krK10pIHsKKyAgICAgICAgICAgIGdfYXNzZXJ0KCFzZWxlY3Rpb25DaGFuZ2VkKTsKKyAg
ICAgICAgICAgIHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShqc0NvbnRl
eHQuZ2V0KCksIGNvbW1hbmQpKTsKKyAgICAgICAgICAgIGdfYXNzZXJ0KEpTQ19JU19WQUxVRShy
ZXN1bHQuZ2V0KCkpKTsKKyAgICAgICAgICAgIGdfYXNzZXJ0KHNlbGVjdGlvbkNoYW5nZWQpOwor
ICAgICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IGZhbHNlOworICAgICAgICB9CisKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgYm9vbCBydW5UZXN0KGNvbnN0IGNoYXIqIHRl
c3ROYW1lLCBXZWJLaXRXZWJQYWdlKiBwYWdlKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAgaWYg
KCFzdHJjbXAodGVzdE5hbWUsICJzZWxlY3Rpb24tY2hhbmdlZCIpKQorICAgICAgICAgICAgcmV0
dXJuIHRlc3RTZWxlY3Rpb25DaGFuZ2VkKHBhZ2UpOworCisgICAgICAgIGdfYXNzZXJ0X25vdF9y
ZWFjaGVkKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9OworCitzdGF0aWMgdm9p
ZCBfX2F0dHJpYnV0ZV9fKChjb25zdHJ1Y3RvcikpIHJlZ2lzdGVyVGVzdHMoKQoreworICAgIFJF
R0lTVEVSX1RFU1QoV2ViS2l0V2ViRWRpdG9yVGVzdCwgIldlYktpdFdlYkVkaXRvci9zZWxlY3Rp
b24tY2hhbmdlZCIpOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL0ZyYW1lVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dEdMaWIvRnJhbWVUZXN0LmNwcAppbmRleCA4ODBjMTAzNzUxZC4uZTkxMGJmN2JjM2QgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9GcmFtZVRlc3QuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9GcmFtZVRlc3QuY3Bw
CkBAIC0yMSw2ICsyMSw3IEBACiAKICNpbmNsdWRlICJXZWJQcm9jZXNzVGVzdC5oIgogI2luY2x1
ZGUgPGdpby9naW8uaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKIGNsYXNz
IFdlYktpdEZyYW1lVGVzdCA6IHB1YmxpYyBXZWJQcm9jZXNzVGVzdCB7CiBwdWJsaWM6CkBAIC02
Miw2ICs2Myw3NCBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAg
ICBib29sIHRlc3RKYXZhU2NyaXB0VmFsdWVzKFdlYktpdFdlYlBhZ2UqIHBhZ2UpCisgICAgewor
ICAgICAgICBXZWJLaXRGcmFtZSogZnJhbWUgPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X21haW5fZnJh
bWUocGFnZSk7CisgICAgICAgIGdfYXNzZXJ0KFdFQktJVF9JU19GUkFNRShmcmFtZSkpOworCisg
ICAgICAgIEdSZWZQdHI8SlNDQ29udGV4dD4ganNDb250ZXh0ID0gYWRvcHRHUmVmKHdlYmtpdF9m
cmFtZV9nZXRfanNfY29udGV4dChmcmFtZSkpOworICAgICAgICBnX2Fzc2VydChKU0NfSVNfQ09O
VEVYVChqc0NvbnRleHQuZ2V0KCkpKTsKKyAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hl
blRlc3RGaW5pc2hlcyhHX09CSkVDVChqc0NvbnRleHQuZ2V0KCkpKTsKKworICAgICAgICBXZWJL
aXRET01Eb2N1bWVudCogZG9jdW1lbnQgPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2RvbV9kb2N1bWVu
dChwYWdlKTsKKyAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChkb2N1bWVu
dCkpOworICAgICAgICBhc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JK
RUNUKGRvY3VtZW50KSk7CisKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4ganNEb2N1bWVudCA9
IGFkb3B0R1JlZih3ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0KGZyYW1l
LCBXRUJLSVRfRE9NX09CSkVDVChkb2N1bWVudCkpKTsKKyAgICAgICAgZ19hc3NlcnQoSlNDX0lT
X1ZBTFVFKGpzRG9jdW1lbnQuZ2V0KCkpKTsKKyAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVk
V2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChqc0RvY3VtZW50LmdldCgpKSk7CisgICAgICAgIGdf
YXNzZXJ0KGpzY192YWx1ZV9nZXRfY29udGV4dChqc0RvY3VtZW50LmdldCgpKSA9PSBqc0NvbnRl
eHQuZ2V0KCkpOworCisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHZhbHVlID0gYWRvcHRHUmVm
KGpzY19jb250ZXh0X2dldF92YWx1ZShqc0NvbnRleHQuZ2V0KCksICJkb2N1bWVudCIpKTsKKyAg
ICAgICAgZ19hc3NlcnQodmFsdWUuZ2V0KCkgPT0ganNEb2N1bWVudC5nZXQoKSk7CisKKyNpZiBQ
TEFURk9STShHVEspCisgICAgICAgIEdfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwor
ICAgICAgICBXZWJLaXRET01FbGVtZW50KiBwID0gd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZWxl
bWVudF9ieV9pZChkb2N1bWVudCwgInBhcmFncmFwaCIpOworICAgICAgICBHX0dOVUNfRU5EX0lH
Tk9SRV9ERVBSRUNBVElPTlM7CisgICAgICAgIGdfYXNzZXJ0KFdFQktJVF9ET01fSVNfRUxFTUVO
VChwKSk7CisgICAgICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19P
QkpFQ1QocCkpOworCisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IGpzUCA9IGFkb3B0R1JlZih3
ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0KGZyYW1lLCBXRUJLSVRfRE9N
X09CSkVDVChwKSkpOworI2Vsc2UKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4ganNQID0gYWRv
cHRHUmVmKGpzY192YWx1ZV9vYmplY3RfaW52b2tlX21ldGhvZChqc0RvY3VtZW50LmdldCgpLCAi
Z2V0RWxlbWVudEJ5SWQiLCBHX1RZUEVfU1RSSU5HLCAicGFyYWdyYXBoIiwgR19UWVBFX05PTkUp
KTsKKyNlbmRpZgorICAgICAgICBnX2Fzc2VydChKU0NfSVNfVkFMVUUoanNQLmdldCgpKSk7Cisg
ICAgICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1QoanNQ
LmdldCgpKSk7CisgICAgICAgIGdfYXNzZXJ0KGpzY192YWx1ZV9pc19vYmplY3QoanNQLmdldCgp
KSk7CisgICAgICAgIGdfYXNzZXJ0KGpzY192YWx1ZV9nZXRfY29udGV4dChqc1AuZ2V0KCkpID09
IGpzQ29udGV4dC5nZXQoKSk7CisKKyAgICAgICAgdmFsdWUgPSBhZG9wdEdSZWYoanNjX2NvbnRl
eHRfZXZhbHVhdGUoanNDb250ZXh0LmdldCgpLCAiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bh
cmFncmFwaCcpIikpOworICAgICAgICBnX2Fzc2VydCh2YWx1ZS5nZXQoKSA9PSBqc1AuZ2V0KCkp
OworI2lmIFBMQVRGT1JNKEdUSykKKyAgICAgICAgdmFsdWUgPSBhZG9wdEdSZWYoanNjX3ZhbHVl
X29iamVjdF9pbnZva2VfbWV0aG9kKGpzRG9jdW1lbnQuZ2V0KCksICJnZXRFbGVtZW50QnlJZCIs
IEdfVFlQRV9TVFJJTkcsICJwYXJhZ3JhcGgiLCBHX1RZUEVfTk9ORSkpOworICAgICAgICBnX2Fz
c2VydCh2YWx1ZS5nZXQoKSA9PSBqc1AuZ2V0KCkpOworI2VuZGlmCisKKyAgICAgICAgdmFsdWUg
PSBhZG9wdEdSZWYoanNjX3ZhbHVlX29iamVjdF9nZXRfcHJvcGVydHkoanNQLmdldCgpLCAiaW5u
ZXJUZXh0IikpOworICAgICAgICBnX2Fzc2VydChKU0NfSVNfVkFMVUUodmFsdWUuZ2V0KCkpKTsK
KyAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVCh2
YWx1ZS5nZXQoKSkpOworICAgICAgICBnX2Fzc2VydChqc2NfdmFsdWVfaXNfc3RyaW5nKHZhbHVl
LmdldCgpKSk7CisgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gc3RyVmFsdWUoanNjX3ZhbHVlX3Rv
X3N0cmluZyh2YWx1ZS5nZXQoKSkpOworICAgICAgICBnX2Fzc2VydF9jbXBzdHIoc3RyVmFsdWUu
Z2V0KCksID09LCAiVGhpcyBpcyBhIHRlc3QiKTsKKworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVl
PiBqc0ltYWdlID0gYWRvcHRHUmVmKGpzY192YWx1ZV9vYmplY3RfaW52b2tlX21ldGhvZChqc0Rv
Y3VtZW50LmdldCgpLCAiZ2V0RWxlbWVudEJ5SWQiLCBHX1RZUEVfU1RSSU5HLCAiaW1hZ2UiLCBH
X1RZUEVfTk9ORSkpOworICAgICAgICBnX2Fzc2VydChKU0NfSVNfVkFMVUUoanNJbWFnZS5nZXQo
KSkpOworICAgICAgICBhc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JK
RUNUKGpzSW1hZ2UuZ2V0KCkpKTsKKyAgICAgICAgZ19hc3NlcnQoanNjX3ZhbHVlX2lzX29iamVj
dChqc0ltYWdlLmdldCgpKSk7CisKKyAgICAgICAgV2ViS2l0RE9NTm9kZSogaW1hZ2UgPSB3ZWJr
aXRfZG9tX25vZGVfZm9yX2pzX3ZhbHVlKGpzSW1hZ2UuZ2V0KCkpOworICAgICAgICBnX2Fzc2Vy
dChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoaW1hZ2UpKTsKKyAgICAgICAgYXNzZXJ0T2JqZWN0SXNE
ZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChpbWFnZSkpOworI2lmIFBMQVRGT1JNKEdU
SykKKyAgICAgICAgR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisgICAgICAgIGdf
YXNzZXJ0KHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRfYnlfaWQoZG9jdW1lbnQsICJp
bWFnZSIpID09IFdFQktJVF9ET01fRUxFTUVOVChpbWFnZSkpOworICAgICAgICBHX0dOVUNfRU5E
X0lHTk9SRV9ERVBSRUNBVElPTlM7CisjZW5kaWYKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisKICAgICBib29sIHJ1blRlc3QoY29uc3QgY2hhciogdGVzdE5hbWUsIFdlYktpdFdlYlBh
Z2UqIHBhZ2UpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAoIXN0cmNtcCh0ZXN0TmFtZSwg
Im1haW4tZnJhbWUiKSkKQEAgLTcwLDYgKzEzOSw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBy
ZXR1cm4gdGVzdFVSSShwYWdlKTsKICAgICAgICAgaWYgKCFzdHJjbXAodGVzdE5hbWUsICJqYXZh
c2NyaXB0LWNvbnRleHQiKSkKICAgICAgICAgICAgIHJldHVybiB0ZXN0SmF2YVNjcmlwdENvbnRl
eHQocGFnZSk7CisgICAgICAgIGlmICghc3RyY21wKHRlc3ROYW1lLCAiamF2YXNjcmlwdC12YWx1
ZXMiKSkKKyAgICAgICAgICAgIHJldHVybiB0ZXN0SmF2YVNjcmlwdFZhbHVlcyhwYWdlKTsKIAog
ICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBA
IC04MSw0ICsxNTIsNSBAQCBzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fKChjb25zdHJ1Y3Rvcikp
IHJlZ2lzdGVyVGVzdHMoKQogICAgIFJFR0lTVEVSX1RFU1QoV2ViS2l0RnJhbWVUZXN0LCAiV2Vi
S2l0RnJhbWUvbWFpbi1mcmFtZSIpOwogICAgIFJFR0lTVEVSX1RFU1QoV2ViS2l0RnJhbWVUZXN0
LCAiV2ViS2l0RnJhbWUvdXJpIik7CiAgICAgUkVHSVNURVJfVEVTVChXZWJLaXRGcmFtZVRlc3Qs
ICJXZWJLaXRGcmFtZS9qYXZhc2NyaXB0LWNvbnRleHQiKTsKKyAgICBSRUdJU1RFUl9URVNUKFdl
YktpdEZyYW1lVGVzdCwgIldlYktpdEZyYW1lL2phdmFzY3JpcHQtdmFsdWVzIik7CiB9CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdERPTUVsZW1l
bnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RET01FbGVt
ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2QyODA0NmJm
MjQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdM
aWIvVGVzdERPTUVsZW1lbnQuY3BwCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTggSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiwxIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIldl
YlZpZXdUZXN0LmgiCisKK3N0YXRpYyB2b2lkIHRlc3RXZWJLaXRET01FbGVtZW50QXV0b0ZpbGwo
V2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAgc3RhdGljIGNvbnN0IGdj
aGFyKiB0ZXN0SFRNTCA9ICI8aHRtbD48Ym9keT48Zm9ybSBhY3Rpb249JyMnPjxpbnB1dCBpZD0n
YXV0by1maWxsJz48L2lucHV0PjwvZm9ybT48L2JvZHk+PC9odG1sPiI7CisgICAgZ19hc3NlcnQo
dGVzdC0+cnVuV2ViUHJvY2Vzc1Rlc3QoIldlYktpdERPTUVsZW1lbnQiLCAiYXV0by1maWxsIiwg
dGVzdEhUTUwpKTsKK30KKwordm9pZCBiZWZvcmVBbGwoKQoreworICAgIFdlYlZpZXdUZXN0Ojph
ZGQoIldlYktpdERPTUVsZW1lbnQiLCAiYXV0by1maWxsIiwgdGVzdFdlYktpdERPTUVsZW1lbnRB
dXRvRmlsbCk7Cit9CisKK3ZvaWQgYWZ0ZXJBbGwoKQoreworfQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdEVkaXRvci5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEVkaXRvci5jcHAKc2ltaWxhcml0eSBpbmRl
eCA5NiUKcmVuYW1lIGZyb20gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVz
dEVkaXRvci5jcHAKcmVuYW1lIHRvIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xp
Yi9UZXN0RWRpdG9yLmNwcAppbmRleCBkMzRlZmVjZDE5MS4uNThiZTUzZTNiZWQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL1Rlc3RFZGl0b3IuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0RWRpdG9yLmNwcApA
QCAtMjAsOCArMjAsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAiV2ViVmll
d1Rlc3QuaCIKLSNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0jaW5jbHVkZSA8d2Via2l0Mi93ZWJraXQy
Lmg+CiAKIHN0YXRpYyB2b2lkIHRlc3RXZWJLaXRXZWJFZGl0b3JTZWxlY3Rpb25DaGFuZ2VkKFdl
YlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RGcmFtZS5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEZyYW1lLmNwcAppbmRleCAyMzQxZmIzMTZkZS4u
NmYzMzcyOWIxODAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
R0xpYi9UZXN0RnJhbWUuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
R0xpYi9UZXN0RnJhbWUuY3BwCkBAIC0zNiwxMSArMzYsMTggQEAgc3RhdGljIHZvaWQgdGVzdFdl
YktpdEZyYW1lSmF2YVNjcmlwdENvbnRleHQoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50
ZXIpCiAgICAgZ19hc3NlcnQodGVzdC0+cnVuV2ViUHJvY2Vzc1Rlc3QoIldlYktpdEZyYW1lIiwg
ImphdmFzY3JpcHQtY29udGV4dCIpKTsKIH0KIAorc3RhdGljIHZvaWQgdGVzdFdlYktpdEZyYW1l
SmF2YVNjcmlwdFZhbHVlcyhXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAg
ICBzdGF0aWMgY29uc3QgY2hhciogdGVzdEhUTUwgPSAiPGh0bWw+PGJvZHk+PHAgaWQ9J3BhcmFn
cmFwaCc+VGhpcyBpcyBhIHRlc3Q8L3A+PGltZyBpZD0naW1hZ2UnIHNyYz0nZm9vLnBuZyc+PC9i
b2R5PjwvaHRtbD4iOworICAgIGdfYXNzZXJ0KHRlc3QtPnJ1bldlYlByb2Nlc3NUZXN0KCJXZWJL
aXRGcmFtZSIsICJqYXZhc2NyaXB0LXZhbHVlcyIsIHRlc3RIVE1MKSk7Cit9CisKIHZvaWQgYmVm
b3JlQWxsKCkKIHsKICAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRGcmFtZSIsICJtYWluLWZy
YW1lIiwgdGVzdFdlYktpdEZyYW1lTWFpbkZyYW1lKTsKICAgICBXZWJWaWV3VGVzdDo6YWRkKCJX
ZWJLaXRGcmFtZSIsICJ1cmkiLCB0ZXN0V2ViS2l0RnJhbWVVUkkpOwogICAgIFdlYlZpZXdUZXN0
OjphZGQoIldlYktpdEZyYW1lIiwgImphdmFzY3JpcHQtY29udGV4dCIsIHRlc3RXZWJLaXRGcmFt
ZUphdmFTY3JpcHRDb250ZXh0KTsKKyAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRGcmFtZSIs
ICJqYXZhc2NyaXB0LXZhbHVlcyIsIHRlc3RXZWJLaXRGcmFtZUphdmFTY3JpcHRWYWx1ZXMpOwog
fQogCiB2b2lkIGFmdGVyQWxsKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R0xpYi9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYkV4dGVuc2lvbnMuY3BwCmluZGV4IGRmMDQzZGRmMDYw
Li45OGZhNzI0MTJkNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRHTGliL1Rlc3RXZWJFeHRlbnNpb25zLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdEdMaWIvVGVzdFdlYkV4dGVuc2lvbnMuY3BwCkBAIC0zMiw3ICszMiw2IEBAIHN0
YXRpYyBHVW5pcXVlUHRyPGNoYXI+IHNjcmlwdERpYWxvZ1Jlc3VsdDsKIAogI2RlZmluZSBGT1JN
X1NVQk1JU1NJT05fVEVTVF9JRCAiZm9ybS1zdWJtaXNzaW9uLXRlc3QtaWQiCiAKLSNpZiBQTEFU
Rk9STShHVEspCiBzdGF0aWMgdm9pZCB0ZXN0V2ViRXh0ZW5zaW9uR2V0VGl0bGUoV2ViVmlld1Rl
c3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiB7CiAgICAgdGVzdC0+bG9hZEh0bWwoIjxodG1sPjxo
ZWFkPjx0aXRsZT5XZWJLaXRHVEsrIFdlYiBFeHRlbnNpb25zIFRlc3Q8L3RpdGxlPjwvaGVhZD48
Ym9keT48L2JvZHk+PC9odG1sPiIsIDApOwpAQCAtNTMsNiArNTIsNTkgQEAgc3RhdGljIHZvaWQg
dGVzdFdlYkV4dGVuc2lvbkdldFRpdGxlKFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVy
KQogICAgIGdfdmFyaWFudF9nZXQocmVzdWx0LmdldCgpLCAiKCZzKSIsICZ0aXRsZSk7CiAgICAg
Z19hc3NlcnRfY21wc3RyKHRpdGxlLCA9PSwgIldlYktpdEdUSysgV2ViIEV4dGVuc2lvbnMgVGVz
dCIpOwogfQorCisjaWYgUExBVEZPUk0oR1RLKQorc3RhdGljIGdib29sZWFuIGlucHV0RWxlbWVu
dElzVXNlckVkaXRlZChHREJ1c1Byb3h5KiBwcm94eSwgdWludDY0X3QgcGFnZUlELCBjb25zdCBj
aGFyKiBlbGVtZW50SUQpCit7CisgICAgR1JlZlB0cjxHVmFyaWFudD4gcmVzdWx0ID0gYWRvcHRH
UmVmKGdfZGJ1c19wcm94eV9jYWxsX3N5bmMoCisgICAgICAgIHByb3h5LAorICAgICAgICAiSW5w
dXRFbGVtZW50SXNVc2VyRWRpdGVkIiwKKyAgICAgICAgZ192YXJpYW50X25ldygiKHQmcykiLCBw
YWdlSUQsIGVsZW1lbnRJRCksCisgICAgICAgIEdfREJVU19DQUxMX0ZMQUdTX05PTkUsCisgICAg
ICAgIC0xLCBudWxscHRyLCBudWxscHRyKSk7CisgICAgZ19hc3NlcnRfbm9ubnVsbChyZXN1bHQp
OworCisgICAgZ2Jvb2xlYW4gcmV0dmFsOworICAgIGdfdmFyaWFudF9nZXQocmVzdWx0LmdldCgp
LCAiKGIpIiwgJnJldHZhbCk7CisgICAgcmV0dXJuIHJldHZhbDsKK30KKworc3RhdGljIHZvaWQg
dGVzdFdlYkV4dGVuc2lvbklucHV0RWxlbWVudElzVXNlckVkaXRlZChXZWJWaWV3VGVzdCogdGVz
dCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAgICB0ZXN0LT5zaG93SW5XaW5kb3dBbmRXYWl0VW50aWxN
YXBwZWQoKTsKKyAgICB0ZXN0LT5sb2FkSHRtbCgiPGh0bWw+PGJvZHkgaWQ9J2JvZHknPjxpbnB1
dCBpZD0naW5wdXQnPjwvaW5wdXQ+PHRleHRhcmVhIGlkPSd0ZXh0YXJlYSc+PC90ZXh0YXJlYT48
L2JvZHk+PC9odG1sPiIsIG51bGxwdHIpOworICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5pc2hl
ZCgpOworCisgICAgR1VuaXF1ZVB0cjxjaGFyPiBleHRlbnNpb25CdXNOYW1lKGdfc3RyZHVwX3By
aW50Zigib3JnLndlYmtpdC5ndGsuV2ViRXh0ZW5zaW9uVGVzdCV1IiwgVGVzdDo6c193ZWJFeHRl
bnNpb25JRCkpOworICAgIEdSZWZQdHI8R0RCdXNQcm94eT4gcHJveHkgPSBhZG9wdEdSZWYoYnVz
LT5jcmVhdGVQcm94eShleHRlbnNpb25CdXNOYW1lLmdldCgpLAorICAgICAgICAiL29yZy93ZWJr
aXQvZ3RrL1dlYkV4dGVuc2lvblRlc3QiLCAib3JnLndlYmtpdC5ndGsuV2ViRXh0ZW5zaW9uVGVz
dCIsIHRlc3QtPm1fbWFpbkxvb3ApKTsKKworICAgIHVpbnQ2NF90IHBhZ2VJRCA9IHdlYmtpdF93
ZWJfdmlld19nZXRfcGFnZV9pZCh0ZXN0LT5tX3dlYlZpZXcpOworICAgIGdfYXNzZXJ0X2ZhbHNl
KGlucHV0RWxlbWVudElzVXNlckVkaXRlZChwcm94eS5nZXQoKSwgcGFnZUlELCAiaW5wdXQiKSk7
CisgICAgdGVzdC0+cnVuSmF2YVNjcmlwdEFuZFdhaXRVbnRpbEZpbmlzaGVkKCJkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaW5wdXQnKS5mb2N1cygpIiwgbnVsbHB0cik7CisgICAgdGVzdC0+a2V5
U3Ryb2tlKEdES19LRVlfYSk7CisgICAgd2hpbGUgKGd0a19ldmVudHNfcGVuZGluZygpKQorICAg
ICAgICBndGtfbWFpbl9pdGVyYXRpb24oKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IHJlc3VsdFN0
cmluZzsKKyAgICBkbyB7CisgICAgICAgIGF1dG8qIHJlc3VsdCA9IHRlc3QtPnJ1bkphdmFTY3Jp
cHRBbmRXYWl0VW50aWxGaW5pc2hlZCgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0Jyku
dmFsdWUiLCBudWxscHRyKTsKKyAgICAgICAgcmVzdWx0U3RyaW5nLnJlc2V0KFdlYlZpZXdUZXN0
OjpqYXZhc2NyaXB0UmVzdWx0VG9DU3RyaW5nKHJlc3VsdCkpOworICAgIH0gd2hpbGUgKGdfc3Ry
Y21wMChyZXN1bHRTdHJpbmcuZ2V0KCksICJhIikpOworICAgIGdfYXNzZXJ0X3RydWUoaW5wdXRF
bGVtZW50SXNVc2VyRWRpdGVkKHByb3h5LmdldCgpLCBwYWdlSUQsICJpbnB1dCIpKTsKKworICAg
IGdfYXNzZXJ0X2ZhbHNlKGlucHV0RWxlbWVudElzVXNlckVkaXRlZChwcm94eS5nZXQoKSwgcGFn
ZUlELCAidGV4dGFyZWEiKSk7CisgICAgdGVzdC0+cnVuSmF2YVNjcmlwdEFuZFdhaXRVbnRpbEZp
bmlzaGVkKCJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dGFyZWEnKS5mb2N1cygpIiwgbnVs
bHB0cik7CisgICAgdGVzdC0+a2V5U3Ryb2tlKEdES19LRVlfYik7CisgICAgd2hpbGUgKGd0a19l
dmVudHNfcGVuZGluZygpKQorICAgICAgICBndGtfbWFpbl9pdGVyYXRpb24oKTsKKyAgICBkbyB7
CisgICAgICAgIGF1dG8qIHJlc3VsdCA9IHRlc3QtPnJ1bkphdmFTY3JpcHRBbmRXYWl0VW50aWxG
aW5pc2hlZCgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHRhcmVhJykudmFsdWUiLCBudWxs
cHRyKTsKKyAgICAgICAgcmVzdWx0U3RyaW5nLnJlc2V0KFdlYlZpZXdUZXN0OjpqYXZhc2NyaXB0
UmVzdWx0VG9DU3RyaW5nKHJlc3VsdCkpOworICAgIH0gd2hpbGUgKGdfc3RyY21wMChyZXN1bHRT
dHJpbmcuZ2V0KCksICJiIikpOworICAgIGdfYXNzZXJ0X3RydWUoaW5wdXRFbGVtZW50SXNVc2Vy
RWRpdGVkKHByb3h5LmdldCgpLCBwYWdlSUQsICJ0ZXh0YXJlYSIpKTsKKworICAgIGdfYXNzZXJ0
X2ZhbHNlKGlucHV0RWxlbWVudElzVXNlckVkaXRlZChwcm94eS5nZXQoKSwgcGFnZUlELCAiYm9k
eSIpKTsKK30KICNlbmRpZgogCiBzdGF0aWMgdm9pZCBkb2N1bWVudExvYWRlZENhbGxiYWNrKEdE
QnVzQ29ubmVjdGlvbiosIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKiwgY29uc3QgY2hhciosIGNv
bnN0IGNoYXIqLCBHVmFyaWFudCosIFdlYlZpZXdUZXN0KiB0ZXN0KQpAQCAtMjIwLDYgKzI3Miw3
IEBAIHN0YXRpYyB2b2lkIHRlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNQZXJtaXNzaW9uUmVxdWVz
dChXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0CiAgICAgZ19tYWluX2xvb3BfcnVuKHRlc3QtPm1f
bWFpbkxvb3ApOwogICAgIGdfc2lnbmFsX2hhbmRsZXJfZGlzY29ubmVjdCh0ZXN0LT5tX3dlYlZp
ZXcsIHBlcm1pc3Npb25SZXF1ZXN0U2lnbmFsSUQpOwogfQorI2VuZGlmIC8vIFBMQVRGT1JNKEdU
SykKIAogc3RhdGljIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzQ2FsbGJhY2soR0RCdXND
b25uZWN0aW9uKiwgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKiwgY29uc3Qg
Y2hhciosIEdWYXJpYW50KiByZXN1bHQsIFdlYlZpZXdUZXN0KiB0ZXN0KQogewpAQCAtMzk5LDcg
KzQ1Miw2IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJFeHRlbnNpb25Gb3JtU3VibWlzc2lvblN0ZXBz
KEZvcm1TdWJtaXNzaW9uVGVzdCogdGVzdCwgZ2NvbnN0CiAgICAgICAgICI8aWZyYW1lIG5hbWU9
XCJ0YXJnZXRfZnJhbWVcIj48L2lmcmFtZT4iLCBudWxscHRyKTsKICAgICB0ZXN0LT53YWl0VW50
aWxMb2FkRmluaXNoZWQoKTsKIH0KLSNlbmRpZiAvLyBQTEFURk9STShHVEspCiAKIHZvaWQgYmVm
b3JlQWxsKCkKIHsKQEAgLTQwNyw5ICs0NTksOSBAQCB2b2lkIGJlZm9yZUFsbCgpCiAgICAgaWYg
KCFidXMtPnJ1bigpKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBGSVhNRTogVXNlIEpTQyBB
UEkgaW4gdGhlIGV4dGVuc2lvbiB0byBnZXQgdGhlIHRpdGxlIGZyb20gSmF2YVNjcmlwdC4KLSNp
ZiBQTEFURk9STShHVEspCiAgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0V2ViRXh0ZW5zaW9u
IiwgImRvbS1kb2N1bWVudC10aXRsZSIsIHRlc3RXZWJFeHRlbnNpb25HZXRUaXRsZSk7CisjaWYg
UExBVEZPUk0oR1RLKQorICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktpdFdlYkV4dGVuc2lvbiIs
ICJkb20taW5wdXQtZWxlbWVudC1pcy11c2VyLWVkaXRlZCIsIHRlc3RXZWJFeHRlbnNpb25JbnB1
dEVsZW1lbnRJc1VzZXJFZGl0ZWQpOwogI2VuZGlmCiAgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2Vi
S2l0V2ViRXh0ZW5zaW9uIiwgImRvY3VtZW50LWxvYWRlZC1zaWduYWwiLCB0ZXN0RG9jdW1lbnRM
b2FkZWRTaWduYWwpOwogICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAid2Vi
LXByb2Nlc3MtY3Jhc2hlZCIsIHRlc3RXZWJLaXRXZWJWaWV3UHJvY2Vzc0NyYXNoZWQpOwpAQCAt
NDE3LDkgKzQ2OSw5IEBAIHZvaWQgYmVmb3JlQWxsKCkKICAgICBXZWJWaWV3VGVzdDo6YWRkKCJX
ZWJLaXRXZWJFeHRlbnNpb24iLCAiaXNvbGF0ZWQtd29ybGQiLCB0ZXN0V2ViRXh0ZW5zaW9uSXNv
bGF0ZWRXb3JsZCk7CiAjaWYgUExBVEZPUk0oR1RLKQogICAgIFdlYlZpZXdUZXN0OjphZGQoIldl
YktpdFdlYlZpZXciLCAiaW5zdGFsbC1taXNzaW5nLXBsdWdpbnMtcGVybWlzc2lvbi1yZXF1ZXN0
IiwgdGVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0KTsKKyNlbmRpZgog
ICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktpdFdlYkV4dGVuc2lvbiIsICJmb3JtLWNvbnRyb2xz
LWFzc29jaWF0ZWQtc2lnbmFsIiwgdGVzdFdlYkV4dGVuc2lvbkZvcm1Db250cm9sc0Fzc29jaWF0
ZWQpOwogICAgIEZvcm1TdWJtaXNzaW9uVGVzdDo6YWRkKCJXZWJLaXRXZWJFeHRlbnNpb24iLCAi
Zm9ybS1zdWJtaXNzaW9uLXN0ZXBzIiwgdGVzdFdlYkV4dGVuc2lvbkZvcm1TdWJtaXNzaW9uU3Rl
cHMpOwotI2VuZGlmCiB9CiAKIHZvaWQgYWZ0ZXJBbGwoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1dlYkV4dGVuc2lvblRlc3QuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1dlYkV4dGVuc2lvblRlc3QuY3BwCmluZGV4
IDQ3NDUxMWVkYjgyLi5iNWVmY2Q5ZDk2OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRHTGliL1dlYkV4dGVuc2lvblRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9XZWJFeHRlbnNpb25UZXN0LmNwcApAQCAtNDcsNiAr
NDcsMTEgQEAgc3RhdGljIGNvbnN0IGNoYXIgaW50cm9zcGVjdGlvblhNTFtdID0KICAgICAiICAg
PGFyZyB0eXBlPSd0JyBuYW1lPSdwYWdlSUQnIGRpcmVjdGlvbj0naW4nLz4iCiAgICAgIiAgIDxh
cmcgdHlwZT0ncycgbmFtZT0ndGl0bGUnIGRpcmVjdGlvbj0nb3V0Jy8+IgogICAgICIgIDwvbWV0
aG9kPiIKKyAgICAiICA8bWV0aG9kIG5hbWU9J0lucHV0RWxlbWVudElzVXNlckVkaXRlZCc+Igor
ICAgICIgICAgPGFyZyB0eXBlPSd0JyBuYW1lPSdwYWdlSUQnIGRpcmVjdGlvbj0naW4nLz4iCisg
ICAgIiAgICA8YXJnIHR5cGU9J3MnIG5hbWU9J2VsZW1lbnRJRCcgZGlyZWN0aW9uPSdpbicvPiIK
KyAgICAiICAgIDxhcmcgdHlwZT0nYicgbmFtZT0naXNVc2VyRWRpdGVkJyBkaXJlY3Rpb249J291
dCcvPiIKKyAgICAiICA8L21ldGhvZD4iCiAgICAgIiAgPG1ldGhvZCBuYW1lPSdBYm9ydFByb2Nl
c3MnPiIKICAgICAiICA8L21ldGhvZD4iCiAgICAgIiAgPG1ldGhvZCBuYW1lPSdSdW5KYXZhU2Ny
aXB0SW5Jc29sYXRlZFdvcmxkJz4iCkBAIC04NiwxMSArOTEsOSBAQCBzdGF0aWMgY29uc3QgY2hh
ciBpbnRyb3NwZWN0aW9uWE1MW10gPQogdHlwZWRlZiBlbnVtIHsKICAgICBEb2N1bWVudExvYWRl
ZFNpZ25hbCwKICAgICBVUklDaGFuZ2VkU2lnbmFsLAotI2lmIFBMQVRGT1JNKEdUSykKICAgICBG
b3JtQ29udHJvbHNBc3NvY2lhdGVkU2lnbmFsLAogICAgIEZvcm1TdWJtaXNzaW9uV2lsbFNlbmRE
T01FdmVudFNpZ25hbCwKICAgICBGb3JtU3VibWlzc2lvbldpbGxDb21wbGV0ZVNpZ25hbCwKLSNl
bmRpZgogfSBEZWxheWVkU2lnbmFsVHlwZTsKIAogc3RydWN0IERlbGF5ZWRTaWduYWwgewpAQCAt
MTQyLDggKzE0NSwxMCBAQCBzdGF0aWMgdm9pZCBkb2N1bWVudExvYWRlZENhbGxiYWNrKFdlYktp
dFdlYlBhZ2UqIHdlYlBhZ2UsIFdlYktpdFdlYkV4dGVuc2lvbiogZQogewogI2lmIFBMQVRGT1JN
KEdUSykKICAgICBXZWJLaXRET01Eb2N1bWVudCogZG9jdW1lbnQgPSB3ZWJraXRfd2ViX3BhZ2Vf
Z2V0X2RvbV9kb2N1bWVudCh3ZWJQYWdlKTsKKyAgICBHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJF
Q0FUSU9OUzsKICAgICBHUmVmUHRyPFdlYktpdERPTURPTVdpbmRvdz4gd2luZG93ID0gYWRvcHRH
UmVmKHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2RlZmF1bHRfdmlldyhkb2N1bWVudCkpOwogICAg
IHdlYmtpdF9kb21fZG9tX3dpbmRvd193ZWJraXRfbWVzc2FnZV9oYW5kbGVyc19wb3N0X21lc3Nh
Z2Uod2luZG93LmdldCgpLCAiZG9tIiwgIkRvY3VtZW50TG9hZGVkIik7CisgICAgR19HTlVDX0VO
RF9JR05PUkVfREVQUkVDQVRJT05TOwogI2VuZGlmCiAKICAgICBncG9pbnRlciBkYXRhID0gZ19v
YmplY3RfZ2V0X2RhdGEoR19PQkpFQ1QoZXh0ZW5zaW9uKSwgImRidXMtY29ubmVjdGlvbiIpOwpA
QCAtMjE3LDggKzIyMiw2IEBAIHN0YXRpYyBnYm9vbGVhbiBzZW5kUmVxdWVzdENhbGxiYWNrKFdl
YktpdFdlYlBhZ2UqLCBXZWJLaXRVUklSZXF1ZXN0KiByZXF1ZXN0LCBXCiAgICAgcmV0dXJuIHJl
dHVyblZhbHVlOwogfQogCi0vLyBGSVhNRTogZmlndXJlIG91dCB3aGF0IHRvIGRvIHdpdGggV2Vi
S2l0V2ViSGl0VGVzdFJlc3VsdCBpbiBXUEUuCi0jaWYgUExBVEZPUk0oR1RLKQogc3RhdGljIEdW
YXJpYW50KiBzZXJpYWxpemVDb250ZXh0TWVudShXZWJLaXRDb250ZXh0TWVudSogbWVudSkKIHsK
ICAgICBHVmFyaWFudEJ1aWxkZXIgYnVpbGRlcjsKQEAgLTIyOSwxNSArMjMyLDIzIEBAIHN0YXRp
YyBHVmFyaWFudCogc2VyaWFsaXplQ29udGV4dE1lbnUoV2ViS2l0Q29udGV4dE1lbnUqIG1lbnUp
CiAgICAgcmV0dXJuIGdfdmFyaWFudF9idWlsZGVyX2VuZCgmYnVpbGRlcik7CiB9CiAKLXN0YXRp
YyBHVmFyaWFudCogc2VyaWFsaXplTm9kZShXZWJLaXRET01Ob2RlKiBub2RlKQorc3RhdGljIEdW
YXJpYW50KiBzZXJpYWxpemVOb2RlKEpTQ1ZhbHVlKiBub2RlKQogewogICAgIEdWYXJpYW50QnVp
bGRlciBidWlsZGVyOwogICAgIGdfdmFyaWFudF9idWlsZGVyX2luaXQoJmJ1aWxkZXIsIEdfVkFS
SUFOVF9UWVBFX0FSUkFZKTsKLSAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmJ1aWxkZXIsICJ7
c3Z9IiwgIk5hbWUiLCBnX3ZhcmlhbnRfbmV3X3Rha2Vfc3RyaW5nKHdlYmtpdF9kb21fbm9kZV9n
ZXRfbm9kZV9uYW1lKG5vZGUpKSk7Ci0gICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZidWlsZGVy
LCAie3N2fSIsICJUeXBlIiwgZ192YXJpYW50X25ld191aW50MzIod2Via2l0X2RvbV9ub2RlX2dl
dF9ub2RlX3R5cGUobm9kZSkpKTsKLSAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmJ1aWxkZXIs
ICJ7c3Z9IiwgIkNvbnRlbnRzIiwgZ192YXJpYW50X25ld190YWtlX3N0cmluZyh3ZWJraXRfZG9t
X25vZGVfZ2V0X3RleHRfY29udGVudChub2RlKSkpOwotICAgIFdlYktpdERPTU5vZGUqIHBhcmVu
dCA9IHdlYmtpdF9kb21fbm9kZV9nZXRfcGFyZW50X25vZGUobm9kZSk7Ci0gICAgZ192YXJpYW50
X2J1aWxkZXJfYWRkKCZidWlsZGVyLCAie3N2fSIsICJQYXJlbnQiLCBwYXJlbnQgPyBnX3Zhcmlh
bnRfbmV3X3Rha2Vfc3RyaW5nKHdlYmtpdF9kb21fbm9kZV9nZXRfbm9kZV9uYW1lKHBhcmVudCkp
IDogZ192YXJpYW50X25ld19zdHJpbmcoIlJPT1QiKSk7CisgICAgR1JlZlB0cjxKU0NWYWx1ZT4g
dmFsdWUgPSBhZG9wdEdSZWYoanNjX3ZhbHVlX29iamVjdF9nZXRfcHJvcGVydHkobm9kZSwgIm5v
ZGVOYW1lIikpOworICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAi
TmFtZSIsIGdfdmFyaWFudF9uZXdfdGFrZV9zdHJpbmcoanNjX3ZhbHVlX3RvX3N0cmluZyh2YWx1
ZS5nZXQoKSkpKTsKKyAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfdmFsdWVfb2JqZWN0X2dldF9w
cm9wZXJ0eShub2RlLCAibm9kZVR5cGUiKSk7CisgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZi
dWlsZGVyLCAie3N2fSIsICJUeXBlIiwgZ192YXJpYW50X25ld191aW50MzIoanNjX3ZhbHVlX3Rv
X2ludDMyKHZhbHVlLmdldCgpKSkpOworICAgIHZhbHVlID0gYWRvcHRHUmVmKGpzY192YWx1ZV9v
YmplY3RfZ2V0X3Byb3BlcnR5KG5vZGUsICJ0ZXh0Q29udGVudCIpKTsKKyAgICBnX3ZhcmlhbnRf
YnVpbGRlcl9hZGQoJmJ1aWxkZXIsICJ7c3Z9IiwgIkNvbnRlbnRzIiwgZ192YXJpYW50X25ld190
YWtlX3N0cmluZyhqc2NfdmFsdWVfdG9fc3RyaW5nKHZhbHVlLmdldCgpKSkpOworICAgIHZhbHVl
ID0gYWRvcHRHUmVmKGpzY192YWx1ZV9vYmplY3RfZ2V0X3Byb3BlcnR5KG5vZGUsICJwYXJlbnRO
b2RlIikpOworICAgIGlmIChqc2NfdmFsdWVfaXNfbnVsbCh2YWx1ZS5nZXQoKSkpCisgICAgICAg
IGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAiUGFyZW50IiwgZ192YXJp
YW50X25ld19zdHJpbmcoIlJPT1QiKSk7CisgICAgZWxzZSB7CisgICAgICAgIHZhbHVlID0ganNj
X3ZhbHVlX29iamVjdF9nZXRfcHJvcGVydHkodmFsdWUuZ2V0KCksICJub2RlTmFtZSIpOworICAg
ICAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmJ1aWxkZXIsICJ7c3Z9IiwgIlBhcmVudCIsIGdf
dmFyaWFudF9uZXdfdGFrZV9zdHJpbmcoanNjX3ZhbHVlX3RvX3N0cmluZyh2YWx1ZS5nZXQoKSkp
KTsKKyAgICB9CiAgICAgcmV0dXJuIGdfdmFyaWFudF9idWlsZGVyX2VuZCgmYnVpbGRlcik7CiB9
CiAKQEAgLTI2NywxMyArMjc4LDE0IEBAIHN0YXRpYyBnYm9vbGVhbiBjb250ZXh0TWVudUNhbGxi
YWNrKFdlYktpdFdlYlBhZ2UqIHBhZ2UsIFdlYktpdENvbnRleHRNZW51KiBtZW51CiAgICAgaWYg
KCFnX3N0cmNtcDAocGFnZVVSSSwgIkNvbnRleHRNZW51VGVzdE5vZGUiKSkgewogICAgICAgICBX
ZWJLaXRET01Ob2RlKiBub2RlID0gd2Via2l0X3dlYl9oaXRfdGVzdF9yZXN1bHRfZ2V0X25vZGUo
aGl0VGVzdFJlc3VsdCk7CiAgICAgICAgIGdfYXNzZXJ0KFdFQktJVF9ET01fSVNfTk9ERShub2Rl
KSk7Ci0gICAgICAgIHdlYmtpdF9jb250ZXh0X21lbnVfc2V0X3VzZXJfZGF0YShtZW51LCBzZXJp
YWxpemVOb2RlKG5vZGUpKTsKKyAgICAgICAgYXV0byogZnJhbWUgPSB3ZWJraXRfd2ViX3BhZ2Vf
Z2V0X21haW5fZnJhbWUocGFnZSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IGpzTm9kZSA9
IGFkb3B0R1JlZih3ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0KGZyYW1l
LCBXRUJLSVRfRE9NX09CSkVDVChub2RlKSkpOworICAgICAgICB3ZWJraXRfY29udGV4dF9tZW51
X3NldF91c2VyX2RhdGEobWVudSwgc2VyaWFsaXplTm9kZShqc05vZGUuZ2V0KCkpKTsKICAgICAg
ICAgcmV0dXJuIFRSVUU7CiAgICAgfQogCiAgICAgcmV0dXJuIEZBTFNFOwogfQotI2VuZGlmIC8v
IFBMQVRGT1JNKEdUSykKIAogc3RhdGljIHZvaWQgY29uc29sZU1lc3NhZ2VTZW50Q2FsbGJhY2so
V2ViS2l0V2ViUGFnZSogd2ViUGFnZSwgV2ViS2l0Q29uc29sZU1lc3NhZ2UqIGNvbnNvbGVNZXNz
YWdlKQogewpAQCAtMjgyLDMwICsyOTQsMTUgQEAgc3RhdGljIHZvaWQgY29uc29sZU1lc3NhZ2VT
ZW50Q2FsbGJhY2soV2ViS2l0V2ViUGFnZSogd2ViUGFnZSwgV2ViS2l0Q29uc29sZU1lc3MKICAg
ICAgICAgd2Via2l0X2NvbnNvbGVfbWVzc2FnZV9nZXRfbGV2ZWwoY29uc29sZU1lc3NhZ2UpLCB3
ZWJraXRfY29uc29sZV9tZXNzYWdlX2dldF90ZXh0KGNvbnNvbGVNZXNzYWdlKSwKICAgICAgICAg
d2Via2l0X2NvbnNvbGVfbWVzc2FnZV9nZXRfbGluZShjb25zb2xlTWVzc2FnZSksIHdlYmtpdF9j
b25zb2xlX21lc3NhZ2VfZ2V0X3NvdXJjZV9pZChjb25zb2xlTWVzc2FnZSkpOwogICAgIEdVbmlx
dWVQdHI8Y2hhcj4gbWVzc2FnZVN0cmluZyhnX3ZhcmlhbnRfcHJpbnQodmFyaWFudC5nZXQoKSwg
RkFMU0UpKTsKLSNpZiBQTEFURk9STShHVEspCi0gICAgR1JlZlB0cjxXZWJLaXRET01ET01XaW5k
b3c+IHdpbmRvdyA9IGFkb3B0R1JlZih3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kZWZhdWx0X3Zp
ZXcod2Via2l0X3dlYl9wYWdlX2dldF9kb21fZG9jdW1lbnQod2ViUGFnZSkpKTsKLSAgICBnX2Fz
c2VydChXRUJLSVRfRE9NX0lTX0RPTV9XSU5ET1cod2luZG93LmdldCgpKSk7Ci0gICAgd2Via2l0
X2RvbV9kb21fd2luZG93X3dlYmtpdF9tZXNzYWdlX2hhbmRsZXJzX3Bvc3RfbWVzc2FnZSh3aW5k
b3cuZ2V0KCksICJjb25zb2xlIiwgbWVzc2FnZVN0cmluZy5nZXQoKSk7Ci0jZWxzZQotICAgIEdV
bmlxdWVQdHI8Y2hhcj4gZXNjYXBlZE1lc3NhZ2VTdHJpbmcoc3RhdGljX2Nhc3Q8Y2hhcio+KGdf
bWFsbG9jKHN0cmxlbihtZXNzYWdlU3RyaW5nLmdldCgpKSAqIDIgKyAxKSkpOwotICAgIGNoYXIq
IHNyYyA9IG1lc3NhZ2VTdHJpbmcuZ2V0KCk7Ci0gICAgY2hhciogZGVzdCA9IGVzY2FwZWRNZXNz
YWdlU3RyaW5nLmdldCgpOwotICAgIHdoaWxlICgqc3JjKSB7Ci0gICAgICAgIGlmICgqc3JjID09
ICciJykgewotICAgICAgICAgICAgKmRlc3QrKyA9ICdcXCc7Ci0gICAgICAgICAgICAqZGVzdCsr
ID0gJyInOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICpkZXN0KysgPSAqc3JjOwotICAg
ICAgICArK3NyYzsKLSAgICB9Ci0gICAgKmRlc3QgPSAnXDAnOwotICAgIEdVbmlxdWVQdHI8Y2hh
cj4gc2NyaXB0KGdfc3RyZHVwX3ByaW50Zigid2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMu
Y29uc29sZS5wb3N0TWVzc2FnZShcIiVzXCIpOyIsIGVzY2FwZWRNZXNzYWdlU3RyaW5nLmdldCgp
KSk7CiAgICAgR1JlZlB0cjxKU0NDb250ZXh0PiBqc0NvbnRleHQgPSBhZG9wdEdSZWYod2Via2l0
X2ZyYW1lX2dldF9qc19jb250ZXh0KHdlYmtpdF93ZWJfcGFnZV9nZXRfbWFpbl9mcmFtZSh3ZWJQ
YWdlKSkpOwotICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdCA9IGFkb3B0R1JlZihqc2NfY29u
dGV4dF9ldmFsdWF0ZShqc0NvbnRleHQuZ2V0KCksIHNjcmlwdC5nZXQoKSkpOwotI2VuZGlmCisg
ICAgR1JlZlB0cjxKU0NWYWx1ZT4gY29uc29sZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFs
dWF0ZShqc0NvbnRleHQuZ2V0KCksICJ3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5jb25z
b2xlIikpOworICAgIGdfYXNzZXJ0KEpTQ19JU19WQUxVRShjb25zb2xlLmdldCgpKSk7CisgICAg
aWYgKGpzY192YWx1ZV9pc19vYmplY3QoY29uc29sZS5nZXQoKSkpIHsKKyAgICAgICAgR1JlZlB0
cjxKU0NWYWx1ZT4gcmVzdWx0ID0gYWRvcHRHUmVmKGpzY192YWx1ZV9vYmplY3RfaW52b2tlX21l
dGhvZChjb25zb2xlLmdldCgpLCAicG9zdE1lc3NhZ2UiLCBHX1RZUEVfU1RSSU5HLCBtZXNzYWdl
U3RyaW5nLmdldCgpLCBHX1RZUEVfTk9ORSkpOworICAgICAgICBnX2Fzc2VydChKU0NfSVNfVkFM
VUUocmVzdWx0LmdldCgpKSk7CisgICAgfQogfQogCi0jaWYgUExBVEZPUk0oR1RLKQogc3RhdGlj
IHZvaWQgZW1pdEZvcm1Db250cm9sc0Fzc29jaWF0ZWQoR0RCdXNDb25uZWN0aW9uKiBjb25uZWN0
aW9uLCBjb25zdCBjaGFyKiBmb3JtSWRzKQogewogICAgIGJvb2wgb2sgPSBnX2RidXNfY29ubmVj
dGlvbl9lbWl0X3NpZ25hbCgKQEAgLTMyMSwxMyArMzE4LDE3IEBAIHN0YXRpYyB2b2lkIGVtaXRG
b3JtQ29udHJvbHNBc3NvY2lhdGVkKEdEQnVzQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgY29uc3Qg
Y2hhcioKIAogc3RhdGljIHZvaWQgZm9ybUNvbnRyb2xzQXNzb2NpYXRlZENhbGxiYWNrKFdlYktp
dFdlYlBhZ2UqIHdlYlBhZ2UsIEdQdHJBcnJheSogZm9ybUVsZW1lbnRzLCBXZWJLaXRXZWJFeHRl
bnNpb24qIGV4dGVuc2lvbikKIHsKKyAgICBhdXRvKiBmcmFtZSA9IHdlYmtpdF93ZWJfcGFnZV9n
ZXRfbWFpbl9mcmFtZSh3ZWJQYWdlKTsKICAgICBHU3RyaW5nKiBmb3JtSWRzQnVpbGRlciA9IGdf
c3RyaW5nX25ldyhudWxscHRyKTsKICAgICBmb3IgKGd1aW50IGkgPSAwOyBpIDwgZm9ybUVsZW1l
bnRzLT5sZW47ICsraSkgewogICAgICAgICBnX2Fzc2VydChXRUJLSVRfRE9NX0lTX0VMRU1FTlQo
Z19wdHJfYXJyYXlfaW5kZXgoZm9ybUVsZW1lbnRzLCBpKSkpOwotICAgICAgICBhdXRvIGRvbUVs
ZW1lbnQgPSBXRUJLSVRfRE9NX0VMRU1FTlQoZ19wdHJfYXJyYXlfaW5kZXgoZm9ybUVsZW1lbnRz
LCBpKSk7Ci0gICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gZWxlbWVudElEKHdlYmtpdF9kb21fZWxl
bWVudF9nZXRfaWQoZG9tRWxlbWVudCkpOwotICAgICAgICBpZiAoZWxlbWVudElEKQotICAgICAg
ICAgICAgZ19zdHJpbmdfYXBwZW5kKGZvcm1JZHNCdWlsZGVyLCBlbGVtZW50SUQuZ2V0KCkpOwor
ICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiB2YWx1ZSA9IGFkb3B0R1JlZih3ZWJraXRfZnJhbWVf
Z2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0KGZyYW1lLCBXRUJLSVRfRE9NX09CSkVDVChnX3B0
cl9hcnJheV9pbmRleChmb3JtRWxlbWVudHMsIGkpKSkpOworICAgICAgICBnX2Fzc2VydChKU0Nf
SVNfVkFMVUUodmFsdWUuZ2V0KCkpKTsKKyAgICAgICAgZ19hc3NlcnQoanNjX3ZhbHVlX2lzX29i
amVjdCh2YWx1ZS5nZXQoKSkpOworICAgICAgICBnX2Fzc2VydChqc2NfdmFsdWVfb2JqZWN0X2lz
X2luc3RhbmNlX29mKHZhbHVlLmdldCgpLCAiRWxlbWVudCIpKTsKKyAgICAgICAgR1JlZlB0cjxK
U0NWYWx1ZT4gaWRWYWx1ZSA9IGFkb3B0R1JlZihqc2NfdmFsdWVfb2JqZWN0X2dldF9wcm9wZXJ0
eSh2YWx1ZS5nZXQoKSwgImlkIikpOworICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IGVsZW1lbnRJ
RChqc2NfdmFsdWVfdG9fc3RyaW5nKGlkVmFsdWUuZ2V0KCkpKTsKKyAgICAgICAgZ19zdHJpbmdf
YXBwZW5kKGZvcm1JZHNCdWlsZGVyLCBlbGVtZW50SUQuZ2V0KCkpOwogICAgIH0KICAgICBpZiAo
IWZvcm1JZHNCdWlsZGVyLT5sZW4pIHsKICAgICAgICAgZ19zdHJpbmdfZnJlZShmb3JtSWRzQnVp
bGRlciwgVFJVRSk7CkBAIC0zODEsOCArMzgyLDE4IEBAIHN0YXRpYyB2b2lkIGhhbmRsZUZvcm1T
dWJtaXNzaW9uQ2FsbGJhY2soV2ViS2l0V2ViUGFnZSogd2ViUGFnZSwgRGVsYXllZFNpZ25hbFR5
CiAKIHN0YXRpYyB2b2lkIHdpbGxTdWJtaXRGb3JtQ2FsbGJhY2soV2ViS2l0V2ViUGFnZSogd2Vi
UGFnZSwgV2ViS2l0RE9NRWxlbWVudCogZm9ybUVsZW1lbnQsIFdlYktpdEZvcm1TdWJtaXNzaW9u
U3RlcCBzdGVwLCBXZWJLaXRGcmFtZSogc291cmNlRnJhbWUsIFdlYktpdEZyYW1lKiB0YXJnZXRG
cmFtZSwgR1B0ckFycmF5KiB0ZXh0RmllbGROYW1lcywgR1B0ckFycmF5KiB0ZXh0RmllbGRWYWx1
ZXMsIFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uKQogeworI2lmIFBMQVRGT1JNKEdUSykK
KyAgICBHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKICAgICBnX2Fzc2VydChXRUJL
SVRfRE9NX0lTX0hUTUxfRk9STV9FTEVNRU5UKGZvcm1FbGVtZW50KSk7Ci0gICAgR1VuaXF1ZVB0
cjxjaGFyPiBmb3JtSUQod2Via2l0X2RvbV9lbGVtZW50X2dldF9pZChmb3JtRWxlbWVudCkpOwor
ICAgIEdfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKyNlbmRpZgorICAgIEdSZWZQdHI8
SlNDVmFsdWU+IGpzRm9ybUVsZW1lbnQgPSBhZG9wdEdSZWYod2Via2l0X2ZyYW1lX2dldF9qc192
YWx1ZV9mb3JfZG9tX29iamVjdCh3ZWJraXRfd2ViX3BhZ2VfZ2V0X21haW5fZnJhbWUod2ViUGFn
ZSksIFdFQktJVF9ET01fT0JKRUNUKGZvcm1FbGVtZW50KSkpOworICAgIGdfYXNzZXJ0KEpTQ19J
U19WQUxVRShqc0Zvcm1FbGVtZW50LmdldCgpKSk7CisgICAgZ19hc3NlcnQoanNjX3ZhbHVlX2lz
X29iamVjdChqc0Zvcm1FbGVtZW50LmdldCgpKSk7CisgICAgZ19hc3NlcnQoanNjX3ZhbHVlX29i
amVjdF9pc19pbnN0YW5jZV9vZihqc0Zvcm1FbGVtZW50LmdldCgpLCAiSFRNTEZvcm1FbGVtZW50
IikpOworICAgIEdSZWZQdHI8SlNDVmFsdWU+IGlkVmFsdWUgPSBhZG9wdEdSZWYoanNjX3ZhbHVl
X29iamVjdF9nZXRfcHJvcGVydHkoanNGb3JtRWxlbWVudC5nZXQoKSwgImlkIikpOworICAgIEdV
bmlxdWVQdHI8Y2hhcj4gZm9ybUlEKGpzY192YWx1ZV90b19zdHJpbmcoaWRWYWx1ZS5nZXQoKSkp
OworCiAgICAgc3dpdGNoIChzdGVwKSB7CiAgICAgY2FzZSBXRUJLSVRfRk9STV9TVUJNSVNTSU9O
X1dJTExfU0VORF9ET01fRVZFTlQ6CiAgICAgICAgIGhhbmRsZUZvcm1TdWJtaXNzaW9uQ2FsbGJh
Y2sod2ViUGFnZSwgRm9ybVN1Ym1pc3Npb25XaWxsU2VuZERPTUV2ZW50U2lnbmFsLCAiRm9ybVN1
Ym1pc3Npb25XaWxsU2VuZERPTUV2ZW50IiwgZm9ybUlELmdldCgpLCBzb3VyY2VGcmFtZSwgdGFy
Z2V0RnJhbWUsIHRleHRGaWVsZE5hbWVzLCB0ZXh0RmllbGRWYWx1ZXMsIGV4dGVuc2lvbik7CkBA
IC0zOTQsNyArNDA1LDYgQEAgc3RhdGljIHZvaWQgd2lsbFN1Ym1pdEZvcm1DYWxsYmFjayhXZWJL
aXRXZWJQYWdlKiB3ZWJQYWdlLCBXZWJLaXRET01FbGVtZW50KiBmb3IKICAgICAgICAgZ19hc3Nl
cnRfbm90X3JlYWNoZWQoKTsKICAgICB9CiB9Ci0jZW5kaWYKIAogc3RhdGljIHZvaWQgcGFnZUNy
ZWF0ZWRDYWxsYmFjayhXZWJLaXRXZWJFeHRlbnNpb24qIGV4dGVuc2lvbiwgV2ViS2l0V2ViUGFn
ZSogd2ViUGFnZSwgZ3BvaW50ZXIpCiB7CkBAIC00MDIsMTEgKzQxMiw5IEBAIHN0YXRpYyB2b2lk
IHBhZ2VDcmVhdGVkQ2FsbGJhY2soV2ViS2l0V2ViRXh0ZW5zaW9uKiBleHRlbnNpb24sIFdlYktp
dFdlYlBhZ2UqIHdlCiAgICAgZ19zaWduYWxfY29ubmVjdCh3ZWJQYWdlLCAibm90aWZ5Ojp1cmki
LCBHX0NBTExCQUNLKHVyaUNoYW5nZWRDYWxsYmFjayksIGV4dGVuc2lvbik7CiAgICAgZ19zaWdu
YWxfY29ubmVjdCh3ZWJQYWdlLCAic2VuZC1yZXF1ZXN0IiwgR19DQUxMQkFDSyhzZW5kUmVxdWVz
dENhbGxiYWNrKSwgbnVsbHB0cik7CiAgICAgZ19zaWduYWxfY29ubmVjdCh3ZWJQYWdlLCAiY29u
c29sZS1tZXNzYWdlLXNlbnQiLCBHX0NBTExCQUNLKGNvbnNvbGVNZXNzYWdlU2VudENhbGxiYWNr
KSwgbnVsbHB0cik7Ci0jaWYgUExBVEZPUk0oR1RLKQogICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2Vi
UGFnZSwgImNvbnRleHQtbWVudSIsIEdfQ0FMTEJBQ0soY29udGV4dE1lbnVDYWxsYmFjayksIG51
bGxwdHIpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2ViUGFnZSwgImZvcm0tY29udHJvbHMtYXNz
b2NpYXRlZCIsIEdfQ0FMTEJBQ0soZm9ybUNvbnRyb2xzQXNzb2NpYXRlZENhbGxiYWNrKSwgZXh0
ZW5zaW9uKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KHdlYlBhZ2UsICJ3aWxsLXN1Ym1pdC1mb3Jt
IiwgR19DQUxMQkFDSyh3aWxsU3VibWl0Rm9ybUNhbGxiYWNrKSwgZXh0ZW5zaW9uKTsKLSNlbmRp
ZgogfQogCiBzdGF0aWMgY2hhciogZWNob0NhbGxiYWNrKGNvbnN0IGNoYXIqIG1lc3NhZ2UpCkBA
IC00NDgsMTQgKzQ1NiwyNiBAQCBzdGF0aWMgdm9pZCBtZXRob2RDYWxsQ2FsbGJhY2soR0RCdXND
b25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBjaGFyKiBzZW5kZXIsCiAgICAgICAgIGlmICgh
cGFnZSkKICAgICAgICAgICAgIHJldHVybjsKIAotI2lmIFBMQVRGT1JNKEdUSykKLSAgICAgICAg
V2ViS2l0RE9NRG9jdW1lbnQqIGRvY3VtZW50ID0gd2Via2l0X3dlYl9wYWdlX2dldF9kb21fZG9j
dW1lbnQocGFnZSk7Ci0gICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gdGl0bGUod2Via2l0X2RvbV9k
b2N1bWVudF9nZXRfdGl0bGUoZG9jdW1lbnQpKTsKKyAgICAgICAgR1JlZlB0cjxKU0NDb250ZXh0
PiBqc0NvbnRleHQgPSBhZG9wdEdSZWYod2Via2l0X2ZyYW1lX2dldF9qc19jb250ZXh0KHdlYmtp
dF93ZWJfcGFnZV9nZXRfbWFpbl9mcmFtZShwYWdlKSkpOworICAgICAgICBHUmVmUHRyPEpTQ1Zh
bHVlPiB0aXRsZVZhbHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGpzQ29udGV4
dC5nZXQoKSwgImRvY3VtZW50LnRpdGxlIikpOworICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHRp
dGxlKGpzY192YWx1ZV90b19zdHJpbmcodGl0bGVWYWx1ZS5nZXQoKSkpOwogICAgICAgICBnX2Ri
dXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJuX3ZhbHVlKGludm9jYXRpb24sIGdfdmFyaWFudF9u
ZXcoIihzKSIsIHRpdGxlLmdldCgpKSk7Ci0jZWxpZiBQTEFURk9STShXUEUpCi0gICAgICAgIC8v
IEZJWE1FOiBVc2UgSlNDIEFQSSB0byBnZXQgdGhlIHRpdGxlIGZyb20gSmF2YVNjcmlwdC4KLSAg
ICAgICAgZ19kYnVzX21ldGhvZF9pbnZvY2F0aW9uX3JldHVybl92YWx1ZShpbnZvY2F0aW9uLCBn
X3ZhcmlhbnRfbmV3KCIocykiLCAiIikpOwotI2VuZGlmCisgICAgfSBlbHNlIGlmICghZ19zdHJj
bXAwKG1ldGhvZE5hbWUsICJJbnB1dEVsZW1lbnRJc1VzZXJFZGl0ZWQiKSkgeworICAgICAgICB1
aW50NjRfdCBwYWdlSUQ7CisgICAgICAgIGNvbnN0IGNoYXIqIGVsZW1lbnRJRDsKKyAgICAgICAg
Z192YXJpYW50X2dldChwYXJhbWV0ZXJzLCAiKHQmcykiLCAmcGFnZUlELCAmZWxlbWVudElEKTsK
KyAgICAgICAgV2ViS2l0V2ViUGFnZSogcGFnZSA9IGdldFdlYlBhZ2UoV0VCS0lUX1dFQl9FWFRF
TlNJT04odXNlckRhdGEpLCBwYWdlSUQsIGludm9jYXRpb24pOworICAgICAgICBpZiAoIXBhZ2Up
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgV2ViS2l0RE9NRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gd2Via2l0X3dlYl9wYWdlX2dldF9kb21fZG9jdW1lbnQocGFnZSk7CisgICAgICAgIFdl
YktpdEZyYW1lKiBmcmFtZSA9IHdlYmtpdF93ZWJfcGFnZV9nZXRfbWFpbl9mcmFtZShwYWdlKTsK
KyAgICAgICAgR1JlZlB0cjxKU0NDb250ZXh0PiBqc0NvbnRleHQgPSBhZG9wdEdSZWYod2Via2l0
X2ZyYW1lX2dldF9qc19jb250ZXh0KGZyYW1lKSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+
IGpzRG9jdW1lbnQgPSBhZG9wdEdSZWYod2Via2l0X2ZyYW1lX2dldF9qc192YWx1ZV9mb3JfZG9t
X29iamVjdChmcmFtZSwgV0VCS0lUX0RPTV9PQkpFQ1QoZG9jdW1lbnQpKSk7CisgICAgICAgIEdS
ZWZQdHI8SlNDVmFsdWU+IGpzSW5wdXRFbGVtZW50ID0gYWRvcHRHUmVmKGpzY192YWx1ZV9vYmpl
Y3RfaW52b2tlX21ldGhvZChqc0RvY3VtZW50LmdldCgpLCAiZ2V0RWxlbWVudEJ5SWQiLCBHX1RZ
UEVfU1RSSU5HLCBlbGVtZW50SUQsIEdfVFlQRV9OT05FKSk7CisgICAgICAgIFdlYktpdERPTU5v
ZGUqIG5vZGUgPSB3ZWJraXRfZG9tX25vZGVfZm9yX2pzX3ZhbHVlKGpzSW5wdXRFbGVtZW50Lmdl
dCgpKTsKKyAgICAgICAgZ2Jvb2xlYW4gaXNVc2VyRWRpdGVkID0gd2Via2l0X2RvbV9lbGVtZW50
X2h0bWxfaW5wdXRfZWxlbWVudF9pc191c2VyX2VkaXRlZChXRUJLSVRfRE9NX0VMRU1FTlQobm9k
ZSkpOworICAgICAgICBnX2RidXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJuX3ZhbHVlKGludm9j
YXRpb24sIGdfdmFyaWFudF9uZXcoIihiKSIsIGlzVXNlckVkaXRlZCkpOwogICAgIH0gZWxzZSBp
ZiAoIWdfc3RyY21wMChtZXRob2ROYW1lLCAiUnVuSmF2YVNjcmlwdEluSXNvbGF0ZWRXb3JsZCIp
KSB7CiAgICAgICAgIHVpbnQ2NF90IHBhZ2VJRDsKICAgICAgICAgY29uc3QgY2hhciogc2NyaXB0
OwpAQCAtNTIzLDcgKzU0Myw2IEBAIHN0YXRpYyB2b2lkIGJ1c0FjcXVpcmVkQ2FsbGJhY2soR0RC
dXNDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBjaGFyKiBuYW1lLCBnCiAgICAgICAgIGNh
c2UgVVJJQ2hhbmdlZFNpZ25hbDoKICAgICAgICAgICAgIGVtaXRVUklDaGFuZ2VkKGNvbm5lY3Rp
b24sIGRlbGF5ZWRTaWduYWwuc3RyLmRhdGEoKSk7CiAgICAgICAgICAgICBicmVhazsKLSNpZiBQ
TEFURk9STShHVEspCiAgICAgICAgIGNhc2UgRm9ybUNvbnRyb2xzQXNzb2NpYXRlZFNpZ25hbDoK
ICAgICAgICAgICAgIGVtaXRGb3JtQ29udHJvbHNBc3NvY2lhdGVkKGNvbm5lY3Rpb24sIGRlbGF5
ZWRTaWduYWwuc3RyLmRhdGEoKSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTUzMyw4ICs1NTIs
NiBAQCBzdGF0aWMgdm9pZCBidXNBY3F1aXJlZENhbGxiYWNrKEdEQnVzQ29ubmVjdGlvbiogY29u
bmVjdGlvbiwgY29uc3QgY2hhciogbmFtZSwgZwogICAgICAgICBjYXNlIEZvcm1TdWJtaXNzaW9u
V2lsbFNlbmRET01FdmVudFNpZ25hbDoKICAgICAgICAgICAgIGVtaXRGb3JtU3VibWlzc2lvbkV2
ZW50KGNvbm5lY3Rpb24sICJGb3JtU3VibWlzc2lvbldpbGxTZW5kRE9NRXZlbnQiLCBkZWxheWVk
U2lnbmFsLnN0ci5kYXRhKCksIGRlbGF5ZWRTaWduYWwuc3RyMi5kYXRhKCksIGRlbGF5ZWRTaWdu
YWwuc3RyMy5kYXRhKCksIGRlbGF5ZWRTaWduYWwuYiwgZGVsYXllZFNpZ25hbC5iMik7CiAgICAg
ICAgICAgICBicmVhazsKLSNlbmRpZgotICAgICAgICAgICAgZ19hc3NlcnRfbm90X3JlYWNoZWQo
KTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0R0xpYi9XZWJQcm9jZXNzVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvV2ViUHJvY2Vzc1Rlc3QuY3BwCmluZGV4IDIzMGZlOGI0YzU2Li4z
MDJmNTc2NGQ4ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1dlYlByb2Nlc3NUZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdEdMaWIvV2ViUHJvY2Vzc1Rlc3QuY3BwCkBAIC0zNiw2ICszNiwxOSBAQCBzdGF0aWMgVGVz
dHNNYXAmIHRlc3RzTWFwKCkKICAgICByZXR1cm4gc190ZXN0c01hcDsKIH0KIAorc3RhdGljIHZv
aWQgY2hlY2tMZWFrcygpCit7CisgICAgaWYgKHNfd2F0Y2hlZE9iamVjdHMuaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBnX3ByaW50KCJMZWFrZWQgb2JqZWN0cyBpbiBXZWJQcm9j
ZXNzOiIpOworICAgIGZvciAoY29uc3QgYXV0byBvYmplY3QgOiBzX3dhdGNoZWRPYmplY3RzKQor
ICAgICAgICBnX3ByaW50KCIgJXMoJXApIiwgZ190eXBlX25hbWVfZnJvbV9pbnN0YW5jZShyZWlu
dGVycHJldF9jYXN0PEdUeXBlSW5zdGFuY2UqPihvYmplY3QpKSwgb2JqZWN0KTsKKyAgICBnX3By
aW50KCJcbiIpOworCisgICAgZ19hc3NlcnQoc193YXRjaGVkT2JqZWN0cy5pc0VtcHR5KCkpOwor
fQorCiB2b2lkIFdlYlByb2Nlc3NUZXN0OjphZGQoY29uc3QgU3RyaW5nJiB0ZXN0TmFtZSwgc3Rk
OjpmdW5jdGlvbjxzdGQ6OnVuaXF1ZV9wdHI8V2ViUHJvY2Vzc1Rlc3Q+ICgpPiBjbG9zdXJlKQog
ewogICAgIHRlc3RzTWFwKCkuYWRkKHRlc3ROYW1lLCBXVEZNb3ZlKGNsb3N1cmUpKTsKQEAgLTY4
LDE2ICs4MSw3IEBAIHN0YXRpYyBnYm9vbGVhbiBydW5UZXN0KFdlYktpdFdlYlBhZ2UqIHdlYlBh
Z2UsIGNvbnN0IGNoYXIqIHRlc3RQYXRoKQogc3RhdGljIHZvaWQgd2ViUHJvY2Vzc1Rlc3RSdW5u
ZXJGaW5hbGl6ZShXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlKQogewogICAgIGdfb2JqZWN0X3VucmVm
KHdlYlBhZ2UpOwotCi0gICAgaWYgKHNfd2F0Y2hlZE9iamVjdHMuaXNFbXB0eSgpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBnX3ByaW50KCJMZWFrZWQgb2JqZWN0cyBpbiBXZWJQcm9jZXNzOiIp
OwotICAgIGZvciAoY29uc3QgYXV0byBvYmplY3QgOiBzX3dhdGNoZWRPYmplY3RzKQotICAgICAg
ICBnX3ByaW50KCIgJXMoJXApIiwgZ190eXBlX25hbWVfZnJvbV9pbnN0YW5jZShyZWludGVycHJl
dF9jYXN0PEdUeXBlSW5zdGFuY2UqPihvYmplY3QpKSwgb2JqZWN0KTsKLSAgICBnX3ByaW50KCJc
biIpOwotCi0gICAgZ19hc3NlcnQoc193YXRjaGVkT2JqZWN0cy5pc0VtcHR5KCkpOworICAgIGNo
ZWNrTGVha3MoKTsKIH0KIAogc3RhdGljIHZvaWQgd2luZG93T2JqZWN0Q2xlYXJlZENhbGxiYWNr
KFdlYktpdFNjcmlwdFdvcmxkKiB3b3JsZCwgV2ViS2l0V2ViUGFnZSogd2ViUGFnZSwgV2ViS2l0
RnJhbWUqIGZyYW1lLCBXZWJLaXRXZWJFeHRlbnNpb24qIGV4dGVuc2lvbikKQEAgLTEwMCwzICsx
MDQsOCBAQCBleHRlcm4gIkMiIHZvaWQgd2Via2l0X3dlYl9leHRlbnNpb25faW5pdGlhbGl6ZShX
ZWJLaXRXZWJFeHRlbnNpb24qIGV4dGVuc2lvbikKICAgICB3ZWJraXRXZWJFeHRlbnNpb25TZXRH
YXJiYWdlQ29sbGVjdE9uUGFnZURlc3Ryb3koZXh0ZW5zaW9uKTsKICAgICBnX3NpZ25hbF9jb25u
ZWN0KHdlYmtpdF9zY3JpcHRfd29ybGRfZ2V0X2RlZmF1bHQoKSwgIndpbmRvdy1vYmplY3QtY2xl
YXJlZCIsIEdfQ0FMTEJBQ0sod2luZG93T2JqZWN0Q2xlYXJlZENhbGxiYWNrKSwgZXh0ZW5zaW9u
KTsKIH0KKworc3RhdGljIHZvaWQgX19hdHRyaWJ1dGVfXygoZGVzdHJ1Y3RvcikpIGNoZWNrTGVh
a3NBdEV4aXQoKQoreworICAgIGNoZWNrTGVha3MoKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0F1dG9jbGVhbnVwc1Rlc3QuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvQXV0b2NsZWFudXBzVGVzdC5jcHAKaW5kZXgg
YTIwY2JmZDczMzEuLjBlZGU3MmZhYzQ2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEd0ay9BdXRvY2xlYW51cHNUZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9BdXRvY2xlYW51cHNUZXN0LmNwcApAQCAtNDIsMTMgKzQy
LDE3IEBAIHByaXZhdGU6CiAgICAgICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0Rmlu
aXNoZXMoR19PQkpFQ1QoZG9jdW1lbnQpKTsKIAogICAgICAgICAvLyBUcmFuc2ZlciBmdWxsCisg
ICAgICAgIEdfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwogICAgICAgICBnX2F1dG9w
dHIoV2ViS2l0RE9NRE9NV2luZG93KSB3aW5kb3cgPSB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9k
ZWZhdWx0X3ZpZXcoZG9jdW1lbnQpOwogICAgICAgICBnX2Fzc2VydChXRUJLSVRfRE9NX0lTX0RP
TV9XSU5ET1cod2luZG93KSk7CisgICAgICAgIEdfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9O
UzsKICAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVD
VCh3aW5kb3cpKTsKIAogICAgICAgICAvLyBUcmFuc2ZlciBmdWxsCisgICAgICAgIEdfR05VQ19C
RUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwogICAgICAgICBnX2F1dG9wdHIoV2ViS2l0RE9NUmFu
Z2UpIHJhbmdlID0gd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfcmFuZ2UoZG9jdW1lbnQpOwog
ICAgICAgICBnX2Fzc2VydChXRUJLSVRfRE9NX0lTX1JBTkdFKHJhbmdlKSk7CisgICAgICAgIEdf
R05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKICAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxl
dGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChyYW5nZSkpOwogCiAgICAgICAgIHJldHVybiB0
cnVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9N
Q2xpZW50UmVjdFRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsv
RE9NQ2xpZW50UmVjdFRlc3QuY3BwCmluZGV4IGNhNTkyYzNhYmNmLi4yMGNkZmU1ZWY5MSAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9NQ2xpZW50UmVj
dFRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0RPTUNs
aWVudFJlY3RUZXN0LmNwcApAQCAtMjMsNiArMjMsOCBAQAogI2luY2x1ZGUgPGdpby9naW8uaD4K
ICNpbmNsdWRlIDx3ZWJraXQyL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmg+CiAKK0dfR05VQ19CRUdJ
Tl9JR05PUkVfREVQUkVDQVRJT05TOworCiBjbGFzcyBXZWJLaXRET01DbGllbnRSZWN0VGVzdCA6
IHB1YmxpYyBXZWJQcm9jZXNzVGVzdCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxXZWJQcm9jZXNzVGVzdD4gY3JlYXRlKCkgeyByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFdl
YktpdERPTUNsaWVudFJlY3RUZXN0PihuZXcgV2ViS2l0RE9NQ2xpZW50UmVjdFRlc3QoKSk7IH0K
QEAgLTEwMywzICsxMDUsNSBAQCBzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fKChjb25zdHJ1Y3Rv
cikpIHJlZ2lzdGVyVGVzdHMoKQogICAgIFJFR0lTVEVSX1RFU1QoV2ViS2l0RE9NQ2xpZW50UmVj
dFRlc3QsICJXZWJLaXRET01DbGllbnRSZWN0L2Rpdi1ib3VuZGluZy1jbGllbnQtcmVjdC1wb3Np
dGlvbiIpOwogICAgIFJFR0lTVEVSX1RFU1QoV2ViS2l0RE9NQ2xpZW50UmVjdFRlc3QsICJXZWJL
aXRET01DbGllbnRSZWN0L2Rpdi1jbGllbnQtcmVjdHMtcG9zaXRpb24tYW5kLWxlbmd0aCIpOwog
fQorCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9ET01Ob2RlRmlsdGVyVGVzdC5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9ET01Ob2RlRmlsdGVyVGVzdC5jcHAKaW5k
ZXggMGYxOGQxZjMxODQuLjg5NzA4MzZmNTBiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdEd0ay9ET01Ob2RlRmlsdGVyVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9NTm9kZUZpbHRlclRlc3QuY3BwCkBAIC0yNCw2
ICsyNCw4IEBACiAjaW5jbHVkZSA8d2Via2l0Mi93ZWJraXQtd2ViLWV4dGVuc2lvbi5oPgogI2lu
Y2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBS
RUNBVElPTlM7CisKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXROb2RlRmlsdGVyIHsKICAgICBHT2Jq
ZWN0IHBhcmVudDsKIH0gV2ViS2l0Tm9kZUZpbHRlcjsKQEAgLTIwMSw0ICsyMDMsNCBAQCBzdGF0
aWMgdm9pZCBfX2F0dHJpYnV0ZV9fKChjb25zdHJ1Y3RvcikpIHJlZ2lzdGVyVGVzdHMoKQogICAg
IFJFR0lTVEVSX1RFU1QoV2ViS2l0RE9NTm9kZUZpbHRlclRlc3QsICJXZWJLaXRET01Ob2RlRmls
dGVyL25vZGUtaXRlcmF0b3IiKTsKIH0KIAotCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElP
TlM7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9ET01O
b2RlVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9ET01Ob2Rl
VGVzdC5jcHAKaW5kZXggOWQ1N2I0MmQyYzEuLjc5ZDc2YWU3ZDIzIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9ET01Ob2RlVGVzdC5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9NTm9kZVRlc3QuY3BwCkBAIC0yNCw2
ICsyNCw4IEBACiAjaW5jbHVkZSA8d2Via2l0Mi93ZWJraXQtd2ViLWV4dGVuc2lvbi5oPgogI2lu
Y2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBS
RUNBVElPTlM7CisKIGNsYXNzIFdlYktpdERPTU5vZGVUZXN0IDogcHVibGljIFdlYlByb2Nlc3NU
ZXN0IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFdlYlByb2Nlc3NUZXN0
PiBjcmVhdGUoKSB7IHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0RE9NTm9kZVRlc3Q+KG5l
dyBXZWJLaXRET01Ob2RlVGVzdCgpKTsgfQpAQCAtMjk3LDQgKzI5OSw0IEBAIHN0YXRpYyB2b2lk
IF9fYXR0cmlidXRlX18oKGNvbnN0cnVjdG9yKSkgcmVnaXN0ZXJUZXN0cygpCiAgICAgUkVHSVNU
RVJfVEVTVChXZWJLaXRET01Ob2RlVGVzdCwgIldlYktpdERPTU5vZGUvZG9tLWNhY2hlIik7CiB9
CiAKLQorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9NWFBhdGhOU1Jlc29sdmVyVGVzdC5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9ET01YUGF0aE5TUmVzb2x2ZXJU
ZXN0LmNwcAppbmRleCAxMTA2NzdlNDE0Mi4uZWJiOGYzOTI0YTIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0RPTVhQYXRoTlNSZXNvbHZlclRlc3QuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0RPTVhQYXRoTlNSZXNv
bHZlclRlc3QuY3BwCkBAIC0yNCw2ICsyNCw4IEBACiAjaW5jbHVkZSA8d2Via2l0Mi93ZWJraXQt
d2ViLWV4dGVuc2lvbi5oPgogI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KIAorR19H
TlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRY
UGF0aE5TUmVzb2x2ZXIgewogICAgIEdPYmplY3QgcGFyZW50OwogfSBXZWJLaXRYUGF0aE5TUmVz
b2x2ZXI7CkBAIC0xMjIsMyArMTI0LDUgQEAgc3RhdGljIHZvaWQgX19hdHRyaWJ1dGVfXygoY29u
c3RydWN0b3IpKSByZWdpc3RlclRlc3RzKCkKICAgICBSRUdJU1RFUl9URVNUKFdlYktpdERPTVhQ
YXRoTlNSZXNvbHZlclRlc3QsICJXZWJLaXRET01YUGF0aE5TUmVzb2x2ZXIvbmF0aXZlIik7CiAg
ICAgUkVHSVNURVJfVEVTVChXZWJLaXRET01YUGF0aE5TUmVzb2x2ZXJUZXN0LCAiV2ViS2l0RE9N
WFBhdGhOU1Jlc29sdmVyL2N1c3RvbSIpOwogfQorCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNB
VElPTlM7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9F
ZGl0b3JUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0VkaXRv
clRlc3QuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMjJkOGFiMzg5Mi4uMDAw
MDAwMDAwMDAKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRWRpdG9y
VGVzdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMzAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNSBSZWQgSGF0IEluYy4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAi
V2ViUHJvY2Vzc1Rlc3QuaCIKLQotI2RlZmluZSBXRUJLSVRfRE9NX1VTRV9VTlNUQUJMRV9BUEkK
LSNpbmNsdWRlIDx3ZWJraXRkb20vV2ViS2l0RE9NRE9NU2VsZWN0aW9uLmg+Ci0jaW5jbHVkZSA8
d2Via2l0ZG9tL1dlYktpdERPTURPTVdpbmRvd1Vuc3RhYmxlLmg+Ci0KLWNsYXNzIFdlYktpdFdl
YkVkaXRvclRlc3QgOiBwdWJsaWMgV2ViUHJvY2Vzc1Rlc3QgewotcHVibGljOgotICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8V2ViUHJvY2Vzc1Rlc3Q+IGNyZWF0ZSgpIHsgcmV0dXJuIHN0ZDo6
dW5pcXVlX3B0cjxXZWJQcm9jZXNzVGVzdD4obmV3IFdlYktpdFdlYkVkaXRvclRlc3QoKSk7IH0K
LQotcHJpdmF0ZToKLSAgICBzdGF0aWMgdm9pZCBzZWxlY3Rpb25DaGFuZ2VkQ2FsbGJhY2soYm9v
bCogc2VsZWN0aW9uQ2hhbmdlZCkKLSAgICB7Ci0gICAgICAgICpzZWxlY3Rpb25DaGFuZ2VkID0g
dHJ1ZTsKLSAgICB9Ci0KLSAgICB2b2lkIHRlc3RTZWxlY3Rpb25TZWxlY3RBbGwoV2ViS2l0V2Vi
UGFnZSogcGFnZSkKLSAgICB7Ci0gICAgICAgIFdlYktpdERPTURvY3VtZW50KiBkb2N1bWVudCA9
IHdlYmtpdF93ZWJfcGFnZV9nZXRfZG9tX2RvY3VtZW50KHBhZ2UpOwotICAgICAgICBnX2Fzc2Vy
dChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKGRvY3VtZW50KSk7Ci0KLSAgICAgICAgd2Via2l0X2Rv
bV9kb2N1bWVudF9leGVjX2NvbW1hbmQoZG9jdW1lbnQsICJTZWxlY3RBbGwiLCBmYWxzZSwgIiIp
OwotICAgIH0KLQotICAgIHZvaWQgdGVzdFNlbGVjdGlvbkNvbGxhcHNlKFdlYktpdFdlYlBhZ2Uq
IHBhZ2UpCi0gICAgewotICAgICAgICBXZWJLaXRET01Eb2N1bWVudCogZG9jdW1lbnQgPSB3ZWJr
aXRfd2ViX3BhZ2VfZ2V0X2RvbV9kb2N1bWVudChwYWdlKTsKLSAgICAgICAgZ19hc3NlcnQoV0VC
S0lUX0RPTV9JU19ET0NVTUVOVChkb2N1bWVudCkpOwotICAgICAgICBHUmVmUHRyPFdlYktpdERP
TURPTVdpbmRvdz4gZG9tV2luZG93ID0gYWRvcHRHUmVmKHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0
X2RlZmF1bHRfdmlldyhkb2N1bWVudCkpOwotICAgICAgICBnX2Fzc2VydChXRUJLSVRfRE9NX0lT
X0RPTV9XSU5ET1coZG9tV2luZG93LmdldCgpKSk7Ci0gICAgICAgIEdSZWZQdHI8V2ViS2l0RE9N
RE9NU2VsZWN0aW9uPiBkb21TZWxlY3Rpb24gPSBhZG9wdEdSZWYod2Via2l0X2RvbV9kb21fd2lu
ZG93X2dldF9zZWxlY3Rpb24oZG9tV2luZG93LmdldCgpKSk7Ci0gICAgICAgIGdfYXNzZXJ0KFdF
QktJVF9ET01fSVNfRE9NX1NFTEVDVElPTihkb21TZWxlY3Rpb24uZ2V0KCkpKTsKLQotICAgICAg
ICB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fY29sbGFwc2VfdG9fc3RhcnQoZG9tU2VsZWN0aW9u
LmdldCgpLCBudWxscHRyKTsKLSAgICB9Ci0KLSAgICB2b2lkIHRlc3RTZWxlY3Rpb25Nb2RpZnlN
b3ZlKFdlYktpdFdlYlBhZ2UqIHBhZ2UpCi0gICAgewotICAgICAgICBXZWJLaXRET01Eb2N1bWVu
dCogZG9jdW1lbnQgPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2RvbV9kb2N1bWVudChwYWdlKTsKLSAg
ICAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChkb2N1bWVudCkpOwotICAgICAg
ICBHUmVmUHRyPFdlYktpdERPTURPTVdpbmRvdz4gZG9tV2luZG93ID0gYWRvcHRHUmVmKHdlYmtp
dF9kb21fZG9jdW1lbnRfZ2V0X2RlZmF1bHRfdmlldyhkb2N1bWVudCkpOwotICAgICAgICBnX2Fz
c2VydChXRUJLSVRfRE9NX0lTX0RPTV9XSU5ET1coZG9tV2luZG93LmdldCgpKSk7Ci0gICAgICAg
IEdSZWZQdHI8V2ViS2l0RE9NRE9NU2VsZWN0aW9uPiBkb21TZWxlY3Rpb24gPSBhZG9wdEdSZWYo
d2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zZWxlY3Rpb24oZG9tV2luZG93LmdldCgpKSk7Ci0g
ICAgICAgIGdfYXNzZXJ0KFdFQktJVF9ET01fSVNfRE9NX1NFTEVDVElPTihkb21TZWxlY3Rpb24u
Z2V0KCkpKTsKLQotICAgICAgICB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fbW9kaWZ5KGRvbVNl
bGVjdGlvbi5nZXQoKSwgIm1vdmUiLCAiZm9yd2FyZCIsICJjaGFyYWN0ZXIiKTsKLSAgICB9Ci0K
LSAgICB2b2lkIHRlc3RTZWxlY3Rpb25Nb2RpZnlFeHRlbmQoV2ViS2l0V2ViUGFnZSogcGFnZSkK
LSAgICB7Ci0gICAgICAgIFdlYktpdERPTURvY3VtZW50KiBkb2N1bWVudCA9IHdlYmtpdF93ZWJf
cGFnZV9nZXRfZG9tX2RvY3VtZW50KHBhZ2UpOwotICAgICAgICBnX2Fzc2VydChXRUJLSVRfRE9N
X0lTX0RPQ1VNRU5UKGRvY3VtZW50KSk7Ci0gICAgICAgIEdSZWZQdHI8V2ViS2l0RE9NRE9NV2lu
ZG93PiBkb21XaW5kb3cgPSBhZG9wdEdSZWYod2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZGVmYXVs
dF92aWV3KGRvY3VtZW50KSk7Ci0gICAgICAgIGdfYXNzZXJ0KFdFQktJVF9ET01fSVNfRE9NX1dJ
TkRPVyhkb21XaW5kb3cuZ2V0KCkpKTsKLSAgICAgICAgR1JlZlB0cjxXZWJLaXRET01ET01TZWxl
Y3Rpb24+IGRvbVNlbGVjdGlvbiA9IGFkb3B0R1JlZih3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0
X3NlbGVjdGlvbihkb21XaW5kb3cuZ2V0KCkpKTsKLSAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0RP
TV9JU19ET01fU0VMRUNUSU9OKGRvbVNlbGVjdGlvbi5nZXQoKSkpOwotCi0gICAgICAgIHdlYmtp
dF9kb21fZG9tX3NlbGVjdGlvbl9tb2RpZnkoZG9tU2VsZWN0aW9uLmdldCgpLCAiZXh0ZW5kIiwg
ImZvcndhcmQiLCAid29yZCIpOwotICAgIH0KLQotICAgIHZvaWQgdGVzdFNlbGVjdGlvblVuc2Vs
ZWN0KFdlYktpdFdlYlBhZ2UqIHBhZ2UpCi0gICAgewotICAgICAgICBXZWJLaXRET01Eb2N1bWVu
dCogZG9jdW1lbnQgPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2RvbV9kb2N1bWVudChwYWdlKTsKLSAg
ICAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChkb2N1bWVudCkpOwotCi0gICAg
ICAgIHdlYmtpdF9kb21fZG9jdW1lbnRfZXhlY19jb21tYW5kKGRvY3VtZW50LCAiVW5zZWxlY3Qi
LCBmYWxzZSwgIiIpOwotICAgIH0KLQotICAgIGJvb2wgcnVuVGVzdChjb25zdCBjaGFyKiB0ZXN0
TmFtZSwgV2ViS2l0V2ViUGFnZSogcGFnZSkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIGlmICgh
c3RyY21wKHRlc3ROYW1lLCAic2VsZWN0aW9uLWNoYW5nZWQiKSkgewotICAgICAgICAgICAgYm9v
bCBzZWxlY3Rpb25DaGFuZ2VkID0gZmFsc2U7Ci0KLSAgICAgICAgICAgIFdlYktpdFdlYkVkaXRv
ciogZWRpdG9yID0gd2Via2l0X3dlYl9wYWdlX2dldF9lZGl0b3IocGFnZSk7Ci0gICAgICAgICAg
ICBnX2Fzc2VydChXRUJLSVRfSVNfV0VCX0VESVRPUihlZGl0b3IpKTsKLSAgICAgICAgICAgIGFz
c2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1QoZWRpdG9yKSk7Ci0g
ICAgICAgICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQoZWRpdG9yLCAic2VsZWN0aW9uLWNo
YW5nZWQiLCBHX0NBTExCQUNLKHNlbGVjdGlvbkNoYW5nZWRDYWxsYmFjayksICZzZWxlY3Rpb25D
aGFuZ2VkKTsKLQotICAgICAgICAgICAgdGVzdFNlbGVjdGlvblNlbGVjdEFsbChwYWdlKTsKLSAg
ICAgICAgICAgIGdfYXNzZXJ0KHNlbGVjdGlvbkNoYW5nZWQpOwotCi0gICAgICAgICAgICBzZWxl
Y3Rpb25DaGFuZ2VkID0gZmFsc2U7Ci0gICAgICAgICAgICB0ZXN0U2VsZWN0aW9uQ29sbGFwc2Uo
cGFnZSk7Ci0gICAgICAgICAgICBnX2Fzc2VydChzZWxlY3Rpb25DaGFuZ2VkKTsKLQotICAgICAg
ICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IGZhbHNlOwotICAgICAgICAgICAgdGVzdFNlbGVjdGlv
bk1vZGlmeU1vdmUocGFnZSk7Ci0gICAgICAgICAgICBnX2Fzc2VydChzZWxlY3Rpb25DaGFuZ2Vk
KTsKLQotICAgICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IGZhbHNlOwotICAgICAgICAgICAg
dGVzdFNlbGVjdGlvbk1vZGlmeUV4dGVuZChwYWdlKTsKLSAgICAgICAgICAgIGdfYXNzZXJ0KHNl
bGVjdGlvbkNoYW5nZWQpOwotCi0gICAgICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkID0gZmFsc2U7
Ci0gICAgICAgICAgICB0ZXN0U2VsZWN0aW9uVW5zZWxlY3QocGFnZSk7Ci0gICAgICAgICAgICBn
X2Fzc2VydChzZWxlY3Rpb25DaGFuZ2VkKTsKLQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgICAgIH0KLQotICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOwotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgfQotfTsKLQotc3RhdGljIHZvaWQgX19hdHRyaWJ1dGVfXygoY29uc3Ry
dWN0b3IpKSByZWdpc3RlclRlc3RzKCkKLXsKLSAgICBSRUdJU1RFUl9URVNUKFdlYktpdFdlYkVk
aXRvclRlc3QsICJXZWJLaXRXZWJFZGl0b3Ivc2VsZWN0aW9uLWNoYW5nZWQiKTsKLX0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvZ2xpYi9DTWFrZUxpc3RzLnR4dAppbmRleCA4NTA2ZjBhZjI4MS4uNjEyM2E5
YzBkNWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9DTWFrZUxpc3RzLnR4
dAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvQ01ha2VMaXN0cy50eHQKQEAgLTM2LDYg
KzM2LDggQEAgc2V0KFdlYktpdEdMaWJBUElUZXN0RXh0ZW5zaW9uX0xJQlJBUklFUwogKQogCiBz
ZXQoV2ViS2l0R0xpYkFQSVdlYlByb2Nlc3NUZXN0cworICAgICR7VE9PTFNfRElSfS9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvRE9NRWxlbWVudFRlc3QuY3BwCisgICAgJHtUT09MU19E
SVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9FZGl0b3JUZXN0LmNwcAogICAgICR7
VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvRnJhbWVUZXN0LmNwcAog
ICAgICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvV2ViUHJvY2Vz
c1Rlc3QuY3BwCiApCkBAIC0xMjIsNiArMTI0LDcgQEAgQUREX1dLMl9URVNUKFRlc3RDb29raWVN
YW5hZ2VyICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEMK
IEFERF9XSzJfVEVTVChUZXN0RG93bmxvYWRzICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdEdMaWIvVGVzdERvd25sb2Fkcy5jcHApCiBBRERfV0syX1RFU1QoVGVzdFdlYktp
dEZhdmljb25EYXRhYmFzZSAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1Rlc3RXZWJLaXRGYXZpY29uRGF0YWJhc2UuY3BwKQogQUREX1dLMl9URVNUKFRlc3RXZWJL
aXRGaW5kQ29udHJvbGxlciAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1Rlc3RXZWJLaXRGaW5kQ29udHJvbGxlci5jcHApCitBRERfV0syX1RFU1QoVGVzdEVkaXRv
ciAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RFZGl0b3Iu
Y3BwKQogQUREX1dLMl9URVNUKFRlc3RGcmFtZSAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRHTGliL1Rlc3RGcmFtZS5jcHApCiBBRERfV0syX1RFU1QoVGVzdExvYWRlckNs
aWVudCAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RMb2Fk
ZXJDbGllbnQuY3BwKQogQUREX1dLMl9URVNUKFRlc3RNdWx0aXByb2Nlc3MgJHtUT09MU19ESVJ9
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0TXVsdGlwcm9jZXNzLmNwcCkKQEAg
LTEzNywzICsxNDAsNCBAQCBBRERfV0syX1RFU1QoVGVzdFdlYktpdFdlYlZpZXcgJHtUT09MU19E
SVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VwogQUREX1dLMl9URVNUKFRl
c3RXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNwcCkKIEFERF9XSzJf
VEVTVChUZXN0V2Vic2l0ZURhdGEgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0R0xpYi9UZXN0V2Vic2l0ZURhdGEuY3BwKQogQUREX1dLMl9URVNUKFRlc3RDb25zb2xlTWVz
c2FnZSAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RDb25z
b2xlTWVzc2FnZS5jcHApCitBRERfV0syX1RFU1QoVGVzdERPTUVsZW1lbnQgJHtUT09MU19ESVJ9
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0RE9NRWxlbWVudC5jcHApCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvUGxhdGZvcm1HVEsuY21ha2UgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL2dsaWIvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggZGY2YTI2N2M5NGYu
LjViMjliODViODhlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvUGxhdGZv
cm1HVEsuY21ha2UKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1BsYXRmb3JtR1RLLmNt
YWtlCkBAIC0zMCw3ICszMCw2IEBAIGxpc3QoQVBQRU5EIFdlYktpdEdMaWJBUElXZWJQcm9jZXNz
VGVzdHMKICAgICAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9N
Tm9kZVRlc3QuY3BwCiAgICAgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
R3RrL0RPTU5vZGVGaWx0ZXJUZXN0LmNwcAogICAgICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEd0ay9ET01YUGF0aE5TUmVzb2x2ZXJUZXN0LmNwcAotICAgICR7VE9PTFNf
RElSfS9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9FZGl0b3JUZXN0LmNwcAogKQogCiBB
RERfV0syX1RFU1QoSW5zcGVjdG9yVGVzdFNlcnZlciAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRHdGsvSW5zcGVjdG9yVGVzdFNlcnZlci5jcHApCkBAIC00MCw3ICszOSw2
IEBAIEFERF9XSzJfVEVTVChUZXN0RE9NQ2xpZW50UmVjdCAke1RPT0xTX0RJUn0vVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdERPCiBBRERfV0syX1RFU1QoVGVzdERPTU5vZGUgJHtU
T09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL1Rlc3RET01Ob2RlLmNwcCkK
IEFERF9XSzJfVEVTVChUZXN0RE9NTm9kZUZpbHRlciAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRHdGsvVGVzdERPTU5vZGVGaWx0ZXIuY3BwKQogQUREX1dLMl9URVNUKFRl
c3RET01YUGF0aE5TUmVzb2x2ZXIgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0R3RrL1Rlc3RET01YUGF0aE5TUmVzb2x2ZXIuY3BwKQotQUREX1dLMl9URVNUKFRlc3RFZGl0
b3IgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL1Rlc3RFZGl0b3Iu
Y3BwKQogQUREX1dLMl9URVNUKFRlc3RJbnNwZWN0b3IgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R3RrL1Rlc3RJbnNwZWN0b3IuY3BwKQogQUREX1dLMl9URVNUKFRlc3RJ
bnNwZWN0b3JTZXJ2ZXIgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3Rr
L1Rlc3RJbnNwZWN0b3JTZXJ2ZXIuY3BwKQogQUREX1dLMl9URVNUKFRlc3RPcHRpb25NZW51ICR7
VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0T3B0aW9uTWVudS5j
cHApCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvUGxhdGZvcm1XUEUuY21h
a2UgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvUGxhdGZvcm1XUEUuY21ha2UKaW5kZXggYjVk
NWJkM2YxNjMuLmFmZjNiMzRmNWZmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2ds
aWIvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1BsYXRm
b3JtV1BFLmNtYWtlCkBAIC05LDYgKzksNyBAQCBsaXN0KEFQUEVORCBXZWJLaXRHTGliQVBJVGVz
dHNfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICR7REVSSVZFRF9TT1VSQ0VTX1dQRV9BUElfRElS
fQogICAgICR7Rk9SV0FSRElOR19IRUFERVJTX1dQRV9ESVJ9CiAgICAgJHtGT1JXQVJESU5HX0hF
QURFUlNfV1BFX0VYVEVOU0lPTl9ESVJ9CisgICAgJHtGT1JXQVJESU5HX0hFQURFUlNfV1BFX0RP
TV9ESVJ9CiAgICAgJHtUT09MU19ESVJ9L3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kCiApCiAK
</data>
<flag name="review"
          id="354814"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336509</attachid>
            <date>2018-03-26 01:01:32 -0700</date>
            <delta_ts>2018-03-26 13:56:42 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wk2-jsc-dom.diff</filename>
            <type>text/plain</type>
            <size>754483</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA2ZmE5ODcwYWU3OC4uOTkz
YjYxMTE1N2MgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAxOC0wMy0yNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxp
YS5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBBZGQgQVBJIHRvIGNvbnZlcnQgYmV0d2VlbiBE
T00gYW5kIEpTQ1ZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODM0NDgKKworICAgICAgICBSZXZpZXdlZCBieSBNaWNoYWVsIENhdGFuemFyby4K
KworICAgICAgICBEZWZpbmUgRk9SV0FSRElOR19IRUFERVJTX1dQRV9ET01fRElSLgorCisgICAg
ICAgICogU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2U6CisKIDIwMTgtMDMtMjIgIEFkcmlh
biBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBF
bmFibGUgV09GRjIgc3VwcG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAwZjUyZDc4YTAwYy4uOWVkM2ZkMjVhNjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjk1IEBACisyMDE4LTAzLTI1ICBDYXJsb3MgR2FyY2lhIENh
bXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIEFkZCBBUEkg
dG8gY29udmVydCBiZXR3ZWVuIERPTSBhbmQgSlNDVmFsdWUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzQ0OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE1pY2hhZWwgQ2F0YW56YXJvLgorCisgICAgICAgIEFkZCBtZXRob2RzIHRvIGdldCBhIEpTQ1Zh
bHVlIGZvciBhIFdlYktpdERPTU9iamVjdCBhbmQgdG8gY3JlYXRlIGEgV2ViS2l0RE9NTm9kZSBm
cm9tIGEgSlNDVmFsdWUuIERlcHJlY2F0ZQorICAgICAgICBtb3N0IG9mIHRoZSBHVEsrIERPTSBi
aW5kaW5ncyBBUEkgYW5kIG1vdmUgdGhlIG5vbi1kZXByZWNhdGVkIHBhcnRzIHRvIGdsaWIgZGly
IHRvIGJlIGV4cG9zZWQgYnkgV1BFIHRvby4KKworICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtl
OgorICAgICAgICAqIFBsYXRmb3JtV1BFLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXNHVEsudHh0
OgorICAgICAgICAqIFNvdXJjZXNXUEUudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0OgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL0RPTU9iamVjdENhY2hlLmNwcDogUmVuYW1lZCBm
cm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9E
T01PYmplY3RDYWNoZS5jcHAuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ2xpYi9ET00vRE9NT2JqZWN0Q2FjaGUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL0RPTU9iamVjdENhY2hlLmguCisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9N
RG9jdW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6a2l0KToKKyAgICAgICAgKFdl
YktpdDo6Y29yZSk6CisgICAgICAgIChXZWJLaXQ6OndyYXBEb2N1bWVudCk6CisgICAgICAgICh3
ZWJraXRfZG9tX2RvY3VtZW50X2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0X2RvbV9kb2N1
bWVudF9pbml0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGli
L0RPTS9XZWJLaXRET01Eb2N1bWVudFByaXZhdGUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50
UHJpdmF0ZS5oLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIv
RE9NL1dlYktpdERPTUVsZW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6a2l0KToK
KyAgICAgICAgKFdlYktpdDo6Y29yZSk6CisgICAgICAgIChXZWJLaXQ6OndyYXBFbGVtZW50KToK
KyAgICAgICAgKHdlYmtpdF9kb21fZWxlbWVudF9jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtp
dF9kb21fZWxlbWVudF9pbml0KToKKyAgICAgICAgKHdlYmtpdF9kb21fZWxlbWVudF9odG1sX2lu
cHV0X2VsZW1lbnRfaXNfdXNlcl9lZGl0ZWQpOgorICAgICAgICAod2Via2l0X2RvbV9lbGVtZW50
X2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfYXV0b19maWxsZWQpOgorICAgICAgICAod2Via2l0X2Rv
bV9lbGVtZW50X2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfYXV0b19maWxsZWQpOgorICAgICAgICAo
d2Via2l0X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfZWRpdGluZ192YWx1ZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0
RE9NRWxlbWVudFByaXZhdGUuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FbGVtZW50UHJpdmF0ZS5oLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERP
TU5vZGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKF9XZWJLaXRET01Ob2RlUHJpdmF0ZTo6fl9XZWJL
aXRET01Ob2RlUHJpdmF0ZSk6CisgICAgICAgIChXZWJLaXQ6OmtpdCk6CisgICAgICAgIChXZWJL
aXQ6OmNvcmUpOgorICAgICAgICAoV2ViS2l0Ojp3cmFwTm9kZSk6CisgICAgICAgICh3ZWJraXRE
T01Ob2RlQ29uc3RydWN0b3IpOgorICAgICAgICAod2Via2l0RE9NTm9kZUZpbmFsaXplKToKKyAg
ICAgICAgKHdlYmtpdF9kb21fbm9kZV9pbml0KToKKyAgICAgICAgKHdlYmtpdF9kb21fbm9kZV9j
bGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdERPTU5vZGVTZXRDb3JlT2JqZWN0KToKKyAgICAg
ICAgKHdlYmtpdERPTU5vZGVHZXRDb3JlT2JqZWN0KToKKyAgICAgICAgKHdlYmtpdF9kb21fbm9k
ZV9mb3JfanNfdmFsdWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2dsaWIvRE9NL1dlYktpdERPTU5vZGVQcml2YXRlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlUHJp
dmF0ZS5oLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9N
L1dlYktpdERPTU9iamVjdC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NT2JqZWN0LmNwcC4KKyAgICAg
ICAgKHdlYmtpdERPTU9iamVjdFNldFByb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9kb21fb2Jq
ZWN0X2NsYXNzX2luaXQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2dsaWIvRE9NL1dlYktpdERPTVByaXZhdGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
d3JhcCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00v
V2ViS2l0RE9NUHJpdmF0ZS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL0RPTU9iamVjdENhY2hlLmguCisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRGcmFtZS5jcHA6CisgICAg
ICAgICh3ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0KToKKyAgICAgICAg
KHdlYmtpdF9mcmFtZV9nZXRfanNfdmFsdWVfZm9yX2RvbV9vYmplY3RfaW5fc2NyaXB0X3dvcmxk
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdl
YlBhZ2UuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9wYWdlX2NsYXNzX2luaXQpOgorICAgICAg
ICAod2Via2l0V2ViUGFnZUNyZWF0ZSk6CisgICAgICAgICh3ZWJraXRfd2ViX3BhZ2VfZ2V0X2Rv
bV9kb2N1bWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9HT2JqZWN0RXZlbnRMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdPYmplY3RF
dmVudExpc3RlbmVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5jcHA6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2JqZWN0WFBhdGhO
U1Jlc29sdmVyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUF0dHIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQXR0ci5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQmxvYi5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01CbG9iLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01D
REFUQVNlY3Rpb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NQ0RBVEFTZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NSdWxlLmNwcDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1J1bGUu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUNTU1J1bGVMaXN0LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1J1bGVMaXN0Lmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9u
LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1N0eWxlU2hlZXQuY3BwOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTU3R5
bGVTaGVldC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NQ1NTVmFsdWUuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTVmFsdWUuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNoYXJhY3RlckRhdGEuY3Bw
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NQ2hhcmFjdGVyRGF0YS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0Lmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGll
bnRSZWN0TGlzdC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ29tbWVudC5jcHA6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Db21tZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01ET01JbXBsZW1lbnRhdGlvbi5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01JbXBsZW1lbnRhdGlvbi5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NU2Vs
ZWN0aW9uLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTURPTVNlbGVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NVG9rZW5MaXN0LmNwcDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVRva2Vu
TGlzdC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NRE9NV2luZG93LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVdpbmRvdy5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRGVwcmVjYXRlZC5jcHA6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01E
b2N1bWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudEZyYWdtZW50Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01E
b2N1bWVudEd0ay5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnQuY3BwLgorICAgICAgICAo
d2Via2l0RE9NRG9jdW1lbnRET01FdmVudFRhcmdldEluaXQpOgorICAgICAgICAod2Via2l0RE9N
RG9jdW1lbnRJbnN0YWxsUHJvcGVydGllcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudFR5cGUuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRU
eXBlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01FbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01FbGVtZW50R3RrLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FbGVt
ZW50LmNwcC4KKyAgICAgICAgKHdlYmtpdERPTUVsZW1lbnRET01FdmVudFRhcmdldEluaXQpOgor
ICAgICAgICAod2Via2l0RE9NRWxlbWVudEluc3RhbGxQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUV2ZW50LmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUV2ZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01FdmVudFRhcmdldC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVudFRhcmdldC5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRmlsZS5jcHA6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01G
aWxlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01GaWxlTGlzdC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01GaWxlTGlzdC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQuY3Bw
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTEFuY2hvckVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50LmNwcDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxBcHBs
ZXRFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MQXJlYUVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MQlJFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxCUkVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCYXNlRWxlbWVudC5jcHA6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MQmFzZUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCb2R5RWxlbWVudC5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQm9keUVsZW1l
bnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxCdXR0b25FbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCdXR0b25FbGVtZW50Lmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
Q2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQ2FudmFzRWxlbWVudC5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24u
Y3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTENvbGxlY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxETGlzdEVsZW1lbnQuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTERMaXN0
RWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTERpcmVjdG9yeUVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTERpcmVjdG9yeUVsZW1l
bnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxEaXZFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxEaXZFbGVtZW50Lmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRG9jdW1l
bnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTERvY3VtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRWxlbWVudC5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRWxlbWVudC5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTEVtYmVkRWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRW1iZWRFbGVtZW50Lmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRmllbGRT
ZXRFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxGaWVsZFNldEVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGb250RWxlbWVudC5j
cHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MRm9udEVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGb3JtRWxlbWVudC5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRm9ybUVs
ZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TEZyYW1lU2V0RWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRnJhbWVTZXRFbGVtZW50Lmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSFJFbGVt
ZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxIUkVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIZWFkRWxlbWVudC5jcHA6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSGVh
ZEVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxIZWFkaW5nRWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSGVhZGluZ0VsZW1lbnQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxIdG1sRWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSHRtbEVsZW1lbnQuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxJRnJhbWVF
bGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50LmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxJbWFnZUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTElucHV0RWxl
bWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTExJRWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTElFbGVtZW50Lmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGFiZWxF
bGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxMYWJlbEVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMZWdlbmRFbGVtZW50LmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxMZWdlbmRFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGlua0VsZW1lbnQuY3BwOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExpbmtFbGVt
ZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MTWFwRWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWFwRWxlbWVudC5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1hcnF1
ZWVFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxNYXJxdWVlRWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1lbnVFbGVtZW50LmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxNZW51RWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50LmNwcDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNZXRhRWxl
bWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTE1vZEVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1vZEVsZW1lbnQuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPTGlz
dEVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQuY3Bw
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTE9iamVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRHcm91cEVsZW1lbnQuY3BwOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9w
dEdyb3VwRWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1l
bnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24u
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MUGFyYW1FbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQcmVFbGVtZW50
LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxQcmVFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUHJpdmF0ZS5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUXVvdGVFbGVt
ZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxRdW90ZUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxTY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU2VsZWN0RWxl
bWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU3R5bGVFbGVtZW50Lmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
VGFibGVDYXB0aW9uRWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TFRhYmxlQ2VsbEVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJs
ZUNvbEVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudC5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVu
dC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MVGFibGVFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50LmNwcDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxUYWJsZVJvd0VsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxU
YWJsZVNlY3Rpb25FbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50LmNwcDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUZXh0
QXJlYUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxUaXRsZUVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRpdGxlRWxlbWVudC5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTFVMaXN0RWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVUxpc3RFbGVtZW50Lmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01LZXlib2FyZEV2
ZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUtleWJvYXJkRXZlbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU1lZGlhTGlzdC5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01NZWRpYUxpc3QuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TU1vdXNlRXZlbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NTW91c2VFdmVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTmFtZWROb2RlTWFwLmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5hbWVk
Tm9kZU1hcC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NTm9kZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUZpbHRlci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlRmlsdGVyLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2Rl
R3RrLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlLmNwcC4KKyAgICAgICAgKHdlYmtpdERPTU5v
ZGVET01FdmVudFRhcmdldEluaXQpOgorICAgICAgICAod2Via2l0RE9NTm9kZUluc3RhbGxQcm9w
ZXJ0aWVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTU5vZGVJdGVyYXRvci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlSXRlcmF0b3IuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVMaXN0LmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTU5vZGVMaXN0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01PYmplY3QuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVByaXZhdGVHdGsuY3BwOiBSZW5hbWVkIGZyb20g
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTVByaXZhdGUuY3BwLgorICAgICAgICAoV2ViS2l0Ojp3cmFwTm9kZUd0ayk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcml2YXRl
R3RrLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJpdmF0ZS5oLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJvY2Vzc2luZ0luc3RydWN0aW9u
LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUmFuZ2UuY3BwOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUmFuZ2UuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVN0
eWxlU2hlZXQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NU3R5bGVTaGVldC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NU3R5bGVTaGVldExpc3QuY3BwOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NU3R5bGVT
aGVldExpc3QuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTVRleHQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVGV4dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVHJlZVdhbGtlci5jcHA6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01UcmVlV2Fs
a2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01VSUV2ZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTVVJRXZlbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVdoZWVsRXZlbnQuY3BwOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NV2hlZWxF
dmVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NWFBhdGhFeHByZXNzaW9uLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVhQYXRoRXhwcmVzc2lvbi5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhO
U1Jlc29sdmVyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTVhQYXRoTlNSZXNvbHZlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhSZXN1bHQuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBh
dGhSZXN1bHQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL2RvY3Mvd2Via2l0ZG9tZ3RrLTQuMC1zZWN0aW9ucy50eHQ6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZyYW1lLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL0RPTS9XZWJLaXRET01EZWZpbmVzLmg6IFJl
bmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvd3BlL0RPTS9XZWJLaXRET01Eb2N1bWVudC5oOiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL1dlYktpdERPTUVs
ZW1lbnQuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
d3BlL0RPTS9XZWJLaXRET01Ob2RlLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vV2ViS2l0RE9NT2JqZWN0Lmg6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01PYmplY3QuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUv
RE9NL3dlYmtpdGRvbS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVQcml2YXRlLmguCisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdEZyYW1lLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdFdlYkhpdFRlc3RS
ZXN1bHQuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
d3BlL1dlYktpdFdlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS93cGUvV2ViS2l0V2ViUHJvY2Vzc0VudW1UeXBlcy5jcHAudGVtcGxhdGU6IEFkZGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJQcm9j
ZXNzRW51bVR5cGVzLmgudGVtcGxhdGU6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01PYmplY3RQcml2YXRlLmgu
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL3dlYmtpdC13ZWIt
ZXh0ZW5zaW9uLmg6CisKIDIwMTgtMDMtMjUgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFVucmVzb2x2ZWQgdHlwZSB3YXJuaW5ncyB3
aGVuIGdlbmVyYXRpbmcgZ2lyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RL
LmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCA0YWRjZmZiOTY2
My4uMmFmMzM4Yzc1ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21h
a2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtNDAxLDYgKzQwMSw3
IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lU
X0RJUn0vVUlQcm9jZXNzL2xpbnV4IgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9zb3Vw
IgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIi
CisgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9E
T00iCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
IgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00iCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3VuaXgi
CkBAIC04MzEsNiArODMyLDcgQEAgaWYgKEVOQUJMRV9JTlRST1NQRUNUSU9OKQogICAgICAgICAg
ICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXF1ZXN0LmgKICAg
ICAgICAgICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVzcG9u
c2UuaAogICAgICAgICAgICAgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9nbGliLyouY3BwCisgICAgICAgICAgICAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NLyouY3BwCiAgICAgKQogCiAgICAgYWRkX2N1c3RvbV9j
b21tYW5kKApAQCAtODg4LDcgKzg5MCw3IEBAIGZpbGUoV1JJVEUgJHtDTUFLRV9CSU5BUllfRElS
fS9ndGtkb2Mtd2Via2l0Mmd0ay5jZmcKICAgICAiICAgICAgIC1JJHtERVJJVkVEX1NPVVJDRVNf
V0VCS0lUMkdUS19ESVJ9XG4iCiAgICAgIiAgICAgICAtSSR7Rk9SV0FSRElOR19IRUFERVJTX1dF
QktJVDJHVEtfRElSfVxuIgogICAgICJkb2NfZGlyPSR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQ
SS9ndGsvZG9jc1xuIgotICAgICJzb3VyY2VfZGlycz0ke1dFQktJVF9ESVJ9L1NoYXJlZC9BUEkv
Z2xpYiIKKyAgICAic291cmNlX2RpcnM9JHtXRUJLSVRfRElSfS9TaGFyZWQvQVBJL2dsaWJcbiIK
ICAgICAiICAgICAgICAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWJcbiIKICAg
ICAiICAgICAgICAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0a1xuIgogICAgICIg
ICAgICAgICAgICAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2ds
aWJcbiIKQEAgLTkwOSw3ICs5MTEsOCBAQCBmaWxlKFdSSVRFICR7Q01BS0VfQklOQVJZX0RJUn0v
Z3RrZG9jLXdlYmtpdGRvbS5jZmcKICAgICAiICAgICAgIC1JJHtERVJJVkVEX1NPVVJDRVNfV0VC
S0lUMkdUS19ESVJ9XG4iCiAgICAgIiAgICAgICAtSSR7Rk9SV0FSRElOR19IRUFERVJTX1dFQktJ
VDJHVEtfRElSfVxuIgogICAgICJkb2NfZGlyPSR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9kb2NzXG4iCi0gICAgInNvdXJjZV9kaXJzPSR7V0VCS0lU
X0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTVxuIgorICAgICJzb3Vy
Y2VfZGlycz0ke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIv
RE9NXG4iCisgICAgIiAgICAgICAgICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTVxuIgogICAgICJoZWFkZXJzPSR7V2ViS2l0RE9NX0dUS0RPQ19I
RUFERVJTfVxuIgogICAgICJtYWluX3NnbWxfZmlsZT13ZWJraXRkb21ndGstZG9jcy5zZ21sXG4i
CiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BFLmNtYWtlIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFrZQppbmRleCAwM2U3ZTFkOWY2Ny4uODIzZDQxNmI1ZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtOCw2ICs4LDcgQEAgc2V0KFdlYktpdF9TdG9y
YWdlUHJvY2Vzc19PVVRQVVRfTkFNRSBXUEVTdG9yYWdlUHJvY2VzcykKIGZpbGUoTUFLRV9ESVJF
Q1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV1BFX0FQSV9ESVJ9KQogZmlsZShNQUtFX0RJUkVDVE9S
WSAke0ZPUldBUkRJTkdfSEVBREVSU19XUEVfRElSfSkKIGZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtG
T1JXQVJESU5HX0hFQURFUlNfV1BFX0VYVEVOU0lPTl9ESVJ9KQorZmlsZShNQUtFX0RJUkVDVE9S
WSAke0ZPUldBUkRJTkdfSEVBREVSU19XUEVfRE9NX0RJUn0pCiAKIGNvbmZpZ3VyZV9maWxlKHdw
ZS93cGUtd2Via2l0LnBjLmluICR7Q01BS0VfQklOQVJZX0RJUn0vd3BlLXdlYmtpdC5wYyBAT05M
WSkKIApAQCAtNDIsOSArNDMsMTcgQEAgYWRkX2N1c3RvbV9jb21tYW5kKAogICAgIENPTU1BTkQg
bG4gLW4gLXMgLWYgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93
cGUgJHtGT1JXQVJESU5HX0hFQURFUlNfV1BFX0VYVEVOU0lPTl9ESVJ9L3dwZQogKQogCithZGRf
Y3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7Rk9SV0FSRElOR19IRUFERVJTX1dQRV9ET01f
RElSfS93cGUKKyAgICBERVBFTkRTICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvd3BlL0RPTQorICAgIENPTU1BTkQgbG4gLW4gLXMgLWYgJHtXRUJLSVRfRElSfS9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NICR7Rk9SV0FSRElOR19IRUFERVJT
X1dQRV9ET01fRElSfS93cGUKKyAgICBWRVJCQVRJTQorKQorCiBhZGRfY3VzdG9tX3RhcmdldCh3
ZWJraXR3cGUtZmFrZS1hcGktaGVhZGVycwogICAgIERFUEVORFMgJHtGT1JXQVJESU5HX0hFQURF
UlNfV1BFX0RJUn0vd3BlCiAgICAgICAgICAgICAke0ZPUldBUkRJTkdfSEVBREVSU19XUEVfRVhU
RU5TSU9OX0RJUn0vd3BlCisgICAgICAgICAgICAke0ZPUldBUkRJTkdfSEVBREVSU19XUEVfRE9N
X0RJUn0vd3BlCiApCiAKIHNldChXRUJLSVRfRVhUUkFfREVQRU5ERU5DSUVTCkBAIC04MCw2ICs4
OSw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9ERVJJVkVEX1NPVVJDRVMKICAgICAke0RFUklWRURf
U09VUkNFU19XRUJLSVRfRElSfS9XZWJLaXRSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUuYwogCiAg
ICAgJHtERVJJVkVEX1NPVVJDRVNfV1BFX0FQSV9ESVJ9L1dlYktpdEVudW1UeXBlcy5jcHAKKyAg
ICAke0RFUklWRURfU09VUkNFU19XUEVfQVBJX0RJUn0vV2ViS2l0V2ViUHJvY2Vzc0VudW1UeXBl
cy5jcHAKICkKIAogc2V0KFdQRV9BUElfSU5TVEFMTEVEX0hFQURFUlMKQEAgLTEzOCw2ICsxNDgs
MjcgQEAgc2V0KFdQRV9BUElfSU5TVEFMTEVEX0hFQURFUlMKICAgICAke1dFQktJVF9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvd3BlL3dlYmtpdC5oCiApCiAKK3NldChXUEVfV0VCX0VYVEVOU0lPTl9BUElf
SU5TVEFMTEVEX0hFQURFUlMKKyAgICAke0RFUklWRURfU09VUkNFU19XUEVfQVBJX0RJUn0vV2Vi
S2l0V2ViUHJvY2Vzc0VudW1UeXBlcy5oCisgICAgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0Q29uc29sZU1lc3NhZ2UuaAorICAgICR7V0VCS0lU
X0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdEZyYW1lLmgKKyAg
ICAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRT
Y3JpcHRXb3JsZC5oCisgICAgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS93cGUvV2ViS2l0V2ViRWRpdG9yLmgKKyAgICAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJFeHRlbnNpb24uaAorICAgICR7V0VCS0lU
X0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdFdlYkhpdFRlc3RS
ZXN1bHQuaAorICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
d3BlL1dlYktpdFdlYlBhZ2UuaAorICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvd3BlL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmgKKykKKworc2V0KFdQRV9ET01f
QVBJX0lOU1RBTExFRF9IRUFERVJTCisgICAgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS93cGUvRE9NL3dlYmtpdGRvbWRlZmluZXMuaAorICAgICR7V0VCS0lUX0RJ
Un0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL0RPTS93ZWJraXRkb20uaAorICAg
ICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL0RPTS9XZWJL
aXRET01Eb2N1bWVudC5oCisgICAgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS93cGUvRE9NL1dlYktpdERPTUVsZW1lbnQuaAorICAgICR7V0VCS0lUX0RJUn0vV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL0RPTS9XZWJLaXRET01Ob2RlLmgKKyAgICAk
e1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vV2ViS2l0
RE9NT2JqZWN0LmgKKykKKwogIyBUbyBnZW5lcmF0ZSBXZWJLaXRFbnVtVHlwZXMuaCB3ZSB3YW50
IHRvIHVzZSBhbGwgaW5zdGFsbGVkIGhlYWRlcnMsIGV4Y2VwdCBXZWJLaXRFbnVtVHlwZXMuaCBp
dHNlbGYuCiBzZXQoV1BFX0VOVU1fR0VORVJBVElPTl9IRUFERVJTICR7V1BFX0FQSV9JTlNUQUxM
RURfSEVBREVSU30pCiBsaXN0KFJFTU9WRV9JVEVNIFdQRV9FTlVNX0dFTkVSQVRJT05fSEVBREVS
UyAke0RFUklWRURfU09VUkNFU19XUEVfQVBJX0RJUn0vV2ViS2l0RW51bVR5cGVzLmgpCkBAIC0x
NTIsNiArMTgzLDE5IEBAIGFkZF9jdXN0b21fY29tbWFuZCgKICAgICBWRVJCQVRJTQogKQogCitz
ZXQoV1BFX1dFQl9QUk9DRVNTX0VOVU1fR0VORVJBVElPTl9IRUFERVJTICR7V1BFX1dFQl9FWFRF
TlNJT05fQVBJX0lOU1RBTExFRF9IRUFERVJTfSkKK2xpc3QoUkVNT1ZFX0lURU0gV1BFX1dFQl9Q
Uk9DRVNTX0VOVU1fR0VORVJBVElPTl9IRUFERVJTICR7REVSSVZFRF9TT1VSQ0VTX1dQRV9BUElf
RElSfS9XZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVzLmgpCithZGRfY3VzdG9tX2NvbW1hbmQoCisg
ICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dQRV9BUElfRElSfS9XZWJLaXRXZWJQcm9jZXNz
RW51bVR5cGVzLmgKKyAgICAgICAgICAgJHtERVJJVkVEX1NPVVJDRVNfV1BFX0FQSV9ESVJ9L1dl
YktpdFdlYlByb2Nlc3NFbnVtVHlwZXMuY3BwCisgICAgREVQRU5EUyAke1dQRV9XRUJfUFJPQ0VT
U19FTlVNX0dFTkVSQVRJT05fSEVBREVSU30KKworICAgIENPTU1BTkQgZ2xpYi1ta2VudW1zIC0t
dGVtcGxhdGUgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUv
V2ViS2l0V2ViUHJvY2Vzc0VudW1UeXBlcy5oLnRlbXBsYXRlICR7V1BFX1dFQl9QUk9DRVNTX0VO
VU1fR0VORVJBVElPTl9IRUFERVJTfSB8IHNlZCBzL3dlYl9raXQvd2Via2l0LyB8IHNlZCBzL1dF
QktJVF9UWVBFX0tJVC9XRUJLSVRfVFlQRS8gPiAke0RFUklWRURfU09VUkNFU19XUEVfQVBJX0RJ
Un0vV2ViS2l0V2ViUHJvY2Vzc0VudW1UeXBlcy5oCisKKyAgICBDT01NQU5EIGdsaWItbWtlbnVt
cyAtLXRlbXBsYXRlICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
d3BlL1dlYktpdFdlYlByb2Nlc3NFbnVtVHlwZXMuY3BwLnRlbXBsYXRlICR7V1BFX1dFQl9QUk9D
RVNTX0VOVU1fR0VORVJBVElPTl9IRUFERVJTfSB8IHNlZCBzL3dlYl9raXQvd2Via2l0LyA+ICR7
REVSSVZFRF9TT1VSQ0VTX1dQRV9BUElfRElSfS9XZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVzLmNw
cAorICAgIFZFUkJBVElNCispCisKIHNldChXZWJLaXRSZXNvdXJjZXMKICkKIApAQCAtMTg0LDYg
KzIyOCw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7
Rk9SV0FSRElOR19IRUFERVJTX0RJUn0vSmF2YVNjcmlwdENvcmUvZ2xpYiIKICAgICAiJHtGT1JX
QVJESU5HX0hFQURFUlNfV1BFX0RJUn0iCiAgICAgIiR7Rk9SV0FSRElOR19IRUFERVJTX1dQRV9F
WFRFTlNJT05fRElSfSIKKyAgICAiJHtGT1JXQVJESU5HX0hFQURFUlNfV1BFX0RPTV9ESVJ9Igog
ICAgICIke0RFUklWRURfU09VUkNFU19ESVJ9IgogICAgICIke0RFUklWRURfU09VUkNFU19XUEVf
QVBJX0RJUn0iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvIgpA
QCAtMjE3LDcgKzI2Miw5IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVT
CiAgICAgIiR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL3NvdXAiCiAgICAgIiR7V0VCS0lUX0RJUn0v
VUlQcm9jZXNzL3dwZSIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9nbGliIgorICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2dsaWIvRE9NIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL3dwZSIKKyAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS93cGUvRE9NIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3Mvc291cCIKICAg
ICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL3VuaXgiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
b3VyY2VzR1RLLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKaW5kZXggMjhlNmNk
NzA3NWQuLjQwMWNmNjFkNjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKQEAgLTI4MSw2ICsyODEsMTMg
QEAgV2ViUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc01haW5HdGsuY3BwCiBXZWJQcm9jZXNzL3NvdXAv
V2ViS2l0U291cFJlcXVlc3RJbnB1dFN0cmVhbS5jcHAKIFdlYlByb2Nlc3Mvc291cC9XZWJQcm9j
ZXNzU291cC5jcHAKIAorV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vRE9N
T2JqZWN0Q2FjaGUuY3BwIEBuby11bmlmeQorV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z2xpYi9ET00vV2ViS2l0RE9NRG9jdW1lbnQuY3BwIEBuby11bmlmeQorV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NRWxlbWVudC5jcHAgQG5vLXVuaWZ5CitX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01Ob2RlLmNwcCBA
bm8tdW5pZnkKK1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERP
TU9iamVjdC5jcHAgQG5vLXVuaWZ5CitXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGli
L0RPTS9XZWJLaXRET01Qcml2YXRlLmNwcCBAbm8tdW5pZnkKKwogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRDb25zb2xlTWVzc2FnZS5jcHAgQG5vLXVuaWZ5CiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdEV4dGVuc2lvbk1hbmFnZXIuY3Bw
IEBuby11bmlmeQogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRGcmFt
ZS5jcHAgQG5vLXVuaWZ5CkBAIC0yOTEsNyArMjk4LDYgQEAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJIaXRUZXN0UmVzdWx0LmNwcCBAbm8tdW5pZnkKIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5jcHAgQG5vLXVuaWZ5
CiAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vQ29udmVydFRvVVRGOFN0
cmluZy5jcHAKLVdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vRE9NT2JqZWN0
Q2FjaGUuY3BwCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL0dPYmplY3RF
dmVudExpc3RlbmVyLmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9H
T2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vR09iamVjdFhQYXRoTlNSZXNvbHZlci5jcHAKQEAgLTMxMiwxMCArMzE4LDEw
IEBAIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NU2Vs
ZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01ET01Ub2tlbkxpc3QuY3BwCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTURPTVdpbmRvdy5jcHAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NRGVwcmVjYXRlZC5jcHAKLVdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnQuY3BwCitXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50R3RrLmNwcAogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudEZyYWdtZW50LmNwcAogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudFR5cGUu
Y3BwCi1XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1l
bnQuY3BwCitXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVs
ZW1lbnRHdGsuY3BwCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUV2ZW50LmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01FdmVudFRhcmdldC5jcHAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NRmlsZS5jcHAKQEAgLTM4MiwxMiArMzg4LDExIEBAIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NS2V5Ym9hcmRFdmVudC5jcHAKIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTWVkaWFMaXN0LmNwcAog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Nb3VzZUV2ZW50
LmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01OYW1l
ZE5vZGVNYXAuY3BwCi1XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTU5vZGUuY3BwCitXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTU5vZGVHdGsuY3BwCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTU5vZGVGaWx0ZXIuY3BwCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTU5vZGVJdGVyYXRvci5jcHAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUxpc3QuY3BwCi1XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU9iamVjdC5jcHAKLVdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJpdmF0ZS5jcHAKK1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJpdmF0ZUd0ay5jcHAKIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJvY2Vzc2luZ0luc3RydWN0aW9u
LmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01SYW5n
ZS5jcHAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NU3R5
bGVTaGVldC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CmluZGV4IDcwZGJmZGZiY2MxLi5iYWI5YjA2NTZj
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNXUEUudHh0CkBAIC0xOTYsMTIgKzE5NiwyMCBAQCBVSVByb2Nlc3Mvd3Bl
L1dlYlBhc3RlYm9hcmRQcm94eVdQRS5jcHAKIFVJUHJvY2Vzcy93cGUvV2ViUHJlZmVyZW5jZXNX
UEUuY3BwCiBVSVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQb29sV1BFLmNwcAogCitXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9ET01PYmplY3RDYWNoZS5jcHAgQG5vLXVuaWZ5
CitXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01Eb2N1bWVu
dC5jcHAgQG5vLXVuaWZ5CitXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9X
ZWJLaXRET01FbGVtZW50LmNwcCBAbm8tdW5pZnkKK1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2dsaWIvRE9NL1dlYktpdERPTU5vZGUuY3BwIEBuby11bmlmeQorV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NT2JqZWN0LmNwcCBAbm8tdW5pZnkKK1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTVByaXZhdGUuY3Bw
IEBuby11bmlmeQorCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdENv
bnNvbGVNZXNzYWdlLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2dsaWIvV2ViS2l0RXh0ZW5zaW9uTWFuYWdlci5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdEZyYW1lLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0U2NyaXB0V29ybGQuY3BwIEBuby11bmlm
eQogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJFZGl0b3IuY3Bw
IEBuby11bmlmeQogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJF
eHRlbnNpb24uY3BwIEBuby11bmlmeQorV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xp
Yi9XZWJLaXRXZWJIaXRUZXN0UmVzdWx0LmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5jcHAgQG5vLXVuaWZ5CiAKIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvZ2xpYi9JbmplY3RlZEJ1bmRsZUdsaWIuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2Vj
dGlvbnMudHh0IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJn
dGstNC4wLXNlY3Rpb25zLnR4dAppbmRleCBlOTUyMjMxNzIyNS4uOGFjMDQyMDA3ODYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQu
MC1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2Nz
L3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dApAQCAtMTQ5MCw2ICsxNDkwLDggQEAgd2Via2l0
X2ZyYW1lX2dldF9qYXZhc2NyaXB0X2dsb2JhbF9jb250ZXh0CiB3ZWJraXRfZnJhbWVfZ2V0X2ph
dmFzY3JpcHRfY29udGV4dF9mb3Jfc2NyaXB0X3dvcmxkCiB3ZWJraXRfZnJhbWVfZ2V0X2pzX2Nv
bnRleHQKIHdlYmtpdF9mcmFtZV9nZXRfanNfY29udGV4dF9mb3Jfc2NyaXB0X3dvcmxkCit3ZWJr
aXRfZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0Cit3ZWJraXRfZnJhbWVfZ2V0X2pz
X3ZhbHVlX2Zvcl9kb21fb2JqZWN0X2luX3NjcmlwdF93b3JsZAogCiA8U1VCU0VDVElPTiBTdGFu
ZGFyZD4KIFdlYktpdEZyYW1lQ2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbAppbmRleCA3NDk2MTFmMzYw
MS4uMzBkOTdkNjU1YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwKQEAgLTEyOCw5ICsxMjgsMTQgQEAK
ICAgPC9pbmRleD4KIAogICA8aW5kZXggaWQ9ImFwaS1pbmRleC0yLTIwIiByb2xlPSIyLjIwIj4K
LSAgICA8dGl0bGU+SW5kZXggb2YgbmV3IHN5bWJvbHMgaW4gMi4xODwvdGl0bGU+CisgICAgPHRp
dGxlPkluZGV4IG9mIG5ldyBzeW1ib2xzIGluIDIuMjA8L3RpdGxlPgogICAgIDx4aTppbmNsdWRl
IGhyZWY9InhtbC9hcGktaW5kZXgtMi4yMC54bWwiPjx4aTpmYWxsYmFjayAvPjwveGk6aW5jbHVk
ZT4KICAgPC9pbmRleD4KIAorICA8aW5kZXggaWQ9ImFwaS1pbmRleC0yLTIyIiByb2xlPSIyLjIy
Ij4KKyAgICA8dGl0bGU+SW5kZXggb2YgbmV3IHN5bWJvbHMgaW4gMi4yMjwvdGl0bGU+CisgICAg
PHhpOmluY2x1ZGUgaHJlZj0ieG1sL2FwaS1pbmRleC0yLjIyLnhtbCI+PHhpOmZhbGxiYWNrIC8+
PC94aTppbmNsdWRlPgorICA8L2luZGV4PgorCiAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9hbm5v
dGF0aW9uLWdsb3NzYXJ5LnhtbCI+PHhpOmZhbGxiYWNrIC8+PC94aTppbmNsdWRlPgogPC9ib29r
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL0RPTU9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vRE9NT2JqZWN0Q2FjaGUuY3BwCnNpbWlsYXJpdHkg
aW5kZXggMTAwJQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vRE9NT2JqZWN0Q2FjaGUuY3BwCnJlbmFtZSB0byBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL0RPTU9iamVjdENhY2hl
LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL0RPTU9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL0RPTU9iamVjdENhY2hlLmgKc2ltaWxhcml0eSBp
bmRleCA5NSUKcmVuYW1lIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL0RPTU9iamVjdENhY2hlLmgKcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vRE9NT2JqZWN0Q2FjaGUuaApp
bmRleCBlM2U5ZmMzZWM4Ny4uMmJjYmE2NjEwODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9ET01PYmplY3RDYWNoZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00v
RE9NT2JqZWN0Q2FjaGUuaApAQCAtMTYsOCArMTYsNyBAQAogICogIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEg
IFVTQQogICovCiAKLSNpZm5kZWYgRE9NT2JqZWN0Q2FjaGVfaAotI2RlZmluZSBET01PYmplY3RD
YWNoZV9oCisjcHJhZ21hIG9uY2UKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTm9kZTsK
QEAgLTMyLDUgKzMxLDMgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGZvcmdldCh2b2lkKiBv
YmplY3RIYW5kbGUpOwogfTsKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9E
T00vV2ViS2l0RE9NRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01Eb2N1bWVudC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZhNzBhMzJlYzM5Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9X
ZWJLaXRET01Eb2N1bWVudC5jcHAKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqICBDb3B5cmlnaHQg
KEMpIDIwMTggSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiAgQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldlYktpdERPTURvY3VtZW50LmgiCisKKyNpbmNsdWRlICJET01PYmplY3RDYWNoZS5o
IgorI2luY2x1ZGUgIldlYktpdERPTURvY3VtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktp
dERPTU5vZGVQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0RE9NUHJpdmF0ZS5oIgorCisjaWYg
UExBVEZPUk0oR1RLKQorI2luY2x1ZGUgIldlYktpdERPTUV2ZW50VGFyZ2V0LmgiCisjZW5kaWYK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYktpdERPTURvY3VtZW50KiBraXQoV2ViQ29yZTo6
RG9jdW1lbnQqIG9iaikKK3sKKyAgICByZXR1cm4gV0VCS0lUX0RPTV9ET0NVTUVOVChraXQoc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KG9iaikpKTsKK30KKworV2ViQ29yZTo6RG9jdW1lbnQq
IGNvcmUoV2ViS2l0RE9NRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBkb2N1bWVu
dCA/IHN0YXRpY19jYXN0PFdlYkNvcmU6OkRvY3VtZW50Kj4od2Via2l0RE9NTm9kZUdldENvcmVP
YmplY3QoV0VCS0lUX0RPTV9OT0RFKGRvY3VtZW50KSkpIDogbnVsbHB0cjsKK30KKworV2ViS2l0
RE9NRG9jdW1lbnQqIHdyYXBEb2N1bWVudChXZWJDb3JlOjpEb2N1bWVudCogY29yZU9iamVjdCkK
K3sKKyAgICBBU1NFUlQoY29yZU9iamVjdCk7CisjaWYgUExBVEZPUk0oR1RLKQorICAgIHJldHVy
biBXRUJLSVRfRE9NX0RPQ1VNRU5UKGdfb2JqZWN0X25ldyhXRUJLSVRfRE9NX1RZUEVfRE9DVU1F
TlQsICJjb3JlLW9iamVjdCIsIGNvcmVPYmplY3QsIG51bGxwdHIpKTsKKyNlbHNlCisgICAgYXV0
byogZG9jdW1lbnQgPSBXRUJLSVRfRE9NX0RPQ1VNRU5UKGdfb2JqZWN0X25ldyhXRUJLSVRfRE9N
X1RZUEVfRE9DVU1FTlQsIG51bGxwdHIpKTsKKyAgICB3ZWJraXRET01Ob2RlU2V0Q29yZU9iamVj
dChXRUJLSVRfRE9NX05PREUoZG9jdW1lbnQpLCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpOb2RlKj4o
Y29yZU9iamVjdCkpOworICAgIHJldHVybiBkb2N1bWVudDsKKyNlbmRpZgorfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2lmIFBMQVRGT1JNKEdUSykKK0dfR05VQ19CRUdJTl9JR05PUkVf
REVQUkVDQVRJT05TOworR19ERUZJTkVfVFlQRV9XSVRIX0NPREUoV2ViS2l0RE9NRG9jdW1lbnQs
IHdlYmtpdF9kb21fZG9jdW1lbnQsIFdFQktJVF9ET01fVFlQRV9OT0RFLCBHX0lNUExFTUVOVF9J
TlRFUkZBQ0UoV0VCS0lUX0RPTV9UWVBFX0VWRU5UX1RBUkdFVCwgd2Via2l0RE9NRG9jdW1lbnRE
T01FdmVudFRhcmdldEluaXQpKQorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOworI2Vs
c2UKK0dfREVGSU5FX1RZUEUoV2ViS2l0RE9NRG9jdW1lbnQsIHdlYmtpdF9kb21fZG9jdW1lbnQs
IFdFQktJVF9ET01fVFlQRV9OT0RFKQorI2VuZGlmCisKK3N0YXRpYyB2b2lkIHdlYmtpdF9kb21f
ZG9jdW1lbnRfY2xhc3NfaW5pdChXZWJLaXRET01Eb2N1bWVudENsYXNzKiBkb2N1bWVudENsYXNz
KQoreworI2lmIFBMQVRGT1JNKEdUSykKKyAgICBHT2JqZWN0Q2xhc3MqIGdvYmplY3RDbGFzcyA9
IEdfT0JKRUNUX0NMQVNTKGRvY3VtZW50Q2xhc3MpOworICAgIHdlYmtpdERPTURvY3VtZW50SW5z
dGFsbFByb3BlcnRpZXMoZ29iamVjdENsYXNzKTsKKyNlbmRpZgorfQorCitzdGF0aWMgdm9pZCB3
ZWJraXRfZG9tX2RvY3VtZW50X2luaXQoV2ViS2l0RE9NRG9jdW1lbnQqKQoreworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTURvY3VtZW50UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01Eb2N1bWVudFByaXZhdGUuaApzaW1p
bGFyaXR5IGluZGV4IDgxJQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlLmgKcmVuYW1l
IHRvIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00v
V2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlLmgKaW5kZXggNjMzY2VkNTBlYjMuLjIzZjAzMjIxYWRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01Eb2N1bWVudFBy
aXZhdGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl
IFdlYktpdCBvcGVuIHNvdXJjZSBwcm9qZWN0LgorICogIENvcHlyaWdodCAoQykgMjAxOCBJZ2Fs
aWEgUy5MLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTE3LDExICsxNywxMCBAQAogICogIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLSNpZm5kZWYgV2ViS2l0RE9NRG9jdW1l
bnRQcml2YXRlX2gKLSNkZWZpbmUgV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlX2gKKyNwcmFnbWEg
b25jZQogCisjaW5jbHVkZSAiV2ViS2l0RE9NRG9jdW1lbnQuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0RvY3VtZW50Lmg+Ci0jaW5jbHVkZSA8d2Via2l0ZG9tL1dlYktpdERPTURvY3VtZW50Lmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogV2ViS2l0RE9NRG9jdW1lbnQqIHdyYXBEb2N1bWVudChXZWJD
b3JlOjpEb2N1bWVudCopOwpAQCAtMjksNCArMjgsNyBAQCBXZWJLaXRET01Eb2N1bWVudCoga2l0
KFdlYkNvcmU6OkRvY3VtZW50Kik7CiBXZWJDb3JlOjpEb2N1bWVudCogY29yZShXZWJLaXRET01E
b2N1bWVudCopOwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvKiBXZWJLaXRET01E
b2N1bWVudFByaXZhdGVfaCAqLworI2lmIFBMQVRGT1JNKEdUSykKK3ZvaWQgd2Via2l0RE9NRG9j
dW1lbnRET01FdmVudFRhcmdldEluaXQoV2ViS2l0RE9NRXZlbnRUYXJnZXRJZmFjZSopOwordm9p
ZCB3ZWJraXRET01Eb2N1bWVudEluc3RhbGxQcm9wZXJ0aWVzKEdPYmplY3RDbGFzcyopOworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2dsaWIvRE9NL1dlYktpdERPTUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01FbGVtZW50LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTMzMjQ5NTU3N2EKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2ds
aWIvRE9NL1dlYktpdERPTUVsZW1lbnQuY3BwCkBAIC0wLDAgKzEsMTY0IEBACisvKgorICogIENv
cHlyaWdodCAoQykgMjAxOCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUg
dGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
KyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViS2l0RE9NRWxlbWVudC5oIgorCisjaW5jbHVkZSAiRE9NT2JqZWN0
Q2FjaGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01FbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUg
IldlYktpdERPTU5vZGVQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0RE9NUHJpdmF0ZS5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvSFRNTElucHV0RWxlbWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
SFRNTFRleHRBcmVhRWxlbWVudC5oPgorCisjaWYgUExBVEZPUk0oR1RLKQorI2luY2x1ZGUgIldl
YktpdERPTUV2ZW50VGFyZ2V0LmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dl
YktpdERPTUVsZW1lbnQqIGtpdChXZWJDb3JlOjpFbGVtZW50KiBvYmopCit7CisgICAgcmV0dXJu
IFdFQktJVF9ET01fRUxFTUVOVChraXQoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KG9iaikp
KTsKK30KKworV2ViQ29yZTo6RWxlbWVudCogY29yZShXZWJLaXRET01FbGVtZW50KiBlbGVtZW50
KQoreworICAgIHJldHVybiBlbGVtZW50ID8gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RWxlbWVudCo+
KHdlYmtpdERPTU5vZGVHZXRDb3JlT2JqZWN0KFdFQktJVF9ET01fTk9ERShlbGVtZW50KSkpIDog
bnVsbHB0cjsKK30KKworV2ViS2l0RE9NRWxlbWVudCogd3JhcEVsZW1lbnQoV2ViQ29yZTo6RWxl
bWVudCogY29yZU9iamVjdCkKK3sKKyAgICBBU1NFUlQoY29yZU9iamVjdCk7CisjaWYgUExBVEZP
Uk0oR1RLKQorICAgIHJldHVybiBXRUJLSVRfRE9NX0VMRU1FTlQoZ19vYmplY3RfbmV3KFdFQktJ
VF9ET01fVFlQRV9FTEVNRU5ULCAiY29yZS1vYmplY3QiLCBjb3JlT2JqZWN0LCBudWxscHRyKSk7
CisjZWxzZQorICAgIGF1dG8qIGVsZW1lbnQgPSBXRUJLSVRfRE9NX0VMRU1FTlQoZ19vYmplY3Rf
bmV3KFdFQktJVF9ET01fVFlQRV9FTEVNRU5ULCBudWxscHRyKSk7CisgICAgd2Via2l0RE9NTm9k
ZVNldENvcmVPYmplY3QoV0VCS0lUX0RPTV9OT0RFKGVsZW1lbnQpLCBzdGF0aWNfY2FzdDxXZWJD
b3JlOjpOb2RlKj4oY29yZU9iamVjdCkpOworICAgIHJldHVybiBlbGVtZW50OworI2VuZGlmCit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjaWYgUExBVEZPUk0oR1RLKQorR19HTlVDX0JF
R0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CitHX0RFRklORV9UWVBFX1dJVEhfQ09ERShXZWJLaXRE
T01FbGVtZW50LCB3ZWJraXRfZG9tX2VsZW1lbnQsIFdFQktJVF9ET01fVFlQRV9OT0RFLCBHX0lN
UExFTUVOVF9JTlRFUkZBQ0UoV0VCS0lUX0RPTV9UWVBFX0VWRU5UX1RBUkdFVCwgd2Via2l0RE9N
RWxlbWVudERPTUV2ZW50VGFyZ2V0SW5pdCkpCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElP
TlM7CisjZWxzZQorR19ERUZJTkVfVFlQRShXZWJLaXRET01FbGVtZW50LCB3ZWJraXRfZG9tX2Vs
ZW1lbnQsIFdFQktJVF9ET01fVFlQRV9OT0RFKQorI2VuZGlmCisKK3N0YXRpYyB2b2lkIHdlYmtp
dF9kb21fZWxlbWVudF9jbGFzc19pbml0KFdlYktpdERPTUVsZW1lbnRDbGFzcyogZWxlbWVudENs
YXNzKQoreworI2lmIFBMQVRGT1JNKEdUSykKKyAgICBHT2JqZWN0Q2xhc3MqIGdvYmplY3RDbGFz
cyA9IEdfT0JKRUNUX0NMQVNTKGVsZW1lbnRDbGFzcyk7CisgICAgd2Via2l0RE9NRWxlbWVudElu
c3RhbGxQcm9wZXJ0aWVzKGdvYmplY3RDbGFzcyk7CisjZW5kaWYKK30KKworc3RhdGljIHZvaWQg
d2Via2l0X2RvbV9lbGVtZW50X2luaXQoV2ViS2l0RE9NRWxlbWVudCopCit7Cit9CisKKy8qKgor
ICogd2Via2l0X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRfZWxlbWVudF9pc191c2VyX2VkaXRlZDoK
KyAqIEBlbGVtZW50OiBhICNXZWJLaXRET01FbGVtZW50CisgKgorICogR2V0IHdoZXRoZXIgQGVs
ZW1lbnQgaXMgYW4gSFRNTCB0ZXh0IGlucHV0IGVsZW1lbnQgdGhhdCBoYXMgYmVlbiBlZGl0ZWQg
YnkgYSB1c2VyIGFjdGlvbi4KKyAqCisgKiBSZXR1cm5zOiB3aGV0aGVyIEBlbGVtZW50IGhhcyBi
ZWVuIGVkaXRlZCBieSBhIHVzZXIgYWN0aW9uLgorICoKKyAqIFNpbmNlOiAyLjIyCisgKi8KK2di
b29sZWFuIHdlYmtpdF9kb21fZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfaXNfdXNlcl9lZGl0
ZWQoV2ViS2l0RE9NRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoZWxlbWVudCksIEZBTFNFKTsKKworICAgIGF1dG8qIG5v
ZGUgPSB3ZWJraXRET01Ob2RlR2V0Q29yZU9iamVjdChXRUJLSVRfRE9NX05PREUoZWxlbWVudCkp
OworICAgIGlmIChpczxXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Pihub2RlKSkKKyAgICAgICAg
cmV0dXJuIGRvd25jYXN0PFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ+KCpub2RlKS5sYXN0Q2hh
bmdlV2FzVXNlckVkaXQoKTsKKworICAgIGlmIChpczxXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVt
ZW50Pihub2RlKSkKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PFdlYkNvcmU6OkhUTUxUZXh0QXJl
YUVsZW1lbnQ+KCpub2RlKS5sYXN0Q2hhbmdlV2FzVXNlckVkaXQoKTsKKworICAgIHJldHVybiBG
QUxTRTsKK30KKworLyoqCisgKiB3ZWJraXRfZG9tX2VsZW1lbnRfaXNfaHRtbF9pbnB1dF9lbGVt
ZW50X2F1dG9fZmlsbGVkOgorICogQGVsZW1lbnQ6IGEgI1dlYktpdERPTUVsZW1lbnQKKyAqCisg
KiBHZXQgd2hldGhlciB0aGUgZWxlbWVudCBpcyBhbiBIVE1MIGlucHV0IGVsZW1lbnQgdGhhdCBo
YXMgYmVlbiBmaWxsZWQgYXV0b21hdGljYWxseS4KKyAqCisgKiBSZXR1cm5zOiB3aGV0aGVyIEBl
bGVtZW50IGhhcyBiZWVuIGZpbGxlZCBhdXRvbWF0aWNhbGx5LgorICoKKyAqIFNpbmNlOiAyLjIy
CisgKi8KK2dib29sZWFuIHdlYmtpdF9kb21fZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfZ2V0
X2F1dG9fZmlsbGVkKFdlYktpdERPTUVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKGVsZW1lbnQpLCBGQUxTRSk7CisKKyAg
ICBhdXRvKiBub2RlID0gd2Via2l0RE9NTm9kZUdldENvcmVPYmplY3QoV0VCS0lUX0RPTV9OT0RF
KGVsZW1lbnQpKTsKKyAgICBpZiAoIWlzPFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ+KG5vZGUp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gZG93bmNhc3Q8V2ViQ29yZTo6
SFRNTElucHV0RWxlbWVudD4oKm5vZGUpLmlzQXV0b0ZpbGxlZCgpOworfQorCisvKioKKyAqIHdl
YmtpdF9kb21fZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2F1dG9fZmlsbGVkOgorICog
QGVsZW1lbnQ6IGEgI1dlYktpdERPTUVsZW1lbnQKKyAqIEBhdXRvX2ZpbGxlZDogdmFsdWUgdG8g
c2V0CisgKgorICogU2V0IHdoZXRoZXIgdGhlIGVsZW1lbnQgaXMgYW4gSFRNTCBpbnB1dCBlbGVt
ZW50IHRoYXQgaGFzIGJlZW4gZmlsbGVkIGF1dG9tYXRpY2FsbHkuCisgKiBJZiBAZWxlbWVudCBp
cyBub3QgYW4gSFRNTCBpbnB1dCBlbGVtZW50IHRoaXMgZnVuY3Rpb24gZG9lcyBub3RoaW5nLgor
ICoKKyAqIFNpbmNlOiAyLjIyCisgKi8KK3ZvaWQgd2Via2l0X2RvbV9lbGVtZW50X2h0bWxfaW5w
dXRfZWxlbWVudF9zZXRfYXV0b19maWxsZWQoV2ViS2l0RE9NRWxlbWVudCogZWxlbWVudCwgZ2Jv
b2xlYW4gYXV0b0ZpbGxlZCkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9ET01fSVNf
RUxFTUVOVChlbGVtZW50KSk7CisKKyAgICBhdXRvKiBub2RlID0gd2Via2l0RE9NTm9kZUdldENv
cmVPYmplY3QoV0VCS0lUX0RPTV9OT0RFKGVsZW1lbnQpKTsKKyAgICBpZiAoIWlzPFdlYkNvcmU6
OkhUTUxJbnB1dEVsZW1lbnQ+KG5vZGUpKQorICAgICAgICByZXR1cm47CisKKyAgICBkb3duY2Fz
dDxXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Pigqbm9kZSkuc2V0QXV0b0ZpbGxlZChhdXRvRmls
bGVkKTsKK30KKworLyoqCisgKiB3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50
X3NldF9lZGl0aW5nX3ZhbHVlOgorICogQGVsZW1lbnQ6IGEgI1dlYktpdERPTUVsZW1lbnQKKyAq
IEB2YWx1ZTogdGhlIHRleHQgdG8gc2V0CisgKgorICogU2V0IGVkaXRpbmcgdmFsdWUgb2YgYW4g
SFRNTCBpbnB1dCBlbGVtZW50LiBJZiBAZWxlbWVudCBpcyBub3QgYW4gSFRNTCBpbnB1dCBlbGVt
ZW50IHRoaXMgZnVuY3Rpb24gZG9lcyBub3RoaW5nLgorICoKKyAqIFNpbmNlOiAyLjIyCisgKi8K
K3ZvaWQgd2Via2l0X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfZWRpdGluZ192
YWx1ZShXZWJLaXRET01FbGVtZW50KiBlbGVtZW50LCBjb25zdCBjaGFyKiB2YWx1ZSkKK3sKKyAg
ICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChlbGVtZW50KSk7CisKKyAg
ICBhdXRvKiBub2RlID0gd2Via2l0RE9NTm9kZUdldENvcmVPYmplY3QoV0VCS0lUX0RPTV9OT0RF
KGVsZW1lbnQpKTsKKyAgICBpZiAoIWlzPFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ+KG5vZGUp
KQorICAgICAgICByZXR1cm47CisKKyAgICBkb3duY2FzdDxXZWJDb3JlOjpIVE1MSW5wdXRFbGVt
ZW50Pigqbm9kZSkuc2V0RWRpdGluZ1ZhbHVlKFN0cmluZzo6ZnJvbVVURjgodmFsdWUpKTsKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01FbGVtZW50UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01FbGVtZW50UHJpdmF0ZS5o
CnNpbWlsYXJpdHkgaW5kZXggODElCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FbGVtZW50UHJpdmF0ZS5oCnJl
bmFtZSB0byBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIv
RE9NL1dlYktpdERPTUVsZW1lbnRQcml2YXRlLmgKaW5kZXggN2MxZjQzMDhjYWEuLjNlMDlkMGIz
ZDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTUVsZW1lbnRQ
cml2YXRlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo
ZSBXZWJLaXQgb3BlbiBzb3VyY2UgcHJvamVjdC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMTggSWdh
bGlhIFMuTC4KICAqCiAgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xNywxMSArMTcsMTAgQEAKICAqICBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi0jaWZuZGVmIFdlYktpdERPTUVsZW1l
bnRQcml2YXRlX2gKLSNkZWZpbmUgV2ViS2l0RE9NRWxlbWVudFByaXZhdGVfaAorI3ByYWdtYSBv
bmNlCiAKKyNpbmNsdWRlICJXZWJLaXRET01FbGVtZW50LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9F
bGVtZW50Lmg+Ci0jaW5jbHVkZSA8d2Via2l0ZG9tL1dlYktpdERPTUVsZW1lbnQuaD4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiBXZWJLaXRET01FbGVtZW50KiB3cmFwRWxlbWVudChXZWJDb3JlOjpF
bGVtZW50Kik7CkBAIC0yOSw0ICsyOCw3IEBAIFdlYktpdERPTUVsZW1lbnQqIGtpdChXZWJDb3Jl
OjpFbGVtZW50Kik7CiBXZWJDb3JlOjpFbGVtZW50KiBjb3JlKFdlYktpdERPTUVsZW1lbnQqKTsK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jZW5kaWYgLyogV2ViS2l0RE9NRWxlbWVudFByaXZh
dGVfaCAqLworI2lmIFBMQVRGT1JNKEdUSykKK3ZvaWQgd2Via2l0RE9NRWxlbWVudERPTUV2ZW50
VGFyZ2V0SW5pdChXZWJLaXRET01FdmVudFRhcmdldElmYWNlKik7Cit2b2lkIHdlYmtpdERPTUVs
ZW1lbnRJbnN0YWxsUHJvcGVydGllcyhHT2JqZWN0Q2xhc3MqKTsKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9X
ZWJLaXRET01Ob2RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NTm9kZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLmJkODk1MzE2ZDgwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01Ob2Rl
LmNwcApAQCAtMCwwICsxLDE1NCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTggSWdhbGlh
IFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
ICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bworICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBNQSAwMjExMC0x
MzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYktpdERP
TU5vZGUuaCIKKworI2luY2x1ZGUgIkRPTU9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiV2ViS2l0
RE9NTm9kZVByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01Qcml2YXRlLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9KU05vZGUuaD4KKyNpbmNsdWRlIDxqc2MvSlNDQ29udGV4dFByaXZhdGUuaD4K
KyNpbmNsdWRlIDxqc2MvSlNDVmFsdWVQcml2YXRlLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgorCisjaWYgUExBVEZPUk0oR1RLKQorI2luY2x1ZGUgIldlYktpdERPTUV2ZW50VGFyZ2V0Lmgi
CisjZW5kaWYKKworI2RlZmluZSBXRUJLSVRfRE9NX05PREVfR0VUX1BSSVZBVEUob2JqKSBHX1RZ
UEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUob2JqLCBXRUJLSVRfRE9NX1RZUEVfTk9ERSwgV2ViS2l0
RE9NTm9kZVByaXZhdGUpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRET01Ob2RlUHJpdmF0ZSB7
CisgICAgfl9XZWJLaXRET01Ob2RlUHJpdmF0ZSgpCisgICAgeworICAgICAgICBXZWJLaXQ6OkRP
TU9iamVjdENhY2hlOjpmb3JnZXQoY29yZU9iamVjdC5nZXQoKSk7CisgICAgfQorCisgICAgUmVm
UHRyPFdlYkNvcmU6Ok5vZGU+IGNvcmVPYmplY3Q7Cit9IFdlYktpdERPTU5vZGVQcml2YXRlOwor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViS2l0RE9NTm9kZSoga2l0KFdlYkNvcmU6Ok5vZGUq
IG9iaikKK3sKKyAgICBpZiAoIW9iaikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBp
ZiAoZ3BvaW50ZXIgcmV0ID0gRE9NT2JqZWN0Q2FjaGU6OmdldChvYmopKQorICAgICAgICByZXR1
cm4gV0VCS0lUX0RPTV9OT0RFKHJldCk7CisKKyAgICByZXR1cm4gd3JhcChvYmopOworfQorCitX
ZWJDb3JlOjpOb2RlKiBjb3JlKFdlYktpdERPTU5vZGUqIG5vZGUpCit7CisgICAgcmV0dXJuIG5v
ZGUgPyB3ZWJraXRET01Ob2RlR2V0Q29yZU9iamVjdChub2RlKSA6IG51bGxwdHI7Cit9CisKK1dl
YktpdERPTU5vZGUqIHdyYXBOb2RlKFdlYkNvcmU6Ok5vZGUqIGNvcmVPYmplY3QpCit7CisgICAg
QVNTRVJUKGNvcmVPYmplY3QpOworI2lmIFBMQVRGT1JNKEdUSykKKyAgICByZXR1cm4gV0VCS0lU
X0RPTV9OT0RFKGdfb2JqZWN0X25ldyhXRUJLSVRfRE9NX1RZUEVfTk9ERSwgImNvcmUtb2JqZWN0
IiwgY29yZU9iamVjdCwgbnVsbHB0cikpOworI2Vsc2UKKyAgICBhdXRvKiBub2RlID0gV0VCS0lU
X0RPTV9OT0RFKGdfb2JqZWN0X25ldyhXRUJLSVRfRE9NX1RZUEVfTk9ERSwgbnVsbHB0cikpOwor
ICAgIHdlYmtpdERPTU5vZGVTZXRDb3JlT2JqZWN0KG5vZGUsIGNvcmVPYmplY3QpOworICAgIHJl
dHVybiBub2RlOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjaWYgUExB
VEZPUk0oR1RLKQorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CitHX0RFRklORV9U
WVBFX1dJVEhfQ09ERShXZWJLaXRET01Ob2RlLCB3ZWJraXRfZG9tX25vZGUsIFdFQktJVF9ET01f
VFlQRV9PQkpFQ1QsIEdfSU1QTEVNRU5UX0lOVEVSRkFDRShXRUJLSVRfRE9NX1RZUEVfRVZFTlRf
VEFSR0VULCB3ZWJraXRET01Ob2RlRE9NRXZlbnRUYXJnZXRJbml0KSkKK0dfR05VQ19FTkRfSUdO
T1JFX0RFUFJFQ0FUSU9OUzsKKyNlbHNlCitXRUJLSVRfREVGSU5FX1RZUEUoV2ViS2l0RE9NTm9k
ZSwgd2Via2l0X2RvbV9ub2RlLCBXRUJLSVRfRE9NX1RZUEVfT0JKRUNUKQorI2VuZGlmCisKKyNp
ZiBQTEFURk9STShHVEspCitzdGF0aWMgR09iamVjdCogd2Via2l0RE9NTm9kZUNvbnN0cnVjdG9y
KEdUeXBlIHR5cGUsIGd1aW50IGNvbnN0cnVjdFByb3BlcnRpZXNDb3VudCwgR09iamVjdENvbnN0
cnVjdFBhcmFtKiBjb25zdHJ1Y3RQcm9wZXJ0aWVzKQoreworICAgIEdPYmplY3QqIG9iamVjdCA9
IEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9kb21fbm9kZV9wYXJlbnRfY2xhc3MpLT5jb25zdHJ1Y3Rv
cih0eXBlLCBjb25zdHJ1Y3RQcm9wZXJ0aWVzQ291bnQsIGNvbnN0cnVjdFByb3BlcnRpZXMpOwor
CisgICAgd2Via2l0RE9NTm9kZVNldENvcmVPYmplY3QoV0VCS0lUX0RPTV9OT0RFKG9iamVjdCks
IHN0YXRpY19jYXN0PFdlYkNvcmU6Ok5vZGUqPihXRUJLSVRfRE9NX09CSkVDVChvYmplY3QpLT5j
b3JlT2JqZWN0KSk7CisKKyAgICByZXR1cm4gb2JqZWN0OworfQorCitzdGF0aWMgdm9pZCB3ZWJr
aXRET01Ob2RlRmluYWxpemUoR09iamVjdCogb2JqZWN0KQoreworICAgIFdlYktpdERPTU5vZGUq
IG5vZGUgPSBXRUJLSVRfRE9NX05PREUob2JqZWN0KTsKKworICAgIFdlYktpdERPTU5vZGVQcml2
YXRlKiBwcml2ID0gV0VCS0lUX0RPTV9OT0RFX0dFVF9QUklWQVRFKG5vZGUpOworICAgIHByaXYt
Pn5XZWJLaXRET01Ob2RlUHJpdmF0ZSgpOworCisgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2Rv
bV9ub2RlX3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7Cit9CisKK3N0YXRpYyB2b2lk
IHdlYmtpdF9kb21fbm9kZV9pbml0KFdlYktpdERPTU5vZGUqIG5vZGUpCit7CisgICAgV2ViS2l0
RE9NTm9kZVByaXZhdGUqIHByaXYgPSBXRUJLSVRfRE9NX05PREVfR0VUX1BSSVZBVEUobm9kZSk7
CisgICAgbmV3IChwcml2KSBXZWJLaXRET01Ob2RlUHJpdmF0ZSgpOworfQorI2VuZGlmCisKK3N0
YXRpYyB2b2lkIHdlYmtpdF9kb21fbm9kZV9jbGFzc19pbml0KFdlYktpdERPTU5vZGVDbGFzcyog
bm9kZUNsYXNzKQoreworI2lmIFBMQVRGT1JNKEdUSykKKyAgICBHT2JqZWN0Q2xhc3MqIGdvYmpl
Y3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKG5vZGVDbGFzcyk7CisgICAgZ190eXBlX2NsYXNzX2Fk
ZF9wcml2YXRlKGdvYmplY3RDbGFzcywgc2l6ZW9mKFdlYktpdERPTU5vZGVQcml2YXRlKSk7Cisg
ICAgZ29iamVjdENsYXNzLT5jb25zdHJ1Y3RvciA9IHdlYmtpdERPTU5vZGVDb25zdHJ1Y3RvcjsK
KyAgICBnb2JqZWN0Q2xhc3MtPmZpbmFsaXplID0gd2Via2l0RE9NTm9kZUZpbmFsaXplOworICAg
IHdlYmtpdERPTU5vZGVJbnN0YWxsUHJvcGVydGllcyhnb2JqZWN0Q2xhc3MpOworI2VuZGlmCit9
CisKK3ZvaWQgd2Via2l0RE9NTm9kZVNldENvcmVPYmplY3QoV2ViS2l0RE9NTm9kZSogbm9kZSwg
V2ViQ29yZTo6Tm9kZSogY29yZU9iamVjdCkKK3sKKyAgICBXZWJLaXRET01Ob2RlUHJpdmF0ZSog
cHJpdiA9IFdFQktJVF9ET01fTk9ERV9HRVRfUFJJVkFURShub2RlKTsKKyAgICBwcml2LT5jb3Jl
T2JqZWN0ID0gY29yZU9iamVjdDsKKyAgICBXZWJLaXQ6OkRPTU9iamVjdENhY2hlOjpwdXQoY29y
ZU9iamVjdCwgbm9kZSk7Cit9CisKK1dlYkNvcmU6Ok5vZGUqIHdlYmtpdERPTU5vZGVHZXRDb3Jl
T2JqZWN0KFdlYktpdERPTU5vZGUqIG5vZGUpCit7CisgICAgV2ViS2l0RE9NTm9kZVByaXZhdGUq
IHByaXYgPSBXRUJLSVRfRE9NX05PREVfR0VUX1BSSVZBVEUobm9kZSk7CisgICAgcmV0dXJuIHBy
aXYtPmNvcmVPYmplY3QuZ2V0KCk7Cit9CisKKy8qKgorICogd2Via2l0X2RvbV9ub2RlX2Zvcl9q
c192YWx1ZToKKyAqIEB2YWx1ZTogYSAjSlNDVmFsdWUKKyAqCisgKiBHZXQgdGhlICNXZWJLaXRE
T01Ob2RlIGZvciB0aGUgRE9NIG5vZGUgcmVmZXJlbmNlZCBieSBAdmFsdWUuCisgKgorICogUmV0
dXJuczogKHRyYW5zZmVyIG5vbmUpOiBhICNXZWJLaXRET01Ob2RlLCBvciAlTlVMTCBpZiBAdmFs
dWUgZG9lc24ndCByZWZlcmVuY2UgYSBET00gbm9kZS4KKyAqCisgKiBTaW5jZTogMi4yMgorICov
CitXZWJLaXRET01Ob2RlKiB3ZWJraXRfZG9tX25vZGVfZm9yX2pzX3ZhbHVlKEpTQ1ZhbHVlKiB2
YWx1ZSkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChKU0NfSVNfVkFMVUUodmFsdWUpLCBu
dWxscHRyKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChqc2NfdmFsdWVfaXNfb2JqZWN0KHZh
bHVlKSwgbnVsbHB0cik7CisKKyAgICBhdXRvKiBqc09iamVjdCA9IEpTVmFsdWVUb09iamVjdChq
c2NDb250ZXh0R2V0SlNDb250ZXh0KGpzY192YWx1ZV9nZXRfY29udGV4dCh2YWx1ZSkpLCBqc2NW
YWx1ZUdldEpTVmFsdWUodmFsdWUpLCBudWxscHRyKTsKKyAgICByZXR1cm4ganNPYmplY3QgPyBX
ZWJLaXQ6OmtpdChXZWJDb3JlOjpKU05vZGU6OnRvV3JhcHBlZCgqdG9KUyhqc09iamVjdCktPnZt
KCksIHRvSlMoanNPYmplY3QpKSkgOiBudWxscHRyOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2ds
aWIvRE9NL1dlYktpdERPTU5vZGVQcml2YXRlLmgKc2ltaWxhcml0eSBpbmRleCA3NCUKcmVuYW1l
IGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTU5vZGVQcml2YXRlLmgKcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NTm9kZVByaXZhdGUuaAppbmRl
eCA4ZDBiZWI5ZTZmMi4uMzA1YmQ1ODJkODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9E
T00vV2ViS2l0RE9NTm9kZVByaXZhdGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiAgVGhpcyBm
aWxlIGlzIHBhcnQgb2YgdGhlIFdlYktpdCBvcGVuIHNvdXJjZSBwcm9qZWN0LgorICogIENvcHly
aWdodCAoQykgMjAxOCBJZ2FsaWEgUy5MLgogICoKICAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTE3LDEx
ICsxNywxMCBAQAogICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCiAKLSNpZm5k
ZWYgV2ViS2l0RE9NTm9kZVByaXZhdGVfaAotI2RlZmluZSBXZWJLaXRET01Ob2RlUHJpdmF0ZV9o
CisjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIldlYktpdERPTU5vZGUuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL05vZGUuaD4KLSNpbmNsdWRlIDx3ZWJraXRkb20vV2ViS2l0RE9NTm9kZS5oPgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIFdlYktpdERPTU5vZGUqIHdyYXBOb2RlKFdlYkNvcmU6Ok5vZGUq
KTsKQEAgLTI5LDQgKzI4LDEwIEBAIFdlYktpdERPTU5vZGUqIGtpdChXZWJDb3JlOjpOb2RlKik7
CiBXZWJDb3JlOjpOb2RlKiBjb3JlKFdlYktpdERPTU5vZGUqKTsKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCi0jZW5kaWYgLyogV2ViS2l0RE9NTm9kZVByaXZhdGVfaCAqLwordm9pZCB3ZWJraXRE
T01Ob2RlU2V0Q29yZU9iamVjdChXZWJLaXRET01Ob2RlKiwgV2ViQ29yZTo6Tm9kZSopOworV2Vi
Q29yZTo6Tm9kZSogd2Via2l0RE9NTm9kZUdldENvcmVPYmplY3QoV2ViS2l0RE9NTm9kZSopOwor
CisjaWYgUExBVEZPUk0oR1RLKQordm9pZCB3ZWJraXRET01Ob2RlRE9NRXZlbnRUYXJnZXRJbml0
KFdlYktpdERPTUV2ZW50VGFyZ2V0SWZhY2UqKTsKK3ZvaWQgd2Via2l0RE9NTm9kZUluc3RhbGxQ
cm9wZXJ0aWVzKEdPYmplY3RDbGFzcyopOworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9E
T00vV2ViS2l0RE9NT2JqZWN0LmNwcApzaW1pbGFyaXR5IGluZGV4IDg5JQpyZW5hbWUgZnJvbSBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NT2JqZWN0LmNwcApyZW5hbWUgdG8gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01PYmplY3QuY3BwCmluZGV4IDg2OTU2M2UyZDNk
Li5jYTVmM2M1YzM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01PYmpl
Y3QuY3BwCkBAIC04LDEwICs4LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
V2ViS2l0RE9NT2JqZWN0LmgiCiAKKyNpZiBQTEFURk9STShHVEspCiBlbnVtIHsKLSAgICBET01f
T0JKRUNUX1BST1BfMCwKLSAgICBET01fT0JKRUNUX1BST1BfQ09SRV9PQkpFQ1QKKyAgICBQUk9Q
XzAsCisgICAgUFJPUF9DT1JFX09CSkVDVAogfTsKKyNlbmRpZgogCiBHX0RFRklORV9UWVBFKFdl
YktpdERPTU9iamVjdCwgd2Via2l0X2RvbV9vYmplY3QsIEdfVFlQRV9PQkpFQ1QpCiAKQEAgLTE5
LDEwICsyMSwxMSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX29iamVjdF9pbml0KFdlYktpdERP
TU9iamVjdCopCiB7CiB9CiAKKyNpZiBQTEFURk9STShHVEspCiBzdGF0aWMgdm9pZCB3ZWJraXRE
T01PYmplY3RTZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SWQsIGNv
bnN0IEdWYWx1ZSogdmFsdWUsIEdQYXJhbVNwZWMqIHBzcGVjKQogewogICAgIHN3aXRjaCAocHJv
cGVydHlJZCkgewotICAgIGNhc2UgRE9NX09CSkVDVF9QUk9QX0NPUkVfT0JKRUNUOgorICAgIGNh
c2UgUFJPUF9DT1JFX09CSkVDVDoKICAgICAgICAgV0VCS0lUX0RPTV9PQkpFQ1Qob2JqZWN0KS0+
Y29yZU9iamVjdCA9IGdfdmFsdWVfZ2V0X3BvaW50ZXIodmFsdWUpOwogICAgICAgICBicmVhazsK
ICAgICBkZWZhdWx0OgpAQCAtMzAsMTggKzMzLDIxIEBAIHN0YXRpYyB2b2lkIHdlYmtpdERPTU9i
amVjdFNldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcGVydHlJZCwgY29uc3QK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogfQorI2VuZGlmCiAKIHN0YXRpYyB2b2lkIHdlYmtpdF9k
b21fb2JqZWN0X2NsYXNzX2luaXQoV2ViS2l0RE9NT2JqZWN0Q2xhc3MqIGtsYXNzKQogeworI2lm
IFBMQVRGT1JNKEdUSykKICAgICBHT2JqZWN0Q2xhc3MqIGdvYmplY3RDbGFzcyA9IEdfT0JKRUNU
X0NMQVNTKGtsYXNzKTsKICAgICBnb2JqZWN0Q2xhc3MtPnNldF9wcm9wZXJ0eSA9IHdlYmtpdERP
TU9iamVjdFNldFByb3BlcnR5OwogCiAgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0
eSgKICAgICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBET01fT0JKRUNUX1BST1BfQ09SRV9P
QkpFQ1QsCisgICAgICAgIFBST1BfQ09SRV9PQkpFQ1QsCiAgICAgICAgIGdfcGFyYW1fc3BlY19w
b2ludGVyKAogICAgICAgICAgICAgImNvcmUtb2JqZWN0IiwKICAgICAgICAgICAgICJDb3JlIE9i
amVjdCIsCiAgICAgICAgICAgICAiVGhlIFdlYkNvcmUgb2JqZWN0IHRoZSBXZWJLaXRET01PYmpl
Y3Qgd3JhcHMiLAogICAgICAgICAgICAgc3RhdGljX2Nhc3Q8R1BhcmFtRmxhZ3M+KEdfUEFSQU1f
V1JJVEFCTEUgfCBHX1BBUkFNX0NPTlNUUlVDVF9PTkxZIHwgR19QQVJBTV9TVEFUSUNfTkFNRSB8
IEdfUEFSQU1fU1RBVElDX05JQ0sgfCBHX1BBUkFNX1NUQVRJQ19CTFVSQikpKTsKKyNlbmRpZgog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTU9iamVjdFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NT2JqZWN0UHJpdmF0ZS5o
CnNpbWlsYXJpdHkgaW5kZXggNzglCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01PYmplY3RQcml2YXRlLmgKcmVu
YW1lIHRvIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9E
T00vV2ViS2l0RE9NT2JqZWN0UHJpdmF0ZS5oCmluZGV4IDAyYjExYTZiZmFmLi5jMTZiZWE3Y2Zk
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTU9iamVjdFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTU9iamVjdFByaXZh
dGUuaApAQCAtMTgsMTAgKzE4LDkgQEAKICAqLwogCiAKLSNpZm5kZWYgV2ViS2l0RE9NT2JqZWN0
UHJpdmF0ZV9oCi0jZGVmaW5lIFdlYktpdERPTU9iamVjdFByaXZhdGVfaAorI3ByYWdtYSBvbmNl
CiAKLSNpbmNsdWRlIDx3ZWJraXRkb20vV2ViS2l0RE9NT2JqZWN0Lmg+CisjaW5jbHVkZSAiV2Vi
S2l0RE9NT2JqZWN0LmgiCiAKIHN0cnVjdCBfV2ViS2l0RE9NT2JqZWN0IHsKICAgICBHT2JqZWN0
IHBhcmVudDsKQEAgLTMwLDkgKzI5LDggQEAgc3RydWN0IF9XZWJLaXRET01PYmplY3Qgewogc3Ry
dWN0IF9XZWJLaXRET01PYmplY3RDbGFzcyB7CiAgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFz
czsKIAotICAgIHZvaWQgKCogd3JhcCkgKFdlYktpdERPTU9iamVjdCosIHZvaWQqIGNvcmVPYmpl
Y3QpOworI2lmIFBMQVRGT1JNKEdUSykKKyAgICAvLyBUaGlzIGlzIG9ubHkgdG8ga2VlcCBBQkkg
Y29tcGF0aWJpbGl0eS4KKyAgICB2b2lkICgqd2Via2l0ZG9tX3Jlc2VydmVkKSh2b2lkKTsKKyNl
bmRpZgogfTsKLQotdm9pZCB3ZWJraXRET01PYmplY3RXcmFwKFdlYktpdERPTU9iamVjdCosIHZv
aWQqIGNvcmVPYmplY3QpOwotCi0jZW5kaWYgLyogV2ViS2l0RE9NT2JqZWN0X2ggKi8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9E
T00vV2ViS2l0RE9NUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTVByaXZhdGUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45M2ZmYjg3ODEwYgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2Vi
S2l0RE9NUHJpdmF0ZS5jcHAKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMp
IDIwMTggSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0
aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRET01Qcml2YXRlLmgiCisKKyNpbmNsdWRl
ICJXZWJLaXRET01Eb2N1bWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01FbGVtZW50
UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTU5vZGVQcml2YXRlLmgiCisjaW5jbHVkZSA8
V2ViQ29yZS9IVE1MRm9ybUVsZW1lbnQuaD4KKworI2lmIFBMQVRGT1JNKEdUSykKKyNpbmNsdWRl
ICJXZWJLaXRET01Qcml2YXRlR3RrLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K1dlYktpdERPTU5vZGUqIHdyYXAoV2ViQ29yZTo6Tm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQo
bm9kZSk7CisgICAgQVNTRVJUKG5vZGUtPm5vZGVUeXBlKCkpOworCisjaWYgUExBVEZPUk0oR1RL
KQorICAgIGlmIChhdXRvKiB3cmFwcGVyID0gd3JhcE5vZGVHdGsobm9kZSkpCisgICAgICAgIHJl
dHVybiB3cmFwcGVyOworI2VuZGlmCisKKyAgICBzd2l0Y2ggKG5vZGUtPm5vZGVUeXBlKCkpIHsK
KyAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6OkVMRU1FTlRfTk9ERToKKyAgICAgICAgcmV0dXJuIFdF
QktJVF9ET01fTk9ERSh3cmFwRWxlbWVudChkb3duY2FzdDxXZWJDb3JlOjpFbGVtZW50Pihub2Rl
KSkpOworICAgIGNhc2UgV2ViQ29yZTo6Tm9kZTo6RE9DVU1FTlRfTk9ERToKKyAgICAgICAgcmV0
dXJuIFdFQktJVF9ET01fTk9ERSh3cmFwRG9jdW1lbnQoZG93bmNhc3Q8V2ViQ29yZTo6RG9jdW1l
bnQ+KG5vZGUpKSk7CisgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpBVFRSSUJVVEVfTk9ERToKKyAg
ICBjYXNlIFdlYkNvcmU6Ok5vZGU6OlRFWFRfTk9ERToKKyAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6
OkNEQVRBX1NFQ1RJT05fTk9ERToKKyAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6OlBST0NFU1NJTkdf
SU5TVFJVQ1RJT05fTk9ERToKKyAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6OkNPTU1FTlRfTk9ERToK
KyAgICBjYXNlIFdlYkNvcmU6Ok5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERToKKyAgICBjYXNlIFdl
YkNvcmU6Ok5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CisgICAgICAgIGJyZWFrOworICAg
IH0KKworICAgIHJldHVybiB3cmFwTm9kZShub2RlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2dsaWIvRE9NL1dlYktpdERPTVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NUHJpdmF0ZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iOGRiMjc2NjZhYgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9E
T00vV2ViS2l0RE9NUHJpdmF0ZS5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiAgQ29weXJpZ2h0
IChDKSAxOTk5LTIwMDEgSGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKKyAqICBDb3B5cmln
aHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2VpbmlnIDxzYW1Ad2Vi
a2l0Lm9yZz4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWln
aHRvbiA8bGtjbEBsa2NsLm5ldD4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggTWFydGluIFNvdG8g
PHNvdG9AZnJlZWRlc2t0b3Aub3JnPgorICogIENvcHlyaWdodCAoQykgMjAwOS0yMDEzIElnYWxp
YSBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
ICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vu
c2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29m
dHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIldlYktpdERPTU5vZGUuaCIKKyNpbmNsdWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5o
PgorCisjaWYgUExBVEZPUk0oR1RLKQorI2luY2x1ZGUgIldlYktpdERPTVByaXZhdGVHdGsuaCIK
KyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBOb2RlOworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCituYW1lc3BhY2UgV2ViS2l0IHsKK1dlYktpdERPTU5vZGUqIHdyYXAoV2Vi
Q29yZTo6Tm9kZSopOworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0RnJhbWUuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktp
dEZyYW1lLmNwcAppbmRleCBmNzcwYjZmMTc1ZC4uMjFhM2Y2MzZlMmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRGcmFt
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
bGliL1dlYktpdEZyYW1lLmNwcApAQCAtMjAsOCArMjAsMTMgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJXZWJLaXRGcmFtZS5oIgogCisjaW5jbHVkZSAiV2ViS2l0RE9NTm9kZVBy
aXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRGcmFtZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJL
aXRTY3JpcHRXb3JsZFByaXZhdGUuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0xvY2su
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9KU05vZGUu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdENvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxqc2Mv
SlNDQ29udGV4dFByaXZhdGUuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTE3MCwzICsxNzUsNTMgQEAgSlNDQ29udGV4
dCogd2Via2l0X2ZyYW1lX2dldF9qc19jb250ZXh0X2Zvcl9zY3JpcHRfd29ybGQoV2ViS2l0RnJh
bWUqIGZyYW1lLCBXZWIKIAogICAgIHJldHVybiBqc2NDb250ZXh0R2V0T3JDcmVhdGUoZnJhbWUt
PnByaXYtPndlYkZyYW1lLT5qc0NvbnRleHRGb3JXb3JsZCh3ZWJraXRTY3JpcHRXb3JsZEdldElu
amVjdGVkQnVuZGxlU2NyaXB0V29ybGQod29ybGQpKSkubGVha1JlZigpOwogfQorCisvKioKKyAq
IHdlYmtpdF9mcmFtZV9nZXRfanNfdmFsdWVfZm9yX2RvbV9vYmplY3Q6CisgKiBAZnJhbWU6IGEg
I1dlYktpdEZyYW1lCisgKiBAZG9tX29iamVjdDogYSAjV2ViS2l0RE9NT2JqZWN0CisgKgorICog
R2V0IGEgI0pTQ1ZhbHVlIHJlZmVyZW5jaW5nIHRoZSBnaXZlbiBET00gb2JqZWN0LiBUaGUgdmFs
dWUgaXMgY3JlYXRlZCBpbiB0aGUgSmF2YVNjcmlwdCBleGVjdXRpb24KKyAqIGNvbnRleHQgb2Yg
QGZyYW1lLgorICoKKyAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogdGhlICNKU0NWYWx1ZSBy
ZWZlcmVuY2luZyBAZG9tX29iamVjdC4KKyAqCisgKiBTaW5jZTogMi4yMgorICovCitKU0NWYWx1
ZSogd2Via2l0X2ZyYW1lX2dldF9qc192YWx1ZV9mb3JfZG9tX29iamVjdChXZWJLaXRGcmFtZSog
ZnJhbWUsIFdlYktpdERPTU9iamVjdCogZG9tT2JqZWN0KQoreworICAgIHJldHVybiB3ZWJraXRf
ZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0X2luX3NjcmlwdF93b3JsZChmcmFtZSwg
ZG9tT2JqZWN0LCB3ZWJraXRfc2NyaXB0X3dvcmxkX2dldF9kZWZhdWx0KCkpOworfQorCisvKioK
KyAqIHdlYmtpdF9mcmFtZV9nZXRfanNfdmFsdWVfZm9yX2RvbV9vYmplY3RfaW5fc2NyaXB0X3dv
cmxkOgorICogQGZyYW1lOiBhICNXZWJLaXRGcmFtZQorICogQGRvbV9vYmplY3Q6IGEgI1dlYktp
dERPTU9iamVjdAorICogQHdvcmxkOiBhICNXZWJLaXRTY3JpcHRXb3JsZAorICoKKyAqIEdldCBh
ICNKU0NWYWx1ZSByZWZlcmVuY2luZyB0aGUgZ2l2ZW4gRE9NIG9iamVjdC4gVGhlIHZhbHVlIGlz
IGNyZWF0ZWQgaW4gdGhlIEphdmFTY3JpcHQgZXhlY3V0aW9uCisgKiBjb250ZXh0IG9mIEBmcmFt
ZSBmb3IgdGhlIGdpdmVuICNXZWJLaXRTY3JpcHRXb3JsZC4KKyAqCisgKiBSZXR1cm5zOiAodHJh
bnNmZXIgZnVsbCk6IHRoZSAjSlNDVmFsdWUgcmVmZXJlbmNpbmcgQGRvbV9vYmplY3QKKyAqCisg
KiBTaW5jZTogMi4yMgorICovCitKU0NWYWx1ZSogd2Via2l0X2ZyYW1lX2dldF9qc192YWx1ZV9m
b3JfZG9tX29iamVjdF9pbl9zY3JpcHRfd29ybGQoV2ViS2l0RnJhbWUqIGZyYW1lLCBXZWJLaXRE
T01PYmplY3QqIGRvbU9iamVjdCwgV2ViS2l0U2NyaXB0V29ybGQqIHdvcmxkKQoreworICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19GUkFNRShmcmFtZSksIG51bGxwdHIpOworICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfT0JKRUNUKGRvbU9iamVjdCksIG51
bGxwdHIpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19TQ1JJUFRfV09STEQo
d29ybGQpLCBudWxscHRyKTsKKworICAgIGF1dG8qIHdrV29ybGQgPSB3ZWJraXRTY3JpcHRXb3Js
ZEdldEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQod29ybGQpOworICAgIGF1dG8ganNDb250ZXh0
ID0ganNjQ29udGV4dEdldE9yQ3JlYXRlKGZyYW1lLT5wcml2LT53ZWJGcmFtZS0+anNDb250ZXh0
Rm9yV29ybGQod2tXb3JsZCkpOworICAgIEpTRE9NV2luZG93KiBnbG9iYWxPYmplY3QgPSBmcmFt
ZS0+cHJpdi0+d2ViRnJhbWUtPmNvcmVGcmFtZSgpLT5zY3JpcHQoKS5nbG9iYWxPYmplY3Qod2tX
b3JsZC0+Y29yZVdvcmxkKCkpOworICAgIEpTQzo6RXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2Jq
ZWN0LT5nbG9iYWxFeGVjKCk7CisgICAgSlNWYWx1ZVJlZiBqc1ZhbHVlID0gbnVsbHB0cjsKKyAg
ICB7CisgICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2soZXhlYyk7CisgICAgICAgIGlmIChX
RUJLSVRfRE9NX0lTX05PREUoZG9tT2JqZWN0KSkKKyAgICAgICAgICAgIGpzVmFsdWUgPSB0b1Jl
ZihleGVjLCB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgV2ViS2l0Ojpjb3JlKFdFQktJVF9ET01f
Tk9ERShkb21PYmplY3QpKSkpOworICAgIH0KKworICAgIHJldHVybiBqc1ZhbHVlID8ganNjQ29u
dGV4dEdldE9yQ3JlYXRlVmFsdWUoanNDb250ZXh0LmdldCgpLCBqc1ZhbHVlKS5sZWFrUmVmKCkg
OiBudWxscHRyOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYlBhZ2UuY3BwCmluZGV4IDY5
M2ZmNzU1Njg1Li41NjQyZjE2MDc2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJQYWdl
LmNwcApAQCAtMzMsMTMgKzMzLDE4IEBACiAjaW5jbHVkZSAiV2ViSW1hZ2UuaCIKICNpbmNsdWRl
ICJXZWJLaXRDb25zb2xlTWVzc2FnZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRDb250ZXh0
TWVudVByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01Eb2N1bWVudFByaXZhdGUuaCIKKyNp
bmNsdWRlICJXZWJLaXRET01FbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTU5v
ZGVQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RnJhbWVQcml2YXRlLmgiCiAjaW5jbHVkZSAi
V2ViS2l0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFNjcmlwdFdvcmxkUHJpdmF0ZS5oIgog
I2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0VVJJ
UmVzcG9uc2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViRWRpdG9yUHJpdmF0ZS5oIgor
I2luY2x1ZGUgIldlYktpdFdlYkhpdFRlc3RSZXN1bHRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0V2ViUGFnZVByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVz
LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+CkBAIC00Nyw2ICs1Miw3IEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZVZpZXcuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0hUTUxGb3JtRWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
TWFpbkZyYW1lLmg+CiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KICNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTU0LDI4ICs2MCwxNiBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKLSNpZiBQ
TEFURk9STShHVEspCi0jaW5jbHVkZSAiV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlLmgiCi0jaW5j
bHVkZSAiV2ViS2l0RE9NRWxlbWVudFByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRET01IVE1M
Rm9ybUVsZW1lbnRQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0V2ViSGl0VGVzdFJlc3VsdFBy
aXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVzLmgiCi0jZW5kaWYK
LQogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBl
bnVtIHsKICAgICBET0NVTUVOVF9MT0FERUQsCiAgICAgU0VORF9SRVFVRVNULAotI2lmIFBMQVRG
T1JNKEdUSykKICAgICBDT05URVhUX01FTlUsCi0jZW5kaWYKICAgICBDT05TT0xFX01FU1NBR0Vf
U0VOVCwKLSNpZiBQTEFURk9STShHVEspCiAgICAgRk9STV9DT05UUk9MU19BU1NPQ0lBVEVELAog
ICAgIFdJTExfU1VCTUlUX0ZPUk0sCi0jZW5kaWYKIAogICAgIExBU1RfU0lHTkFMCiB9OwpAQCAt
MzM1LDcgKzMyOSw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgYm9vbCBnZXRDdXN0b21NZW51
RnJvbURlZmF1bHRJdGVtcyhXZWJQYWdlJiwgY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYg
aGl0VGVzdFJlc3VsdCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbT4mIGRl
ZmF1bHRNZW51LCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4mIG5ld01lbnUsIFJlZlB0
cjxBUEk6Ok9iamVjdD4mIHVzZXJEYXRhKSBvdmVycmlkZQogICAgIHsKLSNpZiBQTEFURk9STShH
VEspCiAgICAgICAgIEdSZWZQdHI8V2ViS2l0Q29udGV4dE1lbnU+IGNvbnRleHRNZW51ID0gYWRv
cHRHUmVmKHdlYmtpdENvbnRleHRNZW51Q3JlYXRlKGtpdEl0ZW1zKGRlZmF1bHRNZW51KSkpOwog
ICAgICAgICBHUmVmUHRyPFdlYktpdFdlYkhpdFRlc3RSZXN1bHQ+IHdlYkhpdFRlc3RSZXN1bHQg
PSBhZG9wdEdSZWYod2Via2l0V2ViSGl0VGVzdFJlc3VsdENyZWF0ZShoaXRUZXN0UmVzdWx0KSk7
CiAgICAgICAgIGdib29sZWFuIHJldHVyblZhbHVlOwpAQCAtMzUwLDEwICszNDMsNiBAQCBwcml2
YXRlOgogCiAgICAgICAgIHdlYmtpdENvbnRleHRNZW51UG9wdWxhdGUoY29udGV4dE1lbnUuZ2V0
KCksIG5ld01lbnUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKLSNlbGlmIFBMQVRGT1JNKFdQRSkK
LSAgICAgICAgLy8gRklYTUU6IHVzZSBhIHNoYXJlZCBXZWJLaXRIaXRUZXN0UmVzdWx0IGluIFdQ
RS4KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCiAgICAgfQogCiAgICAgV2ViS2l0V2Vi
UGFnZSogbV93ZWJQYWdlOwpAQCAtMzc1LDcgKzM2NCw2IEBAIHByaXZhdGU6CiAgICAgV2ViS2l0
V2ViUGFnZSogbV93ZWJQYWdlOwogfTsKIAotI2lmIFBMQVRGT1JNKEdUSykKIGNsYXNzIFBhZ2VG
b3JtQ2xpZW50IGZpbmFsIDogcHVibGljIEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkZvcm1DbGllbnQg
ewogcHVibGljOgogICAgIGV4cGxpY2l0IFBhZ2VGb3JtQ2xpZW50KFdlYktpdFdlYlBhZ2UqIHdl
YlBhZ2UpCkBAIC00MTcsMTIgKzQwNSwxMSBAQCBwcml2YXRlOgogICAgICAgICAgICAgZ19wdHJf
YXJyYXlfYWRkKHRleHRGaWVsZFZhbHVlcy5nZXQoKSwgZ19zdHJkdXAocGFpci5zZWNvbmQudXRm
OCgpLmRhdGEoKSkpOwogICAgICAgICB9CiAKLSAgICAgICAgZ19zaWduYWxfZW1pdChtX3dlYlBh
Z2UsIHNpZ25hbHNbV0lMTF9TVUJNSVRfRk9STV0sIDAsIFdFQktJVF9ET01fRUxFTUVOVChXZWJL
aXQ6OmtpdChmb3JtRWxlbWVudCkpLCBzdGVwLCB3ZWJraXRTb3VyY2VGcmFtZSwgd2Via2l0VGFy
Z2V0RnJhbWUsIHRleHRGaWVsZE5hbWVzLmdldCgpLCB0ZXh0RmllbGRWYWx1ZXMuZ2V0KCkpOwor
ICAgICAgICBnX3NpZ25hbF9lbWl0KG1fd2ViUGFnZSwgc2lnbmFsc1tXSUxMX1NVQk1JVF9GT1JN
XSwgMCwgV0VCS0lUX0RPTV9FTEVNRU5UKFdlYktpdDo6a2l0KHN0YXRpY19jYXN0PE5vZGUqPihm
b3JtRWxlbWVudCkpKSwgc3RlcCwgd2Via2l0U291cmNlRnJhbWUsIHdlYmtpdFRhcmdldEZyYW1l
LCB0ZXh0RmllbGROYW1lcy5nZXQoKSwgdGV4dEZpZWxkVmFsdWVzLmdldCgpKTsKICAgICB9CiAK
ICAgICBXZWJLaXRXZWJQYWdlKiBtX3dlYlBhZ2U7CiB9OwotI2VuZGlmCiAKIHN0YXRpYyB2b2lk
IHdlYmtpdFdlYlBhZ2VHZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwg
R1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyogcGFyYW1TcGVjKQogewpAQCAtNTA3LDcgKzQ5NCw2
IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfcGFnZV9jbGFzc19pbml0KFdlYktpdFdlYlBhZ2VD
bGFzcyoga2xhc3MpCiAgICAgICAgIFdFQktJVF9UWVBFX1VSSV9SRVFVRVNULAogICAgICAgICBX
RUJLSVRfVFlQRV9VUklfUkVTUE9OU0UpOwogCi0jaWYgUExBVEZPUk0oR1RLKQogICAgIC8qKgog
ICAgICAqIFdlYktpdFdlYlBhZ2U6OmNvbnRleHQtbWVudToKICAgICAgKiBAd2ViX3BhZ2U6IHRo
ZSAjV2ViS2l0V2ViUGFnZSBvbiB3aGljaCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKQEAgLTUzNyw3
ICs1MjMsNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3BhZ2VfY2xhc3NfaW5pdChXZWJLaXRX
ZWJQYWdlQ2xhc3MqIGtsYXNzKQogICAgICAgICBHX1RZUEVfQk9PTEVBTiwgMiwKICAgICAgICAg
V0VCS0lUX1RZUEVfQ09OVEVYVF9NRU5VLAogICAgICAgICBXRUJLSVRfVFlQRV9XRUJfSElUX1RF
U1RfUkVTVUxUKTsKLSNlbmRpZgogCiAgICAgLyoqCiAgICAgICogV2ViS2l0V2ViUGFnZTo6Y29u
c29sZS1tZXNzYWdlLXNlbnQ6CkBAIC01NjAsNyArNTQ1LDYgQEAgc3RhdGljIHZvaWQgd2Via2l0
X3dlYl9wYWdlX2NsYXNzX2luaXQoV2ViS2l0V2ViUGFnZUNsYXNzKiBrbGFzcykKICAgICAgICAg
R19UWVBFX05PTkUsIDEsCiAgICAgICAgIFdFQktJVF9UWVBFX0NPTlNPTEVfTUVTU0FHRSB8IEdf
U0lHTkFMX1RZUEVfU1RBVElDX1NDT1BFKTsKIAotI2lmIFBMQVRGT1JNKEdUSykKICAgICAvKioK
ICAgICAgKiBXZWJLaXRXZWJQYWdlOjpmb3JtLWNvbnRyb2xzLWFzc29jaWF0ZWQ6CiAgICAgICog
QHdlYl9wYWdlOiB0aGUgI1dlYktpdFdlYlBhZ2Ugb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0
dGVkCkBAIC02NDYsNyArNjMwLDYgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl9wYWdlX2NsYXNz
X2luaXQoV2ViS2l0V2ViUGFnZUNsYXNzKiBrbGFzcykKICAgICAgICAgV0VCS0lUX1RZUEVfRlJB
TUUsCiAgICAgICAgIEdfVFlQRV9QVFJfQVJSQVksCiAgICAgICAgIEdfVFlQRV9QVFJfQVJSQVkp
OwotI2VuZGlmCiB9CiAKIFdlYlBhZ2UqIHdlYmtpdFdlYlBhZ2VHZXRQYWdlKFdlYktpdFdlYlBh
Z2UgKndlYlBhZ2UpCkBAIC02NjMsOSArNjQ2LDcgQEAgV2ViS2l0V2ViUGFnZSogd2Via2l0V2Vi
UGFnZUNyZWF0ZShXZWJQYWdlKiB3ZWJQYWdlKQogICAgIHdlYlBhZ2UtPnNldEluamVjdGVkQnVu
ZGxlUGFnZUxvYWRlckNsaWVudChzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VMb2FkZXJDbGllbnQ+KHBh
Z2UpKTsKICAgICB3ZWJQYWdlLT5zZXRJbmplY3RlZEJ1bmRsZUNvbnRleHRNZW51Q2xpZW50KHN0
ZDo6bWFrZV91bmlxdWU8UGFnZUNvbnRleHRNZW51Q2xpZW50PihwYWdlKSk7CiAgICAgd2ViUGFn
ZS0+c2V0SW5qZWN0ZWRCdW5kbGVVSUNsaWVudChzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VVSUNsaWVu
dD4ocGFnZSkpOwotI2lmIFBMQVRGT1JNKEdUSykKICAgICB3ZWJQYWdlLT5zZXRJbmplY3RlZEJ1
bmRsZUZvcm1DbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxQYWdlRm9ybUNsaWVudD4ocGFnZSkpOwot
I2VuZGlmCiAKICAgICByZXR1cm4gcGFnZTsKIH0KQEAgLTcxNSw3ICs2OTYsNiBAQCB2b2lkIHdl
YmtpdFdlYlBhZ2VEaWRSZWNlaXZlTWVzc2FnZShXZWJLaXRXZWJQYWdlKiBwYWdlLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2VOYQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotI2lm
IFBMQVRGT1JNKEdUSykKIC8qKgogICogd2Via2l0X3dlYl9wYWdlX2dldF9kb21fZG9jdW1lbnQ6
CiAgKiBAd2ViX3BhZ2U6IGEgI1dlYktpdFdlYlBhZ2UKQEAgLTcyNywxNSArNzA3LDEzIEBAIHZv
aWQgd2Via2l0V2ViUGFnZURpZFJlY2VpdmVNZXNzYWdlKFdlYktpdFdlYlBhZ2UqIHBhZ2UsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZU5hCiAgKi8KIFdlYktpdERPTURvY3VtZW50KiB3ZWJraXRfd2Vi
X3BhZ2VfZ2V0X2RvbV9kb2N1bWVudChXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlKQogewotICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfUEFHRSh3ZWJQYWdlKSwgMCk7CisgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9QQUdFKHdlYlBhZ2UpLCBudWxscHRy
KTsKIAotICAgIE1haW5GcmFtZSogY29yZUZyYW1lID0gd2ViUGFnZS0+cHJpdi0+d2ViUGFnZS0+
bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFjb3JlRnJhbWUpCi0gICAgICAgIHJldHVybiAwOworICAg
IGlmIChhdXRvKiBjb3JlRnJhbWUgPSB3ZWJQYWdlLT5wcml2LT53ZWJQYWdlLT5tYWluRnJhbWUo
KSkKKyAgICAgICAgcmV0dXJuIGtpdChjb3JlRnJhbWUtPmRvY3VtZW50KCkpOwogCi0gICAgcmV0
dXJuIGtpdChjb3JlRnJhbWUtPmRvY3VtZW50KCkpOworICAgIHJldHVybiBudWxscHRyOwogfQot
I2VuZGlmCiAKIC8qKgogICogd2Via2l0X3dlYl9wYWdlX2dldF9pZDoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2JqZWN0
RXZlbnRMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vR09iamVjdEV2ZW50TGlzdGVuZXIuY3BwCmluZGV4IDU0ZWZiYzcwMDAw
Li45OTRiOWFjZjI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL0dPYmplY3RFdmVudExpc3RlbmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vR09iamVjdEV2
ZW50TGlzdGVuZXIuY3BwCkBAIC02Niw2ICs2Niw3IEBAIHZvaWQgR09iamVjdEV2ZW50TGlzdGVu
ZXI6OmdvYmplY3REZXN0cm95ZWQoKQogCiB2b2lkIEdPYmplY3RFdmVudExpc3RlbmVyOjpoYW5k
bGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgRXZlbnQmIGV2ZW50KQogeworICAgIEdf
R05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwogICAgIEdWYWx1ZSBwYXJhbWV0ZXJzWzJd
ID0geyBHX1ZBTFVFX0lOSVQsIEdfVkFMVUVfSU5JVCB9OwogICAgIGdfdmFsdWVfaW5pdCgmcGFy
YW1ldGVyc1swXSwgV0VCS0lUX0RPTV9UWVBFX0VWRU5UX1RBUkdFVCk7CiAgICAgZ192YWx1ZV9z
ZXRfb2JqZWN0KCZwYXJhbWV0ZXJzWzBdLCBtX3RhcmdldCk7CkBAIC03Nyw2ICs3OCw3IEBAIHZv
aWQgR09iamVjdEV2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBFdmVudCYgZXZlbnQpCiAgICAgZ19jbG9zdXJlX2ludm9rZShtX2hhbmRsZXIuZ2V0KCks
IDAsIDIsIHBhcmFtZXRlcnMsIE5VTEwpOwogICAgIGdfdmFsdWVfdW5zZXQocGFyYW1ldGVycyAr
IDApOwogICAgIGdfdmFsdWVfdW5zZXQocGFyYW1ldGVycyArIDEpOworICAgIEdfR05VQ19FTkRf
SUdOT1JFX0RFUFJFQ0FUSU9OUzsKIH0KIAogYm9vbCBHT2JqZWN0RXZlbnRMaXN0ZW5lcjo6b3Bl
cmF0b3I9PShjb25zdCBFdmVudExpc3RlbmVyJiBsaXN0ZW5lcikgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2Jq
ZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwCmlu
ZGV4IGEwNjY1YjU4NmVhLi5iYTA5ZDg4MDNjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL0dPYmplY3ROb2RlRmlsdGVyQ29u
ZGl0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwCkBAIC0yNCw2ICsyNCw4
IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RF
UFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIEdPYmplY3ROb2RlRmlsdGVyQ29u
ZGl0aW9uOjp+R09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24oKQpAQCAtMzcsMyArMzksNCBAQCB1
bnNpZ25lZCBzaG9ydCBHT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZShOb2Rl
JiBub2RlKSBjb25zdAogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKK0dfR05VQ19FTkRfSUdO
T1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2JqZWN0WFBhdGhOU1Jlc29sdmVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2JqZWN0
WFBhdGhOU1Jlc29sdmVyLmNwcAppbmRleCBhNGRmODJjYmUzNy4uOTA1ZTdiMjk3NDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9HT2JqZWN0WFBhdGhOU1Jlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vR09iamVjdFhQYXRoTlNSZXNvbHZlci5jcHAK
QEAgLTIyLDYgKzIyLDggQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJ
T05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogR09iamVjdFhQYXRoTlNSZXNvbHZlcjo6fkdP
YmplY3RYUGF0aE5TUmVzb2x2ZXIoKQpAQCAtMzQsMyArMzYsNCBAQCBTdHJpbmcgR09iamVjdFhQ
YXRoTlNSZXNvbHZlcjo6bG9va3VwTmFtZXNwYWNlVVJJKGNvbnN0IFN0cmluZyYgcHJlZml4KQog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9O
UzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01BdHRyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01BdHRyLmNwcAppbmRleCA2ODBiMTY1
OTIwMC4uNmJkOWFlZWQ4YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01BdHRyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQXR0
ci5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUF0dHIqIGtpdChXZWJDb3JlOjpBdHRyKiBv
YmopCkBAIC0zMDcsMyArMzA5LDQgQEAgZ2NoYXIqIHdlYmtpdF9kb21fYXR0cl9nZXRfbG9jYWxf
bmFtZShXZWJLaXRET01BdHRyKiBzZWxmKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0dfR05V
Q19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01BdHRyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
QXR0ci5oCmluZGV4IDk4NTk3ZmE2OTAwLi43MWM0YTExMTEwZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUF0
dHIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NQXR0ci5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9N
QXR0ckNsYXNzIHsKICAgICBXZWJLaXRET01Ob2RlQ2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAot
V0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fYXR0
cl9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2F0
dHJfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NQXR0cgogICoKICAqIFJl
dHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRF
RCBnY2hhcioKIHdlYmtpdF9kb21fYXR0cl9nZXRfbmFtZShXZWJLaXRET01BdHRyKiBzZWxmKTsK
IAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2F0dHJfZ2V0X25hbWUoV2ViS2l0
RE9NQXR0ciogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NQXR0cgogICoKICAqIFJldHVy
bnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNB
VEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2F0dHJfZ2V0X3NwZWNpZmllZChXZWJLaXRET01BdHRy
KiBzZWxmKTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2F0dHJfZ2V0X3Nw
ZWNpZmllZChXZWJLaXRET01BdHRyKiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01BdHRy
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9hdHRyX2dldF92YWx1ZShXZWJLaXRET01B
dHRyKiBzZWxmKTsKIAogLyoqCkBAIC04MSw4ICs4NywxMCBAQCB3ZWJraXRfZG9tX2F0dHJfZ2V0
X3ZhbHVlKFdlYktpdERPTUF0dHIqIHNlbGYpOwogICogQHZhbHVlOiBBICNnY2hhcgogICogQGVy
cm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21fYXR0cl9zZXRfdmFsdWUoV2ViS2l0RE9NQXR0ciogc2VsZiwgY29u
c3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtOTAsOCArOTgsMTAg
QEAgd2Via2l0X2RvbV9hdHRyX3NldF92YWx1ZShXZWJLaXRET01BdHRyKiBzZWxmLCBjb25zdCBn
Y2hhciogdmFsdWUsIEdFcnJvcioqIGVycm8KICAqIEBzZWxmOiBBICNXZWJLaXRET01BdHRyCiAg
KgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVtZW50CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgV2ViS2l0RE9NRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERP
TUVsZW1lbnQqCiB3ZWJraXRfZG9tX2F0dHJfZ2V0X293bmVyX2VsZW1lbnQoV2ViS2l0RE9NQXR0
ciogc2VsZik7CiAKIC8qKgpAQCAtMTAxLDggKzExMSwxMCBAQCB3ZWJraXRfZG9tX2F0dHJfZ2V0
X293bmVyX2VsZW1lbnQoV2ViS2l0RE9NQXR0ciogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnY2hh
cgogICoKICAqIFNpbmNlOiAyLjE0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fYXR0cl9nZXRfbmFtZXNwYWNlX3VyaShXZWJLaXRE
T01BdHRyKiBzZWxmKTsKIAogLyoqCkBAIC0xMTIsOCArMTI0LDEwIEBAIHdlYmtpdF9kb21fYXR0
cl9nZXRfbmFtZXNwYWNlX3VyaShXZWJLaXRET01BdHRyKiBzZWxmKTsKICAqIFJldHVybnM6IEEg
I2djaGFyCiAgKgogICogU2luY2U6IDIuMTQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9hdHRyX2dldF9wcmVmaXgoV2ViS2l0RE9N
QXR0ciogc2VsZik7CiAKIC8qKgpAQCAtMTIzLDggKzEzNywxMCBAQCB3ZWJraXRfZG9tX2F0dHJf
Z2V0X3ByZWZpeChXZWJLaXRET01BdHRyKiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2djaGFyCiAg
KgogICogU2luY2U6IDIuMTQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNB
VEVEIGdjaGFyKgogd2Via2l0X2RvbV9hdHRyX2dldF9sb2NhbF9uYW1lKFdlYktpdERPTUF0dHIq
IHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUJsb2IuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUJs
b2IuY3BwCmluZGV4IDA5ZDRhYzY0ZmYwLi42ZDg0YzIzOGQzZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUJs
b2IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01CbG9iLmNwcApAQCAtMzYsNiArMzYsOCBAQCB0eXBlZGVmIHN0cnVj
dCBfV2ViS2l0RE9NQmxvYlByaXZhdGUgewogICAgIFJlZlB0cjxXZWJDb3JlOjpCbG9iPiBjb3Jl
T2JqZWN0OwogfSBXZWJLaXRET01CbG9iUHJpdmF0ZTsKIAorR19HTlVDX0JFR0lOX0lHTk9SRV9E
RVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01CbG9iKiBraXQo
V2ViQ29yZTo6QmxvYiogb2JqKQpAQCAtMTM3LDMgKzEzOSw0IEBAIGd1aW50NjQgd2Via2l0X2Rv
bV9ibG9iX2dldF9zaXplKFdlYktpdERPTUJsb2IqIHNlbGYpCiAgICAgZ3VpbnQ2NCByZXN1bHQg
PSBpdGVtLT5zaXplKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KK0dfR05VQ19FTkRfSUdOT1JF
X0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01CbG9iLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQmxvYi5oCmluZGV4
IGFjNTA4MDE0ZTEwLi5hM2ZiNzdlYzk3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUJsb2IuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NQmxvYi5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NQmxvYkNsYXNzIHsK
ICAgICBXZWJLaXRET01PYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJ
IEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9ibG9iX2dldF90eXBl
KHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21fYmxvYl9nZXRfdHlw
ZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01CbG9iCiAgKgogICogUmV0dXJuczogQSAj
Z3VpbnQ2NAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGd1aW50NjQKK1dFQktJVF9ERVBSRUNBVEVEIGd1aW50
NjQKIHdlYmtpdF9kb21fYmxvYl9nZXRfc2l6ZShXZWJLaXRET01CbG9iKiBzZWxmKTsKIAogR19F
TkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DREFUQVNlY3Rpb24uY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNEQVRBU2Vj
dGlvbi5jcHAKaW5kZXggZTAxYzYxZmUzMjUuLjA3MmM0ZDBkNDBmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
Q0RBVEFTZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ0RBVEFTZWN0aW9uLmNwcApAQCAtMzUsNiArMzUs
OCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAK
K0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogV2ViS2l0RE9NQ0RBVEFTZWN0aW9uKiBraXQoV2ViQ29yZTo6Q0RBVEFTZWN0aW9uKiBvYmop
CkBAIC0xMDIsMyArMTA0LDQgQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV9jZGF0YV9zZWN0aW9u
X2luaXQoV2ViS2l0RE9NQ0RBVEFTZWN0aW9uKiByZXF1ZXN0KQogICAgIFVOVVNFRF9QQVJBTShy
ZXF1ZXN0KTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUNEQVRBU2VjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNEQVRBU2VjdGlvbi5oCmluZGV4IDZmNDI0ODky
Nzc4Li4xMDQ2OGY4OGQ5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNEQVRBU2VjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01DREFUQVNlY3Rpb24uaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUNEQVRB
U2VjdGlvbkNsYXNzIHsKICAgICBXZWJLaXRET01UZXh0Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsK
IAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21f
Y2RhdGFfc2VjdGlvbl9nZXRfdHlwZSh2b2lkKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01DU1NSdWxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NSdWxlLmNwcAppbmRleCAzOTVjYzg2ZDE1OC4uM2Y4
YmZlNjZiOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NSdWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTUnVsZS5j
cHAKQEAgLTM4LDYgKzM4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTUNTU1J1bGVQcml2
YXRlIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6Q1NTUnVsZT4gY29yZU9iamVjdDsKIH0gV2ViS2l0
RE9NQ1NTUnVsZVByaXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwor
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NQ1NTUnVsZSoga2l0KFdlYkNvcmU6OkNT
U1J1bGUqIG9iaikKQEAgLTI0MCwzICsyNDIsNCBAQCBXZWJLaXRET01DU1NSdWxlKiB3ZWJraXRf
ZG9tX2Nzc19ydWxlX2dldF9wYXJlbnRfcnVsZShXZWJLaXRET01DU1NSdWxlKiBzZWxmKQogICAg
IHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKIH0KIAorR19HTlVDX0VO
RF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1J1bGUuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01D
U1NSdWxlLmgKaW5kZXggNDMwZjZmNjc0ZDguLjU5YjU4MGE3ZjYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
Q1NTUnVsZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01DU1NSdWxlLmgKQEAgLTM3LDQxICszNyw1OSBAQCBHX0JFR0lO
X0RFQ0xTCiAjZGVmaW5lIFdFQktJVF9ET01fSVNfQ1NTX1JVTEVfQ0xBU1Moa2xhc3MpIChHX1RZ
UEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX0RPTV9UWVBFX0NTU19SVUxFKSkK
ICNkZWZpbmUgV0VCS0lUX0RPTV9DU1NfUlVMRV9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNU
QU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfRE9NX1RZUEVfQ1NTX1JVTEUsIFdlYktpdERP
TUNTU1J1bGVDbGFzcykpCiAKKyNpZm5kZWYgV0VCS0lUX0RJU0FCTEVfREVQUkVDQVRFRAorCiAv
KioKICAqIFdFQktJVF9ET01fQ1NTX1JVTEVfVU5LTk9XTl9SVUxFOgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdF
QktJVF9ET01fQ1NTX1JVTEVfVU5LTk9XTl9SVUxFIDAKIAogLyoqCiAgKiBXRUJLSVRfRE9NX0NT
U19SVUxFX1NUWUxFX1JVTEU6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9DU1NfUlVMRV9TVFlM
RV9SVUxFIDEKIAogLyoqCiAgKiBXRUJLSVRfRE9NX0NTU19SVUxFX0NIQVJTRVRfUlVMRToKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAq
LwogI2RlZmluZSBXRUJLSVRfRE9NX0NTU19SVUxFX0NIQVJTRVRfUlVMRSAyCiAKIC8qKgogICog
V0VCS0lUX0RPTV9DU1NfUlVMRV9JTVBPUlRfUlVMRToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9N
X0NTU19SVUxFX0lNUE9SVF9SVUxFIDMKIAogLyoqCiAgKiBXRUJLSVRfRE9NX0NTU19SVUxFX01F
RElBX1JVTEU6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9DU1NfUlVMRV9NRURJQV9SVUxFIDQK
IAogLyoqCiAgKiBXRUJLSVRfRE9NX0NTU19SVUxFX0ZPTlRfRkFDRV9SVUxFOgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVm
aW5lIFdFQktJVF9ET01fQ1NTX1JVTEVfRk9OVF9GQUNFX1JVTEUgNQogCiAvKioKICAqIFdFQktJ
VF9ET01fQ1NTX1JVTEVfUEFHRV9SVUxFOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fQ1NTX1JV
TEVfUEFHRV9SVUxFIDYKIAorI2VuZGlmIC8qIFdFQktJVF9ESVNBQkxFX0RFUFJFQ0FURUQgKi8K
Kwogc3RydWN0IF9XZWJLaXRET01DU1NSdWxlIHsKICAgICBXZWJLaXRET01PYmplY3QgcGFyZW50
X2luc3RhbmNlOwogfTsKQEAgLTgwLDcgKzk4LDcgQEAgc3RydWN0IF9XZWJLaXRET01DU1NSdWxl
Q2xhc3MgewogICAgIFdlYktpdERPTU9iamVjdENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdF
QktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2Nzc19y
dWxlX2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTg4LDggKzEwNiwxMCBAQCB3ZWJraXRfZG9t
X2Nzc19ydWxlX2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUNTU1J1bGUK
ICAqCiAgKiBSZXR1cm5zOiBBICNndXNob3J0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ3VzaG9ydAorV0VC
S0lUX0RFUFJFQ0FURUQgZ3VzaG9ydAogd2Via2l0X2RvbV9jc3NfcnVsZV9nZXRfcnVsZV90eXBl
KFdlYktpdERPTUNTU1J1bGUqIHNlbGYpOwogCiAvKioKQEAgLTk3LDggKzExNywxMCBAQCB3ZWJr
aXRfZG9tX2Nzc19ydWxlX2dldF9ydWxlX3R5cGUoV2ViS2l0RE9NQ1NTUnVsZSogc2VsZik7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NQ1NTUnVsZQogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9k
b21fY3NzX3J1bGVfZ2V0X2Nzc190ZXh0KFdlYktpdERPTUNTU1J1bGUqIHNlbGYpOwogCiAvKioK
QEAgLTEwNyw4ICsxMjksMTAgQEAgd2Via2l0X2RvbV9jc3NfcnVsZV9nZXRfY3NzX3RleHQoV2Vi
S2l0RE9NQ1NTUnVsZSogc2VsZik7CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKiBAZXJyb3I6ICNH
RXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9jc3NfcnVsZV9zZXRfY3NzX3RleHQoV2ViS2l0RE9NQ1NTUnVsZSogc2VsZiwg
Y29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTE2LDggKzE0
MCwxMCBAQCB3ZWJraXRfZG9tX2Nzc19ydWxlX3NldF9jc3NfdGV4dChXZWJLaXRET01DU1NSdWxl
KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcgogICogQHNlbGY6IEEgI1dlYktpdERPTUNT
U1J1bGUKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUNTU1N0
eWxlU2hlZXQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01DU1NTdHlsZVNoZWV0KgorV0VCS0lU
X0RFUFJFQ0FURUQgV2ViS2l0RE9NQ1NTU3R5bGVTaGVldCoKIHdlYmtpdF9kb21fY3NzX3J1bGVf
Z2V0X3BhcmVudF9zdHlsZV9zaGVldChXZWJLaXRET01DU1NSdWxlKiBzZWxmKTsKIAogLyoqCkBA
IC0xMjUsOCArMTUxLDEwIEBAIHdlYmtpdF9kb21fY3NzX3J1bGVfZ2V0X3BhcmVudF9zdHlsZV9z
aGVldChXZWJLaXRET01DU1NSdWxlKiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01DU1NS
dWxlCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01DU1NSdWxl
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NQ1NTUnVsZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdl
YktpdERPTUNTU1J1bGUqCiB3ZWJraXRfZG9tX2Nzc19ydWxlX2dldF9wYXJlbnRfcnVsZShXZWJL
aXRET01DU1NSdWxlKiBzZWxmKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NS
dWxlTGlzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NQ1NTUnVsZUxpc3QuY3BwCmluZGV4IGM5MzJhZGU1NzhkLi44MmQ5
MjEyMzMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1J1bGVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTUnVs
ZUxpc3QuY3BwCkBAIC0zNyw2ICszNyw4IEBAIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01DU1NS
dWxlTGlzdFByaXZhdGUgewogICAgIFJlZlB0cjxXZWJDb3JlOjpDU1NSdWxlTGlzdD4gY29yZU9i
amVjdDsKIH0gV2ViS2l0RE9NQ1NTUnVsZUxpc3RQcml2YXRlOwogCitHX0dOVUNfQkVHSU5fSUdO
T1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUNTU1J1
bGVMaXN0KiBraXQoV2ViQ29yZTo6Q1NTUnVsZUxpc3QqIG9iaikKQEAgLTE0OSwzICsxNTEsNCBA
QCBndWxvbmcgd2Via2l0X2RvbV9jc3NfcnVsZV9saXN0X2dldF9sZW5ndGgoV2ViS2l0RE9NQ1NT
UnVsZUxpc3QqIHNlbGYpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorR19HTlVDX0VORF9JR05P
UkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1J1bGVMaXN0LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NT
UnVsZUxpc3QuaAppbmRleCAwNGRlYjA1MzgwOS4uZDlhNGRhNWI4ZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01DU1NSdWxlTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NSdWxlTGlzdC5oCkBAIC00NSw3ICs0NSw3IEBA
IHN0cnVjdCBfV2ViS2l0RE9NQ1NTUnVsZUxpc3RDbGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0
Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJF
Q0FURUQgR1R5cGUKIHdlYmtpdF9kb21fY3NzX3J1bGVfbGlzdF9nZXRfdHlwZSh2b2lkKTsKIAog
LyoqCkBAIC01NCw4ICs1NCwxMCBAQCB3ZWJraXRfZG9tX2Nzc19ydWxlX2xpc3RfZ2V0X3R5cGUo
dm9pZCk7CiAgKiBAaW5kZXg6IEEgI2d1bG9uZwogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBm
dWxsKTogQSAjV2ViS2l0RE9NQ1NTUnVsZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUNTU1J1
bGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01DU1NSdWxlKgogd2Via2l0X2RvbV9jc3Nf
cnVsZV9saXN0X2l0ZW0oV2ViS2l0RE9NQ1NTUnVsZUxpc3QqIHNlbGYsIGd1bG9uZyBpbmRleCk7
CiAKIC8qKgpAQCAtNjMsOCArNjUsMTAgQEAgd2Via2l0X2RvbV9jc3NfcnVsZV9saXN0X2l0ZW0o
V2ViS2l0RE9NQ1NTUnVsZUxpc3QqIHNlbGYsIGd1bG9uZyBpbmRleCk7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NQ1NTUnVsZUxpc3QKICAqCiAgKiBSZXR1cm5zOiBBICNndWxvbmcKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Via2l0X2RvbV9jc3Nf
cnVsZV9saXN0X2dldF9sZW5ndGgoV2ViS2l0RE9NQ1NTUnVsZUxpc3QqIHNlbGYpOwogCiBHX0VO
RF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNT
U1N0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDkxOGQyNWQ3ZDAwLi5mNDc0MWM5ZmY1NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZURl
Y2xhcmF0aW9uLmNwcApAQCAtMzgsNiArMzgsOCBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9N
Q1NTU3R5bGVEZWNsYXJhdGlvblByaXZhdGUgewogICAgIFJlZlB0cjxXZWJDb3JlOjpDU1NTdHls
ZURlY2xhcmF0aW9uPiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9u
UHJpdmF0ZTsKIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uKiBraXQoV2ViQ29yZTo6
Q1NTU3R5bGVEZWNsYXJhdGlvbiogb2JqKQpAQCAtMzAzLDMgKzMwNSw0IEBAIFdlYktpdERPTUNT
U1J1bGUqIHdlYmtpdF9kb21fY3NzX3N0eWxlX2RlY2xhcmF0aW9uX2dldF9wYXJlbnRfcnVsZShX
ZWJLaXRET01DU1NTCiAgICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkp
OwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
Q1NTU3R5bGVEZWNsYXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24uaAppbmRleCA4
OGZlN2I4NWY2ZS4uNzM1ZmMzMDhmMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZURlY2xhcmF0
aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24uaApAQCAtNDUsNyArNDUsNyBAQCBz
dHJ1Y3QgX1dlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb25DbGFzcyB7CiAgICAgV2ViS2l0RE9N
T2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lU
X0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fY3NzX3N0eWxlX2RlY2xhcmF0aW9uX2dldF90
eXBlKHZvaWQpOwogCiAvKioKQEAgLTU0LDggKzU0LDEwIEBAIHdlYmtpdF9kb21fY3NzX3N0eWxl
X2RlY2xhcmF0aW9uX2dldF90eXBlKHZvaWQpOwogICogQHByb3BlcnR5TmFtZTogQSAjZ2NoYXIK
ICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9nZXRf
cHJvcGVydHlfdmFsdWUoV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiogc2VsZiwgY29uc3Qg
Z2NoYXIqIHByb3BlcnR5TmFtZSk7CiAKIC8qKgpAQCAtNjUsOCArNjcsMTAgQEAgd2Via2l0X2Rv
bV9jc3Nfc3R5bGVfZGVjbGFyYXRpb25fZ2V0X3Byb3BlcnR5X3ZhbHVlKFdlYktpdERPTUNTU1N0
eWxlRGVjbGFyYXRpb24KICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6IEEgI2dj
aGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdl
YmtpdF9kb21fY3NzX3N0eWxlX2RlY2xhcmF0aW9uX3JlbW92ZV9wcm9wZXJ0eShXZWJLaXRET01D
U1NTdHlsZURlY2xhcmF0aW9uKiBzZWxmLCBjb25zdCBnY2hhciogcHJvcGVydHlOYW1lLCBHRXJy
b3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtNzUsOCArNzksMTAgQEAgd2Via2l0X2RvbV9jc3Nfc3R5
bGVfZGVjbGFyYXRpb25fcmVtb3ZlX3Byb3BlcnR5KFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRp
b24qIHMKICAqIEBwcm9wZXJ0eU5hbWU6IEEgI2djaGFyCiAgKgogICogUmV0dXJuczogQSAjZ2No
YXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Vi
a2l0X2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRpb25fZ2V0X3Byb3BlcnR5X3ByaW9yaXR5KFdlYktp
dERPTUNTU1N0eWxlRGVjbGFyYXRpb24qIHNlbGYsIGNvbnN0IGdjaGFyKiBwcm9wZXJ0eU5hbWUp
OwogCiAvKioKQEAgLTg3LDggKzkzLDEwIEBAIHdlYmtpdF9kb21fY3NzX3N0eWxlX2RlY2xhcmF0
aW9uX2dldF9wcm9wZXJ0eV9wcmlvcml0eShXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0CiAgKiBA
cHJpb3JpdHk6IEEgI2djaGFyCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9jc3Nfc3R5bGVfZGVj
bGFyYXRpb25fc2V0X3Byb3BlcnR5KFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24qIHNlbGYs
IGNvbnN0IGdjaGFyKiBwcm9wZXJ0eU5hbWUsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgY29uc3QgZ2No
YXIqIHByaW9yaXR5LCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtOTcsOCArMTA1LDEwIEBA
IHdlYmtpdF9kb21fY3NzX3N0eWxlX2RlY2xhcmF0aW9uX3NldF9wcm9wZXJ0eShXZWJLaXRET01D
U1NTdHlsZURlY2xhcmF0aW9uKiBzZWxmCiAgKiBAaW5kZXg6IEEgI2d1bG9uZwogICoKICAqIFJl
dHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRF
RCBnY2hhcioKIHdlYmtpdF9kb21fY3NzX3N0eWxlX2RlY2xhcmF0aW9uX2l0ZW0oV2ViS2l0RE9N
Q1NTU3R5bGVEZWNsYXJhdGlvbiogc2VsZiwgZ3Vsb25nIGluZGV4KTsKIAogLyoqCkBAIC0xMDcs
OCArMTE3LDEwIEBAIHdlYmtpdF9kb21fY3NzX3N0eWxlX2RlY2xhcmF0aW9uX2l0ZW0oV2ViS2l0
RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiogc2VsZiwgZ3Vsb25nCiAgKiBAcHJvcGVydHlOYW1lOiBB
ICNnY2hhcgogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIq
CitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fY3NzX3N0eWxlX2RlY2xhcmF0
aW9uX2dldF9wcm9wZXJ0eV9zaG9ydGhhbmQoV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiog
c2VsZiwgY29uc3QgZ2NoYXIqIHByb3BlcnR5TmFtZSk7CiAKIC8qKgpAQCAtMTE3LDggKzEyOSwx
MCBAQCB3ZWJraXRfZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9nZXRfcHJvcGVydHlfc2hvcnRo
YW5kKFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYQogICogQHByb3BlcnR5TmFtZTogQSAjZ2NoYXIK
ICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitX
RUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRp
b25faXNfcHJvcGVydHlfaW1wbGljaXQoV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiogc2Vs
ZiwgY29uc3QgZ2NoYXIqIHByb3BlcnR5TmFtZSk7CiAKIC8qKgpAQCAtMTI2LDggKzE0MCwxMCBA
QCB3ZWJraXRfZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9pc19wcm9wZXJ0eV9pbXBsaWNpdChX
ZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aQogICogQHNlbGY6IEEgI1dlYktpdERPTUNTU1N0eWxl
RGVjbGFyYXRpb24KICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2Nzc19zdHlsZV9kZWNs
YXJhdGlvbl9nZXRfY3NzX3RleHQoV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiogc2VsZik7
CiAKIC8qKgpAQCAtMTM2LDggKzE1MiwxMCBAQCB3ZWJraXRfZG9tX2Nzc19zdHlsZV9kZWNsYXJh
dGlvbl9nZXRfY3NzX3RleHQoV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiogc2VsZgogICog
QHZhbHVlOiBBICNnY2hhcgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fY3NzX3N0eWxlX2RlY2xh
cmF0aW9uX3NldF9jc3NfdGV4dChXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uKiBzZWxmLCBj
b25zdCBnY2hhciogdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xNDUsOCArMTYz
LDEwIEBAIHdlYmtpdF9kb21fY3NzX3N0eWxlX2RlY2xhcmF0aW9uX3NldF9jc3NfdGV4dChXZWJL
aXRET01DU1NTdHlsZURlY2xhcmF0aW9uKiBzZWxmCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NQ1NT
U3R5bGVEZWNsYXJhdGlvbgogICoKICAqIFJldHVybnM6IEEgI2d1bG9uZworICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGd1bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vsb25nCiB3ZWJraXRfZG9tX2Nzc19zdHls
ZV9kZWNsYXJhdGlvbl9nZXRfbGVuZ3RoKFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24qIHNl
bGYpOwogCiAvKioKQEAgLTE1NCw4ICsxNzQsMTAgQEAgd2Via2l0X2RvbV9jc3Nfc3R5bGVfZGVj
bGFyYXRpb25fZ2V0X2xlbmd0aChXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uKiBzZWxmKTsK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uCiAgKgogICogUmV0dXJu
czogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01DU1NSdWxlCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
V2ViS2l0RE9NQ1NTUnVsZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUNTU1J1bGUqCiB3
ZWJraXRfZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9nZXRfcGFyZW50X3J1bGUoV2ViS2l0RE9N
Q1NTU3R5bGVEZWNsYXJhdGlvbiogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NQ1NTU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTU3R5bGVTaGVldC5jcHAKaW5kZXggMDAwNzQ3
NzA3NmMuLjJhMTEyYWUyZWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTU3R5bGVTaGVldC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUNTU1N0eWxlU2hlZXQuY3BwCkBAIC0zNCw2ICszNCw4IEBACiAjaW5jbHVkZSA8d3Rm
L0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9S
RV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01DU1NTdHls
ZVNoZWV0KiBraXQoV2ViQ29yZTo6Q1NTU3R5bGVTaGVldCogb2JqKQpAQCAtMjE0LDMgKzIxNiw0
IEBAIFdlYktpdERPTUNTU1J1bGVMaXN0KiB3ZWJraXRfZG9tX2Nzc19zdHlsZV9zaGVldF9nZXRf
cnVsZXMoV2ViS2l0RE9NQ1NTU3R5bGVTaGVlCiAgICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmpl
Y3RSZXN1bHQuZ2V0KCkpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NQ1NTU3R5bGVTaGVldC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1N0eWxlU2hlZXQuaAppbmRl
eCA5YTg1YjY1Nzc4ZS4uYTA0ZTA0ZmExODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZVNoZWV0
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUNTU1N0eWxlU2hlZXQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dl
YktpdERPTUNTU1N0eWxlU2hlZXRDbGFzcyB7CiAgICAgV2ViS2l0RE9NU3R5bGVTaGVldENsYXNz
IHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVE
IEdUeXBlCiB3ZWJraXRfZG9tX2Nzc19zdHlsZV9zaGVldF9nZXRfdHlwZSh2b2lkKTsKIAogLyoq
CkBAIC01Niw4ICs1NiwxMCBAQCB3ZWJraXRfZG9tX2Nzc19zdHlsZV9zaGVldF9nZXRfdHlwZSh2
b2lkKTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6IEEgI2d1bG9uZworICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGd1bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vsb25nCiB3ZWJraXRfZG9t
X2Nzc19zdHlsZV9zaGVldF9pbnNlcnRfcnVsZShXZWJLaXRET01DU1NTdHlsZVNoZWV0KiBzZWxm
LCBjb25zdCBnY2hhciogcnVsZSwgZ3Vsb25nIGluZGV4LCBHRXJyb3IqKiBlcnJvcik7CiAKIC8q
KgpAQCAtNjYsOCArNjgsMTAgQEAgd2Via2l0X2RvbV9jc3Nfc3R5bGVfc2hlZXRfaW5zZXJ0X3J1
bGUoV2ViS2l0RE9NQ1NTU3R5bGVTaGVldCogc2VsZiwgY29uc3QgZ2NoYXIKICAqIEBpbmRleDog
QSAjZ3Vsb25nCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9jc3Nfc3R5bGVfc2hlZXRfZGVsZXRl
X3J1bGUoV2ViS2l0RE9NQ1NTU3R5bGVTaGVldCogc2VsZiwgZ3Vsb25nIGluZGV4LCBHRXJyb3Iq
KiBlcnJvcik7CiAKIC8qKgpAQCAtNzksOCArODMsMTAgQEAgd2Via2l0X2RvbV9jc3Nfc3R5bGVf
c2hlZXRfZGVsZXRlX3J1bGUoV2ViS2l0RE9NQ1NTU3R5bGVTaGVldCogc2VsZiwgZ3Vsb25nIGlu
ZGUKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2Nzc19z
dHlsZV9zaGVldF9hZGRfcnVsZShXZWJLaXRET01DU1NTdHlsZVNoZWV0KiBzZWxmLCBjb25zdCBn
Y2hhciogc2VsZWN0b3IsIGNvbnN0IGdjaGFyKiBzdHlsZSwgZ3Vsb25nIGluZGV4LCBHRXJyb3Iq
KiBlcnJvcik7CiAKIC8qKgpAQCAtODksOCArOTUsMTAgQEAgd2Via2l0X2RvbV9jc3Nfc3R5bGVf
c2hlZXRfYWRkX3J1bGUoV2ViS2l0RE9NQ1NTU3R5bGVTaGVldCogc2VsZiwgY29uc3QgZ2NoYXIq
IHMKICAqIEBpbmRleDogQSAjZ3Vsb25nCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9jc3Nfc3R5
bGVfc2hlZXRfcmVtb3ZlX3J1bGUoV2ViS2l0RE9NQ1NTU3R5bGVTaGVldCogc2VsZiwgZ3Vsb25n
IGluZGV4LCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtOTgsOCArMTA2LDEwIEBAIHdlYmtp
dF9kb21fY3NzX3N0eWxlX3NoZWV0X3JlbW92ZV9ydWxlKFdlYktpdERPTUNTU1N0eWxlU2hlZXQq
IHNlbGYsIGd1bG9uZyBpbmRlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NQ1NTU3R5bGVTaGVldAog
ICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NQ1NTUnVsZQorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIFdlYktpdERPTUNTU1J1bGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRE
T01DU1NSdWxlKgogd2Via2l0X2RvbV9jc3Nfc3R5bGVfc2hlZXRfZ2V0X293bmVyX3J1bGUoV2Vi
S2l0RE9NQ1NTU3R5bGVTaGVldCogc2VsZik7CiAKIC8qKgpAQCAtMTA3LDggKzExNywxMCBAQCB3
ZWJraXRfZG9tX2Nzc19zdHlsZV9zaGVldF9nZXRfb3duZXJfcnVsZShXZWJLaXRET01DU1NTdHls
ZVNoZWV0KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01DU1NTdHlsZVNoZWV0CiAgKgog
ICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01DU1NSdWxlTGlzdAorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIFdlYktpdERPTUNTU1J1bGVMaXN0KgorV0VCS0lUX0RFUFJFQ0FURUQgV2Vi
S2l0RE9NQ1NTUnVsZUxpc3QqCiB3ZWJraXRfZG9tX2Nzc19zdHlsZV9zaGVldF9nZXRfY3NzX3J1
bGVzKFdlYktpdERPTUNTU1N0eWxlU2hlZXQqIHNlbGYpOwogCiAvKioKQEAgLTExNiw4ICsxMjgs
MTAgQEAgd2Via2l0X2RvbV9jc3Nfc3R5bGVfc2hlZXRfZ2V0X2Nzc19ydWxlcyhXZWJLaXRET01D
U1NTdHlsZVNoZWV0KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01DU1NTdHlsZVNoZWV0
CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01DU1NSdWxlTGlz
dAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUNTU1J1bGVMaXN0KgorV0VCS0lUX0RFUFJFQ0FU
RUQgV2ViS2l0RE9NQ1NTUnVsZUxpc3QqCiB3ZWJraXRfZG9tX2Nzc19zdHlsZV9zaGVldF9nZXRf
cnVsZXMoV2ViS2l0RE9NQ1NTU3R5bGVTaGVldCogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NQ1NTVmFsdWUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1ZhbHVlLmNwcAppbmRleCBiM2MzZTBm
ZDM4NS4uNmE5ZWI1OTI4OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NWYWx1ZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUNTU1ZhbHVlLmNwcApAQCAtMzcsNiArMzcsOCBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9N
Q1NTVmFsdWVQcml2YXRlIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFs
dWU+IGNvcmVPYmplY3Q7CiB9IFdlYktpdERPTUNTU1ZhbHVlUHJpdmF0ZTsKIAorR19HTlVDX0JF
R0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRE
T01DU1NWYWx1ZSoga2l0KFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlKiBvYmopCkBAIC0x
OTMsMyArMTk1LDQgQEAgZ3VzaG9ydCB3ZWJraXRfZG9tX2Nzc192YWx1ZV9nZXRfY3NzX3ZhbHVl
X3R5cGUoV2ViS2l0RE9NQ1NTVmFsdWUqIHNlbGYpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAor
R19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1ZhbHVl
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NQ1NTVmFsdWUuaAppbmRleCBkMjQzYmJmMmRhZC4uMjY1NTRhZWQwM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01DU1NWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NWYWx1ZS5oCkBAIC0zNywyNiArMzcs
MzggQEAgR19CRUdJTl9ERUNMUwogI2RlZmluZSBXRUJLSVRfRE9NX0lTX0NTU19WQUxVRV9DTEFT
UyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfRE9NX1RZ
UEVfQ1NTX1ZBTFVFKSkKICNkZWZpbmUgV0VCS0lUX0RPTV9DU1NfVkFMVUVfR0VUX0NMQVNTKG9i
aikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX0RPTV9UWVBFX0NT
U19WQUxVRSwgV2ViS2l0RE9NQ1NTVmFsdWVDbGFzcykpCiAKKyNpZm5kZWYgV0VCS0lUX0RJU0FC
TEVfREVQUkVDQVRFRAorCiAvKioKICAqIFdFQktJVF9ET01fQ1NTX1ZBTFVFX0NTU19JTkhFUklU
OgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fQ1NTX1ZBTFVFX0NTU19JTkhFUklUIDAKIAogLyoq
CiAgKiBXRUJLSVRfRE9NX0NTU19WQUxVRV9DU1NfUFJJTUlUSVZFX1ZBTFVFOgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVm
aW5lIFdFQktJVF9ET01fQ1NTX1ZBTFVFX0NTU19QUklNSVRJVkVfVkFMVUUgMQogCiAvKioKICAq
IFdFQktJVF9ET01fQ1NTX1ZBTFVFX0NTU19WQUxVRV9MSVNUOgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJ
VF9ET01fQ1NTX1ZBTFVFX0NTU19WQUxVRV9MSVNUIDIKIAogLyoqCiAgKiBXRUJLSVRfRE9NX0NT
U19WQUxVRV9DU1NfQ1VTVE9NOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fQ1NTX1ZBTFVFX0NT
U19DVVNUT00gMwogCisjZW5kaWYgLyogV0VCS0lUX0RJU0FCTEVfREVQUkVDQVRFRCAqLworCiBz
dHJ1Y3QgX1dlYktpdERPTUNTU1ZhbHVlIHsKICAgICBXZWJLaXRET01PYmplY3QgcGFyZW50X2lu
c3RhbmNlOwogfTsKQEAgLTY1LDcgKzc3LDcgQEAgc3RydWN0IF9XZWJLaXRET01DU1NWYWx1ZUNs
YXNzIHsKICAgICBXZWJLaXRET01PYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJL
SVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9jc3NfdmFs
dWVfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNzMsOCArODUsMTAgQEAgd2Via2l0X2RvbV9j
c3NfdmFsdWVfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NQ1NTVmFsdWUK
ICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2Nzc192YWx1ZV9nZXRfY3NzX3RleHQoV2Vi
S2l0RE9NQ1NTVmFsdWUqIHNlbGYpOwogCiAvKioKQEAgLTgzLDggKzk3LDEwIEBAIHdlYmtpdF9k
b21fY3NzX3ZhbHVlX2dldF9jc3NfdGV4dChXZWJLaXRET01DU1NWYWx1ZSogc2VsZik7CiAgKiBA
dmFsdWU6IEEgI2djaGFyCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9jc3NfdmFsdWVfc2V0X2Nz
c190ZXh0KFdlYktpdERPTUNTU1ZhbHVlKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJv
cioqIGVycm9yKTsKIAogLyoqCkBAIC05Miw4ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9jc3NfdmFs
dWVfc2V0X2Nzc190ZXh0KFdlYktpdERPTUNTU1ZhbHVlKiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUsIEcKICAqIEBzZWxmOiBBICNXZWJLaXRET01DU1NWYWx1ZQogICoKICAqIFJldHVybnM6IEEg
I2d1c2hvcnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBndXNob3J0CitXRUJLSVRfREVQUkVDQVRFRCBndXNo
b3J0CiB3ZWJraXRfZG9tX2Nzc192YWx1ZV9nZXRfY3NzX3ZhbHVlX3R5cGUoV2ViS2l0RE9NQ1NT
VmFsdWUqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNoYXJhY3RlckRh
dGEuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUNoYXJhY3RlckRhdGEuY3BwCmluZGV4IDYyMDc1M2NjNTA4Li5jZTkwOTc3
Mjk0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUNoYXJhY3RlckRhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DaGFyYWN0
ZXJEYXRhLmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05T
OworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YSoga2l0KFdl
YkNvcmU6OkNoYXJhY3RlckRhdGEqIG9iaikKQEAgLTI1NiwzICsyNTgsNCBAQCBndWxvbmcgd2Vi
a2l0X2RvbV9jaGFyYWN0ZXJfZGF0YV9nZXRfbGVuZ3RoKFdlYktpdERPTUNoYXJhY3RlckRhdGEq
IHNlbGYpCiAgICAgZ3Vsb25nIHJlc3VsdCA9IGl0ZW0tPmxlbmd0aCgpOwogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NQ2hhcmFjdGVyRGF0YS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNoYXJhY3RlckRhdGEuaAppbmRleCAyNzVhNWI5ZTc3
Yi4uYjRmOTgwZjA3NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DaGFyYWN0ZXJEYXRhLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUNoYXJhY3RlckRhdGEuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUNoYXJh
Y3RlckRhdGFDbGFzcyB7CiAgICAgV2ViS2l0RE9NTm9kZUNsYXNzIHBhcmVudF9jbGFzczsKIH07
CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9t
X2NoYXJhY3Rlcl9kYXRhX2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTU2LDggKzU2LDEwIEBA
IHdlYmtpdF9kb21fY2hhcmFjdGVyX2RhdGFfZ2V0X3R5cGUodm9pZCk7CiAgKiBAZXJyb3I6ICNH
RXJyb3IKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgor
V0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2NoYXJhY3Rlcl9kYXRhX3N1YnN0
cmluZ19kYXRhKFdlYktpdERPTUNoYXJhY3RlckRhdGEqIHNlbGYsIGd1bG9uZyBvZmZzZXQsIGd1
bG9uZyBsZW5ndGgsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC02Niw4ICs2OCwxMCBAQCB3
ZWJraXRfZG9tX2NoYXJhY3Rlcl9kYXRhX3N1YnN0cmluZ19kYXRhKFdlYktpdERPTUNoYXJhY3Rl
ckRhdGEqIHNlbGYsIGd1bG9uZyBvZgogICogQGRhdGE6IEEgI2djaGFyCiAgKiBAZXJyb3I6ICNH
RXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9jaGFyYWN0ZXJfZGF0YV9hcHBlbmRfZGF0YShXZWJLaXRET01DaGFyYWN0ZXJE
YXRhKiBzZWxmLCBjb25zdCBnY2hhciogZGF0YSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAg
LTc3LDggKzgxLDEwIEBAIHdlYmtpdF9kb21fY2hhcmFjdGVyX2RhdGFfYXBwZW5kX2RhdGEoV2Vi
S2l0RE9NQ2hhcmFjdGVyRGF0YSogc2VsZiwgY29uc3QgZ2NoYXIqCiAgKiBAZGF0YTogQSAjZ2No
YXIKICAqIEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRf
REVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2NoYXJhY3Rlcl9kYXRhX2luc2VydF9kYXRhKFdl
YktpdERPTUNoYXJhY3RlckRhdGEqIHNlbGYsIGd1bG9uZyBvZmZzZXQsIGNvbnN0IGdjaGFyKiBk
YXRhLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtODgsOCArOTQsMTAgQEAgd2Via2l0X2Rv
bV9jaGFyYWN0ZXJfZGF0YV9pbnNlcnRfZGF0YShXZWJLaXRET01DaGFyYWN0ZXJEYXRhKiBzZWxm
LCBndWxvbmcgb2Zmc2UKICAqIEBsZW5ndGg6IEEgI2d1bG9uZwogICogQGVycm9yOiAjR0Vycm9y
CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtp
dF9kb21fY2hhcmFjdGVyX2RhdGFfZGVsZXRlX2RhdGEoV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YSog
c2VsZiwgZ3Vsb25nIG9mZnNldCwgZ3Vsb25nIGxlbmd0aCwgR0Vycm9yKiogZXJyb3IpOwogCiAv
KioKQEAgLTEwMCw4ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9jaGFyYWN0ZXJfZGF0YV9kZWxldGVf
ZGF0YShXZWJLaXRET01DaGFyYWN0ZXJEYXRhKiBzZWxmLCBndWxvbmcgb2Zmc2UKICAqIEBkYXRh
OiBBICNnY2hhcgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fY2hhcmFjdGVyX2RhdGFfcmVwbGFj
ZV9kYXRhKFdlYktpdERPTUNoYXJhY3RlckRhdGEqIHNlbGYsIGd1bG9uZyBvZmZzZXQsIGd1bG9u
ZyBsZW5ndGgsIGNvbnN0IGdjaGFyKiBkYXRhLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAt
MTA5LDggKzExOSwxMCBAQCB3ZWJraXRfZG9tX2NoYXJhY3Rlcl9kYXRhX3JlcGxhY2VfZGF0YShX
ZWJLaXRET01DaGFyYWN0ZXJEYXRhKiBzZWxmLCBndWxvbmcgb2ZmcwogICogQHNlbGY6IEEgI1dl
YktpdERPTUNoYXJhY3RlckRhdGEKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2NoYXJh
Y3Rlcl9kYXRhX2dldF9kYXRhKFdlYktpdERPTUNoYXJhY3RlckRhdGEqIHNlbGYpOwogCiAvKioK
QEAgLTExOSw4ICsxMzEsMTAgQEAgd2Via2l0X2RvbV9jaGFyYWN0ZXJfZGF0YV9nZXRfZGF0YShX
ZWJLaXRET01DaGFyYWN0ZXJEYXRhKiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqIEBl
cnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2NoYXJhY3Rlcl9kYXRhX3NldF9kYXRhKFdlYktpdERPTUNoYXJh
Y3RlckRhdGEqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOwogCiAv
KioKQEAgLTEyOCw4ICsxNDIsMTAgQEAgd2Via2l0X2RvbV9jaGFyYWN0ZXJfZGF0YV9zZXRfZGF0
YShXZWJLaXRET01DaGFyYWN0ZXJEYXRhKiBzZWxmLCBjb25zdCBnY2hhciogdmEKICAqIEBzZWxm
OiBBICNXZWJLaXRET01DaGFyYWN0ZXJEYXRhCiAgKgogICogUmV0dXJuczogQSAjZ3Vsb25nCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQUkVDQVRFRCBndWxvbmcKIHdlYmtpdF9k
b21fY2hhcmFjdGVyX2RhdGFfZ2V0X2xlbmd0aChXZWJLaXRET01DaGFyYWN0ZXJEYXRhKiBzZWxm
KTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01D
bGllbnRSZWN0LmNwcAppbmRleCAxNjEyNmUyODdiYy4uZTUwZmE1OWFkY2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01DbGllbnRSZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdC5jcHAKQEAgLTM3LDYgKzM3
LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTUNsaWVudFJlY3RQcml2YXRlIHsKICAgICBS
ZWZQdHI8V2ViQ29yZTo6RE9NUmVjdD4gY29yZU9iamVjdDsKIH0gV2ViS2l0RE9NQ2xpZW50UmVj
dFByaXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NQ2xpZW50UmVjdCoga2l0KFdlYkNvcmU6OkRPTVJlY3Qq
IG9iaikKQEAgLTI0MCwzICsyNDIsNCBAQCBnZmxvYXQgd2Via2l0X2RvbV9jbGllbnRfcmVjdF9n
ZXRfaGVpZ2h0KFdlYktpdERPTUNsaWVudFJlY3QqIHNlbGYpCiAgICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoV0VCS0lUX0RPTV9JU19DTElFTlRfUkVDVChzZWxmKSwgMCk7CiAgICAgcmV0dXJuIFdl
YktpdDo6Y29yZShzZWxmKS0+aGVpZ2h0KCk7CiB9CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNB
VElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdC5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3QuaApp
bmRleCBiNTlkOTcwZTBmNS4uYjQ5MWQyMmFhODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUNsaWVudFJlY3QuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktp
dERPTUNsaWVudFJlY3RDbGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50X2Ns
YXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdl
YmtpdF9kb21fY2xpZW50X3JlY3RfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTcsOCArNTcs
MTAgQEAgd2Via2l0X2RvbV9jbGllbnRfcmVjdF9nZXRfdHlwZSh2b2lkKTsKICAqIFJldHVybnM6
IEEgI2dmbG9hdAogICoKICAqIFNpbmNlOiAyLjE4CisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Zsb2F0CitX
RUJLSVRfREVQUkVDQVRFRCBnZmxvYXQKIHdlYmtpdF9kb21fY2xpZW50X3JlY3RfZ2V0X3RvcChX
ZWJLaXRET01DbGllbnRSZWN0KiBzZWxmKTsKIAogLyoqCkBAIC03MCw4ICs3MiwxMCBAQCB3ZWJr
aXRfZG9tX2NsaWVudF9yZWN0X2dldF90b3AoV2ViS2l0RE9NQ2xpZW50UmVjdCogc2VsZik7CiAg
KiBSZXR1cm5zOiBBICNnZmxvYXQKICAqCiAgKiBTaW5jZTogMi4xOAorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGdmbG9hdAorV0VCS0lUX0RFUFJFQ0FURUQgZ2Zsb2F0CiB3ZWJraXRfZG9tX2NsaWVudF9yZWN0
X2dldF9yaWdodChXZWJLaXRET01DbGllbnRSZWN0KiBzZWxmKTsKIAogLyoqCkBAIC04Myw4ICs4
NywxMCBAQCB3ZWJraXRfZG9tX2NsaWVudF9yZWN0X2dldF9yaWdodChXZWJLaXRET01DbGllbnRS
ZWN0KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2dmbG9hdAogICoKICAqIFNpbmNlOiAyLjE4Cisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2Zsb2F0CitXRUJLSVRfREVQUkVDQVRFRCBnZmxvYXQKIHdlYmtpdF9k
b21fY2xpZW50X3JlY3RfZ2V0X2JvdHRvbShXZWJLaXRET01DbGllbnRSZWN0KiBzZWxmKTsKIAog
LyoqCkBAIC05Niw4ICsxMDIsMTAgQEAgd2Via2l0X2RvbV9jbGllbnRfcmVjdF9nZXRfYm90dG9t
KFdlYktpdERPTUNsaWVudFJlY3QqIHNlbGYpOwogICogUmV0dXJuczogQSAjZ2Zsb2F0CiAgKgog
ICogU2luY2U6IDIuMTgKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnZmxvYXQKK1dFQktJVF9ERVBSRUNBVEVE
IGdmbG9hdAogd2Via2l0X2RvbV9jbGllbnRfcmVjdF9nZXRfbGVmdChXZWJLaXRET01DbGllbnRS
ZWN0KiBzZWxmKTsKIAogLyoqCkBAIC0xMDksOCArMTE3LDEwIEBAIHdlYmtpdF9kb21fY2xpZW50
X3JlY3RfZ2V0X2xlZnQoV2ViS2l0RE9NQ2xpZW50UmVjdCogc2VsZik7CiAgKiBSZXR1cm5zOiBB
ICNnZmxvYXQKICAqCiAgKiBTaW5jZTogMi4xOAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdmbG9hdAorV0VC
S0lUX0RFUFJFQ0FURUQgZ2Zsb2F0CiB3ZWJraXRfZG9tX2NsaWVudF9yZWN0X2dldF93aWR0aChX
ZWJLaXRET01DbGllbnRSZWN0KiBzZWxmKTsKIAogLyoqCkBAIC0xMjIsOCArMTMyLDEwIEBAIHdl
YmtpdF9kb21fY2xpZW50X3JlY3RfZ2V0X3dpZHRoKFdlYktpdERPTUNsaWVudFJlY3QqIHNlbGYp
OwogICogUmV0dXJuczogQSAjZ2Zsb2F0CiAgKgogICogU2luY2U6IDIuMTgKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnZmxvYXQKK1dFQktJVF9ERVBSRUNBVEVEIGdmbG9hdAogd2Via2l0X2RvbV9jbGllbnRf
cmVjdF9nZXRfaGVpZ2h0KFdlYktpdERPTUNsaWVudFJlY3QqIHNlbGYpOwogCiBHX0VORF9ERUNM
UwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3RMaXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlz
dC5jcHAKaW5kZXggMDcxYzZlNGUyODMuLjk1MDM2YWQ4NGI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xp
ZW50UmVjdExpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdC5jcHAKQEAgLTM4LDYgKzM4
LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0ZSB7CiAg
ICAgUmVmUHRyPFdlYkNvcmU6OkRPTVJlY3RMaXN0PiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01D
bGllbnRSZWN0TGlzdFByaXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05T
OworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIGtpdChX
ZWJDb3JlOjpET01SZWN0TGlzdCogb2JqKQpAQCAtMTQ0LDMgKzE0Niw0IEBAIGd1bG9uZyB3ZWJr
aXRfZG9tX2NsaWVudF9yZWN0X2xpc3RfZ2V0X2xlbmd0aChXZWJLaXRET01DbGllbnRSZWN0TGlz
dCogc2VsZikKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0NMSUVOVF9S
RUNUX0xJU1Qoc2VsZiksIDApOwogICAgIHJldHVybiBXZWJLaXQ6OmNvcmUoc2VsZiktPmxlbmd0
aCgpOwogfQorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUNsaWVudFJlY3RMaXN0LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QuaAppbmRleCBlYjlhNGY3OWU0
Yi4uMmQ5YzA1ZmY4YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01DbGllbnRSZWN0TGlzdC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NQ2xp
ZW50UmVjdExpc3RDbGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNz
OwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtp
dF9kb21fY2xpZW50X3JlY3RfbGlzdF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Nyw4ICs1
NywxMCBAQCB3ZWJraXRfZG9tX2NsaWVudF9yZWN0X2xpc3RfZ2V0X3R5cGUodm9pZCk7CiAgKiBS
ZXR1cm5zOiBBICNndWxvbmcKICAqCiAgKiBTaW5jZTogMi4xOAorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGd1
bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vsb25nCiB3ZWJraXRfZG9tX2NsaWVudF9yZWN0X2xp
c3RfZ2V0X2xlbmd0aChXZWJLaXRET01DbGllbnRSZWN0TGlzdCogc2VsZik7CiAKIC8qKgpAQCAt
NzEsOCArNzMsMTAgQEAgd2Via2l0X2RvbV9jbGllbnRfcmVjdF9saXN0X2dldF9sZW5ndGgoV2Vi
S2l0RE9NQ2xpZW50UmVjdExpc3QqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwp
OiBBICNXZWJLaXRET01DbGllbnRSZWN0CiAgKgogICogU2luY2U6IDIuMTgKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBXZWJLaXRET01DbGllbnRSZWN0KiB3ZWJraXRfZG9tX2NsaWVudF9yZWN0X2xpc3RfaXRl
bShXZWJLaXRET01DbGllbnRSZWN0TGlzdCogc2VsZiwgZ3Vsb25nIGluZGV4KTsKK1dFQktJVF9E
RVBSRUNBVEVEIFdlYktpdERPTUNsaWVudFJlY3QqIHdlYmtpdF9kb21fY2xpZW50X3JlY3RfbGlz
dF9pdGVtKFdlYktpdERPTUNsaWVudFJlY3RMaXN0KiBzZWxmLCBndWxvbmcgaW5kZXgpOwogCiBH
X0VORF9ERUNMUwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ29tbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ29tbWVudC5j
cHAKaW5kZXggZWRlOWUwYzg4YmQuLmVhYjM0ZmEyMjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ29tbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUNvbW1lbnQuY3BwCkBAIC0zNSw2ICszNSw4IEBACiAjaW5jbHVkZSA8
d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lH
Tk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01Db21t
ZW50KiBraXQoV2ViQ29yZTo6Q29tbWVudCogb2JqKQpAQCAtMTAyLDMgKzEwNCw0IEBAIHN0YXRp
YyB2b2lkIHdlYmtpdF9kb21fY29tbWVudF9pbml0KFdlYktpdERPTUNvbW1lbnQqIHJlcXVlc3Qp
CiAgICAgVU5VU0VEX1BBUkFNKHJlcXVlc3QpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBS
RUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ29tbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNvbW1lbnQuaAppbmRl
eCA2NmJmYjYzYTQ4ZS4uZmM3M2FiMDBiYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Db21tZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUNvbW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUNvbW1l
bnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YUNsYXNzIHBhcmVudF9jbGFzczsK
IH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRf
ZG9tX2NvbW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NRE9NSW1wbGVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTUltcGxlbWVudGF0aW9uLmNwcAppbmRl
eCA0NDU5MjZlMjQ1NS4uZjkxY2Y1MGEwNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01JbXBsZW1lbnRh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTURPTUltcGxlbWVudGF0aW9uLmNwcApAQCAtNDIsNiArNDIsOCBA
QCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NRE9NSW1wbGVtZW50YXRpb25Qcml2YXRlIHsKICAg
ICBSZWZQdHI8V2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb24+IGNvcmVPYmplY3Q7CiB9IFdlYktp
dERPTURPTUltcGxlbWVudGF0aW9uUHJpdmF0ZTsKIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBS
RUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01ET01JbXBsZW1lbnRh
dGlvbioga2l0KFdlYkNvcmU6OkRPTUltcGxlbWVudGF0aW9uKiBvYmopCkBAIC0xODEsMyArMTgz
LDQgQEAgV2ViS2l0RE9NSFRNTERvY3VtZW50KiB3ZWJraXRfZG9tX2RvbV9pbXBsZW1lbnRhdGlv
bl9jcmVhdGVfaHRtbF9kb2N1bWVudChXZWJLaXQKICAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29i
amVjdFJlc3VsdC5nZXQoKSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01ET01JbXBsZW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTUltcGxlbWVudGF0
aW9uLmgKaW5kZXggMGU5MmU4MWQ1NTcuLjJlYzA0MmZkOGY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9N
SW1wbGVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NSW1wbGVtZW50YXRpb24uaApAQCAtNDUsNyAr
NDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTURPTUltcGxlbWVudGF0aW9uQ2xhc3MgewogICAgIFdl
YktpdERPTU9iamVjdENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUK
K1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2RvbV9pbXBsZW1lbnRhdGlvbl9n
ZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01NSw4ICs1NSwxMCBAQCB3ZWJraXRfZG9tX2RvbV9p
bXBsZW1lbnRhdGlvbl9nZXRfdHlwZSh2b2lkKTsKICAqIEB2ZXJzaW9uOiBBICNnY2hhcgogICoK
ICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJ
VF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2RvbV9pbXBsZW1lbnRhdGlvbl9oYXNf
ZmVhdHVyZShXZWJLaXRET01ET01JbXBsZW1lbnRhdGlvbiogc2VsZiwgY29uc3QgZ2NoYXIqIGZl
YXR1cmUsIGNvbnN0IGdjaGFyKiB2ZXJzaW9uKTsKIAogLyoqCkBAIC02OCw4ICs3MCwxMCBAQCB3
ZWJraXRfZG9tX2RvbV9pbXBsZW1lbnRhdGlvbl9oYXNfZmVhdHVyZShXZWJLaXRET01ET01JbXBs
ZW1lbnRhdGlvbiogc2VsZiwgY29ucwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJu
czogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Eb2N1bWVudFR5cGUKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBXZWJLaXRET01Eb2N1bWVudFR5cGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01E
b2N1bWVudFR5cGUqCiB3ZWJraXRfZG9tX2RvbV9pbXBsZW1lbnRhdGlvbl9jcmVhdGVfZG9jdW1l
bnRfdHlwZShXZWJLaXRET01ET01JbXBsZW1lbnRhdGlvbiogc2VsZiwgY29uc3QgZ2NoYXIqIHF1
YWxpZmllZE5hbWUsIGNvbnN0IGdjaGFyKiBwdWJsaWNJZCwgY29uc3QgZ2NoYXIqIHN5c3RlbUlk
LCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtODEsOCArODUsMTAgQEAgd2Via2l0X2RvbV9k
b21faW1wbGVtZW50YXRpb25fY3JlYXRlX2RvY3VtZW50X3R5cGUoV2ViS2l0RE9NRE9NSW1wbGVt
ZW50YXRpb24qIHMKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2Zl
ciBub25lKTogQSAjV2ViS2l0RE9NRG9jdW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01E
b2N1bWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTURvY3VtZW50Kgogd2Via2l0X2Rv
bV9kb21faW1wbGVtZW50YXRpb25fY3JlYXRlX2RvY3VtZW50KFdlYktpdERPTURPTUltcGxlbWVu
dGF0aW9uKiBzZWxmLCBjb25zdCBnY2hhciogbmFtZXNwYWNlVVJJLCBjb25zdCBnY2hhciogcXVh
bGlmaWVkTmFtZSwgV2ViS2l0RE9NRG9jdW1lbnRUeXBlKiBkb2N0eXBlLCBHRXJyb3IqKiBlcnJv
cik7CiAKIC8qKgpAQCAtOTMsOCArOTksMTAgQEAgd2Via2l0X2RvbV9kb21faW1wbGVtZW50YXRp
b25fY3JlYXRlX2RvY3VtZW50KFdlYktpdERPTURPTUltcGxlbWVudGF0aW9uKiBzZWxmLAogICog
QGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJL
aXRET01DU1NTdHlsZVNoZWV0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NQ1NTU3R5bGVTaGVl
dCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUNTU1N0eWxlU2hlZXQqCiB3ZWJraXRfZG9t
X2RvbV9pbXBsZW1lbnRhdGlvbl9jcmVhdGVfY3NzX3N0eWxlX3NoZWV0KFdlYktpdERPTURPTUlt
cGxlbWVudGF0aW9uKiBzZWxmLCBjb25zdCBnY2hhciogdGl0bGUsIGNvbnN0IGdjaGFyKiBtZWRp
YSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTEwMyw4ICsxMTEsMTAgQEAgd2Via2l0X2Rv
bV9kb21faW1wbGVtZW50YXRpb25fY3JlYXRlX2Nzc19zdHlsZV9zaGVldChXZWJLaXRET01ET01J
bXBsZW1lbnRhdGlvbioKICAqIEB0aXRsZTogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiAodHJh
bnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUhUTUxEb2N1bWVudAorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdl
YktpdERPTUhUTUxEb2N1bWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxEb2N1
bWVudCoKIHdlYmtpdF9kb21fZG9tX2ltcGxlbWVudGF0aW9uX2NyZWF0ZV9odG1sX2RvY3VtZW50
KFdlYktpdERPTURPTUltcGxlbWVudGF0aW9uKiBzZWxmLCBjb25zdCBnY2hhciogdGl0bGUpOwog
CiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9N
U2VsZWN0aW9uLmNwcAppbmRleCBmODVmMjU0NTU2OS4uZDA5NDdlNDZiMzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01ET01TZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01TZWxlY3Rpb24uY3BwCkBAIC0zOSw2
ICszOSw4IEBAIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01ET01TZWxlY3Rpb25Qcml2YXRlIHsK
ICAgICBSZWZQdHI8V2ViQ29yZTo6RE9NU2VsZWN0aW9uPiBjb3JlT2JqZWN0OwogfSBXZWJLaXRE
T01ET01TZWxlY3Rpb25Qcml2YXRlOwogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9O
UzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTURPTVNlbGVjdGlvbioga2l0KFdl
YkNvcmU6OkRPTVNlbGVjdGlvbiogb2JqKQpAQCAtNTI5LDMgKzUzMSw0IEBAIGd1bG9uZyB3ZWJr
aXRfZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X2V4dGVudF9vZmZzZXQoV2ViS2l0RE9NRE9NU2VsZWN0
aW9uKiBzZWxmKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RF
UFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01TZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01TZWxl
Y3Rpb24uaAppbmRleCBhZTU1OGI5NDRhMy4uOWNhMDdlZmEzMTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01E
T01TZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NU2VsZWN0aW9uLmgKQEAgLTQ1LDcgKzQ1LDcgQEAg
c3RydWN0IF9XZWJLaXRET01ET01TZWxlY3Rpb25DbGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0
Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJF
Q0FURUQgR1R5cGUKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfdHlwZSh2b2lkKTsKIAog
LyoqCkBAIC01NSw4ICs1NSwxMCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X3R5cGUo
dm9pZCk7CiAgKiBAb2Zmc2V0OiBBICNndWxvbmcKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3Nl
bGVjdGlvbl9jb2xsYXBzZShXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYsIFdlYktpdERPTU5v
ZGUqIG5vZGUsIGd1bG9uZyBvZmZzZXQpOwogCiAvKioKQEAgLTY1LDggKzY3LDEwIEBAIHdlYmtp
dF9kb21fZG9tX3NlbGVjdGlvbl9jb2xsYXBzZShXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYs
IFdlYktpdERPTU5vZGUqIG5vCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBTaW5jZTogMi4x
NgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21fZG9tX3NlbGVjdGlvbl9jb2xsYXBzZV90b19lbmQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBz
ZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtNzUsOCArNzksMTAgQEAgd2Via2l0X2Rv
bV9kb21fc2VsZWN0aW9uX2NvbGxhcHNlX3RvX2VuZChXZWJLaXRET01ET01TZWxlY3Rpb24qIHNl
bGYsIEdFcnJvcioqIGUKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFNpbmNlOiAyLjE2Cisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAg
Ki8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9k
b21fc2VsZWN0aW9uX2NvbGxhcHNlX3RvX3N0YXJ0KFdlYktpdERPTURPTVNlbGVjdGlvbiogc2Vs
ZiwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTg0LDggKzkwLDEwIEBAIHdlYmtpdF9kb21f
ZG9tX3NlbGVjdGlvbl9jb2xsYXBzZV90b19zdGFydChXZWJLaXRET01ET01TZWxlY3Rpb24qIHNl
bGYsIEdFcnJvcioqCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NU2VsZWN0aW9uCiAgKgogICog
U2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZGVsZXRlX2Zyb21fZG9jdW1lbnQoV2ViS2l0RE9N
RE9NU2VsZWN0aW9uKiBzZWxmKTsKIAogLyoqCkBAIC05Nyw4ICsxMDUsMTAgQEAgd2Via2l0X2Rv
bV9kb21fc2VsZWN0aW9uX2RlbGV0ZV9mcm9tX2RvY3VtZW50KFdlYktpdERPTURPTVNlbGVjdGlv
biogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2Cisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAg
Ki8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJr
aXRfZG9tX2RvbV9zZWxlY3Rpb25fY29udGFpbnNfbm9kZShXZWJLaXRET01ET01TZWxlY3Rpb24q
IHNlbGYsIFdlYktpdERPTU5vZGUqIG5vZGUsIGdib29sZWFuIGFsbG93UGFydGlhbCk7CiAKIC8q
KgpAQCAtMTA3LDggKzExNywxMCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fY29udGFpbnNf
bm9kZShXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYsIFdlYktpdERPTU5vZAogICogQG5vZGU6
IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9zZWxl
Y3RfYWxsX2NoaWxkcmVuKFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZiwgV2ViS2l0RE9NTm9k
ZSogbm9kZSk7CiAKIC8qKgpAQCAtMTE5LDggKzEzMSwxMCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxl
Y3Rpb25fc2VsZWN0X2FsbF9jaGlsZHJlbihXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYsIFdl
YktpdAogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rp
b25fZXh0ZW5kKFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZiwgV2ViS2l0RE9NTm9kZSogbm9k
ZSwgZ3Vsb25nIG9mZnNldCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTEzMiw4ICsxNDYs
MTAgQEAgd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2V4dGVuZChXZWJLaXRET01ET01TZWxlY3Rp
b24qIHNlbGYsIFdlYktpdERPTU5vZGUqIG5vZGUKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxs
KTogQSAjV2ViS2l0RE9NUmFuZ2UKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJ
IFdlYktpdERPTVJhbmdlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NUmFuZ2UqCiB3ZWJr
aXRfZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X3JhbmdlX2F0KFdlYktpdERPTURPTVNlbGVjdGlvbiog
c2VsZiwgZ3Vsb25nIGluZGV4LCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTQxLDggKzE1
NywxMCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X3JhbmdlX2F0KFdlYktpdERPTURP
TVNlbGVjdGlvbiogc2VsZiwgZ3Vsb25nIGluZGV4LAogICogQHNlbGY6IEEgI1dlYktpdERPTURP
TVNlbGVjdGlvbgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX3JlbW92ZV9hbGxf
cmFuZ2VzKFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZik7CiAKIC8qKgpAQCAtMTUxLDggKzE2
OSwxMCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fcmVtb3ZlX2FsbF9yYW5nZXMoV2ViS2l0
RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKICAqIEByYW5nZTogQSAjV2ViS2l0RE9NUmFuZ2UKICAq
CiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9hZGRfcmFuZ2UoV2ViS2l0RE9NRE9NU2Vs
ZWN0aW9uKiBzZWxmLCBXZWJLaXRET01SYW5nZSogcmFuZ2UpOwogCiAvKioKQEAgLTE2NCw4ICsx
ODQsMTAgQEAgd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2FkZF9yYW5nZShXZWJLaXRET01ET01T
ZWxlY3Rpb24qIHNlbGYsIFdlYktpdERPTVJhbmdlKgogICogQGV4dGVudE9mZnNldDogQSAjZ3Vs
b25nCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fc2V0X2Jhc2VfYW5kX2V4dGVu
dChXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYsIFdlYktpdERPTU5vZGUqIGJhc2VOb2RlLCBn
dWxvbmcgYmFzZU9mZnNldCwgV2ViS2l0RE9NTm9kZSogZXh0ZW50Tm9kZSwgZ3Vsb25nIGV4dGVu
dE9mZnNldCk7CiAKIC8qKgpAQCAtMTc1LDggKzE5NywxMCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxl
Y3Rpb25fc2V0X2Jhc2VfYW5kX2V4dGVudChXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYsIFdl
YktpdAogICogQG9mZnNldDogQSAjZ3Vsb25nCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvbV9zZWxl
Y3Rpb25fc2V0X3Bvc2l0aW9uKFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZiwgV2ViS2l0RE9N
Tm9kZSogbm9kZSwgZ3Vsb25nIG9mZnNldCk7CiAKIC8qKgpAQCAtMTg0LDggKzIwOCwxMCBAQCB3
ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fc2V0X3Bvc2l0aW9uKFdlYktpdERPTURPTVNlbGVjdGlv
biogc2VsZiwgV2ViS2l0RE9NTm9kZQogICogQHNlbGY6IEEgI1dlYktpdERPTURPTVNlbGVjdGlv
bgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2VtcHR5KFdlYktpdERPTURPTVNl
bGVjdGlvbiogc2VsZik7CiAKIC8qKgpAQCAtMTk2LDggKzIyMiwxMCBAQCB3ZWJraXRfZG9tX2Rv
bV9zZWxlY3Rpb25fZW1wdHkoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKICAqIEBncmFu
dWxhcml0eTogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9tb2Rp
ZnkoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmLCBjb25zdCBnY2hhciogYWx0ZXIsIGNvbnN0
IGdjaGFyKiBkaXJlY3Rpb24sIGNvbnN0IGdjaGFyKiBncmFudWxhcml0eSk7CiAKIC8qKgpAQCAt
MjA3LDggKzIzNSwxMCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fbW9kaWZ5KFdlYktpdERP
TURPTVNlbGVjdGlvbiogc2VsZiwgY29uc3QgZ2NoYXIqIGFsdGVyLAogICogUmV0dXJuczogKHRy
YW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwot
V0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9k
ZSoKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfYW5jaG9yX25vZGUoV2ViS2l0RE9NRE9N
U2VsZWN0aW9uKiBzZWxmKTsKIAogLyoqCkBAIC0yMTgsOCArMjQ4LDEwIEBAIHdlYmtpdF9kb21f
ZG9tX3NlbGVjdGlvbl9nZXRfYW5jaG9yX25vZGUoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxm
KTsKICAqIFJldHVybnM6IEEgI2d1bG9uZwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJ
VF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQUkVDQVRFRCBndWxvbmcKIHdlYmtpdF9kb21fZG9tX3Nl
bGVjdGlvbl9nZXRfYW5jaG9yX29mZnNldChXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYpOwog
CiAvKioKQEAgLTIyOSw4ICsyNjEsMTAgQEAgd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2dldF9h
bmNob3Jfb2Zmc2V0KFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZik7CiAgKiBSZXR1cm5zOiAo
dHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBTaW5jZTogMi4xNgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICov
Ci1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01O
b2RlKgogd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2dldF9mb2N1c19ub2RlKFdlYktpdERPTURP
TVNlbGVjdGlvbiogc2VsZik7CiAKIC8qKgpAQCAtMjQwLDggKzI3NCwxMCBAQCB3ZWJraXRfZG9t
X2RvbV9zZWxlY3Rpb25fZ2V0X2ZvY3VzX25vZGUoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxm
KTsKICAqIFJldHVybnM6IEEgI2d1bG9uZwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJ
VF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQUkVDQVRFRCBndWxvbmcKIHdlYmtpdF9kb21fZG9tX3Nl
bGVjdGlvbl9nZXRfZm9jdXNfb2Zmc2V0KFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZik7CiAK
IC8qKgpAQCAtMjUxLDggKzI4NywxMCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X2Zv
Y3VzX29mZnNldChXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYpOwogICogUmV0dXJuczogQSAj
Z2Jvb2xlYW4KICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIGdib29sZWFuCitX
RUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2dldF9p
c19jb2xsYXBzZWQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKIAogLyoqCkBAIC0yNjIs
OCArMzAwLDEwIEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfaXNfY29sbGFwc2VkKFdl
YktpdERPTURPTVNlbGVjdGlvbiogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNndWxvbmcKICAqCiAg
KiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIGd1bG9uZworV0VCS0lUX0RFUFJFQ0FURUQg
Z3Vsb25nCiB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X3JhbmdlX2NvdW50KFdlYktpdERP
TURPTVNlbGVjdGlvbiogc2VsZik7CiAKIC8qKgpAQCAtMjczLDggKzMxMywxMCBAQCB3ZWJraXRf
ZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X3JhbmdlX2NvdW50KFdlYktpdERPTURPTVNlbGVjdGlvbiog
c2VsZik7CiAgKiBSZXR1cm5zOiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9t
X3NlbGVjdGlvbl9nZXRfc2VsZWN0aW9uX3R5cGUoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxm
KTsKIAogLyoqCkBAIC0yODQsOCArMzI2LDEwIEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9n
ZXRfc2VsZWN0aW9uX3R5cGUoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKICAqIFJldHVy
bnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQogICoKICAqIFNpbmNlOiAyLjE2
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAgKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktp
dERPTU5vZGUqCiB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X2Jhc2Vfbm9kZShXZWJLaXRE
T01ET01TZWxlY3Rpb24qIHNlbGYpOwogCiAvKioKQEAgLTI5NSw4ICszMzksMTAgQEAgd2Via2l0
X2RvbV9kb21fc2VsZWN0aW9uX2dldF9iYXNlX25vZGUoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBz
ZWxmKTsKICAqIFJldHVybnM6IEEgI2d1bG9uZwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdF
QktJVF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQUkVDQVRFRCBndWxvbmcKIHdlYmtpdF9kb21fZG9t
X3NlbGVjdGlvbl9nZXRfYmFzZV9vZmZzZXQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsK
IAogLyoqCkBAIC0zMDYsOCArMzUyLDEwIEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRf
YmFzZV9vZmZzZXQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKICAqIFJldHVybnM6ICh0
cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQogICoKICAqIFNpbmNlOiAyLjE2CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8K
LVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5v
ZGUqCiB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X2V4dGVudF9ub2RlKFdlYktpdERPTURP
TVNlbGVjdGlvbiogc2VsZik7CiAKIC8qKgpAQCAtMzE3LDggKzM2NSwxMCBAQCB3ZWJraXRfZG9t
X2RvbV9zZWxlY3Rpb25fZ2V0X2V4dGVudF9ub2RlKFdlYktpdERPTURPTVNlbGVjdGlvbiogc2Vs
Zik7CiAgKiBSZXR1cm5zOiBBICNndWxvbmcKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJL
SVRfQVBJIGd1bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vsb25nCiB3ZWJraXRfZG9tX2RvbV9z
ZWxlY3Rpb25fZ2V0X2V4dGVudF9vZmZzZXQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsK
IAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01Ub2tlbkxpc3QuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURP
TVRva2VuTGlzdC5jcHAKaW5kZXggOWE5MjE3MzJkM2IuLjY1YzdmYmUyNzhjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NRE9NVG9rZW5MaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NVG9rZW5MaXN0LmNwcApAQCAtMzcs
NiArMzcsOCBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NRE9NVG9rZW5MaXN0UHJpdmF0ZSB7
CiAgICAgUmVmUHRyPFdlYkNvcmU6OkRPTVRva2VuTGlzdD4gY29yZU9iamVjdDsKIH0gV2ViS2l0
RE9NRE9NVG9rZW5MaXN0UHJpdmF0ZTsKIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElP
TlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01ET01Ub2tlbkxpc3QqIGtpdChX
ZWJDb3JlOjpET01Ub2tlbkxpc3QqIG9iaikKQEAgLTI4MCwzICsyODIsNCBAQCB2b2lkIHdlYmtp
dF9kb21fZG9tX3Rva2VuX2xpc3Rfc2V0X3ZhbHVlKFdlYktpdERPTURPTVRva2VuTGlzdCogc2Vs
ZiwgY29uc3QgZ2NoYQogICAgIGl0ZW0tPnNldFZhbHVlKGNvbnZlcnRlZFZhbHVlKTsKIH0KIAor
R19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVRva2Vu
TGlzdC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTURPTVRva2VuTGlzdC5oCmluZGV4IDIyM2YwZTI2MzA2Li42MDNkYjcxYTc5
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTURPTVRva2VuTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01Ub2tlbkxpc3Qu
aApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTURPTVRva2VuTGlzdENsYXNzIHsK
ICAgICBXZWJLaXRET01PYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJ
IEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9kb21fdG9rZW5fbGlz
dF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Niw4ICs1NiwxMCBAQCB3ZWJraXRfZG9tX2Rv
bV90b2tlbl9saXN0X2dldF90eXBlKHZvaWQpOwogICogUmV0dXJuczogQSAjZ2NoYXIKICAqCiAg
KiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQg
Z2NoYXIqCiB3ZWJraXRfZG9tX2RvbV90b2tlbl9saXN0X2l0ZW0oV2ViS2l0RE9NRE9NVG9rZW5M
aXN0KiBzZWxmLCBndWxvbmcgaW5kZXgpOwogCiAvKioKQEAgLTY4LDggKzcwLDEwIEBAIHdlYmtp
dF9kb21fZG9tX3Rva2VuX2xpc3RfaXRlbShXZWJLaXRET01ET01Ub2tlbkxpc3QqIHNlbGYsIGd1
bG9uZyBpbmRleCk7CiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAgKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3
ZWJraXRfZG9tX2RvbV90b2tlbl9saXN0X2NvbnRhaW5zKFdlYktpdERPTURPTVRva2VuTGlzdCog
c2VsZiwgY29uc3QgZ2NoYXIqIHRva2VuKTsKIAogLyoqCkBAIC03OSw4ICs4MywxMCBAQCB3ZWJr
aXRfZG9tX2RvbV90b2tlbl9saXN0X2NvbnRhaW5zKFdlYktpdERPTURPTVRva2VuTGlzdCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIHRvawogICogQC4uLjogbGlzdCBvZiAjZ2NoYXIgZW5kZWQgYnkgJU5V
TEwuCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvbV90b2tlbl9saXN0X2FkZChXZWJLaXRET01ET01U
b2tlbkxpc3QqIHNlbGYsIEdFcnJvcioqIGVycm9yLCAuLi4pOwogCiAvKioKQEAgLTkwLDggKzk2
LDEwIEBAIHdlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfYWRkKFdlYktpdERPTURPTVRva2VuTGlz
dCogc2VsZiwgR0Vycm9yKiogZXJyb3IsIC4uLik7CiAgKiBALi4uOiBsaXN0IG9mICNnY2hhciBl
bmRlZCBieSAlTlVMTC4KICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfcmVtb3Zl
KFdlYktpdERPTURPTVRva2VuTGlzdCogc2VsZiwgR0Vycm9yKiogZXJyb3IsIC4uLik7CiAKIC8q
KgpAQCAtMTA0LDggKzExMiwxMCBAQCB3ZWJraXRfZG9tX2RvbV90b2tlbl9saXN0X3JlbW92ZShX
ZWJLaXRET01ET01Ub2tlbkxpc3QqIHNlbGYsIEdFcnJvcioqIGVycm9yLCAuLgogICogUmV0dXJu
czogQSAjZ2Jvb2xlYW4KICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIGdib29s
ZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9kb21fdG9rZW5fbGlz
dF90b2dnbGUoV2ViS2l0RE9NRE9NVG9rZW5MaXN0KiBzZWxmLCBjb25zdCBnY2hhciogdG9rZW4s
IGdib29sZWFuIGZvcmNlLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTE2LDggKzEyNiwx
MCBAQCB3ZWJraXRfZG9tX2RvbV90b2tlbl9saXN0X3RvZ2dsZShXZWJLaXRET01ET01Ub2tlbkxp
c3QqIHNlbGYsIGNvbnN0IGdjaGFyKiB0b2tlbgogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICog
U2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2RvbV90b2tlbl9saXN0X3JlcGxhY2UoV2ViS2l0RE9NRE9NVG9rZW5MaXN0
KiBzZWxmLCBjb25zdCBnY2hhciogdG9rZW4sIGNvbnN0IGdjaGFyKiBuZXdUb2tlbiwgR0Vycm9y
KiogZXJyb3IpOwogCiAvKioKQEAgLTEyNyw4ICsxMzksMTAgQEAgd2Via2l0X2RvbV9kb21fdG9r
ZW5fbGlzdF9yZXBsYWNlKFdlYktpdERPTURPTVRva2VuTGlzdCogc2VsZiwgY29uc3QgZ2NoYXIq
IHRva2UKICAqIFJldHVybnM6IEEgI2d1bG9uZwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdF
QktJVF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQUkVDQVRFRCBndWxvbmcKIHdlYmtpdF9kb21fZG9t
X3Rva2VuX2xpc3RfZ2V0X2xlbmd0aChXZWJLaXRET01ET01Ub2tlbkxpc3QqIHNlbGYpOwogCiAv
KioKQEAgLTEzOCw4ICsxNTIsMTAgQEAgd2Via2l0X2RvbV9kb21fdG9rZW5fbGlzdF9nZXRfbGVu
Z3RoKFdlYktpdERPTURPTVRva2VuTGlzdCogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnY2hhcgog
ICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVD
QVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfZ2V0X3ZhbHVlKFdlYktpdERP
TURPTVRva2VuTGlzdCogc2VsZik7CiAKIC8qKgpAQCAtMTQ4LDggKzE2NCwxMCBAQCB3ZWJraXRf
ZG9tX2RvbV90b2tlbl9saXN0X2dldF92YWx1ZShXZWJLaXRET01ET01Ub2tlbkxpc3QqIHNlbGYp
OwogICogQHZhbHVlOiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21fdG9rZW5fbGlz
dF9zZXRfdmFsdWUoV2ViS2l0RE9NRE9NVG9rZW5MaXN0KiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVdpbmRvdy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
RE9NV2luZG93LmNwcAppbmRleCA3NWRmYjkzZmFlMS4uOWEzMmFkZjFmOTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01XaW5kb3cuY3BwCkBAIC00OCw2ICs0OCw4
IEBAIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01ET01XaW5kb3dQcml2YXRlIHsKICAgICBSZWZQ
dHI8V2ViQ29yZTo6RE9NV2luZG93PiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01ET01XaW5kb3dQ
cml2YXRlOwogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIFdlYktpdERPTURPTVdpbmRvdyoga2l0KFdlYkNvcmU6OkRPTVdpbmRvdyog
b2JqKQpAQCAtMTA1NywzICsxMDU5LDQgQEAgZ2Jvb2xlYW4gd2Via2l0X2RvbV9kb21fd2luZG93
X3dlYmtpdF9tZXNzYWdlX2hhbmRsZXJzX3Bvc3RfbWVzc2FnZShXZWJLaXRET01ET00KIAogICAg
IHJldHVybiBUUlVFOwogfQorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTURPTVdpbmRvdy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVdpbmRvdy5oCmluZGV4IGI1NDhmY2IyZjVk
Li5jMGY1NGI4ZWMzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01X
aW5kb3cuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTURPTVdpbmRvd0NsYXNz
IHsKICAgICBXZWJLaXRET01PYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRf
QVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9kb21fd2luZG93
X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTU1LDggKzU1LDEwIEBAIHdlYmtpdF9kb21fZG9t
X3dpbmRvd19nZXRfdHlwZSh2b2lkKTsKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAj
V2ViS2l0RE9NRE9NU2VsZWN0aW9uCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQ
SSBXZWJLaXRET01ET01TZWxlY3Rpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01ET01T
ZWxlY3Rpb24qCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3NlbGVjdGlvbihXZWJLaXRET01E
T01XaW5kb3cqIHNlbGYpOwogCiAvKioKQEAgLTY0LDggKzY2LDEwIEBAIHdlYmtpdF9kb21fZG9t
X3dpbmRvd19nZXRfc2VsZWN0aW9uKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NRE9NV2luZG93CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvbV93aW5kb3df
Zm9jdXMoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC03Myw4ICs3NywxMCBA
QCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZm9jdXMoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cKICAqCiAgKiBTaW5jZTogMi4xNgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9t
X3dpbmRvd19ibHVyKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpAQCAtODIsOCAr
ODgsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X2JsdXIoV2ViS2l0RE9NRE9NV2luZG93KiBz
ZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cKICAqCiAgKiBTaW5jZTogMi4x
NgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21fZG9tX3dpbmRvd19jbG9zZShXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAvKioKQEAg
LTkxLDggKzk5LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19jbG9zZShXZWJLaXRET01ET01X
aW5kb3cqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRvdwogICoKICAqIFNp
bmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9kb21fd2luZG93X3ByaW50KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAK
IC8qKgpAQCAtMTAwLDggKzExMCwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfcHJpbnQoV2Vi
S2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cK
ICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19zdG9wKFdlYktpdERPTURPTVdpbmRvdyog
c2VsZik7CiAKIC8qKgpAQCAtMTEwLDggKzEyMiwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3df
c3RvcChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogICogQG1lc3NhZ2U6IEEgI2djaGFyCiAg
KgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfYWxlcnQoV2ViS2l0RE9NRE9NV2luZG93KiBz
ZWxmLCBjb25zdCBnY2hhciogbWVzc2FnZSk7CiAKIC8qKgpAQCAtMTIyLDggKzEzNiwxMCBAQCB3
ZWJraXRfZG9tX2RvbV93aW5kb3dfYWxlcnQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBjb25z
dCBnY2hhciogbWVzc2FnZSk7CiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNl
OiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29s
ZWFuCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfY29uZmlybShXZWJLaXRET01ET01XaW5kb3cqIHNl
bGYsIGNvbnN0IGdjaGFyKiBtZXNzYWdlKTsKIAogLyoqCkBAIC0xMzUsOCArMTUxLDEwIEBAIHdl
YmtpdF9kb21fZG9tX3dpbmRvd19jb25maXJtKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgY29u
c3QgZ2NoYXIqIG1lc3NhZ2UpOwogICogUmV0dXJuczogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTog
Mi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogICovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3
ZWJraXRfZG9tX2RvbV93aW5kb3dfcHJvbXB0KFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgY29u
c3QgZ2NoYXIqIG1lc3NhZ2UsIGNvbnN0IGdjaGFyKiBkZWZhdWx0VmFsdWUpOwogCiAvKioKQEAg
LTE1Myw4ICsxNzEsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X3Byb21wdChXZWJLaXRET01E
T01XaW5kb3cqIHNlbGYsIGNvbnN0IGdjaGFyKiBtZXNzYWdlLCBjb24KICAqIFJldHVybnM6IEEg
I2dib29sZWFuCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgor
V0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZG9tX3dpbmRvd19maW5kKFdl
YktpdERPTURPTVdpbmRvdyogc2VsZiwgY29uc3QgZ2NoYXIqIHN0cmluZywgZ2Jvb2xlYW4gY2Fz
ZVNlbnNpdGl2ZSwgZ2Jvb2xlYW4gYmFja3dhcmRzLCBnYm9vbGVhbiB3cmFwLCBnYm9vbGVhbiB3
aG9sZVdvcmQsIGdib29sZWFuIHNlYXJjaEluRnJhbWVzLCBnYm9vbGVhbiBzaG93RGlhbG9nKTsK
IAogLyoqCkBAIC0xNjQsOCArMTg0LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19maW5kKFdl
YktpdERPTURPTVdpbmRvdyogc2VsZiwgY29uc3QgZ2NoYXIqIHN0cmluZywgZ2Jvb2xlCiAgKiBA
eTogQSAjZ2RvdWJsZQogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21fd2luZG93X3Njcm9sbF9ieShX
ZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGdkb3VibGUgeCwgZ2RvdWJsZSB5KTsKIAogLyoqCkBA
IC0xNzUsOCArMTk3LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19zY3JvbGxfYnkoV2ViS2l0
RE9NRE9NV2luZG93KiBzZWxmLCBnZG91YmxlIHgsIGdkb3VibGUgeSk7CiAgKiBAeTogQSAjZ2Rv
dWJsZQogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21fd2luZG93X3Njcm9sbF90byhXZWJLaXRET01E
T01XaW5kb3cqIHNlbGYsIGdkb3VibGUgeCwgZ2RvdWJsZSB5KTsKIAogLyoqCkBAIC0xODYsOCAr
MjEwLDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19zY3JvbGxfdG8oV2ViS2l0RE9NRE9NV2lu
ZG93KiBzZWxmLCBnZG91YmxlIHgsIGdkb3VibGUgeSk7CiAgKiBAeTogQSAjZ2Zsb2F0CiAgKgog
ICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2
b2lkCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfbW92ZV9ieShXZWJLaXRET01ET01XaW5kb3cqIHNl
bGYsIGdmbG9hdCB4LCBnZmxvYXQgeSk7CiAKIC8qKgpAQCAtMTk3LDggKzIyMywxMCBAQCB3ZWJr
aXRfZG9tX2RvbV93aW5kb3dfbW92ZV9ieShXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGdmbG9h
dCB4LCBnZmxvYXQgeSk7CiAgKiBAeTogQSAjZ2Zsb2F0CiAgKgogICogU2luY2U6IDIuMTYKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2Rv
bV93aW5kb3dfbW92ZV90byhXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGdmbG9hdCB4LCBnZmxv
YXQgeSk7CiAKIC8qKgpAQCAtMjA4LDggKzIzNiwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3df
bW92ZV90byhXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGdmbG9hdCB4LCBnZmxvYXQgeSk7CiAg
KiBAeTogQSAjZ2Zsb2F0CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfcmVzaXplX2J5
KFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgZ2Zsb2F0IHgsIGdmbG9hdCB5KTsKIAogLyoqCkBA
IC0yMTksOCArMjQ5LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19yZXNpemVfYnkoV2ViS2l0
RE9NRE9NV2luZG93KiBzZWxmLCBnZmxvYXQgeCwgZ2Zsb2F0IHkpOwogICogQGhlaWdodDogQSAj
Z2Zsb2F0CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRf
REVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfcmVzaXplX3RvKFdlYktpdERP
TURPTVdpbmRvdyogc2VsZiwgZ2Zsb2F0IHdpZHRoLCBnZmxvYXQgaGVpZ2h0KTsKIAogLyoqCkBA
IC0yMzIsOCArMjY0LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19yZXNpemVfdG8oV2ViS2l0
RE9NRE9NV2luZG93KiBzZWxmLCBnZmxvYXQgd2lkdGgsIGdmbG9hdCBoCiAgKiBSZXR1cm5zOiAo
dHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24KICAqCiAgKiBT
aW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24q
CitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uKgogd2Via2l0
X2RvbV9kb21fd2luZG93X2dldF9jb21wdXRlZF9zdHlsZShXZWJLaXRET01ET01XaW5kb3cqIHNl
bGYsIFdlYktpdERPTUVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IGdjaGFyKiBwc2V1ZG9FbGVtZW50
KTsKIAogLyoqCkBAIC0yNDEsOCArMjc1LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRf
Y29tcHV0ZWRfc3R5bGUoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBXZWJLaXRET01FbGVtCiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwot
V0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvbV93
aW5kb3dfY2FwdHVyZV9ldmVudHMoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBA
IC0yNTAsOCArMjg2LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19jYXB0dXJlX2V2ZW50cyhX
ZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRv
dwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21fd2luZG93X3JlbGVhc2VfZXZlbnRzKFdlYktpdERP
TURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpAQCAtMjYxLDggKzI5OSwxMCBAQCB3ZWJraXRfZG9t
X2RvbV93aW5kb3dfcmVsZWFzZV9ldmVudHMoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAq
IFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFNp
bmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRWxlbWVudCoKK1dFQktJVF9ERVBS
RUNBVEVEIFdlYktpdERPTUVsZW1lbnQqCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2ZyYW1l
X2VsZW1lbnQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC0yNzIsOCArMzEy
LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfZnJhbWVfZWxlbWVudChXZWJLaXRET01E
T01XaW5kb3cqIHNlbGYpOwogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KICAqCiAgKiBTaW5jZTog
Mi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogICovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVh
bgogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9vZmZzY3JlZW5fYnVmZmVyaW5nKFdlYktpdERP
TURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpAQCAtMjgzLDggKzMyNSwxMCBAQCB3ZWJraXRfZG9t
X2RvbV93aW5kb3dfZ2V0X29mZnNjcmVlbl9idWZmZXJpbmcoV2ViS2l0RE9NRE9NV2luZG93KiBz
ZWxmKTsKICAqIFJldHVybnM6IEEgI2dsb25nCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VC
S0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fZG9tX3dp
bmRvd19nZXRfb3V0ZXJfaGVpZ2h0KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpA
QCAtMjk0LDggKzMzOCwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X291dGVyX2hlaWdo
dChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogICogUmV0dXJuczogQSAjZ2xvbmcKICAqCiAg
KiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBn
bG9uZwogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9vdXRlcl93aWR0aChXZWJLaXRET01ET01X
aW5kb3cqIHNlbGYpOwogCiAvKioKQEAgLTMwNSw4ICszNTEsMTAgQEAgd2Via2l0X2RvbV9kb21f
d2luZG93X2dldF9vdXRlcl93aWR0aChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogICogUmV0
dXJuczogQSAjZ2xvbmcKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIGdsb25n
CitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9pbm5l
cl9oZWlnaHQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC0zMTYsOCArMzY0
LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfaW5uZXJfaGVpZ2h0KFdlYktpdERPTURP
TVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnbG9uZwogICoKICAqIFNpbmNlOiAyLjE2
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAgKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRf
ZG9tX2RvbV93aW5kb3dfZ2V0X2lubmVyX3dpZHRoKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7
CiAKIC8qKgpAQCAtMzI3LDggKzM3NywxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2lu
bmVyX3dpZHRoKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnbG9u
ZwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBS
RUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3NjcmVlbl94KFdlYktpdERP
TURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpAQCAtMzM4LDggKzM5MCwxMCBAQCB3ZWJraXRfZG9t
X2RvbV93aW5kb3dfZ2V0X3NjcmVlbl94KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBS
ZXR1cm5zOiBBICNnbG9uZwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2xv
bmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3Nj
cmVlbl95KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpAQCAtMzQ5LDggKzQwMywx
MCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3NjcmVlbl95KFdlYktpdERPTURPTVdpbmRv
dyogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnbG9uZwogICoKICAqIFNpbmNlOiAyLjE2CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8K
LVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2Rv
bV93aW5kb3dfZ2V0X3NjcmVlbl9sZWZ0KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAKIC8q
KgpAQCAtMzYwLDggKzQxNiwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3NjcmVlbl9s
ZWZ0KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnbG9uZwogICoK
ICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVE
IGdsb25nCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3NjcmVlbl90b3AoV2ViS2l0RE9NRE9N
V2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC0zNzEsOCArNDI5LDEwIEBAIHdlYmtpdF9kb21fZG9t
X3dpbmRvd19nZXRfc2NyZWVuX3RvcChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogICogUmV0
dXJuczogQSAjZ2xvbmcKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIGdsb25n
CitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zY3Jv
bGxfeChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAvKioKQEAgLTM4Miw4ICs0NDIsMTAg
QEAgd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zY3JvbGxfeChXZWJLaXRET01ET01XaW5kb3cq
IHNlbGYpOwogICogUmV0dXJuczogQSAjZ2xvbmcKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1X
RUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9kb21f
d2luZG93X2dldF9zY3JvbGxfeShXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAvKioKQEAg
LTM5Myw4ICs0NTUsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zY3JvbGxfeShXZWJL
aXRET01ET01XaW5kb3cqIHNlbGYpOwogICogUmV0dXJuczogQSAjZ2xvbmcKICAqCiAgKiBTaW5j
ZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogICovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwog
d2Via2l0X2RvbV9kb21fd2luZG93X2dldF9wYWdlX3hfb2Zmc2V0KFdlYktpdERPTURPTVdpbmRv
dyogc2VsZik7CiAKIC8qKgpAQCAtNDA0LDggKzQ2OCwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5k
b3dfZ2V0X3BhZ2VfeF9vZmZzZXQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIFJldHVy
bnM6IEEgI2dsb25nCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnbG9uZwor
V0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfcGFnZV95
X29mZnNldChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAvKioKQEAgLTQxNSw4ICs0ODEs
MTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9wYWdlX3lfb2Zmc2V0KFdlYktpdERPTURP
TVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAy
LjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFu
CiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2Nsb3NlZChXZWJLaXRET01ET01XaW5kb3cqIHNl
bGYpOwogCiAvKioKQEAgLTQyNiw4ICs0OTQsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X2dl
dF9jbG9zZWQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2d1bG9u
ZwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQ
UkVDQVRFRCBndWxvbmcKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfbGVuZ3RoKFdlYktpdERP
TURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpAQCAtNDM3LDggKzUwNywxMCBAQCB3ZWJraXRfZG9t
X2RvbV93aW5kb3dfZ2V0X2xlbmd0aChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogICogUmV0
dXJuczogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIGdjaGFy
KgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X25h
bWUoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC00NDcsOCArNTE5LDEwIEBA
IHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfbmFtZShXZWJLaXRET01ET01XaW5kb3cqIHNlbGYp
OwogICogQHZhbHVlOiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21fd2luZG93X3Nl
dF9uYW1lKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAog
LyoqCkBAIC00NTgsOCArNTMyLDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19zZXRfbmFtZShX
ZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAgKiBSZXR1cm5z
OiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitX
RUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc3RhdHVz
KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpAQCAtNDY4LDggKzU0NCwxMCBAQCB3
ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3N0YXR1cyhXZWJLaXRET01ET01XaW5kb3cqIHNlbGYp
OwogICogQHZhbHVlOiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21fd2luZG93X3Nl
dF9zdGF0dXMoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwog
CiAvKioKQEAgLTQ3OSw4ICs1NTcsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X3NldF9zdGF0
dXMoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogICogUmV0
dXJuczogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIGdjaGFy
KgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2Rl
ZmF1bHRfc3RhdHVzKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpAQCAtNDg5LDgg
KzU2OSwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2RlZmF1bHRfc3RhdHVzKFdlYktp
dERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgogICogU2luY2U6
IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICAqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJr
aXRfZG9tX2RvbV93aW5kb3dfc2V0X2RlZmF1bHRfc3RhdHVzKFdlYktpdERPTURPTVdpbmRvdyog
c2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC01MDAsOCArNTgyLDEwIEBAIHdl
YmtpdF9kb21fZG9tX3dpbmRvd19zZXRfZGVmYXVsdF9zdGF0dXMoV2ViS2l0RE9NRE9NV2luZG93
KiBzZWxmLCBjb25zdCBnY2hhcioKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2Vi
S2l0RE9NRE9NV2luZG93CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBXZWJL
aXRET01ET01XaW5kb3cqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01ET01XaW5kb3cqCiB3
ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3NlbGYoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsK
IAogLyoqCkBAIC01MTEsOCArNTk1LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2Vs
ZihXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwp
OiBBICNXZWJLaXRET01ET01XaW5kb3cKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRf
QVBJIFdlYktpdERPTURPTVdpbmRvdyoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTURPTVdp
bmRvdyoKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfd2luZG93KFdlYktpdERPTURPTVdpbmRv
dyogc2VsZik7CiAKIC8qKgpAQCAtNTIyLDggKzYwOCwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5k
b3dfZ2V0X3dpbmRvdyhXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogICogUmV0dXJuczogKHRy
YW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01ET01XaW5kb3cKICAqCiAgKiBTaW5jZTogMi4xNgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
ICovCi1XRUJLSVRfQVBJIFdlYktpdERPTURPTVdpbmRvdyoKK1dFQktJVF9ERVBSRUNBVEVEIFdl
YktpdERPTURPTVdpbmRvdyoKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfZnJhbWVzKFdlYktp
dERPTURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpAQCAtNTMzLDggKzYyMSwxMCBAQCB3ZWJraXRf
ZG9tX2RvbV93aW5kb3dfZ2V0X2ZyYW1lcyhXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogICog
UmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01ET01XaW5kb3cKICAqCiAgKiBT
aW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIFdlYktpdERPTURPTVdpbmRvdyoKK1dFQktJVF9E
RVBSRUNBVEVEIFdlYktpdERPTURPTVdpbmRvdyoKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRf
b3BlbmVyKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpAQCAtNTQ0LDggKzYzNCwx
MCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X29wZW5lcihXZWJLaXRET01ET01XaW5kb3cq
IHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01ET01XaW5k
b3cKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIFdlYktpdERPTURPTVdpbmRv
dyoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTURPTVdpbmRvdyoKIHdlYmtpdF9kb21fZG9t
X3dpbmRvd19nZXRfcGFyZW50KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpAQCAt
NTU1LDggKzY0NywxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3BhcmVudChXZWJLaXRE
T01ET01XaW5kb3cqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJL
aXRET01ET01XaW5kb3cKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIFdlYktp
dERPTURPTVdpbmRvdyoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTURPTVdpbmRvdyoKIHdl
YmtpdF9kb21fZG9tX3dpbmRvd19nZXRfdG9wKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAK
IC8qKgpAQCAtNTY2LDggKzY2MCwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3RvcChX
ZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBB
ICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkg
V2ViS2l0RE9NRG9jdW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Eb2N1bWVudCoK
IHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfZG9jdW1lbnQoV2ViS2l0RE9NRE9NV2luZG93KiBz
ZWxmKTsKIAogLyoqCkBAIC01NzcsOCArNjczLDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19n
ZXRfZG9jdW1lbnQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2dk
b3VibGUKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIGdkb3VibGUKK1dFQktJ
VF9ERVBSRUNBVEVEIGdkb3VibGUKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfZGV2aWNlX3Bp
eGVsX3JhdGlvKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpAQCAtNTg4LDggKzY4
NiwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2RldmljZV9waXhlbF9yYXRpbyhXZWJL
aXRET01ET01XaW5kb3cqIHNlbGYpOwogICogUmV0dXJuczogQSAjZ2xvbmcKICAqCiAgKiBTaW5j
ZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogICovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwog
d2Via2l0X2RvbV9kb21fd2luZG93X2dldF9vcmllbnRhdGlvbihXZWJLaXRET01ET01XaW5kb3cq
IHNlbGYpOwogCiAvKioKQEAgLTYwMSw4ICs3MDEsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93
X2dldF9vcmllbnRhdGlvbihXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogICogUmV0dXJuczog
V2hldGhlciB0aGUgbWVzc2FnZSB3YXMgc3VjY2Vzc2Z1bGx5IHNlbnQuCiAgKgogICogU2luY2U6
IDIuOAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogICovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVh
bgogd2Via2l0X2RvbV9kb21fd2luZG93X3dlYmtpdF9tZXNzYWdlX2hhbmRsZXJzX3Bvc3RfbWVz
c2FnZShXZWJLaXRET01ET01XaW5kb3cqIHdpbmRvdywgY29uc3QgZ2NoYXIqIGhhbmRsZXIsIGNv
bnN0IGdjaGFyKiBtZXNzYWdlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01EZXBy
ZWNhdGVkLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01EZXByZWNhdGVkLmNwcAppbmRleCBlYzcwZjM4MzYyOC4uMGQ4OTM1
MmRiMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01EZXByZWNhdGVkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRGVwcmVjYXRl
ZC5jcHAKQEAgLTM4LDYgKzM4LDggQEAKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJ
T05TOworCiBnY2hhciogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X2lubmVyX2h0bWwoV2Vi
S2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VC
S0lUX0RPTV9JU19IVE1MX0VMRU1FTlQoc2VsZiksIG51bGxwdHIpOwpAQCAtMzI1LDMgKzMyNyw0
IEBAIGdjaGFyKiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3dlYmtpdF9yZWdpb25fb3ZlcnNldChX
ZWJLaXRET01FbGVtZW50KikKICAgICBnX3dhcm5pbmcoIiVzOiBDU1MgUmVnaW9ucyBzdXBwb3J0
IGhhcyBiZWVuIHJlbW92ZWQsIHRoaXMgZnVuY3Rpb24gZG9lcyBub3RoaW5nLiIsIF9fZnVuY19f
KTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9O
UzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50LmgKaW5kZXggNGE4
M2UwMzViZGYuLjY2OWE2YTE2NzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NRG9jdW1lbnQuaApAQCAtNTUsOCArNTUsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRf
dHlwZSh2b2lkKTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2Zl
ciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVs
ZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9k
b2N1bWVudF9jcmVhdGVfZWxlbWVudChXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2No
YXIqIHRhZ05hbWUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC02NCw4ICs2NiwxMCBAQCB3
ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9lbGVtZW50KFdlYktpdERPTURvY3VtZW50KiBzZWxm
LCBjb25zdCBnY2hhciogdGFnTmFtZQogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAg
KgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Eb2N1bWVudEZyYWdt
ZW50CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudCoKK1dFQktJVF9E
RVBSRUNBVEVEIFdlYktpdERPTURvY3VtZW50RnJhZ21lbnQqCiB3ZWJraXRfZG9tX2RvY3VtZW50
X2NyZWF0ZV9kb2N1bWVudF9mcmFnbWVudChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8q
KgpAQCAtNzQsOCArNzgsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfZG9jdW1lbnRf
ZnJhZ21lbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQGRhdGE6IEEgI2djaGFyCiAg
KgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01UZXh0CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgV2ViS2l0RE9NVGV4dCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTVRleHQq
CiB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV90ZXh0X25vZGUoV2ViS2l0RE9NRG9jdW1lbnQq
IHNlbGYsIGNvbnN0IGdjaGFyKiBkYXRhKTsKIAogLyoqCkBAIC04NCw4ICs5MCwxMCBAQCB3ZWJr
aXRfZG9tX2RvY3VtZW50X2NyZWF0ZV90ZXh0X25vZGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYs
IGNvbnN0IGdjaGFyKiBkYXRhKQogICogQGRhdGE6IEEgI2djaGFyCiAgKgogICogUmV0dXJuczog
KHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Db21tZW50CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2Vi
S2l0RE9NQ29tbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUNvbW1lbnQqCiB3ZWJr
aXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9jb21tZW50KFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBj
b25zdCBnY2hhciogZGF0YSk7CiAKIC8qKgpAQCAtOTUsOCArMTAzLDEwIEBAIHdlYmtpdF9kb21f
ZG9jdW1lbnRfY3JlYXRlX2NvbW1lbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiBkYXRhKTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2Zl
ciBub25lKTogQSAjV2ViS2l0RE9NQ0RBVEFTZWN0aW9uCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0
RE9NQ0RBVEFTZWN0aW9uKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NQ0RBVEFTZWN0aW9u
Kgogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfY2RhdGFfc2VjdGlvbihXZWJLaXRET01Eb2N1
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGRhdGEsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBA
IC0xMDcsOCArMTE3LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2NkYXRhX3NlY3Rp
b24oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBkCiAgKiBAZXJyb3I6ICNH
RXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTVByb2Nl
c3NpbmdJbnN0cnVjdGlvbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTVByb2Nlc3NpbmdJbnN0
cnVjdGlvbioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTVByb2Nlc3NpbmdJbnN0cnVjdGlv
bioKIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX3Byb2Nlc3NpbmdfaW5zdHJ1Y3Rpb24oV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB0YXJnZXQsIGNvbnN0IGdjaGFyKiBk
YXRhLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTE4LDggKzEzMCwxMCBAQCB3ZWJraXRf
ZG9tX2RvY3VtZW50X2NyZWF0ZV9wcm9jZXNzaW5nX2luc3RydWN0aW9uKFdlYktpdERPTURvY3Vt
ZW50KiBzZWxmLCBjb25zdAogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRy
YW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01BdHRyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9N
QXR0cioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUF0dHIqCiB3ZWJraXRfZG9tX2RvY3Vt
ZW50X2NyZWF0ZV9hdHRyaWJ1dGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFy
KiBuYW1lLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTMwLDggKzE0NCwxMCBAQCB3ZWJr
aXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9hdHRyaWJ1dGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYs
IGNvbnN0IGdjaGFyKiBuYW1lLAogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJL
aXRET01IVE1MQ29sbGVjdGlvbgogICoKICAqIFNpbmNlOiAyLjEyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
V2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1M
Q29sbGVjdGlvbioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRzX2J5X3RhZ19uYW1l
X2FzX2h0bWxfY29sbGVjdGlvbihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IHRhZ25hbWUpOwogCiAvKioKQEAgLTE0Miw4ICsxNTgsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVu
dF9nZXRfZWxlbWVudHNfYnlfdGFnX25hbWVfYXNfaHRtbF9jb2xsZWN0aW9uKFdlYktpdERPTURv
Y3VtZW4KICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25l
KTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJL
SVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9kb2N1bWVudF9pbXBvcnRf
bm9kZShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgV2ViS2l0RE9NTm9kZSogaW1wb3J0ZWROb2Rl
LCBnYm9vbGVhbiBkZWVwLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTU0LDggKzE3Miwx
MCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2ltcG9ydF9ub2RlKFdlYktpdERPTURvY3VtZW50KiBz
ZWxmLCBXZWJLaXRET01Ob2RlKiBpbXBvcnRlZAogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICog
UmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVtZW50CisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgV2ViS2l0RE9NRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUVsZW1l
bnQqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9lbGVtZW50X25zKFdlYktpdERPTURvY3Vt
ZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZXNwYWNlVVJJLCBjb25zdCBnY2hhciogcXVhbGlm
aWVkTmFtZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTE2Niw4ICsxODYsMTAgQEAgd2Vi
a2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfZWxlbWVudF9ucyhXZWJLaXRET01Eb2N1bWVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIG5hbWUKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6
ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NQXR0cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktp
dERPTUF0dHIqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01BdHRyKgogd2Via2l0X2RvbV9k
b2N1bWVudF9jcmVhdGVfYXR0cmlidXRlX25zKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogbmFtZXNwYWNlVVJJLCBjb25zdCBnY2hhciogcXVhbGlmaWVkTmFtZSwgR0Vycm9y
KiogZXJyb3IpOwogCiAvKioKQEAgLTE3OSw4ICsyMDEsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVu
dF9jcmVhdGVfYXR0cmlidXRlX25zKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hh
ciogbmEKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NSFRNTENvbGxl
Y3Rpb24KICAqCiAgKiBTaW5jZTogMi4xMgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxD
b2xsZWN0aW9uKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCiB3
ZWJraXRfZG9tX2RvY3VtZW50X2dldF9lbGVtZW50c19ieV90YWdfbmFtZV9uc19hc19odG1sX2Nv
bGxlY3Rpb24oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lc3BhY2VV
UkksIGNvbnN0IGdjaGFyKiBsb2NhbE5hbWUpOwogCiAvKioKQEAgLTE5MCw4ICsyMTQsMTAgQEAg
d2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZWxlbWVudHNfYnlfdGFnX25hbWVfbnNfYXNfaHRtbF9j
b2xsZWN0aW9uKFdlYktpdERPTURvY3UKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVy
bnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdl
YktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2Rv
bV9kb2N1bWVudF9hZG9wdF9ub2RlKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBXZWJLaXRET01O
b2RlKiBzb3VyY2UsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0yMDEsOCArMjI3LDEwIEBA
IHdlYmtpdF9kb21fZG9jdW1lbnRfYWRvcHRfbm9kZShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwg
V2ViS2l0RE9NTm9kZSogc291cmNlLCBHCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1
cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUV2ZW50CisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
V2ViS2l0RE9NRXZlbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FdmVudCoKIHdlYmtp
dF9kb21fZG9jdW1lbnRfY3JlYXRlX2V2ZW50KFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogZXZlbnRUeXBlLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMjEwLDggKzIz
OCwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9ldmVudChXZWJLaXRET01Eb2N1bWVu
dCogc2VsZiwgY29uc3QgZ2NoYXIqIGV2ZW50VHlwZQogICogQHNlbGY6IEEgI1dlYktpdERPTURv
Y3VtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01SYW5n
ZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTVJhbmdlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2Vi
S2l0RE9NUmFuZ2UqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9yYW5nZShXZWJLaXRET01E
b2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjI0LDggKzI1NCwxMCBAQCB3ZWJraXRfZG9tX2Rv
Y3VtZW50X2NyZWF0ZV9yYW5nZShXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBAZXJyb3I6
ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTU5v
ZGVJdGVyYXRvcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGVJdGVyYXRvcioKK1dFQktJ
VF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGVJdGVyYXRvcioKIHdlYmtpdF9kb21fZG9jdW1lbnRf
Y3JlYXRlX25vZGVfaXRlcmF0b3IoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIFdlYktpdERPTU5v
ZGUqIHJvb3QsIGd1bG9uZyB3aGF0VG9TaG93LCBXZWJLaXRET01Ob2RlRmlsdGVyKiBmaWx0ZXIs
IGdib29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMsIEdFcnJvcioqIGVycm9yKTsKIAogLyoq
CkBAIC0yMzgsOCArMjcwLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX25vZGVfaXRl
cmF0b3IoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIFdlYktpdERPTU5vZGUqCiAgKiBAZXJyb3I6
ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTVRy
ZWVXYWxrZXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01UcmVlV2Fsa2VyKgorV0VCS0lUX0RF
UFJFQ0FURUQgV2ViS2l0RE9NVHJlZVdhbGtlcioKIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRl
X3RyZWVfd2Fsa2VyKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBXZWJLaXRET01Ob2RlKiByb290
LCBndWxvbmcgd2hhdFRvU2hvdywgV2ViS2l0RE9NTm9kZUZpbHRlciogZmlsdGVyLCBnYm9vbGVh
biBleHBhbmRFbnRpdHlSZWZlcmVuY2VzLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMjQ5
LDggKzI4MywxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV90cmVlX3dhbGtlcihXZWJL
aXRET01Eb2N1bWVudCogc2VsZiwgV2ViS2l0RE9NTm9kZSogcgogICogQHBzZXVkb0VsZW1lbnQ6
IChhbGxvdy1ub25lKTogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6
IEEgI1dlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRE
T01DU1NTdHlsZURlY2xhcmF0aW9uKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NQ1NTU3R5
bGVEZWNsYXJhdGlvbioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X292ZXJyaWRlX3N0eWxlKFdl
YktpdERPTURvY3VtZW50KiBzZWxmLCBXZWJLaXRET01FbGVtZW50KiBlbGVtZW50LCBjb25zdCBn
Y2hhciogcHNldWRvRWxlbWVudCk7CiAKIC8qKgpAQCAtMjYxLDggKzI5NywxMCBAQCB3ZWJraXRf
ZG9tX2RvY3VtZW50X2dldF9vdmVycmlkZV9zdHlsZShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwg
V2ViS2l0RE9NRWxlbWVudAogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRy
YW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01YUGF0aEV4cHJlc3Npb24KKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBXZWJLaXRET01YUGF0aEV4cHJlc3Npb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Y
UGF0aEV4cHJlc3Npb24qCiB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9leHByZXNzaW9uKFdl
YktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogZXhwcmVzc2lvbiwgV2ViS2l0RE9N
WFBhdGhOU1Jlc29sdmVyKiByZXNvbHZlciwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTI3
MSw4ICszMDksMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfZXhwcmVzc2lvbihXZWJL
aXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGV4cHIKICAqIEBub2RlUmVzb2x2ZXI6
IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dl
YktpdERPTVhQYXRoTlNSZXNvbHZlcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTVhQYXRoTlNS
ZXNvbHZlcioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTVhQYXRoTlNSZXNvbHZlcioKIHdl
YmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX25zX3Jlc29sdmVyKFdlYktpdERPTURvY3VtZW50KiBz
ZWxmLCBXZWJLaXRET01Ob2RlKiBub2RlUmVzb2x2ZXIpOwogCiAvKioKQEAgLTI4Niw4ICszMjYs
MTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfbnNfcmVzb2x2ZXIoV2ViS2l0RE9NRG9j
dW1lbnQqIHNlbGYsIFdlYktpdERPTU5vZGUqIG4KICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAq
IFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NWFBhdGhSZXN1bHQKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBXZWJLaXRET01YUGF0aFJlc3VsdCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktp
dERPTVhQYXRoUmVzdWx0Kgogd2Via2l0X2RvbV9kb2N1bWVudF9ldmFsdWF0ZShXZWJLaXRET01E
b2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGV4cHJlc3Npb24sIFdlYktpdERPTU5vZGUqIGNv
bnRleHROb2RlLCBXZWJLaXRET01YUGF0aE5TUmVzb2x2ZXIqIHJlc29sdmVyLCBndXNob3J0IHR5
cGUsIFdlYktpdERPTVhQYXRoUmVzdWx0KiBpblJlc3VsdCwgR0Vycm9yKiogZXJyb3IpOwogCiAv
KioKQEAgLTI5OCw4ICszNDAsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9ldmFsdWF0ZShXZWJL
aXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGV4cHJlc3Npb24sIFcKICAqIEB2YWx1
ZTogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9kb2N1bWVu
dF9leGVjX2NvbW1hbmQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBjb21t
YW5kLCBnYm9vbGVhbiB1c2VySW50ZXJmYWNlLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioK
QEAgLTMwOCw4ICszNTIsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9leGVjX2NvbW1hbmQoV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBjb21tYW5kLAogICogQGNvbW1hbmQ6
IEEgI2djaGFyCiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Ym9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZG9jdW1lbnRf
cXVlcnlfY29tbWFuZF9lbmFibGVkKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hh
ciogY29tbWFuZCk7CiAKIC8qKgpAQCAtMzE4LDggKzM2NCwxMCBAQCB3ZWJraXRfZG9tX2RvY3Vt
ZW50X3F1ZXJ5X2NvbW1hbmRfZW5hYmxlZChXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3Qg
Z2NoYXIqCiAgKiBAY29tbWFuZDogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVh
bgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgog
d2Via2l0X2RvbV9kb2N1bWVudF9xdWVyeV9jb21tYW5kX2luZGV0ZXJtKFdlYktpdERPTURvY3Vt
ZW50KiBzZWxmLCBjb25zdCBnY2hhciogY29tbWFuZCk7CiAKIC8qKgpAQCAtMzI4LDggKzM3Niwx
MCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X3F1ZXJ5X2NvbW1hbmRfaW5kZXRlcm0oV2ViS2l0RE9N
RG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKgogICogQGNvbW1hbmQ6IEEgI2djaGFyCiAgKgog
ICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZG9jdW1lbnRfcXVlcnlfY29tbWFuZF9z
dGF0ZShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGNvbW1hbmQpOwogCiAv
KioKQEAgLTMzOCw4ICszODgsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9xdWVyeV9jb21tYW5k
X3N0YXRlKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogY28KICAqIEBjb21t
YW5kOiBBICNnY2hhcgogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2RvY3Vt
ZW50X3F1ZXJ5X2NvbW1hbmRfc3VwcG9ydGVkKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogY29tbWFuZCk7CiAKIC8qKgpAQCAtMzQ4LDggKzQwMCwxMCBAQCB3ZWJraXRfZG9t
X2RvY3VtZW50X3F1ZXJ5X2NvbW1hbmRfc3VwcG9ydGVkKFdlYktpdERPTURvY3VtZW50KiBzZWxm
LCBjb25zdCBnY2hhcgogICogQGNvbW1hbmQ6IEEgI2djaGFyCiAgKgogICogUmV0dXJuczogQSAj
Z2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgog
d2Via2l0X2RvbV9kb2N1bWVudF9xdWVyeV9jb21tYW5kX3ZhbHVlKFdlYktpdERPTURvY3VtZW50
KiBzZWxmLCBjb25zdCBnY2hhciogY29tbWFuZCk7CiAKIC8qKgpAQCAtMzU4LDggKzQxMiwxMCBA
QCB3ZWJraXRfZG9tX2RvY3VtZW50X3F1ZXJ5X2NvbW1hbmRfdmFsdWUoV2ViS2l0RE9NRG9jdW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBjbwogICogQGVsZW1lbnROYW1lOiBBICNnY2hhcgogICoK
ICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NTm9kZUxpc3QKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlTGlzdCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERP
TU5vZGVMaXN0Kgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZWxlbWVudHNfYnlfbmFtZShXZWJL
aXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGVsZW1lbnROYW1lKTsKIAogLyoqCkBA
IC0zNjksOCArNDI1LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRzX2J5X25h
bWUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBlCiAgKiBAeTogQSAjZ2xv
bmcKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUVsZW1lbnQK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2Vi
S2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfZWxlbWVudF9mcm9tX3BvaW50KFdl
YktpdERPTURvY3VtZW50KiBzZWxmLCBnbG9uZyB4LCBnbG9uZyB5KTsKIAogLyoqCkBAIC0zNzgs
OCArNDM2LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZWxlbWVudF9mcm9tX3BvaW50KFdlYktp
dERPTURvY3VtZW50KiBzZWxmLCBnbG9uZyB4LCBnbG9uZyB5CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERP
TUNTU1N0eWxlRGVjbGFyYXRpb24KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01DU1NTdHlsZURl
Y2xhcmF0aW9uKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlv
bioKIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2Nzc19zdHlsZV9kZWNsYXJhdGlvbihXZWJL
aXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMzkwLDggKzQ1MCwxMCBAQCB3ZWJraXRf
ZG9tX2RvY3VtZW50X2NyZWF0ZV9jc3Nfc3R5bGVfZGVjbGFyYXRpb24oV2ViS2l0RE9NRG9jdW1l
bnQqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1M
Q29sbGVjdGlvbgogICoKICAqIFNpbmNlOiAyLjEyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9N
SFRNTENvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1MQ29sbGVjdGlv
bioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRzX2J5X2NsYXNzX25hbWVfYXNfaHRt
bF9jb2xsZWN0aW9uKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogY2xhc3NO
YW1lcyk7CiAKIC8qKgpAQCAtMzk5LDggKzQ2MSwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dl
dF9lbGVtZW50c19ieV9jbGFzc19uYW1lX2FzX2h0bWxfY29sbGVjdGlvbihXZWJLaXRET01Eb2N1
bQogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jv
b2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xl
YW4KIHdlYmtpdF9kb21fZG9jdW1lbnRfaGFzX2ZvY3VzKFdlYktpdERPTURvY3VtZW50KiBzZWxm
KTsKIAogLyoqCkBAIC00MDksOCArNDczLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfaGFzX2Zv
Y3VzKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIEBlbGVtZW50SWQ6IEEgI2djaGFyCiAg
KgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVtZW50CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgV2ViS2l0RE9NRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERP
TUVsZW1lbnQqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9lbGVtZW50X2J5X2lkKFdlYktpdERP
TURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogZWxlbWVudElkKTsKIAogLyoqCkBAIC00MjAs
OCArNDg2LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRfYnlfaWQoV2ViS2l0
RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBlbGVtCiAgKiBAZXJyb3I6ICNHRXJyb3IK
ICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUVsZW1lbnQKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0
RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfcXVlcnlfc2VsZWN0b3IoV2ViS2l0RE9N
RG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBzZWxlY3RvcnMsIEdFcnJvcioqIGVycm9yKTsK
IAogLyoqCkBAIC00MzEsOCArNDk5LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfcXVlcnlfc2Vs
ZWN0b3IoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBzZWxlY3RvCiAgKiBA
ZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktp
dERPTU5vZGVMaXN0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZUxpc3QqCitXRUJLSVRf
REVQUkVDQVRFRCBXZWJLaXRET01Ob2RlTGlzdCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfcXVlcnlf
c2VsZWN0b3JfYWxsKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogc2VsZWN0
b3JzLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtNDQwLDggKzUxMCwxMCBAQCB3ZWJraXRf
ZG9tX2RvY3VtZW50X3F1ZXJ5X3NlbGVjdG9yX2FsbChXZWJLaXRET01Eb2N1bWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHNlbAogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgogICog
UmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Eb2N1bWVudFR5cGUKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBXZWJLaXRET01Eb2N1bWVudFR5cGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJL
aXRET01Eb2N1bWVudFR5cGUqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kb2N0eXBlKFdlYktp
dERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC00NDksOCArNTIxLDEwIEBAIHdlYmtpdF9k
b21fZG9jdW1lbnRfZ2V0X2RvY3R5cGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwp
OiBBICNXZWJLaXRET01ET01JbXBsZW1lbnRhdGlvbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERP
TURPTUltcGxlbWVudGF0aW9uKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRE9NSW1wbGVt
ZW50YXRpb24qCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9pbXBsZW1lbnRhdGlvbihXZWJLaXRE
T01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNDU4LDggKzUzMiwxMCBAQCB3ZWJraXRfZG9t
X2RvY3VtZW50X2dldF9pbXBsZW1lbnRhdGlvbihXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
bm9uZSk6IEEgI1dlYktpdERPTUVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVt
ZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZG9j
dW1lbnRfZ2V0X2RvY3VtZW50X2VsZW1lbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTQ2Nyw4ICs1NDMsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZG9jdW1lbnRf
ZWxlbWVudChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
RG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFy
KgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9pbnB1
dF9lbmNvZGluZyhXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNDc2LDggKzU1
NCwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9pbnB1dF9lbmNvZGluZyhXZWJLaXRET01E
b2N1bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF94bWxfZW5jb2RpbmcoV2ViS2l0RE9N
RG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTQ4NSw4ICs1NjUsMTAgQEAgd2Via2l0X2RvbV9k
b2N1bWVudF9nZXRfeG1sX2VuY29kaW5nKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21f
ZG9jdW1lbnRfZ2V0X3htbF92ZXJzaW9uKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC00OTUsOCArNTc3LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3htbF92ZXJzaW9u
KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqIEBlcnJv
cjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2
b2lkCiB3ZWJraXRfZG9tX2RvY3VtZW50X3NldF94bWxfdmVyc2lvbihXZWJLaXRET01Eb2N1bWVu
dCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAt
NTA0LDggKzU4OCwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X3NldF94bWxfdmVyc2lvbihXZWJL
aXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLAogICogQHNlbGY6IEEgI1dl
YktpdERPTURvY3VtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZG9j
dW1lbnRfZ2V0X3htbF9zdGFuZGFsb25lKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC01MTQsOCArNjAwLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3htbF9zdGFuZGFs
b25lKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAq
IEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvY3VtZW50X3NldF94bWxfc3RhbmRhbG9uZShXZWJLaXRE
T01Eb2N1bWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoq
CkBAIC01MjMsOCArNjExLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X3htbF9zdGFuZGFs
b25lKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSwKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9jdW1l
bnRfZ2V0X2RvY3VtZW50X3VyaShXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAt
NTMyLDggKzYyMiwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kb2N1bWVudF91cmkoV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAg
KiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBS
RUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X2RvY3VtZW50X3VyaShXZWJLaXRE
T01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC01NDEsOCAr
NjMzLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X2RvY3VtZW50X3VyaShXZWJLaXRET01E
b2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
RG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTURP
TVdpbmRvdworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTURPTVdpbmRvdyoKK1dFQktJVF9ERVBS
RUNBVEVEIFdlYktpdERPTURPTVdpbmRvdyoKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2RlZmF1
bHRfdmlldyhXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNTUwLDggKzY0NCwx
MCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kZWZhdWx0X3ZpZXcoV2ViS2l0RE9NRG9jdW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgogICogUmV0dXJu
czogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01TdHlsZVNoZWV0TGlzdAorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIFdlYktpdERPTVN0eWxlU2hlZXRMaXN0KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0
RE9NU3R5bGVTaGVldExpc3QqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9zdHlsZV9zaGVldHMo
V2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTU1OSw4ICs2NTUsMTAgQEAgd2Vi
a2l0X2RvbV9kb2N1bWVudF9nZXRfc3R5bGVfc2hlZXRzKFdlYktpdERPTURvY3VtZW50KiBzZWxm
KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6IEEgI2dj
aGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdl
YmtpdF9kb21fZG9jdW1lbnRfZ2V0X3RpdGxlKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC01NjgsOCArNjY2LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3RpdGxlKFdl
YktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAog
ICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvY3VtZW50X3NldF90aXRsZShXZWJLaXRET01Eb2N1
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC01NzksOCArNjc5LDEw
IEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X3RpdGxlKFdlYktpdERPTURvY3VtZW50KiBzZWxm
LCBjb25zdCBnY2hhciogdmFsdWUpOwogICogUmV0dXJuczogQSAjZ2NoYXIKICAqCiAgKiBTaW5j
ZTogMi4xNAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIq
CiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kZXNpZ25fbW9kZShXZWJLaXRET01Eb2N1bWVudCog
c2VsZik7CiAKIC8qKgpAQCAtNTg5LDggKzY5MSwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dl
dF9kZXNpZ25fbW9kZShXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBAdmFsdWU6IEEgI2dj
aGFyCiAgKgogICogU2luY2U6IDIuMTQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvY3VtZW50X3NldF9kZXNpZ25fbW9kZShXZWJLaXRE
T01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC01OTgsOCAr
NzAyLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X2Rlc2lnbl9tb2RlKFdlYktpdERPTURv
Y3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
RG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFy
KgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9yZWZl
cnJlcihXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjA3LDggKzcxMywxMCBA
QCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9yZWZlcnJlcihXZWJLaXRET01Eb2N1bWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
Y2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3
ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kb21haW4oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTYxNiw4ICs3MjQsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZG9tYWlu
KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3VybChXZWJLaXRE
T01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjI2LDggKzczNiwxMCBAQCB3ZWJraXRfZG9t
X2RvY3VtZW50X2dldF91cmwoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQGVycm9yOiAj
R0Vycm9yCiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioK
K1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfY29va2ll
KFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtNjM2
LDggKzc0OCwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jb29raWUoV2ViS2l0RE9NRG9j
dW1lbnQqIHNlbGYsIEdFcnJvcioqIGVycm9yKTsKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqIEBl
cnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2RvY3VtZW50X3NldF9jb29raWUoV2ViS2l0RE9NRG9jdW1lbnQq
IHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTY0
NSw4ICs3NTksMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9zZXRfY29va2llKFdlYktpdERPTURv
Y3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnIKICAqIEBzZWxmOiBBICNXZWJL
aXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0
RE9NSFRNTEVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MRWxlbWVudCoKK1dF
QktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxFbGVtZW50Kgogd2Via2l0X2RvbV9kb2N1bWVu
dF9nZXRfYm9keShXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjU1LDggKzc3
MSwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9ib2R5KFdlYktpdERPTURvY3VtZW50KiBz
ZWxmKTsKICAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKICAqIEBlcnJvcjogI0dF
cnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3
ZWJraXRfZG9tX2RvY3VtZW50X3NldF9ib2R5KFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBXZWJL
aXRET01IVE1MRWxlbWVudCogdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC02NjQs
OCArNzgyLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X2JvZHkoV2ViS2l0RE9NRG9jdW1l
bnQqIHNlbGYsIFdlYktpdERPTUhUTUxFbGVtZW50KiB2YWx1CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERP
TUhUTUxIZWFkRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxIZWFkRWxlbWVu
dCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxIZWFkRWxlbWVudCoKIHdlYmtpdF9k
b21fZG9jdW1lbnRfZ2V0X2hlYWQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTY3Myw4ICs3OTMsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfaGVhZChXZWJLaXRET01E
b2N1bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVDQVRFRCBX
ZWJLaXRET01IVE1MQ29sbGVjdGlvbioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2ltYWdlcyhX
ZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjgyLDggKzgwNCwxMCBAQCB3ZWJr
aXRfZG9tX2RvY3VtZW50X2dldF9pbWFnZXMoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1
bGwpOiBBICNXZWJLaXRET01IVE1MQ29sbGVjdGlvbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERP
TUhUTUxDb2xsZWN0aW9uKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTENvbGxlY3Rp
b24qCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9hcHBsZXRzKFdlYktpdERPTURvY3VtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC02OTEsOCArODE1LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0
X2FwcGxldHMoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TURvY3VtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01I
VE1MQ29sbGVjdGlvbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgor
V0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCiB3ZWJraXRfZG9tX2Rv
Y3VtZW50X2dldF9saW5rcyhXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNzAw
LDggKzgyNiwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9saW5rcyhXZWJLaXRET01Eb2N1
bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBSZXR1
cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJL
aXRET01IVE1MQ29sbGVjdGlvbioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2Zvcm1zKFdlYktp
dERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC03MDksOCArODM3LDEwIEBAIHdlYmtpdF9k
b21fZG9jdW1lbnRfZ2V0X2Zvcm1zKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTog
QSAjV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1M
Q29sbGVjdGlvbioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgog
d2Via2l0X2RvbV9kb2N1bWVudF9nZXRfYW5jaG9ycyhXZWJLaXRET01Eb2N1bWVudCogc2VsZik7
CiAKIC8qKgpAQCAtNzIwLDggKzg1MCwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9hbmNo
b3JzKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxs
KTogQSAjV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24KICAqCiAgKiBTaW5jZTogMi4xNAorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgorV0VCS0lUX0RFUFJFQ0FURUQgV2Vi
S2l0RE9NSFRNTENvbGxlY3Rpb24qCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9lbWJlZHMoV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTczMSw4ICs4NjMsMTAgQEAgd2Via2l0
X2RvbV9kb2N1bWVudF9nZXRfZW1iZWRzKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIFJl
dHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24KICAqCiAg
KiBTaW5jZTogMi4xNAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgor
V0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCiB3ZWJraXRfZG9tX2Rv
Y3VtZW50X2dldF9wbHVnaW5zKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC03
NDIsOCArODc2LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3BsdWdpbnMoV2ViS2l0RE9N
RG9jdW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRE
T01IVE1MQ29sbGVjdGlvbgogICoKICAqIFNpbmNlOiAyLjE0CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2Vi
S2l0RE9NSFRNTENvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1MQ29s
bGVjdGlvbioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3NjcmlwdHMoV2ViS2l0RE9NRG9jdW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTc1MSw4ICs4ODcsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVu
dF9nZXRfc2NyaXB0cyhXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dl
dF9sYXN0X21vZGlmaWVkKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC03NjAs
OCArODk4LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2xhc3RfbW9kaWZpZWQoV2ViS2l0
RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBS
RUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfY2hhcnNldChXZWJLaXRET01E
b2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNzY5LDggKzkwOSwxMCBAQCB3ZWJraXRfZG9tX2Rv
Y3VtZW50X2dldF9jaGFyc2V0KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01Eb2N1bWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvY3VtZW50X3Nl
dF9jaGFyc2V0KFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwog
CiAvKioKQEAgLTc3OCw4ICs5MjAsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9zZXRfY2hhcnNl
dChXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9j
dW1lbnRfZ2V0X3JlYWR5X3N0YXRlKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC03ODcsOCArOTMxLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3JlYWR5X3N0YXRlKFdl
YktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAog
ICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRf
REVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2NoYXJhY3Rlcl9zZXQo
V2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTc5Niw4ICs5NDIsMTAgQEAgd2Vi
a2l0X2RvbV9kb2N1bWVudF9nZXRfY2hhcmFjdGVyX3NldChXZWJLaXRET01Eb2N1bWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
Y2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3
ZWJraXRfZG9tX2RvY3VtZW50X2dldF9wcmVmZXJyZWRfc3R5bGVzaGVldF9zZXQoV2ViS2l0RE9N
RG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwNSw4ICs5NTMsMTAgQEAgd2Via2l0X2RvbV9k
b2N1bWVudF9nZXRfcHJlZmVycmVkX3N0eWxlc2hlZXRfc2V0KFdlYktpdERPTURvY3VtZW50KiBz
ZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6IEEg
I2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioK
IHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3NlbGVjdGVkX3N0eWxlc2hlZXRfc2V0KFdlYktpdERP
TURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04MTQsOCArOTY0LDEwIEBAIHdlYmtpdF9kb21f
ZG9jdW1lbnRfZ2V0X3NlbGVjdGVkX3N0eWxlc2hlZXRfc2V0KFdlYktpdERPTURvY3VtZW50KiBz
ZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAogICogQHZhbHVlOiBBICNnY2hh
cgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJr
aXRfZG9tX2RvY3VtZW50X3NldF9zZWxlY3RlZF9zdHlsZXNoZWV0X3NldChXZWJLaXRET01Eb2N1
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC04MjMsOCArOTc1LDEw
IEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X3NlbGVjdGVkX3N0eWxlc2hlZXRfc2V0KFdlYktp
dERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1l
bnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUVsZW1lbnQK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2Vi
S2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2FjdGl2ZV9lbGVtZW50KFdl
YktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04MzQsOCArOTg4LDEwIEBAIHdlYmtp
dF9kb21fZG9jdW1lbnRfZ2V0X2FjdGl2ZV9lbGVtZW50KFdlYktpdERPTURvY3VtZW50KiBzZWxm
KTsKICAqIFJldHVybnM6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTQKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVu
dF9nZXRfY29tcGF0X21vZGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTg0
Nyw4ICsxMDAzLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2NvbXBhdF9tb2RlKFdlYktp
dERPTURvY3VtZW50KiBzZWxmKTsKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2Vi
S2l0RE9NUmFuZ2UKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERP
TVJhbmdlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NUmFuZ2UqCiB3ZWJraXRfZG9tX2Rv
Y3VtZW50X2NhcmV0X3JhbmdlX2Zyb21fcG9pbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGds
b25nIHgsIGdsb25nIHkpOwogCiAvKioKQEAgLTg1Niw4ICsxMDE0LDEwIEBAIHdlYmtpdF9kb21f
ZG9jdW1lbnRfY2FyZXRfcmFuZ2VfZnJvbV9wb2ludChXZWJLaXRET01Eb2N1bWVudCogc2VsZiwg
Z2xvbmcgeCwgZ2xvCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBTaW5j
ZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21fZG9jdW1lbnRfd2Via2l0X2NhbmNlbF9mdWxsc2NyZWVuKFdlYktpdERPTURvY3Vt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC04NjUsOCArMTAyNSwxMCBAQCB3ZWJraXRfZG9tX2RvY3Vt
ZW50X3dlYmtpdF9jYW5jZWxfZnVsbHNjcmVlbihXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9jdW1l
bnRfd2Via2l0X2V4aXRfZnVsbHNjcmVlbihXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8q
KgpAQCAtODc0LDggKzEwMzYsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF93ZWJraXRfZXhpdF9m
dWxsc2NyZWVuKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01Eb2N1bWVudAogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb2N1bWVudF9leGl0X3BvaW50ZXJfbG9j
ayhXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtODg1LDggKzEwNDksMTAgQEAg
d2Via2l0X2RvbV9kb2N1bWVudF9leGl0X3BvaW50ZXJfbG9jayhXZWJLaXRET01Eb2N1bWVudCog
c2VsZik7CiAgKiBSZXR1cm5zOiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9j
dW1lbnRfZ2V0X2NvbnRlbnRfdHlwZShXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpA
QCAtODk2LDggKzEwNjIsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfY29udGVudF90eXBl
KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2djaGFyCiAgKgogICog
U2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdj
aGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZGlyKFdlYktpdERPTURvY3VtZW50KiBzZWxm
KTsKIAogLyoqCkBAIC05MDYsOCArMTA3NCwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9k
aXIoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNnY2hhcgogICoKICAq
IFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9p
ZAogd2Via2l0X2RvbV9kb2N1bWVudF9zZXRfZGlyKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBj
b25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTkxNyw4ICsxMDg3LDEwIEBAIHdlYmtpdF9k
b21fZG9jdW1lbnRfc2V0X2RpcihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IHZhbHVlKTsKICAqIFJldHVybnM6IEEgI2dib29sZWFuCiAgKgogICogU2luY2U6IDIuMTYKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtp
dF9kb21fZG9jdW1lbnRfZ2V0X3dlYmtpdF9pc19mdWxsc2NyZWVuKFdlYktpdERPTURvY3VtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC05MjgsOCArMTEwMCwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50
X2dldF93ZWJraXRfaXNfZnVsbHNjcmVlbihXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBS
ZXR1cm5zOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2RvY3VtZW50
X2dldF93ZWJraXRfZnVsbHNjcmVlbl9rZXlib2FyZF9pbnB1dF9hbGxvd2VkKFdlYktpdERPTURv
Y3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC05MzksOCArMTExMywxMCBAQCB3ZWJraXRfZG9tX2Rv
Y3VtZW50X2dldF93ZWJraXRfZnVsbHNjcmVlbl9rZXlib2FyZF9pbnB1dF9hbGxvd2VkKFdlYktp
dERPTURvY3VtZQogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVt
ZW50CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50
KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZG9jdW1l
bnRfZ2V0X3dlYmtpdF9jdXJyZW50X2Z1bGxzY3JlZW5fZWxlbWVudChXZWJLaXRET01Eb2N1bWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtOTUwLDggKzExMjYsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVu
dF9nZXRfd2Via2l0X2N1cnJlbnRfZnVsbHNjcmVlbl9lbGVtZW50KFdlYktpdERPTURvY3VtZW50
KiBzZWwKICAqIFJldHVybnM6IEEgI2dib29sZWFuCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9k
b21fZG9jdW1lbnRfZ2V0X3dlYmtpdF9mdWxsc2NyZWVuX2VuYWJsZWQoV2ViS2l0RE9NRG9jdW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTk2MSw4ICsxMTM5LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1l
bnRfZ2V0X3dlYmtpdF9mdWxsc2NyZWVuX2VuYWJsZWQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYp
OwogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVtZW50CiAgKgog
ICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50KgorV0VCS0lU
X0RFUFJFQ0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3dl
YmtpdF9mdWxsc2NyZWVuX2VsZW1lbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTk3Miw4ICsxMTUyLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3dlYmtpdF9mdWxs
c2NyZWVuX2VsZW1lbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogKHRy
YW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVtZW50CiAgKgogICogU2luY2U6IDIuMTYKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0
RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3BvaW50ZXJfbG9ja19lbGVtZW50
KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC05ODMsOCArMTE2NSwxMCBAQCB3
ZWJraXRfZG9tX2RvY3VtZW50X2dldF9wb2ludGVyX2xvY2tfZWxlbWVudChXZWJLaXRET01Eb2N1
bWVudCogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE2Cisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9k
b21fZG9jdW1lbnRfZ2V0X3Zpc2liaWxpdHlfc3RhdGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTk5NCw4ICsxMTc4LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3Zp
c2liaWxpdHlfc3RhdGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogQSAj
Z2Jvb2xlYW4KICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitX
RUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfaGlkZGVu
KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMDA1LDggKzExOTEsMTAgQEAg
d2Via2l0X2RvbV9kb2N1bWVudF9nZXRfaGlkZGVuKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsK
ICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1l
bnQKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxTY3Jp
cHRFbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQq
CiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jdXJyZW50X3NjcmlwdChXZWJLaXRET01Eb2N1bWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtMTAxNiw4ICsxMjA0LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1l
bnRfZ2V0X2N1cnJlbnRfc2NyaXB0KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIFJldHVy
bnM6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioK
K1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfb3JpZ2lu
KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMDI3LDggKzEyMTcsMTAgQEAg
d2Via2l0X2RvbV9kb2N1bWVudF9nZXRfb3JpZ2luKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsK
ICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAq
IFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRWxlbWVudCoKK1dFQktJVF9E
RVBSRUNBVEVEIFdlYktpdERPTUVsZW1lbnQqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9zY3Jv
bGxpbmdfZWxlbWVudChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTAzOCw4
ICsxMjMwLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3Njcm9sbGluZ19lbGVtZW50KFdl
YktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAj
V2ViS2l0RE9NSFRNTENvbGxlY3Rpb24KICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9N
SFRNTENvbGxlY3Rpb24qCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jaGlsZHJlbihXZWJLaXRE
T01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTA0OSw4ICsxMjQzLDEwIEBAIHdlYmtpdF9k
b21fZG9jdW1lbnRfZ2V0X2NoaWxkcmVuKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIFJl
dHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFNpbmNl
OiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRWxlbWVudCoKK1dFQktJVF9ERVBSRUNB
VEVEIFdlYktpdERPTUVsZW1lbnQqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9maXJzdF9lbGVt
ZW50X2NoaWxkKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMDYwLDggKzEy
NTYsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZmlyc3RfZWxlbWVudF9jaGlsZChXZWJL
aXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dl
YktpdERPTUVsZW1lbnQKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktp
dERPTUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0
X2RvbV9kb2N1bWVudF9nZXRfbGFzdF9lbGVtZW50X2NoaWxkKFdlYktpdERPTURvY3VtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC0xMDcxLDggKzEyNjksMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9n
ZXRfbGFzdF9lbGVtZW50X2NoaWxkKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIFJldHVy
bnM6IEEgI2d1bG9uZwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ3Vsb25n
CitXRUJLSVRfREVQUkVDQVRFRCBndWxvbmcKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2NoaWxk
X2VsZW1lbnRfY291bnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTURvY3VtZW50RnJhZ21lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50RnJhZ21l
bnQuY3BwCmluZGV4IDQxMTUzMzRlNWNkLi5lOGZlYzY5YTA4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURv
Y3VtZW50RnJhZ21lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudEZyYWdtZW50LmNwcApAQCAtMzks
NiArMzksOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudCoga2l0KFdlYkNvcmU6OkRvY3VtZW50
RnJhZ21lbnQqIG9iaikKQEAgLTI2MCwzICsyNjIsNCBAQCBndWxvbmcgd2Via2l0X2RvbV9kb2N1
bWVudF9mcmFnbWVudF9nZXRfY2hpbGRfZWxlbWVudF9jb3VudChXZWJLaXRET01Eb2N1bWVudEZy
YQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9O
UzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudEZyYWdtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRGcmFn
bWVudC5oCmluZGV4IGYxYWI3YjIwNDk4Li4wOTc2NjkyZjM0ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURv
Y3VtZW50RnJhZ21lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudC5oCkBAIC00NSw3ICs0
NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudENsYXNzIHsKICAgICBXZWJL
aXRET01Ob2RlQ2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VC
S0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fZG9jdW1lbnRfZnJhZ21lbnRfZ2V0X3R5
cGUodm9pZCk7CiAKIC8qKgpAQCAtNTYsOCArNTYsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9m
cmFnbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAj
V2ViS2l0RE9NRWxlbWVudAogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgV2Vi
S2l0RE9NRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUVsZW1lbnQqCiB3ZWJr
aXRfZG9tX2RvY3VtZW50X2ZyYWdtZW50X2dldF9lbGVtZW50X2J5X2lkKFdlYktpdERPTURvY3Vt
ZW50RnJhZ21lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBlbGVtZW50SWQpOwogCiAvKioKQEAgLTY5
LDggKzcxLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZnJhZ21lbnRfZ2V0X2VsZW1lbnRfYnlf
aWQoV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudCogc2VsZiwKICAqIFJldHVybnM6ICh0cmFuc2Zl
ciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdF
QktJVF9BUEkgV2ViS2l0RE9NRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUVs
ZW1lbnQqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2ZyYWdtZW50X3F1ZXJ5X3NlbGVjdG9yKFdlYktp
dERPTURvY3VtZW50RnJhZ21lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBzZWxlY3RvcnMsIEdFcnJv
cioqIGVycm9yKTsKIAogLyoqCkBAIC04Miw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50
X2ZyYWdtZW50X3F1ZXJ5X3NlbGVjdG9yKFdlYktpdERPTURvY3VtZW50RnJhZ21lbnQqIHNlbGYs
IGNvbgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01Ob2RlTGlzdAog
ICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZUxpc3QqCitX
RUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlTGlzdCoKIHdlYmtpdF9kb21fZG9jdW1lbnRf
ZnJhZ21lbnRfcXVlcnlfc2VsZWN0b3JfYWxsKFdlYktpdERPTURvY3VtZW50RnJhZ21lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiBzZWxlY3RvcnMsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC05
Myw4ICs5OSwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2ZyYWdtZW50X3F1ZXJ5X3NlbGVjdG9y
X2FsbChXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50KiBzZWxmLAogICogUmV0dXJuczogKHRyYW5z
ZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1MQ29sbGVjdGlvbgogICoKICAqIFNpbmNlOiAyLjE2
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAgKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVD
QVRFRCBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZnJhZ21l
bnRfZ2V0X2NoaWxkcmVuKFdlYktpdERPTURvY3VtZW50RnJhZ21lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTEwNCw4ICsxMTIsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9mcmFnbWVudF9nZXRfY2hp
bGRyZW4oV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudCogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJh
bnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBTaW5jZTogMi4xNgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICov
Ci1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRE
T01FbGVtZW50Kgogd2Via2l0X2RvbV9kb2N1bWVudF9mcmFnbWVudF9nZXRfZmlyc3RfZWxlbWVu
dF9jaGlsZChXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMTUs
OCArMTI1LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZnJhZ21lbnRfZ2V0X2ZpcnN0X2VsZW1l
bnRfY2hpbGQoV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudCoKICAqIFJldHVybnM6ICh0cmFuc2Zl
ciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdF
QktJVF9BUEkgV2ViS2l0RE9NRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUVs
ZW1lbnQqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2ZyYWdtZW50X2dldF9sYXN0X2VsZW1lbnRfY2hp
bGQoV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTI2LDggKzEz
OCwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2ZyYWdtZW50X2dldF9sYXN0X2VsZW1lbnRfY2hp
bGQoV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudCogcwogICogUmV0dXJuczogQSAjZ3Vsb25nCiAg
KgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNB
VEVEIGd1bG9uZwogd2Via2l0X2RvbV9kb2N1bWVudF9mcmFnbWVudF9nZXRfY2hpbGRfZWxlbWVu
dF9jb3VudChXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50KiBzZWxmKTsKIAogR19FTkRfREVDTFMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRHdGsuY3BwCnNpbWls
YXJpdHkgaW5kZXggOTglCnJlbmFtZSBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudC5jcHAKcmVuYW1lIHRvIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01Eb2N1bWVudEd0ay5jcHAKaW5kZXggNGI5MjllNjFiNTIuLjk1MDU0MWYwOWIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudEd0ay5jcHAKQEAgLTIxLDcg
KzIxLDYgQEAKICNpbmNsdWRlICJXZWJLaXRET01Eb2N1bWVudC5oIgogCiAjaW5jbHVkZSAiQ29u
dmVydFRvVVRGOFN0cmluZy5oIgotI2luY2x1ZGUgIkRPTU9iamVjdENhY2hlLmgiCiAjaW5jbHVk
ZSAiR09iamVjdEV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJXZWJLaXRET01BdHRyUHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYktpdERPTUNEQVRBU2VjdGlvblByaXZhdGUuaCIKQEAgLTYwLDI1
ICs1OSw3IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KIAotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVdlYktpdERPTURvY3VtZW50KiBraXQoV2ViQ29y
ZTo6RG9jdW1lbnQqIG9iaikKLXsKLSAgICByZXR1cm4gV0VCS0lUX0RPTV9ET0NVTUVOVChraXQo
c3RhdGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KG9iaikpKTsKLX0KLQotV2ViQ29yZTo6RG9jdW1l
bnQqIGNvcmUoV2ViS2l0RE9NRG9jdW1lbnQqIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIHJlcXVl
c3QgPyBzdGF0aWNfY2FzdDxXZWJDb3JlOjpEb2N1bWVudCo+KFdFQktJVF9ET01fT0JKRUNUKHJl
cXVlc3QpLT5jb3JlT2JqZWN0KSA6IDA7Ci19Ci0KLVdlYktpdERPTURvY3VtZW50KiB3cmFwRG9j
dW1lbnQoV2ViQ29yZTo6RG9jdW1lbnQqIGNvcmVPYmplY3QpCi17Ci0gICAgQVNTRVJUKGNvcmVP
YmplY3QpOwotICAgIHJldHVybiBXRUJLSVRfRE9NX0RPQ1VNRU5UKGdfb2JqZWN0X25ldyhXRUJL
SVRfRE9NX1RZUEVfRE9DVU1FTlQsICJjb3JlLW9iamVjdCIsIGNvcmVPYmplY3QsIG51bGxwdHIp
KTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJF
Q0FUSU9OUzsKIAogc3RhdGljIGdib29sZWFuIHdlYmtpdF9kb21fZG9jdW1lbnRfZGlzcGF0Y2hf
ZXZlbnQoV2ViS2l0RE9NRXZlbnRUYXJnZXQqIHRhcmdldCwgV2ViS2l0RE9NRXZlbnQqIGV2ZW50
LCBHRXJyb3IqKiBlcnJvcikKIHsKQEAgLTEwOCwxNSArODksMTMgQEAgc3RhdGljIGdib29sZWFu
IHdlYmtpdF9kb21fZG9jdW1lbnRfcmVtb3ZlX2V2ZW50X2xpc3RlbmVyKFdlYktpdERPTUV2ZW50
VGFyZ2V0KgogICAgIHJldHVybiBXZWJLaXQ6OkdPYmplY3RFdmVudExpc3RlbmVyOjpyZW1vdmVF
dmVudExpc3RlbmVyKEdfT0JKRUNUKHRhcmdldCksIGNvcmVUYXJnZXQsIGV2ZW50TmFtZSwgaGFu
ZGxlciwgdXNlQ2FwdHVyZSk7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF9kb21fZG9jdW1lbnRf
ZG9tX2V2ZW50X3RhcmdldF9pbml0KFdlYktpdERPTUV2ZW50VGFyZ2V0SWZhY2UqIGlmYWNlKQor
dm9pZCB3ZWJraXRET01Eb2N1bWVudERPTUV2ZW50VGFyZ2V0SW5pdChXZWJLaXRET01FdmVudFRh
cmdldElmYWNlKiBpZmFjZSkKIHsKICAgICBpZmFjZS0+ZGlzcGF0Y2hfZXZlbnQgPSB3ZWJraXRf
ZG9tX2RvY3VtZW50X2Rpc3BhdGNoX2V2ZW50OwogICAgIGlmYWNlLT5hZGRfZXZlbnRfbGlzdGVu
ZXIgPSB3ZWJraXRfZG9tX2RvY3VtZW50X2FkZF9ldmVudF9saXN0ZW5lcjsKICAgICBpZmFjZS0+
cmVtb3ZlX2V2ZW50X2xpc3RlbmVyID0gd2Via2l0X2RvbV9kb2N1bWVudF9yZW1vdmVfZXZlbnRf
bGlzdGVuZXI7CiB9CiAKLUdfREVGSU5FX1RZUEVfV0lUSF9DT0RFKFdlYktpdERPTURvY3VtZW50
LCB3ZWJraXRfZG9tX2RvY3VtZW50LCBXRUJLSVRfRE9NX1RZUEVfTk9ERSwgR19JTVBMRU1FTlRf
SU5URVJGQUNFKFdFQktJVF9ET01fVFlQRV9FVkVOVF9UQVJHRVQsIHdlYmtpdF9kb21fZG9jdW1l
bnRfZG9tX2V2ZW50X3RhcmdldF9pbml0KSkKLQogZW51bSB7CiAgICAgRE9NX0RPQ1VNRU5UX1BS
T1BfMCwKICAgICBET01fRE9DVU1FTlRfUFJPUF9ET0NUWVBFLApAQCAtMzc0LDkgKzM1Myw4IEBA
IHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9i
amVjdCwgZ3VpbnQgcHJvcGVydHlJZCwKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF9k
b21fZG9jdW1lbnRfY2xhc3NfaW5pdChXZWJLaXRET01Eb2N1bWVudENsYXNzKiByZXF1ZXN0Q2xh
c3MpCit2b2lkIHdlYmtpdERPTURvY3VtZW50SW5zdGFsbFByb3BlcnRpZXMoR09iamVjdENsYXNz
KiBnb2JqZWN0Q2xhc3MpCiB7Ci0gICAgR09iamVjdENsYXNzKiBnb2JqZWN0Q2xhc3MgPSBHX09C
SkVDVF9DTEFTUyhyZXF1ZXN0Q2xhc3MpOwogICAgIGdvYmplY3RDbGFzcy0+c2V0X3Byb3BlcnR5
ID0gd2Via2l0X2RvbV9kb2N1bWVudF9zZXRfcHJvcGVydHk7CiAgICAgZ29iamVjdENsYXNzLT5n
ZXRfcHJvcGVydHkgPSB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9wcm9wZXJ0eTsKIApAQCAtODky
LDExICs4NzAsNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX2RvY3VtZW50X2NsYXNzX2luaXQo
V2ViS2l0RE9NRG9jdW1lbnRDbGFzcyogcmVxdWVzdENsYXNzKQogCiB9CiAKLXN0YXRpYyB2b2lk
IHdlYmtpdF9kb21fZG9jdW1lbnRfaW5pdChXZWJLaXRET01Eb2N1bWVudCogcmVxdWVzdCkKLXsK
LSAgICBVTlVTRURfUEFSQU0ocmVxdWVzdCk7Ci19Ci0KIFdlYktpdERPTUVsZW1lbnQqIHdlYmtp
dF9kb21fZG9jdW1lbnRfY3JlYXRlX2VsZW1lbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyKiB0YWdOYW1lLCBHRXJyb3IqKiBlcnJvcikKIHsKICAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CkBAIC0yMDA4LDMgKzE5ODEsNCBAQCBndWxvbmcgd2Vi
a2l0X2RvbV9kb2N1bWVudF9nZXRfY2hpbGRfZWxlbWVudF9jb3VudChXZWJLaXRET01Eb2N1bWVu
dCogc2VsZikKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBS
RUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRUeXBlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVu
dFR5cGUuY3BwCmluZGV4IGFjODdmNjQxNzA2Li44ODg3M2IyODJmMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TURvY3VtZW50VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50VHlwZS5jcHAKQEAgLTM2LDYgKzM2
LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgog
CitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIFdlYktpdERPTURvY3VtZW50VHlwZSoga2l0KFdlYkNvcmU6OkRvY3VtZW50VHlwZSogb2Jq
KQpAQCAtMjQ5LDMgKzI1MSw0IEBAIGdjaGFyKiB3ZWJraXRfZG9tX2RvY3VtZW50X3R5cGVfZ2V0
X3N5c3RlbV9pZChXZWJLaXRET01Eb2N1bWVudFR5cGUqIHNlbGYpCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TURvY3VtZW50VHlwZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50VHlwZS5oCmluZGV4IDhiODk5YTExNmRhLi4z
OWI1MTIyMjVmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50VHlwZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1
bWVudFR5cGUuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTURvY3VtZW50VHlw
ZUNsYXNzIHsKICAgICBXZWJLaXRET01Ob2RlQ2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VC
S0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fZG9jdW1l
bnRfdHlwZV9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRf
ZG9tX2RvY3VtZW50X3R5cGVfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
RG9jdW1lbnRUeXBlCiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Y2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF90eXBl
X2dldF9uYW1lKFdlYktpdERPTURvY3VtZW50VHlwZSogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCAr
NjQsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF90eXBlX2dldF9uYW1lKFdlYktpdERPTURvY3Vt
ZW50VHlwZSogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnRUeXBlCiAgKgog
ICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01OYW1lZE5vZGVNYXAKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBXZWJLaXRET01OYW1lZE5vZGVNYXAqCitXRUJLSVRfREVQUkVDQVRFRCBX
ZWJLaXRET01OYW1lZE5vZGVNYXAqCiB3ZWJraXRfZG9tX2RvY3VtZW50X3R5cGVfZ2V0X2VudGl0
aWVzKFdlYktpdERPTURvY3VtZW50VHlwZSogc2VsZik7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAg
QEAgd2Via2l0X2RvbV9kb2N1bWVudF90eXBlX2dldF9lbnRpdGllcyhXZWJLaXRET01Eb2N1bWVu
dFR5cGUqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50VHlwZQogICoKICAq
IFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NTmFtZWROb2RlTWFwCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgV2ViS2l0RE9NTmFtZWROb2RlTWFwKgorV0VCS0lUX0RFUFJFQ0FURUQgV2Vi
S2l0RE9NTmFtZWROb2RlTWFwKgogd2Via2l0X2RvbV9kb2N1bWVudF90eXBlX2dldF9ub3RhdGlv
bnMoV2ViS2l0RE9NRG9jdW1lbnRUeXBlKiBzZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4NiwxMCBA
QCB3ZWJraXRfZG9tX2RvY3VtZW50X3R5cGVfZ2V0X25vdGF0aW9ucyhXZWJLaXRET01Eb2N1bWVu
dFR5cGUqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50VHlwZQogICoKICAq
IFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVD
QVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9jdW1lbnRfdHlwZV9nZXRfaW50ZXJuYWxfc3Vic2V0
KFdlYktpdERPTURvY3VtZW50VHlwZSogc2VsZik7CiAKIC8qKgpAQCAtODksOCArOTcsMTAgQEAg
d2Via2l0X2RvbV9kb2N1bWVudF90eXBlX2dldF9pbnRlcm5hbF9zdWJzZXQoV2ViS2l0RE9NRG9j
dW1lbnRUeXBlKiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudFR5cGUKICAq
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2RvY3VtZW50X3R5cGVfZ2V0X3B1YmxpY19pZChX
ZWJLaXRET01Eb2N1bWVudFR5cGUqIHNlbGYpOwogCiAvKioKQEAgLTk4LDggKzEwOCwxMCBAQCB3
ZWJraXRfZG9tX2RvY3VtZW50X3R5cGVfZ2V0X3B1YmxpY19pZChXZWJLaXRET01Eb2N1bWVudFR5
cGUqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50VHlwZQogICoKICAqIFJl
dHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRF
RCBnY2hhcioKIHdlYmtpdF9kb21fZG9jdW1lbnRfdHlwZV9nZXRfc3lzdGVtX2lkKFdlYktpdERP
TURvY3VtZW50VHlwZSogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxl
bWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUVsZW1lbnQuaAppbmRleCBkYmE3NTFlMGNjMy4uMDIyNjNjNDg5YzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1lbnQuaApAQCAtNDYsMjEgKzQ2
LDQyIEBAIHN0cnVjdCBfV2ViS2l0RE9NRWxlbWVudENsYXNzIHsKIH07CiAKIFdFQktJVF9BUEkg
R1R5cGUKLXdlYmtpdF9kb21fZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKK3dlYmtpdF9kb21fZWxl
bWVudF9nZXRfdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQpOworCitXRUJL
SVRfQVBJIGdib29sZWFuCit3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X2lz
X3VzZXJfZWRpdGVkICAgIChXZWJLaXRET01FbGVtZW50ICplbGVtZW50KTsKKworV0VCS0lUX0FQ
SSBnYm9vbGVhbgord2Via2l0X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfYXV0
b19maWxsZWQgICAoV2ViS2l0RE9NRWxlbWVudCAqZWxlbWVudCk7CisKK1dFQktJVF9BUEkgdm9p
ZAord2Via2l0X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfYXV0b19maWxsZWQg
ICAoV2ViS2l0RE9NRWxlbWVudCAqZWxlbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICAgIGF1dG9fZmls
bGVkKTsKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRfZWxl
bWVudF9zZXRfZWRpdGluZ192YWx1ZSAoV2ViS2l0RE9NRWxlbWVudCAqZWxlbWVudCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGNoYXIgICAgICAgKnZhbHVlKTsKKworI2lmbmRlZiBXRUJLSVRfRElTQUJMRV9ERVBSRUNBVEVE
CiAKIC8qKgogICogV0VCS0lUX0RPTV9FTEVNRU5UX0FMTE9XX0tFWUJPQVJEX0lOUFVUOgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICov
CiAjZGVmaW5lIFdFQktJVF9ET01fRUxFTUVOVF9BTExPV19LRVlCT0FSRF9JTlBVVCAxCiAKKyNl
bmRpZgorCiAvKioKICAqIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfYXR0cmlidXRlOgogICogQHNl
bGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqIEBuYW1lOiBBICNnY2hhcgogICoKICAqIFJldHVy
bnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBn
Y2hhcioKIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfYXR0cmlidXRlKFdlYktpdERPTUVsZW1lbnQq
IHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lKTsKIAogLyoqCkBAIC03MCw4ICs5MSwxMCBAQCB3ZWJr
aXRfZG9tX2VsZW1lbnRfZ2V0X2F0dHJpYnV0ZShXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogbmFtZSk7CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKiBAZXJyb3I6ICNHRXJyb3IK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9lbGVtZW50X3NldF9hdHRyaWJ1dGUoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3Qg
Z2NoYXIqIG5hbWUsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioK
QEAgLTc5LDggKzEwMiwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X2F0dHJpYnV0ZShXZWJL
aXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZSwgY29ucwogICogQHNlbGY6IEEg
I1dlYktpdERPTUVsZW1lbnQKICAqIEBuYW1lOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRfcmVtb3Zl
X2F0dHJpYnV0ZShXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZSk7CiAK
IC8qKgpAQCAtODksOCArMTE0LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9yZW1vdmVfYXR0cmli
dXRlKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lKTsKICAqIEBuYW1l
OiBBICNnY2hhcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9N
QXR0cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUF0dHIqCitXRUJLSVRfREVQUkVDQVRFRCBX
ZWJLaXRET01BdHRyKgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9hdHRyaWJ1dGVfbm9kZShXZWJL
aXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZSk7CiAKIC8qKgpAQCAtMTAwLDgg
KzEyNywxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2F0dHJpYnV0ZV9ub2RlKFdlYktpdERP
TUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lKQogICogQGVycm9yOiAjR0Vycm9yCiAg
KgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01BdHRyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgV2ViS2l0RE9NQXR0cioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUF0dHIq
CiB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X2F0dHJpYnV0ZV9ub2RlKFdlYktpdERPTUVsZW1lbnQq
IHNlbGYsIFdlYktpdERPTUF0dHIqIG5ld0F0dHIsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBA
IC0xMTEsOCArMTQwLDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9zZXRfYXR0cmlidXRlX25vZGUo
V2ViS2l0RE9NRWxlbWVudCogc2VsZiwgV2ViS2l0RE9NQXR0ciogbmV3CiAgKiBAZXJyb3I6ICNH
RXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUF0dHIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01BdHRyKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0
RE9NQXR0cioKIHdlYmtpdF9kb21fZWxlbWVudF9yZW1vdmVfYXR0cmlidXRlX25vZGUoV2ViS2l0
RE9NRWxlbWVudCogc2VsZiwgV2ViS2l0RE9NQXR0ciogb2xkQXR0ciwgR0Vycm9yKiogZXJyb3Ip
OwogCiAvKioKQEAgLTEyMyw4ICsxNTQsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X3JlbW92ZV9h
dHRyaWJ1dGVfbm9kZShXZWJLaXRET01FbGVtZW50KiBzZWxmLCBXZWJLaXRET01BdHRyKgogICog
UmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1MQ29sbGVjdGlvbgogICoK
ICAqIFNpbmNlOiAyLjEyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24q
CitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKIHdlYmtpdF9kb21f
ZWxlbWVudF9nZXRfZWxlbWVudHNfYnlfdGFnX25hbWVfYXNfaHRtbF9jb2xsZWN0aW9uKFdlYktp
dERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lKTsKIAogLyoqCkBAIC0xMzIsOCAr
MTY1LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfZWxlbWVudHNfYnlfdGFnX25hbWVfYXNf
aHRtbF9jb2xsZWN0aW9uKFdlYktpdERPTUVsZW1lbnQqCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jv
b2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2VsZW1lbnRfaGFz
X2F0dHJpYnV0ZXMoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTQzLDggKzE3
OCwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfaGFzX2F0dHJpYnV0ZXMoV2ViS2l0RE9NRWxlbWVu
dCogc2VsZik7CiAgKiBAbG9jYWxOYW1lOiBBICNnY2hhcgogICoKICAqIFJldHVybnM6IEEgI2dj
aGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdl
YmtpdF9kb21fZWxlbWVudF9nZXRfYXR0cmlidXRlX25zKFdlYktpdERPTUVsZW1lbnQqIHNlbGYs
IGNvbnN0IGdjaGFyKiBuYW1lc3BhY2VVUkksIGNvbnN0IGdjaGFyKiBsb2NhbE5hbWUpOwogCiAv
KioKQEAgLTE1NSw4ICsxOTIsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9hdHRyaWJ1dGVf
bnMoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWVzcGEKICAqIEB2YWx1
ZTogQSAjZ2NoYXIKICAqIEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X2F0dHJpYnV0
ZV9ucyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZXNwYWNlVVJJLCBj
b25zdCBnY2hhciogcXVhbGlmaWVkTmFtZSwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBl
cnJvcik7CiAKIC8qKgpAQCAtMTY1LDggKzIwNCwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0
X2F0dHJpYnV0ZV9ucyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZXNw
YQogICogQG5hbWVzcGFjZVVSSTogQSAjZ2NoYXIKICAqIEBsb2NhbE5hbWU6IEEgI2djaGFyCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21fZWxlbWVudF9yZW1vdmVfYXR0cmlidXRlX25zKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyKiBuYW1lc3BhY2VVUkksIGNvbnN0IGdjaGFyKiBsb2NhbE5hbWUpOwogCiAvKioK
QEAgLTE3OCw4ICsyMTksMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X3JlbW92ZV9hdHRyaWJ1dGVf
bnMoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWUKICAqIFJldHVybnM6
ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24KICAqCiAgKiBTaW5j
ZTogMi4xMgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgorV0VCS0lU
X0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCiB3ZWJraXRfZG9tX2VsZW1lbnRf
Z2V0X2VsZW1lbnRzX2J5X3RhZ19uYW1lX25zX2FzX2h0bWxfY29sbGVjdGlvbihXZWJLaXRET01F
bGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZXNwYWNlVVJJLCBjb25zdCBnY2hhciogbG9j
YWxOYW1lKTsKIAogLyoqCkBAIC0xODksOCArMjMyLDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9n
ZXRfZWxlbWVudHNfYnlfdGFnX25hbWVfbnNfYXNfaHRtbF9jb2xsZWN0aW9uKFdlYktpdERPTUVs
ZW1lCiAgKiBAbG9jYWxOYW1lOiBBICNnY2hhcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBu
b25lKTogQSAjV2ViS2l0RE9NQXR0cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUF0dHIqCitX
RUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01BdHRyKgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9h
dHRyaWJ1dGVfbm9kZV9ucyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFt
ZXNwYWNlVVJJLCBjb25zdCBnY2hhciogbG9jYWxOYW1lKTsKIAogLyoqCkBAIC0yMDAsOCArMjQ1
LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfYXR0cmlidXRlX25vZGVfbnMoV2ViS2l0RE9N
RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAg
KiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUF0dHIKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBXZWJLaXRET01BdHRyKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NQXR0cioKIHdl
YmtpdF9kb21fZWxlbWVudF9zZXRfYXR0cmlidXRlX25vZGVfbnMoV2ViS2l0RE9NRWxlbWVudCog
c2VsZiwgV2ViS2l0RE9NQXR0ciogbmV3QXR0ciwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAg
LTIxMCw4ICsyNTcsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X3NldF9hdHRyaWJ1dGVfbm9kZV9u
cyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBXZWJLaXRET01BdHRyKgogICogQG5hbWU6IEEgI2dj
aGFyCiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVh
bgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZWxlbWVudF9oYXNfYXR0
cmlidXRlKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lKTsKIAogLyoq
CkBAIC0yMjEsMjQgKzI3MCwzMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfaGFzX2F0dHJpYnV0ZShX
ZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZSk7CiAgKiBAbG9jYWxOYW1l
OiBBICNnY2hhcgogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2VsZW1lbnRf
aGFzX2F0dHJpYnV0ZV9ucyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFt
ZXNwYWNlVVJJLCBjb25zdCBnY2hhciogbG9jYWxOYW1lKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9t
X2VsZW1lbnRfZm9jdXM6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1l
bnRfZm9jdXMoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAKIC8qKgogICogd2Via2l0X2RvbV9l
bGVtZW50X2JsdXI6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRf
Ymx1cihXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNDYsOCArMzAxLDEwIEBA
IHdlYmtpdF9kb21fZWxlbWVudF9ibHVyKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqIEBhbGlnbldpdGhUb3A6IEEgI2dib29sZWFuCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21fZWxlbWVudF9zY3JvbGxfaW50b192aWV3KFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGdib29s
ZWFuIGFsaWduV2l0aFRvcCk7CiAKIC8qKgpAQCAtMjU1LDggKzMxMiwxMCBAQCB3ZWJraXRfZG9t
X2VsZW1lbnRfc2Nyb2xsX2ludG9fdmlldyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBnYm9vbGVh
biBhbGlnbldpdGhUbwogICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqIEBjZW50ZXJJ
Zk5lZWRlZDogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9lbGVtZW50X3Njcm9sbF9pbnRvX3ZpZXdfaWZfbmVl
ZGVkKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGdib29sZWFuIGNlbnRlcklmTmVlZGVkKTsKIAog
LyoqCkBAIC0yNjQsOCArMzIzLDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9zY3JvbGxfaW50b192
aWV3X2lmX25lZWRlZChXZWJLaXRET01FbGVtZW50KiBzZWxmLCBnYm9vbGVhbiBjCiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICogQGxpbmVzOiBBICNnbG9uZwogICoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRf
c2Nyb2xsX2J5X2xpbmVzKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGdsb25nIGxpbmVzKTsKIAog
LyoqCkBAIC0yNzMsOCArMzM0LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9zY3JvbGxfYnlfbGlu
ZXMoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgZ2xvbmcgbGluZXMpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUVsZW1lbnQKICAqIEBwYWdlczogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9lbGVtZW50X3Njcm9sbF9i
eV9wYWdlcyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBnbG9uZyBwYWdlcyk7CiAKIC8qKgpAQCAt
Mjg1LDggKzM0OCwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfc2Nyb2xsX2J5X3BhZ2VzKFdlYktp
dERPTUVsZW1lbnQqIHNlbGYsIGdsb25nIHBhZ2VzKTsKICAqIFJldHVybnM6ICh0cmFuc2ZlciBm
dWxsKTogQSAjV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24KICAqCiAgKiBTaW5jZTogMi4xMgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgorV0VCS0lUX0RFUFJFQ0FURUQg
V2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2VsZW1lbnRz
X2J5X2NsYXNzX25hbWVfYXNfaHRtbF9jb2xsZWN0aW9uKFdlYktpdERPTUVsZW1lbnQqIHNlbGYs
IGNvbnN0IGdjaGFyKiBuYW1lKTsKIAogLyoqCkBAIC0yOTYsOCArMzYxLDEwIEBAIHdlYmtpdF9k
b21fZWxlbWVudF9nZXRfZWxlbWVudHNfYnlfY2xhc3NfbmFtZV9hc19odG1sX2NvbGxlY3Rpb24o
V2ViS2l0RE9NRWxlbWVuCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJh
bnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRE
T01FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9k
b21fZWxlbWVudF9xdWVyeV9zZWxlY3RvcihXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBn
Y2hhciogc2VsZWN0b3JzLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMzA3LDggKzM3NCwx
MCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfcXVlcnlfc2VsZWN0b3IoV2ViS2l0RE9NRWxlbWVudCog
c2VsZiwgY29uc3QgZ2NoYXIqIHNlbGVjdG9ycwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICog
UmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01Ob2RlTGlzdAorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIFdlYktpdERPTU5vZGVMaXN0KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9k
ZUxpc3QqCiB3ZWJraXRfZG9tX2VsZW1lbnRfcXVlcnlfc2VsZWN0b3JfYWxsKFdlYktpdERPTUVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBzZWxlY3RvcnMsIEdFcnJvcioqIGVycm9yKTsKIAog
LyoqCkBAIC0zMTYsOCArMzg1LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9xdWVyeV9zZWxlY3Rv
cl9hbGwoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHNlbGVjCiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZWxl
bWVudF9nZXRfdGFnX25hbWUoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMzI1
LDggKzM5NiwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3RhZ19uYW1lKFdlYktpdERPTUVs
ZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBSZXR1
cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTU5hbWVkTm9kZU1hcAorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIFdlYktpdERPTU5hbWVkTm9kZU1hcCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERP
TU5hbWVkTm9kZU1hcCoKIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfYXR0cmlidXRlcyhXZWJLaXRE
T01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0zMzQsOCArNDA3LDEwIEBAIHdlYmtpdF9kb21f
ZWxlbWVudF9nZXRfYXR0cmlidXRlcyhXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01FbGVtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBB
ICNXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9N
Q1NTU3R5bGVEZWNsYXJhdGlvbioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUNTU1N0eWxl
RGVjbGFyYXRpb24qCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3N0eWxlKFdlYktpdERPTUVsZW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTM0Myw4ICs0MTgsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50
X2dldF9zdHlsZShXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01FbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hh
cioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9pZChX
ZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0zNTIsOCArNDI5LDEwIEBAIHdlYmtp
dF9kb21fZWxlbWVudF9nZXRfaWQoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0
X2lkKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpA
QCAtMzYzLDggKzQ0MiwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X2lkKFdlYktpdERPTUVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAgKiBSZXR1cm5zOiBBICNnY2hhcgog
ICoKICAqIFNpbmNlOiAyLjE0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVD
QVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfbmFtZXNwYWNlX3VyaShXZWJLaXRE
T01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0zNzQsOCArNDU1LDEwIEBAIHdlYmtpdF9kb21f
ZWxlbWVudF9nZXRfbmFtZXNwYWNlX3VyaShXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKICAqIFJl
dHVybnM6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTQKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hh
cioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9wcmVm
aXgoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMzg1LDggKzQ2OCwxMCBAQCB3
ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3ByZWZpeChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKICAq
IFJldHVybnM6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTQKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Y2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9s
b2NhbF9uYW1lKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTM5NCw4ICs0Nzks
MTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9sb2NhbF9uYW1lKFdlYktpdERPTUVsZW1lbnQq
IHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnZG91YmxlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2RvdWJsZQorV0VCS0lUX0RFUFJFQ0FURUQgZ2Rv
dWJsZQogd2Via2l0X2RvbV9lbGVtZW50X2dldF9vZmZzZXRfbGVmdChXZWJLaXRET01FbGVtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC00MDMsOCArNDkwLDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9n
ZXRfb2Zmc2V0X2xlZnQoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dkb3VibGUKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnZG91YmxlCitXRUJLSVRfREVQUkVDQVRFRCBnZG91YmxlCiB3ZWJraXRfZG9tX2VsZW1lbnRf
Z2V0X29mZnNldF90b3AoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNDEyLDgg
KzUwMSwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X29mZnNldF90b3AoV2ViS2l0RE9NRWxl
bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJldHVy
bnM6IEEgI2dkb3VibGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnZG91YmxlCitXRUJLSVRfREVQUkVDQVRF
RCBnZG91YmxlCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X29mZnNldF93aWR0aChXZWJLaXRET01F
bGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC00MjEsOCArNTEyLDEwIEBAIHdlYmtpdF9kb21fZWxl
bWVudF9nZXRfb2Zmc2V0X3dpZHRoKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnZG91YmxlCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2RvdWJsZQorV0VCS0lUX0RFUFJFQ0FURUQgZ2RvdWJsZQogd2Via2l0X2RvbV9l
bGVtZW50X2dldF9vZmZzZXRfaGVpZ2h0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTQzMCw4ICs1MjMsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9vZmZzZXRfaGVpZ2h0
KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnZG91YmxlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2RvdWJsZQorV0VC
S0lUX0RFUFJFQ0FURUQgZ2RvdWJsZQogd2Via2l0X2RvbV9lbGVtZW50X2dldF9jbGllbnRfbGVm
dChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC00MzksOCArNTM0LDEwIEBAIHdl
YmtpdF9kb21fZWxlbWVudF9nZXRfY2xpZW50X2xlZnQoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dkb3Vi
bGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnZG91YmxlCitXRUJLSVRfREVQUkVDQVRFRCBnZG91YmxlCiB3
ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2NsaWVudF90b3AoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtNDQ4LDggKzU0NSwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2NsaWVu
dF90b3AoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxl
bWVudAogICoKICAqIFJldHVybnM6IEEgI2dkb3VibGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnZG91Ymxl
CitXRUJLSVRfREVQUkVDQVRFRCBnZG91YmxlCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2NsaWVu
dF93aWR0aChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC00NTcsOCArNTU2LDEw
IEBAIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfY2xpZW50X3dpZHRoKFdlYktpdERPTUVsZW1lbnQq
IHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnZG91YmxlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2RvdWJsZQorV0VCS0lUX0RFUFJFQ0FURUQgZ2Rv
dWJsZQogd2Via2l0X2RvbV9lbGVtZW50X2dldF9jbGllbnRfaGVpZ2h0KFdlYktpdERPTUVsZW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTQ2Niw4ICs1NjcsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50
X2dldF9jbGllbnRfaGVpZ2h0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9lbGVtZW50X2dl
dF9zY3JvbGxfbGVmdChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC00NzUsOCAr
NTc4LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfc2Nyb2xsX2xlZnQoV2ViS2l0RE9NRWxl
bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICogQHZhbHVlOiBB
ICNnbG9uZwogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X3Njcm9sbF9sZWZ0KFdlYktpdERPTUVsZW1lbnQqIHNl
bGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCkBAIC00ODQsOCArNTg5LDEwIEBAIHdlYmtpdF9kb21f
ZWxlbWVudF9zZXRfc2Nyb2xsX2xlZnQoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgZ2xvbmcgdmFs
dWUpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Vi
a2l0X2RvbV9lbGVtZW50X2dldF9zY3JvbGxfdG9wKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTQ5Myw4ICs2MDAsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9zY3JvbGxf
dG9wKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1l
bnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9lbGVtZW50X3NldF9zY3JvbGxfdG9wKFdlYktp
dERPTUVsZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCkBAIC01MDIsOCArNjExLDEw
IEBAIHdlYmtpdF9kb21fZWxlbWVudF9zZXRfc2Nyb2xsX3RvcChXZWJLaXRET01FbGVtZW50KiBz
ZWxmLCBnbG9uZyB2YWx1ZSk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAq
IFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNB
VEVEIGdsb25nCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3Njcm9sbF93aWR0aChXZWJLaXRET01F
bGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC01MTEsOCArNjIyLDEwIEBAIHdlYmtpdF9kb21fZWxl
bWVudF9nZXRfc2Nyb2xsX3dpZHRoKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9lbGVtZW50
X2dldF9zY3JvbGxfaGVpZ2h0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTUy
NSw4ICs2MzgsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9zY3JvbGxfaGVpZ2h0KFdlYktp
dERPTUVsZW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJL
aXRET01DbGllbnRSZWN0CiAgKgogICogU2luY2U6IDIuMTgKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJL
aXRET01DbGllbnRSZWN0KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NQ2xpZW50UmVjdCoK
IHdlYmtpdF9kb21fZWxlbWVudF9nZXRfYm91bmRpbmdfY2xpZW50X3JlY3QoV2ViS2l0RE9NRWxl
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNTM5LDggKzY1NCwxMCBAQCB3ZWJraXRfZG9tX2VsZW1l
bnRfZ2V0X2JvdW5kaW5nX2NsaWVudF9yZWN0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICog
UmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01DbGllbnRSZWN0TGlzdAogICoK
ICAqIFNpbmNlOiAyLjE4CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NQ2xpZW50UmVjdExpc3Qq
CitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01DbGllbnRSZWN0TGlzdCoKIHdlYmtpdF9kb21f
ZWxlbWVudF9nZXRfY2xpZW50X3JlY3RzKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTU0OCw4ICs2NjUsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9jbGllbnRfcmVjdHMo
V2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAog
ICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRE
T01FbGVtZW50Kgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9vZmZzZXRfcGFyZW50KFdlYktpdERP
TUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTU1OSw4ICs2NzgsMTAgQEAgd2Via2l0X2RvbV9l
bGVtZW50X2dldF9vZmZzZXRfcGFyZW50KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogUmV0
dXJuczogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi44CisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIq
CitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfaW5uZXJf
aHRtbChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC01NzAsOCArNjkxLDEwIEBA
IHdlYmtpdF9kb21fZWxlbWVudF9nZXRfaW5uZXJfaHRtbChXZWJLaXRET01FbGVtZW50KiBzZWxm
KTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFNpbmNlOiAyLjgKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X2lu
bmVyX2h0bWwoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJy
b3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtNTgxLDggKzcwNCwxMCBAQCB3ZWJraXRfZG9tX2VsZW1l
bnRfc2V0X2lubmVyX2h0bWwoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlLCBHRQogICogUmV0dXJuczogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi44CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZWxl
bWVudF9nZXRfb3V0ZXJfaHRtbChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC01
OTIsOCArNzE3LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfb3V0ZXJfaHRtbChXZWJLaXRE
T01FbGVtZW50KiBzZWxmKTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFNpbmNlOiAyLjgK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2VsZW1lbnRfc2V0X291dGVyX2h0bWwoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2No
YXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtNjAxLDggKzcyOCwxMCBAQCB3
ZWJraXRfZG9tX2VsZW1lbnRfc2V0X291dGVyX2h0bWwoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHZhbHVlLCBHRQogICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2NsYXNzX25hbWUoV2ViS2l0
RE9NRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjEwLDggKzczOSwxMCBAQCB3ZWJraXRfZG9t
X2VsZW1lbnRfZ2V0X2NsYXNzX25hbWUoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRf
c2V0X2NsYXNzX25hbWUoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVl
KTsKIAogLyoqCkBAIC02MTksOCArNzUwLDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9zZXRfY2xh
c3NfbmFtZShXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9u
ZSk6IEEgI1dlYktpdERPTUVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50
KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZWxlbWVu
dF9nZXRfcHJldmlvdXNfZWxlbWVudF9zaWJsaW5nKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTYyOCw4ICs3NjEsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9wcmV2aW91
c19lbGVtZW50X3NpYmxpbmcoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2Vi
S2l0RE9NRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCitXRUJLSVRf
REVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9uZXh0
X2VsZW1lbnRfc2libGluZyhXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Mzks
OCArNzc0LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfbmV4dF9lbGVtZW50X3NpYmxpbmco
V2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEg
I1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCiAgKgogICogU2luY2U6IDIuMTAKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERP
TUhUTUxDb2xsZWN0aW9uKgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9jaGlsZHJlbihXZWJLaXRE
T01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02NDgsOCArNzg1LDEwIEBAIHdlYmtpdF9kb21f
ZWxlbWVudF9nZXRfY2hpbGRyZW4oV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAj
V2ViS2l0RE9NRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCitXRUJL
SVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9m
aXJzdF9lbGVtZW50X2NoaWxkKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTY1
Nyw4ICs3OTYsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9maXJzdF9lbGVtZW50X2NoaWxk
KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUVsZW1lbnQKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0
RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfbGFzdF9lbGVtZW50X2NoaWxkKFdl
YktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTY2Niw4ICs4MDcsMTAgQEAgd2Via2l0
X2RvbV9lbGVtZW50X2dldF9sYXN0X2VsZW1lbnRfY2hpbGQoV2ViS2l0RE9NRWxlbWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2d1
bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGd1bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vsb25nCiB3
ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2NoaWxkX2VsZW1lbnRfY291bnQoV2ViS2l0RE9NRWxlbWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtNjc5LDggKzgyMiwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRf
Z2V0X2NoaWxkX2VsZW1lbnRfY291bnQoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBSZXR1
cm5zOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jv
b2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2VsZW1lbnRfbWF0
Y2hlcyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogc2VsZWN0b3JzLCBHRXJy
b3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtNjkyLDggKzgzNywxMCBAQCB3ZWJraXRfZG9tX2VsZW1l
bnRfbWF0Y2hlcyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogc2VsZWN0b3Jz
LCBHRXJybwogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVtZW50
CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50Kgor
V0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZWxlbWVudF9j
bG9zZXN0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBzZWxlY3RvcnMsIEdF
cnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC03MDUsOCArODUyLDEwIEBAIHdlYmtpdF9kb21fZWxl
bWVudF9jbG9zZXN0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBzZWxlY3Rv
cnMsIEdFcnJvCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2Cisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJr
aXRfZG9tX2VsZW1lbnRfd2Via2l0X21hdGNoZXNfc2VsZWN0b3IoV2ViS2l0RE9NRWxlbWVudCog
c2VsZiwgY29uc3QgZ2NoYXIqIHNlbGVjdG9ycywgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAg
LTcxNCw4ICs4NjMsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X3dlYmtpdF9tYXRjaGVzX3NlbGVj
dG9yKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKgogICogQHNlbGY6IEEgI1dl
YktpdERPTUVsZW1lbnQKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZWxlbWVudF93ZWJraXRfcmVxdWVz
dF9mdWxsc2NyZWVuKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTcyOCw4ICs4
NzksMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X3dlYmtpdF9yZXF1ZXN0X2Z1bGxzY3JlZW4oV2Vi
S2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dl
YktpdERPTUVsZW1lbnQKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktp
dERPTUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0
X2RvbV9lbGVtZW50X2luc2VydF9hZGphY2VudF9lbGVtZW50KFdlYktpdERPTUVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB3aGVyZSwgV2ViS2l0RE9NRWxlbWVudCogZWxlbWVudCwgR0Vycm9y
KiogZXJyb3IpOwogCiAvKioKQEAgLTc0MCw4ICs4OTMsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50
X2luc2VydF9hZGphY2VudF9lbGVtZW50KFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKgogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRfaW5z
ZXJ0X2FkamFjZW50X2h0bWwoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHdo
ZXJlLCBjb25zdCBnY2hhciogaHRtbCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTc1Miw4
ICs5MDcsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2luc2VydF9hZGphY2VudF9odG1sKFdlYktp
dERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB3aGUKICAqIEBlcnJvcjogI0dFcnJvcgog
ICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9lbGVtZW50X2luc2VydF9hZGphY2VudF90ZXh0KFdlYktpdERP
TUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB3aGVyZSwgY29uc3QgZ2NoYXIqIHRleHQsIEdF
cnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC03NjEsOCArOTE4LDEwIEBAIHdlYmtpdF9kb21fZWxl
bWVudF9pbnNlcnRfYWRqYWNlbnRfdGV4dChXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBn
Y2hhciogd2hlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFNpbmNlOiAy
LjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9lbGVtZW50X3JlcXVlc3RfcG9pbnRlcl9sb2NrKFdlYktpdERPTUVsZW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTc3MSw4ICs5MzAsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X3JlcXVlc3Rf
cG9pbnRlcl9sb2NrKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogQGVycm9yOiAjR0Vycm9y
CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRfcmVtb3ZlKFdlYktpdERPTUVsZW1lbnQqIHNl
bGYsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC03ODIsOCArOTQzLDEwIEBAIHdlYmtpdF9k
b21fZWxlbWVudF9yZW1vdmUoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgR0Vycm9yKiogZXJyb3Ip
OwogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01ET01Ub2tlbkxpc3QK
ICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTURPTVRva2VuTGlz
dCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTURPTVRva2VuTGlzdCoKIHdlYmtpdF9kb21f
ZWxlbWVudF9nZXRfY2xhc3NfbGlzdChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogR19FTkRf
REVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FbGVtZW50R3RrLmNwcApz
aW1pbGFyaXR5IGluZGV4IDk4JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudC5jcHAKcmVuYW1lIHRv
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01FbGVtZW50R3RrLmNwcAppbmRleCA3YTgyNjMzYTU4YS4uMzFhMTU4ZWRlZmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudEd0ay5jcHAKQEAgLTIxLDcg
KzIxLDYgQEAKICNpbmNsdWRlICJXZWJLaXRET01FbGVtZW50LmgiCiAKICNpbmNsdWRlIDxXZWJD
b3JlL0NTU0ltcG9ydFJ1bGUuaD4KLSNpbmNsdWRlICJET01PYmplY3RDYWNoZS5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvRE9NRXhjZXB0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ET01SZWN0Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgpAQCAtNDcsMjUgKzQ2LDcgQEAKICNpbmNs
dWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCi1uYW1lc3BhY2Ug
V2ViS2l0IHsKLQotV2ViS2l0RE9NRWxlbWVudCoga2l0KFdlYkNvcmU6OkVsZW1lbnQqIG9iaikK
LXsKLSAgICByZXR1cm4gV0VCS0lUX0RPTV9FTEVNRU5UKGtpdChzdGF0aWNfY2FzdDxXZWJDb3Jl
OjpOb2RlKj4ob2JqKSkpOwotfQotCi1XZWJDb3JlOjpFbGVtZW50KiBjb3JlKFdlYktpdERPTUVs
ZW1lbnQqIHJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIHJlcXVlc3QgPyBzdGF0aWNfY2FzdDxXZWJD
b3JlOjpFbGVtZW50Kj4oV0VCS0lUX0RPTV9PQkpFQ1QocmVxdWVzdCktPmNvcmVPYmplY3QpIDog
MDsKLX0KLQotV2ViS2l0RE9NRWxlbWVudCogd3JhcEVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCog
Y29yZU9iamVjdCkKLXsKLSAgICBBU1NFUlQoY29yZU9iamVjdCk7Ci0gICAgcmV0dXJuIFdFQktJ
VF9ET01fRUxFTUVOVChnX29iamVjdF9uZXcoV0VCS0lUX0RPTV9UWVBFX0VMRU1FTlQsICJjb3Jl
LW9iamVjdCIsIGNvcmVPYmplY3QsIG51bGxwdHIpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKIAogc3RhdGljIGdib29sZWFu
IHdlYmtpdF9kb21fZWxlbWVudF9kaXNwYXRjaF9ldmVudChXZWJLaXRET01FdmVudFRhcmdldCog
dGFyZ2V0LCBXZWJLaXRET01FdmVudCogZXZlbnQsIEdFcnJvcioqIGVycm9yKQogewpAQCAtOTUs
MTUgKzc2LDEzIEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRfZG9tX2VsZW1lbnRfcmVtb3ZlX2V2
ZW50X2xpc3RlbmVyKFdlYktpdERPTUV2ZW50VGFyZ2V0KiB0CiAgICAgcmV0dXJuIFdlYktpdDo6
R09iamVjdEV2ZW50TGlzdGVuZXI6OnJlbW92ZUV2ZW50TGlzdGVuZXIoR19PQkpFQ1QodGFyZ2V0
KSwgY29yZVRhcmdldCwgZXZlbnROYW1lLCBoYW5kbGVyLCB1c2VDYXB0dXJlKTsKIH0KIAotc3Rh
dGljIHZvaWQgd2Via2l0X2RvbV9lbGVtZW50X2RvbV9ldmVudF90YXJnZXRfaW5pdChXZWJLaXRE
T01FdmVudFRhcmdldElmYWNlKiBpZmFjZSkKK3ZvaWQgd2Via2l0RE9NRWxlbWVudERPTUV2ZW50
VGFyZ2V0SW5pdChXZWJLaXRET01FdmVudFRhcmdldElmYWNlKiBpZmFjZSkKIHsKICAgICBpZmFj
ZS0+ZGlzcGF0Y2hfZXZlbnQgPSB3ZWJraXRfZG9tX2VsZW1lbnRfZGlzcGF0Y2hfZXZlbnQ7CiAg
ICAgaWZhY2UtPmFkZF9ldmVudF9saXN0ZW5lciA9IHdlYmtpdF9kb21fZWxlbWVudF9hZGRfZXZl
bnRfbGlzdGVuZXI7CiAgICAgaWZhY2UtPnJlbW92ZV9ldmVudF9saXN0ZW5lciA9IHdlYmtpdF9k
b21fZWxlbWVudF9yZW1vdmVfZXZlbnRfbGlzdGVuZXI7CiB9CiAKLUdfREVGSU5FX1RZUEVfV0lU
SF9DT0RFKFdlYktpdERPTUVsZW1lbnQsIHdlYmtpdF9kb21fZWxlbWVudCwgV0VCS0lUX0RPTV9U
WVBFX05PREUsIEdfSU1QTEVNRU5UX0lOVEVSRkFDRShXRUJLSVRfRE9NX1RZUEVfRVZFTlRfVEFS
R0VULCB3ZWJraXRfZG9tX2VsZW1lbnRfZG9tX2V2ZW50X3RhcmdldF9pbml0KSkKLQogZW51bSB7
CiAgICAgRE9NX0VMRU1FTlRfUFJPUF8wLAogICAgIERPTV9FTEVNRU5UX1BST1BfVEFHX05BTUUs
CkBAIC0yNzMsOSArMjUyLDggQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV9lbGVtZW50X2dldF9w
cm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SWQsIEcKICAgICB9CiB9CiAK
LXN0YXRpYyB2b2lkIHdlYmtpdF9kb21fZWxlbWVudF9jbGFzc19pbml0KFdlYktpdERPTUVsZW1l
bnRDbGFzcyogcmVxdWVzdENsYXNzKQordm9pZCB3ZWJraXRET01FbGVtZW50SW5zdGFsbFByb3Bl
cnRpZXMoR09iamVjdENsYXNzKiBnb2JqZWN0Q2xhc3MpCiB7Ci0gICAgR09iamVjdENsYXNzKiBn
b2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhyZXF1ZXN0Q2xhc3MpOwogICAgIGdvYmplY3RD
bGFzcy0+c2V0X3Byb3BlcnR5ID0gd2Via2l0X2RvbV9lbGVtZW50X3NldF9wcm9wZXJ0eTsKICAg
ICBnb2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtpdF9kb21fZWxlbWVudF9nZXRfcHJv
cGVydHk7CiAKQEAgLTU5OCwxMSArNTc2LDYgQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV9lbGVt
ZW50X2NsYXNzX2luaXQoV2ViS2l0RE9NRWxlbWVudENsYXNzKiByZXF1ZXN0Q2xhc3MpCiAKIH0K
IAotc3RhdGljIHZvaWQgd2Via2l0X2RvbV9lbGVtZW50X2luaXQoV2ViS2l0RE9NRWxlbWVudCog
cmVxdWVzdCkKLXsKLSAgICBVTlVTRURfUEFSQU0ocmVxdWVzdCk7Ci19Ci0KIGdjaGFyKiB3ZWJr
aXRfZG9tX2VsZW1lbnRfZ2V0X2F0dHJpYnV0ZShXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogbmFtZSkKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CkBAIC0xMzg4LDMgKzEzNjEsNCBAQCBndWxvbmcgd2Via2l0X2RvbV9lbGVtZW50X2dldF9j
aGlsZF9lbGVtZW50X2NvdW50KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01FdmVudC5jcHAKaW5kZXggYmE3Mzc0ODE3OWYuLjQ4MmQ1Yjky
NDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVudC5jcHAKQEAgLTM4
LDYgKzM4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTUV2ZW50UHJpdmF0ZSB7CiAgICAg
UmVmUHRyPFdlYkNvcmU6OkV2ZW50PiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01FdmVudFByaXZh
dGU7CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogV2ViS2l0RE9NRXZlbnQqIGtpdChXZWJDb3JlOjpFdmVudCogb2JqKQpAQCAtNDA4
LDMgKzQxMCw0IEBAIHZvaWQgd2Via2l0X2RvbV9ldmVudF9zZXRfY2FuY2VsX2J1YmJsZShXZWJL
aXRET01FdmVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpCiAgICAgaXRlbS0+c2V0Q2FuY2VsQnVi
YmxlKHZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRXZlbnQuaAppbmRleCBmMmUxODk4NTZmMi4uZTM2MzBl
MTgzNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVudC5oCkBAIC0zNywx
MDYgKzM3LDE1MCBAQCBHX0JFR0lOX0RFQ0xTCiAjZGVmaW5lIFdFQktJVF9ET01fSVNfRVZFTlRf
Q0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX0RP
TV9UWVBFX0VWRU5UKSkKICNkZWZpbmUgV0VCS0lUX0RPTV9FVkVOVF9HRVRfQ0xBU1Mob2JqKSAg
KEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfRE9NX1RZUEVfRVZFTlQs
IFdlYktpdERPTUV2ZW50Q2xhc3MpKQogCisjaWZuZGVmIFdFQktJVF9ESVNBQkxFX0RFUFJFQ0FU
RUQKKwogLyoqCiAgKiBXRUJLSVRfRE9NX0VWRU5UX05PTkU6CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lU
X0RPTV9FVkVOVF9OT05FIDAKIAogLyoqCiAgKiBXRUJLSVRfRE9NX0VWRU5UX0NBUFRVUklOR19Q
SEFTRToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0VWRU5UX0NBUFRVUklOR19QSEFTRSAxCiAK
IC8qKgogICogV0VCS0lUX0RPTV9FVkVOVF9BVF9UQVJHRVQ6CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lU
X0RPTV9FVkVOVF9BVF9UQVJHRVQgMgogCiAvKioKICAqIFdFQktJVF9ET01fRVZFTlRfQlVCQkxJ
TkdfUEhBU0U6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9FVkVOVF9CVUJCTElOR19QSEFTRSAz
CiAKIC8qKgogICogV0VCS0lUX0RPTV9FVkVOVF9NT1VTRURPV046CisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VC
S0lUX0RPTV9FVkVOVF9NT1VTRURPV04gMQogCiAvKioKICAqIFdFQktJVF9ET01fRVZFTlRfTU9V
U0VVUDoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0VWRU5UX01PVVNFVVAgMgogCiAvKioKICAq
IFdFQktJVF9ET01fRVZFTlRfTU9VU0VPVkVSOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fRVZF
TlRfTU9VU0VPVkVSIDQKIAogLyoqCiAgKiBXRUJLSVRfRE9NX0VWRU5UX01PVVNFT1VUOgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICov
CiAjZGVmaW5lIFdFQktJVF9ET01fRVZFTlRfTU9VU0VPVVQgOAogCiAvKioKICAqIFdFQktJVF9E
T01fRVZFTlRfTU9VU0VNT1ZFOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fRVZFTlRfTU9VU0VN
T1ZFIDE2CiAKIC8qKgogICogV0VCS0lUX0RPTV9FVkVOVF9NT1VTRURSQUc6CisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZp
bmUgV0VCS0lUX0RPTV9FVkVOVF9NT1VTRURSQUcgMzIKIAogLyoqCiAgKiBXRUJLSVRfRE9NX0VW
RU5UX0NMSUNLOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fRVZFTlRfQ0xJQ0sgNjQKIAogLyoq
CiAgKiBXRUJLSVRfRE9NX0VWRU5UX0RCTENMSUNLOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01f
RVZFTlRfREJMQ0xJQ0sgMTI4CiAKIC8qKgogICogV0VCS0lUX0RPTV9FVkVOVF9LRVlET1dOOgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
ICovCiAjZGVmaW5lIFdFQktJVF9ET01fRVZFTlRfS0VZRE9XTiAyNTYKIAogLyoqCiAgKiBXRUJL
SVRfRE9NX0VWRU5UX0tFWVVQOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fRVZFTlRfS0VZVVAg
NTEyCiAKIC8qKgogICogV0VCS0lUX0RPTV9FVkVOVF9LRVlQUkVTUzoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBX
RUJLSVRfRE9NX0VWRU5UX0tFWVBSRVNTIDEwMjQKIAogLyoqCiAgKiBXRUJLSVRfRE9NX0VWRU5U
X0RSQUdEUk9QOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fRVZFTlRfRFJBR0RST1AgMjA0OAog
CiAvKioKICAqIFdFQktJVF9ET01fRVZFTlRfRk9DVVM6CisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RP
TV9FVkVOVF9GT0NVUyA0MDk2CiAKIC8qKgogICogV0VCS0lUX0RPTV9FVkVOVF9CTFVSOgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICov
CiAjZGVmaW5lIFdFQktJVF9ET01fRVZFTlRfQkxVUiA4MTkyCiAKIC8qKgogICogV0VCS0lUX0RP
TV9FVkVOVF9TRUxFQ1Q6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9FVkVOVF9TRUxFQ1QgMTYz
ODQKIAogLyoqCiAgKiBXRUJLSVRfRE9NX0VWRU5UX0NIQU5HRToKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJL
SVRfRE9NX0VWRU5UX0NIQU5HRSAzMjc2OAogCisjZW5kaWYgLyogV0VCS0lUX0RJU0FCTEVfREVQ
UkVDQVRFRCAqLworCiBzdHJ1Y3QgX1dlYktpdERPTUV2ZW50IHsKICAgICBXZWJLaXRET01PYmpl
Y3QgcGFyZW50X2luc3RhbmNlOwogfTsKQEAgLTE0NSwyMyArMTg5LDI3IEBAIHN0cnVjdCBfV2Vi
S2l0RE9NRXZlbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNz
OwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtp
dF9kb21fZXZlbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgogICogd2Via2l0X2RvbV9ldmVudF9z
dG9wX3Byb3BhZ2F0aW9uOgogICogQHNlbGY6IEEgI1dlYktpdERPTUV2ZW50CiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZXZlbnRf
c3RvcF9wcm9wYWdhdGlvbihXZWJLaXRET01FdmVudCogc2VsZik7CiAKIC8qKgogICogd2Via2l0
X2RvbV9ldmVudF9wcmV2ZW50X2RlZmF1bHQ6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRXZlbnQK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9ldmVudF9wcmV2ZW50X2RlZmF1bHQoV2ViS2l0RE9NRXZlbnQqIHNlbGYpOwogCiAvKioK
QEAgLTE3MSw4ICsyMTksMTAgQEAgd2Via2l0X2RvbV9ldmVudF9wcmV2ZW50X2RlZmF1bHQoV2Vi
S2l0RE9NRXZlbnQqIHNlbGYpOwogICogQGNhbkJ1YmJsZUFyZzogQSAjZ2Jvb2xlYW4KICAqIEBj
YW5jZWxhYmxlQXJnOiBBICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2V2ZW50X2luaXRfZXZlbnQoV2ViS2l0RE9N
RXZlbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBldmVudFR5cGVBcmcsIGdib29sZWFuIGNhbkJ1YmJs
ZUFyZywgZ2Jvb2xlYW4gY2FuY2VsYWJsZUFyZyk7CiAKIC8qKgpAQCAtMTgwLDggKzIzMCwxMCBA
QCB3ZWJraXRfZG9tX2V2ZW50X2luaXRfZXZlbnQoV2ViS2l0RE9NRXZlbnQqIHNlbGYsIGNvbnN0
IGdjaGFyKiBldmVudFR5cGVBcmcsIGdibwogICogQHNlbGY6IEEgI1dlYktpdERPTUV2ZW50CiAg
KgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9E
RVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9ldmVudF9nZXRfZXZlbnRfdHlwZShXZWJLaXRE
T01FdmVudCogc2VsZik7CiAKIC8qKgpAQCAtMTg5LDggKzI0MSwxMCBAQCB3ZWJraXRfZG9tX2V2
ZW50X2dldF9ldmVudF90eXBlKFdlYktpdERPTUV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01FdmVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0
RE9NRXZlbnRUYXJnZXQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FdmVudFRhcmdldCoKK1dF
QktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUV2ZW50VGFyZ2V0Kgogd2Via2l0X2RvbV9ldmVudF9n
ZXRfdGFyZ2V0KFdlYktpdERPTUV2ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xOTgsOCArMjUyLDEw
IEBAIHdlYmtpdF9kb21fZXZlbnRfZ2V0X3RhcmdldChXZWJLaXRET01FdmVudCogc2VsZik7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NRXZlbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVs
bCk6IEEgI1dlYktpdERPTUV2ZW50VGFyZ2V0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRXZl
bnRUYXJnZXQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FdmVudFRhcmdldCoKIHdlYmtp
dF9kb21fZXZlbnRfZ2V0X2N1cnJlbnRfdGFyZ2V0KFdlYktpdERPTUV2ZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0yMDcsOCArMjYzLDEwIEBAIHdlYmtpdF9kb21fZXZlbnRfZ2V0X2N1cnJlbnRfdGFy
Z2V0KFdlYktpdERPTUV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01FdmVudAog
ICoKICAqIFJldHVybnM6IEEgI2d1c2hvcnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBndXNob3J0CitXRUJL
SVRfREVQUkVDQVRFRCBndXNob3J0CiB3ZWJraXRfZG9tX2V2ZW50X2dldF9ldmVudF9waGFzZShX
ZWJLaXRET01FdmVudCogc2VsZik7CiAKIC8qKgpAQCAtMjE2LDggKzI3NCwxMCBAQCB3ZWJraXRf
ZG9tX2V2ZW50X2dldF9ldmVudF9waGFzZShXZWJLaXRET01FdmVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2Rv
bV9ldmVudF9nZXRfYnViYmxlcyhXZWJLaXRET01FdmVudCogc2VsZik7CiAKIC8qKgpAQCAtMjI1
LDggKzI4NSwxMCBAQCB3ZWJraXRfZG9tX2V2ZW50X2dldF9idWJibGVzKFdlYktpdERPTUV2ZW50
KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01FdmVudAogICoKICAqIFJldHVybnM6IEEg
I2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdi
b29sZWFuCiB3ZWJraXRfZG9tX2V2ZW50X2dldF9jYW5jZWxhYmxlKFdlYktpdERPTUV2ZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC0yMzQsOCArMjk2LDEwIEBAIHdlYmtpdF9kb21fZXZlbnRfZ2V0X2Nh
bmNlbGFibGUoV2ViS2l0RE9NRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUV2
ZW50CiAgKgogICogUmV0dXJuczogQSAjZ3VpbnQzMgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGd1aW50MzIK
K1dFQktJVF9ERVBSRUNBVEVEIGd1aW50MzIKIHdlYmtpdF9kb21fZXZlbnRfZ2V0X3RpbWVfc3Rh
bXAoV2ViS2l0RE9NRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTI0Myw4ICszMDcsMTAgQEAgd2Vi
a2l0X2RvbV9ldmVudF9nZXRfdGltZV9zdGFtcChXZWJLaXRET01FdmVudCogc2VsZik7CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NRXZlbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6
IEEgI1dlYktpdERPTUV2ZW50VGFyZ2V0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRXZlbnRU
YXJnZXQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FdmVudFRhcmdldCoKIHdlYmtpdF9k
b21fZXZlbnRfZ2V0X3NyY19lbGVtZW50KFdlYktpdERPTUV2ZW50KiBzZWxmKTsKIAogLyoqCkBA
IC0yNTIsOCArMzE4LDEwIEBAIHdlYmtpdF9kb21fZXZlbnRfZ2V0X3NyY19lbGVtZW50KFdlYktp
dERPTUV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01FdmVudAogICoKICAqIFJl
dHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBS
RUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2V2ZW50X2dldF9yZXR1cm5fdmFsdWUoV2ViS2l0
RE9NRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTI2MSw4ICszMjksMTAgQEAgd2Via2l0X2RvbV9l
dmVudF9nZXRfcmV0dXJuX3ZhbHVlKFdlYktpdERPTUV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01FdmVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2V2ZW50X3NldF9y
ZXR1cm5fdmFsdWUoV2ViS2l0RE9NRXZlbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoq
CkBAIC0yNzAsOCArMzQwLDEwIEBAIHdlYmtpdF9kb21fZXZlbnRfc2V0X3JldHVybl92YWx1ZShX
ZWJLaXRET01FdmVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTUV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Ym9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZXZlbnRfZ2V0
X2NhbmNlbF9idWJibGUoV2ViS2l0RE9NRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTI3OSw4ICsz
NTEsMTAgQEAgd2Via2l0X2RvbV9ldmVudF9nZXRfY2FuY2VsX2J1YmJsZShXZWJLaXRET01FdmVu
dCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRXZlbnQKICAqIEB2YWx1ZTogQSAjZ2Jv
b2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9ldmVudF9zZXRfY2FuY2VsX2J1YmJsZShXZWJLaXRET01FdmVudCogc2VsZiwg
Z2Jvb2xlYW4gdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUV2ZW50VGFy
Z2V0LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01FdmVudFRhcmdldC5jcHAKaW5kZXggOGI3NTBiNDc1NDEuLmZlMWEwNDNh
ODMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NRXZlbnRUYXJnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVudFRhcmdl
dC5jcHAKQEAgLTM4LDYgKzM4LDggQEAKICNpbmNsdWRlICJXZWJLaXRET01Qcml2YXRlLmgiCiAj
aW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJF
Q0FUSU9OUzsKKwogdHlwZWRlZiBXZWJLaXRET01FdmVudFRhcmdldElmYWNlIFdlYktpdERPTUV2
ZW50VGFyZ2V0SW50ZXJmYWNlOwogCiBHX0RFRklORV9JTlRFUkZBQ0UoV2ViS2l0RE9NRXZlbnRU
YXJnZXQsIHdlYmtpdF9kb21fZXZlbnRfdGFyZ2V0LCBHX1RZUEVfT0JKRUNUKQpAQCAtMTEyLDMg
KzExNCw0IEBAIFdlYkNvcmU6OkV2ZW50VGFyZ2V0KiBjb3JlKFdlYktpdERPTUV2ZW50VGFyZ2V0
KiByZXF1ZXN0KQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAorR19HTlVDX0VORF9JR05PUkVf
REVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUV2ZW50VGFyZ2V0LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRXZlbnRU
YXJnZXQuaAppbmRleCBhZGMyMTA2YzdjNC4uNzVhYWMxODk0MzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01F
dmVudFRhcmdldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVudFRhcmdldC5oCkBAIC01NCw3ICs1NCw3IEBAIHN0
cnVjdCBfV2ViS2l0RE9NRXZlbnRUYXJnZXRJZmFjZSB7CiB9OwogCiAKLVdFQktJVF9BUEkgR1R5
cGUgICAgIHdlYmtpdF9kb21fZXZlbnRfdGFyZ2V0X2dldF90eXBlKHZvaWQpIEdfR05VQ19DT05T
VDsKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlICAgICB3ZWJraXRfZG9tX2V2ZW50X3RhcmdldF9n
ZXRfdHlwZSh2b2lkKSBHX0dOVUNfQ09OU1Q7CiAKIC8qKgogICogd2Via2l0X2RvbV9ldmVudF90
YXJnZXRfZGlzcGF0Y2hfZXZlbnQ6CkBAIC02Myw4ICs2MywxMCBAQCBXRUJLSVRfQVBJIEdUeXBl
ICAgICB3ZWJraXRfZG9tX2V2ZW50X3RhcmdldF9nZXRfdHlwZSh2b2lkKSBHX0dOVUNfQ09OU1Q7
CiAgKiBAZXJyb3I6IHJldHVybiBsb2NhdGlvbiBmb3IgYW4gZXJyb3Igb3IgJU5VTEwKICAqCiAg
KiBSZXR1cm5zOiBhICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIGdib29sZWFuICB3ZWJraXRf
ZG9tX2V2ZW50X3RhcmdldF9kaXNwYXRjaF9ldmVudChXZWJLaXRET01FdmVudFRhcmdldCAqdGFy
Z2V0LAorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4gIHdlYmtpdF9kb21fZXZlbnRfdGFyZ2V0
X2Rpc3BhdGNoX2V2ZW50KFdlYktpdERPTUV2ZW50VGFyZ2V0ICp0YXJnZXQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRE
T01FdmVudCAgICAgICAqZXZlbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAgICAgICAgICAgICoqZXJyb3IpOwog
CkBAIC03Nyw4ICs3OSwxMCBAQCBXRUJLSVRfQVBJIGdib29sZWFuICB3ZWJraXRfZG9tX2V2ZW50
X3RhcmdldF9kaXNwYXRjaF9ldmVudChXZWJLaXRET01FdmVudFRhcmdldAogICogQHVzZXJfZGF0
YTogQSAjZ3BvaW50ZXIKICAqCiAgKiBSZXR1cm5zOiBhICNnYm9vbGVhbgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRf
QVBJIGdib29sZWFuICB3ZWJraXRfZG9tX2V2ZW50X3RhcmdldF9hZGRfZXZlbnRfbGlzdGVuZXIo
V2ViS2l0RE9NRXZlbnRUYXJnZXQgKnRhcmdldCwKK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFu
ICB3ZWJraXRfZG9tX2V2ZW50X3RhcmdldF9hZGRfZXZlbnRfbGlzdGVuZXIoV2ViS2l0RE9NRXZl
bnRUYXJnZXQgKnRhcmdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICAgICAgICAgICAqZXZlbnRfbmFt
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHQ2FsbGJhY2sgICAgICAgICAgICAgaGFuZGxlciwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVh
biAgICAgICAgICAgICAgdXNlX2NhcHR1cmUsCkBAIC05Miw4ICs5NiwxMCBAQCBXRUJLSVRfQVBJ
IGdib29sZWFuICB3ZWJraXRfZG9tX2V2ZW50X3RhcmdldF9hZGRfZXZlbnRfbGlzdGVuZXIoV2Vi
S2l0RE9NRXZlbnRUYQogICogQHVzZV9jYXB0dXJlOiBBICNnYm9vbGVhbgogICoKICAqIFJldHVy
bnM6IGEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4gIHdlYmtpdF9kb21fZXZl
bnRfdGFyZ2V0X3JlbW92ZV9ldmVudF9saXN0ZW5lcihXZWJLaXRET01FdmVudFRhcmdldCAqdGFy
Z2V0LAorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4gIHdlYmtpdF9kb21fZXZlbnRfdGFyZ2V0
X3JlbW92ZV9ldmVudF9saXN0ZW5lcihXZWJLaXRET01FdmVudFRhcmdldCAqdGFyZ2V0LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGNoYXIgICAgICAgICAgICpldmVudF9uYW1lLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDYWxs
YmFjayAgICAgICAgICAgICBoYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICAgICAg
ICB1c2VfY2FwdHVyZSk7CkBAIC0xMDksOCArMTE1LDEwIEBAIFdFQktJVF9BUEkgZ2Jvb2xlYW4g
IHdlYmtpdF9kb21fZXZlbnRfdGFyZ2V0X3JlbW92ZV9ldmVudF9saXN0ZW5lcihXZWJLaXRET01F
dmVuCiAgKiBpbnN0ZWFkIG9mIGEgY2FsbGJhY2tzIGZvciBlYXNpZXIgYmluZGluZyBpbiBvdGhl
ciBsYW5ndWFnZXMuCiAgKgogICogUmV0dXJuczogYSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQ
SSBnYm9vbGVhbiB3ZWJraXRfZG9tX2V2ZW50X3RhcmdldF9hZGRfZXZlbnRfbGlzdGVuZXJfd2l0
aF9jbG9zdXJlKFdlYktpdERPTUV2ZW50VGFyZ2V0ICp0YXJnZXQsCitXRUJLSVRfREVQUkVDQVRF
RCBnYm9vbGVhbiB3ZWJraXRfZG9tX2V2ZW50X3RhcmdldF9hZGRfZXZlbnRfbGlzdGVuZXJfd2l0
aF9jbG9zdXJlKFdlYktpdERPTUV2ZW50VGFyZ2V0ICp0YXJnZXQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgY2hhciAgICAgICAgICAgKmV2ZW50X25hbWUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
R0Nsb3N1cmUgICAgICAgICAgICAgKmhhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xl
YW4gICAgICAgICAgICAgIHVzZV9jYXB0dXJlKTsKQEAgLTEyNiw4ICsxMzQsMTAgQEAgV0VCS0lU
X0FQSSBnYm9vbGVhbiB3ZWJraXRfZG9tX2V2ZW50X3RhcmdldF9hZGRfZXZlbnRfbGlzdGVuZXJf
d2l0aF9jbG9zdXJlKFdlYksKICAqIGluc3RlYWQgb2YgYSBjYWxsYmFja3MgZm9yIGVhc2llciBi
aW5kaW5nIGluIG90aGVyIGxhbmd1YWdlcy4KICAqCiAgKiBSZXR1cm5zOiBhICNnYm9vbGVhbgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
ICovCi1XRUJLSVRfQVBJIGdib29sZWFuIHdlYmtpdF9kb21fZXZlbnRfdGFyZ2V0X3JlbW92ZV9l
dmVudF9saXN0ZW5lcl93aXRoX2Nsb3N1cmUoV2ViS2l0RE9NRXZlbnRUYXJnZXQgKnRhcmdldCwK
K1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuIHdlYmtpdF9kb21fZXZlbnRfdGFyZ2V0X3JlbW92
ZV9ldmVudF9saXN0ZW5lcl93aXRoX2Nsb3N1cmUoV2ViS2l0RE9NRXZlbnRUYXJnZXQgKnRhcmdl
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICAgICAgICAgICAqZXZlbnRfbmFt
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBHQ2xvc3VyZSAgICAgICAgICAgICAqaGFuZGxlciwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgICAgICAgdXNlX2NhcHR1cmUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUZpbGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUZpbGUuY3BwCmluZGV4IDNkZGQxNzAw
YWM4Li5kNjM5Zjk1ZTViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUZpbGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01GaWxl
LmNwcApAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NRmlsZSoga2l0KFdlYkNvcmU6OkZpbGUqIG9i
aikKQEAgLTEwMiwzICsxMDQsNCBAQCBnY2hhciogd2Via2l0X2RvbV9maWxlX2dldF9uYW1lKFdl
YktpdERPTUZpbGUqIHNlbGYpCiAgICAgZ2NoYXIqIHJlc3VsdCA9IGNvbnZlcnRUb1VURjhTdHJp
bmcoaXRlbS0+bmFtZSgpKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQorR19HTlVDX0VORF9JR05P
UkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUZpbGUuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01GaWxlLmgKaW5k
ZXggMzIzOGI2YWM3ODguLjBjMDIzNTAyMTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRmlsZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01GaWxlLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01GaWxlQ2xhc3Mg
ewogICAgIFdlYktpdERPTUJsb2JDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJ
IEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9maWxlX2dldF90eXBl
KHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21fZmlsZV9nZXRfdHlw
ZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01GaWxlCiAgKgogICogUmV0dXJuczogQSAj
Z2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgog
d2Via2l0X2RvbV9maWxlX2dldF9uYW1lKFdlYktpdERPTUZpbGUqIHNlbGYpOwogCiBHX0VORF9E
RUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUZpbGVMaXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01GaWxlTGlzdC5jcHAKaW5k
ZXggMTUxOTJjOTcxZjAuLmRhNTQxNmM2MzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRmlsZUxpc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01GaWxlTGlzdC5jcHAKQEAgLTM4LDYgKzM4LDggQEAgdHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdERPTUZpbGVMaXN0UHJpdmF0ZSB7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkZpbGVMaXN0
PiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01GaWxlTGlzdFByaXZhdGU7CiAKK0dfR05VQ19CRUdJ
Tl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9N
RmlsZUxpc3QqIGtpdChXZWJDb3JlOjpGaWxlTGlzdCogb2JqKQpAQCAtMTUwLDMgKzE1Miw0IEBA
IGd1bG9uZyB3ZWJraXRfZG9tX2ZpbGVfbGlzdF9nZXRfbGVuZ3RoKFdlYktpdERPTUZpbGVMaXN0
KiBzZWxmKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJF
Q0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01GaWxlTGlzdC5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUZpbGVMaXN0LmgKaW5k
ZXggYmY1YzljMTRkMDAuLjBmYmM5NDhiMGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRmlsZUxpc3QuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NRmlsZUxpc3QuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUZp
bGVMaXN0Q2xhc3MgewogICAgIFdlYktpdERPTU9iamVjdENsYXNzIHBhcmVudF9jbGFzczsKIH07
CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9t
X2ZpbGVfbGlzdF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01NCw4ICs1NCwxMCBAQCB3ZWJr
aXRfZG9tX2ZpbGVfbGlzdF9nZXRfdHlwZSh2b2lkKTsKICAqIEBpbmRleDogQSAjZ3Vsb25nCiAg
KgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01GaWxlCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgV2ViS2l0RE9NRmlsZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUZpbGUq
CiB3ZWJraXRfZG9tX2ZpbGVfbGlzdF9pdGVtKFdlYktpdERPTUZpbGVMaXN0KiBzZWxmLCBndWxv
bmcgaW5kZXgpOwogCiAvKioKQEAgLTYzLDggKzY1LDEwIEBAIHdlYmtpdF9kb21fZmlsZV9saXN0
X2l0ZW0oV2ViS2l0RE9NRmlsZUxpc3QqIHNlbGYsIGd1bG9uZyBpbmRleCk7CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NRmlsZUxpc3QKICAqCiAgKiBSZXR1cm5zOiBBICNndWxvbmcKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Via2l0X2RvbV9maWxl
X2xpc3RfZ2V0X2xlbmd0aChXZWJLaXRET01GaWxlTGlzdCogc2VsZik7CiAKIEdfRU5EX0RFQ0xT
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxBbmNob3JF
bGVtZW50LmNwcAppbmRleCA4NWRjM2FkYWMxOC4uOGU1ZWRkYzA4ZTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50LmNwcApA
QCAtMzcsNiArMzcsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIGtpdChXZWJDb3JlOjpI
VE1MQW5jaG9yRWxlbWVudCogb2JqKQpAQCAtNzgxLDMgKzc4Myw0IEBAIHZvaWQgd2Via2l0X2Rv
bV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF9oYXNoKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50
KiBzZWxmLCBjCiAgICAgaXRlbS0+c2V0SGFzaChjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05V
Q19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQW5jaG9yRWxl
bWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50LmgKaW5kZXggNWQ3MTA4ZTlhZGIuLjg0Y2M3
NTg0MTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TEFuY2hvckVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxB
bmNob3JFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50
X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUK
IHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBA
IC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X3R5cGUo
dm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X2NoYXJzZXQoV2Vi
S2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBA
IHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfY2hhcnNldChXZWJLaXRET01IVE1M
QW5jaG9yRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVs
ZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF9j
aGFyc2V0KFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUpOwogCiAvKioKQEAgLTcxLDggKzc1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxl
bWVudF9zZXRfY2hhcnNldChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZiwgY29uCiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIq
CiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X2Nvb3JkcyhXZWJLaXRET01IVE1M
QW5jaG9yRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtODAsOCArODYsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF9jb29yZHMoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50CiAgKiBA
dmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9zZXRfY29vcmRzKFdlYktp
dERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioK
QEAgLTg5LDggKzk3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9zZXRfY29v
cmRzKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25zCiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9t
X2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X2hyZWZsYW5nKFdlYktpdERPTUhUTUxBbmNob3JFbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC05OCw4ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9odG1sX2Fu
Y2hvcl9lbGVtZW50X2dldF9ocmVmbGFuZyhXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqIEB2YWx1ZTog
QSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9p
ZAogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF9ocmVmbGFuZyhXZWJLaXRET01I
VE1MQW5jaG9yRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0x
MDcsOCArMTE5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9zZXRfaHJlZmxh
bmcoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGNvCiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0
bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNl
bGYpOwogCiAvKioKQEAgLTExNiw4ICsxMzAsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9l
bGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgog
ICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRf
ZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0X25hbWUoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTI1LDggKzE0MSwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0X25hbWUoV2ViS2l0RE9NSFRNTEFu
Y2hvckVsZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hv
ckVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFy
KgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1l
bnRfZ2V0X3JlbChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
MTM0LDggKzE1MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X3JlbChX
ZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTEFuY2hvckVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9l
bGVtZW50X3NldF9yZWwoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTQzLDggKzE2MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
YW5jaG9yX2VsZW1lbnRfc2V0X3JlbChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZiwg
Y29uc3QgZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNB
VEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF9yZXYoV2ViS2l0
RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE1Miw4ICsxNzQsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF9yZXYoV2ViS2l0RE9NSFRNTEFuY2hv
ckVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50
CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9zZXRfcmV2KFdl
YktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAv
KioKQEAgLTE2MSw4ICsxODUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3Nl
dF9yZXYoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGNvbnN0IGcKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFy
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtp
dF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfc2hhcGUoV2ViS2l0RE9NSFRNTEFuY2hvckVs
ZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE3MCw4ICsxOTYsMTAgQEAgd2Via2l0X2RvbV9odG1s
X2FuY2hvcl9lbGVtZW50X2dldF9zaGFwZShXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqIEB2YWx1ZTog
QSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9p
ZAogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF9zaGFwZShXZWJLaXRET01IVE1M
QW5jaG9yRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNzks
OCArMjA3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9zZXRfc2hhcGUoV2Vi
S2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxf
YW5jaG9yX2VsZW1lbnRfZ2V0X3RhcmdldChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtMTg4LDggKzIxOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2Vs
ZW1lbnRfZ2V0X3RhcmdldChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF90YXJnZXQoV2ViS2l0RE9NSFRNTEFuY2hvckVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTk3LDggKzIyOSwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0X3RhcmdldChXZWJLaXRET01I
VE1MQW5jaG9yRWxlbWVudCogc2VsZiwgY29ucwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxB
bmNob3JFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Y2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9l
bGVtZW50X2dldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTIwNiw4ICsyNDAsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50
X2dldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21faHRtbF9hbmNob3JfZWxlbWVudF9zZXRfdHlwZV9hdHRyKFdlYktpdERPTUhUTUxBbmNob3JF
bGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTIxNSw4ICsyNTEs
MTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF90eXBlX2F0dHIoV2ViS2l0
RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGMKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
QW5jaG9yRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hbmNob3Jf
ZWxlbWVudF9nZXRfdGV4dChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtMjI1LDggKzI2MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0
X3RleHQoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNn
Y2hhcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF90ZXh0KFdl
YktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAv
KioKQEAgLTIzNCw4ICsyNzQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3Nl
dF90ZXh0KFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0
X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF9ocmVmKFdlYktpdERPTUhUTUxBbmNob3JFbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNDMsOCArMjg1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9h
bmNob3JfZWxlbWVudF9nZXRfaHJlZihXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF9ocmVmKFdlYktpdERPTUhUTUxBbmNo
b3JFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTI1Miw4ICsy
OTYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF9ocmVmKFdlYktpdERP
TUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxBbmNob3JFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FuY2hv
cl9lbGVtZW50X2dldF9wcm90b2NvbChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtMjYxLDggKzMwNywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1l
bnRfZ2V0X3Byb3RvY29sKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgog
ICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRf
ZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0X3Byb3RvY29sKFdlYktpdERPTUhUTUxBbmNob3JF
bGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTI3MCw4ICszMTgs
MTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF9wcm90b2NvbChXZWJLaXRE
T01IVE1MQW5jaG9yRWxlbWVudCogc2VsZiwgY28KICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
QW5jaG9yRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hbmNob3Jf
ZWxlbWVudF9nZXRfaG9zdChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtMjc5LDggKzMyOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0
X2hvc3QoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxBbmNob3JFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9h
bmNob3JfZWxlbWVudF9zZXRfaG9zdChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0yODgsOCArMzQwLDEwIEBAIHdlYmtpdF9k
b21faHRtbF9hbmNob3JfZWxlbWVudF9zZXRfaG9zdChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVu
dCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudAog
ICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRf
REVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfaG9z
dG5hbWUoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTI5Nyw4
ICszNTEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF9ob3N0bmFtZShX
ZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTEFuY2hvckVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9l
bGVtZW50X3NldF9ob3N0bmFtZShXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZiwgY29u
c3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0zMDYsOCArMzYyLDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9hbmNob3JfZWxlbWVudF9zZXRfaG9zdG5hbWUoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1l
bnQqIHNlbGYsIGNvCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X3BvcnQo
V2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTMxNSw4ICszNzMs
MTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF9wb3J0KFdlYktpdERPTUhU
TUxBbmNob3JFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQW5jaG9y
RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0
X3BvcnQoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1
ZSk7CiAKIC8qKgpAQCAtMzI0LDggKzM4NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2Vs
ZW1lbnRfc2V0X3BvcnQoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGNvbnN0CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIq
CiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X3BhdGhuYW1lKFdlYktpdERPTUhU
TUxBbmNob3JFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0zMzMsOCArMzk1LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfcGF0aG5hbWUoV2ViS2l0RE9NSFRNTEFuY2hv
ckVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50
CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9zZXRfcGF0aG5h
bWUoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7
CiAKIC8qKgpAQCAtMzQyLDggKzQwNiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1l
bnRfc2V0X3BhdGhuYW1lKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjbwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAj
Z2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgog
d2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF9zZWFyY2goV2ViS2l0RE9NSFRNTEFu
Y2hvckVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTM1MSw4ICs0MTcsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF9zZWFyY2goV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50CiAgKiBA
dmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9zZXRfc2VhcmNoKFdlYktp
dERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioK
QEAgLTM2MCw4ICs0MjgsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF9z
ZWFyY2goV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGNvbnMKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9k
b21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfaGFzaChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtMzY5LDggKzQzOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5j
aG9yX2VsZW1lbnRfZ2V0X2hhc2goV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dj
aGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9zZXRfaGFzaChXZWJLaXRET01IVE1MQW5jaG9y
RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQu
Y3BwCmluZGV4IDlkNTliNGRiMzBjLi41YzE3ZThjYmE1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxB
cHBsZXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQuY3BwCkBAIC0zNiw2
ICszNiw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxBcHBs
ZXRFbGVtZW50KiBvYmopCkBAIC01MjQsMyArNTI2LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxf
YXBwbGV0X2VsZW1lbnRfc2V0X3dpZHRoKFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxm
LAogICAgIGl0ZW0tPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6
SFRNTE5hbWVzOjp3aWR0aEF0dHIsIGNvbnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9J
R05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTEFwcGxldEVsZW1lbnQuaAppbmRleCA0ZDkwMTQ1NzNhMS4uYmNlMDlhY2JiMTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQXBwbGV0
RWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTEFwcGxldEVs
ZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7
CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0
X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDgg
KzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRN
TEFwcGxldEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9k
b21faHRtbF9hcHBsZXRfZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKiBA
dmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0
RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpA
QCAtNzEsOCArNzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X3NldF9hbGln
bihXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21f
aHRtbF9hcHBsZXRfZWxlbWVudF9nZXRfYWx0KFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2Vs
ZW1lbnRfZ2V0X2FsdChXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX2FwcGxldF9lbGVtZW50X3NldF9hbHQoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQq
IHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtODksOCArOTcsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X3NldF9hbHQoV2ViS2l0RE9NSFRNTEFwcGxldEVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGcKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXBwbGV0RWxl
bWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitX
RUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9n
ZXRfYXJjaGl2ZShXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
OTgsOCArMTA4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9nZXRfYXJjaGl2
ZShXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTEFwcGxldEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FwcGxl
dF9lbGVtZW50X3NldF9hcmNoaXZlKFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmLCBj
b25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2FwcGxldF9lbGVtZW50X3NldF9hcmNoaXZlKFdlYktpdERPTUhUTUxBcHBsZXRFbGVt
ZW50KiBzZWxmLCBjb24KICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudAog
ICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRf
REVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9nZXRfY29k
ZShXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTE2LDggKzEz
MCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRfZ2V0X2NvZGUoV2ViS2l0RE9N
SFRNTEFwcGxldEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcHBs
ZXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9z
ZXRfY29kZShXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlKTsKIAogLyoqCkBAIC0xMjUsOCArMTQxLDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcHBsZXRf
ZWxlbWVudF9zZXRfY29kZShXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZiwgY29uc3QK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9nZXRfY29kZV9iYXNlKFdlYktpdERP
TUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMzQsOCArMTUyLDEwIEBAIHdl
YmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9nZXRfY29kZV9iYXNlKFdlYktpdERPTUhUTUxB
cHBsZXRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXBwbGV0RWxl
bWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRfc2V0X2Nv
ZGVfYmFzZShXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlKTsKIAogLyoqCkBAIC0xNDMsOCArMTYzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcHBsZXRf
ZWxlbWVudF9zZXRfY29kZV9iYXNlKFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmLCBj
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2No
YXIqCiB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRfZ2V0X2hlaWdodChXZWJLaXRET01I
VE1MQXBwbGV0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTUyLDggKzE3NCwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRfZ2V0X2hlaWdodChXZWJLaXRET01IVE1MQXBwbGV0
RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X3NldF9oZWlnaHQo
V2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAK
IC8qKgpAQCAtMTYxLDggKzE4NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRf
c2V0X2hlaWdodChXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZiwgY29ucwogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xv
bmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtp
dF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9nZXRfaHNwYWNlKFdlYktpdERPTUhUTUxBcHBsZXRF
bGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNzAsOCArMTk2LDEwIEBAIHdlYmtpdF9kb21faHRt
bF9hcHBsZXRfZWxlbWVudF9nZXRfaHNwYWNlKFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBz
ZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudAogICogQHZhbHVl
OiBBICNnbG9uZwogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2
b2lkCiB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRfc2V0X2hzcGFjZShXZWJLaXRET01I
VE1MQXBwbGV0RWxlbWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioKQEAgLTE3OSw4ICsy
MDcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X3NldF9oc3BhY2UoV2ViS2l0
RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYsIGdsb24KICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MQXBwbGV0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hcHBs
ZXRfZWxlbWVudF9nZXRfbmFtZShXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtMTg4LDggKzIxOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRf
Z2V0X25hbWUoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRt
bF9hcHBsZXRfZWxlbWVudF9zZXRfbmFtZShXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xOTcsOCArMjI5LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9zZXRfbmFtZShXZWJLaXRET01IVE1MQXBwbGV0RWxl
bWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9nZXRf
b2JqZWN0KFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMDYs
OCArMjQwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9nZXRfb2JqZWN0KFdl
YktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MQXBwbGV0RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2Vs
ZW1lbnRfc2V0X29iamVjdChXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZiwgY29uc3Qg
Z2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0yMTUsOCArMjUxLDEwIEBAIHdlYmtpdF9kb21faHRt
bF9hcHBsZXRfZWxlbWVudF9zZXRfb2JqZWN0KFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBz
ZWxmLCBjb25zCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQKICAqCiAg
KiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVD
QVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dldF92c3BhY2UoV2Vi
S2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTIyNCw4ICsyNjIsMTAg
QEAgd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dldF92c3BhY2UoV2ViS2l0RE9NSFRN
TEFwcGxldEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcHBsZXRF
bGVtZW50CiAgKiBAdmFsdWU6IEEgI2dsb25nCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9zZXRf
dnNwYWNlKFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAK
IC8qKgpAQCAtMjMzLDggKzI3MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRf
c2V0X3ZzcGFjZShXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZiwgZ2xvbgogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2No
YXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Vi
a2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dldF93aWR0aChXZWJLaXRET01IVE1MQXBwbGV0
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjQyLDggKzI4NCwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfYXBwbGV0X2VsZW1lbnRfZ2V0X3dpZHRoKFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBz
ZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudAogICogQHZhbHVl
OiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2
b2lkCiB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRfc2V0X3dpZHRoKFdlYktpdERPTUhU
TUxBcHBsZXRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNM
UwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxBcmVhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEFyZWFFbGVt
ZW50LmNwcAppbmRleCAyM2FkYjI0YjIyYy4uOGUwOWU3MDlmOWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MQXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQXJlYUVsZW1lbnQuY3BwCkBAIC0zNyw2
ICszNyw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MQXJlYUVs
ZW1lbnQqIG9iaikKQEAgLTU5OSwzICs2MDEsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9hcmVh
X2VsZW1lbnRfc2V0X2hhc2goV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdAog
ICAgIGl0ZW0tPnNldEhhc2goY29udmVydGVkVmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9S
RV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTEFyZWFFbGVtZW50LmgKaW5kZXggOGUyNDVmODMzMDMuLjMwOWM3M2NlNmRjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxBcmVhRWxlbWVudC5oCkBA
IC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50Q2xhc3Mgewog
ICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lU
X0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF9hcmVh
X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2FyZWFfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MQXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxf
YXJlYV9lbGVtZW50X2dldF9hbHQoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dldF9h
bHQoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MQXJlYUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxl
bWVudF9zZXRfYWx0KFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IHZhbHVlKTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9l
bGVtZW50X3NldF9hbHQoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hh
cgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcmVhRWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfZ2V0X2Nvb3JkcyhXZWJLaXRET01IVE1M
QXJlYUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2LDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9hcmVhX2VsZW1lbnRfZ2V0X2Nvb3JkcyhXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNl
bGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcmVhRWxlbWVudAogICogQHZhbHVlOiBB
ICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X3NldF9jb29yZHMoV2ViS2l0RE9NSFRNTEFy
ZWFFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTg5LDggKzk3
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfc2V0X2Nvb3JkcyhXZWJLaXRET01I
VE1MQXJlYUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TEFyZWFFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9h
cmVhX2VsZW1lbnRfZ2V0X25vX2hyZWYoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmKTsK
IAogLyoqCkBAIC05OCw4ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9n
ZXRfbm9faHJlZihXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxBcmVhRWxlbWVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0
bWxfYXJlYV9lbGVtZW50X3NldF9ub19ocmVmKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2Vs
ZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2FyZWFfZWxlbWVudF9zZXRfbm9faHJlZihXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQq
IHNlbGYsIGdib29sZWEKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dldF9zaGFwZShX
ZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTExNiw4ICsxMzAsMTAg
QEAgd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9nZXRfc2hhcGUoV2ViS2l0RE9NSFRNTEFy
ZWFFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9zZXRfc2hhcGUoV2Vi
S2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioK
QEAgLTEyNSw4ICsxNDEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9zZXRfc2hh
cGUoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdCBnY2gKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9t
X2h0bWxfYXJlYV9lbGVtZW50X2dldF90YXJnZXQoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC0xMzQsOCArMTUyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcmVhX2Vs
ZW1lbnRfZ2V0X3RhcmdldChXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxBcmVhRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfYXJlYV9lbGVtZW50X3NldF90YXJnZXQoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBz
ZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE0Myw4ICsxNjMsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9zZXRfdGFyZ2V0KFdlYktpdERPTUhUTUxBcmVhRWxl
bWVudCogc2VsZiwgY29uc3QgZ2MKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXJlYUVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dldF9o
cmVmKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTUyLDggKzE3
NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dldF9ocmVmKFdlYktpdERPTUhU
TUxBcmVhRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFyZWFFbGVt
ZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfc2V0X2hyZWYo
V2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAv
KioKQEAgLTE2MSw4ICsxODUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9zZXRf
aHJlZihXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGEKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRf
ZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dldF9wcm90b2NvbChXZWJLaXRET01IVE1MQXJlYUVsZW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTE3MSw4ICsxOTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2Fy
ZWFfZWxlbWVudF9nZXRfcHJvdG9jb2woV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmKTsK
ICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1l
bnRfc2V0X3Byb3RvY29sKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZiwgY29uc3QgZ2No
YXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xODAsOCArMjA4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9h
cmVhX2VsZW1lbnRfc2V0X3Byb3RvY29sKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZiwg
Y29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1
cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQg
Z2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dldF9ob3N0KFdlYktpdERPTUhU
TUxBcmVhRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTkwLDggKzIyMCwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dldF9ob3N0KFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCog
c2VsZik7CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYXJl
YV9lbGVtZW50X3NldF9ob3N0KFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZiwgY29uc3Qg
Z2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xOTksOCArMjMxLDEwIEBAIHdlYmtpdF9kb21faHRt
bF9hcmVhX2VsZW1lbnRfc2V0X2hvc3QoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmLCBj
b25zdCBnY2hhCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNB
VEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9nZXRfaG9zdG5hbWUoV2Vi
S2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMDksOCArMjQzLDEwIEBA
IHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfZ2V0X2hvc3RuYW1lKFdlYktpdERPTUhUTUxB
cmVhRWxlbWVudCogc2VsZik7CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIu
MTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRf
ZG9tX2h0bWxfYXJlYV9lbGVtZW50X3NldF9ob3N0bmFtZShXZWJLaXRET01IVE1MQXJlYUVsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjE4LDggKzI1NCwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X3NldF9ob3N0bmFtZShXZWJLaXRET01IVE1M
QXJlYUVsZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFyZWFF
bGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioK
K1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9n
ZXRfcG9ydChXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTIyOCw4
ICsyNjYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9nZXRfcG9ydChXZWJLaXRE
T01IVE1MQXJlYUVsZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNnY2hhcgogICoKICAqIFNp
bmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9zZXRfcG9ydChXZWJLaXRET01IVE1MQXJlYUVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjM3LDggKzI3Nywx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X3NldF9wb3J0KFdlYktpdERPTUhUTUxB
cmVhRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxB
cmVhRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2No
YXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1l
bnRfZ2V0X3BhdGhuYW1lKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZik7CiAKIC8qKgpA
QCAtMjQ3LDggKzI4OSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dldF9wYXRo
bmFtZShXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNnY2hh
cgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9zZXRfcGF0aG5hbWUoV2Vi
S2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioK
QEAgLTI1Niw4ICszMDAsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9zZXRfcGF0
aG5hbWUoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxBcmVhRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21f
aHRtbF9hcmVhX2VsZW1lbnRfZ2V0X3NlYXJjaChXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNl
bGYpOwogCiAvKioKQEAgLTI2Niw4ICszMTIsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FyZWFfZWxl
bWVudF9nZXRfc2VhcmNoKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZik7CiAgKiBAdmFs
dWU6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X3NldF9z
ZWFyY2goV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
OwogCiAvKioKQEAgLTI3NSw4ICszMjMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVu
dF9zZXRfc2VhcmNoKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZiwgY29uc3QgZ2MKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
Y2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3
ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dldF9oYXNoKFdlYktpdERPTUhUTUxBcmVhRWxl
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjg1LDggKzMzNSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
YXJlYV9lbGVtZW50X2dldF9oYXNoKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZik7CiAg
KiBAdmFsdWU6IEEgI2djaGFyCiAgKgogICogU3RhYmlsaXR5OiBVbnN0YWJsZQorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hcmVh
X2VsZW1lbnRfc2V0X2hhc2goV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdCBn
Y2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCUkVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxCUkVsZW1lbnQuY3BwCmluZGV4IGI2MTY5NzIyMDQyLi42ZTMyN2Fm
ZTgwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCUkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQlJF
bGVtZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05T
OworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTEJSRWxlbWVudCoga2l0KFdl
YkNvcmU6OkhUTUxCUkVsZW1lbnQqIG9iaikKQEAgLTE2NywzICsxNjksNCBAQCB2b2lkIHdlYmtp
dF9kb21faHRtbF9icl9lbGVtZW50X3NldF9jbGVhcihXZWJLaXRET01IVE1MQlJFbGVtZW50KiBz
ZWxmLCBjb25zdCBnYwogICAgIGl0ZW0tPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24oV2ViQ29yZTo6SFRNTE5hbWVzOjpjbGVhckF0dHIsIGNvbnZlcnRlZFZhbHVlKTsKIH0KIAor
R19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCUkVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MQlJFbGVtZW50LmgKaW5kZXggNDc3NzFhYzhjZTcuLjI1NDAyNzc1
MzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJSRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQlJFbGVt
ZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MQlJFbGVtZW50Q2xh
c3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAot
V0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRt
bF9icl9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdl
YmtpdF9kb21faHRtbF9icl9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxCUkVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxf
YnJfZWxlbWVudF9nZXRfY2xlYXIoV2ViS2l0RE9NSFRNTEJSRWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2JyX2VsZW1lbnRfZ2V0X2NsZWFy
KFdlYktpdERPTUhUTUxCUkVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxCUkVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2JyX2VsZW1lbnRfc2V0
X2NsZWFyKFdlYktpdERPTUhUTUxCUkVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7
CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJhc2VFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MQmFzZUVsZW1lbnQuY3BwCmluZGV4IDk0MzZjOTU1OTNiLi45ZDEwZTJjYzJhYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxCYXNlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCYXNlRWxlbWVu
dC5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxCYXNlRWxlbWVudCoga2l0KFdlYkNv
cmU6OkhUTUxCYXNlRWxlbWVudCogb2JqKQpAQCAtMjA0LDMgKzIwNiw0IEBAIHZvaWQgd2Via2l0
X2RvbV9odG1sX2Jhc2VfZWxlbWVudF9zZXRfdGFyZ2V0KFdlYktpdERPTUhUTUxCYXNlRWxlbWVu
dCogc2VsZiwgY29uCiAgICAgaXRlbS0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlv
bihXZWJDb3JlOjpIVE1MTmFtZXM6OnRhcmdldEF0dHIsIGNvbnZlcnRlZFZhbHVlKTsKIH0KIAor
R19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCYXNl
RWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxCYXNlRWxlbWVudC5oCmluZGV4IGVmMjI0MmI2Y2ZlLi40OGYx
NTBiY2RlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCYXNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
QmFzZUVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxCYXNl
RWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFz
czsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJr
aXRfZG9tX2h0bWxfYmFzZV9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDgg
KzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9iYXNlX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEJhc2VFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAj
Z2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgog
d2Via2l0X2RvbV9odG1sX2Jhc2VfZWxlbWVudF9nZXRfaHJlZihXZWJLaXRET01IVE1MQmFzZUVs
ZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9i
YXNlX2VsZW1lbnRfZ2V0X2hyZWYoV2ViS2l0RE9NSFRNTEJhc2VFbGVtZW50KiBzZWxmKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MQmFzZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9odG1sX2Jhc2VfZWxlbWVudF9zZXRfaHJlZihXZWJLaXRET01IVE1MQmFzZUVsZW1lbnQq
IHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX2Jhc2VfZWxlbWVudF9zZXRfaHJlZihXZWJLaXRET01IVE1MQmFzZUVsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGEKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQmFzZUVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYmFzZV9lbGVtZW50X2dldF90
YXJnZXQoV2ViS2l0RE9NSFRNTEJhc2VFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4
NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYmFzZV9lbGVtZW50X2dldF90YXJnZXQoV2ViS2l0RE9N
SFRNTEJhc2VFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQmFzZUVs
ZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2Jhc2VfZWxlbWVudF9zZXRfdGFy
Z2V0KFdlYktpdERPTUhUTUxCYXNlRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsK
IAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQm9keUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxCb2R5RWxlbWVudC5jcHAKaW5kZXggZWM1OGM1MTkzYTIuLjFiMjcwZDU4NmQ5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50
LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50KiBraXQoV2ViQ29y
ZTo6SFRNTEJvZHlFbGVtZW50KiBvYmopCkBAIC0zNDgsMyArMzUwLDQgQEAgdm9pZCB3ZWJraXRf
ZG9tX2h0bWxfYm9keV9lbGVtZW50X3NldF92X2xpbmsoV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50
KiBzZWxmLCBjb24KICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9u
KFdlYkNvcmU6OkhUTUxOYW1lczo6dmxpbmtBdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0df
R05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQm9keUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MQm9keUVsZW1lbnQuaAppbmRleCA1NzBlYmJhZjVkNi4uMTlmMTUy
MGY0MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQm9keUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJv
ZHlFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MQm9keUVs
ZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7
CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0
X2RvbV9odG1sX2JvZHlfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1
MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxCb2R5RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dj
aGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdl
YmtpdF9kb21faHRtbF9ib2R5X2VsZW1lbnRfZ2V0X2FfbGluayhXZWJLaXRET01IVE1MQm9keUVs
ZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9i
b2R5X2VsZW1lbnRfZ2V0X2FfbGluayhXZWJLaXRET01IVE1MQm9keUVsZW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxCb2R5RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hh
cgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJr
aXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X3NldF9hX2xpbmsoV2ViS2l0RE9NSFRNTEJvZHlFbGVt
ZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTcxLDggKzc1LDEwIEBA
IHdlYmtpdF9kb21faHRtbF9ib2R5X2VsZW1lbnRfc2V0X2FfbGluayhXZWJLaXRET01IVE1MQm9k
eUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEJvZHlF
bGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioK
K1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2JvZHlfZWxlbWVudF9n
ZXRfYmFja2dyb3VuZChXZWJLaXRET01IVE1MQm9keUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTgwLDggKzg2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9ib2R5X2VsZW1lbnRfZ2V0X2JhY2tncm91
bmQoV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MQm9keUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2JvZHlfZWxl
bWVudF9zZXRfYmFja2dyb3VuZChXZWJLaXRET01IVE1MQm9keUVsZW1lbnQqIHNlbGYsIGNvbnN0
IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtODksOCArOTcsMTAgQEAgd2Via2l0X2RvbV9odG1s
X2JvZHlfZWxlbWVudF9zZXRfYmFja2dyb3VuZChXZWJLaXRET01IVE1MQm9keUVsZW1lbnQqIHNl
bGYsIGNvbnMKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQm9keUVsZW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X2dldF9iZ19jb2xvcihXZWJL
aXRET01IVE1MQm9keUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTk4LDggKzEwOCwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X2dldF9iZ19jb2xvcihXZWJLaXRET01IVE1MQm9k
eUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxCb2R5RWxlbWVudAog
ICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X3NldF9iZ19jb2xvcihX
ZWJLaXRET01IVE1MQm9keUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8q
KgpAQCAtMTA3LDggKzExOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X3NldF9i
Z19jb2xvcihXZWJLaXRET01IVE1MQm9keUVsZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2Rv
bV9odG1sX2JvZHlfZWxlbWVudF9nZXRfbGluayhXZWJLaXRET01IVE1MQm9keUVsZW1lbnQqIHNl
bGYpOwogCiAvKioKQEAgLTExNiw4ICsxMzAsMTAgQEAgd2Via2l0X2RvbV9odG1sX2JvZHlfZWxl
bWVudF9nZXRfbGluayhXZWJLaXRET01IVE1MQm9keUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxCb2R5RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0
bWxfYm9keV9lbGVtZW50X3NldF9saW5rKFdlYktpdERPTUhUTUxCb2R5RWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMjUsOCArMTQxLDEwIEBAIHdlYmtpdF9k
b21faHRtbF9ib2R5X2VsZW1lbnRfc2V0X2xpbmsoV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50KiBz
ZWxmLCBjb25zdCBnY2hhCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50CiAg
KgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9E
RVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2JvZHlfZWxlbWVudF9nZXRfdGV4dChX
ZWJLaXRET01IVE1MQm9keUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEzNCw4ICsxNTIsMTAg
QEAgd2Via2l0X2RvbV9odG1sX2JvZHlfZWxlbWVudF9nZXRfdGV4dChXZWJLaXRET01IVE1MQm9k
eUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxCb2R5RWxlbWVudAog
ICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X3NldF90ZXh0KFdlYktp
dERPTUhUTUxCb2R5RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBA
IC0xNDMsOCArMTYzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9ib2R5X2VsZW1lbnRfc2V0X3RleHQo
V2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhCiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9o
dG1sX2JvZHlfZWxlbWVudF9nZXRfdl9saW5rKFdlYktpdERPTUhUTUxCb2R5RWxlbWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtMTUyLDggKzE3NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVt
ZW50X2dldF92X2xpbmsoV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MQm9keUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9o
dG1sX2JvZHlfZWxlbWVudF9zZXRfdl9saW5rKFdlYktpdERPTUhUTUxCb2R5RWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MQnV0dG9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCmluZGV4IDNm
ZmVmNmI4NjBiLi42MTY4MzFiMWQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCdXR0b25FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCkBAIC0zOCw2ICszOCw4IEBACiAj
aW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVD
X0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJL
aXRET01IVE1MQnV0dG9uRWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxCdXR0b25FbGVtZW50KiBv
YmopCkBAIC0zNTQsMyArMzU2LDQgQEAgZ2Jvb2xlYW4gd2Via2l0X2RvbV9odG1sX2J1dHRvbl9l
bGVtZW50X2dldF93aWxsX3ZhbGlkYXRlKFdlYktpdERPTUhUTUxCdXR0b25FbGUKICAgICBnYm9v
bGVhbiByZXN1bHQgPSBpdGVtLT53aWxsVmFsaWRhdGUoKTsKICAgICByZXR1cm4gcmVzdWx0Owog
fQorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxC
dXR0b25FbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQuaAppbmRleCA5NTA0MTI0Mjky
ZS4uYTdhMjY5MGNmNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MQnV0dG9uRWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0
RE9NSFRNTEJ1dHRvbkVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFz
cyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRF
RCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2J1dHRvbl9lbGVtZW50X2dldF90eXBlKHZvaWQpOwog
CiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9idXR0b25fZWxlbWVudF9n
ZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudAog
ICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dF
QktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRf
Z2V0X2F1dG9mb2N1cyhXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudCogc2VsZik7CiAKIC8qKgpA
QCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2J1dHRvbl9lbGVtZW50X2dldF9hdXRv
Zm9jdXMoV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxCdXR0b25FbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRt
bF9idXR0b25fZWxlbWVudF9zZXRfYXV0b2ZvY3VzKFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50
KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2J1dHRvbl9lbGVtZW50X3NldF9hdXRvZm9jdXMoV2ViS2l0RE9NSFRNTEJ1dHRv
bkVsZW1lbnQqIHNlbGYsIGcKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4K
K1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1l
bnRfZ2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfZ2V0X2Rp
c2FibGVkKFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0
bWxfYnV0dG9uX2VsZW1lbnRfc2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50
KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIC8qKgpAQCAtODksOCArOTcsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2J1dHRvbl9lbGVtZW50X3NldF9kaXNhYmxlZChXZWJLaXRET01IVE1MQnV0dG9u
RWxlbWVudCogc2VsZiwgZ2IKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVu
dAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NSFRNTEZvcm1F
bGVtZW50CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KgorV0VCS0lU
X0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50Kgogd2Via2l0X2RvbV9odG1sX2J1
dHRvbl9lbGVtZW50X2dldF9mb3JtKFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50KiBzZWxmKTsK
IAogLyoqCkBAIC05OCw4ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9odG1sX2J1dHRvbl9lbGVtZW50
X2dldF9mb3JtKFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9k
b21faHRtbF9idXR0b25fZWxlbWVudF9nZXRfYnV0dG9uX3R5cGUoV2ViS2l0RE9NSFRNTEJ1dHRv
bkVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2J1dHRvbl9lbGVtZW50X2dldF9idXR0b25fdHlwZShXZWJLaXRET01IVE1MQnV0dG9uRWxl
bWVudCogc2VsZikKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudAogICog
QHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfc2V0X2J1dHRvbl90eXBl
KFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwog
CiAvKioKQEAgLTExNiw4ICsxMzAsMTAgQEAgd2Via2l0X2RvbV9odG1sX2J1dHRvbl9lbGVtZW50
X3NldF9idXR0b25fdHlwZShXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudCogc2VsZiwKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dj
aGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdl
YmtpdF9kb21faHRtbF9idXR0b25fZWxlbWVudF9nZXRfbmFtZShXZWJLaXRET01IVE1MQnV0dG9u
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTI1LDggKzE0MSwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfYnV0dG9uX2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQqIHNl
bGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxCdXR0b25FbGVtZW50CiAgKiBAdmFsdWU6
IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZv
aWQKIHdlYmtpdF9kb21faHRtbF9idXR0b25fZWxlbWVudF9zZXRfbmFtZShXZWJLaXRET01IVE1M
QnV0dG9uRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMzQs
OCArMTUyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9idXR0b25fZWxlbWVudF9zZXRfbmFtZShXZWJL
aXRET01IVE1MQnV0dG9uRWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MQnV0dG9uRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9i
dXR0b25fZWxlbWVudF9nZXRfdmFsdWUoV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTE0Myw4ICsxNjMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2J1dHRvbl9lbGVt
ZW50X2dldF92YWx1ZShXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX2J1dHRvbl9lbGVtZW50X3NldF92YWx1ZShXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVu
dCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNTIsOCArMTc0LDEwIEBA
IHdlYmtpdF9kb21faHRtbF9idXR0b25fZWxlbWVudF9zZXRfdmFsdWUoV2ViS2l0RE9NSFRNTEJ1
dHRvbkVsZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEJ1dHRv
bkVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdi
b29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX2J1dHRv
bl9lbGVtZW50X2dldF93aWxsX3ZhbGlkYXRlKFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50KiBz
ZWxmKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQ2FudmFzRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTENhbnZhc0VsZW1lbnQuY3BwCmluZGV4IDgzMjFjNTY5MGZlLi5mMzNiYWJl
NzgzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TENhbnZhc0VsZW1lbnQuY3BwCkBAIC0zNSw2ICszNSw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBS
RUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MQ2FudmFzRWxl
bWVudCoga2l0KFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50KiBvYmopCkBAIC0xOTksMyArMjAx
LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfY2FudmFzX2VsZW1lbnRfc2V0X2hlaWdodChXZWJL
aXRET01IVE1MQ2FudmFzRWxlbWVudCogc2VsZiwKICAgICBpdGVtLT5zZXRIZWlnaHQodmFsdWUp
OwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTENhbnZhc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQ2FudmFzRWxlbWVudC5oCmluZGV4IDQ2ZjM5
N2Y0Y2FmLi42MGQ1NjcyOTNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxDYW52YXNFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxDYW52YXNFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9X
ZWJLaXRET01IVE1MQ2FudmFzRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVu
dENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBS
RUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfY2FudmFzX2VsZW1lbnRfZ2V0X3R5cGUodm9p
ZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2NhbnZhc19lbGVt
ZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxDYW52YXNFbGVt
ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VC
S0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF9jYW52YXNfZWxlbWVudF9nZXRf
d2lkdGgoV2ViS2l0RE9NSFRNTENhbnZhc0VsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDgg
KzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9jYW52YXNfZWxlbWVudF9nZXRfd2lkdGgoV2ViS2l0
RE9NSFRNTENhbnZhc0VsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxD
YW52YXNFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dsb25nCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9jYW52YXNfZWxlbWVu
dF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRNTENhbnZhc0VsZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVl
KTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfY2FudmFzX2VsZW1l
bnRfc2V0X3dpZHRoKFdlYktpdERPTUhUTUxDYW52YXNFbGVtZW50KiBzZWxmLCBnbG9uZwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxDYW52YXNFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAj
Z2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdl
YmtpdF9kb21faHRtbF9jYW52YXNfZWxlbWVudF9nZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxDYW52
YXNFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfY2FudmFzX2VsZW1lbnRfZ2V0X2hlaWdodChXZWJLaXRET01IVE1MQ2FudmFzRWxlbWVudCog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTENhbnZhc0VsZW1lbnQKICAqIEB2YWx1
ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX2NhbnZhc19lbGVtZW50X3NldF9oZWlnaHQoV2ViS2l0RE9N
SFRNTENhbnZhc0VsZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MQ29sbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24uY3Bw
CmluZGV4IDcwMjYyODRmODAzLi4yNTU4NWFiNzY4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxDb2xs
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24uY3BwCkBAIC0zOCw2ICszOCw4IEBA
IHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01IVE1MQ29sbGVjdGlvblByaXZhdGUgewogICAgIFJl
ZlB0cjxXZWJDb3JlOjpIVE1MQ29sbGVjdGlvbj4gY29yZU9iamVjdDsKIH0gV2ViS2l0RE9NSFRN
TENvbGxlY3Rpb25Qcml2YXRlOwogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsK
KwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKiBraXQoV2Vi
Q29yZTo6SFRNTENvbGxlY3Rpb24qIG9iaikKQEAgLTE2MSwzICsxNjMsNCBAQCBndWxvbmcgd2Vi
a2l0X2RvbV9odG1sX2NvbGxlY3Rpb25fZ2V0X2xlbmd0aChXZWJLaXRET01IVE1MQ29sbGVjdGlv
biogc2VsZikKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBS
RUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24uaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQ29s
bGVjdGlvbi5oCmluZGV4IDJjNGEwNjRmM2QzLi4yYzNiMTUyODEzMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxDb2xsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxDb2xsZWN0aW9uLmgKQEAgLTQ1LDcgKzQ1
LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MQ29sbGVjdGlvbkNsYXNzIHsKICAgICBXZWJLaXRE
T01PYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJL
SVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2NvbGxlY3Rpb25fZ2V0X3R5cGUo
dm9pZCk7CiAKIC8qKgpAQCAtNTQsOCArNTQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2NvbGxlY3Rp
b25fZ2V0X3R5cGUodm9pZCk7CiAgKiBAaW5kZXg6IEEgI2d1bG9uZwogICoKICAqIFJldHVybnM6
ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktp
dERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9o
dG1sX2NvbGxlY3Rpb25faXRlbShXZWJLaXRET01IVE1MQ29sbGVjdGlvbiogc2VsZiwgZ3Vsb25n
IGluZGV4KTsKIAogLyoqCkBAIC02NCw4ICs2NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfY29sbGVj
dGlvbl9pdGVtKFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKiBzZWxmLCBndWxvbmcgaW5kZXgpOwog
ICogQG5hbWU6IEEgI2djaGFyCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNX
ZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBS
RUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX2h0bWxfY29sbGVjdGlvbl9uYW1lZF9p
dGVtKFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKiBzZWxmLCBjb25zdCBnY2hhciogbmFtZSk7CiAK
IC8qKgpAQCAtNzMsOCArNzcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2NvbGxlY3Rpb25fbmFtZWRf
aXRlbShXZWJLaXRET01IVE1MQ29sbGVjdGlvbiogc2VsZiwgY29uc3QgZ2NoYXIKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MQ29sbGVjdGlvbgogICoKICAqIFJldHVybnM6IEEgI2d1bG9uZwor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGd1bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vsb25nCiB3ZWJraXRf
ZG9tX2h0bWxfY29sbGVjdGlvbl9nZXRfbGVuZ3RoKFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKiBz
ZWxmKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRExpc3RFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MRExpc3RFbGVtZW50LmNwcAppbmRleCBmMTEyZmM2OTY0ZS4uNjRiYmU5MmIx
ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRExpc3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTERM
aXN0RWxlbWVudC5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FU
SU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxETGlzdEVsZW1lbnQq
IGtpdChXZWJDb3JlOjpIVE1MRExpc3RFbGVtZW50KiBvYmopCkBAIC0xNjYsMyArMTY4LDQgQEAg
dm9pZCB3ZWJraXRfZG9tX2h0bWxfZF9saXN0X2VsZW1lbnRfc2V0X2NvbXBhY3QoV2ViS2l0RE9N
SFRNTERMaXN0RWxlbWVudCogc2VsZiwKICAgICBpdGVtLT5zZXRCb29sZWFuQXR0cmlidXRlKFdl
YkNvcmU6OkhUTUxOYW1lczo6Y29tcGFjdEF0dHIsIHZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9J
R05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxETGlzdEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MRExpc3RFbGVtZW50LmgKaW5kZXggYTZhZTcwODliNGQuLjI4MDE3OTJiOTljIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTERMaXN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRExpc3RFbGVt
ZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MRExpc3RFbGVtZW50
Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsK
IAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21f
aHRtbF9kX2xpc3RfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1Mywx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfZF9saXN0X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTERMaXN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2di
b29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29s
ZWFuCiB3ZWJraXRfZG9tX2h0bWxfZF9saXN0X2VsZW1lbnRfZ2V0X2NvbXBhY3QoV2ViS2l0RE9N
SFRNTERMaXN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2RfbGlzdF9lbGVtZW50X2dldF9jb21wYWN0KFdlYktpdERPTUhUTUxETGlzdEVs
ZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxETGlzdEVsZW1lbnQKICAq
IEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2RfbGlzdF9lbGVtZW50X3NldF9jb21wYWN0
KFdlYktpdERPTUhUTUxETGlzdEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogR19F
TkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRGlyZWN0b3J5RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTERpcmVjdG9yeUVsZW1lbnQuY3BwCmluZGV4IDFmMmE5YjA1ZGJiLi4zMTFmMWYwNmYxMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxEaXJlY3RvcnlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTERp
cmVjdG9yeUVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBS
RUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MRGlyZWN0b3J5
RWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxEaXJlY3RvcnlFbGVtZW50KiBvYmopCkBAIC0xNjYs
MyArMTY4LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfZGlyZWN0b3J5X2VsZW1lbnRfc2V0X2Nv
bXBhY3QoV2ViS2l0RE9NSFRNTERpcmVjdG9yeUVsZW1lbnQKICAgICBpdGVtLT5zZXRCb29sZWFu
QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6Y29tcGFjdEF0dHIsIHZhbHVlKTsKIH0KIAor
R19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxEaXJl
Y3RvcnlFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTERpcmVjdG9yeUVsZW1lbnQuaAppbmRleCA3NmFkNjdm
ZDc3ZS4uOTk3YmUyNDY0OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRGlyZWN0b3J5RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MRGlyZWN0b3J5RWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVj
dCBfV2ViS2l0RE9NSFRNTERpcmVjdG9yeUVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRN
TEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJL
SVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2RpcmVjdG9yeV9lbGVtZW50X2dl
dF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9k
aXJlY3RvcnlfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MRGlyZWN0b3J5RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9t
X2h0bWxfZGlyZWN0b3J5X2VsZW1lbnRfZ2V0X2NvbXBhY3QoV2ViS2l0RE9NSFRNTERpcmVjdG9y
eUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRt
bF9kaXJlY3RvcnlfZWxlbWVudF9nZXRfY29tcGFjdChXZWJLaXRET01IVE1MRGlyZWN0b3J5RWxl
bWVudCogc2VsCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTERpcmVjdG9yeUVsZW1lbnQKICAq
IEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2RpcmVjdG9yeV9lbGVtZW50X3NldF9jb21w
YWN0KFdlYktpdERPTUhUTUxEaXJlY3RvcnlFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7
CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTERpdkVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxEaXZFbGVtZW50LmNwcAppbmRleCAxM2NjY2NlNzg4NS4uNWYwNjQxNmRjZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MRGl2RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxEaXZFbGVtZW50LmNw
cApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTERpdkVsZW1lbnQqIGtpdChXZWJDb3JlOjpI
VE1MRGl2RWxlbWVudCogb2JqKQpAQCAtMTY4LDMgKzE3MCw0IEBAIHZvaWQgd2Via2l0X2RvbV9o
dG1sX2Rpdl9lbGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MRGl2RWxlbWVudCogc2VsZiwg
Y29uc3QKICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNv
cmU6OkhUTUxOYW1lczo6YWxpZ25BdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19F
TkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRGl2RWxlbWVudC5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxEaXZFbGVtZW50LmgKaW5kZXggNWY5MjA3NmVjYTkuLjYyMTQzYjkyMTFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTERpdkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTERpdkVsZW1lbnQu
aApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxEaXZFbGVtZW50Q2xhc3Mg
ewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VC
S0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF9k
aXZfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfZGl2X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTERpdkVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxf
ZGl2X2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxEaXZFbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZGl2X2VsZW1lbnRfZ2V0X2Fs
aWduKFdlYktpdERPTUhUTUxEaXZFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MRGl2RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZGl2X2VsZW1l
bnRfc2V0X2FsaWduKFdlYktpdERPTUhUTUxEaXZFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciog
dmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxEb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTERvY3VtZW50LmNwcAppbmRleCA5NTFhNGJkYmZmOS4uZjcxMmU4ZDlmMjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRG9jdW1lbnQuY3Bw
CkBAIC0zNSw2ICszNSw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MRG9jdW1lbnQqIGtpdChXZWJDb3JlOjpIVE1M
RG9jdW1lbnQqIG9iaikKQEAgLTQyNSwzICs0MjcsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9k
b2N1bWVudF9zZXRfdmxpbmtfY29sb3IoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBzZWxmLCBjb25z
dAogICAgIGl0ZW0tPnNldFZsaW5rQ29sb3IoY29udmVydGVkVmFsdWUpOwogfQogCitHX0dOVUNf
RU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTERvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTERvY3VtZW50LmgKaW5kZXggM2EyNDBlNTE4NTguLjk0YzJhNzI0NzViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTERvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxEb2N1bWVudC5oCkBAIC00
NSwzOSArNDUsNDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MRG9jdW1lbnRDbGFzcyB7CiAgICAg
V2ViS2l0RE9NRG9jdW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdU
eXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X2dl
dF90eXBlKHZvaWQpOwogCiAvKioKICAqIHdlYmtpdF9kb21faHRtbF9kb2N1bWVudF9jbG9zZToK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRG9jdW1lbnQKICAqCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X2Ns
b3NlKFdlYktpdERPTUhUTUxEb2N1bWVudCogc2VsZik7CiAKIC8qKgogICogd2Via2l0X2RvbV9o
dG1sX2RvY3VtZW50X2NsZWFyOgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxEb2N1bWVudAog
ICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRf
ZG9tX2h0bWxfZG9jdW1lbnRfY2xlYXIoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBzZWxmKTsKIAog
LyoqCiAgKiB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfY2FwdHVyZV9ldmVudHM6CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTERvY3VtZW50CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9kb2N1bWVudF9jYXB0dXJlX2V2
ZW50cyhXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKICAqIHdlYmtpdF9kb21f
aHRtbF9kb2N1bWVudF9yZWxlYXNlX2V2ZW50czoKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
RG9jdW1lbnQKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9p
ZAogd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X3JlbGVhc2VfZXZlbnRzKFdlYktpdERPTUhUTUxE
b2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtODUsOCArOTMsMTAgQEAgd2Via2l0X2RvbV9odG1s
X2RvY3VtZW50X3JlbGVhc2VfZXZlbnRzKFdlYktpdERPTUhUTUxEb2N1bWVudCogc2VsZik7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTERvY3VtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xv
bmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtp
dF9kb21faHRtbF9kb2N1bWVudF9nZXRfd2lkdGgoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBzZWxm
KTsKIAogLyoqCkBAIC05NCw4ICsxMDQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X2dl
dF93aWR0aChXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxEb2N1bWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfZG9jdW1l
bnRfZ2V0X2hlaWdodChXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEw
Myw4ICsxMTUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X2dldF9oZWlnaHQoV2ViS2l0
RE9NSFRNTERvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRG9jdW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfZ2V0X2RpcihX
ZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTExMiw4ICsxMjYsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2RvY3VtZW50X2dldF9kaXIoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBz
ZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRG9jdW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX2RvY3VtZW50X3NldF9kaXIoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBz
ZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEyMSw4ICsxMzcsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX2RvY3VtZW50X3NldF9kaXIoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBzZWxm
LCBjb25zdCBnY2hhciogdmFsdWUKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRG9jdW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfZ2V0X2JnX2NvbG9y
KFdlYktpdERPTUhUTUxEb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTMwLDggKzE0OCwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfZ2V0X2JnX2NvbG9yKFdlYktpdERPTUhUTUxEb2N1
bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTERvY3VtZW50CiAgKiBAdmFs
dWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21faHRtbF9kb2N1bWVudF9zZXRfYmdfY29sb3IoV2ViS2l0RE9NSFRN
TERvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEzOSw4ICsx
NTksMTAgQEAgd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X3NldF9iZ19jb2xvcihXZWJLaXRET01I
VE1MRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKgogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxEb2N1bWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2No
YXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9kb2N1bWVudF9n
ZXRfZmdfY29sb3IoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNDgs
OCArMTcwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9kb2N1bWVudF9nZXRfZmdfY29sb3IoV2ViS2l0
RE9NSFRNTERvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRG9jdW1l
bnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X3NldF9mZ19jb2xvcihX
ZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpA
QCAtMTU3LDggKzE4MSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfc2V0X2ZnX2NvbG9y
KFdlYktpdERPTUhUTUxEb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqCiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTERvY3VtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1s
X2RvY3VtZW50X2dldF9hbGlua19jb2xvcihXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTE2Niw4ICsxOTIsMTAgQEAgd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X2dldF9h
bGlua19jb2xvcihXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxEb2N1bWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZG9jdW1l
bnRfc2V0X2FsaW5rX2NvbG9yKFdlYktpdERPTUhUTUxEb2N1bWVudCogc2VsZiwgY29uc3QgZ2No
YXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNzUsOCArMjAzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9k
b2N1bWVudF9zZXRfYWxpbmtfY29sb3IoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBzZWxmLCBjb25z
dCBnY2hhCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTERvY3VtZW50CiAgKgogICogUmV0dXJu
czogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdj
aGFyKgogd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X2dldF9saW5rX2NvbG9yKFdlYktpdERPTUhU
TUxEb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTg0LDggKzIxNCwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfZG9jdW1lbnRfZ2V0X2xpbmtfY29sb3IoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBzZWxm
KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRG9jdW1lbnQKICAqIEB2YWx1ZTogQSAjZ2No
YXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9odG1sX2RvY3VtZW50X3NldF9saW5rX2NvbG9yKFdlYktpdERPTUhUTUxEb2N1bWVu
dCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xOTMsOCArMjI1LDEwIEBA
IHdlYmtpdF9kb21faHRtbF9kb2N1bWVudF9zZXRfbGlua19jb2xvcihXZWJLaXRET01IVE1MRG9j
dW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTERvY3Vt
ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dF
QktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X2dldF92bGlu
a19jb2xvcihXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTIwMiw4ICsy
MzYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X2dldF92bGlua19jb2xvcihXZWJLaXRE
T01IVE1MRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxEb2N1bWVu
dAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRf
REVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfc2V0X3ZsaW5rX2NvbG9y
KFdlYktpdERPTUhUTUxEb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19F
TkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEVsZW1l
bnQuY3BwCmluZGV4IDkzNGNlNGI3NGZmLi43ZTE3MTU0MDMwZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEVsZW1lbnQuY3BwCkBAIC0zNyw2ICszNyw4IEBA
CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19H
TlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBX
ZWJLaXRET01IVE1MRWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxFbGVtZW50KiBvYmopCkBAIC02
MzcsMyArNjM5LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9zZXRfc3BlbGxjaGVj
ayhXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4KICAgICBpdGVtLT5zZXRTcGVs
bGNoZWNrKHZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEVsZW1lbnQuaAppbmRleCAyZDFm
YjVhNWU0Zi4uM2MzODVkMTZiNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MRWxlbWVudC5oCkBAIC00NSwxNSArNDUsMTcgQEAgc3RydWN0IF9XZWJLaXRET01I
VE1MRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01FbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNz
OwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtp
dF9kb21faHRtbF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKICAqIHdlYmtpdF9kb21f
aHRtbF9lbGVtZW50X2NsaWNrOgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxFbGVtZW50CiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21faHRtbF9lbGVtZW50X2NsaWNrKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC02MSw4ICs2MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9jbGljayhXZWJLaXRE
T01IVE1MRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfdGl0bGUoV2Vi
S2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTcwLDggKzc0LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9lbGVtZW50X2dldF90aXRsZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9odG1sX2VsZW1lbnRfc2V0X3RpdGxlKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmLCBj
b25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTc5LDggKzg1LDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9lbGVtZW50X3NldF90aXRsZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwgY29uc3Qg
Z2NoYXIqIHZhbHVlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfbGFuZyhXZWJLaXRET01IVE1M
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtODgsOCArOTYsMTAgQEAgd2Via2l0X2RvbV9odG1s
X2VsZW1lbnRfZ2V0X2xhbmcoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9l
bGVtZW50X3NldF9sYW5nKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciog
dmFsdWUpOwogCiAvKioKQEAgLTk3LDggKzEwNywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZWxlbWVu
dF9zZXRfbGFuZyhXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVl
KQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAj
Z2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgog
d2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X2RpcihXZWJLaXRET01IVE1MRWxlbWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtMTA2LDggKzExOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9n
ZXRfZGlyKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9zZXRf
ZGlyKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAv
KioKQEAgLTExNSw4ICsxMjksMTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X2RpcihX
ZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0
bWxfZWxlbWVudF9nZXRfdGFiX2luZGV4KFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0xMjQsOCArMTQwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X2dldF90YWJf
aW5kZXgoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dsb25nCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF90
YWJfaW5kZXgoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoq
CkBAIC0xMzMsOCArMTUxLDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF90YWJfaW5k
ZXgoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRt
bF9lbGVtZW50X2dldF9hY2Nlc3Nfa2V5KFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0xNDIsOCArMTYyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X2dldF9hY2Nl
c3Nfa2V5KFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9zZXRf
YWNjZXNzX2tleShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVl
KTsKIAogLyoqCkBAIC0xNTEsOCArMTczLDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3Nl
dF9hY2Nlc3Nfa2V5KFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhcioKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFy
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtp
dF9kb21faHRtbF9lbGVtZW50X2dldF9pbm5lcl90ZXh0KFdlYktpdERPTUhUTUxFbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC0xNjEsOCArMTg1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50
X2dldF9pbm5lcl90ZXh0KFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKICAqIEB2YWx1ZTog
QSAjZ2NoYXIKICAqIEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9zZXRfaW5uZXJf
dGV4dChXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJy
b3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTcwLDggKzE5NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
ZWxlbWVudF9zZXRfaW5uZXJfdGV4dChXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwgY29uc3Qg
Z2NoYXIqCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2No
YXIqCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfb3V0ZXJfdGV4dChXZWJLaXRET01IVE1M
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTgwLDggKzIwOCwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfZWxlbWVudF9nZXRfb3V0ZXJfdGV4dChXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZik7CiAg
KiBAdmFsdWU6IEEgI2djaGFyCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRf
c2V0X291dGVyX3RleHQoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2
YWx1ZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTE4OSw4ICsyMTksMTAgQEAgd2Via2l0
X2RvbV9odG1sX2VsZW1lbnRfc2V0X291dGVyX3RleHQoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxFbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBS
RUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X2NvbnRlbnRfZWRpdGFi
bGUoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE5OSw4ICsyMzEsMTAg
QEAgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X2NvbnRlbnRfZWRpdGFibGUoV2ViS2l0RE9N
SFRNTEVsZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNnY2hhcgogICogQGVycm9yOiAjR0Vy
cm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF9lbGVtZW50X3NldF9jb250ZW50X2VkaXRhYmxlKFdlYktpdERPTUhUTUxF
bGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoq
CkBAIC0yMDgsOCArMjQyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF9jb250ZW50
X2VkaXRhYmxlKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmLCBjb25zdCBnCiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0
X2RvbV9odG1sX2VsZW1lbnRfZ2V0X2lzX2NvbnRlbnRfZWRpdGFibGUoV2ViS2l0RE9NSFRNTEVs
ZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTIxOSw4ICsyNTUsMTAgQEAgd2Via2l0X2RvbV9odG1s
X2VsZW1lbnRfZ2V0X2lzX2NvbnRlbnRfZWRpdGFibGUoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNl
bGYpOwogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2Rv
bV9odG1sX2VsZW1lbnRfZ2V0X3RyYW5zbGF0ZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtMjI5LDggKzI2NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRf
dHJhbnNsYXRlKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2Jv
b2xlYW4KICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF90cmFuc2xhdGUoV2Vi
S2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBAIC0yNDAs
OCArMjgwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF90cmFuc2xhdGUoV2ViS2l0
RE9NSFRNTEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlCiAgKiBSZXR1cm5zOiBBICNnYm9v
bGVhbgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJ
VF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfZHJhZ2dh
YmxlKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNTAsOCArMjkyLDEw
IEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X2dldF9kcmFnZ2FibGUoV2ViS2l0RE9NSFRNTEVs
ZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX2VsZW1lbnRfc2V0X2RyYWdnYWJsZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwg
Z2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTI2MSw4ICszMDUsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2VsZW1lbnRfc2V0X2RyYWdnYWJsZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwgZ2Jv
b2xlYW4gdmFsdWUKICAqIFJldHVybnM6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2Rv
bV9odG1sX2VsZW1lbnRfZ2V0X3dlYmtpdGRyb3B6b25lKFdlYktpdERPTUhUTUxFbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC0yNzEsOCArMzE3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50
X2dldF93ZWJraXRkcm9wem9uZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZik7CiAgKiBAdmFs
dWU6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9zZXRfd2Via2l0
ZHJvcHpvbmUoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7
CiAKIC8qKgpAQCAtMjgyLDggKzMzMCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9zZXRf
d2Via2l0ZHJvcHpvbmUoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaAogICog
UmV0dXJuczogQSAjZ2Jvb2xlYW4KICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX2Vs
ZW1lbnRfZ2V0X2hpZGRlbihXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
MjkyLDggKzM0MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfaGlkZGVuKFdlYktp
dERPTUhUTUxFbGVtZW50KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCiAgKiBT
aW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF9oaWRkZW4oV2ViS2l0RE9NSFRNTEVsZW1lbnQq
IHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBAIC0zMDMsOCArMzU1LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9lbGVtZW50X3NldF9oaWRkZW4oV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYs
IGdib29sZWFuIHZhbHVlKTsKICAqIFJldHVybnM6IEEgI2dib29sZWFuCiAgKgogICogU2luY2U6
IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xl
YW4KIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X2dldF9zcGVsbGNoZWNrKFdlYktpdERPTUhUTUxF
bGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0zMTMsOCArMzY3LDEwIEBAIHdlYmtpdF9kb21faHRt
bF9lbGVtZW50X2dldF9zcGVsbGNoZWNrKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKICAq
IEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3Nl
dF9zcGVsbGNoZWNrKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7
CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTEVtYmVkRWxlbWVudC5jcHAKaW5kZXggOGYwNzA5YTI5MjkuLjkxMzEyNDY5MzhjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxFbWJlZEVs
ZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7
CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50KiBraXQo
V2ViQ29yZTo6SFRNTEVtYmVkRWxlbWVudCogb2JqKQpAQCAtMzQ0LDMgKzM0Niw0IEBAIHZvaWQg
d2Via2l0X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfc2V0X3dpZHRoKFdlYktpdERPTUhUTUxFbWJl
ZEVsZW1lbnQqIHNlbGYsIGdsCiAgICAgaXRlbS0+c2V0SW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29y
ZTo6SFRNTE5hbWVzOjp3aWR0aEF0dHIsIHZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVf
REVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MRW1iZWRFbGVtZW50LmgKaW5kZXggNjhkMjMzMzBjOWIuLjZlYWZkNTdjZmY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRW1iZWRFbGVtZW50LmgK
QEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MRW1iZWRFbGVtZW50Q2xhc3Mg
ewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VC
S0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF9l
bWJlZF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdl
YmtpdF9kb21faHRtbF9lbWJlZF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9t
X2h0bWxfZW1iZWRfZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VtYmVkX2Vs
ZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX2VtYmVkX2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQq
IHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERPTUhUTUxFbWJlZEVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGcKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRW1iZWRFbGVt
ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VC
S0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF9lbWJlZF9lbGVtZW50X2dldF9o
ZWlnaHQoV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtODAsOCAr
ODYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfZ2V0X2hlaWdodChXZWJLaXRE
T01IVE1MRW1iZWRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRW1i
ZWRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dsb25nCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9lbWJlZF9lbGVtZW50X3Nl
dF9oZWlnaHQoV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwog
CiAvKioKQEAgLTg5LDggKzk3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbWJlZF9lbGVtZW50X3Nl
dF9oZWlnaHQoV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudCogc2VsZiwgZ2xvbmcKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0
X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtOTgsOCArMTA4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbWJl
ZF9lbGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQqIHNlbGYpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfc2V0X25hbWUoV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVu
dCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMDcsOCArMTE5LDEwIEBA
IHdlYmtpdF9kb21faHRtbF9lbWJlZF9lbGVtZW50X3NldF9uYW1lKFdlYktpdERPTUhUTUxFbWJl
ZEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVtYmVk
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIq
CitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9lbWJlZF9lbGVtZW50
X2dldF9zcmMoV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTE2
LDggKzEzMCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9nZXRfc3JjKFdlYktp
dERPTUhUTUxFbWJlZEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxF
bWJlZEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRf
c2V0X3NyYyhXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUpOwogCiAvKioKQEAgLTEyNSw4ICsxNDEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VtYmVkX2Vs
ZW1lbnRfc2V0X3NyYyhXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2gK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50CiAgKgogICogUmV0dXJuczog
QSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFy
Kgogd2Via2l0X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfZ2V0X3R5cGVfYXR0cihXZWJLaXRET01I
VE1MRW1iZWRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMzQsOCArMTUyLDEwIEBAIHdlYmtp
dF9kb21faHRtbF9lbWJlZF9lbGVtZW50X2dldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTEVtYmVk
RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudAog
ICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9zZXRfdHlwZV9hdHRy
KFdlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAK
IC8qKgpAQCAtMTQzLDggKzE2MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9z
ZXRfdHlwZV9hdHRyKFdlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQqIHNlbGYsIGNvbgogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9u
ZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0
X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfZ2V0X3dpZHRoKFdlYktpdERPTUhUTUxFbWJlZEVsZW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTE1Miw4ICsxNzQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2Vt
YmVkX2VsZW1lbnRfZ2V0X3dpZHRoKFdlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xv
bmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfc2V0X3dpZHRoKFdlYktpdERPTUhUTUxFbWJlZEVs
ZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MRmllbGRTZXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRmllbGRTZXRFbGVtZW50LmNwcApp
bmRleCA5MWEyY2Q4MmJkMC4uNmYxMDRiNGVhYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRmllbGRT
ZXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKQEAgLTM4LDYg
KzM4LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIFdlYktpdERPTUhUTUxGaWVsZFNldEVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MRmll
bGRTZXRFbGVtZW50KiBvYmopCkBAIC0xNDMsMyArMTQ1LDQgQEAgV2ViS2l0RE9NSFRNTEZvcm1F
bGVtZW50KiB3ZWJraXRfZG9tX2h0bWxfZmllbGRfc2V0X2VsZW1lbnRfZ2V0X2Zvcm0oV2ViS2l0
RE9NSFQKICAgICBSZWZQdHI8V2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50PiBnb2JqZWN0UmVzdWx0
ID0gV1RGOjpnZXRQdHIoaXRlbS0+Zm9ybSgpKTsKICAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29i
amVjdFJlc3VsdC5nZXQoKSk7CiB9CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTEZpZWxkU2V0RWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGaWVsZFNldEVs
ZW1lbnQuaAppbmRleCBiODc2NjE3N2IyOC4uNDRhZWE2NDQ0OTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MRmllbGRTZXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGaWVsZFNldEVsZW1lbnQuaApAQCAt
NDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxGaWVsZFNldEVsZW1lbnRDbGFzcyB7
CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJL
SVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2Zp
ZWxkX3NldF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBA
IHdlYmtpdF9kb21faHRtbF9maWVsZF9zZXRfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MRmllbGRTZXRFbGVtZW50CiAgKgogICogUmV0dXJuczogKHRy
YW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01I
VE1MRm9ybUVsZW1lbnQqCiB3ZWJraXRfZG9tX2h0bWxfZmllbGRfc2V0X2VsZW1lbnRfZ2V0X2Zv
cm0oV2ViS2l0RE9NSFRNTEZpZWxkU2V0RWxlbWVudCogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTEZvbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRm9udEVsZW1lbnQu
Y3BwCmluZGV4IDYwZjY3ZTc3ZGQyLi5lZjk0OGQ5NTU2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxG
b250RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGb250RWxlbWVudC5jcHAKQEAgLTM2LDYgKzM2
LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgog
CitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIFdlYktpdERPTUhUTUxGb250RWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxGb250RWxlbWVu
dCogb2JqKQpAQCAtMjQwLDMgKzI0Miw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX2ZvbnRfZWxl
bWVudF9zZXRfc2l6ZShXZWJLaXRET01IVE1MRm9udEVsZW1lbnQqIHNlbGYsIGNvbnN0CiAgICAg
aXRlbS0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFt
ZXM6OnNpemVBdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RF
UFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRm9udEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
Rm9udEVsZW1lbnQuaAppbmRleCA4YTJlMDgyMzFiOC4uNzgyOWQ2YjNiNTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MRm9udEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZvbnRFbGVtZW50LmgKQEAgLTQ1
LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MRm9udEVsZW1lbnRDbGFzcyB7CiAgICAg
V2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJ
IEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2ZvbnRfZWxl
bWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfZm9udF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxGb250RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9mb250
X2VsZW1lbnRfZ2V0X2NvbG9yKFdlYktpdERPTUhUTUxGb250RWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ZvbnRfZWxlbWVudF9nZXRfY29s
b3IoV2ViS2l0RE9NSFRNTEZvbnRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MRm9udEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2ZvbnRfZWxl
bWVudF9zZXRfY29sb3IoV2ViS2l0RE9NSFRNTEZvbnRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hh
ciogdmFsdWUpOwogCiAvKioKQEAgLTcxLDggKzc1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mb250
X2VsZW1lbnRfc2V0X2NvbG9yKFdlYktpdERPTUhUTUxGb250RWxlbWVudCogc2VsZiwgY29uc3Qg
Z2NoCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZvbnRFbGVtZW50CiAgKgogICogUmV0dXJu
czogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdj
aGFyKgogd2Via2l0X2RvbV9odG1sX2ZvbnRfZWxlbWVudF9nZXRfZmFjZShXZWJLaXRET01IVE1M
Rm9udEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2LDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9mb250X2VsZW1lbnRfZ2V0X2ZhY2UoV2ViS2l0RE9NSFRNTEZvbnRFbGVtZW50KiBzZWxm
KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRm9udEVsZW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX2ZvbnRfZWxlbWVudF9zZXRfZmFjZShXZWJLaXRET01IVE1MRm9udEVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtODksOCArOTcsMTAg
QEAgd2Via2l0X2RvbV9odG1sX2ZvbnRfZWxlbWVudF9zZXRfZmFjZShXZWJLaXRET01IVE1MRm9u
dEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGEKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRm9u
dEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFy
KgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZm9udF9lbGVtZW50
X2dldF9zaXplKFdlYktpdERPTUhUTUxGb250RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtOTgs
OCArMTA4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mb250X2VsZW1lbnRfZ2V0X3NpemUoV2ViS2l0
RE9NSFRNTEZvbnRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRm9u
dEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2ZvbnRfZWxlbWVudF9zZXRf
c2l6ZShXZWJLaXRET01IVE1MRm9udEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7
CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MRm9ybUVsZW1lbnQuY3BwCmluZGV4IDE3MzI3NzY4NGE3Li5lZDk2ZjFiNTNkNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxGb3JtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGb3JtRWxlbWVu
dC5jcHAKQEAgLTM3LDYgKzM3LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCoga2l0KFdlYkNv
cmU6OkhUTUxGb3JtRWxlbWVudCogb2JqKQpAQCAtNDQ1LDMgKzQ0Nyw0IEBAIGdsb25nIHdlYmtp
dF9kb21faHRtbF9mb3JtX2VsZW1lbnRfZ2V0X2xlbmd0aChXZWJLaXRET01IVE1MRm9ybUVsZW1l
bnQqIHNlbGYpCiAgICAgZ2xvbmcgcmVzdWx0ID0gaXRlbS0+bGVuZ3RoKCk7CiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MRm9ybUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRm9ybUVsZW1lbnQuaAppbmRleCBiOWVm
OGE2NWJmZS4uNWU2NGEzZmNhZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRm9ybUVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50LmgKQEAgLTQ1LDIzICs0NSwyNyBAQCBzdHJ1Y3QgX1dl
YktpdERPTUhUTUxGb3JtRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENs
YXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNB
VEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X2dldF90eXBlKHZvaWQpOwog
CiAvKioKICAqIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfc3VibWl0OgogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxGb3JtRWxlbWVudAogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X3N1Ym1p
dChXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYpOwogCiAvKioKICAqIHdlYmtpdF9kb21f
aHRtbF9mb3JtX2VsZW1lbnRfcmVzZXQ6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZvcm1F
bGVtZW50CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfcmVzZXQoV2ViS2l0RE9NSFRNTEZvcm1FbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC02OSw4ICs3MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZm9y
bV9lbGVtZW50X3Jlc2V0KFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0
X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9nZXRfYWNjZXB0X2NoYXJzZXQoV2ViS2l0RE9NSFRNTEZv
cm1FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC03OCw4ICs4NCwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfZm9ybV9lbGVtZW50X2dldF9hY2NlcHRfY2hhcnNldChXZWJLaXRET01IVE1MRm9ybUVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGb3JtRWxlbWVudAogICogQHZh
bHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X3NldF9hY2NlcHRfY2hhcnNldChX
ZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8q
KgpAQCAtODcsOCArOTUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9zZXRfYWNj
ZXB0X2NoYXJzZXQoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmLAogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxGb3JtRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21f
aHRtbF9mb3JtX2VsZW1lbnRfZ2V0X2FjdGlvbihXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHNl
bGYpOwogCiAvKioKQEAgLTk2LDggKzEwNiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVt
ZW50X2dldF9hY3Rpb24oV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9o
dG1sX2Zvcm1fZWxlbWVudF9zZXRfYWN0aW9uKFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMDUsOCArMTE3LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9mb3JtX2VsZW1lbnRfc2V0X2FjdGlvbihXZWJLaXRET01IVE1MRm9ybUVsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9nZXRfZW5j
dHlwZShXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTExNCw4ICsx
MjgsMTAgQEAgd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9nZXRfZW5jdHlwZShXZWJLaXRE
T01IVE1MRm9ybUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGb3Jt
RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X3NldF9l
bmN0eXBlKFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVl
KTsKIAogLyoqCkBAIC0xMjMsOCArMTM5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1l
bnRfc2V0X2VuY3R5cGUoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmLCBjb25zdCBnCiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50CiAgKgogICogUmV0dXJuczogQSAj
Z2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgog
d2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9nZXRfZW5jb2RpbmcoV2ViS2l0RE9NSFRNTEZv
cm1FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMzIsOCArMTUwLDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9mb3JtX2VsZW1lbnRfZ2V0X2VuY29kaW5nKFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50CiAgKiBAdmFsdWU6
IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZv
aWQKIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfc2V0X2VuY29kaW5nKFdlYktpdERPTUhU
TUxGb3JtRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNDEs
OCArMTYxLDEwIEBAIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfc2V0X2VuY29kaW5nKFdl
YktpdERPTUhUTUxGb3JtRWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MRm9ybUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZm9y
bV9lbGVtZW50X2dldF9tZXRob2QoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0xNTAsOCArMTcyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfZ2V0
X21ldGhvZChXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxGb3JtRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZm9y
bV9lbGVtZW50X3NldF9tZXRob2QoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE1OSw4ICsxODMsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2Zvcm1fZWxlbWVudF9zZXRfbWV0aG9kKFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2MKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQKICAqCiAg
KiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJF
Q0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X2dldF9uYW1lKFdlYktp
dERPTUhUTUxGb3JtRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTY4LDggKzE5NCwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhUTUxGb3JtRWxl
bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50CiAgKiBA
dmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfc2V0X25hbWUoV2ViS2l0RE9N
SFRNTEZvcm1FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE3
Nyw4ICsyMDUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9zZXRfbmFtZShXZWJL
aXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGEKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MRm9ybUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxf
Zm9ybV9lbGVtZW50X2dldF90YXJnZXQoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmKTsK
IAogLyoqCkBAIC0xODYsOCArMjE2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRf
Z2V0X3RhcmdldChXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxGb3JtRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxf
Zm9ybV9lbGVtZW50X3NldF90YXJnZXQoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmLCBj
b25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE5NSw4ICsyMjcsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2Zvcm1fZWxlbWVudF9zZXRfdGFyZ2V0KFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCog
c2VsZiwgY29uc3QgZ2MKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQKICAq
CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9u
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVD
QVRFRCBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1l
bnRfZ2V0X2VsZW1lbnRzKFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogc2VsZik7CiAKIC8qKgpA
QCAtMjA0LDggKzIzOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X2dldF9lbGVt
ZW50cyhXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxGb3JtRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfZm9y
bV9lbGVtZW50X2dldF9sZW5ndGgoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmKTsKIAog
R19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRnJhbWVFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MRnJhbWVFbGVtZW50LmNwcAppbmRleCA3OWMxNjBkYmZjMC4uYzE1ZjZhNDg2NGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MRnJhbWVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVu
dC5jcHAKQEAgLTM4LDYgKzM4LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIGtpdChXZWJD
b3JlOjpIVE1MRnJhbWVFbGVtZW50KiBvYmopCkBAIC01MTIsMyArNTE0LDQgQEAgZ2xvbmcgd2Vi
a2l0X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfZ2V0X2hlaWdodChXZWJLaXRET01IVE1MRnJhbWVF
bGVtZW50KiBzZWxmKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JF
X0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRnJhbWVFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTEZyYW1lRWxlbWVudC5oCmluZGV4IDczYzdiY2MyZjc0Li4wZmVmZjQ3MjIyYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudC5o
CkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudENsYXNz
IHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdF
QktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxf
ZnJhbWVfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2Rv
bV9odG1sX2ZyYW1lX2VsZW1lbnRfZ2V0X2ZyYW1lX2JvcmRlcihXZWJLaXRET01IVE1MRnJhbWVF
bGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
ZnJhbWVfZWxlbWVudF9nZXRfZnJhbWVfYm9yZGVyKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQq
IHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQKICAqIEB2YWx1
ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfc2V0X2ZyYW1lX2JvcmRlcihXZWJL
aXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioK
QEAgLTcxLDggKzc1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X3NldF9mcmFt
ZV9ib3JkZXIoV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZiwKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MRnJhbWVFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9o
dG1sX2ZyYW1lX2VsZW1lbnRfZ2V0X2xvbmdfZGVzYyhXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZnJhbWVf
ZWxlbWVudF9nZXRfbG9uZ19kZXNjKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2No
YXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfc2V0X2xvbmdfZGVzYyhXZWJLaXRET01IVE1MRnJh
bWVFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTg5LDggKzk3
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X3NldF9sb25nX2Rlc2MoV2ViS2l0
RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZiwgY29uCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TEZyYW1lRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9mcmFtZV9l
bGVtZW50X2dldF9tYXJnaW5faGVpZ2h0KFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTk4LDggKzEwOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVu
dF9nZXRfbWFyZ2luX2hlaWdodChXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmKQogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfc2V0X21hcmdpbl9oZWlnaHQoV2ViS2l0RE9NSFRNTEZy
YW1lRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMDcsOCAr
MTE5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X3NldF9tYXJnaW5faGVpZ2h0
KFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYsCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTEZyYW1lRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9mcmFt
ZV9lbGVtZW50X2dldF9tYXJnaW5fd2lkdGgoV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtMTE2LDggKzEzMCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxl
bWVudF9nZXRfbWFyZ2luX3dpZHRoKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2No
YXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfc2V0X21hcmdpbl93aWR0aChXZWJLaXRET01IVE1M
RnJhbWVFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEyNSw4
ICsxNDEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfc2V0X21hcmdpbl93aWR0
aChXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmLAogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxGcmFtZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZnJh
bWVfZWxlbWVudF9nZXRfbmFtZShXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0xMzQsOCArMTUyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dl
dF9uYW1lKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxGcmFtZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2Zy
YW1lX2VsZW1lbnRfc2V0X25hbWUoV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZiwgY29u
c3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNDMsOCArMTYzLDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9mcmFtZV9lbGVtZW50X3NldF9uYW1lKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudAogICoK
ICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJ
VF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9nZXRf
bm9fcmVzaXplKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE1
Miw4ICsxNzQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfZ2V0X25vX3Jlc2l6
ZShXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MRnJhbWVFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9mcmFt
ZV9lbGVtZW50X3NldF9ub19yZXNpemUoV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZiwg
Z2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTE2MSw4ICsxODUsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2ZyYW1lX2VsZW1lbnRfc2V0X25vX3Jlc2l6ZShXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50
KiBzZWxmLCBnYm8KICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBS
RUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfZ2V0X3Njcm9sbGlu
ZyhXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNzAsOCArMTk2
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF9zY3JvbGxpbmcoV2ViS2l0
RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZy
YW1lRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9z
ZXRfc2Nyb2xsaW5nKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFy
KiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTc5LDggKzIwNywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZnJh
bWVfZWxlbWVudF9zZXRfc2Nyb2xsaW5nKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYs
IGNvbgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQKICAqCiAgKiBSZXR1
cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQg
Z2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9nZXRfc3JjKFdlYktpdERPTUhU
TUxGcmFtZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE4OCw4ICsyMTgsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfZ2V0X3NyYyhXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50
KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50CiAgKiBAdmFs
dWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X3NldF9zcmMoV2ViS2l0RE9NSFRN
TEZyYW1lRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xOTcs
OCArMjI5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X3NldF9zcmMoV2ViS2l0
RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTEZyYW1lRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAj
V2ViS2l0RE9NRG9jdW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Eb2N1bWVudCoKK1dF
QktJVF9ERVBSRUNBVEVEIFdlYktpdERPTURvY3VtZW50Kgogd2Via2l0X2RvbV9odG1sX2ZyYW1l
X2VsZW1lbnRfZ2V0X2NvbnRlbnRfZG9jdW1lbnQoV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMjA2LDggKzI0MCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZnJhbWVf
ZWxlbWVudF9nZXRfY29udGVudF9kb2N1bWVudChXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBz
ZQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5z
OiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTURPTVdpbmRvdworICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IFdlYktpdERPTURPTVdpbmRvdyoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTURPTVdpbmRv
dyoKIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF9jb250ZW50X3dpbmRvdyhXZWJL
aXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMTUsOCArMjUxLDEwIEBA
IHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF9jb250ZW50X3dpbmRvdyhXZWJLaXRE
T01IVE1MRnJhbWVFbGVtZW50KiBzZWxmCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZyYW1l
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcK
K1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9n
ZXRfd2lkdGgoV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjI0
LDggKzI2MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9nZXRfd2lkdGgoV2Vi
S2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TEZyYW1lRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxl
bWVudF9nZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYpOwogCiBHX0VO
RF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGcmFtZVNldEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxGcmFtZVNldEVsZW1lbnQuY3BwCmluZGV4IDc1YmNlNDMzODBjLi5iMWVkZTViNDNmMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxGcmFtZVNldEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRnJhbWVT
ZXRFbGVtZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJ
T05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTEZyYW1lU2V0RWxlbWVu
dCoga2l0KFdlYkNvcmU6OkhUTUxGcmFtZVNldEVsZW1lbnQqIG9iaikKQEAgLTIwNCwzICsyMDYs
NCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9mcmFtZV9zZXRfZWxlbWVudF9zZXRfcm93cyhXZWJL
aXRET01IVE1MRnJhbWVTZXRFbGVtZW50KiBzZQogICAgIGl0ZW0tPnNldEF0dHJpYnV0ZVdpdGhv
dXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpyb3dzQXR0ciwgY29udmVydGVk
VmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTEZyYW1lU2V0RWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGcmFtZVNldEVsZW1lbnQuaApp
bmRleCBiYTJiMWJkMDEzYS4uMjUyMDhmMzRhN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRnJhbWVT
ZXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGcmFtZVNldEVsZW1lbnQuaApAQCAtNDUsNyArNDUs
NyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxGcmFtZVNldEVsZW1lbnRDbGFzcyB7CiAgICAgV2Vi
S2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdU
eXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2ZyYW1lX3NldF9l
bGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9k
b21faHRtbF9mcmFtZV9zZXRfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MRnJhbWVTZXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2Rv
bV9odG1sX2ZyYW1lX3NldF9lbGVtZW50X2dldF9jb2xzKFdlYktpdERPTUhUTUxGcmFtZVNldEVs
ZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9m
cmFtZV9zZXRfZWxlbWVudF9nZXRfY29scyhXZWJLaXRET01IVE1MRnJhbWVTZXRFbGVtZW50KiBz
ZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRnJhbWVTZXRFbGVtZW50CiAgKiBAdmFs
dWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21faHRtbF9mcmFtZV9zZXRfZWxlbWVudF9zZXRfY29scyhXZWJLaXRE
T01IVE1MRnJhbWVTZXRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioK
QEAgLTcxLDggKzc1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9zZXRfZWxlbWVudF9zZXRf
Y29scyhXZWJLaXRET01IVE1MRnJhbWVTZXRFbGVtZW50KiBzZWxmLCBjCiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTEZyYW1lU2V0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9k
b21faHRtbF9mcmFtZV9zZXRfZWxlbWVudF9nZXRfcm93cyhXZWJLaXRET01IVE1MRnJhbWVTZXRF
bGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
ZnJhbWVfc2V0X2VsZW1lbnRfZ2V0X3Jvd3MoV2ViS2l0RE9NSFRNTEZyYW1lU2V0RWxlbWVudCog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZyYW1lU2V0RWxlbWVudAogICogQHZh
bHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfc2V0X2VsZW1lbnRfc2V0X3Jvd3MoV2ViS2l0
RE9NSFRNTEZyYW1lU2V0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19F
TkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSFJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSFJF
bGVtZW50LmNwcAppbmRleCA5YjAxMGJmMmY3NC4uMmY2ZTI0MGIxMjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MSFJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEhSRWxlbWVudC5jcHAKQEAgLTM2LDYg
KzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIFdlYktpdERPTUhUTUxIUkVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MSFJFbGVtZW50
KiBvYmopCkBAIC0yNzQsMyArMjc2LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfaHJfZWxlbWVu
dF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRNTEhSRWxlbWVudCogc2VsZiwgY29uc3QgZ2MKICAgICBp
dGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1l
czo6d2lkdGhBdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RF
UFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSFJFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEhS
RWxlbWVudC5oCmluZGV4IDZmYWNiYzBlZGY1Li5mMDNkMDdlZGFiMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxIUkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEhSRWxlbWVudC5oCkBAIC00NSw3ICs0NSw3
IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTEhSRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01I
VE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dF
QktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfaHJfZWxlbWVudF9nZXRfdHlw
ZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaHJfZWxl
bWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSFJFbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2hyX2VsZW1lbnRfZ2V0X2FsaWdu
KFdlYktpdERPTUhUTUxIUkVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBA
IHdlYmtpdF9kb21faHRtbF9ocl9lbGVtZW50X2dldF9hbGlnbihXZWJLaXRET01IVE1MSFJFbGVt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSFJFbGVtZW50CiAgKiBAdmFs
dWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21faHRtbF9ocl9lbGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1M
SFJFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTcxLDggKzc1
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9ocl9lbGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1M
SFJFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhcioKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
SFJFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Ym9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9ocl9l
bGVtZW50X2dldF9ub19zaGFkZShXZWJLaXRET01IVE1MSFJFbGVtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaHJfZWxlbWVudF9nZXRfbm9fc2hh
ZGUoV2ViS2l0RE9NSFRNTEhSRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTEhSRWxlbWVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaHJfZWxlbWVu
dF9zZXRfbm9fc2hhZGUoV2ViS2l0RE9NSFRNTEhSRWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFs
dWUpOwogCiAvKioKQEAgLTg5LDggKzk3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9ocl9lbGVtZW50
X3NldF9ub19zaGFkZShXZWJLaXRET01IVE1MSFJFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEhSRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dj
aGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdl
YmtpdF9kb21faHRtbF9ocl9lbGVtZW50X2dldF9zaXplKFdlYktpdERPTUhUTUxIUkVsZW1lbnQq
IHNlbGYpOwogCiAvKioKQEAgLTk4LDggKzEwOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaHJfZWxl
bWVudF9nZXRfc2l6ZShXZWJLaXRET01IVE1MSFJFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MSFJFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9o
cl9lbGVtZW50X3NldF9zaXplKFdlYktpdERPTUhUTUxIUkVsZW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTA3LDggKzExOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
aHJfZWxlbWVudF9zZXRfc2l6ZShXZWJLaXRET01IVE1MSFJFbGVtZW50KiBzZWxmLCBjb25zdCBn
Y2hhciogdgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxIUkVsZW1lbnQKICAqCiAgKiBSZXR1
cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQg
Z2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfaHJfZWxlbWVudF9nZXRfd2lkdGgoV2ViS2l0RE9NSFRN
TEhSRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTE2LDggKzEzMCwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfaHJfZWxlbWVudF9nZXRfd2lkdGgoV2ViS2l0RE9NSFRNTEhSRWxlbWVudCogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEhSRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hh
cgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJr
aXRfZG9tX2h0bWxfaHJfZWxlbWVudF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRNTEhSRWxlbWVudCog
c2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MSGVhZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIZWFkRWxlbWVudC5jcHAKaW5kZXggOTY1
ZjdjOTQ2ZGMuLmVkNDY5ZWM5ZDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEhlYWRFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTEhlYWRFbGVtZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1
ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJ
Tl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9N
SFRNTEhlYWRFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTEhlYWRFbGVtZW50KiBvYmopCkBAIC0x
NjgsMyArMTcwLDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfaGVhZF9lbGVtZW50X3NldF9wcm9m
aWxlKFdlYktpdERPTUhUTUxIZWFkRWxlbWVudCogc2VsZiwgY28KICAgICBpdGVtLT5zZXRBdHRy
aWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6cHJvZmlsZUF0
dHIsIGNvbnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05T
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxIZWFkRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIZWFkRWxlbWVu
dC5oCmluZGV4IGNlODE2Y2U2OTRlLi45ZmNkYzRmMjEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxI
ZWFkRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSGVhZEVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBA
QCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxIZWFkRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01I
VE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dF
QktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfaGVhZF9lbGVtZW50X2dldF90
eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9oZWFk
X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEhlYWRF
bGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioK
K1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2hlYWRfZWxlbWVudF9n
ZXRfcHJvZmlsZShXZWJLaXRET01IVE1MSGVhZEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYy
LDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9oZWFkX2VsZW1lbnRfZ2V0X3Byb2ZpbGUoV2Vi
S2l0RE9NSFRNTEhlYWRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
SGVhZEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2hlYWRfZWxlbWVudF9z
ZXRfcHJvZmlsZShXZWJLaXRET01IVE1MSGVhZEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2
YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEhlYWRpbmdFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MSGVhZGluZ0VsZW1lbnQuY3BwCmluZGV4IGNkYzRlMmViN2ViLi4xN2Zl
MWJjMmYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIZWFkaW5nRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxIZWFkaW5nRWxlbWVudC5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYv
R2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JF
X0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxIZWFk
aW5nRWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxIZWFkaW5nRWxlbWVudCogb2JqKQpAQCAtMTY4
LDMgKzE3MCw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX2hlYWRpbmdfZWxlbWVudF9zZXRfYWxp
Z24oV2ViS2l0RE9NSFRNTEhlYWRpbmdFbGVtZW50KiBzZWxmCiAgICAgaXRlbS0+c2V0QXR0cmli
dXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmFsaWduQXR0ciwg
Y29udmVydGVkVmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTEhlYWRpbmdFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEhlYWRpbmdFbGVt
ZW50LmgKaW5kZXggNDcwMDYyYzA4OGUuLmMyYjQyZDEyZGVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TEhlYWRpbmdFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIZWFkaW5nRWxlbWVudC5oCkBAIC00NSw3
ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTEhlYWRpbmdFbGVtZW50Q2xhc3MgewogICAg
IFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQ
SSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF9oZWFkaW5n
X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2hlYWRpbmdfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MSGVhZGluZ0VsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9t
X2h0bWxfaGVhZGluZ19lbGVtZW50X2dldF9hbGlnbihXZWJLaXRET01IVE1MSGVhZGluZ0VsZW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9oZWFk
aW5nX2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxIZWFkaW5nRWxlbWVudCogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEhlYWRpbmdFbGVtZW50CiAgKiBAdmFsdWU6IEEg
I2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21faHRtbF9oZWFkaW5nX2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERPTUhUTUxI
ZWFkaW5nRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MSHRtbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIdG1sRWxlbWVu
dC5jcHAKaW5kZXggNjVlYzcyZGJhMWQuLjkxN2IwNjg5ODJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TEh0bWxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEh0bWxFbGVtZW50LmNwcApAQCAtMzYsNiAr
MzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogV2ViS2l0RE9NSFRNTEh0bWxFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTEh0bWxFbGVt
ZW50KiBvYmopCkBAIC0xNjYsMyArMTY4LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfaHRtbF9l
bGVtZW50X3NldF92ZXJzaW9uKFdlYktpdERPTUhUTUxIdG1sRWxlbWVudCogc2VsZiwgY28KICAg
ICBXVEY6OlN0cmluZyBjb252ZXJ0ZWRWYWx1ZSA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOCh2YWx1
ZSk7CiAgICAgaXRlbS0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3Jl
OjpIVE1MTmFtZXM6OnZlcnNpb25BdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CitHX0dOVUNfRU5E
X0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEh0bWxFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTEh0bWxFbGVtZW50LmgKaW5kZXggMjYwMjBjNWRlZjcuLjhjOGVhZjc0OWM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTEh0bWxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIdG1sRWxlbWVu
dC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTEh0bWxFbGVtZW50Q2xh
c3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAot
V0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRt
bF9odG1sX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2h0bWxfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MSHRtbEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9t
X2h0bWxfaHRtbF9lbGVtZW50X2dldF92ZXJzaW9uKFdlYktpdERPTUhUTUxIdG1sRWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2h0bWxfZWxl
bWVudF9nZXRfdmVyc2lvbihXZWJLaXRET01IVE1MSHRtbEVsZW1lbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxIdG1sRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfaHRtbF9lbGVtZW50X3NldF92ZXJzaW9uKFdlYktpdERPTUhUTUxIdG1sRWxlbWVudCog
c2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MSUZyYW1lRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQuY3BwCmluZGV4
IGVjMjY5YzdhZjNmLi4yOGI1MWNlOTBlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxJRnJhbWVFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQuY3BwCkBAIC0zOCw2ICszOCw4IEBA
CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19H
TlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBX
ZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxJRnJhbWVFbGVtZW50
KiBvYmopCkBAIC01NDAsMyArNTQyLDQgQEAgV2ViS2l0RE9NRE9NV2luZG93KiB3ZWJraXRfZG9t
X2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X2NvbnRlbnRfd2luZG93KFdlYktpdERPTUgKICAgICBy
ZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7CiB9CiAKK0dfR05VQ19FTkRf
SUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudC5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxJRnJhbWVFbGVtZW50LmgKaW5kZXggN2JjN2U3NzZlMjEuLjU5ZjQ1ZGYxNzZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTElGcmFt
ZUVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxJRnJhbWVF
bGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNz
OwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtp
dF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4
ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2No
YXIqCiB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhU
TUxJRnJhbWVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxJRnJhbWVFbGVt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudAogICog
QHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfc2V0X2FsaWduKFdlYktp
dERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioK
QEAgLTcxLDggKzc1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9zZXRfYWxp
Z24oV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9t
X2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X2ZyYW1lX2JvcmRlcihXZWJLaXRET01IVE1MSUZyYW1l
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtODAsOCArODYsMTAgQEAgd2Via2l0X2RvbV9odG1s
X2lmcmFtZV9lbGVtZW50X2dldF9mcmFtZV9ib3JkZXIoV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1l
bnQqIHNlbGYKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudAogICogQHZh
bHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfc2V0X2ZyYW1lX2JvcmRlcihX
ZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAog
LyoqCkBAIC04OSw4ICs5NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfc2V0
X2ZyYW1lX2JvcmRlcihXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZgogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0
X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X2dldF9oZWlnaHQoV2ViS2l0RE9NSFRNTElGcmFtZUVs
ZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTk4LDggKzEwOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
aWZyYW1lX2VsZW1lbnRfZ2V0X2hlaWdodChXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQKICAqIEB2YWx1ZTog
QSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9p
ZAogd2Via2l0X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X3NldF9oZWlnaHQoV2ViS2l0RE9NSFRN
TElGcmFtZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTA3
LDggKzExOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfc2V0X2hlaWdodChX
ZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZiwgY29ucwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxJRnJhbWVFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1s
X2lmcmFtZV9lbGVtZW50X2dldF9sb25nX2Rlc2MoV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQq
IHNlbGYpOwogCiAvKioKQEAgLTExNiw4ICsxMzAsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lmcmFt
ZV9lbGVtZW50X2dldF9sb25nX2Rlc2MoV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50CiAgKiBAdmFsdWU6IEEg
I2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9zZXRfbG9uZ19kZXNjKFdlYktpdERPTUhU
TUxJRnJhbWVFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEy
NSw4ICsxNDEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X3NldF9sb25nX2Rl
c2MoV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQqIHNlbGYsIGMKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MSUZyYW1lRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRt
bF9pZnJhbWVfZWxlbWVudF9nZXRfbWFyZ2luX2hlaWdodChXZWJLaXRET01IVE1MSUZyYW1lRWxl
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTM0LDggKzE1MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
aWZyYW1lX2VsZW1lbnRfZ2V0X21hcmdpbl9oZWlnaHQoV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1l
bnQqIHNlbAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50CiAgKiBAdmFs
dWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9zZXRfbWFyZ2luX2hlaWdodChX
ZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAog
LyoqCkBAIC0xNDMsOCArMTYzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9z
ZXRfbWFyZ2luX2hlaWdodChXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsCiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hh
cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJr
aXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X21hcmdpbl93aWR0aChXZWJLaXRET01IVE1M
SUZyYW1lRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTUyLDggKzE3NCwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X21hcmdpbl93aWR0aChXZWJLaXRET01IVE1MSUZy
YW1lRWxlbWVudCogc2VsZgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50
CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9zZXRfbWFyZ2lu
X3dpZHRoKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUpOwogCiAvKioKQEAgLTE2MSw4ICsxODUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lmcmFtZV9l
bGVtZW50X3NldF9tYXJnaW5fd2lkdGgoV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQqIHNlbGYK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9nZXRfbmFtZShXZWJLaXRET01IVE1M
SUZyYW1lRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTcwLDggKzE5NiwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50CiAgKiBA
dmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9zZXRfbmFtZShXZWJLaXRE
T01IVE1MSUZyYW1lRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBA
IC0xNzksOCArMjA3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9zZXRfbmFt
ZShXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21f
aHRtbF9pZnJhbWVfZWxlbWVudF9nZXRfc2Nyb2xsaW5nKFdlYktpdERPTUhUTUxJRnJhbWVFbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xODgsOCArMjE4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9p
ZnJhbWVfZWxlbWVudF9nZXRfc2Nyb2xsaW5nKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBz
ZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudAogICogQHZhbHVl
OiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2
b2lkCiB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfc2V0X3Njcm9sbGluZyhXZWJLaXRE
T01IVE1MSUZyYW1lRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBA
IC0xOTcsOCArMjI5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9zZXRfc2Ny
b2xsaW5nKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmLCBjCiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9t
X2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X3NyYyhXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMjA2LDggKzI0MCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaWZyYW1l
X2VsZW1lbnRfZ2V0X3NyYyhXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZik7CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X3NldF9zcmMoV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjE1LDggKzI1MSwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfc2V0X3NyYyhXZWJLaXRET01IVE1MSUZy
YW1lRWxlbWVudCogc2VsZiwgY29uc3QgZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJRnJh
bWVFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hh
cioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2lmcmFtZV9lbGVt
ZW50X2dldF93aWR0aChXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZik7CiAKIC8qKgpA
QCAtMjI0LDggKzI2MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X3dp
ZHRoKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MSUZyYW1lRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaWZy
YW1lX2VsZW1lbnRfc2V0X3dpZHRoKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmLCBj
b25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTIzMyw4ICsyNzMsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2lmcmFtZV9lbGVtZW50X3NldF93aWR0aChXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVu
dCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudAog
ICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NRG9jdW1lbnQKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBXZWJLaXRET01Eb2N1bWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktp
dERPTURvY3VtZW50Kgogd2Via2l0X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X2dldF9jb250ZW50
X2RvY3VtZW50KFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0y
NDIsOCArMjg0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9nZXRfY29udGVu
dF9kb2N1bWVudChXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCoKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MSUZyYW1lRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTog
QSAjV2ViS2l0RE9NRE9NV2luZG93CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRE9NV2luZG93
KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRE9NV2luZG93Kgogd2Via2l0X2RvbV9odG1s
X2lmcmFtZV9lbGVtZW50X2dldF9jb250ZW50X3dpbmRvdyhXZWJLaXRET01IVE1MSUZyYW1lRWxl
bWVudCogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEltYWdlRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXggZTRlYzRkMzQ2NTAuLjc1
YmM5NjI1M2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxJbWFnZUVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSA8d3RmL0dl
dFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9E
RVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MSW1hZ2VF
bGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudCogb2JqKQpAQCAtNzA1LDMgKzcw
Nyw0IEBAIGdsb25nIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF95KFdlYktpdERP
TUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorR19HTlVD
X0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxJbWFnZUVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50LmgKaW5kZXggYjQ5MjgzNDhmNGMuLmJkNGNiNThm
ZDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSW1h
Z2VFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MSW1hZ2VF
bGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNz
OwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtp
dF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDgg
KzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF90eXBlKHZvaWQpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIq
CiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfbmFtZShXZWJLaXRET01IVE1MSW1h
Z2VFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfaW1hZ2VfZWxlbWVudF9nZXRfbmFtZShXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxm
KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50CiAgKiBAdmFsdWU6IEEg
I2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X3NldF9uYW1lKFdlYktpdERPTUhUTUxJbWFn
ZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUs
MTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0X25hbWUoV2ViS2l0RE9NSFRN
TEltYWdlRWxlbWVudCogc2VsZiwgY29uc3QgZ2MKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
SW1hZ2VFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Y2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2ltYWdlX2Vs
ZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTgwLDggKzg2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF9hbGln
bihXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MSW1hZ2VFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbWFnZV9l
bGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBjb25zdCBn
Y2hhciogdmFsdWUpOwogCiAvKioKQEAgLTg5LDggKzk3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9p
bWFnZV9lbGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBj
b25zdCBnCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAogICoKICAqIFJl
dHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRF
RCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF9hbHQoV2ViS2l0RE9N
SFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtOTgsOCArMTA4LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF9hbHQoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVu
dCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAogICogQHZh
bHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9zZXRfYWx0KFdlYktpdERPTUhU
TUxJbWFnZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTA3
LDggKzExOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9zZXRfYWx0KFdlYktp
dERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaAogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxJbWFnZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxf
aW1hZ2VfZWxlbWVudF9nZXRfYm9yZGVyKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTExNiw4ICsxMzAsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1l
bnRfZ2V0X2JvcmRlcihXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF9pbWFnZV9lbGVtZW50X3NldF9ib3JkZXIoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCog
c2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMjUsOCArMTQxLDEwIEBAIHdl
YmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X3NldF9ib3JkZXIoV2ViS2l0RE9NSFRNTEltYWdl
RWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW1hZ2VFbGVt
ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VC
S0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF9o
ZWlnaHQoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTM0LDgg
KzE1MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfaGVpZ2h0KFdlYktp
dERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJ
bWFnZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRf
c2V0X2hlaWdodChXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBnbG9uZyB2YWx1ZSk7
CiAKIC8qKgpAQCAtMTQzLDggKzE2MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVu
dF9zZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYsIGdsb25nCiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2ds
b25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJr
aXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfaHNwYWNlKFdlYktpdERPTUhUTUxJbWFnZUVs
ZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE1Miw4ICsxNzQsMTAgQEAgd2Via2l0X2RvbV9odG1s
X2ltYWdlX2VsZW1lbnRfZ2V0X2hzcGFjZShXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxm
KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50CiAgKiBAdmFsdWU6IEEg
I2dsb25nCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X3NldF9oc3BhY2UoV2ViS2l0RE9NSFRNTElt
YWdlRWxlbWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioKQEAgLTE2MSw4ICsxODUsMTAg
QEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0X2hzcGFjZShXZWJLaXRET01IVE1M
SW1hZ2VFbGVtZW50KiBzZWxmLCBnbG9uZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbWFn
ZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdi
b29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX2ltYWdl
X2VsZW1lbnRfZ2V0X2lzX21hcChXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0xNzAsOCArMTk2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dl
dF9pc19tYXAoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0
bWxfaW1hZ2VfZWxlbWVudF9zZXRfaXNfbWFwKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNl
bGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBAIC0xNzksOCArMjA3LDEwIEBAIHdlYmtpdF9k
b21faHRtbF9pbWFnZV9lbGVtZW50X3NldF9pc19tYXAoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVu
dCogc2VsZiwgZ2Jvb2xlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAog
ICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRf
REVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF9sb25n
X2Rlc2MoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTg4LDgg
KzIxOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfbG9uZ19kZXNjKFdl
YktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxJbWFnZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1l
bnRfc2V0X2xvbmdfZGVzYyhXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBjb25zdCBn
Y2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE5Nyw4ICsyMjksMTAgQEAgd2Via2l0X2RvbV9odG1s
X2ltYWdlX2VsZW1lbnRfc2V0X2xvbmdfZGVzYyhXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBz
ZWxmLCBjb24KICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNB
VEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X3NyYyhXZWJLaXRE
T01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMDYsOCArMjQwLDEwIEBAIHdl
YmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF9zcmMoV2ViS2l0RE9NSFRNTEltYWdlRWxl
bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAogICog
QHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9zZXRfc3JjKFdlYktpdERP
TUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAt
MjE1LDggKzI1MSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9zZXRfc3JjKFdl
YktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaAogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxJbWFnZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0
bWxfaW1hZ2VfZWxlbWVudF9nZXRfdXNlX21hcChXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC0yMjQsOCArMjYyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbWFnZV9l
bGVtZW50X2dldF91c2VfbWFwKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0X3VzZV9tYXAoV2ViS2l0RE9NSFRNTEltYWdlRWxl
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0yMzMsOCArMjczLDEw
IEBAIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X3NldF91c2VfbWFwKFdlYktpdERPTUhU
TUxJbWFnZUVsZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElt
YWdlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xv
bmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVu
dF9nZXRfdnNwYWNlKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTI0Miw4ICsyODQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X3ZzcGFj
ZShXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MSW1hZ2VFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dsb25nCiAgKgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbWFnZV9l
bGVtZW50X3NldF92c3BhY2UoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZiwgZ2xvbmcg
dmFsdWUpOwogCiAvKioKQEAgLTI1MSw4ICsyOTUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdl
X2VsZW1lbnRfc2V0X3ZzcGFjZShXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBnbG9u
ZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9u
Zwogd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X3dpZHRoKFdlYktpdERPTUhUTUxJ
bWFnZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTI2MCw4ICszMDYsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X3dpZHRoKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQq
IHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQKICAqIEB2YWx1
ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0X3dpZHRoKFdlYktpdERPTUhU
TUxJbWFnZUVsZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCkBAIC0yNjksOCArMzE3
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X3NldF93aWR0aChXZWJLaXRET01I
VE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBnbG9uZyB2CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TEltYWdlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxf
aW1hZ2VfZWxlbWVudF9nZXRfY29tcGxldGUoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtMjc4LDggKzMyOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxl
bWVudF9nZXRfY29tcGxldGUoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dj
aGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdl
YmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF9sb3dzcmMoV2ViS2l0RE9NSFRNTEltYWdl
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjg3LDggKzMzOSwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfaW1hZ2VfZWxlbWVudF9nZXRfbG93c3JjKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNl
bGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQKICAqIEB2YWx1ZTog
QSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9p
ZAogd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0X2xvd3NyYyhXZWJLaXRET01IVE1M
SW1hZ2VFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTI5Niw4
ICszNTAsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0X2xvd3NyYyhXZWJL
aXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxJbWFnZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1sX2ltYWdl
X2VsZW1lbnRfZ2V0X25hdHVyYWxfaGVpZ2h0KFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNl
bGYpOwogCiAvKioKQEAgLTMwNSw4ICszNjEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2Vs
ZW1lbnRfZ2V0X25hdHVyYWxfaGVpZ2h0KFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50CiAgKgogICogUmV0dXJuczog
QSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcK
IHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF9uYXR1cmFsX3dpZHRoKFdlYktpdERP
TUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTMxNCw4ICszNzIsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X25hdHVyYWxfd2lkdGgoV2ViS2l0RE9NSFRN
TEltYWdlRWxlbWVudCogc2VsZikKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW1hZ2VFbGVt
ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VC
S0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF94
KFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTMyMyw4ICszODMs
MTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X3goV2ViS2l0RE9NSFRNTElt
YWdlRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJ
VF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfeShX
ZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSW5wdXRFbGVtZW50LmNwcApp
bmRleCBkN2Q3ZmZiMWJiNS4uYTFhMjBmNWIwNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSW5wdXRF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTQwLDYgKzQwLDgg
QEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitH
X0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50
KiBvYmopCkBAIC0xMDA3LDMgKzEwMDksNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9pbnB1dF9l
bGVtZW50X3NldF9lZGl0aW5nX3ZhbHVlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqCiAKICAg
V2ViS2l0Ojpjb3JlKHNlbGYpLT5zZXRFZGl0aW5nVmFsdWUoV1RGOjpTdHJpbmc6OmZyb21VVEY4
KHZhbHVlKSk7CiB9CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQuaAppbmRleCA1
NDMzNDQyZWRkOC4uOTZhZWJiMjRkYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSW5wdXRFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQuaApAQCAtNDUsMTUgKzQ1LDE3IEBAIHN0cnVj
dCBfV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxl
bWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9E
RVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfdHlwZSh2
b2lkKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZWxlY3Q6CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxl
bWVudF9zZWxlY3QoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
NjEsOCArNjMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2VsZWN0KFdlYktp
dERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJ
bnB1dEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxl
bWVudF9nZXRfYWNjZXB0KFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTcwLDggKzc0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9hY2Nl
cHQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTElucHV0RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRf
ZWxlbWVudF9zZXRfYWNjZXB0KFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGNvbnN0
IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzksOCArODUsMTAgQEAgd2Via2l0X2RvbV9odG1s
X2lucHV0X2VsZW1lbnRfc2V0X2FjY2VwdChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxm
LCBjb25zdAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfYWx0KFdlYktpdERP
TUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTg4LDggKzk2LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9hbHQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVu
dCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICogQHZh
bHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfYWx0KFdlYktpdERPTUhU
TUxJbnB1dEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtOTcs
OCArMTA3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9hbHQoV2ViS2l0
RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTElucHV0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9t
X2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfYXV0b2ZvY3VzKFdlYktpdERPTUhUTUxJbnB1dEVsZW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTEwNiw4ICsxMTgsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lu
cHV0X2VsZW1lbnRfZ2V0X2F1dG9mb2N1cyhXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxm
KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKiBAdmFsdWU6IEEg
I2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZv
aWQKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9hdXRvZm9jdXMoV2ViS2l0RE9N
SFRNTElucHV0RWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTExNSw4
ICsxMjksMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2F1dG9mb2N1cyhX
ZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBnYm8KICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MSW5wdXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21f
aHRtbF9pbnB1dF9lbGVtZW50X2dldF9kZWZhdWx0X2NoZWNrZWQoV2ViS2l0RE9NSFRNTElucHV0
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTI1LDggKzE0MSwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfaW5wdXRfZWxlbWVudF9nZXRfZGVmYXVsdF9jaGVja2VkKFdlYktpdERPTUhUTUxJbnB1dEVs
ZW1lbnQqIHNlbAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2Cisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9o
dG1sX2lucHV0X2VsZW1lbnRfc2V0X2RlZmF1bHRfY2hlY2tlZChXZWJLaXRET01IVE1MSW5wdXRF
bGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTM0LDggKzE1MiwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfZGVmYXVsdF9jaGVja2VkKFdlYktp
dERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1
dEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdi
b29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX2lucHV0
X2VsZW1lbnRfZ2V0X2NoZWNrZWQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtMTQzLDggKzE2MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9n
ZXRfY2hlY2tlZChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF9pbnB1dF9lbGVtZW50X3NldF9jaGVja2VkKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQq
IHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBAIC0xNTIsOCArMTc0LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9jaGVja2VkKFdlYktpdERPTUhUTUxJbnB1dEVs
ZW1lbnQqIHNlbGYsIGdib29sCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4K
K1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVu
dF9nZXRfZGlzYWJsZWQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7CiAKIC8qKgpA
QCAtMTYxLDggKzE4NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfZGlz
YWJsZWQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTElucHV0RWxlbWVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxf
aW5wdXRfZWxlbWVudF9zZXRfZGlzYWJsZWQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2Vs
ZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTE3MCw4ICsxOTYsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxJbnB1dEVsZW1l
bnQqIHNlbGYsIGdib28KICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAg
KgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01IVE1MRm9ybUVsZW1l
bnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqCitXRUJLSVRfREVQ
UkVDQVRFRCBXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRf
ZWxlbWVudF9nZXRfZm9ybShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC0xNzksOCArMjA3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9m
b3JtKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxJbnB1dEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEg
I1dlYktpdERPTUZpbGVMaXN0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRmlsZUxpc3QqCitX
RUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01GaWxlTGlzdCoKIHdlYmtpdF9kb21faHRtbF9pbnB1
dF9lbGVtZW50X2dldF9maWxlcyhXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0xODgsOCArMjE4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dl
dF9maWxlcyhXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI1dlYktpdERPTUZpbGVMaXN0
CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtp
dF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9maWxlcyhXZWJLaXRET01IVE1MSW5wdXRFbGVt
ZW50KiBzZWxmLCBXZWJLaXRET01GaWxlTGlzdCogdmFsdWUpOwogCiAvKioKQEAgLTE5Nyw4ICsy
MjksMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2ZpbGVzKFdlYktpdERP
TUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIFdlYktpdEQKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MSW5wdXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ3Vsb25nCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ3Vsb25nCitXRUJLSVRfREVQUkVDQVRFRCBndWxvbmcKIHdlYmtpdF9kb21faHRtbF9pbnB1
dF9lbGVtZW50X2dldF9oZWlnaHQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtMjA2LDggKzI0MCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9n
ZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ3Vsb25nCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRt
bF9pbnB1dF9lbGVtZW50X3NldF9oZWlnaHQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2Vs
ZiwgZ3Vsb25nIHZhbHVlKTsKIAogLyoqCkBAIC0yMTUsOCArMjUxLDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9pbnB1dF9lbGVtZW50X3NldF9oZWlnaHQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCog
c2VsZiwgZ3Vsb25nCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICoK
ICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJ
VF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRf
aW5kZXRlcm1pbmF0ZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC0yMjQsOCArMjYyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9pbmRl
dGVybWluYXRlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpCiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0
bWxfaW5wdXRfZWxlbWVudF9zZXRfaW5kZXRlcm1pbmF0ZShXZWJLaXRET01IVE1MSW5wdXRFbGVt
ZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjMzLDggKzI3MywxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfaW5kZXRlcm1pbmF0ZShXZWJLaXRET01I
VE1MSW5wdXRFbGVtZW50KiBzZWxmLAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVs
ZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitX
RUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0
X21heF9sZW5ndGgoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
MjQzLDggKzI4NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfbWF4X2xl
bmd0aChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2xv
bmcKICAqIEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRf
REVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfbWF4X2xl
bmd0aChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBnbG9uZyB2YWx1ZSwgR0Vycm9y
KiogZXJyb3IpOwogCiAvKioKQEAgLTI1Miw4ICsyOTYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lu
cHV0X2VsZW1lbnRfc2V0X21heF9sZW5ndGgoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2Vs
ZiwgZ2wKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKgogICogUmV0
dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJF
Q0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9tdWx0aXBs
ZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNjEsOCArMzA3
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9tdWx0aXBsZShXZWJLaXRE
T01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5w
dXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50
X3NldF9tdWx0aXBsZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2
YWx1ZSk7CiAKIC8qKgpAQCAtMjcwLDggKzMxOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRf
ZWxlbWVudF9zZXRfbXVsdGlwbGUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgZ2Jv
bwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2No
YXIqCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfbmFtZShXZWJLaXRET01IVE1M
SW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNzksOCArMzI5LDEwIEBAIHdlYmtpdF9k
b21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQq
IHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqIEB2YWx1
ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X25hbWUoV2ViS2l0RE9NSFRN
TElucHV0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0yOTAs
OCArMzQyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9uYW1lKFdlYktp
dERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjCiAgKiBSZXR1cm5zOiBBICNnYm9v
bGVhbgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJ
VF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRf
cmVhZF9vbmx5KFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTI5
OSw4ICszNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X3JlYWRfb25s
eShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MSW5wdXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbnB1
dF9lbGVtZW50X3NldF9yZWFkX29ubHkoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwg
Z2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTMwOCw4ICszNjQsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2lucHV0X2VsZW1lbnRfc2V0X3JlYWRfb25seShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50
KiBzZWxmLCBnYm8KICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ3Vsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQ
UkVDQVRFRCBndWxvbmcKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9zaXplKFdl
YktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTMxOCw4ICszNzYsMTAg
QEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X3NpemUoV2ViS2l0RE9NSFRNTElu
cHV0RWxlbWVudCogc2VsZik7CiAgKiBAdmFsdWU6IEEgI2d1bG9uZwogICogQGVycm9yOiAjR0Vy
cm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9zaXplKFdlYktpdERPTUhUTUxJbnB1dEVs
ZW1lbnQqIHNlbGYsIGd1bG9uZyB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTMy
Nyw4ICszODcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X3NpemUoV2Vi
S2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgZ3Vsb25nIHYKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MSW5wdXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1s
X2lucHV0X2VsZW1lbnRfZ2V0X3NyYyhXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsK
IAogLyoqCkBAIC0zMzYsOCArMzk4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50
X2dldF9zcmMoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxf
aW5wdXRfZWxlbWVudF9zZXRfc3JjKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMzQ1LDggKzQwOSwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfc3JjKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfaW5wdXRf
dHlwZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0zNTQsOCAr
NDIwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9pbnB1dF90eXBlKFdl
YktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxJbnB1dEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1l
bnRfc2V0X2lucHV0X3R5cGUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgY29uc3Qg
Z2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0zNjMsOCArNDMxLDEwIEBAIHdlYmtpdF9kb21faHRt
bF9pbnB1dF9lbGVtZW50X3NldF9pbnB1dF90eXBlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQq
IHNlbGYsIGNvCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICoKICAq
IFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVD
QVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9kZWZhdWx0X3Zh
bHVlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTM3Miw4ICs0
NDIsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2RlZmF1bHRfdmFsdWUo
V2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZikKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MSW5wdXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVt
ZW50X3NldF9kZWZhdWx0X3ZhbHVlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMzgxLDggKzQ1MywxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfZGVmYXVsdF92YWx1ZShXZWJLaXRET01IVE1MSW5wdXRF
bGVtZW50KiBzZWxmLAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfdmFsdWUo
V2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMzkwLDggKzQ2NCwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfdmFsdWUoV2ViS2l0RE9NSFRN
TElucHV0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxl
bWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfdmFs
dWUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsK
IAogLyoqCkBAIC0zOTksOCArNDc1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50
X3NldF92YWx1ZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBjb25zdCBnCiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2d1
bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGd1bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vsb25nCiB3
ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfd2lkdGgoV2ViS2l0RE9NSFRNTElucHV0
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNDA4LDggKzQ4NiwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfaW5wdXRfZWxlbWVudF9nZXRfd2lkdGgoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICogQHZhbHVlOiBB
ICNndWxvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9p
ZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X3dpZHRoKFdlYktpdERPTUhUTUxJ
bnB1dEVsZW1lbnQqIHNlbGYsIGd1bG9uZyB2YWx1ZSk7CiAKIC8qKgpAQCAtNDE3LDggKzQ5Nywx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRN
TElucHV0RWxlbWVudCogc2VsZiwgZ3Vsb25nCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElu
cHV0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfaW5w
dXRfZWxlbWVudF9nZXRfd2lsbF92YWxpZGF0ZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC00MjYsOCArNTA4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9l
bGVtZW50X2dldF93aWxsX3ZhbGlkYXRlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYp
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9hbGlnbihXZWJLaXRET01IVE1M
SW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC00MzUsOCArNTE5LDEwIEBAIHdlYmtpdF9k
b21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9hbGlnbihXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50
KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKiBAdmFs
dWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9hbGlnbihXZWJLaXRET01I
VE1MSW5wdXRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTQ0
NCw4ICs1MzAsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2FsaWduKFdl
YktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGNvbnN0IGcKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MSW5wdXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1s
X2lucHV0X2VsZW1lbnRfZ2V0X3VzZV9tYXAoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtNDUzLDggKzU0MSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxl
bWVudF9nZXRfdXNlX21hcChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21faHRtbF9pbnB1dF9lbGVtZW50X3NldF91c2VfbWFwKFdlYktpdERPTUhUTUxJbnB1dEVsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNDY0LDggKzU1NCwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfdXNlX21hcChXZWJLaXRET01IVE1M
SW5wdXRFbGVtZW50KiBzZWxmLCBjb25zdAogICogUmV0dXJuczogQSAjZ2NoYXIKICAqCiAgKiBT
aW5jZTogMi4xNAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2No
YXIqCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfY2FwdHVyZV90eXBlKFdlYktp
dERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTQ3NCw4ICs1NjYsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2NhcHR1cmVfdHlwZShXZWJLaXRET01I
VE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCiAgKiBTaW5j
ZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9jYXB0dXJlX3R5cGUoV2ViS2l0RE9NSFRN
TElucHV0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC00ODMs
OCArNTc3LDExIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9jYXB0dXJlX3R5
cGUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwKICAqIEBpbnB1dDogQSAjV2ViS2l0
RE9NSFRNTElucHV0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIHdlYmtpdF9kb21fZWxlbWVudF9odG1sX2lucHV0X2VsZW1l
bnRfaXNfdXNlcl9lZGl0ZWQoKSBpbnN0ZWFkLgogICovCi1XRUJLSVRfQVBJIGdib29sZWFuIHdl
YmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2lzX2VkaXRlZChXZWJLaXRET01IVE1MSW5wdXRF
bGVtZW50KiBpbnB1dCk7CitXRUJLSVRfREVQUkVDQVRFRF9GT1Iod2Via2l0X2RvbV9lbGVtZW50
X2h0bWxfaW5wdXRfZWxlbWVudF9pc191c2VyX2VkaXRlZCkgZ2Jvb2xlYW4KK3dlYmtpdF9kb21f
aHRtbF9pbnB1dF9lbGVtZW50X2lzX2VkaXRlZChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBp
bnB1dCk7CiAKIC8qKgogICogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2F1dG9f
ZmlsbGVkOgpAQCAtNDkzLDggKzU5MCwxMCBAQCBXRUJLSVRfQVBJIGdib29sZWFuIHdlYmtpdF9k
b21faHRtbF9pbnB1dF9lbGVtZW50X2lzX2VkaXRlZChXZWJLaXRET01IVE1MSW5wdXRFbAogICog
UmV0dXJuczogQSAjZ2Jvb2xlYW4KICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSB3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X2dldF9h
dXRvX2ZpbGxlZCgpIGluc3RlYWQuCiAgKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9E
RVBSRUNBVEVEX0ZPUih3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X2dldF9h
dXRvX2ZpbGxlZCkgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9h
dXRvX2ZpbGxlZChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC01
MDMsOCArNjAyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9hdXRvX2Zp
bGxlZChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2Jv
b2xlYW4KICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSB3
ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X3NldF9hdXRvX2ZpbGxlZCgpIGlu
c3RlYWQuCiAgKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURURfRk9SKHdlYmtp
dF9kb21fZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2F1dG9fZmlsbGVkKSB2b2lkCiB3
ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfYXV0b19maWxsZWQoV2ViS2l0RE9NSFRN
TElucHV0RWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTUxMyw4ICs2
MTQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2F1dG9fZmlsbGVkKFdl
YktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGcKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAq
CiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSB3ZWJraXRfZG9t
X2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X3NldF9lZGl0aW5nX3ZhbHVlKCkgaW5zdGVhZC4K
ICAqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRF9GT1Iod2Via2l0X2RvbV9l
bGVtZW50X2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfZWRpdGluZ192YWx1ZSkgdm9pZAogd2Via2l0
X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2VkaXRpbmdfdmFsdWUoV2ViS2l0RE9NSFRNTElu
cHV0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MTElFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTElFbGVtZW50LmNwcApp
bmRleCA3MTMzMWMzNjRkZi4uYzYwYWQ3ZmZiNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTElFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTExJRWxlbWVudC5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNp
bmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNf
QkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktp
dERPTUhUTUxMSUVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MTElFbGVtZW50KiBvYmopCkBAIC0y
MDIsMyArMjA0LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfbGlfZWxlbWVudF9zZXRfdmFsdWUo
V2ViS2l0RE9NSFRNTExJRWxlbWVudCogc2VsZiwgZ2xvbmcgdmEKICAgICBpdGVtLT5zZXRJbnRl
Z3JhbEF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OnZhbHVlQXR0ciwgdmFsdWUpOwogfQog
CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExJ
RWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxMSUVsZW1lbnQuaAppbmRleCBjZmQxZTA1NTc5Yy4uNzdiM2Q1
MWNlNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTElFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMSUVs
ZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxMSUVsZW1lbnRD
bGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9Owog
Ci1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9o
dG1sX2xpX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2xpX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTExJRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRt
bF9saV9lbGVtZW50X2dldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTExJRWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2xpX2VsZW1lbnRfZ2V0
X3R5cGVfYXR0cihXZWJLaXRET01IVE1MTElFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MTElFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9saV9l
bGVtZW50X3NldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTExJRWxlbWVudCogc2VsZiwgY29uc3Qg
Z2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
bGlfZWxlbWVudF9zZXRfdHlwZV9hdHRyKFdlYktpdERPTUhUTUxMSUVsZW1lbnQqIHNlbGYsIGNv
bnN0IGdjaAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxMSUVsZW1lbnQKICAqCiAgKiBSZXR1
cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBn
bG9uZwogd2Via2l0X2RvbV9odG1sX2xpX2VsZW1lbnRfZ2V0X3ZhbHVlKFdlYktpdERPTUhUTUxM
SUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2LDEwIEBAIHdlYmtpdF9kb21faHRt
bF9saV9lbGVtZW50X2dldF92YWx1ZShXZWJLaXRET01IVE1MTElFbGVtZW50KiBzZWxmKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MTElFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dsb25nCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21faHRtbF9saV9lbGVtZW50X3NldF92YWx1ZShXZWJLaXRET01IVE1MTElFbGVtZW50KiBzZWxm
LCBnbG9uZyB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExhYmVs
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTExhYmVsRWxlbWVudC5jcHAKaW5kZXggOTg3OWYyYmMyNGIu
LjM3NjNjNTczZDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExhYmVsRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxMYWJlbEVsZW1lbnQuY3BwCkBAIC0zOCw2ICszOCw4IEBACiAjaW5jbHVkZSA8d3Rm
L0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9S
RV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MTGFi
ZWxFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTExhYmVsRWxlbWVudCogb2JqKQpAQCAtMTkyLDMg
KzE5NCw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX2xhYmVsX2VsZW1lbnRfc2V0X2h0bWxfZm9y
KFdlYktpdERPTUhUTUxMYWJlbEVsZW1lbnQqIHNlbGYsCiAgICAgaXRlbS0+c2V0QXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmZvckF0dHIsIGNvbnZl
cnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxMYWJlbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGFiZWxFbGVtZW50LmgKaW5k
ZXggMDFiN2Q2ODgwOWYuLjZkM2U1MTY4N2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExhYmVsRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MTGFiZWxFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3Ry
dWN0IF9XZWJLaXRET01IVE1MTGFiZWxFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxF
bGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lU
X0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF9sYWJlbF9lbGVtZW50X2dldF90eXBl
KHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9sYWJlbF9l
bGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxMYWJlbEVs
ZW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUhUTUxG
b3JtRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCoKK1dF
QktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCoKIHdlYmtpdF9kb21faHRt
bF9sYWJlbF9lbGVtZW50X2dldF9mb3JtKFdlYktpdERPTUhUTUxMYWJlbEVsZW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9sYWJlbF9lbGVtZW50
X2dldF9mb3JtKFdlYktpdERPTUhUTUxMYWJlbEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxMYWJlbEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9t
X2h0bWxfbGFiZWxfZWxlbWVudF9nZXRfaHRtbF9mb3IoV2ViS2l0RE9NSFRNTExhYmVsRWxlbWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2xhYmVs
X2VsZW1lbnRfZ2V0X2h0bWxfZm9yKFdlYktpdERPTUhUTUxMYWJlbEVsZW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxMYWJlbEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2No
YXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9odG1sX2xhYmVsX2VsZW1lbnRfc2V0X2h0bWxfZm9yKFdlYktpdERPTUhUTUxMYWJl
bEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTExlZ2VuZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMZWdlbmRFbGVtZW50
LmNwcAppbmRleCBjNTI3MjZjMTkwYy4uYTljNjJiZTdiOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
TGVnZW5kRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMZWdlbmRFbGVtZW50LmNwcApAQCAtMzcs
NiArMzcsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogV2ViS2l0RE9NSFRNTExlZ2VuZEVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MTGVn
ZW5kRWxlbWVudCogb2JqKQpAQCAtMTkyLDMgKzE5NCw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1s
X2xlZ2VuZF9lbGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MTGVnZW5kRWxlbWVudCogc2Vs
ZiwKICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6
OkhUTUxOYW1lczo6YWxpZ25BdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRf
SUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGVnZW5kRWxlbWVudC5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxMZWdlbmRFbGVtZW50LmgKaW5kZXggNzBlODUzYzQ1NjMuLjgyNjZiMDY2NjZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTExlZ2VuZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExlZ2Vu
ZEVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxMZWdlbmRF
bGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNz
OwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtp
dF9kb21faHRtbF9sZWdlbmRfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4
ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbGVnZW5kX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExlZ2VuZEVsZW1lbnQKICAqCiAgKiBSZXR1cm5z
OiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUhUTUxGb3JtRWxlbWVudAorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktp
dERPTUhUTUxGb3JtRWxlbWVudCoKIHdlYmtpdF9kb21faHRtbF9sZWdlbmRfZWxlbWVudF9nZXRf
Zm9ybShXZWJLaXRET01IVE1MTGVnZW5kRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCAr
NjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2xlZ2VuZF9lbGVtZW50X2dldF9mb3JtKFdlYktpdERP
TUhUTUxMZWdlbmRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTGVn
ZW5kRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2No
YXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9sZWdlbmRfZWxl
bWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRNTExlZ2VuZEVsZW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTcxLDggKzc1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9sZWdlbmRfZWxlbWVudF9nZXRfYWxp
Z24oV2ViS2l0RE9NSFRNTExlZ2VuZEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxMZWdlbmRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9sZWdl
bmRfZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTExlZ2VuZEVsZW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExp
bmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IGNlODFiZWI2ODk3
Li43N2QwNDAyNmFjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTM4LDYgKzM4LDggQEAKICNpbmNsdWRlIDx3dGYv
R2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JF
X0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxMaW5r
RWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxMaW5rRWxlbWVudCogb2JqKQpAQCAtNTA4LDMgKzUx
MCw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9zZXRfc2l6ZXMoV2ViS2l0
RE9NSFRNTExpbmtFbGVtZW50KiBsaW5rRWxlbWVuCiAKICAgICBXZWJLaXQ6OmNvcmUobGlua0Vs
ZW1lbnQpLT5zaXplcygpLnNldFZhbHVlKFN0cmluZzo6ZnJvbVVURjgodmFsdWUpKTsKIH0KK0df
R05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGlua0Vs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MTGlua0VsZW1lbnQuaAppbmRleCAxNGMzMzUzZDE3Ni4uNzVmYzli
NmE4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGlua0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExp
bmtFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MTGlua0Vs
ZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7
CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0
X2RvbV9odG1sX2xpbmtfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1
MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxMaW5rRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2di
b29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29s
ZWFuCiB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF9kaXNhYmxlZChXZWJLaXRET01I
VE1MTGlua0VsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9k
b21faHRtbF9saW5rX2VsZW1lbnRfZ2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxMaW5rRWxlbWVu
dCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50CiAgKiBAdmFs
dWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfc2V0X2Rpc2FibGVkKFdlYktp
dERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTcx
LDggKzc1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfc2V0X2Rpc2FibGVkKFdl
YktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgZ2Jvb2xlCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTExpbmtFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2xp
bmtfZWxlbWVudF9nZXRfY2hhcnNldChXZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTgwLDggKzg2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfZ2V0
X2NoYXJzZXQoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MTGlua0VsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2xp
bmtfZWxlbWVudF9zZXRfY2hhcnNldChXZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtODksOCArOTcsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2xpbmtfZWxlbWVudF9zZXRfY2hhcnNldChXZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNl
bGYsIGNvbnN0IGcKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTGlua0VsZW1lbnQKICAqCiAg
KiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJF
Q0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF9ocmVmKFdlYktp
dERPTUhUTUxMaW5rRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtOTgsOCArMTA4LDEwIEBAIHdl
YmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfZ2V0X2hyZWYoV2ViS2l0RE9NSFRNTExpbmtFbGVt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTGlua0VsZW1lbnQKICAqIEB2
YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9zZXRfaHJlZihXZWJLaXRET01I
VE1MTGlua0VsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTA3
LDggKzExOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X3NldF9ocmVmKFdlYktp
dERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYQogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxMaW5rRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9s
aW5rX2VsZW1lbnRfZ2V0X2hyZWZsYW5nKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtMTE2LDggKzEzMCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50
X2dldF9ocmVmbGFuZyhXZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxMaW5rRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0
bWxfbGlua19lbGVtZW50X3NldF9ocmVmbGFuZyhXZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTI1LDggKzE0MSwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfbGlua19lbGVtZW50X3NldF9ocmVmbGFuZyhXZWJLaXRET01IVE1MTGlua0Vs
ZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9nZXRfbWVk
aWEoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMzQsOCArMTUy
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfZ2V0X21lZGlhKFdlYktpdERPTUhU
TUxMaW5rRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExpbmtFbGVt
ZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfc2V0X21lZGlh
KFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAog
LyoqCkBAIC0xNDMsOCArMTYzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfc2V0
X21lZGlhKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoCiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0
X2RvbV9odG1sX2xpbmtfZWxlbWVudF9nZXRfcmVsKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMTUyLDggKzE3NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbGlua19l
bGVtZW50X2dldF9yZWwoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MTGlua0VsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9o
dG1sX2xpbmtfZWxlbWVudF9zZXRfcmVsKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNjEsOCArMTg1LDEwIEBAIHdlYmtpdF9k
b21faHRtbF9saW5rX2VsZW1lbnRfc2V0X3JlbChXZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50CiAg
KgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9E
RVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9nZXRfcmV2KFdl
YktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTcwLDggKzE5NiwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF9yZXYoV2ViS2l0RE9NSFRNTExpbmtF
bGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTGlua0VsZW1lbnQKICAq
IEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9zZXRfcmV2KFdlYktpdERP
TUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0x
NzksOCArMjA3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfc2V0X3JldihXZWJL
aXRET01IVE1MTGlua0VsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyCiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTExpbmtFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1s
X2xpbmtfZWxlbWVudF9nZXRfdGFyZ2V0KFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtMTg4LDggKzIxOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50
X2dldF90YXJnZXQoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MTGlua0VsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X2xpbmtfZWxlbWVudF9zZXRfdGFyZ2V0KFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xOTcsOCArMjI5LDEwIEBAIHdlYmtpdF9k
b21faHRtbF9saW5rX2VsZW1lbnRfc2V0X3RhcmdldChXZWJLaXRET01IVE1MTGlua0VsZW1lbnQq
IHNlbGYsIGNvbnN0IGdjCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50CiAg
KgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9E
RVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9nZXRfdHlwZV9h
dHRyKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjA2LDggKzI0
MCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF90eXBlX2F0dHIoV2ViS2l0
RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTGlu
a0VsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9zZXRf
dHlwZV9hdHRyKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlKTsKIAogLyoqCkBAIC0yMTUsOCArMjUxLDEwIEBAIHdlYmtpdF9kb21faHRtbF9saW5rX2Vs
ZW1lbnRfc2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNlbGYsIGNvbnN0
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50CiAgKgogICogUmV0dXJuczog
KHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01TdHlsZVNoZWV0CisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
V2ViS2l0RE9NU3R5bGVTaGVldCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTVN0eWxlU2hl
ZXQqCiB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF9zaGVldChXZWJLaXRET01IVE1M
TGlua0VsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTIyNiw4ICsyNjQsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2xpbmtfZWxlbWVudF9nZXRfc2hlZXQoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBz
ZWxmKTsKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NRE9NVG9rZW5M
aXN0CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01ET01Ub2tl
bkxpc3QqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01ET01Ub2tlbkxpc3QqCiB3ZWJraXRf
ZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF9zaXplcyhXZWJLaXRET01IVE1MTGlua0VsZW1lbnQq
IHNlbGYpOwogCiAvKioKQEAgLTIzNiw4ICsyNzYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2xpbmtf
ZWxlbWVudF9nZXRfc2l6ZXMoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmKTsKICAqIEB2
YWx1ZTogYSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfc2V0
X3NpemVzKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVl
KTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWFwRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTE1hcEVsZW1lbnQuY3BwCmluZGV4IDExZGNhYTlkODEwLi5iMTNiZGNkM2Y2MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxNYXBFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1hcEVsZW1lbnQu
Y3BwCkBAIC0zNyw2ICszNyw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MTWFwRWxlbWVudCoga2l0KFdlYkNvcmU6
OkhUTUxNYXBFbGVtZW50KiBvYmopCkBAIC0xOTIsMyArMTk0LDQgQEAgdm9pZCB3ZWJraXRfZG9t
X2h0bWxfbWFwX2VsZW1lbnRfc2V0X25hbWUoV2ViS2l0RE9NSFRNTE1hcEVsZW1lbnQqIHNlbGYs
IGNvbnN0IGcKICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdl
YkNvcmU6OkhUTUxOYW1lczo6bmFtZUF0dHIsIGNvbnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVD
X0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNYXBFbGVtZW50
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTE1hcEVsZW1lbnQuaAppbmRleCA2ZjVhNjI1NTVmMC4uZGVjYTEzOGYyNzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MTWFwRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWFwRWxlbWVu
dC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTE1hcEVsZW1lbnRDbGFz
cyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1X
RUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1s
X21hcF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdl
YmtpdF9kb21faHRtbF9tYXBfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MTWFwRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTog
QSAjV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1M
Q29sbGVjdGlvbioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgog
d2Via2l0X2RvbV9odG1sX21hcF9lbGVtZW50X2dldF9hcmVhcyhXZWJLaXRET01IVE1MTWFwRWxl
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX21h
cF9lbGVtZW50X2dldF9hcmVhcyhXZWJLaXRET01IVE1MTWFwRWxlbWVudCogc2VsZik7CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTE1hcEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hh
cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJr
aXRfZG9tX2h0bWxfbWFwX2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0RE9NSFRNTE1hcEVsZW1lbnQq
IHNlbGYpOwogCiAvKioKQEAgLTcxLDggKzc1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9tYXBfZWxl
bWVudF9nZXRfbmFtZShXZWJLaXRET01IVE1MTWFwRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTE1hcEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X21hcF9lbGVtZW50X3NldF9uYW1lKFdlYktpdERPTUhUTUxNYXBFbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNYXJx
dWVlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1hcnF1ZWVFbGVtZW50LmNwcAppbmRleCAzMDg4ZTlh
ODA1YS4uMDI4NWM4NDc3ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWFycXVlZUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MTWFycXVlZUVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5j
bHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JF
R0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRE
T01IVE1MTWFycXVlZUVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MTWFycXVlZUVsZW1lbnQqIG9i
aikKQEAgLTExNywzICsxMTksNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9tYXJxdWVlX2VsZW1l
bnRfc3RvcChXZWJLaXRET01IVE1MTWFycXVlZUVsZW1lbnQqIHNlbGYpCiAgICAgV2ViQ29yZTo6
SFRNTE1hcnF1ZWVFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwogICAgIGl0ZW0t
PnN0b3AoKTsKIH0KK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MTWFycXVlZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWFycXVlZUVsZW1lbnQuaAppbmRl
eCAwZDZiODJkZjQwMi4uYzZmMGExOTZmNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWFycXVlZUVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTE1hcnF1ZWVFbGVtZW50LmgKQEAgLTQ1LDIzICs0NSwyNyBA
QCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxNYXJxdWVlRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRE
T01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUK
K1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfbWFycXVlZV9lbGVtZW50
X2dldF90eXBlKHZvaWQpOwogCiAvKioKICAqIHdlYmtpdF9kb21faHRtbF9tYXJxdWVlX2VsZW1l
bnRfc3RhcnQ6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE1hcnF1ZWVFbGVtZW50CiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF9tYXJxdWVlX2VsZW1lbnRfc3RhcnQoV2ViS2l0RE9NSFRNTE1hcnF1ZWVFbGVtZW50KiBz
ZWxmKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX2h0bWxfbWFycXVlZV9lbGVtZW50X3N0b3A6CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE1hcnF1ZWVFbGVtZW50CiAgKgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9tYXJxdWVl
X2VsZW1lbnRfc3RvcChXZWJLaXRET01IVE1MTWFycXVlZUVsZW1lbnQqIHNlbGYpOwogCiBHX0VO
RF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNZW51RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1l
bnVFbGVtZW50LmNwcAppbmRleCBkYzZiNmI0ZTYwOS4uMDMyNWNiODFiYWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MTWVudUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWVudUVsZW1lbnQuY3BwCkBA
IC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MTWVudUVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1M
TWVudUVsZW1lbnQqIG9iaikKQEAgLTE2NiwzICsxNjgsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRt
bF9tZW51X2VsZW1lbnRfc2V0X2NvbXBhY3QoV2ViS2l0RE9NSFRNTE1lbnVFbGVtZW50KiBzZWxm
LCBnYgogICAgIGl0ZW0tPnNldEJvb2xlYW5BdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVzOjpj
b21wYWN0QXR0ciwgdmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTE1lbnVFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1lbnVFbGVtZW50
LmgKaW5kZXggMWY2NzA4NjM5M2QuLjJhNDZiNTg1MzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1l
bnVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNZW51RWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBA
IHN0cnVjdCBfV2ViS2l0RE9NSFRNTE1lbnVFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhU
TUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VC
S0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF9tZW51X2VsZW1lbnRfZ2V0X3R5
cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX21lbnVf
ZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTWVudUVs
ZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29s
ZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX21lbnVfZWxl
bWVudF9nZXRfY29tcGFjdChXZWJLaXRET01IVE1MTWVudUVsZW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9tZW51X2VsZW1lbnRfZ2V0X2NvbXBh
Y3QoV2ViS2l0RE9NSFRNTE1lbnVFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MTWVudUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX21lbnVf
ZWxlbWVudF9zZXRfY29tcGFjdChXZWJLaXRET01IVE1MTWVudUVsZW1lbnQqIHNlbGYsIGdib29s
ZWFuIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWV0YUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxNZXRhRWxlbWVudC5jcHAKaW5kZXggMGQ1MGMwNTY2NWYuLjU1Mjli
ZDUzNTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TE1ldGFFbGVtZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVD
QVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50
KiBraXQoV2ViQ29yZTo6SFRNTE1ldGFFbGVtZW50KiBvYmopCkBAIC0yNzYsMyArMjc4LDQgQEAg
dm9pZCB3ZWJraXRfZG9tX2h0bWxfbWV0YV9lbGVtZW50X3NldF9zY2hlbWUoV2ViS2l0RE9NSFRN
TE1ldGFFbGVtZW50KiBzZWxmLCBjb24KICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6c2NoZW1lQXR0ciwgY29udmVydGVkVmFs
dWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTE1ldGFFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50LmgKaW5kZXggZWNkYTk3
MDg0YTUuLmRjODM3MmNmMWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxNZXRhRWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0
RE9NSFRNTE1ldGFFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3Mg
cGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQg
R1R5cGUKIHdlYmtpdF9kb21faHRtbF9tZXRhX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8q
KgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX21ldGFfZWxlbWVudF9nZXRfdHlw
ZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfbWV0YV9lbGVtZW50X2dldF9jb250ZW50KFdlYktp
dERPTUhUTUxNZXRhRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX21ldGFfZWxlbWVudF9nZXRfY29udGVudChXZWJLaXRET01IVE1MTWV0YUVs
ZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxNZXRhRWxlbWVudAogICog
QHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfbWV0YV9lbGVtZW50X3NldF9jb250ZW50KFdlYktp
dERPTUhUTUxNZXRhRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBA
IC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbWV0YV9lbGVtZW50X3NldF9jb250ZW50
KFdlYktpdERPTUhUTUxNZXRhRWxlbWVudCogc2VsZiwgY29uc3QgZwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxNZXRhRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRt
bF9tZXRhX2VsZW1lbnRfZ2V0X2h0dHBfZXF1aXYoV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbWV0YV9lbGVt
ZW50X2dldF9odHRwX2VxdWl2KFdlYktpdERPTUhUTUxNZXRhRWxlbWVudCogc2VsZik7CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21faHRtbF9tZXRhX2VsZW1lbnRfc2V0X2h0dHBfZXF1aXYoV2ViS2l0RE9NSFRNTE1ldGFFbGVt
ZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTg5LDggKzk3LDEwIEBA
IHdlYmtpdF9kb21faHRtbF9tZXRhX2VsZW1lbnRfc2V0X2h0dHBfZXF1aXYoV2ViS2l0RE9NSFRN
TE1ldGFFbGVtZW50KiBzZWxmLCBjb25zCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE1ldGFF
bGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioK
K1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX21ldGFfZWxlbWVudF9n
ZXRfbmFtZShXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTk4LDgg
KzEwOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbWV0YV9lbGVtZW50X2dldF9uYW1lKFdlYktpdERP
TUhUTUxNZXRhRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE1ldGFF
bGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9tZXRhX2VsZW1lbnRfc2V0X25h
bWUoV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwog
CiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Via2l0X2RvbV9odG1sX21ldGFfZWxlbWVudF9z
ZXRfbmFtZShXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGEKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hh
cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJr
aXRfZG9tX2h0bWxfbWV0YV9lbGVtZW50X2dldF9zY2hlbWUoV2ViS2l0RE9NSFRNTE1ldGFFbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMTYsOCArMTMwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9t
ZXRhX2VsZW1lbnRfZ2V0X3NjaGVtZShXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxNZXRhRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hh
cgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJr
aXRfZG9tX2h0bWxfbWV0YV9lbGVtZW50X3NldF9zY2hlbWUoV2ViS2l0RE9NSFRNTE1ldGFFbGVt
ZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxNb2RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTW9kRWxlbWVudC5jcHAKaW5kZXgg
MmU1OTAxNzBjMWIuLjVkZGUxNGNhNjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1vZEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MTW9kRWxlbWVudC5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNs
dWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVH
SU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERP
TUhUTUxNb2RFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTE1vZEVsZW1lbnQqIG9iaikKQEAgLTIw
NCwzICsyMDYsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9tb2RfZWxlbWVudF9zZXRfZGF0ZV90
aW1lKFdlYktpdERPTUhUTUxNb2RFbGVtZW50KiBzZWxmLCBjbwogICAgIGl0ZW0tPnNldEF0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpkYXRldGltZUF0
dHIsIGNvbnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05T
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxNb2RFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1vZEVsZW1lbnQu
aAppbmRleCBlOWM3NzBmYWY0Ni4uNjE3ZjBkMDFkNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTW9k
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTW9kRWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0
cnVjdCBfV2ViS2l0RE9NSFRNTE1vZEVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVs
ZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRf
REVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX21vZF9lbGVtZW50X2dldF90eXBlKHZv
aWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9tb2RfZWxlbWVu
dF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTW9kRWxlbWVudAog
ICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRf
REVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9tb2RfZWxlbWVudF9nZXRfY2l0ZShX
ZWJLaXRET01IVE1MTW9kRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAg
d2Via2l0X2RvbV9odG1sX21vZF9lbGVtZW50X2dldF9jaXRlKFdlYktpdERPTUhUTUxNb2RFbGVt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTW9kRWxlbWVudAogICogQHZh
bHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfbW9kX2VsZW1lbnRfc2V0X2NpdGUoV2ViS2l0RE9NSFRN
TE1vZEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCAr
NzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX21vZF9lbGVtZW50X3NldF9jaXRlKFdlYktpdERPTUhU
TUxNb2RFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhcioKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MTW9kRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9tb2RfZWxl
bWVudF9nZXRfZGF0ZV90aW1lKFdlYktpdERPTUhUTUxNb2RFbGVtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbW9kX2VsZW1lbnRfZ2V0X2RhdGVf
dGltZShXZWJLaXRET01IVE1MTW9kRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTE1vZEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX21vZF9lbGVt
ZW50X3NldF9kYXRlX3RpbWUoV2ViS2l0RE9NSFRNTE1vZEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9MaXN0RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudC5jcHAKaW5kZXggYjVkYzE5Yjc0Y2EuLmEz
MGM2ZDYyY2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxPTGlzdEVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSA8d3RmL0dl
dFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9E
RVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MT0xpc3RF
bGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTE9MaXN0RWxlbWVudCogb2JqKQpAQCAtMjM2LDMgKzIz
OCw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX29fbGlzdF9lbGVtZW50X3NldF90eXBlX2F0dHIo
V2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudCogc2VsCiAgICAgaXRlbS0+c2V0QXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnR5cGVBdHRyLCBjb252ZXJ0
ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MT0xpc3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudC5oCmluZGV4
IGJjYThhMmQxZWY3Li5kZWUxMjhmMTAyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPTGlzdEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVj
dCBfV2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxl
bWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9E
RVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfb19saXN0X2VsZW1lbnRfZ2V0X3R5cGUo
dm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX29fbGlzdF9l
bGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPTGlzdEVs
ZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29s
ZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX29fbGlzdF9l
bGVtZW50X2dldF9jb21wYWN0KFdlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vX2xpc3RfZWxlbWVudF9nZXRf
Y29tcGFjdChXZWJLaXRET01IVE1MT0xpc3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MT0xpc3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRt
bF9vX2xpc3RfZWxlbWVudF9zZXRfY29tcGFjdChXZWJLaXRET01IVE1MT0xpc3RFbGVtZW50KiBz
ZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX29fbGlzdF9lbGVtZW50X3NldF9jb21wYWN0KFdlYktpdERPTUhUTUxPTGlzdEVsZW1l
bnQqIHNlbGYsIGdib28KICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT0xpc3RFbGVtZW50CiAg
KgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RF
UFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF9vX2xpc3RfZWxlbWVudF9nZXRfc3RhcnQo
V2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtODAsOCArODYsMTAg
QEAgd2Via2l0X2RvbV9odG1sX29fbGlzdF9lbGVtZW50X2dldF9zdGFydChXZWJLaXRET01IVE1M
T0xpc3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT0xpc3RFbGVt
ZW50CiAgKiBAdmFsdWU6IEEgI2dsb25nCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9vX2xpc3RfZWxlbWVudF9zZXRfc3Rh
cnQoV2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioK
QEAgLTg5LDggKzk3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vX2xpc3RfZWxlbWVudF9zZXRfc3Rh
cnQoV2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudCogc2VsZiwgZ2xvbmcKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MT0xpc3RFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9o
dG1sX29fbGlzdF9lbGVtZW50X2dldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtOTgsOCArMTA4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vX2xp
c3RfZWxlbWVudF9nZXRfdHlwZV9hdHRyKFdlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX29fbGlzdF9lbGVtZW50X3NldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRN
TE9MaXN0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9iamVjdEVs
ZW1lbnQuY3BwCmluZGV4IGIxYjY0N2UwYTlhLi45MDY4ZTMxMDE1ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxPYmplY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQuY3BwCkBA
IC0zOCw2ICszOCw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCoga2l0KFdlYkNvcmU6OkhU
TUxPYmplY3RFbGVtZW50KiBvYmopCkBAIC03NTAsMyArNzUyLDQgQEAgV2ViS2l0RE9NRG9jdW1l
bnQqIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9nZXRfY29udGVudF9kb2N1bWVudChX
ZWJLaXRET00KICAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7CiB9
CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
T2JqZWN0RWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50LmgKaW5kZXggNWQzYmRlNzIy
NTguLjEwY2VmYTBkNmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTE9iamVjdEVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktp
dERPTUhUTUxPYmplY3RFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xh
c3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FU
RUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsK
IAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRf
Z2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUhUTUxGb3JtRWxl
bWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCoKK1dFQktJVF9E
RVBSRUNBVEVEIFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCoKIHdlYmtpdF9kb21faHRtbF9vYmpl
Y3RfZWxlbWVudF9nZXRfZm9ybShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X2dl
dF9mb3JtKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21f
aHRtbF9vYmplY3RfZWxlbWVudF9nZXRfY29kZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX29iamVjdF9l
bGVtZW50X2dldF9jb2RlKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgog
ICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRf
ZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfc2V0X2NvZGUoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtODAsOCArODYsMTAgQEAg
d2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X3NldF9jb2RlKFdlYktpdERPTUhUTUxPYmpl
Y3RFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RF
bGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioK
K1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50
X2dldF9hbGlnbihXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
ODksOCArOTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X2dldF9hbGlnbihX
ZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTE9iamVjdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX29iamVjdF9l
bGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwgY29uc3Qg
Z2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC05OCw4ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9odG1s
X29iamVjdF9lbGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2Vs
ZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudAogICoKICAq
IFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVD
QVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9nZXRfYXJjaGl2ZShX
ZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTA3LDggKzExOSwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X2FyY2hpdmUoV2ViS2l0RE9N
SFRNTE9iamVjdEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmpl
Y3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9z
ZXRfYXJjaGl2ZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IHZhbHVlKTsKIAogLyoqCkBAIC0xMTYsOCArMTMwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9vYmpl
Y3RfZWxlbWVudF9zZXRfYXJjaGl2ZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwg
Y29uCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqCiAgKiBSZXR1
cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQg
Z2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X2JvcmRlcihXZWJLaXRE
T01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTI1LDggKzE0MSwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X2JvcmRlcihXZWJLaXRET01IVE1MT2Jq
ZWN0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1l
bnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X3NldF9ib3Jk
ZXIoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7
CiAKIC8qKgpAQCAtMTM0LDggKzE1MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1l
bnRfc2V0X2JvcmRlcihXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwgY29ucwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAj
Z2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgog
d2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X2dldF9jb2RlX2Jhc2UoV2ViS2l0RE9NSFRN
TE9iamVjdEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE0Myw4ICsxNjMsMTAgQEAgd2Via2l0
X2RvbV9odG1sX29iamVjdF9lbGVtZW50X2dldF9jb2RlX2Jhc2UoV2ViS2l0RE9NSFRNTE9iamVj
dEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50
CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfY29kZV9i
YXNlKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
OwogCiAvKioKQEAgLTE1Miw4ICsxNzQsMTAgQEAgd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVt
ZW50X3NldF9jb2RlX2Jhc2UoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGMKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEg
I2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioK
IHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9nZXRfY29kZV90eXBlKFdlYktpdERPTUhU
TUxPYmplY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNjEsOCArMTg1LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9nZXRfY29kZV90eXBlKFdlYktpdERPTUhUTUxPYmpl
Y3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVu
dAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRf
REVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfc2V0X2NvZGVf
dHlwZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVl
KTsKIAogLyoqCkBAIC0xNzAsOCArMTk2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxl
bWVudF9zZXRfY29kZV90eXBlKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmLCBjCiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIq
CiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X2RhdGEoV2ViS2l0RE9NSFRNTE9i
amVjdEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE3OSw4ICsyMDcsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX29iamVjdF9lbGVtZW50X2dldF9kYXRhKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50
KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudAogICogQHZh
bHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfc2V0X2RhdGEoV2ViS2l0RE9N
SFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAt
MTg4LDggKzIxOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfc2V0X2RhdGEo
V2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0
X2RvbV9odG1sX29iamVjdF9lbGVtZW50X2dldF9kZWNsYXJlKFdlYktpdERPTUhUTUxPYmplY3RF
bGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xOTcsOCArMjI5LDEwIEBAIHdlYmtpdF9kb21faHRt
bF9vYmplY3RfZWxlbWVudF9nZXRfZGVjbGFyZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqIEB2YWx1
ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X3NldF9kZWNsYXJlKFdlYktp
dERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIC8qKgpAQCAt
MjA2LDggKzI0MCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfc2V0X2RlY2xh
cmUoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGdibwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9o
dG1sX29iamVjdF9lbGVtZW50X2dldF9oZWlnaHQoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQq
IHNlbGYpOwogCiAvKioKQEAgLTIxNSw4ICsyNTEsMTAgQEAgd2Via2l0X2RvbV9odG1sX29iamVj
dF9lbGVtZW50X2dldF9oZWlnaHQoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dj
aGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxPYmpl
Y3RFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTIyNCw4ICsy
NjIsMTAgQEAgd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X3NldF9oZWlnaHQoV2ViS2l0
RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGNvbnMKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MT2JqZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0
X2VsZW1lbnRfZ2V0X2hzcGFjZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtMjMzLDggKzI3MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRf
Z2V0X2hzcGFjZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9o
dG1sX29iamVjdF9lbGVtZW50X3NldF9oc3BhY2UoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQq
IHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCkBAIC0yNDIsOCArMjg0LDEwIEBAIHdlYmtpdF9k
b21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfaHNwYWNlKFdlYktpdERPTUhUTUxPYmplY3RFbGVt
ZW50KiBzZWxmLCBnbG9uCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X25h
bWUoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTI1MSw4ICsy
OTUsMTAgQEAgd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X2dldF9uYW1lKFdlYktpdERP
TUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT2Jq
ZWN0RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRf
c2V0X25hbWUoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2
YWx1ZSk7CiAKIC8qKgpAQCAtMjYwLDggKzMwNiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0
X2VsZW1lbnRfc2V0X25hbWUoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGNvbnN0
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2No
YXIqCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X3N0YW5kYnkoV2ViS2l0RE9N
SFRNTE9iamVjdEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTI2OSw4ICszMTcsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X2dldF9zdGFuZGJ5KFdlYktpdERPTUhUTUxPYmpl
Y3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVu
dAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRf
REVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfc2V0X3N0YW5k
YnkoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7
CiAKIC8qKgpAQCAtMjc4LDggKzMyOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1l
bnRfc2V0X3N0YW5kYnkoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGNvbgogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAj
Z2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgog
d2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X2dldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRN
TE9iamVjdEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTI4Nyw4ICszMzksMTAgQEAgd2Via2l0
X2RvbV9odG1sX29iamVjdF9lbGVtZW50X2dldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTE9iamVj
dEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50
CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfdHlwZV9h
dHRyKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
OwogCiAvKioKQEAgLTI5Niw4ICszNTAsMTAgQEAgd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVt
ZW50X3NldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGMKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEg
I2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioK
IHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9nZXRfdXNlX21hcChXZWJLaXRET01IVE1M
T2JqZWN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMzA1LDggKzM2MSwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X3VzZV9tYXAoV2ViS2l0RE9NSFRNTE9iamVjdEVs
ZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAg
KiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBS
RUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfdXNlX21hcChX
ZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAog
LyoqCkBAIC0zMTQsOCArMzcyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9z
ZXRfdXNlX21hcChXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwgY29uCiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9u
ZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0
X2RvbV9odG1sX29iamVjdF9lbGVtZW50X2dldF92c3BhY2UoV2ViS2l0RE9NSFRNTE9iamVjdEVs
ZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTMyMyw4ICszODMsMTAgQEAgd2Via2l0X2RvbV9odG1s
X29iamVjdF9lbGVtZW50X2dldF92c3BhY2UoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNl
bGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAgKiBAdmFsdWU6
IEEgI2dsb25nCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZv
aWQKIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfdnNwYWNlKFdlYktpdERPTUhU
TUxPYmplY3RFbGVtZW50KiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAKIC8qKgpAQCAtMzMyLDggKzM5
NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfc2V0X3ZzcGFjZShXZWJLaXRE
T01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwgZ2xvbgogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxPYmplY3RFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX29iamVj
dF9lbGVtZW50X2dldF93aWR0aChXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtMzQxLDggKzQwNSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRf
Z2V0X3dpZHRoKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0
bWxfb2JqZWN0X2VsZW1lbnRfc2V0X3dpZHRoKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBz
ZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTM1MCw4ICs0MTYsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X3NldF93aWR0aChXZWJLaXRET01IVE1MT2JqZWN0
RWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT2JqZWN0RWxl
bWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NRG9jdW1l
bnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Eb2N1bWVudCoKK1dFQktJVF9ERVBSRUNBVEVE
IFdlYktpdERPTURvY3VtZW50Kgogd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X2dldF9j
b250ZW50X2RvY3VtZW50KFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKIAogR19F
TkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT3B0R3JvdXBFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MT3B0R3JvdXBFbGVtZW50LmNwcAppbmRleCAwMmY1MTRhZmQ5Yi4uOWEwMTg5ZTg5YTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MT3B0R3JvdXBFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9wdEdy
b3VwRWxlbWVudC5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FU
SU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxPcHRHcm91cEVsZW1l
bnQqIGtpdChXZWJDb3JlOjpIVE1MT3B0R3JvdXBFbGVtZW50KiBvYmopCkBAIC0yMDIsMyArMjA0
LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfb3B0X2dyb3VwX2VsZW1lbnRfc2V0X2xhYmVsKFdl
YktpdERPTUhUTUxPcHRHcm91cEVsZW1lbnQqIHMKICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRo
b3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6bGFiZWxBdHRyLCBjb252ZXJ0
ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MT3B0R3JvdXBFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxlbWVudC5o
CmluZGV4IGJkODJmYThiZGQ0Li5lZTY3NTYxMjNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRH
cm91cEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxlbWVudC5oCkBAIC00NSw3ICs0
NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxlbWVudENsYXNzIHsKICAgICBX
ZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkg
R1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfb3B0X2dyb3Vw
X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0
X2RvbV9odG1sX29wdF9ncm91cF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxPcHRHcm91cEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVh
bgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgog
d2Via2l0X2RvbV9odG1sX29wdF9ncm91cF9lbGVtZW50X2dldF9kaXNhYmxlZChXZWJLaXRET01I
VE1MT3B0R3JvdXBFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfb3B0X2dyb3VwX2VsZW1lbnRfZ2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxP
cHRHcm91cEVsZW1lbnQqIHNlbAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPcHRHcm91cEVs
ZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX29wdF9ncm91cF9lbGVtZW50
X3NldF9kaXNhYmxlZChXZWJLaXRET01IVE1MT3B0R3JvdXBFbGVtZW50KiBzZWxmLCBnYm9vbGVh
biB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX29wdF9n
cm91cF9lbGVtZW50X3NldF9kaXNhYmxlZChXZWJLaXRET01IVE1MT3B0R3JvdXBFbGVtZW50KiBz
ZWwKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT3B0R3JvdXBFbGVtZW50CiAgKgogICogUmV0
dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVE
IGdjaGFyKgogd2Via2l0X2RvbV9odG1sX29wdF9ncm91cF9lbGVtZW50X2dldF9sYWJlbChXZWJL
aXRET01IVE1MT3B0R3JvdXBFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4NiwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfb3B0X2dyb3VwX2VsZW1lbnRfZ2V0X2xhYmVsKFdlYktpdERPTUhU
TUxPcHRHcm91cEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPcHRH
cm91cEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX29wdF9ncm91cF9lbGVt
ZW50X3NldF9sYWJlbChXZWJLaXRET01IVE1MT3B0R3JvdXBFbGVtZW50KiBzZWxmLCBjb25zdCBn
Y2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRpb25F
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudC5jcHAKaW5kZXggYzkxZDg3YTUyODEu
Ljg5NWE3MTI3MzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MT3B0aW9uRWxlbWVudC5jcHAKQEAgLTM3LDYgKzM3LDggQEAKICNpbmNsdWRlIDx3
dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdO
T1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxP
cHRpb25FbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQqIG9iaikKQEAgLTM3
NiwzICszNzgsNCBAQCBnbG9uZyB3ZWJraXRfZG9tX2h0bWxfb3B0aW9uX2VsZW1lbnRfZ2V0X2lu
ZGV4KFdlYktpdERPTUhUTUxPcHRpb25FbGVtZW50KiBzZWxmKQogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MT3B0aW9uRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRpb25FbGVtZW50LmgKaW5kZXggNTM4NzA1
NjkwOTMuLjNlOWZkODc3YWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dl
YktpdERPTUhUTUxPcHRpb25FbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50
Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJF
Q0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF9vcHRpb25fZWxlbWVudF9nZXRfdHlwZSh2b2lk
KTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb3B0aW9uX2VsZW1l
bnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFu
CitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVt
ZW50X2dldF9kaXNhYmxlZChXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50X2dldF9k
aXNhYmxlZChXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9o
dG1sX29wdGlvbl9lbGVtZW50X3NldF9kaXNhYmxlZChXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVu
dCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTcxLDggKzc1LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9vcHRpb25fZWxlbWVudF9zZXRfZGlzYWJsZWQoV2ViS2l0RE9NSFRNTE9wdGlv
bkVsZW1lbnQqIHNlbGYsIGdiCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUhUTUxGb3Jt
RWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCoKK1dFQktJ
VF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCoKIHdlYmtpdF9kb21faHRtbF9v
cHRpb25fZWxlbWVudF9nZXRfZm9ybShXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtODAsOCArODYsMTAgQEAgd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50
X2dldF9mb3JtKFdlYktpdERPTUhUTUxPcHRpb25FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9k
b21faHRtbF9vcHRpb25fZWxlbWVudF9nZXRfbGFiZWwoV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTg5LDggKzk3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vcHRp
b25fZWxlbWVudF9nZXRfbGFiZWwoV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPcHRpb25FbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dj
aGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF9vcHRpb25fZWxlbWVudF9zZXRfbGFiZWwoV2ViS2l0RE9NSFRNTE9wdGlv
bkVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtOTgsOCArMTA4
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vcHRpb25fZWxlbWVudF9zZXRfbGFiZWwoV2ViS2l0RE9N
SFRNTE9wdGlvbkVsZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TE9wdGlvbkVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1s
X29wdGlvbl9lbGVtZW50X2dldF9kZWZhdWx0X3NlbGVjdGVkKFdlYktpdERPTUhUTUxPcHRpb25F
bGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMDcsOCArMTE5LDEwIEBAIHdlYmtpdF9kb21faHRt
bF9vcHRpb25fZWxlbWVudF9nZXRfZGVmYXVsdF9zZWxlY3RlZChXZWJLaXRET01IVE1MT3B0aW9u
RWxlbWVudCoKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudAogICogQHZh
bHVlOiBBICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfb3B0aW9uX2VsZW1lbnRfc2V0X2RlZmF1bHRfc2Vs
ZWN0ZWQoV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsK
IAogLyoqCkBAIC0xMTYsOCArMTMwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9vcHRpb25fZWxlbWVu
dF9zZXRfZGVmYXVsdF9zZWxlY3RlZChXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCoKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2di
b29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29s
ZWFuCiB3ZWJraXRfZG9tX2h0bWxfb3B0aW9uX2VsZW1lbnRfZ2V0X3NlbGVjdGVkKFdlYktpdERP
TUhUTUxPcHRpb25FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMjUsOCArMTQxLDEwIEBAIHdl
YmtpdF9kb21faHRtbF9vcHRpb25fZWxlbWVudF9nZXRfc2VsZWN0ZWQoV2ViS2l0RE9NSFRNTE9w
dGlvbkVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPcHRpb25FbGVt
ZW50CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9vcHRpb25fZWxlbWVudF9zZXRf
c2VsZWN0ZWQoV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVl
KTsKIAogLyoqCkBAIC0xMzQsOCArMTUyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9vcHRpb25fZWxl
bWVudF9zZXRfc2VsZWN0ZWQoV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQqIHNlbGYsIGdiCiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIq
CiB3ZWJraXRfZG9tX2h0bWxfb3B0aW9uX2VsZW1lbnRfZ2V0X3ZhbHVlKFdlYktpdERPTUhUTUxP
cHRpb25FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNDMsOCArMTYzLDEwIEBAIHdlYmtpdF9k
b21faHRtbF9vcHRpb25fZWxlbWVudF9nZXRfdmFsdWUoV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPcHRpb25FbGVtZW50CiAgKiBA
dmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9vcHRpb25fZWxlbWVudF9zZXRfdmFsdWUoV2ViS2l0
RE9NSFRNTE9wdGlvbkVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpA
QCAtMTUyLDggKzE3NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb3B0aW9uX2VsZW1lbnRfc2V0X3Zh
bHVlKFdlYktpdERPTUhUTUxPcHRpb25FbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxPcHRpb25FbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2Rv
bV9odG1sX29wdGlvbl9lbGVtZW50X2dldF90ZXh0KFdlYktpdERPTUhUTUxPcHRpb25FbGVtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC0xNjEsOCArMTg1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vcHRp
b25fZWxlbWVudF9nZXRfdGV4dChXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCogc2VsZik7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwog
d2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50X2dldF9pbmRleChXZWJLaXRET01IVE1MT3B0
aW9uRWxlbWVudCogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9w
dGlvbnNDb2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwCmluZGV4
IDljMTE4NjMzYmVlLi5jOWY1NGNjMzVmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRpb25zQ29s
bGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHAKQEAgLTM0LDYg
KzM0LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIFdlYktpdERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbioga2l0KFdlYkNvcmU6OkhUTUxP
cHRpb25zQ29sbGVjdGlvbiogb2JqKQpAQCAtMTYzLDMgKzE2NSw0IEBAIGd1bG9uZyB3ZWJraXRf
ZG9tX2h0bWxfb3B0aW9uc19jb2xsZWN0aW9uX2dldF9sZW5ndGgoV2ViS2l0RE9NSFRNTE9wdGlv
bnNDb2xsZWN0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQ
UkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oCmluZGV4IGI3YmM2MDllMzg5Li4wMGYwYTgzZDQxZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT3B0
aW9uc0NvbGxlY3Rpb24uaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxP
cHRpb25zQ29sbGVjdGlvbkNsYXNzIHsKICAgICBXZWJLaXRET01IVE1MQ29sbGVjdGlvbkNsYXNz
IHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVE
IEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfb3B0aW9uc19jb2xsZWN0aW9uX2dldF90eXBlKHZvaWQp
OwogCiAvKioKQEAgLTU0LDggKzU0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vcHRpb25zX2NvbGxl
Y3Rpb25fZ2V0X3R5cGUodm9pZCk7CiAgKiBAbmFtZTogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5z
OiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJL
aXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21f
aHRtbF9vcHRpb25zX2NvbGxlY3Rpb25fbmFtZWRfaXRlbShXZWJLaXRET01IVE1MT3B0aW9uc0Nv
bGxlY3Rpb24qIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lKTsKIAogLyoqCkBAIC02Myw4ICs2NSwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfb3B0aW9uc19jb2xsZWN0aW9uX25hbWVkX2l0ZW0oV2ViS2l0
RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uKiBzZQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxP
cHRpb25zQ29sbGVjdGlvbgogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfb3B0aW9u
c19jb2xsZWN0aW9uX2dldF9zZWxlY3RlZF9pbmRleChXZWJLaXRET01IVE1MT3B0aW9uc0NvbGxl
Y3Rpb24qIHNlbGYpOwogCiAvKioKQEAgLTcyLDggKzc2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9v
cHRpb25zX2NvbGxlY3Rpb25fZ2V0X3NlbGVjdGVkX2luZGV4KFdlYktpdERPTUhUTUxPcHRpb25z
Q29sbGVjCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uCiAgKiBA
dmFsdWU6IEEgI2dsb25nCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9vcHRpb25zX2NvbGxlY3Rpb25fc2V0X3NlbGVjdGVk
X2luZGV4KFdlYktpdERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbiogc2VsZiwgZ2xvbmcgdmFsdWUp
OwogCiAvKioKQEAgLTgxLDggKzg3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vcHRpb25zX2NvbGxl
Y3Rpb25fc2V0X3NlbGVjdGVkX2luZGV4KFdlYktpdERPTUhUTUxPcHRpb25zQ29sbGVjCiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uCiAgKgogICogUmV0dXJuczog
QSAjZ3Vsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQUkVDQVRFRCBndWxv
bmcKIHdlYmtpdF9kb21faHRtbF9vcHRpb25zX2NvbGxlY3Rpb25fZ2V0X2xlbmd0aChXZWJLaXRE
T01IVE1MT3B0aW9uc0NvbGxlY3Rpb24qIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUGFyYWdyYXBoRWxlbWVu
dC5jcHAKaW5kZXggMTI0MDI4YTJjMjEuLjAxYjI4NTcyMGEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TFBhcmFncmFwaEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUGFyYWdyYXBoRWxlbWVudC5jcHAK
QEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50KiBraXQoV2ViQ29y
ZTo6SFRNTFBhcmFncmFwaEVsZW1lbnQqIG9iaikKQEAgLTE2OCwzICsxNzAsNCBAQCB2b2lkIHdl
YmtpdF9kb21faHRtbF9wYXJhZ3JhcGhfZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFBh
cmFncmFwaEVsZW1lbnQqCiAgICAgaXRlbS0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmFsaWduQXR0ciwgY29udmVydGVkVmFsdWUpOwogfQog
CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFBh
cmFncmFwaEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUGFyYWdyYXBoRWxlbWVudC5oCmluZGV4IGY4ZDkw
MmZiYTAyLi5hZDczYzQ1MThmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3Ry
dWN0IF9XZWJLaXRET01IVE1MUGFyYWdyYXBoRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01I
VE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dF
QktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfcGFyYWdyYXBoX2VsZW1lbnRf
Z2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1s
X3BhcmFncmFwaF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxQYXJhZ3JhcGhFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1s
X3BhcmFncmFwaF9lbGVtZW50X2dldF9hbGlnbihXZWJLaXRET01IVE1MUGFyYWdyYXBoRWxlbWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3BhcmFn
cmFwaF9lbGVtZW50X2dldF9hbGlnbihXZWJLaXRET01IVE1MUGFyYWdyYXBoRWxlbWVudCogc2Vs
ZikKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MUGFyYWdyYXBoRWxlbWVudAogICogQHZhbHVl
OiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2
b2lkCiB3ZWJraXRfZG9tX2h0bWxfcGFyYWdyYXBoX2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERP
TUhUTUxQYXJhZ3JhcGhFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiBHX0VO
RF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQ
YXJhbUVsZW1lbnQuY3BwCmluZGV4IDk5NTI3YWYzYzNhLi4yOWJhMGYxMTVmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxQYXJhbUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUGFyYW1FbGVtZW50LmNw
cApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTFBhcmFtRWxlbWVudCoga2l0KFdlYkNvcmU6
OkhUTUxQYXJhbUVsZW1lbnQqIG9iaikKQEAgLTI3NiwzICsyNzgsNCBAQCB2b2lkIHdlYmtpdF9k
b21faHRtbF9wYXJhbV9lbGVtZW50X3NldF92YWx1ZV90eXBlKFdlYktpdERPTUhUTUxQYXJhbUVs
ZW1lbnQqIHNlbAogICAgIGl0ZW0tPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
V2ViQ29yZTo6SFRNTE5hbWVzOjp2YWx1ZXR5cGVBdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAK
K0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUGFy
YW1FbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTFBhcmFtRWxlbWVudC5oCmluZGV4IDY4ODhhMGIxMDVjLi4w
OGY3MTNiY2VlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTFBhcmFtRWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRN
TFBhcmFtRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVu
dF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBl
CiB3ZWJraXRfZG9tX2h0bWxfcGFyYW1fZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBA
IC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfcGFyYW1fZWxlbWVudF9nZXRfdHlwZSh2
b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MUGFyYW1FbGVtZW50CiAgKgogICogUmV0
dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVE
IGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3BhcmFtX2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0RE9N
SFRNTFBhcmFtRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0
X2RvbV9odG1sX3BhcmFtX2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0RE9NSFRNTFBhcmFtRWxlbWVu
dCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFBhcmFtRWxlbWVudAogICogQHZh
bHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfcGFyYW1fZWxlbWVudF9zZXRfbmFtZShXZWJLaXRET01I
VE1MUGFyYW1FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTcx
LDggKzc1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9wYXJhbV9lbGVtZW50X3NldF9uYW1lKFdlYktp
dERPTUhUTUxQYXJhbUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTFBhcmFtRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9w
YXJhbV9lbGVtZW50X2dldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTFBhcmFtRWxlbWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtODAsOCArODYsMTAgQEAgd2Via2l0X2RvbV9odG1sX3BhcmFtX2VsZW1l
bnRfZ2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MUGFyYW1FbGVtZW50KiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MUGFyYW1FbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21faHRtbF9wYXJhbV9lbGVtZW50X3NldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTFBhcmFtRWxl
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC04OSw4ICs5NywxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfcGFyYW1fZWxlbWVudF9zZXRfdHlwZV9hdHRyKFdlYktpdERPTUhU
TUxQYXJhbUVsZW1lbnQqIHNlbGYsIGNvbgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxQYXJh
bUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFy
KgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfcGFyYW1fZWxlbWVu
dF9nZXRfdmFsdWUoV2ViS2l0RE9NSFRNTFBhcmFtRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
OTgsOCArMTA4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9wYXJhbV9lbGVtZW50X2dldF92YWx1ZShX
ZWJLaXRET01IVE1MUGFyYW1FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MUGFyYW1FbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9wYXJhbV9lbGVt
ZW50X3NldF92YWx1ZShXZWJLaXRET01IVE1MUGFyYW1FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hh
ciogdmFsdWUpOwogCiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Via2l0X2RvbV9odG1sX3Bh
cmFtX2VsZW1lbnRfc2V0X3ZhbHVlKFdlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQqIHNlbGYsIGNv
bnN0IGcKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MUGFyYW1FbGVtZW50CiAgKgogICogUmV0
dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVE
IGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3BhcmFtX2VsZW1lbnRfZ2V0X3ZhbHVlX3R5cGUoV2Vi
S2l0RE9NSFRNTFBhcmFtRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTE2LDggKzEzMCwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfcGFyYW1fZWxlbWVudF9nZXRfdmFsdWVfdHlwZShXZWJLaXRET01I
VE1MUGFyYW1FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MUGFyYW1F
bGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9wYXJhbV9lbGVtZW50X3NldF92
YWx1ZV90eXBlKFdlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2
YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFByZUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxQcmVFbGVtZW50LmNwcAppbmRleCBiOTljZjFmNDliMS4uNGFlMjExM2E5NjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MUHJlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQcmVFbGVt
ZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwor
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTFByZUVsZW1lbnQqIGtpdChXZWJD
b3JlOjpIVE1MUHJlRWxlbWVudCogb2JqKQpAQCAtMjAwLDMgKzIwMiw0IEBAIHZvaWQgd2Via2l0
X2RvbV9odG1sX3ByZV9lbGVtZW50X3NldF93cmFwKFdlYktpdERPTUhUTUxQcmVFbGVtZW50KiBz
ZWxmLCBnYm9vbGVhCiAgICAgaXRlbS0+c2V0Qm9vbGVhbkF0dHJpYnV0ZShXZWJDb3JlOjpIVE1M
TmFtZXM6OndyYXBBdHRyLCB2YWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FU
SU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUHJlRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQcmVFbGVt
ZW50LmgKaW5kZXggMzhjZGU5NGZiZmQuLmIwYWNhMzkyODViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TFByZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFByZUVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBA
QCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxQcmVFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhU
TUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VC
S0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF9wcmVfZWxlbWVudF9nZXRfdHlw
ZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfcHJlX2Vs
ZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFByZUVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJL
SVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1sX3ByZV9lbGVtZW50X2dldF93aWR0
aChXZWJLaXRET01IVE1MUHJlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAg
QEAgd2Via2l0X2RvbV9odG1sX3ByZV9lbGVtZW50X2dldF93aWR0aChXZWJLaXRET01IVE1MUHJl
RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFByZUVsZW1lbnQKICAq
IEB2YWx1ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3ByZV9lbGVtZW50X3NldF93aWR0aChXZWJLaXRE
T01IVE1MUHJlRWxlbWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioKQEAgLTcxLDggKzc1
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9wcmVfZWxlbWVudF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRN
TFByZUVsZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TFByZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX3By
ZV9lbGVtZW50X2dldF93cmFwKFdlYktpdERPTUhUTUxQcmVFbGVtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfcHJlX2VsZW1lbnRfZ2V0X3dyYXAo
V2ViS2l0RE9NSFRNTFByZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxQcmVFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9wcmVfZWxlbWVu
dF9zZXRfd3JhcChXZWJLaXRET01IVE1MUHJlRWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUp
OwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQcml2YXRlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MUHJpdmF0ZS5jcHAKaW5kZXggMTBiMTA0ZWNlMjMuLmJhNDIyOWVkM2Q0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTFByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUHJpdmF0ZS5jcHAKQEAgLTEzOSw2
ICsxMzksOCBAQAogI2luY2x1ZGUgIldlYktpdERPTUhUTUxUaXRsZUVsZW1lbnRQcml2YXRlLmgi
CiAjaW5jbHVkZSAiV2ViS2l0RE9NSFRNTFVMaXN0RWxlbWVudFByaXZhdGUuaCIKIAorR19HTlVD
X0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTI0MSwzICsyNDMsNCBAQCBXZWJLaXRET01IVE1MRWxl
bWVudCogd3JhcChIVE1MRWxlbWVudCogZWxlbWVudCkKIH0KIAogfQorR19HTlVDX0VORF9JR05P
UkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxRdW90ZUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxRdW90ZUVsZW1lbnQuY3BwCmluZGV4IDVkMmI0NGQwZWExLi5jZmI0YjM5NzY2YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxRdW90ZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUXVvdGVF
bGVtZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05T
OworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTFF1b3RlRWxlbWVudCoga2l0
KFdlYkNvcmU6OkhUTUxRdW90ZUVsZW1lbnQqIG9iaikKQEAgLTE2OCwzICsxNzAsNCBAQCB2b2lk
IHdlYmtpdF9kb21faHRtbF9xdW90ZV9lbGVtZW50X3NldF9jaXRlKFdlYktpdERPTUhUTUxRdW90
ZUVsZW1lbnQqIHNlbGYsIGNvbgogICAgIGl0ZW0tPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJv
bml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpjaXRlQXR0ciwgY29udmVydGVkVmFsdWUpOwog
fQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TFF1b3RlRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxRdW90ZUVsZW1lbnQuaAppbmRleCA4OWMwODgwOGRl
MS4uZDY1ZTczNGVmZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUXVvdGVFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxRdW90ZUVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERP
TUhUTUxRdW90ZUVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBw
YXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBH
VHlwZQogd2Via2l0X2RvbV9odG1sX3F1b3RlX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8q
KgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX3F1b3RlX2VsZW1lbnRfZ2V0X3R5
cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFF1b3RlRWxlbWVudAogICoKICAq
IFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVD
QVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9xdW90ZV9lbGVtZW50X2dldF9jaXRlKFdlYktp
dERPTUhUTUxRdW90ZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdl
YmtpdF9kb21faHRtbF9xdW90ZV9lbGVtZW50X2dldF9jaXRlKFdlYktpdERPTUhUTUxRdW90ZUVs
ZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxRdW90ZUVsZW1lbnQKICAq
IEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3F1b3RlX2VsZW1lbnRfc2V0X2NpdGUoV2ViS2l0
RE9NSFRNTFF1b3RlRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRf
REVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFNj
cmlwdEVsZW1lbnQuY3BwCmluZGV4IDdjZjMyNTc1ZDE0Li44YjE0MWZlM2IyNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxTY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQu
Y3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudCoga2l0KFdlYkNv
cmU6OkhUTUxTY3JpcHRFbGVtZW50KiBvYmopCkBAIC0zODAsMyArMzgyLDQgQEAgdm9pZCB3ZWJr
aXRfZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfc2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MU2Ny
aXB0RWxlbWVudCogc2UKICAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWRWYWx1ZSA9IFdURjo6U3Ry
aW5nOjpmcm9tVVRGOCh2YWx1ZSk7CiAgICAgaXRlbS0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnR5cGVBdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7
CiB9CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TFNjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IDZiOThjNDc0
YTQ0Li4xYTExMTlkYzZjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxTY3JpcHRFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJL
aXRET01IVE1MU2NyaXB0RWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENs
YXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNB
VEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7
CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50
X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X2dldF90
ZXh0KFdlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2
NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfZ2V0X3RleHQoV2ViS2l0RE9N
SFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTY3Jp
cHRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9zY3JpcHRfZWxlbWVudF9z
ZXRfdGV4dChXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlKTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2NyaXB0X2Vs
ZW1lbnRfc2V0X3RleHQoV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYsIGNvbnN0CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIq
CiB3ZWJraXRfZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfZ2V0X2h0bWxfZm9yKFdlYktpdERPTUhU
TUxTY3JpcHRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfZ2V0X2h0bWxfZm9yKFdlYktpdERPTUhUTUxTY3JpcHRF
bGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudAog
ICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfc2V0X2h0bWxfZm9y
KFdlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwog
CiAvKioKQEAgLTg5LDggKzk3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9zY3JpcHRfZWxlbWVudF9z
ZXRfaHRtbF9mb3IoV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYsIGNvCiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hh
cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJr
aXRfZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfZ2V0X2V2ZW50KFdlYktpdERPTUhUTUxTY3JpcHRF
bGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC05OCw4ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9odG1s
X3NjcmlwdF9lbGVtZW50X2dldF9ldmVudChXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQKICAqIEB2YWx1ZTog
QSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9p
ZAogd2Via2l0X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X3NldF9ldmVudChXZWJLaXRET01IVE1M
U2NyaXB0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMDcs
OCArMTE5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9zY3JpcHRfZWxlbWVudF9zZXRfZXZlbnQoV2Vi
S2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTFNjcmlwdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxf
c2NyaXB0X2VsZW1lbnRfZ2V0X2NoYXJzZXQoV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNl
bGYpOwogCiAvKioKQEAgLTExNyw4ICsxMzEsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NjcmlwdF9l
bGVtZW50X2dldF9jaGFyc2V0KFdlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50KiBzZWxmKTsKICAq
IEB2YWx1ZTogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9zY3JpcHRfZWxlbWVu
dF9zZXRfY2hhcnNldChXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudCogc2VsZiwgY29uc3QgZ2No
YXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMjYsOCArMTQyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9z
Y3JpcHRfZWxlbWVudF9zZXRfY2hhcnNldChXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudCogc2Vs
ZiwgY29uCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQ
UkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X2dldF9kZWZl
cihXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTM1LDggKzE1
MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfZ2V0X2RlZmVyKFdlYktpdERP
TUhUTUxTY3JpcHRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MU2Ny
aXB0RWxlbWVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfc2NyaXB0X2VsZW1l
bnRfc2V0X2RlZmVyKFdlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2
YWx1ZSk7CiAKIC8qKgpAQCAtMTQ0LDggKzE2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2NyaXB0
X2VsZW1lbnRfc2V0X2RlZmVyKFdlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50KiBzZWxmLCBnYm9v
bAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50CiAgKgogICogUmV0dXJu
czogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdj
aGFyKgogd2Via2l0X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X2dldF9zcmMoV2ViS2l0RE9NSFRN
TFNjcmlwdEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE1Myw4ICsxNzUsMTAgQEAgd2Via2l0
X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X2dldF9zcmMoV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50CiAgKiBA
dmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9zY3JpcHRfZWxlbWVudF9zZXRfc3JjKFdlYktpdERP
TUhUTUxTY3JpcHRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAg
LTE2Miw4ICsxODYsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X3NldF9zcmMo
V2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYsIGNvbnN0IGcKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21f
aHRtbF9zY3JpcHRfZWxlbWVudF9nZXRfdHlwZV9hdHRyKFdlYktpdERPTUhUTUxTY3JpcHRFbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNzEsOCArMTk3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9z
Y3JpcHRfZWxlbWVudF9nZXRfdHlwZV9hdHRyKFdlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50KiBz
ZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudAogICogQHZhbHVl
OiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2
b2lkCiB3ZWJraXRfZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfc2V0X3R5cGVfYXR0cihXZWJLaXRE
T01IVE1MU2NyaXB0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRf
REVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFNl
bGVjdEVsZW1lbnQuY3BwCmluZGV4IGE0MTBlOThkMjAxLi4xOTBhY2JlZTc0NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQu
Y3BwCkBAIC00Miw2ICs0Miw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudCoga2l0KFdlYkNv
cmU6OkhUTUxTZWxlY3RFbGVtZW50KiBvYmopCkBAIC01NjUsMyArNTY3LDQgQEAgZ2Jvb2xlYW4g
d2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dldF93aWxsX3ZhbGlkYXRlKFdlYktpdERP
TUhUTUxTZWxlY3RFbGUKICAgICBnYm9vbGVhbiByZXN1bHQgPSBpdGVtLT53aWxsVmFsaWRhdGUo
KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05T
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFNlbGVjdEVs
ZW1lbnQuaAppbmRleCBkZThmMzI0NTY5NS4uMDkyY2RlZTI2YzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MU2VsZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudC5oCkBAIC00NSw3
ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnRDbGFzcyB7CiAgICAg
V2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJ
IEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9l
bGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTU0LDggKzU0LDEwIEBAIHdlYmtpdF9k
b21faHRtbF9zZWxlY3RfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBpbmRleDogQSAjZ3Vs
b25nCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERP
TU5vZGUqCiB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfaXRlbShXZWJLaXRET01IVE1M
U2VsZWN0RWxlbWVudCogc2VsZiwgZ3Vsb25nIGluZGV4KTsKIAogLyoqCkBAIC02NCw4ICs2Niwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfaXRlbShXZWJLaXRET01IVE1MU2Vs
ZWN0RWxlbWVudCogc2VsZiwgZ3Vsb25nIGluZAogICogQG5hbWU6IEEgI2djaGFyCiAgKgogICog
UmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJr
aXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfbmFtZWRfaXRlbShXZWJLaXRET01IVE1MU2VsZWN0
RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWUpOwogCiAvKioKQEAgLTc1LDggKzc5LDEw
IEBAIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9uYW1lZF9pdGVtKFdlYktpdERPTUhU
TUxTZWxlY3RFbGVtZW50KiBzZWxmLCBjb25zCiAgKiBAYmVmb3JlOiBBICNXZWJLaXRET01IVE1M
RWxlbWVudAogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9hZGQo
V2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYsIFdlYktpdERPTUhUTUxFbGVtZW50KiBl
bGVtZW50LCBXZWJLaXRET01IVE1MRWxlbWVudCogYmVmb3JlLCBHRXJyb3IqKiBlcnJvcik7CiAK
IC8qKgpAQCAtODQsOCArOTAsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2Fk
ZChXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudCogc2VsZiwgV2ViS2l0RE9NSFQKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudAogICogQGluZGV4OiBBICNnbG9uZwogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfc2VsZWN0X2VsZW1lbnRfcmVtb3ZlKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBz
ZWxmLCBnbG9uZyBpbmRleCk7CiAKIC8qKgpAQCAtOTMsOCArMTAxLDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9zZWxlY3RfZWxlbWVudF9yZW1vdmUoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNl
bGYsIGdsb25nIGluCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJL
SVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dl
dF9hdXRvZm9jdXMoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTEwMiw4ICsxMTIsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dldF9hdXRv
Zm9jdXMoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxTZWxlY3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRt
bF9zZWxlY3RfZWxlbWVudF9zZXRfYXV0b2ZvY3VzKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50
KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTExLDggKzEyMywxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfc2V0X2F1dG9mb2N1cyhXZWJLaXRET01IVE1MU2Vs
ZWN0RWxlbWVudCogc2VsZiwgZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTZWxlY3RFbGVt
ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVh
bgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxl
bWVudF9nZXRfZGlzYWJsZWQoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTEyMCw4ICsxMzQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dl
dF9kaXNhYmxlZChXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX3NlbGVjdF9lbGVtZW50X3NldF9kaXNhYmxlZChXZWJLaXRET01IVE1MU2VsZWN0RWxl
bWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTEyOSw4ICsxNDUsMTAgQEAg
d2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X3NldF9kaXNhYmxlZChXZWJLaXRET01IVE1M
U2VsZWN0RWxlbWVudCogc2VsZiwgZ2IKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MU2VsZWN0
RWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NSFRN
TEZvcm1FbGVtZW50CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50Kgor
V0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50Kgogd2Via2l0X2RvbV9o
dG1sX3NlbGVjdF9lbGVtZW50X2dldF9mb3JtKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC0xMzgsOCArMTU2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9zZWxlY3Rf
ZWxlbWVudF9nZXRfZm9ybShXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudCogc2VsZik7CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
Ym9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9v
bGVhbgogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dldF9tdWx0aXBsZShXZWJLaXRE
T01IVE1MU2VsZWN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTQ3LDggKzE2NywxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X211bHRpcGxlKFdlYktpdERPTUhUTUxT
ZWxlY3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MU2VsZWN0RWxl
bWVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfc2V0
X211bHRpcGxlKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1
ZSk7CiAKIC8qKgpAQCAtMTU2LDggKzE3OCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2Vs
ZW1lbnRfc2V0X211bHRpcGxlKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmLCBnYgog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50CiAgKgogICogUmV0dXJuczog
QSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFy
Kgogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhUTUxT
ZWxlY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNjUsOCArMTg5LDEwIEBAIHdlYmtpdF9k
b21faHRtbF9zZWxlY3RfZWxlbWVudF9nZXRfbmFtZShXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVu
dCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQKICAqIEB2
YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X3NldF9uYW1lKFdlYktpdERP
TUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAg
LTE3NCw4ICsyMDAsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X3NldF9uYW1l
KFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxTZWxlY3RFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRt
bF9zZWxlY3RfZWxlbWVudF9nZXRfc2l6ZShXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtMTgzLDggKzIxMSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2Vs
ZW1lbnRfZ2V0X3NpemUoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dsb25nCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21faHRtbF9zZWxlY3RfZWxlbWVudF9zZXRfc2l6ZShXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVu
dCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioKQEAgLTE5Miw4ICsyMjIsMTAgQEAgd2Via2l0
X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X3NldF9zaXplKFdlYktpdERPTUhUTUxTZWxlY3RFbGVt
ZW50KiBzZWxmLCBnbG9uZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dldF9z
ZWxlY3RfdHlwZShXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
MjAxLDggKzIzMywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X3NlbGVj
dF90eXBlKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmKQogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxTZWxlY3RFbGVtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwp
OiBBICNXZWJLaXRET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24KKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJL
aXRET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01I
VE1MT3B0aW9uc0NvbGxlY3Rpb24qCiB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0
X29wdGlvbnMoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTIx
MCw4ICsyNDQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dldF9vcHRpb25z
KFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MU2VsZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2d1bG9uZworICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGd1bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vsb25nCiB3ZWJraXRfZG9tX2h0bWxf
c2VsZWN0X2VsZW1lbnRfZ2V0X2xlbmd0aChXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtMjIwLDggKzI1NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2Vs
ZW1lbnRfZ2V0X2xlbmd0aChXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudCogc2VsZik7CiAgKiBA
dmFsdWU6IEEgI2d1bG9uZwogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxl
bWVudF9zZXRfbGVuZ3RoKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmLCBndWxvbmcg
dmFsdWUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0yMjksOCArMjY3LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9zZXRfbGVuZ3RoKFdlYktpdERPTUhUTUxTZWxlY3RF
bGVtZW50KiBzZWxmLCBndWxvCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJL
SVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dldF9z
ZWxlY3RlZF9pbmRleChXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpA
QCAtMjM4LDggKzI3OCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X3Nl
bGVjdGVkX2luZGV4KFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZQogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dsb25nCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRt
bF9zZWxlY3RfZWxlbWVudF9zZXRfc2VsZWN0ZWRfaW5kZXgoV2ViS2l0RE9NSFRNTFNlbGVjdEVs
ZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCkBAIC0yNDcsOCArMjg5LDEwIEBAIHdl
YmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9zZXRfc2VsZWN0ZWRfaW5kZXgoV2ViS2l0RE9N
SFRNTFNlbGVjdEVsZW1lbnQqIHNlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVjdEVs
ZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgor
V0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRf
Z2V0X3ZhbHVlKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0y
NTYsOCArMzAwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9nZXRfdmFsdWUo
V2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxTZWxlY3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9zZWxlY3Rf
ZWxlbWVudF9zZXRfdmFsdWUoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYsIGNvbnN0
IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjY1LDggKzMxMSwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfc2VsZWN0X2VsZW1lbnRfc2V0X3ZhbHVlKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBz
ZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9nZXRf
d2lsbF92YWxpZGF0ZShXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudCogc2VsZik7CiAKIEdfRU5E
X0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFN0
eWxlRWxlbWVudC5jcHAKaW5kZXggYWQxZGRiOTBjNGYuLmU3NDc4OGIxMWU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTFN0eWxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxTdHlsZUVsZW1lbnQuY3Bw
CkBAIC0zNyw2ICszNyw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MU3R5bGVFbGVtZW50KiBraXQoV2ViQ29yZTo6
SFRNTFN0eWxlRWxlbWVudCogb2JqKQpAQCAtMjYwLDMgKzI2Miw0IEBAIFdlYktpdERPTVN0eWxl
U2hlZXQqIHdlYmtpdF9kb21faHRtbF9zdHlsZV9lbGVtZW50X2dldF9zaGVldChXZWJLaXRET01I
VE1MU3R5bGVFCiAgICAgUmVmUHRyPFdlYkNvcmU6OlN0eWxlU2hlZXQ+IGdvYmplY3RSZXN1bHQg
PSBXVEY6OmdldFB0cihpdGVtLT5zaGVldCgpKTsKICAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29i
amVjdFJlc3VsdC5nZXQoKSk7CiB9CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxTdHlsZUVsZW1lbnQu
aAppbmRleCA5OThlYzJjYTk3OC4uMmE3NjQ1Zjg4ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU3R5
bGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxTdHlsZUVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBA
QCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxTdHlsZUVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9N
SFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitX
RUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX3N0eWxlX2VsZW1lbnRfZ2V0
X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX3N0
eWxlX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFN0
eWxlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfc3R5
bGVfZWxlbWVudF9nZXRfZGlzYWJsZWQoV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3N0eWxlX2VsZW1lbnRf
Z2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxTdHlsZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxTdHlsZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX3N0eWxlX2VsZW1lbnRfc2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxTdHlsZUVsZW1l
bnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9zZXRfZGlzYWJsZWQoV2ViS2l0RE9NSFRNTFN0eWxl
RWxlbWVudCogc2VsZiwgZ2JvbwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTdHlsZUVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9nZXRf
bWVkaWEoV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtODAsOCAr
ODYsMTAgQEAgd2Via2l0X2RvbV9odG1sX3N0eWxlX2VsZW1lbnRfZ2V0X21lZGlhKFdlYktpdERP
TUhUTUxTdHlsZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTdHls
ZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3N0eWxlX2VsZW1lbnRfc2V0
X21lZGlhKFdlYktpdERPTUhUTUxTdHlsZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1
ZSk7CiAKIC8qKgpAQCAtODksOCArOTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX3N0eWxlX2VsZW1l
bnRfc2V0X21lZGlhKFdlYktpdERPTUhUTUxTdHlsZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGcKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MU3R5bGVFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAj
Z2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgog
d2Via2l0X2RvbV9odG1sX3N0eWxlX2VsZW1lbnRfZ2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1M
U3R5bGVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC05OCw4ICsxMDgsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX3N0eWxlX2VsZW1lbnRfZ2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MU3R5bGVFbGVt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MU3R5bGVFbGVtZW50CiAgKiBA
dmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9zdHlsZV9lbGVtZW50X3NldF90eXBlX2F0dHIoV2Vi
S2l0RE9NSFRNTFN0eWxlRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoq
CkBAIC0xMDcsOCArMTE5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9zdHlsZV9lbGVtZW50X3NldF90
eXBlX2F0dHIoV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudCogc2VsZiwgY29uCiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBm
dWxsKTogQSAjV2ViS2l0RE9NU3R5bGVTaGVldAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTVN0
eWxlU2hlZXQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01TdHlsZVNoZWV0Kgogd2Via2l0
X2RvbV9odG1sX3N0eWxlX2VsZW1lbnRfZ2V0X3NoZWV0KFdlYktpdERPTUhUTUxTdHlsZUVsZW1l
bnQqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUNhcHRp
b25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5jcHAKaW5kZXggNmRh
NGI5MDY2NzQuLjhhYjk1OGJmNmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlQ2FwdGlvbkVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5jcHAKQEAgLTM2LDYg
KzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIFdlYktpdERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50KiBraXQoV2ViQ29yZTo6SFRN
TFRhYmxlQ2FwdGlvbkVsZW1lbnQqIG9iaikKQEAgLTE2OCwzICsxNzAsNCBAQCB2b2lkIHdlYmtp
dF9kb21faHRtbF90YWJsZV9jYXB0aW9uX2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERPTUhUTUxU
YWJsZUNhcHRpb25FbAogICAgIGl0ZW0tPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24oV2ViQ29yZTo6SFRNTE5hbWVzOjphbGlnbkF0dHIsIGNvbnZlcnRlZFZhbHVlKTsKIH0KIAor
R19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJs
ZUNhcHRpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaAppbmRleCA0
ZTkyZDZlNjliNC4uYzI5NzQ2Mzk4NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVDYXB0aW9u
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oCkBAIC00NSw3ICs0
NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnRDbGFzcyB7CiAg
ICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRf
QVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX3RhYmxl
X2NhcHRpb25fZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2FwdGlvbl9lbGVtZW50X2dldF90eXBlKHZvaWQpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50CiAgKgogICogUmV0
dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVE
IGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2NhcHRpb25fZWxlbWVudF9nZXRfYWxpZ24o
V2ViS2l0RE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDgg
KzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jYXB0aW9uX2VsZW1lbnRfZ2V0X2FsaWdu
KFdlYktpdERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3Rh
YmxlX2NhcHRpb25fZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlQ2FwdGlvbkVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVt
ZW50LmNwcAppbmRleCBhYmQ3NmJjYzhjMC4uNmI3OWZjN2Y4YWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MVGFibGVDZWxsRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50LmNw
cApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIGtpdChXZWJD
b3JlOjpIVE1MVGFibGVDZWxsRWxlbWVudCogb2JqKQpAQCAtNjUzLDMgKzY1NSw0IEBAIHZvaWQg
d2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9zZXRfc2NvcGUoV2ViS2l0RE9NSFRN
TFRhYmxlQ2VsbEVsZW1lbnQqCiAgICAgaXRlbS0+c2V0U2NvcGUoY29udmVydGVkVmFsdWUpOwog
fQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TFRhYmxlQ2VsbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudC5oCmluZGV4IDgx
Y2ZmMTVmMjUwLi5kZWY3NWM2NTdkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAg
c3RydWN0IF9XZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRE
T01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUK
K1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVt
ZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21f
aHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9o
dG1sX3RhYmxlX2NlbGxfZWxlbWVudF9nZXRfY2VsbF9pbmRleChXZWJLaXRET01IVE1MVGFibGVD
ZWxsRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX3RhYmxlX2NlbGxfZWxlbWVudF9nZXRfY2VsbF9pbmRleChXZWJLaXRET01IVE1MVGFibGVD
ZWxsRWxlbWVudCoKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudAog
ICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRf
REVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0
X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC03
MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dldF9hbGln
bihXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZgogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxUYWJsZUNlbGxFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90
YWJsZV9jZWxsX2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50
KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTgwLDggKzg2LDEwIEBAIHdl
YmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERPTUhUTUxU
YWJsZUNlbGxFbGVtZW50KiBzZWxmCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFy
KgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9l
bGVtZW50X2dldF9heGlzKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC04OSw4ICs5NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50
X2dldF9heGlzKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxmKQogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0X2F4aXMoV2ViS2l0RE9NSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtOTgsOCArMTA4
LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0X2F4aXMoV2ViS2l0
RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYsCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TFRhYmxlQ2VsbEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfY2VsbF9lbGVtZW50X2dldF9iZ19jb2xvcihXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtMTA3LDggKzExOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfY2VsbF9lbGVtZW50X2dldF9iZ19jb2xvcihXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVu
dCogcwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50CiAgKiBAdmFs
dWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0X2JnX2NvbG9yKFdl
YktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwog
CiAvKioKQEAgLTExNiw4ICsxMzAsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxl
bWVudF9zZXRfYmdfY29sb3IoV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHMKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudAogICoKICAqIFJldHVybnM6IEEg
I2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioK
IHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X2NoKFdlYktpdERPTUhUTUxU
YWJsZUNlbGxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMjUsOCArMTQxLDEwIEBAIHdlYmtp
dF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X2NoKFdlYktpdERPTUhUTUxUYWJsZUNl
bGxFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxl
bWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X3Nl
dF9jaChXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlKTsKIAogLyoqCkBAIC0xMzQsOCArMTUyLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9j
ZWxsX2VsZW1lbnRfc2V0X2NoKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxmLCBj
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQKICAqCiAgKiBSZXR1
cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQg
Z2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dldF9jaF9vZmYoV2Vi
S2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE0Myw4ICsxNjMs
MTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9nZXRfY2hfb2ZmKFdlYktp
dERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWwKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
VGFibGVDZWxsRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2Vs
bF9lbGVtZW50X3NldF9jaF9vZmYoV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYs
IGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTUyLDggKzE3NCwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X3NldF9jaF9vZmYoV2ViS2l0RE9NSFRNTFRhYmxl
Q2VsbEVsZW1lbnQqIHNlbAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVt
ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VC
S0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRf
Z2V0X2NvbF9zcGFuKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC0xNjEsOCArMTg1LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRf
Z2V0X2NvbF9zcGFuKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzCiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9zZXRfY29sX3NwYW4oV2ViS2l0RE9NSFRNTFRhYmxl
Q2VsbEVsZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCkBAIC0xNzAsOCArMTk2LDEw
IEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0X2NvbF9zcGFuKFdlYktp
dERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRh
YmxlQ2VsbEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1sX3RhYmxlX2Nl
bGxfZWxlbWVudF9nZXRfcm93X3NwYW4oV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNl
bGYpOwogCiAvKioKQEAgLTE3OSw4ICsyMDcsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2Nl
bGxfZWxlbWVudF9nZXRfcm93X3NwYW4oV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHMK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudAogICogQHZhbHVlOiBB
ICNnbG9uZwogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X3NldF9yb3dfc3BhbihXZWJLaXRE
T01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioKQEAgLTE4
OCw4ICsyMTgsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9zZXRfcm93
X3NwYW4oV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHMKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MVGFibGVDZWxsRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21f
aHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X2hlYWRlcnMoV2ViS2l0RE9NSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE5Nyw4ICsyMjksMTAgQEAgd2Via2l0X2RvbV9o
dG1sX3RhYmxlX2NlbGxfZWxlbWVudF9nZXRfaGVhZGVycyhXZWJLaXRET01IVE1MVGFibGVDZWxs
RWxlbWVudCogc2UKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudAog
ICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X3NldF9oZWFk
ZXJzKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUpOwogCiAvKioKQEAgLTIwNiw4ICsyNDAsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2Nl
bGxfZWxlbWVudF9zZXRfaGVhZGVycyhXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2UK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudAogICoKICAqIFJldHVy
bnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBn
Y2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X2hlaWdodChXZWJL
aXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjE1LDggKzI1MSwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dldF9oZWlnaHQoV2ViS2l0
RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxU
YWJsZUNlbGxFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxs
X2VsZW1lbnRfc2V0X2hlaWdodChXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0yMjQsOCArMjYyLDEwIEBAIHdlYmtpdF9k
b21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0X2hlaWdodChXZWJLaXRET01IVE1MVGFibGVD
ZWxsRWxlbWVudCogc2VsCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFu
CitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxf
ZWxlbWVudF9nZXRfbm9fd3JhcChXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtMjMzLDggKzI3MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9l
bGVtZW50X2dldF9ub193cmFwKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZQogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2di
b29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0X25vX3dyYXAoV2ViS2l0RE9N
SFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBAIC0y
NDIsOCArMjg0LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0X25v
X3dyYXAoV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlCiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9t
X2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dldF92X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZUNl
bGxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNTEsOCArMjk1LDEwIEBAIHdlYmtpdF9kb21f
aHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X3ZfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQqIHNlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9zZXRfdl9h
bGlnbihXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlKTsKIAogLyoqCkBAIC0yNjAsOCArMzA2LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9j
ZWxsX2VsZW1lbnRfc2V0X3ZfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNl
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQKICAqCiAgKiBSZXR1
cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQg
Z2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dldF93aWR0aChXZWJL
aXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjY5LDggKzMxNywx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dldF93aWR0aChXZWJLaXRE
T01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxU
YWJsZUNlbGxFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxs
X2VsZW1lbnRfc2V0X3dpZHRoKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxmLCBj
b25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTI3OCw4ICszMjgsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQqIHNlbGYKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRf
Z2V0X2FiYnIoV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTI4Nyw4ICszMzksMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9nZXRf
YWJicihXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZikKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0
bWxfdGFibGVfY2VsbF9lbGVtZW50X3NldF9hYmJyKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVt
ZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTI5Niw4ICszNTAsMTAg
QEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9zZXRfYWJicihXZWJLaXRET01I
VE1MVGFibGVDZWxsRWxlbWVudCogc2VsZiwKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFi
bGVDZWxsRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9j
ZWxsX2VsZW1lbnRfZ2V0X3Njb3BlKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxm
KTsKIAogLyoqCkBAIC0zMDUsOCArMzYxLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxs
X2VsZW1lbnRfZ2V0X3Njb3BlKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxmCiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9zZXRfc2NvcGUoV2ViS2l0RE9NSFRN
TFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RF
Q0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRh
YmxlQ29sRWxlbWVudC5jcHAKaW5kZXggNDY3M2JjYTFjZGEuLjA5MGYyMDkyZDM4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUNvbEVs
ZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7
CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50KiBr
aXQoV2ViQ29yZTo6SFRNTFRhYmxlQ29sRWxlbWVudCogb2JqKQpAQCAtMzQ2LDMgKzM0OCw0IEBA
IHZvaWQgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NvbF9lbGVtZW50X3NldF93aWR0aChXZWJLaXRE
T01IVE1MVGFibGVDb2xFbGVtZW50KiBzCiAgICAgaXRlbS0+c2V0QXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OndpZHRoQXR0ciwgY29udmVydGVkVmFs
dWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTFRhYmxlQ29sRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQuaAppbmRl
eCA1NzM5YTIwMDc0NS4uNzJhMjQwZjEzNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVDb2xF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBA
QCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0
RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBl
CitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX3RhYmxlX2NvbF9lbGVt
ZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21f
aHRtbF90YWJsZV9jb2xfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MVGFibGVDb2xFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9o
dG1sX3RhYmxlX2NvbF9lbGVtZW50X2dldF9hbGlnbihXZWJLaXRET01IVE1MVGFibGVDb2xFbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfY29sX2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIHNl
bGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQKICAqIEB2YWx1
ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2NvbF9lbGVtZW50X3NldF9hbGlnbihXZWJLaXRE
T01IVE1MVGFibGVDb2xFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioK
QEAgLTcxLDggKzc1LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jb2xfZWxlbWVudF9zZXRf
YWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudCogc2VsZiwKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2Rv
bV9odG1sX3RhYmxlX2NvbF9lbGVtZW50X2dldF9jaChXZWJLaXRET01IVE1MVGFibGVDb2xFbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfY29sX2VsZW1lbnRfZ2V0X2NoKFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQKICAqIEB2YWx1ZTog
QSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9p
ZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2NvbF9lbGVtZW50X3NldF9jaChXZWJLaXRET01IVE1M
VGFibGVDb2xFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTg5
LDggKzk3LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jb2xfZWxlbWVudF9zZXRfY2goV2Vi
S2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudCogc2VsZiwgY29uCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTFRhYmxlQ29sRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRt
bF90YWJsZV9jb2xfZWxlbWVudF9nZXRfY2hfb2ZmKFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTk4LDggKzEwOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfY29sX2VsZW1lbnRfZ2V0X2NoX29mZihXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50KiBz
ZWxmKQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQKICAqIEB2YWx1
ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2NvbF9lbGVtZW50X3NldF9jaF9vZmYoV2ViS2l0
RE9NSFRNTFRhYmxlQ29sRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoq
CkBAIC0xMDcsOCArMTE5LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jb2xfZWxlbWVudF9z
ZXRfY2hfb2ZmKFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIHNlbGYsCiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25n
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRf
ZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRfZ2V0X3NwYW4oV2ViS2l0RE9NSFRNTFRhYmxlQ29s
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTE2LDggKzEzMCwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfdGFibGVfY29sX2VsZW1lbnRfZ2V0X3NwYW4oV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVu
dCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudAogICog
QHZhbHVlOiBBICNnbG9uZwogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRfc2V0X3NwYW4oV2Vi
S2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioKQEAg
LTEyNSw4ICsxNDEsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NvbF9lbGVtZW50X3NldF9z
cGFuKFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIHNlbGYsIGcKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2Rv
bV9odG1sX3RhYmxlX2NvbF9lbGVtZW50X2dldF92X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZUNv
bEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEzNCw4ICsxNTIsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX3RhYmxlX2NvbF9lbGVtZW50X2dldF92X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZUNvbEVs
ZW1lbnQqIHNlbGYKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50CiAg
KiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBS
RUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jb2xfZWxlbWVudF9zZXRfdl9hbGln
bihXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
OwogCiAvKioKQEAgLTE0Myw4ICsxNjMsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NvbF9l
bGVtZW50X3NldF92X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIHNlbGYKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50CiAgKgogICogUmV0dXJuczog
QSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFy
Kgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2NvbF9lbGVtZW50X2dldF93aWR0aChXZWJLaXRET01I
VE1MVGFibGVDb2xFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNTIsOCArMTc0LDEwIEBAIHdl
YmtpdF9kb21faHRtbF90YWJsZV9jb2xfZWxlbWVudF9nZXRfd2lkdGgoV2ViS2l0RE9NSFRNTFRh
YmxlQ29sRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ29s
RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRf
c2V0X3dpZHRoKFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFy
KiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudC5jcHAKaW5kZXggZDI0ZWZhMmUxMjcuLmJiYjU1
NDc0NDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxUYWJsZUVsZW1lbnQuY3BwCkBAIC00MCw2ICs0MCw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBS
RUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MVGFibGVFbGVt
ZW50KiBraXQoV2ViQ29yZTo6SFRNTFRhYmxlRWxlbWVudCogb2JqKQpAQCAtNjYzLDMgKzY2NSw0
IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfc2V0X3dpZHRoKFdlYktpdERP
TUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYsIGNvCiAgICAgaXRlbS0+c2V0QXR0cmlidXRlV2l0aG91
dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OndpZHRoQXR0ciwgY29udmVydGVk
VmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTFRhYmxlRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQuaAppbmRleCA5
ZjJkOWY1YjFmMC4uZmE3OGJmZTM3NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3Qg
X1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1l
bnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQ
UkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0X3R5cGUodm9p
ZCk7CiAKIC8qKgpAQCAtNTMsMTYgKzUzLDIwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVt
ZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUhUTUxFbGVt
ZW50CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTEVsZW1lbnQqCitXRUJLSVRfREVQUkVD
QVRFRCBXZWJLaXRET01IVE1MRWxlbWVudCoKIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50
X2NyZWF0ZV90X2hlYWQoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZik7CiAKIC8qKgog
ICogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZGVsZXRlX3RfaGVhZDoKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MVGFibGVFbGVtZW50CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2Rl
bGV0ZV90X2hlYWQoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
NzAsMTYgKzc0LDIwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2RlbGV0ZV90X2hl
YWQoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTFRhYmxlRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAj
V2ViS2l0RE9NSFRNTEVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MRWxlbWVu
dCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxFbGVtZW50Kgogd2Via2l0X2RvbV9o
dG1sX3RhYmxlX2VsZW1lbnRfY3JlYXRlX3RfZm9vdChXZWJLaXRET01IVE1MVGFibGVFbGVtZW50
KiBzZWxmKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9kZWxldGVf
dF9mb290OgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X3RhYmxlX2VsZW1lbnRfZGVsZXRlX3RfZm9vdChXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC04NywxNiArOTUsMjAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2Vs
ZW1lbnRfZGVsZXRlX3RfZm9vdChXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVFbGVtZW50CiAgKgogICogUmV0dXJuczogKHRy
YW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01IVE1MRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdl
YktpdERPTUhUTUxFbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTEVsZW1l
bnQqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9jcmVhdGVfY2FwdGlvbihXZWJLaXRE
T01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfZWxlbWVudF9kZWxldGVfY2FwdGlvbjoKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFi
bGVFbGVtZW50CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZv
aWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2RlbGV0ZV9jYXB0aW9uKFdlYktpdERP
TUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEwNiw4ICsxMTgsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZGVsZXRlX2NhcHRpb24oV2ViS2l0RE9NSFRNTFRh
YmxlRWxlbWVudCogc2VsZik7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAo
dHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUhUTUxFbGVtZW50CisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
V2ViS2l0RE9NSFRNTEVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1MRWxl
bWVudCoKIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2luc2VydF9yb3coV2ViS2l0RE9N
SFRNTFRhYmxlRWxlbWVudCogc2VsZiwgZ2xvbmcgaW5kZXgsIEdFcnJvcioqIGVycm9yKTsKIAog
LyoqCkBAIC0xMTYsOCArMTMwLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2lu
c2VydF9yb3coV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZiwgZ2xvbmcKICAqIEBpbmRl
eDogQSAjZ2xvbmcKICAqIEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9k
ZWxldGVfcm93KFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYsIGdsb25nIGluZGV4LCBH
RXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTI1LDggKzE0MSwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfdGFibGVfZWxlbWVudF9kZWxldGVfcm93KFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNl
bGYsIGdsb25nCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudAogICoKICAq
IFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2FwdGlvbkVs
ZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudCoK
K1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50Kgogd2Vi
a2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0X2NhcHRpb24oV2ViS2l0RE9NSFRNTFRhYmxl
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTM1LDggKzE1MywxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfdGFibGVfZWxlbWVudF9nZXRfY2FwdGlvbihXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBz
ZWxmKTsKICAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQKICAq
IEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9zZXRfY2FwdGlvbihXZWJL
aXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmLCBXZWJLaXRET01IVE1MVGFibGVDYXB0aW9uRWxl
bWVudCogdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xNDQsOCArMTY0LDEwIEBA
IHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X3NldF9jYXB0aW9uKFdlYktpdERPTUhUTUxU
YWJsZUVsZW1lbnQqIHNlbGYsIFdlYktpCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxl
RWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MVGFibGVT
ZWN0aW9uRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxUYWJsZVNlY3Rp
b25FbGVtZW50Kgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0X3RfaGVhZChXZWJL
aXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNTQsOCArMTc2LDEwIEBA
IHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2dldF90X2hlYWQoV2ViS2l0RE9NSFRNTFRh
YmxlRWxlbWVudCogc2VsZik7CiAgKiBAdmFsdWU6IEEgI1dlYktpdERPTUhUTUxUYWJsZVNlY3Rp
b25FbGVtZW50CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfc2V0
X3RfaGVhZChXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmLCBXZWJLaXRET01IVE1MVGFi
bGVTZWN0aW9uRWxlbWVudCogdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xNjMs
OCArMTg3LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X3NldF90X2hlYWQoV2Vi
S2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZiwgV2ViS2l0CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTFRhYmxlRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAj
V2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRE
T01IVE1MVGFibGVTZWN0aW9uRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50Kgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0
X3RfZm9vdChXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNzMs
OCArMTk5LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2dldF90X2Zvb3QoV2Vi
S2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZik7CiAgKiBAdmFsdWU6IEEgI1dlYktpdERPTUhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxl
X2VsZW1lbnRfc2V0X3RfZm9vdChXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmLCBXZWJL
aXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudCogdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKIAog
LyoqCkBAIC0xODIsOCArMjEwLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X3Nl
dF90X2Zvb3QoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZiwgV2ViS2l0CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2Zl
ciBmdWxsKTogQSAjV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24KKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJL
aXRET01IVE1MQ29sbGVjdGlvbioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxDb2xs
ZWN0aW9uKgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0X3Jvd3MoV2ViS2l0RE9N
SFRNTFRhYmxlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTkxLDggKzIyMSwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9nZXRfcm93cyhXZWJLaXRET01IVE1MVGFibGVFbGVt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVFbGVtZW50CiAgKgog
ICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1MQ29sbGVjdGlvbgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgorV0VCS0lUX0RFUFJFQ0FU
RUQgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVu
dF9nZXRfdF9ib2RpZXMoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZik7CiAKIC8qKgpA
QCAtMjAwLDggKzIzMiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9nZXRfdF9i
b2RpZXMoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTFRhYmxlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRt
bF90YWJsZV9lbGVtZW50X2dldF9hbGlnbihXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxm
KTsKIAogLyoqCkBAIC0yMDksOCArMjQzLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVt
ZW50X2dldF9hbGlnbihXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MVGFibGVFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF90YWJsZV9lbGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBz
ZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTIxOCw4ICsyNTQsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZUVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGcKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVFbGVt
ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dF
QktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0
X2JnX2NvbG9yKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTIy
Nyw4ICsyNjUsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0X2JnX2NvbG9y
KFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxUYWJsZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2Vs
ZW1lbnRfc2V0X2JnX2NvbG9yKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYsIGNvbnN0
IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjM2LDggKzI3NiwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfdGFibGVfZWxlbWVudF9zZXRfYmdfY29sb3IoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCog
c2VsZiwgY29ucwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQKICAqCiAg
KiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJF
Q0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9nZXRfYm9yZGVyKFdl
YktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTI0NSw4ICsyODcsMTAg
QEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0X2JvcmRlcihXZWJLaXRET01IVE1M
VGFibGVFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVFbGVt
ZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X3NldF9ib3Jk
ZXIoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsK
IAogLyoqCkBAIC0yNTQsOCArMjk4LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50
X3NldF9ib3JkZXIoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2No
YXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Vi
a2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0X2NlbGxfcGFkZGluZyhXZWJLaXRET01IVE1M
VGFibGVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNjMsOCArMzA5LDEwIEBAIHdlYmtpdF9k
b21faHRtbF90YWJsZV9lbGVtZW50X2dldF9jZWxsX3BhZGRpbmcoV2ViS2l0RE9NSFRNTFRhYmxl
RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudAog
ICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9zZXRfY2VsbF9wYWRk
aW5nKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7
CiAKIC8qKgpAQCAtMjcyLDggKzMyMCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVu
dF9zZXRfY2VsbF9wYWRkaW5nKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYsCiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dj
aGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdl
YmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2dldF9jZWxsX3NwYWNpbmcoV2ViS2l0RE9NSFRN
TFRhYmxlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjgxLDggKzMzMSwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfdGFibGVfZWxlbWVudF9nZXRfY2VsbF9zcGFjaW5nKFdlYktpdERPTUhUTUxUYWJs
ZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfc2V0X2NlbGxfc3Bh
Y2luZyhXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
OwogCiAvKioKQEAgLTI5MCw4ICszNDIsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1l
bnRfc2V0X2NlbGxfc3BhY2luZyhXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmLAogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
Y2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3
ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9nZXRfcnVsZXMoV2ViS2l0RE9NSFRNTFRhYmxl
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjk5LDggKzM1MywxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfdGFibGVfZWxlbWVudF9nZXRfcnVsZXMoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudAogICogQHZhbHVlOiBB
ICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9zZXRfcnVsZXMoV2ViS2l0RE9NSFRNTFRh
YmxlRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0zMDgsOCAr
MzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X3NldF9ydWxlcyhXZWJLaXRE
T01IVE1MVGFibGVFbGVtZW50KiBzZWxmLCBjb25zdCBnCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTFRhYmxlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJs
ZV9lbGVtZW50X2dldF9zdW1tYXJ5KFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTMxNyw4ICszNzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRf
Z2V0X3N1bW1hcnkoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0
bWxfdGFibGVfZWxlbWVudF9zZXRfc3VtbWFyeShXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBz
ZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTMyNiw4ICszODYsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfc2V0X3N1bW1hcnkoV2ViS2l0RE9NSFRNTFRhYmxl
RWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVFbGVt
ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dF
QktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0
X3dpZHRoKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTMzNSw4
ICszOTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0X3dpZHRoKFdlYktp
dERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxU
YWJsZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRf
c2V0X3dpZHRoKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2
YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudC5jcHAKaW5kZXggYzc3YzJhNmVkYzAuLmM4
NzRmNTgzZDE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxUYWJsZVJvd0VsZW1lbnQuY3BwCkBAIC0zOCw2ICszOCw4IEBACiAjaW5jbHVkZSA8
d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lH
Tk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1M
VGFibGVSb3dFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTFRhYmxlUm93RWxlbWVudCogb2JqKQpA
QCAtNDExLDMgKzQxMyw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50
X3NldF92X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqCiAgICAgaXRlbS0+c2V0
QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnZhbGln
bkF0dHIsIGNvbnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJ
T05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFi
bGVSb3dFbGVtZW50LmgKaW5kZXggMDM3OTFmNmM0ZGEuLjkyZWMxZTViNTBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50
LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50
Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsK
IAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21f
aHRtbF90YWJsZV9yb3dfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01NSw4ICs1
NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7
CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEg
I1dlYktpdERPTUhUTUxFbGVtZW50CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTEVsZW1l
bnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1MRWxlbWVudCoKIHdlYmtpdF9kb21f
aHRtbF90YWJsZV9yb3dfZWxlbWVudF9pbnNlcnRfY2VsbChXZWJLaXRET01IVE1MVGFibGVSb3dF
bGVtZW50KiBzZWxmLCBnbG9uZyBpbmRleCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTY1
LDggKzY3LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9pbnNlcnRfY2Vs
bChXZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50KiBzZWxmCiAgKiBAaW5kZXg6IEEgI2dsb25n
CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X2RlbGV0ZV9j
ZWxsKFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNlbGYsIGdsb25nIGluZGV4LCBHRXJy
b3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtNzQsOCArNzgsMTAgQEAgd2Via2l0X2RvbV9odG1sX3Rh
YmxlX3Jvd19lbGVtZW50X2RlbGV0ZV9jZWxsKFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQq
IHNlbGYKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FU
RUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9nZXRfcm93X2luZGV4
KFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgzLDggKzg5
LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9nZXRfcm93X2luZGV4KFdl
YktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TFRhYmxlUm93RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVf
cm93X2VsZW1lbnRfZ2V0X3NlY3Rpb25fcm93X2luZGV4KFdlYktpdERPTUhUTUxUYWJsZVJvd0Vs
ZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTkyLDggKzEwMCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
dGFibGVfcm93X2VsZW1lbnRfZ2V0X3NlY3Rpb25fcm93X2luZGV4KFdlYktpdERPTUhUTUxUYWJs
ZVJvd0VsZQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQKICAqCiAg
KiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVDQVRF
RCBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxl
bWVudF9nZXRfY2VsbHMoV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtMTAxLDggKzExMSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRf
Z2V0X2NlbGxzKFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hh
cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJr
aXRfZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxUYWJs
ZVJvd0VsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTExMCw4ICsxMjIsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X2dldF9hbGlnbihXZWJLaXRET01IVE1MVGFibGVSb3dF
bGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50
CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9zZXRfYWxp
Z24oV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVl
KTsKIAogLyoqCkBAIC0xMTksOCArMTMzLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3df
ZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudCogc2VsZiwKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50CiAgKgogICogUmV0dXJuczog
QSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFy
Kgogd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X2dldF9iZ19jb2xvcihXZWJLaXRE
T01IVE1MVGFibGVSb3dFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMjgsOCArMTQ0LDEwIEBA
IHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9nZXRfYmdfY29sb3IoV2ViS2l0RE9N
SFRNTFRhYmxlUm93RWxlbWVudCogc2VsCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxl
Um93RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfcm93X2VsZW1l
bnRfc2V0X2JnX2NvbG9yKFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNlbGYsIGNvbnN0
IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTM3LDggKzE1NSwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfdGFibGVfcm93X2VsZW1lbnRfc2V0X2JnX2NvbG9yKFdlYktpdERPTUhUTUxUYWJsZVJvd0Vs
ZW1lbnQqIHNlbAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRfZ2V0X2No
KFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE0Niw4ICsx
NjYsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X2dldF9jaChXZWJLaXRE
T01IVE1MVGFibGVSb3dFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
VGFibGVSb3dFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3df
ZWxlbWVudF9zZXRfY2goV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudCogc2VsZiwgY29uc3Qg
Z2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNTUsOCArMTc3LDEwIEBAIHdlYmtpdF9kb21faHRt
bF90YWJsZV9yb3dfZWxlbWVudF9zZXRfY2goV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudCog
c2VsZiwgY29uCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudAogICoK
ICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9nZXRfY2hf
b2ZmKFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE2NCw4
ICsxODgsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X2dldF9jaF9vZmYo
V2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudCogc2VsZikKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MVGFibGVSb3dFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJs
ZV9yb3dfZWxlbWVudF9zZXRfY2hfb2ZmKFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTczLDggKzE5OSwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRfc2V0X2NoX29mZihXZWJLaXRET01IVE1MVGFi
bGVSb3dFbGVtZW50KiBzZWxmLAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZVJvd0Vs
ZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgor
V0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfcm93X2VsZW1l
bnRfZ2V0X3ZfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtMTgyLDggKzIxMCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRf
Z2V0X3ZfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudCogc2VsZgogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X3NldF92X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZVJv
d0VsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50LmNwcAppbmRleCA1MDkzNjM4YTM4My4uZjk0MzgxNDkwNDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZVNl
Y3Rpb25FbGVtZW50LmNwcApAQCAtMzgsNiArMzgsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVD
QVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MVGFibGVTZWN0aW9uRWxlbWVudCogb2JqKQpAQCAt
MzI4LDMgKzMzMCw0IEBAIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKiB3ZWJraXRfZG9tX2h0bWxf
dGFibGVfc2VjdGlvbl9lbGVtZW50X2dldF9yb3dzKFdlYktpdERPCiAgICAgcmV0dXJuIFdlYktp
dDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBS
RUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oCmluZGV4IGIwZjdiM2IyMTNjLi42OTJlMDg0MjE3
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRE
T01IVE1MVGFibGVTZWN0aW9uRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVu
dENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBS
RUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfc2VjdGlvbl9lbGVtZW50X2dldF90
eXBlKHZvaWQpOwogCiAvKioKQEAgLTU1LDggKzU1LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJs
ZV9zZWN0aW9uX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAq
CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUhUTUxFbGVtZW50Cisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTEVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBX
ZWJLaXRET01IVE1MRWxlbWVudCoKIHdlYmtpdF9kb21faHRtbF90YWJsZV9zZWN0aW9uX2VsZW1l
bnRfaW5zZXJ0X3JvdyhXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudCogc2VsZiwgZ2xv
bmcgaW5kZXgsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC02NSw4ICs2NywxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfdGFibGVfc2VjdGlvbl9lbGVtZW50X2luc2VydF9yb3coV2ViS2l0RE9NSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbgogICogQGluZGV4OiBBICNnbG9uZwogICogQGVycm9yOiAjR0Vy
cm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfZGVsZXRlX3JvdyhXZWJLaXRET01I
VE1MVGFibGVTZWN0aW9uRWxlbWVudCogc2VsZiwgZ2xvbmcgaW5kZXgsIEdFcnJvcioqIGVycm9y
KTsKIAogLyoqCkBAIC03NCw4ICs3OCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfc2VjdGlv
bl9lbGVtZW50X2RlbGV0ZV9yb3coV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbgogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50CiAgKgogICogUmV0dXJu
czogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdj
aGFyKgogd2Via2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVudF9nZXRfYWxpZ24oV2Vi
S2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgzLDggKzg5
LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfZ2V0X2FsaWduKFdl
YktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TFRhYmxlU2VjdGlvbkVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxl
X3NlY3Rpb25fZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtOTIsOCArMTAwLDEwIEBA
IHdlYmtpdF9kb21faHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERP
TUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVf
c2VjdGlvbl9lbGVtZW50X2dldF9jaChXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMTAxLDggKzExMSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVf
c2VjdGlvbl9lbGVtZW50X2dldF9jaChXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudCog
cwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50CiAgKiBAdmFs
dWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfc2V0X2NoKFdlYktp
dERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwog
CiAvKioKQEAgLTExMCw4ICsxMjIsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25f
ZWxlbWVudF9zZXRfY2goV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIHMKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfZ2V0X2NoX29mZihXZWJL
aXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTE5LDggKzEz
MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfc2VjdGlvbl9lbGVtZW50X2dldF9jaF9vZmYo
V2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbgogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJs
ZV9zZWN0aW9uX2VsZW1lbnRfc2V0X2NoX29mZihXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxl
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMjgsOCArMTQ0LDEw
IEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfc2V0X2NoX29mZihXZWJL
aXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVuCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfc2VjdGlvbl9lbGVtZW50X2dldF92X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMzcsOCArMTU1LDEwIEBAIHdlYmtpdF9kb21faHRt
bF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfZ2V0X3ZfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlU2Vj
dGlvbkVsZW1lCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVudF9zZXRf
dl9hbGlnbihXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudCogc2VsZiwgY29uc3QgZ2No
YXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNDYsOCArMTY2LDEwIEBAIHdlYmtpdF9kb21faHRtbF90
YWJsZV9zZWN0aW9uX2VsZW1lbnRfc2V0X3ZfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlv
bkVsZW1lCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKICAq
CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9u
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVD
QVRFRCBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9zZWN0
aW9uX2VsZW1lbnRfZ2V0X3Jvd3MoV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIHNl
bGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCmluZGV4IDE1MjgzZGFhYmRhLi44MDBk
MmQzZjhkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MVGV4dEFyZWFFbGVtZW50LmNwcApAQCAtMzgsNiArMzgsOCBAQAogI2luY2x1ZGUgPHd0
Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05P
UkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTFRl
eHRBcmVhRWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQqIG9iaikKQEAg
LTU3MiwzICs1NzQsNCBAQCBnYm9vbGVhbiB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1l
bnRfaXNfZWRpdGVkKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbgogCiAgICAgcmV0dXJuIFdl
YktpdDo6Y29yZShhcmVhKS0+bGFzdENoYW5nZVdhc1VzZXJFZGl0KCk7CiB9CitHX0dOVUNfRU5E
X0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVu
dC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQuaAppbmRleCBiODg3ZTU0YjliYi4uMGU5ZGMx
NWNiNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxUZXh0QXJlYUVsZW1lbnQuaApAQCAtNDUsMTUgKzQ1LDE3IEBAIHN0cnVjdCBfV2ViS2l0RE9N
SFRNTFRleHRBcmVhRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNz
IHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVE
IEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7
CiAKIC8qKgogICogd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X3NlbGVjdDoKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90ZXh0X2Fy
ZWFfZWxlbWVudF9zZWxlY3QoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtNjMsOCArNjUsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50
X3NlbGVjdChXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmKTsKICAqIEBlbmQ6IEEg
I2dsb25nCiAgKiBAZGlyZWN0aW9uOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1l
bnRfc2V0X3NlbGVjdGlvbl9yYW5nZShXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxm
LCBnbG9uZyBzdGFydCwgZ2xvbmcgZW5kLCBjb25zdCBnY2hhciogZGlyZWN0aW9uKTsKIAogLyoq
CkBAIC03Miw4ICs3NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfc2V0
X3NlbGVjdGlvbl9yYW5nZShXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZQogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVh
bgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgog
d2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF9hdXRvZm9jdXMoV2ViS2l0RE9N
SFRNTFRleHRBcmVhRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtODEsOCArODcsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF9hdXRvZm9jdXMoV2ViS2l0RE9NSFRN
TFRleHRBcmVhRWxlbWVudCogc2UKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGV4dEFyZWFF
bGVtZW50CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVu
dF9zZXRfYXV0b2ZvY3VzKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYsIGdib29s
ZWFuIHZhbHVlKTsKIAogLyoqCkBAIC05MCw4ICs5OCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGV4
dF9hcmVhX2VsZW1lbnRfc2V0X2F1dG9mb2N1cyhXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50
KiBzZQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQ
UkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF9k
aXNhYmxlZChXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC05
OSw4ICsxMDksMTAgQEAgd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF9kaXNh
YmxlZChXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWwKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRt
bF90ZXh0X2FyZWFfZWxlbWVudF9zZXRfZGlzYWJsZWQoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxl
bWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTEwOCw4ICsxMjAsMTAgQEAg
d2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X3NldF9kaXNhYmxlZChXZWJLaXRET01I
VE1MVGV4dEFyZWFFbGVtZW50KiBzZWwKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGV4dEFy
ZWFFbGVtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01I
VE1MRm9ybUVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQq
CitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqCiB3ZWJraXRfZG9t
X2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfZ2V0X2Zvcm0oV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxl
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTE3LDggKzEzMSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
dGV4dF9hcmVhX2VsZW1lbnRfZ2V0X2Zvcm0oV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudAogICoKICAq
IFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVD
QVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfbmFtZShX
ZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMjYsOCArMTQy
LDEwIEBAIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfbmFtZShXZWJLaXRE
T01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
VGV4dEFyZWFFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFf
ZWxlbWVudF9zZXRfbmFtZShXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEzNSw4ICsxNTMsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX3RleHRfYXJlYV9lbGVtZW50X3NldF9uYW1lKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1l
bnQqIHNlbGYsIGMKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAg
KgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVu
dF9nZXRfcmVhZF9vbmx5KFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTE0NCw4ICsxNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50
X2dldF9yZWFkX29ubHkoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogc2UKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dib29sZWFu
CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtp
dF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9zZXRfcmVhZF9vbmx5KFdlYktpdERPTUhUTUxU
ZXh0QXJlYUVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBAIC0xNTMsOCAr
MTc1LDEwIEBAIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9zZXRfcmVhZF9vbmx5
KFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTFRleHRBcmVhRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfdGV4
dF9hcmVhX2VsZW1lbnRfZ2V0X3Jvd3MoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtMTYyLDggKzE4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVh
X2VsZW1lbnRfZ2V0X3Jvd3MoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogc2VsZik7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudAogICogQHZhbHVlOiBBICNn
bG9uZwogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3
ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfc2V0X3Jvd3MoV2ViS2l0RE9NSFRNTFRl
eHRBcmVhRWxlbWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioKQEAgLTE3MSw4ICsxOTcs
MTAgQEAgd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X3NldF9yb3dzKFdlYktpdERP
TUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYsIGcKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
VGV4dEFyZWFFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF90ZXh0X2Fy
ZWFfZWxlbWVudF9nZXRfY29scyhXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmKTsK
IAogLyoqCkBAIC0xODAsOCArMjA4LDEwIEBAIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxl
bWVudF9nZXRfY29scyhXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dsb25n
CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtp
dF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9zZXRfY29scyhXZWJLaXRET01IVE1MVGV4dEFy
ZWFFbGVtZW50KiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAKIC8qKgpAQCAtMTg5LDggKzIxOSwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfc2V0X2NvbHMoV2ViS2l0RE9NSFRN
TFRleHRBcmVhRWxlbWVudCogc2VsZiwgZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUZXh0
QXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVh
X2VsZW1lbnRfZ2V0X2FyZWFfdHlwZShXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxm
KTsKIAogLyoqCkBAIC0xOTgsOCArMjMwLDEwIEBAIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFf
ZWxlbWVudF9nZXRfYXJlYV90eXBlKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlCiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfZGVmYXVsdF92YWx1ZShX
ZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMDcsOCArMjQx
LDEwIEBAIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfZGVmYXVsdF92YWx1
ZShXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TFRleHRBcmVhRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVh
X2VsZW1lbnRfc2V0X2RlZmF1bHRfdmFsdWUoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCog
c2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0yMTYsOCArMjUyLDEwIEBAIHdl
YmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9zZXRfZGVmYXVsdF92YWx1ZShXZWJLaXRE
T01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRleHRBcmVh
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIq
CitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxl
bWVudF9nZXRfdmFsdWUoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtMjI1LDggKzI2MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRf
Z2V0X3ZhbHVlKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX3RleHRfYXJlYV9lbGVtZW50X3NldF92YWx1ZShXZWJLaXRET01IVE1MVGV4dEFyZWFF
bGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTIzNCw4ICsyNzQs
MTAgQEAgd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X3NldF92YWx1ZShXZWJLaXRE
T01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmLAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxU
ZXh0QXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1s
X3RleHRfYXJlYV9lbGVtZW50X2dldF93aWxsX3ZhbGlkYXRlKFdlYktpdERPTUhUTUxUZXh0QXJl
YUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTI0Myw4ICsyODUsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF93aWxsX3ZhbGlkYXRlKFdlYktpdERPTUhUTUxUZXh0
QXJlYUVsZW1lbnQKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAg
KgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RF
UFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfc2Vs
ZWN0aW9uX3N0YXJ0KFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTI1Miw4ICsyOTYsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dl
dF9zZWxlY3Rpb25fc3RhcnQoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWUKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dsb25nCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF90ZXh0X2FyZWFfZWxlbWVudF9zZXRfc2VsZWN0aW9uX3N0YXJ0KFdlYktpdERPTUhUTUxU
ZXh0QXJlYUVsZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCkBAIC0yNjEsOCArMzA3
LDEwIEBAIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9zZXRfc2VsZWN0aW9uX3N0
YXJ0KFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TFRleHRBcmVhRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfdGV4dF9h
cmVhX2VsZW1lbnRfZ2V0X3NlbGVjdGlvbl9lbmQoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtMjcwLDggKzMxOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGV4
dF9hcmVhX2VsZW1lbnRfZ2V0X3NlbGVjdGlvbl9lbmQoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxl
bWVudAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKICAqIEB2YWx1
ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X3NldF9zZWxlY3Rpb25fZW5k
KFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoq
CkBAIC0yNzksOCArMzI5LDEwIEBAIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9z
ZXRfc2VsZWN0aW9uX2VuZChXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKiBAaW5wdXQ6
IEEgI1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9v
bGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogICovCi1XRUJLSVRfQVBJIGdib29sZWFuIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFf
ZWxlbWVudF9pc19lZGl0ZWQoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogaW5wdXQpOwor
V0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4gd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVt
ZW50X2lzX2VkaXRlZChXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBpbnB1dCk7CiAKIEdf
RU5EX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGl0bGVFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MVGl0bGVFbGVtZW50LmNwcAppbmRleCBjODFmNTIzY2JkNi4uOTFlMjc3YjIyOTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MVGl0bGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRpdGxlRWxlbWVu
dC5jcHAKQEAgLTM1LDYgKzM1LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxUaXRsZUVsZW1lbnQqIGtpdChXZWJD
b3JlOjpIVE1MVGl0bGVFbGVtZW50KiBvYmopCkBAIC0xNjcsMyArMTY5LDQgQEAgdm9pZCB3ZWJr
aXRfZG9tX2h0bWxfdGl0bGVfZWxlbWVudF9zZXRfdGV4dChXZWJLaXRET01IVE1MVGl0bGVFbGVt
ZW50KiBzZWxmLCBjb24KICAgICBpdGVtLT5zZXRUZXh0KGNvbnZlcnRlZFZhbHVlKTsKIH0KIAor
R19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUaXRs
ZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MVGl0bGVFbGVtZW50LmgKaW5kZXggNGUwMGE4ZDUzNmYuLjg1
ODFjYzE2ODQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRpdGxlRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MVGl0bGVFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1M
VGl0bGVFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50
X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUK
IHdlYmtpdF9kb21faHRtbF90aXRsZV9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAg
LTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF90aXRsZV9lbGVtZW50X2dldF90eXBlKHZv
aWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUaXRsZUVsZW1lbnQKICAqCiAgKiBSZXR1
cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQg
Z2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGl0bGVfZWxlbWVudF9nZXRfdGV4dChXZWJLaXRET01I
VE1MVGl0bGVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfdGl0bGVfZWxlbWVudF9nZXRfdGV4dChXZWJLaXRET01IVE1MVGl0bGVFbGVtZW50
KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGl0bGVFbGVtZW50CiAgKiBAdmFs
dWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21faHRtbF90aXRsZV9lbGVtZW50X3NldF90ZXh0KFdlYktpdERPTUhU
TUxUaXRsZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xT
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTFVMaXN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFVMaXN0RWxl
bWVudC5jcHAKaW5kZXggNWUxOTg4MmZjOGMuLjY4ODNlNTFkMGM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTFVMaXN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxVTGlzdEVsZW1lbnQuY3BwCkBAIC0z
Niw2ICszNiw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBXZWJLaXRET01IVE1MVUxpc3RFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTFVM
aXN0RWxlbWVudCogb2JqKQpAQCAtMjAyLDMgKzIwNCw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1s
X3VfbGlzdF9lbGVtZW50X3NldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTFVMaXN0RWxlbWVudCog
c2VsCiAgICAgaXRlbS0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3Jl
OjpIVE1MTmFtZXM6OnR5cGVBdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRf
SUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVUxpc3RFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTFVMaXN0RWxlbWVudC5oCmluZGV4IDM4OWM3OTY1ZjYzLi44Yzg0YTJlYWM5NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxVTGlzdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFVMaXN0RWxl
bWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTFVMaXN0RWxlbWVu
dENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07
CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9t
X2h0bWxfdV9saXN0X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMs
MTAgQEAgd2Via2l0X2RvbV9odG1sX3VfbGlzdF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxVTGlzdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
Ym9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9v
bGVhbgogd2Via2l0X2RvbV9odG1sX3VfbGlzdF9lbGVtZW50X2dldF9jb21wYWN0KFdlYktpdERP
TUhUTUxVTGlzdEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtp
dF9kb21faHRtbF91X2xpc3RfZWxlbWVudF9nZXRfY29tcGFjdChXZWJLaXRET01IVE1MVUxpc3RF
bGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVUxpc3RFbGVtZW50CiAg
KiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF91X2xpc3RfZWxlbWVudF9zZXRfY29tcGFj
dChXZWJLaXRET01IVE1MVUxpc3RFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIC8q
KgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX3VfbGlzdF9lbGVtZW50X3NldF9j
b21wYWN0KFdlYktpdERPTUhUTUxVTGlzdEVsZW1lbnQqIHNlbGYsIGdib28KICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MVUxpc3RFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2Rv
bV9odG1sX3VfbGlzdF9lbGVtZW50X2dldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTFVMaXN0RWxl
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtODAsOCArODYsMTAgQEAgd2Via2l0X2RvbV9odG1sX3Vf
bGlzdF9lbGVtZW50X2dldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTFVMaXN0RWxlbWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFVMaXN0RWxlbWVudAogICogQHZhbHVlOiBB
ICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2h0bWxfdV9saXN0X2VsZW1lbnRfc2V0X3R5cGVfYXR0cihXZWJLaXRET01I
VE1MVUxpc3RFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNM
UwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUtleWJvYXJkRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUtleWJvYXJkRXZlbnQu
Y3BwCmluZGV4IDk2MjVkZDc3YmRjLi40MWZjYzk3ODM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUtleWJv
YXJkRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01LZXlib2FyZEV2ZW50LmNwcApAQCAtMzMsNiArMzMsOCBA
QAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0df
R05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
V2ViS2l0RE9NS2V5Ym9hcmRFdmVudCoga2l0KFdlYkNvcmU6OktleWJvYXJkRXZlbnQqIG9iaikK
QEAgLTI2OCwzICsyNzAsNCBAQCBnYm9vbGVhbiB3ZWJraXRfZG9tX2tleWJvYXJkX2V2ZW50X2dl
dF9hbHRfZ3JhcGhfa2V5KFdlYktpdERPTUtleWJvYXJkRXZlbnQqIHNlbAogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01LZXlib2FyZEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NS2V5Ym9hcmRFdmVudC5oCmluZGV4IGZjN2QxZGQy
MzBjLi4xYzVlZGE4NWVhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUtleWJvYXJkRXZlbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NS2V5Ym9hcmRFdmVudC5oCkBAIC0zNywyNiArMzcsMzggQEAgR19CRUdJTl9ERUNMUwogI2Rl
ZmluZSBXRUJLSVRfRE9NX0lTX0tFWUJPQVJEX0VWRU5UX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NI
RUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9ET01fVFlQRV9LRVlCT0FSRF9FVkVOVCkp
CiAjZGVmaW5lIFdFQktJVF9ET01fS0VZQk9BUkRfRVZFTlRfR0VUX0NMQVNTKG9iaikgIChHX1RZ
UEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX0RPTV9UWVBFX0tFWUJPQVJEX0VW
RU5ULCBXZWJLaXRET01LZXlib2FyZEV2ZW50Q2xhc3MpKQogCisjaWZuZGVmIFdFQktJVF9ESVNB
QkxFX0RFUFJFQ0FURUQKKwogLyoqCiAgKiBXRUJLSVRfRE9NX0tFWUJPQVJEX0VWRU5UX0tFWV9M
T0NBVElPTl9TVEFOREFSRDoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0tFWUJPQVJEX0VWRU5U
X0tFWV9MT0NBVElPTl9TVEFOREFSRCAweDAwCiAKIC8qKgogICogV0VCS0lUX0RPTV9LRVlCT0FS
RF9FVkVOVF9LRVlfTE9DQVRJT05fTEVGVDoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0tFWUJP
QVJEX0VWRU5UX0tFWV9MT0NBVElPTl9MRUZUIDB4MDEKIAogLyoqCiAgKiBXRUJLSVRfRE9NX0tF
WUJPQVJEX0VWRU5UX0tFWV9MT0NBVElPTl9SSUdIVDoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9N
X0tFWUJPQVJEX0VWRU5UX0tFWV9MT0NBVElPTl9SSUdIVCAweDAyCiAKIC8qKgogICogV0VCS0lU
X0RPTV9LRVlCT0FSRF9FVkVOVF9LRVlfTE9DQVRJT05fTlVNUEFEOgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdF
QktJVF9ET01fS0VZQk9BUkRfRVZFTlRfS0VZX0xPQ0FUSU9OX05VTVBBRCAweDAzCiAKKyNlbmRp
ZiAvKiBXRUJLSVRfRElTQUJMRV9ERVBSRUNBVEVEICovCisKIHN0cnVjdCBfV2ViS2l0RE9NS2V5
Ym9hcmRFdmVudCB7CiAgICAgV2ViS2l0RE9NVUlFdmVudCBwYXJlbnRfaW5zdGFuY2U7CiB9OwpA
QCAtNjUsNyArNzcsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUtleWJvYXJkRXZlbnRDbGFzcyB7CiAg
ICAgV2ViS2l0RE9NVUlFdmVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkg
R1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2tleWJvYXJkX2V2ZW50
X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTc0LDggKzg2LDEwIEBAIHdlYmtpdF9kb21fa2V5
Ym9hcmRfZXZlbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAa2V5SWRlbnRpZmllckFyZzogQSAjZ2No
YXIKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFu
CitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9rZXlib2FyZF9ldmVudF9n
ZXRfbW9kaWZpZXJfc3RhdGUoV2ViS2l0RE9NS2V5Ym9hcmRFdmVudCogc2VsZiwgY29uc3QgZ2No
YXIqIGtleUlkZW50aWZpZXJBcmcpOwogCiAvKioKQEAgLTkzLDggKzEwNywxMCBAQCB3ZWJraXRf
ZG9tX2tleWJvYXJkX2V2ZW50X2dldF9tb2RpZmllcl9zdGF0ZShXZWJLaXRET01LZXlib2FyZEV2
ZW50KiBzZWxmLCBjb25zdAogICogQG1ldGFLZXk6IEEgI2dib29sZWFuCiAgKiBAYWx0R3JhcGhL
ZXk6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21fa2V5Ym9hcmRfZXZlbnRfaW5pdF9rZXlib2FyZF9ldmVudChX
ZWJLaXRET01LZXlib2FyZEV2ZW50KiBzZWxmLCBjb25zdCBnY2hhciogdHlwZSwgZ2Jvb2xlYW4g
Y2FuQnViYmxlLCBnYm9vbGVhbiBjYW5jZWxhYmxlLCBXZWJLaXRET01ET01XaW5kb3cqIHZpZXcs
IGNvbnN0IGdjaGFyKiBrZXlJZGVudGlmaWVyLCBndWxvbmcgbG9jYXRpb24sIGdib29sZWFuIGN0
cmxLZXksIGdib29sZWFuIGFsdEtleSwgZ2Jvb2xlYW4gc2hpZnRLZXksIGdib29sZWFuIG1ldGFL
ZXksIGdib29sZWFuIGFsdEdyYXBoS2V5KTsKIAogLyoqCkBAIC0xMDIsOCArMTE4LDEwIEBAIHdl
YmtpdF9kb21fa2V5Ym9hcmRfZXZlbnRfaW5pdF9rZXlib2FyZF9ldmVudChXZWJLaXRET01LZXli
b2FyZEV2ZW50KiBzZWxmLCBjb25zCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NS2V5Ym9hcmRFdmVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fa2V5Ym9hcmRfZXZlbnRfZ2V0X2tleV9p
ZGVudGlmaWVyKFdlYktpdERPTUtleWJvYXJkRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTExMSw4
ICsxMjksMTAgQEAgd2Via2l0X2RvbV9rZXlib2FyZF9ldmVudF9nZXRfa2V5X2lkZW50aWZpZXIo
V2ViS2l0RE9NS2V5Ym9hcmRFdmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NS2V5
Ym9hcmRFdmVudAogICoKICAqIFJldHVybnM6IEEgI2d1bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGd1
bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vsb25nCiB3ZWJraXRfZG9tX2tleWJvYXJkX2V2ZW50
X2dldF9rZXlfbG9jYXRpb24oV2ViS2l0RE9NS2V5Ym9hcmRFdmVudCogc2VsZik7CiAKIC8qKgpA
QCAtMTIwLDggKzE0MCwxMCBAQCB3ZWJraXRfZG9tX2tleWJvYXJkX2V2ZW50X2dldF9rZXlfbG9j
YXRpb24oV2ViS2l0RE9NS2V5Ym9hcmRFdmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NS2V5Ym9hcmRFdmVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2tl
eWJvYXJkX2V2ZW50X2dldF9jdHJsX2tleShXZWJLaXRET01LZXlib2FyZEV2ZW50KiBzZWxmKTsK
IAogLyoqCkBAIC0xMjksOCArMTUxLDEwIEBAIHdlYmtpdF9kb21fa2V5Ym9hcmRfZXZlbnRfZ2V0
X2N0cmxfa2V5KFdlYktpdERPTUtleWJvYXJkRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUtleWJvYXJkRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2Rv
bV9rZXlib2FyZF9ldmVudF9nZXRfc2hpZnRfa2V5KFdlYktpdERPTUtleWJvYXJkRXZlbnQqIHNl
bGYpOwogCiAvKioKQEAgLTEzOCw4ICsxNjIsMTAgQEAgd2Via2l0X2RvbV9rZXlib2FyZF9ldmVu
dF9nZXRfc2hpZnRfa2V5KFdlYktpdERPTUtleWJvYXJkRXZlbnQqIHNlbGYpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTUtleWJvYXJkRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Vi
a2l0X2RvbV9rZXlib2FyZF9ldmVudF9nZXRfYWx0X2tleShXZWJLaXRET01LZXlib2FyZEV2ZW50
KiBzZWxmKTsKIAogLyoqCkBAIC0xNDcsOCArMTczLDEwIEBAIHdlYmtpdF9kb21fa2V5Ym9hcmRf
ZXZlbnRfZ2V0X2FsdF9rZXkoV2ViS2l0RE9NS2V5Ym9hcmRFdmVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NS2V5Ym9hcmRFdmVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFu
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3
ZWJraXRfZG9tX2tleWJvYXJkX2V2ZW50X2dldF9tZXRhX2tleShXZWJLaXRET01LZXlib2FyZEV2
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNTYsOCArMTg0LDEwIEBAIHdlYmtpdF9kb21fa2V5Ym9h
cmRfZXZlbnRfZ2V0X21ldGFfa2V5KFdlYktpdERPTUtleWJvYXJkRXZlbnQqIHNlbGYpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTUtleWJvYXJkRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9v
bGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVh
bgogd2Via2l0X2RvbV9rZXlib2FyZF9ldmVudF9nZXRfYWx0X2dyYXBoX2tleShXZWJLaXRET01L
ZXlib2FyZEV2ZW50KiBzZWxmKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01NZWRp
YUxpc3QuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTU1lZGlhTGlzdC5jcHAKaW5kZXggMjA4MGVlZmJhMDMuLmZiMWI0YWJm
Mzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NTWVkaWFMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTWVkaWFMaXN0LmNw
cApAQCAtMzcsNiArMzcsOCBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NTWVkaWFMaXN0UHJp
dmF0ZSB7CiAgICAgUmVmUHRyPFdlYkNvcmU6Ok1lZGlhTGlzdD4gY29yZU9iamVjdDsKIH0gV2Vi
S2l0RE9NTWVkaWFMaXN0UHJpdmF0ZTsKIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElP
TlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01NZWRpYUxpc3QqIGtpdChXZWJD
b3JlOjpNZWRpYUxpc3QqIG9iaikKQEAgLTIzMiwzICsyMzQsNCBAQCBndWxvbmcgd2Via2l0X2Rv
bV9tZWRpYV9saXN0X2dldF9sZW5ndGgoV2ViS2l0RE9NTWVkaWFMaXN0KiBzZWxmKQogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01NZWRpYUxpc3QuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01NZWRpYUxpc3QuaAppbmRleCA3MWY2ZjVhYWNm
YS4uNDMzNzk3OWEwMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01NZWRpYUxpc3QuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTWVk
aWFMaXN0LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01NZWRpYUxpc3RDbGFz
cyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lU
X0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fbWVkaWFfbGlz
dF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01NCw4ICs1NCwxMCBAQCB3ZWJraXRfZG9tX21l
ZGlhX2xpc3RfZ2V0X3R5cGUodm9pZCk7CiAgKiBAaW5kZXg6IEEgI2d1bG9uZwogICoKICAqIFJl
dHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRF
RCBnY2hhcioKIHdlYmtpdF9kb21fbWVkaWFfbGlzdF9pdGVtKFdlYktpdERPTU1lZGlhTGlzdCog
c2VsZiwgZ3Vsb25nIGluZGV4KTsKIAogLyoqCkBAIC02NCw4ICs2NiwxMCBAQCB3ZWJraXRfZG9t
X21lZGlhX2xpc3RfaXRlbShXZWJLaXRET01NZWRpYUxpc3QqIHNlbGYsIGd1bG9uZyBpbmRleCk7
CiAgKiBAb2xkTWVkaXVtOiBBICNnY2hhcgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fbWVkaWFf
bGlzdF9kZWxldGVfbWVkaXVtKFdlYktpdERPTU1lZGlhTGlzdCogc2VsZiwgY29uc3QgZ2NoYXIq
IG9sZE1lZGl1bSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTc0LDggKzc4LDEwIEBAIHdl
YmtpdF9kb21fbWVkaWFfbGlzdF9kZWxldGVfbWVkaXVtKFdlYktpdERPTU1lZGlhTGlzdCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIG9sZE1lCiAgKiBAbmV3TWVkaXVtOiBBICNnY2hhcgogICogQGVycm9y
OiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZv
aWQKIHdlYmtpdF9kb21fbWVkaWFfbGlzdF9hcHBlbmRfbWVkaXVtKFdlYktpdERPTU1lZGlhTGlz
dCogc2VsZiwgY29uc3QgZ2NoYXIqIG5ld01lZGl1bSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioK
QEAgLTgzLDggKzg5LDEwIEBAIHdlYmtpdF9kb21fbWVkaWFfbGlzdF9hcHBlbmRfbWVkaXVtKFdl
YktpdERPTU1lZGlhTGlzdCogc2VsZiwgY29uc3QgZ2NoYXIqIG5ld01lCiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NTWVkaWFMaXN0CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9tZWRpYV9s
aXN0X2dldF9tZWRpYV90ZXh0KFdlYktpdERPTU1lZGlhTGlzdCogc2VsZik7CiAKIC8qKgpAQCAt
OTMsOCArMTAxLDEwIEBAIHdlYmtpdF9kb21fbWVkaWFfbGlzdF9nZXRfbWVkaWFfdGV4dChXZWJL
aXRET01NZWRpYUxpc3QqIHNlbGYpOwogICogQHZhbHVlOiBBICNnY2hhcgogICogQGVycm9yOiAj
R0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21fbWVkaWFfbGlzdF9zZXRfbWVkaWFfdGV4dChXZWJLaXRET01NZWRpYUxpc3Qq
IHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTEw
Miw4ICsxMTIsMTAgQEAgd2Via2l0X2RvbV9tZWRpYV9saXN0X3NldF9tZWRpYV90ZXh0KFdlYktp
dERPTU1lZGlhTGlzdCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHUKICAqIEBzZWxmOiBBICNXZWJL
aXRET01NZWRpYUxpc3QKICAqCiAgKiBSZXR1cm5zOiBBICNndWxvbmcKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Via2l0X2RvbV9tZWRpYV9saXN0
X2dldF9sZW5ndGgoV2ViS2l0RE9NTWVkaWFMaXN0KiBzZWxmKTsKIAogR19FTkRfREVDTFMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01Nb3VzZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Nb3VzZUV2ZW50LmNwcAppbmRleCAx
N2RiMzNkMTI3NS4uMDU4MDBhMzU3ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Nb3VzZUV2ZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NTW91c2VFdmVudC5jcHAKQEAgLTM1LDYgKzM1LDggQEAKICNpbmNsdWRlIDx3dGYv
R2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JF
X0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTU1vdXNlRXZl
bnQqIGtpdChXZWJDb3JlOjpNb3VzZUV2ZW50KiBvYmopCkBAIC00NjYsMyArNDY4LDQgQEAgV2Vi
S2l0RE9NTm9kZSogd2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfdG9fZWxlbWVudChXZWJLaXRE
T01Nb3VzZUV2ZW50KiBzZWxmKQogICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0
LmdldCgpKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTU1vdXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Nb3VzZUV2ZW50LmgKaW5kZXggMTIxMmFmZWQ3YjIu
LmZkNGE4NjAyYzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTW91c2VFdmVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Nb3Vz
ZUV2ZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01Nb3VzZUV2ZW50Q2xh
c3MgewogICAgIFdlYktpdERPTVVJRXZlbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJL
SVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9tb3VzZV9l
dmVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC02Nyw4ICs2NywxMCBAQCB3ZWJraXRfZG9t
X21vdXNlX2V2ZW50X2dldF90eXBlKHZvaWQpOwogICogQGJ1dHRvbjogQSAjZ3VzaG9ydAogICog
QHJlbGF0ZWRUYXJnZXQ6IEEgI1dlYktpdERPTUV2ZW50VGFyZ2V0CiAgKgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fbW91c2VfZXZlbnRf
aW5pdF9tb3VzZV9ldmVudChXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmLCBjb25zdCBnY2hhciog
dHlwZSwgZ2Jvb2xlYW4gY2FuQnViYmxlLCBnYm9vbGVhbiBjYW5jZWxhYmxlLCBXZWJLaXRET01E
T01XaW5kb3cqIHZpZXcsIGdsb25nIGRldGFpbCwgZ2xvbmcgc2NyZWVuWCwgZ2xvbmcgc2NyZWVu
WSwgZ2xvbmcgY2xpZW50WCwgZ2xvbmcgY2xpZW50WSwgZ2Jvb2xlYW4gY3RybEtleSwgZ2Jvb2xl
YW4gYWx0S2V5LCBnYm9vbGVhbiBzaGlmdEtleSwgZ2Jvb2xlYW4gbWV0YUtleSwgZ3VzaG9ydCBi
dXR0b24sIFdlYktpdERPTUV2ZW50VGFyZ2V0KiByZWxhdGVkVGFyZ2V0KTsKIAogLyoqCkBAIC03
Niw4ICs3OCwxMCBAQCB3ZWJraXRfZG9tX21vdXNlX2V2ZW50X2luaXRfbW91c2VfZXZlbnQoV2Vi
S2l0RE9NTW91c2VFdmVudCogc2VsZiwgY29uc3QgZ2NoYXIqCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NTW91c2VFdmVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX21vdXNlX2V2ZW50X2dl
dF9zY3JlZW5feChXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmKTsKIAogLyoqCkBAIC04NSw4ICs4
OSwxMCBAQCB3ZWJraXRfZG9tX21vdXNlX2V2ZW50X2dldF9zY3JlZW5feChXZWJLaXRET01Nb3Vz
ZUV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Nb3VzZUV2ZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FU
RUQgZ2xvbmcKIHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X3NjcmVlbl95KFdlYktpdERPTU1v
dXNlRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTk0LDggKzEwMCwxMCBAQCB3ZWJraXRfZG9tX21v
dXNlX2V2ZW50X2dldF9zY3JlZW5feShXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01Nb3VzZUV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21f
bW91c2VfZXZlbnRfZ2V0X2NsaWVudF94KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogCiAv
KioKQEAgLTEwMyw4ICsxMTEsMTAgQEAgd2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfY2xpZW50
X3goV2ViS2l0RE9NTW91c2VFdmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTW91
c2VFdmVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcK
K1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX21vdXNlX2V2ZW50X2dldF9jbGll
bnRfeShXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMTIsOCArMTIyLDEw
IEBAIHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X2NsaWVudF95KFdlYktpdERPTU1vdXNlRXZl
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU1vdXNlRXZlbnQKICAqCiAgKiBSZXR1
cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVD
QVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfY3RybF9rZXkoV2ViS2l0
RE9NTW91c2VFdmVudCogc2VsZik7CiAKIC8qKgpAQCAtMTIxLDggKzEzMywxMCBAQCB3ZWJraXRf
ZG9tX21vdXNlX2V2ZW50X2dldF9jdHJsX2tleShXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmKTsK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01Nb3VzZUV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jv
b2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xl
YW4KIHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X3NoaWZ0X2tleShXZWJLaXRET01Nb3VzZUV2
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMzAsOCArMTQ0LDEwIEBAIHdlYmtpdF9kb21fbW91c2Vf
ZXZlbnRfZ2V0X3NoaWZ0X2tleShXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01Nb3VzZUV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtp
dF9kb21fbW91c2VfZXZlbnRfZ2V0X2FsdF9rZXkoV2ViS2l0RE9NTW91c2VFdmVudCogc2VsZik7
CiAKIC8qKgpAQCAtMTM5LDggKzE1NSwxMCBAQCB3ZWJraXRfZG9tX21vdXNlX2V2ZW50X2dldF9h
bHRfa2V5KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TU1vdXNlRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9tb3VzZV9l
dmVudF9nZXRfbWV0YV9rZXkoV2ViS2l0RE9NTW91c2VFdmVudCogc2VsZik7CiAKIC8qKgpAQCAt
MTQ4LDggKzE2NiwxMCBAQCB3ZWJraXRfZG9tX21vdXNlX2V2ZW50X2dldF9tZXRhX2tleShXZWJL
aXRET01Nb3VzZUV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Nb3VzZUV2ZW50
CiAgKgogICogUmV0dXJuczogQSAjZ3VzaG9ydAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGd1c2hvcnQKK1dF
QktJVF9ERVBSRUNBVEVEIGd1c2hvcnQKIHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X2J1dHRv
bihXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNTcsOCArMTc3LDEwIEBA
IHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X2J1dHRvbihXZWJLaXRET01Nb3VzZUV2ZW50KiBz
ZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Nb3VzZUV2ZW50CiAgKgogICogUmV0dXJuczog
KHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01FdmVudFRhcmdldAorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IFdlYktpdERPTUV2ZW50VGFyZ2V0KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRXZlbnRU
YXJnZXQqCiB3ZWJraXRfZG9tX21vdXNlX2V2ZW50X2dldF9yZWxhdGVkX3RhcmdldChXZWJLaXRE
T01Nb3VzZUV2ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNjYsOCArMTg4LDEwIEBAIHdlYmtpdF9k
b21fbW91c2VfZXZlbnRfZ2V0X3JlbGF0ZWRfdGFyZ2V0KFdlYktpdERPTU1vdXNlRXZlbnQqIHNl
bGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU1vdXNlRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwog
d2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfb2Zmc2V0X3goV2ViS2l0RE9NTW91c2VFdmVudCog
c2VsZik7CiAKIC8qKgpAQCAtMTc1LDggKzE5OSwxMCBAQCB3ZWJraXRfZG9tX21vdXNlX2V2ZW50
X2dldF9vZmZzZXRfeChXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01Nb3VzZUV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fbW91c2VfZXZl
bnRfZ2V0X29mZnNldF95KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTE4
NCw4ICsyMTAsMTAgQEAgd2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfb2Zmc2V0X3koV2ViS2l0
RE9NTW91c2VFdmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTW91c2VFdmVudAog
ICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9E
RVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX21vdXNlX2V2ZW50X2dldF94KFdlYktpdERPTU1v
dXNlRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTE5Myw4ICsyMjEsMTAgQEAgd2Via2l0X2RvbV9t
b3VzZV9ldmVudF9nZXRfeChXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01Nb3VzZUV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fbW91c2Vf
ZXZlbnRfZ2V0X3koV2ViS2l0RE9NTW91c2VFdmVudCogc2VsZik7CiAKIC8qKgpAQCAtMjAyLDgg
KzIzMiwxMCBAQCB3ZWJraXRfZG9tX21vdXNlX2V2ZW50X2dldF95KFdlYktpdERPTU1vdXNlRXZl
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU1vdXNlRXZlbnQKICAqCiAgKiBSZXR1
cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBX
ZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9k
b21fbW91c2VfZXZlbnRfZ2V0X2Zyb21fZWxlbWVudChXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxm
KTsKIAogLyoqCkBAIC0yMTEsOCArMjQzLDEwIEBAIHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0
X2Zyb21fZWxlbWVudChXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01Nb3VzZUV2ZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNX
ZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBS
RUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX21vdXNlX2V2ZW50X2dldF90b19lbGVt
ZW50KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTU5hbWVkTm9kZU1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTmFtZWROb2RlTWFwLmNwcAppbmRleCBkMjFh
ZGIyM2IxYS4uYmFmNjU4YTY0MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01OYW1lZE5vZGVNYXAuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01OYW1lZE5vZGVNYXAuY3BwCkBAIC0zOSw2ICszOSw4IEBAIHR5cGVkZWYgc3RydWN0
IF9XZWJLaXRET01OYW1lZE5vZGVNYXBQcml2YXRlIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6TmFt
ZWROb2RlTWFwPiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01OYW1lZE5vZGVNYXBQcml2YXRlOwog
CitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIFdlYktpdERPTU5hbWVkTm9kZU1hcCoga2l0KFdlYkNvcmU6Ok5hbWVkTm9kZU1hcCogb2Jq
KQpAQCAtMjM4LDMgKzI0MCw0IEBAIGd1bG9uZyB3ZWJraXRfZG9tX25hbWVkX25vZGVfbWFwX2dl
dF9sZW5ndGgoV2ViS2l0RE9NTmFtZWROb2RlTWFwKiBzZWxmKQogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01O
YW1lZE5vZGVNYXAuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01OYW1lZE5vZGVNYXAuaAppbmRleCA0Y2ZjOGJlMzg4My4uM2Fm
NDEyNTJjYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01OYW1lZE5vZGVNYXAuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTmFtZWRO
b2RlTWFwLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01OYW1lZE5vZGVNYXBD
bGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VC
S0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fbmFtZWRf
bm9kZV9tYXBfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTQsOCArNTQsMTAgQEAgd2Via2l0
X2RvbV9uYW1lZF9ub2RlX21hcF9nZXRfdHlwZSh2b2lkKTsKICAqIEBuYW1lOiBBICNnY2hhcgog
ICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2Rl
Kgogd2Via2l0X2RvbV9uYW1lZF9ub2RlX21hcF9nZXRfbmFtZWRfaXRlbShXZWJLaXRET01OYW1l
ZE5vZGVNYXAqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lKTsKIAogLyoqCkBAIC02NSw4ICs2Nywx
MCBAQCB3ZWJraXRfZG9tX25hbWVkX25vZGVfbWFwX2dldF9uYW1lZF9pdGVtKFdlYktpdERPTU5h
bWVkTm9kZU1hcCogc2VsZiwgY29uc3QgZ2NoYQogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICog
UmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJr
aXRfZG9tX25hbWVkX25vZGVfbWFwX3NldF9uYW1lZF9pdGVtKFdlYktpdERPTU5hbWVkTm9kZU1h
cCogc2VsZiwgV2ViS2l0RE9NTm9kZSogbm9kZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAg
LTc2LDggKzgwLDEwIEBAIHdlYmtpdF9kb21fbmFtZWRfbm9kZV9tYXBfc2V0X25hbWVkX2l0ZW0o
V2ViS2l0RE9NTmFtZWROb2RlTWFwKiBzZWxmLCBXZWJLaXRET01OCiAgKiBAZXJyb3I6ICNHRXJy
b3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9N
Tm9kZSoKIHdlYmtpdF9kb21fbmFtZWRfbm9kZV9tYXBfcmVtb3ZlX25hbWVkX2l0ZW0oV2ViS2l0
RE9NTmFtZWROb2RlTWFwKiBzZWxmLCBjb25zdCBnY2hhciogbmFtZSwgR0Vycm9yKiogZXJyb3Ip
OwogCiAvKioKQEAgLTg2LDggKzkyLDEwIEBAIHdlYmtpdF9kb21fbmFtZWRfbm9kZV9tYXBfcmVt
b3ZlX25hbWVkX2l0ZW0oV2ViS2l0RE9NTmFtZWROb2RlTWFwKiBzZWxmLCBjb25zdCBnCiAgKiBA
aW5kZXg6IEEgI2d1bG9uZwogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2Vi
S2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVD
QVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9uYW1lZF9ub2RlX21hcF9pdGVtKFdlYktp
dERPTU5hbWVkTm9kZU1hcCogc2VsZiwgZ3Vsb25nIGluZGV4KTsKIAogLyoqCkBAIC05Nyw4ICsx
MDUsMTAgQEAgd2Via2l0X2RvbV9uYW1lZF9ub2RlX21hcF9pdGVtKFdlYktpdERPTU5hbWVkTm9k
ZU1hcCogc2VsZiwgZ3Vsb25nIGluZGV4KTsKICAqIEBsb2NhbE5hbWU6IEEgI2djaGFyCiAgKgog
ICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3
ZWJraXRfZG9tX25hbWVkX25vZGVfbWFwX2dldF9uYW1lZF9pdGVtX25zKFdlYktpdERPTU5hbWVk
Tm9kZU1hcCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWVzcGFjZVVSSSwgY29uc3QgZ2NoYXIqIGxv
Y2FsTmFtZSk7CiAKIC8qKgpAQCAtMTA4LDggKzExOCwxMCBAQCB3ZWJraXRfZG9tX25hbWVkX25v
ZGVfbWFwX2dldF9uYW1lZF9pdGVtX25zKFdlYktpdERPTU5hbWVkTm9kZU1hcCogc2VsZiwgY29u
c3QgZwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUp
OiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJ
VF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX25hbWVkX25vZGVfbWFwX3Nl
dF9uYW1lZF9pdGVtX25zKFdlYktpdERPTU5hbWVkTm9kZU1hcCogc2VsZiwgV2ViS2l0RE9NTm9k
ZSogbm9kZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTEyMCw4ICsxMzIsMTAgQEAgd2Vi
a2l0X2RvbV9uYW1lZF9ub2RlX21hcF9zZXRfbmFtZWRfaXRlbV9ucyhXZWJLaXRET01OYW1lZE5v
ZGVNYXAqIHNlbGYsIFdlYktpdEQKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6
ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktp
dERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9u
YW1lZF9ub2RlX21hcF9yZW1vdmVfbmFtZWRfaXRlbV9ucyhXZWJLaXRET01OYW1lZE5vZGVNYXAq
IHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lc3BhY2VVUkksIGNvbnN0IGdjaGFyKiBsb2NhbE5hbWUs
IEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xMjksOCArMTQzLDEwIEBAIHdlYmtpdF9kb21f
bmFtZWRfbm9kZV9tYXBfcmVtb3ZlX25hbWVkX2l0ZW1fbnMoV2ViS2l0RE9NTmFtZWROb2RlTWFw
KiBzZWxmLCBjb25zCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTmFtZWROb2RlTWFwCiAgKgogICog
UmV0dXJuczogQSAjZ3Vsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQUkVD
QVRFRCBndWxvbmcKIHdlYmtpdF9kb21fbmFtZWRfbm9kZV9tYXBfZ2V0X2xlbmd0aChXZWJLaXRE
T01OYW1lZE5vZGVNYXAqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5v
ZGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01Ob2RlLmgKaW5kZXggYzU0YzhhNzM4OWUuLmYzODJiOTg0ODc0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlLmgKQEAgLTI1LDYgKzI1LDcgQEAKICNkZWZp
bmUgV2ViS2l0RE9NTm9kZV9oCiAKICNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUg
PGpzYy9qc2MuaD4KICNpbmNsdWRlIDx3ZWJraXRkb20vV2ViS2l0RE9NT2JqZWN0Lmg+CiAjaW5j
bHVkZSA8d2Via2l0ZG9tL3dlYmtpdGRvbWRlZmluZXMuaD4KIApAQCAtMzcsOTEgKzM4LDEyOSBA
QCBHX0JFR0lOX0RFQ0xTCiAjZGVmaW5lIFdFQktJVF9ET01fSVNfTk9ERV9DTEFTUyhrbGFzcykg
KEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfRE9NX1RZUEVfTk9ERSkp
CiAjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5D
RV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfRE9NX1RZUEVfTk9ERSwgV2ViS2l0RE9NTm9kZUNs
YXNzKSkKIAorI2lmbmRlZiBXRUJLSVRfRElTQUJMRV9ERVBSRUNBVEVECisKIC8qKgogICogV0VC
S0lUX0RPTV9OT0RFX0VMRU1FTlRfTk9ERToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX05PREVf
RUxFTUVOVF9OT0RFIDEKIAogLyoqCiAgKiBXRUJLSVRfRE9NX05PREVfQVRUUklCVVRFX05PREU6
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0FUVFJJQlVURV9OT0RFIDIKIAogLyoqCiAg
KiBXRUJLSVRfRE9NX05PREVfVEVYVF9OT0RFOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fTk9E
RV9URVhUX05PREUgMwogCiAvKioKICAqIFdFQktJVF9ET01fTk9ERV9DREFUQV9TRUNUSU9OX05P
REU6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0NEQVRBX1NFQ1RJT05fTk9ERSA0CiAK
IC8qKgogICogV0VCS0lUX0RPTV9OT0RFX0VOVElUWV9SRUZFUkVOQ0VfTk9ERToKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2Rl
ZmluZSBXRUJLSVRfRE9NX05PREVfRU5USVRZX1JFRkVSRU5DRV9OT0RFIDUKIAogLyoqCiAgKiBX
RUJLSVRfRE9NX05PREVfRU5USVRZX05PREU6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RF
X0VOVElUWV9OT0RFIDYKIAogLyoqCiAgKiBXRUJLSVRfRE9NX05PREVfUFJPQ0VTU0lOR19JTlNU
UlVDVElPTl9OT0RFOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9QUk9DRVNTSU5HX0lO
U1RSVUNUSU9OX05PREUgNwogCiAvKioKICAqIFdFQktJVF9ET01fTk9ERV9DT01NRU5UX05PREU6
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0NPTU1FTlRfTk9ERSA4CiAKIC8qKgogICog
V0VCS0lUX0RPTV9OT0RFX0RPQ1VNRU5UX05PREU6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9O
T0RFX0RPQ1VNRU5UX05PREUgOQogCiAvKioKICAqIFdFQktJVF9ET01fTk9ERV9ET0NVTUVOVF9U
WVBFX05PREU6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0RPQ1VNRU5UX1RZUEVfTk9E
RSAxMAogCiAvKioKICAqIFdFQktJVF9ET01fTk9ERV9ET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
ICovCiAjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9ET0NVTUVOVF9GUkFHTUVOVF9OT0RFIDExCiAK
IC8qKgogICogV0VCS0lUX0RPTV9OT0RFX0RPQ1VNRU5UX1BPU0lUSU9OX0RJU0NPTk5FQ1RFRDoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX05PREVfRE9DVU1FTlRfUE9TSVRJT05fRElTQ09OTkVD
VEVEIDB4MDEKIAogLyoqCiAgKiBXRUJLSVRfRE9NX05PREVfRE9DVU1FTlRfUE9TSVRJT05fUFJF
Q0VESU5HOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9ET0NVTUVOVF9QT1NJVElPTl9Q
UkVDRURJTkcgMHgwMgogCiAvKioKICAqIFdFQktJVF9ET01fTk9ERV9ET0NVTUVOVF9QT1NJVElP
Tl9GT0xMT1dJTkc6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0RPQ1VNRU5UX1BPU0lU
SU9OX0ZPTExPV0lORyAweDA0CiAKIC8qKgogICogV0VCS0lUX0RPTV9OT0RFX0RPQ1VNRU5UX1BP
U0lUSU9OX0NPTlRBSU5TOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9ET0NVTUVOVF9Q
T1NJVElPTl9DT05UQUlOUyAweDA4CiAKIC8qKgogICogV0VCS0lUX0RPTV9OT0RFX0RPQ1VNRU5U
X1BPU0lUSU9OX0NPTlRBSU5FRF9CWToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX05PREVfRE9D
VU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZIDB4MTAKIAogLyoqCiAgKiBXRUJLSVRfRE9NX05P
REVfRE9DVU1FTlRfUE9TSVRJT05fSU1QTEVNRU5UQVRJT05fU1BFQ0lGSUM6CisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZp
bmUgV0VCS0lUX0RPTV9OT0RFX0RPQ1VNRU5UX1BPU0lUSU9OX0lNUExFTUVOVEFUSU9OX1NQRUNJ
RklDIDB4MjAKIAorI2VuZGlmIC8qIFdFQktJVF9ESVNBQkxFX0RFUFJFQ0FURUQgKi8KKwogc3Ry
dWN0IF9XZWJLaXRET01Ob2RlIHsKICAgICBXZWJLaXRET01PYmplY3QgcGFyZW50X2luc3RhbmNl
OwogfTsKQEAgLTE0MSw4ICsxODAsMTAgQEAgd2Via2l0X2RvbV9ub2RlX2dldF90eXBlKHZvaWQp
OwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBB
ICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9E
RVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX25vZGVfaW5zZXJ0X2JlZm9yZShX
ZWJLaXRET01Ob2RlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBuZXdDaGlsZCwgV2ViS2l0RE9NTm9k
ZSogcmVmQ2hpbGQsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xNTMsOCArMTk0LDEwIEBA
IHdlYmtpdF9kb21fbm9kZV9pbnNlcnRfYmVmb3JlKFdlYktpdERPTU5vZGUqIHNlbGYsIFdlYktp
dERPTU5vZGUqIG5ld0NoaWxkLCBXZWJLCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1
cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBX
ZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9k
b21fbm9kZV9yZXBsYWNlX2NoaWxkKFdlYktpdERPTU5vZGUqIHNlbGYsIFdlYktpdERPTU5vZGUq
IG5ld0NoaWxkLCBXZWJLaXRET01Ob2RlKiBvbGRDaGlsZCwgR0Vycm9yKiogZXJyb3IpOwogCiAv
KioKQEAgLTE2NCw4ICsyMDcsMTAgQEAgd2Via2l0X2RvbV9ub2RlX3JlcGxhY2VfY2hpbGQoV2Vi
S2l0RE9NTm9kZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogbmV3Q2hpbGQsIFdlYksKICAqIEBlcnJv
cjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9N
Tm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBX
ZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9ub2RlX3JlbW92ZV9jaGlsZChXZWJLaXRET01Ob2Rl
KiBzZWxmLCBXZWJLaXRET01Ob2RlKiBvbGRDaGlsZCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioK
QEAgLTE3NSw4ICsyMjAsMTAgQEAgd2Via2l0X2RvbV9ub2RlX3JlbW92ZV9jaGlsZChXZWJLaXRE
T01Ob2RlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBvbGRDaGlsZCwgR0Vycm8KICAqIEBlcnJvcjog
I0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9k
ZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJL
aXRET01Ob2RlKgogd2Via2l0X2RvbV9ub2RlX2FwcGVuZF9jaGlsZChXZWJLaXRET01Ob2RlKiBz
ZWxmLCBXZWJLaXRET01Ob2RlKiBuZXdDaGlsZCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAg
LTE4NCw4ICsyMzEsMTAgQEAgd2Via2l0X2RvbV9ub2RlX2FwcGVuZF9jaGlsZChXZWJLaXRET01O
b2RlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBuZXdDaGlsZCwgR0Vycm8KICAqIEBzZWxmOiBBICNX
ZWJLaXRET01Ob2RlCiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fbm9kZV9o
YXNfY2hpbGRfbm9kZXMoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAKIC8qKgpAQCAtMTk3LDE2ICsy
NDYsMjAgQEAgd2Via2l0X2RvbV9ub2RlX2hhc19jaGlsZF9ub2RlcyhXZWJLaXRET01Ob2RlKiBz
ZWxmKTsKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQogICoK
ICAqIFNpbmNlOiAyLjE0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9E
RVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX25vZGVfY2xvbmVfbm9kZV93aXRo
X2Vycm9yKFdlYktpdERPTU5vZGUqIHNlbGYsIGdib29sZWFuIGRlZXAsIEdFcnJvcioqIGVycm9y
KTsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX25vZGVfbm9ybWFsaXplOgogICogQHNlbGY6IEEgI1dl
YktpdERPTU5vZGUKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9ub2RlX25vcm1hbGl6ZShXZWJLaXRET01Ob2RlKiBzZWxmKTsKIAog
LyoqCkBAIC0yMTYsOCArMjY5LDEwIEBAIHdlYmtpdF9kb21fbm9kZV9ub3JtYWxpemUoV2ViS2l0
RE9NTm9kZSogc2VsZik7CiAgKiBAdmVyc2lvbjogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiBB
ICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBn
Ym9vbGVhbgogd2Via2l0X2RvbV9ub2RlX2lzX3N1cHBvcnRlZChXZWJLaXRET01Ob2RlKiBzZWxm
LCBjb25zdCBnY2hhciogZmVhdHVyZSwgY29uc3QgZ2NoYXIqIHZlcnNpb24pOwogCiAvKioKQEAg
LTIyNiw4ICsyODEsMTAgQEAgd2Via2l0X2RvbV9ub2RlX2lzX3N1cHBvcnRlZChXZWJLaXRET01O
b2RlKiBzZWxmLCBjb25zdCBnY2hhciogZmVhdHVyZSwgY29uc3QgZ2MKICAqIEBvdGhlcjogQSAj
V2ViS2l0RE9NTm9kZQogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX25vZGVf
aXNfc2FtZV9ub2RlKFdlYktpdERPTU5vZGUqIHNlbGYsIFdlYktpdERPTU5vZGUqIG90aGVyKTsK
IAogLyoqCkBAIC0yMzYsOCArMjkzLDEwIEBAIHdlYmtpdF9kb21fbm9kZV9pc19zYW1lX25vZGUo
V2ViS2l0RE9NTm9kZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogb3RoZXIpOwogICogQG90aGVyOiBB
ICNXZWJLaXRET01Ob2RlCiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fbm9k
ZV9pc19lcXVhbF9ub2RlKFdlYktpdERPTU5vZGUqIHNlbGYsIFdlYktpdERPTU5vZGUqIG90aGVy
KTsKIAogLyoqCkBAIC0yNDYsOCArMzA1LDEwIEBAIHdlYmtpdF9kb21fbm9kZV9pc19lcXVhbF9u
b2RlKFdlYktpdERPTU5vZGUqIHNlbGYsIFdlYktpdERPTU5vZGUqIG90aGVyKTsKICAqIEBuYW1l
c3BhY2VVUkk6IEEgI2djaGFyCiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9ub2RlX2xv
b2t1cF9wcmVmaXgoV2ViS2l0RE9NTm9kZSogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWVzcGFjZVVS
SSk7CiAKIC8qKgpAQCAtMjU2LDggKzMxNywxMCBAQCB3ZWJraXRfZG9tX25vZGVfbG9va3VwX3By
ZWZpeChXZWJLaXRET01Ob2RlKiBzZWxmLCBjb25zdCBnY2hhciogbmFtZXNwYWNlVVJJKTsKICAq
IEBwcmVmaXg6IEEgI2djaGFyCiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9ub2RlX2xv
b2t1cF9uYW1lc3BhY2VfdXJpKFdlYktpdERPTU5vZGUqIHNlbGYsIGNvbnN0IGdjaGFyKiBwcmVm
aXgpOwogCiAvKioKQEAgLTI2Niw4ICszMjksMTAgQEAgd2Via2l0X2RvbV9ub2RlX2xvb2t1cF9u
YW1lc3BhY2VfdXJpKFdlYktpdERPTU5vZGUqIHNlbGYsIGNvbnN0IGdjaGFyKiBwcmVmaXgpOwog
ICogQG5hbWVzcGFjZVVSSTogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Vi
a2l0X2RvbV9ub2RlX2lzX2RlZmF1bHRfbmFtZXNwYWNlKFdlYktpdERPTU5vZGUqIHNlbGYsIGNv
bnN0IGdjaGFyKiBuYW1lc3BhY2VVUkkpOwogCiAvKioKQEAgLTI3Niw4ICszNDEsMTAgQEAgd2Vi
a2l0X2RvbV9ub2RlX2lzX2RlZmF1bHRfbmFtZXNwYWNlKFdlYktpdERPTU5vZGUqIHNlbGYsIGNv
bnN0IGdjaGFyKiBuYW1lc3BhY2UKICAqIEBvdGhlcjogQSAjV2ViS2l0RE9NTm9kZQogICoKICAq
IFJldHVybnM6IEEgI2d1c2hvcnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBndXNob3J0CitXRUJLSVRfREVQ
UkVDQVRFRCBndXNob3J0CiB3ZWJraXRfZG9tX25vZGVfY29tcGFyZV9kb2N1bWVudF9wb3NpdGlv
bihXZWJLaXRET01Ob2RlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBvdGhlcik7CiAKIC8qKgpAQCAt
Mjg2LDggKzM1MywxMCBAQCB3ZWJraXRfZG9tX25vZGVfY29tcGFyZV9kb2N1bWVudF9wb3NpdGlv
bihXZWJLaXRET01Ob2RlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBvdAogICogQG90aGVyOiBBICNX
ZWJLaXRET01Ob2RlCiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fbm9kZV9j
b250YWlucyhXZWJLaXRET01Ob2RlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBvdGhlcik7CiAKIC8q
KgpAQCAtMjk1LDggKzM2NCwxMCBAQCB3ZWJraXRfZG9tX25vZGVfY29udGFpbnMoV2ViS2l0RE9N
Tm9kZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogb3RoZXIpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TU5vZGUKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgor
V0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX25vZGVfZ2V0X25vZGVfbmFtZShX
ZWJLaXRET01Ob2RlKiBzZWxmKTsKIAogLyoqCkBAIC0zMDQsOCArMzc1LDEwIEBAIHdlYmtpdF9k
b21fbm9kZV9nZXRfbm9kZV9uYW1lKFdlYktpdERPTU5vZGUqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTU5vZGUKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX25vZGVfZ2V0X25v
ZGVfdmFsdWUoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAKIC8qKgpAQCAtMzE0LDggKzM4NywxMCBA
QCB3ZWJraXRfZG9tX25vZGVfZ2V0X25vZGVfdmFsdWUoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAg
KiBAdmFsdWU6IEEgI2djaGFyCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9ub2RlX3NldF9ub2Rl
X3ZhbHVlKFdlYktpdERPTU5vZGUqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKiog
ZXJyb3IpOwogCiAvKioKQEAgLTMyMyw4ICszOTgsMTAgQEAgd2Via2l0X2RvbV9ub2RlX3NldF9u
b2RlX3ZhbHVlKFdlYktpdERPTU5vZGUqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9y
KioKICAqIEBzZWxmOiBBICNXZWJLaXRET01Ob2RlCiAgKgogICogUmV0dXJuczogQSAjZ3VzaG9y
dAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGd1c2hvcnQKK1dFQktJVF9ERVBSRUNBVEVEIGd1c2hvcnQKIHdl
YmtpdF9kb21fbm9kZV9nZXRfbm9kZV90eXBlKFdlYktpdERPTU5vZGUqIHNlbGYpOwogCiAvKioK
QEAgLTMzMiw4ICs0MDksMTAgQEAgd2Via2l0X2RvbV9ub2RlX2dldF9ub2RlX3R5cGUoV2ViS2l0
RE9NTm9kZSogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTm9kZQogICoKICAqIFJldHVy
bnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdl
YktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2Rv
bV9ub2RlX2dldF9wYXJlbnRfbm9kZShXZWJLaXRET01Ob2RlKiBzZWxmKTsKIAogLyoqCkBAIC0z
NDEsOCArNDIwLDEwIEBAIHdlYmtpdF9kb21fbm9kZV9nZXRfcGFyZW50X25vZGUoV2ViS2l0RE9N
Tm9kZSogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTm9kZQogICoKICAqIFJldHVybnM6
ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NTm9kZUxpc3QKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBX
ZWJLaXRET01Ob2RlTGlzdCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGVMaXN0Kgog
d2Via2l0X2RvbV9ub2RlX2dldF9jaGlsZF9ub2RlcyhXZWJLaXRET01Ob2RlKiBzZWxmKTsKIAog
LyoqCkBAIC0zNTAsOCArNDMxLDEwIEBAIHdlYmtpdF9kb21fbm9kZV9nZXRfY2hpbGRfbm9kZXMo
V2ViS2l0RE9NTm9kZSogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTm9kZQogICoKICAq
IFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Vi
a2l0X2RvbV9ub2RlX2dldF9maXJzdF9jaGlsZChXZWJLaXRET01Ob2RlKiBzZWxmKTsKIAogLyoq
CkBAIC0zNTksOCArNDQyLDEwIEBAIHdlYmtpdF9kb21fbm9kZV9nZXRfZmlyc3RfY2hpbGQoV2Vi
S2l0RE9NTm9kZSogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTm9kZQogICoKICAqIFJl
dHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0
X2RvbV9ub2RlX2dldF9sYXN0X2NoaWxkKFdlYktpdERPTU5vZGUqIHNlbGYpOwogCiAvKioKQEAg
LTM2OCw4ICs0NTMsMTAgQEAgd2Via2l0X2RvbV9ub2RlX2dldF9sYXN0X2NoaWxkKFdlYktpdERP
TU5vZGUqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBSZXR1cm5z
OiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJL
aXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21f
bm9kZV9nZXRfcHJldmlvdXNfc2libGluZyhXZWJLaXRET01Ob2RlKiBzZWxmKTsKIAogLyoqCkBA
IC0zNzcsOCArNDY0LDEwIEBAIHdlYmtpdF9kb21fbm9kZV9nZXRfcHJldmlvdXNfc2libGluZyhX
ZWJLaXRET01Ob2RlKiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Ob2RlCiAgKgogICog
UmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJr
aXRfZG9tX25vZGVfZ2V0X25leHRfc2libGluZyhXZWJLaXRET01Ob2RlKiBzZWxmKTsKIAogLyoq
CkBAIC0zODYsOCArNDc1LDEwIEBAIHdlYmtpdF9kb21fbm9kZV9nZXRfbmV4dF9zaWJsaW5nKFdl
YktpdERPTU5vZGUqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBS
ZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTURvY3VtZW50CisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgV2ViS2l0RE9NRG9jdW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Eb2N1
bWVudCoKIHdlYmtpdF9kb21fbm9kZV9nZXRfb3duZXJfZG9jdW1lbnQoV2ViS2l0RE9NTm9kZSog
c2VsZik7CiAKIC8qKgpAQCAtMzk1LDggKzQ4NiwxMCBAQCB3ZWJraXRfZG9tX25vZGVfZ2V0X293
bmVyX2RvY3VtZW50KFdlYktpdERPTU5vZGUqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TU5vZGUKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgor
V0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX25vZGVfZ2V0X2Jhc2VfdXJpKFdl
YktpdERPTU5vZGUqIHNlbGYpOwogCiAvKioKQEAgLTQwNCw4ICs0OTcsMTAgQEAgd2Via2l0X2Rv
bV9ub2RlX2dldF9iYXNlX3VyaShXZWJLaXRET01Ob2RlKiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01Ob2RlCiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Y2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9ub2RlX2dldF90ZXh0
X2NvbnRlbnQoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAKIC8qKgpAQCAtNDE0LDggKzUwOSwxMCBA
QCB3ZWJraXRfZG9tX25vZGVfZ2V0X3RleHRfY29udGVudChXZWJLaXRET01Ob2RlKiBzZWxmKTsK
ICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqIEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX25vZGVfc2V0X3Rl
eHRfY29udGVudChXZWJLaXRET01Ob2RlKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJv
cioqIGVycm9yKTsKIAogLyoqCkBAIC00MjMsMTAgKzUyMCwxNSBAQCB3ZWJraXRfZG9tX25vZGVf
c2V0X3RleHRfY29udGVudChXZWJLaXRET01Ob2RlKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUs
IEdFcnJvcgogICogQHNlbGY6IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBSZXR1cm5zOiAodHJh
bnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRE
T01FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9k
b21fbm9kZV9nZXRfcGFyZW50X2VsZW1lbnQoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAKK1dFQktJ
VF9BUEkgV2ViS2l0RE9NTm9kZSAqCit3ZWJraXRfZG9tX25vZGVfZm9yX2pzX3ZhbHVlKEpTQ1Zh
bHVlKiB2YWx1ZSk7CisKIEdfRU5EX0RFQ0xTCiAKICNlbmRpZiAvKiBXZWJLaXRET01Ob2RlX2gg
Ki8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlRmlsdGVyLmNwcApp
bmRleCA4NzQ3ZTM1MWZhNS4uZmRjYzk0YTQ2MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlRmlsdGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NTm9kZUZpbHRlci5jcHAKQEAgLTI5LDYgKzI5LDggQEAKIAogdHlwZWRl
ZiBXZWJLaXRET01Ob2RlRmlsdGVySWZhY2UgV2ViS2l0RE9NTm9kZUZpbHRlckludGVyZmFjZTsK
IAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIEdfREVGSU5FX0lOVEVSRkFD
RShXZWJLaXRET01Ob2RlRmlsdGVyLCB3ZWJraXRfZG9tX25vZGVfZmlsdGVyLCBHX1RZUEVfT0JK
RUNUKQogCiBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX25vZGVfZmlsdGVyX2RlZmF1bHRfaW5pdChX
ZWJLaXRET01Ob2RlRmlsdGVySWZhY2UqKQpAQCAtODIsMyArODQsNCBAQCBSZWZQdHI8V2ViQ29y
ZTo6Tm9kZUZpbHRlcj4gY29yZShXZWJDb3JlOjpEb2N1bWVudCogZG9jdW1lbnQsIFdlYktpdERP
TU5vZGVGaWx0ZQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKK0dfR05VQ19FTkRfSUdOT1JF
X0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlRmlsdGVyLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUZp
bHRlci5oCmluZGV4IDJkODhmOGZiNmZmLi5lMjYwMDUwMzVhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5v
ZGVGaWx0ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUZpbHRlci5oCkBAIC0zMCw2ICszMCw4IEBAIEdfQkVH
SU5fREVDTFMKICNkZWZpbmUgV0VCS0lUX0RPTV9JU19OT0RFX0ZJTFRFUihvYmopICAgICAgICAg
KEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFICgob2JqKSwgV0VCS0lUX0RPTV9UWVBFX05PREVf
RklMVEVSKSkKICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0ZJTFRFUl9HRVRfSUZBQ0Uob2JqKSAg
KEdfVFlQRV9JTlNUQU5DRV9HRVRfSU5URVJGQUNFICgob2JqKSwgV0VCS0lUX0RPTV9UWVBFX05P
REVfRklMVEVSLCBXZWJLaXRET01Ob2RlRmlsdGVySWZhY2UpKQogCisjaWZuZGVmIFdFQktJVF9E
SVNBQkxFX0RFUFJFQ0FURUQKKwogLyoqCiAgKiBXRUJLSVRfRE9NX05PREVfRklMVEVSX0FDQ0VQ
VDoKICAqCkBAIC0zNyw2ICszOSw4IEBAIEdfQkVHSU5fREVDTFMKICAqIGltcGxlbWVudGF0aW9u
IHRvIGFjY2VwdCB0aGUgZ2l2ZW4gI1dlYktpdERPTU5vZGUKICAqCiAgKiBTaW5jZTogMi42Cisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAg
Ki8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0ZJTFRFUl9BQ0NFUFQgMQogCkBAIC00OCw2ICs1
Miw4IEBAIEdfQkVHSU5fREVDTFMKICAqIGJlIHJlamVjdGVkIHRvby4KICAqCiAgKiBTaW5jZTog
Mi42CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0ZJTFRFUl9SRUpFQ1QgMgogCkBAIC01
OSw2ICs2NSw4IEBAIEdfQkVHSU5fREVDTFMKICAqIG5vdCBiZSBza2lwcGVkLgogICoKICAqIFNp
bmNlOiAyLjYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX05PREVfRklMVEVSX1NLSVAgICAzCiAK
QEAgLTY4LDYgKzc2LDggQEAgR19CRUdJTl9ERUNMUwogICogU2hvdyBhbGwgbm9kZXMuCiAgKgog
ICogU2luY2U6IDIuNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9GSUxURVJfU0hPV19B
TEwgICAgICAgICAgICAgICAgICAgIDB4RkZGRkZGRkYKIApAQCAtNzcsNiArODcsOCBAQCBHX0JF
R0lOX0RFQ0xTCiAgKiBTaG93ICNXZWJLaXRET01FbGVtZW50IG5vZGVzLgogICoKICAqIFNpbmNl
OiAyLjYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX05PREVfRklMVEVSX1NIT1dfRUxFTUVOVCAg
ICAgICAgICAgICAgICAweDAwMDAwMDAxCiAKQEAgLTg2LDYgKzk4LDggQEAgR19CRUdJTl9ERUNM
UwogICogU2hvdyAjV2ViS2l0RE9NQXR0ciBub2Rlcy4KICAqCiAgKiBTaW5jZTogMi42CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8K
ICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0ZJTFRFUl9TSE9XX0FUVFJJQlVURSAgICAgICAgICAg
ICAgMHgwMDAwMDAwMgogCkBAIC05NSw2ICsxMDksOCBAQCBHX0JFR0lOX0RFQ0xTCiAgKiBTaG93
ICNXZWJLaXRET01UZXh0IG5vZGVzLgogICoKICAqIFNpbmNlOiAyLjYKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBX
RUJLSVRfRE9NX05PREVfRklMVEVSX1NIT1dfVEVYVCAgICAgICAgICAgICAgICAgICAweDAwMDAw
MDA0CiAKQEAgLTEwNCw2ICsxMjAsOCBAQCBHX0JFR0lOX0RFQ0xTCiAgKiBTaG93ICNXZWJLaXRE
T01DRGF0YVNlY3Rpb24gbm9kZXMuCiAgKgogICogU2luY2U6IDIuNgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdF
QktJVF9ET01fTk9ERV9GSUxURVJfU0hPV19DREFUQV9TRUNUSU9OICAgICAgICAgIDB4MDAwMDAw
MDgKIApAQCAtMTEzLDYgKzEzMSw4IEBAIEdfQkVHSU5fREVDTFMKICAqIFNob3cgI1dlYktpdERP
TUVudGl0eVJlZmVyZW5jZSBub2Rlcy4KICAqCiAgKiBTaW5jZTogMi42CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUg
V0VCS0lUX0RPTV9OT0RFX0ZJTFRFUl9TSE9XX0VOVElUWV9SRUZFUkVOQ0UgICAgICAgMHgwMDAw
MDAxMAogCkBAIC0xMjIsNiArMTQyLDggQEAgR19CRUdJTl9ERUNMUwogICogU2hvdyAjV2ViS2l0
RE9NRW50aXR5IG5vZGVzLgogICoKICAqIFNpbmNlOiAyLjYKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRf
RE9NX05PREVfRklMVEVSX1NIT1dfRU5USVRZICAgICAgICAgICAgICAgICAweDAwMDAwMDIwCiAK
QEAgLTEzMSw2ICsxNTMsOCBAQCBHX0JFR0lOX0RFQ0xTCiAgKiBTaG93ICNXZWJLaXRET01Qcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24gbm9kZXMuCiAgKgogICogU2luY2U6IDIuNgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5l
IFdFQktJVF9ET01fTk9ERV9GSUxURVJfU0hPV19QUk9DRVNTSU5HX0lOU1RSVUNUSU9OIDB4MDAw
MDAwNDAKIApAQCAtMTQwLDYgKzE2NCw4IEBAIEdfQkVHSU5fREVDTFMKICAqIFNob3cgI1dlYktp
dERPTUNvbW1lbnQgbm9kZXMuCiAgKgogICogU2luY2U6IDIuNgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJ
VF9ET01fTk9ERV9GSUxURVJfU0hPV19DT01NRU5UICAgICAgICAgICAgICAgIDB4MDAwMDAwODAK
IApAQCAtMTQ5LDYgKzE3NSw4IEBAIEdfQkVHSU5fREVDTFMKICAqIFNob3cgI1dlYktpdERPTURv
Y3VtZW50IG5vZGVzLgogICoKICAqIFNpbmNlOiAyLjYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9N
X05PREVfRklMVEVSX1NIT1dfRE9DVU1FTlQgICAgICAgICAgICAgICAweDAwMDAwMTAwCiAKQEAg
LTE1OCw2ICsxODYsOCBAQCBHX0JFR0lOX0RFQ0xTCiAgKiBTaG93ICNXZWJLaXRET01Eb2N1bWVu
dFR5cGUgbm9kZXMuCiAgKgogICogU2luY2U6IDIuNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01f
Tk9ERV9GSUxURVJfU0hPV19ET0NVTUVOVF9UWVBFICAgICAgICAgIDB4MDAwMDAyMDAKIApAQCAt
MTY3LDYgKzE5Nyw4IEBAIEdfQkVHSU5fREVDTFMKICAqIFNob3cgI1dlYktpdERPTURvY3VtZW50
RnJhZ21lbnQgbm9kZXMuCiAgKgogICogU2luY2U6IDIuNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9E
T01fTk9ERV9GSUxURVJfU0hPV19ET0NVTUVOVF9GUkFHTUVOVCAgICAgIDB4MDAwMDA0MDAKIApA
QCAtMTc2LDkgKzIwOCwxMyBAQCBHX0JFR0lOX0RFQ0xTCiAgKiBTaG93ICNXZWJLaXRET01Ob3Rh
dGlvbiBub2Rlcy4KICAqCiAgKiBTaW5jZTogMi42CisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9O
T0RFX0ZJTFRFUl9TSE9XX05PVEFUSU9OICAgICAgICAgICAgICAgMHgwMDAwMDgwMAogCisjZW5k
aWYgLyogV0VCS0lUX0RJU0FCTEVfREVQUkVDQVRFRCAqLworCiBzdHJ1Y3QgX1dlYktpdERPTU5v
ZGVGaWx0ZXJJZmFjZSB7CiAgICAgR1R5cGVJbnRlcmZhY2UgZ0lmYWNlOwogCkBAIC0xOTMsNyAr
MjI5LDcgQEAgc3RydWN0IF9XZWJLaXRET01Ob2RlRmlsdGVySWZhY2UgewogfTsKIAogCi1XRUJL
SVRfQVBJIEdUeXBlIHdlYmtpdF9kb21fbm9kZV9maWx0ZXJfZ2V0X3R5cGUodm9pZCkgR19HTlVD
X0NPTlNUOworV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUgd2Via2l0X2RvbV9ub2RlX2ZpbHRlcl9n
ZXRfdHlwZSh2b2lkKSBHX0dOVUNfQ09OU1Q7CiAKIC8qKgogICogd2Via2l0X2RvbV9ub2RlX2Zp
bHRlcl9hY2NlcHRfbm9kZToKQEAgLTIwMSw4ICsyMzcsMTAgQEAgV0VCS0lUX0FQSSBHVHlwZSB3
ZWJraXRfZG9tX25vZGVfZmlsdGVyX2dldF90eXBlKHZvaWQpIEdfR05VQ19DT05TVDsKICAqIEBu
b2RlOiBBICNXZWJLaXRET01Ob2RlCiAgKgogICogUmV0dXJuczogYSAjZ3Nob3J0CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdF
QktJVF9BUEkgZ3Nob3J0IHdlYmtpdF9kb21fbm9kZV9maWx0ZXJfYWNjZXB0X25vZGUoV2ViS2l0
RE9NTm9kZUZpbHRlciAqZmlsdGVyLAorV0VCS0lUX0RFUFJFQ0FURUQgZ3Nob3J0IHdlYmtpdF9k
b21fbm9kZV9maWx0ZXJfYWNjZXB0X25vZGUoV2ViS2l0RE9NTm9kZUZpbHRlciAqZmlsdGVyLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJL
aXRET01Ob2RlICAgICAgICpub2RlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01O
b2RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01Ob2RlR3RrLmNwcApzaW1pbGFyaXR5IGluZGV4IDkxJQpyZW5hbWUgZnJv
bSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NTm9kZS5jcHAKcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlR3RrLmNwcAppbmRleCBkYzc1YjEwNDdm
YS4uNWY4NjIyYjY5NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUd0
ay5jcHAKQEAgLTIxLDcgKzIxLDYgQEAKICNpbmNsdWRlICJXZWJLaXRET01Ob2RlLmgiCiAKICNp
bmNsdWRlICJDb252ZXJ0VG9VVEY4U3RyaW5nLmgiCi0jaW5jbHVkZSAiRE9NT2JqZWN0Q2FjaGUu
aCIKICNpbmNsdWRlICJHT2JqZWN0RXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIldlYktpdERP
TURvY3VtZW50UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdERPTUVsZW1lbnRQcml2YXRlLmgi
CkBAIC0zNCw0MSArMzMsMTIgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0RPTUV4Y2VwdGlvbi5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTTWFpblRo
cmVhZEV4ZWNTdGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSlNOb2RlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TVkdUZXN0cy5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAKLSNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0dFVF9QUklWQVRFKG9iaikg
R19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKG9iaiwgV0VCS0lUX0RPTV9UWVBFX05PREUsIFdl
YktpdERPTU5vZGVQcml2YXRlKQotCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NTm9kZVByaXZh
dGUgewotICAgIFJlZlB0cjxXZWJDb3JlOjpOb2RlPiBjb3JlT2JqZWN0OwotfSBXZWJLaXRET01O
b2RlUHJpdmF0ZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVdlYktpdERPTU5vZGUqIGtpdChX
ZWJDb3JlOjpOb2RlKiBvYmopCi17Ci0gICAgaWYgKCFvYmopCi0gICAgICAgIHJldHVybiAwOwot
Ci0gICAgaWYgKGdwb2ludGVyIHJldCA9IERPTU9iamVjdENhY2hlOjpnZXQob2JqKSkKLSAgICAg
ICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERShyZXQpOwotCi0gICAgcmV0dXJuIHdyYXAob2JqKTsK
LX0KLQotV2ViQ29yZTo6Tm9kZSogY29yZShXZWJLaXRET01Ob2RlKiByZXF1ZXN0KQotewotICAg
IHJldHVybiByZXF1ZXN0ID8gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KFdFQktJVF9ET01f
T0JKRUNUKHJlcXVlc3QpLT5jb3JlT2JqZWN0KSA6IDA7Ci19Ci0KLVdlYktpdERPTU5vZGUqIHdy
YXBOb2RlKFdlYkNvcmU6Ok5vZGUqIGNvcmVPYmplY3QpCi17Ci0gICAgQVNTRVJUKGNvcmVPYmpl
Y3QpOwotICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUoZ19vYmplY3RfbmV3KFdFQktJVF9ET01f
VFlQRV9OT0RFLCAiY29yZS1vYmplY3QiLCBjb3JlT2JqZWN0LCBudWxscHRyKSk7Ci19Ci0KLX0K
K0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwogCiBzdGF0aWMgZ2Jvb2xlYW4gd2Vi
a2l0X2RvbV9ub2RlX2Rpc3BhdGNoX2V2ZW50KFdlYktpdERPTUV2ZW50VGFyZ2V0KiB0YXJnZXQs
IFdlYktpdERPTUV2ZW50KiBldmVudCwgR0Vycm9yKiogZXJyb3IpCiB7CkBAIC05OCwxNSArNjgs
MTMgQEAgc3RhdGljIGdib29sZWFuIHdlYmtpdF9kb21fbm9kZV9yZW1vdmVfZXZlbnRfbGlzdGVu
ZXIoV2ViS2l0RE9NRXZlbnRUYXJnZXQqIHRhcmcKICAgICByZXR1cm4gV2ViS2l0OjpHT2JqZWN0
RXZlbnRMaXN0ZW5lcjo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihHX09CSkVDVCh0YXJnZXQpLCBjb3Jl
VGFyZ2V0LCBldmVudE5hbWUsIGhhbmRsZXIsIHVzZUNhcHR1cmUpOwogfQogCi1zdGF0aWMgdm9p
ZCB3ZWJraXRfZG9tX25vZGVfZG9tX2V2ZW50X3RhcmdldF9pbml0KFdlYktpdERPTUV2ZW50VGFy
Z2V0SWZhY2UqIGlmYWNlKQordm9pZCB3ZWJraXRET01Ob2RlRE9NRXZlbnRUYXJnZXRJbml0KFdl
YktpdERPTUV2ZW50VGFyZ2V0SWZhY2UqIGlmYWNlKQogewogICAgIGlmYWNlLT5kaXNwYXRjaF9l
dmVudCA9IHdlYmtpdF9kb21fbm9kZV9kaXNwYXRjaF9ldmVudDsKICAgICBpZmFjZS0+YWRkX2V2
ZW50X2xpc3RlbmVyID0gd2Via2l0X2RvbV9ub2RlX2FkZF9ldmVudF9saXN0ZW5lcjsKICAgICBp
ZmFjZS0+cmVtb3ZlX2V2ZW50X2xpc3RlbmVyID0gd2Via2l0X2RvbV9ub2RlX3JlbW92ZV9ldmVu
dF9saXN0ZW5lcjsKIH0KIAotR19ERUZJTkVfVFlQRV9XSVRIX0NPREUoV2ViS2l0RE9NTm9kZSwg
d2Via2l0X2RvbV9ub2RlLCBXRUJLSVRfRE9NX1RZUEVfT0JKRUNULCBHX0lNUExFTUVOVF9JTlRF
UkZBQ0UoV0VCS0lUX0RPTV9UWVBFX0VWRU5UX1RBUkdFVCwgd2Via2l0X2RvbV9ub2RlX2RvbV9l
dmVudF90YXJnZXRfaW5pdCkpCi0KIGVudW0gewogICAgIERPTV9OT0RFX1BST1BfMCwKICAgICBE
T01fTk9ERV9QUk9QX05PREVfTkFNRSwKQEAgLTEyNCwxNiArOTIsNiBAQCBlbnVtIHsKICAgICBE
T01fTk9ERV9QUk9QX1BBUkVOVF9FTEVNRU5ULAogfTsKIAotc3RhdGljIHZvaWQgd2Via2l0X2Rv
bV9ub2RlX2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKLXsKLSAgICBXZWJLaXRET01Ob2RlUHJp
dmF0ZSogcHJpdiA9IFdFQktJVF9ET01fTk9ERV9HRVRfUFJJVkFURShvYmplY3QpOwotCi0gICAg
V2ViS2l0OjpET01PYmplY3RDYWNoZTo6Zm9yZ2V0KHByaXYtPmNvcmVPYmplY3QuZ2V0KCkpOwot
Ci0gICAgcHJpdi0+fldlYktpdERPTU5vZGVQcml2YXRlKCk7Ci0gICAgR19PQkpFQ1RfQ0xBU1Mo
d2Via2l0X2RvbV9ub2RlX3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7Ci19Ci0KIHN0
YXRpYyB2b2lkIHdlYmtpdF9kb21fbm9kZV9zZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBn
dWludCBwcm9wZXJ0eUlkLCBjb25zdCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYykK
IHsKICAgICBXZWJLaXRET01Ob2RlKiBzZWxmID0gV0VCS0lUX0RPTV9OT0RFKG9iamVjdCk7CkBA
IC0yMDEsMjMgKzE1OSw4IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fbm9kZV9nZXRfcHJvcGVy
dHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLCBHVmFsCiAgICAgfQogfQogCi1z
dGF0aWMgR09iamVjdCogd2Via2l0X2RvbV9ub2RlX2NvbnN0cnVjdG9yKEdUeXBlIHR5cGUsIGd1
aW50IGNvbnN0cnVjdFByb3BlcnRpZXNDb3VudCwgR09iamVjdENvbnN0cnVjdFBhcmFtKiBjb25z
dHJ1Y3RQcm9wZXJ0aWVzKQotewotICAgIEdPYmplY3QqIG9iamVjdCA9IEdfT0JKRUNUX0NMQVNT
KHdlYmtpdF9kb21fbm9kZV9wYXJlbnRfY2xhc3MpLT5jb25zdHJ1Y3Rvcih0eXBlLCBjb25zdHJ1
Y3RQcm9wZXJ0aWVzQ291bnQsIGNvbnN0cnVjdFByb3BlcnRpZXMpOwotCi0gICAgV2ViS2l0RE9N
Tm9kZVByaXZhdGUqIHByaXYgPSBXRUJLSVRfRE9NX05PREVfR0VUX1BSSVZBVEUob2JqZWN0KTsK
LSAgICBwcml2LT5jb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KFdFQktJ
VF9ET01fT0JKRUNUKG9iamVjdCktPmNvcmVPYmplY3QpOwotICAgIFdlYktpdDo6RE9NT2JqZWN0
Q2FjaGU6OnB1dChwcml2LT5jb3JlT2JqZWN0LmdldCgpLCBvYmplY3QpOwotCi0gICAgcmV0dXJu
IG9iamVjdDsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X2RvbV9ub2RlX2NsYXNzX2luaXQoV2Vi
S2l0RE9NTm9kZUNsYXNzKiByZXF1ZXN0Q2xhc3MpCit2b2lkIHdlYmtpdERPTU5vZGVJbnN0YWxs
UHJvcGVydGllcyhHT2JqZWN0Q2xhc3MqIGdvYmplY3RDbGFzcykKIHsKLSAgICBHT2JqZWN0Q2xh
c3MqIGdvYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFzcyk7Ci0gICAgZ190
eXBlX2NsYXNzX2FkZF9wcml2YXRlKGdvYmplY3RDbGFzcywgc2l6ZW9mKFdlYktpdERPTU5vZGVQ
cml2YXRlKSk7Ci0gICAgZ29iamVjdENsYXNzLT5jb25zdHJ1Y3RvciA9IHdlYmtpdF9kb21fbm9k
ZV9jb25zdHJ1Y3RvcjsKLSAgICBnb2JqZWN0Q2xhc3MtPmZpbmFsaXplID0gd2Via2l0X2RvbV9u
b2RlX2ZpbmFsaXplOwogICAgIGdvYmplY3RDbGFzcy0+c2V0X3Byb3BlcnR5ID0gd2Via2l0X2Rv
bV9ub2RlX3NldF9wcm9wZXJ0eTsKICAgICBnb2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdl
YmtpdF9kb21fbm9kZV9nZXRfcHJvcGVydHk7CiAKQEAgLTM1MywxMiArMjk2LDYgQEAgc3RhdGlj
IHZvaWQgd2Via2l0X2RvbV9ub2RlX2NsYXNzX2luaXQoV2ViS2l0RE9NTm9kZUNsYXNzKiByZXF1
ZXN0Q2xhc3MpCiAKIH0KIAotc3RhdGljIHZvaWQgd2Via2l0X2RvbV9ub2RlX2luaXQoV2ViS2l0
RE9NTm9kZSogcmVxdWVzdCkKLXsKLSAgICBXZWJLaXRET01Ob2RlUHJpdmF0ZSogcHJpdiA9IFdF
QktJVF9ET01fTk9ERV9HRVRfUFJJVkFURShyZXF1ZXN0KTsKLSAgICBuZXcgKHByaXYpIFdlYktp
dERPTU5vZGVQcml2YXRlKCk7Ci19Ci0KIFdlYktpdERPTU5vZGUqIHdlYmtpdF9kb21fbm9kZV9p
bnNlcnRfYmVmb3JlKFdlYktpdERPTU5vZGUqIHNlbGYsIFdlYktpdERPTU5vZGUqIG5ld0NoaWxk
LCBXZWJLaXRET01Ob2RlKiByZWZDaGlsZCwgR0Vycm9yKiogZXJyb3IpCiB7CiAgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpAQCAtNjk3LDMgKzYzNCw0IEBAIFdlYktp
dERPTUVsZW1lbnQqIHdlYmtpdF9kb21fbm9kZV9nZXRfcGFyZW50X2VsZW1lbnQoV2ViS2l0RE9N
Tm9kZSogc2VsZikKICAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7
CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01O
b2RlSXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVJdGVyYXRvci5jcHAKaW5kZXggN2NkY2U0NjcwYjEu
LmRmODBkYjdhYTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUl0ZXJhdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
Tm9kZUl0ZXJhdG9yLmNwcApAQCAtMzksNiArMzksOCBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0
RE9NTm9kZUl0ZXJhdG9yUHJpdmF0ZSB7CiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5vZGVJdGVyYXRv
cj4gY29yZU9iamVjdDsKIH0gV2ViS2l0RE9NTm9kZUl0ZXJhdG9yUHJpdmF0ZTsKIAorR19HTlVD
X0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJL
aXRET01Ob2RlSXRlcmF0b3IqIGtpdChXZWJDb3JlOjpOb2RlSXRlcmF0b3IqIG9iaikKQEAgLTI3
MiwzICsyNzQsNCBAQCBnYm9vbGVhbiB3ZWJraXRfZG9tX25vZGVfaXRlcmF0b3JfZ2V0X3BvaW50
ZXJfYmVmb3JlX3JlZmVyZW5jZV9ub2RlKFdlYktpdERPTU5vZAogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01O
b2RlSXRlcmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlSXRlcmF0b3IuaAppbmRleCA2Yzc5M2M3MTI5My4uZGQ0
ZDY1MzdiM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlSXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUl0
ZXJhdG9yLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01Ob2RlSXRlcmF0b3JD
bGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VC
S0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fbm9kZV9p
dGVyYXRvcl9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01NCw4ICs1NCwxMCBAQCB3ZWJraXRf
ZG9tX25vZGVfaXRlcmF0b3JfZ2V0X3R5cGUodm9pZCk7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAq
CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoK
IHdlYmtpdF9kb21fbm9kZV9pdGVyYXRvcl9uZXh0X25vZGUoV2ViS2l0RE9NTm9kZUl0ZXJhdG9y
KiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtNjQsMTYgKzY2LDIwIEBAIHdlYmtp
dF9kb21fbm9kZV9pdGVyYXRvcl9uZXh0X25vZGUoV2ViS2l0RE9NTm9kZUl0ZXJhdG9yKiBzZWxm
LCBHRXJyb3IqKiBlcnJvcik7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAo
dHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRE
T01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fbm9k
ZV9pdGVyYXRvcl9wcmV2aW91c19ub2RlKFdlYktpdERPTU5vZGVJdGVyYXRvciogc2VsZiwgR0Vy
cm9yKiogZXJyb3IpOwogCiAvKioKICAqIHdlYmtpdF9kb21fbm9kZV9pdGVyYXRvcl9kZXRhY2g6
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTm9kZUl0ZXJhdG9yCiAgKgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fbm9kZV9pdGVyYXRvcl9k
ZXRhY2goV2ViS2l0RE9NTm9kZUl0ZXJhdG9yKiBzZWxmKTsKIAogLyoqCkBAIC04MSw4ICs4Nywx
MCBAQCB3ZWJraXRfZG9tX25vZGVfaXRlcmF0b3JfZGV0YWNoKFdlYktpdERPTU5vZGVJdGVyYXRv
ciogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTm9kZUl0ZXJhdG9yCiAgKgogICogUmV0
dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
V2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRf
ZG9tX25vZGVfaXRlcmF0b3JfZ2V0X3Jvb3QoV2ViS2l0RE9NTm9kZUl0ZXJhdG9yKiBzZWxmKTsK
IAogLyoqCkBAIC05MCw4ICs5OCwxMCBAQCB3ZWJraXRfZG9tX25vZGVfaXRlcmF0b3JfZ2V0X3Jv
b3QoV2ViS2l0RE9NTm9kZUl0ZXJhdG9yKiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01O
b2RlSXRlcmF0b3IKICAqCiAgKiBSZXR1cm5zOiBBICNndWxvbmcKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
dWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Via2l0X2RvbV9ub2RlX2l0ZXJhdG9y
X2dldF93aGF0X3RvX3Nob3coV2ViS2l0RE9NTm9kZUl0ZXJhdG9yKiBzZWxmKTsKIAogLyoqCkBA
IC05OSw4ICsxMDksMTAgQEAgd2Via2l0X2RvbV9ub2RlX2l0ZXJhdG9yX2dldF93aGF0X3RvX3No
b3coV2ViS2l0RE9NTm9kZUl0ZXJhdG9yKiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01O
b2RlSXRlcmF0b3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERP
TU5vZGVGaWx0ZXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlRmlsdGVyKgorV0VCS0lU
X0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZUZpbHRlcioKIHdlYmtpdF9kb21fbm9kZV9pdGVyYXRv
cl9nZXRfZmlsdGVyKFdlYktpdERPTU5vZGVJdGVyYXRvciogc2VsZik7CiAKIC8qKgpAQCAtMTA4
LDggKzEyMCwxMCBAQCB3ZWJraXRfZG9tX25vZGVfaXRlcmF0b3JfZ2V0X2ZpbHRlcihXZWJLaXRE
T01Ob2RlSXRlcmF0b3IqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU5vZGVJdGVyYXRv
cgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01O
b2RlKgogd2Via2l0X2RvbV9ub2RlX2l0ZXJhdG9yX2dldF9yZWZlcmVuY2Vfbm9kZShXZWJLaXRE
T01Ob2RlSXRlcmF0b3IqIHNlbGYpOwogCiAvKioKQEAgLTExNyw4ICsxMzEsMTAgQEAgd2Via2l0
X2RvbV9ub2RlX2l0ZXJhdG9yX2dldF9yZWZlcmVuY2Vfbm9kZShXZWJLaXRET01Ob2RlSXRlcmF0
b3IqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU5vZGVJdGVyYXRvcgogICoKICAqIFJl
dHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBS
RUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX25vZGVfaXRlcmF0b3JfZ2V0X3BvaW50ZXJfYmVm
b3JlX3JlZmVyZW5jZV9ub2RlKFdlYktpdERPTU5vZGVJdGVyYXRvciogc2VsZik7CiAKIEdfRU5E
X0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUxpc3QuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVMaXN0LmNwcApp
bmRleCAxODc3OWY0ZDA0OC4uMDk1MjIxOGRkYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlTGlzdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTU5vZGVMaXN0LmNwcApAQCAtMzgsNiArMzgsOCBAQCB0eXBlZGVmIHN0cnVj
dCBfV2ViS2l0RE9NTm9kZUxpc3RQcml2YXRlIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6Tm9kZUxp
c3Q+IGNvcmVPYmplY3Q7CiB9IFdlYktpdERPTU5vZGVMaXN0UHJpdmF0ZTsKIAorR19HTlVDX0JF
R0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRE
T01Ob2RlTGlzdCoga2l0KFdlYkNvcmU6Ok5vZGVMaXN0KiBvYmopCkBAIC0xNTAsMyArMTUyLDQg
QEAgZ3Vsb25nIHdlYmtpdF9kb21fbm9kZV9saXN0X2dldF9sZW5ndGgoV2ViS2l0RE9NTm9kZUxp
c3QqIHNlbGYpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQ
UkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVMaXN0LmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUxpc3QuaApp
bmRleCBjYTNlZTI2M2MxMi4uNDE3NWYzODdlNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlTGlzdC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01Ob2RlTGlzdC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9N
Tm9kZUxpc3RDbGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwog
fTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9k
b21fbm9kZV9saXN0X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTU0LDggKzU0LDEwIEBAIHdl
YmtpdF9kb21fbm9kZV9saXN0X2dldF90eXBlKHZvaWQpOwogICogQGluZGV4OiBBICNndWxvbmcK
ICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9k
ZSoKIHdlYmtpdF9kb21fbm9kZV9saXN0X2l0ZW0oV2ViS2l0RE9NTm9kZUxpc3QqIHNlbGYsIGd1
bG9uZyBpbmRleCk7CiAKIC8qKgpAQCAtNjMsOCArNjUsMTAgQEAgd2Via2l0X2RvbV9ub2RlX2xp
c3RfaXRlbShXZWJLaXRET01Ob2RlTGlzdCogc2VsZiwgZ3Vsb25nIGluZGV4KTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01Ob2RlTGlzdAogICoKICAqIFJldHVybnM6IEEgI2d1bG9uZworICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGd1bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vsb25nCiB3ZWJraXRfZG9tX25v
ZGVfbGlzdF9nZXRfbGVuZ3RoKFdlYktpdERPTU5vZGVMaXN0KiBzZWxmKTsKIAogR19FTkRfREVD
TFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01PYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01PYmplY3QuaAppbmRleCA5YjdiODY3
YjQxNi4uZjdmYmM5MzM4YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01PYmplY3QuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NT2Jq
ZWN0LmgKQEAgLTIxLDcgKzIxLDYgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgog
ICovCiAKLQogI2lmbmRlZiBXZWJLaXRET01PYmplY3RfaAogI2RlZmluZSBXZWJLaXRET01PYmpl
Y3RfaAogCkBAIC0zNyw4ICszNiw2IEBAIEdfQkVHSU5fREVDTFMKICNkZWZpbmUgV0VCS0lUX0RP
TV9JU19PQkpFQ1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3Mp
LCAgV0VCS0lUX0RPTV9UWVBFX09CSkVDVCkpCiAjZGVmaW5lIFdFQktJVF9ET01fT0JKRUNUX0dF
VF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9E
T01fVFlQRV9PQkpFQ1QsIFdlYktpdERPTU9iamVjdENsYXNzKSkKIAotdHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdERPTU9iamVjdFByaXZhdGUgV2ViS2l0RE9NT2JqZWN0UHJpdmF0ZTsKLQogc3RydWN0
IF9XZWJLaXRET01PYmplY3QgewogICAgIEdPYmplY3QgcGFyZW50SW5zdGFuY2U7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01Qcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcml2YXRlR3RrLmNwcApzaW1pbGFyaXR5IGlu
ZGV4IDk2JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJpdmF0ZS5jcHAKcmVuYW1lIHRvIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcml2YXRl
R3RrLmNwcAppbmRleCBlNjYxOGFlMzEyNi4uYzU3MmY5MjRmODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Q
cml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NUHJpdmF0ZUd0ay5jcHAKQEAgLTI1LDcgKzI1LDYgQEAKICNp
bmNsdWRlICJXZWJLaXRET01Qcml2YXRlLmgiCiAKICNpbmNsdWRlIDxXZWJDb3JlL0Jsb2IuaD4K
LSNpbmNsdWRlICJET01PYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRWxlbWVudC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50VGFy
Z2V0Lmg+CkBAIC02MiwxMiArNjEsMTQgQEAKICNpbmNsdWRlICJXZWJLaXRET01VSUV2ZW50UHJp
dmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdERPTVdoZWVsRXZlbnRQcml2YXRlLmgiCiAKK0dfR05V
Q19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTo6SFRNTE5hbWVz
OwogCi1XZWJLaXRET01Ob2RlKiB3cmFwKE5vZGUqIG5vZGUpCitXZWJLaXRET01Ob2RlKiB3cmFw
Tm9kZUd0ayhOb2RlKiBub2RlKQogewogICAgIEFTU0VSVChub2RlKTsKICAgICBBU1NFUlQobm9k
ZS0+bm9kZVR5cGUoKSk7CkBAIC03Niw3ICs3Nyw3IEBAIFdlYktpdERPTU5vZGUqIHdyYXAoTm9k
ZSogbm9kZSkKICAgICBjYXNlIE5vZGU6OkVMRU1FTlRfTk9ERToKICAgICAgICAgaWYgKGlzPEhU
TUxFbGVtZW50Pigqbm9kZSkpCiAgICAgICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9OT0RFKHdy
YXAoZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KG5vZGUpKSk7Ci0gICAgICAgIHJldHVybiBXRUJLSVRf
RE9NX05PREUod3JhcEVsZW1lbnQoZG93bmNhc3Q8RWxlbWVudD4obm9kZSkpKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBOb2RlOjpBVFRSSUJVVEVfTk9ERToKICAgICAgICAg
cmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFwQXR0cihzdGF0aWNfY2FzdDxBdHRyKj4obm9kZSkp
KTsKICAgICBjYXNlIE5vZGU6OlRFWFRfTk9ERToKQEAgLTkwLDcgKzkxLDcgQEAgV2ViS2l0RE9N
Tm9kZSogd3JhcChOb2RlKiBub2RlKQogICAgIGNhc2UgTm9kZTo6RE9DVU1FTlRfTk9ERToKICAg
ICAgICAgaWYgKGlzPEhUTUxEb2N1bWVudD4oKm5vZGUpKQogICAgICAgICAgICAgcmV0dXJuIFdF
QktJVF9ET01fTk9ERSh3cmFwSFRNTERvY3VtZW50KGRvd25jYXN0PEhUTUxEb2N1bWVudD4obm9k
ZSkpKTsKLSAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFwRG9jdW1lbnQoZG93bmNh
c3Q8RG9jdW1lbnQ+KG5vZGUpKSk7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGNhc2Ug
Tm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFOgogICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9OT0RF
KHdyYXBEb2N1bWVudFR5cGUoc3RhdGljX2Nhc3Q8RG9jdW1lbnRUeXBlKj4obm9kZSkpKTsKICAg
ICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CkBAIC0xNTYsMyArMTU3LDQgQEAg
V2ViS2l0RE9NQmxvYiogd3JhcChCbG9iKiBibG9iKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NUHJpdmF0ZUd0ay5oCnNpbWlsYXJpdHkgaW5kZXggNzklCnJlbmFtZSBmcm9t
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01Qcml2YXRlLmgKcmVuYW1lIHRvIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcml2YXRlR3RrLmgKaW5kZXggMmUxNDk0MmNi
MDUuLjE3ZDY3OWM1NmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcml2
YXRlR3RrLmgKQEAgLTIxLDEzICsyMSwxMCBAQAogICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQog
ICovCiAKLSNpZm5kZWYgV2ViS2l0RE9NUHJpdmF0ZV9oCi0jZGVmaW5lIFdlYktpdERPTVByaXZh
dGVfaAorI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDx3ZWJraXRkb20vd2Via2l0ZG9tZGVmaW5l
cy5oPgorI2luY2x1ZGUgIndlYmtpdGRvbWRlZmluZXMuaCIKIAotI2RlZmluZSBXRUJLSVRfUEFS
QU1fUkVBREFCTEUgKChHUGFyYW1GbGFncykoR19QQVJBTV9SRUFEQUJMRSB8IEdfUEFSQU1fU1RB
VElDX05BTUUgfCBHX1BBUkFNX1NUQVRJQ19OSUNLIHwgR19QQVJBTV9TVEFUSUNfQkxVUkIpKQot
I2RlZmluZSBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFICgoR1BhcmFtRmxhZ3MpKEdfUEFSQU1fUkVB
RFdSSVRFIHwgR19QQVJBTV9TVEFUSUNfTkFNRSB8IEdfUEFSQU1fU1RBVElDX05JQ0sgfCBHX1BB
UkFNX1NUQVRJQ19CTFVSQikpCiAjZGVmaW5lIFdFQktJVF9XQVJOX0ZFQVRVUkVfTk9UX1BSRVNF
TlQoRmVhdHVyZSkgZ193YXJuaW5nKCJXZWJLaXRHVEsrIHdhcyBub3QgY29tcGlsZWQgd2l0aCBz
dXBwb3J0IGZvciAiIEZlYXR1cmUpOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00MCwxMiAr
MzcsMTAgQEAgY2xhc3MgQmxvYjsKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogbmFtZXNwYWNl
IFdlYktpdCB7Ci1XZWJLaXRET01Ob2RlKiB3cmFwKFdlYkNvcmU6Ok5vZGUqKTsKK1dlYktpdERP
TU5vZGUqIHdyYXBOb2RlR3RrKFdlYkNvcmU6Ok5vZGUqKTsKIFdlYktpdERPTUV2ZW50KiB3cmFw
KFdlYkNvcmU6OkV2ZW50Kik7CiBXZWJLaXRET01TdHlsZVNoZWV0KiB3cmFwKFdlYkNvcmU6OlN0
eWxlU2hlZXQqKTsKIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKiB3cmFwKFdlYkNvcmU6OkhUTUxD
b2xsZWN0aW9uKik7CiBXZWJLaXRET01FdmVudFRhcmdldCogd3JhcChXZWJDb3JlOjpFdmVudFRh
cmdldCopOwogV2ViS2l0RE9NQmxvYiogd3JhcChXZWJDb3JlOjpCbG9iKik7CiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFdlYktpdERPTVByaXZhdGVfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJvY2Vzc2luZ0luc3RydWN0aW9u
LmNwcAppbmRleCBiMTVmZDcxZjEwNy4uZWNjODc4ZTQwNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3Bw
CkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24qIGtpdChXZWJD
b3JlOjpQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24qIG9iaikKQEAgLTE2NiwzICsxNjgsNCBAQCBXZWJL
aXRET01TdHlsZVNoZWV0KiB3ZWJraXRfZG9tX3Byb2Nlc3NpbmdfaW5zdHJ1Y3Rpb25fZ2V0X3No
ZWV0KFdlYktpdERPTVByb2NlcwogICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0
LmdldCgpKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVByb2Nlc3NpbmdJbnN0cnVjdGlv
bi5oCmluZGV4IDAwMTVkYzg0NjhkLi4xZjY3NGY0NThjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVByb2Nl
c3NpbmdJbnN0cnVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaApAQCAt
NDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbkNsYXNz
IHsKICAgICBXZWJLaXRET01DaGFyYWN0ZXJEYXRhQ2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAot
V0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fcHJv
Y2Vzc2luZ19pbnN0cnVjdGlvbl9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1Mywx
MCBAQCB3ZWJraXRfZG9tX3Byb2Nlc3NpbmdfaW5zdHJ1Y3Rpb25fZ2V0X3R5cGUodm9pZCk7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uCiAgKgogICogUmV0dXJu
czogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdj
aGFyKgogd2Via2l0X2RvbV9wcm9jZXNzaW5nX2luc3RydWN0aW9uX2dldF90YXJnZXQoV2ViS2l0
RE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uKiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBA
QCB3ZWJraXRfZG9tX3Byb2Nlc3NpbmdfaW5zdHJ1Y3Rpb25fZ2V0X3RhcmdldChXZWJLaXRET01Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24qIHNlbAogICogQHNlbGY6IEEgI1dlYktpdERPTVByb2Nlc3Np
bmdJbnN0cnVjdGlvbgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0
RE9NU3R5bGVTaGVldAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTVN0eWxlU2hlZXQqCitXRUJL
SVRfREVQUkVDQVRFRCBXZWJLaXRET01TdHlsZVNoZWV0Kgogd2Via2l0X2RvbV9wcm9jZXNzaW5n
X2luc3RydWN0aW9uX2dldF9zaGVldChXZWJLaXRET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24qIHNl
bGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVJhbmdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01SYW5n
ZS5jcHAKaW5kZXggODYxZWVmYTU4MTkuLmJlYjQzNWJiMTQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUmFu
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01SYW5nZS5jcHAKQEAgLTQwLDYgKzQwLDggQEAgdHlwZWRlZiBzdHJ1
Y3QgX1dlYktpdERPTVJhbmdlUHJpdmF0ZSB7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlJhbmdlPiBj
b3JlT2JqZWN0OwogfSBXZWJLaXRET01SYW5nZVByaXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05P
UkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NUmFuZ2Uq
IGtpdChXZWJDb3JlOjpSYW5nZSogb2JqKQpAQCAtNjM1LDMgKzYzNyw0IEBAIGdjaGFyKiB3ZWJr
aXRfZG9tX3JhbmdlX2dldF90ZXh0KFdlYktpdERPTVJhbmdlKiBzZWxmKQogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01SYW5nZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTVJhbmdlLmgKaW5kZXggZTYzYTZiNDRlZDYuLjdiMWZhZTBkYWVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NUmFuZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUmFuZ2UuaApAQCAtMzcsNDYgKzM3
LDY2IEBAIEdfQkVHSU5fREVDTFMKICNkZWZpbmUgV0VCS0lUX0RPTV9JU19SQU5HRV9DTEFTUyhr
bGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfRE9NX1RZUEVf
UkFOR0UpKQogI2RlZmluZSBXRUJLSVRfRE9NX1JBTkdFX0dFVF9DTEFTUyhvYmopICAoR19UWVBF
X0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9ET01fVFlQRV9SQU5HRSwgV2ViS2l0
RE9NUmFuZ2VDbGFzcykpCiAKKyNpZm5kZWYgV0VCS0lUX0RJU0FCTEVfREVQUkVDQVRFRAorCiAv
KioKICAqIFdFQktJVF9ET01fUkFOR0VfU1RBUlRfVE9fU1RBUlQ6CisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VC
S0lUX0RPTV9SQU5HRV9TVEFSVF9UT19TVEFSVCAwCiAKIC8qKgogICogV0VCS0lUX0RPTV9SQU5H
RV9TVEFSVF9UT19FTkQ6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9SQU5HRV9TVEFSVF9UT19F
TkQgMQogCiAvKioKICAqIFdFQktJVF9ET01fUkFOR0VfRU5EX1RPX0VORDoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmlu
ZSBXRUJLSVRfRE9NX1JBTkdFX0VORF9UT19FTkQgMgogCiAvKioKICAqIFdFQktJVF9ET01fUkFO
R0VfRU5EX1RPX1NUQVJUOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fUkFOR0VfRU5EX1RPX1NU
QVJUIDMKIAogLyoqCiAgKiBXRUJLSVRfRE9NX1JBTkdFX05PREVfQkVGT1JFOgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVm
aW5lIFdFQktJVF9ET01fUkFOR0VfTk9ERV9CRUZPUkUgMAogCiAvKioKICAqIFdFQktJVF9ET01f
UkFOR0VfTk9ERV9BRlRFUjoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX1JBTkdFX05PREVfQUZU
RVIgMQogCiAvKioKICAqIFdFQktJVF9ET01fUkFOR0VfTk9ERV9CRUZPUkVfQU5EX0FGVEVSOgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
ICovCiAjZGVmaW5lIFdFQktJVF9ET01fUkFOR0VfTk9ERV9CRUZPUkVfQU5EX0FGVEVSIDIKIAog
LyoqCiAgKiBXRUJLSVRfRE9NX1JBTkdFX05PREVfSU5TSURFOgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJ
VF9ET01fUkFOR0VfTk9ERV9JTlNJREUgMwogCisjZW5kaWYgLyogV0VCS0lUX0RJU0FCTEVfREVQ
UkVDQVRFRCAqLworCiBzdHJ1Y3QgX1dlYktpdERPTVJhbmdlIHsKICAgICBXZWJLaXRET01PYmpl
Y3QgcGFyZW50X2luc3RhbmNlOwogfTsKQEAgLTg1LDcgKzEwNSw3IEBAIHN0cnVjdCBfV2ViS2l0
RE9NUmFuZ2VDbGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwog
fTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9k
b21fcmFuZ2VfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtOTUsOCArMTE1LDEwIEBAIHdlYmtp
dF9kb21fcmFuZ2VfZ2V0X3R5cGUodm9pZCk7CiAgKiBAb2Zmc2V0OiBBICNnbG9uZwogICogQGVy
cm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21fcmFuZ2Vfc2V0X3N0YXJ0KFdlYktpdERPTVJhbmdlKiBzZWxmLCBX
ZWJLaXRET01Ob2RlKiByZWZOb2RlLCBnbG9uZyBvZmZzZXQsIEdFcnJvcioqIGVycm9yKTsKIAog
LyoqCkBAIC0xMDYsOCArMTI4LDEwIEBAIHdlYmtpdF9kb21fcmFuZ2Vfc2V0X3N0YXJ0KFdlYktp
dERPTVJhbmdlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiByZWZOb2RlLCBnbG9uZyBvCiAgKiBAb2Zm
c2V0OiBBICNnbG9uZwogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fcmFuZ2Vfc2V0X2VuZChXZWJL
aXRET01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogcmVmTm9kZSwgZ2xvbmcgb2Zmc2V0LCBH
RXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTE2LDggKzE0MCwxMCBAQCB3ZWJraXRfZG9tX3Jh
bmdlX3NldF9lbmQoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJlZk5vZGUs
IGdsb25nIG9mZgogICogQHJlZk5vZGU6IEEgI1dlYktpdERPTU5vZGUKICAqIEBlcnJvcjogI0dF
cnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3
ZWJraXRfZG9tX3JhbmdlX3NldF9zdGFydF9iZWZvcmUoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdl
YktpdERPTU5vZGUqIHJlZk5vZGUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xMjYsOCAr
MTUyLDEwIEBAIHdlYmtpdF9kb21fcmFuZ2Vfc2V0X3N0YXJ0X2JlZm9yZShXZWJLaXRET01SYW5n
ZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogcmVmTm9kZSwKICAqIEByZWZOb2RlOiBBICNXZWJLaXRE
T01Ob2RlCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9yYW5nZV9zZXRfc3RhcnRfYWZ0ZXIoV2Vi
S2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJlZk5vZGUsIEdFcnJvcioqIGVycm9y
KTsKIAogLyoqCkBAIC0xMzYsOCArMTY0LDEwIEBAIHdlYmtpdF9kb21fcmFuZ2Vfc2V0X3N0YXJ0
X2FmdGVyKFdlYktpdERPTVJhbmdlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiByZWZOb2RlLCBHCiAg
KiBAcmVmTm9kZTogQSAjV2ViS2l0RE9NTm9kZQogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fcmFu
Z2Vfc2V0X2VuZF9iZWZvcmUoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJl
Zk5vZGUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xNDYsOCArMTc2LDEwIEBAIHdlYmtp
dF9kb21fcmFuZ2Vfc2V0X2VuZF9iZWZvcmUoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERP
TU5vZGUqIHJlZk5vZGUsIEdFCiAgKiBAcmVmTm9kZTogQSAjV2ViS2l0RE9NTm9kZQogICogQGVy
cm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21fcmFuZ2Vfc2V0X2VuZF9hZnRlcihXZWJLaXRET01SYW5nZSogc2Vs
ZiwgV2ViS2l0RE9NTm9kZSogcmVmTm9kZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTE1
Niw4ICsxODgsMTAgQEAgd2Via2l0X2RvbV9yYW5nZV9zZXRfZW5kX2FmdGVyKFdlYktpdERPTVJh
bmdlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiByZWZOb2RlLCBHRXIKICAqIEB0b1N0YXJ0OiBBICNn
Ym9vbGVhbgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fcmFuZ2VfY29sbGFwc2UoV2ViS2l0RE9N
UmFuZ2UqIHNlbGYsIGdib29sZWFuIHRvU3RhcnQsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBA
IC0xNjYsOCArMjAwLDEwIEBAIHdlYmtpdF9kb21fcmFuZ2VfY29sbGFwc2UoV2ViS2l0RE9NUmFu
Z2UqIHNlbGYsIGdib29sZWFuIHRvU3RhcnQsIEdFcnJvcioqIGVycm9yCiAgKiBAcmVmTm9kZTog
QSAjV2ViS2l0RE9NTm9kZQogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fcmFuZ2Vfc2VsZWN0X25v
ZGUoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJlZk5vZGUsIEdFcnJvcioq
IGVycm9yKTsKIAogLyoqCkBAIC0xNzYsOCArMjEyLDEwIEBAIHdlYmtpdF9kb21fcmFuZ2Vfc2Vs
ZWN0X25vZGUoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJlZk5vZGUsIEdF
cnJvCiAgKiBAcmVmTm9kZTogQSAjV2ViS2l0RE9NTm9kZQogICogQGVycm9yOiAjR0Vycm9yCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21fcmFuZ2Vfc2VsZWN0X25vZGVfY29udGVudHMoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktp
dERPTU5vZGUqIHJlZk5vZGUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xODgsOCArMjI2
LDEwIEBAIHdlYmtpdF9kb21fcmFuZ2Vfc2VsZWN0X25vZGVfY29udGVudHMoV2ViS2l0RE9NUmFu
Z2UqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJlZk5vCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAg
KiBSZXR1cm5zOiBBICNnc2hvcnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnc2hvcnQKK1dFQktJVF9ERVBS
RUNBVEVEIGdzaG9ydAogd2Via2l0X2RvbV9yYW5nZV9jb21wYXJlX2JvdW5kYXJ5X3BvaW50cyhX
ZWJLaXRET01SYW5nZSogc2VsZiwgZ3VzaG9ydCBob3csIFdlYktpdERPTVJhbmdlKiBzb3VyY2VS
YW5nZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTE5Nyw4ICsyMzcsMTAgQEAgd2Via2l0
X2RvbV9yYW5nZV9jb21wYXJlX2JvdW5kYXJ5X3BvaW50cyhXZWJLaXRET01SYW5nZSogc2VsZiwg
Z3VzaG9ydCBob3csIFdlYksKICAqIEBzZWxmOiBBICNXZWJLaXRET01SYW5nZQogICogQGVycm9y
OiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZv
aWQKIHdlYmtpdF9kb21fcmFuZ2VfZGVsZXRlX2NvbnRlbnRzKFdlYktpdERPTVJhbmdlKiBzZWxm
LCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMjA3LDggKzI0OSwxMCBAQCB3ZWJraXRfZG9t
X3JhbmdlX2RlbGV0ZV9jb250ZW50cyhXZWJLaXRET01SYW5nZSogc2VsZiwgR0Vycm9yKiogZXJy
b3IpOwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUp
OiBBICNXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50CisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9N
RG9jdW1lbnRGcmFnbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTURvY3VtZW50RnJh
Z21lbnQqCiB3ZWJraXRfZG9tX3JhbmdlX2V4dHJhY3RfY29udGVudHMoV2ViS2l0RE9NUmFuZ2Uq
IHNlbGYsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0yMTcsOCArMjYxLDEwIEBAIHdlYmtp
dF9kb21fcmFuZ2VfZXh0cmFjdF9jb250ZW50cyhXZWJLaXRET01SYW5nZSogc2VsZiwgR0Vycm9y
KiogZXJyb3IpOwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVy
IG5vbmUpOiBBICNXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2Vi
S2l0RE9NRG9jdW1lbnRGcmFnbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTURvY3Vt
ZW50RnJhZ21lbnQqCiB3ZWJraXRfZG9tX3JhbmdlX2Nsb25lX2NvbnRlbnRzKFdlYktpdERPTVJh
bmdlKiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMjI3LDggKzI3MywxMCBAQCB3
ZWJraXRfZG9tX3JhbmdlX2Nsb25lX2NvbnRlbnRzKFdlYktpdERPTVJhbmdlKiBzZWxmLCBHRXJy
b3IqKiBlcnJvcik7CiAgKiBAbmV3Tm9kZTogQSAjV2ViS2l0RE9NTm9kZQogICogQGVycm9yOiAj
R0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21fcmFuZ2VfaW5zZXJ0X25vZGUoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktp
dERPTU5vZGUqIG5ld05vZGUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0yMzcsOCArMjg1
LDEwIEBAIHdlYmtpdF9kb21fcmFuZ2VfaW5zZXJ0X25vZGUoV2ViS2l0RE9NUmFuZ2UqIHNlbGYs
IFdlYktpdERPTU5vZGUqIG5ld05vZGUsIEdFcnJvCiAgKiBAbmV3UGFyZW50OiBBICNXZWJLaXRE
T01Ob2RlCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9yYW5nZV9zdXJyb3VuZF9jb250ZW50cyhX
ZWJLaXRET01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogbmV3UGFyZW50LCBHRXJyb3IqKiBl
cnJvcik7CiAKIC8qKgpAQCAtMjQ3LDggKzI5NywxMCBAQCB3ZWJraXRfZG9tX3JhbmdlX3N1cnJv
dW5kX2NvbnRlbnRzKFdlYktpdERPTVJhbmdlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBuZXdQYXJl
bgogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBB
ICNXZWJLaXRET01SYW5nZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTVJhbmdlKgorV0VCS0lU
X0RFUFJFQ0FURUQgV2ViS2l0RE9NUmFuZ2UqCiB3ZWJraXRfZG9tX3JhbmdlX2Nsb25lX3Jhbmdl
KFdlYktpdERPTVJhbmdlKiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMjU3LDgg
KzMwOSwxMCBAQCB3ZWJraXRfZG9tX3JhbmdlX2Nsb25lX3JhbmdlKFdlYktpdERPTVJhbmdlKiBz
ZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5z
OiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2No
YXIqCiB3ZWJraXRfZG9tX3JhbmdlX3RvX3N0cmluZyhXZWJLaXRET01SYW5nZSogc2VsZiwgR0Vy
cm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTI2Niw4ICszMjAsMTAgQEAgd2Via2l0X2RvbV9yYW5n
ZV90b19zdHJpbmcoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIEdFcnJvcioqIGVycm9yKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01SYW5nZQogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fcmFuZ2VfZGV0
YWNoKFdlYktpdERPTVJhbmdlKiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMjc3
LDggKzMzMywxMCBAQCB3ZWJraXRfZG9tX3JhbmdlX2RldGFjaChXZWJLaXRET01SYW5nZSogc2Vs
ZiwgR0Vycm9yKiogZXJyb3IpOwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczog
KHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50CisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktp
dERPTURvY3VtZW50RnJhZ21lbnQqCiB3ZWJraXRfZG9tX3JhbmdlX2NyZWF0ZV9jb250ZXh0dWFs
X2ZyYWdtZW50KFdlYktpdERPTVJhbmdlKiBzZWxmLCBjb25zdCBnY2hhciogaHRtbCwgR0Vycm9y
KiogZXJyb3IpOwogCiAvKioKQEAgLTI4OCw4ICszNDYsMTAgQEAgd2Via2l0X2RvbV9yYW5nZV9j
cmVhdGVfY29udGV4dHVhbF9mcmFnbWVudChXZWJLaXRET01SYW5nZSogc2VsZiwgY29uc3QgZ2No
YXIqIGgKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6IEEgI2dzaG9ydAorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdzaG9ydAorV0VCS0lUX0RFUFJFQ0FURUQgZ3Nob3J0CiB3ZWJraXRfZG9t
X3JhbmdlX2NvbXBhcmVfbm9kZShXZWJLaXRET01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9kZSog
cmVmTm9kZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTI5OSw4ICszNTksMTAgQEAgd2Vi
a2l0X2RvbV9yYW5nZV9jb21wYXJlX25vZGUoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERP
TU5vZGUqIHJlZk5vZGUsIEdFcnIKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6
IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVE
IGdib29sZWFuCiB3ZWJraXRfZG9tX3JhbmdlX2ludGVyc2VjdHNfbm9kZShXZWJLaXRET01SYW5n
ZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogcmVmTm9kZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioK
QEAgLTMxMSw4ICszNzMsMTAgQEAgd2Via2l0X2RvbV9yYW5nZV9pbnRlcnNlY3RzX25vZGUoV2Vi
S2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJlZk5vZGUsIEcKICAqIEBlcnJvcjog
I0dFcnJvcgogICoKICAqIFJldHVybnM6IEEgI2dzaG9ydAorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdzaG9y
dAorV0VCS0lUX0RFUFJFQ0FURUQgZ3Nob3J0CiB3ZWJraXRfZG9tX3JhbmdlX2NvbXBhcmVfcG9p
bnQoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJlZk5vZGUsIGdsb25nIG9m
ZnNldCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTMyMyw4ICszODcsMTAgQEAgd2Via2l0
X2RvbV9yYW5nZV9jb21wYXJlX3BvaW50KFdlYktpdERPTVJhbmdlKiBzZWxmLCBXZWJLaXRET01O
b2RlKiByZWZOb2RlLCBnbG8KICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6IEEg
I2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdi
b29sZWFuCiB3ZWJraXRfZG9tX3JhbmdlX2lzX3BvaW50X2luX3JhbmdlKFdlYktpdERPTVJhbmdl
KiBzZWxmLCBXZWJLaXRET01Ob2RlKiByZWZOb2RlLCBnbG9uZyBvZmZzZXQsIEdFcnJvcioqIGVy
cm9yKTsKIAogLyoqCkBAIC0zMzMsOCArMzk5LDEwIEBAIHdlYmtpdF9kb21fcmFuZ2VfaXNfcG9p
bnRfaW5fcmFuZ2UoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJlZk5vZGUs
CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEg
I1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RF
UFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fcmFuZ2VfZ2V0X3N0YXJ0X2NvbnRh
aW5lcihXZWJLaXRET01SYW5nZSogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTM0
Myw4ICs0MTEsMTAgQEAgd2Via2l0X2RvbV9yYW5nZV9nZXRfc3RhcnRfY29udGFpbmVyKFdlYktp
dERPTVJhbmdlKiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAq
CiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQ
UkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9yYW5nZV9nZXRfc3RhcnRfb2Zmc2V0KFdlYktpdERP
TVJhbmdlKiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMzUzLDggKzQyMywxMCBA
QCB3ZWJraXRfZG9tX3JhbmdlX2dldF9zdGFydF9vZmZzZXQoV2ViS2l0RE9NUmFuZ2UqIHNlbGYs
IEdFcnJvcioqIGVycm9yKTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0
cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERP
TU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9yYW5n
ZV9nZXRfZW5kX2NvbnRhaW5lcihXZWJLaXRET01SYW5nZSogc2VsZiwgR0Vycm9yKiogZXJyb3Ip
OwogCiAvKioKQEAgLTM2Myw4ICs0MzUsMTAgQEAgd2Via2l0X2RvbV9yYW5nZV9nZXRfZW5kX2Nv
bnRhaW5lcihXZWJLaXRET01SYW5nZSogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogICogQGVycm9y
OiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9u
ZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fcmFuZ2VfZ2V0X2VuZF9vZmZz
ZXQoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0zNzMs
OCArNDQ3LDEwIEBAIHdlYmtpdF9kb21fcmFuZ2VfZ2V0X2VuZF9vZmZzZXQoV2ViS2l0RE9NUmFu
Z2UqIHNlbGYsIEdFcnJvcioqIGVycm9yKTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJl
dHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBS
RUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX3JhbmdlX2dldF9jb2xsYXBzZWQoV2ViS2l0RE9N
UmFuZ2UqIHNlbGYsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0zODMsOCArNDU5LDEwIEBA
IHdlYmtpdF9kb21fcmFuZ2VfZ2V0X2NvbGxhcHNlZChXZWJLaXRET01SYW5nZSogc2VsZiwgR0Vy
cm9yKiogZXJyb3IpOwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5z
ZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9k
ZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX3JhbmdlX2dl
dF9jb21tb25fYW5jZXN0b3JfY29udGFpbmVyKFdlYktpdERPTVJhbmdlKiBzZWxmLCBHRXJyb3Iq
KiBlcnJvcik7CiAKIC8qKgpAQCAtMzkyLDggKzQ3MCwxMCBAQCB3ZWJraXRfZG9tX3JhbmdlX2dl
dF9jb21tb25fYW5jZXN0b3JfY29udGFpbmVyKFdlYktpdERPTVJhbmdlKiBzZWxmLCBHRXJyb3Iq
KiBlcgogICogQHNlbGY6IEEgI1dlYktpdERPTVJhbmdlCiAgKgogICogUmV0dXJuczogQSAjZ2No
YXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Vi
a2l0X2RvbV9yYW5nZV9nZXRfdGV4dChXZWJLaXRET01SYW5nZSogc2VsZik7CiAKIC8qKgpAQCAt
NDAzLDggKzQ4MywxMCBAQCB3ZWJraXRfZG9tX3JhbmdlX2dldF90ZXh0KFdlYktpdERPTVJhbmdl
KiBzZWxmKTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9yYW5nZV9l
eHBhbmQoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIGNvbnN0IGdjaGFyKiB1bml0LCBHRXJyb3IqKiBl
cnJvcik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NU3R5bGVTaGVldC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NU3R5bGVTaGVldC5jcHAKaW5kZXggNDQzMmE0OThjOGQuLmViMjQwNTgwNzUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVN0eWxlU2hlZXQuY3BwCkBAIC0zOSw2
ICszOSw4IEBAIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01TdHlsZVNoZWV0UHJpdmF0ZSB7CiAg
ICAgUmVmUHRyPFdlYkNvcmU6OlN0eWxlU2hlZXQ+IGNvcmVPYmplY3Q7CiB9IFdlYktpdERPTVN0
eWxlU2hlZXRQcml2YXRlOwogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTVN0eWxlU2hlZXQqIGtpdChXZWJDb3JlOjpT
dHlsZVNoZWV0KiBvYmopCkBAIC0zMDMsMyArMzA1LDQgQEAgV2ViS2l0RE9NTWVkaWFMaXN0KiB3
ZWJraXRfZG9tX3N0eWxlX3NoZWV0X2dldF9tZWRpYShXZWJLaXRET01TdHlsZVNoZWV0KiBzZWxm
KQogICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKIH0KIAorR19H
TlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVN0eWxlU2hlZXQu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01TdHlsZVNoZWV0LmgKaW5kZXggM2Q4MjUxMmQ5YTcuLmQ2ZDIwNDIzMGIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NU3R5bGVTaGVldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01TdHlsZVNoZWV0LmgKQEAgLTQ1LDcg
KzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01TdHlsZVNoZWV0Q2xhc3MgewogICAgIFdlYktpdERP
TU9iamVjdENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJ
VF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX3N0eWxlX3NoZWV0X2dldF90eXBlKHZvaWQp
OwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfZ2V0X3R5
cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NU3R5bGVTaGVldAogICoKICAqIFJldHVy
bnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBn
Y2hhcioKIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfZ2V0X2NvbnRlbnRfdHlwZShXZWJLaXRET01T
dHlsZVNoZWV0KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX3N0
eWxlX3NoZWV0X2dldF9jb250ZW50X3R5cGUoV2ViS2l0RE9NU3R5bGVTaGVldCogc2VsZik7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NU3R5bGVTaGVldAogICoKICAqIFJldHVybnM6IEEgI2dib29s
ZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFu
CiB3ZWJraXRfZG9tX3N0eWxlX3NoZWV0X2dldF9kaXNhYmxlZChXZWJLaXRET01TdHlsZVNoZWV0
KiBzZWxmKTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX3N0eWxlX3NoZWV0
X2dldF9kaXNhYmxlZChXZWJLaXRET01TdHlsZVNoZWV0KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01TdHlsZVNoZWV0CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fc3R5bGVfc2hl
ZXRfc2V0X2Rpc2FibGVkKFdlYktpdERPTVN0eWxlU2hlZXQqIHNlbGYsIGdib29sZWFuIHZhbHVl
KTsKIAogLyoqCkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX3N0eWxlX3NoZWV0X3NldF9k
aXNhYmxlZChXZWJLaXRET01TdHlsZVNoZWV0KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NU3R5bGVTaGVldAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBu
b25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitX
RUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9zdHlsZV9zaGVldF9n
ZXRfb3duZXJfbm9kZShXZWJLaXRET01TdHlsZVNoZWV0KiBzZWxmKTsKIAogLyoqCkBAIC04OSw4
ICs5NywxMCBAQCB3ZWJraXRfZG9tX3N0eWxlX3NoZWV0X2dldF9vd25lcl9ub2RlKFdlYktpdERP
TVN0eWxlU2hlZXQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTVN0eWxlU2hlZXQKICAq
CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTVN0eWxlU2hlZXQKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBXZWJLaXRET01TdHlsZVNoZWV0KgorV0VCS0lUX0RFUFJFQ0FURUQgV2Vi
S2l0RE9NU3R5bGVTaGVldCoKIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfZ2V0X3BhcmVudF9zdHls
ZV9zaGVldChXZWJLaXRET01TdHlsZVNoZWV0KiBzZWxmKTsKIAogLyoqCkBAIC05OCw4ICsxMDgs
MTAgQEAgd2Via2l0X2RvbV9zdHlsZV9zaGVldF9nZXRfcGFyZW50X3N0eWxlX3NoZWV0KFdlYktp
dERPTVN0eWxlU2hlZXQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTVN0eWxlU2hlZXQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX3N0eWxlX3NoZWV0X2dldF9ocmVmKFdlYktp
dERPTVN0eWxlU2hlZXQqIHNlbGYpOwogCiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Via2l0
X2RvbV9zdHlsZV9zaGVldF9nZXRfaHJlZihXZWJLaXRET01TdHlsZVNoZWV0KiBzZWxmKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01TdHlsZVNoZWV0CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0
X2RvbV9zdHlsZV9zaGVldF9nZXRfdGl0bGUoV2ViS2l0RE9NU3R5bGVTaGVldCogc2VsZik7CiAK
IC8qKgpAQCAtMTE2LDggKzEzMCwxMCBAQCB3ZWJraXRfZG9tX3N0eWxlX3NoZWV0X2dldF90aXRs
ZShXZWJLaXRET01TdHlsZVNoZWV0KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01TdHls
ZVNoZWV0CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01NZWRp
YUxpc3QKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01NZWRpYUxpc3QqCitXRUJLSVRfREVQUkVD
QVRFRCBXZWJLaXRET01NZWRpYUxpc3QqCiB3ZWJraXRfZG9tX3N0eWxlX3NoZWV0X2dldF9tZWRp
YShXZWJLaXRET01TdHlsZVNoZWV0KiBzZWxmKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01TdHlsZVNoZWV0TGlzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NU3R5bGVTaGVldExpc3QuY3BwCmluZGV4IGRh
Zjg4YTJlZDY2Li42MWQ4ZGI2OTY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVN0eWxlU2hlZXRMaXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NU3R5bGVTaGVldExpc3QuY3BwCkBAIC0zOCw2ICszOCw4IEBAIHR5cGVkZWYg
c3RydWN0IF9XZWJLaXRET01TdHlsZVNoZWV0TGlzdFByaXZhdGUgewogICAgIFJlZlB0cjxXZWJD
b3JlOjpTdHlsZVNoZWV0TGlzdD4gY29yZU9iamVjdDsKIH0gV2ViS2l0RE9NU3R5bGVTaGVldExp
c3RQcml2YXRlOwogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIFdlYktpdERPTVN0eWxlU2hlZXRMaXN0KiBraXQoV2ViQ29yZTo6U3R5
bGVTaGVldExpc3QqIG9iaikKQEAgLTE1MCwzICsxNTIsNCBAQCBndWxvbmcgd2Via2l0X2RvbV9z
dHlsZV9zaGVldF9saXN0X2dldF9sZW5ndGgoV2ViS2l0RE9NU3R5bGVTaGVldExpc3QqIHNlbGYp
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05T
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTVN0eWxlU2hlZXRMaXN0LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NU3R5bGVTaGVldExpc3Qu
aAppbmRleCAxYmU5ZGEyNDM5Ny4uZDY0MDQ3NWMwNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01TdHlsZVNo
ZWV0TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01TdHlsZVNoZWV0TGlzdC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0
cnVjdCBfV2ViS2l0RE9NU3R5bGVTaGVldExpc3RDbGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0
Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJF
Q0FURUQgR1R5cGUKIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfbGlzdF9nZXRfdHlwZSh2b2lkKTsK
IAogLyoqCkBAIC01NCw4ICs1NCwxMCBAQCB3ZWJraXRfZG9tX3N0eWxlX3NoZWV0X2xpc3RfZ2V0
X3R5cGUodm9pZCk7CiAgKiBAaW5kZXg6IEEgI2d1bG9uZwogICoKICAqIFJldHVybnM6ICh0cmFu
c2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NU3R5bGVTaGVldAorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktp
dERPTVN0eWxlU2hlZXQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01TdHlsZVNoZWV0Kgog
d2Via2l0X2RvbV9zdHlsZV9zaGVldF9saXN0X2l0ZW0oV2ViS2l0RE9NU3R5bGVTaGVldExpc3Qq
IHNlbGYsIGd1bG9uZyBpbmRleCk7CiAKIC8qKgpAQCAtNjMsOCArNjUsMTAgQEAgd2Via2l0X2Rv
bV9zdHlsZV9zaGVldF9saXN0X2l0ZW0oV2ViS2l0RE9NU3R5bGVTaGVldExpc3QqIHNlbGYsIGd1
bG9uZyBpbmRleCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NU3R5bGVTaGVldExpc3QKICAqCiAg
KiBSZXR1cm5zOiBBICNndWxvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBS
RUNBVEVEIGd1bG9uZwogd2Via2l0X2RvbV9zdHlsZV9zaGVldF9saXN0X2dldF9sZW5ndGgoV2Vi
S2l0RE9NU3R5bGVTaGVldExpc3QqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTVRleHQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTVRleHQuY3BwCmluZGV4IGRiNTg0NDk1MmVlLi45NjIwODdhMjZj
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTVRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01UZXh0LmNwcApAQCAtMzUsNiAr
MzUsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogV2ViS2l0RE9NVGV4dCoga2l0KFdlYkNvcmU6OlRleHQqIG9iaikKQEAgLTE1NywzICsx
NTksNCBAQCBnY2hhciogd2Via2l0X2RvbV90ZXh0X2dldF93aG9sZV90ZXh0KFdlYktpdERPTVRl
eHQqIHNlbGYpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQ
UkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVRleHQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01UZXh0LmgKaW5kZXggNTRl
NjJkNWUwZGQuLjU1ZjlmNDlkZGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01U
ZXh0LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01UZXh0Q2xhc3MgewogICAg
IFdlYktpdERPTUNoYXJhY3RlckRhdGFDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRf
QVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV90ZXh0X2dldF90
eXBlKHZvaWQpOwogCiAvKioKQEAgLTU1LDggKzU1LDEwIEBAIHdlYmtpdF9kb21fdGV4dF9nZXRf
dHlwZSh2b2lkKTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2Zl
ciBub25lKTogQSAjV2ViS2l0RE9NVGV4dAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTVRleHQq
CitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01UZXh0Kgogd2Via2l0X2RvbV90ZXh0X3NwbGl0
X3RleHQoV2ViS2l0RE9NVGV4dCogc2VsZiwgZ3Vsb25nIG9mZnNldCwgR0Vycm9yKiogZXJyb3Ip
OwogCiAvKioKQEAgLTY0LDggKzY2LDEwIEBAIHdlYmtpdF9kb21fdGV4dF9zcGxpdF90ZXh0KFdl
YktpdERPTVRleHQqIHNlbGYsIGd1bG9uZyBvZmZzZXQsIEdFcnJvcioqIGVycm9yKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01UZXh0CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV90ZXh0
X2dldF93aG9sZV90ZXh0KFdlYktpdERPTVRleHQqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTVRyZWVXYWxrZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVRyZWVXYWxrZXIuY3BwCmluZGV4IDBh
M2FmNWQxMmE4Li44Njc2MzkxNDZkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVRyZWVXYWxrZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01UcmVlV2Fsa2VyLmNwcApAQCAtMzksNiArMzksOCBAQCB0eXBlZGVmIHN0cnVjdCBf
V2ViS2l0RE9NVHJlZVdhbGtlclByaXZhdGUgewogICAgIFJlZlB0cjxXZWJDb3JlOjpUcmVlV2Fs
a2VyPiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01UcmVlV2Fsa2VyUHJpdmF0ZTsKIAorR19HTlVD
X0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJL
aXRET01UcmVlV2Fsa2VyKiBraXQoV2ViQ29yZTo6VHJlZVdhbGtlciogb2JqKQpAQCAtMzIwLDMg
KzMyMiw0IEBAIHZvaWQgd2Via2l0X2RvbV90cmVlX3dhbGtlcl9zZXRfY3VycmVudF9ub2RlKFdl
YktpdERPTVRyZWVXYWxrZXIqIHNlbGYsIFdlYktpdERPCiAgICAgaXRlbS0+c2V0Q3VycmVudE5v
ZGUoKmNvbnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05T
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTVRyZWVXYWxrZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01UcmVlV2Fsa2VyLmgKaW5kZXgg
ODZmOTYwMTI1NTQuLjA1NzA4ZDdmYzczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVHJlZVdhbGtlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01UcmVlV2Fsa2VyLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01U
cmVlV2Fsa2VyQ2xhc3MgewogICAgIFdlYktpdERPTU9iamVjdENsYXNzIHBhcmVudF9jbGFzczsK
IH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRf
ZG9tX3RyZWVfd2Fsa2VyX2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBA
IHdlYmtpdF9kb21fdHJlZV93YWxrZXJfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NVHJlZVdhbGtlcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2Vi
S2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVD
QVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV90cmVlX3dhbGtlcl9wYXJlbnRfbm9kZShX
ZWJLaXRET01UcmVlV2Fsa2VyKiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJr
aXRfZG9tX3RyZWVfd2Fsa2VyX3BhcmVudF9ub2RlKFdlYktpdERPTVRyZWVXYWxrZXIqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTVRyZWVXYWxrZXIKICAqCiAgKiBSZXR1cm5zOiAodHJh
bnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01O
b2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fdHJlZV93
YWxrZXJfZmlyc3RfY2hpbGQoV2ViS2l0RE9NVHJlZVdhbGtlciogc2VsZik7CiAKIC8qKgpAQCAt
NzEsOCArNzUsMTAgQEAgd2Via2l0X2RvbV90cmVlX3dhbGtlcl9maXJzdF9jaGlsZChXZWJLaXRE
T01UcmVlV2Fsa2VyKiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01UcmVlV2Fsa2VyCiAg
KgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUq
CiB3ZWJraXRfZG9tX3RyZWVfd2Fsa2VyX2xhc3RfY2hpbGQoV2ViS2l0RE9NVHJlZVdhbGtlciog
c2VsZik7CiAKIC8qKgpAQCAtODAsOCArODYsMTAgQEAgd2Via2l0X2RvbV90cmVlX3dhbGtlcl9s
YXN0X2NoaWxkKFdlYktpdERPTVRyZWVXYWxrZXIqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTVRyZWVXYWxrZXIKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktp
dERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FU
RUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fdHJlZV93YWxrZXJfcHJldmlvdXNfc2libGlu
ZyhXZWJLaXRET01UcmVlV2Fsa2VyKiBzZWxmKTsKIAogLyoqCkBAIC04OSw4ICs5NywxMCBAQCB3
ZWJraXRfZG9tX3RyZWVfd2Fsa2VyX3ByZXZpb3VzX3NpYmxpbmcoV2ViS2l0RE9NVHJlZVdhbGtl
ciogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVHJlZVdhbGtlcgogICoKICAqIFJldHVy
bnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdl
YktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2Rv
bV90cmVlX3dhbGtlcl9uZXh0X3NpYmxpbmcoV2ViS2l0RE9NVHJlZVdhbGtlciogc2VsZik7CiAK
IC8qKgpAQCAtOTgsOCArMTA4LDEwIEBAIHdlYmtpdF9kb21fdHJlZV93YWxrZXJfbmV4dF9zaWJs
aW5nKFdlYktpdERPTVRyZWVXYWxrZXIqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTVRy
ZWVXYWxrZXIKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5v
ZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2Vi
S2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fdHJlZV93YWxrZXJfcHJldmlvdXNfbm9kZShXZWJLaXRE
T01UcmVlV2Fsa2VyKiBzZWxmKTsKIAogLyoqCkBAIC0xMDcsOCArMTE5LDEwIEBAIHdlYmtpdF9k
b21fdHJlZV93YWxrZXJfcHJldmlvdXNfbm9kZShXZWJLaXRET01UcmVlV2Fsa2VyKiBzZWxmKTsK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01UcmVlV2Fsa2VyCiAgKgogICogUmV0dXJuczogKHRyYW5z
ZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9k
ZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX3RyZWVfd2Fs
a2VyX25leHRfbm9kZShXZWJLaXRET01UcmVlV2Fsa2VyKiBzZWxmKTsKIAogLyoqCkBAIC0xMTYs
OCArMTMwLDEwIEBAIHdlYmtpdF9kb21fdHJlZV93YWxrZXJfbmV4dF9ub2RlKFdlYktpdERPTVRy
ZWVXYWxrZXIqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTVRyZWVXYWxrZXIKICAqCiAg
KiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdl
YmtpdF9kb21fdHJlZV93YWxrZXJfZ2V0X3Jvb3QoV2ViS2l0RE9NVHJlZVdhbGtlciogc2VsZik7
CiAKIC8qKgpAQCAtMTI1LDggKzE0MSwxMCBAQCB3ZWJraXRfZG9tX3RyZWVfd2Fsa2VyX2dldF9y
b290KFdlYktpdERPTVRyZWVXYWxrZXIqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTVRy
ZWVXYWxrZXIKICAqCiAgKiBSZXR1cm5zOiBBICNndWxvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBndWxv
bmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Via2l0X2RvbV90cmVlX3dhbGtlcl9nZXRf
d2hhdF90b19zaG93KFdlYktpdERPTVRyZWVXYWxrZXIqIHNlbGYpOwogCiAvKioKQEAgLTEzNCw4
ICsxNTIsMTAgQEAgd2Via2l0X2RvbV90cmVlX3dhbGtlcl9nZXRfd2hhdF90b19zaG93KFdlYktp
dERPTVRyZWVXYWxrZXIqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTVRyZWVXYWxrZXIK
ICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTU5vZGVGaWx0ZXIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlRmlsdGVyKgorV0VCS0lUX0RFUFJFQ0FURUQg
V2ViS2l0RE9NTm9kZUZpbHRlcioKIHdlYmtpdF9kb21fdHJlZV93YWxrZXJfZ2V0X2ZpbHRlcihX
ZWJLaXRET01UcmVlV2Fsa2VyKiBzZWxmKTsKIAogLyoqCkBAIC0xNDMsOCArMTYzLDEwIEBAIHdl
YmtpdF9kb21fdHJlZV93YWxrZXJfZ2V0X2ZpbHRlcihXZWJLaXRET01UcmVlV2Fsa2VyKiBzZWxm
KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01UcmVlV2Fsa2VyCiAgKgogICogUmV0dXJuczogKHRy
YW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9N
Tm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX3RyZWVf
d2Fsa2VyX2dldF9jdXJyZW50X25vZGUoV2ViS2l0RE9NVHJlZVdhbGtlciogc2VsZik7CiAKIC8q
KgpAQCAtMTUzLDggKzE3NSwxMCBAQCB3ZWJraXRfZG9tX3RyZWVfd2Fsa2VyX2dldF9jdXJyZW50
X25vZGUoV2ViS2l0RE9NVHJlZVdhbGtlciogc2VsZik7CiAgKiBAdmFsdWU6IEEgI1dlYktpdERP
TU5vZGUKICAqIEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX3RyZWVfd2Fsa2VyX3NldF9jdXJyZW50X25v
ZGUoV2ViS2l0RE9NVHJlZVdhbGtlciogc2VsZiwgV2ViS2l0RE9NTm9kZSogdmFsdWUsIEdFcnJv
cioqIGVycm9yKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01VSUV2ZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01VSUV2ZW50LmNwcAppbmRleCBiMDA4YzRmMDY2NC4uOWFlMDEyMzlhODIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01VSUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVUlFdmVudC5jcHAKQEAgLTM0LDYgKzM0LDgg
QEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitH
X0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IFdlYktpdERPTVVJRXZlbnQqIGtpdChXZWJDb3JlOjpVSUV2ZW50KiBvYmopCkBAIC0yNzcsMyAr
Mjc5LDQgQEAgZ2xvbmcgd2Via2l0X2RvbV91aV9ldmVudF9nZXRfcGFnZV95KFdlYktpdERPTVVJ
RXZlbnQqIHNlbGYpCiAgICAgZ2xvbmcgcmVzdWx0ID0gaXRlbS0+cGFnZVkoKTsKICAgICByZXR1
cm4gcmVzdWx0OwogfQorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTVVJRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01VSUV2ZW50LmgKaW5kZXggN2YwM2U2NTg0YWUuLjdkOThj
ZTE4ZGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVUlFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01VSUV2ZW50LmgKQEAg
LTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01VSUV2ZW50Q2xhc3MgewogICAgIFdlYktp
dERPTUV2ZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VC
S0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fdWlfZXZlbnRfZ2V0X3R5cGUodm9pZCk7
CiAKIC8qKgpAQCAtNTcsOCArNTcsMTAgQEAgd2Via2l0X2RvbV91aV9ldmVudF9nZXRfdHlwZSh2
b2lkKTsKICAqIEB2aWV3OiBBICNXZWJLaXRET01ET01XaW5kb3cKICAqIEBkZXRhaWw6IEEgI2ds
b25nCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21fdWlfZXZlbnRfaW5pdF91aV9ldmVudChXZWJLaXRET01VSUV2ZW50KiBzZWxmLCBj
b25zdCBnY2hhciogdHlwZSwgZ2Jvb2xlYW4gY2FuQnViYmxlLCBnYm9vbGVhbiBjYW5jZWxhYmxl
LCBXZWJLaXRET01ET01XaW5kb3cqIHZpZXcsIGdsb25nIGRldGFpbCk7CiAKIC8qKgpAQCAtNjYs
OCArNjgsMTAgQEAgd2Via2l0X2RvbV91aV9ldmVudF9pbml0X3VpX2V2ZW50KFdlYktpdERPTVVJ
RXZlbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB0eXBlLCBnYm8KICAqIEBzZWxmOiBBICNXZWJLaXRE
T01VSUV2ZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01E
T01XaW5kb3cKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01ET01XaW5kb3cqCitXRUJLSVRfREVQ
UkVDQVRFRCBXZWJLaXRET01ET01XaW5kb3cqCiB3ZWJraXRfZG9tX3VpX2V2ZW50X2dldF92aWV3
KFdlYktpdERPTVVJRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTc1LDggKzc5LDEwIEBAIHdlYmtp
dF9kb21fdWlfZXZlbnRfZ2V0X3ZpZXcoV2ViS2l0RE9NVUlFdmVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NVUlFdmVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX3VpX2V2
ZW50X2dldF9kZXRhaWwoV2ViS2l0RE9NVUlFdmVudCogc2VsZik7CiAKIC8qKgpAQCAtODQsOCAr
OTAsMTAgQEAgd2Via2l0X2RvbV91aV9ldmVudF9nZXRfZGV0YWlsKFdlYktpdERPTVVJRXZlbnQq
IHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTVVJRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwog
d2Via2l0X2RvbV91aV9ldmVudF9nZXRfa2V5X2NvZGUoV2ViS2l0RE9NVUlFdmVudCogc2VsZik7
CiAKIC8qKgpAQCAtOTMsOCArMTAxLDEwIEBAIHdlYmtpdF9kb21fdWlfZXZlbnRfZ2V0X2tleV9j
b2RlKFdlYktpdERPTVVJRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTVVJRXZl
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJL
SVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV91aV9ldmVudF9nZXRfY2hhcl9jb2RlKFdl
YktpdERPTVVJRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTEwMiw4ICsxMTIsMTAgQEAgd2Via2l0
X2RvbV91aV9ldmVudF9nZXRfY2hhcl9jb2RlKFdlYktpdERPTVVJRXZlbnQqIHNlbGYpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTVVJRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV91
aV9ldmVudF9nZXRfbGF5ZXJfeChXZWJLaXRET01VSUV2ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0x
MTEsOCArMTIzLDEwIEBAIHdlYmtpdF9kb21fdWlfZXZlbnRfZ2V0X2xheWVyX3goV2ViS2l0RE9N
VUlFdmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVUlFdmVudAogICoKICAqIFJl
dHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVE
IGdsb25nCiB3ZWJraXRfZG9tX3VpX2V2ZW50X2dldF9sYXllcl95KFdlYktpdERPTVVJRXZlbnQq
IHNlbGYpOwogCiAvKioKQEAgLTEyMCw4ICsxMzQsMTAgQEAgd2Via2l0X2RvbV91aV9ldmVudF9n
ZXRfbGF5ZXJfeShXZWJLaXRET01VSUV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01VSUV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9u
ZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fdWlfZXZlbnRfZ2V0X3BhZ2Vf
eChXZWJLaXRET01VSUV2ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMjksOCArMTQ1LDEwIEBAIHdl
YmtpdF9kb21fdWlfZXZlbnRfZ2V0X3BhZ2VfeChXZWJLaXRET01VSUV2ZW50KiBzZWxmKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01VSUV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21f
dWlfZXZlbnRfZ2V0X3BhZ2VfeShXZWJLaXRET01VSUV2ZW50KiBzZWxmKTsKIAogR19FTkRfREVD
TFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01XaGVlbEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01XaGVlbEV2ZW50LmNwcApp
bmRleCA1YzRhMDlhODM5Ny4uMGUxYmE2ZGE1NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01XaGVlbEV2ZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NV2hlZWxFdmVudC5jcHAKQEAgLTMzLDYgKzMzLDggQEAKICNpbmNsdWRl
IDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5f
SUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTVdo
ZWVsRXZlbnQqIGtpdChXZWJDb3JlOjpXaGVlbEV2ZW50KiBvYmopCkBAIC0xNTksMyArMTYxLDQg
QEAgZ2xvbmcgd2Via2l0X2RvbV93aGVlbF9ldmVudF9nZXRfd2hlZWxfZGVsdGEoV2ViS2l0RE9N
V2hlZWxFdmVudCogc2VsZikKICAgICBnbG9uZyByZXN1bHQgPSBpdGVtLT53aGVlbERlbHRhKCk7
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01XaGVlbEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NV2hlZWxFdmVudC5oCmluZGV4IGZh
MmY0ODVhMGY0Li4xMjg1MmY1M2VhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVdoZWVsRXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NV2hlZWxFdmVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NV2hl
ZWxFdmVudENsYXNzIHsKICAgICBXZWJLaXRET01Nb3VzZUV2ZW50Q2xhc3MgcGFyZW50X2NsYXNz
OwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtp
dF9kb21fd2hlZWxfZXZlbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNjMsOCArNjMsMTAg
QEAgd2Via2l0X2RvbV93aGVlbF9ldmVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzaGlmdEtleTog
QSAjZ2Jvb2xlYW4KICAqIEBtZXRhS2V5OiBBICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX3doZWVsX2V2ZW50X2lu
aXRfd2hlZWxfZXZlbnQoV2ViS2l0RE9NV2hlZWxFdmVudCogc2VsZiwgZ2xvbmcgd2hlZWxEZWx0
YVgsIGdsb25nIHdoZWVsRGVsdGFZLCBXZWJLaXRET01ET01XaW5kb3cqIHZpZXcsIGdsb25nIHNj
cmVlblgsIGdsb25nIHNjcmVlblksIGdsb25nIGNsaWVudFgsIGdsb25nIGNsaWVudFksIGdib29s
ZWFuIGN0cmxLZXksIGdib29sZWFuIGFsdEtleSwgZ2Jvb2xlYW4gc2hpZnRLZXksIGdib29sZWFu
IG1ldGFLZXkpOwogCiAvKioKQEAgLTcyLDggKzc0LDEwIEBAIHdlYmtpdF9kb21fd2hlZWxfZXZl
bnRfaW5pdF93aGVlbF9ldmVudChXZWJLaXRET01XaGVlbEV2ZW50KiBzZWxmLCBnbG9uZyB3aGVl
bERlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NV2hlZWxFdmVudAogICoKICAqIFJldHVybnM6IEEg
I2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3
ZWJraXRfZG9tX3doZWVsX2V2ZW50X2dldF93aGVlbF9kZWx0YV94KFdlYktpdERPTVdoZWVsRXZl
bnQqIHNlbGYpOwogCiAvKioKQEAgLTgxLDggKzg1LDEwIEBAIHdlYmtpdF9kb21fd2hlZWxfZXZl
bnRfZ2V0X3doZWVsX2RlbHRhX3goV2ViS2l0RE9NV2hlZWxFdmVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NV2hlZWxFdmVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX3do
ZWVsX2V2ZW50X2dldF93aGVlbF9kZWx0YV95KFdlYktpdERPTVdoZWVsRXZlbnQqIHNlbGYpOwog
CiAvKioKQEAgLTkwLDggKzk2LDEwIEBAIHdlYmtpdF9kb21fd2hlZWxfZXZlbnRfZ2V0X3doZWVs
X2RlbHRhX3koV2ViS2l0RE9NV2hlZWxFdmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NV2hlZWxFdmVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX3doZWVsX2V2ZW50X2dl
dF93aGVlbF9kZWx0YShXZWJLaXRET01XaGVlbEV2ZW50KiBzZWxmKTsKIAogR19FTkRfREVDTFMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01YUGF0aEV4cHJlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVhQYXRoRXhwcmVzc2lv
bi5jcHAKaW5kZXggMTQ2YTk2YTM3YjAuLjk2MmI2ZTQyNjU0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBh
dGhFeHByZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhFeHByZXNzaW9uLmNwcApAQCAtMzksNiAr
MzksOCBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NWFBhdGhFeHByZXNzaW9uUHJpdmF0ZSB7
CiAgICAgUmVmUHRyPFdlYkNvcmU6OlhQYXRoRXhwcmVzc2lvbj4gY29yZU9iamVjdDsKIH0gV2Vi
S2l0RE9NWFBhdGhFeHByZXNzaW9uUHJpdmF0ZTsKIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBS
RUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01YUGF0aEV4cHJlc3Np
b24qIGtpdChXZWJDb3JlOjpYUGF0aEV4cHJlc3Npb24qIG9iaikKQEAgLTEyMSwzICsxMjMsNCBA
QCBXZWJLaXRET01YUGF0aFJlc3VsdCogd2Via2l0X2RvbV94cGF0aF9leHByZXNzaW9uX2V2YWx1
YXRlKFdlYktpdERPTVhQYXRoRXhwcmVzcwogICAgIHJldHVybiBXZWJLaXQ6OmtpdChyZXN1bHQu
cmVsZWFzZVJldHVyblZhbHVlKCkucHRyKCkpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBS
RUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhFeHByZXNzaW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhF
eHByZXNzaW9uLmgKaW5kZXggZWQ3ZDNlMDM1YjEuLmIxYzkwNzU2Mjc5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NWFBhdGhFeHByZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVhQYXRoRXhwcmVzc2lvbi5oCkBAIC00NSw3
ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NWFBhdGhFeHByZXNzaW9uQ2xhc3MgewogICAgIFdl
YktpdERPTU9iamVjdENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUK
K1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX3hwYXRoX2V4cHJlc3Npb25fZ2V0
X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTcsOCArNTcsMTAgQEAgd2Via2l0X2RvbV94cGF0aF9l
eHByZXNzaW9uX2dldF90eXBlKHZvaWQpOwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0
dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01YUGF0aFJlc3VsdAorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIFdlYktpdERPTVhQYXRoUmVzdWx0KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9N
WFBhdGhSZXN1bHQqCiB3ZWJraXRfZG9tX3hwYXRoX2V4cHJlc3Npb25fZXZhbHVhdGUoV2ViS2l0
RE9NWFBhdGhFeHByZXNzaW9uKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBjb250ZXh0Tm9kZSwgZ3Vz
aG9ydCB0eXBlLCBXZWJLaXRET01YUGF0aFJlc3VsdCogaW5SZXN1bHQsIEdFcnJvcioqIGVycm9y
KTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01YUGF0aE5TUmVzb2x2ZXIuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTVhQYXRoTlNSZXNvbHZlci5jcHAKaW5kZXggYzRiZTM5YTA4ZGUuLmZlOTcyOTgwMWYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhOU1Jlc29s
dmVyLmNwcApAQCAtMjgsNiArMjgsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwor
CiB0eXBlZGVmIFdlYktpdERPTVhQYXRoTlNSZXNvbHZlcklmYWNlIFdlYktpdERPTVhQYXRoTlNS
ZXNvbHZlckludGVyZmFjZTsKIAogR19ERUZJTkVfSU5URVJGQUNFKFdlYktpdERPTVhQYXRoTlNS
ZXNvbHZlciwgd2Via2l0X2RvbV94cGF0aF9uc19yZXNvbHZlciwgR19UWVBFX09CSkVDVCkKQEAg
LTEzOCwzICsxNDAsNCBAQCBXZWJDb3JlOjpYUGF0aE5TUmVzb2x2ZXIqIGNvcmUoV2ViS2l0RE9N
TmF0aXZlWFBhdGhOU1Jlc29sdmVyKiB4UGF0aE5TUmVzb2x2ZXIpCiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTVhQYXRoTlNSZXNvbHZlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVhQYXRoTlNSZXNvbHZlci5oCmluZGV4IDJjMTY0
NmQ3ZGVjLi4xZjI3YjkyYjA5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVhQYXRoTlNSZXNvbHZlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01YUGF0aE5TUmVzb2x2ZXIuaApAQCAtNDQsNyArNDQsNyBAQCBzdHJ1Y3QgX1dlYktp
dERPTVhQYXRoTlNSZXNvbHZlcklmYWNlIHsKIH07CiAKIAotV0VCS0lUX0FQSSBHVHlwZSB3ZWJr
aXRfZG9tX3hwYXRoX25zX3Jlc29sdmVyX2dldF90eXBlKHZvaWQpIEdfR05VQ19DT05TVDsKK1dF
QktJVF9ERVBSRUNBVEVEIEdUeXBlIHdlYmtpdF9kb21feHBhdGhfbnNfcmVzb2x2ZXJfZ2V0X3R5
cGUodm9pZCkgR19HTlVDX0NPTlNUOwogCiAvKioKICAqIHdlYmtpdF9kb21feHBhdGhfbnNfcmVz
b2x2ZXJfbG9va3VwX25hbWVzcGFjZV91cmk6CkBAIC01Miw4ICs1MiwxMCBAQCBXRUJLSVRfQVBJ
IEdUeXBlIHdlYmtpdF9kb21feHBhdGhfbnNfcmVzb2x2ZXJfZ2V0X3R5cGUodm9pZCkgR19HTlVD
X0NPTlNUOwogICogQHByZWZpeDogVGhlIHByZWZpeCB0byBsb29rdXAKICAqCiAgKiBSZXR1cm5z
OiAodHJhbnNmZXIgZnVsbCk6IGEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2NoYXIgKndlYmtp
dF9kb21feHBhdGhfbnNfcmVzb2x2ZXJfbG9va3VwX25hbWVzcGFjZV91cmkoV2ViS2l0RE9NWFBh
dGhOU1Jlc29sdmVyICpyZXNvbHZlciwKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyICp3ZWJraXRf
ZG9tX3hwYXRoX25zX3Jlc29sdmVyX2xvb2t1cF9uYW1lc3BhY2VfdXJpKFdlYktpdERPTVhQYXRo
TlNSZXNvbHZlciAqcmVzb2x2ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICAgICAgICAgICAg
ICAqcHJlZml4KTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01YUGF0aFJlc3VsdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NWFBhdGhSZXN1bHQuY3BwCmluZGV4IGFkMzZiNzVkMTY2Li4yYzA2YTk1ZmFhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTVhQYXRoUmVzdWx0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhSZXN1bHQuY3Bw
CkBAIC0zOCw2ICszOCw4IEBAIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01YUGF0aFJlc3VsdFBy
aXZhdGUgewogICAgIFJlZlB0cjxXZWJDb3JlOjpYUGF0aFJlc3VsdD4gY29yZU9iamVjdDsKIH0g
V2ViS2l0RE9NWFBhdGhSZXN1bHRQcml2YXRlOwogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJF
Q0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTVhQYXRoUmVzdWx0KiBr
aXQoV2ViQ29yZTo6WFBhdGhSZXN1bHQqIG9iaikKQEAgLTMzNSwzICszMzcsNCBAQCBndWxvbmcg
d2Via2l0X2RvbV94cGF0aF9yZXN1bHRfZ2V0X3NuYXBzaG90X2xlbmd0aChXZWJLaXRET01YUGF0
aFJlc3VsdCogc2VsZiwgRwogICAgIHJldHVybiByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7
CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Y
UGF0aFJlc3VsdC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTVhQYXRoUmVzdWx0LmgKaW5kZXggNzcwM2Y4NjE5MWYuLmQ1YTZl
Yzc5NjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhSZXN1bHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhSZXN1
bHQuaApAQCAtMzcsNTYgKzM3LDgwIEBAIEdfQkVHSU5fREVDTFMKICNkZWZpbmUgV0VCS0lUX0RP
TV9JU19YUEFUSF9SRVNVTFRfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgo
a2xhc3MpLCAgV0VCS0lUX0RPTV9UWVBFX1hQQVRIX1JFU1VMVCkpCiAjZGVmaW5lIFdFQktJVF9E
T01fWFBBVEhfUkVTVUxUX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFT
Uygob2JqKSwgIFdFQktJVF9ET01fVFlQRV9YUEFUSF9SRVNVTFQsIFdlYktpdERPTVhQYXRoUmVz
dWx0Q2xhc3MpKQogCisjaWZuZGVmIFdFQktJVF9ESVNBQkxFX0RFUFJFQ0FURUQKKwogLyoqCiAg
KiBXRUJLSVRfRE9NX1hQQVRIX1JFU1VMVF9BTllfVFlQRToKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRf
RE9NX1hQQVRIX1JFU1VMVF9BTllfVFlQRSAwCiAKIC8qKgogICogV0VCS0lUX0RPTV9YUEFUSF9S
RVNVTFRfTlVNQkVSX1RZUEU6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9YUEFUSF9SRVNVTFRf
TlVNQkVSX1RZUEUgMQogCiAvKioKICAqIFdFQktJVF9ET01fWFBBVEhfUkVTVUxUX1NUUklOR19U
WVBFOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fWFBBVEhfUkVTVUxUX1NUUklOR19UWVBFIDIK
IAogLyoqCiAgKiBXRUJLSVRfRE9NX1hQQVRIX1JFU1VMVF9CT09MRUFOX1RZUEU6CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNk
ZWZpbmUgV0VCS0lUX0RPTV9YUEFUSF9SRVNVTFRfQk9PTEVBTl9UWVBFIDMKIAogLyoqCiAgKiBX
RUJLSVRfRE9NX1hQQVRIX1JFU1VMVF9VTk9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFOgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICov
CiAjZGVmaW5lIFdFQktJVF9ET01fWFBBVEhfUkVTVUxUX1VOT1JERVJFRF9OT0RFX0lURVJBVE9S
X1RZUEUgNAogCiAvKioKICAqIFdFQktJVF9ET01fWFBBVEhfUkVTVUxUX09SREVSRURfTk9ERV9J
VEVSQVRPUl9UWVBFOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fWFBBVEhfUkVTVUxUX09SREVS
RURfTk9ERV9JVEVSQVRPUl9UWVBFIDUKIAogLyoqCiAgKiBXRUJLSVRfRE9NX1hQQVRIX1JFU1VM
VF9VTk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01f
WFBBVEhfUkVTVUxUX1VOT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUgNgogCiAvKioKICAqIFdF
QktJVF9ET01fWFBBVEhfUkVTVUxUX09SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFOgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAj
ZGVmaW5lIFdFQktJVF9ET01fWFBBVEhfUkVTVUxUX09SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBF
IDcKIAogLyoqCiAgKiBXRUJLSVRfRE9NX1hQQVRIX1JFU1VMVF9BTllfVU5PUkRFUkVEX05PREVf
VFlQRToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX1hQQVRIX1JFU1VMVF9BTllfVU5PUkRFUkVE
X05PREVfVFlQRSA4CiAKIC8qKgogICogV0VCS0lUX0RPTV9YUEFUSF9SRVNVTFRfRklSU1RfT1JE
RVJFRF9OT0RFX1RZUEU6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9YUEFUSF9SRVNVTFRfRklS
U1RfT1JERVJFRF9OT0RFX1RZUEUgOQogCisjZW5kaWYgLyogV0VCS0lUX0RJU0FCTEVfREVQUkVD
QVRFRCAqLworCiBzdHJ1Y3QgX1dlYktpdERPTVhQYXRoUmVzdWx0IHsKICAgICBXZWJLaXRET01P
YmplY3QgcGFyZW50X2luc3RhbmNlOwogfTsKQEAgLTk1LDcgKzExOSw3IEBAIHN0cnVjdCBfV2Vi
S2l0RE9NWFBhdGhSZXN1bHRDbGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50
X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUK
IHdlYmtpdF9kb21feHBhdGhfcmVzdWx0X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTEwNCw4
ICsxMjgsMTAgQEAgd2Via2l0X2RvbV94cGF0aF9yZXN1bHRfZ2V0X3R5cGUodm9pZCk7CiAgKiBA
ZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktp
dERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FU
RUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21feHBhdGhfcmVzdWx0X2l0ZXJhdGVfbmV4dChX
ZWJLaXRET01YUGF0aFJlc3VsdCogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTEx
NSw4ICsxNDEsMTAgQEAgd2Via2l0X2RvbV94cGF0aF9yZXN1bHRfaXRlcmF0ZV9uZXh0KFdlYktp
dERPTVhQYXRoUmVzdWx0KiBzZWxmLCBHRXJyb3IqKiBlcnJvcikKICAqIEBlcnJvcjogI0dFcnJv
cgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01O
b2RlKgogd2Via2l0X2RvbV94cGF0aF9yZXN1bHRfc25hcHNob3RfaXRlbShXZWJLaXRET01YUGF0
aFJlc3VsdCogc2VsZiwgZ3Vsb25nIGluZGV4LCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAt
MTI0LDggKzE1MiwxMCBAQCB3ZWJraXRfZG9tX3hwYXRoX3Jlc3VsdF9zbmFwc2hvdF9pdGVtKFdl
YktpdERPTVhQYXRoUmVzdWx0KiBzZWxmLCBndWxvbmcgaW5kZXgsCiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NWFBhdGhSZXN1bHQKICAqCiAgKiBSZXR1cm5zOiBBICNndXNob3J0CisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ3VzaG9ydAorV0VCS0lUX0RFUFJFQ0FURUQgZ3VzaG9ydAogd2Via2l0X2RvbV94cGF0
aF9yZXN1bHRfZ2V0X3Jlc3VsdF90eXBlKFdlYktpdERPTVhQYXRoUmVzdWx0KiBzZWxmKTsKIAog
LyoqCkBAIC0xMzQsOCArMTY0LDEwIEBAIHdlYmtpdF9kb21feHBhdGhfcmVzdWx0X2dldF9yZXN1
bHRfdHlwZShXZWJLaXRET01YUGF0aFJlc3VsdCogc2VsZik7CiAgKiBAZXJyb3I6ICNHRXJyb3IK
ICAqCiAgKiBSZXR1cm5zOiBBICNnZG91YmxlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2RvdWJsZQorV0VC
S0lUX0RFUFJFQ0FURUQgZ2RvdWJsZQogd2Via2l0X2RvbV94cGF0aF9yZXN1bHRfZ2V0X251bWJl
cl92YWx1ZShXZWJLaXRET01YUGF0aFJlc3VsdCogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogCiAv
KioKQEAgLTE0NCw4ICsxNzYsMTAgQEAgd2Via2l0X2RvbV94cGF0aF9yZXN1bHRfZ2V0X251bWJl
cl92YWx1ZShXZWJLaXRET01YUGF0aFJlc3VsdCogc2VsZiwgR0Vycm9yKiogZXIKICAqIEBlcnJv
cjogI0dFcnJvcgogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2No
YXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21feHBhdGhfcmVzdWx0X2dl
dF9zdHJpbmdfdmFsdWUoV2ViS2l0RE9NWFBhdGhSZXN1bHQqIHNlbGYsIEdFcnJvcioqIGVycm9y
KTsKIAogLyoqCkBAIC0xNTQsOCArMTg4LDEwIEBAIHdlYmtpdF9kb21feHBhdGhfcmVzdWx0X2dl
dF9zdHJpbmdfdmFsdWUoV2ViS2l0RE9NWFBhdGhSZXN1bHQqIHNlbGYsIEdFcnJvcioqIGVyCiAg
KiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV94
cGF0aF9yZXN1bHRfZ2V0X2Jvb2xlYW5fdmFsdWUoV2ViS2l0RE9NWFBhdGhSZXN1bHQqIHNlbGYs
IEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xNjQsOCArMjAwLDEwIEBAIHdlYmtpdF9kb21f
eHBhdGhfcmVzdWx0X2dldF9ib29sZWFuX3ZhbHVlKFdlYktpdERPTVhQYXRoUmVzdWx0KiBzZWxm
LCBHRXJyb3IqKiBlCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNm
ZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2Rl
KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21feHBhdGhfcmVz
dWx0X2dldF9zaW5nbGVfbm9kZV92YWx1ZShXZWJLaXRET01YUGF0aFJlc3VsdCogc2VsZiwgR0Vy
cm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTE3Myw4ICsyMTEsMTAgQEAgd2Via2l0X2RvbV94cGF0
aF9yZXN1bHRfZ2V0X3NpbmdsZV9ub2RlX3ZhbHVlKFdlYktpdERPTVhQYXRoUmVzdWx0KiBzZWxm
LCBHRXJyb3IKICAqIEBzZWxmOiBBICNXZWJLaXRET01YUGF0aFJlc3VsdAogICoKICAqIFJldHVy
bnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNB
VEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX3hwYXRoX3Jlc3VsdF9nZXRfaW52YWxpZF9pdGVyYXRv
cl9zdGF0ZShXZWJLaXRET01YUGF0aFJlc3VsdCogc2VsZik7CiAKIC8qKgpAQCAtMTgzLDggKzIy
MywxMCBAQCB3ZWJraXRfZG9tX3hwYXRoX3Jlc3VsdF9nZXRfaW52YWxpZF9pdGVyYXRvcl9zdGF0
ZShXZWJLaXRET01YUGF0aFJlc3VsdCogc2VsZik7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAg
KiBSZXR1cm5zOiBBICNndWxvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBS
RUNBVEVEIGd1bG9uZwogd2Via2l0X2RvbV94cGF0aF9yZXN1bHRfZ2V0X3NuYXBzaG90X2xlbmd0
aChXZWJLaXRET01YUGF0aFJlc3VsdCogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogCiBHX0VORF9E
RUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL2RvY3Mvd2Via2l0ZG9tZ3RrLTQuMC1zZWN0aW9ucy50eHQgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vZG9jcy93ZWJraXRk
b21ndGstNC4wLXNlY3Rpb25zLnR4dAppbmRleCA3ODc4NjI0NDE2NS4uMzQzNjdmNzgxODMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9kb2NzL3dlYmtpdGRvbWd0ay00LjAtc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9kb2NzL3dlYmtpdGRvbWd0
ay00LjAtc2VjdGlvbnMudHh0CkBAIC02MDAsNiArNjAwLDEwIEBAIFdlYktpdERPTUVsZW1lbnQK
IAogV0VCS0lUX0RPTV9FTEVNRU5UX0FMTE9XX0tFWUJPQVJEX0lOUFVUCiAKK3dlYmtpdF9kb21f
ZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfaXNfdXNlcl9lZGl0ZWQKK3dlYmtpdF9kb21fZWxl
bWVudF9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2F1dG9fZmlsbGVkCit3ZWJraXRfZG9tX2VsZW1l
bnRfaHRtbF9pbnB1dF9lbGVtZW50X3NldF9hdXRvX2ZpbGxlZAord2Via2l0X2RvbV9lbGVtZW50
X2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfZWRpdGluZ192YWx1ZQogd2Via2l0X2RvbV9lbGVtZW50
X2dldF9hdHRyaWJ1dGUKIHdlYmtpdF9kb21fZWxlbWVudF9zZXRfYXR0cmlidXRlCiB3ZWJraXRf
ZG9tX2VsZW1lbnRfcmVtb3ZlX2F0dHJpYnV0ZQpAQCAtODk3LDYgKzkwMSw3IEBAIHdlYmtpdF9k
b21fbm9kZV9nZXRfbmFtZXNwYWNlX3VyaQogd2Via2l0X2RvbV9ub2RlX2dldF9wcmVmaXgKIHdl
YmtpdF9kb21fbm9kZV9zZXRfcHJlZml4CiB3ZWJraXRfZG9tX25vZGVfZ2V0X2xvY2FsX25hbWUK
K3dlYmtpdF9kb21fbm9kZV9mb3JfanNfdmFsdWUKIAogPFNVQlNFQ1RJT04gU3RhbmRhcmQ+CiBX
ZWJLaXRET01Ob2RlQ2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9kb2NzL3dlYmtpdGRvbWd0ay1kb2NzLnNnbWwgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vZG9jcy93
ZWJraXRkb21ndGstZG9jcy5zZ21sCmluZGV4IDg2NTJlMWEzYTY2Li5mZjRkNzEzNDI1OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL2RvY3Mvd2Via2l0ZG9tZ3RrLWRvY3Muc2dtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vZG9jcy93ZWJraXRkb21ndGstZG9jcy5z
Z21sCkBAIC0xMTgsMTAgKzExOCwxNiBAQAogICAgIDx0aXRsZT5JbmRleDwvdGl0bGU+CiAgICAg
PHhpOmluY2x1ZGUgaHJlZj0ieG1sL2FwaS1pbmRleC1mdWxsLnhtbCI+PHhpOmZhbGxiYWNrIC8+
PC94aTppbmNsdWRlPgogICA8L2luZGV4PgorCiAgIDxpbmRleCBpZD0iYXBpLWluZGV4LWRlcHJl
Y2F0ZWQiIHJvbGU9ImRlcHJlY2F0ZWQiPgogICAgIDx0aXRsZT5JbmRleCBvZiBkZXByZWNhdGVk
IHN5bWJvbHM8L3RpdGxlPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9hcGktaW5kZXgtZGVw
cmVjYXRlZC54bWwiPjx4aTpmYWxsYmFjayAvPjwveGk6aW5jbHVkZT4KICAgPC9pbmRleD4KIAor
ICA8aW5kZXggaWQ9ImFwaS1pbmRleC0yLTIyIiByb2xlPSIyLjIyIj4KKyAgICA8dGl0bGU+SW5k
ZXggb2YgbmV3IHN5bWJvbHMgaW4gMi4yMjwvdGl0bGU+CisgICAgPHhpOmluY2x1ZGUgaHJlZj0i
eG1sL2FwaS1pbmRleC0yLjIyLnhtbCI+PHhpOmZhbGxiYWNrIC8+PC94aTppbmNsdWRlPgorICA8
L2luZGV4PgorCiAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9hbm5vdGF0aW9uLWdsb3NzYXJ5Lnht
bCI+PHhpOmZhbGxiYWNrIC8+PC94aTppbmNsdWRlPgogPC9ib29rPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvV2ViS2l0RnJhbWUu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktp
dEZyYW1lLmgKaW5kZXggNmM1NGEyNDg0YTcuLmEzMTAwNjBhMzgyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9XZWJLaXRGcmFtZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dl
YktpdEZyYW1lLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlIDxqc2MvanNjLmg+CiAjaW5j
bHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRT
Y3JpcHRXb3JsZC5oPgorI2luY2x1ZGUgPHdlYmtpdGRvbS93ZWJraXRkb20uaD4KIAogR19CRUdJ
Tl9ERUNMUwogCkBAIC01NCwyNyArNTUsMzYgQEAgc3RydWN0IF9XZWJLaXRGcmFtZUNsYXNzIHsK
IH07CiAKIFdFQktJVF9BUEkgR1R5cGUKLXdlYmtpdF9mcmFtZV9nZXRfdHlwZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHZvaWQpOword2Via2l0X2ZyYW1lX2dldF90eXBlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQpOwogCiBXRUJLSVRfQVBJIGdib29s
ZWFuCi13ZWJraXRfZnJhbWVfaXNfbWFpbl9mcmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAg
IChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUpOword2Via2l0X2ZyYW1lX2lzX21haW5fZnJhbWUg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdEZyYW1lICAgICAgICpmcmFtZSk7
CiAKIFdFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgotd2Via2l0X2ZyYW1lX2dldF91cmkgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lKTsKK3dl
YmtpdF9mcmFtZV9nZXRfdXJpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChX
ZWJLaXRGcmFtZSAgICAgICAqZnJhbWUpOwogCiBXRUJLSVRfREVQUkVDQVRFRF9GT1Iod2Via2l0
X2ZyYW1lX2dldF9qc19jb250ZXh0KSBKU0dsb2JhbENvbnRleHRSZWYKLXdlYmtpdF9mcmFtZV9n
ZXRfamF2YXNjcmlwdF9nbG9iYWxfY29udGV4dCAgICAgICAgICAgKFdlYktpdEZyYW1lICAgICAg
ICpmcmFtZSk7Cit3ZWJraXRfZnJhbWVfZ2V0X2phdmFzY3JpcHRfZ2xvYmFsX2NvbnRleHQgICAg
ICAgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lKTsKIAogV0VCS0lUX0RFUFJFQ0FU
RURfRk9SKHdlYmtpdF9mcmFtZV9nZXRfanNfY29udGV4dF9mb3Jfc2NyaXB0X3dvcmxkKSBKU0ds
b2JhbENvbnRleHRSZWYKLXdlYmtpdF9mcmFtZV9nZXRfamF2YXNjcmlwdF9jb250ZXh0X2Zvcl9z
Y3JpcHRfd29ybGQgKFdlYktpdEZyYW1lICAgICAgICpmcmFtZSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFNjcmlwdFdvcmxkICp3
b3JsZCk7Cit3ZWJraXRfZnJhbWVfZ2V0X2phdmFzY3JpcHRfY29udGV4dF9mb3Jfc2NyaXB0X3dv
cmxkICAgICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFNjcmlwdFdvcmxkICp3
b3JsZCk7CiAKIFdFQktJVF9BUEkgSlNDQ29udGV4dCAqCi13ZWJraXRfZnJhbWVfZ2V0X2pzX2Nv
bnRleHQgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUp
Oword2Via2l0X2ZyYW1lX2dldF9qc19jb250ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKFdlYktpdEZyYW1lICAgICAgICpmcmFtZSk7CiAKIFdFQktJVF9BUEkgSlNDQ29udGV4dCAq
Ci13ZWJraXRfZnJhbWVfZ2V0X2pzX2NvbnRleHRfZm9yX3NjcmlwdF93b3JsZCAgICAgICAgIChX
ZWJLaXRGcmFtZSAgICAgICAqZnJhbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRTY3JpcHRXb3JsZCAqd29ybGQpOword2Via2l0
X2ZyYW1lX2dldF9qc19jb250ZXh0X2Zvcl9zY3JpcHRfd29ybGQgICAgICAgICAgICAgKFdlYktp
dEZyYW1lICAgICAgICpmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRTY3JpcHRXb3JsZCAqd29ybGQpOworCitXRUJL
SVRfQVBJIEpTQ1ZhbHVlICoKK3dlYmtpdF9mcmFtZV9nZXRfanNfdmFsdWVfZm9yX2RvbV9vYmpl
Y3QgICAgICAgICAgICAgICAgIChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0RE9N
T2JqZWN0ICAgKmRvbV9vYmplY3QpOworCitXRUJLSVRfQVBJIEpTQ1ZhbHVlICoKK3dlYmtpdF9m
cmFtZV9nZXRfanNfdmFsdWVfZm9yX2RvbV9vYmplY3RfaW5fc2NyaXB0X3dvcmxkIChXZWJLaXRG
cmFtZSAgICAgICAqZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV2ViS2l0RE9NT2JqZWN0ICAgKmRvbV9vYmplY3QsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2Vi
S2l0U2NyaXB0V29ybGQgKndvcmxkKTsKIAogR19FTkRfREVDTFMKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL1dlYktpdERP
TURlZmluZXMuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
d3BlL0RPTS9XZWJLaXRET01EZWZpbmVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjFlZjRmMjg5ZWQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL1dlYktpdERPTURlZmluZXMuaApA
QCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNp
ZiAhZGVmaW5lZChfX1dFQktJVERPTV9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NP
TVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3cGUvd2Via2l0ZG9tLmg+IGNhbiBiZSBpbmNsdWRl
ZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRET01EZWZpbmVzX2gKKyNkZWZp
bmUgV2ViS2l0RE9NRGVmaW5lc19oCisKKyNpbmNsdWRlIDxnbGliLmg+CisKKyNpZmRlZiBHX09T
X1dJTjMyCisgICAgI2lmZGVmIEJVSUxESU5HX1dFQktJVAorICAgICAgICAjZGVmaW5lIFdFQktJ
VF9BUEkgX19kZWNsc3BlYyhkbGxleHBvcnQpCisgICAgI2Vsc2UKKyAgICAgICAgI2RlZmluZSBX
RUJLSVRfQVBJIF9fZGVjbHNwZWMoZGxsaW1wb3J0KQorICAgICNlbmRpZgorI2Vsc2UKKyAgICAj
ZGVmaW5lIFdFQktJVF9BUEkgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkK
KyNlbmRpZgorCisjZGVmaW5lIFdFQktJVF9ERVBSRUNBVEVEIFdFQktJVF9BUEkgR19ERVBSRUNB
VEVECisjZGVmaW5lIFdFQktJVF9ERVBSRUNBVEVEX0ZPUihmKSBXRUJLSVRfQVBJIEdfREVQUkVD
QVRFRF9GT1IoZikKKworI2lmbmRlZiBXRUJLSVRfQVBJCisgICAgI2RlZmluZSBXRUJLSVRfQVBJ
CisjZW5kaWYKKworI2VuZGlmIC8qIFdlYktpdERPTURlZmluZXNfaCAqLwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL1dlYktp
dERPTURvY3VtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL3dwZS9ET00vV2ViS2l0RE9NRG9jdW1lbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uMjJjNjdjMTdlODgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vV2ViS2l0RE9NRG9jdW1l
bnQuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBT
LkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g
U3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICov
CisKKyNpZiAhZGVmaW5lZChfX1dFQktJVERPTV9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJL
SVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3cGUvd2Via2l0ZG9tLmg+IGNhbiBiZSBp
bmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRET01Eb2N1bWVudF9o
CisjZGVmaW5lIFdlYktpdERPTURvY3VtZW50X2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+
CisjaW5jbHVkZSA8d3BlL1dlYktpdERPTU5vZGUuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RE9N
RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX0RPTV9UWVBFX0RP
Q1VNRU5UICAgICAgICAgICAgKHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgV0VCS0lUX0RPTV9ET0NVTUVOVChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNU
QU5DRV9DQVNUKChvYmopLCBXRUJLSVRfRE9NX1RZUEVfRE9DVU1FTlQsIFdlYktpdERPTURvY3Vt
ZW50KSkKKyNkZWZpbmUgV0VCS0lUX0RPTV9ET0NVTUVOVF9DTEFTUyhrbGFzcykgICAgKEdfVFlQ
RV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfRE9NX1RZUEVfRE9DVU1FTlQsIFdl
YktpdERPTURvY3VtZW50Q2xhc3MpCisjZGVmaW5lIFdFQktJVF9ET01fSVNfRE9DVU1FTlQob2Jq
KSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX0RPTV9U
WVBFX0RPQ1VNRU5UKSkKKyNkZWZpbmUgV0VCS0lUX0RPTV9JU19ET0NVTUVOVF9DTEFTUyhrbGFz
cykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfRE9NX1RZUEVfRE9D
VU1FTlQpKQorI2RlZmluZSBXRUJLSVRfRE9NX0RPQ1VNRU5UX0dFVF9DTEFTUyhvYmopICAoR19U
WVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9ET01fVFlQRV9ET0NVTUVOVCwg
V2ViS2l0RE9NRG9jdW1lbnRDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRET01Eb2N1
bWVudCBXZWJLaXRET01Eb2N1bWVudDsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRET01Eb2N1bWVu
dENsYXNzIFdlYktpdERPTURvY3VtZW50Q2xhc3M7CisKK3N0cnVjdCBfV2ViS2l0RE9NRG9jdW1l
bnQgeworICAgIFdlYktpdERPTU5vZGUgcGFyZW50X2luc3RhbmNlOworfTsKKworc3RydWN0IF9X
ZWJLaXRET01Eb2N1bWVudENsYXNzIHsKKyAgICBXZWJLaXRET01Ob2RlQ2xhc3MgcGFyZW50X2Ns
YXNzOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X2RvbV9kb2N1bWVudF9nZXRfdHlw
ZSh2b2lkKTsKKworR19FTkRfREVDTFMKKworI2VuZGlmIC8qIFdlYktpdERPTURvY3VtZW50X2gg
Ki8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvd3BlL0RPTS9XZWJLaXRET01FbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vV2ViS2l0RE9NRWxlbWVudC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41NmE2YWEyNzdhMgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL0RPTS9X
ZWJLaXRET01FbGVtZW50LmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVRET01fSF9JTlNJREVfXykgJiYg
IWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d3BlL3dlYmtpdGRv
bS5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0
RE9NRWxlbWVudF9oCisjZGVmaW5lIFdlYktpdERPTUVsZW1lbnRfaAorCisjaW5jbHVkZSA8Z2xp
Yi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RE9NTm9kZS5oPgorI2luY2x1ZGUgPHdw
ZS9XZWJLaXRET01EZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRf
RE9NX1RZUEVfRUxFTUVOVCAgICAgICAgICAgICh3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgV0VCS0lUX0RPTV9FTEVNRU5UKG9iaikgICAgICAgICAgICAoR19UWVBFX0NI
RUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9ET01fVFlQRV9FTEVNRU5ULCBXZWJLaXRE
T01FbGVtZW50KSkKKyNkZWZpbmUgV0VCS0lUX0RPTV9FTEVNRU5UX0NMQVNTKGtsYXNzKSAgICAo
R19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9ET01fVFlQRV9FTEVNRU5U
LCBXZWJLaXRET01FbGVtZW50Q2xhc3MpCisjZGVmaW5lIFdFQktJVF9ET01fSVNfRUxFTUVOVChv
YmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRfRE9N
X1RZUEVfRUxFTUVOVCkpCisjZGVmaW5lIFdFQktJVF9ET01fSVNfRUxFTUVOVF9DTEFTUyhrbGFz
cykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfRE9NX1RZUEVfRUxF
TUVOVCkpCisjZGVmaW5lIFdFQktJVF9ET01fRUxFTUVOVF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQ
RV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfRE9NX1RZUEVfRUxFTUVOVCwgV2Vi
S2l0RE9NRWxlbWVudENsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTUVsZW1lbnQg
V2ViS2l0RE9NRWxlbWVudDsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRET01FbGVtZW50Q2xhc3Mg
V2ViS2l0RE9NRWxlbWVudENsYXNzOworCitzdHJ1Y3QgX1dlYktpdERPTUVsZW1lbnQgeworICAg
IFdlYktpdERPTU5vZGUgcGFyZW50X2luc3RhbmNlOworfTsKKworc3RydWN0IF9XZWJLaXRET01F
bGVtZW50Q2xhc3MgeworICAgIFdlYktpdERPTU5vZGVDbGFzcyBwYXJlbnRfY2xhc3M7Cit9Owor
CitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3R5cGUgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICh2b2lkKTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0
X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRfZWxlbWVudF9pc191c2VyX2VkaXRlZCAgICAoV2ViS2l0
RE9NRWxlbWVudCAqZWxlbWVudCk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9kb21f
ZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2F1dG9fZmlsbGVkICAgKFdlYktpdERPTUVs
ZW1lbnQgKmVsZW1lbnQpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9kb21fZWxlbWVudF9o
dG1sX2lucHV0X2VsZW1lbnRfc2V0X2F1dG9fZmlsbGVkICAgKFdlYktpdERPTUVsZW1lbnQgKmVs
ZW1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnYm9vbGVhbiAgICAgICAgICBhdXRvX2ZpbGxlZCk7CitXRUJLSVRfQVBJIHZvaWQK
K3dlYmtpdF9kb21fZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2VkaXRpbmdfdmFsdWUg
KFdlYktpdERPTUVsZW1lbnQgKmVsZW1lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICAgICAgICp2YWx1ZSk7CisK
K0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBXZWJLaXRET01FbGVtZW50X2ggKi8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL0RPTS9X
ZWJLaXRET01Ob2RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL3dwZS9ET00vV2ViS2l0RE9NTm9kZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi5iNDI4MzM4Y2EwNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL0RPTS9XZWJLaXRET01Ob2RlLmgKQEAg
LTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBJZ2FsaWEgUy5MLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYg
IWRlZmluZWQoX19XRUJLSVRET01fSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01Q
SUxBVElPTikKKyNlcnJvciAiT25seSA8d3BlL3dlYmtpdGRvbS5oPiBjYW4gYmUgaW5jbHVkZWQg
ZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0RE9NTm9kZV9oCisjZGVmaW5lIFdl
YktpdERPTU5vZGVfaAorCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDxqc2Mv
anNjLmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdERPTU9iamVjdC5oPgorI2luY2x1ZGUgPHdwZS9X
ZWJLaXRET01EZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfRE9N
X1RZUEVfTk9ERSAgICAgICAgICAgICh3ZWJraXRfZG9tX25vZGVfZ2V0X3R5cGUoKSkKKyNkZWZp
bmUgV0VCS0lUX0RPTV9OT0RFKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNF
X0NBU1QoKG9iaiksIFdFQktJVF9ET01fVFlQRV9OT0RFLCBXZWJLaXRET01Ob2RlKSkKKyNkZWZp
bmUgV0VCS0lUX0RPTV9OT0RFX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NB
U1QoKGtsYXNzKSwgIFdFQktJVF9ET01fVFlQRV9OT0RFLCBXZWJLaXRET01Ob2RlQ2xhc3MpCisj
ZGVmaW5lIFdFQktJVF9ET01fSVNfTk9ERShvYmopICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNU
QU5DRV9UWVBFKChvYmopLCBXRUJLSVRfRE9NX1RZUEVfTk9ERSkpCisjZGVmaW5lIFdFQktJVF9E
T01fSVNfTk9ERV9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyks
ICBXRUJLSVRfRE9NX1RZUEVfTk9ERSkpCisjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9HRVRfQ0xB
U1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfRE9NX1RZ
UEVfTk9ERSwgV2ViS2l0RE9NTm9kZUNsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERP
TU5vZGUgV2ViS2l0RE9NTm9kZTsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRET01Ob2RlQ2xhc3Mg
V2ViS2l0RE9NTm9kZUNsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTU5vZGVQcml2YXRl
IFdlYktpdERPTU5vZGVQcml2YXRlOworCitzdHJ1Y3QgX1dlYktpdERPTU5vZGUgeworICAgIFdl
YktpdERPTU9iamVjdCBwYXJlbnRfaW5zdGFuY2U7CisKKyAgICBXZWJLaXRET01Ob2RlUHJpdmF0
ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0RE9NTm9kZUNsYXNzIHsKKyAgICBXZWJLaXRE
T01PYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJr
aXRfZG9tX25vZGVfZ2V0X3R5cGUgICAgICh2b2lkKTsKKworV0VCS0lUX0FQSSBXZWJLaXRET01O
b2RlICoKK3dlYmtpdF9kb21fbm9kZV9mb3JfanNfdmFsdWUgKEpTQ1ZhbHVlICp2YWx1ZSk7CisK
K0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBXZWJLaXRET01Ob2RlX2ggKi8KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL0RPTS9XZWJL
aXRET01PYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvd3BlL0RPTS9XZWJLaXRET01PYmplY3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uNzU3NTc2MjIxYjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vV2ViS2l0RE9NT2JqZWN0LmgK
QEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBJZ2FsaWEgUy5MLgor
ICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
KyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisj
aWYgIWRlZmluZWQoX19XRUJLSVRET01fSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9D
T01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d3BlL3dlYmtpdGRvbS5oPiBjYW4gYmUgaW5jbHVk
ZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0RE9NT2JqZWN0X2gKKyNkZWZp
bmUgV2ViS2l0RE9NT2JqZWN0X2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVk
ZSA8d3BlL1dlYktpdERPTURlZmluZXMuaD4KKworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdF
QktJVF9ET01fVFlQRV9PQkpFQ1QgICAgICAgICAgICAod2Via2l0X2RvbV9vYmplY3RfZ2V0X3R5
cGUoKSkKKyNkZWZpbmUgV0VCS0lUX0RPTV9PQkpFQ1Qob2JqKSAgICAgICAgICAgIChHX1RZUEVf
Q0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lUX0RPTV9UWVBFX09CSkVDVCwgV2ViS2l0
RE9NT2JqZWN0KSkKKyNkZWZpbmUgV0VCS0lUX0RPTV9PQkpFQ1RfQ0xBU1Moa2xhc3MpICAgIChH
X1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX0RPTV9UWVBFX09CSkVDVCwg
V2ViS2l0RE9NT2JqZWN0Q2xhc3MpKQorI2RlZmluZSBXRUJLSVRfRE9NX0lTX09CSkVDVChvYmop
ICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRfRE9NX1RZ
UEVfT0JKRUNUKSkKKyNkZWZpbmUgV0VCS0lUX0RPTV9JU19PQkpFQ1RfQ0xBU1Moa2xhc3MpIChH
X1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX0RPTV9UWVBFX09CSkVDVCkp
CisjZGVmaW5lIFdFQktJVF9ET01fT0JKRUNUX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RB
TkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9ET01fVFlQRV9PQkpFQ1QsIFdlYktpdERPTU9i
amVjdENsYXNzKSkKKwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTU9iamVjdCBXZWJLaXRET01P
YmplY3Q7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NT2JqZWN0Q2xhc3MgV2ViS2l0RE9NT2Jq
ZWN0Q2xhc3M7CisKK3N0cnVjdCBfV2ViS2l0RE9NT2JqZWN0IHsKKyAgICBHT2JqZWN0IHBhcmVu
dEluc3RhbmNlOworfTsKKworc3RydWN0IF9XZWJLaXRET01PYmplY3RDbGFzcyB7CisgICAgR09i
amVjdENsYXNzIHBhcmVudENsYXNzOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X2Rv
bV9vYmplY3RfZ2V0X3R5cGUodm9pZCk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBXZWJL
aXRET01PYmplY3RfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL3dlYmtpdGRvbS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL3dlYmtpdGRvbS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45MmY3YTAyNGQ2ZgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL0RPTS93
ZWJraXRkb20uaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEln
YWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorICovCisKKyNpZm5kZWYgd2Via2l0ZG9tX2gKKyNkZWZpbmUgd2Via2l0ZG9tX2gKKworI2Rl
ZmluZSBfX1dFQktJVERPTV9IX0lOU0lERV9fCisKKyNpbmNsdWRlIDx3cGUvV2ViS2l0RE9NRGVm
aW5lcy5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRET01Eb2N1bWVudC5oPgorI2luY2x1ZGUgPHdw
ZS9XZWJLaXRET01FbGVtZW50Lmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdERPTU5vZGUuaD4KKyNp
bmNsdWRlIDx3cGUvV2ViS2l0RE9NT2JqZWN0Lmg+CisKKyN1bmRlZiBfX1dFQktJVERPTV9IX0lO
U0lERV9fCisKKyNlbmRpZiAvKiB3ZWJraXRkb21faCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0RnJhbWUuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdEZyYW1l
LmgKaW5kZXggOTRmMGQwMDQwNjMuLmEzYzYzOTRkYWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRGcmFtZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdEZy
YW1lLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlIDxqc2MvanNjLmg+CiAjaW5jbHVkZSA8
d3BlL1dlYktpdERlZmluZXMuaD4KICNpbmNsdWRlIDx3cGUvV2ViS2l0U2NyaXB0V29ybGQuaD4K
KyNpbmNsdWRlIDx3cGUvd2Via2l0ZG9tLmg+CiAKIEdfQkVHSU5fREVDTFMKIApAQCAtNTMsMjAg
KzU0LDI5IEBAIHN0cnVjdCBfV2ViS2l0RnJhbWVDbGFzcyB7CiB9OwogCiBXRUJLSVRfQVBJIEdU
eXBlCi13ZWJraXRfZnJhbWVfZ2V0X3R5cGUgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCk7
Cit3ZWJraXRfZnJhbWVfZ2V0X3R5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAodm9pZCk7CiAKIFdFQktJVF9BUEkgZ2Jvb2xlYW4KLXdlYmtpdF9mcmFtZV9pc19tYWluX2Zy
YW1lICAgICAgICAgICAgICAgICAgIChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUpOword2Via2l0
X2ZyYW1lX2lzX21haW5fZnJhbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktp
dEZyYW1lICAgICAgICpmcmFtZSk7CiAKIFdFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgotd2Via2l0
X2ZyYW1lX2dldF91cmkgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdEZyYW1lICAgICAg
ICpmcmFtZSk7Cit3ZWJraXRfZnJhbWVfZ2V0X3VyaSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lKTsKIAogV0VCS0lUX0FQSSBKU0ND
b250ZXh0ICoKLXdlYmtpdF9mcmFtZV9nZXRfanNfY29udGV4dCAgICAgICAgICAgICAgICAgIChX
ZWJLaXRGcmFtZSAgICAgICAqZnJhbWUpOword2Via2l0X2ZyYW1lX2dldF9qc19jb250ZXh0ICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdEZyYW1lICAgICAgICpmcmFtZSk7CiAK
IFdFQktJVF9BUEkgSlNDQ29udGV4dCAqCi13ZWJraXRfZnJhbWVfZ2V0X2pzX2NvbnRleHRfZm9y
X3NjcmlwdF93b3JsZCAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFNjcmlwdFdvcmxkICp3b3JsZCk7
Cit3ZWJraXRfZnJhbWVfZ2V0X2pzX2NvbnRleHRfZm9yX3NjcmlwdF93b3JsZCAgICAgICAgICAg
ICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFNjcmlwdFdvcmxkICp3b3JsZCk7
CisKK1dFQktJVF9BUEkgSlNDVmFsdWUgKgord2Via2l0X2ZyYW1lX2dldF9qc192YWx1ZV9mb3Jf
ZG9tX29iamVjdCAgICAgICAgICAgICAgICAgKFdlYktpdEZyYW1lICAgICAgICpmcmFtZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
ZWJLaXRET01PYmplY3QgICAqZG9tX29iamVjdCk7CisKK1dFQktJVF9BUEkgSlNDVmFsdWUgKgor
d2Via2l0X2ZyYW1lX2dldF9qc192YWx1ZV9mb3JfZG9tX29iamVjdF9pbl9zY3JpcHRfd29ybGQg
KFdlYktpdEZyYW1lICAgICAgICpmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRET01PYmplY3QgICAqZG9tX29iamVj
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBXZWJLaXRTY3JpcHRXb3JsZCAqd29ybGQpOwogCiBHX0VORF9ERUNMUwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJL
aXRXZWJIaXRUZXN0UmVzdWx0LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJIaXRUZXN0UmVzdWx0LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZjNDNiMjVhOGNlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0V2ViSGl0
VGVzdFJlc3VsdC5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
SWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiwxIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVF9XRUJfRVhURU5TSU9OX0hfSU5TSURF
X18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdwZS93
ZWJraXQtd2ViLWV4dGVuc2lvbi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlm
CisKKyNpZm5kZWYgV2ViS2l0V2ViSGl0VGVzdFJlc3VsdF9oCisjZGVmaW5lIFdlYktpdFdlYkhp
dFRlc3RSZXN1bHRfaAorCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3cGUv
V2ViS2l0RGVmaW5lcy5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRIaXRUZXN0UmVzdWx0Lmg+Cisj
aW5jbHVkZSA8d3BlL3dlYmtpdGRvbS5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VC
S0lUX1RZUEVfV0VCX0hJVF9URVNUX1JFU1VMVCAgICAgICAgICAgICh3ZWJraXRfd2ViX2hpdF90
ZXN0X3Jlc3VsdF9nZXRfdHlwZSgpKQorI2RlZmluZSBXRUJLSVRfV0VCX0hJVF9URVNUX1JFU1VM
VChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJL
SVRfVFlQRV9XRUJfSElUX1RFU1RfUkVTVUxULCBXZWJLaXRXZWJIaXRUZXN0UmVzdWx0KSkKKyNk
ZWZpbmUgV0VCS0lUX0lTX1dFQl9ISVRfVEVTVF9SRVNVTFQob2JqKSAgICAgICAgIChHX1RZUEVf
Q0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfV0VCX0hJVF9URVNUX1JFU1VM
VCkpCisjZGVmaW5lIFdFQktJVF9XRUJfSElUX1RFU1RfUkVTVUxUX0NMQVNTKGtsYXNzKSAgICAo
R19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1dFQl9ISVRfVEVT
VF9SRVNVTFQsIFdlYktpdFdlYkhpdFRlc3RSZXN1bHRDbGFzcykpCisjZGVmaW5lIFdFQktJVF9J
U19XRUJfSElUX1RFU1RfUkVTVUxUX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZ
UEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1dFQl9ISVRfVEVTVF9SRVNVTFQpKQorI2RlZmluZSBX
RUJLSVRfV0VCX0hJVF9URVNUX1JFU1VMVF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5D
RV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9XRUJfSElUX1RFU1RfUkVTVUxULCBXZWJL
aXRXZWJIaXRUZXN0UmVzdWx0Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViSGl0
VGVzdFJlc3VsdCAgICAgICAgV2ViS2l0V2ViSGl0VGVzdFJlc3VsdDsKK3R5cGVkZWYgc3RydWN0
IF9XZWJLaXRXZWJIaXRUZXN0UmVzdWx0Q2xhc3MgICBXZWJLaXRXZWJIaXRUZXN0UmVzdWx0Q2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViSGl0VGVzdFJlc3VsdFByaXZhdGUgV2ViS2l0
V2ViSGl0VGVzdFJlc3VsdFByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0V2ViSGl0VGVzdFJlc3Vs
dCB7CisgICAgV2ViS2l0SGl0VGVzdFJlc3VsdCBwYXJlbnQ7CisKKyAgICBXZWJLaXRXZWJIaXRU
ZXN0UmVzdWx0UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0V2ViSGl0VGVzdFJl
c3VsdENsYXNzIHsKKyAgICBXZWJLaXRIaXRUZXN0UmVzdWx0Q2xhc3MgcGFyZW50X2NsYXNzOwor
CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJr
aXRfcmVzZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9p
ZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9OworCitXRUJLSVRf
QVBJIEdUeXBlCit3ZWJraXRfd2ViX2hpdF90ZXN0X3Jlc3VsdF9nZXRfdHlwZSAodm9pZCk7CisK
K1dFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSAqCit3ZWJraXRfd2ViX2hpdF90ZXN0X3Jlc3VsdF9n
ZXRfbm9kZSAoV2ViS2l0V2ViSGl0VGVzdFJlc3VsdCAqaGl0X3Rlc3RfcmVzdWx0KTsKKworR19F
TkRfREVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJQYWdlLmgKaW5kZXggZWVm
YmQ4MTAzOTQuLjMwZTBmOTMzNThjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0V2ViUGFnZS5oCkBA
IC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSA8d3BlL1dlYktpdERlZmluZXMuaD4KICNpbmNsdWRl
IDx3cGUvV2ViS2l0RnJhbWUuaD4KICNpbmNsdWRlIDx3cGUvV2ViS2l0V2ViRWRpdG9yLmg+Cisj
aW5jbHVkZSA8d3BlL3dlYmtpdGRvbS5oPgogCiBHX0JFR0lOX0RFQ0xTCiAKQEAgLTQ1LDYgKzQ2
LDIxIEBAIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJQYWdlUHJpdmF0ZSBXZWJLaXRXZWJQYWdl
UHJpdmF0ZTsKIC8qIEZvcndhcmQgZGVjbGFyYXRpb25zICovCiB0eXBlZGVmIHN0cnVjdCBfV2Vi
S2l0V2ViRWRpdG9yICAgICAgV2ViS2l0V2ViRWRpdG9yOwogCisvKioKKyAqIFdlYktpdEZvcm1T
dWJtaXNzaW9uU3RlcDoKKyAqIEBXRUJLSVRfRk9STV9TVUJNSVNTSU9OX1dJTExfU0VORF9ET01f
RVZFTlQ6IGluZGljYXRlcyB0aGUgZm9ybSdzCisgKiBET00gc3VibWl0IGV2ZW50IGlzIGFib3V0
IHRvIGJlIGVtaXR0ZWQuCisgKiBAV0VCS0lUX0ZPUk1fU1VCTUlTU0lPTl9XSUxMX0NPTVBMRVRF
OiBpbmRpY2F0ZXMgdGhlIGZvcm0gaXMgYWJvdXQKKyAqIHRvIGJlIHN1Ym1pdHRlZC4KKyAqCisg
KiBVc2VkIHRvIGluZGljYXRlIGEgcGFydGljdWxhciBzdGFnZSBpbiBmb3JtIHN1Ym1pc3Npb24u
IFNlZQorICogI1dlYktpdFdlYlBhZ2U6OndpbGwtc3VibWl0LWZvcm0uCisgKi8KK3R5cGVkZWYg
ZW51bSB7CisgICAgV0VCS0lUX0ZPUk1fU1VCTUlTU0lPTl9XSUxMX1NFTkRfRE9NX0VWRU5ULAor
ICAgIFdFQktJVF9GT1JNX1NVQk1JU1NJT05fV0lMTF9DT01QTEVURSwKK30gV2ViS2l0Rm9ybVN1
Ym1pc3Npb25TdGVwOworCiBzdHJ1Y3QgX1dlYktpdFdlYlBhZ2UgewogICAgIEdPYmplY3QgcGFy
ZW50OwogCkBAIC03MCw2ICs4Niw5IEBAIHdlYmtpdF93ZWJfcGFnZV9nZXRfbWFpbl9mcmFtZSAg
IChXZWJLaXRXZWJQYWdlICp3ZWJfcGFnZSk7CiBXRUJLSVRfQVBJIFdlYktpdFdlYkVkaXRvciAq
CiB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2VkaXRvciAgICAgICAoV2ViS2l0V2ViUGFnZSAqd2ViX3Bh
Z2UpOwogCitXRUJLSVRfQVBJIFdlYktpdERPTURvY3VtZW50ICoKK3dlYmtpdF93ZWJfcGFnZV9n
ZXRfZG9tX2RvY3VtZW50IChXZWJLaXRXZWJQYWdlICp3ZWJfcGFnZSk7CisKIEdfRU5EX0RFQ0xT
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS93cGUvV2ViS2l0V2ViUHJvY2Vzc0VudW1UeXBlcy5jcHAudGVtcGxhdGUgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJQ
cm9jZXNzRW51bVR5cGVzLmNwcC50ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uYjIwZWYxNWNkNzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJQcm9jZXNzRW51bVR5
cGVzLmNwcC50ZW1wbGF0ZQpAQCAtMCwwICsxLDYyIEBACisvKioqIEJFR0lOIGZpbGUtaGVhZGVy
ICoqKi8KKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgPGNv
bmZpZy5oPgorI2luY2x1ZGUgIldlYktpdFdlYlByb2Nlc3NFbnVtVHlwZXMuaCIKKworI2luY2x1
ZGUgPHdwZS93ZWJraXQtd2ViLWV4dGVuc2lvbi5oPgorZXh0ZXJuICJDIiB7CisvKioqIEVORCBm
aWxlLWhlYWRlciAqKiovCisKKworLyoqKiBCRUdJTiBmaWxlLXByb2R1Y3Rpb24gKioqLworLy8g
RW51bWVyYXRpb25zIGZyb20gQGZpbGVuYW1lQC4KKy8qKiogRU5EIGZpbGUtcHJvZHVjdGlvbiAq
KiovCisKKworLyoqKiBCRUdJTiB2YWx1ZS1oZWFkZXIgKioqLworR1R5cGUgQGVudW1fbmFtZUBf
Z2V0X3R5cGUoKQoreworICAgIHN0YXRpYyBjb25zdCBHQFR5cGVAVmFsdWUgdmFsdWVzW10gPSB7
CisvKioqIEVORCB2YWx1ZS1oZWFkZXIgKioqLworCisKKy8qKiogQkVHSU4gdmFsdWUtcHJvZHVj
dGlvbiAqKiovCisgICAgICAgIHsgQFZBTFVFTkFNRUAsICJAVkFMVUVOQU1FQCIsICJAdmFsdWVu
aWNrQCIgfSwKKy8qKiogRU5EIHZhbHVlLXByb2R1Y3Rpb24gKioqLworCisKKy8qKiogQkVHSU4g
dmFsdWUtdGFpbCAqKiovCisgICAgICAgIHsgMCwgTlVMTCwgTlVMTCB9CisgICAgfTsKKworICAg
IHN0YXRpYyBHVHlwZSB0eXBlID0gMDsKKyAgICBpZiAoR19VTkxJS0VMWSghdHlwZSkpCisgICAg
ICAgIHR5cGUgPSBnX0B0eXBlQF9yZWdpc3Rlcl9zdGF0aWMoIkBFbnVtTmFtZUAiLCB2YWx1ZXMp
OworCisgICAgcmV0dXJuIHR5cGU7Cit9CisKKy8qKiogRU5EIHZhbHVlLXRhaWwgKioqLworCisK
Ky8qKiogQkVHSU4gZmlsZS10YWlsICoqKi8KK30KKy8qKiogRU5EIGZpbGUtdGFpbCAqKiovCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dw
ZS9XZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVzLmgudGVtcGxhdGUgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVz
LmgudGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU2MDk5
MzEzOGNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0V2ViUHJvY2Vzc0VudW1UeXBlcy5oLnRlbXBsYXRlCkBA
IC0wLDAgKzEsNTQgQEAKKy8qKiogQkVHSU4gZmlsZS1oZWFkZXIgKioqLworLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0
aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZ
SU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVRfV0VCX0VYVEVO
U0lPTl9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9y
ICJPbmx5IDx3cGUvd2Via2l0LXdlYi1leHRlbnNpb24uaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVj
dGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdFQktJVF9XRUJfUFJPQ0VTU19FTlVNX1RZUEVTX0gK
KyNkZWZpbmUgV0VCS0lUX1dFQl9QUk9DRVNTX0VOVU1fVFlQRVNfSAorCisjaW5jbHVkZSA8Z2xp
Yi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lOX0RF
Q0xTCisvKioqIEVORCBmaWxlLWhlYWRlciAqKiovCisKKworLyoqKiBCRUdJTiBmaWxlLXByb2R1
Y3Rpb24gKioqLworLyogRW51bWVyYXRpb25zIGZyb20gQGJhc2VuYW1lQC4gKi8KKy8qKiogRU5E
IGZpbGUtcHJvZHVjdGlvbiAqKiovCisKKworLyoqKiBCRUdJTiBlbnVtZXJhdGlvbi1wcm9kdWN0
aW9uICoqKi8KKyNkZWZpbmUgV0VCS0lUX1RZUEVfQEVOVU1TSE9SVEAgQGVudW1fbmFtZUBfZ2V0
X3R5cGUgKCkKKworV0VCS0lUX0FQSSBHVHlwZQorQGVudW1fbmFtZUBfZ2V0X3R5cGUgKHZvaWQp
OworCisvKioqIEVORCBlbnVtZXJhdGlvbi1wcm9kdWN0aW9uICoqKi8KKworCisvKioqIEJFR0lO
IGZpbGUtdGFpbCAqKiovCitHX0VORF9ERUNMUworCisjZW5kaWYKKy8qKiogRU5EIGZpbGUtdGFp
bCAqKiovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvd3BlL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS93ZWJraXQtd2ViLWV4dGVuc2lvbi5oCmluZGV4
IDZmMDZhY2QyYWIwLi43OTZiMjFlNDFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvd2Via2l0LXdlYi1leHRlbnNpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS93ZWJraXQt
d2ViLWV4dGVuc2lvbi5oCkBAIC0zNiw3ICszNiw5IEBACiAjaW5jbHVkZSA8d3BlL1dlYktpdFVS
SVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8d3BlL1dlYktpdFdlYkVkaXRvci5oPgogI2luY2x1ZGUg
PHdwZS9XZWJLaXRXZWJFeHRlbnNpb24uaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0V2ViSGl0VGVz
dFJlc3VsdC5oPgogI2luY2x1ZGUgPHdwZS9XZWJLaXRXZWJQYWdlLmg+CisjaW5jbHVkZSA8d3Bl
L1dlYktpdFdlYlByb2Nlc3NFbnVtVHlwZXMuaD4KIAogI3VuZGVmIF9fV0VCS0lUX1dFQl9FWFRF
TlNJT05fSF9JTlNJREVfXwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5j
bWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlCmluZGV4IGI3ODVkOTg0YjgxLi44
Yjg2Mjc4NjI3MSAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKKysr
IGIvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKQEAgLTEyNiw2ICsxMjYsNyBAQCBTRVRf
QU5EX0VYUE9TRV9UT19CVUlMRChVU0VfQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQgVFJV
RSkKIHNldChGT1JXQVJESU5HX0hFQURFUlNfRElSICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vRm9y
d2FyZGluZ0hlYWRlcnMpCiBzZXQoRk9SV0FSRElOR19IRUFERVJTX1dQRV9ESVIgJHtGT1JXQVJE
SU5HX0hFQURFUlNfRElSfS93cGUpCiBzZXQoRk9SV0FSRElOR19IRUFERVJTX1dQRV9FWFRFTlNJ
T05fRElSICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0vd3BlLXdlYmV4dGVuc2lvbikKK3NldChG
T1JXQVJESU5HX0hFQURFUlNfV1BFX0RPTV9ESVIgJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfS93
cGUtZG9tKQogc2V0KERFUklWRURfU09VUkNFU19KQVZBU0NSSVBDT1JFV1BFX0RJUiAke0RFUklW
RURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L2phdmFzY3JpcHRjb3Jld3BlKQogc2V0KERF
UklWRURfU09VUkNFU19KQVZBU0NSSVBDT1JFX0dMSUJfQVBJX0RJUiAke0RFUklWRURfU09VUkNF
U19KQVZBU0NSSVBUQ09SRV9ESVJ9L2phdmFzY3JpcHRjb3Jld3BlL2pzYykKIHNldChERVJJVkVE
X1NPVVJDRVNfV1BFX0FQSV9ESVIgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUX0RJUn0vd3BlKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDRmNzk3
MWI4N2RkLi43YmNjYjc0NTQyZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE4LTAzLTI1ICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIEFkZCBB
UEkgdG8gY29udmVydCBiZXR3ZWVuIERPTSBhbmQgSlNDVmFsdWUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzQ0OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE1pY2hhZWwgQ2F0YW56YXJvLgorCisgICAgICAgIEFkZCB1bml0IHRlc3RzIGZvciBub24t
ZGVwcmVjYXRlZCBET00gQVBJIGFuZCBzd2l0Y2ggZXhpc3RpbmcgdGVzdHMgdG8gdXNlIG5vbi1k
ZXByZWNhdGVkIEFQSSBleGNlcHQgZm9yIHRoZQorICAgICAgICBvbmVzIHRoYXQgdGVzdCB0aGUg
ZGVwcmVjYXRlZCBBUEkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdM
aWIvRE9NRWxlbWVudFRlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKERPTUVsZW1lbnRUZXN0Ojpj
cmVhdGUpOgorICAgICAgICAoRE9NRWxlbWVudFRlc3Q6OnRlc3RBdXRvRmlsbCk6CisgICAgICAg
IChyZWdpc3RlclRlc3RzKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdM
aWIvRWRpdG9yVGVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0V2ViRWRpdG9yVGVzdDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdFdlYkVkaXRvclRlc3Q6OnNlbGVjdGlvbkNoYW5nZWRD
YWxsYmFjayk6CisgICAgICAgIChXZWJLaXRXZWJFZGl0b3JUZXN0Ojp0ZXN0U2VsZWN0aW9uY2hh
bmdlZCk6CisgICAgICAgIChyZWdpc3RlclRlc3RzKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvRnJhbWVUZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdEZyYW1lVGVz
dDo6dGVzdEphdmFTY3JpcHRWYWx1ZXMpOgorICAgICAgICAocmVnaXN0ZXJUZXN0cyk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RET01FbGVtZW50LmNwcDog
UmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01PYmplY3RQcml2YXRlLmguCisgICAgICAgICh0ZXN0V2ViS2l0RE9N
RWxlbWVudEF1dG9GaWxsKToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisgICAgICAgIChhZnRlckFs
bCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RFZGl0b3Iu
Y3BwOiBSZW5hbWVkIGZyb20gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVz
dEVkaXRvci5jcHAuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rl
c3RGcmFtZS5jcHA6CisgICAgICAgICh0ZXN0V2ViS2l0RnJhbWVKYXZhU2NyaXB0VmFsdWVzKToK
KyAgICAgICAgKGJlZm9yZUFsbCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRHTGliL1Rlc3RXZWJFeHRlbnNpb25zLmNwcDoKKyAgICAgICAgKGlucHV0RWxlbWVudElzVXNl
ckVkaXRlZCk6CisgICAgICAgICh0ZXN0V2ViRXh0ZW5zaW9uSW5wdXRFbGVtZW50SXNVc2VyRWRp
dGVkKToKKyAgICAgICAgKHRlc3RXZWJFeHRlbnNpb25Gb3JtU3VibWlzc2lvblN0ZXBzKToKKyAg
ICAgICAgKGJlZm9yZUFsbCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1dlYkV4dGVuc2lvblRlc3QuY3BwOgorICAgICAgICAoZG9jdW1lbnRMb2FkZWRDYWxsYmFj
ayk6CisgICAgICAgIChzZXJpYWxpemVOb2RlKToKKyAgICAgICAgKGNvbnRleHRNZW51Q2FsbGJh
Y2spOgorICAgICAgICAoY29uc29sZU1lc3NhZ2VTZW50Q2FsbGJhY2spOgorICAgICAgICAoZm9y
bUNvbnRyb2xzQXNzb2NpYXRlZENhbGxiYWNrKToKKyAgICAgICAgKHdpbGxTdWJtaXRGb3JtQ2Fs
bGJhY2spOgorICAgICAgICAocGFnZUNyZWF0ZWRDYWxsYmFjayk6CisgICAgICAgIChtZXRob2RD
YWxsQ2FsbGJhY2spOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9X
ZWJQcm9jZXNzVGVzdC5jcHA6CisgICAgICAgIChjaGVja0xlYWtzKToKKyAgICAgICAgKHdlYlBy
b2Nlc3NUZXN0UnVubmVyRmluYWxpemUpOgorICAgICAgICAoY2hlY2tMZWFrc0F0RXhpdCk6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvQXV0b2NsZWFudXBzVGVzdC5j
cHA6CisgICAgICAgIChBdXRvY2xlYW51cHNUZXN0Ojp0ZXN0V2ViUHJvY2Vzc0F1dG9jbGVhbnVw
cyk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9NQ2xpZW50UmVj
dFRlc3QuY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0RPTU5v
ZGVGaWx0ZXJUZXN0LmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0
ay9ET01Ob2RlVGVzdC5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
dGsvRE9NWFBhdGhOU1Jlc29sdmVyVGVzdC5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRHdGsvRWRpdG9yVGVzdC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9nbGliL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ2xp
Yi9QbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2dsaWIvUGxhdGZv
cm1XUEUuY21ha2U6CisKIDIwMTgtMDMtMjQgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBw
bGUuY29tPgogCiAgICAgICAgIHdlYmtpdHB5OiBVbnJlY29nbml6ZWQgbWFjIHZlcnNpb25zIGFs
d2F5cyB1c2UgV2ViS2l0VGVzdFJ1bm5lcgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdHlsZS9jaGVja2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVj
a2VyLnB5CmluZGV4IGYxYjA5MmQxYWZlLi4zMzNkY2UyNjU2NyAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvY2hlY2tlci5weQpAQCAtMzQyLDYgKzM0Miw3IEBAIF9TS0lQUEVEX0ZJTEVT
X1dJVEhfV0FSTklORyA9IFsKICAgICByZS5jb21waWxlKHJlLmVzY2FwZShvcy5wYXRoLmpvaW4o
J1NvdXJjZScsICdXZWJLaXQnLCAnVUlQcm9jZXNzJywgJ0FQSScsICd3cGUnKSArIG9zLnBhdGgu
c2VwKSArIHInV2ViS2l0KD8hLipQcml2YXRlXC5oKS4qXC5oJCcpLAogICAgIHJlLmNvbXBpbGUo
cmUuZXNjYXBlKG9zLnBhdGguam9pbignU291cmNlJywgJ1dlYktpdCcsICdXZWJQcm9jZXNzJywg
J0luamVjdGVkQnVuZGxlJywgJ0FQSScsICdndGsnKSArIG9zLnBhdGguc2VwKSArIHInV2ViS2l0
KD8hLipQcml2YXRlXC5oKS4qXC5oJCcpLAogICAgIHJlLmNvbXBpbGUocmUuZXNjYXBlKG9zLnBh
dGguam9pbignU291cmNlJywgJ1dlYktpdCcsICdXZWJQcm9jZXNzJywgJ0luamVjdGVkQnVuZGxl
JywgJ0FQSScsICd3cGUnKSArIG9zLnBhdGguc2VwKSArIHInV2ViS2l0KD8hLipQcml2YXRlXC5o
KS4qXC5oJCcpLAorICAgIHJlLmNvbXBpbGUocmUuZXNjYXBlKG9zLnBhdGguam9pbignU291cmNl
JywgJ1dlYktpdCcsICdXZWJQcm9jZXNzJywgJ0luamVjdGVkQnVuZGxlJywgJ0FQSScsICd3cGUn
LCAnRE9NJykgKyBvcy5wYXRoLnNlcCkgKyByJ1dlYktpdCg/IS4qUHJpdmF0ZVwuaCkuKlwuaCQn
KSwKIAogICAgICMgR09iamVjdCBET00gYmluZGluZ3MgY29waWVkIGZyb20gZ2VuZXJhdGVkIGNv
ZGUgdXNpbmcgZGlmZmVyZW50IGNvZGluZyBzdHlsZS4KICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJj
ZScsICdXZWJLaXQnLCAnV2ViUHJvY2VzcycsICdJbmplY3RlZEJ1bmRsZScsICdBUEknLCAnZ3Rr
JywgJ0RPTScpLApAQCAtMzUwLDcgKzM1MSw4IEBAIF9TS0lQUEVEX0ZJTEVTX1dJVEhfV0FSTklO
RyA9IFsKICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdXZWJLaXQnLCAnVUlQcm9jZXNzJywg
J0FQSScsICdndGsnLCAnd2Via2l0Mi5oJyksCiAgICAgb3MucGF0aC5qb2luKCdTb3VyY2UnLCAn
V2ViS2l0JywgJ1VJUHJvY2VzcycsICdBUEknLCAnd3BlJywgJ3dlYmtpdC5oJyksCiAgICAgb3Mu
cGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViS2l0JywgJ1dlYlByb2Nlc3MnLCAnSW5qZWN0ZWRCdW5k
bGUnLCAnQVBJJywgJ2d0aycsICd3ZWJraXQtd2ViLWV4dGVuc2lvbi5oJyksCi0gICAgb3MucGF0
aC5qb2luKCdTb3VyY2UnLCAnV2ViS2l0JywgJ1dlYlByb2Nlc3MnLCAnSW5qZWN0ZWRCdW5kbGUn
LCAnQVBJJywgJ3dwZScsICd3ZWJraXQtd2ViLWV4dGVuc2lvbi5oJyldCisgICAgb3MucGF0aC5q
b2luKCdTb3VyY2UnLCAnV2ViS2l0JywgJ1dlYlByb2Nlc3MnLCAnSW5qZWN0ZWRCdW5kbGUnLCAn
QVBJJywgJ3dwZScsICd3ZWJraXQtd2ViLWV4dGVuc2lvbi5oJyksCisgICAgb3MucGF0aC5qb2lu
KCdTb3VyY2UnLCAnV2ViS2l0JywgJ1dlYlByb2Nlc3MnLCAnSW5qZWN0ZWRCdW5kbGUnLCAnQVBJ
JywgJ3dwZScsICdET00nLCAnd2Via2l0ZG9tLmgnKV0KIAogIyBGaWxlcyB0byBza2lwIHRoYXQg
YXJlIG1vcmUgY29tbW9uIG9yIG9idmlvdXMuCiAjCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvRE9NRWxlbWVudFRlc3QuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL0RPTUVsZW1lbnRUZXN0LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTU0ZTFjNTNlMjAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvRE9NRWxlbWVudFRlc3QuY3Bw
CkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggSWdhbGlhIFMuTC4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Rlc3QuaCIKKyNpbmNs
dWRlIDxnaW8vZ2lvLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgorCitjbGFz
cyBET01FbGVtZW50VGVzdCA6IHB1YmxpYyBXZWJQcm9jZXNzVGVzdCB7CitwdWJsaWM6CisgICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxXZWJQcm9jZXNzVGVzdD4gY3JlYXRlKCkgeyByZXR1cm4g
c3RkOjp1bmlxdWVfcHRyPFdlYlByb2Nlc3NUZXN0PihuZXcgRE9NRWxlbWVudFRlc3QoKSk7IH0K
KworcHJpdmF0ZToKKyAgICBib29sIHRlc3RBdXRvRmlsbChXZWJLaXRXZWJQYWdlKiBwYWdlKQor
ICAgIHsKKyAgICAgICAgV2ViS2l0RnJhbWUqIGZyYW1lID0gd2Via2l0X3dlYl9wYWdlX2dldF9t
YWluX2ZyYW1lKHBhZ2UpOworICAgICAgICBnX2Fzc2VydF90cnVlKFdFQktJVF9JU19GUkFNRShm
cmFtZSkpOworCisgICAgICAgIEdSZWZQdHI8SlNDQ29udGV4dD4ganNDb250ZXh0ID0gYWRvcHRH
UmVmKHdlYmtpdF9mcmFtZV9nZXRfanNfY29udGV4dChmcmFtZSkpOworICAgICAgICBnX2Fzc2Vy
dF90cnVlKEpTQ19JU19DT05URVhUKGpzQ29udGV4dC5nZXQoKSkpOworICAgICAgICBhc3NlcnRP
YmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKGpzQ29udGV4dC5nZXQoKSkp
OworCisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IGpzSW5wdXRFbGVtZW50ID0gYWRvcHRHUmVm
KGpzY19jb250ZXh0X2V2YWx1YXRlKGpzQ29udGV4dC5nZXQoKSwgImRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdhdXRvLWZpbGwnKSIpKTsKKyAgICAgICAgZ19hc3NlcnRfdHJ1ZShKU0NfSVNfVkFM
VUUoanNJbnB1dEVsZW1lbnQuZ2V0KCkpKTsKKyAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVk
V2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChqc0lucHV0RWxlbWVudC5nZXQoKSkpOworICAgICAg
ICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19vYmplY3QoanNJbnB1dEVsZW1lbnQuZ2V0KCkp
KTsKKyAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfb2JqZWN0X2lzX2luc3RhbmNlX29m
KGpzSW5wdXRFbGVtZW50LmdldCgpLCAiSFRNTElucHV0RWxlbWVudCIpKTsKKworICAgICAgICBh
dXRvKiBub2RlID0gd2Via2l0X2RvbV9ub2RlX2Zvcl9qc192YWx1ZShqc0lucHV0RWxlbWVudC5n
ZXQoKSk7CisgICAgICAgIGdfYXNzZXJ0X3RydWUoV0VCS0lUX0RPTV9JU19OT0RFKG5vZGUpKTsK
KyAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChu
b2RlKSk7CisKKyAgICAgICAgYXV0byogZWxlbWVudCA9IFdFQktJVF9ET01fRUxFTUVOVChub2Rl
KTsKKyAgICAgICAgZ19hc3NlcnRfZmFsc2Uod2Via2l0X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRf
ZWxlbWVudF9nZXRfYXV0b19maWxsZWQoZWxlbWVudCkpOworICAgICAgICBHUmVmUHRyPEpTQ1Zh
bHVlPiB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfdmFsdWVfb2JqZWN0X2dldF9wcm9wZXJ0eShqc0lu
cHV0RWxlbWVudC5nZXQoKSwgInZhbHVlIikpOworICAgICAgICBnX2Fzc2VydF90cnVlKEpTQ19J
U19WQUxVRSh2YWx1ZS5nZXQoKSkpOworICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9p
c19zdHJpbmcodmFsdWUuZ2V0KCkpKTsKKyAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiB2YWx1ZVN0
cmluZyhqc2NfdmFsdWVfdG9fc3RyaW5nKHZhbHVlLmdldCgpKSk7CisgICAgICAgIGdfYXNzZXJ0
X2NtcHN0cih2YWx1ZVN0cmluZy5nZXQoKSwgPT0sICIiKTsKKworICAgICAgICB3ZWJraXRfZG9t
X2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X3NldF9lZGl0aW5nX3ZhbHVlKGVsZW1lbnQsICJh
dXRvIGZpbGxlZCB2YWx1ZSIpOworICAgICAgICB3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1
dF9lbGVtZW50X3NldF9hdXRvX2ZpbGxlZChlbGVtZW50LCBUUlVFKTsKKyAgICAgICAgdmFsdWUg
PSBhZG9wdEdSZWYoanNjX3ZhbHVlX29iamVjdF9nZXRfcHJvcGVydHkoanNJbnB1dEVsZW1lbnQu
Z2V0KCksICJ2YWx1ZSIpKTsKKyAgICAgICAgZ19hc3NlcnRfdHJ1ZShKU0NfSVNfVkFMVUUodmFs
dWUuZ2V0KCkpKTsKKyAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfc3RyaW5nKHZh
bHVlLmdldCgpKSk7CisgICAgICAgIHZhbHVlU3RyaW5nLnJlc2V0KGpzY192YWx1ZV90b19zdHJp
bmcodmFsdWUuZ2V0KCkpKTsKKyAgICAgICAgZ19hc3NlcnRfY21wc3RyKHZhbHVlU3RyaW5nLmdl
dCgpLCA9PSwgImF1dG8gZmlsbGVkIHZhbHVlIik7CisgICAgICAgIGdfYXNzZXJ0X3RydWUod2Vi
a2l0X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfYXV0b19maWxsZWQoZWxlbWVu
dCkpOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGJvb2wgcnVuVGVzdChj
b25zdCBjaGFyKiB0ZXN0TmFtZSwgV2ViS2l0V2ViUGFnZSogcGFnZSkgb3ZlcnJpZGUKKyAgICB7
CisgICAgICAgIGlmICghc3RyY21wKHRlc3ROYW1lLCAiYXV0by1maWxsIikpCisgICAgICAgICAg
ICByZXR1cm4gdGVzdEF1dG9GaWxsKHBhZ2UpOworCisgICAgICAgIGdfYXNzZXJ0X25vdF9yZWFj
aGVkKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9OworCitzdGF0aWMgdm9pZCBf
X2F0dHJpYnV0ZV9fKChjb25zdHJ1Y3RvcikpIHJlZ2lzdGVyVGVzdHMoKQoreworICAgIFJFR0lT
VEVSX1RFU1QoRE9NRWxlbWVudFRlc3QsICJXZWJLaXRET01FbGVtZW50L2F1dG8tZmlsbCIpOwor
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL0VkaXRv
clRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL0VkaXRvclRl
c3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40M2NlZDBjNTc3
NAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xp
Yi9FZGl0b3JUZXN0LmNwcApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IFJlZCBIYXQgSW5jLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJXZWJQcm9j
ZXNzVGVzdC5oIgorCitjbGFzcyBXZWJLaXRXZWJFZGl0b3JUZXN0IDogcHVibGljIFdlYlByb2Nl
c3NUZXN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFdlYlByb2Nlc3NU
ZXN0PiBjcmVhdGUoKSB7IHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8V2ViUHJvY2Vzc1Rlc3Q+KG5l
dyBXZWJLaXRXZWJFZGl0b3JUZXN0KCkpOyB9CisKK3ByaXZhdGU6CisgICAgc3RhdGljIHZvaWQg
c2VsZWN0aW9uQ2hhbmdlZENhbGxiYWNrKGJvb2wqIHNlbGVjdGlvbkNoYW5nZWQpCisgICAgewor
ICAgICAgICAqc2VsZWN0aW9uQ2hhbmdlZCA9IHRydWU7CisgICAgfQorCisgICAgYm9vbCB0ZXN0
U2VsZWN0aW9uQ2hhbmdlZChXZWJLaXRXZWJQYWdlKiBwYWdlKQorICAgIHsKKyAgICAgICAgYm9v
bCBzZWxlY3Rpb25DaGFuZ2VkID0gZmFsc2U7CisKKyAgICAgICAgV2ViS2l0V2ViRWRpdG9yKiBl
ZGl0b3IgPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2VkaXRvcihwYWdlKTsKKyAgICAgICAgZ19hc3Nl
cnQoV0VCS0lUX0lTX1dFQl9FRElUT1IoZWRpdG9yKSk7CisgICAgICAgIGFzc2VydE9iamVjdElz
RGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1QoZWRpdG9yKSk7CisgICAgICAgIGdfc2ln
bmFsX2Nvbm5lY3Rfc3dhcHBlZChlZGl0b3IsICJzZWxlY3Rpb24tY2hhbmdlZCIsIEdfQ0FMTEJB
Q0soc2VsZWN0aW9uQ2hhbmdlZENhbGxiYWNrKSwgJnNlbGVjdGlvbkNoYW5nZWQpOworCisgICAg
ICAgIEdSZWZQdHI8SlNDQ29udGV4dD4ganNDb250ZXh0ID0gYWRvcHRHUmVmKHdlYmtpdF9mcmFt
ZV9nZXRfanNfY29udGV4dCh3ZWJraXRfd2ViX3BhZ2VfZ2V0X21haW5fZnJhbWUocGFnZSkpKTsK
KyAgICAgICAgZ19hc3NlcnQoSlNDX0lTX0NPTlRFWFQoanNDb250ZXh0LmdldCgpKSk7CisgICAg
ICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1QoanNDb250
ZXh0LmdldCgpKSk7CisKKyAgICAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN0ZXBzW10gPSB7Cisg
ICAgICAgICAgICAiZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ1NlbGVjdEFsbCcpIiwKKyAgICAgICAg
ICAgICJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuY29sbGFwc2VUb1N0YXJ0KCkiLAorICAgICAgICAg
ICAgIndpbmRvdy5nZXRTZWxlY3Rpb24oKS5tb2RpZnkoJ21vdmUnLCAnZm9yd2FyZCcsICdjaGFy
YWN0ZXInKSIsCisgICAgICAgICAgICAid2luZG93LmdldFNlbGVjdGlvbigpLm1vZGlmeSgnZXh0
ZW5kJywgJ2ZvcndhcmQnLCAnd29yZCcpIiwKKyAgICAgICAgICAgICJkb2N1bWVudC5leGVjQ29t
bWFuZCgnVW5zZWxlY3QnKSIsCisgICAgICAgICAgICBudWxscHRyCisgICAgICAgIH07CisKKyAg
ICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gcmVzdWx0OworICAgICAgICB1bnNpZ25lZCBpID0gMDsK
KyAgICAgICAgd2hpbGUgKGNvbnN0IGNoYXIqIGNvbW1hbmQgPSBzdGVwc1tpKytdKSB7CisgICAg
ICAgICAgICBnX2Fzc2VydCghc2VsZWN0aW9uQ2hhbmdlZCk7CisgICAgICAgICAgICByZXN1bHQg
PSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoanNDb250ZXh0LmdldCgpLCBjb21tYW5k
KSk7CisgICAgICAgICAgICBnX2Fzc2VydChKU0NfSVNfVkFMVUUocmVzdWx0LmdldCgpKSk7Cisg
ICAgICAgICAgICBnX2Fzc2VydChzZWxlY3Rpb25DaGFuZ2VkKTsKKyAgICAgICAgICAgIHNlbGVj
dGlvbkNoYW5nZWQgPSBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KKworICAgIGJvb2wgcnVuVGVzdChjb25zdCBjaGFyKiB0ZXN0TmFtZSwgV2ViS2l0V2Vi
UGFnZSogcGFnZSkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGlmICghc3RyY21wKHRlc3ROYW1l
LCAic2VsZWN0aW9uLWNoYW5nZWQiKSkKKyAgICAgICAgICAgIHJldHVybiB0ZXN0U2VsZWN0aW9u
Q2hhbmdlZChwYWdlKTsKKworICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorfTsKKworc3RhdGljIHZvaWQgX19hdHRyaWJ1dGVfXygo
Y29uc3RydWN0b3IpKSByZWdpc3RlclRlc3RzKCkKK3sKKyAgICBSRUdJU1RFUl9URVNUKFdlYktp
dFdlYkVkaXRvclRlc3QsICJXZWJLaXRXZWJFZGl0b3Ivc2VsZWN0aW9uLWNoYW5nZWQiKTsKK30K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9GcmFtZVRl
c3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL0ZyYW1lVGVzdC5j
cHAKaW5kZXggODgwYzEwMzc1MWQuLmU5MTBiZjdiYzNkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvRnJhbWVUZXN0LmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvRnJhbWVUZXN0LmNwcApAQCAtMjEsNiArMjEsNyBA
QAogCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Rlc3QuaCIKICNpbmNsdWRlIDxnaW8vZ2lvLmg+Cisj
aW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCiBjbGFzcyBXZWJLaXRGcmFtZVRlc3Qg
OiBwdWJsaWMgV2ViUHJvY2Vzc1Rlc3QgewogcHVibGljOgpAQCAtNjIsNiArNjMsNzQgQEAgcHJp
dmF0ZToKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgYm9vbCB0ZXN0SmF2YVNj
cmlwdFZhbHVlcyhXZWJLaXRXZWJQYWdlKiBwYWdlKQorICAgIHsKKyAgICAgICAgV2ViS2l0RnJh
bWUqIGZyYW1lID0gd2Via2l0X3dlYl9wYWdlX2dldF9tYWluX2ZyYW1lKHBhZ2UpOworICAgICAg
ICBnX2Fzc2VydChXRUJLSVRfSVNfRlJBTUUoZnJhbWUpKTsKKworICAgICAgICBHUmVmUHRyPEpT
Q0NvbnRleHQ+IGpzQ29udGV4dCA9IGFkb3B0R1JlZih3ZWJraXRfZnJhbWVfZ2V0X2pzX2NvbnRl
eHQoZnJhbWUpKTsKKyAgICAgICAgZ19hc3NlcnQoSlNDX0lTX0NPTlRFWFQoanNDb250ZXh0Lmdl
dCgpKSk7CisgICAgICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19P
QkpFQ1QoanNDb250ZXh0LmdldCgpKSk7CisKKyAgICAgICAgV2ViS2l0RE9NRG9jdW1lbnQqIGRv
Y3VtZW50ID0gd2Via2l0X3dlYl9wYWdlX2dldF9kb21fZG9jdW1lbnQocGFnZSk7CisgICAgICAg
IGdfYXNzZXJ0KFdFQktJVF9ET01fSVNfRE9DVU1FTlQoZG9jdW1lbnQpKTsKKyAgICAgICAgYXNz
ZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChkb2N1bWVudCkpOwor
CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IGpzRG9jdW1lbnQgPSBhZG9wdEdSZWYod2Via2l0
X2ZyYW1lX2dldF9qc192YWx1ZV9mb3JfZG9tX29iamVjdChmcmFtZSwgV0VCS0lUX0RPTV9PQkpF
Q1QoZG9jdW1lbnQpKSk7CisgICAgICAgIGdfYXNzZXJ0KEpTQ19JU19WQUxVRShqc0RvY3VtZW50
LmdldCgpKSk7CisgICAgICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMo
R19PQkpFQ1QoanNEb2N1bWVudC5nZXQoKSkpOworICAgICAgICBnX2Fzc2VydChqc2NfdmFsdWVf
Z2V0X2NvbnRleHQoanNEb2N1bWVudC5nZXQoKSkgPT0ganNDb250ZXh0LmdldCgpKTsKKworICAg
ICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfY29udGV4dF9nZXRf
dmFsdWUoanNDb250ZXh0LmdldCgpLCAiZG9jdW1lbnQiKSk7CisgICAgICAgIGdfYXNzZXJ0KHZh
bHVlLmdldCgpID09IGpzRG9jdW1lbnQuZ2V0KCkpOworCisjaWYgUExBVEZPUk0oR1RLKQorICAg
ICAgICBHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKyAgICAgICAgV2ViS2l0RE9N
RWxlbWVudCogcCA9IHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRfYnlfaWQoZG9jdW1l
bnQsICJwYXJhZ3JhcGgiKTsKKyAgICAgICAgR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05T
OworICAgICAgICBnX2Fzc2VydChXRUJLSVRfRE9NX0lTX0VMRU1FTlQocCkpOworICAgICAgICBh
c3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKHApKTsKKworICAg
ICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBqc1AgPSBhZG9wdEdSZWYod2Via2l0X2ZyYW1lX2dldF9q
c192YWx1ZV9mb3JfZG9tX29iamVjdChmcmFtZSwgV0VCS0lUX0RPTV9PQkpFQ1QocCkpKTsKKyNl
bHNlCisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IGpzUCA9IGFkb3B0R1JlZihqc2NfdmFsdWVf
b2JqZWN0X2ludm9rZV9tZXRob2QoanNEb2N1bWVudC5nZXQoKSwgImdldEVsZW1lbnRCeUlkIiwg
R19UWVBFX1NUUklORywgInBhcmFncmFwaCIsIEdfVFlQRV9OT05FKSk7CisjZW5kaWYKKyAgICAg
ICAgZ19hc3NlcnQoSlNDX0lTX1ZBTFVFKGpzUC5nZXQoKSkpOworICAgICAgICBhc3NlcnRPYmpl
Y3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKGpzUC5nZXQoKSkpOworICAgICAg
ICBnX2Fzc2VydChqc2NfdmFsdWVfaXNfb2JqZWN0KGpzUC5nZXQoKSkpOworICAgICAgICBnX2Fz
c2VydChqc2NfdmFsdWVfZ2V0X2NvbnRleHQoanNQLmdldCgpKSA9PSBqc0NvbnRleHQuZ2V0KCkp
OworCisgICAgICAgIHZhbHVlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGpzQ29u
dGV4dC5nZXQoKSwgImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYXJhZ3JhcGgnKSIpKTsKKyAg
ICAgICAgZ19hc3NlcnQodmFsdWUuZ2V0KCkgPT0ganNQLmdldCgpKTsKKyNpZiBQTEFURk9STShH
VEspCisgICAgICAgIHZhbHVlID0gYWRvcHRHUmVmKGpzY192YWx1ZV9vYmplY3RfaW52b2tlX21l
dGhvZChqc0RvY3VtZW50LmdldCgpLCAiZ2V0RWxlbWVudEJ5SWQiLCBHX1RZUEVfU1RSSU5HLCAi
cGFyYWdyYXBoIiwgR19UWVBFX05PTkUpKTsKKyAgICAgICAgZ19hc3NlcnQodmFsdWUuZ2V0KCkg
PT0ganNQLmdldCgpKTsKKyNlbmRpZgorCisgICAgICAgIHZhbHVlID0gYWRvcHRHUmVmKGpzY192
YWx1ZV9vYmplY3RfZ2V0X3Byb3BlcnR5KGpzUC5nZXQoKSwgImlubmVyVGV4dCIpKTsKKyAgICAg
ICAgZ19hc3NlcnQoSlNDX0lTX1ZBTFVFKHZhbHVlLmdldCgpKSk7CisgICAgICAgIGFzc2VydE9i
amVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1QodmFsdWUuZ2V0KCkpKTsKKyAg
ICAgICAgZ19hc3NlcnQoanNjX3ZhbHVlX2lzX3N0cmluZyh2YWx1ZS5nZXQoKSkpOworICAgICAg
ICBHVW5pcXVlUHRyPGNoYXI+IHN0clZhbHVlKGpzY192YWx1ZV90b19zdHJpbmcodmFsdWUuZ2V0
KCkpKTsKKyAgICAgICAgZ19hc3NlcnRfY21wc3RyKHN0clZhbHVlLmdldCgpLCA9PSwgIlRoaXMg
aXMgYSB0ZXN0Iik7CisKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4ganNJbWFnZSA9IGFkb3B0
R1JlZihqc2NfdmFsdWVfb2JqZWN0X2ludm9rZV9tZXRob2QoanNEb2N1bWVudC5nZXQoKSwgImdl
dEVsZW1lbnRCeUlkIiwgR19UWVBFX1NUUklORywgImltYWdlIiwgR19UWVBFX05PTkUpKTsKKyAg
ICAgICAgZ19hc3NlcnQoSlNDX0lTX1ZBTFVFKGpzSW1hZ2UuZ2V0KCkpKTsKKyAgICAgICAgYXNz
ZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChqc0ltYWdlLmdldCgp
KSk7CisgICAgICAgIGdfYXNzZXJ0KGpzY192YWx1ZV9pc19vYmplY3QoanNJbWFnZS5nZXQoKSkp
OworCisgICAgICAgIFdlYktpdERPTU5vZGUqIGltYWdlID0gd2Via2l0X2RvbV9ub2RlX2Zvcl9q
c192YWx1ZShqc0ltYWdlLmdldCgpKTsKKyAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19F
TEVNRU5UKGltYWdlKSk7CisgICAgICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0Rmlu
aXNoZXMoR19PQkpFQ1QoaW1hZ2UpKTsKKyNpZiBQTEFURk9STShHVEspCisgICAgICAgIEdfR05V
Q19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworICAgICAgICBnX2Fzc2VydCh3ZWJraXRfZG9t
X2RvY3VtZW50X2dldF9lbGVtZW50X2J5X2lkKGRvY3VtZW50LCAiaW1hZ2UiKSA9PSBXRUJLSVRf
RE9NX0VMRU1FTlQoaW1hZ2UpKTsKKyAgICAgICAgR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJ
T05TOworI2VuZGlmCisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCiAgICAgYm9vbCBy
dW5UZXN0KGNvbnN0IGNoYXIqIHRlc3ROYW1lLCBXZWJLaXRXZWJQYWdlKiBwYWdlKSBvdmVycmlk
ZQogICAgIHsKICAgICAgICAgaWYgKCFzdHJjbXAodGVzdE5hbWUsICJtYWluLWZyYW1lIikpCkBA
IC03MCw2ICsxMzksOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgcmV0dXJuIHRlc3RVUkkocGFn
ZSk7CiAgICAgICAgIGlmICghc3RyY21wKHRlc3ROYW1lLCAiamF2YXNjcmlwdC1jb250ZXh0Iikp
CiAgICAgICAgICAgICByZXR1cm4gdGVzdEphdmFTY3JpcHRDb250ZXh0KHBhZ2UpOworICAgICAg
ICBpZiAoIXN0cmNtcCh0ZXN0TmFtZSwgImphdmFzY3JpcHQtdmFsdWVzIikpCisgICAgICAgICAg
ICByZXR1cm4gdGVzdEphdmFTY3JpcHRWYWx1ZXMocGFnZSk7CiAKICAgICAgICAgZ19hc3NlcnRf
bm90X3JlYWNoZWQoKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtODEsNCArMTUyLDUgQEAg
c3RhdGljIHZvaWQgX19hdHRyaWJ1dGVfXygoY29uc3RydWN0b3IpKSByZWdpc3RlclRlc3RzKCkK
ICAgICBSRUdJU1RFUl9URVNUKFdlYktpdEZyYW1lVGVzdCwgIldlYktpdEZyYW1lL21haW4tZnJh
bWUiKTsKICAgICBSRUdJU1RFUl9URVNUKFdlYktpdEZyYW1lVGVzdCwgIldlYktpdEZyYW1lL3Vy
aSIpOwogICAgIFJFR0lTVEVSX1RFU1QoV2ViS2l0RnJhbWVUZXN0LCAiV2ViS2l0RnJhbWUvamF2
YXNjcmlwdC1jb250ZXh0Iik7CisgICAgUkVHSVNURVJfVEVTVChXZWJLaXRGcmFtZVRlc3QsICJX
ZWJLaXRGcmFtZS9qYXZhc2NyaXB0LXZhbHVlcyIpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RET01FbGVtZW50LmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0RE9NRWxlbWVudC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNkMjgwNDZiZjI0Ci0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RET01FbGVtZW50
LmNwcApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IElnYWxpYSBT
LkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIsMSBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJXZWJWaWV3VGVzdC5oIgorCitz
dGF0aWMgdm9pZCB0ZXN0V2ViS2l0RE9NRWxlbWVudEF1dG9GaWxsKFdlYlZpZXdUZXN0KiB0ZXN0
LCBnY29uc3Rwb2ludGVyKQoreworICAgIHN0YXRpYyBjb25zdCBnY2hhciogdGVzdEhUTUwgPSAi
PGh0bWw+PGJvZHk+PGZvcm0gYWN0aW9uPScjJz48aW5wdXQgaWQ9J2F1dG8tZmlsbCc+PC9pbnB1
dD48L2Zvcm0+PC9ib2R5PjwvaHRtbD4iOworICAgIGdfYXNzZXJ0KHRlc3QtPnJ1bldlYlByb2Nl
c3NUZXN0KCJXZWJLaXRET01FbGVtZW50IiwgImF1dG8tZmlsbCIsIHRlc3RIVE1MKSk7Cit9CisK
K3ZvaWQgYmVmb3JlQWxsKCkKK3sKKyAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRET01FbGVt
ZW50IiwgImF1dG8tZmlsbCIsIHRlc3RXZWJLaXRET01FbGVtZW50QXV0b0ZpbGwpOworfQorCit2
b2lkIGFmdGVyQWxsKCkKK3sKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R3RrL1Rlc3RFZGl0b3IuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL1Rlc3RFZGl0b3IuY3BwCnNpbWlsYXJpdHkgaW5kZXggOTYlCnJlbmFtZSBmcm9t
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL1Rlc3RFZGl0b3IuY3BwCnJlbmFt
ZSB0byBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEVkaXRvci5jcHAK
aW5kZXggZDM0ZWZlY2QxOTEuLjU4YmU1M2UzYmVkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0RWRpdG9yLmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEVkaXRvci5jcHAKQEAgLTIwLDggKzIwLDYgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgIldlYlZpZXdUZXN0LmgiCi0jaW5jbHVk
ZSA8Z3RrL2d0ay5oPgotI2luY2x1ZGUgPHdlYmtpdDIvd2Via2l0Mi5oPgogCiBzdGF0aWMgdm9p
ZCB0ZXN0V2ViS2l0V2ViRWRpdG9yU2VsZWN0aW9uQ2hhbmdlZChXZWJWaWV3VGVzdCogdGVzdCwg
Z2NvbnN0cG9pbnRlcikKIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0R0xpYi9UZXN0RnJhbWUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRHTGliL1Rlc3RGcmFtZS5jcHAKaW5kZXggMjM0MWZiMzE2ZGUuLjZmMzM3MjliMTgwIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEZyYW1lLmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEZyYW1lLmNw
cApAQCAtMzYsMTEgKzM2LDE4IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJLaXRGcmFtZUphdmFTY3Jp
cHRDb250ZXh0KFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGdfYXNzZXJ0
KHRlc3QtPnJ1bldlYlByb2Nlc3NUZXN0KCJXZWJLaXRGcmFtZSIsICJqYXZhc2NyaXB0LWNvbnRl
eHQiKSk7CiB9CiAKK3N0YXRpYyB2b2lkIHRlc3RXZWJLaXRGcmFtZUphdmFTY3JpcHRWYWx1ZXMo
V2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAgc3RhdGljIGNvbnN0IGNo
YXIqIHRlc3RIVE1MID0gIjxodG1sPjxib2R5PjxwIGlkPSdwYXJhZ3JhcGgnPlRoaXMgaXMgYSB0
ZXN0PC9wPjxpbWcgaWQ9J2ltYWdlJyBzcmM9J2Zvby5wbmcnPjwvYm9keT48L2h0bWw+IjsKKyAg
ICBnX2Fzc2VydCh0ZXN0LT5ydW5XZWJQcm9jZXNzVGVzdCgiV2ViS2l0RnJhbWUiLCAiamF2YXNj
cmlwdC12YWx1ZXMiLCB0ZXN0SFRNTCkpOworfQorCiB2b2lkIGJlZm9yZUFsbCgpCiB7CiAgICAg
V2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0RnJhbWUiLCAibWFpbi1mcmFtZSIsIHRlc3RXZWJLaXRG
cmFtZU1haW5GcmFtZSk7CiAgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0RnJhbWUiLCAidXJp
IiwgdGVzdFdlYktpdEZyYW1lVVJJKTsKICAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRGcmFt
ZSIsICJqYXZhc2NyaXB0LWNvbnRleHQiLCB0ZXN0V2ViS2l0RnJhbWVKYXZhU2NyaXB0Q29udGV4
dCk7CisgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0RnJhbWUiLCAiamF2YXNjcmlwdC12YWx1
ZXMiLCB0ZXN0V2ViS2l0RnJhbWVKYXZhU2NyaXB0VmFsdWVzKTsKIH0KIAogdm9pZCBhZnRlckFs
bCgpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVz
dFdlYkV4dGVuc2lvbnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGli
L1Rlc3RXZWJFeHRlbnNpb25zLmNwcAppbmRleCBkZjA0M2RkZjA2MC4uOThmYTcyNDEyZDYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViRXh0
ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rl
c3RXZWJFeHRlbnNpb25zLmNwcApAQCAtMzIsNyArMzIsNiBAQCBzdGF0aWMgR1VuaXF1ZVB0cjxj
aGFyPiBzY3JpcHREaWFsb2dSZXN1bHQ7CiAKICNkZWZpbmUgRk9STV9TVUJNSVNTSU9OX1RFU1Rf
SUQgImZvcm0tc3VibWlzc2lvbi10ZXN0LWlkIgogCi0jaWYgUExBVEZPUk0oR1RLKQogc3RhdGlj
IHZvaWQgdGVzdFdlYkV4dGVuc2lvbkdldFRpdGxlKFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rw
b2ludGVyKQogewogICAgIHRlc3QtPmxvYWRIdG1sKCI8aHRtbD48aGVhZD48dGl0bGU+V2ViS2l0
R1RLKyBXZWIgRXh0ZW5zaW9ucyBUZXN0PC90aXRsZT48L2hlYWQ+PGJvZHk+PC9ib2R5PjwvaHRt
bD4iLCAwKTsKQEAgLTUzLDYgKzUyLDU5IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJFeHRlbnNpb25H
ZXRUaXRsZShXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICBnX3ZhcmlhbnRf
Z2V0KHJlc3VsdC5nZXQoKSwgIigmcykiLCAmdGl0bGUpOwogICAgIGdfYXNzZXJ0X2NtcHN0cih0
aXRsZSwgPT0sICJXZWJLaXRHVEsrIFdlYiBFeHRlbnNpb25zIFRlc3QiKTsKIH0KKworI2lmIFBM
QVRGT1JNKEdUSykKK3N0YXRpYyBnYm9vbGVhbiBpbnB1dEVsZW1lbnRJc1VzZXJFZGl0ZWQoR0RC
dXNQcm94eSogcHJveHksIHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgY2hhciogZWxlbWVudElEKQor
eworICAgIEdSZWZQdHI8R1ZhcmlhbnQ+IHJlc3VsdCA9IGFkb3B0R1JlZihnX2RidXNfcHJveHlf
Y2FsbF9zeW5jKAorICAgICAgICBwcm94eSwKKyAgICAgICAgIklucHV0RWxlbWVudElzVXNlckVk
aXRlZCIsCisgICAgICAgIGdfdmFyaWFudF9uZXcoIih0JnMpIiwgcGFnZUlELCBlbGVtZW50SUQp
LAorICAgICAgICBHX0RCVVNfQ0FMTF9GTEFHU19OT05FLAorICAgICAgICAtMSwgbnVsbHB0ciwg
bnVsbHB0cikpOworICAgIGdfYXNzZXJ0X25vbm51bGwocmVzdWx0KTsKKworICAgIGdib29sZWFu
IHJldHZhbDsKKyAgICBnX3ZhcmlhbnRfZ2V0KHJlc3VsdC5nZXQoKSwgIihiKSIsICZyZXR2YWwp
OworICAgIHJldHVybiByZXR2YWw7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RXZWJFeHRlbnNpb25J
bnB1dEVsZW1lbnRJc1VzZXJFZGl0ZWQoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIp
Cit7CisgICAgdGVzdC0+c2hvd0luV2luZG93QW5kV2FpdFVudGlsTWFwcGVkKCk7CisgICAgdGVz
dC0+bG9hZEh0bWwoIjxodG1sPjxib2R5IGlkPSdib2R5Jz48aW5wdXQgaWQ9J2lucHV0Jz48L2lu
cHV0Pjx0ZXh0YXJlYSBpZD0ndGV4dGFyZWEnPjwvdGV4dGFyZWE+PC9ib2R5PjwvaHRtbD4iLCBu
dWxscHRyKTsKKyAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKKworICAgIEdVbmlx
dWVQdHI8Y2hhcj4gZXh0ZW5zaW9uQnVzTmFtZShnX3N0cmR1cF9wcmludGYoIm9yZy53ZWJraXQu
Z3RrLldlYkV4dGVuc2lvblRlc3QldSIsIFRlc3Q6OnNfd2ViRXh0ZW5zaW9uSUQpKTsKKyAgICBH
UmVmUHRyPEdEQnVzUHJveHk+IHByb3h5ID0gYWRvcHRHUmVmKGJ1cy0+Y3JlYXRlUHJveHkoZXh0
ZW5zaW9uQnVzTmFtZS5nZXQoKSwKKyAgICAgICAgIi9vcmcvd2Via2l0L2d0ay9XZWJFeHRlbnNp
b25UZXN0IiwgIm9yZy53ZWJraXQuZ3RrLldlYkV4dGVuc2lvblRlc3QiLCB0ZXN0LT5tX21haW5M
b29wKSk7CisKKyAgICB1aW50NjRfdCBwYWdlSUQgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3BhZ2Vf
aWQodGVzdC0+bV93ZWJWaWV3KTsKKyAgICBnX2Fzc2VydF9mYWxzZShpbnB1dEVsZW1lbnRJc1Vz
ZXJFZGl0ZWQocHJveHkuZ2V0KCksIHBhZ2VJRCwgImlucHV0IikpOworICAgIHRlc3QtPnJ1bkph
dmFTY3JpcHRBbmRXYWl0VW50aWxGaW5pc2hlZCgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lu
cHV0JykuZm9jdXMoKSIsIG51bGxwdHIpOworICAgIHRlc3QtPmtleVN0cm9rZShHREtfS0VZX2Ep
OworICAgIHdoaWxlIChndGtfZXZlbnRzX3BlbmRpbmcoKSkKKyAgICAgICAgZ3RrX21haW5faXRl
cmF0aW9uKCk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXN1bHRTdHJpbmc7CisgICAgZG8gewor
ICAgICAgICBhdXRvKiByZXN1bHQgPSB0ZXN0LT5ydW5KYXZhU2NyaXB0QW5kV2FpdFVudGlsRmlu
aXNoZWQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dCcpLnZhbHVlIiwgbnVsbHB0cik7
CisgICAgICAgIHJlc3VsdFN0cmluZy5yZXNldChXZWJWaWV3VGVzdDo6amF2YXNjcmlwdFJlc3Vs
dFRvQ1N0cmluZyhyZXN1bHQpKTsKKyAgICB9IHdoaWxlIChnX3N0cmNtcDAocmVzdWx0U3RyaW5n
LmdldCgpLCAiYSIpKTsKKyAgICBnX2Fzc2VydF90cnVlKGlucHV0RWxlbWVudElzVXNlckVkaXRl
ZChwcm94eS5nZXQoKSwgcGFnZUlELCAiaW5wdXQiKSk7CisKKyAgICBnX2Fzc2VydF9mYWxzZShp
bnB1dEVsZW1lbnRJc1VzZXJFZGl0ZWQocHJveHkuZ2V0KCksIHBhZ2VJRCwgInRleHRhcmVhIikp
OworICAgIHRlc3QtPnJ1bkphdmFTY3JpcHRBbmRXYWl0VW50aWxGaW5pc2hlZCgiZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RleHRhcmVhJykuZm9jdXMoKSIsIG51bGxwdHIpOworICAgIHRlc3Qt
PmtleVN0cm9rZShHREtfS0VZX2IpOworICAgIHdoaWxlIChndGtfZXZlbnRzX3BlbmRpbmcoKSkK
KyAgICAgICAgZ3RrX21haW5faXRlcmF0aW9uKCk7CisgICAgZG8geworICAgICAgICBhdXRvKiBy
ZXN1bHQgPSB0ZXN0LT5ydW5KYXZhU2NyaXB0QW5kV2FpdFVudGlsRmluaXNoZWQoImRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCd0ZXh0YXJlYScpLnZhbHVlIiwgbnVsbHB0cik7CisgICAgICAgIHJl
c3VsdFN0cmluZy5yZXNldChXZWJWaWV3VGVzdDo6amF2YXNjcmlwdFJlc3VsdFRvQ1N0cmluZyhy
ZXN1bHQpKTsKKyAgICB9IHdoaWxlIChnX3N0cmNtcDAocmVzdWx0U3RyaW5nLmdldCgpLCAiYiIp
KTsKKyAgICBnX2Fzc2VydF90cnVlKGlucHV0RWxlbWVudElzVXNlckVkaXRlZChwcm94eS5nZXQo
KSwgcGFnZUlELCAidGV4dGFyZWEiKSk7CisKKyAgICBnX2Fzc2VydF9mYWxzZShpbnB1dEVsZW1l
bnRJc1VzZXJFZGl0ZWQocHJveHkuZ2V0KCksIHBhZ2VJRCwgImJvZHkiKSk7Cit9CiAjZW5kaWYK
IAogc3RhdGljIHZvaWQgZG9jdW1lbnRMb2FkZWRDYWxsYmFjayhHREJ1c0Nvbm5lY3Rpb24qLCBj
b25zdCBjaGFyKiwgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKiwgR1Zhcmlh
bnQqLCBXZWJWaWV3VGVzdCogdGVzdCkKQEAgLTIyMCw2ICsyNzIsNyBAQCBzdGF0aWMgdm9pZCB0
ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QoV2ViVmlld1Rlc3QqIHRl
c3QsIGdjb25zdAogICAgIGdfbWFpbl9sb29wX3J1bih0ZXN0LT5tX21haW5Mb29wKTsKICAgICBn
X3NpZ25hbF9oYW5kbGVyX2Rpc2Nvbm5lY3QodGVzdC0+bV93ZWJWaWV3LCBwZXJtaXNzaW9uUmVx
dWVzdFNpZ25hbElEKTsKIH0KKyNlbmRpZiAvLyBQTEFURk9STShHVEspCiAKIHN0YXRpYyB2b2lk
IGRpZEFzc29jaWF0ZUZvcm1Db250cm9sc0NhbGxiYWNrKEdEQnVzQ29ubmVjdGlvbiosIGNvbnN0
IGNoYXIqLCBjb25zdCBjaGFyKiwgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqLCBHVmFyaWFudCog
cmVzdWx0LCBXZWJWaWV3VGVzdCogdGVzdCkKIHsKQEAgLTM5OSw3ICs0NTIsNiBAQCBzdGF0aWMg
dm9pZCB0ZXN0V2ViRXh0ZW5zaW9uRm9ybVN1Ym1pc3Npb25TdGVwcyhGb3JtU3VibWlzc2lvblRl
c3QqIHRlc3QsIGdjb25zdAogICAgICAgICAiPGlmcmFtZSBuYW1lPVwidGFyZ2V0X2ZyYW1lXCI+
PC9pZnJhbWU+IiwgbnVsbHB0cik7CiAgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7
CiB9Ci0jZW5kaWYgLy8gUExBVEZPUk0oR1RLKQogCiB2b2lkIGJlZm9yZUFsbCgpCiB7CkBAIC00
MDcsOSArNDU5LDkgQEAgdm9pZCBiZWZvcmVBbGwoKQogICAgIGlmICghYnVzLT5ydW4oKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgLy8gRklYTUU6IFVzZSBKU0MgQVBJIGluIHRoZSBleHRlbnNp
b24gdG8gZ2V0IHRoZSB0aXRsZSBmcm9tIEphdmFTY3JpcHQuCi0jaWYgUExBVEZPUk0oR1RLKQog
ICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktpdFdlYkV4dGVuc2lvbiIsICJkb20tZG9jdW1lbnQt
dGl0bGUiLCB0ZXN0V2ViRXh0ZW5zaW9uR2V0VGl0bGUpOworI2lmIFBMQVRGT1JNKEdUSykKKyAg
ICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRXZWJFeHRlbnNpb24iLCAiZG9tLWlucHV0LWVsZW1l
bnQtaXMtdXNlci1lZGl0ZWQiLCB0ZXN0V2ViRXh0ZW5zaW9uSW5wdXRFbGVtZW50SXNVc2VyRWRp
dGVkKTsKICNlbmRpZgogICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktpdFdlYkV4dGVuc2lvbiIs
ICJkb2N1bWVudC1sb2FkZWQtc2lnbmFsIiwgdGVzdERvY3VtZW50TG9hZGVkU2lnbmFsKTsKICAg
ICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgIndlYi1wcm9jZXNzLWNyYXNoZWQi
LCB0ZXN0V2ViS2l0V2ViVmlld1Byb2Nlc3NDcmFzaGVkKTsKQEAgLTQxNyw5ICs0NjksOSBAQCB2
b2lkIGJlZm9yZUFsbCgpCiAgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0V2ViRXh0ZW5zaW9u
IiwgImlzb2xhdGVkLXdvcmxkIiwgdGVzdFdlYkV4dGVuc2lvbklzb2xhdGVkV29ybGQpOwogI2lm
IFBMQVRGT1JNKEdUSykKICAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImlu
c3RhbGwtbWlzc2luZy1wbHVnaW5zLXBlcm1pc3Npb24tcmVxdWVzdCIsIHRlc3RJbnN0YWxsTWlz
c2luZ1BsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdCk7CisjZW5kaWYKICAgICBXZWJWaWV3VGVzdDo6
YWRkKCJXZWJLaXRXZWJFeHRlbnNpb24iLCAiZm9ybS1jb250cm9scy1hc3NvY2lhdGVkLXNpZ25h
bCIsIHRlc3RXZWJFeHRlbnNpb25Gb3JtQ29udHJvbHNBc3NvY2lhdGVkKTsKICAgICBGb3JtU3Vi
bWlzc2lvblRlc3Q6OmFkZCgiV2ViS2l0V2ViRXh0ZW5zaW9uIiwgImZvcm0tc3VibWlzc2lvbi1z
dGVwcyIsIHRlc3RXZWJFeHRlbnNpb25Gb3JtU3VibWlzc2lvblN0ZXBzKTsKLSNlbmRpZgogfQog
CiB2b2lkIGFmdGVyQWxsKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0R0xpYi9XZWJFeHRlbnNpb25UZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R0xpYi9XZWJFeHRlbnNpb25UZXN0LmNwcAppbmRleCA0NzQ1MTFlZGI4Mi4uYjVl
ZmNkOWQ5NjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xp
Yi9XZWJFeHRlbnNpb25UZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdEdMaWIvV2ViRXh0ZW5zaW9uVGVzdC5jcHAKQEAgLTQ3LDYgKzQ3LDExIEBAIHN0YXRpYyBj
b25zdCBjaGFyIGludHJvc3BlY3Rpb25YTUxbXSA9CiAgICAgIiAgIDxhcmcgdHlwZT0ndCcgbmFt
ZT0ncGFnZUlEJyBkaXJlY3Rpb249J2luJy8+IgogICAgICIgICA8YXJnIHR5cGU9J3MnIG5hbWU9
J3RpdGxlJyBkaXJlY3Rpb249J291dCcvPiIKICAgICAiICA8L21ldGhvZD4iCisgICAgIiAgPG1l
dGhvZCBuYW1lPSdJbnB1dEVsZW1lbnRJc1VzZXJFZGl0ZWQnPiIKKyAgICAiICAgIDxhcmcgdHlw
ZT0ndCcgbmFtZT0ncGFnZUlEJyBkaXJlY3Rpb249J2luJy8+IgorICAgICIgICAgPGFyZyB0eXBl
PSdzJyBuYW1lPSdlbGVtZW50SUQnIGRpcmVjdGlvbj0naW4nLz4iCisgICAgIiAgICA8YXJnIHR5
cGU9J2InIG5hbWU9J2lzVXNlckVkaXRlZCcgZGlyZWN0aW9uPSdvdXQnLz4iCisgICAgIiAgPC9t
ZXRob2Q+IgogICAgICIgIDxtZXRob2QgbmFtZT0nQWJvcnRQcm9jZXNzJz4iCiAgICAgIiAgPC9t
ZXRob2Q+IgogICAgICIgIDxtZXRob2QgbmFtZT0nUnVuSmF2YVNjcmlwdEluSXNvbGF0ZWRXb3Js
ZCc+IgpAQCAtODYsMTEgKzkxLDkgQEAgc3RhdGljIGNvbnN0IGNoYXIgaW50cm9zcGVjdGlvblhN
TFtdID0KIHR5cGVkZWYgZW51bSB7CiAgICAgRG9jdW1lbnRMb2FkZWRTaWduYWwsCiAgICAgVVJJ
Q2hhbmdlZFNpZ25hbCwKLSNpZiBQTEFURk9STShHVEspCiAgICAgRm9ybUNvbnRyb2xzQXNzb2Np
YXRlZFNpZ25hbCwKICAgICBGb3JtU3VibWlzc2lvbldpbGxTZW5kRE9NRXZlbnRTaWduYWwsCiAg
ICAgRm9ybVN1Ym1pc3Npb25XaWxsQ29tcGxldGVTaWduYWwsCi0jZW5kaWYKIH0gRGVsYXllZFNp
Z25hbFR5cGU7CiAKIHN0cnVjdCBEZWxheWVkU2lnbmFsIHsKQEAgLTE0Miw4ICsxNDUsMTAgQEAg
c3RhdGljIHZvaWQgZG9jdW1lbnRMb2FkZWRDYWxsYmFjayhXZWJLaXRXZWJQYWdlKiB3ZWJQYWdl
LCBXZWJLaXRXZWJFeHRlbnNpb24qIGUKIHsKICNpZiBQTEFURk9STShHVEspCiAgICAgV2ViS2l0
RE9NRG9jdW1lbnQqIGRvY3VtZW50ID0gd2Via2l0X3dlYl9wYWdlX2dldF9kb21fZG9jdW1lbnQo
d2ViUGFnZSk7CisgICAgR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CiAgICAgR1Jl
ZlB0cjxXZWJLaXRET01ET01XaW5kb3c+IHdpbmRvdyA9IGFkb3B0R1JlZih3ZWJraXRfZG9tX2Rv
Y3VtZW50X2dldF9kZWZhdWx0X3ZpZXcoZG9jdW1lbnQpKTsKICAgICB3ZWJraXRfZG9tX2RvbV93
aW5kb3dfd2Via2l0X21lc3NhZ2VfaGFuZGxlcnNfcG9zdF9tZXNzYWdlKHdpbmRvdy5nZXQoKSwg
ImRvbSIsICJEb2N1bWVudExvYWRlZCIpOworICAgIEdfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FU
SU9OUzsKICNlbmRpZgogCiAgICAgZ3BvaW50ZXIgZGF0YSA9IGdfb2JqZWN0X2dldF9kYXRhKEdf
T0JKRUNUKGV4dGVuc2lvbiksICJkYnVzLWNvbm5lY3Rpb24iKTsKQEAgLTIxNyw4ICsyMjIsNiBA
QCBzdGF0aWMgZ2Jvb2xlYW4gc2VuZFJlcXVlc3RDYWxsYmFjayhXZWJLaXRXZWJQYWdlKiwgV2Vi
S2l0VVJJUmVxdWVzdCogcmVxdWVzdCwgVwogICAgIHJldHVybiByZXR1cm5WYWx1ZTsKIH0KIAot
Ly8gRklYTUU6IGZpZ3VyZSBvdXQgd2hhdCB0byBkbyB3aXRoIFdlYktpdFdlYkhpdFRlc3RSZXN1
bHQgaW4gV1BFLgotI2lmIFBMQVRGT1JNKEdUSykKIHN0YXRpYyBHVmFyaWFudCogc2VyaWFsaXpl
Q29udGV4dE1lbnUoV2ViS2l0Q29udGV4dE1lbnUqIG1lbnUpCiB7CiAgICAgR1ZhcmlhbnRCdWls
ZGVyIGJ1aWxkZXI7CkBAIC0yMjksMTUgKzIzMiwyMyBAQCBzdGF0aWMgR1ZhcmlhbnQqIHNlcmlh
bGl6ZUNvbnRleHRNZW51KFdlYktpdENvbnRleHRNZW51KiBtZW51KQogICAgIHJldHVybiBnX3Zh
cmlhbnRfYnVpbGRlcl9lbmQoJmJ1aWxkZXIpOwogfQogCi1zdGF0aWMgR1ZhcmlhbnQqIHNlcmlh
bGl6ZU5vZGUoV2ViS2l0RE9NTm9kZSogbm9kZSkKK3N0YXRpYyBHVmFyaWFudCogc2VyaWFsaXpl
Tm9kZShKU0NWYWx1ZSogbm9kZSkKIHsKICAgICBHVmFyaWFudEJ1aWxkZXIgYnVpbGRlcjsKICAg
ICBnX3ZhcmlhbnRfYnVpbGRlcl9pbml0KCZidWlsZGVyLCBHX1ZBUklBTlRfVFlQRV9BUlJBWSk7
Ci0gICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZidWlsZGVyLCAie3N2fSIsICJOYW1lIiwgZ192
YXJpYW50X25ld190YWtlX3N0cmluZyh3ZWJraXRfZG9tX25vZGVfZ2V0X25vZGVfbmFtZShub2Rl
KSkpOwotICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAiVHlwZSIs
IGdfdmFyaWFudF9uZXdfdWludDMyKHdlYmtpdF9kb21fbm9kZV9nZXRfbm9kZV90eXBlKG5vZGUp
KSk7Ci0gICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZidWlsZGVyLCAie3N2fSIsICJDb250ZW50
cyIsIGdfdmFyaWFudF9uZXdfdGFrZV9zdHJpbmcod2Via2l0X2RvbV9ub2RlX2dldF90ZXh0X2Nv
bnRlbnQobm9kZSkpKTsKLSAgICBXZWJLaXRET01Ob2RlKiBwYXJlbnQgPSB3ZWJraXRfZG9tX25v
ZGVfZ2V0X3BhcmVudF9ub2RlKG5vZGUpOwotICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVp
bGRlciwgIntzdn0iLCAiUGFyZW50IiwgcGFyZW50ID8gZ192YXJpYW50X25ld190YWtlX3N0cmlu
Zyh3ZWJraXRfZG9tX25vZGVfZ2V0X25vZGVfbmFtZShwYXJlbnQpKSA6IGdfdmFyaWFudF9uZXdf
c3RyaW5nKCJST09UIikpOworICAgIEdSZWZQdHI8SlNDVmFsdWU+IHZhbHVlID0gYWRvcHRHUmVm
KGpzY192YWx1ZV9vYmplY3RfZ2V0X3Byb3BlcnR5KG5vZGUsICJub2RlTmFtZSIpKTsKKyAgICBn
X3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmJ1aWxkZXIsICJ7c3Z9IiwgIk5hbWUiLCBnX3ZhcmlhbnRf
bmV3X3Rha2Vfc3RyaW5nKGpzY192YWx1ZV90b19zdHJpbmcodmFsdWUuZ2V0KCkpKSk7CisgICAg
dmFsdWUgPSBhZG9wdEdSZWYoanNjX3ZhbHVlX29iamVjdF9nZXRfcHJvcGVydHkobm9kZSwgIm5v
ZGVUeXBlIikpOworICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAi
VHlwZSIsIGdfdmFyaWFudF9uZXdfdWludDMyKGpzY192YWx1ZV90b19pbnQzMih2YWx1ZS5nZXQo
KSkpKTsKKyAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfdmFsdWVfb2JqZWN0X2dldF9wcm9wZXJ0
eShub2RlLCAidGV4dENvbnRlbnQiKSk7CisgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZidWls
ZGVyLCAie3N2fSIsICJDb250ZW50cyIsIGdfdmFyaWFudF9uZXdfdGFrZV9zdHJpbmcoanNjX3Zh
bHVlX3RvX3N0cmluZyh2YWx1ZS5nZXQoKSkpKTsKKyAgICB2YWx1ZSA9IGFkb3B0R1JlZihqc2Nf
dmFsdWVfb2JqZWN0X2dldF9wcm9wZXJ0eShub2RlLCAicGFyZW50Tm9kZSIpKTsKKyAgICBpZiAo
anNjX3ZhbHVlX2lzX251bGwodmFsdWUuZ2V0KCkpKQorICAgICAgICBnX3ZhcmlhbnRfYnVpbGRl
cl9hZGQoJmJ1aWxkZXIsICJ7c3Z9IiwgIlBhcmVudCIsIGdfdmFyaWFudF9uZXdfc3RyaW5nKCJS
T09UIikpOworICAgIGVsc2UgeworICAgICAgICB2YWx1ZSA9IGpzY192YWx1ZV9vYmplY3RfZ2V0
X3Byb3BlcnR5KHZhbHVlLmdldCgpLCAibm9kZU5hbWUiKTsKKyAgICAgICAgZ192YXJpYW50X2J1
aWxkZXJfYWRkKCZidWlsZGVyLCAie3N2fSIsICJQYXJlbnQiLCBnX3ZhcmlhbnRfbmV3X3Rha2Vf
c3RyaW5nKGpzY192YWx1ZV90b19zdHJpbmcodmFsdWUuZ2V0KCkpKSk7CisgICAgfQogICAgIHJl
dHVybiBnX3ZhcmlhbnRfYnVpbGRlcl9lbmQoJmJ1aWxkZXIpOwogfQogCkBAIC0yNjcsMTMgKzI3
OCwxNCBAQCBzdGF0aWMgZ2Jvb2xlYW4gY29udGV4dE1lbnVDYWxsYmFjayhXZWJLaXRXZWJQYWdl
KiBwYWdlLCBXZWJLaXRDb250ZXh0TWVudSogbWVudQogICAgIGlmICghZ19zdHJjbXAwKHBhZ2VV
UkksICJDb250ZXh0TWVudVRlc3ROb2RlIikpIHsKICAgICAgICAgV2ViS2l0RE9NTm9kZSogbm9k
ZSA9IHdlYmtpdF93ZWJfaGl0X3Rlc3RfcmVzdWx0X2dldF9ub2RlKGhpdFRlc3RSZXN1bHQpOwog
ICAgICAgICBnX2Fzc2VydChXRUJLSVRfRE9NX0lTX05PREUobm9kZSkpOwotICAgICAgICB3ZWJr
aXRfY29udGV4dF9tZW51X3NldF91c2VyX2RhdGEobWVudSwgc2VyaWFsaXplTm9kZShub2RlKSk7
CisgICAgICAgIGF1dG8qIGZyYW1lID0gd2Via2l0X3dlYl9wYWdlX2dldF9tYWluX2ZyYW1lKHBh
Z2UpOworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBqc05vZGUgPSBhZG9wdEdSZWYod2Via2l0
X2ZyYW1lX2dldF9qc192YWx1ZV9mb3JfZG9tX29iamVjdChmcmFtZSwgV0VCS0lUX0RPTV9PQkpF
Q1Qobm9kZSkpKTsKKyAgICAgICAgd2Via2l0X2NvbnRleHRfbWVudV9zZXRfdXNlcl9kYXRhKG1l
bnUsIHNlcmlhbGl6ZU5vZGUoanNOb2RlLmdldCgpKSk7CiAgICAgICAgIHJldHVybiBUUlVFOwog
ICAgIH0KIAogICAgIHJldHVybiBGQUxTRTsKIH0KLSNlbmRpZiAvLyBQTEFURk9STShHVEspCiAK
IHN0YXRpYyB2b2lkIGNvbnNvbGVNZXNzYWdlU2VudENhbGxiYWNrKFdlYktpdFdlYlBhZ2UqIHdl
YlBhZ2UsIFdlYktpdENvbnNvbGVNZXNzYWdlKiBjb25zb2xlTWVzc2FnZSkKIHsKQEAgLTI4Miwz
MCArMjk0LDE1IEBAIHN0YXRpYyB2b2lkIGNvbnNvbGVNZXNzYWdlU2VudENhbGxiYWNrKFdlYktp
dFdlYlBhZ2UqIHdlYlBhZ2UsIFdlYktpdENvbnNvbGVNZXNzCiAgICAgICAgIHdlYmtpdF9jb25z
b2xlX21lc3NhZ2VfZ2V0X2xldmVsKGNvbnNvbGVNZXNzYWdlKSwgd2Via2l0X2NvbnNvbGVfbWVz
c2FnZV9nZXRfdGV4dChjb25zb2xlTWVzc2FnZSksCiAgICAgICAgIHdlYmtpdF9jb25zb2xlX21l
c3NhZ2VfZ2V0X2xpbmUoY29uc29sZU1lc3NhZ2UpLCB3ZWJraXRfY29uc29sZV9tZXNzYWdlX2dl
dF9zb3VyY2VfaWQoY29uc29sZU1lc3NhZ2UpKTsKICAgICBHVW5pcXVlUHRyPGNoYXI+IG1lc3Nh
Z2VTdHJpbmcoZ192YXJpYW50X3ByaW50KHZhcmlhbnQuZ2V0KCksIEZBTFNFKSk7Ci0jaWYgUExB
VEZPUk0oR1RLKQotICAgIEdSZWZQdHI8V2ViS2l0RE9NRE9NV2luZG93PiB3aW5kb3cgPSBhZG9w
dEdSZWYod2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZGVmYXVsdF92aWV3KHdlYmtpdF93ZWJfcGFn
ZV9nZXRfZG9tX2RvY3VtZW50KHdlYlBhZ2UpKSk7Ci0gICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9J
U19ET01fV0lORE9XKHdpbmRvdy5nZXQoKSkpOwotICAgIHdlYmtpdF9kb21fZG9tX3dpbmRvd193
ZWJraXRfbWVzc2FnZV9oYW5kbGVyc19wb3N0X21lc3NhZ2Uod2luZG93LmdldCgpLCAiY29uc29s
ZSIsIG1lc3NhZ2VTdHJpbmcuZ2V0KCkpOwotI2Vsc2UKLSAgICBHVW5pcXVlUHRyPGNoYXI+IGVz
Y2FwZWRNZXNzYWdlU3RyaW5nKHN0YXRpY19jYXN0PGNoYXIqPihnX21hbGxvYyhzdHJsZW4obWVz
c2FnZVN0cmluZy5nZXQoKSkgKiAyICsgMSkpKTsKLSAgICBjaGFyKiBzcmMgPSBtZXNzYWdlU3Ry
aW5nLmdldCgpOwotICAgIGNoYXIqIGRlc3QgPSBlc2NhcGVkTWVzc2FnZVN0cmluZy5nZXQoKTsK
LSAgICB3aGlsZSAoKnNyYykgewotICAgICAgICBpZiAoKnNyYyA9PSAnIicpIHsKLSAgICAgICAg
ICAgICpkZXN0KysgPSAnXFwnOwotICAgICAgICAgICAgKmRlc3QrKyA9ICciJzsKLSAgICAgICAg
fSBlbHNlCi0gICAgICAgICAgICAqZGVzdCsrID0gKnNyYzsKLSAgICAgICAgKytzcmM7Ci0gICAg
fQotICAgICpkZXN0ID0gJ1wwJzsKLSAgICBHVW5pcXVlUHRyPGNoYXI+IHNjcmlwdChnX3N0cmR1
cF9wcmludGYoIndpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLmNvbnNvbGUucG9zdE1lc3Nh
Z2UoXCIlc1wiKTsiLCBlc2NhcGVkTWVzc2FnZVN0cmluZy5nZXQoKSkpOwogICAgIEdSZWZQdHI8
SlNDQ29udGV4dD4ganNDb250ZXh0ID0gYWRvcHRHUmVmKHdlYmtpdF9mcmFtZV9nZXRfanNfY29u
dGV4dCh3ZWJraXRfd2ViX3BhZ2VfZ2V0X21haW5fZnJhbWUod2ViUGFnZSkpKTsKLSAgICBHUmVm
UHRyPEpTQ1ZhbHVlPiByZXN1bHQgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoanND
b250ZXh0LmdldCgpLCBzY3JpcHQuZ2V0KCkpKTsKLSNlbmRpZgorICAgIEdSZWZQdHI8SlNDVmFs
dWU+IGNvbnNvbGUgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoanNDb250ZXh0Lmdl
dCgpLCAid2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMuY29uc29sZSIpKTsKKyAgICBnX2Fz
c2VydChKU0NfSVNfVkFMVUUoY29uc29sZS5nZXQoKSkpOworICAgIGlmIChqc2NfdmFsdWVfaXNf
b2JqZWN0KGNvbnNvbGUuZ2V0KCkpKSB7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3Vs
dCA9IGFkb3B0R1JlZihqc2NfdmFsdWVfb2JqZWN0X2ludm9rZV9tZXRob2QoY29uc29sZS5nZXQo
KSwgInBvc3RNZXNzYWdlIiwgR19UWVBFX1NUUklORywgbWVzc2FnZVN0cmluZy5nZXQoKSwgR19U
WVBFX05PTkUpKTsKKyAgICAgICAgZ19hc3NlcnQoSlNDX0lTX1ZBTFVFKHJlc3VsdC5nZXQoKSkp
OworICAgIH0KIH0KIAotI2lmIFBMQVRGT1JNKEdUSykKIHN0YXRpYyB2b2lkIGVtaXRGb3JtQ29u
dHJvbHNBc3NvY2lhdGVkKEdEQnVzQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgY29uc3QgY2hhciog
Zm9ybUlkcykKIHsKICAgICBib29sIG9rID0gZ19kYnVzX2Nvbm5lY3Rpb25fZW1pdF9zaWduYWwo
CkBAIC0zMjEsMTMgKzMxOCwxNyBAQCBzdGF0aWMgdm9pZCBlbWl0Rm9ybUNvbnRyb2xzQXNzb2Np
YXRlZChHREJ1c0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IGNoYXIqCiAKIHN0YXRpYyB2
b2lkIGZvcm1Db250cm9sc0Fzc29jaWF0ZWRDYWxsYmFjayhXZWJLaXRXZWJQYWdlKiB3ZWJQYWdl
LCBHUHRyQXJyYXkqIGZvcm1FbGVtZW50cywgV2ViS2l0V2ViRXh0ZW5zaW9uKiBleHRlbnNpb24p
CiB7CisgICAgYXV0byogZnJhbWUgPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X21haW5fZnJhbWUod2Vi
UGFnZSk7CiAgICAgR1N0cmluZyogZm9ybUlkc0J1aWxkZXIgPSBnX3N0cmluZ19uZXcobnVsbHB0
cik7CiAgICAgZm9yIChndWludCBpID0gMDsgaSA8IGZvcm1FbGVtZW50cy0+bGVuOyArK2kpIHsK
ICAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19FTEVNRU5UKGdfcHRyX2FycmF5X2luZGV4
KGZvcm1FbGVtZW50cywgaSkpKTsKLSAgICAgICAgYXV0byBkb21FbGVtZW50ID0gV0VCS0lUX0RP
TV9FTEVNRU5UKGdfcHRyX2FycmF5X2luZGV4KGZvcm1FbGVtZW50cywgaSkpOwotICAgICAgICBH
VW5pcXVlUHRyPGNoYXI+IGVsZW1lbnRJRCh3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2lkKGRvbUVs
ZW1lbnQpKTsKLSAgICAgICAgaWYgKGVsZW1lbnRJRCkKLSAgICAgICAgICAgIGdfc3RyaW5nX2Fw
cGVuZChmb3JtSWRzQnVpbGRlciwgZWxlbWVudElELmdldCgpKTsKKyAgICAgICAgR1JlZlB0cjxK
U0NWYWx1ZT4gdmFsdWUgPSBhZG9wdEdSZWYod2Via2l0X2ZyYW1lX2dldF9qc192YWx1ZV9mb3Jf
ZG9tX29iamVjdChmcmFtZSwgV0VCS0lUX0RPTV9PQkpFQ1QoZ19wdHJfYXJyYXlfaW5kZXgoZm9y
bUVsZW1lbnRzLCBpKSkpKTsKKyAgICAgICAgZ19hc3NlcnQoSlNDX0lTX1ZBTFVFKHZhbHVlLmdl
dCgpKSk7CisgICAgICAgIGdfYXNzZXJ0KGpzY192YWx1ZV9pc19vYmplY3QodmFsdWUuZ2V0KCkp
KTsKKyAgICAgICAgZ19hc3NlcnQoanNjX3ZhbHVlX29iamVjdF9pc19pbnN0YW5jZV9vZih2YWx1
ZS5nZXQoKSwgIkVsZW1lbnQiKSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IGlkVmFsdWUg
PSBhZG9wdEdSZWYoanNjX3ZhbHVlX29iamVjdF9nZXRfcHJvcGVydHkodmFsdWUuZ2V0KCksICJp
ZCIpKTsKKyAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBlbGVtZW50SUQoanNjX3ZhbHVlX3RvX3N0
cmluZyhpZFZhbHVlLmdldCgpKSk7CisgICAgICAgIGdfc3RyaW5nX2FwcGVuZChmb3JtSWRzQnVp
bGRlciwgZWxlbWVudElELmdldCgpKTsKICAgICB9CiAgICAgaWYgKCFmb3JtSWRzQnVpbGRlci0+
bGVuKSB7CiAgICAgICAgIGdfc3RyaW5nX2ZyZWUoZm9ybUlkc0J1aWxkZXIsIFRSVUUpOwpAQCAt
MzgxLDggKzM4MiwxOCBAQCBzdGF0aWMgdm9pZCBoYW5kbGVGb3JtU3VibWlzc2lvbkNhbGxiYWNr
KFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2UsIERlbGF5ZWRTaWduYWxUeQogCiBzdGF0aWMgdm9pZCB3
aWxsU3VibWl0Rm9ybUNhbGxiYWNrKFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2UsIFdlYktpdERPTUVs
ZW1lbnQqIGZvcm1FbGVtZW50LCBXZWJLaXRGb3JtU3VibWlzc2lvblN0ZXAgc3RlcCwgV2ViS2l0
RnJhbWUqIHNvdXJjZUZyYW1lLCBXZWJLaXRGcmFtZSogdGFyZ2V0RnJhbWUsIEdQdHJBcnJheSog
dGV4dEZpZWxkTmFtZXMsIEdQdHJBcnJheSogdGV4dEZpZWxkVmFsdWVzLCBXZWJLaXRXZWJFeHRl
bnNpb24qIGV4dGVuc2lvbikKIHsKKyNpZiBQTEFURk9STShHVEspCisgICAgR19HTlVDX0JFR0lO
X0lHTk9SRV9ERVBSRUNBVElPTlM7CiAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19IVE1MX0ZP
Uk1fRUxFTUVOVChmb3JtRWxlbWVudCkpOwotICAgIEdVbmlxdWVQdHI8Y2hhcj4gZm9ybUlEKHdl
YmtpdF9kb21fZWxlbWVudF9nZXRfaWQoZm9ybUVsZW1lbnQpKTsKKyAgICBHX0dOVUNfRU5EX0lH
Tk9SRV9ERVBSRUNBVElPTlM7CisjZW5kaWYKKyAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBqc0Zvcm1F
bGVtZW50ID0gYWRvcHRHUmVmKHdlYmtpdF9mcmFtZV9nZXRfanNfdmFsdWVfZm9yX2RvbV9vYmpl
Y3Qod2Via2l0X3dlYl9wYWdlX2dldF9tYWluX2ZyYW1lKHdlYlBhZ2UpLCBXRUJLSVRfRE9NX09C
SkVDVChmb3JtRWxlbWVudCkpKTsKKyAgICBnX2Fzc2VydChKU0NfSVNfVkFMVUUoanNGb3JtRWxl
bWVudC5nZXQoKSkpOworICAgIGdfYXNzZXJ0KGpzY192YWx1ZV9pc19vYmplY3QoanNGb3JtRWxl
bWVudC5nZXQoKSkpOworICAgIGdfYXNzZXJ0KGpzY192YWx1ZV9vYmplY3RfaXNfaW5zdGFuY2Vf
b2YoanNGb3JtRWxlbWVudC5nZXQoKSwgIkhUTUxGb3JtRWxlbWVudCIpKTsKKyAgICBHUmVmUHRy
PEpTQ1ZhbHVlPiBpZFZhbHVlID0gYWRvcHRHUmVmKGpzY192YWx1ZV9vYmplY3RfZ2V0X3Byb3Bl
cnR5KGpzRm9ybUVsZW1lbnQuZ2V0KCksICJpZCIpKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGZv
cm1JRChqc2NfdmFsdWVfdG9fc3RyaW5nKGlkVmFsdWUuZ2V0KCkpKTsKKwogICAgIHN3aXRjaCAo
c3RlcCkgewogICAgIGNhc2UgV0VCS0lUX0ZPUk1fU1VCTUlTU0lPTl9XSUxMX1NFTkRfRE9NX0VW
RU5UOgogICAgICAgICBoYW5kbGVGb3JtU3VibWlzc2lvbkNhbGxiYWNrKHdlYlBhZ2UsIEZvcm1T
dWJtaXNzaW9uV2lsbFNlbmRET01FdmVudFNpZ25hbCwgIkZvcm1TdWJtaXNzaW9uV2lsbFNlbmRE
T01FdmVudCIsIGZvcm1JRC5nZXQoKSwgc291cmNlRnJhbWUsIHRhcmdldEZyYW1lLCB0ZXh0Rmll
bGROYW1lcywgdGV4dEZpZWxkVmFsdWVzLCBleHRlbnNpb24pOwpAQCAtMzk0LDcgKzQwNSw2IEBA
IHN0YXRpYyB2b2lkIHdpbGxTdWJtaXRGb3JtQ2FsbGJhY2soV2ViS2l0V2ViUGFnZSogd2ViUGFn
ZSwgV2ViS2l0RE9NRWxlbWVudCogZm9yCiAgICAgICAgIGdfYXNzZXJ0X25vdF9yZWFjaGVkKCk7
CiAgICAgfQogfQotI2VuZGlmCiAKIHN0YXRpYyB2b2lkIHBhZ2VDcmVhdGVkQ2FsbGJhY2soV2Vi
S2l0V2ViRXh0ZW5zaW9uKiBleHRlbnNpb24sIFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2UsIGdwb2lu
dGVyKQogewpAQCAtNDAyLDExICs0MTIsOSBAQCBzdGF0aWMgdm9pZCBwYWdlQ3JlYXRlZENhbGxi
YWNrKFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uLCBXZWJLaXRXZWJQYWdlKiB3ZQogICAg
IGdfc2lnbmFsX2Nvbm5lY3Qod2ViUGFnZSwgIm5vdGlmeTo6dXJpIiwgR19DQUxMQkFDSyh1cmlD
aGFuZ2VkQ2FsbGJhY2spLCBleHRlbnNpb24pOwogICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2ViUGFn
ZSwgInNlbmQtcmVxdWVzdCIsIEdfQ0FMTEJBQ0soc2VuZFJlcXVlc3RDYWxsYmFjayksIG51bGxw
dHIpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2ViUGFnZSwgImNvbnNvbGUtbWVzc2FnZS1zZW50
IiwgR19DQUxMQkFDSyhjb25zb2xlTWVzc2FnZVNlbnRDYWxsYmFjayksIG51bGxwdHIpOwotI2lm
IFBMQVRGT1JNKEdUSykKICAgICBnX3NpZ25hbF9jb25uZWN0KHdlYlBhZ2UsICJjb250ZXh0LW1l
bnUiLCBHX0NBTExCQUNLKGNvbnRleHRNZW51Q2FsbGJhY2spLCBudWxscHRyKTsKICAgICBnX3Np
Z25hbF9jb25uZWN0KHdlYlBhZ2UsICJmb3JtLWNvbnRyb2xzLWFzc29jaWF0ZWQiLCBHX0NBTExC
QUNLKGZvcm1Db250cm9sc0Fzc29jaWF0ZWRDYWxsYmFjayksIGV4dGVuc2lvbik7CiAgICAgZ19z
aWduYWxfY29ubmVjdCh3ZWJQYWdlLCAid2lsbC1zdWJtaXQtZm9ybSIsIEdfQ0FMTEJBQ0sod2ls
bFN1Ym1pdEZvcm1DYWxsYmFjayksIGV4dGVuc2lvbik7Ci0jZW5kaWYKIH0KIAogc3RhdGljIGNo
YXIqIGVjaG9DYWxsYmFjayhjb25zdCBjaGFyKiBtZXNzYWdlKQpAQCAtNDQ4LDE0ICs0NTYsMjYg
QEAgc3RhdGljIHZvaWQgbWV0aG9kQ2FsbENhbGxiYWNrKEdEQnVzQ29ubmVjdGlvbiogY29ubmVj
dGlvbiwgY29uc3QgY2hhciogc2VuZGVyLAogICAgICAgICBpZiAoIXBhZ2UpCiAgICAgICAgICAg
ICByZXR1cm47CiAKLSNpZiBQTEFURk9STShHVEspCi0gICAgICAgIFdlYktpdERPTURvY3VtZW50
KiBkb2N1bWVudCA9IHdlYmtpdF93ZWJfcGFnZV9nZXRfZG9tX2RvY3VtZW50KHBhZ2UpOwotICAg
ICAgICBHVW5pcXVlUHRyPGNoYXI+IHRpdGxlKHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3RpdGxl
KGRvY3VtZW50KSk7CisgICAgICAgIEdSZWZQdHI8SlNDQ29udGV4dD4ganNDb250ZXh0ID0gYWRv
cHRHUmVmKHdlYmtpdF9mcmFtZV9nZXRfanNfY29udGV4dCh3ZWJraXRfd2ViX3BhZ2VfZ2V0X21h
aW5fZnJhbWUocGFnZSkpKTsKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4gdGl0bGVWYWx1ZSA9
IGFkb3B0R1JlZihqc2NfY29udGV4dF9ldmFsdWF0ZShqc0NvbnRleHQuZ2V0KCksICJkb2N1bWVu
dC50aXRsZSIpKTsKKyAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiB0aXRsZShqc2NfdmFsdWVfdG9f
c3RyaW5nKHRpdGxlVmFsdWUuZ2V0KCkpKTsKICAgICAgICAgZ19kYnVzX21ldGhvZF9pbnZvY2F0
aW9uX3JldHVybl92YWx1ZShpbnZvY2F0aW9uLCBnX3ZhcmlhbnRfbmV3KCIocykiLCB0aXRsZS5n
ZXQoKSkpOwotI2VsaWYgUExBVEZPUk0oV1BFKQotICAgICAgICAvLyBGSVhNRTogVXNlIEpTQyBB
UEkgdG8gZ2V0IHRoZSB0aXRsZSBmcm9tIEphdmFTY3JpcHQuCi0gICAgICAgIGdfZGJ1c19tZXRo
b2RfaW52b2NhdGlvbl9yZXR1cm5fdmFsdWUoaW52b2NhdGlvbiwgZ192YXJpYW50X25ldygiKHMp
IiwgIiIpKTsKLSNlbmRpZgorICAgIH0gZWxzZSBpZiAoIWdfc3RyY21wMChtZXRob2ROYW1lLCAi
SW5wdXRFbGVtZW50SXNVc2VyRWRpdGVkIikpIHsKKyAgICAgICAgdWludDY0X3QgcGFnZUlEOwor
ICAgICAgICBjb25zdCBjaGFyKiBlbGVtZW50SUQ7CisgICAgICAgIGdfdmFyaWFudF9nZXQocGFy
YW1ldGVycywgIih0JnMpIiwgJnBhZ2VJRCwgJmVsZW1lbnRJRCk7CisgICAgICAgIFdlYktpdFdl
YlBhZ2UqIHBhZ2UgPSBnZXRXZWJQYWdlKFdFQktJVF9XRUJfRVhURU5TSU9OKHVzZXJEYXRhKSwg
cGFnZUlELCBpbnZvY2F0aW9uKTsKKyAgICAgICAgaWYgKCFwYWdlKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIFdlYktpdERPTURvY3VtZW50KiBkb2N1bWVudCA9IHdlYmtpdF93ZWJf
cGFnZV9nZXRfZG9tX2RvY3VtZW50KHBhZ2UpOworICAgICAgICBXZWJLaXRGcmFtZSogZnJhbWUg
PSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X21haW5fZnJhbWUocGFnZSk7CisgICAgICAgIEdSZWZQdHI8
SlNDQ29udGV4dD4ganNDb250ZXh0ID0gYWRvcHRHUmVmKHdlYmtpdF9mcmFtZV9nZXRfanNfY29u
dGV4dChmcmFtZSkpOworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBqc0RvY3VtZW50ID0gYWRv
cHRHUmVmKHdlYmtpdF9mcmFtZV9nZXRfanNfdmFsdWVfZm9yX2RvbV9vYmplY3QoZnJhbWUsIFdF
QktJVF9ET01fT0JKRUNUKGRvY3VtZW50KSkpOworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBq
c0lucHV0RWxlbWVudCA9IGFkb3B0R1JlZihqc2NfdmFsdWVfb2JqZWN0X2ludm9rZV9tZXRob2Qo
anNEb2N1bWVudC5nZXQoKSwgImdldEVsZW1lbnRCeUlkIiwgR19UWVBFX1NUUklORywgZWxlbWVu
dElELCBHX1RZUEVfTk9ORSkpOworICAgICAgICBXZWJLaXRET01Ob2RlKiBub2RlID0gd2Via2l0
X2RvbV9ub2RlX2Zvcl9qc192YWx1ZShqc0lucHV0RWxlbWVudC5nZXQoKSk7CisgICAgICAgIGdi
b29sZWFuIGlzVXNlckVkaXRlZCA9IHdlYmtpdF9kb21fZWxlbWVudF9odG1sX2lucHV0X2VsZW1l
bnRfaXNfdXNlcl9lZGl0ZWQoV0VCS0lUX0RPTV9FTEVNRU5UKG5vZGUpKTsKKyAgICAgICAgZ19k
YnVzX21ldGhvZF9pbnZvY2F0aW9uX3JldHVybl92YWx1ZShpbnZvY2F0aW9uLCBnX3ZhcmlhbnRf
bmV3KCIoYikiLCBpc1VzZXJFZGl0ZWQpKTsKICAgICB9IGVsc2UgaWYgKCFnX3N0cmNtcDAobWV0
aG9kTmFtZSwgIlJ1bkphdmFTY3JpcHRJbklzb2xhdGVkV29ybGQiKSkgewogICAgICAgICB1aW50
NjRfdCBwYWdlSUQ7CiAgICAgICAgIGNvbnN0IGNoYXIqIHNjcmlwdDsKQEAgLTUyMyw3ICs1NDMs
NiBAQCBzdGF0aWMgdm9pZCBidXNBY3F1aXJlZENhbGxiYWNrKEdEQnVzQ29ubmVjdGlvbiogY29u
bmVjdGlvbiwgY29uc3QgY2hhciogbmFtZSwgZwogICAgICAgICBjYXNlIFVSSUNoYW5nZWRTaWdu
YWw6CiAgICAgICAgICAgICBlbWl0VVJJQ2hhbmdlZChjb25uZWN0aW9uLCBkZWxheWVkU2lnbmFs
LnN0ci5kYXRhKCkpOwogICAgICAgICAgICAgYnJlYWs7Ci0jaWYgUExBVEZPUk0oR1RLKQogICAg
ICAgICBjYXNlIEZvcm1Db250cm9sc0Fzc29jaWF0ZWRTaWduYWw6CiAgICAgICAgICAgICBlbWl0
Rm9ybUNvbnRyb2xzQXNzb2NpYXRlZChjb25uZWN0aW9uLCBkZWxheWVkU2lnbmFsLnN0ci5kYXRh
KCkpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC01MzMsOCArNTUyLDYgQEAgc3RhdGljIHZvaWQg
YnVzQWNxdWlyZWRDYWxsYmFjayhHREJ1c0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IGNo
YXIqIG5hbWUsIGcKICAgICAgICAgY2FzZSBGb3JtU3VibWlzc2lvbldpbGxTZW5kRE9NRXZlbnRT
aWduYWw6CiAgICAgICAgICAgICBlbWl0Rm9ybVN1Ym1pc3Npb25FdmVudChjb25uZWN0aW9uLCAi
Rm9ybVN1Ym1pc3Npb25XaWxsU2VuZERPTUV2ZW50IiwgZGVsYXllZFNpZ25hbC5zdHIuZGF0YSgp
LCBkZWxheWVkU2lnbmFsLnN0cjIuZGF0YSgpLCBkZWxheWVkU2lnbmFsLnN0cjMuZGF0YSgpLCBk
ZWxheWVkU2lnbmFsLmIsIGRlbGF5ZWRTaWduYWwuYjIpOwogICAgICAgICAgICAgYnJlYWs7Ci0j
ZW5kaWYKLSAgICAgICAgICAgIGdfYXNzZXJ0X25vdF9yZWFjaGVkKCk7CiAgICAgICAgIH0KICAg
ICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIv
V2ViUHJvY2Vzc1Rlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGli
L1dlYlByb2Nlc3NUZXN0LmNwcAppbmRleCAyMzBmZThiNGM1Ni4uMzAyZjU3NjRkOGQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9XZWJQcm9jZXNzVGVz
dC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1dlYlByb2Nl
c3NUZXN0LmNwcApAQCAtMzYsNiArMzYsMTkgQEAgc3RhdGljIFRlc3RzTWFwJiB0ZXN0c01hcCgp
CiAgICAgcmV0dXJuIHNfdGVzdHNNYXA7CiB9CiAKK3N0YXRpYyB2b2lkIGNoZWNrTGVha3MoKQor
eworICAgIGlmIChzX3dhdGNoZWRPYmplY3RzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgZ19wcmludCgiTGVha2VkIG9iamVjdHMgaW4gV2ViUHJvY2VzczoiKTsKKyAgICBmb3Ig
KGNvbnN0IGF1dG8gb2JqZWN0IDogc193YXRjaGVkT2JqZWN0cykKKyAgICAgICAgZ19wcmludCgi
ICVzKCVwKSIsIGdfdHlwZV9uYW1lX2Zyb21faW5zdGFuY2UocmVpbnRlcnByZXRfY2FzdDxHVHlw
ZUluc3RhbmNlKj4ob2JqZWN0KSksIG9iamVjdCk7CisgICAgZ19wcmludCgiXG4iKTsKKworICAg
IGdfYXNzZXJ0KHNfd2F0Y2hlZE9iamVjdHMuaXNFbXB0eSgpKTsKK30KKwogdm9pZCBXZWJQcm9j
ZXNzVGVzdDo6YWRkKGNvbnN0IFN0cmluZyYgdGVzdE5hbWUsIHN0ZDo6ZnVuY3Rpb248c3RkOjp1
bmlxdWVfcHRyPFdlYlByb2Nlc3NUZXN0PiAoKT4gY2xvc3VyZSkKIHsKICAgICB0ZXN0c01hcCgp
LmFkZCh0ZXN0TmFtZSwgV1RGTW92ZShjbG9zdXJlKSk7CkBAIC02OCwxNiArODEsNyBAQCBzdGF0
aWMgZ2Jvb2xlYW4gcnVuVGVzdChXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlLCBjb25zdCBjaGFyKiB0
ZXN0UGF0aCkKIHN0YXRpYyB2b2lkIHdlYlByb2Nlc3NUZXN0UnVubmVyRmluYWxpemUoV2ViS2l0
V2ViUGFnZSogd2ViUGFnZSkKIHsKICAgICBnX29iamVjdF91bnJlZih3ZWJQYWdlKTsKLQotICAg
IGlmIChzX3dhdGNoZWRPYmplY3RzLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
Z19wcmludCgiTGVha2VkIG9iamVjdHMgaW4gV2ViUHJvY2VzczoiKTsKLSAgICBmb3IgKGNvbnN0
IGF1dG8gb2JqZWN0IDogc193YXRjaGVkT2JqZWN0cykKLSAgICAgICAgZ19wcmludCgiICVzKCVw
KSIsIGdfdHlwZV9uYW1lX2Zyb21faW5zdGFuY2UocmVpbnRlcnByZXRfY2FzdDxHVHlwZUluc3Rh
bmNlKj4ob2JqZWN0KSksIG9iamVjdCk7Ci0gICAgZ19wcmludCgiXG4iKTsKLQotICAgIGdfYXNz
ZXJ0KHNfd2F0Y2hlZE9iamVjdHMuaXNFbXB0eSgpKTsKKyAgICBjaGVja0xlYWtzKCk7CiB9CiAK
IHN0YXRpYyB2b2lkIHdpbmRvd09iamVjdENsZWFyZWRDYWxsYmFjayhXZWJLaXRTY3JpcHRXb3Js
ZCogd29ybGQsIFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2UsIFdlYktpdEZyYW1lKiBmcmFtZSwgV2Vi
S2l0V2ViRXh0ZW5zaW9uKiBleHRlbnNpb24pCkBAIC0xMDAsMyArMTA0LDggQEAgZXh0ZXJuICJD
IiB2b2lkIHdlYmtpdF93ZWJfZXh0ZW5zaW9uX2luaXRpYWxpemUoV2ViS2l0V2ViRXh0ZW5zaW9u
KiBleHRlbnNpb24pCiAgICAgd2Via2l0V2ViRXh0ZW5zaW9uU2V0R2FyYmFnZUNvbGxlY3RPblBh
Z2VEZXN0cm95KGV4dGVuc2lvbik7CiAgICAgZ19zaWduYWxfY29ubmVjdCh3ZWJraXRfc2NyaXB0
X3dvcmxkX2dldF9kZWZhdWx0KCksICJ3aW5kb3ctb2JqZWN0LWNsZWFyZWQiLCBHX0NBTExCQUNL
KHdpbmRvd09iamVjdENsZWFyZWRDYWxsYmFjayksIGV4dGVuc2lvbik7CiB9CisKK3N0YXRpYyB2
b2lkIF9fYXR0cmlidXRlX18oKGRlc3RydWN0b3IpKSBjaGVja0xlYWtzQXRFeGl0KCkKK3sKKyAg
ICBjaGVja0xlYWtzKCk7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdEd0ay9BdXRvY2xlYW51cHNUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R3RrL0F1dG9jbGVhbnVwc1Rlc3QuY3BwCmluZGV4IGEyMGNiZmQ3MzMxLi4wZWRl
NzJmYWM0NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsv
QXV0b2NsZWFudXBzVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRHdGsvQXV0b2NsZWFudXBzVGVzdC5jcHAKQEAgLTQyLDEzICs0MiwxNyBAQCBwcml2YXRlOgog
ICAgICAgICBhc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKGRv
Y3VtZW50KSk7CiAKICAgICAgICAgLy8gVHJhbnNmZXIgZnVsbAorICAgICAgICBHX0dOVUNfQkVH
SU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKICAgICAgICAgZ19hdXRvcHRyKFdlYktpdERPTURPTVdp
bmRvdykgd2luZG93ID0gd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZGVmYXVsdF92aWV3KGRvY3Vt
ZW50KTsKICAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19ET01fV0lORE9XKHdpbmRvdykp
OworICAgICAgICBHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CiAgICAgICAgIGFzc2Vy
dE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1Qod2luZG93KSk7CiAKICAg
ICAgICAgLy8gVHJhbnNmZXIgZnVsbAorICAgICAgICBHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJF
Q0FUSU9OUzsKICAgICAgICAgZ19hdXRvcHRyKFdlYktpdERPTVJhbmdlKSByYW5nZSA9IHdlYmtp
dF9kb21fZG9jdW1lbnRfY3JlYXRlX3JhbmdlKGRvY3VtZW50KTsKICAgICAgICAgZ19hc3NlcnQo
V0VCS0lUX0RPTV9JU19SQU5HRShyYW5nZSkpOworICAgICAgICBHX0dOVUNfRU5EX0lHTk9SRV9E
RVBSRUNBVElPTlM7CiAgICAgICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNo
ZXMoR19PQkpFQ1QocmFuZ2UpKTsKIAogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0RPTUNsaWVudFJlY3RUZXN0LmNw
cCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0RPTUNsaWVudFJlY3RUZXN0
LmNwcAppbmRleCBjYTU5MmMzYWJjZi4uMjBjZGZlNWVmOTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0RPTUNsaWVudFJlY3RUZXN0LmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9ET01DbGllbnRSZWN0VGVzdC5jcHAK
QEAgLTIzLDYgKzIzLDggQEAKICNpbmNsdWRlIDxnaW8vZ2lvLmg+CiAjaW5jbHVkZSA8d2Via2l0
Mi93ZWJraXQtd2ViLWV4dGVuc2lvbi5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FU
SU9OUzsKKwogY2xhc3MgV2ViS2l0RE9NQ2xpZW50UmVjdFRlc3QgOiBwdWJsaWMgV2ViUHJvY2Vz
c1Rlc3QgewogcHVibGljOgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8V2ViUHJvY2Vzc1Rl
c3Q+IGNyZWF0ZSgpIHsgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXRET01DbGllbnRSZWN0
VGVzdD4obmV3IFdlYktpdERPTUNsaWVudFJlY3RUZXN0KCkpOyB9CkBAIC0xMDMsMyArMTA1LDUg
QEAgc3RhdGljIHZvaWQgX19hdHRyaWJ1dGVfXygoY29uc3RydWN0b3IpKSByZWdpc3RlclRlc3Rz
KCkKICAgICBSRUdJU1RFUl9URVNUKFdlYktpdERPTUNsaWVudFJlY3RUZXN0LCAiV2ViS2l0RE9N
Q2xpZW50UmVjdC9kaXYtYm91bmRpbmctY2xpZW50LXJlY3QtcG9zaXRpb24iKTsKICAgICBSRUdJ
U1RFUl9URVNUKFdlYktpdERPTUNsaWVudFJlY3RUZXN0LCAiV2ViS2l0RE9NQ2xpZW50UmVjdC9k
aXYtY2xpZW50LXJlY3RzLXBvc2l0aW9uLWFuZC1sZW5ndGgiKTsKIH0KKworR19HTlVDX0VORF9J
R05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRHdGsvRE9NTm9kZUZpbHRlclRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRHdGsvRE9NTm9kZUZpbHRlclRlc3QuY3BwCmluZGV4IDBmMThkMWYzMTg0Li44
OTcwODM2ZjUwYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
dGsvRE9NTm9kZUZpbHRlclRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0R3RrL0RPTU5vZGVGaWx0ZXJUZXN0LmNwcApAQCAtMjQsNiArMjQsOCBAQAogI2luY2x1
ZGUgPHdlYmtpdDIvd2Via2l0LXdlYi1leHRlbnNpb24uaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9H
VW5pcXVlUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiB0eXBl
ZGVmIHN0cnVjdCBfV2ViS2l0Tm9kZUZpbHRlciB7CiAgICAgR09iamVjdCBwYXJlbnQ7CiB9IFdl
YktpdE5vZGVGaWx0ZXI7CkBAIC0yMDEsNCArMjAzLDQgQEAgc3RhdGljIHZvaWQgX19hdHRyaWJ1
dGVfXygoY29uc3RydWN0b3IpKSByZWdpc3RlclRlc3RzKCkKICAgICBSRUdJU1RFUl9URVNUKFdl
YktpdERPTU5vZGVGaWx0ZXJUZXN0LCAiV2ViS2l0RE9NTm9kZUZpbHRlci9ub2RlLWl0ZXJhdG9y
Iik7CiB9CiAKLQorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9NTm9kZVRlc3QuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9NTm9kZVRlc3QuY3BwCmluZGV4IDlk
NTdiNDJkMmMxLi43OWQ3NmFlN2QyMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRHdGsvRE9NTm9kZVRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0R3RrL0RPTU5vZGVUZXN0LmNwcApAQCAtMjQsNiArMjQsOCBAQAogI2luY2x1
ZGUgPHdlYmtpdDIvd2Via2l0LXdlYi1leHRlbnNpb24uaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9H
VW5pcXVlUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBjbGFz
cyBXZWJLaXRET01Ob2RlVGVzdCA6IHB1YmxpYyBXZWJQcm9jZXNzVGVzdCB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxXZWJQcm9jZXNzVGVzdD4gY3JlYXRlKCkgeyByZXR1
cm4gc3RkOjp1bmlxdWVfcHRyPFdlYktpdERPTU5vZGVUZXN0PihuZXcgV2ViS2l0RE9NTm9kZVRl
c3QoKSk7IH0KQEAgLTI5Nyw0ICsyOTksNCBAQCBzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fKChj
b25zdHJ1Y3RvcikpIHJlZ2lzdGVyVGVzdHMoKQogICAgIFJFR0lTVEVSX1RFU1QoV2ViS2l0RE9N
Tm9kZVRlc3QsICJXZWJLaXRET01Ob2RlL2RvbS1jYWNoZSIpOwogfQogCi0KK0dfR05VQ19FTkRf
SUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R3RrL0RPTVhQYXRoTlNSZXNvbHZlclRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9NWFBhdGhOU1Jlc29sdmVyVGVzdC5jcHAKaW5kZXggMTEw
Njc3ZTQxNDIuLmViYjhmMzkyNGEyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdEd0ay9ET01YUGF0aE5TUmVzb2x2ZXJUZXN0LmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9ET01YUGF0aE5TUmVzb2x2ZXJUZXN0LmNwcApAQCAt
MjQsNiArMjQsOCBAQAogI2luY2x1ZGUgPHdlYmtpdDIvd2Via2l0LXdlYi1leHRlbnNpb24uaD4K
ICNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVf
REVQUkVDQVRJT05TOworCiB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0WFBhdGhOU1Jlc29sdmVyIHsK
ICAgICBHT2JqZWN0IHBhcmVudDsKIH0gV2ViS2l0WFBhdGhOU1Jlc29sdmVyOwpAQCAtMTIyLDMg
KzEyNCw1IEBAIHN0YXRpYyB2b2lkIF9fYXR0cmlidXRlX18oKGNvbnN0cnVjdG9yKSkgcmVnaXN0
ZXJUZXN0cygpCiAgICAgUkVHSVNURVJfVEVTVChXZWJLaXRET01YUGF0aE5TUmVzb2x2ZXJUZXN0
LCAiV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyL25hdGl2ZSIpOwogICAgIFJFR0lTVEVSX1RFU1Qo
V2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyVGVzdCwgIldlYktpdERPTVhQYXRoTlNSZXNvbHZlci9j
dXN0b20iKTsKIH0KKworR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRWRpdG9yVGVzdC5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9FZGl0b3JUZXN0LmNwcApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzIyZDhhYjM4OTIuLjAwMDAwMDAwMDAwCi0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0VkaXRvclRlc3QuY3BwCisrKyAvZGV2
L251bGwKQEAgLTEsMTMwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgUmVkIEhh
dCBJbmMuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2luY2x1ZGUgIldlYlByb2Nlc3NUZXN0Lmgi
Ci0KLSNkZWZpbmUgV0VCS0lUX0RPTV9VU0VfVU5TVEFCTEVfQVBJCi0jaW5jbHVkZSA8d2Via2l0
ZG9tL1dlYktpdERPTURPTVNlbGVjdGlvbi5oPgotI2luY2x1ZGUgPHdlYmtpdGRvbS9XZWJLaXRE
T01ET01XaW5kb3dVbnN0YWJsZS5oPgotCi1jbGFzcyBXZWJLaXRXZWJFZGl0b3JUZXN0IDogcHVi
bGljIFdlYlByb2Nlc3NUZXN0IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PFdlYlByb2Nlc3NUZXN0PiBjcmVhdGUoKSB7IHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8V2ViUHJv
Y2Vzc1Rlc3Q+KG5ldyBXZWJLaXRXZWJFZGl0b3JUZXN0KCkpOyB9Ci0KLXByaXZhdGU6Ci0gICAg
c3RhdGljIHZvaWQgc2VsZWN0aW9uQ2hhbmdlZENhbGxiYWNrKGJvb2wqIHNlbGVjdGlvbkNoYW5n
ZWQpCi0gICAgewotICAgICAgICAqc2VsZWN0aW9uQ2hhbmdlZCA9IHRydWU7Ci0gICAgfQotCi0g
ICAgdm9pZCB0ZXN0U2VsZWN0aW9uU2VsZWN0QWxsKFdlYktpdFdlYlBhZ2UqIHBhZ2UpCi0gICAg
ewotICAgICAgICBXZWJLaXRET01Eb2N1bWVudCogZG9jdW1lbnQgPSB3ZWJraXRfd2ViX3BhZ2Vf
Z2V0X2RvbV9kb2N1bWVudChwYWdlKTsKLSAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19E
T0NVTUVOVChkb2N1bWVudCkpOwotCi0gICAgICAgIHdlYmtpdF9kb21fZG9jdW1lbnRfZXhlY19j
b21tYW5kKGRvY3VtZW50LCAiU2VsZWN0QWxsIiwgZmFsc2UsICIiKTsKLSAgICB9Ci0KLSAgICB2
b2lkIHRlc3RTZWxlY3Rpb25Db2xsYXBzZShXZWJLaXRXZWJQYWdlKiBwYWdlKQotICAgIHsKLSAg
ICAgICAgV2ViS2l0RE9NRG9jdW1lbnQqIGRvY3VtZW50ID0gd2Via2l0X3dlYl9wYWdlX2dldF9k
b21fZG9jdW1lbnQocGFnZSk7Ci0gICAgICAgIGdfYXNzZXJ0KFdFQktJVF9ET01fSVNfRE9DVU1F
TlQoZG9jdW1lbnQpKTsKLSAgICAgICAgR1JlZlB0cjxXZWJLaXRET01ET01XaW5kb3c+IGRvbVdp
bmRvdyA9IGFkb3B0R1JlZih3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kZWZhdWx0X3ZpZXcoZG9j
dW1lbnQpKTsKLSAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19ET01fV0lORE9XKGRvbVdp
bmRvdy5nZXQoKSkpOwotICAgICAgICBHUmVmUHRyPFdlYktpdERPTURPTVNlbGVjdGlvbj4gZG9t
U2VsZWN0aW9uID0gYWRvcHRHUmVmKHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2VsZWN0aW9u
KGRvbVdpbmRvdy5nZXQoKSkpOwotICAgICAgICBnX2Fzc2VydChXRUJLSVRfRE9NX0lTX0RPTV9T
RUxFQ1RJT04oZG9tU2VsZWN0aW9uLmdldCgpKSk7Ci0KLSAgICAgICAgd2Via2l0X2RvbV9kb21f
c2VsZWN0aW9uX2NvbGxhcHNlX3RvX3N0YXJ0KGRvbVNlbGVjdGlvbi5nZXQoKSwgbnVsbHB0cik7
Ci0gICAgfQotCi0gICAgdm9pZCB0ZXN0U2VsZWN0aW9uTW9kaWZ5TW92ZShXZWJLaXRXZWJQYWdl
KiBwYWdlKQotICAgIHsKLSAgICAgICAgV2ViS2l0RE9NRG9jdW1lbnQqIGRvY3VtZW50ID0gd2Vi
a2l0X3dlYl9wYWdlX2dldF9kb21fZG9jdW1lbnQocGFnZSk7Ci0gICAgICAgIGdfYXNzZXJ0KFdF
QktJVF9ET01fSVNfRE9DVU1FTlQoZG9jdW1lbnQpKTsKLSAgICAgICAgR1JlZlB0cjxXZWJLaXRE
T01ET01XaW5kb3c+IGRvbVdpbmRvdyA9IGFkb3B0R1JlZih3ZWJraXRfZG9tX2RvY3VtZW50X2dl
dF9kZWZhdWx0X3ZpZXcoZG9jdW1lbnQpKTsKLSAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9J
U19ET01fV0lORE9XKGRvbVdpbmRvdy5nZXQoKSkpOwotICAgICAgICBHUmVmUHRyPFdlYktpdERP
TURPTVNlbGVjdGlvbj4gZG9tU2VsZWN0aW9uID0gYWRvcHRHUmVmKHdlYmtpdF9kb21fZG9tX3dp
bmRvd19nZXRfc2VsZWN0aW9uKGRvbVdpbmRvdy5nZXQoKSkpOwotICAgICAgICBnX2Fzc2VydChX
RUJLSVRfRE9NX0lTX0RPTV9TRUxFQ1RJT04oZG9tU2VsZWN0aW9uLmdldCgpKSk7Ci0KLSAgICAg
ICAgd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX21vZGlmeShkb21TZWxlY3Rpb24uZ2V0KCksICJt
b3ZlIiwgImZvcndhcmQiLCAiY2hhcmFjdGVyIik7Ci0gICAgfQotCi0gICAgdm9pZCB0ZXN0U2Vs
ZWN0aW9uTW9kaWZ5RXh0ZW5kKFdlYktpdFdlYlBhZ2UqIHBhZ2UpCi0gICAgewotICAgICAgICBX
ZWJLaXRET01Eb2N1bWVudCogZG9jdW1lbnQgPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2RvbV9kb2N1
bWVudChwYWdlKTsKLSAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChkb2N1
bWVudCkpOwotICAgICAgICBHUmVmUHRyPFdlYktpdERPTURPTVdpbmRvdz4gZG9tV2luZG93ID0g
YWRvcHRHUmVmKHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2RlZmF1bHRfdmlldyhkb2N1bWVudCkp
OwotICAgICAgICBnX2Fzc2VydChXRUJLSVRfRE9NX0lTX0RPTV9XSU5ET1coZG9tV2luZG93Lmdl
dCgpKSk7Ci0gICAgICAgIEdSZWZQdHI8V2ViS2l0RE9NRE9NU2VsZWN0aW9uPiBkb21TZWxlY3Rp
b24gPSBhZG9wdEdSZWYod2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zZWxlY3Rpb24oZG9tV2lu
ZG93LmdldCgpKSk7Ci0gICAgICAgIGdfYXNzZXJ0KFdFQktJVF9ET01fSVNfRE9NX1NFTEVDVElP
Tihkb21TZWxlY3Rpb24uZ2V0KCkpKTsKLQotICAgICAgICB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rp
b25fbW9kaWZ5KGRvbVNlbGVjdGlvbi5nZXQoKSwgImV4dGVuZCIsICJmb3J3YXJkIiwgIndvcmQi
KTsKLSAgICB9Ci0KLSAgICB2b2lkIHRlc3RTZWxlY3Rpb25VbnNlbGVjdChXZWJLaXRXZWJQYWdl
KiBwYWdlKQotICAgIHsKLSAgICAgICAgV2ViS2l0RE9NRG9jdW1lbnQqIGRvY3VtZW50ID0gd2Vi
a2l0X3dlYl9wYWdlX2dldF9kb21fZG9jdW1lbnQocGFnZSk7Ci0gICAgICAgIGdfYXNzZXJ0KFdF
QktJVF9ET01fSVNfRE9DVU1FTlQoZG9jdW1lbnQpKTsKLQotICAgICAgICB3ZWJraXRfZG9tX2Rv
Y3VtZW50X2V4ZWNfY29tbWFuZChkb2N1bWVudCwgIlVuc2VsZWN0IiwgZmFsc2UsICIiKTsKLSAg
ICB9Ci0KLSAgICBib29sIHJ1blRlc3QoY29uc3QgY2hhciogdGVzdE5hbWUsIFdlYktpdFdlYlBh
Z2UqIHBhZ2UpIG92ZXJyaWRlCi0gICAgewotICAgICAgICBpZiAoIXN0cmNtcCh0ZXN0TmFtZSwg
InNlbGVjdGlvbi1jaGFuZ2VkIikpIHsKLSAgICAgICAgICAgIGJvb2wgc2VsZWN0aW9uQ2hhbmdl
ZCA9IGZhbHNlOwotCi0gICAgICAgICAgICBXZWJLaXRXZWJFZGl0b3IqIGVkaXRvciA9IHdlYmtp
dF93ZWJfcGFnZV9nZXRfZWRpdG9yKHBhZ2UpOwotICAgICAgICAgICAgZ19hc3NlcnQoV0VCS0lU
X0lTX1dFQl9FRElUT1IoZWRpdG9yKSk7Ci0gICAgICAgICAgICBhc3NlcnRPYmplY3RJc0RlbGV0
ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKGVkaXRvcikpOwotICAgICAgICAgICAgZ19zaWdu
YWxfY29ubmVjdF9zd2FwcGVkKGVkaXRvciwgInNlbGVjdGlvbi1jaGFuZ2VkIiwgR19DQUxMQkFD
SyhzZWxlY3Rpb25DaGFuZ2VkQ2FsbGJhY2spLCAmc2VsZWN0aW9uQ2hhbmdlZCk7Ci0KLSAgICAg
ICAgICAgIHRlc3RTZWxlY3Rpb25TZWxlY3RBbGwocGFnZSk7Ci0gICAgICAgICAgICBnX2Fzc2Vy
dChzZWxlY3Rpb25DaGFuZ2VkKTsKLQotICAgICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IGZh
bHNlOwotICAgICAgICAgICAgdGVzdFNlbGVjdGlvbkNvbGxhcHNlKHBhZ2UpOwotICAgICAgICAg
ICAgZ19hc3NlcnQoc2VsZWN0aW9uQ2hhbmdlZCk7Ci0KLSAgICAgICAgICAgIHNlbGVjdGlvbkNo
YW5nZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIHRlc3RTZWxlY3Rpb25Nb2RpZnlNb3ZlKHBhZ2Up
OwotICAgICAgICAgICAgZ19hc3NlcnQoc2VsZWN0aW9uQ2hhbmdlZCk7Ci0KLSAgICAgICAgICAg
IHNlbGVjdGlvbkNoYW5nZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIHRlc3RTZWxlY3Rpb25Nb2Rp
ZnlFeHRlbmQocGFnZSk7Ci0gICAgICAgICAgICBnX2Fzc2VydChzZWxlY3Rpb25DaGFuZ2VkKTsK
LQotICAgICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IGZhbHNlOwotICAgICAgICAgICAgdGVz
dFNlbGVjdGlvblVuc2VsZWN0KHBhZ2UpOwotICAgICAgICAgICAgZ19hc3NlcnQoc2VsZWN0aW9u
Q2hhbmdlZCk7Ci0KLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0KLSAgICAg
ICAgZ19hc3NlcnRfbm90X3JlYWNoZWQoKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0K
LX07Ci0KLXN0YXRpYyB2b2lkIF9fYXR0cmlidXRlX18oKGNvbnN0cnVjdG9yKSkgcmVnaXN0ZXJU
ZXN0cygpCi17Ci0gICAgUkVHSVNURVJfVEVTVChXZWJLaXRXZWJFZGl0b3JUZXN0LCAiV2ViS2l0
V2ViRWRpdG9yL3NlbGVjdGlvbi1jaGFuZ2VkIik7Ci19CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2dsaWIvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIv
Q01ha2VMaXN0cy50eHQKaW5kZXggODUwNmYwYWYyODEuLjYxMjNhOWMwZDVlIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9nbGliL0NNYWtlTGlzdHMudHh0CkBAIC0zNiw2ICszNiw4IEBAIHNldChXZWJL
aXRHTGliQVBJVGVzdEV4dGVuc2lvbl9MSUJSQVJJRVMKICkKIAogc2V0KFdlYktpdEdMaWJBUElX
ZWJQcm9jZXNzVGVzdHMKKyAgICAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRHTGliL0RPTUVsZW1lbnRUZXN0LmNwcAorICAgICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvRWRpdG9yVGVzdC5jcHAKICAgICAke1RPT0xTX0RJUn0vVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL0ZyYW1lVGVzdC5jcHAKICAgICAke1RPT0xTX0RJUn0v
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1dlYlByb2Nlc3NUZXN0LmNwcAogKQpAQCAt
MTIyLDYgKzEyNCw3IEBAIEFERF9XSzJfVEVTVChUZXN0Q29va2llTWFuYWdlciAke1RPT0xTX0RJ
Un0vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RDCiBBRERfV0syX1RFU1QoVGVz
dERvd25sb2FkcyAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rl
c3REb3dubG9hZHMuY3BwKQogQUREX1dLMl9URVNUKFRlc3RXZWJLaXRGYXZpY29uRGF0YWJhc2Ug
JHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0RmF2
aWNvbkRhdGFiYXNlLmNwcCkKIEFERF9XSzJfVEVTVChUZXN0V2ViS2l0RmluZENvbnRyb2xsZXIg
JHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0Rmlu
ZENvbnRyb2xsZXIuY3BwKQorQUREX1dLMl9URVNUKFRlc3RFZGl0b3IgJHtUT09MU19ESVJ9L1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0RWRpdG9yLmNwcCkKIEFERF9XSzJfVEVT
VChUZXN0RnJhbWUgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9U
ZXN0RnJhbWUuY3BwKQogQUREX1dLMl9URVNUKFRlc3RMb2FkZXJDbGllbnQgJHtUT09MU19ESVJ9
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0TG9hZGVyQ2xpZW50LmNwcCkKIEFE
RF9XSzJfVEVTVChUZXN0TXVsdGlwcm9jZXNzICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdEdMaWIvVGVzdE11bHRpcHJvY2Vzcy5jcHApCkBAIC0xMzcsMyArMTQwLDQgQEAg
QUREX1dLMl9URVNUKFRlc3RXZWJLaXRXZWJWaWV3ICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvVGVzdFcKIEFERF9XSzJfVEVTVChUZXN0V2ViS2l0VXNlckNvbnRl
bnRNYW5hZ2VyICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVz
dFdlYktpdFVzZXJDb250ZW50TWFuYWdlci5jcHApCiBBRERfV0syX1RFU1QoVGVzdFdlYnNpdGVE
YXRhICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYnNp
dGVEYXRhLmNwcCkKIEFERF9XSzJfVEVTVChUZXN0Q29uc29sZU1lc3NhZ2UgJHtUT09MU19ESVJ9
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0Q29uc29sZU1lc3NhZ2UuY3BwKQor
QUREX1dLMl9URVNUKFRlc3RET01FbGVtZW50ICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdEdMaWIvVGVzdERPTUVsZW1lbnQuY3BwKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9nbGliL1BsYXRmb3JtR1RLLmNtYWtlIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9n
bGliL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGRmNmEyNjdjOTRmLi41YjI5Yjg1Yjg4ZSAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMzAsNyArMzAs
NiBAQCBsaXN0KEFQUEVORCBXZWJLaXRHTGliQVBJV2ViUHJvY2Vzc1Rlc3RzCiAgICAgJHtUT09M
U19ESVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0RPTU5vZGVUZXN0LmNwcAogICAg
ICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9ET01Ob2RlRmlsdGVy
VGVzdC5jcHAKICAgICAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsv
RE9NWFBhdGhOU1Jlc29sdmVyVGVzdC5jcHAKLSAgICAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRHdGsvRWRpdG9yVGVzdC5jcHAKICkKIAogQUREX1dLMl9URVNUKEluc3Bl
Y3RvclRlc3RTZXJ2ZXIgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3Rr
L0luc3BlY3RvclRlc3RTZXJ2ZXIuY3BwKQpAQCAtNDAsNyArMzksNiBAQCBBRERfV0syX1RFU1Qo
VGVzdERPTUNsaWVudFJlY3QgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
R3RrL1Rlc3RETwogQUREX1dLMl9URVNUKFRlc3RET01Ob2RlICR7VE9PTFNfRElSfS9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0RE9NTm9kZS5jcHApCiBBRERfV0syX1RFU1QoVGVz
dERPTU5vZGVGaWx0ZXIgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3Rr
L1Rlc3RET01Ob2RlRmlsdGVyLmNwcCkKIEFERF9XSzJfVEVTVChUZXN0RE9NWFBhdGhOU1Jlc29s
dmVyICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0RE9NWFBh
dGhOU1Jlc29sdmVyLmNwcCkKLUFERF9XSzJfVEVTVChUZXN0RWRpdG9yICR7VE9PTFNfRElSfS9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0RWRpdG9yLmNwcCkKIEFERF9XSzJfVEVT
VChUZXN0SW5zcGVjdG9yICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0
ay9UZXN0SW5zcGVjdG9yLmNwcCkKIEFERF9XSzJfVEVTVChUZXN0SW5zcGVjdG9yU2VydmVyICR7
VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0SW5zcGVjdG9yU2Vy
dmVyLmNwcCkKIEFERF9XSzJfVEVTVChUZXN0T3B0aW9uTWVudSAke1RPT0xTX0RJUn0vVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdE9wdGlvbk1lbnUuY3BwKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1BsYXRmb3JtV1BFLmNtYWtlIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9nbGliL1BsYXRmb3JtV1BFLmNtYWtlCmluZGV4IGI1ZDViZDNmMTYzLi5hZmYzYjM0
ZjVmZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1BsYXRmb3JtV1BFLmNt
YWtlCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAt
OSw2ICs5LDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0R0xpYkFQSVRlc3RzX0lOQ0xVREVfRElSRUNU
T1JJRVMKICAgICAke0RFUklWRURfU09VUkNFU19XUEVfQVBJX0RJUn0KICAgICAke0ZPUldBUkRJ
TkdfSEVBREVSU19XUEVfRElSfQogICAgICR7Rk9SV0FSRElOR19IRUFERVJTX1dQRV9FWFRFTlNJ
T05fRElSfQorICAgICR7Rk9SV0FSRElOR19IRUFERVJTX1dQRV9ET01fRElSfQogICAgICR7VE9P
TFNfRElSfS93cGUvSGVhZGxlc3NWaWV3QmFja2VuZAogKQogCmRpZmYgLS1naXQgYS9Ub29scy9n
dGsvZ2VuZXJhdGUtZ3RrZG9jIGIvVG9vbHMvZ3RrL2dlbmVyYXRlLWd0a2RvYwppbmRleCAwYzYy
OGMzYmI3Ni4uNDVjMjNkZmIxMmYgMTAwNzU1Ci0tLSBhL1Rvb2xzL2d0ay9nZW5lcmF0ZS1ndGtk
b2MKKysrIGIvVG9vbHMvZ3RrL2dlbmVyYXRlLWd0a2RvYwpAQCAtMjA0LDcgKzIwNCw3IEBAIGlm
IF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICAgaWYgc2F3X3dhcm5pbmdzOgogICAgICAgICBz
eXMuZXhpdChzYXdfd2FybmluZ3MpCiAKLSAgICB3ZWJraXRkb21fZ2VuZXJhdG9yID0gZ2V0X2dl
bmVyYXRvcl9mb3JfY29uZmlnKGNvbW1vbi5idWlsZF9wYXRoKCdndGtkb2Mtd2Via2l0ZG9tLmNm
ZycpLCBhcmd1bWVudHMudmlydHVhbF9yb290KQorICAgIHdlYmtpdGRvbV9nZW5lcmF0b3IgPSBn
ZXRfZ2VuZXJhdG9yX2Zvcl9jb25maWcoY29tbW9uLmJ1aWxkX3BhdGgoJ2d0a2RvYy13ZWJraXRk
b20uY2ZnJyksIGFyZ3VtZW50cy52aXJ0dWFsX3Jvb3QsIFtqc2NfZ2VuZXJhdG9yLm1vZHVsZV9u
YW1lXSkKICAgICBpZiBub3Qgd2Via2l0ZG9tX2dlbmVyYXRvcjoKICAgICAgICAgcHJpbnQoImd0
a2RvYy13ZWJraXRkb20uY2ZnIGRvZXMgbm90IGV4aXN0ISBTa2lwcGluZyB0aGF0IGRvY3VtZW50
YXRpb24iKQogICAgICAgICBzeXMuZXhpdCgxKQpAQCAtMjEyLDcgKzIxMiw3IEBAIGlmIF9fbmFt
ZV9fID09ICJfX21haW5fXyI6CiAgICAgaWYgc2F3X3dhcm5pbmdzOgogICAgICAgICBzeXMuZXhp
dChzYXdfd2FybmluZ3MpCiAKLSAgICB3ZWJraXQyX2dlbmVyYXRvciA9IGdldF9nZW5lcmF0b3Jf
Zm9yX2NvbmZpZyhjb21tb24uYnVpbGRfcGF0aCgnZ3RrZG9jLXdlYmtpdDJndGsuY2ZnJyksIGFy
Z3VtZW50cy52aXJ0dWFsX3Jvb3QsIFt3ZWJraXRkb21fZ2VuZXJhdG9yLm1vZHVsZV9uYW1lXSkK
KyAgICB3ZWJraXQyX2dlbmVyYXRvciA9IGdldF9nZW5lcmF0b3JfZm9yX2NvbmZpZyhjb21tb24u
YnVpbGRfcGF0aCgnZ3RrZG9jLXdlYmtpdDJndGsuY2ZnJyksIGFyZ3VtZW50cy52aXJ0dWFsX3Jv
b3QsIFt3ZWJraXRkb21fZ2VuZXJhdG9yLm1vZHVsZV9uYW1lLCBqc2NfZ2VuZXJhdG9yLm1vZHVs
ZV9uYW1lXSkKICAgICBpZiBub3Qgd2Via2l0Ml9nZW5lcmF0b3I6CiAgICAgICAgIHByaW50KCJn
dGtkb2Mtd2Via2l0Mmd0ay5jZmcgZG9lcyBub3QgZXhpc3QhIFNraXBwaW5nIHRoYXQgZG9jdW1l
bnRhdGlvbiIpCiAgICAgICAgIHN5cy5leGl0KDEpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336539</attachid>
            <date>2018-03-26 13:53:06 -0700</date>
            <delta_ts>2018-03-26 13:55:40 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-183448-20180326135315.patch</filename>
            <type>text/plain</type>
            <size>10087797</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5OTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
YzJhMThhYWEzM2Y2YWU4NzA5N2Q5ZTMyZjZmOTI4YmYxODk5ZDJmLi5iZDA3YTVmNzBlOGNjZDEy
YTEyN2U1YWI1NzNkMjczNTZlMzBhMzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMjMgQEAKKzIwMTgtMDMtMjYgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNv
bnkuY29tPgorCisgICAgICAgIEpJVCBjYWxsT3BlcmF0aW9uKCkgbmVlZHMgdG8gc3VwcG9ydCBv
cGVyYXRpb25zIHRoYXQgcmV0dXJuIFNsb3dQYXRoUmV0dXJuVHlwZSBkaWZmZXJlbnRseSBvbiBX
aW5kb3dzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgzNjU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VpdGggTWlsbGVyLgorCisgICAgICAgICog
aml0L0NDYWxsSGVscGVycy5oOgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBlcnM6OkFyZ0NvbGxl
Y3Rpb246OmFyZ0NvdW50KToKKyAgICAgICAgKEpTQzo6Q0NhbGxIZWxwZXJzOjptYXJzaGFsbEFy
Z3VtZW50UmVnaXN0ZXIpOgorICAgICAgICAoSlNDOjpDQ2FsbEhlbHBlcnM6OnNldHVwQXJndW1l
bnRzSW1wbCk6CisgICAgICAgIE9uIFdpbjY0LCBlbnN1cmUgdGhhdCBhcmdDb3VudCBhbHdheXMg
aW5jbHVkZXMgR1BScyBhbmQgRlBScyBhbmQgdGhhdCBjb3VudGluZyBzdGFydHMgZnJvbSAxIGZv
ciBTbG93UGF0aFJldHVyblR5cGUuCisKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAgIChK
U0M6OkpJVDo6Y2FsbE9wZXJhdGlvbik6CisgICAgICAgIChKU0M6OkpJVDo6aXM2NEJpdFR5cGUp
OgorICAgICAgICAoSlNDOjpKSVQ6OmlzNjRCaXRUeXBlPHZvaWQ+KToKKyAgICAgICAgT24gV2lu
NjQsIGVuc3VyZSBzcGVjaWFsIGNhbGwgaXMgdXNlZCBmb3IgU2xvd1BhdGhSZXR1cm5UeXBlLgor
CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuaDoKKyAgICAgICAgVXBkYXRlIGNoYW5nZWQg
dHlwZS4KKworMjAxOC0wMy0yNSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBGaXggdHlwbyBpbiBKU0Mgb3B0aW9uIG5hbWUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDAwMQorCisgICAgICAgIFJldmlld2VkIGJ5
IE1hcmsgTGFtLgorCisgICAgICAgIGVuYWJsZUpJVERlYnVnQXNzZXRpb25zID0+IGVuYWJsZUpJ
VERlYnVnQXNzZXJ0aW9ucy4KKworICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlci5j
cHA6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyOjpqaXRBc3NlcnQpOgorICAgICAgICAq
IHJ1bnRpbWUvT3B0aW9ucy5oOgorCisyMDE4LTAzLTI1ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlA
YXBwbGUuY29tPgorCisgICAgICAgIHIyMjgxNDkgYWNjaWRlbnRhbGx5IHJlbW92ZWQgY29kZSB0
aGF0IHJlc2V0cyBtX2VtcHR5Q3Vyc29yIGF0IHRoZSBlbmQgb2YgYSBHQworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTk1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRmlsaXAgUGl6bG8uCisKKyAgICAgICAgVGhlIHJlbW92YWwgb2YgdGhpcyBsaW5l
IG9mIGNvZGUgd2FzIHVuaW50ZW5kZWQgYW5kIGhhcHBlbmVkIGR1cmluZyBzb21lCisgICAgICAg
IHJlZmFjdG9yaW5nIEZpbCB3YXMgZG9pbmcuIFRoZSBjb25zZXF1ZW5jZSBvZiByZW1vdmluZyB0
aGlzIGxpbmUgb2YgY29kZQorICAgICAgICBpcyB0aGF0IHRoZSBtX2VtcHR5Q3Vyc29yIGJlY2Ft
ZSBhIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZyBpbnRlZ2VyLCBsZWFkaW5nCisgICAgICAgIHRo
ZSBjdXJzb3IgdG8gdXN1YWxseSBiZWluZyBvdXQgb2YgYm91bmRzIG9mIHRoZSBibG9jayByYW5n
ZSAoZGVwZW5kaW5nIG9uCisgICAgICAgIHdoYXQgdGhlIHByb2dyYW0gaXMgZG9pbmcpLiBUaGlz
IG1hZGUgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgZmluZGluZyBhbiBlbXB0eQorICAgICAgICBibG9j
ayB0byBzdGVhbCBhbG1vc3QgYWx3YXlzIGZhaWwuCisKKyAgICAgICAgKiBoZWFwL0Jsb2NrRGly
ZWN0b3J5LmNwcDoKKyAgICAgICAgKEpTQzo6QmxvY2tEaXJlY3Rvcnk6OnByZXBhcmVGb3JBbGxv
Y2F0aW9uKToKKworMjAxOC0wMy0yMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbREZHXSBJbnRyb2R1Y2VzIGZ1c2VkIGNvbXBhcmUgYW5kIGp1bXAK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzEwMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW50
cm9kdWNlcyBvcF9qZXEsIG9wX2puZXEsIG9wX2pzdHJpY3RlcSwgYW5kIG9wX2puc3RyaWN0ZXEu
CisgICAgICAgIEl0IG9mZmVycyAzIGJlbmVmaXQuCisKKyAgICAgICAgMS4gVGhleSBhcmUgaW50
cm9kdWNlZCBkdWUgdG8gdGhlIHNpbWlsYXIgcHVycG9zZSB0byBvcF9qbGVzcyBldGMuIEl0IGFs
aWducworICAgICAgICBvcF9lcSBmYW1pbGllcyB0byBvcF9qbGVzcyBmYW1pbGllcy4KKworICAg
ICAgICAyLiBJdCByZWR1Y2VzIHRoZSBzaXplIG9mIGJ5dGVjb2RlIHRvIHJlcHJlc2VudCB0aGUg
dHlwaWNhbCBjb2RlIHNlcXVlbmNlLgorCisgICAgICAgIDMuIEl0IG9mZmVycyB0aGUgd2F5IHRv
IGZ1c2UgY2hlY2sgYW5kIGp1bXAgaW4gREZHIGNvZGUgZ2VuZXJhdGlvbi4gU2luY2UKKyAgICAg
ICAgd2UgaGF2ZSBNb3ZIaW50IGJldHdlZW4gQnJhbmNoIGFuZCBDb21wYXJlRXEvQ29tcGFyZVN0
cmljdEVxIHByZXZpb3VzbHksCisgICAgICAgIHdlIGNhbm5vdCBkbyB0aGlzIG9wdGltaXphdGlv
bi4gSXQgcmVkdWNlcyB0aGUgbWFjaGluZSBjb2RlIHNpemUgaW4gREZHIHRvby4KKworICAgICAg
ICBJdCBzbGlnaHRseSBpbXByb3ZlcyBPY3RhbmUvYm95ZXIuCisKKyAgICAgICAgICAgIGJveWVy
ICA2LjE4MDM4Ky0wLjA1MDAyICAgIF4gICAgIDYuMDY5OTArLTAuMDQxNzYgICAgICAgXiBkZWZp
bml0ZWx5IDEuMDE4MnggZmFzdGVyCisKKyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZUR1bXBl
ci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlRHVtcGVyPEJsb2NrPjo6ZHVtcEJ5dGVjb2Rl
KToKKyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbjoKKyAgICAgICAgKiBieXRl
Y29kZS9CeXRlY29kZVVzZURlZi5oOgorICAgICAgICAoSlNDOjpjb21wdXRlVXNlc0ZvckJ5dGVj
b2RlT2Zmc2V0KToKKyAgICAgICAgKEpTQzo6Y29tcHV0ZURlZnNGb3JCeXRlY29kZU9mZnNldCk6
CisgICAgICAgICogYnl0ZWNvZGUvT3Bjb2RlLmg6CisgICAgICAgIChKU0M6OmlzQnJhbmNoKToK
KyAgICAgICAgKiBieXRlY29kZS9QcmVjaXNlSnVtcFRhcmdldHNJbmxpbmVzLmg6CisgICAgICAg
IChKU0M6OmV4dHJhY3RTdG9yZWRKdW1wVGFyZ2V0c0ZvckJ5dGVjb2RlT2Zmc2V0KToKKyAgICAg
ICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpC
eXRlY29kZUdlbmVyYXRvcjo6ZW1pdEp1bXBJZlRydWUpOgorICAgICAgICAoSlNDOjpCeXRlY29k
ZUdlbmVyYXRvcjo6ZW1pdEp1bXBJZkZhbHNlKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQ
YXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2Nr
KToKKyAgICAgICAgKiBkZmcvREZHQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpjYXBhYmlsaXR5TGV2ZWwpOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmNwcDoKKyAg
ICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5oOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTdHJp
Y3RFcSk6CisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0
ZUNvbXBpbGVNYWluUGFzcyk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93
Q2FzZXMpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUT3Bjb2Rlcy5j
cHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9qZXEpOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRfb3BfbmVxKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2puZXEpOgorICAgICAg
ICAoSlNDOjpKSVQ6OmNvbXBpbGVPcFN0cmljdEVxKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0
X29wX3N0cmljdGVxKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX25zdHJpY3RlcSk6Cisg
ICAgICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wU3RyaWN0RXFKdW1wKToKKyAgICAgICAgKEpTQzo6
SklUOjplbWl0X29wX2pzdHJpY3RlcSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9qbnN0
cmljdGVxKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9qc3RyaWN0ZXEpOgorICAg
ICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2puc3RyaWN0ZXEpOgorICAgICAgICAoSlNDOjpK
SVQ6OmVtaXRTbG93X29wX2plcSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3Bfam5l
cSk6CisgICAgICAgICogaml0L0pJVE9wY29kZXMzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdFNsb3dfb3BfZXEpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfamVxKToKKyAg
ICAgICAgKEpTQzo6SklUOjpjb21waWxlT3BFcUp1bXBTbG93KToKKyAgICAgICAgKEpTQzo6SklU
OjplbWl0U2xvd19vcF9qZXEpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bfam5lcSk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3Bfam5lcSk6CisgICAgICAgIChKU0M6OkpJVDo6
Y29tcGlsZU9wU3RyaWN0RXEpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bfc3RyaWN0ZXEp
OgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfbnN0cmljdGVxKToKKyAgICAgICAgKEpTQzo6
SklUOjpjb21waWxlT3BTdHJpY3RFcUp1bXApOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bf
anN0cmljdGVxKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2puc3RyaWN0ZXEpOgorICAg
ICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX2pzdHJpY3RlcSk6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdFNsb3dfb3Bfam5zdHJpY3RlcSk6CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMu
Y3BwOgorICAgICAgICAqIGppdC9KSVRPcGVyYXRpb25zLmg6CisgICAgICAgICogbGxpbnQvTExJ
bnRTbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpMTEludDo6TExJTlRfU0xPV19QQVRIX0RF
Q0wpOgorICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmg6CisgICAgICAgICogbGxpbnQv
TG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnBy
ZXRlcjMyXzY0LmFzbToKKyAgICAgICAgKiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyNjQuYXNt
OgorCisyMDE4LTAzLTI0ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgor
CisgICAgICAgIFtKU0NdIEltcHJvdmUgY29uc3RhbnRzIGFuZCBhZGQgY29tbWVudHMgZm9yIENv
ZGVCbG9ja0hhc2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4Mzk4MgorCisgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IE1hcmsgTGFtLgorCisgICAg
ICAgICogYnl0ZWNvZGUvQ29kZUJsb2NrSGFzaC5jcHA6CisgICAgICAgIChKU0M6OkNvZGVCbG9j
a0hhc2g6OkNvZGVCbG9ja0hhc2gpOgorICAgICAgICAqIGJ5dGVjb2RlL1BhcnNlSGFzaC5jcHA6
CisgICAgICAgIChKU0M6OlBhcnNlSGFzaDo6UGFyc2VIYXNoKToKKworMjAxOC0wMy0yNCAgWXVz
dWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbSlNDXSBBZGQg
b3B0aW9ucyB0byByZXBvcnQgcGFyc2luZyBhbmQgYnl0ZWNvZGUgY29tcGlsaW5nIHRpbWVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5ODIKKwor
ICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMg
cmVwb3J0UGFyc2VUaW1lcyBhbmQgcmVwb3J0Qnl0ZWNvZGVDb21waWxlVGltZXMgb3B0aW9ucy4K
KyAgICAgICAgV2hlbiB0aGV5IGFyZSBlbmFibGVkLCBKU0MgcmVwb3J0cyB0aW1lcyBjb25zdW1l
ZCBmb3IgcGFyc2luZyBhbmQgYnl0ZWNvZGUKKyAgICAgICAgY29tcGlsaW5nLgorCisgICAgICAg
ICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBieXRlY29kZS9QYXJzZUhhc2guY3BwOiBBZGRlZC4KKyAg
ICAgICAgKEpTQzo6UGFyc2VIYXNoOjpQYXJzZUhhc2gpOgorICAgICAgICAqIGJ5dGVjb2RlL1Bh
cnNlSGFzaC5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6UGFyc2VIYXNoOjpoYXNoRm9yQ2FsbCBj
b25zdCk6CisgICAgICAgIChKU0M6OlBhcnNlSGFzaDo6aGFzaEZvckNvbnN0cnVjdCBjb25zdCk6
CisgICAgICAgICogYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuY3BwOgorICAg
ICAgICAoSlNDOjpnZW5lcmF0ZVVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2spOgorICAgICAgICAq
IGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpCeXRlY29k
ZUdlbmVyYXRvcjo6Z2VuZXJhdGUpOgorICAgICAgICAqIHBhcnNlci9QYXJzZXIuaDoKKyAgICAg
ICAgKEpTQzo6cGFyc2UpOgorICAgICAgICAqIHJ1bnRpbWUvQ29kZUNhY2hlLmg6CisgICAgICAg
IChKU0M6OmdlbmVyYXRlVW5saW5rZWRDb2RlQmxvY2spOgorICAgICAgICAqIHJ1bnRpbWUvT3B0
aW9ucy5oOgorCisyMDE4LTAzLTI0ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwu
Y29tPgorCisgICAgICAgIFtKSVRdIERyb3AgRU5BQkxFX0pJVF9WRVJCT1NFIGZsYWcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzk4MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgorCisgICAgICAgIEp1c3QgdXNlIEpJVEludGVybmFs
Ojp2ZXJib3NlIHZhbHVlLgorCisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6
OkpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcyk6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0
ZUNvbXBpbGVTbG93Q2FzZXMpOgorICAgICAgICAoSlNDOjpKSVQ6OmxpbmspOgorCisyMDE4LTAz
LTIzICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEZp
eCB0aGUgYnVpbGQgd2l0aCBubyBwYXN0ZWJvYXJkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5NzMKKworICAgICAgICBSZXZpZXdlZCBieSBEYW4g
QmVybnN0ZWluLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWc6CisKKzIwMTgtMDMtMjMgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgorCisg
ICAgICAgIExMSW50IFR5cGVBcnJheSBwb2ludGVyIHBvaXNvbmluZyBzaG91bGQgbm90IHBpY2sg
aXRzIHBvaXNvbiBkeW5hbWljYWxseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4Mzk0MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzg3OTgwMTg+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSkYgQmFzdGllbi4KKworICAgICAgICAxLiBNb3ZlIHRo
ZSBMTEludCBUeXBlZEFycmF5IHVucG9pc29uaW5nIHRvIGp1c3QgYmVmb3JlIHRoZSBhcnJheSBh
Y2Nlc3MgYWZ0ZXIKKyAgICAgICAgICAgYWxsIHRoZSBicmFuY2hlcy4KKyAgICAgICAgMi4gUmVu
YW1lZCBGaXJzdEFycmF5VHlwZSB0byBGaXJzdFR5cGVkQXJyYXlUeXBlIHRvIG1hdGNoIHRoZSBz
eW1ib2wgaW4gQysrIGNvZGUuCisgICAgICAgIDMuIFJlbW92ZSBhIHVzZWxlc3MgaW5zdHJ1Y3Rp
b24gaW4gdGhlIGltcGxlbWVudGF0aW9uIG9mIGVtaXRYODZMZWEgZm9yIGEgZ2xvYmFsCisgICAg
ICAgICAgIGxhYmVsLgorCisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206
CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbToKKyAgICAgICAgKiBv
ZmZsaW5lYXNtL3g4Ni5yYjoKKworMjAxOC0wMy0yMyAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIG1vcmUgc3VwcG9ydCBmb3IgcG9pbnRlciBwcm9maWxpbmcu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5NDMK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM4Nzk5MDY4PgorCisgICAgICAgIFJldmlld2VkIGJ5
IEpGIEJhc3RpZW4uCisKKyAgICAgICAgKiBhc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaDoKKyAg
ICAgICAgKEpTQzo6QVJNNjRBc3NlbWJsZXI6OmxpbmtKdW1wT3JDYWxsKToKKyAgICAgICAgKiBh
c3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpBYnN0cmFj
dE1hY3JvQXNzZW1ibGVyOjpyZXBhdGNoTmVhckNhbGwpOgorICAgICAgICAoSlNDOjpBYnN0cmFj
dE1hY3JvQXNzZW1ibGVyOjp0YWdSZXR1cm5BZGRyZXNzKToKKyAgICAgICAgKEpTQzo6QWJzdHJh
Y3RNYWNyb0Fzc2VtYmxlcjo6dW50YWdSZXR1cm5BZGRyZXNzKToKKworMjAxOC0wMy0yMyAgWXVz
dWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbV1RGXSBBZGQg
c3RhbmRhcmQgY29udGFpbmVycyB3aXRoIEZhc3RBbGxvY2F0b3Igc3BlY2lhbGl6YXRpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzc4OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogYjMvYWlyL3Rlc3Rh
aXIuY3BwOgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
RG91YmxlTGl0ZXJhbENvbXBhcmlzb24pOgorICAgICAgICAoSlNDOjpCMzo6dGVzdEZsb2F0RXF1
YWxPclVub3JkZXJlZEZvbGRpbmdOYU4pOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5oOgorICAg
ICAgICAqIGRmZy9ERkdJbnRlZ2VyQ2hlY2tDb21iaW5pbmdQaGFzZS5jcHA6CisgICAgICAgICog
ZGZnL0RGR09iamVjdEFsbG9jYXRpb25TaW5raW5nUGhhc2UuY3BwOgorICAgICAgICAqIGZ0bC9G
VExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0Iz
Ojpzd2l0Y2hTdHJpbmdTbG93KToKKyAgICAgICAgKiBydW50aW1lL0Z1bmN0aW9uSGFzRXhlY3V0
ZWRDYWNoZS5oOgorICAgICAgICAqIHJ1bnRpbWUvVHlwZUxvY2F0aW9uQ2FjaGUuaDoKKworMjAx
OC0wMy0yMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAg
ICBbRlRMXSBGaXggQXJyYXlQdXNoKEFycmF5U3RvcmFnZSkncyBhYnN0cmFjdCBoZWFwCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODI5NjAKKworICAg
ICAgICBSZXZpZXdlZCBieSBTYWFtIEJhcmF0aS4KKworICAgICAgICBUaGlzIHBhdGNoIGZpeGVz
IEFycmF5UHVzaChBcnJheVN0b3JhZ2UpJ3MgYWJzdHJhY3QgaGVhcC4KKyAgICAgICAgSXQgc2hv
dWxkIGFsd2F5cyB0b3VjaCBBcnJheVN0b3JhZ2VfdmVjdG9yLiBUbyB1bmlmeQorICAgICAgICB2
ZWN0b3Igc2V0dGluZyBjb2RlIGZvciB0aGUgcmVhbCBBcnJheVN0b3JhZ2VfdmVjdG9yIGFuZAor
ICAgICAgICBTY3JhdGNoQnVmZmVyLCB3ZSB1c2UgQXJyYXlTdG9yYWdlX3ZlY3Rvci5hdEFueUlu
ZGV4KCkgdG8KKyAgICAgICAgYW5ub3RhdGUgdGhpcy4KKworICAgICAgICAqIGZ0bC9GVExMb3dl
ckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21w
aWxlQXJyYXlQdXNoKToKKworMjAxOC0wMy0yMyAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGln
YWxpYS5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggZm9yIEdDQyA0LjkgYnVp
bGRzLgorCisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oOiBzdGQ6
OmlzX3RyaXZpYWxseV9jb3B5YWJsZTw+IGlzbid0CisgICAgICAgIHN1cHBvcnRlZCBpbiA0Ljkg
bGlic3RkYysrLCBzbyB3cmFwIHRoZSBzdGF0aWMgYXNzZXJ0IHVzaW5nIGl0IGluIGEKKyAgICAg
ICAgQ09NUElMRVJfU1VQUE9SVFMoKSBtYWNybywgYW5kIHVzZSBfX2lzX3RyaXZpYWxseV9jb3B5
YWJsZSgpIGJ1aWx0aW4sCisgICAgICAgIGFzIGlzIGRvbmUgaW4gYml0d2lzZV9jYXN0KCkgaW4g
U3RkTGliRXh0cmFzLmguCisKKzIwMTgtMDMtMjIgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRv
bkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgV0tfQUxURVJOQVRFX0ZSQU1FV09SS1NfRElS
IGluIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4MzkzMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzg3ODIyNDk+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKzIwMTgtMDMtMjIgIE1hcmsgTGFtICA8bWFyay5s
YW1AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBwbGFjZWhvbGRlciBjYWxsIGFuZCBqdW1wIE1h
Y3JvQXNzZW1ibGVyIGVtaXR0ZXJzIHRoYXQgdGFrZSBQdHJUYWcgaW4gYSByZWdpc3Rlci4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzkxNAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMzg3NjM1MzY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2Fh
bSBCYXJhdGkgYW5kIEpGIEJhc3RpZW4uCisKKyAgICAgICAgVGhpcyBpcyBpbiBwcmVwYXJhdGlv
biBmb3Igc3VwcG9ydGluZyBwb2ludGVyIHByb2ZpbGluZyB3b3JrLgorCisgICAgICAgICogYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVy
QVJNOjpqdW1wKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk06OmNhbGwpOgorICAg
ICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0Lmg6CisgICAgICAgIChKU0M6Ok1h
Y3JvQXNzZW1ibGVyQVJNNjQ6OmNhbGwpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFS
TTY0OjpqdW1wKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oOgor
ICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTXY3OjpqdW1wKToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJBUk12Nzo6Y2FsbCk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyTUlQUy5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6Omp1bXApOgor
ICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlck1JUFM6OmNhbGwpOgorICAgICAgICAqIGFzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlclg4Ni5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlclg4
Njo6Y2FsbCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2OjpqdW1wKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaDoKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJYODZDb21tb246Omp1bXApOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2Vt
Ymxlclg4NkNvbW1vbjo6Y2FsbCk6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
WDg2XzY0Lmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2XzY0OjpjYWxsKToKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZfNjQ6Omp1bXApOgorCiAyMDE4LTAzLTIyICBU
aW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEltcHJvdmUg
cmVhZGFiaWxpdHkgb2YgV2ViQ29yZSdzIE9USEVSX0xERkxBR1MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3
ZWJydGMvQ2hhbmdlTG9nCmluZGV4IGY1MGM2YjNjNDI2NzkyYTEyZmY0OWM3MTdmMThiZWE1ZjVj
ZmZkYWQuLmQ4ZjUwZjUxY2ViN2RjNzRmN2U3ZjhmNmZhYTA5OWJiYzllYjUyZTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2NSBAQAorMjAxOC0wMy0y
NiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubmZAZ21haWwuY29tPgorCisgICAgICAgIE1ha2UgVkNQ
IGVuY29kZXIgdXNhZ2UgY29uZGl0aW9uYWwgb24gdXNpbmcgaW50ZXJuYWwgU0RLCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQwMDkKKworICAgICAg
ICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nk
ay9XZWJLaXQvVmlkZW9Qcm9jZXNzaW5nU29mdExpbmsuaDoKKworMjAxOC0wMy0yMyAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFZD
UCBlbmNvZGVyIG9uIE1hY09TIGFuZCBpT1MKKyAgICAgICAgQnVpbGQgZml4LgorCisgICAgICAg
IFVucmV2aWV3ZWQuCisKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvVmlkZW9Q
cm9jZXNzaW5nU29mdExpbmsuY3BwOgorCisyMDE4LTAzLTIzICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgVkNQIGVuY29kZXIgb24g
TWFjT1MgYW5kIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTgzOTI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAg
ICAgIFNvZnQtTGluayBWaWRlb1Byb2Nlc3NpbmcgZnVuY3Rpb25zIGFuZCB1c2UgdGhlbSBpbiBI
MjY0IGVuY29kZXIuCisgICAgICAgIFRoaXMgaXMgY29uZGl0aW9uYWwgb24gcmVjZW50IE1hY09T
IGFuZCBpT1MgcGxhdGZvcm1zLgorCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0
L0VuY29kZXJVdGlsaXRpZXMuaDogQWRkZWQuCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsv
V2ViS2l0L1ZpZGVvUHJvY2Vzc2luZ1NvZnRMaW5rLmNwcDogQWRkZWQuCisgICAgICAgICogU291
cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1ZpZGVvUHJvY2Vzc2luZ1NvZnRMaW5rLmg6IEFkZGVkLgor
ICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMubW06Cisg
ICAgICAgICh3ZWJydGM6OmNyZWF0ZVZpZGVvVG9vbGJveEVuY29kZXJGYWN0b3J5KToKKyAgICAg
ICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL0ZyYW1ld29yay9DbGFzc2VzL1ZpZGVvVG9vbGJv
eC9SVENWaWRlb0VuY29kZXJIMjY0Lm1tOgorICAgICAgICAoLVtSVENWaWRlb0VuY29kZXJIMjY0
IGVuY29kZTpjb2RlY1NwZWNpZmljSW5mbzpmcmFtZVR5cGVzOl0pOgorICAgICAgICAoLVtSVENW
aWRlb0VuY29kZXJIMjY0IHJlc2V0Q29tcHJlc3Npb25TZXNzaW9uV2l0aFBpeGVsRm9ybWF0Ol0p
OgorICAgICAgICAoLVtSVENWaWRlb0VuY29kZXJIMjY0IGRlc3Ryb3lDb21wcmVzc2lvblNlc3Np
b25dKToKKyAgICAgICAgKiBXZWJLaXQvMDAwMS1Vc2luZy1WQ1AucGF0Y2g6IEFkZGVkLgorICAg
ICAgICAqIGxpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCisyMDE4LTAzLTIz
ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgU3RvcCB1c2lu
ZyBkaXNwYXRjaF9zZXRfdGFyZ2V0X3F1ZXVlKCkKKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9y
Zy9iLzE4MzkwOD4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzNTUzNTMzPgorCisgICAgICAg
IFJldmlld2VkIGJ5IERhbmllbCBCYXRlcy4KKworICAgICAgICAqIFNvdXJjZS93ZWJydGMvcnRj
X2Jhc2UvdGFza19xdWV1ZV9nY2QuY2M6IFJlbW92ZSB1c2Ugb2YKKyAgICAgICAgZGlzcGF0Y2hf
c2V0X3RhcmdldF9xdWV1ZSgpIGJ5IGNoYW5naW5nIGRpc3BhdGNoX3F1ZXVlX2NyZWF0ZSgpCisg
ICAgICAgIHRvIGRpc3BhdGNoX3F1ZXVlX2NyZWF0ZV93aXRoX3RhcmdldCgpLgorICAgICAgICAq
IFdlYktpdC8wMDA5LVJlbW92ZS1kaXNwYXRjaF9zZXRfdGFyZ2V0X3F1ZXVlLnBhdGNoOiBBZGQg
cGF0Y2guCisgICAgICAgIEZpbGVkIHRoaXMgdG8gdHJhY2sgdXBzdHJlYW1pbmcgdGhlIGNoYW5n
ZToKKyAgICAgICAgPGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC93ZWJydGMvaXNzdWVzL2Rl
dGFpbD9pZD05MDU1PgorICAgICAgICAqIFdlYktpdC9wYXRjaC1saWJ3ZWJydGM6IERlbGV0ZSBl
bXB0eSBwYXRjaCBmaWxlLgorCisyMDE4LTAzLTIzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KKworICAgICAgICBVc2UgbGlid2VicnRjIE9iamVjdGl2ZUMgSDI2NCBlbmNvZGVy
IGFuZCBkZWNvZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODM5MTIKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAg
ICAgQWRkIHV0aWxpdGllcyBpbnNpZGUgbGlid2VicnRjIHRvIGJlIHVzZWQgYnkgV2ViS2l0Ogor
ICAgICAgICAtIENyZWF0ZSBPYmplY3RpdmVDIGVuY29kZXIvZGVjb2RlciBmYWN0b3JpZXMKKyAg
ICAgICAgLSBOb3RpZnkgb2YgYXBwbGljYXRpb24gc3RhdHVzIHRvIGludmFsaWRhdGUgZW5jb2Rl
cnMvZGVjb2RlcnMgd2hlbiBpbiBiYWNrZ3JvdW5kCisgICAgICAgIEltcGxlbWVudCBSVENVSUFw
cGxpY2F0aW9uU3RhdHVzT2JzZXJ2ZXIgYXMgYSBzaW1wbGUgYm9vbGVhbiB0aGF0IGlzIHNldCBi
eSBXZWJDb3JlLgorICAgICAgICBUaGlzIGFsbG93cyBsaW1pdGluZyB0aGUgY2hhbmdlcyBtYWRl
IHRvIGxpYndlYnJ0YyBjb2RlYyBpbXBsZW1lbnRhdGlvbnMuCisKKyAgICAgICAgTWlub3IgbW9k
aWZpY2F0aW9ucyBkb25lIHRvIGxpYndlYnJ0YyB0byBmaXggY29tcGlsYXRpb24uCisgICAgICAg
IEFkZCBCbG9ja19jb3B5L0Jsb2NrX3JlbGVhc2UgdG8gY29kZWMgY2FsbGJhY2tzLgorCisgICAg
ICAgICogQ29uZmlndXJhdGlvbnMvbGlid2VicnRjLmlPUy5leHA6CisgICAgICAgICogQ29uZmln
dXJhdGlvbnMvbGlid2VicnRjLmlPU3NpbS5leHA6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMv
bGlid2VicnRjLm1hYy5leHA6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L1dl
YktpdFV0aWxpdGllcy5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9XZWJL
aXQvV2ViS2l0VXRpbGl0aWVzLm1tOiBBZGRlZC4KKyAgICAgICAgKCtbUlRDVUlBcHBsaWNhdGlv
blN0YXR1c09ic2VydmVyIHNoYXJlZEluc3RhbmNlXSk6CisgICAgICAgICgrW1JUQ1VJQXBwbGlj
YXRpb25TdGF0dXNPYnNlcnZlciBwcmVwYXJlRm9yVXNlXSk6CisgICAgICAgICgtW1JUQ1VJQXBw
bGljYXRpb25TdGF0dXNPYnNlcnZlciBzZXRBY3RpdmVdKToKKyAgICAgICAgKC1bUlRDVUlBcHBs
aWNhdGlvblN0YXR1c09ic2VydmVyIHNldEluYWN0aXZlXSk6CisgICAgICAgICgtW1JUQ1VJQXBw
bGljYXRpb25TdGF0dXNPYnNlcnZlciBpc0FwcGxpY2F0aW9uQWN0aXZlXSk6CisgICAgICAgICh3
ZWJydGM6OnNldEFwcGxpY2F0aW9uU3RhdHVzKToKKyAgICAgICAgKHdlYnJ0Yzo6Y3JlYXRlVmlk
ZW9Ub29sYm94RW5jb2RlckZhY3RvcnkpOgorICAgICAgICAod2VicnRjOjpjcmVhdGVWaWRlb1Rv
b2xib3hEZWNvZGVyRmFjdG9yeSk6CisgICAgICAgICh3ZWJydGM6OnNldEgyNjRIYXJkd2FyZUVu
Y29kZXJBbGxvd2VkKToKKyAgICAgICAgKHdlYnJ0Yzo6aXNIMjY0SGFyZHdhcmVFbmNvZGVyQWxs
b3dlZCk6CisgICAgICAgICh3ZWJydGM6OnBpeGVsQnVmZmVyRnJvbUZyYW1lKToKKyAgICAgICAg
KiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL0ZyYW1ld29yay9DbGFzc2VzL1ZpZGVvL1JUQ0NWUGl4
ZWxCdWZmZXIubW06CisgICAgICAgICgtW1JUQ0NWUGl4ZWxCdWZmZXIgZGVhbGxvY10pOgorICAg
ICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvRnJhbWV3b3JrL0NsYXNzZXMvVmlkZW9Ub29s
Ym94L1JUQ1ZpZGVvRGVjb2RlckgyNjQubW06CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2Rlckgy
NjQgZGVhbGxvY10pOgorICAgICAgICAoLVtSVENWaWRlb0RlY29kZXJIMjY0IHNldENhbGxiYWNr
Ol0pOgorICAgICAgICAoLVtSVENWaWRlb0RlY29kZXJIMjY0IHJlbGVhc2VEZWNvZGVyXSk6Cisg
ICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9GcmFtZXdvcmsvQ2xhc3Nlcy9WaWRlb1Rv
b2xib3gvUlRDVmlkZW9FbmNvZGVySDI2NC5tbToKKyAgICAgICAgKC1bUlRDVmlkZW9FbmNvZGVy
SDI2NCBkZWFsbG9jXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRW5jb2RlckgyNjQgc2V0Q2FsbGJh
Y2s6XSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRW5jb2RlckgyNjQgcmVsZWFzZUVuY29kZXJdKToK
KyAgICAgICAgKC1bUlRDVmlkZW9FbmNvZGVySDI2NCByZXNldENvbXByZXNzaW9uU2Vzc2lvbldp
dGhQaXhlbEZvcm1hdDpdKToKKyAgICAgICAgKiBXZWJLaXQvMDAwMS1BZGFwdGluZy1saWJ3ZWJy
dGMtSDI2NC1jb2RlYy5wYXRjaDogQWRkZWQuCisgICAgICAgICogbGlid2VicnRjLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisKKzIwMTgtMDMtMjIgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1x
dWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMjk4
NzYuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5
MjkKKworICAgICAgICBTb21lIHdlYnJ0YyB0ZXN0cyBhcmUgdGltaW5nIG91dCBvbiBpT1Mgc2lt
dWxhdG9yIChSZXF1ZXN0ZWQKKyAgICAgICAgYnkgeW91ZW5uIG9uICN3ZWJraXQpLgorCisgICAg
ICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAiVXNlIGxpYndlYnJ0YyBPYmplY3Rp
dmVDIEgyNjQgZW5jb2RlciBhbmQgZGVjb2RlciIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzkxMgorICAgICAgICBodHRwczovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvMjI5ODc2CisKKzIwMTgtMDMtMjIgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBsaWJ3ZWJydGMgT2JqZWN0aXZlQyBIMjY0IGVu
Y29kZXIgYW5kIGRlY29kZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4MzkxMgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKwor
ICAgICAgICBBZGQgdXRpbGl0aWVzIGluc2lkZSBsaWJ3ZWJydGMgdG8gYmUgdXNlZCBieSBXZWJL
aXQ6CisgICAgICAgIC0gQ3JlYXRlIE9iamVjdGl2ZUMgZW5jb2Rlci9kZWNvZGVyIGZhY3Rvcmll
cworICAgICAgICAtIE5vdGlmeSBvZiBhcHBsaWNhdGlvbiBzdGF0dXMgdG8gaW52YWxpZGF0ZSBl
bmNvZGVycy9kZWNvZGVycyB3aGVuIGluIGJhY2tncm91bmQKKyAgICAgICAgSW1wbGVtZW50IFJU
Q1VJQXBwbGljYXRpb25TdGF0dXNPYnNlcnZlciBhcyBhIHNpbXBsZSBib29sZWFuIHRoYXQgaXMg
c2V0IGJ5IFdlYkNvcmUuCisgICAgICAgIFRoaXMgYWxsb3dzIGxpbWl0aW5nIHRoZSBjaGFuZ2Vz
IG1hZGUgdG8gbGlid2VicnRjIGNvZGVjIGltcGxlbWVudGF0aW9ucy4KKworICAgICAgICBNaW5v
ciBtb2RpZmljYXRpb25zIGRvbmUgdG8gbGlid2VicnRjIHRvIGZpeCBjb21waWxhdGlvbi4KKyAg
ICAgICAgQWRkIEJsb2NrX2NvcHkvQmxvY2tfcmVsZWFzZSB0byBjb2RlYyBjYWxsYmFja3MuCisK
KyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cDoKKyAgICAgICAgKiBD
b25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4cDoKKyAgICAgICAgKiBDb25maWd1cmF0
aW9ucy9saWJ3ZWJydGMubWFjLmV4cDoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9XZWJL
aXQvV2ViS2l0VXRpbGl0aWVzLmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvc2Rr
L1dlYktpdC9XZWJLaXRVdGlsaXRpZXMubW06IEFkZGVkLgorICAgICAgICAoK1tSVENVSUFwcGxp
Y2F0aW9uU3RhdHVzT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdKToKKyAgICAgICAgKCtbUlRDVUlB
cHBsaWNhdGlvblN0YXR1c09ic2VydmVyIHByZXBhcmVGb3JVc2VdKToKKyAgICAgICAgKC1bUlRD
VUlBcHBsaWNhdGlvblN0YXR1c09ic2VydmVyIHNldEFjdGl2ZV0pOgorICAgICAgICAoLVtSVENV
SUFwcGxpY2F0aW9uU3RhdHVzT2JzZXJ2ZXIgc2V0SW5hY3RpdmVdKToKKyAgICAgICAgKC1bUlRD
VUlBcHBsaWNhdGlvblN0YXR1c09ic2VydmVyIGlzQXBwbGljYXRpb25BY3RpdmVdKToKKyAgICAg
ICAgKHdlYnJ0Yzo6c2V0QXBwbGljYXRpb25TdGF0dXMpOgorICAgICAgICAod2VicnRjOjpjcmVh
dGVWaWRlb1Rvb2xib3hFbmNvZGVyRmFjdG9yeSk6CisgICAgICAgICh3ZWJydGM6OmNyZWF0ZVZp
ZGVvVG9vbGJveERlY29kZXJGYWN0b3J5KToKKyAgICAgICAgKHdlYnJ0Yzo6c2V0SDI2NEhhcmR3
YXJlRW5jb2RlckFsbG93ZWQpOgorICAgICAgICAod2VicnRjOjppc0gyNjRIYXJkd2FyZUVuY29k
ZXJBbGxvd2VkKToKKyAgICAgICAgKHdlYnJ0Yzo6cGl4ZWxCdWZmZXJGcm9tRnJhbWUpOgorICAg
ICAgICAqIFNvdXJjZS93ZWJydGMvc2RrL29iamMvRnJhbWV3b3JrL0NsYXNzZXMvVmlkZW8vUlRD
Q1ZQaXhlbEJ1ZmZlci5tbToKKyAgICAgICAgKC1bUlRDQ1ZQaXhlbEJ1ZmZlciBkZWFsbG9jXSk6
CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9GcmFtZXdvcmsvQ2xhc3Nlcy9WaWRl
b1Rvb2xib3gvUlRDVmlkZW9EZWNvZGVySDI2NC5tbToKKyAgICAgICAgKC1bUlRDVmlkZW9EZWNv
ZGVySDI2NCBkZWFsbG9jXSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlckgyNjQgc2V0Q2Fs
bGJhY2s6XSk6CisgICAgICAgICgtW1JUQ1ZpZGVvRGVjb2RlckgyNjQgcmVsZWFzZURlY29kZXJd
KToKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL0ZyYW1ld29yay9DbGFzc2VzL1Zp
ZGVvVG9vbGJveC9SVENWaWRlb0VuY29kZXJIMjY0Lm1tOgorICAgICAgICAoLVtSVENWaWRlb0Vu
Y29kZXJIMjY0IGRlYWxsb2NdKToKKyAgICAgICAgKC1bUlRDVmlkZW9FbmNvZGVySDI2NCBzZXRD
YWxsYmFjazpdKToKKyAgICAgICAgKC1bUlRDVmlkZW9FbmNvZGVySDI2NCByZWxlYXNlRW5jb2Rl
cl0pOgorICAgICAgICAoLVtSVENWaWRlb0VuY29kZXJIMjY0IHJlc2V0Q29tcHJlc3Npb25TZXNz
aW9uV2l0aFBpeGVsRm9ybWF0Ol0pOgorICAgICAgICAqIFdlYktpdC8wMDAxLUFkYXB0aW5nLWxp
YndlYnJ0Yy1IMjY0LWNvZGVjLnBhdGNoOiBBZGRlZC4KKyAgICAgICAgKiBsaWJ3ZWJydGMueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxOC0wMy0xNCAgWW91ZW5uIEZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGxpYndlYnJ0YyB1cCB0byAzNmFmNGU5
NjE0ZjcwN2Y3MzNlYjIzNDBmYWU2NmQ2MzI1YWFhYzViCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE1MGZjNDgwZmM3MWI3OWY3
MDQ5MTk1ZjRmZTIwODY0ZThjNGRkNjkuLmY0Mjk1ZjA4MmJkNzY3NzZhZDRkNWFiOWMyMjllNjc5
OWU0YjM2Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTI1IEBACisyMDE4LTAzLTI2ICBBbnRvaW5lIFF1aW50
ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW0FTYW5dIEFsbG93IFJlZjw+IHRvIGJl
IHN3YXBwZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4NDAxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzYzMzY3ODc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgSkYgQmFzdGllbi4KKworICAgICAgICBVbnBvaXNvbiBhIFJlZiBpbiB2YXJpb3Vz
IGNhbGxzIGp1c3QgbGlrZSBpbiB+UmVmIHNvIHRoYXQgc29ydGluZyBhIFZlY3RvcjxSZWY8Pj4g
d29ya3Mgd2l0aCBBU2FuIG9uLgorCisgICAgICAgICogd3RmL1JlZi5oOgorICAgICAgICAoV1RG
OjpSZWY6OmFzc2lnblRvSGFzaFRhYmxlRW1wdHlWYWx1ZSk6CisgICAgICAgIChXVEY6Oj0pOgor
ICAgICAgICAoV1RGOjpVPjo6cmVwbGFjZSk6CisKKzIwMTgtMDMtMjYgIEJyZW50IEZ1bGdoYW0g
IDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgV2FybiBhZ2FpbnN0IGNvb2tpZSBhY2Nl
c3MgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcyB1c2luZyBQcm9jZXNzUHJpdmlsZWdlIGFzc2Vy
dGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
MzkxMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzg3NjIzMDY+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBFeHRlbmQgdGhlIFByb2Nlc3NQcml2aWxl
Z2UgQVBJIHdpdGggdGhlIGFiaWxpdHkgdG8gYWRkIGFuZCByZW1vdmUgaW5kaXZpZHVhbAorICAg
ICAgICBwcml2aWxlZ2VzLgorCisgICAgICAgICogd3RmL1Byb2Nlc3NQcml2aWxlZ2UuY3BwOgor
ICAgICAgICAoV1RGOjphZGRQcm9jZXNzUHJpdmlsZWdlKToKKyAgICAgICAgKFdURjo6cmVtb3Zl
UHJvY2Vzc1ByaXZpbGVnZSk6CisgICAgICAgICogd3RmL1Byb2Nlc3NQcml2aWxlZ2UuaDoKKwor
MjAxOC0wMy0yNSAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVyZXogIDxjbG9wZXpAaWdhbGlhLmNv
bT4KKworICAgICAgICBXZWJQcm9jZXNzIG1lbW9yeSBtb25pdG9yOiB1c2UgJXp1IGZvcm1hdCBz
cGVjaWZpZXIgZm9yIHNpemVfdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTgzOTk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWljaGFlbCBDYXRhbnph
cm8uCisKKyAgICAgICAgdXNzZSAlenUgZm9ybWF0IHNwZWNpZmllciBmb3Igc2l6ZV90IGluc3Rl
YWQgb2YgJWx1LgorCisgICAgICAgICogd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHA6Cisg
ICAgICAgIChXVEY6Ok1lbW9yeVByZXNzdXJlSGFuZGxlcjo6c2hyaW5rT3JEaWUpOgorICAgICAg
ICAoV1RGOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6Om1lYXN1cmVtZW50VGltZXJGaXJlZCk6CisK
KzIwMTgtMDMtMjUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIGFuZCBhZG9wdCBFTkFCTEUoQUlSUExBWV9QSUNLRVIpCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5OTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBEYW5pZWwgQmF0ZXMuCisKKyAgICAgICAgKiB3dGYvRmVhdHVyZURlZmluZXMuaDoK
KworMjAxOC0wMy0yMyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBJbnRyb2R1Y2UgYW5kIGFkb3B0IEhBVkUoQVVESU9fVE9PTEJPWF9BVURJT19TRVNT
SU9OKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgz
OTU0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zODgwODg1OD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBEYW4gQmVybnN0ZWluLgorCisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisKKzIwMTgt
MDMtMjMgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAgICAgICBTdG9w
IHVzaW5nIGRpc3BhdGNoX3NldF90YXJnZXRfcXVldWUoKQorICAgICAgICA8aHR0cHM6Ly93ZWJr
aXQub3JnL2IvMTgzOTA4PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzM1NTM1MzM+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFuaWVsIEJhdGVzLgorCisgICAgICAgICogd3RmL2NvY29hL1dv
cmtRdWV1ZUNvY29hLmNwcDoKKyAgICAgICAgKFdURjo6V29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRp
YWxpemUpOiBSZW1vdmUgIUhBVkUoUU9TX0NMQVNTRVMpCisgICAgICAgIGNvZGUgcGF0aCBzaW5j
ZSBpdCdzIG5ldmVyIHVzZWQgbm93IHRoYXQgSEFWRShRT1NfQ0xBU1NFUykgaXMKKyAgICAgICAg
ZXF1aXZhbGVudCB0byBQTEFURk9STShDT0NPQSkgaW4gPHd0Zi9QbGF0Zm9ybS5oPi4KKworMjAx
OC0wMy0yMyAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVyZXogIDxjbG9wZXpAaWdhbGlhLmNvbT4K
KworICAgICAgICBXZWJQcm9jZXNzIG1lbW9yeSBtb25pdG9yIHRocmVzaG9sZHMgc2hvdWxkIGJl
IGJldHRlciB0dW5lZCBmb3IgZW1iZWRkZWQgc3lzdGVtcy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzc3MworCisgICAgICAgIFJldmlld2VkIGJ5
IFl1c3VrZSBTdXp1a2kuCisKKyAgICAgICAgVGFrZSBpbnRvIGFjY291bnQgdGhlIHRvdGFsIHN5
c3RlbSBSQU0gZm9yIHRoZSB0aHJlc2hvbGRzIGNhbGN1bGF0aW9uLgorCisgICAgICAgIEZvciBz
eXN0ZW1zIHdpdGggbW9yZSB0aGFuIDNHQiB0aGUgY29uc2VydmF0aXZlIGFuZCBzdHJpY3QgdGhy
ZXNob2xkcyByZW1haW4gYXMgdGhleSBhcmUsCisgICAgICAgIGJ1dCBmb3Igc3lzdGVtcyB3aXRo
IGxlc3MgUkFNIHRoZSB0aHJlc2hvbGRzIGFyZSBkeW5hbWljYWxseSBjb25maWd1cmVkIGFzIGZv
bGxvd3M6CisKKyAgICAgICAgLSBDb25zZXJ2YXRpdmUgdGhyZXNob2xkIChyZWxlYXNlIG5vbiBj
cml0aWNhbCBtZW1vcnkpIGlmIFdlYlByb2Nlc3MgdXNpbmcgbW9yZSB0aGFuIDMzJSBvZiB0aGUg
dG90YWwgUkFNLgorICAgICAgICAtIFN0cmljdCB0aHJlc2hvbGQgKHJlbGVhc2UgYWxsIHBvc3Np
YmxlIG1lbW9yeSkgaWYgV2ViUHJvY2VzcyB1c2luZyBtb3JlIHRoYW4gNTAlIG9mIHRoZSB0b3Rh
bCBSQU0uCisKKyAgICAgICAgVGhlIEtpbGwgdGhyZXNob2xkIGlzIGFsc28gbW9kaWZpZWQuIE5v
dyBpdCBpcyBjYXBwZWQgYXQgOTAlIG9mIHRoZSB0b3RhbCBSQU0uCisKKyAgICAgICAgKiB3dGYv
TWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdURjo6dGhyZXNob2xkRm9yTWVt
b3J5S2lsbFdpdGhQcm9jZXNzU3RhdGUpOgorICAgICAgICAoV1RGOjp0aHJlc2hvbGRGb3JQb2xp
Y3kpOgorICAgICAgICAoV1RGOjpNZW1vcnlQcmVzc3VyZUhhbmRsZXI6OnNocmlua09yRGllKToK
KworMjAxOC0wMy0yMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKwor
ICAgICAgICBbV1RGXSBBZGQgc3RhbmRhcmQgY29udGFpbmVycyB3aXRoIEZhc3RBbGxvY2F0b3Ig
c3BlY2lhbGl6YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4Mzc4OQorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAg
ICAgIFNvbWV0aW1lcyB3ZSB3YW50IHN0YW5kYXJkIGNvbnRhaW5lcnMgZHVlIHRvIHZhcmlvdXMg
cmVhc29ucy4KKyAgICAgICAgRm9yIGV4YW1wbGUsIFdURjo6SGFzaE1hcCBsYWNrcyB0aGUgYWJp
bGl0eSB0byBob2xkIGFsbCB0aGUKKyAgICAgICAgaW50ZWdlciBrZXlzIHNpbmNlIGl0IHVzZXMg
MCBmb3IgZW1wdHkgdmFsdWUgYW5kIC0xIGZvciBkZWxldGVkCisgICAgICAgIHZhbHVlLiBIb3dl
dmVyLCB1c2luZyBzdGQ6OmNvbnRhaW5lcnMgdXNlIHN0ZDo6YWxsb2NhdG9yIHdpdGhvdXQKKyAg
ICAgICAgc3BlY2lhbGl6YXRpb24uCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIFdU
Rjo6e1N0ZE1hcCwgU3RkU2V0LCBTdGRMaXN0LCBTdGRVbm9yZGVyZWRNYXAsIFN0ZFVub3JkZXJl
ZFNldH0uCisgICAgICAgIFRoZXkgYXJlIHN0YW5kYXJkIGNvbnRhaW5lcnMgd2l0aCBGYXN0QWxs
b2NhdG9yIHNwZWNpYWxpemF0aW9uLgorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi9T
dGRMaXN0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVM
b2NhdGlvbkNhY2hlLmguCisgICAgICAgICogd3RmL1N0ZE1hcC5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlTG9jYXRpb25DYWNoZS5oLgorICAgICAgICAq
IHd0Zi9TdGRTZXQuaDogQ29waWVkIGZyb20gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
VHlwZUxvY2F0aW9uQ2FjaGUuaC4KKyAgICAgICAgKiB3dGYvU3RkVW5vcmRlcmVkTWFwLmg6IENv
cGllZCBmcm9tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVMb2NhdGlvbkNhY2hl
LmguCisgICAgICAgICogd3RmL1N0ZFVub3JkZXJlZFNldC5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlTG9jYXRpb25DYWNoZS5oLgorCiAyMDE4LTAzLTIy
ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEFkb3B0
IFVTRShPUEVOR0xbX0VTXSkgaW4gbW9yZSBwbGFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4MzdjZjUyNjUx
ZDJlNjczNGVhMDEzODIzNmQ3NjZiZWQ0OWVkMGViLi4xZTNiYjhkZDFmMDkzZDY3NDEzMmE1Y2Nk
MTU0NjNhMGMwOGIyYmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTM1MiBAQAorMjAxOC0wMy0y
MyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWIgQW5p
bWF0aW9uc10gTWFrZSBpbXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25zL3Rlc3RfYW5pbWF0
aW9uLWN1cnJlbnR0aW1lLmh0bWwgcGFzcyByZWxpYWJseQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzODE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGVhbiBKYWNrc29uLgorCisgICAgICAgIFRoZSBjdXJyZW50IHRpbWUgZm9yIGEgQ1NTIEFuaW1h
dGlvbiBleHBvc2VkIHZpYSB0aGUgQVBJIHNob3VsZCBiZSBjbGFtcGVkIGJldHdlZW4gMCBhbmQg
dGhlIGFuaW1hdGlvbiBkdXJhdGlvbi4KKworICAgICAgICAqIGFuaW1hdGlvbi9DU1NBbmltYXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQW5pbWF0aW9uOjpiaW5kaW5nc0N1cnJlbnRU
aW1lIGNvbnN0KToKKyAgICAgICAgKiBhbmltYXRpb24vQ1NTQW5pbWF0aW9uLmg6CisgICAgICAg
ICogYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oOgorCisyMDE4LTAzLTIzICBBbnRvaW5lIFF1aW50
ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25zXSBDb3JyZWN0
bHkgaGFuZGxlIHRpbWluZyBmdW5jdGlvbnMgc3BlY2lmaWVkIGJ5IENTUyBBbmltYXRpb25zIGFu
ZCBDU1MgVHJhbnNpdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4MzkzNQorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKwor
ICAgICAgICBXZSB3ZXJlIGluY29ycmVjdGx5IHJlZmxlY3RpbmcgdGhlIGFuaW1hdGlvbi10aW1p
bmctZnVuY3Rpb24gYW5kIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uIHZhbHVlcyBvbiB0aGUg
Z2VuZXJhdGVkCisgICAgICAgIERlY2xhcmF0aXZlQW5pbWF0aW9uIGVmZmVjdCB0aW1pbmcgImVh
c2luZyIgcHJvcGVydHkuIEluIGZhY3QsIHRob3NlIHZhbHVlcyBzaG91bGQgb25seSBiZSByZXBy
ZXNlbnRlZCBvbiB0aGUga2V5ZnJhbWVzLgorCisgICAgICAgIEluIHRoZSBjYXNlIG9mIGEgQ1NT
IEFuaW1hdGlvbiwgdGhlIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24gcHJvcGVydHkgc2V0IG9u
IHRoZSBlbGVtZW50J3Mgc3R5bGUgc2VydmVzIGFzIHRoZSBkZWZhdWx0CisgICAgICAgIHZhbHVl
IHVzZWQgZm9yIGFsbCBrZXlmcmFtZXMsIGFuZCBpbmRpdmlkdWFsIGtleWZyYW1lcyBjYW4gc3Bl
Y2lmeSBhbiBvdmVycmlkaW5nIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24uIEZvciBhIENTUwor
ICAgICAgICBUcmFuc2l0aW9uLCB0aGUgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24gcHJvcGVy
dHkgc2V0IG9uIHRoZSBlbGVtZW50J3Mgc3R5bGUgc2VydmVzIGFzIHRoZSB0aW1pbmcgZnVuY3Rp
b24gb2YgdGhlCisgICAgICAgIGZyb20ga2V5ZnJhbWUuCisKKyAgICAgICAgVG8gY29ycmVjdGx5
IHJlZmxlY3QgdGhpcywgd2UgcHJvdmlkZSBhIG5ldyB0aW1pbmdGdW5jdGlvbkZvcktleWZyYW1l
QXRJbmRleCgpIGZ1bmN0aW9uIG9uIEtleWZyYW1lRWZmZWN0UmVhZE9ubHkKKyAgICAgICAgd2hp
Y2ggd2lsbCByZXR1cm4gdGhlIHJpZ2h0IFRpbWluZ0Z1bmN0aW9uIG9iamVjdCBhdCBhIGdpdmVu
IGluZGV4LCByZWdhcmRsZXNzIG9mIHRoZSBhbmltYXRpb24gdHlwZS4gSW4gdGhlIGNhc2UKKyAg
ICAgICAgb2YgZ2V0S2V5ZnJhbWVzKCksIHdlIG1hbnVhbGx5IHJldHVybiAibGluZWFyIiBmb3Ig
dGhlICJ0byIga2V5ZnJhbWUgc2luY2UgdGltaW5nRnVuY3Rpb25Gb3JLZXlmcmFtZUF0SW5kZXgo
KQorICAgICAgICB3b3VsZCBvdGhlcndpc2UgcmV0dXJuIHRoZSBzYW1lIHRpbWluZyBmdW5jdGlv
biBhcyB0aGUgImZyb20iIGtleWZyYW1lLiBUaGlzIGF2b2lkcyBjcmVhdGluZyBhbiBleHRyYQor
ICAgICAgICBMaW5lYXJUaW1pbmdGdW5jdGlvbiBvYmplY3QuCisKKyAgICAgICAgQXMgYSByZXN1
bHQsIGEgbnVtYmVyIG9mIE1vemlsbGEgaW1wb3J0ZWQgdGVzdHMgcHJvZ3Jlc3Mgc2luY2Ugd2Ug
aGF2ZSBjb3JyZWN0IGluZm9ybWF0aW9uIG9uIHRoZSAiZWFzaW5nIiBwcm9wZXJ0eQorICAgICAg
ICBvZiBvYmplY3RzIHJldHVybmVkIGJ5IGdldEtleWZyYW1lcygpIGFuZCB0aGUgInByb2dyZXNz
IiByZXBvcnRlZCBieSBnZXRDb21wdXRlZFRpbWluZygpIG5vdyBhbHdheXMgdXNlcyBhIGxpbmVh
cgorICAgICAgICB0aW1pbmcgZnVuY3Rpb24uCisKKyAgICAgICAgKiBhbmltYXRpb24vRGVjbGFy
YXRpdmVBbmltYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVjbGFyYXRpdmVBbmltYXRp
b246OnN5bmNQcm9wZXJ0aWVzV2l0aEJhY2tpbmdBbmltYXRpb24pOiBUaGUgdGltaW5nIGZ1bmN0
aW9uIG9mIHRoZSBiYWNraW5nIEFuaW1hdGlvbiBzaG91bGQKKyAgICAgICAgbm90IGJlIHJlZmxl
Y3RlZCBvbiB0aGUgZWZmZWN0J3MgdGltaW5nIG9iamVjdC4KKyAgICAgICAgKiBhbmltYXRpb24v
S2V5ZnJhbWVFZmZlY3RSZWFkT25seS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVm
ZmVjdFJlYWRPbmx5OjpnZXRLZXlmcmFtZXMpOiBSZXR1cm4gdGhlIGNvcnJlY3QgdGltaW5nIGZ1
bmN0aW9uIGZvciBhIGtleWZyYW1lLCBhbmQgdXNlIGEgImxpbmVhciIKKyAgICAgICAgdmFsdWUg
Zm9yIHRoZSAidG8iIGtleWZyYW1lIG9mIGEgQ1NTIFRyYW5zaXRpb24uCisgICAgICAgIChXZWJD
b3JlOjpLZXlmcmFtZUVmZmVjdFJlYWRPbmx5OjpzZXRBbmltYXRlZFByb3BlcnRpZXNJblN0eWxl
KToKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZmZWN0UmVhZE9ubHk6OnRpbWluZ0Z1bmN0
aW9uRm9yS2V5ZnJhbWVBdEluZGV4KToKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZl
Y3RSZWFkT25seS5oOgorCisyMDE4LTAzLTI2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKKyAgICAgICAgVXNlIFNlY3VyaXR5T3JpZ2luRGF0YSBtb3JlIGNvbnNpc3RlbnRseSBp
biBTZXJ2aWNlIFdvcmtlciBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODM5NjkKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
KworICAgICAgICBVc2UgU2VjdXJpdHlPcmlnaW5EYXRhIG1vcmUgY29uc2lzdGVudGx5IGluIFNl
cnZpY2UgV29ya2VyIGNvZGUgdG8gYXZvaWQgY29uc3RydWN0aW5nCisgICAgICAgIFNlY3VyaXR5
T3JpZ2luIG9iamVjdHMgdW5uZWNlc3NhcmlseS4KKworICAgICAgICBJIGFsc28gdXBkYXRlZCBT
ZWN1cml0eU9yaWdpbiB0byB1c2UgU2VjdXJpdHlPcmlnaW5EYXRhIGFzIGEgZGF0YSBtZW1iZXIu
IFRoaXMgcmVkdWNlcworICAgICAgICBjb2RlIGR1cGxpY2F0aW9uIGEgYml0LiBUaGlzIGFsc28g
YXZvaWRzIGNvbnN0cnVjdGluZyBTZWN1cml0eU9yaWdpbkRhdGEgdW5uZWNlc3NhcmlseQorICAg
ICAgICBpbiBzb21lIGNhc2VzIGFzIGNhbGxlcnMgY2FuIG5vdyB1c2UgU2VjdXJpdHlPcmlnaW46
OmRhdGEoKSBpbnN0ZWFkIG9mCisgICAgICAgIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3Vy
aXR5T3JpZ2luKCkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBXZWItZmFjaW5nIGJlaGF2
aW9yIGNoYW5nZS4KKworICAgICAgICAqIE1vZHVsZXMvY2FjaGUvRE9NQ2FjaGVTdG9yYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlU3RvcmFnZTo6b3JpZ2luIGNvbnN0KToKKyAg
ICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDRE06OnN0b3JhZ2VEaXJlY3RvcnkgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlw
dGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5
U2Vzc2lvbjo6bWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSBjb25zdCk6CisgICAgICAgICogTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvV2ViS2l0TWVkaWFLZXlTZXNzaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldlYktpdE1lZGlhS2V5U2Vzc2lvbjo6bWVkaWFLZXlzU3RvcmFnZURp
cmVjdG9yeSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJREJGYWN0b3J5OjpvcGVuSW50ZXJuYWwpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCRmFjdG9yeTo6ZGVsZXRlRGF0YWJhc2UpOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbERhdGFiYXNl
TmFtZXMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OnNlY3VyaXR5T3JpZ2luKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
YXRhYmFzZUNvbnRleHQ6OnNlY3VyaXR5T3JpZ2luIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlTWFu
YWdlcjo6ZnVsbFBhdGhGb3JEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZU1h
bmFnZXI6OmRldGFpbHNGb3JOYW1lQW5kT3JpZ2luKToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQ
bGF5ZXJNZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5IGNvbnN0KToKKyAgICAgICAgKiBpbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmZpbmRTdG9yYWdlQXJlYSk6CisgICAgICAgICog
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpjYWxjdWxhdGVRdW90YUZvck9yaWdpbik6
CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2FsY3VsYXRlVXNh
Z2VGb3JPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6
OmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZSk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6c3RvcmVVcGRhdGVkUXVvdGFGb3JP
cmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnN0b3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjplbnN1cmVPcmln
aW5SZWNvcmQpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OiBjb25zdCk6CisgICAgICAgICogcGFnZS9TZWN1cml0eU9yaWdpbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAoV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW46OmlzUG90ZW50aWFsbHlUcnVzdHdvcnRoeSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y2FuQWNjZXNzIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpjYW5EaXNwbGF5IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpkb21haW5Gb3JDYWNoZVBhcnRpdGlvbiBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6aXNMb2NhbCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6dG9TdHJpbmcgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OnRvUmF3U3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW46OmlzU2FtZVNjaGVtZUhvc3RQb3J0IGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1Nl
Y3VyaXR5T3JpZ2luLmg6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6cHJvdG9j
b2wgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46Omhvc3QgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OnBvcnQgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmRhdGEgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW46OmlzSFRUUEZhbWlseSBjb25zdCk6CisgICAgICAgICogcGFnZS9T
ZWN1cml0eU9yaWdpbkRhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGE6OmZyb21GcmFtZSk6CisgICAgICAgICogcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVVSTCk6CisgICAgICAgICog
c3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOjpsb2NhbFN0b3JhZ2VBcmVhKToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmNsZWFy
Q2FjaGVTdG9yYWdlTWVtb3J5UmVwcmVzZW50YXRpb24pOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJDb250YWluZXI6OmFkZFJlZ2lzdHJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpyZW1vdmVSZWdpc3RyYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6U2VydmljZVdvcmtlckNvbnRhaW5lcjo6dXBkYXRlUmVnaXN0cmF0aW9uKToKKyAgICAg
ICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5OjpyZWxhdGVzVG9P
cmlnaW4gY29uc3QpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uS2V5Lmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV09yaWdp
blN0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXT3JpZ2luU3RvcmU6OmFkZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTV09yaWdpblN0b3JlOjpyZW1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6
U1dPcmlnaW5TdG9yZTo6Y2xlYXIpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dPcmlnaW5TdG9yZS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OmFkZFJlZ2lzdHJhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6cmVtb3ZlUmVnaXN0cmF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OlNXU2VydmVyOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6
dHJ5SW5zdGFsbENvbnRleHREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpzZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uQ3JlYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZl
cjo6bWFya0FsbFdvcmtlcnNGb3JPcmlnaW5Bc1Rlcm1pbmF0ZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6U1dTZXJ2ZXI6OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlNXU2VydmVyOjpuZWVkc1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb25Gb3JPcmlnaW4g
Y29uc3QpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaDoKKyAg
ICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb246On5TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpjb25uZWN0aW9uRm9yT3Jp
Z2luKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uOjpzZWN1cml0eU9yaWdpbiBjb25zdCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlcldvcmtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcldvcmtl
cjo6b3JpZ2luIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyV29ya2VyOjpzZWN1
cml0eU9yaWdpbiBjb25zdCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlcldvcmtlci5oOgorCisyMDE4LTAzLTI2ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBw
bGUuY29tPgorCisgICAgICAgIFdhcm4gYWdhaW5zdCBjb29raWUgYWNjZXNzIGluIHRoZSBXZWJD
b250ZW50IHByb2Nlc3MgdXNpbmcgUHJvY2Vzc1ByaXZpbGVnZSBhc3NlcnRpb25zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5MTEKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzM4NzYyMzA2PgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBG
YWJsZXQuCisKKyAgICAgICAgQWRkIGEgc2V0IG9mIFByb2Nlc3NQcml2aWxlZ2UgYXNzZXJ0aW9u
cyB0byBlbmZvcmNlIHRoZSBydWxlIHRoYXQgdGhlIFdlYkNvbnRlbnQgcHJvY2VzcworICAgICAg
ICBzaG91bGQgbmV2ZXIgY2FsbCBDb29raWUgQVBJIGRpcmVjdGx5LiBUaGF0IHNob3VsZCBvbmx5
IGhhcHBlbiBpbiB0aGUgTmV0d29ya2luZyBvcgorICAgICAgICBVSVByb2Nlc3MuIAorCisgICAg
ICAgIEFkZCBhIG5ldyBzdGF0aWMgZmxhZyB0byBOZXR3b3JrU3RvcmFnZVNlc3Npb24gdGhhdCBp
bmRpY2F0ZXMgaWYgdGhlIGN1cnJlbnQgcHJvY2VzcyBoYXMKKyAgICAgICAgcGVybWlzc2lvbiB0
byBpbnRlcmFjdCB3aXRoIHRoZSBDb29raWUgQVBJLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBz
aW5jZSB0aGVyZSBpcyBubyBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpO
ZXR3b3JrU3RvcmFnZVNlc3Npb246Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbik6CisgICAgICAgIChX
ZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnByb2Nlc3NNYXlVc2VDb29raWVBUEkpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6cGVybWl0UHJv
Y2Vzc1RvVXNlQ29va2llQVBJKTogQWRkZWQuIFRoaXMgYWxzbyBhZGRzCisgICAgICAgIHRoZSBh
cHByb3ByaWF0ZSBmbGFnIHRvIHRoZSBQcm9jZXNzUHJpdmlsZWdlcyBkYXRhIGZvciB0aGUgY3Vy
cmVudCBwcm9jZXNzLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNl
c3Npb25DRk5ldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVDRlN0b3JhZ2VTZXNzaW9u
Rm9ySWRlbnRpZmllcik6IERvIG5vdCBjcmVhdGUgY29va2llIHN0b3JhZ2UgaWYgdGhlIGN1cnJl
bnQKKyAgICAgICAgcHJvY2VzcyBpcyBwcm9oaWJpdGVkIGZyb20gaW50ZXJhY3Rpbmcgd2l0aCB0
aGUgQ29va2llIEFQSS4KKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6
TmV0d29ya1N0b3JhZ2VTZXNzaW9uKTogQWRkIGFzc2VydGlvbnMuCisgICAgICAgIChXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb24pOiBEbyBu
b3QgY3JlYXRlIGNvb2tpZSBzdG9yYWdlIGlmCisgICAgICAgIHRoZSBjdXJyZW50IHByb2Nlc3Mg
aXMgcHJvaGliaXRlZCBmcm9tIGludGVyYWN0aW5nIHdpdGggdGhlIENvb2tpZSBBUEkuCisgICAg
ICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9yYWdlU2Vzc2lv
bik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjplbnN1
cmVTZXNzaW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b246OmNvb2tpZVN0b3JhZ2UgY29uc3QpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2NvY29hL0Nvb2tpZVN0b3JhZ2VPYnNlcnZlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNv
b2tpZVN0b3JhZ2VPYnNlcnZlcjo6Q29va2llU3RvcmFnZU9ic2VydmVyKTogQXNzZXJ0IGlmIGFj
Y2Vzc2VkIGZyb20gdW50cnVzdGVkIHByb2Nlc3MuCisgICAgICAgIChXZWJDb3JlOjpDb29raWVT
dG9yYWdlT2JzZXJ2ZXI6OnN0YXJ0T2JzZXJ2aW5nKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpDb29raWVTdG9yYWdlT2JzZXJ2ZXI6OnN0b3BPYnNlcnZpbmcpOiBEaXR0by4KKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWUpOgorICAg
ICAgICAoV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZGVsZXRlQ29va2llKToKKyAgICAg
ICAgKFdlYkNvcmU6Om5zQ29va2llc1RvQ29va2llVmVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2V0QWxsQ29va2llcyk6CisgICAgICAgIChXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OmdldENvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpmbHVzaENvb2tpZVN0b3JlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6bnNDb29raWVTdG9yYWdlIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZVByaXZhdGVTdG9yYWdlU2Vzc2lvbik6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9tYWMvQ29va2llSmFyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6aHR0
cENvb2tpZXMpOgorICAgICAgICAoV2ViQ29yZTo6ZGVsZXRlSFRUUENvb2tpZSk6CisgICAgICAg
IChXZWJDb3JlOjpodHRwQ29va2llc0ZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpmaWx0ZXJD
b29raWVzKToKKyAgICAgICAgKFdlYkNvcmU6OmFwcGx5UGFydGl0aW9uVG9Db29raWVzKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNvb2tpZXNJblBhcnRpdGlvbkZvclVSTCk6CisgICAgICAgIChXZWJD
b3JlOjpjb29raWVzRm9yU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpzZXRIVFRQQ29va2ll
c0ZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpkZWxldGVBbGxIVFRQQ29va2llcyk6CisgICAg
ICAgIChXZWJDb3JlOjpzZXRDb29raWVzRnJvbURPTSk6CisgICAgICAgIChXZWJDb3JlOjpodHRw
Q29va2llQWNjZXB0UG9saWN5KToKKyAgICAgICAgKFdlYkNvcmU6OmRlbGV0ZUNvb2tpZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpkZWxldGVDb29raWVzRm9ySG9zdG5hbWVzKToKKyAgICAgICAgKFdl
YkNvcmU6OmRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKToKKworMjAxOC0wMy0yNiAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIE1lcmdl
IFJlc291cmNlSGFuZGxlQ2xpZW50Ojp3aWxsQ2FjaGVSZXNwb25zZUFzeW5jIHdpdGggUmVzb3Vy
Y2VIYW5kbGVDbGllbnQ6OndpbGxDYWNoZVJlc3BvbnNlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5NjUKKworICAgICAgICBSZXZpZXdlZCBieSBD
aHJpcyBEdW1lei4KKworICAgICAgICBJdCB0dXJucyBvdXQgdGhhdCBSZXNvdXJjZUhhbmRsZUNs
aWVudDo6d2lsbENhY2hlUmVzcG9uc2VBc3luYyBkaWRuJ3QgZG8gYW55dGhpbmcgYW5kIHRoZSBs
b2dpYyBpbgorICAgICAgICBSZXNvdXJjZUhhbmRsZUNsaWVudDo6d2lsbENhY2hlUmVzcG9uc2Ug
d2FzIG5vdCBiZWluZyBjYWxsZWQuICBUaGlzIG1ha2VzIGl0IHNvIHRoZXJlIGlzIG9uZSBjb2Rl
CisgICAgICAgIHBhdGggYW5kIGl0IGV4ZWN1dGVzIHRoZSBsb2dpYyBpbiBSZXNvdXJjZUhhbmRs
ZUNsaWVudDo6d2lsbENhY2hlUmVzcG9uc2UuCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlGcmFt
ZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgor
ICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9TdWJy
ZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9jb2NvYS9TdWJyZXNvdXJjZUxvYWRl
ckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6OndpbGxDYWNo
ZVJlc3BvbnNlQXN5bmMpOgorICAgICAgICAoV2ViQ29yZTo6U3VicmVzb3VyY2VMb2FkZXI6Ondp
bGxDYWNoZVJlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvbWFjL1Jlc291cmNl
TG9hZGVyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OndpbGxDYWNo
ZVJlc3BvbnNlQXN5bmMpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OndpbGxD
YWNoZVJlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNs
aWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNsaWVudDo6d2lsbENh
Y2hlUmVzcG9uc2VBc3luYyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVD
bGllbnQ6OndpbGxDYWNoZVJlc3BvbnNlQXN5bmMpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGVDbGllbnQ6OnNob3VsZENhY2hlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGVDbGllbnQ6OndpbGxDYWNoZVJlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlV2lsbENhY2hlUmVzcG9uc2UpOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVS
TENvbm5lY3Rpb25EZWxlZ2F0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRl
V2l0aE9wZXJhdGlvblF1ZXVlOjp3aWxsQ2FjaGVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVl
Ojpjb250aW51ZVdpbGxDYWNoZVJlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3Bl
cmF0aW9uUXVldWUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhh
bmRsZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjb250aW51ZVdp
bGxDYWNoZVJlc3BvbnNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21h
Yy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlv
blF1ZXVlRGVsZWdhdGUubW06CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3Bl
cmF0aW9uUXVldWVEZWxlZ2F0ZSBjb25uZWN0aW9uOndpbGxDYWNoZVJlc3BvbnNlOl0pOgorICAg
ICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29u
dGludWVXaWxsQ2FjaGVSZXNwb25zZTpdKTogRGVsZXRlZC4KKworMjAxOC0wMy0yNiAgTWlndWVs
IEdvbWV6ICA8bWFnb21lekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV0gVXBsb2Fk
IGNvcnJlY3QgYnVmZmVyIGluIEJpdG1hcFRleHR1cmVHTDo6dXBkYXRlQ29udGVudHMoKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgxb1hbiBEb2JlcsWhZWsuCisKKyAgICAgICAgRG8gbm90IHVwbG9h
ZCB0aGUgb3JpZ2luYWwgYnVmZmVyLiBVcGxvYWQgdGhlIHJlc3VsdCBvZiBjcmVhdGluZyBhIHN1
YkltYWdlIGJ1ZmZlcgorICAgICAgICBpZiBpdCB3YXMgcmVxdWlyZWQuCisKKyAgICAgICAgQ292
ZXJlZCBieSBleGlzdGVudCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9CaXRtYXBUZXh0dXJlR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVy
ZUdMOjp1cGRhdGVDb250ZW50cyk6CisKKzIwMTgtMDMtMjUgIFphbiBEb2JlcnNlayAgPHpkb2Jl
cnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtUZXhNYXBdIENsZWFuIHVwIFRleHR1cmVNYXBw
ZXJQbGF0Zm9ybUxheWVyLCBUZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlIGNvZGUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzk4NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE1pY2hhZWwgQ2F0YW56YXJvLgorCisgICAgICAgIENsZWFuIHVwIFRleHR1
cmVNYXBwZXJQbGF0Zm9ybUxheWVyIGFuZCBUZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlCisgICAg
ICAgIGhlYWRlcnMgYW5kIGltcGxlbWVudGF0aW9uIGZpbGVzLiBSZW1vdmUgZHViaW91cyB3aGl0
ZXNwYWNlLCB1c2UgI3ByYWdtYQorICAgICAgICBvbmNlLCBjbGVhbiB1cCBjb25zdHJ1Y3RvcnMs
IGRlc3RydWN0b3JzLCBtZXRob2QgZGVmaW5pdGlvbnMgYW5kIHJlbW92ZQorICAgICAgICB1bm5l
Y2Vzc2FyeSBpbmNsdWRlcyBpbiBmYXZvciBvZiBmb3J3YXJkIGRlY2xhcmF0aW9ucyB3aGVyZSBw
b3NzaWJsZS4KKworICAgICAgICBUaGUgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXI6OnN3YXBC
dWZmZXJzKCkgbWV0aG9kIGlzIHJlbW92ZWQgYXMgaXQKKyAgICAgICAgd2Fzbid0IGNhbGxlZCBv
ciBvdmVycmlkZGVuIGFueXdoZXJlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAtLSBubyBjaGFu
Z2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZTo6ZHJhd1JlcGFpbnRDb3VudGVyKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyOjpzZXRDbGll
bnQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXI6OlRleHR1
cmVNYXBwZXJQbGF0Zm9ybUxheWVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHR1
cmVNYXBwZXJQbGF0Zm9ybUxheWVyOjpzd2FwQnVmZmVycyk6IERlbGV0ZWQuCisKKzIwMTgtMDMt
MjUgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KKworICAgICAgICBbWGNvZGVdIFJl
bW92ZSB3b3JrYXJvdW5kIG9ubHkgbmVlZGVkIGZvciBkZXBsb3lpbmcgdG8gaU9TIDEwLjAgYW5k
IGVhcmxpZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4Mzk5OQorCisgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgKiBD
b25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnOiBSZW1vdmVkIGJ1aWxkIHNldHRpbmdzLgor
ICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYkNvcmVUZXN0U3VwcG9ydC54Y2NvbmZpZzogUmVt
b3ZlZCBsb2NhdGlvbiBvZiBwaG9ueSBXZWJLaXRMZWdhY3kgZnJvbQorICAgICAgICAgIGZyYW1l
d29ya3Mgc2VhcmNoIHBhdGguCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViS2l0TGVnYWN5
U3R1Yi5pT1MudGJkOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajogUmVtb3ZlZCBzY3JpcHQgYnVpbGQgcGhhc2UgZnJvbSB0aGUgRGVyaXZlZCBT
b3VyY2VzIHRhcmdldC4KKworMjAxOC0wMy0yNSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVl
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIyOTk1NC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDAwMAor
CisgICAgICAgIENhdXNlZCBtYW55IGxheW91dCB0ZXN0cyB0byBjcmFzaCBvbiBBcHBsZSBIaWdo
IFNpZXJyYSwKKyAgICAgICAgU2llcnJhLCBpT1MgU2ltdWxhdG9yIGFuZCBHVEsgTGludXggRGVi
dWcgdGVzdCBib3RzIChSZXF1ZXN0ZWQKKyAgICAgICAgYnkgZHlkeiBvbiAjd2Via2l0KS4KKwor
ICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIlVzZSBTZWN1cml0eU9yaWdp
bkRhdGEgbW9yZSBjb25zaXN0ZW50bHkgaW4gU2VydmljZSBXb3JrZXIKKyAgICAgICAgY29kZSIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzk2OQor
ICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjI5OTU0CisKKzIwMTgt
MDMtMjMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAg
ICAgICBVc2UgY29tcGxldGlvbiBoYW5kbGVycyBmb3IgUmVzb3VyY2VIYW5kbGVDbGllbnQ6OmNh
bkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2VBc3luYworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTY2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgTm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisg
ICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlTG9hZGVyOjpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlQXN5bmMp
OgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL1BpbmdIYW5kbGUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFu
ZGxlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5o
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvU3luY2hyb25vdXNMb2FkZXJDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OmNhbkF1dGhlbnRp
Y2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2VBc3luYyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0
d29yay9TeW5jaHJvbm91c0xvYWRlckNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5oOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0
ZVdpdGhPcGVyYXRpb25RdWV1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpjYW5SZXNwb25kVG9Q
cm90ZWN0aW9uU3BhY2UpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VI
YW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9u
U3BhY2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlQ2FuQXV0
aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURl
bGVnYXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJlc291cmNl
SGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tOgorICAgICAgICAoLVtXZWJDb3JlUmVz
b3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29ubmVjdGlvbjpjYW5BdXRoZW50
aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlOl0pOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3Vy
Y2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUgY29udGludWVDYW5BdXRoZW50aWNhdGVB
Z2FpbnN0UHJvdGVjdGlvblNwYWNlOl0pOiBEZWxldGVkLgorCisyMDE4LTAzLTI0ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFNlY3VyaXR5T3JpZ2luRGF0
YSBtb3JlIGNvbnNpc3RlbnRseSBpbiBTZXJ2aWNlIFdvcmtlciBjb2RlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5NjkKKworICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBVc2UgU2VjdXJpdHlPcmlnaW5EYXRhIG1v
cmUgY29uc2lzdGVudGx5IGluIFNlcnZpY2UgV29ya2VyIGNvZGUgdG8gYXZvaWQgY29uc3RydWN0
aW5nCisgICAgICAgIFNlY3VyaXR5T3JpZ2luIG9iamVjdHMgdW5uZWNlc3NhcmlseS4KKworICAg
ICAgICBJIGFsc28gdXBkYXRlZCBTZWN1cml0eU9yaWdpbiB0byB1c2UgU2VjdXJpdHlPcmlnaW5E
YXRhIGFzIGEgZGF0YSBtZW1iZXIuIFRoaXMgcmVkdWNlcworICAgICAgICBjb2RlIGR1cGxpY2F0
aW9uIGEgYml0LiBUaGlzIGFsc28gYXZvaWRzIGNvbnN0cnVjdGluZyBTZWN1cml0eU9yaWdpbkRh
dGEgdW5uZWNlc3NhcmlseQorICAgICAgICBpbiBzb21lIGNhc2VzIGFzIGNhbGxlcnMgY2FuIG5v
dyB1c2UgU2VjdXJpdHlPcmlnaW46OmRhdGEoKSBpbnN0ZWFkIG9mCisgICAgICAgIFNlY3VyaXR5
T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCkuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBubyBXZWItZmFjaW5nIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIE1vZHVsZXMvY2Fj
aGUvRE9NQ2FjaGVTdG9yYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlU3RvcmFn
ZTo6b3JpZ2luIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDRE06OnN0b3JhZ2VEaXJlY3RvcnkgY29uc3QpOgorICAg
ICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhS2V5U2Vzc2lvbjo6bWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSBj
b25zdCk6CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvV2ViS2l0TWVk
aWFLZXlTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdE1lZGlhS2V5U2Vzc2lv
bjo6bWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJGYWN0b3J5Ojpv
cGVuSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeTo6ZGVsZXRlRGF0YWJh
c2UpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9T
ZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9T
ZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OnNlY3VyaXR5T3Jp
Z2luKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZUNvbnRleHQ6OnNlY3VyaXR5T3JpZ2luIGNvbnN0
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5oOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGFiYXNlTWFuYWdlcjo6ZnVsbFBhdGhGb3JEYXRhYmFzZSk6CisgICAgICAg
IChXZWJDb3JlOjpEYXRhYmFzZU1hbmFnZXI6OmRldGFpbHNGb3JOYW1lQW5kT3JpZ2luKToKKyAg
ICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJNZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5IGNvbnN0
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTVN0b3JhZ2VBZ2VudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01TdG9yYWdlQWdlbnQ6OmZpbmRTdG9y
YWdlQXJlYSk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9y
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpjYWxj
dWxhdGVRdW90YUZvck9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZTo6Y2FsY3VsYXRlVXNhZ2VGb3JPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bGljYXRpb25DYWNoZVN0b3JhZ2U6OmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNs
dWRpbmdDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6
c3RvcmVVcGRhdGVkUXVvdGFGb3JPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRp
b25DYWNoZVN0b3JhZ2U6OnN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlOjplbnN1cmVPcmlnaW5SZWNvcmQpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OiBjb25zdCk6CisgICAgICAgICogcGFnZS9TZWN1cml0
eU9yaWdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U2VjdXJpdHlP
cmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmlzUG90ZW50aWFsbHlU
cnVzdHdvcnRoeSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y2Fu
QWNjZXNzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpjYW5EaXNw
bGF5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpkb21haW5Gb3JD
YWNoZVBhcnRpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6
aXNMb2NhbCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6dG9TdHJp
bmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OnRvUmF3U3RyaW5n
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmlzU2FtZVNjaGVtZUhvc3RQb3J0IGNvbnN0
KToKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmg6CisgICAgICAgIChXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbjo6cHJvdG9jb2wgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW46Omhvc3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46
OnBvcnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmRhdGEgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmlzSFRUUEZhbWlseSBjb25z
dCk6CisgICAgICAgICogcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSk6CisgICAgICAgICogcGFnZS9TZWN1
cml0eU9yaWdpbkRhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YTo6
ZnJvbVVSTCk6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOjpsb2NhbFN0b3Jh
Z2VBcmVhKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbHM6OmNsZWFyQ2FjaGVTdG9yYWdlTWVtb3J5UmVwcmVzZW50YXRpb24pOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OmFkZFJlZ2lzdHJhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpyZW1vdmVSZWdpc3Ry
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRhaW5lcjo6dXBkYXRl
UmVnaXN0cmF0aW9uKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbktleS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uS2V5OjpyZWxhdGVzVG9PcmlnaW4gY29uc3QpOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5Lmg6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV09yaWdpblN0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXT3Jp
Z2luU3RvcmU6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpTV09yaWdpblN0b3JlOjpyZW1vdmUp
OgorICAgICAgICAoV2ViQ29yZTo6U1dPcmlnaW5TdG9yZTo6Y2xlYXIpOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dPcmlnaW5TdG9yZS5oOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6
OmFkZFJlZ2lzdHJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6cmVtb3ZlUmVn
aXN0cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpjbGVhcik6CisgICAgICAg
IChXZWJDb3JlOjpTV1NlcnZlcjo6dHJ5SW5zdGFsbENvbnRleHREYXRhKToKKyAgICAgICAgKFdl
YkNvcmU6OlNXU2VydmVyOjpzZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uQ3JlYXRlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6bWFya0FsbFdvcmtlcnNGb3JPcmlnaW5Bc1Rlcm1pbmF0
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2Vy
Q2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpuZWVkc1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb25Gb3JPcmlnaW4gY29uc3QpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb246OlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246On5TV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uOjpjb25uZWN0aW9uRm9yT3JpZ2luKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6U1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpzZWN1cml0eU9yaWdpbiBjb25zdCk6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTV1NlcnZlcldvcmtlcjo6b3JpZ2luIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNXU2VydmVyV29ya2VyOjpzZWN1cml0eU9yaWdpbiBjb25zdCk6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oOgorCisyMDE4LTAzLTI0ICBDb21taXQg
UXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMjI5NzkyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTgzOTgwCisKKyAgICAgICAgbm90IGFjdHVhbGx5IG5lY2Vzc2FyeSAoUmVx
dWVzdGVkIGJ5IHRob3J0b24gb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdl
c2V0OgorCisgICAgICAgICJGaXggdGhlIGJ1aWxkIgorICAgICAgICBodHRwczovL3RyYWMud2Vi
a2l0Lm9yZy9jaGFuZ2VzZXQvMjI5NzkyCisKKzIwMTgtMDMtMjMgIFRpbSBIb3J0b24gIDx0aW1v
dGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IHRoZSBnZW9sb2NhdGlvbiBidWls
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTc1
CisKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL2lvcy9HZW9sb2NhdGlvblBvc2l0aW9u
SU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbjo6R2VvbG9jYXRp
b25Qb3NpdGlvbik6CisKKzIwMTgtMDMtMjMgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgRml4IHRoZSBidWlsZCB3aXRoIG5vIHBhc3RlYm9hcmQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzk3MworCisg
ICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCisKKyAgICAgICAgKiBDb25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvUGxh
dGZvcm1QYXN0ZWJvYXJkSU9TLm1tOgorCisyMDE4LTAzLTIzICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtFeHRyYSB6b29tIG1vZGVdIEZpeCBzb21l
IGxvY2FsaXphYmxlIHN0cmluZ3MgYWZ0ZXIgcjIyOTg3OAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
VGltIEhvcnRvbi4KKworICAgICAgICBUaGUgV0VCX1VJX1NUUklORyBtYWNybyB3YXMgaW5jb3Jy
ZWN0bHkgdXNlZCBmb3IgY2VydGFpbiBsb2NhbGl6ZWQgc3RyaW5ncyBwZXJ0YWluaW5nIHRvIGV4
dHJhIHpvb20gbW9kZS4gVG8KKyAgICAgICAgY29ycmVjdCB0aGlzLCBtYWtlIHRoZSAiRG9uZSIg
c3RyaW5nIHVzZSBXRUJfVUlfU1RSSU5HIHdpdGggYWN0dWFsIFVJLWZhY2luZyB0ZXh0OyBzaW5j
ZSBkYXksIHllYXIgYW5kIG1vbnRoCisgICAgICAgIGxhYmVscyBpbiB0aGUgZGF0ZSBwaWNrZXIg
YXJlIGxlc3MgZ2VuZXJhbGl6YWJsZSB0byBvdGhlciBVSSwgbGVhdmUgdGhlc2UgYXMgdW5pcXVl
IGtleXMsIGJ1dCBjaGFuZ2UgdGhlbSB0bworICAgICAgICB1c2UgV0VCX1VJX1NUUklOR19LRVkg
aW5zdGVhZC4KKworICAgICAgICBBZGRpdGlvbmFsbHksIHJlbW92ZSBub3ctdW51c2VkIGxvY2Fs
aXphYmxlIHN0cmluZ3MgZm9yIHRoZSB0ZXh0IGlucHV0IHZpZXcgY29udHJvbGxlci4KKworICAg
ICAgICAqIEVuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5nczoKKyAgICAgICAgKiBwbGF0
Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZvcm1Db250cm9s
RG9uZUJ1dHRvblRpdGxlKToKKyAgICAgICAgKFdlYkNvcmU6OmRhdGVQaWNrZXJEYXlMYWJlbFRp
dGxlKToKKyAgICAgICAgKFdlYkNvcmU6OmRhdGVQaWNrZXJNb250aExhYmVsVGl0bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6ZGF0ZVBpY2tlclllYXJMYWJlbFRpdGxlKToKKworMjAxOC0wMy0yMyAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE5ldHdvcmtTdGF0ZU5v
dGlmaWVyOjp1cGRhdGVTdGF0ZVdpdGhvdXROb3RpZnlpbmcoKSBpcyBpbmVmZmljaWVudAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNzYwCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8zNzA5MzI5OT4KKworICAgICAgICBSZXZpZXdlZCBieSBSeW9z
dWtlIE5pd2EuCisKKyAgICAgICAgVXBkYXRlIE5ldHdvcmtTdGF0ZU5vdGlmaWVyOjp1cGRhdGVT
dGF0ZVdpdGhvdXROb3RpZnlpbmcoKSB0byBzdG9wIGNhbGxpbmcKKyAgICAgICAgU0NEeW5hbWlj
U3RvcmVDb3B5S2V5TGlzdCgpLiBTQ0R5bmFtaWNTdG9yZUNvcHlLZXlMaXN0KCkgaXMgZXhwZW5z
aXZlIGFzIGl0CisgICAgICAgIGV4cGVjdHMgaXRzIGtleSBwYXJhbWV0ZXIgdG8gYmUgYSByZWd1
bGFyIGV4cHJlc3Npb24gYW5kIGl0IGNhbiBtYXRjaCBzZXZlcmFsCisgICAgICAgIGtleXMuIEl0
IGlzIGFsc28gdW5uZWNlc3NhcnkgaW4gb3VyIGNhc2Ugc2luY2Ugd2UgYWxyZWFkeSBoYXZlIGFu
IGV4YWN0IGtleS4KKyAgICAgICAgV2Ugbm93IGNhbGwgdGhlIG1vcmUgZWZmaWNpZW50IFNDRHlu
YW1pY1N0b3JlQ29weVZhbHVlKCkgaW5zdGVhZCwgd2hpY2ggaXMKKyAgICAgICAgdGhlIHJpZ2h0
IHRoaW5nIHRvIGNhbGwgd2hlbiB3ZSBoYXZlIGFuIGV4YWN0IGtleS4KKworICAgICAgICBUaGlz
IGNoYW5nZSB3YXMgc3VnZ2VzdGVkIGJ5IHRoZSBTQyB0ZWFtLgorCisgICAgICAgIFRoaXMgd2Fz
IHRlc3RlZCBtYW51YWxseSBhcyB0aGVyZSBpcyBubyBlYXN5IHdheSB0byB3cml0ZSBhbiBhdXRv
bWF0ZWQgdGVzdAorICAgICAgICBmb3IgdGhpcy4KKworICAgICAgICBJbiBhIGZvbGxvdy11cCwg
SSBhbHNvIHBsYW4gdG8gY2FsbCB0aGlzIGNvZGUgaW4gdGhlIFVJUHJvY2VzcyAob3IgTmV0d29y
a1Byb2Nlc3MpCisgICAgICAgIHRvIGF2b2lkIGNhbGxpbmcgaXQgb25jZSBwZXIgV2ViUHJvY2Vz
cy4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL05ldHdvcmtTdGF0ZU5vdGlmaWVy
TWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdGF0ZU5vdGlmaWVyOjp1cGRhdGVT
dGF0ZVdpdGhvdXROb3RpZnlpbmcpOgorCisyMDE4LTAzLTIzICBEYW5pZWwgQmF0ZXMgIDxkYWJh
dGVzQGFwcGxlLmNvbT4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjI5ODY4
LgorCisgICAgICAgIENhdXNlZCBtZWRpYSBjb250cm9scyB0ZXN0cyB0byB0aW1lb3V0LiBXaWxs
IGludmVzdGlnYXRlCisgICAgICAgIG9mZmxpbmUuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdl
c2V0OgorCisgICAgICAgICJDU1MgbWFzayBpbWFnZXMgc2hvdWxkIGJlIHJldHJpZXZlZCB1c2lu
ZyBwb3RlbnRpYWxseSBDT1JTLQorICAgICAgICBlbmFibGVkIGZldGNoIgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5OTgzCisgICAgICAgIGh0dHBz
Oi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMjk4NjgKKworMjAxOC0wMy0yMyAgTWFyayBM
YW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHBvaW50ZXIgcHJvZmlsaW5n
IGhvb2tzIHRvIHRoZSBDU1MgSklULgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTgzOTQ3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zODgwMzU5Mz4K
KworICAgICAgICBSZXZpZXdlZCBieSBKRiBCYXN0aWVuLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cyBuZWVkZWQuICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uKToKKyAgICAgICAgLSBBZGRlZCBhIG1pc3NpbmcgYXBwbGljYXRpb24gb2YgV1RGX1BS
RVBBUkVfVlRCTF9QT0lOVEVSX0ZPUl9JTlNQRUNUSU9OKCkuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNJbnRlcmZhY2VOYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U01hcExpa2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBMaWtlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdENFUmVhY3Rpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0
ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9u
c1N0cmluZ2lmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VP
YmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNy
ZWF0ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp0b0pTTmV3bHlDcmVhdGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0
b0pTTmV3bHlDcmVhdGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEl0ZXJhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJO
b0lkZW50aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNy
ZWF0ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pT
TmV3bHlDcmVhdGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVk
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVy
Tm9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJv
d2luZ0V4Y2VwdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0
aElkZW50aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJ
bmRleGVkR2V0dGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlckNhbGxX
aXRoLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9w
ZXJ0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdh
YmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp0b0pTTmV3bHlDcmVhdGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pT
TmV3bHlDcmVhdGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
UGx1Z2luSW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQp
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0
aW9uRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp0b0pTTmV3bHlDcmVhdGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6dG9KU05ld2x5Q3JlYXRlZCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlNOZXds
eUNyZWF0ZWQpOgorICAgICAgICAqIGNzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6cnVsZU1hdGNoZXMpOgorICAgICAg
ICAqIGNzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVj
dG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6Y29tcGlsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRl
U2VsZWN0b3JDaGVja2VyKToKKyAgICAgICAgKiBjc3NqaXQvU2VsZWN0b3JDb21waWxlci5oOgor
ICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDb21waWxlcjo6cnVsZUNvbGxlY3RvclNpbXBsZVNl
bGVjdG9yQ2hlY2tlckZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGls
ZXI6OnF1ZXJ5U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpTZWxlY3RvckNvbXBpbGVyOjpydWxlQ29sbGVjdG9yU2VsZWN0b3JDaGVja2Vy
RnVuY3Rpb25XaXRoQ2hlY2tpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9y
Q29tcGlsZXI6OnF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJGdW5jdGlvbldpdGhDaGVja2lu
Z0NvbnRleHQpOgorICAgICAgICAqIGRvbS9TZWxlY3RvclF1ZXJ5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGVDb21waWxlZFNpbmdsZU11bHRpU2VsZWN0
b3JEYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1
dGUgY29uc3QpOgorCisyMDE4LTAzLTIzICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29t
PgorCisgICAgICAgIExvY2FsIHN0b3JhZ2UgZ2V0SXRlbSgpIGZvciBhbiBlbXB0eSBzdHJpbmcg
cmV0dXJuZWQgVU5ERUZJTkVEIHZhbHVlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjkxMzgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEzNDEwOTc0
PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyYWR5IEVpZHNvbi4KKworICAgICAgICAqIHBsYXRm
b3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlU3Rh
dGVtZW50OjpnZXRDb2x1bW5CbG9iQXNTdHJpbmcpOgorCisyMDE4LTAzLTIzICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUHJvbXB0bHkgdGVybWluYXRlIHNlcnZp
Y2Ugd29ya2VyIHByb2Nlc3NlcyB3aGVuIHRoZXkgYXJlIG5vIGxvbmdlciBuZWVkZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzg3MworICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzg2NzY5OTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5u
IEZhYmxldC4KKworICAgICAgICBUaGUgU3RvcmFnZVByb2Nlc3Mgbm93IGtlZXBzIHRyYWNrIG9m
IHNlcnZpY2Ugd29ya2VyIGNsaWVudHMgZm9yIGVhY2ggc2VjdXJpdHkKKyAgICAgICAgb3JpZ2lu
LiBXaGVuIHRoZXJlIGlzIG5vIGxvbmdlciBhbnkgY2xpZW50cyBmb3IgYSBnaXZlbiBzZWN1cml0
eSBvcmlnaW4sIHRoZQorICAgICAgICBTdG9yYWdlUHJvY2VzcyBhc2tzIHRoZSBzZXJ2aWNlIHdv
cmtlciBwcm9jZXNzIGZvciB0aGUgZ2l2ZW4gb3JpZ2luIHRvIHRlcm1pbmF0ZQorICAgICAgICBh
bmQgc2V2ZXJzIGl0cyBjb25uZWN0aW9uIHRvIGl0LgorCisgICAgICAgIENoYW5nZSBpcyBjb3Zl
cmVkIGJ5IEFQSSB0ZXN0LgorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6bWFya0FsbFdvcmtlcnNGb3JP
cmlnaW5Bc1Rlcm1pbmF0ZWQpOgorICAgICAgICBQYXNzIHRoZSBzZWN1cml0eSBvcmlnaW4gc2lu
Y2UgdGhpcyBpcyBjYWxsZWQgd2hlbiBhIHNlcnZpY2Ugd29ya2VyIHByb2Nlc3MKKyAgICAgICAg
Y3Jhc2hlcy4gV2hlbiBhIHNlcnZpY2Ugd29ya2VyIHByb2Nlc3MgZm9yIG9yaWdpbiBBIGNyYXNo
ZXMsIHdlIG9ubHkgd2FudAorICAgICAgICB0byBtYXJrIHNlcnZpY2Ugd29ya2VycyBpbiBvcmln
aW4gQSBhcyB0ZXJtaW5hdGVkLCBub3QgQUxMIG9mIHRoZW0uCisKKyAgICAgICAgKFdlYkNvcmU6
OlNXU2VydmVyOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6U1dTZXJ2ZXI6OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlNXU2VydmVyOjpuZWVkc1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb25Gb3JPcmlnaW4g
Y29uc3QpOgorICAgICAgICBUd2VhayBsb2dpYyBzbyB0aGF0IHdlIG9ubHkgcmVsYXVuY2ggYSBz
ZXJ2aWNlIHdvcmtlciBwcm9jZXNzIGlmIHdlIHN0aWxsCisgICAgICAgIGhhdmUgY2xpZW50cyBm
b3IgaXRzIHNlY3VyaXR5IG9yaWdpbi4KKworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpkaXNhYmxlU2Vydmlj
ZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5KToKKyAgICAgICAgQWRkIGEgd2F5IHRvIGRp
c2FibGUgdGhlIHNlcnZpY2Ugd29ya2VyIHRlcm1pbmF0aW9uIGRlbGF5IHRvIGZhY2lsaXRhdGUK
KyAgICAgICAgdGVzdGluZy4KKworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmg6CisKKzIwMTgtMDMtMjMgIEJyYWR5IEVpZHNvbiAg
PGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIEdvIHRvIGJhY2svZm9yd2FyZCBsaXN0IGl0
ZW1zIGFmdGVyIGEgcHJvY2Vzcy1zd2FwcGVkIG5hdmlnYXRpb24uCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8zODY5MDU0ND4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODM5MjAKKworICAgICAgICBSZXZpZXdlZCBieSBBbmR5IEVzdGVzLgorCisgICAgICAg
IENvdmVyZWQgYnkgbmV3IEFQSSB0ZXN0LgorCisgICAgICAgIE1vc3Qgb2YgdGhlIGNoYW5nZXMg
dG8gV2ViQ29yZSBhcmUgdGVhY2hpbmcgSGlzdG9yeUl0ZW0gbmF2aWdhdGlvbnMgdG8ga25vdyB3
aGVuIHRoZXkgc2hvdWxkCisgICAgICAgIGRvIGEgcG9saWN5IGNoZWNrIG9yIG5vdC4KKworICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICAqIGhp
c3RvcnkvQmFja0ZvcndhcmRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tG
b3J3YXJkQ29udHJvbGxlcjo6Z29CYWNrT3JGb3J3YXJkKToKKyAgICAgICAgKFdlYkNvcmU6OkJh
Y2tGb3J3YXJkQ29udHJvbGxlcjo6Z29CYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tGb3J3
YXJkQ29udHJvbGxlcjo6Z29Gb3J3YXJkKToKKworICAgICAgICAqIGhpc3RvcnkvSGlzdG9yeUl0
ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06OnNldFN0YXRlT2JqZWN0KTog
QWN0dWFsbHkgcHVzaCBzdGF0ZSBvYmplY3QgY2hhbmdlcyB0byB0aGUgVUlQcm9jZXNzLgorICAg
ICAgICAgIFRoaXMgd2FzIGEgbG9uZyBzdGFuZGluZyBidWcgdGhhdCBtYWRlIGl0IGRpZmZpY3Vs
dCB0byBlZmZlY3RpdmVseSB0ZXN0IHRoaXMgY2hhbmdlLgorCisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkVVJMSW50
b0NoaWxkRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWREaWZmZXJl
bnREb2N1bWVudEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRJdGVt
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpyZXRyeUFmdGVyRmFpbGVkQ2FjaGVP
bmx5TWFpblJlc291cmNlTG9hZCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6Cisg
ICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaDoKKworICAgICAgICAqIGxvYWRlci9I
aXN0b3J5Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxl
cjo6Z29Ub0l0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xsZXI6OnNldERl
ZmVyc0xvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xsZXI6OnJlY3Vy
c2l2ZUdvVG9JdGVtKToKKyAgICAgICAgKiBsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaDoKKwor
ICAgICAgICAqIGxvYWRlci9OYXZpZ2F0aW9uUG9saWN5Q2hlY2suaDoKKworICAgICAgICAqIHBh
Z2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpnb1RvSXRlbSk6CisgICAgICAg
ICogcGFnZS9QYWdlLmg6CisKKzIwMTgtMDMtMjMgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBh
cHBsZS5jb20+CisKKyAgICAgICAgUmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzOiBGaXggZGVjb2Rl
ciBrZXkgaXNQcmV2YWxlbnRSZXNvdXJjZS0+aXNWZXJ5UHJldmFsZW50UmVzb3VyY2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzk1MAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzg4MDYyNzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQg
RnVsZ2hhbS4KKworICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M6OmRlY29kZSk6CisgICAg
ICAgICAgICBOb3cgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2UgaXMgZGVjb2RlZCB0byB0aGUgY29y
cmVjdCBmaWVsZC4KKworMjAxOC0wMy0yMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgV2ViUHJvY2Vzc1Bvb2wgc2hvdWxkIG5vdCBhc2sgdG8gcmVnaXN0ZXIg
YWxsIGNsaWVudHMgZm9yIGVhY2ggc2VydmljZSB3b3JrZXIgcHJvY2VzcyBjcmVhdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTQxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlz
dGluZyB1bml0IHRlc3RzLgorICAgICAgICBSZWdpc3RlciBhbGwgRG9jdW1lbnRzIG9mIGEgcHJv
Y2VzcyBubyBtYXR0ZXIgaXRzIHNlc3Npb24gSUQgd2hlbiBhc2tlZCB0by4KKyAgICAgICAgTWFr
ZSBzdXJlIHRoYXQgd2hlbmV2ZXIgYSBXZWJQcm9jZXNzIGlzIGFza2VkIHRvIGRvIHNvLCBhbnkg
ZnVydGhlciBEb2N1bWVudCB3aWxsIGJlIHJlZ2lzdGVyZWQKKyAgICAgICAgYnkgY2FsbGluZyBz
ZXRNYXlIYXZlUmVnaXN0ZXJlZFNlcnZpY2VXb3JrZXJzKCkuCisgICAgICAgIFRoaXMgZW5zdXJl
cyB0aGF0IGEgV2ViUHJvY2VzcyBjcmVhdGVkIGJlZm9yZSBhbnkgc2VydmljZSB3b3JrZXIgYnV0
IGVtcHR5IGF0IHRoZSB0aW1lIGEgc2VydmljZSB3b3JrZXIgaXMgY3JlYXRlZAorICAgICAgICB3
aWxsIGFjdHVhbGx5IHJlZ2lzdGVyIGFsbCBpdHMgZnV0dXJlIGNsaWVudHMuCisKKyAgICAgICAg
QWRkIHNvbWUgYXNzZXJ0aW9ucyB0byBlbnN1cmUgdGhhdCBhIGNsaWVudCBpcyBub3QgcmVnaXN0
ZXJlZCB0d2ljZS4KKworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUHJv
dmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclByb3ZpZGVyOjpyZWdp
c3RlclNlcnZpY2VXb3JrZXJDbGllbnRzKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlclByb3ZpZGVyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6cmVnaXN0ZXJTZXJ2aWNl
V29ya2VyQ2xpZW50KToKKworMjAxOC0wMy0yMyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29u
QGFwcGxlLmNvbT4KKworICAgICAgICBIVE1MRWxlbWVudCBmYWN0b3J5IGRvZXNuJ3QgbmVlZCB0
byBjYWxsIE1lZGlhUGxheWVyOjppc0F2YWlsYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTQ2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8z
ODgwMjY4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAg
IFRlc3Q6IG1lZGlhL21lZGlhLWRpc2FibGVkLmh0bWwKKworICAgICAgICAqIGRvbS9tYWtlX25h
bWVzLnBsOgorICAgICAgICAocHJpbnRDb25zdHJ1Y3RvckludGVyaW9yKToKKyAgICAgICAgKiBw
YWdlL1NldHRpbmdzLnlhbWw6CisgICAgICAgICogcGFnZS9TZXR0aW5nc0RlZmF1bHRWYWx1ZXMu
aDoKKworMjAxOC0wMy0yMyAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgorCisg
ICAgICAgIFN0b3AgdXNpbmcgZGlzcGF0Y2hfc2V0X3RhcmdldF9xdWV1ZSgpCisgICAgICAgIDxo
dHRwczovL3dlYmtpdC5vcmcvYi8xODM5MDg+CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzU1
MzUzMz4KKworICAgICAgICBSZXZpZXdlZCBieSBEYW5pZWwgQmF0ZXMuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzIHNpbmNlIG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5tbToKKyAgICAgICAgKFdl
YkNvcmU6Omdsb2JhVmlkZW9DYXB0dXJlU2VyaWFsUXVldWUpOiBSZW1vdmUgdXNlIG9mCisgICAg
ICAgIGRpc3BhdGNoX3NldF90YXJnZXRfcXVldWUoKSBieSBjaGFuZ2luZyBkaXNwYXRjaF9xdWV1
ZV9jcmVhdGUoKQorICAgICAgICB0byBkaXNwYXRjaF9xdWV1ZV9jcmVhdGVfd2l0aF90YXJnZXQo
KS4KKworMjAxOC0wMy0yMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgVXNlIGxpYndlYnJ0YyBPYmplY3RpdmVDIEgyNjQgZW5jb2RlciBhbmQgZGVjb2Rlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTEyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIE5vIG9ic2VydmFi
bGUgY2hhbmdlIG9mIGJlaGF2aW9yLgorICAgICAgICBNYWRlIHVzZSBvZiBsaWJ3ZWJydGMgV2Vi
S2l0IHV0aWxpdGllcy4KKyAgICAgICAgVXBkYXRlZCBSZWFsdGltZUlOY29taW5nVmlkZW9Tb3Vy
Y2VDb2NvYSBhcyBpdCBub3cgcmVjZWl2ZXMgT2JqY1ZpZGVvRnJhbWUuCisKKyAgICAgICAgKiBD
b25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50
eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlckNvY29h
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6On5MaWJXZWJS
VENQcm92aWRlckNvY29hKToKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyQ29j
b2E6OnNldEgyNjRIYXJkd2FyZUVuY29kZXJBbGxvd2VkKToKKyAgICAgICAgKFdlYkNvcmU6Okxp
YldlYlJUQ1Byb3ZpZGVyQ29jb2E6OmNyZWF0ZURlY29kZXJGYWN0b3J5KToKKyAgICAgICAgKFdl
YkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6OmNyZWF0ZUVuY29kZXJGYWN0b3J5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6OnNldEFjdGl2ZSk6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyQ29j
b2EuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWlu
Z1ZpZGVvU291cmNlQ29jb2EubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuY3BwLgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6OnBpeGVs
QnVmZmVyRnJvbVZpZGVvRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWlu
Z1ZpZGVvU291cmNlQ29jb2E6Ok9uRnJhbWUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxz
LmNwcDogUmVtb3ZlZCBjb21tZW50ZWQgb3V0IGluY2x1ZGUuCisKKzIwMTgtMDMtMjMgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIERvY3VtZW50VGhyZWFkYWJs
ZUxvYWRlciBzaG91bGQgc2VuZCBjcmVkZW50aWFscyBhZnRlciByZWRpcmVjdGlvbnMgYW5kIHBy
ZWZsaWdodCBpZiBmZXRjaCBvcHRpb24gY3JlZGVudGlhbHMgaXMgaW5jbHVkZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTI4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgVGVzdHM6IGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1jb29raWVzLXJlZGlyZWN0LmFu
eS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9jb3JzL2NvcnMtY29va2llcy1yZWRpcmVjdC5hbnkud29ya2VyLmh0bWwKKworICAg
ICAgICBJbiBjYXNlIG1vZGUgaXMgaW5jbHVkZSwga2VlcCBzZW5kaW5nIGNyZWRlbnRpYWxzIGV2
ZW4gYWZ0ZXIgcmVkaXJlY3Rpb24gd2l0aCBwcmVmbGlnaHQuCisKKyAgICAgICAgKiBsb2FkZXIv
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
VGhyZWFkYWJsZUxvYWRlcjo6cmVkaXJlY3RSZWNlaXZlZCk6CisKKzIwMTgtMDMtMjMgIFRpbSBI
b3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IHRoZSBidWls
ZCBhZnRlciByMjI5ODU4CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFw
aGljc0NvbnRleHQzRENvY29hLm1tOgorCisyMDE4LTAzLTIzICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyBmdWxseSB3aGl0ZWxpc3RlZCBwbHVnLWlu
cyB0byBtYXRjaCBub24gSFRUUCBVUkxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODM5MzgKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMzg1MzQzMTIK
KworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICBDb3ZlcmVkIGJ5
IG1hbnVhbCB0ZXN0aW5nIGFuZCB1bml0IHRlc3RpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9V
UkwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VVJMOjppc01hdGNoaW5nRG9tYWluIGNvbnN0KToK
KworMjAxOC0wMy0yMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAg
ICAgQWN0aXZlRE9NT2JqZWN0IHNob3VsZCBhc3NlcnQgdGhhdCB0aGV5IGFyZSBkZXN0cm95ZWQg
aW4gdGhlIHRocmVhZCB0aGV5IGFyZSBjcmVhdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM2NzEKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJp
cyBEdW1lei4KKworICAgICAgICBObyBjaGFuZ2Ugb2YgYmVoYXZpb3IuCisgICAgICAgIE1vdmVk
IE1lc3NhZ2VQb3J0IGFzc2VydGlvbiB0byBBY3RpdmVET01PYmplY3QuCisKKyAgICAgICAgKiBk
b20vQWN0aXZlRE9NT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjdGl2ZURPTU9iamVj
dDo6fkFjdGl2ZURPTU9iamVjdCk6CisgICAgICAgICogZG9tL0FjdGl2ZURPTU9iamVjdC5oOgor
ICAgICAgICAqIGRvbS9NZXNzYWdlUG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZXNzYWdl
UG9ydDo6fk1lc3NhZ2VQb3J0KToKKyAgICAgICAgKiBkb20vTWVzc2FnZVBvcnQuaDoKKworMjAx
OC0wMy0yMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgU2Fm
YXJpIFdlYktpdFdlYlJUQ0F1ZGlvTW9kdWxlIGNyYXNoIGR1cmluZyA8dmlkZW8+IHRhZyB1cGRh
dGUgd2hlbiBhdWRpbyB0cmFjayBwcmVzZW50IGluIE1lZGlhU3RyZWFtCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODExODAKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzM2MzAyMzc1PgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4K
KworICAgICAgICBUZXN0OiB3ZWJydGMvdmlkZW8tdXBkYXRlLW9mdGVuLmh0bWwKKworICAgICAg
ICBBdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtQ29jb2EgbmVlZHMgdG8gYmUgZGVzdHJveWVk
IGluIHRoZSBtYWluIHRocmVhZCBzaW5jZSBpdCBvd25zIGEgUmVmIHRvIGl0cyBNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZS4KKyAgICAgICAgV2UgY2FuIHN0aWxsIHJlZiBpdCBvbiBhIGJhY2tncm91
bmQgdGhyZWFkIGJ1dCB3ZSBhbHdheXMgZGVyZWYgaXQgb24gdGhlIG1haW4gdGhyZWFkLgorCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0F1ZGlvVHJhY2tQcml2YXRlTWVkaWFT
dHJlYW1Db2NvYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZU1lZGlh
U3RyZWFtQ29jb2E6OmF1ZGlvU2FtcGxlc0F2YWlsYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtQ29jb2E6OnJlbmRlcik6CisKKzIwMTgtMDMtMjMg
IFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nz
cy1ncmlkXSBGaXggYXV0byByZXBlYXQgdHJhY2tzIGNvbXB1dGF0aW9uIHdpdGggZGVmaW5pdGUg
bWluIHNpemVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODM5MzMKKworICAgICAgICBSZXZpZXdlZCBieSBKYXZpZXIgRmVybmFuZGV6LgorCisgICAg
ICAgIEluZGVmaW5pdGVseSBzaXplZCBjb250YWluZXJzIHVzZSB0aGUgc3BlY2lmaWVkIGRlZmlu
aXRlIG1pbi1zaXplIChpZiBhbnkpIGFzIGF2YWlsYWJsZQorICAgICAgICBzcGFjZSBpbiBvcmRl
ciB0byBjb21wdXRlIHRoZSBudW1iZXIgb2YgYXV0byByZXBlYXQgdHJhY2tzIHRvIGNyZWF0ZS4g
QSBidWcgaW4gdGhhdCBjb2RlIHdhcworICAgICAgICBjYXVzaW5nIHRoZSBncmlkIHRvIGJlIG9u
ZSB0cmFjayBsYXJnZXIgdGhhbiBleHBlY3RlZC4gVGhhdCB3YXMgb25seSBoYXBwZW5pbmcgaW4g
dGhlIGNhc2UKKyAgICAgICAgb2YgdGhlIGZyZWUgc3BhY2UgYmVpbmcgYSBtdWx0aXBsZSBvZiB0
aGUgdG90YWwgc2l6ZSBvZiB0aGUgYXV0b3JlcGVhdCB0cmFja3MuCisKKyAgICAgICAgVGVzdDog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvZ3JpZC1kZWZpbml0
aW9uL2dyaWQtaW5saW5lLWF1dG8tcmVwZWF0LTAwMS5odG1sCisKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpjb21wdXRl
QXV0b1JlcGVhdFRyYWNrc0NvdW50IGNvbnN0KToKKworMjAxOC0wMy0yMyAgTWlndWVsIEdvbWV6
ICA8bWFnb21lekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV0gQXZvaWQgc29mdHdh
cmUgY29sb3IgY29udmVyc2lvbiBpbnNpZGUgQml0bWFwVGV4dHVyZUdMCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM4OTIKKworICAgICAgICBSZXZp
ZXdlZCBieSDFvWFuIERvYmVyxaFlay4KKworICAgICAgICBBbHdheXMgdXNlIFJHQkEgZm9ybWF0
IG9uIEJpdG1hcFRleHR1cmVHTCAod2hlbiBubyBvdGhlciBmb3JtYXQgaXMgc3BlY2lmaWNhbGx5
IHJlcXVlc3RlZCkuIFdoZW4KKyAgICAgICAgdGhlIHRleHR1cmUgaXMgdXBkYXRlZCBmcm9tIEJH
UkEgY29udGVudCwgdXNlIGEgZmxhZyB0byBpbmRpY2F0ZSB0aGUgc2hhZGVyIHRvIHBlcmZvcm0g
YSBjb2xvcgorICAgICAgICBjb252ZXJzaW9uIGR1cmluZyB0aGUgcGFpbnRpbmcuIFRoaXMgd2F5
IHdlIGRvbid0IG5lZWQgdG8gc3dhcCB0aGUgUiBhbmQgQiBjb21wb25lbnRzIG9uIHRoZSBDUFUu
CisgICAgICAgIEFsc28sIHJlbW92ZSBvbmUgb2YgdGhlIGxpc3RzIGluIEJpdG1hcFRleHR1cmVQ
b29sIGFzIG5vdyBhbGwgb2YgdGhlbSBoYXZlIHRoZSBzYW1lIGZvcm1hdCwgYW5kCisgICAgICAg
IHJlbW92ZSB0aGUgVXBkYXRlQ29udGVudHNGbGFnIGFzIHdlIG5ldmVyIG5lZWQgdG8gbW9kaWZ5
IHRoZSBvcmlnaW5hbCBpbWFnZSBkYXRhLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RlbnQg
dGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJCYXNlOjp1cGRhdGVUZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpC
aXRtYXBUZXh0dXJlOjp1cGRhdGVDb250ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL0JpdG1hcFRleHR1cmUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1
cmVHTDo6Qml0bWFwVGV4dHVyZUdMKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVH
TDo6ZGlkUmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZUdMOjp1cGRhdGVD
b250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlR0w6OmFwcGx5RmlsdGVy
cyk6CisgICAgICAgIChXZWJDb3JlOjpzd2l6emxlQkdSQVRvUkdCQSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlR0w6OnVwZGF0ZUNvbnRlbnRzTm9Td2l6emxlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVy
ZUdMLmg6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBUZXh0dXJlR0w6OmNvbG9yQ29udmVydEZs
YWdzIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4
dHVyZVBvb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwVGV4dHVyZVBvb2w6OmFjcXVp
cmVUZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVQb29sOjpyZWxlYXNl
VW51c2VkVGV4dHVyZXNUaW1lckZpcmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvQml0bWFwVGV4dHVyZVBvb2wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OnVwZGF0ZUJhY2tpbmdTdG9yZUlmTmVlZGVkKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckNvbnRleHRB
dHRyaWJ1dGVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJDb250ZXh0QXR0
cmlidXRlczo6Z2V0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFw
cGVyR0w6OmRyYXdOdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckdMOjpk
cmF3VGV4dHVyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJHTC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyOjpwYWlu
dEludG9TdXJmYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVy
ZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXI6OnBhaW50VG9UZXh0dXJlTWFwcGVyKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclRpbGU6OnVwZGF0ZUNvbnRlbnRzKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGUuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0
b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9y
ZTo6dXBkYXRlQ29udGVudHNGcm9tSW1hZ2VJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpU
ZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNvbnRlbnRzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3Jl
Lmg6CisKKzIwMTgtMDMtMjMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+
CisKKyAgICAgICAgW1dURl0gQWRkIHN0YW5kYXJkIGNvbnRhaW5lcnMgd2l0aCBGYXN0QWxsb2Nh
dG9yIHNwZWNpYWxpemF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODM3ODkKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKwor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuaDoKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc291cmNlL1NhbXBsZU1hcC5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JP
UlZhbHVlLmg6CisgICAgICAgIEl0IGRpZCBub3QgdXNlIEZhc3RBbGxvY2F0b3IgZm9yIGl0cyBj
b250YWluZXIuCisKKyAgICAgICAgKiBwYWdlL1doZWVsRXZlbnRUZXN0VHJpZ2dlci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0ltYWdlRGVjb2RlckFW
Rk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9J
bWFnZURlY29kZXJBVkZPYmpDLm1tOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMubW06CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0
dXJlQ29waWVyQ1YuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WUNiQ3JUb1JHQk1hdHJpeEZvclJh
bmdlQW5kVHJhbnNmZXJGdW5jdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9tZWRpYXNv
dXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vd3Bl
L1BsYXRmb3JtUGFzdGVib2FyZFdQRS5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL09yZGVySXRl
cmF0b3IuaDoKKworMjAxOC0wMy0yMyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29t
PgorCisgICAgICAgIFtXZWIgQW5pbWF0aW9uc10gaW5maW5pdGUgcmVwZWF0IGNvdW50cyBhcmVu
J3QgcmVmbGVjdGVkIGZvciBDU1MgQW5pbWF0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVh
biBKYWNrc29uLgorCisgICAgICAgIFRoZSAiaW5maW5pdGUiIHZhbHVlIGZvciBhbmltYXRpb24t
cmVwZWF0LWNvdW50IGlzIHJlZmxlY3RlZCBhcyBhIHNwZWNpYWwgdmFsdWUgd2hpY2ggcmVzb2x2
ZXMgdG8gLTEuIFdlIG5lZWQgdG8gY2hlY2sKKyAgICAgICAgZm9yIHRoaXMgc3BlY2lhbCB2YWx1
ZSBiZWZvcmUgc2V0dGluZyB0aGUgaXRlcmF0aW9ucyBjb3VudCBvbiB0aGUgQW5pbWF0aW9uRWZm
ZWN0VGltaW5nUmVhZE9ubHkgb2JqZWN0LgorCisgICAgICAgICogYW5pbWF0aW9uL0NTU0FuaW1h
dGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NBbmltYXRpb246OnN5bmNQcm9wZXJ0aWVz
V2l0aEJhY2tpbmdBbmltYXRpb24pOgorCisyMDE4LTAzLTIyICBBbnRvaW5lIFF1aW50ICA8Z3Jh
b3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25zXSBDb3JyZWN0bHkgY2Fu
Y2VsIGFuaW1hdGlvbnMgd2hlbiBhIHBhcmVudCBnZXRzIGEgImRpc3BsYXk6IG5vbmUiIHN0eWxl
IG9yIHdoZW4gYW4gZWxlbWVudCBpcyByZW1vdmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5MTkKKworICAgICAgICBSZXZpZXdlZCBieSBEZWFu
IEphY2tzb24uCisKKyAgICAgICAgVGhlIG9sZCBDU1NBbmltYXRpb25Db250cm9sbGVyIHByb3Zp
ZGVkIGEgY2FuY2VsQW5pbWF0aW9ucyhFbGVtZW50JikgbWV0aG9kIHRoYXQgYWxsb3dlZCBmb3Ig
YW5pbWF0aW9ucyBmb3IgYSBnaXZlbiBlbGVtZW50CisgICAgICAgIHRvIGJlIGNhbmNlbGVkIHdo
ZW4gYSBwYXJlbnQgZWxlbWVudCBpbiB0aGUgaGllcmFyY2h5IGdldHMgYSAiZGlzcGxheTogbm9u
ZSIgc3R5bGUgb3IgaWYgYW4gZWxlbWVudCB3aXRoIGFuaW1hdGlvbnMgaXMgcmVtb3ZlZC4KKyAg
ICAgICAgV2UgYWRkIGEgc2ltaWxhciBjYW5jZWxBbmltYXRpb25zRm9yRWxlbWVudChFbGVtZW50
JikgbWV0aG9kIG9uIEFuaW1hdGlvblRpbWVsaW5lIGFuZCB1cGRhdGUgQ1NTQW5pbWF0aW9uQ29u
dHJvbGxlcjo6Y2FuY2VsQW5pbWF0aW9ucygpCisgICAgICAgIGNhbGwgc2l0ZXMgdG8gdXNlIEFu
aW1hdGlvblRpbWVsaW5lOjpjYW5jZWxBbmltYXRpb25zRm9yRWxlbWVudCgpIHdoZW4gdGhlIGZs
YWcgdG8gdXNlIFdlYiBBbmltYXRpb25zIGlzIG9uLgorCisgICAgICAgICogYW5pbWF0aW9uL0Fu
aW1hdGlvblRpbWVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvblRpbWVsaW5l
OjpjYW5jZWxBbmltYXRpb25zRm9yRWxlbWVudCk6IEl0ZXJhdGUgb3ZlciBhbGwgYW5pbWF0aW9u
cyBmb3IgdGhlIHByb3ZpZGVkIGVsZW1lbnQgYW5kIGNhbGwgY2FuY2VsKCkgb24gdGhlbS4KKyAg
ICAgICAgKiBhbmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUuaDoKKyAgICAgICAgKiBhbmltYXRp
b24vRG9jdW1lbnRUaW1lbGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVs
aW5lOjphbmltYXRlZFN0eWxlRm9yUmVuZGVyZXIpOiBEcml2ZS1ieSBmaXggd2hpbGUgSSB3YXMg
cmV2aWV3ZWQgY2FsbCBzaXRlcyB0byBhbmltYXRpb25zRm9yRWxlbWVudCgpIHRvIG1ha2UKKyAg
ICAgICAgc3VyZSB3ZSBkb24ndCBjcmVhdGUgZXh0cmEgUmVmUHRyPD4gb2JqZWN0cy4KKyAgICAg
ICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpyZW1vdmVk
RnJvbUFuY2VzdG9yKTogQ2FsbCBBbmltYXRpb25UaW1lbGluZTo6Y2FuY2VsQW5pbWF0aW9uc0Zv
ckVsZW1lbnQoKSBpZiB0aGUgV2ViIEFuaW1hdGlvbnMgZmxhZyBpcyBvbiB3aGVuIGFuCisgICAg
ICAgIGVsZW1lbnQgaXMgcmVtb3ZlZC4KKyAgICAgICAgKiBkb20vUHNldWRvRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQc2V1ZG9FbGVtZW50OjpjbGVhckhvc3RFbGVtZW50KTogQ2Fs
bCBBbmltYXRpb25UaW1lbGluZTo6Y2FuY2VsQW5pbWF0aW9uc0ZvckVsZW1lbnQoKSBpZiB0aGUg
V2ViIEFuaW1hdGlvbnMgZmxhZyBpcyBvbiB3aGVuCisgICAgICAgIGEgcHNldWRvLWVsZW1lbnQg
aXMgcmVtb3ZlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVVwZGF0ZXI6OnRlYXJEb3duUmVu
ZGVyZXJzKTogQ2FsbCBBbmltYXRpb25UaW1lbGluZTo6Y2FuY2VsQW5pbWF0aW9uc0ZvckVsZW1l
bnQoKSBpZiB0aGUgV2ViIEFuaW1hdGlvbnMgZmxhZyBpcyBvbgorICAgICAgICBmb3IgYWxsIGNo
aWxkcmVuIGVsZW1lbnRzIHdoZW4gYW4gZWxlbWVudCBnZXRzIGEgImRpc3BsYXk6IG5vbmUiIHN0
eWxlLgorCisyMDE4LTAzLTIzICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisK
KyAgICAgICAgW1dlYiBBbmltYXRpb25zXSBBbmltYXRlZCB0cmFuc2Zvcm0gc3R5bGVzIGFyZSBp
Z25vcmVkIHdoZW4gY2FsbGluZyBnZXRDb21wdXRlZFN0eWxlKCkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzkxOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAgICBTdHJpY3RseSBsb29raW5nIGF0IHdoZXRoZXIg
dGhlIHJlbmRlcmVyIGhhcyBhIHRyYW5zZm9ybSBpcyBhIGJhZCBpZGVhIHdoZW4gZGV0ZXJtaW5p
bmcgd2hldGhlciBhCisgICAgICAgIHRyYW5zZm9ybSBpcyBhcHBsaWVkIGZvciBhbiBlbGVtZW50
LiBMb29raW5nIGF0IHRoZSBSZW5kZXJTdHlsZSBpcyBwcmVmZXJhYmxlIGJlY2F1c2UgaW4gdGhl
IGNhc2UKKyAgICAgICAgb2YgYW5pbWF0aW9ucyBydW5uaW5nIG9uIHRoZSBjb21wb3NpdG9yLCBz
dWNoIGFzIGEgdHJhbnNmb3JtLW9ubHkgYW5pbWF0aW9uIG9yIHRyYW5zaXRpb24sIHRoZQorICAg
ICAgICByZW5kZXJlciBkb2Vzbid0IG5lY2Vzc2FyaWx5IGhhdmUgYSB0cmFuc2Zvcm0gc3R5bGUg
b24gaXQsIHNpbmNlIHdlIGRvbid0IGJsZW5kIHByb3BlcnRpZXMgaW4KKyAgICAgICAgc29mdHdh
cmUgYXMgdGhlIGFuaW1hdGlvbiBwcm9ncmVzc2VzLiBJbnN0ZWFkLCBhbGwgb2YgdGhlIGJsZW5k
aW5nIGlzIHBlcmZvcm1lZCBieSB0aGUgY29tcG9zaXRvciwKKyAgICAgICAgYW5kIG9ubHkgdGhl
IGNvbXB1dGVkIHN0eWxlIG9iamVjdCBoYXMgdGhlIHNvZnR3YXJlLWJsZW5kZWQgdHJhbnNmb3Jt
IHN0eWxlIG9uIGl0LgorCisgICAgICAgIFdlIGRvIG5lZWQgdG8gYWNjb3VudCBmb3IgaW5saW5l
IHJlbmRlcmVycyB0aG91Z2ggYXMgdGhlc2UgZG8gbm90IHN1cHBvcnQgdHJhbnNmb3Jtcy4KKwor
ICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y29tcHV0ZWRUcmFuc2Zvcm0pOgorCisyMDE4LTAzLTIyICBBbnRvaW5lIFF1aW50
ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25zXSBTdXBwb3J0
ICJ0cmFuc2l0aW9uOiBhbGwiIGZvciBDU1MgVHJhbnNpdGlvbnMgYXMgV2ViIEFuaW1hdGlvbnMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzkxNwor
CisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAgICBXZSBub3cgc3Vw
cG9ydCAidHJhbnNpdGlvbjogYWxsIiBDU1MgVHJhbnNpdGlvbnMgYnkgaXRlcmF0aW5nIG92ZXIg
YWxsIGtub3duIENTUyBwcm9wZXJ0aWVzIHNob3VsZCB0aGUgbW9kZQorICAgICAgICBvZiB0aGUg
YmFja2luZyBhbmltYXRpb24gYmUgQW5pbWF0ZUFsbC4gQW55IHByb3BlcnR5IHRoYXQgd2UgZmlu
ZCB0byBoYXZlIGEgZGlmZmVyZW50IHZhbHVlIGluIHRoZSBwcmV2aW91cworICAgICAgICBhbmQg
Y3VycmVudCBzdHlsZSB3aWxsIGhhdmUgYSBiYWNraW5nIENTU1RyYW5zaXRpb24gb2JqZWN0IGNy
ZWF0ZWQgZm9yIGl0LiBUbyBzdXBwb3J0IHRoaXMsIHdlIG5vdyBleHBsaWNpdGx5CisgICAgICAg
IHByb3ZpZGUgYSBDU1NQcm9wZXJ0eUlEIHdoZW4gY3JlYXRpbmcgYSBDU1NUcmFuc2l0aW9uIHNp
bmNlIHdlIGNhbiBubyBsb25nZXIgaW5mZXIgdGhlIHRyYW5zaXRpb24gcHJvcGVydHkKKyAgICAg
ICAgZnJvbSB0aGUgYmFja2luZyBhbmltYXRpb24sIGFzIEFuaW1hdGlvbiBvYmplY3RzIHdpdGgg
bW9kZSBBbmltYXRlQWxsIHJlcG9ydCBDU1NQcm9wZXJ0eUludmFsaWQgYXMgdGhlaXIKKyAgICAg
ICAgcHJvcGVydHkuCisKKyAgICAgICAgKiBhbmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkQmFja2luZ0FuaW1hdGlvbkJlQ29uc2lkZXJlZEZv
ckNTU1RyYW5zaXRpb24pOiBOZXcgbWV0aG9kIHRoYXQgY2hlY2tzIHdoZXRoZXIgYSBnaXZlbiBi
YWNraW5nCisgICAgICAgIEFuaW1hdGlvbiBvYmplY3QgaXMgc3VpdGFibGUgZm9yIGNvbnNpZGVy
YXRpb24gYXMgYSBDU1NUcmFuc2l0aW9uLCB3aGVyZSB0aGUgbW9kZSBtdXN0IG5vdCBiZSBlaXRo
ZXIgQW5pbWF0ZU5vbmUKKyAgICAgICAgb3IgQW5pbWF0ZVVua25vd25Qcm9wZXJ0eSwgYW5kIHNo
b3VsZCB0aGUgbW9kZSBiZSBBbmltYXRlU2luZ2xlUHJvcGVydHksIHRoZSBwcm9wZXJ0eSBtdXN0
IG5vdCBiZSBDU1NQcm9wZXJ0eUludmFsaWQuCisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25U
aW1lbGluZTo6dXBkYXRlQ1NTVHJhbnNpdGlvbnNGb3JFbGVtZW50KTogV2Ugbm93IGFzc2VtYmxl
IHRoZSBsaXN0IG9mIHByZXZpb3VzbHkgYW5pbWF0ZWQKKyAgICAgICAgcHJvcGVydGllcyBieSBs
b29raW5nIGF0IHRoZSBtX2VsZW1lbnRUb0NTU1RyYW5zaXRpb25CeUNTU1Byb3BlcnR5SUQgbWFw
IGFuZCBnZXR0aW5nIGl0cyBrZXlzLiBUaGVuIHdlIGNvbXBpbGUKKyAgICAgICAgYWxsIGJhY2tp
bmcgQW5pbWF0aW9uIG9iamVjdHMgZm91bmQgaW4gdGhlIG9sZCBzdHlsZSB0aGF0IG1hdGNoIHRo
ZSBjb25kaXRpb25zIGVuZm9yY2VkIGJ5IHRoZSBuZXcgbWV0aG9kCisgICAgICAgIHNob3VsZEJh
Y2tpbmdBbmltYXRpb25CZUNvbnNpZGVyZWRGb3JDU1NUcmFuc2l0aW9uKCkuIFRoZW4gYXMgd2Ug
aXRlcmF0ZSBvdmVyIGJhY2tpbmcgQW5pbWF0aW9uIG9iamVjdHMgZm91bmQKKyAgICAgICAgaW4g
dGhlIG5ldyBzdHlsZSwgd2UgaXRlcmF0ZSBvdmVyIGFsbCBrbm93biBDU1MgcHJvcGVydGllcyBp
ZiB0aGUgbW9kZSBpcyBBbmltYXRlQWxsLCBpbmRpY2F0aW5nIHRoYXQgd2UncmUgZGVhbGluZwor
ICAgICAgICB3aXRoIGEgInRyYW5zaXRpb246IGFsbCIgc3R5bGUuIElmIHdlJ3JlIGRlYWxpbmcg
d2l0aCBhIHNpbmdsZSBwcm9wZXJ0eSwgd2Ugb25seSBwcm9jZXNzIHRoYXQgc2luZ2xlIHByb3Bl
cnR5LgorICAgICAgICAqIGFuaW1hdGlvbi9DU1NUcmFuc2l0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1RyYW5zaXRpb246OmNyZWF0ZSk6IEV4cGVjdCBhIG5ldyBDU1NQcm9wZXJ0eUlE
IHBhcmFtZXRlciB3aGVuIGNyZWF0aW5nIGEgbmV3IENTU1RyYW5zaXRpb24gc2luY2UKKyAgICAg
ICAgd2UgY2FuIG5vIGxvbmdlciBpbmZlciBpdCBmcm9tIHRoZSBiYWNraW5nIEFuaW1hdGlvbiBv
YmplY3QuCisgICAgICAgIChXZWJDb3JlOjpDU1NUcmFuc2l0aW9uOjpDU1NUcmFuc2l0aW9uKTog
RXhwZWN0IGEgbmV3IENTU1Byb3BlcnR5SUQgcGFyYW1ldGVyIHdoZW4gY3JlYXRpbmcgYSBuZXcg
Q1NTVHJhbnNpdGlvbgorICAgICAgICBzaW5jZSB3ZSBjYW4gbm8gbG9uZ2VyIGluZmVyIGl0IGZy
b20gdGhlIGJhY2tpbmcgQW5pbWF0aW9uIG9iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1Ry
YW5zaXRpb246Om1hdGNoZXNCYWNraW5nQW5pbWF0aW9uQW5kU3R5bGVzIGNvbnN0KTogV2UgY2Fu
IG5vIGxvbmdlciB1c2UgdGhlID09IG92ZXJsb2FkZWQgb3BlcmF0b3IKKyAgICAgICAgZm9yIGJh
Y2tpbmcgQW5pbWF0aW9uIG9iamVjdHMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlaXIgcmVzcGVj
dGl2ZSBwcm9wZXJ0aWVzIG1hdGNoIHNpbmNlIHRoaXMgd291bGQgY29tcGFyZSB0aGUKKyAgICAg
ICAgInByb3BlcnR5IiBtZW1iZXIgb2YgYm90aCBBbmltYXRpb24gb2JqZWN0cyBhbmQgd2hlbiBn
b2luZyBmcm9tIGEgInRyYW5zaXRpb246IGFsbCIgc3R5bGUgdG8gb25lIHRhcmdldGluZyBhIHNp
bmdsZQorICAgICAgICBwcm9wZXJ0eSwgd2Ugd291bGQgZmFsc2VseSBpZGVudGlmeSBtaXMtbWF0
Y2hpbmcgQW5pbWF0aW9uIG9iamVjdHMuIEluc3RlYWQsIHdlIHBhc3MgYSBmYWxzZSBmbGFnIHRv
IGFuaW1hdGlvbnNNYXRjaCgpCisgICAgICAgIHdoaWNoIGluZGljYXRlcyB0aGF0IHdlIGRvbid0
IGNhcmUgYWJvdXQgbWF0Y2hpbmcgdGhlIHRyYW5zaXRpb24gcHJvcGVydHkgaXRzZWxmLgorICAg
ICAgICAqIGFuaW1hdGlvbi9DU1NUcmFuc2l0aW9uLmg6IEV4cG9zZSBhIG5ldyBwcm9wZXJ0eSgp
IGFjY2Vzc29yIHdoaWNoIHJldHVybnMgdGhlIENTU1Byb3BlcnR5SUQgcGFzc2VkIGF0IGNvbnN0
cnVjdGlvbi4KKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3RSZWFkT25seS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdFJlYWRPbmx5Ojpjb21wdXRlQ1NTVHJh
bnNpdGlvbkJsZW5kaW5nS2V5ZnJhbWVzKTogVXNlIHRoZSBuZXcgcHJvcGVydHkoKSBhY2Nlc3Nv
ciBvbgorICAgICAgICBDU1NUcmFuc2l0aW9uIHRvIGdldCBhdCB0aGUgdHJhbnNpdGlvbiBwcm9w
ZXJ0eS4KKyAgICAgICAgKiBwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFuaW1hdGlvbjo6YW5pbWF0aW9uc01hdGNoIGNvbnN0KTogUmVwbGFjZSB0
aGUgYm9vbGVhbiBwYXJhbWV0ZXIsIHdoaWNoIHdhcyBub3QgaW4gdXNlIGluIFdlYkNvcmUsIHRv
IGluZGljYXRlCisgICAgICAgIHdoZXRoZXIgd2Ugc2hvdWxkIG1hdGNoIHRoZSBwcm9wZXJ0eS1y
ZWxhdGVkIGZpZWxkcy4gV2UgbmVlZCB0aGlzIGluIENTU1RyYW5zaXRpb246Om1hdGNoZXNCYWNr
aW5nQW5pbWF0aW9uQW5kU3R5bGVzKCkuCisgICAgICAgICogcGxhdGZvcm0vYW5pbWF0aW9uL0Fu
aW1hdGlvbi5oOgorCisyMDE4LTAzLTIyICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgorCisgICAgICAgIEFkb3B0IFdLX0FMVEVSTkFURV9GUkFNRVdPUktTX0RJUiBpbiBX
ZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODM5MzAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM4NzgyMjQ5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IERhbiBCZXJuc3RlaW4uCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9CYXNlLnhj
Y29uZmlnOgorICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWc6CisgICAg
ICAgICogQ29uZmlndXJhdGlvbnMvV2ViQ29yZVRlc3RTdXBwb3J0LnhjY29uZmlnOgorCisyMDE4
LTAzLTIyICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjI5ODc2LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTI5CisKKyAgICAgICAgU29tZSB3ZWJydGMg
dGVzdHMgYXJlIHRpbWluZyBvdXQgb24gaU9TIHNpbXVsYXRvciAoUmVxdWVzdGVkCisgICAgICAg
IGJ5IHlvdWVubiBvbiAjd2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisK
KyAgICAgICAgIlVzZSBsaWJ3ZWJydGMgT2JqZWN0aXZlQyBIMjY0IGVuY29kZXIgYW5kIGRlY29k
ZXIiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5
MTIKKyAgICAgICAgaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIyOTg3NgorCisy
MDE4LTAzLTIyICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAg
ICAgICAgRXhwb3NlIG1vcmUgc3lzdGVtIGNvbG9ycyB2aWEgQ1NTCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM3NjQKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzM2OTc1ODk4PgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAg
ICAgICAgVGVzdDogZmFzdC9jc3MvYXBwbGUtc3lzdGVtLWNvbnRyb2wtY29sb3JzLmh0bWwKKwor
ICAgICAgICBFeHBvc2UgQXBwbGUgc3BlY2lmaWMgc3lzdGVtIGNvbG9ycyB2aWEgQ1NTLgorCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OnN5c3RlbUNvbG9yIGNvbnN0KToKKworMjAxOC0wMy0yMiAgTmFuIFdh
bmcgIDxuX3dhbmdAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBXZWIgdGFibGUgcm93IGNvdW50
IGlzIGluY29ycmVjdCB3aGVuIHJvbGUgcm93IGlzIGFkZGVkIHRvIDx0cj4gaW4gRE9NCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5MjIKKworICAg
ICAgICBSZXZpZXdlZCBieSBDaHJpcyBGbGVpemFjaC4KKworICAgICAgICBBbHRob3VnaCB0aGUg
cGFyZW50IHRhYmxlIGZvciBhbiBBUklBIGdyaWQgcm93IHNob3VsZCBiZSBhbiBBUklBIHRhYmxl
LCB3ZQorICAgICAgICBzaG91bGQgcmV0dXJuIHRoZSBuYXRpdmUgdGFibGUgaWYgdGhlIHJvdyBp
cyBuYXRpdmUgPHRyPi4KKworICAgICAgICBUZXN0OiBhY2Nlc3NpYmlsaXR5L3Jvdy13aXRoLWFy
aWEtcm9sZS1pbi1uYXRpdmUtdGFibGUuaHRtbAorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eUFSSUFHcmlkUm93OjpwYXJlbnRUYWJsZSBjb25zdCk6CisKKzIwMTgtMDMtMjIgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBJbmNsdWRlIHNlY3VyaXR5IG9y
aWdpbiBpbiB0aGUgc2VydmljZSB3b3JrZXIgcHJvY2VzcyBuYW1lCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5MTMKKworICAgICAgICBSZXZpZXdl
ZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIFVwZGF0ZWQgbG9jYWxpemFibGUgc3RyaW5n
cy4KKworICAgICAgICAqIEVuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5nczoKKworMjAx
OC0wMy0yMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNl
IGxpYndlYnJ0YyBPYmplY3RpdmVDIEgyNjQgZW5jb2RlciBhbmQgZGVjb2RlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTEyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIE5vIG9ic2VydmFibGUgY2hhbmdl
IG9mIGJlaGF2aW9yLgorICAgICAgICBNYWRlIHVzZSBvZiBsaWJ3ZWJydGMgV2ViS2l0IHV0aWxp
dGllcy4KKyAgICAgICAgVXBkYXRlZCBSZWFsdGltZUlOY29taW5nVmlkZW9Tb3VyY2VDb2NvYSBh
cyBpdCBub3cgcmVjZWl2ZXMgT2JqY1ZpZGVvRnJhbWUuCisKKyAgICAgICAgKiBDb25maWd1cmF0
aW9ucy9XZWJDb3JlLnhjY29uZmlnOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlckNvY29hLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6On5MaWJXZWJSVENQcm92aWRl
ckNvY29hKToKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6OnNldEgy
NjRIYXJkd2FyZUVuY29kZXJBbGxvd2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkxpYldlYlJUQ1By
b3ZpZGVyQ29jb2E6OmNyZWF0ZURlY29kZXJGYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Okxp
YldlYlJUQ1Byb3ZpZGVyQ29jb2E6OmNyZWF0ZUVuY29kZXJGYWN0b3J5KToKKyAgICAgICAgKFdl
YkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6OnNldEFjdGl2ZSk6CisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyQ29jb2EuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlQ29jb2EubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuY3BwLgorICAgICAgICAo
V2ViQ29yZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6OnBpeGVsQnVmZmVyRnJv
bVZpZGVvRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlQ29jb2E6Ok9uRnJhbWUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDogUmVt
b3ZlZCBjb21tZW50ZWQgb3V0IGluY2x1ZGUuCisKKzIwMTgtMDMtMjIgIE1pY2hhZWwgQ2F0YW56
YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgZml4IGZv
cm1hdCBzdHJpbmcgd2FybmluZ3MgaW4gc2VydmljZSB3b3JrZXIgY29kZQorCisgICAgICAgIE9u
IExpbnV4IHg4Nl82NCwgdWludDY0X3QgaXMgdW5zaWduZWQgbG9uZywgbm90IHVuc2lnbmVkIGxv
bmcgbG9uZy4KKworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFp
bmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OmFkZFJl
Z2lzdHJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpy
ZW1vdmVSZWdpc3RyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRh
aW5lcjo6dXBkYXRlUmVnaXN0cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJDb250YWluZXI6OmpvYkZhaWxlZFdpdGhFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
U2VydmljZVdvcmtlckNvbnRhaW5lcjo6am9iUmVzb2x2ZWRXaXRoUmVnaXN0cmF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OmpvYlJlc29sdmVkV2l0aFVu
cmVnaXN0cmF0aW9uUmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250
YWluZXI6OnN0YXJ0U2NyaXB0RmV0Y2hGb3JKb2IpOgorICAgICAgICAoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlckNvbnRhaW5lcjo6am9iRmluaXNoZWRMb2FkaW5nU2NyaXB0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OmpvYkZhaWxlZExvYWRpbmdTY3JpcHQpOgor
CisyMDE4LTAzLTIyICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAg
ICBFeHBvc2UgU2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyQXNDYW5EaXNwbGF5T25seUlmQ2FuUmVx
dWVzdCgpIGFzIFdlYktpdCBTUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4MzkwNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzg3NTkxMjc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBFeHBvcnRz
IFNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlckFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3QoKSBz
byB0aGF0IHdlIGNhbiB1c2UgaXQgZnJvbSBXZWJLaXQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9T
Y2hlbWVSZWdpc3RyeS5oOgorCisyMDE4LTAzLTIyICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFw
cGxlLmNvbT4KKworICAgICAgICBDU1MgbWFzayBpbWFnZXMgc2hvdWxkIGJlIHJldHJpZXZlZCB1
c2luZyBwb3RlbnRpYWxseSBDT1JTLWVuYWJsZWQgZmV0Y2gKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3OTk4MworICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMzU2NzgxNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAg
ICAgICBBcyBwZXIgPGh0dHBzOi8vZHJhZnRzLmZ4dGYub3JnL2Nzcy1tYXNraW5nLTEvI3ByaXYt
c2VjPiAoRWRpdG9yJ3MgRHJhZnQsIDIzIERlY2VtYmVyIDIwMTcpCisgICAgICAgIHdlIHNob3Vs
ZCBmZXRjaCBDU1MgbWFzayBpbWFnZXMgdXNpbmcgYSBwb3RlbnRpYWxseSBDT1JTLWVuYWJsZWQg
ZmV0Y2guCisKKyAgICAgICAgQm90aCBjcm9zcy1vcmlnaW4gQ1NTIHNoYXBlLW91dHNpZGUgaW1h
Z2VzIGFuZCBDU1MgbWFzayBpbWFnZXMgbWF5IGJlIHNlbnNpdGl2ZSB0byB0aW1pbmcKKyAgICAg
ICAgYXR0YWNrcyB0aGF0IGNhbiBiZSB1c2VkIHRvIHJldmVhbCB0aGVpciBwaXhlbCBkYXRhIHdo
ZW4gcmV0cmlldmVkIHdpdGhvdXQgcmVnYXJkIHRvIENPUlMuCisgICAgICAgIEZvciB0aGUgc2Ft
ZSByZWFzb24gdGhhdCB3ZSBmZXRjaCBDU1Mgc2hhcGUtb3V0c2lkZSBpbWFnZXMgdXNpbmcgYSBw
b3RlbnRpYWxseSBDT1JTLWVuYWJsZWQKKyAgICAgICAgZmV0Y2ggd2Ugc2hvdWxkIGZldGNoIENT
UyBtYXNrIHRoZSBzYW1lIHdheS4gVGhpcyBhbHNvIG1ha2VzIHRoZSBiZWhhdmlvciBvZiBXZWJL
aXQgbW9yZQorICAgICAgICBjbG9zZWx5IGFsaWduIHdpdGggdGhlIGJlaGF2aW9yIGluIHRoZSBz
cGVjLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvc2VjdXJpdHkvY3NzLW1hc2staW1hZ2Uu
aHRtbAorCisgICAgICAgICogc3R5bGUvU3R5bGVQZW5kaW5nUmVzb3VyY2VzLmNwcDogU3Vic3Rp
dHV0ZSBMb2FkUG9saWN5OjpOb0NPUlMgYW5kIExvYWRQb2xpY3k6OkFub255bW91cyBmb3IKKyAg
ICAgICAgTG9hZFBvbGljeTo6Tm9ybWFsIGFuZCBMb2FkUG9saWN5OjpTaGFwZU91dHNpZGUsIHJl
c3BlY3RpdmVseSwgdG8gbWF0Y2ggdGhlIHRlcm1pbm9sb2d5IHVzZWQKKyAgICAgICAgaW4gdGhl
IEhUTUwsIENTUyBTaGFwZXMgTW9kdWxlIExldmVsIDEsIGFuZCBDU1MgTWFza2luZyBNb2R1bGUg
TGV2ZWwgMSBzcGVjcy4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpsb2FkUGVuZGluZ0ltYWdl
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6bG9hZFBlbmRpbmdSZXNvdXJjZXMp
OiBVc2UgbG9hZCBwb2xpY3kgTG9hZFBvbGljeTo6QW5vbnltb3VzIHdoZW4gZmV0Y2hpbmcKKyAg
ICAgICAgYSBtYXNrIGltYWdlIG9yIHNoYXBlLW91dHNpZGUgaW1hZ2UuCisKKzIwMTgtMDMtMjIg
IFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbU2ltcGxlIGxpbmUg
bGF5b3V0XSBUZXh0IHdpdGggbGV0dGVyIHNwYWNpbmcgaXMgbm90IHBvc2l0aW9uZWQgcHJvcGVy
bHkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODMw
NzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM4NzYyNTY5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIFdlIG5lZWQgdG8gcmVjb21wdXRlIFJlbmRl
clRleHQ6Om1fY2FuVXNlU2ltcGxpZmllZFRleHRNZWFzdXJpbmcgd2hlbiB0aGUgZm9udCBjYXNj
YWRlIGNoYW5nZXMKKyAgICAgICAgc2luY2Ugd2UgbWlnaHQgbm90IGJlIGFibGUgdG8gdXNlIHRo
ZSBmYXN0IHBhdGggYW55bW9yZS4KKworICAgICAgICBUZXN0OiBmYXN0L3RleHQvc2ltcGxlLWxp
bmUtbGF5b3V0LWR5bmFtaWMtbGV0dGVyLXdvcmQtc3BhY2luZy5odG1sCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Ojpz
dHlsZURpZENoYW5nZSk6CisKKzIwMTgtMDMtMjEgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFw
cGxlLmNvbT4KKworICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIE1ha2UgaW1wb3J0ZWQvbW96aWxs
YS9jc3MtYW5pbWF0aW9ucy90ZXN0X2V2ZW50LWRpc3BhdGNoLmh0bWwgcGFzcyByZWxpYWJseQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzODQ1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIEZpbmlzaCB0aGUg
d29yayB0byBnZXQgRE9NIGV2ZW50cyBmb3IgQ1NTIEFuaW1hdGlvbnMgYW5kIENTUyBUcmFuc2l0
aW9ucyBkaXNwYXRjaGluZyBhcyBzcGVjaWZpZWQuCisKKyAgICAgICAgKiBhbmltYXRpb24vQW5p
bWF0aW9uRWZmZWN0UmVhZE9ubHkuY3BwOiBNb3ZlIHRpbWVFcHNpbG9uIHRvIGJlIHNoYXJlZCBh
cyBwYXJ0IG9mIFdlYkFuaW1hdGlvblV0aWxpdGllcy5oIHNpbmNlIHdlIG5vdyBuZWVkIGl0IGlu
CisgICAgICAgIFdlYkFuaW1hdGlvbjo6dGltZVRvTmV4dFJlcXVpcmVkVGljaygpLgorICAgICAg
ICAqIGFuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
bmltYXRpb25UaW1lbGluZTo6dXBkYXRlQ1NTQW5pbWF0aW9uc0ZvckVsZW1lbnQpOiBXZSBhZGQg
YSBwcmUtZW1wdGl2ZSByZXR1cm4gY2xhdXNlIHdoZW4gd2Uga25vdyB0aGF0IHRoZSBBbmltYXRp
b25MaXN0CisgICAgICAgIGZvciBwcmV2aW91cyBhbmQgY3VycmVudCBzdHlsZXMgYXJlIGEgbWF0
Y2guCisgICAgICAgICogYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTVHJhbnNpdGlvbjo6bWF0Y2hlc0JhY2tpbmdBbmltYXRpb25BbmRTdHlsZXMgY29u
c3QpOiBFbnN1cmUgd2UgaGF2ZSBhIHZhbGlkIGVmZmVjdCBiZWZvcmUgZG93bmNhc3RpbmcgaXQu
CisgICAgICAgICogYW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRlY2xhcmF0aXZlQW5pbWF0aW9uOjppbml0aWFsaXplKTogV2UgbmVlZCB0byBj
YWxsIHBhdXNlKCkgZm9yIGRlY2xhcmF0aXZlIGFuaW1hdGlvbnMgdGhhdCBhcmVuJ3QgcGxheWlu
ZyBzbyB0aGF0IHRoZSBhbmltYXRpb24ncworICAgICAgICBwbGF5U3RhdGUgaXMgc2V0IGNvcnJl
Y3RseSBhbmQgdGhlIGFuaW1hdGlvbiBpcyBub3QgaWRsZS4KKyAgICAgICAgKiBhbmltYXRpb24v
RG9jdW1lbnRUaW1lbGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVsaW5l
Ojp1cGRhdGVBbmltYXRpb25TY2hlZHVsZSk6IFdlIG5vIGxvbmdlciBuZWVkIHRvIHBhc3MgdGhl
IGN1cnJlbnQgdGltZSB0byB0aW1lVG9OZXh0UmVxdWlyZWRUaWNrKCkgc2luY2UgdGhlIG1ldGhv
ZCBoYXMKKyAgICAgICAgYmVlbiByZXdvcmtlZCB0byB1c2UgdGhlIGFuaW1hdGlvbidzIGN1cnJl
bnQgdGltZSwgd2hpY2ggaXMgYmFzZWQgb24gdGhlIHRpbWVsaW5lJ3MgY3VycmVudCB0aW1lLgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaW1lbGluZTo6dXBkYXRlQW5pbWF0aW9ucyk6IEF2
b2lkIGNyZWF0aW5nIGEgY29weSB3aGVuIGl0ZXJhdGluZyBvdmVyIHBlbmRpbmcgaGFyZHdhcmUg
YW5pbWF0aW9ucy4KKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3RSZWFkT25seS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdFJlYWRPbmx5OjpzdHlsZXNXb3Vs
ZFlpZWxkTmV3Q1NTVHJhbnNpdGlvbnNCbGVuZGluZ0tleWZyYW1lcyBjb25zdCk6IFdlIHNob3Vs
ZCBuZXZlciBnZW5lcmF0ZSBuZXcgYmxlbmRpbmcga2V5ZnJhbWVzIGlmIHRoZQorICAgICAgICBv
bGQgYW5kIG5ldyBzdHlsZXMgY29udGFpbiB0aGUgc2FtZSB2YWx1ZSwgc2luY2UgdGhlcmUgd291
bGQgYmUgbm8gdHJhbnNpdGlvbiBiZXR3ZWVuIHR3byBlcXVhbCB2YWx1ZXMsIGFuZCB3ZSBzaG91
bGQgb25seSBsb29rIGF0IHdoZXRoZXIgdGhlIG5ldworICAgICAgICBzdHlsZSB2YWx1ZSBhbmQg
dGhlIHJlY29yZGVkIHRhcmdldCB2YWx1ZSBkaWZmZXIgdG8gZGV0ZXJtaW5lIGlmIG5ldyBibGVu
ZGluZyBrZXlmcmFtZXMgYXJlIG5lY2Vzc2FyeS4KKyAgICAgICAgKiBhbmltYXRpb24vV2ViQW5p
bWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6dGltZVRvTmV4dFJl
cXVpcmVkVGljayBjb25zdCk6IFdlIGNvcnJlY3Qgb3VyIHNjaGVkdWxpbmcgY29kZSB3aGljaCB3
YXMgc2hvd24gdG8gYmUgYnJva2VuIGluIHNldmVyYWwgb2YgdGhlIG5ld2x5LWltcG9ydGVkCisg
ICAgICAgIE1vemlsbGEgdGVzdHMuIEFueSBydW5uaW5nIGFuaW1hdGlvbiBpcyBub3cgc2NoZWR1
bGVkIHRvIGludmFsaWRhdGUgYWdhaW4gb24gdGhlIG5leHQgdGljaywgYW5kIHdlIHVzZSB0aW1l
RXBzaWxvbiBmcm9tIFdlYkFuaW1hdGlvblV0aWxpdGllcy5oIHRvCisgICAgICAgIGNvcnJlY3Rs
eSBjaGVjayBpZiB3ZSdyZSByaWdodCBhdCB0aGUgYWN0aXZlIHRocmVzaG9sZCwgd2hlbiB3ZSBh
bHNvIGludmFsaWRhdGUgb24gdGhlIG5leHQgdGljay4gSWYgb3VyIGN1cnJlbnQgdGltZSBpcyBu
ZWdhdGl2ZSwgaW4gb3RoZXIgd29yZHMKKyAgICAgICAgd2hlbiB0aGUgYW5pbWF0aW9uIGhhcyBu
b3QgeWV0IHN0YXJ0ZWQsIHdlIHNjaGVkdWxlIHRoaXMgYW5pbWF0aW9uJ3MgbmV4dCB0aWNrIHRv
IGJlIHRoZSBuZWdhdGl2ZSBvZiB0aGF0IHZhbHVlLiBJbiBhbGwgb3RoZXIgY2FzZXMsIG5vIGlu
dmFsaWRhdGlvbgorICAgICAgICBuZWVkcyB0byBiZSBzY2hlZHVsZWQuCisgICAgICAgICogYW5p
bWF0aW9uL1dlYkFuaW1hdGlvbi5oOiBXZSBtb3ZlIHVwZGF0ZUZpbmlzaGVkU3RhdGUoKSB0byBw
cml2YXRlIHNpbmNlIHRoaXMgbWV0aG9kIGlzIG5vdCBhY3R1YWxseSB1c2VkIG91dHNpZGUgb2Yg
V2ViQW5pbWF0aW9uLmNwcC4KKyAgICAgICAgKiBhbmltYXRpb24vV2ViQW5pbWF0aW9uVXRpbGl0
aWVzLmg6IE1vdmUgdGltZUVwc2lsb24gdG8gYmUgc2hhcmVkIGFzIHBhcnQgb2YgV2ViQW5pbWF0
aW9uVXRpbGl0aWVzLmguCisKIDIwMTgtMDMtMjIgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBXZWJDb3JlJ3Mg
T1RIRVJfTERGTEFHUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggY2Y4NWUxZDc0YjhlZDlmNTRjNTM3
OTY2MDViZmM3Y2I5OTFkMmY3MS4uNTZiNTk3ZmE0NGU3MGQ3NjhkNzY5OGJiYzUwMDg0ODFiY2Q2
OWVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTgtMDMtMjMgIFRp
bSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgRml4IHRoZSAh
SEFWRShBUFBfTElOS1MpIGJ1aWxkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODM5NzQKKworICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWlu
LgorCisgICAgICAgICogcGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5oOgorICAgICAg
ICBUaGlzIGhlYWRlciBpcyBub3QgdmVyeSAhSEFWRShBUFBfTElOS1MpIGZyaWVuZGx5LgorCisy
MDE4LTAzLTIzICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAg
ICAgIEZpeCB0aGUgYnVpbGQgd2l0aCBubyBwYXN0ZWJvYXJkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5NzMKKworICAgICAgICBSZXZpZXdlZCBi
eSBEYW4gQmVybnN0ZWluLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWc6CisKKzIwMTgtMDMtMjIgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgV0tfQUxURVJOQVRFX0ZSQU1FV09SS1NfRElSIGlu
IFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4MzkzMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzg3ODIyNDk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0Jhc2Uu
eGNjb25maWc6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvQ29weVBBTEhlYWRlcnMueGNjb25m
aWc6CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvUEFMLnhjY29uZmlnOgorCiAyMDE4LTAzLTIy
ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEltcHJv
dmUgcmVhZGFiaWxpdHkgb2YgV2ViQ29yZSdzIE9USEVSX0xERkxBR1MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hh
bmdlTG9nCmluZGV4IDZkMjg1MjQ0YTI2OTdlZTA2NGUxNTI4OTA5ZTk2OWJkOGExYTAxZmUuLmY2
OTRkNzY1MmRkYTMyZjUzMTA3MjYxOTUxN2U0MTg4MTczNmNhMWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0No
YW5nZUxvZwpAQCAtMSwzICsxLDk3IEBACisyMDE4LTAzLTIzICBOaWtpdGEgVmFzaWx5ZXYgIDxu
dmFzaWx5ZXZAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFN0eWxlczogZG9u
J3Qgc2hvdyBjaGVja2JveGVzIGZvciBpbnZhbGlkIHByb3BlcnRpZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzk1MQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMzg4MDc2MDI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWF0dCBCYWtlci4KKwor
ICAgICAgICBTaW5jZSB0b2dnbGluZyBvZiBpbnZhbGlkIHByb3BlcnRpZXMgaXNuJ3Qgc3VwcG9y
dGVkIGJ5IHRoZSBiYWNrZW5kLCBkb24ndCBzaG93IGNoZWNrYm94ZXMgZm9yIGludmFsaWQgcHJv
cGVydGllcy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NT
dHlsZURlY2xhcmF0aW9uRWRpdG9yLmNzczoKKyAgICAgICAgKC5zcHJlYWRzaGVldC1jc3MtZGVj
bGFyYXRpb246bWF0Y2hlcyg6aG92ZXIsIDpmb2N1cykgLnByb3BlcnR5Om5vdCg6bWF0Y2hlcygu
aW52YWxpZC1uYW1lLCAuaW52YWxpZC12YWx1ZSkpIC5wcm9wZXJ0eS10b2dnbGUsKToKKyAgICAg
ICAgKC5zcHJlYWRzaGVldC1jc3MtZGVjbGFyYXRpb246bWF0Y2hlcyg6aG92ZXIsIDpmb2N1cykg
LnByb3BlcnR5LXRvZ2dsZSwpOiBEZWxldGVkLgorICAgICAgICBEb24ndCBzaG93IGNoZWNrYm94
ZXMgZm9yIGludmFsaWQgcHJvcGVydGllcyBidXQgc3RpbGwgc2hvdyB0aGVtIGZvciBkdXBsaWNh
dGUgcHJvcGVydGllcy4KKworMjAxOC0wMy0yMyAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNv
bT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBhZGQgV2ViS2l0QWRkaXRpb25zIGhvb2tzIGZv
ciBXZWJJbnNwZWN0b3JVSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgzOTQwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zODc5NjMxMD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCisKKyAgICAgICAgKiBTY3JpcHRzL2Nv
bWJpbmUtcmVzb3VyY2VzLnBsOgorICAgICAgICAoZGVidWdMb2cpOiBBZGRlZC4gTGVhdmUgaW4g
dGhlIGxvZ2dpbmcgSSB1c2VkIHRvIGRlYnVnIHRoaXMuCisKKyAgICAgICAgKGNvbmNhdGVuYXRl
SW5jbHVkZWRGaWxlc01hdGNoaW5nUGF0dGVybik6CisgICAgICAgIChzdHJpcEluY2x1ZGVkRmls
ZXNNYXRjaGluZ1BhdHRlcm4pOgorICAgICAgICAoY29uY2F0ZW5hdGVGaWxlcyk6IERlbGV0ZWQu
CisgICAgICAgIFRoaXMgZnVuY3Rpb24gdHJpZWQgdG8gZG8gdG9vIG1hbnkgdGhpbmdzLiBTcGxp
dCBpdCBpbnRvCisgICAgICAgIHR3byBmdW5jdGlvbnMsIG9uZSBmb3Igc3RyaXBwaW5nIGluY2x1
ZGVzIGFuZCBvbmUgZm9yIGNvbmNhdGVuYXRpbmcKKyAgICAgICAgZmlsZXMgcmVmZXJlbmNlZCBi
eSBpbmNsdWRlcy4KKworICAgICAgICBMYXN0bHksIGFkZCBhIG5lZ2F0aXZlIGxvb2thaGVhZCBj
bGF1c2UgZm9yICdXZWJLaXRBZGRpdGlvbnMnIHNvIGluY2x1ZGVzCisgICAgICAgIGNvbnRhaW5p
bmcgdGhhdCBzdHJpbmcgYXJlIG5vdCBjb21iaW5lZCB3aGVuIG5vIGlucHV0IGRpcmVjdG9yeSBp
cyBwYXNzZWQKKyAgICAgICAgdG8gdGhlIHNjcmlwdC4KKworICAgICAgICAqIFNjcmlwdHMvY29w
eS11c2VyLWludGVyZmFjZS1yZXNvdXJjZXMucGw6CisgICAgICAgIFdlYktpdEFkZGl0aW9ucyBp
cyBjb21wdXRlZCBlaXRoZXIgZnJvbSBCVUlMVF9QUk9EVUNUU19ESVIgb3IgU0RLUk9PVCwKKyAg
ICAgICAgZGVwZW5kaW5nIG9uIHRoZSBidWlsZCBzdHlsZS4gSnVzdCB0cnkgdGhlbSBpbiBvcmRl
ciBhbmQgdXNlIHRoZSBmaXJzdAorICAgICAgICBvbmUgdGhhdCBleGlzdHMuIFdlYkluc3BlY3Rv
clVJIGZpbGVzIGFyZSBpbiB0aGVpciBvd24gZGlyZWN0b3J5LCBzbworICAgICAgICB3ZSBjYW4g
YXNzdW1lIHRoZXJlIGFyZSBmaWxlcyB0byBwcm9jZXNzIGlmIHRoYXQgZGlyZWN0b3J5IGV4aXN0
cy4KKworICAgICAgICBDb3B5IE1haW4uaHRtbCB0byBkZXJpdmVkIHNvdXJjZXMgYmVmb3JlIGRv
aW5nIGFueSBwcm9jZXNzaW5nIG9uIGl0LgorICAgICAgICBUaGlzIG1ha2VzIGFsbCBjb21iaW5p
bmcgcGhhc2VzIGhhdmUgdGhlIHNhbWUgLS1pbnB1dC1odG1sIGFyZ3VtZW50LgorCisgICAgICAg
IChkZWJ1Z0xvZyk6IEFkZGVkLiBMZWF2ZSBpbiB0aGUgbG9nZ2luZyBJIHVzZWQgdG8gZGVidWcg
dGhpcy4KKworICAgICAgICAoY29tYmluZU9yU3RyaXBSZXNvdXJjZXNGb3JXZWJLaXRBZGRpdGlv
bnMpOgorICAgICAgICAoc3RyaXBSZXNvdXJjZXNGb3JXZWJLaXRBZGRpdGlvbnMpOgorICAgICAg
ICAoY29tYmluZVJlc291cmNlc0ZvcldlYktpdEFkZGl0aW9ucyk6CisgICAgICAgIERldGVybWlu
ZSBpZiBXZWJLaXRBZGRpdGlvbnMgZXhpc3RzIGFuZCB3aGV0aGVyIHRoZXJlIGFyZSBhbnkKKyAg
ICAgICAgcmVzb3VyY2VzIGZvciBXZWJJbnNwZWN0b3JVSSBwcmVzZW50IHRoYXQgbmVlZCB0byBi
ZSBwcm9jZXNzZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01haW4uaHRtbDoKKyAgICAg
ICAgQWRkIHN0dWIgLmpzIGFuZCAuY3NzIFdlYktpdEFkZGl0aW9ucyBmaWxlcy4gV2UgY2FuIGFk
ZCBtb3JlIGxhdGVyCisgICAgICAgIGlmIGl0IG1ha2VzIHNlbnNlIGJ1dCB0aGlzIGlzIGdvb2Qg
ZW5vdWdoIHRvIHZhbGlkYXRlIHRoZSBidWlsZCBtYWNoaW5lcnkuCisKKzIwMTgtMDMtMjMgIE5p
a2l0YSBWYXNpbHlldiAgPG52YXNpbHlldkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogU3R5bGVzIFJlZGVzaWduOiBmbGFzaGluZyB3aGVuIHN3aXRjaGluZyBiZXR3ZWVuIG5v
ZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzky
OTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1MzUyNjYwPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE1hdHQgQmFrZXIuCisKKyAgICAgICAgRmxhc2hpbmcgd2FzIGhhcHBlbmluZyBiZWNhdXNl
IHRoZSBsYXlvdXQgd2FzIGEgdHdvLXN0ZXAgcHJvY2VzczoKKyAgICAgICAgMS4gQXBwZW5kIGVt
cHR5IHNlY3Rpb25zLgorICAgICAgICAyLiBMYXlvdXQgZXZlcnl0aGluZyBpbnNpZGUgb2YgdGhl
IHNlY3Rpb24gb24gcmVxdWVzdEFuaW1hdGlvbkZyYW1lLgorCisgICAgICAgIFNwcmVhZHNoZWV0
UnVsZXNTdHlsZURldGFpbHNQYW5lbCB3YXMgY29udmVydGVkIHRvIHVzZSBsYXlvdXQgbWV0aG9k
LAorICAgICAgICBzbyBib3RoIHN0ZXBzIGhhcHBlbiBvbiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUu
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0UnVsZXNTdHlsZURl
dGFpbHNQYW5lbC5qczoKKyAgICAgICAgKFdJLlNwcmVhZHNoZWV0UnVsZXNTdHlsZURldGFpbHNQ
YW5lbCk6CisgICAgICAgIChXSS5TcHJlYWRzaGVldFJ1bGVzU3R5bGVEZXRhaWxzUGFuZWwucHJv
dG90eXBlLnJlZnJlc2gpOgorICAgICAgICAoV0kuU3ByZWFkc2hlZXRSdWxlc1N0eWxlRGV0YWls
c1BhbmVsLnByb3RvdHlwZS5sYXlvdXQpOgorICAgICAgICBUaGUgcmVtb3ZlZCBsaW5lcyBmcm9t
IHRoZSByZWZyZXNoIG1ldGhvZCBtb3ZlZCB0byB0aGUgbGF5b3V0IG1ldGhvZCB3aXRob3V0IGFu
eSBjaGFuZ2VzLgorCisyMDE4LTAzLTIyICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBw
bGUuY29tPgorCisgICAgICAgIFVuY2F1Z2h0IEV4Y2VwdGlvbjogVHlwZUVycm9yOiB0aGlzLl90
ZXh0RWRpdG9yLnRvZ2dsZVVuZXhlY3V0ZWRDb2RlSGlnaGxpZ2h0cygpLnRoZW4gaXMgbm90IGEg
ZnVuY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4MTkxMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzY3MDAwMjI+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTWF0dCBCYWtlci4KKworICAgICAgICBUaGUgdW5jYXVnaHQgZXhjZXB0aW9uIHdh
cyBjYXVzZWQgYnkgcmV0dXJuaW5nIGBmYWxzZWAgaW5zdGVhZCBvZiBhIHByb21pc2Ugb2JqZWN0
LgorICAgICAgICBUaGlzIHBhdGNoIG9ubHkgZml4ZXMgdGhlIGV4Y2VwdGlvbi4gRnVydGhlciBl
bmhhbmNlbWVudHMgc2hvdWxkIGJlIGRvbmUgaW4gPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE4Mzg4
Nz4uCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1NvdXJjZUNvZGVUZXh0RWRpdG9y
LmpzOgorICAgICAgICAoV0kuU291cmNlQ29kZVRleHRFZGl0b3IucHJvdG90eXBlLnRvZ2dsZVR5
cGVBbm5vdGF0aW9ucyk6CisgICAgICAgIChXSS5Tb3VyY2VDb2RlVGV4dEVkaXRvci5wcm90b3R5
cGUudG9nZ2xlVW5leGVjdXRlZENvZGVIaWdobGlnaHRzKToKKwogMjAxOC0wMy0yMCAgTmlraXRh
IFZhc2lseWV2ICA8bnZhc2lseWV2QGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBTdHlsZXM6IExvc2VzIGZvY3VzIHdoZW4gZWRpdGluZyBhIHByb3BlcnR5IHdoaWxlIHBhZ2Ug
aXMgYmVpbmcgbG9hZGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDYxM2FlYTliZjJmM2NiMjg1ZTBiOTAwZThjNzc0
NzZhNzdiZDNlZDQuLjI5MTFhMjE3ZWNmZTUyODBmYmIyYWY3ZjRjNzk0YTM1NDBjYzNmYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIwOCBAQAorMjAxOC0wMy0wNiAgQnJpYW4gQnVyZyAgPGJidXJn
QGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgQXV0b21hdGlvbjogcHJvdmlkZSBhIHdheSB0byBh
c2sgY2xpZW50cyBmb3IgYSBuZXcgdGFiIG9yIHdpbmRvdworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMzgxCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8zODE2NzMwMT4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIHNwZWNpZnlpbmcgYnJvd3NpbmcgY29udGV4dCBvcHRpb25z
IHdoZW4gcmVxdWVzdGluZworICAgICAgICBhIG5ldyBicm93c2luZyBjb250ZXh0IGZyb20gdGhl
IGF1dG9tYXRpb24gc2Vzc2lvbiBjbGllbnQvZGVsZWdhdGUuCisgICAgICAgIFRoaXMgaXMgY3Vy
cmVudGx5IGp1c3QgdXNlZCBmb3Igc3BlY2lmeWluZyB0YWIgdnMgd2luZG93LCBidXQgY291bGQK
KyAgICAgICAgYWxzbyBiZSB1c2VkIGZvciB0aGluZ3MgbGlrZSB0b2dnbGluZyBjZXJ0YWluIGJy
b3dzZXIgY2hyb21lIG9yIGZlYXR1cmVzLgorCisgICAgICAgIFRoZXJlIGlzIG5vIGd1YXJhbnRl
ZSB0aGF0IHRoZSBjbGllbnQgaGFzIGEgbm90aW9uIG9mIHRhYnMgdnMgd2luZG93cywKKyAgICAg
ICAgc28gdGhpcyBvcHRpb24gaXMgcHVyZWx5IGFkdmlzb3J5IGFuZCBzaG91bGQgbm90IGNhdXNl
IHRoZSBjb21tYW5kIHRvCisgICAgICAgIGZhaWwgaWYgaXQgY2Fubm90IGJlIGhvbm9yZWQuCisK
KyAgICAgICAgVGhpcyBiZWhhdmlvciBjYXVzZWQgYnkgc3BlY2lmeWluZyB0aGlzIG9wdGlvbiBp
cyBjbGllbnQtc3BlY2lmaWMsIHNvIG5vCisgICAgICAgIG5ldyB0ZXN0cyBhcmUgaW5jbHVkZWQg
aW4gV2ViS2l0IGZvciB0aGlzIGNoYW5nZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJ
QXV0b21hdGlvblNlc3Npb25DbGllbnQuaDoKKyAgICAgICAgKEFQSTo6QXV0b21hdGlvblNlc3Np
b25DbGllbnQ6OmRpZFJlcXVlc3ROZXdQYWdlV2l0aE9wdGlvbnMpOgorICAgICAgICAoQVBJOjpB
dXRvbWF0aW9uU2Vzc2lvbkNsaWVudDo6ZGlkUmVxdWVzdE5ld1dpbmRvdyk6IERlbGV0ZWQuCisg
ICAgICAgIEFkZCBvcHRpb25zIHBhcmFtZXRlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbi5jcHA6CisgICAgICAgIEFkanVzdCB0byBuZXcg
c2lnbmF0dXJlLiBNb3JlIHdvcmsgaXMgbmVlZGVkIHRvIHBsdW1iIHRoaXMgaW5mb3JtYXRpb24K
KyAgICAgICAgdG8gdGhlIHB1YmxpYyBBUEkgZm9yIEdUSy9XUEUgYW5kIHN1cHBvcnQgaXQgaW4g
V2ViS2l0R1RLIGRyaXZlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9t
YXRpb24uanNvbjogQWRkIG5ldyBvcHRpb25hbCBwYXJhbWV0ZXIuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViQXV0b21hdGlvblNlc3Npb246OmNyZWF0ZUJyb3dzaW5nQ29udGV4dCk6CisgICAgICAg
IENvbnZlcnQgdGhlIHByb3RvY29sIG9wdGlvbiB0byBhbiBBUEkgb3B0aW9uLgorCisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL0F1dG9tYXRpb25TZXNzaW9uQ2xpZW50Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL0F1dG9tYXRpb25TZXNzaW9uQ2xpZW50Lm1tOgorICAgICAgICAoV2Vi
S2l0OjpBdXRvbWF0aW9uU2Vzc2lvbkNsaWVudDo6QXV0b21hdGlvblNlc3Npb25DbGllbnQpOgor
ICAgICAgICAoV2ViS2l0Ojp0b0FQSSk6CisgICAgICAgIChXZWJLaXQ6OkF1dG9tYXRpb25TZXNz
aW9uQ2xpZW50OjpkaWRSZXF1ZXN0TmV3UGFnZVdpdGhPcHRpb25zKToKKyAgICAgICAgKFdlYktp
dDo6QXV0b21hdGlvblNlc3Npb25DbGllbnQ6OmRpZFJlcXVlc3ROZXdXaW5kb3cpOiBEZWxldGVk
LgorICAgICAgICBDb252ZXJ0IHRoZSBpbnRlcm5hbCBvcHRpb24gdG8gYSBDb2NvYSBTUEkgb3B0
aW9uIGFuZCBwYXNzIGl0IGFsb25nLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tBdXRvbWF0aW9uU2Vzc2lvbkRlbGVnYXRlLmg6CisgICAgICAgIEFkanVzdCBkZWxlZ2F0ZSBt
ZXRob2RzIHRvIGluY2x1ZGUgb3B0aW9ucy4gQ2xpZW50cyBuZWVkIHRvIGFkb3B0IHRoZSBuZXcg
c2lnbmF0dXJlKHMpLgorCisyMDE4LTAzLTI2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgorCisgICAgICAgIFtFeHRyYSB6b29tIG1vZGVdIEFkZCBwbHVtYmluZyBmb3Ig
bmV4dCBhbmQgcHJldmlvdXMgZm9jdXNhYmxlIGVsZW1lbnQgcmVjdHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NDAxNgorICAgICAgICBXb3JrIHRv
d2FyZHMgPHJkYXI6Ly9wcm9ibGVtLzM4NzU4NzI3PgorCisgICAgICAgIFJldmlld2VkIGJ5IFRp
bSBIb3J0b24uCisKKyAgICAgICAgV2hlbiBidWlsZGluZyB1cCBBc3Npc3RlZE5vZGVJbmZvcm1h
dGlvbiwgd2UgY3VycmVudGx5IGNvbXB1dGUgdGhlIGVsZW1lbnQgcmVjdCBvZiB0aGUgY3VycmVu
dCBmb2N1c2VkIGVsZW1lbnQsCisgICAgICAgIGFzIHdlbGwgYXMgZmxhZ3MgaW5kaWNhdGluZyB3
aGV0aGVyIG9yIG5vdCB0aGVyZSBhcmUgbmV4dCBvciBwcmV2aW91cyBmb2N1c2FibGUgZWxlbWVu
dHMuIEZvcgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzg3NTg3Mjc+LCB3ZSBhZGRpdGlvbmFs
bHkgc2VuZCB0aGUgcmVjdHMgb2YgdGhlIG5leHQgb3IgcHJldmlvdXMgZm9jdXNhYmxlIGVsZW1l
bnRzIGFzIHdlbGwuCisKKyAgICAgICAgKiBTaGFyZWQvQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24u
Y3BwOgorICAgICAgICAoV2ViS2l0OjpBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbjo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6QXNzaXN0ZWROb2RlSW5mb3JtYXRpb246OmRlY29kZSk6
CisKKyAgICAgICAgSVBDIHN1cHBvcnQgZm9yIG5leHROb2RlUmVjdCBhbmQgcHJldmlvdXNOb2Rl
UmVjdC4KKworICAgICAgICAqIFNoYXJlZC9Bc3Npc3RlZE5vZGVJbmZvcm1hdGlvbi5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6ZWxlbWVudFJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMpOgorCisgICAgICAgIEFkZCBh
IGhlbHBlciB0byBjb21wdXRlIGFuIGVsZW1lbnQncyByZWN0IGluIHJvb3QgdmlldyBjb29yZGlu
YXRlcy4gV2UgdXNlIHRoaXMgdG8gY29tcHV0ZSB0aGUgcmVjdHMgb2YgdGhlCisgICAgICAgIGN1
cnJlbnQgZm9jdXNlZCBlbGVtZW50IGFzIHdlbGwgYXMgdGhvc2Ugb2YgdGhlIG5leHQgYW5kIHBy
ZXZpb3VzIGVsZW1lbnRzLCBpZiBhbnkuCisKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0
QXNzaXN0ZWROb2RlSW5mb3JtYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpoYXNBc3Npc3RhYmxl
RWxlbWVudCk6IERlbGV0ZWQuCisKKyAgICAgICAgU2luY2Ugd2UgbmVlZCB0aGUgbmV4dCBvciBw
cmV2aW91cyBmb2N1c2FibGUgZWxlbWVudCB0byBnZXQgaXRzIHJlY3QsIHdlIGRvbid0IG5lZWQg
dGhpcyBoZWxwZXIgYW55bW9yZS4KKworMjAxOC0wMy0yNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFVzZSBTZWN1cml0eU9yaWdpbkRhdGEgbW9yZSBjb25zaXN0
ZW50bHkgaW4gU2VydmljZSBXb3JrZXIgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCisKKyAgICAgICAgVXNlIFNlY3VyaXR5T3JpZ2luRGF0YSBtb3JlIGNvbnNpc3RlbnRs
eSBpbiBTZXJ2aWNlIFdvcmtlciBjb2RlIHRvIGF2b2lkIGNvbnN0cnVjdGluZworICAgICAgICBT
ZWN1cml0eU9yaWdpbiBvYmplY3RzIHVubmVjZXNzYXJpbHkuCisKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAqIFNoYXJlZC9BUEkvYy9XS1NlY3VyaXR5T3JpZ2luUmVmLmNwcDoKKyAgICAgICAgKFdLU2Vj
dXJpdHlPcmlnaW5Db3B5RGF0YWJhc2VJZGVudGlmaWVyKToKKyAgICAgICAgKiBTdG9yYWdlUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJTV09yaWdpblN0b3JlOjphZGRUb1N0b3JlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dP
cmlnaW5TdG9yZTo6cmVtb3ZlRnJvbVN0b3JlKToKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuaDoKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6c2NoZWR1bGVKb2JJblNlcnZlcik6CisgICAgICAg
IChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xp
ZW50KToKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbjo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKToKKyAgICAg
ICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbi5oOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6U3RvcmFnZVByb2Nlc3M6OmNvbm5lY3Rpb25Ub0NvbnRleHRQcm9j
ZXNzV2FzQ2xvc2VkKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZVByb2Nlc3M6Om5lZWRzU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbkZvck9yaWdpbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OlN0b3JhZ2VQcm9jZXNzOjpjcmVhdGVTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdp
bnMpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vzczo6c2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbkZvck9yaWdpbik6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzOjpjcmVh
dGVTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZVBy
b2Nlc3M6OnN3Q29udGV4dENvbm5lY3Rpb25NYXlOb0xvbmdlckJlTmVlZGVkKToKKyAgICAgICAg
KiBTdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQVBJRnJhbWVJbmZvLmNwcDoKKyAgICAgICAgKEFQSTo6RnJhbWVJbmZvOjpjcmVhdGUpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0FwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXJEZWxldGVFbnRyaWVzRm9yT3JpZ2lu
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNw
cDoKKyAgICAgICAgKFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlckRlbGV0ZUVudHJpZXNGb3JPcmln
aW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlQ2FjaGVNYW5hZ2VyLmNw
cDoKKyAgICAgICAgKFdLUmVzb3VyY2VDYWNoZU1hbmFnZXJDbGVhckNhY2hlRm9yT3JpZ2luKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcDoKKyAg
ICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVJlbW92ZUZldGNoQ2FjaGVGb3JPcmlnaW4pOgorICAg
ICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlR2V0RmV0Y2hDYWNoZVNpemVGb3JPcmlnaW4pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6U2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6U2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6U2VydmljZVdvcmtlclByb2Nlc3NQcm94
eSk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OmdldExhdW5j
aE9wdGlvbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzUHJveHk6OmdldFN0b3JhZ2VQcm9jZXNz
Q29ubmVjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmVzdGFibGlzaFdvcmtlckNvbnRleHRDb25u
ZWN0aW9uVG9TdG9yYWdlUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29s
OjpkaXNjb25uZWN0UHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp1
cGRhdGVQcm9jZXNzQXNzZXJ0aW9ucyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpmZXRjaERhdGFBbmRBcHBs
eSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Okdlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3RGb3JHZW9sb2NhdGlvbik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwOgorICAg
ICAgICAoV0tCdW5kbGVQYWdlQ29weU9yaWdpbnNXaXRoQXBwbGljYXRpb25DYWNoZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXI6OnNlbmRVc2VyTWVkaWFSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjplbnVtZXJhdGVNZWRpYURldmljZXMpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTV0NsaWVudENvbm5lY3Rpb246OnJlZ2lzdGVyU2VydmljZVdvcmtlckNs
aWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6bWF0Y2hSZWdp
c3RyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NsaWVudENvbm5lY3Rpb246OndoZW5S
ZWdpc3RyYXRpb25SZWFkeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ2xpZW50Q29ubmVjdGlv
bjo6Z2V0UmVnaXN0cmF0aW9ucyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpTdG9yYWdlQXJlYUltcGw6OnNlY3VyaXR5T3JpZ2luIGNvbnN0KToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFn
ZUFyZWFNYXA6OlN0b3JhZ2VBcmVhTWFwKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFN
YXA6OmRpc3BhdGNoU2Vzc2lvblN0b3JhZ2VFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OlN0b3Jh
Z2VBcmVhTWFwOjpkaXNwYXRjaExvY2FsU3RvcmFnZUV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0
OjpTdG9yYWdlTmFtZXNwYWNlSW1wbDo6ZGlkRGVzdHJveVN0b3JhZ2VBcmVhTWFwKToKKworMjAx
OC0wMy0yNiAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBX
YXJuIGFnYWluc3QgY29va2llIGFjY2VzcyBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHVzaW5n
IFByb2Nlc3NQcml2aWxlZ2UgYXNzZXJ0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTExCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zODc2
MjMwNj4KKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIEFk
ZCBhIHNldCBvZiBQcm9jZXNzUHJpdmlsZWdlIGFzc2VydGlvbnMgdG8gZW5mb3JjZSB0aGUgcnVs
ZSB0aGF0IHRoZSBXZWJDb250ZW50IHByb2Nlc3MKKyAgICAgICAgc2hvdWxkIG5ldmVyIGNhbGwg
Q29va2llIEFQSSBkaXJlY3RseS4gVGhhdCBzaG91bGQgb25seSBoYXBwZW4gaW4gdGhlIE5ldHdv
cmtpbmcgb3IKKyAgICAgICAgVUlQcm9jZXNzLiAKKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L0Nvb2tpZXMvbWFjL1dlYkNvb2tpZU1hbmFnZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtU2V0SFRUUENvb2tpZUFjY2VwdFBvbGljeSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvb2tpZU1hbmFnZXI6OnBsYXRmb3JtR2V0SFRUUENvb2tpZUFjY2Vw
dFBvbGljeSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNz
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrQ29jb2E6OmFwcGx5Q29va2llQmxv
Y2tpbmdQb2xpY3kpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQcm9j
ZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRTaGFyZWRI
VFRQQ29va2llU3RvcmFnZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzeW5j
QWxsQ29va2llcyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Np
b25Db2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6TmV0d29y
a1Nlc3Npb25Db2NvYSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdv
cmtpbmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4
dDo6ZW5zdXJlV2Vic2l0ZURhdGFTdG9yZVNlc3Npb24pOgorICAgICAgICAqIFBsdWdpblByb2Nl
c3MvUGx1Z2luUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3M6Omlu
aXRpYWxpemVQcm9jZXNzKToKKyAgICAgICAgKiBTaGFyZWQvY2YvQ29va2llU3RvcmFnZVV0aWxz
Q0YubW06CisgICAgICAgIChXZWJLaXQ6OmNvb2tpZVN0b3JhZ2VGcm9tSWRlbnRpZnlpbmdEYXRh
KToKKyAgICAgICAgKFdlYktpdDo6aWRlbnRpZnlpbmdEYXRhRnJvbUNvb2tpZVN0b3JhZ2UpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3
b3JrUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OnByaXZhdGVCcm93c2luZ1Nlc3Npb24pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbToKKyAgICAgICAg
KFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycyk6CisgICAgICAgICogVUlQcm9j
ZXNzL21hYy9XZWJDb29raWVNYW5hZ2VyUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvb2tpZU1hbmFnZXJQcm94eTo6cGVyc2lzdEhUVFBDb29raWVBY2NlcHRQb2xpY3kpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVOZXR3
b3JraW5nQ29udGV4dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMv
V2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlV2Vic2l0ZURhdGFTdG9yZVNlc3Npb24pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpzdG9yYWdlU2Vzc2lvbiBjb25z
dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MpOgorCisyMDE4LTAzLTI2ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTWVyZ2UgUmVz
b3VyY2VIYW5kbGVDbGllbnQ6OndpbGxDYWNoZVJlc3BvbnNlQXN5bmMgd2l0aCBSZXNvdXJjZUhh
bmRsZUNsaWVudDo6d2lsbENhY2hlUmVzcG9uc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzk2NQorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlz
IER1bWV6LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50Ojp3
aWxsQ2FjaGVSZXNwb25zZSBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCisyMDE4LTAzLTI1ICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIEFkZCBB
UEkgdG8gY29udmVydCBiZXR3ZWVuIERPTSBhbmQgSlNDVmFsdWUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzQ0OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE1pY2hhZWwgQ2F0YW56YXJvLgorCisgICAgICAgIEFkZCBtZXRob2RzIHRvIGdldCBhIEpT
Q1ZhbHVlIGZvciBhIFdlYktpdERPTU9iamVjdCBhbmQgdG8gY3JlYXRlIGEgV2ViS2l0RE9NTm9k
ZSBmcm9tIGEgSlNDVmFsdWUuIERlcHJlY2F0ZQorICAgICAgICBtb3N0IG9mIHRoZSBHVEsrIERP
TSBiaW5kaW5ncyBBUEkgYW5kIG1vdmUgdGhlIG5vbi1kZXByZWNhdGVkIHBhcnRzIHRvIGdsaWIg
ZGlyIHRvIGJlIGV4cG9zZWQgYnkgV1BFIHRvby4KKworICAgICAgICAqIFBsYXRmb3JtR1RLLmNt
YWtlOgorICAgICAgICAqIFBsYXRmb3JtV1BFLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXNHVEsu
dHh0OgorICAgICAgICAqIFNvdXJjZXNXUEUudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0OgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL0RPTU9iamVjdENhY2hlLmNwcDogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9ET01PYmplY3RDYWNoZS5jcHAuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ2xpYi9ET00vRE9NT2JqZWN0Q2FjaGUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL0RPTU9iamVjdENhY2hlLmgu
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0
RE9NRG9jdW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6a2l0KToKKyAgICAgICAg
KFdlYktpdDo6Y29yZSk6CisgICAgICAgIChXZWJLaXQ6OndyYXBEb2N1bWVudCk6CisgICAgICAg
ICh3ZWJraXRfZG9tX2RvY3VtZW50X2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0X2RvbV9k
b2N1bWVudF9pbml0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
bGliL0RPTS9XZWJLaXRET01Eb2N1bWVudFByaXZhdGUuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3Vt
ZW50UHJpdmF0ZS5oLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2ds
aWIvRE9NL1dlYktpdERPTUVsZW1lbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6a2l0
KToKKyAgICAgICAgKFdlYktpdDo6Y29yZSk6CisgICAgICAgIChXZWJLaXQ6OndyYXBFbGVtZW50
KToKKyAgICAgICAgKHdlYmtpdF9kb21fZWxlbWVudF9jbGFzc19pbml0KToKKyAgICAgICAgKHdl
YmtpdF9kb21fZWxlbWVudF9pbml0KToKKyAgICAgICAgKHdlYmtpdF9kb21fZWxlbWVudF9odG1s
X2lucHV0X2VsZW1lbnRfaXNfdXNlcl9lZGl0ZWQpOgorICAgICAgICAod2Via2l0X2RvbV9lbGVt
ZW50X2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfYXV0b19maWxsZWQpOgorICAgICAgICAod2Via2l0
X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfYXV0b19maWxsZWQpOgorICAgICAg
ICAod2Via2l0X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfZWRpdGluZ192YWx1
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2Vi
S2l0RE9NRWxlbWVudFByaXZhdGUuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FbGVtZW50UHJpdmF0ZS5o
LgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktp
dERPTU5vZGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKF9XZWJLaXRET01Ob2RlUHJpdmF0ZTo6fl9X
ZWJLaXRET01Ob2RlUHJpdmF0ZSk6CisgICAgICAgIChXZWJLaXQ6OmtpdCk6CisgICAgICAgIChX
ZWJLaXQ6OmNvcmUpOgorICAgICAgICAoV2ViS2l0Ojp3cmFwTm9kZSk6CisgICAgICAgICh3ZWJr
aXRET01Ob2RlQ29uc3RydWN0b3IpOgorICAgICAgICAod2Via2l0RE9NTm9kZUZpbmFsaXplKToK
KyAgICAgICAgKHdlYmtpdF9kb21fbm9kZV9pbml0KToKKyAgICAgICAgKHdlYmtpdF9kb21fbm9k
ZV9jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdERPTU5vZGVTZXRDb3JlT2JqZWN0KToKKyAg
ICAgICAgKHdlYmtpdERPTU5vZGVHZXRDb3JlT2JqZWN0KToKKyAgICAgICAgKHdlYmtpdF9kb21f
bm9kZV9mb3JfanNfdmFsdWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2dsaWIvRE9NL1dlYktpdERPTU5vZGVQcml2YXRlLmg6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2Rl
UHJpdmF0ZS5oLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIv
RE9NL1dlYktpdERPTU9iamVjdC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NT2JqZWN0LmNwcC4KKyAg
ICAgICAgKHdlYmtpdERPTU9iamVjdFNldFByb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9kb21f
b2JqZWN0X2NsYXNzX2luaXQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2dsaWIvRE9NL1dlYktpdERPTVByaXZhdGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6d3JhcCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9E
T00vV2ViS2l0RE9NUHJpdmF0ZS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL0RPTU9iamVjdENhY2hlLmguCisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRGcmFtZS5jcHA6Cisg
ICAgICAgICh3ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0KToKKyAgICAg
ICAgKHdlYmtpdF9mcmFtZV9nZXRfanNfdmFsdWVfZm9yX2RvbV9vYmplY3RfaW5fc2NyaXB0X3dv
cmxkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktp
dFdlYlBhZ2UuY3BwOgorICAgICAgICAod2Via2l0X3dlYl9wYWdlX2NsYXNzX2luaXQpOgorICAg
ICAgICAod2Via2l0V2ViUGFnZUNyZWF0ZSk6CisgICAgICAgICh3ZWJraXRfd2ViX3BhZ2VfZ2V0
X2RvbV9kb2N1bWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9HT2JqZWN0RXZlbnRMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdPYmpl
Y3RFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2JqZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5jcHA6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2JqZWN0WFBh
dGhOU1Jlc29sdmVyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUF0dHIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQXR0ci5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQmxvYi5jcHA6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01CbG9iLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01DREFUQVNlY3Rpb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NQ0RBVEFTZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NSdWxlLmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1J1
bGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUNTU1J1bGVMaXN0LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1J1bGVMaXN0Lmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZURlY2xhcmF0
aW9uLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1N0eWxlU2hlZXQuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NT
U3R5bGVTaGVldC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NQ1NTVmFsdWUuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTVmFsdWUuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNoYXJhY3RlckRhdGEu
Y3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NQ2hhcmFjdGVyRGF0YS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdC5jcHA6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01D
bGllbnRSZWN0TGlzdC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ29tbWVudC5jcHA6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Db21t
ZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01ET01JbXBsZW1lbnRhdGlvbi5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01JbXBsZW1lbnRhdGlvbi5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9N
U2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTURPTVNlbGVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NVG9rZW5MaXN0LmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVRv
a2VuTGlzdC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NRE9NV2luZG93LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVdpbmRvdy5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRGVwcmVjYXRlZC5jcHA6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01Eb2N1bWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudEZyYWdtZW50Lmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01Eb2N1bWVudEd0ay5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnQuY3BwLgorICAgICAg
ICAod2Via2l0RE9NRG9jdW1lbnRET01FdmVudFRhcmdldEluaXQpOgorICAgICAgICAod2Via2l0
RE9NRG9jdW1lbnRJbnN0YWxsUHJvcGVydGllcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudFR5cGUuY3BwOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1l
bnRUeXBlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01FbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FbGVtZW50R3RrLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01F
bGVtZW50LmNwcC4KKyAgICAgICAgKHdlYmtpdERPTUVsZW1lbnRET01FdmVudFRhcmdldEluaXQp
OgorICAgICAgICAod2Via2l0RE9NRWxlbWVudEluc3RhbGxQcm9wZXJ0aWVzKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUV2ZW50LmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUV2ZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01FdmVudFRhcmdldC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVudFRhcmdldC5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRmlsZS5jcHA6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01GaWxlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01GaWxlTGlzdC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01GaWxlTGlzdC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQu
Y3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTEFuY2hvckVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxB
cHBsZXRFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MQXJlYUVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50Lmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MQlJFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCUkVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCYXNlRWxlbWVudC5j
cHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MQmFzZUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCb2R5RWxlbWVudC5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQm9keUVs
ZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxCdXR0b25FbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCdXR0b25FbGVtZW50Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MQ2FudmFzRWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQ2FudmFzRWxlbWVudC5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTENvbGxlY3Rp
b24uY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTENvbGxlY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxETGlzdEVsZW1lbnQuY3BwOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTERM
aXN0RWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTERpcmVjdG9yeUVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTERpcmVjdG9yeUVs
ZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxEaXZFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxEaXZFbGVtZW50Lmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRG9j
dW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTERvY3VtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRWxlbWVudC5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRWxlbWVu
dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTEVtYmVkRWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRW1iZWRFbGVtZW50Lmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRmll
bGRTZXRFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxGaWVsZFNldEVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGb250RWxlbWVu
dC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MRm9udEVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGb3JtRWxlbWVudC5jcHA6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRm9y
bUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudC5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTEZyYW1lU2V0RWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRnJhbWVTZXRFbGVtZW50Lmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSFJF
bGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxIUkVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIZWFkRWxlbWVudC5jcHA6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
SGVhZEVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxIZWFkaW5nRWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSGVhZGluZ0VsZW1l
bnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxIdG1sRWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSHRtbEVsZW1lbnQuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxJRnJh
bWVFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50LmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxJbWFnZUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTElucHV0
RWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTExJRWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTElFbGVtZW50Lmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGFi
ZWxFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxMYWJlbEVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMZWdlbmRFbGVtZW50LmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxMZWdlbmRFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGlua0VsZW1lbnQuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExpbmtF
bGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MTWFwRWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWFwRWxlbWVudC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1h
cnF1ZWVFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxNYXJxdWVlRWxlbWVudC5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1lbnVFbGVtZW50
LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxNZW51RWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50LmNwcDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNZXRh
RWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTE1vZEVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1vZEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxP
TGlzdEVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQu
Y3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTE9iamVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRHcm91cEVsZW1lbnQuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TE9wdEdyb3VwRWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQuY3BwOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9wdGlvbkVs
ZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHA6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT3B0aW9uc0NvbGxlY3Rp
b24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50Lmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MUGFyYW1FbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQcmVFbGVt
ZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxQcmVFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUHJpdmF0ZS5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUXVvdGVF
bGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxRdW90ZUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50LmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxTY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU2VsZWN0
RWxlbWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU3R5bGVFbGVtZW50Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MVGFibGVDYXB0aW9uRWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxU
YWJsZUNvbEVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudC5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlRWxl
bWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MVGFibGVFbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50LmNwcDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxUYWJsZVJvd0VsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50LmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxU
ZXh0QXJlYUVsZW1lbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxUaXRsZUVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRpdGxlRWxlbWVu
dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTFVMaXN0RWxlbWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVUxpc3RFbGVtZW50Lmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01LZXlib2Fy
ZEV2ZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUtleWJvYXJkRXZlbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU1lZGlhTGlzdC5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01NZWRpYUxpc3Qu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTU1vdXNlRXZlbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NTW91c2VFdmVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTmFtZWROb2RlTWFwLmNwcDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5h
bWVkTm9kZU1hcC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NTm9kZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUZpbHRlci5jcHA6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlRmlsdGVyLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01O
b2RlR3RrLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlLmNwcC4KKyAgICAgICAgKHdlYmtpdERP
TU5vZGVET01FdmVudFRhcmdldEluaXQpOgorICAgICAgICAod2Via2l0RE9NTm9kZUluc3RhbGxQ
cm9wZXJ0aWVzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTU5vZGVJdGVyYXRvci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlSXRlcmF0b3IuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVMaXN0
LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTU5vZGVMaXN0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01PYmplY3QuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVByaXZhdGVHdGsuY3BwOiBSZW5hbWVkIGZy
b20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTVByaXZhdGUuY3BwLgorICAgICAgICAoV2ViS2l0Ojp3cmFwTm9kZUd0ayk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcml2
YXRlR3RrLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJpdmF0ZS5oLgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJvY2Vzc2luZ0luc3RydWN0
aW9uLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUmFuZ2UuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUmFuZ2UuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TVN0eWxlU2hlZXQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NU3R5bGVTaGVldC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NU3R5bGVTaGVldExpc3QuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NU3R5
bGVTaGVldExpc3QuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTVRleHQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVGV4dC5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVHJlZVdhbGtlci5jcHA6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01UcmVl
V2Fsa2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01VSUV2ZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVVJRXZlbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVdoZWVsRXZlbnQuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NV2hl
ZWxFdmVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NWFBhdGhFeHByZXNzaW9uLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVhQYXRoRXhwcmVzc2lvbi5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBh
dGhOU1Jlc29sdmVyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTVhQYXRoTlNSZXNvbHZlci5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhSZXN1bHQuY3BwOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
WFBhdGhSZXN1bHQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL2RvY3Mvd2Via2l0ZG9tZ3RrLTQuMC1zZWN0aW9ucy50eHQ6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL1dlYktpdEZyYW1lLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL0RPTS9XZWJLaXRET01EZWZpbmVzLmg6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlLmguCisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL0RPTS9XZWJLaXRET01Eb2N1bWVudC5oOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL1dlYktpdERP
TUVsZW1lbnQuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvd3BlL0RPTS9XZWJLaXRET01Ob2RlLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vV2ViS2l0RE9NT2JqZWN0Lmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01PYmplY3QuaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93
cGUvRE9NL3dlYmtpdGRvbS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVQcml2YXRlLmguCisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdEZyYW1lLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdFdlYkhpdFRl
c3RSZXN1bHQuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvd3BlL1dlYktpdFdlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS93cGUvV2ViS2l0V2ViUHJvY2Vzc0VudW1UeXBlcy5jcHAudGVtcGxhdGU6IEFkZGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJQ
cm9jZXNzRW51bVR5cGVzLmgudGVtcGxhdGU6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01PYmplY3RQcml2YXRl
LmguCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL3dlYmtpdC13
ZWItZXh0ZW5zaW9uLmg6CisKKzIwMTgtMDMtMjYgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0Bp
Z2FsaWEuY29tPgorCisgICAgICAgIFtDb29yZEdyYXBoaWNzXSBDbGVhbiB1cCBDb29yZGluYXRl
ZEdyYXBoaWNzU2NlbmUgY29uc3RydWN0LXRpbWUgaW5pdGlhbGl6YXRpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQwMDIKKworICAgICAgICBS
ZXZpZXdlZCBieSBDYXJsb3MgR2FyY2lhIENhbXBvcy4KKworICAgICAgICBNb3ZlIHRoZSBDb29y
ZGluYXRlZEdyYXBoaWNzU2NlbmUgY29uc3RhbnQtZXhwcmVzc2lvbiBpbml0aWFsaXphdGlvbnMK
KyAgICAgICAgZnJvbSBjb25zdHJ1Y3RvciB0byB0aGUgcG9pbnQgb2YgZGVjbGFyYXRpb24uCisK
KyAgICAgICAgRGVmYXVsdCB0aGUgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lIGRlc3RydWN0b3Iu
CisKKyAgICAgICAgVGhlIG1fc2Nyb2xsUG9zaXRpb24gbWVtYmVyIHZhcmlhYmxlIGlzIHVudXNl
ZCBpbiB0aGlzIGNsYXNzLCB3aGlsZSB0aGUKKyAgICAgICAgc2ltaWxhcmx5LW5hbWVkIG1fcmVu
ZGVyZWRDb250ZW50c1Njcm9sbFBvc2l0aW9uIHRyYWNrcyBzY3JvbGwgcG9zaXRpb24KKyAgICAg
ICAgb2YgdGhlIHNjZW5lLiBSZW1vdmUgdGhlIGxhdHRlciBhbmQgdXNlIG1fc2Nyb2xsUG9zaXRp
b24gaW4gaXRzIHBsYWNlLgorCisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29vcmRpbmF0
ZWRHcmFwaGljc1NjZW5lOjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUpOgorICAgICAgICAoV2Vi
S2l0OjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmFkanVzdFBvc2l0aW9uRm9yRml4ZWRMYXll
cnMpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmNvbW1pdFNj
ZW5lU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6On5D
b29yZGluYXRlZEdyYXBoaWNzU2NlbmUpOiBEZWxldGVkLgorICAgICAgICAqIFNoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oOgorCisyMDE4LTAzLTI1
ICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBb
R1RLXSBXZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVzLmggbWlzc2luZyBmcm9tIHdlYmtpdC13ZWIt
ZXh0ZW5zaW9uLmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4Mzk5OAorCisgICAgICAgIFJldmlld2VkIGJ5IENhcmxvcyBHYXJjaWEgQ2FtcG9zLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL3dlYmtpdC13ZWIt
ZXh0ZW5zaW9uLmg6CisKKzIwMTgtMDMtMjUgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIFVucmVzb2x2ZWQgdHlwZSB3YXJuaW5ncyB3
aGVuIGdlbmVyYXRpbmcgZ2lyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODM5MjYKKworICAgICAgICBSZXZpZXdlZCBieSBNaWNoYWVsIENhdGFuemFy
by4KKworICAgICAgICBTa2lwIGRlcHJlY2F0ZWQgZnVuY3Rpb25zIHVzaW5nIEpTQyBDIEFQSSBm
cm9tIGludHJvc3BlY3Rpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
SmF2YXNjcmlwdFJlc3VsdC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYlZpZXcuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2ds
aWIvV2ViS2l0RnJhbWUuY3BwOgorCisyMDE4LTAzLTI1ICBDb21taXQgUXVldWUgIDxjb21taXQt
cXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjI5
OTU0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0
MDAwCisKKyAgICAgICAgQ2F1c2VkIG1hbnkgbGF5b3V0IHRlc3RzIHRvIGNyYXNoIG9uIEFwcGxl
IEhpZ2ggU2llcnJhLAorICAgICAgICBTaWVycmEsIGlPUyBTaW11bGF0b3IgYW5kIEdUSyBMaW51
eCBEZWJ1ZyB0ZXN0IGJvdHMgKFJlcXVlc3RlZAorICAgICAgICBieSBkeWR6IG9uICN3ZWJraXQp
LgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAiVXNlIFNlY3VyaXR5
T3JpZ2luRGF0YSBtb3JlIGNvbnNpc3RlbnRseSBpbiBTZXJ2aWNlIFdvcmtlcgorICAgICAgICBj
b2RlIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgz
OTY5CisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMjk5NTQKKwor
MjAxOC0wMy0yMyAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
QXV0b21hdGlvbjogcmVtb3ZlIHVubmVjZXNzYXJ5IG1lbWJlciB2YXJpYWJsZSBXZWJBdXRvbWF0
aW9uU2Vzc2lvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgzOTcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgorCisgICAg
ICAgIFRoZSBjb25jZXB0IG9mIHRoZSAiYWN0aXZlIiBicm93c2luZyBjb250ZXh0IGlzIHNvbWV0
aGluZyBpbiB0aGUgV2ViRHJpdmVyCisgICAgICAgIHNwZWNpZmljYXRpb24sIGJ1dCB3ZSB3ZXJl
IGEgYml0IHRvbyBsaXRlcmFsIHdoZW4gZmlyc3QgaW1wbGVtZW50aW5nIHRoaXMuCisgICAgICAg
IFRoZXJlJ3Mgbm8gYWN0dWFsIG5lZWQgZm9yIHRoaXMgb24gdGhlIGJyb3dzZXIgc2lkZSBzaW5j
ZSBtb3N0IGNvbW1hbmRzCisgICAgICAgIHJlcXVpcmUgaW1wbGljaXRseSBzd2l0Y2hpbmcgdG8g
dGhlIHRhcmdldCB3aW5kb3cgcGFzc2VkIGluIHdpdGggdGhlCisgICAgICAgIEF1dG9tYXRpb24g
Y29tbWFuZC4gVGhlIGRyaXZlciwgaG93ZXZlciwgc3RpbGwgbmVlZHMgdG8gdHJhY2sgdGhlIGN1
cnJlbnQKKyAgICAgICAgYnJvd3NpbmcgY29udGV4dCBhbmQgY3VycmVudCB0b3AtbGV2ZWwgYnJv
d3NpbmcgY29udGV4dC4KKworICAgICAgICBGb3IgcmV0dXJuaW5nIHdoZXRoZXIgYSBicm93c2lu
ZyBjb250ZXh0IGlzIGFjdGl2ZSwgIHdlIGNhbiBqdXN0IGxvb2sgYXQKKyAgICAgICAgdGhlIHBh
Z2UncyBhY3Rpdml0eSBzdGF0ZSB0byBrbm93IHdoZXRoZXIgdGhlIHBhZ2UgaXMgYWN0aXZlIG9y
IG5vdC4gRm9yCisgICAgICAgIGEgbm9ybWFsIGJyb3dzZXIsIG9ubHkgb25lIHBhZ2UgaXMgZ29p
bmcgdG8gYmUgdmlzaWJsZSBhbmQgZm9jdXNlZCBhdCBhIHRpbWUuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViQXV0b21hdGlvblNlc3Npb246OmJ1aWxkQnJvd3NpbmdDb250ZXh0Rm9yUGFnZSk6Cisg
ICAgICAgIENvbnN1bHQgdGhlIHBhZ2UncyBhY3Rpdml0eSBzdGF0ZSB0byBkZXRlcm1pbmUgd2hl
dGhlciBpdCdzIGFjdGl2ZS4KKworICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lv
bjo6Y3JlYXRlQnJvd3NpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlv
blNlc3Npb246OmNsb3NlQnJvd3NpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0
b21hdGlvblNlc3Npb246OnN3aXRjaFRvQnJvd3NpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViQXV0b21hdGlvblNlc3Npb246OmhhbmRsZVJ1bk9wZW5QYW5lbCk6CisgICAgICAgIFN0
b3AgcmVhZGluZyBhbmQgd3JpdGluZyB0aGUgY3VycmVudCBicm93c2luZyBjb250ZXh0IGhhbmRs
ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5Ojppc1ZpZXdGb2N1c2VkIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5Ojppc1ZpZXdXaW5kb3dBY3RpdmUgY29uc3QpOgorICAgICAgICBBZGQgbmV3
IGFjY2Vzc29yLgorCisyMDE4LTAzLTI1ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgorCisgICAgICAgIEFkZCBhbmQgYWRvcHQgRU5BQkxFKEFJUlBMQVlfUElDS0VSKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTkyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGFuaWVsIEJhdGVzLgorCisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBf
c2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyOmZyb21SZWN0Ol0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvZm9ybXMvV0tBaXJQbGF5Um91dGVQaWNrZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
aW9zL2Zvcm1zL1dLQWlyUGxheVJvdXRlUGlja2VyLm1tOgorCisyMDE4LTAzLTI1ICBUaW0gSG9y
dG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgV0tBbmltYXRp
b25EZWxlZ2F0ZSB0byBpdHMgb3duIGhlYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTc2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zODgy
MjI5OT4KKworICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgorCisgICAgICAgICog
U2hhcmVkL1JlbW90ZUxheWVyVHJlZS9XS0FuaW1hdGlvbkRlbGVnYXRlLmg6IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbToK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1v
dGUubW06CisgICAgICAgIFJlbW90ZUxheWVyVHJlZUhvc3QgdXNlcyBhIGZvcndhcmQgZGVjbGFy
YXRpb24gb2YgV0tBbmltYXRpb25EZWxlZ2F0ZSwKKyAgICAgICAgc28gd2UncmUganVzdCBnZXR0
aW5nIGx1Y2t5IHRoYXQgYW4gLWludmFsaWRhdGUgbWV0aG9kIGV4aXN0cyBvbgorICAgICAgICBz
b21lIG90aGVyIG9iamVjdC4gSW5zdGVhZCwgbW92ZSBXS0FuaW1hdGlvbkRlbGVnYXRlIHRvIGl0
cyBvd24KKyAgICAgICAgaGVhZGVyLCBhbmQgaW5jbHVkZSBpdCBpbiB0aGUgcGxhY2VzIHdlIHVz
ZSBpdC4KKworMjAxOC0wMy0yNCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNv
bT4KKworICAgICAgICBBZG9wdCBXS19QTEFURk9STV9OQU1FIGluIFdlYktpdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTc4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dl
YktpdC54Y2NvbmZpZzoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBtYWMvTWlncmF0ZUhlYWRlcnNGcm9tV2ViS2l0TGVnYWN5Lm1ha2U6Cisg
ICAgICAgICogbWFjL3Bvc3Rwcm9jZXNzLWZyYW1ld29yay1oZWFkZXJzLnNoOgorCisyMDE4LTAz
LTI0ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEln
bm9yZSBzYW5kYm94X2luaXRfd2l0aF9wYXJhbWV0ZXJzIGRlcHJlY2F0aW9uIHdhcm5pbmdzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5NzkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgorCisgICAgICAgICogU2hhcmVkL2lv
cy9DaGlsZFByb2Nlc3NJT1MubW06CisgICAgICAgIChXZWJLaXQ6OkNoaWxkUHJvY2Vzczo6aW5p
dGlhbGl6ZVNhbmRib3gpOgorCisyMDE4LTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgVXNlIFNlY3VyaXR5T3JpZ2luRGF0YSBtb3JlIGNvbnNpc3RlbnRs
eSBpbiBTZXJ2aWNlIFdvcmtlciBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODM5NjkKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KKworICAgICAgICBVc2UgU2VjdXJpdHlPcmlnaW5EYXRhIG1vcmUgY29uc2lzdGVudGx5IGlu
IFNlcnZpY2UgV29ya2VyIGNvZGUgdG8gYXZvaWQgY29uc3RydWN0aW5nCisgICAgICAgIFNlY3Vy
aXR5T3JpZ2luIG9iamVjdHMgdW5uZWNlc3NhcmlseS4KKworICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgICog
U2hhcmVkL0FQSS9jL1dLU2VjdXJpdHlPcmlnaW5SZWYuY3BwOgorICAgICAgICAoV0tTZWN1cml0
eU9yaWdpbkNvcHlEYXRhYmFzZUlkZW50aWZpZXIpOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dPcmlnaW5TdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlNXT3JpZ2luU3RvcmU6OmFkZFRvU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTV09yaWdp
blN0b3JlOjpyZW1vdmVGcm9tU3RvcmUpOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dPcmlnaW5TdG9yZS5oOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzY2hlZHVsZUpvYkluU2VydmVyKToKKyAgICAgICAgKFdl
YktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQp
OgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uOjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24pOgorICAgICAgICAq
IFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uLmg6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vzczo6Y29ubmVjdGlvblRvQ29udGV4dFByb2Nlc3NX
YXNDbG9zZWQpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vzczo6bmVlZHNTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uRm9yT3JpZ2luIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U3Rv
cmFnZVByb2Nlc3M6OmNyZWF0ZVN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6U3RvcmFnZVByb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyk6
CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzOjpzZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uRm9yT3JpZ2luKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZVByb2Nlc3M6OmNyZWF0ZVNl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vz
czo6c3dDb250ZXh0Q29ubmVjdGlvbk1heU5vTG9uZ2VyQmVOZWVkZWQpOgorICAgICAgICAqIFN0
b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9B
UElGcmFtZUluZm8uY3BwOgorICAgICAgICAoQVBJOjpGcmFtZUluZm86OmNyZWF0ZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuY3BwOgorICAg
ICAgICAoV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlckRlbGV0ZUVudHJpZXNGb3JPcmlnaW4pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwOgor
ICAgICAgICAoV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyRGVsZXRlRW50cmllc0Zvck9yaWdpbik6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwOgor
ICAgICAgICAoV0tSZXNvdXJjZUNhY2hlTWFuYWdlckNsZWFyQ2FjaGVGb3JPcmlnaW4pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwOgorICAgICAg
ICAoV0tXZWJzaXRlRGF0YVN0b3JlUmVtb3ZlRmV0Y2hDYWNoZUZvck9yaWdpbik6CisgICAgICAg
IChXS1dlYnNpdGVEYXRhU3RvcmVHZXRGZXRjaENhY2hlU2l6ZUZvck9yaWdpbik6CisgICAgICAg
ICogVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5KToK
KyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0
aW9ucyk6CisgICAgICAgICogVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6U3RvcmFnZVByb2Nlc3NQcm94eTo6Z2V0U3RvcmFnZVByb2Nlc3NDb25u
ZWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rp
b25Ub1N0b3JhZ2VQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmRp
c2Nvbm5lY3RQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnVwZGF0
ZVByb2Nlc3NBc3NlcnRpb25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmZldGNoRGF0YUFuZEFwcGx5KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdEZvckdlb2xvY2F0aW9uKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHA6CisgICAgICAg
IChXS0J1bmRsZVBhZ2VDb3B5T3JpZ2luc1dpdGhBcHBsaWNhdGlvbkNhY2hlKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cjo6c2VuZFVzZXJNZWRpYVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI6OmVudW1lcmF0ZU1lZGlhRGV2aWNlcyk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjptYXRjaFJlZ2lzdHJh
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6d2hlblJlZ2lz
dHJhdGlvblJlYWR5KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpn
ZXRSZWdpc3RyYXRpb25zKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZXhj
ZWVkZWREYXRhYmFzZVF1b3RhKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpy
ZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0
b3JhZ2VBcmVhSW1wbDo6c2VjdXJpdHlPcmlnaW4gY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJl
YU1hcDo6U3RvcmFnZUFyZWFNYXApOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYU1hcDo6
ZGlzcGF0Y2hTZXNzaW9uU3RvcmFnZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFy
ZWFNYXA6OmRpc3BhdGNoTG9jYWxTdG9yYWdlRXZlbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0
b3JhZ2VOYW1lc3BhY2VJbXBsOjpkaWREZXN0cm95U3RvcmFnZUFyZWFNYXApOgorCisyMDE4LTAz
LTI0ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEZp
eCB0aGUgIUVOQUJMRShNRURJQV9TVFJFQU0pIGJ1aWxkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5NzcKKworICAgICAgICBSZXZpZXdlZCBieSBX
ZW5zb24gSHNpZWguCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToK
KyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW46CisK
KzIwMTgtMDMtMjQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgV0tGaWxlVXBsb2FkUGFuZWwgc2hvdWxkbid0IGRlcGVuZCBvbiBXZWJLaXRMZWdhY3kK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzk4MQor
CisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW06CisgICAgICAgICgtW1dLRmlsZVVwbG9h
ZFBhbmVsIF91cGxvYWRJdGVtRm9ySW1hZ2VEYXRhOmltYWdlTmFtZTpzdWNjZXNzQmxvY2s6ZmFp
bHVyZUJsb2NrOl0pOgorICAgICAgICBKdXN0IHVzZSB0aGUgdW5kZXJseWluZyBXZWJDb3JlIGZ1
bmN0aW9uIGluc3RlYWQgb2YgdGhlCisgICAgICAgIHVubmVjZXNzYXJ5IE5TRmlsZU1hbmFnZXIg
Y2F0ZWdvcnkgbWV0aG9kLgorCisyMDE4LTAzLTIzICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0
b25AYXBwbGUuY29tPgorCisgICAgICAgIEZpeCB0aGUgYnVpbGQgd2l0aCBubyBwYXN0ZWJvYXJk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5NzMK
KworICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgorCisgICAgICAgICogQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisKKzIwMTgtMDMtMjMgIE1lZ2FuIEdh
cmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgdW5pZmll
ZCB0ZXh0IHNlbGVjdGlvbiBpbiBzZWxlY3QgY2FzZXMgZm9yIGdyYWR1YWwgdGVzdGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTY3CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8zODgxNTMyOD4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0g
SG9ydG9uLgorICAgICAgICAKKyAgICAgICAgRW5hYmxlIGluIHNlbGVjdCBwbGFjZXMgZm9yIGEg
bW9yZSBncmFkdWFsIHN3aXRjaCwgYXMgdGhpcyBpcyBhIGJpZyBjaGFuZ2UgYW5kIHdlIHdhbnQg
dG8gbWFrZSBzdXJlCisgICAgICAgIGl0IHdvcmtzIGJlZm9yZSBzd2l0Y2hpbmcgY29tcGxldGVs
eS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHVzZVNlbGVjdGlvbkFzc2lzdGFudFdpdGhHcmFu
dWxhcml0eTpdKToKKworMjAxOC0wMy0yMyAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBSZXNvdXJjZSBMb2FkIFN0YXRpc3RpY3M6IFBpY2sgdXAgSVRQIGRl
YnVnIG1vZGUgZmxhZyBmcm9tIGRlZmF1bHRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5NTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM4NTU5
NTc0PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlQ29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVnaXN0ZXJV
c2VyRGVmYXVsdHNJZk5lZWRlZCk6CisKKzIwMTgtMDMtMjMgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW0V4dHJhIHpvb20gbW9kZV0gQWRvcHQgbGlz
dCB2aWV3IGNvbnRyb2xsZXIgVUkgZm9yIHNlbGVjdCBtZW51cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTQ0CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zODc5OTA2Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAg
ICAgIE1vdmUgVUlQcm9jZXNzL1dLU2VsZWN0TWVudUxpc3RWaWV3Q29udHJvbGxlci4qIHRvIFVJ
UHJvY2Vzcy9pb3MvZm9ybXMsIHdoZXJlIGl0IHdhcyBpbnRlbmRlZCB0byBnby4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvZm9ybXMvV0tTZWxlY3RNZW51TGlzdFZpZXdDb250cm9sbGVyLmg6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XS1NlbGVjdE1lbnVMaXN0Vmll
d0NvbnRyb2xsZXIuaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLU2VsZWN0TWVu
dUxpc3RWaWV3Q29udHJvbGxlci5tbTogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dLU2VsZWN0TWVudUxpc3RWaWV3Q29udHJvbGxlci5tbS4KKyAgICAgICAgKiBXZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKworMjAxOC0wMy0yMyAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFByb21wdGx5IHRlcm1pbmF0ZSBzZXJ2aWNlIHdv
cmtlciBwcm9jZXNzZXMgd2hlbiB0aGV5IGFyZSBubyBsb25nZXIgbmVlZGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM4NzMKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzM4Njc2OTk1PgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJs
ZXQuCisKKyAgICAgICAgVGhlIFN0b3JhZ2VQcm9jZXNzIG5vdyBrZWVwcyB0cmFjayBvZiBzZXJ2
aWNlIHdvcmtlciBjbGllbnRzIGZvciBlYWNoIHNlY3VyaXR5CisgICAgICAgIG9yaWdpbi4gV2hl
biB0aGVyZSBpcyBubyBsb25nZXIgYW55IGNsaWVudHMgZm9yIGEgZ2l2ZW4gc2VjdXJpdHkgb3Jp
Z2luLCB0aGUKKyAgICAgICAgU3RvcmFnZVByb2Nlc3MgYXNrcyB0aGUgc2VydmljZSB3b3JrZXIg
cHJvY2VzcyBmb3IgdGhlIGdpdmVuIG9yaWdpbiB0byB0ZXJtaW5hdGUKKyAgICAgICAgYW5kIHNl
dmVycyBpdHMgY29ubmVjdGlvbiB0byBpdC4KKworICAgICAgICAqIFNoYXJlZC9TdG9yYWdlL1N0
b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogU3RvcmFnZVByb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmNvbm5lY3Rpb25N
YXlOb0xvbmdlckJlTmVlZGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uOjp0ZXJtaW5hdGUpOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmg6CisgICAgICAgICogU3Rv
cmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdl
UHJvY2Vzczo6Y29ubmVjdGlvblRvQ29udGV4dFByb2Nlc3NXYXNDbG9zZWQpOgorICAgICAgICAo
V2ViS2l0OjpTdG9yYWdlUHJvY2Vzczo6bmVlZHNTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uRm9y
T3JpZ2luIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZVByb2Nlc3M6OmluaXRpYWxp
emVXZWJzaXRlRGF0YVN0b3JlKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZVByb2Nlc3M6OnN3
U2VydmVyRm9yU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9jZXNzOjpzd0Nv
bnRleHRDb25uZWN0aW9uTWF5Tm9Mb25nZXJCZU5lZWRlZCk6CisgICAgICAgIChXZWJLaXQ6OlN0
b3JhZ2VQcm9jZXNzOjpkaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5
KToKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5oOgorICAgICAgICAq
IFN0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToKKyAgICAgICAgKC1bV0tQcm9jZXNz
UG9vbCBfZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheV0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUG9vbDo6ZW5zdXJlU3RvcmFnZVByb2Nlc3NBbmRXZWJzaXRlRGF0YVN0b3JlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmRpc2FibGVTZXJ2aWNlV29ya2VyUHJvY2Vz
c1Rlcm1pbmF0aW9uRGVsYXkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
Ojp0ZXJtaW5hdGVQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisKKzIwMTgtMDMtMjMg
IEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIEdvIHRvIGJhY2sv
Zm9yd2FyZCBsaXN0IGl0ZW1zIGFmdGVyIGEgcHJvY2Vzcy1zd2FwcGVkIG5hdmlnYXRpb24uCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zODY5MDU0ND4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5MjAKKworICAgICAgICBSZXZpZXdlZCBieSBBbmR5IEVz
dGVzLgorCisgICAgICAgIFRoaXMgdGFrZXMgdGhlIGluaXRpYWwgd29yayBvZiAicHJvY2VzcyBz
d2FwIGEgbm9ybWFsIG5hdmlnYXRpb24iIGFuZCBleHRlbmRzIGl0IHRvCisgICAgICAgIHByb2Nl
c3Mgc3dhcHBpbmcgZm9yIGJhY2svZm9yd2FyZCBpdGVtIG5hdmlnYXRpb25zLgorCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisKKyAgICAgICAgTWFrZSBzdXJlIHN0YXRl
IG9iamVjdHMgYXJlIHNlcmlhbGl6ZWQgdG8gdGhlIFVJIFByb2Nlc3MgYmFjay9mb3J3YXJkIGxp
c3QgaXRlbXMsIGFzIG90aGVyd2lzZQorICAgICAgICB0aGV5IHdpbGwgYmUgbG9zdCBpbiBwcm9j
ZXNzLXN3YXAgc2NlbmFyaW9zOgorICAgICAgICAqIFNoYXJlZC9TZXNzaW9uU3RhdGUuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlU3RhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VTdGF0ZTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvU2Vzc2lvblN0YXRlLmg6
CisKKyAgICAgICAgTWFrZSBhIG5ldyB2YXJpYW50IG9mIEFQSU5hdmlnYXRpb24gc3BlY2lmaWNh
bGx5IGZvciBiYWNrL2ZvcndhcmQgbGlzdCBpdGVtcy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0FQSU5hdmlnYXRpb24uY3BwOgorICAgICAgICAoQVBJOjpOYXZpZ2F0aW9uOjpOYXZpZ2F0aW9u
KToKKyAgICAgICAgKEFQSTo6TmF2aWdhdGlvbjo6bG9nZ2luZ1VSTCBjb25zdCk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmg6CisgICAgICAgIChBUEk6Ok5hdmlnYXRp
b246OmNyZWF0ZSk6CisgICAgICAgIChBUEk6Ok5hdmlnYXRpb246OmJhY2tGb3J3YXJkTGlzdEl0
ZW0pOgorICAgICAgICAoQVBJOjpOYXZpZ2F0aW9uOjpiYWNrRm9yd2FyZEZyYW1lTG9hZFR5cGUg
Y29uc3QpOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAg
IChXS1BhZ2VHb1RvQmFja0ZvcndhcmRMaXN0SXRlbSk6CisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVyIGdvVG9CYWNrRm9yd2FyZExpc3RJdGVtOl0pOgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dL
V2ViVmlldyBnb1RvQmFja0ZvcndhcmRMaXN0SXRlbTpdKToKKworICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJOYXZpZ2F0aW9uU3RhdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0aW9u
U3RhdGU6OmNyZWF0ZUxvYWRSZXF1ZXN0TmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk5hdmlnYXRpb25TdGF0ZTo6Y3JlYXRlQmFja0ZvcndhcmROYXZpZ2F0aW9uKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViTmF2aWdhdGlvblN0YXRlLmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWF0dGFj
aFRvV2ViUHJvY2Vzc0ZvclJlbG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
cmVhdHRhY2hUb1dlYlByb2Nlc3NXaXRoSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6Z29Gb3J3YXJkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpnb0JhY2sp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlY2VpdmVkUG9saWN5RGVjaXNpb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJv
Y2Vzcyk6IEhhbmRsZSBiYWNrL2ZvcndhcmQgbmF2aWdhdGlvbnMgZGlmZmVyZW50bHkgdGhhbiBv
dGhlcnMuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVzdG9yZUZyb21TZXNzaW9u
U3RhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKworICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUHJveHk6OmFkZE9yVXBkYXRlQmFja0ZvcndhcmRJdGVtKTogUmVuYW1lZCBmcm9tICJhZGRC
YWNrRm9yd2FyZEl0ZW0iIGZvciBjbGFyaXR5CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
cm94eTo6YWRkQmFja0ZvcndhcmRJdGVtKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbjoKKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9s
bGVySU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmVuZFN3
aXBlR2VzdHVyZSk6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJv
bGxlck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjplbmRT
d2lwZUdlc3R1cmUpOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNz
aW9uU3RhdGVDb252ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6dG9QYWdlU3RhdGUpOgor
ICAgICAgICAoV2ViS2l0Ojp0b0hpc3RvcnlJdGVtKToKKworICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OnVw
ZGF0ZUJhY2tGb3J3YXJkSXRlbSk6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdvVG9CYWNrRm9yd2FyZEl0ZW0p
OiBDb21iaW5lZCAiZ29CYWNrIiBhbmQgImdvRm9yd2FyZCIgd2l0aCB0aGlzIG1ldGhvZCwKKyAg
ICAgICAgICBwYXNzaW5nIHRoZSBhcHByb3ByaWF0ZSBGcmFtZUxvYWRUeXBlIGFyb3VuZCBhcyBu
ZWVkZWQgdG8gcmVtZW1iZXIgdGhlIHNwZWNpZmljIHR5cGUuCisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OmdvRm9yd2FyZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Omdv
QmFjayk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKworMjAx
OC0wMy0yMyAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAg
ICAgIERvbid0IHVzZSB0aGUgcHJlc2VuY2Ugb2YgYSB0ZXh0U2VsZWN0aW9uQXNzaXN0YW50IGFz
IGEgcHJveHkgZm9yIGlmIHdlIGFyZSBpbiBjb250ZW50IGVkaXRhYmxlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzODA0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBXZSBuZWVkIHRvIHN0b3AgdXNpbmcgdGhl
IHByZXNlbmNlIG9mIGEgdGV4dFNlbGVjdGlvbkFzc2lzdGFudCBhcyBhIHByb3h5IGZvciBpZiB3
ZSBhcmUgc2VsZWN0aW5nIGluIGEgY29udGVudCBlZGl0YWJsZQorICAgICAgICBvciBub3QuIEFz
IHdlIGFyZSBwbGFubmluZyBvbiBzd2l0Y2hpbmcgdG8gb25seSB1c2luZyBhIHRleHRTZWxlY3Rp
b25Bc3Npc3RhbnQgZm9yIHNlbGVjdGlvbiwgdGhlc2UgY2hlY2tzIG5lZWQgdG8gCisgICAgICAg
IGJlIG1vcmUgZGlyZWN0IGluIGNoZWNraW5nIHdoYXQgd2UgYWN0dWFsbHkgbmVlZCB0byBrbm93
IGkuZS4gYXJlIHdlIHNlbGVjdGluZyBpbiBhIGNvbnRlbnQgZWRpdGFibGUuCisKKyAgICAgICAg
KiBQbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgIChoYXNBc3Npc3RlZE5vZGUpOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGlucHV0Vmlld10pOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IF9zZWxlY3Rpb25DbGlwUmVjdF0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGdl
c3R1cmVSZWNvZ25pemVyOmNhbkJlUHJldmVudGVkQnlHZXN0dXJlUmVjb2duaXplcjpdKToKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBnZXN0dXJlUmVjb2duaXplcjpzaG91bGRSZWNvZ25pemVT
aW11bHRhbmVvdXNseVdpdGhHZXN0dXJlUmVjb2duaXplcjpdKToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBnZXN0dXJlUmVjb2duaXplclNob3VsZEJlZ2luOl0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IHRleHRJbnRlcmFjdGlvbkdlc3R1cmU6c2hvdWxkQmVnaW5BdFBvaW50Ol0pOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHdlYlNlbGVjdGlvblJlY3RzXSk6CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgX3N0YXJ0QXNzaXN0aW5nTm9kZTp1c2VySXNJbnRlcmFjdGluZzpibHVy
UHJldmlvdXNOb2RlOmNoYW5naW5nQWN0aXZpdHlTdGF0ZTp1c2VyT2JqZWN0Ol0pOgorICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IF9hdXRvZmlsbENvbnRleHRdKToKKworMjAxOC0wMy0yMyAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViUHJvY2Vzc1Bvb2wg
c2hvdWxkIG5vdCBhc2sgdG8gcmVnaXN0ZXIgYWxsIGNsaWVudHMgZm9yIGVhY2ggc2VydmljZSB3
b3JrZXIgcHJvY2VzcyBjcmVhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTgzOTQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXou
CisKKyAgICAgICAgQ2FsbCByZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRzIHdoZW4gdGhlcmUg
aXMgbm8gc2VydmljZSB3b3JrZXIgcHJvY2Vzcy4KKyAgICAgICAgVXBkYXRlIHNlcnZpY2Ugd29y
a2VyIGNsaWVudHMgdG8gcmVnaXN0ZXIgYWxsIG9mIHRoZW0gbm8gbWF0dGVyIHRoZSBzZXNzaW9u
IElELgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9u
VG9TdG9yYWdlUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50
cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorCisyMDE4LTAzLTIzICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtFeHRyYSB6b29tIG1vZGVdIEFk
b3B0IGxpc3QgdmlldyBjb250cm9sbGVyIFVJIGZvciBzZWxlY3QgbWVudXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzk0NAorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzg3OTkwNjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5keSBFc3Rlcy4K
KworICAgICAgICBSZW5hbWUgV0tTZWxlY3RNZW51Vmlld0NvbnRyb2xsZXIgdG8gV0tTZWxlY3RN
ZW51TGlzdFZpZXdDb250cm9sbGVyLCBhbmQgYWxzbyByZW5hbWUgdGhlIHJlbGV2YW50CisgICAg
ICAgIFdlYktpdEFkZGl0aW9ucyBoYXJuZXNzIGZpbGVzLiBTZWUgY29ycmVzcG9uZGluZyBjaGFu
Z2VzIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV0tTZWxlY3RNZW51
TGlzdFZpZXdDb250cm9sbGVyLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvZm9ybXMvV0tTZWxlY3RNZW51Vmlld0NvbnRyb2xsZXIuaC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvV0tTZWxlY3RNZW51TGlzdFZpZXdDb250cm9sbGVyLm1tOiBSZW5hbWVkIGZyb20gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLU2VsZWN0TWVudVZpZXdDb250cm9sbGVy
Lm1tLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06Cisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgcHJlc2VudFNlbGVjdE1lbnVWaWV3Q29udHJvbGxlcjpd
KToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkaXNtaXNzU2VsZWN0TWVudVZpZXdDb250cm9s
bGVyOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNlbGVjdE1lbnU6ZGlkU2VsZWN0SXRl
bUF0SW5kZXg6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgbnVtYmVyT2ZJdGVtc0luU2Vs
ZWN0TWVudTpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZWxlY3RNZW51OmRpc3BsYXlU
ZXh0Rm9ySXRlbUF0SW5kZXg6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2VsZWN0TWVu
dTpkaWRDaGVja0l0ZW1BdEluZGV4OmNoZWNrZWQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgc2VsZWN0TWVudVVzZXNNdWx0aXBsZVNlbGVjdGlvbjpdKToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBzZWxlY3RNZW51Omhhc1NlbGVjdGVkT3B0aW9uQXRJbmRleDpdKToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBfd2hlZWxDaGFuZ2VkV2l0aEV2ZW50Ol0pOgorCisgICAgICAgIE92
ZXJyaWRpbmcgd2hlZWwgZXZlbnRzIGFuZCByZS1kaXNwYXRjaGluZyB0aGVtIGlzIG5vIGxvbmdl
ciBuZWVkZWQgYWZ0ZXIgcjIyOTQzNywgc28gd2UgY2FuIGp1c3QgcmVtb3ZlIHNwZWNpYWwKKyAg
ICAgICAgaGFuZGxpbmcgZm9yIHNlbGVjdCBtZW51cyBoZXJlLgorCisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgZGlkQ2FuY2VsU2VsZWN0aW9uSW5TZWxlY3RNZW51Ol0pOiBEZWxldGVkLgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IHNlbGVjdE1lbnVTdXBwb3J0c011bHRpcGxlU2VsZWN0aW9u
Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNlbGVjdE1lbnU6aGFzQ2hl
Y2tlZE9wdGlvbkF0SW5kZXg6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLQ29udGVudFZpZXcg
c3RhcnRpbmdJbmRleEZvclNlbGVjdE1lbnU6XSk6IERlbGV0ZWQuCisKKyAgICAgICAgVGhlIHN0
YXJ0aW5nIGluZGV4IGZvciBhIHNlbGVjdCBtZW51IGlzIG5vIGxvbmdlciByZWxldmFudCB3aGVu
IHVzaW5nIGxpc3QgdmlldyBjb250cm9sbGVycyBmb3IgaW5wdXQsIHNvIHdlIGNhbgorICAgICAg
ICBqdXN0IHJlbW92ZSB0aGlzIGRlbGVnYXRlIGhvb2sgYWx0b2dldGhlci4KKworICAgICAgICAq
IFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCisyMDE4LTAzLTIzICBZb3Vlbm4g
RmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBDYWNoZVN0b3JhZ2U6OkNhY2hl
cyBzaG91bGQgY2xlYXIgbV9jYWNoZXMgd2hlbiBjbGVhcmluZyBpdHMgcmVwcmVzZW50YXRpb24g
ZXZlbiB0aG91Z2ggaXQgaXMgbm90IHlldCBpbml0aWFsaXplZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTQ1CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0
b3JhZ2VFbmdpbmVDYWNoZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkNh
Y2hlczo6Y2xlYXJNZW1vcnlSZXByZXNlbnRhdGlvbik6CisgICAgICAgIEluIGNhc2Ugd2UgY2xl
YXIgQ2FjaGVzIGluIHRoZSBtaWRkbGUgb2YgdGhlIGluaXRpYWxpemF0aW9uLCBtX2NhY2hlcyBt
aWdodCBub3QgYmUgZW1wdHkKKyAgICAgICAgYnV0IG1faXNJbml0aWFsaXplZCBpcyBub3QgeWV0
IHNldCB0byB0cnVlIHNpbmNlIHdlIGFyZSBjb21wdXRpbmcgdGhlIENhY2hlcyBzaXplLgorICAg
ICAgICBVcGRhdGUgdGhlIGFzc2VydGlvbiBhbmQgY2xlYXIgbV9jYWNoZXMgaW4gdGhhdCBjYXNl
LgorCisyMDE4LTAzLTIzICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAg
ICAgICAgU3RvcCB1c2luZyBkaXNwYXRjaF9zZXRfdGFyZ2V0X3F1ZXVlKCkKKyAgICAgICAgPGh0
dHBzOi8vd2Via2l0Lm9yZy9iLzE4MzkwOD4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzNTUz
NTMzPgorCisgICAgICAgIFJldmlld2VkIGJ5IERhbmllbCBCYXRlcy4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbENvY29hLm1tOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OklPQ2hhbm5lbDo6SU9DaGFubmVsKTogUmVtb3ZlIHRo
ZSBjYWxsIHRvCisgICAgICAgIGRpc3BhdGNoX3NldF90YXJnZXRfcXVldWUoKSBzaW5jZSB0aGlz
IGlzIGhhbmRsZWQgaW4gdGhlCisgICAgICAgIGRpc3BhdGNoX2lvX2NyZWF0ZSgpIGNhbGwgYWJv
dmUuCisKKzIwMTgtMDMtMjMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisg
ICAgICAgIENhY2hlU3RvcmFnZTo6RW5naW5lIHNob3VsZCBub3QgcmVmIGl0c2VsZiB3aGVuIGhv
cHBpbmcgdG8gYSBiYWNrZ3JvdW5kIHRocmVhZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTI1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zODU4
MDQ4Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICBBZGQg
c3VwcG9ydCBmb3Igd2VhayBwb2ludGVycyB0byBDYWNoZVN0b3JhZ2UgRW5naW5lLgorICAgICAg
ICBVc2Ugd2VhayBwb2ludGVyIHdoZW4gaG9wcGluZyB0byBiYWNrZ3JvdW5kIHRocmVhZHMuCisg
ICAgICAgIFN0b3JlIGNhbGxiYWNrcyBpbiBDYWNoZVN0b3JhZ2U6OkVuZ2luZSBtYXBzIHRvIGtl
ZXAgdGhlbSBiZWluZyBkZXN0cm95ZWQgaW4gdGhlIG1haW4gdGhyZWFkIG9ubHkuCisgICAgICAg
IE1hZGUgc29tZSBjYWxsYmFja3MgQ29tcGxldGlvbkhhbmRsZXIgYXMgYSBib251cy4KKworICAg
ICAgICBNYWRlIHN1cmUgdG8gdXNlIGp1c3Qgb25lIEVuZ2luZSBmb3IgYWxsIHByaXZhdGUgc2Vz
c2lvbnMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdp
bmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVuZ2luZTo6fkVuZ2luZSk6
CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZTo6RW5naW5lOjpmcm9tKToKKyAgICAgICAg
KFdlYktpdDo6Q2FjaGVTdG9yYWdlOjpFbmdpbmU6OmluaXRpYWxpemUpOgorICAgICAgICAoV2Vi
S2l0OjpDYWNoZVN0b3JhZ2U6OkVuZ2luZTo6d3JpdGVGaWxlKToKKyAgICAgICAgKFdlYktpdDo6
Q2FjaGVTdG9yYWdlOjpFbmdpbmU6OnJlYWRGaWxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuaDoKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9y
YWdlOjpFbmdpbmU6OndlYWtQdHJGYWN0b3J5KToKKworMjAxOC0wMy0yMyAgUnlhbiBIYWRkYWQg
IDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KKworICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeC4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorCisy
MDE4LTAzLTIzICBNaWd1ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAg
W0dUS11bV1BFXSBBdm9pZCBzb2Z0d2FyZSBjb2xvciBjb252ZXJzaW9uIGluc2lkZSBCaXRtYXBU
ZXh0dXJlR0wKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4Mzg5MgorCisgICAgICAgIFJlbW92ZSB0aGUgVXBkYXRlQ29udGVudHNGbGFnIHBhcmFtZXRl
ciB3aGVuIGNhbGxpbmcgQml0bWFwVGV4dHVyZTo6dXBkYXRlQ29udGVudHMoKS4KKworICAgICAg
ICBSZXZpZXdlZCBieSDFvWFuIERvYmVyxaFlay4KKworICAgICAgICAqIFNoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlOjpzd2FwQnVmZmVycyk6CisKKzIwMTgtMDMt
MjMgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgorCisgICAgICAg
IFtXUEVdW0dUS10gRml4IC1Xc3dpdGNoIHdhcm5pbmdzIGFmdGVyIHIyMjk3NzgKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzkyNworCisgICAgICAg
IFJldmlld2VkIGJ5IENhcmxvcyBHYXJjaWEgQ2FtcG9zLgorCisgICAgICAgICogTmV0d29ya1By
b2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya0RhdGFUYXNrU291cDo6ZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UpOiBMb2cgYSB3YXJu
aW5nIGlmIFN1c3BlbmQgaXMKKyAgICAgICAgcmVjZWl2ZWQgYXMgYSBQb2xpY3lBY3Rpb24KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2aWdhdGlvbkNsaWVudC5jcHA6IEln
bm9yZSB0aGUgUHJvY2Vzc1N3YXAgdGVybWluYXRpb24gcmVhc29uLAorICAgICAgICB3aGljaCBz
aG91bGQgYmUgaW52aXNpYmxlIHRvIFdlYktpdCBjbGllbnRzCisKKzIwMTgtMDMtMjIgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBJbmNsdWRlIHNlY3VyaXR5IG9y
aWdpbiBpbiB0aGUgc2VydmljZSB3b3JrZXIgcHJvY2VzcyBuYW1lCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5MTMKKworICAgICAgICBSZXZpZXdl
ZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIEluY2x1ZGUgc2VjdXJpdHkgb3JpZ2luIGlu
IHRoZSBzZXJ2aWNlIHdvcmtlciBwcm9jZXNzIG5hbWUgdG8gZmFjaWxpdGF0ZSBkZWJ1Z2dpbmcu
IFRoaXMgd2F5LCB3ZQorICAgICAgICBjYW4gZGlmZmVyZW50aWF0ZSB3aGljaCBzZXJ2aWNlIHdv
cmtlciBwcm9jZXNzIGlzIHVzZWQgZm9yIHdoaWNoIG9yaWdpbiBpbiBhY3Rpdml0eSBtb25pdG9y
LgorCisgICAgICAgICogU2hhcmVkL0NoaWxkUHJvY2Vzcy5oOgorICAgICAgICAqIFNoYXJlZC9F
bnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1t
OgorICAgICAgICAoV2ViS2l0OjpYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0RXh0
cmFJbml0aWFsaXphdGlvbkRhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
UHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlclByb2Nlc3NQ
cm94eTo6Z2V0TGF1bmNoT3B0aW9ucyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVQ
cm9jZXNzTmFtZSk6CisKKzIwMTgtMDMtMjIgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFy
b0BpZ2FsaWEuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHNpbGVuY2UgdW51c2VkIHZhcmlh
YmxlIHdhcm5pbmcKKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24pOgorCisyMDE4LTAzLTIyICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAg
ICAgICAgV0tXZWJWaWV3IGRvZXNu4oCZdCBleHBvc2UgaXRzIHNwZWxsQ2hlY2tlckRvY3VtZW50
VGFnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM3
OTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM4Njc4MDg5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zcGVsbENoZWNrZXJEb2N1bWVudFRhZ10pOiBB
ZGRlZCB0aGlzIGdldHRlciB3aGljaCBjYWxscyB0aHJvdWdoIHRvIHRoZSBXZWJWaWV3SW1wbC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDogRGVjbGFy
ZWQgX3NwZWxsQ2hlY2tlckRvY3VtZW50VGFnIHByb3BlcnR5LgorCisyMDE4LTAzLTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIHRoZSBzYW1lIFNXU2Vy
dmVyIGZvciBhbGwgZXBoZW1lcmFsIHNlc3Npb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5MjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM2
ODczMDc1PgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAg
VXNlIHRoZSBzYW1lIFNXU2VydmVyIGZvciBhbGwgZXBoZW1lcmFsIHNlc3Npb25zLiBTV1NlcnZl
cnMgbmV2ZXIgZ28gYXdheSBhbmQgd2UgY3JlYXRlCisgICAgICAgIG9uZSBwZXIgc2Vzc2lvbklE
LiBXaGVuIGJyb3dzaW5nIGRvaW5nIHByaXZhdGUgYnJvd3NpbmcgaW4gU2FmYXJpIChhbmQgb3Ro
ZXIgZmV0Y2hpbmcKKyAgICAgICAgZmF2b3JpdGUgaWNvbnMpLCB0aGUgc2Vzc2lvbklEIGlzIGVw
aGVtZXJhbCBhbmQga2VlcHMgY2hhbmdpbmcuIFRoaXMgbWVhbnMgdGhhdCB3ZSBrZXB0CisgICAg
ICAgIGNvbnN0cnVjdGluZyBuZXcgU1dTZXJ2ZXJzIHRoYXQgd291bGQgbmV2ZXIgZ28gYXdheS4g
RWFjaCBTV1NlcnZlciBoYXMgYSB0aHJlYWQgc28gd2UKKyAgICAgICAgd291bGQgZXZlbnR1YWxs
eSBoaXQgdGhlIHRocmVhZCBsaW1pdCBmb3IgdGhlIHN0b3JhZ2UgcHJvY2Vzcy4KKworICAgICAg
ICAqIFN0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
U3RvcmFnZVByb2Nlc3M6OnN3U2VydmVyRm9yU2Vzc2lvbik6CisKKzIwMTgtMDMtMjIgIE1pY2hh
ZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFVucmV2aWV3
ZWQsIGZpeCBmb3JtYXQgc3RyaW5nIHdhcm5pbmdzIGluIHNlcnZpY2Ugd29ya2VyIGNvZGUKKwor
ICAgICAgICBPbiBMaW51eCB4ODZfNjQsIHVpbnQ2NF90IGlzIHVuc2lnbmVkIGxvbmcsIG5vdCB1
bnNpZ25lZCBsb25nIGxvbmcuCisKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2Vy
dmVyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVy
Q29ubmVjdGlvbjo6ZGlkRmluaXNoRmV0Y2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZl
ckNvbm5lY3Rpb246OmRpZEZhaWxGZXRjaCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVy
Q29ubmVjdGlvbjo6ZGlkTm90SGFuZGxlRmV0Y2gpOgorCisyMDE4LTAzLTIyICBEYW5pZWwgQmF0
ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgU2NoZW1lUmVnaXN0cnk6
OnJlZ2lzdGVyQXNDYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdCgpIGFzIFdlYktpdCBTUEkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzkwNworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMzg3NTkxMjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxl
eCBDaHJpc3RlbnNlbi4KKworICAgICAgICBBZGRzIGJvdGggbW9kZXJuIE9iamVjdGl2ZS1DIFNQ
SSBhbmQgQyBTUEkgdG8gYWxsb3cgYW4gZW1iZWRkaW5nIGNsaWVudCB0byByZWdpc3RlciBhIHNj
aGVtZQorICAgICAgICB3aG9zZSBjb250ZW50IHNob3VsZCBiZSBkaXNwbGF5ZWQvbG9hZGVkIGlm
IGFuZCBvbmx5IGlmIGl0IGNhbiBiZSByZXF1ZXN0ZWQuIERpc3JlZ2FyZGluZyBhbgorICAgICAg
ICBhcHAgdGhhdCBlbmFibGVzIHVuaXZlcnNhbCBhY2Nlc3MsIGJ5IHVzaW5nIHRoaXMgU1BJIFdl
YktpdCB3aWxsIHJlZnVzZSB0byBkaXNwbGF5IGNyb3NzLW9yaWdpbgorICAgICAgICBjb250ZW50
IGZvciB0aGUgcmVnaXN0ZXJlZCBzY2hlbWVzLgorCisgICAgICAgIFdlIG5lZWQgdG8gYWRkIEMg
U1BJIGZvciBlbWJlZGRpbmcgY2xpZW50cyB0aGF0IGhhdmUgbm90IHRyYW5zaXRpb25lZCB0byB0
aGUgbW9kZXJuIE9iamVjdGl2ZS0KKyAgICAgICAgQyBBUEkvU1BJLgorCisgICAgICAgICogU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRSZWdpc3RlclVSTFNjaGVt
ZUFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHRQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NQb29sLm1tOgorICAgICAgICAoLVtXS1Byb2Nlc3NQb29sIF9yZWdpc3RlclVSTFNjaGVt
ZUFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3Q6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjppbml0aWFs
aXplTmV3V2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpyZWdp
c3RlclVSTFNjaGVtZUFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3QpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cmVnaXN0ZXJVUkxTY2hlbWVBc0NhbkRp
c3BsYXlPbmx5SWZDYW5SZXF1ZXN0IGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisK
IDIwMTgtMDMtMjIgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBXZWJDb3JlJ3MgT1RIRVJfTERGTEFHUwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L0NoYW5nZUxvZwppbmRleCAzNGU3ZGI0N2Q5MDVhOWIwMTFjZjdiZjY4Y2UyMWFiNTBjOGRm
MThkLi41ZTkzYTBhMTg1YTU3ODljNmYzYjFmNTExZTNhMWM2MjFiYWU0NTU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDE4LTAzLTI2ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFNlY3VyaXR5T3JpZ2luRGF0YSBtb3JlIGNv
bnNpc3RlbnRseSBpbiBTZXJ2aWNlIFdvcmtlciBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5NjkKKworICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KKworICAgICAgICBVc2UgU2VjdXJpdHlPcmlnaW46OmRhdGEoKSBpbnN0ZWFk
IG9mIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCkuCisKKyAgICAgICAg
KiBTdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZVRy
YWNrZXI6OmRpc2tVc2FnZUZvck9yaWdpbik6CisKKzIwMTgtMDMtMjUgIENvbW1pdCBRdWV1ZSAg
PGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIyMjk5NTQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODQwMDAKKworICAgICAgICBDYXVzZWQgbWFueSBsYXlvdXQgdGVzdHMgdG8gY3Jhc2gg
b24gQXBwbGUgSGlnaCBTaWVycmEsCisgICAgICAgIFNpZXJyYSwgaU9TIFNpbXVsYXRvciBhbmQg
R1RLIExpbnV4IERlYnVnIHRlc3QgYm90cyAoUmVxdWVzdGVkCisgICAgICAgIGJ5IGR5ZHogb24g
I3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJVc2Ug
U2VjdXJpdHlPcmlnaW5EYXRhIG1vcmUgY29uc2lzdGVudGx5IGluIFNlcnZpY2UgV29ya2VyCisg
ICAgICAgIGNvZGUiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODM5NjkKKyAgICAgICAgaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIy
OTk1NAorCisyMDE4LTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgVXNlIFNlY3VyaXR5T3JpZ2luRGF0YSBtb3JlIGNvbnNpc3RlbnRseSBpbiBTZXJ2aWNl
IFdvcmtlciBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODM5NjkKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAg
ICBVc2UgU2VjdXJpdHlPcmlnaW46OmRhdGEoKSBpbnN0ZWFkIG9mIFNlY3VyaXR5T3JpZ2luRGF0
YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCkuCisKKyAgICAgICAgKiBTdG9yYWdlL1N0b3JhZ2VUcmFj
a2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZVRyYWNrZXI6OmRpc2tVc2FnZUZvck9y
aWdpbik6CisKKzIwMTgtMDMtMjMgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRvcHQgV0tfUExBVEZPUk1fTkFNRSBpbiBXZWJLaXRMZWdhY3kKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzk0OAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMzg4MDM5MDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFu
IEJlcm5zdGVpbi4KKworICAgICAgICAqIFdlYktpdExlZ2FjeS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorCiAyMDE4LTAyLTI4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmVkdWNlIHVzZSBvZiBOZXR3b3JraW5nQ29udGV4dCBpbiBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZwppbmRleCBlMjAxNjI3NWQ4ZTA2MmE4NWMy
ZWI1OWY1ZGI3MzBiNGFiMDVkNmViLi42ZjAzNWFlM2Y1MWE1MjYzMWY1ZDYwYzgwYmVkNTdhZDQw
NjNhNjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MTgtMDMtMjUgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgRGlzYWJsZSBnZW9sb2NhdGlvbiBwcm9tcHQgaW4gbWluaW1hbCBzaW11bGF0b3IgbW9kZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTkxCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zODg0NTc3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBE
YW4gQmVybnN0ZWluLgorCisgICAgICAgICogTWlzYy9XZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlv
blByb3ZpZGVyLm1tOgorICAgICAgICAoLVtXZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3Zp
ZGVyIHJlcXVlc3RHZW9sb2NhdGlvbkF1dGhvcml6YXRpb25dKToKKyAgICAgICAgKiBNaXNjL1dl
Ykdlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW06CisgICAgICAgICgtW1dlYkdlb2xvY2F0aW9uUHJv
dmlkZXJJT1MgcmVnaXN0ZXJXZWJWaWV3Ol0pOgorICAgICAgICAoLVtXZWJHZW9sb2NhdGlvblBy
b3ZpZGVySU9TIGluaXRpYWxpemVHZW9sb2NhdGlvbkZvcldlYlZpZXc6bGlzdGVuZXI6XSk6Cisg
ICAgICAgIEFsc28gY2xlYW4gdXAgc29tZSB1bm5lY2Vzc2FyeSBuZXN0ZWQgI2lmcy4KKwogMjAx
OC0wMi0wNiAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAg
IFJlbW92ZSBXZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzIGRpcmVjdG9yeQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nCmluZGV4IDhlMGU2NWExYTk2YWE5MWQ0ZDUyMDYwOWI1ZTljMTlhM2M4N2E5
MzMuLjlmMmM1YzljODRiY2ZkMjc0ZjMzZjIwYzllZTBkODMzOTVkN2RkYzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNjggQEAKKzIwMTgtMDMtMjYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgU2VjdXJpdHlPcmlnaW5EYXRh
IG1vcmUgY29uc2lzdGVudGx5IGluIFNlcnZpY2UgV29ya2VyIGNvZGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzk2OQorCisgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFVzZSBTZWN1cml0eU9yaWdpbjo6ZGF0YSgp
IGluc3RlYWQgb2YgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oKS4KKwor
ICAgICAgICAqIFN0b3JhZ2UvV2ViRGF0YWJhc2VNYW5hZ2VyLm1tOgorICAgICAgICAoLVtXZWJE
YXRhYmFzZU1hbmFnZXIgZGF0YWJhc2VzV2l0aE9yaWdpbjpdKToKKyAgICAgICAgKC1bV2ViRGF0
YWJhc2VNYW5hZ2VyIGRlbGV0ZU9yaWdpbjpdKToKKyAgICAgICAgKC1bV2ViRGF0YWJhc2VNYW5h
Z2VyIGRlbGV0ZURhdGFiYXNlOndpdGhPcmlnaW46XSk6CisgICAgICAgICogU3RvcmFnZS9XZWJE
YXRhYmFzZVF1b3RhTWFuYWdlci5tbToKKyAgICAgICAgKC1bV2ViRGF0YWJhc2VRdW90YU1hbmFn
ZXIgdXNhZ2VdKToKKyAgICAgICAgKC1bV2ViRGF0YWJhc2VRdW90YU1hbmFnZXIgcXVvdGFdKToK
KyAgICAgICAgKC1bV2ViRGF0YWJhc2VRdW90YU1hbmFnZXIgc2V0UXVvdGE6XSk6CisgICAgICAg
ICogU3RvcmFnZS9XZWJTdG9yYWdlTWFuYWdlci5tbToKKyAgICAgICAgKC1bV2ViU3RvcmFnZU1h
bmFnZXIgZGVsZXRlT3JpZ2luOl0pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlNlY3Vy
aXR5T3JpZ2luLm1tOgorICAgICAgICAoLVtXZWJTZWN1cml0eU9yaWdpbiBkYXRhYmFzZUlkZW50
aWZpZXJdKToKKyAgICAgICAgKC1bV2ViU2VjdXJpdHlPcmlnaW4gdXNhZ2VdKToKKyAgICAgICAg
KC1bV2ViU2VjdXJpdHlPcmlnaW4gcXVvdGFdKToKKyAgICAgICAgKC1bV2ViU2VjdXJpdHlPcmln
aW4gc2V0UXVvdGE6XSk6CisKKzIwMTgtMDMtMjYgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBh
cHBsZS5jb20+CisKKyAgICAgICAgV2FybiBhZ2FpbnN0IGNvb2tpZSBhY2Nlc3MgaW4gdGhlIFdl
YkNvbnRlbnQgcHJvY2VzcyB1c2luZyBQcm9jZXNzUHJpdmlsZWdlIGFzc2VydGlvbnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzkxMQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzg3NjIzMDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5u
IEZhYmxldC4KKworICAgICAgICBJbml0aWFsaXplIHRoZSBQcm9jZXNzUHJpdmlsZWdlIGFuZCBD
b29raWUgQVBJIGFjY2VzcyBsZXZlbHMgZm9yIHNpbmdsZS1wcm9jZXNzIHVzZS4KKworICAgICAg
ICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKCtbV2ViVmlldyBpbml0aWFsaXplXSk6
CisKKzIwMTgtMDMtMjYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBNZXJnZSBSZXNvdXJjZUhhbmRsZUNsaWVudDo6d2lsbENhY2hlUmVzcG9u
c2VBc3luYyB3aXRoIFJlc291cmNlSGFuZGxlQ2xpZW50Ojp3aWxsQ2FjaGVSZXNwb25zZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTY1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OndpbGxD
YWNoZVJlc3BvbnNlIGNvbnN0KToKKworMjAxOC0wMy0yNSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIy
OTk1NC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
NDAwMAorCisgICAgICAgIENhdXNlZCBtYW55IGxheW91dCB0ZXN0cyB0byBjcmFzaCBvbiBBcHBs
ZSBIaWdoIFNpZXJyYSwKKyAgICAgICAgU2llcnJhLCBpT1MgU2ltdWxhdG9yIGFuZCBHVEsgTGlu
dXggRGVidWcgdGVzdCBib3RzIChSZXF1ZXN0ZWQKKyAgICAgICAgYnkgZHlkeiBvbiAjd2Via2l0
KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIlVzZSBTZWN1cml0
eU9yaWdpbkRhdGEgbW9yZSBjb25zaXN0ZW50bHkgaW4gU2VydmljZSBXb3JrZXIKKyAgICAgICAg
Y29kZSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
Mzk2OQorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjI5OTU0CisK
KzIwMTgtMDMtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBV
c2UgU2VjdXJpdHlPcmlnaW5EYXRhIG1vcmUgY29uc2lzdGVudGx5IGluIFNlcnZpY2UgV29ya2Vy
IGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
Mzk2OQorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFVzZSBT
ZWN1cml0eU9yaWdpbjo6ZGF0YSgpIGluc3RlYWQgb2YgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9t
U2VjdXJpdHlPcmlnaW4oKS4KKworICAgICAgICAqIFN0b3JhZ2UvV2ViRGF0YWJhc2VNYW5hZ2Vy
Lm1tOgorICAgICAgICAoLVtXZWJEYXRhYmFzZU1hbmFnZXIgZGF0YWJhc2VzV2l0aE9yaWdpbjpd
KToKKyAgICAgICAgKC1bV2ViRGF0YWJhc2VNYW5hZ2VyIGRlbGV0ZU9yaWdpbjpdKToKKyAgICAg
ICAgKC1bV2ViRGF0YWJhc2VNYW5hZ2VyIGRlbGV0ZURhdGFiYXNlOndpdGhPcmlnaW46XSk6Cisg
ICAgICAgICogU3RvcmFnZS9XZWJEYXRhYmFzZVF1b3RhTWFuYWdlci5tbToKKyAgICAgICAgKC1b
V2ViRGF0YWJhc2VRdW90YU1hbmFnZXIgdXNhZ2VdKToKKyAgICAgICAgKC1bV2ViRGF0YWJhc2VR
dW90YU1hbmFnZXIgcXVvdGFdKToKKyAgICAgICAgKC1bV2ViRGF0YWJhc2VRdW90YU1hbmFnZXIg
c2V0UXVvdGE6XSk6CisgICAgICAgICogU3RvcmFnZS9XZWJTdG9yYWdlTWFuYWdlci5tbToKKyAg
ICAgICAgKC1bV2ViU3RvcmFnZU1hbmFnZXIgZGVsZXRlT3JpZ2luOl0pOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYlNlY3VyaXR5T3JpZ2luLm1tOgorICAgICAgICAoLVtXZWJTZWN1cml0
eU9yaWdpbiBkYXRhYmFzZUlkZW50aWZpZXJdKToKKyAgICAgICAgKC1bV2ViU2VjdXJpdHlPcmln
aW4gdXNhZ2VdKToKKyAgICAgICAgKC1bV2ViU2VjdXJpdHlPcmlnaW4gcXVvdGFdKToKKyAgICAg
ICAgKC1bV2ViU2VjdXJpdHlPcmlnaW4gc2V0UXVvdGE6XSk6CisKKzIwMTgtMDMtMjQgIFRpbW90
aHkgSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEZpeCB0aGUg
YnVpbGQKKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKworMjAxOC0wMy0yMyAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggdGhlIGJ1
aWxkIHdpdGggbm8gcGFzdGVib2FyZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTgzOTczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVp
bi4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgor
ICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfcmVxdWVz
dFN0YXJ0RGF0YUludGVyYWN0aW9uOmdsb2JhbFBvc2l0aW9uOl0pOgorICAgICAgICAoLVtXZWJW
aWV3IF9nZXREYXRhSW50ZXJhY3Rpb25EYXRhXSk6CisgICAgICAgICgtW1dlYlZpZXcgX2RhdGFP
cGVyYXRpb25UZXh0SW5kaWNhdG9yXSk6CisgICAgICAgICgtW1dlYlZpZXcgX2RyYWdTb3VyY2VB
Y3Rpb25dKToKKyAgICAgICAgKC1bV2ViVmlldyBfZHJhZ2dlZExpbmtUaXRsZV0pOgorICAgICAg
ICAoLVtXZWJWaWV3IF9kcmFnZ2VkTGlua1VSTF0pOgorICAgICAgICAoLVtXZWJWaWV3IF9kcmFn
Z2VkRWxlbWVudEJvdW5kc10pOgorICAgICAgICAoLVtXZWJWaWV3IF9lbnRlcmVkRGF0YUludGVy
YWN0aW9uOmNsaWVudDpnbG9iYWw6b3BlcmF0aW9uOl0pOgorICAgICAgICAoLVtXZWJWaWV3IF91
cGRhdGVkRGF0YUludGVyYWN0aW9uOmNsaWVudDpnbG9iYWw6b3BlcmF0aW9uOl0pOgorICAgICAg
ICAoLVtXZWJWaWV3IF9leGl0ZWREYXRhSW50ZXJhY3Rpb246Y2xpZW50Omdsb2JhbDpvcGVyYXRp
b246XSk6CisgICAgICAgICgtW1dlYlZpZXcgX3BlcmZvcm1EYXRhSW50ZXJhY3Rpb246Y2xpZW50
Omdsb2JhbDpvcGVyYXRpb246XSk6CisgICAgICAgICgtW1dlYlZpZXcgX3RyeVRvUGVyZm9ybURh
dGFJbnRlcmFjdGlvbjpjbGllbnQ6Z2xvYmFsOm9wZXJhdGlvbjpdKToKKyAgICAgICAgKC1bV2Vi
VmlldyBfZW5kZWREYXRhSW50ZXJhY3Rpb246Z2xvYmFsOl0pOgorICAgICAgICAoLVtXZWJWaWV3
IF9kYXRhSW50ZXJhY3Rpb25DYXJldFJlY3RdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdQ
cml2YXRlLmg6CisKKzIwMTgtMDMtMjMgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRvcHQgV0tfQUxURVJOQVRFX0ZSQU1FV09SS1NfRElSIGluIFdl
YktpdExlZ2FjeSBhbmQgdXBkYXRlIGluc3RhbGwgbmFtZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTYwCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8zODgxMjM1Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgorCisgICAg
ICAgICogQ29uZmlndXJhdGlvbnMvV2ViS2l0TGVnYWN5LnhjY29uZmlnOgorCisyMDE4LTAzLTIz
ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEludHJv
ZHVjZSBhbmQgYWRvcHQgSEFWRShBVURJT19UT09MQk9YX0FVRElPX1NFU1NJT04pCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5NTQKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzM4ODA4ODU4PgorCisgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJu
c3RlaW4uCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAo
LVtXZWJQcmVmZXJlbmNlcyBzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRlOl0pOgorCisy
MDE4LTAzLTIzICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAg
ICAgIEFkb3B0IFdLX1BMQVRGT1JNX05BTUUgaW4gV2ViS2l0TGVnYWN5CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5NDgKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzM4ODAzOTA4PgorCisgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4u
CisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9XZWJLaXRMZWdhY3kueGNjb25maWc6CisgICAg
ICAgICogTWlncmF0ZUhlYWRlcnMubWFrZToKKyAgICAgICAgKiBwb3N0cHJvY2Vzcy1oZWFkZXJz
LnNoOgorCisyMDE4LTAzLTIzICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBHbyB0byBiYWNrL2ZvcndhcmQgbGlzdCBpdGVtcyBhZnRlciBhIHByb2Nlc3Mtc3dh
cHBlZCBuYXZpZ2F0aW9uLgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzg2OTA1NDQ+IGFuZCBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTIwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQW5keSBFc3Rlcy4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToK
KyAgICAgICAgKC1bV2ViVmlldyBfbG9hZEJhY2tGb3J3YXJkTGlzdEZyb21PdGhlclZpZXc6XSk6
CisgICAgICAgICgtW1dlYlZpZXcgZ29Ub0JhY2tGb3J3YXJkSXRlbTpdKToKKwogMjAxOC0wMy0y
MiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBy
b3ZlIHJlYWRhYmlsaXR5IG9mIFdlYkNvcmUncyBPVEhFUl9MREZMQUdTCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9DaGFuZ2VMb2cKaW5kZXggY2ZmYTdmMjE4NDIyMmU2ZWJhODk0MDgxNTViYTMxYTU2YTNkMmQx
Ny4uZDk2Y2RlNjI4ZGMzYThiMzQ1MjRlOGVhZWI1OTFlMzA1ZWU1OTMwZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDE4LTAzLTI2ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFNlY3VyaXR5T3JpZ2luRGF0YSBt
b3JlIGNvbnNpc3RlbnRseSBpbiBTZXJ2aWNlIFdvcmtlciBjb2RlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5NjkKKworICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBVc2UgU2VjdXJpdHlPcmlnaW46OmRhdGEoKSBp
bnN0ZWFkIG9mIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCkuCisKKyAg
ICAgICAgKiBXZWJEYXRhYmFzZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViRGF0YWJhc2VNYW5h
Z2VyOjpkYXRhYmFzZXNXaXRoT3JpZ2luKToKKyAgICAgICAgKFdlYkRhdGFiYXNlTWFuYWdlcjo6
ZGVsZXRlT3JpZ2luKToKKyAgICAgICAgKFdlYkRhdGFiYXNlTWFuYWdlcjo6ZGVsZXRlRGF0YWJh
c2UpOgorICAgICAgICAoV2ViRGF0YWJhc2VNYW5hZ2VyOjpzZXRRdW90YSk6CisgICAgICAgICog
V2ViU2VjdXJpdHlPcmlnaW4uY3BwOgorICAgICAgICAoV2ViU2VjdXJpdHlPcmlnaW46OnVzYWdl
KToKKyAgICAgICAgKFdlYlNlY3VyaXR5T3JpZ2luOjpxdW90YSk6CisgICAgICAgIChXZWJTZWN1
cml0eU9yaWdpbjo6c2V0UXVvdGEpOgorCisyMDE4LTAzLTI2ICBCcmVudCBGdWxnaGFtICA8YmZ1
bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFdhcm4gYWdhaW5zdCBjb29raWUgYWNjZXNzIGlu
IHRoZSBXZWJDb250ZW50IHByb2Nlc3MgdXNpbmcgUHJvY2Vzc1ByaXZpbGVnZSBhc3NlcnRpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5MTEK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM4NzYyMzA2PgorCisgICAgICAgIFJldmlld2VkIGJ5
IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgSW5pdGlhbGl6ZSB0aGUgUHJvY2Vzc1ByaXZpbGVn
ZSBhbmQgQ29va2llIEFQSSBhY2Nlc3MgbGV2ZWxzIGZvciBzaW5nbGUtcHJvY2VzcyB1c2UuCisK
KyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OldlYlZpZXcpOgorCisy
MDE4LTAzLTI1ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjI5OTU0LgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MDAwCisKKyAgICAgICAgQ2F1c2VkIG1h
bnkgbGF5b3V0IHRlc3RzIHRvIGNyYXNoIG9uIEFwcGxlIEhpZ2ggU2llcnJhLAorICAgICAgICBT
aWVycmEsIGlPUyBTaW11bGF0b3IgYW5kIEdUSyBMaW51eCBEZWJ1ZyB0ZXN0IGJvdHMgKFJlcXVl
c3RlZAorICAgICAgICBieSBkeWR6IG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNo
YW5nZXNldDoKKworICAgICAgICAiVXNlIFNlY3VyaXR5T3JpZ2luRGF0YSBtb3JlIGNvbnNpc3Rl
bnRseSBpbiBTZXJ2aWNlIFdvcmtlcgorICAgICAgICBjb2RlIgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTY5CisgICAgICAgIGh0dHBzOi8vdHJh
Yy53ZWJraXQub3JnL2NoYW5nZXNldC8yMjk5NTQKKworMjAxOC0wMy0yNCAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBTZWN1cml0eU9yaWdpbkRhdGEgbW9y
ZSBjb25zaXN0ZW50bHkgaW4gU2VydmljZSBXb3JrZXIgY29kZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTY5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgVXNlIFNlY3VyaXR5T3JpZ2luOjpkYXRhKCkgaW5z
dGVhZCBvZiBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbigpLgorCisgICAg
ICAgICogV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkRhdGFiYXNlTWFuYWdl
cjo6ZGF0YWJhc2VzV2l0aE9yaWdpbik6CisgICAgICAgIChXZWJEYXRhYmFzZU1hbmFnZXI6OmRl
bGV0ZU9yaWdpbik6CisgICAgICAgIChXZWJEYXRhYmFzZU1hbmFnZXI6OmRlbGV0ZURhdGFiYXNl
KToKKyAgICAgICAgKFdlYkRhdGFiYXNlTWFuYWdlcjo6c2V0UXVvdGEpOgorICAgICAgICAqIFdl
YlNlY3VyaXR5T3JpZ2luLmNwcDoKKyAgICAgICAgKFdlYlNlY3VyaXR5T3JpZ2luOjp1c2FnZSk6
CisgICAgICAgIChXZWJTZWN1cml0eU9yaWdpbjo6cXVvdGEpOgorICAgICAgICAoV2ViU2VjdXJp
dHlPcmlnaW46OnNldFF1b3RhKToKKworMjAxOC0wMy0yMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQgYXR0ZW1wdCB0byBmaXggV2luZG93cyBi
dWlsZCBhZnRlciByMjI5OTI2LgorCisgICAgICAgICogV2ViVmlldy5jcHA6CisKKzIwMTgtMDMt
MjMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIEdvIHRvIGJh
Y2svZm9yd2FyZCBsaXN0IGl0ZW1zIGFmdGVyIGEgcHJvY2Vzcy1zd2FwcGVkIG5hdmlnYXRpb24u
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zODY5MDU0ND4gYW5kIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5MjAKKworICAgICAgICBSZXZpZXdlZCBieSBBbmR5
IEVzdGVzLgorCisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3Ojpnb1Rv
QmFja0ZvcndhcmRJdGVtKToKKyAgICAgICAgKFdlYlZpZXc6OmxvYWRCYWNrRm9yd2FyZExpc3RG
cm9tT3RoZXJWaWV3KToKKworMjAxOC0wMy0yMyAgTWlndWVsIEdvbWV6ICA8bWFnb21lekBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtHVEtdW1dQRV0gQXZvaWQgc29mdHdhcmUgY29sb3IgY29udmVy
c2lvbiBpbnNpZGUgQml0bWFwVGV4dHVyZUdMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODM4OTIKKworICAgICAgICBSZW1vdmUgdGhlIFVwZGF0ZUNv
bnRlbnRzRmxhZyBwYXJhbWV0ZXIgYXMgaXQncyBub3QgdXNlZCBhbnltb3JlLgorCisgICAgICAg
IFJldmlld2VkIGJ5IMW9YW4gRG9iZXLFoWVrLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0NvbnRleHQ6OmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdBdmFpbGFibGUpOgorCiAy
MDE4LTAzLTE1ICBZb3VzdWtlIEtpbW90byAgPHlvdXN1a2Uua2ltb3RvQHNvbnkuY29tPgogCiAg
ICAgICAgIFtXaW5DYWlyb10gRml4IGJ1aWxkIGVycm9ycyB3aGVuIEVOQUJMRV9ORVRTQ0FQRV9Q
TFVHSU5fQVBJIGlzIHR1cm5lZCBvZmYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA5NzI1
YjA0MmU5NGI2M2NjYmUzODAzYzUzMmQyY2EyOTgyYjYyZjRiLi40MzZiYjkyMzNlZjExMDM5NzQx
MmQ0YWM2MzVkMWY2OTkyMDgwODFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0xMDEs
NyArMTAxLDYgQEAgRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQgPSA7CiAKIEVOQUJMRV9EQVRBX0lO
VEVSQUNUSU9OID0gJChFTkFCTEVfREFUQV9JTlRFUkFDVElPTl8kKFdLX1BMQVRGT1JNX05BTUUp
KTsKIEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OX2lwaG9uZW9zID0gRU5BQkxFX0RBVEFfSU5URVJB
Q1RJT047Ci1FTkFCTEVfREFUQV9JTlRFUkFDVElPTl9pcGhvbmVtaW5pbWFsc2ltdWxhdG9yID0g
RU5BQkxFX0RBVEFfSU5URVJBQ1RJT047CiBFTkFCTEVfREFUQV9JTlRFUkFDVElPTl9pcGhvbmVz
aW11bGF0b3IgPSBFTkFCTEVfREFUQV9JTlRFUkFDVElPTjsKIAogRU5BQkxFX0RFVklDRV9PUklF
TlRBVElPTiA9ICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTl8kKFdLX1BMQVRGT1JNX05BTUUp
KTsKQEAgLTExNCw3ICsxMTMsNiBAQCBFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OX2FwcGxldHZz
aW11bGF0b3IgPSBFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OOwogCiBFTkFCTEVfRFJBR19TVVBQ
T1JUID0gJChFTkFCTEVfRFJBR19TVVBQT1JUXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxF
X0RSQUdfU1VQUE9SVF9pcGhvbmVvcyA9IEVOQUJMRV9EUkFHX1NVUFBPUlQ7Ci1FTkFCTEVfRFJB
R19TVVBQT1JUX2lwaG9uZW1pbmltYWxzaW11bGF0b3IgPSBFTkFCTEVfRFJBR19TVVBQT1JUOwog
RU5BQkxFX0RSQUdfU1VQUE9SVF9pcGhvbmVzaW11bGF0b3IgPSBFTkFCTEVfRFJBR19TVVBQT1JU
OwogCiBFTkFCTEVfRU5DUllQVEVEX01FRElBID0gJChFTkFCTEVfRU5DUllQVEVEX01FRElBXyQo
V0tfUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Nv
bmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWcgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29u
ZmlndXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZpZwppbmRleCA5NTdjOThjODg3MTkyOGY0YWQyZWI1
MjM2MzcxNTM2YTBmNzNjNWYxLi5lNjNmMTFkMTI0NDUwMzU0NTcyY2JiM2FjNzE4M2M4ZjVhODE2
YzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMvVmVy
c2lvbi54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMv
VmVyc2lvbi54Y2NvbmZpZwpAQCAtMjMsNyArMjMsNyBAQAogCiBNQUpPUl9WRVJTSU9OID0gNjA2
OwogTUlOT1JfVkVSU0lPTiA9IDE7Ci1USU5ZX1ZFUlNJT04gPSAxMDsKK1RJTllfVkVSU0lPTiA9
IDExOwogTUlDUk9fVkVSU0lPTiA9IDA7CiBOQU5PX1ZFUlNJT04gPSAwOwogRlVMTF9WRVJTSU9O
ID0gJChNQUpPUl9WRVJTSU9OKS4kKE1JTk9SX1ZFUlNJT04pLiQoVElOWV9WRVJTSU9OKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjIxY2M2ZmYwNWU5NmY0Y2ViN2QyNjNmODVj
NTVjMmUyNjEwOTgxNi4uNTY3ODQyYTJkMzRhNTY4ODNhZGVkMmM1OWQxYTM0MTc4M2FkYjY1MyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3MDEsNiArMTcwMSw3IEBACiAJCUUz
M0Y1MDgxMUI4NDI5QTQwMDQxMzg1NiAvKiBKU0ludGVybmFsUHJvbWlzZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMzRjUwN0YxQjg0MjlBNDAwNDEz
ODU2IC8qIEpTSW50ZXJuYWxQcm9taXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTMzRjUwODUxQjg0MzdBMDAwNDEzODU2IC8qIEpTSW50ZXJu
YWxQcm9taXNlRGVmZXJyZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzM0Y1MDgzMUI4NDM3QTAwMDQxMzg1NiAvKiBKU0ludGVybmFsUHJvbWlzZURl
ZmVycmVkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRTMzRjUwODcxQjg0NDlFRjAwNDEzODU2IC8qIEpTSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0
b3IubHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MzNGNTA4NjFCODQ0OUVGMDA0MTM4NTYgLyogSlNJbnRlcm5hbFByb21pc2VDb25zdHJ1Y3Rvci5s
dXQuaCAqLzsgfTsKKwkJRTM0RTY1NzUyMDY2OEVBQTAwRkI4MUFDIC8qIFBhcnNlSGFzaC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM0RTY1NzMyMDY2
OEU4RDAwRkI4MUFDIC8qIFBhcnNlSGFzaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUUzNEVEQkY3MURCNUZGQzkwMERDODdBNSAvKiBGcmFtZVRy
YWNlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
NEVEQkY2MURCNUZGQzEwMERDODdBNSAvKiBGcmFtZVRyYWNlcnMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzUwNzA4QTFEQzQ5QkJGMDA4OUJD
RDYgLyogRE9NSklUU2lnbmF0dXJlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMzUwNzA4OTFEQzQ5QkI2MDA4OUJDRDYgLyogRE9NSklUU2lnbmF0dXJl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM1
NDYyMkIxQjYwNjVEMTAwNTQ1Mzg2IC8qIENvbnN0cnVjdEFiaWxpdHkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNTQ2MjJBMUI2MDY1RDEwMDU0NTM4
NiAvKiBDb25zdHJ1Y3RBYmlsaXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTQ1NDgsNiArNDU0OSw4IEBACiAJCUUzM0Y1MDgzMUI4NDM3QTAw
MDQxMzg1NiAvKiBKU0ludGVybmFsUHJvbWlzZURlZmVycmVkLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTSW50ZXJuYWxQcm9taXNlRGVmZXJyZWQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTMzRjUwODYxQjg0NDlFRjAwNDEzODU2IC8qIEpTSW50ZXJuYWxQ
cm9taXNlQ29uc3RydWN0b3IubHV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTSW50ZXJuYWxQcm9taXNlQ29uc3RydWN0b3IubHV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUzM0Y1MDg4MUI4NDRBMUEwMDQxMzg1NiAvKiBJbnRlcm5hbFByb21pc2VDb25z
dHJ1Y3Rvci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9IEludGVy
bmFsUHJvbWlzZUNvbnN0cnVjdG9yLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
MzRFNjU3MzIwNjY4RThEMDBGQjgxQUMgLyogUGFyc2VIYXNoLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBhcnNlSGFzaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMzRFNjU3NDIwNjY4RThFMDBGQjgxQUMgLyogUGFyc2VIYXNoLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBhcnNlSGFzaC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUzNEVEQkY2MURCNUZGQzEwMERDODdBNSAvKiBGcmFtZVRyYWNlcnMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRnJhbWVUcmFjZXJzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNTA3MDg5MURDNDlCQjYwMDg5QkNENiAvKiBET01KSVRT
aWduYXR1cmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSklUU2lnbmF0
dXJlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNTQ2MjJBMUI2MDY1RDEwMDU0
NTM4NiAvKiBDb25zdHJ1Y3RBYmlsaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENvbnN0cnVjdEFiaWxpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc2
MzksNiArNzY0Miw4IEBACiAJCQkJOTY5QTA3OTUwRUQxRDNBRTAwRjFGNjgxIC8qIE9wY29kZS5o
ICovLAogCQkJCTBGMkJEQzJCMTUxRkRFOEIwMENEODkxMCAvKiBPcGVyYW5kcy5oICovLAogCQkJ
CUE3MDQ0N0U5MTdBMEJENDYwMEY1ODk4RSAvKiBPcGVyYW5kc0lubGluZXMuaCAqLywKKwkJCQlF
MzRFNjU3NDIwNjY4RThFMDBGQjgxQUMgLyogUGFyc2VIYXNoLmNwcCAqLywKKwkJCQlFMzRFNjU3
MzIwNjY4RThEMDBGQjgxQUMgLyogUGFyc2VIYXNoLmggKi8sCiAJCQkJMEZGOUNFNzExQjlDRDZE
MDAwNEVEQ0E2IC8qIFBvbHltb3JwaGljQWNjZXNzLmNwcCAqLywKIAkJCQkwRkY5Q0U3MjFCOUNE
NkQwMDA0RURDQTYgLyogUG9seW1vcnBoaWNBY2Nlc3MuaCAqLywKIAkJCQk1MjExMzFGNTFGODJC
RjExMDA3Q0NFRUUgLyogUG9seVByb3RvQWNjZXNzQ2hhaW4uY3BwICovLApAQCAtOTIzMiw2ICs5
MjM3LDcgQEAKIAkJCQlCQzE4QzQ0ODBFMTZGNUNEMDBCMzQ0NjAgLyogT3BlcmF0aW9ucy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZFMjI4RUQxNDM2QUIyNzAwMTk2QzQ4IC8qIE9wdGlvbnMuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGOURBQTBBMUZEMUMzRDMwMDc5QzVCMiAvKiBQYXJhbGxlbFNv
dXJjZUFkYXB0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzNEU2NTc1MjA2NjhFQUEwMEZCODFB
QyAvKiBQYXJzZUhhc2guaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QzczOEQyMUVEQjU2RTQwMDNG
MkIwQiAvKiBQYXJzZUludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0NEIwRTE2RjVDRDAw
QjM0NDYwIC8qIFBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMwNTJDMzUwRkI3OTIxOTAw
NDhGREMzIC8qIFBhcnNlckFyZW5hLmggaW4gSGVhZGVycyAqLywKQEAgLTk5MDcsNyArOTkxMyw3
IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CQlzaGVsbFBhdGggPSAvYmluL3NoOwotCQkJc2hlbGxTY3JpcHQgPSAic2V0IC1lXG5cbmlmIFtb
IC1mIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2xpYldURi5hXCIgXV07IHRoZW5cbiAgICBsbiAt
cyAtZiAtaCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9saWJXVEYuYVwiIFwiJHtCVUlMVF9QUk9E
VUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL2xpYldURi5hXCJcbmVsc2Vc
biAgICBsbiAtcyAtZiAtaCBcIiR7U0RLX0RJUn0vdXNyL2xvY2FsL2xpYi9saWJXVEYuYVwiIFwi
JHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL2xpYldU
Ri5hXCJcbmZpIjsKKwkJCXNoZWxsU2NyaXB0ID0gInNldCAtZVxuXG5pZiBbWyAtZiBcIiR7QlVJ
TFRfUFJPRFVDVFNfRElSfSR7V0tfQUxURVJOQVRFX1dFQktJVF9TREtfUEFUSH0vbGliV1RGLmFc
IiBdXTsgdGhlblxuICAgIGxuIC1zIC1mIC1oIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9JHtXS19B
TFRFUk5BVEVfV0VCS0lUX1NES19QQVRIfS9saWJXVEYuYVwiIFwiJHtCVUlMVF9QUk9EVUNUU19E
SVJ9L0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlL2xpYldURi5hXCJcbmVsc2VcbiAgICBs
biAtcyAtZiAtaCBcIiR7U0RLX0RJUn0ke1dLX0FMVEVSTkFURV9XRUJLSVRfU0RLX1BBVEh9L3Vz
ci9sb2NhbC9saWIvbGliV1RGLmFcIiBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291
cmNlcy9KYXZhU2NyaXB0Q29yZS9saWJXVEYuYVwiXG5maSI7CiAJCX07CiAJCTUzQjRCRDA5MUY2
OEFGODkwMEQyQkVBMyAvKiBHZW5lcmF0ZSBVbmlmaWVkIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2Eg
PSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKaW5k
ZXggYjJkODY0ZmY4YWZlZTJiZDg2YTBhZWZhY2JmNWRmNjQ4ZTFjOTk2OS4uZDdmNTAyM2Q2Y2Qz
NmE2ZjQxYTZhM2Y0N2MzMWFhMzg1NTcxMWI3YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Tb3VyY2VzLnR4
dApAQCAtMjMyLDYgKzIzMiw3IEBAIGJ5dGVjb2RlL01vZHVsZVByb2dyYW1Db2RlQmxvY2suY3Bw
CiBieXRlY29kZS9PYmplY3RQcm9wZXJ0eUNvbmRpdGlvbi5jcHAKIGJ5dGVjb2RlL09iamVjdFBy
b3BlcnR5Q29uZGl0aW9uU2V0LmNwcAogYnl0ZWNvZGUvT3Bjb2RlLmNwcAorYnl0ZWNvZGUvUGFy
c2VIYXNoLmNwcAogYnl0ZWNvZGUvUG9seVByb3RvQWNjZXNzQ2hhaW4uY3BwCiBieXRlY29kZS9Q
b2x5bW9ycGhpY0FjY2Vzcy5jcHAKIGJ5dGVjb2RlL1ByZWNpc2VKdW1wVGFyZ2V0cy5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3NlbWJsZXIuaAppbmRl
eCA0YmQwMTY4YjFmMGM3MzMyODgwNzlmN2U5NjNkZDIzMmExMmMwOTJjLi5kMDJkZDNkM2ZhMmM3
ZDFiMGY1Y2MyNWZjNjgzNDkzYTA3NmY4NDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9BUk02NEFzc2VtYmxlci5oCkBAIC0zMDM0LDcgKzMwMzQsOSBAQCBwcm90
ZWN0ZWQ6CiAgICAgICAgIEFTU0VSVF9VTlVTRUQoaXNDYWxsLCAobGluayA9PSBpc0NhbGwpIHx8
IGRpc2Fzc2VtYmxlTm9wKGZyb20pKTsKICAgICAgICAgQVNTRVJUKCEocmVpbnRlcnByZXRfY2Fz
dDxpbnRwdHJfdD4oZnJvbSkgJiAzKSk7CiAgICAgICAgIEFTU0VSVCghKHJlaW50ZXJwcmV0X2Nh
c3Q8aW50cHRyX3Q+KHRvKSAmIDMpKTsKLSAgICAgICAgaW50cHRyX3Qgb2Zmc2V0ID0gKHJlbW92
ZUNvZGVQdHJUYWc8aW50cHRyX3Q+KHRvKSAtIHJlbW92ZUNvZGVQdHJUYWc8aW50cHRyX3Q+KGZy
b21JbnN0cnVjdGlvbikpID4+IDI7CisgICAgICAgIGFzc2VydElzTm90VGFnZ2VkKHRvKTsKKyAg
ICAgICAgYXNzZXJ0SXNOb3RUYWdnZWQoZnJvbUluc3RydWN0aW9uKTsKKyAgICAgICAgaW50cHRy
X3Qgb2Zmc2V0ID0gKHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KHRvKSAtIHJlaW50ZXJwcmV0
X2Nhc3Q8aW50cHRyX3Q+KGZyb21JbnN0cnVjdGlvbikpID4+IDI7CiAgICAgICAgIEFTU0VSVChz
dGF0aWNfY2FzdDxpbnQ+KG9mZnNldCkgPT0gb2Zmc2V0KTsKIAogICAgICAgICBpbnQgaW5zbiA9
IHVuY29uZGl0aW9uYWxCcmFuY2hJbW1lZGlhdGUoaXNDYWxsLCBzdGF0aWNfY2FzdDxpbnQ+KG9m
ZnNldCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0
cmFjdE1hY3JvQXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fi
c3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAppbmRleCBiZDU0NGNmZTExZjc5MWVlNmQwNDIyOGNkMGIw
MGQ0ZDg3NjBhMTExLi45NWFlNzU1ZmFiMGI3OWRlNGNkZmI1MGNkYmRiODRkZjY5OGE4YjQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9B
c3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0
TWFjcm9Bc3NlbWJsZXIuaApAQCAtODk1LDYgKzg5NSw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRp
YyB2b2lkIHJlcGF0Y2hOZWFyQ2FsbChDb2RlTG9jYXRpb25OZWFyQ2FsbCBuZWFyQ2FsbCwgQ29k
ZUxvY2F0aW9uTGFiZWwgZGVzdGluYXRpb24pCiAgICAgeworICAgICAgICBhc3NlcnRJc1RhZ2dl
ZFdpdGgoZGVzdGluYXRpb24uZXhlY3V0YWJsZUFkZHJlc3MoKSwgTmVhckNhbGxQdHJUYWcpOwog
ICAgICAgICBzd2l0Y2ggKG5lYXJDYWxsLmNhbGxNb2RlKCkpIHsKICAgICAgICAgY2FzZSBOZWFy
Q2FsbE1vZGU6OlRhaWw6CiAgICAgICAgICAgICBBc3NlbWJsZXJUeXBlOjpyZWxpbmtKdW1wKG5l
YXJDYWxsLmRhdGFMb2NhdGlvbigpLCBkZXN0aW5hdGlvbi5kYXRhTG9jYXRpb24oKSk7CkBAIC05
NTMsNiArOTU0LDkgQEAgcHVibGljOgogICAgICAgICBidWZmZXIuc2V0Q29kZVNpemUodGFyZ2V0
Q29kZVNpemUpOwogICAgIH0KIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCB0YWdSZXR1cm5BZGRy
ZXNzKCkgeyB9CisgICAgQUxXQVlTX0lOTElORSB2b2lkIHVudGFnUmV0dXJuQWRkcmVzcygpIHsg
fQorCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHRhZ1B0cihSZWdpc3RlcklELCBQdHJUYWcpIHsg
fQogICAgIEFMV0FZU19JTkxJTkUgdm9pZCB0YWdQdHIoUmVnaXN0ZXJJRCwgUmVnaXN0ZXJJRCkg
eyB9CiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHVudGFnUHRyKFJlZ2lzdGVySUQsIFB0clRhZykg
eyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXIuY3BwCmluZGV4IDU4ODcyNGQ5YTg1MGZjMWU5OTEzNDRiMzJhYzU3ZGNlMzA2ZmYzNTguLjIw
OGE2NWQ3ZDFkZDE1MmFhYjZkMDcwZmY2MjMxNzU2MjQ2OWNlYmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXIuY3BwCkBAIC00Myw3ICs0
Myw3IEBAIGNvbnN0IGRvdWJsZSBNYWNyb0Fzc2VtYmxlcjo6dHdvVG9UaGUzMiA9IChkb3VibGUp
MHgxMDAwMDAwMDB1bGw7CiAKIHZvaWQgTWFjcm9Bc3NlbWJsZXI6OmppdEFzc2VydChjb25zdCBT
Y29wZWRMYW1iZGE8SnVtcCh2b2lkKT4mIGZ1bmN0b3IpCiB7Ci0gICAgaWYgKE9wdGlvbnM6OmVu
YWJsZUpJVERlYnVnQXNzZXRpb25zKCkpIHsKKyAgICBpZiAoT3B0aW9uczo6ZW5hYmxlSklURGVi
dWdBc3NlcnRpb25zKCkpIHsKICAgICAgICAgSnVtcCBwYXNzZWQgPSBmdW5jdG9yKCk7CiAgICAg
ICAgIGJyZWFrcG9pbnQoKTsKICAgICAgICAgcGFzc2VkLmxpbmsodGhpcyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmgKaW5kZXgg
NGUyNDJjOWY3ODE2Mzg5ZDdmYWY1NDFkMzQ2NjJlZDI4YzkzN2IwZi4uMTM0OGZlMWQwNjIzMDg3
MTc1ZjM2OTNiYTEzMzViMTIxMWZhZmQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaApAQCAtODA1LDYgKzgwNSwxMCBAQCBw
dWJsaWM6CiAgICAgICAgIGxvYWQzMihBZGRyZXNzKEFSTVJlZ2lzdGVyczo6UzAsIDApLCBBUk1S
ZWdpc3RlcnM6OnBjKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQganVtcChSZWdp
c3RlcklEIHRhcmdldCwgUmVnaXN0ZXJJRCBqdW1wVGFnKSB7IFVOVVNFRF9QQVJBTShqdW1wVGFn
KSwganVtcCh0YXJnZXQsIE5vUHRyVGFnKTsgfQorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBqdW1w
KEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBqdW1wVGFnKSB7IFVOVVNFRF9QQVJBTShqdW1w
VGFnKSwganVtcChhZGRyZXNzLCBOb1B0clRhZyk7IH0KKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQg
anVtcChBYnNvbHV0ZUFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBqdW1wVGFnKSB7IFVOVVNF
RF9QQVJBTShqdW1wVGFnKSwganVtcChhZGRyZXNzLCBOb1B0clRhZyk7IH0KKwogICAgIHZvaWQg
bW92ZURvdWJsZVRvSW50cyhGUFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3QxLCBSZWdp
c3RlcklEIGRlc3QyKQogICAgIHsKICAgICAgICAgbV9hc3NlbWJsZXIudm1vdihkZXN0MSwgZGVz
dDIsIHNyYyk7CkBAIC0xMTI1LDYgKzExMjksMTAgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
Q2FsbChtX2Fzc2VtYmxlci5ibHgoQVJNUmVnaXN0ZXJzOjpTMSksIENhbGw6OkxpbmthYmxlKTsK
ICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIENhbGwgY2FsbChSZWdpc3RlcklEIGNhbGxUYWcp
IHsgcmV0dXJuIFVOVVNFRF9QQVJBTShjYWxsVGFnKSwgY2FsbChOb1B0clRhZyk7IH0KKyAgICBB
TFdBWVNfSU5MSU5FIENhbGwgY2FsbChSZWdpc3RlcklEIHRhcmdldCwgUmVnaXN0ZXJJRCBjYWxs
VGFnKSB7IHJldHVybiBVTlVTRURfUEFSQU0oY2FsbFRhZyksIGNhbGwodGFyZ2V0LCBOb1B0clRh
Zyk7IH0KKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgY2FsbChBZGRyZXNzIGFkZHJlc3MsIFJlZ2lz
dGVySUQgY2FsbFRhZykgeyBVTlVTRURfUEFSQU0oY2FsbFRhZyksIGNhbGwoYWRkcmVzcywgTm9Q
dHJUYWcpOyB9CisKICAgICBDYWxsIHRhaWxSZWN1cnNpdmVDYWxsKCkKICAgICB7CiAgICAgICAg
IHJldHVybiBDYWxsOjpmcm9tVGFpbEp1bXAoanVtcCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk02NC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKaW5kZXggYmI5YjQ5
YmZhZGIwMmU0OWVmNmU4YTI2YjI5YmU2ZGNiYjdiYmI4YS4uN2Y0NDk3ZjgzZmU2NGZlODEwNDAy
MjcyOWYzOTcwMWNiYWU4M2RmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTTY0LmgKQEAgLTMxMDgsNiArMzEwOCwxMCBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBjYWxsKGRhdGFUZW1wUmVnaXN0ZXIsIHRhZyk7CiAgICAg
fQogCisgICAgQUxXQVlTX0lOTElORSBDYWxsIGNhbGwoUmVnaXN0ZXJJRCBjYWxsVGFnKSB7IHJl
dHVybiBVTlVTRURfUEFSQU0oY2FsbFRhZyksIGNhbGwoTm9QdHJUYWcpOyB9CisgICAgQUxXQVlT
X0lOTElORSBDYWxsIGNhbGwoUmVnaXN0ZXJJRCB0YXJnZXQsIFJlZ2lzdGVySUQgY2FsbFRhZykg
eyByZXR1cm4gVU5VU0VEX1BBUkFNKGNhbGxUYWcpLCBjYWxsKHRhcmdldCwgTm9QdHJUYWcpOyB9
CisgICAgQUxXQVlTX0lOTElORSBDYWxsIGNhbGwoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklE
IGNhbGxUYWcpIHsgcmV0dXJuIFVOVVNFRF9QQVJBTShjYWxsVGFnKSwgY2FsbChhZGRyZXNzLCBO
b1B0clRhZyk7IH0KKwogICAgIEFMV0FZU19JTkxJTkUgSnVtcCBqdW1wKCkKICAgICB7CiAgICAg
ICAgIEFzc2VtYmxlckxhYmVsIGxhYmVsID0gbV9hc3NlbWJsZXIubGFiZWwoKTsKQEAgLTMxMzks
NiArMzE0MywxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmJyKGRhdGFUZW1wUmVn
aXN0ZXIpOwogICAgIH0KIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBqdW1wKFJlZ2lzdGVySUQg
dGFyZ2V0LCBSZWdpc3RlcklEIGp1bXBUYWcpIHsgVU5VU0VEX1BBUkFNKGp1bXBUYWcpLCBqdW1w
KHRhcmdldCwgTm9QdHJUYWcpOyB9CisgICAgQUxXQVlTX0lOTElORSB2b2lkIGp1bXAoQWRkcmVz
cyBhZGRyZXNzLCBSZWdpc3RlcklEIGp1bXBUYWcpIHsgVU5VU0VEX1BBUkFNKGp1bXBUYWcpLCBq
dW1wKGFkZHJlc3MsIE5vUHRyVGFnKTsgfQorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBqdW1wKEJh
c2VJbmRleCBhZGRyZXNzLCBSZWdpc3RlcklEIGp1bXBUYWcpIHsgVU5VU0VEX1BBUkFNKGp1bXBU
YWcpLCBqdW1wKGFkZHJlc3MsIE5vUHRyVGFnKTsgfQorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBq
dW1wKEFic29sdXRlQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGp1bXBUYWcpIHsgVU5VU0VE
X1BBUkFNKGp1bXBUYWcpLCBqdW1wKGFkZHJlc3MsIE5vUHRyVGFnKTsgfQorCiAgICAgQUxXQVlT
X0lOTElORSBDYWxsIG1ha2VUYWlsUmVjdXJzaXZlQ2FsbChKdW1wIG9sZEp1bXApCiAgICAgewog
ICAgICAgICBvbGRKdW1wLmxpbmsodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCmluZGV4IDc2ZjRlZmNmMzA0OWU1
N2Y4YmRlMzBkNzdjOWRhOTkzYjkyMzQ2ODQuLmFjNWMwZTI3Y2U3ZDRkMWI1YTJkNTU5OGMwOWVh
NjVkZmNhMWI0MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJBUk12Ny5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCkBAIC0xNjI1LDYgKzE2MjUsOSBAQCBwdWJsaWM6CiAg
ICAgICAgIG1fYXNzZW1ibGVyLmJ4KGRhdGFUZW1wUmVnaXN0ZXIpOwogICAgIH0KIAorICAgIEFM
V0FZU19JTkxJTkUgdm9pZCBqdW1wKFJlZ2lzdGVySUQgdGFyZ2V0LCBSZWdpc3RlcklEIGp1bXBU
YWcpIHsgVU5VU0VEX1BBUkFNKGp1bXBUYWcpLCBqdW1wKHRhcmdldCwgTm9QdHJUYWcpOyB9Cisg
ICAgQUxXQVlTX0lOTElORSB2b2lkIGp1bXAoQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGp1
bXBUYWcpIHsgVU5VU0VEX1BBUkFNKGp1bXBUYWcpLCBqdW1wKGFkZHJlc3MsIE5vUHRyVGFnKTsg
fQorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBqdW1wKEFic29sdXRlQWRkcmVzcyBhZGRyZXNzLCBS
ZWdpc3RlcklEIGp1bXBUYWcpIHsgVU5VU0VEX1BBUkFNKGp1bXBUYWcpLCBqdW1wKGFkZHJlc3Ms
IE5vUHRyVGFnKTsgfQogCiAgICAgLy8gQXJpdGhtZXRpYyBjb250cm9sIGZsb3cgb3BlcmF0aW9u
czoKICAgICAvLwpAQCAtMTgxMSw2ICsxODE0LDEwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IENhbGwobV9hc3NlbWJsZXIuYmx4KGRhdGFUZW1wUmVnaXN0ZXIpLCBDYWxsOjpOb25lKTsKICAg
ICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIENhbGwgY2FsbChSZWdpc3RlcklEIGNhbGxUYWcpIHsg
cmV0dXJuIFVOVVNFRF9QQVJBTShjYWxsVGFnKSwgY2FsbChOb1B0clRhZyk7IH0KKyAgICBBTFdB
WVNfSU5MSU5FIENhbGwgY2FsbChSZWdpc3RlcklEIHRhcmdldCwgUmVnaXN0ZXJJRCBjYWxsVGFn
KSB7IHJldHVybiBVTlVTRURfUEFSQU0oY2FsbFRhZyksIGNhbGwodGFyZ2V0LCBOb1B0clRhZyk7
IH0KKyAgICBBTFdBWVNfSU5MSU5FIENhbGwgY2FsbChBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVy
SUQgY2FsbFRhZykgeyByZXR1cm4gVU5VU0VEX1BBUkFNKGNhbGxUYWcpLCBjYWxsKGFkZHJlc3Ms
IE5vUHRyVGFnKTsgfQorCiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHJldCgpCiAgICAgewogICAg
ICAgICBtX2Fzc2VtYmxlci5ieChsaW5rUmVnaXN0ZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgKaW5kZXggMjFj
ZWU4NGM3NDZjNDM1Y2NlMzY0MDA1NGU1ZDkwMTZlYzhkYjMxOS4uOWUxNmU2OGU4NDNlZDZmMDA5
Nzk1YmFmZjEyN2UxYTNiMDdhYzA4NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckNvZGVSZWYuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQ29kZVJlZi5oCkBAIC0xMzcsNyArMTM3LDkg
QEAgcHJpdmF0ZToKIH07CiAKIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEZ1bmN0aW9uUHRyKSA9PSBz
aXplb2Yodm9pZCopLCAiIik7Ci1zdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2NvcHlh
YmxlPEZ1bmN0aW9uUHRyPjo6dmFsdWUsICIiKTsKKyNpZiBDT01QSUxFUl9TVVBQT1JUUyhCVUlM
VElOX0lTX1RSSVZJQUxMWV9DT1BZQUJMRSkKK3N0YXRpY19hc3NlcnQoX19pc190cml2aWFsbHlf
Y29weWFibGUoRnVuY3Rpb25QdHIpLCAiIik7CisjZW5kaWYKIAogLy8gUmV0dXJuQWRkcmVzc1B0
cjoKIC8vCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyTUlQUy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlck1JUFMuaAppbmRleCBhOWNlNGIwOTRmMzA0YTQxNzdmMWExNjEzZmZiZGIxNmVhZjI1
NjdiLi5hMjZlNmJiNmQyMTRhNjRhMjU2ZmRhNjMwNDQ1OGNhZDliY2IyMjM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyTUlQUy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJNSVBTLmgK
QEAgLTE5MjUsNiArMTkyNSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIG1fZml4ZWRXaWR0aCA9IGZh
bHNlOwogICAgIH0KIAorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBqdW1wKFJlZ2lzdGVySUQgdGFy
Z2V0LCBSZWdpc3RlcklEIGp1bXBUYWcpIHsgVU5VU0VEX1BBUkFNKGp1bXBUYWcpLCBqdW1wKHRh
cmdldCwgTm9QdHJUYWcpOyB9CisgICAgQUxXQVlTX0lOTElORSB2b2lkIGp1bXAoQWRkcmVzcyBh
ZGRyZXNzLCBSZWdpc3RlcklEIGp1bXBUYWcpIHsgVU5VU0VEX1BBUkFNKGp1bXBUYWcpLCBqdW1w
KGFkZHJlc3MsIE5vUHRyVGFnKTsgfQorICAgIEFMV0FZU19JTkxJTkUgdm9pZCBqdW1wKEFic29s
dXRlQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGp1bXBUYWcpIHsgVU5VU0VEX1BBUkFNKGp1
bXBUYWcpLCBqdW1wKGFkZHJlc3MsIE5vUHRyVGFnKTsgfQorCiAgICAgdm9pZCBtb3ZlRG91Ymxl
VG9JbnRzKEZQUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdDEsIFJlZ2lzdGVySUQgZGVz
dDIpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci52bW92KGRlc3QxLCBkZXN0Miwgc3JjKTsK
QEAgLTI0MjksNiArMjQzMywxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBDYWxsKG1fYXNz
ZW1ibGVyLmxhYmVsKCksIENhbGw6Ok5vbmUpOwogICAgIH0KIAorICAgIEFMV0FZU19JTkxJTkUg
Q2FsbCBjYWxsKFJlZ2lzdGVySUQgY2FsbFRhZykgeyByZXR1cm4gVU5VU0VEX1BBUkFNKGNhbGxU
YWcpLCBjYWxsKE5vUHRyVGFnKTsgfQorICAgIEFMV0FZU19JTkxJTkUgQ2FsbCBjYWxsKFJlZ2lz
dGVySUQgdGFyZ2V0LCBSZWdpc3RlcklEIGNhbGxUYWcpIHsgcmV0dXJuIFVOVVNFRF9QQVJBTShj
YWxsVGFnKSwgY2FsbCh0YXJnZXQsIE5vUHRyVGFnKTsgfQorICAgIEFMV0FZU19JTkxJTkUgQ2Fs
bCBjYWxsKEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBjYWxsVGFnKSB7IHJldHVybiBVTlVT
RURfUEFSQU0oY2FsbFRhZyksIGNhbGwoYWRkcmVzcywgTm9QdHJUYWcpOyB9CisKICAgICB2b2lk
IHJldCgpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5qcihNSVBTUmVnaXN0ZXJzOjpyYSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyWDg2LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
WDg2LmgKaW5kZXggMWQ0YzM2YjdhMGZmZjU3OWZlYTI0ODgxYjZkZjc1MTA0NGY0YTliMi4uNmZl
ZDFhZjlmYTZmODA5ZDI2ZGJmY2RkNzQxNDE2NDQ4ZjE1YTMwOCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Ni5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODYuaApAQCAtMjE4LDEy
ICsyMTgsMTYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gQ2FsbChtX2Fzc2VtYmxlci5jYWxs
KCksIENhbGw6OkxpbmthYmxlKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIENhbGwgY2Fs
bChSZWdpc3RlcklEIGNhbGxUYWcpIHsgcmV0dXJuIFVOVVNFRF9QQVJBTShjYWxsVGFnKSwgY2Fs
bChOb1B0clRhZyk7IH0KKwogICAgIC8vIEFkZHJlc3MgaXMgYSBtZW1vcnkgbG9jYXRpb24gY29u
dGFpbmluZyB0aGUgYWRkcmVzcyB0byBqdW1wIHRvCiAgICAgdm9pZCBqdW1wKEFic29sdXRlQWRk
cmVzcyBhZGRyZXNzLCBQdHJUYWcpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5qbXBfbShh
ZGRyZXNzLm1fcHRyKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQganVtcChBYnNv
bHV0ZUFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBqdW1wVGFnKSB7IFVOVVNFRF9QQVJBTShq
dW1wVGFnKSwganVtcChhZGRyZXNzLCBOb1B0clRhZyk7IH0KKwogICAgIENhbGwgdGFpbFJlY3Vy
c2l2ZUNhbGwoKQogICAgIHsKICAgICAgICAgcmV0dXJuIENhbGw6OmZyb21UYWlsSnVtcChqdW1w
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4NkNvbW1vbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlclg4NkNvbW1vbi5oCmluZGV4IDA3M2NjZTcxMjk0N2JhZmI1ODU1MTA5NGFiZTJi
NTQzY2NmNDMyNmQuLjBlYmU4NDkwOTg0ODA2ZDIzYjg3MjEwNmI4M2I3ZDlkYjBjNmE0MjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJY
ODZDb21tb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uLmgKQEAgLTI3MTMsNiArMjcxMyw5IEBAIHB1YmxpYzoKICAgICAgICAg
bV9hc3NlbWJsZXIuam1wX20oYWRkcmVzcy5vZmZzZXQsIGFkZHJlc3MuYmFzZSwgYWRkcmVzcy5p
bmRleCwgYWRkcmVzcy5zY2FsZSk7CiAgICAgfQogCisgICAgQUxXQVlTX0lOTElORSB2b2lkIGp1
bXAoUmVnaXN0ZXJJRCB0YXJnZXQsIFJlZ2lzdGVySUQganVtcFRhZykgeyBVTlVTRURfUEFSQU0o
anVtcFRhZyksIGp1bXAodGFyZ2V0LCBOb1B0clRhZyk7IH0KKyAgICBBTFdBWVNfSU5MSU5FIHZv
aWQganVtcChBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQganVtcFRhZykgeyBVTlVTRURfUEFS
QU0oanVtcFRhZyksIGp1bXAoYWRkcmVzcywgTm9QdHJUYWcpOyB9CisgICAgQUxXQVlTX0lOTElO
RSB2b2lkIGp1bXAoQmFzZUluZGV4IGFkZHJlc3MsIFJlZ2lzdGVySUQganVtcFRhZykgeyBVTlVT
RURfUEFSQU0oanVtcFRhZyksIGp1bXAoYWRkcmVzcywgTm9QdHJUYWcpOyB9CiAKICAgICAvLyBB
cml0aG1ldGljIGNvbnRyb2wgZmxvdyBvcGVyYXRpb25zOgogICAgIC8vCkBAIC0yOTA0LDYgKzI5
MDcsOSBAQCBwdWJsaWM6CiAgICAgICAgIG1fYXNzZW1ibGVyLmNhbGxfbShhZGRyZXNzLm9mZnNl
dCwgYWRkcmVzcy5iYXNlKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIENhbGwgY2FsbChS
ZWdpc3RlcklEIHRhcmdldCwgUmVnaXN0ZXJJRCBjYWxsVGFnKSB7IHJldHVybiBVTlVTRURfUEFS
QU0oY2FsbFRhZyksIGNhbGwodGFyZ2V0LCBOb1B0clRhZyk7IH0KKyAgICBBTFdBWVNfSU5MSU5F
IHZvaWQgY2FsbChBZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgY2FsbFRhZykgeyBVTlVTRURf
UEFSQU0oY2FsbFRhZyksIGNhbGwoYWRkcmVzcywgTm9QdHJUYWcpOyB9CisKICAgICB2b2lkIHJl
dCgpCiAgICAgewogICAgICAgICBtX2Fzc2VtYmxlci5yZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAppbmRleCBk
YWFmNmMzZTQ2NGEzYmYyZThlMWVjZTFjZGVlYzVmOGIyOGZmOWZiLi5kNDBjNzMxZDNlNzVmMThk
N2ZiMTZiOTcxNWQ2ZjMwZjM4ZmNhMzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCkBAIC0yMjMsNiArMjIzLDgg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAorICAgIEFMV0FZU19J
TkxJTkUgQ2FsbCBjYWxsKFJlZ2lzdGVySUQgY2FsbFRhZykgeyByZXR1cm4gVU5VU0VEX1BBUkFN
KGNhbGxUYWcpLCBjYWxsKE5vUHRyVGFnKTsgfQorCiAgICAgLy8gQWRkcmVzcyBpcyBhIG1lbW9y
eSBsb2NhdGlvbiBjb250YWluaW5nIHRoZSBhZGRyZXNzIHRvIGp1bXAgdG8KICAgICB2b2lkIGp1
bXAoQWJzb2x1dGVBZGRyZXNzIGFkZHJlc3MsIFB0clRhZyB0YWcpCiAgICAgewpAQCAtMjMwLDYg
KzIzMiw4IEBAIHB1YmxpYzoKICAgICAgICAganVtcChBZGRyZXNzKHNjcmF0Y2hSZWdpc3Rlcigp
KSwgdGFnKTsKICAgICB9CiAKKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQganVtcChBYnNvbHV0ZUFk
ZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBqdW1wVGFnKSB7IFVOVVNFRF9QQVJBTShqdW1wVGFn
KSwganVtcChhZGRyZXNzLCBOb1B0clRhZyk7IH0KKwogICAgIENhbGwgdGFpbFJlY3Vyc2l2ZUNh
bGwoKQogICAgIHsKICAgICAgICAgRGF0YUxhYmVsUHRyIGxhYmVsID0gbW92ZVdpdGhQYXRjaChU
cnVzdGVkSW1tUHRyKG51bGxwdHIpLCBzY3JhdGNoUmVnaXN0ZXIoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL3Rlc3RhaXIuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL2Fpci90ZXN0YWlyLmNwcAppbmRleCA5MDFmNDZiZWJhY2ZkNjZhZWNlZWUzMWNl
OWYwYjdmODZhYTQxYmEyLi43Yjk1MjY0NTA1MjJjMGU1YTBhZDNhOTRiNmVhMmRmNTY4NjY4NGRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL3Rlc3RhaXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvdGVzdGFpci5jcHAKQEAgLTQwLDEwICs0
MCwxMCBAQAogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRlICJQdXJlTmFOLmgiCiAj
aW5jbHVkZSA8Y21hdGg+Ci0jaW5jbHVkZSA8bWFwPgogI2luY2x1ZGUgPHN0cmluZz4KICNpbmNs
dWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9OdW1iZXJPZkNvcmVzLmg+CisjaW5jbHVk
ZSA8d3RmL1N0ZE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAogLy8gV2UgZG9u
J3QgaGF2ZSBhIE5PX1JFVFVSTl9EVUVfVE9fRVhJVCwgbm9yIHNob3VsZCB3ZS4gVGhhdCdzIHJp
ZGljdWxvdXMuCkBAIC0xMjQsMTEgKzEyNCwxMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogdm9p
ZCBsb2FkQ29uc3RhbnRJbXBsKEJhc2ljQmxvY2sqIGJsb2NrLCBUIHZhbHVlLCBCMzo6QWlyOjpP
cGNvZGUgbW92ZSwgVG1wIHRtcCwgVG1wIHNjcmF0Y2gpCiB7CiAgICAgc3RhdGljIFN0YXRpY0xv
Y2sgbG9jazsKLSAgICBzdGF0aWMgc3RkOjptYXA8VCwgVCo+KiBtYXA7IC8vIEknbSBub3QgbWVz
c2luZyB3aXRoIEhhc2hNYXAncyBwcm9ibGVtcyB3aXRoIGludGVnZXJzLgorICAgIHN0YXRpYyBT
dGRNYXA8VCwgVCo+KiBtYXA7IC8vIEknbSBub3QgbWVzc2luZyB3aXRoIEhhc2hNYXAncyBwcm9i
bGVtcyB3aXRoIGludGVnZXJzLgogCiAgICAgTG9ja0hvbGRlciBsb2NrZXIobG9jayk7CiAgICAg
aWYgKCFtYXApCi0gICAgICAgIG1hcCA9IG5ldyBzdGQ6Om1hcDxULCBUKj4oKTsKKyAgICAgICAg
bWFwID0gbmV3IFN0ZE1hcDxULCBUKj4oKTsKIAogICAgIGlmICghbWFwLT5jb3VudCh2YWx1ZSkp
CiAgICAgICAgICgqbWFwKVt2YWx1ZV0gPSBuZXcgVCh2YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
My90ZXN0YjMuY3BwCmluZGV4IDYyMmQyMjNlODhlNDYzMzQyNTYzZTczODM3ZjE3OWIxZjc4YTg3
NWYuLjJmNmQxNDhmYTc3MGUyNGMyN2Y3MmU1ZTZlMjI3NDMzYjQ0YWQxZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy90ZXN0YjMuY3BwCkBAIC02NywxMiArNjcsMTIgQEAKICNpbmNsdWRlICJMaW5r
QnVmZmVyLmgiCiAjaW5jbHVkZSAiUHVyZU5hTi5oIgogI2luY2x1ZGUgPGNtYXRoPgotI2luY2x1
ZGUgPGxpc3Q+CiAjaW5jbHVkZSA8c3RyaW5nPgogI2luY2x1ZGUgPHd0Zi9GYXN0VExTLmg+CiAj
aW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRl
IDx3dGYvTnVtYmVyT2ZDb3Jlcy5oPgorI2luY2x1ZGUgPHd0Zi9TdGRMaXN0Lmg+CiAjaW5jbHVk
ZSA8d3RmL1RocmVhZGluZy5oPgogCiAvLyBXZSBkb24ndCBoYXZlIGEgTk9fUkVUVVJOX0RVRV9U
T19FWElULCBub3Igc2hvdWxkIHdlLiBUaGF0J3MgcmlkaWN1bG91cy4KQEAgLTE2MDIyLDcgKzE2
MDIyLDcgQEAgTkVWRVJfSU5MSU5FIGJvb2wgZG91YmxlTHRlKGRvdWJsZSBhLCBkb3VibGUgYikg
eyByZXR1cm4gYSA8PSBiOyB9CiB2b2lkIHRlc3REb3VibGVMaXRlcmFsQ29tcGFyaXNvbihkb3Vi
bGUgYSwgZG91YmxlIGIpCiB7CiAgICAgdXNpbmcgVGVzdCA9IHN0ZDo6dHVwbGU8QjM6Ok9wY29k
ZSwgYm9vbCAoKikoZG91YmxlLCBkb3VibGUpPjsKLSAgICBzdGQ6Omxpc3Q8VGVzdD4gdGVzdHMg
PSB7CisgICAgU3RkTGlzdDxUZXN0PiB0ZXN0cyA9IHsKICAgICAgICAgVGVzdCB7IE5vdEVxdWFs
LCBkb3VibGVOZXEgfSwKICAgICAgICAgVGVzdCB7IEVxdWFsLCBkb3VibGVFcSB9LAogICAgICAg
ICBUZXN0IHsgRXF1YWxPclVub3JkZXJlZCwgZG91YmxlRXEgfSwKQEAgLTE2MDc2LDcgKzE2MDc2
LDcgQEAgdm9pZCB0ZXN0RmxvYXRFcXVhbE9yVW5vcmRlcmVkRm9sZGluZygpCiAKIHZvaWQgdGVz
dEZsb2F0RXF1YWxPclVub3JkZXJlZEZvbGRpbmdOYU4oKQogewotICAgIHN0ZDo6bGlzdDxmbG9h
dD4gbmFucyA9IHsKKyAgICBTdGRMaXN0PGZsb2F0PiBuYW5zID0gewogICAgICAgICBiaXR3aXNl
X2Nhc3Q8ZmxvYXQ+KDB4ZmZmZmZmZmQpLAogICAgICAgICBiaXR3aXNlX2Nhc3Q8ZmxvYXQ+KDB4
ZmZmZmZmZmUpLAogICAgICAgICBiaXR3aXNlX2Nhc3Q8ZmxvYXQ+KDB4ZmZmZmZmZjApLApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAKaW5k
ZXggM2NlZjRiNDFlZjdkZmIyM2EwZGQ4MzY5Y2Q4NTUwMDM4MWRkM2IyNS4uYjY1NWVmZTFiMWNh
ZDMxYWJhOTU0ZmZkYmQ2MTdmOTI5MzE3Y2UyNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVEdW1wZXIuY3BwCkBAIC0xMjUwLDYgKzEyNTAsMjIgQEAg
dm9pZCBCeXRlY29kZUR1bXBlcjxCbG9jaz46OmR1bXBCeXRlY29kZShQcmludFN0cmVhbSYgb3V0
LCBjb25zdCB0eXBlbmFtZSBCbG9jazoKICAgICAgICAgcHJpbnRDb21wYXJlSnVtcChvdXQsIGJl
Z2luLCBpdCwgbG9jYXRpb24sICJqbmdyZWF0ZXJlcSIpOwogICAgICAgICBicmVhazsKICAgICB9
CisgICAgY2FzZSBvcF9qZXE6IHsKKyAgICAgICAgcHJpbnRDb21wYXJlSnVtcChvdXQsIGJlZ2lu
LCBpdCwgbG9jYXRpb24sICJqZXEiKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2Ug
b3Bfam5lcTogeworICAgICAgICBwcmludENvbXBhcmVKdW1wKG91dCwgYmVnaW4sIGl0LCBsb2Nh
dGlvbiwgImpuZXEiKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2Ugb3BfanN0cmlj
dGVxOiB7CisgICAgICAgIHByaW50Q29tcGFyZUp1bXAob3V0LCBiZWdpbiwgaXQsIGxvY2F0aW9u
LCAianN0cmljdGVxIik7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIG9wX2puc3Ry
aWN0ZXE6IHsKKyAgICAgICAgcHJpbnRDb21wYXJlSnVtcChvdXQsIGJlZ2luLCBpdCwgbG9jYXRp
b24sICJqbnN0cmljdGVxIik7CisgICAgICAgIGJyZWFrOworICAgIH0KICAgICBjYXNlIG9wX2pi
ZWxvdzogewogICAgICAgICBwcmludENvbXBhcmVKdW1wKG91dCwgYmVnaW4sIGl0LCBsb2NhdGlv
biwgImpiZWxvdyIpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgppbmRleCBhMTU2ZDU0ODkzOGYwYjAyMTBiN2Uw
NWJjM2FlMzY0NzRkOWJiNjc0Li5mZjMwMmFjYzdmYjM1Mzg4YjFiNDQ0YWRhMmRlZmVkMzEyMTU4
YzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVM
aXN0Lmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlz
dC5qc29uCkBAIC0xMDksNiArMTA5LDEwIEBACiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9q
ZXFfbnVsbCIsICJsZW5ndGgiIDogMyB9LAogICAgICAgICAgICAgeyAibmFtZSIgOiAib3Bfam5l
cV9udWxsIiwgImxlbmd0aCIgOiAzIH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9qbmVx
X3B0ciIsICJsZW5ndGgiIDogNSB9LAorICAgICAgICAgICAgeyAibmFtZSIgOiAib3BfamVxIiwg
Imxlbmd0aCIgOiA0IH0sCisgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9qc3RyaWN0ZXEiLCAi
bGVuZ3RoIiA6IDQgfSwKKyAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2puZXEiLCAibGVuZ3Ro
IiA6IDQgfSwKKyAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2puc3RyaWN0ZXEiLCAibGVuZ3Ro
IiA6IDQgfSwKICAgICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2psZXNzIiwgImxlbmd0aCIgOiA0
IH0sCiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9qbGVzc2VxIiwgImxlbmd0aCIgOiA0IH0s
CiAgICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9qZ3JlYXRlciIsICJsZW5ndGgiIDogNCB9LApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVm
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAppbmRl
eCA3MWMyYTI4NGJhMTg0MWJmZGY4YTc2OTU2ZWJhYzg2YjkwZTcyYzE5Li5iMjUwZGVmZmYxZTI5
ZjUwMjNlNWY5YWI5ZmJkYWYyMWVmMTkxNTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuaApAQCAtODUsNiArODUsMTAgQEAgdm9pZCBjb21w
dXRlVXNlc0ZvckJ5dGVjb2RlT2Zmc2V0KEJsb2NrKiBjb2RlQmxvY2ssIE9wY29kZUlEIG9wY29k
ZUlELCBJbnN0cnVjdGkKICAgICBjYXNlIG9wX2puZ3JlYXRlcjoKICAgICBjYXNlIG9wX2puZ3Jl
YXRlcmVxOgogICAgIGNhc2Ugb3Bfamxlc3M6CisgICAgY2FzZSBvcF9qZXE6CisgICAgY2FzZSBv
cF9qbmVxOgorICAgIGNhc2Ugb3BfanN0cmljdGVxOgorICAgIGNhc2Ugb3Bfam5zdHJpY3RlcToK
ICAgICBjYXNlIG9wX2piZWxvdzoKICAgICBjYXNlIG9wX2piZWxvd2VxOgogICAgIGNhc2Ugb3Bf
c2V0X2Z1bmN0aW9uX25hbWU6CkBAIC0zNDcsNiArMzUxLDEwIEBAIHZvaWQgY29tcHV0ZURlZnNG
b3JCeXRlY29kZU9mZnNldChCbG9jayogY29kZUJsb2NrLCBPcGNvZGVJRCBvcGNvZGVJRCwgSW5z
dHJ1Y3RpCiAgICAgY2FzZSBvcF9qbmxlc3NlcToKICAgICBjYXNlIG9wX2puZ3JlYXRlcjoKICAg
ICBjYXNlIG9wX2puZ3JlYXRlcmVxOgorICAgIGNhc2Ugb3BfamVxOgorICAgIGNhc2Ugb3Bfam5l
cToKKyAgICBjYXNlIG9wX2pzdHJpY3RlcToKKyAgICBjYXNlIG9wX2puc3RyaWN0ZXE6CiAgICAg
Y2FzZSBvcF9qYmVsb3c6CiAgICAgY2FzZSBvcF9qYmVsb3dlcToKICAgICBjYXNlIG9wX2xvb3Bf
aGludDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2tIYXNoLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2tIYXNo
LmNwcAppbmRleCA4N2MwOTJmNjRhODkxMzY0MjYxMTgwZTY1MmE5NDdkZmUzZGU5NmU1Li5lZTFi
MDNkODY1OTc3MjM2OWU4NTVhNTYxNjI3ZDhhZTRjMTUyNzU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrSGFzaC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9ja0hhc2guY3BwCkBAIC00NCwxMiArNDQsMTQg
QEAgQ29kZUJsb2NrSGFzaDo6Q29kZUJsb2NrSGFzaChjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2VD
b2RlLCBDb2RlU3BlY2lhbGl6YXRpb25LaW4KICAgICBzaGExLmFkZEJ5dGVzKHNvdXJjZUNvZGUu
dG9VVEY4KCkpOwogICAgIFNIQTE6OkRpZ2VzdCBkaWdlc3Q7CiAgICAgc2hhMS5jb21wdXRlSGFz
aChkaWdlc3QpOwotICAgIG1faGFzaCArPSBkaWdlc3RbMF0gfCAoZGlnZXN0WzFdIDw8IDgpIHwg
KGRpZ2VzdFsyXSA8PCAxNikgfCAoZGlnZXN0WzNdIDw8IDI0KTsKKyAgICBtX2hhc2ggPSBkaWdl
c3RbMF0gfCAoZGlnZXN0WzFdIDw8IDgpIHwgKGRpZ2VzdFsyXSA8PCAxNikgfCAoZGlnZXN0WzNd
IDw8IDI0KTsKKworICAgIGlmIChtX2hhc2ggPT0gMCB8fCBtX2hhc2ggPT0gMSkKKyAgICAgICAg
bV9oYXNoICs9IDB4MmQ1YTkzZDA7IC8vIEVuc3VyZXMgYSBub24temVybyBoYXNoLCBhbmQgZ2V0
cyB1cyAjQXplcm8wIGZvciBDb2RlRm9yQ2FsbCBhbmQgI0F6ZXJvMSBmb3IgQ29kZUZvckNvbnN0
cnVjdC4KKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVuc2lnbmVkPihDb2RlRm9yQ2Fs
bCkgPT0gMCwgIiIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KENv
ZGVGb3JDb25zdHJ1Y3QpID09IDEsICIiKTsKICAgICBtX2hhc2ggXj0gc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KGtpbmQpOwotICAgIAotICAgIC8vIEVuc3VyZSB0aGF0IDAgY29ycmVzcG9uZHMgdG8g
dGhlIGhhc2ggbm90IGhhdmluZyBiZWVuIGNvbXB1dGVkLgotICAgIGlmICghbV9oYXNoKQotICAg
ICAgICBtX2hhc2ggPSAxOworICAgIEFTU0VSVChtX2hhc2gpOwogfQogCiB2b2lkIENvZGVCbG9j
a0hhc2g6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9PcGNvZGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9PcGNvZGUuaAppbmRleCA3NThkMzQwMTI0NmI1YjAyMjJmN2FlMDhhZmE4N2M1ZGU1
NThjNzY4Li4wN2Q5YTczMTRlZWIxMDljNzMxMjM3ZDRiZTMyNzEzMWIxMWM5NGVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oCkBAIC0xNTEsNiArMTUxLDEwIEBAIGlu
bGluZSBib29sIGlzQnJhbmNoKE9wY29kZUlEIG9wY29kZUlEKQogICAgIGNhc2Ugb3Bfam5sZXNz
ZXE6CiAgICAgY2FzZSBvcF9qbmdyZWF0ZXI6CiAgICAgY2FzZSBvcF9qbmdyZWF0ZXJlcToKKyAg
ICBjYXNlIG9wX2plcToKKyAgICBjYXNlIG9wX2puZXE6CisgICAgY2FzZSBvcF9qc3RyaWN0ZXE6
CisgICAgY2FzZSBvcF9qbnN0cmljdGVxOgogICAgIGNhc2Ugb3BfamJlbG93OgogICAgIGNhc2Ug
b3BfamJlbG93ZXE6CiAgICAgY2FzZSBvcF9zd2l0Y2hfaW1tOgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BhcnNlSGFzaC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvUGFyc2VIYXNoLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZGUxYjA4NWNiODUzMjhl
Mjk0NTFjMmYzZTIzYjhlYmJhYTAzMjUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL1BhcnNlSGFzaC5jcHAKQEAgLTAsMCArMSw1NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOCBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUGFyc2VIYXNoLmgiCisKKyNpbmNsdWRlICJTb3VyY2VDb2Rl
LmgiCisjaW5jbHVkZSA8d3RmL1NIQTEuaD4KKyNpbmNsdWRlIDx3dGYvU2l4Q2hhcmFjdGVySGFz
aC5oPgorCituYW1lc3BhY2UgSlNDIHsKKworUGFyc2VIYXNoOjpQYXJzZUhhc2goY29uc3QgU291
cmNlQ29kZSYgc291cmNlQ29kZSkKK3sKKyAgICBTSEExIHNoYTE7CisgICAgc2hhMS5hZGRCeXRl
cyhzb3VyY2VDb2RlLnRvVVRGOCgpKTsKKyAgICBTSEExOjpEaWdlc3QgZGlnZXN0OworICAgIHNo
YTEuY29tcHV0ZUhhc2goZGlnZXN0KTsKKyAgICB1bnNpZ25lZCBoYXNoID0gZGlnZXN0WzBdIHwg
KGRpZ2VzdFsxXSA8PCA4KSB8IChkaWdlc3RbMl0gPDwgMTYpIHwgKGRpZ2VzdFszXSA8PCAyNCk7
CisKKyAgICBpZiAoaGFzaCA9PSAwIHx8IGhhc2ggPT0gMSkKKyAgICAgICAgaGFzaCArPSAweDJk
NWE5M2QwOyAvLyBFbnN1cmVzIGEgbm9uLXplcm8gaGFzaCwgYW5kIGdldHMgdXMgI0F6ZXJvMCBm
b3IgQ29kZUZvckNhbGwgYW5kICNBemVybzEgZm9yIENvZGVGb3JDb25zdHJ1Y3QuCisgICAgc3Rh
dGljX2Fzc2VydChzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQ29kZUZvckNhbGwpID09IDAsICIiKTsK
KyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVuc2lnbmVkPihDb2RlRm9yQ29uc3RydWN0
KSA9PSAxLCAiIik7CisgICAgdW5zaWduZWQgaGFzaEZvckNhbGwgPSBoYXNoIF4gc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KENvZGVGb3JDYWxsKTsKKyAgICB1bnNpZ25lZCBoYXNoRm9yQ29uc3RydWN0
ID0gaGFzaCBeIHN0YXRpY19jYXN0PHVuc2lnbmVkPihDb2RlRm9yQ29uc3RydWN0KTsKKworICAg
IG1faGFzaEZvckNhbGwgPSBDb2RlQmxvY2tIYXNoKGhhc2hGb3JDYWxsKTsKKyAgICBtX2hhc2hG
b3JDb25zdHJ1Y3QgPSBDb2RlQmxvY2tIYXNoKGhhc2hGb3JDb25zdHJ1Y3QpOworICAgIEFTU0VS
VChoYXNoRm9yQ2FsbCk7CisgICAgQVNTRVJUKGhhc2hGb3JDb25zdHJ1Y3QpOworfQorCit9IC8v
IG5hbWVzcGFjZSBKU0MKKwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL1BhcnNlSGFzaC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BhcnNlSGFz
aC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjc1MjMwYjZjODQyODllMmQyOTcyYTkzNTFhNGUwODk4OTY5MTYyYTMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUGFyc2VI
YXNoLmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBZdXN1a2Ug
U3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvZGVCbG9ja0hh
c2guaCIKKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIFBhcnNlSGFzaCB7CitwdWJsaWM6Cisg
ICAgZXhwbGljaXQgUGFyc2VIYXNoKGNvbnN0IFNvdXJjZUNvZGUmKTsKKworICAgIENvZGVCbG9j
a0hhc2ggaGFzaEZvckNhbGwoKSBjb25zdCB7IHJldHVybiBtX2hhc2hGb3JDYWxsOyB9CisgICAg
Q29kZUJsb2NrSGFzaCBoYXNoRm9yQ29uc3RydWN0KCkgY29uc3QgeyByZXR1cm4gbV9oYXNoRm9y
Q29uc3RydWN0OyB9CisKK3ByaXZhdGU6CisgICAgQ29kZUJsb2NrSGFzaCBtX2hhc2hGb3JDYWxs
OworICAgIENvZGVCbG9ja0hhc2ggbV9oYXNoRm9yQ29uc3RydWN0OworfTsKKworfSAvLyBuYW1l
c3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJl
Y2lzZUp1bXBUYXJnZXRzSW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L1ByZWNpc2VKdW1wVGFyZ2V0c0lubGluZXMuaAppbmRleCAzNjcyNWY5OGZmNDk3NzQxNjMyY2Iw
YmJhMzNlYWRiYjhiZjVmNzYyLi4wNzBmZGU5YTBiM2Q2YWZkYzNkNGI1ZmI5ODY5NDA0MWYxNjM3
ZDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUHJlY2lzZUp1
bXBUYXJnZXRzSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Q
cmVjaXNlSnVtcFRhcmdldHNJbmxpbmVzLmgKQEAgLTU1LDYgKzU1LDEwIEBAIGlubGluZSB2b2lk
IGV4dHJhY3RTdG9yZWRKdW1wVGFyZ2V0c0ZvckJ5dGVjb2RlT2Zmc2V0KEJsb2NrKiBjb2RlQmxv
Y2ssIEluc3RydWN0CiAgICAgY2FzZSBvcF9qbmxlc3NlcToKICAgICBjYXNlIG9wX2puZ3JlYXRl
cjoKICAgICBjYXNlIG9wX2puZ3JlYXRlcmVxOgorICAgIGNhc2Ugb3BfamVxOgorICAgIGNhc2Ug
b3Bfam5lcToKKyAgICBjYXNlIG9wX2pzdHJpY3RlcToKKyAgICBjYXNlIG9wX2puc3RyaWN0ZXE6
CiAgICAgY2FzZSBvcF9qYmVsb3c6CiAgICAgY2FzZSBvcF9qYmVsb3dlcToKICAgICAgICAgZnVu
Y3Rpb24oY3VycmVudFszXS51Lm9wZXJhbmQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZS5jcHAKaW5k
ZXggNTgxNzE5NTYzZDljZGY1Yzg1ZWY5NDdkZGI0NTJhZmVkYmI2ODhmNC4uY2ZmNzI2YTRmODY0
ZjVkYzI4YjFmZTZmNTVkYmZhYzI2M2UwN2RhYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuY3Bw
CkBAIC02OCw3ICs2OCw3IEBAIHN0YXRpYyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKiBnZW5l
cmF0ZVVubGlua2VkRnVuY3Rpb25Db2RlQmxvY2soCiAKICAgICBVbmxpbmtlZEZ1bmN0aW9uQ29k
ZUJsb2NrKiByZXN1bHQgPSBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrOjpjcmVhdGUoJnZtLCBG
dW5jdGlvbkNvZGUsIEV4ZWN1dGFibGVJbmZvKGZ1bmN0aW9uLT51c2VzRXZhbCgpLCBmdW5jdGlv
bi0+aXNTdHJpY3RNb2RlKCksIGtpbmQgPT0gQ29kZUZvckNvbnN0cnVjdCwgZnVuY3Rpb25LaW5k
ID09IFVubGlua2VkQnVpbHRpbkZ1bmN0aW9uLCBleGVjdXRhYmxlLT5jb25zdHJ1Y3RvcktpbmQo
KSwgc2NyaXB0TW9kZSwgZXhlY3V0YWJsZS0+c3VwZXJCaW5kaW5nKCksIHBhcnNlTW9kZSwgZXhl
Y3V0YWJsZS0+ZGVyaXZlZENvbnRleHRUeXBlKCksIGZhbHNlLCBpc0NsYXNzQ29udGV4dCwgRXZh
bENvbnRleHRUeXBlOjpGdW5jdGlvbkV2YWxDb250ZXh0KSwgZGVidWdnZXJNb2RlKTsKIAotICAg
IGVycm9yID0gQnl0ZWNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlKHZtLCBmdW5jdGlvbi5nZXQoKSwg
cmVzdWx0LCBkZWJ1Z2dlck1vZGUsIGV4ZWN1dGFibGUtPnBhcmVudFNjb3BlVERaVmFyaWFibGVz
KCkpOworICAgIGVycm9yID0gQnl0ZWNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlKHZtLCBmdW5jdGlv
bi5nZXQoKSwgc291cmNlLCByZXN1bHQsIGRlYnVnZ2VyTW9kZSwgZXhlY3V0YWJsZS0+cGFyZW50
U2NvcGVURFpWYXJpYWJsZXMoKSk7CiAKICAgICBpZiAoZXJyb3IuaXNWYWxpZCgpKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKaW5kZXggMTQ0OGVkZWQxNWFlMTYzOThj
MjdiMzQwMGZhM2M5M2IwMjMxMDAzMC4uOTdlYjNiYjIyYWZlZjRlMTAwZDFkN2I4NWM3YzE0YzIy
Yjc1OWY4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9C
eXRlY29kZUdlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21w
aWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKQEAgLTEzOTcsNiArMTM5NywxOCBAQCB2b2lkIEJ5
dGVjb2RlR2VuZXJhdG9yOjplbWl0SnVtcElmVHJ1ZShSZWdpc3RlcklEKiBjb25kLCBMYWJlbCYg
dGFyZ2V0KQogICAgIH0gZWxzZSBpZiAobV9sYXN0T3Bjb2RlSUQgPT0gb3BfZ3JlYXRlcmVxKSB7
CiAgICAgICAgIGlmIChmdXNlQ29tcGFyZUFuZEp1bXAob3BfamdyZWF0ZXJlcSkpCiAgICAgICAg
ICAgICByZXR1cm47CisgICAgfSBlbHNlIGlmIChtX2xhc3RPcGNvZGVJRCA9PSBvcF9lcSkgewor
ICAgICAgICBpZiAoZnVzZUNvbXBhcmVBbmRKdW1wKG9wX2plcSkpCisgICAgICAgICAgICByZXR1
cm47CisgICAgfSBlbHNlIGlmIChtX2xhc3RPcGNvZGVJRCA9PSBvcF9zdHJpY3RlcSkgeworICAg
ICAgICBpZiAoZnVzZUNvbXBhcmVBbmRKdW1wKG9wX2pzdHJpY3RlcSkpCisgICAgICAgICAgICBy
ZXR1cm47CisgICAgfSBlbHNlIGlmIChtX2xhc3RPcGNvZGVJRCA9PSBvcF9uZXEpIHsKKyAgICAg
ICAgaWYgKGZ1c2VDb21wYXJlQW5kSnVtcChvcF9qbmVxKSkKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICB9IGVsc2UgaWYgKG1fbGFzdE9wY29kZUlEID09IG9wX25zdHJpY3RlcSkgeworICAgICAg
ICBpZiAoZnVzZUNvbXBhcmVBbmRKdW1wKG9wX2puc3RyaWN0ZXEpKQorICAgICAgICAgICAgcmV0
dXJuOwogICAgIH0gZWxzZSBpZiAobV9sYXN0T3Bjb2RlSUQgPT0gb3BfYmVsb3cpIHsKICAgICAg
ICAgaWYgKGZ1c2VDb21wYXJlQW5kSnVtcChvcF9qYmVsb3cpKQogICAgICAgICAgICAgcmV0dXJu
OwpAQCAtMTQ3OSw2ICsxNDkxLDE4IEBAIHZvaWQgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRKdW1w
SWZGYWxzZShSZWdpc3RlcklEKiBjb25kLCBMYWJlbCYgdGFyZ2V0KQogICAgIH0gZWxzZSBpZiAo
bV9sYXN0T3Bjb2RlSUQgPT0gb3BfZ3JlYXRlcmVxICYmIHRhcmdldC5pc0ZvcndhcmQoKSkgewog
ICAgICAgICBpZiAoZnVzZUNvbXBhcmVBbmRKdW1wKG9wX2puZ3JlYXRlcmVxLCBmYWxzZSkpCiAg
ICAgICAgICAgICByZXR1cm47CisgICAgfSBlbHNlIGlmIChtX2xhc3RPcGNvZGVJRCA9PSBvcF9l
cSAmJiB0YXJnZXQuaXNGb3J3YXJkKCkpIHsKKyAgICAgICAgaWYgKGZ1c2VDb21wYXJlQW5kSnVt
cChvcF9qbmVxLCBmYWxzZSkpCisgICAgICAgICAgICByZXR1cm47CisgICAgfSBlbHNlIGlmICht
X2xhc3RPcGNvZGVJRCA9PSBvcF9zdHJpY3RlcSAmJiB0YXJnZXQuaXNGb3J3YXJkKCkpIHsKKyAg
ICAgICAgaWYgKGZ1c2VDb21wYXJlQW5kSnVtcChvcF9qbnN0cmljdGVxLCBmYWxzZSkpCisgICAg
ICAgICAgICByZXR1cm47CisgICAgfSBlbHNlIGlmIChtX2xhc3RPcGNvZGVJRCA9PSBvcF9uZXEg
JiYgdGFyZ2V0LmlzRm9yd2FyZCgpKSB7CisgICAgICAgIGlmIChmdXNlQ29tcGFyZUFuZEp1bXAo
b3BfamVxLCBmYWxzZSkpCisgICAgICAgICAgICByZXR1cm47CisgICAgfSBlbHNlIGlmIChtX2xh
c3RPcGNvZGVJRCA9PSBvcF9uc3RyaWN0ZXEgJiYgdGFyZ2V0LmlzRm9yd2FyZCgpKSB7CisgICAg
ICAgIGlmIChmdXNlQ29tcGFyZUFuZEp1bXAob3BfanN0cmljdGVxLCBmYWxzZSkpCisgICAgICAg
ICAgICByZXR1cm47CiAgICAgfSBlbHNlIGlmIChtX2xhc3RPcGNvZGVJRCA9PSBvcF9iZWxvdyAm
JiB0YXJnZXQuaXNGb3J3YXJkKCkpIHsKICAgICAgICAgaWYgKGZ1c2VDb21wYXJlQW5kSnVtcChv
cF9qYmVsb3dlcSwgdHJ1ZSkpCiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmggYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKaW5kZXgg
ZGExMGU1M2FkMmJjMjg1M2Y2YjU0ODU1MDk2MzcxNzdlODIwYTVjMS4uMGYxZmUzYjIwNGFjOTI1
Mjk5ZjVkNTNkZjgzNTE3ODc2MTZhMDg3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaApAQCAtMzc4LDEyICszNzgs
MjIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFN1cGVyQmluZGluZyBzdXBlckJpbmRpbmco
KSBjb25zdCB7IHJldHVybiBtX2NvZGVCbG9jay0+c3VwZXJCaW5kaW5nKCk7IH0KICAgICAgICAg
SlNQYXJzZXJTY3JpcHRNb2RlIHNjcmlwdE1vZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGVCbG9j
ay0+c2NyaXB0TW9kZSgpOyB9CiAKLSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4K
LSAgICAgICAgc3RhdGljIFBhcnNlckVycm9yIGdlbmVyYXRlKFZNJiB2bSwgQXJncyYmIC4uLmFy
Z3MpCisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIE5vZGUsIHR5cGVuYW1lIFVubGlua2VkQ29k
ZUJsb2NrPgorICAgICAgICBzdGF0aWMgUGFyc2VyRXJyb3IgZ2VuZXJhdGUoVk0mIHZtLCBOb2Rl
KiBub2RlLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2VDb2RlLCBVbmxpbmtlZENvZGVCbG9jayog
dW5saW5rZWRDb2RlQmxvY2ssIERlYnVnZ2VyTW9kZSBkZWJ1Z2dlck1vZGUsIGNvbnN0IFZhcmlh
YmxlRW52aXJvbm1lbnQqIGVudmlyb25tZW50KQogICAgICAgICB7CisgICAgICAgICAgICBNb25v
dG9uaWNUaW1lIGJlZm9yZTsKKyAgICAgICAgICAgIGlmIChVTkxJS0VMWShPcHRpb25zOjpyZXBv
cnRCeXRlY29kZUNvbXBpbGVUaW1lcygpKSkKKyAgICAgICAgICAgICAgICBiZWZvcmUgPSBNb25v
dG9uaWNUaW1lOjpub3coKTsKKwogICAgICAgICAgICAgRGVmZXJHQyBkZWZlckdDKHZtLmhlYXAp
OwotICAgICAgICAgICAgYXV0byBieXRlY29kZUdlbmVyYXRvciA9IHN0ZDo6bWFrZV91bmlxdWU8
Qnl0ZWNvZGVHZW5lcmF0b3I+KHZtLCBzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pOwotICAg
ICAgICAgICAgcmV0dXJuIGJ5dGVjb2RlR2VuZXJhdG9yLT5nZW5lcmF0ZSgpOyAKKyAgICAgICAg
ICAgIGF1dG8gYnl0ZWNvZGVHZW5lcmF0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPEJ5dGVjb2RlR2Vu
ZXJhdG9yPih2bSwgbm9kZSwgdW5saW5rZWRDb2RlQmxvY2ssIGRlYnVnZ2VyTW9kZSwgZW52aXJv
bm1lbnQpOworICAgICAgICAgICAgYXV0byByZXN1bHQgPSBieXRlY29kZUdlbmVyYXRvci0+Z2Vu
ZXJhdGUoKTsKKworICAgICAgICAgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OnJlcG9ydEJ5dGVj
b2RlQ29tcGlsZVRpbWVzKCkpKSB7CisgICAgICAgICAgICAgICAgTW9ub3RvbmljVGltZSBhZnRl
ciA9IE1vbm90b25pY1RpbWU6Om5vdygpOworICAgICAgICAgICAgICAgIGRhdGFMb2dMbihyZXN1
bHQuaXNWYWxpZCgpID8gIkZhaWxlZCB0byBjb21waWxlICMiIDogIkNvbXBpbGVkICMiLCBDb2Rl
QmxvY2tIYXNoKHNvdXJjZUNvZGUsIHVubGlua2VkQ29kZUJsb2NrLT5pc0NvbnN0cnVjdG9yKCkg
PyBDb2RlRm9yQ29uc3RydWN0IDogQ29kZUZvckNhbGwpLCAiIGludG8gYnl0ZWNvZGUgIiwgYnl0
ZWNvZGVHZW5lcmF0b3ItPmluc3RydWN0aW9ucygpLnNpemUoKSwgIiBpbnN0cnVjdGlvbnMgaW4g
IiwgKGFmdGVyIC0gYmVmb3JlKS5taWxsaXNlY29uZHMoKSwgIiBtcy4iKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KIAogICAgICAgICBib29s
IGlzQXJndW1lbnROdW1iZXIoY29uc3QgSWRlbnRpZmllciYsIGludCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4IDVmOGMyYmI2Mzgz
ZmVlMGZiYjRiZjJmOGMyYjcxOTk3NWZmMWNkM2QuLjliNDViMWJiMWI0ZjZiOTE2MzA2ODg2YTFk
MDdmNWRlZWNhOGVlMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
Qnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwCkBAIC01MzI4LDYgKzUzMjgsMjQgQEAgdm9pZCBCeXRlQ29kZVBhcnNl
cjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKICAgICAgICAgICAgIExBU1RfT1BDT0RFKG9w
X2pncmVhdGVyZXEpOwogICAgICAgICB9CiAKKyAgICAgICAgY2FzZSBvcF9qZXE6IHsKKyAgICAg
ICAgICAgIHVuc2lnbmVkIHJlbGF0aXZlT2Zmc2V0ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUu
b3BlcmFuZDsKKyAgICAgICAgICAgIE5vZGUqIG9wMSA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3Vy
cmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCkpOworICAgICAgICAgICAgTm9kZSogb3AyID0g
Z2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7Cisg
ICAgICAgICAgICBOb2RlKiBjb25kaXRpb24gPSBhZGRUb0dyYXBoKENvbXBhcmVFcSwgb3AxLCBv
cDIpOworICAgICAgICAgICAgYWRkVG9HcmFwaChCcmFuY2gsIE9wSW5mbyhicmFuY2hEYXRhKG1f
Y3VycmVudEluZGV4ICsgcmVsYXRpdmVPZmZzZXQsIG1fY3VycmVudEluZGV4ICsgT1BDT0RFX0xF
TkdUSChvcF9qZXEpKSksIGNvbmRpdGlvbik7CisgICAgICAgICAgICBMQVNUX09QQ09ERShvcF9q
ZXEpOworICAgICAgICB9CisKKyAgICAgICAgY2FzZSBvcF9qc3RyaWN0ZXE6IHsKKyAgICAgICAg
ICAgIHVuc2lnbmVkIHJlbGF0aXZlT2Zmc2V0ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3Bl
cmFuZDsKKyAgICAgICAgICAgIE5vZGUqIG9wMSA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVu
dEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCkpOworICAgICAgICAgICAgTm9kZSogb3AyID0gZ2V0
KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CisgICAg
ICAgICAgICBOb2RlKiBjb25kaXRpb24gPSBhZGRUb0dyYXBoKENvbXBhcmVTdHJpY3RFcSwgb3Ax
LCBvcDIpOworICAgICAgICAgICAgYWRkVG9HcmFwaChCcmFuY2gsIE9wSW5mbyhicmFuY2hEYXRh
KG1fY3VycmVudEluZGV4ICsgcmVsYXRpdmVPZmZzZXQsIG1fY3VycmVudEluZGV4ICsgT1BDT0RF
X0xFTkdUSChvcF9qc3RyaWN0ZXEpKSksIGNvbmRpdGlvbik7CisgICAgICAgICAgICBMQVNUX09Q
Q09ERShvcF9qc3RyaWN0ZXEpOworICAgICAgICB9CisKICAgICAgICAgY2FzZSBvcF9qbmxlc3M6
IHsKICAgICAgICAgICAgIHVuc2lnbmVkIHJlbGF0aXZlT2Zmc2V0ID0gY3VycmVudEluc3RydWN0
aW9uWzNdLnUub3BlcmFuZDsKICAgICAgICAgICAgIE5vZGUqIG9wMSA9IGdldChWaXJ0dWFsUmVn
aXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCkpOwpAQCAtNTM2NCw2ICs1Mzgy
LDI0IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAg
ICAgICAgICAgICBMQVNUX09QQ09ERShvcF9qbmdyZWF0ZXJlcSk7CiAgICAgICAgIH0KIAorICAg
ICAgICBjYXNlIG9wX2puZXE6IHsKKyAgICAgICAgICAgIHVuc2lnbmVkIHJlbGF0aXZlT2Zmc2V0
ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICAgICAgICAgIE5vZGUqIG9w
MSA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCkp
OworICAgICAgICAgICAgTm9kZSogb3AyID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5z
dHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CisgICAgICAgICAgICBOb2RlKiBjb25kaXRpb24gPSBh
ZGRUb0dyYXBoKENvbXBhcmVFcSwgb3AxLCBvcDIpOworICAgICAgICAgICAgYWRkVG9HcmFwaChC
cmFuY2gsIE9wSW5mbyhicmFuY2hEYXRhKG1fY3VycmVudEluZGV4ICsgT1BDT0RFX0xFTkdUSChv
cF9qbmVxKSwgbV9jdXJyZW50SW5kZXggKyByZWxhdGl2ZU9mZnNldCkpLCBjb25kaXRpb24pOwor
ICAgICAgICAgICAgTEFTVF9PUENPREUob3Bfam5lcSk7CisgICAgICAgIH0KKworICAgICAgICBj
YXNlIG9wX2puc3RyaWN0ZXE6IHsKKyAgICAgICAgICAgIHVuc2lnbmVkIHJlbGF0aXZlT2Zmc2V0
ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICAgICAgICAgIE5vZGUqIG9w
MSA9IGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCkp
OworICAgICAgICAgICAgTm9kZSogb3AyID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5z
dHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSk7CisgICAgICAgICAgICBOb2RlKiBjb25kaXRpb24gPSBh
ZGRUb0dyYXBoKENvbXBhcmVTdHJpY3RFcSwgb3AxLCBvcDIpOworICAgICAgICAgICAgYWRkVG9H
cmFwaChCcmFuY2gsIE9wSW5mbyhicmFuY2hEYXRhKG1fY3VycmVudEluZGV4ICsgT1BDT0RFX0xF
TkdUSChvcF9qbnN0cmljdGVxKSwgbV9jdXJyZW50SW5kZXggKyByZWxhdGl2ZU9mZnNldCkpLCBj
b25kaXRpb24pOworICAgICAgICAgICAgTEFTVF9PUENPREUob3Bfam5zdHJpY3RlcSk7CisgICAg
ICAgIH0KKwogICAgICAgICBjYXNlIG9wX2piZWxvdzogewogICAgICAgICAgICAgdW5zaWduZWQg
cmVsYXRpdmVPZmZzZXQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogICAgICAg
ICAgICAgTm9kZSogb3AxID0gZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25b
MV0udS5vcGVyYW5kKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxp
dGllcy5jcHAKaW5kZXggYWU1ODM5NTA2MDIxZmJmYmU2NTkwMGY1MDhmYmI3ZjQ3YTY1NjY5Ny4u
ZTIwNTg2M2ZkYjE4YjFmNzQzNjZjYWY2ZWZhOWU5YzJmMDg3YTk3OCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcApAQCAtMTk0LDYgKzE5NCwxMCBA
QCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9wY29kZUlEIG9wY29kZUlELCBDb2Rl
QmxvY2sqIGNvZGVCbG9jaywgSW5zdHJ1YwogICAgIGNhc2Ugb3Bfam5sZXNzZXE6CiAgICAgY2Fz
ZSBvcF9qbmdyZWF0ZXI6CiAgICAgY2FzZSBvcF9qbmdyZWF0ZXJlcToKKyAgICBjYXNlIG9wX2pl
cToKKyAgICBjYXNlIG9wX2puZXE6CisgICAgY2FzZSBvcF9qc3RyaWN0ZXE6CisgICAgY2FzZSBv
cF9qbnN0cmljdGVxOgogICAgIGNhc2Ugb3BfamJlbG93OgogICAgIGNhc2Ugb3BfamJlbG93ZXE6
CiAgICAgY2FzZSBvcF9sb29wX2hpbnQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0dyYXBoLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dyYXBoLmgK
aW5kZXggMTY5NTdiOTc4NjJhMWRkMjY0MWFmMDY4N2NkYzU3YTkwNGQwOTJkNy4uMjExYjA0OWY4
ZDU5YzBlNzU0N2VlYjc2NWZhOWY4ODY4YTJjZGEyOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHR3JhcGguaApAQCAtMzksMTEgKzM5LDExIEBACiAjaW5jbHVkZSAiREZHU2Nhbm5hYmxlLmgi
CiAjaW5jbHVkZSAiRnVsbEJ5dGVjb2RlTGl2ZW5lc3MuaCIKICNpbmNsdWRlICJNZXRob2RPZkdl
dHRpbmdBVmFsdWVQcm9maWxlLmgiCi0jaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KICNpbmNsdWRl
IDx3dGYvQml0VmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0
Zi9TdGRVbm9yZGVyZWRNYXAuaD4KIAogbmFtZXNwYWNlIFdURiB7CiB0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4gY2xhc3MgU2luZ2xlUm9vdEdyYXBoOwpAQCAtMTA4MCw3ICsxMDgwLDcgQEAgcHVibGlj
OgogICAgIEhhc2hNYXA8Y29uc3QgU3RyaW5nSW1wbCosIFN0cmluZz4gbV9jb3BpZWRTdHJpbmdz
OwogCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICBzdGQ6OnVub3JkZXJlZF9tYXA8aW50NjRf
dCwgZG91YmxlKiwgc3RkOjpoYXNoPGludDY0X3Q+LCBzdGQ6OmVxdWFsX3RvPGludDY0X3Q+LCBG
YXN0QWxsb2NhdG9yPHN0ZDo6cGFpcjxjb25zdCBpbnQ2NF90LCBkb3VibGUqPj4+IG1fZG91Ymxl
Q29uc3RhbnRzTWFwOworICAgIFN0ZFVub3JkZXJlZE1hcDxpbnQ2NF90LCBkb3VibGUqPiBtX2Rv
dWJsZUNvbnN0YW50c01hcDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QmFnPGRvdWJsZT4+IG1fZG91
YmxlQ29uc3RhbnRzOwogI2VuZGlmCiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0ludGVnZXJDaGVja0NvbWJpbmluZ1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHSW50ZWdlckNoZWNrQ29tYmluaW5nUGhhc2UuY3BwCmluZGV4IGZm
NWRhNGZlZTJiYWFkMzM4MmU0M2IxZTAxYWY5YzU0OWEwMGNkZDIuLjNiZTUzNjJmNWU2MzBkYjEx
NzFhZjU0ZGQ5MDEzZGMxZDU1OWJkNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSW50ZWdlckNoZWNrQ29tYmluaW5nUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHSW50ZWdlckNoZWNrQ29tYmluaW5nUGhhc2UuY3BwCkBAIC0zNCw4
ICszNCw4IEBACiAjaW5jbHVkZSAiREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuaCIKICNp
bmNsdWRlICJERkdWYXJpYWJsZUFjY2Vzc0RhdGFEdW1wLmgiCiAjaW5jbHVkZSAiSlNDSW5saW5l
cy5oIgotI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+CiAjaW5jbHVkZSA8d3RmL0hhc2hNZXRob2Qu
aD4KKyNpbmNsdWRlIDx3dGYvU3RkVW5vcmRlcmVkTWFwLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgREZHIHsKIApAQCAtMzc3LDcgKzM3Nyw3IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICAgICAgbm9kZUluZGV4LCBvcmlnaW4sIGpzTnVtYmVyKGFkZGVuZCksIHNvdXJjZS51c2VLaW5k
KCkpKTsKICAgICB9CiAgICAgCi0gICAgdXNpbmcgUmFuZ2VNYXAgPSBzdGQ6OnVub3JkZXJlZF9t
YXA8UmFuZ2VLZXksIFJhbmdlLCBIYXNoTWV0aG9kPFJhbmdlS2V5Piwgc3RkOjplcXVhbF90bzxS
YW5nZUtleT4sIEZhc3RBbGxvY2F0b3I8c3RkOjpwYWlyPGNvbnN0IFJhbmdlS2V5LCBSYW5nZT4+
PjsKKyAgICB1c2luZyBSYW5nZU1hcCA9IFN0ZFVub3JkZXJlZE1hcDxSYW5nZUtleSwgUmFuZ2Us
IEhhc2hNZXRob2Q8UmFuZ2VLZXk+PjsKICAgICBSYW5nZU1hcCBtX21hcDsKICAgICAKICAgICBJ
bnNlcnRpb25TZXQgbV9pbnNlcnRpb25TZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09iamVjdEFsbG9jYXRpb25TaW5raW5nUGhhc2UuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPYmplY3RBbGxvY2F0aW9uU2lua2luZ1BoYXNlLmNwcAppbmRl
eCAzZWNiM2U2MWZjMjA0M2U5ZTUyZjNlZjI0NTkwZjc0ZTllYzY3MTU0Li44ZTI5MWYyYTI0MGU1
NjgwZDFmYWY5MTk0MDU1NmZiMWIzYTk0ZDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09iamVjdEFsbG9jYXRpb25TaW5raW5nUGhhc2UuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT2JqZWN0QWxsb2NhdGlvblNpbmtpbmdQaGFzZS5jcHAK
QEAgLTQxLDggKzQxLDcgQEAKICNpbmNsdWRlICJERkdTU0FDYWxjdWxhdG9yLmgiCiAjaW5jbHVk
ZSAiREZHVmFsaWRhdGUuaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCi0KLSNpbmNsdWRlIDxs
aXN0PgorI2luY2x1ZGUgPHd0Zi9TdGRMaXN0Lmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3Bh
Y2UgREZHIHsKIApAQCAtMTM4NCw3ICsxMzgzLDcgQEAgcHJpdmF0ZToKICAgICAgICAgLy8gTm9k
ZXMgd2l0aG91dCByZW1haW5pbmcgdW5tYXRlcmlhbGl6ZWQgZmllbGRzIHdpbGwgYmUKICAgICAg
ICAgLy8gbWF0ZXJpYWxpemVkIGZpcnN0IC0gYW1vbmdzdCB0aGUgcmVtYWluaW5nIHVubWF0ZXJp
YWxpemVkCiAgICAgICAgIC8vIG5vZGVzCi0gICAgICAgIHN0ZDo6bGlzdDxBbGxvY2F0aW9uLCBG
YXN0QWxsb2NhdG9yPEFsbG9jYXRpb24+PiB0b01hdGVyaWFsaXplOworICAgICAgICBTdGRMaXN0
PEFsbG9jYXRpb24+IHRvTWF0ZXJpYWxpemU7CiAgICAgICAgIGF1dG8gZmlyc3RQb3MgPSB0b01h
dGVyaWFsaXplLmJlZ2luKCk7CiAgICAgICAgIGF1dG8gbWF0ZXJpYWxpemVGaXJzdCA9IFsmXSAo
QWxsb2NhdGlvbiYmIGFsbG9jYXRpb24pIHsKICAgICAgICAgICAgIG1hdGVyaWFsaXplKGFsbG9j
YXRpb24uaWRlbnRpZmllcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJh
dGlvbnMuY3BwCmluZGV4IGEwMGYwOTE2NmJiNzlhOGZhY2UyZjgwMmUyZjAzNWNjNGUzZTA0ODUu
LmVjMzA1MDA2YTUzMjI2YjlmMDhiNGZiZjQwZWQ4MmEzZDhjZThmZWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtMTI0MywxNyArMTI0Myw2IEBA
IHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVTdHJpY3RFcUNlbGwoRXhlY1N0
YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1CiAgICAgcmV0dXJuIEpTVmFsdWU6OnN0cmljdEVxdWFs
U2xvd0Nhc2VJbmxpbmUoZXhlYywgb3AxLCBvcDIpOwogfQogCi1zaXplX3QgSklUX09QRVJBVElP
TiBvcGVyYXRpb25Db21wYXJlU3RyaWN0RXEoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AyKQotewotICAgIFZNKiB2bSA9
ICZleGVjLT52bSgpOwotICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIodm0sIGV4ZWMp
OwotCi0gICAgSlNWYWx1ZSBzcmMxID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRPcDEpOwotICAg
IEpTVmFsdWUgc3JjMiA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AyKTsKLSAgICAKLSAgICBy
ZXR1cm4gSlNWYWx1ZTo6c3RyaWN0RXF1YWwoZXhlYywgc3JjMSwgc3JjMik7Ci19Ci0KIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uVG9QcmltaXRpdmUoRXhlY1N0YXRlKiBl
eGVjLCBFbmNvZGVkSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmgKaW5kZXggN2FkZDU5ZDFj
YzU3ZjZlNDA1MTQ3YzMyMzMzYmY2Yjg1YWQzOTFjNi4uYTM1NmQ4MjhjN2M2Yzc0OGYwNDgyMzdk
MTgxMjBiNmZkYzk1MDA0ZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcGVyYXRpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmgKQEAgLTE2Miw3ICsxNjIsNiBAQCBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25S
ZWdFeHBUZXN0U3RyaW5nKEV4ZWNTdGF0ZSosIEpTR2xvYmFsT2JqZWN0KiwgUmVnRQogc2l6ZV90
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uUmVnRXhwVGVzdChFeGVjU3RhdGUqLCBKU0dsb2JhbE9i
amVjdCosIFJlZ0V4cE9iamVjdCosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiBzaXpl
X3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25SZWdFeHBUZXN0R2VuZXJpYyhFeGVjU3RhdGUqLCBK
U0dsb2JhbE9iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVS
TkFMOwogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZVN0cmljdEVxQ2VsbChF
eGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkT3AxLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkT3AyKSBXVEZfSU5URVJOQUw7Ci1zaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db21w
YXJlU3RyaWN0RXEoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwgRW5jb2Rl
ZEpTVmFsdWUgZW5jb2RlZE9wMikgV1RGX0lOVEVSTkFMOwogSlNDZWxsKiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvbkNyZWF0ZUFjdGl2YXRpb25EaXJlY3QoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwg
SlNTY29wZSosIFN5bWJvbFRhYmxlKiwgRW5jb2RlZEpTVmFsdWUpOwogSlNDZWxsKiBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkNyZWF0ZURpcmVjdEFyZ3VtZW50cyhFeGVjU3RhdGUqLCBTdHJ1Y3R1
cmUqLCB1aW50MzJfdCBsZW5ndGgsIHVpbnQzMl90IG1pbkNhcGFjaXR5KTsKIEpTQ2VsbCogSklU
X09QRVJBVElPTiBvcGVyYXRpb25DcmVhdGVEaXJlY3RBcmd1bWVudHNEdXJpbmdFeGl0KEV4ZWNT
dGF0ZSosIElubGluZUNhbGxGcmFtZSosIEpTRnVuY3Rpb24qLCB1aW50MzJfdCBhcmd1bWVudENv
dW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5j
cHAKaW5kZXggNTI3NWM2YzY4YjEyM2ZiMTRiNzBjNmY0OWIwZDZkZjE2N2I1YWM3My4uODE2MTU2
YjRlNjgxNTAyM2IxZWYzZDJkMGUxOGNlOWJjZTQwNjQyNSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTU3MzcsMTIgKzU3MzcsNiBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlQ29tcGFyZVVuc2lnbmVkKE5vZGUqIG5vZGUs
IE1hY3JvQXNzZW1ibGVyOjpSZWxhdGlvbgogCiBib29sIFNwZWN1bGF0aXZlSklUOjpjb21waWxl
U3RyaWN0RXEoTm9kZSogbm9kZSkKIHsKLSAgICAvLyBGSVhNRTogQ3VycmVudGx5LCB3ZSBoYXZl
IG9wX2psZXNzLCBvcF9qZ3JlYXRlciBldGMuIEJ1dCB3ZSBkb24ndCBoYXZlIG9wX2plcSwgb3Bf
anN0cmljdGVxIGV0Yy4KLSAgICAvLyBgPT1gIGFuZCBgPT09YCBvcGVyYXRpb25zIHdpdGggYnJh
bmNoaW5nIHdpbGwgYmUgY29tcGlsZWQgdG8gb3Bfe2VxLHN0cmljdGVxfSBhbmQgb3Bfe2pmYWxz
ZSxqdHJ1ZX0uCi0gICAgLy8gSW4gREZHIGJ5dGVjb2RlcywgYmV0d2VlbiBvcF9lcSBhbmQgb3Bf
amZhbHNlLCB3ZSBoYXZlIE1vdkhpbnQgdG8gc3RvcmUgdGhlIHJlc3VsdCBvZiBvcF9lcS4KLSAg
ICAvLyBBcyBhIHJlc3VsdCwgZGV0ZWN0UGVlcEhvbGVCcmFuY2goKSBuZXZlciBkZXRlY3RzIHBl
ZXAgaG9sZSBmb3IgdGhhdCBjYXNlLgotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDk3MTMKLQogICAgIGlmIChub2RlLT5pc0JpbmFyeVVzZUtpbmQoQm9v
bGVhblVzZSkpIHsKICAgICAgICAgdW5zaWduZWQgYnJhbmNoSW5kZXhJbkJsb2NrID0gZGV0ZWN0
UGVlcEhvbGVCcmFuY2goKTsKICAgICAgICAgaWYgKGJyYW5jaEluZGV4SW5CbG9jayAhPSBVSU5U
X01BWCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRG
R1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3Bw
CmluZGV4IDY5ODIyOWE0YTkxODcxOTk3OGM4ZTAzYjE3OGFkMWIwMTZmNjA4ZWQuLjFiODQxYmZm
ODRjZmJmMmVlNWU4MDIzOTU4OWE5NDA0OGUyYzYwZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTkxLDEwICs5MSwxMCBAQAogI2luY2x1
ZGUgIlZpcnR1YWxSZWdpc3Rlci5oIgogI2luY2x1ZGUgIldhdGNoZG9nLmgiCiAjaW5jbHVkZSA8
YXRvbWljPgotI2luY2x1ZGUgPHVub3JkZXJlZF9zZXQ+CiAjaW5jbHVkZSA8d3RmL0JveC5oPgog
I2luY2x1ZGUgPHd0Zi9HaWdhY2FnZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWN1cnNhYmxlTGFtYmRh
Lmg+CisjaW5jbHVkZSA8d3RmL1N0ZFVub3JkZXJlZFNldC5oPgogCiAjdW5kZWYgUkVMRUFTRV9B
U1NFUlQKICNkZWZpbmUgUkVMRUFTRV9BU1NFUlQoYXNzZXJ0aW9uKSBkbyB7IFwKQEAgLTQ2NjAs
NyArNDY2MCw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgRWRnZSYgZWxlbWVudCA9IG1f
Z3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCBlbGVtZW50SW5kZXggKyBlbGVtZW50T2Zmc2V0KTsK
IAogICAgICAgICAgICAgICAgIExWYWx1ZSB2YWx1ZSA9IGxvd0pTVmFsdWUoZWxlbWVudCk7Ci0g
ICAgICAgICAgICAgICAgbV9vdXQuc3RvcmU2NCh2YWx1ZSwgbV9vdXQuYmFzZUluZGV4KG1faGVh
cHMudmFyaWFibGVzLCBidWZmZXIsIG1fb3V0LmNvbnN0SW50MzIoZWxlbWVudEluZGV4KSwganNO
dW1iZXIoZWxlbWVudEluZGV4KSkpOworICAgICAgICAgICAgICAgIG1fb3V0LnN0b3JlNjQodmFs
dWUsIG1fb3V0LmJhc2VJbmRleChtX2hlYXBzLkFycmF5U3RvcmFnZV92ZWN0b3IuYXRBbnlJbmRl
eCgpLCBidWZmZXIsIG1fb3V0LmNvbnN0SW50UHRyKGVsZW1lbnRJbmRleCksIFNjYWxlRWlnaHQp
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGZhc3RSZXN1bHQg
PSBtX291dC5hbmNob3IoYm94SW50MzIobmV3TGVuZ3RoKSk7CiAKQEAgLTEzNDkyLDcgKzEzNDky
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgCiAgICAgICAgIFZlY3RvcjxTd2l0Y2hDYXNlPiBjYXNl
czsKICAgICAgICAgLy8gVGhlc2UgbWF5IGJlIG5lZ2F0aXZlLCBvciB6ZXJvLCBvciBwcm9iYWJs
eSBvdGhlciBzdHVmZiwgdG9vLiBXZSBkb24ndCB3YW50IHRvIG1lc3Mgd2l0aCBIYXNoU2V0J3Mg
Y29ybmVyIGNhc2VzIGFuZCB3ZSBkb24ndCByZWFsbHkgY2FyZSBhYm91dCB0aHJvdWdocHV0IGhl
cmUuCi0gICAgICAgIHN0ZDo6dW5vcmRlcmVkX3NldDxpbnQzMl90LCBzdGQ6Omhhc2g8aW50MzJf
dD4sIHN0ZDo6ZXF1YWxfdG88aW50MzJfdD4sIEZhc3RBbGxvY2F0b3I8aW50MzJfdD4+IGFscmVh
ZHlIYW5kbGVkOworICAgICAgICBTdGRVbm9yZGVyZWRTZXQ8aW50MzJfdD4gYWxyZWFkeUhhbmRs
ZWQ7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBkYXRhLT5jYXNlcy5zaXplKCk7
ICsraSkgewogICAgICAgICAgICAgLy8gRklYTUU6IFRoZSBmYWN0IHRoYXQgd2UncmUgdXNpbmcg
dGhlIGJ5dGVjb2RlJ3Mgc3dpdGNoIHRhYmxlIG1lYW5zIHRoYXQgdGhlCiAgICAgICAgICAgICAv
LyBmb2xsb3dpbmcgREZHIElSIHRyYW5zZm9ybWF0aW9uIHdvdWxkIGJlIGludmFsaWQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9CbG9ja0RpcmVjdG9yeS5jcHAKaW5kZXggYTRmODM4
NGJkZjFhNWU4MGVlNjUxMDE4YmExMGJlNDJhYjhhYWI3MS4uYzgyNGNmZmU2YmMxZDY2ZjBkODA4
ODMwNGVjMDFjZjBjYzI4NmNlMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvQmxvY2tEaXJlY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Js
b2NrRGlyZWN0b3J5LmNwcApAQCAtMTkwLDYgKzE5MCw3IEBAIHZvaWQgQmxvY2tEaXJlY3Rvcnk6
OnByZXBhcmVGb3JBbGxvY2F0aW9uKCkKICAgICAgICAgfSk7CiAgICAgCiAgICAgbV91bnN3ZXB0
Q3Vyc29yID0gMDsKKyAgICBtX2VtcHR5Q3Vyc29yID0gMDsKICAgICAKICAgICBtX2VkZW4uY2xl
YXJBbGwoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhl
bHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0NhbGxIZWxwZXJzLmgKaW5kZXgg
N2Y0N2E0MWFlOWRkODdhYWFjOGNjNzllYzUwYTA3Yzk3ODg0NzI4MS4uZDhkN2IzYTFkNGZmNmFj
ZDkxZTFjYjA5NWFmMDgzNjY3NDA4NGU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0ND
YWxsSGVscGVycy5oCkBAIC0yMzgsOSArMjM4LDEzIEBAIHByaXZhdGU6CiAgICAgICAgICAgICBy
ZXR1cm4gQXJnQ29sbGVjdGlvbjxudW1HUFJBcmdzLCBudW1HUFJTb3VyY2VzLCBudW1GUFJBcmdz
LCBudW1GUFJTb3VyY2VzLCBleHRyYVBva2UgKyAxPigqdGhpcyk7CiAgICAgICAgIH0KIAotCisj
aWYgT1MoV0lORE9XUykgJiYgQ1BVKFg4Nl82NCkKKyAgICAgICAgdW5zaWduZWQgYXJnQ291bnQo
R1BSUmVnKSB7IHJldHVybiBudW1HUFJBcmdzICsgbnVtRlBSQXJnczsgfQorICAgICAgICB1bnNp
Z25lZCBhcmdDb3VudChGUFJSZWcpIHsgcmV0dXJuIG51bUdQUkFyZ3MgKyBudW1GUFJBcmdzOyB9
CisjZWxzZQogICAgICAgICB1bnNpZ25lZCBhcmdDb3VudChHUFJSZWcpIHsgcmV0dXJuIG51bUdQ
UkFyZ3M7IH0KICAgICAgICAgdW5zaWduZWQgYXJnQ291bnQoRlBSUmVnKSB7IHJldHVybiBudW1G
UFJBcmdzOyB9CisjZW5kaWYKIAogICAgICAgICBzdGQ6OmFycmF5PEdQUlJlZywgR1BSSW5mbzo6
bnVtYmVyT2ZSZWdpc3RlcnM+IGdwclNvdXJjZXM7CiAgICAgICAgIHN0ZDo6YXJyYXk8R1BSUmVn
LCBHUFJJbmZvOjpudW1iZXJPZlJlZ2lzdGVycz4gZ3ByRGVzdGluYXRpb25zOwpAQCAtMjg3LDYg
KzI5MSw3IEBAIHByaXZhdGU6CiAgICAgLy8gcmVjdXJzaW9uIHdlIGNhbiBmaWxsIGltbWVkaWF0
ZXMuCiAKICNkZWZpbmUgQ1VSUkVOVF9BUkdVTUVOVF9UWVBFIHR5cGVuYW1lIEZ1bmN0aW9uVHJh
aXRzPE9wZXJhdGlvblR5cGU+Ojp0ZW1wbGF0ZSBBcmd1bWVudFR5cGU8bnVtR1BSQXJncyArIG51
bUZQUkFyZ3M+CisjZGVmaW5lIFJFU1VMVF9UWVBFIHR5cGVuYW1lIEZ1bmN0aW9uVHJhaXRzPE9w
ZXJhdGlvblR5cGU+OjpSZXN1bHRUeXBlCiAKICNpZiBVU0UoSlNWQUxVRTY0KQogCkBAIC0yOTUs
NyArMzAwLDExIEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICB1c2luZyBJbmZvVHlwZSA9IElu
Zm9UeXBlRm9yUmVnPFJlZ1R5cGU+OwogICAgICAgICB1bnNpZ25lZCBudW1BcmdSZWdpc3RlcnMg
PSBJbmZvVHlwZTo6bnVtYmVyT2ZBcmd1bWVudFJlZ2lzdGVyczsKKyNpZiBPUyhXSU5ET1dTKSAm
JiBDUFUoWDg2XzY0KQorICAgICAgICB1bnNpZ25lZCBjdXJyZW50QXJnQ291bnQgPSBhcmdTb3Vy
Y2VSZWdzLmFyZ0NvdW50KGFyZykgKyAoc3RkOjppc19zYW1lPFJFU1VMVF9UWVBFLCBTbG93UGF0
aFJldHVyblR5cGU+Ojp2YWx1ZSA/IDEgOiAwKTsKKyNlbHNlCiAgICAgICAgIHVuc2lnbmVkIGN1
cnJlbnRBcmdDb3VudCA9IGFyZ1NvdXJjZVJlZ3MuYXJnQ291bnQoYXJnKTsKKyNlbmRpZgogICAg
ICAgICBpZiAoY3VycmVudEFyZ0NvdW50IDwgbnVtQXJnUmVnaXN0ZXJzKSB7CiAgICAgICAgICAg
ICBhdXRvIHVwZGF0ZWRBcmdTb3VyY2VSZWdzID0gYXJnU291cmNlUmVncy5wdXNoUmVnQXJnKGFy
ZywgSW5mb1R5cGU6OnRvQXJndW1lbnRSZWdpc3RlcihjdXJyZW50QXJnQ291bnQpKTsKICAgICAg
ICAgICAgIHNldHVwQXJndW1lbnRzSW1wbDxPcGVyYXRpb25UeXBlPih1cGRhdGVkQXJnU291cmNl
UmVncywgYXJncy4uLik7CkBAIC0zODUsOSArMzk0LDE0IEBAIHByaXZhdGU6CiAgICAgICAgIC8v
IGdyb3NzIHNvIGl0J3MgcHJvYmFibHkgYmV0dGVyIHRvIGRvIHRoYXQgbWFyc2hhbGxpbmcgYmVm
b3JlIHRoZSBjYWxsIG9wZXJhdGlvbi4uLgogICAgICAgICBzdGF0aWNfYXNzZXJ0KCFzdGQ6Omlz
X2Zsb2F0aW5nX3BvaW50PENVUlJFTlRfQVJHVU1FTlRfVFlQRT46OnZhbHVlLCAiV2UgZG9uJ3Qg
c3VwcG9ydCBpbW1lZGlhdGUgZmxvYXRzL2RvdWJsZXMgaW4gc2V0dXBBcmd1bWVudHMiKTsKICAg
ICAgICAgYXV0byBudW1BcmdSZWdpc3RlcnMgPSBHUFJJbmZvOjpudW1iZXJPZkFyZ3VtZW50UmVn
aXN0ZXJzOwotICAgICAgICBpZiAobnVtR1BSQXJncyA8IG51bUFyZ1JlZ2lzdGVycykgeworI2lm
IE9TKFdJTkRPV1MpICYmIENQVShYODZfNjQpCisgICAgICAgIGF1dG8gY3VycmVudEFyZ0NvdW50
ID0gbnVtR1BSQXJncyArIG51bUZQUkFyZ3MgKyAoc3RkOjppc19zYW1lPFJFU1VMVF9UWVBFLCBT
bG93UGF0aFJldHVyblR5cGU+Ojp2YWx1ZSA/IDEgOiAwKTsKKyNlbHNlCisgICAgICAgIGF1dG8g
Y3VycmVudEFyZ0NvdW50ID0gbnVtR1BSQXJnczsKKyNlbmRpZgorICAgICAgICBpZiAoY3VycmVu
dEFyZ0NvdW50IDwgbnVtQXJnUmVnaXN0ZXJzKSB7CiAgICAgICAgICAgICBzZXR1cEFyZ3VtZW50
c0ltcGw8T3BlcmF0aW9uVHlwZT4oYXJnU291cmNlUmVncy5hZGRHUFJBcmcoKSwgYXJncy4uLik7
Ci0gICAgICAgICAgICBtb3ZlKGFyZywgR1BSSW5mbzo6dG9Bcmd1bWVudFJlZ2lzdGVyKG51bUdQ
UkFyZ3MpKTsKKyAgICAgICAgICAgIG1vdmUoYXJnLCBHUFJJbmZvOjp0b0FyZ3VtZW50UmVnaXN0
ZXIoY3VycmVudEFyZ0NvdW50KSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApA
QCAtNDM2LDYgKzQ1MCw3IEBAIHByaXZhdGU6CiAgICAgfQogCiAjdW5kZWYgQ1VSUkVOVF9BUkdV
TUVOVF9UWVBFCisjdW5kZWYgUkVTVUxUX1RZUEUKIAogICAgIC8vIEJhc2UgY2FzZTsgc2V0IHVw
IHRoZSBhcmd1bWVudCByZWdpc3RlcnMuCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9u
VHlwZSwgdW5zaWduZWQgbnVtR1BSQXJncywgdW5zaWduZWQgbnVtR1BSU291cmNlcywgdW5zaWdu
ZWQgbnVtRlBSQXJncywgdW5zaWduZWQgbnVtRlBSU291cmNlcywgdW5zaWduZWQgZXh0cmFQb2tl
PgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4IDgxZmU2YjA1NGFjNzVhMTQwM2Y0ZmEx
NGRjNzAyNWExYmNkZDA3MzAuLmQ0NzA2ZTM5OTE5ODEwYTExZjY5Y2NhZDMyY2UwNDZlNjQ5NGJj
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKQEAgLTU3LDYgKzU3LDkgQEAKIHVzaW5n
IG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBKU0MgeworbmFtZXNwYWNlIEpJVEludGVybmFs
IHsKK3N0YXRpYyBjb25zdGV4cHIgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7Cit9CiAKIFNl
Y29uZHMgdG90YWxCYXNlbGluZUNvbXBpbGVUaW1lOwogU2Vjb25kcyB0b3RhbERGR0NvbXBpbGVU
aW1lOwpAQCAtMTgzLDcgKzE4Niw3IEBAIHZvaWQgSklUOjplbWl0U2xvd0Nhc2VDYWxsKEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5CiAKIHZvaWQg
SklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKCkKIHsKLSAgICBpZiAoZmFsc2UpCisgICAgaWYg
KEpJVEludGVybmFsOjp2ZXJib3NlKQogICAgICAgICBkYXRhTG9nKCJDb21waWxpbmcgIiwgKm1f
Y29kZUJsb2NrLCAiXG4iKTsKICAgICAKICAgICBqaXRBc3NlcnRUYWdzSW5QbGFjZSgpOwpAQCAt
MjQ1LDEwICsyNDgsOSBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFzcygpCiAKICAg
ICAgICAgbV9sYWJlbHNbbV9ieXRlY29kZU9mZnNldF0gPSBsYWJlbCgpOwogCi0jaWYgRU5BQkxF
KEpJVF9WRVJCT1NFKQotICAgICAgICBkYXRhTG9nRigiT2xkIEpJVCBlbWl0dGluZyBjb2RlIGZv
ciBiYyMldSBhdCBvZmZzZXQgMHglbHguXG4iLCBtX2J5dGVjb2RlT2Zmc2V0LCAobG9uZylkZWJ1
Z09mZnNldCgpKTsKLSNlbmRpZgotICAgICAgICAKKyAgICAgICAgaWYgKEpJVEludGVybmFsOjp2
ZXJib3NlKQorICAgICAgICAgICAgZGF0YUxvZ0YoIk9sZCBKSVQgZW1pdHRpbmcgY29kZSBmb3Ig
YmMjJXUgYXQgb2Zmc2V0IDB4JWx4LlxuIiwgbV9ieXRlY29kZU9mZnNldCwgKGxvbmcpZGVidWdP
ZmZzZXQoKSk7CisKICAgICAgICAgT3Bjb2RlSUQgb3Bjb2RlSUQgPSBJbnRlcnByZXRlcjo6Z2V0
T3Bjb2RlSUQoY3VycmVudEluc3RydWN0aW9uLT51Lm9wY29kZSk7CiAKICAgICAgICAgaWYgKFVO
TElLRUxZKG1fY29tcGlsYXRpb24pKSB7CkBAIC0zNTYsNiArMzU4LDEwIEBAIHZvaWQgSklUOjpw
cml2YXRlQ29tcGlsZU1haW5QYXNzKCkKICAgICAgICAgREVGSU5FX09QKG9wX2pubGVzc2VxKQog
ICAgICAgICBERUZJTkVfT1Aob3Bfam5ncmVhdGVyKQogICAgICAgICBERUZJTkVfT1Aob3Bfam5n
cmVhdGVyZXEpCisgICAgICAgIERFRklORV9PUChvcF9qZXEpCisgICAgICAgIERFRklORV9PUChv
cF9qbmVxKQorICAgICAgICBERUZJTkVfT1Aob3BfanN0cmljdGVxKQorICAgICAgICBERUZJTkVf
T1Aob3Bfam5zdHJpY3RlcSkKICAgICAgICAgREVGSU5FX09QKG9wX2piZWxvdykKICAgICAgICAg
REVGSU5FX09QKG9wX2piZWxvd2VxKQogICAgICAgICBERUZJTkVfT1Aob3BfanRydWUpCkBAIC00
MzMsNyArNDM5LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAg
ICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgfQogCi0gICAgICAg
IGlmIChmYWxzZSkKKyAgICAgICAgaWYgKEpJVEludGVybmFsOjp2ZXJib3NlKQogICAgICAgICAg
ICAgZGF0YUxvZygiQXQgIiwgYnl0ZWNvZGVPZmZzZXQsICI6ICIsIG1fc2xvd0Nhc2VzLnNpemUo
KSwgIlxuIik7CiAgICAgfQogCkBAIC00ODQsMTAgKzQ5MCw5IEBAIHZvaWQgSklUOjpwcml2YXRl
Q29tcGlsZVNsb3dDYXNlcygpCiAgICAgICAgIGlmIChzaG91bGRFbWl0UHJvZmlsaW5nKCkpCiAg
ICAgICAgICAgICByYXJlQ2FzZVByb2ZpbGUgPSBtX2NvZGVCbG9jay0+YWRkUmFyZUNhc2VQcm9m
aWxlKG1fYnl0ZWNvZGVPZmZzZXQpOwogCi0jaWYgRU5BQkxFKEpJVF9WRVJCT1NFKQotICAgICAg
ICBkYXRhTG9nRigiT2xkIEpJVCBlbWl0dGluZyBzbG93IGNvZGUgZm9yIGJjIyV1IGF0IG9mZnNl
dCAweCVseC5cbiIsIG1fYnl0ZWNvZGVPZmZzZXQsIChsb25nKWRlYnVnT2Zmc2V0KCkpOwotI2Vu
ZGlmCi0gICAgICAgIAorICAgICAgICBpZiAoSklUSW50ZXJuYWw6OnZlcmJvc2UpCisgICAgICAg
ICAgICBkYXRhTG9nRigiT2xkIEpJVCBlbWl0dGluZyBzbG93IGNvZGUgZm9yIGJjIyV1IGF0IG9m
ZnNldCAweCVseC5cbiIsIG1fYnl0ZWNvZGVPZmZzZXQsIChsb25nKWRlYnVnT2Zmc2V0KCkpOwor
CiAgICAgICAgIGlmIChtX2Rpc2Fzc2VtYmxlcikKICAgICAgICAgICAgIG1fZGlzYXNzZW1ibGVy
LT5zZXRGb3JCeXRlY29kZVNsb3dQYXRoKG1fYnl0ZWNvZGVPZmZzZXQsIGxhYmVsKCkpOwogCkBA
IC01MTksNiArNTI0LDEwIEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAg
ICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9qbmxlc3NlcSkKICAgICAgICAgREVGSU5FX1NM
T1dDQVNFX09QKG9wX2puZ3JlYXRlcikKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2pu
Z3JlYXRlcmVxKQorICAgICAgICBERUZJTkVfU0xPV0NBU0VfT1Aob3BfamVxKQorICAgICAgICBE
RUZJTkVfU0xPV0NBU0VfT1Aob3Bfam5lcSkKKyAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9w
X2pzdHJpY3RlcSkKKyAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9wX2puc3RyaWN0ZXEpCiAg
ICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9sb29wX2hpbnQpCiAgICAgICAgIERFRklORV9T
TE9XQ0FTRV9PUChvcF9jaGVja190cmFwcykKICAgICAgICAgREVGSU5FX1NMT1dDQVNFX09QKG9w
X21vZCkKQEAgLTU2Miw3ICs1NzEsNyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2Fz
ZXMoKQogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAg
fQogCi0gICAgICAgIGlmIChmYWxzZSkKKyAgICAgICAgaWYgKEpJVEludGVybmFsOjp2ZXJib3Nl
KQogICAgICAgICAgICAgZGF0YUxvZygiQXQgIiwgZmlyc3RUbywgIiBzbG93OiAiLCBpdGVyIC0g
bV9zbG93Q2FzZXMuYmVnaW4oKSwgIlxuIik7CiAKICAgICAgICAgUkVMRUFTRV9BU1NFUlRfV0lU
SF9NRVNTQUdFKGl0ZXIgPT0gbV9zbG93Q2FzZXMuZW5kKCkgfHwgZmlyc3RUbyAhPSBpdGVyLT50
bywgIk5vdCBlbm91Z2gganVtcHMgbGlua2VkIGluIHNsb3cgY2FzZSBjb2RlZ2VuLiIpOwpAQCAt
ODg1LDEwICs4OTQsOSBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OmxpbmsoKQogICAgIG1fY29k
ZUJsb2NrLT5zZXRKSVRDb2RlKAogICAgICAgICBhZG9wdFJlZigqbmV3IERpcmVjdEpJVENvZGUo
cmVzdWx0LCB3aXRoQXJpdHlDaGVjaywgSklUQ29kZTo6QmFzZWxpbmVKSVQpKSk7CiAKLSNpZiBF
TkFCTEUoSklUX1ZFUkJPU0UpCi0gICAgZGF0YUxvZ0YoIkpJVCBnZW5lcmF0ZWQgY29kZSBmb3Ig
JXAgYXQgWyVwLCAlcCkuXG4iLCBtX2NvZGVCbG9jaywgcmVzdWx0LmV4ZWN1dGFibGVNZW1vcnko
KS0+c3RhcnQoKSwgcmVzdWx0LmV4ZWN1dGFibGVNZW1vcnkoKS0+ZW5kKCkpOwotI2VuZGlmCi0g
ICAgCisgICAgaWYgKEpJVEludGVybmFsOjp2ZXJib3NlKQorICAgICAgICBkYXRhTG9nRigiSklU
IGdlbmVyYXRlZCBjb2RlIGZvciAlcCBhdCBbJXAsICVwKS5cbiIsIG1fY29kZUJsb2NrLCByZXN1
bHQuZXhlY3V0YWJsZU1lbW9yeSgpLT5zdGFydCgpLCByZXN1bHQuZXhlY3V0YWJsZU1lbW9yeSgp
LT5lbmQoKSk7CisKICAgICByZXR1cm4gQ29tcGlsYXRpb25TdWNjZXNzZnVsOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVQuaAppbmRleCBjNWRkYTczM2M1NmI1ZmVmOTJiN2IyYmY3MmMyOWZiZGJh
NDIyYTQwLi43Y2I0MzUzNWE3MTEwYzExYzdiNTc0MDQyMWQyYjdiNzIxMjczMDBkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmgKQEAgLTMxMyw4ICszMTMsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIHZvaWQgY29tcGlsZUNhbGxFdmFsU2xvd0Nhc2UoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8
U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CiAgICAgICAgIHZvaWQgZW1pdFB1dENhbGxSZXN1
bHQoSW5zdHJ1Y3Rpb24qKTsKIAotICAgICAgICBlbnVtIENvbXBpbGVPcFN0cmljdEVxVHlwZSB7
IE9wU3RyaWN0RXEsIE9wTlN0cmljdEVxIH07Ci0gICAgICAgIHZvaWQgY29tcGlsZU9wU3RyaWN0
RXEoSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCBDb21waWxlT3BTdHJpY3RFcVR5cGUgdHlwZSk7
CisgICAgICAgIGVudW0gY2xhc3MgQ29tcGlsZU9wU3RyaWN0RXFUeXBlIHsgU3RyaWN0RXEsIE5T
dHJpY3RFcSB9OworICAgICAgICB2b2lkIGNvbXBpbGVPcFN0cmljdEVxKEluc3RydWN0aW9uKiwg
Q29tcGlsZU9wU3RyaWN0RXFUeXBlKTsKKyAgICAgICAgdm9pZCBjb21waWxlT3BTdHJpY3RFcUp1
bXAoSW5zdHJ1Y3Rpb24qLCBDb21waWxlT3BTdHJpY3RFcVR5cGUpOworICAgICAgICBlbnVtIGNs
YXNzIENvbXBpbGVPcEVxVHlwZSB7IEVxLCBORXEgfTsKKyAgICAgICAgdm9pZCBjb21waWxlT3BF
cUp1bXBTbG93KFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImLCBDb21waWxlT3BFcVR5
cGUsIGludCBqdW1wVGFyZ2V0KTsKICAgICAgICAgYm9vbCBpc09wZXJhbmRDb25zdGFudERvdWJs
ZShpbnQgc3JjKTsKICAgICAgICAgCiAgICAgICAgIHZvaWQgZW1pdExvYWREb3VibGUoaW50IGlu
ZGV4LCBGUFJlZ2lzdGVySUQgdmFsdWUpOwpAQCAtNTIzLDYgKzUyNiwxMCBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgdm9pZCBlbWl0X29wX2pubGVzc2VxKEluc3RydWN0aW9uKik7CiAgICAg
ICAgIHZvaWQgZW1pdF9vcF9qbmdyZWF0ZXIoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBl
bWl0X29wX2puZ3JlYXRlcmVxKEluc3RydWN0aW9uKik7CisgICAgICAgIHZvaWQgZW1pdF9vcF9q
ZXEoSW5zdHJ1Y3Rpb24qKTsKKyAgICAgICAgdm9pZCBlbWl0X29wX2puZXEoSW5zdHJ1Y3Rpb24q
KTsKKyAgICAgICAgdm9pZCBlbWl0X29wX2pzdHJpY3RlcShJbnN0cnVjdGlvbiopOworICAgICAg
ICB2b2lkIGVtaXRfb3Bfam5zdHJpY3RlcShJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVt
aXRfb3BfamJlbG93KEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9qYmVsb3dl
cShJbnN0cnVjdGlvbiopOwogICAgICAgICB2b2lkIGVtaXRfb3BfanRydWUoSW5zdHJ1Y3Rpb24q
KTsKQEAgLTYxNiw2ICs2MjMsMTAgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZW1p
dFNsb3dfb3Bfam5sZXNzZXEoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0
ZXJhdG9yJik7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3Bfam5ncmVhdGVyKEluc3RydWN0aW9u
KiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lkIGVtaXRT
bG93X29wX2puZ3JlYXRlcmVxKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+Ojpp
dGVyYXRvciYpOworICAgICAgICB2b2lkIGVtaXRTbG93X29wX2plcShJbnN0cnVjdGlvbiosIFZl
Y3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKKyAgICAgICAgdm9pZCBlbWl0U2xvd19v
cF9qbmVxKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwor
ICAgICAgICB2b2lkIGVtaXRTbG93X29wX2pzdHJpY3RlcShJbnN0cnVjdGlvbiosIFZlY3RvcjxT
bG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKKyAgICAgICAgdm9pZCBlbWl0U2xvd19vcF9qbnN0
cmljdGVxKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwog
ICAgICAgICB2b2lkIGVtaXRTbG93X29wX2p0cnVlKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dD
YXNlRW50cnk+OjppdGVyYXRvciYpOwogICAgICAgICB2b2lkIGVtaXRTbG93X29wX2xvb3BfaGlu
dChJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAgICAg
ICAgdm9pZCBlbWl0U2xvd19vcF9jaGVja190cmFwcyhJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93
Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKQEAgLTcwNSw3ICs3MTYsNyBAQCBuYW1lc3BhY2UgSlND
IHsKIAogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBhcHBlbmRDYWxsV2l0aEV4Y2VwdGlv
bkNoZWNrKGNvbnN0IEZ1bmN0aW9uUHRyLCBQdHJUYWcpOwogI2lmIE9TKFdJTkRPV1MpICYmIENQ
VShYODZfNjQpCi0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGFwcGVuZENhbGxXaXRoRXhj
ZXB0aW9uQ2hlY2tBbmRTbG93UGF0aFJldHVyblR5cGUoY29uc3QgRnVuY3Rpb25QdHIsIFB0clRh
ZyA9IE5vUHRyVGFnKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkNhbGwgYXBwZW5kQ2FsbFdp
dGhFeGNlcHRpb25DaGVja0FuZFNsb3dQYXRoUmV0dXJuVHlwZShjb25zdCBGdW5jdGlvblB0ciwg
UHRyVGFnKTsKICNlbmRpZgogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBhcHBlbmRDYWxs
V2l0aENhbGxGcmFtZVJvbGxiYWNrT25FeGNlcHRpb24oY29uc3QgRnVuY3Rpb25QdHIsIFB0clRh
Zyk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9u
Q2hlY2tTZXRKU1ZhbHVlUmVzdWx0KGNvbnN0IEZ1bmN0aW9uUHRyLCBQdHJUYWcsIGludCk7CkBA
IC03MjcsMTIgKzczOCwzNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIHJldHVybiBj
YWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwgdGFnLCByZXN1bHQsIGFyZ3MuLi4pOwogICAgICAgICB9
CiAKKyNpZiBPUyhXSU5ET1dTKSAmJiBDUFUoWDg2XzY0KQorICAgICAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBPcGVyYXRpb25UeXBlLCB0eXBlbmFtZS4uLiBBcmdzPgorICAgICAgICBzdGQ6OmVuYWJs
ZV9pZl90PHN0ZDo6aXNfc2FtZTx0eXBlbmFtZSBGdW5jdGlvblRyYWl0czxPcGVyYXRpb25UeXBl
Pjo6UmVzdWx0VHlwZSwgU2xvd1BhdGhSZXR1cm5UeXBlPjo6dmFsdWUsIE1hY3JvQXNzZW1ibGVy
OjpDYWxsPgorICAgICAgICBjYWxsT3BlcmF0aW9uKE9wZXJhdGlvblR5cGUgb3BlcmF0aW9uLCBQ
dHJUYWcgdGFnLCBBcmdzLi4uIGFyZ3MpCisgICAgICAgIHsKKyAgICAgICAgICAgIHNldHVwQXJn
dW1lbnRzPE9wZXJhdGlvblR5cGU+KGFyZ3MuLi4pOworICAgICAgICAgICAgcmV0dXJuIGFwcGVu
ZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2tBbmRTbG93UGF0aFJldHVyblR5cGUob3BlcmF0aW9uLCB0
YWcpOworICAgICAgICB9CisKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVHlwZT4KKyAgICAg
ICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzNjRCaXRUeXBlKCkgeyByZXR1cm4gc2l6ZW9mKFR5
cGUpIDw9IDg7IH0KKworICAgICAgICB0ZW1wbGF0ZTw+CisgICAgICAgIHN0YXRpYyBjb25zdGV4
cHIgYm9vbCBpczY0Qml0VHlwZTx2b2lkPigpIHsgcmV0dXJuIHRydWU7IH0KKworICAgICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25UeXBlLCB0eXBlbmFtZS4uLiBBcmdzPgorICAgICAg
ICBzdGQ6OmVuYWJsZV9pZl90PCFzdGQ6OmlzX3NhbWU8dHlwZW5hbWUgRnVuY3Rpb25UcmFpdHM8
T3BlcmF0aW9uVHlwZT46OlJlc3VsdFR5cGUsIFNsb3dQYXRoUmV0dXJuVHlwZT46OnZhbHVlLCBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbD4KKyAgICAgICAgY2FsbE9wZXJhdGlvbihPcGVyYXRpb25UeXBl
IG9wZXJhdGlvbiwgUHRyVGFnIHRhZywgQXJncy4uLiBhcmdzKQorICAgICAgICB7CisgICAgICAg
ICAgICBzdGF0aWNfYXNzZXJ0KGlzNjRCaXRUeXBlPHR5cGVuYW1lIEZ1bmN0aW9uVHJhaXRzPE9w
ZXJhdGlvblR5cGU+OjpSZXN1bHRUeXBlPigpLCAiV2luNjQgY2Fubm90IHVzZSBzdGFuZGFyZCBj
YWxsIHdoZW4gcmV0dXJuIHR5cGUgaXMgbGFyZ2VyIHRoYW4gNjQgYml0cy4iKTsKKyAgICAgICAg
ICAgIHNldHVwQXJndW1lbnRzPE9wZXJhdGlvblR5cGU+KGFyZ3MuLi4pOworICAgICAgICAgICAg
cmV0dXJuIGFwcGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uLCB0YWcpOworICAg
ICAgICB9CisjZWxzZSAvLyBPUyhXSU5ET1dTKSAmJiBDUFUoWDg2XzY0KQogICAgICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBPcGVyYXRpb25UeXBlLCB0eXBlbmFtZS4uLiBBcmdzPgogICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKE9wZXJhdGlvblR5cGUgb3BlcmF0aW9u
LCBQdHJUYWcgdGFnLCBBcmdzLi4uIGFyZ3MpCiAgICAgICAgIHsKICAgICAgICAgICAgIHNldHVw
QXJndW1lbnRzPE9wZXJhdGlvblR5cGU+KGFyZ3MuLi4pOwogICAgICAgICAgICAgcmV0dXJuIGFw
cGVuZENhbGxXaXRoRXhjZXB0aW9uQ2hlY2sob3BlcmF0aW9uLCB0YWcpOwogICAgICAgICB9Cisj
ZW5kaWYgLy8gT1MoV0lORE9XUykgJiYgQ1BVKFg4Nl82NCkKIAogICAgICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBPcGVyYXRpb25UeXBlLCB0eXBlbmFtZS4uLiBBcmdzPgogICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKE9wZXJhdGlvblR5cGUgb3BlcmF0aW9uLCBBcmdz
Li4uIGFyZ3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29k
ZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAppbmRleCA4
OWQxMmUyMmVlNWQyNTY0ZGIwYjQ5MWYzOGIzZjZhZjI5NzA0MGYwLi44ZjMyMGI3NDhkZmE1Njdj
M2IzMGQ4OTk1YWU1N2EzNjA4OTMxZDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVE9wY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3Bjb2Rlcy5jcHAKQEAgLTQyNSw2ICs0MjUsMTQgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZXEoSW5z
dHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVy
KGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQpOwogfQogCit2b2lkIEpJVDo6ZW1pdF9v
cF9qZXEoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKK3sKKyAgICB1bnNpZ25lZCB0
YXJnZXQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAgIGVtaXRHZXRWaXJ0
dWFsUmVnaXN0ZXJzKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQsIHJlZ1QwLCBjdXJy
ZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kLCByZWdUMSk7CisgICAgZW1pdEp1bXBTbG93Q2Fz
ZUlmTm90SW50KHJlZ1QwLCByZWdUMSwgcmVnVDIpOworICAgIGFkZEp1bXAoYnJhbmNoMzIoRXF1
YWwsIHJlZ1QwLCByZWdUMSksIHRhcmdldCk7Cit9CisKIHZvaWQgSklUOjplbWl0X29wX2p0cnVl
KEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7CiAgICAgdW5zaWduZWQgdGFyZ2V0
ID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKQEAgLTQ0Niw3ICs0NTQsMTQgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfbmVxKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAg
ICAgZW1pdFRhZ0Jvb2wocmVnVDApOwogCiAgICAgZW1pdFB1dFZpcnR1YWxSZWdpc3RlcihjdXJy
ZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKTsKK30KIAordm9pZCBKSVQ6OmVtaXRfb3Bfam5l
cShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQoreworICAgIHVuc2lnbmVkIHRhcmdl
dCA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgZW1pdEdldFZpcnR1YWxS
ZWdpc3RlcnMoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcmVnVDAsIGN1cnJlbnRJ
bnN0cnVjdGlvblsyXS51Lm9wZXJhbmQsIHJlZ1QxKTsKKyAgICBlbWl0SnVtcFNsb3dDYXNlSWZO
b3RJbnQocmVnVDAsIHJlZ1QxLCByZWdUMik7CisgICAgYWRkSnVtcChicmFuY2gzMihOb3RFcXVh
bCwgcmVnVDAsIHJlZ1QxKSwgdGFyZ2V0KTsKIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfdGhyb3co
SW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKQEAgLTQ4MCw3ICs0OTUsNyBAQCB2b2lk
IEpJVDo6Y29tcGlsZU9wU3RyaWN0RXEoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwg
Q29tcGlsZU9wU3RyaWN0RXFUeQogICAgIGFkZFNsb3dDYXNlKGVtaXRKdW1wSWZOdW1iZXIocmVn
VDEpKTsKICAgICByaWdodE9LLmxpbmsodGhpcyk7CiAKLSAgICBpZiAodHlwZSA9PSBPcFN0cmlj
dEVxKQorICAgIGlmICh0eXBlID09IENvbXBpbGVPcFN0cmljdEVxVHlwZTo6U3RyaWN0RXEpCiAg
ICAgICAgIGNvbXBhcmU2NChFcXVhbCwgcmVnVDEsIHJlZ1QwLCByZWdUMCk7CiAgICAgZWxzZQog
ICAgICAgICBjb21wYXJlNjQoTm90RXF1YWwsIHJlZ1QxLCByZWdUMCwgcmVnVDApOwpAQCAtNDkx
LDEyICs1MDYsNjggQEAgdm9pZCBKSVQ6OmNvbXBpbGVPcFN0cmljdEVxKEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24sIENvbXBpbGVPcFN0cmljdEVxVHkKIAogdm9pZCBKSVQ6OmVtaXRf
b3Bfc3RyaWN0ZXEoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKLSAgICBjb21w
aWxlT3BTdHJpY3RFcShjdXJyZW50SW5zdHJ1Y3Rpb24sIE9wU3RyaWN0RXEpOworICAgIGNvbXBp
bGVPcFN0cmljdEVxKGN1cnJlbnRJbnN0cnVjdGlvbiwgQ29tcGlsZU9wU3RyaWN0RXFUeXBlOjpT
dHJpY3RFcSk7CiB9CiAKIHZvaWQgSklUOjplbWl0X29wX25zdHJpY3RlcShJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQogewotICAgIGNvbXBpbGVPcFN0cmljdEVxKGN1cnJlbnRJbnN0
cnVjdGlvbiwgT3BOU3RyaWN0RXEpOworICAgIGNvbXBpbGVPcFN0cmljdEVxKGN1cnJlbnRJbnN0
cnVjdGlvbiwgQ29tcGlsZU9wU3RyaWN0RXFUeXBlOjpOU3RyaWN0RXEpOworfQorCit2b2lkIEpJ
VDo6Y29tcGlsZU9wU3RyaWN0RXFKdW1wKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24s
IENvbXBpbGVPcFN0cmljdEVxVHlwZSB0eXBlKQoreworICAgIGludCB0YXJnZXQgPSBjdXJyZW50
SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAgIGludCBzcmMxID0gY3VycmVudEluc3RydWN0
aW9uWzFdLnUub3BlcmFuZDsKKyAgICBpbnQgc3JjMiA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51
Lm9wZXJhbmQ7CisKKyAgICBlbWl0R2V0VmlydHVhbFJlZ2lzdGVycyhzcmMxLCByZWdUMCwgc3Jj
MiwgcmVnVDEpOworCisgICAgLy8gSnVtcCBzbG93IGlmIGJvdGggYXJlIGNlbGxzICh0byBjb3Zl
ciBzdHJpbmdzKS4KKyAgICBtb3ZlKHJlZ1QwLCByZWdUMik7CisgICAgb3I2NChyZWdUMSwgcmVn
VDIpOworICAgIGFkZFNsb3dDYXNlKGVtaXRKdW1wSWZKU0NlbGwocmVnVDIpKTsKKworICAgIC8v
IEp1bXAgc2xvdyBpZiBlaXRoZXIgaXMgYSBkb3VibGUuIEZpcnN0IHRlc3QgaWYgaXQncyBhbiBp
bnRlZ2VyLCB3aGljaCBpcyBmaW5lLCBhbmQgdGhlbiB0ZXN0CisgICAgLy8gaWYgaXQncyBhIGRv
dWJsZS4KKyAgICBKdW1wIGxlZnRPSyA9IGVtaXRKdW1wSWZJbnQocmVnVDApOworICAgIGFkZFNs
b3dDYXNlKGVtaXRKdW1wSWZOdW1iZXIocmVnVDApKTsKKyAgICBsZWZ0T0subGluayh0aGlzKTsK
KyAgICBKdW1wIHJpZ2h0T0sgPSBlbWl0SnVtcElmSW50KHJlZ1QxKTsKKyAgICBhZGRTbG93Q2Fz
ZShlbWl0SnVtcElmTnVtYmVyKHJlZ1QxKSk7CisgICAgcmlnaHRPSy5saW5rKHRoaXMpOworCisg
ICAgaWYgKHR5cGUgPT0gQ29tcGlsZU9wU3RyaWN0RXFUeXBlOjpTdHJpY3RFcSkKKyAgICAgICAg
YWRkSnVtcChicmFuY2g2NChFcXVhbCwgcmVnVDEsIHJlZ1QwKSwgdGFyZ2V0KTsKKyAgICBlbHNl
CisgICAgICAgIGFkZEp1bXAoYnJhbmNoNjQoTm90RXF1YWwsIHJlZ1QxLCByZWdUMCksIHRhcmdl
dCk7Cit9CisKK3ZvaWQgSklUOjplbWl0X29wX2pzdHJpY3RlcShJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uKQoreworICAgIGNvbXBpbGVPcFN0cmljdEVxSnVtcChjdXJyZW50SW5zdHJ1
Y3Rpb24sIENvbXBpbGVPcFN0cmljdEVxVHlwZTo6U3RyaWN0RXEpOworfQorCit2b2lkIEpJVDo6
ZW1pdF9vcF9qbnN0cmljdGVxKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCit7Cisg
ICAgY29tcGlsZU9wU3RyaWN0RXFKdW1wKGN1cnJlbnRJbnN0cnVjdGlvbiwgQ29tcGlsZU9wU3Ry
aWN0RXFUeXBlOjpOU3RyaWN0RXEpOworfQorCit2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfanN0cmlj
dGVxKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5
Pjo6aXRlcmF0b3ImIGl0ZXIpCit7CisgICAgbGlua0FsbFNsb3dDYXNlcyhpdGVyKTsKKworICAg
IHVuc2lnbmVkIHRhcmdldCA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25Db21wYXJlU3RyaWN0RXEsIHJlZ1QwLCByZWdUMSk7Cisg
ICAgZW1pdEp1bXBTbG93VG9Ib3QoYnJhbmNoVGVzdDMyKE5vblplcm8sIHJldHVyblZhbHVlR1BS
KSwgdGFyZ2V0KTsKK30KKwordm9pZCBKSVQ6OmVtaXRTbG93X29wX2puc3RyaWN0ZXEoSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRv
ciYgaXRlcikKK3sKKyAgICBsaW5rQWxsU2xvd0Nhc2VzKGl0ZXIpOworCisgICAgdW5zaWduZWQg
dGFyZ2V0ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICBjYWxsT3BlcmF0
aW9uKG9wZXJhdGlvbkNvbXBhcmVTdHJpY3RFcSwgcmVnVDAsIHJlZ1QxKTsKKyAgICBlbWl0SnVt
cFNsb3dUb0hvdChicmFuY2hUZXN0MzIoWmVybywgcmV0dXJuVmFsdWVHUFIpLCB0YXJnZXQpOwog
fQogCiB2b2lkIEpJVDo6ZW1pdF9vcF90b19udW1iZXIoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0
cnVjdGlvbikKQEAgLTgxOCw2ICs4ODksMjQgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX25lcShJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT4KICAg
ICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQs
IHJldHVyblZhbHVlR1BSKTsKIH0KIAordm9pZCBKSVQ6OmVtaXRTbG93X29wX2plcShJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9y
JiBpdGVyKQoreworICAgIGxpbmtBbGxTbG93Q2FzZXMoaXRlcik7CisKKyAgICB1bnNpZ25lZCB0
YXJnZXQgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOworICAgIGNhbGxPcGVyYXRp
b24ob3BlcmF0aW9uQ29tcGFyZUVxLCByZWdUMCwgcmVnVDEpOworICAgIGVtaXRKdW1wU2xvd1Rv
SG90KGJyYW5jaFRlc3QzMihOb25aZXJvLCByZXR1cm5WYWx1ZUdQUiksIHRhcmdldCk7Cit9CisK
K3ZvaWQgSklUOjplbWl0U2xvd19vcF9qbmVxKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rp
b24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCit7CisgICAgbGlua0Fs
bFNsb3dDYXNlcyhpdGVyKTsKKworICAgIHVuc2lnbmVkIHRhcmdldCA9IGN1cnJlbnRJbnN0cnVj
dGlvblszXS51Lm9wZXJhbmQ7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Db21wYXJlRXEs
IHJlZ1QwLCByZWdUMSk7CisgICAgZW1pdEp1bXBTbG93VG9Ib3QoYnJhbmNoVGVzdDMyKFplcm8s
IHJldHVyblZhbHVlR1BSKSwgdGFyZ2V0KTsKK30KKwogdm9pZCBKSVQ6OmVtaXRTbG93X29wX2lu
c3RhbmNlb2YoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNl
RW50cnk+OjppdGVyYXRvciYgaXRlcikKIHsKICAgICBsaW5rQWxsU2xvd0Nhc2VzKGl0ZXIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCmluZGV4IDBk
NzUxZWE2ZjExOWYzYTc2OTRmNzQ3ZGE2NjVjZGRlMzA3NDFlMTQuLjQ2ZTUwN2I4ZWQxNjNiZTNk
NmY2MjAzZDA0MzVhNTJiMTJlZDA0M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVE9wY29kZXMzMl82NC5jcHAKQEAgLTQ2OSw4ICs0NjksNiBAQCB2b2lkIEpJVDo6ZW1pdF9v
cF9lcShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogdm9pZCBKSVQ6OmVtaXRTbG93
X29wX2VxKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVu
dHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCiB7CiAgICAgaW50IGRzdCA9IGN1cnJlbnRJbnN0cnVjdGlv
blsxXS51Lm9wZXJhbmQ7Ci0gICAgaW50IG9wMSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9w
ZXJhbmQ7Ci0gICAgaW50IG9wMiA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAK
ICAgICBKdW1wTGlzdCBzdG9yZVJlc3VsdDsKICAgICBKdW1wTGlzdCBnZW5lcmljQ2FzZTsKQEAg
LTQ4OCwxNCArNDg2LDU2IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9lcShJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46CiAgICAgLy8gR2VuZXJp
YyBjYXNlLgogICAgIGdlbmVyaWNDYXNlLmFwcGVuZChnZXRTbG93Q2FzZShpdGVyKSk7IC8vIGRv
dWJsZXMKICAgICBnZW5lcmljQ2FzZS5saW5rKHRoaXMpOwotICAgIGVtaXRMb2FkKG9wMSwgcmVn
VDEsIHJlZ1QwKTsKLSAgICBlbWl0TG9hZChvcDIsIHJlZ1QzLCByZWdUMik7CiAgICAgY2FsbE9w
ZXJhdGlvbihvcGVyYXRpb25Db21wYXJlRXEsIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIEpT
VmFsdWVSZWdzKHJlZ1QzLCByZWdUMikpOwogCiAgICAgc3RvcmVSZXN1bHQubGluayh0aGlzKTsK
ICAgICBlbWl0U3RvcmVCb29sKGRzdCwgcmV0dXJuVmFsdWVHUFIpOwogfQogCit2b2lkIEpJVDo6
ZW1pdF9vcF9qZXEoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKK3sKKyAgICBpbnQg
dGFyZ2V0ID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICBpbnQgc3JjMSA9
IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CisgICAgaW50IHNyYzIgPSBjdXJyZW50
SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOworCisgICAgZW1pdExvYWQyKHNyYzEsIHJlZ1QxLCBy
ZWdUMCwgc3JjMiwgcmVnVDMsIHJlZ1QyKTsKKyAgICBhZGRTbG93Q2FzZShicmFuY2gzMihOb3RF
cXVhbCwgcmVnVDEsIHJlZ1QzKSk7CisgICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoRXF1YWwsIHJl
Z1QxLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykpKTsKKyAgICBhZGRTbG93Q2FzZShi
cmFuY2gzMihCZWxvdywgcmVnVDEsIFRydXN0ZWRJbW0zMihKU1ZhbHVlOjpMb3dlc3RUYWcpKSk7
CisKKyAgICBhZGRKdW1wKGJyYW5jaDMyKEVxdWFsLCByZWdUMCwgcmVnVDIpLCB0YXJnZXQpOwor
fQorCit2b2lkIEpJVDo6Y29tcGlsZU9wRXFKdW1wU2xvdyhWZWN0b3I8U2xvd0Nhc2VFbnRyeT46
Oml0ZXJhdG9yJiBpdGVyLCBDb21waWxlT3BFcVR5cGUgdHlwZSwgaW50IGp1bXBUYXJnZXQpCit7
CisgICAgSnVtcExpc3QgZG9uZTsKKyAgICBKdW1wTGlzdCBnZW5lcmljQ2FzZTsKKworICAgIGdl
bmVyaWNDYXNlLmFwcGVuZChnZXRTbG93Q2FzZShpdGVyKSk7IC8vIHRhZ3Mgbm90IGVxdWFsCisK
KyAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIHRhZ3MgZXF1YWwgYW5kIEpTQ2VsbAorICAgIGdl
bmVyaWNDYXNlLmFwcGVuZChicmFuY2hQdHIoTm90RXF1YWwsIEFkZHJlc3MocmVnVDAsIEpTQ2Vs
bDo6c3RydWN0dXJlSURPZmZzZXQoKSksIFRydXN0ZWRJbW1QdHIobV92bS0+c3RyaW5nU3RydWN0
dXJlLmdldCgpKSkpOworICAgIGdlbmVyaWNDYXNlLmFwcGVuZChicmFuY2hQdHIoTm90RXF1YWws
IEFkZHJlc3MocmVnVDIsIEpTQ2VsbDo6c3RydWN0dXJlSURPZmZzZXQoKSksIFRydXN0ZWRJbW1Q
dHIobV92bS0+c3RyaW5nU3RydWN0dXJlLmdldCgpKSkpOworCisgICAgLy8gU3RyaW5nIGNhc2Uu
CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Db21wYXJlU3RyaW5nRXEsIHJlZ1QwLCByZWdU
Mik7CisgICAgZW1pdEp1bXBTbG93VG9Ib3QoYnJhbmNoVGVzdDMyKHR5cGUgPT0gQ29tcGlsZU9w
RXFUeXBlOjpFcSA/IE5vblplcm8gOiBaZXJvLCByZXR1cm5WYWx1ZUdQUiksIGp1bXBUYXJnZXQp
OworICAgIGRvbmUuYXBwZW5kKGp1bXAoKSk7CisKKyAgICAvLyBHZW5lcmljIGNhc2UuCisgICAg
Z2VuZXJpY0Nhc2UuYXBwZW5kKGdldFNsb3dDYXNlKGl0ZXIpKTsgLy8gZG91YmxlcworICAgIGdl
bmVyaWNDYXNlLmxpbmsodGhpcyk7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Db21wYXJl
RXEsIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMikp
OworICAgIGVtaXRKdW1wU2xvd1RvSG90KGJyYW5jaFRlc3QzMih0eXBlID09IENvbXBpbGVPcEVx
VHlwZTo6RXEgPyBOb25aZXJvIDogWmVybywgcmV0dXJuVmFsdWVHUFIpLCBqdW1wVGFyZ2V0KTsK
KworICAgIGRvbmUubGluayh0aGlzKTsKK30KKwordm9pZCBKSVQ6OmVtaXRTbG93X29wX2plcShJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0
ZXJhdG9yJiBpdGVyKQoreworICAgIGNvbXBpbGVPcEVxSnVtcFNsb3coaXRlciwgQ29tcGlsZU9w
RXFUeXBlOjpFcSwgY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCk7Cit9CisKIHZvaWQg
SklUOjplbWl0X29wX25lcShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewogICAg
IGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwpAQCAtNTM5LDYgKzU3
OSwyNSBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbmVxKEluc3RydWN0aW9uKiBjdXJyZW50SW5z
dHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5PgogICAgIGVtaXRTdG9yZUJvb2woZHN0LCBy
ZXR1cm5WYWx1ZUdQUik7CiB9CiAKK3ZvaWQgSklUOjplbWl0X29wX2puZXEoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKK3sKKyAgICBpbnQgdGFyZ2V0ID0gY3VycmVudEluc3RydWN0
aW9uWzNdLnUub3BlcmFuZDsKKyAgICBpbnQgc3JjMSA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51
Lm9wZXJhbmQ7CisgICAgaW50IHNyYzIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5k
OworCisgICAgZW1pdExvYWQyKHNyYzEsIHJlZ1QxLCByZWdUMCwgc3JjMiwgcmVnVDMsIHJlZ1Qy
KTsKKyAgICBhZGRTbG93Q2FzZShicmFuY2gzMihOb3RFcXVhbCwgcmVnVDEsIHJlZ1QzKSk7Cisg
ICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoRXF1YWwsIHJlZ1QxLCBUcnVzdGVkSW1tMzIoSlNWYWx1
ZTo6Q2VsbFRhZykpKTsKKyAgICBhZGRTbG93Q2FzZShicmFuY2gzMihCZWxvdywgcmVnVDEsIFRy
dXN0ZWRJbW0zMihKU1ZhbHVlOjpMb3dlc3RUYWcpKSk7CisKKyAgICBhZGRKdW1wKGJyYW5jaDMy
KE5vdEVxdWFsLCByZWdUMCwgcmVnVDIpLCB0YXJnZXQpOworfQorCit2b2lkIEpJVDo6ZW1pdFNs
b3dfb3Bfam5lcShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nh
c2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQoreworICAgIGNvbXBpbGVPcEVxSnVtcFNsb3coaXRl
ciwgQ29tcGlsZU9wRXFUeXBlOjpORXEsIGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQp
OworfQorCiB2b2lkIEpJVDo6Y29tcGlsZU9wU3RyaWN0RXEoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJ
bnN0cnVjdGlvbiwgQ29tcGlsZU9wU3RyaWN0RXFUeXBlIHR5cGUpCiB7CiAgICAgaW50IGRzdCA9
IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJhbmQ7CkBAIC01NTksNyArNjE4LDcgQEAgdm9p
ZCBKSVQ6OmNvbXBpbGVPcFN0cmljdEVxKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24s
IENvbXBpbGVPcFN0cmljdEVxVHkKICAgICBmaXJzdElzT2JqZWN0LmxpbmsodGhpcyk7CiAKICAg
ICAvLyBTaW1wbHkgY29tcGFyZSB0aGUgcGF5bG9hZHMuCi0gICAgaWYgKHR5cGUgPT0gT3BTdHJp
Y3RFcSkKKyAgICBpZiAodHlwZSA9PSBDb21waWxlT3BTdHJpY3RFcVR5cGU6OlN0cmljdEVxKQog
ICAgICAgICBjb21wYXJlMzIoRXF1YWwsIHJlZ1QwLCByZWdUMiwgcmVnVDApOwogICAgIGVsc2UK
ICAgICAgICAgY29tcGFyZTMyKE5vdEVxdWFsLCByZWdUMCwgcmVnVDIsIHJlZ1QwKTsKQEAgLTU2
OSwxMiArNjI4LDY2IEBAIHZvaWQgSklUOjpjb21waWxlT3BTdHJpY3RFcShJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uLCBDb21waWxlT3BTdHJpY3RFcVR5CiAKIHZvaWQgSklUOjplbWl0
X29wX3N0cmljdGVxKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7Ci0gICAgY29t
cGlsZU9wU3RyaWN0RXEoY3VycmVudEluc3RydWN0aW9uLCBPcFN0cmljdEVxKTsKKyAgICBjb21w
aWxlT3BTdHJpY3RFcShjdXJyZW50SW5zdHJ1Y3Rpb24sIENvbXBpbGVPcFN0cmljdEVxVHlwZTo6
U3RyaWN0RXEpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9uc3RyaWN0ZXEoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKLSAgICBjb21waWxlT3BTdHJpY3RFcShjdXJyZW50SW5z
dHJ1Y3Rpb24sIE9wTlN0cmljdEVxKTsKKyAgICBjb21waWxlT3BTdHJpY3RFcShjdXJyZW50SW5z
dHJ1Y3Rpb24sIENvbXBpbGVPcFN0cmljdEVxVHlwZTo6TlN0cmljdEVxKTsKK30KKwordm9pZCBK
SVQ6OmNvbXBpbGVPcFN0cmljdEVxSnVtcChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
LCBDb21waWxlT3BTdHJpY3RFcVR5cGUgdHlwZSkKK3sKKyAgICBpbnQgdGFyZ2V0ID0gY3VycmVu
dEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKKyAgICBpbnQgc3JjMSA9IGN1cnJlbnRJbnN0cnVj
dGlvblsxXS51Lm9wZXJhbmQ7CisgICAgaW50IHNyYzIgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0u
dS5vcGVyYW5kOworCisgICAgZW1pdExvYWQyKHNyYzEsIHJlZ1QxLCByZWdUMCwgc3JjMiwgcmVn
VDMsIHJlZ1QyKTsKKworICAgIC8vIEJhaWwgaWYgdGhlIHRhZ3MgZGlmZmVyLCBvciBhcmUgZG91
YmxlLgorICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCByZWdUMSwgcmVnVDMpKTsK
KyAgICBhZGRTbG93Q2FzZShicmFuY2gzMihCZWxvdywgcmVnVDEsIFRydXN0ZWRJbW0zMihKU1Zh
bHVlOjpMb3dlc3RUYWcpKSk7CisKKyAgICAvLyBKdW1wIHRvIGEgc2xvdyBjYXNlIGlmIGJvdGgg
YXJlIHN0cmluZ3Mgb3Igc3ltYm9scyAobm9uIG9iamVjdCkuCisgICAgSnVtcCBub3RDZWxsID0g
YnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QxLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZykp
OworICAgIEp1bXAgZmlyc3RJc09iamVjdCA9IGVtaXRKdW1wSWZDZWxsT2JqZWN0KHJlZ1QwKTsK
KyAgICBhZGRTbG93Q2FzZShlbWl0SnVtcElmQ2VsbE5vdE9iamVjdChyZWdUMikpOworICAgIG5v
dENlbGwubGluayh0aGlzKTsKKyAgICBmaXJzdElzT2JqZWN0LmxpbmsodGhpcyk7CisKKyAgICAv
LyBTaW1wbHkgY29tcGFyZSB0aGUgcGF5bG9hZHMuCisgICAgaWYgKHR5cGUgPT0gQ29tcGlsZU9w
U3RyaWN0RXFUeXBlOjpTdHJpY3RFcSkKKyAgICAgICAgYWRkSnVtcChicmFuY2gzMihFcXVhbCwg
cmVnVDAsIHJlZ1QyKSwgdGFyZ2V0KTsKKyAgICBlbHNlCisgICAgICAgIGFkZEp1bXAoYnJhbmNo
MzIoTm90RXF1YWwsIHJlZ1QwLCByZWdUMiksIHRhcmdldCk7Cit9CisKK3ZvaWQgSklUOjplbWl0
X29wX2pzdHJpY3RlcShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQoreworICAgIGNv
bXBpbGVPcFN0cmljdEVxSnVtcChjdXJyZW50SW5zdHJ1Y3Rpb24sIENvbXBpbGVPcFN0cmljdEVx
VHlwZTo6U3RyaWN0RXEpOworfQorCit2b2lkIEpJVDo6ZW1pdF9vcF9qbnN0cmljdGVxKEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCit7CisgICAgY29tcGlsZU9wU3RyaWN0RXFKdW1w
KGN1cnJlbnRJbnN0cnVjdGlvbiwgQ29tcGlsZU9wU3RyaWN0RXFUeXBlOjpOU3RyaWN0RXEpOwor
fQorCit2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfanN0cmljdGVxKEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCit7Cisg
ICAgbGlua0FsbFNsb3dDYXNlcyhpdGVyKTsKKworICAgIHVuc2lnbmVkIHRhcmdldCA9IGN1cnJl
bnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25D
b21wYXJlU3RyaWN0RXEsIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIEpTVmFsdWVSZWdzKHJl
Z1QzLCByZWdUMikpOworICAgIGVtaXRKdW1wU2xvd1RvSG90KGJyYW5jaFRlc3QzMihOb25aZXJv
LCByZXR1cm5WYWx1ZUdQUiksIHRhcmdldCk7Cit9CisKK3ZvaWQgSklUOjplbWl0U2xvd19vcF9q
bnN0cmljdGVxKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2Fz
ZUVudHJ5Pjo6aXRlcmF0b3ImIGl0ZXIpCit7CisgICAgbGlua0FsbFNsb3dDYXNlcyhpdGVyKTsK
KworICAgIHVuc2lnbmVkIHRhcmdldCA9IGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7
CisgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25Db21wYXJlU3RyaWN0RXEsIEpTVmFsdWVSZWdz
KHJlZ1QxLCByZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMikpOworICAgIGVtaXRKdW1w
U2xvd1RvSG90KGJyYW5jaFRlc3QzMihaZXJvLCByZXR1cm5WYWx1ZUdQUiksIHRhcmdldCk7CiB9
CiAKIHZvaWQgSklUOjplbWl0X29wX2VxX251bGwoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4
IGU0NmEzZDc1ZDQ3NWZlNDBlYTE2YmQyYTg2Yzk2NjRiZjdmOWQ5MTcuLmUwMDcyZmE5MTdmNzE1
OWY5ODcxYTA1Yjk2MjA5MjE0NTU3ZGUxM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGVyYXRpb25zLmNwcApAQCAtMTE3MCw2ICsxMTcwLDE3IEBAIHNpemVfdCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVTdHJpbmdFcShFeGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCog
bGVmdCwgSlNDCiAjZW5kaWYKIH0KIAorc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29t
cGFyZVN0cmljdEVxKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMSwg
RW5jb2RlZEpTVmFsdWUgZW5jb2RlZE9wMikKK3sKKyAgICBWTSogdm0gPSAmZXhlYy0+dm0oKTsK
KyAgICBOYXRpdmVDYWxsRnJhbWVUcmFjZXIgdHJhY2VyKHZtLCBleGVjKTsKKworICAgIEpTVmFs
dWUgc3JjMSA9IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkT3AxKTsKKyAgICBKU1ZhbHVlIHNyYzIg
PSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZE9wMik7CisKKyAgICByZXR1cm4gSlNWYWx1ZTo6c3Ry
aWN0RXF1YWwoZXhlYywgc3JjMSwgc3JjMik7Cit9CisKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uTmV3QXJyYXlXaXRoUHJvZmlsZShFeGVjU3RhdGUqIGV4ZWMsIEFycmF5
QWxsb2NhdGlvblByb2ZpbGUqIHByb2ZpbGUsIGNvbnN0IEpTVmFsdWUqIHZhbHVlcywgaW50IHNp
emUpCiB7CiAgICAgVk0qIHZtID0gJmV4ZWMtPnZtKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3BlcmF0aW9ucy5oCmluZGV4IDRhOTFhYjg2NWY2MjM4OGY1ZjQyNGNkMGM1N2RjNDQ2
ZWYwY2M5MzMuLmQ4MTkyNDFiMzdkNWQ4OTcwOWM3NGRlYWE3ZDFlMzA4ODJmNmNkMDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCkBAIC0yNjAsNyArMjYwLDcg
QEAgdHlwZWRlZiBzaXplX3QgKEpJVF9PUEVSQVRJT04gKlNfSklUT3BlcmF0aW9uX0VPSnNzKShF
eGVjU3RhdGUqLCBKU09iamVjdCosIEpTU3QKIHR5cGVkZWYgc2l6ZV90IChKSVRfT1BFUkFUSU9O
ICpTX0pJVE9wZXJhdGlvbl9FUmVvSikoRXhlY1N0YXRlKiwgUmVnRXhwT2JqZWN0KiwgRW5jb2Rl
ZEpTVmFsdWUpOwogdHlwZWRlZiBzaXplX3QgKEpJVF9PUEVSQVRJT04gKlNfSklUT3BlcmF0aW9u
X0VSZW9Kc3MpKEV4ZWNTdGF0ZSosIFJlZ0V4cE9iamVjdCosIEpTU3RyaW5nKik7CiB0eXBlZGVm
IHNpemVfdCAoSklUX09QRVJBVElPTiAqU19KSVRPcGVyYXRpb25fSikoRW5jb2RlZEpTVmFsdWUp
OwotdHlwZWRlZiBTbG93UGF0aFJldHVyblR5cGUgKEpJVF9PUEVSQVRJT04gKlNwcnRfSklUT3Bl
cmF0aW9uX0VaKShFeGVjU3RhdGUqLCBpbnQzMl90KTsKK3R5cGVkZWYgU2xvd1BhdGhSZXR1cm5U
eXBlIChKSVRfT1BFUkFUSU9OICpTcHJ0X0pJVE9wZXJhdGlvbl9FVWkpKEV4ZWNTdGF0ZSosIHVp
bnQzMl90KTsKIHR5cGVkZWYgdm9pZCAoSklUX09QRVJBVElPTiAqVl9KSVRPcGVyYXRpb24pKCk7
CiB0eXBlZGVmIHZvaWQgKEpJVF9PUEVSQVRJT04gKlZfSklUT3BlcmF0aW9uX0UpKEV4ZWNTdGF0
ZSopOwogdHlwZWRlZiB2b2lkIChKSVRfT1BFUkFUSU9OICpWX0pJVE9wZXJhdGlvbl9FQykoRXhl
Y1N0YXRlKiwgSlNDZWxsKik7CkBAIC0zOTYsNiArMzk2LDcgQEAgc2l6ZV90IEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uQ29tcGFyZUxlc3NFcShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5j
b2RlZEoKIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVHcmVhdGVyKEV4ZWNT
dGF0ZSosIEVuY29kZWRKU1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogc2l6
ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29tcGFyZUdyZWF0ZXJFcShFeGVjU3RhdGUqLCBF
bmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHNpemVfdCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvbkNvbXBhcmVFcShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwg
RW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKK3NpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbkNvbXBhcmVTdHJpY3RFcShFeGVjU3RhdGUqLCBFbmNvZGVkSlNWYWx1ZSwgRW5jb2RlZEpT
VmFsdWUpIFdURl9JTlRFUk5BTDsKICNpZiBVU0UoSlNWQUxVRTY0KQogRW5jb2RlZEpTVmFsdWUg
SklUX09QRVJBVElPTiBvcGVyYXRpb25Db21wYXJlU3RyaW5nRXEoRXhlY1N0YXRlKiwgSlNDZWxs
KiBsZWZ0LCBKU0NlbGwqIHJpZ2h0KSBXVEZfSU5URVJOQUw7CiAjZWxzZQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKaW5kZXggOGI2YjYxMDAwZTZl
ZmJiNDA3YWQwMmQ3NzEyZjFhZTllZmM1YmYxMy4uNTg0ODFhNTUzYjllZGEyZjQyMWM2Mjc2NTY4
OTQ4NmNkYjAyYzE3MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xM
SW50U2xvd1BhdGhzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRT
bG93UGF0aHMuY3BwCkBAIC0xMTQ5LDYgKzExNDksMzAgQEAgTExJTlRfU0xPV19QQVRIX0RFQ0wo
c2xvd19wYXRoX2puZ3JlYXRlcmVxKQogICAgIExMSU5UX0JSQU5DSChvcF9qbmdyZWF0ZXJlcSwg
IWpzTGVzc0VxPGZhbHNlPihleGVjLCBMTElOVF9PUF9DKDIpLmpzVmFsdWUoKSwgTExJTlRfT1Bf
QygxKS5qc1ZhbHVlKCkpKTsKIH0KIAorTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2pl
cSkKK3sKKyAgICBMTElOVF9CRUdJTigpOworICAgIExMSU5UX0JSQU5DSChvcF9qZXEsIEpTVmFs
dWU6OmVxdWFsKGV4ZWMsIExMSU5UX09QX0MoMSkuanNWYWx1ZSgpLCBMTElOVF9PUF9DKDIpLmpz
VmFsdWUoKSkpOworfQorCitMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfam5lcSkKK3sK
KyAgICBMTElOVF9CRUdJTigpOworICAgIExMSU5UX0JSQU5DSChvcF9qbmVxLCAhSlNWYWx1ZTo6
ZXF1YWwoZXhlYywgTExJTlRfT1BfQygxKS5qc1ZhbHVlKCksIExMSU5UX09QX0MoMikuanNWYWx1
ZSgpKSk7Cit9CisKK0xMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9qc3RyaWN0ZXEpCit7
CisgICAgTExJTlRfQkVHSU4oKTsKKyAgICBMTElOVF9CUkFOQ0gob3BfanN0cmljdGVxLCBKU1Zh
bHVlOjpzdHJpY3RFcXVhbChleGVjLCBMTElOVF9PUF9DKDEpLmpzVmFsdWUoKSwgTExJTlRfT1Bf
QygyKS5qc1ZhbHVlKCkpKTsKK30KKworTExJTlRfU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2pu
c3RyaWN0ZXEpCit7CisgICAgTExJTlRfQkVHSU4oKTsKKyAgICBMTElOVF9CUkFOQ0gob3Bfam5z
dHJpY3RlcSwgIUpTVmFsdWU6OnN0cmljdEVxdWFsKGV4ZWMsIExMSU5UX09QX0MoMSkuanNWYWx1
ZSgpLCBMTElOVF9PUF9DKDIpLmpzVmFsdWUoKSkpOworfQorCiBMTElOVF9TTE9XX1BBVEhfREVD
TChzbG93X3BhdGhfc3dpdGNoX2ltbSkKIHsKICAgICBMTElOVF9CRUdJTigpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93UGF0aHMuaAppbmRleCA2ZTUwNTFiZTFlY2Rm
NDkwOTM0YTI3ZTg5ZjA4MzlmYTM3ZDIzZjYyLi5kMjQxZjcxZDlhYmQ5NDQ2ODg5ZWVkOGU2MGVk
MTAwYjUxZGY2N2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJ
bnRTbG93UGF0aHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRTbG93
UGF0aHMuaApAQCAtOTIsNiArOTIsMTAgQEAgTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNs
b3dfcGF0aF9qbGVzc2VxKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhf
am5sZXNzZXEpOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9qZ3JlYXRl
cmVxKTsKIExMSU5UX1NMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfam5ncmVhdGVyZXEp
OworTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9qZXEpOworTExJTlRfU0xP
V19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9qbmVxKTsKK0xMSU5UX1NMT1dfUEFUSF9ISURE
RU5fREVDTChzbG93X3BhdGhfanN0cmljdGVxKTsKK0xMSU5UX1NMT1dfUEFUSF9ISURERU5fREVD
TChzbG93X3BhdGhfam5zdHJpY3RlcSk7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xv
d19wYXRoX3N3aXRjaF9pbW0pOwogTExJTlRfU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0
aF9zd2l0Y2hfY2hhcik7CiBMTElOVF9TTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3N3
aXRjaF9zdHJpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIuYXNtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xl
dmVsSW50ZXJwcmV0ZXIuYXNtCmluZGV4IDIxYzc1ZDQyNmE5OTY2MzhlZTg4NjYzNGQwZDYyMTQx
NGY4MDJlOGIuLmU4MWE0OTJhMjEyN2U1YzRjYTlkOTkzNmUzZTYyZDcyNDc3M2ZiNWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFz
bQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5h
c20KQEAgLTQwMCw3ICs0MDAsNyBAQCBjb25zdCBVaW50MzJBcnJheVR5cGUgPSBjb25zdGV4cHIg
VWludDMyQXJyYXlUeXBlCiBjb25zdCBGbG9hdDMyQXJyYXlUeXBlID0gY29uc3RleHByIEZsb2F0
MzJBcnJheVR5cGUKIGNvbnN0IEZsb2F0NjRBcnJheVR5cGUgPSBjb25zdGV4cHIgRmxvYXQ2NEFy
cmF5VHlwZQogCi1jb25zdCBGaXJzdEFycmF5VHlwZSA9IGNvbnN0ZXhwciBGaXJzdFR5cGVkQXJy
YXlUeXBlCitjb25zdCBGaXJzdFR5cGVkQXJyYXlUeXBlID0gY29uc3RleHByIEZpcnN0VHlwZWRB
cnJheVR5cGUKIGNvbnN0IE51bWJlck9mVHlwZWRBcnJheVR5cGVzRXhjbHVkaW5nRGF0YVZpZXcg
PSBjb25zdGV4cHIgTnVtYmVyT2ZUeXBlZEFycmF5VHlwZXNFeGNsdWRpbmdEYXRhVmlldwogY29u
c3QgVHlwZWRBcnJheVBvaXNvbkluZGV4TWFzayA9IGNvbnN0ZXhwciBUeXBlZEFycmF5UG9pc29u
SW5kZXhNYXNrCiAKQEAgLTE0NTUsNiArMTQ1NSwyMCBAQCBfbGxpbnRfb3BfZ3JlYXRlcmVxOgog
ICAgIGRpc3BhdGNoKGNvbnN0ZXhwciBvcF9ncmVhdGVyZXFfbGVuZ3RoKQogCiAKK19sbGludF9v
cF9lcToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgZXF1YWxpdHlDb21wYXJpc29uKAorICAg
ICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHJlc3VsdCkgY2llcSBsZWZ0LCByaWdodCwgcmVzdWx0
IGVuZCwKKyAgICAgICAgX3Nsb3dfcGF0aF9lcSkKKworCitfbGxpbnRfb3BfbmVxOgorICAgIHRy
YWNlRXhlY3V0aW9uKCkKKyAgICBlcXVhbGl0eUNvbXBhcmlzb24oCisgICAgICAgIG1hY3JvIChs
ZWZ0LCByaWdodCwgcmVzdWx0KSBjaW5lcSBsZWZ0LCByaWdodCwgcmVzdWx0IGVuZCwKKyAgICAg
ICAgX3Nsb3dfcGF0aF9uZXEpCisKKwogX2xsaW50X29wX2JlbG93OgogICAgIHRyYWNlRXhlY3V0
aW9uKCkKICAgICBjb21wYXJlVW5zaWduZWQoCkBAIC0xNTc4LDcgKzE1OTIsNyBAQCBfbGxpbnRf
b3BfamZhbHNlOgogCiBfbGxpbnRfb3Bfamxlc3M6CiAgICAgdHJhY2VFeGVjdXRpb24oKQotICAg
IGNvbXBhcmUoCisgICAgY29tcGFyZUp1bXAoCiAgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwg
dGFyZ2V0KSBiaWx0IGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAogICAgICAgICBtYWNybyAobGVm
dCwgcmlnaHQsIHRhcmdldCkgYmRsdCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKICAgICAgICAg
X2xsaW50X3Nsb3dfcGF0aF9qbGVzcykKQEAgLTE1ODYsNyArMTYwMCw3IEBAIF9sbGludF9vcF9q
bGVzczoKIAogX2xsaW50X29wX2pubGVzczoKICAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY29t
cGFyZSgKKyAgICBjb21wYXJlSnVtcCgKICAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJn
ZXQpIGJpZ3RlcSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKICAgICAgICAgbWFjcm8gKGxlZnQs
IHJpZ2h0LCB0YXJnZXQpIGJkZ3RlcXVuIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAogICAgICAg
ICBfbGxpbnRfc2xvd19wYXRoX2pubGVzcykKQEAgLTE1OTQsNyArMTYwOCw3IEBAIF9sbGludF9v
cF9qbmxlc3M6CiAKIF9sbGludF9vcF9qZ3JlYXRlcjoKICAgICB0cmFjZUV4ZWN1dGlvbigpCi0g
ICAgY29tcGFyZSgKKyAgICBjb21wYXJlSnVtcCgKICAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0
LCB0YXJnZXQpIGJpZ3QgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCiAgICAgICAgIG1hY3JvIChs
ZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGd0IGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAogICAgICAg
ICBfbGxpbnRfc2xvd19wYXRoX2pncmVhdGVyKQpAQCAtMTYwMiw3ICsxNjE2LDcgQEAgX2xsaW50
X29wX2pncmVhdGVyOgogCiBfbGxpbnRfb3Bfam5ncmVhdGVyOgogICAgIHRyYWNlRXhlY3V0aW9u
KCkKLSAgICBjb21wYXJlKAorICAgIGNvbXBhcmVKdW1wKAogICAgICAgICBtYWNybyAobGVmdCwg
cmlnaHQsIHRhcmdldCkgYmlsdGVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAogICAgICAgICBt
YWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmRsdGVxdW4gbGVmdCwgcmlnaHQsIHRhcmdldCBl
bmQsCiAgICAgICAgIF9sbGludF9zbG93X3BhdGhfam5ncmVhdGVyKQpAQCAtMTYxMCw3ICsxNjI0
LDcgQEAgX2xsaW50X29wX2puZ3JlYXRlcjoKIAogX2xsaW50X29wX2psZXNzZXE6CiAgICAgdHJh
Y2VFeGVjdXRpb24oKQotICAgIGNvbXBhcmUoCisgICAgY29tcGFyZUp1bXAoCiAgICAgICAgIG1h
Y3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWx0ZXEgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQs
CiAgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGx0ZXEgbGVmdCwgcmlnaHQs
IHRhcmdldCBlbmQsCiAgICAgICAgIF9sbGludF9zbG93X3BhdGhfamxlc3NlcSkKQEAgLTE2MTgs
NyArMTYzMiw3IEBAIF9sbGludF9vcF9qbGVzc2VxOgogCiBfbGxpbnRfb3Bfam5sZXNzZXE6CiAg
ICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNvbXBhcmUoCisgICAgY29tcGFyZUp1bXAoCiAgICAg
ICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWd0IGxlZnQsIHJpZ2h0LCB0YXJnZXQg
ZW5kLAogICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmRndHVuIGxlZnQsIHJp
Z2h0LCB0YXJnZXQgZW5kLAogICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2pubGVzc2VxKQpAQCAt
MTYyNiw3ICsxNjQwLDcgQEAgX2xsaW50X29wX2pubGVzc2VxOgogCiBfbGxpbnRfb3BfamdyZWF0
ZXJlcToKICAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY29tcGFyZSgKKyAgICBjb21wYXJlSnVt
cCgKICAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpZ3RlcSBsZWZ0LCByaWdo
dCwgdGFyZ2V0IGVuZCwKICAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkZ3Rl
cSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKICAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qZ3Jl
YXRlcmVxKQpAQCAtMTYzNCwxMiArMTY0OCwyNiBAQCBfbGxpbnRfb3BfamdyZWF0ZXJlcToKIAog
X2xsaW50X29wX2puZ3JlYXRlcmVxOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjb21wYXJl
KAorICAgIGNvbXBhcmVKdW1wKAogICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkg
YmlsdCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKICAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0
LCB0YXJnZXQpIGJkbHR1biBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKICAgICAgICAgX2xsaW50
X3Nsb3dfcGF0aF9qbmdyZWF0ZXJlcSkKIAogCitfbGxpbnRfb3BfamVxOgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBlcXVhbGl0eUp1bXAoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwg
dGFyZ2V0KSBiaWVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAorICAgICAgICBfbGxpbnRfc2xv
d19wYXRoX2plcSkKKworCitfbGxpbnRfb3Bfam5lcToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisg
ICAgZXF1YWxpdHlKdW1wKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmlu
ZXEgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfam5l
cSkKKworCiBfbGxpbnRfb3BfamJlbG93OgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBjb21w
YXJlVW5zaWduZWRKdW1wKApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIzMl82NC5hc20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQppbmRleCAzMzYxY2I5NjllNTVjNzQ5NzJl
NWZiY2U4Mjk0MzM0OWZiZGI0YmJlLi44Zjk5ZjVhZTFjNGE2YWQ2OTQ3ZDQyYTMzMTYyNDI0NWU2
ZjExZDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlcjMyXzY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93
TGV2ZWxJbnRlcnByZXRlcjMyXzY0LmFzbQpAQCAtNzU1LDggKzc1NSw3IEBAIF9sbGludF9vcF9u
b3Q6CiAgICAgZGlzcGF0Y2goY29uc3RleHByIG9wX25vdF9sZW5ndGgpCiAKIAotX2xsaW50X29w
X2VxOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKK21hY3JvIGVxdWFsaXR5Q29tcGFyaXNvbihpbnRl
Z2VyQ29tcGFyaXNvbiwgc2xvd1BhdGgpCiAgICAgbG9hZGkgMTJbUENdLCB0MgogICAgIGxvYWRp
IDhbUENdLCB0MAogICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQzLCB0MSkKQEAgLTc2
NSwxNCArNzY0LDM1IEBAIF9sbGludF9vcF9lcToKICAgICBiaWVxIHQyLCBDZWxsVGFnLCAub3BF
cVNsb3cKICAgICBiaWIgdDIsIExvd2VzdFRhZywgLm9wRXFTbG93CiAgICAgbG9hZGkgNFtQQ10s
IHQyCi0gICAgY2llcSB0MCwgdDEsIHQwCisgICAgaW50ZWdlckNvbXBhcmlzb24odDAsIHQxLCB0
MCkKICAgICBzdG9yZWkgQm9vbGVhblRhZywgVGFnT2Zmc2V0W2NmciwgdDIsIDhdCiAgICAgc3Rv
cmVpIHQwLCBQYXlsb2FkT2Zmc2V0W2NmciwgdDIsIDhdCiAgICAgZGlzcGF0Y2goY29uc3RleHBy
IG9wX2VxX2xlbmd0aCkKIAogLm9wRXFTbG93OgotICAgIGNhbGxTbG93UGF0aChfc2xvd19wYXRo
X2VxKQorICAgIGNhbGxTbG93UGF0aChzbG93UGF0aCkKICAgICBkaXNwYXRjaChjb25zdGV4cHIg
b3BfZXFfbGVuZ3RoKQorZW5kCisKKworbWFjcm8gZXF1YWxpdHlKdW1wKGludGVnZXJDb21wYXJp
c29uLCBzbG93UGF0aCkKKyAgICBsb2FkaSA4W1BDXSwgdDIKKyAgICBsb2FkaSA0W1BDXSwgdDAK
KyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MywgdDEpCisgICAgbG9hZENvbnN0YW50
T3JWYXJpYWJsZTJSZWcodDAsIHQyLCB0MCkKKyAgICBiaW5lcSB0MiwgdDMsIC5zbG93CisgICAg
YmllcSB0MiwgQ2VsbFRhZywgLnNsb3cKKyAgICBiaWIgdDIsIExvd2VzdFRhZywgLnNsb3cKKyAg
ICBpbnRlZ2VyQ29tcGFyaXNvbih0MCwgdDEsIC5qdW1wVGFyZ2V0KQorICAgIGRpc3BhdGNoKGNv
bnN0ZXhwciBvcF9qZXFfbGVuZ3RoKQorCisuanVtcFRhcmdldDoKKyAgICBkaXNwYXRjaEJyYW5j
aCgxMltQQ10pCisKKy5zbG93OgorICAgIGNhbGxTbG93UGF0aChzbG93UGF0aCkKKyAgICBkaXNw
YXRjaCgwKQorZW5kCiAKIAogX2xsaW50X29wX2VxX251bGw6CkBAIC04MDIsMjYgKzgyMiw2IEBA
IF9sbGludF9vcF9lcV9udWxsOgogICAgIGRpc3BhdGNoKGNvbnN0ZXhwciBvcF9lcV9udWxsX2xl
bmd0aCkKIAogCi1fbGxpbnRfb3BfbmVxOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBsb2Fk
aSAxMltQQ10sIHQyCi0gICAgbG9hZGkgOFtQQ10sIHQwCi0gICAgbG9hZENvbnN0YW50T3JWYXJp
YWJsZSh0MiwgdDMsIHQxKQotICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUyUmVnKHQwLCB0Miwg
dDApCi0gICAgYmluZXEgdDIsIHQzLCAub3BOZXFTbG93Ci0gICAgYmllcSB0MiwgQ2VsbFRhZywg
Lm9wTmVxU2xvdwotICAgIGJpYiB0MiwgTG93ZXN0VGFnLCAub3BOZXFTbG93Ci0gICAgbG9hZGkg
NFtQQ10sIHQyCi0gICAgY2luZXEgdDAsIHQxLCB0MAotICAgIHN0b3JlaSBCb29sZWFuVGFnLCBU
YWdPZmZzZXRbY2ZyLCB0MiwgOF0KLSAgICBzdG9yZWkgdDAsIFBheWxvYWRPZmZzZXRbY2ZyLCB0
MiwgOF0KLSAgICBkaXNwYXRjaChjb25zdGV4cHIgb3BfbmVxX2xlbmd0aCkKLQotLm9wTmVxU2xv
dzoKLSAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF9uZXEpCi0gICAgZGlzcGF0Y2goY29uc3Rl
eHByIG9wX25lcV9sZW5ndGgpCi0gICAgCi0KIF9sbGludF9vcF9uZXFfbnVsbDoKICAgICB0cmFj
ZUV4ZWN1dGlvbigpCiAgICAgbG9hZGkgOFtQQ10sIHQwCkBAIC04NzEsNiArODcxLDMwIEBAIG1h
Y3JvIHN0cmljdEVxKGVxdWFsaXR5T3BlcmF0aW9uLCBzbG93UGF0aCkKICAgICBkaXNwYXRjaCg0
KQogZW5kCiAKKworbWFjcm8gc3RyaWN0RXF1YWxpdHlKdW1wKGVxdWFsaXR5T3BlcmF0aW9uLCBz
bG93UGF0aCkKKyAgICBsb2FkaSA4W1BDXSwgdDIKKyAgICBsb2FkaSA0W1BDXSwgdDAKKyAgICBs
b2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MywgdDEpCisgICAgbG9hZENvbnN0YW50T3JWYXJp
YWJsZTJSZWcodDAsIHQyLCB0MCkKKyAgICBiaW5lcSB0MiwgdDMsIC5zbG93CisgICAgYmliIHQy
LCBMb3dlc3RUYWcsIC5zbG93CisgICAgYmluZXEgdDIsIENlbGxUYWcsIC5ub3RTdHJpbmdPclN5
bWJvbAorICAgIGJiYWVxIEpTQ2VsbDo6bV90eXBlW3QwXSwgT2JqZWN0VHlwZSwgLm5vdFN0cmlu
Z09yU3ltYm9sCisgICAgYmJiIEpTQ2VsbDo6bV90eXBlW3QxXSwgT2JqZWN0VHlwZSwgLnNsb3cK
Ky5ub3RTdHJpbmdPclN5bWJvbDoKKyAgICBlcXVhbGl0eU9wZXJhdGlvbih0MCwgdDEsIC5qdW1w
VGFyZ2V0KQorICAgIGRpc3BhdGNoKGNvbnN0ZXhwciBvcF9qc3RyaWN0ZXFfbGVuZ3RoKQorCisu
anVtcFRhcmdldDoKKyAgICBkaXNwYXRjaEJyYW5jaCgxMltQQ10pCisKKy5zbG93OgorICAgIGNh
bGxTbG93UGF0aChzbG93UGF0aCkKKyAgICBkaXNwYXRjaCgwKQorZW5kCisKKwogX2xsaW50X29w
X3N0cmljdGVxOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBzdHJpY3RFcShtYWNybyAobGVm
dCwgcmlnaHQsIHJlc3VsdCkgY2llcSBsZWZ0LCByaWdodCwgcmVzdWx0IGVuZCwgX3Nsb3dfcGF0
aF9zdHJpY3RlcSkKQEAgLTg4MSw2ICs5MDUsMjAgQEAgX2xsaW50X29wX25zdHJpY3RlcToKICAg
ICBzdHJpY3RFcShtYWNybyAobGVmdCwgcmlnaHQsIHJlc3VsdCkgY2luZXEgbGVmdCwgcmlnaHQs
IHJlc3VsdCBlbmQsIF9zbG93X3BhdGhfbnN0cmljdGVxKQogCiAKK19sbGludF9vcF9qc3RyaWN0
ZXE6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIHN0cmljdEVxdWFsaXR5SnVtcCgKKyAgICAg
ICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpZXEgbGVmdCwgcmlnaHQsIHRhcmdldCBl
bmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfanN0cmljdGVxKQorCisKK19sbGludF9vcF9q
bnN0cmljdGVxOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBzdHJpY3RFcXVhbGl0eUp1bXAo
CisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaW5lcSBsZWZ0LCByaWdodCwg
dGFyZ2V0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qbnN0cmljdGVxKQorCisKIF9s
bGludF9vcF9pbmM6CiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGxvYWRpIDRbUENdLCB0MApA
QCAtMTgyNiw3ICsxODY0LDcgQEAgbWFjcm8gY29tcGFyZVVuc2lnbmVkKGludGVnZXJDb21wYXJl
QW5kU2V0KQogZW5kCiAKIAotbWFjcm8gY29tcGFyZShpbnRlZ2VyQ29tcGFyZSwgZG91YmxlQ29t
cGFyZSwgc2xvd1BhdGgpCittYWNybyBjb21wYXJlSnVtcChpbnRlZ2VyQ29tcGFyZSwgZG91Ymxl
Q29tcGFyZSwgc2xvd1BhdGgpCiAgICAgbG9hZGkgNFtQQ10sIHQyCiAgICAgbG9hZGkgOFtQQ10s
IHQzCiAgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDAsIHQxKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20gYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQppbmRl
eCBkNmU4NDM4MTc1ZDFhNDdhZjVlMDFiOTI5YTdlYzhiMzdhZmU0OGE5Li42YjI1MGFhZDRmOWFl
MGJmN2Q1YTMzNTI5YmU3ZGQxMzA0N2FjYjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpAQCAtNDAyLDkgKzQwMiw4
IEBAIGVuZAogCiBtYWNybyBsb2FkVHlwZWRBcnJheUNhZ2VkKGJhc2VQdHIsIG1hc2ssIHNvdXJj
ZSwgdHlwZUluZGV4LCBkZXN0LCBzY3JhdGNoKQogICAgIGlmIFBPSVNPTgotICAgICAgICBhbmRw
IFR5cGVkQXJyYXlQb2lzb25JbmRleE1hc2ssIHR5cGVJbmRleAogICAgICAgICBsZWFwIF9nX3R5
cGVkQXJyYXlQb2lzb25zLCBkZXN0Ci0gICAgICAgIGxvYWRwIFtkZXN0LCB0eXBlSW5kZXgsIDhd
LCBkZXN0CisgICAgICAgIGxvYWRwICh0eXBlSW5kZXggLSBGaXJzdFR5cGVkQXJyYXlUeXBlKSAq
IDhbZGVzdF0sIGRlc3QKICAgICAgICAgbG9hZHAgc291cmNlLCBzY3JhdGNoCiAgICAgICAgIHhv
cnAgc2NyYXRjaCwgZGVzdAogICAgIGVsc2UKQEAgLTcyMyw3ICs3MjIsNiBAQCBfbGxpbnRfb3Bf
bm90OgogCiAKIG1hY3JvIGVxdWFsaXR5Q29tcGFyaXNvbihpbnRlZ2VyQ29tcGFyaXNvbiwgc2xv
d1BhdGgpCi0gICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigz
LCB0MCkKICAgICBsb2FkaXNGcm9tSW5zdHJ1Y3Rpb24oMiwgdDIpCiAgICAgbG9hZGlzRnJvbUlu
c3RydWN0aW9uKDEsIHQzKQpAQCAtNzM5LDE2ICs3MzcsMjIgQEAgbWFjcm8gZXF1YWxpdHlDb21w
YXJpc29uKGludGVnZXJDb21wYXJpc29uLCBzbG93UGF0aCkKICAgICBkaXNwYXRjaCg0KQogZW5k
CiAKLV9sbGludF9vcF9lcToKLSAgICBlcXVhbGl0eUNvbXBhcmlzb24oCi0gICAgICAgIG1hY3Jv
IChsZWZ0LCByaWdodCwgcmVzdWx0KSBjaWVxIGxlZnQsIHJpZ2h0LCByZXN1bHQgZW5kLAotICAg
ICAgICBfc2xvd19wYXRoX2VxKQogCittYWNybyBlcXVhbGl0eUp1bXAoaW50ZWdlckNvbXBhcmlz
b24sIHNsb3dQYXRoKQorICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0MikKKyAgICBsb2Fk
aXNGcm9tSW5zdHJ1Y3Rpb24oMiwgdDMpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUludDMy
KHQyLCB0MCwgLnNsb3cpCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZUludDMyKHQzLCB0MSwg
LnNsb3cpCisgICAgaW50ZWdlckNvbXBhcmlzb24odDAsIHQxLCAuanVtcFRhcmdldCkKKyAgICBk
aXNwYXRjaChjb25zdGV4cHIgb3BfamVxX2xlbmd0aCkKIAotX2xsaW50X29wX25lcToKLSAgICBl
cXVhbGl0eUNvbXBhcmlzb24oCi0gICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgcmVzdWx0KSBj
aW5lcSBsZWZ0LCByaWdodCwgcmVzdWx0IGVuZCwKLSAgICAgICAgX3Nsb3dfcGF0aF9uZXEpCisu
anVtcFRhcmdldDoKKyAgICBkaXNwYXRjaEludEluZGlyZWN0KDMpCisKKy5zbG93OgorICAgIGNh
bGxTbG93UGF0aChzbG93UGF0aCkKKyAgICBkaXNwYXRjaCgwKQorZW5kCiAKIAogbWFjcm8gZXF1
YWxOdWxsQ29tcGFyaXNvbigpCkBAIC03ODksNyArNzkzLDYgQEAgX2xsaW50X29wX25lcV9udWxs
OgogCiAKIG1hY3JvIHN0cmljdEVxKGVxdWFsaXR5T3BlcmF0aW9uLCBzbG93UGF0aCkKLSAgICB0
cmFjZUV4ZWN1dGlvbigpCiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDMsIHQwKQogICAgIGxv
YWRpc0Zyb21JbnN0cnVjdGlvbigyLCB0MikKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQw
LCB0MSkKQEAgLTgxNCwxOCArODE3LDYxIEBAIG1hY3JvIHN0cmljdEVxKGVxdWFsaXR5T3BlcmF0
aW9uLCBzbG93UGF0aCkKICAgICBkaXNwYXRjaCg0KQogZW5kCiAKKworbWFjcm8gc3RyaWN0RXF1
YWxpdHlKdW1wKGVxdWFsaXR5T3BlcmF0aW9uLCBzbG93UGF0aCkKKyAgICBsb2FkaXNGcm9tSW5z
dHJ1Y3Rpb24oMSwgdDIpCisgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDIsIHQzKQorICAgIGxv
YWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQwKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUo
dDMsIHQxKQorICAgIG1vdmUgdDAsIHQyCisgICAgb3JxIHQxLCB0MgorICAgIGJ0cXogdDIsIHRh
Z01hc2ssIC5zbG93CisgICAgYnFhZXEgdDAsIHRhZ1R5cGVOdW1iZXIsIC5sZWZ0T0sKKyAgICBi
dHFueiB0MCwgdGFnVHlwZU51bWJlciwgLnNsb3cKKy5sZWZ0T0s6CisgICAgYnFhZXEgdDEsIHRh
Z1R5cGVOdW1iZXIsIC5yaWdodE9LCisgICAgYnRxbnogdDEsIHRhZ1R5cGVOdW1iZXIsIC5zbG93
CisucmlnaHRPSzoKKyAgICBlcXVhbGl0eU9wZXJhdGlvbih0MCwgdDEsIC5qdW1wVGFyZ2V0KQor
ICAgIGRpc3BhdGNoKGNvbnN0ZXhwciBvcF9qc3RyaWN0ZXFfbGVuZ3RoKQorCisuanVtcFRhcmdl
dDoKKyAgICBkaXNwYXRjaEludEluZGlyZWN0KDMpCisKKy5zbG93OgorICAgIGNhbGxTbG93UGF0
aChzbG93UGF0aCkKKyAgICBkaXNwYXRjaCgwKQorZW5kCisKKwogX2xsaW50X29wX3N0cmljdGVx
OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKICAgICBzdHJpY3RFcSgKICAgICAgICAgbWFjcm8gKGxl
ZnQsIHJpZ2h0LCByZXN1bHQpIGNxZXEgbGVmdCwgcmlnaHQsIHJlc3VsdCBlbmQsCiAgICAgICAg
IF9zbG93X3BhdGhfc3RyaWN0ZXEpCiAKIAogX2xsaW50X29wX25zdHJpY3RlcToKKyAgICB0cmFj
ZUV4ZWN1dGlvbigpCiAgICAgc3RyaWN0RXEoCiAgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwg
cmVzdWx0KSBjcW5lcSBsZWZ0LCByaWdodCwgcmVzdWx0IGVuZCwKICAgICAgICAgX3Nsb3dfcGF0
aF9uc3RyaWN0ZXEpCiAKIAorX2xsaW50X29wX2pzdHJpY3RlcToKKyAgICB0cmFjZUV4ZWN1dGlv
bigpCisgICAgc3RyaWN0RXF1YWxpdHlKdW1wKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQs
IHRhcmdldCkgYnFlcSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgX2xsaW50X3Ns
b3dfcGF0aF9qc3RyaWN0ZXEpCisKKworX2xsaW50X29wX2puc3RyaWN0ZXE6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIHN0cmljdEVxdWFsaXR5SnVtcCgKKyAgICAgICAgbWFjcm8gKGxlZnQs
IHJpZ2h0LCB0YXJnZXQpIGJxbmVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAorICAgICAgICBf
bGxpbnRfc2xvd19wYXRoX2puc3RyaWN0ZXEpCisKKwogbWFjcm8gcHJlT3AoYXJpdGhtZXRpY09w
ZXJhdGlvbiwgc2xvd1BhdGgpCiAgICAgdHJhY2VFeGVjdXRpb24oKQogICAgIGxvYWRpc0Zyb21J
bnN0cnVjdGlvbigxLCB0MCkKQEAgLTE1NzYsMTIgKzE2MjIsMTEgQEAgX2xsaW50X29wX2dldF9i
eV92YWw6CiAub3BHZXRCeVZhbE5vdEluZGV4ZWRTdG9yYWdlOgogICAgICMgRmlyc3QgbGV0cyBj
aGVjayBpZiB3ZSBldmVuIGhhdmUgYSB0eXBlZCBhcnJheS4gVGhpcyBsZXRzIHVzIGRvIHNvbWUg
Ym9pbGVycGxhdGUgdXAgZnJvbnQuCiAgICAgbG9hZGIgSlNDZWxsOjptX3R5cGVbdDBdLCB0Mgot
ICAgIHN1YmkgRmlyc3RBcnJheVR5cGUsIHQyCisgICAgc3ViaSBGaXJzdFR5cGVkQXJyYXlUeXBl
LCB0MgogICAgIGJpYWVxIHQyLCBOdW1iZXJPZlR5cGVkQXJyYXlUeXBlc0V4Y2x1ZGluZ0RhdGFW
aWV3LCAub3BHZXRCeVZhbFNsb3cKICAgICAKICAgICAjIFN3ZWV0LCBub3cgd2Uga25vdyB0aGF0
IHdlIGhhdmUgYSB0eXBlZCBhcnJheS4gRG8gc29tZSBiYXNpYyB0aGluZ3Mgbm93LgogICAgIGJp
YWVxIHQxLCBKU0FycmF5QnVmZmVyVmlldzo6bV9sZW5ndGhbdDBdLCAub3BHZXRCeVZhbFNsb3cK
LSAgICBsb2FkVHlwZWRBcnJheUNhZ2VkKF9nX2dpZ2FjYWdlQmFzZVB0cnMgKyBHaWdhY2FnZTo6
QmFzZVB0cnM6OnByaW1pdGl2ZSwgY29uc3RleHByIFBSSU1JVElWRV9HSUdBQ0FHRV9NQVNLLCBK
U0FycmF5QnVmZmVyVmlldzo6bV9wb2lzb25lZFZlY3Rvclt0MF0sIHQyLCB0MywgdDUpCiAKICAg
ICAjIE5vdyBiaXNlY3QgdGhyb3VnaCB0aGUgdmFyaW91cyB0eXBlczoKICAgICAjICAgIEludDhB
cnJheVR5cGUsCkBAIC0xNTk0LDQ5ICsxNjM5LDYzIEBAIF9sbGludF9vcF9nZXRfYnlfdmFsOgog
ICAgICMgICAgRmxvYXQzMkFycmF5VHlwZSwKICAgICAjICAgIEZsb2F0NjRBcnJheVR5cGUsCiAK
LSAgICBiaWEgdDIsIFVpbnQxNkFycmF5VHlwZSAtIEZpcnN0QXJyYXlUeXBlLCAub3BHZXRCeVZh
bEFib3ZlVWludDE2QXJyYXkKKyAgICBiaWEgdDIsIFVpbnQxNkFycmF5VHlwZSAtIEZpcnN0VHlw
ZWRBcnJheVR5cGUsIC5vcEdldEJ5VmFsQWJvdmVVaW50MTZBcnJheQogCiAgICAgIyBXZSBoYXZl
IG9uZSBvZiBJbnQ4QXJyYXlUeXBlIC4uIFVpbnQxNkFycmF5VHlwZS4KLSAgICBiaWEgdDIsIFVp
bnQ4Q2xhbXBlZEFycmF5VHlwZSAtIEZpcnN0QXJyYXlUeXBlLCAub3BHZXRCeVZhbEludDE2QXJy
YXlPclVpbnQxNkFycmF5CisgICAgYmlhIHQyLCBVaW50OENsYW1wZWRBcnJheVR5cGUgLSBGaXJz
dFR5cGVkQXJyYXlUeXBlLCAub3BHZXRCeVZhbEludDE2QXJyYXlPclVpbnQxNkFycmF5CiAKICAg
ICAjIFdlIGhhdmUgb25lIG9mIEludDhBcnJheVR5cGUgLi4uIFVpbnQ4Q2xhbXBlZEFycmF5VHlw
ZQotICAgIGJpbmVxIHQyLCBJbnQ4QXJyYXlUeXBlIC0gRmlyc3RBcnJheVR5cGUsIC5vcEdldEJ5
VmFsVWludDhBcnJheU9yVWludDhDbGFtcGVkQXJyYXkKKyAgICBiaWEgdDIsIEludDhBcnJheVR5
cGUgLSBGaXJzdFR5cGVkQXJyYXlUeXBlLCAub3BHZXRCeVZhbFVpbnQ4QXJyYXlPclVpbnQ4Q2xh
bXBlZEFycmF5CiAKLSAgICAjIFdlIGhhdmUgSW50OEFycmF5VHlwZQorICAgICMgV2UgaGF2ZSBJ
bnQ4QXJyYXlUeXBlLgorICAgIGxvYWRUeXBlZEFycmF5Q2FnZWQoX2dfZ2lnYWNhZ2VCYXNlUHRy
cyArIEdpZ2FjYWdlOjpCYXNlUHRyczo6cHJpbWl0aXZlLCBjb25zdGV4cHIgUFJJTUlUSVZFX0dJ
R0FDQUdFX01BU0ssIEpTQXJyYXlCdWZmZXJWaWV3OjptX3BvaXNvbmVkVmVjdG9yW3QwXSwgSW50
OEFycmF5VHlwZSwgdDMsIHQyKQogICAgIGxvYWRicyBbdDMsIHQxXSwgdDAKICAgICBmaW5pc2hJ
bnRHZXRCeVZhbCh0MCwgdDEpCiAKIC5vcEdldEJ5VmFsVWludDhBcnJheU9yVWludDhDbGFtcGVk
QXJyYXk6Ci0gICAgIyBXZSBoYXZlIGVpdGhlciBVaW50OEFycmF5VHlwZSBvciBVaW50OENsYW1w
ZWRBcnJheVR5cGUuIFRoZXkgYmVoYXZlIHRoZSBzYW1lIHNvIHRoYXQncyBjb29sLgorICAgIGJp
YSB0MiwgVWludDhBcnJheVR5cGUgLSBGaXJzdFR5cGVkQXJyYXlUeXBlLCAub3BHZXRCeVZhbFVp
bnQ4Q2xhbXBlZEFycmF5CisKKyAgICAjIFdlIGhhdmUgVWludDhBcnJheVR5cGUuCisgICAgbG9h
ZFR5cGVkQXJyYXlDYWdlZChfZ19naWdhY2FnZUJhc2VQdHJzICsgR2lnYWNhZ2U6OkJhc2VQdHJz
OjpwcmltaXRpdmUsIGNvbnN0ZXhwciBQUklNSVRJVkVfR0lHQUNBR0VfTUFTSywgSlNBcnJheUJ1
ZmZlclZpZXc6Om1fcG9pc29uZWRWZWN0b3JbdDBdLCBVaW50OEFycmF5VHlwZSwgdDMsIHQyKQor
ICAgIGxvYWRiIFt0MywgdDFdLCB0MAorICAgIGZpbmlzaEludEdldEJ5VmFsKHQwLCB0MSkKKwor
Lm9wR2V0QnlWYWxVaW50OENsYW1wZWRBcnJheToKKyAgICAjIFdlIGhhdmUgVWludDhDbGFtcGVk
QXJyYXlUeXBlLgorICAgIGxvYWRUeXBlZEFycmF5Q2FnZWQoX2dfZ2lnYWNhZ2VCYXNlUHRycyAr
IEdpZ2FjYWdlOjpCYXNlUHRyczo6cHJpbWl0aXZlLCBjb25zdGV4cHIgUFJJTUlUSVZFX0dJR0FD
QUdFX01BU0ssIEpTQXJyYXlCdWZmZXJWaWV3OjptX3BvaXNvbmVkVmVjdG9yW3QwXSwgVWludDhD
bGFtcGVkQXJyYXlUeXBlLCB0MywgdDIpCiAgICAgbG9hZGIgW3QzLCB0MV0sIHQwCiAgICAgZmlu
aXNoSW50R2V0QnlWYWwodDAsIHQxKQogCiAub3BHZXRCeVZhbEludDE2QXJyYXlPclVpbnQxNkFy
cmF5OgogICAgICMgV2UgaGF2ZSBlaXRoZXIgSW50MTZBcnJheVR5cGUgb3IgVWludDE2Q2xhbXBl
ZEFycmF5VHlwZS4KLSAgICBiaWVxIHQyLCBVaW50MTZBcnJheVR5cGUgLSBGaXJzdEFycmF5VHlw
ZSwgLm9wR2V0QnlWYWxVaW50MTZBcnJheQorICAgIGJpYSB0MiwgSW50MTZBcnJheVR5cGUgLSBG
aXJzdFR5cGVkQXJyYXlUeXBlLCAub3BHZXRCeVZhbFVpbnQxNkFycmF5CiAKICAgICAjIFdlIGhh
dmUgSW50MTZBcnJheVR5cGUuCisgICAgbG9hZFR5cGVkQXJyYXlDYWdlZChfZ19naWdhY2FnZUJh
c2VQdHJzICsgR2lnYWNhZ2U6OkJhc2VQdHJzOjpwcmltaXRpdmUsIGNvbnN0ZXhwciBQUklNSVRJ
VkVfR0lHQUNBR0VfTUFTSywgSlNBcnJheUJ1ZmZlclZpZXc6Om1fcG9pc29uZWRWZWN0b3JbdDBd
LCBJbnQxNkFycmF5VHlwZSwgdDMsIHQyKQogICAgIGxvYWRocyBbdDMsIHQxLCAyXSwgdDAKICAg
ICBmaW5pc2hJbnRHZXRCeVZhbCh0MCwgdDEpCiAKIC5vcEdldEJ5VmFsVWludDE2QXJyYXk6CiAg
ICAgIyBXZSBoYXZlIFVpbnQxNkFycmF5VHlwZS4KKyAgICBsb2FkVHlwZWRBcnJheUNhZ2VkKF9n
X2dpZ2FjYWdlQmFzZVB0cnMgKyBHaWdhY2FnZTo6QmFzZVB0cnM6OnByaW1pdGl2ZSwgY29uc3Rl
eHByIFBSSU1JVElWRV9HSUdBQ0FHRV9NQVNLLCBKU0FycmF5QnVmZmVyVmlldzo6bV9wb2lzb25l
ZFZlY3Rvclt0MF0sIFVpbnQxNkFycmF5VHlwZSwgdDMsIHQyKQogICAgIGxvYWRoIFt0MywgdDEs
IDJdLCB0MAogICAgIGZpbmlzaEludEdldEJ5VmFsKHQwLCB0MSkKIAogLm9wR2V0QnlWYWxBYm92
ZVVpbnQxNkFycmF5OgogICAgICMgV2UgaGF2ZSBvbmUgb2YgSW50MzJBcnJheVR5cGUgLi4gRmxv
YXQ2NEFycmF5VHlwZS4KLSAgICBiaWEgdDIsIFVpbnQzMkFycmF5VHlwZSAtIEZpcnN0QXJyYXlU
eXBlLCAub3BHZXRCeVZhbEZsb2F0MzJBcnJheU9yRmxvYXQ2NEFycmF5CisgICAgYmlhIHQyLCBV
aW50MzJBcnJheVR5cGUgLSBGaXJzdFR5cGVkQXJyYXlUeXBlLCAub3BHZXRCeVZhbEZsb2F0MzJB
cnJheU9yRmxvYXQ2NEFycmF5CiAKICAgICAjIFdlIGhhdmUgZWl0aGVyIEludDMyQXJyYXlUeXBl
IG9yIFVpbnQzMkFycmF5VHlwZQotICAgIGJpbmVxIHQyLCBJbnQzMkFycmF5VHlwZSAtIEZpcnN0
QXJyYXlUeXBlLCAub3BHZXRCeVZhbFVpbnQzMkFycmF5CisgICAgYmlhIHQyLCBJbnQzMkFycmF5
VHlwZSAtIEZpcnN0VHlwZWRBcnJheVR5cGUsIC5vcEdldEJ5VmFsVWludDMyQXJyYXkKIAotICAg
ICMgV2UgaGF2ZSBJbnQzMkFycmF5VHlwZQorICAgICMgV2UgaGF2ZSBJbnQzMkFycmF5VHlwZS4K
KyAgICBsb2FkVHlwZWRBcnJheUNhZ2VkKF9nX2dpZ2FjYWdlQmFzZVB0cnMgKyBHaWdhY2FnZTo6
QmFzZVB0cnM6OnByaW1pdGl2ZSwgY29uc3RleHByIFBSSU1JVElWRV9HSUdBQ0FHRV9NQVNLLCBK
U0FycmF5QnVmZmVyVmlldzo6bV9wb2lzb25lZFZlY3Rvclt0MF0sIEludDMyQXJyYXlUeXBlLCB0
MywgdDIpCiAgICAgbG9hZGkgW3QzLCB0MSwgNF0sIHQwCiAgICAgZmluaXNoSW50R2V0QnlWYWwo
dDAsIHQxKQogCiAub3BHZXRCeVZhbFVpbnQzMkFycmF5OgogICAgICMgV2UgaGF2ZSBVaW50MzJB
cnJheVR5cGUuCisgICAgbG9hZFR5cGVkQXJyYXlDYWdlZChfZ19naWdhY2FnZUJhc2VQdHJzICsg
R2lnYWNhZ2U6OkJhc2VQdHJzOjpwcmltaXRpdmUsIGNvbnN0ZXhwciBQUklNSVRJVkVfR0lHQUNB
R0VfTUFTSywgSlNBcnJheUJ1ZmZlclZpZXc6Om1fcG9pc29uZWRWZWN0b3JbdDBdLCBVaW50MzJB
cnJheVR5cGUsIHQzLCB0MikKICAgICAjIFRoaXMgaXMgdGhlIGhhcmRlc3QgcGFydCBiZWNhdXNl
IG9mIGxhcmdlIHVuc2lnbmVkIHZhbHVlcy4KICAgICBsb2FkaSBbdDMsIHQxLCA0XSwgdDAKICAg
ICBiaWx0IHQwLCAwLCAub3BHZXRCeVZhbFNsb3cgIyBUaGlzIGNhc2UgaXMgc3RpbGwgYXdrd2Fy
ZCB0byBpbXBsZW1lbnQgaW4gTExJbnQuCkBAIC0xNjQ1LDkgKzE3MDQsMTAgQEAgX2xsaW50X29w
X2dldF9ieV92YWw6CiAub3BHZXRCeVZhbEZsb2F0MzJBcnJheU9yRmxvYXQ2NEFycmF5OgogICAg
ICMgV2UgaGF2ZSBvbmUgb2YgRmxvYXQzMkFycmF5VHlwZSBvciBGbG9hdDY0QXJyYXlUeXBlLiBT
YWRseSwgd2UgY2Fubm90IGhhbmRsZSBGbG9hdDMyQXJyYXkKICAgICAjIGlubGluZSB5ZXQuIFRo
YXQgd291bGQgcmVxdWlyZSBzb21lIG9mZmxpbmVhc20gY2hhbmdlcy4KLSAgICBiaWVxIHQyLCBG
bG9hdDMyQXJyYXlUeXBlIC0gRmlyc3RBcnJheVR5cGUsIC5vcEdldEJ5VmFsU2xvdworICAgIGJp
ZXEgdDIsIEZsb2F0MzJBcnJheVR5cGUgLSBGaXJzdFR5cGVkQXJyYXlUeXBlLCAub3BHZXRCeVZh
bFNsb3cKIAogICAgICMgV2UgaGF2ZSBGbG9hdDY0QXJyYXlUeXBlLgorICAgIGxvYWRUeXBlZEFy
cmF5Q2FnZWQoX2dfZ2lnYWNhZ2VCYXNlUHRycyArIEdpZ2FjYWdlOjpCYXNlUHRyczo6cHJpbWl0
aXZlLCBjb25zdGV4cHIgUFJJTUlUSVZFX0dJR0FDQUdFX01BU0ssIEpTQXJyYXlCdWZmZXJWaWV3
OjptX3BvaXNvbmVkVmVjdG9yW3QwXSwgRmxvYXQ2NEFycmF5VHlwZSwgdDMsIHQyKQogICAgIGxv
YWRkIFt0MywgdDEsIDhdLCBmdDAKICAgICBiZG5lcXVuIGZ0MCwgZnQwLCAub3BHZXRCeVZhbFNs
b3cKICAgICBmaW5pc2hEb3VibGVHZXRCeVZhbChmdDAsIHQwLCB0MSkKQEAgLTE4MzUsNyArMTg5
NSw3IEBAIF9sbGludF9vcF9qbmVxX3B0cjoKICAgICBkaXNwYXRjaEludEluZGlyZWN0KDMpCiAK
IAotbWFjcm8gY29tcGFyZShpbnRlZ2VyQ29tcGFyZSwgZG91YmxlQ29tcGFyZSwgc2xvd1BhdGgp
CittYWNybyBjb21wYXJlSnVtcChpbnRlZ2VyQ29tcGFyZSwgZG91YmxlQ29tcGFyZSwgc2xvd1Bh
dGgpCiAgICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKDEsIHQyKQogICAgIGxvYWRpc0Zyb21JbnN0
cnVjdGlvbigyLCB0MykKICAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MCkKQEAgLTE4
OTEsNyArMTk1MSw2IEBAIGVuZAogCiAKIG1hY3JvIGNvbXBhcmVVbnNpZ25lZChpbnRlZ2VyQ29t
cGFyZUFuZFNldCkKLSAgICB0cmFjZUV4ZWN1dGlvbigpCiAgICAgbG9hZGlzRnJvbUluc3RydWN0
aW9uKDMsIHQwKQogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigyLCB0MikKICAgICBsb2FkaXNG
cm9tSW5zdHJ1Y3Rpb24oMSwgdDMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS94ODYucmIgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS94ODYu
cmIKaW5kZXggNDJlZjdiNzFjNGY2ZjlkNDI3MzU4YzVmZDQwN2NmMDBmNDIyNTgyNC4uYjdkNGY1
MTFlY2VmMDIzMzM5MDkzYWZiNjhmNDdhMDczYmJkYTUyYiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20veDg2LnJiCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9vZmZsaW5lYXNtL3g4Ni5yYgpAQCAtNTkwLDcgKzU5MCw2IEBAIGNsYXNzIEluc3RydWN0aW9u
CiAgICAgZGVmIGVtaXRYODZMZWEoc3JjLCBkc3QsIGtpbmQpCiAgICAgICAgIGlmIHNyYy5pc19h
PyBMYWJlbFJlZmVyZW5jZQogICAgICAgICAgICAgJGFzbS5wdXRzICJtb3ZxICN7c3JjLmFzbUxh
YmVsfUBHT1RQQ1JFTCglcmlwKSwgI3tkc3QueDg2T3BlcmFuZCg6cHRyKX0iCi0gICAgICAgICAg
ICAkYXNtLnB1dHMgIm1vdiN7eDg2U3VmZml4KGtpbmQpfSAje29yZGVyT3BlcmFuZHMoZHN0Lng4
Nk9wZXJhbmQoa2luZCksIGRzdC54ODZPcGVyYW5kKGtpbmQpKX0iCiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgICRhc20ucHV0cyAibGVhI3t4ODZTdWZmaXgoa2luZCl9ICN7b3JkZXJPcGVyYW5k
cyhzcmMueDg2QWRkcmVzc09wZXJhbmQoa2luZCksIGRzdC54ODZPcGVyYW5kKGtpbmQpKX0iCiAg
ICAgICAgIGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJz
ZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKaW5kZXggZjk0MGU5
Njc3YjM3Njc1MDE4OTFmNTBjMWE4YWE2ZWNjN2ExYjZhYy4uYWIwZTc0ZDQwYTVlYmUwY2M3YjJm
Yzc5N2YwMjRkNjZlNjdjNjgzYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9QYXJzZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5o
CkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiTGV4ZXIuaCIKICNpbmNsdWRlICJNb2R1bGVT
Y29wZURhdGEuaCIKICNpbmNsdWRlICJOb2Rlcy5oIgorI2luY2x1ZGUgIlBhcnNlSGFzaC5oIgog
I2luY2x1ZGUgIlBhcnNlckFyZW5hLmgiCiAjaW5jbHVkZSAiUGFyc2VyRXJyb3IuaCIKICNpbmNs
dWRlICJQYXJzZXJGdW5jdGlvbkluZm8uaCIKQEAgLTE5NTEsMjIgKzE5NTIsMzUgQEAgc3RkOjp1
bmlxdWVfcHRyPFBhcnNlZE5vZGU+IHBhcnNlKAogICAgIERlYnVnZ2VyUGFyc2VEYXRhKiBkZWJ1
Z2dlclBhcnNlRGF0YSA9IG51bGxwdHIpCiB7CiAgICAgQVNTRVJUKCFzb3VyY2UucHJvdmlkZXIo
KS0+c291cmNlKCkuaXNOdWxsKCkpOworCisgICAgTW9ub3RvbmljVGltZSBiZWZvcmU7CisgICAg
aWYgKFVOTElLRUxZKE9wdGlvbnM6OnJlcG9ydFBhcnNlVGltZXMoKSkpCisgICAgICAgIGJlZm9y
ZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOworCisgICAgc3RkOjp1bmlxdWVfcHRyPFBhcnNlZE5v
ZGU+IHJlc3VsdDsKICAgICBpZiAoc291cmNlLnByb3ZpZGVyKCktPnNvdXJjZSgpLmlzOEJpdCgp
KSB7CiAgICAgICAgIFBhcnNlcjxMZXhlcjxMQ2hhcj4+IHBhcnNlcih2bSwgc291cmNlLCBidWls
dGluTW9kZSwgc3RyaWN0TW9kZSwgc2NyaXB0TW9kZSwgcGFyc2VNb2RlLCBzdXBlckJpbmRpbmcs
IGRlZmF1bHRDb25zdHJ1Y3RvcktpbmQsIGRlcml2ZWRDb250ZXh0VHlwZSwgaXNFdmFsTm9kZTxQ
YXJzZWROb2RlPigpLCBldmFsQ29udGV4dFR5cGUsIGRlYnVnZ2VyUGFyc2VEYXRhKTsKLSAgICAg
ICAgc3RkOjp1bmlxdWVfcHRyPFBhcnNlZE5vZGU+IHJlc3VsdCA9IHBhcnNlci5wYXJzZTxQYXJz
ZWROb2RlPihlcnJvciwgbmFtZSwgcGFyc2VNb2RlKTsKKyAgICAgICAgcmVzdWx0ID0gcGFyc2Vy
LnBhcnNlPFBhcnNlZE5vZGU+KGVycm9yLCBuYW1lLCBwYXJzZU1vZGUpOwogICAgICAgICBpZiAo
cG9zaXRpb25CZWZvcmVMYXN0TmV3bGluZSkKICAgICAgICAgICAgICpwb3NpdGlvbkJlZm9yZUxh
c3ROZXdsaW5lID0gcGFyc2VyLnBvc2l0aW9uQmVmb3JlTGFzdE5ld2xpbmUoKTsKICAgICAgICAg
aWYgKGJ1aWx0aW5Nb2RlID09IEpTUGFyc2VyQnVpbHRpbk1vZGU6OkJ1aWx0aW4pIHsKICAgICAg
ICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgICAgIFdURjo6ZGF0YUxvZygiRXJyb3Ig
Y29tcGlsaW5nIGJ1aWx0aW46ICIsIGVycm9yLm1lc3NhZ2UoKSwgIlxuIik7CisgICAgICAgICAg
ICAgICAgZGF0YUxvZ0xuKCJFcnJvciBjb21waWxpbmcgYnVpbHRpbjogIiwgZXJyb3IubWVzc2Fn
ZSgpKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0gZWxzZSB7Cisg
ICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoZGVmYXVsdENvbnN0cnVjdG9yS2luZCA9PSBDb25z
dHJ1Y3RvcktpbmQ6Ok5vbmUsICJCdWlsdGluRXhlY3V0YWJsZXM6OmNyZWF0ZURlZmF1bHRDb25z
dHJ1Y3RvciBzaG91bGQgYWx3YXlzIHVzZSBhIDgtYml0IHN0cmluZyIpOworICAgICAgICBQYXJz
ZXI8TGV4ZXI8VUNoYXI+PiBwYXJzZXIodm0sIHNvdXJjZSwgYnVpbHRpbk1vZGUsIHN0cmljdE1v
ZGUsIHNjcmlwdE1vZGUsIHBhcnNlTW9kZSwgc3VwZXJCaW5kaW5nLCBkZWZhdWx0Q29uc3RydWN0
b3JLaW5kLCBkZXJpdmVkQ29udGV4dFR5cGUsIGlzRXZhbE5vZGU8UGFyc2VkTm9kZT4oKSwgZXZh
bENvbnRleHRUeXBlLCBkZWJ1Z2dlclBhcnNlRGF0YSk7CisgICAgICAgIHJlc3VsdCA9IHBhcnNl
ci5wYXJzZTxQYXJzZWROb2RlPihlcnJvciwgbmFtZSwgcGFyc2VNb2RlKTsKKyAgICAgICAgaWYg
KHBvc2l0aW9uQmVmb3JlTGFzdE5ld2xpbmUpCisgICAgICAgICAgICAqcG9zaXRpb25CZWZvcmVM
YXN0TmV3bGluZSA9IHBhcnNlci5wb3NpdGlvbkJlZm9yZUxhc3ROZXdsaW5lKCk7CiAgICAgfQot
ICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoZGVmYXVsdENvbnN0cnVjdG9yS2luZCA9PSBDb25zdHJ1
Y3RvcktpbmQ6Ok5vbmUsICJCdWlsdGluRXhlY3V0YWJsZXM6OmNyZWF0ZURlZmF1bHRDb25zdHJ1
Y3RvciBzaG91bGQgYWx3YXlzIHVzZSBhIDgtYml0IHN0cmluZyIpOwotICAgIFBhcnNlcjxMZXhl
cjxVQ2hhcj4+IHBhcnNlcih2bSwgc291cmNlLCBidWlsdGluTW9kZSwgc3RyaWN0TW9kZSwgc2Ny
aXB0TW9kZSwgcGFyc2VNb2RlLCBzdXBlckJpbmRpbmcsIGRlZmF1bHRDb25zdHJ1Y3RvcktpbmQs
IGRlcml2ZWRDb250ZXh0VHlwZSwgaXNFdmFsTm9kZTxQYXJzZWROb2RlPigpLCBldmFsQ29udGV4
dFR5cGUsIGRlYnVnZ2VyUGFyc2VEYXRhKTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFyc2VkTm9k
ZT4gcmVzdWx0ID0gcGFyc2VyLnBhcnNlPFBhcnNlZE5vZGU+KGVycm9yLCBuYW1lLCBwYXJzZU1v
ZGUpOwotICAgIGlmIChwb3NpdGlvbkJlZm9yZUxhc3ROZXdsaW5lKQotICAgICAgICAqcG9zaXRp
b25CZWZvcmVMYXN0TmV3bGluZSA9IHBhcnNlci5wb3NpdGlvbkJlZm9yZUxhc3ROZXdsaW5lKCk7
CisKKyAgICBpZiAoVU5MSUtFTFkoT3B0aW9uczo6cmVwb3J0UGFyc2VUaW1lcygpKSkgeworICAg
ICAgICBNb25vdG9uaWNUaW1lIGFmdGVyID0gTW9ub3RvbmljVGltZTo6bm93KCk7CisgICAgICAg
IFBhcnNlSGFzaCBoYXNoKHNvdXJjZSk7CisgICAgICAgIGRhdGFMb2dMbihyZXN1bHQgPyAiUGFy
c2VkICMiIDogIkZhaWxlZCB0byBwYXJzZSAjIiwgaGFzaC5oYXNoRm9yQ2FsbCgpLCAiLyMiLCBo
YXNoLmhhc2hGb3JDb25zdHJ1Y3QoKSwgIiBpbiAiLCAoYWZ0ZXIgLSBiZWZvcmUpLm1pbGxpc2Vj
b25kcygpLCAiIG1zLiIpOworICAgIH0KKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmgKaW5kZXggNzNjYTVlYzJlMjM0Y2Yz
ZDIzYTc1ZTYwNDJhNjRkZjQ2NzAxNDQyOC4uYWI3MGI2NTM5N2ZiMzM1ZDJhMTIzYjJhNmIzYWUz
YWU2M2M4MWQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29k
ZUNhY2hlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hlLmgK
QEAgLTI0OCw3ICsyNDgsNyBAQCBVbmxpbmtlZENvZGVCbG9ja1R5cGUqIGdlbmVyYXRlVW5saW5r
ZWRDb2RlQmxvY2soVk0mIHZtLCBFeGVjdXRhYmxlVHlwZSogZXhlY3V0YQogICAgIHVubGlua2Vk
Q29kZUJsb2NrLT5zZXRTb3VyY2VVUkxEaXJlY3RpdmUoc291cmNlLnByb3ZpZGVyKCktPnNvdXJj
ZVVSTCgpKTsKICAgICB1bmxpbmtlZENvZGVCbG9jay0+c2V0U291cmNlTWFwcGluZ1VSTERpcmVj
dGl2ZShzb3VyY2UucHJvdmlkZXIoKS0+c291cmNlTWFwcGluZ1VSTCgpKTsKIAotICAgIGVycm9y
ID0gQnl0ZWNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlKHZtLCByb290Tm9kZS5nZXQoKSwgdW5saW5r
ZWRDb2RlQmxvY2ssIGRlYnVnZ2VyTW9kZSwgdmFyaWFibGVzVW5kZXJURFopOworICAgIGVycm9y
ID0gQnl0ZWNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlKHZtLCByb290Tm9kZS5nZXQoKSwgc291cmNl
LCB1bmxpbmtlZENvZGVCbG9jaywgZGVidWdnZXJNb2RlLCB2YXJpYWJsZXNVbmRlclREWik7CiAK
ICAgICBpZiAoZXJyb3IuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uSGFzRXhlY3V0ZWRD
YWNoZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25IYXNFeGVjdXRl
ZENhY2hlLmgKaW5kZXggYmJhOTA0M2I2ODhlZjhjYjE4NDhlYjYzMmIxZWQ5NDQ3ZmJkMjBhNS4u
OWUyYjIwY2ZmNzA1OWM0NDE1ZDhjNjc5MjM1YjMyNjAyNTcxMjg2ZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25IYXNFeGVjdXRlZENhY2hl
LmgKQEAgLTI1LDggKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDx1bm9yZGVy
ZWRfbWFwPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWV0aG9kLmg+CisjaW5jbHVkZSA8d3RmL1N0ZFVu
b3JkZXJlZE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIEpTQyB7
CkBAIC01NCw4ICs1NCw4IEBAIHB1YmxpYzoKICAgICBWZWN0b3I8c3RkOjp0dXBsZTxib29sLCB1
bnNpZ25lZCwgdW5zaWduZWQ+PiBnZXRGdW5jdGlvblJhbmdlcyhpbnRwdHJfdCBpZCk7CiAKIHBy
aXZhdGU6Ci0gICAgdXNpbmcgUmFuZ2VNYXAgPSBzdGQ6OnVub3JkZXJlZF9tYXA8RnVuY3Rpb25S
YW5nZSwgYm9vbCwgSGFzaE1ldGhvZDxGdW5jdGlvblJhbmdlPiwgc3RkOjplcXVhbF90bzxGdW5j
dGlvblJhbmdlPiwgRmFzdEFsbG9jYXRvcjxzdGQ6OnBhaXI8Y29uc3QgRnVuY3Rpb25SYW5nZSwg
Ym9vbD4+PjsKLSAgICB1c2luZyBTb3VyY2VJRFRvUmFuZ2VNYXAgPSBzdGQ6OnVub3JkZXJlZF9t
YXA8aW50cHRyX3QsIFJhbmdlTWFwLCBzdGQ6Omhhc2g8aW50cHRyX3Q+LCBzdGQ6OmVxdWFsX3Rv
PGludHB0cl90PiwgRmFzdEFsbG9jYXRvcjxzdGQ6OnBhaXI8Y29uc3QgaW50cHRyX3QsIFJhbmdl
TWFwPj4+OworICAgIHVzaW5nIFJhbmdlTWFwID0gU3RkVW5vcmRlcmVkTWFwPEZ1bmN0aW9uUmFu
Z2UsIGJvb2wsIEhhc2hNZXRob2Q8RnVuY3Rpb25SYW5nZT4+OworICAgIHVzaW5nIFNvdXJjZUlE
VG9SYW5nZU1hcCA9IFN0ZFVub3JkZXJlZE1hcDxpbnRwdHJfdCwgUmFuZ2VNYXA+OwogICAgIFNv
dXJjZUlEVG9SYW5nZU1hcCBtX3JhbmdlTWFwOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9ucy5oCmluZGV4IGQxNDhmNWEwN2I1YTFhMjU2YzJjMGI1YTgxNjM1YzJiNzA3
NzlkMTIuLmRhMzU2ZmE1ZjQwM2Y0MDlmMjg0NzIyYzI1OWI2OGE2YjdkYTY4MTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKQEAgLTE5NSw2ICsxOTUsOCBAQCBjb25z
dGV4cHIgYm9vbCBlbmFibGVBc3luY0l0ZXJhdGlvbiA9IGZhbHNlOwogICAgIHYoYm9vbCwgcmVw
b3J0RlRMQ29tcGlsZVRpbWVzLCBmYWxzZSwgTm9ybWFsLCAiZHVtcHMgSlMgZnVuY3Rpb24gc2ln
bmF0dXJlIGFuZCB0aGUgdGltZSBpdCB0b29rIHRvIEZUTCBjb21waWxlIikgXAogICAgIHYoYm9v
bCwgcmVwb3J0REZHUGhhc2VUaW1lcywgZmFsc2UsIE5vcm1hbCwgImR1bXBzIEpTIGZ1bmN0aW9u
IG5hbWUgYW5kIHRoZSB0aW1lIGlzIHRvb2sgZm9yIGVhY2ggREZHIHBoYXNlIikgXAogICAgIHYo
Ym9vbCwgcmVwb3J0VG90YWxDb21waWxlVGltZXMsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwK
KyAgICB2KGJvb2wsIHJlcG9ydFBhcnNlVGltZXMsIGZhbHNlLCBOb3JtYWwsICJkdW1wcyBKUyBm
dW5jdGlvbiBzaWduYXR1cmUgYW5kIHRoZSB0aW1lIGl0IHRvb2sgdG8gcGFyc2UiKSBcCisgICAg
dihib29sLCByZXBvcnRCeXRlY29kZUNvbXBpbGVUaW1lcywgZmFsc2UsIE5vcm1hbCwgImR1bXBz
IEpTIGZ1bmN0aW9uIHNpZ25hdHVyZSBhbmQgdGhlIHRpbWUgaXQgdG9vayB0byBieXRlY29kZSBj
b21waWxlIikgXAogICAgIHYoYm9vbCwgdmVyYm9zZUV4aXRQcm9maWxlLCBmYWxzZSwgTm9ybWFs
LCBudWxscHRyKSBcCiAgICAgdihib29sLCB2ZXJib3NlQ0ZBLCBmYWxzZSwgTm9ybWFsLCBudWxs
cHRyKSBcCiAgICAgdihib29sLCB2ZXJib3NlREZHRmFpbHVyZSwgZmFsc2UsIE5vcm1hbCwgbnVs
bHB0cikgXApAQCAtMjUwLDcgKzI1Miw3IEBAIGNvbnN0ZXhwciBib29sIGVuYWJsZUFzeW5jSXRl
cmF0aW9uID0gZmFsc2U7CiAgICAgdihib29sLCBiM0Fsd2F5c0ZhaWxzQmVmb3JlTGluaywgZmFs
c2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwgZnRsQ3Jhc2hlcywgZmFsc2UsIE5v
cm1hbCwgbnVsbHB0cikgLyogZm9vbC1wcm9vZiB3YXkgb2YgY2hlY2tpbmcgdGhhdCB5b3UgZW5k
ZWQgdXAgaW4gdGhlIEZUTC4gOy0pICovXAogICAgIHYoYm9vbCwgY2xvYmJlckFsbFJlZ3NJbkZU
TElDU2xvd1BhdGgsICFBU1NFUlRfRElTQUJMRUQsIE5vcm1hbCwgbnVsbHB0cikgXAotICAgIHYo
Ym9vbCwgZW5hYmxlSklURGVidWdBc3NldGlvbnMsICFBU1NFUlRfRElTQUJMRUQsIE5vcm1hbCwg
bnVsbHB0cikgXAorICAgIHYoYm9vbCwgZW5hYmxlSklURGVidWdBc3NlcnRpb25zLCAhQVNTRVJU
X0RJU0FCTEVELCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGJvb2wsIHVzZUFjY2Vzc0lubGlu
aW5nLCB0cnVlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KHVuc2lnbmVkLCBtYXhBY2Nlc3NW
YXJpYW50TGlzdFNpemUsIDgsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwgdXNlUG9s
eXZhcmlhbnREZXZpcnR1YWxpemF0aW9uLCB0cnVlLCBOb3JtYWwsIG51bGxwdHIpIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVMb2NhdGlvbkNhY2hlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlTG9jYXRpb25DYWNoZS5oCmluZGV4
IGQ5NDg0MTFhYmIzZWQxMWZmMTM2NTljYjcxOTJkNTcwNDE0MWM1OWQuLjg2NzU4ZTI3MThhMzNj
NDUxMGIyMjM5YjNmZGExODFhYmY3NWVhOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1R5cGVMb2NhdGlvbkNhY2hlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvVHlwZUxvY2F0aW9uQ2FjaGUuaApAQCAtMjYsOSArMjYsOSBAQAogI3ByYWdt
YSBvbmNlCiAKICNpbmNsdWRlICJUeXBlTG9jYXRpb24uaCIKLSNpbmNsdWRlIDx1bm9yZGVyZWRf
bWFwPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNZXRo
b2QuaD4KKyNpbmNsdWRlIDx3dGYvU3RkVW5vcmRlcmVkTWFwLmg+CiAKIG5hbWVzcGFjZSBKU0Mg
ewogCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKIAogICAgIHN0ZDo6cGFpcjxUeXBlTG9jYXRp
b24qLCBib29sPiBnZXRUeXBlTG9jYXRpb24oR2xvYmFsVmFyaWFibGVJRCwgaW50cHRyX3QsIHVu
c2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBlbmQsIFJlZlB0cjxUeXBlU2V0PiYmLCBWTSopOwogcHJp
dmF0ZToKLSAgICB1c2luZyBMb2NhdGlvbk1hcCA9IHN0ZDo6dW5vcmRlcmVkX21hcDxMb2NhdGlv
bktleSwgVHlwZUxvY2F0aW9uKiwgSGFzaE1ldGhvZDxMb2NhdGlvbktleT4sIHN0ZDo6ZXF1YWxf
dG88TG9jYXRpb25LZXk+LCBGYXN0QWxsb2NhdG9yPHN0ZDo6cGFpcjxjb25zdCBMb2NhdGlvbktl
eSwgVHlwZUxvY2F0aW9uKj4+PjsKKyAgICB1c2luZyBMb2NhdGlvbk1hcCA9IFN0ZFVub3JkZXJl
ZE1hcDxMb2NhdGlvbktleSwgVHlwZUxvY2F0aW9uKiwgSGFzaE1ldGhvZDxMb2NhdGlvbktleT4+
OwogICAgIExvY2F0aW9uTWFwIG1fbG9jYXRpb25NYXA7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZpZyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9WZXJzaW9uLnhjY29u
ZmlnCmluZGV4IDMwN2VjYTg5NDk3MjJjMmY3YTljNGFkYmY2ZDY3ODY4Mjc0Y2NjOGYuLjRhMDE1
NjVmODVlYWE2NTg4YzMwYzE5MDg5NDkwOTA1OTI4MjIzMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9WZXJzaW9uLnhjY29uZmlnCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9WZXJzaW9uLnhjY29u
ZmlnCkBAIC0yMyw3ICsyMyw3IEBACiAKIE1BSk9SX1ZFUlNJT04gPSA2MDY7CiBNSU5PUl9WRVJT
SU9OID0gMTsKLVRJTllfVkVSU0lPTiA9IDEwOworVElOWV9WRVJTSU9OID0gMTE7CiBNSUNST19W
RVJTSU9OID0gMDsKIE5BTk9fVkVSU0lPTiA9IDA7CiBGVUxMX1ZFUlNJT04gPSAkKE1BSk9SX1ZF
UlNJT04pLiQoTUlOT1JfVkVSU0lPTikuJChUSU5ZX1ZFUlNJT04pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5pT1MuZXhw
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5p
T1MuZXhwCmluZGV4IDVhYTUxNDdkMzlkNjkyMDUyNWVlOTk0ZmZhZTc5YjUwZjNkNTkyZDMuLjEw
ZjMxNzMxNmNhY2QyNzYwMzJiYjUxYzY1YWZjM2UxMjZjZmI0MWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9TLmV4cAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2VicnRj
LmlPUy5leHAKQEAgLTEyNSwzICsxMjUsOCBAQCBfX1pOSzZ3ZWJydGMyMUljZUNhbmRpZGF0ZUlu
dGVyZmFjZTEwc2VydmVyX3VybEV2CiBfX1pOSzZ3ZWJydGMyN1Nlc3Npb25EZXNjcmlwdGlvbklu
dGVyZmFjZTdHZXRUeXBlRXYKIF9fWlRWTjZ3ZWJydGMyMUljZUNhbmRpZGF0ZUludGVyZmFjZUUK
IF9fWlRWTjZ3ZWJydGMyN1Nlc3Npb25EZXNjcmlwdGlvbkludGVyZmFjZUUKK19fWk42d2VicnRj
MjBzZXRBcHBsaWNhdGlvblN0YXR1c0ViCitfX1pONndlYnJ0YzMyY3JlYXRlVmlkZW9Ub29sYm94
RGVjb2RlckZhY3RvcnlFdgorX19aTjZ3ZWJydGMzMmNyZWF0ZVZpZGVvVG9vbGJveEVuY29kZXJG
YWN0b3J5RXYKK19fWk42d2VicnRjMjlzZXRIMjY0SGFyZHdhcmVFbmNvZGVyQWxsb3dlZEViCitf
X1pONndlYnJ0YzIwcGl4ZWxCdWZmZXJGcm9tRnJhbWVFUktOU18xMFZpZGVvRnJhbWVFCmRpZmYg
LS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlvbnMvbGlid2Vi
cnRjLmlPU3NpbS5leHAgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ29uZmlndXJhdGlv
bnMvbGlid2VicnRjLmlPU3NpbS5leHAKaW5kZXggNWFhNTE0N2QzOWQ2OTIwNTI1ZWU5OTRmZmFl
NzliNTBmM2Q1OTJkMy4uMTBmMzE3MzE2Y2FjZDI3NjAzMmJiNTFjNjVhZmMzZTEyNmNmYjQxZCAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xp
YndlYnJ0Yy5pT1NzaW0uZXhwCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Db25m
aWd1cmF0aW9ucy9saWJ3ZWJydGMuaU9Tc2ltLmV4cApAQCAtMTI1LDMgKzEyNSw4IEBAIF9fWk5L
NndlYnJ0YzIxSWNlQ2FuZGlkYXRlSW50ZXJmYWNlMTBzZXJ2ZXJfdXJsRXYKIF9fWk5LNndlYnJ0
YzI3U2Vzc2lvbkRlc2NyaXB0aW9uSW50ZXJmYWNlN0dldFR5cGVFdgogX19aVFZONndlYnJ0YzIx
SWNlQ2FuZGlkYXRlSW50ZXJmYWNlRQogX19aVFZONndlYnJ0YzI3U2Vzc2lvbkRlc2NyaXB0aW9u
SW50ZXJmYWNlRQorX19aTjZ3ZWJydGMyMHNldEFwcGxpY2F0aW9uU3RhdHVzRWIKK19fWk42d2Vi
cnRjMzJjcmVhdGVWaWRlb1Rvb2xib3hEZWNvZGVyRmFjdG9yeUV2CitfX1pONndlYnJ0YzMyY3Jl
YXRlVmlkZW9Ub29sYm94RW5jb2RlckZhY3RvcnlFdgorX19aTjZ3ZWJydGMyOXNldEgyNjRIYXJk
d2FyZUVuY29kZXJBbGxvd2VkRWIKK19fWk42d2VicnRjMjBwaXhlbEJ1ZmZlckZyb21GcmFtZUVS
S05TXzEwVmlkZW9GcmFtZUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4cCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Db25maWd1cmF0aW9ucy9saWJ3ZWJydGMubWFjLmV4cAppbmRleCBlMTFlY2JhMTUz
NzAxMmEzNDE4ZjY2OWY4ZDRkZDQ2NjM2ZWY2ZTI4Li5hNzdlYmYxNjRhMzIwNWZjZjUyZGM0N2Fi
NWJiMWJhOWE4ZWQzZWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
Q29uZmlndXJhdGlvbnMvbGlid2VicnRjLm1hYy5leHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL0NvbmZpZ3VyYXRpb25zL2xpYndlYnJ0Yy5tYWMuZXhwCkBAIC0xMjYsMyArMTI2
LDggQEAgX19aTks2d2VicnRjMjFJY2VDYW5kaWRhdGVJbnRlcmZhY2UxMHNlcnZlcl91cmxFdgog
X19aTks2d2VicnRjMjdTZXNzaW9uRGVzY3JpcHRpb25JbnRlcmZhY2U3R2V0VHlwZUV2CiBfX1pU
Vk42d2VicnRjMjFJY2VDYW5kaWRhdGVJbnRlcmZhY2VFCiBfX1pUVk42d2VicnRjMjdTZXNzaW9u
RGVzY3JpcHRpb25JbnRlcmZhY2VFCitfX1pONndlYnJ0YzIwc2V0QXBwbGljYXRpb25TdGF0dXNF
YgorX19aTjZ3ZWJydGMzMmNyZWF0ZVZpZGVvVG9vbGJveERlY29kZXJGYWN0b3J5RXYKK19fWk42
d2VicnRjMzJjcmVhdGVWaWRlb1Rvb2xib3hFbmNvZGVyRmFjdG9yeUV2CitfX1pONndlYnJ0YzI5
c2V0SDI2NEhhcmR3YXJlRW5jb2RlckFsbG93ZWRFYgorX19aTjZ3ZWJydGMyMHBpeGVsQnVmZmVy
RnJvbUZyYW1lRVJLTlNfMTBWaWRlb0ZyYW1lRQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvcnRjX2Jhc2UvdGFza19xdWV1ZV9nY2QuY2MgYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9ydGNfYmFzZS90YXNrX3F1
ZXVlX2djZC5jYwppbmRleCBhMTNlMDg4ZWRlNjBiZDkxZDY2NDkxMjFiZmExMzQ2MzRjNGFmNDhk
Li42NzViODAwNTcyMmYzZDYwNzI3MDMxNzgzMTY0OThkZDljZDIxOGNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9ydGNfYmFzZS90YXNrX3F1
ZXVlX2djZC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9ydGNfYmFzZS90YXNrX3F1ZXVlX2djZC5jYwpAQCAtMTM5LDcgKzEzOSw3IEBAIGNsYXNzIFRh
c2tRdWV1ZTo6SW1wbCA6IHB1YmxpYyBSZWZDb3VudEludGVyZmFjZSB7CiBUYXNrUXVldWU6Oklt
cGw6OkltcGwoY29uc3QgY2hhciogcXVldWVfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICBU
YXNrUXVldWUqIHRhc2tfcXVldWUsCiAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgcHJp
b3JpdHkpCi0gICAgOiBxdWV1ZV8oZGlzcGF0Y2hfcXVldWVfY3JlYXRlKHF1ZXVlX25hbWUsIERJ
U1BBVENIX1FVRVVFX1NFUklBTCkpLAorICAgIDogcXVldWVfKGRpc3BhdGNoX3F1ZXVlX2NyZWF0
ZV93aXRoX3RhcmdldChxdWV1ZV9uYW1lLCBESVNQQVRDSF9RVUVVRV9TRVJJQUwsIGRpc3BhdGNo
X2dldF9nbG9iYWxfcXVldWUoVGFza1F1ZXVlUHJpb3JpdHlUb0dDRChwcmlvcml0eSksIDApKSks
CiAgICAgICBjb250ZXh0XyhuZXcgUXVldWVDb250ZXh0KHRhc2tfcXVldWUpKSB7CiAgIFJUQ19E
Q0hFQ0socXVldWVfbmFtZSk7CiAgIFJUQ19DSEVDSyhxdWV1ZV8pOwpAQCAtMTQ4LDkgKzE0OCw2
IEBAIFRhc2tRdWV1ZTo6SW1wbDo6SW1wbChjb25zdCBjaGFyKiBxdWV1ZV9uYW1lLAogICAvLyB0
byB0aGUgcXVldWUgaXMgcmVsZWFzZWQuICBUaGlzIG1heSBydW4gYWZ0ZXIgdGhlIFRhc2tRdWV1
ZSBvYmplY3QgaGFzCiAgIC8vIGJlZW4gZGVsZXRlZC4KICAgZGlzcGF0Y2hfc2V0X2ZpbmFsaXpl
cl9mKHF1ZXVlXywgJlF1ZXVlQ29udGV4dDo6RGVsZXRlQ29udGV4dCk7Ci0KLSAgZGlzcGF0Y2hf
c2V0X3RhcmdldF9xdWV1ZSgKLSAgICAgIHF1ZXVlXywgZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1
ZShUYXNrUXVldWVQcmlvcml0eVRvR0NEKHByaW9yaXR5KSwgMCkpOwogfQogCiBUYXNrUXVldWU6
OkltcGw6On5JbXBsKCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9FbmNvZGVyVXRpbGl0aWVzLmggYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0L0VuY29kZXJVdGlsaXRp
ZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wNzg1MDBjZTMzZDdhNmIyZWM5YjM0YzJiZjljOTAwMDA2N2VhODAx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL1dlYktpdC9FbmNvZGVyVXRpbGl0aWVzLmgKQEAgLTAsMCArMSw1MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiVmlkZW9Qcm9jZXNzaW5nU29mdExp
bmsuaCIKKworI2lmIEVOQUJMRV9WQ1BfRU5DT0RFUgorCisjZGVmaW5lIENvbXByZXNzaW9uU2Vz
c2lvblJlZiBWQ1BDb21wcmVzc2lvblNlc3Npb25SZWYKKyNkZWZpbmUgQ29tcHJlc3Npb25TZXNz
aW9uU2V0UHJvcGVydHkgd2VicnRjOjpWQ1BDb21wcmVzc2lvblNlc3Npb25TZXRQcm9wZXJ0eQor
I2RlZmluZSBDb21wcmVzc2lvblNlc3Npb25HZXRQaXhlbEJ1ZmZlclBvb2wgd2VicnRjOjpWQ1BD
b21wcmVzc2lvblNlc3Npb25HZXRQaXhlbEJ1ZmZlclBvb2wKKyNkZWZpbmUgQ29tcHJlc3Npb25T
ZXNzaW9uRW5jb2RlRnJhbWUgd2VicnRjOjpWQ1BDb21wcmVzc2lvblNlc3Npb25FbmNvZGVGcmFt
ZQorI2RlZmluZSBDb21wcmVzc2lvblNlc3Npb25DcmVhdGUgd2VicnRjOjpWQ1BDb21wcmVzc2lv
blNlc3Npb25DcmVhdGUKKyNkZWZpbmUga0NvZGVjVHlwZUgyNjQga1ZDUENvZGVjVHlwZTRDQ19I
MjY0CisjZGVmaW5lIENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUgd2VicnRjOjpWQ1BDb21w
cmVzc2lvblNlc3Npb25JbnZhbGlkYXRlCisKKyNlbHNlCisKKyNkZWZpbmUgQ29tcHJlc3Npb25T
ZXNzaW9uUmVmIFZUQ29tcHJlc3Npb25TZXNzaW9uUmVmCisjZGVmaW5lIENvbXByZXNzaW9uU2Vz
c2lvblNldFByb3BlcnR5IFZUQ29tcHJlc3Npb25TZXNzaW9uU2V0UHJvcGVydHkKKyNkZWZpbmUg
Q29tcHJlc3Npb25TZXNzaW9uR2V0UGl4ZWxCdWZmZXJQb29sIFZUQ29tcHJlc3Npb25TZXNzaW9u
R2V0UGl4ZWxCdWZmZXJQb29sCisjZGVmaW5lIENvbXByZXNzaW9uU2Vzc2lvbkVuY29kZUZyYW1l
IFZUQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUKKyNkZWZpbmUgQ29tcHJlc3Npb25TZXNz
aW9uQ3JlYXRlIFZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlCisjZGVmaW5lIGtDb2RlY1R5cGVI
MjY0IGtDTVZpZGVvQ29kZWNUeXBlX0gyNjQKKyNkZWZpbmUgQ29tcHJlc3Npb25TZXNzaW9uSW52
YWxpZGF0ZSBWVENvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvV2ViS2l0
L1ZpZGVvUHJvY2Vzc2luZ1NvZnRMaW5rLmNwcCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvVmlkZW9Qcm9jZXNzaW5nU29mdExpbmsuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjEwMWU4N2M2Njc3NzA0NGExZWE1NTdkMmE1ODYwZTUwYTlmMTMzNmEKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9z
ZGsvV2ViS2l0L1ZpZGVvUHJvY2Vzc2luZ1NvZnRMaW5rLmNwcApAQCAtMCwwICsxLDc4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgIlZpZGVvUHJvY2Vzc2luZ1NvZnRMaW5rLmgiCisKKyNpZiBF
TkFCTEVfVkNQX0VOQ09ERVIKKworI2luY2x1ZGUgInJ0Y19iYXNlL2xvZ2dpbmcuaCIKKyNpbXBv
cnQgPGRsZmNuLmg+CisjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KKworLy8gTWFjcm9zIGNvcGll
ZCBmcm9tIDx3dGYvY29jb2EvU29mdExpbmtpbmcuaD4KKyNkZWZpbmUgU09GVF9MSU5LX1BSSVZB
VEVfRlJBTUVXT1JLX0ZPUl9TT1VSQ0UoZnVuY3Rpb25OYW1lc3BhY2UsIGZyYW1ld29yaykgXAor
ICAgIG5hbWVzcGFjZSBmdW5jdGlvbk5hbWVzcGFjZSB7IFwKKyAgICB2b2lkKiBmcmFtZXdvcmsj
I0xpYnJhcnkoYm9vbCBpc09wdGlvbmFsKSBcCisgICAgeyBcCisgICAgICAgIHN0YXRpYyB2b2lk
KiBmcmFtZXdvcmtMaWJyYXJ5OyBcCisgICAgICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNlX3Qgb25j
ZTsgXAorICAgICAgICBkaXNwYXRjaF9vbmNlKCZvbmNlLCBeeyBcCisgICAgICAgICAgICBmcmFt
ZXdvcmtMaWJyYXJ5ID0gZGxvcGVuKCIvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3Mv
IiAjZnJhbWV3b3JrICIuZnJhbWV3b3JrLyIgI2ZyYW1ld29yaywgUlRMRF9OT1cpOyBcCisgICAg
ICAgICAgICBpZiAoIWlzT3B0aW9uYWwgJiYgIWZyYW1ld29ya0xpYnJhcnkpIFwKKyAgICAgICAg
ICAgICAgICBSVENfTE9HKExTX0VSUk9SKSA8PCAiQ2Fubm90IG9wZW4gZnJhbWV3b3JrOiAiIDw8
IGRsZXJyb3IoKTsgXAorICAgICAgICB9KTsgXAorICAgICAgICByZXR1cm4gZnJhbWV3b3JrTGli
cmFyeTsgXAorICAgIH0gXAorICAgIH0KKworI2RlZmluZSBTT0ZUX0xJTktfRlVOQ1RJT05fRk9S
X1NPVVJDRShmdW5jdGlvbk5hbWVzcGFjZSwgZnJhbWV3b3JrLCBmdW5jdGlvbk5hbWUsIHJlc3Vs
dFR5cGUsIHBhcmFtZXRlckRlY2xhcmF0aW9ucywgcGFyYW1ldGVyTmFtZXMpIFwKKyAgICBleHRl
cm4gIkMiIHsgXAorICAgIHJlc3VsdFR5cGUgZnVuY3Rpb25OYW1lIHBhcmFtZXRlckRlY2xhcmF0
aW9uczsgXAorICAgIH0gXAorICAgIG5hbWVzcGFjZSBmdW5jdGlvbk5hbWVzcGFjZSB7IFwKKyAg
ICBzdGF0aWMgcmVzdWx0VHlwZSBpbml0IyNmcmFtZXdvcmsjI2Z1bmN0aW9uTmFtZSBwYXJhbWV0
ZXJEZWNsYXJhdGlvbnM7IFwKKyAgICByZXN1bHRUeXBlICgqc29mdExpbmsjI2ZyYW1ld29yayMj
ZnVuY3Rpb25OYW1lKSBwYXJhbWV0ZXJEZWNsYXJhdGlvbnMgPSBpbml0IyNmcmFtZXdvcmsjI2Z1
bmN0aW9uTmFtZTsgXAorICAgIHN0YXRpYyByZXN1bHRUeXBlIGluaXQjI2ZyYW1ld29yayMjZnVu
Y3Rpb25OYW1lIHBhcmFtZXRlckRlY2xhcmF0aW9ucyBcCisgICAgeyBcCisgICAgICAgIHN0YXRp
YyBkaXNwYXRjaF9vbmNlX3Qgb25jZTsgXAorICAgICAgICBkaXNwYXRjaF9vbmNlKCZvbmNlLCBe
eyBcCisgICAgICAgICAgICBzb2Z0TGluayMjZnJhbWV3b3JrIyNmdW5jdGlvbk5hbWUgPSAocmVz
dWx0VHlwZSAoKikgcGFyYW1ldGVyRGVjbGFyYXRpb25zKSBkbHN5bShmcmFtZXdvcmsjI0xpYnJh
cnkoKSwgI2Z1bmN0aW9uTmFtZSk7IFwKKyAgICAgICAgICAgIGlmICghc29mdExpbmsjI2ZyYW1l
d29yayMjZnVuY3Rpb25OYW1lKSBcCisgICAgICAgICAgICAgICAgUlRDX0xPRyhMU19FUlJPUikg
PDwgIkNhbm5vdCBmaW5kIGZ1bmN0aW9uICMjZnVuY3Rpb25OYW1lOiAiIDw8IGRsZXJyb3IoKTsg
XAorICAgICAgICB9KTsgXAorICAgICAgICByZXR1cm4gc29mdExpbmsjI2ZyYW1ld29yayMjZnVu
Y3Rpb25OYW1lIHBhcmFtZXRlck5hbWVzOyBcCisgICAgfSBcCit9CisKK1NPRlRfTElOS19QUklW
QVRFX0ZSQU1FV09SS19GT1JfU09VUkNFKHdlYnJ0YywgVmlkZW9Qcm9jZXNzaW5nKQorCitTT0ZU
X0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRSh3ZWJydGMsIFZpZGVvUHJvY2Vzc2luZywgVkNQQ29t
cHJlc3Npb25TZXNzaW9uU2V0UHJvcGVydHksIE9TU3RhdHVzLCAoVkNQQ29tcHJlc3Npb25TZXNz
aW9uUmVmIHNlc3Npb24sIENGU3RyaW5nUmVmIGtleSwgQ0ZUeXBlUmVmIHZhbHVlKSwgKHNlc3Np
b24sIGtleSwgdmFsdWUpKQorU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9TT1VSQ0Uod2VicnRjLCBW
aWRlb1Byb2Nlc3NpbmcsIFZDUENvbXByZXNzaW9uU2Vzc2lvbkdldFBpeGVsQnVmZmVyUG9vbCwg
Q1ZQaXhlbEJ1ZmZlclBvb2xSZWYsIChWQ1BDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiks
IChzZXNzaW9uKSkKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfU09VUkNFKHdlYnJ0YywgVmlkZW9Q
cm9jZXNzaW5nLCBWQ1BDb21wcmVzc2lvblNlc3Npb25FbmNvZGVGcmFtZSwgT1NTdGF0dXMsIChW
Q1BDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiwgQ1ZJbWFnZUJ1ZmZlclJlZiBidWZmZXIs
IENNVGltZSB0aW1lc3RhbXAsIENNVGltZSB0aW1lLCBDRkRpY3Rpb25hcnlSZWYgZGljdGlvbmFy
eSwgdm9pZCogZGF0YSwgVlRFbmNvZGVJbmZvRmxhZ3MqIGZsYWdzKSwgKHNlc3Npb24sIGJ1ZmZl
ciwgdGltZXN0YW1wLCB0aW1lLCBkaWN0aW9uYXJ5LCBkYXRhLCBmbGFncykpCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX1NPVVJDRSh3ZWJydGMsIFZpZGVvUHJvY2Vzc2luZywgVkNQQ29tcHJlc3Np
b25TZXNzaW9uQ3JlYXRlLCBPU1N0YXR1cywgKENGQWxsb2NhdG9yUmVmIGFsbG9jYXRvcjEsIGlu
dDMyX3QgdmFsdWUxICwgaW50MzJfdCB2YWx1ZTIsIENNVmlkZW9Db2RlY1R5cGUgdHlwZSwgQ0ZE
aWN0aW9uYXJ5UmVmIGRpY3Rpb25hcnkxLCBDRkRpY3Rpb25hcnlSZWYgZGljdGlvbmFyeTIsIENG
QWxsb2NhdG9yUmVmIGFsbG9jYXRvcjMsIFZUQ29tcHJlc3Npb25PdXRwdXRDYWxsYmFjayBjYWxs
YmFjaywgdm9pZCogZGF0YSwgVkNQQ29tcHJlc3Npb25TZXNzaW9uUmVmKiBzZXNzaW9uKSwgKGFs
bG9jYXRvcjEsIHZhbHVlMSwgdmFsdWUyLCB0eXBlLCBkaWN0aW9uYXJ5MSwgZGljdGlvbmFyeTIs
IGFsbG9jYXRvcjMsIGNhbGxiYWNrLCBkYXRhLCBzZXNzaW9uKSkKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfU09VUkNFKHdlYnJ0YywgVmlkZW9Qcm9jZXNzaW5nLCBWQ1BDb21wcmVzc2lvblNlc3Np
b25JbnZhbGlkYXRlLCB2b2lkLCAoVkNQQ29tcHJlc3Npb25TZXNzaW9uUmVmIHNlc3Npb24pLCAo
c2Vzc2lvbikpCitTT0ZUX0xJTktfRlVOQ1RJT05fRk9SX1NPVVJDRSh3ZWJydGMsIFZpZGVvUHJv
Y2Vzc2luZywgVlBNb2R1bGVJbml0aWFsaXplLCB2b2lkLCAoKSwgKCkpCisKKyNlbmRpZiAvLyBF
TkFCTEVfVkNQX0VOQ09ERVIKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvVmlkZW9Qcm9jZXNzaW5nU29mdExpbmsuaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvVmlkZW9Q
cm9jZXNzaW5nU29mdExpbmsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjBhNTNmYjdjZjI2MDIwMjMwNWMyODll
NDBlM2M4MjAyODk2ZTdkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGli
d2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9WaWRlb1Byb2Nlc3NpbmdTb2Z0TGluay5o
CkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZmRlZiBf
X0FQUExFX18KKyNpbmNsdWRlIDxBdmFpbGFiaWxpdHkuaD4KKyNpbmNsdWRlIDxBdmFpbGFiaWxp
dHlNYWNyb3MuaD4KKyNpbmNsdWRlIDxUYXJnZXRDb25kaXRpb25hbHMuaD4KKworLy8gTWFjcm8g
dGFrZW4gZnJvbSBXVEYvd3RmL1BsYXRmb3JtLmgKKyNpZiBkZWZpbmVkIF9faGFzX2luY2x1ZGUg
JiYgX19oYXNfaW5jbHVkZSg8Q29yZUZvdW5kYXRpb24vQ0ZQcml2Lmg+KQorCisjaWYgKGRlZmlu
ZWQoVEFSR0VUX0lQSE9ORV9TSU1VTEFUT1IpICAmJiBUQVJHRVRfSVBIT05FX1NJTVVMQVRPUikK
KyNkZWZpbmUgRU5BQkxFX1ZDUF9FTkNPREVSIDAKKyNlbGlmIChkZWZpbmVkKFRBUkdFVF9PU19J
UEhPTkUpICAmJiBUQVJHRVRfT1NfSVBIT05FKQorI2RlZmluZSBFTkFCTEVfVkNQX0VOQ09ERVIg
KF9fSVBIT05FX09TX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTEwMzAwKQorI2VsaWYgKGRlZmlu
ZWQoVEFSR0VUX09TX01BQykgICYmIFRBUkdFVF9PU19NQUMpCisjZGVmaW5lIEVOQUJMRV9WQ1Bf
RU5DT0RFUiAoX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEwMTMwNCkKKyNlbmRp
ZgorCisjZW5kaWYKKworI2lmIEVOQUJMRV9WQ1BfRU5DT0RFUgorCisjaW5jbHVkZSA8VmlkZW9Q
cm9jZXNzaW5nL1ZpZGVvUHJvY2Vzc2luZy5oPgorCisjZGVmaW5lIEFMV0FZU19JTkxJTkUgaW5s
aW5lCisKKyNpZmRlZiBfX2NwbHVzcGx1cworI2RlZmluZSBXVEZfRVhURVJOX0NfQkVHSU4gZXh0
ZXJuICJDIiB7CisjZGVmaW5lIFdURl9FWFRFUk5fQ19FTkQgfQorI2Vsc2UKKyNkZWZpbmUgV1RG
X0VYVEVSTl9DX0JFR0lOCisjZGVmaW5lIFdURl9FWFRFUk5fQ19FTkQKKyNlbmRpZgorCisvLyBN
YWNyb3MgY29waWVkIGZyb20gPHd0Zi9jb2NvYS9Tb2Z0TGlua2luZy5oPgorI2RlZmluZSBTT0ZU
X0xJTktfRlJBTUVXT1JLX0ZPUl9IRUFERVIoZnVuY3Rpb25OYW1lc3BhY2UsIGZyYW1ld29yaykg
XAorICAgIG5hbWVzcGFjZSBmdW5jdGlvbk5hbWVzcGFjZSB7IFwKKyAgICBleHRlcm4gdm9pZCog
ZnJhbWV3b3JrIyNMaWJyYXJ5KGJvb2wgaXNPcHRpb25hbCA9IGZhbHNlKTsgXAorICAgIGJvb2wg
aXMjI2ZyYW1ld29yayMjRnJhbWV3b3JrQXZhaWxhYmxlKCk7IFwKKyAgICBpbmxpbmUgYm9vbCBp
cyMjZnJhbWV3b3JrIyNGcmFtZXdvcmtBdmFpbGFibGUoKSB7IFwKKyAgICAgICAgcmV0dXJuIGZy
YW1ld29yayMjTGlicmFyeSh0cnVlKSAhPSBudWxscHRyOyBcCisgICAgfSBcCisgICAgfQorCisj
ZGVmaW5lIFNPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKGZ1bmN0aW9uTmFtZXNwYWNlLCBm
cmFtZXdvcmssIGZ1bmN0aW9uTmFtZSwgcmVzdWx0VHlwZSwgcGFyYW1ldGVyRGVjbGFyYXRpb25z
LCBwYXJhbWV0ZXJOYW1lcykgXAorICAgIFdURl9FWFRFUk5fQ19CRUdJTiBcCisgICAgcmVzdWx0
VHlwZSBmdW5jdGlvbk5hbWUgcGFyYW1ldGVyRGVjbGFyYXRpb25zOyBcCisgICAgV1RGX0VYVEVS
Tl9DX0VORCBcCisgICAgbmFtZXNwYWNlIGZ1bmN0aW9uTmFtZXNwYWNlIHsgXAorICAgIGV4dGVy
biByZXN1bHRUeXBlICgqc29mdExpbmsjI2ZyYW1ld29yayMjZnVuY3Rpb25OYW1lKSBwYXJhbWV0
ZXJEZWNsYXJhdGlvbnM7IFwKKyAgICBpbmxpbmUgcmVzdWx0VHlwZSBzb2Z0TGlua18jI2ZyYW1l
d29yayMjXyMjZnVuY3Rpb25OYW1lIHBhcmFtZXRlckRlY2xhcmF0aW9ucyBcCisgICAgeyBcCisg
ICAgICAgIHJldHVybiBzb2Z0TGluayMjZnJhbWV3b3JrIyNmdW5jdGlvbk5hbWUgcGFyYW1ldGVy
TmFtZXM7IFwKKyAgICB9IFwKKyAgICB9IFwKKyAgICBBTFdBWVNfSU5MSU5FIHJlc3VsdFR5cGUg
ZnVuY3Rpb25OYW1lIHBhcmFtZXRlckRlY2xhcmF0aW9ucyBcCisgICAge1wKKyAgICAgICAgcmV0
dXJuIGZ1bmN0aW9uTmFtZXNwYWNlOjpzb2Z0TGluayMjZnJhbWV3b3JrIyNmdW5jdGlvbk5hbWUg
cGFyYW1ldGVyTmFtZXM7IFwKKyAgICB9CisKK1NPRlRfTElOS19GUkFNRVdPUktfRk9SX0hFQURF
Uih3ZWJydGMsIFZpZGVvUHJvY2Vzc2luZykKKworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9IRUFE
RVIod2VicnRjLCBWaWRlb1Byb2Nlc3NpbmcsIFZDUENvbXByZXNzaW9uU2Vzc2lvblNldFByb3Bl
cnR5LCBPU1N0YXR1cywgKFZDUENvbXByZXNzaW9uU2Vzc2lvblJlZiBzZXNzaW9uLCBDRlN0cmlu
Z1JlZiBrZXksIENGVHlwZVJlZiB2YWx1ZSksIChzZXNzaW9uLCBrZXksIHZhbHVlKSkKKyNkZWZp
bmUgVkNQQ29tcHJlc3Npb25TZXNzaW9uU2V0UHJvcGVydHkgc29mdExpbmtfVmlkZW9Qcm9jZXNz
aW5nX1ZDUENvbXByZXNzaW9uU2Vzc2lvblNldFByb3BlcnR5CisKK1NPRlRfTElOS19GVU5DVElP
Tl9GT1JfSEVBREVSKHdlYnJ0YywgVmlkZW9Qcm9jZXNzaW5nLCBWQ1BDb21wcmVzc2lvblNlc3Np
b25HZXRQaXhlbEJ1ZmZlclBvb2wsIENWUGl4ZWxCdWZmZXJQb29sUmVmLCAoVkNQQ29tcHJlc3Np
b25TZXNzaW9uUmVmIHNlc3Npb24pLCAoc2Vzc2lvbikpCisjZGVmaW5lIFZDUENvbXByZXNzaW9u
U2Vzc2lvbkdldFBpeGVsQnVmZmVyUG9vbCBzb2Z0TGlua19WaWRlb1Byb2Nlc3NpbmdfVkNQQ29t
cHJlc3Npb25TZXNzaW9uR2V0UGl4ZWxCdWZmZXJQb29sCisKK1NPRlRfTElOS19GVU5DVElPTl9G
T1JfSEVBREVSKHdlYnJ0YywgVmlkZW9Qcm9jZXNzaW5nLCBWQ1BDb21wcmVzc2lvblNlc3Npb25F
bmNvZGVGcmFtZSwgT1NTdGF0dXMsIChWQ1BDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiwg
Q1ZJbWFnZUJ1ZmZlclJlZiBidWZmZXIsIENNVGltZSB0aW1lc3RhbXAsIENNVGltZSB0aW1lLCBD
RkRpY3Rpb25hcnlSZWYgZGljdGlvbmFyeSwgdm9pZCAqIGRhdGEsIFZURW5jb2RlSW5mb0ZsYWdz
ICogZmxhZ3MpLCAoc2Vzc2lvbiwgYnVmZmVyLCB0aW1lc3RhbXAsIHRpbWUsIGRpY3Rpb25hcnks
IGRhdGEsIGZsYWdzKSkKKyNkZWZpbmUgVkNQQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUg
c29mdExpbmtfVmlkZW9Qcm9jZXNzaW5nX1ZDUENvbXByZXNzaW9uU2Vzc2lvbkVuY29kZUZyYW1l
CisKK1NPRlRfTElOS19GVU5DVElPTl9GT1JfSEVBREVSKHdlYnJ0YywgVmlkZW9Qcm9jZXNzaW5n
LCBWQ1BDb21wcmVzc2lvblNlc3Npb25DcmVhdGUsIE9TU3RhdHVzLCAoQ0ZBbGxvY2F0b3JSZWYg
YWxsb2NhdG9yMSwgaW50MzJfdCB2YWx1ZTEgLCBpbnQzMl90IHZhbHVlMiwgQ01WaWRlb0NvZGVj
VHlwZSB0eXBlLCBDRkRpY3Rpb25hcnlSZWYgZGljdGlvbmFyeTEsIENGRGljdGlvbmFyeVJlZiBk
aWN0aW9uYXJ5MiwgQ0ZBbGxvY2F0b3JSZWYgYWxsb2NhdG9yMywgVlRDb21wcmVzc2lvbk91dHB1
dENhbGxiYWNrIGNhbGxiYWNrLCB2b2lkICogZGF0YSwgVkNQQ29tcHJlc3Npb25TZXNzaW9uUmVm
ICpzZXNzaW9uKSwgKGFsbG9jYXRvcjEsIHZhbHVlMSwgdmFsdWUyLCB0eXBlLCBkaWN0aW9uYXJ5
MSwgZGljdGlvbmFyeTIsIGFsbG9jYXRvcjMsIGNhbGxiYWNrLCBkYXRhLCBzZXNzaW9uKSkKKyNk
ZWZpbmUgVkNQQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlIHNvZnRMaW5rX1ZpZGVvUHJvY2Vzc2lu
Z19WQ1BDb21wcmVzc2lvblNlc3Npb25DcmVhdGUKKworU09GVF9MSU5LX0ZVTkNUSU9OX0ZPUl9I
RUFERVIod2VicnRjLCBWaWRlb1Byb2Nlc3NpbmcsIFZDUENvbXByZXNzaW9uU2Vzc2lvbkludmFs
aWRhdGUsIHZvaWQsIChWQ1BDb21wcmVzc2lvblNlc3Npb25SZWYgc2Vzc2lvbiksIChzZXNzaW9u
KSkKKyNkZWZpbmUgVkNQQ29tcHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZSBzb2Z0TGlua19WaWRl
b1Byb2Nlc3NpbmdfVkNQQ29tcHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZQorCitTT0ZUX0xJTktf
RlVOQ1RJT05fRk9SX0hFQURFUih3ZWJydGMsIFZpZGVvUHJvY2Vzc2luZywgVlBNb2R1bGVJbml0
aWFsaXplLCB2b2lkLCAoKSwgKCkpCisjZGVmaW5lIFZQTW9kdWxlSW5pdGlhbGl6ZSBzb2Z0TGlu
a19WaWRlb1Byb2Nlc3NpbmdfVlBNb2R1bGVJbml0aWFsaXplCisKKyNlbmRpZiAvLyBFTkFCTEVf
VkNQX0VOQ09ERVIKKworI2VuZGlmIC8vIF9fQVBQTEVfXwpkaWZmIC0tZ2l0IGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9XZWJLaXRVdGlsaXRp
ZXMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJL
aXQvV2ViS2l0VXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzNlZmFjNmY4NWZhNDYwNjAzZTg1ZGFl
NWZkMWViMzc5ODBkNzQ1MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmgKQEAgLTAs
MCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiYXBpL3Zp
ZGVvX2NvZGVjcy92aWRlb19lbmNvZGVyX2ZhY3RvcnkuaCIKKwordHlwZWRlZiBzdHJ1Y3QgX19D
VkJ1ZmZlciogQ1ZQaXhlbEJ1ZmZlclJlZjsKKworbmFtZXNwYWNlIHdlYnJ0YyB7CisKK2NsYXNz
IFZpZGVvRGVjb2RlckZhY3Rvcnk7CitjbGFzcyBWaWRlb0VuY29kZXJGYWN0b3J5OworY2xhc3Mg
VmlkZW9GcmFtZTsKKworc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9FbmNvZGVyRmFjdG9y
eT4gY3JlYXRlVmlkZW9Ub29sYm94RW5jb2RlckZhY3RvcnkoKTsKK3N0ZDo6dW5pcXVlX3B0cjx3
ZWJydGM6OlZpZGVvRGVjb2RlckZhY3Rvcnk+IGNyZWF0ZVZpZGVvVG9vbGJveERlY29kZXJGYWN0
b3J5KCk7CisKK3ZvaWQgc2V0QXBwbGljYXRpb25TdGF0dXMoYm9vbCBpc0FjdGl2ZSk7CisKK3Zv
aWQgc2V0SDI2NEhhcmR3YXJlRW5jb2RlckFsbG93ZWQoYm9vbCk7Citib29sIGlzSDI2NEhhcmR3
YXJlRW5jb2RlckFsbG93ZWQoKTsKKworQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlckZyb21G
cmFtZShjb25zdCBWaWRlb0ZyYW1lJik7CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLm1t
IGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL1dlYktpdC9X
ZWJLaXRVdGlsaXRpZXMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjRkY2E0YmM2YTc3YTM5OWQ0N2I0OTJiMmM4
MDc1NGFiNjE4ZjZjNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLm1tCkBAIC0wLDAg
KzEsMTI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIldlYktpdFV0aWxpdGllcy5oIgorI2lu
Y2x1ZGUgIkNvbW1vbi9SVENVSUFwcGxpY2F0aW9uU3RhdHVzT2JzZXJ2ZXIuaCIKKyNpbmNsdWRl
ICJWaWRlb1Rvb2xib3gvb2JqY192aWRlb19kZWNvZGVyX2ZhY3RvcnkuaCIKKyNpbmNsdWRlICJW
aWRlb1Rvb2xib3gvb2JqY192aWRlb19lbmNvZGVyX2ZhY3RvcnkuaCIKKyNpbXBvcnQgIldlYlJU
Qy9SVENWaWRlb0NvZGVjSDI2NC5oIgorI2luY2x1ZGUgImFwaS92aWRlby92aWRlb19mcmFtZS5o
IgorI2luY2x1ZGUgPHdlYnJ0Yy9zZGsvb2JqYy9GcmFtZXdvcmsvQ2xhc3Nlcy9WaWRlby9vYmpj
X2ZyYW1lX2J1ZmZlci5oPgorI2luY2x1ZGUgPHdlYnJ0Yy9zZGsvb2JqYy9GcmFtZXdvcmsvSGVh
ZGVycy9XZWJSVEMvUlRDVmlkZW9GcmFtZUJ1ZmZlci5oPgorCisjaWYgIWRlZmluZWQoV0VCUlRD
X0lPUykKK0BpbnRlcmZhY2UgUlRDVUlBcHBsaWNhdGlvblN0YXR1c09ic2VydmVyIDogTlNPYmpl
Y3QKKworKyAoaW5zdGFuY2V0eXBlKXNoYXJlZEluc3RhbmNlOworKyAodm9pZClwcmVwYXJlRm9y
VXNlOworCistIChCT09MKWlzQXBwbGljYXRpb25BY3RpdmU7CisKK0BlbmQKKyNlbmRpZgorCitA
aW1wbGVtZW50YXRpb24gUlRDVUlBcHBsaWNhdGlvblN0YXR1c09ic2VydmVyIHsKKyAgICBCT09M
IF9pc0FjdGl2ZTsKK30KKworKyAoaW5zdGFuY2V0eXBlKXNoYXJlZEluc3RhbmNlIHsKKyAgICBz
dGF0aWMgaWQgc2hhcmVkSW5zdGFuY2U7CisgICAgc3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNl
VG9rZW47CisgICAgZGlzcGF0Y2hfb25jZSgmb25jZVRva2VuLCBeeworICAgICAgICBzaGFyZWRJ
bnN0YW5jZSA9IFtbc2VsZiBhbGxvY10gaW5pdF07CisgICAgfSk7CisKKyAgICByZXR1cm4gc2hh
cmVkSW5zdGFuY2U7Cit9CisKKysgKHZvaWQpcHJlcGFyZUZvclVzZSB7CisgICAgX191bnVzZWQg
UlRDVUlBcHBsaWNhdGlvblN0YXR1c09ic2VydmVyICpvYnNlcnZlciA9IFtzZWxmIHNoYXJlZElu
c3RhbmNlXTsKK30KKworLSAoaWQpaW5pdCB7CisgICAgX2lzQWN0aXZlID0gWUVTOworICAgIHJl
dHVybiBzZWxmOworfQorCistICh2b2lkKXNldEFjdGl2ZSB7CisgICAgX2lzQWN0aXZlID0gWUVT
OworfQorCistICh2b2lkKXNldEluYWN0aXZlIHsKKyAgICBfaXNBY3RpdmUgPSBOTzsKK30KKwor
LSAoQk9PTClpc0FwcGxpY2F0aW9uQWN0aXZlIHsKKyAgICByZXR1cm4gX2lzQWN0aXZlOworfQor
CitAZW5kCisKK25hbWVzcGFjZSB3ZWJydGMgeworCit2b2lkIHNldEFwcGxpY2F0aW9uU3RhdHVz
KGJvb2wgaXNBY3RpdmUpCit7CisgICAgaWYgKGlzQWN0aXZlKQorICAgICAgICBbW1JUQ1VJQXBw
bGljYXRpb25TdGF0dXNPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV0gc2V0QWN0aXZlXTsKKyAgICBl
bHNlCisgICAgICAgIFtbUlRDVUlBcHBsaWNhdGlvblN0YXR1c09ic2VydmVyIHNoYXJlZEluc3Rh
bmNlXSBzZXRJbmFjdGl2ZV07Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjx3ZWJydGM6OlZpZGVvRW5j
b2RlckZhY3Rvcnk+IGNyZWF0ZVZpZGVvVG9vbGJveEVuY29kZXJGYWN0b3J5KCkKK3sKKyNpZiBF
TkFCTEVfVkNQX0VOQ09ERVIKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7Cisg
ICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKKyAgICAgICAgd2VicnRjOjpWUE1vZHVs
ZUluaXRpYWxpemUoKTsKKyAgICB9KTsKKyNlbmRpZgorICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p
cXVlPHdlYnJ0Yzo6T2JqQ1ZpZGVvRW5jb2RlckZhY3Rvcnk+KFtbUlRDVmlkZW9FbmNvZGVyRmFj
dG9yeUgyNjQgYWxsb2NdIGluaXRdKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6Vmlk
ZW9EZWNvZGVyRmFjdG9yeT4gY3JlYXRlVmlkZW9Ub29sYm94RGVjb2RlckZhY3RvcnkoKQorewor
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPHdlYnJ0Yzo6T2JqQ1ZpZGVvRGVjb2RlckZhY3Rv
cnk+KFtbUlRDVmlkZW9EZWNvZGVyRmFjdG9yeUgyNjQgYWxsb2NdIGluaXRdKTsKK30KKworc3Rh
dGljIGJvb2wgaDI2NEhhcmR3YXJlRW5jb2RlckFsbG93ZWQgPSB0cnVlOwordm9pZCBzZXRIMjY0
SGFyZHdhcmVFbmNvZGVyQWxsb3dlZChib29sIGFsbG93ZWQpCit7CisgICAgaDI2NEhhcmR3YXJl
RW5jb2RlckFsbG93ZWQgPSBhbGxvd2VkOworfQorCitib29sIGlzSDI2NEhhcmR3YXJlRW5jb2Rl
ckFsbG93ZWQoKQoreworICAgIHJldHVybiBoMjY0SGFyZHdhcmVFbmNvZGVyQWxsb3dlZDsKK30K
KworQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlckZyb21GcmFtZShjb25zdCBWaWRlb0ZyYW1l
JiBmcmFtZSkKK3sKKyAgICBhdXRvIGJ1ZmZlciA9IGZyYW1lLnZpZGVvX2ZyYW1lX2J1ZmZlcigp
OworICAgIGF1dG8gZnJhbWVCdWZmZXIgPSBzdGF0aWNfY2FzdDx3ZWJydGM6Ok9iakNGcmFtZUJ1
ZmZlciY+KCpidWZmZXIpLndyYXBwZWRfZnJhbWVfYnVmZmVyKCk7CisgICAgaWYgKFtmcmFtZUJ1
ZmZlciBpc0tpbmRPZkNsYXNzOiBbUlRDQ1ZQaXhlbEJ1ZmZlciBjbGFzc11dKQorICAgICAgICBy
ZXR1cm4gWyhSVENDVlBpeGVsQnVmZmVyICopZnJhbWVCdWZmZXIgcGl4ZWxCdWZmZXJdOworICAg
IHJldHVybiBudWxscHRyOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9GcmFtZXdvcmsvQ2xhc3Nlcy9WaWRlby9S
VENDVlBpeGVsQnVmZmVyLm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvc2RrL29iamMvRnJhbWV3b3JrL0NsYXNzZXMvVmlkZW8vUlRDQ1ZQaXhlbEJ1ZmZlci5t
bQppbmRleCAyMDM4OTY3NThlODMzZmU2ZGM2YjgzZTgxMzA1ZDgyYmNlZTg4MmJhLi41MzdhNjVl
MTdkM2Y4YzhkNDc0YjBiNjVlNmJmMGQ4YWMzYjc0NzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9GcmFtZXdvcmsvQ2xhc3Nl
cy9WaWRlby9SVENDVlBpeGVsQnVmZmVyLm1tCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL0ZyYW1ld29yay9DbGFzc2VzL1ZpZGVvL1JUQ0NW
UGl4ZWxCdWZmZXIubW0KQEAgLTczLDYgKzczLDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRo
UGl4ZWxCdWZmZXI6KENWUGl4ZWxCdWZmZXJSZWYpcGl4ZWxCdWZmZXIKIAogLSAodm9pZClkZWFs
bG9jIHsKICAgQ1ZCdWZmZXJSZWxlYXNlKF9waXhlbEJ1ZmZlcik7CisgIFtzdXBlciBkZWFsbG9j
XTsKIH0KIAogLSAoaW50KXdpZHRoIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL0ZyYW1ld29yay9DbGFzc2VzL1ZpZGVvVG9v
bGJveC9SVENWaWRlb0RlY29kZXJIMjY0Lm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvc2RrL29iamMvRnJhbWV3b3JrL0NsYXNzZXMvVmlkZW9Ub29sYm94L1JU
Q1ZpZGVvRGVjb2RlckgyNjQubW0KaW5kZXggMmY0YjZiZDcyYzY4OTUxMDBmMzNmMjdjYzgyYzY3
MDMyNmU4NmUyMy4uMzRkMDhkYjBlM2I4YzAyZWY4OTVhN2QzMmFlMzQ1ZmRhMTQzZTdmNyAxMDA2
NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29i
amMvRnJhbWV3b3JrL0NsYXNzZXMvVmlkZW9Ub29sYm94L1JUQ1ZpZGVvRGVjb2RlckgyNjQubW0K
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMv
RnJhbWV3b3JrL0NsYXNzZXMvVmlkZW9Ub29sYm94L1JUQ1ZpZGVvRGVjb2RlckgyNjQubW0KQEAg
LTkwLDYgKzkwLDEwIEBAIC0gKGluc3RhbmNldHlwZSlpbml0IHsKIC0gKHZvaWQpZGVhbGxvYyB7
CiAgIFtzZWxmIGRlc3Ryb3lEZWNvbXByZXNzaW9uU2Vzc2lvbl07CiAgIFtzZWxmIHNldFZpZGVv
Rm9ybWF0Om51bGxwdHJdOworICBpZiAoX2NhbGxiYWNrKSB7CisgICAgQmxvY2tfcmVsZWFzZShf
Y2FsbGJhY2spOworICB9CisgIFtzdXBlciBkZWFsbG9jXTsKIH0KIAogLSAoTlNJbnRlZ2VyKXN0
YXJ0RGVjb2RlV2l0aFNldHRpbmdzOihSVENWaWRlb0VuY29kZXJTZXR0aW5ncyAqKXNldHRpbmdz
CkBAIC0xNzgsNyArMTgyLDcgQEAgLSAoTlNJbnRlZ2VyKWRlY29kZTooUlRDRW5jb2RlZEltYWdl
ICopaW5wdXRJbWFnZQogfQogCiAtICh2b2lkKXNldENhbGxiYWNrOihSVENWaWRlb0RlY29kZXJD
YWxsYmFjayljYWxsYmFjayB7Ci0gIF9jYWxsYmFjayA9IGNhbGxiYWNrOworICBfY2FsbGJhY2sg
PSBCbG9ja19jb3B5KGNhbGxiYWNrKTsKIH0KIAogLSAodm9pZClzZXRFcnJvcjooT1NTdGF0dXMp
ZXJyb3IgewpAQCAtMTkwLDYgKzE5NCw3IEBAIC0gKE5TSW50ZWdlcilyZWxlYXNlRGVjb2RlciB7
CiAgIC8vIGlzIHNhZmUgdG8gbnVsbCBvdXQgdGhlIGNhbGxiYWNrLgogICBbc2VsZiBkZXN0cm95
RGVjb21wcmVzc2lvblNlc3Npb25dOwogICBbc2VsZiBzZXRWaWRlb0Zvcm1hdDpudWxscHRyXTsK
KyAgQmxvY2tfcmVsZWFzZShfY2FsbGJhY2spOwogICBfY2FsbGJhY2sgPSBudWxscHRyOwogICBy
ZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09LOwogfQpAQCAtMjYwLDkgKzI2NSw3IEBAIC0gKHZv
aWQpY29uZmlndXJlRGVjb21wcmVzc2lvblNlc3Npb24gewogLSAodm9pZClkZXN0cm95RGVjb21w
cmVzc2lvblNlc3Npb24gewogICBpZiAoX2RlY29tcHJlc3Npb25TZXNzaW9uKSB7CiAjaWYgZGVm
aW5lZChXRUJSVENfSU9TKQotICAgIGlmIChbVUlEZXZpY2UgaXNJT1MxMU9yTGF0ZXJdKSB7Ci0g
ICAgICBWVERlY29tcHJlc3Npb25TZXNzaW9uV2FpdEZvckFzeW5jaHJvbm91c0ZyYW1lcyhfZGVj
b21wcmVzc2lvblNlc3Npb24pOwotICAgIH0KKyAgICBWVERlY29tcHJlc3Npb25TZXNzaW9uV2Fp
dEZvckFzeW5jaHJvbm91c0ZyYW1lcyhfZGVjb21wcmVzc2lvblNlc3Npb24pOwogI2VuZGlmCiAg
ICAgVlREZWNvbXByZXNzaW9uU2Vzc2lvbkludmFsaWRhdGUoX2RlY29tcHJlc3Npb25TZXNzaW9u
KTsKICAgICBDRlJlbGVhc2UoX2RlY29tcHJlc3Npb25TZXNzaW9uKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL0ZyYW1ld29y
ay9DbGFzc2VzL1ZpZGVvVG9vbGJveC9SVENWaWRlb0VuY29kZXJIMjY0Lm1tIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvRnJhbWV3b3JrL0NsYXNz
ZXMvVmlkZW9Ub29sYm94L1JUQ1ZpZGVvRW5jb2RlckgyNjQubW0KaW5kZXggYTgxOGMyN2QxZTY4
M2FjNjMwNDlhMjNmOTY5NDAzODIzNTdkMmRiMy4uOGMyN2U3NjY3Y2Q1YjZlYWMyOTVmMTM4NDU0
NjgyYWE3OWVlYmI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvc2RrL29iamMvRnJhbWV3b3JrL0NsYXNzZXMvVmlkZW9Ub29sYm94L1JUQ1Zp
ZGVvRW5jb2RlckgyNjQubW0KKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvc2RrL29iamMvRnJhbWV3b3JrL0NsYXNzZXMvVmlkZW9Ub29sYm94L1JUQ1ZpZGVv
RW5jb2RlckgyNjQubW0KQEAgLTM1LDYgKzM1LDkgQEAKICNpbmNsdWRlICJzeXN0ZW1fd3JhcHBl
cnMvaW5jbHVkZS9jbG9jay5oIgogI2luY2x1ZGUgInRoaXJkX3BhcnR5L2xpYnl1di9pbmNsdWRl
L2xpYnl1di9jb252ZXJ0X2Zyb20uaCIKIAorI2luY2x1ZGUgInNkay9XZWJLaXQvRW5jb2RlclV0
aWxpdGllcy5oIgorI2luY2x1ZGUgInNkay9XZWJLaXQvV2ViS2l0VXRpbGl0aWVzLmgiCisKIEBp
bnRlcmZhY2UgUlRDVmlkZW9FbmNvZGVySDI2NCAoKQogCiAtICh2b2lkKWZyYW1lV2FzRW5jb2Rl
ZDooT1NTdGF0dXMpc3RhdHVzCkBAIC0yODUsNyArMjg4LDcgQEAgQGltcGxlbWVudGF0aW9uIFJU
Q1ZpZGVvRW5jb2RlckgyNjQgewogICBSVENWaWRlb0VuY29kZXJDYWxsYmFjayBfY2FsbGJhY2s7
CiAgIGludDMyX3QgX3dpZHRoOwogICBpbnQzMl90IF9oZWlnaHQ7Ci0gIFZUQ29tcHJlc3Npb25T
ZXNzaW9uUmVmIF9jb21wcmVzc2lvblNlc3Npb247CisgIENvbXByZXNzaW9uU2Vzc2lvblJlZiBf
Y29tcHJlc3Npb25TZXNzaW9uOwogICBSVENWaWRlb0NvZGVjTW9kZSBfbW9kZTsKIAogICB3ZWJy
dGM6OkgyNjRCaXRzdHJlYW1QYXJzZXIgX2gyNjRCaXRzdHJlYW1QYXJzZXI7CkBAIC0zMTgsNiAr
MzIxLDEwIEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvZGVjSW5mbzooUlRDVmlkZW9Db2Rl
Y0luZm8gKiljb2RlY0luZm8gewogCiAtICh2b2lkKWRlYWxsb2MgewogICBbc2VsZiBkZXN0cm95
Q29tcHJlc3Npb25TZXNzaW9uXTsKKyAgaWYgKF9jYWxsYmFjaykgeworICAgIEJsb2NrX3JlbGVh
c2UoX2NhbGxiYWNrKTsKKyAgfQorICBbc3VwZXIgZGVhbGxvY107CiB9CiAKIC0gKE5TSW50ZWdl
cilzdGFydEVuY29kZVdpdGhTZXR0aW5nczooUlRDVmlkZW9FbmNvZGVyU2V0dGluZ3MgKilzZXR0
aW5ncwpAQCAtMzU4LDkgKzM2NSw5IEBAIC0gKE5TSW50ZWdlcillbmNvZGU6KFJUQ1ZpZGVvRnJh
bWUgKilmcmFtZQogCiAgIC8vIEdldCBhIHBpeGVsIGJ1ZmZlciBmcm9tIHRoZSBwb29sIGFuZCBj
b3B5IGZyYW1lIGRhdGEgb3Zlci4KICAgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcGl4ZWxCdWZmZXJQ
b29sID0KLSAgICAgIFZUQ29tcHJlc3Npb25TZXNzaW9uR2V0UGl4ZWxCdWZmZXJQb29sKF9jb21w
cmVzc2lvblNlc3Npb24pOworICAgICAgQ29tcHJlc3Npb25TZXNzaW9uR2V0UGl4ZWxCdWZmZXJQ
b29sKF9jb21wcmVzc2lvblNlc3Npb24pOwogICBpZiAoW3NlbGYgcmVzZXRDb21wcmVzc2lvblNl
c3Npb25JZk5lZWRlZEZvclBvb2w6cGl4ZWxCdWZmZXJQb29sIHdpdGhGcmFtZTpmcmFtZV0pIHsK
LSAgICBwaXhlbEJ1ZmZlclBvb2wgPSBWVENvbXByZXNzaW9uU2Vzc2lvbkdldFBpeGVsQnVmZmVy
UG9vbChfY29tcHJlc3Npb25TZXNzaW9uKTsKKyAgICBwaXhlbEJ1ZmZlclBvb2wgPSBDb21wcmVz
c2lvblNlc3Npb25HZXRQaXhlbEJ1ZmZlclBvb2woX2NvbXByZXNzaW9uU2Vzc2lvbik7CiAgICAg
aXNLZXlmcmFtZVJlcXVpcmVkID0gWUVTOwogICB9CiAKQEAgLTQ0Miw3ICs0NDksNyBAQCAtIChO
U0ludGVnZXIpZW5jb2RlOihSVENWaWRlb0ZyYW1lICopZnJhbWUKICAgLy8gVXBkYXRlIHRoZSBi
aXRyYXRlIGlmIG5lZWRlZC4KICAgW3NlbGYgc2V0Qml0cmF0ZUJwczpfYml0cmF0ZUFkanVzdGVy
LT5HZXRBZGp1c3RlZEJpdHJhdGVCcHMoKV07CiAKLSAgT1NTdGF0dXMgc3RhdHVzID0gVlRDb21w
cmVzc2lvblNlc3Npb25FbmNvZGVGcmFtZShfY29tcHJlc3Npb25TZXNzaW9uLAorICBPU1N0YXR1
cyBzdGF0dXMgPSBDb21wcmVzc2lvblNlc3Npb25FbmNvZGVGcmFtZShfY29tcHJlc3Npb25TZXNz
aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBpeGVsQnVmZmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHByZXNlbnRhdGlvblRpbWVTdGFtcCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrQ01UaW1lSW52YWxpZCwKQEAgLTQ2Myw3ICs0
NzAsNyBAQCAtIChOU0ludGVnZXIpZW5jb2RlOihSVENWaWRlb0ZyYW1lICopZnJhbWUKIH0KIAog
LSAodm9pZClzZXRDYWxsYmFjazooUlRDVmlkZW9FbmNvZGVyQ2FsbGJhY2spY2FsbGJhY2sgewot
ICBfY2FsbGJhY2sgPSBjYWxsYmFjazsKKyAgX2NhbGxiYWNrID0gQmxvY2tfY29weShjYWxsYmFj
ayk7CiB9CiAKIC0gKGludClzZXRCaXRyYXRlOih1aW50MzJfdCliaXRyYXRlS2JpdCBmcmFtZXJh
dGU6KHVpbnQzMl90KWZyYW1lcmF0ZSB7CkBAIC00ODAsNiArNDg3LDcgQEAgLSAoTlNJbnRlZ2Vy
KXJlbGVhc2VFbmNvZGVyIHsKICAgLy8gY2FsbGJhY2sgYW55bW9yZS4gRG8gbm90IHJlbW92ZSBj
YWxsYmFjayB1bnRpbCB0aGUgc2Vzc2lvbiBpcyBpbnZhbGlkYXRlZAogICAvLyBzaW5jZSBhc3lu
YyBlbmNvZGVyIGNhbGxiYWNrcyBjYW4gb2NjdXIgdW50aWwgaW52YWxpZGF0aW9uLgogICBbc2Vs
ZiBkZXN0cm95Q29tcHJlc3Npb25TZXNzaW9uXTsKKyAgQmxvY2tfcmVsZWFzZShfY2FsbGJhY2sp
OwogICBfY2FsbGJhY2sgPSBudWxscHRyOwogICByZXR1cm4gV0VCUlRDX1ZJREVPX0NPREVDX09L
OwogfQpAQCAtNTczLDEzICs1ODEsMTMgQEAgLSAoaW50KXJlc2V0Q29tcHJlc3Npb25TZXNzaW9u
V2l0aFBpeGVsRm9ybWF0OihPU1R5cGUpZnJhbWVQaXhlbEZvcm1hdCB7CiAgICAgICBudWxscHRy
LCAxLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZh
bHVlQ2FsbEJhY2tzKTsKICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoZW5jb2Rlcl9zcGVjcywKICAg
ICAgICAgICAgICAgICAgICAgICAga1ZUVmlkZW9FbmNvZGVyU3BlY2lmaWNhdGlvbl9FbmFibGVI
YXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyLAotICAgICAgICAgICAgICAgICAgICAgICBr
Q0ZCb29sZWFuVHJ1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgIHdlYnJ0Yzo6aXNIMjY0SGFy
ZHdhcmVFbmNvZGVyQWxsb3dlZCgpID8ga0NGQm9vbGVhblRydWUgOiBrQ0ZCb29sZWFuRmFsc2Up
OwogI2VuZGlmCiAgIE9TU3RhdHVzIHN0YXR1cyA9Ci0gICAgICBWVENvbXByZXNzaW9uU2Vzc2lv
bkNyZWF0ZShudWxscHRyLCAgLy8gdXNlIGRlZmF1bHQgYWxsb2NhdG9yCisgICAgICBDb21wcmVz
c2lvblNlc3Npb25DcmVhdGUobnVsbHB0ciwgIC8vIHVzZSBkZWZhdWx0IGFsbG9jYXRvcgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3dpZHRoLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgX2hlaWdodCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGtDTVZpZGVvQ29kZWNUeXBlX0gyNjQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBrQ29kZWNUeXBlSDI2NCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29k
ZXJfc3BlY3MsICAvLyB1c2UgaGFyZHdhcmUgYWNjZWxlcmF0ZWQgZW5jb2RlciBpZiBhdmFpbGFi
bGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZUF0dHJpYnV0ZXMsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxscHRyLCAgLy8gdXNlIGRlZmF1bHQg
Y29tcHJlc3NlZCBkYXRhIGFsbG9jYXRvcgpAQCAtNjM2LDcgKzY0NCw3IEBAIC0gKHZvaWQpY29u
ZmlndXJlQ29tcHJlc3Npb25TZXNzaW9uIHsKIAogLSAodm9pZClkZXN0cm95Q29tcHJlc3Npb25T
ZXNzaW9uIHsKICAgaWYgKF9jb21wcmVzc2lvblNlc3Npb24pIHsKLSAgICBWVENvbXByZXNzaW9u
U2Vzc2lvbkludmFsaWRhdGUoX2NvbXByZXNzaW9uU2Vzc2lvbik7CisgICAgQ29tcHJlc3Npb25T
ZXNzaW9uSW52YWxpZGF0ZShfY29tcHJlc3Npb25TZXNzaW9uKTsKICAgICBDRlJlbGVhc2UoX2Nv
bXByZXNzaW9uU2Vzc2lvbik7CiAgICAgX2NvbXByZXNzaW9uU2Vzc2lvbiA9IG51bGxwdHI7CiAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9XZWJLaXQvMDAwMS1B
ZGFwdGluZy1saWJ3ZWJydGMtSDI2NC1jb2RlYy5wYXRjaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9XZWJLaXQvMDAwMS1BZGFwdGluZy1saWJ3ZWJydGMtSDI2NC1jb2RlYy5wYXRjaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wMzYzODYxNDgxMjljZTVlYTJiZjIxMWU2NWI3YWFjYTg4N2M0MTdiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1dlYktpdC8wMDAxLUFk
YXB0aW5nLWxpYndlYnJ0Yy1IMjY0LWNvZGVjLnBhdGNoCkBAIC0wLDAgKzEsMTE4IEBACitGcm9t
IGM1ZGViZDgzYmIzOTMzNDEzZDBhM2RkMjQxN2Y1ZmQ5ZDY0YTMyMDUgTW9uIFNlcCAxNyAwMDow
MDowMCAyMDAxCitGcm9tOiBZb3Vlbm4gRmFibGV0IDx5b3Vlbm5AYXBwbGUuY29tPgorRGF0ZTog
VGh1LCAyMiBNYXIgMjAxOCAxNjozODoxNCAtMDcwMAorU3ViamVjdDogW1BBVENIXSBBZGFwdGlu
Zy1saWJ3ZWJydGMtSDI2NC1jb2RlYworCistLS0KKyAuLi4vc2RrL29iamMvRnJhbWV3b3JrL0Ns
YXNzZXMvVmlkZW8vUlRDQ1ZQaXhlbEJ1ZmZlci5tbSAgICAgIHwgIDEgKworIC4uLi9GcmFtZXdv
cmsvQ2xhc3Nlcy9WaWRlb1Rvb2xib3gvUlRDVmlkZW9EZWNvZGVySDI2NC5tbSAgICAgfCAxMSAr
KysrKysrLS0tLQorIC4uLi9GcmFtZXdvcmsvQ2xhc3Nlcy9WaWRlb1Rvb2xib3gvUlRDVmlkZW9F
bmNvZGVySDI2NC5tbSAgICAgfCAxMCArKysrKysrKy0tCisgMyBmaWxlcyBjaGFuZ2VkLCAxNiBp
bnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvRnJhbWV3b3JrL0NsYXNzZXMv
VmlkZW8vUlRDQ1ZQaXhlbEJ1ZmZlci5tbSBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3Nkay9vYmpjL0ZyYW1ld29yay9DbGFzc2VzL1ZpZGVvL1JUQ0NWUGl4ZWxC
dWZmZXIubW0KK2luZGV4IDIwMzg5Njc1OGU4Li41MzdhNjVlMTdkMyAxMDA2NDQKKy0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL0ZyYW1ld29y
ay9DbGFzc2VzL1ZpZGVvL1JUQ0NWUGl4ZWxCdWZmZXIubW0KKysrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL0ZyYW1ld29yay9DbGFzc2VzL1Zp
ZGVvL1JUQ0NWUGl4ZWxCdWZmZXIubW0KK0BAIC03Myw2ICs3Myw3IEBAIC0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aFBpeGVsQnVmZmVyOihDVlBpeGVsQnVmZmVyUmVmKXBpeGVsQnVmZmVyCisgCisg
LSAodm9pZClkZWFsbG9jIHsKKyAgIENWQnVmZmVyUmVsZWFzZShfcGl4ZWxCdWZmZXIpOworKyAg
W3N1cGVyIGRlYWxsb2NdOworIH0KKyAKKyAtIChpbnQpd2lkdGggeworZGlmZiAtLWdpdCBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL0ZyYW1ld29y
ay9DbGFzc2VzL1ZpZGVvVG9vbGJveC9SVENWaWRlb0RlY29kZXJIMjY0Lm1tIGIvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvRnJhbWV3b3JrL0NsYXNz
ZXMvVmlkZW9Ub29sYm94L1JUQ1ZpZGVvRGVjb2RlckgyNjQubW0KK2luZGV4IDJmNGI2YmQ3MmM2
Li4zNGQwOGRiMGUzYiAxMDA2NDQKKy0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL3Nkay9vYmpjL0ZyYW1ld29yay9DbGFzc2VzL1ZpZGVvVG9vbGJveC9SVENW
aWRlb0RlY29kZXJIMjY0Lm1tCisrKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291
cmNlL3dlYnJ0Yy9zZGsvb2JqYy9GcmFtZXdvcmsvQ2xhc3Nlcy9WaWRlb1Rvb2xib3gvUlRDVmlk
ZW9EZWNvZGVySDI2NC5tbQorQEAgLTkwLDYgKzkwLDEwIEBAIC0gKGluc3RhbmNldHlwZSlpbml0
IHsKKyAtICh2b2lkKWRlYWxsb2MgeworICAgW3NlbGYgZGVzdHJveURlY29tcHJlc3Npb25TZXNz
aW9uXTsKKyAgIFtzZWxmIHNldFZpZGVvRm9ybWF0Om51bGxwdHJdOworKyAgaWYgKF9jYWxsYmFj
aykgeworKyAgICBCbG9ja19yZWxlYXNlKF9jYWxsYmFjayk7CisrICB9CisrICBbc3VwZXIgZGVh
bGxvY107CisgfQorIAorIC0gKE5TSW50ZWdlcilzdGFydERlY29kZVdpdGhTZXR0aW5nczooUlRD
VmlkZW9FbmNvZGVyU2V0dGluZ3MgKilzZXR0aW5ncworQEAgLTE3OCw3ICsxODIsNyBAQCAtIChO
U0ludGVnZXIpZGVjb2RlOihSVENFbmNvZGVkSW1hZ2UgKilpbnB1dEltYWdlCisgfQorIAorIC0g
KHZvaWQpc2V0Q2FsbGJhY2s6KFJUQ1ZpZGVvRGVjb2RlckNhbGxiYWNrKWNhbGxiYWNrIHsKKy0g
IF9jYWxsYmFjayA9IGNhbGxiYWNrOworKyAgX2NhbGxiYWNrID0gQmxvY2tfY29weShjYWxsYmFj
ayk7CisgfQorIAorIC0gKHZvaWQpc2V0RXJyb3I6KE9TU3RhdHVzKWVycm9yIHsKK0BAIC0xOTAs
NiArMTk0LDcgQEAgLSAoTlNJbnRlZ2VyKXJlbGVhc2VEZWNvZGVyIHsKKyAgIC8vIGlzIHNhZmUg
dG8gbnVsbCBvdXQgdGhlIGNhbGxiYWNrLgorICAgW3NlbGYgZGVzdHJveURlY29tcHJlc3Npb25T
ZXNzaW9uXTsKKyAgIFtzZWxmIHNldFZpZGVvRm9ybWF0Om51bGxwdHJdOworKyAgQmxvY2tfcmVs
ZWFzZShfY2FsbGJhY2spOworICAgX2NhbGxiYWNrID0gbnVsbHB0cjsKKyAgIHJldHVybiBXRUJS
VENfVklERU9fQ09ERUNfT0s7CisgfQorQEAgLTI2MCw5ICsyNjUsNyBAQCAtICh2b2lkKWNvbmZp
Z3VyZURlY29tcHJlc3Npb25TZXNzaW9uIHsKKyAtICh2b2lkKWRlc3Ryb3lEZWNvbXByZXNzaW9u
U2Vzc2lvbiB7CisgICBpZiAoX2RlY29tcHJlc3Npb25TZXNzaW9uKSB7CisgI2lmIGRlZmluZWQo
V0VCUlRDX0lPUykKKy0gICAgaWYgKFtVSURldmljZSBpc0lPUzExT3JMYXRlcl0pIHsKKy0gICAg
ICBWVERlY29tcHJlc3Npb25TZXNzaW9uV2FpdEZvckFzeW5jaHJvbm91c0ZyYW1lcyhfZGVjb21w
cmVzc2lvblNlc3Npb24pOworLSAgICB9CisrICAgIFZURGVjb21wcmVzc2lvblNlc3Npb25XYWl0
Rm9yQXN5bmNocm9ub3VzRnJhbWVzKF9kZWNvbXByZXNzaW9uU2Vzc2lvbik7CisgI2VuZGlmCisg
ICAgIFZURGVjb21wcmVzc2lvblNlc3Npb25JbnZhbGlkYXRlKF9kZWNvbXByZXNzaW9uU2Vzc2lv
bik7CisgICAgIENGUmVsZWFzZShfZGVjb21wcmVzc2lvblNlc3Npb24pOworZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL0ZyYW1l
d29yay9DbGFzc2VzL1ZpZGVvVG9vbGJveC9SVENWaWRlb0VuY29kZXJIMjY0Lm1tIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29iamMvRnJhbWV3b3JrL0Ns
YXNzZXMvVmlkZW9Ub29sYm94L1JUQ1ZpZGVvRW5jb2RlckgyNjQubW0KK2luZGV4IGE4MThjMjdk
MWU2Li44MDk5NDgwMTFhNiAxMDA2NDQKKy0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL0ZyYW1ld29yay9DbGFzc2VzL1ZpZGVvVG9vbGJveC9S
VENWaWRlb0VuY29kZXJIMjY0Lm1tCisrKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9GcmFtZXdvcmsvQ2xhc3Nlcy9WaWRlb1Rvb2xib3gvUlRD
VmlkZW9FbmNvZGVySDI2NC5tbQorQEAgLTM0LDYgKzM0LDcgQEAKKyAjaW5jbHVkZSAic2RrL29i
amMvRnJhbWV3b3JrL0NsYXNzZXMvVmlkZW9Ub29sYm94L25hbHVfcmV3cml0ZXIuaCIKKyAjaW5j
bHVkZSAic3lzdGVtX3dyYXBwZXJzL2luY2x1ZGUvY2xvY2suaCIKKyAjaW5jbHVkZSAidGhpcmRf
cGFydHkvbGlieXV2L2luY2x1ZGUvbGlieXV2L2NvbnZlcnRfZnJvbS5oIgorKyNpbmNsdWRlICJz
ZGsvV2ViS2l0L1dlYktpdFV0aWxpdGllcy5oIgorIAorIEBpbnRlcmZhY2UgUlRDVmlkZW9FbmNv
ZGVySDI2NCAoKQorIAorQEAgLTMxOCw2ICszMTksMTAgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRX
aXRoQ29kZWNJbmZvOihSVENWaWRlb0NvZGVjSW5mbyAqKWNvZGVjSW5mbyB7CisgCisgLSAodm9p
ZClkZWFsbG9jIHsKKyAgIFtzZWxmIGRlc3Ryb3lDb21wcmVzc2lvblNlc3Npb25dOworKyAgaWYg
KF9jYWxsYmFjaykgeworKyAgICBCbG9ja19yZWxlYXNlKF9jYWxsYmFjayk7CisrICB9CisrICBb
c3VwZXIgZGVhbGxvY107CisgfQorIAorIC0gKE5TSW50ZWdlcilzdGFydEVuY29kZVdpdGhTZXR0
aW5nczooUlRDVmlkZW9FbmNvZGVyU2V0dGluZ3MgKilzZXR0aW5ncworQEAgLTQ2Myw3ICs0Njgs
NyBAQCAtIChOU0ludGVnZXIpZW5jb2RlOihSVENWaWRlb0ZyYW1lICopZnJhbWUKKyB9CisgCisg
LSAodm9pZClzZXRDYWxsYmFjazooUlRDVmlkZW9FbmNvZGVyQ2FsbGJhY2spY2FsbGJhY2sgewor
LSAgX2NhbGxiYWNrID0gY2FsbGJhY2s7CisrICBfY2FsbGJhY2sgPSBCbG9ja19jb3B5KGNhbGxi
YWNrKTsKKyB9CisgCisgLSAoaW50KXNldEJpdHJhdGU6KHVpbnQzMl90KWJpdHJhdGVLYml0IGZy
YW1lcmF0ZToodWludDMyX3QpZnJhbWVyYXRlIHsKK0BAIC00ODAsNiArNDg1LDcgQEAgLSAoTlNJ
bnRlZ2VyKXJlbGVhc2VFbmNvZGVyIHsKKyAgIC8vIGNhbGxiYWNrIGFueW1vcmUuIERvIG5vdCBy
ZW1vdmUgY2FsbGJhY2sgdW50aWwgdGhlIHNlc3Npb24gaXMgaW52YWxpZGF0ZWQKKyAgIC8vIHNp
bmNlIGFzeW5jIGVuY29kZXIgY2FsbGJhY2tzIGNhbiBvY2N1ciB1bnRpbCBpbnZhbGlkYXRpb24u
CisgICBbc2VsZiBkZXN0cm95Q29tcHJlc3Npb25TZXNzaW9uXTsKKysgIEJsb2NrX3JlbGVhc2Uo
X2NhbGxiYWNrKTsKKyAgIF9jYWxsYmFjayA9IG51bGxwdHI7CisgICByZXR1cm4gV0VCUlRDX1ZJ
REVPX0NPREVDX09LOworIH0KK0BAIC01NzMsNyArNTc5LDcgQEAgLSAoaW50KXJlc2V0Q29tcHJl
c3Npb25TZXNzaW9uV2l0aFBpeGVsRm9ybWF0OihPU1R5cGUpZnJhbWVQaXhlbEZvcm1hdCB7Cisg
ICAgICAgbnVsbHB0ciwgMSwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlw
ZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcyk7CisgICBDRkRpY3Rpb25hcnlTZXRWYWx1ZShlbmNv
ZGVyX3NwZWNzLAorICAgICAgICAgICAgICAgICAgICAgICAga1ZUVmlkZW9FbmNvZGVyU3BlY2lm
aWNhdGlvbl9FbmFibGVIYXJkd2FyZUFjY2VsZXJhdGVkVmlkZW9FbmNvZGVyLAorLSAgICAgICAg
ICAgICAgICAgICAgICAga0NGQm9vbGVhblRydWUpOworKyAgICAgICAgICAgICAgICAgICAgICAg
d2VicnRjOjppc0gyNjRIYXJkd2FyZUVuY29kZXJBbGxvd2VkKCkgPyBrQ0ZCb29sZWFuVHJ1ZSA6
IGtDRkJvb2xlYW5GYWxzZSk7CisgI2VuZGlmCisgICBPU1N0YXR1cyBzdGF0dXMgPQorICAgICAg
IFZUQ29tcHJlc3Npb25TZXNzaW9uQ3JlYXRlKG51bGxwdHIsICAvLyB1c2UgZGVmYXVsdCBhbGxv
Y2F0b3IKKy0tIAorMi4xNS4xIChBcHBsZSBHaXQtMTAxKQorCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvV2ViS2l0LzAwMDEtVXNpbmctVkNQLnBhdGNoIGIvU291cmNl
L1RoaXJkUGFydHkvbGlid2VicnRjL1dlYktpdC8wMDAxLVVzaW5nLVZDUC5wYXRjaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41ZDA4YjJhMDk2MTk0MjYyMDhjNjM2NDkzZjE3ZmI2ODc0NDdlNjFmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1dlYktpdC8wMDAxLVVzaW5nLVZD
UC5wYXRjaApAQCAtMCwwICsxLDc3IEBACitGcm9tIGY2ZDIxNmU3NmNjNTc2YjdjYWM1YTk4MGM3
NGQ0Y2Y2MGYyOGNiMTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBZb3Vlbm4gRmFi
bGV0IDx5b3Vlbm5AYXBwbGUuY29tPgorRGF0ZTogVGh1LCAyMiBNYXIgMjAxOCAxNTo0NDo1MCAt
MDcwMAorU3ViamVjdDogW1BBVENIXSBVc2luZyBWQ1AKKworLS0tCisgLi4uL0NsYXNzZXMvVmlk
ZW9Ub29sYm94L1JUQ1ZpZGVvRW5jb2RlckgyNjQubW0gICAgICAgICAgfCAxNiArKysrKysrKyst
LS0tLS0tCisgMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkK
KworZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRj
L3Nkay9vYmpjL0ZyYW1ld29yay9DbGFzc2VzL1ZpZGVvVG9vbGJveC9SVENWaWRlb0VuY29kZXJI
MjY0Lm1tIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvc2RrL29i
amMvRnJhbWV3b3JrL0NsYXNzZXMvVmlkZW9Ub29sYm94L1JUQ1ZpZGVvRW5jb2RlckgyNjQubW0K
K2luZGV4IGQxYWY2ZTNjNjMyLi4xMzhkNDQ1NzNiOCAxMDA2NDQKKy0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3Nkay9vYmpjL0ZyYW1ld29yay9DbGFzc2Vz
L1ZpZGVvVG9vbGJveC9SVENWaWRlb0VuY29kZXJIMjY0Lm1tCisrKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9GcmFtZXdvcmsvQ2xhc3Nlcy9W
aWRlb1Rvb2xib3gvUlRDVmlkZW9FbmNvZGVySDI2NC5tbQorQEAgLTM0LDYgKzM0LDggQEAKKyAj
aW5jbHVkZSAic2RrL29iamMvRnJhbWV3b3JrL0NsYXNzZXMvVmlkZW9Ub29sYm94L25hbHVfcmV3
cml0ZXIuaCIKKyAjaW5jbHVkZSAic3lzdGVtX3dyYXBwZXJzL2luY2x1ZGUvY2xvY2suaCIKKyAj
aW5jbHVkZSAidGhpcmRfcGFydHkvbGlieXV2L2luY2x1ZGUvbGlieXV2L2NvbnZlcnRfZnJvbS5o
IgorKworKyNpbmNsdWRlICJzZGsvV2ViS2l0L0VuY29kZXJVdGlsaXRpZXMuaCIKKyAjaW5jbHVk
ZSAic2RrL1dlYktpdC9XZWJLaXRVdGlsaXRpZXMuaCIKKyAKKyBAaW50ZXJmYWNlIFJUQ1ZpZGVv
RW5jb2RlckgyNjQgKCkKK0BAIC0yODYsNyArMjg4LDcgQEAgQGltcGxlbWVudGF0aW9uIFJUQ1Zp
ZGVvRW5jb2RlckgyNjQgeworICAgUlRDVmlkZW9FbmNvZGVyQ2FsbGJhY2sgX2NhbGxiYWNrOwor
ICAgaW50MzJfdCBfd2lkdGg7CisgICBpbnQzMl90IF9oZWlnaHQ7CistICBWVENvbXByZXNzaW9u
U2Vzc2lvblJlZiBfY29tcHJlc3Npb25TZXNzaW9uOworKyAgQ29tcHJlc3Npb25TZXNzaW9uUmVm
IF9jb21wcmVzc2lvblNlc3Npb247CisgICBSVENWaWRlb0NvZGVjTW9kZSBfbW9kZTsKKyAKKyAg
IHdlYnJ0Yzo6SDI2NEJpdHN0cmVhbVBhcnNlciBfaDI2NEJpdHN0cmVhbVBhcnNlcjsKK0BAIC0z
NjAsOSArMzYyLDkgQEAgLSAoTlNJbnRlZ2VyKWVuY29kZTooUlRDVmlkZW9GcmFtZSAqKWZyYW1l
CisgCisgICAvLyBHZXQgYSBwaXhlbCBidWZmZXIgZnJvbSB0aGUgcG9vbCBhbmQgY29weSBmcmFt
ZSBkYXRhIG92ZXIuCisgICBDVlBpeGVsQnVmZmVyUG9vbFJlZiBwaXhlbEJ1ZmZlclBvb2wgPQor
LSAgICAgIFZUQ29tcHJlc3Npb25TZXNzaW9uR2V0UGl4ZWxCdWZmZXJQb29sKF9jb21wcmVzc2lv
blNlc3Npb24pOworKyAgICAgIENvbXByZXNzaW9uU2Vzc2lvbkdldFBpeGVsQnVmZmVyUG9vbChf
Y29tcHJlc3Npb25TZXNzaW9uKTsKKyAgIGlmIChbc2VsZiByZXNldENvbXByZXNzaW9uU2Vzc2lv
bklmTmVlZGVkRm9yUG9vbDpwaXhlbEJ1ZmZlclBvb2wgd2l0aEZyYW1lOmZyYW1lXSkgeworLSAg
ICBwaXhlbEJ1ZmZlclBvb2wgPSBWVENvbXByZXNzaW9uU2Vzc2lvbkdldFBpeGVsQnVmZmVyUG9v
bChfY29tcHJlc3Npb25TZXNzaW9uKTsKKysgICAgcGl4ZWxCdWZmZXJQb29sID0gQ29tcHJlc3Np
b25TZXNzaW9uR2V0UGl4ZWxCdWZmZXJQb29sKF9jb21wcmVzc2lvblNlc3Npb24pOworICAgICBp
c0tleWZyYW1lUmVxdWlyZWQgPSBZRVM7CisgICB9CisgCitAQCAtNDQ0LDcgKzQ0Niw3IEBAIC0g
KE5TSW50ZWdlcillbmNvZGU6KFJUQ1ZpZGVvRnJhbWUgKilmcmFtZQorICAgLy8gVXBkYXRlIHRo
ZSBiaXRyYXRlIGlmIG5lZWRlZC4KKyAgIFtzZWxmIHNldEJpdHJhdGVCcHM6X2JpdHJhdGVBZGp1
c3Rlci0+R2V0QWRqdXN0ZWRCaXRyYXRlQnBzKCldOworIAorLSAgT1NTdGF0dXMgc3RhdHVzID0g
VlRDb21wcmVzc2lvblNlc3Npb25FbmNvZGVGcmFtZShfY29tcHJlc3Npb25TZXNzaW9uLAorKyAg
T1NTdGF0dXMgc3RhdHVzID0gQ29tcHJlc3Npb25TZXNzaW9uRW5jb2RlRnJhbWUoX2NvbXByZXNz
aW9uU2Vzc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGl4ZWxCdWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHByZXNlbnRhdGlvblRpbWVTdGFtcCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0NNVGltZUludmFsaWQsCitA
QCAtNTc5LDEwICs1ODEsMTAgQEAgLSAoaW50KXJlc2V0Q29tcHJlc3Npb25TZXNzaW9uV2l0aFBp
eGVsRm9ybWF0OihPU1R5cGUpZnJhbWVQaXhlbEZvcm1hdCB7CisgICAgICAgICAgICAgICAgICAg
ICAgICB3ZWJydGM6OmlzSDI2NEhhcmR3YXJlRW5jb2RlckFsbG93ZWQoKSA/IGtDRkJvb2xlYW5U
cnVlIDoga0NGQm9vbGVhbkZhbHNlKTsKKyAjZW5kaWYKKyAgIE9TU3RhdHVzIHN0YXR1cyA9Cist
ICAgICAgVlRDb21wcmVzc2lvblNlc3Npb25DcmVhdGUobnVsbHB0ciwgIC8vIHVzZSBkZWZhdWx0
IGFsbG9jYXRvcgorKyAgICAgIENvbXByZXNzaW9uU2Vzc2lvbkNyZWF0ZShudWxscHRyLCAgLy8g
dXNlIGRlZmF1bHQgYWxsb2NhdG9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
X3dpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9oZWlnaHQsCistICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga0NNVmlkZW9Db2RlY1R5cGVfSDI2NCwKKysg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrQ29kZWNUeXBlSDI2NCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGVyX3NwZWNzLCAgLy8gdXNlIGhhcmR3YXJl
IGFjY2VsZXJhdGVkIGVuY29kZXIgaWYgYXZhaWxhYmxlCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc291cmNlQXR0cmlidXRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBudWxscHRyLCAgLy8gdXNlIGRlZmF1bHQgY29tcHJlc3NlZCBkYXRhIGFsbG9jYXRv
cgorQEAgLTYzOSw3ICs2NDEsNyBAQCAtICh2b2lkKWNvbmZpZ3VyZUNvbXByZXNzaW9uU2Vzc2lv
biB7CisgCisgLSAodm9pZClkZXN0cm95Q29tcHJlc3Npb25TZXNzaW9uIHsKKyAgIGlmIChfY29t
cHJlc3Npb25TZXNzaW9uKSB7CistICAgIFZUQ29tcHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZShf
Y29tcHJlc3Npb25TZXNzaW9uKTsKKysgICAgQ29tcHJlc3Npb25TZXNzaW9uSW52YWxpZGF0ZShf
Y29tcHJlc3Npb25TZXNzaW9uKTsKKyAgICAgQ0ZSZWxlYXNlKF9jb21wcmVzc2lvblNlc3Npb24p
OworICAgICBfY29tcHJlc3Npb25TZXNzaW9uID0gbnVsbHB0cjsKKyAgIH0KKy0tIAorMi4xNS4x
IChBcHBsZSBHaXQtMTAxKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvV2ViS2l0LzAwMDktUmVtb3ZlLWRpc3BhdGNoX3NldF90YXJnZXRfcXVldWUucGF0Y2ggYi9T
b3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvV2ViS2l0LzAwMDktUmVtb3ZlLWRpc3BhdGNoX3Nl
dF90YXJnZXRfcXVldWUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzYxNDA2OTUxYjZiNTkzNWMwYzg2Mzcx
ZTRlMjZkN2Y5MWIwM2MyNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9XZWJLaXQvMDAwOS1SZW1vdmUtZGlzcGF0Y2hfc2V0X3RhcmdldF9xdWV1ZS5wYXRj
aApAQCAtMCwwICsxLDIzIEBACitkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvcnRjX2Jhc2UvdGFza19xdWV1ZV9nY2QuY2MgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9ydGNfYmFzZS90YXNrX3F1ZXVlX2djZC5j
YworaW5kZXggYTEzZTA4OGVkZTYuLjY3NWI4MDA1NzIyIDEwMDY0NAorLS0tIGEvU291cmNlL1Ro
aXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvcnRjX2Jhc2UvdGFza19xdWV1ZV9nY2Qu
Y2MKKysrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3J0Y19i
YXNlL3Rhc2tfcXVldWVfZ2NkLmNjCitAQCAtMTM5LDcgKzEzOSw3IEBAIGNsYXNzIFRhc2tRdWV1
ZTo6SW1wbCA6IHB1YmxpYyBSZWZDb3VudEludGVyZmFjZSB7CisgVGFza1F1ZXVlOjpJbXBsOjpJ
bXBsKGNvbnN0IGNoYXIqIHF1ZXVlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgIFRhc2tR
dWV1ZSogdGFza19xdWV1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgcHJpb3Jp
dHkpCistICAgIDogcXVldWVfKGRpc3BhdGNoX3F1ZXVlX2NyZWF0ZShxdWV1ZV9uYW1lLCBESVNQ
QVRDSF9RVUVVRV9TRVJJQUwpKSwKKysgICAgOiBxdWV1ZV8oZGlzcGF0Y2hfcXVldWVfY3JlYXRl
X3dpdGhfdGFyZ2V0KHF1ZXVlX25hbWUsIERJU1BBVENIX1FVRVVFX1NFUklBTCwgZGlzcGF0Y2hf
Z2V0X2dsb2JhbF9xdWV1ZShUYXNrUXVldWVQcmlvcml0eVRvR0NEKHByaW9yaXR5KSwgMCkpKSwK
KyAgICAgICBjb250ZXh0XyhuZXcgUXVldWVDb250ZXh0KHRhc2tfcXVldWUpKSB7CisgICBSVENf
RENIRUNLKHF1ZXVlX25hbWUpOworICAgUlRDX0NIRUNLKHF1ZXVlXyk7CitAQCAtMTQ4LDkgKzE0
OCw2IEBAIFRhc2tRdWV1ZTo6SW1wbDo6SW1wbChjb25zdCBjaGFyKiBxdWV1ZV9uYW1lLAorICAg
Ly8gdG8gdGhlIHF1ZXVlIGlzIHJlbGVhc2VkLiAgVGhpcyBtYXkgcnVuIGFmdGVyIHRoZSBUYXNr
UXVldWUgb2JqZWN0IGhhcworICAgLy8gYmVlbiBkZWxldGVkLgorICAgZGlzcGF0Y2hfc2V0X2Zp
bmFsaXplcl9mKHF1ZXVlXywgJlF1ZXVlQ29udGV4dDo6RGVsZXRlQ29udGV4dCk7CistCistICBk
aXNwYXRjaF9zZXRfdGFyZ2V0X3F1ZXVlKAorLSAgICAgIHF1ZXVlXywgZGlzcGF0Y2hfZ2V0X2ds
b2JhbF9xdWV1ZShUYXNrUXVldWVQcmlvcml0eVRvR0NEKHByaW9yaXR5KSwgMCkpOworIH0KKyAK
KyBUYXNrUXVldWU6OkltcGw6On5JbXBsKCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1dlYktpdC9wYXRjaC1saWJ3ZWJydGMgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9s
aWJ3ZWJydGMvV2ViS2l0L3BhdGNoLWxpYndlYnJ0YwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL2xpYndlYnJ0Yy54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDllYjhhNWM5ZjhjZjhmMmE2YTViZTdlOWExZmQyZWJjZmQ1NTVhOTMuLjc2MDEw
ZjAwZjA5NDJlNzA3ZWZmZDcwMDk4NzIyNWRiMTNiMmVhNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9saWJ3ZWJydGMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvbGlid2VicnRjLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTMwNSw3ICszMDUsNiBAQAogCQk0MTNBMjQzQzFGRTE5OTFBMDAzNzNF
OTkgLyogUlRDVmlkZW9Db2RlY0gyNjQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxM0EyNDA0MUZFMTk5MDMwMDM3M0U5OSAvKiBSVENWaWRlb0NvZGVj
SDI2NC5oICovOyB9OwogCQk0MTNBMjQzRDFGRTE5OTFBMDAzNzNFOTkgLyogUlRDVmlkZW9DYXB0
dXJlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEz
QTI0MDUxRkUxOTkwMzAwMzczRTk5IC8qIFJUQ1ZpZGVvQ2FwdHVyZXIuaCAqLzsgfTsKIAkJNDEz
QTI0M0UxRkUxOTkxQTAwMzczRTk5IC8qIFJUQ1BlZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTNBMjQwNjFGRTE5OTA0MDAzNzNF
OTkgLyogUlRDUGVlckNvbm5lY3Rpb24uaCAqLzsgfTsKLQkJNDEzQTI0M0YxRkUxOTkxQTAwMzcz
RTk5IC8qIFdlYlJUQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDEzQTI0MDcxRkUxOTkwNDAwMzczRTk5IC8qIFdlYlJUQy5oICovOyB9OwogCQk0MTNB
MjQ0MDFGRTE5OTFBMDAzNzNFOTkgLyogUlRDRmllbGRUcmlhbHMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxM0EyNDA4MUZFMTk5MDQwMDM3M0U5OSAv
KiBSVENGaWVsZFRyaWFscy5oICovOyB9OwogCQk0MTNBMjQ0MTFGRTE5OTFBMDAzNzNFOTkgLyog
UlRDVmlkZW9GcmFtZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDEzQTI0MDkxRkUxOTkwNDAwMzczRTk5IC8qIFJUQ1ZpZGVvRnJhbWVCdWZm
ZXIuaCAqLzsgfTsKIAkJNDEzQTI0NDIxRkUxOTkxQTAwMzczRTk5IC8qIFJUQ0xlZ2FjeVN0YXRz
UmVwb3J0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTNBMjQwQTFGRTE5OTA0MDAzNzNFOTkgLyogUlRDTGVnYWN5U3RhdHNSZXBvcnQuaCAqLzsgfTsK
QEAgLTgwOSw2ICs4MDgsMzggQEAKIAkJNDFFQTU0MTExRUZDMkQxQjAwMkZGMDRDIC8qIHNxcnQu
YyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRUE1M0ZC
MUVGQzJEMUIwMDJGRjA0QyAvKiBzcXJ0LmMgKi87IH07CiAJCTQxRUE1NDE5MUVGQzJENTMwMDJG
RjA0QyAvKiBtZDQuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxRUE1NDEzMUVGQzJENEYwMDJGRjA0QyAvKiBtZDQuYyAqLzsgfTsKIAkJNDFFQTU0MUEx
RUZDMkQ1MzAwMkZGMDRDIC8qIG1kNS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDFFQTU0MTgxRUZDMkQ1MzAwMkZGMDRDIC8qIG1kNS5jICovOyB9Owor
CQk0MUVDRUFCNjIwNjMwMTA4MDA5RDUxNDEgLyogUlRDVmlkZW9Db2RlYytQcml2YXRlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUVDRUFCMzIwNjMw
MTA3MDA5RDUxNDEgLyogUlRDVmlkZW9Db2RlYytQcml2YXRlLmggKi87IH07CisJCTQxRUNFQUI3
MjA2MzAxMDgwMDlENTE0MSAvKiBSVENWaWRlb0NvZGVjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFQ0VBQjQyMDYzMDEwNzAwOUQ1MTQxIC8qIFJU
Q1ZpZGVvQ29kZWMubW0gKi87IH07CisJCTQxRUNFQUI4MjA2MzAxMDgwMDlENTE0MSAvKiBSVENW
aWRlb0NvZGVjSDI2NC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxRUNFQUI1MjA2MzAxMDgwMDlENTE0MSAvKiBSVENWaWRlb0NvZGVjSDI2NC5tbSAq
LzsgfTsKKwkJNDFFQ0VBQkMyMDY0MDNDMjAwOUQ1MTQxIC8qIFdlYktpdFV0aWxpdGllcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFQ0VBQkIyMDY0
MDNDMTAwOUQ1MTQxIC8qIFdlYktpdFV0aWxpdGllcy5oICovOyB9OworCQk0MUVDRUFCRTIwNjQw
NDk4MDA5RDUxNDEgLyogV2ViS2l0VXRpbGl0aWVzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFQ0VBQkQyMDY0MDQ5ODAwOUQ1MTQxIC8qIFdlYktp
dFV0aWxpdGllcy5tbSAqLzsgfTsKKwkJNDFFQ0VBQzEyMDY0MEYyODAwOUQ1MTQxIC8qIE5TU3Ry
aW5nK1N0ZFN0cmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDFFQ0VBQkYyMDY0MEYyNzAwOUQ1MTQxIC8qIE5TU3RyaW5nK1N0ZFN0cmluZy5oICov
OyB9OworCQk0MUVDRUFDMjIwNjQwRjI4MDA5RDUxNDEgLyogTlNTdHJpbmcrU3RkU3RyaW5nLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFQ0VBQzAy
MDY0MEYyODAwOUQ1MTQxIC8qIE5TU3RyaW5nK1N0ZFN0cmluZy5tbSAqLzsgfTsKKwkJNDFFQ0VB
QzMyMDY0MTFFMjAwOUQ1MTQxIC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjQubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTNBMjNGODFGRTE5ODdDMDAzNzNF
OTkgLyogUlRDVmlkZW9EZWNvZGVySDI2NC5tbSAqLzsgfTsKKwkJNDFFQ0VBQzQyMDY0MTFFNTAw
OUQ1MTQxIC8qIFJUQ1ZpZGVvRW5jb2RlckgyNjQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTNBMjNGNDFGRTE5ODdCMDAzNzNFOTkgLyogUlRDVmlk
ZW9FbmNvZGVySDI2NC5tbSAqLzsgfTsKKwkJNDFFQ0VBQzYyMDY0MTMwMzAwOUQ1MTQxIC8qIFJU
Q0NWUGl4ZWxCdWZmZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MUVDRUFDNTIwNjQxMzAyMDA5RDUxNDEgLyogUlRDQ1ZQaXhlbEJ1ZmZlci5tbSAq
LzsgfTsKKwkJNDFFQ0VBQzgyMDY0MTMyODAwOUQ1MTQxIC8qIFJUQ0VuY29kZWRJbWFnZS5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRUNFQUM3MjA2
NDEzMjgwMDlENTE0MSAvKiBSVENFbmNvZGVkSW1hZ2UubW0gKi87IH07CisJCTQxRUNFQUNCMjA2
NDEzNEYwMDlENTE0MSAvKiBSVENWaWRlb0ZyYW1lLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFQ0VBQzkyMDY0MTM0RTAwOUQ1MTQxIC8qIFJUQ1Zp
ZGVvRnJhbWUubW0gKi87IH07CisJCTQxRUNFQUNDMjA2NDEzNEYwMDlENTE0MSAvKiBSVENWaWRl
b0ZyYW1lK1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxRUNFQUNBMjA2NDEzNEUwMDlENTE0MSAvKiBSVENWaWRlb0ZyYW1lK1ByaXZhdGUu
aCAqLzsgfTsKKwkJNDFFQ0VBQ0YyMDY0MTM3MDAwOUQ1MTQxIC8qIFJUQ0k0MjBCdWZmZXIubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUVDRUFDRDIw
NjQxMzZGMDA5RDUxNDEgLyogUlRDSTQyMEJ1ZmZlci5tbSAqLzsgfTsKKwkJNDFFQ0VBRDAyMDY0
MTM3MDAwOUQ1MTQxIC8qIFJUQ0k0MjBCdWZmZXIrUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFQ0VBQ0UyMDY0MTM2RjAwOUQ1MTQxIC8q
IFJUQ0k0MjBCdWZmZXIrUHJpdmF0ZS5oICovOyB9OworCQk0MUVDRUFEMzIwNjQxNDU4MDA5RDUx
NDEgLyogb2JqY19mcmFtZV9idWZmZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MUVDRUFEMTIwNjQxNDU3MDA5RDUxNDEgLyogb2JqY19mcmFtZV9i
dWZmZXIubW0gKi87IH07CisJCTQxRUNFQUQ0MjA2NDE0NTgwMDlENTE0MSAvKiBvYmpjX2ZyYW1l
X2J1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDFFQ0VBRDIyMDY0MTQ1ODAwOUQ1MTQxIC8qIG9iamNfZnJhbWVfYnVmZmVyLmggKi87IH07CisJ
CTQxRUNFQUQ3MjA2NDE0N0MwMDlENTE0MSAvKiBoZWxwZXJzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUVDRUFENTIwNjQxNDdDMDA5RDUxNDEgLyog
aGVscGVycy5oICovOyB9OworCQk0MUVDRUFEODIwNjQxNDdDMDA5RDUxNDEgLyogaGVscGVycy5j
YyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRUNFQUQ2
MjA2NDE0N0MwMDlENTE0MSAvKiBoZWxwZXJzLmNjICovOyB9OworCQk0MUVDRUFEQTIwNjQxNEE2
MDA5RDUxNDEgLyogUlRDUnRwRnJhZ21lbnRhdGlvbkhlYWRlci5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRUNFQUQ5MjA2NDE0QTYwMDlENTE0MSAv
KiBSVENSdHBGcmFnbWVudGF0aW9uSGVhZGVyLm1tICovOyB9OworCQk0MUVDRUFEQjIwNjQxNUVB
MDA5RDUxNDEgLyogb2JqY192aWRlb19kZWNvZGVyX2ZhY3RvcnkubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTNBMjNGOTFGRTE5ODdDMDAzNzNFOTkg
Lyogb2JqY192aWRlb19kZWNvZGVyX2ZhY3RvcnkubW0gKi87IH07CisJCTQxRUNFQURDMjA2NDE1
RUUwMDlENTE0MSAvKiBvYmpjX3ZpZGVvX2VuY29kZXJfZmFjdG9yeS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxM0EyM0Y1MUZFMTk4N0IwMDM3M0U5
OSAvKiBvYmpjX3ZpZGVvX2VuY29kZXJfZmFjdG9yeS5tbSAqLzsgfTsKKwkJNDFFQ0VBRTEyMDY0
MTZGRjAwOUQ1MTQxIC8qIFJUQ1dyYXBwZWROYXRpdmVWaWRlb0VuY29kZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRUNFQUREMjA2NDE2RkQwMDlE
NTE0MSAvKiBSVENXcmFwcGVkTmF0aXZlVmlkZW9FbmNvZGVyLmggKi87IH07CisJCTQxRUNFQUUy
MjA2NDE2RkYwMDlENTE0MSAvKiBSVENXcmFwcGVkTmF0aXZlVmlkZW9FbmNvZGVyLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFQ0VBREUyMDY0MTZG
RTAwOUQ1MTQxIC8qIFJUQ1dyYXBwZWROYXRpdmVWaWRlb0VuY29kZXIubW0gKi87IH07CisJCTQx
RUNFQUUzMjA2NDE2RkYwMDlENTE0MSAvKiBSVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNvZGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUVDRUFERjIw
NjQxNkZFMDA5RDUxNDEgLyogUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRGVjb2Rlci5oICovOyB9Owor
CQk0MUVDRUFFNDIwNjQxNkZGMDA5RDUxNDEgLyogUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRGVjb2Rl
ci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRUNF
QUUwMjA2NDE2RkUwMDlENTE0MSAvKiBSVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNvZGVyLm1tICov
OyB9OworCQk0MUVDRUFFNzIwNjQxN0U5MDA5RDUxNDEgLyogd2VicnRjdmlkZW9lbmNvZGVyZmFj
dG9yeS5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
RUNFQUU1MjA2NDE3RTgwMDlENTE0MSAvKiB3ZWJydGN2aWRlb2VuY29kZXJmYWN0b3J5LmNjICov
OyB9OworCQk0MUVDRUFFODIwNjQxN0U5MDA5RDUxNDEgLyogd2VicnRjdmlkZW9kZWNvZGVyZmFj
dG9yeS5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
RUNFQUU2MjA2NDE3RTkwMDlENTE0MSAvKiB3ZWJydGN2aWRlb2RlY29kZXJmYWN0b3J5LmNjICov
OyB9OworCQk0MUVDRUFFQTIwNjQxODEyMDA5RDUxNDEgLyogUlRDVmlkZW9FbmNvZGVyU2V0dGlu
Z3MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUVD
RUFFOTIwNjQxODEyMDA5RDUxNDEgLyogUlRDVmlkZW9FbmNvZGVyU2V0dGluZ3MubW0gKi87IH07
CisJCTQxRUNFQUZDMjA2NDY2NjQwMDlENTE0MSAvKiBFbmNvZGVyVXRpbGl0aWVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUVDRUFGOTIwNjQ2NjYz
MDA5RDUxNDEgLyogRW5jb2RlclV0aWxpdGllcy5oICovOyB9OworCQk0MUVDRUFGRDIwNjQ2NjY0
MDA5RDUxNDEgLyogVmlkZW9Qcm9jZXNzaW5nU29mdExpbmsuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFQ0VBRkEyMDY0NjY2MzAwOUQ1MTQxIC8q
IFZpZGVvUHJvY2Vzc2luZ1NvZnRMaW5rLmNwcCAqLzsgfTsKKwkJNDFFQ0VBRkUyMDY0NjY2NDAw
OUQ1MTQxIC8qIFZpZGVvUHJvY2Vzc2luZ1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUVDRUFGQjIwNjQ2NjY0MDA5RDUxNDEgLyogVmlk
ZW9Qcm9jZXNzaW5nU29mdExpbmsuaCAqLzsgfTsKIAkJNDFGNDExQUQxRUY4RDkxRjAwMzQzQzI2
IC8qIG51bGxfYWVjX2R1bXBfZmFjdG9yeS5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjQxMUFDMUVGOEQ5MUUwMDM0M0MyNiAvKiBudWxsX2FlY19k
dW1wX2ZhY3RvcnkuY2MgKi87IH07CiAJCTQxRjQxMUIwMUVGOERBMDEwMDM0M0MyNiAvKiBydGNl
cnJvci5jYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
RjQxMUFFMUVGOERBMDAwMDM0M0MyNiAvKiBydGNlcnJvci5jYyAqLzsgfTsKIAkJNDFGNDExQjEx
RUY4REEwMjAwMzQzQzI2IC8qIHJ0Y2Vycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MUY0MTFBRjFFRjhEQTAwMDAzNDNDMjYgLyogcnRjZXJyb3Iu
aCAqLzsgfTsKQEAgLTMzNTQsNyArMzM4NSw2IEBACiAJCTQxM0EyNDA0MUZFMTk5MDMwMDM3M0U5
OSAvKiBSVENWaWRlb0NvZGVjSDI2NC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBSVENWaWRlb0NvZGVjSDI2NC5oOyBwYXRoID0gc2RrL29iamMvRnJhbWV3b3JrL0hlYWRlcnMv
V2ViUlRDL1JUQ1ZpZGVvQ29kZWNIMjY0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxM0EyNDA1MUZFMTk5MDMwMDM3M0U5OSAvKiBSVENWaWRlb0NhcHR1cmVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJUQ1ZpZGVvQ2FwdHVyZXIuaDsgcGF0aCA9IHNkay9v
YmpjL0ZyYW1ld29yay9IZWFkZXJzL1dlYlJUQy9SVENWaWRlb0NhcHR1cmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxM0EyNDA2MUZFMTk5MDQwMDM3M0U5OSAvKiBSVENQZWVy
Q29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSVENQZWVyQ29u
bmVjdGlvbi5oOyBwYXRoID0gc2RrL29iamMvRnJhbWV3b3JrL0hlYWRlcnMvV2ViUlRDL1JUQ1Bl
ZXJDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxM0EyNDA3MUZF
MTk5MDQwMDM3M0U5OSAvKiBXZWJSVEMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gV2ViUlRDLmg7IHBhdGggPSBzZGsvb2JqYy9GcmFtZXdvcmsvSGVhZGVycy9XZWJSVEMvV2Vi
UlRDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxM0EyNDA4MUZFMTk5MDQwMDM3
M0U5OSAvKiBSVENGaWVsZFRyaWFscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBSVENGaWVsZFRyaWFscy5oOyBwYXRoID0gc2RrL29iamMvRnJhbWV3b3JrL0hlYWRlcnMvV2Vi
UlRDL1JUQ0ZpZWxkVHJpYWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxM0Ey
NDA5MUZFMTk5MDQwMDM3M0U5OSAvKiBSVENWaWRlb0ZyYW1lQnVmZmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJUQ1ZpZGVvRnJhbWVCdWZmZXIuaDsgcGF0aCA9IHNkay9v
YmpjL0ZyYW1ld29yay9IZWFkZXJzL1dlYlJUQy9SVENWaWRlb0ZyYW1lQnVmZmVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxM0EyNDBBMUZFMTk5MDQwMDM3M0U5OSAvKiBSVENM
ZWdhY3lTdGF0c1JlcG9ydC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSVENM
ZWdhY3lTdGF0c1JlcG9ydC5oOyBwYXRoID0gc2RrL29iamMvRnJhbWV3b3JrL0hlYWRlcnMvV2Vi
UlRDL1JUQ0xlZ2FjeVN0YXRzUmVwb3J0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0zOTI5LDYgKzM5NTksMzYgQEAKIAkJNDFFQTU0MTYxRUZDMkQ1MzAwMkZGMDRDIC8qIG1kNS01
ODYucGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5wZXJsOyBwYXRoID0gIm1kNS01ODYucGwiOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUVBNTQxNzFFRkMyRDUzMDAyRkYwNEMgLyog
bWQ1LXg4Nl82NC5wbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnBlcmw7IHBhdGggPSAibWQ1LXg4
Nl82NC5wbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRUE1NDE4MUVGQzJENTMw
MDJGRjA0QyAvKiBtZDUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gbWQ1LmM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRUNFQUIzMjA2MzAxMDcwMDlENTE0MSAv
KiBSVENWaWRlb0NvZGVjK1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gIlJUQ1ZpZGVvQ29kZWMrUHJpdmF0ZS5oIjsgcGF0aCA9ICJQZWVyQ29ubmVjdGlvbi9SVENW
aWRlb0NvZGVjK1ByaXZhdGUuaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRUNF
QUI0MjA2MzAxMDcwMDlENTE0MSAvKiBSVENWaWRlb0NvZGVjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBuYW1lID0gUlRDVmlkZW9Db2RlYy5tbTsgcGF0aCA9IFBlZXJDb25u
ZWN0aW9uL1JUQ1ZpZGVvQ29kZWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
RUNFQUI1MjA2MzAxMDgwMDlENTE0MSAvKiBSVENWaWRlb0NvZGVjSDI2NC5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFJUQ1ZpZGVvQ29kZWNIMjY0Lm1tOyBwYXRo
ID0gUGVlckNvbm5lY3Rpb24vUlRDVmlkZW9Db2RlY0gyNjQubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTQxRUNFQUI5MjA2MzAzNjUwMDlENTE0MSAvKiBSVENVSUFwcGxpY2F0aW9u
U3RhdHVzT2JzZXJ2ZXIubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBuYW1lID0gUlRD
VUlBcHBsaWNhdGlvblN0YXR1c09ic2VydmVyLm07IHBhdGggPSBDb21tb24vUlRDVUlBcHBsaWNh
dGlvblN0YXR1c09ic2VydmVyLm07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRUNF
QUJCMjA2NDAzQzEwMDlENTE0MSAvKiBXZWJLaXRVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0VXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxRUNFQUJEMjA2NDA0OTgwMDlENTE0MSAvKiBXZWJLaXRVdGlsaXRpZXMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJLaXRVdGlsaXRpZXMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRUNFQUJGMjA2NDBGMjcwMDlENTE0
MSAvKiBOU1N0cmluZytTdGRTdHJpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gIk5TU3RyaW5nK1N0ZFN0cmluZy5oIjsgcGF0aCA9ICJDb21tb24vTlNTdHJpbmcrU3RkU3Ry
aW5nLmgiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUVDRUFDMDIwNjQwRjI4MDA5
RDUxNDEgLyogTlNTdHJpbmcrU3RkU3RyaW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gIk5TU3RyaW5nK1N0ZFN0cmluZy5tbSI7IHBhdGggPSAiQ29tbW9uL05T
U3RyaW5nK1N0ZFN0cmluZy5tbSI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRUNF
QUM1MjA2NDEzMDIwMDlENTE0MSAvKiBSVENDVlBpeGVsQnVmZmVyLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gUlRDQ1ZQaXhlbEJ1ZmZlci5tbTsgcGF0aCA9IFZp
ZGVvL1JUQ0NWUGl4ZWxCdWZmZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
RUNFQUM3MjA2NDEzMjgwMDlENTE0MSAvKiBSVENFbmNvZGVkSW1hZ2UubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBSVENFbmNvZGVkSW1hZ2UubW07IHBhdGggPSBQ
ZWVyQ29ubmVjdGlvbi9SVENFbmNvZGVkSW1hZ2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQxRUNFQUM5MjA2NDEzNEUwMDlENTE0MSAvKiBSVENWaWRlb0ZyYW1lLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gUlRDVmlkZW9GcmFtZS5tbTsgcGF0
aCA9IFBlZXJDb25uZWN0aW9uL1JUQ1ZpZGVvRnJhbWUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxRUNFQUNBMjA2NDEzNEUwMDlENTE0MSAvKiBSVENWaWRlb0ZyYW1lK1ByaXZh
dGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gIlJUQ1ZpZGVvRnJhbWUrUHJp
dmF0ZS5oIjsgcGF0aCA9ICJQZWVyQ29ubmVjdGlvbi9SVENWaWRlb0ZyYW1lK1ByaXZhdGUuaCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRUNFQUNEMjA2NDEzNkYwMDlENTE0MSAv
KiBSVENJNDIwQnVmZmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gUlRDSTQyMEJ1ZmZlci5tbTsgcGF0aCA9IFZpZGVvL1JUQ0k0MjBCdWZmZXIubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRUNFQUNFMjA2NDEzNkYwMDlENTE0MSAvKiBSVENJ
NDIwQnVmZmVyK1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gIlJU
Q0k0MjBCdWZmZXIrUHJpdmF0ZS5oIjsgcGF0aCA9ICJWaWRlby9SVENJNDIwQnVmZmVyK1ByaXZh
dGUuaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRUNFQUQxMjA2NDE0NTcwMDlE
NTE0MSAvKiBvYmpjX2ZyYW1lX2J1ZmZlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgbmFtZSA9IG9iamNfZnJhbWVfYnVmZmVyLm1tOyBwYXRoID0gVmlkZW8vb2JqY19mcmFt
ZV9idWZmZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRUNFQUQyMjA2NDE0
NTgwMDlENTE0MSAvKiBvYmpjX2ZyYW1lX2J1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBvYmpjX2ZyYW1lX2J1ZmZlci5oOyBwYXRoID0gVmlkZW8vb2JqY19mcmFtZV9i
dWZmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFFQ0VBRDUyMDY0MTQ3QzAw
OUQ1MTQxIC8qIGhlbHBlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gaGVs
cGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUVDRUFENjIwNjQxNDdDMDA5
RDUxNDEgLyogaGVscGVycy5jYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IGhlbHBlcnMuY2M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRUNFQUQ5MjA2NDE0
QTYwMDlENTE0MSAvKiBSVENSdHBGcmFnbWVudGF0aW9uSGVhZGVyLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gUlRDUnRwRnJhZ21lbnRhdGlvbkhlYWRlci5tbTsg
cGF0aCA9IFBlZXJDb25uZWN0aW9uL1JUQ1J0cEZyYWdtZW50YXRpb25IZWFkZXIubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRUNFQUREMjA2NDE2RkQwMDlENTE0MSAvKiBSVENX
cmFwcGVkTmF0aXZlVmlkZW9FbmNvZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFJUQ1dyYXBwZWROYXRpdmVWaWRlb0VuY29kZXIuaDsgcGF0aCA9IFBlZXJDb25uZWN0aW9u
L1JUQ1dyYXBwZWROYXRpdmVWaWRlb0VuY29kZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDFFQ0VBREUyMDY0MTZGRTAwOUQ1MTQxIC8qIFJUQ1dyYXBwZWROYXRpdmVWaWRlb0Vu
Y29kZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBSVENXcmFw
cGVkTmF0aXZlVmlkZW9FbmNvZGVyLm1tOyBwYXRoID0gUGVlckNvbm5lY3Rpb24vUlRDV3JhcHBl
ZE5hdGl2ZVZpZGVvRW5jb2Rlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFF
Q0VBREYyMDY0MTZGRTAwOUQ1MTQxIC8qIFJUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRGVj
b2Rlci5oOyBwYXRoID0gUGVlckNvbm5lY3Rpb24vUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRGVjb2Rl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUVDRUFFMDIwNjQxNkZFMDA5RDUx
NDEgLyogUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRGVjb2Rlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgbmFtZSA9IFJUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIubW07IHBh
dGggPSBQZWVyQ29ubmVjdGlvbi9SVENXcmFwcGVkTmF0aXZlVmlkZW9EZWNvZGVyLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUVDRUFFNTIwNjQxN0U4MDA5RDUxNDEgLyogd2Vi
cnRjdmlkZW9lbmNvZGVyZmFjdG9yeS5jYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IHdlYnJ0Y3ZpZGVvZW5jb2RlcmZhY3RvcnkuY2M7IHBhdGggPSBlbmdpbmUvd2VicnRj
dmlkZW9lbmNvZGVyZmFjdG9yeS5jYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFF
Q0VBRTYyMDY0MTdFOTAwOUQ1MTQxIC8qIHdlYnJ0Y3ZpZGVvZGVjb2RlcmZhY3RvcnkuY2MgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSB3ZWJydGN2aWRlb2RlY29kZXJmYWN0
b3J5LmNjOyBwYXRoID0gZW5naW5lL3dlYnJ0Y3ZpZGVvZGVjb2RlcmZhY3RvcnkuY2M7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRUNFQUU5MjA2NDE4MTIwMDlENTE0MSAvKiBSVENW
aWRlb0VuY29kZXJTZXR0aW5ncy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
bmFtZSA9IFJUQ1ZpZGVvRW5jb2RlclNldHRpbmdzLm1tOyBwYXRoID0gUGVlckNvbm5lY3Rpb24v
UlRDVmlkZW9FbmNvZGVyU2V0dGluZ3MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQxRUNFQUY2MjA2NDVDRTYwMDlENTE0MSAvKiBVSURldmljZStSVENEZXZpY2UubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSAiVUlEZXZpY2UrUlRDRGV2aWNlLm1t
IjsgcGF0aCA9ICJDb21tb24vVUlEZXZpY2UrUlRDRGV2aWNlLm1tIjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDFFQ0VBRjkyMDY0NjY2MzAwOUQ1MTQxIC8qIEVuY29kZXJVdGlsaXRp
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRW5jb2RlclV0aWxpdGllcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUVDRUFGQTIwNjQ2NjYzMDA5RDUxNDEg
LyogVmlkZW9Qcm9jZXNzaW5nU29mdExpbmsuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVmlkZW9Qcm9jZXNzaW5nU29mdExpbmsuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0MUVDRUFGQjIwNjQ2NjY0MDA5RDUxNDEgLyogVmlkZW9Qcm9jZXNzaW5n
U29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9Qcm9jZXNz
aW5nU29mdExpbmsuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFGNDExQUMxRUY4
RDkxRTAwMzQzQzI2IC8qIG51bGxfYWVjX2R1bXBfZmFjdG9yeS5jYyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IG51bGxfYWVjX2R1bXBfZmFjdG9yeS5jYzsgcGF0aCA9IFNv
dXJjZS93ZWJydGMvbW9kdWxlcy9hdWRpb19wcm9jZXNzaW5nL2FlY19kdW1wL251bGxfYWVjX2R1
bXBfZmFjdG9yeS5jYzsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQk0MUY0MTFBRTFF
RjhEQTAwMDAzNDNDMjYgLyogcnRjZXJyb3IuY2MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBydGNlcnJvci5jYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFG
NDExQUYxRUY4REEwMDAwMzQzQzI2IC8qIHJ0Y2Vycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IHJ0Y2Vycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02
NDE5LDcgKzY0NzksNiBAQAogCQkJCTQxM0EyNDE4MUZFMTk5MDgwMDM3M0U5OSAvKiBSVENWaWRl
b1RyYWNrLmggKi8sCiAJCQkJNDEzQTI0MDIxRkUxOTkwMzAwMzczRTk5IC8qIFJUQ1ZpZGVvVmll
d1NoYWRpbmcuaCAqLywKIAkJCQk0MTNBMjQzMzFGRTE5OTE2MDAzNzNFOTkgLyogVUlEZXZpY2Ur
UlRDRGV2aWNlLmggKi8sCi0JCQkJNDEzQTI0MDcxRkUxOTkwNDAwMzczRTk5IC8qIFdlYlJUQy5o
ICovLAogCQkJKTsKIAkJCW5hbWUgPSBXZWJSVEM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwpAQCAtNjU0OCw2ICs2NjA3LDExIEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk0MTQ1RTRBODFF
Rjg5MzNDMDBGQ0Y2RTYgLyogY29yZXZpZGVvX2ZyYW1lX2J1ZmZlci5jYyAqLywKIAkJCQk0MTQ1
RTRBOTFFRjg5MzNDMDBGQ0Y2RTYgLyogY29yZXZpZGVvX2ZyYW1lX2J1ZmZlci5oICovLAorCQkJ
CTQxRUNFQUQyMjA2NDE0NTgwMDlENTE0MSAvKiBvYmpjX2ZyYW1lX2J1ZmZlci5oICovLAorCQkJ
CTQxRUNFQUQxMjA2NDE0NTcwMDlENTE0MSAvKiBvYmpjX2ZyYW1lX2J1ZmZlci5tbSAqLywKKwkJ
CQk0MUVDRUFDNTIwNjQxMzAyMDA5RDUxNDEgLyogUlRDQ1ZQaXhlbEJ1ZmZlci5tbSAqLywKKwkJ
CQk0MUVDRUFDRTIwNjQxMzZGMDA5RDUxNDEgLyogUlRDSTQyMEJ1ZmZlcitQcml2YXRlLmggKi8s
CisJCQkJNDFFQ0VBQ0QyMDY0MTM2RjAwOUQ1MTQxIC8qIFJUQ0k0MjBCdWZmZXIubW0gKi8sCiAJ
CQkpOwogCQkJbmFtZSA9IFZpZGVvOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTY1
NTUsNiArNjYxOSw4IEBACiAJCTQxNDVFNDk3MUVGODkxODYwMEZDRjZFNiAvKiBWaWRlb1Rvb2xi
b3ggKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTQxRUNF
QUQ2MjA2NDE0N0MwMDlENTE0MSAvKiBoZWxwZXJzLmNjICovLAorCQkJCTQxRUNFQUQ1MjA2NDE0
N0MwMDlENTE0MSAvKiBoZWxwZXJzLmggKi8sCiAJCQkJNDE0NUU0QjIxRUY4OTQzRDAwRkNGNkU2
IC8qIG5hbHVfcmV3cml0ZXIuY2MgKi8sCiAJCQkJNDE0NUU0QUYxRUY4OTQzRDAwRkNGNkU2IC8q
IG5hbHVfcmV3cml0ZXIuaCAqLywKIAkJCQk0MTNBMjNGNjFGRTE5ODdCMDAzNzNFOTkgLyogb2Jq
Y192aWRlb19kZWNvZGVyX2ZhY3RvcnkuaCAqLywKQEAgLTY1OTksNyArNjY2NSwxMSBAQAogCQk0
MTdEQTQ1NTFFRjlDQ0Q4MDBFODY5REIgLyogQ29tbW9uICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0MUVDRUFCRjIwNjQwRjI3MDA5RDUxNDEgLyogTlNT
dHJpbmcrU3RkU3RyaW5nLmggKi8sCisJCQkJNDFFQ0VBQzAyMDY0MEYyODAwOUQ1MTQxIC8qIE5T
U3RyaW5nK1N0ZFN0cmluZy5tbSAqLywKIAkJCQk0MTdEQTQ1NjFFRjlDRDBBMDBFODY5REIgLyog
UlRDVUlBcHBsaWNhdGlvblN0YXR1c09ic2VydmVyLmggKi8sCisJCQkJNDFFQ0VBQjkyMDYzMDM2
NTAwOUQ1MTQxIC8qIFJUQ1VJQXBwbGljYXRpb25TdGF0dXNPYnNlcnZlci5tICovLAorCQkJCTQx
RUNFQUY2MjA2NDVDRTYwMDlENTE0MSAvKiBVSURldmljZStSVENEZXZpY2UubW0gKi8sCiAJCQkp
OwogCQkJbmFtZSA9IENvbW1vbjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC02Nzgx
LDEwICs2ODUxLDE1IEBACiAJCQkJNDE5Qzg0OUExRkUyRkVDMDAwNDBDMzBGIC8qIGVuY29kZXIu
bW0gKi8sCiAJCQkJNDE5Qzg0OUMxRkUyRkVDMDAwNDBDMzBGIC8qIGVuY29kZXJfdmNwLmggKi8s
CiAJCQkJNDE5Qzg0OTkxRkUyRkVCRjAwNDBDMzBGIC8qIGVuY29kZXJfdmNwLm1tICovLAorCQkJ
CTQxRUNFQUY5MjA2NDY2NjMwMDlENTE0MSAvKiBFbmNvZGVyVXRpbGl0aWVzLmggKi8sCisJCQkJ
NDFFQ0VBRkEyMDY0NjY2MzAwOUQ1MTQxIC8qIFZpZGVvUHJvY2Vzc2luZ1NvZnRMaW5rLmNwcCAq
LywKKwkJCQk0MUVDRUFGQjIwNjQ2NjY0MDA5RDUxNDEgLyogVmlkZW9Qcm9jZXNzaW5nU29mdExp
bmsuaCAqLywKIAkJCQk0MTlDODRBRjFGRTMwNEM3MDA0MEMzMEYgLyogVmlkZW9Ub29sQm94RGVj
b2RlckZhY3RvcnkuY3BwICovLAogCQkJCTQxOUM4NEFEMUZFMzA0QzYwMDQwQzMwRiAvKiBWaWRl
b1Rvb2xCb3hEZWNvZGVyRmFjdG9yeS5oICovLAogCQkJCTQxOUM4NEFFMUZFMzA0QzYwMDQwQzMw
RiAvKiBWaWRlb1Rvb2xCb3hFbmNvZGVyRmFjdG9yeS5jcHAgKi8sCiAJCQkJNDE5Qzg0QUMxRkUz
MDRDNjAwNDBDMzBGIC8qIFZpZGVvVG9vbEJveEVuY29kZXJGYWN0b3J5LmggKi8sCisJCQkJNDFF
Q0VBQkIyMDY0MDNDMTAwOUQ1MTQxIC8qIFdlYktpdFV0aWxpdGllcy5oICovLAorCQkJCTQxRUNF
QUJEMjA2NDA0OTgwMDlENTE0MSAvKiBXZWJLaXRVdGlsaXRpZXMubW0gKi8sCiAJCQkpOwogCQkJ
bmFtZSA9IFdlYktpdDsKIAkJCXBhdGggPSBzZGsvV2ViS2l0OwpAQCAtNzIxNCw2ICs3Mjg5LDI1
IEBACiAJCQlwYXRoID0gYXNtOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJ
NDFFQ0VBQjIyMDYzMDBFMzAwOUQ1MTQxIC8qIFBlZXJDb25uZWN0aW9uICovID0geworCQkJaXNh
ID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk0MUVDRUFDNzIwNjQxMzI4MDA5RDUx
NDEgLyogUlRDRW5jb2RlZEltYWdlLm1tICovLAorCQkJCTQxRUNFQUQ5MjA2NDE0QTYwMDlENTE0
MSAvKiBSVENSdHBGcmFnbWVudGF0aW9uSGVhZGVyLm1tICovLAorCQkJCTQxRUNFQUIzMjA2MzAx
MDcwMDlENTE0MSAvKiBSVENWaWRlb0NvZGVjK1ByaXZhdGUuaCAqLywKKwkJCQk0MUVDRUFCNDIw
NjMwMTA3MDA5RDUxNDEgLyogUlRDVmlkZW9Db2RlYy5tbSAqLywKKwkJCQk0MUVDRUFCNTIwNjMw
MTA4MDA5RDUxNDEgLyogUlRDVmlkZW9Db2RlY0gyNjQubW0gKi8sCisJCQkJNDFFQ0VBRTkyMDY0
MTgxMjAwOUQ1MTQxIC8qIFJUQ1ZpZGVvRW5jb2RlclNldHRpbmdzLm1tICovLAorCQkJCTQxRUNF
QUNBMjA2NDEzNEUwMDlENTE0MSAvKiBSVENWaWRlb0ZyYW1lK1ByaXZhdGUuaCAqLywKKwkJCQk0
MUVDRUFDOTIwNjQxMzRFMDA5RDUxNDEgLyogUlRDVmlkZW9GcmFtZS5tbSAqLywKKwkJCQk0MUVD
RUFERjIwNjQxNkZFMDA5RDUxNDEgLyogUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRGVjb2Rlci5oICov
LAorCQkJCTQxRUNFQUUwMjA2NDE2RkUwMDlENTE0MSAvKiBSVENXcmFwcGVkTmF0aXZlVmlkZW9E
ZWNvZGVyLm1tICovLAorCQkJCTQxRUNFQUREMjA2NDE2RkQwMDlENTE0MSAvKiBSVENXcmFwcGVk
TmF0aXZlVmlkZW9FbmNvZGVyLmggKi8sCisJCQkJNDFFQ0VBREUyMDY0MTZGRTAwOUQ1MTQxIC8q
IFJUQ1dyYXBwZWROYXRpdmVWaWRlb0VuY29kZXIubW0gKi8sCisJCQkpOworCQkJbmFtZSA9IFBl
ZXJDb25uZWN0aW9uOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNDFGNDEx
QkQxRUY4REI4MjAwMzQzQzI2IC8qIHZwOCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCkBAIC03ODQ4LDcgKzc5NDIsOSBAQAogCQkJCTVDNEI0ODZBMUU0MkMxQkEw
MDI2NTFDOCAvKiB3ZWJydGN2aWRlb2NhcHR1cmVyLmggKi8sCiAJCQkJNUM0QjQ4NkIxRTQyQzFC
QTAwMjY1MUM4IC8qIHdlYnJ0Y3ZpZGVvY2FwdHVyZXJmYWN0b3J5LmNjICovLAogCQkJCTVDNEI0
ODZDMUU0MkMxQkEwMDI2NTFDOCAvKiB3ZWJydGN2aWRlb2NhcHR1cmVyZmFjdG9yeS5oICovLAor
CQkJCTQxRUNFQUU2MjA2NDE3RTkwMDlENTE0MSAvKiB3ZWJydGN2aWRlb2RlY29kZXJmYWN0b3J5
LmNjICovLAogCQkJCTVDNEI0ODZEMUU0MkMxQkEwMDI2NTFDOCAvKiB3ZWJydGN2aWRlb2RlY29k
ZXJmYWN0b3J5LmggKi8sCisJCQkJNDFFQ0VBRTUyMDY0MTdFODAwOUQ1MTQxIC8qIHdlYnJ0Y3Zp
ZGVvZW5jb2RlcmZhY3RvcnkuY2MgKi8sCiAJCQkJNUM0QjQ4NkYxRTQyQzFCQTAwMjY1MUM4IC8q
IHdlYnJ0Y3ZpZGVvZW5jb2RlcmZhY3RvcnkuaCAqLywKIAkJCQk0MTQ1RTRDRjFFRjhDQzE3MDBG
Q0Y2RTYgLyogd2VicnRjdmlkZW9lbmdpbmUuY2MgKi8sCiAJCQkJNDE0NUU0RDAxRUY4Q0MxRjAw
RkNGNkU2IC8qIHdlYnJ0Y3ZpZGVvZW5naW5lLmggKi8sCkBAIC04MDIzLDYgKzgxMTksNyBAQAog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk0MTdEQTQ1NTFFRjlDQ0Q4
MDBFODY5REIgLyogQ29tbW9uICovLAorCQkJCTQxRUNFQUIyMjA2MzAwRTMwMDlENTE0MSAvKiBQ
ZWVyQ29ubmVjdGlvbiAqLywKIAkJCQk0MTQ1RTQ5MzFFRjg5MEU1MDBGQ0Y2RTYgLyogVmlkZW8g
Ki8sCiAJCQkJNDE0NUU0OTcxRUY4OTE4NjAwRkNGNkU2IC8qIFZpZGVvVG9vbGJveCAqLywKIAkJ
CSk7CkBAIC0xMTExMyw2ICsxMTIxMCw3IEBACiAJCQkJNDE5Qzg0QTQxRkUzMDA4MTAwNDBDMzBG
IC8qIGVuY29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NUEwMUU0M0I1QzAwMDYyMUU5
MiAvKiBlbmNvZGVyX3J0Y3BfZmVlZGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4NEMx
MUZFMzFBMEIwMDQwQzMwRiAvKiBlbmNvZGVyX3ZjcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDFF
Q0VBRkMyMDY0NjY2NDAwOUQ1MTQxIC8qIEVuY29kZXJVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDREQ4Qjk5MUU0M0MyQjUwMDYyMUU5MiAvKiBlbmVyZ3lfaW52ZXJzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUNERDhCOUIxRTQzQzJCNTAwNjIxRTkyIC8qIGVuaF91cHNhbXBsZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNUNERDhCOUYxRTQzQzJCNTAwNjIxRTkyIC8qIGVuaGFuY2Vy
LmggaW4gSGVhZGVycyAqLywKQEAgLTExMjE5LDYgKzExMzE3LDcgQEAKIAkJCQk1Q0QyODVFQjFF
NkE2MzlGMDA5NEZEQzggLyogaDI2NF9zcHJvcF9wYXJhbWV0ZXJfc2V0cy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNUNERDgzREExRTQzOUE2RjAwNjIxRTkyIC8qIGgyNjRfc3BzX3Bwc190cmFja2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjJEODFGRTE4RTA3MDAzNzNFOTkgLyogaGVscGVy
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDFFQ0VBRDcyMDY0MTQ3QzAwOUQ1MTQxIC8qIGhlbHBl
cnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4M0RDMUU0MzlBNkYwMDYyMUU5MiAvKiBoaXN0
b2dyYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTQxOUM4MzU4MUZFMjQ2NjUwMDQwQzMwRiAvKiBo
aXN0b2dyYW1fcGVyY2VudGlsZV9jb3VudGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0REOEJB
RjFFNDNDMkI1MDA2MjFFOTIgLyogaHBfaW5wdXQuaCBpbiBIZWFkZXJzICovLApAQCAtMTEzNjQs
NiArMTE0NjMsNyBAQAogCQkJCTVDREQ4NkE4MUU0M0I5OTQwMDYyMUU5MiAvKiBub3JtYWxpemVk
X2NvdmFyaWFuY2VfZXN0aW1hdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzYzRjk1NDFFNDE3
MzdCMDAyQ0E1MzEgLyogbm90aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDREQ4NjAxMUU0
M0I4NEUwMDYyMUU5MiAvKiBuc19jb3JlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MUVDRUFDMTIw
NjQwRjI4MDA5RDUxNDEgLyogTlNTdHJpbmcrU3RkU3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1Q0REODYwNjFFNDNCODRFMDA2MjFFOTIgLyogbnN4X2NvcmUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTVDREQ4NjA3MUU0M0I4NEUwMDYyMUU5MiAvKiBuc3hfZGVmaW5lcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDE5QzgzQjQxRkUyNDcyRTAwNDBDMzBGIC8qIG51bGxfYXVkaW9fcG9sbGVyLmgg
aW4gSGVhZGVycyAqLywKQEAgLTExMzcxLDYgKzExNDcxLDcgQEAKIAkJCQk1QzA4ODUzMjFFNEE5
OUQyMDA0MDM5OTUgLyogbnVsbF9jaXBoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyM0Mw
MUZFMThFMDgwMDM3M0U5OSAvKiBudWxsc29ja2V0c2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1Q0QyODUzMzFFNkE2MTExMDA5NEZEQzggLyogbnVsbHdlYnJ0Y3ZpZGVvZW5naW5lLmggaW4g
SGVhZGVycyAqLywKKwkJCQk0MUVDRUFENDIwNjQxNDU4MDA5RDUxNDEgLyogb2JqY19mcmFtZV9i
dWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyM0ZDMUZFMTk4N0YwMDM3M0U5OSAvKiBv
YmpjX3ZpZGVvX2RlY29kZXJfZmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzQTIzRkQx
RkUxOTg3RjAwMzczRTk5IC8qIG9iamNfdmlkZW9fZW5jb2Rlcl9mYWN0b3J5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MTNBMjMzNjFGRTE4RTA3MDAzNzNFOTkgLyogb25ldGltZWV2ZW50LmggaW4g
SGVhZGVycyAqLywKQEAgLTExNTQ5LDYgKzExNjUwLDcgQEAKIAkJCQk0MTNBMjQ0MDFGRTE5OTFB
MDAzNzNFOTkgLyogUlRDRmllbGRUcmlhbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDVB
MUZFMTk5MUEwMDM3M0U5OSAvKiBSVENGaWxlTG9nZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTNBMjQ1NjFGRTE5OTFBMDAzNzNFOTkgLyogUlRDRmlsZVZpZGVvQ2FwdHVyZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTQxRUNFQUQwMjA2NDEzNzAwMDlENTE0MSAvKiBSVENJNDIwQnVmZmVyK1By
aXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDRFMUZFMTk5MUEwMDM3M0U5OSAvKiBS
VENJY2VDYW5kaWRhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDVFMUZFMTk5MUEwMDM3
M0U5OSAvKiBSVENJY2VTZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDQ4MUZFMTk5
MUEwMDM3M0U5OSAvKiBSVENJbnRlcnZhbFJhbmdlLmggaW4gSGVhZGVycyAqLywKQEAgLTExNTkx
LDYgKzExNjkzLDcgQEAKIAkJCQk0MTNBMjQ1RjFGRTE5OTFBMDAzNzNFOTkgLyogUlRDVHJhY2lu
Zy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE3REE0NTgxRUY5Q0QwRDAwRTg2OURCIC8qIFJUQ1VJ
QXBwbGljYXRpb25TdGF0dXNPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEzQTI0M0Qx
RkUxOTkxQTAwMzczRTk5IC8qIFJUQ1ZpZGVvQ2FwdHVyZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTQxRUNFQUI2MjA2MzAxMDgwMDlENTE0MSAvKiBSVENWaWRlb0NvZGVjK1ByaXZhdGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxM0EyNDQzMUZFMTk5MUEwMDM3M0U5OSAvKiBSVENWaWRlb0NvZGVj
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ1MzFGRTE5OTFBMDAzNzNFOTkgLyogUlRDVmlk
ZW9Db2RlY0ZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDNDMUZFMTk5MUEwMDM3
M0U5OSAvKiBSVENWaWRlb0NvZGVjSDI2NC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTU5OCwxMiAr
MTE3MDEsMTUgQEAKIAkJCQk0MTNBMjQ2MDFGRTE5OTFBMDAzNzNFOTkgLyogUlRDVmlkZW9EZWNv
ZGVyVlA5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ2RTFGRTE5OTFBMDAzNzNFOTkgLyog
UlRDVmlkZW9FbmNvZGVyVlA4LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ0NjFGRTE5OTFB
MDAzNzNFOTkgLyogUlRDVmlkZW9FbmNvZGVyVlA5LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MUVD
RUFDQzIwNjQxMzRGMDA5RDUxNDEgLyogUlRDVmlkZW9GcmFtZStQcml2YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0MTNBMjQ0RjFGRTE5OTFBMDAzNzNFOTkgLyogUlRDVmlkZW9GcmFtZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDEzQTI0NDExRkUxOTkxQTAwMzczRTk5IC8qIFJUQ1ZpZGVvRnJh
bWVCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDZGMUZFMTk5MUEwMDM3M0U5OSAv
KiBSVENWaWRlb1JlbmRlcmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTNBMjQ2MTFGRTE5OTFB
MDAzNzNFOTkgLyogUlRDVmlkZW9Tb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxM0EyNDUw
MUZFMTk5MUEwMDM3M0U5OSAvKiBSVENWaWRlb1RyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTNBMjQzQTFGRTE5OTFBMDAzNzNFOTkgLyogUlRDVmlkZW9WaWV3U2hhZGluZy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNDFFQ0VBRTMyMDY0MTZGRjAwOUQ1MTQxIC8qIFJUQ1dyYXBwZWROYXRpdmVW
aWRlb0RlY29kZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxRUNFQUUxMjA2NDE2RkYwMDlENTE0
MSAvKiBSVENXcmFwcGVkTmF0aXZlVmlkZW9FbmNvZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MTlDODJCODFGRTIwRENEMDA0MEMzMEYgLyogcnRwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDE5QzgzQzkxRkUyNDdCNDAwNDBDMzBGIC8qIHJ0cF9jdm8uaCBpbiBIZWFkZXJzICovLAog
CQkJCTQxMzA5MjAxMUVGOEQwQTYwMDc1N0M1NSAvKiBydHBfZGVtdXhlci5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0xMTg3Miw2ICsxMTk3OCw3IEBACiAJCQkJNUM0QjQ5MDcxRTQyQzFFMzAwMjY1MUM4
IC8qIHZpZGVvY29tbW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0QyODYyNTFFNkE2NjZEMDA5
NEZEQzggLyogdmlkZW9kZWNvZGVyc29mdHdhcmVmYWxsYmFja3dyYXBwZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTVDNEI0ODhBMUU0MkMxQkEwMDI2NTFDOCAvKiB2aWRlb2VuY29kZXJzb2Z0d2Fy
ZWZhbGxiYWNrd3JhcHBlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDFFQ0VBRkUyMDY0NjY2NDAw
OUQ1MTQxIC8qIFZpZGVvUHJvY2Vzc2luZ1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MUY5QkY4OTIwNTFDODAxMDBBQkYwQjkgLyogdmlkZW9zaW5raW50ZXJmYWNlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1QzRCNDkwQzFFNDJDMUUzMDAyNjUxQzggLyogdmlkZW9zb3VyY2ViYXNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MUY5QkY4QTIwNTFDODAxMDBBQkYwQjkgLyogdmlkZW9zb3Vy
Y2VpbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLApAQCAtMTE4OTIsNyArMTE5OTksNyBAQAogCQkJ
CTVDREQ4QkY2MUU0M0MyQjUwMDYyMUU5MiAvKiB2cTQuaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
NEI0QzgxMUU0MzFGOUMwMDI2NTFDOCAvKiB3YXZfZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUM0QjRDODQxRTQzMUY5QzAwMjY1MUM4IC8qIHdhdl9oZWFkZXIuaCBpbiBIZWFkZXJzICovLAot
CQkJCTQxM0EyNDNGMUZFMTk5MUEwMDM3M0U5OSAvKiBXZWJSVEMuaCBpbiBIZWFkZXJzICovLAor
CQkJCTQxRUNFQUJDMjA2NDAzQzIwMDlENTE0MSAvKiBXZWJLaXRVdGlsaXRpZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDREQ4Q0FCMUU0M0M2RjcwMDYyMUU5MiAvKiB3ZWJydGNfY25nLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MTQ1RTQ5MTFFRjg4RUY3MDBGQ0Y2RTYgLyogd2VicnRjX2xpYnl1
di5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFGOUJGQzcyMDUxRENFOTAwQUJGMEI5IC8qIHdlYnJ0
Y192YWQuaCBpbiBIZWFkZXJzICovLApAQCAtMTMwNTksNiArMTMxNjYsNyBAQAogCQkJCTQxOUM4
NDY5MUZFMjU1RkEwMDQwQzMwRiAvKiBoYW5kc2hha2UuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0
MTlDODQ4OTFGRTI1NzREMDA0MEMzMEYgLyogaGFuZHNoYWtlX2NsaWVudC5jYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTQxOUM4NDhCMUZFMjU3NEQwMDQwQzMwRiAvKiBoYW5kc2hha2Vfc2VydmVyLmNj
IGluIFNvdXJjZXMgKi8sCisJCQkJNDFFQ0VBRDgyMDY0MTQ3QzAwOUQ1MTQxIC8qIGhlbHBlcnMu
Y2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTNBMjM2RTFGRTE4RTA3MDAzNzNFOTkgLyogaGVscGVy
cy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4M0RCMUU0MzlBNkYwMDYyMUU5MiAvKiBoaXN0
b2dyYW0uY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTlDODM1MTFGRTI0NjY1MDA0MEMzMEYgLyog
aGlzdG9ncmFtX3BlcmNlbnRpbGVfY291bnRlci5jYyBpbiBTb3VyY2VzICovLApAQCAtMTMxODgs
MTEgKzEzMjk2LDE1IEBACiAJCQkJNUNERDhBM0QxRTQzQkZCMzAwNjIxRTkyIC8qIG5vcm1hbC5j
YyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4NkE3MUU0M0I5OTQwMDYyMUU5MiAvKiBub3JtYWxp
emVkX2NvdmFyaWFuY2VfZXN0aW1hdG9yLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg2MDAx
RTQzQjg0RTAwNjIxRTkyIC8qIG5zX2NvcmUuYyBpbiBTb3VyY2VzICovLAorCQkJCTQxRUNFQUMy
MjA2NDBGMjgwMDlENTE0MSAvKiBOU1N0cmluZytTdGRTdHJpbmcubW0gaW4gU291cmNlcyAqLywK
IAkJCQk1Q0REODYwNTFFNDNCODRFMDA2MjFFOTIgLyogbnN4X2NvcmUuYyBpbiBTb3VyY2VzICov
LAogCQkJCTVDREQ4NjAyMUU0M0I4NEUwMDYyMUU5MiAvKiBuc3hfY29yZV9jLmMgaW4gU291cmNl
cyAqLywKIAkJCQk0MUY0MTFBRDFFRjhEOTFGMDAzNDNDMjYgLyogbnVsbF9hZWNfZHVtcF9mYWN0
b3J5LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE5QzgzQjMxRkUyNDcyRTAwNDBDMzBGIC8qIG51
bGxfYXVkaW9fcG9sbGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzQTIzRDIxRkUxOEUwODAw
MzczRTk5IC8qIG51bGxzb2NrZXRzZXJ2ZXIuY2MgaW4gU291cmNlcyAqLywKKwkJCQk0MUVDRUFE
MzIwNjQxNDU4MDA5RDUxNDEgLyogb2JqY19mcmFtZV9idWZmZXIubW0gaW4gU291cmNlcyAqLywK
KwkJCQk0MUVDRUFEQjIwNjQxNUVBMDA5RDUxNDEgLyogb2JqY192aWRlb19kZWNvZGVyX2ZhY3Rv
cnkubW0gaW4gU291cmNlcyAqLywKKwkJCQk0MUVDRUFEQzIwNjQxNUVFMDA5RDUxNDEgLyogb2Jq
Y192aWRlb19lbmNvZGVyX2ZhY3RvcnkubW0gaW4gU291cmNlcyAqLywKIAkJCQk1Q0REODY5NDFF
NDNCOTM5MDA2MjFFOTIgLyogb291cmFfZmZ0LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg2
OTExRTQzQjkzOTAwNjIxRTkyIC8qIG9vdXJhX2ZmdF9zc2UyLmNjIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNDE5Qzg0MjcxRkUyNEJEMTAwNDBDMzBGIC8qIG9wZW5zc2xhZGFwdGVyLmNjIGluIFNvdXJj
ZXMgKi8sCkBAIC0xMzM0NSw3ICsxMzQ1NywxMCBAQAogCQkJCTQxOUM4NDFEMUZFMjRBRUYwMDQw
QzMwRiAvKiBydGNfc3RyZWFtX2NvbmZpZy5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxM0EyMzBG
MUZFMThFMDcwMDM3M0U5OSAvKiBydGNjZXJ0aWZpY2F0ZS5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTQxM0EyMkJFMUZFMThFMDcwMDM3M0U5OSAvKiBydGNjZXJ0aWZpY2F0ZWdlbmVyYXRvci5jYyBp
biBTb3VyY2VzICovLAorCQkJCTQxRUNFQUM2MjA2NDEzMDMwMDlENTE0MSAvKiBSVENDVlBpeGVs
QnVmZmVyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNDFFQ0VBQzgyMDY0MTMyODAwOUQ1MTQxIC8q
IFJUQ0VuY29kZWRJbWFnZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxRjQxMUIwMUVGOERBMDEw
MDM0M0MyNiAvKiBydGNlcnJvci5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxRUNFQUNGMjA2NDEz
NzAwMDlENTE0MSAvKiBSVENJNDIwQnVmZmVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDhB
NEYxRTQzQkZCMzAwNjIxRTkyIC8qIHJ0Y3AuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTlDODJC
OTFGRTIwRENEMDA0MEMzMEYgLyogcnRjcF9kZW11eGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUNEMjg1RkExRTZBNjQ1MjAwOTRGREM4IC8qIHJ0Y3BfbmFja19zdGF0cy5jYyBpbiBTb3VyY2Vz
ICovLApAQCAtMTMzNTUsMTAgKzEzNDcwLDE5IEBACiAJCQkJNDE5QzgyRkYxRkUyMEYwMjAwNDBD
MzBGIC8qIHJ0Y3BfdHJhbnNjZWl2ZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk0MTlDODMwMjFG
RTIwRjAyMDA0MEMzMEYgLyogcnRjcF90cmFuc2NlaXZlcl9jb25maWcuY2MgaW4gU291cmNlcyAq
LywKIAkJCQk0MTlDODMwMDFGRTIwRjAyMDA0MEMzMEYgLyogcnRjcF90cmFuc2NlaXZlcl9pbXBs
LmNjIGluIFNvdXJjZXMgKi8sCisJCQkJNDFFQ0VBREEyMDY0MTRBNjAwOUQ1MTQxIC8qIFJUQ1J0
cEZyYWdtZW50YXRpb25IZWFkZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk1QzYzRkE3ODFFNDE3
QUVEMDAyQ0E1MzEgLyogcnRjc3RhdHMuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1QzYzRkE3NzFF
NDE3QUVEMDAyQ0E1MzEgLyogcnRjc3RhdHNfb2JqZWN0cy5jYyBpbiBTb3VyY2VzICovLAogCQkJ
CTVDRDI4NTA3MUU2QTYwNTcwMDk0RkRDOCAvKiBydGNzdGF0c2NvbGxlY3Rvci5jYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTVDNjNGQTc5MUU0MTdBRUQwMDJDQTUzMSAvKiBydGNzdGF0c3JlcG9ydC5j
YyBpbiBTb3VyY2VzICovLAorCQkJCTQxRUNFQUI3MjA2MzAxMDgwMDlENTE0MSAvKiBSVENWaWRl
b0NvZGVjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNDFFQ0VBQjgyMDYzMDEwODAwOUQ1MTQxIC8q
IFJUQ1ZpZGVvQ29kZWNIMjY0Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNDFFQ0VBQzMyMDY0MTFF
MjAwOUQ1MTQxIC8qIFJUQ1ZpZGVvRGVjb2RlckgyNjQubW0gaW4gU291cmNlcyAqLywKKwkJCQk0
MUVDRUFDNDIwNjQxMUU1MDA5RDUxNDEgLyogUlRDVmlkZW9FbmNvZGVySDI2NC5tbSBpbiBTb3Vy
Y2VzICovLAorCQkJCTQxRUNFQUVBMjA2NDE4MTIwMDlENTE0MSAvKiBSVENWaWRlb0VuY29kZXJT
ZXR0aW5ncy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTQxRUNFQUNCMjA2NDEzNEYwMDlENTE0MSAv
KiBSVENWaWRlb0ZyYW1lLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNDFFQ0VBRTQyMDY0MTZGRjAw
OUQ1MTQxIC8qIFJUQ1dyYXBwZWROYXRpdmVWaWRlb0RlY29kZXIubW0gaW4gU291cmNlcyAqLywK
KwkJCQk0MUVDRUFFMjIwNjQxNkZGMDA5RDUxNDEgLyogUlRDV3JhcHBlZE5hdGl2ZVZpZGVvRW5j
b2Rlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxOUM4MkI0MUZFMjBEQ0QwMDQwQzMwRiAvKiBy
dHBfY29uZmlnLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEzMDkyMDIxRUY4RDBBNjAwNzU3QzU1
IC8qIHJ0cF9kZW11eGVyLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg4QjAxRTQzQkUzQzAw
NjIxRTkyIC8qIHJ0cF9mb3JtYXQuY2MgaW4gU291cmNlcyAqLywKQEAgLTEzNjA3LDYgKzEzNzMx
LDcgQEAKIAkJCQk1QzRCNDkwNjFFNDJDMUUzMDAyNjUxQzggLyogdmlkZW9jb21tb24uY2MgaW4g
U291cmNlcyAqLywKIAkJCQk1Q0QyODYyNDFFNkE2NjZEMDA5NEZEQzggLyogdmlkZW9kZWNvZGVy
c29mdHdhcmVmYWxsYmFja3dyYXBwZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1QzRCNDg4OTFF
NDJDMUJBMDAyNjUxQzggLyogdmlkZW9lbmNvZGVyc29mdHdhcmVmYWxsYmFja3dyYXBwZXIuY2Mg
aW4gU291cmNlcyAqLywKKwkJCQk0MUVDRUFGRDIwNjQ2NjY0MDA5RDUxNDEgLyogVmlkZW9Qcm9j
ZXNzaW5nU29mdExpbmsuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0QjQ5MEIxRTQyQzFFMzAw
MjY1MUM4IC8qIHZpZGVvc291cmNlYmFzZS5jYyBpbiBTb3VyY2VzICovLAogCQkJCTQxRjlCRjhG
MjA1MUM4MDEwMEFCRjBCOSAvKiB2aWRlb3NvdXJjZWludGVyZmFjZS5jYyBpbiBTb3VyY2VzICov
LAogCQkJCTQxOUM4NEIzMUZFMzA0QzcwMDQwQzMwRiAvKiBWaWRlb1Rvb2xCb3hEZWNvZGVyRmFj
dG9yeS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTEzNjI2LDYgKzEzNzUxLDcgQEAKIAkJCQk1QzRC
NEM4MDFFNDMxRjlDMDAyNjUxQzggLyogd2F2X2ZpbGUuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1
QzRCNEM4MzFFNDMxRjlDMDAyNjUxQzggLyogd2F2X2hlYWRlci5jYyBpbiBTb3VyY2VzICovLAog
CQkJCTQxM0EyMkU5MUZFMThFMDcwMDM3M0U5OSAvKiB3ZWFrX3B0ci5jYyBpbiBTb3VyY2VzICov
LAorCQkJCTQxRUNFQUJFMjA2NDA0OTgwMDlENTE0MSAvKiBXZWJLaXRVdGlsaXRpZXMubW0gaW4g
U291cmNlcyAqLywKIAkJCQk1Q0REOENBQTFFNDNDNkY3MDA2MjFFOTIgLyogd2VicnRjX2NuZy5j
YyBpbiBTb3VyY2VzICovLAogCQkJCTVDREQ4MzY3MUU0MzI1RDUwMDYyMUU5MiAvKiB3ZWJydGNf
bGlieXV2LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNERDg2RTQxRTQzQkEyODAwNjIxRTkyIC8q
IHdlYnJ0Y192YWQuYyBpbiBTb3VyY2VzICovLApAQCAtMTM2MzQsNiArMTM3NjAsOCBAQAogCQkJ
CTVDRDI4NTFBMUU2QTYwNTcwMDk0RkRDOCAvKiB3ZWJydGNzZXNzaW9uZGVzY3JpcHRpb25mYWN0
b3J5LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM0QjQ4OTAxRTQyQzFCQTAwMjY1MUM4IC8qIHdl
YnJ0Y3ZpZGVvY2FwdHVyZXIuY2MgaW4gU291cmNlcyAqLywKIAkJCQk1QzRCNDg5MjFFNDJDMUJB
MDAyNjUxQzggLyogd2VicnRjdmlkZW9jYXB0dXJlcmZhY3RvcnkuY2MgaW4gU291cmNlcyAqLywK
KwkJCQk0MUVDRUFFODIwNjQxN0U5MDA5RDUxNDEgLyogd2VicnRjdmlkZW9kZWNvZGVyZmFjdG9y
eS5jYyBpbiBTb3VyY2VzICovLAorCQkJCTQxRUNFQUU3MjA2NDE3RTkwMDlENTE0MSAvKiB3ZWJy
dGN2aWRlb2VuY29kZXJmYWN0b3J5LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE0NUU0RDExRUY4
Q0MyMDAwRkNGNkU2IC8qIHdlYnJ0Y3ZpZGVvZW5naW5lLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NUM0QjQ4OUQxRTQyQzFCQTAwMjY1MUM4IC8qIHdlYnJ0Y3ZvaWNlZW5naW5lLmNjIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNUNERDhCRjcxRTQzQzJCNTAwNjIxRTkyIC8qIHdpbmRvdzMyX3czMi5jIGlu
IFNvdXJjZXMgKi8sCkBAIC0xMzk3OCw2ICsxNDEwNiw5IEBACiAJCQkJCVNvdXJjZS93ZWJydGMs
CiAJCQkJCVNvdXJjZS93ZWJydGMvc2RrL29iamMvRnJhbWV3b3JrL0NsYXNzZXMvLAogCQkJCQlT
b3VyY2UvdGhpcmRfcGFydHkvbGlic3J0cC9jb25maWcsCisJCQkJCVNvdXJjZS93ZWJydGMvc2Rr
L29iamMvRnJhbWV3b3JrL0NsYXNzZXMvQ29tbW9uLAorCQkJCQlTb3VyY2Uvd2VicnRjL3Nkay9v
YmpjL0ZyYW1ld29yay9DbGFzc2VzL1ZpZGVvLAorCQkJCQlTb3VyY2Uvd2VicnRjL3Nkay9vYmpj
L0ZyYW1ld29yay9DbGFzc2VzL1BlZXJDb25uZWN0aW9uLAogCQkJCSk7CiAJCQkJT1RIRVJfQ0ZM
QUdTID0gIiI7CiAJCQl9OwpAQCAtMTQwMjcsNiArMTQxNTgsOSBAQAogCQkJCQlTb3VyY2Uvd2Vi
cnRjLAogCQkJCQlTb3VyY2Uvd2VicnRjL3Nkay9vYmpjL0ZyYW1ld29yay9DbGFzc2VzLywKIAkJ
CQkJU291cmNlL3RoaXJkX3BhcnR5L2xpYnNydHAvY29uZmlnLAorCQkJCQlTb3VyY2Uvd2VicnRj
L3Nkay9vYmpjL0ZyYW1ld29yay9DbGFzc2VzL0NvbW1vbiwKKwkJCQkJU291cmNlL3dlYnJ0Yy9z
ZGsvb2JqYy9GcmFtZXdvcmsvQ2xhc3Nlcy9WaWRlbywKKwkJCQkJU291cmNlL3dlYnJ0Yy9zZGsv
b2JqYy9GcmFtZXdvcmsvQ2xhc3Nlcy9QZWVyQ29ubmVjdGlvbiwKIAkJCQkpOwogCQkJfTsKIAkJ
CW5hbWUgPSBEZWJ1ZzsKQEAgLTE0MDYwLDYgKzE0MTk0LDkgQEAKIAkJCQkJU291cmNlL3dlYnJ0
YywKIAkJCQkJU291cmNlL3dlYnJ0Yy9zZGsvb2JqYy9GcmFtZXdvcmsvQ2xhc3Nlcy8sCiAJCQkJ
CVNvdXJjZS90aGlyZF9wYXJ0eS9saWJzcnRwL2NvbmZpZywKKwkJCQkJU291cmNlL3dlYnJ0Yy9z
ZGsvb2JqYy9GcmFtZXdvcmsvQ2xhc3Nlcy9Db21tb24sCisJCQkJCVNvdXJjZS93ZWJydGMvc2Rr
L29iamMvRnJhbWV3b3JrL0NsYXNzZXMvVmlkZW8sCisJCQkJCVNvdXJjZS93ZWJydGMvc2RrL29i
amMvRnJhbWV3b3JrL0NsYXNzZXMvUGVlckNvbm5lY3Rpb24sCiAJCQkJKTsKIAkJCQlPVEhFUl9D
RkxBR1MgPSAiIjsKIAkJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCAzMmEwYzdiZTgyOGM1OTYyZjhkYjA1MGU3MmJiYjI0OTIwYmU3NTRiLi5mMGIwZjcy
YmZjZTRlM2EyOWY4NTFhMGU5N2FhOTNhZjc0OTEyNDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUzNSw2ICs1MzUsMTEgQEAKIAkJQThBNDczMEUxNTFB
ODI1QjAwNDEyM0ZGIC8qIFN0YWNrQm91bmRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFN0YWNrQm91bmRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQThBNDczMEYxNTFBODI1QjAwNDEyM0ZGIC8qIFN0YWNrQm91bmRzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0YWNrQm91bmRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE4QTQ3MzExMTUxQTgyNUIwMDQxMjNGRiAvKiBTdGRMaWJFeHRyYXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RkTGliRXh0cmFzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUZGMEE0MzY1ODg5NTRGM0NCMDdEQkVDQSAvKiBTdGRMaXN0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0ZExpc3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMzkxQkQ2QkE0RDE2NEZEMjk0RjlBOTNEIC8qIFN0ZE1hcC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdGRNYXAuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTNGMDhBMUJBMzlENDlBOEJBRDM2OUExIC8qIFN0ZFNldC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdGRTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNzkzQkZBREQ5Q0VENDRCOEI5RkJDQTE2IC8qIFN0ZFVub3JkZXJlZE1hcC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdGRVbm9yZGVyZWRNYXAuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMTMyNzQzOTI0RkM1NEU0NjlGNUE4RTZFIC8qIFN0
ZFVub3JkZXJlZFNldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdGRVbm9y
ZGVyZWRTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDczMTMxNTFBODI1
QjAwNDEyM0ZGIC8qIFN0cmluZ0V4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTdHJpbmdFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcz
MTQxNTFBODI1QjAwNDEyM0ZGIC8qIEhhc2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBIYXNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDczMUEx
NTFBODI1QjAwNDEyM0ZGIC8qIFNldEZvclNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNldEZvclNjb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
MDYxLDYgKzEwNjYsMTEgQEAKIAkJCQkzMTNFREVDOTc3OEU0OUM5QkVBOTFDRkMgLyogU3RhY2tU
cmFjZS5jcHAgKi8sCiAJCQkJRUY3RDZDRDU5RDg2NDJBOEEwREE4NkFEIC8qIFN0YWNrVHJhY2Uu
aCAqLywKIAkJCQlBOEE0NzMxMTE1MUE4MjVCMDA0MTIzRkYgLyogU3RkTGliRXh0cmFzLmggKi8s
CisJCQkJRkYwQTQzNjU4ODk1NEYzQ0IwN0RCRUNBIC8qIFN0ZExpc3QuaCAqLywKKwkJCQkzOTFC
RDZCQTREMTY0RkQyOTRGOUE5M0QgLyogU3RkTWFwLmggKi8sCisJCQkJNTNGMDhBMUJBMzlENDlB
OEJBRDM2OUExIC8qIFN0ZFNldC5oICovLAorCQkJCTc5M0JGQUREOUNFRDQ0QjhCOUZCQ0ExNiAv
KiBTdGRVbm9yZGVyZWRNYXAuaCAqLywKKwkJCQkxMzI3NDM5MjRGQzU0RTQ2OUY1QThFNkUgLyog
U3RkVW5vcmRlcmVkU2V0LmggKi8sCiAJCQkJQzRGOEE5MzYxOUM2NUVCNDAwQjJCMTVEIC8qIFN0
b3B3YXRjaC5oICovLAogCQkJCTFBNkJCNzY4MTYyRjMwMDUwMEREMTZEQiAvKiBTdHJlYW1CdWZm
ZXIuaCAqLywKIAkJCQlBOEE0NzMxMzE1MUE4MjVCMDA0MTIzRkYgLyogU3RyaW5nRXh0cmFzLmgg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
VEYvd3RmL0NNYWtlTGlzdHMudHh0CmluZGV4IDg2Mzk2MTU2NjUyOTVhZDNiYzExMWEyOGY2YjNj
NTkwZDVkMDViZjUuLjY1YTY1MGZjNTljZjFhMGZiODM3NTRmMzg2NzNjODU3MjcwY2VlZTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XVEYv
d3RmL0NNYWtlTGlzdHMudHh0CkBAIC0yMTAsNiArMjEwLDExIEBAIHNldChXVEZfUFVCTElDX0hF
QURFUlMKICAgICBTdGFja1N0YXRzLmgKICAgICBTdGFja1RyYWNlLmgKICAgICBTdGRMaWJFeHRy
YXMuaAorICAgIFN0ZExpc3QuaAorICAgIFN0ZE1hcC5oCisgICAgU3RkU2V0LmgKKyAgICBTdGRV
bm9yZGVyZWRNYXAuaAorICAgIFN0ZFVub3JkZXJlZFNldC5oCiAgICAgU3RvcHdhdGNoLmgKICAg
ICBTdHJlYW1CdWZmZXIuaAogICAgIFN0cmluZ0V4dHJhcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5oIGIvU291cmNlL1dURi93dGYvRmVhdHVyZURlZmluZXMu
aAppbmRleCBmNGUxNDYyZTM4ZDg2OWU2NGZiMzgxNDdjOGE4OGQ0ZTQ3M2JkYmI4Li5iZTRhOWQ3
NWYxNTE3Y2M2M2ZiYWUwMTFkNjliMTIyMjEwMzg1ZWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi9GZWF0dXJlRGVmaW5lcy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVz
LmgKQEAgLTU0LDYgKzU0LDEyIEBACiAvKiAtLS0tLS0tLS0gQXBwbGUgSU9TIChidXQgbm90IE1B
QykgcG9ydCAtLS0tLS0tLS0gKi8KICNpZiBQTEFURk9STShJT1MpCiAKKyNpZiAhZGVmaW5lZChF
TkFCTEVfQUlSUExBWV9QSUNLRVIpCisjaWYgIUVOQUJMRShNSU5JTUFMX1NJTVVMQVRPUikKKyNk
ZWZpbmUgRU5BQkxFX0FJUlBMQVlfUElDS0VSIDEKKyNlbmRpZgorI2VuZGlmCisKICNpZiAhZGVm
aW5lZChFTkFCTEVfQVNZTkNfU0NST0xMSU5HKQogI2RlZmluZSBFTkFCTEVfQVNZTkNfU0NST0xM
SU5HIDEKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVtb3J5UHJlc3N1cmVI
YW5kbGVyLmNwcCBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAKaW5k
ZXggYmIzNDIxNTY4YTA2NzdmMGU2ZWFjMDQwMDAzODA1NWIwOGI3ODIzYy4uODMyODg1MzU4Yzdi
NDk4YTA3MmJiNzc4Zjg0YWQ4Nzg1OTU0NGIxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
TWVtb3J5UHJlc3N1cmVIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlQcmVz
c3VyZUhhbmRsZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlIDx3dGYvTWVtb3J5
Rm9vdHByaW50Lmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8
d3RmL1JBTVNpemUuaD4KIAogI2RlZmluZSBMT0dfQ0hBTk5FTF9QUkVGSVggTG9nCiAKQEAgLTg0
LDIwICs4NSwxNyBAQCBzdGF0aWMgY29uc3QgY2hhciogdG9TdHJpbmcoTWVtb3J5VXNhZ2VQb2xp
Y3kgcG9saWN5KQogCiBzdGF0aWMgc2l6ZV90IHRocmVzaG9sZEZvck1lbW9yeUtpbGxXaXRoUHJv
Y2Vzc1N0YXRlKFdlYnNhbVByb2Nlc3NTdGF0ZSBwcm9jZXNzU3RhdGUsIHVuc2lnbmVkIHRhYkNv
dW50KQogeworICAgIHNpemVfdCBiYXNlVGhyZXNob2xkID0gMiAqIEdCOwogI2lmIENQVShYODZf
NjQpIHx8IENQVShBUk02NCkKLSAgICBzaXplX3QgYmFzZVRocmVzaG9sZDsKICAgICBpZiAocHJv
Y2Vzc1N0YXRlID09IFdlYnNhbVByb2Nlc3NTdGF0ZTo6QWN0aXZlKQogICAgICAgICBiYXNlVGhy
ZXNob2xkID0gNCAqIEdCOwotICAgIGVsc2UKLSAgICAgICAgYmFzZVRocmVzaG9sZCA9IDIgKiBH
QjsKLSAgICBpZiAodGFiQ291bnQgPD0gMSkKLSAgICAgICAgcmV0dXJuIGJhc2VUaHJlc2hvbGQ7
Ci0gICAgcmV0dXJuIGJhc2VUaHJlc2hvbGQgKyAoc3RkOjptaW4odGFiQ291bnQgLSAxLCA0dSkg
KiAxICogR0IpOworICAgIGlmICh0YWJDb3VudCA+IDEpCisgICAgICAgIGJhc2VUaHJlc2hvbGQg
Kz0gc3RkOjptaW4odGFiQ291bnQgLSAxLCA0dSkgKiAxICogR0I7CiAjZWxzZQotICAgIFVOVVNF
RF9QQVJBTShwcm9jZXNzU3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTSh0YWJDb3VudCk7Ci0gICAg
cmV0dXJuIDMgKiBHQjsKKyAgICBpZiAoKHRhYkNvdW50ID4gMSkgfHwgKHByb2Nlc3NTdGF0ZSA9
PSBXZWJzYW1Qcm9jZXNzU3RhdGU6OkFjdGl2ZSkpCisgICAgICAgIGJhc2VUaHJlc2hvbGQgPSAz
ICogR0I7CiAjZW5kaWYKKyAgICByZXR1cm4gc3RkOjptaW4oYmFzZVRocmVzaG9sZCwgc3RhdGlj
X2Nhc3Q8c2l6ZV90PihyYW1TaXplKCkgKiAwLjkpKTsKIH0KIAogdm9pZCBNZW1vcnlQcmVzc3Vy
ZUhhbmRsZXI6OnNldFBhZ2VDb3VudCh1bnNpZ25lZCBwYWdlQ291bnQpCkBAIC0xMTQsMTEgKzEx
MiwxMiBAQCBzaXplX3QgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjp0aHJlc2hvbGRGb3JNZW1vcnlL
aWxsKCkKIAogc3RhdGljIHNpemVfdCB0aHJlc2hvbGRGb3JQb2xpY3koTWVtb3J5VXNhZ2VQb2xp
Y3kgcG9saWN5KQogeworICAgIGNvbnN0IHNpemVfdCBiYXNlVGhyZXNob2xkRm9yUG9saWN5ID0g
c3RkOjptaW4oMyAqIEdCLCByYW1TaXplKCkpOwogICAgIHN3aXRjaCAocG9saWN5KSB7CiAgICAg
Y2FzZSBNZW1vcnlVc2FnZVBvbGljeTo6Q29uc2VydmF0aXZlOgotICAgICAgICByZXR1cm4gMSAq
IEdCOworICAgICAgICByZXR1cm4gYmFzZVRocmVzaG9sZEZvclBvbGljeSAvIDM7CiAgICAgY2Fz
ZSBNZW1vcnlVc2FnZVBvbGljeTo6U3RyaWN0OgotICAgICAgICByZXR1cm4gMS41ICogR0I7Cisg
ICAgICAgIHJldHVybiBiYXNlVGhyZXNob2xkRm9yUG9saWN5IC8gMjsKICAgICBjYXNlIE1lbW9y
eVVzYWdlUG9saWN5OjpVbnJlc3RyaWN0ZWQ6CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CkBAIC0xNDIsNyArMTQxLDcgQEAgdm9pZCBNZW1vcnlQcmVzc3VyZUhh
bmRsZXI6OnNocmlua09yRGllKCkKIAogICAgIGF1dG8gZm9vdHByaW50ID0gbWVtb3J5Rm9vdHBy
aW50KCk7CiAgICAgUkVMRUFTRV9BU1NFUlQoZm9vdHByaW50KTsKLSAgICBSRUxFQVNFX0xPRyhN
ZW1vcnlQcmVzc3VyZSwgIk5ldyBtZW1vcnkgZm9vdHByaW50OiAlbHUgTUIiLCBmb290cHJpbnQu
dmFsdWUoKSAvIE1CKTsKKyAgICBSRUxFQVNFX0xPRyhNZW1vcnlQcmVzc3VyZSwgIk5ldyBtZW1v
cnkgZm9vdHByaW50OiAlenUgTUIiLCBmb290cHJpbnQudmFsdWUoKSAvIE1CKTsKIAogICAgIGlm
IChmb290cHJpbnQudmFsdWUoKSA8IHRocmVzaG9sZEZvck1lbW9yeUtpbGwoKSkgewogICAgICAg
ICBSRUxFQVNFX0xPRyhNZW1vcnlQcmVzc3VyZSwgIlNocmFuayBiZWxvdyBtZW1vcnkga2lsbCB0
aHJlc2hvbGQuIFByb2Nlc3MgZ2V0cyB0byBsaXZlLiIpOwpAQCAtMTUwLDYgKzE0OSw3IEBAIHZv
aWQgTWVtb3J5UHJlc3N1cmVIYW5kbGVyOjpzaHJpbmtPckRpZSgpCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKKyAgICBXVEZMb2dBbHdheXMoIlVuYWJsZSB0byBzaHJpbmsgbWVtb3J5IGZvb3Rw
cmludCBvZiBwcm9jZXNzICglenUgTUIpIGJlbG93IHRoZSBraWxsIHRocmVzb2xkICglenUgTUIp
LiBLaWxsZWRcbiIsIGZvb3RwcmludC52YWx1ZSgpIC8gTUIsIHRocmVzaG9sZEZvck1lbW9yeUtp
bGwoKSAvIE1CKTsKICAgICBSRUxFQVNFX0FTU0VSVChtX21lbW9yeUtpbGxDYWxsYmFjayk7CiAg
ICAgbV9tZW1vcnlLaWxsQ2FsbGJhY2soKTsKIH0KQEAgLTE3MSw3ICsxNzEsNyBAQCB2b2lkIE1l
bW9yeVByZXNzdXJlSGFuZGxlcjo6bWVhc3VyZW1lbnRUaW1lckZpcmVkKCkKICAgICBpZiAoIWZv
b3RwcmludCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUkVMRUFTRV9MT0coTWVtb3J5UHJlc3N1
cmUsICJDdXJyZW50IG1lbW9yeSBmb290cHJpbnQ6ICVsdSBNQiIsIGZvb3RwcmludC52YWx1ZSgp
IC8gTUIpOworICAgIFJFTEVBU0VfTE9HKE1lbW9yeVByZXNzdXJlLCAiQ3VycmVudCBtZW1vcnkg
Zm9vdHByaW50OiAlenUgTUIiLCBmb290cHJpbnQudmFsdWUoKSAvIE1CKTsKICAgICBpZiAoZm9v
dHByaW50LnZhbHVlKCkgPj0gdGhyZXNob2xkRm9yTWVtb3J5S2lsbCgpKSB7CiAgICAgICAgIHNo
cmlua09yRGllKCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCmluZGV4IGRhNGI5MGE2ZmNm
MGNmNTg4OTUzNjdhZTMxMGM5NDI0NjUyYjljZTYuLjg0YmM0NGM3NDUwNWMzMjhiMGU2ZGQ4ODRk
ZjNmMWIwYTA3M2Q5M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKKysr
IGIvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaApAQCAtMTAzMSw2ICsxMDMxLDcgQEAKICNkZWZp
bmUgSEFWRV9BUFBfTElOS1MgMQogI2VuZGlmCiAjaWYgIUVOQUJMRShNSU5JTUFMX1NJTVVMQVRP
UikKKyNkZWZpbmUgSEFWRV9BVURJT19UT09MQk9YX0FVRElPX1NFU1NJT04gMQogI2RlZmluZSBI
QVZFX0NFTEVTVElBTCAxCiAjZW5kaWYKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvUHJvY2Vzc1ByaXZpbGVnZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9Qcm9jZXNzUHJpdmlsZWdl
LmNwcAppbmRleCAyMzMzNTMyODdkNmNlMzgzZDJhMDU4MmU2Njc1NTljNGU5YjJjNWJkLi41YTZh
MGU1MWQyYTc1ZmYyYjI2ZDZlZTVlNmIzNjY2ODUwMGY4OGU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9Qcm9jZXNzUHJpdmlsZWdlLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Qcm9jZXNz
UHJpdmlsZWdlLmNwcApAQCAtNTUsNCArNTUsMTQgQEAgYm9vbCBoYXNQcm9jZXNzUHJpdmlsZWdl
KFByb2Nlc3NQcml2aWxlZ2UgcHJpdmlsZWdlKQogICAgIHJldHVybiBwcm9jZXNzUHJpdmlsZWdl
cygpLmNvbnRhaW5zKHByaXZpbGVnZSk7CiB9CiAKK3ZvaWQgYWRkUHJvY2Vzc1ByaXZpbGVnZShQ
cm9jZXNzUHJpdmlsZWdlIHByaXZpbGVnZSkKK3sKKyAgICBwcm9jZXNzUHJpdmlsZWdlcygpIHw9
IHByaXZpbGVnZTsKK30KKwordm9pZCByZW1vdmVQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2
aWxlZ2UgcHJpdmlsZWdlKQoreworICAgIHByb2Nlc3NQcml2aWxlZ2VzKCkgPSBwcm9jZXNzUHJp
dmlsZWdlcygpIC0gcHJpdmlsZWdlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1Byb2Nlc3NQcml2aWxlZ2UuaCBiL1NvdXJjZS9XVEYvd3RmL1By
b2Nlc3NQcml2aWxlZ2UuaAppbmRleCA5YWRiNzU3NGQ2ZTcwZGM5YWExNzNmMWZlYjViNjRmYThh
ZDk0Y2Q5Li43ZDk5Y2I0NjJiZmQ1ZmY4NGM5NDNmMDIyYmQ3NDc1OTAwZjc2NTQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9Qcm9jZXNzUHJpdmlsZWdlLmgKKysrIGIvU291cmNlL1dURi93
dGYvUHJvY2Vzc1ByaXZpbGVnZS5oCkBAIC0zNiw2ICszNiw4IEBAIGVudW0gY2xhc3MgUHJvY2Vz
c1ByaXZpbGVnZSB7CiB9OwogCiBXVEZfRVhQT1JUIHZvaWQgc2V0UHJvY2Vzc1ByaXZpbGVnZXMo
T3B0aW9uU2V0PFByb2Nlc3NQcml2aWxlZ2U+KTsKK1dURl9FWFBPUlQgdm9pZCBhZGRQcm9jZXNz
UHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2UpOworV1RGX0VYUE9SVCB2b2lkIHJlbW92ZVByb2Nl
c3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZSk7CiBXVEZfRVhQT1JUIGJvb2wgaGFzUHJvY2Vz
c1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlKTsKIFdURl9FWFBPUlQgT3B0aW9uU2V0PFByb2Nl
c3NQcml2aWxlZ2U+IGFsbFByaXZpbGVnZXMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvUmVmLmggYi9Tb3VyY2UvV1RGL3d0Zi9SZWYuaAppbmRleCAyZWQ0ZDI4NjhmODk5OTVjMTk2
NTM1MzNkNjkzOTQ5NjBlY2M0ZjQ5Li4xYWFkNzZmNjQwYjFlODY2OTFmNjU2OGJjNjc3MTI3MTc4
OGRkNTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9SZWYuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9SZWYuaApAQCAtMTA4LDYgKzEwOCwxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFzc2ln
blRvSGFzaFRhYmxlRW1wdHlWYWx1ZShSZWYmJiByZWZlcmVuY2UpCiAgICAgeworI2lmIEFTQU5f
RU5BQkxFRAorICAgICAgICBpZiAoX19hc2FuX2FkZHJlc3NfaXNfcG9pc29uZWQodGhpcykpCisg
ICAgICAgICAgICBfX2FzYW5fdW5wb2lzb25fbWVtb3J5X3JlZ2lvbih0aGlzLCBzaXplb2YoKnRo
aXMpKTsKKyNlbmRpZgogICAgICAgICBBU1NFUlQobV9wdHIgPT0gaGFzaFRhYmxlRW1wdHlWYWx1
ZSgpKTsKICAgICAgICAgbV9wdHIgPSAmcmVmZXJlbmNlLmxlYWtSZWYoKTsKICAgICAgICAgQVNT
RVJUKG1fcHRyKTsKQEAgLTE2Niw2ICsxNzAsMTAgQEAgaW5saW5lIFJlZjxULCBVPiYgUmVmPFQs
IFU+OjpvcGVyYXRvcj0oVCYgcmVmZXJlbmNlKQogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5h
bWUgVT4KIGlubGluZSBSZWY8VCwgVT4mIFJlZjxULCBVPjo6b3BlcmF0b3I9KFJlZiYmIHJlZmVy
ZW5jZSkKIHsKKyNpZiBBU0FOX0VOQUJMRUQKKyAgICBpZiAoX19hc2FuX2FkZHJlc3NfaXNfcG9p
c29uZWQodGhpcykpCisgICAgICAgIF9fYXNhbl91bnBvaXNvbl9tZW1vcnlfcmVnaW9uKHRoaXMs
IHNpemVvZigqdGhpcykpOworI2VuZGlmCiAgICAgUmVmIG1vdmVkUmVmZXJlbmNlID0gV1RGTW92
ZShyZWZlcmVuY2UpOwogICAgIHN3YXAobW92ZWRSZWZlcmVuY2UpOwogICAgIHJldHVybiAqdGhp
czsKQEAgLTE3NSw2ICsxODMsMTAgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4K
IHRlbXBsYXRlPHR5cGVuYW1lIFgsIHR5cGVuYW1lIFk+CiBpbmxpbmUgUmVmPFQsIFU+JiBSZWY8
VCwgVT46Om9wZXJhdG9yPShSZWY8WCwgWT4mJiByZWZlcmVuY2UpCiB7CisjaWYgQVNBTl9FTkFC
TEVECisgICAgaWYgKF9fYXNhbl9hZGRyZXNzX2lzX3BvaXNvbmVkKHRoaXMpKQorICAgICAgICBf
X2FzYW5fdW5wb2lzb25fbWVtb3J5X3JlZ2lvbih0aGlzLCBzaXplb2YoKnRoaXMpKTsKKyNlbmRp
ZgogICAgIFJlZiBtb3ZlZFJlZmVyZW5jZSA9IFdURk1vdmUocmVmZXJlbmNlKTsKICAgICBzd2Fw
KG1vdmVkUmVmZXJlbmNlKTsKICAgICByZXR1cm4gKnRoaXM7CkBAIC0xOTcsNiArMjA5LDEwIEBA
IHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+CiB0ZW1wbGF0ZTx0eXBlbmFtZSBYLCB0
eXBlbmFtZSBZPgogaW5saW5lIFJlZjxULCBVPiBSZWY8VCwgVT46OnJlcGxhY2UoUmVmPFgsIFk+
JiYgcmVmZXJlbmNlKQogeworI2lmIEFTQU5fRU5BQkxFRAorICAgIGlmIChfX2FzYW5fYWRkcmVz
c19pc19wb2lzb25lZCh0aGlzKSkKKyAgICAgICAgX19hc2FuX3VucG9pc29uX21lbW9yeV9yZWdp
b24odGhpcywgc2l6ZW9mKCp0aGlzKSk7CisjZW5kaWYKICAgICBhdXRvIG9sZFJlZmVyZW5jZSA9
IGFkb3B0UmVmKCptX3B0cik7CiAgICAgbV9wdHIgPSAmcmVmZXJlbmNlLmxlYWtSZWYoKTsKICAg
ICByZXR1cm4gb2xkUmVmZXJlbmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvU3RkTGlz
dC5oIGIvU291cmNlL1dURi93dGYvU3RkTGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1YWMzNmFjYmJkMGYw
YWU5NGI1YTU2OGY5NGI4OGFjZThlYmIzODMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9TdGRMaXN0LmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OCBZdXN1a2UgU3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+LgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPGxp
c3Q+CisjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK3Rl
bXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEFsbG9jYXRvciA9IEZhc3RBbGxvY2F0b3I8VD4+
Cit1c2luZyBTdGRMaXN0ID0gc3RkOjpsaXN0PFQsIEFsbG9jYXRvcj47CisKK30gLy8gbmFtZXNw
YWNlIFdURgorCit1c2luZyBXVEY6OlN0ZExpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9TdGRNYXAuaCBiL1NvdXJjZS9XVEYvd3RmL1N0ZE1hcC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVlMjA5YmM0
ODEyNTM5MDg1Nzc0ZmQ1ZDI5MTYxZmIyMDFkM2NlYmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9TdGRNYXAuaApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE4IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSA8bWFwPgorI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CisKK25hbWVzcGFjZSBXVEYgewor
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBLZXksIHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBDb21wYXJl
ID0gc3RkOjpsZXNzPEtleT4sIHR5cGVuYW1lIEFsbG9jYXRvciA9IEZhc3RBbGxvY2F0b3I8c3Rk
OjpwYWlyPGNvbnN0IEtleSwgVmFsdWU+Pj4KK3VzaW5nIFN0ZE1hcCA9IHN0ZDo6bWFwPEtleSwg
VmFsdWUsIENvbXBhcmUsIEFsbG9jYXRvcj47CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2lu
ZyBXVEY6OlN0ZE1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1N0ZFNldC5oIGIvU291
cmNlL1dURi93dGYvU3RkU2V0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2QxN2EzYmE5NzA5YzM4MzZjOWM2N2M2
NzUwNzViYTEyYmVjYmQyNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL1N0ZFNl
dC5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggWXVzdWtlIFN1
enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPi4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxzZXQ+CisjaW5jbHVk
ZSA8d3RmL0Zhc3RNYWxsb2MuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPHR5cGVu
YW1lIEtleSwgdHlwZW5hbWUgQ29tcGFyZSA9IHN0ZDo6bGVzczxLZXk+LCB0eXBlbmFtZSBBbGxv
Y2F0b3IgPSBGYXN0QWxsb2NhdG9yPEtleT4+Cit1c2luZyBTdGRTZXQgPSBzdGQ6OnNldDxLZXks
IENvbXBhcmUsIEFsbG9jYXRvcj47CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6
OlN0ZFNldDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1N0ZFVub3JkZXJlZE1hcC5oIGIv
U291cmNlL1dURi93dGYvU3RkVW5vcmRlcmVkTWFwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDc4M2ZiM2ZhYTZi
MWRlMjAxZWU3ODExZTU4NzZjODEyNjc4NzI4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1N0ZFVub3JkZXJlZE1hcC5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTggWXVzdWtlIFN1enVraSA8dXRhdGFuZS50ZWFAZ21haWwuY29tPi4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDx1bm9yZGVyZWRfbWFwPgorI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CisKK25h
bWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTx0eXBlbmFtZSBLZXksIHR5cGVuYW1lIFZhbHVlLCB0
eXBlbmFtZSBIYXNoID0gc3RkOjpoYXNoPEtleT4sIHR5cGVuYW1lIFByZWRpY2F0ZSA9IHN0ZDo6
ZXF1YWxfdG88S2V5PiwgdHlwZW5hbWUgQWxsb2NhdG9yID0gRmFzdEFsbG9jYXRvcjxzdGQ6OnBh
aXI8Y29uc3QgS2V5LCBWYWx1ZT4+PgordXNpbmcgU3RkVW5vcmRlcmVkTWFwID0gc3RkOjp1bm9y
ZGVyZWRfbWFwPEtleSwgVmFsdWUsIEhhc2gsIFByZWRpY2F0ZSwgQWxsb2NhdG9yPjsKKworfSAv
LyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6U3RkVW5vcmRlcmVkTWFwOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvU3RkVW5vcmRlcmVkU2V0LmggYi9Tb3VyY2UvV1RGL3d0Zi9TdGRV
bm9yZGVyZWRTZXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMmM4NTk4MmJmYjExYzJmMTQyZjc1YzExMTEyMzQ2
OWQ4ZTBhNDBiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvU3RkVW5vcmRlcmVk
U2V0LmgKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBZdXN1a2Ug
U3V6dWtpIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHVub3JkZXJlZF9z
ZXQ+CisjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK3Rl
bXBsYXRlPHR5cGVuYW1lIEtleSwgdHlwZW5hbWUgSGFzaCA9IHN0ZDo6aGFzaDxLZXk+LCB0eXBl
bmFtZSBQcmVkaWNhdGUgPSBzdGQ6OmVxdWFsX3RvPEtleT4sIHR5cGVuYW1lIEFsbG9jYXRvciA9
IEZhc3RBbGxvY2F0b3I8S2V5Pj4KK3VzaW5nIFN0ZFVub3JkZXJlZFNldCA9IHN0ZDo6dW5vcmRl
cmVkX3NldDxLZXksIEhhc2gsIFByZWRpY2F0ZSwgQWxsb2NhdG9yPjsKKworfSAvLyBuYW1lc3Bh
Y2UgV1RGCisKK3VzaW5nIFdURjo6U3RkVW5vcmRlcmVkU2V0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvY29jb2EvV29ya1F1ZXVlQ29jb2EuY3BwIGIvU291cmNlL1dURi93dGYvY29jb2Ev
V29ya1F1ZXVlQ29jb2EuY3BwCmluZGV4IGYxNTg5ZjZlZjFkN2E1MmRjZTg1MzBjNDkzMDA2NDU5
Yzk3MDU5MjcuLjUyMWExZDgxNmZiNmI3NDhlY2FkOTRiYzIwMmMxY2Q1MGNlZjY0MjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2NvY29hL1dvcmtRdWV1ZUNvY29hLmNwcAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9jb2NvYS9Xb3JrUXVldWVDb2NvYS5jcHAKQEAgLTgyLDE2ICs4Miw4IEBAIHN0
YXRpYyBkaXNwYXRjaF9xdWV1ZV90IHRhcmdldFF1ZXVlRm9yUU9TQ2xhc3MoV29ya1F1ZXVlOjpR
T1MgcW9zKQogdm9pZCBXb3JrUXVldWU6OnBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBjaGFyKiBu
YW1lLCBUeXBlIHR5cGUsIFFPUyBxb3MpCiB7CiAgICAgZGlzcGF0Y2hfcXVldWVfYXR0cl90IGF0
dHIgPSB0eXBlID09IFR5cGU6OkNvbmN1cnJlbnQgPyBESVNQQVRDSF9RVUVVRV9DT05DVVJSRU5U
IDogRElTUEFUQ0hfUVVFVUVfU0VSSUFMOwotI2lmIEhBVkUoUU9TX0NMQVNTRVMpCiAgICAgYXR0
ciA9IGRpc3BhdGNoX3F1ZXVlX2F0dHJfbWFrZV93aXRoX3Fvc19jbGFzcyhhdHRyLCBkaXNwYXRj
aFFPU0NsYXNzKHFvcyksIDApOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0ocW9zKTsKLSNlbmRp
ZgogICAgIG1fZGlzcGF0Y2hRdWV1ZSA9IGRpc3BhdGNoX3F1ZXVlX2NyZWF0ZShuYW1lLCBhdHRy
KTsKLSNpZiAhSEFWRShRT1NfQ0xBU1NFUykKLSAgICBpZiAocW9zICE9IFdvcmtRdWV1ZTo6UU9T
OjpEZWZhdWx0KQotICAgICAgICBkaXNwYXRjaF9zZXRfdGFyZ2V0X3F1ZXVlKG1fZGlzcGF0Y2hR
dWV1ZSwgdGFyZ2V0UXVldWVGb3JRT1NDbGFzcyhxb3MpKTsKLSNlbmRpZgogICAgIGRpc3BhdGNo
X3NldF9jb250ZXh0KG1fZGlzcGF0Y2hRdWV1ZSwgdGhpcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcgYi9Tb3VyY2UvV2ViQ29y
ZS9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCmluZGV4IGRlZjJmNmQ3NTIzNzEyOGRiMjll
NDRlOGNlMmRhZTg3NjY5NzFiYzkuLmIxYWRhYWQzNTdhZWM3ZjVmYjdmMWNkMmFiYzkwNTY3YmM5
MzMzMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNj
b25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvQmFzZS54Y2NvbmZpZwpA
QCAtMTI3LDYgKzEyNyw5IEBAIFdLX05PVF9ZRVMgPSBOTzsKIAogV0tfVVNFX0FMVEVSTkFURV9G
UkFNRVdPUktTX0RJUiA9ICQoV0tfTk9UXyQoV0tfRU1QVFlfJChXS19BTFRFUk5BVEVfRlJBTUVX
T1JLU19ESVIpKSk7CiAKK1dLX0FMVEVSTkFURV9XRUJLSVRfU0RLX1BBVEggPSAkKFdLX0FMVEVS
TkFURV9XRUJLSVRfU0RLX1BBVEhfJChXS19VU0VfQUxURVJOQVRFX0ZSQU1FV09SS1NfRElSKSk7
CitXS19BTFRFUk5BVEVfV0VCS0lUX1NES19QQVRIX1lFUyA9ICQoV0tfQUxURVJOQVRFX0ZSQU1F
V09SS1NfRElSKS87CisKIFdLX1BMQVRGT1JNX05BTUUgPSAkKFdLX1BMQVRGT1JNX05BTUVfVVNF
X0FMVEVSTkFURV9GUkFNRVdPUktTX0RJUl8kKFdLX1VTRV9BTFRFUk5BVEVfRlJBTUVXT1JLU19E
SVIpKTsKIFdLX1BMQVRGT1JNX05BTUVfVVNFX0FMVEVSTkFURV9GUkFNRVdPUktTX0RJUl9ZRVMg
PSBpcGhvbmVtaW5pbWFsc2ltdWxhdG9yOwogV0tfUExBVEZPUk1fTkFNRV9VU0VfQUxURVJOQVRF
X0ZSQU1FV09SS1NfRElSX05PID0gJChQTEFURk9STV9OQU1FKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNl
L1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggOTcy
NWIwNDJlOTRiNjNjY2JlMzgwM2M1MzJkMmNhMjk4MmI2MmY0Yi4uNDM2YmI5MjMzZWYxMTAzOTc0
MTJkNGFjNjM1ZDFmNjk5MjA4MDgxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTEwMSw3ICsxMDEsNiBAQCBF
TkFCTEVfREFUQUxJU1RfRUxFTUVOVCA9IDsKIAogRU5BQkxFX0RBVEFfSU5URVJBQ1RJT04gPSAk
KEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX0RB
VEFfSU5URVJBQ1RJT05faXBob25lb3MgPSBFTkFCTEVfREFUQV9JTlRFUkFDVElPTjsKLUVOQUJM
RV9EQVRBX0lOVEVSQUNUSU9OX2lwaG9uZW1pbmltYWxzaW11bGF0b3IgPSBFTkFCTEVfREFUQV9J
TlRFUkFDVElPTjsKIEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OX2lwaG9uZXNpbXVsYXRvciA9IEVO
QUJMRV9EQVRBX0lOVEVSQUNUSU9OOwogCiBFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OID0gJChF
TkFCTEVfREVWSUNFX09SSUVOVEFUSU9OXyQoV0tfUExBVEZPUk1fTkFNRSkpOwpAQCAtMTE0LDcg
KzExMyw2IEBAIEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT05fYXBwbGV0dnNpbXVsYXRvciA9IEVO
QUJMRV9ERVZJQ0VfT1JJRU5UQVRJT047CiAKIEVOQUJMRV9EUkFHX1NVUFBPUlQgPSAkKEVOQUJM
RV9EUkFHX1NVUFBPUlRfJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfRFJBR19TVVBQT1JU
X2lwaG9uZW9zID0gRU5BQkxFX0RSQUdfU1VQUE9SVDsKLUVOQUJMRV9EUkFHX1NVUFBPUlRfaXBo
b25lbWluaW1hbHNpbXVsYXRvciA9IEVOQUJMRV9EUkFHX1NVUFBPUlQ7CiBFTkFCTEVfRFJBR19T
VVBQT1JUX2lwaG9uZXNpbXVsYXRvciA9IEVOQUJMRV9EUkFHX1NVUFBPUlQ7CiAKIEVOQUJMRV9F
TkNSWVBURURfTUVESUEgPSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUFfJChXS19QTEFURk9STV9O
QU1FKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9WZXJzaW9u
LnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZp
ZwppbmRleCA2ZTliZTA1ZWMwMDU1MTc3Mzg1ZDY0NDkyOGVkYmJhNDAzYmMxM2ZhLi4xN2YxOTFk
OTNlZjkwMzkxMWFhZjM3MGRlNzMwODY4ZWE5ZmMyMGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Db25maWd1cmF0aW9ucy9WZXJzaW9uLnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NvbmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWcKQEAgLTIzLDcgKzIzLDcgQEAKIAogTUFK
T1JfVkVSU0lPTiA9IDYwNjsKIE1JTk9SX1ZFUlNJT04gPSAxOwotVElOWV9WRVJTSU9OID0gMTA7
CitUSU5ZX1ZFUlNJT04gPSAxMTsKIE1JQ1JPX1ZFUlNJT04gPSAwOwogTkFOT19WRVJTSU9OID0g
MDsKIEZVTExfVkVSU0lPTiA9ICQoTUFKT1JfVkVSU0lPTikuJChNSU5PUl9WRVJTSU9OKS4kKFRJ
TllfVkVSU0lPTik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9X
ZWJDb3JlLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZS54
Y2NvbmZpZwppbmRleCBlYTlkMGYxMjQxMTI3MmYxZTg1Yzg3OWFmZDEwODg2NTcyZTA1OTAzLi5m
ZTJmNjFhNjBiN2FiMDBkZTI3Njg2YTRhYWFkYjBiM2IzMjU3MDE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlLnhjY29uZmlnCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dlYkNvcmUueGNjb25maWcKQEAgLTQ2LDI4ICs0NiwyMyBA
QCBPVEhFUl9DRkxBR1MgPSAkKGluaGVyaXRlZCkgJChBRERJVElPTkFMX0NGTEFHUyk7CiBPVEhF
Ul9DUExVU1BMVVNGTEFHUyA9ICQoaW5oZXJpdGVkKSAkKEFERElUSU9OQUxfQ0ZMQUdTKTsKIAog
V0VCS0lUQURESVRJT05TX0hFQURFUl9TRUFSQ0hfUEFUSFMgPSAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvdXNyL2xvY2FsL2luY2x1ZGUvV2ViS2l0QWRkaXRpb25zICQoU0RLUk9PVCkvdXNyL2xvY2Fs
L2luY2x1ZGUvV2ViS2l0QWRkaXRpb25zOwotTElCV0VCUlRDX0hFQURFUl9TRUFSQ0hfUEFUSFMg
PSAkKEJVSUxUX1BST0RVQ1RTX0RJUikvdXNyL2xvY2FsL2luY2x1ZGUvd2VicnRjICQoU0RLUk9P
VCkvdXNyL2xvY2FsL2luY2x1ZGUvd2VicnRjOworTElCV0VCUlRDX0hFQURFUl9TRUFSQ0hfUEFU
SFMgPSAkKEJVSUxUX1BST0RVQ1RTX0RJUikvdXNyL2xvY2FsL2luY2x1ZGUvd2VicnRjICQoU0RL
Uk9PVCkvdXNyL2xvY2FsL2luY2x1ZGUvd2VicnRjICQoQlVJTFRfUFJPRFVDVFNfRElSKS91c3Iv
bG9jYWwvaW5jbHVkZS93ZWJydGMvc2RrL29iamMvRnJhbWV3b3JrL0hlYWRlcnMgJChTREtST09U
KS91c3IvbG9jYWwvaW5jbHVkZS93ZWJydGMvc2RrL29iamMvRnJhbWV3b3JrL0hlYWRlcnM7CiAK
LUhFQURFUl9TRUFSQ0hfUEFUSFMgPSBQQUwgRm9yd2FyZGluZ0hlYWRlcnMgL3Vzci9pbmNsdWRl
L2xpYnhzbHQgL3Vzci9pbmNsdWRlL2xpYnhtbDIgIiQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlIiAiJChCVUlMVF9QUk9EVUNUU19ESVIpL3Vzci9sb2NhbC9pbmNs
dWRlIiAkKFdFQktJVEFERElUSU9OU19IRUFERVJfU0VBUkNIX1BBVEhTKSAkKExJQldFQlJUQ19I
RUFERVJfU0VBUkNIX1BBVEhTKSAkKEhFQURFUl9TRUFSQ0hfUEFUSFMpICQoU1JDUk9PVCk7CitI
RUFERVJfU0VBUkNIX1BBVEhTID0gUEFMIEZvcndhcmRpbmdIZWFkZXJzIC91c3IvaW5jbHVkZS9s
aWJ4c2x0IC91c3IvaW5jbHVkZS9saWJ4bWwyICIkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZSIgIiQoQlVJTFRfUFJPRFVDVFNfRElSKSQoV0tfQUxURVJOQVRFX1dF
QktJVF9TREtfUEFUSCkvdXNyL2xvY2FsL2luY2x1ZGUiICQoV0VCS0lUQURESVRJT05TX0hFQURF
Ul9TRUFSQ0hfUEFUSFMpICQoTElCV0VCUlRDX0hFQURFUl9TRUFSQ0hfUEFUSFMpICQoSEVBREVS
X1NFQVJDSF9QQVRIUykgJChTUkNST09UKTsKIElORk9QTElTVF9GSUxFID0gSW5mby5wbGlzdDsK
IElOU1RBTExfUEFUSCA9ICQoU1lTVEVNX0xJQlJBUllfRElSKS9Qcml2YXRlRnJhbWV3b3JrczsK
IElOU1RBTExfUEFUSFtzZGs9bWFjb3N4Kl0gPSAkKFdFQkNPUkVfRlJBTUVXT1JLU19ESVIpOwog
RFlMSUJfSU5TVEFMTF9OQU1FX0JBU0UgPSAkKERZTElCX0lOU1RBTExfTkFNRV9CQVNFX1BMQVRG
T1JNKTsKIERZTElCX0lOU1RBTExfTkFNRV9CQVNFX1BMQVRGT1JNW3Nkaz1pcGhvbmUqXSA9ICQo
U1lTVEVNX0xJQlJBUllfRElSKS9Qcml2YXRlRnJhbWV3b3JrczsKLURZTElCX0lOU1RBTExfTkFN
RV9CQVNFX1BMQVRGT1JNW3Nkaz1tYWNvc3gqXSA9ICQoTk9STUFMX1dFQkNPUkVfRlJBTUVXT1JL
U19ESVIpOworRFlMSUJfSU5TVEFMTF9OQU1FX0JBU0VfUExBVEZPUk1bc2RrPW1hY29zeCpdID0g
JChEWUxJQl9JTlNUQUxMX05BTUVfQkFTRV9QTEFURk9STV8kKFdLX1VTRV9BTFRFUk5BVEVfRlJB
TUVXT1JLU19ESVIpKTsKK0RZTElCX0lOU1RBTExfTkFNRV9CQVNFX1BMQVRGT1JNX05PID0gJChO
T1JNQUxfV0VCQ09SRV9GUkFNRVdPUktTX0RJUik7CitEWUxJQl9JTlNUQUxMX05BTUVfQkFTRV9Q
TEFURk9STV9ZRVMgPSAkKERZTElCX0lOU1RBTExfTkFNRV9CQVNFKTsKIElOU1RBTExIRFJTX0NP
UFlfUEhBU0UgPSBZRVM7CiBJTlNUQUxMSERSU19TQ1JJUFRfUEhBU0UgPSBZRVM7CiBQUk9EVUNU
X05BTUUgPSBXZWJDb3JlOwogUFJPRFVDVF9CVU5ETEVfSURFTlRJRklFUiA9IGNvbS5hcHBsZS4k
KFBST0RVQ1RfTkFNRTpyZmMxMDM0aWRlbnRpZmllcik7CiBVTkVYUE9SVEVEX1NZTUJPTFNfRklM
RSA9IENvbmZpZ3VyYXRpb25zL1dlYkNvcmUudW5leHA7CiAKLVdLX1BSRUZJWEVEX0lQSE9ORU9T
X0RFUExPWU1FTlRfVEFSR0VUID0gViQoSVBIT05FT1NfREVQTE9ZTUVOVF9UQVJHRVQpOwotCi1X
S19JT1NfQklOQ09NUEFUX0xERkxBR1MgPSAkKFdLX0lPU19CSU5DT01QQVRfTERGTEFHU18kKFdL
X1BSRUZJWEVEX0lQSE9ORU9TX0RFUExPWU1FTlRfVEFSR0VUOmlkZW50aWZpZXIpKTsKLVdLX0lP
U19CSU5DT01QQVRfTERGTEFHU19WOV8wID0gLVdsLC1yZWV4cG9ydF9saWJyYXJ5LCQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL1Bob255V2ViS2l0TGVnYWN5L1dl
YktpdExlZ2FjeS5mcmFtZXdvcmsvV2ViS2l0TGVnYWN5LnRiZDsKLVdLX0lPU19CSU5DT01QQVRf
TERGTEFHU19WOV8zID0gJChXS19JT1NfQklOQ09NUEFUX0xERkxBR1NfVjlfMCk7Ci1XS19JT1Nf
QklOQ09NUEFUX0xERkxBR1NfVjEwXzAgPSAkKFdLX0lPU19CSU5DT01QQVRfTERGTEFHU19WOV8z
KTsKLQogV0tfTElCV0VCUlRDX0xJQlJBUllfRElSID0gJChXRUJDT1JFX0ZSQU1FV09SS1NfRElS
KS9XZWJDb3JlLmZyYW1ld29yay9GcmFtZXdvcmtzCiBXS19MSUJXRUJSVENfTElCUkFSWV9ESVJb
c2RrPW1hY29zeCpdID0gJChXS19MSUJXRUJSVENfTElCUkFSWV9ESVJfVVNFX09WRVJSSURFX0ZS
QU1FV09SS1NfRElSXyQoV0tfVVNFX09WRVJSSURFX0ZSQU1FV09SS1NfRElSKSk7CiBXS19MSUJX
RUJSVENfTElCUkFSWV9ESVJfVVNFX09WRVJSSURFX0ZSQU1FV09SS1NfRElSX05PID0gJChXRUJD
T1JFX0ZSQU1FV09SS1NfRElSKS9XZWJDb3JlLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29y
a3M7CkBAIC0xMjMsNyArMTE4LDcgQEAgV0tfU1lTVEVNX0NPTkZJR1VSQVRJT05fTERGTEFHU19t
YWNvc3ggPSAtZnJhbWV3b3JrIFN5c3RlbUNvbmZpZ3VyYXRpb247CiAvLyBGSVhNRTogUmVkdWNl
IHRoZSBudW1iZXIgb2YgYWxsb3dhYmxlX2NsaWVudHMgPHJkYXI6Ly9wcm9ibGVtLzMxODIzOTY5
PgogT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAkKFdLX1JFTE9DQVRBQkxFX0ZSQU1FV09S
S19MREZMQUdTKSAkKFdLX1VOREVGSU5FRF9TWU1CT0xTX0xERkxBR1MpIC1sc3FsaXRlMyAtbG9i
amMgLWxBTkdMRSAtYWxsb3dhYmxlX2NsaWVudCBXZWJDb3JlVGVzdFN1cHBvcnQgLWFsbG93YWJs
ZV9jbGllbnQgV2ViS2l0TGVnYWN5IC1mb3JjZV9sb2FkICQoQlVJTFRfUFJPRFVDVFNfRElSKS9s
aWJQQUwuYSAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3
b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlv
biAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBNZXRhbCAkKE9USEVSX0xERkxBR1NfUExB
VEZPUk1fJChXS19DT0NPQV9UT1VDSCkpICQoT1RIRVJfTERGTEFHU19QTEFURk9STV8kKFdLX1BM
QVRGT1JNX05BTUUpKSAkKFdLX0FQUEtJVF9MREZMQUdTKSAkKFdLX0FVRElPX1VOSVRfTERGTEFH
UykgJChXS19DQVJCT05fTERGTEFHUykgICQoV0tfREFUQV9ERVRFQ1RPUlNfQ09SRV9MREZMQUdT
KSAkKFdLX0RFVklDRV9JREVOVElUWV9MREZMQUdTKSAkKFdLX0dSQVBISUNTX1NFUlZJQ0VTX0xE
RkxBR1MpICQoV0tfSU9TVVJGQUNFX0xERkxBR1MpICQoV0tfTElCV0VCUlRDX0xERkxBR1MpICQo
V0tfTU9CSUxFX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19NT0JJTEVfR0VTVEFMVF9MREZM
QUdTKSAkKFdLX09QRU5HTF9MREZMQUdTKSAkKFdLX1NZU1RFTV9DT05GSUdVUkFUSU9OX0xERkxB
R1MpOwogCi1PVEhFUl9MREZMQUdTX1BMQVRGT1JNX2NvY29hdG91Y2ggPSAkKFdLX0lPU19CSU5D
T01QQVRfTERGTEFHUykgLWFsbG93YWJsZV9jbGllbnQgV2ViS2l0IC1hbGxvd2FibGVfY2xpZW50
IGlUdW5lc1UgLWFsbG93YWJsZV9jbGllbnQgQ2FzYWJsYW5jYSAtYWxsb3dhYmxlX2NsaWVudCBS
ZW1vdGUgLWFsbG93YWJsZV9jbGllbnQgVFZCb29rcyAtYWxsb3dhYmxlX2NsaWVudCBEdW1wUmVu
ZGVyVHJlZSAtYWxsb3dhYmxlX2NsaWVudCBXZWJLaXRUZXN0UnVubmVyIC1hbGxvd2FibGVfY2xp
ZW50IFRlc3RXZWJLaXRBUEk7CitPVEhFUl9MREZMQUdTX1BMQVRGT1JNX2NvY29hdG91Y2ggPSAt
YWxsb3dhYmxlX2NsaWVudCBXZWJLaXQgLWFsbG93YWJsZV9jbGllbnQgaVR1bmVzVSAtYWxsb3dh
YmxlX2NsaWVudCBDYXNhYmxhbmNhIC1hbGxvd2FibGVfY2xpZW50IFJlbW90ZSAtYWxsb3dhYmxl
X2NsaWVudCBUVkJvb2tzIC1hbGxvd2FibGVfY2xpZW50IER1bXBSZW5kZXJUcmVlIC1hbGxvd2Fi
bGVfY2xpZW50IFdlYktpdFRlc3RSdW5uZXIgLWFsbG93YWJsZV9jbGllbnQgVGVzdFdlYktpdEFQ
STsKIE9USEVSX0xERkxBR1NfUExBVEZPUk1fbWFjb3N4ID0gLXN1Yl9saWJyYXJ5IGxpYm9iamMg
LXVtYnJlbGxhIFdlYktpdDsKIAogV0tfVU5ERUZJTkVEX1NZTUJPTFNfTERGTEFHU1tzZGs9bWFj
b3N4Kl0gPSAkKFdLX1VOREVGSU5FRF9TWU1CT0xTX0xERkxBR1MkKFdLX01BQ09TXzEwMTMpKTsK
QEAgLTE1NCw3ICsxNDksNyBAQCBKQVZBU0NSSVBUQ09SRV9QUklWQVRFX0hFQURFUlNfRElSX1Jl
bGVhc2UgPSAkKEpBVkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVBREVSU19lbgogSkFWQVNDUklQVENP
UkVfUFJJVkFURV9IRUFERVJTX0RJUl9EZWJ1ZyA9ICQoSkFWQVNDUklQVENPUkVfUFJJVkFURV9I
RUFERVJTX2VuZ2luZWVyaW5nKTsKIEpBVkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVBREVSU19ESVJf
UHJvZHVjdGlvbltzZGs9aXBob25lKl0gPSAkKFNES1JPT1QpLyQoU1lTVEVNX0xJQlJBUllfRElS
KS9GcmFtZXdvcmtzL0phdmFTY3JpcHRDb3JlLmZyYW1ld29yay9Qcml2YXRlSGVhZGVyczsKIEpB
VkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVBREVSU19ESVJfUHJvZHVjdGlvbltzZGs9bWFjb3N4Kl0g
PSAkKFNES1JPT1QpJChQUk9EVUNUSU9OX0ZSQU1FV09SS1NfRElSKS9KYXZhU2NyaXB0Q29yZS5m
cmFtZXdvcmsvUHJpdmF0ZUhlYWRlcnM7Ci1KQVZBU0NSSVBUQ09SRV9QUklWQVRFX0hFQURFUlNf
ZW5naW5lZXJpbmcgPSAkKEJVSUxUX1BST0RVQ1RTX0RJUikvSmF2YVNjcmlwdENvcmUuZnJhbWV3
b3JrL1ByaXZhdGVIZWFkZXJzOworSkFWQVNDUklQVENPUkVfUFJJVkFURV9IRUFERVJTX2VuZ2lu
ZWVyaW5nID0gJChCVUlMVF9QUk9EVUNUU19ESVIpJChXS19BTFRFUk5BVEVfV0VCS0lUX1NES19Q
QVRIKS9KYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsvUHJpdmF0ZUhlYWRlcnM7CiAKIEVYQ0xVREVE
X1NPVVJDRV9GSUxFX05BTUVTW3Nkaz1pcGhvbmUqXSA9ICoudGlmZiAqQ3Vyc29yLnBuZyBucGFw
aS5oIG5wZnVuY3Rpb25zLmggbnBydW50aW1lLmggbnBydW50aW1lX2ludGVybmFsLmg7CiAKQEAg
LTE2NSw3ICsxNjAsMTAgQEAgV0tfTk9UX1lFUyA9IE5POwogV0tfVVNFX09WRVJSSURFX0ZSQU1F
V09SS1NfRElSID0gJChXS19OT1RfJChXS19FTVBUWV8kKFdLX09WRVJSSURFX0ZSQU1FV09SS1Nf
RElSKSkpOwogCiBXS19PVkVSUklERV9GUkFNRVdPUktTX0RJUiA9ICQoV0tfT1ZFUlJJREVfRlJB
TUVXT1JLU19ESVJfVVNFX1NUQUdJTkdfSU5TVEFMTF9QQVRIXyQoVVNFX1NUQUdJTkdfSU5TVEFM
TF9QQVRIKSk7CitXS19PVkVSUklERV9GUkFNRVdPUktTX0RJUl9VU0VfU1RBR0lOR19JTlNUQUxM
X1BBVEhfID0gJChXS19PVkVSUklERV9GUkFNRVdPUktTX0RJUl9VU0VfU1RBR0lOR19JTlNUQUxM
X1BBVEhfTk8pOworV0tfT1ZFUlJJREVfRlJBTUVXT1JLU19ESVJfVVNFX1NUQUdJTkdfSU5TVEFM
TF9QQVRIX05PID0gJChXS19PVkVSUklERV9GUkFNRVdPUktTX0RJUl9VU0VfQUxURVJOQVRFX0ZS
QU1FV09SS1NfRElSXyQoV0tfVVNFX0FMVEVSTkFURV9GUkFNRVdPUktTX0RJUikpOwogV0tfT1ZF
UlJJREVfRlJBTUVXT1JLU19ESVJfVVNFX1NUQUdJTkdfSU5TVEFMTF9QQVRIX1lFUyA9ICQoU1lT
VEVNX0xJQlJBUllfRElSKS9TdGFnZWRGcmFtZXdvcmtzL1NhZmFyaTsKK1dLX09WRVJSSURFX0ZS
QU1FV09SS1NfRElSX1VTRV9BTFRFUk5BVEVfRlJBTUVXT1JLU19ESVJfWUVTID0gJChXS19BTFRF
Uk5BVEVfRlJBTUVXT1JLU19ESVIpL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3M7CiAKIFdLX1FV
T1RFRF9PVkVSUklERV9GUkFNRVdPUktTX0RJUiA9ICQoV0tfUVVPVEVEX09WRVJSSURFX0ZSQU1F
V09SS1NfRElSXyQoV0tfVVNFX09WRVJSSURFX0ZSQU1FV09SS1NfRElSKSk7CiBXS19RVU9URURf
T1ZFUlJJREVfRlJBTUVXT1JLU19ESVJfWUVTID0gIiQoV0tfT1ZFUlJJREVfRlJBTUVXT1JLU19E
SVIpIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dlYkNvcmVU
ZXN0U3VwcG9ydC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL0NvbmZpZ3VyYXRpb25zL1dlYkNv
cmVUZXN0U3VwcG9ydC54Y2NvbmZpZwppbmRleCAyMGYzZTQ5ZjQ4Nzg4OGFjZGIzYjA3OWM5YTk4
NmUzNzUxZDdmODdhLi45ZDliNTFlZGFmYjRhODJiZGViZTdlOGFmYmQzMWNjYzdlNmZlNDI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Db25maWd1cmF0aW9ucy9XZWJDb3JlVGVzdFN1cHBv
cnQueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvV2ViQ29yZVRl
c3RTdXBwb3J0LnhjY29uZmlnCkBAIC0yNyw3ICsyNyw5IEBACiBQUklWQVRFX0hFQURFUlNfRk9M
REVSX1BBVEggPSAkKFBSSVZBVEVfSEVBREVSU19GT0xERVJfUEFUSF8kKENPTkZJR1VSQVRJT04p
KTsKIFBSSVZBVEVfSEVBREVSU19GT0xERVJfUEFUSF9EZWJ1ZyA9IFdlYkNvcmVUZXN0U3VwcG9y
dDsKIFBSSVZBVEVfSEVBREVSU19GT0xERVJfUEFUSF9SZWxlYXNlID0gJChQUklWQVRFX0hFQURF
UlNfRk9MREVSX1BBVEhfRGVidWcpOwotUFJJVkFURV9IRUFERVJTX0ZPTERFUl9QQVRIX1Byb2R1
Y3Rpb24gPSAvdXNyL2xvY2FsL2luY2x1ZGUvV2ViQ29yZVRlc3RTdXBwb3J0OworUFJJVkFURV9I
RUFERVJTX0ZPTERFUl9QQVRIX1Byb2R1Y3Rpb24gPSAkKFBSSVZBVEVfSEVBREVSU19GT0xERVJf
UEFUSF9Qcm9kdWN0aW9uXyQoV0tfVVNFX0FMVEVSTkFURV9GUkFNRVdPUktTX0RJUikpOworUFJJ
VkFURV9IRUFERVJTX0ZPTERFUl9QQVRIX1Byb2R1Y3Rpb25fTk8gPSAvdXNyL2xvY2FsL2luY2x1
ZGUvV2ViQ29yZVRlc3RTdXBwb3J0OworUFJJVkFURV9IRUFERVJTX0ZPTERFUl9QQVRIX1Byb2R1
Y3Rpb25fWUVTID0gJChXS19BTFRFUk5BVEVfRlJBTUVXT1JLU19ESVIpL3Vzci9sb2NhbC9pbmNs
dWRlL1dlYkNvcmVUZXN0U3VwcG9ydDsKIAogSU5TVEFMTF9QQVRIID0gJChJTlNUQUxMX1BBVEhf
V2ViQ29yZVRlc3RTdXBwb3J0XyQoQ09ORklHVVJBVElPTikpOwogLy8gVXNpbmcgW3Nkaz1tYWNv
c3gqXSB0byBvdmVycmlkZSB0aGUgc2V0dGluZyBpbiBXZWJDb3JlLnhjY29uZmlnLgpAQCAtNTUs
NiArNTcsNiBAQCBHQ0NfU1lNQk9MU19QUklWQVRFX0VYVEVSTiA9IFlFUzsKIE9USEVSX0xERkxB
R1MgPSAkKEFTQU5fT1RIRVJfTERGTEFHUyk7CiBPVEhFUl9MREZMQUdTW3Nkaz1tYWNvcypdID0g
JChBU0FOX09USEVSX0xERkxBR1MpIC1mcmFtZXdvcmsgQXBwS2l0ICQoTElCV0VCUlRDX0xERkxB
R1MpOwogCi1PVEhFUl9MREZMQUdTW3Nkaz1pcGhvbmVvcypdID0gJChBU0FOX09USEVSX0xERkxB
R1MpIC1sQWNjZXNzaWJpbGl0eSAtRiQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL1Bob255V2ViS2l0TGVnYWN5ICQoTElCV0VCUlRDX0xERkxBR1MpOwotT1RIRVJf
TERGTEFHU1tzZGs9aXBob25lc2ltdWxhdG9yKl0gPSAkKEFTQU5fT1RIRVJfTERGTEFHUykgLWxB
Y2Nlc3NpYmlsaXR5IC1GJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvUGhvbnlXZWJLaXRMZWdhY3kgJChMSUJXRUJSVENfTERGTEFHUyk7CitPVEhFUl9MREZMQUdT
W3Nkaz1pcGhvbmVvcypdID0gJChBU0FOX09USEVSX0xERkxBR1MpIC1sQWNjZXNzaWJpbGl0eSAk
KExJQldFQlJUQ19MREZMQUdTKTsKK09USEVSX0xERkxBR1Nbc2RrPWlwaG9uZXNpbXVsYXRvcipd
ID0gJChBU0FOX09USEVSX0xERkxBR1MpIC1sQWNjZXNzaWJpbGl0eSAkKExJQldFQlJUQ19MREZM
QUdTKTsKIFNFQ1RfT1JERVJfRkxBR1MgPSA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
b25maWd1cmF0aW9ucy9XZWJLaXRMZWdhY3lTdHViLmlPUy50YmQgYi9Tb3VyY2UvV2ViQ29yZS9D
b25maWd1cmF0aW9ucy9XZWJLaXRMZWdhY3lTdHViLmlPUy50YmQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDJiZDFkNDdiNDAzNmNjZDUwM2Y5ZDQ3Y2UxZmI0Mjg3NDljNWE5MzEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ29uZmlndXJhdGlvbnMvV2ViS2l0TGVnYWN5U3R1Yi5pT1MudGJkCisrKyAvZGV2L251bGwK
QEAgLTEsNyArMCwwIEBACi0tLS0KLWFyY2hzOiAgICAgICAgICAgWyBhcm12NywgYXJtdjdzLCBh
cm02NCwgaTM4NiwgeDg2XzY0IF0KLXBsYXRmb3JtOiAgICAgICAgVEJEX1BMQVRGT1JNCi1pbnN0
YWxsLW5hbWU6ICAgIC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9XZWJLaXRMZWdh
Y3kuZnJhbWV3b3JrL1dlYktpdExlZ2FjeQotY3VycmVudC12ZXJzaW9uOiA2MDMuMS4zCi1vYmpj
LWNvbnN0cmFpbnQ6IG5vbmUKLS4uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRW5nbGlz
aC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzIGIvU291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJv
ai9Mb2NhbGl6YWJsZS5zdHJpbmdzCmluZGV4IGE1YjgxN2IxMzVjY2RiNDljNmZkODgwM2M1MmY5
MGFjNGI0MGE1MDUuLjM2MWJjNTIxYjZmNGE4YjY4MmRmNzZiZDg5NzE0Nzk5ZDU0NWZjNTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0VuZ2xpc2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5n
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MK
QEAgLTQxLDcgKzQxLDcgQEAKICIlQCBTREgiID0gIiVAIFNESCI7CiAKIC8qIFZpc2libGUgbmFt
ZSBvZiBTZXJ2aWNlIFdvcmtlciBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0
aW9uIG5hbWUuICovCi0iJUAgU2VydmljZSBXb3JrZXIiID0gIiVAIFNlcnZpY2UgV29ya2VyIjsK
KyIlQCBTZXJ2aWNlIFdvcmtlciAoJUApIiA9ICIlQCBTZXJ2aWNlIFdvcmtlciAoJUApIjsKIAog
LyogdmlzaWJsZSBuYW1lIG9mIHRoZSBzdG9yYWdlIHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0
aGUgYXBwbGljYXRpb24gbmFtZS4gKi8KICIlQCBTdG9yYWdlIiA9ICIlQCBTdG9yYWdlIjsKQEAg
LTExNSw5ICsxMTUsNiBAQAogLyogTGFiZWwgdGV4dCB0byBiZSB1c2VkIHdoZW4gYW4gaW5zZWN1
cmUgcGx1Zy1pbiB2ZXJzaW9uIHdhcyBibG9ja2VkIGZyb20gbG9hZGluZyAqLwogIkJsb2NrZWQg
UGx1Zy1JbiAoSW5zZWN1cmUgcGx1Zy1pbikiID0gIkJsb2NrZWQgUGx1Zy1pbiI7CiAKLS8qIExh
YmVsIHRleHQgdG8gYmUgdXNlZCB3aGVuIGFuIGluc2VjdXJlIHBsdWctaW4gdmVyc2lvbiB3YXMg
YmxvY2tlZCBmcm9tIGxvYWRpbmcgKi8KLSJVbnN1cHBvcnRlZCBQbHVnLUluIiA9ICJVbnN1cHBv
cnRlZCBQbHVnLWluIjsKLQogLyogQm9sZCBjb250ZXh0IG1lbnUgaXRlbSAqLwogIkJvbGQiID0g
IkJvbGQiOwogCkBAIC0yMTUsNyArMjEyLDEwIEBACiAiQ3V0IChVbmRvIGFjdGlvbiBuYW1lKSIg
PSAiQ3V0IjsKIAogLyogRGF5IGxhYmVsIGluIGRhdGUgcGlja2VyICovCi0iRGF5IGxhYmVsIGlu
IGRhdGUgcGlja2VyIiA9ICJEYXkiOworIkRheSAoRGF0ZSBwaWNrZXIgZm9yIGV4dHJhIHpvb20g
bW9kZSkiID0gIkRheSI7CisKKy8qIEZ1bGxzY3JlZW4gRGVjZXB0aXZlIFdlYnNpdGUgV2Fybmlu
ZyBTaGVldCBUaXRsZSAqLworIkRlY2VwdGl2ZSBXZWJzaXRlIFdhcm5pbmciID0gIkRlY2VwdGl2
ZSBXZWJzaXRlIFdhcm5pbmciOwogCiAvKiBEZWZhdWx0IHdyaXRpbmcgZGlyZWN0aW9uIGNvbnRl
eHQgbWVudSBpdGVtICovCiAiRGVmYXVsdCIgPSAiRGVmYXVsdCI7CkBAIC0yMjksMTEgKzIyOSw4
IEBACiAvKiBVbmRvIGFjdGlvbiBuYW1lICovCiAiRGljdGF0aW9uIChVbmRvIGFjdGlvbiBuYW1l
KSIgPSAiRGljdGF0aW9uIjsKIAotLyogVGV4dCBvZiBidXR0b24gdGhhdCBleGl0cyBlbGVtZW50
IGZ1bGxzY3JlZW4uICovCi0iRG9uZSIgPSAiRG9uZSI7Ci0KIC8qIFRpdGxlIG9mIHRoZSBEb25l
IGJ1dHRvbiBmb3Igem9vbWVkIGZvcm0gY29udHJvbHMuICovCi0iRG9uZSAoZXh0cmEgem9vbWVk
IGZvcm0gY29udHJvbHMpIiA9ICJEb25lIjsKKyJEb25lIiA9ICJEb25lIjsKIAogLyogRG93bmxv
YWQgQXVkaW8gVG8gRGlzayBjb250ZXh0IG1lbnUgaXRlbSAqLwogIkRvd25sb2FkIEF1ZGlvIiA9
ICJEb3dubG9hZCBBdWRpbyI7CkBAIC0yNzQsNiArMjcxLDkgQEAKIC8qIFZpZGVvIEV4aXQgRnVs
bHNjcmVlbiBjb250ZXh0IG1lbnUgaXRlbSAqLwogIkV4aXQgRnVsbCBTY3JlZW4gKGNvbnRleHQg
bWVudSkiID0gIkV4aXQgRnVsbCBTY3JlZW4iOwogCisvKiBGdWxsc2NyZWVuIERlY2VwdGl2ZSBX
ZWJzaXRlIEV4aXQgQWN0aW9uICovCisiRXhpdCBGdWxsc2NyZWVuIiA9ICJFeGl0IEZ1bGxzY3Jl
ZW4iOworCiAvKiBtZW51IGl0ZW0gKi8KICJFeGl0IFBpY3R1cmUgaW4gUGljdHVyZSIgPSAiRXhp
dCBQaWN0dXJlIGluIFBpY3R1cmUiOwogCkBAIC00MTYsNyArNDE2LDcgQEAKICJNaXNzaW5nIFBs
dWctaW4iID0gIk1pc3NpbmcgUGx1Zy1pbiI7CiAKIC8qIE1vbnRoIGxhYmVsIGluIGRhdGUgcGlj
a2VyICovCi0iTW9udGggbGFiZWwgaW4gZGF0ZSBwaWNrZXIiID0gIk1vbnRoIjsKKyJNb250aCAo
RGF0ZSBwaWNrZXIgZm9yIGV4dHJhIHpvb20gbW9kZSkiID0gIk1vbnRoIjsKIAogLyogTWVkaWEg
TXV0ZSBjb250ZXh0IG1lbnUgaXRlbSAqLwogIk11dGUiID0gIk11dGUiOwpAQCAtNjI1LDkgKzYy
NSw2IEBACiAvKiBUaXRsZSBvZiB0aGUgbGFiZWwgdG8gc2hvdyBvbiBhIHNuYXBzaG90dGVkIHBs
dWctaW4gKi8KICJTbmFwc2hvdHRlZCBQbHVnLUluIiA9ICJTbmFwc2hvdHRlZCBQbHVnLUluIjsK
IAotLyogVGl0bGUgb2YgdGhlIGRpY3RhdGlvbiBidXR0b24gZm9yIHpvb21lZCBmb3JtIGNvbnRy
b2xzLiAqLwotIlNwZWFrIiA9ICJTcGVhayI7Ci0KIC8qIFNwZWVjaCBjb250ZXh0IHN1Yi1tZW51
IGl0ZW0gKi8KICJTcGVlY2giID0gIlNwZWVjaCI7CiAKQEAgLTY0Myw2ICs2NDAsOSBAQAogLyog
U3RhcnQgc3BlYWtpbmcgY29udGV4dCBtZW51IGl0ZW0gKi8KICJTdGFydCBTcGVha2luZyIgPSAi
U3RhcnQgU3BlYWtpbmciOwogCisvKiBGdWxsc2NyZWVuIERlY2VwdGl2ZSBXZWJzaXRlIFN0YXkg
QWN0aW9uICovCisiU3RheSBpbiBGdWxsc2NyZWVuIiA9ICJTdGF5IGluIEZ1bGxzY3JlZW4iOwor
CiAvKiBTdG9wIGNvbnRleHQgbWVudSBpdGVtICovCiAiU3RvcCIgPSAiU3RvcCI7CiAKQEAgLTY1
NSw2ICs2NTUsOSBAQAogLyogU3RvcCBzcGVha2luZyBjb250ZXh0IG1lbnUgaXRlbSAqLwogIlN0
b3AgU3BlYWtpbmciID0gIlN0b3AgU3BlYWtpbmciOwogCisvKiBMYWJlbCBmb3Igc3Ryb25nIHBh
c3N3b3JkLiAqLworIlN0cm9uZyBQYXNzd29yZCIgPSAiU3Ryb25nIFBhc3N3b3JkIjsKKwogLyog
U3R5bGVzIGNvbnRleHQgbWVudSBpdGVtICovCiAiU3R5bGVz4oCmIiA9ICJTdHlsZXPigKYiOwog
CkBAIC03MjQsNiArNzI3LDkgQEAKIC8qIHByb21wdCBzdHJpbmcgaW4gYXV0aGVudGljYXRpb24g
cGFuZWwgKi8KICJUaGUgdXNlciBuYW1lIG9yIHBhc3N3b3JkIHlvdSBlbnRlcmVkIGZvciB0aGlz
IGFyZWEgb24gJUAgd2FzIGluY29ycmVjdC4gTWFrZSBzdXJlIHlvdeKAmXJlIGVudGVyaW5nIHRo
ZW0gY29ycmVjdGx5LCBhbmQgdGhlbiB0cnkgYWdhaW4uIiA9ICJUaGUgdXNlciBuYW1lIG9yIHBh
c3N3b3JkIHlvdSBlbnRlcmVkIGZvciB0aGlzIGFyZWEgb24gJUAgd2FzIGluY29ycmVjdC4gTWFr
ZSBzdXJlIHlvdeKAmXJlIGVudGVyaW5nIHRoZW0gY29ycmVjdGx5LCBhbmQgdGhlbiB0cnkgYWdh
aW4uIjsKIAorLyogRnVsbHNjcmVlbiBEZWNlcHRpdmUgV2Vic2l0ZSBXYXJuaW5nIFNoZWV0IENv
bnRlbnQgVGV4dCAqLworIlRoZSB3ZWJzaXRlIFwiJUBcIiBtYXkgYmUgYSBkZWNlcHRpdmUgd2Vi
c2l0ZS4gV291bGQgeW91IGxpa2UgdG8gZXhpdCBmdWxsc2NyZWVuPyIgPSAiVGhlIHdlYnNpdGUg
XCIlQFwiIG1heSBiZSBhIGRlY2VwdGl2ZSB3ZWJzaXRlLiBXb3VsZCB5b3UgbGlrZSB0byBleGl0
IGZ1bGxzY3JlZW4/IjsKKwogLyogdGV4dCB0aGF0IGFwcGVhcnMgYXQgdGhlIHN0YXJ0IG9mIG5l
YXJseS1vYnNvbGV0ZSB3ZWIgcGFnZXMgaW4gdGhlIGZvcm0gb2YgYSAnc2VhcmNoYWJsZSBpbmRl
eCcgKi8KICJUaGlzIGlzIGEgc2VhcmNoYWJsZSBpbmRleC4gRW50ZXIgc2VhcmNoIGtleXdvcmRz
OiAiID0gIlRoaXMgaXMgYSBzZWFyY2hhYmxlIGluZGV4LiBFbnRlciBzZWFyY2gga2V5d29yZHM6
ICI7CiAKQEAgLTc3NSw2ICs3ODEsOSBAQAogLyogVW5kbyBhY3Rpb24gbmFtZSAqLwogIlVuc2Ny
aXB0IChVbmRvIGFjdGlvbiBuYW1lKSIgPSAiVW5zY3JpcHQiOwogCisvKiBMYWJlbCB0ZXh0IHRv
IGJlIHVzZWQgd2hlbiBhbiB1bnN1cHBvcnRlZCBwbHVnLWluIHdhcyBibG9ja2VkIGZyb20gbG9h
ZGluZyAqLworIlVuc3VwcG9ydGVkIFBsdWctSW4iID0gIlVuc3VwcG9ydGVkIFBsdWctaW4iOwor
CiAvKiBVbmRvIGFjdGlvbiBuYW1lICovCiAiVXNlIEFsbCBMaWdhdHVyZXMgKFVuZG8gYWN0aW9u
IG5hbWUpIiA9ICJVc2UgQWxsIExpZ2F0dXJlcyI7CiAKQEAgLTgyMywxMSArODMyLDggQEAKIC8q
IFdlYktpdEVycm9ySW50ZXJuYWwgZGVzY3JpcHRpb24gKi8KICJXZWJLaXQgZW5jb3VudGVyZWQg
YW4gaW50ZXJuYWwgZXJyb3IiID0gIldlYktpdCBlbmNvdW50ZXJlZCBhbiBpbnRlcm5hbCBlcnJv
ciI7CiAKLS8qIFRpdGxlIG9mIHRoZSB3cml0aW5nIGJ1dHRvbiBmb3Igem9vbWVkIGZvcm0gY29u
dHJvbHMuICovCi0iV3JpdGUiID0gIldyaXRlIjsKLQogLyogWWVhciBsYWJlbCBpbiBkYXRlIHBp
Y2tlciAqLwotIlllYXIgbGFiZWwgaW4gZGF0ZSBwaWNrZXIiID0gIlllYXIiOworIlllYXIgKERh
dGUgcGlja2VyIGZvciBleHRyYSB6b29tIG1vZGUpIiA9ICJZZWFyIjsKIAogLyogbWVzc2FnZSBp
biBhdXRoZW50aWNhdGlvbiBwYW5lbCAqLwogIllvdXIgbG9naW4gaW5mb3JtYXRpb24gd2lsbCBi
ZSBzZW50IHNlY3VyZWx5LiIgPSAiWW91ciBsb2dpbiBpbmZvcm1hdGlvbiB3aWxsIGJlIHNlbnQg
c2VjdXJlbHkuIjsKQEAgLTEyMDEsOSArMTIwNyw2IEBACiAvKiBMYWJlbCBmb3IgdGhlIHN0cm9u
ZyBjb25maXJtYXRpb24gcGFzc3dvcmQgYXV0byBmaWxsIGJ1dHRvbiBpbnNpZGUgYSB0ZXh0IGZp
ZWxkLiAqLwogInN0cm9uZyBjb25maXJtYXRpb24gcGFzc3dvcmQgYXV0byBmaWxsIiA9ICJzdHJv
bmcgY29uZmlybWF0aW9uIHBhc3N3b3JkIGF1dG8gZmlsbCI7CiAKLS8qIExhYmVsIGZvciBzdHJv
bmcgcGFzc3dvcmQuICovCi0iU3Ryb25nIFBhc3N3b3JkIiA9ICJTdHJvbmcgUGFzc3dvcmQiOwot
CiAvKiBMYWJlbCBmb3IgdGhlIHN0cm9uZyBwYXNzd29yZCBhdXRvIGZpbGwgYnV0dG9uIGluc2lk
ZSBhIHRleHQgZmllbGQuICovCiAic3Ryb25nIHBhc3N3b3JkIGF1dG8gZmlsbCIgPSAic3Ryb25n
IHBhc3N3b3JkIGF1dG8gZmlsbCI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvRE9NQ2FjaGVTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2Fj
aGUvRE9NQ2FjaGVTdG9yYWdlLmNwcAppbmRleCAzZjVmYjkzYjM5Yzk5MTM4OGUwMDRlNzQ5YjA0
ZDkyYTVlZjliZTUyLi4yN2U4ZjAyOTNjMDgzZjc0ODcyMWY1MmU1Y2RiNjY2ZWY5MWI3OGZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlU3RvcmFnZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZVN0b3JhZ2UuY3Bw
CkBAIC00OSw3ICs0OSw3IEBAIHN0ZDo6b3B0aW9uYWw8Q2xpZW50T3JpZ2luPiBET01DYWNoZVN0
b3JhZ2U6Om9yaWdpbigpIGNvbnN0CiAgICAgaWYgKCFvcmlnaW4pCiAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAKLSAgICByZXR1cm4gQ2xpZW50T3JpZ2luIHsgU2VjdXJpdHlPcmlnaW5E
YXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT50b3BPcmln
aW4oKSksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCpvcmlnaW4pIH07
CisgICAgcmV0dXJuIENsaWVudE9yaWdpbiB7IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dG9w
T3JpZ2luKCkuZGF0YSgpLCBvcmlnaW4tPmRhdGEoKSB9OwogfQogCiBzdGF0aWMgdm9pZCBkb1Nl
cXVlbnRpYWxNYXRjaChzaXplX3QgaW5kZXgsIFZlY3RvcjxSZWY8RE9NQ2FjaGU+PiYmIGNhY2hl
cywgRE9NQ2FjaGU6OlJlcXVlc3RJbmZvJiYgaW5mbywgQ2FjaGVRdWVyeU9wdGlvbnMmJiBvcHRp
b25zLCBET01DYWNoZTo6TWF0Y2hDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uY3BwCmluZGV4IGNiZjQzYjQy
ZmZiZjg3MDNjOGU4MzczNWIxYjc1ZDJhODQ4MzlmODAuLmEyYmQ0NGNjNjJiYWY5MmQxZGQwMTE5
OWNmY2FhMTFkMmYzYjZlZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvQ0RNLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL0NETS5jcHAKQEAgLTY1Miw3ICs2NTIsNyBAQCBTdHJpbmcgQ0RNOjpzdG9yYWdlRGly
ZWN0b3J5KCkgY29uc3QKICAgICBpZiAoc3RvcmFnZURpcmVjdG9yeS5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogCi0gICAgcmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhC
eUFwcGVuZGluZ0NvbXBvbmVudChzdG9yYWdlRGlyZWN0b3J5LCBTZWN1cml0eU9yaWdpbkRhdGE6
OmZyb21TZWN1cml0eU9yaWdpbihkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSkuZGF0YWJhc2VJ
ZGVudGlmaWVyKCkpOworICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21w
b25lbnQoc3RvcmFnZURpcmVjdG9yeSwgZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgp
LmRhdGFiYXNlSWRlbnRpZmllcigpKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwCmluZGV4IGQ1
YWNlZGFlMzYzNWI3ODcxZTdlMTRjMTIyOTA5M2FiMDg4ZWNmMjEuLjc3YzM3NzE5ODExODE5ZTIw
YzcwYmYxY2ZhY2NmNmE4NDJlMzIxNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAKQEAgLTY5Nyw3ICs2
OTcsNyBAQCBTdHJpbmcgTWVkaWFLZXlTZXNzaW9uOjptZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5
KCkgY29uc3QKICAgICBpZiAoc3RvcmFnZURpcmVjdG9yeS5pc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybiBlbXB0eVN0cmluZygpOwogCi0gICAgcmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVu
ZGluZ0NvbXBvbmVudChzdG9yYWdlRGlyZWN0b3J5LCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21T
ZWN1cml0eU9yaWdpbihkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSkuZGF0YWJhc2VJZGVudGlm
aWVyKCkpOworICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQo
c3RvcmFnZURpcmVjdG9yeSwgZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpLmRhdGFi
YXNlSWRlbnRpZmllcigpKTsKIH0KIAogYm9vbCBNZWRpYUtleVNlc3Npb246Omhhc1BlbmRpbmdB
Y3Rpdml0eSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL2xlZ2FjeS9XZWJLaXRNZWRpYUtleVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3kvV2ViS2l0TWVkaWFLZXlTZXNzaW9uLmNw
cAppbmRleCA3ZWZiNzlkNTUzZmNmODY4ODc2NTk3MzBkZDhkZGQ0NTIzYmQ1NDU1Li43M2YyZDI2
MmRkOGZkMTFkNWJlNmFiOGMyZmM5NjZmZDlkMWMwNTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeS9XZWJLaXRNZWRpYUtleVNlc3Npb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvbGVnYWN5L1dl
YktpdE1lZGlhS2V5U2Vzc2lvbi5jcHAKQEAgLTIzMSw3ICsyMzEsNyBAQCBTdHJpbmcgV2ViS2l0
TWVkaWFLZXlTZXNzaW9uOjptZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QKICAgICBp
ZiAoc3RvcmFnZURpcmVjdG9yeS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBlbXB0eVN0cmlu
ZygpOwogCi0gICAgcmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChz
dG9yYWdlRGlyZWN0b3J5LCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbihk
b2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSkuZGF0YWJhc2VJZGVudGlmaWVyKCkpOworICAgIHJl
dHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoc3RvcmFnZURpcmVjdG9y
eSwgZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpLmRhdGFiYXNlSWRlbnRpZmllcigp
KTsKIH0KIAogYm9vbCBXZWJLaXRNZWRpYUtleVNlc3Npb246Omhhc1BlbmRpbmdBY3Rpdml0eSgp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL2lv
cy9HZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9s
b2NhdGlvbi9pb3MvR2VvbG9jYXRpb25Qb3NpdGlvbklPUy5tbQppbmRleCBhNmIyZDJjYzAzNmE1
NzA2M2UwMjJlYjgxZDg2NzZjNTM4NDIzMWE5Li41NzI0ODA1YTc5YTIwYzNlMDIzMzQ5YzhmNmU5
ZjI3MGUyMzU3NTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0
aW9uL2lvcy9HZW9sb2NhdGlvblBvc2l0aW9uSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vaW9zL0dlb2xvY2F0aW9uUG9zaXRpb25JT1MubW0KQEAgLTQ2LDgg
KzQ2LDEwIEBAIEdlb2xvY2F0aW9uUG9zaXRpb246Okdlb2xvY2F0aW9uUG9zaXRpb24oQ0xMb2Nh
dGlvbiogbG9jYXRpb24pCiAgICAgICAgIHNwZWVkID0gbG9jYXRpb24uc3BlZWQ7CiAgICAgaWYg
KGxvY2F0aW9uLmNvdXJzZSA+PSAwLjApCiAgICAgICAgIGhlYWRpbmcgPSBsb2NhdGlvbi5jb3Vy
c2U7CisjaWYgIUVOQUJMRShNSU5JTUFMX1NJTVVMQVRPUikKICAgICBpZiAobG9jYXRpb24uZmxv
b3IpCiAgICAgICAgIGZsb29yTGV2ZWwgPSBsb2NhdGlvbi5mbG9vci5sZXZlbDsKKyNlbmRpZgog
fQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJG
YWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3Rvcnku
Y3BwCmluZGV4IDVhMmI2ZWNkYTlkNzM4NzI3NDE1MWQzYjA0ODNjM2VhZjhlNzc0ZmYuLmQ3ZTQ3
MjdjMDU4ZjA4ZDM0ODVjNTE0ZmJiNWY3YmY4NzczNGIwNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCkBAIC05MSw3ICs5MSw3IEBAIEV4
Y2VwdGlvbk9yPFJlZjxJREJPcGVuREJSZXF1ZXN0Pj4gSURCRmFjdG9yeTo6b3BlbkludGVybmFs
KFNjcmlwdEV4ZWN1dGlvbkNvbnRlCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTZWN1cml0
eUVycm9yLCBBU0NJSUxpdGVyYWwoIklEQkZhY3Rvcnkub3BlbigpIGNhbGxlZCBpbiBhbiBpbnZh
bGlkIHNlY3VyaXR5IGNvbnRleHQiKSB9OwogCiAgICAgQVNTRVJUKGNvbnRleHQuc2VjdXJpdHlP
cmlnaW4oKSk7Ci0gICAgSURCRGF0YWJhc2VJZGVudGlmaWVyIGRhdGFiYXNlSWRlbnRpZmllcihu
YW1lLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbigqY29udGV4dC5zZWN1
cml0eU9yaWdpbigpKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oY29u
dGV4dC50b3BPcmlnaW4oKSkpOworICAgIElEQkRhdGFiYXNlSWRlbnRpZmllciBkYXRhYmFzZUlk
ZW50aWZpZXIobmFtZSwgU2VjdXJpdHlPcmlnaW5EYXRhIHsgY29udGV4dC5zZWN1cml0eU9yaWdp
bigpLT5kYXRhKCkgfSwgU2VjdXJpdHlPcmlnaW5EYXRhIHsgY29udGV4dC50b3BPcmlnaW4oKS5k
YXRhKCkgfSk7CiAgICAgaWYgKCFkYXRhYmFzZUlkZW50aWZpZXIuaXNWYWxpZCgpKQogICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCBBU0NJSUxpdGVyYWwoIklEQkZhY3Rvcnku
b3BlbigpIGNhbGxlZCB3aXRoIGFuIGludmFsaWQgc2VjdXJpdHkgb3JpZ2luIikgfTsKIApAQCAt
MTExLDcgKzExMSw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxJREJPcGVuREJSZXF1ZXN0Pj4gSURCRmFj
dG9yeTo6ZGVsZXRlRGF0YWJhc2UoU2NyaXB0RXhlY3V0aW9uQ29uCiAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBTZWN1cml0eUVycm9yLCBBU0NJSUxpdGVyYWwoIklEQkZhY3RvcnkuZGVsZXRl
RGF0YWJhc2UoKSBjYWxsZWQgaW4gYW4gaW52YWxpZCBzZWN1cml0eSBjb250ZXh0IikgfTsKIAog
ICAgIEFTU0VSVChjb250ZXh0LnNlY3VyaXR5T3JpZ2luKCkpOwotICAgIElEQkRhdGFiYXNlSWRl
bnRpZmllciBkYXRhYmFzZUlkZW50aWZpZXIobmFtZSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9t
U2VjdXJpdHlPcmlnaW4oKmNvbnRleHQuc2VjdXJpdHlPcmlnaW4oKSksIFNlY3VyaXR5T3JpZ2lu
RGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKGNvbnRleHQudG9wT3JpZ2luKCkpKTsKKyAgICBJREJE
YXRhYmFzZUlkZW50aWZpZXIgZGF0YWJhc2VJZGVudGlmaWVyKG5hbWUsIFNlY3VyaXR5T3JpZ2lu
RGF0YSB7IGNvbnRleHQuc2VjdXJpdHlPcmlnaW4oKS0+ZGF0YSgpIH0sIFNlY3VyaXR5T3JpZ2lu
RGF0YSB7IGNvbnRleHQudG9wT3JpZ2luKCkuZGF0YSgpIH0pOwogICAgIGlmICghZGF0YWJhc2VJ
ZGVudGlmaWVyLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJv
ciwgQVNDSUlMaXRlcmFsKCJJREJGYWN0b3J5LmRlbGV0ZURhdGFiYXNlKCkgY2FsbGVkIHdpdGgg
YW4gaW52YWxpZCBzZWN1cml0eSBvcmlnaW4iKSB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmgKaW5kZXggMWE1NGFkN2MzY2Y3NmYzODFhNzgzMzVk
MDk3MTU4MWZjNGE0NjQzOS4uNjdmMzJlOTg4MGJmYWVkOWFkYWNlY2IzYzEwZjQ1NzVmODU3Y2M4
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0
YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuaApA
QCAtMjgsNyArMjgsNyBAQAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiAjaW5jbHVk
ZSAiSURCS2V5LmgiCi0jaW5jbHVkZSA8c2V0PgorI2luY2x1ZGUgPHd0Zi9TdGRTZXQuaD4KICNp
bmNsdWRlIDx3dGYvVmFyaWFudC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4K
IApAQCAtMzAyLDcgKzMwMiw3IEBAIHN0ZDo6b3B0aW9uYWw8SURCS2V5RGF0YT4gSURCS2V5RGF0
YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgcmV0dXJuIFdURk1vdmUoa2V5RGF0YSk7
CiB9CiAKLXVzaW5nIElEQktleURhdGFTZXQgPSBzdGQ6OnNldDxJREJLZXlEYXRhLCBzdGQ6Omxl
c3M8SURCS2V5RGF0YT4sIEZhc3RBbGxvY2F0b3I8SURCS2V5RGF0YT4+OwordXNpbmcgSURCS2V5
RGF0YVNldCA9IFN0ZFNldDxJREJLZXlEYXRhPjsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURC
Q29ubmVjdGlvblRvU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCmluZGV4IDllNWVlYTI5ZWE1YjdjYmZj
MWQyNWY4NDdkNDJhM2UyMTk4NTIwZjcuLjJiMGZkYzUyNGI0NWI2MDZmZDRiNTlkZmIyMTlhNDUz
MjExNjgyNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2Ns
aWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCkBAIC00MjksNyAr
NDI5LDcgQEAgdm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXMo
Y29uc3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU8KIAogICAgIG1fZ2V0QWxsRGF0YWJhc2VO
YW1lc0NhbGxiYWNrcy5hZGQoKytjYWxsYmFja0lELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAKLSAg
ICBtX2RlbGVnYXRlLT5nZXRBbGxEYXRhYmFzZU5hbWVzKFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJv
bVNlY3VyaXR5T3JpZ2luKG1haW5GcmFtZU9yaWdpbiksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJv
bVNlY3VyaXR5T3JpZ2luKG9wZW5pbmdPcmlnaW4pLCBjYWxsYmFja0lEKTsKKyAgICBtX2RlbGVn
YXRlLT5nZXRBbGxEYXRhYmFzZU5hbWVzKG1haW5GcmFtZU9yaWdpbi5kYXRhKCksIG9wZW5pbmdP
cmlnaW4uZGF0YSgpLCBjYWxsYmFja0lEKTsKIH0KIAogdm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2
ZXI6OmRpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgVmVj
dG9yPFN0cmluZz4mIGRhdGFiYXNlTmFtZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1NhbXBsZU1hcC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9TYW1wbGVNYXAuaAppbmRleCA4MWFjOTkxNTFhZGEzNzNlMWQzNDA1MDk1NWY4
NTg1ZGMzNDljZDYzLi4xNGU4NzJhOGYyYTRiMWVhYjMzNmQ5ZjEyMzZlM2U4MGQxYTFlNjFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NhbXBsZU1hcC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU2FtcGxlTWFwLmgKQEAg
LTI1LDkgKzI1LDkgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDxtYXA+CiAjaW5jbHVk
ZSA8d3RmL01lZGlhVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvU3RkTWFwLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzcsNyArMzcsNyBAQCBj
bGFzcyBTYW1wbGVNYXA7CiBjbGFzcyBQcmVzZW50YXRpb25PcmRlclNhbXBsZU1hcCB7CiAgICAg
ZnJpZW5kIGNsYXNzIFNhbXBsZU1hcDsKIHB1YmxpYzoKLSAgICB1c2luZyBNYXBUeXBlID0gc3Rk
OjptYXA8TWVkaWFUaW1lLCBSZWZQdHI8TWVkaWFTYW1wbGU+LCBzdGQ6Omxlc3M8TWVkaWFUaW1l
PiwgRmFzdEFsbG9jYXRvcjxzdGQ6OnBhaXI8Y29uc3QgTWVkaWFUaW1lLCBSZWZQdHI8TWVkaWFT
YW1wbGU+Pj4+OworICAgIHVzaW5nIE1hcFR5cGUgPSBTdGRNYXA8TWVkaWFUaW1lLCBSZWZQdHI8
TWVkaWFTYW1wbGU+PjsKICAgICB0eXBlZGVmIE1hcFR5cGU6Oml0ZXJhdG9yIGl0ZXJhdG9yOwog
ICAgIHR5cGVkZWYgTWFwVHlwZTo6Y29uc3RfaXRlcmF0b3IgY29uc3RfaXRlcmF0b3I7CiAgICAg
dHlwZWRlZiBNYXBUeXBlOjpyZXZlcnNlX2l0ZXJhdG9yIHJldmVyc2VfaXRlcmF0b3I7CkBAIC03
Miw3ICs3Miw3IEBAIGNsYXNzIERlY29kZU9yZGVyU2FtcGxlTWFwIHsKICAgICBmcmllbmQgY2xh
c3MgU2FtcGxlTWFwOwogcHVibGljOgogICAgIHR5cGVkZWYgc3RkOjpwYWlyPE1lZGlhVGltZSwg
TWVkaWFUaW1lPiBLZXlUeXBlOwotICAgIHVzaW5nIE1hcFR5cGUgPSBzdGQ6Om1hcDxLZXlUeXBl
LCBSZWZQdHI8TWVkaWFTYW1wbGU+LCBzdGQ6Omxlc3M8S2V5VHlwZT4sIEZhc3RBbGxvY2F0b3I8
c3RkOjpwYWlyPGNvbnN0IEtleVR5cGUsIFJlZlB0cjxNZWRpYVNhbXBsZT4+Pj47CisgICAgdXNp
bmcgTWFwVHlwZSA9IFN0ZE1hcDxLZXlUeXBlLCBSZWZQdHI8TWVkaWFTYW1wbGU+PjsKICAgICB0
eXBlZGVmIE1hcFR5cGU6Oml0ZXJhdG9yIGl0ZXJhdG9yOwogICAgIHR5cGVkZWYgTWFwVHlwZTo6
Y29uc3RfaXRlcmF0b3IgY29uc3RfaXRlcmF0b3I7CiAgICAgdHlwZWRlZiBNYXBUeXBlOjpyZXZl
cnNlX2l0ZXJhdG9yIHJldmVyc2VfaXRlcmF0b3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKaW5kZXggZGJiYWNmYmFkZWNhOTYy
Y2UwNDg1NzY2YTcyMDVmMDVkN2RmMGYxYy4uZTAzYTM4Mzg5MTBkYmE5N2FjMDI2ZDhjZDcyODNj
YjgxYjA2OTk3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9Tb3VyY2VCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyLmNwcApAQCAtNTUsNyArNTUsNiBAQAogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTTG9jay5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1ZNLmg+CiAjaW5jbHVk
ZSA8bGltaXRzPgotI2luY2x1ZGUgPG1hcD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Nib3IvQ0JPUlZhbHVlLmgKaW5kZXgg
ZThkYzQ5N2NkYzY3YWM1ZDlkZWEwNTIyODljMGZmZmU4NjFmZjQxMy4uNTgzNWQ3NDA5ZjE5NDdm
ZWFiZmI2YWM5NzI3N2M0NzRmNDdkYjI3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9jYm9yL0NCT1JWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vY2Jvci9DQk9SVmFsdWUuaApAQCAtMjksOSArMjksOSBAQAogCiAjcHJhZ21h
IG9uY2UKIAotI2luY2x1ZGUgPG1hcD4KICNpbmNsdWRlIDxzdGRpbnQuaD4KICNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvU3RkTWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC05NCw3ICs5
NCw3IEBAIHB1YmxpYzoKIAogICAgIHVzaW5nIEJpbmFyeVZhbHVlID0gVmVjdG9yPHVpbnQ4X3Q+
OwogICAgIHVzaW5nIEFycmF5VmFsdWUgPSBWZWN0b3I8Q0JPUlZhbHVlPjsKLSAgICB1c2luZyBN
YXBWYWx1ZSA9IHN0ZDo6bWFwPENCT1JWYWx1ZSwgQ0JPUlZhbHVlLCBDVEFQTGVzcz47CisgICAg
dXNpbmcgTWFwVmFsdWUgPSBTdGRNYXA8Q0JPUlZhbHVlLCBDQk9SVmFsdWUsIENUQVBMZXNzPjsK
IAogICAgIGVudW0gY2xhc3MgVHlwZSB7CiAgICAgICAgIFVuc2lnbmVkID0gMCwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKaW5kZXggZGQ3NWEz
ZDRkNWE5MDc0NDAwNjkxMjYwNDZmNzQ2ZjFkYzc3MGYwMC4uNDYxZTAxYTkzYjNkOTdhNzg5ODIz
ZDUzYzkyM2UxZTkwZDUzYWRmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZS5jcHAKQEAgLTc2Nyw5ICs3NjcsOSBAQCBWZWN0b3I8U3RyaW5nPiBE
YXRhYmFzZTo6dGFibGVOYW1lcygpCiBTZWN1cml0eU9yaWdpbkRhdGEgRGF0YWJhc2U6OnNlY3Vy
aXR5T3JpZ2luKCkKIHsKICAgICBpZiAobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc0NvbnRl
eHRUaHJlYWQoKSkKLSAgICAgICAgcmV0dXJuIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3Vy
aXR5T3JpZ2luKG1fY29udGV4dFRocmVhZFNlY3VyaXR5T3JpZ2luLmdldCgpKTsKKyAgICAgICAg
cmV0dXJuIG1fY29udGV4dFRocmVhZFNlY3VyaXR5T3JpZ2luLT5kYXRhKCk7CiAgICAgaWYgKGRh
dGFiYXNlVGhyZWFkKCkuZ2V0VGhyZWFkKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKQotICAgICAg
ICByZXR1cm4gU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4obV9kYXRhYmFz
ZVRocmVhZFNlY3VyaXR5T3JpZ2luLmdldCgpKTsKKyAgICAgICAgcmV0dXJuIG1fZGF0YWJhc2VU
aHJlYWRTZWN1cml0eU9yaWdpbi0+ZGF0YSgpOwogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2VDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2VDb250ZXh0LmNwcAppbmRleCBkMmE2NWUyZWY0NmYxYzk1ZTE0NTU0ZWFmNjc0
MzY3MjhmNWE0ZWUxLi40OTcxMzFjMjcwYjQ5ODhjMjgwNjEyMzY0ZGU0ZTkyYzdiZGE0Zjk4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZUNvbnRleHQuY3BwCkBAIC0yMDksOSArMjA5LDkgQEAgdm9pZCBEYXRhYmFzZUNvbnRleHQ6OmRh
dGFiYXNlRXhjZWVkZWRRdW90YShjb25zdCBTdHJpbmcmIG5hbWUsIERhdGFiYXNlRGV0YWlscwog
ICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzV29ya2VyR2xvYmFsU2NvcGUo
KSk7CiB9CiAKLVNlY3VyaXR5T3JpZ2luRGF0YSBEYXRhYmFzZUNvbnRleHQ6OnNlY3VyaXR5T3Jp
Z2luKCkgY29uc3QKK2NvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgRGF0YWJhc2VDb250ZXh0Ojpz
ZWN1cml0eU9yaWdpbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFNlY3VyaXR5T3JpZ2luRGF0YTo6
ZnJvbVNlY3VyaXR5T3JpZ2luKCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnNlY3VyaXR5T3Jp
Z2luKCkpOworICAgIHJldHVybiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnNlY3VyaXR5T3Jp
Z2luKCktPmRhdGEoKTsKIH0KIAogYm9vbCBEYXRhYmFzZUNvbnRleHQ6OmlzQ29udGV4dFRocmVh
ZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZUNvbnRleHQuaAppbmRleCA0YzNjNDYzNjM1ZTRmYzNlMTExNzQ3Zjc1YTBjMTEwM2Qz
YWZjOWZkLi5kMTg2NDQ4ODhmZmFlZTA4OWE4ZGU4ZDEyMzUzOWU0NzI5MTA5MjNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0
LmgKQEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGF0YWJhc2VFeGNlZWRlZFF1
b3RhKGNvbnN0IFN0cmluZyYgbmFtZSwgRGF0YWJhc2VEZXRhaWxzKTsKIAogICAgIHVzaW5nIEFj
dGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKLSAgICBTZWN1cml0eU9yaWdp
bkRhdGEgc2VjdXJpdHlPcmlnaW4oKSBjb25zdDsKKyAgICBjb25zdCBTZWN1cml0eU9yaWdpbkRh
dGEmIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAKICAgICBib29sIGlzQ29udGV4dFRocmVhZCgp
IGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlTWFuYWdlci5jcHAKaW5kZXggYjRhZGM2NjI4MDdjMGQ1MmU0MjdhZGZhNTFmYjcy
ODFjYmRhNzNhYi4uYmJmNDQ5M2I3ZTlhM2M1MjNhM2I5OWVmMWQ4YTk0MDdmYzk1M2JiNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VN
YW5hZ2VyLmNwcApAQCAtMjQ4LDcgKzI0OCw3IEBAIFN0cmluZyBEYXRhYmFzZU1hbmFnZXI6OmZ1
bGxQYXRoRm9yRGF0YWJhc2UoU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5nCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgICAgICB9CiAgICAgfQotICAgIHJl
dHVybiBEYXRhYmFzZVRyYWNrZXI6OnNpbmdsZXRvbigpLmZ1bGxQYXRoRm9yRGF0YWJhc2UoU2Vj
dXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4ob3JpZ2luKSwgbmFtZSwgY3JlYXRl
SWZEb2VzTm90RXhpc3QpOworICAgIHJldHVybiBEYXRhYmFzZVRyYWNrZXI6OnNpbmdsZXRvbigp
LmZ1bGxQYXRoRm9yRGF0YWJhc2Uob3JpZ2luLmRhdGEoKSwgbmFtZSwgY3JlYXRlSWZEb2VzTm90
RXhpc3QpOwogfQogCiBEYXRhYmFzZURldGFpbHMgRGF0YWJhc2VNYW5hZ2VyOjpkZXRhaWxzRm9y
TmFtZUFuZE9yaWdpbihjb25zdCBTdHJpbmcmIG5hbWUsIFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4p
CkBAIC0yNjMsNyArMjYzLDcgQEAgRGF0YWJhc2VEZXRhaWxzIERhdGFiYXNlTWFuYWdlcjo6ZGV0
YWlsc0Zvck5hbWVBbmRPcmlnaW4oY29uc3QgU3RyaW5nJiBuYW1lLCBTZWMKICAgICAgICAgfQog
ICAgIH0KIAotICAgIHJldHVybiBEYXRhYmFzZVRyYWNrZXI6OnNpbmdsZXRvbigpLmRldGFpbHNG
b3JOYW1lQW5kT3JpZ2luKG5hbWUsIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3Jp
Z2luKG9yaWdpbikpOworICAgIHJldHVybiBEYXRhYmFzZVRyYWNrZXI6OnNpbmdsZXRvbigpLmRl
dGFpbHNGb3JOYW1lQW5kT3JpZ2luKG5hbWUsIG9yaWdpbi5kYXRhKCkpOwogfQogCiB2b2lkIERh
dGFiYXNlTWFuYWdlcjo6bG9nRXJyb3JNZXNzYWdlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvUEFML0Nv
bmZpZ3VyYXRpb25zL0Jhc2UueGNjb25maWcKaW5kZXggMTZjMzc2ZTk2NTJkOWY2NzFkMjUyN2Vl
YWZjYjkxMmIwZDU3ZjkxMC4uZDVkZWIxMzEyODg0ZmFjOGRiZjVhNDM5NTdmMGU5Y2VjODcwYzgw
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNj
b25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25m
aWcKQEAgLTEyNCw2ICsxMjQsOSBAQCBXS19OT1RfWUVTID0gTk87CiAKIFdLX1VTRV9BTFRFUk5B
VEVfRlJBTUVXT1JLU19ESVIgPSAkKFdLX05PVF8kKFdLX0VNUFRZXyQoV0tfQUxURVJOQVRFX0ZS
QU1FV09SS1NfRElSKSkpOwogCitXS19BTFRFUk5BVEVfV0VCS0lUX1NES19QQVRIID0gJChXS19B
TFRFUk5BVEVfV0VCS0lUX1NES19QQVRIXyQoV0tfVVNFX0FMVEVSTkFURV9GUkFNRVdPUktTX0RJ
UikpOworV0tfQUxURVJOQVRFX1dFQktJVF9TREtfUEFUSF9ZRVMgPSAkKFdLX0FMVEVSTkFURV9G
UkFNRVdPUktTX0RJUikvOworCiBXS19QTEFURk9STV9OQU1FID0gJChXS19QTEFURk9STV9OQU1F
X1VTRV9BTFRFUk5BVEVfRlJBTUVXT1JLU19ESVJfJChXS19VU0VfQUxURVJOQVRFX0ZSQU1FV09S
S1NfRElSKSk7CiBXS19QTEFURk9STV9OQU1FX1VTRV9BTFRFUk5BVEVfRlJBTUVXT1JLU19ESVJf
WUVTID0gaXBob25lbWluaW1hbHNpbXVsYXRvcjsKIFdLX1BMQVRGT1JNX05BTUVfVVNFX0FMVEVS
TkFURV9GUkFNRVdPUktTX0RJUl9OTyA9ICQoUExBVEZPUk1fTkFNRSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvQ29weVBBTEhlYWRlcnMueGNjb25maWcg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvQ29weVBBTEhlYWRlcnMueGNjb25m
aWcKaW5kZXggOTkyNGE1MDA4OTcyZDlhN2EyMzU5YjU4YjM5YjI1NGRmNDI1OWFhNS4uYmQwMjNm
NWQ5YzdhNDllODk1N2MxYzYwYTg4NThhN2JlOGZiZWUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0NvcHlQQUxIZWFkZXJzLnhjY29uZmlnCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9Db3B5UEFMSGVhZGVycy54Y2NvbmZpZwpA
QCAtMjEsNSArMjEsNSBAQAogLy8gKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAvLyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKIAotUFJJ
VkFURV9IRUFERVJTX0ZPTERFUl9QQVRIID0gdXNyL2xvY2FsL2luY2x1ZGUvcGFsOworUFJJVkFU
RV9IRUFERVJTX0ZPTERFUl9QQVRIID0gJChXS19BTFRFUk5BVEVfV0VCS0lUX1NES19QQVRIKXVz
ci9sb2NhbC9pbmNsdWRlL3BhbDsKIElOU1RBTExIRFJTX1NDUklQVF9QSEFTRSA9IFlFUzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZwppbmRleCA5NzI1YjA0MmU5NGI2M2NjYmUzODAzYzUzMmQyY2EyOTgyYjYy
ZjRiLi40MzZiYjkyMzNlZjExMDM5NzQxMmQ0YWM2MzVkMWY2OTkyMDgwODFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25m
aWcKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnCkBAIC0xMDEsNyArMTAxLDYgQEAgRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQgPSA7
CiAKIEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OID0gJChFTkFCTEVfREFUQV9JTlRFUkFDVElPTl8k
KFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OX2lwaG9uZW9zID0g
RU5BQkxFX0RBVEFfSU5URVJBQ1RJT047Ci1FTkFCTEVfREFUQV9JTlRFUkFDVElPTl9pcGhvbmVt
aW5pbWFsc2ltdWxhdG9yID0gRU5BQkxFX0RBVEFfSU5URVJBQ1RJT047CiBFTkFCTEVfREFUQV9J
TlRFUkFDVElPTl9pcGhvbmVzaW11bGF0b3IgPSBFTkFCTEVfREFUQV9JTlRFUkFDVElPTjsKIAog
RU5BQkxFX0RFVklDRV9PUklFTlRBVElPTiA9ICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTl8k
KFdLX1BMQVRGT1JNX05BTUUpKTsKQEAgLTExNCw3ICsxMTMsNiBAQCBFTkFCTEVfREVWSUNFX09S
SUVOVEFUSU9OX2FwcGxldHZzaW11bGF0b3IgPSBFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OOwog
CiBFTkFCTEVfRFJBR19TVVBQT1JUID0gJChFTkFCTEVfRFJBR19TVVBQT1JUXyQoV0tfUExBVEZP
Uk1fTkFNRSkpOwogRU5BQkxFX0RSQUdfU1VQUE9SVF9pcGhvbmVvcyA9IEVOQUJMRV9EUkFHX1NV
UFBPUlQ7Ci1FTkFCTEVfRFJBR19TVVBQT1JUX2lwaG9uZW1pbmltYWxzaW11bGF0b3IgPSBFTkFC
TEVfRFJBR19TVVBQT1JUOwogRU5BQkxFX0RSQUdfU1VQUE9SVF9pcGhvbmVzaW11bGF0b3IgPSBF
TkFCTEVfRFJBR19TVVBQT1JUOwogCiBFTkFCTEVfRU5DUllQVEVEX01FRElBID0gJChFTkFCTEVf
RU5DUllQVEVEX01FRElBXyQoV0tfUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL1BBTC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9Db25maWd1cmF0aW9ucy9QQUwueGNjb25maWcKaW5kZXggNzIwNzg2ZDUwYjIyMjBmMzlj
N2M3MmRiMmFmYWVkMDdmM2RkZDA5YS4uNjdmNTA4NGYxNmFmZWNiNmRkYTQ1MzFjZDZiZjQyNzRh
OWIyOWQ1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NvbmZpZ3VyYXRpb25zL1BB
TC54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvUEFMLnhj
Y29uZmlnCkBAIC00Miw3ICs0Miw3IEBAIEZSQU1FV09SS19TRUFSQ0hfUEFUSFNbc2RrPW1hY29z
eCpdID0gJChXS19RVU9URURfT1ZFUlJJREVfRlJBTUVXT1JLU19ESVIpICQoaW5oCiBPVEhFUl9D
RkxBR1MgPSAkKGluaGVyaXRlZCkgLWlmcmFtZXdvcmsgJChTREtST09UKSQoU1lTVEVNX0xJQlJB
UllfRElSKS9GcmFtZXdvcmtzL0NhcmJvbi5mcmFtZXdvcmsvRnJhbWV3b3JrcyAtaWZyYW1ld29y
ayAkKFNES1JPT1QpJChTWVNURU1fTElCUkFSWV9ESVIpL0ZyYW1ld29ya3MvQXBwbGljYXRpb25T
ZXJ2aWNlcy5mcmFtZXdvcmsvRnJhbWV3b3JrcyAtaWZyYW1ld29yayAkKFNES1JPT1QpJChTWVNU
RU1fTElCUkFSWV9ESVIpL0ZyYW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1ld29yay9GcmFtZXdv
cmtzIC1pZnJhbWV3b3JrICQoU0RLUk9PVCkkKFNZU1RFTV9MSUJSQVJZX0RJUikvRnJhbWV3b3Jr
cy9RdWFydHouZnJhbWV3b3JrL0ZyYW1ld29ya3MgLWlmcmFtZXdvcmsgJChTREtST09UKSQoU1lT
VEVNX0xJQlJBUllfRElSKS9Qcml2YXRlRnJhbWV3b3JrczsKIE9USEVSX0NQTFVTUExVU0ZMQUdT
ID0gJChPVEhFUl9DRkxBR1MpOwogCi1IRUFERVJfU0VBUkNIX1BBVEhTID0gIiQoQlVJTFRfUFJP
RFVDVFNfRElSKS91c3IvbG9jYWwvaW5jbHVkZSIgJChpbmhlcml0ZWQpOworSEVBREVSX1NFQVJD
SF9QQVRIUyA9ICIkKEJVSUxUX1BST0RVQ1RTX0RJUikkKFdLX0FMVEVSTkFURV9XRUJLSVRfU0RL
X1BBVEgpL3Vzci9sb2NhbC9pbmNsdWRlIiAkKGluaGVyaXRlZCk7CiBJTlNUQUxMX1BBVEggPSAv
dXNyL2xvY2FsL2xpYjsKIElOU1RBTExIRFJTX0NPUFlfUEhBU0UgPSBZRVM7CiBJTlNUQUxMSERS
U19TQ1JJUFRfUEhBU0UgPSBZRVM7CkBAIC02Niw3ICs2NiwxMCBAQCBXS19OT1RfWUVTID0gTk87
CiBXS19VU0VfT1ZFUlJJREVfRlJBTUVXT1JLU19ESVIgPSAkKFdLX05PVF8kKFdLX0VNUFRZXyQo
V0tfT1ZFUlJJREVfRlJBTUVXT1JLU19ESVIpKSk7CiAKIFdLX09WRVJSSURFX0ZSQU1FV09SS1Nf
RElSID0gJChXS19PVkVSUklERV9GUkFNRVdPUktTX0RJUl9VU0VfU1RBR0lOR19JTlNUQUxMX1BB
VEhfJChVU0VfU1RBR0lOR19JTlNUQUxMX1BBVEgpKTsKK1dLX09WRVJSSURFX0ZSQU1FV09SS1Nf
RElSX1VTRV9TVEFHSU5HX0lOU1RBTExfUEFUSF8gPSAkKFdLX09WRVJSSURFX0ZSQU1FV09SS1Nf
RElSX1VTRV9TVEFHSU5HX0lOU1RBTExfUEFUSF9OTyk7CitXS19PVkVSUklERV9GUkFNRVdPUktT
X0RJUl9VU0VfU1RBR0lOR19JTlNUQUxMX1BBVEhfTk8gPSAkKFdLX09WRVJSSURFX0ZSQU1FV09S
S1NfRElSX1VTRV9BTFRFUk5BVEVfRlJBTUVXT1JLU19ESVJfJChXS19VU0VfQUxURVJOQVRFX0ZS
QU1FV09SS1NfRElSKSk7CiBXS19PVkVSUklERV9GUkFNRVdPUktTX0RJUl9VU0VfU1RBR0lOR19J
TlNUQUxMX1BBVEhfWUVTID0gJChTWVNURU1fTElCUkFSWV9ESVIpL1N0YWdlZEZyYW1ld29ya3Mv
U2FmYXJpOworV0tfT1ZFUlJJREVfRlJBTUVXT1JLU19ESVJfVVNFX0FMVEVSTkFURV9GUkFNRVdP
UktTX0RJUl9ZRVMgPSAkKFdLX0FMVEVSTkFURV9GUkFNRVdPUktTX0RJUikvU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3JrczsKIAogV0tfUVVPVEVEX09WRVJSSURFX0ZSQU1FV09SS1NfRElSID0gJChX
S19RVU9URURfT1ZFUlJJREVfRlJBTUVXT1JLU19ESVJfJChXS19VU0VfT1ZFUlJJREVfRlJBTUVX
T1JLU19ESVIpKTsKIFdLX1FVT1RFRF9PVkVSUklERV9GUkFNRVdPUktTX0RJUl9ZRVMgPSAiJChX
S19PVkVSUklERV9GUkFNRVdPUktTX0RJUikiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UEFML0NvbmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWcgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZpZwppbmRleCAyMjQxYjkzZWY2OTY1ODVkYjg4
MDQ1NzY0YTIyODRkY2YyZWI2ZjBmLi44NzcyMjJiZmM0MTk3MDQ3NjRjNjU3MjhiYTZmOWY5Njg3
YTVjOGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvVmVy
c2lvbi54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ29uZmlndXJhdGlvbnMvVmVy
c2lvbi54Y2NvbmZpZwpAQCAtMjMsNyArMjMsNyBAQAogCiBNQUpPUl9WRVJTSU9OID0gNjA2Owog
TUlOT1JfVkVSU0lPTiA9IDE7Ci1USU5ZX1ZFUlNJT04gPSAxMDsKK1RJTllfVkVSU0lPTiA9IDEx
OwogTUlDUk9fVkVSU0lPTiA9IDA7CiBOQU5PX1ZFUlNJT04gPSAwOwogRlVMTF9WRVJTSU9OID0g
JChNQUpPUl9WRVJTSU9OKS4kKE1JTk9SX1ZFUlNJT04pLiQoVElOWV9WRVJTSU9OKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0xhdW5jaFNlcnZpY2VzU1BJ
LmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQSS5o
CmluZGV4IDcxMmJjZmNmMTFmZDk3MDUwZGEzNmRmYjg1YTYxZjFmZTE2ZjgwNjcuLjE0NzU3ODI2
ZDg3MDFkZmQ0MGNmN2M2YjA4MmNjYzY4NTdjZDY1MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NvY29hL0xhdW5jaFNlcnZpY2VzU1BJLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTGF1bmNoU2VydmljZXNTUEkuaApAQCAtMzcsOSArMzcs
MTEgQEAKIAogI2VuZGlmCiAKKyNpZiBIQVZFKEFQUF9MSU5LUykKIEBjbGFzcyBMU0FwcExpbms7
CiB0eXBlZGVmIHZvaWQgKF5MU0FwcExpbmtDb21wbGV0aW9uSGFuZGxlcikoTFNBcHBMaW5rICph
cHBMaW5rLCBOU0Vycm9yICplcnJvcik7CiB0eXBlZGVmIHZvaWQgKF5MU0FwcExpbmtPcGVuQ29t
cGxldGlvbkhhbmRsZXIpKEJPT0wgc3VjY2VzcywgTlNFcnJvciAqZXJyb3IpOworI2VuZGlmCiAK
ICNpZiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIApAQCAtNTMsNiArNTUsNyBAQCB0eXBlZGVm
IHZvaWQgKF5MU0FwcExpbmtPcGVuQ29tcGxldGlvbkhhbmRsZXIpKEJPT0wgc3VjY2VzcywgTlNF
cnJvciAqZXJyb3IpOwogLSAoTlNTdHJpbmcgKilsb2NhbGl6ZWROYW1lRm9yQ29udGV4dDooTlNT
dHJpbmcgKiljb250ZXh0OwogQGVuZAogCisjaWYgSEFWRShBUFBfTElOS1MpCiBAaW50ZXJmYWNl
IExTQXBwTGluayA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KIEBlbmQKIApAQCAtNjIsNiAr
NjUsNyBAQCB0eXBlZGVmIHZvaWQgKF5MU0FwcExpbmtPcGVuQ29tcGxldGlvbkhhbmRsZXIpKEJP
T0wgc3VjY2VzcywgTlNFcnJvciAqZXJyb3IpOwogLSAodm9pZClvcGVuSW5XZWJCcm93c2VyOihC
T09MKWluV2ViQnJvd3NlciBzZXRBcHByb3ByaWF0ZU9wZW5TdHJhdGVneUFuZFdlYkJyb3dzZXJT
dGF0ZTooTlNEaWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKXN0YXRlIGNvbXBsZXRpb25IYW5k
bGVyOihMU0FwcExpbmtPcGVuQ29tcGxldGlvbkhhbmRsZXIpY29tcGxldGlvbkhhbmRsZXI7CiBA
cHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIExTQXBwbGljYXRpb25Qcm94eSAqdGFyZ2V0QXBw
bGljYXRpb25Qcm94eTsKIEBlbmQKKyNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQogZW51bSBM
U1Nlc3Npb25JRCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCA4Nzc4ZjRiYWE1NjYzMjFi
ODEyZDFiNTc0N2M0ZWQwMzAwYTgxNGE5Li4wOGVkNTU0MTI2OTU0MDZhNmVmN2M3OWU1M2I3NzYw
YWYxZjZhMDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTU0Miw3ICs1NDIsNyBAQCBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKIHBsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYS5jcHAKIHBsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcAogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcAot
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29h
LmNwcAorcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJj
ZUNvY29hLm1tCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlck1hYy5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdvaW5nQXVk
aW9Tb3VyY2VDb2NvYS5jcHAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU91dGdv
aW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjZGM2MjM1MWVhOWRjZWE4MWNlY2JmZTU5Zjdl
ZDEzNGE3YmU1MDkwLi45YmI1NmYwMWE4MWFhNzk4M2VhMDYyZWRjOTM5YjkxNDIzNWQyNDY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0zNiw3ICszNiw2IEBACiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gREQwNDFGQzEw
OUQ5REREQzAwMTBBRjJBIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdncmVn
YXRlVGFyZ2V0ICJEZXJpdmVkIFNvdXJjZXMiICovOwogCQkJYnVpbGRQaGFzZXMgPSAoCiAJCQkJ
REQwNDFGQkQwOUQ5RERCRTAwMTBBRjJBIC8qIEdlbmVyYXRlIERlcml2ZWQgU291cmNlcyAqLywK
LQkJCQkxQTkzMkVEOTFENkQyREZDMDBBQjhFNkYgLyogTWFrZSBQaG9ueSBXZWJLaXRMZWdhY3ku
ZnJhbWV3b3JrICovLAogCQkJKTsKIAkJCWRlcGVuZGVuY2llcyA9ICgKIAkJCSk7CkBAIC0xMzQy
LDYgKzEzNDEsNyBAQAogCQk1MTBENEEzNzEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFt
SGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTBENEEzMTEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTEwRDRBMzgxMDMxNjVF
RTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRDRBMzIxMDMxNjVFRTAwNDlFQTU0IC8q
IFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTUxMTBGQ0ZDMUUwMzY0MUQwMDZGOEQwQiAvKiBJREJDdXJz
b3JSZWNvcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMTBGQ0ZCMUUwMzYyQTUwMDZGOEQwQiAvKiBJREJDdXJzb3JSZWNvcmQuaCAqLzsgfTsKKwkJ
NTExRTk3QTMyMDYzMDc0NjAwQUQ0NTk5IC8qIE5hdmlnYXRpb25Qb2xpY3lDaGVjay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRTk3QTEyMDYzMDcy
QTAwQUQ0NTk5IC8qIE5hdmlnYXRpb25Qb2xpY3lDaGVjay5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxMUVDMTI4MUM1MEFBQ0EwMDMyRjk4MyAv
KiBJREJTZXJpYWxpemF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTFFQzEyNjFDNTBBQTU3MDAzMkY5ODMgLyogSURCU2VyaWFsaXphdGlvbi5o
ICovOyB9OwogCQk1MTFFQzEyQzFDNTBBQkJGMDAzMkY5ODMgLyogU1FMaXRlSURCVHJhbnNhY3Rp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVD
MTJBMUM1MEFCQkEwMDMyRjk4MyAvKiBTUUxpdGVJREJUcmFuc2FjdGlvbi5oICovOyB9OwogCQk1
MTFFQzEzMDFDNTBBQkY1MDAzMkY5ODMgLyogU1FMaXRlSURCQ3Vyc29yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFFQzEyRTFDNTBBQkVDMDAzMkY5
ODMgLyogU1FMaXRlSURCQ3Vyc29yLmggKi87IH07CkBAIC00MzUzLDYgKzQzNTMsNyBAQAogCQlE
RTVGODY1NzFGQTJBRjI0MDA2REI2M0EgLyogVW5pZmllZFNvdXJjZTU4LW1tLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREU1Rjg2MzkxRkEyQUYwNzAw
NkRCNjNBIC8qIFVuaWZpZWRTb3VyY2U1OC1tbS5tbSAqLzsgfTsKIAkJREU1Rjg2NTgxRkEyQUYy
NDAwNkRCNjNBIC8qIFVuaWZpZWRTb3VyY2U1OS1tbS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERFNUY4NjMyMUZBMkFFRkYwMDZEQjYzQSAvKiBVbmlm
aWVkU291cmNlNTktbW0ubW0gKi87IH07CiAJCURFNUY4NjU5MUZBMkFGMjQwMDZEQjYzQSAvKiBV
bmlmaWVkU291cmNlNjAtbW0ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBERTVGODYzQTFGQTJBRjA3MDA2REI2M0EgLyogVW5pZmllZFNvdXJjZTYwLW1t
Lm1tICovOyB9OworCQlERTVGODY1OTFGQTJBRjI0MDA2REI2M0IgLyogVW5pZmllZFNvdXJjZTYx
LW1tLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREU1
Rjg2M0ExRkEyQUYwNzAwNkRCNjNCIC8qIFVuaWZpZWRTb3VyY2U2MS1tbS5tbSAqLzsgfTsKIAkJ
REU3NzEwODYxRkEyRjBENjAwNDYwMDE2IC8qIFdlYkFyY2hpdmVEdW1wU3VwcG9ydC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExNzYzRjNDMUUyMDUy
MzQwMDFENThERSAvKiBXZWJBcmNoaXZlRHVtcFN1cHBvcnQubW0gKi87IH07CiAJCURFQkNDREQy
MTY2NDZFODIwMEE0NTJFMSAvKiBSZW5kZXJNZWRpYUNvbnRyb2xFbGVtZW50cy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREU0OUIzMDgxNjVGMkZFMTAw
MTAzMzhEIC8qIFJlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmggKi87IH07CiAJCURFQkNDREQ0
MTY2NDZFQUYwMEE0NTJFMSAvKiBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERFNDlCMzAwMTY1RjJGQzYwMDEw
MzM4RCAvKiBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZXMuaCAqLzsgfTsKQEAgLTYxNDksNyArNjE1
MCw2IEBACiAJCTFBRTk2QTg0MUQxQTBBODAwMEI4Njc2OCAvKiBKU0FwcGxlUGF5VmFsaWRhdGVN
ZXJjaGFudEV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
QXBwbGVQYXlWYWxpZGF0ZU1lcmNoYW50RXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxQUU5NkE4NjFEMUEwQ0VCMDBCODY3NjggLyogUGF5bWVudEF1dGhvcml6YXRpb25T
dGF0dXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudEF1dGhvcml6
YXRpb25TdGF0dXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFFOTZBODcxRDFB
MENFQjAwQjg2NzY4IC8qIFBheW1lbnRNZXJjaGFudFNlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudE1lcmNoYW50U2Vzc2lvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkxQUVBODhGRjFENkNCRjVFMDBFNUFENjQgLyogV2ViS2l0TGVnYWN5
U3R1Yi5pT1MudGJkICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gInNvdXJjZWNvZGUudGV4dC1iYXNlZC1keWxpYi1kZWZpbml0aW9uIjsgcGF0aCA9IFdl
YktpdExlZ2FjeVN0dWIuaU9TLnRiZDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFF
RjRFNjYxNzBFMTYwMzAwQUIyNzk5IC8qIENhY2hlZEZvbnRDbGllbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkRm9udENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQUVGNEU2ODE3MEUxNzQ4MDBBQjI3OTkgLyogQ2FjaGVkU1ZHRG9jdW1l
bnRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkU1ZHRG9j
dW1lbnRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFGMzI2NzcwRDc4
Qjk0NDAwNjhGMEM0IC8qIEVkaXRvckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBFZGl0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc3
MDEsNiArNzcwMSw3IEBACiAJCTUxMEQ0QTMxMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJl
YW1IYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU29ja2V0U3RyZWFt
SGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMEQ0QTMyMTAzMTY1RUUw
MDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUxMTBGQ0ZCMUUwMzYyQTUwMDZGOEQwQiAvKiBJREJDdXJzb3JSZWNv
cmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCQ3Vyc29yUmVjb3JkLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMUU5N0ExMjA2MzA3MkEwMEFENDU5OSAv
KiBOYXZpZ2F0aW9uUG9saWN5Q2hlY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTmF2aWdhdGlvblBvbGljeUNoZWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxMUVDMTI1MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQlNlcmlhbGl6YXRpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFFQzEyNjFDNTBBQTU3MDAzMkY5ODMgLyogSURC
U2VyaWFsaXphdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJTZXJp
YWxpemF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUVDMTI5MUM1MEFC
QkEwMDMyRjk4MyAvKiBTUUxpdGVJREJUcmFuc2FjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTUUxpdGVJREJUcmFuc2FjdGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC04NTM5LDcgKzg1NDAsNyBAQAogCQk1Q0IzN0ZGRDFDNjJEMjc4
MDBGMjAxODggLyogU2Nyb2xsQW5pbWF0b3JNb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNjcm9sbEFuaW1hdG9yTW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1Q0JDOERBQTFBQUEzMDIyMDBFMUM4MDMgLyogTWVkaWFBY2Nlc3NpYmlsaXR5U29mdExp
bmsuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFBY2Nlc3Np
YmlsaXR5U29mdExpbmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0JDOERB
QjFBQUEzMDIyMDBFMUM4MDMgLyogTWVkaWFBY2Nlc3NpYmlsaXR5U29mdExpbmsuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFBY2Nlc3NpYmlsaXR5U29mdExpbmsuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNUNERDgzMzkxRTQzMjRCQjAwNjIxRTgzIC8q
IFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUNERDgzMzkxRTQzMjRCQjAwNjIxRTgzIC8q
IFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDREQ4MzM5MUU0MzI0QkIwMDYyMUU5MiAv
KiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNERDgzM0ExRTQzMjRCQjAwNjIxRTgzIC8qIFJlYWx0aW1l
SW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTVDREQ4MzNBMUU0MzI0QkIwMDYyMUU5MiAvKiBSZWFsdGltZUluY29taW5n
VmlkZW9Tb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVhbHRpbWVJ
bmNvbWluZ1ZpZGVvU291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMzcz
OCw2ICsxMzczOSw3IEBACiAJCURFNUY4NjM4MUZBMkFGMDYwMDZEQjYzQSAvKiBVbmlmaWVkU291
cmNlNTctbW0ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSAiVW5p
ZmllZFNvdXJjZTU3LW1tLm1tIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREU1Rjg2
MzkxRkEyQUYwNzAwNkRCNjNBIC8qIFVuaWZpZWRTb3VyY2U1OC1tbS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9ICJVbmlmaWVkU291cmNlNTgtbW0ubW0iOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlERTVGODYzQTFGQTJBRjA3MDA2REI2M0EgLyogVW5p
ZmllZFNvdXJjZTYwLW1tLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gIlVuaWZpZWRTb3VyY2U2MC1tbS5tbSI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CURFNUY4NjNBMUZBMkFGMDcwMDZEQjYzQiAvKiBVbmlmaWVkU291cmNlNjEtbW0ubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSAiVW5pZmllZFNvdXJjZTYxLW1tLm1t
Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREU1Rjg2M0IxRkEyQUYwODAwNkRCNjNB
IC8qIFVuaWZpZWRTb3VyY2U1NS1tbS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9ICJVbmlmaWVkU291cmNlNTUtbW0ubW0iOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlERUMyOTc1RDFCNERFQjJBMDA1RjU5NDUgLyogSlNDdXN0b21FdmVudEN1c3RvbS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0N1c3RvbUV2ZW50Q3Vz
dG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREVDQTdENkExRjlFNjFDQjAw
RTNCNjYxIC8qIFVuaWZpZWRTb3VyY2UxNDQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVW5pZmllZFNvdXJjZTE0NC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xNTEyMSw4ICsxNTEyMyw4IEBACiAJCQkJMDdFRTc2RUUxQkVBNjE5ODAwRjg5MTMz
IC8qIE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tICovLAogCQkJCTQxMTAzQUFBMUUzOTc5
MEEwMDc2OUYxNCAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAgKi8sCiAJ
CQkJNDExMDNBQTkxRTM5NzkwQTAwNzY5RjE0IC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJj
ZUNvY29hLmggKi8sCi0JCQkJNUNERDgzMzkxRTQzMjRCQjAwNjIxRTgzIC8qIFJlYWx0aW1lSW5j
b21pbmdWaWRlb1NvdXJjZUNvY29hLmNwcCAqLywKIAkJCQk1Q0REODMzQTFFNDMyNEJCMDA2MjFF
ODMgLyogUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuaCAqLywKKwkJCQk1Q0REODMz
OTFFNDMyNEJCMDA2MjFFODMgLyogUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0g
Ki8sCiAJCQkJNEEwRkZBQTMxQUFGNUVGNjAwNjI4MDNCIC8qIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXJNYWMuY3BwICovLAogCQkJCTRBMEZGQUE0MUFBRjVFRjYwMDYyODAzQiAvKiBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyTWFjLmggKi8sCiAJCQkJNDExMDNBQTcxRTM5NzkwQTAwNzY5RjE0
IC8qIFJlYWx0aW1lT3V0Z29pbmdBdWRpb1NvdXJjZUNvY29hLmNwcCAqLywKQEAgLTE2MTQzLDcg
KzE2MTQ1LDYgQEAKIAkJCQkxQ0RENDVFNTBCQTlDODQ2MDBGOTAxNDcgLyogV2ViQ29yZS54Y2Nv
bmZpZyAqLywKIAkJCQlFMUJBNjZGMjE3NDJCRENDMDBDMjAyNTEgLyogV2ViQ29yZVRlc3RTaGlt
LnhjY29uZmlnICovLAogCQkJCTQxODE3MDdEMTM4NkVERjIwMDU3QUFBNCAvKiBXZWJDb3JlVGVz
dFN1cHBvcnQueGNjb25maWcgKi8sCi0JCQkJMUFFQTg4RkYxRDZDQkY1RTAwRTVBRDY0IC8qIFdl
YktpdExlZ2FjeVN0dWIuaU9TLnRiZCAqLywKIAkJCSk7CiAJCQlwYXRoID0gQ29uZmlndXJhdGlv
bnM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTc5MTksNiArMTc5MjAsNyBAQAog
CQkJCTUzOEVDODZCMUY5OTNGMjkwMDREMjJBOCAvKiBVbmlmaWVkU291cmNlNTkuY3BwICovLAog
CQkJCURFNUY4NjNBMUZBMkFGMDcwMDZEQjYzQSAvKiBVbmlmaWVkU291cmNlNjAtbW0ubW0gKi8s
CiAJCQkJNTM4RUM4NzkxRjk5M0YzMTAwNEQyMkE4IC8qIFVuaWZpZWRTb3VyY2U2MC5jcHAgKi8s
CisJCQkJREU1Rjg2M0ExRkEyQUYwNzAwNkRCNjNCIC8qIFVuaWZpZWRTb3VyY2U2MS1tbS5tbSAq
LywKIAkJCQk1MzhFQzg3RTFGOTkzRjMzMDA0RDIyQTggLyogVW5pZmllZFNvdXJjZTYxLmNwcCAq
LywKIAkJCQk1MzhFQzg1QTFGOTkzRjIwMDA0RDIyQTggLyogVW5pZmllZFNvdXJjZTYyLmNwcCAq
LywKIAkJCQk1MzhFQzg2MTFGOTkzRjI0MDA0RDIyQTggLyogVW5pZmllZFNvdXJjZTYzLmNwcCAq
LywKQEAgLTIzOTYxLDYgKzIzOTYzLDcgQEAKIAkJCQk5M0NDRjA1RjBBRjZDQTc2MDAwMThFODkg
LyogTmF2aWdhdGlvbkFjdGlvbi5jcHAgKi8sCiAJCQkJOTNDQ0YwMjYwQUY2QzUyOTAwMDE4RTg5
IC8qIE5hdmlnYXRpb25BY3Rpb24uaCAqLywKIAkJCQk5QkE4Mjc3ODFGMDYxNTY1MDBGNzFFNzUg
LyogTmF2aWdhdGlvbkRpc2FibGVyLmggKi8sCisJCQkJNTExRTk3QTEyMDYzMDcyQTAwQUQ0NTk5
IC8qIE5hdmlnYXRpb25Qb2xpY3lDaGVjay5oICovLAogCQkJCTk3OUY0M0QxMTA3NUU0NEEwMDAw
RjgzQiAvKiBOYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcCAqLywKIAkJCQk5NzlGNDNEMjEwNzVFNDRB
MDAwMEY4M0IgLyogTmF2aWdhdGlvblNjaGVkdWxlci5oICovLAogCQkJCTkzRTIyN0REMEFGNTg5
QUQwMEQ0ODMyNCAvKiBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAgKi8sCkBAIC0yOTEy
OSw2ICsyOTEzMiw3IEBACiAJCQkJODNCMkQxNzUxQjhCQ0Q2QTAwQTAyRTQ3IC8qIE5hdGl2ZU5v
ZGVGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMEI5QjZDMEI3NDc1OTkwMDNFRDg5MCAv
KiBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQ0NGMDI3MEFG
NkM1MjkwMDAxOEU4OSAvKiBOYXZpZ2F0aW9uQWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk1
MTFFOTdBMzIwNjMwNzQ2MDBBRDQ1OTkgLyogTmF2aWdhdGlvblBvbGljeUNoZWNrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5NzlGNDNENDEwNzVFNDRBMDAwMEY4M0IgLyogTmF2aWdhdGlvblNjaGVk
dWxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTlDNkU1QTYwRDc0NjQ1ODAwNjQ0MkU5IC8qIE5h
dmlnYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNzE5QzcwRUVFQzE2ODAwRjYxMjEzIC8q
IE5hdmlnYXRvckJhc2UuaCBpbiBIZWFkZXJzICovLApAQCAtMzA4NDEsMjIgKzMwODQ1LDYgQEAK
IC8qIEVuZCBQQlhSZXNvdXJjZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJY
U2hlbGxTY3JpcHRCdWlsZFBoYXNlIHNlY3Rpb24gKi8KLQkJMUE5MzJFRDkxRDZEMkRGQzAwQUI4
RTZGIC8qIE1ha2UgUGhvbnkgV2ViS2l0TGVnYWN5LmZyYW1ld29yayAqLyA9IHsKLQkJCWlzYSA9
IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKLQkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2
NDc7Ci0JCQlmaWxlcyA9ICgKLQkJCSk7Ci0JCQlpbnB1dFBhdGhzID0gKAotCQkJCSIkKFNSQ1JP
T1QpL0NvbmZpZ3VyYXRpb25zL1dlYktpdExlZ2FjeVN0dWIuaU9TLnRiZCIsCi0JCQkpOwotCQkJ
bmFtZSA9ICJNYWtlIFBob255IFdlYktpdExlZ2FjeS5mcmFtZXdvcmsiOwotCQkJb3V0cHV0UGF0
aHMgPSAoCi0JCQkJIiQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L1Bob255V2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS5mcmFtZXdvcmsvV2ViS2l0TGVnYWN5LnRi
ZCIsCi0JCQkpOwotCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7Ci0J
CQlzaGVsbFBhdGggPSAvYmluL3NoOwotCQkJc2hlbGxTY3JpcHQgPSAic2V0IC1lXG5cbmNhc2Ug
JFdLX1BMQVRGT1JNX05BTUUgaW5cbmlwaG9uZSopXG4gICAgVEJEX1BMQVRGT1JNPWlvc1xuICAg
IDs7XG5hcHBsZXR2KilcbiAgICBUQkRfUExBVEZPUk09dHZvc1xuICAgIDs7XG5lc2FjXG5cbmlm
IFtbIC1uICRUQkRfUExBVEZPUk0gXV07IHRoZW5cbiAgICBzZWQgLUUgcy9cXFRCRF9QTEFURk9S
TS8kVEJEX1BMQVRGT1JNLyBcIiR7U0NSSVBUX0lOUFVUX0ZJTEVfMH1cIiA+IFwiJHtTQ1JJUFRf
T1VUUFVUX0ZJTEVfMH1cIlxuZmlcbiI7Ci0JCX07CiAJCTM3QTFFQUEzMTQyNjk5QkMwMDg3RjQy
NSAvKiBDaGVjayBGb3IgSW5hcHByb3ByaWF0ZSBPYmplY3RpdmUtQyBDbGFzcyBOYW1lcyAqLyA9
IHsKIAkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFz
ayA9IDIxNDc0ODM2NDc7CkBAIC0zMDg4NCw3ICszMDg3Miw3IEBACiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCQlzaGVsbFBhdGggPSAvYmluL3No
OwotCQkJc2hlbGxTY3JpcHQgPSAic2V0IC1lXG5cbmNkICRTUkNST09UXG5cbmlmIFsgXCIke0RF
UExPWU1FTlRfTE9DQVRJT059XCIgPT0gXCJZRVNcIiBdOyB0aGVuXG5CVUlMRF9TQ1JJUFRTX0RJ
Uj1cIiR7U0RLUk9PVH0vdXNyL2xvY2FsL2luY2x1ZGUvd3RmL1NjcmlwdHNcIlxuZWxzZVxuQlVJ
TERfU0NSSVBUU19ESVI9XCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vdXNyL2xvY2FsL2luY2x1ZGUv
d3RmL1NjcmlwdHNcIlxuZmlcblxuVW5pZmllZFNvdXJjZUNwcEZpbGVDb3VudD01MzBcblVuaWZp
ZWRTb3VyY2VNbUZpbGVDb3VudD02MFxuXG5lY2hvIFwiVXNpbmcgdW5pZmllZCBzb3VyY2UgbGlz
dCBmaWxlczogU291cmNlcy50eHQsIFNvdXJjZXNDb2NvYS50eHRcIlxuXG4vdXNyL2Jpbi9lbnYg
cnVieSBcIiR7QlVJTERfU0NSSVBUU19ESVJ9L2dlbmVyYXRlLXVuaWZpZWQtc291cmNlLWJ1bmRs
ZXMucmJcIiBcIi0tZGVyaXZlZC1zb3VyY2VzLXBhdGhcIiBcIiR7QlVJTFRfUFJPRFVDVFNfRElS
fS9EZXJpdmVkU291cmNlcy9XZWJDb3JlXCIgXCItLXNvdXJjZS10cmVlLXBhdGhcIiBcIiR7U1JD
Uk9PVH1cIiBcIi0tZmVhdHVyZS1mbGFnc1wiIFwiJHtGRUFUVVJFX0RFRklORVN9XCIgXCItLW1h
eC1jcHAtYnVuZGxlLWNvdW50XCIgXCIke1VuaWZpZWRTb3VyY2VDcHBGaWxlQ291bnR9XCIgXCIt
LW1heC1vYmotYy1idW5kbGUtY291bnRcIiBcIiR7VW5pZmllZFNvdXJjZU1tRmlsZUNvdW50fVwi
IFwiU291cmNlcy50eHRcIiBcIlNvdXJjZXNDb2NvYS50eHRcIiA+IC9kZXYvbnVsbFxuIjsKKwkJ
CXNoZWxsU2NyaXB0ID0gInNldCAtZVxuXG5jZCAkU1JDUk9PVFxuXG5pZiBbIFwiJHtERVBMT1lN
RU5UX0xPQ0FUSU9OfVwiID09IFwiWUVTXCIgXTsgdGhlblxuQlVJTERfU0NSSVBUU19ESVI9XCIk
e1NES1JPT1R9L3Vzci9sb2NhbC9pbmNsdWRlL3d0Zi9TY3JpcHRzXCJcbmVsc2VcbkJVSUxEX1ND
UklQVFNfRElSPVwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L3Vzci9sb2NhbC9pbmNsdWRlL3d0Zi9T
Y3JpcHRzXCJcbmZpXG5cblVuaWZpZWRTb3VyY2VDcHBGaWxlQ291bnQ9NTMwXG5VbmlmaWVkU291
cmNlTW1GaWxlQ291bnQ9NjFcblxuZWNobyBcIlVzaW5nIHVuaWZpZWQgc291cmNlIGxpc3QgZmls
ZXM6IFNvdXJjZXMudHh0LCBTb3VyY2VzQ29jb2EudHh0XCJcblxuL3Vzci9iaW4vZW52IHJ1Ynkg
XCIke0JVSUxEX1NDUklQVFNfRElSfS9nZW5lcmF0ZS11bmlmaWVkLXNvdXJjZS1idW5kbGVzLnJi
XCIgXCItLWRlcml2ZWQtc291cmNlcy1wYXRoXCIgXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZVwiIFwiLS1zb3VyY2UtdHJlZS1wYXRoXCIgXCIke1NSQ1JPT1R9
XCIgXCItLWZlYXR1cmUtZmxhZ3NcIiBcIiR7RkVBVFVSRV9ERUZJTkVTfVwiIFwiLS1tYXgtY3Bw
LWJ1bmRsZS1jb3VudFwiIFwiJHtVbmlmaWVkU291cmNlQ3BwRmlsZUNvdW50fVwiIFwiLS1tYXgt
b2JqLWMtYnVuZGxlLWNvdW50XCIgXCIke1VuaWZpZWRTb3VyY2VNbUZpbGVDb3VudH1cIiBcIlNv
dXJjZXMudHh0XCIgXCJTb3VyY2VzQ29jb2EudHh0XCIgPiAvZGV2L251bGxcbiI7CiAJCX07CiAJ
CTVEMEQ1NDBEMEU5ODYyRjYwMDI5RTIyMyAvKiBDaGVjayBGb3IgV2VhayBWVGFibGVzIGFuZCBF
eHRlcm5hbHMgKi8gPSB7CiAJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CkBAIC0z
MTI5Nyw2ICszMTI4NSw3IEBACiAJCQkJNTM4RUM4QUMxRjk5M0Y5RDAwNEQyMkE4IC8qIFVuaWZp
ZWRTb3VyY2U1OS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlERTVGODY1OTFGQTJBRjI0MDA2REI2
M0EgLyogVW5pZmllZFNvdXJjZTYwLW1tLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTM4RUM4QUQx
Rjk5M0Y5RDAwNEQyMkE4IC8qIFVuaWZpZWRTb3VyY2U2MC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlERTVGODY1OTFGQTJBRjI0MDA2REI2M0IgLyogVW5pZmllZFNvdXJjZTYxLW1tLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJNTM4RUM4QUUxRjk5M0Y5RDAwNEQyMkE4IC8qIFVuaWZpZWRTb3VyY2U2
MS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MzhFQzhBRjFGOTkzRjlEMDA0RDIyQTggLyogVW5p
ZmllZFNvdXJjZTYyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUzOEVDOEIwMUY5OTNGOUQwMDRE
MjJBOCAvKiBVbmlmaWVkU291cmNlNjMuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlBUklBR3JpZFJvdy5j
cHAKaW5kZXggYjcyZWUxZWI4MjkyZjdkMzZiZjhjMmQ5Y2EzZGJhOWQyN2EwNmZmNi4uYjhmYTEw
ZjQ1Y2ZlNGZjZTQ1YjhlNThkYWVmZmE1OTFjNDQ0YWNhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3cuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93LmNwcApA
QCAtMTIzLDkgKzEyMywxMCBAQCBBY2Nlc3NpYmlsaXR5VGFibGUqIEFjY2Vzc2liaWxpdHlBUklB
R3JpZFJvdzo6cGFyZW50VGFibGUoKSBjb25zdAogICAgIC8vIG9ubHkgaGF2ZSAicm93IiBlbGVt
ZW50cywgYnV0IGlmIG5vdCwgd2Ugc3RpbGwgc2hvdWxkIGhhbmRsZSBpdCBncmFjZWZ1bGx5IGJ5
IGZpbmRpbmcgdGhlIHJpZ2h0IHRhYmxlLgogICAgIGZvciAoQWNjZXNzaWJpbGl0eU9iamVjdCog
cGFyZW50ID0gcGFyZW50T2JqZWN0KCk7IHBhcmVudDsgcGFyZW50ID0gcGFyZW50LT5wYXJlbnRP
YmplY3QoKSkgewogICAgICAgICAvLyBUaGUgcGFyZW50IHRhYmxlIGZvciBhbiBBUklBIGdyaWQg
cm93IHNob3VsZCBiZSBhbiBBUklBIHRhYmxlLgorICAgICAgICAvLyBVbmxlc3MgdGhlIHJvdyBp
cyBhIG5hdGl2ZSB0ciBlbGVtZW50LgogICAgICAgICBpZiAoaXM8QWNjZXNzaWJpbGl0eVRhYmxl
PigqcGFyZW50KSkgewogICAgICAgICAgICAgQWNjZXNzaWJpbGl0eVRhYmxlJiB0YWJsZVBhcmVu
dCA9IGRvd25jYXN0PEFjY2Vzc2liaWxpdHlUYWJsZT4oKnBhcmVudCk7Ci0gICAgICAgICAgICBp
ZiAodGFibGVQYXJlbnQuaXNFeHBvc2FibGVUaHJvdWdoQWNjZXNzaWJpbGl0eSgpICYmIHRhYmxl
UGFyZW50LmlzQXJpYVRhYmxlKCkpCisgICAgICAgICAgICBpZiAodGFibGVQYXJlbnQuaXNFeHBv
c2FibGVUaHJvdWdoQWNjZXNzaWJpbGl0eSgpICYmICh0YWJsZVBhcmVudC5pc0FyaWFUYWJsZSgp
IHx8IG5vZGUoKS0+aGFzVGFnTmFtZSh0clRhZykpKQogICAgICAgICAgICAgICAgIHJldHVybiAm
dGFibGVQYXJlbnQ7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0UmVhZE9ubHkuY3BwIGIvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdFJlYWRPbmx5LmNwcAppbmRleCA4YzdmMjdmMjU3YzMy
MmE5Y2E0NWNjOGQ2MDViMjFmMWY4MmUyNGEzLi42ODJhMzRhNWI4YzJlZTYzZDQ2MGZhMDVjMzgw
MmI0YzgyNjE0OTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0
aW9uRWZmZWN0UmVhZE9ubHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Bbmlt
YXRpb25FZmZlY3RSZWFkT25seS5jcHAKQEAgLTMzLDggKzMzLDYgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jb25zdCBhdXRvIHRpbWVFcHNpbG9uID0gU2Vjb25kczo6ZnJvbU1pbGxpc2Vj
b25kcygwLjAwMSk7Ci0KIEFuaW1hdGlvbkVmZmVjdFJlYWRPbmx5OjpBbmltYXRpb25FZmZlY3RS
ZWFkT25seShDbGFzc1R5cGUgY2xhc3NUeXBlLCBSZWY8QW5pbWF0aW9uRWZmZWN0VGltaW5nUmVh
ZE9ubHk+JiYgdGltaW5nKQogICAgIDogbV9jbGFzc1R5cGUoY2xhc3NUeXBlKQogICAgICwgbV90
aW1pbmcoV1RGTW92ZSh0aW1pbmcpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0FuaW1hdGlvblRpbWVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Bbmlt
YXRpb25UaW1lbGluZS5jcHAKaW5kZXggOThhYjFkOWE2ZGZiNThlNmE5ZTZkNjMxMzEyYThlOTcw
ZTExMGM0MS4uY2VmN2E1ODJjZGRhYWJiMzkzNzQ1ZDYzZjZiOGEzZmFhOWRhY2YzMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvblRpbWVsaW5lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUuY3BwCkBAIC0xMjcs
NiArMTI3LDEyIEBAIFZlY3RvcjxSZWZQdHI8V2ViQW5pbWF0aW9uPj4gQW5pbWF0aW9uVGltZWxp
bmU6OmFuaW1hdGlvbnNGb3JFbGVtZW50KEVsZW1lbnQmIGVsCiAgICAgcmV0dXJuIGFuaW1hdGlv
bnM7CiB9CiAKK3ZvaWQgQW5pbWF0aW9uVGltZWxpbmU6OmNhbmNlbEFuaW1hdGlvbnNGb3JFbGVt
ZW50KEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgZm9yIChjb25zdCBhdXRvJiBhbmltYXRpb24g
OiBhbmltYXRpb25zRm9yRWxlbWVudChlbGVtZW50KSkKKyAgICAgICAgYW5pbWF0aW9uLT5jYW5j
ZWwoKTsKK30KKwogdm9pZCBBbmltYXRpb25UaW1lbGluZTo6dXBkYXRlQ1NTQW5pbWF0aW9uc0Zv
ckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0eWxlLCBj
b25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCiB7CiAgICAgaWYgKGVsZW1lbnQuZG9jdW1lbnQo
KS5wYWdlQ2FjaGVTdGF0ZSgpICE9IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSkKQEAgLTE0NCw2
ICsxNTAsOSBAQCB2b2lkIEFuaW1hdGlvblRpbWVsaW5lOjp1cGRhdGVDU1NBbmltYXRpb25zRm9y
RWxlbWVudChFbGVtZW50JiBlbGVtZW50LCBjb25zdCBSZQogICAgICAgICByZXR1cm47CiAgICAg
fQogCisgICAgaWYgKG9sZFN0eWxlICYmIG9sZFN0eWxlLT5oYXNBbmltYXRpb25zKCkgJiYgbmV3
U3R5bGUuaGFzQW5pbWF0aW9ucygpICYmICoob2xkU3R5bGUtPmFuaW1hdGlvbnMoKSkgPT0gKihu
ZXdTdHlsZS5hbmltYXRpb25zKCkpKQorICAgICAgICByZXR1cm47CisKICAgICAvLyBGaXJzdCwg
Y29tcGlsZSB0aGUgbGlzdCBvZiBhbmltYXRpb24gbmFtZXMgdGhhdCB3ZXJlIGFwcGxpZWQgdG8g
dGhpcyBlbGVtZW50IHVwIHRvIHRoaXMgcG9pbnQuCiAgICAgSGFzaFNldDxTdHJpbmc+IG5hbWVz
T2ZQcmV2aW91c0FuaW1hdGlvbnM7CiAgICAgaWYgKG9sZFN0eWxlICYmIG9sZFN0eWxlLT5oYXNB
bmltYXRpb25zKCkpIHsKQEAgLTE4OCw2ICsxOTcsMTYgQEAgdm9pZCBBbmltYXRpb25UaW1lbGlu
ZTo6dXBkYXRlQ1NTQW5pbWF0aW9uc0ZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCwgY29uc3Qg
UmUKICAgICAgICAgbV9lbGVtZW50VG9DU1NBbmltYXRpb25CeU5hbWUucmVtb3ZlKCZlbGVtZW50
KTsKIH0KIAorc3RhdGljIGJvb2wgc2hvdWxkQmFja2luZ0FuaW1hdGlvbkJlQ29uc2lkZXJlZEZv
ckNTU1RyYW5zaXRpb24oY29uc3QgQW5pbWF0aW9uJiBiYWNraW5nQW5pbWF0aW9uKQoreworICAg
IGF1dG8gbW9kZSA9IGJhY2tpbmdBbmltYXRpb24uYW5pbWF0aW9uTW9kZSgpOworICAgIGlmICht
b2RlID09IEFuaW1hdGlvbjo6QW5pbWF0ZU5vbmUgfHwgbW9kZSA9PSBBbmltYXRpb246OkFuaW1h
dGVVbmtub3duUHJvcGVydHkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAobW9kZSA9
PSBBbmltYXRpb246OkFuaW1hdGVTaW5nbGVQcm9wZXJ0eSAmJiBiYWNraW5nQW5pbWF0aW9uLnBy
b3BlcnR5KCkgPT0gQ1NTUHJvcGVydHlJbnZhbGlkKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKIHZvaWQgQW5pbWF0aW9uVGltZWxpbmU6OnVwZGF0ZUNTU1Ry
YW5zaXRpb25zRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50LCBjb25zdCBSZW5kZXJTdHlsZSYg
bmV3U3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKIHsKICAgICBpZiAoZWxlbWVu
dC5kb2N1bWVudCgpLnBhZ2VDYWNoZVN0YXRlKCkgIT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hl
KQpAQCAtMjA1LDQ5ICsyMjQsNjUgQEAgdm9pZCBBbmltYXRpb25UaW1lbGluZTo6dXBkYXRlQ1NT
VHJhbnNpdGlvbnNGb3JFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFIKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBXZSBkbyBub3QgaGFuZGxlICJhbGwiIHRy
YW5zaXRpb25zIHlldC4KKyAgICAvLyBDcmVhdGUgb3IgZ2V0IHRoZSBDU1NUcmFuc2l0aW9ucyBi
eSBDU1MgcHJvcGVydHkgbmFtZSBtYXAgZm9yIHRoaXMgZWxlbWVudC4KKyAgICBhdXRvJiBjc3NU
cmFuc2l0aW9uc0J5UHJvcGVydHkgPSBtX2VsZW1lbnRUb0NTU1RyYW5zaXRpb25CeUNTU1Byb3Bl
cnR5SUQuZW5zdXJlKCZlbGVtZW50LCBbXSB7CisgICAgICAgIHJldHVybiBIYXNoTWFwPENTU1By
b3BlcnR5SUQsIFJlZlB0cjxDU1NUcmFuc2l0aW9uPj4geyB9OworICAgIH0pLml0ZXJhdG9yLT52
YWx1ZTsKIAogICAgIC8vIEZpcnN0LCBjb21waWxlIHRoZSBsaXN0IG9mIGJhY2tpbmcgYW5pbWF0
aW9ucyBhbmQgcHJvcGVydGllcyB0aGF0IHdlcmUgYXBwbGllZCB0byB0aGlzIGVsZW1lbnQgdXAg
dG8gdGhpcyBwb2ludC4KLSAgICBIYXNoU2V0PENTU1Byb3BlcnR5SUQ+IHByZXZpb3VzUHJvcGVy
dGllczsKKyAgICBhdXRvIHByZXZpb3VzUHJvcGVydGllcyA9IGNvcHlUb1ZlY3Rvcihjc3NUcmFu
c2l0aW9uc0J5UHJvcGVydHkua2V5cygpKTsKICAgICBIYXNoU2V0PGNvbnN0IEFuaW1hdGlvbio+
IHByZXZpb3VzQmFja2luZ0FuaW1hdGlvbnM7CiAgICAgaWYgKG9sZFN0eWxlICYmIG9sZFN0eWxl
LT5oYXNUcmFuc2l0aW9ucygpKSB7CiAgICAgICAgIGF1dG8qIHByZXZpb3VzVHJhbnNpdGlvbnMg
PSBvbGRTdHlsZS0+dHJhbnNpdGlvbnMoKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBwcmV2aW91c1RyYW5zaXRpb25zLT5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgYXV0byYg
YW5pbWF0aW9uID0gcHJldmlvdXNUcmFuc2l0aW9ucy0+YW5pbWF0aW9uKGkpOwotICAgICAgICAg
ICAgYXV0byBwcmV2aW91c1RyYW5zaXRpb25Qcm9wZXJ0eSA9IGFuaW1hdGlvbi5wcm9wZXJ0eSgp
OwotICAgICAgICAgICAgaWYgKHByZXZpb3VzVHJhbnNpdGlvblByb3BlcnR5ICE9IENTU1Byb3Bl
cnR5SW52YWxpZCkgewotICAgICAgICAgICAgICAgIHByZXZpb3VzUHJvcGVydGllcy5hZGQocHJl
dmlvdXNUcmFuc2l0aW9uUHJvcGVydHkpOwotICAgICAgICAgICAgICAgIHByZXZpb3VzQmFja2lu
Z0FuaW1hdGlvbnMuYWRkKCZhbmltYXRpb24pOwotICAgICAgICAgICAgfQorICAgICAgICAgICAg
YXV0byYgYmFja2luZ0FuaW1hdGlvbiA9IHByZXZpb3VzVHJhbnNpdGlvbnMtPmFuaW1hdGlvbihp
KTsKKyAgICAgICAgICAgIGlmIChzaG91bGRCYWNraW5nQW5pbWF0aW9uQmVDb25zaWRlcmVkRm9y
Q1NTVHJhbnNpdGlvbihiYWNraW5nQW5pbWF0aW9uKSkKKyAgICAgICAgICAgICAgICBwcmV2aW91
c0JhY2tpbmdBbmltYXRpb25zLmFkZCgmYmFja2luZ0FuaW1hdGlvbik7CiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICAvLyBDcmVhdGUgb3IgZ2V0IHRoZSBDU1NUcmFuc2l0aW9ucyBieSBDU1MgcHJv
cGVydHkgbmFtZSBtYXAgZm9yIHRoaXMgZWxlbWVudC4KLSAgICBhdXRvJiBjc3NUcmFuc2l0aW9u
c0J5UHJvcGVydHkgPSBtX2VsZW1lbnRUb0NTU1RyYW5zaXRpb25CeUNTU1Byb3BlcnR5SUQuZW5z
dXJlKCZlbGVtZW50LCBbXSB7Ci0gICAgICAgIHJldHVybiBIYXNoTWFwPENTU1Byb3BlcnR5SUQs
IFJlZlB0cjxDU1NUcmFuc2l0aW9uPj4geyB9OwotICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKLQog
ICAgIGlmIChhdXRvKiBjdXJyZW50VHJhbnNpdGlvbnMgPSBuZXdTdHlsZS50cmFuc2l0aW9ucygp
KSB7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY3VycmVudFRyYW5zaXRpb25zLT5z
aXplKCk7ICsraSkgewogICAgICAgICAgICAgYXV0byYgYmFja2luZ0FuaW1hdGlvbiA9IGN1cnJl
bnRUcmFuc2l0aW9ucy0+YW5pbWF0aW9uKGkpOwotICAgICAgICAgICAgYXV0byBwcm9wZXJ0eSA9
IGJhY2tpbmdBbmltYXRpb24ucHJvcGVydHkoKTsKLSAgICAgICAgICAgIGlmIChwcm9wZXJ0eSA9
PSBDU1NQcm9wZXJ0eUludmFsaWQpCisgICAgICAgICAgICBpZiAoIXNob3VsZEJhY2tpbmdBbmlt
YXRpb25CZUNvbnNpZGVyZWRGb3JDU1NUcmFuc2l0aW9uKGJhY2tpbmdBbmltYXRpb24pKQogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgcHJldmlvdXNQcm9wZXJ0aWVzLnJl
bW92ZShwcm9wZXJ0eSk7Ci0gICAgICAgICAgICAvLyBXZSd2ZSBmb3VuZCBhIGJhY2tpbmcgYW5p
bWF0aW9uIHRoYXQgd2UgZGlkbid0IGtub3cgYWJvdXQgZm9yIGEgdmFsaWQgcHJvcGVydHkuCi0g
ICAgICAgICAgICBpZiAoIXByZXZpb3VzQmFja2luZ0FuaW1hdGlvbnMuY29udGFpbnMoJmJhY2tp
bmdBbmltYXRpb24pKSB7Ci0gICAgICAgICAgICAgICAgLy8gSWYgd2UgYWxyZWFkeSBoYWQgYSBD
U1NUcmFuc2l0aW9uIGZvciB0aGlzIHByb3BlcnR5LCBjaGVjayB3aGV0aGVyIGl0cyB0aW1pbmcg
cHJvcGVydGllcyBtYXRjaCB0aGUgY3VycmVudCBiYWNraW5nCi0gICAgICAgICAgICAgICAgLy8g
YW5pbWF0aW9uJ3MgcHJvcGVydGllcyBhbmQgd2hldGhlciBpdHMgYmxlbmRpbmcga2V5ZnJhbWVz
IG1hdGNoIHRoZSBvbGQgYW5kIG5ldyBzdHlsZXMuIElmIHRoZXkgZG8sIG1vdmUgb24gdG8gdGhl
Ci0gICAgICAgICAgICAgICAgLy8gbmV4dCB0cmFuc2l0aW9uLCBvdGhlcndpc2UgZGVsZXRlIHRo
ZSBwcmV2aW91cyBDU1NUcmFuc2l0aW9uIG9iamVjdCwgYW5kIGNyZWF0ZSBhIG5ldyBvbmUuCi0g
ICAgICAgICAgICAgICAgaWYgKGNzc1RyYW5zaXRpb25zQnlQcm9wZXJ0eS5jb250YWlucyhwcm9w
ZXJ0eSkpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGNzc1RyYW5zaXRpb25zQnlQcm9wZXJ0
eS5nZXQocHJvcGVydHkpLT5tYXRjaGVzQmFja2luZ0FuaW1hdGlvbkFuZFN0eWxlcyhiYWNraW5n
QW5pbWF0aW9uLCBvbGRTdHlsZSwgbmV3U3R5bGUpKQorICAgICAgICAgICAgYXV0byBwcm9wZXJ0
eSA9IGJhY2tpbmdBbmltYXRpb24ucHJvcGVydHkoKTsKKyAgICAgICAgICAgIGJvb2wgdHJhbnNp
dGlvbnNBbGxQcm9wZXJ0aWVzID0gYmFja2luZ0FuaW1hdGlvbi5hbmltYXRpb25Nb2RlKCkgPT0g
QW5pbWF0aW9uOjpBbmltYXRlQWxsOworICAgICAgICAgICAgYXV0byBudW1iZXJPZlByb3BlcnRp
ZXMgPSBDU1NQcm9wZXJ0eUFuaW1hdGlvbjo6Z2V0TnVtUHJvcGVydGllcygpOworICAgICAgICAg
ICAgLy8gSW4gdGhlICJ0cmFuc2l0aW9uLXByb3BlcnR5OiBhbGwiIGNhc2UsIHdoZXJlIHRoZSBh
bmltYXRpb24ncyBtb2RlIGlzIHNldCB0byBBbmltYXRlQWxsLAorICAgICAgICAgICAgLy8gdGhl
IHByb3BlcnR5IHdpbGwgYmUgc2V0IHRvIENTU1Byb3BlcnR5SW52YWxpZCBhbmQgd2UgbmVlZCB0
byBpdGVyYXRlIG92ZXIgYWxsIGtub3duCisgICAgICAgICAgICAvLyBDU1MgcHJvcGVydGllcyBh
bmQgc2VlIGlmIHRoZXkgaGF2ZSBtaXMtbWF0Y2hpbmcgdmFsdWVzIGluIHRoZSBvbGQgYW5kIG5l
dyBzdHlsZXMsIHdoaWNoCisgICAgICAgICAgICAvLyBtZWFucyB0aGV5IHNob3VsZCBoYXZlIGEg
Q1NTVHJhbnNpdGlvbiBjcmVhdGVkIGZvciB0aGVtLgorICAgICAgICAgICAgLy8gV2UgaW1wbGVt
ZW50IGEgc2luZ2xlIGxvb3Agd2hpY2ggaGFuZGxlcyB0aGUgImFsbCIgY2FzZSBhbmQgdGhlIHNw
ZWNpZmllZCBwcm9wZXJ0eSBjYXNlCisgICAgICAgICAgICAvLyBieSB1c2luZyB0aGUgcHJlLXNl
dCBwcm9wZXJ0eSBhYm92ZSBpbiB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IGNhc2UgYW5kIGJyZWFr
aW5nIG91dCBvZgorICAgICAgICAgICAgLy8gdGhlIGxvb3AgYWZ0ZXIgdGhlIGZpcnN0IGNvbXBs
ZXRlIGl0ZXJhdGlvbi4KKyAgICAgICAgICAgIGZvciAoaW50IHByb3BlcnR5SW5kZXggPSAwOyBw
cm9wZXJ0eUluZGV4IDwgbnVtYmVyT2ZQcm9wZXJ0aWVzOyArK3Byb3BlcnR5SW5kZXgpIHsKKyAg
ICAgICAgICAgICAgICBpZiAodHJhbnNpdGlvbnNBbGxQcm9wZXJ0aWVzKSB7CisgICAgICAgICAg
ICAgICAgICAgIGJvb2wgaXNTaG9ydGhhbmQ7CisgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5
ID0gQ1NTUHJvcGVydHlBbmltYXRpb246OmdldFByb3BlcnR5QXRJbmRleChwcm9wZXJ0eUluZGV4
LCBpc1Nob3J0aGFuZCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChpc1Nob3J0aGFuZCkKICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICByZW1v
dmVEZWNsYXJhdGl2ZUFuaW1hdGlvbihjc3NUcmFuc2l0aW9uc0J5UHJvcGVydHkudGFrZShwcm9w
ZXJ0eSkpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHJvcGVydHlJbmRleCkgeworICAg
ICAgICAgICAgICAgICAgICAvLyBXZSBvbmx5IGdvIG9uY2UgdGhyb3VnaCB0aGlzIGxvb3AgaWYg
d2UgYXJlIHRyYW5zaXRpb25pbmcgYSBzaW5nbGUgcHJvcGVydHkuCisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGJvb2wgaGFk
UHJvcGVydHkgPSBwcmV2aW91c1Byb3BlcnRpZXMucmVtb3ZlRmlyc3QocHJvcGVydHkpOworICAg
ICAgICAgICAgICAgIC8vIFdlJ3ZlIGZvdW5kIGEgYmFja2luZyBhbmltYXRpb24gdGhhdCB3ZSBk
aWRuJ3Qga25vdyBhYm91dCBmb3IgYSB2YWxpZCBwcm9wZXJ0eS4KKyAgICAgICAgICAgICAgICBp
ZiAoIXByZXZpb3VzQmFja2luZ0FuaW1hdGlvbnMuY29udGFpbnMoJmJhY2tpbmdBbmltYXRpb24p
KSB7CisgICAgICAgICAgICAgICAgICAgIC8vIElmIHdlIGFscmVhZHkgaGFkIGEgQ1NTVHJhbnNp
dGlvbiBmb3IgdGhpcyBwcm9wZXJ0eSwgY2hlY2sgd2hldGhlciBpdHMgdGltaW5nIHByb3BlcnRp
ZXMgbWF0Y2ggdGhlIGN1cnJlbnQgYmFja2luZworICAgICAgICAgICAgICAgICAgICAvLyBhbmlt
YXRpb24ncyBwcm9wZXJ0aWVzIGFuZCB3aGV0aGVyIGl0cyBibGVuZGluZyBrZXlmcmFtZXMgbWF0
Y2ggdGhlIG9sZCBhbmQgbmV3IHN0eWxlcy4gSWYgdGhleSBkbywgbW92ZSBvbiB0byB0aGUKKyAg
ICAgICAgICAgICAgICAgICAgLy8gbmV4dCB0cmFuc2l0aW9uLCBvdGhlcndpc2UgZGVsZXRlIHRo
ZSBwcmV2aW91cyBDU1NUcmFuc2l0aW9uIG9iamVjdCwgYW5kIGNyZWF0ZSBhIG5ldyBvbmUuCisg
ICAgICAgICAgICAgICAgICAgIGlmIChoYWRQcm9wZXJ0eSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGNzc1RyYW5zaXRpb25zQnlQcm9wZXJ0eS5nZXQocHJvcGVydHkpLT5tYXRjaGVz
QmFja2luZ0FuaW1hdGlvbkFuZFN0eWxlcyhiYWNraW5nQW5pbWF0aW9uLCBvbGRTdHlsZSwgbmV3
U3R5bGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAg
ICAgICAgICAgICAgICAgcmVtb3ZlRGVjbGFyYXRpdmVBbmltYXRpb24oY3NzVHJhbnNpdGlvbnNC
eVByb3BlcnR5LnRha2UocHJvcGVydHkpKTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICAvLyBOb3cgd2UgY2FuIGNyZWF0ZSBhIG5ldyBDU1NUcmFuc2l0aW9uIHdp
dGggdGhlIG5ldyBiYWNraW5nIGFuaW1hdGlvbiBwcm92aWRlZCBpdCBoYXMgYSB2YWxpZAorICAg
ICAgICAgICAgICAgICAgICAvLyBkdXJhdGlvbiBhbmQgdGhlIGZyb20gYW5kIHRvIHZhbHVlcyBh
cmUgZGlzdGluY3QuCisgICAgICAgICAgICAgICAgICAgIGlmIChiYWNraW5nQW5pbWF0aW9uLmR1
cmF0aW9uKCkgPiAwICYmIG9sZFN0eWxlICYmICFDU1NQcm9wZXJ0eUFuaW1hdGlvbjo6cHJvcGVy
dGllc0VxdWFsKHByb3BlcnR5LCBvbGRTdHlsZSwgJm5ld1N0eWxlKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNzc1RyYW5zaXRpb25zQnlQcm9wZXJ0eS5zZXQocHJvcGVydHksIENTU1RyYW5z
aXRpb246OmNyZWF0ZShlbGVtZW50LCBwcm9wZXJ0eSwgYmFja2luZ0FuaW1hdGlvbiwgb2xkU3R5
bGUsIG5ld1N0eWxlKSk7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIC8vIE5v
dyB3ZSBjYW4gY3JlYXRlIGEgbmV3IENTU1RyYW5zaXRpb24gd2l0aCB0aGUgbmV3IGJhY2tpbmcg
YW5pbWF0aW9uIHByb3ZpZGVkIGl0IGhhcyBhIHZhbGlkCi0gICAgICAgICAgICAgICAgLy8gZHVy
YXRpb24gYW5kIHRoZSBmcm9tIGFuZCB0byB2YWx1ZXMgYXJlIGRpc3RpbmN0LgotICAgICAgICAg
ICAgICAgIGlmIChiYWNraW5nQW5pbWF0aW9uLmR1cmF0aW9uKCkgPiAwICYmIG9sZFN0eWxlICYm
ICFDU1NQcm9wZXJ0eUFuaW1hdGlvbjo6cHJvcGVydGllc0VxdWFsKHByb3BlcnR5LCBvbGRTdHls
ZSwgJm5ld1N0eWxlKSkKLSAgICAgICAgICAgICAgICAgICAgY3NzVHJhbnNpdGlvbnNCeVByb3Bl
cnR5LnNldChwcm9wZXJ0eSwgQ1NTVHJhbnNpdGlvbjo6Y3JlYXRlKGVsZW1lbnQsIGJhY2tpbmdB
bmltYXRpb24sIG9sZFN0eWxlLCBuZXdTdHlsZSkpOwogICAgICAgICAgICAgfQogICAgICAgICB9
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvblRp
bWVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUuaApp
bmRleCA0MzgzZDczNjM0Njc5NmEzZmY3NWExOGFjMWNlOWU0NDNlZDM2MTdjLi5iZmI4NjQwY2Vj
MTI5MmQ1MjE0MmE3ODJkNDk2N2NhODE4ZTA1NWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vQW5pbWF0aW9uVGltZWxpbmUuaApAQCAtNTksNiArNTksNyBAQCBwdWJsaWM6CiAKICAg
ICBjb25zdCBMaXN0SGFzaFNldDxSZWZQdHI8V2ViQW5pbWF0aW9uPj4mIGFuaW1hdGlvbnMoKSBj
b25zdCB7IHJldHVybiBtX2FuaW1hdGlvbnM7IH0KICAgICBWZWN0b3I8UmVmUHRyPFdlYkFuaW1h
dGlvbj4+IGFuaW1hdGlvbnNGb3JFbGVtZW50KEVsZW1lbnQmKTsKKyAgICB2b2lkIGNhbmNlbEFu
aW1hdGlvbnNGb3JFbGVtZW50KEVsZW1lbnQmKTsKICAgICB2b2lkIGFuaW1hdGlvbldhc0FkZGVk
VG9FbGVtZW50KFdlYkFuaW1hdGlvbiYsIEVsZW1lbnQmKTsKICAgICB2b2lkIGFuaW1hdGlvbldh
c1JlbW92ZWRGcm9tRWxlbWVudChXZWJBbmltYXRpb24mLCBFbGVtZW50Jik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5jcHAKaW5kZXggODczZGJjMDc0YTRiZGRkYzlh
YzlhMDU4MDRlNWE5MGJkZjg5YzhmYi4uYmQ4YzVmZWNiMGY3ZjczMTYzNmE3NGZmYmRjZjkyZWUx
NWE3Y2I5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5jcHAKQEAg
LTkwLDcgKzkwLDggQEAgdm9pZCBDU1NBbmltYXRpb246OnN5bmNQcm9wZXJ0aWVzV2l0aEJhY2tp
bmdBbmltYXRpb24oKQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICB0aW1pbmctPnNldEl0
ZXJhdGlvbnMoYW5pbWF0aW9uLml0ZXJhdGlvbkNvdW50KCkpOworICAgIGF1dG8gaXRlcmF0aW9u
Q291bnQgPSBhbmltYXRpb24uaXRlcmF0aW9uQ291bnQoKTsKKyAgICB0aW1pbmctPnNldEl0ZXJh
dGlvbnMoaXRlcmF0aW9uQ291bnQgPT0gQW5pbWF0aW9uOjpJdGVyYXRpb25Db3VudEluZmluaXRl
ID8gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpIDogaXRlcmF0aW9uQ291
bnQpOwogCiAgICAgLy8gU3luY2hyb25pemUgdGhlIHBsYXkgc3RhdGUKICAgICBpZiAoYmFja2lu
Z0FuaW1hdGlvbigpLnBsYXlTdGF0ZSgpID09IEFuaW1QbGF5U3RhdGVQbGF5aW5nICYmIHBsYXlT
dGF0ZSgpID09IFdlYkFuaW1hdGlvbjo6UGxheVN0YXRlOjpQYXVzZWQpCkBAIC0xMDEsNCArMTAy
LDEyIEBAIHZvaWQgQ1NTQW5pbWF0aW9uOjpzeW5jUHJvcGVydGllc1dpdGhCYWNraW5nQW5pbWF0
aW9uKCkKICAgICB1bnN1c3BlbmRFZmZlY3RJbnZhbGlkYXRpb24oKTsKIH0KIAorc3RkOjpvcHRp
b25hbDxkb3VibGU+IENTU0FuaW1hdGlvbjo6YmluZGluZ3NDdXJyZW50VGltZSgpIGNvbnN0Cit7
CisgICAgYXV0byBjdXJyZW50VGltZSA9IFdlYkFuaW1hdGlvbjo6YmluZGluZ3NDdXJyZW50VGlt
ZSgpOworICAgIGlmIChjdXJyZW50VGltZSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWF4KDAuMCwg
c3RkOjptaW4oY3VycmVudFRpbWUudmFsdWUoKSwgZWZmZWN0KCktPnRpbWluZygpLT5hY3RpdmVE
dXJhdGlvbigpLm1pbGxpc2Vjb25kcygpKSk7CisgICAgcmV0dXJuIGN1cnJlbnRUaW1lOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vQ1NTQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTQW5pbWF0
aW9uLmgKaW5kZXggZDQ2ODNjN2NjMDBiMDdlZjdiMjgzNmJlYjg2YjkyMzQ3Yjg0ZmJlYi4uNTEy
NjRkYmJjMWQzOGQyNDI4OWQ0ZTMxYzExNGEwZDhhMWIxM2M5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9DU1NBbmltYXRpb24uaApAQCAtNDEsNiArNDEsOCBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpc0NTU0FuaW1hdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICBj
b25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUoKSBjb25zdCB7IHJldHVybiBtX2FuaW1hdGlvbk5h
bWU7IH0KIAorICAgIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPiBiaW5kaW5nc0N1cnJlbnRUaW1lKCkg
Y29uc3QgZmluYWw7CisKIHByb3RlY3RlZDoKICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgRWxl
bWVudCYpIGZpbmFsOwogICAgIHZvaWQgc3luY1Byb3BlcnRpZXNXaXRoQmFja2luZ0FuaW1hdGlv
bigpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1RyYW5z
aXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uY3BwCmlu
ZGV4IDJkZTJlYmMwNjg2NGE3MjVkMjBlNDQ2ZTc1ZWM1ZjhmNTIwZTZjMjAuLjRkMWQ3OWIyZTA3
N2Q1YjQ2YWRkNTU2YTU5YmQyOWE2NGM0MGQ4NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9DU1NUcmFuc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vQ1NTVHJhbnNpdGlvbi5jcHAKQEAgLTMyLDI0ICszMiwyNSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLVJlZjxDU1NUcmFuc2l0aW9uPiBDU1NUcmFuc2l0aW9uOjpjcmVhdGUoRWxlbWVu
dCYgdGFyZ2V0LCBjb25zdCBBbmltYXRpb24mIGJhY2tpbmdBbmltYXRpb24sIGNvbnN0IFJlbmRl
clN0eWxlKiBvbGRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0eWxlKQorUmVmPENTU1Ry
YW5zaXRpb24+IENTU1RyYW5zaXRpb246OmNyZWF0ZShFbGVtZW50JiB0YXJnZXQsIENTU1Byb3Bl
cnR5SUQgcHJvcGVydHksIGNvbnN0IEFuaW1hdGlvbiYgYmFja2luZ0FuaW1hdGlvbiwgY29uc3Qg
UmVuZGVyU3R5bGUqIG9sZFN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3U3R5bGUpCiB7Ci0g
ICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IENTU1RyYW5zaXRpb24odGFyZ2V0LCBiYWNr
aW5nQW5pbWF0aW9uKSk7Ci0gICAgcmVzdWx0LT5tX3RyYW5zaXRpb25Qcm9wZXJ0eSA9IGJhY2tp
bmdBbmltYXRpb24ucHJvcGVydHkoKTsKKyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcg
Q1NTVHJhbnNpdGlvbih0YXJnZXQsIHByb3BlcnR5LCBiYWNraW5nQW5pbWF0aW9uKSk7CiAgICAg
cmVzdWx0LT5pbml0aWFsaXplKHRhcmdldCk7CiAgICAgZG93bmNhc3Q8S2V5ZnJhbWVFZmZlY3RS
ZWFkT25seT4ocmVzdWx0LT5lZmZlY3QoKSktPmNvbXB1dGVDU1NUcmFuc2l0aW9uQmxlbmRpbmdL
ZXlmcmFtZXMob2xkU3R5bGUsIG5ld1N0eWxlKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1D
U1NUcmFuc2l0aW9uOjpDU1NUcmFuc2l0aW9uKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IEFuaW1h
dGlvbiYgYmFja2luZ0FuaW1hdGlvbikKK0NTU1RyYW5zaXRpb246OkNTU1RyYW5zaXRpb24oRWxl
bWVudCYgZWxlbWVudCwgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgY29uc3QgQW5pbWF0aW9uJiBi
YWNraW5nQW5pbWF0aW9uKQogICAgIDogRGVjbGFyYXRpdmVBbmltYXRpb24oZWxlbWVudCwgYmFj
a2luZ0FuaW1hdGlvbikKKyAgICAsIG1fcHJvcGVydHkocHJvcGVydHkpCiB7CiB9CiAKIGJvb2wg
Q1NTVHJhbnNpdGlvbjo6bWF0Y2hlc0JhY2tpbmdBbmltYXRpb25BbmRTdHlsZXMoY29uc3QgQW5p
bWF0aW9uJiBuZXdCYWNraW5nQW5pbWF0aW9uLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUs
IGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHlsZSkgY29uc3QKIHsKLSAgICBib29sIGJhY2tpbmdB
bmltYXRpb25zTWF0Y2ggPSBiYWNraW5nQW5pbWF0aW9uKCkgPT0gbmV3QmFja2luZ0FuaW1hdGlv
bjsKLSAgICBpZiAoIW9sZFN0eWxlKQorICAgIC8vIFNlZSBpZiB0aGUgYW5pbWF0aW9ucyBtYXRj
aCwgZXhjbHVkaW5nIHRoZSBwcm9wZXJ0eSBzaW5jZSB3ZSBjYW4gbW92ZSBmcm9tIGFuICJhbGwi
IHRyYW5zaXRpb24gdG8gYW4gZXhwbGljaXQgcHJvcGVydHkgdHJhbnNpdGlvbi4KKyAgICBib29s
IGJhY2tpbmdBbmltYXRpb25zTWF0Y2ggPSBiYWNraW5nQW5pbWF0aW9uKCkuYW5pbWF0aW9uc01h
dGNoKG5ld0JhY2tpbmdBbmltYXRpb24sIGZhbHNlKTsKKyAgICBpZiAoIW9sZFN0eWxlIHx8ICFl
ZmZlY3QoKSkKICAgICAgICAgcmV0dXJuIGJhY2tpbmdBbmltYXRpb25zTWF0Y2g7CiAgICAgcmV0
dXJuIGJhY2tpbmdBbmltYXRpb25zTWF0Y2ggJiYgIWRvd25jYXN0PEtleWZyYW1lRWZmZWN0UmVh
ZE9ubHk+KGVmZmVjdCgpKS0+c3R5bGVzV291bGRZaWVsZE5ld0NTU1RyYW5zaXRpb25zQmxlbmRp
bmdLZXlmcmFtZXMoKm9sZFN0eWxlLCBuZXdTdHlsZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0NTU1RyYW5zaXRpb24uaAppbmRleCBlOGEwNTNhYzJjMTFhZjBhOTdjNWFiNzNhNDQ0YjAw
YzE4NDY2ODE2Li43ZDNlZWVlZTRjNmExZDFhNGQ3N2NiODdhNzI5OWZmMDhjMjhmNWFkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTVHJhbnNpdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NUcmFuc2l0aW9uLmgKQEAgLTM3LDE5ICszNywyMCBA
QCBjbGFzcyBSZW5kZXJTdHlsZTsKIAogY2xhc3MgQ1NTVHJhbnNpdGlvbiBmaW5hbCA6IHB1Ymxp
YyBEZWNsYXJhdGl2ZUFuaW1hdGlvbiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxDU1NUcmFu
c2l0aW9uPiBjcmVhdGUoRWxlbWVudCYsIGNvbnN0IEFuaW1hdGlvbiYsIGNvbnN0IFJlbmRlclN0
eWxlKiBvbGRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0eWxlKTsKKyAgICBzdGF0aWMg
UmVmPENTU1RyYW5zaXRpb24+IGNyZWF0ZShFbGVtZW50JiwgQ1NTUHJvcGVydHlJRCwgY29uc3Qg
QW5pbWF0aW9uJiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlLCBjb25zdCBSZW5kZXJTdHls
ZSYgbmV3U3R5bGUpOwogICAgIH5DU1NUcmFuc2l0aW9uKCkgPSBkZWZhdWx0OwogCiAgICAgYm9v
bCBpc0NTU1RyYW5zaXRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0gICAg
U3RyaW5nIHRyYW5zaXRpb25Qcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJuIGdldFByb3BlcnR5TmFt
ZVN0cmluZyhtX3RyYW5zaXRpb25Qcm9wZXJ0eSk7IH0KKyAgICBTdHJpbmcgdHJhbnNpdGlvblBy
b3BlcnR5KCkgY29uc3QgeyByZXR1cm4gZ2V0UHJvcGVydHlOYW1lU3RyaW5nKG1fcHJvcGVydHkp
OyB9CisgICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvcGVy
dHk7IH0KIAogICAgIGJvb2wgbWF0Y2hlc0JhY2tpbmdBbmltYXRpb25BbmRTdHlsZXMoY29uc3Qg
QW5pbWF0aW9uJiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlLCBjb25zdCBSZW5kZXJTdHls
ZSYgbmV3U3R5bGUpIGNvbnN0OwogICAgIGJvb2wgY2FuQmVMaXN0ZWQoKSBjb25zdCBmaW5hbDsK
IAogcHJpdmF0ZToKLSAgICBDU1NUcmFuc2l0aW9uKEVsZW1lbnQmLCBjb25zdCBBbmltYXRpb24m
KTsKKyAgICBDU1NUcmFuc2l0aW9uKEVsZW1lbnQmLCBDU1NQcm9wZXJ0eUlELCBjb25zdCBBbmlt
YXRpb24mKTsKIAotICAgIENTU1Byb3BlcnR5SUQgbV90cmFuc2l0aW9uUHJvcGVydHk7CisgICAg
Q1NTUHJvcGVydHlJRCBtX3Byb3BlcnR5OwogCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vRGVjbGFyYXRpdmVBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9uLmNwcAppbmRleCAyMjdjYTY0M2UxMTgxMjI3
YmE1ZDE4ZDVjZTkxNDc2MTliMzI4OWI3Li4zYjkzMzc4ZWI3NjdiNTVjYmFkODAzZjRhYTM1ZDVl
YjJlMjc5ZDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRGVjbGFyYXRp
dmVBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9EZWNsYXJhdGl2
ZUFuaW1hdGlvbi5jcHAKQEAgLTY4LDYgKzY4LDggQEAgdm9pZCBEZWNsYXJhdGl2ZUFuaW1hdGlv
bjo6aW5pdGlhbGl6ZShjb25zdCBFbGVtZW50JiB0YXJnZXQpCiAgICAgc3luY1Byb3BlcnRpZXNX
aXRoQmFja2luZ0FuaW1hdGlvbigpOwogICAgIGlmIChiYWNraW5nQW5pbWF0aW9uKCkucGxheVN0
YXRlKCkgPT0gQW5pbVBsYXlTdGF0ZVBsYXlpbmcpCiAgICAgICAgIHBsYXkoKTsKKyAgICBlbHNl
CisgICAgICAgIHBhdXNlKCk7CiAKICAgICB1bnN1c3BlbmRFZmZlY3RJbnZhbGlkYXRpb24oKTsK
IH0KQEAgLTc5LDcgKzgxLDYgQEAgdm9pZCBEZWNsYXJhdGl2ZUFuaW1hdGlvbjo6c3luY1Byb3Bl
cnRpZXNXaXRoQmFja2luZ0FuaW1hdGlvbigpCiAgICAgYXV0byogdGltaW5nID0gZWZmZWN0KCkt
PnRpbWluZygpOwogICAgIHRpbWluZy0+c2V0RGVsYXkoU2Vjb25kcyhtX2JhY2tpbmdBbmltYXRp
b24tPmRlbGF5KCkpKTsKICAgICB0aW1pbmctPnNldEl0ZXJhdGlvbkR1cmF0aW9uKFNlY29uZHMo
bV9iYWNraW5nQW5pbWF0aW9uLT5kdXJhdGlvbigpKSk7Ci0gICAgdGltaW5nLT5zZXRUaW1pbmdG
dW5jdGlvbihtX2JhY2tpbmdBbmltYXRpb24tPnRpbWluZ0Z1bmN0aW9uKCkpOwogCiAgICAgdW5z
dXNwZW5kRWZmZWN0SW52YWxpZGF0aW9uKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vRG9jdW1lbnRUaW1lbGluZS5jcHAKaW5kZXggNDExZWYzYzQ5NjJkNWZmZDA2YzI1ZWFkMjZj
NDM5NjQ1NWY4NjY5NS4uYmFiMTJmYjNiNTAwNTJjOTU1YTg0MTlmNzEwMDU1N2ViODEyMmQ1OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcApAQCAt
MTI3LDExICsxMjcsMTAgQEAgdm9pZCBEb2N1bWVudFRpbWVsaW5lOjp1cGRhdGVBbmltYXRpb25T
Y2hlZHVsZSgpCiAKICAgICBtX25lZWRzVXBkYXRlQW5pbWF0aW9uU2NoZWR1bGUgPSBmYWxzZTsK
IAotICAgIFNlY29uZHMgbm93ID0gY3VycmVudFRpbWUoKS52YWx1ZSgpOwogICAgIFNlY29uZHMg
c2NoZWR1bGVEZWxheSA9IFNlY29uZHM6OmluZmluaXR5KCk7CiAKICAgICBmb3IgKGNvbnN0IGF1
dG8mIGFuaW1hdGlvbiA6IGFuaW1hdGlvbnMoKSkgewotICAgICAgICBhdXRvIGFuaW1hdGlvblRp
bWVUb05leHRSZXF1aXJlZFRpY2sgPSBhbmltYXRpb24tPnRpbWVUb05leHRSZXF1aXJlZFRpY2so
bm93KTsKKyAgICAgICAgYXV0byBhbmltYXRpb25UaW1lVG9OZXh0UmVxdWlyZWRUaWNrID0gYW5p
bWF0aW9uLT50aW1lVG9OZXh0UmVxdWlyZWRUaWNrKCk7CiAgICAgICAgIGlmIChhbmltYXRpb25U
aW1lVG9OZXh0UmVxdWlyZWRUaWNrIDwgYW5pbWF0aW9uSW50ZXJ2YWwpIHsKICAgICAgICAgICAg
IHNjaGVkdWxlQW5pbWF0aW9uUmVzb2x1dGlvbigpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAt
MTgwLDcgKzE3OSw3IEBAIHZvaWQgRG9jdW1lbnRUaW1lbGluZTo6dXBkYXRlQW5pbWF0aW9ucygp
CiAgICAgICAgIG1fZG9jdW1lbnQtPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKICAgICB9CiAKLSAg
ICBmb3IgKGF1dG8gYW5pbWF0aW9uIDogbV9hY2NlbGVyYXRlZEFuaW1hdGlvbnNQZW5kaW5nUnVu
bmluZ1N0YXRlQ2hhbmdlKQorICAgIGZvciAoYXV0byYgYW5pbWF0aW9uIDogbV9hY2NlbGVyYXRl
ZEFuaW1hdGlvbnNQZW5kaW5nUnVubmluZ1N0YXRlQ2hhbmdlKQogICAgICAgICBhbmltYXRpb24t
PnN0YXJ0T3JTdG9wQWNjZWxlcmF0ZWQoKTsKICAgICBtX2FjY2VsZXJhdGVkQW5pbWF0aW9uc1Bl
bmRpbmdSdW5uaW5nU3RhdGVDaGFuZ2UuY2xlYXIoKTsKIApAQCAtMTkzLDcgKzE5Miw3IEBAIHN0
ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gRG9jdW1lbnRUaW1lbGluZTo6YW5pbWF0ZWRTdHls
ZUZvclJlbmRlcmVyKFJlbmRlckVsCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBy
ZXN1bHQ7CiAKICAgICBpZiAoYXV0byogZWxlbWVudCA9IHJlbmRlcmVyLmVsZW1lbnQoKSkgewot
ICAgICAgICBmb3IgKGF1dG8gYW5pbWF0aW9uIDogYW5pbWF0aW9uc0ZvckVsZW1lbnQoKmVsZW1l
bnQpKSB7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgYW5pbWF0aW9uIDogYW5pbWF0aW9uc0Zv
ckVsZW1lbnQoKmVsZW1lbnQpKSB7CiAgICAgICAgICAgICBpZiAoaXM8S2V5ZnJhbWVFZmZlY3RS
ZWFkT25seT4oYW5pbWF0aW9uLT5lZmZlY3QoKSkpCiAgICAgICAgICAgICAgICAgZG93bmNhc3Q8
S2V5ZnJhbWVFZmZlY3RSZWFkT25seT4oYW5pbWF0aW9uLT5lZmZlY3QoKSktPmdldEFuaW1hdGVk
U3R5bGUocmVzdWx0KTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0tleWZyYW1lRWZmZWN0UmVhZE9ubHkuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0tleWZyYW1lRWZmZWN0UmVhZE9ubHkuY3BwCmluZGV4IGY0ZmI5NzZlOTM5ZmJlZjc1MTU3
NzBiMWE5YTQ4MGM5Zjk0NDhkM2UuLjM3MjA2MmU5ZjhlYTE0MjQ5MjdmMWJhOGExNGFhZjA3YTI4
MDY0YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVj
dFJlYWRPbmx5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZl
Y3RSZWFkT25seS5jcHAKQEAgLTUyNCw2ICs1MjQsOSBAQCBWZWN0b3I8U3Ryb25nPEpTT2JqZWN0
Pj4gS2V5ZnJhbWVFZmZlY3RSZWFkT25seTo6Z2V0S2V5ZnJhbWVzKEV4ZWNTdGF0ZSYgc3RhdGUp
CiAgICAgICAgICAgICBCYXNlQ29tcHV0ZWRLZXlmcmFtZSBjb21wdXRlZEtleWZyYW1lOwogICAg
ICAgICAgICAgY29tcHV0ZWRLZXlmcmFtZS5vZmZzZXQgPSBrZXlmcmFtZS5rZXkoKTsKICAgICAg
ICAgICAgIGNvbXB1dGVkS2V5ZnJhbWUuY29tcHV0ZWRPZmZzZXQgPSBrZXlmcmFtZS5rZXkoKTsK
KyAgICAgICAgICAgIC8vIEZvciBDU1MgdHJhbnNpdGlvbnMsIHRoZXJlIGFyZSBvbmx5IHR3byBr
ZXlmcmFtZXMgYW5kIHRoZSBzZWNvbmQga2V5ZnJhbWUgc2hvdWxkIGFsd2F5cyByZXBvcnQgImxp
bmVhciIuIEluIHByYWN0aWNlLCB0aGlzIHZhbHVlCisgICAgICAgICAgICAvLyBoYXMgbm8gYmVh
cmluZyBzaW5jZSwgYXMgdGhlIGxhc3Qga2V5ZnJhbWUsIGl0cyB2YWx1ZSB3aWxsIG5ldmVyIGJl
IHVzZWQuCisgICAgICAgICAgICBjb21wdXRlZEtleWZyYW1lLmVhc2luZyA9IGlzPENTU1RyYW5z
aXRpb24+KGFuaW1hdGlvbigpKSAmJiBpID09IDEgPyAibGluZWFyIiA6IHRpbWluZ0Z1bmN0aW9u
Rm9yS2V5ZnJhbWVBdEluZGV4KDApLT5jc3NUZXh0KCk7CiAKICAgICAgICAgICAgIGF1dG8gb3V0
cHV0S2V5ZnJhbWUgPSBjb252ZXJ0RGljdGlvbmFyeVRvSlMoc3RhdGUsICpqc0Nhc3Q8SlNET01H
bG9iYWxPYmplY3QqPihzdGF0ZS5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLCBjb21wdXRlZEtleWZy
YW1lKTsKIApAQCAtNTQ1LDcgKzU0OCw3IEBAIFZlY3RvcjxTdHJvbmc8SlNPYmplY3Q+PiBLZXlm
cmFtZUVmZmVjdFJlYWRPbmx5OjpnZXRLZXlmcmFtZXMoRXhlY1N0YXRlJiBzdGF0ZSkKICAgICAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4geyBzdGF0ZS52
bSgpLCBvdXRwdXRLZXlmcmFtZSB9KTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0gICAgICAg
IGZvciAoYXV0byYgcGFyc2VkS2V5ZnJhbWUgOiBtX3BhcnNlZEtleWZyYW1lcykgeworICAgICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fcGFyc2VkS2V5ZnJhbWVzLnNpemUoKTsgKytpKSB7
CiAgICAgICAgICAgICAvLyAxLiBJbml0aWFsaXplIGEgZGljdGlvbmFyeSBvYmplY3QsIG91dHB1
dCBrZXlmcmFtZSwgdXNpbmcgdGhlIGZvbGxvd2luZyBkZWZpbml0aW9uOgogICAgICAgICAgICAg
Ly8KICAgICAgICAgICAgIC8vIGRpY3Rpb25hcnkgQmFzZUNvbXB1dGVkS2V5ZnJhbWUgewpAQCAt
NTU1LDEyICs1NTgsMTQgQEAgVmVjdG9yPFN0cm9uZzxKU09iamVjdD4+IEtleWZyYW1lRWZmZWN0
UmVhZE9ubHk6OmdldEtleWZyYW1lcyhFeGVjU3RhdGUmIHN0YXRlKQogICAgICAgICAgICAgLy8g
ICAgICBDb21wb3NpdGVPcGVyYXRpb24/IGNvbXBvc2l0ZSA9IG51bGw7CiAgICAgICAgICAgICAv
LyB9OwogCisgICAgICAgICAgICBhdXRvJiBwYXJzZWRLZXlmcmFtZSA9IG1fcGFyc2VkS2V5ZnJh
bWVzW2ldOworCiAgICAgICAgICAgICAvLyAyLiBTZXQgb2Zmc2V0LCBjb21wdXRlZE9mZnNldCwg
ZWFzaW5nLCBjb21wb3NpdGUgbWVtYmVycyBvZiBvdXRwdXQga2V5ZnJhbWUgdG8gdGhlIHJlc3Bl
Y3RpdmUgdmFsdWVzIGtleWZyYW1lIG9mZnNldCwgY29tcHV0ZWQga2V5ZnJhbWUKICAgICAgICAg
ICAgIC8vIG9mZnNldCwga2V5ZnJhbWUtc3BlY2lmaWMgdGltaW5nIGZ1bmN0aW9uIGFuZCBrZXlm
cmFtZS1zcGVjaWZpYyBjb21wb3NpdGUgb3BlcmF0aW9uIG9mIGtleWZyYW1lLgogICAgICAgICAg
ICAgQmFzZUNvbXB1dGVkS2V5ZnJhbWUgY29tcHV0ZWRLZXlmcmFtZTsKICAgICAgICAgICAgIGNv
bXB1dGVkS2V5ZnJhbWUub2Zmc2V0ID0gcGFyc2VkS2V5ZnJhbWUub2Zmc2V0OwogICAgICAgICAg
ICAgY29tcHV0ZWRLZXlmcmFtZS5jb21wdXRlZE9mZnNldCA9IHBhcnNlZEtleWZyYW1lLmNvbXB1
dGVkT2Zmc2V0OwotICAgICAgICAgICAgY29tcHV0ZWRLZXlmcmFtZS5lYXNpbmcgPSBwYXJzZWRL
ZXlmcmFtZS50aW1pbmdGdW5jdGlvbi0+Y3NzVGV4dCgpOworICAgICAgICAgICAgY29tcHV0ZWRL
ZXlmcmFtZS5lYXNpbmcgPSB0aW1pbmdGdW5jdGlvbkZvcktleWZyYW1lQXRJbmRleChpKS0+Y3Nz
VGV4dCgpOwogICAgICAgICAgICAgY29tcHV0ZWRLZXlmcmFtZS5jb21wb3NpdGUgPSBwYXJzZWRL
ZXlmcmFtZS5jb21wb3NpdGU7CiAKICAgICAgICAgICAgIGF1dG8gb3V0cHV0S2V5ZnJhbWUgPSBj
b252ZXJ0RGljdGlvbmFyeVRvSlMoc3RhdGUsICpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihz
dGF0ZS5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLCBjb21wdXRlZEtleWZyYW1lKTsKQEAgLTcyMSwy
MSArNzI2LDIxIEBAIHZvaWQgS2V5ZnJhbWVFZmZlY3RSZWFkT25seTo6Y29tcHV0ZUNTU1RyYW5z
aXRpb25CbGVuZGluZ0tleWZyYW1lcyhjb25zdCBSZW5kZXJTCiAgICAgaWYgKCFvbGRTdHlsZSB8
fCBtX2JsZW5kaW5nS2V5ZnJhbWVzLnNpemUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0
byYgYmFja2luZ0FuaW1hdGlvbiA9IGRvd25jYXN0PENTU1RyYW5zaXRpb24+KGFuaW1hdGlvbigp
KS0+YmFja2luZ0FuaW1hdGlvbigpOworICAgIGF1dG8gcHJvcGVydHkgPSBkb3duY2FzdDxDU1NU
cmFuc2l0aW9uPihhbmltYXRpb24oKSktPnByb3BlcnR5KCk7CiAKICAgICBhdXRvIHRvU3R5bGUg
PSBSZW5kZXJTdHlsZTo6Y2xvbmVQdHIobmV3U3R5bGUpOwogICAgIGlmIChtX3RhcmdldCkKICAg
ICAgICAgU3R5bGU6OmxvYWRQZW5kaW5nUmVzb3VyY2VzKCp0b1N0eWxlLCBtX3RhcmdldC0+ZG9j
dW1lbnQoKSwgbV90YXJnZXQuZ2V0KCkpOwogCiAgICAgS2V5ZnJhbWVMaXN0IGtleWZyYW1lTGlz
dCgia2V5ZnJhbWUtZWZmZWN0LSIgKyBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkpOwotICAg
IGtleWZyYW1lTGlzdC5hZGRQcm9wZXJ0eShiYWNraW5nQW5pbWF0aW9uLnByb3BlcnR5KCkpOwor
ICAgIGtleWZyYW1lTGlzdC5hZGRQcm9wZXJ0eShwcm9wZXJ0eSk7CiAKICAgICBLZXlmcmFtZVZh
bHVlIGZyb21LZXlmcmFtZVZhbHVlKDAsIFJlbmRlclN0eWxlOjpjbG9uZVB0cigqb2xkU3R5bGUp
KTsKLSAgICBmcm9tS2V5ZnJhbWVWYWx1ZS5hZGRQcm9wZXJ0eShiYWNraW5nQW5pbWF0aW9uLnBy
b3BlcnR5KCkpOworICAgIGZyb21LZXlmcmFtZVZhbHVlLmFkZFByb3BlcnR5KHByb3BlcnR5KTsK
ICAgICBrZXlmcmFtZUxpc3QuaW5zZXJ0KFdURk1vdmUoZnJvbUtleWZyYW1lVmFsdWUpKTsKIAog
ICAgIEtleWZyYW1lVmFsdWUgdG9LZXlmcmFtZVZhbHVlKDEsIFdURk1vdmUodG9TdHlsZSkpOwot
ICAgIHRvS2V5ZnJhbWVWYWx1ZS5hZGRQcm9wZXJ0eShiYWNraW5nQW5pbWF0aW9uLnByb3BlcnR5
KCkpOworICAgIHRvS2V5ZnJhbWVWYWx1ZS5hZGRQcm9wZXJ0eShwcm9wZXJ0eSk7CiAgICAga2V5
ZnJhbWVMaXN0Lmluc2VydChXVEZNb3ZlKHRvS2V5ZnJhbWVWYWx1ZSkpOwogCiAgICAgbV9ibGVu
ZGluZ0tleWZyYW1lcyA9IFdURk1vdmUoa2V5ZnJhbWVMaXN0KTsKQEAgLTc0OCwxNSArNzUzLDEz
IEBAIGJvb2wgS2V5ZnJhbWVFZmZlY3RSZWFkT25seTo6c3R5bGVzV291bGRZaWVsZE5ld0NTU1Ry
YW5zaXRpb25zQmxlbmRpbmdLZXlmcmFtZXMoCiAgICAgQVNTRVJUKGlzPENTU1RyYW5zaXRpb24+
KGFuaW1hdGlvbigpKSk7CiAgICAgYXV0byBwcm9wZXJ0eSA9IGRvd25jYXN0PENTU1RyYW5zaXRp
b24+KGFuaW1hdGlvbigpKS0+YmFja2luZ0FuaW1hdGlvbigpLnByb3BlcnR5KCk7CiAKLSAgICAv
LyBJZiB3ZSBkaWRuJ3QgaGF2ZSBibGVuZGluZyBrZXlmcmFtZXMgeWV0LCB3ZSB3b3VsZCBjcmVh
dGUgbmV3IGJsZW5kaW5nIGtleWZyYW1lcyBwcm92aWRlZAotICAgIC8vIHRoZSBzdGFydCBhbmQg
ZW5kIHN0eWxlcyBob2xkIGRpZmZlcmVudCB2YWx1ZXMgZm9yIHRoaXMgcHJvcGVydHkuCi0gICAg
aWYgKCFoYXNCbGVuZGluZ0tleWZyYW1lcygpKQotICAgICAgICByZXR1cm4gIUNTU1Byb3BlcnR5
QW5pbWF0aW9uOjpwcm9wZXJ0aWVzRXF1YWwocHJvcGVydHksICZvbGRTdHlsZSwgJm5ld1N0eWxl
KTsKKyAgICAvLyBUaGVyZSBjYW5ub3QgYmUgbmV3IGtleWZyYW1lcyBpZiB0aGUgc3RhcnQgYW5k
IHRvIHZhbHVlcyBhcmUgdGhlIHNhbWUuCisgICAgaWYgKENTU1Byb3BlcnR5QW5pbWF0aW9uOjpw
cm9wZXJ0aWVzRXF1YWwocHJvcGVydHksICZvbGRTdHlsZSwgJm5ld1N0eWxlKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgLy8gT3RoZXJ3aXNlLCB3ZSB3b3VsZCBjcmVhdGUgbmV3IGJs
ZW5kaW5nIGtleWZyYW1lcyBwcm92aWRlZCB0aGUgY3VycmVudCBzdGFydCBrZXlmcmFtZSBob2xk
cwotICAgIC8vIGEgZGlmZmVyZW50IHZhbHVlIHRoYW4gdGhlIG5ldyBzdGFydCBzdHlsZSBvciB0
aGUgY3VycmVudCBlbmQga2V5ZnJhbWUgaG9sZHMgYSBkaWZmZXJlbnQgdmFsdWUKLSAgICAvLyB0
aGFuIHRoZSBuZXcgZW5kIHN0eWxlIGZvciB0aGlzIHByb3BlcnR5LgotICAgIHJldHVybiAhQ1NT
UHJvcGVydHlBbmltYXRpb246OnByb3BlcnRpZXNFcXVhbChwcm9wZXJ0eSwgbV9ibGVuZGluZ0tl
eWZyYW1lc1swXS5zdHlsZSgpLCAmb2xkU3R5bGUpIHx8ICFDU1NQcm9wZXJ0eUFuaW1hdGlvbjo6
cHJvcGVydGllc0VxdWFsKHByb3BlcnR5LCBtX2JsZW5kaW5nS2V5ZnJhbWVzWzFdLnN0eWxlKCks
ICZuZXdTdHlsZSk7CisgICAgLy8gT3RoZXJ3aXNlLCB3ZSB3b3VsZCBjcmVhdGUgbmV3IGJsZW5k
aW5nIGtleWZyYW1lcyBwcm92aWRlZCB0aGUgY3VycmVudCBlbmQga2V5ZnJhbWUgaG9sZHMgYSBk
aWZmZXJlbnQKKyAgICAvLyB2YWx1ZSB0aGFuIHRoZSBuZXcgZW5kIHN0eWxlIGZvciB0aGlzIHBy
b3BlcnR5LgorICAgIHJldHVybiAhQ1NTUHJvcGVydHlBbmltYXRpb246OnByb3BlcnRpZXNFcXVh
bChwcm9wZXJ0eSwgbV9ibGVuZGluZ0tleWZyYW1lc1sxXS5zdHlsZSgpLCAmbmV3U3R5bGUpOwog
fQogCiB2b2lkIEtleWZyYW1lRWZmZWN0UmVhZE9ubHk6OmNvbXB1dGVTdGFja2luZ0NvbnRleHRJ
bXBhY3QoKQpAQCAtOTc5LDExICs5ODIsMTAgQEAgdm9pZCBLZXlmcmFtZUVmZmVjdFJlYWRPbmx5
OjpzZXRBbmltYXRlZFByb3BlcnRpZXNJblN0eWxlKFJlbmRlclN0eWxlJiB0YXJnZXRTdHkKICAg
ICAgICAgLy8gMTcuIExldCB0cmFuc2Zvcm1lZCBkaXN0YW5jZSBiZSB0aGUgcmVzdWx0IG9mIGV2
YWx1YXRpbmcgdGhlIHRpbWluZyBmdW5jdGlvbiBhc3NvY2lhdGVkIHdpdGggdGhlIGZpcnN0IGtl
eWZyYW1lIGluIGludGVydmFsIGVuZHBvaW50cwogICAgICAgICAvLyAgICAgcGFzc2luZyBpbnRl
cnZhbCBkaXN0YW5jZSBhcyB0aGUgaW5wdXQgcHJvZ3Jlc3MuCiAgICAgICAgIGF1dG8gdHJhbnNm
b3JtZWREaXN0YW5jZSA9IGludGVydmFsRGlzdGFuY2U7Ci0gICAgICAgIC8vIEluIGNhc2Ugd2Un
cmUgYmFja2luZyBhIENTU0FuaW1hdGlvbiBvciBDU1NUcmFuc2l0aW9uIHdlIHdvbid0IGFjdHVh
bGx5IGhhdmUgcGFyc2VkIGtleWZyYW1lcy4KLSAgICAgICAgaWYgKHN0YXJ0S2V5ZnJhbWVJbmRl
eCAmJiBzdGFydEtleWZyYW1lSW5kZXgudmFsdWUoKSArIDEgPD0gbV9wYXJzZWRLZXlmcmFtZXMu
c2l6ZSgpKSB7CisgICAgICAgIGlmIChzdGFydEtleWZyYW1lSW5kZXgpIHsKICAgICAgICAgICAg
IGlmIChhdXRvIGl0ZXJhdGlvbkR1cmF0aW9uID0gdGltaW5nKCktPml0ZXJhdGlvbkR1cmF0aW9u
KCkpIHsKICAgICAgICAgICAgICAgICBhdXRvIHJhbmdlRHVyYXRpb24gPSAoZW5kT2Zmc2V0IC0g
c3RhcnRPZmZzZXQpICogaXRlcmF0aW9uRHVyYXRpb24uc2Vjb25kcygpOwotICAgICAgICAgICAg
ICAgIHRyYW5zZm9ybWVkRGlzdGFuY2UgPSBtX3BhcnNlZEtleWZyYW1lc1tzdGFydEtleWZyYW1l
SW5kZXgudmFsdWUoKV0udGltaW5nRnVuY3Rpb24tPnRyYW5zZm9ybVRpbWUoaW50ZXJ2YWxEaXN0
YW5jZSwgcmFuZ2VEdXJhdGlvbik7CisgICAgICAgICAgICAgICAgdHJhbnNmb3JtZWREaXN0YW5j
ZSA9IHRpbWluZ0Z1bmN0aW9uRm9yS2V5ZnJhbWVBdEluZGV4KHN0YXJ0S2V5ZnJhbWVJbmRleC52
YWx1ZSgpKS0+dHJhbnNmb3JtVGltZShpbnRlcnZhbERpc3RhbmNlLCByYW5nZUR1cmF0aW9uKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQogCkBAIC05OTYsNiArOTk4LDI3IEBAIHZvaWQgS2V5
ZnJhbWVFZmZlY3RSZWFkT25seTo6c2V0QW5pbWF0ZWRQcm9wZXJ0aWVzSW5TdHlsZShSZW5kZXJT
dHlsZSYgdGFyZ2V0U3R5CiAgICAgfQogfQogCitUaW1pbmdGdW5jdGlvbiogS2V5ZnJhbWVFZmZl
Y3RSZWFkT25seTo6dGltaW5nRnVuY3Rpb25Gb3JLZXlmcmFtZUF0SW5kZXgoc2l6ZV90IGluZGV4
KQoreworICAgIGlmICghbV9wYXJzZWRLZXlmcmFtZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm4gbV9wYXJzZWRLZXlmcmFtZXNbaW5kZXhdLnRpbWluZ0Z1bmN0aW9uLmdldCgpOworCisgICAg
YXV0byBlZmZlY3RBbmltYXRpb24gPSBhbmltYXRpb24oKTsKKworICAgIC8vIElmIHdlIGRpZG4n
dCBoYXZlIHBhcnNlZCBrZXlmcmFtZXMsIHdlIG11c3QgYmUgZGVhbGluZyB3aXRoIGEgZGVjbGFy
YXRpdmUgYW5pbWF0aW9uLgorICAgIEFTU0VSVChpczxEZWNsYXJhdGl2ZUFuaW1hdGlvbj4oZWZm
ZWN0QW5pbWF0aW9uKSk7CisKKyAgICAvLyBJZiB3ZSdyZSBkZWFsaW5nIHdpdGggYSBDU1MgQW5p
bWF0aW9uLCB0aGUgdGltaW5nIGZ1bmN0aW9uIGlzIHNwZWNpZmllZCBlaXRoZXIgb24gdGhlIGtl
eWZyYW1lIGl0c2VsZiwKKyAgICAvLyBvciBmYWlsaW5nIHRoYXQgb24gdGhlIGJhY2tpbmcgQW5p
bWF0aW9uIG9iamVjdCB3aGljaCBkZWZpbmVzIHRoZSBkZWZhdWx0IGZvciBhbGwga2V5ZnJhbWVz
LgorICAgIGlmIChpczxDU1NBbmltYXRpb24+KGVmZmVjdEFuaW1hdGlvbikpIHsKKyAgICAgICAg
aWYgKGF1dG8qIHRpbWluZ0Z1bmN0aW9uID0gbV9ibGVuZGluZ0tleWZyYW1lc1tpbmRleF0udGlt
aW5nRnVuY3Rpb24oZG93bmNhc3Q8Q1NTQW5pbWF0aW9uPihlZmZlY3RBbmltYXRpb24pLT5hbmlt
YXRpb25OYW1lKCkpKQorICAgICAgICAgICAgcmV0dXJuIHRpbWluZ0Z1bmN0aW9uOworICAgIH0K
KworICAgIC8vIEZhaWxpbmcgdGhhdCwgb3IgZm9yIGEgQ1NTIFRyYW5zaXRpb24sIHRoZSB0aW1p
bmcgZnVuY3Rpb24gaXMgaW5oZXJpdGVkIGZyb20gdGhlIGJhY2tpbmcgQW5pbWF0aW9uIG9iamVj
dC4gCisgICAgcmV0dXJuIGRvd25jYXN0PERlY2xhcmF0aXZlQW5pbWF0aW9uPihlZmZlY3RBbmlt
YXRpb24pLT5iYWNraW5nQW5pbWF0aW9uKCkudGltaW5nRnVuY3Rpb24oKTsKK30KKwogdm9pZCBL
ZXlmcmFtZUVmZmVjdFJlYWRPbmx5OjpzdGFydE9yU3RvcEFjY2VsZXJhdGVkKCkKIHsKICAgICBh
dXRvKiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3RSZWFkT25seS5oIGIvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0UmVhZE9ubHkuaAppbmRleCBhMmY0MjFlZGYwZWExZGRk
MDE3MTEyMThjMWQ0YmJkYmRhYWNlNDczLi45ZmZhODJiODk2N2NmM2FmNDE0ODBhMDM3NGZjYzBj
MjRkM2VmMjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVF
ZmZlY3RSZWFkT25seS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVm
ZmVjdFJlYWRPbmx5LmgKQEAgLTEyNiw2ICsxMjYsNyBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6
CiAgICAgdm9pZCBzZXRBbmltYXRlZFByb3BlcnRpZXNJblN0eWxlKFJlbmRlclN0eWxlJiwgZG91
YmxlKTsKKyAgICBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb25Gb3JLZXlmcmFtZUF0SW5k
ZXgoc2l6ZV90KTsKICAgICB2b2lkIGNvbXB1dGVTdGFja2luZ0NvbnRleHRJbXBhY3QoKTsKICAg
ICB2b2lkIHVwZGF0ZUJsZW5kaW5nS2V5ZnJhbWVzKCk7CiAgICAgYm9vbCBzaG91bGRSdW5BY2Nl
bGVyYXRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1h
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcAppbmRl
eCA0MDdhZWE3NTZhOWFlMjJmMzQwMDY1OGFiYWM1YjEzNWE0YjFiMDY0Li4zZGYwMTRmOTFjZDM0
ZmVmMGZiNGI2MzJjNTFiZWY4Yjk0YjdkMWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
V2ViQW5pbWF0aW9uLmNwcApAQCAtOTc0LDI2ICs5NzQsMzEgQEAgdm9pZCBXZWJBbmltYXRpb246
OnVwZGF0ZVBlbmRpbmdUYXNrcygpCiAgICAgdGltaW5nTW9kZWxEaWRDaGFuZ2UoKTsKIH0KIAot
U2Vjb25kcyBXZWJBbmltYXRpb246OnRpbWVUb05leHRSZXF1aXJlZFRpY2soU2Vjb25kcyB0aW1l
bGluZVRpbWUpIGNvbnN0CitTZWNvbmRzIFdlYkFuaW1hdGlvbjo6dGltZVRvTmV4dFJlcXVpcmVk
VGljaygpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3RpbWVsaW5lIHx8ICFtX3N0YXJ0VGltZSB8fCAh
bV9lZmZlY3QgfHwgIW1fcGxheWJhY2tSYXRlKQorICAgIC8vIElmIHdlIGRvbid0IGhhdmUgYSB0
aW1lbGluZSwgYW4gZWZmZWN0LCBhIHN0YXJ0IHRpbWUgb3IgYSBwbGF5YmFjayByYXRlIG90aGVy
IHRoYW4gMCwKKyAgICAvLyB0aGVyZSBpcyBubyB2YWx1ZSB0byBhcHBseSBzbyB3ZSBkb24ndCBu
ZWVkIHRvIHNjaGVkdWxlIGludmFsaWRhdGlvbi4KKyAgICBpZiAoIW1fdGltZWxpbmUgfHwgIW1f
ZWZmZWN0IHx8ICFtX3N0YXJ0VGltZSB8fCAhbV9wbGF5YmFja1JhdGUpCiAgICAgICAgIHJldHVy
biBTZWNvbmRzOjppbmZpbml0eSgpOwogCi0gICAgYXV0byBzdGFydFRpbWUgPSBtX3N0YXJ0VGlt
ZS52YWx1ZSgpOwotICAgIGF1dG8gZW5kVGltZSA9IHN0YXJ0VGltZSArIChtX2VmZmVjdC0+dGlt
aW5nKCktPml0ZXJhdGlvbkR1cmF0aW9uKCkgLyBtX3BsYXliYWNrUmF0ZSk7CisgICAgLy8gSWYg
d2UncmUgaW4gdGhlIHJ1bm5pbmcgc3RhdGUsIHdlIG5lZWQgdG8gc2NoZWR1bGUgaW52YWxpZGF0
aW9uIGFzIHNvb24gYXMgcG9zc2libGUuCisgICAgaWYgKHBsYXlTdGF0ZSgpID09IFBsYXlTdGF0
ZTo6UnVubmluZykKKyAgICAgICAgcmV0dXJuIDBfczsKIAotICAgIC8vIElmIHdlIGhhdmVuJ3Qg
c3RhcnRlZCB5ZXQsIHJldHVybiB0aGUgaW50ZXJ2YWwgdW50aWwgb3VyIGFjdGl2ZSBzdGFydCB0
aW1lLgotICAgIGF1dG8gYWN0aXZlU3RhcnRUaW1lID0gc3RkOjptaW4oc3RhcnRUaW1lLCBlbmRU
aW1lKTsKLSAgICBpZiAodGltZWxpbmVUaW1lIDw9IGFjdGl2ZVN0YXJ0VGltZSkKLSAgICAgICAg
cmV0dXJuIGFjdGl2ZVN0YXJ0VGltZSAtIHRpbWVsaW5lVGltZTsKKyAgICAvLyBJZiBvdXIgY3Vy
cmVudCB0aW1lIGlzIG5lZ2F0aXZlLCB3ZSBuZWVkIHRvIGJlIHNjaGVkdWxlZCB0byBiZSByZXNv
bHZlZCBhdCB0aGUgaW52ZXJzZQorICAgIC8vIG9mIG91ciBjdXJyZW50IHRpbWUsIHVubGVzcyB3
ZSBmaWxsIGJhY2t3YXJkcywgaW4gd2hpY2ggY2FzZSB3ZSB3YW50IHRvIGludmFsaWRhdGUgYXMK
KyAgICAvLyBzb29uIGFzIHBvc3NpYmxlLgorICAgIGF1dG8gbG9jYWxUaW1lID0gY3VycmVudFRp
bWUoKS52YWx1ZSgpOworICAgIGlmIChsb2NhbFRpbWUgPCAwX3MpCisgICAgICAgIHJldHVybiAt
bG9jYWxUaW1lOwogCi0gICAgLy8gSWYgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBvdXIgYWN0aXZl
IGR1cmF0aW9uLCB3ZSB3YW50IHRvIGJlIGNhbGxlZCBhcyBzb29uIGFzIHBvc3NpYmxlLgotICAg
IGF1dG8gYWN0aXZlRW5kVGltZSA9IHN0ZDo6bWF4KHN0YXJ0VGltZSwgZW5kVGltZSk7Ci0gICAg
aWYgKHRpbWVsaW5lVGltZSA8PSBhY3RpdmVFbmRUaW1lKQotICAgICAgICByZXR1cm4gMF9tczsK
KyAgICAvLyBJZiBvdXIgY3VycmVudCB0aW1lIGlzIGp1c3QgYXQgdGhlIGFjdGhpdmUgZHVyYXRp
b24gdGhyZXNob2xkIHdlIHdhbnQgdG8gaW52YWxpZGF0ZSBhcworICAgIC8vIHNvb24gYXMgcG9z
c2libGUgdG8gcmVzdG9yZSBhIG5vbi1hbmltYXRlZCB2YWx1ZS4KKyAgICBpZiAoc3RkOjphYnMo
bG9jYWxUaW1lLm1pY3Jvc2Vjb25kcygpIC0gbV9lZmZlY3QtPnRpbWluZygpLT5hY3RpdmVEdXJh
dGlvbigpLm1pY3Jvc2Vjb25kcygpKSA8IHRpbWVFcHNpbG9uLm1pY3Jvc2Vjb25kcygpKQorICAg
ICAgICByZXR1cm4gMF9zOwogCi0gICAgLy8gSWYgbm9uZSBvZiB0aGUgcHJldmlvdXMgY2FzZXMg
bWF0Y2gsIHRoZW4gd2UncmUgYWxyZWFkeSBwYXN0IG91ciBhY3RpdmUgZHVyYXRpb24KLSAgICAv
LyBhbmQgZG8gbm90IG5lZWQgc2NoZWR1bGluZy4KKyAgICAvLyBJbiBhbnkgb3RoZXIgY2FzZSwg
d2UncmUgaWRsZSBvciBhbHJlYWR5IG91dHNpZGUgb3VyIGFjdGl2ZSBkdXJhdGlvbiBhbmQgaGF2
ZSBubyBuZWVkCisgICAgLy8gdG8gc2NoZWR1bGUgYW4gaW52YWxpZGF0aW9uLgogICAgIHJldHVy
biBTZWNvbmRzOjppbmZpbml0eSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vV2ViQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5p
bWF0aW9uLmgKaW5kZXggZjZhZDkxZmY5YTVkNmEzOTQ2ZThiODk5ZmQwODQ5MWE4NjllNTNjOS4u
ZDc5ODcwNmY3ZTcyZTVhZGIwM2QwZDU2MWFmZDM5OTliYzc0NDMzYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaApAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAgICAg
c3RkOjpvcHRpb25hbDxTZWNvbmRzPiBzdGFydFRpbWUoKSBjb25zdDsKICAgICB2b2lkIHNldFN0
YXJ0VGltZShzdGQ6Om9wdGlvbmFsPFNlY29uZHM+KTsKIAotICAgIHN0ZDo6b3B0aW9uYWw8ZG91
YmxlPiBiaW5kaW5nc0N1cnJlbnRUaW1lKCkgY29uc3Q7CisgICAgdmlydHVhbCBzdGQ6Om9wdGlv
bmFsPGRvdWJsZT4gYmluZGluZ3NDdXJyZW50VGltZSgpIGNvbnN0OwogICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNldEJpbmRpbmdzQ3VycmVudFRpbWUoc3RkOjpvcHRpb25hbDxkb3VibGU+KTsKICAg
ICBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IGN1cnJlbnRUaW1lKCkgY29uc3Q7CiAgICAgRXhjZXB0
aW9uT3I8dm9pZD4gc2V0Q3VycmVudFRpbWUoc3RkOjpvcHRpb25hbDxTZWNvbmRzPik7CkBAIC05
NywxNiArOTcsMTIgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHBhdXNlKCk7CiAg
ICAgRXhjZXB0aW9uT3I8dm9pZD4gcmV2ZXJzZSgpOwogCi0gICAgU2Vjb25kcyB0aW1lVG9OZXh0
UmVxdWlyZWRUaWNrKFNlY29uZHMpIGNvbnN0OworICAgIFNlY29uZHMgdGltZVRvTmV4dFJlcXVp
cmVkVGljaygpIGNvbnN0OwogICAgIHZvaWQgcmVzb2x2ZShSZW5kZXJTdHlsZSYpOwogICAgIHZv
aWQgZWZmZWN0VGFyZ2V0RGlkQ2hhbmdlKEVsZW1lbnQqIHByZXZpb3VzVGFyZ2V0LCBFbGVtZW50
KiBuZXdUYXJnZXQpOwogICAgIHZvaWQgYWNjZWxlcmF0ZWRSdW5uaW5nU3RhdGVEaWRDaGFuZ2Uo
KTsKICAgICB2b2lkIHN0YXJ0T3JTdG9wQWNjZWxlcmF0ZWQoKTsKIAotICAgIGVudW0gY2xhc3Mg
RGlkU2VlayB7IFllcywgTm8gfTsKLSAgICBlbnVtIGNsYXNzIFN5bmNocm9ub3VzbHlOb3RpZnkg
eyBZZXMsIE5vIH07Ci0gICAgdm9pZCB1cGRhdGVGaW5pc2hlZFN0YXRlKERpZFNlZWssIFN5bmNo
cm9ub3VzbHlOb3RpZnkpOwotCiAgICAgdm9pZCB0aW1pbmdNb2RlbERpZENoYW5nZSgpOwogICAg
IHZvaWQgc3VzcGVuZEVmZmVjdEludmFsaWRhdGlvbigpOwogICAgIHZvaWQgdW5zdXNwZW5kRWZm
ZWN0SW52YWxpZGF0aW9uKCk7CkBAIC0xMjIsMTAgKzExOCwxMyBAQCBwcm90ZWN0ZWQ6CiAgICAg
Ym9vbCBpc0VmZmVjdEludmFsaWRhdGlvblN1c3BlbmRlZCgpIHsgcmV0dXJuIG1fc3VzcGVuZENv
dW50OyB9CiAKIHByaXZhdGU6CisgICAgZW51bSBjbGFzcyBEaWRTZWVrIHsgWWVzLCBObyB9Owor
ICAgIGVudW0gY2xhc3MgU3luY2hyb25vdXNseU5vdGlmeSB7IFllcywgTm8gfTsKICAgICBlbnVt
IGNsYXNzIFJlc3BlY3RIb2xkVGltZSB7IFllcywgTm8gfTsKICAgICBlbnVtIGNsYXNzIEF1dG9S
ZXdpbmQgeyBZZXMsIE5vIH07CiAgICAgZW51bSBjbGFzcyBUaW1lVG9SdW5QZW5kaW5nVGFzayB7
IE5vdFNjaGVkdWxlZCwgQVNBUCwgV2hlblJlYWR5IH07CiAKKyAgICB2b2lkIHVwZGF0ZUZpbmlz
aGVkU3RhdGUoRGlkU2VlaywgU3luY2hyb25vdXNseU5vdGlmeSk7CiAgICAgdm9pZCBlbnF1ZXVl
QW5pbWF0aW9uUGxheWJhY2tFdmVudChjb25zdCBBdG9taWNTdHJpbmcmLCBzdGQ6Om9wdGlvbmFs
PFNlY29uZHM+LCBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+KTsKICAgICBTZWNvbmRzIGVmZmVjdEVu
ZFRpbWUoKSBjb25zdDsKICAgICBXZWJBbmltYXRpb24mIHJlYWR5UHJvbWlzZVJlc29sdmUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb25VdGlsaXRp
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb25VdGlsaXRpZXMuaApp
bmRleCBmNDM2NWE4ODk0ZGE5Yjg1MTQzODRiNzg4OTM4MjY1NzZiYzRmMzRlLi5hN2FiZGFjMGYw
MjE4M2ViMDQ0ZjRkZjY4NzM2YzhiMWQwYzNiNTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uVXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL1dlYkFuaW1hdGlvblV0aWxpdGllcy5oCkBAIC00MCw1ICs0MCw3IEBAIGlubGlu
ZSBkb3VibGUgc2Vjb25kc1RvV2ViQW5pbWF0aW9uc0FQSVRpbWUoY29uc3QgU2Vjb25kcyB0aW1l
KQogICAgIHJldHVybiBzdGQ6OnJvdW5kKHRpbWUubWljcm9zZWNvbmRzKCkpIC8gMTAwMDsKIH0K
IAorY29uc3QgYXV0byB0aW1lRXBzaWxvbiA9IFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoMC4w
MDEpOworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggMTBmODc3MzFkOGQxMzVi
NmZjNGI2YjAwZDE4NmMzNmJjYWJhYWY0Ni4uYzRmNTEyOGQxMDhmYzc0YjhmYjQ1MWViY2NlM2U4
ODNlYWQyZjdkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KQEAgLTQ2MjksNyArNDYyOSw3IEBAIEVORAogICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgPDxFTkQpIGlmICR2dGFibGVOYW1lR251OwogCiAjaWYgRU5BQkxFKEJJ
TkRJTkdfSU5URUdSSVRZKQotICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSAqKHJlaW50
ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSk7CisgICAgdm9pZCogYWN0dWFsVlRhYmxl
UG9pbnRlciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1JfSU5TUEVDVElPTigqKHJlaW50
ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSkpOwogI2lmIFBMQVRGT1JNKFdJTikKICAg
ICB2b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJf
Rk9SX0lOU1BFQ1RJT04oJHt2dGFibGVSZWZXaW59KTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNJbnRlcmZhY2VOYW1lLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0ludGVyZmFjZU5hbWUu
Y3BwCmluZGV4IDRiZjU0NmY5OGIwNGQ0MTU5ZTVkMzVjOGM1NGYxY2QwMDM1MzczOWIuLmIyYzBk
ODJiMjc5ZDY3YmQyMTQ4NzJkMDQzNTkzY2FiMmE2NjI3NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0ludGVyZmFjZU5hbWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0ludGVyZmFjZU5hbWUu
Y3BwCkBAIC0xOTUsNyArMTk1LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlND
OjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogewogCiAjaWYg
RU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZKQotICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIg
PSAqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSk7CisgICAgdm9pZCogYWN0
dWFsVlRhYmxlUG9pbnRlciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1JfSU5TUEVDVElP
TigqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSkpOwogI2lmIFBMQVRGT1JN
KFdJTikKICAgICB2b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJM
X1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oX19pZGVudGlmaWVyKCI/P183SW50ZXJmYWNlTmFtZUBX
ZWJDb3JlQEA2QkAiKSk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTTWFwTGlrZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNNYXBMaWtlLmNwcAppbmRleCA2OTc4ODljNDExZmNiM2I5ZjRj
MTM3OTM4MWRhMWQ2ZmFiYmU1MzM5Li4yMzk3NmM2NTZkMDViM2QwOGQzYzk5OWVmNmM3MjUxOWUx
ZWM4YTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNNYXBMaWtlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNNYXBMaWtlLmNwcApAQCAtMzY0LDcgKzM2NCw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pT
TmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwKIHsKIAogI2lmIEVOQUJMRShCSU5ESU5HX0lOVEVHUklUWSkKLSAgICB2b2lkKiBhY3R1
YWxWVGFibGVQb2ludGVyID0gKihyZWludGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkp
OworICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5U
RVJfRk9SX0lOU1BFQ1RJT04oKihyZWludGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkp
KTsKICNpZiBQTEFURk9STShXSU4pCiAgICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0g
V1RGX1BSRVBBUkVfVlRCTF9QT0lOVEVSX0ZPUl9JTlNQRUNUSU9OKF9faWRlbnRpZmllcigiPz9f
N01hcExpa2VAV2ViQ29yZUBANkJAIikpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5TWFwTGlrZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuY3Bw
CmluZGV4IGYzNDNlZTQ5YmVhYTkyMjA0NWFmYjU1MDYzNGVmNWM2MGJmZjFjNzEuLjM0ZTZkODJm
MjYyYjc0NjAxMGZhNjNjZGYyNWYwMjE1YjIwZDI2YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5TWFwTGlrZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBMaWtl
LmNwcApAQCAtMzEzLDcgKzMxMyw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpT
Qzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKIHsKIAogI2lm
IEVOQUJMRShCSU5ESU5HX0lOVEVHUklUWSkKLSAgICB2b2lkKiBhY3R1YWxWVGFibGVQb2ludGVy
ID0gKihyZWludGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpOworICAgIHZvaWQqIGFj
dHVhbFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJ
T04oKihyZWludGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpKTsKICNpZiBQTEFURk9S
TShXSU4pCiAgICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gV1RGX1BSRVBBUkVfVlRC
TF9QT0lOVEVSX0ZPUl9JTlNQRUNUSU9OKF9faWRlbnRpZmllcigiPz9fN1JlYWRPbmx5TWFwTGlr
ZUBXZWJDb3JlQEA2QkAiKSk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNw
cAppbmRleCA1MDk5ZjgzMmI3ZjQ5MjQ4MWQyZmIwMjVjOGMwZjkzZjUzNzdlNzZiLi5hNTUxZDEy
YmFjYjA1MjgwMzc0YmNmYjhkMGJiYzVkYmJiNmJlODJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZl
RE9NT2JqZWN0LmNwcApAQCAtMjc0LDcgKzI3NCw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlD
cmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwK
IHsKIAogI2lmIEVOQUJMRShCSU5ESU5HX0lOVEVHUklUWSkKLSAgICB2b2lkKiBhY3R1YWxWVGFi
bGVQb2ludGVyID0gKihyZWludGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpOworICAg
IHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9S
X0lOU1BFQ1RJT04oKihyZWludGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpKTsKICNp
ZiBQTEFURk9STShXSU4pCiAgICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gV1RGX1BS
RVBBUkVfVlRCTF9QT0lOVEVSX0ZPUl9JTlNQRUNUSU9OKF9faWRlbnRpZmllcigiPz9fN1Rlc3RB
Y3RpdmVET01PYmplY3RAV2ViQ29yZUBANkJAIikpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlv
bnMuY3BwCmluZGV4IGQ1YmVmZGU5ZTQwZjc2YWY4OTVkMmYyZWUzMWNmMjM2NzcxOTM0ZWQuLmJl
MTJjOTJhNWNmN2Q4OGY2YzFmZjkyODljYjA0ZmJiYmUwYmQ1NTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVh
Y3Rpb25zLmNwcApAQCAtMzI4LDcgKzMyOCw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVh
dGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKIHsK
IAogI2lmIEVOQUJMRShCSU5ESU5HX0lOVEVHUklUWSkKLSAgICB2b2lkKiBhY3R1YWxWVGFibGVQ
b2ludGVyID0gKihyZWludGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpOworICAgIHZv
aWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lO
U1BFQ1RJT04oKihyZWludGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpKTsKICNpZiBQ
TEFURk9STShXSU4pCiAgICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gV1RGX1BSRVBB
UkVfVlRCTF9QT0lOVEVSX0ZPUl9JTlNQRUNUSU9OKF9faWRlbnRpZmllcigiPz9fN1Rlc3RDRVJl
YWN0aW9uc0BXZWJDb3JlQEA2QkAiKSk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVh
Y3Rpb25zU3RyaW5naWZpZXIuY3BwCmluZGV4IDViYzUwZmIwMTVhYjBiOTgyNzRhZTRiOTkxOWZl
NDQ1ZmEzMzgyOTAuLjNlM2EyMWYzYjQ5NWMwNTcyZTRkM2ZiNmE1Zjg2ODcyZWIyM2EyOTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
RVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5jcHAKQEAgLTI0OCw3
ICsyNDgsNyBAQCBKU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSos
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiB7CiAKICNpZiBFTkFCTEUoQklORElO
R19JTlRFR1JJVFkpCi0gICAgdm9pZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9ICoocmVpbnRlcnBy
ZXRfY2FzdDx2b2lkKio+KGltcGwucHRyKCkpKTsKKyAgICB2b2lkKiBhY3R1YWxWVGFibGVQb2lu
dGVyID0gV1RGX1BSRVBBUkVfVlRCTF9QT0lOVEVSX0ZPUl9JTlNQRUNUSU9OKCoocmVpbnRlcnBy
ZXRfY2FzdDx2b2lkKio+KGltcGwucHRyKCkpKSk7CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHZv
aWQqIGV4cGVjdGVkVlRhYmxlUG9pbnRlciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1Jf
SU5TUEVDVElPTihfX2lkZW50aWZpZXIoIj8/XzdUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllckBX
ZWJDb3JlQEA2QkAiKSk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuY3BwCmluZGV4IGE4MTU2
ZDBlN2NkNWY5OTlhMjhkMWU4ZmY2NTYwNTJkM2Y4MTllZGQuLmMwZWZhZDlmNGUzYjk1ZjA0MTEx
NDFkNzcxNWRkYWNlM2Y0ZTE3YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5jcHAKQEAgLTU0Nyw3
ICs1NDcsNyBAQCBKU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSos
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiB7CiAKICNpZiBFTkFCTEUoQklORElO
R19JTlRFR1JJVFkpCi0gICAgdm9pZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9ICoocmVpbnRlcnBy
ZXRfY2FzdDx2b2lkKio+KGltcGwucHRyKCkpKTsKKyAgICB2b2lkKiBhY3R1YWxWVGFibGVQb2lu
dGVyID0gV1RGX1BSRVBBUkVfVlRCTF9QT0lOVEVSX0ZPUl9JTlNQRUNUSU9OKCoocmVpbnRlcnBy
ZXRfY2FzdDx2b2lkKio+KGltcGwucHRyKCkpKSk7CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHZv
aWQqIGV4cGVjdGVkVlRhYmxlUG9pbnRlciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1Jf
SU5TUEVDVElPTihfX2lkZW50aWZpZXIoIj8/XzdUZXN0Q2FsbFRyYWNlckBXZWJDb3JlQEA2QkAi
KSk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5D
b25zdHJ1Y3Rvci5jcHAKaW5kZXggMTVlMmU0MDA1ZTVlNWQ5NDQzYjNlNjlhYjA2MDhmYmY2NDIz
NjM2OC4uMWFjNmVhYjY0OWVmMjIwNzc2NGIyYzI0ZDg3NTljMmUzZjJiNDM4ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0
aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCkBA
IC0xODcsNyArMTg3LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVj
U3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogewogCiAjaWYgRU5BQkxF
KEJJTkRJTkdfSU5URUdSSVRZKQotICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSAqKHJl
aW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSk7CisgICAgdm9pZCogYWN0dWFsVlRh
YmxlUG9pbnRlciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1JfSU5TUEVDVElPTigqKHJl
aW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSkpOwogI2lmIFBMQVRGT1JNKFdJTikK
ICAgICB2b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5U
RVJfRk9SX0lOU1BFQ1RJT04oX19pZGVudGlmaWVyKCI/P183VGVzdENsYXNzV2l0aEpTQnVpbHRp
bkNvbnN0cnVjdG9yQFdlYkNvcmVAQDZCQCIpKTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JX
aXRoTm9JbnRlcmZhY2VPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmNw
cAppbmRleCAzMWEwYzE5ZDIwMzJjOTRhZDg4YjNhMjU3NDQxYTVkYzlhMmJkYzNmLi4xOTA1Zjk3
OGE4YzVhODM1YWE1MmY5YmIzODdlNWU0ZThkYTBhZDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRo
Tm9JbnRlcmZhY2VPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdC5j
cHAKQEAgLTE4NSw3ICsxODUsNyBAQCBKU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6
OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsCiB7CiAKICNpZiBF
TkFCTEUoQklORElOR19JTlRFR1JJVFkpCi0gICAgdm9pZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9
ICoocmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KGltcGwucHRyKCkpKTsKKyAgICB2b2lkKiBhY3R1
YWxWVGFibGVQb2ludGVyID0gV1RGX1BSRVBBUkVfVlRCTF9QT0lOVEVSX0ZPUl9JTlNQRUNUSU9O
KCoocmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KGltcGwucHRyKCkpKSk7CiAjaWYgUExBVEZPUk0o
V0lOKQogICAgIHZvaWQqIGV4cGVjdGVkVlRhYmxlUG9pbnRlciA9IFdURl9QUkVQQVJFX1ZUQkxf
UE9JTlRFUl9GT1JfSU5TUEVDVElPTihfX2lkZW50aWZpZXIoIj8/XzdUZXN0Q3VzdG9tQ29uc3Ry
dWN0b3JXaXRoTm9JbnRlcmZhY2VPYmplY3RAV2ViQ29yZUBANkJAIikpOwogI2Vsc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFi
bGVkQnlTZXR0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmNwcAppbmRleCBlOTYzYzZjYjY3YTFhNDc5NzE4N2Vh
ZmJhNGU3MGYxYWZjM2MzNWRiLi5lMDUyZjkxYjAwM2M4ZWU0ZDkxMDlhMGJiZWI1ZWU5NWM3NGY4
OWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwCkBAIC0zMjEsNyArMzIx
LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogewogCiAjaWYgRU5BQkxFKEJJTkRJTkdfSU5U
RUdSSVRZKQotICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSAqKHJlaW50ZXJwcmV0X2Nh
c3Q8dm9pZCoqPihpbXBsLnB0cigpKSk7CisgICAgdm9pZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9
IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1JfSU5TUEVDVElPTigqKHJlaW50ZXJwcmV0X2Nh
c3Q8dm9pZCoqPihpbXBsLnB0cigpKSkpOwogI2lmIFBMQVRGT1JNKFdJTikKICAgICB2b2lkKiBl
eHBlY3RlZFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BF
Q1RJT04oX19pZGVudGlmaWVyKCI/P183VGVzdEVuYWJsZWRCeVNldHRpbmdAV2ViQ29yZUBANkJA
IikpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcAppbmRleCAzNzUy
MjhjYjU0ODUxNDhiZTYxYzJhMjE1MGY1ZmQyNzMyM2QyN2FlLi42OGE3NjhiZWU1YjE4MzExOGU5
M2ZlNTYxOWMxMTYzMThjNTc5ZDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3Iu
Y3BwCkBAIC0zMTYsNyArMzE2LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlND
OjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogewogCiAjaWYg
RU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZKQotICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIg
PSAqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSk7CisgICAgdm9pZCogYWN0
dWFsVlRhYmxlUG9pbnRlciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1JfSU5TUEVDVElP
TigqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSkpOwogI2lmIFBMQVRGT1JN
KFdJTikKICAgICB2b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJM
X1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oX19pZGVudGlmaWVyKCI/P183VGVzdEV2ZW50Q29uc3Ry
dWN0b3JAV2ViQ29yZUBANkJAIikpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCmlu
ZGV4IDhiNjIzMDZhNzU5NTk2ZmNkODMyZTMyYzhkYWViNDUwNDk4ZTBhMTYuLmRkM2Q3MTlhNjQx
ZTgyZDQ1ZWNiNjE2ZWRjZjFlZTQ2ZDFmOWM0ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNw
cApAQCAtMjU5LDcgKzI1OSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6
RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKIHsKIAogI2lmIEVO
QUJMRShCSU5ESU5HX0lOVEVHUklUWSkKLSAgICB2b2lkKiBhY3R1YWxWVGFibGVQb2ludGVyID0g
KihyZWludGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpOworICAgIHZvaWQqIGFjdHVh
bFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJT04o
KihyZWludGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpKTsKICNpZiBQTEFURk9STShX
SU4pCiAgICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gV1RGX1BSRVBBUkVfVlRCTF9Q
T0lOVEVSX0ZPUl9JTlNQRUNUSU9OKF9faWRlbnRpZmllcigiPz9fN1Rlc3RFdmVudFRhcmdldEBX
ZWJDb3JlQEA2QkAiKSk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcAppbmRleCBlZmUzMTc0
YzQ1NDliOGQ3MjhlMWI4YTlmYzgwODA1ZDg2NzdhOGY4Li43MmVkOTMwNzFlZjZkYmJiMDE0ZjU3
ZTU3NmNlMTg1NWVhMjEwYjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcApAQCAtMjA0LDcgKzIw
NCw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKIHsKIAogI2lmIEVOQUJMRShCSU5ESU5HX0lO
VEVHUklUWSkKLSAgICB2b2lkKiBhY3R1YWxWVGFibGVQb2ludGVyID0gKihyZWludGVycHJldF9j
YXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpOworICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIg
PSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oKihyZWludGVycHJldF9j
YXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpKTsKICNpZiBQTEFURk9STShXSU4pCiAgICAgdm9pZCog
ZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gV1RGX1BSRVBBUkVfVlRCTF9QT0lOVEVSX0ZPUl9JTlNQ
RUNUSU9OKF9faWRlbnRpZmllcigiPz9fN1Rlc3RFeGNlcHRpb25AV2ViQ29yZUBANkJAIikpOwog
I2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAppbmRleCBmNjRj
NTg1YWYxOTMzY2QzZTRkYzViNjRlY2FmZGEwMDdjN2NkNDYxLi5kYWJiNWI5MjAxYmIyYWIxZTM2
ZWQ2NTQzNjM5OWJkYjQ0MzQ2NTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFj
aGFibGUuY3BwCkBAIC0yMTAsNyArMjEwLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0
ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogewog
CiAjaWYgRU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZKQotICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBv
aW50ZXIgPSAqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSk7CisgICAgdm9p
ZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1JfSU5T
UEVDVElPTigqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSkpOwogI2lmIFBM
QVRGT1JNKFdJTikKICAgICB2b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFS
RV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oX19pZGVudGlmaWVyKCI/P183VGVzdEdlbmVy
YXRlSXNSZWFjaGFibGVAV2ViQ29yZUBANkJAIikpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9i
amVjdC5jcHAKaW5kZXggMDRhZTc0OWI0YjM1OGFjMTMwN2I0YTg4OTk1OGIwNDM3NDM5MDI3Yi4u
NTBhNzkzYjQ5NTdkNzMwMzhmMTZkZjJhMWQ4NGRkMjRjZTgxMjI5YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEds
b2JhbE9iamVjdC5jcHAKQEAgLTU5NSw3ICs1OTUsNyBAQCBKU0M6OkpTVmFsdWUgdG9KU05ld2x5
Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
CiB7CiAKICNpZiBFTkFCTEUoQklORElOR19JTlRFR1JJVFkpCi0gICAgdm9pZCogYWN0dWFsVlRh
YmxlUG9pbnRlciA9ICoocmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KGltcGwucHRyKCkpKTsKKyAg
ICB2b2lkKiBhY3R1YWxWVGFibGVQb2ludGVyID0gV1RGX1BSRVBBUkVfVlRCTF9QT0lOVEVSX0ZP
Ul9JTlNQRUNUSU9OKCoocmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KGltcGwucHRyKCkpKSk7CiAj
aWYgUExBVEZPUk0oV0lOKQogICAgIHZvaWQqIGV4cGVjdGVkVlRhYmxlUG9pbnRlciA9IFdURl9Q
UkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1JfSU5TUEVDVElPTihfX2lkZW50aWZpZXIoIj8/XzdUZXN0
R2xvYmFsT2JqZWN0QFdlYkNvcmVAQDZCQCIpKTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRl
bnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKaW5kZXggNDdmMDg3OGViZDkxNjhhNWU3
ZDI0YTBlNWU3MzYwZmU3YWM2N2I0MC4uNDYwOTQyZTEzMTk4YjEyMmJkNjc2NDQ5NzU1NDE4ZjFh
MTczNmVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlm
aWVyLmNwcApAQCAtMjczLDcgKzI3Myw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVk
KEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKIHsKIAog
I2lmIEVOQUJMRShCSU5ESU5HX0lOVEVHUklUWSkKLSAgICB2b2lkKiBhY3R1YWxWVGFibGVQb2lu
dGVyID0gKihyZWludGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpOworICAgIHZvaWQq
IGFjdHVhbFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BF
Q1RJT04oKihyZWludGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpKTsKICNpZiBQTEFU
Rk9STShXSU4pCiAgICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gV1RGX1BSRVBBUkVf
VlRCTF9QT0lOVEVSX0ZPUl9JTlNQRUNUSU9OKF9faWRlbnRpZmllcigiPz9fN1Rlc3RJbmRleGVk
U2V0dGVyTm9JZGVudGlmaWVyQFdlYkNvcmVAQDZCQCIpKTsKICNlbHNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRl
clRocm93aW5nRXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCmluZGV4IDQw
YmVlZmY2MGNiMmRmY2Q0NmRlOTM1MjNhMzJiMTU2Y2VmMTRiMmYuLjYyOTc4NTFiODkyOWJhZDg1
NDQ5M2VmN2E4NWVkN2U3MTVjMWNlZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCkBAIC0yNzMsNyArMjczLDcgQEAgSlND
OjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LAogewogCiAjaWYgRU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZKQot
ICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSAqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoq
PihpbXBsLnB0cigpKSk7CisgICAgdm9pZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9IFdURl9QUkVQ
QVJFX1ZUQkxfUE9JTlRFUl9GT1JfSU5TUEVDVElPTigqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoq
PihpbXBsLnB0cigpKSkpOwogI2lmIFBMQVRGT1JNKFdJTikKICAgICB2b2lkKiBleHBlY3RlZFZU
YWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oX19p
ZGVudGlmaWVyKCI/P183VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkBXZWJDb3Jl
QEA2QkAiKSk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyLmNwcAppbmRleCA3NTViY2NjNzMzNGIwMjlhNjljOGQ1NTIxYmE5MjYwMTA5
MjYwNjc1Li4yNjg2MzljOGVkNWE2MmFkNmU5NmJhZjQ0MGMxZGRkNjBhZjEwZjY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhl
ZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcApAQCAt
MzA1LDcgKzMwNSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0
YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKIHsKIAogI2lmIEVOQUJMRShC
SU5ESU5HX0lOVEVHUklUWSkKLSAgICB2b2lkKiBhY3R1YWxWVGFibGVQb2ludGVyID0gKihyZWlu
dGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpOworICAgIHZvaWQqIGFjdHVhbFZUYWJs
ZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oKihyZWlu
dGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpKTsKICNpZiBQTEFURk9STShXSU4pCiAg
ICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gV1RGX1BSRVBBUkVfVlRCTF9QT0lOVEVS
X0ZPUl9JTlNQRUNUSU9OKF9faWRlbnRpZmllcigiPz9fN1Rlc3RJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXJAV2ViQ29yZUBANkJAIikpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJdGVyYWJsZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUuY3BwCmluZGV4
IDJlOTc5ZGJkN2YxMzYwNGQ4ZjY0YTE5YjZmMWQ4MTUzZTJjZWJlNWQuLmNmOTljZDE1ZGJjZjg3
MmFiNWQ4OTViNWY5NTAxMDA1MDgwYjNhNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJdGVyYWJsZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmNwcApAQCAtMjU3
LDcgKzI1Nyw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRl
KiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKIHsKIAogI2lmIEVOQUJMRShCSU5E
SU5HX0lOVEVHUklUWSkKLSAgICB2b2lkKiBhY3R1YWxWVGFibGVQb2ludGVyID0gKihyZWludGVy
cHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpOworICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBv
aW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oKihyZWludGVy
cHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpKTsKICNpZiBQTEFURk9STShXSU4pCiAgICAg
dm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gV1RGX1BSRVBBUkVfVlRCTF9QT0lOVEVSX0ZP
Ul9JTlNQRUNUSU9OKF9faWRlbnRpZmllcigiPz9fN1Rlc3RJdGVyYWJsZUBXZWJDb3JlQEA2QkAi
KSk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3Bw
CmluZGV4IDlhODBhYjA0MWM1NDFmYjQ5ODM1YmM3ZDM5ZmYyOTIxNWVmYWQ2ODYuLjk5NDVlMDFi
ZDQzOTAzNDBmNmY1NmExZjlhMGJjYWNiYjk5MmZkYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKQEAgLTIxMyw3ICsyMTMsNyBAQCBKU0M6OkpTVmFs
dWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsCiB7CiAKICNpZiBFTkFCTEUoQklORElOR19JTlRFR1JJVFkpCi0gICAgdm9p
ZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9ICoocmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KGltcGwu
cHRyKCkpKTsKKyAgICB2b2lkKiBhY3R1YWxWVGFibGVQb2ludGVyID0gV1RGX1BSRVBBUkVfVlRC
TF9QT0lOVEVSX0ZPUl9JTlNQRUNUSU9OKCoocmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KGltcGwu
cHRyKCkpKSk7CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHZvaWQqIGV4cGVjdGVkVlRhYmxlUG9p
bnRlciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1JfSU5TUEVDVElPTihfX2lkZW50aWZp
ZXIoIj8/XzdUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckBXZWJDb3JlQEA2QkAiKSk7CiAjZWxz
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyLmNwcAppbmRleCBhYWRhNDhjMDRlNmVkZTlhOGU0NzY2N2FmM2U1MTJmMzI3NTcz
Yzg5Li42MTRhYzk4MzU4ZWFhZWQ1YWVkZTAyNzAyYmMwNzlhNmNhYWJjOTI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJ
bmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVy
LmNwcApAQCAtMzM5LDcgKzMzOSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpT
Qzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKIHsKIAogI2lm
IEVOQUJMRShCSU5ESU5HX0lOVEVHUklUWSkKLSAgICB2b2lkKiBhY3R1YWxWVGFibGVQb2ludGVy
ID0gKihyZWludGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpOworICAgIHZvaWQqIGFj
dHVhbFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJ
T04oKihyZWludGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpKTsKICNpZiBQTEFURk9S
TShXSU4pCiAgICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gV1RGX1BSRVBBUkVfVlRC
TF9QT0lOVEVSX0ZPUl9JTlNQRUNUSU9OKF9faWRlbnRpZmllcigiPz9fN1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJAV2ViQ29yZUBANkJAIikpOwogI2Vsc2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb24uY3BwCmluZGV4IGMyN2ZiYmFkMDUyNDhmOTk4ZjIzNmQyOWQ0MjI0MDkyYTI1ZTI2
OTkuLmMyOGIwZGJiNzQ2YmYzMWRiMDViNGZlMThmMjQ2NGI0MmI5YzQyM2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5n
RXhjZXB0aW9uLmNwcApAQCAtMzM5LDcgKzMzOSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlD
cmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwK
IHsKIAogI2lmIEVOQUJMRShCSU5ESU5HX0lOVEVHUklUWSkKLSAgICB2b2lkKiBhY3R1YWxWVGFi
bGVQb2ludGVyID0gKihyZWludGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpOworICAg
IHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9S
X0lOU1BFQ1RJT04oKihyZWludGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpKTsKICNp
ZiBQTEFURk9STShXSU4pCiAgICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gV1RGX1BS
RVBBUkVfVlRCTF9QT0lOVEVSX0ZPUl9JTlNQRUNUSU9OKF9faWRlbnRpZmllcigiPz9fN1Rlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkBXZWJDb3JlQEA2QkAiKSk7CiAj
ZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJXaXRoSWRlbnRpZmllci5jcHAKaW5kZXggZTRiYmNlODBlY2E2Yjg3Mzc0MWZiZGI3YjZjMDdj
ZjBiNzkzM2I4MS4uNzNjM2VhNTAyMjZhNzM2ODI4ZTBhMzQ4OTc0ODBlMmE1MWFlMjgyZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0
aElkZW50aWZpZXIuY3BwCkBAIC0zOTMsNyArMzkzLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlNOZXds
eUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LAogewogCiAjaWYgRU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZKQotICAgIHZvaWQqIGFjdHVhbFZU
YWJsZVBvaW50ZXIgPSAqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSk7Cisg
ICAgdm9pZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9G
T1JfSU5TUEVDVElPTigqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSkpOwog
I2lmIFBMQVRGT1JNKFdJTikKICAgICB2b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50ZXIgPSBXVEZf
UFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oX19pZGVudGlmaWVyKCI/P183VGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyQFdlYkNvcmVAQDZCQCIpKTsKICNl
bHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggMzczM2E3OGEzYTNj
NDkwZWEzYzJkNzZlNTg4YzQyNDFiNzUzY2M2MC4uNjUyZjgxNTgyNjM4NzQ5MTUyNjM2ZGQ5OTEy
OGE2ZWY2NzA1MGU2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcApAQCAt
MjI2LDcgKzIyNiw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0
YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKIHsKIAogI2lmIEVOQUJMRShC
SU5ESU5HX0lOVEVHUklUWSkKLSAgICB2b2lkKiBhY3R1YWxWVGFibGVQb2ludGVyID0gKihyZWlu
dGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpOworICAgIHZvaWQqIGFjdHVhbFZUYWJs
ZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oKihyZWlu
dGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpKTsKICNpZiBQTEFURk9STShXSU4pCiAg
ICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gV1RGX1BSRVBBUkVfVlRCTF9QT0lOVEVS
X0ZPUl9JTlNQRUNUSU9OKF9faWRlbnRpZmllcigiPz9fN1Rlc3ROYW1lZENvbnN0cnVjdG9yQFdl
YkNvcmVAQDZCQCIpKTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJO
b0lkZW50aWZpZXIuY3BwCmluZGV4IDgyNTY3NjI0MmU1MzNiN2E5ZjEzN2RjZjdlNzA0Mzg0MDlh
MTc2M2IuLjc5OWNlOGQ0NTQ4NTc0MTRkNWFmOGU5ZDE2MDZlMGFhNmI2N2Q4MjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERl
bGV0ZXJOb0lkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIuY3BwCkBAIC0yNTIsNyAr
MjUyLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogewogCiAjaWYgRU5BQkxFKEJJTkRJTkdf
SU5URUdSSVRZKQotICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSAqKHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSk7CisgICAgdm9pZCogYWN0dWFsVlRhYmxlUG9pbnRl
ciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1JfSU5TUEVDVElPTigqKHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSkpOwogI2lmIFBMQVRGT1JNKFdJTikKICAgICB2b2lk
KiBleHBlY3RlZFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lO
U1BFQ1RJT04oX19pZGVudGlmaWVyKCI/P183VGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckBX
ZWJDb3JlQEA2QkAiKSk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERl
bGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKaW5kZXggOGYxNzE3MmFmMWQ5NDk1MDFjOTA2MjQz
YTFiZGUwYWI5ZTY0MWJjMy4uYzc2NGE3N2U3MmJjYzZhOWMzNDRiZWVkY2Q0NWExMGJhYjM2YWNh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNl
cHRpb24uY3BwCkBAIC0yNjYsNyArMjY2LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0
ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogewog
CiAjaWYgRU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZKQotICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBv
aW50ZXIgPSAqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSk7CisgICAgdm9p
ZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1JfSU5T
UEVDVElPTigqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSkpOwogI2lmIFBM
QVRGT1JNKFdJTikKICAgICB2b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFS
RV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oX19pZGVudGlmaWVyKCI/P183VGVzdE5hbWVk
RGVsZXRlclRocm93aW5nRXhjZXB0aW9uQFdlYkNvcmVAQDZCQCIpKTsKICNlbHNlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRE
ZWxldGVyV2l0aElkZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcAppbmRleCBmYzVm
NmY5NWZkZjY1M2NmYTYxYTY2MDMyNmViMDAxOTY2YTZhMjU4Li43MmVmOGI4YzdjNTA1M2FjZDQy
MTI3YzJkMjllNGI2MTRhODdkZDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERl
bGV0ZXJXaXRoSWRlbnRpZmllci5jcHAKQEAgLTI4Myw3ICsyODMsNyBAQCBKU0M6OkpTVmFsdWUg
dG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsCiB7CiAKICNpZiBFTkFCTEUoQklORElOR19JTlRFR1JJVFkpCi0gICAgdm9pZCog
YWN0dWFsVlRhYmxlUG9pbnRlciA9ICoocmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KGltcGwucHRy
KCkpKTsKKyAgICB2b2lkKiBhY3R1YWxWVGFibGVQb2ludGVyID0gV1RGX1BSRVBBUkVfVlRCTF9Q
T0lOVEVSX0ZPUl9JTlNQRUNUSU9OKCoocmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KGltcGwucHRy
KCkpKSk7CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHZvaWQqIGV4cGVjdGVkVlRhYmxlUG9pbnRl
ciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1JfSU5TUEVDVElPTihfX2lkZW50aWZpZXIo
Ij8/XzdUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXJAV2ViQ29yZUBANkJAIikpOwogI2Vs
c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0
ZXIuY3BwCmluZGV4IGUzZmZhNzgzMzhiYmVjY2E1MWU3YTFlMWYxNzFhYmMzNmFjYmUwYmMuLmVj
NDBiYmE5MzJkMjgzZWM0NzZlZWQwZWJiNmM1OWVkZDc0Y2RiMzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRo
SW5kZXhlZEdldHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyLmNwcApAQCAtMjcwLDcg
KzI3MCw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKIHsKIAogI2lmIEVOQUJMRShCSU5ESU5H
X0lOVEVHUklUWSkKLSAgICB2b2lkKiBhY3R1YWxWVGFibGVQb2ludGVyID0gKihyZWludGVycHJl
dF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpOworICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50
ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oKihyZWludGVycHJl
dF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpKTsKICNpZiBQTEFURk9STShXSU4pCiAgICAgdm9p
ZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gV1RGX1BSRVBBUkVfVlRCTF9QT0lOVEVSX0ZPUl9J
TlNQRUNUSU9OKF9faWRlbnRpZmllcigiPz9fN1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdl
dHRlckBXZWJDb3JlQEA2QkAiKSk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGguY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVy
Q2FsbFdpdGguY3BwCmluZGV4IGMxMTgyMGVmOGFkY2JlN2M0NzQ5N2E4MDQ1NTM4NDE1MjNiOGNl
MGYuLjQyYzExNDVlZGU4NDcwNGEyN2QyNGE5ZWZlYjM4ZTg1Yjc4Y2ZiYmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRl
ckNhbGxXaXRoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aC5jcHAKQEAgLTIzMSw3ICsyMzEsNyBAQCBKU0M6
OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsCiB7CiAKICNpZiBFTkFCTEUoQklORElOR19JTlRFR1JJVFkpCi0g
ICAgdm9pZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9ICoocmVpbnRlcnByZXRfY2FzdDx2b2lkKio+
KGltcGwucHRyKCkpKTsKKyAgICB2b2lkKiBhY3R1YWxWVGFibGVQb2ludGVyID0gV1RGX1BSRVBB
UkVfVlRCTF9QT0lOVEVSX0ZPUl9JTlNQRUNUSU9OKCoocmVpbnRlcnByZXRfY2FzdDx2b2lkKio+
KGltcGwucHRyKCkpKSk7CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHZvaWQqIGV4cGVjdGVkVlRh
YmxlUG9pbnRlciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1JfSU5TUEVDVElPTihfX2lk
ZW50aWZpZXIoIj8/XzdUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aEBXZWJDb3JlQEA2QkAiKSk7CiAj
ZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllci5jcHAKaW5k
ZXggNjNkYmM2M2RiZTk2ZGYyZTBjYzBmZGJkZTE5MjU3MjcwZjVkZWY3My4uZTIwMjQ3MGI3Y2Vk
OTdiNDRmOTgwYmNhZjFiNTcwYmQxNmE3YjU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRHZXR0ZXJOb0lkZW50aWZpZXIuY3BwCkBAIC0yMzEsNyArMjMxLDcgQEAgSlNDOjpKU1ZhbHVl
IHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LAogewogCiAjaWYgRU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZKQotICAgIHZvaWQq
IGFjdHVhbFZUYWJsZVBvaW50ZXIgPSAqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0
cigpKSk7CisgICAgdm9pZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9IFdURl9QUkVQQVJFX1ZUQkxf
UE9JTlRFUl9GT1JfSU5TUEVDVElPTigqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0
cigpKSkpOwogI2lmIFBMQVRGT1JNKFdJTikKICAgICB2b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50
ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oX19pZGVudGlmaWVy
KCI/P183VGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyQFdlYkNvcmVAQDZCQCIpKTsKICNlbHNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKaW5k
ZXggYmQ5NmNhYjI5YWM2MGQ5ZWY4ODczOTJmMGMzNzlmZGZlZTYwMWRmOC4uMGViZTQ3MzkwMzgw
ZTRmMTkwNmYxMWNiZmUzODE5NzI0YjZiZmU4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZEdldHRlcldpdGhJZGVudGlmaWVyLmNwcApAQCAtMjU5LDcgKzI1OSw3IEBAIEpTQzo6SlNW
YWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwKIHsKIAogI2lmIEVOQUJMRShCSU5ESU5HX0lOVEVHUklUWSkKLSAgICB2
b2lkKiBhY3R1YWxWVGFibGVQb2ludGVyID0gKihyZWludGVycHJldF9jYXN0PHZvaWQqKj4oaW1w
bC5wdHIoKSkpOworICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9W
VEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oKihyZWludGVycHJldF9jYXN0PHZvaWQqKj4oaW1w
bC5wdHIoKSkpKTsKICNpZiBQTEFURk9STShXSU4pCiAgICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQ
b2ludGVyID0gV1RGX1BSRVBBUkVfVlRCTF9QT0lOVEVSX0ZPUl9JTlNQRUNUSU9OKF9faWRlbnRp
ZmllcigiPz9fN1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyQFdlYkNvcmVAQDZCQCIpKTsK
ICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcApp
bmRleCBjODliMjNiZmQ5YWJmNGY4NTM4MWU0OGFjNmJhZjkzYWEzYzdjZjY1Li5jOGM5ZGEzYWVk
M2FmYTQzZmYwZTEyZGEyMDI0ODY3MjIxYjNmNGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZFNldHRlck5vSWRlbnRpZmllci5jcHAKQEAgLTI5Myw3ICsyOTMsNyBAQCBKU0M6OkpTVmFs
dWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsCiB7CiAKICNpZiBFTkFCTEUoQklORElOR19JTlRFR1JJVFkpCi0gICAgdm9p
ZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9ICoocmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KGltcGwu
cHRyKCkpKTsKKyAgICB2b2lkKiBhY3R1YWxWVGFibGVQb2ludGVyID0gV1RGX1BSRVBBUkVfVlRC
TF9QT0lOVEVSX0ZPUl9JTlNQRUNUSU9OKCoocmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KGltcGwu
cHRyKCkpKSk7CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHZvaWQqIGV4cGVjdGVkVlRhYmxlUG9p
bnRlciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1JfSU5TUEVDVElPTihfX2lkZW50aWZp
ZXIoIj8/XzdUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJAV2ViQ29yZUBANkJAIikpOwogI2Vs
c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9u
LmNwcAppbmRleCAzYWZhMTFkMGFlM2U4OWYzY2JmMGVlODk0NGYxZDZiZWYxMTRkOGU3Li5iYmNi
MjBjZTg1ZGU1NjhiMGQ0ZDY1NTI2OTNkODgxNmYxNWNhNzc2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCkBAIC0yOTMsNyArMjkz
LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogewogCiAjaWYgRU5BQkxFKEJJTkRJTkdfSU5U
RUdSSVRZKQotICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSAqKHJlaW50ZXJwcmV0X2Nh
c3Q8dm9pZCoqPihpbXBsLnB0cigpKSk7CisgICAgdm9pZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9
IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1JfSU5TUEVDVElPTigqKHJlaW50ZXJwcmV0X2Nh
c3Q8dm9pZCoqPihpbXBsLnB0cigpKSkpOwogI2lmIFBMQVRGT1JNKFdJTikKICAgICB2b2lkKiBl
eHBlY3RlZFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BF
Q1RJT04oX19pZGVudGlmaWVyKCI/P183VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25A
V2ViQ29yZUBANkJAIikpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRl
cldpdGhJZGVudGlmaWVyLmNwcAppbmRleCA5Mjg3MzY0MWVmN2Y0NDlkMThkYzU2YmFhY2JlMDdm
M2E4OGU2ZDJmLi5jYTBmYTI1MmU5Njc5YWZiMWY4MDhlOTFkOGNmNjRlNmUzMzkyMGRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCkBAIC0z
MjQsNyArMzI0LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3Rh
dGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogewogCiAjaWYgRU5BQkxFKEJJ
TkRJTkdfSU5URUdSSVRZKQotICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSAqKHJlaW50
ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSk7CisgICAgdm9pZCogYWN0dWFsVlRhYmxl
UG9pbnRlciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1JfSU5TUEVDVElPTigqKHJlaW50
ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSkpOwogI2lmIFBMQVRGT1JNKFdJTikKICAg
ICB2b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJf
Rk9SX0lOU1BFQ1RJT04oX19pZGVudGlmaWVyKCI/P183VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50
aWZpZXJAV2ViQ29yZUBANkJAIikpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0
dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyLmNwcAppbmRleCA2NmQ1YThhZGFiYTU5ZWUwODkz
NTI2ZDQ4OGQxNmI5OTM1YzM5ZGY5Li5iMGM4ODgxM2ExMWY1MDE1YjZjOTk1NzllZjM0YTkzYTk1
ZTE2ODVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXIuY3BwCkBAIC0zNjcsNyArMzY3LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNy
ZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAog
ewogCiAjaWYgRU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZKQotICAgIHZvaWQqIGFjdHVhbFZUYWJs
ZVBvaW50ZXIgPSAqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSk7CisgICAg
dm9pZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1Jf
SU5TUEVDVElPTigqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSkpOwogI2lm
IFBMQVRGT1JNKFdJTikKICAgICB2b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJF
UEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oX19pZGVudGlmaWVyKCI/P183VGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJAV2ViQ29yZUBANkJAIikpOwogI2Vsc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVy
QW5kU2V0dGVyLmNwcAppbmRleCAzYzI5MTM3ZDNhNmExNzM2NTMwODNjZTc3NzRjODA4MzdmY2Iw
MTJiLi41ZmZmZmVmNDNjZmNhY2ZkYjBiNjRjM2RiYjBiMzM3NjljYTg1ZjczIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJB
bmRTZXR0ZXIuY3BwCkBAIC00MTcsNyArNDE3LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNy
ZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAog
ewogCiAjaWYgRU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZKQotICAgIHZvaWQqIGFjdHVhbFZUYWJs
ZVBvaW50ZXIgPSAqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSk7CisgICAg
dm9pZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1Jf
SU5TUEVDVElPTigqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSkpOwogI2lm
IFBMQVRGT1JNKFdJTikKICAgICB2b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJF
UEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oX19pZGVudGlmaWVyKCI/P183VGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXJAV2ViQ29yZUBANkJAIikpOwogI2Vs
c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1
aWx0aW5zLmNwcAppbmRleCBjMzNmZDhlZDc1MTAyYTA2ZGViNDYxODM0MzI0NWMxOWMxNGY2MDM2
Li5mODc1YjFmNWI2MGEwZjQ3NGNlNDIzMWE1MmZhM2EzZjliZDk2MjEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoT3ZlcnJpZGVCdWlsdGlucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMuY3BwCkBA
IC0yODAsNyArMjgwLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVj
U3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogewogCiAjaWYgRU5BQkxF
KEJJTkRJTkdfSU5URUdSSVRZKQotICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSAqKHJl
aW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSk7CisgICAgdm9pZCogYWN0dWFsVlRh
YmxlUG9pbnRlciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1JfSU5TUEVDVElPTigqKHJl
aW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSkpOwogI2lmIFBMQVRGT1JNKFdJTikK
ICAgICB2b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5U
RVJfRk9SX0lOU1BFQ1RJT04oX19pZGVudGlmaWVyKCI/P183VGVzdE5hbWVkU2V0dGVyV2l0aE92
ZXJyaWRlQnVpbHRpbnNAV2ViQ29yZUBANkJAIikpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhV
bmZvcmdhYmxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMuY3BwCmlu
ZGV4IDQ0MDU3ZmU4N2ExMmM2OWQ5MDcxMDc0MGUyNGEwOTA4ZGY5NGM0NTkuLmNkOGVmYTYxY2M2
MWYyOGQ4NjQwYWZkNDg5MWEzNTNiODQ5YzZiZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxl
UHJvcGVydGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzLmNwcApAQCAtMzYy
LDcgKzM2Miw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRl
KiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKIHsKIAogI2lmIEVOQUJMRShCSU5E
SU5HX0lOVEVHUklUWSkKLSAgICB2b2lkKiBhY3R1YWxWVGFibGVQb2ludGVyID0gKihyZWludGVy
cHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpOworICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBv
aW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oKihyZWludGVy
cHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpKTsKICNpZiBQTEFURk9STShXSU4pCiAgICAg
dm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gV1RGX1BSRVBBUkVfVlRCTF9QT0lOVEVSX0ZP
Ul9JTlNQRUNUSU9OKF9faWRlbnRpZmllcigiPz9fN1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdh
YmxlUHJvcGVydGllc0BXZWJDb3JlQEA2QkAiKSk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVu
Zm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJs
ZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zLmNwcAppbmRleCBkYjJkNmM1OTBlYTQ4ZWNl
MTI4ZGQ4MmVhNDg0YTE4MTJlZDIwY2QzLi5kMGIxZGE3NmRkYjM1NjQ3OWZjMTJlOTE5MTM1YTk0
YjAwNzViZDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlk
ZUJ1aWx0aW5zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1
aWx0aW5zLmNwcApAQCAtMzQ5LDcgKzM0OSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVh
dGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKIHsK
IAogI2lmIEVOQUJMRShCSU5ESU5HX0lOVEVHUklUWSkKLSAgICB2b2lkKiBhY3R1YWxWVGFibGVQ
b2ludGVyID0gKihyZWludGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpOworICAgIHZv
aWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lO
U1BFQ1RJT04oKihyZWludGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpKTsKICNpZiBQ
TEFURk9STShXSU4pCiAgICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gV1RGX1BSRVBB
UkVfVlRCTF9QT0lOVEVSX0ZPUl9JTlNQRUNUSU9OKF9faWRlbnRpZmllcigiPz9fN1Rlc3ROYW1l
ZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnNAV2ViQ29y
ZUBANkJAIikpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAppbmRleCBiMmJhNTU5MTA4MzliN2UxODdhZGZk
NWFjZDczZjgwYzI3MzE5Nzk3Li4wNjEzMzg1YWRjNTFhNmU2NjE1OWRiZDZjZjRmMzEzMGFhODJh
ZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5vZGUuY3BwCkBAIC00MjUsNyArNDI1LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlNO
ZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LAogewogCiAjaWYgRU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZKQotICAgIHZvaWQqIGFjdHVh
bFZUYWJsZVBvaW50ZXIgPSAqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSk7
CisgICAgdm9pZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRF
Ul9GT1JfSU5TUEVDVElPTigqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSkp
OwogI2lmIFBMQVRGT1JNKFdJTikKICAgICB2b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50ZXIgPSBX
VEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oX19pZGVudGlmaWVyKCI/P183
VGVzdE5vZGVAV2ViQ29yZUBANkJAIikpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKaW5kZXggZDVmZjFjMDY3
YmM3OTM4MDg3ZDRkMWUzMDU4ZTc5OTI4YjJhZWNlZi4uYmE4MmRmMDllZTliMDA1OWNmZWZlNTZj
NmFmMjQ5ZTA5MTBmMmU0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTg0MTcsNyArODQxNyw3IEBAIEpTQzo6
SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwKIHsKIAogI2lmIEVOQUJMRShCSU5ESU5HX0lOVEVHUklUWSkKLSAg
ICB2b2lkKiBhY3R1YWxWVGFibGVQb2ludGVyID0gKihyZWludGVycHJldF9jYXN0PHZvaWQqKj4o
aW1wbC5wdHIoKSkpOworICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFS
RV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oKihyZWludGVycHJldF9jYXN0PHZvaWQqKj4o
aW1wbC5wdHIoKSkpKTsKICNpZiBQTEFURk9STShXSU4pCiAgICAgdm9pZCogZXhwZWN0ZWRWVGFi
bGVQb2ludGVyID0gV1RGX1BSRVBBUkVfVlRCTF9QT0lOVEVSX0ZPUl9JTlNQRUNUSU9OKF9faWRl
bnRpZmllcigiPz9fN1Rlc3RPYmpAV2ViQ29yZUBANkJAIikpOwogI2Vsc2UKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAppbmRleCA0MTgxMWI5Zjc3MWY3MmVl
NjYxNGEzNzUwNjIzNDI5ZjE1YTYyNzM5Li5jMjYzYmE5MDAwMDE1MTliOGZkYmFhYzYxMjVkZTg1
MjQwNWM0MThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMu
Y3BwCkBAIC0yNzYsNyArMjc2LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlND
OjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogewogCiAjaWYg
RU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZKQotICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIg
PSAqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSk7CisgICAgdm9pZCogYWN0
dWFsVlRhYmxlUG9pbnRlciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1JfSU5TUEVDVElP
TigqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSkpOwogI2lmIFBMQVRGT1JN
KFdJTikKICAgICB2b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJM
X1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oX19pZGVudGlmaWVyKCI/P183VGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnNAV2ViQ29yZUBANkJAIikpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzV2l0aFNlcXVlbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcAppbmRleCA5
MGNlOTBkNTAyMGJiMTg4NjE3ZGMxNDY0YTA3MTA3N2E3OTEzZTYyLi4zZTExNzNkY2M4ZDk2ODhj
ZjExNDc2OGIzYmZhZTdhYWFmM2FlMzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1
ZW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UuY3BwCkBAIC0yMzIsNyArMjMy
LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogewogCiAjaWYgRU5BQkxFKEJJTkRJTkdfSU5U
RUdSSVRZKQotICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSAqKHJlaW50ZXJwcmV0X2Nh
c3Q8dm9pZCoqPihpbXBsLnB0cigpKSk7CisgICAgdm9pZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9
IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1JfSU5TUEVDVElPTigqKHJlaW50ZXJwcmV0X2Nh
c3Q8dm9pZCoqPihpbXBsLnB0cigpKSkpOwogI2lmIFBMQVRGT1JNKFdJTikKICAgICB2b2lkKiBl
eHBlY3RlZFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BF
Q1RJT04oX19pZGVudGlmaWVyKCI/P183VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2Vx
dWVuY2VAV2ViQ29yZUBANkJAIikpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0
aW5zLmNwcAppbmRleCAwMzkyOGI1MWQxMWRkMTcxNTkxNGI1Y2UxNjFlYmNiODUwYmM0Y2E3Li41
MjJiYTliNWM4ZTUyN2FkYjRmOThiYzNiOThjYmNlODA5ODEwN2QwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlu
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE92ZXJyaWRlQnVpbHRpbnMuY3BwCkBAIC0yNjIsNyArMjYyLDcgQEAgSlNDOjpKU1ZhbHVlIHRv
SlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LAogewogCiAjaWYgRU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZKQotICAgIHZvaWQqIGFj
dHVhbFZUYWJsZVBvaW50ZXIgPSAqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigp
KSk7CisgICAgdm9pZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9J
TlRFUl9GT1JfSU5TUEVDVElPTigqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigp
KSkpOwogI2lmIFBMQVRGT1JNKFdJTikKICAgICB2b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50ZXIg
PSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oX19pZGVudGlmaWVyKCI/
P183VGVzdE92ZXJyaWRlQnVpbHRpbnNAV2ViQ29yZUBANkJAIikpOwogI2Vsc2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQbHVnaW5J
bnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFBsdWdpbkludGVyZmFjZS5jcHAKaW5kZXggYjA0YzM1YmQxNTI0MGE4MDY4ODYxYjI1ZWYy
Yzc3OGE4YjQ1YzUxMS4uZjBmZjIyMmMwYzZlYTNkY2I2Yzc0YTIzODdlNjRhMDNkYWZmMzE2MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFBsdWdpbkludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFjZS5jcHAKQEAgLTIzNSw3ICsyMzUsNyBAQCBK
U0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsCiB7CiAKICNpZiBFTkFCTEUoQklORElOR19JTlRFR1JJVFkp
Ci0gICAgdm9pZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9ICoocmVpbnRlcnByZXRfY2FzdDx2b2lk
Kio+KGltcGwucHRyKCkpKTsKKyAgICB2b2lkKiBhY3R1YWxWVGFibGVQb2ludGVyID0gV1RGX1BS
RVBBUkVfVlRCTF9QT0lOVEVSX0ZPUl9JTlNQRUNUSU9OKCoocmVpbnRlcnByZXRfY2FzdDx2b2lk
Kio+KGltcGwucHRyKCkpKSk7CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHZvaWQqIGV4cGVjdGVk
VlRhYmxlUG9pbnRlciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1JfSU5TUEVDVElPTihf
X2lkZW50aWZpZXIoIj8/XzdUZXN0UGx1Z2luSW50ZXJmYWNlQFdlYkNvcmVAQDZCQCIpKTsKICNl
bHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuY3BwCmluZGV4IDE0
OWNjOWI3YzYwYmViMWFiMWJlMjcxYjZiNDUxZGFmMThiNmY0MjEuLmFmNmJlZDkzOGM0ZDRkNGRm
MGM4NmQ4M2Y3NjYxOTEzNTVhNDczZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVq
ZWN0aW9uRXZlbnQuY3BwCkBAIC0yOTgsNyArMjk4LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlNOZXds
eUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LAogewogCiAjaWYgRU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZKQotICAgIHZvaWQqIGFjdHVhbFZU
YWJsZVBvaW50ZXIgPSAqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSk7Cisg
ICAgdm9pZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9G
T1JfSU5TUEVDVElPTigqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSkpOwog
I2lmIFBMQVRGT1JNKFdJTikKICAgICB2b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50ZXIgPSBXVEZf
UFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oX19pZGVudGlmaWVyKCI/P183VGVz
dFByb21pc2VSZWplY3Rpb25FdmVudEBXZWJDb3JlQEA2QkAiKSk7CiAjZWxzZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6
YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFNlcmlhbGl6YXRpb24uY3BwCmluZGV4IDM2ZDkyZDAwMDkxYzg2M2RmZjM2MWQ2MTY4NWY5N2Rh
Zjc1MTA4ZjQuLjc0MjgwNWFhNGRmNTUxOGNkMmNmYWI5OGViODhlYWQ4N2JlYmE4ZTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJp
YWxpemF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0U2VyaWFsaXphdGlvbi5jcHAKQEAgLTU2OSw3ICs1NjksNyBAQCBKU0M6OkpTVmFs
dWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsCiB7CiAKICNpZiBFTkFCTEUoQklORElOR19JTlRFR1JJVFkpCi0gICAgdm9p
ZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9ICoocmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KGltcGwu
cHRyKCkpKTsKKyAgICB2b2lkKiBhY3R1YWxWVGFibGVQb2ludGVyID0gV1RGX1BSRVBBUkVfVlRC
TF9QT0lOVEVSX0ZPUl9JTlNQRUNUSU9OKCoocmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KGltcGwu
cHRyKCkpKSk7CiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHZvaWQqIGV4cGVjdGVkVlRhYmxlUG9p
bnRlciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1JfSU5TUEVDVElPTihfX2lkZW50aWZp
ZXIoIj8/XzdUZXN0U2VyaWFsaXphdGlvbkBXZWJDb3JlQEA2QkAiKSk7CiAjZWxzZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcApp
bmRleCBkM2ZlZGFhYjk2NTdkYjU0ZDNjYmI1NzliMGJjOGQ0NTAwZTdkZWI2Li4zZDYyYTllODQz
ZmU1ZWY4NzdjNGVlMTVhZDU2OTFhMjQ0ODgzNzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcApAQCAtMzcyLDcgKzM3Miw3
IEBAIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKIHsKIAogI2lmIEVOQUJMRShCSU5ESU5HX0lOVEVH
UklUWSkKLSAgICB2b2lkKiBhY3R1YWxWVGFibGVQb2ludGVyID0gKihyZWludGVycHJldF9jYXN0
PHZvaWQqKj4oaW1wbC5wdHIoKSkpOworICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSBX
VEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oKihyZWludGVycHJldF9jYXN0
PHZvaWQqKj4oaW1wbC5wdHIoKSkpKTsKICNpZiBQTEFURk9STShXSU4pCiAgICAgdm9pZCogZXhw
ZWN0ZWRWVGFibGVQb2ludGVyID0gV1RGX1BSRVBBUkVfVlRCTF9QT0lOVEVSX0ZPUl9JTlNQRUNU
SU9OKF9faWRlbnRpZmllcigiPz9fN1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VA
V2ViQ29yZUBANkJAIikpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuY3BwCmluZGV4IGQy
Mjc1ZWRhMjJmNjZkZGNkOWM5NTRhYmIzYWUxZTgyZTgxMWZmYmMuLjFiMzExODJiMWNhYzQwYTk1
ZjA5NGMwOTA0N2U0MWZkYjg1MzEyYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmNwcApAQCAt
MjA2LDcgKzIwNiw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0
YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKIHsKIAogI2lmIEVOQUJMRShC
SU5ESU5HX0lOVEVHUklUWSkKLSAgICB2b2lkKiBhY3R1YWxWVGFibGVQb2ludGVyID0gKihyZWlu
dGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpOworICAgIHZvaWQqIGFjdHVhbFZUYWJs
ZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oKihyZWlu
dGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpKTsKICNpZiBQTEFURk9STShXSU4pCiAg
ICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gV1RGX1BSRVBBUkVfVlRCTF9QT0lOVEVS
X0ZPUl9JTlNQRUNUSU9OKF9faWRlbnRpZmllcigiPz9fN1Rlc3RTdHJpbmdpZmllckBXZWJDb3Jl
QEA2QkAiKSk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllckFu
b255bW91c09wZXJhdGlvbi5jcHAKaW5kZXggMDQ1OWMxYWU5OGQzODM5ZGI3NTdlY2M3ODYwYWJj
MzlhNTUyOWU3Mi4uMmVlOTA4MzVjNzM1MDljOGIwZTBiM2U3MmFlYTljY2ZiZDAyZmIyNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0
cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24u
Y3BwCkBAIC0yMDYsNyArMjA2LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlND
OjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogewogCiAjaWYg
RU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZKQotICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIg
PSAqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSk7CisgICAgdm9pZCogYWN0
dWFsVlRhYmxlUG9pbnRlciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1JfSU5TUEVDVElP
TigqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSkpOwogI2lmIFBMQVRGT1JN
KFdJTikKICAgICB2b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJM
X1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oX19pZGVudGlmaWVyKCI/P183VGVzdFN0cmluZ2lmaWVy
QW5vbnltb3VzT3BlcmF0aW9uQFdlYkNvcmVAQDZCQCIpKTsKICNlbHNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJO
YW1lZE9wZXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbi5jcHAKaW5kZXggMGYwYTkxNGMzNzk1
MDE4NDVkZGViMmZmZTA0NjEyMTQyYWE4YjBiOS4uYjM2ZjIwMTFhZjI0MGNmN2NmYTQ1MmNmNGY4
YjFlMzdjODE4Y2IzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck5hbWVk
T3BlcmF0aW9uLmNwcApAQCAtMjIxLDcgKzIyMSw3IEBAIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlD
cmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwK
IHsKIAogI2lmIEVOQUJMRShCSU5ESU5HX0lOVEVHUklUWSkKLSAgICB2b2lkKiBhY3R1YWxWVGFi
bGVQb2ludGVyID0gKihyZWludGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpOworICAg
IHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9S
X0lOU1BFQ1RJT04oKihyZWludGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpKTsKICNp
ZiBQTEFURk9STShXSU4pCiAgICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gV1RGX1BS
RVBBUkVfVlRCTF9QT0lOVEVSX0ZPUl9JTlNQRUNUSU9OKF9faWRlbnRpZmllcigiPz9fN1Rlc3RT
dHJpbmdpZmllck5hbWVkT3BlcmF0aW9uQFdlYkNvcmVAQDZCQCIpKTsKICNlbHNlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5n
aWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMu
Y3BwCmluZGV4IGQ2OTljODE3MTExMDBkYzBiNjQxMDkyMzk1Y2JlMDAzZjY0NjE4YzkuLjkzYWZi
NmY0ZmZjZjQ4NTNmNmM3NTQzMjE4OTQ0NTAxZDA5OTE4YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlv
bkltcGxlbWVudGVkQXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMuY3BwCkBAIC0y
MjEsNyArMjIxLDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3Rh
dGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogewogCiAjaWYgRU5BQkxFKEJJ
TkRJTkdfSU5URUdSSVRZKQotICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSAqKHJlaW50
ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSk7CisgICAgdm9pZCogYWN0dWFsVlRhYmxl
UG9pbnRlciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1JfSU5TUEVDVElPTigqKHJlaW50
ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSkpOwogI2lmIFBMQVRGT1JNKFdJTikKICAg
ICB2b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJf
Rk9SX0lOU1BFQ1RJT04oX19pZGVudGlmaWVyKCI/P183VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9u
SW1wbGVtZW50ZWRBc0BXZWJDb3JlQEA2QkAiKSk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0
aW9uTmFtZWRUb1N0cmluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nLmNwcAppbmRleCAz
ZDE5MDM0MWM1NzMwNTA3YjFiMzcxNTM1MjEyZmFhYjUyZTY3Nzg4Li4wZmRlY2UyMWZhMzYxNTEw
ZDZmODk5MjYzNTFmOWQ4MjhkYTQ3MWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3Ry
aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nLmNwcApAQCAtMjA2LDcgKzIwNiw3
IEBAIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwKIHsKIAogI2lmIEVOQUJMRShCSU5ESU5HX0lOVEVH
UklUWSkKLSAgICB2b2lkKiBhY3R1YWxWVGFibGVQb2ludGVyID0gKihyZWludGVycHJldF9jYXN0
PHZvaWQqKj4oaW1wbC5wdHIoKSkpOworICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSBX
VEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oKihyZWludGVycHJldF9jYXN0
PHZvaWQqKj4oaW1wbC5wdHIoKSkpKTsKICNpZiBQTEFURk9STShXSU4pCiAgICAgdm9pZCogZXhw
ZWN0ZWRWVGFibGVQb2ludGVyID0gV1RGX1BSRVBBUkVfVlRCTF9QT0lOVEVSX0ZPUl9JTlNQRUNU
SU9OKF9faWRlbnRpZmllcigiPz9fN1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJp
bmdAV2ViQ29yZUBANkJAIikpOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJp
bmdpZmllclJlYWRPbmx5QXR0cmlidXRlLmNwcAppbmRleCA4M2Q3ODc0NjRhMjMwNTJlODQ0MDUz
ZmIxZjNmZjZhZjI2YjNlMDQ3Li5lZWQ5ZDNkYjY5MWNkN2QyMjM1NDAwYTkxOTMwODcyMjRkYzU1
YWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRy
aWJ1dGUuY3BwCkBAIC0yMjgsNyArMjI4LDcgQEAgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0
ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogewog
CiAjaWYgRU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZKQotICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBv
aW50ZXIgPSAqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSk7CisgICAgdm9p
ZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9IFdURl9QUkVQQVJFX1ZUQkxfUE9JTlRFUl9GT1JfSU5T
UEVDVElPTigqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSkpOwogI2lmIFBM
QVRGT1JNKFdJTikKICAgICB2b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFS
RV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oX19pZGVudGlmaWVyKCI/P183VGVzdFN0cmlu
Z2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGVAV2ViQ29yZUBANkJAIikpOwogI2Vsc2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdp
ZmllclJlYWRXcml0ZUF0dHJpYnV0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuY3BwCmluZGV4
IDQxZGFkZWVmMDVmY2Y5ODNkZmI2NDBmOTEwY2FhNjgzNTJmNjlmOTYuLmMxODFiMWY0YzNmZDJk
OWJjMzAyMjhmMzA4MzExZjM3NGE5YTAyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlLmNwcApAQCAtMjQ2LDcgKzI0Niw3IEBAIEpT
Qzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwKIHsKIAogI2lmIEVOQUJMRShCSU5ESU5HX0lOVEVHUklUWSkK
LSAgICB2b2lkKiBhY3R1YWxWVGFibGVQb2ludGVyID0gKihyZWludGVycHJldF9jYXN0PHZvaWQq
Kj4oaW1wbC5wdHIoKSkpOworICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSBXVEZfUFJF
UEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oKihyZWludGVycHJldF9jYXN0PHZvaWQq
Kj4oaW1wbC5wdHIoKSkpKTsKICNpZiBQTEFURk9STShXSU4pCiAgICAgdm9pZCogZXhwZWN0ZWRW
VGFibGVQb2ludGVyID0gV1RGX1BSRVBBUkVfVlRCTF9QT0lOVEVSX0ZPUl9JTlNQRUNUSU9OKF9f
aWRlbnRpZmllcigiPz9fN1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZUBXZWJDb3Jl
QEA2QkAiKSk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKaW5kZXggMzM2NzFkY2FhOTllOTEz
YmFhMTM3ODQwYmVjOTBjMTZiNWE0MjRmNi4uODg3YTE2NDg1NTA1MTNlZTU3ZWE3YWFjNjM4OTMy
ODBkN2NhOGM4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCkBAIC03NjgsNyArNzY4LDcgQEAgSlND
OjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LAogewogCiAjaWYgRU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZKQot
ICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSAqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoq
PihpbXBsLnB0cigpKSk7CisgICAgdm9pZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9IFdURl9QUkVQ
QVJFX1ZUQkxfUE9JTlRFUl9GT1JfSU5TUEVDVElPTigqKHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoq
PihpbXBsLnB0cigpKSkpOwogI2lmIFBMQVRGT1JNKFdJTikKICAgICB2b2lkKiBleHBlY3RlZFZU
YWJsZVBvaW50ZXIgPSBXVEZfUFJFUEFSRV9WVEJMX1BPSU5URVJfRk9SX0lOU1BFQ1RJT04oX19p
ZGVudGlmaWVyKCI/P183VGVzdFR5cGVkZWZzQFdlYkNvcmVAQDZCQCIpKTsKICNlbHNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmlu
ZGV4IDE4ZmY5MThiYjZhY2Y0OTMwZmViMzgxYTQ1Mjk2NzgzM2M3ZWE3MzAuLjkyM2FiNTRkNGYy
MDQ4MGI1M2IzMzhkYTkwYjkwNTdlYWQxYTEyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC02Miw2ICs2Miw3IEBACiAj
aW5jbHVkZSAiUmVjdC5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyQm94LmgiCisjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5
bGUuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU1ZH
RWxlbWVudC5oIgpAQCAtOTIzLDcgKzkyNCw4IEBAIHN0YXRpYyBSZWY8Q1NTRnVuY3Rpb25WYWx1
ZT4gbWF0cml4VHJhbnNmb3JtVmFsdWUoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyCiAK
IHN0YXRpYyBSZWY8Q1NTVmFsdWU+IGNvbXB1dGVkVHJhbnNmb3JtKFJlbmRlck9iamVjdCogcmVu
ZGVyZXIsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKIHsKLSAgICBpZiAoIXJlbmRlcmVyIHx8
ICFyZW5kZXJlci0+aGFzVHJhbnNmb3JtKCkpCisgICAgLy8gSW5saW5lIHJlbmRlcmVycyBkbyBu
b3Qgc3VwcG9ydCB0cmFuc2Zvcm1zLgorICAgIGlmICghcmVuZGVyZXIgfHwgaXM8UmVuZGVySW5s
aW5lPigqcmVuZGVyZXIpIHx8ICFzdHlsZS5oYXNUcmFuc2Zvcm0oKSkKICAgICAgICAgcmV0dXJu
IENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVl
Tm9uZSk7CiAKICAgICBGbG9hdFJlY3QgcGl4ZWxTbmFwcGVkUmVjdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggMzUyYTBkZjRiYzFhMzZkOWE5YTBkZmM4YzlmY2I0
NjA5YTY0YTIwYy4uMTQzMzQ0NDc2ZGI4OTFjNDY0M2U2NGI1MmUzZWI2MmNjMjgxMTc2MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTIyMiw2ICsyMjIsMTQgQEAg
dGhyZWVkc2hhZG93CiB3aW5kb3cKIHdpbmRvd2ZyYW1lCiB3aW5kb3d0ZXh0CistYXBwbGUtc3lz
dGVtLWhlYWRlci10ZXh0CistYXBwbGUtc3lzdGVtLXRleHQtYmFja2dyb3VuZAorLWFwcGxlLXN5
c3RlbS1hbHRlcm5hdGUtc2VsZWN0ZWQtdGV4dAorLWFwcGxlLXN5c3RlbS1sYWJlbAorLWFwcGxl
LXN5c3RlbS1zZWNvbmRhcnktbGFiZWwKKy1hcHBsZS1zeXN0ZW0tdGVydGlhcnktbGFiZWwKKy1h
cHBsZS1zeXN0ZW0tcXVhdGVybmFyeS1sYWJlbAorLWFwcGxlLXN5c3RlbS1ncmlkCiAtYXBwbGUt
d2lyZWxlc3MtcGxheWJhY2stdGFyZ2V0LWFjdGl2ZQogLWFwcGxlLXN5c3RlbS1ibHVlCiAtYXBw
bGUtc3lzdGVtLWJyb3duCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRWxlbWVudFJ1
bGVDb2xsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0VsZW1lbnRSdWxlQ29sbGVjdG9y
LmNwcAppbmRleCAzM2I2NmY4MThhOTEyN2VjZDVjNGY5MDg3MGVkNThjYWQwYzI1NTM2Li44ODcx
YmUyNDU4NjMwMDc3MDM2ZjA1ODYzMDQyYjkzYjBjMDUyNjg2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKQEAgLTIsNyArMiw3IEBACiAgKiBDb3B5cmln
aHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykg
MjAwNC0yMDA1IEFsbGFuIFNhbmRmZWxkIEplbnNlbiAoa2RlQGNhcmV3b2xmLmNvbSkKICAqIENv
cHlyaWdodCAoQykgMjAwNiwgMjAwNyBOaWNob2xhcyBTaGFua3MgKHdlYmtpdEBuaWNrc2hhbmtz
LmNvbSkKLSAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAx
MCwgMjAxMSwgMjAxMiwgMjAxMywgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxleGV5IFByb3NrdXJ5YWtvdiA8YXBAd2Via2l0
Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJr
aXQub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCkBAIC0zOTIs
NyArMzkyLDcgQEAgaW5saW5lIGJvb2wgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OnJ1bGVNYXRjaGVz
KGNvbnN0IFJ1bGVEYXRhJiBydWxlRGF0YSwgdW5zaWduZWQKICAgICB9CiAKICAgICBpZiAoY29t
cGlsZWRTZWxlY3RvckNoZWNrZXIgJiYgY29tcGlsZWRTZWxlY3Rvci5zdGF0dXMgPT0gU2VsZWN0
b3JDb21waWxhdGlvblN0YXR1czo6U2ltcGxlU2VsZWN0b3JDaGVja2VyKSB7Ci0gICAgICAgIGF1
dG8gc2VsZWN0b3JDaGVja2VyID0gU2VsZWN0b3JDb21waWxlcjo6cnVsZUNvbGxlY3RvclNpbXBs
ZVNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uKGNvbXBpbGVkU2VsZWN0b3JDaGVja2VyLCBjb21waWxl
ZFNlbGVjdG9yLnN0YXR1cyk7CisgICAgICAgIGF1dG8gc2VsZWN0b3JDaGVja2VyID0gU2VsZWN0
b3JDb21waWxlcjo6cnVsZUNvbGxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uKGNv
bXBpbGVkU2VsZWN0b3IuY29kZVJlZiwgY29tcGlsZWRTZWxlY3RvckNoZWNrZXIsIGNvbXBpbGVk
U2VsZWN0b3Iuc3RhdHVzKTsKICNpZiAhQVNTRVJUX01TR19ESVNBQkxFRAogICAgICAgICB1bnNp
Z25lZCBpZ25vcmVTcGVjaWZpY2l0eTsKICAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghc2Vs
ZWN0b3JDaGVja2VyKCZtX2VsZW1lbnQsICZpZ25vcmVTcGVjaWZpY2l0eSkgfHwgbV9wc2V1ZG9T
dHlsZVJlcXVlc3QucHNldWRvSWQgPT0gTk9QU0VVRE8sICJXaGVuIG1hdGNoaW5nIHBzZXVkbyBl
bGVtZW50cywgd2Ugc2hvdWxkIG5ldmVyIGNvbXBpbGUgYSBzZWxlY3RvciBjaGVja2VyIHdpdGhv
dXQgY29udGV4dCB1bmxlc3MgaXQgY2Fubm90IG1hdGNoIGFueXRoaW5nLiIpOwpAQCAtNDIwLDcg
KzQyMCw3IEBAIGlubGluZSBib29sIEVsZW1lbnRSdWxlQ29sbGVjdG9yOjpydWxlTWF0Y2hlcyhj
b25zdCBSdWxlRGF0YSYgcnVsZURhdGEsIHVuc2lnbmVkCiAgICAgaWYgKGNvbXBpbGVkU2VsZWN0
b3JDaGVja2VyKSB7CiAgICAgICAgIEFTU0VSVChjb21waWxlZFNlbGVjdG9yLnN0YXR1cyA9PSBT
ZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzOjpTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250
ZXh0KTsKIAotICAgICAgICBhdXRvIHNlbGVjdG9yQ2hlY2tlciA9IFNlbGVjdG9yQ29tcGlsZXI6
OnJ1bGVDb2xsZWN0b3JTZWxlY3RvckNoZWNrZXJGdW5jdGlvbldpdGhDaGVja2luZ0NvbnRleHQo
Y29tcGlsZWRTZWxlY3RvckNoZWNrZXIsIGNvbXBpbGVkU2VsZWN0b3Iuc3RhdHVzKTsKKyAgICAg
ICAgYXV0byBzZWxlY3RvckNoZWNrZXIgPSBTZWxlY3RvckNvbXBpbGVyOjpydWxlQ29sbGVjdG9y
U2VsZWN0b3JDaGVja2VyRnVuY3Rpb25XaXRoQ2hlY2tpbmdDb250ZXh0KGNvbXBpbGVkU2VsZWN0
b3IuY29kZVJlZiwgY29tcGlsZWRTZWxlY3RvckNoZWNrZXIsIGNvbXBpbGVkU2VsZWN0b3Iuc3Rh
dHVzKTsKIAogI2lmIENTU19TRUxFQ1RPUl9KSVRfUFJPRklMSU5HCiAgICAgICAgIGNvbXBpbGVk
U2VsZWN0b3IudXNlQ291bnQrKzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9T
ZWxlY3RvckNvbXBpbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBp
bGVyLmNwcAppbmRleCAyY2YxYjE2YTNhMTM1OWE0ODVjY2Y1NTEwMWRlNmU3YjQ0MzZjMzMwLi5m
ZGUwNDA5N2RkOTIzZTU0ODIxNmFmNjE3YjIwNjYzMTdkYjdiNDdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCkBAIC0xMjI0LDYgKzEyMjQsNyBAQCBpbmxp
bmUgU2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBTZWxlY3RvckNvZGVHZW5lcmF0b3I6OmNvbXBp
bGUoSlNDOjpNYWNyb0Fzc2VtYgogICAgICAgICBnZW5lcmF0ZVNlbGVjdG9yQ2hlY2tlcigpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIEZ1bmN0aW9uVHlwZTo6Q2Fubm90TWF0Y2hBbnl0aGlu
ZzoKKyAgICAgICAgbV9hc3NlbWJsZXIudGFnUmV0dXJuQWRkcmVzcygpOwogICAgICAgICBtX2Fz
c2VtYmxlci5tb3ZlKEFzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKDApLCByZXR1cm5SZWdpc3Rlcik7
CiAgICAgICAgIG1fYXNzZW1ibGVyLnJldCgpOwogICAgICAgICBicmVhazsKQEAgLTEyNDMsMTAg
KzEyNDQsMTEgQEAgaW5saW5lIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgU2VsZWN0b3JDb2Rl
R2VuZXJhdG9yOjpjb21waWxlKEpTQzo6TWFjcm9Bc3NlbWIKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgbV9mdW5jdGlvbkNhbGxzLnNpemUoKTsgaSsrKQogICAgICAgICBsaW5rQnVmZmVy
LmxpbmsobV9mdW5jdGlvbkNhbGxzW2ldLmZpcnN0LCBtX2Z1bmN0aW9uQ2FsbHNbaV0uc2Vjb25k
KTsKIAorICAgIEpTQzo6UHRyVGFnIHRhZyA9IHB0clRhZygmY29kZVJlZiwgbV9zZWxlY3RvckNv
bnRleHQpOwogI2lmIENTU19TRUxFQ1RPUl9KSVRfREVCVUdHSU5HCi0gICAgY29kZVJlZiA9IGxp
bmtCdWZmZXIuZmluYWxpemVDb2RlV2l0aERpc2Fzc2VtYmx5KEpTQzo6Tm9QdHJUYWcsICJDU1Mg
U2VsZWN0b3IgSklUIGZvciBcIiVzXCIiLCBtX29yaWdpbmFsU2VsZWN0b3ItPnNlbGVjdG9yVGV4
dCgpLnV0ZjgoKS5kYXRhKCkpOworICAgIGNvZGVSZWYgPSBsaW5rQnVmZmVyLmZpbmFsaXplQ29k
ZVdpdGhEaXNhc3NlbWJseSh0YWcsICJDU1MgU2VsZWN0b3IgSklUIGZvciBcIiVzXCIiLCBtX29y
aWdpbmFsU2VsZWN0b3ItPnNlbGVjdG9yVGV4dCgpLnV0ZjgoKS5kYXRhKCkpOwogI2Vsc2UKLSAg
ICBjb2RlUmVmID0gRklOQUxJWkVfQ09ERShsaW5rQnVmZmVyLCBKU0M6Ok5vUHRyVGFnLCAiQ1NT
IFNlbGVjdG9yIEpJVCIpOworICAgIGNvZGVSZWYgPSBGSU5BTElaRV9DT0RFKGxpbmtCdWZmZXIs
IHRhZywgIkNTUyBTZWxlY3RvciBKSVQiKTsKICNlbmRpZgogCiAgICAgaWYgKG1fZnVuY3Rpb25U
eXBlID09IEZ1bmN0aW9uVHlwZTo6U2ltcGxlU2VsZWN0b3JDaGVja2VyIHx8IG1fZnVuY3Rpb25U
eXBlID09IEZ1bmN0aW9uVHlwZTo6Q2Fubm90TWF0Y2hBbnl0aGluZykKQEAgLTE3MzYsNiArMTcz
OCw3IEBAIHN0YXRpYyBib29sIHNob3VsZE1hcmtTdHlsZUlzQWZmZWN0ZWRCeVByZXZpb3VzU2li
bGluZyhjb25zdCBTZWxlY3RvckZyYWdtZW50JiBmCiAKIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJh
dG9yOjpnZW5lcmF0ZVNlbGVjdG9yQ2hlY2tlcigpCiB7CisgICAgbV9hc3NlbWJsZXIudGFnUmV0
dXJuQWRkcmVzcygpOwogICAgIHB1c2hNYWNyb0Fzc2VtYmxlclJlZ2lzdGVycygpOwogICAgIFN0
YWNrQWxsb2NhdG9yIGVhcmx5RmFpbHVyZVN0YWNrID0gbV9zdGFja0FsbG9jYXRvcjsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmgKaW5kZXggZTVlNTdkZWY2YWU4MGY5
NGRkOGNkMzZiNTAxODQxY2YxNDQ3YmNkYy4uNDk3MTU0NWRkNThjMDU4MzdkZDJjMjRjZDhiNWZi
M2M1YWQ2ZGI5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29t
cGlsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5oCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU1
LDI4ICs1NSwzMiBAQCB0eXBlZGVmIHVuc2lnbmVkICgqUXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hl
Y2tlcldpdGhDaGVja2luZ0NvbnRleHQpKGNvbnN0IEVsZW1lbgogCiBTZWxlY3RvckNvbXBpbGF0
aW9uU3RhdHVzIGNvbXBpbGVTZWxlY3Rvcihjb25zdCBDU1NTZWxlY3RvciosIFNlbGVjdG9yQ29u
dGV4dCwgSlNDOjpNYWNyb0Fzc2VtYmxlckNvZGVSZWYmIG91dHB1dENvZGVSZWYpOwogCi1pbmxp
bmUgUnVsZUNvbGxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlciBydWxlQ29sbGVjdG9yU2ltcGxl
U2VsZWN0b3JDaGVja2VyRnVuY3Rpb24odm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIFNlbGVjdG9y
Q29tcGlsYXRpb25TdGF0dXMgY29tcGlsYXRpb25TdGF0dXMpCitpbmxpbmUgUnVsZUNvbGxlY3Rv
clNpbXBsZVNlbGVjdG9yQ2hlY2tlciBydWxlQ29sbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2Vy
RnVuY3Rpb24oY29uc3QgSlNDOjpNYWNyb0Fzc2VtYmxlckNvZGVSZWYmIGNvZGVSZWYsIHZvaWQq
IGV4ZWN1dGFibGVBZGRyZXNzLCBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzIGNvbXBpbGF0aW9u
U3RhdHVzKQogewogICAgIEFTU0VSVF9VTlVTRUQoY29tcGlsYXRpb25TdGF0dXMsIGNvbXBpbGF0
aW9uU3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OlNpbXBsZVNlbGVjdG9yQ2hl
Y2tlcik7Ci0gICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UnVsZUNvbGxlY3RvclNpbXBsZVNl
bGVjdG9yQ2hlY2tlcj4oZXhlY3V0YWJsZUFkZHJlc3MpOworICAgIEpTQzo6UHRyVGFnIHRhZyA9
IEpTQzo6cHRyVGFnKCZjb2RlUmVmLCBTZWxlY3RvckNvbnRleHQ6OlJ1bGVDb2xsZWN0b3IpOwor
ICAgIHJldHVybiBKU0M6OnVudGFnQ0Z1bmN0aW9uUHRyPFJ1bGVDb2xsZWN0b3JTaW1wbGVTZWxl
Y3RvckNoZWNrZXI+KGV4ZWN1dGFibGVBZGRyZXNzLCB0YWcpOwogfQogCi1pbmxpbmUgUXVlcnlT
ZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlciBxdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JD
aGVja2VyRnVuY3Rpb24odm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIFNlbGVjdG9yQ29tcGlsYXRp
b25TdGF0dXMgY29tcGlsYXRpb25TdGF0dXMpCitpbmxpbmUgUXVlcnlTZWxlY3RvclNpbXBsZVNl
bGVjdG9yQ2hlY2tlciBxdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rpb24o
Y29uc3QgSlNDOjpNYWNyb0Fzc2VtYmxlckNvZGVSZWYmIGNvZGVSZWYsIHZvaWQqIGV4ZWN1dGFi
bGVBZGRyZXNzLCBTZWxlY3RvckNvbXBpbGF0aW9uU3RhdHVzIGNvbXBpbGF0aW9uU3RhdHVzKQog
ewogICAgIEFTU0VSVF9VTlVTRUQoY29tcGlsYXRpb25TdGF0dXMsIGNvbXBpbGF0aW9uU3RhdHVz
ID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcik7Ci0g
ICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hl
Y2tlcj4oZXhlY3V0YWJsZUFkZHJlc3MpOworICAgIEpTQzo6UHRyVGFnIHRhZyA9IEpTQzo6cHRy
VGFnKCZjb2RlUmVmLCBTZWxlY3RvckNvbnRleHQ6OlF1ZXJ5U2VsZWN0b3IpOworICAgIHJldHVy
biBKU0M6OnVudGFnQ0Z1bmN0aW9uUHRyPFF1ZXJ5U2VsZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNr
ZXI+KGV4ZWN1dGFibGVBZGRyZXNzLCB0YWcpOwogfQogCi1pbmxpbmUgUnVsZUNvbGxlY3RvclNl
bGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQgcnVsZUNvbGxlY3RvclNlbGVjdG9yQ2hl
Y2tlckZ1bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dCh2b2lkKiBleGVjdXRhYmxlQWRkcmVzcywg
U2VsZWN0b3JDb21waWxhdGlvblN0YXR1cyBjb21waWxhdGlvblN0YXR1cykKK2lubGluZSBSdWxl
Q29sbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCBydWxlQ29sbGVjdG9y
U2VsZWN0b3JDaGVja2VyRnVuY3Rpb25XaXRoQ2hlY2tpbmdDb250ZXh0KGNvbnN0IEpTQzo6TWFj
cm9Bc3NlbWJsZXJDb2RlUmVmJiBjb2RlUmVmLCB2b2lkKiBleGVjdXRhYmxlQWRkcmVzcywgU2Vs
ZWN0b3JDb21waWxhdGlvblN0YXR1cyBjb21waWxhdGlvblN0YXR1cykKIHsKICAgICBBU1NFUlRf
VU5VU0VEKGNvbXBpbGF0aW9uU3RhdHVzLCBjb21waWxhdGlvblN0YXR1cyA9PSBTZWxlY3RvckNv
bXBpbGF0aW9uU3RhdHVzOjpTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0KTsKLSAg
ICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxSdWxlQ29sbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0
aENoZWNraW5nQ29udGV4dD4oZXhlY3V0YWJsZUFkZHJlc3MpOworICAgIEpTQzo6UHRyVGFnIHRh
ZyA9IEpTQzo6cHRyVGFnKCZjb2RlUmVmLCBTZWxlY3RvckNvbnRleHQ6OlJ1bGVDb2xsZWN0b3Ip
OworICAgIHJldHVybiBKU0M6OnVudGFnQ0Z1bmN0aW9uUHRyPFJ1bGVDb2xsZWN0b3JTZWxlY3Rv
ckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0PihleGVjdXRhYmxlQWRkcmVzcywgdGFnKTsKIH0K
IAotaW5saW5lIFF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJXaXRoQ2hlY2tpbmdDb250ZXh0
IHF1ZXJ5U2VsZWN0b3JTZWxlY3RvckNoZWNrZXJGdW5jdGlvbldpdGhDaGVja2luZ0NvbnRleHQo
dm9pZCogZXhlY3V0YWJsZUFkZHJlc3MsIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgY29tcGls
YXRpb25TdGF0dXMpCitpbmxpbmUgUXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVj
a2luZ0NvbnRleHQgcXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNr
aW5nQ29udGV4dChjb25zdCBKU0M6Ok1hY3JvQXNzZW1ibGVyQ29kZVJlZiYgY29kZVJlZiwgdm9p
ZCogZXhlY3V0YWJsZUFkZHJlc3MsIFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXMgY29tcGlsYXRp
b25TdGF0dXMpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChjb21waWxhdGlvblN0YXR1cywgY29tcGls
YXRpb25TdGF0dXMgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6U2VsZWN0b3JDaGVja2Vy
V2l0aENoZWNraW5nQ29udGV4dCk7Ci0gICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UXVlcnlT
ZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQ+KGV4ZWN1dGFibGVBZGRy
ZXNzKTsKKyAgICBKU0M6OlB0clRhZyB0YWcgPSBKU0M6OnB0clRhZygmY29kZVJlZiwgU2VsZWN0
b3JDb250ZXh0OjpRdWVyeVNlbGVjdG9yKTsKKyAgICByZXR1cm4gSlNDOjp1bnRhZ0NGdW5jdGlv
blB0cjxRdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dD4oZXhl
Y3V0YWJsZUFkZHJlc3MsIHRhZyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFNlbGVjdG9yQ29tcGls
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAKaW5kZXggNTgyYjM5NTk2NzQ4
YTkzMjA2Y2EwYmUxOTdiZTU4Y2E4ZWVhM2QyOC4uYjgxYTg4NGM0MGZmYTI2YzlkNTU3MjZiMDQw
ZjkwMGMzOGU1ZTg4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAKQEAg
LTQ3LDYgKzQ3LDggQEAgQWN0aXZlRE9NT2JqZWN0OjpBY3RpdmVET01PYmplY3QoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkKIAogQWN0aXZlRE9NT2JqZWN0
Ojp+QWN0aXZlRE9NT2JqZWN0KCkKIHsKKyAgICBBU1NFUlQoY2FuQWNjZXNzVGhyZWFkTG9jYWxE
YXRhRm9yVGhyZWFkKG1fY3JlYXRpb25UaHJlYWQpKTsKKwogICAgIC8vIEFjdGl2ZURPTU9iamVj
dCBtYXkgYmUgaW5oZXJpdGVkIGJ5IGEgc3ViLWNsYXNzIHdob3NlIGxpZmUtY3ljbGUKICAgICAv
LyBleGNlZWRzIHRoYXQgb2YgdGhlIGFzc29jaWF0ZWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dC4g
SW4gdGhvc2UgY2FzZXMsCiAgICAgLy8gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0IHdvdWxkL3No
b3VsZCBoYXZlIGJlZW4gbnVsbGlmaWVkIGJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vQWN0aXZlRE9NT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0
LmgKaW5kZXggZTI3MDUzZmE1ZGZmYTJjZmM5ZjFkOTM0Y2YzYzc1MjA2NWVkNTRiZS4uNjE1NmJk
MTcwM2VkN2FjZTMxMTk5MGE0Yzg1YmEyYzQyZDIxOTNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3Rp
dmVET01PYmplY3QuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25z
Lmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC0xMTcsNiArMTE4LDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX3BlbmRpbmdBY3Rpdml0
eUNvdW50OwogI2lmICFBU1NFUlRfRElTQUJMRUQKICAgICBib29sIG1fc3VzcGVuZElmTmVlZGVk
V2FzQ2FsbGVkOworICAgIFJlZjxUaHJlYWQ+IG1fY3JlYXRpb25UaHJlYWQgeyBUaHJlYWQ6OmN1
cnJlbnQoKSB9OwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMTc3YTUw
MzkwMGI4OWMxNGEyMGVhMDQyOWNlNDgzMGYyOTNhODY4OS4uZjcwMDQ4ZDc2NTJjODFkODZmYWUz
NmQwMTY4NmNjMTJmMWJmNzlmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTc5NSw3ICsx
Nzk1LDEwIEBAIHZvaWQgRWxlbWVudDo6cmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlwZSBy
ZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9kZSYgb2xkUGFyCiAgICAgICAgIGRvY3VtZW50KCkuYWNj
ZXNzU1ZHRXh0ZW5zaW9ucygpLnJlbW92ZUVsZW1lbnRGcm9tUGVuZGluZ1Jlc291cmNlcyh0aGlz
KTsKIAogICAgIFJlZlB0cjxGcmFtZT4gZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7Ci0gICAg
aWYgKGZyYW1lKQorICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJl
cygpLmNzc0FuaW1hdGlvbnNBbmRDU1NUcmFuc2l0aW9uc0JhY2tlZEJ5V2ViQW5pbWF0aW9uc0Vu
YWJsZWQoKSkgeworICAgICAgICBpZiAoYXV0byogdGltZWxpbmUgPSBkb2N1bWVudCgpLmV4aXN0
aW5nVGltZWxpbmUoKSkKKyAgICAgICAgICAgIHRpbWVsaW5lLT5jYW5jZWxBbmltYXRpb25zRm9y
RWxlbWVudCgqdGhpcyk7CisgICAgfSBlbHNlIGlmIChmcmFtZSkKICAgICAgICAgZnJhbWUtPmFu
aW1hdGlvbigpLmNhbmNlbEFuaW1hdGlvbnMoKnRoaXMpOwogCiAjaWYgUExBVEZPUk0oTUFDKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAKaW5kZXggMjNiOWFlNDAxZTFmYmQyNTE0NzgyYjRk
NmY2MzI1NWE5ZDc3YmZkZi4uYzhiNmI4YTM4OGIyZmEwYTMyYWEwN2UzMzExZDU3YTJlMjQyNzdl
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuY3BwCkBAIC0xMDksOCArMTA5LDYgQEAgTWVz
c2FnZVBvcnQ6Ok1lc3NhZ2VQb3J0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQsIGNvbnN0IE0KIAogTWVzc2FnZVBvcnQ6On5NZXNzYWdlUG9ydCgpCiB7Ci0g
ICAgQVNTRVJUKG1fY3JlYXRpb25UaHJlYWQucHRyKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKTsK
LQogICAgIExPRyhNZXNzYWdlUG9ydHMsICJEZXN0cm95ZWQgTWVzc2FnZVBvcnQgJXMgKCVwKSBp
biBwcm9jZXNzICUiIFBSSXU2NCwgbV9pZGVudGlmaWVyLmxvZ1N0cmluZygpLnV0ZjgoKS5kYXRh
KCksIHRoaXMsIFByb2Nlc3M6OmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKIAogICAgIEFTU0VS
VChhbGxNZXNzYWdlUG9ydHNMb2NrKCkuaXNMb2NrZWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdlUG9y
dC5oCmluZGV4IDg1MTQxOTUwZjAzMzEwMDJhYTk1NTFlMzBhYTgyZGFmZTk0OWMzZDcuLmNiOTdk
MTFjODg1ZTg2YzhjMTFjYjI0Y2E0ZGI0NTliYmJjODc1NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9NZXNzYWdl
UG9ydC5oCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiTWVzc2FnZVBvcnRDaGFubmVsLmgi
CiAjaW5jbHVkZSAiTWVzc2FnZVBvcnRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVdp
dGhNZXNzYWdlUG9ydHMuaCIKLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC0xMjksMTAgKzEyOCw2IEBAIHBy
aXZhdGU6CiAgICAgTWVzc2FnZVBvcnRJZGVudGlmaWVyIG1fcmVtb3RlSWRlbnRpZmllcjsKIAog
ICAgIG11dGFibGUgc3RkOjphdG9taWM8dW5zaWduZWQ+IG1fcmVmQ291bnQgeyAxIH07Ci0KLSNp
ZiAhQVNTRVJUX0RJU0FCTEVECi0gICAgUmVmPFRocmVhZD4gbV9jcmVhdGlvblRocmVhZCB7IFRo
cmVhZDo6Y3VycmVudCgpIH07Ci0jZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Qc2V1ZG9FbGVtZW50LmNwcAppbmRleCBmYzEzODYwODk0NGQxM2M2YjNj
NWJmOThhYjZmZDY3N2M1MmJkZTFkLi4zODhiYTYwNTU1ODZkOGE4ZTM2OTAwZDQ0Y2UxMTg4MjEx
YjdlZjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUHNldWRvRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1BzZXVkb0VsZW1lbnQuY3BwCkBAIC0zMCwxMCArMzAs
MTIgQEAKIAogI2luY2x1ZGUgIkNTU0FuaW1hdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJD
b250ZW50RGF0YS5oIgorI2luY2x1ZGUgIkRvY3VtZW50VGltZWxpbmUuaCIKICNpbmNsdWRlICJJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCiAj
aW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJRdW90ZS5oIgorI2luY2x1
ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgi
CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIApAQCAtODgsNyArOTAsMTAgQEAg
dm9pZCBQc2V1ZG9FbGVtZW50OjpjbGVhckhvc3RFbGVtZW50KCkKIHsKICAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OnBzZXVkb0VsZW1lbnREZXN0cm95ZWQoZG9jdW1lbnQoKS5wYWdlKCks
ICp0aGlzKTsKIAotICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKKyAg
ICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5jc3NBbmltYXRp
b25zQW5kQ1NTVHJhbnNpdGlvbnNCYWNrZWRCeVdlYkFuaW1hdGlvbnNFbmFibGVkKCkpIHsKKyAg
ICAgICAgaWYgKGF1dG8qIHRpbWVsaW5lID0gZG9jdW1lbnQoKS5leGlzdGluZ1RpbWVsaW5lKCkp
CisgICAgICAgICAgICB0aW1lbGluZS0+Y2FuY2VsQW5pbWF0aW9uc0ZvckVsZW1lbnQoKnRoaXMp
OworICAgIH0gZWxzZSBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCkpCiAgICAg
ICAgIGZyYW1lLT5hbmltYXRpb24oKS5jYW5jZWxBbmltYXRpb25zKCp0aGlzKTsKIAogICAgIG1f
aG9zdEVsZW1lbnQgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Nl
bGVjdG9yUXVlcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuY3BwCmlu
ZGV4IGE1YWY0YWZhYTQ3YzEwZTUxMmI5ZWQ0MDg3Yzg1NGU2ZWI2Yzc3Y2IuLmE4YTVkZjk0Nzk5
ZWYyNDdkNDM2NWYyNWRmZWI0NzliODA1MjRmN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TZWxlY3RvclF1ZXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JR
dWVyeS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDE0
IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
QEAgLTQ1MSwxMSArNDUxLDExIEBAIEFMV0FZU19JTkxJTkUgdm9pZCBTZWxlY3RvckRhdGFMaXN0
OjpleGVjdXRlQ29tcGlsZWRTaW5nbGVNdWx0aVNlbGVjdG9yRGF0YShjb25zCiAgICAgICAgICAg
ICBib29sIG1hdGNoZWQgPSBmYWxzZTsKICAgICAgICAgICAgIHZvaWQqIGNvbXBpbGVkU2VsZWN0
b3JDaGVja2VyID0gc2VsZWN0b3IuY29tcGlsZWRTZWxlY3RvckNvZGVSZWYuY29kZSgpLmV4ZWN1
dGFibGVBZGRyZXNzKCk7CiAgICAgICAgICAgICBpZiAoc2VsZWN0b3IuY29tcGlsYXRpb25TdGF0
dXMgPT0gU2VsZWN0b3JDb21waWxhdGlvblN0YXR1czo6U2ltcGxlU2VsZWN0b3JDaGVja2VyKSB7
Ci0gICAgICAgICAgICAgICAgYXV0byBzZWxlY3RvckNoZWNrZXIgPSBTZWxlY3RvckNvbXBpbGVy
OjpxdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rpb24oY29tcGlsZWRTZWxl
Y3RvckNoZWNrZXIsIHNlbGVjdG9yLmNvbXBpbGF0aW9uU3RhdHVzKTsKKyAgICAgICAgICAgICAg
ICBhdXRvIHNlbGVjdG9yQ2hlY2tlciA9IFNlbGVjdG9yQ29tcGlsZXI6OnF1ZXJ5U2VsZWN0b3JT
aW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlvbihzZWxlY3Rvci5jb21waWxlZFNlbGVjdG9yQ29k
ZVJlZiwgY29tcGlsZWRTZWxlY3RvckNoZWNrZXIsIHNlbGVjdG9yLmNvbXBpbGF0aW9uU3RhdHVz
KTsKICAgICAgICAgICAgICAgICBtYXRjaGVkID0gc2VsZWN0b3JDaGVja2VyKCZlbGVtZW50KTsK
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgQVNTRVJUKHNlbGVjdG9yLmNv
bXBpbGF0aW9uU3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0dXM6OlNlbGVjdG9yQ2hl
Y2tlcldpdGhDaGVja2luZ0NvbnRleHQpOwotICAgICAgICAgICAgICAgIGF1dG8gc2VsZWN0b3JD
aGVja2VyID0gU2VsZWN0b3JDb21waWxlcjo6cXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1
bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dChjb21waWxlZFNlbGVjdG9yQ2hlY2tlciwgc2VsZWN0
b3IuY29tcGlsYXRpb25TdGF0dXMpOworICAgICAgICAgICAgICAgIGF1dG8gc2VsZWN0b3JDaGVj
a2VyID0gU2VsZWN0b3JDb21waWxlcjo6cXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0
aW9uV2l0aENoZWNraW5nQ29udGV4dChzZWxlY3Rvci5jb21waWxlZFNlbGVjdG9yQ29kZVJlZiwg
Y29tcGlsZWRTZWxlY3RvckNoZWNrZXIsIHNlbGVjdG9yLmNvbXBpbGF0aW9uU3RhdHVzKTsKICAg
ICAgICAgICAgICAgICBtYXRjaGVkID0gc2VsZWN0b3JDaGVja2VyKCZlbGVtZW50LCAmY2hlY2tp
bmdDb250ZXh0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChtYXRjaGVkKSB7CkBA
IC01NDMsMTEgKzU0MywxMSBAQCBBTFdBWVNfSU5MSU5FIHZvaWQgU2VsZWN0b3JEYXRhTGlzdDo6
ZXhlY3V0ZShDb250YWluZXJOb2RlJiByb290Tm9kZSwgdHlwZW5hbWUgUwogICAgICAgICBjb25z
dCBTZWxlY3RvckRhdGEmIHNlbGVjdG9yRGF0YSA9IG1fc2VsZWN0b3JzLmZpcnN0KCk7CiAgICAg
ICAgIHZvaWQqIGNvbXBpbGVkU2VsZWN0b3JDaGVja2VyID0gc2VsZWN0b3JEYXRhLmNvbXBpbGVk
U2VsZWN0b3JDb2RlUmVmLmNvZGUoKS5leGVjdXRhYmxlQWRkcmVzcygpOwogICAgICAgICBpZiAo
c2VsZWN0b3JEYXRhLmNvbXBpbGF0aW9uU3RhdHVzID09IFNlbGVjdG9yQ29tcGlsYXRpb25TdGF0
dXM6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcikgewotICAgICAgICAgICAgU2VsZWN0b3JDb21waWxl
cjo6UXVlcnlTZWxlY3RvclNpbXBsZVNlbGVjdG9yQ2hlY2tlciBzZWxlY3RvckNoZWNrZXIgPSBT
ZWxlY3RvckNvbXBpbGVyOjpxdWVyeVNlbGVjdG9yU2ltcGxlU2VsZWN0b3JDaGVja2VyRnVuY3Rp
b24oY29tcGlsZWRTZWxlY3RvckNoZWNrZXIsIHNlbGVjdG9yRGF0YS5jb21waWxhdGlvblN0YXR1
cyk7CisgICAgICAgICAgICBTZWxlY3RvckNvbXBpbGVyOjpRdWVyeVNlbGVjdG9yU2ltcGxlU2Vs
ZWN0b3JDaGVja2VyIHNlbGVjdG9yQ2hlY2tlciA9IFNlbGVjdG9yQ29tcGlsZXI6OnF1ZXJ5U2Vs
ZWN0b3JTaW1wbGVTZWxlY3RvckNoZWNrZXJGdW5jdGlvbihzZWxlY3RvckRhdGEuY29tcGlsZWRT
ZWxlY3RvckNvZGVSZWYsIGNvbXBpbGVkU2VsZWN0b3JDaGVja2VyLCBzZWxlY3RvckRhdGEuY29t
cGlsYXRpb25TdGF0dXMpOwogICAgICAgICAgICAgZXhlY3V0ZUNvbXBpbGVkU2ltcGxlU2VsZWN0
b3JDaGVja2VyPFNlbGVjdG9yUXVlcnlUcmFpdD4oKnNlYXJjaFJvb3ROb2RlLCBzZWxlY3RvckNo
ZWNrZXIsIG91dHB1dCwgc2VsZWN0b3JEYXRhKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgIEFTU0VSVChzZWxlY3RvckRhdGEuY29tcGlsYXRpb25TdGF0dXMgPT0gU2VsZWN0b3JDb21w
aWxhdGlvblN0YXR1czo6U2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dCk7Ci0gICAg
ICAgICAgICBTZWxlY3RvckNvbXBpbGVyOjpRdWVyeVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyV2l0
aENoZWNraW5nQ29udGV4dCBzZWxlY3RvckNoZWNrZXIgPSBTZWxlY3RvckNvbXBpbGVyOjpxdWVy
eVNlbGVjdG9yU2VsZWN0b3JDaGVja2VyRnVuY3Rpb25XaXRoQ2hlY2tpbmdDb250ZXh0KGNvbXBp
bGVkU2VsZWN0b3JDaGVja2VyLCBzZWxlY3RvckRhdGEuY29tcGlsYXRpb25TdGF0dXMpOworICAg
ICAgICAgICAgU2VsZWN0b3JDb21waWxlcjo6UXVlcnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlcldp
dGhDaGVja2luZ0NvbnRleHQgc2VsZWN0b3JDaGVja2VyID0gU2VsZWN0b3JDb21waWxlcjo6cXVl
cnlTZWxlY3RvclNlbGVjdG9yQ2hlY2tlckZ1bmN0aW9uV2l0aENoZWNraW5nQ29udGV4dChzZWxl
Y3RvckRhdGEuY29tcGlsZWRTZWxlY3RvckNvZGVSZWYsIGNvbXBpbGVkU2VsZWN0b3JDaGVja2Vy
LCBzZWxlY3RvckRhdGEuY29tcGlsYXRpb25TdGF0dXMpOwogICAgICAgICAgICAgZXhlY3V0ZUNv
bXBpbGVkU2VsZWN0b3JDaGVja2VyV2l0aENoZWNraW5nQ29udGV4dDxTZWxlY3RvclF1ZXJ5VHJh
aXQ+KHJvb3ROb2RlLCAqc2VhcmNoUm9vdE5vZGUsIHNlbGVjdG9yQ2hlY2tlciwgb3V0cHV0LCBz
ZWxlY3RvckRhdGEpOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWFrZV9u
YW1lcy5wbAppbmRleCAxYjMwMDAyZWE3OTVhM2YxM2VhNzIzZGViZWUwMDJhMjc0MTQ1MzM3Li5i
MWU3NmNmZGExZmE4N2ZlOTk5ZWZkZTYyNDRiNmQzN2I4MDBjMjBhIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vbWFr
ZV9uYW1lcy5wbApAQCAtNDEyLDcgKzQxMiw3IEBAIHN1YiBwcmludENvbnN0cnVjdG9ySW50ZXJp
b3IKICAgICAjIGluc3RlYWQgb2YgaGF2aW5nIGFsbCB0aGUgc3VwcG9ydCBmb3IgdGhpcyBoZXJl
IGluIHRoaXMgc2NyaXB0PwogICAgIGlmICgkZW5hYmxlZFRhZ3N7JHRhZ05hbWV9e3dyYXBwZXJP
bmx5SWZNZWRpYUlzQXZhaWxhYmxlfSkgewogICAgICAgICBwcmludCBGIDw8RU5ECi0gICAgaWYg
KCFNZWRpYVBsYXllcjo6aXNBdmFpbGFibGUoKSB8fCAhZG9jdW1lbnQuc2V0dGluZ3MoKS5tZWRp
YUVuYWJsZWQoKSkKKyAgICBpZiAoIWRvY3VtZW50LnNldHRpbmdzKCkubWVkaWFFbmFibGVkKCkp
CiAgICAgICAgIHJldHVybiAkcGFyYW1ldGVyc3tmYWxsYmFja0ludGVyZmFjZU5hbWV9OjpjcmVh
dGUoJGNvbnN0cnVjdG9yVGFnTmFtZSwgZG9jdW1lbnQpOwogICAgIAogRU5ECmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ29udHJvbGxlci5jcHAKaW5kZXggZjQ1MDky
NjNjMDQwMThiZGZhOGQ1MjVlYmIxNzZhOWViNmE5MTYxZS4uMGYwNWJmNjVhMzVkNjA3YTY4YmIy
NmZmZGNmNGY3NzYyZTQ0OWFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9C
YWNrRm9yd2FyZENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFj
a0ZvcndhcmRDb250cm9sbGVyLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkJhY2tG
b3J3YXJkQ29udHJvbGxlci5oIgogCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRDbGllbnQuaCIKKyNp
bmNsdWRlICJOYXZpZ2F0aW9uUG9saWN5Q2hlY2suaCIKICNpbmNsdWRlICJQYWdlLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY5LDcgKzcwLDcgQEAgdm9pZCBCYWNrRm9yd2FyZENvbnRy
b2xsZXI6OmdvQmFja09yRm9yd2FyZChpbnQgZGlzdGFuY2UpCiAgICAgaWYgKCFpdGVtKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBtX3BhZ2UuZ29Ub0l0ZW0oKml0ZW0sIEZyYW1lTG9hZFR5cGU6
OkluZGV4ZWRCYWNrRm9yd2FyZCk7CisgICAgbV9wYWdlLmdvVG9JdGVtKCppdGVtLCBGcmFtZUxv
YWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQsIE5hdmlnYXRpb25Qb2xpY3lDaGVjazo6UmVxdWly
ZSk7CiB9CiAKIGJvb2wgQmFja0ZvcndhcmRDb250cm9sbGVyOjpnb0JhY2soKQpAQCAtNzgsNyAr
NzksNyBAQCBib29sIEJhY2tGb3J3YXJkQ29udHJvbGxlcjo6Z29CYWNrKCkKICAgICBpZiAoIWl0
ZW0pCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIG1fcGFnZS5nb1RvSXRlbSgqaXRlbSwg
RnJhbWVMb2FkVHlwZTo6QmFjayk7CisgICAgbV9wYWdlLmdvVG9JdGVtKCppdGVtLCBGcmFtZUxv
YWRUeXBlOjpCYWNrLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2s6OlJlcXVpcmUpOwogICAgIHJldHVy
biB0cnVlOwogfQogCkBAIC04OCw3ICs4OSw3IEBAIGJvb2wgQmFja0ZvcndhcmRDb250cm9sbGVy
Ojpnb0ZvcndhcmQoKQogICAgIGlmICghaXRlbSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgbV9wYWdlLmdvVG9JdGVtKCppdGVtLCBGcmFtZUxvYWRUeXBlOjpGb3J3YXJkKTsKKyAgICBt
X3BhZ2UuZ29Ub0l0ZW0oKml0ZW0sIEZyYW1lTG9hZFR5cGU6OkZvcndhcmQsIE5hdmlnYXRpb25Q
b2xpY3lDaGVjazo6UmVxdWlyZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUv
aGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKaW5kZXggNmMzMDM0Y2FlMDI1MDczZDQ4YjIwOTE2NzQy
ZWM5NGRhYTM2ZGM4Yi4uOWQ4Njg5ODhhZDBlZGFlMDBkOTVmODQyZmQzODIzMjRkZjlmNTU4NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKQEAgLTMxMSw2ICszMTEsNyBA
QCB2b2lkIEhpc3RvcnlJdGVtOjpzZXRJc1RhcmdldEl0ZW0oYm9vbCBmbGFnKQogdm9pZCBIaXN0
b3J5SXRlbTo6c2V0U3RhdGVPYmplY3QoUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBv
YmplY3QpCiB7CiAgICAgbV9zdGF0ZU9iamVjdCA9IFdURk1vdmUob2JqZWN0KTsKKyAgICBub3Rp
ZnlIaXN0b3J5SXRlbUNoYW5nZWQodGhpcyk7CiB9CiAKIHZvaWQgSGlzdG9yeUl0ZW06OmFkZENo
aWxkSXRlbShSZWY8SGlzdG9yeUl0ZW0+JiYgY2hpbGQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcAppbmRleCBhZDM2MjU4MjM4MzUxMGY2M2JlNGFlNGY2NWI3NTFiMjY0
YWRmOTM0Li43ZjlmZWIxNGU3Y2RmNDdhN2UzZTlmMzdhM2QxY2QyZWRhMTAxMzhlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTI2MTEsNyArMjYxMSw3IEBA
IFN0cmluZyBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllck1lZGlhS2V5c1N0b3JhZ2VEaXJl
Y3RvcnkoKSBjb25zdAogICAgIGlmIChzdG9yYWdlRGlyZWN0b3J5LmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKLSAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5
QXBwZW5kaW5nQ29tcG9uZW50KHN0b3JhZ2VEaXJlY3RvcnksIFNlY3VyaXR5T3JpZ2luRGF0YTo6
ZnJvbVNlY3VyaXR5T3JpZ2luKGRvY3VtZW50KCkuc2VjdXJpdHlPcmlnaW4oKSkuZGF0YWJhc2VJ
ZGVudGlmaWVyKCkpOworICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21w
b25lbnQoc3RvcmFnZURpcmVjdG9yeSwgZG9jdW1lbnQoKS5zZWN1cml0eU9yaWdpbigpLmRhdGEo
KS5kYXRhYmFzZUlkZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6d2Vi
a2l0U2V0TWVkaWFLZXlzKFdlYktpdE1lZGlhS2V5cyogbWVkaWFLZXlzKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01TdG9yYWdlQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JET01TdG9yYWdl
QWdlbnQuY3BwCmluZGV4IDBkMjVkYTAwMzNhNjRlMjE0MDgxNzYyODg3YWRkMjIxODQ0OWQ2NTIu
LjdkNjMyZGEzZWMzYTU0ZWRmNTQwZjQ5NDAwNGI2YjljYzVkY2ExODQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRE9NU3RvcmFnZUFnZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRPTVN0b3Jh
Z2VBZ2VudC5jcHAKQEAgLTE5NSw3ICsxOTUsNyBAQCBSZWZQdHI8U3RvcmFnZUFyZWE+IEluc3Bl
Y3RvckRPTVN0b3JhZ2VBZ2VudDo6ZmluZFN0b3JhZ2VBcmVhKEVycm9yU3RyaW5nJiBlcnJvcgog
ICAgIH0KIAogICAgIGlmICghaXNMb2NhbFN0b3JhZ2UpCi0gICAgICAgIHJldHVybiBtX3BhZ2VB
Z2VudC0+cGFnZSgpLnNlc3Npb25TdG9yYWdlKCktPnN0b3JhZ2VBcmVhKFNlY3VyaXR5T3JpZ2lu
RGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKHRhcmdldEZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0
eU9yaWdpbigpKSk7CisgICAgICAgIHJldHVybiBtX3BhZ2VBZ2VudC0+cGFnZSgpLnNlc3Npb25T
dG9yYWdlKCktPnN0b3JhZ2VBcmVhKHRhcmdldEZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9y
aWdpbigpLmRhdGEoKSk7CiAgICAgcmV0dXJuIG1fcGFnZUFnZW50LT5wYWdlKCkuc3RvcmFnZU5h
bWVzcGFjZVByb3ZpZGVyKCkubG9jYWxTdG9yYWdlQXJlYSgqdGFyZ2V0RnJhbWUtPmRvY3VtZW50
KCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJl
YWRhYmxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFi
bGVMb2FkZXIuY3BwCmluZGV4IGUyMTk3Zjk3ZGI0NGExNmRiYjVjNzZiNDVlOGQzMDBiZmFmNWIx
NmMuLjUwMjAwMGZiZTZjOWZjZmRmNmQwZDYwMGZmYzkzYjgyMDk1YzM5Y2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCkBAIC0y
ODMsNyArMjgzLDggQEAgdm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OnJlZGlyZWN0UmVj
ZWl2ZWQoQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlLCBSZXNvdXIKICAgICBpZiAobV9vcHRpb25z
LmNyZWRlbnRpYWxzICE9IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6OlNhbWVPcmlnaW4gJiYg
bV9zaW1wbGVSZXF1ZXN0ICYmIGlzU2ltcGxlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0KHJlcXVl
c3QuaHR0cE1ldGhvZCgpLCAqbV9vcmlnaW5hbEhlYWRlcnMpKQogICAgICAgICByZXR1cm4gY29t
cGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXF1ZXN0KSk7CiAKLSAgICBtX29wdGlvbnMuc3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3kgPSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2U7Cisg
ICAgaWYgKG1fb3B0aW9ucy5jcmVkZW50aWFscyA9PSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxz
OjpTYW1lT3JpZ2luKQorICAgICAgICBtX29wdGlvbnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kg
PSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2U7CiAKICAgICBjbGVhclJlc291cmNl
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggZDg4NTBmZmFh
NTA1MGIwZGNlZDIyN2JhYjA1MDRmMGY2MTgzZTJiNi4uMWVkM2NiMTQxYWIzNzQxZDMwYTA4YTM2
ZWVmNTI0ZTVkMGFlZjBmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAK
QEAgLTM3NCw3ICszNzQsNyBAQCBjbGFzcyBFbXB0eVN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlciBm
aW5hbCA6IHB1YmxpYyBTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIgewogICAgICAgICBib29sIGNv
bnRhaW5zKGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgICAgIFN0
b3JhZ2VUeXBlIHN0b3JhZ2VUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU3RvcmFnZVR5cGU6
OkxvY2FsOyB9CiAgICAgICAgIHNpemVfdCBtZW1vcnlCeXRlc1VzZWRCeUNhY2hlKCkgZmluYWwg
eyByZXR1cm4gMDsgfQotICAgICAgICBTZWN1cml0eU9yaWdpbkRhdGEgc2VjdXJpdHlPcmlnaW4o
KSBjb25zdCBmaW5hbCB7IHJldHVybiB7IH07IH0KKyAgICAgICAgY29uc3QgU2VjdXJpdHlPcmln
aW5EYXRhJiBzZWN1cml0eU9yaWdpbigpIGNvbnN0IGZpbmFsIHsgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2luOyByZXR1cm4gb3JpZ2luLmdldCgpOyB9CiAg
ICAgfTsKIAogICAgIHN0cnVjdCBFbXB0eVN0b3JhZ2VOYW1lc3BhY2UgZmluYWwgOiBwdWJsaWMg
U3RvcmFnZU5hbWVzcGFjZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVM
b2FkZXJDbGllbnQuaAppbmRleCBlZjM4ZmE0ZTMzN2M2Njc0MWQ0YTQyNzM4YWQxN2VkNTZiM2I4
OTAxLi4wN2MzMmI4YzNlZTc2OTE3MGIyZDVlYTUxMTVjMzM5Y2JjZThhNDkwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTE4NSw3ICsx
ODUsNyBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IDogcHVi
bGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJlbW90
ZUFYT2JqZWN0UmVmIGFjY2Vzc2liaWxpdHlSZW1vdGVPYmplY3QoKSBmaW5hbCB7IHJldHVybiBu
dWxscHRyOyB9Ci0gICAgTlNDYWNoZWRVUkxSZXNwb25zZSAqd2lsbENhY2hlUmVzcG9uc2UoRG9j
dW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nLCBOU0NhY2hlZFVSTFJlc3BvbnNlICpyZXNwb25z
ZSkgY29uc3QgZmluYWwgeyByZXR1cm4gcmVzcG9uc2U7IH0KKyAgICB2b2lkIHdpbGxDYWNoZVJl
c3BvbnNlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZywgTlNDYWNoZWRVUkxSZXNwb25z
ZSAqcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTlNDYWNoZWRVUkxSZXNwb25zZSAq
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QgZmluYWwgeyBjb21wbGV0aW9uSGFuZGxlcihy
ZXNwb25zZSk7IH0KICNlbmRpZgogCiAjaWYgVVNFKENGVVJMQ09OTkVDVElPTikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDZkZTJkN2I4NjkxYjAxZjRlOGUzZWVhOGVm
ZGE3MzYyOGM4Nzg1ZDIuLmQyNTllN2Y5NjkxZTBhY2I1Mjc4ZThiNGVlMzY3OTdhNTE1NjYzNWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtODcsNiArODcsNyBAQAog
I2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiTWVtb3J5UmVsZWFzZS5oIgogI2lu
Y2x1ZGUgIk5hdmlnYXRpb25EaXNhYmxlci5oIgorI2luY2x1ZGUgIk5hdmlnYXRpb25Qb2xpY3lD
aGVjay5oIgogI2luY2x1ZGUgIk5hdmlnYXRpb25TY2hlZHVsZXIuaCIKICNpbmNsdWRlICJQYWdl
LmgiCiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCkBAIC05MjcsNyArOTI4LDcgQEAgdm9pZCBGcmFt
ZUxvYWRlcjo6bG9hZFVSTEludG9DaGlsZEZyYW1lKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIHJlZmVyZXIsIEYKICAgICBpZiAocGFyZW50SXRlbSAmJiBwYXJlbnRJdGVtLT5jaGlsZHJl
bigpLnNpemUoKSAmJiBpc0JhY2tGb3J3YXJkTG9hZFR5cGUobG9hZFR5cGUoKSkgJiYgIW1fZnJh
bWUuZG9jdW1lbnQoKS0+bG9hZEV2ZW50RmluaXNoZWQoKSkgewogICAgICAgICBpZiAoYXV0byog
Y2hpbGRJdGVtID0gcGFyZW50SXRlbS0+Y2hpbGRJdGVtV2l0aFRhcmdldChjaGlsZEZyYW1lLT50
cmVlKCkudW5pcXVlTmFtZSgpKSkgewogICAgICAgICAgICAgY2hpbGRGcmFtZS0+bG9hZGVyKCku
bV9yZXF1ZXN0ZWRIaXN0b3J5SXRlbSA9IGNoaWxkSXRlbTsKLSAgICAgICAgICAgIGNoaWxkRnJh
bWUtPmxvYWRlcigpLmxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0oKmNoaWxkSXRlbSwgbG9hZFR5
cGUoKSwgTWF5QXR0ZW1wdENhY2hlT25seUxvYWRGb3JGb3JtU3VibWlzc2lvbkl0ZW0pOworICAg
ICAgICAgICAgY2hpbGRGcmFtZS0+bG9hZGVyKCkubG9hZERpZmZlcmVudERvY3VtZW50SXRlbSgq
Y2hpbGRJdGVtLCBsb2FkVHlwZSgpLCBNYXlBdHRlbXB0Q2FjaGVPbmx5TG9hZEZvckZvcm1TdWJt
aXNzaW9uSXRlbSwgTmF2aWdhdGlvblBvbGljeUNoZWNrOjpSZXF1aXJlKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTM0NjcsNyArMzQ2OCw3IEBAIHZvaWQgRnJh
bWVMb2FkZXI6OmxvYWRTYW1lRG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtJiBpdGVtKQogLy8gRklY
TUU6IFRoaXMgZnVuY3Rpb24gc2hvdWxkIHJlYWxseSBiZSBzcGxpdCBpbnRvIGEgY291cGxlIHBp
ZWNlcywgc29tZSBvZgogLy8gd2hpY2ggc2hvdWxkIGJlIG1ldGhvZHMgb2YgSGlzdG9yeUNvbnRy
b2xsZXIgYW5kIHNvbWUgb2Ygd2hpY2ggc2hvdWxkIGJlCiAvLyBtZXRob2RzIG9mIEZyYW1lTG9h
ZGVyLgotdm9pZCBGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0b3J5
SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlwZSBsb2FkVHlwZSwgRm9ybVN1Ym1pc3Npb25DYWNoZUxv
YWRQb2xpY3kgY2FjaGVMb2FkUG9saWN5KQordm9pZCBGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVu
dERvY3VtZW50SXRlbShIaXN0b3J5SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlwZSBsb2FkVHlwZSwg
Rm9ybVN1Ym1pc3Npb25DYWNoZUxvYWRQb2xpY3kgY2FjaGVMb2FkUG9saWN5LCBOYXZpZ2F0aW9u
UG9saWN5Q2hlY2sgbmF2aWdhdGlvblBvbGljeUNoZWNrKQogewogICAgIC8vIFJlbWVtYmVyIHRo
aXMgaXRlbSBzbyB3ZSBjYW4gdHJhdmVyc2UgYW55IGNoaWxkIGl0ZW1zIGFzIGNoaWxkIGZyYW1l
cyBsb2FkCiAgICAgaGlzdG9yeSgpLnNldFByb3Zpc2lvbmFsSXRlbSgmaXRlbSk7CkBAIC0zNTY1
LDExICszNTY2LDEzIEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWREaWZmZXJlbnREb2N1bWVudEl0
ZW0oSGlzdG9yeUl0ZW0mIGl0ZW0sIEZyYW1lTG9hZFR5cGUgbG9hCiAgICAgICAgIGFjdGlvbiA9
IHsgKm1fZnJhbWUuZG9jdW1lbnQoKSwgcmVxdWVzdEZvck9yaWdpbmFsVVJMLCBpbml0aWF0ZWRC
eU1haW5GcmFtZSwgbG9hZFR5cGUsIGlzRm9ybVN1Ym1pc3Npb24sIGV2ZW50LCBzaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5IH07CiAgICAgfQogCisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY3Vy
cmVudExvYWRTaG91bGRDaGVja05hdmlnYXRpb25Qb2xpY3lHdWFyZChtX2N1cnJlbnRMb2FkU2hv
dWxkQ2hlY2tOYXZpZ2F0aW9uUG9saWN5LCBuYXZpZ2F0aW9uUG9saWN5Q2hlY2sgIT0gTmF2aWdh
dGlvblBvbGljeUNoZWNrOjpCeXBhc3MpOworCiAgICAgbG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9u
KHJlcXVlc3QsIGFjdGlvbiwgTG9ja0hpc3Rvcnk6Ok5vLCBsb2FkVHlwZSwgMCwgQWxsb3dOYXZp
Z2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIFtdIHsgfSk7CiB9CiAKIC8vIExvYWRzIGNvbnRlbnQg
aW50byB0aGlzIGZyYW1lLCBhcyBzcGVjaWZpZWQgYnkgaGlzdG9yeSBpdGVtCi12b2lkIEZyYW1l
TG9hZGVyOjpsb2FkSXRlbShIaXN0b3J5SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlwZSBsb2FkVHlw
ZSkKK3ZvaWQgRnJhbWVMb2FkZXI6OmxvYWRJdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBGcmFtZUxv
YWRUeXBlIGxvYWRUeXBlLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2sgbmF2aWdhdGlvblBvbGljeUNo
ZWNrKQogewogICAgIG1fcmVxdWVzdGVkSGlzdG9yeUl0ZW0gPSAmaXRlbTsKICAgICBIaXN0b3J5
SXRlbSogY3VycmVudEl0ZW0gPSBoaXN0b3J5KCkuY3VycmVudEl0ZW0oKTsKQEAgLTM1NzgsNyAr
MzU4MSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRJdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBG
cmFtZUxvYWRUeXBlIGxvYWRUeXBlKQogICAgIGlmIChzYW1lRG9jdW1lbnROYXZpZ2F0aW9uKQog
ICAgICAgICBsb2FkU2FtZURvY3VtZW50SXRlbShpdGVtKTsKICAgICBlbHNlCi0gICAgICAgIGxv
YWREaWZmZXJlbnREb2N1bWVudEl0ZW0oaXRlbSwgbG9hZFR5cGUsIE1heUF0dGVtcHRDYWNoZU9u
bHlMb2FkRm9yRm9ybVN1Ym1pc3Npb25JdGVtKTsKKyAgICAgICAgbG9hZERpZmZlcmVudERvY3Vt
ZW50SXRlbShpdGVtLCBsb2FkVHlwZSwgTWF5QXR0ZW1wdENhY2hlT25seUxvYWRGb3JGb3JtU3Vi
bWlzc2lvbkl0ZW0sIG5hdmlnYXRpb25Qb2xpY3lDaGVjayk7CiB9CiAKIHZvaWQgRnJhbWVMb2Fk
ZXI6OnJldHJ5QWZ0ZXJGYWlsZWRDYWNoZU9ubHlNYWluUmVzb3VyY2VMb2FkKCkKQEAgLTM1OTMs
NyArMzU5Niw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnJldHJ5QWZ0ZXJGYWlsZWRDYWNoZU9ubHlN
YWluUmVzb3VyY2VMb2FkKCkKICAgICBIaXN0b3J5SXRlbSYgaXRlbSA9ICpoaXN0b3J5KCkucHJv
dmlzaW9uYWxJdGVtKCk7CiAKICAgICBzdG9wQWxsTG9hZGVycyhTaG91bGROb3RDbGVhclByb3Zp
c2lvbmFsSXRlbSk7Ci0gICAgbG9hZERpZmZlcmVudERvY3VtZW50SXRlbShpdGVtLCBsb2FkVHlw
ZSwgTWF5Tm90QXR0ZW1wdENhY2hlT25seUxvYWRGb3JGb3JtU3VibWlzc2lvbkl0ZW0pOworICAg
IGxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0oaXRlbSwgbG9hZFR5cGUsIE1heU5vdEF0dGVtcHRD
YWNoZU9ubHlMb2FkRm9yRm9ybVN1Ym1pc3Npb25JdGVtLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2s6
OlJlcXVpcmUpOwogfQogCiBSZXNvdXJjZUVycm9yIEZyYW1lTG9hZGVyOjpjYW5jZWxsZWRFcnJv
cihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5oCmluZGV4IDhlNGI5NWViMTQzNjdkMjE1OTllYzNhYjBkOTVhODBkZjlkMjIy
NDIuLjdlNWVkNWRkN2U2MjYyNDIxMTA5ZjZlMDc0OTk5NTZjNDBiNDEwMTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC04MCw2ICs4MCw4IEBAIGNsYXNzIFNoYXJlZEJ1ZmZl
cjsKIGNsYXNzIFN1YmZyYW1lTG9hZGVyOwogY2xhc3MgU3Vic3RpdHV0ZURhdGE7CiAKK2VudW0g
Y2xhc3MgTmF2aWdhdGlvblBvbGljeUNoZWNrOworCiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7CiAK
IFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNCYWNrRm9yd2FyZExvYWRUeXBlKEZyYW1lTG9hZFR5cGUp
OwpAQCAtMTI1LDcgKzEyNyw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJl
bG9hZFdpdGhPdmVycmlkZUVuY29kaW5nKGNvbnN0IFN0cmluZyYgb3ZlcnJpZGVFbmNvZGluZyk7
CiAKICAgICB2b2lkIG9wZW4oQ2FjaGVkRnJhbWVCYXNlJik7Ci0gICAgdm9pZCBsb2FkSXRlbShI
aXN0b3J5SXRlbSYsIEZyYW1lTG9hZFR5cGUpOworICAgIHZvaWQgbG9hZEl0ZW0oSGlzdG9yeUl0
ZW0mLCBGcmFtZUxvYWRUeXBlLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2spOwogICAgIEhpc3RvcnlJ
dGVtKiByZXF1ZXN0ZWRIaXN0b3J5SXRlbSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVkSGlz
dG9yeUl0ZW0uZ2V0KCk7IH0KIAogICAgIHZvaWQgcmV0cnlBZnRlckZhaWxlZENhY2hlT25seU1h
aW5SZXNvdXJjZUxvYWQoKTsKQEAgLTMxNyw3ICszMTksNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
Y2hlY2tUaW1lckZpcmVkKCk7CiAKICAgICB2b2lkIGxvYWRTYW1lRG9jdW1lbnRJdGVtKEhpc3Rv
cnlJdGVtJik7Ci0gICAgdm9pZCBsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVt
JiwgRnJhbWVMb2FkVHlwZSwgRm9ybVN1Ym1pc3Npb25DYWNoZUxvYWRQb2xpY3kpOworICAgIHZv
aWQgbG9hZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0b3J5SXRlbSYsIEZyYW1lTG9hZFR5cGUs
IEZvcm1TdWJtaXNzaW9uQ2FjaGVMb2FkUG9saWN5LCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2spOwog
CiAgICAgdm9pZCBsb2FkUHJvdmlzaW9uYWxJdGVtRnJvbUNhY2hlZFBhZ2UoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA3N2M1NGQyOTljZDA4ZGEw
ZGE2NWU4MzFhMGYxMzRiMzQzNTgwOTYwLi5kOTQxZDI2NTgyZGYyOTNiMWY5ZmM4YzNiZmRlYWE2
OWM4ZGQ1OWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApA
QCAtMzAzLDcgKzMwMyw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAvLyBB
bGxvdyBhbiBhY2Nlc3NpYmlsaXR5IG9iamVjdCB0byByZXRyaWV2ZSBhIEZyYW1lIHBhcmVudCBp
ZiB0aGVyZSdzIG5vIFBsYXRmb3JtV2lkZ2V0LgogICAgIHZpcnR1YWwgUmVtb3RlQVhPYmplY3RS
ZWYgYWNjZXNzaWJpbGl0eVJlbW90ZU9iamVjdCgpID0gMDsKLSAgICB2aXJ0dWFsIE5TQ2FjaGVk
VVJMUmVzcG9uc2UqIHdpbGxDYWNoZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBOU0NhY2hlZFVSTFJlc3BvbnNlKikgY29uc3QgPSAwOworICAgIHZp
cnR1YWwgdm9pZCB3aWxsQ2FjaGVSZXNwb25zZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgTlNDYWNoZWRVUkxSZXNwb25zZSosIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoTlNDYWNoZWRVUkxSZXNwb25zZSAqKT4mJikgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgTlNE
aWN0aW9uYXJ5ICpkYXRhRGV0ZWN0aW9uQ29udGV4dCgpIHsgcmV0dXJuIG51bGxwdHI7IH0KICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBl
cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaAppbmRleCA1OWI2
YTYyM2QxNWJkMDU3Yjg4NjMxZjI0MjkwNTBkZmQ5ZDAyYmRmLi42ZGUxYjZmYWFmZTJlOWFkMzU0
ZTY5OTJjYjc0ZWM4YWQzYzI5MzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXJUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
clR5cGVzLmgKQEAgLTE2NCw0ICsxNjQsMjAgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxXZWJDb3JlOjpQb2xpY3lBY3Rpb24+IHsKICAgICA+OwogfTsKIAordGVtcGxhdGU8PiBzdHJ1
Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpGcmFtZUxvYWRUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVz
ID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSwKKyAgICAgICAg
V2ViQ29yZTo6RnJhbWVMb2FkVHlwZTo6U3RhbmRhcmQsCisgICAgICAgIFdlYkNvcmU6OkZyYW1l
TG9hZFR5cGU6OkJhY2ssCisgICAgICAgIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGU6OkZvcndhcmQs
CisgICAgICAgIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCwKKyAg
ICAgICAgV2ViQ29yZTo6RnJhbWVMb2FkVHlwZTo6UmVsb2FkLAorICAgICAgICBXZWJDb3JlOjpG
cmFtZUxvYWRUeXBlOjpTYW1lLAorICAgICAgICBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlOjpSZWRp
cmVjdFdpdGhMb2NrZWRCYWNrRm9yd2FyZExpc3QsCisgICAgICAgIFdlYkNvcmU6OkZyYW1lTG9h
ZFR5cGU6OlJlcGxhY2UsCisgICAgICAgIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGU6OlJlbG9hZEZy
b21PcmlnaW4sCisgICAgICAgIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGU6OlJlbG9hZEV4cGlyZWRP
bmx5CisgICAgPjsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKaW5kZXggYjhlZTczMzZiN2NkOTdkYTUwNWM0OTA4
ZjE1MzllNjc3YWY2ZjBhMC4uZWEyNTY3YjYzODAwNGQ3YjgwNjYwYWQ2MTY3OWZmOWNkMWNkYWQx
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCkBAIC00
Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKICNpbmNsdWRlICJMb2dnaW5n
LmgiCiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCisjaW5jbHVkZSAiTmF2aWdhdGlvblBvbGljeUNo
ZWNrLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VDYWNoZS5oIgogI2luY2x1
ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCkBAIC0yOTAsNyArMjkxLDcgQEAgYm9vbCBIaXN0
b3J5Q29udHJvbGxlcjo6c2hvdWxkU3RvcExvYWRpbmdGb3JIaXN0b3J5SXRlbShIaXN0b3J5SXRl
bSYgdGFyZ2V0SXRlbSkKIAogLy8gTWFpbiBmdW5uZWwgZm9yIG5hdmlnYXRpbmcgdG8gYSBwcmV2
aW91cyBsb2NhdGlvbiAoYmFjay9mb3J3YXJkLCBub24tc2VhcmNoIHNuYXAtYmFjaykKIC8vIFRo
aXMgaW5jbHVkZXMgcmVjdXJzaW9uIHRvIGhhbmRsZSBsb2FkaW5nIGludG8gZnJhbWVzZXRzIHBy
b3Blcmx5Ci12b2lkIEhpc3RvcnlDb250cm9sbGVyOjpnb1RvSXRlbShIaXN0b3J5SXRlbSYgdGFy
Z2V0SXRlbSwgRnJhbWVMb2FkVHlwZSB0eXBlKQordm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6Z29U
b0l0ZW0oSGlzdG9yeUl0ZW0mIHRhcmdldEl0ZW0sIEZyYW1lTG9hZFR5cGUgdHlwZSwgTmF2aWdh
dGlvblBvbGljeUNoZWNrIG5hdmlnYXRpb25Qb2xpY3lDaGVjaykKIHsKICAgICBMT0coSGlzdG9y
eSwgIkhpc3RvcnlDb250cm9sbGVyICVwIGdvVG9JdGVtICVwIHR5cGU9JWQiLCB0aGlzLCAmdGFy
Z2V0SXRlbSwgc3RhdGljX2Nhc3Q8aW50Pih0eXBlKSk7CiAKQEAgLTMyNSwxNCArMzI2LDE0IEBA
IHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OmdvVG9JdGVtKEhpc3RvcnlJdGVtJiB0YXJnZXRJdGVt
LCBGcmFtZUxvYWRUeXBlIHR5cGUpCiAgICAgcmVjdXJzaXZlU2V0UHJvdmlzaW9uYWxJdGVtKHRh
cmdldEl0ZW0sIGN1cnJlbnRJdGVtLmdldCgpKTsKIAogICAgIC8vIE5vdyB0aGF0IGFsbCBvdGhl
ciBmcmFtZXMgaGF2ZSBwcm92aXNpb25hbCBpdGVtcywgZG8gdGhlIGFjdHVhbCBuYXZpZ2F0aW9u
LgotICAgIHJlY3Vyc2l2ZUdvVG9JdGVtKHRhcmdldEl0ZW0sIGN1cnJlbnRJdGVtLmdldCgpLCB0
eXBlKTsKKyAgICByZWN1cnNpdmVHb1RvSXRlbSh0YXJnZXRJdGVtLCBjdXJyZW50SXRlbS5nZXQo
KSwgdHlwZSwgbmF2aWdhdGlvblBvbGljeUNoZWNrKTsKIH0KIAogdm9pZCBIaXN0b3J5Q29udHJv
bGxlcjo6c2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVyKQogewogICAgIG1fZGVmZXJzTG9hZGlu
ZyA9IGRlZmVyOwogICAgIGlmICghZGVmZXIgJiYgbV9kZWZlcnJlZEl0ZW0pIHsKLSAgICAgICAg
Z29Ub0l0ZW0oKm1fZGVmZXJyZWRJdGVtLCBtX2RlZmVycmVkRnJhbWVMb2FkVHlwZSk7CisgICAg
ICAgIGdvVG9JdGVtKCptX2RlZmVycmVkSXRlbSwgbV9kZWZlcnJlZEZyYW1lTG9hZFR5cGUsIE5h
dmlnYXRpb25Qb2xpY3lDaGVjazo6UmVxdWlyZSk7CiAgICAgICAgIG1fZGVmZXJyZWRJdGVtID0g
bnVsbHB0cjsKICAgICB9CiB9CkBAIC03NDksMTAgKzc1MCwxMCBAQCB2b2lkIEhpc3RvcnlDb250
cm9sbGVyOjpyZWN1cnNpdmVTZXRQcm92aXNpb25hbEl0ZW0oSGlzdG9yeUl0ZW0mIGl0ZW0sIEhp
c3RvcnlJdAogCiAvLyBXZSBub3cgdHJhdmVyc2UgdGhlIGZyYW1lIHRyZWUgYW5kIGl0ZW0gdHJl
ZSBhIHNlY29uZCB0aW1lLCBsb2FkaW5nIGZyYW1lcyB0aGF0CiAvLyBkbyBoYXZlIHRoZSBjb250
ZW50IHRoZSBpdGVtIHJlcXVlc3RzLgotdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6cmVjdXJzaXZl
R29Ub0l0ZW0oSGlzdG9yeUl0ZW0mIGl0ZW0sIEhpc3RvcnlJdGVtKiBmcm9tSXRlbSwgRnJhbWVM
b2FkVHlwZSB0eXBlKQordm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6cmVjdXJzaXZlR29Ub0l0ZW0o
SGlzdG9yeUl0ZW0mIGl0ZW0sIEhpc3RvcnlJdGVtKiBmcm9tSXRlbSwgRnJhbWVMb2FkVHlwZSB0
eXBlLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2sgbmF2aWdhdGlvblBvbGljeUNoZWNrKQogewogICAg
IGlmICghaXRlbXNBcmVDbG9uZXMoaXRlbSwgZnJvbUl0ZW0pKSB7Ci0gICAgICAgIG1fZnJhbWUu
bG9hZGVyKCkubG9hZEl0ZW0oaXRlbSwgdHlwZSk7CisgICAgICAgIG1fZnJhbWUubG9hZGVyKCku
bG9hZEl0ZW0oaXRlbSwgdHlwZSwgbmF2aWdhdGlvblBvbGljeUNoZWNrKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApAQCAtNzYzLDcgKzc2NCw3IEBAIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6
OnJlY3Vyc2l2ZUdvVG9JdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBIaXN0b3J5SXRlbSogZnJvbUl0
CiAgICAgICAgIEhpc3RvcnlJdGVtKiBmcm9tQ2hpbGRJdGVtID0gZnJvbUl0ZW0tPmNoaWxkSXRl
bVdpdGhUYXJnZXQoY2hpbGRGcmFtZU5hbWUpOwogICAgICAgICBBU1NFUlQoZnJvbUNoaWxkSXRl
bSk7CiAgICAgICAgIGlmIChGcmFtZSogY2hpbGRGcmFtZSA9IG1fZnJhbWUudHJlZSgpLmNoaWxk
KGNoaWxkRnJhbWVOYW1lKSkKLSAgICAgICAgICAgIGNoaWxkRnJhbWUtPmxvYWRlcigpLmhpc3Rv
cnkoKS5yZWN1cnNpdmVHb1RvSXRlbShjaGlsZEl0ZW0sIGZyb21DaGlsZEl0ZW0sIHR5cGUpOwor
ICAgICAgICAgICAgY2hpbGRGcmFtZS0+bG9hZGVyKCkuaGlzdG9yeSgpLnJlY3Vyc2l2ZUdvVG9J
dGVtKGNoaWxkSXRlbSwgZnJvbUNoaWxkSXRlbSwgdHlwZSwgbmF2aWdhdGlvblBvbGljeUNoZWNr
KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmgK
aW5kZXggM2QyNWUyODliMjJmYjFmOTk2M2Y2ZGZiMzM0Nzg5NTgxZDA5MjcwMS4uNDUzNWFhZWIz
ODBkMTg1YzlhMTExOWZiNTg4NGM1OGYzMGY1OTBmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0hpc3RvcnlDb250cm9sbGVyLmgKQEAgLTQwLDYgKzQwLDggQEAgY2xhc3MgRnJhbWU7CiBjbGFz
cyBIaXN0b3J5SXRlbTsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIAorZW51bSBjbGFz
cyBOYXZpZ2F0aW9uUG9saWN5Q2hlY2s7CisKIHN0cnVjdCBTdHJpbmdXaXRoRGlyZWN0aW9uOwog
CiBjbGFzcyBIaXN0b3J5Q29udHJvbGxlciB7CkBAIC05MiwxNCArOTQsMTQgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUGFnZTsKICAgICBib29sIHNob3VsZFN0b3BMb2Fk
aW5nRm9ySGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0mKSBjb25zdDsKLSAgICB2b2lkIGdvVG9JdGVt
KEhpc3RvcnlJdGVtJiwgRnJhbWVMb2FkVHlwZSk7CisgICAgdm9pZCBnb1RvSXRlbShIaXN0b3J5
SXRlbSYsIEZyYW1lTG9hZFR5cGUsIE5hdmlnYXRpb25Qb2xpY3lDaGVjayk7CiAKICAgICB2b2lk
IGluaXRpYWxpemVJdGVtKEhpc3RvcnlJdGVtJik7CiAgICAgUmVmPEhpc3RvcnlJdGVtPiBjcmVh
dGVJdGVtKCk7CiAgICAgUmVmPEhpc3RvcnlJdGVtPiBjcmVhdGVJdGVtVHJlZShGcmFtZSYgdGFy
Z2V0RnJhbWUsIGJvb2wgY2xpcEF0VGFyZ2V0KTsKIAogICAgIHZvaWQgcmVjdXJzaXZlU2V0UHJv
dmlzaW9uYWxJdGVtKEhpc3RvcnlJdGVtJiwgSGlzdG9yeUl0ZW0qKTsKLSAgICB2b2lkIHJlY3Vy
c2l2ZUdvVG9JdGVtKEhpc3RvcnlJdGVtJiwgSGlzdG9yeUl0ZW0qLCBGcmFtZUxvYWRUeXBlKTsK
KyAgICB2b2lkIHJlY3Vyc2l2ZUdvVG9JdGVtKEhpc3RvcnlJdGVtJiwgSGlzdG9yeUl0ZW0qLCBG
cmFtZUxvYWRUeXBlLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2spOwogICAgIGJvb2wgaXNSZXBsYWNl
TG9hZFR5cGVXaXRoUHJvdmlzaW9uYWxJdGVtKEZyYW1lTG9hZFR5cGUpOwogICAgIGJvb2wgaXNS
ZWxvYWRUeXBlV2l0aFByb3Zpc2lvbmFsSXRlbShGcmFtZUxvYWRUeXBlKTsKICAgICB2b2lkIHJl
Y3Vyc2l2ZVVwZGF0ZUZvckNvbW1pdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL05hdmlnYXRpb25Qb2xpY3lDaGVjay5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmln
YXRpb25Qb2xpY3lDaGVjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyMTc4ZWZkY2E4ZWQwZGE4ZTM5YTI2ZGUy
YWM1ZDg2Y2IzYzhiNjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TmF2aWdhdGlvblBvbGljeUNoZWNrLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitlbnVtIGNsYXNzIE5hdmlnYXRpb25Qb2xpY3lDaGVjayB7CisgICAgUmVxdWly
ZSwKKyAgICBCeXBhc3MsCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFj
ZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok5hdmlnYXRp
b25Qb2xpY3lDaGVjaz4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAg
IFdlYkNvcmU6Ok5hdmlnYXRpb25Qb2xpY3lDaGVjaywKKyAgICAgICAgV2ViQ29yZTo6TmF2aWdh
dGlvblBvbGljeUNoZWNrOjpSZXF1aXJlLAorICAgICAgICBXZWJDb3JlOjpOYXZpZ2F0aW9uUG9s
aWN5Q2hlY2s6OkJ5cGFzcworICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmNwcAppbmRleCAy
ZmRlZTQ0NWE4OGVjMTFmZGE2ZDJiZWY2YzQ5MDRmYTc0MmI1NDc5Li40ZGYyNWRhOGViN2FlOTY2
ZWRhMDZjNjQ3NzY5OGM0ZjdkZTEwYmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZFN0YXRpc3RpY3MuY3BwCkBAIC0xNTEsNyArMTUxLDcgQEAgYm9vbCBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzOjpkZWNvZGUoS2V5ZWREZWNvZGVyJiBkZWNvZGVyLCB1bnNpZ25l
ZCBtb2RlbFZlcnNpb24KICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKG1vZGVsVmVy
c2lvbiA+PSAxMikgewotICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlQm9vbCgiaXNWZXJ5UHJl
dmFsZW50UmVzb3VyY2UiLCBpc1ByZXZhbGVudFJlc291cmNlKSkKKyAgICAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZUJvb2woImlzVmVyeVByZXZhbGVudFJlc291cmNlIiwgaXNWZXJ5UHJldmFsZW50
UmVzb3VyY2UpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggYjc5NTQ0MWEzZDRkYjgwZDM2Nzdi
MjdiMWNhMDE5YTNlMjA5MGM4ZC4uN2QwOTBiMzMwYzIzMDhkODc4OGJlZGZhMTdkZjcyMTgzNThi
NWIzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC03MzYs
OSArNzM2LDkgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGMKIH0KIAogI2lmIFVTRShQUk9URUNU
SU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCi12b2lkIFJlc291cmNlTG9hZGVyOjpjYW5BdXRoZW50
aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwg
Y29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3BhY2UpCit2b2lkIFJlc291cmNlTG9h
ZGVyOjpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlQXN5bmMoUmVzb3VyY2VI
YW5kbGUqLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFjZSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBoYW5kbGUt
PmNvbnRpbnVlQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShjYW5BdXRoZW50
aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKHByb3RlY3Rpb25TcGFjZSkpOworICAgIGNvbXBs
ZXRpb25IYW5kbGVyKGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UocHJvdGVj
dGlvblNwYWNlKSk7CiB9CiAKIGJvb2wgUmVzb3VyY2VMb2FkZXI6OmNhbkF1dGhlbnRpY2F0ZUFn
YWluc3RQcm90ZWN0aW9uU3BhY2UoY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9uU3Bh
Y2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCmluZGV4IGQ0NWEwZTNmNmRj
OWJiYWVjNTFhMWM5ODE3MTkyNThkN2RkNjliYTYuLjUyYTQyZjUyY2Y3Mzc4NGRhMzRmMmYwM2Vk
YWExMzNkMDU4YTczZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCkBA
IC0xNjEsNyArMTYxLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGFPckJ1
ZmZlcihjb25zdCBjaGFyKiwgdW5zaWduZWQsIFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYsIGxvbmcg
bG9uZyBlbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRUeXBlKTsKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQotICAgIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHdpbGxDYWNoZVJlc3BvbnNlKFJlc291
cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxSZXNwb25zZSopIG92ZXJyaWRlOworICAgIHZvaWQgd2ls
bENhY2hlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIE5TQ2FjaGVkVVJMUmVzcG9uc2Uq
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5TQ2FjaGVkVVJMUmVzcG9uc2UgKik+JiYpIG92ZXJy
aWRlOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0SW50ZXJuYWwo
UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9u
c2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVzb3VyY2VSZXF1ZXN0JiYpPiYmKTsKQEAgLTE5
OSw3ICsxOTksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3Jh
Z2UoUmVzb3VyY2VIYW5kbGUqKSBvdmVycmlkZSB7IHJldHVybiBzaG91bGRVc2VDcmVkZW50aWFs
U3RvcmFnZSgpOyB9CiAgICAgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpIG92ZXJyaWRl
OwogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCi0gICAgdm9pZCBjYW5B
dXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBQcm90ZWN0aW9uU3BhY2UmKSBvdmVycmlkZTsKKyAgICB2b2lkIGNhbkF1dGhlbnRpY2F0
ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFByb3Rl
Y3Rpb25TcGFjZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRlOwog
I2VuZGlmCiAgICAgdm9pZCByZWNlaXZlZENhbmNlbGxhdGlvbihSZXNvdXJjZUhhbmRsZSosIGNv
bnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpIG92ZXJyaWRlIHsgcmVjZWl2
ZWRDYW5jZWxsYXRpb24oY2hhbGxlbmdlKTsgfQogI2lmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgKaW5kZXggMDhkZmRmZGNhMzU3ZmJhODRi
OWZmMjZkMjM3MzA4Y2I0M2FjM2YwNC4uMzlhNTc0MzI0ZmQ5MDQ4YjhmODNjYzIyZDZjYTZkYWVl
YzVlNzlhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9h
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgKQEAg
LTgxLDcgKzgxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJldHJpZXZlRGVyaXZlZERhdGFG
cm9tQ2FjaGUoY29uc3QgU3RyaW5nJiB0eXBlLCBTaGFyZWRCdWZmZXImKSBvdmVycmlkZTsKIAog
I2lmIFBMQVRGT1JNKENPQ09BKQotICAgIE5TQ2FjaGVkVVJMUmVzcG9uc2UgKndpbGxDYWNoZVJl
c3BvbnNlKFJlc291cmNlSGFuZGxlKiwgTlNDYWNoZWRVUkxSZXNwb25zZSopIG92ZXJyaWRlOwor
ICAgIHZvaWQgd2lsbENhY2hlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIE5TQ2FjaGVk
VVJMUmVzcG9uc2UqLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5TQ2FjaGVkVVJMUmVzcG9uc2Ug
Kik+JiYpIG92ZXJyaWRlOwogI2VuZGlmCiAKICAgICB2b2lkIHJlbGVhc2VSZXNvdXJjZXMoKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBs
aWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCmluZGV4IDljMWNjMzgwYTExYWM2ZDM4MTRmNzM0
MTJiYTAxNDgxMGYwMGM5ZTcuLmZmMjkzODk5NzA2ZGU4OTVjZWY3NTAzYzBlODU3ZmFkMmZlMTI4
ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0Fw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcApAQCAtNDMwLDcgKzQzMCw3IEBAIGJvb2wgQXBwbGlj
YXRpb25DYWNoZVN0b3JhZ2U6OmNhbGN1bGF0ZVF1b3RhRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5
T3JpZ2luJiBvcmlnCiAgICAgaWYgKHN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBzdGF0ZW1lbnQuYmluZFRleHQoMSwgU2VjdXJp
dHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4ob3JpZ2luKS5kYXRhYmFzZUlkZW50aWZp
ZXIoKSk7CisgICAgc3RhdGVtZW50LmJpbmRUZXh0KDEsIG9yaWdpbi5kYXRhKCkuZGF0YWJhc2VJ
ZGVudGlmaWVyKCkpOwogICAgIGludCByZXN1bHQgPSBzdGF0ZW1lbnQuc3RlcCgpOwogCiAgICAg
Ly8gUmV0dXJuIHRoZSBxdW90YSwgb3IgaWYgaXQgd2FzIG51bGwgdGhlIGRlZmF1bHQuCkBAIC00
NTgsNyArNDU4LDcgQEAgYm9vbCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2FsY3VsYXRlVXNh
Z2VGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4qIG9yaWcKICAgICBpZiAoc3RhdGVtZW50
LnByZXBhcmUoKSAhPSBTUUxJVEVfT0spCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHN0
YXRlbWVudC5iaW5kVGV4dCgxLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdp
bigqb3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIoKSk7CisgICAgc3RhdGVtZW50LmJpbmRUZXh0
KDEsIG9yaWdpbi0+ZGF0YSgpLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKICAgICBpbnQgcmVzdWx0
ID0gc3RhdGVtZW50LnN0ZXAoKTsKIAogICAgIGlmIChyZXN1bHQgPT0gU1FMSVRFX1JPVykgewpA
QCAtNTAxLDcgKzUwMSw3IEBAIGJvb2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNhbGN1bGF0
ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZShjb25zCiAgICAgaWYgKHN0YXRl
bWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBzdGF0ZW1lbnQuYmluZFRleHQoMSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlP
cmlnaW4ob3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIoKSk7CisgICAgc3RhdGVtZW50LmJpbmRU
ZXh0KDEsIG9yaWdpbi5kYXRhKCkuZGF0YWJhc2VJZGVudGlmaWVyKCkpOwogICAgIGlmIChleGNs
dWRpbmdDYWNoZUlkZW50aWZpZXIgIT0gMCkKICAgICAgICAgc3RhdGVtZW50LmJpbmRJbnQ2NCgy
LCBleGNsdWRpbmdDYWNoZUlkZW50aWZpZXIpOwogICAgIGludCByZXN1bHQgPSBzdGF0ZW1lbnQu
c3RlcCgpOwpAQCAtNTM3LDcgKzUzNyw3IEBAIGJvb2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6
OnN0b3JlVXBkYXRlZFF1b3RhRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBvCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIHVwZGF0ZVN0YXRlbWVudC5iaW5kSW50NjQoMSwgcXVv
dGEpOwotICAgIHVwZGF0ZVN0YXRlbWVudC5iaW5kVGV4dCgyLCBTZWN1cml0eU9yaWdpbkRhdGE6
OmZyb21TZWN1cml0eU9yaWdpbigqb3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIoKSk7CisgICAg
dXBkYXRlU3RhdGVtZW50LmJpbmRUZXh0KDIsIG9yaWdpbi0+ZGF0YSgpLmRhdGFiYXNlSWRlbnRp
ZmllcigpKTsKIAogICAgIHJldHVybiBleGVjdXRlU3RhdGVtZW50KHVwZGF0ZVN0YXRlbWVudCk7
CiB9CkBAIC02ODYsNyArNjg2LDcgQEAgYm9vbCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6c3Rv
cmUoQXBwbGljYXRpb25DYWNoZUdyb3VwKiBncm91cCwgR3JvdXBTdG9yYWdlSUQKIAogICAgIHN0
YXRlbWVudC5iaW5kSW50NjQoMSwgdXJsSG9zdEhhc2goZ3JvdXAtPm1hbmlmZXN0VVJMKCkpKTsK
ICAgICBzdGF0ZW1lbnQuYmluZFRleHQoMiwgZ3JvdXAtPm1hbmlmZXN0VVJMKCkpOwotICAgIHN0
YXRlbWVudC5iaW5kVGV4dCgzLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdp
bihncm91cC0+b3JpZ2luKCkpLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKKyAgICBzdGF0ZW1lbnQu
YmluZFRleHQoMywgZ3JvdXAtPm9yaWdpbigpLmRhdGEoKS5kYXRhYmFzZUlkZW50aWZpZXIoKSk7
CiAKICAgICBpZiAoIWV4ZWN1dGVTdGF0ZW1lbnQoc3RhdGVtZW50KSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtOTU3LDcgKzk1Nyw3IEBAIGJvb2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6
OmVuc3VyZU9yaWdpblJlY29yZChjb25zdCBTZWN1cml0eU9yaWdpbiogb3JpZ2luKQogICAgIGlm
IChpbnNlcnRPcmlnaW5TdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSykKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaW5zZXJ0T3JpZ2luU3RhdGVtZW50LmJpbmRUZXh0KDEsIFNl
Y3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCpvcmlnaW4pLmRhdGFiYXNlSWRl
bnRpZmllcigpKTsKKyAgICBpbnNlcnRPcmlnaW5TdGF0ZW1lbnQuYmluZFRleHQoMSwgb3JpZ2lu
LT5kYXRhKCkuZGF0YWJhc2VJZGVudGlmaWVyKCkpOwogICAgIGluc2VydE9yaWdpblN0YXRlbWVu
dC5iaW5kSW50NjQoMiwgbV9kZWZhdWx0T3JpZ2luUXVvdGEpOwogICAgIGlmICghZXhlY3V0ZVN0
YXRlbWVudChpbnNlcnRPcmlnaW5TdGF0ZW1lbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvU3VicmVzb3VyY2VMb2FkZXJD
b2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9TdWJyZXNvdXJjZUxvYWRlckNv
Y29hLm1tCmluZGV4IGY2MDM2MGI3ZWE1ZDgyMGExMDkyNTMxYzExNzcwMWMwZjg1NTJjMGQuLjZl
NTAzY2E0ZTJiZWFkNjRjOTRhMjNiMjMwOTQzYjZkNTQ0MWU0MTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9TdWJyZXNvdXJjZUxvYWRlckNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9TdWJyZXNvdXJjZUxvYWRlckNvY29hLm1tCkBAIC0z
NSwxMiArMzUsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1OU0NhY2hlZFVSTFJlc3Bv
bnNlKiBTdWJyZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUq
IGhhbmRsZSwgTlNDYWNoZWRVUkxSZXNwb25zZSogcmVzcG9uc2UpCit2b2lkIFN1YnJlc291cmNl
TG9hZGVyOjp3aWxsQ2FjaGVSZXNwb25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIE5T
Q2FjaGVkVVJMUmVzcG9uc2UqIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5TQ2Fj
aGVkVVJMUmVzcG9uc2UgKik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgRGlza0NhY2hl
TW9uaXRvcjo6bW9uaXRvckZpbGVCYWNraW5nU3RvcmVDcmVhdGlvbihyZXF1ZXN0KCksIG1fcmVz
b3VyY2UtPnNlc3Npb25JRCgpLCBbcmVzcG9uc2UgX0NGQ2FjaGVkVVJMUmVzcG9uc2VdKTsKICAg
ICBpZiAoIW1fcmVzb3VyY2UtPnNob3VsZENhY2hlUmVzcG9uc2UocmVzcG9uc2UucmVzcG9uc2Up
KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gUmVzb3VyY2VMb2FkZXI6Ondp
bGxDYWNoZVJlc3BvbnNlKGhhbmRsZSwgcmVzcG9uc2UpOworICAgICAgICByZXR1cm4gY29tcGxl
dGlvbkhhbmRsZXIobnVsbHB0cik7CisgICAgUmVzb3VyY2VMb2FkZXI6OndpbGxDYWNoZVJlc3Bv
bnNlQXN5bmMoaGFuZGxlLCByZXNwb25zZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwog
fQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL1Jlc291cmNlTG9h
ZGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL21hYy9SZXNvdXJjZUxvYWRlck1hYy5t
bQppbmRleCAwMThlYzRlYzc4MDA1YTk1ZjczYzM2MzgxMTZkOThjMGI3YmRkNDI0Li4yNzRkYWM1
MjE2ZWUzYzIzNWVkZmY5Mzg0NjZmNTU5NDlmOTE4NzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvbWFjL1Jlc291cmNlTG9hZGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9tYWMvUmVzb3VyY2VMb2FkZXJNYWMubW0KQEAgLTMxLDE0ICszMSwxNSBAQAogCiAj
aW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgor
I2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLU5TQ2FjaGVkVVJMUmVzcG9uc2UqIFJlc291cmNlTG9hZGVyOjp3aWxsQ2FjaGVSZXNwb25z
ZShSZXNvdXJjZUhhbmRsZSosIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHJlc3BvbnNlKQordm9pZCBS
ZXNvdXJjZUxvYWRlcjo6d2lsbENhY2hlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIE5T
Q2FjaGVkVVJMUmVzcG9uc2UqIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5TQ2Fj
aGVkVVJMUmVzcG9uc2UgKik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKG1fb3B0
aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9PSBEb05vdFNlbmRDYWxsYmFja3MpCi0gICAgICAgIHJl
dHVybiBudWxscHRyOwotICAgIHJldHVybiBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS53aWxsQ2Fj
aGVSZXNwb25zZShkb2N1bWVudExvYWRlcigpLCBpZGVudGlmaWVyKCksIHJlc3BvbnNlKTsKKyAg
ICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKG51bGxwdHIpOworICAgIGZyYW1lTG9hZGVy
KCktPmNsaWVudCgpLndpbGxDYWNoZVJlc3BvbnNlKGRvY3VtZW50TG9hZGVyKCksIGlkZW50aWZp
ZXIoKSwgcmVzcG9uc2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDMxZmI5NWM0YzYyMjZkYWU3YzcxOWUwYzgxMmFh
MjA2Y2FiMDM2ZjEuLjJkNDIzY2Y0ZmQzNjUyMjA5NWE0OGIzNGE3OWNkMGI4Y2ZlNzQwYWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTg3NCw3ICs4NzQsNyBAQCBFeGNlcHRpb25P
cjxTdG9yYWdlKj4gRE9NV2luZG93OjpzZXNzaW9uU3RvcmFnZSgpIGNvbnN0CiAgICAgaWYgKCFw
YWdlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gc3RvcmFnZUFyZWEgPSBw
YWdlLT5zZXNzaW9uU3RvcmFnZSgpLT5zdG9yYWdlQXJlYShTZWN1cml0eU9yaWdpbkRhdGE6OmZy
b21TZWN1cml0eU9yaWdpbihkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSkpOworICAgIGF1dG8g
c3RvcmFnZUFyZWEgPSBwYWdlLT5zZXNzaW9uU3RvcmFnZSgpLT5zdG9yYWdlQXJlYShkb2N1bWVu
dC0+c2VjdXJpdHlPcmlnaW4oKS5kYXRhKCkpOwogICAgIG1fc2Vzc2lvblN0b3JhZ2UgPSBTdG9y
YWdlOjpjcmVhdGUobV9mcmFtZSwgV1RGTW92ZShzdG9yYWdlQXJlYSkpOwogICAgIHJldHVybiBt
X3Nlc3Npb25TdG9yYWdlLmdldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMzk0M2FhMmNk
YWNhNTM2MzhiOTk3NmE5YjQ2NjlhZmI1ODZlN2EwZS4uOTU1ODE0NjRhM2RkM2ExZjQyMGU4NWE1
YTU2Yzk0OThlZGI1MmZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC00NDcsNyArNDQ3LDcgQEAg
dm9pZCBQYWdlOjpzZXRPcGVuZWRCeURPTSgpCiAgICAgbV9vcGVuZWRCeURPTSA9IHRydWU7CiB9
CiAKLXZvaWQgUGFnZTo6Z29Ub0l0ZW0oSGlzdG9yeUl0ZW0mIGl0ZW0sIEZyYW1lTG9hZFR5cGUg
dHlwZSkKK3ZvaWQgUGFnZTo6Z29Ub0l0ZW0oSGlzdG9yeUl0ZW0mIGl0ZW0sIEZyYW1lTG9hZFR5
cGUgdHlwZSwgTmF2aWdhdGlvblBvbGljeUNoZWNrIG5hdmlnYXRpb25Qb2xpY3lDaGVjaykKIHsK
ICAgICAvLyBzdG9wQWxsTG9hZGVycyBtYXkgZW5kIHVwIHJ1bm5pbmcgb25sb2FkIGhhbmRsZXJz
LCB3aGljaCBjb3VsZCBjYXVzZSBmdXJ0aGVyIGhpc3RvcnkgdHJhdmVyc2FscyB0aGF0IG1heSBs
ZWFkIHRvIHRoZSBwYXNzZWQgaW4gSGlzdG9yeUl0ZW0KICAgICAvLyBiZWluZyBkZXJlZigpLWVk
LiBNYWtlIHN1cmUgd2UgY2FuIHN0aWxsIHVzZSBpdCB3aXRoIEhpc3RvcnlDb250cm9sbGVyOjpn
b1RvSXRlbSBsYXRlci4KQEAgLTQ1Niw3ICs0NTYsNyBAQCB2b2lkIFBhZ2U6OmdvVG9JdGVtKEhp
c3RvcnlJdGVtJiBpdGVtLCBGcmFtZUxvYWRUeXBlIHR5cGUpCiAgICAgaWYgKG1fbWFpbkZyYW1l
LT5sb2FkZXIoKS5oaXN0b3J5KCkuc2hvdWxkU3RvcExvYWRpbmdGb3JIaXN0b3J5SXRlbShpdGVt
KSkKICAgICAgICAgbV9tYWluRnJhbWUtPmxvYWRlcigpLnN0b3BBbGxMb2FkZXJzKCk7CiAKLSAg
ICBtX21haW5GcmFtZS0+bG9hZGVyKCkuaGlzdG9yeSgpLmdvVG9JdGVtKGl0ZW0sIHR5cGUpOwor
ICAgIG1fbWFpbkZyYW1lLT5sb2FkZXIoKS5oaXN0b3J5KCkuZ29Ub0l0ZW0oaXRlbSwgdHlwZSwg
bmF2aWdhdGlvblBvbGljeUNoZWNrKTsKIH0KIAogdm9pZCBQYWdlOjpzZXRHcm91cE5hbWUoY29u
c3QgU3RyaW5nJiBuYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA5ZmRkNGQ4MWQzMWI1NTgwMWJlNzhi
ZWEyZjhiNTg5ODk1ZTFlOWVlLi45MDc5ZDhhYWZkMjgwOTVmZTRiZDM0NDExODE0YTgwNjM5M2Jh
N2EyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMTQ1LDYgKzE0NSw3IEBAIGVudW0gY2xhc3MgRXZlbnRU
aHJvdHRsaW5nQmVoYXZpb3IgewogCiBlbnVtIGNsYXNzIENhbldyYXAgOiBib29sOwogZW51bSBj
bGFzcyBEaWRXcmFwIDogYm9vbDsKK2VudW0gY2xhc3MgTmF2aWdhdGlvblBvbGljeUNoZWNrOwog
CiBjbGFzcyBQYWdlIDogcHVibGljIFN1cHBsZW1lbnRhYmxlPFBhZ2U+IHsKICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShQYWdlKTsKQEAgLTE4MCw3ICsxODEsNyBAQCBwdWJsaWM6CiAgICAgYm9v
bCBvcGVuZWRCeURPTSgpIGNvbnN0OwogICAgIHZvaWQgc2V0T3BlbmVkQnlET00oKTsKIAotICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZ29Ub0l0ZW0oSGlzdG9yeUl0ZW0mLCBGcmFtZUxvYWRUeXBl
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGdvVG9JdGVtKEhpc3RvcnlJdGVtJiwgRnJhbWVM
b2FkVHlwZSwgTmF2aWdhdGlvblBvbGljeUNoZWNrKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0R3JvdXBOYW1lKGNvbnN0IFN0cmluZyYpOwogICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0
IFN0cmluZyYgZ3JvdXBOYW1lKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NlY3VyaXR5T3JpZ2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmln
aW4uY3BwCmluZGV4IDZkMjMwYjljMzgwMjc2NjlkNThmOTRkOGYzMmQ4M2U0MzkzZGQ5ZTIuLjY5
M2U4ZjkxNTY3MmM3ZDUzZWU5YjczNjczODRhYmUwZjIyYTg4ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2VjdXJpdHlPcmlnaW4uY3BwCkBAIC0xNDUsMTUgKzE0NSwxMyBAQCBib29sIHNob3VsZFRy
ZWF0QXNQb3RlbnRpYWxseVRydXN0d29ydGh5KGNvbnN0IFVSTCYgdXJsKQogfQogCiBTZWN1cml0
eU9yaWdpbjo6U2VjdXJpdHlPcmlnaW4oY29uc3QgVVJMJiB1cmwpCi0gICAgOiBtX3Byb3RvY29s
IHsgdXJsLnByb3RvY29sKCkuaXNOdWxsKCkgPyBlbXB0eVN0cmluZygpIDogdXJsLnByb3RvY29s
KCkudG9TdHJpbmcoKS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpIH0KLSAgICAsIG1faG9zdCB7
IHVybC5ob3N0KCkuaXNOdWxsKCkgPyBlbXB0eVN0cmluZygpIDogdXJsLmhvc3QoKS5jb252ZXJ0
VG9BU0NJSUxvd2VyY2FzZSgpIH0KLSAgICAsIG1fcG9ydCB7IHVybC5wb3J0KCkgfQorICAgIDog
bV9kYXRhKFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVVSTCh1cmwpKQogewotICAgIC8vIGRvY3Vt
ZW50LmRvbWFpbiBzdGFydHMgYXMgbV9ob3N0LCBidXQgY2FuIGJlIHNldCBieSB0aGUgRE9NLgot
ICAgIG1fZG9tYWluID0gbV9ob3N0OworICAgIC8vIGRvY3VtZW50LmRvbWFpbiBzdGFydHMgYXMg
bV9kYXRhLmhvc3QsIGJ1dCBjYW4gYmUgc2V0IGJ5IHRoZSBET00uCisgICAgbV9kb21haW4gPSBt
X2RhdGEuaG9zdDsKIAotICAgIGlmIChtX3BvcnQgJiYgaXNEZWZhdWx0UG9ydEZvclByb3RvY29s
KG1fcG9ydC52YWx1ZSgpLCBtX3Byb3RvY29sKSkKLSAgICAgICAgbV9wb3J0ID0gc3RkOjpudWxs
b3B0OworICAgIGlmIChtX2RhdGEucG9ydCAmJiBpc0RlZmF1bHRQb3J0Rm9yUHJvdG9jb2wobV9k
YXRhLnBvcnQudmFsdWUoKSwgbV9kYXRhLnByb3RvY29sKSkKKyAgICAgICAgbV9kYXRhLnBvcnQg
PSBzdGQ6Om51bGxvcHQ7CiAKICAgICAvLyBCeSBkZWZhdWx0LCBvbmx5IGxvY2FsIFNlY3VyaXR5
T3JpZ2lucyBjYW4gbG9hZCBsb2NhbCByZXNvdXJjZXMuCiAgICAgbV9jYW5Mb2FkTG9jYWxSZXNv
dXJjZXMgPSBpc0xvY2FsKCk7CkBAIC0xNjYsOCArMTY0LDcgQEAgU2VjdXJpdHlPcmlnaW46OlNl
Y3VyaXR5T3JpZ2luKGNvbnN0IFVSTCYgdXJsKQogfQogCiBTZWN1cml0eU9yaWdpbjo6U2VjdXJp
dHlPcmlnaW4oKQotICAgIDogbV9wcm90b2NvbCB7IGVtcHR5U3RyaW5nKCkgfQotICAgICwgbV9o
b3N0IHsgZW1wdHlTdHJpbmcoKSB9CisgICAgOiBtX2RhdGEgeyBlbXB0eVN0cmluZygpLCBlbXB0
eVN0cmluZygpLCBzdGQ6Om51bGxvcHQgfQogICAgICwgbV9kb21haW4geyBlbXB0eVN0cmluZygp
IH0KICAgICAsIG1faXNVbmlxdWUgeyB0cnVlIH0KICAgICAsIG1faXNQb3RlbnRpYWxseVRydXN0
d29ydGh5IHsgSXNQb3RlbnRpYWxseVRydXN0d29ydGh5OjpZZXMgfQpAQCAtMTc1LDExICsxNzIs
OSBAQCBTZWN1cml0eU9yaWdpbjo6U2VjdXJpdHlPcmlnaW4oKQogfQogCiBTZWN1cml0eU9yaWdp
bjo6U2VjdXJpdHlPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4qIG90aGVyKQotICAgIDogbV9w
cm90b2NvbCB7IG90aGVyLT5tX3Byb3RvY29sLmlzb2xhdGVkQ29weSgpIH0KLSAgICAsIG1faG9z
dCB7IG90aGVyLT5tX2hvc3QuaXNvbGF0ZWRDb3B5KCkgfQorICAgIDogbV9kYXRhIHsgb3RoZXIt
Pm1fZGF0YS5pc29sYXRlZENvcHkoKSB9CiAgICAgLCBtX2RvbWFpbiB7IG90aGVyLT5tX2RvbWFp
bi5pc29sYXRlZENvcHkoKSB9CiAgICAgLCBtX2ZpbGVQYXRoIHsgb3RoZXItPm1fZmlsZVBhdGgu
aXNvbGF0ZWRDb3B5KCkgfQotICAgICwgbV9wb3J0IHsgb3RoZXItPm1fcG9ydCB9CiAgICAgLCBt
X2lzVW5pcXVlIHsgb3RoZXItPm1faXNVbmlxdWUgfQogICAgICwgbV91bml2ZXJzYWxBY2Nlc3Mg
eyBvdGhlci0+bV91bml2ZXJzYWxBY2Nlc3MgfQogICAgICwgbV9kb21haW5XYXNTZXRJbkRPTSB7
IG90aGVyLT5tX2RvbWFpbldhc1NldEluRE9NIH0KQEAgLTIyOCw3ICsyMjMsNyBAQCBib29sIFNl
Y3VyaXR5T3JpZ2luOjppc1BvdGVudGlhbGx5VHJ1c3R3b3J0aHkoKSBjb25zdAogICAgIC8vIFRo
aXMgY29kZSBpcyB1c2luZyBhbiBlbnVtIGluc3RlYWQgb2YgYW4gc3RkOjpvcHRpb25hbCBmb3Ig
dGhyZWFkLXNhZmV0eS4gV29yc3QgY2FzZSBzY2VuYXJpbywgc2V2ZXJhbCB0aHJlYWQgd2lsbCBy
ZWFkCiAgICAgLy8gJ1Vua25vd24nIHZhbHVlIGNvbmN1cnJlbnRseSBhbmQgdGhleSdsbCBhbGwg
Y2FsbCBzaG91bGRUcmVhdEFzUG90ZW50aWFsbHlUcnVzdHdvcnRoeSgpIGFuZCBnZXQgdGhlIHNh
bWUgcmVzdWx0LgogICAgIGlmIChtX2lzUG90ZW50aWFsbHlUcnVzdHdvcnRoeSA9PSBJc1BvdGVu
dGlhbGx5VHJ1c3R3b3J0aHk6OlVua25vd24pCi0gICAgICAgIG1faXNQb3RlbnRpYWxseVRydXN0
d29ydGh5ID0gc2hvdWxkVHJlYXRBc1BvdGVudGlhbGx5VHJ1c3R3b3J0aHkobV9wcm90b2NvbCwg
bV9ob3N0KSA/IElzUG90ZW50aWFsbHlUcnVzdHdvcnRoeTo6WWVzIDogSXNQb3RlbnRpYWxseVRy
dXN0d29ydGh5OjpObzsKKyAgICAgICAgbV9pc1BvdGVudGlhbGx5VHJ1c3R3b3J0aHkgPSBzaG91
bGRUcmVhdEFzUG90ZW50aWFsbHlUcnVzdHdvcnRoeShtX2RhdGEucHJvdG9jb2wsIG1fZGF0YS5o
b3N0KSA/IElzUG90ZW50aWFsbHlUcnVzdHdvcnRoeTo6WWVzIDogSXNQb3RlbnRpYWxseVRydXN0
d29ydGh5OjpObzsKICAgICByZXR1cm4gbV9pc1BvdGVudGlhbGx5VHJ1c3R3b3J0aHkgPT0gSXNQ
b3RlbnRpYWxseVRydXN0d29ydGh5OjpZZXM7CiB9CiAKQEAgLTI3Nyw5ICsyNzIsOSBAQCBib29s
IFNlY3VyaXR5T3JpZ2luOjpjYW5BY2Nlc3MoY29uc3QgU2VjdXJpdHlPcmlnaW4mIG90aGVyKSBj
b25zdAogICAgIC8vIHRoaXMgaXMgYSBzZWN1cml0eSB2dWxuZXJhYmlsaXR5LgogCiAgICAgYm9v
bCBjYW5BY2Nlc3MgPSBmYWxzZTsKLSAgICBpZiAobV9wcm90b2NvbCA9PSBvdGhlci5tX3Byb3Rv
Y29sKSB7CisgICAgaWYgKG1fZGF0YS5wcm90b2NvbCA9PSBvdGhlci5tX2RhdGEucHJvdG9jb2wp
IHsKICAgICAgICAgaWYgKCFtX2RvbWFpbldhc1NldEluRE9NICYmICFvdGhlci5tX2RvbWFpbldh
c1NldEluRE9NKSB7Ci0gICAgICAgICAgICBpZiAobV9ob3N0ID09IG90aGVyLm1faG9zdCAmJiBt
X3BvcnQgPT0gb3RoZXIubV9wb3J0KQorICAgICAgICAgICAgaWYgKG1fZGF0YS5ob3N0ID09IG90
aGVyLm1fZGF0YS5ob3N0ICYmIG1fZGF0YS5wb3J0ID09IG90aGVyLm1fZGF0YS5wb3J0KQogICAg
ICAgICAgICAgICAgIGNhbkFjY2VzcyA9IHRydWU7CiAgICAgICAgIH0gZWxzZSBpZiAobV9kb21h
aW5XYXNTZXRJbkRPTSAmJiBvdGhlci5tX2RvbWFpbldhc1NldEluRE9NKSB7CiAgICAgICAgICAg
ICBpZiAobV9kb21haW4gPT0gb3RoZXIubV9kb21haW4pCkBAIC0zNjMsNyArMzU4LDcgQEAgYm9v
bCBTZWN1cml0eU9yaWdpbjo6Y2FuRGlzcGxheShjb25zdCBVUkwmIHVybCkgY29uc3QKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAKICNpZiAhUExBVEZPUk0oSU9TKQotICAgIGlmIChtX3Byb3RvY29s
ID09ICJmaWxlIiAmJiB1cmwuaXNMb2NhbEZpbGUoKSAmJiAhRmlsZVN5c3RlbTo6ZmlsZXNIYXZl
U2FtZVZvbHVtZShtX2ZpbGVQYXRoLCB1cmwuZmlsZVN5c3RlbVBhdGgoKSkpCisgICAgaWYgKG1f
ZGF0YS5wcm90b2NvbCA9PSAiZmlsZSIgJiYgdXJsLmlzTG9jYWxGaWxlKCkgJiYgIUZpbGVTeXN0
ZW06OmZpbGVzSGF2ZVNhbWVWb2x1bWUobV9maWxlUGF0aCwgdXJsLmZpbGVTeXN0ZW1QYXRoKCkp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKIApAQCAtMzc2LDcgKzM3MSw3IEBAIGJv
b2wgU2VjdXJpdHlPcmlnaW46OmNhbkRpc3BsYXkoY29uc3QgVVJMJiB1cmwpIGNvbnN0CiAgICAg
ICAgIHJldHVybiBjYW5SZXF1ZXN0KHVybCk7CiAKICAgICBpZiAoU2NoZW1lUmVnaXN0cnk6OnNo
b3VsZFRyZWF0VVJMU2NoZW1lQXNEaXNwbGF5SXNvbGF0ZWQocHJvdG9jb2wpKQotICAgICAgICBy
ZXR1cm4gZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShtX3Byb3RvY29sLCBwcm90b2NvbCkgfHwgU2Vj
dXJpdHlQb2xpY3k6OmlzQWNjZXNzVG9VUkxXaGl0ZUxpc3RlZCh0aGlzLCB1cmwpOworICAgICAg
ICByZXR1cm4gZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShtX2RhdGEucHJvdG9jb2wsIHByb3RvY29s
KSB8fCBTZWN1cml0eVBvbGljeTo6aXNBY2Nlc3NUb1VSTFdoaXRlTGlzdGVkKHRoaXMsIHVybCk7
CiAKICAgICBpZiAoU2VjdXJpdHlQb2xpY3k6OnJlc3RyaWN0QWNjZXNzVG9Mb2NhbCgpICYmIFNj
aGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzTG9jYWwocHJvdG9jb2wpKQogICAg
ICAgICByZXR1cm4gY2FuTG9hZExvY2FsUmVzb3VyY2VzKCkgfHwgU2VjdXJpdHlQb2xpY3k6Omlz
QWNjZXNzVG9VUkxXaGl0ZUxpc3RlZCh0aGlzLCB1cmwpOwpAQCAtNDYxLDcgKzQ1Niw3IEBAIFN0
cmluZyBTZWN1cml0eU9yaWdpbjo6ZG9tYWluRm9yQ2FjaGVQYXJ0aXRpb24oKSBjb25zdAogICAg
IGlmIChpc0hUVFBGYW1pbHkoKSkKICAgICAgICAgcmV0dXJuIGhvc3QoKTsKIAotICAgIGlmIChT
Y2hlbWVSZWdpc3RyeTo6c2hvdWxkUGFydGl0aW9uQ2FjaGVGb3JVUkxTY2hlbWUobV9wcm90b2Nv
bCkpCisgICAgaWYgKFNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRQYXJ0aXRpb25DYWNoZUZvclVSTFNj
aGVtZShtX2RhdGEucHJvdG9jb2wpKQogICAgICAgICByZXR1cm4gaG9zdCgpOwogCiAgICAgcmV0
dXJuIGVtcHR5U3RyaW5nKCk7CkBAIC00NzUsMzUgKzQ3MCwyMSBAQCB2b2lkIFNlY3VyaXR5T3Jp
Z2luOjpzZXRFbmZvcmNlc0ZpbGVQYXRoU2VwYXJhdGlvbigpCiAKIGJvb2wgU2VjdXJpdHlPcmln
aW46OmlzTG9jYWwoKSBjb25zdAogewotICAgIHJldHVybiBTY2hlbWVSZWdpc3RyeTo6c2hvdWxk
VHJlYXRVUkxTY2hlbWVBc0xvY2FsKG1fcHJvdG9jb2wpOworICAgIHJldHVybiBTY2hlbWVSZWdp
c3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc0xvY2FsKG1fZGF0YS5wcm90b2NvbCk7CiB9CiAK
IFN0cmluZyBTZWN1cml0eU9yaWdpbjo6dG9TdHJpbmcoKSBjb25zdAogewogICAgIGlmIChpc1Vu
aXF1ZSgpKQogICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJudWxsIik7Ci0gICAgaWYgKG1f
cHJvdG9jb2wgPT0gImZpbGUiICYmIG1fZW5mb3JjZXNGaWxlUGF0aFNlcGFyYXRpb24pCisgICAg
aWYgKG1fZGF0YS5wcm90b2NvbCA9PSAiZmlsZSIgJiYgbV9lbmZvcmNlc0ZpbGVQYXRoU2VwYXJh
dGlvbikKICAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgibnVsbCIpOwogICAgIHJldHVybiB0
b1Jhd1N0cmluZygpOwogfQogCiBTdHJpbmcgU2VjdXJpdHlPcmlnaW46OnRvUmF3U3RyaW5nKCkg
Y29uc3QKIHsKLSAgICBpZiAobV9wcm90b2NvbCA9PSAiZmlsZSIpCi0gICAgICAgIHJldHVybiBB
U0NJSUxpdGVyYWwoImZpbGU6Ly8iKTsKLQotICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwotICAg
IHJlc3VsdC5yZXNlcnZlQ2FwYWNpdHkobV9wcm90b2NvbC5sZW5ndGgoKSArIG1faG9zdC5sZW5n
dGgoKSArIDEwKTsKLSAgICByZXN1bHQuYXBwZW5kKG1fcHJvdG9jb2wpOwotICAgIHJlc3VsdC5h
cHBlbmRMaXRlcmFsKCI6Ly8iKTsKLSAgICByZXN1bHQuYXBwZW5kKG1faG9zdCk7Ci0KLSAgICBp
ZiAobV9wb3J0KSB7Ci0gICAgICAgIHJlc3VsdC5hcHBlbmQoJzonKTsKLSAgICAgICAgcmVzdWx0
LmFwcGVuZE51bWJlcihtX3BvcnQudmFsdWUoKSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIHJlc3Vs
dC50b1N0cmluZygpOworICAgIHJldHVybiBtX2RhdGEudG9TdHJpbmcoKTsKIH0KIAogc3RhdGlj
IGlubGluZSBib29sIGFyZU9yaWdpbnNNYXRjaGluZyhjb25zdCBTZWN1cml0eU9yaWdpbiYgb3Jp
Z2luMSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbjIpCkBAIC01NTIsNyArNTMzLDcgQEAg
UmVmPFNlY3VyaXR5T3JpZ2luPiBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKGNvbnN0IFN0cmluZyYg
cHJvdG9jb2wsIGNvbnN0IFN0cmluZyYKICAgICBTdHJpbmcgZGVjb2RlZEhvc3QgPSBkZWNvZGVV
UkxFc2NhcGVTZXF1ZW5jZXMoaG9zdCk7CiAgICAgYXV0byBvcmlnaW4gPSBjcmVhdGUoVVJMKFVS
TCgpLCBwcm90b2NvbCArICI6Ly8iICsgaG9zdCArICIvIikpOwogICAgIGlmIChwb3J0ICYmICFp
c0RlZmF1bHRQb3J0Rm9yUHJvdG9jb2woKnBvcnQsIHByb3RvY29sKSkKLSAgICAgICAgb3JpZ2lu
LT5tX3BvcnQgPSBwb3J0OworICAgICAgICBvcmlnaW4tPm1fZGF0YS5wb3J0ID0gcG9ydDsKICAg
ICByZXR1cm4gb3JpZ2luOwogfQogCkBAIC01NzUsMTMgKzU1Niw3IEBAIGJvb2wgU2VjdXJpdHlP
cmlnaW46OmVxdWFsKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBvdGhlcikgY29uc3QKIAogYm9vbCBT
ZWN1cml0eU9yaWdpbjo6aXNTYW1lU2NoZW1lSG9zdFBvcnQoY29uc3QgU2VjdXJpdHlPcmlnaW4m
IG90aGVyKSBjb25zdAogewotICAgIGlmIChtX2hvc3QgIT0gb3RoZXIubV9ob3N0KQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAobV9wcm90b2NvbCAhPSBvdGhlci5tX3Byb3RvY29s
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAobV9wb3J0ICE9IG90aGVyLm1fcG9y
dCkKKyAgICBpZiAobV9kYXRhICE9IG90aGVyLm1fZGF0YSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgaWYgKGlzTG9jYWwoKSAmJiAhcGFzc2VzRmlsZUNoZWNrKG90aGVyKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAppbmRleCA2NDgxYTM4ODJjMWRlZDFkYTkxZTM0MzVi
NGEwMmNiM2U1MzMwZjUwLi42ZTc5MDkwMDZjOGIyMmMxNjFmZmRlZTNkZmZhNDBlZmJkZjNkYzdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgiCiAjaW5jbHVk
ZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKQEAgLTc4LDEwICs3OSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXREb21haW5G
cm9tRE9NKGNvbnN0IFN0cmluZyYgbmV3RG9tYWluKTsKICAgICBib29sIGRvbWFpbldhc1NldElu
RE9NKCkgY29uc3QgeyByZXR1cm4gbV9kb21haW5XYXNTZXRJbkRPTTsgfQogCi0gICAgY29uc3Qg
U3RyaW5nJiBwcm90b2NvbCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvdG9jb2w7IH0KLSAgICBjb25z
dCBTdHJpbmcmIGhvc3QoKSBjb25zdCB7IHJldHVybiBtX2hvc3Q7IH0KKyAgICBjb25zdCBTdHJp
bmcmIHByb3RvY29sKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLnByb3RvY29sOyB9CisgICAgY29u
c3QgU3RyaW5nJiBob3N0KCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmhvc3Q7IH0KICAgICBjb25z
dCBTdHJpbmcmIGRvbWFpbigpIGNvbnN0IHsgcmV0dXJuIG1fZG9tYWluOyB9Ci0gICAgc3RkOjpv
cHRpb25hbDx1aW50MTZfdD4gcG9ydCgpIGNvbnN0IHsgcmV0dXJuIG1fcG9ydDsgfQorICAgIHN0
ZDo6b3B0aW9uYWw8dWludDE2X3Q+IHBvcnQoKSBjb25zdCB7IHJldHVybiBtX2RhdGEucG9ydDsg
fQogCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIGEgZ2l2ZW4gVVJMIGlzIHNlY3VyZSwgYmFzZWQg
ZWl0aGVyIGRpcmVjdGx5IG9uIGl0cwogICAgIC8vIG93biBwcm90b2NvbCwgb3IsIHdoZW4gcmVs
ZXZhbnQsIG9uIHRoZSBwcm90b2NvbCBvZiBpdHMgImlubmVyIFVSTCIKQEAgLTIwNSw2ICsyMDYs
OCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgYm9vbCBpc0xvY2FsSG9zdE9yTG9vcGJhY2tJUEFk
ZHJlc3MoY29uc3QgU3RyaW5nJiBob3N0KTsKIAorICAgIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0
YSYgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQorCiBwcml2YXRlOgogICAgIFNlY3Vy
aXR5T3JpZ2luKCk7CiAgICAgZXhwbGljaXQgU2VjdXJpdHlPcmlnaW4oY29uc3QgVVJMJik7CkBA
IC0yMTUsMTYgKzIxOCwxNCBAQCBwcml2YXRlOgogCiAgICAgLy8gVGhpcyBtZXRob2QgY2hlY2tz
IHRoYXQgdGhlIHNjaGVtZSBmb3IgdGhpcyBvcmlnaW4gaXMgYW4gSFRUUC1mYW1pbHkKICAgICAv
LyBzY2hlbWUsIGUuZy4gSFRUUCBhbmQgSFRUUFMuCi0gICAgYm9vbCBpc0hUVFBGYW1pbHkoKSBj
b25zdCB7IHJldHVybiBtX3Byb3RvY29sID09ICJodHRwIiB8fCBtX3Byb3RvY29sID09ICJodHRw
cyI7IH0KKyAgICBib29sIGlzSFRUUEZhbWlseSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5wcm90
b2NvbCA9PSAiaHR0cCIgfHwgbV9kYXRhLnByb3RvY29sID09ICJodHRwcyI7IH0KICAgICAKICAg
ICBlbnVtIFNob3VsZEFsbG93RnJvbVRoaXJkUGFydHkgeyBBbHdheXNBbGxvd0Zyb21UaGlyZFBh
cnR5LCBNYXliZUFsbG93RnJvbVRoaXJkUGFydHkgfTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29s
IGNhbkFjY2Vzc1N0b3JhZ2UoY29uc3QgU2VjdXJpdHlPcmlnaW4qLCBTaG91bGRBbGxvd0Zyb21U
aGlyZFBhcnR5ID0gTWF5YmVBbGxvd0Zyb21UaGlyZFBhcnR5KSBjb25zdDsKIAotICAgIFN0cmlu
ZyBtX3Byb3RvY29sOwotICAgIFN0cmluZyBtX2hvc3Q7CisgICAgU2VjdXJpdHlPcmlnaW5EYXRh
IG1fZGF0YTsKICAgICBTdHJpbmcgbV9kb21haW47CiAgICAgU3RyaW5nIG1fZmlsZVBhdGg7Ci0g
ICAgc3RkOjpvcHRpb25hbDx1aW50MTZfdD4gbV9wb3J0OwogICAgIGJvb2wgbV9pc1VuaXF1ZSB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX3VuaXZlcnNhbEFjY2VzcyB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX2RvbWFpbldhc1NldEluRE9NIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2Vj
dXJpdHlPcmlnaW5EYXRhLmNwcAppbmRleCBlOTBhYjgyMWY3OGZkNTU2ZmY1Njg3ZDMwZTlmMmY3
NjBiMzk2NGJhLi4yYWFjOGVlOGQzYmRiMGI1YWRkODYzMTUwNTQ1MDI2NGMxYzI3NTkyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luRGF0YS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuY3BwCkBAIC0zMiwzNyArMzIs
MzIgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNlY3VyaXR5T3JpZ2luRGF0YSBTZWN1
cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYg
c2VjdXJpdHlPcmlnaW4pCi17Ci0gICAgU2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2lu
RGF0YTsKLQotICAgIHNlY3VyaXR5T3JpZ2luRGF0YS5wcm90b2NvbCA9IHNlY3VyaXR5T3JpZ2lu
LnByb3RvY29sKCk7Ci0gICAgc2VjdXJpdHlPcmlnaW5EYXRhLmhvc3QgPSBzZWN1cml0eU9yaWdp
bi5ob3N0KCk7Ci0gICAgc2VjdXJpdHlPcmlnaW5EYXRhLnBvcnQgPSBzZWN1cml0eU9yaWdpbi5w
b3J0KCk7Ci0KLSAgICByZXR1cm4gc2VjdXJpdHlPcmlnaW5EYXRhOwotfQotCiBTdHJpbmcgU2Vj
dXJpdHlPcmlnaW5EYXRhOjp0b1N0cmluZygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1ha2VTdHJp
bmcocHJvdG9jb2wsICI6Ly8iLCBob3N0LCAiOiIsIFN0cmluZzo6bnVtYmVyKHBvcnQudmFsdWVf
b3IoMCkpKTsKKyAgICBpZiAocHJvdG9jb2wgPT0gImZpbGUiKQorICAgICAgICByZXR1cm4gQVND
SUlMaXRlcmFsKCJmaWxlOi8vIik7CisKKyAgICBpZiAoIXBvcnQpCisgICAgICAgIHJldHVybiBt
YWtlU3RyaW5nKHByb3RvY29sLCAiOi8vIiwgaG9zdCk7CisgICAgcmV0dXJuIG1ha2VTdHJpbmco
cHJvdG9jb2wsICI6Ly8iLCBob3N0LCAnOicsIHN0YXRpY19jYXN0PHVpbnQzMl90PigqcG9ydCkp
OwogfQogCiBTZWN1cml0eU9yaWdpbkRhdGEgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUo
RnJhbWUqIGZyYW1lKQogewogICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBTZWN1cml0
eU9yaWdpbkRhdGEoKTsKKyAgICAgICAgcmV0dXJuIFNlY3VyaXR5T3JpZ2luRGF0YSB7IH07CiAg
ICAgCi0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCk7CisgICAgYXV0
byogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50KQotICAg
ICAgICByZXR1cm4gU2VjdXJpdHlPcmlnaW5EYXRhKCk7CisgICAgICAgIHJldHVybiBTZWN1cml0
eU9yaWdpbkRhdGEgeyB9OwogCi0gICAgcmV0dXJuIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNl
Y3VyaXR5T3JpZ2luKGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpKTsKKyAgICByZXR1cm4gZG9j
dW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpOwogfQogCiBSZWY8U2VjdXJpdHlPcmlnaW4+
IFNlY3VyaXR5T3JpZ2luRGF0YTo6c2VjdXJpdHlPcmlnaW4oKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2VjdXJpdHlPcmlnaW5EYXRhLmgKaW5kZXggNWY1NWY5NDJiODFmY2ZlMDBiZmQ0M2Jj
MTA5OTZmM2NkYzI0NzE1ZC4uNzk5MDIzOWM4ZGRhYzIzOWJiMzkyYmU0NGVjNDIyYzAzMTUyYmM2
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbkRhdGEuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luRGF0YS5oCkBAIC0yNSw3ICsy
NSw3IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CisjaW5jbHVkZSAiVVJMLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDUsOCArNDUs
MTUgQEAgc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YSB7CiAgICAgewogICAgIH0KICAgICAKLSAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU2VjdXJpdHlPcmlnaW5EYXRhIGZyb21TZWN1cml0eU9y
aWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBT
ZWN1cml0eU9yaWdpbkRhdGEgZnJvbUZyYW1lKEZyYW1lKik7CisgICAgc3RhdGljIFNlY3VyaXR5
T3JpZ2luRGF0YSBmcm9tVVJMKGNvbnN0IFVSTCYgdXJsKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IFNlY3VyaXR5T3JpZ2luRGF0YSB7CisgICAgICAgICAgICB1cmwucHJvdG9jb2woKS5pc051bGwo
KSA/IGVtcHR5U3RyaW5nKCkgOiB1cmwucHJvdG9jb2woKS50b1N0cmluZygpLmNvbnZlcnRUb0FT
Q0lJTG93ZXJjYXNlKCksCisgICAgICAgICAgICB1cmwuaG9zdCgpLmlzTnVsbCgpID8gZW1wdHlT
dHJpbmcoKSA6IHVybC5ob3N0KCkuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKSwKKyAgICAgICAg
ICAgIHVybC5wb3J0KCkKKyAgICAgICAgfTsKKyAgICB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBS
ZWY8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MueWFtbAppbmRleCA1MzgxZTUzZWQyY2Y4NjBhZDM3ZmRiNTliMDQ5YmU2NmM2M2Fh
OGQ1Li4zZmExMDM0NzE1YmZkMTIwMmEzYTdhMDE5OTFkMWRmM2U1ZWMzYzY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy55YW1sCkBAIC0zMjgsNyArMzI4LDcgQEAgcmVxdWVzdEFuaW1hdGlvbkZy
YW1lRW5hYmxlZDoKIGNvb2tpZUVuYWJsZWQ6CiAgIGluaXRpYWw6IHRydWUKIG1lZGlhRW5hYmxl
ZDoKLSAgaW5pdGlhbDogdHJ1ZQorICBpbml0aWFsOiBkZWZhdWx0TWVkaWFFbmFibGVkCiBET01Q
YXN0ZUFsbG93ZWQ6CiAgIGluaXRpYWw6IGZhbHNlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3NEZWZhdWx0VmFsdWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nl
dHRpbmdzRGVmYXVsdFZhbHVlcy5oCmluZGV4IDNlYTgxMTBjZTMxYzNjM2YxNWQ4MmNlMGEwMGE5
NmJmNGM3N2ZhNGEuLjBmMDIxZTljNjllZDQxNWE1YmU4ZDg4YTZlYzdlNTExMzFkODNiNGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3NEZWZhdWx0VmFsdWVzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5nc0RlZmF1bHRWYWx1ZXMuaApAQCAtOTgsNCAr
OTgsMTAgQEAgc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFVuaWZpZWRUZXh0Q2hlY2tlckVuYWJs
ZWQgPSBmYWxzZTsKIHN0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQgPSB0cnVlOwogc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQgPSBmYWxzZTsKIAorI2lmIEVOQUJMRShWSURFTykgJiYgKFVTRShBVkZP
VU5EQVRJT04pIHx8IFVTRShHU1RSRUFNRVIpKQorc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdE1l
ZGlhRW5hYmxlZCA9IHRydWU7CisjZWxzZQorc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdE1lZGlh
RW5hYmxlZCA9IGZhbHNlOworI2VuZGlmCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1doZWVs
RXZlbnRUZXN0VHJpZ2dlci5oCmluZGV4IGQxMDc5ZDRiNzVmYzQ5NjNhODhlNjk4NzQ1ZDU4OGFm
YTNkMWY3MWMuLmQzNDUzNzdhYWU2OGMxNjBjOTc0NmM3NjNhYzNjZWFiZjIxNjNjMTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9XaGVlbEV2ZW50VGVzdFRyaWdnZXIuaApAQCAtMjksMTEgKzI5
LDExIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPGZ1bmN0aW9uYWw+Ci0jaW5jbHVkZSA8
c2V0PgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorI2luY2x1
ZGUgPHd0Zi9TdGRTZXQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgICAg
IFNjcm9sbGluZ1RocmVhZFN5bmNOZWVkZWQsCiAgICAgICAgIENvbnRlbnRTY3JvbGxJblByb2dy
ZXNzCiAgICAgfTsKLSAgICB1c2luZyBEZWZlclRlc3RUcmlnZ2VyUmVhc29uU2V0ID0gc3RkOjpz
ZXQ8RGVmZXJUZXN0VHJpZ2dlclJlYXNvbiwgc3RkOjpsZXNzPERlZmVyVGVzdFRyaWdnZXJSZWFz
b24+LCBGYXN0QWxsb2NhdG9yPERlZmVyVGVzdFRyaWdnZXJSZWFzb24+PjsKKyAgICB1c2luZyBE
ZWZlclRlc3RUcmlnZ2VyUmVhc29uU2V0ID0gU3RkU2V0PERlZmVyVGVzdFRyaWdnZXJSZWFzb24+
OwogICAgIHR5cGVkZWYgY29uc3Qgdm9pZCogU2Nyb2xsYWJsZUFyZWFJZGVudGlmaWVyOwogICAg
IHZvaWQgV0VCQ09SRV9FWFBPUlQgZGVmZXJUZXN0c0ZvclJlYXNvbihTY3JvbGxhYmxlQXJlYUlk
ZW50aWZpZXIsIERlZmVyVGVzdFRyaWdnZXJSZWFzb24pOwogICAgIHZvaWQgV0VCQ09SRV9FWFBP
UlQgcmVtb3ZlVGVzdERlZmVycmFsRm9yUmVhc29uKFNjcm9sbGFibGVBcmVhSWRlbnRpZmllciwg
RGVmZXJUZXN0VHJpZ2dlclJlYXNvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuY3BwCmluZGV4IGNmMDJhZGVjY2QwZTJkZDNjYmQwZDkxOGUyMjg1NDExMTg2
NmFiNjguLjQxZWQzOTRjZmEwZGQxOTM0MWZlMGExZTQyOTExYjQxOGJlZDk1NmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCkBAIC0xMDM4LDcgKzEw
MzgsNyBAQCBTdHJpbmcgd2ViQ3J5cHRvTWFzdGVyS2V5S2V5Y2hhaW5Db21tZW50KCkKIAogU3Ry
aW5nIGZvcm1Db250cm9sRG9uZUJ1dHRvblRpdGxlKCkKIHsKLSAgICByZXR1cm4gV0VCX1VJX1NU
UklORygiRG9uZSAoZXh0cmEgem9vbWVkIGZvcm0gY29udHJvbHMpIiwgIlRpdGxlIG9mIHRoZSBE
b25lIGJ1dHRvbiBmb3Igem9vbWVkIGZvcm0gY29udHJvbHMuIik7CisgICAgcmV0dXJuIFdFQl9V
SV9TVFJJTkcoIkRvbmUiLCAiVGl0bGUgb2YgdGhlIERvbmUgYnV0dG9uIGZvciB6b29tZWQgZm9y
bSBjb250cm9scy4iKTsKIH0KIAogU3RyaW5nIGZvcm1Db250cm9sQ2FuY2VsQnV0dG9uVGl0bGUo
KQpAQCAtMTA2MSwyOSArMTA2MSwxOSBAQCBTdHJpbmcgZm9ybUNvbnRyb2xTZWFyY2hCdXR0b25U
aXRsZSgpCiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIlNlYXJjaCIsICJUaXRsZSBvZiB0aGUg
U2VhcmNoIGJ1dHRvbiBmb3Igem9vbWVkIGZvcm0gY29udHJvbHMuIik7CiB9CiAKLVN0cmluZyB0
ZXh0SW5wdXRNb2RlV3JpdGVCdXR0b25UaXRsZSgpCi17Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIldyaXRlIiwgIlRpdGxlIG9mIHRoZSB3cml0aW5nIGJ1dHRvbiBmb3Igem9vbWVkIGZvcm0g
Y29udHJvbHMuIik7Ci19Ci0KLVN0cmluZyB0ZXh0SW5wdXRNb2RlU3BlZWNoQnV0dG9uVGl0bGUo
KQotewotICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJTcGVhayIsICJUaXRsZSBvZiB0aGUgZGlj
dGF0aW9uIGJ1dHRvbiBmb3Igem9vbWVkIGZvcm0gY29udHJvbHMuIik7Ci19Ci0KIFN0cmluZyBk
YXRlUGlja2VyRGF5TGFiZWxUaXRsZSgpCiB7Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkRh
eSBsYWJlbCBpbiBkYXRlIHBpY2tlciIsICJEYXkgbGFiZWwgaW4gZGF0ZSBwaWNrZXIiKTsKKyAg
ICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIkRheSIsICJEYXkgKERhdGUgcGlja2VyIGZvciBl
eHRyYSB6b29tIG1vZGUpIiwgIkRheSBsYWJlbCBpbiBkYXRlIHBpY2tlciIpOwogfQogCiBTdHJp
bmcgZGF0ZVBpY2tlck1vbnRoTGFiZWxUaXRsZSgpCiB7Ci0gICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIk1vbnRoIGxhYmVsIGluIGRhdGUgcGlja2VyIiwgIk1vbnRoIGxhYmVsIGluIGRhdGUgcGlj
a2VyIik7CisgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJNb250aCIsICJNb250aCAoRGF0
ZSBwaWNrZXIgZm9yIGV4dHJhIHpvb20gbW9kZSkiLCAiTW9udGggbGFiZWwgaW4gZGF0ZSBwaWNr
ZXIiKTsKIH0KIAogU3RyaW5nIGRhdGVQaWNrZXJZZWFyTGFiZWxUaXRsZSgpCiB7Ci0gICAgcmV0
dXJuIFdFQl9VSV9TVFJJTkcoIlllYXIgbGFiZWwgaW4gZGF0ZSBwaWNrZXIiLCAiWWVhciBsYWJl
bCBpbiBkYXRlIHBpY2tlciIpOworICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiWWVhciIs
ICJZZWFyIChEYXRlIHBpY2tlciBmb3IgZXh0cmEgem9vbSBtb2RlKSIsICJZZWFyIGxhYmVsIGlu
IGRhdGUgcGlja2VyIik7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5oCmluZGV4IDQyYmJhMjVhNmMwNzI0MWI5NjZhNzg0ZjZhMTI2NDQxY2Vj
ODJmZDAuLmI3MTRhOGUyYzRmZWM2NTcyYzhmMmRmNTk0NDdhY2U0MjBhNWU2YzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKQEAgLTMyMiw4ICszMjIsNiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGZvcm1Db250
cm9sSGlkZUJ1dHRvblRpdGxlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGZvcm1Db250
cm9sR29CdXR0b25UaXRsZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBmb3JtQ29udHJv
bFNlYXJjaEJ1dHRvblRpdGxlKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHRleHRJbnB1
dE1vZGVXcml0ZUJ1dHRvblRpdGxlKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHRleHRJ
bnB1dE1vZGVTcGVlY2hCdXR0b25UaXRsZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBk
YXRlUGlja2VyRGF5TGFiZWxUaXRsZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBkYXRl
UGlja2VyTW9udGhMYWJlbFRpdGxlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGRhdGVQ
aWNrZXJZZWFyTGFiZWxUaXRsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2NoZW1lUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVtZVJlZ2lz
dHJ5LmgKaW5kZXggYWJhY2E1MzQ1ZGM5NzZmZGJkZGZjNWYxOTgxOWE3NDkxYWNjOWZmYy4uZjcw
ZjlmY2FjNDcwMDM2MTZjZjkwNmJjMmM2NGU4NWQwODhhMjhmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICAv
LyBTdWNoIHNjaGVtZXMgc2hvdWxkIGRlbGVnYXRlIHRvIFNlY3VyaXR5T3JpZ2luOjpjYW5SZXF1
ZXN0IGZvciBhbnkgVVJMCiAgICAgLy8gcGFzc2VkIHRvIFNlY3VyaXR5T3JpZ2luOjpjYW5EaXNw
bGF5LgogICAgIHN0YXRpYyBib29sIGNhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0KGNvbnN0IFN0
cmluZyYgc2NoZW1lKTsKLSAgICBzdGF0aWMgdm9pZCByZWdpc3RlckFzQ2FuRGlzcGxheU9ubHlJ
ZkNhblJlcXVlc3QoY29uc3QgU3RyaW5nJiBzY2hlbWUpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyB2b2lkIHJlZ2lzdGVyQXNDYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdChjb25zdCBTdHJp
bmcmIHNjaGVtZSk7CiAKICAgICAvLyBTY2hlbWVzIGFnYWluc3Qgd2hpY2ggamF2YXNjcmlwdDog
VVJMcyBzaG91bGQgbm90IGJlIGFsbG93ZWQgdG8gcnVuIChzdG9wCiAgICAgLy8gYm9va21hcmts
ZXRzIGZyb20gcnVubmluZyBvbiBzZW5zaXRpdmUgcGFnZXMpLiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9VUkwu
Y3BwCmluZGV4IGMyNjI5ZGUwNzFlOTc0NDEyMGE3NmUyZTBkZGU4NGVkZWRjNWRkOTAuLmU4YjFi
MDgyYjlkYmNiZmViNjY1NzkzZGRmYWMxNjdiYjNmOWQ3ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1VSTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVVJM
LmNwcApAQCAtNzkwLDEzICs3OTAsMTUgQEAgYm9vbCBob3N0c0FyZUVxdWFsKGNvbnN0IFVSTCYg
YSwgY29uc3QgVVJMJiBiKQogCiBib29sIFVSTDo6aXNNYXRjaGluZ0RvbWFpbihjb25zdCBTdHJp
bmcmIGRvbWFpbikgY29uc3QKIHsKLSAgICAvLyBXZSByZXN0cmljdCBpdCB0byBIVFRQIGZvciBz
aW1wbGljaXR5IHNpbmNlIHdlIGRvIG5vdCB3YW50IHRvIG1hdGNoIGRhdGEsIGJsb2Igb3IgZmls
ZSBiYXNlZCBVUkxzLgotICAgIGlmIChpc051bGwoKSB8fCAhcHJvdG9jb2xJc0luSFRUUEZhbWls
eSgpKQorICAgIGlmIChpc051bGwoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYg
KGRvbWFpbi5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgaWYgKCFwcm90
b2NvbElzSW5IVFRQRmFtaWx5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGF1dG8g
aG9zdCA9IHRoaXMtPmhvc3QoKTsKICAgICBpZiAoIWhvc3QuZW5kc1dpdGgoZG9tYWluKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YW5pbWF0aW9uL0FuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRp
b24vQW5pbWF0aW9uLmNwcAppbmRleCBjZjZjY2ViYmYxOWQ1ZmRiZmE2MTY2MDE0MmU1MzI5ZWFm
YTE5NDA0Li4zNTk0YzEyZTBjNGZhZTE1NzA3MzEzZWM0MThkYWYxYzI2MWI1NmViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmNwcApAQCAtMTI3
LDEyICsxMjcsMTIgQEAgQW5pbWF0aW9uJiBBbmltYXRpb246Om9wZXJhdG9yPShjb25zdCBBbmlt
YXRpb24mIG8pCiAKIEFuaW1hdGlvbjo6fkFuaW1hdGlvbigpID0gZGVmYXVsdDsKIAotYm9vbCBB
bmltYXRpb246OmFuaW1hdGlvbnNNYXRjaChjb25zdCBBbmltYXRpb24mIG90aGVyLCBib29sIG1h
dGNoUGxheVN0YXRlcykgY29uc3QKK2Jvb2wgQW5pbWF0aW9uOjphbmltYXRpb25zTWF0Y2goY29u
c3QgQW5pbWF0aW9uJiBvdGhlciwgYm9vbCBtYXRjaFByb3BlcnRpZXMpIGNvbnN0CiB7CiAgICAg
Ym9vbCByZXN1bHQgPSBtX25hbWUgPT0gb3RoZXIubV9uYW1lCiAgICAgICAgICYmIG1fbmFtZVN0
eWxlU2NvcGVPcmRpbmFsID09IG90aGVyLm1fbmFtZVN0eWxlU2NvcGVPcmRpbmFsCi0gICAgICAg
ICYmIG1fcHJvcGVydHkgPT0gb3RoZXIubV9wcm9wZXJ0eQotICAgICAgICAmJiBtX21vZGUgPT0g
b3RoZXIubV9tb2RlCisgICAgICAgICYmIG1fcGxheVN0YXRlID09IG90aGVyLm1fcGxheVN0YXRl
CisgICAgICAgICYmIG1fcGxheVN0YXRlU2V0ID09IG90aGVyLm1fcGxheVN0YXRlU2V0CiAgICAg
ICAgICYmIG1faXRlcmF0aW9uQ291bnQgPT0gb3RoZXIubV9pdGVyYXRpb25Db3VudAogICAgICAg
ICAmJiBtX2RlbGF5ID09IG90aGVyLm1fZGVsYXkKICAgICAgICAgJiYgbV9kdXJhdGlvbiA9PSBv
dGhlci5tX2R1cmF0aW9uCkBAIC0xNDgsNyArMTQ4LDYgQEAgYm9vbCBBbmltYXRpb246OmFuaW1h
dGlvbnNNYXRjaChjb25zdCBBbmltYXRpb24mIG90aGVyLCBib29sIG1hdGNoUGxheVN0YXRlcykg
Y28KICAgICAgICAgJiYgbV9maWxsTW9kZVNldCA9PSBvdGhlci5tX2ZpbGxNb2RlU2V0CiAgICAg
ICAgICYmIG1faXRlcmF0aW9uQ291bnRTZXQgPT0gb3RoZXIubV9pdGVyYXRpb25Db3VudFNldAog
ICAgICAgICAmJiBtX25hbWVTZXQgPT0gb3RoZXIubV9uYW1lU2V0Ci0gICAgICAgICYmIG1fcHJv
cGVydHlTZXQgPT0gb3RoZXIubV9wcm9wZXJ0eVNldAogICAgICAgICAmJiBtX3RpbWluZ0Z1bmN0
aW9uU2V0ID09IG90aGVyLm1fdGltaW5nRnVuY3Rpb25TZXQKICNpZiBFTkFCTEUoQ1NTX0FOSU1B
VElPTlNfTEVWRUxfMikKICAgICAgICAgJiYgbV90cmlnZ2VyU2V0ID09IG90aGVyLm1fdHJpZ2dl
clNldApAQCAtMTU4LDcgKzE1Nyw3IEBAIGJvb2wgQW5pbWF0aW9uOjphbmltYXRpb25zTWF0Y2go
Y29uc3QgQW5pbWF0aW9uJiBvdGhlciwgYm9vbCBtYXRjaFBsYXlTdGF0ZXMpIGNvCiAgICAgaWYg
KCFyZXN1bHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiAhbWF0Y2hQbGF5
U3RhdGVzIHx8IChtX3BsYXlTdGF0ZSA9PSBvdGhlci5tX3BsYXlTdGF0ZSAmJiBtX3BsYXlTdGF0
ZVNldCA9PSBvdGhlci5tX3BsYXlTdGF0ZVNldCk7CisgICAgcmV0dXJuICFtYXRjaFByb3BlcnRp
ZXMgfHwgKG1fbW9kZSA9PSBvdGhlci5tX21vZGUgJiYgbV9wcm9wZXJ0eSA9PSBvdGhlci5tX3By
b3BlcnR5ICYmIG1fcHJvcGVydHlTZXQgPT0gb3RoZXIubV9wcm9wZXJ0eVNldCk7CiB9CiAKIGNv
bnN0IFN0cmluZyYgQW5pbWF0aW9uOjppbml0aWFsTmFtZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmgKaW5kZXggNjY5Y2MyNGFmYjZlNTBiYWI0MzYz
OWY5ZGI3MmVlYmZhZTA0MGQwYy4uZjdiMGVjYThiM2QzOTg0ODdlNGEzMWYwMzBhMDlkNjMzNjkz
MGMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1h
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24u
aApAQCAtMTYyLDcgKzE2Miw3IEBAIHB1YmxpYzoKICAgICBBbmltYXRpb24mIG9wZXJhdG9yPShj
b25zdCBBbmltYXRpb24mIG8pOwogCiAgICAgLy8gcmV0dXJuIHRydWUgaWYgYWxsIG1lbWJlcnMg
b2YgdGhpcyBjbGFzcyBtYXRjaCAoZXhjbHVkaW5nIG1fbmV4dCkKLSAgICBib29sIGFuaW1hdGlv
bnNNYXRjaChjb25zdCBBbmltYXRpb24mLCBib29sIG1hdGNoUGxheVN0YXRlcyA9IHRydWUpIGNv
bnN0OworICAgIGJvb2wgYW5pbWF0aW9uc01hdGNoKGNvbnN0IEFuaW1hdGlvbiYsIGJvb2wgbWF0
Y2hQcm9wZXJ0aWVzID0gdHJ1ZSkgY29uc3Q7CiAKICAgICAvLyByZXR1cm4gdHJ1ZSBldmVyeSBB
bmltYXRpb24gaW4gdGhlIGNoYWluIChkZWZpbmVkIGJ5IG1fbmV4dCkgbWF0Y2ggCiAgICAgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IEFuaW1hdGlvbiYgbykgY29uc3QgeyByZXR1cm4gYW5pbWF0aW9u
c01hdGNoKG8pOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9Q
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oCmluZGV4IDY3YzE2MTA2MjQ3ZTQ3MTg3
MmU3NDhhYTFjYWYyNDVlMTBmOTkxMDQuLjhhNDM0ZDYzMGZmOTY0YjFkZTA2YWRhYTM3NDA2NTk0
Y2NhYjJlMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRm
b3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5j
bHVkZSAiQXVkaW9IYXJkd2FyZUxpc3RlbmVyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVNl
c3Npb24uaCIKICNpbmNsdWRlICJSZW1vdGVDb21tYW5kTGlzdGVuZXIuaCIKLSNpbmNsdWRlIDxt
YXA+CiAjaW5jbHVkZSA8cGFsL3N5c3RlbS9TeXN0ZW1TbGVlcExpc3RlbmVyLmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbWFnZURlY29kZXJBVkZPYmpDLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbWFnZURlY29kZXJB
VkZPYmpDLmgKaW5kZXggYTY2YjVhYjY3MTM1ZmQ4MjFlODQ2MTM5MzAyNjhjZjc2Y2JjOTFkNy4u
ZmQxYTllZWYzOTlkMjA3MDk3NmZjOTRlZDVmYzFhM2ZiN2Q3ODk1MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvSW1hZ2VEZWNv
ZGVyQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0ltYWdlRGVjb2RlckFWRk9iakMuaApAQCAtMjksNyArMjksNiBAQAogCiAj
aW5jbHVkZSAiSW1hZ2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiU2FtcGxlTWFwLmgiCi0jaW5jbHVk
ZSA8bWFwPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvSW1hZ2VEZWNvZGVyQVZGT2Jq
Qy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0ltYWdlRGVjb2RlckFWRk9iakMubW0KaW5kZXggZWFiNmM2MmM1NDBkMTFmYjNkZjhhZTY3Yzkz
ODYwYjc4NzdkZWNlNy4uYTQ1MjAyZWE5NGU4MzZiN2YyYzg3YTZlZGJmYTdkZjUzZWVmODI1NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvSW1hZ2VEZWNvZGVyQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9JbWFnZURlY29kZXJBVkZPYmpDLm1tCkBAIC00
Nyw3ICs0Nyw2IEBACiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZBc3NldFRyYWNrLmg+CiAjaW1w
b3J0IDxBVkZvdW5kYXRpb24vQVZUaW1lLmg+CiAjaW1wb3J0IDxWaWRlb1Rvb2xib3gvVlRVdGls
aXRpZXMuaD4KLSNpbXBvcnQgPG1hcD4KICNpbXBvcnQgPHBhbC9hdmZvdW5kYXRpb24vTWVkaWFU
aW1lQVZGb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgogI2ltcG9ydCA8
d3RmL01lZGlhVGltZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggMzRmM2UyNmY5Zjhl
MWZhODUwMmExYzI0NjEwMjI5MWM5ZTEyNjMyNS4uNWMyYjJmYjNlOTRmMzM5OGQyZjIzMzVhNTU1
Zjk4N2FhOWU1ZGMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC03Myw3ICs3Myw2IEBA
CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9VaW50MzJBcnJheS5oPgogI2ltcG9ydCA8SmF2YVNj
cmlwdENvcmUvVWludDhBcnJheS5oPgogI2ltcG9ydCA8ZnVuY3Rpb25hbD4KLSNpbXBvcnQgPG1h
cD4KICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgogI2ltcG9ydCA8cGFsL2F2Zm91bmRhdGlvbi9N
ZWRpYVRpbWVBVkZvdW5kYXRpb24uaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29y
ZVNQSS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQy5tbQppbmRleCBhOTBkNWYxM2VlZTczZTJkNDk3YmZkZjY3ODA1NmFiZTJkYzBi
ZTYwLi41NGNmYjhlYWI3MzNlMmU1M2Y0OTNiMjg2NjYwNTdkNjA0YzI1Mjk5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQpA
QCAtNDksNyArNDksNiBAQAogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWQXNzZXRUcmFjay5oPgog
I2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvVHlwZWRBcnJheUlubGluZXMuaD4KICNpbXBvcnQgPFF1
YXJ0ekNvcmUvQ0FMYXllci5oPgotI2ltcG9ydCA8bWFwPgogI2ltcG9ydCA8b2JqYy9ydW50aW1l
Lmg+CiAjaW1wb3J0IDxwYWwvYXZmb3VuZGF0aW9uL01lZGlhVGltZUFWRm91bmRhdGlvbi5oPgog
I2ltcG9ydCA8cGFsL3NwaS9tYWMvQVZGb3VuZGF0aW9uU1BJLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHQzRENvY29h
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250
ZXh0M0RDb2NvYS5tbQppbmRleCAzYmFlZTNhOGYwYzE3NjI3NDUwMmEwN2E1Yzg1ODI0NjQ5MmQ1
NTM2Li41OGFkODVmZTg0YzFiNjk1YzY3Zjc2MTU2OTNlZjVjOTg2OWUzZDE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHQz
RENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dy
YXBoaWNzQ29udGV4dDNEQ29jb2EubW0KQEAgLTE2OCw3ICsxNjgsNyBAQCBwcml2YXRlOgogCiAg
ICAgVGltZXIgbV9kaXNhYmxlSGlnaFBlcmZvcm1hbmNlR1BVVGltZXI7CiAKLSNpZiBVU0UoT1BF
TkdMKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICBDR0xQaXhlbEZvcm1hdE9iaiBtX3BpeGVsRm9y
bWF0T2JqIHsgbnVsbHB0ciB9OwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVmlkZW9UZXh0dXJlQ29waWVyQ1YuY3BwCmlu
ZGV4IGFiNjE4ZmZlZjM2ODYzMTI0OTFhMDRmZTVjMGRjNzE5Y2ZlNjNjYzEuLmRmZmNkY2I0Y2Nh
MzQ1YTVhNzU0MmYxMjYzY2UxMWIxNmNmNDE5MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2N2L1ZpZGVvVGV4dHVyZUNvcGllckNWLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9WaWRlb1RleHR1cmVDb3BpZXJDVi5jcHAK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJUZXh0dXJlQ2FjaGVDVi5oIgogI2luY2x1ZGUg
PHBhbC9zcGkvY29jb2EvSU9TdXJmYWNlU1BJLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CisjaW5jbHVkZSA8d3RmL1N0ZE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KIAogI2lmIFVTRShPUEVOR0xfRVMpCkBAIC0yNDgsNyArMjQ5LDcgQEAgY29u
c3RleHByIEdMZmxvYXRDb2xvciBZQ2JDck1hdHJpeDo6b3BlcmF0b3IqKGNvbnN0IEdMZmxvYXRD
b2xvciYgY29sb3IpIGNvbnN0CiBzdGF0aWMgY29uc3QgVmVjdG9yPEdMZmxvYXQ+IFlDYkNyVG9S
R0JNYXRyaXhGb3JSYW5nZUFuZFRyYW5zZmVyRnVuY3Rpb24oUGl4ZWxSYW5nZSByYW5nZSwgVHJh
bnNmZXJGdW5jdGlvbiB0cmFuc2ZlckZ1bmN0aW9uKQogewogICAgIHVzaW5nIE1hcEtleSA9IHN0
ZDo6cGFpcjxQaXhlbFJhbmdlLCBUcmFuc2ZlckZ1bmN0aW9uPjsKLSAgICB1c2luZyBNYXRyaXhN
YXAgPSBzdGQ6Om1hcDxNYXBLZXksIFZlY3RvcjxHTGZsb2F0Pj47CisgICAgdXNpbmcgTWF0cml4
TWFwID0gU3RkTWFwPE1hcEtleSwgVmVjdG9yPEdMZmxvYXQ+PjsKIAogICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxNYXRyaXhNYXA+IG1hdHJpY2VzOwogICAgIHN0YXRpYyBkaXNwYXRjaF9vbmNl
X3Qgb25jZVRva2VuOwpAQCAtMzkzLDcgKzM5NCw3IEBAIFZpZGVvVGV4dHVyZUNvcGllckNWOjp+
VmlkZW9UZXh0dXJlQ29waWVyQ1YoKQogfQogCiAjaWYgIUxPR19ESVNBQkxFRAotdXNpbmcgU3Ry
aW5nTWFwID0gc3RkOjptYXA8dWludDMyX3QsIGNvbnN0IGNoYXIqLCBzdGQ6Omxlc3M8dWludDMy
X3Q+LCBGYXN0QWxsb2NhdG9yPHN0ZDo6cGFpcjxjb25zdCB1aW50MzJfdCwgY29uc3QgY2hhcio+
Pj47Cit1c2luZyBTdHJpbmdNYXAgPSBTdGRNYXA8dWludDMyX3QsIGNvbnN0IGNoYXIqPjsKICNk
ZWZpbmUgU1RSSU5HSUZZX1BBSVIoZSkgZSwgI2UKIHN0YXRpYyBTdHJpbmdNYXAmIGVudW1Ub1N0
cmluZ01hcCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyQmFzZS5jcHAKaW5kZXggYjc0MWUwMDA5NjI3OGIzYTJhNzZkNTA4ZjNjYWY1MTIwYzZj
NmQzZS4uOTkzY2Q5ZTM1MDQ3ZWJlYzRhMmY4NjMwYTllMmUxMzM4MWIxODgwMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApAQCAt
NzA2LDcgKzcwNiw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6dXBk
YXRlVGV4dHVyZShCaXRtYXBUZXh0dXJlR0wmIHRleHR1cmUsIEdzCiAKICAgICBpbnQgc3RyaWRl
ID0gR1NUX1ZJREVPX0ZSQU1FX1BMQU5FX1NUUklERSgmdmlkZW9GcmFtZSwgMCk7CiAgICAgY29u
c3Qgdm9pZCogc3JjRGF0YSA9IEdTVF9WSURFT19GUkFNRV9QTEFORV9EQVRBKCZ2aWRlb0ZyYW1l
LCAwKTsKLSAgICB0ZXh0dXJlLnVwZGF0ZUNvbnRlbnRzKHNyY0RhdGEsIFdlYkNvcmU6OkludFJl
Y3QoMCwgMCwgR1NUX1ZJREVPX0lORk9fV0lEVEgoJnZpZGVvSW5mbyksIEdTVF9WSURFT19JTkZP
X0hFSUdIVCgmdmlkZW9JbmZvKSksIFdlYkNvcmU6OkludFBvaW50KDAsIDApLCBzdHJpZGUsIEJp
dG1hcFRleHR1cmU6OlVwZGF0ZUNhbm5vdE1vZGlmeU9yaWdpbmFsSW1hZ2VEYXRhKTsKKyAgICB0
ZXh0dXJlLnVwZGF0ZUNvbnRlbnRzKHNyY0RhdGEsIFdlYkNvcmU6OkludFJlY3QoMCwgMCwgR1NU
X1ZJREVPX0lORk9fV0lEVEgoJnZpZGVvSW5mbyksIEdTVF9WSURFT19JTkZPX0hFSUdIVCgmdmlk
ZW9JbmZvKSksIFdlYkNvcmU6OkludFBvaW50KDAsIDApLCBzdHJpZGUpOwogICAgIGdzdF92aWRl
b19mcmFtZV91bm1hcCgmdmlkZW9GcmFtZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlLmNwcAppbmRleCA0
ODcwNzdiZTkzMTE3Yjc1M2YzN2FmMzdhZmJkMTdhMGVhMzViNmEwLi5mOTNjMjNjNDFmNGVlMGQy
ZTgxNDA5NGZiN2NjM2YwNDM5YjlmNDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmUuY3BwCkBAIC0zMyw3ICsz
Myw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBCaXRtYXBUZXh0dXJlOjp1cGRh
dGVDb250ZW50cyhUZXh0dXJlTWFwcGVyJiwgR3JhcGhpY3NMYXllciogc291cmNlTGF5ZXIsIGNv
bnN0IEludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IEludFBvaW50JiBvZmZzZXQsIFVwZGF0ZUNv
bnRlbnRzRmxhZyB1cGRhdGVDb250ZW50c0ZsYWcsIGZsb2F0IHNjYWxlKQordm9pZCBCaXRtYXBU
ZXh0dXJlOjp1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVyJiwgR3JhcGhpY3NMYXllciogc291
cmNlTGF5ZXIsIGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IEludFBvaW50JiBvZmZz
ZXQsIGZsb2F0IHNjYWxlKQogewogICAgIC8vIE1ha2luZyBhbiB1bmNvbmRpdGlvbmFsbHkgdW5h
Y2NlbGVyYXRlZCBidWZmZXIgaGVyZSBpcyBPSyBiZWNhdXNlIHRoaXMgY29kZQogICAgIC8vIGlz
bid0IHVzZWQgYnkgYW55IHBsYXRmb3JtcyB0aGF0IHJlc3BlY3QgdGhlIGFjY2VsZXJhdGVkIGJp
dC4KQEAgLTU4LDcgKzU4LDcgQEAgdm9pZCBCaXRtYXBUZXh0dXJlOjp1cGRhdGVDb250ZW50cyhU
ZXh0dXJlTWFwcGVyJiwgR3JhcGhpY3NMYXllciogc291cmNlTGF5ZXIsIGMKICAgICBpZiAoIWlt
YWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICB1cGRhdGVDb250ZW50cyhpbWFnZS5nZXQoKSwg
dGFyZ2V0UmVjdCwgSW50UG9pbnQoKSwgdXBkYXRlQ29udGVudHNGbGFnKTsKKyAgICB1cGRhdGVD
b250ZW50cyhpbWFnZS5nZXQoKSwgdGFyZ2V0UmVjdCwgSW50UG9pbnQoKSk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvQml0bWFwVGV4dHVyZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0JpdG1hcFRleHR1cmUuaAppbmRleCA2NmM4ODgyNWI1YjU0MmQwMDJhODE4ZTUzMWMx
ZTVhZjE1OTkxMjVmLi42ZTNiOGZiZDBhYmRmM2U5Njk3MmVhNGRlMjkxNTI0ZjJkNWQyODY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFw
VGV4dHVyZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9C
aXRtYXBUZXh0dXJlLmgKQEAgLTQ2LDEyICs0Niw2IEBAIHB1YmxpYzoKICAgICBlbnVtIEZsYWcg
ewogICAgICAgICBOb0ZsYWcgPSAwLAogICAgICAgICBTdXBwb3J0c0FscGhhID0gMHgwMSwKLSAg
ICAgICAgRkJPQXR0YWNobWVudCA9IDB4MDIKLSAgICB9OwotCi0gICAgZW51bSBVcGRhdGVDb250
ZW50c0ZsYWcgewotICAgICAgICBVcGRhdGVDYW5Nb2RpZnlPcmlnaW5hbEltYWdlRGF0YSwKLSAg
ICAgICAgVXBkYXRlQ2Fubm90TW9kaWZ5T3JpZ2luYWxJbWFnZURhdGEKICAgICB9OwogCiAgICAg
dHlwZWRlZiB1bnNpZ25lZCBGbGFnczsKQEAgLTY1LDkgKzU5LDkgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBpc0JhY2tlZEJ5T3BlbkdMKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAog
ICAgIHZpcnR1YWwgSW50U2l6ZSBzaXplKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVDb250ZW50cyhJbWFnZSosIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRQb2ludCYgb2Zm
c2V0LCBVcGRhdGVDb250ZW50c0ZsYWcpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29u
dGVudHMoVGV4dHVyZU1hcHBlciYsIEdyYXBoaWNzTGF5ZXIqLCBjb25zdCBJbnRSZWN0JiB0YXJn
ZXQsIGNvbnN0IEludFBvaW50JiBvZmZzZXQsIFVwZGF0ZUNvbnRlbnRzRmxhZywgZmxvYXQgc2Nh
bGUgPSAxKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29udGVudHMoY29uc3Qgdm9pZCosIGNv
bnN0IEludFJlY3QmIHRhcmdldCwgY29uc3QgSW50UG9pbnQmIG9mZnNldCwgaW50IGJ5dGVzUGVy
TGluZSwgVXBkYXRlQ29udGVudHNGbGFnKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNv
bnRlbnRzKEltYWdlKiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFBvaW50JiBvZmZzZXQpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQ29udGVudHMoVGV4dHVyZU1hcHBlciYsIEdyYXBo
aWNzTGF5ZXIqLCBjb25zdCBJbnRSZWN0JiB0YXJnZXQsIGNvbnN0IEludFBvaW50JiBvZmZzZXQs
IGZsb2F0IHNjYWxlID0gMSk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNvbnRlbnRzKGNvbnN0
IHZvaWQqLCBjb25zdCBJbnRSZWN0JiB0YXJnZXQsIGNvbnN0IEludFBvaW50JiBvZmZzZXQsIGlu
dCBieXRlc1BlckxpbmUpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0ID0g
MDsKICAgICBpbmxpbmUgRmxhZ3MgZmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdzOyB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRt
YXBUZXh0dXJlR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L0JpdG1hcFRleHR1cmVHTC5jcHAKaW5kZXggYTQyMDliYzA4OTI0NzQ5MTQyZTUxODZmODZhOGQ3
OWE5YjljYmEzZi4uZWE5ZTU5OGMxODhkYjkwNjY2ODJmODAxNTM2Mjc2ZTBlZDZkMmFlMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRl
eHR1cmVHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L0JpdG1hcFRleHR1cmVHTC5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgQml0bWFwVGV4dHVyZUdMKiB0
b0JpdG1hcFRleHR1cmVHTChCaXRtYXBUZXh0dXJlKiB0ZXh0dXJlKQogICAgIHJldHVybiBzdGF0
aWNfY2FzdDxCaXRtYXBUZXh0dXJlR0wqPih0ZXh0dXJlKTsKIH0KIAotQml0bWFwVGV4dHVyZUdM
OjpCaXRtYXBUZXh0dXJlR0woY29uc3QgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzJiBj
b250ZXh0QXR0cmlidXRlcywgY29uc3QgRmxhZ3MgZmxhZ3MsIEdMaW50IGludGVybmFsRm9ybWF0
KQorQml0bWFwVGV4dHVyZUdMOjpCaXRtYXBUZXh0dXJlR0woY29uc3QgVGV4dHVyZU1hcHBlckNv
bnRleHRBdHRyaWJ1dGVzJiBjb250ZXh0QXR0cmlidXRlcywgY29uc3QgRmxhZ3MsIEdMaW50IGlu
dGVybmFsRm9ybWF0KQogICAgIDogbV9jb250ZXh0QXR0cmlidXRlcyhjb250ZXh0QXR0cmlidXRl
cykKIHsKICAgICBpZiAoaW50ZXJuYWxGb3JtYXQgIT0gR0xfRE9OVF9DQVJFKSB7CkBAIC02NCwz
MCArNjQsNyBAQCBCaXRtYXBUZXh0dXJlR0w6OkJpdG1hcFRleHR1cmVHTChjb25zdCBUZXh0dXJl
TWFwcGVyQ29udGV4dEF0dHJpYnV0ZXMmIGNvbnRleHRBdAogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgaWYgKGZsYWdzICYgRkJPQXR0YWNobWVudCkKLSAgICAgICAgbV9pbnRlcm5hbEZv
cm1hdCA9IG1fZm9ybWF0ID0gR0xfUkdCQTsKLSAgICBlbHNlIHsKLSAgICAgICAgLy8gSWYgR0xf
RVhUX3RleHR1cmVfZm9ybWF0X0JHUkE4ODg4IGlzIHN1cHBvcnRlZCBpbiB0aGUgT3BlbkdMRVMK
LSAgICAgICAgLy8gaW50ZXJuYWwgYW5kIGV4dGVybmFsIGZvcm1hdHMgbmVlZCB0byBiZSBCR1JB
Ci0gICAgICAgIG1faW50ZXJuYWxGb3JtYXQgPSBHTF9SR0JBOwotICAgICAgICBtX2Zvcm1hdCA9
IEdMX0JHUkE7Ci0gICAgICAgIGlmIChtX2NvbnRleHRBdHRyaWJ1dGVzLmlzR0xFUzJDb21wbGlh
bnQpIHsKLSAgICAgICAgICAgIGlmIChtX2NvbnRleHRBdHRyaWJ1dGVzLnN1cHBvcnRzQkdSQTg4
ODgpCi0gICAgICAgICAgICAgICAgbV9pbnRlcm5hbEZvcm1hdCA9IEdMX0JHUkE7Ci0gICAgICAg
ICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbV9mb3JtYXQgPSBHTF9SR0JBOwotICAgICAgICB9
Ci0gICAgfQotfQotCi1zdGF0aWMgdm9pZCBzd2l6emxlQkdSQVRvUkdCQSh1aW50MzJfdCogZGF0
YSwgY29uc3QgSW50UmVjdCYgcmVjdCwgaW50IHN0cmlkZSA9IDApCi17Ci0gICAgc3RyaWRlID0g
c3RyaWRlID8gc3RyaWRlIDogcmVjdC53aWR0aCgpOwotICAgIGZvciAoaW50IHkgPSByZWN0Lnko
KTsgeSA8IHJlY3QubWF4WSgpOyArK3kpIHsKLSAgICAgICAgdWludDMyX3QqIHAgPSBkYXRhICsg
eSAqIHN0cmlkZTsKLSAgICAgICAgZm9yIChpbnQgeCA9IHJlY3QueCgpOyB4IDwgcmVjdC5tYXhY
KCk7ICsreCkKLSAgICAgICAgICAgIHBbeF0gPSAoKHBbeF0gPDwgMTYpICYgMHhmZjAwMDApIHwg
KChwW3hdID4+IDE2KSAmIDB4ZmYpIHwgKHBbeF0gJiAweGZmMDBmZjAwKTsKLSAgICB9CisgICAg
bV9pbnRlcm5hbEZvcm1hdCA9IG1fZm9ybWF0ID0gR0xfUkdCQTsKIH0KIAogdm9pZCBCaXRtYXBU
ZXh0dXJlR0w6OmRpZFJlc2V0KCkKQEAgLTk2LDYgKzczLDcgQEAgdm9pZCBCaXRtYXBUZXh0dXJl
R0w6OmRpZFJlc2V0KCkKICAgICAgICAgZ2xHZW5UZXh0dXJlcygxLCAmbV9pZCk7CiAKICAgICBt
X3Nob3VsZENsZWFyID0gdHJ1ZTsKKyAgICBtX2NvbG9yQ29udmVydEZsYWdzID0gVGV4dHVyZU1h
cHBlckdMOjpOb0ZsYWc7CiAgICAgaWYgKG1fdGV4dHVyZVNpemUgPT0gY29udGVudFNpemUoKSkK
ICAgICAgICAgcmV0dXJuOwogCkBAIC0xMDksMzEgKzg3LDEzIEBAIHZvaWQgQml0bWFwVGV4dHVy
ZUdMOjpkaWRSZXNldCgpCiAgICAgZ2xUZXhJbWFnZTJEKEdMX1RFWFRVUkVfMkQsIDAsIG1faW50
ZXJuYWxGb3JtYXQsIG1fdGV4dHVyZVNpemUud2lkdGgoKSwgbV90ZXh0dXJlU2l6ZS5oZWlnaHQo
KSwgMCwgbV9mb3JtYXQsIG1fdHlwZSwgMCk7CiB9CiAKLXZvaWQgQml0bWFwVGV4dHVyZUdMOjp1
cGRhdGVDb250ZW50c05vU3dpenpsZShjb25zdCB2b2lkKiBzcmNEYXRhLCBjb25zdCBJbnRSZWN0
JiB0YXJnZXRSZWN0LCBjb25zdCBJbnRQb2ludCYgc291cmNlT2Zmc2V0LCBpbnQgYnl0ZXNQZXJM
aW5lLCB1bnNpZ25lZCBieXRlc1BlclBpeGVsLCBHTHVpbnQgZ2xGb3JtYXQpCit2b2lkIEJpdG1h
cFRleHR1cmVHTDo6dXBkYXRlQ29udGVudHMoY29uc3Qgdm9pZCogc3JjRGF0YSwgY29uc3QgSW50
UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgSW50UG9pbnQmIHNvdXJjZU9mZnNldCwgaW50IGJ5dGVz
UGVyTGluZSkKIHsKLSAgICAvLyBGb3IgRVMgZHJpdmVycyB0aGF0IGRvbid0IHN1cHBvcnQgc3Vi
LWltYWdlcy4KLSAgICBib29sIGNvbnRleHRTdXBwb3J0c1VucGFja1N1YmltYWdlID0gbV9jb250
ZXh0QXR0cmlidXRlcy5zdXBwb3J0c1VucGFja1N1YmltYWdlOwotCi0gICAgZ2xCaW5kVGV4dHVy
ZShHTF9URVhUVVJFXzJELCBtX2lkKTsKLQotICAgIGlmIChjb250ZXh0U3VwcG9ydHNVbnBhY2tT
dWJpbWFnZSkgewotICAgICAgICAvLyBVc2UgdGhlIE9wZW5HTCBzdWItaW1hZ2UgZXh0ZW5zaW9u
LCBub3cgdGhhdCB3ZSBrbm93IGl0J3MgYXZhaWxhYmxlLgotICAgICAgICBnbFBpeGVsU3RvcmVp
KEdMX1VOUEFDS19ST1dfTEVOR1RILCBieXRlc1BlckxpbmUgLyBieXRlc1BlclBpeGVsKTsKLSAg
ICAgICAgZ2xQaXhlbFN0b3JlaShHTF9VTlBBQ0tfU0tJUF9ST1dTLCBzb3VyY2VPZmZzZXQueSgp
KTsKLSAgICAgICAgZ2xQaXhlbFN0b3JlaShHTF9VTlBBQ0tfU0tJUF9QSVhFTFMsIHNvdXJjZU9m
ZnNldC54KCkpOwotICAgIH0KLQotICAgIGdsVGV4U3ViSW1hZ2UyRChHTF9URVhUVVJFXzJELCAw
LCB0YXJnZXRSZWN0LngoKSwgdGFyZ2V0UmVjdC55KCksIHRhcmdldFJlY3Qud2lkdGgoKSwgdGFy
Z2V0UmVjdC5oZWlnaHQoKSwgZ2xGb3JtYXQsIG1fdHlwZSwgc3JjRGF0YSk7Ci0KLSAgICBpZiAo
Y29udGV4dFN1cHBvcnRzVW5wYWNrU3ViaW1hZ2UpIHsKLSAgICAgICAgZ2xQaXhlbFN0b3JlaShH
TF9VTlBBQ0tfUk9XX0xFTkdUSCwgMCk7Ci0gICAgICAgIGdsUGl4ZWxTdG9yZWkoR0xfVU5QQUNL
X1NLSVBfUk9XUywgMCk7Ci0gICAgICAgIGdsUGl4ZWxTdG9yZWkoR0xfVU5QQUNLX1NLSVBfUElY
RUxTLCAwKTsKLSAgICB9Ci19CisgICAgLy8gV2UgYXJlIHVwZGF0aW5nIGEgdGV4dHVyZSB3aXRo
IGZvcm1hdCBSR0JBIHdpdGggY29udGVudCBmcm9tIGEgYnVmZmVyIHRoYXQgaGFzIEJHUkEgZm9y
bWF0LiBJbnN0ZWFkIG9mIHR1cm5pbmcgQkdSQQorICAgIC8vIGludG8gUkdCQSBhbmQgdGhlbiB1
cGxvYWRpbmcgaXQsIHdlIHVwbG9hZCBpdCBhcyBpcy4gVGhpcyBjYXVzZXMgdGhlIHRleHR1cmUg
Zm9ybWF0IHRvIGJlIFJHQkEgYnV0IHRoZSBjb250ZW50IHRvIGJlIEJHUkEsCisgICAgLy8gc28g
d2UgbWFyayB0aGUgdGV4dHVyZSB0byBjb252ZXJ0IHRoZSBjb2xvcnMgd2hlbiBwYWludGluZyB0
aGUgdGV4dHVyZS4KKyAgICBtX2NvbG9yQ29udmVydEZsYWdzID0gVGV4dHVyZU1hcHBlckdMOjpT
aG91bGRDb252ZXJ0VGV4dHVyZUJHUkFUb1JHQkE7CiAKLXZvaWQgQml0bWFwVGV4dHVyZUdMOjp1
cGRhdGVDb250ZW50cyhjb25zdCB2b2lkKiBzcmNEYXRhLCBjb25zdCBJbnRSZWN0JiB0YXJnZXRS
ZWN0LCBjb25zdCBJbnRQb2ludCYgc291cmNlT2Zmc2V0LCBpbnQgYnl0ZXNQZXJMaW5lLCBVcGRh
dGVDb250ZW50c0ZsYWcgdXBkYXRlQ29udGVudHNGbGFnKQotewogICAgIGdsQmluZFRleHR1cmUo
R0xfVEVYVFVSRV8yRCwgbV9pZCk7CiAKICAgICBjb25zdCB1bnNpZ25lZCBieXRlc1BlclBpeGVs
ID0gNDsKQEAgLTE0Niw3ICsxMDYsNyBAQCB2b2lkIEJpdG1hcFRleHR1cmVHTDo6dXBkYXRlQ29u
dGVudHMoY29uc3Qgdm9pZCogc3JjRGF0YSwgY29uc3QgSW50UmVjdCYgdGFyZ2V0UgogICAgICAg
ICAmJiAhKGJ5dGVzUGVyTGluZSA9PSBzdGF0aWNfY2FzdDxpbnQ+KHRhcmdldFJlY3Qud2lkdGgo
KSAqIGJ5dGVzUGVyUGl4ZWwpICYmIGFkanVzdGVkU291cmNlT2Zmc2V0ID09IEludFBvaW50Ojp6
ZXJvKCkpOwogCiAgICAgLy8gcHJlcGFyZSB0ZW1wb3JhcnlEYXRhIGlmIG5lY2Vzc2FyeQotICAg
IGlmICgobV9mb3JtYXQgPT0gR0xfUkdCQSAmJiB1cGRhdGVDb250ZW50c0ZsYWcgPT0gVXBkYXRl
Q2Fubm90TW9kaWZ5T3JpZ2luYWxJbWFnZURhdGEpIHx8IHJlcXVpcmVTdWJJbWFnZUJ1ZmZlcikg
eworICAgIGlmIChyZXF1aXJlU3ViSW1hZ2VCdWZmZXIpIHsKICAgICAgICAgdGVtcG9yYXJ5RGF0
YS5yZXNpemUodGFyZ2V0UmVjdC53aWR0aCgpICogdGFyZ2V0UmVjdC5oZWlnaHQoKSAqIGJ5dGVz
UGVyUGl4ZWwpOwogICAgICAgICBkYXRhID0gdGVtcG9yYXJ5RGF0YS5kYXRhKCk7CiAgICAgICAg
IGNvbnN0IGNoYXIqIGJpdHMgPSBzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oc3JjRGF0YSk7CkBA
IC0xNjMsMTMgKzEyMywyNSBAQCB2b2lkIEJpdG1hcFRleHR1cmVHTDo6dXBkYXRlQ29udGVudHMo
Y29uc3Qgdm9pZCogc3JjRGF0YSwgY29uc3QgSW50UmVjdCYgdGFyZ2V0UgogICAgICAgICBhZGp1
c3RlZFNvdXJjZU9mZnNldCA9IEludFBvaW50KDAsIDApOwogICAgIH0KIAotICAgIGlmIChtX2Zv
cm1hdCA9PSBHTF9SR0JBKQotICAgICAgICBzd2l6emxlQkdSQVRvUkdCQShyZWludGVycHJldF9j
YXN0X3B0cjx1aW50MzJfdCo+KGRhdGEpLCBJbnRSZWN0KGFkanVzdGVkU291cmNlT2Zmc2V0LCB0
YXJnZXRSZWN0LnNpemUoKSksIGJ5dGVzUGVyTGluZSAvIGJ5dGVzUGVyUGl4ZWwpOworICAgIGds
QmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgbV9pZCk7CiAKLSAgICB1cGRhdGVDb250ZW50c05v
U3dpenpsZShkYXRhLCB0YXJnZXRSZWN0LCBhZGp1c3RlZFNvdXJjZU9mZnNldCwgYnl0ZXNQZXJM
aW5lLCBieXRlc1BlclBpeGVsLCBtX2Zvcm1hdCk7CisgICAgaWYgKG1fY29udGV4dEF0dHJpYnV0
ZXMuc3VwcG9ydHNVbnBhY2tTdWJpbWFnZSkgeworICAgICAgICAvLyBVc2UgdGhlIE9wZW5HTCBz
dWItaW1hZ2UgZXh0ZW5zaW9uLCBub3cgdGhhdCB3ZSBrbm93IGl0J3MgYXZhaWxhYmxlLgorICAg
ICAgICBnbFBpeGVsU3RvcmVpKEdMX1VOUEFDS19ST1dfTEVOR1RILCBieXRlc1BlckxpbmUgLyBi
eXRlc1BlclBpeGVsKTsKKyAgICAgICAgZ2xQaXhlbFN0b3JlaShHTF9VTlBBQ0tfU0tJUF9ST1dT
LCBhZGp1c3RlZFNvdXJjZU9mZnNldC55KCkpOworICAgICAgICBnbFBpeGVsU3RvcmVpKEdMX1VO
UEFDS19TS0lQX1BJWEVMUywgYWRqdXN0ZWRTb3VyY2VPZmZzZXQueCgpKTsKKyAgICB9CisKKyAg
ICBnbFRleFN1YkltYWdlMkQoR0xfVEVYVFVSRV8yRCwgMCwgdGFyZ2V0UmVjdC54KCksIHRhcmdl
dFJlY3QueSgpLCB0YXJnZXRSZWN0LndpZHRoKCksIHRhcmdldFJlY3QuaGVpZ2h0KCksIG1fZm9y
bWF0LCBtX3R5cGUsIGRhdGEpOworCisgICAgaWYgKG1fY29udGV4dEF0dHJpYnV0ZXMuc3VwcG9y
dHNVbnBhY2tTdWJpbWFnZSkgeworICAgICAgICBnbFBpeGVsU3RvcmVpKEdMX1VOUEFDS19ST1df
TEVOR1RILCAwKTsKKyAgICAgICAgZ2xQaXhlbFN0b3JlaShHTF9VTlBBQ0tfU0tJUF9ST1dTLCAw
KTsKKyAgICAgICAgZ2xQaXhlbFN0b3JlaShHTF9VTlBBQ0tfU0tJUF9QSVhFTFMsIDApOworICAg
IH0KIH0KIAotdm9pZCBCaXRtYXBUZXh0dXJlR0w6OnVwZGF0ZUNvbnRlbnRzKEltYWdlKiBpbWFn
ZSwgY29uc3QgSW50UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgSW50UG9pbnQmIG9mZnNldCwgVXBk
YXRlQ29udGVudHNGbGFnIHVwZGF0ZUNvbnRlbnRzRmxhZykKK3ZvaWQgQml0bWFwVGV4dHVyZUdM
Ojp1cGRhdGVDb250ZW50cyhJbWFnZSogaW1hZ2UsIGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3Qs
IGNvbnN0IEludFBvaW50JiBvZmZzZXQpCiB7CiAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgcmV0
dXJuOwpAQCAtMTg2LDcgKzE1OCw3IEBAIHZvaWQgQml0bWFwVGV4dHVyZUdMOjp1cGRhdGVDb250
ZW50cyhJbWFnZSogaW1hZ2UsIGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3QsIGNvCiAgICAgYnl0
ZXNQZXJMaW5lID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9nZXRfc3RyaWRlKHN1cmZhY2UpOwogI2Vu
ZGlmCiAKLSAgICB1cGRhdGVDb250ZW50cyhpbWFnZURhdGEsIHRhcmdldFJlY3QsIG9mZnNldCwg
Ynl0ZXNQZXJMaW5lLCB1cGRhdGVDb250ZW50c0ZsYWcpOworICAgIHVwZGF0ZUNvbnRlbnRzKGlt
YWdlRGF0YSwgdGFyZ2V0UmVjdCwgb2Zmc2V0LCBieXRlc1BlckxpbmUpOwogfQogCiBzdGF0aWMg
dW5zaWduZWQgZ2V0UGFzc2VzUmVxdWlyZWRGb3JGaWx0ZXIoRmlsdGVyT3BlcmF0aW9uOjpPcGVy
YXRpb25UeXBlIHR5cGUpCkBAIC0yMzIsNyArMjA0LDcgQEAgUmVmUHRyPEJpdG1hcFRleHR1cmU+
IEJpdG1hcFRleHR1cmVHTDo6YXBwbHlGaWx0ZXJzKFRleHR1cmVNYXBwZXImIHRleHR1cmVNYXBw
ZXIKICAgICAgICAgICAgIGJvb2wgbGFzdCA9IChpID09IGZpbHRlcnMuc2l6ZSgpIC0gMSkgJiYg
KGogPT0gbnVtUGFzc2VzIC0gMSk7CiAgICAgICAgICAgICBpZiAoIWxhc3QpIHsKICAgICAgICAg
ICAgICAgICBpZiAoIWludGVybWVkaWF0ZVN1cmZhY2UpCi0gICAgICAgICAgICAgICAgICAgIGlu
dGVybWVkaWF0ZVN1cmZhY2UgPSB0ZXhtYXBHTC5hY3F1aXJlVGV4dHVyZUZyb21Qb29sKGNvbnRl
bnRTaXplKCksIEJpdG1hcFRleHR1cmU6OlN1cHBvcnRzQWxwaGEgfCBCaXRtYXBUZXh0dXJlOjpG
Qk9BdHRhY2htZW50KTsKKyAgICAgICAgICAgICAgICAgICAgaW50ZXJtZWRpYXRlU3VyZmFjZSA9
IHRleG1hcEdMLmFjcXVpcmVUZXh0dXJlRnJvbVBvb2woY29udGVudFNpemUoKSwgQml0bWFwVGV4
dHVyZTo6U3VwcG9ydHNBbHBoYSk7CiAgICAgICAgICAgICAgICAgdGV4bWFwR0wuYmluZFN1cmZh
Y2UoaW50ZXJtZWRpYXRlU3VyZmFjZS5nZXQoKSk7CiAgICAgICAgICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJl
R0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0
dXJlR0wuaAppbmRleCA3NDA5MGE0ZGQyYmMyNGVjODk4NWYwZGFiMGQ4OWU2YWZmYmRlZmJjLi44
NzA5YTgyNTYwYzY0OTg4NzQ4OTM4YjhiODZlMTNiZjUzYTBiZWY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZUdMLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1cmVH
TC5oCkBAIC01NSw5ICs1NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHVpbnQzMl90IGlkKCkg
Y29uc3QgeyByZXR1cm4gbV9pZDsgfQogICAgIHVpbnQzMl90IHRleHR1cmVUYXJnZXQoKSBjb25z
dCB7IHJldHVybiBHTF9URVhUVVJFXzJEOyB9CiAgICAgSW50U2l6ZSB0ZXh0dXJlU2l6ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdGV4dHVyZVNpemU7IH0KLSAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzKElt
YWdlKiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFBvaW50JiwgVXBkYXRlQ29udGVudHNGbGFn
KSBvdmVycmlkZTsKLSAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzKGNvbnN0IHZvaWQqLCBjb25zdCBJ
bnRSZWN0JiB0YXJnZXQsIGNvbnN0IEludFBvaW50JiBzb3VyY2VPZmZzZXQsIGludCBieXRlc1Bl
ckxpbmUsIFVwZGF0ZUNvbnRlbnRzRmxhZykgb3ZlcnJpZGU7Ci0gICAgdm9pZCB1cGRhdGVDb250
ZW50c05vU3dpenpsZShjb25zdCB2b2lkKiwgY29uc3QgSW50UmVjdCYgdGFyZ2V0LCBjb25zdCBJ
bnRQb2ludCYgc291cmNlT2Zmc2V0LCBpbnQgYnl0ZXNQZXJMaW5lLCB1bnNpZ25lZCBieXRlc1Bl
clBpeGVsID0gNCwgR0x1aW50IGdsRm9ybWF0ID0gR0xfUkdCQSk7CisgICAgdm9pZCB1cGRhdGVD
b250ZW50cyhJbWFnZSosIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRQb2ludCYpIG92ZXJyaWRl
OworICAgIHZvaWQgdXBkYXRlQ29udGVudHMoY29uc3Qgdm9pZCosIGNvbnN0IEludFJlY3QmIHRh
cmdldCwgY29uc3QgSW50UG9pbnQmIHNvdXJjZU9mZnNldCwgaW50IGJ5dGVzUGVyTGluZSkgb3Zl
cnJpZGU7CiAgICAgYm9vbCBpc0JhY2tlZEJ5T3BlbkdMKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQogCiAgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IGFwcGx5RmlsdGVycyhUZXh0
dXJlTWFwcGVyJiwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYpIG92ZXJyaWRlOwpAQCAtNzksNiAr
NzgsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNvcHlGcm9tRXh0ZXJuYWxUZXh0dXJlKEdMdWlu
dCB0ZXh0dXJlSUQpOwogCisgICAgVGV4dHVyZU1hcHBlckdMOjpGbGFncyBjb2xvckNvbnZlcnRG
bGFncygpIGNvbnN0IHsgcmV0dXJuIG1fY29sb3JDb252ZXJ0RmxhZ3M7IH0KKwogcHJpdmF0ZToK
ICAgICBCaXRtYXBUZXh0dXJlR0woY29uc3QgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVz
JiwgY29uc3QgRmxhZ3MsIEdMaW50IGludGVybmFsRm9ybWF0KTsKIApAQCAtOTEsNiArOTIsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9zaG91bGRDbGVhciB7IHRydWUgfTsKICAgICBDbGlwU3Rh
Y2sgbV9jbGlwU3RhY2s7CiAgICAgVGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzIG1fY29u
dGV4dEF0dHJpYnV0ZXM7CisgICAgVGV4dHVyZU1hcHBlckdMOjpGbGFncyBtX2NvbG9yQ29udmVy
dEZsYWdzIHsgVGV4dHVyZU1hcHBlckdMOjpOb0ZsYWcgfTsKIAogICAgIHZvaWQgY2xlYXJJZk5l
ZWRlZCgpOwogICAgIHZvaWQgY3JlYXRlRmJvSWZOZWVkZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlUG9vbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvQml0bWFwVGV4dHVyZVBv
b2wuY3BwCmluZGV4IDc1ZDRhZTY5NzQ4ZjJlM2I0MzRkMTU1NmQ2NDY4ZTg1M2ExZjVmMDguLjgx
MjIwNDg1MzZkM2FhNDg3NTUzOTQwNmRhNzQ1OWM3ZTAxNzg1ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9CaXRtYXBUZXh0dXJlUG9vbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0JpdG1hcFRleHR1
cmVQb29sLmNwcApAQCAtNDYsMTQgKzQ2LDEyIEBAIEJpdG1hcFRleHR1cmVQb29sOjpCaXRtYXBU
ZXh0dXJlUG9vbChjb25zdCBUZXh0dXJlTWFwcGVyQ29udGV4dEF0dHJpYnV0ZXMmIGNvbnRlCiAK
IFJlZlB0cjxCaXRtYXBUZXh0dXJlPiBCaXRtYXBUZXh0dXJlUG9vbDo6YWNxdWlyZVRleHR1cmUo
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgY29uc3QgQml0bWFwVGV4dHVyZTo6RmxhZ3MgZmxhZ3MpCiB7
Ci0gICAgVmVjdG9yPEVudHJ5PiYgbGlzdCA9IGZsYWdzICYgQml0bWFwVGV4dHVyZTo6RkJPQXR0
YWNobWVudCA/IG1fYXR0YWNobWVudFRleHR1cmVzIDogbV90ZXh0dXJlczsKLQotICAgIEVudHJ5
KiBzZWxlY3RlZEVudHJ5ID0gc3RkOjpmaW5kX2lmKGxpc3QuYmVnaW4oKSwgbGlzdC5lbmQoKSwK
KyAgICBFbnRyeSogc2VsZWN0ZWRFbnRyeSA9IHN0ZDo6ZmluZF9pZihtX3RleHR1cmVzLmJlZ2lu
KCksIG1fdGV4dHVyZXMuZW5kKCksCiAgICAgICAgIFsmc2l6ZV0oRW50cnkmIGVudHJ5KSB7IHJl
dHVybiBlbnRyeS5tX3RleHR1cmUtPnJlZkNvdW50KCkgPT0gMSAmJiBlbnRyeS5tX3RleHR1cmUt
PnNpemUoKSA9PSBzaXplOyB9KTsKIAotICAgIGlmIChzZWxlY3RlZEVudHJ5ID09IGxpc3QuZW5k
KCkpIHsKLSAgICAgICAgbGlzdC5hcHBlbmQoRW50cnkoY3JlYXRlVGV4dHVyZShmbGFncykpKTsK
LSAgICAgICAgc2VsZWN0ZWRFbnRyeSA9ICZsaXN0Lmxhc3QoKTsKKyAgICBpZiAoc2VsZWN0ZWRF
bnRyeSA9PSBtX3RleHR1cmVzLmVuZCgpKSB7CisgICAgICAgIG1fdGV4dHVyZXMuYXBwZW5kKEVu
dHJ5KGNyZWF0ZVRleHR1cmUoZmxhZ3MpKSk7CisgICAgICAgIHNlbGVjdGVkRW50cnkgPSAmbV90
ZXh0dXJlcy5sYXN0KCk7CiAgICAgfQogCiAgICAgc2NoZWR1bGVSZWxlYXNlVW51c2VkVGV4dHVy
ZXMoKTsKQEAgLTcxLDIyICs2OSwxNyBAQCB2b2lkIEJpdG1hcFRleHR1cmVQb29sOjpzY2hlZHVs
ZVJlbGVhc2VVbnVzZWRUZXh0dXJlcygpCiAKIHZvaWQgQml0bWFwVGV4dHVyZVBvb2w6OnJlbGVh
c2VVbnVzZWRUZXh0dXJlc1RpbWVyRmlyZWQoKQogeworICAgIGlmIChtX3RleHR1cmVzLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgLy8gRGVsZXRlIGVudHJpZXMsIHdoaWNoIGhh
dmUgYmVlbiB1bnVzZWQgaW4gcmVsZWFzZVVudXNlZFNlY29uZHNUb2xlcmFuY2UuCiAgICAgTW9u
b3RvbmljVGltZSBtaW5Vc2VkVGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpIC0gcmVsZWFzZVVu
dXNlZFNlY29uZHNUb2xlcmFuY2U7CiAKLSAgICBpZiAoIW1fdGV4dHVyZXMuaXNFbXB0eSgpKSB7
Ci0gICAgICAgIG1fdGV4dHVyZXMucmVtb3ZlQWxsTWF0Y2hpbmcoWyZtaW5Vc2VkVGltZV0oY29u
c3QgRW50cnkmIGVudHJ5KSB7Ci0gICAgICAgICAgICByZXR1cm4gZW50cnkuY2FuQmVSZWxlYXNl
ZChtaW5Vc2VkVGltZSk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIGlmICghbV9hdHRhY2ht
ZW50VGV4dHVyZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIG1fYXR0YWNobWVudFRleHR1cmVzLnJl
bW92ZUFsbE1hdGNoaW5nKFsmbWluVXNlZFRpbWVdKGNvbnN0IEVudHJ5JiBlbnRyeSkgewotICAg
ICAgICAgICAgcmV0dXJuIGVudHJ5LmNhbkJlUmVsZWFzZWQobWluVXNlZFRpbWUpOwotICAgICAg
ICB9KTsKLSAgICB9CisgICAgbV90ZXh0dXJlcy5yZW1vdmVBbGxNYXRjaGluZyhbJm1pblVzZWRU
aW1lXShjb25zdCBFbnRyeSYgZW50cnkpIHsKKyAgICAgICAgcmV0dXJuIGVudHJ5LmNhbkJlUmVs
ZWFzZWQobWluVXNlZFRpbWUpOworICAgIH0pOwogCi0gICAgaWYgKCFtX3RleHR1cmVzLmlzRW1w
dHkoKSB8fCAhbV9hdHRhY2htZW50VGV4dHVyZXMuaXNFbXB0eSgpKQorICAgIGlmICghbV90ZXh0
dXJlcy5pc0VtcHR5KCkpCiAgICAgICAgIHNjaGVkdWxlUmVsZWFzZVVudXNlZFRleHR1cmVzKCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9CaXRtYXBUZXh0dXJlUG9vbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0JpdG1hcFRleHR1cmVQb29sLmgKaW5kZXggMzk2YmNlMWZmZTc4ZjQ1ZDI4ZTEyZDYx
NjRmZWIwMzRiMTllMDlhOS4uYzQyOWIzMmUwZjU3YjlhZWQ0YzYzYzg4Yjk0YzUyODQ1MzY1Nzc1
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0Jp
dG1hcFRleHR1cmVQb29sLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0JpdG1hcFRleHR1cmVQb29sLmgKQEAgLTY3LDcgKzY3LDYgQEAgcHJpdmF0ZToKICNl
bmRpZgogCiAgICAgVmVjdG9yPEVudHJ5PiBtX3RleHR1cmVzOwotICAgIFZlY3RvcjxFbnRyeT4g
bV9hdHRhY2htZW50VGV4dHVyZXM7CiAgICAgUnVuTG9vcDo6VGltZXI8Qml0bWFwVGV4dHVyZVBv
b2w+IG1fcmVsZWFzZVVudXNlZFRleHR1cmVzVGltZXI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBo
aWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcAppbmRleCA4NWY0OTY0ZjRjNDAxYmNiNmY3MWUwMmFh
YjU0Y2JkZTk2ODg4ZmU5Li4yOGFlNjc0NGY4NDE1NjcyZGNiMTk2ZTllZmJmZTVkYjE0MTE3NWIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKQEAgLTUyMiw3
ICs1MjIsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjp1cGRhdGVCYWNraW5n
U3RvcmVJZk5lZWRlZCgpCiAgICAgYmFja2luZ1N0b3JlLT51cGRhdGVDb250ZW50c1NjYWxlKHBh
Z2VTY2FsZUZhY3RvcigpICogZGV2aWNlU2NhbGVGYWN0b3IoKSk7CiAKICAgICBkaXJ0eVJlY3Qu
c2NhbGUocGFnZVNjYWxlRmFjdG9yKCkgKiBkZXZpY2VTY2FsZUZhY3RvcigpKTsKLSAgICBiYWNr
aW5nU3RvcmUtPnVwZGF0ZUNvbnRlbnRzKCp0ZXh0dXJlTWFwcGVyLCB0aGlzLCBtX3NpemUsIGRp
cnR5UmVjdCwgQml0bWFwVGV4dHVyZTo6VXBkYXRlQ2FuTW9kaWZ5T3JpZ2luYWxJbWFnZURhdGEp
OworICAgIGJhY2tpbmdTdG9yZS0+dXBkYXRlQ29udGVudHMoKnRleHR1cmVNYXBwZXIsIHRoaXMs
IG1fc2l6ZSwgZGlydHlSZWN0KTsKIAogICAgIG1fbmVlZHNEaXNwbGF5ID0gZmFsc2U7CiAgICAg
bV9uZWVkc0Rpc3BsYXlSZWN0ID0gSW50UmVjdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJC
YWNraW5nU3RvcmUuY3BwCmluZGV4IGViZWQxOWE4OTFkZDRkOGEyZWJlMjdlZGIyMjI2ZjE5ZmY3
ZmE4OGEuLjAyYjE3NTIxNWRjZDY5ZTcyYTg4M2ZiMWY5NzdjMjA0ZDkxZmM2YjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
QmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5jcHAKQEAgLTE4LDEyICsxOCw5IEBACiAg
Ki8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckJhY2tp
bmdTdG9yZS5oIgogCi0jaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgotI2luY2x1ZGUgIkltYWdl
QnVmZmVyLmgiCi0jaW5jbHVkZSAiVGV4dHVyZU1hcHBlci5oIgorI2luY2x1ZGUgIkZsb2F0UmVj
dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQxLDQgKzM4LDQgQEAgdW5zaWduZWQg
VGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZTo6Y2FsY3VsYXRlRXhwb3NlZFRpbGVFZGdlcyhjb25z
dCBGbG9hdFJlY3QmIHQKICAgICByZXR1cm4gZXhwb3NlZEVkZ2VzOwogfQogCi19Cit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuaAppbmRl
eCAzNTJjN2Q2ZjQ2YTk3NDI2NTBkNDQwMjFhNDdiM2ViMjBhNzQxYjhjLi4yYjIwYzZmMGFmNTc4
MTEyYzkwM2M3NzgyNzY1MTE3NWRjZTNiMzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFj
a2luZ1N0b3JlLmgKQEAgLTE3LDI4ICsxNywyNSBAQAogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgogICovCiAKLSNpZm5kZWYgVGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZV9oCi0jZGVmaW5l
IFRleHR1cmVNYXBwZXJCYWNraW5nU3RvcmVfaAorI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJG
bG9hdFJlY3QuaCIKLSNpbmNsdWRlICJUZXh0dXJlTWFwcGVyLmgiCiAjaW5jbHVkZSAiVGV4dHVy
ZU1hcHBlclBsYXRmb3JtTGF5ZXIuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgR3JhcGhpY3NMYXllcjsKK2NsYXNzIEZsb2F0UmVjdDsK
K2NsYXNzIFRleHR1cmVNYXBwZXI7CiAKLWNsYXNzIFRleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUg
OiBwdWJsaWMgVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIsIHB1YmxpYyBSZWZDb3VudGVkPFRl
eHR1cmVNYXBwZXJCYWNraW5nU3RvcmU+IHsKK2NsYXNzIFRleHR1cmVNYXBwZXJCYWNraW5nU3Rv
cmUgOiBwdWJsaWMgUmVmQ291bnRlZDxUZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlPiwgcHVibGlj
IFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyIHsKIHB1YmxpYzoKLSAgICB2b2lkIHBhaW50VG9U
ZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXImLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0KSBvdmVycmlkZSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IGRyYXdSZXBhaW50Q291bnRlcihUZXh0dXJlTWFwcGVyJiwgaW50IC8qIHJlcGFpbnRDb3VudCAq
LywgY29uc3QgQ29sb3ImLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYpIHsgfQogICAgIHZpcnR1YWwgflRleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUoKSA9IGRl
ZmF1bHQ7CiAKKyAgICB2b2lkIHBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVNYXBwZXImLCBj
b25zdCBGbG9hdFJlY3QmLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0KSBvdmVy
cmlkZSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRyYXdSZXBhaW50Q291bnRlcihUZXh0dXJlTWFw
cGVyJiwgaW50LCBjb25zdCBDb2xvciYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9y
bWF0aW9uTWF0cml4JikgeyB9CisKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdW5zaWduZWQgY2FsY3VsYXRlRXhwb3NlZFRpbGVFZGdlcyhjb25zdCBGbG9hdFJlY3QmIHRv
dGFsUmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCk7CiB9OwogCi19Ci0KLSNlbmRpZiAv
LyBUZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlX2gKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyQ29udGV4dEF0dHJpYnV0ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKaW5kZXggODhj
Njg5YmFiMWM4YWQ1YzhhNzc3OWU4ODdiNTdkOTM1YjNhYjI1Ni4uNWIxN2RmOWJhODQ4NzA5MDYx
ZGJhMjhjMTQ1NWY5ZDkxOWViNWIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJD
b250ZXh0QXR0cmlidXRlcy5jcHAKQEAgLTU2LDEyICs1NiwxMCBAQCBjb25zdCBUZXh0dXJlTWFw
cGVyQ29udGV4dEF0dHJpYnV0ZXMmIFRleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlczo6Z2V0
KCkKIAogICAgICAgICBTdHJpbmcgZXh0ZW5zaW9uc1N0cmluZyhyZWludGVycHJldF9jYXN0PGNv
bnN0IGNoYXIqPihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOwogICAgICAgICBhdHRyaWJ1
dGVzLnN1cHBvcnRzTlBPVFRleHR1cmVzID0gZXh0ZW5zaW9uc1N0cmluZy5jb250YWlucyhBU0NJ
SUxpdGVyYWwoIkdMX09FU190ZXh0dXJlX25wb3QiKSk7Ci0gICAgICAgIGF0dHJpYnV0ZXMuc3Vw
cG9ydHNCR1JBODg4OCA9IGV4dGVuc2lvbnNTdHJpbmcuY29udGFpbnMoQVNDSUlMaXRlcmFsKCJH
TF9FWFRfdGV4dHVyZV9mb3JtYXRfQkdSQTg4ODgiKSk7CiAgICAgICAgIGF0dHJpYnV0ZXMuc3Vw
cG9ydHNVbnBhY2tTdWJpbWFnZSA9IGV4dGVuc2lvbnNTdHJpbmcuY29udGFpbnMoQVNDSUlMaXRl
cmFsKCJHTF9FWFRfdW5wYWNrX3N1YmltYWdlIikpOwogI2Vsc2UKICAgICAgICAgYXR0cmlidXRl
cy5pc0dMRVMyQ29tcGxpYW50ID0gZmFsc2U7CiAgICAgICAgIGF0dHJpYnV0ZXMuc3VwcG9ydHNO
UE9UVGV4dHVyZXMgPSB0cnVlOwotICAgICAgICBhdHRyaWJ1dGVzLnN1cHBvcnRzQkdSQTg4ODgg
PSB0cnVlOwogICAgICAgICBhdHRyaWJ1dGVzLnN1cHBvcnRzVW5wYWNrU3ViaW1hZ2UgPSB0cnVl
OwogI2VuZGlmCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJDb250ZXh0QXR0cmli
dXRlcy5oCmluZGV4IDIwZDdkZTYwODBiZWQxM2IyYTI1MGZiNjAyNjBlNGUzMzlhYTJjNDMuLjg3
NTM4ZmU3ZDM3YzQ5YjBiYjljMjg3ZDU4NzdiMjZlYjQ0Yjg1ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQ29udGV4dEF0
dHJpYnV0ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckNvbnRleHRBdHRyaWJ1dGVzLmgKQEAgLTM1LDcgKzM1LDYgQEAgc3RydWN0
IFRleHR1cmVNYXBwZXJDb250ZXh0QXR0cmlidXRlcyB7CiAgICAgYm9vbCBpbml0aWFsaXplZCB7
IGZhbHNlIH07CiAgICAgYm9vbCBpc0dMRVMyQ29tcGxpYW50IHsgZmFsc2UgfTsKICAgICBib29s
IHN1cHBvcnRzTlBPVFRleHR1cmVzIHsgZmFsc2UgfTsKLSAgICBib29sIHN1cHBvcnRzQkdSQTg4
ODggeyBmYWxzZSB9OwogICAgIGJvb2wgc3VwcG9ydHNVbnBhY2tTdWJpbWFnZSB7IGZhbHNlIH07
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCmluZGV4IDdiYTJlN2Y2NzAwY2NiNjY2NjFkZmEw
Y2E2OGVmMTc3N2Y2OTI4N2YuLmFkNjhmMmJkNjBmNWMxZDQzZTcxNGFlMmM3N2NkZjYxM2Y5YWM0
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCkBAIC0zMDAsNyArMzAwLDcgQEAgdm9pZCBUZXh0
dXJlTWFwcGVyR0w6OmRyYXdOdW1iZXIoaW50IG51bWJlciwgY29uc3QgQ29sb3ImIGNvbG9yLCBj
b25zdCBGbG9hdFBvaW4KICAgICBSZWZQdHI8Qml0bWFwVGV4dHVyZT4gdGV4dHVyZSA9IGFjcXVp
cmVUZXh0dXJlRnJvbVBvb2woc2l6ZSk7CiAgICAgY29uc3QgdW5zaWduZWQgY2hhciogYml0cyA9
IGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X2RhdGEoc3VyZmFjZSk7CiAgICAgaW50IHN0cmlkZSA9
IGNhaXJvX2ltYWdlX3N1cmZhY2VfZ2V0X3N0cmlkZShzdXJmYWNlKTsKLSAgICBzdGF0aWNfY2Fz
dDxCaXRtYXBUZXh0dXJlR0wqPih0ZXh0dXJlLmdldCgpKS0+dXBkYXRlQ29udGVudHNOb1N3aXp6
bGUoYml0cywgc291cmNlUmVjdCwgSW50UG9pbnQ6Onplcm8oKSwgc3RyaWRlKTsKKyAgICBzdGF0
aWNfY2FzdDxCaXRtYXBUZXh0dXJlR0wqPih0ZXh0dXJlLmdldCgpKS0+dXBkYXRlQ29udGVudHMo
Yml0cywgc291cmNlUmVjdCwgSW50UG9pbnQ6Onplcm8oKSwgc3RyaWRlKTsKICAgICBkcmF3VGV4
dHVyZSgqdGV4dHVyZSwgdGFyZ2V0UmVjdCwgbW9kZWxWaWV3TWF0cml4LCAxLjBmLCBBbGxFZGdl
cyk7CiAKICAgICBjYWlyb19zdXJmYWNlX2Rlc3Ryb3koc3VyZmFjZSk7CkBAIC00NjAsNyArNDYw
LDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlKGNvbnN0IEJpdG1hcFRleHR1
cmUmIHRleHR1cmUsIGNvbnN0IEZsb2F0UmVjdCYKICAgICBjb25zdCBCaXRtYXBUZXh0dXJlR0wm
IHRleHR1cmVHTCA9IHN0YXRpY19jYXN0PGNvbnN0IEJpdG1hcFRleHR1cmVHTCY+KHRleHR1cmUp
OwogICAgIFNldEZvclNjb3BlPGNvbnN0IEJpdG1hcFRleHR1cmVHTDo6RmlsdGVySW5mbyo+IGZp
bHRlckluZm8oZGF0YSgpLmZpbHRlckluZm8sIHRleHR1cmVHTC5maWx0ZXJJbmZvKCkpOwogCi0g
ICAgZHJhd1RleHR1cmUodGV4dHVyZUdMLmlkKCksIHRleHR1cmVHTC5pc09wYXF1ZSgpID8gMCA6
IFNob3VsZEJsZW5kLCB0ZXh0dXJlR0wuc2l6ZSgpLCB0YXJnZXRSZWN0LCBtYXRyaXgsIG9wYWNp
dHksIGV4cG9zZWRFZGdlcyk7CisgICAgZHJhd1RleHR1cmUodGV4dHVyZUdMLmlkKCksIHRleHR1
cmVHTC5jb2xvckNvbnZlcnRGbGFncygpIHwgKHRleHR1cmVHTC5pc09wYXF1ZSgpID8gMCA6IFNo
b3VsZEJsZW5kKSwgdGV4dHVyZUdMLnNpemUoKSwgdGFyZ2V0UmVjdCwgbWF0cml4LCBvcGFjaXR5
LCBleHBvc2VkRWRnZXMpOwogfQogCiB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmUo
R0x1aW50IHRleHR1cmUsIEZsYWdzIGZsYWdzLCBjb25zdCBJbnRTaXplJiB0ZXh0dXJlU2l6ZSwg
Y29uc3QgRmxvYXRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
bW9kZWxWaWV3TWF0cml4LCBmbG9hdCBvcGFjaXR5LCB1bnNpZ25lZCBleHBvc2VkRWRnZXMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckdMLmgKaW5kZXggMzY5MWFhYTllMGY2YzAxZWMxZTgwNjkzMWMxZDFiOTIxYjA0
YjcwMS4uZTFlMzkwNWQzM2U3MjczMWUxOTNkMjZlZmMzYjFiY2NkZWU5NzM2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJH
TC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyR0wuaApAQCAtNDQsNiArNDQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+VGV4dHVy
ZU1hcHBlckdMKCk7CiAKICAgICBlbnVtIEZsYWcgeworICAgICAgICBOb0ZsYWcgPSAweDAwLAog
ICAgICAgICBTaG91bGRCbGVuZCA9IDB4MDEsCiAgICAgICAgIFNob3VsZEZsaXBUZXh0dXJlID0g
MHgwMiwKICAgICAgICAgU2hvdWxkVXNlQVJCVGV4dHVyZVJlY3QgPSAweDA0LApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJM
YXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckxheWVyLmNwcAppbmRleCAzODFlMzE4YTI0Y2I3ODA5MGE3YzkzMDQ1Yjk1NDg5YjYz
YWIxZDE0Li44NTQ4OTcxNWZhZmQxYmYzZTlhNmEwMTRlZTM0YjZmNTQwNmZkNWZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckxheWVyLmNwcApAQCAtMzY4LDcgKzM2OCw3IEBAIHZvaWQgVGV4dHVyZU1h
cHBlckxheWVyOjphcHBseU1hc2soY29uc3QgVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYgb3B0
aW9ucykKIAogUmVmUHRyPEJpdG1hcFRleHR1cmU+IFRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnRJ
bnRvU3VyZmFjZShjb25zdCBUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJiBvcHRpb25zLCBjb25z
dCBJbnRTaXplJiBzaXplKQogewotICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiBzdXJmYWNlID0g
b3B0aW9ucy50ZXh0dXJlTWFwcGVyLmFjcXVpcmVUZXh0dXJlRnJvbVBvb2woc2l6ZSwgQml0bWFw
VGV4dHVyZTo6U3VwcG9ydHNBbHBoYSB8IEJpdG1hcFRleHR1cmU6OkZCT0F0dGFjaG1lbnQpOwor
ICAgIFJlZlB0cjxCaXRtYXBUZXh0dXJlPiBzdXJmYWNlID0gb3B0aW9ucy50ZXh0dXJlTWFwcGVy
LmFjcXVpcmVUZXh0dXJlRnJvbVBvb2woc2l6ZSwgQml0bWFwVGV4dHVyZTo6U3VwcG9ydHNBbHBo
YSk7CiAgICAgVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyBwYWludE9wdGlvbnMob3B0aW9ucyk7
CiAgICAgcGFpbnRPcHRpb25zLnN1cmZhY2UgPSBzdXJmYWNlOwogICAgIG9wdGlvbnMudGV4dHVy
ZU1hcHBlci5iaW5kU3VyZmFjZShzdXJmYWNlLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXll
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJQbGF0Zm9ybUxheWVyLmgKaW5kZXggZjk1ZDcwZjVhODhjYmVkMDZlYjRlNGIzZTBmNTMyZjVk
NDc4YTYzYy4uMTJmNTZhYjgxM2JhNzkyN2RjZWY0ZGViNDU0ZGI1NmYxOWEzMDQzMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJQbGF0Zm9ybUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyLmgKQEAgLTE3LDggKzE3LDcgQEAKICAg
ICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICovCiAKLSNpZm5kZWYgVGV4dHVyZU1hcHBl
clBsYXRmb3JtTGF5ZXJfaAotI2RlZmluZSBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcl9oCisj
cHJhZ21hIG9uY2UKIAogI2lmIFVTRShURVhUVVJFX01BUFBFUikKIApAQCAtMzUsMjggKzM0LDI1
IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIHNldFBsYXRmb3JtTGF5ZXJOZWVkc0Rp
c3BsYXkoKSA9IDA7CiAgICAgfTsKIAotICAgIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyKCkg
OiBtX2NsaWVudCgwKSB7IH0KKyAgICBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcigpID0gZGVm
YXVsdDsKICAgICB2aXJ0dWFsIH5UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcigpID0gZGVmYXVs
dDsKKwogICAgIHZpcnR1YWwgdm9pZCBwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVy
JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIG1vZGVsVmll
d01hdHJpeCA9IFRyYW5zZm9ybWF0aW9uTWF0cml4KCksIGZsb2F0IG9wYWNpdHkgPSAxLjApID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgc3dhcEJ1ZmZlcnMoKSB7IH0KKwogICAgIHZpcnR1YWwgdm9p
ZCBkcmF3Qm9yZGVyKFRleHR1cmVNYXBwZXImIHRleHR1cmVNYXBwZXIsIGNvbnN0IENvbG9yJiBj
b2xvciwgZmxvYXQgYm9yZGVyV2lkdGgsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29u
c3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSkKICAgICB7CiAgICAgICAgIHRleHR1
cmVNYXBwZXIuZHJhd0JvcmRlcihjb2xvciwgYm9yZGVyV2lkdGgsIHRhcmdldFJlY3QsIHRyYW5z
Zm9ybSk7CiAgICAgfQotICAgIHZvaWQgc2V0Q2xpZW50KFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxh
eWVyOjpDbGllbnQqIGNsaWVudCkKLSAgICB7Ci0gICAgICAgIG1fY2xpZW50ID0gY2xpZW50Owot
ICAgIH0KKworICAgIHZvaWQgc2V0Q2xpZW50KFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyOjpD
bGllbnQqIGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVudDsgfQogCiBwcm90ZWN0ZWQ6CiAgICAg
VGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXI6OkNsaWVudCogY2xpZW50KCkgeyByZXR1cm4gbV9j
bGllbnQ7IH0KIAogcHJpdmF0ZToKLSAgICBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcjo6Q2xp
ZW50KiBtX2NsaWVudDsKKyAgICBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcjo6Q2xpZW50KiBt
X2NsaWVudCB7IG51bGxwdHIgfTsKIH07CiAKLX07Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBVU0UoVEVYVFVSRV9NQVBQRVIpCi0KLSNlbmRpZiAvLyBUZXh0dXJlTWFwcGVy
UGxhdGZvcm1MYXllcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXJCdWZmZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJQbGF0Zm9ybUxh
eWVyQnVmZmVyLmNwcAppbmRleCA4YmIxZTg1YTQ3MWY2OTc5N2RhNTE0NjJhNTMzMmM4YWQyYzBk
Yjc2Li4wODM0OTg4Yjc0ZjI2ZTc5NzFiN2NjOTU3ZDk4OWQxOGVmYmQ2MDNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclBs
YXRmb3JtTGF5ZXJCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlci5jcHAKQEAgLTcxLDcg
KzcxLDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcjo6cGFpbnRUb1Rl
eHR1cmVNYXBwZXIoVGV4dHVyZU1hcHBlciYgdGV4dHUKICAgICBpZiAobV9oYXNNYW5hZ2VkVGV4
dHVyZSkgewogICAgICAgICBBU1NFUlQobV90ZXh0dXJlKTsKICAgICAgICAgQml0bWFwVGV4dHVy
ZUdMKiB0ZXh0dXJlR0wgPSBzdGF0aWNfY2FzdDxCaXRtYXBUZXh0dXJlR0wqPihtX3RleHR1cmUu
Z2V0KCkpOwotICAgICAgICB0ZXhtYXBHTC5kcmF3VGV4dHVyZSh0ZXh0dXJlR0wtPmlkKCksIG1f
ZXh0cmFGbGFncywgdGV4dHVyZUdMLT5zaXplKCksIHRhcmdldFJlY3QsIG1vZGVsVmlld01hdHJp
eCwgb3BhY2l0eSk7CisgICAgICAgIHRleG1hcEdMLmRyYXdUZXh0dXJlKHRleHR1cmVHTC0+aWQo
KSwgbV9leHRyYUZsYWdzIHwgdGV4dHVyZUdMLT5jb2xvckNvbnZlcnRGbGFncygpLCB0ZXh0dXJl
R0wtPnNpemUoKSwgdGFyZ2V0UmVjdCwgbW9kZWxWaWV3TWF0cml4LCBvcGFjaXR5KTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZS5jcHAKaW5kZXggMzkzNjU2
NzNlNTYwN2MyODAyN2I0NjJjYzIxYzI1YjhlMGQ2MmNkOS4uOWY0YWNjNDA1MDZkZWM3ZmE1MjZl
OWEwOGY3MWRiOTYwMzdhMmMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGUuY3BwCkBAIC0yNyw3
ICsyNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgR3JhcGhpY3NMYXllcjsKIAot
dm9pZCBUZXh0dXJlTWFwcGVyVGlsZTo6dXBkYXRlQ29udGVudHMoVGV4dHVyZU1hcHBlciYgdGV4
dHVyZU1hcHBlciwgSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QsIEJpdG1h
cFRleHR1cmU6OlVwZGF0ZUNvbnRlbnRzRmxhZyB1cGRhdGVDb250ZW50c0ZsYWcpCit2b2lkIFRl
eHR1cmVNYXBwZXJUaWxlOjp1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVyJiB0ZXh0dXJlTWFw
cGVyLCBJbWFnZSogaW1hZ2UsIGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCkKIHsKICAgICBJbnRS
ZWN0IHRhcmdldFJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KG1fcmVjdCk7CiAgICAgdGFyZ2V0UmVj
dC5pbnRlcnNlY3QoZGlydHlSZWN0KTsKQEAgLTQ1LDEwICs0NSwxMCBAQCB2b2lkIFRleHR1cmVN
YXBwZXJUaWxlOjp1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVyJiB0ZXh0dXJlTWFwcGVyLCBJ
bWFnZSogaW1hZwogICAgICAgICBtX3RleHR1cmUtPnJlc2V0KHRhcmdldFJlY3Quc2l6ZSgpLCBp
bWFnZS0+Y3VycmVudEZyYW1lS25vd25Ub0JlT3BhcXVlKCkgPyAwIDogQml0bWFwVGV4dHVyZTo6
U3VwcG9ydHNBbHBoYSk7CiAgICAgfQogCi0gICAgbV90ZXh0dXJlLT51cGRhdGVDb250ZW50cyhp
bWFnZSwgdGFyZ2V0UmVjdCwgc291cmNlT2Zmc2V0LCB1cGRhdGVDb250ZW50c0ZsYWcpOworICAg
IG1fdGV4dHVyZS0+dXBkYXRlQ29udGVudHMoaW1hZ2UsIHRhcmdldFJlY3QsIHNvdXJjZU9mZnNl
dCk7CiB9CiAKLXZvaWQgVGV4dHVyZU1hcHBlclRpbGU6OnVwZGF0ZUNvbnRlbnRzKFRleHR1cmVN
YXBwZXImIHRleHR1cmVNYXBwZXIsIEdyYXBoaWNzTGF5ZXIqIHNvdXJjZUxheWVyLCBjb25zdCBJ
bnRSZWN0JiBkaXJ0eVJlY3QsIEJpdG1hcFRleHR1cmU6OlVwZGF0ZUNvbnRlbnRzRmxhZyB1cGRh
dGVDb250ZW50c0ZsYWcsIGZsb2F0IHNjYWxlKQordm9pZCBUZXh0dXJlTWFwcGVyVGlsZTo6dXBk
YXRlQ29udGVudHMoVGV4dHVyZU1hcHBlciYgdGV4dHVyZU1hcHBlciwgR3JhcGhpY3NMYXllciog
c291cmNlTGF5ZXIsIGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCwgZmxvYXQgc2NhbGUpCiB7CiAg
ICAgSW50UmVjdCB0YXJnZXRSZWN0ID0gZW5jbG9zaW5nSW50UmVjdChtX3JlY3QpOwogICAgIHRh
cmdldFJlY3QuaW50ZXJzZWN0KGRpcnR5UmVjdCk7CkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgVGV4
dHVyZU1hcHBlclRpbGU6OnVwZGF0ZUNvbnRlbnRzKFRleHR1cmVNYXBwZXImIHRleHR1cmVNYXBw
ZXIsIEdyYXBoaWNzTGF5CiAgICAgICAgIG1fdGV4dHVyZS0+cmVzZXQodGFyZ2V0UmVjdC5zaXpl
KCksIEJpdG1hcFRleHR1cmU6OlN1cHBvcnRzQWxwaGEpOwogICAgIH0KIAotICAgIG1fdGV4dHVy
ZS0+dXBkYXRlQ29udGVudHModGV4dHVyZU1hcHBlciwgc291cmNlTGF5ZXIsIHRhcmdldFJlY3Qs
IHNvdXJjZU9mZnNldCwgdXBkYXRlQ29udGVudHNGbGFnLCBzY2FsZSk7CisgICAgbV90ZXh0dXJl
LT51cGRhdGVDb250ZW50cyh0ZXh0dXJlTWFwcGVyLCBzb3VyY2VMYXllciwgdGFyZ2V0UmVjdCwg
c291cmNlT2Zmc2V0LCBzY2FsZSk7CiB9CiAKIHZvaWQgVGV4dHVyZU1hcHBlclRpbGU6OnBhaW50
KFRleHR1cmVNYXBwZXImIHRleHR1cmVNYXBwZXIsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
JiB0cmFuc2Zvcm0sIGZsb2F0IG9wYWNpdHksIGNvbnN0IHVuc2lnbmVkIGV4cG9zZWRFZGdlcykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyVGlsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJUaWxlLmgKaW5kZXggNDhlZGQyYWUwYmM2YjhmMjI2MzlmMDc3Y2U2NDYz
Zjc0M2Q0NmJhNS4uMmY0ZDg5ZmJiNWVlNDdiZTA4ZGM5NmIyNGE2ZTZhNDQ1ZjMwOWYyMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJUaWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJUaWxlLmgKQEAgLTM2LDggKzM2LDggQEAgcHVibGljOgogICAgIGlubGlu
ZSB2b2lkIHNldFRleHR1cmUoQml0bWFwVGV4dHVyZSogdGV4dHVyZSkgeyBtX3RleHR1cmUgPSB0
ZXh0dXJlOyB9CiAgICAgaW5saW5lIHZvaWQgc2V0UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3Qp
IHsgbV9yZWN0ID0gcmVjdDsgfQogCi0gICAgdm9pZCB1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFw
cGVyJiwgSW1hZ2UqLCBjb25zdCBJbnRSZWN0JiwgQml0bWFwVGV4dHVyZTo6VXBkYXRlQ29udGVu
dHNGbGFnIFVwZGF0ZUNhbk1vZGlmeU9yaWdpbmFsSW1hZ2VEYXRhKTsKLSAgICB2b2lkIHVwZGF0
ZUNvbnRlbnRzKFRleHR1cmVNYXBwZXImLCBHcmFwaGljc0xheWVyKiwgY29uc3QgSW50UmVjdCYs
IEJpdG1hcFRleHR1cmU6OlVwZGF0ZUNvbnRlbnRzRmxhZyBVcGRhdGVDYW5Nb2RpZnlPcmlnaW5h
bEltYWdlRGF0YSwgZmxvYXQgc2NhbGUgPSAxKTsKKyAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzKFRl
eHR1cmVNYXBwZXImLCBJbWFnZSosIGNvbnN0IEludFJlY3QmKTsKKyAgICB2b2lkIHVwZGF0ZUNv
bnRlbnRzKFRleHR1cmVNYXBwZXImLCBHcmFwaGljc0xheWVyKiwgY29uc3QgSW50UmVjdCYsIGZs
b2F0IHNjYWxlID0gMSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHBhaW50KFRl
eHR1cmVNYXBwZXImLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0LCBjb25zdCB1
bnNpZ25lZCBleHBvc2VkRWRnZXMpOwogICAgIHZpcnR1YWwgflRleHR1cmVNYXBwZXJUaWxlKCkg
PSBkZWZhdWx0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3Rv
cmUuY3BwCmluZGV4IDNhMWFhYzI4OThjOGQ3M2MxYzMyZTg3ZDY0ZjU2ZWU1MGU1ZmNjMzguLmFh
OGM0OWIyZDc4NDAxYTVjNjRiNzJlNmQ3NDRlM2Y1NWNhYWJmNGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNr
aW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuY3BwCkBAIC0zNCw3ICszNCw3IEBAIHZv
aWQgVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjp1cGRhdGVDb250ZW50c0Zyb21JbWFn
ZUlmTmVlZGVkKFRleHR1cmVNYXBwCiAgICAgaWYgKCFtX2ltYWdlKQogICAgICAgICByZXR1cm47
CiAKLSAgICB1cGRhdGVDb250ZW50cyh0ZXh0dXJlTWFwcGVyLCBtX2ltYWdlLmdldCgpLCBtX2lt
YWdlLT5zaXplKCksIGVuY2xvc2luZ0ludFJlY3QobV9pbWFnZS0+cmVjdCgpKSwgQml0bWFwVGV4
dHVyZTo6VXBkYXRlQ2Fubm90TW9kaWZ5T3JpZ2luYWxJbWFnZURhdGEpOworICAgIHVwZGF0ZUNv
bnRlbnRzKHRleHR1cmVNYXBwZXIsIG1faW1hZ2UuZ2V0KCksIG1faW1hZ2UtPnNpemUoKSwgZW5j
bG9zaW5nSW50UmVjdChtX2ltYWdlLT5yZWN0KCkpKTsKIAogICAgIGlmIChtX2ltYWdlLT5pbWFn
ZU9ic2VydmVyKCkpCiAgICAgICAgIG1faW1hZ2UtPmltYWdlT2JzZXJ2ZXIoKS0+ZGlkRHJhdygq
bV9pbWFnZSk7CkBAIC0xNDksMTggKzE0OSwxOCBAQCB2b2lkIFRleHR1cmVNYXBwZXJUaWxlZEJh
Y2tpbmdTdG9yZTo6Y3JlYXRlT3JEZXN0cm95VGlsZXNJZk5lZWRlZChjb25zdCBGbG9hdFNpegog
ICAgIH0KIH0KIAotdm9pZCBUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNv
bnRlbnRzKFRleHR1cmVNYXBwZXImIHRleHR1cmVNYXBwZXIsIEltYWdlKiBpbWFnZSwgY29uc3Qg
RmxvYXRTaXplJiB0b3RhbFNpemUsIGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCwgQml0bWFwVGV4
dHVyZTo6VXBkYXRlQ29udGVudHNGbGFnIHVwZGF0ZUNvbnRlbnRzRmxhZykKK3ZvaWQgVGV4dHVy
ZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjp1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVyJiB0
ZXh0dXJlTWFwcGVyLCBJbWFnZSogaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgdG90YWxTaXplLCBj
b25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpCiB7CiAgICAgY3JlYXRlT3JEZXN0cm95VGlsZXNJZk5l
ZWRlZCh0b3RhbFNpemUsIHRleHR1cmVNYXBwZXIubWF4VGV4dHVyZVNpemUoKSwgIWltYWdlLT5j
dXJyZW50RnJhbWVLbm93blRvQmVPcGFxdWUoKSk7CiAgICAgZm9yIChhdXRvJiB0aWxlIDogbV90
aWxlcykKLSAgICAgICAgdGlsZS51cGRhdGVDb250ZW50cyh0ZXh0dXJlTWFwcGVyLCBpbWFnZSwg
ZGlydHlSZWN0LCB1cGRhdGVDb250ZW50c0ZsYWcpOworICAgICAgICB0aWxlLnVwZGF0ZUNvbnRl
bnRzKHRleHR1cmVNYXBwZXIsIGltYWdlLCBkaXJ0eVJlY3QpOwogfQogCi12b2lkIFRleHR1cmVN
YXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6dXBkYXRlQ29udGVudHMoVGV4dHVyZU1hcHBlciYgdGV4
dHVyZU1hcHBlciwgR3JhcGhpY3NMYXllciogc291cmNlTGF5ZXIsIGNvbnN0IEZsb2F0U2l6ZSYg
dG90YWxTaXplLCBjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QsIEJpdG1hcFRleHR1cmU6OlVwZGF0
ZUNvbnRlbnRzRmxhZyB1cGRhdGVDb250ZW50c0ZsYWcpCit2b2lkIFRleHR1cmVNYXBwZXJUaWxl
ZEJhY2tpbmdTdG9yZTo6dXBkYXRlQ29udGVudHMoVGV4dHVyZU1hcHBlciYgdGV4dHVyZU1hcHBl
ciwgR3JhcGhpY3NMYXllciogc291cmNlTGF5ZXIsIGNvbnN0IEZsb2F0U2l6ZSYgdG90YWxTaXpl
LCBjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpCiB7CiAgICAgY3JlYXRlT3JEZXN0cm95VGlsZXNJ
Zk5lZWRlZCh0b3RhbFNpemUsIHRleHR1cmVNYXBwZXIubWF4VGV4dHVyZVNpemUoKSwgdHJ1ZSk7
CiAgICAgZm9yIChhdXRvJiB0aWxlIDogbV90aWxlcykKLSAgICAgICAgdGlsZS51cGRhdGVDb250
ZW50cyh0ZXh0dXJlTWFwcGVyLCBzb3VyY2VMYXllciwgZGlydHlSZWN0LCB1cGRhdGVDb250ZW50
c0ZsYWcsIG1fY29udGVudHNTY2FsZSk7CisgICAgICAgIHRpbGUudXBkYXRlQ29udGVudHModGV4
dHVyZU1hcHBlciwgc291cmNlTGF5ZXIsIGRpcnR5UmVjdCwgbV9jb250ZW50c1NjYWxlKTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJUaWxl
ZEJhY2tpbmdTdG9yZS5oCmluZGV4IDNhYWRiYWNiNDlmZmM0NzJiZmMxMTg2ZTRjMWMzNzQ1NTRk
NDYwNDguLjI0MGU5MjRmY2M1NDhiNGIyZjMyNjEwMmU3Njk3NjgyNmJiNmUzYjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
VGlsZWRCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlLmgKQEAgLTQwLDggKzQwLDgg
QEAgcHVibGljOgogICAgIHZvaWQgZHJhd1JlcGFpbnRDb3VudGVyKFRleHR1cmVNYXBwZXImLCBp
bnQgcmVwYWludENvdW50LCBjb25zdCBDb2xvciYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFRy
YW5zZm9ybWF0aW9uTWF0cml4Jikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRz
U2NhbGUoZmxvYXQpOwotICAgIHZvaWQgdXBkYXRlQ29udGVudHMoVGV4dHVyZU1hcHBlciYsIElt
YWdlKiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgSW50UmVjdCYsIEJpdG1hcFRleHR1cmU6OlVw
ZGF0ZUNvbnRlbnRzRmxhZyk7Ci0gICAgdm9pZCB1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVy
JiwgR3JhcGhpY3NMYXllciosIGNvbnN0IEZsb2F0U2l6ZSYsIGNvbnN0IEludFJlY3QmLCBCaXRt
YXBUZXh0dXJlOjpVcGRhdGVDb250ZW50c0ZsYWcpOworICAgIHZvaWQgdXBkYXRlQ29udGVudHMo
VGV4dHVyZU1hcHBlciYsIEltYWdlKiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgSW50UmVjdCYp
OworICAgIHZvaWQgdXBkYXRlQ29udGVudHMoVGV4dHVyZU1hcHBlciYsIEdyYXBoaWNzTGF5ZXIq
LCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBJbnRSZWN0Jik7CiAKICAgICB2b2lkIHNldENvbnRl
bnRzVG9JbWFnZShJbWFnZSogaW1hZ2UpIHsgbV9pbWFnZSA9IGltYWdlOyB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tCmlu
ZGV4IGNkODgxNzY1ZjI3OThiZGY3NmZmMTY2ODAzZDhhNzgwOGYxMTFlMGQuLjIzMTIxZDg2ODVk
NjczY2U4NzQ0ZmQ2ZDRkMmFjMzY3ZTc2NmFhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbQpAQCAtNDUsNyArNDUsNyBA
QAogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdI
YXNoLmg+CiAKLSNkZWZpbmUgUEFTVEVCT0FSRF9TVVBQT1JUU19JVEVNX1BST1ZJREVSUyAoUExB
VEZPUk0oSU9TKSAmJiAhKFBMQVRGT1JNKFdBVENIT1MpIHx8IFBMQVRGT1JNKEFQUExFVFYpKSkK
KyNkZWZpbmUgUEFTVEVCT0FSRF9TVVBQT1JUU19JVEVNX1BST1ZJREVSUyAoUExBVEZPUk0oSU9T
KSAmJiAhKFBMQVRGT1JNKFdBVENIT1MpIHx8IFBMQVRGT1JNKEFQUExFVFYpIHx8IEVOQUJMRShN
SU5JTUFMX1NJTVVMQVRPUikpKQogCiBTT0ZUX0xJTktfRlJBTUVXT1JLKFVJS2l0KQogU09GVF9M
SU5LX0NMQVNTKFVJS2l0LCBVSUltYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyQ29jb2EuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1By
b3ZpZGVyQ29jb2EuY3BwCmluZGV4IGRjN2QxNzkzZTZiNjUwMjAzNjkyZjhhMWUxZTkwNTE5NThm
YmYyOTIuLmRiMWFkZWM0ZjMxOWRiYTFhNzJmZWE0M2ZlYjdlMzE4NzU2N2ViNzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENQcm92aWRlckNvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJDb2NvYS5jcHAKQEAgLTI5LDYgKzI5LDcg
QEAKICNpZiBVU0UoTElCV0VCUlRDKQogI2luY2x1ZGUgPHdlYnJ0Yy9tZWRpYS9lbmdpbmUvd2Vi
cnRjdmlkZW9kZWNvZGVyZmFjdG9yeS5oPgogI2luY2x1ZGUgPHdlYnJ0Yy9tZWRpYS9lbmdpbmUv
d2VicnRjdmlkZW9lbmNvZGVyZmFjdG9yeS5oPgorI2luY2x1ZGUgPHdlYnJ0Yy9zZGsvV2ViS2l0
L1dlYktpdFV0aWxpdGllcy5oPgogI2luY2x1ZGUgPHd0Zi9kYXJ3aW4vV2Vha0xpbmtpbmcuaD4K
ICNlbmRpZgogCkBAIC00Nyw0OSArNDgsMjYgQEAgVW5pcXVlUmVmPExpYldlYlJUQ1Byb3ZpZGVy
PiBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlKCkKIAogTGliV2ViUlRDUHJvdmlkZXJDb2NvYTo6
fkxpYldlYlJUQ1Byb3ZpZGVyQ29jb2EoKQogewotICAgIGlmIChtX2VuY29kZXJGYWN0b3J5KQot
ICAgICAgICBtX2VuY29kZXJGYWN0b3J5LT5DbGVhckRlc3RydWN0b3JPYnNlcnZlcigpOwotICAg
IGlmIChtX2RlY29kZXJGYWN0b3J5KQotICAgICAgICBtX2RlY29kZXJGYWN0b3J5LT5DbGVhckRl
c3RydWN0b3JPYnNlcnZlcigpOwogfQogCiB2b2lkIExpYldlYlJUQ1Byb3ZpZGVyQ29jb2E6OnNl
dEgyNjRIYXJkd2FyZUVuY29kZXJBbGxvd2VkKGJvb2wgYWxsb3dlZCkKIHsKLSAgICBtX2gyNjRI
YXJkd2FyZUVuY29kZXJBbGxvd2VkID0gYWxsb3dlZDsKLSNpZiBQTEFURk9STShNQUMpCi0gICAg
aWYgKG1fZW5jb2RlckZhY3RvcnkpCi0gICAgICAgIG1fZW5jb2RlckZhY3RvcnktPnNldEgyNjRI
YXJkd2FyZUVuY29kZXJBbGxvd2VkKGFsbG93ZWQpOwotI2VuZGlmCisgICAgd2VicnRjOjpzZXRI
MjY0SGFyZHdhcmVFbmNvZGVyQWxsb3dlZChhbGxvd2VkKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRy
PHdlYnJ0Yzo6VmlkZW9EZWNvZGVyRmFjdG9yeT4gTGliV2ViUlRDUHJvdmlkZXJDb2NvYTo6Y3Jl
YXRlRGVjb2RlckZhY3RvcnkoKQogewotICAgIEFTU0VSVCghbV9kZWNvZGVyRmFjdG9yeSk7Ci0g
ICAgYXV0byBkZWNvZGVyRmFjdG9yeSA9IHN0ZDo6bWFrZV91bmlxdWU8d2VicnRjOjpWaWRlb1Rv
b2xib3hWaWRlb0RlY29kZXJGYWN0b3J5Pih0aGlzKTsKLSAgICBtX2RlY29kZXJGYWN0b3J5ID0g
ZGVjb2RlckZhY3RvcnkuZ2V0KCk7Ci0KLSAgICByZXR1cm4gV1RGTW92ZShkZWNvZGVyRmFjdG9y
eSk7CisgICAgcmV0dXJuIHdlYnJ0Yzo6Y3JlYXRlVmlkZW9Ub29sYm94RGVjb2RlckZhY3Rvcnko
KTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9FbmNvZGVyRmFjdG9yeT4gTGli
V2ViUlRDUHJvdmlkZXJDb2NvYTo6Y3JlYXRlRW5jb2RlckZhY3RvcnkoKQogewotICAgIEFTU0VS
VCghbV9lbmNvZGVyRmFjdG9yeSk7Ci0gICAgYXV0byBlbmNvZGVyRmFjdG9yeSA9IHN0ZDo6bWFr
ZV91bmlxdWU8d2VicnRjOjpWaWRlb1Rvb2xib3hWaWRlb0VuY29kZXJGYWN0b3J5Pih0aGlzKTsK
LSAgICBtX2VuY29kZXJGYWN0b3J5ID0gZW5jb2RlckZhY3RvcnkuZ2V0KCk7Ci0KLSNpZiBQTEFU
Rk9STShNQUMpCi0gICAgbV9lbmNvZGVyRmFjdG9yeS0+c2V0SDI2NEhhcmR3YXJlRW5jb2RlckFs
bG93ZWQobV9oMjY0SGFyZHdhcmVFbmNvZGVyQWxsb3dlZCk7Ci0jZW5kaWYKLQotICAgIHJldHVy
biBXVEZNb3ZlKGVuY29kZXJGYWN0b3J5KTsKKyAgICByZXR1cm4gd2VicnRjOjpjcmVhdGVWaWRl
b1Rvb2xib3hFbmNvZGVyRmFjdG9yeSgpOwogfQogCiB2b2lkIExpYldlYlJUQ1Byb3ZpZGVyQ29j
b2E6OnNldEFjdGl2ZShib29sIHZhbHVlKQogewotICAgIGlmIChtX2RlY29kZXJGYWN0b3J5KQot
ICAgICAgICBtX2RlY29kZXJGYWN0b3J5LT5TZXRBY3RpdmUodmFsdWUpOwotICAgIGlmIChtX2Vu
Y29kZXJGYWN0b3J5KQotICAgICAgICBtX2VuY29kZXJGYWN0b3J5LT5TZXRBY3RpdmUodmFsdWUp
OworICAgIHdlYnJ0Yzo6c2V0QXBwbGljYXRpb25TdGF0dXModmFsdWUpOwogfQogCiAjZW5kaWYg
Ly8gVVNFKExJQldFQlJUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlckNvY29hLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXJDb2Nv
YS5oCmluZGV4IDZjNDk1MGVmM2I1MTViNDNlOTM3ZDMyNjIyYmQ5OGMxZjJiNTI5ZjguLjBjZGI4
YTAyN2RmZWNhNWRlZTQwNDlkOTk3MjgzMGExMjJlY2I2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlckNv
Y29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1Byb3ZpZGVyQ29jb2EuaApAQCAtMzQsNyArMzQsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIFdFQkNPUkVfRVhQT1JUIExpYldlYlJUQ1Byb3ZpZGVyQ29jb2Eg
OiBwdWJsaWMgTGliV2ViUlRDUHJvdmlkZXIsIHB1YmxpYyB3ZWJydGM6OlZpZGVvVG9vbGJveFZp
ZGVvRGVjb2RlckZhY3Rvcnk6OkRlc3RydWN0b3JPYnNlcnZlciwgcHVibGljIHdlYnJ0Yzo6Vmlk
ZW9Ub29sYm94VmlkZW9FbmNvZGVyRmFjdG9yeTo6RGVzdHJ1Y3Rvck9ic2VydmVyIHsKK2NsYXNz
IFdFQkNPUkVfRVhQT1JUIExpYldlYlJUQ1Byb3ZpZGVyQ29jb2EgOiBwdWJsaWMgTGliV2ViUlRD
UHJvdmlkZXIgewogcHVibGljOgogICAgIExpYldlYlJUQ1Byb3ZpZGVyQ29jb2EoKSA9IGRlZmF1
bHQ7CiAgICAgfkxpYldlYlJUQ1Byb3ZpZGVyQ29jb2EoKTsKQEAgLTQ1LDIyICs0NSw2IEBAIHBy
aXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPHdlYnJ0Yzo6VmlkZW9FbmNvZGVyRmFjdG9yeT4g
Y3JlYXRlRW5jb2RlckZhY3RvcnkoKSBmaW5hbDsKIAogICAgIHZvaWQgc2V0SDI2NEhhcmR3YXJl
RW5jb2RlckFsbG93ZWQoYm9vbCBhbGxvd2VkKSBmaW5hbDsKLQotICAgIHZvaWQgbm90aWZ5T2ZE
ZWNvZGVyRmFjdG9yeURlc3RydWN0aW9uKHdlYnJ0Yzo6VmlkZW9Ub29sYm94VmlkZW9EZWNvZGVy
RmFjdG9yeSYgZmFjdG9yeSkgZmluYWwKLSAgICB7Ci0gICAgICAgIEFTU0VSVF9VTlVTRUQoZmFj
dG9yeSwgJmZhY3RvcnkgPT0gbV9kZWNvZGVyRmFjdG9yeSk7Ci0gICAgICAgIG1fZGVjb2RlckZh
Y3RvcnkgPSBudWxscHRyOwotICAgIH0KLQotICAgIHZvaWQgbm90aWZ5T2ZFbmNvZGVyRmFjdG9y
eURlc3RydWN0aW9uKHdlYnJ0Yzo6VmlkZW9Ub29sYm94VmlkZW9FbmNvZGVyRmFjdG9yeSYgZmFj
dG9yeSkgZmluYWwKLSAgICB7Ci0gICAgICAgIEFTU0VSVF9VTlVTRUQoZmFjdG9yeSwgJmZhY3Rv
cnkgPT0gbV9lbmNvZGVyRmFjdG9yeSk7Ci0gICAgICAgIG1fZW5jb2RlckZhY3RvcnkgPSBudWxs
cHRyOwotICAgIH0KLQotICAgIHdlYnJ0Yzo6VmlkZW9Ub29sYm94VmlkZW9EZWNvZGVyRmFjdG9y
eSogbV9kZWNvZGVyRmFjdG9yeSB7IG51bGxwdHIgfTsKLSAgICB3ZWJydGM6OlZpZGVvVG9vbGJv
eFZpZGVvRW5jb2RlckZhY3RvcnkqIG1fZW5jb2RlckZhY3RvcnkgeyBudWxscHRyIH07Ci0gICAg
Ym9vbCBtX2gyNjRIYXJkd2FyZUVuY29kZXJBbGxvd2VkIHsgdHJ1ZSB9OwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLm1tCmluZGV4IGU2MTk1
M2Y0YzMxNTcwNmNiYWVlMjJmNzcwM2Y2ZDRkY2MwYTgwNjcuLmFmZWMzOTY4YTlmNDllNTNmMmZi
MjU5MzY1ODVkYzQ0MTYxZjFhMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UubW0KQEAg
LTEzMCw4ICsxMzAsNyBAQCBzdGF0aWMgZGlzcGF0Y2hfcXVldWVfdCBnbG9iYVZpZGVvQ2FwdHVy
ZVNlcmlhbFF1ZXVlKCkKICAgICBzdGF0aWMgZGlzcGF0Y2hfcXVldWVfdCBnbG9iYWxRdWV1ZTsK
ICAgICBzdGF0aWMgZGlzcGF0Y2hfb25jZV90IG9uY2VUb2tlbjsKICAgICBkaXNwYXRjaF9vbmNl
KCZvbmNlVG9rZW4sIF57Ci0gICAgICAgIGdsb2JhbFF1ZXVlID0gZGlzcGF0Y2hfcXVldWVfY3Jl
YXRlKCJXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2UgdmlkZW8gY2FwdHVyZSBxdWV1ZSIsIERJ
U1BBVENIX1FVRVVFX1NFUklBTCk7Ci0gICAgICAgIGRpc3BhdGNoX3NldF90YXJnZXRfcXVldWUo
Z2xvYmFsUXVldWUsIGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoIERJU1BBVENIX1FVRVVFX1BS
SU9SSVRZX0hJR0gsIDApKTsKKyAgICAgICAgZ2xvYmFsUXVldWUgPSBkaXNwYXRjaF9xdWV1ZV9j
cmVhdGVfd2l0aF90YXJnZXQoIldlYkNvcmVBVk1lZGlhQ2FwdHVyZVNvdXJjZSB2aWRlbyBjYXB0
dXJlIHF1ZXVlIiwgRElTUEFUQ0hfUVVFVUVfU0VSSUFMLCBkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1
ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9SSVRZX0hJR0gsIDApKTsKICAgICB9KTsKICAgICByZXR1
cm4gZ2xvYmFsUXVldWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbUNvY29hLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb1RyYWNrUHJpdmF0ZU1l
ZGlhU3RyZWFtQ29jb2EuY3BwCmluZGV4IGMyNGZjNWE1N2M4MWNmZmQ0NzY1NDgzMjFkYjQ0ZmI0
N2JlYWJkNGUuLjM1ZTkzNTI3ODEyYWIyZmFmYWJjNjBmMDYxNDRkNDNhNWI0MmRjZDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BdWRpb1RyYWNr
UHJpdmF0ZU1lZGlhU3RyZWFtQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BdWRpb1RyYWNrUHJpdmF0ZU1lZGlhU3RyZWFtQ29jb2EuY3BwCkBA
IC0zNCw2ICszNCw3IEBACiAKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4K
ICNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL0F1ZGlvVG9vbGJveFNQSS5oPgorI2luY2x1ZGUgPHd0
Zi9TY29wZS5oPgogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoTUVESUFfU1RS
RUFNKQogCkBAIC0xNjksNyArMTcwLDEwIEBAIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0
cmVhbUNvY29hOjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiBzCiB7CiAg
ICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgb24gYSBiYWNrZ3JvdW5kIHRocmVhZC4gVGhl
IGZvbGxvd2luZyBwcm90ZWN0ZWRUaGlzIG9iamVjdCBlbnN1cmVzIHRoZSBvYmplY3QgaXMgbm90
CiAgICAgLy8gZGVzdHJveWVkIG9uIHRoZSBtYWluIHRocmVhZCBiZWZvcmUgdGhpcyBmdW5jdGlv
biBleGl0cy4KLSAgICBSZWY8QXVkaW9UcmFja1ByaXZhdGVNZWRpYVN0cmVhbUNvY29hPiBwcm90
ZWN0ZWRUaGlzIHsgKnRoaXMgfTsKKyAgICBhdXRvIHNjb3BlRXhpdCA9IFdURjo6bWFrZVNjb3Bl
RXhpdChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSgpIG11dGFibGUgeworICAgICAg
ICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlz
KV0geyB9KTsKKyAgICB9KTsKKwogICAgIEFTU0VSVChkZXNjcmlwdGlvbi5wbGF0Zm9ybURlc2Ny
aXB0aW9uKCkudHlwZSA9PSBQbGF0Zm9ybURlc2NyaXB0aW9uOjpDQUF1ZGlvU3RyZWFtQmFzaWNU
eXBlKTsKIAogICAgIGlmICghbV9pbnB1dERlc2NyaXB0aW9uIHx8ICptX2lucHV0RGVzY3JpcHRp
b24gIT0gZGVzY3JpcHRpb24pIHsKQEAgLTIyMCw3ICsyMjQsOSBAQCBPU1N0YXR1cyBBdWRpb1Ry
YWNrUHJpdmF0ZU1lZGlhU3RyZWFtQ29jb2E6OnJlbmRlcihVSW50MzIgc2FtcGxlQ291bnQsIEF1
ZGlvQnVmZgogewogICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIG9uIGEgaGlnaC1wcmlv
cml0eSBiYWNrZ3JvdW5kIHRocmVhZC4gVGhlIGZvbGxvd2luZyBwcm90ZWN0ZWRUaGlzIG9iamVj
dCBlbnN1cmVzIHRoZSBvYmplY3QgaXMgbm90CiAgICAgLy8gZGVzdHJveWVkIG9uIHRoZSBtYWlu
IHRocmVhZCBiZWZvcmUgdGhpcyBmdW5jdGlvbiBleGl0cy4KLSAgICBSZWY8QXVkaW9UcmFja1By
aXZhdGVNZWRpYVN0cmVhbUNvY29hPiBwcm90ZWN0ZWRUaGlzIHsgKnRoaXMgfTsKKyAgICBhdXRv
IHNjb3BlRXhpdCA9IFdURjo6bWFrZVNjb3BlRXhpdChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpXSgpIG11dGFibGUgeworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRU
aGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0geyB9KTsKKyAgICB9KTsKIAogICAgIGlmICgh
bV9pc1BsYXlpbmcgfHwgbV9tdXRlZCB8fCAhbV9kYXRhU291cmNlIHx8IHN0cmVhbVRyYWNrKCku
bXV0ZWQoKSB8fCBzdHJlYW1UcmFjaygpLmVuZGVkKCkgfHwgIXN0cmVhbVRyYWNrKCkuZW5hYmxl
ZCgpKSB7CiAgICAgICAgIEF1ZGlvU2FtcGxlQnVmZmVyTGlzdDo6emVyb0FCTChpb0RhdGEsIHN0
YXRpY19jYXN0PHNpemVfdD4oc2FtcGxlQ291bnQgKiBtX291dHB1dERlc2NyaXB0aW9uLT5ieXRl
c1BlckZyYW1lKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291
cmNlQ29jb2EuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYTlhYWM0NDhhMmYw
OWMyNWUwZmE4N2M3MDA0MWFhNTlkZGFiYzI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSwxNzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKLSAqICAgIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0g
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYS5o
IgotCi0jaWYgVVNFKExJQldFQlJUQykKLQotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRl
ICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKLSNpbmNsdWRlIDx3ZWJydGMvc2RrL29iamMvRnJhbWV3
b3JrL0NsYXNzZXMvVmlkZW8vY29yZXZpZGVvX2ZyYW1lX2J1ZmZlci5oPgotI2luY2x1ZGUgPHd0
Zi9jZi9UeXBlQ2FzdHNDRi5oPgotCi0jaW5jbHVkZSA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5r
Lmg+Ci0jaW5jbHVkZSAiQ29yZVZpZGVvU29mdExpbmsuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKLQotUmVmPFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJj
ZT4gUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpjcmVhdGUocnRjOjpzY29wZWRfcmVmcHRy
PHdlYnJ0Yzo6VmlkZW9UcmFja0ludGVyZmFjZT4mJiB2aWRlb1RyYWNrLCBTdHJpbmcmJiB0cmFj
a0lkKQotewotICAgIGF1dG8gc291cmNlID0gUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29j
b2E6OmNyZWF0ZShXVEZNb3ZlKHZpZGVvVHJhY2spLCBXVEZNb3ZlKHRyYWNrSWQpKTsKLSAgICBz
b3VyY2UtPnN0YXJ0KCk7Ci0gICAgcmV0dXJuIFdURk1vdmUoc291cmNlKTsKLX0KLQotUmVmPFJl
YWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hPiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3Vy
Y2VDb2NvYTo6Y3JlYXRlKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZpZGVvVHJhY2tJbnRl
cmZhY2U+JiYgdmlkZW9UcmFjaywgU3RyaW5nJiYgdHJhY2tJZCkKLXsKLSAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYShXVEZNb3ZlKHZpZGVv
VHJhY2spLCBXVEZNb3ZlKHRyYWNrSWQpKSk7Ci19Ci0KLVJlYWx0aW1lSW5jb21pbmdWaWRlb1Nv
dXJjZUNvY29hOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYShydGM6OnNjb3BlZF9y
ZWZwdHI8d2VicnRjOjpWaWRlb1RyYWNrSW50ZXJmYWNlPiYmIHZpZGVvVHJhY2ssIFN0cmluZyYm
IHZpZGVvVHJhY2tJZCkKLSAgICA6IFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZShXVEZNb3Zl
KHZpZGVvVHJhY2spLCBXVEZNb3ZlKHZpZGVvVHJhY2tJZCkpCi17Ci19Ci0KLUNWUGl4ZWxCdWZm
ZXJSZWYgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2E6OnBpeGVsQnVmZmVyRnJvbVZp
ZGVvRnJhbWUoY29uc3Qgd2VicnRjOjpWaWRlb0ZyYW1lJiBmcmFtZSkKLXsKLSAgICBpZiAobXV0
ZWQoKSkgewotICAgICAgICBpZiAoIW1fYmxhY2tGcmFtZSB8fCBtX2JsYWNrRnJhbWVXaWR0aCAh
PSBmcmFtZS53aWR0aCgpIHx8IG1fYmxhY2tGcmFtZUhlaWdodCAhPSBmcmFtZS5oZWlnaHQoKSkg
ewotICAgICAgICAgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IG51bGxwdHI7Ci0g
ICAgICAgICAgICBhdXRvIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJDcmVhdGUoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgZnJhbWUud2lkdGgoKSwgZnJhbWUuaGVpZ2h0KCksIGtDVlBpeGVsRm9ybWF0VHlw
ZV80MjBZcENiQ3I4UGxhbmFyLCBudWxscHRyLCAmcGl4ZWxCdWZmZXIpOwotICAgICAgICAgICAg
QVNTRVJUX1VOVVNFRChzdGF0dXMsIHN0YXR1cyA9PSBub0Vycik7Ci0KLSAgICAgICAgICAgIG1f
YmxhY2tGcmFtZSA9IGFkb3B0Q0YocGl4ZWxCdWZmZXIpOwotICAgICAgICAgICAgbV9ibGFja0Zy
YW1lV2lkdGggPSBmcmFtZS53aWR0aCgpOwotICAgICAgICAgICAgbV9ibGFja0ZyYW1lSGVpZ2h0
ID0gZnJhbWUuaGVpZ2h0KCk7Ci0KLSAgICAgICAgICAgIHN0YXR1cyA9IENWUGl4ZWxCdWZmZXJM
b2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIsIDApOwotICAgICAgICAgICAgQVNTRVJUKHN0YXR1
cyA9PSBub0Vycik7Ci0gICAgICAgICAgICB2b2lkKiBkYXRhID0gQ1ZQaXhlbEJ1ZmZlckdldEJh
c2VBZGRyZXNzKHBpeGVsQnVmZmVyKTsKLSAgICAgICAgICAgIHNpemVfdCB5TGVuZ3RoID0gZnJh
bWUud2lkdGgoKSAqIGZyYW1lLmhlaWdodCgpOwotICAgICAgICAgICAgbWVtc2V0KGRhdGEsIDAs
IHlMZW5ndGgpOwotICAgICAgICAgICAgbWVtc2V0KHN0YXRpY19jYXN0PHVpbnQ4X3QqPihkYXRh
KSArIHlMZW5ndGgsIDEyOCwgeUxlbmd0aCAvIDIpOwotCi0gICAgICAgICAgICBzdGF0dXMgPSBD
VlBpeGVsQnVmZmVyVW5sb2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIsIDApOwotICAgICAgICAg
ICAgQVNTRVJUKCFzdGF0dXMpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBtX2JsYWNrRnJh
bWUuZ2V0KCk7Ci0gICAgfQotICAgIGF1dG8gYnVmZmVyID0gZnJhbWUudmlkZW9fZnJhbWVfYnVm
ZmVyKCk7Ci0gICAgQVNTRVJUKGJ1ZmZlci0+dHlwZSgpID09IHdlYnJ0Yzo6VmlkZW9GcmFtZUJ1
ZmZlcjo6VHlwZTo6a05hdGl2ZSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PHdlYnJ0Yzo6Q29y
ZVZpZGVvRnJhbWVCdWZmZXImPigqYnVmZmVyKS5waXhlbF9idWZmZXIoKTsKLX0KLQotdm9pZCBS
ZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6T25GcmFtZShjb25zdCB3ZWJydGM6OlZp
ZGVvRnJhbWUmIGZyYW1lKQotewotICAgIGlmICghaXNQcm9kdWNpbmdEYXRhKCkpCi0gICAgICAg
IHJldHVybjsKLQotI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAotICAgIGlmICghKCsrbV9udW1i
ZXJPZkZyYW1lcyAlIDMwKSkKLSAgICAgICAgUkVMRUFTRV9MT0coTWVkaWFTdHJlYW0sICJSZWFs
dGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6T25GcmFtZSAlenUgZnJhbWUiLCBtX251bWJl
ck9mRnJhbWVzKTsKLSNlbmRpZgotCi0gICAgYXV0byBwaXhlbEJ1ZmZlciA9IHBpeGVsQnVmZmVy
RnJvbVZpZGVvRnJhbWUoZnJhbWUpOwotCi0gICAgLy8gRklYTUU6IENvbnZlcnQgdGltaW5nIGlu
Zm9ybWF0aW9uIGZyb20gVmlkZW9GcmFtZSB0byBDTVNhbXBsZVRpbWluZ0luZm8uCi0gICAgLy8g
Rm9yIHRoZSBtb21lbnQsIHdlIHdpbGwgcHJldGVuZCB0aGF0IGZyYW1lcyBzaG91bGQgYmUgcmVu
ZGVyZWQgYXNhcC4KLSAgICBDTVNhbXBsZVRpbWluZ0luZm8gdGltaW5nSW5mbzsKLSAgICB0aW1p
bmdJbmZvLnByZXNlbnRhdGlvblRpbWVTdGFtcCA9IGtDTVRpbWVJbnZhbGlkOwotICAgIHRpbWlu
Z0luZm8uZGVjb2RlVGltZVN0YW1wID0ga0NNVGltZUludmFsaWQ7Ci0gICAgdGltaW5nSW5mby5k
dXJhdGlvbiA9IGtDTVRpbWVJbnZhbGlkOwotCi0gICAgQ01WaWRlb0Zvcm1hdERlc2NyaXB0aW9u
UmVmIGZvcm1hdERlc2NyaXB0aW9uOwotICAgIE9TU3RhdHVzIG9zdGF0dXMgPSBDTVZpZGVvRm9y
bWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAo
Q1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgJmZvcm1hdERlc2NyaXB0aW9uKTsKLSAgICBp
ZiAob3N0YXR1cyAhPSBub0VycikgewotICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBpbml0
aWFsaXplIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbjogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KG9z
dGF0dXMpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIENNU2FtcGxlQnVmZmVyUmVm
IHNhbXBsZUJ1ZmZlcjsKLSAgICBvc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVSZWFkeVdp
dGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhl
bEJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sICZ0aW1pbmdJbmZvLCAmc2FtcGxlQnVmZmVyKTsK
LSAgICBDRlJlbGVhc2UoZm9ybWF0RGVzY3JpcHRpb24pOwotICAgIGlmIChvc3RhdHVzICE9IG5v
RXJyKSB7Ci0gICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSB0aGUgc2FtcGxlIGJ1
ZmZlcjogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KG9zdGF0dXMpKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQotICAgIGF1dG8gc2FtcGxlID0gYWRvcHRDRihzYW1wbGVCdWZmZXIpOwotCi0gICAg
Q0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVBdHRh
Y2htZW50c0FycmF5KHNhbXBsZUJ1ZmZlciwgdHJ1ZSk7Ci0gICAgZm9yIChDRkluZGV4IGkgPSAw
OyBpIDwgQ0ZBcnJheUdldENvdW50KGF0dGFjaG1lbnRzQXJyYXkpOyArK2kpIHsKLSAgICAgICAg
Q0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBhdHRhY2htZW50cyA9IGNoZWNrZWRfY2ZfY2FzdDxDRk11
dGFibGVEaWN0aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KGF0dGFjaG1lbnRzQXJy
YXksIGkpKTsKLSAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUoYXR0YWNobWVudHMsIGtDTVNh
bXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5LCBrQ0ZCb29sZWFuVHJ1ZSk7Ci0g
ICAgfQotCi0gICAgdW5zaWduZWQgd2lkdGggPSBmcmFtZS53aWR0aCgpOwotICAgIHVuc2lnbmVk
IGhlaWdodCA9IGZyYW1lLmhlaWdodCgpOwotCi0gICAgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRp
b24gcm90YXRpb247Ci0gICAgc3dpdGNoIChmcmFtZS5yb3RhdGlvbigpKSB7Ci0gICAgY2FzZSB3
ZWJydGM6OmtWaWRlb1JvdGF0aW9uXzA6Ci0gICAgICAgIHJvdGF0aW9uID0gTWVkaWFTYW1wbGU6
OlZpZGVvUm90YXRpb246Ok5vbmU7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ugd2VicnRjOjpr
VmlkZW9Sb3RhdGlvbl8xODA6Ci0gICAgICAgIHJvdGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVv
Um90YXRpb246OlVwc2lkZURvd247Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ugd2VicnRjOjpr
VmlkZW9Sb3RhdGlvbl85MDoKLSAgICAgICAgcm90YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9S
b3RhdGlvbjo6UmlnaHQ7Ci0gICAgICAgIHN0ZDo6c3dhcCh3aWR0aCwgaGVpZ2h0KTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSB3ZWJydGM6OmtWaWRlb1JvdGF0aW9uXzI3MDoKLSAgICAgICAg
cm90YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdDsKLSAgICAgICAgc3Rk
Ojpzd2FwKHdpZHRoLCBoZWlnaHQpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBSZWZQ
dHI8UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2E+IHByb3RlY3RlZFRoaXModGhpcyk7
Ci0gICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBz
YW1wbGUgPSBXVEZNb3ZlKHNhbXBsZSksIHdpZHRoLCBoZWlnaHQsIHJvdGF0aW9uXSB7Ci0gICAg
ICAgIHByb3RlY3RlZFRoaXMtPnByb2Nlc3NOZXdTYW1wbGUoc2FtcGxlLmdldCgpLCB3aWR0aCwg
aGVpZ2h0LCByb3RhdGlvbik7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgUmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlQ29jb2E6OnByb2Nlc3NOZXdTYW1wbGUoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxl
LCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0LCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3Rh
dGlvbiByb3RhdGlvbikKLXsKLSAgICBtX2J1ZmZlciA9IHNhbXBsZTsKLSAgICBpZiAod2lkdGgg
IT0gbV9jdXJyZW50U2V0dGluZ3Mud2lkdGgoKSB8fCBoZWlnaHQgIT0gbV9jdXJyZW50U2V0dGlu
Z3MuaGVpZ2h0KCkpIHsKLSAgICAgICAgbV9jdXJyZW50U2V0dGluZ3Muc2V0V2lkdGgod2lkdGgp
OwotICAgICAgICBtX2N1cnJlbnRTZXR0aW5ncy5zZXRIZWlnaHQoaGVpZ2h0KTsKLSAgICAgICAg
c2V0dGluZ3NEaWRDaGFuZ2UoKTsKLSAgICB9Ci0KLSAgICB2aWRlb1NhbXBsZUF2YWlsYWJsZShN
ZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShzYW1wbGUsIHJvdGF0aW9uKSk7Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWlu
Z1ZpZGVvU291cmNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWUy
MDFlYjU4ZjlkYjAyMWYwNWU0NDY0ZjhlYzQ5NTNmMTQ0YWM1MAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5n
VmlkZW9Tb3VyY2VDb2NvYS5tbQpAQCAtMCwwICsxLDE3OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZWFsdGltZUlu
Y29taW5nVmlkZW9Tb3VyY2VDb2NvYS5oIgorCisjaWYgVVNFKExJQldFQlJUQykKKworI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRpYVNhbXBsZUFWRk9iakMuaCIKKyNpbmNsdWRl
IDxwYWwvY2YvQ29yZU1lZGlhU29mdExpbmsuaD4KKyNpbmNsdWRlIDx3ZWJydGMvc2RrL1dlYktp
dC9XZWJLaXRVdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDx3dGYvY2YvVHlwZUNhc3RzQ0YuaD4KKwor
I2luY2x1ZGUgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3Vz
aW5nIG5hbWVzcGFjZSBQQUw7CisKK1JlZjxSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U+IFJl
YWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZTo6Y3JlYXRlKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJy
dGM6OlZpZGVvVHJhY2tJbnRlcmZhY2U+JiYgdmlkZW9UcmFjaywgU3RyaW5nJiYgdHJhY2tJZCkK
K3sKKyAgICBhdXRvIHNvdXJjZSA9IFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29hOjpj
cmVhdGUoV1RGTW92ZSh2aWRlb1RyYWNrKSwgV1RGTW92ZSh0cmFja0lkKSk7CisgICAgc291cmNl
LT5zdGFydCgpOworICAgIHJldHVybiBXVEZNb3ZlKHNvdXJjZSk7Cit9CisKK1JlZjxSZWFsdGlt
ZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYT4gUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29j
b2E6OmNyZWF0ZShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb1RyYWNrSW50ZXJmYWNl
PiYmIHZpZGVvVHJhY2ssIFN0cmluZyYmIHRyYWNrSWQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EoV1RGTW92ZSh2aWRlb1RyYWNr
KSwgV1RGTW92ZSh0cmFja0lkKSkpOworfQorCitSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VD
b2NvYTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EocnRjOjpzY29wZWRfcmVmcHRy
PHdlYnJ0Yzo6VmlkZW9UcmFja0ludGVyZmFjZT4mJiB2aWRlb1RyYWNrLCBTdHJpbmcmJiB2aWRl
b1RyYWNrSWQpCisgICAgOiBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2UoV1RGTW92ZSh2aWRl
b1RyYWNrKSwgV1RGTW92ZSh2aWRlb1RyYWNrSWQpKQoreworfQorCitzdGF0aWMgaW5saW5lIENW
UGl4ZWxCdWZmZXJSZWYgY3JlYXRlQmxhY2tGcmFtZShpbnQgd2lkdGgsIGludCBoZWlnaHQpCit7
CisgICAgQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciA9IG51bGxwdHI7CisgICAgYXV0byBz
dGF0dXMgPSBDVlBpeGVsQnVmZmVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIHdpZHRoLCBo
ZWlnaHQsIGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4UGxhbmFyLCBudWxscHRyLCAmcGl4
ZWxCdWZmZXIpOworICAgIEFTU0VSVF9VTlVTRUQoc3RhdHVzLCBzdGF0dXMgPT0gbm9FcnIpOwor
CisgICAgc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwg
MCk7CisgICAgQVNTRVJUKHN0YXR1cyA9PSBub0Vycik7CisgICAgdm9pZCogZGF0YSA9IENWUGl4
ZWxCdWZmZXJHZXRCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlcik7CisgICAgc2l6ZV90IHlMZW5ndGgg
PSB3aWR0aCAqIGhlaWdodDsKKyAgICBtZW1zZXQoZGF0YSwgMCwgeUxlbmd0aCk7CisgICAgbWVt
c2V0KHN0YXRpY19jYXN0PHVpbnQ4X3QqPihkYXRhKSArIHlMZW5ndGgsIDEyOCwgeUxlbmd0aCAv
IDIpOworCisgICAgc3RhdHVzID0gQ1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzKHBpeGVs
QnVmZmVyLCAwKTsKKyAgICBBU1NFUlQoIXN0YXR1cyk7CisgICAgcmV0dXJuIHBpeGVsQnVmZmVy
OworfQorCitDVlBpeGVsQnVmZmVyUmVmIFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZUNvY29h
OjpwaXhlbEJ1ZmZlckZyb21WaWRlb0ZyYW1lKGNvbnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYgZnJh
bWUpCit7CisgICAgaWYgKG11dGVkKCkpIHsKKyAgICAgICAgaWYgKCFtX2JsYWNrRnJhbWUgfHwg
bV9ibGFja0ZyYW1lV2lkdGggIT0gZnJhbWUud2lkdGgoKSB8fCBtX2JsYWNrRnJhbWVIZWlnaHQg
IT0gZnJhbWUuaGVpZ2h0KCkpIHsKKyAgICAgICAgICAgIG1fYmxhY2tGcmFtZVdpZHRoID0gZnJh
bWUud2lkdGgoKTsKKyAgICAgICAgICAgIG1fYmxhY2tGcmFtZUhlaWdodCA9IGZyYW1lLmhlaWdo
dCgpOworICAgICAgICAgICAgbV9ibGFja0ZyYW1lID0gYWRvcHRDRihjcmVhdGVCbGFja0ZyYW1l
KG1fYmxhY2tGcmFtZVdpZHRoLCBtX2JsYWNrRnJhbWVIZWlnaHQpKTsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gbV9ibGFja0ZyYW1lLmdldCgpOworICAgIH0KKyAgICBBU1NFUlQoZnJhbWUu
dmlkZW9fZnJhbWVfYnVmZmVyKCktPnR5cGUoKSA9PSB3ZWJydGM6OlZpZGVvRnJhbWVCdWZmZXI6
OlR5cGU6OmtOYXRpdmUpOworICAgIHJldHVybiB3ZWJydGM6OnBpeGVsQnVmZmVyRnJvbUZyYW1l
KGZyYW1lKTsKK30KKwordm9pZCBSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6T25G
cmFtZShjb25zdCB3ZWJydGM6OlZpZGVvRnJhbWUmIGZyYW1lKQoreworICAgIGlmICghaXNQcm9k
dWNpbmdEYXRhKCkpCisgICAgICAgIHJldHVybjsKKworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxF
RAorICAgIGlmICghKCsrbV9udW1iZXJPZkZyYW1lcyAlIDMwKSkKKyAgICAgICAgUkVMRUFTRV9M
T0coTWVkaWFTdHJlYW0sICJSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6T25GcmFt
ZSAlenUgZnJhbWUiLCBtX251bWJlck9mRnJhbWVzKTsKKyNlbmRpZgorCisgICAgYXV0byBwaXhl
bEJ1ZmZlciA9IHBpeGVsQnVmZmVyRnJvbVZpZGVvRnJhbWUoZnJhbWUpOworICAgIGlmICghcGl4
ZWxCdWZmZXIpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gZ2V0IGEgcGl4ZWwgYnVm
ZmVyIGZyb20gYSBmcmFtZSIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gRklY
TUU6IENvbnZlcnQgdGltaW5nIGluZm9ybWF0aW9uIGZyb20gVmlkZW9GcmFtZSB0byBDTVNhbXBs
ZVRpbWluZ0luZm8uCisgICAgLy8gRm9yIHRoZSBtb21lbnQsIHdlIHdpbGwgcHJldGVuZCB0aGF0
IGZyYW1lcyBzaG91bGQgYmUgcmVuZGVyZWQgYXNhcC4KKyAgICBDTVNhbXBsZVRpbWluZ0luZm8g
dGltaW5nSW5mbzsKKyAgICB0aW1pbmdJbmZvLnByZXNlbnRhdGlvblRpbWVTdGFtcCA9IGtDTVRp
bWVJbnZhbGlkOworICAgIHRpbWluZ0luZm8uZGVjb2RlVGltZVN0YW1wID0ga0NNVGltZUludmFs
aWQ7CisgICAgdGltaW5nSW5mby5kdXJhdGlvbiA9IGtDTVRpbWVJbnZhbGlkOworCisgICAgQ01W
aWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uOworICAgIE9TU3RhdHVz
IG9zdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZlcihr
Q0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgJmZvcm1h
dERlc2NyaXB0aW9uKTsKKyAgICBpZiAob3N0YXR1cyAhPSBub0VycikgeworICAgICAgICBMT0df
RVJST1IoIkZhaWxlZCB0byBpbml0aWFsaXplIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbjogJWQi
LCBzdGF0aWNfY2FzdDxpbnQ+KG9zdGF0dXMpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcjsKKyAgICBvc3RhdHVzID0gQ01TYW1w
bGVCdWZmZXJDcmVhdGVSZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAo
Q1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sICZ0aW1pbmdJ
bmZvLCAmc2FtcGxlQnVmZmVyKTsKKyAgICBDRlJlbGVhc2UoZm9ybWF0RGVzY3JpcHRpb24pOwor
ICAgIGlmIChvc3RhdHVzICE9IG5vRXJyKSB7CisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRv
IGNyZWF0ZSB0aGUgc2FtcGxlIGJ1ZmZlcjogJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KG9zdGF0dXMp
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gc2FtcGxlID0gYWRvcHRDRihz
YW1wbGVCdWZmZXIpOworCisgICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gQ01TYW1w
bGVCdWZmZXJHZXRTYW1wbGVBdHRhY2htZW50c0FycmF5KHNhbXBsZUJ1ZmZlciwgdHJ1ZSk7Cisg
ICAgZm9yIChDRkluZGV4IGkgPSAwOyBpIDwgQ0ZBcnJheUdldENvdW50KGF0dGFjaG1lbnRzQXJy
YXkpOyArK2kpIHsKKyAgICAgICAgQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBhdHRhY2htZW50cyA9
IGNoZWNrZWRfY2ZfY2FzdDxDRk11dGFibGVEaWN0aW9uYXJ5UmVmPihDRkFycmF5R2V0VmFsdWVB
dEluZGV4KGF0dGFjaG1lbnRzQXJyYXksIGkpKTsKKyAgICAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFs
dWUoYXR0YWNobWVudHMsIGtDTVNhbXBsZUF0dGFjaG1lbnRLZXlfRGlzcGxheUltbWVkaWF0ZWx5
LCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAgfQorCisgICAgdW5zaWduZWQgd2lkdGggPSBmcmFtZS53
aWR0aCgpOworICAgIHVuc2lnbmVkIGhlaWdodCA9IGZyYW1lLmhlaWdodCgpOworCisgICAgTWVk
aWFTYW1wbGU6OlZpZGVvUm90YXRpb24gcm90YXRpb247CisgICAgc3dpdGNoIChmcmFtZS5yb3Rh
dGlvbigpKSB7CisgICAgY2FzZSB3ZWJydGM6OmtWaWRlb1JvdGF0aW9uXzA6CisgICAgICAgIHJv
dGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmU7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2Ugd2VicnRjOjprVmlkZW9Sb3RhdGlvbl8xODA6CisgICAgICAgIHJvdGF0aW9u
ID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlVwc2lkZURvd247CisgICAgICAgIGJyZWFr
OworICAgIGNhc2Ugd2VicnRjOjprVmlkZW9Sb3RhdGlvbl85MDoKKyAgICAgICAgcm90YXRpb24g
PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQ7CisgICAgICAgIHN0ZDo6c3dhcCh3
aWR0aCwgaGVpZ2h0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSB3ZWJydGM6OmtWaWRlb1Jv
dGF0aW9uXzI3MDoKKyAgICAgICAgcm90YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlv
bjo6TGVmdDsKKyAgICAgICAgc3RkOjpzd2FwKHdpZHRoLCBoZWlnaHQpOworICAgICAgICBicmVh
azsKKyAgICB9CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIHNhbXBsZSA9IFdURk1vdmUoc2FtcGxlKSwgd2lkdGgsIGhlaWdodCwgcm90YXRp
b25dIHsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+cHJvY2Vzc05ld1NhbXBsZShzYW1wbGUuZ2V0
KCksIHdpZHRoLCBoZWlnaHQsIHJvdGF0aW9uKTsKKyAgICB9KTsKK30KKwordm9pZCBSZWFsdGlt
ZUluY29taW5nVmlkZW9Tb3VyY2VDb2NvYTo6cHJvY2Vzc05ld1NhbXBsZShDTVNhbXBsZUJ1ZmZl
clJlZiBzYW1wbGUsIHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQsIE1lZGlhU2FtcGxl
OjpWaWRlb1JvdGF0aW9uIHJvdGF0aW9uKQoreworICAgIG1fYnVmZmVyID0gc2FtcGxlOworICAg
IGlmICh3aWR0aCAhPSBtX2N1cnJlbnRTZXR0aW5ncy53aWR0aCgpIHx8IGhlaWdodCAhPSBtX2N1
cnJlbnRTZXR0aW5ncy5oZWlnaHQoKSkgeworICAgICAgICBtX2N1cnJlbnRTZXR0aW5ncy5zZXRX
aWR0aCh3aWR0aCk7CisgICAgICAgIG1fY3VycmVudFNldHRpbmdzLnNldEhlaWdodChoZWlnaHQp
OworICAgICAgICBzZXR0aW5nc0RpZENoYW5nZSgpOworICAgIH0KKworICAgIHZpZGVvU2FtcGxl
QXZhaWxhYmxlKE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlKHNhbXBsZSwgcm90YXRpb24pKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKExJQldFQlJUQykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9j
a1NvdXJjZUJ1ZmZlclByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9t
ZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAKaW5kZXggYzhjMTQ5ZTBmMjQ2
NzBhNzgzNWVlMDNmYWM4ZjY4Y2RiOTdlZmQ4NS4uMDI0NjM0NzZlNmM0NDlkYWZmYzNmNjlhNDk1
MDY4ZWRiM2M2ZjM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9t
ZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAK
QEAgLTM3LDcgKzM3LDYgQEAKICNpbmNsdWRlICJNb2NrVHJhY2tzLmgiCiAjaW5jbHVkZSAiU291
cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FycmF5
QnVmZmVyLmg+Ci0jaW5jbHVkZSA8bWFwPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVh
bS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXggYTRlYTY4NDA4NTM4
OTc5MDFjNGY2ZGRjOWExN2MzNzU3NTdiZmJjMS4uNjE4MmJlNTZjNDI2MDVkNTBlYTI5ZDJkN2Jl
MTAyMTdkYmY2MjEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcApAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIGZp
bmFsOwogICAgIHZvaWQgd2lsbFNlbmRSZXF1ZXN0QXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBSZXNv
dXJjZVJlcXVlc3QmJiwgUmVzb3VyY2VSZXNwb25zZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFJlc291cmNlUmVxdWVzdCYmKT4mJikgZmluYWw7CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0Vf
QVVUSF9DQUxMQkFDSykKLSAgICB2b2lkIGNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9u
U3BhY2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYpIGZpbmFs
OworICAgIHZvaWQgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZUFzeW5jKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJikgZmluYWw7CiAjZW5kaWYKIAogcHJpdmF0ZToKQEAgLTEwMiwxMCArMTAy
LDEwIEBAIHZvaWQgQmxvYlJlc291cmNlU3luY2hyb25vdXNMb2FkZXI6OndpbGxTZW5kUmVxdWVz
dEFzeW5jKFJlc291cmNlSGFuZGxlKiwgUmVzb3VyCiB9CiAKICNpZiBVU0UoUFJPVEVDVElPTl9T
UEFDRV9BVVRIX0NBTExCQUNLKQotdm9pZCBCbG9iUmVzb3VyY2VTeW5jaHJvbm91c0xvYWRlcjo6
Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZUFzeW5jKFJlc291cmNlSGFuZGxl
KiBoYW5kbGUsIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYpCit2b2lkIEJsb2JSZXNvdXJjZVN5bmNo
cm9ub3VzTG9hZGVyOjpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlQXN5bmMo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgIGhhbmRsZS0+Y29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVj
dGlvblNwYWNlKGZhbHNlKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CiB9CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3Jr
U3RvcmFnZVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RvcmFnZVNlc3Npb24uY3BwCmluZGV4IDFmNDQ0ZTMzMjdjMDliMTM0YThjN2JiNjI4OWYw
ZWIyZTcwZGI2NTcuLjAzMzA3YTYwNTQxYWM5ZWExZjQ2YzVlZTgxZjkwMjljM2Q0NDAwOGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VT
ZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbi5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYtMjAxOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yOCw5ICsyOCwxMiBAQAogCiAjaW5jbHVkZSA8cGFsL1Nlc3Np
b25JRC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9Q
cm9jZXNzUHJpdmlsZWdlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorYm9vbCBOZXR3b3Jr
U3RvcmFnZVNlc3Npb246Om1fcHJvY2Vzc01heVVzZUNvb2tpZUFQSSA9IGZhbHNlOworCiBIYXNo
TWFwPFBBTDo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1N0b3JhZ2VTZXNzaW9u
Pj4mIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Z2xvYmFsU2Vzc2lvbk1hcCgpCiB7CiAgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0
cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+Pj4gbWFwOwpAQCAtNTcsNCArNjAsMTggQEAgdm9pZCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OmZvckVhY2goY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKGNv
bnN0IFdlYkNvcmU6Ok5ldHcKICAgICAgICAgZnVuY3Rvcigqc3RvcmFnZVNlc3Npb24pOwogfQog
Citib29sIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6cHJvY2Vzc01heVVzZUNvb2tpZUFQSSgpCit7
CisgICAgcmV0dXJuIG1fcHJvY2Vzc01heVVzZUNvb2tpZUFQSTsKK307CisKK3ZvaWQgTmV0d29y
a1N0b3JhZ2VTZXNzaW9uOjpwZXJtaXRQcm9jZXNzVG9Vc2VDb29raWVBUEkoYm9vbCB2YWx1ZSkK
K3sKKyAgICBtX3Byb2Nlc3NNYXlVc2VDb29raWVBUEkgPSB2YWx1ZTsKKyAgICBpZiAobV9wcm9j
ZXNzTWF5VXNlQ29va2llQVBJKQorICAgICAgICBhZGRQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQ
cml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpOworICAgIGVsc2UKKyAgICAgICAgcmVtb3Zl
UHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVzKTsK
K30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RvcmFnZVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLmgKaW5kZXggZmZjNmY1YzFiNzZiYmQ1MTc3MDEyMDUxZmYxYmNj
ODM3Njg2ZTQwYy4uYzAzMWY2NmQ5NGJmNjI2YWQ2MjdjYzE3Njk3YzU4ODZmMjkyM2FhOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNl
c3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5oCkBAIC03Myw2ICs3Myw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgdm9pZCBlbnN1cmVTZXNzaW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcm
IGlkZW50aWZpZXJCYXNlID0gU3RyaW5nKCkpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2
b2lkIGRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEKTsKICAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgdm9pZCBmb3JFYWNoKGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBXZWJDb3Jl
OjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mKT4mKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
dm9pZCBwZXJtaXRQcm9jZXNzVG9Vc2VDb29raWVBUEkoYm9vbCk7CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIGJvb2wgcHJvY2Vzc01heVVzZUNvb2tpZUFQSSgpOwogCiAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHZvaWQgc3dpdGNoVG9OZXdUZXN0aW5nU2Vzc2lvbigpOwogCkBAIC05MSw2
ICs5Myw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShDT0NPQSkgfHwgVVNFKENGVVJMQ09OTkVD
VElPTikKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBlbnN1cmVTZXNzaW9uKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXJCYXNlLCBSZXRhaW5QdHI8Q0ZIVFRQ
Q29va2llU3RvcmFnZVJlZj4mJik7CiAgICAgTmV0d29ya1N0b3JhZ2VTZXNzaW9uKFBBTDo6U2Vz
c2lvbklELCBSZXRhaW5QdHI8Q0ZVUkxTdG9yYWdlU2Vzc2lvblJlZj4mJiwgUmV0YWluUHRyPENG
SFRUUENvb2tpZVN0b3JhZ2VSZWY+JiYpOworICAgIGV4cGxpY2l0IE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbihQQUw6OlNlc3Npb25JRCk7CiAKICAgICAvLyBNYXkgYmUgbnVsbCwgaW4gd2hpY2ggY2Fz
ZSBhIEZvdW5kYXRpb24gZGVmYXVsdCBzaG91bGQgYmUgdXNlZC4KICAgICBDRlVSTFN0b3JhZ2VT
ZXNzaW9uUmVmIHBsYXRmb3JtU2Vzc2lvbigpIHsgcmV0dXJuIG1fcGxhdGZvcm1TZXNzaW9uLmdl
dCgpOyB9CkBAIC0xOTMsNiArMTk2LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBtdXRhYmxl
IFJlZlB0cjxDb29raWVTdG9yYWdlT2JzZXJ2ZXI+IG1fY29va2llU3RvcmFnZU9ic2VydmVyOwog
I2VuZGlmCisgICAgc3RhdGljIGJvb2wgbV9wcm9jZXNzTWF5VXNlQ29va2llQVBJOwogfTsKIAog
I2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9QaW5nSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Bp
bmdIYW5kbGUuaAppbmRleCA0ODc4MmFjZDhjMTE1ODZiYWU1NDEyMGNkM2Q2MWU0YTVlN2RlMDE2
Li40M2E3ZDRhNDRlZjI4YWI5NjM4MzcxOTY4NWQ0ZTU0MzYwMDVjMzg2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BpbmdIYW5kbGUuaApAQCAtNzgsOSArNzgsOSBAQCBw
cml2YXRlOgogICAgIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVzb3VyY2VIYW5k
bGUqKSBmaW5hbCB7IHJldHVybiBtX3Nob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlOyB9CiAgICAg
dm9pZCB0aW1lb3V0VGltZXJGaXJlZCgpIHsgcGluZ0xvYWRDb21wbGV0ZShSZXNvdXJjZUVycm9y
IHsgU3RyaW5nKCksIDAsIG1fY3VycmVudFJlcXVlc3QudXJsKCksIEFTQ0lJTGl0ZXJhbCgiTG9h
ZCB0aW1lZCBvdXQiKSwgUmVzb3VyY2VFcnJvcjo6VHlwZTo6VGltZW91dCB9KTsgfQogI2lmIFVT
RShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCi0gICAgdm9pZCBjYW5BdXRoZW50aWNh
dGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBQcm90
ZWN0aW9uU3BhY2UmKQorICAgIHZvaWQgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25T
cGFjZUFzeW5jKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKICAgICB7Ci0gICAg
ICAgIG1faGFuZGxlLT5jb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3Bh
Y2UoZmFsc2UpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CiAgICAgICAgIHBp
bmdMb2FkQ29tcGxldGUoUmVzb3VyY2VFcnJvciB7IFN0cmluZyB7IH0sIDAsIG1fY3VycmVudFJl
cXVlc3QudXJsKCksIEFTQ0lJTGl0ZXJhbCgiTm90IGFsbG93ZWQgdG8gYXV0aGVudGljYXRlIiks
IFJlc291cmNlRXJyb3I6OlR5cGU6OkFjY2Vzc0NvbnRyb2wgfSk7CiAgICAgfQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKaW5k
ZXggMzA3YjAzNmQzODYyODA1YTk2ZTM3NTE2NjNlODQwZTM1MjI0YTgyZC4uMmE1OTI3MjEyNmQ0
NmM3ZmQyN2NlZDFkZTYxNTJkNDMzMzgwZWY5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaApAQCAtMTMxLDcgKzEzMSw3IEBAIHB1Ymxp
YzoKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShQUk9URUNUSU9OX1NQQUNF
X0FVVEhfQ0FMTEJBQ0spCi0gICAgYm9vbCBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlv
blNwYWNlKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYpOworICAgIHZvaWQgY2FuQXV0aGVudGljYXRl
QWdhaW5zdFByb3RlY3Rpb25TcGFjZShjb25zdCBQcm90ZWN0aW9uU3BhY2UmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBA
IC0yMTEsMTkgKzIxMSw2IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBSZXNvdXJjZUhh
bmRsZUNsaWVudCogY2xpZW50KCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVh
ckNsaWVudCgpOwogCi0jaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKLSAg
ICAvLyBDYWxsZWQgaW4gcmVzcG9uc2UgdG8gUmVzb3VyY2VIYW5kbGVDbGllbnQ6OmNhbkF1dGhl
bnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2VBc3luYygpLgotICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgY29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKGJvb2wp
OwotI2VuZGlmCi0KLSAgICAvLyBDYWxsZWQgaW4gcmVzcG9uc2UgdG8gUmVzb3VyY2VIYW5kbGVD
bGllbnQ6OndpbGxDYWNoZVJlc3BvbnNlQXN5bmMoKS4KLSNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9O
KQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29udGludWVXaWxsQ2FjaGVSZXNwb25zZShDRkNh
Y2hlZFVSTFJlc3BvbnNlUmVmKTsKLSNlbmRpZgotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgY29udGludWVXaWxsQ2FjaGVSZXNwb25zZShOU0NhY2hlZFVSTFJl
c3BvbnNlICopOwotI2VuZGlmCi0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERlZmVyc0xv
YWRpbmcoYm9vbCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBSZXNvdXJjZVJlcXVlc3QmIGZpcnN0
UmVxdWVzdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlSGFuZGxlQ2xpZW50LmNwcAppbmRleCBhZjVjNDE4YWE5Mjk5OGEwZWE5ODc3ODEw
NmVjMTcxNjRhOTE1NmJkLi42ZTY1YmI4OTE4YzZlYzEyZjhhZWE4NmViZTcwNDg4NGUyZTczNjZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFu
ZGxlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlQ2xpZW50LmNwcApAQCAtMzYsMTggKzM2LDYgQEAgUmVzb3VyY2VIYW5kbGVDbGll
bnQ6OlJlc291cmNlSGFuZGxlQ2xpZW50KCkgPSBkZWZhdWx0OwogCiBSZXNvdXJjZUhhbmRsZUNs
aWVudDo6flJlc291cmNlSGFuZGxlQ2xpZW50KCkgPSBkZWZhdWx0OwogCi0jaWYgVVNFKENGVVJM
Q09OTkVDVElPTikKLXZvaWQgUmVzb3VyY2VIYW5kbGVDbGllbnQ6OndpbGxDYWNoZVJlc3BvbnNl
QXN5bmMoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiByZXNw
b25zZSkKLXsKLSAgICBoYW5kbGUtPmNvbnRpbnVlV2lsbENhY2hlUmVzcG9uc2UocmVzcG9uc2Up
OwotfQotI2VsaWYgUExBVEZPUk0oQ09DT0EpCi12b2lkIFJlc291cmNlSGFuZGxlQ2xpZW50Ojp3
aWxsQ2FjaGVSZXNwb25zZUFzeW5jKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIE5TQ2FjaGVkVVJM
UmVzcG9uc2UgKnJlc3BvbnNlKQotewotICAgIGhhbmRsZS0+Y29udGludWVXaWxsQ2FjaGVSZXNw
b25zZShyZXNwb25zZSk7Ci19Ci0jZW5kaWYKLQogdm9pZCBSZXNvdXJjZUhhbmRsZUNsaWVudDo6
ZGlkUmVjZWl2ZUJ1ZmZlcihSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBSZWY8U2hhcmVkQnVmZmVy
PiYmIGJ1ZmZlciwgaW50IGVuY29kZWREYXRhTGVuZ3RoKQogewogICAgIGRpZFJlY2VpdmVEYXRh
KGhhbmRsZSwgYnVmZmVyLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpLCBlbmNvZGVkRGF0YUxlbmd0
aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlQ2xpZW50LmgKaW5kZXggMmE0YWJjMDAwOGJhMzg5ZGE5YzY3NDZjYTUwMjAwZTE2NGFh
MWE1MC4uNjc2ZTc0ZTVmYWYzYTFkNGE4NTNmOTkyYjE2NjYzZjNlNzI0ZTM0MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGll
bnQuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9D
b21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZi5oPgogCkBAIC03OSwxNCArODAsMTMgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQ
T1JUIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VBc3luYyhSZXNvdXJjZUhhbmRsZSos
IFJlc291cmNlUmVzcG9uc2UmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7CiAK
ICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQotICAgIC8vIENsaWVudCB3
aWxsIHBhc3MgYW4gdXBkYXRlZCByZXF1ZXN0IHVzaW5nIFJlc291cmNlSGFuZGxlOjpjb250aW51
ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoKSB3aGVuIHJlYWR5LgotICAg
IFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVj
dGlvblNwYWNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmKSA9
IDA7CisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGNhbkF1dGhlbnRpY2F0ZUFnYWlu
c3RQcm90ZWN0aW9uU3BhY2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFByb3RlY3Rpb25T
cGFjZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpID0gMDsKICNlbmRpZgotICAg
IC8vIENsaWVudCB3aWxsIHBhc3MgYW4gdXBkYXRlZCByZXF1ZXN0IHVzaW5nIFJlc291cmNlSGFu
ZGxlOjpjb250aW51ZVdpbGxDYWNoZVJlc3BvbnNlKCkgd2hlbiByZWFkeS4KKwogI2lmIFVTRShD
RlVSTENPTk5FQ1RJT04pCi0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHdpbGxDYWNo
ZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUqLCBDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgd2lsbENhY2hlUmVzcG9uc2VBc3luYyhS
ZXNvdXJjZUhhbmRsZSosIENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgcmVzcG9uc2UsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpIHsgY29tcGxldGlvbkhhbmRsZXIocmVzcG9uc2UpOyB9CiAjZWxpZiBQTEFURk9STShDT0NP
QSkKLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgd2lsbENhY2hlUmVzcG9uc2VBc3lu
YyhSZXNvdXJjZUhhbmRsZSosIE5TQ2FjaGVkVVJMUmVzcG9uc2UgKik7CisgICAgV0VCQ09SRV9F
WFBPUlQgdmlydHVhbCB2b2lkIHdpbGxDYWNoZVJlc3BvbnNlQXN5bmMoUmVzb3VyY2VIYW5kbGUq
LCBOU0NhY2hlZFVSTFJlc3BvbnNlICpyZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChO
U0NhY2hlZFVSTFJlc3BvbnNlICopPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25I
YW5kbGVyKHJlc3BvbnNlKTsgfQogI2VuZGlmCiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNl
Q3JlZGVudGlhbFN0b3JhZ2UoUmVzb3VyY2VIYW5kbGUqKSB7IHJldHVybiBmYWxzZTsgfQpAQCAt
OTcsMTQgKzk3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgUmV0YWluUHRyPENGRGljdGlvbmFy
eVJlZj4gY29ubmVjdGlvblByb3BlcnRpZXMoUmVzb3VyY2VIYW5kbGUqKSB7IHJldHVybiBudWxs
cHRyOyB9CiAjZW5kaWYKIAotI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCi0gICAgdmlydHVhbCBD
RkNhY2hlZFVSTFJlc3BvbnNlUmVmIHdpbGxDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwg
Q0ZDYWNoZWRVUkxSZXNwb25zZVJlZiByZXNwb25zZSkgeyByZXR1cm4gcmVzcG9uc2U7IH0KLSNp
ZiBQTEFURk9STShXSU4pCisjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQ0ZVUkxDT05ORUNUSU9O
KQogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDYWNoZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwg
Q0ZDYWNoZWRVUkxSZXNwb25zZVJlZikgeyByZXR1cm4gdHJ1ZTsgfQotI2VuZGlmIC8vIFBMQVRG
T1JNKFdJTikKLQotI2VsaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdmlydHVhbCBOU0NhY2hlZFVS
TFJlc3BvbnNlICp3aWxsQ2FjaGVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIE5TQ2FjaGVkVVJM
UmVzcG9uc2UgKnJlc3BvbnNlKSB7IHJldHVybiByZXNwb25zZTsgfQogI2VuZGlmCiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1N5bmNocm9ub3VzTG9h
ZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU3luY2hyb25v
dXNMb2FkZXJDbGllbnQuY3BwCmluZGV4IDRmMTIwMjYwNGYxOWIzOTU1MGFkYWU5NWY4NGJiMmRh
ZTg2ZTVhNTMuLjllYTAyYzZjMmUwMmU2NmYxMDZkNmVkOTAyMTkzNGYzNmQ4ZTVhMjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU3luY2hyb25vdXNMb2FkZXJD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU3luY2hyb25v
dXNMb2FkZXJDbGllbnQuY3BwCkBAIC01NSwxMCArNTUsMTAgQEAgYm9vbCBTeW5jaHJvbm91c0xv
YWRlckNsaWVudDo6c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoUmVzb3VyY2VIYW5kbGUqKQog
fQogCiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKLXZvaWQgU3luY2hy
b25vdXNMb2FkZXJDbGllbnQ6OmNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2VB
c3luYyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBQcm90ZWN0aW9uU3BhY2UmKQordm9p
ZCBTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rp
b25TcGFjZUFzeW5jKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIGFzayBGcmFtZUxvYWRlckNsaWVudC4gPGh0dHA6Ly93ZWJraXQu
b3JnL2IvNjUxOTY+Ci0gICAgaGFuZGxlLT5jb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQ
cm90ZWN0aW9uU3BhY2UodHJ1ZSk7CisgICAgY29tcGxldGlvbkhhbmRsZXIodHJ1ZSk7CiB9CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9TeW5j
aHJvbm91c0xvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9T
eW5jaHJvbm91c0xvYWRlckNsaWVudC5oCmluZGV4IGZlNjdiZDYxMjFjZDdkMDhkN2U5NTRmYzM0
ZTNmN2ZhOWExYWNiNjQuLmY1ZjQwZDE3MDBmMTU1MzQyZDJjYThlNTEwMTMwNjQwZmVjOTNjOGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU3luY2hyb25vdXNM
b2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1N5bmNo
cm9ub3VzTG9hZGVyQ2xpZW50LmgKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKSBvdmVycmlkZTsKICAgICB2b2lkIGRp
ZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CiAj
aWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKLSAgICB2b2lkIGNhbkF1dGhl
bnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2VBc3luYyhSZXNvdXJjZUhhbmRsZSosIGNvbnN0
IFByb3RlY3Rpb25TcGFjZSYpIG92ZXJyaWRlOworICAgIHZvaWQgY2FuQXV0aGVudGljYXRlQWdh
aW5zdFByb3RlY3Rpb25TcGFjZUFzeW5jKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUHJvdGVjdGlv
blNwYWNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgb3ZlcnJpZGU7CiAjZW5k
aWYKIAogICAgIGJvb2wgbV9hbGxvd1N0b3JlZENyZWRlbnRpYWxzIHsgZmFsc2UgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvRm9ybURhdGFTdHJlYW1D
Rk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Zvcm1EYXRhU3Ry
ZWFtQ0ZOZXQuY3BwCmluZGV4IGNmNDI1MWVhYzA4MTY2YzNkMzE3ZjBkNjYwZWNmYTBhOWVmNWI0
NTEuLmMxODVhODk0OTMwYTcyOTE1NjViZDkzMDIyYjU2ODk1MzQ1MThkODYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvRm9ybURhdGFTdHJlYW1DRk5ldC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Gb3JtRGF0YVN0cmVh
bUNGTmV0LmNwcApAQCAtNDIsOSArNDIsNyBAQAogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMu
aD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKLSNpZiBFTkFCTEUoTUlOSU1BTF9TSU1V
TEFUT1IpCi0jaW5jbHVkZSA8TW9iaWxlQ29yZVNlcnZpY2VzL01vYmlsZUNvcmVTZXJ2aWNlcy5o
PgotI2VsaWYgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKElPUykKIHN0YXRpYyBjb25zdCBT
SW50MzIgZm5mRXJyID0gLTQzOwogI2VsaWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgPENvcmVT
ZXJ2aWNlcy9Db3JlU2VydmljZXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAK
aW5kZXggMGQ5NzAxNzk0YTM3ZTEyYzlkZDJhNDAwMWM5NzYzMzZlZGFiYTQwNy4uMmViNjAxYzA1
MTllNDY3MGYzZjljOWM4ZTg0NTk3OWNjZjI4OWU0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Np
b25DRk5ldC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5o
PgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9Qcm9jZXNz
SUQuaD4KKyNpbmNsdWRlIDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAjaW5jbHVkZSAiUHVibGljU3VmZml4LmgiCkBAIC01OCw2ICs1OSwxMSBAQCBzdGF0
aWMgUmV0YWluUHRyPENGVVJMU3RvcmFnZVNlc3Npb25SZWY+IGNyZWF0ZUNGU3RvcmFnZVNlc3Np
b25Gb3JJZGVudGlmaWVyKENGUwogICAgIGF1dG8gc2hhcmVkQ2FjaGUgPSBhZG9wdENGKENGVVJM
Q2FjaGVDb3B5U2hhcmVkVVJMQ2FjaGUoKSk7CiAgICAgQ0ZVUkxDYWNoZVNldE1lbW9yeUNhcGFj
aXR5KGNhY2hlLmdldCgpLCBDRlVSTENhY2hlTWVtb3J5Q2FwYWNpdHkoc2hhcmVkQ2FjaGUuZ2V0
KCkpKTsKIAorICAgIGlmICghTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpwcm9jZXNzTWF5VXNlQ29v
a2llQVBJKCkpCisgICAgICAgIHJldHVybiBzdG9yYWdlU2Vzc2lvbjsKKworICAgIEFTU0VSVCho
YXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMp
KTsKKwogICAgIGF1dG8gY29va2llU3RvcmFnZSA9IGFkb3B0Q0YoX0NGVVJMU3RvcmFnZVNlc3Np
b25Db3B5Q29va2llU3RvcmFnZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBzdG9yYWdlU2Vzc2lvbi5n
ZXQoKSkpOwogICAgIGlmICghY29va2llU3RvcmFnZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CkBAIC03Myw5ICs3OSwxNiBAQCBOZXR3b3JrU3RvcmFnZVNlc3Npb246Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFJldGFpblB0cgogICAgIDogbV9zZXNz
aW9uSUQoc2Vzc2lvbklEKQogICAgICwgbV9wbGF0Zm9ybVNlc3Npb24oV1RGTW92ZShwbGF0Zm9y
bVNlc3Npb24pKQogeworICAgIEFTU0VSVChwcm9jZXNzTWF5VXNlQ29va2llQVBJKCkgfHwgIXBs
YXRmb3JtQ29va2llU3RvcmFnZSk7CiAgICAgbV9wbGF0Zm9ybUNvb2tpZVN0b3JhZ2UgPSBwbGF0
Zm9ybUNvb2tpZVN0b3JhZ2UgPyBXVEZNb3ZlKHBsYXRmb3JtQ29va2llU3RvcmFnZSkgOiBjb29r
aWVTdG9yYWdlKCk7CiB9CiAKK05ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6IG1fc2Vzc2lvbklEKHNlc3Np
b25JRCkKK3sKK30KKworCiBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbj4mIGRlZmF1bHROZXR3b3JrU3RvcmFnZVNlc3Npb24oKQogewogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CkBAIC05Niw4ICsxMDksMTEgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Np
b246OnN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb24oKQogI2VuZGlmCiAKICAgICBSZXRhaW5QdHI8
Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4gY29va2llU3RvcmFnZTsKLSAgICBpZiAoc2Vzc2lvbikK
LSAgICAgICAgY29va2llU3RvcmFnZSA9IGFkb3B0Q0YoX0NGVVJMU3RvcmFnZVNlc3Npb25Db3B5
Q29va2llU3RvcmFnZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBzZXNzaW9uLmdldCgpKSk7CisgICAg
aWYgKE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6cHJvY2Vzc01heVVzZUNvb2tpZUFQSSgpKSB7Cisg
ICAgICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFj
Y2Vzc1Jhd0Nvb2tpZXMpKTsKKyAgICAgICAgaWYgKHNlc3Npb24pCisgICAgICAgICAgICBjb29r
aWVTdG9yYWdlID0gYWRvcHRDRihfQ0ZVUkxTdG9yYWdlU2Vzc2lvbkNvcHlDb29raWVTdG9yYWdl
KGtDRkFsbG9jYXRvckRlZmF1bHQsIHNlc3Npb24uZ2V0KCkpKTsKKyAgICB9CiAKICAgICBkZWZh
dWx0TmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkgPSBzdGQ6Om1ha2VfdW5pcXVlPE5ldHdvcmtTdG9y
YWdlU2Vzc2lvbj4oUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgV1RGTW92ZShz
ZXNzaW9uKSwgV1RGTW92ZShjb29raWVTdG9yYWdlKSk7CiB9CkBAIC0xMDUsNyArMTIxLDcgQEAg
dm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb24oKQog
TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlZmF1bHRTdG9y
YWdlU2Vzc2lvbigpCiB7CiAgICAgaWYgKCFkZWZhdWx0TmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkp
Ci0gICAgICAgIGRlZmF1bHROZXR3b3JrU3RvcmFnZVNlc3Npb24oKSA9IHN0ZDo6bWFrZV91bmlx
dWU8TmV0d29ya1N0b3JhZ2VTZXNzaW9uPihQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RCgpLCBudWxscHRyLCBudWxscHRyKTsKKyAgICAgICAgZGVmYXVsdE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbigpID0gc3RkOjptYWtlX3VuaXF1ZTxOZXR3b3JrU3RvcmFnZVNlc3Npb24+KFBBTDo6U2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogICAgIHJldHVybiAqZGVmYXVsdE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbigpOwogfQogCkBAIC0xMjcsOCArMTQzLDExIEBAIHZvaWQgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjplbnN1cmVTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29u
c3QgU3RyaW5nCiAgICAgfSBlbHNlCiAgICAgICAgIHN0b3JhZ2VTZXNzaW9uID0gY3JlYXRlQ0ZT
dG9yYWdlU2Vzc2lvbkZvcklkZW50aWZpZXIoY2ZJZGVudGlmaWVyLmdldCgpKTsKIAotICAgIGlm
ICghY29va2llU3RvcmFnZSAmJiBzdG9yYWdlU2Vzc2lvbikKLSAgICAgICAgY29va2llU3RvcmFn
ZSA9IGFkb3B0Q0YoX0NGVVJMU3RvcmFnZVNlc3Npb25Db3B5Q29va2llU3RvcmFnZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBzdG9yYWdlU2Vzc2lvbi5nZXQoKSkpOworICAgIGlmIChOZXR3b3JrU3Rv
cmFnZVNlc3Npb246OnByb2Nlc3NNYXlVc2VDb29raWVBUEkoKSkgeworICAgICAgICBBU1NFUlQo
aGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVz
KSk7CisgICAgICAgIGlmICghY29va2llU3RvcmFnZSAmJiBzdG9yYWdlU2Vzc2lvbikKKyAgICAg
ICAgICAgIGNvb2tpZVN0b3JhZ2UgPSBhZG9wdENGKF9DRlVSTFN0b3JhZ2VTZXNzaW9uQ29weUNv
b2tpZVN0b3JhZ2Uoa0NGQWxsb2NhdG9yRGVmYXVsdCwgc3RvcmFnZVNlc3Npb24uZ2V0KCkpKTsK
KyAgICB9CiAKICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gc3RkOjptYWtlX3VuaXF1
ZTxOZXR3b3JrU3RvcmFnZVNlc3Npb24+KHNlc3Npb25JRCwgV1RGTW92ZShzdG9yYWdlU2Vzc2lv
biksIFdURk1vdmUoY29va2llU3RvcmFnZSkpOwogfQpAQCAtMTQwLDYgKzE1OSwxMSBAQCB2b2lk
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6ZW5zdXJlU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFN0cmluZwogCiBSZXRhaW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFnZVJlZj4g
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjb29raWVTdG9yYWdlKCkgY29uc3QKIHsKKyAgICBpZiAo
IXByb2Nlc3NNYXlVc2VDb29raWVBUEkoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAg
ICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NS
YXdDb29raWVzKSk7CisKICAgICBpZiAobV9wbGF0Zm9ybUNvb2tpZVN0b3JhZ2UpCiAgICAgICAg
IHJldHVybiBtX3BsYXRmb3JtQ29va2llU3RvcmFnZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKaW5k
ZXggMGFkN2JhMjNmMjYzMmFkMTYzZmRhMWY5MTZkZGM4MGM1NDM3MjY0Mi4uOTc4NjRmZTViZjll
OTI4MzhjZDcxOGU5MzUxZTE2ODE4NDg2MmU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCkBAIC02
NjMsMTEgKzY2Myw2IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNvbnRpbnVlQ2FuQXV0aGVudGlj
YXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShib29sIGNhbkF1dGhlCiAgICAgZC0+bV9jb25uZWN0
aW9uRGVsZWdhdGUtPmNvbnRpbnVlQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFj
ZShjYW5BdXRoZW50aWNhdGUpOwogfQogI2VuZGlmCi0KLXZvaWQgUmVzb3VyY2VIYW5kbGU6OmNv
bnRpbnVlV2lsbENhY2hlUmVzcG9uc2UoQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiByZXNwb25zZSkK
LXsKLSAgICBkLT5tX2Nvbm5lY3Rpb25EZWxlZ2F0ZS0+Y29udGludWVXaWxsQ2FjaGVSZXNwb25z
ZShyZXNwb25zZSk7Ci19CiAjZW5kaWYgLy8gVVNFKENGVVJMQ09OTkVDVElPTikKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9u
RGVsZWdhdGUuaAppbmRleCAzZDM3M2UzN2U1NDE1MTI5YmNmNWNmOTM3MTYwNGYwY2MyOGYxY2I1
Li40Nzc4YzI3NTBhODA0YTczOWIwM2FkMWRkNzQwZDI3OTU5MGJhNjlmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25u
ZWN0aW9uRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGUuaApAQCAtNDYsMTEgKzQ2LDYg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXR1cENvbm5lY3Rpb25TY2hlZHVsaW5nKENG
VVJMQ29ubmVjdGlvblJlZikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlSGFuZGxlKCk7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgY29udGludWVXaWxsQ2FjaGVSZXNwb25zZShDRkNhY2hlZFVS
TFJlc3BvbnNlUmVmKSA9IDA7Ci0jaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFD
SykKLSAgICB2aXJ0dWFsIHZvaWQgY29udGludWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVj
dGlvblNwYWNlKGJvb2wpID0gMDsKLSNlbmRpZiAvLyBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRI
X0NBTExCQUNLKQotCiBwcm90ZWN0ZWQ6CiAgICAgUmV0YWluUHRyPENGVVJMUmVzcG9uc2VSZWY+
IHN5bnRoZXNpemVSZWRpcmVjdFJlc3BvbnNlSWZOZWNlc3NhcnkoQ0ZVUkxSZXF1ZXN0UmVmLCBD
RlVSTFJlc3BvbnNlUmVmKTsKICAgICBSZXNvdXJjZVJlcXVlc3QgY3JlYXRlUmVzb3VyY2VSZXF1
ZXN0KENGVVJMUmVxdWVzdFJlZiwgQ0ZVUkxSZXNwb25zZVJlZik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0
aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9w
ZXJhdGlvblF1ZXVlLmNwcAppbmRleCBlZTBjNTJhODBiMDRiODNkOTYzMjI2ZGZlNTZkY2Y2OTEw
N2I2YWI5Li45NWU3ZmZkNTc4NmYwYmFhMjVhNDliMjFkMjkxOTZjMzhiYmNkNTg0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZV
UkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25E
ZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZS5jcHAKQEAgLTI5NCwxNyArMjk0LDIwIEBAIENGQ2Fj
aGVkVVJMUmVzcG9uc2VSZWYgUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdp
dGhPcGVyYXRpb25RdWV1ZTo6CiAgICAgfQogCiAgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyk7Ci0gICAgYXV0byB3b3JrID0gW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgY2FjaGVkUmVzcG9uc2UgPSBSZXRhaW5QdHI8Q0ZDYWNoZWRVUkxSZXNwb25zZVJlZj4o
Y2FjaGVkUmVzcG9uc2UpXSAoKSB7CisgICAgYXV0byB3b3JrID0gW3Byb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgY2FjaGVkUmVzcG9uc2UgPSBSZXRhaW5QdHI8Q0ZDYWNoZWRVUkxSZXNw
b25zZVJlZj4oY2FjaGVkUmVzcG9uc2UpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byYgaGFu
ZGxlID0gcHJvdGVjdGVkVGhpcy0+bV9oYW5kbGU7Ci0gICAgICAgIAotICAgICAgICBpZiAoIXBy
b3RlY3RlZFRoaXMtPmhhc0hhbmRsZSgpIHx8ICFoYW5kbGUtPmNsaWVudCgpIHx8ICFoYW5kbGUt
PmNvbm5lY3Rpb24oKSkgewotICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+Y29udGludWVXaWxs
Q2FjaGVSZXNwb25zZShudWxscHRyKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQor
CisgICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbcHJvdGVjdGVkVGhpcyA9IFdURk1v
dmUocHJvdGVjdGVkVGhpcyldIChDRkNhY2hlZFVSTFJlc3BvbnNlUmVmIHJlc3BvbnNlKSBtdXRh
YmxlIHsKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fY2FjaGVkUmVzcG9uc2VSZXN1bHQg
PSByZXNwb25zZTsKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fc2VtYXBob3JlLnNpZ25h
bCgpOworICAgICAgICB9OworCisgICAgICAgIGlmICghaGFuZGxlIHx8ICFoYW5kbGUtPmNsaWVu
dCgpIHx8ICFoYW5kbGUtPmNvbm5lY3Rpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBjb21wbGV0
aW9uSGFuZGxlcihudWxscHRyKTsKIAogICAgICAgICBMT0coTmV0d29yaywgIkNGTmV0IC0gUmVz
b3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6d2ls
bENhY2hlUmVzcG9uc2UoaGFuZGxlPSVwKSAoJXMpIiwgaGFuZGxlLCBoYW5kbGUtPmZpcnN0UmVx
dWVzdCgpLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCi0gICAgICAgIGhhbmRsZS0+
Y2xpZW50KCktPndpbGxDYWNoZVJlc3BvbnNlQXN5bmMoaGFuZGxlLCBjYWNoZWRSZXNwb25zZS5n
ZXQoKSk7CisgICAgICAgIGhhbmRsZS0+Y2xpZW50KCktPndpbGxDYWNoZVJlc3BvbnNlQXN5bmMo
aGFuZGxlLCBjYWNoZWRSZXNwb25zZS5nZXQoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwogICAgIH07CiAgICAgCiAgICAgaWYgKG1fbWVzc2FnZVF1ZXVlKQpAQCAtMzYzLDE1ICszNjYs
MTcgQEAgQm9vbGVhbiBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9w
ZXJhdGlvblF1ZXVlOjpjYW5SZXNwb25kVG9Qcm8KICAgICBhdXRvIHdvcmsgPSBbcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBwcm90ZWN0aW9uU3BhY2UgPSBSZXRhaW5QdHI8Q0ZVUkxQ
cm90ZWN0aW9uU3BhY2VSZWY+KHByb3RlY3Rpb25TcGFjZSldICgpIG11dGFibGUgewogICAgICAg
ICBhdXRvJiBoYW5kbGUgPSBwcm90ZWN0ZWRUaGlzLT5tX2hhbmRsZTsKICAgICAgICAgCi0gICAg
ICAgIGlmICghcHJvdGVjdGVkVGhpcy0+aGFzSGFuZGxlKCkpIHsKLSAgICAgICAgICAgIHByb3Rl
Y3RlZFRoaXMtPmNvbnRpbnVlQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShm
YWxzZSk7Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRs
ZXIgPSBbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldIChib29sIHJlc3Vs
dCkgbXV0YWJsZSB7CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX2Jvb2xSZXN1bHQgPSBj
YW5BdXRoZW50aWNhdGU7CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3NlbWFwaG9yZS5z
aWduYWwoKTsKICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKCFoYW5kbGUpCisgICAg
ICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwogCiAgICAgICAgIExPRyhO
ZXR3b3JrLCAiQ0ZOZXQgLSBSZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0
aE9wZXJhdGlvblF1ZXVlOjpjYW5SZXNwb25kVG9Qcm90ZWN0aW9uU3BhY2UoaGFuZGxlPSVwKSAo
JXMpIiwgaGFuZGxlLCBoYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnVybCgpLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOwogCi0gICAgICAgIFByb3RlY3Rpb25TcGFjZSBjb3JlUHJvdGVjdGlvblNwYWNl
ID0gUHJvdGVjdGlvblNwYWNlKHByb3RlY3Rpb25TcGFjZS5nZXQoKSk7Ci0gICAgICAgIGhhbmRs
ZS0+Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShjb3JlUHJvdGVjdGlvblNw
YWNlKTsKKyAgICAgICAgaGFuZGxlLT5jYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNw
YWNlKFByb3RlY3Rpb25TcGFjZShwcm90ZWN0aW9uU3BhY2UuZ2V0KCkpLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CiAgICAgfTsKICAgICAKICAgICBpZiAobV9tZXNzYWdlUXVldWUpCkBA
IC0zODksMTIgKzM5NCw2IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVDRlVSTENvbm5lY3Rpb25EZWxl
Z2F0ZVdpdGhPcGVyYXRpb25RdWV1ZTo6Y29udGludWVDYW5BdXRoZW50CiB9CiAjZW5kaWYgLy8g
VVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKIAotdm9pZCBSZXNvdXJjZUhhbmRs
ZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlOjpjb250aW51ZVdpbGxD
YWNoZVJlc3BvbnNlKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYgcmVzcG9uc2UpCi17Ci0gICAgbV9j
YWNoZWRSZXNwb25zZVJlc3VsdCA9IHJlc3BvbnNlOwotICAgIG1fc2VtYXBob3JlLnNpZ25hbCgp
OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBVU0UoQ0ZVUkxDT05O
RUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZUhhbmRsZUNGVVJMQ29ubmVjdGlvbkRlbGVnYXRlV2l0aE9wZXJhdGlvblF1ZXVlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxD
b25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuaAppbmRleCAwOWE2ZjAwNWQ0ODkz
MzdkMzY2NDdmNDcxYTE5M2EzODlhYzA3YzBkLi4xMTM2ODk2ZTdiYjZjNTQyNDY0N2E3ZjJjYjBm
ZWEzNDFhOGQ5YmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL1Jlc291cmNlSGFuZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVl
dWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFu
ZGxlQ0ZVUkxDb25uZWN0aW9uRGVsZWdhdGVXaXRoT3BlcmF0aW9uUXVldWUuaApAQCAtNTgsMTAg
KzU4LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFNlbmRCb2R5RGF0YShDRkluZGV4IHRvdGFs
Qnl0ZXNXcml0dGVuLCBDRkluZGV4IHRvdGFsQnl0ZXNFeHBlY3RlZFRvV3JpdGUpIG92ZXJyaWRl
OwogICAgIEJvb2xlYW4gc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoKSBvdmVycmlkZTsKIAot
ICAgIHZvaWQgY29udGludWVXaWxsQ2FjaGVSZXNwb25zZShDRkNhY2hlZFVSTFJlc3BvbnNlUmVm
KSBvdmVycmlkZTsKICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQogICAg
IEJvb2xlYW4gY2FuUmVzcG9uZFRvUHJvdGVjdGlvblNwYWNlKENGVVJMUHJvdGVjdGlvblNwYWNl
UmVmKSBvdmVycmlkZTsKLSAgICB2b2lkIGNvbnRpbnVlQ2FuQXV0aGVudGljYXRlQWdhaW5zdFBy
b3RlY3Rpb25TcGFjZShib29sKSBvdmVycmlkZTsKICNlbmRpZgogCiAgICAgQmluYXJ5U2VtYXBo
b3JlIG1fc2VtYXBob3JlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jb2NvYS9Db29raWVTdG9yYWdlT2JzZXJ2ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NvY29hL0Nvb2tpZVN0b3JhZ2VPYnNlcnZlci5tbQppbmRleCBmODQxOGQ3
YTg2MjU1NjQ2NDg2YTYzZDM4MzRkOTE0MDMwMTc0ZmRhLi5iYmMxYmViMzJmMzllZDQxZjg1NzIx
N2IyMzFmODc2ZmZiOGEwMGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NvY29hL0Nvb2tpZVN0b3JhZ2VPYnNlcnZlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL0Nvb2tpZVN0b3JhZ2VPYnNlcnZlci5tbQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw2ICsy
OCw3IEBACiAKICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTlNVUkxDb25uZWN0aW9uU1BJLmg+CiAj
aW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgorI2ltcG9ydCA8d3RmL1Byb2Nlc3NQcml2aWxlZ2Uu
aD4KIAogQGludGVyZmFjZSBXZWJOU0hUVFBDb29raWVTdG9yYWdlSW50ZXJuYWwgOiBOU09iamVj
dCB7CiBAcHVibGljCkBAIC03OSw2ICs4MCw3IEBAIENvb2tpZVN0b3JhZ2VPYnNlcnZlcjo6Q29v
a2llU3RvcmFnZU9ic2VydmVyKE5TSFRUUENvb2tpZVN0b3JhZ2UgKmNvb2tpZVN0b3JhZ2UpCiB7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQobV9jb29raWVTdG9yYWdl
KTsKKyAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5B
Y2Nlc3NSYXdDb29raWVzKSk7CiB9CiAKIENvb2tpZVN0b3JhZ2VPYnNlcnZlcjo6fkNvb2tpZVN0
b3JhZ2VPYnNlcnZlcigpCkBAIC05Niw2ICs5OCw3IEBAIHZvaWQgQ29va2llU3RvcmFnZU9ic2Vy
dmVyOjpzdGFydE9ic2VydmluZyhXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVCghbV9jb29raWVDaGFuZ2VDYWxs
YmFjayk7CiAgICAgQVNTRVJUKCFtX29ic2VydmVyQWRhcHRlcik7CisgICAgQVNTRVJUKGhhc1By
b2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOwog
CiAgICAgbV9jb29raWVDaGFuZ2VDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwogICAgIG1f
b2JzZXJ2ZXJBZGFwdGVyID0gYWRvcHROUyhbW1dlYkNvb2tpZU9ic2VydmVyQWRhcHRlciBhbGxv
Y10gaW5pdFdpdGhPYnNlcnZlcjoqdGhpc10pOwpAQCAtMTE5LDYgKzEyMiw3IEBAIHZvaWQgQ29v
a2llU3RvcmFnZU9ic2VydmVyOjpzdG9wT2JzZXJ2aW5nKCkKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogICAgIEFTU0VSVChtX2Nvb2tpZUNoYW5nZUNhbGxiYWNrKTsKICAgICBBU1NFUlQo
bV9vYnNlcnZlckFkYXB0ZXIpOworICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nl
c3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKIAogICAgIFtbTlNOb3RpZmljYXRp
b25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9vYnNlcnZlckFkYXB0ZXIu
Z2V0KCkgbmFtZTpOU0hUVFBDb29raWVNYW5hZ2VyQ29va2llc0NoYW5nZWROb3RpZmljYXRpb24g
b2JqZWN0Om5pbF07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NvY29hL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNvY29hLm1tCmluZGV4
IDNhNzE4MDdiZGIzODI4NmVkMGNmOTZhY2Y1Yjc1YjYwZTI1MjQ2MDkuLmI5YTk1ZmQ0NTljZjVl
NTg1M2YwZTBmODkyNDRhYjVkZWM3NmY4MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY29jb2EvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9OZXR3b3JrU3RvcmFnZVNlc3Np
b25Db2NvYS5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAx
NyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1
LTIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzEsMTEgKzMxLDE0IEBACiAjaW1wb3J0ICJVUkwuaCIKICNpbXBv
cnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhj
ZXB0aW9ucy5oPgorI2ltcG9ydCA8d3RmL1Byb2Nlc3NQcml2aWxlZ2UuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llKGNvbnN0
IENvb2tpZSYgY29va2llKQogeworICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nl
c3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKKwogICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKICAgICBbbnNDb29raWVTdG9yYWdlKCkgc2V0Q29va2llOihOU0hUVFBD
b29raWUgKiljb29raWVdOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CkBAIC00Myw2
ICs0Niw4IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWUoY29uc3QgQ29v
a2llJiBjb29raWUpCiAKIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzZXRDb29raWVzKGNv
bnN0IFZlY3RvcjxDb29raWU+JiBjb29raWVzLCBjb25zdCBVUkwmIHVybCwgY29uc3QgVVJMJiBt
YWluRG9jdW1lbnRVUkwpCiB7CisgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vz
c1ByaXZpbGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOworCiAgICAgUmV0YWluUHRyPE5TTXV0
YWJsZUFycmF5PiBuc0Nvb2tpZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGlu
aXRXaXRoQ2FwYWNpdHk6Y29va2llcy5zaXplKCldKTsKICAgICBmb3IgKGNvbnN0IGF1dG8mIGNv
b2tpZSA6IGNvb2tpZXMpCiAgICAgICAgIFtuc0Nvb2tpZXMgYWRkT2JqZWN0OihOU0hUVFBDb29r
aWUgKiljb29raWVdOwpAQCAtNTQsMTEgKzU5LDE1IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uOjpzZXRDb29raWVzKGNvbnN0IFZlY3RvcjxDb29raWU+JiBjb29raWVzLCBjb25zdCBVUkwm
CiAKIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpkZWxldGVDb29raWUoY29uc3QgQ29va2ll
JiBjb29raWUpCiB7CisgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZp
bGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOworCiAgICAgW25zQ29va2llU3RvcmFnZSgpIGRl
bGV0ZUNvb2tpZTooTlNIVFRQQ29va2llICopY29va2llXTsKIH0KIAogc3RhdGljIFZlY3RvcjxD
b29raWU+IG5zQ29va2llc1RvQ29va2llVmVjdG9yKE5TQXJyYXk8TlNIVFRQQ29va2llICo+ICpu
c0Nvb2tpZXMpCiB7CisgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZp
bGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOworCiAgICAgVmVjdG9yPENvb2tpZT4gY29va2ll
czsKICAgICBjb29raWVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobnNDb29raWVzLmNvdW50KTsK
ICAgICBmb3IgKE5TSFRUUENvb2tpZSAqbnNDb29raWUgaW4gbnNDb29raWVzKQpAQCAtNjksMjEg
Kzc4LDI1IEBAIHN0YXRpYyBWZWN0b3I8Q29va2llPiBuc0Nvb2tpZXNUb0Nvb2tpZVZlY3RvcihO
U0FycmF5PE5TSFRUUENvb2tpZSAqPiAqbnNDb29raWVzCiAKIFZlY3RvcjxDb29raWU+IE5ldHdv
cmtTdG9yYWdlU2Vzc2lvbjo6Z2V0QWxsQ29va2llcygpCiB7CisgICAgQVNTRVJUKGhhc1Byb2Nl
c3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOwogICAg
IHJldHVybiBuc0Nvb2tpZXNUb0Nvb2tpZVZlY3Rvcihuc0Nvb2tpZVN0b3JhZ2UoKS5jb29raWVz
KTsKIH0KIAogVmVjdG9yPENvb2tpZT4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpnZXRDb29raWVz
KGNvbnN0IFVSTCYgdXJsKQogeworICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nl
c3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKICAgICByZXR1cm4gbnNDb29raWVz
VG9Db29raWVWZWN0b3IoW25zQ29va2llU3RvcmFnZSgpIGNvb2tpZXNGb3JVUkw6KE5TVVJMICop
dXJsXSk7CiB9CiAKIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpmbHVzaENvb2tpZVN0b3Jl
KCkKIHsKKyAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpD
YW5BY2Nlc3NSYXdDb29raWVzKSk7CiAgICAgW25zQ29va2llU3RvcmFnZSgpIF9zYXZlQ29va2ll
c107CiB9CiAKIE5TSFRUUENvb2tpZVN0b3JhZ2UgKk5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6bnND
b29raWVTdG9yYWdlKCkgY29uc3QKIHsKKyAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQ
cm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVzKSk7CiAgICAgYXV0byBjZkNvb2tp
ZVN0b3JhZ2UgPSBjb29raWVTdG9yYWdlKCk7CiAgICAgaWYgKCFjZkNvb2tpZVN0b3JhZ2UgfHwg
W05TSFRUUENvb2tpZVN0b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdLl9jb29raWVTdG9y
YWdlID09IGNmQ29va2llU3RvcmFnZSkKICAgICAgICAgcmV0dXJuIFtOU0hUVFBDb29raWVTdG9y
YWdlIHNoYXJlZEhUVFBDb29raWVTdG9yYWdlXTsKQEAgLTEyMyw2ICsxMzYsMTEgQEAgQ0ZVUkxT
dG9yYWdlU2Vzc2lvblJlZiBjcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Npb24oQ0ZTdHJpbmdSZWYg
aWRlbnRpZmllcikKICAgICBDRlVSTENhY2hlU2V0RGlza0NhcGFjaXR5KGNhY2hlLmdldCgpLCAw
KTsgLy8gU2V0dGluZyBkaXNrIGNhY2hlIHNpemUgc2hvdWxkIG5vdCBiZSBuZWNlc3Nhcnkgb25j
ZSA8cmRhcjovL3Byb2JsZW0vMTI2NTY4MTQ+IGlzIGZpeGVkLgogICAgIENGVVJMQ2FjaGVTZXRN
ZW1vcnlDYXBhY2l0eShjYWNoZS5nZXQoKSwgW1tOU1VSTENhY2hlIHNoYXJlZFVSTENhY2hlXSBt
ZW1vcnlDYXBhY2l0eV0pOwogCisgICAgaWYgKCFOZXR3b3JrU3RvcmFnZVNlc3Npb246OnByb2Nl
c3NNYXlVc2VDb29raWVBUEkoKSkKKyAgICAgICAgcmV0dXJuIHN0b3JhZ2VTZXNzaW9uLmxlYWtS
ZWYoKTsKKworICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6
OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKKwogICAgIGF1dG8gY29va2llU3RvcmFnZSA9IGFkb3B0
Q0YoX0NGVVJMU3RvcmFnZVNlc3Npb25Db3B5Q29va2llU3RvcmFnZShrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBzdG9yYWdlU2Vzc2lvbi5nZXQoKSkpOwogICAgIGlmICghY29va2llU3RvcmFnZSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9Db29raWVKYXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9Db29raWVKYXJNYWMubW0KaW5kZXggNmVlYzM2ODYxZDExNDAwMTYwMjlhOGJh
YTUyMzAzYzA4NmVkYzJiOC4uODYyNDIzNzk0NTQ3MWY4OWM4NWM3NGUzMzI3YzdjNzM0ODIzOWY2
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvQ29va2ll
SmFyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL0Nvb2tp
ZUphck1hYy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMt
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTM1LDYgKzM1LDcgQEAKICNpbXBvcnQgIkNvb2tpZVN0b3JhZ2UuaCIK
ICNpbXBvcnQgIlVSTC5oIgogI2ltcG9ydCA8d3RmL09wdGlvbmFsLmg+CisjaW1wb3J0IDx3dGYv
UHJvY2Vzc1ByaXZpbGVnZS5oPgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgog
CiBAaW50ZXJmYWNlIE5TVVJMICgpCkBAIC00NSw2ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogc3RhdGljIE5TQXJyYXkgKmh0dHBDb29raWVzKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYg
Y29va2llU3RvcmFnZSkKIHsKKyAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNz
UHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVzKSk7CiAgICAgaWYgKCFjb29raWVTdG9yYWdl
KQogICAgICAgICByZXR1cm4gW1tOU0hUVFBDb29raWVTdG9yYWdlIHNoYXJlZEhUVFBDb29raWVT
dG9yYWdlXSBjb29raWVzXTsKICAgICAKQEAgLTU0LDYgKzU2LDcgQEAgc3RhdGljIE5TQXJyYXkg
Kmh0dHBDb29raWVzKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgY29va2llU3RvcmFnZSkKIAogc3Rh
dGljIHZvaWQgZGVsZXRlSFRUUENvb2tpZShDRkhUVFBDb29raWVTdG9yYWdlUmVmIGNvb2tpZVN0
b3JhZ2UsIE5TSFRUUENvb2tpZSAqY29va2llKQogeworICAgIEFTU0VSVChoYXNQcm9jZXNzUHJp
dmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKICAgICBpZiAo
IWNvb2tpZVN0b3JhZ2UpIHsKICAgICAgICAgW1tOU0hUVFBDb29raWVTdG9yYWdlIHNoYXJlZEhU
VFBDb29raWVTdG9yYWdlXSBkZWxldGVDb29raWU6Y29va2llXTsKICAgICAgICAgcmV0dXJuOwpA
QCAtNjQsNiArNjcsNyBAQCBzdGF0aWMgdm9pZCBkZWxldGVIVFRQQ29va2llKENGSFRUUENvb2tp
ZVN0b3JhZ2VSZWYgY29va2llU3RvcmFnZSwgTlNIVFRQQ29va2llCiAKIHN0YXRpYyBOU0FycmF5
ICpodHRwQ29va2llc0ZvclVSTChDRkhUVFBDb29raWVTdG9yYWdlUmVmIGNvb2tpZVN0b3JhZ2Us
IE5TVVJMICpmaXJzdFBhcnR5LCBOU1VSTCAqdXJsKQogeworICAgIEFTU0VSVChoYXNQcm9jZXNz
UHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKICAgICBp
ZiAoIWNvb2tpZVN0b3JhZ2UpCiAgICAgICAgIGNvb2tpZVN0b3JhZ2UgPSBfQ0ZIVFRQQ29va2ll
U3RvcmFnZUdldERlZmF1bHQoa0NGQWxsb2NhdG9yRGVmYXVsdCk7CiAKQEAgLTc4LDYgKzgyLDcg
QEAgc3RhdGljIE5TQXJyYXkgKmh0dHBDb29raWVzRm9yVVJMKENGSFRUUENvb2tpZVN0b3JhZ2VS
ZWYgY29va2llU3RvcmFnZSwgTlNVUkwgKmYKICAgICAKIHN0YXRpYyBSZXRhaW5QdHI8TlNBcnJh
eT4gZmlsdGVyQ29va2llcyhOU0FycmF5ICp1bmZpbHRlcmVkQ29va2llcykKIHsKKyAgICBBU1NF
UlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29r
aWVzKSk7CiAgICAgTlNVSW50ZWdlciBjb3VudCA9IFt1bmZpbHRlcmVkQ29va2llcyBjb3VudF07
CiAgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiBmaWx0ZXJlZENvb2tpZXMgPSBhZG9wdE5T
KFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6Y291bnRdKTsKIApAQCAt
MTA0LDYgKzEwOSw4IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gZmlsdGVyQ29va2llcyhO
U0FycmF5ICp1bmZpbHRlcmVkQ29va2llcykKIAogc3RhdGljIE5TQXJyYXkgKmFwcGx5UGFydGl0
aW9uVG9Db29raWVzKE5TU3RyaW5nICpwYXJ0aXRpb24sIE5TQXJyYXkgKmNvb2tpZXMpCiB7Cisg
ICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNz
UmF3Q29va2llcykpOworCiAgICAgLy8gRklYTUUgMjQ3NDc3Mzk6IENGTmV0d29yayBzaG91bGQg
ZXhwb3NlIHRoaXMga2V5IGFzIFNQSQogICAgIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IHBhcnRp
dGlvbktleSA9IEAiU3RvcmFnZVBhcnRpdGlvbiI7CiAKQEAgLTEyNCw2ICsxMzEsNyBAQCBzdGF0
aWMgYm9vbCBjb29raWVzQXJlQmxvY2tlZEZvclVSTChjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Np
b24mIHNlc3Npb24sIGNvbnN0CiAKIHN0YXRpYyBOU0FycmF5ICpjb29raWVzSW5QYXJ0aXRpb25G
b3JVUkwoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFVSTCYgdXJsLCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBmcmFtZUlE
LCBzdGQ6Om9wdGlvbmFsPHVpbnQ2NF90PiBwYWdlSUQpCiB7CisgICAgQVNTRVJUKGhhc1Byb2Nl
c3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOwogICAg
IFN0cmluZyBwYXJ0aXRpb24gPSBzZXNzaW9uLmNvb2tpZVN0b3JhZ2VQYXJ0aXRpb24oZmlyc3RQ
YXJ0eSwgdXJsLCBmcmFtZUlELCBwYWdlSUQpOwogICAgIGlmIChwYXJ0aXRpb24uaXNFbXB0eSgp
KQogICAgICAgICByZXR1cm4gbmlsOwpAQCAtMTY2LDYgKzE3NCw4IEBAIHN0YXRpYyBOU0FycmF5
ICpjb29raWVzRm9yVVJMKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29u
c3QgVVJMJiBmCiBlbnVtIEluY2x1ZGVIVFRQT25seU9yTm90IHsgRG9Ob3RJbmNsdWRlSFRUUE9u
bHksIEluY2x1ZGVIVFRQT25seSB9Owogc3RhdGljIHN0ZDo6cGFpcjxTdHJpbmcsIGJvb2w+IGNv
b2tpZXNGb3JTZXNzaW9uKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29u
c3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgc3RkOjpvcHRpb25hbDx1aW50NjRf
dD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFnZUlELCBJbmNsdWRlSFRUUE9u
bHlPck5vdCBpbmNsdWRlSFRUUE9ubHksIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1
cmVDb29raWVzKQogeworICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2
aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKKwogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKIAogICAgIE5TQXJyYXkgKmNvb2tpZXMgPSBjb29raWVzRm9yVVJMKHNlc3Npb24s
IGZpcnN0UGFydHksIHVybCwgZnJhbWVJRCwgcGFnZUlEKTsKQEAgLTIwMiw2ICsyMTIsOCBAQCBz
dGF0aWMgc3RkOjpwYWlyPFN0cmluZywgYm9vbD4gY29va2llc0ZvclNlc3Npb24oY29uc3QgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiBzZQogCiBzdGF0aWMgdm9pZCBzZXRIVFRQQ29va2llc0ZvclVS
TChDRkhUVFBDb29raWVTdG9yYWdlUmVmIGNvb2tpZVN0b3JhZ2UsIE5TQXJyYXkgKmNvb2tpZXMs
IE5TVVJMICp1cmwsIE5TVVJMICptYWluRG9jdW1lbnRVUkwpCiB7CisgICAgQVNTRVJUKGhhc1By
b2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOwor
CiAgICAgaWYgKCFjb29raWVTdG9yYWdlKSB7CiAgICAgICAgIFtbTlNIVFRQQ29va2llU3RvcmFn
ZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV0gc2V0Q29va2llczpjb29raWVzIGZvclVSTDp1cmwg
bWFpbkRvY3VtZW50VVJMOm1haW5Eb2N1bWVudFVSTF07CiAgICAgICAgIHJldHVybjsKQEAgLTIx
Myw2ICsyMjUsOCBAQCBzdGF0aWMgdm9pZCBzZXRIVFRQQ29va2llc0ZvclVSTChDRkhUVFBDb29r
aWVTdG9yYWdlUmVmIGNvb2tpZVN0b3JhZ2UsIE5TQXJyYXkgKgogCiBzdGF0aWMgdm9pZCBkZWxl
dGVBbGxIVFRQQ29va2llcyhDRkhUVFBDb29raWVTdG9yYWdlUmVmIGNvb2tpZVN0b3JhZ2UpCiB7
CisgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNj
ZXNzUmF3Q29va2llcykpOworCiAgICAgaWYgKCFjb29raWVTdG9yYWdlKSB7CiAgICAgICAgIE5T
SFRUUENvb2tpZVN0b3JhZ2UgKmNvb2tpZVN0b3JhZ2UgPSBbTlNIVFRQQ29va2llU3RvcmFnZSBz
aGFyZWRIVFRQQ29va2llU3RvcmFnZV07CiAgICAgICAgIE5TQXJyYXkgKmNvb2tpZXMgPSBbY29v
a2llU3RvcmFnZSBjb29raWVzXTsKQEAgLTIzOSw2ICsyNTMsOCBAQCBzdGQ6OnBhaXI8U3RyaW5n
LCBib29sPiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBOZXR3b3JrU3RvcmFn
ZVNlc3NpbwogCiB2b2lkIHNldENvb2tpZXNGcm9tRE9NKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBVUkwmIHVybCwgc3Rk
OjpvcHRpb25hbDx1aW50NjRfdD4gZnJhbWVJRCwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcGFn
ZUlELCBjb25zdCBTdHJpbmcmIGNvb2tpZVN0cikKIHsKKyAgICBBU1NFUlQoaGFzUHJvY2Vzc1By
aXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVzKSk7CisKICAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKICAgICAvLyA8cmRhcjovL3Byb2JsZW0vNTYz
Mjg4Mz4gT24gMTAuNSwgTlNIVFRQQ29va2llU3RvcmFnZSB3b3VsZCBzdG9yZSBhbiBlbXB0eSBj
b29raWUsCkBAIC0yNzgsNiArMjk0LDggQEAgdm9pZCBzZXRDb29raWVzRnJvbURPTShjb25zdCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFVSTCYgZmlyc3RQYXIKIAogc3Rh
dGljIE5TSFRUUENvb2tpZUFjY2VwdFBvbGljeSBodHRwQ29va2llQWNjZXB0UG9saWN5KENGSFRU
UENvb2tpZVN0b3JhZ2VSZWYgY29va2llU3RvcmFnZSkKIHsKKyAgICBBU1NFUlQoaGFzUHJvY2Vz
c1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVzKSk7CisKICAg
ICBpZiAoIWNvb2tpZVN0b3JhZ2UpCiAgICAgICAgIHJldHVybiBbW05TSFRUUENvb2tpZVN0b3Jh
Z2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdIGNvb2tpZUFjY2VwdFBvbGljeV07CiAKQEAgLTMx
NCw2ICszMzIsOCBAQCBib29sIGdldFJhd0Nvb2tpZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uJiBzZXNzaW9uLCBjb25zdCBVUkwmIGZpcnN0UGFydHksCiAKIHZvaWQgZGVsZXRlQ29va2ll
KGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgY29va2llTmFtZSkKIHsKKyAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVn
ZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVzKSk7CisKICAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKICAgICBSZXRhaW5QdHI8Q0ZIVFRQQ29va2llU3RvcmFn
ZVJlZj4gY29va2llU3RvcmFnZSA9IHNlc3Npb24uY29va2llU3RvcmFnZSgpOwpAQCAtMzUwLDYg
KzM3MCw4IEBAIHZvaWQgZGVsZXRlQWxsQ29va2llcyhjb25zdCBOZXR3b3JrU3RvcmFnZVNlc3Np
b24mIHNlc3Npb24pCiAKIHZvaWQgZGVsZXRlQ29va2llc0Zvckhvc3RuYW1lcyhjb25zdCBOZXR3
b3JrU3RvcmFnZVNlc3Npb24mIHNlc3Npb24sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBob3N0bmFt
ZXMpCiB7CisgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6
Q2FuQWNjZXNzUmF3Q29va2llcykpOworCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
OwogCiAgICAgUmV0YWluUHRyPENGSFRUUENvb2tpZVN0b3JhZ2VSZWY+IGNvb2tpZVN0b3JhZ2Ug
PSBzZXNzaW9uLmNvb2tpZVN0b3JhZ2UoKTsKQEAgLTM3OSw2ICs0MDEsOCBAQCB2b2lkIGRlbGV0
ZUNvb2tpZXNGb3JIb3N0bmFtZXMoY29uc3QgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzZXNzaW9u
LCBjb25zdCBWZWN0bwogCiB2b2lkIGRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKGNvbnN0
IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc2Vzc2lvbiwgV2FsbFRpbWUgdGltZVBvaW50KQogewor
ICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vz
c1Jhd0Nvb2tpZXMpKTsKKwogICAgIGlmICghW05TSFRUUENvb2tpZVN0b3JhZ2UgaW5zdGFuY2Vz
UmVzcG9uZFRvU2VsZWN0b3I6QHNlbGVjdG9yKHJlbW92ZUNvb2tpZXNTaW5jZURhdGU6KV0pCiAg
ICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvTmV0d29ya1N0YXRlTm90aWZpZXJNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9tYWMvTmV0d29ya1N0YXRlTm90aWZpZXJNYWMuY3BwCmluZGV4IDYxZGY3
ODNiYjFkOTBhOTgzNTlkNTlkNzI5NzBkODY5OTE1YWQ2ZDAuLmIxYjc2MDAzZjFlZTA5YTQzODdh
NTUzODg0N2MxZmEwNmFhMzM1NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL05ldHdvcmtTdGF0ZU5vdGlmaWVyTWFjLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9OZXR3b3JrU3RhdGVOb3RpZmllck1hYy5jcHAKQEAg
LTYxLDggKzYxLDcgQEAgdm9pZCBOZXR3b3JrU3RhdGVOb3RpZmllcjo6dXBkYXRlU3RhdGVXaXRo
b3V0Tm90aWZ5aW5nKCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGF1dG8ga2V5
ID0gYWRvcHRDRihTQ0R5bmFtaWNTdG9yZUtleUNyZWF0ZU5ldHdvcmtJbnRlcmZhY2VFbnRpdHko
MCwga1NDRHluYW1pY1N0b3JlRG9tYWluU3RhdGUsIGludGVyZmFjZU5hbWUsIGtTQ0VudE5ldElQ
djQpKTsKLSAgICAgICAgYXV0byBrZXlMaXN0ID0gYWRvcHRDRihTQ0R5bmFtaWNTdG9yZUNvcHlL
ZXlMaXN0KG1fc3RvcmUuZ2V0KCksIGtleS5nZXQoKSkpOwotICAgICAgICBpZiAoa2V5TGlzdCAm
JiBDRkFycmF5R2V0Q291bnQoa2V5TGlzdC5nZXQoKSkpIHsKKyAgICAgICAgaWYgKFNDRHluYW1p
Y1N0b3JlQ29weVZhbHVlKG1fc3RvcmUuZ2V0KCksIGtleS5nZXQoKSkpIHsKICAgICAgICAgICAg
IG1faXNPbkxpbmUgPSB0cnVlOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRs
ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFu
ZGxlTWFjLm1tCmluZGV4IGVmNjFiOTM0NDA2MWI4OTMxZjQ2ZDBjZDVmZWY0N2U0YTJiMjFkNGUu
LjI5N2QzZjZmYWFmZWNlZWFiYTk3YjY3ODcxODBhODg5OTVhYWNlYjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFj
Lm1tCkBAIC01NjQsMTggKzU2NCwxMiBAQCBib29sIFJlc291cmNlSGFuZGxlOjp0cnlIYW5kbGVQ
YXNzd29yZEJhc2VkQXV0aGVudGljYXRpb24oY29uc3QgQXV0aGVudGljYXRpb25DaAogfQogCiAj
aWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKLWJvb2wgUmVzb3VyY2VIYW5k
bGU6OmNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoY29uc3QgUHJvdGVjdGlv
blNwYWNlJiBwcm90ZWN0aW9uU3BhY2UpCit2b2lkIFJlc291cmNlSGFuZGxlOjpjYW5BdXRoZW50
aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgcHJvdGVj
dGlvblNwYWNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIGlmIChSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50ID0gdGhpcy0+Y2xp
ZW50KCkpCi0gICAgICAgIGNsaWVudC0+Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25T
cGFjZUFzeW5jKHRoaXMsIHByb3RlY3Rpb25TcGFjZSk7CisgICAgICAgIGNsaWVudC0+Y2FuQXV0
aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZUFzeW5jKHRoaXMsIHByb3RlY3Rpb25TcGFj
ZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgIGVsc2UKLSAgICAgICAgY29udGlu
dWVDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKGZhbHNlKTsKLSAgICByZXR1
cm4gZmFsc2U7IC8vIElnbm9yZWQgYnkgY2FsbGVyLgotfQotCi12b2lkIFJlc291cmNlSGFuZGxl
Ojpjb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoYm9vbCByZXN1
bHQpCi17Ci0gICAgWyhpZClkZWxlZ2F0ZSgpIGNvbnRpbnVlQ2FuQXV0aGVudGljYXRlQWdhaW5z
dFByb3RlY3Rpb25TcGFjZTpyZXN1bHRdOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxz
ZSk7CiB9CiAjZW5kaWYKIApAQCAtNjU4LDExICs2NTIsNiBAQCB2b2lkIFJlc291cmNlSGFuZGxl
OjpyZWNlaXZlZENoYWxsZW5nZVJlamVjdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYgYwogICAgIGNsZWFyQXV0aGVudGljYXRpb24oKTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRs
ZTo6Y29udGludWVXaWxsQ2FjaGVSZXNwb25zZShOU0NhY2hlZFVSTFJlc3BvbnNlICpyZXNwb25z
ZSkKLXsKLSAgICBbKGlkKWRlbGVnYXRlKCkgY29udGludWVXaWxsQ2FjaGVSZXNwb25zZTpyZXNw
b25zZV07Ci19Ci0KIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmdldENvbm5lY3Rpb25UaW1pbmdEYXRh
KE5TVVJMQ29ubmVjdGlvbiAqY29ubmVjdGlvbiwgTmV0d29ya0xvYWRNZXRyaWNzJiB0aW1pbmcp
CiB7CiAgICAgY29weVRpbWluZ0RhdGEoW2Nvbm5lY3Rpb24gX3RpbWluZ0RhdGFdLCB0aW1pbmcp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29y
ZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1
ZXVlRGVsZWdhdGUuaAppbmRleCAzNjU1MGFiOGYzOGJmMTAwODE4Zjk1NTFkMzY3ZjBhNTk4MGRl
YWQyLi40ODM1NDI2NGU2OGEyZTA5NWI4N2Q1M2Q5M2U1YTllMjA2NDljYzQ1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5k
bGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdh
dGUuaApAQCAtNTEsOCArNTEsNiBAQCBjbGFzcyBSZXNvdXJjZUhhbmRsZTsKIAogLSAodm9pZClk
ZXRhY2hIYW5kbGU7CiAtIChpZClpbml0V2l0aEhhbmRsZTooV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGUqKWhhbmRsZSBtZXNzYWdlUXVldWU6KE1lc3NhZ2VRdWV1ZTxGdW5jdGlvbjx2b2lkKCk+Piop
bWVzc2FnZVF1ZXVlOwotLSAodm9pZCljb250aW51ZUNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90
ZWN0aW9uU3BhY2U6KEJPT0wpY2FuQXV0aGVudGljYXRlOwotLSAodm9pZCljb250aW51ZVdpbGxD
YWNoZVJlc3BvbnNlOihOU0NhY2hlZFVSTFJlc3BvbnNlICopcmVzcG9uc2U7CiBAZW5kCiAKIEBp
bnRlcmZhY2UgV2ViQ29yZVJlc291cmNlSGFuZGxlV2l0aENyZWRlbnRpYWxTdG9yYWdlQXNPcGVy
YXRpb25RdWV1ZURlbGVnYXRlIDogV2ViQ29yZVJlc291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1
ZURlbGVnYXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09wZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9XZWJDb3JlUmVzb3VyY2VIYW5kbGVBc09w
ZXJhdGlvblF1ZXVlRGVsZWdhdGUubW0KaW5kZXggMTNkMTFhODgxZWMzNTFiMWZlMmI1ZDI2ZTE3
NjA5MjNlNzM5OWJjNC4uYTVhYjM2NzU0NjJkYzY2ODBiYjk5NDUzMTY2ODA4MDg2NDIzNDQwYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvV2ViQ29yZVJl
c291cmNlSGFuZGxlQXNPcGVyYXRpb25RdWV1ZURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzT3BlcmF0aW9u
UXVldWVEZWxlZ2F0ZS5tbQpAQCAtMTE0LDE4ICsxMTQsNiBAQCAtICh2b2lkKWRlYWxsb2MKICAg
ICBbc3VwZXIgZGVhbGxvY107CiB9CiAKLS0gKHZvaWQpY29udGludWVDYW5BdXRoZW50aWNhdGVB
Z2FpbnN0UHJvdGVjdGlvblNwYWNlOihCT09MKWNhbkF1dGhlbnRpY2F0ZQotewotICAgIG1fYm9v
bFJlc3VsdCA9IGNhbkF1dGhlbnRpY2F0ZTsKLSAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFs
KG1fc2VtYXBob3JlKTsKLX0KLQotLSAodm9pZCljb250aW51ZVdpbGxDYWNoZVJlc3BvbnNlOihO
U0NhY2hlZFVSTFJlc3BvbnNlICopcmVzcG9uc2UKLXsKLSAgICBtX2NhY2hlZFJlc3BvbnNlUmVz
dWx0ID0gcmVzcG9uc2U7Ci0gICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbChtX3NlbWFwaG9y
ZSk7Ci19Ci0KIC0gKE5TVVJMUmVxdWVzdCAqKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAq
KWNvbm5lY3Rpb24gd2lsbFNlbmRSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKiluZXdSZXF1ZXN0IHJl
ZGlyZWN0UmVzcG9uc2U6KE5TVVJMUmVzcG9uc2UgKilyZWRpcmVjdFJlc3BvbnNlCiB7CiAgICAg
QVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CkBAIC0yMDYsNyArMTk0LDEwIEBAIC0gKEJPT0wpY29u
bmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiBjYW5BdXRoZW50aWNhdGVBZ2Fp
bnN0UHJvdGVjdGlvCiAgICAgICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKG1fc2Vt
YXBob3JlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBtX2hhbmRs
ZS0+Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShQcm90ZWN0aW9uU3BhY2Uo
cHJvdGVjdGlvblNwYWNlLmdldCgpKSk7CisgICAgICAgIG1faGFuZGxlLT5jYW5BdXRoZW50aWNh
dGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKFByb3RlY3Rpb25TcGFjZShwcm90ZWN0aW9uU3BhY2Uu
Z2V0KCkpLCBbc2VsZiwgcHJvdGVjdGVkU2VsZiA9IFdURk1vdmUocHJvdGVjdGVkU2VsZildIChi
b29sIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICBtX2Jvb2xSZXN1bHQgPSByZXN1bHQ7
CisgICAgICAgICAgICBkaXNwYXRjaF9zZW1hcGhvcmVfc2lnbmFsKG1fc2VtYXBob3JlKTsKKyAg
ICAgICAgfSk7CiAgICAgfTsKIAogICAgIFtzZWxmIGNhbGxGdW5jdGlvbk9uTWFpblRocmVhZDpX
VEZNb3ZlKHdvcmspXTsKQEAgLTM2NCw3ICszNTUsMTAgQEAgLSAoTlNDYWNoZWRVUkxSZXNwb25z
ZSAqKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gd2lsbENhY2hlUmVz
cG8KICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIG1faGFuZGxlLT5j
bGllbnQoKS0+d2lsbENhY2hlUmVzcG9uc2VBc3luYyhtX2hhbmRsZSwgY2FjaGVkUmVzcG9uc2Uu
Z2V0KCkpOworICAgICAgICBtX2hhbmRsZS0+Y2xpZW50KCktPndpbGxDYWNoZVJlc3BvbnNlQXN5
bmMobV9oYW5kbGUsIGNhY2hlZFJlc3BvbnNlLmdldCgpLCBbc2VsZiwgcHJvdGVjdGVkU2VsZiA9
IFdURk1vdmUocHJvdGVjdGVkU2VsZildIChOU0NhY2hlZFVSTFJlc3BvbnNlICogcmVzcG9uc2Up
IG11dGFibGUgeworICAgICAgICAgICAgbV9jYWNoZWRSZXNwb25zZVJlc3VsdCA9IHJlc3BvbnNl
OworICAgICAgICAgICAgZGlzcGF0Y2hfc2VtYXBob3JlX3NpZ25hbChtX3NlbWFwaG9yZSk7Cisg
ICAgICAgIH0pOwogICAgIH07CiAKICAgICBbc2VsZiBjYWxsRnVuY3Rpb25Pbk1haW5UaHJlYWQ6
V1RGTW92ZSh3b3JrKV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwv
U1FMaXRlU3RhdGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVT
dGF0ZW1lbnQuY3BwCmluZGV4IGM4ZjMwYmE1ZDg1NzAzZmY3ZWE4ZDQ4MWEzZmI0YTljZjJiNDYy
NDcuLjc3MjA4YjFmNDM5OGIyNDMwZTJmNDAwNDM2ZmMyODU3ODI0YjVmOGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVTdGF0ZW1lbnQuY3BwCkBAIC0zODMsOCAr
MzgzLDEwIEBAIFN0cmluZyBTUUxpdGVTdGF0ZW1lbnQ6OmdldENvbHVtbkJsb2JBc1N0cmluZyhp
bnQgY29sKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKICAgICBjb25zdCB2b2lkKiBibG9i
ID0gc3FsaXRlM19jb2x1bW5fYmxvYihtX3N0YXRlbWVudCwgY29sKTsKLSAgICBpZiAoIWJsb2Ip
CisgICAgaWYgKG1fZGF0YWJhc2UubGFzdEVycm9yKCkgIT0gU1FMSVRFX09LKQogICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7CisgICAgaWYgKCFibG9iKQorICAgICAgICByZXR1cm4gZW1wdHlTdHJp
bmcoKTsKIAogICAgIGludCBzaXplID0gc3FsaXRlM19jb2x1bW5fYnl0ZXMobV9zdGF0ZW1lbnQs
IGNvbCk7CiAgICAgaWYgKHNpemUgPCAwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd3BlL1BsYXRmb3JtUGFzdGVib2FyZFdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93cGUvUGxhdGZvcm1QYXN0ZWJvYXJkV1BFLmNwcAppbmRleCA2MTBmMmZkMmEzZWMwZGVh
Nzk3YWFiYzY1YWM2Y2I4YmNkNDRjYjA1Li4wYzI0NDBiNWZmYjM1NzE5NmQyNjZhMDcxMDE2ZDkw
ZDRmNzIzMmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUGxhdGZv
cm1QYXN0ZWJvYXJkV1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUGxh
dGZvcm1QYXN0ZWJvYXJkV1BFLmNwcApAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgIlBsYXRm
b3JtUGFzdGVib2FyZC5oIgogCiAjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgotI2luY2x1ZGUgPG1h
cD4KICNpbmNsdWRlIDx3cGUvcGFzdGVib2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25z
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvT3JkZXJJdGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL09yZGVySXRlcmF0b3IuaAppbmRleCBkNDk1N2I3N2Y3N2EwNzg3M2IwZWZlNDJhNzVkM2U5
OWY5YmRiN2U0Li5mNDczMDM0YzE4MmIzODUyNTU0OTUzMzcyZDgzNDAwYmZjNTc1MTA1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvT3JkZXJJdGVyYXRvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9PcmRlckl0ZXJhdG9yLmgKQEAgLTMxLDcgKzMxLDcgQEAK
IAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlIDxzZXQ+CisjaW5jbHVkZSA8d3RmL1N0ZFNldC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU2LDcgKzU2LDcgQEAgcHJpdmF0ZToKICAg
ICBSZW5kZXJCb3gmIG1fY29udGFpbmVyQm94OwogICAgIFJlbmRlckJveCogbV9jdXJyZW50Q2hp
bGQ7CiAKLSAgICB1c2luZyBPcmRlclZhbHVlcyA9IHN0ZDo6c2V0PGludCwgc3RkOjpsZXNzPGlu
dD4sIEZhc3RBbGxvY2F0b3I8aW50Pj47CisgICAgdXNpbmcgT3JkZXJWYWx1ZXMgPSBTdGRTZXQ8
aW50PjsKICAgICBPcmRlclZhbHVlcyBtX29yZGVyVmFsdWVzOwogICAgIE9yZGVyVmFsdWVzOjpj
b25zdF9pdGVyYXRvciBtX29yZGVyVmFsdWVzSXRlcmF0b3I7CiAgICAgYm9vbCBtX2lzUmVzZXQg
eyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdy
aWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4IDEy
MGU5N2NmMGFkOThlMWNmZjA1ZDA5NzFlOWY0MDA1MDdkYzc1YmYuLmU4MzUyMTliMzFhYzdlZmE0
OGQ4MTk1YTcwNTQxMTgwZmQ2YmVmMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
R3JpZC5jcHAKQEAgLTUwNiwxMiArNTA2LDE1IEBAIHVuc2lnbmVkIFJlbmRlckdyaWQ6OmNvbXB1
dGVBdXRvUmVwZWF0VHJhY2tzQ291bnQoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjCiAg
ICAgaWYgKGZyZWVTcGFjZSA8PSAwKQogICAgICAgICByZXR1cm4gYXV0b1JlcGVhdFRyYWNrTGlz
dExlbmd0aDsKIAotICAgIHVuc2lnbmVkIHJlcGV0aXRpb25zID0gMSArIChmcmVlU3BhY2UgLyAo
YXV0b1JlcGVhdFRyYWNrc1NpemUgKyBnYXBTaXplKSkudG9JbnQoKTsKKyAgICBMYXlvdXRVbml0
IGF1dG9SZXBlYXRTaXplV2l0aEdhcCA9IGF1dG9SZXBlYXRUcmFja3NTaXplICsgZ2FwU2l6ZTsK
KyAgICB1bnNpZ25lZCByZXBldGl0aW9ucyA9IDEgKyAoZnJlZVNwYWNlIC8gYXV0b1JlcGVhdFNp
emVXaXRoR2FwKS50b1Vuc2lnbmVkKCk7CisgICAgZnJlZVNwYWNlIC09IGF1dG9SZXBlYXRTaXpl
V2l0aEdhcCAqIChyZXBldGl0aW9ucyAtIDEpOworICAgIEFTU0VSVChmcmVlU3BhY2UgPj0gMCk7
CiAKICAgICAvLyBQcm92aWRlZCB0aGUgZ3JpZCBjb250YWluZXIgZG9lcyBub3QgaGF2ZSBhIGRl
ZmluaXRlIHNpemUgb3IgbWF4LXNpemUgaW4gdGhlIHJlbGV2YW50IGF4aXMsCiAgICAgLy8gaWYg
dGhlIG1pbiBzaXplIGlzIGRlZmluaXRlIHRoZW4gdGhlIG51bWJlciBvZiByZXBldGl0aW9ucyBp
cyB0aGUgbGFyZ2VzdCBwb3NzaWJsZSBwb3NpdGl2ZQogICAgIC8vIGludGVnZXIgdGhhdCBmdWxm
aWxscyB0aGF0IG1pbmltdW0gcmVxdWlyZW1lbnQuCi0gICAgaWYgKG5lZWRzVG9GdWxmaWxsTWlu
aW11bVNpemUpCisgICAgaWYgKG5lZWRzVG9GdWxmaWxsTWluaW11bVNpemUgJiYgZnJlZVNwYWNl
KQogICAgICAgICArK3JlcGV0aXRpb25zOwogCiAgICAgcmV0dXJuIHJlcGV0aXRpb25zICogYXV0
b1JlcGVhdFRyYWNrTGlzdExlbmd0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
LmNwcAppbmRleCA2YWUwNDdjNDY5ZmU5Y2RhYmVmMjFjZGRjYWVjOTY3MzMyNWVkYTdhLi5lNTVi
ZTFlNmFkODRmNmNkNmJjMTY3NDRlYWQ3Zjc2NzRiNzBhMDMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHQuY3BwCkBAIC0yNjMsMTMgKzI2MywxNCBAQCB2b2lkIFJlbmRlclRl
eHQ6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHls
ZSogb2xkU3R5bAogICAgIGlmICghb2xkU3R5bGUpIHsKICAgICAgICAgbV91c2VCYWNrc2xhc2hB
c1llblN5bWJvbCA9IGNvbXB1dGVVc2VCYWNrc2xhc2hBc1llblN5bWJvbCgpOwogICAgICAgICBu
ZWVkc1Jlc2V0VGV4dCA9IG1fdXNlQmFja3NsYXNoQXNZZW5TeW1ib2w7Ci0gICAgICAgIC8vIEl0
IHNob3VsZCByZWFsbHkgYmUgY29tcHV0ZWQgaW4gdGhlIGMndG9yLCBidXQgZHVyaW5nIGNvbnN0
cnVjdGlvbiB3ZSBkb24ndCBoYXZlIHBhcmVudCB5ZXQgLWFuZCBSZW5kZXJUZXh0IHN0eWxlID09
IHBhcmVudCgpLT5zdHlsZSgpCi0gICAgICAgIG1fY2FuVXNlU2ltcGxpZmllZFRleHRNZWFzdXJp
bmcgPSBjb21wdXRlQ2FuVXNlU2ltcGxpZmllZFRleHRNZWFzdXJpbmcoKTsKICAgICB9IGVsc2Ug
aWYgKG9sZFN0eWxlLT5mb250Q2FzY2FkZSgpLnVzZUJhY2tzbGFzaEFzWWVuU3ltYm9sKCkgIT0g
bmV3U3R5bGUuZm9udENhc2NhZGUoKS51c2VCYWNrc2xhc2hBc1llblN5bWJvbCgpKSB7CiAgICAg
ICAgIG1fdXNlQmFja3NsYXNoQXNZZW5TeW1ib2wgPSBjb21wdXRlVXNlQmFja3NsYXNoQXNZZW5T
eW1ib2woKTsKICAgICAgICAgbmVlZHNSZXNldFRleHQgPSB0cnVlOwogICAgIH0KIAorICAgIGlm
ICghb2xkU3R5bGUgfHwgb2xkU3R5bGUtPmZvbnRDYXNjYWRlKCkgIT0gbmV3U3R5bGUuZm9udENh
c2NhZGUoKSkKKyAgICAgICAgbV9jYW5Vc2VTaW1wbGlmaWVkVGV4dE1lYXN1cmluZyA9IGNvbXB1
dGVDYW5Vc2VTaW1wbGlmaWVkVGV4dE1lYXN1cmluZygpOworCiAgICAgRVRleHRUcmFuc2Zvcm0g
b2xkVHJhbnNmb3JtID0gb2xkU3R5bGUgPyBvbGRTdHlsZS0+dGV4dFRyYW5zZm9ybSgpIDogVFRO
T05FOwogICAgIEVUZXh0U2VjdXJpdHkgb2xkU2VjdXJpdHkgPSBvbGRTdHlsZSA/IG9sZFN0eWxl
LT50ZXh0U2VjdXJpdHkoKSA6IFRTTk9ORTsKICAgICBpZiAobmVlZHNSZXNldFRleHQgfHwgb2xk
VHJhbnNmb3JtICE9IG5ld1N0eWxlLnRleHRUcmFuc2Zvcm0oKSB8fCBvbGRTZWN1cml0eSAhPSBu
ZXdTdHlsZS50ZXh0U2VjdXJpdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5tbQppbmRleCA3YzFjOTQzMWE1ZGUyNWI1ZDFjNTFhMWQ5NjJlNjJkZjlmYmM0Y2U5
Li5kMGFhMDUzNTM0NzViYjQzNDllYWQ4MDJmMjZlZTI5OTQwZGRmOWU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC01NTAsNiArNTUwLDIyIEBAIENv
bG9yIFJlbmRlclRoZW1lTWFjOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSUQsIGJv
b2wgdXNlU3lzdGVtQXBwZWFyYW5jCiAgICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3Rvcih3
aW5kb3dGcmFtZUNvbG9yKTsKICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVXaW5kb3d0ZXh0Ogog
ICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Iod2luZG93RnJhbWVUZXh0Q29sb3IpOwor
ICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtSGVhZGVyVGV4dDoKKyAgICAgICAg
ICAgICAgICByZXR1cm4gQHNlbGVjdG9yKGhlYWRlclRleHRDb2xvcik7CisgICAgICAgICAgICBj
YXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1UZXh0QmFja2dyb3VuZDoKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gQHNlbGVjdG9yKHRleHRCYWNrZ3JvdW5kQ29sb3IpOworICAgICAgICAgICAgY2FzZSBD
U1NWYWx1ZUFwcGxlU3lzdGVtQWx0ZXJuYXRlU2VsZWN0ZWRUZXh0OgorICAgICAgICAgICAgICAg
IHJldHVybiBAc2VsZWN0b3IoYWx0ZXJuYXRlU2VsZWN0ZWRDb250cm9sVGV4dENvbG9yKTsKKyAg
ICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbUxhYmVsOgorICAgICAgICAgICAgICAg
IHJldHVybiBAc2VsZWN0b3IobGFiZWxDb2xvcik7CisgICAgICAgICAgICBjYXNlIENTU1ZhbHVl
QXBwbGVTeXN0ZW1TZWNvbmRhcnlMYWJlbDoKKyAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVj
dG9yKHNlY29uZGFyeUxhYmVsQ29sb3IpOworICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxl
U3lzdGVtVGVydGlhcnlMYWJlbDoKKyAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHRl
cnRpYXJ5TGFiZWxDb2xvcik7CisgICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1R
dWF0ZXJuYXJ5TGFiZWw6CisgICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihxdWF0ZXJu
YXJ5TGFiZWxDb2xvcik7CisgICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1Hcmlk
OgorICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3IoZ3JpZENvbG9yKTsKICAgICAgICAg
ICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVdpcmVsZXNzUGxheWJhY2tUYXJnZXRBY3RpdmU6CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1CbHVlQ29sb3IpOwogICAgICAgICAg
ICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtQmx1ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCmluZGV4IDI1OWZh
ODFkMjRhNzI2NDVkNjUzMmE1ODAxNTFhMGU1Zjk5ZDVhNzQuLjlmNzFmOTZhMThhZjg4MmZlYzIw
OGM5NDlmYmQ1ZTJjNTQzN2Q5ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcApAQCAtMzEsNiArMzEsNyBAQAog
I2luY2x1ZGUgIkNvbXBvc2VkVHJlZUFuY2VzdG9ySXRlcmF0b3IuaCIKICNpbmNsdWRlICJDb21w
b3NlZFRyZWVJdGVyYXRvci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9j
dW1lbnRUaW1lbGluZS5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MUGFy
c2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSFRNTFNsb3RFbGVtZW50LmgiCkBAIC00MSw2ICs0Miw3
IEBACiAjaW5jbHVkZSAiUmVuZGVyRnVsbFNjcmVlbi5oIgogI2luY2x1ZGUgIlJlbmRlcklubGlu
ZS5oIgogI2luY2x1ZGUgIlJlbmRlclRyZWVVcGRhdGVyR2VuZXJhdGVkQ29udGVudC5oIgorI2lu
Y2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVy
LmgiCiAjaW5jbHVkZSAiU3R5bGVUcmVlUmVzb2x2ZXIuaCIKICNpbmNsdWRlIDx3dGYvU3lzdGVt
VHJhY2luZy5oPgpAQCAtNTQyLDE0ICs1NDQsMjEgQEAgdm9pZCBSZW5kZXJUcmVlVXBkYXRlcjo6
dGVhckRvd25SZW5kZXJlcnMoRWxlbWVudCYgcm9vdCwgVGVhcmRvd25UeXBlIHRlYXJkb3duVHkK
ICAgICAgICAgdGVhcmRvd25TdGFjay5hcHBlbmQoJmVsZW1lbnQpOwogICAgIH07CiAKLSAgICBh
dXRvJiBhbmltYXRpb25Db250cm9sbGVyID0gcm9vdC5kb2N1bWVudCgpLmZyYW1lKCktPmFuaW1h
dGlvbigpOworICAgIGF1dG8mIGRvY3VtZW50ID0gcm9vdC5kb2N1bWVudCgpOworICAgIGF1dG8q
IHRpbWVsaW5lID0gZG9jdW1lbnQuZXhpc3RpbmdUaW1lbGluZSgpOworICAgIGF1dG8mIGFuaW1h
dGlvbkNvbnRyb2xsZXIgPSBkb2N1bWVudC5mcmFtZSgpLT5hbmltYXRpb24oKTsgICAgCiAKICAg
ICBhdXRvIHBvcCA9IFsmXSAodW5zaWduZWQgZGVwdGgpIHsKICAgICAgICAgd2hpbGUgKHRlYXJk
b3duU3RhY2suc2l6ZSgpID4gZGVwdGgpIHsKICAgICAgICAgICAgIGF1dG8mIGVsZW1lbnQgPSAq
dGVhcmRvd25TdGFjay50YWtlTGFzdCgpOwogCi0gICAgICAgICAgICBpZiAodGVhcmRvd25UeXBl
ID09IFRlYXJkb3duVHlwZTo6RnVsbCB8fCB0ZWFyZG93blR5cGUgPT0gVGVhcmRvd25UeXBlOjpS
ZW5kZXJlclVwZGF0ZUNhbmNlbGluZ0FuaW1hdGlvbnMpCi0gICAgICAgICAgICAgICAgYW5pbWF0
aW9uQ29udHJvbGxlci5jYW5jZWxBbmltYXRpb25zKGVsZW1lbnQpOworICAgICAgICAgICAgaWYg
KHRlYXJkb3duVHlwZSA9PSBUZWFyZG93blR5cGU6OkZ1bGwgfHwgdGVhcmRvd25UeXBlID09IFRl
YXJkb3duVHlwZTo6UmVuZGVyZXJVcGRhdGVDYW5jZWxpbmdBbmltYXRpb25zKSB7CisgICAgICAg
ICAgICAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuY3Nz
QW5pbWF0aW9uc0FuZENTU1RyYW5zaXRpb25zQmFja2VkQnlXZWJBbmltYXRpb25zRW5hYmxlZCgp
KSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0aW1lbGluZSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHRpbWVsaW5lLT5jYW5jZWxBbmltYXRpb25zRm9yRWxlbWVudChlbGVtZW50KTsKKyAg
ICAgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uQ29udHJv
bGxlci5jYW5jZWxBbmltYXRpb25zKGVsZW1lbnQpOworICAgICAgICAgICAgfQogCiAgICAgICAg
ICAgICBpZiAodGVhcmRvd25UeXBlID09IFRlYXJkb3duVHlwZTo6RnVsbCkKICAgICAgICAgICAg
ICAgICBlbGVtZW50LmNsZWFySG92ZXJBbmRBY3RpdmVTdGF0dXNCZWZvcmVEZXRhY2hpbmdSZW5k
ZXJlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYS5o
IGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlQXJlYS5oCmluZGV4IDUzNDFjYTY1ZTg4
ZmM3MjgzNzYwZWRhYWM1YjZlOGZmYThkMDQwYTAuLjk3MzJiNjZjN2FmODU1YWY4ZWYzZmE2N2Nj
MGNhZDk0OTBiODY0MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFn
ZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VBcmVhLmgKQEAgLTU5
LDcgKzU5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWNyZW1lbnRBY2Nlc3NDb3Vu
dCgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBjbG9zZURhdGFiYXNlSWZJZGxlKCkgeyB9CiAKLSAg
ICB2aXJ0dWFsIFNlY3VyaXR5T3JpZ2luRGF0YSBzZWN1cml0eU9yaWdpbigpIGNvbnN0ID0gMDsK
KyAgICB2aXJ0dWFsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4oKSBj
b25zdCA9IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5jcHAKaW5kZXggOGM0YWY0
MmY4YWExOTViM2M2ZjJjMTQ1YzI4OGM4MGRkMjg5NGE5NC4uNjljMWIzMzUzMDhiYmZjZDk3YmE0
ODU2NTNlMTZhNmM5NzU5NWM0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmNwcApAQCAtNzgsNyArNzgsNyBAQCBSZWZQdHI8U3Rv
cmFnZUFyZWE+IFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjo6bG9jYWxTdG9yYWdlQXJlYShEb2N1
bWVudCYgZG9jdW1lbgogICAgIGVsc2UKICAgICAgICAgc3RvcmFnZU5hbWVzcGFjZSA9ICZsb2Nh
bFN0b3JhZ2VOYW1lc3BhY2UoKTsKIAotICAgIHJldHVybiBzdG9yYWdlTmFtZXNwYWNlLT5zdG9y
YWdlQXJlYShTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbihkb2N1bWVudC5z
ZWN1cml0eU9yaWdpbigpKSk7CisgICAgcmV0dXJuIHN0b3JhZ2VOYW1lc3BhY2UtPnN0b3JhZ2VB
cmVhKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpKTsKIH0KIAogU3RvcmFnZU5hbWVz
cGFjZSYgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOjpsb2NhbFN0b3JhZ2VOYW1lc3BhY2UoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDY4ZjQxOWIxMDRhMjM4NjVmODM5
OGYzZjRlYjAyYTU1MzRkMDlhZTUuLjRmYzIzM2Y2MmI3YTk3MmFkYTdjZTcyYjQxNGQxMDM4ZGZm
MmZkZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTIyMCwxMCArMjIw
LDYgQEAKICNpbmNsdWRlICJNb2NrTWVkaWFQbGF5ZXJNZWRpYVNvdXJjZS5oIgogI2VuZGlmCiAK
LSNpZiBVU0UoTElCV0VCUlRDKSAmJiBQTEFURk9STShDT0NPQSkKLS8vI2luY2x1ZGUgIkgyNjRW
aWRlb1Rvb2xib3hFbmNvZGVyLmgiCi0jZW5kaWYKLQogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNs
dWRlICJEaWN0aW9uYXJ5TG9va3VwLmgiCiAjZW5kaWYKQEAgLTQzMjgsNyArNDMyNCw3IEBAIHZv
aWQgSW50ZXJuYWxzOjpjbGVhckNhY2hlU3RvcmFnZU1lbW9yeVJlcHJlc2VudGF0aW9uKERPTVBy
b21pc2VEZWZlcnJlZDx2b2lkPiYmCiAgICAgICAgIGlmICghbV9jYWNoZVN0b3JhZ2VDb25uZWN0
aW9uKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBtX2NhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24tPmNsZWFyTWVtb3J5UmVwcmVzZW50YXRpb24oQ2xpZW50T3JpZ2luIHsgU2VjdXJpdHlP
cmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oZG9jdW1lbnQtPnRvcE9yaWdpbigpKSwgU2Vj
dXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oZG9jdW1lbnQtPnNlY3VyaXR5T3Jp
Z2luKCkpIH0sIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0gKGF1dG8gJiYgcmVzdWx0KSBt
dXRhYmxlIHsKKyAgICBtX2NhY2hlU3RvcmFnZUNvbm5lY3Rpb24tPmNsZWFyTWVtb3J5UmVwcmVz
ZW50YXRpb24oQ2xpZW50T3JpZ2luIHsgZG9jdW1lbnQtPnRvcE9yaWdpbigpLmRhdGEoKSwgZG9j
dW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpIH0sIFtwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKV0gKGF1dG8gJiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChy
ZXN1bHQsICFyZXN1bHQpOwogICAgICAgICBwcm9taXNlLnJlc29sdmUoKTsKICAgICB9KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29u
dGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q29udGFpbmVyLmNwcAppbmRleCAzYjA1MWIxMDM0YzRlNGQ1NjQ2ZjAyNDA5YTZmYjdhMDliOTk4
YjIwLi5hYjAwN2M5MmI0N2VkNzdmZDdlMTg4MDA5YWU1NTQ3Y2FmM2Q0MmNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250
YWluZXIuY3BwCkBAIC0xNjksMTAgKzE2OSwxMCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWlu
ZXI6OmFkZFJlZ2lzdHJhdGlvbihjb25zdCBTdHJpbmcmIHJlbGF0aXZlU2NyaXB0VVJMLCBjbwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQ09OVEFJTkVSX1JFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoImFkZFJlZ2lzdHJhdGlvbjogUmVnaXN0ZXJpbmcgc2VydmljZSB3b3JrZXIuIEpvYiBJ
RDogJWxsdSIsIGpvYkRhdGEuaWRlbnRpZmllcigpLmpvYklkZW50aWZpZXIudG9VSW50NjQoKSk7
CisgICAgQ09OVEFJTkVSX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImFkZFJlZ2lzdHJhdGlvbjog
UmVnaXN0ZXJpbmcgc2VydmljZSB3b3JrZXIuIEpvYiBJRDogJSIgUFJJdTY0LCBqb2JEYXRhLmlk
ZW50aWZpZXIoKS5qb2JJZGVudGlmaWVyLnRvVUludDY0KCkpOwogCiAgICAgam9iRGF0YS5jbGll
bnRDcmVhdGlvblVSTCA9IGNvbnRleHQtPnVybCgpOwotICAgIGpvYkRhdGEudG9wT3JpZ2luID0g
U2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oY29udGV4dC0+dG9wT3JpZ2lu
KCkpOworICAgIGpvYkRhdGEudG9wT3JpZ2luID0gY29udGV4dC0+dG9wT3JpZ2luKCkuZGF0YSgp
OwogICAgIGpvYkRhdGEudHlwZSA9IFNlcnZpY2VXb3JrZXJKb2JUeXBlOjpSZWdpc3RlcjsKICAg
ICBqb2JEYXRhLnJlZ2lzdHJhdGlvbk9wdGlvbnMgPSBvcHRpb25zOwogCkBAIC0xOTYsMTEgKzE5
NiwxMSBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OnJlbW92ZVJlZ2lzdHJhdGlvbihj
b25zdCBVUkwmIHNjb3BlVVJMLCBSZWY8RGVmZXJyZQogCiAgICAgU2VydmljZVdvcmtlckpvYkRh
dGEgam9iRGF0YShtX3N3Q29ubmVjdGlvbi0+c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSwg
Y29udGV4dElkZW50aWZpZXIoKSk7CiAgICAgam9iRGF0YS5jbGllbnRDcmVhdGlvblVSTCA9IGNv
bnRleHQtPnVybCgpOwotICAgIGpvYkRhdGEudG9wT3JpZ2luID0gU2VjdXJpdHlPcmlnaW5EYXRh
Ojpmcm9tU2VjdXJpdHlPcmlnaW4oY29udGV4dC0+dG9wT3JpZ2luKCkpOworICAgIGpvYkRhdGEu
dG9wT3JpZ2luID0gY29udGV4dC0+dG9wT3JpZ2luKCkuZGF0YSgpOwogICAgIGpvYkRhdGEudHlw
ZSA9IFNlcnZpY2VXb3JrZXJKb2JUeXBlOjpVbnJlZ2lzdGVyOwogICAgIGpvYkRhdGEuc2NvcGVV
UkwgPSBzY29wZVVSTDsKIAotICAgIENPTlRBSU5FUl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKCJy
ZW1vdmVSZWdpc3RyYXRpb246IFVucmVnaXN0ZXJpbmcgc2VydmljZSB3b3JrZXIuIEpvYiBJRDog
JWxsdSIsIGpvYkRhdGEuaWRlbnRpZmllcigpLmpvYklkZW50aWZpZXIudG9VSW50NjQoKSk7Cisg
ICAgQ09OVEFJTkVSX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJlbW92ZVJlZ2lzdHJhdGlvbjog
VW5yZWdpc3RlcmluZyBzZXJ2aWNlIHdvcmtlci4gSm9iIElEOiAlIiBQUkl1NjQsIGpvYkRhdGEu
aWRlbnRpZmllcigpLmpvYklkZW50aWZpZXIudG9VSW50NjQoKSk7CiAKICAgICBzY2hlZHVsZUpv
YihTZXJ2aWNlV29ya2VySm9iOjpjcmVhdGUoKnRoaXMsIFdURk1vdmUocHJvbWlzZSksIFdURk1v
dmUoam9iRGF0YSkpKTsKIH0KQEAgLTIyMSwxMiArMjIxLDEyIEBAIHZvaWQgU2VydmljZVdvcmtl
ckNvbnRhaW5lcjo6dXBkYXRlUmVnaXN0cmF0aW9uKGNvbnN0IFVSTCYgc2NvcGVVUkwsIGNvbnN0
IFVSTCYKIAogICAgIFNlcnZpY2VXb3JrZXJKb2JEYXRhIGpvYkRhdGEobV9zd0Nvbm5lY3Rpb24t
PnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCksIGNvbnRleHRJZGVudGlmaWVyKCkpOwogICAg
IGpvYkRhdGEuY2xpZW50Q3JlYXRpb25VUkwgPSBjb250ZXh0LnVybCgpOwotICAgIGpvYkRhdGEu
dG9wT3JpZ2luID0gU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oY29udGV4
dC50b3BPcmlnaW4oKSk7CisgICAgam9iRGF0YS50b3BPcmlnaW4gPSBjb250ZXh0LnRvcE9yaWdp
bigpLmRhdGEoKTsKICAgICBqb2JEYXRhLnR5cGUgPSBTZXJ2aWNlV29ya2VySm9iVHlwZTo6VXBk
YXRlOwogICAgIGpvYkRhdGEuc2NvcGVVUkwgPSBzY29wZVVSTDsKICAgICBqb2JEYXRhLnNjcmlw
dFVSTCA9IHNjcmlwdFVSTDsKIAotICAgIENPTlRBSU5FUl9SRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJyZW1vdmVSZWdpc3RyYXRpb246IFVwZGF0aW5nIHNlcnZpY2Ugd29ya2VyLiBKb2IgSUQ6ICVs
bHUiLCBqb2JEYXRhLmlkZW50aWZpZXIoKS5qb2JJZGVudGlmaWVyLnRvVUludDY0KCkpOworICAg
IENPTlRBSU5FUl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZW1vdmVSZWdpc3RyYXRpb246IFVw
ZGF0aW5nIHNlcnZpY2Ugd29ya2VyLiBKb2IgSUQ6ICUiIFBSSXU2NCwgam9iRGF0YS5pZGVudGlm
aWVyKCkuam9iSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKIAogICAgIHNjaGVkdWxlSm9iKFNlcnZp
Y2VXb3JrZXJKb2I6OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShwcm9taXNlKSwgV1RGTW92ZShqb2JE
YXRhKSkpOwogfQpAQCAtMzc5LDcgKzM3OSw3IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5l
cjo6am9iRmFpbGVkV2l0aEV4Y2VwdGlvbihTZXJ2aWNlV29ya2VySm9iJiBqb2IsIGNvbnN0CiAg
ICAgICAgIGpvYkRpZEZpbmlzaChqb2IpOwogICAgIH0pOwogCi0gICAgQ09OVEFJTkVSX1JFTEVB
U0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoImpvYkZhaWxlZFdpdGhFeGNlcHRpb246IEpvYiAlbGx1
IGZhaWxlZCB3aXRoIGVycm9yICVzIiwgam9iLmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBleGNl
cHRpb24ubWVzc2FnZSgpLnV0ZjgoKS5kYXRhKCkpOworICAgIENPTlRBSU5FUl9SRUxFQVNFX0xP
R19FUlJPUl9JRl9BTExPV0VEKCJqb2JGYWlsZWRXaXRoRXhjZXB0aW9uOiBKb2IgJSIgUFJJdTY0
ICIgZmFpbGVkIHdpdGggZXJyb3IgJXMiLCBqb2IuaWRlbnRpZmllcigpLnRvVUludDY0KCksIGV4
Y2VwdGlvbi5tZXNzYWdlKCkudXRmOCgpLmRhdGEoKSk7CiAKICAgICBpZiAoIWpvYi5wcm9taXNl
KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTQxMywxMCArNDEzLDEwIEBAIHZvaWQgU2VydmljZVdv
cmtlckNvbnRhaW5lcjo6am9iUmVzb2x2ZWRXaXRoUmVnaXN0cmF0aW9uKFNlcnZpY2VXb3JrZXJK
b2ImIGpvYiwKICAgICB9KTsKIAogICAgIGlmIChqb2IuZGF0YSgpLnR5cGUgPT0gU2VydmljZVdv
cmtlckpvYlR5cGU6OlJlZ2lzdGVyKQotICAgICAgICBDT05UQUlORVJfUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgiam9iUmVzb2x2ZWRXaXRoUmVnaXN0cmF0aW9uOiBSZWdpc3RyYXRpb24gam9iICVs
bHUgc3VjY2VlZGVkIiwgam9iLmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKKyAgICAgICAgQ09O
VEFJTkVSX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImpvYlJlc29sdmVkV2l0aFJlZ2lzdHJhdGlv
bjogUmVnaXN0cmF0aW9uIGpvYiAlIiBQUkl1NjQgIiBzdWNjZWVkZWQiLCBqb2IuaWRlbnRpZmll
cigpLnRvVUludDY0KCkpOwogICAgIGVsc2UgewogICAgICAgICBBU1NFUlQoam9iLmRhdGEoKS50
eXBlID09IFNlcnZpY2VXb3JrZXJKb2JUeXBlOjpVcGRhdGUpOwotICAgICAgICBDT05UQUlORVJf
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiam9iUmVzb2x2ZWRXaXRoUmVnaXN0cmF0aW9uOiBVcGRh
dGUgam9iICVsbHUgc3VjY2VlZGVkIiwgam9iLmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKKyAg
ICAgICAgQ09OVEFJTkVSX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImpvYlJlc29sdmVkV2l0aFJl
Z2lzdHJhdGlvbjogVXBkYXRlIGpvYiAlIiBQUkl1NjQgIiBzdWNjZWVkZWQiLCBqb2IuaWRlbnRp
ZmllcigpLnRvVUludDY0KCkpOwogICAgIH0KIAogICAgIFdURjo6RnVuY3Rpb248dm9pZCgpPiBu
b3RpZnlXaGVuUmVzb2x2ZWRJZk5lZWRlZCA9IFtdIHsgfTsKQEAgLTQ0Niw3ICs0NDYsNyBAQCB2
b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmpvYlJlc29sdmVkV2l0aFJlZ2lzdHJhdGlvbihT
ZXJ2aWNlV29ya2VySm9iJiBqb2IsCiAKICAgICAgICAgYXV0byByZWdpc3RyYXRpb24gPSBTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uOjpnZXRPckNyZWF0ZShjb250ZXh0LCAqdGhpcywgV1RGTW92
ZShkYXRhKSk7CiAKLSAgICAgICAgQ09OVEFJTkVSX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImpv
YlJlc29sdmVkV2l0aFJlZ2lzdHJhdGlvbjogUmVzb2x2aW5nIHByb21pc2UgZm9yIGpvYiAlbGx1
LiBSZWdpc3RyYXRpb24gSUQ6ICVsbHUiLCBqb2ItPmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBy
ZWdpc3RyYXRpb24tPmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKKyAgICAgICAgQ09OVEFJTkVS
X1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImpvYlJlc29sdmVkV2l0aFJlZ2lzdHJhdGlvbjogUmVz
b2x2aW5nIHByb21pc2UgZm9yIGpvYiAlIiBQUkl1NjQgIi4gUmVnaXN0cmF0aW9uIElEOiAlIiBQ
Ukl1NjQsIGpvYi0+aWRlbnRpZmllcigpLnRvVUludDY0KCksIHJlZ2lzdHJhdGlvbi0+aWRlbnRp
ZmllcigpLnRvVUludDY0KCkpOwogCiAgICAgICAgIGpvYi0+cHJvbWlzZSgpLT5yZXNvbHZlPElE
TEludGVyZmFjZTxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uPj4oV1RGTW92ZShyZWdpc3RyYXRp
b24pKTsKIApAQCAtNDY2LDcgKzQ2Niw3IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6
am9iUmVzb2x2ZWRXaXRoVW5yZWdpc3RyYXRpb25SZXN1bHQoU2VydmljZVdvcmtlckpvCiAgICAg
ICAgIGpvYkRpZEZpbmlzaChqb2IpOwogICAgIH0pOwogCi0gICAgQ09OVEFJTkVSX1JFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoImpvYlJlc29sdmVkV2l0aFVucmVnaXN0cmF0aW9uUmVzdWx0OiBVbnJl
Z2lzdGVyIGpvYiAlbGx1IGZpbmlzaGVkLiBTdWNjZXNzPyAlZCIsIGpvYi5pZGVudGlmaWVyKCku
dG9VSW50NjQoKSwgdW5yZWdpc3RyYXRpb25SZXN1bHQpOworICAgIENPTlRBSU5FUl9SRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJqb2JSZXNvbHZlZFdpdGhVbnJlZ2lzdHJhdGlvblJlc3VsdDogVW5y
ZWdpc3RlciBqb2IgJSIgUFJJdTY0ICIgZmluaXNoZWQuIFN1Y2Nlc3M/ICVkIiwgam9iLmlkZW50
aWZpZXIoKS50b1VJbnQ2NCgpLCB1bnJlZ2lzdHJhdGlvblJlc3VsdCk7CiAKICAgICBhdXRvKiBj
b250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmICghY29udGV4dCkgewpA
QCAtNDg1LDcgKzQ4NSw3IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6c3RhcnRTY3Jp
cHRGZXRjaEZvckpvYihTZXJ2aWNlV29ya2VySm9iJiBqb2IsIEZldGNoCiAgICAgQVNTRVJUKG1f
Y3JlYXRpb25UaHJlYWQucHRyKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKTsKICNlbmRpZgogCi0g
ICAgQ09OVEFJTkVSX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0U2NyaXB0RmV0Y2hGb3JK
b2I6IFN0YXJ0aW5nIHNjcmlwdCBmZXRjaCBmb3Igam9iICVsbHUiLCBqb2IuaWRlbnRpZmllcigp
LnRvVUludDY0KCkpOworICAgIENPTlRBSU5FUl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFy
dFNjcmlwdEZldGNoRm9ySm9iOiBTdGFydGluZyBzY3JpcHQgZmV0Y2ggZm9yIGpvYiAlIiBQUkl1
NjQsIGpvYi5pZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CiAKICAgICBhdXRvKiBjb250ZXh0ID0g
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmICghY29udGV4dCkgewpAQCAtNTA2LDcg
KzUwNiw3IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6am9iRmluaXNoZWRMb2FkaW5n
U2NyaXB0KFNlcnZpY2VXb3JrZXJKb2ImIGpvYiwgY29uCiAgICAgQVNTRVJUKG1fY3JlYXRpb25U
aHJlYWQucHRyKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKTsKICNlbmRpZgogCi0gICAgQ09OVEFJ
TkVSX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImpvYkZpbmlzaGVkTG9hZGluZ1NjcmlwdDogU3Vj
Y2Vzc2Z1bHkgZmluaXNoZWQgZmV0Y2hpbmcgc2NyaXB0IGZvciBqb2IgJWxsdSIsIGpvYi5pZGVu
dGlmaWVyKCkudG9VSW50NjQoKSk7CisgICAgQ09OVEFJTkVSX1JFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoImpvYkZpbmlzaGVkTG9hZGluZ1NjcmlwdDogU3VjY2Vzc2Z1bHkgZmluaXNoZWQgZmV0Y2hp
bmcgc2NyaXB0IGZvciBqb2IgJSIgUFJJdTY0LCBqb2IuaWRlbnRpZmllcigpLnRvVUludDY0KCkp
OwogCiAgICAgY2FsbE9uTWFpblRocmVhZChbY29ubmVjdGlvbiA9IG1fc3dDb25uZWN0aW9uLCBq
b2JEYXRhSWRlbnRpZmllciA9IGpvYi5kYXRhKCkuaWRlbnRpZmllcigpLCByZWdpc3RyYXRpb25L
ZXkgPSBqb2IuZGF0YSgpLnJlZ2lzdHJhdGlvbktleSgpLmlzb2xhdGVkQ29weSgpLCBzY3JpcHQg
PSBzY3JpcHQuaXNvbGF0ZWRDb3B5KCksIGNvbnRlbnRTZWN1cml0eVBvbGljeSA9IGNvbnRlbnRT
ZWN1cml0eVBvbGljeS5pc29sYXRlZENvcHkoKV0gewogICAgICAgICBjb25uZWN0aW9uLT5maW5p
c2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKHsgam9iRGF0YUlkZW50aWZpZXIsIHJlZ2lzdHJhdGlv
bktleSwgc2NyaXB0LCBjb250ZW50U2VjdXJpdHlQb2xpY3ksIHsgfSB9KTsKQEAgLTUyMCw3ICs1
MjAsNyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmpvYkZhaWxlZExvYWRpbmdTY3Jp
cHQoU2VydmljZVdvcmtlckpvYiYgam9iLCBjb25zdAogI2VuZGlmCiAgICAgQVNTRVJUX1dJVEhf
TUVTU0FHRShqb2IucHJvbWlzZSgpIHx8IGpvYi5kYXRhKCkudHlwZSA9PSBTZXJ2aWNlV29ya2Vy
Sm9iVHlwZTo6VXBkYXRlLCAiT25seSBzb2Z0IHVwZGF0ZXMgaGF2ZSBubyBwcm9taXNlIik7CiAK
LSAgICBDT05UQUlORVJfUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgiam9iRmluaXNoZWRM
b2FkaW5nU2NyaXB0OiBGYWlsZWQgdG8gZmV0Y2ggc2NyaXB0IGZvciBqb2IgJWxsdSwgZXJyb3I6
ICVzIiwgam9iLmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlw
dGlvbigpLnV0ZjgoKS5kYXRhKCkpOworICAgIENPTlRBSU5FUl9SRUxFQVNFX0xPR19FUlJPUl9J
Rl9BTExPV0VEKCJqb2JGaW5pc2hlZExvYWRpbmdTY3JpcHQ6IEZhaWxlZCB0byBmZXRjaCBzY3Jp
cHQgZm9yIGpvYiAlIiBQUkl1NjQgIiwgZXJyb3I6ICVzIiwgam9iLmlkZW50aWZpZXIoKS50b1VJ
bnQ2NCgpLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpOwogCiAg
ICAgaWYgKGV4Y2VwdGlvbiAmJiBqb2IucHJvbWlzZSgpKQogICAgICAgICBqb2IucHJvbWlzZSgp
LT5yZWplY3QoKmV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3BwCmluZGV4IDUxNWRhZTczODEzZWJk
NzY3NTdmMDdlMmI3MmI0ZjNkMjZlMTM5M2YuLmNkN2M1NDVmNGI2OGQ0Y2MzZjM4ZjIwOTU4MjVh
M2MxMjBkNzE0OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3BwCkBAIC01NCwxMiArNTQsMTYgQEAgYm9vbCBT
ZXJ2aWNlV29ya2VyUHJvdmlkZXI6Om1heUhhdmVTZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZvck9y
aWdpbihQQUw6OlNlc3Npb24KICAgICByZXR1cm4gY29ubmVjdGlvbi0+bWF5SGF2ZVNlcnZpY2VX
b3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKG9yaWdpbik7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtl
clByb3ZpZGVyOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkKK3ZvaWQgU2VydmljZVdvcmtlclByb3ZpZGVyOjpyZWdpc3RlclNlcnZpY2VXb3Jr
ZXJDbGllbnRzKCkKIHsKLSAgICBhdXRvJiBjb25uZWN0aW9uID0gc2VydmljZVdvcmtlckNvbm5l
Y3Rpb25Gb3JTZXNzaW9uKHNlc3Npb25JRCk7CisgICAgc2V0TWF5SGF2ZVJlZ2lzdGVyZWRTZXJ2
aWNlV29ya2VycygpOwogICAgIGZvciAoYXV0byogZG9jdW1lbnQgOiBEb2N1bWVudDo6YWxsRG9j
dW1lbnRzKCkpIHsKKyAgICAgICAgYXV0byBzZXNzaW9uSUQgPSBkb2N1bWVudC0+c2Vzc2lvbklE
KCk7CisgICAgICAgIGlmICghc2Vzc2lvbklELmlzVmFsaWQoKSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworCiAgICAgICAgIGlmIChTY2hlbWVSZWdpc3RyeTo6Y2FuU2VydmljZVdvcmtlcnNIYW5k
bGVVUkxTY2hlbWUoZG9jdW1lbnQtPnVybCgpLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29w
eWluZygpKSkKLSAgICAgICAgICAgIGRvY3VtZW50LT5zZXRTZXJ2aWNlV29ya2VyQ29ubmVjdGlv
bigmY29ubmVjdGlvbik7CisgICAgICAgICAgICBkb2N1bWVudC0+c2V0U2VydmljZVdvcmtlckNv
bm5lY3Rpb24oJnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uRm9yU2Vzc2lvbihzZXNzaW9uSUQpKTsK
ICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyUHJvdmlkZXIuaAppbmRleCBjODA1ZTRlMGJmNTk5NDc5MWI1M2FmNWJiNmRm
ZjJiZWExNzQyMTI2Li45NGVhODIyNmM5MmE2NDY3YTBiNTBjMzk0ZjZmZTVlM2ExZDA4NGNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclBy
b3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJQcm92aWRlci5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFNXQ2xp
ZW50Q29ubmVjdGlvbiogZXhpc3RpbmdTZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNlc3Npb24o
UEFMOjpTZXNzaW9uSUQpID0gMDsKICAgICB2aXJ0dWFsIFNXQ2xpZW50Q29ubmVjdGlvbiYgc2Vy
dmljZVdvcmtlckNvbm5lY3Rpb25Gb3JTZXNzaW9uKFBBTDo6U2Vzc2lvbklEKSA9IDA7CiAKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudHMoUEFMOjpT
ZXNzaW9uSUQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2Vy
Q2xpZW50cygpOwogCiAgICAgdm9pZCBzZXRNYXlIYXZlUmVnaXN0ZXJlZFNlcnZpY2VXb3JrZXJz
KCkgeyBtX21heUhhdmVSZWdpc3RlcmVkU2VydmljZVdvcmtlcnMgPSB0cnVlOyB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uS2V5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uS2V5LmNwcAppbmRleCBiODRjNjZlOGY1ZWUzMmQ4YmE3ODVkNDFmODIz
ZDYzOGYyZTg4ZTMyLi4xYzNkNzQ2YjIzZGI5M2UzNTZmMjJlNjMxMjBiMWNkNGY0Y2RiMGM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbktleS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkuY3BwCkBAIC03NywxMyArNzcsMTIgQEAgYm9vbCBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5OjpvcmlnaW5Jc01hdGNoaW5nKGNvbnN0IFNlY3Vy
aXR5T3JpZ2luRGF0YSYgdG8KICAgICByZXR1cm4gcHJvdG9jb2xIb3N0QW5kUG9ydEFyZUVxdWFs
KGNsaWVudFVSTCwgbV9zY29wZSk7CiB9CiAKLWJvb2wgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bktleTo6cmVsYXRlc1RvT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4pIGNvbnN0
Citib29sIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXk6OnJlbGF0ZXNUb09yaWdpbihjb25z
dCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luKSBjb25zdAogewotICAgIGlmICht
X3RvcE9yaWdpbiA9PSBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbihvcmln
aW4pKQorICAgIGlmIChtX3RvcE9yaWdpbiA9PSBzZWN1cml0eU9yaWdpbikKICAgICAgICAgcmV0
dXJuIHRydWU7CiAKLSAgICBhdXRvIHNjb3BlT3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0
ZShtX3Njb3BlKTsKLSAgICByZXR1cm4gc2NvcGVPcmlnaW4tPmlzU2FtZU9yaWdpbkFzKG9yaWdp
bik7CisgICAgcmV0dXJuIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVVSTChtX3Njb3BlKSA9PSBz
ZWN1cml0eU9yaWdpbjsKIH0KIAogc3RhdGljIGNvbnN0IGNoYXIgc2VwYXJhdG9yQ2hhcmFjdGVy
ID0gJ18nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25LZXkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5LmgKaW5kZXggMjM5YTMwMGIxN2ZhZTc4ZTEx
N2ZhY2VlYTQ5MGU1YTNhNTIyOTVmYi4uNzEwZjQxMmI0NzJkOGYxNzQyZTBiZWU0OGQ1MDJiZTg5
YTlhMDM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25LZXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleS5oCkBAIC00OSw3ICs0OSw3IEBAIHB1
YmxpYzoKICAgICBjb25zdCBVUkwmIHNjb3BlKCkgY29uc3QgeyByZXR1cm4gbV9zY29wZTsgfQog
ICAgIHZvaWQgc2V0U2NvcGUoVVJMJiYgc2NvcGUpIHsgbV9zY29wZSA9IFdURk1vdmUoc2NvcGUp
OyB9CiAKLSAgICBib29sIHJlbGF0ZXNUb09yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYpIGNv
bnN0OworICAgIGJvb2wgcmVsYXRlc1RvT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYp
IGNvbnN0OwogCiAgICAgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSBpc29sYXRlZENvcHko
KSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV09yaWdpblN0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dPcmlnaW5TdG9yZS5jcHAKaW5kZXggNWVhNDViOTU1ZGZmNTc0MzI3NWQ1ZDAwNzE5
ZjJlYzJkZDg0YjgwNy4uZjAxZmIxNjFjZThjODQ4NWQ1NjI2MmViNmFjNjcxNDE0ZGMwMmM0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV09yaWdp
blN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
T3JpZ2luU3RvcmUuY3BwCkBAIC0zMiwxNyArMzIsMTcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi12b2lkIFNXT3JpZ2luU3RvcmU6OmFkZChjb25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2lu
KQordm9pZCBTV09yaWdpblN0b3JlOjphZGQoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmln
aW4pCiB7Ci0gICAgKyttX29yaWdpbkNvdW50cy5lbnN1cmUob3JpZ2luLnRvU3RyaW5nKCksIFsm
XSB7CisgICAgKyttX29yaWdpbkNvdW50cy5lbnN1cmUob3JpZ2luLCBbJl0gewogICAgICAgICBh
ZGRUb1N0b3JlKG9yaWdpbik7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0pLml0ZXJhdG9yLT52
YWx1ZTsKIH0KIAotdm9pZCBTV09yaWdpblN0b3JlOjpyZW1vdmUoY29uc3QgU2VjdXJpdHlPcmln
aW4mIG9yaWdpbikKK3ZvaWQgU1dPcmlnaW5TdG9yZTo6cmVtb3ZlKGNvbnN0IFNlY3VyaXR5T3Jp
Z2luRGF0YSYgb3JpZ2luKQogewotICAgIGF1dG8gaXRlcmF0b3IgPSBtX29yaWdpbkNvdW50cy5m
aW5kKG9yaWdpbi50b1N0cmluZygpKTsKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9vcmlnaW5Db3Vu
dHMuZmluZChvcmlnaW4pOwogICAgIEFTU0VSVChpdGVyYXRvciAhPSBtX29yaWdpbkNvdW50cy5l
bmQoKSk7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fb3JpZ2luQ291bnRzLmVuZCgpKQogICAgICAg
ICByZXR1cm47CkBAIC01NCw5ICs1NCw5IEBAIHZvaWQgU1dPcmlnaW5TdG9yZTo6cmVtb3ZlKGNv
bnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4pCiAgICAgcmVtb3ZlRnJvbVN0b3JlKG9yaWdpbik7
CiB9CiAKLXZvaWQgU1dPcmlnaW5TdG9yZTo6Y2xlYXIoY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9y
aWdpbikKK3ZvaWQgU1dPcmlnaW5TdG9yZTo6Y2xlYXIoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRh
JiBvcmlnaW4pCiB7Ci0gICAgbV9vcmlnaW5Db3VudHMucmVtb3ZlKG9yaWdpbi50b1N0cmluZygp
KTsKKyAgICBtX29yaWdpbkNvdW50cy5yZW1vdmUob3JpZ2luKTsKICAgICByZW1vdmVGcm9tU3Rv
cmUob3JpZ2luKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV09yaWdpblN0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXT3JpZ2luU3RvcmUuaAppbmRleCBlMTFlNDUxMWZlMTk4MDhmNjhmZGFmZDQx
NzFkYzgwOWNmYjhlYTdlLi5jYjI4YjM5NDE5OTI5ZmMyZGFkNGViN2JkN2RlY2VlMjA5ZDk0Y2Ex
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXT3Jp
Z2luU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
T3JpZ2luU3RvcmUuaApAQCAtMjcsMzIgKzI3LDI5IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCiAKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTZWN1
cml0eU9yaWdpbjsKLQogY2xhc3MgU1dPcmlnaW5TdG9yZSB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+U1dPcmlnaW5TdG9yZSgpID0gZGVmYXVs
dDsKIAotICAgIHZvaWQgYWRkKGNvbnN0IFNlY3VyaXR5T3JpZ2luJik7Ci0gICAgdm9pZCByZW1v
dmUoY29uc3QgU2VjdXJpdHlPcmlnaW4mKTsKLSAgICB2b2lkIGNsZWFyKGNvbnN0IFNlY3VyaXR5
T3JpZ2luJik7CisgICAgdm9pZCBhZGQoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJik7CisgICAg
dm9pZCByZW1vdmUoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJik7CisgICAgdm9pZCBjbGVhcihj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmKTsKICAgICB2b2lkIGNsZWFyQWxsKCk7CiAKICAgICB2
aXJ0dWFsIHZvaWQgaW1wb3J0Q29tcGxldGUoKSA9IDA7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVh
bCB2b2lkIGFkZFRvU3RvcmUoY29uc3QgU2VjdXJpdHlPcmlnaW4mKSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIHJlbW92ZUZyb21TdG9yZShjb25zdCBTZWN1cml0eU9yaWdpbiYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgYWRkVG9TdG9yZShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHJlbW92ZUZyb21TdG9yZShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEm
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyU3RvcmUoKSA9IDA7CiAKLSAgICBIYXNoTWFw
PFN0cmluZywgdWludDY0X3Q+IG1fb3JpZ2luQ291bnRzOworICAgIEhhc2hNYXA8U2VjdXJpdHlP
cmlnaW5EYXRhLCB1aW50NjRfdD4gbV9vcmlnaW5Db3VudHM7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXIuY3BwCmluZGV4IGE3NGExYWIwMjQwMjljYWQ1MTgyNDkwNzQxZjA3ZGY5MGIzNWQ0
NWUuLmEwYjdmYzJlODE0MTdhN2YzYWM4MTExZDhhNDczNGFlMGI0ZGI4YjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC0x
NTMsMTIgKzE1MywxMiBAQCB2b2lkIFNXU2VydmVyOjphZGRSZWdpc3RyYXRpb24oc3RkOjp1bmlx
dWVfcHRyPFNXU2VydmVyUmVnaXN0cmF0aW9uPiYmIHJlZ2lzdHJhdAogICAgIGF1dG8gYWRkUmVz
dWx0MiA9IG1fcmVnaXN0cmF0aW9uc0J5SUQuYWRkKHJlZ2lzdHJhdGlvblB0ci0+aWRlbnRpZmll
cigpLCByZWdpc3RyYXRpb25QdHIpOwogICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0MiwgYWRk
UmVzdWx0Mi5pc05ld0VudHJ5KTsKIAotICAgIG1fb3JpZ2luU3RvcmUtPmFkZChrZXkudG9wT3Jp
Z2luKCkuc2VjdXJpdHlPcmlnaW4oKSk7CisgICAgbV9vcmlnaW5TdG9yZS0+YWRkKGtleS50b3BP
cmlnaW4oKSk7CiB9CiAKIHZvaWQgU1dTZXJ2ZXI6OnJlbW92ZVJlZ2lzdHJhdGlvbihjb25zdCBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiBrZXkpCiB7Ci0gICAgYXV0byB0b3BPcmlnaW4g
PSBrZXkudG9wT3JpZ2luKCkuc2VjdXJpdHlPcmlnaW4oKTsKKyAgICBhdXRvIHRvcE9yaWdpbiA9
IGtleS50b3BPcmlnaW4oKTsKICAgICBhdXRvIHJlZ2lzdHJhdGlvbiA9IG1fcmVnaXN0cmF0aW9u
cy50YWtlKGtleSk7CiAgICAgQVNTRVJUKHJlZ2lzdHJhdGlvbik7CiAgICAgYm9vbCB3YXNSZW1v
dmVkID0gbV9yZWdpc3RyYXRpb25zQnlJRC5yZW1vdmUocmVnaXN0cmF0aW9uLT5pZGVudGlmaWVy
KCkpOwpAQCAtMjA1LDI5ICsyMDUsMjkgQEAgdm9pZCBTV1NlcnZlcjo6Y2xlYXJBbGwoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogICAgIG1fcmVnaXN0cmF0
aW9uU3RvcmUuY2xlYXJBbGwoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCi12b2lk
IFNXU2VydmVyOjpjbGVhcihjb25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFNXU2VydmVyOjpjbGVh
cihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX2ltcG9ydENv
bXBsZXRlZCkgewotICAgICAgICBtX2NsZWFyQ29tcGxldGlvbkNhbGxiYWNrcy5hcHBlbmQoW3Ro
aXMsIG9yaWdpbiA9IG1ha2VSZWYob3JpZ2luKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7CisgICAgICAgIG1fY2xlYXJDb21wbGV0
aW9uQ2FsbGJhY2tzLmFwcGVuZChbdGhpcywgc2VjdXJpdHlPcmlnaW4sIGNvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewogICAgICAgICAg
ICAgQVNTRVJUKG1faW1wb3J0Q29tcGxldGVkKTsKLSAgICAgICAgICAgIGNsZWFyKG9yaWdpbiwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgICAgICAgICAgY2xlYXIoc2VjdXJpdHlP
cmlnaW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICAgICAgfSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKICAgICBtX2pvYlF1ZXVlcy5yZW1vdmVJZihbJl0oYXV0byYga2V5
QW5kVmFsdWUpIHsKLSAgICAgICAgcmV0dXJuIGtleUFuZFZhbHVlLmtleS5yZWxhdGVzVG9Pcmln
aW4ob3JpZ2luKTsKKyAgICAgICAgcmV0dXJuIGtleUFuZFZhbHVlLmtleS5yZWxhdGVzVG9Pcmln
aW4oc2VjdXJpdHlPcmlnaW4pOwogICAgIH0pOwogCiAgICAgVmVjdG9yPFNXU2VydmVyUmVnaXN0
cmF0aW9uKj4gcmVnaXN0cmF0aW9uc1RvUmVtb3ZlOwogICAgIGZvciAoYXV0byYga2V5QW5kVmFs
dWUgOiBtX3JlZ2lzdHJhdGlvbnMpIHsKLSAgICAgICAgaWYgKGtleUFuZFZhbHVlLmtleS5yZWxh
dGVzVG9PcmlnaW4ob3JpZ2luKSkKKyAgICAgICAgaWYgKGtleUFuZFZhbHVlLmtleS5yZWxhdGVz
VG9PcmlnaW4oc2VjdXJpdHlPcmlnaW4pKQogICAgICAgICAgICAgcmVnaXN0cmF0aW9uc1RvUmVt
b3ZlLmFwcGVuZChrZXlBbmRWYWx1ZS52YWx1ZS5nZXQoKSk7CiAgICAgfQogCiAgICAgZm9yIChh
dXRvJiBjb250ZXh0RGF0YXMgOiBtX3BlbmRpbmdDb250ZXh0RGF0YXMudmFsdWVzKCkpIHsKICAg
ICAgICAgY29udGV4dERhdGFzLnJlbW92ZUFsbE1hdGNoaW5nKFsmXShhdXRvJiBjb250ZXh0RGF0
YSkgewotICAgICAgICAgICAgcmV0dXJuIGNvbnRleHREYXRhLnJlZ2lzdHJhdGlvbi5rZXkucmVs
YXRlc1RvT3JpZ2luKG9yaWdpbik7CisgICAgICAgICAgICByZXR1cm4gY29udGV4dERhdGEucmVn
aXN0cmF0aW9uLmtleS5yZWxhdGVzVG9PcmlnaW4oc2VjdXJpdHlPcmlnaW4pOwogICAgICAgICB9
KTsKICAgICB9CiAKQEAgLTQ5OCwxMCArNDk4LDEwIEBAIHZvaWQgU1dTZXJ2ZXI6OnVwZGF0ZVdv
cmtlcihDb25uZWN0aW9uJiwgY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiBq
CiAKIHZvaWQgU1dTZXJ2ZXI6OnRyeUluc3RhbGxDb250ZXh0RGF0YShTZXJ2aWNlV29ya2VyQ29u
dGV4dERhdGEmJiBkYXRhKQogewotICAgIGF1dG8gb3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZShkYXRhLnNjcmlwdFVSTCk7Ci0gICAgYXV0byogY29ubmVjdGlvbiA9IFNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbjo6Y29ubmVjdGlvbkZvck9yaWdpbihvcmlnaW4pOworICAgIGF1dG8g
c2VjdXJpdHlPcmlnaW4gPSBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21VUkwoZGF0YS5zY3JpcHRV
UkwpOworICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246
OmNvbm5lY3Rpb25Gb3JPcmlnaW4oc2VjdXJpdHlPcmlnaW4pOwogICAgIGlmICghY29ubmVjdGlv
bikgewotICAgICAgICBtX3BlbmRpbmdDb250ZXh0RGF0YXMuZW5zdXJlKFdURk1vdmUob3JpZ2lu
KSwgW10geworICAgICAgICBtX3BlbmRpbmdDb250ZXh0RGF0YXMuZW5zdXJlKFdURk1vdmUoc2Vj
dXJpdHlPcmlnaW4pLCBbXSB7CiAgICAgICAgICAgICByZXR1cm4gVmVjdG9yPFNlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YT4geyB9OwogICAgICAgICB9KS5pdGVyYXRvci0+dmFsdWUuYXBwZW5kKFdU
Rk1vdmUoZGF0YSkpOwogICAgICAgICByZXR1cm47CkBAIC01MTIsMTEgKzUxMiwxMSBAQCB2b2lk
IFNXU2VydmVyOjp0cnlJbnN0YWxsQ29udGV4dERhdGEoU2VydmljZVdvcmtlckNvbnRleHREYXRh
JiYgZGF0YSkKIAogdm9pZCBTV1NlcnZlcjo6c2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbkNyZWF0
ZWQoU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uJiBjb250ZXh0Q29ubmVjdGlvbikKIHsKLSAg
ICBhdXRvIHBlbmRpbmdDb250ZXh0RGF0YXMgPSBtX3BlbmRpbmdDb250ZXh0RGF0YXMudGFrZSgm
Y29udGV4dENvbm5lY3Rpb24ub3JpZ2luKCkpOworICAgIGF1dG8gcGVuZGluZ0NvbnRleHREYXRh
cyA9IG1fcGVuZGluZ0NvbnRleHREYXRhcy50YWtlKGNvbnRleHRDb25uZWN0aW9uLnNlY3VyaXR5
T3JpZ2luKCkpOwogICAgIGZvciAoYXV0byYgZGF0YSA6IHBlbmRpbmdDb250ZXh0RGF0YXMpCiAg
ICAgICAgIGluc3RhbGxDb250ZXh0RGF0YShkYXRhKTsKIAotICAgIGF1dG8gc2VydmljZVdvcmtl
clJ1blJlcXVlc3RzID0gbV9zZXJ2aWNlV29ya2VyUnVuUmVxdWVzdHMudGFrZSgmY29udGV4dENv
bm5lY3Rpb24ub3JpZ2luKCkpOworICAgIGF1dG8gc2VydmljZVdvcmtlclJ1blJlcXVlc3RzID0g
bV9zZXJ2aWNlV29ya2VyUnVuUmVxdWVzdHMudGFrZShjb250ZXh0Q29ubmVjdGlvbi5zZWN1cml0
eU9yaWdpbigpKTsKICAgICBmb3IgKGF1dG8mIGl0ZW0gOiBzZXJ2aWNlV29ya2VyUnVuUmVxdWVz
dHMpIHsKICAgICAgICAgYm9vbCBzdWNjZXNzID0gcnVuU2VydmljZVdvcmtlcihpdGVtLmtleSk7
CiAgICAgICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBpdGVtLnZhbHVlKQpAQCAtNjQxLDEwICs2
NDEsMTUgQEAgdm9pZCBTV1NlcnZlcjo6dGVybWluYXRlV29ya2VySW50ZXJuYWwoU1dTZXJ2ZXJX
b3JrZXImIHdvcmtlciwgVGVybWluYXRpb25Nb2RlIG0KICAgICB9OwogfQogCi12b2lkIFNXU2Vy
dmVyOjptYXJrQWxsV29ya2Vyc0FzVGVybWluYXRlZCgpCit2b2lkIFNXU2VydmVyOjptYXJrQWxs
V29ya2Vyc0Zvck9yaWdpbkFzVGVybWluYXRlZChjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNl
Y3VyaXR5T3JpZ2luKQogewotICAgIHdoaWxlICghbV9ydW5uaW5nT3JUZXJtaW5hdGluZ1dvcmtl
cnMuaXNFbXB0eSgpKQotICAgICAgICB3b3JrZXJDb250ZXh0VGVybWluYXRlZChtX3J1bm5pbmdP
clRlcm1pbmF0aW5nV29ya2Vycy5iZWdpbigpLT52YWx1ZSk7CisgICAgVmVjdG9yPFNXU2VydmVy
V29ya2VyKj4gdGVybWluYXRlZFdvcmtlcnM7CisgICAgZm9yIChhdXRvJiB3b3JrZXIgOiBtX3J1
bm5pbmdPclRlcm1pbmF0aW5nV29ya2Vycy52YWx1ZXMoKSkgeworICAgICAgICBpZiAod29ya2Vy
LT5zZWN1cml0eU9yaWdpbigpID09IHNlY3VyaXR5T3JpZ2luKQorICAgICAgICAgICAgdGVybWlu
YXRlZFdvcmtlcnMuYXBwZW5kKHdvcmtlci5wdHIoKSk7CisgICAgfQorICAgIGZvciAoYXV0byYg
dGVybWluYXRlZFdvcmtlciA6IHRlcm1pbmF0ZWRXb3JrZXJzKQorICAgICAgICB3b3JrZXJDb250
ZXh0VGVybWluYXRlZCgqdGVybWluYXRlZFdvcmtlcik7CiB9CiAKIHZvaWQgU1dTZXJ2ZXI6Ondv
cmtlckNvbnRleHRUZXJtaW5hdGVkKFNXU2VydmVyV29ya2VyJiB3b3JrZXIpCkBAIC03MjYsMTUg
KzczMSwyMiBAQCBTV1NlcnZlclJlZ2lzdHJhdGlvbiogU1dTZXJ2ZXI6OnJlZ2lzdHJhdGlvbkZy
b21TZXJ2aWNlV29ya2VySWRlbnRpZmllcihTZXJ2aWNlVwogdm9pZCBTV1NlcnZlcjo6cmVnaXN0
ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KENsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdpbiwgU2Vydmlj
ZVdvcmtlckNsaWVudERhdGEmJiBkYXRhLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiYgY29udHJvbGxpbmdTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSWRlbnRpZmllcikKIHsKICAgICBhdXRvIGNsaWVudElkZW50aWZpZXIgPSBkYXRhLmlk
ZW50aWZpZXI7Ci0gICAgYXV0byBhZGRSZXN1bHQgPSBtX2NsaWVudHNCeUlkLmFkZChjbGllbnRJ
ZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGEpKTsKLSAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwg
YWRkUmVzdWx0LmlzTmV3RW50cnkpOwogCi0gICAgYXV0byYgY2xpZW50SWRlbnRpZmllcnNGb3JP
cmlnaW4gPSBtX2NsaWVudElkZW50aWZpZXJzUGVyT3JpZ2luLmVuc3VyZShXVEZNb3ZlKGNsaWVu
dE9yaWdpbiksIFtdIHsKKyAgICBBU1NFUlQoIW1fY2xpZW50c0J5SWQuY29udGFpbnMoY2xpZW50
SWRlbnRpZmllcikpOworICAgIG1fY2xpZW50c0J5SWQuYWRkKGNsaWVudElkZW50aWZpZXIsIFdU
Rk1vdmUoZGF0YSkpOworCisgICAgYXV0byYgY2xpZW50SWRlbnRpZmllcnNGb3JPcmlnaW4gPSBt
X2NsaWVudElkZW50aWZpZXJzUGVyT3JpZ2luLmVuc3VyZShjbGllbnRPcmlnaW4sIFtdIHsKICAg
ICAgICAgcmV0dXJuIENsaWVudHMgeyB9OwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKKworICAg
IEFTU0VSVCghY2xpZW50SWRlbnRpZmllcnNGb3JPcmlnaW4uaWRlbnRpZmllcnMuY29udGFpbnMo
Y2xpZW50SWRlbnRpZmllcikpOwogICAgIGNsaWVudElkZW50aWZpZXJzRm9yT3JpZ2luLmlkZW50
aWZpZXJzLmFwcGVuZChjbGllbnRJZGVudGlmaWVyKTsKICAgICBjbGllbnRJZGVudGlmaWVyc0Zv
ck9yaWdpbi50ZXJtaW5hdGVTZXJ2aWNlV29ya2Vyc1RpbWVyID0gbnVsbHB0cjsKIAorICAgIG1f
Y2xpZW50c0J5U2VjdXJpdHlPcmlnaW4uZW5zdXJlKGNsaWVudE9yaWdpbi5jbGllbnRPcmlnaW4s
IFtdIHsKKyAgICAgICAgcmV0dXJuIEhhc2hTZXQ8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZp
ZXI+IHsgfTsKKyAgICB9KS5pdGVyYXRvci0+dmFsdWUuYWRkKGNsaWVudElkZW50aWZpZXIpOwor
CiAgICAgaWYgKCFjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVy
KQogICAgICAgICByZXR1cm47CiAKQEAgLTc0Myw4ICs3NTUsOCBAQCB2b2lkIFNXU2VydmVyOjpy
ZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoQ2xpZW50T3JpZ2luJiYgY2xpZW50T3JpZ2luLCBT
ZXJ2aWNlVwogICAgICAgICByZXR1cm47CiAKICAgICBjb250cm9sbGluZ1JlZ2lzdHJhdGlvbi0+
YWRkQ2xpZW50VXNpbmdSZWdpc3RyYXRpb24oY2xpZW50SWRlbnRpZmllcik7Ci0gICAgYXV0byBy
ZXN1bHQgPSBtX2NsaWVudFRvQ29udHJvbGxpbmdSZWdpc3RyYXRpb24uYWRkKGNsaWVudElkZW50
aWZpZXIsICpjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKTsK
LSAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOworICAgIEFTU0VS
VCghbV9jbGllbnRUb0NvbnRyb2xsaW5nUmVnaXN0cmF0aW9uLmNvbnRhaW5zKGNsaWVudElkZW50
aWZpZXIpKTsKKyAgICBtX2NsaWVudFRvQ29udHJvbGxpbmdSZWdpc3RyYXRpb24uYWRkKGNsaWVu
dElkZW50aWZpZXIsICpjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyKTsKIH0KIAogdm9pZCBTV1NlcnZlcjo6dW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQo
Y29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVu
dGlmaWVyIGNsaWVudElkZW50aWZpZXIpCkBAIC03NjYsMTEgKzc3OCwyMyBAQCB2b2lkIFNXU2Vy
dmVyOjp1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBDbGllbnRPcmlnaW4mIGNs
aWVudE9yaWdpbiwgUwogICAgICAgICAgICAgICAgIGlmICh3b3JrZXItPmlzUnVubmluZygpICYm
IHdvcmtlci0+b3JpZ2luKCkgPT0gY2xpZW50T3JpZ2luKQogICAgICAgICAgICAgICAgICAgICB0
ZXJtaW5hdGVXb3JrZXIod29ya2VyKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgh
bV9jbGllbnRzQnlTZWN1cml0eU9yaWdpbi5jb250YWlucyhjbGllbnRPcmlnaW4uY2xpZW50T3Jp
Z2luKSkgeworICAgICAgICAgICAgICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uOjpjb25uZWN0aW9uRm9yT3JpZ2luKGNsaWVudE9yaWdpbi5jbGll
bnRPcmlnaW4pKQorICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5jb25uZWN0aW9uTWF5
Tm9Mb25nZXJCZU5lZWRlZCgpOworICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBtX2NsaWVu
dElkZW50aWZpZXJzUGVyT3JpZ2luLnJlbW92ZShjbGllbnRPcmlnaW4pOwogICAgICAgICB9KTsK
LSAgICAgICAgaXRlcmF0b3ItPnZhbHVlLnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJzVGltZXItPnN0
YXJ0T25lU2hvdCh0ZXJtaW5hdGlvbkRlbGF5KTsKKyAgICAgICAgaXRlcmF0b3ItPnZhbHVlLnRl
cm1pbmF0ZVNlcnZpY2VXb3JrZXJzVGltZXItPnN0YXJ0T25lU2hvdChtX3Nob3VsZERpc2FibGVT
ZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXkgPyAwX3MgOiB0ZXJtaW5hdGlvbkRl
bGF5KTsKICAgICB9CiAKKyAgICBhdXRvIGNsaWVudHNCeVNlY3VyaXR5T3JpZ2luSXRlcmF0b3Ig
PSBtX2NsaWVudHNCeVNlY3VyaXR5T3JpZ2luLmZpbmQoY2xpZW50T3JpZ2luLmNsaWVudE9yaWdp
bik7CisgICAgQVNTRVJUKGNsaWVudHNCeVNlY3VyaXR5T3JpZ2luSXRlcmF0b3IgIT0gbV9jbGll
bnRzQnlTZWN1cml0eU9yaWdpbi5lbmQoKSk7CisgICAgYXV0byYgY2xpZW50c0ZvclNlY3VyaXR5
T3JpZ2luID0gY2xpZW50c0J5U2VjdXJpdHlPcmlnaW5JdGVyYXRvci0+dmFsdWU7CisgICAgY2xp
ZW50c0ZvclNlY3VyaXR5T3JpZ2luLnJlbW92ZShjbGllbnRJZGVudGlmaWVyKTsKKyAgICBpZiAo
Y2xpZW50c0ZvclNlY3VyaXR5T3JpZ2luLmlzRW1wdHkoKSkKKyAgICAgICAgbV9jbGllbnRzQnlT
ZWN1cml0eU9yaWdpbi5yZW1vdmUoY2xpZW50c0J5U2VjdXJpdHlPcmlnaW5JdGVyYXRvcik7CisK
ICAgICBhdXRvIHJlZ2lzdHJhdGlvbkl0ZXJhdG9yID0gbV9jbGllbnRUb0NvbnRyb2xsaW5nUmVn
aXN0cmF0aW9uLmZpbmQoY2xpZW50SWRlbnRpZmllcik7CiAgICAgaWYgKHJlZ2lzdHJhdGlvbkl0
ZXJhdG9yID09IG1fY2xpZW50VG9Db250cm9sbGluZ1JlZ2lzdHJhdGlvbi5lbmQoKSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtNzgxLDYgKzgwNSwxMSBAQCB2b2lkIFNXU2VydmVyOjp1bnJlZ2lzdGVy
U2VydmljZVdvcmtlckNsaWVudChjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgUwog
ICAgIG1fY2xpZW50VG9Db250cm9sbGluZ1JlZ2lzdHJhdGlvbi5yZW1vdmUocmVnaXN0cmF0aW9u
SXRlcmF0b3IpOwogfQogCitib29sIFNXU2VydmVyOjpuZWVkc1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb25Gb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbikg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9jbGllbnRzQnlTZWN1cml0eU9yaWdpbi5jb250YWlucyhz
ZWN1cml0eU9yaWdpbik7Cit9CisKIHZvaWQgU1dTZXJ2ZXI6OnJlc29sdmVSZWdpc3RyYXRpb25S
ZWFkeVJlcXVlc3RzKFNXU2VydmVyUmVnaXN0cmF0aW9uJiByZWdpc3RyYXRpb24pCiB7CiAgICAg
Zm9yIChhdXRvKiBjb25uZWN0aW9uIDogbV9jb25uZWN0aW9ucy52YWx1ZXMoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAppbmRleCA0YzA2
ZTVlN2M1NTM4MDdjZjQ5ZGI2ZGY0MDM3NTczNzY3MDFhMzJlLi5jMTNmNDgyNDczMzcyZTI2ZWZj
ODQ3NjQ3OTdmZWZhNmFiMjBlZTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCkBAIC0zMSw3ICszMSw3IEBACiAjaW5jbHVkZSAiRG9j
dW1lbnRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUmVnaXN0cmF0aW9uU3RvcmUuaCIKICNpbmNs
dWRlICJTV1NlcnZlcldvcmtlci5oIgotI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luSGFzaC5oIgor
I2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJD
bGllbnREYXRhLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlcklkZW50aWZpZXIuaCIKICNpbmNs
dWRlICJTZXJ2aWNlV29ya2VySm9iLmgiCkBAIC0xMjIsNyArMTIyLDcgQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIH5TV1NlcnZlcigpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBj
bGVhckFsbChXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBjbGVhcihjb25zdCBTZWN1cml0eU9yaWdpbiYsIFdURjo6Q29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyKGNvbnN0IFNl
Y3VyaXR5T3JpZ2luRGF0YSYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAog
ICAgIFNXU2VydmVyUmVnaXN0cmF0aW9uKiBnZXRSZWdpc3RyYXRpb24oY29uc3QgU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbktleSYpOwogICAgIHZvaWQgYWRkUmVnaXN0cmF0aW9uKHN0ZDo6dW5p
cXVlX3B0cjxTV1NlcnZlclJlZ2lzdHJhdGlvbj4mJik7CkBAIC0xNDUsNyArMTQ1LDcgQEAgcHVi
bGljOgogICAgIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+IHNlcnZpY2VX
b3JrZXJDbGllbnRXaXRoT3JpZ2luQnlJRChjb25zdCBDbGllbnRPcmlnaW4mLCBjb25zdCBTZXJ2
aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFNX
U2VydmVyV29ya2VyKiBhY3RpdmVXb3JrZXJGcm9tUmVnaXN0cmF0aW9uSUQoU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtYXJr
QWxsV29ya2Vyc0FzVGVybWluYXRlZCgpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbWFya0Fs
bFdvcmtlcnNGb3JPcmlnaW5Bc1Rlcm1pbmF0ZWQoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJik7
CiAgICAgCiAgICAgQ29ubmVjdGlvbiogZ2V0Q29ubmVjdGlvbihTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyIGlkZW50aWZpZXIpIHsgcmV0dXJuIG1fY29ubmVjdGlvbnMuZ2V0KGlkZW50aWZp
ZXIpOyB9CiAgICAgU1dPcmlnaW5TdG9yZSYgb3JpZ2luU3RvcmUoKSB7IHJldHVybiBtX29yaWdp
blN0b3JlOyB9CkBAIC0xNzcsNiArMTc3LDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZ2V0T3JpZ2luc1dpdGhSZWdpc3RyYXRpb25zKEZ1bmN0aW9uPHZvaWQoY29uc3QgSGFz
aFNldDxTZWN1cml0eU9yaWdpbkRhdGE+Jik+JiYpOwogCiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KKyAgICBXRUJDT1JFX0VYUE9S
VCBib29sIG5lZWRzU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbkZvck9yaWdpbihjb25zdCBTZWN1
cml0eU9yaWdpbkRhdGEmKSBjb25zdDsKKworICAgIHZvaWQgZGlzYWJsZVNlcnZpY2VXb3JrZXJQ
cm9jZXNzVGVybWluYXRpb25EZWxheSgpIHsgbV9zaG91bGREaXNhYmxlU2VydmljZVdvcmtlclBy
b2Nlc3NUZXJtaW5hdGlvbkRlbGF5ID0gdHJ1ZTsgfQogCiBwcml2YXRlOgogICAgIHZvaWQgcmVn
aXN0ZXJDb25uZWN0aW9uKENvbm5lY3Rpb24mKTsKQEAgLTIxNSw2ICsyMTgsNyBAQCBwcml2YXRl
OgogCiAgICAgSGFzaE1hcDxTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgUmVmPFNXU2VydmVyV29y
a2VyPj4gbV9ydW5uaW5nT3JUZXJtaW5hdGluZ1dvcmtlcnM7CiAKKyAgICBIYXNoTWFwPFNlY3Vy
aXR5T3JpZ2luRGF0YSwgSGFzaFNldDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4+IG1f
Y2xpZW50c0J5U2VjdXJpdHlPcmlnaW47CiAgICAgc3RydWN0IENsaWVudHMgewogICAgICAgICBW
ZWN0b3I8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+IGlkZW50aWZpZXJzOwogICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8VGltZXI+IHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJzVGltZXI7CkBA
IC0yMjUsMTAgKzIyOSwxMSBAQCBwcml2YXRlOgogCiAgICAgVW5pcXVlUmVmPFNXT3JpZ2luU3Rv
cmU+IG1fb3JpZ2luU3RvcmU7CiAgICAgUmVnaXN0cmF0aW9uU3RvcmUgbV9yZWdpc3RyYXRpb25T
dG9yZTsKLSAgICBIYXNoTWFwPFJlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFZlY3RvcjxTZXJ2aWNl
V29ya2VyQ29udGV4dERhdGE+PiBtX3BlbmRpbmdDb250ZXh0RGF0YXM7Ci0gICAgSGFzaE1hcDxS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBIYXNoTWFwPFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBW
ZWN0b3I8UnVuU2VydmljZVdvcmtlckNhbGxiYWNrPj4+IG1fc2VydmljZVdvcmtlclJ1blJlcXVl
c3RzOworICAgIEhhc2hNYXA8U2VjdXJpdHlPcmlnaW5EYXRhLCBWZWN0b3I8U2VydmljZVdvcmtl
ckNvbnRleHREYXRhPj4gbV9wZW5kaW5nQ29udGV4dERhdGFzOworICAgIEhhc2hNYXA8U2VjdXJp
dHlPcmlnaW5EYXRhLCBIYXNoTWFwPFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBWZWN0b3I8UnVu
U2VydmljZVdvcmtlckNhbGxiYWNrPj4+IG1fc2VydmljZVdvcmtlclJ1blJlcXVlc3RzOwogICAg
IFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogICAgIGJvb2wgbV9pbXBvcnRDb21wbGV0ZWQg
eyBmYWxzZSB9OworICAgIGJvb2wgbV9zaG91bGREaXNhYmxlU2VydmljZVdvcmtlclByb2Nlc3NU
ZXJtaW5hdGlvbkRlbGF5IHsgZmFsc2UgfTsKICAgICBWZWN0b3I8Q29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPj4gbV9jbGVhckNvbXBsZXRpb25DYWxsYmFja3M7CiAgICAgVmVjdG9yPEZ1bmN0aW9u
PHZvaWQoY29uc3QgSGFzaFNldDxTZWN1cml0eU9yaWdpbkRhdGE+Jik+PiBtX2dldE9yaWdpbnNX
aXRoUmVnaXN0cmF0aW9uc0NhbGxiYWNrczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5jcHAKaW5kZXggNmFhNWEyYTlmYmQyMzY2MzliNTc0NDAyMmNiMzgyNjI5ZTFi
NWQ0ZS4uM2MyNjE3MmYzMmY1YjEwMTkxODFiNzdlMWU5Njg4YzE5MDAyZjQwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcApAQCAtMzAsNyArMzAsNiBAQAogCiAj
aW5jbHVkZSAiU1dTZXJ2ZXIuaCIKICNpbmNsdWRlICJTV1NlcnZlcldvcmtlci5oIgotI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luSGFzaC5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00MCwyOSArMzksMjkgQEAgc3RhdGljIFNXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbklkZW50aWZpZXIgZ2VuZXJhdGVTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uSWQKICAgICByZXR1cm4gZ2VuZXJhdGVPYmplY3RJZGVudGlmaWVyPFNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbklkZW50aWZpZXJUeXBlPigpOwogfQogCi1zdGF0aWMgSGFzaE1h
cDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24qPiYg
YWxsQ29ubmVjdGlvbnNCeU9yaWdpbigpCitzdGF0aWMgSGFzaE1hcDxTZWN1cml0eU9yaWdpbkRh
dGEsIFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbio+JiBhbGxDb25uZWN0aW9uc0J5T3JpZ2lu
KCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+LCBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24qPj4gY29ubmVjdGlvbnNCeU9yaWdp
bjsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxTZWN1cml0eU9yaWdpbkRhdGEs
IFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbio+PiBjb25uZWN0aW9uc0J5T3JpZ2luOwogICAg
IHJldHVybiBjb25uZWN0aW9uc0J5T3JpZ2luOwogfQogCi1TV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb246OlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihSZWY8U2VjdXJpdHlPcmlnaW4+JiYg
b3JpZ2luKQorU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24oY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbikKICAgICA6
IG1faWRlbnRpZmllcihnZW5lcmF0ZVNlcnZlclRvQ29udGV4dENvbm5lY3Rpb25JZGVudGlmaWVy
KCkpCi0gICAgLCBtX29yaWdpbihXVEZNb3ZlKG9yaWdpbikpCisgICAgLCBtX3NlY3VyaXR5T3Jp
Z2luKHNlY3VyaXR5T3JpZ2luKQogewotICAgIGF1dG8gcmVzdWx0ID0gYWxsQ29ubmVjdGlvbnNC
eU9yaWdpbigpLmFkZChtX29yaWdpbi5jb3B5UmVmKCksIHRoaXMpOworICAgIGF1dG8gcmVzdWx0
ID0gYWxsQ29ubmVjdGlvbnNCeU9yaWdpbigpLmFkZChtX3NlY3VyaXR5T3JpZ2luLCB0aGlzKTsK
ICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOwogfQogCiBTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb246On5TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24oKQog
ewotICAgIGF1dG8gcmVzdWx0ID0gYWxsQ29ubmVjdGlvbnNCeU9yaWdpbigpLnJlbW92ZShtX29y
aWdpbi5wdHIoKSk7CisgICAgYXV0byByZXN1bHQgPSBhbGxDb25uZWN0aW9uc0J5T3JpZ2luKCku
cmVtb3ZlKG1fc2VjdXJpdHlPcmlnaW4pOwogICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCByZXN1
bHQpOwogfQogCi1TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24qIFNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbjo6Y29ubmVjdGlvbkZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYgb3Jp
Z2luKQorU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKiBTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb246OmNvbm5lY3Rpb25Gb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1
cml0eU9yaWdpbikKIHsKLSAgICByZXR1cm4gYWxsQ29ubmVjdGlvbnNCeU9yaWdpbigpLmdldCgm
Y29uc3RfY2FzdDxTZWN1cml0eU9yaWdpbiY+KG9yaWdpbikpOworICAgIHJldHVybiBhbGxDb25u
ZWN0aW9uc0J5T3JpZ2luKCkuZ2V0KHNlY3VyaXR5T3JpZ2luKTsKIH0KIAogdm9pZCBTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb246OnNjcmlwdENvbnRleHRGYWlsZWRUb1N0YXJ0KGNvbnN0IHN0
ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiYgam9iRGF0YUlkZW50
aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24u
aAppbmRleCA0YWMzZDVmN2M2M2ExMDE0Mzg1MTMyMzZmNjQ4NGNmZDNlNjhmNTJmLi4yZTYwNGVm
MmNiNTQ3YzE1ZDUzOGNkZDg3Zjg1ZDg5ZWM4MmViNTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKIAotI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiU2VjdXJp
dHlPcmlnaW5EYXRhLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9u
cy5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2Vy
dmljZVdvcmtlclR5cGVzLmgiCkBAIC03NCwxNiArNzQsMTggQEAgcHVibGljOgogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgbWF0Y2hBbGwodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50UXVlcnlPcHRpb25z
Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGFpbSh1aW50NjRfdCByZXF1ZXN0SWRlbnRp
ZmllciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogCi0gICAgc3RhdGljIFNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbiogY29ubmVjdGlvbkZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdp
biYpOworICAgIHN0YXRpYyBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24qIGNvbm5lY3Rpb25G
b3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJik7CiAKLSAgICBTZWN1cml0eU9yaWdp
biYgb3JpZ2luKCkgeyByZXR1cm4gbV9vcmlnaW4uZ2V0KCk7IH0KKyAgICBjb25zdCBTZWN1cml0
eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9zZWN1cml0eU9y
aWdpbjsgfQorCisgICAgdmlydHVhbCB2b2lkIGNvbm5lY3Rpb25NYXlOb0xvbmdlckJlTmVlZGVk
KCkgPSAwOwogCiBwcm90ZWN0ZWQ6Ci0gICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uKFJlZjxTZWN1cml0eU9yaWdpbj4mJik7CisgICAgV0VCQ09S
RV9FWFBPUlQgZXhwbGljaXQgU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKGNvbnN0IFNlY3Vy
aXR5T3JpZ2luRGF0YSYpOwogCiBwcml2YXRlOgogICAgIFNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbklkZW50aWZpZXIgbV9pZGVudGlmaWVyOwotICAgIFJlZjxTZWN1cml0eU9yaWdpbj4gbV9v
cmlnaW47CisgICAgU2VjdXJpdHlPcmlnaW5EYXRhIG1fc2VjdXJpdHlPcmlnaW47CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwCmluZGV4IDkwYTE5YTU4MmQ0MGVj
ZjljMjUyNjMwNTEwNjU5MWRhNDA3ZDcxOWUuLjE1OWJjZTY2OWYxY2I5YjJlNmI5NGYzOWM2Y2Qy
NjEyNzEyZTZjMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwCkBAIC04NSwxNCArODUsMTQgQEAgdm9pZCBT
V1NlcnZlcldvcmtlcjo6dGVybWluYXRlKCkKIGNvbnN0IENsaWVudE9yaWdpbiYgU1dTZXJ2ZXJX
b3JrZXI6Om9yaWdpbigpIGNvbnN0CiB7CiAgICAgaWYgKCFtX29yaWdpbikKLSAgICAgICAgbV9v
cmlnaW4gPSBDbGllbnRPcmlnaW4geyBtX3JlZ2lzdHJhdGlvbktleS50b3BPcmlnaW4oKSwgU2Vj
dXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0
ZShtX2RhdGEuc2NyaXB0VVJMKSkgfTsKKyAgICAgICAgbV9vcmlnaW4gPSBDbGllbnRPcmlnaW4g
eyBtX3JlZ2lzdHJhdGlvbktleS50b3BPcmlnaW4oKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9t
VVJMKG1fZGF0YS5zY3JpcHRVUkwpIH07CiAKICAgICByZXR1cm4gKm1fb3JpZ2luOwogfQogCi1S
ZWY8U2VjdXJpdHlPcmlnaW4+IFNXU2VydmVyV29ya2VyOjpzZWN1cml0eU9yaWdpbigpIGNvbnN0
Citjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIFNXU2VydmVyV29ya2VyOjpzZWN1cml0eU9yaWdp
bigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUobV9kYXRhLnNj
cmlwdFVSTCk7CisgICAgcmV0dXJuIG9yaWdpbigpLmNsaWVudE9yaWdpbjsKIH0KIAogU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uKiBTV1NlcnZlcldvcmtlcjo6Y29udGV4dENvbm5lY3Rpb24o
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlcldvcmtlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlcldvcmtlci5oCmluZGV4IGNjMDc1OWM2MTZlZjhlODI0YTI3ZWZmYzc0MWE1OTNjNWZmZmJh
ZDkuLmQ5M2Y1MDAwYWFiOWViMDFiZTRjYjhjNGRkMGFiMWI2M2ZkODZkZWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2Vy
LmgKQEAgLTEwNCw3ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgU2VydmljZVdvcmtlckNvbnRleHRE
YXRhIGNvbnRleHREYXRhKCkgY29uc3Q7CiAKICAgICBjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdp
bigpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxTZWN1cml0eU9yaWdpbj4gc2VjdXJp
dHlPcmlnaW4oKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBTZWN1cml0eU9yaWdp
bkRhdGEmIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24qIGNvbnRleHRDb25uZWN0aW9uKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Db25maWd1cmF0aW9ucy9WZXJzaW9uLnhjY29uZmln
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NvbmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWcK
aW5kZXggZjlkODdjMzMyZGNkYmYyMjVkNDc0YjFlNzM1MjY4ZjY0MzRhZjdiMS4uMGE5NDNmZTZl
ZTZkMGIwZWRiZjQ1M2JhOWY3YzFhNjNiNDM2OGE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL0NvbmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWcKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NvbmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNjb25maWcKQEAgLTEsNiArMSw2
IEBACiBNQUpPUl9WRVJTSU9OID0gNjA2OwogTUlOT1JfVkVSU0lPTiA9IDE7Ci1USU5ZX1ZFUlNJ
T04gPSAxMDsKK1RJTllfVkVSU0lPTiA9IDExOwogTUlDUk9fVkVSU0lPTiA9IDA7CiBOQU5PX1ZF
UlNJT04gPSAwOwogRlVMTF9WRVJTSU9OID0gJChNQUpPUl9WRVJTSU9OKS4kKE1JTk9SX1ZFUlNJ
T04pLiQoVElOWV9WRVJTSU9OKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9T
Y3JpcHRzL2NvbWJpbmUtcmVzb3VyY2VzLnBsIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Njcmlw
dHMvY29tYmluZS1yZXNvdXJjZXMucGwKaW5kZXggNjEyOTEwZjU2MWVjZTQ1ZjM2NDIzZmY3MTY1
YzQwMDliZGNiNTVmMy4uODI2Mzc4NjA5M2UyMjM4MDYxNzAxZjkyZDU4NjI5YmJhNWRlY2YzMyAx
MDA3NTUKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1NjcmlwdHMvY29tYmluZS1yZXNvdXJj
ZXMucGwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1NjcmlwdHMvY29tYmluZS1yZXNvdXJj
ZXMucGwKQEAgLTEsNiArMSw2IEBACiAjIS91c3IvYmluL2VudiBwZXJsCiAKLSMgQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChD
KSAyMDE1LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zNyw2ICszNyw3IEBAIG91ciAkZGVyaXZlZFNvdXJjZXNEaXJl
Y3Rvcnk7CiBvdXIgJGh0bWxEaXJlY3Rvcnk7CiBvdXIgJGh0bWxGaWxlOwogb3VyICRzdHJpcDsK
K291ciAkdmVyYm9zZTsKIAogR2V0T3B0aW9ucygnb3V0cHV0LWRpcj1zJyA9PiBcJG91dHB1dERp
cmVjdG9yeSwKICAgICAgICAgICAgJ291dHB1dC1zY3JpcHQtbmFtZT1zJyA9PiBcJG91dHB1dFNj
cmlwdE5hbWUsCkBAIC00NSw2ICs0Niw3IEBAIEdldE9wdGlvbnMoJ291dHB1dC1kaXI9cycgPT4g
XCRvdXRwdXREaXJlY3RvcnksCiAgICAgICAgICAgICdpbnB1dC1kaXI9cycgPT4gXCRpbnB1dERp
cmVjdG9yeSwKICAgICAgICAgICAgJ2lucHV0LWh0bWwtZGlyPXMnID0+IFwkaHRtbERpcmVjdG9y
eSwKICAgICAgICAgICAgJ2lucHV0LWh0bWw9cycgPT4gXCRodG1sRmlsZSwKKyAgICAgICAgICAg
J3ZlcmJvc2UnID0+IFwkdmVyYm9zZSwKICAgICAgICAgICAgJ3N0cmlwJyA9PiBcJHN0cmlwKTsK
IAogdW5sZXNzIChkZWZpbmVkICRodG1sRmlsZSBhbmQgZGVmaW5lZCAkZGVyaXZlZFNvdXJjZXNE
aXJlY3RvcnkgYW5kIGRlZmluZWQgJG91dHB1dERpcmVjdG9yeSBhbmQgKGRlZmluZWQgJHN0cmlw
IG9yIGRlZmluZWQgJG91dHB1dFNjcmlwdE5hbWUgb3IgZGVmaW5lZCAkb3V0cHV0U3R5bGVzaGVl
dE5hbWUpKSB7CkBAIC01MiwxMyArNTQsMTkgQEAgdW5sZXNzIChkZWZpbmVkICRodG1sRmlsZSBh
bmQgZGVmaW5lZCAkZGVyaXZlZFNvdXJjZXNEaXJlY3RvcnkgYW5kIGRlZmluZWQgJG91dHAKICAg
ICBleGl0OwogfQogCitzdWIgZGVidWdMb2coJCkKK3sKKyAgICBteSAkbG9nU3RyaW5nID0gc2hp
ZnQ7CisgICAgcHJpbnQgIi0tICRsb2dTdHJpbmdcbiIgaWYgJHZlcmJvc2U7Cit9CisKICRodG1s
RGlyZWN0b3J5ID0gZGlybmFtZSgkaHRtbEZpbGUpIHVubGVzcyAkaHRtbERpcmVjdG9yeTsKIAog
b3VyICRodG1sQ29udGVudHM7CiAKIHsKICAgICBsb2NhbCAkLzsKLSAgICBvcGVuIEhUTUwsICRo
dG1sRmlsZSBvciBkaWU7CisgICAgb3BlbiBIVE1MLCAkaHRtbEZpbGUgb3IgZGllICJDb3VsZCBu
b3Qgb3BlbiAkaHRtbEZpbGUiOwogICAgICRodG1sQ29udGVudHMgPSA8SFRNTD47CiAgICAgY2xv
c2UgSFRNTDsKIH0KQEAgLTY4LDEzICs3NiwxNSBAQCBvdXIgJGhlYWRDb250ZW50cyA9ICQxOwog
CiBta3BhdGggJG91dHB1dERpcmVjdG9yeTsKIAotc3ViIGNvbmNhdGVuYXRlRmlsZXMoJCQkKQor
c3ViIGNvbmNhdGVuYXRlSW5jbHVkZWRGaWxlc01hdGNoaW5nUGF0dGVybigkJCQpCiB7CiAgICAg
bXkgJGZpbGVuYW1lID0gc2hpZnQ7CiAgICAgbXkgJHRhZ0V4cHJlc3Npb24gPSBzaGlmdDsKICAg
ICBteSAkY29uY2F0ZW5hdGVkVGFnID0gc2hpZnQ7CiAgICAgbXkgJGZpbGVDb3VudCA9IDA7CiAK
KyAgICBkZWJ1Z0xvZygiY29tYmluaW5nIGZpbGVzIGZvciAkZmlsZW5hbWUgd2l0aCBwYXR0ZXJu
ICR0YWdFeHByZXNzaW9uIik7CisKICAgICBvcGVuIE9VVCwgIj4iLCAiJG91dHB1dERpcmVjdG9y
eS8kZmlsZW5hbWUiIG9yIGRpZSAiQ2FuJ3Qgb3BlbiAkb3V0cHV0RGlyZWN0b3J5LyRmaWxlbmFt
ZTogJCEiOwogCiAgICAgd2hpbGUgKCRoZWFkQ29udGVudHMgPX4gbS8kdGFnRXhwcmVzc2lvbi9n
aSkgewpAQCAtOTEsMjQgKzEwMSwzMyBAQCBzdWIgY29uY2F0ZW5hdGVGaWxlcygkJCQpCiAgICAg
IyBEb24ndCB1c2UgXHMgc28gd2UgY2FuIGNvbnRyb2wgdGhlIG5ld2xpbmVzIHdlIGNvbnN1bWUu
CiAgICAgbXkgJHJlcGxhY2VtZW50RXhwcmVzc2lvbiA9ICIoW1x0IF0qKSIgLiAkdGFnRXhwcmVz
c2lvbiAuICJbXHQgXSpcbisiOwogCi0gICAgaWYgKGRlZmluZWQgJHN0cmlwKSB7Ci0gICAgICAg
ICMgSnVzdCBzdHJpcCBhbGwgb2NjdXJyZW5jZXMgb2YgdGhlIHBhdHRlcm4uCi0gICAgICAgICRo
ZWFkQ29udGVudHMgPX4gcy8kcmVwbGFjZW1lbnRFeHByZXNzaW9uLy9naTsKLSAgICB9IGVsc2Ug
ewotICAgICAgICAjIFJlcGxhY2UgdGhlIGZpcnN0IG9jY3VycmVuY2Ugd2l0aCBhIHRva2VuIHNv
IHdlIGNhbiBpbmplY3QgdGhlIGNvbmNhdGVuYXRlZCB0YWcgaW4gdGhlIHNhbWUgcGxhY2UKLSAg
ICAgICAgIyBhcyB0aGUgZmlyc3QgZmlsZSB0aGF0IGdvdCBjb25zb2xpZGF0ZWQuIFRoaXMgbWFr
ZXMgc3VyZSB3ZSBwcmVzZXJ2ZSBzb21lIG9yZGVyIGlmIHRoZXJlIGFyZSBvdGhlcgotICAgICAg
ICAjIGl0ZW1zIGluIHRoZSBoZWFkIHRoYXQgd2UgZGlkbid0IGNvbnNvbGlkYXRlLgotICAgICAg
ICAkaGVhZENvbnRlbnRzID1+IHMvJHJlcGxhY2VtZW50RXhwcmVzc2lvbi8kMSVDT05DQVRFTkFU
RUQlXG4vaTsKLSAgICAgICAgJGhlYWRDb250ZW50cyA9fiBzLyRyZXBsYWNlbWVudEV4cHJlc3Np
b24vL2dpOwotICAgICAgICAkaGVhZENvbnRlbnRzID1+IHMvJUNPTkNBVEVOQVRFRCUvJGNvbmNh
dGVuYXRlZFRhZy87Ci0gICAgfQorICAgICMgUmVwbGFjZSB0aGUgZmlyc3Qgb2NjdXJyZW5jZSB3
aXRoIGEgdG9rZW4gc28gd2UgY2FuIGluamVjdCB0aGUgY29uY2F0ZW5hdGVkIHRhZyBpbiB0aGUg
c2FtZSBwbGFjZQorICAgICMgYXMgdGhlIGZpcnN0IGZpbGUgdGhhdCBnb3QgY29uc29saWRhdGVk
LiBUaGlzIG1ha2VzIHN1cmUgd2UgcHJlc2VydmUgc29tZSBvcmRlciBpZiB0aGVyZSBhcmUgb3Ro
ZXIKKyAgICAjIGl0ZW1zIGluIHRoZSBoZWFkIHRoYXQgd2UgZGlkbid0IGNvbnNvbGlkYXRlLgor
ICAgICRoZWFkQ29udGVudHMgPX4gcy8kcmVwbGFjZW1lbnRFeHByZXNzaW9uLyQxJUNPTkNBVEVO
QVRFRCVcbi9pOworICAgICRoZWFkQ29udGVudHMgPX4gcy8kcmVwbGFjZW1lbnRFeHByZXNzaW9u
Ly9naTsKKyAgICAkaGVhZENvbnRlbnRzID1+IHMvJUNPTkNBVEVOQVRFRCUvJGNvbmNhdGVuYXRl
ZFRhZy87CiB9CiAKLW15ICRpbnB1dERpcmVjdG9yeVBhdHRlcm4gPSAiKD8hRXh0ZXJuYWxcLyko
PyFXb3JrZXJzXC8pW15cIl0qIjsKK3N1YiBzdHJpcEluY2x1ZGVkRmlsZXNNYXRjaGluZ1BhdHRl
cm4oJCkKK3sKKyAgICBteSAkdGFnUGF0dGVybiA9IHNoaWZ0OworCisgICAgIyBEb24ndCB1c2Ug
XHMgc28gd2UgY2FuIGNvbnRyb2wgdGhlIG5ld2xpbmVzIHdlIGNvbnN1bWUuCisgICAgbXkgJHdo
aXRlc3BhY2VDb25zdW1pbmdUYWdQYXR0ZXJuID0gIihbXHQgXSopIiAuICR0YWdQYXR0ZXJuIC4g
IltcdCBdKlxuKyI7CisgICAgJGhlYWRDb250ZW50cyA9fiBzLyR3aGl0ZXNwYWNlQ29uc3VtaW5n
VGFnUGF0dGVybi8vZ2k7Cit9CisKK215ICRpbnB1dERpcmVjdG9yeVBhdHRlcm4gPSAiKD8hV2Vi
S2l0QWRkaXRpb25zXC8pKD8hRXh0ZXJuYWxcLykoPyFXb3JrZXJzXC8pW15cIl0qIjsKICRpbnB1
dERpcmVjdG9yeVBhdHRlcm4gPSAkaW5wdXREaXJlY3RvcnkgLiAiXC9bXlwiXSoiIGlmICRpbnB1
dERpcmVjdG9yeTsKIAotY29uY2F0ZW5hdGVGaWxlcygkb3V0cHV0U3R5bGVzaGVldE5hbWUsICI8
bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj1cIigkaW5wdXREaXJlY3RvcnlQYXR0ZXJuKVwi
PiIsICI8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj1cIiRvdXRwdXRTdHlsZXNoZWV0TmFt
ZVwiPiIpIGlmIGRlZmluZWQgJG91dHB1dFN0eWxlc2hlZXROYW1lOwotY29uY2F0ZW5hdGVGaWxl
cygkb3V0cHV0U2NyaXB0TmFtZSwgIjxzY3JpcHQgc3JjPVwiKCRpbnB1dERpcmVjdG9yeVBhdHRl
cm4pXCI+PFwvc2NyaXB0PiIsICI8c2NyaXB0IHNyYz1cIiRvdXRwdXRTY3JpcHROYW1lXCI+PC9z
Y3JpcHQ+IikgaWYgZGVmaW5lZCAkb3V0cHV0U2NyaXB0TmFtZTsKK2lmIChkZWZpbmVkKCRzdHJp
cCkpIHsKKyAgICBzdHJpcEluY2x1ZGVkRmlsZXNNYXRjaGluZ1BhdHRlcm4oIjxsaW5rIHJlbD1c
InN0eWxlc2hlZXRcIiBocmVmPVwiKCRpbnB1dERpcmVjdG9yeVBhdHRlcm4pXCI+Iik7CisgICAg
c3RyaXBJbmNsdWRlZEZpbGVzTWF0Y2hpbmdQYXR0ZXJuKCI8c2NyaXB0IHNyYz1cIigkaW5wdXRE
aXJlY3RvcnlQYXR0ZXJuKVwiPjxcL3NjcmlwdD4iKTsKK30gZWxzZSB7CisgICAgY29uY2F0ZW5h
dGVJbmNsdWRlZEZpbGVzTWF0Y2hpbmdQYXR0ZXJuKCRvdXRwdXRTdHlsZXNoZWV0TmFtZSwgIjxs
aW5rIHJlbD1cInN0eWxlc2hlZXRcIiBocmVmPVwiKCRpbnB1dERpcmVjdG9yeVBhdHRlcm4pXCI+
IiwgIjxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiBocmVmPVwiJG91dHB1dFN0eWxlc2hlZXROYW1l
XCI+IikgaWYgZGVmaW5lZCAkb3V0cHV0U3R5bGVzaGVldE5hbWU7CisgICAgY29uY2F0ZW5hdGVJ
bmNsdWRlZEZpbGVzTWF0Y2hpbmdQYXR0ZXJuKCRvdXRwdXRTY3JpcHROYW1lLCAiPHNjcmlwdCBz
cmM9XCIoJGlucHV0RGlyZWN0b3J5UGF0dGVybilcIj48XC9zY3JpcHQ+IiwgIjxzY3JpcHQgc3Jj
PVwiJG91dHB1dFNjcmlwdE5hbWVcIj48L3NjcmlwdD4iKSBpZiBkZWZpbmVkICRvdXRwdXRTY3Jp
cHROYW1lOworfQogCiAkaHRtbENvbnRlbnRzID1+IHMvPGhlYWQ+Lio8XC9oZWFkPi88aGVhZD4k
aGVhZENvbnRlbnRzPFwvaGVhZD4vc2k7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9TY3JpcHRzL2NvcHktdXNlci1pbnRlcmZhY2UtcmVzb3VyY2VzLnBsIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1NjcmlwdHMvY29weS11c2VyLWludGVyZmFjZS1yZXNvdXJjZXMucGwKaW5k
ZXggMGIxNmI2ODM2NzQ1YjI3NjQxOGM2NDA1Nzg4OWQ3MmIxMmMzN2Q4Yy4uNGJiNzAzN2Q4NTE0
OTcwNjNiODExOWIyYzhmZmE1ZTg4ZGE4MGJkNyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1NjcmlwdHMvY29weS11c2VyLWludGVyZmFjZS1yZXNvdXJjZXMucGwKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1NjcmlwdHMvY29weS11c2VyLWludGVyZmFjZS1yZXNvdXJjZXMu
cGwKQEAgLTEsNiArMSw2IEBACiAjIS91c3IvYmluL2VudiBwZXJsCiAKLSMgQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAy
MDE1LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yNSw5ICsyNSwyMCBAQAogCiB1c2Ugd2FybmluZ3M7CiB1c2UgRW5n
bGlzaDsKK3VzZSBGaWxlOjpCYXNlbmFtZSBxdyhkaXJuYW1lKTsKIHVzZSBGaWxlOjpDb3B5IHF3
KGNvcHkpOwogdXNlIEZpbGU6OlBhdGggcXcobWFrZV9wYXRoIHJlbW92ZV90cmVlKTsKIHVzZSBG
aWxlOjpTcGVjOwordXNlIEdldG9wdDo6TG9uZzsKKworbXkgJHZlcmJvc2UgPSAwOworR2V0T3B0
aW9ucygndmVyYm9zZScgPT4gXCR2ZXJib3NlKTsKKworc3ViIGRlYnVnTG9nKCQpCit7CisgICAg
bXkgJGxvZ1N0cmluZyA9IHNoaWZ0OworICAgIHByaW50ICItLSAkbG9nU3RyaW5nXG4iIGlmICR2
ZXJib3NlOworfQogCiBteSAkdXNlRGlyQ29weSA9IDA7CiAKQEAgLTEwMSw3ICsxMTIsNyBAQCBz
dWIgcmVhZExpY2Vuc2VGaWxlKCQpCiAKIG15ICRpbnNwZWN0b3JMaWNlbnNlID0gPDwnRU9GJzsK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTWF0dCBMaWxlay4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOC0yMDA5IEFudGhvbnkgUmljYXVkIDxyaWtA
d2Via2l0Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwOS0yMDEwIEpvc2VwaCBQZWNvcmFyby4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KQEAgLTE1Nyw2ICsxNjgsMTMgQEAgbXkgJGVzcHJpbWFQYXRo
ID0gRmlsZTo6U3BlYy0+Y2F0ZGlyKCR1aVJvb3QsICdFeHRlcm5hbCcsICdFc3ByaW1hJyk7CiBt
eSAkZXNsaW50UGF0aCA9IEZpbGU6OlNwZWMtPmNhdGRpcigkdWlSb290LCAnRXh0ZXJuYWwnLCAn
RVNMaW50Jyk7CiBteSAkdGhyZWVqc1BhdGggPSBGaWxlOjpTcGVjLT5jYXRkaXIoJHVpUm9vdCwg
J0V4dGVybmFsJywgJ3RocmVlLmpzJyk7CiAKK215ICR3ZWJraXRBZGRpdGlvbnNEaXI7Ciskd2Vi
a2l0QWRkaXRpb25zRGlyID0gRmlsZTo6U3BlYy0+Y2F0ZGlyKCRFTlZ7J0JVSUxUX1BST0RVQ1RT
X0RJUid9LCAndXNyJywgJ2xvY2FsJywgJ2luY2x1ZGUnLCAnV2ViS2l0QWRkaXRpb25zJyk7Cisk
d2Via2l0QWRkaXRpb25zRGlyID0gRmlsZTo6U3BlYy0+Y2F0ZGlyKCRFTlZ7J1NES1JPT1QnfSwg
J3VzcicsICdsb2NhbCcsICdpbmNsdWRlJywgJ1dlYktpdEFkZGl0aW9ucycpIHVubGVzcyAtZCAk
d2Via2l0QWRkaXRpb25zRGlyOworbXkgJHdlYkluc3BlY3RvclVJQWRkaXRpb25zRGlyID0gRmls
ZTo6U3BlYy0+Y2F0ZGlyKCR3ZWJraXRBZGRpdGlvbnNEaXIsICdXZWJJbnNwZWN0b3JVSScpOwor
CitkZWJ1Z0xvZygid2Via2l0QWRkaXRpb25zRGlyOiAkd2Via2l0QWRkaXRpb25zRGlyIik7CisK
IG15ICRjb2RlTWlycm9yTGljZW5zZSA9IHJlYWRMaWNlbnNlRmlsZShGaWxlOjpTcGVjLT5jYXRm
aWxlKCRjb2RlTWlycm9yUGF0aCwgJ0xJQ0VOU0UnKSk7CiBteSAkZXNwcmltYUxpY2Vuc2UgPSBy
ZWFkTGljZW5zZUZpbGUoRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkZXNwcmltYVBhdGgsICdMSUNFTlNF
JykpOwogbXkgJGVzbGludExpY2Vuc2UgPSByZWFkTGljZW5zZUZpbGUoRmlsZTo6U3BlYy0+Y2F0
ZmlsZSgkZXNsaW50UGF0aCwgJ0xJQ0VOU0UnKSk7CkBAIC0xODEsMTEgKzE5OSw3MiBAQCBpZiAo
JGZvcmNlVG9vbEluc3RhbGwpIHsKICAgICAkc2hvdWxkQ29tYmluZVRlc3QgPSAxOwogfQogCitp
ZiAoISRzaG91bGRDb21iaW5lTWFpbikgeworICAgICMgS2VlcCB0aGUgZmlsZXMgc2VwYXJhdGUg
Zm9yIGVuZ2luZWVyaW5nIGJ1aWxkcy4gQ29weSB0aGVzZSBiZWZvcmUgYWx0ZXJpbmcgTWFpbi5o
dG1sCisgICAgIyBpbiBvdGhlciB3YXlzLCBzdWNoIGFzIGNvbWJpbmluZyBmb3IgV2ViS2l0QWRk
aXRpb25zIG9yIGlubGluaW5nIGZpbGVzLgorICAgIGRpdHRvKCR1aVJvb3QsICR0YXJnZXRSZXNv
dXJjZVBhdGgpOworfQorCisjIEFsd2F5cyByZWZlciB0byB0aGUgY29weSBpbiBkZXJpdmVkIHNv
dXJjZXMgc28gdGhlIG9yZGVyIG9mIHJlcGxhY2VtZW50cyBkb2VzIG5vdCBtYXR0ZXIuCittYWtl
X3BhdGgoJGRlcml2ZWRTb3VyY2VzRGlyKTsKK215ICRkZXJpdmVkU291cmNlc01haW5IVE1MID0g
RmlsZTo6U3BlYy0+Y2F0ZmlsZSgkZGVyaXZlZFNvdXJjZXNEaXIsICdNYWluLmh0bWwnKTsKK2Nv
cHkoRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkdWlSb290LCAnTWFpbi5odG1sJyksIEZpbGU6OlNwZWMt
PmNhdGZpbGUoJGRlcml2ZWRTb3VyY2VzRGlyLCAnTWFpbi5odG1sJykpIG9yIGRpZSAiQ29weSBm
YWlsZWQ6ICQhIjsKKworc3ViIGNvbWJpbmVPclN0cmlwUmVzb3VyY2VzRm9yV2ViS2l0QWRkaXRp
b25zKCkgeworICAgIG15ICRjb21iaW5lV2ViS2l0QWRkaXRpb25zID0gMDsKKworICAgIGlmICgt
ZCAkd2ViSW5zcGVjdG9yVUlBZGRpdGlvbnNEaXIpIHsKKyAgICAgICAgJGNvbWJpbmVXZWJLaXRB
ZGRpdGlvbnMgPSAxOworICAgICAgICBkZWJ1Z0xvZygiRm91bmQgJHdlYkluc3BlY3RvclVJQWRk
aXRpb25zRGlyIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZGVidWdMb2coIkRpZG4ndCBmaW5k
ICR3ZWJJbnNwZWN0b3JVSUFkZGl0aW9uc0RpciIpOworICAgIH0KKworICAgIGlmICgkY29tYmlu
ZVdlYktpdEFkZGl0aW9ucykgeworICAgICAgICBkZWJ1Z0xvZygiQ29tYmluaW5nIHJlc291cmNl
cyBwcm92aWRlZCBieSBXZWJLaXRBZGRpdGlvbnMuIik7CisgICAgICAgIGNvbWJpbmVSZXNvdXJj
ZXNGb3JXZWJLaXRBZGRpdGlvbnMoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBkZWJ1Z0xvZygi
U3RyaXBwaW5nIHJlc291cmNlcyBwcm92aWRlZCBieSBXZWJLaXRBZGRpdGlvbnMuIik7CisgICAg
ICAgIHN0cmlwUmVzb3VyY2VzRm9yV2ViS2l0QWRkaXRpb25zKCk7CisgICAgfQorfQorCitzdWIg
c3RyaXBSZXNvdXJjZXNGb3JXZWJLaXRBZGRpdGlvbnMoKSB7CisgICAgc3lzdGVtKCRwZXJsLCAk
Y29tYmluZVJlc291cmNlc0NtZCwKKyAgICAgICAgJy0taW5wdXQtZGlyJywgJ1dlYktpdEFkZGl0
aW9ucycsCisgICAgICAgICctLWlucHV0LWh0bWwnLCAkZGVyaXZlZFNvdXJjZXNNYWluSFRNTCwK
KyAgICAgICAgJy0tZGVyaXZlZC1zb3VyY2VzLWRpcicsICRkZXJpdmVkU291cmNlc0RpciwKKyAg
ICAgICAgJy0tb3V0cHV0LWRpcicsICRkZXJpdmVkU291cmNlc0RpciwKKyAgICAgICAgJy0tc3Ry
aXAnKTsKK30KKworc3ViIGNvbWJpbmVSZXNvdXJjZXNGb3JXZWJLaXRBZGRpdGlvbnMoKSB7Cisg
ICAgJHJvb3RQYXRoRm9yUmVsYXRpdmVJbmNsdWRlcyA9IGRpcm5hbWUoZGlybmFtZSgkd2ViSW5z
cGVjdG9yVUlBZGRpdGlvbnNEaXIpKTsKKyAgICBzeXN0ZW0oJHBlcmwsICRjb21iaW5lUmVzb3Vy
Y2VzQ21kLAorICAgICAgICAnLS1pbnB1dC1kaXInLCAnV2ViS2l0QWRkaXRpb25zJywKKyAgICAg
ICAgJy0taW5wdXQtaHRtbCcsICRkZXJpdmVkU291cmNlc01haW5IVE1MLAorICAgICAgICAnLS1p
bnB1dC1odG1sLWRpcicsICRyb290UGF0aEZvclJlbGF0aXZlSW5jbHVkZXMsCisgICAgICAgICct
LWRlcml2ZWQtc291cmNlcy1kaXInLCAkZGVyaXZlZFNvdXJjZXNEaXIsCisgICAgICAgICctLW91
dHB1dC1kaXInLCAkZGVyaXZlZFNvdXJjZXNEaXIsCisgICAgICAgICctLW91dHB1dC1zY3JpcHQt
bmFtZScsICdXZWJLaXRBZGRpdGlvbnMuanMnLAorICAgICAgICAnLS1vdXRwdXQtc3R5bGUtbmFt
ZScsICdXZWJLaXRBZGRpdGlvbnMuY3NzJyk7CisKKyAgICAjIEV4cG9ydCB0aGUgbGljZW5zZSBp
bnRvIFdlYktpdEFkZGl0aW9ucyBmaWxlcy4KKyAgICBteSAkdGFyZ2V0V2ViS2l0QWRkaXRpb25z
SlMgPSBGaWxlOjpTcGVjLT5jYXRmaWxlKCR0YXJnZXRSZXNvdXJjZVBhdGgsICdXZWJLaXRBZGRp
dGlvbnMuanMnKTsKKyAgICBzZWVkRmlsZSgkdGFyZ2V0V2ViS2l0QWRkaXRpb25zSlMsICRpbnNw
ZWN0b3JMaWNlbnNlKTsKKworICAgIG15ICR0YXJnZXRXZWJLaXRBZGRpdGlvbnNDU1MgPSBGaWxl
OjpTcGVjLT5jYXRmaWxlKCR0YXJnZXRSZXNvdXJjZVBhdGgsICdXZWJLaXRBZGRpdGlvbnMuY3Nz
Jyk7CisgICAgc2VlZEZpbGUoJHRhcmdldFdlYktpdEFkZGl0aW9uc0NTUywgJGluc3BlY3Rvckxp
Y2Vuc2UpOworCisgICAgYXBwZW5kRmlsZSgkdGFyZ2V0V2ViS2l0QWRkaXRpb25zSlMsIEZpbGU6
OlNwZWMtPmNhdGZpbGUoJGRlcml2ZWRTb3VyY2VzRGlyLCAnV2ViS2l0QWRkaXRpb25zLmpzJykp
OworICAgIGFwcGVuZEZpbGUoJHRhcmdldFdlYktpdEFkZGl0aW9uc0NTUywgRmlsZTo6U3BlYy0+
Y2F0ZmlsZSgkZGVyaXZlZFNvdXJjZXNEaXIsICdXZWJLaXRBZGRpdGlvbnMuY3NzJykpOworfQor
CiBpZiAoJHNob3VsZENvbWJpbmVNYWluKSB7CiAgICAgIyBSZW1vdmUgRGVidWcgSmF2YVNjcmlw
dCBhbmQgQ1NTIGZpbGVzIGluIFByb2R1Y3Rpb24gYnVpbGRzLgogICAgIHN5c3RlbSgkcGVybCwg
JGNvbWJpbmVSZXNvdXJjZXNDbWQsCiAgICAgICAgICctLWlucHV0LWRpcicsICdEZWJ1ZycsCi0g
ICAgICAgICctLWlucHV0LWh0bWwnLCBGaWxlOjpTcGVjLT5jYXRmaWxlKCR1aVJvb3QsICdNYWlu
Lmh0bWwnKSwKKyAgICAgICAgJy0taW5wdXQtaHRtbCcsICRkZXJpdmVkU291cmNlc01haW5IVE1M
LAogICAgICAgICAnLS1pbnB1dC1odG1sLWRpcicsICR1aVJvb3QsCiAgICAgICAgICctLWRlcml2
ZWQtc291cmNlcy1kaXInLCAkZGVyaXZlZFNvdXJjZXNEaXIsCiAgICAgICAgICctLW91dHB1dC1k
aXInLCAkZGVyaXZlZFNvdXJjZXNEaXIsCkBAIC0xOTQsNyArMjczLDYgQEAgaWYgKCRzaG91bGRD
b21iaW5lTWFpbikgewogICAgICAgICAnLS1zdHJpcCcpOwogCiAgICAgIyBDb21iaW5lIHRoZSBK
YXZhU2NyaXB0IGFuZCBDU1MgZmlsZXMgaW4gUHJvZHVjdGlvbiBidWlsZHMgaW50byBzaW5nbGUg
ZmlsZXMgKE1haW4uanMgYW5kIE1haW4uY3NzKS4KLSAgICBteSAkZGVyaXZlZFNvdXJjZXNNYWlu
SFRNTCA9IEZpbGU6OlNwZWMtPmNhdGZpbGUoJGRlcml2ZWRTb3VyY2VzRGlyLCAnTWFpbi5odG1s
Jyk7CiAgICAgc3lzdGVtKCRwZXJsLCAkY29tYmluZVJlc291cmNlc0NtZCwKICAgICAgICAnLS1p
bnB1dC1odG1sJywgJGRlcml2ZWRTb3VyY2VzTWFpbkhUTUwsCiAgICAgICAgJy0taW5wdXQtaHRt
bC1kaXInLCAkdWlSb290LApAQCAtMjAzLDYgKzI4MSwxMCBAQCBpZiAoJHNob3VsZENvbWJpbmVN
YWluKSB7CiAgICAgICAgJy0tb3V0cHV0LXNjcmlwdC1uYW1lJywgJ01haW4uanMnLAogICAgICAg
ICctLW91dHB1dC1zdHlsZS1uYW1lJywgJ01haW4uY3NzJyk7CiAKKyAgICAjIFByb2Nlc3MgV2Vi
S2l0QWRkaXRpb25zLntjc3MsanN9IGFmdGVyIE1haW4ue2pzLGNzc30uIE90aGVyd2lzZSwgdGhl
IGNvbWJpbmVkIFdlYktpdEFkZGl0aW9ucyBmaWxlcworICAgICMgd2lsbCBnZXQgc2x1cnBlZCBp
bnRvIE1haW4ue2pzLGNzc30gYmVjYXVzZSB0aGUgJ1dlYktpdEFkZGl0aW9ucycgcmVsYXRpdmUg
VVJMIHByZWZpeCB3aWxsIGJlIHJlbW92ZWQuCisgICAgY29tYmluZU9yU3RyaXBSZXNvdXJjZXNG
b3JXZWJLaXRBZGRpdGlvbnMoKTsKKwogICAgICMgQ29tYmluZSB0aGUgQ29kZU1pcnJvciBKYXZh
U2NyaXB0IGFuZCBDU1MgZmlsZXMgaW4gUHJvZHVjdGlvbiBidWlsZHMgaW50byBzaW5nbGUgZmls
ZXMgKENvZGVNaXJyb3IuanMgYW5kIENvZGVNaXJyb3IuY3NzKS4KICAgICBzeXN0ZW0oJHBlcmws
ICRjb21iaW5lUmVzb3VyY2VzQ21kLAogICAgICAgICctLWlucHV0LWRpcicsICdFeHRlcm5hbC9D
b2RlTWlycm9yJywKQEAgLTMwOCw5ICszOTAsNyBAQCBpZiAoJHNob3VsZENvbWJpbmVNYWluKSB7
CiAgICAgbXkgJGRlcml2ZWRTb3VyY2VzVGhyZWVqc0pTID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgk
ZGVyaXZlZFNvdXJjZXNEaXIsICdUaHJlZS5qcycpOwogICAgIHN5c3RlbShxcSgiJHB5dGhvbiIg
IiRqc01pblNjcmlwdCIgPCAiJGRlcml2ZWRTb3VyY2VzVGhyZWVqc0pTIiA+PiAiJHRhcmdldFRo
cmVlanNKUyIpKSBhbmQgZGllICJGYWlsZWQgdG8gbWluaWZ5ICRkZXJpdmVkU291cmNlc1RocmVl
anNKUzogJCEiOwogCi0gICAgIyBDb3B5IG92ZXIgTWFpbi5odG1sIGFuZCB0aGUgSW1hZ2VzIGRp
cmVjdG9yeS4KLSAgICBjb3B5KCRkZXJpdmVkU291cmNlc01haW5IVE1MLCBGaWxlOjpTcGVjLT5j
YXRmaWxlKCR0YXJnZXRSZXNvdXJjZVBhdGgsICdNYWluLmh0bWwnKSk7Ci0KKyAgICAjIENvcHkg
b3ZlciB0aGUgSW1hZ2VzIGRpcmVjdG9yeS4KICAgICBkaXR0byhGaWxlOjpTcGVjLT5jYXRkaXIo
JHVpUm9vdCwgJ0ltYWdlcycpLCBGaWxlOjpTcGVjLT5jYXRkaXIoJHRhcmdldFJlc291cmNlUGF0
aCwgJ0ltYWdlcycpKTsKIAogICAgICMgUmVtb3ZlIEVTTGludCB1bnRpbCBuZWVkZWQ6IDxodHRw
czovL3dlYmtpdC5vcmcvYi8xMzY1MTU+IFdlYiBJbnNwZWN0b3I6IEphdmFTY3JpcHQgc291cmNl
IHRleHQgZWRpdG9yIHNob3VsZCBoYXZlIGEgbGludGVyCkBAIC0zMjgsMTAgKzQwOCwxNyBAQCBp
ZiAoJHNob3VsZENvbWJpbmVNYWluKSB7CiAgICAgc3lzdGVtKCRwZXJsLCBGaWxlOjpTcGVjLT5j
YXRmaWxlKCRzY3JpcHRzUm9vdCwgJ2ZpeC13b3JrZXItaW1wb3J0cy1mb3Itb3B0aW1pemVkLWJ1
aWxkcy5wbCcpLAogICAgICAgICAnLS1pbnB1dC1kaXJlY3RvcnknLCAkd29ya2Vyc0RpcikgYW5k
IGRpZSAiRmFpbGVkIHRvIHVwZGF0ZSBXb3JrZXIgaW1wb3J0cyBmb3Igb3B0aW1pemVkIGJ1aWxk
cy4iOwogfSBlbHNlIHsKLSAgICAjIEtlZXAgdGhlIGZpbGVzIHNlcGFyYXRlIGZvciBlbmdpbmVl
cmluZyBidWlsZHMuCi0gICAgZGl0dG8oJHVpUm9vdCwgJHRhcmdldFJlc291cmNlUGF0aCk7Cisg
ICAgIyBBbHdheXMgcHJvY2VzcyBXZWJLaXRBZGRpdGlvbnMgZmlsZXMgYmVjYXVzZSB0aGUgJ1dl
YktpdEFkZGl0aW9ucycgcGF0aCBwcmVmaXggaXMgbm90IHJlYWwsCisgICAgIyBzbyBpdCBjYW4n
dCBwcm9jZWVkIGFzIGEgbm9ybWFsIGxvYWQgZnJvbSB0aGUgYnVuZGxlIGFzIHdyaXR0ZW4uIFRo
aXMgZnVuY3Rpb24gcmVwbGFjZXMgdGhlCisgICAgIyBkdW1teSBwcmVmaXggd2l0aCB0aGUgYWN0
dWFsIFdlYktpdEFkZGl0aW9ucyBwYXRoIHdoZW4gbG9va2luZyBmb3IgZmlsZXMgdG8gaW5saW5l
IGFuZCBjb21iaW5lLgorICAgIGNvbWJpbmVPclN0cmlwUmVzb3VyY2VzRm9yV2ViS2l0QWRkaXRp
b25zKCk7CiB9CiAKKyMgQWx3YXlzIGNvcHkgb3ZlciBNYWluLmh0bWwgYmVjYXVzZSB3ZSBtYXkg
aGF2ZSBjb21iaW5lZCBXZWJLaXRBZGRpdGlvbnMgZmlsZXMKKyMgd2l0aG91dCBtaW5pZnlpbmcg
YW55dGhpbmcgZWxzZS4gV2UgYWx3YXlzIHdhbnQgdG8gY29tYmluZSBXS0Egc28gdGhlIHJlbGV2
YW50CisjIHJlc291cmNlcyBhcmUgY29waWVkIG91dCBvZiBEZXJpdmVkIFNvdXJjZXMgcmF0aGVy
IHRoYW4gYW4gYXJiaXRyYXJ5IFdLQSBkaXJlY3RvcnkuCitjb3B5KCRkZXJpdmVkU291cmNlc01h
aW5IVE1MLCBGaWxlOjpTcGVjLT5jYXRmaWxlKCR0YXJnZXRSZXNvdXJjZVBhdGgsICdNYWluLmh0
bWwnKSk7CisKIGlmICgkc2hvdWxkQ29tYmluZVRlc3QpIHsKICAgICAjIENvbWJpbmUgdGhlIEph
dmFTY3JpcHQgZmlsZXMgZm9yIHRlc3RpbmcgaW50byBhIHNpbmdsZSBmaWxlIChUZXN0Q29tYmlu
ZWQuanMpLgogICAgIHN5c3RlbSgkcGVybCwgJGNvbWJpbmVSZXNvdXJjZXNDbWQsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKaW5kZXggNjllMTViOWE2
Y2U3NTI5NDRmNjQ5NmZjNDEwNDY0NmRkMTc3N2I0Mi4uYWQwZTRhZjMzZGYzNjY0Zjc2NjBiNjY5
MTkwNzljYmMwMWE4MjZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTWFpbi5odG1sCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01haW4uaHRtbApAQCAtMjQwLDYgKzI0MCw4IEBACiAgICAgPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSJEZWJ1Zy9VbmNhdWdodEV4Y2VwdGlvblJlcG9ydGVyLmNzcyI+CiAgICAgPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJEZWJ1Zy9EZWJ1Z0NvbnRlbnRWaWV3LmNzcyI+CiAK
KyAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9IldlYktpdEFkZGl0aW9ucy9XZWJJbnNw
ZWN0b3JVSS9XZWJJbnNwZWN0b3JVSUFkZGl0aW9ucy5jc3MiPgorCiAgICAgPHNjcmlwdCBzcmM9
IkRlYnVnL1VuY2F1Z2h0RXhjZXB0aW9uUmVwb3J0ZXIuanMiPjwvc2NyaXB0PgogCiAgICAgPHNj
cmlwdCBzcmM9IkV4dGVybmFsL0NvZGVNaXJyb3IvY29kZW1pcnJvci5qcyI+PC9zY3JpcHQ+CkBA
IC04NjcsNiArODY5LDggQEAKICAgICA8c2NyaXB0IHNyYz0iRGVidWcvUHJvdG9jb2xUcmFjZS5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkRlYnVnL0RlYnVnQ29udGVudFZpZXcuanMi
Pjwvc2NyaXB0PgogCisgICAgPHNjcmlwdCBzcmM9IldlYktpdEFkZGl0aW9ucy9XZWJJbnNwZWN0
b3JVSS9XZWJJbnNwZWN0b3JVSUFkZGl0aW9ucy5qcyI+PC9zY3JpcHQ+CisKICAgICA8c2NyaXB0
PgogICAgICAgICBXSS5zaGFyZWRBcHAgPSBuZXcgV0kuQXBwQ29udHJvbGxlcjsKICAgICAgICAg
V0kuc2hhcmVkQXBwLmluaXRpYWxpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NvdXJjZUNvZGVUZXh0RWRpdG9yLmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlQ29kZVRleHRFZGl0b3Iu
anMKaW5kZXggNDk0M2U3NjJjN2M3YTM2YzRmYTZjOWY1ZjdhODZhZjIwMmUwNGEyMi4uOTY1M2I5
NWRiYWUxMDk4OTcyNWI2OWZmMGQ3ZGFmN2VlMTI3ZjI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlQ29kZVRleHRFZGl0b3IuanMK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU291cmNlQ29k
ZVRleHRFZGl0b3IuanMKQEAgLTMwOSw3ICszMDksNyBAQCBXSS5Tb3VyY2VDb2RlVGV4dEVkaXRv
ciA9IGNsYXNzIFNvdXJjZUNvZGVUZXh0RWRpdG9yIGV4dGVuZHMgV0kuVGV4dEVkaXRvcgogICAg
IHRvZ2dsZVR5cGVBbm5vdGF0aW9ucygpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX3R5cGVU
b2tlbkFubm90YXRvcikKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJl
dHVybiBQcm9taXNlLnJlamVjdChuZXcgRXJyb3IoIlR5cGVUb2tlbkFubm90YXRvciBpcyBub3Qg
aW5pdGlhbGl6ZWQuIikpOwogCiAgICAgICAgIHZhciBuZXdBY3RpdmF0ZWRTdGF0ZSA9ICF0aGlz
Ll90eXBlVG9rZW5Bbm5vdGF0b3IuaXNBY3RpdmUoKTsKICAgICAgICAgaWYgKG5ld0FjdGl2YXRl
ZFN0YXRlICYmIHRoaXMuX2lzUHJvYmFibHlNaW5pZmllZCAmJiAhdGhpcy5mb3JtYXR0ZWQpIHsK
QEAgLTMyNSw3ICszMjUsNyBAQCBXSS5Tb3VyY2VDb2RlVGV4dEVkaXRvciA9IGNsYXNzIFNvdXJj
ZUNvZGVUZXh0RWRpdG9yIGV4dGVuZHMgV0kuVGV4dEVkaXRvcgogICAgIHRvZ2dsZVVuZXhlY3V0
ZWRDb2RlSGlnaGxpZ2h0cygpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX2Jhc2ljQmxvY2tB
bm5vdGF0b3IpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4g
UHJvbWlzZS5yZWplY3QobmV3IEVycm9yKCJCYXNpY0Jsb2NrQW5ub3RhdG9yIGlzIG5vdCBpbml0
aWFsaXplZC4iKSk7CiAKICAgICAgICAgbGV0IG5ld0FjdGl2YXRlZFN0YXRlID0gIXRoaXMuX2Jh
c2ljQmxvY2tBbm5vdGF0b3IuaXNBY3RpdmUoKTsKICAgICAgICAgaWYgKG5ld0FjdGl2YXRlZFN0
YXRlICYmIHRoaXMuX2lzUHJvYmFibHlNaW5pZmllZCAmJiAhdGhpcy5mb3JtYXR0ZWQpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVh
ZHNoZWV0Q1NTU3R5bGVEZWNsYXJhdGlvbkVkaXRvci5jc3MgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25FZGl0
b3IuY3NzCmluZGV4IDU0ZjI5NmY2ZGMyMTBjOGZhOGUzOTA5M2U3Nzg4NjM3ZmViN2E0NzUuLmY4
Zjk2MGUyZDdhNDI2NmFkY2JmMDI5OWNhMTVlMWM4ODVmODU3YzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NwcmVhZHNoZWV0Q1NTU3R5bGVE
ZWNsYXJhdGlvbkVkaXRvci5jc3MKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvU3ByZWFkc2hlZXRDU1NTdHlsZURlY2xhcmF0aW9uRWRpdG9yLmNzcwpAQCAt
NjgsNyArNjgsNyBAQAogICAgIG1hcmdpbjogMDsKIH0KIAotLnNwcmVhZHNoZWV0LWNzcy1kZWNs
YXJhdGlvbjptYXRjaGVzKDpob3ZlciwgOmZvY3VzKSAucHJvcGVydHktdG9nZ2xlLAorLnNwcmVh
ZHNoZWV0LWNzcy1kZWNsYXJhdGlvbjptYXRjaGVzKDpob3ZlciwgOmZvY3VzKSAucHJvcGVydHk6
bm90KDptYXRjaGVzKC5pbnZhbGlkLW5hbWUsIC5pbnZhbGlkLXZhbHVlKSkgLnByb3BlcnR5LXRv
Z2dsZSwKIC5zcHJlYWRzaGVldC1zdHlsZS1kZWNsYXJhdGlvbi1lZGl0b3IgLnByb3BlcnR5LmRp
c2FibGVkIC5wcm9wZXJ0eS10b2dnbGUgewogICAgIHZpc2liaWxpdHk6IHZpc2libGU7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TcHJl
YWRzaGVldFJ1bGVzU3R5bGVEZXRhaWxzUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9TcHJlYWRzaGVldFJ1bGVzU3R5bGVEZXRhaWxzUGFuZWwuanMK
aW5kZXggZjYyZjNjYjZjMzc4NTVkZDVmMjVmYTNhOWY1YzVhYThiODYyYTY3ZC4uNjQ0MjRhMzM0
YTllY2Y2YWJmYWMyOTc2ZWE4MGVlYTAyZjU3ODY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU3ByZWFkc2hlZXRSdWxlc1N0eWxlRGV0YWls
c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L1NwcmVhZHNoZWV0UnVsZXNTdHlsZURldGFpbHNQYW5lbC5qcwpAQCAtNDMsNiArNDMsNyBAQCBX
SS5TcHJlYWRzaGVldFJ1bGVzU3R5bGVEZXRhaWxzUGFuZWwgPSBjbGFzcyBTcHJlYWRzaGVldFJ1
bGVzU3R5bGVEZXRhaWxzUGFuZWwgZQogICAgICAgICB0aGlzLl9ydWxlTWVkaWFBbmRJbmhlcnRp
Y2FuY2VMaXN0ID0gW107CiAgICAgICAgIHRoaXMuX3Byb3BlcnR5VG9TZWxlY3RBbmRIaWdobGln
aHQgPSBudWxsOwogICAgICAgICB0aGlzLl9maWx0ZXJUZXh0ID0gbnVsbDsKKyAgICAgICAgdGhp
cy5fc2hvdWxkUmVmcmVzaFN1YnZpZXdzID0gZmFsc2U7CiAKICAgICAgICAgdGhpcy5fZW1wdHlG
aWx0ZXJSZXN1bHRzRWxlbWVudCA9IFdJLmNyZWF0ZU1lc3NhZ2VUZXh0VmlldyhXSS5VSVN0cmlu
ZygiTm8gUmVzdWx0cyBGb3VuZCIpKTsKICAgICB9CkBAIC01Myw5NyArNTQsMTEgQEAgV0kuU3By
ZWFkc2hlZXRSdWxlc1N0eWxlRGV0YWlsc1BhbmVsID0gY2xhc3MgU3ByZWFkc2hlZXRSdWxlc1N0
eWxlRGV0YWlsc1BhbmVsIGUKICAgICB7CiAgICAgICAgIC8vIFdlIG9ubHkgbmVlZCB0byBkbyBh
IHJlYnVpbGQgb24gc2lnbmlmaWNhbnQgY2hhbmdlcy4gT3RoZXIgY2hhbmdlcyBhcmUgaGFuZGxl
ZAogICAgICAgICAvLyBieSB0aGUgc2VjdGlvbnMgYW5kIHRleHQgZWRpdG9ycyB0aGVtc2VsdmVz
LgotICAgICAgICBpZiAoIXNpZ25pZmljYW50Q2hhbmdlKSB7Ci0gICAgICAgICAgICBzdXBlci5y
ZWZyZXNoKHNpZ25pZmljYW50Q2hhbmdlKTsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
aWYgKHNpZ25pZmljYW50Q2hhbmdlKSB7CisgICAgICAgICAgICB0aGlzLl9zaG91bGRSZWZyZXNo
U3Vidmlld3MgPSB0cnVlOworICAgICAgICAgICAgdGhpcy5uZWVkc0xheW91dCgpOwogICAgICAg
ICB9CiAKLSAgICAgICAgdGhpcy5yZW1vdmVBbGxTdWJ2aWV3cygpOwotCi0gICAgICAgIGxldCBw
cmV2aW91c1N0eWxlID0gbnVsbDsKLSAgICAgICAgdGhpcy5faGVhZGVyTWFwLmNsZWFyKCk7Ci0g
ICAgICAgIHRoaXMuX3NlY3Rpb25zID0gW107Ci0KLSAgICAgICAgbGV0IHVuaXF1ZU9yZGVyZWRT
dHlsZXMgPSAob3JkZXJlZFN0eWxlcykgPT4gewotICAgICAgICAgICAgbGV0IHVuaXF1ZVN0eWxl
cyA9IFtdOwotCi0gICAgICAgICAgICBmb3IgKGxldCBzdHlsZSBvZiBvcmRlcmVkU3R5bGVzKSB7
Ci0gICAgICAgICAgICAgICAgbGV0IHJ1bGUgPSBzdHlsZS5vd25lclJ1bGU7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFydWxlKSB7Ci0gICAgICAgICAgICAgICAgICAgIHVuaXF1ZVN0eWxlcy5wdXNo
KHN0eWxlKTsKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICAgICAgbGV0IGZvdW5kID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAg
Zm9yIChsZXQgZXhpc3RpbmdTdHlsZSBvZiB1bmlxdWVTdHlsZXMpIHsKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKHJ1bGUuaXNFcXVhbFRvKGV4aXN0aW5nU3R5bGUub3duZXJSdWxlKSkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgaWYgKCFmb3VuZCkKLSAgICAgICAgICAgICAgICAgICAgdW5pcXVlU3R5bGVz
LnB1c2goc3R5bGUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICByZXR1cm4gdW5pcXVl
U3R5bGVzOwotICAgICAgICB9OwotCi0gICAgICAgIGxldCBjcmVhdGVIZWFkZXIgPSAodGV4dCwg
bm9kZSkgPT4gewotICAgICAgICAgICAgbGV0IGhlYWRlciA9IHRoaXMuZWxlbWVudC5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJoMiIpKTsKLSAgICAgICAgICAgIGhlYWRlci5j
bGFzc0xpc3QuYWRkKCJzZWN0aW9uLWhlYWRlciIpOwotICAgICAgICAgICAgaGVhZGVyLmFwcGVu
ZCh0ZXh0KTsKLSAgICAgICAgICAgIGhlYWRlci5hcHBlbmQoIiAiLCBXSS5saW5raWZ5Tm9kZVJl
ZmVyZW5jZShub2RlLCB7Ci0gICAgICAgICAgICAgICAgbWF4TGVuZ3RoOiAxMDAsCi0gICAgICAg
ICAgICAgICAgZXhjbHVkZVJldmVhbEVsZW1lbnQ6IHRydWUsCi0gICAgICAgICAgICB9KSk7Ci0K
LSAgICAgICAgICAgIHRoaXMuX2hlYWRlck1hcC5zZXQobm9kZSwgaGVhZGVyKTsKLSAgICAgICAg
fTsKLQotICAgICAgICBsZXQgY3JlYXRlU2VjdGlvbiA9IChzdHlsZSkgPT4gewotICAgICAgICAg
ICAgbGV0IHNlY3Rpb24gPSBzdHlsZVtXSS5TcHJlYWRzaGVldFJ1bGVzU3R5bGVEZXRhaWxzUGFu
ZWwuUnVsZVNlY3Rpb25dOwotICAgICAgICAgICAgaWYgKCFzZWN0aW9uKSB7Ci0gICAgICAgICAg
ICAgICAgc2VjdGlvbiA9IG5ldyBXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25TZWN0
aW9uKHRoaXMsIHN0eWxlKTsKLSAgICAgICAgICAgICAgICBzdHlsZVtXSS5TcHJlYWRzaGVldFJ1
bGVzU3R5bGVEZXRhaWxzUGFuZWwuUnVsZVNlY3Rpb25dID0gc2VjdGlvbjsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgc2VjdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLlNwcmVhZHNoZWV0
Q1NTU3R5bGVEZWNsYXJhdGlvblNlY3Rpb24uRXZlbnQuRmlsdGVyQXBwbGllZCwgdGhpcy5faGFu
ZGxlU2VjdGlvbkZpbHRlckFwcGxpZWQsIHRoaXMpOwotCi0gICAgICAgICAgICBpZiAodGhpcy5f
bmV3UnVsZVNlbGVjdG9yID09PSBzdHlsZS5zZWxlY3RvclRleHQgJiYgIXN0eWxlLmhhc1Byb3Bl
cnRpZXMoKSkKLSAgICAgICAgICAgICAgICBzZWN0aW9uLnN0YXJ0RWRpdGluZ1J1bGVTZWxlY3Rv
cigpOwotCi0gICAgICAgICAgICB0aGlzLmFkZFN1YnZpZXcoc2VjdGlvbik7Ci0gICAgICAgICAg
ICBzZWN0aW9uLm5lZWRzTGF5b3V0KCk7Ci0gICAgICAgICAgICB0aGlzLl9zZWN0aW9ucy5wdXNo
KHNlY3Rpb24pOwotCi0gICAgICAgICAgICBwcmV2aW91c1N0eWxlID0gc3R5bGU7Ci0gICAgICAg
IH07Ci0KLSAgICAgICAgZm9yIChsZXQgc3R5bGUgb2YgdW5pcXVlT3JkZXJlZFN0eWxlcyh0aGlz
Lm5vZGVTdHlsZXMub3JkZXJlZFN0eWxlcykpIHsKLSAgICAgICAgICAgIGlmIChzdHlsZS5pbmhl
cml0ZWQgJiYgKCFwcmV2aW91c1N0eWxlIHx8IHByZXZpb3VzU3R5bGUubm9kZSAhPT0gc3R5bGUu
bm9kZSkpCi0gICAgICAgICAgICAgICAgY3JlYXRlSGVhZGVyKFdJLlVJU3RyaW5nKCJJbmhlcml0
ZWQgRnJvbSIpLCBzdHlsZS5ub2RlKTsKLQotICAgICAgICAgICAgY3JlYXRlU2VjdGlvbihzdHls
ZSk7Ci0gICAgICAgIH0KLQotICAgICAgICBsZXQgcHNldWRvRWxlbWVudHMgPSBBcnJheS5mcm9t
KHRoaXMubm9kZVN0eWxlcy5ub2RlLnBzZXVkb0VsZW1lbnRzKCkudmFsdWVzKCkpOwotICAgICAg
ICBQcm9taXNlLmFsbChwc2V1ZG9FbGVtZW50cy5tYXAoKHBzZXVkb0VsZW1lbnQpID0+IFdJLmNz
c1N0eWxlTWFuYWdlci5zdHlsZXNGb3JOb2RlKHBzZXVkb0VsZW1lbnQpLnJlZnJlc2hJZk5lZWRl
ZCgpKSkKLSAgICAgICAgLnRoZW4oKHBzZXVkb05vZGVTdHlsZXMpID0+IHsKLSAgICAgICAgICAg
IGZvciAobGV0IHBzZXVkb05vZGVTdHlsZSBvZiBwc2V1ZG9Ob2RlU3R5bGVzKSB7Ci0gICAgICAg
ICAgICAgICAgY3JlYXRlSGVhZGVyKFdJLlVJU3RyaW5nKCJQc2V1ZG8gRWxlbWVudCIpLCBwc2V1
ZG9Ob2RlU3R5bGUubm9kZSk7Ci0KLSAgICAgICAgICAgICAgICBmb3IgKGxldCBzdHlsZSBvZiB1
bmlxdWVPcmRlcmVkU3R5bGVzKHBzZXVkb05vZGVTdHlsZS5vcmRlcmVkU3R5bGVzKSkKLSAgICAg
ICAgICAgICAgICAgICAgY3JlYXRlU2VjdGlvbihzdHlsZSk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0pOwotCi0gICAgICAgIHRoaXMuX25ld1J1bGVTZWxlY3RvciA9IG51bGw7Ci0KLSAgICAg
ICAgdGhpcy5lbGVtZW50LmFwcGVuZCh0aGlzLl9lbXB0eUZpbHRlclJlc3VsdHNFbGVtZW50KTsK
LQotICAgICAgICBpZiAodGhpcy5fZmlsdGVyVGV4dCkKLSAgICAgICAgICAgIHRoaXMuYXBwbHlG
aWx0ZXIodGhpcy5fZmlsdGVyVGV4dCk7Ci0KICAgICAgICAgc3VwZXIucmVmcmVzaChzaWduaWZp
Y2FudENoYW5nZSk7CiAgICAgfQogCkBAIC0yNTksNiArMTc0LDEwMCBAQCBXSS5TcHJlYWRzaGVl
dFJ1bGVzU3R5bGVEZXRhaWxzUGFuZWwgPSBjbGFzcyBTcHJlYWRzaGVldFJ1bGVzU3R5bGVEZXRh
aWxzUGFuZWwgZQogCiAgICAgLy8gUHJvdGVjdGVkCiAKKyAgICBsYXlvdXQoKQorICAgIHsKKyAg
ICAgICAgaWYgKCF0aGlzLl9zaG91bGRSZWZyZXNoU3Vidmlld3MpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgdGhpcy5fc2hvdWxkUmVmcmVzaFN1YnZpZXdzID0gZmFsc2U7CisKKyAg
ICAgICAgdGhpcy5yZW1vdmVBbGxTdWJ2aWV3cygpOworCisgICAgICAgIGxldCBwcmV2aW91c1N0
eWxlID0gbnVsbDsKKyAgICAgICAgdGhpcy5faGVhZGVyTWFwLmNsZWFyKCk7CisgICAgICAgIHRo
aXMuX3NlY3Rpb25zID0gW107CisKKyAgICAgICAgbGV0IHVuaXF1ZU9yZGVyZWRTdHlsZXMgPSAo
b3JkZXJlZFN0eWxlcykgPT4geworICAgICAgICAgICAgbGV0IHVuaXF1ZVN0eWxlcyA9IFtdOwor
CisgICAgICAgICAgICBmb3IgKGxldCBzdHlsZSBvZiBvcmRlcmVkU3R5bGVzKSB7CisgICAgICAg
ICAgICAgICAgbGV0IHJ1bGUgPSBzdHlsZS5vd25lclJ1bGU7CisgICAgICAgICAgICAgICAgaWYg
KCFydWxlKSB7CisgICAgICAgICAgICAgICAgICAgIHVuaXF1ZVN0eWxlcy5wdXNoKHN0eWxlKTsK
KyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAgICAgbGV0IGZvdW5kID0gZmFsc2U7CisgICAgICAgICAgICAgICAgZm9yIChsZXQg
ZXhpc3RpbmdTdHlsZSBvZiB1bmlxdWVTdHlsZXMpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KHJ1bGUuaXNFcXVhbFRvKGV4aXN0aW5nU3R5bGUub3duZXJSdWxlKSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgZm91bmQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgaWYgKCFmb3VuZCkKKyAgICAgICAgICAgICAgICAgICAgdW5pcXVlU3R5bGVzLnB1c2goc3R5
bGUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gdW5pcXVlU3R5bGVzOwor
ICAgICAgICB9OworCisgICAgICAgIGxldCBjcmVhdGVIZWFkZXIgPSAodGV4dCwgbm9kZSkgPT4g
eworICAgICAgICAgICAgbGV0IGhlYWRlciA9IHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJoMiIpKTsKKyAgICAgICAgICAgIGhlYWRlci5jbGFzc0xpc3Qu
YWRkKCJzZWN0aW9uLWhlYWRlciIpOworICAgICAgICAgICAgaGVhZGVyLmFwcGVuZCh0ZXh0KTsK
KyAgICAgICAgICAgIGhlYWRlci5hcHBlbmQoIiAiLCBXSS5saW5raWZ5Tm9kZVJlZmVyZW5jZShu
b2RlLCB7CisgICAgICAgICAgICAgICAgbWF4TGVuZ3RoOiAxMDAsCisgICAgICAgICAgICAgICAg
ZXhjbHVkZVJldmVhbEVsZW1lbnQ6IHRydWUsCisgICAgICAgICAgICB9KSk7CisKKyAgICAgICAg
ICAgIHRoaXMuX2hlYWRlck1hcC5zZXQobm9kZSwgaGVhZGVyKTsKKyAgICAgICAgfTsKKworICAg
ICAgICBsZXQgY3JlYXRlU2VjdGlvbiA9IChzdHlsZSkgPT4geworICAgICAgICAgICAgbGV0IHNl
Y3Rpb24gPSBzdHlsZVtXSS5TcHJlYWRzaGVldFJ1bGVzU3R5bGVEZXRhaWxzUGFuZWwuUnVsZVNl
Y3Rpb25dOworICAgICAgICAgICAgaWYgKCFzZWN0aW9uKSB7CisgICAgICAgICAgICAgICAgc2Vj
dGlvbiA9IG5ldyBXSS5TcHJlYWRzaGVldENTU1N0eWxlRGVjbGFyYXRpb25TZWN0aW9uKHRoaXMs
IHN0eWxlKTsKKyAgICAgICAgICAgICAgICBzdHlsZVtXSS5TcHJlYWRzaGVldFJ1bGVzU3R5bGVE
ZXRhaWxzUGFuZWwuUnVsZVNlY3Rpb25dID0gc2VjdGlvbjsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgc2VjdGlvbi5hZGRFdmVudExpc3RlbmVyKFdJLlNwcmVhZHNoZWV0Q1NTU3R5bGVE
ZWNsYXJhdGlvblNlY3Rpb24uRXZlbnQuRmlsdGVyQXBwbGllZCwgdGhpcy5faGFuZGxlU2VjdGlv
bkZpbHRlckFwcGxpZWQsIHRoaXMpOworCisgICAgICAgICAgICBpZiAodGhpcy5fbmV3UnVsZVNl
bGVjdG9yID09PSBzdHlsZS5zZWxlY3RvclRleHQgJiYgIXN0eWxlLmhhc1Byb3BlcnRpZXMoKSkK
KyAgICAgICAgICAgICAgICBzZWN0aW9uLnN0YXJ0RWRpdGluZ1J1bGVTZWxlY3RvcigpOworCisg
ICAgICAgICAgICB0aGlzLmFkZFN1YnZpZXcoc2VjdGlvbik7CisgICAgICAgICAgICBzZWN0aW9u
Lm5lZWRzTGF5b3V0KCk7CisgICAgICAgICAgICB0aGlzLl9zZWN0aW9ucy5wdXNoKHNlY3Rpb24p
OworCisgICAgICAgICAgICBwcmV2aW91c1N0eWxlID0gc3R5bGU7CisgICAgICAgIH07CisKKyAg
ICAgICAgZm9yIChsZXQgc3R5bGUgb2YgdW5pcXVlT3JkZXJlZFN0eWxlcyh0aGlzLm5vZGVTdHls
ZXMub3JkZXJlZFN0eWxlcykpIHsKKyAgICAgICAgICAgIGlmIChzdHlsZS5pbmhlcml0ZWQgJiYg
KCFwcmV2aW91c1N0eWxlIHx8IHByZXZpb3VzU3R5bGUubm9kZSAhPT0gc3R5bGUubm9kZSkpCisg
ICAgICAgICAgICAgICAgY3JlYXRlSGVhZGVyKFdJLlVJU3RyaW5nKCJJbmhlcml0ZWQgRnJvbSIp
LCBzdHlsZS5ub2RlKTsKKworICAgICAgICAgICAgY3JlYXRlU2VjdGlvbihzdHlsZSk7CisgICAg
ICAgIH0KKworICAgICAgICBsZXQgcHNldWRvRWxlbWVudHMgPSBBcnJheS5mcm9tKHRoaXMubm9k
ZVN0eWxlcy5ub2RlLnBzZXVkb0VsZW1lbnRzKCkudmFsdWVzKCkpOworICAgICAgICBQcm9taXNl
LmFsbChwc2V1ZG9FbGVtZW50cy5tYXAoKHBzZXVkb0VsZW1lbnQpID0+IFdJLmNzc1N0eWxlTWFu
YWdlci5zdHlsZXNGb3JOb2RlKHBzZXVkb0VsZW1lbnQpLnJlZnJlc2hJZk5lZWRlZCgpKSkKKyAg
ICAgICAgLnRoZW4oKHBzZXVkb05vZGVTdHlsZXMpID0+IHsKKyAgICAgICAgICAgIGZvciAobGV0
IHBzZXVkb05vZGVTdHlsZSBvZiBwc2V1ZG9Ob2RlU3R5bGVzKSB7CisgICAgICAgICAgICAgICAg
Y3JlYXRlSGVhZGVyKFdJLlVJU3RyaW5nKCJQc2V1ZG8gRWxlbWVudCIpLCBwc2V1ZG9Ob2RlU3R5
bGUubm9kZSk7CisKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBzdHlsZSBvZiB1bmlxdWVPcmRl
cmVkU3R5bGVzKHBzZXVkb05vZGVTdHlsZS5vcmRlcmVkU3R5bGVzKSkKKyAgICAgICAgICAgICAg
ICAgICAgY3JlYXRlU2VjdGlvbihzdHlsZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOwor
CisgICAgICAgIHRoaXMuX25ld1J1bGVTZWxlY3RvciA9IG51bGw7CisKKyAgICAgICAgdGhpcy5l
bGVtZW50LmFwcGVuZCh0aGlzLl9lbXB0eUZpbHRlclJlc3VsdHNFbGVtZW50KTsKKworICAgICAg
ICBpZiAodGhpcy5fZmlsdGVyVGV4dCkKKyAgICAgICAgICAgIHRoaXMuYXBwbHlGaWx0ZXIodGhp
cy5fZmlsdGVyVGV4dCk7CisgICAgfQorCiAgICAgZmlsdGVyRGlkQ2hhbmdlKGZpbHRlckJhcikK
ICAgICB7CiAgICAgICAgIHN1cGVyLmZpbHRlckRpZENoYW5nZShmaWx0ZXJCYXIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnIGIvU291cmNl
L1dlYktpdC9Db25maWd1cmF0aW9ucy9CYXNlLnhjY29uZmlnCmluZGV4IGNjY2JmMmE2ZWFkMWQ2
NTM1M2JlNjUwMTc2ZGZmOGQxMDQwMmFmY2MuLmYwMTliZmMwYjdkOWU1MjBlZjU5MWI1MjhjNTli
MjY2NDE2MjJmNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvQmFz
ZS54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL0Jhc2UueGNjb25m
aWcKQEAgLTE0OSwzICsxNDksNyBAQCBXS19DT0NPQV9UT1VDSF93YXRjaG9zID0gY29jb2F0b3Vj
aDsKIFdLX0NPQ09BX1RPVUNIX3dhdGNoc2ltdWxhdG9yID0gY29jb2F0b3VjaDsKIFdLX0NPQ09B
X1RPVUNIX2FwcGxldHZvcyA9IGNvY29hdG91Y2g7CiBXS19DT0NPQV9UT1VDSF9hcHBsZXR2c2lt
dWxhdG9yID0gY29jb2F0b3VjaDsKKworV0tfTUFDT1NfV0VBS19GUkFNRVdPUksgPSAkKFdLX01B
Q09TX1dFQUtfRlJBTUVXT1JLXyQoV0tfQ09DT0FfVE9VQ0gpKTsKK1dLX01BQ09TX1dFQUtfRlJB
TUVXT1JLX2NvY29hdG91Y2ggPSAtZnJhbWV3b3JrCitXS19NQUNPU19XRUFLX0ZSQU1FV09SS18g
PSAtd2Vha19mcmFtZXdvcmsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4IDk3MjViMDQyZTk0YjYzY2NiZTM4MDNjNTMy
ZDJjYTI5ODJiNjJmNGIuLjQzNmJiOTIzM2VmMTEwMzk3NDEyZDRhYzYzNWQxZjY5OTIwODA4MWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZwpAQCAtMTAxLDcgKzEwMSw2IEBAIEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UID0g
OwogCiBFTkFCTEVfREFUQV9JTlRFUkFDVElPTiA9ICQoRU5BQkxFX0RBVEFfSU5URVJBQ1RJT05f
JChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfREFUQV9JTlRFUkFDVElPTl9pcGhvbmVvcyA9
IEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OOwotRU5BQkxFX0RBVEFfSU5URVJBQ1RJT05faXBob25l
bWluaW1hbHNpbXVsYXRvciA9IEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OOwogRU5BQkxFX0RBVEFf
SU5URVJBQ1RJT05faXBob25lc2ltdWxhdG9yID0gRU5BQkxFX0RBVEFfSU5URVJBQ1RJT047CiAK
IEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04gPSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT05f
JChXS19QTEFURk9STV9OQU1FKSk7CkBAIC0xMTQsNyArMTEzLDYgQEAgRU5BQkxFX0RFVklDRV9P
UklFTlRBVElPTl9hcHBsZXR2c2ltdWxhdG9yID0gRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTjsK
IAogRU5BQkxFX0RSQUdfU1VQUE9SVCA9ICQoRU5BQkxFX0RSQUdfU1VQUE9SVF8kKFdLX1BMQVRG
T1JNX05BTUUpKTsKIEVOQUJMRV9EUkFHX1NVUFBPUlRfaXBob25lb3MgPSBFTkFCTEVfRFJBR19T
VVBQT1JUOwotRU5BQkxFX0RSQUdfU1VQUE9SVF9pcGhvbmVtaW5pbWFsc2ltdWxhdG9yID0gRU5B
QkxFX0RSQUdfU1VQUE9SVDsKIEVOQUJMRV9EUkFHX1NVUFBPUlRfaXBob25lc2ltdWxhdG9yID0g
RU5BQkxFX0RSQUdfU1VQUE9SVDsKIAogRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSA9ICQoRU5BQkxF
X0VOQ1JZUFRFRF9NRURJQV8kKFdLX1BMQVRGT1JNX05BTUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQv
Q29uZmlndXJhdGlvbnMvVmVyc2lvbi54Y2NvbmZpZwppbmRleCBiZTU0N2VjYTEwNjljZGY1YWUx
NGQyNTcxMzJjYTIzZWU4ZjRjNjM4Li43ZjU3M2RhZjYxNWYwZDY3YjFhZmIzNjcwNmE5Y2EzNTE1
YzYxOTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1ZlcnNpb24u
eGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9WZXJzaW9uLnhjY29u
ZmlnCkBAIC0yMyw3ICsyMyw3IEBACiAKIE1BSk9SX1ZFUlNJT04gPSA2MDY7CiBNSU5PUl9WRVJT
SU9OID0gMTsKLVRJTllfVkVSU0lPTiA9IDEwOworVElOWV9WRVJTSU9OID0gMTE7CiBNSUNST19W
RVJTSU9OID0gMDsKIE5BTk9fVkVSU0lPTiA9IDA7CiBGVUxMX1ZFUlNJT04gPSAkKE1BSk9SX1ZF
UlNJT04pLiQoTUlOT1JfVkVSU0lPTikuJChUSU5ZX1ZFUlNJT04pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0
L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwppbmRleCA1ZWI5ODdmMTgwMjI2MjdkNTRm
ZGNmODE1Y2Q5NWU2Y2Q3OTYzNmZkLi40YTAwNmRiZDZiMWQ1ODczNzBiMmVlMWMxZGQ2ZGQxYjMy
M2ZhZTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54
Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZp
ZwpAQCAtMjcsMzggKzI3LDg5IEBAIFBST0RVQ1RfTkFNRSA9IFdlYktpdDsKIFBST0RVQ1RfQlVO
RExFX0lERU5USUZJRVIgPSBjb20uYXBwbGUuJChQUk9EVUNUX05BTUU6cmZjMTAzNGlkZW50aWZp
ZXIpOwogSU5GT1BMSVNUX0ZJTEUgPSBJbmZvLnBsaXN0OwogCi1ERUZJTkVTX01PRFVMRT1ZRVM7
Ci1NT0RVTEVNQVBfRklMRVtzZGs9bWFjb3N4Kl09TW9kdWxlcy9PU1gubW9kdWxlbWFwOwotTU9E
VUxFTUFQX0ZJTEVbc2RrPWlwaG9uZSpdPU1vZHVsZXMvaU9TLm1vZHVsZW1hcDsKK0RFRklORVNf
TU9EVUxFID0gWUVTOworTU9EVUxFTUFQX0ZJTEUgPSAkKE1PRFVMRU1BUF9GSUxFXyQoV0tfQ09D
T0FfVE9VQ0gpKTsKK01PRFVMRU1BUF9GSUxFX2NvY29hdG91Y2ggPSBNb2R1bGVzL2lPUy5tb2R1
bGVtYXA7CitNT0RVTEVNQVBfRklMRV8gPSBNb2R1bGVzL09TWC5tb2R1bGVtYXA7CiAKIElOU1RB
TExfUEFUSCA9ICQoV0VCS0lUX0ZSQU1FV09SS1NfRElSKTsKIERZTElCX0lOU1RBTExfTkFNRV9C
QVNFID0gJChOT1JNQUxfV0VCS0lUX0ZSQU1FV09SS1NfRElSKTsKIAogTElCUkFSWV9TRUFSQ0hf
UEFUSFMgPSAkKGluaGVyaXRlZCkgIiQoTElCV0VCUlRDX0xJQlJBUllfRElSKSI7CiAKLUZSQU1F
V09SS19BTkRfTElCUkFSWV9MREZMQUdTX0JBU0VfaW9zID0gLWxvYmpjIC1mcmFtZXdvcmsgQXNz
ZXJ0aW9uU2VydmljZXMgLWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3JlRm91bmRh
dGlvbiAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVQREYgLWZyYW1ld29y
ayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1ld29yayBHcmFwaGljc1NlcnZp
Y2VzIC1mcmFtZXdvcmsgSW1hZ2VJTyAtZnJhbWV3b3JrIFVJS2l0IC1mcmFtZXdvcmsgT3BlbkdM
RVMgLWZyYW1ld29yayBNb2JpbGVDb3JlU2VydmljZXMgLWxNb2JpbGVHZXN0YWx0ICQoRlJBTUVX
T1JLX0FORF9MSUJSQVJZX0xERkxBR1NfUExBVEZPUk1fJChQTEFURk9STV9OQU1FKSk7Ci1GUkFN
RVdPUktfQU5EX0xJQlJBUllfTERGTEFHU1tzZGs9aXBob25lb3MqXSA9ICQoRlJBTUVXT1JLX0FO
RF9MSUJSQVJZX0xERkxBR1NfQkFTRV9pb3MpIC1mcmFtZXdvcmsgSU9TdXJmYWNlOwotRlJBTUVX
T1JLX0FORF9MSUJSQVJZX0xERkxBR1Nbc2RrPWlwaG9uZXNpbXVsYXRvcipdID0gJChGUkFNRVdP
UktfQU5EX0xJQlJBUllfTERGTEFHU19CQVNFX2lvcyk7Ci1GUkFNRVdPUktfQU5EX0xJQlJBUllf
TERGTEFHU19QTEFURk9STV9pcGhvbmVvcyA9IDsKLUZSQU1FV09SS19BTkRfTElCUkFSWV9MREZM
QUdTX1BMQVRGT1JNX2lwaG9uZXNpbXVsYXRvciA9IDsKLUZSQU1FV09SS19BTkRfTElCUkFSWV9M
REZMQUdTW3Nkaz1tYWNvc3gqXSA9IC1mcmFtZXdvcmsgQ2FyYm9uIC1mcmFtZXdvcmsgQ29jb2Eg
LWZyYW1ld29yayBDb3JlU2VydmljZXMgLWZyYW1ld29yayBJT0tpdCAtZnJhbWV3b3JrIENvcmVB
dWRpbyAtZnJhbWV3b3JrIElPU3VyZmFjZSAtZnJhbWV3b3JrIE9wZW5HTDsKK1dLX0FDQ0VTU0lC
SUxJVFlfTERGTEFHUyA9ICQoV0tfQUNDRVNTSUJJTElUWV9MREZMQUdTXyQoV0tfQ09DT0FfVE9V
Q0gpKTsKK1dLX0FDQ0VTU0lCSUxJVFlfTERGTEFHU19jb2NvYXRvdWNoID0gLWxBY2Nlc3NpYmls
aXR5OworCitXS19BUFBLSVRfTERGTEFHUyA9ICQoV0tfQVBQS0lUX0xERkxBR1NfJChXS19QTEFU
Rk9STV9OQU1FKSk7CitXS19BUFBLSVRfTERGTEFHU19tYWNvc3ggPSAtZnJhbWV3b3JrIEFwcEtp
dDsKKworV0tfQVNTRVJUSU9OX1NFUlZJQ0VTX0xERkxBR1MgPSAkKFdLX0FTU0VSVElPTl9TRVJW
SUNFU19MREZMQUdTXyQoV0tfQ09DT0FfVE9VQ0gpKTsKK1dLX0FTU0VSVElPTl9TRVJWSUNFU19M
REZMQUdTX2NvY29hdG91Y2ggPSAtZnJhbWV3b3JrIEFzc2VydGlvblNlcnZpY2VzOworCitXS19D
QVJCT05fTERGTEFHUyA9ICQoV0tfQ0FSQk9OX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7
CitXS19DQVJCT05fTERGTEFHU19tYWNvc3ggPSAtZnJhbWV3b3JrIENhcmJvbjsKKworV0tfQ09S
RV9QREZfTERGTEFHUyA9ICQoV0tfQ09SRV9QREZfTERGTEFHU18kKFdLX0NPQ09BX1RPVUNIKSk7
CitXS19DT1JFX1BERl9MREZMQUdTX2NvY29hdG91Y2ggPSAtZnJhbWV3b3JrIENvcmVQREY7CisK
K1dLX0NPUkVfUFJFRElDVElPTl9MREZMQUdTID0gJChXS19DT1JFX1BSRURJQ1RJT05fTERGTEFH
U18kKFdLX0hBVkVfQ09SRV9QUkVESUNUSU9OKSk7CitXS19DT1JFX1BSRURJQ1RJT05fTERGTEFH
U19ZRVMgPSAkKFdLX01BQ09TX1dFQUtfRlJBTUVXT1JLKSBDb3JlUHJlZGljdGlvbjsKKworV0tf
Q09SRV9TRVJWSUNFU19MREZMQUdTID0gJChXS19DT1JFX1NFUlZJQ0VTX0xERkxBR1NfJChXS19Q
TEFURk9STV9OQU1FKSk7CitXS19DT1JFX1NFUlZJQ0VTX0xERkxBR1NfbWFjb3N4ID0gLWZyYW1l
d29yayBDb3JlU2VydmljZXM7CisKK1dLX0dSQVBISUNTX1NFUlZJQ0VTX0xERkxBR1MgPSAkKFdL
X0dSQVBISUNTX1NFUlZJQ0VTX0xERkxBR1NfJChXS19DT0NPQV9UT1VDSCkpOworV0tfR1JBUEhJ
Q1NfU0VSVklDRVNfTERGTEFHU19jb2NvYXRvdWNoID0gLWZyYW1ld29yayBHcmFwaGljc1NlcnZp
Y2VzOworCitXS19JT1NVUkZBQ0VfTERGTEFHUyA9ICQoV0tfSU9TVVJGQUNFX0xERkxBR1NfJChX
S19QTEFURk9STV9OQU1FKSk7CitXS19JT1NVUkZBQ0VfTERGTEFHU19pcGhvbmVvcyA9IC1mcmFt
ZXdvcmsgSU9TdXJmYWNlOworV0tfSU9TVVJGQUNFX0xERkxBR1NfaXBob25lbWluaW1hbHNpbXVs
YXRvciA9ICQoV0tfSU9TVVJGQUNFX0xERkxBR1NfaXBob25lb3MpOworV0tfSU9TVVJGQUNFX0xE
RkxBR1Nfd2F0Y2hvcyA9ICQoV0tfSU9TVVJGQUNFX0xERkxBR1NfaXBob25lb3MpOworV0tfSU9T
VVJGQUNFX0xERkxBR1NfYXBwbGV0dm9zID0gJChXS19JT1NVUkZBQ0VfTERGTEFHU19pcGhvbmVv
cyk7CitXS19JT1NVUkZBQ0VfTERGTEFHU19tYWNvc3ggPSAtZnJhbWV3b3JrIElPU3VyZmFjZTsK
KworV0tfTElCV0VCUlRDX0xERkxBR1MgPSAkKFdLX0xJQldFQlJUQ19MREZMQUdTXyQoRU5BQkxF
X1dFQl9SVEMpKTsKK1dLX0xJQldFQlJUQ19MREZMQUdTXyA9IDsKK1dLX0xJQldFQlJUQ19MREZM
QUdTX0VOQUJMRV9XRUJfUlRDID0gLXdlYWstbHdlYnJ0YzsKKworV0tfTU9CSUxFX0NPUkVfU0VS
VklDRVNfTERGTEFHUyA9ICQoV0tfTU9CSUxFX0NPUkVfU0VSVklDRVNfTERGTEFHU18kKFdLX0NP
Q09BX1RPVUNIKSk7CitXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19MREZMQUdTX2NvY29hdG91Y2gg
PSAtZnJhbWV3b3JrIE1vYmlsZUNvcmVTZXJ2aWNlczsKKworV0tfTU9CSUxFX0dFU1RBTFRfTERG
TEFHUyA9ICQoV0tfTU9CSUxFX0dFU1RBTFRfTERGTEFHU18kKFdLX0NPQ09BX1RPVUNIKSk7CitX
S19NT0JJTEVfR0VTVEFMVF9MREZMQUdTX2NvY29hdG91Y2ggPSAtbE1vYmlsZUdlc3RhbHQ7CisK
K1dLX09QRU5HTF9MREZMQUdTID0gJChXS19PUEVOR0xfTERGTEFHU18kKFdLX1BMQVRGT1JNX05B
TUUpKTsKK1dLX09QRU5HTF9MREZMQUdTX2lwaG9uZW9zID0gLWZyYW1ld29yayBPcGVuR0xFUzsK
K1dLX09QRU5HTF9MREZMQUdTX2lwaG9uZW1pbmltYWxzaW11bGF0b3IgPSAtZnJhbWV3b3JrIE9w
ZW5HTDsKK1dLX09QRU5HTF9MREZMQUdTX2lwaG9uZXNpbXVsYXRvciA9IC1mcmFtZXdvcmsgT3Bl
bkdMRVM7CitXS19PUEVOR0xfTERGTEFHU193YXRjaG9zID0gJChXS19PUEVOR0xfTERGTEFHU19p
cGhvbmVvcyk7CitXS19PUEVOR0xfTERGTEFHU193YXRjaHNpbXVsYXRvciA9ICQoV0tfT1BFTkdM
X0xERkxBR1NfaXBob25lc2ltdWxhdG9yKTsKK1dLX09QRU5HTF9MREZMQUdTX2FwcGxldHZvcyA9
ICQoV0tfT1BFTkdMX0xERkxBR1NfaXBob25lb3MpOworV0tfT1BFTkdMX0xERkxBR1NfYXBwbGV0
dnNpbXVsYXRvciA9ICQoV0tfT1BFTkdMX0xERkxBR1NfaXBob25lc2ltdWxhdG9yKTsKK1dLX09Q
RU5HTF9MREZMQUdTX21hY29zeCA9IC1mcmFtZXdvcmsgT3BlbkdMOworCitXS19TQUZFX0JST1dT
SU5HX0xERkxBR1MgPSAkKFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHU18kKFdLX1BMQVRGT1JNX05B
TUUpKTsKK1dLX1NBRkVfQlJPV1NJTkdfTERGTEFHU19pcGhvbmVvcyA9IC1mcmFtZXdvcmsgU2Fm
YXJpU2FmZUJyb3dzaW5nOworV0tfU0FGRV9CUk9XU0lOR19MREZMQUdTX2lwaG9uZXNpbXVsYXRv
ciA9IC1mcmFtZXdvcmsgU2FmYXJpU2FmZUJyb3dzaW5nOworV0tfU0FGRV9CUk9XU0lOR19MREZM
QUdTX2lwaG9uZW9zW3Nkaz1pcGhvbmUqMTAuKl0gPSA7CitXS19TQUZFX0JST1dTSU5HX0xERkxB
R1NfaXBob25lc2ltdWxhdG9yW3Nkaz1pcGhvbmUqMTAuKl0gPSA7CitXS19TQUZFX0JST1dTSU5H
X0xERkxBR1NfbWFjb3N4ID0gJChXS19TQUZFX0JST1dTSU5HX0xERkxBR1MkKFdLX01BQ09TXzEw
MTMpKTsKK1dLX1NBRkVfQlJPV1NJTkdfTERGTEFHU19NQUNPU19TSU5DRV8xMDEzID0gLXdlYWtf
ZnJhbWV3b3JrIFNhZmFyaVNhZmVCcm93c2luZzsKKworV0tfVUlLSVRfTERGTEFHUyA9ICQoV0tf
VUlLSVRfTERGTEFHU18kKFdLX0NPQ09BX1RPVUNIKSk7CitXS19VSUtJVF9MREZMQUdTX2NvY29h
dG91Y2ggPSAtZnJhbWV3b3JrIFVJS2l0OworCitGUkFNRVdPUktfQU5EX0xJQlJBUllfTERGTEFH
UyA9IC1sb2JqYyAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJh
bWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsgQ29yZUdyYXBoaWNzIC1mcmFtZXdvcmsg
Q29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1mcmFtZXdvcmsgSW1hZ2VJTyAtZnJhbWV3
b3JrIElPS2l0IC1mcmFtZXdvcmsgV2ViS2l0TGVnYWN5ICQoV0tfQUNDRVNTSUJJTElUWV9MREZM
QUdTKSAkKFdLX0FQUEtJVF9MREZMQUdTKSAkKFdLX0FTU0VSVElPTl9TRVJWSUNFU19MREZMQUdT
KSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0NPUkVfUERGX0xERkxBR1MpICQoV0tfQ09SRV9Q
UkVESUNUSU9OX0xERkxBR1MpICQoV0tfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0dSQVBI
SUNTX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfSU9TVVJGQUNFX0xERkxBR1MpICQoV0tfTElCV0VC
UlRDX0xERkxBR1MpICQoV0tfTU9CSUxFX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19NT0JJ
TEVfR0VTVEFMVF9MREZMQUdTKSAkKFdLX09QRU5HTF9MREZMQUdTKSAkKFdLX1NBRkVfQlJPV1NJ
TkdfTERGTEFHUykgJChXS19VSUtJVF9MREZMQUdTKTsKIAogLy8gUHJldmVudCBDKysgc3RhbmRh
cmQgbGlicmFyeSBvcGVyYXRvciBuZXcsIGRlbGV0ZSBhbmQgdGhlaXIgcmVsYXRlZCBleGNlcHRp
b24gdHlwZXMgZnJvbSBiZWluZyBleHBvcnRlZCBhcyB3ZWFrIHN5bWJvbHMuCiBVTkVYUE9SVEVE
X1NZTUJPTF9MREZMQUdTID0gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVElTdDliYWRf
YWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVElTdDlleGNlcHRpb24gLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFNTdDliYWRfYWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCAtV2wsX19aVFNTdDlleGNlcHRpb24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19a
ZGxQdlNfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWm53bVB2IC1XbCwtdW5leHBvcnRl
ZF9zeW1ib2wgLVdsLF9fWm53bSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLCAtV2wsX19aTlN0M19f
MThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFQzJFT1M0XyAtV2wsLXVuZXhw
b3J0ZWRfc3ltYm9sLCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5
QWN0aW9uRUVFQzFFT1M0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLCAtV2wsX19aTlN0M19fMThm
dW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFYVNFRG4gLVdsLC11bmV4cG9ydGVk
X3N5bWJvbCwgLVdsLF9fWk5LU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rp
b25FRUVjbEVTMl8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCwgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rp
b25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRTRzd2FwRVJTNF8gLVdsLC11bmV4cG9ydGVk
X3N5bWJvbCwgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlv
bkVFRUMxRVJLUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wsIC1XbCxfX1pOU3QzX18xOGZ1bmN0
aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVDMkVSS1M0XyAtV2wsLXVuZXhwb3J0ZWRf
c3ltYm9sLCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9u
RUVFRDFFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklG
dk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFRDJFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sLCAt
V2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFYVNFUktT
NF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCwgLVdsLF9fWlRWTlN0M19fMTE3YmFkX2Z1bmN0aW9u
X2NhbGxFOwogCi1MSUJXRUJSVENfTERGTEFHUyA9ICQoTElCV0VCUlRDX0xERkxBR1NfJChFTkFC
TEVfV0VCX1JUQykpOwotTElCV0VCUlRDX0xERkxBR1NfID0gOwotTElCV0VCUlRDX0xERkxBR1Nf
RU5BQkxFX1dFQl9SVEMgPSAtd2Vhay1sd2VicnRjOwotCiBMSUJXRUJSVENfTElCUkFSWV9ESVIg
PSAkKFdFQkNPUkVfRlJBTUVXT1JLU19ESVIpL1dlYkNvcmUuZnJhbWV3b3JrL0ZyYW1ld29ya3MK
IExJQldFQlJUQ19MSUJSQVJZX0RJUltzZGs9bWFjb3N4Kl0gPSAkKExJQldFQlJUQ19MSUJSQVJZ
X0RJUl9VU0VfT1ZFUlJJREVfRlJBTUVXT1JLU19ESVJfJChXS19VU0VfT1ZFUlJJREVfRlJBTUVX
T1JLU19ESVIpKTsKIExJQldFQlJUQ19MSUJSQVJZX0RJUl9VU0VfT1ZFUlJJREVfRlJBTUVXT1JL
U19ESVJfTk8gPSAkKFdFQkNPUkVfRlJBTUVXT1JLU19ESVIpL1dlYkNvcmUuZnJhbWV3b3JrL1Zl
cnNpb25zL0EvRnJhbWV3b3JrczsKIExJQldFQlJUQ19MSUJSQVJZX0RJUl9VU0VfT1ZFUlJJREVf
RlJBTUVXT1JLU19ESVJfWUVTID0gJChXS19PVkVSUklERV9GUkFNRVdPUktTX0RJUik7CiAKLU9U
SEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgLUYiJChTREtfRElSKSQoU1lTVEVNX0xJQlJBUllf
RElSKS9Qcml2YXRlRnJhbWV3b3JrcyIgJChVTkVYUE9SVEVEX1NZTUJPTF9MREZMQUdTKSAkKEFT
QU5fT1RIRVJfTERGTEFHUykgJChGUkFNRVdPUktfQU5EX0xJQlJBUllfTERGTEFHUykgJChPVEhF
Ul9MREZMQUdTX1BMQVRGT1JNKSAkKFdLX1JFTE9DQVRBQkxFX0ZSQU1FV09SS19MREZMQUdTKSAk
KFdLX0NPUkVfUFJFRElDVElPTl9MREZMQUdTKSAtZnJhbWV3b3JrIFdlYktpdExlZ2FjeSAkKFdL
X1NBRkVfQlJPV1NJTkdfTERGTEFHUyk7Ci1PVEhFUl9MREZMQUdTX1BMQVRGT1JNW3Nkaz1tYWNv
c3gqXSA9ICQoTElCV0VCUlRDX0xERkxBR1MpOwotT1RIRVJfTERGTEFHU19QTEFURk9STVtzZGs9
aXBob25lb3MqXSA9IC1sQWNjZXNzaWJpbGl0eSAkKExJQldFQlJUQ19MREZMQUdTKTsKLU9USEVS
X0xERkxBR1NfUExBVEZPUk1bc2RrPWlwaG9uZXNpbXVsYXRvcipdID0gLWxBY2Nlc3NpYmlsaXR5
ICQoTElCV0VCUlRDX0xERkxBR1MpOworT1RIRVJfTERGTEFHUyA9ICQoaW5oZXJpdGVkKSAtRiIk
KFNES19ESVIpJChTWVNURU1fTElCUkFSWV9ESVIpL1ByaXZhdGVGcmFtZXdvcmtzIiAkKFVORVhQ
T1JURURfU1lNQk9MX0xERkxBR1MpICQoQVNBTl9PVEhFUl9MREZMQUdTKSAkKEZSQU1FV09SS19B
TkRfTElCUkFSWV9MREZMQUdTKSAkKFdLX1JFTE9DQVRBQkxFX0ZSQU1FV09SS19MREZMQUdTKTsK
IAogUkVFWFBPUlRFRF9GUkFNRVdPUktfTkFNRVMgPSBXZWJLaXRMZWdhY3k7CiBSRUVYUE9SVEVE
X0ZSQU1FV09SS19OQU1FU1tzZGs9bWFjb3N4Kl0gPSAkKGluaGVyaXRlZCkgV2ViQ29yZTsKQEAg
LTgxLDE1ICsxMzIsMyBAQCBXS19GUkFNRVdPUktfSEVBREVSX1BPU1RQUk9DRVNTSU5HX0RJU0FC
TEVEW3Nkaz1pcGhvbmUqMTEuMCpdID0gWUVTOwogCiBXS19SRUxPQ0FUQUJMRV9GUkFNRVdPUktf
TERGTEFHUyA9ICQoV0tfUkVMT0NBVEFCTEVfRlJBTUVXT1JLX0xERkxBR1NfJChXS19SRUxPQ0FU
QUJMRV9GUkFNRVdPUktTKSk7CiBXS19SRUxPQ0FUQUJMRV9GUkFNRVdPUktfTERGTEFHU19ZRVMg
PSAtV2wsLW5vdF9mb3JfZHlsZF9zaGFyZWRfY2FjaGU7Ci0KLVdLX0NPUkVfUFJFRElDVElPTl9M
REZMQUdTID0gJChXS19DT1JFX1BSRURJQ1RJT05fTERGTEFHU18kKFdLX0hBVkVfQ09SRV9QUkVE
SUNUSU9OKSk7Ci1XS19DT1JFX1BSRURJQ1RJT05fTERGTEFHU19ZRVMgPSAtZnJhbWV3b3JrIENv
cmVQcmVkaWN0aW9uOwotV0tfQ09SRV9QUkVESUNUSU9OX0xERkxBR1NfWUVTW3Nkaz1tYWNvc3gq
XSA9IC13ZWFrX2ZyYW1ld29yayBDb3JlUHJlZGljdGlvbjsKLQotV0tfU0FGRV9CUk9XU0lOR19M
REZMQUdTW3Nkaz1pcGhvbmUqXSA9IC1mcmFtZXdvcmsgU2FmYXJpU2FmZUJyb3dzaW5nOwotV0tf
U0FGRV9CUk9XU0lOR19MREZMQUdTW3Nkaz1pcGhvbmUqMTAuKl0gPSA7Ci1XS19TQUZFX0JST1dT
SU5HX0xERkxBR1Nbc2RrPXdhdGNoKl0gPSA7Ci1XS19TQUZFX0JST1dTSU5HX0xERkxBR1Nbc2Rr
PWFwcGxldHYqXSA9IDsKLVdLX1NBRkVfQlJPV1NJTkdfTERGTEFHU1tzZGs9bWFjb3N4Kl0gPSAk
KFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHU19tYWNvc3gpOwotV0tfU0FGRV9CUk9XU0lOR19MREZM
QUdTX21hY29zeFthcmNoPXg4Nl82NF0gPSAkKFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHUyQoV0tf
TUFDT1NfMTAxMykpOwotV0tfU0FGRV9CUk9XU0lOR19MREZMQUdTX01BQ09TX1NJTkNFXzEwMTMg
PSAtd2Vha19mcmFtZXdvcmsgU2FmYXJpU2FmZUJyb3dzaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL21hYy9XZWJDb29raWVNYW5hZ2VyTWFjLm1t
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL21hYy9XZWJDb29raWVNYW5h
Z2VyTWFjLm1tCmluZGV4IDk2ZjBiY2VkODhlNDA1YmUwMWY0MGExZmM1ODhiMGJjN2U4YWM4N2Qu
Ljk4MGJhYzExYWEyN2VlNmE2ZGY4NDkxOWZmYTJjYWY3ZGM3YmE5OGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9tYWMvV2ViQ29va2llTWFuYWdlck1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvbWFjL1dlYkNv
b2tpZU1hbmFnZXJNYWMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjcsOSArMjcsOSBAQAogI2ltcG9ydCAiV2ViQ29va2llTWFuYWdl
ci5oIgogCiAjaW1wb3J0ICJOZXR3b3JrU2Vzc2lvbi5oIgotI2ltcG9ydCAiV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5oIgogI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24u
aD4KICNpbXBvcnQgPHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CisjaW1wb3J0IDx3dGYvUHJv
Y2Vzc1ByaXZpbGVnZS5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMzcsNiAr
MzcsOCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdm9pZCBXZWJDb29raWVNYW5hZ2VyOjpwbGF0
Zm9ybVNldEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENvb2tpZUFjY2VwdFBvbGljeSBwb2xp
Y3kpCiB7CisgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6
Q2FuQWNjZXNzUmF3Q29va2llcykpOworCiAgICAgW1tOU0hUVFBDb29raWVTdG9yYWdlIHNoYXJl
ZEhUVFBDb29raWVTdG9yYWdlXSBzZXRDb29raWVBY2NlcHRQb2xpY3k6c3RhdGljX2Nhc3Q8TlNI
VFRQQ29va2llQWNjZXB0UG9saWN5Pihwb2xpY3kpXTsKIAogICAgIE5ldHdvcmtTdG9yYWdlU2Vz
c2lvbjo6Zm9yRWFjaChbJl0gKGNvbnN0IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgbmV0d29ya1N0
b3JhZ2VTZXNzaW9uKSB7CkBAIC00Nyw2ICs0OSw4IEBAIHZvaWQgV2ViQ29va2llTWFuYWdlcjo6
cGxhdGZvcm1TZXRIVFRQQ29va2llQWNjZXB0UG9saWN5KEhUVFBDb29raWVBY2NlcHRQb2xpY3kK
IAogSFRUUENvb2tpZUFjY2VwdFBvbGljeSBXZWJDb29raWVNYW5hZ2VyOjpwbGF0Zm9ybUdldEhU
VFBDb29raWVBY2NlcHRQb2xpY3koKQogeworICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdl
KFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKKwogICAgIHJldHVybiBb
W05TSFRUUENvb2tpZVN0b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdIGNvb2tpZUFjY2Vw
dFBvbGljeV07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAKaW5kZXggNWY2MmFmYzY2NGZiNTRmZDg2MTFkNTg4OWMyNmFiZTZiOTY0OGJm
Mi4uMDI1YmRiYjdmNzUwZmEwYjE4ZTE5ZGEwMmZmN2FlYjE0YWE0YmRkNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyLTIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDE4IFNvbnkgSW50ZXJhY3RpdmUgRW50
ZXJ0YWlubWVudCBJbmMuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC03Myw2ICs3Myw3IEBACiAjaW5j
bHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9DYWxsYmFja0FnZ3JlZ2F0b3Iu
aD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1Byb2Nlc3NQcml2
aWxlZ2UuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0
b21pY1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTIwOSw2ICsy
MTAsOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2FsIGNy
aXRpY2FsKQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplTmV0d29ya1Byb2Nlc3Mo
TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogeworICAgIFdU
Rjo6c2V0UHJvY2Vzc1ByaXZpbGVnZXMoeyBQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdD
b29raWVzLCBQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NDcmVkZW50aWFscyB9KTsKKyAgICBX
ZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnBlcm1pdFByb2Nlc3NUb1VzZUNvb2tpZUFQ
SSh0cnVlKTsKICAgICBXZWJDb3JlOjpzZXRQcmVzZW50aW5nQXBwbGljYXRpb25QSUQocGFyYW1l
dGVycy5wcmVzZW50aW5nQXBwbGljYXRpb25QSUQpOwogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZU5l
dHdvcmtQcm9jZXNzKHBhcmFtZXRlcnMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCmlu
ZGV4IDBlN2Q4MGNiZjg1ZWIxZGFjZmNkZGY1NTIzYTcxODMwNjQ3YzY3MWQuLjAxNzJjM2I0MTli
ODFmMTVkM2Y3ODlhZDhlOGQ2ZjNhZjk4OTFkNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMu
Y3BwCkBAIC04Nyw3ICs4Nyw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6
OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKICAgICBlbmNvZGVyIDw8IHN0
YXRpY19jYXN0PGJvb2w+KHNvdXJjZU9yaWdpbik7CiAgICAgaWYgKHNvdXJjZU9yaWdpbikKLSAg
ICAgICAgZW5jb2RlciA8PCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbigq
c291cmNlT3JpZ2luKTsKKyAgICAgICAgZW5jb2RlciA8PCBzb3VyY2VPcmlnaW4tPmRhdGEoKTsK
ICAgICBlbmNvZGVyLmVuY29kZUVudW0obW9kZSk7CiAgICAgZW5jb2RlciA8PCBjc3BSZXNwb25z
ZUhlYWRlcnM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcAppbmRleCAyYzEwNWM0NGNjOWE1OTU2MTIyNjkw
YmYyMGRmY2M1YmIwNGRlMTIwLi40NWM0N2ExYmU0MDQ1MWEyNDkyNzIxYzk4ZmNmOTQ2MGFmNjJi
OTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hl
U3RvcmFnZUVuZ2luZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCkBAIC02NiwxMCArNjYsMjQgQEAgRW5naW5lOjp+RW5n
aW5lKCkKIHsKICAgICBmb3IgKGF1dG8mIGNhY2hlcyA6IG1fY2FjaGVzLnZhbHVlcygpKQogICAg
ICAgICBjYWNoZXMtPmRldGFjaCgpOworCisgICAgaWYgKG1faW5pdGlhbGl6YXRpb25DYWxsYmFj
aykKKyAgICAgICAgbV9pbml0aWFsaXphdGlvbkNhbGxiYWNrKEVycm9yOjpJbnRlcm5hbCk7CisK
KyAgICBhdXRvIHdyaXRlQ2FsbGJhY2tzID0gV1RGTW92ZShtX3BlbmRpbmdXcml0ZUNhbGxiYWNr
cyk7CisgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IHdyaXRlQ2FsbGJhY2tzLnZhbHVlcygpKQor
ICAgICAgICBjYWxsYmFjayhFcnJvcjo6SW50ZXJuYWwpOworCisgICAgYXV0byByZWFkQ2FsbGJh
Y2tzID0gV1RGTW92ZShtX3BlbmRpbmdSZWFkQ2FsbGJhY2tzKTsKKyAgICBmb3IgKGF1dG8mIGNh
bGxiYWNrIDogcmVhZENhbGxiYWNrcy52YWx1ZXMoKSkKKyAgICAgICAgY2FsbGJhY2soRGF0YSB7
IH0sIDEpOwogfQogCiBFbmdpbmUmIEVuZ2luZTo6ZnJvbShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQpCiB7CisgICAgaWYgKHNlc3Npb25JRC5pc0VwaGVtZXJhbCgpKQorICAgICAgICBzZXNzaW9u
SUQgPSBQQUw6OlNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpOworCiAgICAgYXV0
byBhZGRSZXN1bHQgPSBnbG9iYWxFbmdpbmVNYXAoKS5hZGQoc2Vzc2lvbklELCBudWxscHRyKTsK
ICAgICBpZiAoYWRkUmVzdWx0LmlzTmV3RW50cnkpCiAgICAgICAgIGFkZFJlc3VsdC5pdGVyYXRv
ci0+dmFsdWUgPSBFbmdpbmU6OmNyZWF0ZShOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCkuY2Fj
aGVTdG9yYWdlRGlyZWN0b3J5KHNlc3Npb25JRCkpOwpAQCAtMTc4LDcgKzE5Miw3IEBAIHZvaWQg
RW5naW5lOjpkZWxldGVNYXRjaGluZ1JlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlCiAgICAgfSk7CiB9CiAKLXZvaWQgRW5naW5lOjppbml0aWFsaXpl
KEZ1bmN0aW9uPHZvaWQoc3RkOjpvcHRpb25hbDxFcnJvcj4mJik+JiYgY2FsbGJhY2spCit2b2lk
IEVuZ2luZTo6aW5pdGlhbGl6ZShDb21wbGV0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAg
ICBpZiAobV9zYWx0KSB7CiAgICAgICAgIGNhbGxiYWNrKHN0ZDo6bnVsbG9wdCk7CkBAIC0xOTAs
MTYgKzIwNCwyMSBAQCB2b2lkIEVuZ2luZTo6aW5pdGlhbGl6ZShGdW5jdGlvbjx2b2lkKHN0ZDo6
b3B0aW9uYWw8RXJyb3I+JiYpPiYmIGNhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAgICAgfQog
CisgICAgbV9pbml0aWFsaXphdGlvbkNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7CisKICAg
ICBTdHJpbmcgc2FsdFBhdGggPSBXZWJDb3JlOjpGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdD
b21wb25lbnQobV9yb290UGF0aCwgQVNDSUlMaXRlcmFsKCJzYWx0IikpOwotICAgIG1faW9RdWV1
ZS0+ZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdGhpcywgY2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgc2FsdFBhdGggPSBXVEZNb3ZlKHNhbHRQYXRoKV0gKCkg
bXV0YWJsZSB7CisgICAgbV9pb1F1ZXVlLT5kaXNwYXRjaChbdGhpcywgd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cih0aGlzKSwgc2FsdFBhdGggPSBXVEZNb3ZlKHNhbHRQYXRoKV0gKCkgbXV0YWJsZSB7
CiAgICAgICAgIFdlYkNvcmU6OkZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3RvcmllcyhtX3Jvb3RQ
YXRoKTsKLSAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0g
V1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgdGhpcywgc2FsdCA9IHJlYWRPck1ha2VTYWx0KHNhbHRQ
YXRoKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKKyAgICAgICAg
UnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt0aGlzLCB3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1Ro
aXMpLCBzYWx0ID0gcmVhZE9yTWFrZVNhbHQoc2FsdFBhdGgpXSgpIG11dGFibGUgeworICAgICAg
ICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAg
ICAgIGlmICghc2FsdCkgewotICAgICAgICAgICAgICAgIGNhbGxiYWNrKEVycm9yOjpXcml0ZURp
c2spOworICAgICAgICAgICAgICAgIG1faW5pdGlhbGl6YXRpb25DYWxsYmFjayhFcnJvcjo6V3Jp
dGVEaXNrKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBtX3NhbHQgPSBXVEZNb3ZlKHNhbHQpOwotICAgICAgICAgICAgY2FsbGJhY2soc3RkOjpu
dWxsb3B0KTsKKyAgICAgICAgICAgIG1faW5pdGlhbGl6YXRpb25DYWxsYmFjayhzdGQ6Om51bGxv
cHQpOwogICAgICAgICB9KTsKICAgICB9KTsKIH0KQEAgLTI3NywxMCArMjk2LDE1IEBAIHZvaWQg
RW5naW5lOjp3cml0ZUZpbGUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgTmV0d29ya0NhY2hlOjpE
YXRhJiYgZGF0YSwgV2ViQ29yCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2lvUXVl
dWUtPmRpc3BhdGNoKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBkYXRhID0gV1RGTW92
ZShkYXRhKSwgZmlsZW5hbWUgPSBmaWxlbmFtZS5pc29sYXRlZENvcHkoKV0gKCkgbXV0YWJsZSB7
CisgICAgbV9wZW5kaW5nV3JpdGVDYWxsYmFja3MuYWRkKCsrbV9wZW5kaW5nQ2FsbGJhY2tzQ291
bnRlciwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIG1faW9RdWV1ZS0+ZGlzcGF0Y2goW3RoaXMs
IHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGlkZW50aWZpZXIgPSBtX3BlbmRpbmdDYWxs
YmFja3NDb3VudGVyLCBkYXRhID0gV1RGTW92ZShkYXRhKSwgZmlsZW5hbWUgPSBmaWxlbmFtZS5p
c29sYXRlZENvcHkoKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8gY2hhbm5lbCA9IElPQ2hh
bm5lbDo6b3BlbihmaWxlbmFtZSwgSU9DaGFubmVsOjpUeXBlOjpDcmVhdGUpOwotICAgICAgICBj
aGFubmVsLT53cml0ZSgwLCBkYXRhLCBudWxscHRyLCBbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKV0oaW50IGVycm9yKSBtdXRhYmxlIHsKKyAgICAgICAgY2hhbm5lbC0+d3JpdGUoMCwgZGF0
YSwgbnVsbHB0ciwgW3RoaXMsIHdlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIGlkZW50aWZp
ZXJdKGludCBlcnJvcikgbXV0YWJsZSB7CiAgICAgICAgICAgICBBU1NFUlQoUnVuTG9vcDo6aXNN
YWluKCkpOworICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgICAgIGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdXcml0ZUNhbGxiYWNr
cy50YWtlKGlkZW50aWZpZXIpOwogICAgICAgICAgICAgaWYgKGVycm9yKSB7CiAgICAgICAgICAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoQ2FjaGVTdG9yYWdlLCAiQ2FjaGVTdG9yYWdlOjpFbmdp
bmU6OndyaXRlRmlsZSBmYWlsZWQgd2l0aCBlcnJvciAlZCIsIGVycm9yKTsKIApAQCAtMjkyLDI4
ICszMTYsMzYgQEAgdm9pZCBFbmdpbmU6OndyaXRlRmlsZShjb25zdCBTdHJpbmcmIGZpbGVuYW1l
LCBOZXR3b3JrQ2FjaGU6OkRhdGEmJiBkYXRhLCBXZWJDb3IKICAgICB9KTsKIH0KIAotdm9pZCBF
bmdpbmU6OnJlYWRGaWxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIFdURjo6RnVuY3Rpb248dm9p
ZChjb25zdCBOZXR3b3JrQ2FjaGU6OkRhdGEmLCBpbnQgZXJyb3IpPiYmIGNhbGxiYWNrKQordm9p
ZCBFbmdpbmU6OnJlYWRGaWxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgTmV0d29ya0NhY2hlOjpEYXRhJiwgaW50IGVycm9yKT4mJiBjYWxsYmFj
aykKIHsKICAgICBpZiAoIXNob3VsZFBlcnNpc3QoKSkgewogICAgICAgICBjYWxsYmFjayhEYXRh
IHsgfSwgMCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2lvUXVldWUtPmRpc3Bh
dGNoKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBmaWxlbmFtZSA9IGZpbGVuYW1lLmlz
b2xhdGVkQ29weSgpXSgpIG11dGFibGUgeworICAgIG1fcGVuZGluZ1JlYWRDYWxsYmFja3MuYWRk
KCsrbV9wZW5kaW5nQ2FsbGJhY2tzQ291bnRlciwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIG1f
aW9RdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIGlk
ZW50aWZpZXIgPSBtX3BlbmRpbmdDYWxsYmFja3NDb3VudGVyLCBmaWxlbmFtZSA9IGZpbGVuYW1l
Lmlzb2xhdGVkQ29weSgpXSgpIG11dGFibGUgewogICAgICAgICBhdXRvIGNoYW5uZWwgPSBJT0No
YW5uZWw6Om9wZW4oZmlsZW5hbWUsIElPQ2hhbm5lbDo6VHlwZTo6UmVhZCk7CiAgICAgICAgIGlm
IChjaGFubmVsLT5maWxlRGVzY3JpcHRvcigpIDwgMCkgewotICAgICAgICAgICAgUnVuTG9vcDo6
bWFpbigpLmRpc3BhdGNoKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUg
ewotICAgICAgICAgICAgICAgIGNhbGxiYWNrKERhdGEgeyB9LCAwKTsKKyAgICAgICAgICAgIFJ1
bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbdGhpcywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlz
KSwgaWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoIXdlYWtUaGlz
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAgICBtX3BlbmRp
bmdSZWFkQ2FsbGJhY2tzLnRha2UoaWRlbnRpZmllcikoRGF0YSB7IH0sIDApOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBjaGFubmVs
LT5yZWFkKDAsIHN0ZDo6bnVtZXJpY19saW1pdHM8c2l6ZV90Pjo6bWF4KCksIG51bGxwdHIsIFtj
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShjb25zdCBEYXRhJiBkYXRhLCBpbnQgZXJyb3Ip
IG11dGFibGUgeworICAgICAgICBjaGFubmVsLT5yZWFkKDAsIHN0ZDo6bnVtZXJpY19saW1pdHM8
c2l6ZV90Pjo6bWF4KCksIG51bGxwdHIsIFt0aGlzLCB3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1Ro
aXMpLCBpZGVudGlmaWVyXShjb25zdCBEYXRhJiBkYXRhLCBpbnQgZXJyb3IpIG11dGFibGUgewog
ICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoZXJyb3IsIENhY2hlU3RvcmFnZSwgIkNh
Y2hlU3RvcmFnZTo6RW5naW5lOjpyZWFkRmlsZSBmYWlsZWQgd2l0aCBlcnJvciAlZCIsIGVycm9y
KTsKIAogICAgICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBkbyB0aGUgZGVjb2RpbmcgaW4g
dGhlIGJhY2tncm91bmQgdGhyZWFkLgogICAgICAgICAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFp
bigpKTsKLSAgICAgICAgICAgIGNhbGxiYWNrKGRhdGEsIGVycm9yKTsKKworICAgICAgICAgICAg
aWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIG1f
cGVuZGluZ1JlYWRDYWxsYmFja3MudGFrZShpZGVudGlmaWVyKShkYXRhLCBlcnJvcik7CiAgICAg
ICAgIH0pOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmgKaW5kZXggMDc1ZWVlNWZjZDM5OTk4YTNl
NDE5NGJmMTEzYmIzNjQzMjhjNjkwNC4uZDdlNWVmNzc2YjUwZjE5N2YwNTI3NzcyOTg5OTE4NTc3
MThkOTEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9D
YWNoZVN0b3JhZ2VFbmdpbmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5oCkBAIC0zMCw3ICszMCw4IEBACiAjaW5jbHVkZSAiV2Vi
c2l0ZURhdGEuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NsaWVudE9yaWdpbi5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9Xb3JrUXVldWUuaD4KIAogbmFtZXNwYWNlIElQQyB7CkBAIC01Miw3ICs1Myw3
IEBAIG5hbWVzcGFjZSBDYWNoZVN0b3JhZ2UgewogdXNpbmcgQ2FjaGVJZGVudGlmaWVyID0gdWlu
dDY0X3Q7CiB1c2luZyBMb2NrQ291bnQgPSB1aW50NjRfdDsKIAotY2xhc3MgRW5naW5lIDogcHVi
bGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEVuZ2luZT4geworY2xhc3MgRW5naW5lIDogcHVibGlj
IFJlZkNvdW50ZWQ8RW5naW5lPiB7CiBwdWJsaWM6CiAgICAgfkVuZ2luZSgpOwogCkBAIC03Niw3
ICs3Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVubG9jayh1aW50NjRfdCBjYWNoZUlkZW50aWZp
ZXIpOwogCiAgICAgdm9pZCB3cml0ZUZpbGUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgTmV0d29y
a0NhY2hlOjpEYXRhJiYsIFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpDb21wbGV0aW9uQ2FsbGJh
Y2smJik7Ci0gICAgdm9pZCByZWFkRmlsZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBXVEY6OkZ1
bmN0aW9uPHZvaWQoY29uc3QgTmV0d29ya0NhY2hlOjpEYXRhJiwgaW50IGVycm9yKT4mJik7Cisg
ICAgdm9pZCByZWFkRmlsZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGNvbnN0IE5ldHdvcmtDYWNoZTo6RGF0YSYsIGludCBlcnJvcik+JiYpOwogICAgIHZv
aWQgcmVtb3ZlRmlsZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lKTsKIAogICAgIGNvbnN0IFN0cmlu
ZyYgcm9vdFBhdGgoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RQYXRoOyB9CkBAIC04OSw2ICs5MCw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyQWxsQ2FjaGVzKFdURjo6Q2FsbGJhY2tBZ2dyZWdh
dG9yJik7CiAgICAgdm9pZCBjbGVhckNhY2hlc0Zvck9yaWdpbihjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmLCBXVEY6OkNhbGxiYWNrQWdncmVnYXRvciYpOwogCisgICAgV2Vha1B0
ckZhY3Rvcnk8RW5naW5lPiYgd2Vha1B0ckZhY3RvcnkoKSB7IHJldHVybiBtX3dlYWtGYWN0b3J5
OyB9CisKIHByaXZhdGU6CiAgICAgc3RhdGljIEVuZ2luZSYgZGVmYXVsdEVuZ2luZSgpOwogICAg
IGV4cGxpY2l0IEVuZ2luZShTdHJpbmcmJiByb290UGF0aCk7CkBAIC05Nyw3ICsxMDAsNyBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCBmZXRjaEVudHJpZXMoYm9vbCAvKiBzaG91bGRDb21wdXRlU2l6
ZSAqLywgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJzaXRlRGF0YTo6RW50
cnk+KT4mJik7CiAKLSAgICB2b2lkIGluaXRpYWxpemUoV1RGOjpGdW5jdGlvbjx2b2lkKHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OkVycm9yPiYmKT4mJik7CisgICAgdm9p
ZCBpbml0aWFsaXplKFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpDb21wbGV0aW9uQ2FsbGJhY2sm
Jik7CiAKICAgICB1c2luZyBDYWNoZXNPckVycm9yID0gRXhwZWN0ZWQ8c3RkOjpyZWZlcmVuY2Vf
d3JhcHBlcjxDYWNoZXM+LCBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6RXJyb3I+OwogICAgIHVz
aW5nIENhY2hlc0NhbGxiYWNrID0gV1RGOjpGdW5jdGlvbjx2b2lkKENhY2hlc09yRXJyb3ImJik+
OwpAQCAtMTE1LDYgKzExOCwxMSBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxXb3JrUXVldWU+IG1f
aW9RdWV1ZTsKICAgICBzdGQ6Om9wdGlvbmFsPE5ldHdvcmtDYWNoZTo6U2FsdD4gbV9zYWx0Owog
ICAgIEhhc2hNYXA8Q2FjaGVJZGVudGlmaWVyLCBMb2NrQ291bnQ+IG1fY2FjaGVMb2NrczsKKyAg
ICBXZWJDb3JlOjpET01DYWNoZUVuZ2luZTo6Q29tcGxldGlvbkNhbGxiYWNrIG1faW5pdGlhbGl6
YXRpb25DYWxsYmFjazsKKyAgICBXZWFrUHRyRmFjdG9yeTxFbmdpbmU+IG1fd2Vha0ZhY3Rvcnk7
CisgICAgSGFzaE1hcDx1aW50NjRfdCwgV2ViQ29yZTo6RE9NQ2FjaGVFbmdpbmU6OkNvbXBsZXRp
b25DYWxsYmFjaz4gbV9wZW5kaW5nV3JpdGVDYWxsYmFja3M7CisgICAgSGFzaE1hcDx1aW50NjRf
dCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBOZXR3b3JrQ2FjaGU6OkRhdGEmLCBpbnQg
ZXJyb3IpPj4gbV9wZW5kaW5nUmVhZENhbGxiYWNrczsKKyAgICB1aW50NjRfdCBtX3BlbmRpbmdD
YWxsYmFja3NDb3VudGVyIHsgMCB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgQ2FjaGVTdG9yYWdl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3Rv
cmFnZUVuZ2luZUNhY2hlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hl
L0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5jcHAKaW5kZXggNWZjYzNlYzlmYTEzNWY4MjEwMWJl
YjUzNGU2MGQ5NDE0YjI2OWE4Mi4uY2QxYzI0YWNiYWNjNjkzMjAxMTVjNTJmYTFkOTRjYzc5MjFl
YWIyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNo
ZVN0b3JhZ2VFbmdpbmVDYWNoZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVzLmNwcApAQCAtNTQ4LDggKzU0OCw5IEBA
IHZvaWQgQ2FjaGVzOjpyZW1vdmVDYWNoZUVudHJ5KGNvbnN0IE5ldHdvcmtDYWNoZTo6S2V5JiBr
ZXkpCiB2b2lkIENhY2hlczo6Y2xlYXJNZW1vcnlSZXByZXNlbnRhdGlvbigpCiB7CiAgICAgaWYg
KCFtX2lzSW5pdGlhbGl6ZWQpIHsKLSAgICAgICAgQVNTRVJUKG1fY2FjaGVzLmlzRW1wdHkoKSk7
CisgICAgICAgIEFTU0VSVChtX2NhY2hlcy5pc0VtcHR5KCkgfHwgIW1fcGVuZGluZ0luaXRpYWxp
emF0aW9uQ2FsbGJhY2tzLmlzRW1wdHkoKSk7CiAgICAgICAgIC8vIG1fc3RvcmFnZSBtaWdodCBu
b3QgYmUgbnVsbCBpbiBjYXNlIENhY2hlcyBpcyBiZWluZyBpbml0aWFsaXplZC4gVGhpcyBpcyBm
aW5lIGFzIG51bGxpZnkgaXQgYmVsb3cgaXMgYSBtZW1vcnkgb3B0aW1pemF0aW9uLgorICAgICAg
ICBtX2NhY2hlcy5jbGVhcigpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5l
bENvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVJT0NoYW5uZWxDb2NvYS5tbQppbmRleCA5ZGNkNjliMmVlZDMxZmMxMTRmNzExYWQ0ZWMzZjE0
YjE1NTIyYzQyLi5iMDYyNjY3ZWEyOTAzMTg3YjI2MGVlMjU2ZjYyOTQwNjM3ODZhZWQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlP
Q2hhbm5lbENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlSU9DaGFubmVsQ29jb2EubW0KQEAgLTc0LDExICs3NCw2IEBAIElPQ2hhbm5l
bDo6SU9DaGFubmVsKGNvbnN0IFN0cmluZyYgZmlsZVBhdGgsIFR5cGUgdHlwZSkKIAogICAgIC8v
IFRoaXMgbWFrZXMgdGhlIGNoYW5uZWwgcmVhZC93cml0ZSBhbGwgZGF0YSBiZWZvcmUgaW52b2tp
bmcgdGhlIGhhbmRsZXJzLgogICAgIGRpc3BhdGNoX2lvX3NldF9sb3dfd2F0ZXIobV9kaXNwYXRj
aElPLmdldCgpLCBzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKLQotICAgIGlm
ICh1c2VMb3dJT1ByaW9yaXR5KSB7Ci0gICAgICAgIC8vIFRoZSB0YXJnZXQgcXVldWUgb2YgYSBk
aXNwYXRjaCBJL08gY2hhbm5lbCBzcGVjaWZpZXMgdGhlIHByaW9yaXR5IG9mIHRoZSBnbG9iYWwg
cXVldWUgd2hlcmUgaXRzIEkvTyBvcGVyYXRpb25zIGFyZSBleGVjdXRlZC4KLSAgICAgICAgZGlz
cGF0Y2hfc2V0X3RhcmdldF9xdWV1ZShtX2Rpc3BhdGNoSU8uZ2V0KCksIGRpc3BhdGNoX2dldF9n
bG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfQkFDS0dST1VORCwgMCkpOwotICAg
IH0KIH0KIAogSU9DaGFubmVsOjp+SU9DaGFubmVsKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCmluZGV4
IDM2M2UzZjlmOGJmMGJlNzA2OTBkM2RiZTg0NDc4YzA4M2M4OGY5MGIuLjk1YmM4NDU1YTg3ODZk
YWNiYmFlNjMwMTk2ZmFiZmUzOWIzZDYwYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQpAQCAtNDEs
NiArNDEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbXBvcnQg
PHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgor
I2ltcG9ydCA8d3RmL1Byb2Nlc3NQcml2aWxlZ2UuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0Jhc2U2
NC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTEyMCw2ICsxMjEsOCBAQCBOU0hUVFBDb29r
aWVTdG9yYWdlICpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6c3RhdGVsZXNzQ29va2llU3RvcmFnZSgp
CiAKIHZvaWQgTmV0d29ya0RhdGFUYXNrQ29jb2E6OmFwcGx5Q29va2llQmxvY2tpbmdQb2xpY3ko
Ym9vbCBzaG91bGRCbG9jaykKIHsKKyAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9j
ZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVzKSk7CisKICAgICBpZiAoc2hvdWxkQmxv
Y2sgPT0gbV9oYXNCZWVuU2V0VG9Vc2VTdGF0ZWxlc3NDb29raWVTdG9yYWdlKQogICAgICAgICBy
ZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2Ev
TmV0d29ya1Byb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya1Byb2Nlc3NDb2NvYS5tbQppbmRleCA5YjY4ZjUzNGJkNzRkYTFmMTk4NTFiMGY2
ZjI5NWE5MTU1ZDBlNGMzLi5hNDcxODliMDQyMDhhODdlN2ZjMDRlMDkwMDY0ZTU1OWU2MGM0YjMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtQ
cm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrUHJvY2Vzc0NvY29hLm1tCkBAIC00MSw2ICs0MSw3IEBACiAjaW1wb3J0IDxXZWJDb3Jl
L1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEku
aD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgorI2ltcG9ydCA8d3RmL1Byb2Nlc3NQcml2aWxl
Z2UuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTIwOCw2ICsyMDksNyBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzOjpjbGVhckRpc2tDYWNoZShXYWxsVGltZSBtb2RpZmllZFNpbmNlLCBGdW5j
dGlvbjx2b2lkICgpPiYmCiAjaWYgUExBVEZPUk0oTUFDKQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6
c2V0U2hhcmVkSFRUUENvb2tpZVN0b3JhZ2UoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBpZGVudGlm
aWVyKQogeworICAgIEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6
OkNhbkFjY2Vzc1Jhd0Nvb2tpZXMpKTsKICAgICBbTlNIVFRQQ29va2llU3RvcmFnZSBfc2V0U2hh
cmVkSFRUUENvb2tpZVN0b3JhZ2U6YWRvcHROUyhbW05TSFRUUENvb2tpZVN0b3JhZ2UgYWxsb2Nd
IF9pbml0V2l0aENGSFRUUENvb2tpZVN0b3JhZ2U6Y29va2llU3RvcmFnZUZyb21JZGVudGlmeWlu
Z0RhdGEoaWRlbnRpZmllcikuZ2V0KCldKS5nZXQoKV07CiB9CiAjZW5kaWYKQEAgLTIyNCw2ICsy
MjYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChi
b29sIGVuYWJsZWQpCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnN5bmNBbGxDb29raWVzKCkKIHsK
KyAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nl
c3NSYXdDb29raWVzKSk7CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAg
X0NGSFRUUENvb2tpZVN0b3JhZ2VGbHVzaENvb2tpZVN0b3JlcygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1t
CmluZGV4IDg1ODJmODIxYzNmMjViZjdhNWM0MDBhZjhlMGZiMGIxOGEwMTdjMGQuLmIzYzhjZDY2
NGZjOGIxYWVlZGYxNWUwYjkwNGYwZTViNGRhY2Y5NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC01MCw2ICs1MCw3IEBACiAjaW1wb3J0IDxwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oPgogI2lt
cG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgor
I2ltcG9ydCA8d3RmL1Byb2Nlc3NQcml2aWxlZ2UuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKIApAQCAtNjM3LDYgKzYzOCw4IEBAIE5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNz
aW9uQ29jb2EoTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhCiAgICAgOiBO
ZXR3b3JrU2Vzc2lvbihwYXJhbWV0ZXJzLnNlc3Npb25JRCkKICAgICAsIG1fYm91bmRJbnRlcmZh
Y2VJZGVudGlmaWVyKHBhcmFtZXRlcnMuYm91bmRJbnRlcmZhY2VJZGVudGlmaWVyKQogeworICAg
IEFTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jh
d0Nvb2tpZXMpKTsKKwogICAgIHJlbGF4QWRvcHRpb25SZXF1aXJlbWVudCgpOwogCiAjaWYgIUFT
U0VSVF9ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
b3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCmluZGV4IGU0MjFmOTFmM2NmMWJmYzBhNzMw
NGQzYzM5YzAzYjQzNDgzZDI2YWYuLmIwNzRjMzRlMGJiYWU4ZmYzZmViMzEwZDFmOTkxODgxMTIy
M2ExNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3
b3JrRGF0YVRhc2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3Nv
dXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKQEAgLTM4NSw2ICszODUsOSBAQCB2b2lkIE5ldHdv
cmtEYXRhVGFza1NvdXA6OmRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKCkKICAgICAgICAgICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIAogICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgUG9saWN5QWN0aW9uOjpTdXNwZW5kOgorICAgICAgICAgICAgTE9HX0VSUk9SKCJQb2xp
Y3lBY3Rpb246OlN1c3BlbmQgZW5jb3VudGVyZWQgLSBUcmVhdGluZyBhcyBQb2xpY3lBY3Rpb246
Oklnbm9yZSBmb3Igbm93Iik7CisgICAgICAgICAgICBGQUxMVEhST1VHSDsKICAgICAgICAgY2Fz
ZSBQb2xpY3lBY3Rpb246Oklnbm9yZToKICAgICAgICAgICAgIGNsZWFyUmVxdWVzdCgpOwogICAg
ICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9p
b3MvVUlLaXRTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5o
CmluZGV4IDc5OTdmZDNhOTcwZmJmMzhkMTg0NzQzMjU3NTFkMmE4ZGE5ZTExMzMuLjJkZmE3MzJj
NTEzYzhhZWI4YzhmYjVhM2UwOWM5YTQyOTEyM2RjMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vc3BpL2lvcy9VSUtpdFNQSS5oCkBAIC01ODUsNiArNTg1LDcgQEAgdHlwZWRlZiBOU19FTlVN
KE5TSW50ZWdlciwgVUlXS0dlc3R1cmVUeXBlKSB7CiAtICh2b2lkKXNjaGVkdWxlUmVwbGFjZW1l
bnRzRm9yVGV4dDooTlNTdHJpbmcgKil0ZXh0OwogLSAodm9pZClzY2hlZHVsZUNoaW5lc2VUcmFu
c2xpdGVyYXRpb25Gb3JUZXh0OihOU1N0cmluZyAqKXRleHQ7CiAKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSwgYXNzaWduKSBVSUxvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyICpmb3Jj
ZVByZXNzR2VzdHVyZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgYXNzaWduKSBV
SUxvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyICpsb3VwZUdlc3R1cmU7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHksIGFzc2lnbikgVUlUYXBHZXN0dXJlUmVjb2duaXplciAqc2luZ2xl
VGFwR2VzdHVyZTsKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsu
Y21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDRhZGNmZmI5NjYz
MTAxMjBmMTIxY2U1Mzk4YTJmYjQzNjczNjA5ZWYuLjJhZjMzOGM3NTg3YTQ0NTNjN2EzNGM4NDc2
YTA0NzRhZDc2Y2UwZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21h
a2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtNDAxLDYgKzQwMSw3
IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCS0lU
X0RJUn0vVUlQcm9jZXNzL2xpbnV4IgogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9zb3Vw
IgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIi
CisgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9E
T00iCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
IgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00iCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3VuaXgi
CkBAIC04MzEsNiArODMyLDcgQEAgaWYgKEVOQUJMRV9JTlRST1NQRUNUSU9OKQogICAgICAgICAg
ICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVUklSZXF1ZXN0LmgKICAg
ICAgICAgICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VVJJUmVzcG9u
c2UuaAogICAgICAgICAgICAgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9nbGliLyouY3BwCisgICAgICAgICAgICAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NLyouY3BwCiAgICAgKQogCiAgICAgYWRkX2N1c3RvbV9j
b21tYW5kKApAQCAtODg4LDcgKzg5MCw3IEBAIGZpbGUoV1JJVEUgJHtDTUFLRV9CSU5BUllfRElS
fS9ndGtkb2Mtd2Via2l0Mmd0ay5jZmcKICAgICAiICAgICAgIC1JJHtERVJJVkVEX1NPVVJDRVNf
V0VCS0lUMkdUS19ESVJ9XG4iCiAgICAgIiAgICAgICAtSSR7Rk9SV0FSRElOR19IRUFERVJTX1dF
QktJVDJHVEtfRElSfVxuIgogICAgICJkb2NfZGlyPSR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQ
SS9ndGsvZG9jc1xuIgotICAgICJzb3VyY2VfZGlycz0ke1dFQktJVF9ESVJ9L1NoYXJlZC9BUEkv
Z2xpYiIKKyAgICAic291cmNlX2RpcnM9JHtXRUJLSVRfRElSfS9TaGFyZWQvQVBJL2dsaWJcbiIK
ICAgICAiICAgICAgICAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2dsaWJcbiIKICAg
ICAiICAgICAgICAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0a1xuIgogICAgICIg
ICAgICAgICAgICAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2ds
aWJcbiIKQEAgLTkwOSw3ICs5MTEsOCBAQCBmaWxlKFdSSVRFICR7Q01BS0VfQklOQVJZX0RJUn0v
Z3RrZG9jLXdlYmtpdGRvbS5jZmcKICAgICAiICAgICAgIC1JJHtERVJJVkVEX1NPVVJDRVNfV0VC
S0lUMkdUS19ESVJ9XG4iCiAgICAgIiAgICAgICAtSSR7Rk9SV0FSRElOR19IRUFERVJTX1dFQktJ
VDJHVEtfRElSfVxuIgogICAgICJkb2NfZGlyPSR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9kb2NzXG4iCi0gICAgInNvdXJjZV9kaXJzPSR7V0VCS0lU
X0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTVxuIgorICAgICJzb3Vy
Y2VfZGlycz0ke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIv
RE9NXG4iCisgICAgIiAgICAgICAgICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTVxuIgogICAgICJoZWFkZXJzPSR7V2ViS2l0RE9NX0dUS0RPQ19I
RUFERVJTfVxuIgogICAgICJtYWluX3NnbWxfZmlsZT13ZWJraXRkb21ndGstZG9jcy5zZ21sXG4i
CiApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BFLmNtYWtlIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFrZQppbmRleCAwM2U3ZTFkOWY2NzQxMTcxMDE4MzcwOGRm
YzNiODkwYmQ0ZjdlNTRhLi44MjNkNDE2YjVmYThlZGViOWMwMmY3NzY5MmRiNWRiMmYxMWNkMmIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BFLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTgsNiArOCw3IEBAIHNldChXZWJLaXRfU3Rv
cmFnZVByb2Nlc3NfT1VUUFVUX05BTUUgV1BFU3RvcmFnZVByb2Nlc3MpCiBmaWxlKE1BS0VfRElS
RUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX1dQRV9BUElfRElSfSkKIGZpbGUoTUFLRV9ESVJFQ1RP
UlkgJHtGT1JXQVJESU5HX0hFQURFUlNfV1BFX0RJUn0pCiBmaWxlKE1BS0VfRElSRUNUT1JZICR7
Rk9SV0FSRElOR19IRUFERVJTX1dQRV9FWFRFTlNJT05fRElSfSkKK2ZpbGUoTUFLRV9ESVJFQ1RP
UlkgJHtGT1JXQVJESU5HX0hFQURFUlNfV1BFX0RPTV9ESVJ9KQogCiBjb25maWd1cmVfZmlsZSh3
cGUvd3BlLXdlYmtpdC5wYy5pbiAke0NNQUtFX0JJTkFSWV9ESVJ9L3dwZS13ZWJraXQucGMgQE9O
TFkpCiAKQEAgLTQyLDkgKzQzLDE3IEBAIGFkZF9jdXN0b21fY29tbWFuZCgKICAgICBDT01NQU5E
IGxuIC1uIC1zIC1mICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
d3BlICR7Rk9SV0FSRElOR19IRUFERVJTX1dQRV9FWFRFTlNJT05fRElSfS93cGUKICkKIAorYWRk
X2N1c3RvbV9jb21tYW5kKAorICAgIE9VVFBVVCAke0ZPUldBUkRJTkdfSEVBREVSU19XUEVfRE9N
X0RJUn0vd3BlCisgICAgREVQRU5EUyAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL3dwZS9ET00KKyAgICBDT01NQU5EIGxuIC1uIC1zIC1mICR7V0VCS0lUX0RJUn0v
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL0RPTSAke0ZPUldBUkRJTkdfSEVBREVS
U19XUEVfRE9NX0RJUn0vd3BlCisgICAgVkVSQkFUSU0KKykKKwogYWRkX2N1c3RvbV90YXJnZXQo
d2Via2l0d3BlLWZha2UtYXBpLWhlYWRlcnMKICAgICBERVBFTkRTICR7Rk9SV0FSRElOR19IRUFE
RVJTX1dQRV9ESVJ9L3dwZQogICAgICAgICAgICAgJHtGT1JXQVJESU5HX0hFQURFUlNfV1BFX0VY
VEVOU0lPTl9ESVJ9L3dwZQorICAgICAgICAgICAgJHtGT1JXQVJESU5HX0hFQURFUlNfV1BFX0RP
TV9ESVJ9L3dwZQogKQogCiBzZXQoV0VCS0lUX0VYVFJBX0RFUEVOREVOQ0lFUwpAQCAtODAsNiAr
ODksNyBAQCBsaXN0KEFQUEVORCBXZWJLaXRfREVSSVZFRF9TT1VSQ0VTCiAgICAgJHtERVJJVkVE
X1NPVVJDRVNfV0VCS0lUX0RJUn0vV2ViS2l0UmVzb3VyY2VzR1Jlc291cmNlQnVuZGxlLmMKIAog
ICAgICR7REVSSVZFRF9TT1VSQ0VTX1dQRV9BUElfRElSfS9XZWJLaXRFbnVtVHlwZXMuY3BwCisg
ICAgJHtERVJJVkVEX1NPVVJDRVNfV1BFX0FQSV9ESVJ9L1dlYktpdFdlYlByb2Nlc3NFbnVtVHlw
ZXMuY3BwCiApCiAKIHNldChXUEVfQVBJX0lOU1RBTExFRF9IRUFERVJTCkBAIC0xMzgsNiArMTQ4
LDI3IEBAIHNldChXUEVfQVBJX0lOU1RBTExFRF9IRUFERVJTCiAgICAgJHtXRUJLSVRfRElSfS9V
SVByb2Nlc3MvQVBJL3dwZS93ZWJraXQuaAogKQogCitzZXQoV1BFX1dFQl9FWFRFTlNJT05fQVBJ
X0lOU1RBTExFRF9IRUFERVJTCisgICAgJHtERVJJVkVEX1NPVVJDRVNfV1BFX0FQSV9ESVJ9L1dl
YktpdFdlYlByb2Nlc3NFbnVtVHlwZXMuaAorICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdENvbnNvbGVNZXNzYWdlLmgKKyAgICAke1dFQktJ
VF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRGcmFtZS5oCisg
ICAgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0
U2NyaXB0V29ybGQuaAorICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvd3BlL1dlYktpdFdlYkVkaXRvci5oCisgICAgJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0V2ViRXh0ZW5zaW9uLmgKKyAgICAke1dFQktJ
VF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJIaXRUZXN0
UmVzdWx0LmgKKyAgICAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L3dwZS9XZWJLaXRXZWJQYWdlLmgKKyAgICAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL3dwZS93ZWJraXQtd2ViLWV4dGVuc2lvbi5oCispCisKK3NldChXUEVfRE9N
X0FQSV9JTlNUQUxMRURfSEVBREVSUworICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvd3BlL0RPTS93ZWJraXRkb21kZWZpbmVzLmgKKyAgICAke1dFQktJVF9E
SVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vd2Via2l0ZG9tLmgKKyAg
ICAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vV2Vi
S2l0RE9NRG9jdW1lbnQuaAorICAgICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvd3BlL0RPTS9XZWJLaXRET01FbGVtZW50LmgKKyAgICAke1dFQktJVF9ESVJ9L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vV2ViS2l0RE9NTm9kZS5oCisgICAg
JHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL1dlYktp
dERPTU9iamVjdC5oCispCisKICMgVG8gZ2VuZXJhdGUgV2ViS2l0RW51bVR5cGVzLmggd2Ugd2Fu
dCB0byB1c2UgYWxsIGluc3RhbGxlZCBoZWFkZXJzLCBleGNlcHQgV2ViS2l0RW51bVR5cGVzLmgg
aXRzZWxmLgogc2V0KFdQRV9FTlVNX0dFTkVSQVRJT05fSEVBREVSUyAke1dQRV9BUElfSU5TVEFM
TEVEX0hFQURFUlN9KQogbGlzdChSRU1PVkVfSVRFTSBXUEVfRU5VTV9HRU5FUkFUSU9OX0hFQURF
UlMgJHtERVJJVkVEX1NPVVJDRVNfV1BFX0FQSV9ESVJ9L1dlYktpdEVudW1UeXBlcy5oKQpAQCAt
MTUyLDYgKzE4MywxOSBAQCBhZGRfY3VzdG9tX2NvbW1hbmQoCiAgICAgVkVSQkFUSU0KICkKIAor
c2V0KFdQRV9XRUJfUFJPQ0VTU19FTlVNX0dFTkVSQVRJT05fSEVBREVSUyAke1dQRV9XRUJfRVhU
RU5TSU9OX0FQSV9JTlNUQUxMRURfSEVBREVSU30pCitsaXN0KFJFTU9WRV9JVEVNIFdQRV9XRUJf
UFJPQ0VTU19FTlVNX0dFTkVSQVRJT05fSEVBREVSUyAke0RFUklWRURfU09VUkNFU19XUEVfQVBJ
X0RJUn0vV2ViS2l0V2ViUHJvY2Vzc0VudW1UeXBlcy5oKQorYWRkX2N1c3RvbV9jb21tYW5kKAor
ICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19XUEVfQVBJX0RJUn0vV2ViS2l0V2ViUHJvY2Vz
c0VudW1UeXBlcy5oCisgICAgICAgICAgICR7REVSSVZFRF9TT1VSQ0VTX1dQRV9BUElfRElSfS9X
ZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVzLmNwcAorICAgIERFUEVORFMgJHtXUEVfV0VCX1BST0NF
U1NfRU5VTV9HRU5FUkFUSU9OX0hFQURFUlN9CisKKyAgICBDT01NQU5EIGdsaWItbWtlbnVtcyAt
LXRlbXBsYXRlICR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3Bl
L1dlYktpdFdlYlByb2Nlc3NFbnVtVHlwZXMuaC50ZW1wbGF0ZSAke1dQRV9XRUJfUFJPQ0VTU19F
TlVNX0dFTkVSQVRJT05fSEVBREVSU30gfCBzZWQgcy93ZWJfa2l0L3dlYmtpdC8gfCBzZWQgcy9X
RUJLSVRfVFlQRV9LSVQvV0VCS0lUX1RZUEUvID4gJHtERVJJVkVEX1NPVVJDRVNfV1BFX0FQSV9E
SVJ9L1dlYktpdFdlYlByb2Nlc3NFbnVtVHlwZXMuaAorCisgICAgQ09NTUFORCBnbGliLW1rZW51
bXMgLS10ZW1wbGF0ZSAke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L3dwZS9XZWJLaXRXZWJQcm9jZXNzRW51bVR5cGVzLmNwcC50ZW1wbGF0ZSAke1dQRV9XRUJfUFJP
Q0VTU19FTlVNX0dFTkVSQVRJT05fSEVBREVSU30gfCBzZWQgcy93ZWJfa2l0L3dlYmtpdC8gPiAk
e0RFUklWRURfU09VUkNFU19XUEVfQVBJX0RJUn0vV2ViS2l0V2ViUHJvY2Vzc0VudW1UeXBlcy5j
cHAKKyAgICBWRVJCQVRJTQorKQorCiBzZXQoV2ViS2l0UmVzb3VyY2VzCiApCiAKQEAgLTE4NCw2
ICsyMjgsNyBAQCBsaXN0KEFQUEVORCBXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIk
e0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9L0phdmFTY3JpcHRDb3JlL2dsaWIiCiAgICAgIiR7Rk9S
V0FSRElOR19IRUFERVJTX1dQRV9ESVJ9IgogICAgICIke0ZPUldBUkRJTkdfSEVBREVSU19XUEVf
RVhURU5TSU9OX0RJUn0iCisgICAgIiR7Rk9SV0FSRElOR19IRUFERVJTX1dQRV9ET01fRElSfSIK
ICAgICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfSIKICAgICAiJHtERVJJVkVEX1NPVVJDRVNfV1BF
X0FQSV9ESVJ9IgogICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlybyIK
QEAgLTIxNyw3ICsyNjIsOSBAQCBsaXN0KEFQUEVORCBXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklF
UwogICAgICIke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9zb3VwIgogICAgICIke1dFQktJVF9ESVJ9
L1VJUHJvY2Vzcy93cGUiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ2xpYiIKKyAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9nbGliL0RPTSIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS93cGUiCisgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvd3BlL0RPTSIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL3NvdXAiCiAg
ICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy91bml4IgogICAgICIke1dFQktJVF9ESVJ9L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
UGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJv
Y2Vzcy9QbHVnaW5Qcm9jZXNzLmNwcAppbmRleCBmN2U5ODYwMDZiMGRkZWIwMzJjZjU1MTAxYTVk
ODI0ZmI2NjBmOThiLi40NDdjYmM4NzMwYTAwYzgwZDgyYmI3MTMzNThjMDMyNDg3MTAyNDQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuY3BwCkBAIC0z
Niw5ICszNiwxMSBAQAogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldl
YlByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNl
c3Npb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL01lbW9yeVByZXNzdXJlSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgorI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CiAjaW5jbHVkZSA8d3RmL1J1
bkxvb3AuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTY5LDYgKzcxLDggQEAgUGx1Z2luUHJv
Y2Vzczo6flBsdWdpblByb2Nlc3MoKQogCiB2b2lkIFBsdWdpblByb2Nlc3M6OmluaXRpYWxpemVQ
cm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1l
dGVycykKIHsKKyAgICBXVEY6OnNldFByb2Nlc3NQcml2aWxlZ2VzKGFsbFByaXZpbGVnZXMoKSk7
CisgICAgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpwZXJtaXRQcm9jZXNzVG9Vc2VD
b29raWVBUEkodHJ1ZSk7CiAgICAgbV9wbHVnaW5QYXRoID0gcGFyYW1ldGVycy5leHRyYUluaXRp
YWxpemF0aW9uRGF0YS5nZXQoInBsdWdpbi1wYXRoIik7CiAgICAgcGxhdGZvcm1Jbml0aWFsaXpl
UHJvY2VzcyhwYXJhbWV0ZXJzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CmluZGV4IGMwYjMwZDM2Nzc5MDZlZjMxYmVhYTg5NTMxZjVlYWNmMGY1NjcwZmIuLjgy
MDc4MGI4OWVhNDZhMDYxZTk2YjEzM2U1ZGE0Zjk3ZjRjZTkwNTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMzcyLDYgKzM3Miw3IEBAIGRlZiBoZWFkZXJz
X2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzJzog
Wyc8V2ViQ29yZS9BdXRvcGxheUV2ZW50Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpFeGNlcHRp
b25EZXRhaWxzJzogWyc8V2ViQ29yZS9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzJzogWyc8V2ViQ29yZS9GaWxlQ2hvb3Nl
ci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSc6IFsnPFdlYkNvcmUvRnJh
bWVMb2FkZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6R3JhbW1hckRldGFpbCc6IFsn
PFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Okhhc0lu
c2VjdXJlQ29udGVudCc6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPiddLAogICAgICAg
ICAnV2ViQ29yZTo6SGlnaGxpZ2h0JzogWyc8V2ViQ29yZS9JbnNwZWN0b3JPdmVybGF5Lmg+J10s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NlY3VyaXR5T3JpZ2lu
UmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2VjdXJpdHlPcmlnaW5SZWYu
Y3BwCmluZGV4IDNjNGI0MjQ2ZTgxMjA4N2IzMGUzNmJhZmMxNjhlZjQ2NjNjNzBhOGIuLmJjZjk1
NWE2NmNiNzY4MDU0MmMyY2ZjYWRjYzRmM2YwYmQ1M2QxNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2VjdXJpdHlPcmlnaW5SZWYuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9jL1dLU2VjdXJpdHlPcmlnaW5SZWYuY3BwCkBAIC01OCw3ICs1OCw3
IEBAIFdLU2VjdXJpdHlPcmlnaW5SZWYgV0tTZWN1cml0eU9yaWdpbkNyZWF0ZShXS1N0cmluZ1Jl
ZiBwcm90b2NvbCwgV0tTdHJpbmdSZWYgaG9zCiAKIFdLU3RyaW5nUmVmIFdLU2VjdXJpdHlPcmln
aW5Db3B5RGF0YWJhc2VJZGVudGlmaWVyKFdLU2VjdXJpdHlPcmlnaW5SZWYgc2VjdXJpdHlPcmln
aW4pCiB7Ci0gICAgcmV0dXJuIHRvQ29waWVkQVBJKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKHRvSW1wbChzZWN1cml0eU9yaWdpbiktPnNlY3VyaXR5T3Jp
Z2luKCkpLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKKyAgICByZXR1cm4gdG9Db3BpZWRBUEkodG9J
bXBsKHNlY3VyaXR5T3JpZ2luKS0+c2VjdXJpdHlPcmlnaW4oKS5kYXRhKCkuZGF0YWJhc2VJZGVu
dGlmaWVyKCkpOwogfQogCiBXS1N0cmluZ1JlZiBXS1NlY3VyaXR5T3JpZ2luQ29weVRvU3RyaW5n
KFdLU2VjdXJpdHlPcmlnaW5SZWYgc2VjdXJpdHlPcmlnaW4pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Bc3Npc3RlZE5vZGVJbmZvcm1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Bc3Npc3RlZE5vZGVJbmZvcm1hdGlvbi5jcHAKaW5kZXggYTc4ODRhOTc0YjdjZDU5
YzA5YzgwMDYyMzMzZGIxYmJkNmY4ZGVlYy4uYzdjYjMxYWYzZTQyYjk2YTY0Y2UyYTRkYTczNWY2
N2ZhNmNhODFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXNzaXN0ZWROb2Rl
SW5mb3JtYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Fzc2lzdGVkTm9kZUlu
Zm9ybWF0aW9uLmNwcApAQCAtNzAsNyArNzAsOSBAQCB2b2lkIEFzc2lzdGVkTm9kZUluZm9ybWF0
aW9uOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwg
bWF4aW11bVNjYWxlRmFjdG9ySWdub3JpbmdBbHdheXNTY2FsYWJsZTsKICAgICBlbmNvZGVyIDw8
IG5vZGVGb250U2l6ZTsKICAgICBlbmNvZGVyIDw8IGhhc05leHROb2RlOworICAgIGVuY29kZXIg
PDwgbmV4dE5vZGVSZWN0OwogICAgIGVuY29kZXIgPDwgaGFzUHJldmlvdXNOb2RlOworICAgIGVu
Y29kZXIgPDwgcHJldmlvdXNOb2RlUmVjdDsKICAgICBlbmNvZGVyIDw8IGlzQXV0b2NvcnJlY3Q7
CiAgICAgZW5jb2RlciA8PCBpc1JUTDsKICAgICBlbmNvZGVyLmVuY29kZUVudW0oYXV0b2NhcGl0
YWxpemVUeXBlKTsKQEAgLTExNyw5ICsxMTksMTUgQEAgYm9vbCBBc3Npc3RlZE5vZGVJbmZvcm1h
dGlvbjo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgQXNzaXN0ZWROb2RlSW5mb3JtYXQK
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5oYXNOZXh0Tm9kZSkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm5leHROb2RlUmVj
dCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVz
dWx0Lmhhc1ByZXZpb3VzTm9kZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocmVzdWx0LnByZXZpb3VzTm9kZVJlY3QpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pc0F1dG9jb3JyZWN0KSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Bc3Npc3RlZE5vZGVJbmZvcm1hdGlvbi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXNzaXN0
ZWROb2RlSW5mb3JtYXRpb24uaAppbmRleCA2YmNmMzM3OTUxZDViNzVjMTgyZGRiNWU2NmZlMTRl
ZWMzYTJmMmNmLi5hNjEyNGZkMDBmMTYzNzNlYWFjZGM2ODBmMjExZTU5ZDU2NjQ4ZGZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Bc3Npc3RlZE5vZGVJbmZvcm1hdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Fzc2lzdGVkTm9kZUluZm9ybWF0aW9uLmgKQEAgLTk0
LDcgKzk0LDkgQEAgc3RydWN0IEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uIHsKICAgICBkb3VibGUg
bWF4aW11bVNjYWxlRmFjdG9ySWdub3JpbmdBbHdheXNTY2FsYWJsZSB7IElORklOSVRZIH07CiAg
ICAgZG91YmxlIG5vZGVGb250U2l6ZSB7IDAgfTsKICAgICBib29sIGhhc05leHROb2RlIHsgZmFs
c2UgfTsKKyAgICBXZWJDb3JlOjpJbnRSZWN0IG5leHROb2RlUmVjdDsKICAgICBib29sIGhhc1By
ZXZpb3VzTm9kZSB7IGZhbHNlIH07CisgICAgV2ViQ29yZTo6SW50UmVjdCBwcmV2aW91c05vZGVS
ZWN0OwogICAgIGJvb2wgaXNBdXRvY29ycmVjdCB7IGZhbHNlIH07CiAgICAgYm9vbCBpc1JUTCB7
IGZhbHNlIH07CiAgICAgYm9vbCBpc011bHRpU2VsZWN0IHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNr
aW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKaW5kZXggNWI0YTg4YzNhNTBjZWJjNWNjYzNhZTdl
MTZlODYxNjZiOGJiMWE1MS4uNDJmYzJlNGFjZGNiNWJmMTAwMzQ5ZDMwMTFlMGQ5ZjY4YWY2YzAz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKQEAgLTQ3LDcgKzQ3
LDcgQEAgdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGU6OnN3YXBCdWZmZXJzKFRleHR1
cmVNYXBwZXImIHRleHR1cmVNYXBwZXIpCiAgICAgfSBlbHNlIGlmIChtX2J1ZmZlci0+c3VwcG9y
dHNBbHBoYSgpID09IG1fdGV4dHVyZS0+aXNPcGFxdWUoKSkKICAgICAgICAgbV90ZXh0dXJlLT5y
ZXNldChtX3RpbGVSZWN0LnNpemUoKSwgbV9idWZmZXItPnN1cHBvcnRzQWxwaGEoKSk7CiAKLSAg
ICBtX3RleHR1cmUtPnVwZGF0ZUNvbnRlbnRzKG1fYnVmZmVyLT5kYXRhKCksIG1fc291cmNlUmVj
dCwgbV9idWZmZXJPZmZzZXQsIG1fYnVmZmVyLT5zdHJpZGUoKSwgQml0bWFwVGV4dHVyZTo6VXBk
YXRlQ2FuTW9kaWZ5T3JpZ2luYWxJbWFnZURhdGEpOworICAgIG1fdGV4dHVyZS0+dXBkYXRlQ29u
dGVudHMobV9idWZmZXItPmRhdGEoKSwgbV9zb3VyY2VSZWN0LCBtX2J1ZmZlck9mZnNldCwgbV9i
dWZmZXItPnN0cmlkZSgpKTsKICAgICBtX2J1ZmZlciA9IG51bGxwdHI7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAppbmRleCBhNmQ3ZmRlMDIzOWI4Y2QyNWE4
M2MwNWFmZjJkZmZjNGVmMzYxOGUzLi45OGMyNWQzNmM0NmE3N2E1MjI3Y2I0MWVjMzQxZjUxYmVh
YTllZTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCkBAIC00
MiwxNSArNDIsMTAgQEAgc3RhdGljIGJvb2wgbGF5ZXJTaG91bGRIYXZlQmFja2luZ1N0b3JlKFRl
eHR1cmVNYXBwZXJMYXllciogbGF5ZXIpCiAKIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6Q29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lKENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZUNsaWVudCogY2xp
ZW50KQogICAgIDogbV9jbGllbnQoY2xpZW50KQotICAgICwgbV9pc0FjdGl2ZShmYWxzZSkKLSAg
ICAsIG1fcm9vdExheWVySUQoSW52YWxpZENvb3JkaW5hdGVkTGF5ZXJJRCkKLSAgICAsIG1fdmll
d0JhY2tncm91bmRDb2xvcihDb2xvcjo6d2hpdGUpCiB7CiB9CiAKLUNvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZTo6fkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSgpCi17Ci19CitDb29yZGluYXRlZEdy
YXBoaWNzU2NlbmU6On5Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUoKSA9IGRlZmF1bHQ7CiAKIHZv
aWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjphcHBseVN0YXRlQ2hhbmdlcyhjb25zdCBWZWN0
b3I8Q29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlPiYgc3RhdGVzKQogewpAQCAtMTE4LDcgKzExMyw3
IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjphZGp1c3RQb3NpdGlvbkZvckZpeGVk
TGF5ZXJzKGNvbnN0IEZsb2F0UG9pbnQmIGNvCiAgICAgLy8gRml4ZWQgbGF5ZXIgcG9zaXRpb25z
IGFyZSB1cGRhdGVkIGJ5IHRoZSB3ZWIgcHJvY2VzcyB3aGVuIHdlIHVwZGF0ZSB0aGUgdmlzaWJs
ZSBjb250ZW50cyByZWN0IC8gc2Nyb2xsIHBvc2l0aW9uLgogICAgIC8vIElmIHdlIHdhbnQgdGhv
c2UgbGF5ZXJzIHRvIGZvbGxvdyBhY2N1cmF0ZWx5IHRoZSB2aWV3cG9ydCB3aGVuIHdlIG1vdmUg
YmV0d2VlbiB0aGUgd2ViIHByb2Nlc3MgdXBkYXRlcywgd2UgaGF2ZSB0byBvZmZzZXQKICAgICAv
LyB0aGVtIGJ5IHRoZSBkZWx0YSBiZXR3ZWVuIHRoZSBjdXJyZW50IHBvc2l0aW9uIGFuZCB0aGUg
cG9zaXRpb24gb2YgdGhlIHZpZXdwb3J0IHVzZWQgZm9yIHRoZSBsYXN0IGxheW91dC4KLSAgICBG
bG9hdFNpemUgZGVsdGEgPSBjb250ZW50UG9zaXRpb24gLSBtX3JlbmRlcmVkQ29udGVudHNTY3Jv
bGxQb3NpdGlvbjsKKyAgICBGbG9hdFNpemUgZGVsdGEgPSBjb250ZW50UG9zaXRpb24gLSBtX3Nj
cm9sbFBvc2l0aW9uOwogCiAgICAgZm9yIChhdXRvJiBmaXhlZExheWVyIDogbV9maXhlZExheWVy
cy52YWx1ZXMoKSkKICAgICAgICAgZml4ZWRMYXllci0+c2V0U2Nyb2xsUG9zaXRpb25EZWx0YUlm
TmVlZGVkKGRlbHRhKTsKQEAgLTQ5MSw3ICs0ODYsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZTo6Y29tbWl0U2NlbmVTdGF0ZShjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzU3RhdGUm
CiAKICAgICBDb21taXRTY29wZSBjb21taXRTY29wZTsKIAotICAgIG1fcmVuZGVyZWRDb250ZW50
c1Njcm9sbFBvc2l0aW9uID0gc3RhdGUuc2Nyb2xsUG9zaXRpb247CisgICAgbV9zY3JvbGxQb3Np
dGlvbiA9IHN0YXRlLnNjcm9sbFBvc2l0aW9uOwogCiAgICAgY3JlYXRlTGF5ZXJzKHN0YXRlLmxh
eWVyc1RvQ3JlYXRlKTsKICAgICBkZWxldGVMYXllcnMoc3RhdGUubGF5ZXJzVG9SZW1vdmUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEdyYXBoaWNzU2NlbmUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgKaW5kZXggMTg0NTRjMzBiZDcwZDIx
ODRiNGY1NTBlNjBkZjExZDRhMTNlZmE0Ny4uYWQ0YzgxNTY3MzIwYWEzNGM1Zjg0MmYzZWMzZDY2
YmQwMjA5OWI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oCkBAIC0x
NjMsMTYgKzE2MywxNSBAQCBwcml2YXRlOgogCiAgICAgLy8gQmVsb3cgdHdvIG1lbWJlcnMgYXJl
IGFjY2Vzc2VkIGJ5IG9ubHkgdGhlIG1haW4gdGhyZWFkLiBUaGUgcGFpbnRpbmcgdGhyZWFkIG11
c3QgbG9jayB0aGUgbWFpbiB0aHJlYWQgdG8gYWNjZXNzIGJvdGggbWVtYmVycy4KICAgICBDb29y
ZGluYXRlZEdyYXBoaWNzU2NlbmVDbGllbnQqIG1fY2xpZW50OwotICAgIGJvb2wgbV9pc0FjdGl2
ZTsKKyAgICBib29sIG1faXNBY3RpdmUgeyBmYWxzZSB9OwogCiAgICAgc3RkOjp1bmlxdWVfcHRy
PFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcj4gbV9yb290TGF5ZXI7CiAKICAgICBIYXNoTWFw
PFdlYkNvcmU6OkNvb3JkaW5hdGVkTGF5ZXJJRCwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXJMYXllcj4+IG1fbGF5ZXJzOwogICAgIEhhc2hNYXA8V2ViQ29yZTo6Q29vcmRp
bmF0ZWRMYXllcklELCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXIqPiBtX2ZpeGVkTGF5ZXJz
OwotICAgIFdlYkNvcmU6OkNvb3JkaW5hdGVkTGF5ZXJJRCBtX3Jvb3RMYXllcklEOworICAgIFdl
YkNvcmU6OkNvb3JkaW5hdGVkTGF5ZXJJRCBtX3Jvb3RMYXllcklEIHsgV2ViQ29yZTo6SW52YWxp
ZENvb3JkaW5hdGVkTGF5ZXJJRCB9OwogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgbV9zY3JvbGxQ
b3NpdGlvbjsKLSAgICBXZWJDb3JlOjpGbG9hdFBvaW50IG1fcmVuZGVyZWRDb250ZW50c1Njcm9s
bFBvc2l0aW9uOwotICAgIFdlYkNvcmU6OkNvbG9yIG1fdmlld0JhY2tncm91bmRDb2xvcjsKKyAg
ICBXZWJDb3JlOjpDb2xvciBtX3ZpZXdCYWNrZ3JvdW5kQ29sb3IgeyBXZWJDb3JlOjpDb2xvcjo6
d2hpdGUgfTsKIAogICAgIFdlYkNvcmU6OlRleHR1cmVNYXBwZXJGUFNDb3VudGVyIG1fZnBzQ291
bnRlcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRp
bGl0aWVzL21hYy9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9tYWMvWFBDU2VydmljZS9YUENTZXJ2aWNl
RW50cnlQb2ludC5tbQppbmRleCA5NWUyOWVhN2FhMzRmNjBmNTM5ZmNhNjJiMzM5OTA4ODllMmY0
YTcwLi4zMzQxZmIwZDc2YjkxMDQyNDc1MjFjYjdjM2ZiMmUzY2Q4NjljZDcxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL21hYy9YUENTZXJ2aWNl
L1hQQ1NlcnZpY2VFbnRyeVBvaW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5
UG9pbnRVdGlsaXRpZXMvbWFjL1hQQ1NlcnZpY2UvWFBDU2VydmljZUVudHJ5UG9pbnQubW0KQEAg
LTEyMSw2ICsxMjEsMTAgQEAgYm9vbCBYUENTZXJ2aWNlSW5pdGlhbGl6ZXJEZWxlZ2F0ZTo6Z2V0
RXh0cmFJbml0aWFsaXphdGlvbkRhdGEoSGFzaE1hcDxTdHJpbmcsIFMKICAgICAgICAgZXh0cmFJ
bml0aWFsaXphdGlvbkRhdGEuYWRkKEFTQ0lJTGl0ZXJhbCgic2VydmljZS13b3JrZXItcHJvY2Vz
cyIpLCBzZXJ2aWNlV29ya2VyUHJvY2Vzcyk7CiAjZW5kaWYKIAorICAgIFN0cmluZyBzZWN1cml0
eU9yaWdpbiA9IHhwY19kaWN0aW9uYXJ5X2dldF9zdHJpbmcoZXh0cmFEYXRhSW5pdGlhbGl6YXRp
b25EYXRhT2JqZWN0LCAic2VjdXJpdHktb3JpZ2luIik7CisgICAgaWYgKCFzZWN1cml0eU9yaWdp
bi5pc0VtcHR5KCkpCisgICAgICAgIGV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmFkZChBU0NJSUxp
dGVyYWwoInNlY3VyaXR5LW9yaWdpbiIpLCBzZWN1cml0eU9yaWdpbik7CisKICAgICBpZiAoIWlz
Q2xpZW50U2FuZGJveGVkKCkpIHsKICAgICAgICAgU3RyaW5nIHVzZXJEaXJlY3RvcnlTdWZmaXgg
PSB4cGNfZGljdGlvbmFyeV9nZXRfc3RyaW5nKGV4dHJhRGF0YUluaXRpYWxpemF0aW9uRGF0YU9i
amVjdCwgInVzZXItZGlyZWN0b3J5LXN1ZmZpeCIpOwogICAgICAgICBpZiAoIXVzZXJEaXJlY3Rv
cnlTdWZmaXguaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVt
b3RlTGF5ZXJUcmVlL1dLQW5pbWF0aW9uRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1JlbW90ZUxheWVyVHJlZS9XS0FuaW1hdGlvbkRlbGVnYXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzM3ZTg3
NzEyMDQyNjdiYzI5NTIyOGE5ZmEwZWNhMTU2MjJmY2JjOQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9XS0FuaW1hdGlvbkRlbGVnYXRlLmgK
QEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgUmVtb3RlTGF5ZXJUcmVlSG9zdDsKK30KKwor
QGludGVyZmFjZSBXS0FuaW1hdGlvbkRlbGVnYXRlIDogTlNPYmplY3QgeworICAgIFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBfbGF5ZXJJRDsKKyAgICBXZWJLaXQ6OlJl
bW90ZUxheWVyVHJlZUhvc3QqIF9sYXllclRyZWVIb3N0OworfQorCistIChpbnN0YW5jZXR5cGUp
aW5pdFdpdGhMYXllcklEOihXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQp
bGF5ZXJJRCBsYXllclRyZWVIb3N0OihXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3QqKWxheWVy
VHJlZUhvc3Q7CistICh2b2lkKWludmFsaWRhdGU7CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9TZXNzaW9uU3RhdGUuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vz
c2lvblN0YXRlLmNwcAppbmRleCBiMGFhZTU5YWIwZWJjMjkwYTVlNTk0YTU0OWE4M2MzOTRiMTk4
YWE5Li45MTFkMmU3Mzc3OGM5ZWY1YWE4ZjViMzIzOWNkYmM4ZDU0MTI2MjI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9uU3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHAKQEAgLTI4LDYgKzI4LDggQEAKIAogI2luY2x1ZGUg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIGJvb2wgaXNWYWxpZEVudW0oV2ViQ29yZTo6U2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSBwb2xpY3kpCkBAIC0xODQsOCArMTg2LDExIEBAIHN0ZDo6b3B0
aW9uYWw8RnJhbWVTdGF0ZT4gRnJhbWVTdGF0ZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rl
cikKIAogdm9pZCBQYWdlU3RhdGU6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0
CiB7Ci0gICAgZW5jb2RlciA8PCB0aXRsZTsKLSAgICBlbmNvZGVyIDw8IG1haW5GcmFtZVN0YXRl
OworICAgIGVuY29kZXIgPDwgdGl0bGUgPDwgbWFpbkZyYW1lU3RhdGUgPDwgISFzZXNzaW9uU3Rh
dGVPYmplY3Q7CisKKyAgICBpZiAoc2Vzc2lvblN0YXRlT2JqZWN0KQorICAgICAgICBlbmNvZGVy
IDw8IHNlc3Npb25TdGF0ZU9iamVjdC0+dG9XaXJlQnl0ZXMoKTsKKwogICAgIGVuY29kZXIuZW5j
b2RlRW51bShzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKIH0KIApAQCAtMTk4LDYgKzIw
MywxOSBAQCBib29sIFBhZ2VTdGF0ZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgUGFn
ZVN0YXRlJiByZXN1bHQpCiAgICAgaWYgKCFtYWluRnJhbWVTdGF0ZSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIHJlc3VsdC5tYWluRnJhbWVTdGF0ZSA9IFdURk1vdmUoKm1haW5GcmFtZVN0
YXRlKTsKKworICAgIGJvb2wgaGFzU2Vzc2lvblN0YXRlOworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoaGFzU2Vzc2lvblN0YXRlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKGhh
c1Nlc3Npb25TdGF0ZSkgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gd2lyZUJ5dGVzOworICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHdpcmVCeXRlcykpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICAgICAgcmVzdWx0LnNlc3Npb25TdGF0ZU9iamVjdCA9IFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTo6Y3JlYXRlRnJvbVdpcmVCeXRlcyhXVEZNb3ZlKHdpcmVCeXRlcykpOworICAg
IH0KKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHJlc3VsdC5zaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5KSB8fCAhaXNWYWxpZEVudW0ocmVzdWx0LnNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3kpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1Nlc3Npb25TdGF0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lv
blN0YXRlLmgKaW5kZXggYzM1NGJkNzMzYjk4NWZiMzJhMTg2ZTQ2MGRlNTAxMDJhYjVlZDhlOS4u
MTQ4MjE0NDVjODdmZTQzMzU1Nzk2MmJjYjM0OTkzZTUxZDJmMmFmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvU2Vzc2lvblN0YXRlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRS
ZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9JbnRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkU2NyaXB0VmFs
dWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTExOSw2ICsxMjAsNyBAQCBzdHJ1Y3QgUGFn
ZVN0YXRlIHsKICAgICBTdHJpbmcgdGl0bGU7CiAgICAgRnJhbWVTdGF0ZSBtYWluRnJhbWVTdGF0
ZTsKICAgICBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3kgeyBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
OjpTaG91bGROb3RBbGxvdyB9OworICAgIFJlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IHNlc3Npb25TdGF0ZU9iamVjdDsKIH07CiAKIHN0cnVjdCBCYWNrRm9yd2FyZExpc3RJ
dGVtU3RhdGUgewpAQCAtMTMxLDcgKzEzMyw2IEBAIHN0cnVjdCBCYWNrRm9yd2FyZExpc3RJdGVt
U3RhdGUgewogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJlZlB0cjxWaWV3U25hcHNob3Q+IHNu
YXBzaG90OwogI2VuZGlmCi0KIH07CiAKIHN0cnVjdCBCYWNrRm9yd2FyZExpc3RTdGF0ZSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1N0b3JhZ2UvU3RvcmFn
ZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDZlNWVhYmUyOTJmNzI5OWFlZjMy
NzMzMWJhNzI5ZGJkZTc0YzUyYTUuLjZmNTVjMTIxZjFmMGRjYzAyMTg5YWI2ZTE3ZmNiZmUyZjBm
YzhlZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1N0b3JhZ2UvU3RvcmFnZVBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1N0
b3JhZ2UvU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC00MSw3ICs0MSw3
IEBAIHZvaWQgU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVu
Y29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBpbmRleGVkRGF0YWJhc2VEaXJl
Y3RvcnkgPDwgaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwogI2VuZGlm
CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIGVuY29kZXIgPDwgc2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRpcmVjdG9yeSA8PCBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0
b3J5RXh0ZW5zaW9uSGFuZGxlIDw8IHVybFNjaGVtZXNTZXJ2aWNlV29ya2Vyc0NhbkhhbmRsZTsK
KyAgICBlbmNvZGVyIDw8IHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkgPDwgc2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbkRpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSA8PCB1cmxTY2hl
bWVzU2VydmljZVdvcmtlcnNDYW5IYW5kbGUgPDwgc2hvdWxkRGlzYWJsZVNlcnZpY2VXb3JrZXJQ
cm9jZXNzVGVybWluYXRpb25EZWxheTsKICNlbmRpZgogfQogCkBAIC03MSw2ICs3MSw5IEBAIGJv
b2wgU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXIm
IGRlY29kZXIsIFN0b3JhZ2VQcm9jCiAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC51
cmxTY2hlbWVzU2VydmljZVdvcmtlcnNDYW5IYW5kbGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5zaG91bGREaXNhYmxlU2VydmljZVdv
cmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogI2Vu
ZGlmCiAKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRl
eCA2NzY4MGRmMTJkZjQ3Y2E5MjM5MzliY2RhYzk4NmM4YTIyY2ZmYThhLi5mZDk3MDc0ZjgyMTY2
YmM5MjRiNzE5ZTI4NGQ2M2E5Mjc4NWNhYjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oCkBAIC01NCw2ICs1NCw3IEBAIHN0cnVjdCBTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyB7CiAgICAgU3RyaW5nIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3Rvcnk7CiAg
ICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJl
Y3RvcnlFeHRlbnNpb25IYW5kbGU7CiAgICAgVmVjdG9yPFN0cmluZz4gdXJsU2NoZW1lc1NlcnZp
Y2VXb3JrZXJzQ2FuSGFuZGxlOworICAgIGJvb2wgc2hvdWxkRGlzYWJsZVNlcnZpY2VXb3JrZXJQ
cm9jZXNzVGVybWluYXRpb25EZWxheSB7IGZhbHNlIH07CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAK
aW5kZXggNzQ3Yjg0YTNhZDI5ODAyOTQxMDdhMDllZDA3NGM1ZjVhYzk5YWExNS4uYzNjNTAzZGJh
MTI2ZDVmNjk0MmMwOWE1MWU2NTJmNDE1ZTA5NzVhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTg1LDYgKzg1
LDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgdXJsU2NoZW1lc1JlZ2lzdGVyZWRB
c0Fsd2F5c1JldmFsaWRhdGVkOwogICAgIGVuY29kZXIgPDwgdXJsU2NoZW1lc1JlZ2lzdGVyZWRB
c0NhY2hlUGFydGl0aW9uZWQ7CiAgICAgZW5jb2RlciA8PCB1cmxTY2hlbWVzU2VydmljZVdvcmtl
cnNDYW5IYW5kbGU7CisgICAgZW5jb2RlciA8PCB1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzQ2FuRGlz
cGxheU9ubHlJZkNhblJlcXVlc3Q7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGNhY2hlTW9kZWwp
OwogICAgIGVuY29kZXIgPDwgc2hvdWxkQWx3YXlzVXNlQ29tcGxleFRleHRDb2RlUGF0aDsKICAg
ICBlbmNvZGVyIDw8IHNob3VsZEVuYWJsZU1lbW9yeVByZXNzdXJlUmVsaWVmTG9nZ2luZzsKQEAg
LTI4MSw2ICsyODIsOCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29k
ZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdAogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnVybFNjaGVtZXNTZXJ2
aWNlV29ya2Vyc0NhbkhhbmRsZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0NhbkRpc3BsYXlP
bmx5SWZDYW5SZXF1ZXN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGVFbnVtKHBhcmFtZXRlcnMuY2FjaGVNb2RlbCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuc2hvdWxkQWx3YXlzVXNlQ29t
cGxleFRleHRDb2RlUGF0aCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggZGI5Mzc2MGJkMGU1Y2Q1ZDJiMGUzOTg5OGQx
ZGVmMWJjZmIxZWYyNy4uOWFmMmVmNjc0ODFjZDE3YjkzZjdmMjkyODE5N2FhOGY5MjVjOWQ4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaApAQCAtMTA4LDYgKzEwOCw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzIHsKICAgICBWZWN0b3I8U3RyaW5nPiB1cmxTY2hlbWVzUmVnaXN0ZXJlZEFzQWx3YXlz
UmV2YWxpZGF0ZWQ7CiAgICAgVmVjdG9yPFN0cmluZz4gdXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0Nh
Y2hlUGFydGl0aW9uZWQ7CiAgICAgVmVjdG9yPFN0cmluZz4gdXJsU2NoZW1lc1NlcnZpY2VXb3Jr
ZXJzQ2FuSGFuZGxlOworICAgIFZlY3RvcjxTdHJpbmc+IHVybFNjaGVtZXNSZWdpc3RlcmVkQXND
YW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdDsKIAogICAgIFZlY3RvcjxTdHJpbmc+IGZvbnRXaGl0
ZWxpc3Q7CiAgICAgVmVjdG9yPFN0cmluZz4gbGFuZ3VhZ2VzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvY2YvQ29va2llU3RvcmFnZVV0aWxzQ0YubW0gYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9jZi9Db29raWVTdG9yYWdlVXRpbHNDRi5tbQppbmRleCA2OTg3YTdmOWIyNWQwNTc1
YzBmOWE1NzNjNjdhZDdhMTY4MTRlM2JkLi5jYWE4NjM3YmFlOWE3ODM2ZmJkMGQxZmQ5NzIyMTYx
YjdkYjNkM2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9Db29raWVTdG9y
YWdlVXRpbHNDRi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jZi9Db29raWVTdG9yYWdl
VXRpbHNDRi5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yMywxNiArMjMsMTggQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KICAqLwogCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQ29va2llU3RvcmFn
ZVV0aWxzQ0YuaCIKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQ29va2llU3RvcmFnZVV0
aWxzQ0YuaCIKIAotI2luY2x1ZGUgPHBhbC9zcGkvY29jb2EvTlNVUkxDb25uZWN0aW9uU1BJLmg+
CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TVVJMQ29ubmVjdGlvblNQSS5oPgorI2ltcG9ydCA8
d3RmL1Byb2Nlc3NQcml2aWxlZ2UuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFJldGFpblB0
cjxDRkhUVFBDb29raWVTdG9yYWdlUmVmPiBjb29raWVTdG9yYWdlRnJvbUlkZW50aWZ5aW5nRGF0
YShjb25zdCBWZWN0b3I8dWludDhfdD4mIGRhdGEpCiB7CiAgICAgQVNTRVJUKCFkYXRhLmlzRW1w
dHkoKSk7CisgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6
Q2FuQWNjZXNzUmF3Q29va2llcykpOwogCiAgICAgYXV0byBjb29raWVTdG9yYWdlRGF0YSA9IGFk
b3B0Q0YoQ0ZEYXRhQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGRhdGEuZGF0YSgpLCBkYXRh
LnNpemUoKSkpOwogICAgIGF1dG8gY29va2llU3RvcmFnZSA9IGFkb3B0Q0YoQ0ZIVFRQQ29va2ll
U3RvcmFnZUNyZWF0ZUZyb21JZGVudGlmeWluZ0RhdGEoa0NGQWxsb2NhdG9yRGVmYXVsdCwgY29v
a2llU3RvcmFnZURhdGEuZ2V0KCkpKTsKQEAgLTQ1LDYgKzQ3LDggQEAgUmV0YWluUHRyPENGSFRU
UENvb2tpZVN0b3JhZ2VSZWY+IGNvb2tpZVN0b3JhZ2VGcm9tSWRlbnRpZnlpbmdEYXRhKGNvbnN0
IFZlY3RvcjwKIAogVmVjdG9yPHVpbnQ4X3Q+IGlkZW50aWZ5aW5nRGF0YUZyb21Db29raWVTdG9y
YWdlKENGSFRUUENvb2tpZVN0b3JhZ2VSZWYgY29va2llU3RvcmFnZSkKIHsKKyAgICBBU1NFUlQo
aGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVz
KSk7CisKICAgICBWZWN0b3I8dWludDhfdD4gcmVzdWx0OwogCiAgICAgYXV0byBjZkRhdGEgPSBh
ZG9wdENGKENGSFRUUENvb2tpZVN0b3JhZ2VDcmVhdGVJZGVudGlmeWluZ0RhdGEoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgY29va2llU3RvcmFnZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvaW9zL0NoaWxkUHJvY2Vzc0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9D
aGlsZFByb2Nlc3NJT1MubW0KaW5kZXggM2VjNTRiZjM0OGRmMjFjMTg0ZTdlZmUzYjU3NjdlMmRk
ZWI0MGZlYi4uZTkxYTAzZWE3ZjBiYTU4NWQwNTU2NzU3Mjc2MGI4YjM0ZjM1Y2IyZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0NoaWxkUHJvY2Vzc0lPUy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvQ2hpbGRQcm9jZXNzSU9TLm1tCkBAIC04MCw3ICs4MCwx
MCBAQCB2b2lkIENoaWxkUHJvY2Vzczo6aW5pdGlhbGl6ZVNhbmRib3goY29uc3QgQ2hpbGRQcm9j
ZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJgogICAgICAgICBpZiAoIXNhbmRib3hQcm9maWxl
UGF0aC5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIENTdHJpbmcgcHJvZmlsZVBhdGggPSBGaWxl
U3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oc2FuZGJveFByb2ZpbGVQYXRoKTsKICAg
ICAgICAgICAgIGNoYXIqIGVycm9yQnVmOworI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gK
KyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRp
b25zIgogICAgICAgICAgICAgaWYgKHNhbmRib3hfaW5pdF93aXRoX3BhcmFtZXRlcnMocHJvZmls
ZVBhdGguZGF0YSgpLCBTQU5EQk9YX05BTUVEX0VYVEVSTkFMLCBzYW5kYm94UGFyYW1ldGVycy5u
YW1lZFBhcmFtZXRlckFycmF5KCksICZlcnJvckJ1ZikpIHsKKyNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKICAgICAgICAgICAgICAgICBXVEZMb2dBbHdheXMoIiVzOiBDb3VsZG4ndCBpbml0
aWFsaXplIHNhbmRib3ggcHJvZmlsZSBbJXNdLCBlcnJvciAnJXMnXG4iLCBnZXRwcm9nbmFtZSgp
LCBwcm9maWxlUGF0aC5kYXRhKCksIGVycm9yQnVmKTsKICAgICAgICAgICAgICAgICBmb3IgKHNp
emVfdCBpID0gMCwgY291bnQgPSBzYW5kYm94UGFyYW1ldGVycy5jb3VudCgpOyBpICE9IGNvdW50
OyArK2kpCiAgICAgICAgICAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiJXM9JXNcbiIsIHNhbmRi
b3hQYXJhbWV0ZXJzLm5hbWUoaSksIHNhbmRib3hQYXJhbWV0ZXJzLnZhbHVlKGkpKTsKQEAgLTky
LDcgKzk1LDEwIEBAIHZvaWQgQ2hpbGRQcm9jZXNzOjppbml0aWFsaXplU2FuZGJveChjb25zdCBD
aGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmCiAgICAgfQogICAgIGNhc2UgU2Fu
ZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVyczo6VXNlU2FuZGJveFByb2ZpbGU6IHsKICAgICAg
ICAgY2hhciogZXJyb3JCdWY7CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAg
ICAgICAgIGlmIChzYW5kYm94X2luaXRfd2l0aF9wYXJhbWV0ZXJzKHNhbmRib3hQYXJhbWV0ZXJz
LnNhbmRib3hQcm9maWxlKCkudXRmOCgpLmRhdGEoKSwgMCwgc2FuZGJveFBhcmFtZXRlcnMubmFt
ZWRQYXJhbWV0ZXJBcnJheSgpLCAmZXJyb3JCdWYpKSB7CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCiAgICAgICAgICAgICBXVEZMb2dBbHdheXMoIiVzOiBDb3VsZG4ndCBpbml0aWFsaXpl
IHNhbmRib3ggcHJvZmlsZSwgZXJyb3IgJyVzJ1xuIiwgZ2V0cHJvZ25hbWUoKSwgZXJyb3JCdWYp
OwogICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0gc2FuZGJveFBhcmFtZXRl
cnMuY291bnQoKTsgaSAhPSBjb3VudDsgKytpKQogICAgICAgICAgICAgICAgIFdURkxvZ0Fsd2F5
cygiJXM9JXNcbiIsIHNhbmRib3hQYXJhbWV0ZXJzLm5hbWUoaSksIHNhbmRib3hQYXJhbWV0ZXJz
LnZhbHVlKGkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CmluZGV4IDI4ZTZjZDcwNzVkNzE1ZTQ3NzIyOTU3
YTc0N2ZlNjUwYTNlNzNlOGQuLjQwMWNmNjFkNjFjY2VmNWE1MzE4MWM4MDY5NWNlMjU2MmUxNzM4
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKKysrIGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzR1RLLnR4dApAQCAtMjgxLDYgKzI4MSwxMyBAQCBXZWJQcm9jZXNzL2d0
ay9XZWJQcm9jZXNzTWFpbkd0ay5jcHAKIFdlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVz
dElucHV0U3RyZWFtLmNwcAogV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcAogCitX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9ET01PYmplY3RDYWNoZS5jcHAg
QG5vLXVuaWZ5CitXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRE
T01Eb2N1bWVudC5jcHAgQG5vLXVuaWZ5CitXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
bGliL0RPTS9XZWJLaXRET01FbGVtZW50LmNwcCBAbm8tdW5pZnkKK1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTU5vZGUuY3BwIEBuby11bmlmeQorV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NT2JqZWN0LmNwcCBAbm8t
dW5pZnkKK1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTVBy
aXZhdGUuY3BwIEBuby11bmlmeQorCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGli
L1dlYktpdENvbnNvbGVNZXNzYWdlLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2dsaWIvV2ViS2l0RXh0ZW5zaW9uTWFuYWdlci5jcHAgQG5vLXVuaWZ5CiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdEZyYW1lLmNwcCBAbm8tdW5pZnkK
QEAgLTI5MSw3ICsyOTgsNiBAQCBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dl
YktpdFdlYkhpdFRlc3RSZXN1bHQuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJQYWdlLmNwcCBAbm8tdW5pZnkKIAogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9Db252ZXJ0VG9VVEY4U3RyaW5nLmNwcAotV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9ET01PYmplY3RDYWNoZS5jcHAKIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vR09iamVjdEV2ZW50TGlzdGVuZXIuY3Bw
CiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL0dPYmplY3ROb2RlRmlsdGVy
Q29uZGl0aW9uLmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2Jq
ZWN0WFBhdGhOU1Jlc29sdmVyLmNwcApAQCAtMzEyLDEwICszMTgsMTAgQEAgV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01TZWxlY3Rpb24uY3BwCiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVRva2VuTGlzdC5j
cHAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NV2lu
ZG93LmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01E
ZXByZWNhdGVkLmNwcAotV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01Eb2N1bWVudC5jcHAKK1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NRG9jdW1lbnRHdGsuY3BwCiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTURvY3VtZW50RnJhZ21lbnQuY3BwCiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50VHlwZS5jcHAKLVdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudC5jcHAKK1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudEd0ay5jcHAKIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRXZlbnQuY3BwCiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUV2ZW50VGFyZ2V0
LmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01GaWxl
LmNwcApAQCAtMzgyLDEyICszODgsMTEgQEAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01LZXlib2FyZEV2ZW50LmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01NZWRpYUxpc3QuY3BwCiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU1vdXNlRXZlbnQuY3BwCiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5hbWVkTm9kZU1hcC5jcHAKLVdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZS5jcHAKK1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUd0ay5jcHAK
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUZpbHRl
ci5jcHAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9k
ZUl0ZXJhdG9yLmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01Ob2RlTGlzdC5jcHAKLVdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NT2JqZWN0LmNwcAotV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01Qcml2YXRlLmNwcAorV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01Qcml2YXRlR3RrLmNwcAogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVJhbmdlLmNwcAogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01TdHlsZVNoZWV0LmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291
cmNlc1dQRS50eHQKaW5kZXggNzBkYmZkZmJjYzEzZWRjNWMwNTY5ODliMzZhY2U3OGE0ODY1OTRi
OC4uYmFiOWIwNjU2YzdlNGE1OGQyNTUwMDBjMTQxMmYzYWNlMGYxNTkzYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNX
UEUudHh0CkBAIC0xOTYsMTIgKzE5NiwyMCBAQCBVSVByb2Nlc3Mvd3BlL1dlYlBhc3RlYm9hcmRQ
cm94eVdQRS5jcHAKIFVJUHJvY2Vzcy93cGUvV2ViUHJlZmVyZW5jZXNXUEUuY3BwCiBVSVByb2Nl
c3Mvd3BlL1dlYlByb2Nlc3NQb29sV1BFLmNwcAogCitXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9nbGliL0RPTS9ET01PYmplY3RDYWNoZS5jcHAgQG5vLXVuaWZ5CitXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01Eb2N1bWVudC5jcHAgQG5vLXVuaWZ5
CitXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01FbGVtZW50
LmNwcCBAbm8tdW5pZnkKK1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dl
YktpdERPTU5vZGUuY3BwIEBuby11bmlmeQorV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z2xpYi9ET00vV2ViS2l0RE9NT2JqZWN0LmNwcCBAbm8tdW5pZnkKK1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTVByaXZhdGUuY3BwIEBuby11bmlmeQorCiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdENvbnNvbGVNZXNzYWdlLmNw
cCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0RXh0
ZW5zaW9uTWFuYWdlci5jcHAgQG5vLXVuaWZ5CiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9nbGliL1dlYktpdEZyYW1lLmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2dsaWIvV2ViS2l0U2NyaXB0V29ybGQuY3BwIEBuby11bmlmeQogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJFZGl0b3IuY3BwIEBuby11bmlmeQogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJFeHRlbnNpb24uY3BwIEBu
by11bmlmeQorV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRXZWJIaXRU
ZXN0UmVzdWx0LmNwcCBAbm8tdW5pZnkKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2ds
aWIvV2ViS2l0V2ViUGFnZS5jcHAgQG5vLXVuaWZ5CiAKIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvZ2xpYi9JbmplY3RlZEJ1bmRsZUdsaWIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dPcmlnaW5TdG9yZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dPcmlnaW5TdG9yZS5j
cHAKaW5kZXggOWRjYWQ5NGJmZjIyNmQ0YTA5ZTAyZTBjMWE1MDIxN2I1YTFhMGNmOC4uMDRjYmYy
MWIzZTdhYWE2MzFiNTI1M2E3ZDU5NjNkYzQ4N2U5OWQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV09yaWdp
blN0b3JlLmNwcApAQCAtNDEsMTMgKzQxLDEzIEBAIFdlYlNXT3JpZ2luU3RvcmU6OldlYlNXT3Jp
Z2luU3RvcmUoKQogewogfQogCi12b2lkIFdlYlNXT3JpZ2luU3RvcmU6OmFkZFRvU3RvcmUoY29u
c3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbikKK3ZvaWQgV2ViU1dPcmlnaW5TdG9yZTo6YWRkVG9T
dG9yZShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbikKIHsKICAgICBtX3N0b3JlLnNj
aGVkdWxlQWRkaXRpb24oY29tcHV0ZVNoYXJlZFN0cmluZ0hhc2gob3JpZ2luLnRvU3RyaW5nKCkp
KTsKICAgICBtX3N0b3JlLmZsdXNoUGVuZGluZ0NoYW5nZXMoKTsKIH0KIAotdm9pZCBXZWJTV09y
aWdpblN0b3JlOjpyZW1vdmVGcm9tU3RvcmUoY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbikK
K3ZvaWQgV2ViU1dPcmlnaW5TdG9yZTo6cmVtb3ZlRnJvbVN0b3JlKGNvbnN0IFNlY3VyaXR5T3Jp
Z2luRGF0YSYgb3JpZ2luKQogewogICAgIG1fc3RvcmUuc2NoZWR1bGVSZW1vdmFsKGNvbXB1dGVT
aGFyZWRTdHJpbmdIYXNoKG9yaWdpbi50b1N0cmluZygpKSk7CiAgICAgbV9zdG9yZS5mbHVzaFBl
bmRpbmdDaGFuZ2VzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dPcmlnaW5TdG9yZS5oIGIvU291cmNlL1dlYktpdC9TdG9yYWdl
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuaAppbmRleCA3ZjhjOTg3MTFj
MjVkYWU4NmZlYmVmYzA4OGMwOWI1Mjg5ZjE3ZmY5Li4yZDI5ZjU2MDk1ODRmMTAyMDllODA2Y2Qx
MDZhZDc2OGQwYjQzOTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dPcmlnaW5TdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV09yaWdpblN0b3JlLmgKQEAgLTMxLDEwICsz
MSw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TV09yaWdpblN0b3JlLmg+CiAjaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KIAotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgU2VjdXJpdHlPcmlnaW47
Ci19Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJTV1NlcnZlckNvbm5lY3Rpb247
CkBAIC01MCw4ICs0Niw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBzZW5kU3RvcmVI
YW5kbGUoV2ViU1dTZXJ2ZXJDb25uZWN0aW9uJik7CiAKLSAgICB2b2lkIGFkZFRvU3RvcmUoY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mKSBmaW5hbDsKLSAgICB2b2lkIHJlbW92ZUZyb21T
dG9yZShjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYpIGZpbmFsOworICAgIHZvaWQgYWRk
VG9TdG9yZShjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmKSBmaW5hbDsKKyAgICB2
b2lkIHJlbW92ZUZyb21TdG9yZShjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmKSBm
aW5hbDsKICAgICB2b2lkIGNsZWFyU3RvcmUoKSBmaW5hbDsKIAogICAgIC8vIFNoYXJlZFN0cmlu
Z0hhc2hTdG9yZTo6Q2xpZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNw
cAppbmRleCA3MmVmNjEzMTY5ZWVkZWEwODE5NWU4MzI0YjcxMzlmMTU3NmY0ZGI4Li4zOGMzOTkx
ZWVmZDFhZWViZWM1NTcyZjkwODFhYzRkYTE2ZGE2ZTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpzdGFydEZldGNoKHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgU2VydmljZVdv
cmtlclJlCiB7CiAgICAgYXV0byogd29ya2VyID0gc2VydmVyKCkuYWN0aXZlV29ya2VyRnJvbVJl
Z2lzdHJhdGlvbklEKHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKICAgICBp
ZiAoIXdvcmtlcikgewotICAgICAgICBTV1NFUlZFUkNPTk5FQ1RJT05fUkVMRUFTRV9MT0dfRVJS
T1JfSUZfQUxMT1dFRCgic3RhcnRGZXRjaDogZmV0Y2hJZGVudGlmaWVyOiAlbGx1IC0+IERpZE5v
dEhhbmRsZSBiZWNhdXNlIG5vIGFjdGl2ZSB3b3JrZXIiLCBmZXRjaElkZW50aWZpZXIpOworICAg
ICAgICBTV1NFUlZFUkNPTk5FQ1RJT05fUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgic3Rh
cnRGZXRjaDogZmV0Y2hJZGVudGlmaWVyOiAlIiBQUkl1NjQgIiAtPiBEaWROb3RIYW5kbGUgYmVj
YXVzZSBubyBhY3RpdmUgd29ya2VyIiwgZmV0Y2hJZGVudGlmaWVyKTsKICAgICAgICAgbV9jb250
ZW50Q29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpE
aWROb3RIYW5kbGUgeyB9LCBmZXRjaElkZW50aWZpZXIpOwogICAgICAgICByZXR1cm47CiAgICAg
fQpAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydEZl
dGNoKHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlCiAgICAgICAgICAg
ICByZXR1cm47CiAKICAgICAgICAgaWYgKCFzdWNjZXNzKSB7Ci0gICAgICAgICAgICBTV1NFUlZF
UkNPTk5FQ1RJT05fUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgic3RhcnRGZXRjaDogZmV0
Y2hJZGVudGlmaWVyOiAlbGx1IC0+IERpZE5vdEhhbmRsZSBiZWNhdXNlIHdvcmtlciBkaWQgbm90
IGJlY29tZSBhY3RpdmF0ZWQiLCBmZXRjaElkZW50aWZpZXIpOworICAgICAgICAgICAgU1dTRVJW
RVJDT05ORUNUSU9OX1JFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoInN0YXJ0RmV0Y2g6IGZl
dGNoSWRlbnRpZmllcjogJSIgUFJJdTY0ICIgLT4gRGlkTm90SGFuZGxlIGJlY2F1c2Ugd29ya2Vy
IGRpZCBub3QgYmVjb21lIGFjdGl2YXRlZCIsIGZldGNoSWRlbnRpZmllcik7CiAgICAgICAgICAg
ICBtX2NvbnRlbnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50
RmV0Y2g6OkRpZE5vdEhhbmRsZSB7IH0sIGZldGNoSWRlbnRpZmllcik7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KQEAgLTE2NSwxMCArMTY1LDEwIEBAIHZvaWQgV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpzdGFydEZldGNoKHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgU2VydmljZVdv
cmtlclJlCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBpZiAoY29udGV4
dENvbm5lY3Rpb24pIHsKLSAgICAgICAgICAgICAgICBTV1NFUlZFUkNPTk5FQ1RJT05fUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgic3RhcnRGZXRjaDogU3RhcnRpbmcgZmV0Y2ggJWxsdSB2aWEgc2Vy
dmljZSB3b3JrZXIgJWxsdSIsIGZldGNoSWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZp
ZXIudG9VSW50NjQoKSk7CisgICAgICAgICAgICAgICAgU1dTRVJWRVJDT05ORUNUSU9OX1JFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0RmV0Y2g6IFN0YXJ0aW5nIGZldGNoICUiIFBSSXU2NCAi
IHZpYSBzZXJ2aWNlIHdvcmtlciAlIiBQUkl1NjQsIGZldGNoSWRlbnRpZmllciwgc2VydmljZVdv
cmtlcklkZW50aWZpZXIudG9VSW50NjQoKSk7CiAgICAgICAgICAgICAgICAgc2VuZFRvQ29udGV4
dFByb2Nlc3MoKmNvbnRleHRDb25uZWN0aW9uLCBNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb246OlN0YXJ0RmV0Y2ggeyB0aGlzLT5pZGVudGlmaWVyKCksIGZldGNoSWRlbnRp
Zmllciwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHJlcXVlc3QsIG9wdGlvbnMsIGZvcm1EYXRh
LCByZWZlcnJlciB9KTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgU1dT
RVJWRVJDT05ORUNUSU9OX1JFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoInN0YXJ0RmV0Y2g6
IGZldGNoSWRlbnRpZmllcjogJWxsdSAtPiBEaWROb3RIYW5kbGUgYmVjYXVzZSBmYWlsZWQgdG8g
cnVuIHNlcnZpY2Ugd29ya2VyIiwgZmV0Y2hJZGVudGlmaWVyKTsKKyAgICAgICAgICAgICAgICBT
V1NFUlZFUkNPTk5FQ1RJT05fUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgic3RhcnRGZXRj
aDogZmV0Y2hJZGVudGlmaWVyOiAlIiBQUkl1NjQgIiAtPiBEaWROb3RIYW5kbGUgYmVjYXVzZSBm
YWlsZWQgdG8gcnVuIHNlcnZpY2Ugd29ya2VyIiwgZmV0Y2hJZGVudGlmaWVyKTsKICAgICAgICAg
ICAgICAgICBtX2NvbnRlbnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2Vy
Q2xpZW50RmV0Y2g6OkRpZE5vdEhhbmRsZSB7IH0sIGZldGNoSWRlbnRpZmllcik7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0pOwpAQCAtMjEyLDcgKzIxMiw3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBkCiAKIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzY2hlZHVsZUpvYkluU2VydmVy
KFNlcnZpY2VXb3JrZXJKb2JEYXRhJiYgam9iRGF0YSkKIHsKLSAgICBhdXRvIHNlY3VyaXR5T3Jp
Z2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShqb2JEYXRhLnNjcmlwdFVSTCk7CisgICAgYXV0
byBzZWN1cml0eU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVVSTChqb2JEYXRhLnNj
cmlwdFVSTCk7CiAgICAgaWYgKCFTdG9yYWdlUHJvY2Vzczo6c2luZ2xldG9uKCkuc2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbkZvck9yaWdpbihzZWN1cml0eU9yaWdpbikpCiAgICAgICAgIFN0b3Jh
Z2VQcm9jZXNzOjpzaW5nbGV0b24oKS5jcmVhdGVTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKHNl
Y3VyaXR5T3JpZ2luLCBzZXJ2ZXIoKS5zZXNzaW9uSUQoKSk7CiAKQEAgLTI0MCwxOSArMjQwLDE5
IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0Y2hGb3JtRGF0YSh1
aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIGNvCiAKIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
OjpkaWRGaW5pc2hGZXRjaCh1aW50NjRfdCBmZXRjaElkZW50aWZpZXIpCiB7Ci0gICAgU1dTRVJW
RVJDT05ORUNUSU9OX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZEZpbmlzaEZldGNoOiBmZXRj
aElkZW50aWZpZXI6ICVsbHUiLCBmZXRjaElkZW50aWZpZXIpOworICAgIFNXU0VSVkVSQ09OTkVD
VElPTl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRGaW5pc2hGZXRjaDogZmV0Y2hJZGVudGlm
aWVyOiAlIiBQUkl1NjQsIGZldGNoSWRlbnRpZmllcik7CiAgICAgbV9jb250ZW50Q29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpEaWRGaW5pc2ggeyB9
LCBmZXRjaElkZW50aWZpZXIpOwogfQogCiB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlk
RmFpbEZldGNoKHVpbnQ2NF90IGZldGNoSWRlbnRpZmllcikKIHsKLSAgICBTV1NFUlZFUkNPTk5F
Q1RJT05fUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgiZGlkRmFpbEZldGNoOiBmZXRjaElk
ZW50aWZpZXI6ICVsbHUiLCBmZXRjaElkZW50aWZpZXIpOworICAgIFNXU0VSVkVSQ09OTkVDVElP
Tl9SRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJkaWRGYWlsRmV0Y2g6IGZldGNoSWRlbnRp
ZmllcjogJSIgUFJJdTY0LCBmZXRjaElkZW50aWZpZXIpOwogICAgIG1fY29udGVudENvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkRmFpbCB7IH0s
IGZldGNoSWRlbnRpZmllcik7CiB9CiAKIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRO
b3RIYW5kbGVGZXRjaCh1aW50NjRfdCBmZXRjaElkZW50aWZpZXIpCiB7Ci0gICAgU1dTRVJWRVJD
T05ORUNUSU9OX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZE5vdEhhbmRsZUZldGNoOiBmZXRj
aElkZW50aWZpZXI6ICVsbHUiLCBmZXRjaElkZW50aWZpZXIpOworICAgIFNXU0VSVkVSQ09OTkVD
VElPTl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWROb3RIYW5kbGVGZXRjaDogZmV0Y2hJZGVu
dGlmaWVyOiAlIiBQUkl1NjQsIGZldGNoSWRlbnRpZmllcik7CiAgICAgbV9jb250ZW50Q29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpEaWROb3RIYW5k
bGUgeyB9LCBmZXRjaElkZW50aWZpZXIpOwogfQogCkBAIC0yODcsNyArMjg3LDcgQEAgdm9pZCBX
ZWJTV1NlcnZlckNvbm5lY3Rpb246OmdldFJlZ2lzdHJhdGlvbnModWludDY0X3QgcmVnaXN0cmF0
aW9uTWF0Y2hSZXF1ZXN0SWQKIAogdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnJlZ2lzdGVy
U2VydmljZVdvcmtlckNsaWVudChTZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIFNlcnZp
Y2VXb3JrZXJDbGllbnREYXRhJiYgZGF0YSwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4mIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXIpCiB7Ci0gICAgYXV0byBjbGllbnRPcmlnaW4gPSBDbGllbnRPcmln
aW4geyBXVEZNb3ZlKHRvcE9yaWdpbiksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5
T3JpZ2luKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoZGF0YS51cmwpKSB9OworICAgIGF1dG8gY2xp
ZW50T3JpZ2luID0gQ2xpZW50T3JpZ2luIHsgV1RGTW92ZSh0b3BPcmlnaW4pLCBTZWN1cml0eU9y
aWdpbkRhdGE6OmZyb21VUkwoZGF0YS51cmwpIH07CiAgICAgbV9jbGllbnRPcmlnaW5zLmFkZChk
YXRhLmlkZW50aWZpZXIsIGNsaWVudE9yaWdpbik7CiAgICAgc2VydmVyKCkucmVnaXN0ZXJTZXJ2
aWNlV29ya2VyQ2xpZW50KFdURk1vdmUoY2xpZW50T3JpZ2luKSwgV1RGTW92ZShkYXRhKSwgY29u
dHJvbGxpbmdTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCmluZGV4IGZj
Y2M4MzdlYzYwNDExNDY3ODE4OWE3YjQzOGNlMmE5NWViNmYyM2IuLjAwYjdmYzdjODM5OGEzYjMy
OGRmNThmYjI2OGEwN2E5MmQ4MThhZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJTdG9yYWdlUHJvY2Vzcy5oIgogI2luY2x1
ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YS5oPgpAQCAtMzYsOCArMzcsOCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKFJlZjxTZWN1cml0eU9yaWdpbj4mJiBvcmln
aW4sIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKLSAgICA6IFNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbihXVEZNb3ZlKG9yaWdpbikpCitXZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb246OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihjb25zdCBTZWN1cml0eU9y
aWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rp
b24pCisgICAgOiBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24oc2VjdXJpdHlPcmlnaW4pCiAg
ICAgLCBtX2lwY0Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKIHsKIH0KQEAgLTEwMiw2
ICsxMDMsMTYgQEAgdm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmRpZEZpbmlz
aFNraXBXYWl0aW5nKHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAgICAgc2VuZChNZXNzYWdlczo6V2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OkRpZEZpbmlzaFNraXBXYWl0aW5nIHsgY2FsbGJh
Y2tJRCB9KTsKIH0KIAordm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmNvbm5l
Y3Rpb25NYXlOb0xvbmdlckJlTmVlZGVkKCkKK3sKKyAgICBTdG9yYWdlUHJvY2Vzczo6c2luZ2xl
dG9uKCkuc3dDb250ZXh0Q29ubmVjdGlvbk1heU5vTG9uZ2VyQmVOZWVkZWQoKnRoaXMpOworfQor
Cit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dGVybWluYXRlKCkKK3sKKyAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6VGVybWluYXRl
UHJvY2VzcygpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uLmgKaW5kZXggZDQ2YWY1YjcyZTk5MzQ3MGVhNWE4MmNiNWJkMGJlOWU3Yjdh
ZjZhMy4uZTljMzk4OGM5MzZlYjhlYmQ4MjgxZDJiN2MzMTgyYzMyOGQ5OTUyZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAtNDcsOCAr
NDcsMTAgQEAgcHVibGljOgogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsK
IAorICAgIHZvaWQgdGVybWluYXRlKCk7CisKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgV2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiwg
UmVmPElQQzo6Q29ubmVjdGlvbj4mJik7CisgICAgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFJlZjxJUEM6OkNvbm5lY3Rp
b24+JiYpOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlU2VuZGVyCiAgICAgSVBDOjpDb25uZWN0aW9u
KiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGZpbmFsOwpAQCAtNjUsNiArNjcsOCBAQCBwcml2
YXRlOgogICAgIHZvaWQgY2xhaW1Db21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIp
IGZpbmFsOwogICAgIHZvaWQgZGlkRmluaXNoU2tpcFdhaXRpbmcodWludDY0X3QgY2FsbGJhY2tJ
RCkgZmluYWw7CiAKKyAgICB2b2lkIGNvbm5lY3Rpb25NYXlOb0xvbmdlckJlTmVlZGVkKCkgZmlu
YWw7CisKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2lwY0Nvbm5lY3Rpb247CiAgICAgCiB9
OyAvLyBjbGFzcyBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHAKaW5kZXggZTAxYmJiNDNlOWM3
YmRhZmZiZGFjOGIxMWYxNTMzOTZhODViY2M4ZC4uZDkwYjNmYmFhZTBjMWFiMGUwY2Y4YTNkNWYz
Y2ZhZWNhZTE3ODVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9T
dG9yYWdlUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9y
YWdlUHJvY2Vzcy5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJTdG9yYWdlUHJvY2Vz
cy5oIgogCiAjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJMb2dn
aW5nLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNp
bmNsdWRlICJTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVByb2Nl
c3NQcm94eU1lc3NhZ2VzLmgiCkBAIC00NCw2ICs0NSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9T
ZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEVu
Y29kaW5nLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9BbGdv
cml0aG1zLmg+CiAjaW5jbHVkZSA8d3RmL0NhbGxiYWNrQWdncmVnYXRvci5oPgogI2luY2x1ZGUg
PHd0Zi9Dcm9zc1RocmVhZFRhc2suaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgpAQCAt
ODksNyArOTEsNyBAQCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24qIFN0b3JhZ2VQcm9j
ZXNzOjpjb25uZWN0aW9uVG9Db250ZXh0UHJvY2Vzc0Zyb21JUAogewogICAgIGZvciAoYXV0byYg
c2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiA6IG1fc2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbnMu
dmFsdWVzKCkpIHsKICAgICAgICAgaWYgKHNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24tPmlwY0Nv
bm5lY3Rpb24oKSA9PSAmY29ubmVjdGlvbikKLSAgICAgICAgICAgIHJldHVybiBzZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uLnB0cigpOworICAgICAgICAgICAgcmV0dXJuIHNlcnZlclRvQ29udGV4
dENvbm5lY3Rpb24uZ2V0KCk7CiAgICAgfQogICAgIHJldHVybiBudWxscHRyOwogfQpAQCAtMTEx
LDMyICsxMTMsMjUgQEAgdm9pZCBTdG9yYWdlUHJvY2Vzczo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uKQogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIHZvaWQgU3RvcmFn
ZVByb2Nlc3M6OmNvbm5lY3Rpb25Ub0NvbnRleHRQcm9jZXNzV2FzQ2xvc2VkKFJlZjxXZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24+JiYgc2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbikKIHsK
LSAgICBSZWY8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbiA9IHNlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24tPm9yaWdpbigpOwotICAgIGJvb2wgc2hvdWxkUmVsYXVuY2ggPSBuZWVkc1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb25Gb3JPcmlnaW4ob3JpZ2luKTsKKyAgICBhdXRvJiBzZWN1cml0eU9yaWdp
biA9IHNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24tPnNlY3VyaXR5T3JpZ2luKCk7CiAKICAgICBz
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLT5jb25uZWN0aW9uQ2xvc2VkKCk7Ci0gICAgbV9zZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9ucy5yZW1vdmUob3JpZ2luLnB0cigpKTsKKyAgICBtX3NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb25zLnJlbW92ZShzZWN1cml0eU9yaWdpbik7CiAKICAgICBmb3Ig
KGF1dG8mIHN3U2VydmVyIDogbV9zd1NlcnZlcnMudmFsdWVzKCkpCi0gICAgICAgIHN3U2VydmVy
LT5tYXJrQWxsV29ya2Vyc0FzVGVybWluYXRlZCgpOworICAgICAgICBzd1NlcnZlci0+bWFya0Fs
bFdvcmtlcnNGb3JPcmlnaW5Bc1Rlcm1pbmF0ZWQoc2VjdXJpdHlPcmlnaW4pOwogCi0gICAgaWYg
KHNob3VsZFJlbGF1bmNoKQotICAgICAgICBjcmVhdGVTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
KG9yaWdpbiwgc3RkOjpudWxsb3B0KTsKKyAgICBpZiAobmVlZHNTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uRm9yT3JpZ2luKHNlY3VyaXR5T3JpZ2luKSkgeworICAgICAgICBSRUxFQVNFX0xPRyhT
ZXJ2aWNlV29ya2VyLCAiQ29ubmVjdGlvbiB0byBzZXJ2aWNlIHdvcmtlciBwcm9jZXNzIHdhcyBj
bG9zZWQgYnV0IGlzIHN0aWxsIG5lZWRlZCwgcmVsYXVuY2hpbmcgaXQiKTsKKyAgICAgICAgY3Jl
YXRlU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihzZWN1cml0eU9yaWdpbiwgc3RkOjpudWxsb3B0
KTsKKyAgICB9CiB9CiAKLS8vIFRoZSBydWxlIGlzIHRoYXQgd2UgbmVlZCBhIGNvbnRleHQgcHJv
Y2VzcyAoYW5kIGEgY29ubmVjdGlvbiB0byBpdCkgYXMgbG9uZyBhcyB3ZSBoYXZlIFNXU2VydmVy
Q29ubmVjdGlvbnMgdG8gcmVndWxhciBXZWJQcm9jZXNzZXMuCi1ib29sIFN0b3JhZ2VQcm9jZXNz
OjpuZWVkc1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb25Gb3JPcmlnaW4oU2VjdXJpdHlPcmlnaW4m
IG9yaWdpbikgY29uc3QKK2Jvb2wgU3RvcmFnZVByb2Nlc3M6Om5lZWRzU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbkZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3Jp
Z2luKSBjb25zdAogewotICAgIGlmIChtX3N3U2VydmVyQ29ubmVjdGlvbnMuaXNFbXB0eSgpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBhdXRvKiBjb250ZXh0Q29ubmVjdGlvbiA9IG1f
c2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbnMuZ2V0KCZvcmlnaW4pOwotCi0gICAgLy8gSWYgdGhl
IGxhc3QgU1dTZXJ2ZXJDb25uZWN0aW9uIGlzIHRvIHRoZSBjb250ZXh0IHByb2Nlc3MsIHRoZW4g
d2Ugbm8gbG9uZ2VyIG5lZWQgdGhlIGNvbnRleHQgY29ubmVjdGlvbi4KLSAgICBpZiAobV9zd1Nl
cnZlckNvbm5lY3Rpb25zLnNpemUoKSA9PSAxICYmIGNvbnRleHRDb25uZWN0aW9uICYmICZtX3N3
U2VydmVyQ29ubmVjdGlvbnMuYmVnaW4oKS0+dmFsdWUtPmlwY0Nvbm5lY3Rpb24oKSA9PSBjb250
ZXh0Q29ubmVjdGlvbi0+aXBjQ29ubmVjdGlvbigpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gV1RGOjphbnlPZihtX3N3U2VydmVycy52YWx1
ZXMoKSwgWyZdKGF1dG8mIHN3U2VydmVyKSB7CisgICAgICAgIHJldHVybiBzd1NlcnZlci0+bmVl
ZHNTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uRm9yT3JpZ2luKHNlY3VyaXR5T3JpZ2luKTsKKyAg
ICB9KTsKIH0KICNlbmRpZgogCkBAIC0yMTYsNiArMjExLDggQEAgdm9pZCBTdG9yYWdlUHJvY2Vz
czo6aW5pdGlhbGl6ZVdlYnNpdGVEYXRhU3RvcmUoY29uc3QgU3RvcmFnZVByb2Nlc3NDcmVhdGlv
blBhcmEKIAogICAgIGZvciAoYXV0byYgc2NoZW1lIDogcGFyYW1ldGVycy51cmxTY2hlbWVzU2Vy
dmljZVdvcmtlcnNDYW5IYW5kbGUpCiAgICAgICAgIHJlZ2lzdGVyVVJMU2NoZW1lU2VydmljZVdv
cmtlcnNDYW5IYW5kbGUoc2NoZW1lKTsKKworICAgIG1fc2hvdWxkRGlzYWJsZVNlcnZpY2VXb3Jr
ZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSA9IHBhcmFtZXRlcnMuc2hvdWxkRGlzYWJsZVNlcnZp
Y2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheTsKICNlbmRpZgogfQogCkBAIC0yNTQsNyAr
MjUxLDcgQEAgdm9pZCBTdG9yYWdlUHJvY2Vzczo6cGVyZm9ybU5leHRTdG9yYWdlVGFzaygpCiAg
ICAgdGFzay5wZXJmb3JtVGFzaygpOwogfQogCi12b2lkIFN0b3JhZ2VQcm9jZXNzOjpjcmVhdGVT
dG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbihib29sIGlzU2VydmljZVdvcmtlclByb2Nlc3Ms
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIG9yaWdpbkRhdGEpCit2b2lkIFN0b3JhZ2VQ
cm9jZXNzOjpjcmVhdGVTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbihib29sIGlzU2Vydmlj
ZVdvcmtlclByb2Nlc3MsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIHNlY3VyaXR5T3Jp
Z2luKQogewogI2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQogICAgIElQQzo6Q29ubmVjdGlv
bjo6U29ja2V0UGFpciBzb2NrZXRQYWlyID0gSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVQbGF0Zm9y
bUNvbm5lY3Rpb24oKTsKQEAgLTI3OCw5ICsyNzUsOCBAQCB2b2lkIFN0b3JhZ2VQcm9jZXNzOjpj
cmVhdGVTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbihib29sIGlzU2VydmljZVdvcmtlclBy
bwogICAgIGlmIChpc1NlcnZpY2VXb3JrZXJQcm9jZXNzICYmICFtX3N0b3JhZ2VUb1dlYlByb2Nl
c3NDb25uZWN0aW9ucy5pc0VtcHR5KCkpIHsKICAgICAgICAgQVNTRVJUKHBhcmVudFByb2Nlc3NI
YXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQoKSk7CiAgICAgICAgIEFTU0VSVChtX3dhaXRpbmdG
b3JTZXJ2ZXJUb0NvbnRleHRQcm9jZXNzQ29ubmVjdGlvbik7Ci0gICAgICAgIGF1dG8gb3JpZ2lu
ID0gb3JpZ2luRGF0YS5zZWN1cml0eU9yaWdpbigpOwotICAgICAgICBhdXRvIGNvbnRleHRDb25u
ZWN0aW9uID0gV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpjcmVhdGUob3JpZ2luLmNv
cHlSZWYoKSwgbV9zdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbnMubGFzdCgpLT5jb25uZWN0
aW9uKCkpOwotICAgICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fc2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbnMuYWRkKFdURk1vdmUob3JpZ2luKSwgY29udGV4dENvbm5lY3Rpb24uY29weVJlZigpKTsK
KyAgICAgICAgYXV0byBjb250ZXh0Q29ubmVjdGlvbiA9IFdlYlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbjo6Y3JlYXRlKHNlY3VyaXR5T3JpZ2luLCBtX3N0b3JhZ2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9ucy5sYXN0KCktPmNvbm5lY3Rpb24oKSk7CisgICAgICAgIGF1dG8gYWRkUmVzdWx0ID0g
bV9zZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9ucy5hZGQoV1RGTW92ZShzZWN1cml0eU9yaWdpbiks
IGNvbnRleHRDb25uZWN0aW9uLmNvcHlSZWYoKSk7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQoYWRk
UmVzdWx0LCBhZGRSZXN1bHQuaXNOZXdFbnRyeSk7CiAKICAgICAgICAgbV93YWl0aW5nRm9yU2Vy
dmVyVG9Db250ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24gPSBmYWxzZTsKQEAgLTM0Myw3ICszMzksNyBA
QCB2b2lkIFN0b3JhZ2VQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaQogI2VuZGlmCiB9CiAKLXZvaWQgU3RvcmFnZVByb2Nl
c3M6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIGNvbnN0IFZlY3Rv
cjxTZWN1cml0eU9yaWdpbkRhdGE+JiBzZWN1cml0eU9yaWdpbkRhdGFzLCB1aW50NjRfdCBjYWxs
YmFja0lEKQordm9pZCBTdG9yYWdlUHJvY2Vzczo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5z
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gd2Vi
c2l0ZURhdGFUeXBlcywgY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4mIHNlY3VyaXR5
T3JpZ2lucywgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKICAgICBhdXRvIGNhbGxiYWNrQWdncmVn
YXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFt0aGlzLCBjYWxsYmFja0lEXSgpIHsK
ICAgICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6U3RvcmFn
ZVByb2Nlc3NQcm94eTo6RGlkRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKGNhbGxiYWNrSUQp
LCAwKTsKQEAgLTM1MiwxNCArMzQ4LDE0IEBAIHZvaWQgU3RvcmFnZVByb2Nlc3M6OmRlbGV0ZVdl
YnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvCiAjaWYg
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIGlmICh3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5z
KFdlYnNpdGVEYXRhVHlwZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbnMpKSB7CiAgICAgICAg
IGF1dG8mIHNlcnZlciA9IHN3U2VydmVyRm9yU2Vzc2lvbihzZXNzaW9uSUQpOwotICAgICAgICBm
b3IgKGF1dG8mIG9yaWdpbkRhdGEgOiBzZWN1cml0eU9yaWdpbkRhdGFzKQotICAgICAgICAgICAg
c2VydmVyLmNsZWFyKG9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4oKSwgW2NhbGxiYWNrQWdncmVn
YXRvciA9IGNhbGxiYWNrQWdncmVnYXRvci5jb3B5UmVmKCldIHsgfSk7CisgICAgICAgIGZvciAo
YXV0byYgc2VjdXJpdHlPcmlnaW4gOiBzZWN1cml0eU9yaWdpbnMpCisgICAgICAgICAgICBzZXJ2
ZXIuY2xlYXIoc2VjdXJpdHlPcmlnaW4sIFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBjYWxsYmFja0Fn
Z3JlZ2F0b3IuY29weVJlZigpXSB7IH0pOwogICAgIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCiAgICAgaWYgKCF3ZWJzaXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNp
dGVEYXRhVHlwZTo6SW5kZXhlZERCRGF0YWJhc2VzKSkKLSAgICAgICAgaWRiU2VydmVyKHNlc3Np
b25JRCkuY2xvc2VBbmREZWxldGVEYXRhYmFzZXNGb3JPcmlnaW5zKHNlY3VyaXR5T3JpZ2luRGF0
YXMsIFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBXVEZNb3ZlKGNhbGxiYWNrQWdncmVnYXRvcildIHsg
fSk7CisgICAgICAgIGlkYlNlcnZlcihzZXNzaW9uSUQpLmNsb3NlQW5kRGVsZXRlRGF0YWJhc2Vz
Rm9yT3JpZ2lucyhzZWN1cml0eU9yaWdpbnMsIFtjYWxsYmFja0FnZ3JlZ2F0b3IgPSBXVEZNb3Zl
KGNhbGxiYWNrQWdncmVnYXRvcildIHsgfSk7CiAjZW5kaWYKIH0KIApAQCAtNDMyLDYgKzQyOCwx
MSBAQCB2b2lkIFN0b3JhZ2VQcm9jZXNzOjpkaWRHZXRTYW5kYm94RXh0ZW5zaW9uc0ZvckJsb2JG
aWxlcyh1aW50NjRfdCByZXF1ZXN0SUQsIFNhbgogU1dTZXJ2ZXImIFN0b3JhZ2VQcm9jZXNzOjpz
d1NlcnZlckZvclNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIEFTU0VS
VChzZXNzaW9uSUQuaXNWYWxpZCgpKTsKKworICAgIC8vIFVzZSB0aGUgc2FtZSBTV1NlcnZlciBm
b3IgYWxsIGVwaGVtZXJhbCBzZXNzaW9ucy4KKyAgICBpZiAoc2Vzc2lvbklELmlzRXBoZW1lcmFs
KCkpCisgICAgICAgIHNlc3Npb25JRCA9IFBBTDo6U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vz
c2lvbklEKCk7CisKICAgICBhdXRvIHJlc3VsdCA9IG1fc3dTZXJ2ZXJzLmFkZChzZXNzaW9uSUQs
IG51bGxwdHIpOwogICAgIGlmICghcmVzdWx0LmlzTmV3RW50cnkpIHsKICAgICAgICAgQVNTRVJU
KHJlc3VsdC5pdGVyYXRvci0+dmFsdWUpOwpAQCAtNDQ0LDYgKzQ0NSw4IEBAIFNXU2VydmVyJiBT
dG9yYWdlUHJvY2Vzczo6c3dTZXJ2ZXJGb3JTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKICAgICBBU1NFUlQoc2Vzc2lvbklELmlzRXBoZW1lcmFsKCkgfHwgIXBhdGguaXNFbXB0eSgp
KTsKIAogICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBzdGQ6Om1ha2VfdW5pcXVlPFNXU2Vy
dmVyPihtYWtlVW5pcXVlUmVmPFdlYlNXT3JpZ2luU3RvcmU+KCksIFdURk1vdmUocGF0aCksIHNl
c3Npb25JRCk7CisgICAgaWYgKG1fc2hvdWxkRGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVy
bWluYXRpb25EZWxheSkKKyAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS0+ZGlzYWJsZVNl
cnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSgpOwogICAgIHJldHVybiAqcmVzdWx0
Lml0ZXJhdG9yLT52YWx1ZTsKIH0KIApAQCAtNDUyLDIxICs0NTUsMjEgQEAgV2ViU1dPcmlnaW5T
dG9yZSYgU3RvcmFnZVByb2Nlc3M6OnN3T3JpZ2luU3RvcmVGb3JTZXNzaW9uKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb24KICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViU1dPcmlnaW5TdG9yZSY+KHN3
U2VydmVyRm9yU2Vzc2lvbihzZXNzaW9uSUQpLm9yaWdpblN0b3JlKCkpOwogfQogCi1XZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24qIFN0b3JhZ2VQcm9jZXNzOjpzZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uRm9yT3JpZ2luKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4p
CitXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24qIFN0b3JhZ2VQcm9jZXNzOjpzZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2Vj
dXJpdHlPcmlnaW4pCiB7Ci0gICAgcmV0dXJuIG1fc2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbnMu
Z2V0KCZjb25zdF9jYXN0PFNlY3VyaXR5T3JpZ2luJj4ob3JpZ2luKSk7CisgICAgcmV0dXJuIG1f
c2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbnMuZ2V0KHNlY3VyaXR5T3JpZ2luKTsKIH0KIAotdm9p
ZCBTdG9yYWdlUHJvY2Vzczo6Y3JlYXRlU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihjb25zdCBT
ZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBzdGQ6Om9wdGlvbmFsPFBBTDo6U2Vzc2lvbklEPiBzZXNz
aW9uSUQpCit2b2lkIFN0b3JhZ2VQcm9jZXNzOjpjcmVhdGVTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIHN0ZDo6b3B0aW9u
YWw8UEFMOjpTZXNzaW9uSUQ+IHNlc3Npb25JRCkKIHsKICAgICBpZiAobV93YWl0aW5nRm9yU2Vy
dmVyVG9Db250ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsKICAgICAKICAg
ICBtX3dhaXRpbmdGb3JTZXJ2ZXJUb0NvbnRleHRQcm9jZXNzQ29ubmVjdGlvbiA9IHRydWU7CiAg
ICAgaWYgKHNlc3Npb25JRCkKLSAgICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2Vu
ZChNZXNzYWdlczo6U3RvcmFnZVByb2Nlc3NQcm94eTo6RXN0YWJsaXNoV29ya2VyQ29udGV4dENv
bm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzRm9yRXhwbGljaXRTZXNzaW9uKFNlY3VyaXR5T3JpZ2lu
RGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKG9yaWdpbiksICpzZXNzaW9uSUQpLCAwKTsKKyAgICAg
ICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6U3RvcmFnZVByb2Nl
c3NQcm94eTo6RXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNz
Rm9yRXhwbGljaXRTZXNzaW9uKHNlY3VyaXR5T3JpZ2luLCAqc2Vzc2lvbklEKSwgMCk7CiAgICAg
ZWxzZQotICAgICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpT
dG9yYWdlUHJvY2Vzc1Byb3h5OjpFc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvU3Rv
cmFnZVByb2Nlc3MoU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4ob3JpZ2lu
KSksIDApOworICAgICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpTdG9yYWdlUHJvY2Vzc1Byb3h5OjpFc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRv
U3RvcmFnZVByb2Nlc3Moc2VjdXJpdHlPcmlnaW4pLCAwKTsKIH0KIAogdm9pZCBTdG9yYWdlUHJv
Y2Vzczo6ZGlkRmFpbEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllcikKQEAgLTUzMSw2ICs1
MzQsMjkgQEAgdm9pZCBTdG9yYWdlUHJvY2Vzczo6dW5yZWdpc3RlclNXU2VydmVyQ29ubmVjdGlv
bihXZWJTV1NlcnZlckNvbm5lY3Rpb24mIGNvbm5lY3QKICAgICBtX3N3U2VydmVyQ29ubmVjdGlv
bnMucmVtb3ZlKGNvbm5lY3Rpb24uaWRlbnRpZmllcigpKTsKICAgICBzd09yaWdpblN0b3JlRm9y
U2Vzc2lvbihjb25uZWN0aW9uLnNlc3Npb25JRCgpKS51bnJlZ2lzdGVyU1dTZXJ2ZXJDb25uZWN0
aW9uKGNvbm5lY3Rpb24pOwogfQorCit2b2lkIFN0b3JhZ2VQcm9jZXNzOjpzd0NvbnRleHRDb25u
ZWN0aW9uTWF5Tm9Mb25nZXJCZU5lZWRlZChXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24m
IHNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24pCit7CisgICAgYXV0byYgc2VjdXJpdHlPcmlnaW4g
PSBzZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLnNlY3VyaXR5T3JpZ2luKCk7CisgICAgaWYgKG5l
ZWRzU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbkZvck9yaWdpbihzZWN1cml0eU9yaWdpbikpCisg
ICAgICAgIHJldHVybjsKKworICAgIFJFTEVBU0VfTE9HKFNlcnZpY2VXb3JrZXIsICJTZXJ2aWNl
IHdvcmtlciBwcm9jZXNzIGlzIG5vIGxvbmdlciBuZWVkZWQsIHRlcm1pbmF0aW5nIGl0Iik7Cisg
ICAgc2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi50ZXJtaW5hdGUoKTsKKworICAgIHNlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24uY29ubmVjdGlvbkNsb3NlZCgpOworICAgIG1fc2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbnMucmVtb3ZlKHNlY3VyaXR5T3JpZ2luKTsKK30KKwordm9pZCBTdG9yYWdl
UHJvY2Vzczo6ZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSgpCit7
CisgICAgaWYgKG1fc2hvdWxkRGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25E
ZWxheSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zaG91bGREaXNhYmxlU2VydmljZVdvcmtl
clByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5ID0gdHJ1ZTsKKyAgICBmb3IgKGF1dG8mIHN3U2VydmVy
IDogbV9zd1NlcnZlcnMudmFsdWVzKCkpCisgICAgICAgIHN3U2VydmVyLT5kaXNhYmxlU2Vydmlj
ZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5KCk7Cit9CiAjZW5kaWYKIAogI2lmICFQTEFU
Rk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3Rv
cmFnZVByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nl
c3MuaAppbmRleCBkNTZlZDQwMDEzNGQ4OTNlZmYyYTNlYjI4OTEwYjYzNTY4MzNmOTAxLi42MDEw
YTllZjE5NmI3YmFmNWNiMzM4Nzc1ODVhMGQ2YzQwNTFlMDE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktp
dC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5oCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5j
bHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSURCQmFja2luZ1N0
b3JlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJTZXJ2ZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3Jl
L1NlY3VyaXR5T3JpZ2luSGFzaC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5E
YXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VySWRlbnRpZmllci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9V
bmlxdWVJREJEYXRhYmFzZS5oPgpAQCAtNDUsNyArNDUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBTV1NlcnZlcjsKIGNsYXNzIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXk7CiBz
dHJ1Y3QgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM7Ci1zdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRh
Owogc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyOwogfQogCkBAIC05NCwxMiAr
OTMsMTQgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0g
ICAgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKiBzZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uRm9yT3JpZ2luKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJik7Ci0gICAgdm9pZCBj
cmVhdGVTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luJiwgc3RkOjpvcHRpb25hbDxQQUw6OlNlc3Npb25JRD4pOworICAgIFdlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbiogc2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbkZvck9yaWdpbihjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmKTsKKyAgICB2b2lkIGNyZWF0ZVNlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwgc3Rk
OjpvcHRpb25hbDxQQUw6OlNlc3Npb25JRD4pOwogCiAgICAgV2ViQ29yZTo6U1dTZXJ2ZXImIHN3
U2VydmVyRm9yU2Vzc2lvbihQQUw6OlNlc3Npb25JRCk7CiAgICAgdm9pZCByZWdpc3RlclNXU2Vy
dmVyQ29ubmVjdGlvbihXZWJTV1NlcnZlckNvbm5lY3Rpb24mKTsKICAgICB2b2lkIHVucmVnaXN0
ZXJTV1NlcnZlckNvbm5lY3Rpb24oV2ViU1dTZXJ2ZXJDb25uZWN0aW9uJik7CisKKyAgICB2b2lk
IHN3Q29udGV4dENvbm5lY3Rpb25NYXlOb0xvbmdlckJlTmVlZGVkKFdlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbiYpOwogI2VuZGlmCiAKICAgICB2b2lkIGRpZFJlY2VpdmVTdG9yYWdlUHJv
Y2Vzc01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CkBAIC0xNDUsOCAr
MTQ2LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNs
aWVudChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgZGVzdGlu
YXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmLCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIHNvdXJjZU9yaWdpbik7CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbiwgV2ViQ29yZTo6TWVz
c2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xp
ZW50SWRlbnRpZmllciYgc291cmNlLCBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyKTsKIAorICAgIHZvaWQgZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25E
ZWxheSgpOworCiAgICAgV2ViU1dPcmlnaW5TdG9yZSYgc3dPcmlnaW5TdG9yZUZvclNlc3Npb24o
UEFMOjpTZXNzaW9uSUQpOwotICAgIGJvb2wgbmVlZHNTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
Rm9yT3JpZ2luKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJikgY29uc3Q7CisgICAgYm9vbCBuZWVk
c1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb25Gb3JPcmlnaW4oY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJikgY29uc3Q7CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKICAgICBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBpbmRleGVkRGF0YWJh
c2VPcmlnaW5zKGNvbnN0IFN0cmluZyYgcGF0aCk7CkBAIC0xNzMsOCArMTc2LDkgQEAgcHJpdmF0
ZToKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgdm9pZCBkaWRDcmVhdGVXb3JrZXJD
b250ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24oY29uc3QgSVBDOjpBdHRhY2htZW50Jik7CiAKLSAgICBI
YXNoTWFwPFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4sIFJlZjxXZWJTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24+PiBtX3NlcnZlclRvQ29udGV4dENvbm5lY3Rpb25zOworICAgIEhh
c2hNYXA8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhLCBSZWZQdHI8V2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uPj4gbV9zZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uczsKICAgICBib29s
IG1fd2FpdGluZ0ZvclNlcnZlclRvQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uIHsgZmFsc2UgfTsK
KyAgICBib29sIG1fc2hvdWxkRGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25E
ZWxheSB7IGZhbHNlIH07CiAgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgU3RyaW5nPiBtX3N3
RGF0YWJhc2VQYXRoczsKICAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6U1dTZXJ2ZXI+PiBtX3N3U2VydmVyczsKICAgICBIYXNoTWFwPFdlYkNvcmU6
OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYlNXU2VydmVyQ29ubmVjdGlvbio+IG1f
c3dTZXJ2ZXJDb25uZWN0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVBy
b2Nlc3MvU3RvcmFnZVByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQ
cm9jZXNzL1N0b3JhZ2VQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGFiMmY0ODdjMDU0ZDdmZGJl
ZmJiODc0NTFiYTRhNTcwZTViMmRlNzQuLjgxZDE5MzBlNGExNDdhMzQ1MDU3ZjE5NWQ0MDA4ZDc5
NGU5OTUzNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFn
ZVByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9T
dG9yYWdlUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNDUsNSArNDUsNyBAQCBtZXNzYWdlcyAtPiBT
dG9yYWdlUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXJDbGllbnQoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVy
IGRlc3RpbmF0aW9uSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2Fn
ZVBvcnRzIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlk
ZW50aWZpZXIsIFN0cmluZyBzb3VyY2VPcmlnaW4pCiAKICAgICBQb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbiwgc3Ry
dWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2UsIFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIgc291cmNlLCBXZWJDb3JlOjpTV1NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorCisgICAgRGlzYWJsZVNl
cnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSgpCiAjZW5kaWYKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElBdXRvbWF0aW9uU2Vzc2lvbkNsaWVu
dC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUF1dG9tYXRpb25TZXNzaW9uQ2xp
ZW50LmgKaW5kZXggMGZjODU0YTNiMTk2NGJkMjJiYjBiNGY3NDcxMjgyMzM4MGI4NDQxZi4uNjgz
NTNiYjU2NDJjMTllNWY1MGFkZjVmZmQxMWVjOTk0MGE0ZjBhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUF1dG9tYXRpb25TZXNzaW9uQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUF1dG9tYXRpb25TZXNzaW9uQ2xpZW50LmgK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNiwgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgQVBJQXV0b21hdGlvblNlc3Npb25DbGllbnRfaAogI2Rl
ZmluZSBBUElBdXRvbWF0aW9uU2Vzc2lvbkNsaWVudF9oCiAKKyNpbmNsdWRlIDx3dGYvQ29tcGxl
dGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CkBAIC0zNSw2ICszNiwxMCBAQCBjbGFzcyBXZWJQYWdlUHJveHk7CiAKIG5h
bWVzcGFjZSBBUEkgewogCitlbnVtIEF1dG9tYXRpb25TZXNzaW9uQnJvd3NpbmdDb250ZXh0T3B0
aW9ucyA6IHVpbnQxNl90IHsKKyAgICBBdXRvbWF0aW9uU2Vzc2lvbkJyb3dzaW5nQ29udGV4dE9w
dGlvbnNQcmVmZXJOZXdUYWIgPSAxIDw8IDAsCit9OworCiBjbGFzcyBBdXRvbWF0aW9uU2Vzc2lv
bkNsaWVudCB7CiBwdWJsaWM6CiAgICAgZW51bSBjbGFzcyBKYXZhU2NyaXB0RGlhbG9nVHlwZSB7
CkBAIC00OCw3ICs1Myw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgU3RyaW5nIHNlc3Npb25J
ZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQg
ZGlkRGlzY29ubmVjdEZyb21SZW1vdGUoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbiYpIHsg
fQotICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJQYWdlUHJveHkqIGRpZFJlcXVlc3ROZXdXaW5kb3co
V2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbiYpIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdE5ld1BhZ2VXaXRoT3B0aW9ucyhXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uJiwgQXV0b21hdGlvblNlc3Npb25Ccm93c2luZ0NvbnRleHRPcHRpb25zLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYktpdDo6V2ViUGFnZVByb3h5Kik+JiYgY29tcGxldGlvbkhh
bmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIobnVsbHB0cik7IH0KICAgICB2aXJ0dWFsIGJvb2wg
aXNTaG93aW5nSmF2YVNjcmlwdERpYWxvZ09uUGFnZShXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNz
aW9uJiwgV2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1
YWwgdm9pZCBkaXNtaXNzQ3VycmVudEphdmFTY3JpcHREaWFsb2dPblBhZ2UoV2ViS2l0OjpXZWJB
dXRvbWF0aW9uU2Vzc2lvbiYsIFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9CiAgICAgdmlydHVh
bCB2b2lkIGFjY2VwdEN1cnJlbnRKYXZhU2NyaXB0RGlhbG9nT25QYWdlKFdlYktpdDo6V2ViQXV0
b21hdGlvblNlc3Npb24mLCBXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUZyYW1lSW5mby5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJRnJhbWVJbmZvLmNwcAppbmRleCAwMzE5ZTVhZWQzZmZjMGEz
NzA5ZDRmNzVmNmQ3OTY4NjJiNjVkYTU4Li45NmIxM2QxNzg1NDQ1YzM5NzMzYjJmMDQ4YTYwZjIw
MjE1MDhjOGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJRnJh
bWVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJRnJhbWVJbmZv
LmNwcApAQCAtNDUsNyArNDUsNyBAQCBSZWY8RnJhbWVJbmZvPiBGcmFtZUluZm86OmNyZWF0ZShj
b25zdCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmIGZyYW1lLCBjb25zdCBXZWJDbwogICAgIGZyYW1l
SW5mb0RhdGEuaXNNYWluRnJhbWUgPSBmcmFtZS5pc01haW5GcmFtZSgpOwogICAgIC8vIEZJWE1F
OiBUaGlzIHNob3VsZCB1c2UgdGhlIGZ1bGwgcmVxdWVzdCBvZiB0aGUgZnJhbWUsIG5vdCBqdXN0
IHRoZSBVUkwuCiAgICAgZnJhbWVJbmZvRGF0YS5yZXF1ZXN0ID0gV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0KGZyYW1lLnVybCgpKTsKLSAgICBmcmFtZUluZm9EYXRhLnNlY3VyaXR5T3JpZ2luID0g
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oc2VjdXJpdHlP
cmlnaW4pOworICAgIGZyYW1lSW5mb0RhdGEuc2VjdXJpdHlPcmlnaW4gPSBzZWN1cml0eU9yaWdp
bi5kYXRhKCk7CiAgICAgZnJhbWVJbmZvRGF0YS5mcmFtZUlEID0gZnJhbWUuZnJhbWVJRCgpOwog
CiAgICAgcmV0dXJuIGNyZWF0ZShmcmFtZUluZm9EYXRhLCBmcmFtZS5wYWdlKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uY3BwCmluZGV4IGI3ZjY5OGVh
YjJkY2QxZDk2M2VmOGRiODliNDA4MDViZTVhNDQ0MjMuLmJlYTMzM2U5ZjQ0YmMxZGE5ZDgyYTk0
YjE1MTM4ZjUxZTI2ZjFmMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElOYXZpZ2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
TmF2aWdhdGlvbi5jcHAKQEAgLTI2LDIyICsyNiwzMyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkFQSU5hdmlnYXRpb24uaCIKIAorI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0uaCIKICNpbmNsdWRlICJXZWJOYXZpZ2F0aW9uU3RhdGUuaCIKIAordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCiBuYW1lc3BhY2UgQVBJIHsK
IAotTmF2aWdhdGlvbjo6TmF2aWdhdGlvbihXZWJLaXQ6OldlYk5hdmlnYXRpb25TdGF0ZSYgc3Rh
dGUpCitOYXZpZ2F0aW9uOjpOYXZpZ2F0aW9uKFdlYk5hdmlnYXRpb25TdGF0ZSYgc3RhdGUpCiAg
ICAgOiBtX25hdmlnYXRpb25JRChzdGF0ZS5nZW5lcmF0ZU5hdmlnYXRpb25JRCgpKQogewogfQog
Ci1OYXZpZ2F0aW9uOjpOYXZpZ2F0aW9uKFdlYktpdDo6V2ViTmF2aWdhdGlvblN0YXRlJiBzdGF0
ZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKK05hdmlnYXRpb246Ok5hdmln
YXRpb24oV2ViTmF2aWdhdGlvblN0YXRlJiBzdGF0ZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCkKICAgICA6IG1fbmF2aWdhdGlvbklEKHN0YXRlLmdlbmVyYXRlTmF2aWdhdGlv
bklEKCkpCiAgICAgLCBtX3JlcXVlc3QoV1RGTW92ZShyZXF1ZXN0KSkKIHsKICAgICBtX3JlZGly
ZWN0Q2hhaW4uYXBwZW5kKG1fcmVxdWVzdC51cmwoKSk7CiB9CiAKK05hdmlnYXRpb246Ok5hdmln
YXRpb24oV2ViTmF2aWdhdGlvblN0YXRlJiBzdGF0ZSwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYg
aXRlbSwgRnJhbWVMb2FkVHlwZSBiYWNrRm9yd2FyZEZyYW1lTG9hZFR5cGUpCisgICAgOiBtX25h
dmlnYXRpb25JRChzdGF0ZS5nZW5lcmF0ZU5hdmlnYXRpb25JRCgpKQorICAgICwgbV9iYWNrRm9y
d2FyZExpc3RJdGVtKCZpdGVtKQorICAgICwgbV9iYWNrRm9yd2FyZEZyYW1lTG9hZFR5cGUoYmFj
a0ZvcndhcmRGcmFtZUxvYWRUeXBlKQoreworfQorCiBOYXZpZ2F0aW9uOjp+TmF2aWdhdGlvbigp
CiB7CiB9CkBAIC01Miw0ICs2MywxMSBAQCB2b2lkIE5hdmlnYXRpb246OmFwcGVuZFJlZGlyZWN0
aW9uVVJMKGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJsKQogICAgICAgICBtX3JlZGlyZWN0Q2hhaW4u
YXBwZW5kKHVybCk7CiB9CiAKKyNpZiAhTE9HX0RJU0FCTEVECitXVEY6OlN0cmluZyBOYXZpZ2F0
aW9uOjpsb2dnaW5nVVJMKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9iYWNrRm9yd2FyZExpc3RJ
dGVtID8gbV9iYWNrRm9yd2FyZExpc3RJdGVtLT51cmwoKSA6IG1fcmVxdWVzdC51cmwoKS5zdHJp
bmcoKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbi5oCmluZGV4IDQ0ZmY1MGNjNjg4NDZhNWMwY2Yy
ZTZmOGE4YzhmNWU4MWU4NDkxYTYuLmYxZjg5NTcwOGQ0OTg4MDlkYzYzYzM5YWYyNDI0MTI1ZTll
M2E0MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0
aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uaApA
QCAtMjksNyArMjksMTIgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAorbmFtZXNwYWNlIFdlYkNvcmUgeworZW51bSBjbGFzcyBG
cmFtZUxvYWRUeXBlOworfTsKKwogbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJCYWNrRm9y
d2FyZExpc3RJdGVtOwogY2xhc3MgV2ViTmF2aWdhdGlvblN0YXRlOwogfQogCkBAIC00Myw2ICs0
OCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5hdmlnYXRpb24o
c3RhdGUpKTsKICAgICB9CiAKKyAgICBzdGF0aWMgUmVmPE5hdmlnYXRpb24+IGNyZWF0ZShXZWJL
aXQ6OldlYk5hdmlnYXRpb25TdGF0ZSYgc3RhdGUsIFdlYktpdDo6V2ViQmFja0ZvcndhcmRMaXN0
SXRlbSYgaXRlbSwgV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSBiYWNrRm9yd2FyZEZyYW1lTG9hZFR5
cGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBOYXZpZ2F0aW9uKHN0YXRl
LCBpdGVtLCBiYWNrRm9yd2FyZEZyYW1lTG9hZFR5cGUpKTsKKyAgICB9CisKICAgICBzdGF0aWMg
UmVmPE5hdmlnYXRpb24+IGNyZWF0ZShXZWJLaXQ6OldlYk5hdmlnYXRpb25TdGF0ZSYgc3RhdGUs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpCiAgICAgewogICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBOYXZpZ2F0aW9uKHN0YXRlLCBXVEZNb3ZlKHJlcXVlc3QpKSk7CkBA
IC01Myw2ICs2Myw4IEBAIHB1YmxpYzoKICAgICB1aW50NjRfdCBuYXZpZ2F0aW9uSUQoKSBjb25z
dCB7IHJldHVybiBtX25hdmlnYXRpb25JRDsgfQogCiAgICAgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0OyB9CisgICAgV2Vi
S2l0OjpXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBiYWNrRm9yd2FyZExpc3RJdGVtKCkgeyByZXR1
cm4gbV9iYWNrRm9yd2FyZExpc3RJdGVtLmdldCgpOyB9CisgICAgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpGcmFtZUxvYWRUeXBlPiBiYWNrRm9yd2FyZEZyYW1lTG9hZFR5cGUoKSBjb25zdCB7IHJl
dHVybiBtX2JhY2tGb3J3YXJkRnJhbWVMb2FkVHlwZTsgfQogCiAgICAgdm9pZCBhcHBlbmRSZWRp
cmVjdGlvblVSTChjb25zdCBXZWJDb3JlOjpVUkwmKTsKICAgICBWZWN0b3I8V2ViQ29yZTo6VVJM
PiB0YWtlUmVkaXJlY3RDaGFpbigpIHsgcmV0dXJuIFdURk1vdmUobV9yZWRpcmVjdENoYWluKTsg
fQpAQCAtNjMsMTUgKzc1LDIzIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNob3VsZEZvcmNlRG93
bmxvYWQoYm9vbCB2YWx1ZSkgeyBtX3Nob3VsZEZvcmNlRG93bmxvYWQgPSB2YWx1ZTsgfQogICAg
IGJvb2wgc2hvdWxkRm9yY2VEb3dubG9hZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkRm9yY2VE
b3dubG9hZDsgfQogCisjaWYgIUxPR19ESVNBQkxFRAorICAgIFdURjo6U3RyaW5nIGxvZ2dpbmdV
UkwoKSBjb25zdDsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IE5hdmlnYXRpb24o
V2ViS2l0OjpXZWJOYXZpZ2F0aW9uU3RhdGUmKTsKICAgICBOYXZpZ2F0aW9uKFdlYktpdDo6V2Vi
TmF2aWdhdGlvblN0YXRlJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYpOworICAgIE5hdmln
YXRpb24oV2ViS2l0OjpXZWJOYXZpZ2F0aW9uU3RhdGUmLCBXZWJLaXQ6OldlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0mLCBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlKTsKIAogICAgIHVpbnQ2NF90IG1fbmF2
aWdhdGlvbklEOwogICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7CiAgICAg
VmVjdG9yPFdlYkNvcmU6OlVSTD4gbV9yZWRpcmVjdENoYWluOwogICAgIGJvb2wgbV93YXNVc2Vy
SW5pdGlhdGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9zaG91bGRGb3JjZURvd25sb2FkIHsgZmFs
c2UgfTsKKworICAgIFJlZlB0cjxXZWJLaXQ6OldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0+IG1fYmFj
a0ZvcndhcmRMaXN0SXRlbTsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lTG9hZFR5
cGU+IG1fYmFja0ZvcndhcmRGcmFtZUxvYWRUeXBlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgQVBJ
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FwcGxpY2F0aW9u
Q2FjaGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXIuY3BwCmluZGV4IGZhYjYwYWZiNmI0OGI5M2Q4NWExM2I3YzU5Njc1
N2I4NDM5NjAwMDEuLmVlODdhYzE5MTUwNjA2YjRlYjgzYTgzZGQ3YWYzYjI3YjAyNzc4M2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQXBwbGlj
YXRpb25DYWNoZU1hbmFnZXIuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgV0tBcHBsaWNhdGlv
bkNhY2hlTWFuYWdlckRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV0tBcHBsaWNhdGlvbkNhY2hlTWFu
YWdlclJlCiAgICAgYXV0byYgd2Vic2l0ZURhdGFTdG9yZSA9IHRvSW1wbChyZWludGVycHJldF9j
YXN0PFdLV2Vic2l0ZURhdGFTdG9yZVJlZj4oYXBwbGljYXRpb25DYWNoZU1hbmFnZXIpKS0+d2Vi
c2l0ZURhdGFTdG9yZSgpOwogCiAgICAgV2Vic2l0ZURhdGFSZWNvcmQgZGF0YVJlY29yZDsKLSAg
ICBkYXRhUmVjb3JkLmFkZChXZWJzaXRlRGF0YVR5cGU6Ok9mZmxpbmVXZWJBcHBsaWNhdGlvbkNh
Y2hlLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbih0b0lt
cGwob3JpZ2luKS0+c2VjdXJpdHlPcmlnaW4oKSkpOworICAgIGRhdGFSZWNvcmQuYWRkKFdlYnNp
dGVEYXRhVHlwZTo6T2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGUsIHRvSW1wbChvcmlnaW4pLT5z
ZWN1cml0eU9yaWdpbigpLmRhdGEoKSk7CiAKICAgICB3ZWJzaXRlRGF0YVN0b3JlLnJlbW92ZURh
dGEoV2Vic2l0ZURhdGFUeXBlOjpPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZSwgeyBkYXRhUmVj
b3JkIH0sIFtdIHsgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0LmNwcAppbmRleCAyN2VlYjVmOGJkYWI4ZDQwMDg0N2Q2MWE5MzIyOGFkZjdmZGJmODVmLi41
NDM2NGMyZmY4YTI0YWY1YWVlMzM0MjRlMzBhODA4N2JkZWMyMTUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKQEAgLTM4Nyw2ICszODcsMTEgQEAgdm9p
ZCBXS0NvbnRleHRSZWdpc3RlclVSTFNjaGVtZUFzQ2FjaGVQYXJ0aXRpb25lZChXS0NvbnRleHRS
ZWYgY29udGV4dFJlZiwgV0tTdHIKICAgICB0b0ltcGwoY29udGV4dFJlZiktPnJlZ2lzdGVyVVJM
U2NoZW1lQXNDYWNoZVBhcnRpdGlvbmVkKHRvSW1wbCh1cmxTY2hlbWUpLT5zdHJpbmcoKSk7CiB9
CiAKK3ZvaWQgV0tDb250ZXh0UmVnaXN0ZXJVUkxTY2hlbWVBc0NhbkRpc3BsYXlPbmx5SWZDYW5S
ZXF1ZXN0KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1N0cmluZ1JlZiB1cmxTY2hlbWUpCit7
CisgICAgdG9JbXBsKGNvbnRleHRSZWYpLT5yZWdpc3RlclVSTFNjaGVtZUFzQ2FuRGlzcGxheU9u
bHlJZkNhblJlcXVlc3QodG9JbXBsKHVybFNjaGVtZSktPnN0cmluZygpKTsKK30KKwogdm9pZCBX
S0NvbnRleHRTZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKFdLQ29udGV4
dFJlZiBjb250ZXh0UmVmLCBXS1N0cmluZ1JlZiB1cmxTY2hlbWUpCiB7CiAgICAgdG9JbXBsKGNv
bnRleHRSZWYpLT5zZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKHRvSW1w
bCh1cmxTY2hlbWUpLT5zdHJpbmcoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS0NvbnRleHRQcml2YXRlLmgKaW5kZXggZWNhNTJkMzBhODFkZWRkNTk5NjBiNzc3Mzlh
OTc3N2ZlYzhjMDI1Yi4uOGExMDNjNTZhOTVhNDBmZTAzMWUwOGRjN2VjMWJmOTRjNGM3NDNjZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUu
aApAQCAtNjMsNiArNjMsOCBAQCBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRSZWdpc3RlclVSTFNj
aGVtZUFzQnlwYXNzaW5nQ29udGVudFNlY3VyaXR5UG9saWN5KFdLQ29udAogCiBXS19FWFBPUlQg
dm9pZCBXS0NvbnRleHRSZWdpc3RlclVSTFNjaGVtZUFzQ2FjaGVQYXJ0aXRpb25lZChXS0NvbnRl
eHRSZWYgY29udGV4dCwgV0tTdHJpbmdSZWYgdXJsU2NoZW1lKTsKIAorV0tfRVhQT1JUIHZvaWQg
V0tDb250ZXh0UmVnaXN0ZXJVUkxTY2hlbWVBc0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0KFdL
Q29udGV4dFJlZiBjb250ZXh0LCBXS1N0cmluZ1JlZiB1cmxTY2hlbWUpOworCiBXS19FWFBPUlQg
dm9pZCBXS0NvbnRleHRTZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKFdL
Q29udGV4dFJlZiBjb250ZXh0LCBXS1N0cmluZ1JlZiB1cmxTY2hlbWUpOwogCiBXS19FWFBPUlQg
dm9pZCBXS0NvbnRleHRTZXRDYW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbihXS0Nv
bnRleHRSZWYgY29udGV4dCwgYm9vbCB2YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCBm
MTBkNjMzMWQ3YjdkNTIyZDc1YTQ0YjNmMzY0NTM4ZmUxODEzZjlmLi40ZTM5ZGFkODJhNTIyNWI5
ZDlkZDI0ZWY4MWZhOGFmNzUzYTM1YjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAKQEAgLTExOSw3
ICsxMTksNyBAQCB2b2lkIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlckRlbGV0ZUVudHJpZXNGb3JP
cmlnaW4oV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUmVmCiAgICAgaWYgKCFzdG9yYWdlTWFuYWdl
cikKICAgICAgICAgcmV0dXJuOwogCi0gICAgc3RvcmFnZU1hbmFnZXItPmRlbGV0ZUxvY2FsU3Rv
cmFnZUVudHJpZXNGb3JPcmlnaW4oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2Vj
dXJpdHlPcmlnaW4odG9JbXBsKG9yaWdpbiktPnNlY3VyaXR5T3JpZ2luKCkpKTsKKyAgICBzdG9y
YWdlTWFuYWdlci0+ZGVsZXRlTG9jYWxTdG9yYWdlRW50cmllc0Zvck9yaWdpbih0b0ltcGwob3Jp
Z2luKS0+c2VjdXJpdHlPcmlnaW4oKS5kYXRhKCkpOwogfQogCiB2b2lkIFdLS2V5VmFsdWVTdG9y
YWdlTWFuYWdlckRlbGV0ZUFsbEVudHJpZXMoV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUmVmIGtl
eVZhbHVlU3RvcmFnZU1hbmFnZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdl
LmNwcAppbmRleCA5N2U5OTgyNjAxMzJlMzc0ODE3MzE2NzQ2YTMyOGNiZTQ4YjlhZmFmLi42YTY1
NWZkMjgyMjY0NDFkZDA2NmVkMGJiYjdkZDBmZTg3NDMyOTc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTMwNSw3ICszMDUsNyBAQCBib29sIFdLUGFnZUNh
bkdvQmFjayhXS1BhZ2VSZWYgcGFnZVJlZikKIAogdm9pZCBXS1BhZ2VHb1RvQmFja0ZvcndhcmRM
aXN0SXRlbShXS1BhZ2VSZWYgcGFnZVJlZiwgV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0ZW1S
ZWYpCiB7Ci0gICAgdG9JbXBsKHBhZ2VSZWYpLT5nb1RvQmFja0ZvcndhcmRJdGVtKHRvSW1wbChp
dGVtUmVmKSk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5nb1RvQmFja0ZvcndhcmRJdGVtKCp0b0lt
cGwoaXRlbVJlZikpOwogfQogCiB2b2lkIFdLUGFnZVRyeVJlc3RvcmVTY3JvbGxQb3NpdGlvbihX
S1BhZ2VSZWYgcGFnZVJlZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLUmVzb3VyY2VDYWNoZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAKaW5kZXggMjNhYTRkMTNkNDEzM2ZkZTg5
YmU0ZGMwYzE0ZWI5OTgwZjhhOWU4Mi4uNmIxNmMyYTA1YzI1YmQ0MGIxOTA4MWI5MGRkZDlmZmIx
MWI1ODdmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tSZXNv
dXJjZUNhY2hlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tSZXNvdXJjZUNhY2hlTWFuYWdlci5jcHAKQEAgLTcyLDE0ICs3MiwxNCBAQCB2b2lkIFdLUmVz
b3VyY2VDYWNoZU1hbmFnZXJDbGVhckNhY2hlRm9yT3JpZ2luKFdLUmVzb3VyY2VDYWNoZU1hbmFn
ZXJSZWYgY2FjaGVNYQogCiAgICAgewogICAgICAgICBXZWJzaXRlRGF0YVJlY29yZCBkYXRhUmVj
b3JkOwotICAgICAgICBkYXRhUmVjb3JkLmFkZChXZWJzaXRlRGF0YVR5cGU6Ok1lbW9yeUNhY2hl
LCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbih0b0ltcGwo
b3JpZ2luKS0+c2VjdXJpdHlPcmlnaW4oKSkpOworICAgICAgICBkYXRhUmVjb3JkLmFkZChXZWJz
aXRlRGF0YVR5cGU6Ok1lbW9yeUNhY2hlLCB0b0ltcGwob3JpZ2luKS0+c2VjdXJpdHlPcmlnaW4o
KS5kYXRhKCkpOwogCiAgICAgICAgIGRhdGFSZWNvcmRzLmFwcGVuZChkYXRhUmVjb3JkKTsKICAg
ICB9CiAKICAgICBpZiAoY2FjaGVzVG9DbGVhciA9PSBXS1Jlc291cmNlQ2FjaGVzVG9DbGVhckFs
bCkgewogICAgICAgICBXZWJzaXRlRGF0YVJlY29yZCBkYXRhUmVjb3JkOwotICAgICAgICBkYXRh
UmVjb3JkLmFkZChXZWJzaXRlRGF0YVR5cGU6OkRpc2tDYWNoZSwgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4odG9JbXBsKG9yaWdpbiktPnNlY3VyaXR5T3Jp
Z2luKCkpKTsKKyAgICAgICAgZGF0YVJlY29yZC5hZGQoV2Vic2l0ZURhdGFUeXBlOjpEaXNrQ2Fj
aGUsIHRvSW1wbChvcmlnaW4pLT5zZWN1cml0eU9yaWdpbigpLmRhdGEoKSk7CiAKICAgICAgICAg
ZGF0YVJlY29yZHMuYXBwZW5kKGRhdGFSZWNvcmQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCmluZGV4
IDY2NTBiNTgzNWQzZjc3ZDYzNTA1YjBkMjIzNTMyNmUzMGYyYWQzNWEuLmNhMjlhYWZiMWJjOWI0
MjQ4MjZlOGE4ODc0MmZmNGNkNTJiYTAwOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcApAQCAtNDM2LDcgKzQz
Niw3IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlUmVtb3ZlQWxsRmV0Y2hDYWNoZXMoV0tXZWJz
aXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJlZiwKIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlUmVt
b3ZlRmV0Y2hDYWNoZUZvck9yaWdpbihXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVm
LCBXS1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0
YVN0b3JlUmVtb3ZlRmV0Y2hDYWNoZVJlbW92YWxGdW5jdGlvbiBjYWxsYmFjaykKIHsKICAgICBX
ZWJLaXQ6OldlYnNpdGVEYXRhUmVjb3JkIGRhdGFSZWNvcmQ7Ci0gICAgZGF0YVJlY29yZC5hZGQo
V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU6OkRPTUNhY2hlLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbihXZWJLaXQ6OnRvSW1wbChvcmlnaW4pLT5zZWN1cml0
eU9yaWdpbigpKSk7CisgICAgZGF0YVJlY29yZC5hZGQoV2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU6
OkRPTUNhY2hlLCBXZWJLaXQ6OnRvSW1wbChvcmlnaW4pLT5zZWN1cml0eU9yaWdpbigpLmRhdGEo
KSk7CiAgICAgVmVjdG9yPFdlYktpdDo6V2Vic2l0ZURhdGFSZWNvcmQ+IGRhdGFSZWNvcmRzID0g
eyBXVEZNb3ZlKGRhdGFSZWNvcmQpIH07CiAKICAgICBPcHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRl
RGF0YVR5cGU+IGRhdGFUeXBlcyA9IFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlOjpET01DYWNoZTsK
QEAgLTQ4MCw3ICs0ODAsNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUdldEZldGNoQ2FjaGVT
aXplRm9yT3JpZ2luKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcgogICAgIE9wdGlvblNl
dDxXZWJLaXQ6OldlYnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucyA9IFdlYktpdDo6
V2Vic2l0ZURhdGFGZXRjaE9wdGlvbjo6Q29tcHV0ZVNpemVzOwogCiAgICAgV2ViS2l0Ojp0b0lt
cGwoZGF0YVN0b3JlUmVmKS0+d2Vic2l0ZURhdGFTdG9yZSgpLmZldGNoRGF0YShXZWJLaXQ6Oldl
YnNpdGVEYXRhVHlwZTo6RE9NQ2FjaGUsIGZldGNoT3B0aW9ucywgW29yaWdpbiwgY29udGV4dCwg
Y2FsbGJhY2tdIChhdXRvIGRhdGFSZWNvcmRzKSB7Ci0gICAgICAgIGF1dG8gb3JpZ2luRGF0YSA9
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKFdlYktpdDo6dG9JbXBsKG9yaWdpbikt
PnN0cmluZygpKSk7CisgICAgICAgIGF1dG8gb3JpZ2luRGF0YSA9IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKFdlYktpdDo6dG9JbXBsKG9yaWdpbiktPnN0cmluZygp
KS0+ZGF0YSgpOwogICAgICAgICBmb3IgKGF1dG8mIGRhdGFSZWNvcmQgOiBkYXRhUmVjb3Jkcykg
ewogICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiByZWNvcmRPcmlnaW4gOiBkYXRhUmVjb3Jk
Lm9yaWdpbnMpIHsKICAgICAgICAgICAgICAgICBpZiAob3JpZ2luRGF0YSA9PSByZWNvcmRPcmln
aW4pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jy
b3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCmluZGV4IGI3ZTVlNjkyYzgzMDY3
MmJlMDBlMWU2MTA4NWYzNWVkYjM0Zjk3YjAuLjgxZTRlNTIzMWI4ZTAwZTFiNjZhMDg5MTlkMGI1
MmQzZDY0NWI1ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbQpAQCAtMjQxLDcg
KzI0MSw3IEBAIC0gKEJPT0wpY2FuR29CYWNrCiAKIC0gKHZvaWQpZ29Ub0JhY2tGb3J3YXJkTGlz
dEl0ZW06KFdLQmFja0ZvcndhcmRMaXN0SXRlbSAqKWl0ZW0KIHsKLSAgICBfcGFnZS0+Z29Ub0Jh
Y2tGb3J3YXJkSXRlbSgmaXRlbS5faXRlbSk7CisgICAgX3BhZ2UtPmdvVG9CYWNrRm9yd2FyZEl0
ZW0oaXRlbS5faXRlbSk7CiB9CiAKIC0gKFdLQmFja0ZvcndhcmRMaXN0ICopYmFja0ZvcndhcmRM
aXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9j
ZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQ
b29sLm1tCmluZGV4IDQzYmVlNmVlNWNiMmIwNzA2OTBhNTkzZWJkMDYxNDUxNjhiOTEyOTQuLjgz
MzY2YTAwNTc3OTJlNDA5ZjRlYjJiYjA1M2EzZGNkNmNjY2I5OGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC0xODcsNiAr
MTg3LDExIEBAIC0gKHZvaWQpX3JlZ2lzdGVyVVJMU2NoZW1lU2VydmljZVdvcmtlcnNDYW5IYW5k
bGU6KE5TU3RyaW5nICopc2NoZW1lCiAgICAgX3Byb2Nlc3NQb29sLT5yZWdpc3RlclVSTFNjaGVt
ZVNlcnZpY2VXb3JrZXJzQ2FuSGFuZGxlKHNjaGVtZSk7CiB9CiAKKy0gKHZvaWQpX3JlZ2lzdGVy
VVJMU2NoZW1lQXNDYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdDooTlNTdHJpbmcgKilzY2hlbWUK
K3sKKyAgICBfcHJvY2Vzc1Bvb2wtPnJlZ2lzdGVyVVJMU2NoZW1lQXNDYW5EaXNwbGF5T25seUlm
Q2FuUmVxdWVzdChzY2hlbWUpOworfQorCiAtICh2b2lkKV9zZXRNYXhpbXVtTnVtYmVyT2ZQcm9j
ZXNzZXM6KE5TVUludGVnZXIpdmFsdWUKIHsKICAgICBfcHJvY2Vzc1Bvb2wtPnNldE1heGltdW1O
dW1iZXJPZlByb2Nlc3Nlcyh2YWx1ZSk7CkBAIC00MjksNiArNDM0LDExIEBAIC0gKHZvaWQpX3Rl
cm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMKICAgICBfcHJvY2Vzc1Bvb2wtPnRlcm1pbmF0
ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMoKTsKIH0KIAorLSAodm9pZClfZGlzYWJsZVNlcnZpY2VX
b3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheQoreworICAgIF9wcm9jZXNzUG9vbC0+ZGlzYWJs
ZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSgpOworfQorCiAtIChwaWRfdClf
bmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyCiB7CiAgICAgcmV0dXJuIF9wcm9jZXNzUG9vbC0+bmV0
d29ya1Byb2Nlc3NJZGVudGlmaWVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCmluZGV4IGE5ZDk5YmNlZWY4
ODNhY2M1ODNhZjY5MGUzNDQ0YjA2ZDA1MGI5ZTcuLjQ0Yjc2MmU2M2Q5NmQzNTNjZGIzOGY4MmY3
ZWNlMjY3ZGMxOGNhMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCkBAIC03NSwxMCArNzUsMTMgQEAKIC0g
KHZvaWQpX2FkZFN1cHBvcnRlZFBsdWdpbjooTlNTdHJpbmcgKikgZG9tYWluIG5hbWVkOihOU1N0
cmluZyAqKSBuYW1lIHdpdGhNaW1lVHlwZXM6IChOU1NldDxOU1N0cmluZyAqPiAqKSBtaW1lVHlw
ZXMgd2l0aEV4dGVuc2lvbnM6IChOU1NldDxOU1N0cmluZyAqPiAqKSBleHRlbnNpb25zIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9p
ZClfY2xlYXJTdXBwb3J0ZWRQbHVnaW5zIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCistICh2b2lkKV9yZWdpc3RlclVSTFNjaGVtZUFzQ2Fu
RGlzcGxheU9ubHlJZkNhblJlcXVlc3Q6KE5TU3RyaW5nICopc2NoZW1lIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCiAvLyBUZXN0IG9ubHku
IFNob3VsZCBiZSBjYWxsZWQgb25seSB3aGlsZSBubyB3ZWIgY29udGVudCBwcm9jZXNzZXMgYXJl
IHJ1bm5pbmcuCiAtICh2b2lkKV90ZXJtaW5hdGVTdG9yYWdlUHJvY2VzczsKIC0gKHZvaWQpX3Rl
cm1pbmF0ZU5ldHdvcmtQcm9jZXNzOwogLSAodm9pZClfdGVybWluYXRlU2VydmljZVdvcmtlclBy
b2Nlc3NlcyBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKKy0gKHZvaWQpX2Rpc2FibGVTZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVs
YXkgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CiAKIC8vIFRlc3Qgb25seS4KIC0gKHBpZF90KV9uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMThiMmJjMWViZDA3MWNl
ZjBkYzA2YmRmNzE1ODM0NTNlZmNmZTg1NC4uNTcxM2VlZWM4OTQ5MDA3OGMwNzRlMzdjZDFjMzcw
YWY0OGQyMjMyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tCkBAIC05MDcsNyArOTA3LDcgQEAgLSAoV0tOYXZpZ2F0aW9uICopbG9hZERhdGE6
KE5TRGF0YSAqKWRhdGEgTUlNRVR5cGU6KE5TU3RyaW5nICopTUlNRVR5cGUgY2hhcmFjdGUKIAog
LSAoV0tOYXZpZ2F0aW9uICopZ29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW06KFdLQmFja0ZvcndhcmRM
aXN0SXRlbSAqKWl0ZW0KIHsKLSAgICBhdXRvIG5hdmlnYXRpb24gPSBfcGFnZS0+Z29Ub0JhY2tG
b3J3YXJkSXRlbSgmaXRlbS5faXRlbSk7CisgICAgYXV0byBuYXZpZ2F0aW9uID0gX3BhZ2UtPmdv
VG9CYWNrRm9yd2FyZEl0ZW0oaXRlbS5faXRlbSk7CiAgICAgaWYgKCFuYXZpZ2F0aW9uKQogICAg
ICAgICByZXR1cm4gbmlsOwogCkBAIC01NzMxLDYgKzU3MzEsMTEgQEAgLSAoQk9PTClfaWdub3Jl
c0FsbEV2ZW50cwogICAgIHJldHVybiBfaW1wbC0+aWdub3Jlc0FsbEV2ZW50cygpOwogfQogCist
IChOU0ludGVnZXIpX3NwZWxsQ2hlY2tlckRvY3VtZW50VGFnCit7CisgICAgcmV0dXJuIF9pbXBs
LT5zcGVsbENoZWNrZXJEb2N1bWVudFRhZygpOworfQorCiAjZW5kaWYKIAogQGVuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgK
aW5kZXggZTYzZGQ5ZmE3MzhjMjA3YTk0MmY3MTU1ZGM2MDNhNWU0NzQ1YTFkNi4uYjM0M2E4MTQ2
ZGNmNjk4MzMzZjM4MzI4MzNmNTY2NmIzMmM5MjhjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0yNzAsNiArMjcw
LDggQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1JlY3RFZGdlKSB7CiAKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFdpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVu
YWJsZWQ6KSBCT09MIF93aW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkOwogCitAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TSW50ZWdlciBfc3BlbGxDaGVja2VyRG9jdW1lbnRU
YWcgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSkpOworCiAtICh2b2lkKV9zZXRT
aG91bGRTdXBwcmVzc0ZpcnN0UmVzcG9uZGVyQ2hhbmdlczooQk9PTClzaG91bGRTdXBwcmVzczsK
IAogLy8gQ2xpZW50cyB0aGF0IHdhbnQgdG8gbWFpbnRhaW4gZGVmYXVsdCBiZWhhdmlvciBjYW4g
cmV0dXJuIG5pbC4gVG8gZGlzYWJsZSB0aGUgaW1tZWRpYXRlIGFjdGlvbiBlbnRpcmVseSwgcmV0
dXJuIE5TTnVsbC4gQW5kIHRvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Npb25EZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0F1dG9tYXRpb25TZXNzaW9uRGVsZWdhdGUuaAppbmRleCBh
NTU1Y2Q2ZmY0YThjMmQyZGJmMDY3YTVhNTI0NjdhNDU1Yzc2ZDIyLi40OGZhN2ViZTM2ZDFjMGZk
Y2ZiNDc2NjBlY2QwOGRiMjIxN2Y3ZDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLQXV0b21hdGlvblNlc3Npb25EZWxlZ2F0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBdXRvbWF0aW9uU2Vzc2lvbkRlbGVnYXRl
LmgKQEAgLTMwLDYgKzMwLDggQEAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgog
I2ltcG9ydCA8V2ViS2l0L1dLQmFzZS5oPgogCitOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCiBA
Y2xhc3MgV0tXZWJWaWV3OwogQGNsYXNzIF9XS0F1dG9tYXRpb25TZXNzaW9uOwogCkBAIC00MCwx
MiArNDIsMTYgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLQXV0b21hdGlvblNlc3Np
b25KYXZhU2NyaXB0RGlhbG9nVHlwZSkgewogICAgIF9XS0F1dG9tYXRpb25TZXNzaW9uSmF2YVNj
cmlwdERpYWxvZ1R5cGVQcm9tcHQsCiB9IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCit0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgX1dL
QXV0b21hdGlvblNlc3Npb25Ccm93c2luZ0NvbnRleHRPcHRpb25zKSB7CisgICAgX1dLQXV0b21h
dGlvblNlc3Npb25Ccm93c2luZ0NvbnRleHRPcHRpb25zUHJlZmVyTmV3VGFiID0gMSA8PCAwLAor
fSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsK
KwogQHByb3RvY29sIF9XS0F1dG9tYXRpb25TZXNzaW9uRGVsZWdhdGUgPE5TT2JqZWN0PgogQG9w
dGlvbmFsCiAKIC0gKHZvaWQpX2F1dG9tYXRpb25TZXNzaW9uRGlkRGlzY29ubmVjdEZyb21SZW1v
dGU6KF9XS0F1dG9tYXRpb25TZXNzaW9uICopYXV0b21hdGlvblNlc3Npb247CiAKLS0gKFdLV2Vi
VmlldyAqKV9hdXRvbWF0aW9uU2Vzc2lvbkRpZFJlcXVlc3ROZXdXZWJWaWV3OihfV0tBdXRvbWF0
aW9uU2Vzc2lvbiAqKWF1dG9tYXRpb25TZXNzaW9uIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEw
LjEzKSwgaW9zKDExLjApKTsKKy0gKHZvaWQpX2F1dG9tYXRpb25TZXNzaW9uOihfV0tBdXRvbWF0
aW9uU2Vzc2lvbiAqKWF1dG9tYXRpb25TZXNzaW9uIHJlcXVlc3ROZXdXZWJWaWV3V2l0aE9wdGlv
bnM6KF9XS0F1dG9tYXRpb25TZXNzaW9uQnJvd3NpbmdDb250ZXh0T3B0aW9ucylvcHRpb25zIGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKFdLV2ViVmlldyAqIF9OdWxsYWJsZSkpY29tcGxldGlv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1Nf
VEJBKSk7CiAtIChCT09MKV9hdXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0b21hdGlvblNlc3Npb24g
KilhdXRvbWF0aW9uU2Vzc2lvbiBpc1Nob3dpbmdKYXZhU2NyaXB0RGlhbG9nRm9yV2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygx
MS4wKSk7CiAtICh2b2lkKV9hdXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0b21hdGlvblNlc3Npb24g
KilhdXRvbWF0aW9uU2Vzc2lvbiBkaXNtaXNzQ3VycmVudEphdmFTY3JpcHREaWFsb2dGb3JXZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwg
aW9zKDExLjApKTsKIC0gKHZvaWQpX2F1dG9tYXRpb25TZXNzaW9uOihfV0tBdXRvbWF0aW9uU2Vz
c2lvbiAqKWF1dG9tYXRpb25TZXNzaW9uIGFjY2VwdEN1cnJlbnRKYXZhU2NyaXB0RGlhbG9nRm9y
V2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4x
MyksIGlvcygxMS4wKSk7CkBAIC01NSw3ICs2MSw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVn
ZXIsIF9XS0F1dG9tYXRpb25TZXNzaW9uSmF2YVNjcmlwdERpYWxvZ1R5cGUpIHsKIAogLy8gRklY
TUUgMzc0MDg3MTg6IE9iamVjdGl2ZS1DIGRlbGVnYXRlIG1ldGhvZHMgc2hvdWxkbid0IHVzZSBD
IEFQSSB0eXBlcyBsaWtlIFdLUGFnZVJlZi4gV2UgbmVlZCB0bwogLy8gbWlncmF0ZSBjbGllbnRz
IHRvIHVzZSBXS1dlYlZpZXcsIG9yIGV4cG9zZSB0aGUgc2FtZSBiZWhhdmlvciB2aWEgYSBDIFNQ
SSBmb3IgdGhvc2UgY2xpZW50cy4KLS0gKFdLUGFnZVJlZilfYXV0b21hdGlvblNlc3Npb25EaWRS
ZXF1ZXN0TmV3V2luZG93OihfV0tBdXRvbWF0aW9uU2Vzc2lvbiAqKWF1dG9tYXRpb25TZXNzaW9u
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKKy0gKHZvaWQpX2F1
dG9tYXRpb25TZXNzaW9uOihfV0tBdXRvbWF0aW9uU2Vzc2lvbiAqKWF1dG9tYXRpb25TZXNzaW9u
IHJlcXVlc3ROZXdQYWdlV2l0aE9wdGlvbnM6KF9XS0F1dG9tYXRpb25TZXNzaW9uQnJvd3NpbmdD
b250ZXh0T3B0aW9ucylvcHRpb25zIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKFdLUGFnZVJl
ZikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CiAtIChCT09MKV9hdXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0b21h
dGlvblNlc3Npb24gKilhdXRvbWF0aW9uU2Vzc2lvbiBpc1Nob3dpbmdKYXZhU2NyaXB0RGlhbG9n
T25QYWdlOihXS1BhZ2VSZWYpcGFnZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlv
cygxMS4wKSk7CiAtICh2b2lkKV9hdXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0b21hdGlvblNlc3Np
b24gKilhdXRvbWF0aW9uU2Vzc2lvbiBkaXNtaXNzQ3VycmVudEphdmFTY3JpcHREaWFsb2dPblBh
Z2U6KFdLUGFnZVJlZilwYWdlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDEx
LjApKTsKIC0gKHZvaWQpX2F1dG9tYXRpb25TZXNzaW9uOihfV0tBdXRvbWF0aW9uU2Vzc2lvbiAq
KWF1dG9tYXRpb25TZXNzaW9uIGFjY2VwdEN1cnJlbnRKYXZhU2NyaXB0RGlhbG9nT25QYWdlOihX
S1BhZ2VSZWYpcGFnZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7
CkBAIC02NCw0ICs3MCw2IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0F1dG9tYXRp
b25TZXNzaW9uSmF2YVNjcmlwdERpYWxvZ1R5cGUpIHsKIC0gKF9XS0F1dG9tYXRpb25TZXNzaW9u
SmF2YVNjcmlwdERpYWxvZ1R5cGUpX2F1dG9tYXRpb25TZXNzaW9uOihfV0tBdXRvbWF0aW9uU2Vz
c2lvbiAqKWF1dG9tYXRpb25TZXNzaW9uIHR5cGVPZkN1cnJlbnRKYXZhU2NyaXB0RGlhbG9nT25Q
YWdlOihXS1BhZ2VSZWYpcGFnZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKIEBlbmQKIAorTlNfQVNTVU1FX05PTk5VTExfRU5ECisKICNlbmRp
ZiAvLyBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0QXV0b21hdGlvblNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0QXV0b21hdGlvblNlc3Npb24uY3BwCmluZGV4IDkzYWI4ZDUw
Nzg0NTIyZWMyOTVkNThkZjBjNzM3NGMzNGVjNWM5YTkuLmRhZTI5ZTE0ZTA5NzYzOGI5ODEzMGQx
MDllMGM0NjAxMmI2Y2YxMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdEF1dG9tYXRpb25TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTgyLDE0ICs4
MiwxNCBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChtX3Nlc3Np
b24tPnByaXYtPmlkLmRhdGEoKSk7CiAgICAgfQogCi0gICAgV2ViUGFnZVByb3h5KiBkaWRSZXF1
ZXN0TmV3V2luZG93KFdlYkF1dG9tYXRpb25TZXNzaW9uJikgb3ZlcnJpZGUKKyAgICB2b2lkIHJl
cXVlc3ROZXdQYWdlV2l0aE9wdGlvbnMoV2ViQXV0b21hdGlvblNlc3Npb24mLCBBUEk6OkF1dG9t
YXRpb25TZXNzaW9uQnJvd3NpbmdDb250ZXh0T3B0aW9ucywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJQYWdlUHJveHkqKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgb3ZlcnJpZGUKICAgICB7CiAg
ICAgICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBudWxscHRyOwogICAgICAgICBnX3NpZ25h
bF9lbWl0KG1fc2Vzc2lvbiwgc2lnbmFsc1tDUkVBVEVfV0VCX1ZJRVddLCAwLCAmd2ViVmlldyk7
CiAgICAgICAgIGlmICghd2ViVmlldyB8fCAhd2Via2l0X3dlYl92aWV3X2lzX2NvbnRyb2xsZWRf
YnlfYXV0b21hdGlvbih3ZWJWaWV3KSkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotCi0g
ICAgICAgIHJldHVybiAmd2Via2l0V2ViVmlld0dldFBhZ2Uod2ViVmlldyk7CisgICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihudWxscHRyKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoJndlYmtpdFdlYlZpZXdHZXRQYWdlKHdlYlZpZXcpKTsKICAgICB9
CiAKICAgICBib29sIGlzU2hvd2luZ0phdmFTY3JpcHREaWFsb2dPblBhZ2UoV2ViQXV0b21hdGlv
blNlc3Npb24mLCBXZWJQYWdlUHJveHkmIHBhZ2UpIG92ZXJyaWRlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRKYXZhc2NyaXB0UmVzdWx0LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEphdmFzY3JpcHRSZXN1bHQu
Y3BwCmluZGV4IDEwYmIxMTJiMWJhZTdmN2NjNTRhOThkYmYxMTY4ZWI4N2ZhY2ZjNzEuLjE0Zjdk
NjNjYTU3MTc4ZjdlODI2MmRiMWViYTFhN2FjZjg5ZmQ1Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEphdmFzY3JpcHRSZXN1bHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEphdmFzY3JpcHRSZXN1bHQu
Y3BwCkBAIC04MCw3ICs4MCw3IEBAIHZvaWQgd2Via2l0X2phdmFzY3JpcHRfcmVzdWx0X3VucmVm
KFdlYktpdEphdmFzY3JpcHRSZXN1bHQqIGphdmFzY3JpcHRSZXN1bHQpCiAKICNpZiBQTEFURk9S
TShHVEspCiAvKioKLSAqIHdlYmtpdF9qYXZhc2NyaXB0X3Jlc3VsdF9nZXRfZ2xvYmFsX2NvbnRl
eHQ6CisgKiB3ZWJraXRfamF2YXNjcmlwdF9yZXN1bHRfZ2V0X2dsb2JhbF9jb250ZXh0OiAoc2tp
cCkKICAqIEBqc19yZXN1bHQ6IGEgI1dlYktpdEphdmFzY3JpcHRSZXN1bHQKICAqCiAgKiBHZXQg
dGhlIGdsb2JhbCBKYXZhc2NyaXB0IGNvbnRleHQgdGhhdCBzaG91bGQgYmUgdXNlZCB3aXRoIHRo
ZQpAQCAtOTcsNyArOTcsNyBAQCBKU0dsb2JhbENvbnRleHRSZWYgd2Via2l0X2phdmFzY3JpcHRf
cmVzdWx0X2dldF9nbG9iYWxfY29udGV4dChXZWJLaXRKYXZhc2NyaXB0UgogfQogCiAvKioKLSAq
IHdlYmtpdF9qYXZhc2NyaXB0X3Jlc3VsdF9nZXRfdmFsdWU6CisgKiB3ZWJraXRfamF2YXNjcmlw
dF9yZXN1bHRfZ2V0X3ZhbHVlOiAoc2tpcCkKICAqIEBqc19yZXN1bHQ6IGEgI1dlYktpdEphdmFz
Y3JpcHRSZXN1bHQKICAqCiAgKiBHZXQgdGhlIHZhbHVlIG9mIEBqc19yZXN1bHQuIFlvdSBzaG91
bGQgdXNlIHRoZSA8ZnVuY3Rpb24+SlNHbG9iYWxDb250ZXh0UmVmPC9mdW5jdGlvbj4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5hdmlnYXRpb25D
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2aWdh
dGlvbkNsaWVudC5jcHAKaW5kZXggMDY1MjU2NDhiMTI1ZTU3NjgwMzY3YjAwOGIyMjMzMGViMTkz
Y2NjNi4uNDMyOWI1ZDViODA1Y2FkMTI4MzFlYTRmYzM3MmRhZWE2NTRjODRhOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2aWdhdGlvbkNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2aWdh
dGlvbkNsaWVudC5jcHAKQEAgLTExNiw2ICsxMTYsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpFeGNlZWRlZENQ
VUxpbWl0OgogICAgICAgICBjYXNlIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6UmVxdWVzdGVk
QnlDbGllbnQ6CisgICAgICAgIGNhc2UgUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpOYXZpZ2F0
aW9uU3dhcDoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCBh
MjdmOWVjMzE5MjljOWUxOTEyNzczNWEzZmQxNWVmNWY5M2VhZDYyLi4xMTM1ODVlYTM3NzFhOTlm
M2M4MTM3ODFmYzcyNzA1ZmRlYjRkN2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcApAQCAtMzAzMCw3ICszMDMwLDcgQEAgdm9p
ZCB3ZWJraXRfd2ViX3ZpZXdfZ29fdG9fYmFja19mb3J3YXJkX2xpc3RfaXRlbShXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3LCBXZWJLaXQKICAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJf
VklFVyh3ZWJWaWV3KSk7CiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfQkFDS19GT1JX
QVJEX0xJU1RfSVRFTShsaXN0SXRlbSkpOwogCi0gICAgZ2V0UGFnZSh3ZWJWaWV3KS5nb1RvQmFj
a0ZvcndhcmRJdGVtKHdlYmtpdEJhY2tGb3J3YXJkTGlzdEl0ZW1HZXRJdGVtKGxpc3RJdGVtKSk7
CisgICAgZ2V0UGFnZSh3ZWJWaWV3KS5nb1RvQmFja0ZvcndhcmRJdGVtKCp3ZWJraXRCYWNrRm9y
d2FyZExpc3RJdGVtR2V0SXRlbShsaXN0SXRlbSkpOwogfQogCiAvKioKQEAgLTMyNDksNyArMzI0
OSw3IEBAIFdlYktpdEZpbmRDb250cm9sbGVyKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2ZpbmRfY29u
dHJvbGxlcihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3CiAKICNpZiBQTEFURk9STShHVEspCiAvKioK
LSAqIHdlYmtpdF93ZWJfdmlld19nZXRfamF2YXNjcmlwdF9nbG9iYWxfY29udGV4dDoKKyAqIHdl
YmtpdF93ZWJfdmlld19nZXRfamF2YXNjcmlwdF9nbG9iYWxfY29udGV4dDogKHNraXApCiAgKiBA
d2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKICAqCiAgKiBHZXQgdGhlIGdsb2JhbCBKYXZhU2Ny
aXB0IGNvbnRleHQgdXNlZCBieSBAd2ViX3ZpZXcgdG8gZGVzZXJpYWxpemUgdGhlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAt
c2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtp
dDJndGstNC4wLXNlY3Rpb25zLnR4dAppbmRleCBlOTUyMjMxNzIyNTI1YmE0YjhjMGRkZTBmMGZk
NDg4MzAzYTkwNmYwLi44YWMwNDIwMDc4NjBkNjA0NWUzNWE3ZDUwNDg3ZTE2NTI0ODBmOWIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0
ay00LjAtc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsv
ZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQKQEAgLTE0OTAsNiArMTQ5MCw4IEBAIHdl
YmtpdF9mcmFtZV9nZXRfamF2YXNjcmlwdF9nbG9iYWxfY29udGV4dAogd2Via2l0X2ZyYW1lX2dl
dF9qYXZhc2NyaXB0X2NvbnRleHRfZm9yX3NjcmlwdF93b3JsZAogd2Via2l0X2ZyYW1lX2dldF9q
c19jb250ZXh0CiB3ZWJraXRfZnJhbWVfZ2V0X2pzX2NvbnRleHRfZm9yX3NjcmlwdF93b3JsZAor
d2Via2l0X2ZyYW1lX2dldF9qc192YWx1ZV9mb3JfZG9tX29iamVjdAord2Via2l0X2ZyYW1lX2dl
dF9qc192YWx1ZV9mb3JfZG9tX29iamVjdF9pbl9zY3JpcHRfd29ybGQKIAogPFNVQlNFQ1RJT04g
U3RhbmRhcmQ+CiBXZWJLaXRGcmFtZUNsYXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwKaW5kZXggNzQ5NjEx
ZjM2MDFjY2RkZTdkMDMwZmUyODllN2RlYTJlYTAyZWUyMS4uMzBkOTdkNjU1YmI3YzNkMzk2NTVi
MzllNmNjZWIzNzdlMDM2ZDdkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbApAQCAtMTI4LDkgKzEyOCwx
NCBAQAogICA8L2luZGV4PgogCiAgIDxpbmRleCBpZD0iYXBpLWluZGV4LTItMjAiIHJvbGU9IjIu
MjAiPgotICAgIDx0aXRsZT5JbmRleCBvZiBuZXcgc3ltYm9scyBpbiAyLjE4PC90aXRsZT4KKyAg
ICA8dGl0bGU+SW5kZXggb2YgbmV3IHN5bWJvbHMgaW4gMi4yMDwvdGl0bGU+CiAgICAgPHhpOmlu
Y2x1ZGUgaHJlZj0ieG1sL2FwaS1pbmRleC0yLjIwLnhtbCI+PHhpOmZhbGxiYWNrIC8+PC94aTpp
bmNsdWRlPgogICA8L2luZGV4PgogCisgIDxpbmRleCBpZD0iYXBpLWluZGV4LTItMjIiIHJvbGU9
IjIuMjIiPgorICAgIDx0aXRsZT5JbmRleCBvZiBuZXcgc3ltYm9scyBpbiAyLjIyPC90aXRsZT4K
KyAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvYXBpLWluZGV4LTIuMjIueG1sIj48eGk6ZmFsbGJh
Y2sgLz48L3hpOmluY2x1ZGU+CisgIDwvaW5kZXg+CisKICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1s
L2Fubm90YXRpb24tZ2xvc3NhcnkueG1sIj48eGk6ZmFsbGJhY2sgLz48L3hpOmluY2x1ZGU+CiA8
L2Jvb2s+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1
dG9tYXRpb24uanNvbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21h
dGlvbi5qc29uCmluZGV4IDg4NDA4MjY2YTFjODRiMDQ1NDBkN2JkYTg4YjIxNTkxMzdjZTMwNTEu
LjdhZTY4Y2JkNWRkMzcyY2I1Y2M5MDdmYTNiYWI2NTBkOTQwZWU2NTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uCkBAIC0yNjks
OSArMjY5LDEzIEBACiAgICAgICAgIHsKICAgICAgICAgICAgICJuYW1lIjogImNyZWF0ZUJyb3dz
aW5nQ29udGV4dCIsCiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiT3BlbnMgYSBuZXcgYnJv
d3NpbmcgY29udGV4dCBpbiB0aGUgYXV0b21hdGlvbiBzZXNzaW9uIGFuZCBtYWtlcyBpdCB0aGUg
YWN0aXZlIGJyb3dzaW5nIGNvbnRleHQgZm9yIHVzZXIgaW50ZXJhY3Rpb24uIFRoaXMgY29tbWFu
ZCBjcmVhdGVzIGEgYnJvd3NpbmcgY29udGV4dCBpbiBhIG5ldyB3aW5kb3cgcmF0aGVyIHRoYW4g
YWRkaW5nIGEgdGFiIHRvIGFuIGV4aXN0aW5nIHdpbmRvdy4iLAorICAgICAgICAgICAgInBhcmFt
ZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcmVmZXJOZXdUYWIiLCAidHlw
ZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkNyZWF0ZSB0
aGUgbmV3IGJyb3dzaW5nIGNvbnRleHQgYXMgYSB0YWIgaW4gYW4gZXhpc3RpbmcgQXV0b21hdGlv
biB3aW5kb3csIGlmIHBvc3NpYmxlLiJ9CisgICAgICAgICAgICBdLAogICAgICAgICAgICAgInJl
dHVybnMiOiBbCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJlZiI6ICJC
cm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiQW4gb3BhcXVlIGhhbmRsZSBm
b3IgdGhlIG5ld2x5IGNyZWF0ZWQgYnJvd3NpbmcgY29udGV4dC4iIH0KLSAgICAgICAgICAgIF0K
KyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiYXN5bmMiOiB0cnVlCiAgICAgICAgIH0sCiAg
ICAgICAgIHsKICAgICAgICAgICAgICJuYW1lIjogImNsb3NlQnJvd3NpbmdDb250ZXh0IiwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
blNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRv
bWF0aW9uU2Vzc2lvbi5jcHAKaW5kZXggZDJhOTM5ZTE1M2I2ZDQ4ZjI0MmFhODg2MDFjOTY0NjY1
ZGMyOTU3Yi4uZTZkOGE5NzgwNDcxNTcyYWUyZGMwYjhjMzgwY2E0MDgyNDIwMGNmMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vz
c2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRv
bWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTIxOCwxMSArMjE4LDEyIEBAIFJlZjxJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpCcm93c2luZ0NvbnRleHQ+IFdlYkF1dG9tYXRpb25TZXNzaW9u
OjpidWlsCiAgICAgICAgIC5zZXRIZWlnaHQod2luZG93RnJhbWUuaGVpZ2h0KCkpCiAgICAgICAg
IC5yZWxlYXNlKCk7CiAKKyAgICBib29sIGlzQWN0aXZlID0gcGFnZS5pc1ZpZXdWaXNpYmxlKCkg
JiYgcGFnZS5pc1ZpZXdGb2N1c2VkKCkgJiYgcGFnZS5pc1ZpZXdXaW5kb3dBY3RpdmUoKTsKICAg
ICBTdHJpbmcgaGFuZGxlID0gaGFuZGxlRm9yV2ViUGFnZVByb3h5KHBhZ2UpOwogCiAgICAgcmV0
dXJuIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkJyb3dzaW5nQ29udGV4dDo6Y3Jl
YXRlKCkKICAgICAgICAgLnNldEhhbmRsZShoYW5kbGUpCi0gICAgICAgIC5zZXRBY3RpdmUobV9h
Y3RpdmVCcm93c2luZ0NvbnRleHRIYW5kbGUgPT0gaGFuZGxlKQorICAgICAgICAuc2V0QWN0aXZl
KGlzQWN0aXZlKQogICAgICAgICAuc2V0VXJsKHBhZ2UucGFnZUxvYWRTdGF0ZSgpLmFjdGl2ZVVS
TCgpKQogICAgICAgICAuc2V0V2luZG93T3JpZ2luKFdURk1vdmUob3JpZ2luT2JqZWN0KSkKICAg
ICAgICAgLnNldFdpbmRvd1NpemUoV1RGTW92ZShzaXplT2JqZWN0KSkKQEAgLTI3MSwxNyArMjcy
LDIyIEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmdldEJyb3dzaW5nQ29udGV4dChjb25z
dCBTdHJpbmcmIGhhbmRsZSwgUmVmPEdldEJyb3dzCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViQXV0
b21hdGlvblNlc3Npb246OmNyZWF0ZUJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3Ry
aW5nJiBlcnJvclN0cmluZywgU3RyaW5nKiBoYW5kbGUpCit2b2lkIFdlYkF1dG9tYXRpb25TZXNz
aW9uOjpjcmVhdGVCcm93c2luZ0NvbnRleHQoY29uc3QgYm9vbCogcHJlZmVyTmV3VGFiLCBSZWY8
Q3JlYXRlQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+JiYgY2FsbGJhY2spCiB7CiAgICAgQVNTRVJU
KG1fY2xpZW50KTsKICAgICBpZiAoIW1fY2xpZW50KQotICAgICAgICBTWU5DX0ZBSUxfV0lUSF9Q
UkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKEludGVybmFsRXJyb3IsICJUaGUgcmVtb3RlIHNl
c3Npb24gY291bGQgbm90IHJlcXVlc3QgYSBuZXcgYnJvd3NpbmcgY29udGV4dC4iKTsKKyAgICAg
ICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoSW50ZXJuYWxF
cnJvciwgIlRoZSByZW1vdGUgc2Vzc2lvbiBjb3VsZCBub3QgcmVxdWVzdCBhIG5ldyBicm93c2lu
ZyBjb250ZXh0LiIpOwogCi0gICAgV2ViUGFnZVByb3h5KiBwYWdlID0gbV9jbGllbnQtPmRpZFJl
cXVlc3ROZXdXaW5kb3coKnRoaXMpOwotICAgIGlmICghcGFnZSkKLSAgICAgICAgU1lOQ19GQUlM
X1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhJbnRlcm5hbEVycm9yLCAiVGhlIHJl
bW90ZSBzZXNzaW9uIGZhaWxlZCB0byBjcmVhdGUgYSBuZXcgYnJvd3NpbmcgY29udGV4dC4iKTsK
KyAgICB1aW50MTZfdCBvcHRpb25zID0gMDsKKyAgICBpZiAocHJlZmVyTmV3VGFiICYmICpwcmVm
ZXJOZXdUYWIpCisgICAgICAgIG9wdGlvbnMgfD0gQVBJOjpBdXRvbWF0aW9uU2Vzc2lvbkJyb3dz
aW5nQ29udGV4dE9wdGlvbnNQcmVmZXJOZXdUYWI7CiAKLSAgICBtX2FjdGl2ZUJyb3dzaW5nQ29u
dGV4dEhhbmRsZSA9ICpoYW5kbGUgPSBoYW5kbGVGb3JXZWJQYWdlUHJveHkoKnBhZ2UpOworICAg
IG1fY2xpZW50LT5yZXF1ZXN0TmV3UGFnZVdpdGhPcHRpb25zKCp0aGlzLCBzdGF0aWNfY2FzdDxB
UEk6OkF1dG9tYXRpb25TZXNzaW9uQnJvd3NpbmdDb250ZXh0T3B0aW9ucz4ob3B0aW9ucyksIFtw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFj
ayldKFdlYlBhZ2VQcm94eSogcGFnZSkgeworICAgICAgICBpZiAocGFnZSkKKyAgICAgICAgICAg
IGNhbGxiYWNrLT5zZW5kU3VjY2Vzcyhwcm90ZWN0ZWRUaGlzLT5oYW5kbGVGb3JXZWJQYWdlUHJv
eHkoKnBhZ2UpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BS
RURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoSW50ZXJuYWxFcnJvciwgIlRoZSByZW1vdGUgc2Vz
c2lvbiBmYWlsZWQgdG8gY3JlYXRlIGEgbmV3IGJyb3dzaW5nIGNvbnRleHQuIik7CisgICAgfSk7
CiB9CiAKIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmNsb3NlQnJvd3NpbmdDb250ZXh0KElu
c3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGhhbmRsZSkK
QEAgLTI5MCw5ICsyOTYsNiBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpjbG9zZUJyb3dz
aW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJvclN0cgogICAgIGlmICghcGFn
ZSkKICAgICAgICAgU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RGb3Vu
ZCk7CiAKLSAgICBpZiAoaGFuZGxlID09IG1fYWN0aXZlQnJvd3NpbmdDb250ZXh0SGFuZGxlKQot
ICAgICAgICBtX2FjdGl2ZUJyb3dzaW5nQ29udGV4dEhhbmRsZSA9IGVtcHR5U3RyaW5nKCk7Ci0K
ICAgICBwYWdlLT5jbG9zZVBhZ2UoZmFsc2UpOwogfQogCkBAIC0zMDYsOSArMzA5LDYgQEAgdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c3dpdGNoVG9Ccm93c2luZ0NvbnRleHQoSW5zcGVjdG9y
OjpFcnJvclN0cmluZyYgZXJyb3IKICAgICBpZiAoIWZyYW1lSUQpCiAgICAgICAgIFNZTkNfRkFJ
TF9XSVRIX1BSRURFRklORURfRVJST1IoRnJhbWVOb3RGb3VuZCk7CiAKLSAgICAvLyBGSVhNRTog
V2UgZG9uJ3QgbmVlZCB0byB0cmFjayB0aGlzIGluIFdLMi4gUmVtb3ZlIGluIGEgZm9sbG93IHVw
LgotICAgIG1fYWN0aXZlQnJvd3NpbmdDb250ZXh0SGFuZGxlID0gYnJvd3NpbmdDb250ZXh0SGFu
ZGxlOwotCiAgICAgcGFnZS0+c2V0Rm9jdXModHJ1ZSk7CiAgICAgcGFnZS0+cHJvY2VzcygpLnNl
bmQoTWVzc2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OkZvY3VzRnJhbWUocGFnZS0+
cGFnZUlEKCksIGZyYW1lSUQudmFsdWUoKSksIDApOwogfQpAQCAtNjkyLDE1ICs2OTIsMTYgQEAg
c3RhdGljIGJvb2wgZmlsZUNhbkJlQWNjZXB0ZWRGb3JVcGxvYWQoY29uc3QgU3RyaW5nJiBmaWxl
bmFtZSwgY29uc3QgSGFzaFNldDxTdHIKIAogdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6aGFu
ZGxlUnVuT3BlblBhbmVsKGNvbnN0IFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgV2ViRnJhbWVQ
cm94eSYsIGNvbnN0IEFQSTo6T3BlblBhbmVsUGFyYW1ldGVycyYgcGFyYW1ldGVycywgV2ViT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eSYgcmVzdWx0TGlzdGVuZXIpCiB7CisgICAgU3RyaW5n
IGJyb3dzaW5nQ29udGV4dEhhbmRsZSA9IGhhbmRsZUZvcldlYlBhZ2VQcm94eShwYWdlKTsKICAg
ICBpZiAoIW1fZmlsZXNUb1NlbGVjdEZvckZpbGVVcGxvYWQuc2l6ZSgpKSB7CiAgICAgICAgIHJl
c3VsdExpc3RlbmVyLmNhbmNlbCgpOwotICAgICAgICBtX2RvbWFpbk5vdGlmaWVyLT5maWxlQ2hv
b3NlckRpc21pc3NlZChtX2FjdGl2ZUJyb3dzaW5nQ29udGV4dEhhbmRsZSwgdHJ1ZSk7CisgICAg
ICAgIG1fZG9tYWluTm90aWZpZXItPmZpbGVDaG9vc2VyRGlzbWlzc2VkKGJyb3dzaW5nQ29udGV4
dEhhbmRsZSwgdHJ1ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAobV9maWxl
c1RvU2VsZWN0Rm9yRmlsZVVwbG9hZC5zaXplKCkgPiAxICYmICFwYXJhbWV0ZXJzLmFsbG93TXVs
dGlwbGVGaWxlcygpKSB7CiAgICAgICAgIHJlc3VsdExpc3RlbmVyLmNhbmNlbCgpOwotICAgICAg
ICBtX2RvbWFpbk5vdGlmaWVyLT5maWxlQ2hvb3NlckRpc21pc3NlZChtX2FjdGl2ZUJyb3dzaW5n
Q29udGV4dEhhbmRsZSwgdHJ1ZSk7CisgICAgICAgIG1fZG9tYWluTm90aWZpZXItPmZpbGVDaG9v
c2VyRGlzbWlzc2VkKGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgdHJ1ZSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTcyMywxMyArNzI0LDEzIEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b246OmhhbmRsZVJ1bk9wZW5QYW5lbChjb25zdCBXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IFdl
CiAgICAgZm9yIChjb25zdCBTdHJpbmcmIGZpbGVuYW1lIDogbV9maWxlc1RvU2VsZWN0Rm9yRmls
ZVVwbG9hZCkgewogICAgICAgICBpZiAoIWZpbGVDYW5CZUFjY2VwdGVkRm9yVXBsb2FkKGZpbGVu
YW1lLCBhbGxvd2VkTUlNRVR5cGVzLCBhbGxvd2VkRmlsZUV4dGVuc2lvbnMpKSB7CiAgICAgICAg
ICAgICByZXN1bHRMaXN0ZW5lci5jYW5jZWwoKTsKLSAgICAgICAgICAgIG1fZG9tYWluTm90aWZp
ZXItPmZpbGVDaG9vc2VyRGlzbWlzc2VkKG1fYWN0aXZlQnJvd3NpbmdDb250ZXh0SGFuZGxlLCB0
cnVlKTsKKyAgICAgICAgICAgIG1fZG9tYWluTm90aWZpZXItPmZpbGVDaG9vc2VyRGlzbWlzc2Vk
KGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgdHJ1ZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KICAgICB9CiAKICAgICByZXN1bHRMaXN0ZW5lci5jaG9vc2VGaWxlcyhtX2ZpbGVzVG9T
ZWxlY3RGb3JGaWxlVXBsb2FkKTsKLSAgICBtX2RvbWFpbk5vdGlmaWVyLT5maWxlQ2hvb3NlckRp
c21pc3NlZChtX2FjdGl2ZUJyb3dzaW5nQ29udGV4dEhhbmRsZSwgZmFsc2UpOworICAgIG1fZG9t
YWluTm90aWZpZXItPmZpbGVDaG9vc2VyRGlzbWlzc2VkKGJyb3dzaW5nQ29udGV4dEhhbmRsZSwg
ZmFsc2UpOwogfQogCiB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpldmFsdWF0ZUphdmFTY3Jp
cHRGdW5jdGlvbihjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3Ry
aW5nKiBvcHRpb25hbEZyYW1lSGFuZGxlLCBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uLCBjb25zdCBK
U09OOjpBcnJheSYgYXJndW1lbnRzLCBjb25zdCBib29sKiBvcHRpb25hbEV4cGVjdHNJbXBsaWNp
dENhbGxiYWNrQXJndW1lbnQsIGNvbnN0IGludCogb3B0aW9uYWxDYWxsYmFja1RpbWVvdXQsIFJl
ZjxFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbkNhbGxiYWNrPiYmIGNhbGxiYWNrKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vz
c2lvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvbi5oCmluZGV4IDU3NDg0NTkzNTRhY2IwOTdjZjI5NmJmYmNlOGIwYzYwZThiMTNhNDQu
Ljg4NDYyNDFhNjk1NGE1ZGM0MGRiNTEzNzI4MjhmOTkyYWVkZjMwMmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNz
aW9uLmgKQEAgLTExOSw5ICsxMTksOSBAQCBwdWJsaWM6CiAgICAgLy8gUGxhdGZvcm06IEdlbmVy
aWMKICAgICB2b2lkIGdldEJyb3dzaW5nQ29udGV4dHMoUmVmPEdldEJyb3dzaW5nQ29udGV4dHND
YWxsYmFjaz4mJikgZmluYWw7CiAgICAgdm9pZCBnZXRCcm93c2luZ0NvbnRleHQoY29uc3QgU3Ry
aW5nJiwgUmVmPEdldEJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYmKSBmaW5hbDsKLSAgICB2b2lk
IGNyZWF0ZUJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgU3RyaW5nKikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBjbG9zZUJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9y
U3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzd2l0Y2hUb0Jyb3dz
aW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBicm93c2lu
Z0NvbnRleHRIYW5kbGUsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxGcmFtZUhhbmRsZSkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBjcmVhdGVCcm93c2luZ0NvbnRleHQoY29uc3QgYm9vbCogcHJlZmVyTmV3
VGFiLCBSZWY8Q3JlYXRlQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+JiYpIGZpbmFsOwogICAgIHZv
aWQgc2V0V2luZG93RnJhbWVPZkJyb3dzaW5nQ29udGV4dChjb25zdCBTdHJpbmcmIGhhbmRsZSwg
Y29uc3QgSlNPTjo6T2JqZWN0KiBvcmlnaW4sIGNvbnN0IEpTT046Ok9iamVjdCogc2l6ZSwgUmVm
PFNldFdpbmRvd0ZyYW1lT2ZCcm93c2luZ0NvbnRleHRDYWxsYmFjaz4mJikgZmluYWw7CiAgICAg
dm9pZCBuYXZpZ2F0ZUJyb3dzaW5nQ29udGV4dChjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3Qg
U3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxQYWdlTG9hZFN0cmF0ZWd5U3RyaW5n
LCBjb25zdCBpbnQqIG9wdGlvbmFsUGFnZUxvYWRUaW1lb3V0LCBSZWY8TmF2aWdhdGVCcm93c2lu
Z0NvbnRleHRDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBnb0JhY2tJbkJyb3dzaW5n
Q29udGV4dChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsUGFnZUxvYWRTdHJh
dGVneVN0cmluZywgY29uc3QgaW50KiBvcHRpb25hbFBhZ2VMb2FkVGltZW91dCwgUmVmPEdvQmFj
a0luQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+JiYpIG92ZXJyaWRlOwpAQCAtMjE4LDcgKzIxOCw2
IEBAIHByaXZhdGU6CiAKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBTdHJpbmc+IG1fd2ViUGFnZUhh
bmRsZU1hcDsKICAgICBIYXNoTWFwPFN0cmluZywgdWludDY0X3Q+IG1faGFuZGxlV2ViUGFnZU1h
cDsKLSAgICBTdHJpbmcgbV9hY3RpdmVCcm93c2luZ0NvbnRleHRIYW5kbGU7CiAKICAgICBIYXNo
TWFwPHVpbnQ2NF90LCBTdHJpbmc+IG1fd2ViRnJhbWVIYW5kbGVNYXA7CiAgICAgSGFzaE1hcDxT
dHJpbmcsIHVpbnQ2NF90PiBtX2hhbmRsZVdlYkZyYW1lTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvQXV0b21hdGlvblNlc3Npb25DbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL0F1dG9tYXRpb25TZXNzaW9uQ2xpZW50LmgKaW5kZXgg
MzVlOGVjMmE2YWM1YzE5ZDBmYmFkYjZiM2VkYjEzMzgxZGQ0NmU0ZC4uN2Y2MTQ0YTIxZTk3Mjdh
NDg3NmIxNTg0MmQ4Mjk1YmU5Zjc3MmMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvQXV0b21hdGlvblNlc3Npb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9BdXRvbWF0aW9uU2Vzc2lvbkNsaWVudC5oCkBAIC00Myw5ICs0Myw5
IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICAvLyBGcm9tIEFQSTo6QXV0b21hdGlvblNlc3Np
b25DbGllbnQKLSAgICBXZWJQYWdlUHJveHkqIGRpZFJlcXVlc3ROZXdXaW5kb3coV2ViQXV0b21h
dGlvblNlc3Npb24mKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZERpc2Nvbm5lY3RGcm9tUmVtb3Rl
KFdlYkF1dG9tYXRpb25TZXNzaW9uJikgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIHJlcXVlc3ROZXdQ
YWdlV2l0aE9wdGlvbnMoV2ViQXV0b21hdGlvblNlc3Npb24mLCBBUEk6OkF1dG9tYXRpb25TZXNz
aW9uQnJvd3NpbmdDb250ZXh0T3B0aW9ucywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJQYWdl
UHJveHkqKT4mJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1Nob3dpbmdKYXZhU2NyaXB0RGlhbG9n
T25QYWdlKFdlYkF1dG9tYXRpb25TZXNzaW9uJiwgV2ViUGFnZVByb3h5Jikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBkaXNtaXNzQ3VycmVudEphdmFTY3JpcHREaWFsb2dPblBhZ2UoV2ViQXV0b21hdGlv
blNlc3Npb24mLCBXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsKICAgICB2b2lkIGFjY2VwdEN1cnJl
bnRKYXZhU2NyaXB0RGlhbG9nT25QYWdlKFdlYkF1dG9tYXRpb25TZXNzaW9uJiwgV2ViUGFnZVBy
b3h5Jikgb3ZlcnJpZGU7CkBAIC01OCw3ICs1OCw3IEBAIHByaXZhdGU6CiAgICAgc3RydWN0IHsK
ICAgICAgICAgYm9vbCBkaWREaXNjb25uZWN0RnJvbVJlbW90ZSA6IDE7CiAKLSAgICAgICAgYm9v
bCBkaWRSZXF1ZXN0TmV3V2ViVmlldyA6IDE7CisgICAgICAgIGJvb2wgcmVxdWVzdE5ld1dlYlZp
ZXdXaXRoT3B0aW9ucyA6IDE7CiAgICAgICAgIGJvb2wgaXNTaG93aW5nSmF2YVNjcmlwdERpYWxv
Z0ZvcldlYlZpZXcgOiAxOwogICAgICAgICBib29sIGRpc21pc3NDdXJyZW50SmF2YVNjcmlwdERp
YWxvZ0ZvcldlYlZpZXcgOiAxOwogICAgICAgICBib29sIGFjY2VwdEN1cnJlbnRKYXZhU2NyaXB0
RGlhbG9nRm9yV2ViVmlldyA6IDE7CkBAIC02Nyw3ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgICAg
IGJvb2wgdHlwZU9mQ3VycmVudEphdmFTY3JpcHREaWFsb2dGb3JXZWJWaWV3IDogMTsKIAogICAg
ICAgICAvLyBGSVhNRSAzNzQwODcxODogdGhlc2UgZGVsZWdhdGUgbWV0aG9kcyBzaG91bGQgYmUg
cmVtb3ZlZC4KLSAgICAgICAgYm9vbCBkaWRSZXF1ZXN0TmV3V2luZG93IDogMTsKKyAgICAgICAg
Ym9vbCByZXF1ZXN0TmV3UGFnZVdpdGhPcHRpb25zIDogMTsKICAgICAgICAgYm9vbCBpc1Nob3dp
bmdKYXZhU2NyaXB0RGlhbG9nT25QYWdlIDogMTsKICAgICAgICAgYm9vbCBkaXNtaXNzQ3VycmVu
dEphdmFTY3JpcHREaWFsb2dPblBhZ2UgOiAxOwogICAgICAgICBib29sIGFjY2VwdEN1cnJlbnRK
YXZhU2NyaXB0RGlhbG9nT25QYWdlIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL0F1dG9tYXRpb25TZXNzaW9uQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvQXV0b21hdGlvblNlc3Npb25DbGllbnQubW0KaW5kZXggYTVjYjA5Yzk1
OTMyY2RhODgzNTNjYjYwOGQ3OTA1NTFmYzI2OTVmMi4uY2NkODkwY2UxNWZjOGY5Y2I2NjM1ZjYx
NjE5MmYwNjRlNjVlYmRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvQXV0b21hdGlvblNlc3Npb25DbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvQXV0b21hdGlvblNlc3Npb25DbGllbnQubW0KQEAgLTM0LDYgKzM0LDcgQEAKICNp
bXBvcnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCAiX1dLQXV0b21hdGlvblNlc3Npb25EZWxl
Z2F0ZS5oIgogI2ltcG9ydCAiX1dLQXV0b21hdGlvblNlc3Npb25JbnRlcm5hbC5oIgorI2ltcG9y
dCA8d3RmL0Jsb2NrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00Miw3ICs0Myw3
IEBAIEF1dG9tYXRpb25TZXNzaW9uQ2xpZW50OjpBdXRvbWF0aW9uU2Vzc2lvbkNsaWVudChpZCA8
X1dLQXV0b21hdGlvblNlc3Npb25EZWxlZ2F0CiB7CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMuZGlk
RGlzY29ubmVjdEZyb21SZW1vdGUgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3RvcihfYXV0b21hdGlvblNlc3Npb25EaWREaXNjb25uZWN0RnJvbVJlbW90ZTopXTsKIAotICAg
IG1fZGVsZWdhdGVNZXRob2RzLmRpZFJlcXVlc3ROZXdXZWJWaWV3ID0gW2RlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX2F1dG9tYXRpb25TZXNzaW9uRGlkUmVxdWVzdE5ld1dl
YlZpZXc6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMucmVxdWVzdE5ld1dlYlZpZXdXaXRoT3B0
aW9ucyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9hdXRvbWF0aW9u
U2Vzc2lvbjpyZXF1ZXN0TmV3V2ViVmlld1dpdGhPcHRpb25zOmNvbXBsZXRpb25IYW5kbGVyOild
OwogICAgIG1fZGVsZWdhdGVNZXRob2RzLmlzU2hvd2luZ0phdmFTY3JpcHREaWFsb2dGb3JXZWJW
aWV3ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX2F1dG9tYXRpb25T
ZXNzaW9uOmlzU2hvd2luZ0phdmFTY3JpcHREaWFsb2dGb3JXZWJWaWV3OildOwogICAgIG1fZGVs
ZWdhdGVNZXRob2RzLmRpc21pc3NDdXJyZW50SmF2YVNjcmlwdERpYWxvZ0ZvcldlYlZpZXcgPSBb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfYXV0b21hdGlvblNlc3Npb246
ZGlzbWlzc0N1cnJlbnRKYXZhU2NyaXB0RGlhbG9nRm9yV2ViVmlldzopXTsKICAgICBtX2RlbGVn
YXRlTWV0aG9kcy5hY2NlcHRDdXJyZW50SmF2YVNjcmlwdERpYWxvZ0ZvcldlYlZpZXcgPSBbZGVs
ZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfYXV0b21hdGlvblNlc3Npb246YWNj
ZXB0Q3VycmVudEphdmFTY3JpcHREaWFsb2dGb3JXZWJWaWV3OildOwpAQCAtNTEsNyArNTIsNyBA
QCBBdXRvbWF0aW9uU2Vzc2lvbkNsaWVudDo6QXV0b21hdGlvblNlc3Npb25DbGllbnQoaWQgPF9X
S0F1dG9tYXRpb25TZXNzaW9uRGVsZWdhdAogICAgIG1fZGVsZWdhdGVNZXRob2RzLnR5cGVPZkN1
cnJlbnRKYXZhU2NyaXB0RGlhbG9nRm9yV2ViVmlldyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKF9hdXRvbWF0aW9uU2Vzc2lvbjp0eXBlT2ZDdXJyZW50SmF2YVNjcmlw
dERpYWxvZ0ZvcldlYlZpZXc6KV07CiAKICAgICAvLyBGSVhNRSAzNzQwODcxODogdGhlc2UgZGVs
ZWdhdGUgbWV0aG9kcyBzaG91bGQgYmUgcmVtb3ZlZC4KLSAgICBtX2RlbGVnYXRlTWV0aG9kcy5k
aWRSZXF1ZXN0TmV3V2luZG93ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoX2F1dG9tYXRpb25TZXNzaW9uRGlkUmVxdWVzdE5ld1dpbmRvdzopXTsKKyAgICBtX2RlbGVn
YXRlTWV0aG9kcy5yZXF1ZXN0TmV3UGFnZVdpdGhPcHRpb25zID0gW2RlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IoX2F1dG9tYXRpb25TZXNzaW9uOnJlcXVlc3ROZXdQYWdlV2l0
aE9wdGlvbnM6Y29tcGxldGlvbkhhbmRsZXI6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMuaXNT
aG93aW5nSmF2YVNjcmlwdERpYWxvZ09uUGFnZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKF9hdXRvbWF0aW9uU2Vzc2lvbjppc1Nob3dpbmdKYXZhU2NyaXB0RGlhbG9n
T25QYWdlOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLmRpc21pc3NDdXJyZW50SmF2YVNjcmlw
dERpYWxvZ09uUGFnZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9h
dXRvbWF0aW9uU2Vzc2lvbjpkaXNtaXNzQ3VycmVudEphdmFTY3JpcHREaWFsb2dPblBhZ2U6KV07
CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMuYWNjZXB0Q3VycmVudEphdmFTY3JpcHREaWFsb2dPblBh
Z2UgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfYXV0b21hdGlvblNl
c3Npb246YWNjZXB0Q3VycmVudEphdmFTY3JpcHREaWFsb2dPblBhZ2U6KV07CkBAIC02NiwxNyAr
NjcsMjkgQEAgdm9pZCBBdXRvbWF0aW9uU2Vzc2lvbkNsaWVudDo6ZGlkRGlzY29ubmVjdEZyb21S
ZW1vdGUoV2ViQXV0b21hdGlvblNlc3Npb24mIHNlc3MKICAgICAgICAgW21fZGVsZWdhdGUuZ2V0
KCkgX2F1dG9tYXRpb25TZXNzaW9uRGlkRGlzY29ubmVjdEZyb21SZW1vdGU6d3JhcHBlcihzZXNz
aW9uKV07CiB9CiAKLS8vIEZJWE1FIDM3NDA4NzE4OiBzdXBwb3J0IGZvciBXS1BhZ2VSZWYtYmFz
ZWQgZGVsZWdhdGUgbWV0aG9kcyBzaG91bGQgYmUgcmVtb3ZlZC4KLS8vIFVudGlsIHRoZXNlIGFy
ZSByZW1vdmVkLCBwcmVmZXIgdG8gdXNlIHRoZSBXS1dlYlZpZXcgZGVsZWdhdGUgbWV0aG9kcyBp
ZiBpbXBsZW1lbnRlZC4KLVdlYlBhZ2VQcm94eSogQXV0b21hdGlvblNlc3Npb25DbGllbnQ6OmRp
ZFJlcXVlc3ROZXdXaW5kb3coV2ViQXV0b21hdGlvblNlc3Npb24mIHNlc3Npb24pCitzdGF0aWMg
aW5saW5lIF9XS0F1dG9tYXRpb25TZXNzaW9uQnJvd3NpbmdDb250ZXh0T3B0aW9ucyB0b0FQSShB
UEk6OkF1dG9tYXRpb25TZXNzaW9uQnJvd3NpbmdDb250ZXh0T3B0aW9ucyBvcHRpb25zKQogewot
ICAgIGlmIChtX2RlbGVnYXRlTWV0aG9kcy5kaWRSZXF1ZXN0TmV3V2ViVmlldykKLSAgICAgICAg
cmV0dXJuIFttX2RlbGVnYXRlLmdldCgpIF9hdXRvbWF0aW9uU2Vzc2lvbkRpZFJlcXVlc3ROZXdX
ZWJWaWV3OndyYXBwZXIoc2Vzc2lvbildLT5fcGFnZS5nZXQoKTsKKyAgICB1aW50MTZfdCB3a09w
dGlvbnMgPSAwOwogCi0gICAgaWYgKG1fZGVsZWdhdGVNZXRob2RzLmRpZFJlcXVlc3ROZXdXaW5k
b3cpCi0gICAgICAgIHJldHVybiB0b0ltcGwoW21fZGVsZWdhdGUuZ2V0KCkgX2F1dG9tYXRpb25T
ZXNzaW9uRGlkUmVxdWVzdE5ld1dpbmRvdzp3cmFwcGVyKHNlc3Npb24pXSk7CisgICAgaWYgKG9w
dGlvbnMgJiBBUEk6OkF1dG9tYXRpb25TZXNzaW9uQnJvd3NpbmdDb250ZXh0T3B0aW9uc1ByZWZl
ck5ld1RhYikKKyAgICAgICAgd2tPcHRpb25zIHw9IF9XS0F1dG9tYXRpb25TZXNzaW9uQnJvd3Np
bmdDb250ZXh0T3B0aW9uc1ByZWZlck5ld1RhYjsKKworICAgIHJldHVybiBzdGF0aWNfY2FzdDxf
V0tBdXRvbWF0aW9uU2Vzc2lvbkJyb3dzaW5nQ29udGV4dE9wdGlvbnM+KHdrT3B0aW9ucyk7Cit9
CiAKLSAgICByZXR1cm4gbnVsbHB0cjsKKy8vIEZJWE1FIDM3NDA4NzE4OiBzdXBwb3J0IGZvciBX
S1BhZ2VSZWYtYmFzZWQgZGVsZWdhdGUgbWV0aG9kcyBzaG91bGQgYmUgcmVtb3ZlZC4KKy8vIFVu
dGlsIHRoZXNlIGFyZSByZW1vdmVkLCBwcmVmZXIgdG8gdXNlIHRoZSBXS1dlYlZpZXcgZGVsZWdh
dGUgbWV0aG9kcyBpZiBpbXBsZW1lbnRlZC4KK3ZvaWQgQXV0b21hdGlvblNlc3Npb25DbGllbnQ6
OnJlcXVlc3ROZXdQYWdlV2l0aE9wdGlvbnMoV2ViQXV0b21hdGlvblNlc3Npb24mIHNlc3Npb24s
IEFQSTo6QXV0b21hdGlvblNlc3Npb25Ccm93c2luZ0NvbnRleHRPcHRpb25zIG9wdGlvbnMsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViS2l0OjpXZWJQYWdlUHJveHkqKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBpZiAobV9kZWxlZ2F0ZU1ldGhvZHMucmVxdWVzdE5ld1dlYlZpZXdX
aXRoT3B0aW9ucykgeworICAgICAgICBbbV9kZWxlZ2F0ZS5nZXQoKSBfYXV0b21hdGlvblNlc3Np
b246d3JhcHBlcihzZXNzaW9uKSByZXF1ZXN0TmV3V2ViVmlld1dpdGhPcHRpb25zOnRvQVBJKG9w
dGlvbnMpIGNvbXBsZXRpb25IYW5kbGVyOkJsb2NrUHRyPHZvaWQoV0tXZWJWaWV3ICopPjo6ZnJv
bUNhbGxhYmxlKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XShXS1dlYlZpZXcgKndlYlZpZXcpIHsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHdl
YlZpZXctPl9wYWdlLmdldCgpKTsKKyAgICAgICAgfSkuZ2V0KCldOworICAgIH0gZWxzZSBpZiAo
bV9kZWxlZ2F0ZU1ldGhvZHMucmVxdWVzdE5ld1BhZ2VXaXRoT3B0aW9ucykgeworICAgICAgICBb
bV9kZWxlZ2F0ZS5nZXQoKSBfYXV0b21hdGlvblNlc3Npb246d3JhcHBlcihzZXNzaW9uKSByZXF1
ZXN0TmV3UGFnZVdpdGhPcHRpb25zOnRvQVBJKG9wdGlvbnMpIGNvbXBsZXRpb25IYW5kbGVyOkJs
b2NrUHRyPHZvaWQoV0tQYWdlUmVmKT46OmZyb21DYWxsYWJsZShbY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oV0tQYWdlUmVmIHBhZ2UpIHsKKyAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHRvSW1wbChwYWdlKSk7CisgICAgICAgIH0pLmdldCgpXTsK
KyAgICB9CiB9CiAKIGJvb2wgQXV0b21hdGlvblNlc3Npb25DbGllbnQ6OmlzU2hvd2luZ0phdmFT
Y3JpcHREaWFsb2dPblBhZ2UoV2ViQXV0b21hdGlvblNlc3Npb24mIHNlc3Npb24sIFdlYlBhZ2VQ
cm94eSYgcGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJ
RGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1t
CmluZGV4IDAyYzY2NmZmMjY1MGJhNGVmZTVlNDEzZDdlMmE0ODdjOWFmYjFkYjAuLjRjODY1MmYy
OTAzOWFlNzY3ZGI5ZjZjYzc5ODlmMmY4ZTI3ZDg3ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtNzg2LDYgKzc4Niw3IEBAIGJvb2wgVUlEZWxl
Z2F0ZTo6VUlDbGllbnQ6OnJ1bk9wZW5QYW5lbChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5
KiB3ZWJGcmFtZVByCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiBzdGF0
aWMgdm9pZCByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMoY29uc3QgV2Vi
RnJhbWVQcm94eSYgZnJhbWUsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHJlcXVl
c3QsIGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiBkZWxlZ2F0ZSwgV0tXZWJWaWV3JiB3ZWJWaWV3
KQogewogICAgIGF1dG8gZGVjaXNpb25IYW5kbGVyID0gQmxvY2tQdHI8dm9pZChCT09MKT46OmZy
b21DYWxsYWJsZShbcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYocmVxdWVzdCldKEJPT0wgYXV0
aG9yaXplZCkgewpAQCAtODE1LDkgKzgxNiwxMSBAQCBzdGF0aWMgdm9pZCByZXF1ZXN0VXNlck1l
ZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMoY29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUsCiAg
ICAgYXV0byBwcm90ZWN0ZWRXZWJWaWV3ID0gUmV0YWluUHRyPFdLV2ViVmlldz4oJndlYlZpZXcp
OwogICAgIFtkZWxlZ2F0ZSBfd2ViVmlldzpwcm90ZWN0ZWRXZWJWaWV3LmdldCgpIHJlcXVlc3RV
c2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlczpkZXZpY2VzIHVybDpyZXF1ZXN0RnJhbWVV
UkwgbWFpbkZyYW1lVVJMOm1haW5GcmFtZVVSTCBkZWNpc2lvbkhhbmRsZXI6ZGVjaXNpb25IYW5k
bGVyLmdldCgpXTsKIH0KKyNlbmRpZgogCiBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNp
ZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmIHBhZ2Us
IFdlYkZyYW1lUHJveHkmIGZyYW1lLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFPcmln
aW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsT3JpZ2luLCBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0KQogeworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAg
ICAgYXV0byBkZWxlZ2F0ZSA9IG1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlLmdldCgpOwogICAgIGlm
ICghZGVsZWdhdGUgfHwgIW1fdWlEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UmVx
dWVzdFVzZXJNZWRpYUF1dGhvcml6YXRpb25Gb3JEZXZpY2VzVVJMTWFpbkZyYW1lVVJMRGVjaXNp
b25IYW5kbGVyKSB7CiAgICAgICAgIHJlcXVlc3QuZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlVzZXJNZWRpYURpc2FibGVk
KTsKQEAgLTg4OCw2ICs4OTEsNyBAQCBib29sIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveAogICAgICAgICBy
ZXF1ZXN0Q2FtZXJhQXV0aG9yaXphdGlvbigpOwogI2Vsc2UKICAgICByZXF1ZXN0VXNlck1lZGlh
QXV0aG9yaXphdGlvbkZvckRldmljZXMoZnJhbWUsIHJlcXVlc3QsIChpZCA8V0tVSURlbGVnYXRl
UHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUuZ2V0KCksICptX3VpRGVsZWdhdGUubV93
ZWJWaWV3KTsKKyNlbmRpZgogI2VuZGlmCiAKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGVlNTZkMzNkZmMzZTUwNGY1MTli
MzliMGQyOGJiMjNmMGU1ODVhOGIuLjI0OGM0MGZmMDA3MWNhMDg3NzdjYWY3M2YwODZkOWM2NzJl
MDJkYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAt
MjEsNiArMjEsOCBAQAogIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCiAjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKIG1lc3NhZ2VzIC0+IFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgewogICAgIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVy
ZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZSBkZXZpY2UsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwgc3RydWN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMpIC0+IChib29sIHN1Y2Nlc3Ms
IFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5ncyBzZXR0aW5ncykKICAgICBTdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCkBA
IC0yOSwzICszMSw1IEBAIG1lc3NhZ2VzIC0+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkg
ewogICAgIFNldE11dGVkKHVpbnQ2NF90IGlkLCBib29sIG11dGVkKQogICAgIEFwcGx5Q29uc3Ry
YWludHModWludDY0X3QgaWQsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIGNvbnN0
cmFpbnRzKQogfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCmluZGV4IDUzNmFlM2ZlMWUzMjI5YWQyNmI4YTQy
YTA3MDJjYTMxNGVjZTU3NTIuLmU5ZDNjNDc0ZjU1MWJjYzE3MDRlNDkyODIyZDliMjQ5OWY0ODFi
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Bvb2xDb2NvYS5tbQpAQCAtNTEsNiArNTEsNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5l
dHdvcmtTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTlNLZXllZEFyY2hpdmVyU1BJLmg+
CiAjaW1wb3J0IDxzeXMvcGFyYW0uaD4KKyNpbXBvcnQgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+
CiAKICNpZiBQTEFURk9STShJT1MpCiAjaW1wb3J0ICJBcmd1bWVudENvZGVyc0NGLmgiCkBAIC0y
NDgsNiArMjQ5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2Vi
UHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJgogCiAjaWYgUExBVEZPUk0oTUFD
KQogICAgIEFTU0VSVChwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJZGVudGlmaWVy
LmlzRW1wdHkoKSk7CisgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZp
bGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOwogICAgIHBhcmFtZXRlcnMudWlQcm9jZXNzQ29v
a2llU3RvcmFnZUlkZW50aWZpZXIgPSBpZGVudGlmeWluZ0RhdGFGcm9tQ29va2llU3RvcmFnZShb
W05TSFRUUENvb2tpZVN0b3JhZ2Ugc2hhcmVkSFRUUENvb2tpZVN0b3JhZ2VdIF9jb29raWVTdG9y
YWdlXSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpAQCAtMzEwLDYgKzMxMiw3
IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNz
KE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhCiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgQVNT
RVJUKHBhcmFtZXRlcnMudWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZpZXIuaXNFbXB0eSgp
KTsKKyAgICBBU1NFUlQoaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5B
Y2Nlc3NSYXdDb29raWVzKSk7CiAgICAgcGFyYW1ldGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdl
SWRlbnRpZmllciA9IGlkZW50aWZ5aW5nRGF0YUZyb21Db29raWVTdG9yYWdlKFtbTlNIVFRQQ29v
a2llU3RvcmFnZSBzaGFyZWRIVFRQQ29va2llU3RvcmFnZV0gX2Nvb2tpZVN0b3JhZ2VdKTsKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZUNvY29hLm1tCmluZGV4IDIwZmFm
OWZmMGE4NzVkZjA1MDA5MzZjYzk2MzdiMTllMzY5OGM4MjIuLjUwNzVmYzg1M2EyZmMzYzZlYTJh
MzRmZTY1NDRlYTg2Y2VlY2NjOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZUNvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZUNv
Y29hLm1tCkBAIC01MCw2ICs1MCw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpyZWdpc3RlclVzZXJEZWZhdWx0c0lmTmVlZGVkKCkKICAgICAgICAgICAgIHNldEdyYW5k
ZmF0aGVyaW5nVGltZShncmFuZGZhdGhlcmluZ1RpbWUpOwogCiAgICAgICAgIHNldERlYnVnTG9n
Z2dpbmdFbmFibGVkKFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xG
b3JLZXk6QCJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdMb2dnaW5nRW5hYmxlZCJdKTsKKyAg
ICAgICAgc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZShbW05TVXNlckRlZmF1bHRz
IHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OkAiRXhwZXJpbWVudGFsUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RlYnVnTW9kZSJdKTsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUhvc3Qu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJU
cmVlSG9zdC5tbQppbmRleCBiZGMxMmYzNzRhNGI2MmViNWFjY2IyMDk0ZGUxNWI2MjE4OTEwOWQw
Li5lYzRiMTVmOTJlZDg3MDVmNjc4OGU5NDhhYjZhNDZhNGFkMjNiMmM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlSG9z
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlSG9zdC5tbQpAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAiUmVtb3RlTGF5ZXJU
cmVlUHJvcGVydHlBcHBsaWVyLmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bi5oIgogI2ltcG9ydCAiU2hhcmVhYmxlQml0bWFwLmgiCisjaW1wb3J0ICJXS0FuaW1hdGlvbkRl
bGVnYXRlLmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQ
cm94eS5oIgogI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwCmluZGV4
IDU5OGMzOWQ3NGI4MjEzMGMxYTAxM2I5Y2M2ZWZhOWYzZTEzMzdjNDkuLmI2MTkwNGMwODk5YTM4
MWQ0MWMzMmQzNjQzMmM5NzU5N2M1NjgxODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwCkBAIC00MiwxNiArNDIsMTYg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZWY8
U2VydmljZVdvcmtlclByb2Nlc3NQcm94eT4gU2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6Y3Jl
YXRlKFdlYlByb2Nlc3NQb29sJiBwb29sLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgb3JpZ2luLCBX
ZWJzaXRlRGF0YVN0b3JlJiBzdG9yZSkKK1JlZjxTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5PiBT
ZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wmIHBvb2wsIGNv
bnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIFdlYnNpdGVEYXRhU3RvcmUm
IHN0b3JlKQogewotICAgIGF1dG8gcHJveHkgPSBhZG9wdFJlZigqbmV3IFNlcnZpY2VXb3JrZXJQ
cm9jZXNzUHJveHkgeyBwb29sLCBXVEZNb3ZlKG9yaWdpbiksIHN0b3JlIH0pOworICAgIGF1dG8g
cHJveHkgPSBhZG9wdFJlZigqbmV3IFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkgeyBwb29sLCBz
ZWN1cml0eU9yaWdpbiwgc3RvcmUgfSk7CiAgICAgcHJveHktPmNvbm5lY3QoKTsKICAgICByZXR1
cm4gcHJveHk7CiB9CiAKLVNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OlNlcnZpY2VXb3JrZXJQ
cm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmIHBvb2wsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiBv
cmlnaW4sIFdlYnNpdGVEYXRhU3RvcmUmIHN0b3JlKQorU2VydmljZVdvcmtlclByb2Nlc3NQcm94
eTo6U2VydmljZVdvcmtlclByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYgcG9vbCwgY29uc3Qg
U2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwgV2Vic2l0ZURhdGFTdG9yZSYgc3Rv
cmUpCiAgICAgOiBXZWJQcm9jZXNzUHJveHkgeyBwb29sLCBzdG9yZSB9Ci0gICAgLCBtX29yaWdp
bihXVEZNb3ZlKG9yaWdpbikpCisgICAgLCBtX3NlY3VyaXR5T3JpZ2luKHNlY3VyaXR5T3JpZ2lu
KQogICAgICwgbV9zZXJ2aWNlV29ya2VyUGFnZUlEKGdlbmVyYXRlUGFnZUlEKCkpCiB7CiB9CkBA
IC03MSw2ICs3MSw3IEBAIHZvaWQgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6Z2V0TGF1bmNo
T3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmCiAgICAgV2ViUHJvY2Vzc1By
b3h5OjpnZXRMYXVuY2hPcHRpb25zKGxhdW5jaE9wdGlvbnMpOwogCiAgICAgbGF1bmNoT3B0aW9u
cy5leHRyYUluaXRpYWxpemF0aW9uRGF0YS5hZGQoQVNDSUlMaXRlcmFsKCJzZXJ2aWNlLXdvcmtl
ci1wcm9jZXNzIiksIEFTQ0lJTGl0ZXJhbCgiMSIpKTsKKyAgICBsYXVuY2hPcHRpb25zLmV4dHJh
SW5pdGlhbGl6YXRpb25EYXRhLmFkZChBU0NJSUxpdGVyYWwoInNlY3VyaXR5LW9yaWdpbiIpLCBz
ZWN1cml0eU9yaWdpbigpLnRvU3RyaW5nKCkpOwogfQogCiB2b2lkIFNlcnZpY2VXb3JrZXJQcm9j
ZXNzUHJveHk6OnN0YXJ0KGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlLCBzdGQ6Om9w
dGlvbmFsPFBBTDo6U2Vzc2lvbklEPiBpbml0aWFsU2Vzc2lvbklEKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oCmluZGV4IDFjNzcw
YjFhZDkzNWY0Njk0ZThjYzA2YjNjMmRlNWY3ZDk2MTE4MDUuLjMzNTFiNzQwOTRiZTQ3ZTgzMGUz
OTdjNDA2ODFiYWEwODI5OGI1YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKQEAgLTI4LDcgKzI4LDcgQEAKICNpZiBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCiAKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKLSNpbmNs
dWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0
eU9yaWdpbkRhdGEuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZVByb3h5OwpAQCAtMzYsNyArMzYsNyBAQCBzdHJ1Y3QgV2ViUHJlZmVyZW5jZXNT
dG9yZTsKIAogY2xhc3MgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eSBmaW5hbCA6IHB1YmxpYyBX
ZWJQcm9jZXNzUHJveHkgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtlclBy
b2Nlc3NQcm94eT4gY3JlYXRlKFdlYlByb2Nlc3NQb29sJiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luPiYmLCBXZWJzaXRlRGF0YVN0b3JlJik7CisgICAgc3RhdGljIFJlZjxTZXJ2aWNlV29y
a2VyUHJvY2Vzc1Byb3h5PiBjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wmLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmLCBXZWJzaXRlRGF0YVN0b3JlJik7CiAgICAgflNlcnZpY2VXb3Jr
ZXJQcm9jZXNzUHJveHkoKTsKIAogICAgIHN0YXRpYyBib29sIGhhc1JlZ2lzdGVyZWRTZXJ2aWNl
V29ya2Vycyhjb25zdCBTdHJpbmcmIHNlcnZpY2VXb3JrZXJEaXJlY3RvcnkpOwpAQCAtNDcsNyAr
NDcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRVc2VyQWdlbnQoY29uc3QgU3RyaW5nJik7CiAg
ICAgdm9pZCB1cGRhdGVQcmVmZXJlbmNlc1N0b3JlKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUm
KTsKIAotICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4oKSB7IHJldHVybiBtX29y
aWdpbi5nZXQoKTsgfQorICAgIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgc2Vj
dXJpdHlPcmlnaW4oKSB7IHJldHVybiBtX3NlY3VyaXR5T3JpZ2luOyB9CiAgICAgdWludDY0X3Qg
cGFnZUlEKCkgY29uc3QgeyByZXR1cm4gbV9zZXJ2aWNlV29ya2VyUGFnZUlEOyB9CiAKIHByaXZh
dGU6CkBAIC01Niw5ICs1Niw5IEBAIHByaXZhdGU6CiAKICAgICBib29sIGlzU2VydmljZVdvcmtl
clByb2Nlc3MoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICBTZXJ2aWNlV29y
a2VyUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luPiYmLCBXZWJzaXRlRGF0YVN0b3JlJik7CisgICAgU2VydmljZVdvcmtlclByb2Nlc3NQcm94
eShXZWJQcm9jZXNzUG9vbCYsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYsIFdl
YnNpdGVEYXRhU3RvcmUmKTsKIAotICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gbV9v
cmlnaW47CisgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG1fc2VjdXJpdHlPcmlnaW47
CiAgICAgdWludDY0X3QgbV9zZXJ2aWNlV29ya2VyUGFnZUlEIHsgMCB9OwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NQcm94
eS5jcHAKaW5kZXggOWU3ODhmNDc0NzBlNmU0ZWFiMWZmYTkxMDUzNWJiMDk3NzNiYTMyMC4uNTRh
MDc5MjliZWI4NWE3NmM2YzI5NmY4NGJkODY4NDlmZTRjYWQwZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHkuY3BwCkBA
IC0xMjIsMTUgKzEyMiwxNSBAQCB2b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmdldFN0b3JhZ2VQ
cm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2NlcwogICAgIH0KIAogICAg
IGJvb2wgaXNTZXJ2aWNlV29ya2VyUHJvY2VzcyA9IGZhbHNlOwotICAgIFNlY3VyaXR5T3JpZ2lu
RGF0YSBvcmlnaW47CisgICAgU2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2luOwogI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICBpZiAoaXM8U2VydmljZVdvcmtlclByb2Nlc3NQ
cm94eT4od2ViUHJvY2Vzc1Byb3h5KSkgewogICAgICAgICBpc1NlcnZpY2VXb3JrZXJQcm9jZXNz
ID0gdHJ1ZTsKLSAgICAgICAgb3JpZ2luID0gU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJp
dHlPcmlnaW4oZG93bmNhc3Q8U2VydmljZVdvcmtlclByb2Nlc3NQcm94eT4od2ViUHJvY2Vzc1By
b3h5KS5vcmlnaW4oKSk7CisgICAgICAgIHNlY3VyaXR5T3JpZ2luID0gZG93bmNhc3Q8U2Vydmlj
ZVdvcmtlclByb2Nlc3NQcm94eT4od2ViUHJvY2Vzc1Byb3h5KS5zZWN1cml0eU9yaWdpbigpOwog
ICAgIH0KICNlbmRpZgogCi0gICAgc2VuZChNZXNzYWdlczo6U3RvcmFnZVByb2Nlc3M6OkNyZWF0
ZVN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGlzU2VydmljZVdvcmtlclByb2Nlc3MsIG9y
aWdpbiksIDAsIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5n
Rm9yU3luY1JlcGx5KTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vzczo6Q3JlYXRl
U3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oaXNTZXJ2aWNlV29ya2VyUHJvY2Vzcywgc2Vj
dXJpdHlPcmlnaW4pLCAwLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVu
V2FpdGluZ0ZvclN5bmNSZXBseSk7CiB9CiAKIHZvaWQgU3RvcmFnZVByb2Nlc3NQcm94eTo6ZGlk
Q2xvc2UoSVBDOjpDb25uZWN0aW9uJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNw
cAppbmRleCAwNDFkN2I4MWExYmZhYmNhNTRmMDA1MWM2NzU3MjczMzQ4NjhlNWUzLi4yNmI4NjYx
YmQ2MWZkM2NiMTc3ZDMxMzRiY2MxOWE1NDM4NjQyYjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuY3BwCkBAIC0zOCw3ICszOCw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiBzdGF0
aWMgY29uc3QgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIGFjdGl2ZUNhcHR1cmVNYXNr
ID0gTWVkaWFQcm9kdWNlcjo6SGFzQWN0aXZlQXVkaW9DYXB0dXJlRGV2aWNlIHwgTWVkaWFQcm9k
dWNlcjo6SGFzQWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlOworI2VuZGlmCiAKIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UpCiAgICAgOiBtX3BhZ2UocGFnZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYk5hdmlnYXRpb25TdGF0ZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJOYXZpZ2F0aW9uU3RhdGUuY3BwCmluZGV4IDQ4Zjkz
NDU5ZTlhMTY4NTBlZDI3OTBhZDBjZDc0ZjFlYjk5ZTM2ZTQuLjMxYTcwN2IyZTY4NGJlZDkzMDli
NzMyY2IzZTgxZDRmM2FlZjZmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYk5hdmlnYXRpb25TdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
TmF2aWdhdGlvblN0YXRlLmNwcApAQCAtMzAsNiArMzAsOCBAQAogI2luY2x1ZGUgIldlYlBhZ2VQ
cm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViTmF2aWdhdGlvblN0
YXRlOjpXZWJOYXZpZ2F0aW9uU3RhdGUoKQpAQCAtNDAsNyArNDIsNyBAQCBXZWJOYXZpZ2F0aW9u
U3RhdGU6On5XZWJOYXZpZ2F0aW9uU3RhdGUoKQogewogfQogCi1SZWY8QVBJOjpOYXZpZ2F0aW9u
PiBXZWJOYXZpZ2F0aW9uU3RhdGU6OmNyZWF0ZUxvYWRSZXF1ZXN0TmF2aWdhdGlvbihXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQorUmVmPEFQSTo6TmF2aWdhdGlvbj4gV2ViTmF2
aWdhdGlvblN0YXRlOjpjcmVhdGVMb2FkUmVxdWVzdE5hdmlnYXRpb24oUmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCkKIHsKICAgICBhdXRvIG5hdmlnYXRpb24gPSBBUEk6Ok5hdmlnYXRpb246OmNy
ZWF0ZSgqdGhpcywgV1RGTW92ZShyZXF1ZXN0KSk7CiAKQEAgLTQ5LDkgKzUxLDkgQEAgUmVmPEFQ
STo6TmF2aWdhdGlvbj4gV2ViTmF2aWdhdGlvblN0YXRlOjpjcmVhdGVMb2FkUmVxdWVzdE5hdmln
YXRpb24oV2ViQ29yZTo6UmUKICAgICByZXR1cm4gbmF2aWdhdGlvbjsKIH0KIAotUmVmPEFQSTo6
TmF2aWdhdGlvbj4gV2ViTmF2aWdhdGlvblN0YXRlOjpjcmVhdGVCYWNrRm9yd2FyZE5hdmlnYXRp
b24oKQorUmVmPEFQSTo6TmF2aWdhdGlvbj4gV2ViTmF2aWdhdGlvblN0YXRlOjpjcmVhdGVCYWNr
Rm9yd2FyZE5hdmlnYXRpb24oV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYgaXRlbSwgRnJhbWVMb2Fk
VHlwZSBmcmFtZUxvYWRUeXBlKQogewotICAgIGF1dG8gbmF2aWdhdGlvbiA9IEFQSTo6TmF2aWdh
dGlvbjo6Y3JlYXRlKCp0aGlzKTsKKyAgICBhdXRvIG5hdmlnYXRpb24gPSBBUEk6Ok5hdmlnYXRp
b246OmNyZWF0ZSgqdGhpcywgaXRlbSwgZnJhbWVMb2FkVHlwZSk7CiAKICAgICBtX25hdmlnYXRp
b25zLnNldChuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbi5wdHIoKSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYk5hdmlnYXRpb25TdGF0ZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTmF2aWdhdGlvblN0YXRlLmgKaW5kZXggNDVh
YjJkMmJjN2NiNjAwYWY5MzY0ZDhiMjViMmQ3ZmM0YTliM2U5My4uMGUxMmYzZjgwMTFhYWRhM2U4
NjMzOWE5OTNlY2NjZDhmMjcxZThhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViTmF2aWdhdGlvblN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
TmF2aWdhdGlvblN0YXRlLmgKQEAgLTM0LDYgKzM0LDggQEAgY2xhc3MgTmF2aWdhdGlvbjsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OworCitlbnVtIGNsYXNz
IEZyYW1lTG9hZFR5cGU7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDYsNyArNDgsNyBA
QCBwdWJsaWM6CiAgICAgZXhwbGljaXQgV2ViTmF2aWdhdGlvblN0YXRlKCk7CiAgICAgfldlYk5h
dmlnYXRpb25TdGF0ZSgpOwogCi0gICAgUmVmPEFQSTo6TmF2aWdhdGlvbj4gY3JlYXRlQmFja0Zv
cndhcmROYXZpZ2F0aW9uKCk7CisgICAgUmVmPEFQSTo6TmF2aWdhdGlvbj4gY3JlYXRlQmFja0Zv
cndhcmROYXZpZ2F0aW9uKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mLCBXZWJDb3JlOjpGcmFtZUxv
YWRUeXBlKTsKICAgICBSZWY8QVBJOjpOYXZpZ2F0aW9uPiBjcmVhdGVMb2FkUmVxdWVzdE5hdmln
YXRpb24oV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYpOwogICAgIFJlZjxBUEk6Ok5hdmlnYXRp
b24+IGNyZWF0ZVJlbG9hZE5hdmlnYXRpb24oKTsKICAgICBSZWY8QVBJOjpOYXZpZ2F0aW9uPiBj
cmVhdGVMb2FkRGF0YU5hdmlnYXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCmluZGV4IDI3MmQ2MzkwMWNkYWI4ZmVhYmJhMDA2NjA2YTJmMjdhNWZmN2IyN2Qu
LjE4YTEwZTc1ZGIzMTVjNTY0YWFkYTY2YmY0OGNiOGRmNDU3OGNjMTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTI2LDExICsxMjYsMTMgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0V2ZW50TmFtZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRm9jdXNEaXJlY3Rpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9KU0RPTUJpbmRpbmcuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0xlbmd0aEJveC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTWVkaWFTdHJlYW1SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9O
YXZpZ2F0aW9uUG9saWN5Q2hlY2suaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BlcmZvcm1hbmNlTG9n
Z2luZ0NsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHVibGljU3VmZml4Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZW5kZXJFbWJlZGRlZE9iamVjdC5oPgpAQCAtNzEzLDEzICs3MTUsMTMgQEAg
UmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5OjpyZWF0dGFjaFRvV2ViUHJvY2Vz
c0ZvclJlbG9hZCgpCiAgICAgYXV0byBuYXZpZ2F0aW9uID0gbV9uYXZpZ2F0aW9uU3RhdGUtPmNy
ZWF0ZVJlbG9hZE5hdmlnYXRpb24oKTsKIAogICAgIC8vIFdlIGFsbG93IHN0YWxlIGNvbnRlbnQg
d2hlbiByZWxvYWRpbmcgYSBXZWJQcm9jZXNzIHRoYXQncyBiZWVuIGtpbGxlZCBvciBjcmFzaGVk
LgotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJk
SXRlbShuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSwgbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJl
bnRJdGVtKCktPml0ZW1JRCgpKSwgbV9wYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9u
SUQoKSwgbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCktPml0ZW1JRCgpLCBGcmFtZUxv
YWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQsIE5hdmlnYXRpb25Qb2xpY3lDaGVjazo6UmVxdWly
ZSksIG1fcGFnZUlEKTsKICAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdGFy
dCgpOwogCiAgICAgcmV0dXJuIFdURk1vdmUobmF2aWdhdGlvbik7CiB9CiAKLVJlZlB0cjxBUEk6
Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6cmVhdHRhY2hUb1dlYlByb2Nlc3NXaXRoSXRlbShX
ZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBpdGVtKQorUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2Vi
UGFnZVByb3h5OjpyZWF0dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0mIGl0ZW0pCiB7CiAgICAgaWYgKG1faXNDbG9zZWQpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwpAQCAtNzI3LDE1ICs3MjksMTIgQEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFn
ZVByb3h5OjpyZWF0dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKFdlYkJhY2tGb3J3YXIKICAgICBB
U1NFUlQoIWlzVmFsaWQoKSk7CiAgICAgcmVhdHRhY2hUb1dlYlByb2Nlc3MoKTsKIAotICAgIGlm
ICghaXRlbSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBpZiAoaXRlbSAhPSBtX2Jh
Y2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKSkKLSAgICAgICAgbV9iYWNrRm9yd2FyZExpc3Qt
PmdvVG9JdGVtKCppdGVtKTsKKyAgICBpZiAoJml0ZW0gIT0gbV9iYWNrRm9yd2FyZExpc3QtPmN1
cnJlbnRJdGVtKCkpCisgICAgICAgIG1fYmFja0ZvcndhcmRMaXN0LT5nb1RvSXRlbShpdGVtKTsK
IAotICAgIGF1dG8gbmF2aWdhdGlvbiA9IG1fbmF2aWdhdGlvblN0YXRlLT5jcmVhdGVCYWNrRm9y
d2FyZE5hdmlnYXRpb24oKTsKKyAgICBhdXRvIG5hdmlnYXRpb24gPSBtX25hdmlnYXRpb25TdGF0
ZS0+Y3JlYXRlQmFja0ZvcndhcmROYXZpZ2F0aW9uKGl0ZW0sIEZyYW1lTG9hZFR5cGU6OkluZGV4
ZWRCYWNrRm9yd2FyZCk7CiAKLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkdvVG9CYWNrRm9yd2FyZEl0ZW0obmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCksIGl0ZW0tPml0
ZW1JRCgpKSwgbV9wYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSwgaXRlbS5p
dGVtSUQoKSwgRnJhbWVMb2FkVHlwZTo6SW5kZXhlZEJhY2tGb3J3YXJkLCBOYXZpZ2F0aW9uUG9s
aWN5Q2hlY2s6OlJlcXVpcmUpLCBtX3BhZ2VJRCk7CiAgICAgbV9wcm9jZXNzLT5yZXNwb25zaXZl
bmVzc1RpbWVyKCkuc3RhcnQoKTsKIAogICAgIHJldHVybiBXVEZNb3ZlKG5hdmlnYXRpb24pOwpA
QCAtMTE4NCwyMSArMTE4Myw3IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94
eTo6Z29Gb3J3YXJkKCkKICAgICBpZiAoIWZvcndhcmRJdGVtKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAotICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3BhZ2VMb2FkU3RhdGUudHJhbnNhY3Rp
b24oKTsKLQotICAgIG1fcGFnZUxvYWRTdGF0ZS5zZXRQZW5kaW5nQVBJUmVxdWVzdFVSTCh0cmFu
c2FjdGlvbiwgZm9yd2FyZEl0ZW0tPnVybCgpKTsKLQotICAgIGlmICghaXNWYWxpZCgpKQotICAg
ICAgICByZXR1cm4gcmVhdHRhY2hUb1dlYlByb2Nlc3NXaXRoSXRlbShmb3J3YXJkSXRlbSk7Ci0K
LSAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBuYXZpZ2F0aW9uOwotICAgIGlmICghbV9iYWNr
Rm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCktPml0ZW1Jc0luU2FtZURvY3VtZW50KCpmb3J3YXJk
SXRlbSkpCi0gICAgICAgIG5hdmlnYXRpb24gPSBtX25hdmlnYXRpb25TdGF0ZS0+Y3JlYXRlQmFj
a0ZvcndhcmROYXZpZ2F0aW9uKCk7Ci0KLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OkdvRm9yd2FyZChuYXZpZ2F0aW9uID8gbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCkg
OiAwLCBmb3J3YXJkSXRlbS0+aXRlbUlEKCkpLCBtX3BhZ2VJRCk7Ci0gICAgbV9wcm9jZXNzLT5y
ZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsKLQotICAgIHJldHVybiBuYXZpZ2F0aW9uOwor
ICAgIHJldHVybiBnb1RvQmFja0ZvcndhcmRJdGVtKCpmb3J3YXJkSXRlbSwgRnJhbWVMb2FkVHlw
ZTo6Rm9yd2FyZCk7CiB9CiAKIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6
Z29CYWNrKCkKQEAgLTEyMDcsMzcgKzExOTIsMzAgQEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4g
V2ViUGFnZVByb3h5Ojpnb0JhY2soKQogICAgIGlmICghYmFja0l0ZW0pCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogCi0gICAgYXV0byB0cmFuc2FjdGlvbiA9IG1fcGFnZUxvYWRTdGF0ZS50cmFu
c2FjdGlvbigpOwotCi0gICAgbV9wYWdlTG9hZFN0YXRlLnNldFBlbmRpbmdBUElSZXF1ZXN0VVJM
KHRyYW5zYWN0aW9uLCBiYWNrSXRlbS0+dXJsKCkpOwotCi0gICAgaWYgKCFpc1ZhbGlkKCkpCi0g
ICAgICAgIHJldHVybiByZWF0dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKGJhY2tJdGVtKTsKLQot
ICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb247Ci0gICAgaWYgKCFtX2JhY2tG
b3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKS0+aXRlbUlzSW5TYW1lRG9jdW1lbnQoKmJhY2tJdGVt
KSkKLSAgICAgICAgbmF2aWdhdGlvbiA9IG1fbmF2aWdhdGlvblN0YXRlLT5jcmVhdGVCYWNrRm9y
d2FyZE5hdmlnYXRpb24oKTsKLQotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFn
ZTo6R29CYWNrKG5hdmlnYXRpb24gPyBuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSA6IDAsIGJh
Y2tJdGVtLT5pdGVtSUQoKSksIG1fcGFnZUlEKTsKLSAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVu
ZXNzVGltZXIoKS5zdGFydCgpOworICAgIHJldHVybiBnb1RvQmFja0ZvcndhcmRJdGVtKCpiYWNr
SXRlbSwgRnJhbWVMb2FkVHlwZTo6QmFjayk7Cit9CiAKLSAgICByZXR1cm4gbmF2aWdhdGlvbjsK
K1JlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRl
bShXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiBpdGVtKQoreworICAgIHJldHVybiBnb1RvQmFja0Zv
cndhcmRJdGVtKGl0ZW0sIEZyYW1lTG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCk7CiB9CiAK
LVJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRl
bShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBpdGVtKQorUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4g
V2ViUGFnZVByb3h5Ojpnb1RvQmFja0ZvcndhcmRJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0m
IGl0ZW0sIEZyYW1lTG9hZFR5cGUgZnJhbWVMb2FkVHlwZSkKIHsKKyAgICBMT0coTG9hZGluZywg
IldlYlBhZ2VQcm94eSAlcCBnb1RvQmFja0ZvcndhcmRJdGVtIHRvIGJhY2sgaXRlbSBVUkwgJXMi
LCB0aGlzLCBpdGVtLnVybCgpLnV0ZjgoKS5kYXRhKCkpOworCiAgICAgaWYgKCFpc1ZhbGlkKCkp
CiAgICAgICAgIHJldHVybiByZWF0dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKGl0ZW0pOwogCiAg
ICAgYXV0byB0cmFuc2FjdGlvbiA9IG1fcGFnZUxvYWRTdGF0ZS50cmFuc2FjdGlvbigpOwogCi0g
ICAgbV9wYWdlTG9hZFN0YXRlLnNldFBlbmRpbmdBUElSZXF1ZXN0VVJMKHRyYW5zYWN0aW9uLCBp
dGVtLT51cmwoKSk7CisgICAgbV9wYWdlTG9hZFN0YXRlLnNldFBlbmRpbmdBUElSZXF1ZXN0VVJM
KHRyYW5zYWN0aW9uLCBpdGVtLnVybCgpKTsKIAogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+
IG5hdmlnYXRpb247Ci0gICAgaWYgKCFtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKS0+
aXRlbUlzSW5TYW1lRG9jdW1lbnQoKml0ZW0pKQotICAgICAgICBuYXZpZ2F0aW9uID0gbV9uYXZp
Z2F0aW9uU3RhdGUtPmNyZWF0ZUJhY2tGb3J3YXJkTmF2aWdhdGlvbigpOworICAgIGlmICghbV9i
YWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCktPml0ZW1Jc0luU2FtZURvY3VtZW50KGl0ZW0p
KQorICAgICAgICBuYXZpZ2F0aW9uID0gbV9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUJhY2tGb3J3
YXJkTmF2aWdhdGlvbihpdGVtLCBmcmFtZUxvYWRUeXBlKTsKIAotICAgIG1fcHJvY2Vzcy0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uID8gbmF2
aWdhdGlvbi0+bmF2aWdhdGlvbklEKCkgOiAwLCBpdGVtLT5pdGVtSUQoKSksIG1fcGFnZUlEKTsK
KyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdvVG9CYWNrRm9yd2FyZEl0
ZW0obmF2aWdhdGlvbiA/IG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpIDogMCwgaXRlbS5pdGVt
SUQoKSwgZnJhbWVMb2FkVHlwZSwgTmF2aWdhdGlvblBvbGljeUNoZWNrOjpSZXF1aXJlKSwgbV9w
YWdlSUQpOwogICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CiAK
ICAgICByZXR1cm4gbmF2aWdhdGlvbjsKQEAgLTIzNzUsNiArMjM1Myw4IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpyZWNlaXZlZFBvbGljeURlY2lzaW9uKFBvbGljeUFjdGlvbiBhY3Rpb24sIFdlYkZy
YW1lUHJveHkmIGZyCiAgICAgICAgIGlmIChhY3Rpb24gPT0gUG9saWN5QWN0aW9uOjpVc2UgJiYg
bmF2aWdhdGlvbikgewogICAgICAgICAgICAgYXV0byBwcm9wb3NlZFByb2Nlc3MgPSBwcm9jZXNz
KCkucHJvY2Vzc1Bvb2woKS5wcm9jZXNzRm9yTmF2aWdhdGlvbigqdGhpcywgbmF2aWdhdGlvbi0+
cmVxdWVzdCgpLnVybCgpKTsKICAgICAgICAgICAgIGlmIChwcm9wb3NlZFByb2Nlc3MucHRyKCkg
IT0gJnByb2Nlc3MoKSkgeworICAgICAgICAgICAgICAgIExPRyhMb2FkaW5nLCAiU3dpdGNoaW5n
IHRvIG5ldyBwcm9jZXNzIGZvciBuYXZpZ2F0aW9uICUiIFBSSXU2NCAiIHRvIHVybCAnJXMnIChX
ZWJCYWNrRm9yd2FyZExpc3RJdGVtICVwKSIsIG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpLCBu
YXZpZ2F0aW9uLT5sb2dnaW5nVVJMKCkudXRmOCgpLmRhdGEoKSwgbmF2aWdhdGlvbi0+YmFja0Zv
cndhcmRMaXN0SXRlbSgpKTsKKwogICAgICAgICAgICAgICAgIGFjdGlvbiA9IFBvbGljeUFjdGlv
bjo6U3VzcGVuZDsKICAgICAgICAgICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbmF2aWdhdGlvbiA9IG1ha2VSZWYo
Km5hdmlnYXRpb24pLCBwcm9wb3NlZFByb2Nlc3MgPSBXVEZNb3ZlKHByb3Bvc2VkUHJvY2Vzcyld
KCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3
UHJvY2VzcyhuYXZpZ2F0aW9uLmdldCgpLCBXVEZNb3ZlKHByb3Bvc2VkUHJvY2VzcykpOwpAQCAt
MjM4OCwxMCArMjM2OCwyMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWRQb2xpY3lEZWNp
c2lvbihQb2xpY3lBY3Rpb24gYWN0aW9uLCBXZWJGcmFtZVByb3h5JiBmcgogCiB2b2lkIFdlYlBh
Z2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKEFQSTo6TmF2aWdhdGlvbiYg
bmF2aWdhdGlvbiwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzKQogewotICAgIExPRyhM
b2FkaW5nLCAiQ29udGludWluZyBuYXZpZ2F0aW9uICUiIFBSSXU2NCAiIHRvIFVSTCAlcyBpbiBh
IG5ldyB3ZWIgcHJvY2VzcyIsIG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCksIG5hdmlnYXRpb24u
cmVxdWVzdCgpLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIExPRyhMb2FkaW5n
LCAiQ29udGludWluZyBuYXZpZ2F0aW9uICUiIFBSSXU2NCAiIHRvIFVSTCAlcyBpbiBhIG5ldyB3
ZWIgcHJvY2VzcyIsIG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCksIG5hdmlnYXRpb24ubG9nZ2lu
Z1VSTCgpLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgYXR0YWNoVG9Qcm9jZXNzRm9yTmF2aWdhdGlv
bihXVEZNb3ZlKHByb2Nlc3MpKTsKIAorICAgIGlmIChhdXRvKiBpdGVtID0gbmF2aWdhdGlvbi5i
YWNrRm9yd2FyZExpc3RJdGVtKCkpIHsKKyAgICAgICAgaWYgKGl0ZW0gIT0gbV9iYWNrRm9yd2Fy
ZExpc3QtPmN1cnJlbnRJdGVtKCkpCisgICAgICAgICAgICBtX2JhY2tGb3J3YXJkTGlzdC0+Z29U
b0l0ZW0oKml0ZW0pOworCisgICAgICAgIEFTU0VSVChuYXZpZ2F0aW9uLmJhY2tGb3J3YXJkRnJh
bWVMb2FkVHlwZSgpKTsKKyAgICAgICAgQVNTRVJUKGlzQmFja0ZvcndhcmRMb2FkVHlwZSgqbmF2
aWdhdGlvbi5iYWNrRm9yd2FyZEZyYW1lTG9hZFR5cGUoKSkpOworCisgICAgICAgIG1fcHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9u
Lm5hdmlnYXRpb25JRCgpLCBpdGVtLT5pdGVtSUQoKSwgKm5hdmlnYXRpb24uYmFja0ZvcndhcmRG
cmFtZUxvYWRUeXBlKCksIE5hdmlnYXRpb25Qb2xpY3lDaGVjazo6QnlwYXNzKSwgbV9wYWdlSUQp
OworCisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICAvLyBGSVhNRTogV29yayBvdXQgdGlt
aW5nIG9mIHJlc3BvbmRpbmcgd2l0aCB0aGUgbGFzdCBwb2xpY3kgZGVsZWdhdGUsIGV0YwogICAg
IGxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb24obmF2aWdhdGlvbiwgUmVzb3VyY2VSZXF1ZXN0IHsg
bmF2aWdhdGlvbi5yZXF1ZXN0KCkgfSwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeTo6U2hvdWxkQWxsb3dFeHRlcm5hbFNjaGVtZXMsIG51bGxwdHIsIE5hdmlnYXRpb25Qb2xp
Y3lDaGVjazo6QnlwYXNzKTsKIH0KQEAgLTI1MjgsOSArMjUyMCw4IEBAIFJlZlB0cjxBUEk6Ok5h
dmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6cmVzdG9yZUZyb21TZXNzaW9uU3RhdGUoU2Vzc2lvblN0
YXRlIHNlc3NpCiAgICAgICAgICAgICByZXR1cm4gbG9hZFJlcXVlc3Qoc2Vzc2lvblN0YXRlLnBy
b3Zpc2lvbmFsVVJMKTsKIAogICAgICAgICBpZiAoaGFzQmFja0ZvcndhcmRMaXN0KSB7Ci0gICAg
ICAgICAgICAvLyBGSVhNRTogRG8gd2UgaGF2ZSB0byBudWxsIGNoZWNrIHRoZSBiYWNrIGZvcndh
cmQgbGlzdCBpdGVtIGhlcmU/CiAgICAgICAgICAgICBpZiAoV2ViQmFja0ZvcndhcmRMaXN0SXRl
bSogaXRlbSA9IG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgpKQotICAgICAgICAgICAg
ICAgIHJldHVybiBnb1RvQmFja0ZvcndhcmRJdGVtKGl0ZW0pOworICAgICAgICAgICAgICAgIHJl
dHVybiBnb1RvQmFja0ZvcndhcmRJdGVtKCppdGVtKTsKICAgICAgICAgfQogICAgIH0KIApAQCAt
MzgzMCw2ICszODIxLDggQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24odWludDY0X3QgZnJhbWVJRCwgY29uc3QgU2VjdXIKICNpZiBFTkFCTEUoQ09O
VEVOVF9GSUxURVJJTkcpCiAgICAgaWYgKGZyYW1lLT5kaWRIYW5kbGVDb250ZW50RmlsdGVyVW5i
bG9ja05hdmlnYXRpb24ocmVxdWVzdCkpCiAgICAgICAgIHJldHVybiByZWNlaXZlZFBvbGljeURl
Y2lzaW9uKFBvbGljeUFjdGlvbjo6SWdub3JlLCAqZnJhbWUsIGxpc3RlbmVySUQsICZtX25hdmln
YXRpb25TdGF0ZS0+bmF2aWdhdGlvbihuZXdOYXZpZ2F0aW9uSUQpLCB7IH0pOworI2Vsc2UKKyAg
ICBVTlVTRUQobmV3TmF2aWdhdGlvbklEKTsKICNlbmRpZgogCiAgICAgV2ViRnJhbWVQcm94eSog
b3JpZ2luYXRpbmdGcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUob3JpZ2luYXRpbmdGcmFtZUlu
Zm9EYXRhLmZyYW1lSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRl
eCBkYzU5NDk4ZGIxYjhlZmNmNzM5MDMyZWU1NWMzYWRiM2M0NmZiZDA4Li4wNGU1ODg5YjEzODYw
OGFlOWJkOTFhZDk1OGM4ZGY3MGUyMjQ5NDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaApAQCAtMTY0LDYgKzE2NCwxNCBAQCBjbGFzcyBTaGFyZWRCdWZmZXI7CiBjbGFz
cyBUZXh0SW5kaWNhdG9yOwogY2xhc3MgVmFsaWRhdGlvbkJ1YmJsZTsKIAorZW51bSBTZWxlY3Rp
b25EaXJlY3Rpb24gOiB1aW50OF90OworCitlbnVtIGNsYXNzIEF1dG9wbGF5RXZlbnQ7CitlbnVt
IGNsYXNzIEhhc0luc2VjdXJlQ29udGVudDsKK2VudW0gY2xhc3MgTmF2aWdhdGlvblBvbGljeUNo
ZWNrOworZW51bSBjbGFzcyBOb3RpZmljYXRpb25EaXJlY3Rpb247CitlbnVtIGNsYXNzIFNob3Vs
ZFNhbXBsZTsKKwogc3RydWN0IEFwcGxpY2F0aW9uTWFuaWZlc3Q7CiBzdHJ1Y3QgRGljdGlvbmFy
eVBvcHVwSW5mbzsKIHN0cnVjdCBFeGNlcHRpb25EZXRhaWxzOwpAQCAtMTc1LDEzICsxODMsNiBA
QCBzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0Owogc3RydWN0IFZpZXdwb3J0QXR0cmlidXRlczsK
IHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKIAotZW51bSBTZWxlY3Rpb25EaXJlY3Rpb24gOiB1aW50
OF90OwotCi1lbnVtIGNsYXNzIEF1dG9wbGF5RXZlbnQ7Ci1lbnVtIGNsYXNzIEhhc0luc2VjdXJl
Q29udGVudDsKLWVudW0gY2xhc3MgTm90aWZpY2F0aW9uRGlyZWN0aW9uOwotZW51bSBjbGFzcyBT
aG91bGRTYW1wbGU7Ci0KIHRlbXBsYXRlIDx0eXBlbmFtZT4gY2xhc3MgUmVjdEVkZ2VzOwogdXNp
bmcgRmxvYXRCb3hFeHRlbnQgPSBSZWN0RWRnZXM8ZmxvYXQ+OwogfQpAQCAtNDQwLDcgKzQ0MSw3
IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBnb0ZvcndhcmQoKTsKICAg
ICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBnb0JhY2soKTsKIAotICAgIFJlZlB0cjxBUEk6Ok5h
dmlnYXRpb24+IGdvVG9CYWNrRm9yd2FyZEl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0SXRlbSopOwor
ICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IGdvVG9CYWNrRm9yd2FyZEl0ZW0oV2ViQmFja0Zv
cndhcmRMaXN0SXRlbSYpOwogICAgIHZvaWQgdHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9uKCk7CiAg
ICAgdm9pZCBkaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSog
YWRkZWRJdGVtLCBWZWN0b3I8UmVmPFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0+PiYmIHJlbW92ZWQp
OwogICAgIHZvaWQgd2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHVpbnQ2NF90IGl0ZW1JRCwg
Ym9vbCBpblBhZ2VDYWNoZSwgY29uc3QgVXNlckRhdGEmKTsKQEAgLTQ5NSw3ICs0OTYsOCBAQCBw
dWJsaWM6CiAKICAgICBXZWJDb3JlOjpJbnRTaXplIHZpZXdTaXplKCkgY29uc3Q7CiAgICAgYm9v
bCBpc1ZpZXdWaXNpYmxlKCkgY29uc3QgeyByZXR1cm4gbV9hY3Rpdml0eVN0YXRlICYgV2ViQ29y
ZTo6QWN0aXZpdHlTdGF0ZTo6SXNWaXNpYmxlOyB9Ci0gICAgYm9vbCBpc1ZpZXdXaW5kb3dBY3Rp
dmUoKSBjb25zdDsKKyAgICBib29sIGlzVmlld0ZvY3VzZWQoKSBjb25zdCB7IHJldHVybiBtX2Fj
dGl2aXR5U3RhdGUgJiBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0ZvY3VzZWQ7IH0KKyAgICBi
b29sIGlzVmlld1dpbmRvd0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYWN0aXZpdHlTdGF0ZSAm
IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OldpbmRvd0lzQWN0aXZlOyB9CiAKICAgICB2b2lkIGFk
ZE1JTUVUeXBlV2l0aEN1c3RvbUNvbnRlbnRQcm92aWRlcihjb25zdCBTdHJpbmcmIG1pbWVUeXBl
KTsKIApAQCAtMTI5NCw2ICsxMjk2LDggQEAgcHJpdmF0ZToKICAgICBXZWJQYWdlUHJveHkoUGFn
ZUNsaWVudCYsIFdlYlByb2Nlc3NQcm94eSYsIHVpbnQ2NF90IHBhZ2VJRCwgUmVmPEFQSTo6UGFn
ZUNvbmZpZ3VyYXRpb24+JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CiAKKyAg
ICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBnb1RvQmFja0ZvcndhcmRJdGVtKFdlYkJhY2tGb3J3
YXJkTGlzdEl0ZW0mLCBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlKTsKKwogICAgIHZvaWQgdXBkYXRl
QWN0aXZpdHlTdGF0ZShXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFncyBmbGFnc1RvVXBkYXRl
ID0gV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6QWxsRmxhZ3MpOwogICAgIHZvaWQgdXBkYXRlVGhy
b3R0bGVTdGF0ZSgpOwogICAgIHZvaWQgdXBkYXRlSGlkZGVuUGFnZVRocm90dGxpbmdBdXRvSW5j
cmVhc2VzKCk7CkBAIC0xNDQxLDEzICsxNDQ1LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlYXR0
YWNoVG9XZWJQcm9jZXNzKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYpOwogCiAgICAgUmVmUHRyPEFQ
STo6TmF2aWdhdGlvbj4gcmVhdHRhY2hUb1dlYlByb2Nlc3NGb3JSZWxvYWQoKTsKLSAgICBSZWZQ
dHI8QVBJOjpOYXZpZ2F0aW9uPiByZWF0dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKFdlYkJhY2tG
b3J3YXJkTGlzdEl0ZW0qKTsKKyAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiByZWF0dGFjaFRv
V2ViUHJvY2Vzc1dpdGhJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mKTsKIAotICAgIGVudW0g
Y2xhc3MgTmF2aWdhdGlvblBvbGljeUNoZWNrIHsKLSAgICAgICAgUmVxdWlyZSwKLSAgICAgICAg
QnlwYXNzLAotICAgIH07Ci0gICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uKEFQSTo6
TmF2aWdhdGlvbiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpTaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIE5hdmlnYXRpb25Q
b2xpY3lDaGVjayk7CisgICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uKEFQSTo6TmF2
aWdhdGlvbiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6Ok5hdmln
YXRpb25Qb2xpY3lDaGVjayk7CiAKICAgICB2b2lkIHJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNz
aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklELCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZyk7
CiAgICAgdm9pZCBzaG93Tm90aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0
cmluZyYgYm9keSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHRhZywgY29u
c3QgU3RyaW5nJiBsYW5nLCBXZWJDb3JlOjpOb3RpZmljYXRpb25EaXJlY3Rpb24sIGNvbnN0IFN0
cmluZyYgb3JpZ2luU3RyaW5nLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggYjFlNjMxMmE0ZTBhYjQ3N2U5
NmY5N2E1YmE2M2RlODM0YzQ5NzFiNS4uMGVlMmE5MWJkMTMwYWE2NjYwMTJhNjY5ZjljYWVmNDlj
ZjExNmIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTc4LDYgKzc4LDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NJbmxpbmVzLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTG9nSW5pdGlhbGl6YXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVVJM
UGFyc2VyLmg+CkBAIC04NSw2ICs4Niw3IEBACiAjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAj
aW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgogI2luY2x1ZGUgPHd0Zi9SdW5M
b29wLmg+CiAjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nQnVpbGRlci5oPgpAQCAtMjQyLDYgKzI0NCwxMiBAQCBXZWJQcm9jZXNzUG9vbDo6V2ViUHJv
Y2Vzc1Bvb2woQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiAg
ICAgLCBtX2JhY2tncm91bmRXZWJQcm9jZXNzQ291bnRlcihbdGhpc10oUmVmQ291bnRlckV2ZW50
KSB7IHVwZGF0ZVByb2Nlc3NBc3NlcnRpb25zKCk7IH0pCiAjZW5kaWYKIHsKKyAgICBzdGF0aWMg
c3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtd
IHsKKyAgICAgICAgV1RGOjpzZXRQcm9jZXNzUHJpdmlsZWdlcyhhbGxQcml2aWxlZ2VzKCkpOwor
ICAgICAgICBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnBlcm1pdFByb2Nlc3NUb1Vz
ZUNvb2tpZUFQSSh0cnVlKTsKKyAgICB9KTsKKwogICAgIGlmIChtX2NvbmZpZ3VyYXRpb24tPnNo
b3VsZEhhdmVMZWdhY3lEYXRhU3RvcmUoKSkKICAgICAgICAgbV93ZWJzaXRlRGF0YVN0b3JlID0g
QVBJOjpXZWJzaXRlRGF0YVN0b3JlOjpjcmVhdGVMZWdhY3kobGVnYWN5V2Vic2l0ZURhdGFTdG9y
ZUNvbmZpZ3VyYXRpb24obV9jb25maWd1cmF0aW9uKSk7CiAKQEAgLTU1Nyw2ICs1NjUsOCBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjplbnN1cmVTdG9yYWdlUHJvY2Vzc0FuZFdlYnNpdGVEYXRhU3Rv
cmUoV2Vic2l0ZURhdGFTdG9yZSogcgogCiAgICAgICAgIGlmICghbV9zY2hlbWVzU2VydmljZVdv
cmtlcnNDYW5IYW5kbGUuaXNFbXB0eSgpKQogICAgICAgICAgICAgcGFyYW1ldGVycy51cmxTY2hl
bWVzU2VydmljZVdvcmtlcnNDYW5IYW5kbGUgPSBjb3B5VG9WZWN0b3IobV9zY2hlbWVzU2Vydmlj
ZVdvcmtlcnNDYW5IYW5kbGUpOworCisgICAgICAgIHBhcmFtZXRlcnMuc2hvdWxkRGlzYWJsZVNl
cnZpY2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSA9IG1fc2hvdWxkRGlzYWJsZVNlcnZp
Y2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheTsKICNlbmRpZgogCiAgICAgICAgIG1fc3Rv
cmFnZVByb2Nlc3MgPSBTdG9yYWdlUHJvY2Vzc1Byb3h5OjpjcmVhdGUoKnRoaXMpOwpAQCAtNTg5
LDEyICs1OTksMTEgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c3RvcmFnZVByb2Nlc3NDcmFzaGVk
KFN0b3JhZ2VQcm9jZXNzUHJveHkqIHN0b3JhZ2VQcm9jZXNzUHIKIH0KIAogI2lmIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKLXZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmVzdGFibGlzaFdvcmtlckNvbnRl
eHRDb25uZWN0aW9uVG9TdG9yYWdlUHJvY2VzcyhTdG9yYWdlUHJvY2Vzc1Byb3h5JiBwcm94eSwg
U2VjdXJpdHlPcmlnaW5EYXRhJiYgb3JpZ2luRGF0YSwgc3RkOjpvcHRpb25hbDxQQUw6OlNlc3Np
b25JRD4gc2Vzc2lvbklEKQordm9pZCBXZWJQcm9jZXNzUG9vbDo6ZXN0YWJsaXNoV29ya2VyQ29u
dGV4dENvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzKFN0b3JhZ2VQcm9jZXNzUHJveHkmIHByb3h5
LCBTZWN1cml0eU9yaWdpbkRhdGEmJiBzZWN1cml0eU9yaWdpbiwgc3RkOjpvcHRpb25hbDxQQUw6
OlNlc3Npb25JRD4gc2Vzc2lvbklEKQogewogICAgIEFTU0VSVF9VTlVTRUQocHJveHksICZwcm94
eSA9PSBtX3N0b3JhZ2VQcm9jZXNzKTsKIAotICAgIGF1dG8gb3JpZ2luID0gb3JpZ2luRGF0YS5z
ZWN1cml0eU9yaWdpbigpOwotICAgIGlmIChtX3NlcnZpY2VXb3JrZXJQcm9jZXNzZXMuY29udGFp
bnMob3JpZ2luLnB0cigpKSkKKyAgICBpZiAobV9zZXJ2aWNlV29ya2VyUHJvY2Vzc2VzLmNvbnRh
aW5zKHNlY3VyaXR5T3JpZ2luKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9tYXlIYXZlUmVn
aXN0ZXJlZFNlcnZpY2VXb3JrZXJzLmNsZWFyKCk7CkBAIC02MDksMTIgKzYxOCwxMSBAQCB2b2lk
IFdlYlByb2Nlc3NQb29sOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvU3RvcmFn
ZVByb2Nlc3MoU3RvcmFnZVBybwogICAgICAgICB3ZWJzaXRlRGF0YVN0b3JlID0gJm1fd2Vic2l0
ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFTdG9yZSgpOwogICAgIH0KIAotICAgIGF1dG8gc2Vydmlj
ZVdvcmtlclByb2Nlc3NQcm94eSA9IFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OmNyZWF0ZSgq
dGhpcywgb3JpZ2luLmNvcHlSZWYoKSwgKndlYnNpdGVEYXRhU3RvcmUpOwotICAgIG1fc2Vydmlj
ZVdvcmtlclByb2Nlc3Nlcy5hZGQob3JpZ2luLmNvcHlSZWYoKSwgc2VydmljZVdvcmtlclByb2Nl
c3NQcm94eS5wdHIoKSk7CisgICAgaWYgKG1fc2VydmljZVdvcmtlclByb2Nlc3Nlcy5pc0VtcHR5
KCkpCisgICAgICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6UmVn
aXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50cyB7IH0pOwogCi0gICAgQVNTRVJUKHdlYnNpdGVEYXRh
U3RvcmUtPnNlc3Npb25JRCgpLmlzVmFsaWQoKSk7Ci0gICAgaWYgKHdlYnNpdGVEYXRhU3RvcmUt
PnNlc3Npb25JRCgpLmlzVmFsaWQoKSkKLSAgICAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzOjpSZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRzIHsgd2Vic2l0ZURh
dGFTdG9yZS0+c2Vzc2lvbklEKCkgfSk7CisgICAgYXV0byBzZXJ2aWNlV29ya2VyUHJvY2Vzc1By
b3h5ID0gU2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6Y3JlYXRlKCp0aGlzLCBzZWN1cml0eU9y
aWdpbiwgKndlYnNpdGVEYXRhU3RvcmUpOworICAgIG1fc2VydmljZVdvcmtlclByb2Nlc3Nlcy5h
ZGQoV1RGTW92ZShzZWN1cml0eU9yaWdpbiksIHNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkucHRy
KCkpOwogCiAgICAgdXBkYXRlUHJvY2Vzc0Fzc2VydGlvbnMoKTsKICAgICBpbml0aWFsaXplTmV3
V2ViUHJvY2VzcyhzZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LCAqd2Vic2l0ZURhdGFTdG9yZSk7
CkBAIC02MjgsNiArNjM2LDE4IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmVzdGFibGlzaFdvcmtl
ckNvbnRleHRDb25uZWN0aW9uVG9TdG9yYWdlUHJvY2VzcyhTdG9yYWdlUHJvCiB9CiAjZW5kaWYK
IAordm9pZCBXZWJQcm9jZXNzUG9vbDo6ZGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWlu
YXRpb25EZWxheSgpCit7CisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorICAgIGlmIChtX3No
b3VsZERpc2FibGVTZXJ2aWNlV29ya2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXkpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fc2hvdWxkRGlzYWJsZVNlcnZpY2VXb3JrZXJQcm9jZXNzVGVybWlu
YXRpb25EZWxheSA9IHRydWU7CisgICAgaWYgKG1fc3RvcmFnZVByb2Nlc3MpCisgICAgICAgIG1f
c3RvcmFnZVByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpEaXNhYmxlU2Vy
dmljZVdvcmtlclByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5KCksIDApOworI2VuZGlmCit9CisKIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OndpbGxTdGFydFVzaW5nUHJpdmF0ZUJyb3dzaW5nKCkKIHsKICAg
ICBmb3IgKGF1dG8qIHByb2Nlc3NQb29sIDogYWxsUHJvY2Vzc1Bvb2xzKCkpCkBAIC04MDcsNiAr
ODI3LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6aW5pdGlhbGl6ZU5ld1dlYlByb2Nlc3MoV2Vi
UHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBXZWJzaXRlRGEKICAgICBwYXJhbWV0ZXJzLnVybFNjaGVt
ZXNSZWdpc3RlcmVkQXNBbHdheXNSZXZhbGlkYXRlZCA9IGNvcHlUb1ZlY3RvcihtX3NjaGVtZXNU
b1JlZ2lzdGVyQXNBbHdheXNSZXZhbGlkYXRlZCk7CiAgICAgcGFyYW1ldGVycy51cmxTY2hlbWVz
UmVnaXN0ZXJlZEFzQ2FjaGVQYXJ0aXRpb25lZCA9IGNvcHlUb1ZlY3RvcihtX3NjaGVtZXNUb1Jl
Z2lzdGVyQXNDYWNoZVBhcnRpdGlvbmVkKTsKICAgICBwYXJhbWV0ZXJzLnVybFNjaGVtZXNTZXJ2
aWNlV29ya2Vyc0NhbkhhbmRsZSA9IGNvcHlUb1ZlY3RvcihtX3NjaGVtZXNTZXJ2aWNlV29ya2Vy
c0NhbkhhbmRsZSk7CisgICAgcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzQ2FuRGlz
cGxheU9ubHlJZkNhblJlcXVlc3QgPSBjb3B5VG9WZWN0b3IobV9zY2hlbWVzVG9SZWdpc3RlckFz
Q2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3QpOwogCiAgICAgcGFyYW1ldGVycy5zaG91bGRBbHdh
eXNVc2VDb21wbGV4VGV4dENvZGVQYXRoID0gbV9hbHdheXNVc2VzQ29tcGxleFRleHRDb2RlUGF0
aDsKICAgICBwYXJhbWV0ZXJzLnNob3VsZFVzZUZvbnRTbW9vdGhpbmcgPSBtX3Nob3VsZFVzZUZv
bnRTbW9vdGhpbmc7CkBAIC05NzYsNyArOTk3LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6ZGlz
Y29ubmVjdFByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNzKQogCiAjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQogICAgIGlmIChpczxTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5PigqcHJv
Y2VzcykpIHsKLSAgICAgICAgYXV0byogcmVtb3ZlZFByb2Nlc3MgPSBtX3NlcnZpY2VXb3JrZXJQ
cm9jZXNzZXMudGFrZSgmZG93bmNhc3Q8U2VydmljZVdvcmtlclByb2Nlc3NQcm94eT4oKnByb2Nl
c3MpLm9yaWdpbigpKTsKKyAgICAgICAgYXV0byogcmVtb3ZlZFByb2Nlc3MgPSBtX3NlcnZpY2VX
b3JrZXJQcm9jZXNzZXMudGFrZShkb3duY2FzdDxTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5Pigq
cHJvY2Vzcykuc2VjdXJpdHlPcmlnaW4oKSk7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQocmVtb3Zl
ZFByb2Nlc3MsIHJlbW92ZWRQcm9jZXNzID09IHByb2Nlc3MpOwogICAgICAgICB1cGRhdGVQcm9j
ZXNzQXNzZXJ0aW9ucygpOwogICAgIH0KQEAgLTEzNjEsNiArMTM4MiwxMiBAQCB2b2lkIFdlYlBy
b2Nlc3NQb29sOjpyZWdpc3RlclVSTFNjaGVtZVNlcnZpY2VXb3JrZXJzQ2FuSGFuZGxlKGNvbnN0
IFN0cmluZyYgdXJsUwogICAgICAgICBtX3N0b3JhZ2VQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpD
aGlsZFByb2Nlc3M6OlJlZ2lzdGVyVVJMU2NoZW1lU2VydmljZVdvcmtlcnNDYW5IYW5kbGUodXJs
U2NoZW1lKSwgMCk7CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVyVVJMU2NoZW1l
QXNDYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdChjb25zdCBTdHJpbmcmIHVybFNjaGVtZSkKK3sK
KyAgICBtX3NjaGVtZXNUb1JlZ2lzdGVyQXNDYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdC5hZGQo
dXJsU2NoZW1lKTsKKyAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6
OlJlZ2lzdGVyVVJMU2NoZW1lQXNDYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdCh1cmxTY2hlbWUp
KTsKK30KKwogdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsIGNh
Y2hlTW9kZWwpCiB7CiAgICAgbV9jb25maWd1cmF0aW9uLT5zZXRDYWNoZU1vZGVsKGNhY2hlTW9k
ZWwpOwpAQCAtMTg1OCw5ICsxODg1LDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6dXBkYXRlUHJv
Y2Vzc0Fzc2VydGlvbnMoKQogICAgICAgICBpZiAoIW1fc2VydmljZVdvcmtlclByb2Nlc3Nlcy5p
c0VtcHR5KCkgJiYgbV9mb3JlZ3JvdW5kV2ViUHJvY2Vzc0NvdW50ZXIudmFsdWUoKSkgewogICAg
ICAgICAgICAgLy8gRklYTUU6IFdlIGNhbiBkbyBiZXR0ZXIgdGhhbiB0aGlzIG9uY2Ugd2UgaGF2
ZSBwcm9jZXNzIHBlciBvcmlnaW4uCiAgICAgICAgICAgICBmb3IgKGF1dG8qIHNlcnZpY2VXb3Jr
ZXJQcm9jZXNzIDogbV9zZXJ2aWNlV29ya2VyUHJvY2Vzc2VzLnZhbHVlcygpKSB7Ci0gICAgICAg
ICAgICAgICAgYXV0byYgb3JpZ2luID0gc2VydmljZVdvcmtlclByb2Nlc3MtPm9yaWdpbigpOwot
ICAgICAgICAgICAgICAgIGlmICghbV9mb3JlZ3JvdW5kVG9rZW5zRm9yU2VydmljZVdvcmtlclBy
b2Nlc3Nlcy5jb250YWlucygmb3JpZ2luKSkKLSAgICAgICAgICAgICAgICAgICAgbV9mb3JlZ3Jv
dW5kVG9rZW5zRm9yU2VydmljZVdvcmtlclByb2Nlc3Nlcy5hZGQoJm9yaWdpbiwgc2VydmljZVdv
cmtlclByb2Nlc3MtPnRocm90dGxlcigpLmZvcmVncm91bmRBY3Rpdml0eVRva2VuKCkpOworICAg
ICAgICAgICAgICAgIGF1dG8mIHNlY3VyaXR5T3JpZ2luID0gc2VydmljZVdvcmtlclByb2Nlc3Mt
PnNlY3VyaXR5T3JpZ2luKCk7CisgICAgICAgICAgICAgICAgaWYgKCFtX2ZvcmVncm91bmRUb2tl
bnNGb3JTZXJ2aWNlV29ya2VyUHJvY2Vzc2VzLmNvbnRhaW5zKHNlY3VyaXR5T3JpZ2luKSkKKyAg
ICAgICAgICAgICAgICAgICAgbV9mb3JlZ3JvdW5kVG9rZW5zRm9yU2VydmljZVdvcmtlclByb2Nl
c3Nlcy5hZGQoc2VjdXJpdHlPcmlnaW4sIHNlcnZpY2VXb3JrZXJQcm9jZXNzLT50aHJvdHRsZXIo
KS5mb3JlZ3JvdW5kQWN0aXZpdHlUb2tlbigpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IG1fYmFja2dyb3VuZFRva2Vuc0ZvclNlcnZpY2VXb3JrZXJQcm9jZXNzZXMuY2xlYXIoKTsKICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTE4NjgsOSArMTg5NSw5IEBAIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnVwZGF0ZVByb2Nlc3NBc3NlcnRpb25zKCkKICAgICAgICAgaWYgKCFtX3NlcnZpY2VXb3Jr
ZXJQcm9jZXNzZXMuaXNFbXB0eSgpICYmIG1fYmFja2dyb3VuZFdlYlByb2Nlc3NDb3VudGVyLnZh
bHVlKCkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBjYW4gZG8gYmV0dGVyIHRoYW4gdGhp
cyBvbmNlIHdlIGhhdmUgcHJvY2VzcyBwZXIgb3JpZ2luLgogICAgICAgICAgICAgZm9yIChhdXRv
KiBzZXJ2aWNlV29ya2VyUHJvY2VzcyA6IG1fc2VydmljZVdvcmtlclByb2Nlc3Nlcy52YWx1ZXMo
KSkgewotICAgICAgICAgICAgICAgIGF1dG8mIG9yaWdpbiA9IHNlcnZpY2VXb3JrZXJQcm9jZXNz
LT5vcmlnaW4oKTsKLSAgICAgICAgICAgICAgICBpZiAoIW1fYmFja2dyb3VuZFRva2Vuc0ZvclNl
cnZpY2VXb3JrZXJQcm9jZXNzZXMuY29udGFpbnMoJm9yaWdpbikpCi0gICAgICAgICAgICAgICAg
ICAgIG1fYmFja2dyb3VuZFRva2Vuc0ZvclNlcnZpY2VXb3JrZXJQcm9jZXNzZXMuYWRkKCZvcmln
aW4sIHNlcnZpY2VXb3JrZXJQcm9jZXNzLT50aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHlU
b2tlbigpKTsKKyAgICAgICAgICAgICAgICBhdXRvJiBzZWN1cml0eU9yaWdpbiA9IHNlcnZpY2VX
b3JrZXJQcm9jZXNzLT5zZWN1cml0eU9yaWdpbigpOworICAgICAgICAgICAgICAgIGlmICghbV9i
YWNrZ3JvdW5kVG9rZW5zRm9yU2VydmljZVdvcmtlclByb2Nlc3Nlcy5jb250YWlucyhzZWN1cml0
eU9yaWdpbikpCisgICAgICAgICAgICAgICAgICAgIG1fYmFja2dyb3VuZFRva2Vuc0ZvclNlcnZp
Y2VXb3JrZXJQcm9jZXNzZXMuYWRkKHNlY3VyaXR5T3JpZ2luLCBzZXJ2aWNlV29ya2VyUHJvY2Vz
cy0+dGhyb3R0bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKSk7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICBtX2ZvcmVncm91bmRUb2tlbnNGb3JTZXJ2aWNlV29ya2VyUHJvY2Vzc2Vz
LmNsZWFyKCk7CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaAppbmRleCBhZjFiNDBiNjUwMzFiZjY4NjlhZTlkNGYzM2YwZmFkMDY0YzI1
MTY1Li44OTVmYzMzNjk4MGE4YjNkMzg3MjUwMDA2YzQxNmM4OGJjMjVlYTBhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTIyNSw2ICsyMjUsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzQ09SU0VuYWJsZWQoY29uc3QgU3RyaW5n
Jik7CiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzQ2FjaGVQYXJ0aXRpb25lZChjb25zdCBT
dHJpbmcmKTsKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lU2VydmljZVdvcmtlcnNDYW5IYW5k
bGUoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzQ2FuRGlzcGxh
eU9ubHlJZkNhblJlcXVlc3QoY29uc3QgU3RyaW5nJik7CisKICAgICB2b2lkIHByZWNvbm5lY3RU
b1NlcnZlcihjb25zdCBXZWJDb3JlOjpVUkwmKTsKIAogICAgIFZpc2l0ZWRMaW5rU3RvcmUmIHZp
c2l0ZWRMaW5rU3RvcmUoKSB7IHJldHVybiBtX3Zpc2l0ZWRMaW5rU3RvcmUuZ2V0KCk7IH0KQEAg
LTI3MCw2ICsyNzIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB0ZXJtaW5hdGVTdG9yYWdlUHJvY2Vz
cygpOwogICAgIHZvaWQgdGVybWluYXRlTmV0d29ya1Byb2Nlc3MoKTsKICAgICB2b2lkIHRlcm1p
bmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzZXMoKTsKKyAgICB2b2lkIGRpc2FibGVTZXJ2aWNlV29y
a2VyUHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXkoKTsKIAogICAgIHZvaWQgc3luY05ldHdvcmtQcm9j
ZXNzQ29va2llcygpOwogCkBAIC0zMzIsNyArMzM1LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKICAgICB2b2lkIGVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9u
VG9TdG9yYWdlUHJvY2VzcyhTdG9yYWdlUHJvY2Vzc1Byb3h5JiwgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiYsIHN0ZDo6b3B0aW9uYWw8UEFMOjpTZXNzaW9uSUQ+KTsKICAgICBTZXJ2aWNl
V29ya2VyUHJvY2Vzc1Byb3h5KiBzZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5RnJvbVBhZ2VJRCh1
aW50NjRfdCBwYWdlSUQpIGNvbnN0OwotICAgIGNvbnN0IEhhc2hNYXA8UmVmUHRyPFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luPiwgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eSo+JiBzZXJ2aWNlV29y
a2VyUHJveGllcygpIGNvbnN0IHsgcmV0dXJuIG1fc2VydmljZVdvcmtlclByb2Nlc3NlczsgfQor
ICAgIGNvbnN0IEhhc2hNYXA8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhLCBTZXJ2aWNlV29y
a2VyUHJvY2Vzc1Byb3h5Kj4mIHNlcnZpY2VXb3JrZXJQcm94aWVzKCkgY29uc3QgeyByZXR1cm4g
bV9zZXJ2aWNlV29ya2VyUHJvY2Vzc2VzOyB9CiAgICAgdm9pZCBzZXRBbGxvd3NBbnlTU0xDZXJ0
aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXIoYm9vbCBhbGxvd3MpIHsgbV9hbGxvd3NBbnlTU0xDZXJ0
aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXIgPSBhbGxvd3M7IH0KICAgICBib29sIGFsbG93c0FueVNT
TENlcnRpZmljYXRlRm9yU2VydmljZVdvcmtlcigpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dzQW55
U1NMQ2VydGlmaWNhdGVGb3JTZXJ2aWNlV29ya2VyOyB9CiAgICAgdm9pZCB1cGRhdGVTZXJ2aWNl
V29ya2VyVXNlckFnZW50KGNvbnN0IFN0cmluZyYgdXNlckFnZW50KTsKQEAgLTUxNCw5ICs1MTcs
MTAgQEAgcHJpdmF0ZToKIAogICAgIFdlYlByb2Nlc3NQcm94eSogbV9wcm9jZXNzV2l0aFBhZ2VD
YWNoZSB7IG51bGxwdHIgfTsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgSGFzaE1h
cDxSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+LCBTZXJ2aWNlV29ya2VyUHJvY2Vzc1By
b3h5Kj4gbV9zZXJ2aWNlV29ya2VyUHJvY2Vzc2VzOworICAgIEhhc2hNYXA8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhLCBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5Kj4gbV9zZXJ2aWNlV29y
a2VyUHJvY2Vzc2VzOwogICAgIGJvb2wgbV93YWl0aW5nRm9yV29ya2VyQ29udGV4dFByb2Nlc3ND
b25uZWN0aW9uIHsgZmFsc2UgfTsKICAgICBib29sIG1fYWxsb3dzQW55U1NMQ2VydGlmaWNhdGVG
b3JTZXJ2aWNlV29ya2VyIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc2hvdWxkRGlzYWJsZVNlcnZp
Y2VXb3JrZXJQcm9jZXNzVGVybWluYXRpb25EZWxheSB7IGZhbHNlIH07CiAgICAgU3RyaW5nIG1f
c2VydmljZVdvcmtlclVzZXJBZ2VudDsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYlByZWZlcmVuY2Vz
U3RvcmU+IG1fc2VydmljZVdvcmtlclByZWZlcmVuY2VzOwogICAgIEhhc2hNYXA8U3RyaW5nLCBi
b29sPiBtX21heUhhdmVSZWdpc3RlcmVkU2VydmljZVdvcmtlcnM7CkBAIC01NTUsNiArNTU5LDcg
QEAgcHJpdmF0ZToKICAgICBIYXNoU2V0PFN0cmluZz4gbV9zY2hlbWVzVG9SZWdpc3RlckFzQWx3
YXlzUmV2YWxpZGF0ZWQ7CiAgICAgSGFzaFNldDxTdHJpbmc+IG1fc2NoZW1lc1RvUmVnaXN0ZXJB
c0NhY2hlUGFydGl0aW9uZWQ7CiAgICAgSGFzaFNldDxTdHJpbmc+IG1fc2NoZW1lc1NlcnZpY2VX
b3JrZXJzQ2FuSGFuZGxlOworICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3NjaGVtZXNUb1JlZ2lzdGVy
QXNDYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdDsKIAogICAgIGJvb2wgbV9hbHdheXNVc2VzQ29t
cGxleFRleHRDb2RlUGF0aCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Nob3VsZFVzZUZvbnRTbW9v
dGhpbmcgeyB0cnVlIH07CkBAIC02NzIsOCArNjc3LDggQEAgcHJpdmF0ZToKICAgICBQcm9jZXNz
VGhyb3R0bGVyOjpGb3JlZ3JvdW5kQWN0aXZpdHlUb2tlbiBtX2ZvcmVncm91bmRUb2tlbkZvck5l
dHdvcmtQcm9jZXNzOwogICAgIFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRv
a2VuIG1fYmFja2dyb3VuZFRva2VuRm9yTmV0d29ya1Byb2Nlc3M7CiAjaWYgRU5BQkxFKFNFUlZJ
Q0VfV09SS0VSKQotICAgIEhhc2hNYXA8UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiwg
UHJvY2Vzc1Rocm90dGxlcjo6Rm9yZWdyb3VuZEFjdGl2aXR5VG9rZW4+IG1fZm9yZWdyb3VuZFRv
a2Vuc0ZvclNlcnZpY2VXb3JrZXJQcm9jZXNzZXM7Ci0gICAgSGFzaE1hcDxSZWZQdHI8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+LCBQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlU
b2tlbj4gbV9iYWNrZ3JvdW5kVG9rZW5zRm9yU2VydmljZVdvcmtlclByb2Nlc3NlczsKKyAgICBI
YXNoTWFwPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSwgUHJvY2Vzc1Rocm90dGxlcjo6Rm9y
ZWdyb3VuZEFjdGl2aXR5VG9rZW4+IG1fZm9yZWdyb3VuZFRva2Vuc0ZvclNlcnZpY2VXb3JrZXJQ
cm9jZXNzZXM7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEsIFByb2Nl
c3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eVRva2VuPiBtX2JhY2tncm91bmRUb2tlbnNG
b3JTZXJ2aWNlV29ya2VyUHJvY2Vzc2VzOwogI2VuZGlmCiAjZW5kaWYKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA2ZjgzZTg4YTAwMTg0YWM5
MzcwN2VmYzAxMGYxYmYyZDA2NTJkNzBjLi5kY2E5ODk5NjBlZmY4NjM0M2M3Mzg1Y2VlMWQ3MTQx
MWFlNWNlYzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAKQEAgLTU1MSw3ICs1NTEsNyBAQCBib29sIFdlYlByb2Nlc3NQcm94eTo6ZnVsbEtleWJvYXJk
QWNjZXNzRW5hYmxlZCgpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmFkZEJh
Y2tGb3J3YXJkSXRlbSh1aW50NjRfdCBpdGVtSUQsIHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgUGFn
ZVN0YXRlJiBwYWdlU3RhdGUpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6YWRkT3JVcGRhdGVCYWNr
Rm9yd2FyZEl0ZW0odWludDY0X3QgaXRlbUlELCB1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFBhZ2VT
dGF0ZSYgcGFnZVN0YXRlKQogewogICAgIE1FU1NBR0VfQ0hFQ0tfVVJMKHBhZ2VTdGF0ZS5tYWlu
RnJhbWVTdGF0ZS5vcmlnaW5hbFVSTFN0cmluZyk7CiAgICAgTUVTU0FHRV9DSEVDS19VUkwocGFn
ZVN0YXRlLm1haW5GcmFtZVN0YXRlLnVybFN0cmluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDY5N2ViOTA4ZDYxY2ZjNzMzY2QyMTFmM2RhYzEwZDdh
NGY0NDRmYzUuLjNiYWQyZWVlNGEyYjVmODZhNWRlNDkzOGQ1YzNjNWVlY2EzZmZlNzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0yMjAsNyArMjIwLDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHNodXREb3duKCk7CiAKICAgICAvLyBJUEMgbWVzc2FnZSBo
YW5kbGVycy4KLSAgICB2b2lkIGFkZEJhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBpdGVtSUQsIHVp
bnQ2NF90IHBhZ2VJRCwgY29uc3QgUGFnZVN0YXRlJik7CisgICAgdm9pZCBhZGRPclVwZGF0ZUJh
Y2tGb3J3YXJkSXRlbSh1aW50NjRfdCBpdGVtSUQsIHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgUGFn
ZVN0YXRlJik7CiAgICAgdm9pZCBkaWREZXN0cm95RnJhbWUodWludDY0X3QpOwogICAgIHZvaWQg
ZGlkRGVzdHJveVVzZXJHZXN0dXJlVG9rZW4odWludDY0X3QpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggOThjNzEy
YWNjM2Y3OWQ0ZTEwOGJmNWFiMzU0YTQxZTBhZGQ4NjI1Ni4uZWM3Y2Y1MDEzOTM3NmI1Mzg3Nzk5
NDYwOWMwNzA1MjkwNjY2MzU4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjEsNyArMjEsNyBAQAogIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgogCiBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewotICAg
IEFkZEJhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBpdGVtSUQsIHVpbnQ2NF90IHBhZ2VJRCwgc3Ry
dWN0IFdlYktpdDo6UGFnZVN0YXRlIHBhZ2VTdGF0ZSkKKyAgICBBZGRPclVwZGF0ZUJhY2tGb3J3
YXJkSXRlbSh1aW50NjRfdCBpdGVtSUQsIHVpbnQ2NF90IHBhZ2VJRCwgc3RydWN0IFdlYktpdDo6
UGFnZVN0YXRlIHBhZ2VTdGF0ZSkKICAgICBEaWREZXN0cm95RnJhbWUodWludDY0X3QgZnJhbWVJ
RCkgCiAKICAgICBEaWREZXN0cm95VXNlckdlc3R1cmVUb2tlbih1aW50NjRfdCB1c2VyR2VzdHVy
ZVRva2VuSUQpIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViU3RvcmFn
ZS9TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJTdG9yYWdl
L1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCBmZDQ4MDRkY2JiZjM1NGRmY2IzOWVkMGU5Y2RlNzk4
ZmUxMjkxODY5Li43ZjcwMmUxOGViM2E2N2RiZTQ3NmU2OTNhMGY0MjBkMTNiNGNmNzY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5h
Z2VyLmNwcApAQCAtNjAyLDcgKzYwMiw3IEBAIHZvaWQgU3RvcmFnZU1hbmFnZXI6OmdldExvY2Fs
U3RvcmFnZU9yaWdpbkRldGFpbHMoRnVuY3Rpb248dm9pZCAoVmVjdG9yPExvY2FsU3RvCiAgICAg
fSk7CiB9CiAKLXZvaWQgU3RvcmFnZU1hbmFnZXI6OmRlbGV0ZUxvY2FsU3RvcmFnZUVudHJpZXNG
b3JPcmlnaW4oU2VjdXJpdHlPcmlnaW5EYXRhJiYgc2VjdXJpdHlPcmlnaW4pCit2b2lkIFN0b3Jh
Z2VNYW5hZ2VyOjpkZWxldGVMb2NhbFN0b3JhZ2VFbnRyaWVzRm9yT3JpZ2luKGNvbnN0IFNlY3Vy
aXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4pCiB7CiAgICAgbV9xdWV1ZS0+ZGlzcGF0Y2go
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29waWVkT3JpZ2luID0gc2Vj
dXJpdHlPcmlnaW4uaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7CiAgICAgICAgIGZvciAoYXV0
byYgbG9jYWxTdG9yYWdlTmFtZXNwYWNlIDogbV9sb2NhbFN0b3JhZ2VOYW1lc3BhY2VzLnZhbHVl
cygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViU3RvcmFnZS9TdG9y
YWdlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdl
TWFuYWdlci5oCmluZGV4IDJiMWY4ZGViNmFiZDI5ZDQ1M2I1NDM4NDkxNzIzNDA4NjM2Yjc2YjUu
Ljg0MjNiOTkzNDVmOGQ5MTE3MDdlMGY4YjVjNWZlNmFkMDQwZTIzMzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmgKQEAgLTYz
LDcgKzYzLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGVsZXRlU2Vzc2lvblN0b3JhZ2VFbnRyaWVz
Rm9yT3JpZ2lucyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYsIEZ1
bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CiAKICAgICB2b2lkIGdldExvY2Fs
U3RvcmFnZU9yaWdpbnMoRnVuY3Rpb248dm9pZChIYXNoU2V0PFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpOwotICAgIHZvaWQgZGVsZXRlTG9jYWxT
dG9yYWdlRW50cmllc0Zvck9yaWdpbihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJik7Cisg
ICAgdm9pZCBkZWxldGVMb2NhbFN0b3JhZ2VFbnRyaWVzRm9yT3JpZ2luKGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYpOwogCiAgICAgdm9pZCBkZWxldGVMb2NhbFN0b3JhZ2VPcmln
aW5zTW9kaWZpZWRTaW5jZShXYWxsVGltZSwgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKTsKICAgICB2b2lkIGRlbGV0ZUxvY2FsU3RvcmFnZUVudHJpZXNGb3JPcmlnaW5zKGNv
bnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiwgRnVuY3Rpb248dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5t
bQppbmRleCBhNzRjMmZjN2JiYWNlNWM5ZjgzNjA5YzlkMGMyOTUwNWZiMTk3MWQxLi5kYWY4OWVk
YmRjOGMxNjliNmNiMjNiZjAzYTEzZjA3NDMyMzA3MWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURh
dGFTdG9yZUNvY29hLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NS0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TZWFy
Y2hQb3B1cE1lbnVDb2NvYS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4K
ICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2ltcG9ydCA8d3RmL1Byb2Nlc3NQcml2
aWxlZ2UuaD4KIAogI2lmIFBMQVRGT1JNKElPUykKICNpbXBvcnQgPFVJS2l0L1VJQXBwbGljYXRp
b24uaD4KQEAgLTUyLDYgKzUzLDggQEAgc3RhdGljIFZlY3RvcjxXZWJzaXRlRGF0YVN0b3JlKj4m
IGRhdGFTdG9yZXNXaXRoU3RvcmFnZU1hbmFnZXJzKCkKIAogV2Vic2l0ZURhdGFTdG9yZVBhcmFt
ZXRlcnMgV2Vic2l0ZURhdGFTdG9yZTo6cGFyYW1ldGVycygpCiB7CisgICAgQVNTRVJUKGhhc1By
b2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOwor
CiAgICAgcmVzb2x2ZURpcmVjdG9yaWVzSWZOZWNlc3NhcnkoKTsKIAogICAgIFdlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IGMyMTQzZmRk
ZWM1YTYxYTQwZTg2NWE1NmRjOTliMGE5YjIxMTE2ZTguLjBmOWU5YWMwNDQ3MzlkOTM1YTUyODI4
MWU3NTRhODZkYTI2YTg2MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0zNDcsNyArMzQ3LDcgQEAg
dm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpmZXRjaERhdGFBbmRBcHBseShPcHRpb25TZXQ8V2Vic2l0
ZURhdGFUeXBlPiBkYXRhVHlwZXMsIE8KICAgICAgICAgICAgIFdlYnNpdGVEYXRhIHdlYnNpdGVE
YXRhOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBmb3IgKGF1dG8mIG9yaWdpbiA6IG9yaWdp
bnMpIHsKLSAgICAgICAgICAgICAgICBXZWJzaXRlRGF0YTo6RW50cnkgZW50cnkgeyBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbigqb3JpZ2luKSwgV2Vic2l0
ZURhdGFUeXBlOjpEaXNrQ2FjaGUsIDAgfTsKKyAgICAgICAgICAgICAgICBXZWJzaXRlRGF0YTo6
RW50cnkgZW50cnkgeyBvcmlnaW4tPmRhdGEoKSwgV2Vic2l0ZURhdGFUeXBlOjpEaXNrQ2FjaGUs
IDAgfTsKICAgICAgICAgICAgICAgICB3ZWJzaXRlRGF0YS5lbnRyaWVzLmFwcGVuZChXVEZNb3Zl
KGVudHJ5KSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKQEAgLTQ0Nyw3ICs0NDcsNyBA
QCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmZldGNoRGF0YUFuZEFwcGx5KE9wdGlvblNldDxXZWJz
aXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgTwogCiAgICAgICAgICAgICBmb3IgKGF1dG8mIG9yaWdp
biA6IG9yaWdpbnMpIHsKICAgICAgICAgICAgICAgICB1aW50NjRfdCBzaXplID0gZmV0Y2hPcHRp
b25zLmNvbnRhaW5zKFdlYnNpdGVEYXRhRmV0Y2hPcHRpb246OkNvbXB1dGVTaXplcykgPyBzdG9y
YWdlLT5kaXNrVXNhZ2VGb3JPcmlnaW4oKm9yaWdpbikgOiAwOwotICAgICAgICAgICAgICAgIFdl
YnNpdGVEYXRhOjpFbnRyeSBlbnRyeSB7IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJv
bVNlY3VyaXR5T3JpZ2luKCpvcmlnaW4pLCBXZWJzaXRlRGF0YVR5cGU6Ok9mZmxpbmVXZWJBcHBs
aWNhdGlvbkNhY2hlLCBzaXplIH07CisgICAgICAgICAgICAgICAgV2Vic2l0ZURhdGE6OkVudHJ5
IGVudHJ5IHsgb3JpZ2luLT5kYXRhKCksIFdlYnNpdGVEYXRhVHlwZTo6T2ZmbGluZVdlYkFwcGxp
Y2F0aW9uQ2FjaGUsIHNpemUgfTsKIAogICAgICAgICAgICAgICAgIHdlYnNpdGVEYXRhLmVudHJp
ZXMuYXBwZW5kKFdURk1vdmUoZW50cnkpKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJJT1MubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tCmlu
ZGV4IDRjMzNkNTVkMWY5MDMyODU4OGZlY2E1YTI3NDRiMDA5MWRlNjE4NzUuLjc0OTgzODI4MmIw
NTdlZGVjNTMzMWNkNmM2ZjU1NDVjZmRhZjdlNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbQpAQCAtMjk0LDcg
KzI5NCw3IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjplbmRTd2lwZUdlc3R1cmUoV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbSogdGFyZ2V0SXRlbSwKICAgICBpZiAoJm1fd2ViUGFnZVByb3h5
ICE9IG1fd2ViUGFnZVByb3h5Rm9yQmFja0ZvcndhcmRMaXN0Rm9yQ3VycmVudFN3aXBlKQogICAg
ICAgICBtX3dlYlBhZ2VQcm94eS5uYXZpZ2F0aW9uR2VzdHVyZURpZEVuZCgpOwogCi0gICAgbV93
ZWJQYWdlUHJveHlGb3JCYWNrRm9yd2FyZExpc3RGb3JDdXJyZW50U3dpcGUtPmdvVG9CYWNrRm9y
d2FyZEl0ZW0odGFyZ2V0SXRlbSk7CisgICAgbV93ZWJQYWdlUHJveHlGb3JCYWNrRm9yd2FyZExp
c3RGb3JDdXJyZW50U3dpcGUtPmdvVG9CYWNrRm9yd2FyZEl0ZW0oKnRhcmdldEl0ZW0pOwogCiAg
ICAgaWYgKGF1dG8gZHJhd2luZ0FyZWEgPSBtX3dlYlBhZ2VQcm94eS5kcmF3aW5nQXJlYSgpKSB7
CiAgICAgICAgIHVpbnQ2NF90IHBhZ2VJRCA9IG1fd2ViUGFnZVByb3h5LnBhZ2VJRCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5oCmluZGV4IDk0MGVkMmZmMGNiYWViOWUzMGMzMjVlN2QyNmJiMDY2NDBjYzlmMDMuLjcx
OGZhMTgwZTBkYmE4MWUxODIyODNiYzRkNjRlYjFkOTBkZGM3YTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAg
LTg3LDcgKzg3LDcgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogQGNsYXNzIFdLRGF0ZVBpY2tlclZp
ZXdDb250cm9sbGVyOwogQGNsYXNzIFdLRm9jdXNlZEZvcm1Db250cm9sVmlld0NvbnRyb2xsZXI7
CiBAY2xhc3MgV0tOdW1iZXJQYWRWaWV3Q29udHJvbGxlcjsKLUBjbGFzcyBXS1NlbGVjdE1lbnVW
aWV3Q29udHJvbGxlcjsKK0BjbGFzcyBXS1NlbGVjdE1lbnVMaXN0Vmlld0NvbnRyb2xsZXI7CiBA
Y2xhc3MgV0tUZXh0SW5wdXRMaXN0Vmlld0NvbnRyb2xsZXI7CiBAY2xhc3MgV0tUaW1lUGlja2Vy
Vmlld0NvbnRyb2xsZXI7CiAjZW5kaWYKQEAgLTE3MSw3ICsxNzEsOSBAQCBzdHJ1Y3QgV0tBdXRv
Q29ycmVjdGlvbkRhdGEgewogICAgIFJldGFpblB0cjxVSVZpZXc+IF9pbnRlcmFjdGlvblZpZXdz
Q29udGFpbmVyVmlldzsKICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IF9tYXJrZWRUZXh0OwogICAg
IFJldGFpblB0cjxXS0FjdGlvblNoZWV0QXNzaXN0YW50PiBfYWN0aW9uU2hlZXRBc3Npc3RhbnQ7
CisjaWYgRU5BQkxFKEFJUlBMQVlfUElDS0VSKQogICAgIFJldGFpblB0cjxXS0FpclBsYXlSb3V0
ZVBpY2tlcj4gX2FpclBsYXlSb3V0ZVBpY2tlcjsKKyNlbmRpZgogICAgIFJldGFpblB0cjxXS0Zv
cm1JbnB1dFNlc3Npb24+IF9mb3JtSW5wdXRTZXNzaW9uOwogICAgIFJldGFpblB0cjxXS0ZpbGVV
cGxvYWRQYW5lbD4gX2ZpbGVVcGxvYWRQYW5lbDsKICAgICBSZXRhaW5QdHI8VUlHZXN0dXJlUmVj
b2duaXplcj4gX3ByZXZpZXdHZXN0dXJlUmVjb2duaXplcjsKQEAgLTI1NCw3ICsyNTYsNyBAQCBz
dHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewogICAgIFJldGFpblB0cjxXS1RleHRJbnB1dExp
c3RWaWV3Q29udHJvbGxlcj4gX3RleHRJbnB1dExpc3RWaWV3Q29udHJvbGxlcjsKICAgICBSZXRh
aW5QdHI8V0tGb2N1c2VkRm9ybUNvbnRyb2xWaWV3Q29udHJvbGxlcj4gX2ZvY3VzZWRGb3JtQ29u
dHJvbFZpZXdDb250cm9sbGVyOwogICAgIFJldGFpblB0cjxXS051bWJlclBhZFZpZXdDb250cm9s
bGVyPiBfbnVtYmVyUGFkVmlld0NvbnRyb2xsZXI7Ci0gICAgUmV0YWluUHRyPFdLU2VsZWN0TWVu
dVZpZXdDb250cm9sbGVyPiBfc2VsZWN0TWVudVZpZXdDb250cm9sbGVyOworICAgIFJldGFpblB0
cjxXS1NlbGVjdE1lbnVMaXN0Vmlld0NvbnRyb2xsZXI+IF9zZWxlY3RNZW51TGlzdFZpZXdDb250
cm9sbGVyOwogICAgIFJldGFpblB0cjxXS1RpbWVQaWNrZXJWaWV3Q29udHJvbGxlcj4gX3RpbWVQ
aWNrZXJWaWV3Q29udHJvbGxlcjsKIAogICAgIEJPT0wgX3Nob3VsZFJlc3RvcmVGaXJzdFJlc3Bv
bmRlclN0YXR1c0FmdGVyTG9zaW5nRm9jdXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA4NzUyODgxYzU0
ZTM4Njg0MTU5Zjg4MTI1ZTU4MTM5ZWY0NjdmYzE1Li5mZjM0OTMxY2U3MzYzNGQ4NzI5YjY0MWI4
Y2M2YmMxNDcyOWMyOWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTUzLDcgKzUzLDcgQEAKICNpbXBv
cnQgIldLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5oIgogI2ltcG9ydCAiV0tQcmV2aWV3
QWN0aW9uSXRlbUludGVybmFsLmgiCiAjaW1wb3J0ICJXS1ByZXZpZXdFbGVtZW50SW5mb0ludGVy
bmFsLmgiCi0jaW1wb3J0ICJXS1NlbGVjdE1lbnVWaWV3Q29udHJvbGxlci5oIgorI2ltcG9ydCAi
V0tTZWxlY3RNZW51TGlzdFZpZXdDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS1RleHRJbnB1dExp
c3RWaWV3Q29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tUaW1lUGlja2VyVmlld0NvbnRyb2xsZXIu
aCIKICNpbXBvcnQgIldLVUlEZWxlZ2F0ZVByaXZhdGUuaCIKQEAgLTEyNiw3ICsxMjYsNyBAQCBA
ZW5kCiAKICNpZiBFTkFCTEUoRVhUUkFfWk9PTV9NT0RFKQogCi1AaW50ZXJmYWNlIFdLQ29udGVu
dFZpZXcgKEV4dHJhWm9vbU1vZGUpIDxXS1RleHRGb3JtQ29udHJvbFZpZXdDb250cm9sbGVyRGVs
ZWdhdGUsIFdLRm9jdXNlZEZvcm1Db250cm9sVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZSwgV0tTZWxl
Y3RNZW51Vmlld0NvbnRyb2xsZXJEZWxlZ2F0ZSwgV0tGb3JtQ29udHJvbExpc3RWaWV3Q29udHJv
bGxlckRlbGVnYXRlPgorQGludGVyZmFjZSBXS0NvbnRlbnRWaWV3IChFeHRyYVpvb21Nb2RlKSA8
V0tUZXh0Rm9ybUNvbnRyb2xWaWV3Q29udHJvbGxlckRlbGVnYXRlLCBXS0ZvY3VzZWRGb3JtQ29u
dHJvbFZpZXdDb250cm9sbGVyRGVsZWdhdGUsIFdLU2VsZWN0TWVudUxpc3RWaWV3Q29udHJvbGxl
ckRlbGVnYXRlLCBXS1RleHRGb3JtQ29udHJvbExpc3RWaWV3Q29udHJvbGxlckRlbGVnYXRlPgog
QGVuZAogCiAjZW5kaWYKQEAgLTU3Niw2ICs1NzYsMTEgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRp
b24gV0tDb250ZW50VmlldyAoV0tJbnRlcmFjdGlvbikKIAorc3RhdGljIGlubGluZSBib29sIGhh
c0Fzc2lzdGVkTm9kZShXZWJLaXQ6OkFzc2lzdGVkTm9kZUluZm9ybWF0aW9uIGFzc2lzdGVkTm9k
ZUluZm9ybWF0aW9uKQoreworICAgIHJldHVybiAoYXNzaXN0ZWROb2RlSW5mb3JtYXRpb24uZWxl
bWVudFR5cGUgIT0gSW5wdXRUeXBlOjpOb25lKTsKK30KKwogLSAodm9pZClfY3JlYXRlQW5kQ29u
ZmlndXJlRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIKIHsKICAgICBfZG91YmxlVGFwR2VzdHVy
ZVJlY29nbml6ZXIgPSBhZG9wdE5TKFtbVUlUYXBHZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5p
dFdpdGhUYXJnZXQ6c2VsZiBhY3Rpb246QHNlbGVjdG9yKF9kb3VibGVUYXBSZWNvZ25pemVkOild
KTsKQEAgLTEyNjYsNyArMTI3MSw3IEBAIC0gKHZvaWQpX2Rpc3BsYXlGb3JtTm9kZUlucHV0Vmll
dwogCiAtIChVSVZpZXcgKilpbnB1dFZpZXcKIHsKLSAgICBpZiAoX2Fzc2lzdGVkTm9kZUluZm9y
bWF0aW9uLmVsZW1lbnRUeXBlID09IElucHV0VHlwZTo6Tm9uZSkKKyAgICBpZiAoIWhhc0Fzc2lz
dGVkTm9kZShfYXNzaXN0ZWROb2RlSW5mb3JtYXRpb24pKQogICAgICAgICByZXR1cm4gbmlsOwog
CiAgICAgaWYgKCFfaW5wdXRQZXJpcGhlcmFsKQpAQCAtMTI3OSw3ICsxMjg0LDcgQEAgLSAoVUlW
aWV3ICopaW5wdXRWaWV3CiAKIC0gKENHUmVjdClfc2VsZWN0aW9uQ2xpcFJlY3QKIHsKLSAgICBp
ZiAoX2Fzc2lzdGVkTm9kZUluZm9ybWF0aW9uLmVsZW1lbnRUeXBlID09IElucHV0VHlwZTo6Tm9u
ZSkKKyAgICBpZiAoIWhhc0Fzc2lzdGVkTm9kZShfYXNzaXN0ZWROb2RlSW5mb3JtYXRpb24pKQog
ICAgICAgICByZXR1cm4gQ0dSZWN0TnVsbDsKICAgICByZXR1cm4gX3BhZ2UtPmVkaXRvclN0YXRl
KCkucG9zdExheW91dERhdGEoKS5zZWxlY3Rpb25DbGlwUmVjdDsKIH0KQEAgLTEyOTUsMTAgKzEz
MDAsMTIgQEAgLSAoQk9PTClnZXN0dXJlUmVjb2duaXplcjooVUlHZXN0dXJlUmVjb2duaXplciAq
KXByZXZlbnRpbmdHZXN0dXJlUmVjb2duaXplciBjYW4KIAogLSAoQk9PTClnZXN0dXJlUmVjb2du
aXplcjooVUlHZXN0dXJlUmVjb2duaXplciAqKXByZXZlbnRlZEdlc3R1cmVSZWNvZ25pemVyIGNh
bkJlUHJldmVudGVkQnlHZXN0dXJlUmVjb2duaXplcjooVUlHZXN0dXJlUmVjb2duaXplciAqKXBy
ZXZlbnRpbmdHZXN0dXJlUmVjb2duaXplciB7CiAgICAgLy8gRG9uJ3QgYWxsb3cgdGhlIGhpZ2hs
aWdodCB0byBiZSBwcmV2ZW50ZWQgYnkgYSBzZWxlY3Rpb24gZ2VzdHVyZS4gUHJlc3MtYW5kLWhv
bGQgb24gYSBsaW5rIHNob3VsZCBoaWdobGlnaHQgdGhlIGxpbmssIG5vdCBzZWxlY3QgaXQuCi0g
ICAgaWYgKChwcmV2ZW50aW5nR2VzdHVyZVJlY29nbml6ZXIgPT0gX3RleHRTZWxlY3Rpb25Bc3Np
c3RhbnQuZ2V0KCkubG91cGVHZXN0dXJlIHx8IFtfd2ViU2VsZWN0aW9uQXNzaXN0YW50IGlzU2Vs
ZWN0aW9uR2VzdHVyZVJlY29nbml6ZXI6cHJldmVudGluZ0dlc3R1cmVSZWNvZ25pemVyXSkKLSAg
ICAgICAgJiYgKHByZXZlbnRlZEdlc3R1cmVSZWNvZ25pemVyID09IF9oaWdobGlnaHRMb25nUHJl
c3NHZXN0dXJlUmVjb2duaXplciB8fCBwcmV2ZW50ZWRHZXN0dXJlUmVjb2duaXplciA9PSBfbG9u
Z1ByZXNzR2VzdHVyZVJlY29nbml6ZXIpKSB7CisgICAgYm9vbCBpc0ZvcmNlUHJlc3NHZXN0dXJl
ID0gTk87CisjaWYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwCisg
ICAgaXNGb3JjZVByZXNzR2VzdHVyZSA9IChwcmV2ZW50aW5nR2VzdHVyZVJlY29nbml6ZXIgPT0g
X3RleHRTZWxlY3Rpb25Bc3Npc3RhbnQuZ2V0KCkuZm9yY2VQcmVzc0dlc3R1cmUpOworI2VuZGlm
CisgICAgaWYgKChwcmV2ZW50aW5nR2VzdHVyZVJlY29nbml6ZXIgPT0gX3RleHRTZWxlY3Rpb25B
c3Npc3RhbnQuZ2V0KCkubG91cGVHZXN0dXJlIHx8IGlzRm9yY2VQcmVzc0dlc3R1cmUgfHwgW193
ZWJTZWxlY3Rpb25Bc3Npc3RhbnQgaXNTZWxlY3Rpb25HZXN0dXJlUmVjb2duaXplcjpwcmV2ZW50
aW5nR2VzdHVyZVJlY29nbml6ZXJdKSAmJiAocHJldmVudGVkR2VzdHVyZVJlY29nbml6ZXIgPT0g
X2hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyIHx8IHByZXZlbnRlZEdlc3R1cmVS
ZWNvZ25pemVyID09IF9sb25nUHJlc3NHZXN0dXJlUmVjb2duaXplcikpCiAgICAgICAgIHJldHVy
biBOTzsKLSAgICB9CiAKICAgICByZXR1cm4gWUVTOwogfQpAQCAtMTMxNSw3ICsxMzIyLDEwIEBA
IC0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXI6KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJl
UmVjb2duaXplciBzaG91bGRSZWNvZ25pCiAKICAgICBpZiAoaXNTYW1lUGFpcihnZXN0dXJlUmVj
b2duaXplciwgb3RoZXJHZXN0dXJlUmVjb2duaXplciwgX2hpZ2hsaWdodExvbmdQcmVzc0dlc3R1
cmVSZWNvZ25pemVyLmdldCgpLCBfd2ViU2VsZWN0aW9uQXNzaXN0YW50LmdldCgpLnNlbGVjdGlv
bkxvbmdQcmVzc1JlY29nbml6ZXIpKQogICAgICAgICByZXR1cm4gWUVTOwotCisjaWYgX19JUEhP
TkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTIwMDAwCisgICAgaWYgKGlzU2FtZVBhaXIo
Z2VzdHVyZVJlY29nbml6ZXIsIG90aGVyR2VzdHVyZVJlY29nbml6ZXIsIF9oaWdobGlnaHRMb25n
UHJlc3NHZXN0dXJlUmVjb2duaXplci5nZXQoKSwgX3RleHRTZWxlY3Rpb25Bc3Npc3RhbnQuZ2V0
KCkuZm9yY2VQcmVzc0dlc3R1cmUpKQorICAgICAgICByZXR1cm4gWUVTOworI2VuZGlmCiAgICAg
aWYgKGlzU2FtZVBhaXIoZ2VzdHVyZVJlY29nbml6ZXIsIG90aGVyR2VzdHVyZVJlY29nbml6ZXIs
IF9zaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplci5nZXQoKSwgX3RleHRTZWxlY3Rpb25Bc3Npc3Rh
bnQuZ2V0KCkuc2luZ2xlVGFwR2VzdHVyZSkpCiAgICAgICAgIHJldHVybiBZRVM7CiAKQEAgLTE1
MTgsNyArMTUyOCw3IEBAIC0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXJTaG91bGRCZWdpbjooVUlH
ZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyCiAgICAgICAgIHx8IGdlc3R1cmVS
ZWNvZ25pemVyID09IF90d29GaW5nZXJEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplcgogICAgICAg
ICB8fCBnZXN0dXJlUmVjb2duaXplciA9PSBfc2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIpIHsK
IAotICAgICAgICBpZiAoX3RleHRTZWxlY3Rpb25Bc3Npc3RhbnQpIHsKKyAgICAgICAgaWYgKGhh
c0Fzc2lzdGVkTm9kZShfYXNzaXN0ZWROb2RlSW5mb3JtYXRpb24pKSB7CiAgICAgICAgICAgICAv
LyBSZXF1ZXN0IGluZm9ybWF0aW9uIGFib3V0IHRoZSBwb3NpdGlvbiB3aXRoIHN5bmMgbWVzc2Fn
ZS4KICAgICAgICAgICAgIC8vIElmIHRoZSBhc3Npc3RlZCBub2RlIGlzIHRoZSBzYW1lLCBwcmV2
ZW50IHRoZSBnZXN0dXJlLgogICAgICAgICAgICAgaWYgKCFbc2VsZiBlbnN1cmVQb3NpdGlvbklu
Zm9ybWF0aW9uSXNVcFRvRGF0ZTpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdChyb3VuZGVk
SW50UG9pbnQocG9pbnQpKV0pCkBAIC0xNTI5LDMwICsxNTM5LDMwIEBAIC0gKEJPT0wpZ2VzdHVy
ZVJlY29nbml6ZXJTaG91bGRCZWdpbjooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNv
Z25pemVyCiAgICAgfQogCiAgICAgaWYgKGdlc3R1cmVSZWNvZ25pemVyID09IF9oaWdobGlnaHRM
b25nUHJlc3NHZXN0dXJlUmVjb2duaXplcikgewotICAgICAgICBpZiAoX3RleHRTZWxlY3Rpb25B
c3Npc3RhbnQpIHsKKyAgICAgICAgaWYgKGhhc0Fzc2lzdGVkTm9kZShfYXNzaXN0ZWROb2RlSW5m
b3JtYXRpb24pKSB7CiAgICAgICAgICAgICAvLyBUaGlzIGlzIGEgZGlmZmVyZW50IG5vZGUgdGhh
biB0aGUgYXNzaXN0ZWQgb25lLgogICAgICAgICAgICAgLy8gUHJldmVudCB0aGUgZ2VzdHVyZSBp
ZiB0aGVyZSBpcyBubyBub2RlLgogICAgICAgICAgICAgLy8gQWxsb3cgdGhlIGdlc3R1cmUgaWYg
aXQgaXMgYSBub2RlIHRoYXQgd2FudHMgaGlnaGxpZ2h0IG9yIGlmIHRoZXJlIGlzIGFuIGFjdGlv
biBmb3IgaXQuCiAgICAgICAgICAgICBpZiAoIV9wb3NpdGlvbkluZm9ybWF0aW9uLmlzRWxlbWVu
dCkKICAgICAgICAgICAgICAgICByZXR1cm4gTk87CiAgICAgICAgICAgICByZXR1cm4gW3NlbGYg
X2FjdGlvbkZvckxvbmdQcmVzc10gIT0gbmlsOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgLy8gV2Ugc3RpbGwgaGF2ZSBubyBpZGVhIGFib3V0IHdoYXQgaXMgYXQgdGhlIGxvY2F0aW9u
LgotICAgICAgICAgICAgLy8gU2VuZCBhbmQgYXN5bmMgbWVzc2FnZSB0byBmaW5kIG91dC4KLSAg
ICAgICAgICAgIF9oYXNWYWxpZFBvc2l0aW9uSW5mb3JtYXRpb24gPSBOTzsKLSAgICAgICAgICAg
IEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHJlcXVlc3Qocm91bmRlZEludFBvaW50KHBv
aW50KSk7Ci0KLSAgICAgICAgICAgIC8vIElmIDNEIFRvdWNoIGlzIGVuYWJsZWQsIGFzeW5jaHJv
bm91c2x5IGNvbGxlY3Qgc25hcHNob3RzIGluIHRoZSBob3BlcyB0aGF0Ci0gICAgICAgICAgICAv
LyB0aGV5J2xsIGFycml2ZSBiZWZvcmUgd2UgaGF2ZSB0byBzeW5jaHJvbm91c2x5IHJlcXVlc3Qg
dGhlbSBpbgotICAgICAgICAgICAgLy8gX2ludGVyYWN0aW9uU2hvdWxkQmVnaW5Gcm9tUHJldmll
d0l0ZW1Db250cm9sbGVyLgotICAgICAgICAgICAgaWYgKHNlbGYudHJhaXRDb2xsZWN0aW9uLmZv
cmNlVG91Y2hDYXBhYmlsaXR5ID09IFVJRm9yY2VUb3VjaENhcGFiaWxpdHlBdmFpbGFibGUpIHsK
LSAgICAgICAgICAgICAgICByZXF1ZXN0LmluY2x1ZGVTbmFwc2hvdCA9IHRydWU7Ci0gICAgICAg
ICAgICAgICAgcmVxdWVzdC5pbmNsdWRlTGlua0luZGljYXRvciA9IHRydWU7Ci0gICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICAgICAgLy8gV2Ugc3RpbGwgaGF2ZSBubyBpZGVhIGFib3V0IHdo
YXQgaXMgYXQgdGhlIGxvY2F0aW9uLgorICAgICAgICAvLyBTZW5kIGFuIGFzeW5jIG1lc3NhZ2Ug
dG8gZmluZCBvdXQuCisgICAgICAgIF9oYXNWYWxpZFBvc2l0aW9uSW5mb3JtYXRpb24gPSBOTzsK
KyAgICAgICAgSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QgcmVxdWVzdChyb3VuZGVkSW50
UG9pbnQocG9pbnQpKTsKIAotICAgICAgICAgICAgW3NlbGYgcmVxdWVzdEFzeW5jaHJvbm91c1Bv
c2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6cmVxdWVzdF07Ci0gICAgICAgICAgICByZXR1cm4gWUVT
OworICAgICAgICAvLyBJZiAzRCBUb3VjaCBpcyBlbmFibGVkLCBhc3luY2hyb25vdXNseSBjb2xs
ZWN0IHNuYXBzaG90cyBpbiB0aGUgaG9wZXMgdGhhdAorICAgICAgICAvLyB0aGV5J2xsIGFycml2
ZSBiZWZvcmUgd2UgaGF2ZSB0byBzeW5jaHJvbm91c2x5IHJlcXVlc3QgdGhlbSBpbgorICAgICAg
ICAvLyBfaW50ZXJhY3Rpb25TaG91bGRCZWdpbkZyb21QcmV2aWV3SXRlbUNvbnRyb2xsZXIuCisg
ICAgICAgIGlmIChzZWxmLnRyYWl0Q29sbGVjdGlvbi5mb3JjZVRvdWNoQ2FwYWJpbGl0eSA9PSBV
SUZvcmNlVG91Y2hDYXBhYmlsaXR5QXZhaWxhYmxlKSB7CisgICAgICAgICAgICByZXF1ZXN0Lmlu
Y2x1ZGVTbmFwc2hvdCA9IHRydWU7CisgICAgICAgICAgICByZXF1ZXN0LmluY2x1ZGVMaW5rSW5k
aWNhdG9yID0gdHJ1ZTsKICAgICAgICAgfQorCisgICAgICAgIFtzZWxmIHJlcXVlc3RBc3luY2hy
b25vdXNQb3NpdGlvbkluZm9ybWF0aW9uVXBkYXRlOnJlcXVlc3RdOworICAgICAgICByZXR1cm4g
WUVTOworCiAgICAgfQogCiAgICAgaWYgKGdlc3R1cmVSZWNvZ25pemVyID09IF9sb25nUHJlc3NH
ZXN0dXJlUmVjb2duaXplcikgewpAQCAtMTU2Myw3ICsxNTczLDcgQEAgLSAoQk9PTClnZXN0dXJl
UmVjb2duaXplclNob3VsZEJlZ2luOihVSUdlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlY29n
bml6ZXIKICAgICAgICAgaWYgKCFbc2VsZiBlbnN1cmVQb3NpdGlvbkluZm9ybWF0aW9uSXNVcFRv
RGF0ZTpyZXF1ZXN0XSkKICAgICAgICAgICAgIHJldHVybiBOTzsKIAotICAgICAgICBpZiAoX3Rl
eHRTZWxlY3Rpb25Bc3Npc3RhbnQpIHsKKyAgICAgICAgaWYgKGhhc0Fzc2lzdGVkTm9kZShfYXNz
aXN0ZWROb2RlSW5mb3JtYXRpb24pKSB7CiAgICAgICAgICAgICAvLyBQcmV2ZW50IHRoZSBnZXN0
dXJlIGlmIGl0IGlzIHRoZSBzYW1lIG5vZGUuCiAgICAgICAgICAgICBpZiAoX3Bvc2l0aW9uSW5m
b3JtYXRpb24ubm9kZUF0UG9zaXRpb25Jc0Fzc2lzdGVkTm9kZSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gTk87CkBAIC0xNjUwLDYgKzE2NjAsMTAgQEAgLSAoQk9PTCl0ZXh0SW50ZXJhY3Rpb25H
ZXN0dXJlOihVSVdLR2VzdHVyZVR5cGUpZ2VzdHVyZSBzaG91bGRCZWdpbkF0UG9pbnQ6KENHUG8K
ICAgICBpZiAoc2VsZi5pc0Fzc2lzdGluZ05vZGUpCiAgICAgICAgIHJldHVybiBfcG9zaXRpb25J
bmZvcm1hdGlvbi5ub2RlQXRQb3NpdGlvbklzQXNzaXN0ZWROb2RlOwogCisgICAgLy8gSWYgd2Un
cmUgc2VsZWN0aW5nIHNvbWV0aGluZywgZG9uJ3QgYWN0aXZhdGUgaGlnaGxpZ2h0LgorICAgIGlm
IChnZXN0dXJlID09IFVJV0tHZXN0dXJlTG91cGUgJiYgW3NlbGYgaGFzU2VsZWN0YWJsZVBvc2l0
aW9uQXRQb2ludDpwb2ludF0pCisgICAgICAgIFtzZWxmIF9jYW5jZWxMb25nUHJlc3NHZXN0dXJl
UmVjb2duaXplcl07CisgICAgCiAgICAgLy8gT3RoZXJ3aXNlLCBpZiB3ZSdyZSB1c2luZyBhIHRl
eHQgaW50ZXJhY3Rpb24gYXNzaXN0YW50IG91dHNpZGUgb2YgZWRpdGluZyBwdXJwb3NlcyAoZS5n
LiB0aGUgc2VsZWN0aW9uIG1vZGUKICAgICAvLyBpcyBjaGFyYWN0ZXIgZ3JhbnVsYXJpdHkpIHRo
ZW4gYWxsb3cgdGV4dCBzZWxlY3Rpb24uCiAgICAgcmV0dXJuIFlFUzsKQEAgLTE2ODIsNyArMTY5
Niw3IEBAIC0gKE5TQXJyYXkgKil3ZWJTZWxlY3Rpb25SZWN0c0ZvclNlbGVjdGlvblJlY3RzOihj
b25zdCBWZWN0b3I8V2ViQ29yZTo6U2VsZWN0aW9uCiAKIC0gKE5TQXJyYXkgKil3ZWJTZWxlY3Rp
b25SZWN0cwogewotICAgIGlmIChfcGFnZS0+ZWRpdG9yU3RhdGUoKS5zZWxlY3Rpb25Jc05vbmUp
CisgICAgaWYgKF9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzTWlzc2luZ1Bvc3RMYXlvdXREYXRhIHx8
IF9wYWdlLT5lZGl0b3JTdGF0ZSgpLnNlbGVjdGlvbklzTm9uZSkKICAgICAgICAgcmV0dXJuIG5p
bDsKICAgICBjb25zdCBhdXRvJiBzZWxlY3Rpb25SZWN0cyA9IF9wYWdlLT5lZGl0b3JTdGF0ZSgp
LnBvc3RMYXlvdXREYXRhKCkuc2VsZWN0aW9uUmVjdHM7CiAgICAgcmV0dXJuIFtzZWxmIHdlYlNl
bGVjdGlvblJlY3RzRm9yU2VsZWN0aW9uUmVjdHM6c2VsZWN0aW9uUmVjdHNdOwpAQCAtMTg4OSw2
ICsxOTAzLDkgQEAgLSAodm9pZClfYXR0ZW1wdENsaWNrQXRMb2NhdGlvbjooQ0dQb2ludClsb2Nh
dGlvbgogCiAtICh2b2lkKXVzZVNlbGVjdGlvbkFzc2lzdGFudFdpdGhHcmFudWxhcml0eTooV0tT
ZWxlY3Rpb25HcmFudWxhcml0eSlzZWxlY3Rpb25HcmFudWxhcml0eQogeworI2lmIEVOQUJMRShV
TklGSUVEX1RFWFRfU0VMRUNUSU9OKQorICAgIHNlbGVjdGlvbkdyYW51bGFyaXR5ID0gV0tTZWxl
Y3Rpb25HcmFudWxhcml0eUNoYXJhY3RlcjsKKyNlbmRpZgogICAgIGlmIChzZWxlY3Rpb25HcmFu
dWxhcml0eSA9PSBXS1NlbGVjdGlvbkdyYW51bGFyaXR5RHluYW1pYykgewogICAgICAgICBpZiAo
X3RleHRTZWxlY3Rpb25Bc3Npc3RhbnQpIHsKICAgICAgICAgICAgIFtfdGV4dFNlbGVjdGlvbkFz
c2lzdGFudCBkZWFjdGl2YXRlU2VsZWN0aW9uXTsKQEAgLTQwMjMsNyArNDA0MCw3IEBAIHN0YXRp
YyBib29sIGlzQXNzaXN0YWJsZUlucHV0VHlwZShJbnB1dFR5cGUgdHlwZSkKIAogLSAodm9pZClf
c3RhcnRBc3Npc3RpbmdOb2RlOihjb25zdCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYpaW5mb3Jt
YXRpb24gdXNlcklzSW50ZXJhY3Rpbmc6KEJPT0wpdXNlcklzSW50ZXJhY3RpbmcgYmx1clByZXZp
b3VzTm9kZTooQk9PTClibHVyUHJldmlvdXNOb2RlIGNoYW5naW5nQWN0aXZpdHlTdGF0ZTooQk9P
TCljaGFuZ2luZ0FjdGl2aXR5U3RhdGUgdXNlck9iamVjdDooTlNPYmplY3QgPE5TU2VjdXJlQ29k
aW5nPiAqKXVzZXJPYmplY3QKIHsKLSAgICBTZXRGb3JTY29wZTxCT09MPiBpc0NoYW5naW5nRm9j
dXNGb3JTY29wZSB7IF9pc0NoYW5naW5nRm9jdXMsIF9hc3Npc3RlZE5vZGVJbmZvcm1hdGlvbi5l
bGVtZW50VHlwZSAhPSBJbnB1dFR5cGU6Ok5vbmUgfTsKKyAgICBTZXRGb3JTY29wZTxCT09MPiBp
c0NoYW5naW5nRm9jdXNGb3JTY29wZSB7IF9pc0NoYW5naW5nRm9jdXMsIGhhc0Fzc2lzdGVkTm9k
ZShfYXNzaXN0ZWROb2RlSW5mb3JtYXRpb24pIH07CiAgICAgX2lucHV0Vmlld1VwZGF0ZURlZmVy
cmVyID0gbnVsbHB0cjsKIAogICAgIGlkIDxfV0tJbnB1dERlbGVnYXRlPiBpbnB1dERlbGVnYXRl
ID0gW193ZWJWaWV3IF9pbnB1dERlbGVnYXRlXTsKQEAgLTQwMzQsNyArNDA1MSw3IEBAIC0gKHZv
aWQpX3N0YXJ0QXNzaXN0aW5nTm9kZTooY29uc3QgQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24mKWlu
Zm9ybWF0aW9uIHVzZXJJc0luCiAgICAgICAgIHNob3VsZFNob3dLZXlib2FyZCA9IFtpbnB1dERl
bGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IGZvY3VzU2hvdWxkU3RhcnRJbnB1dFNlc3Npb246Zm9j
dXNlZEVsZW1lbnRJbmZvLmdldCgpXTsKICAgICBlbHNlIHsKICAgICAgICAgLy8gVGhlIGRlZmF1
bHQgYmVoYXZpb3IgaXMgdG8gYWxsb3cgbm9kZSBhc3Npc3RhbmNlIGlmIHRoZSB1c2VyIGlzIGlu
dGVyYWN0aW5nIG9yIHRoZSBrZXlib2FyZCBpcyBhbHJlYWR5IGFjdGl2ZS4KLSAgICAgICAgc2hv
dWxkU2hvd0tleWJvYXJkID0gdXNlcklzSW50ZXJhY3RpbmcgfHwgX3RleHRTZWxlY3Rpb25Bc3Np
c3RhbnQgfHwgY2hhbmdpbmdBY3Rpdml0eVN0YXRlOworICAgICAgICBzaG91bGRTaG93S2V5Ym9h
cmQgPSB1c2VySXNJbnRlcmFjdGluZyB8fCBfaXNDaGFuZ2luZ0ZvY3VzIHx8IGNoYW5naW5nQWN0
aXZpdHlTdGF0ZTsKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKICAgICAgICAgc2hvdWxk
U2hvd0tleWJvYXJkIHw9IF9kcmFnRHJvcEludGVyYWN0aW9uU3RhdGUuaXNQZXJmb3JtaW5nRHJv
cCgpOwogI2VuZGlmCkBAIC00MjE0LDIxICs0MjMxLDIwIEBAIC0gKHZvaWQpZGlzbWlzc1RpbWVQ
aWNrZXJWaWV3Q29udHJvbGxlcjooQk9PTClhbmltYXRlZAogCiAtICh2b2lkKXByZXNlbnRTZWxl
Y3RNZW51Vmlld0NvbnRyb2xsZXI6KEJPT0wpYW5pbWF0ZWQKIHsKLSAgICBpZiAoX3NlbGVjdE1l
bnVWaWV3Q29udHJvbGxlcikKKyAgICBpZiAoX3NlbGVjdE1lbnVMaXN0Vmlld0NvbnRyb2xsZXIp
CiAgICAgICAgIHJldHVybjsKIAotICAgIF9zZWxlY3RNZW51Vmlld0NvbnRyb2xsZXIgPSBhZG9w
dE5TKFtbV0tTZWxlY3RNZW51Vmlld0NvbnRyb2xsZXIgYWxsb2NdIGluaXRdKTsKLSAgICBbX3Nl
bGVjdE1lbnVWaWV3Q29udHJvbGxlciBzZXREZWxlZ2F0ZTpzZWxmXTsKLSAgICBbX2ZvY3VzZWRG
b3JtQ29udHJvbFZpZXdDb250cm9sbGVyIHByZXNlbnRWaWV3Q29udHJvbGxlcjpfc2VsZWN0TWVu
dVZpZXdDb250cm9sbGVyLmdldCgpIGFuaW1hdGVkOmFuaW1hdGVkIGNvbXBsZXRpb246bmlsXTsK
KyAgICBfc2VsZWN0TWVudUxpc3RWaWV3Q29udHJvbGxlciA9IGFkb3B0TlMoW1tXS1NlbGVjdE1l
bnVMaXN0Vmlld0NvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoRGVsZWdhdGU6c2VsZl0pOworICAg
IFtfZm9jdXNlZEZvcm1Db250cm9sVmlld0NvbnRyb2xsZXIgcHJlc2VudFZpZXdDb250cm9sbGVy
Ol9zZWxlY3RNZW51TGlzdFZpZXdDb250cm9sbGVyLmdldCgpIGFuaW1hdGVkOmFuaW1hdGVkIGNv
bXBsZXRpb246bmlsXTsKIH0KIAogLSAodm9pZClkaXNtaXNzU2VsZWN0TWVudVZpZXdDb250cm9s
bGVyOihCT09MKWFuaW1hdGVkCiB7Ci0gICAgaWYgKCFfc2VsZWN0TWVudVZpZXdDb250cm9sbGVy
KQorICAgIGlmICghX3NlbGVjdE1lbnVMaXN0Vmlld0NvbnRyb2xsZXIpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGF1dG8gc2VsZWN0TWVudVZpZXdDb250cm9sbGVyID0gV1RGTW92ZShfc2VsZWN0
TWVudVZpZXdDb250cm9sbGVyKTsKLSAgICBbc2VsZWN0TWVudVZpZXdDb250cm9sbGVyIGRpc21p
c3NWaWV3Q29udHJvbGxlckFuaW1hdGVkOmFuaW1hdGVkIGNvbXBsZXRpb246bmlsXTsKKyAgICBh
dXRvIHNlbGVjdE1lbnVMaXN0Vmlld0NvbnRyb2xsZXIgPSBXVEZNb3ZlKF9zZWxlY3RNZW51TGlz
dFZpZXdDb250cm9sbGVyKTsKKyAgICBbX3NlbGVjdE1lbnVMaXN0Vmlld0NvbnRyb2xsZXIgZGlz
bWlzc1ZpZXdDb250cm9sbGVyQW5pbWF0ZWQ6YW5pbWF0ZWQgY29tcGxldGlvbjpuaWxdOwogfQog
CiAtICh2b2lkKXByZXNlbnRGb2N1c2VkRm9ybUNvbnRyb2xWaWV3Q29udHJvbGxlcjooQk9PTClh
bmltYXRlZApAQCAtNDQyNywyNyArNDQ0MywyMCBAQCAtICh2b2lkKWZvY3VzZWRGb3JtQ29udHJv
bGxlckRpZFVwZGF0ZVN1Z2dlc3Rpb25zOihXS0ZvY3VzZWRGb3JtQ29udHJvbFZpZXdDb250cgog
ICAgICAgICBbX3RleHRJbnB1dExpc3RWaWV3Q29udHJvbGxlciByZWxvYWRUZXh0U3VnZ2VzdGlv
bnNdOwogfQogCi0jcHJhZ21hIG1hcmsgLSBXS1NlbGVjdE1lbnVWaWV3Q29udHJvbGxlckRlbGVn
YXRlCi0KLS0gKHZvaWQpc2VsZWN0TWVudTooV0tTZWxlY3RNZW51Vmlld0NvbnRyb2xsZXIgKilz
ZWxlY3RNZW51IGRpZFNlbGVjdEl0ZW1BdEluZGV4OihOU1VJbnRlZ2VyKWluZGV4Ci17Ci0gICAg
aWYgKCFfYXNzaXN0ZWROb2RlSW5mb3JtYXRpb24uaXNNdWx0aVNlbGVjdCkKLSAgICAgICAgX3Bh
Z2UtPnNldEFzc2lzdGVkTm9kZVNlbGVjdGVkSW5kZXgoaW5kZXgsIGZhbHNlKTsKKyNwcmFnbWEg
bWFyayAtIFdLU2VsZWN0TWVudUxpc3RWaWV3Q29udHJvbGxlckRlbGVnYXRlCiAKLSAgICBfcGFn
ZS0+Ymx1ckFzc2lzdGVkTm9kZSgpOwotfQotCi0tICh2b2lkKWRpZENhbmNlbFNlbGVjdGlvbklu
U2VsZWN0TWVudTooV0tTZWxlY3RNZW51Vmlld0NvbnRyb2xsZXIgKilzZWxlY3RNZW51CistICh2
b2lkKXNlbGVjdE1lbnU6KFdLU2VsZWN0TWVudUxpc3RWaWV3Q29udHJvbGxlciAqKXNlbGVjdE1l
bnUgZGlkU2VsZWN0SXRlbUF0SW5kZXg6KE5TVUludGVnZXIpaW5kZXgKIHsKLSAgICBfcGFnZS0+
Ymx1ckFzc2lzdGVkTm9kZSgpOworICAgIEFTU0VSVCghX2Fzc2lzdGVkTm9kZUluZm9ybWF0aW9u
LmlzTXVsdGlTZWxlY3QpOworICAgIF9wYWdlLT5zZXRBc3Npc3RlZE5vZGVTZWxlY3RlZEluZGV4
KGluZGV4LCBmYWxzZSk7CiB9CiAKLS0gKE5TVUludGVnZXIpbnVtYmVyT2ZJdGVtc0luU2VsZWN0
TWVudTooV0tTZWxlY3RNZW51Vmlld0NvbnRyb2xsZXIgKilzZWxlY3RNZW51CistIChOU1VJbnRl
Z2VyKW51bWJlck9mSXRlbXNJblNlbGVjdE1lbnU6KFdLU2VsZWN0TWVudUxpc3RWaWV3Q29udHJv
bGxlciAqKXNlbGVjdE1lbnUKIHsKICAgICByZXR1cm4gc2VsZi5hc3Npc3RlZE5vZGVTZWxlY3RP
cHRpb25zLnNpemUoKTsKIH0KIAotLSAoTlNTdHJpbmcgKilzZWxlY3RNZW51OihXS1NlbGVjdE1l
bnVWaWV3Q29udHJvbGxlciAqKXNlbGVjdE1lbnUgZGlzcGxheVRleHRGb3JJdGVtQXRJbmRleDoo
TlNVSW50ZWdlcilpbmRleAorLSAoTlNTdHJpbmcgKilzZWxlY3RNZW51OihXS1NlbGVjdE1lbnVM
aXN0Vmlld0NvbnRyb2xsZXIgKilzZWxlY3RNZW51IGRpc3BsYXlUZXh0Rm9ySXRlbUF0SW5kZXg6
KE5TVUludGVnZXIpaW5kZXgKIHsKICAgICBhdXRvJiBvcHRpb25zID0gc2VsZi5hc3Npc3RlZE5v
ZGVTZWxlY3RPcHRpb25zOwogICAgIGlmIChpbmRleCA+PSBvcHRpb25zLnNpemUoKSkgewpAQCAt
NDQ1OCw3ICs0NDY3LDcgQEAgLSAoTlNTdHJpbmcgKilzZWxlY3RNZW51OihXS1NlbGVjdE1lbnVW
aWV3Q29udHJvbGxlciAqKXNlbGVjdE1lbnUgZGlzcGxheVRleHRGb3IKICAgICByZXR1cm4gb3B0
aW9uc1tpbmRleF0udGV4dDsKIH0KIAotLSAodm9pZClzZWxlY3RNZW51OihXS1NlbGVjdE1lbnVW
aWV3Q29udHJvbGxlciAqKXNlbGVjdE1lbnUgZGlkQ2hlY2tJdGVtQXRJbmRleDooTlNVSW50ZWdl
cilpbmRleCBjaGVja2VkOihCT09MKWNoZWNrZWQKKy0gKHZvaWQpc2VsZWN0TWVudTooV0tTZWxl
Y3RNZW51TGlzdFZpZXdDb250cm9sbGVyICopc2VsZWN0TWVudSBkaWRDaGVja0l0ZW1BdEluZGV4
OihOU1VJbnRlZ2VyKWluZGV4IGNoZWNrZWQ6KEJPT0wpY2hlY2tlZAogewogICAgIEFTU0VSVChf
YXNzaXN0ZWROb2RlSW5mb3JtYXRpb24uaXNNdWx0aVNlbGVjdCk7CiAgICAgaWYgKGluZGV4ID49
IHNlbGYuYXNzaXN0ZWROb2RlU2VsZWN0T3B0aW9ucy5zaXplKCkpIHsKQEAgLTQ0NzYsMTIgKzQ0
ODUsMTIgQEAgLSAodm9pZClzZWxlY3RNZW51OihXS1NlbGVjdE1lbnVWaWV3Q29udHJvbGxlciAq
KXNlbGVjdE1lbnUgZGlkQ2hlY2tJdGVtQXRJbmRleDoKICAgICBvcHRpb24uaXNTZWxlY3RlZCA9
IGNoZWNrZWQ7CiB9CiAKLS0gKEJPT0wpc2VsZWN0TWVudVN1cHBvcnRzTXVsdGlwbGVTZWxlY3Rp
b246KFdLU2VsZWN0TWVudVZpZXdDb250cm9sbGVyICopc2VsZWN0TWVudQorLSAoQk9PTClzZWxl
Y3RNZW51VXNlc011bHRpcGxlU2VsZWN0aW9uOihXS1NlbGVjdE1lbnVMaXN0Vmlld0NvbnRyb2xs
ZXIgKilzZWxlY3RNZW51CiB7CiAgICAgcmV0dXJuIF9hc3Npc3RlZE5vZGVJbmZvcm1hdGlvbi5p
c011bHRpU2VsZWN0OwogfQogCi0tIChCT09MKXNlbGVjdE1lbnU6KFdLU2VsZWN0TWVudVZpZXdD
b250cm9sbGVyICopc2VsZWN0TWVudSBoYXNDaGVja2VkT3B0aW9uQXRJbmRleDooTlNVSW50ZWdl
cilpbmRleAorLSAoQk9PTClzZWxlY3RNZW51OihXS1NlbGVjdE1lbnVMaXN0Vmlld0NvbnRyb2xs
ZXIgKilzZWxlY3RNZW51IGhhc1NlbGVjdGVkT3B0aW9uQXRJbmRleDooTlNVSW50ZWdlcilpbmRl
eAogewogICAgIGlmIChpbmRleCA+PSBzZWxmLmFzc2lzdGVkTm9kZVNlbGVjdE9wdGlvbnMuc2l6
ZSgpKSB7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNDQ5MSwxOCArNDUwMCw2
IEBAIC0gKEJPT0wpc2VsZWN0TWVudTooV0tTZWxlY3RNZW51Vmlld0NvbnRyb2xsZXIgKilzZWxl
Y3RNZW51IGhhc0NoZWNrZWRPcHRpb25BdEluCiAgICAgcmV0dXJuIHNlbGYuYXNzaXN0ZWROb2Rl
U2VsZWN0T3B0aW9uc1tpbmRleF0uaXNTZWxlY3RlZDsKIH0KIAotLSAoTlNVSW50ZWdlcilzdGFy
dGluZ0luZGV4Rm9yU2VsZWN0TWVudTooV0tTZWxlY3RNZW51Vmlld0NvbnRyb2xsZXIgKilzZWxl
Y3RNZW51Ci17Ci0gICAgaWYgKF9hc3Npc3RlZE5vZGVJbmZvcm1hdGlvbi5pc011bHRpU2VsZWN0
KQotICAgICAgICByZXR1cm4gMDsKLQotICAgIGF1dG8gZmlyc3RTZWxlY3RlZEluZGV4ID0gc2Vs
Zi5hc3Npc3RlZE5vZGVTZWxlY3RPcHRpb25zLmZpbmRNYXRjaGluZyhbJl0gKGF1dG8mIG9wdGlv
bikgewotICAgICAgICByZXR1cm4gb3B0aW9uLmlzU2VsZWN0ZWQ7Ci0gICAgfSk7Ci0KLSAgICBy
ZXR1cm4gZmlyc3RTZWxlY3RlZEluZGV4ID09IG5vdEZvdW5kID8gMCA6IGZpcnN0U2VsZWN0ZWRJ
bmRleDsKLX0KLQogI2VuZGlmIC8vIEVOQUJMRShFWFRSQV9aT09NX01PREUpCiAKIC0gKHZvaWQp
X3doZWVsQ2hhbmdlZFdpdGhFdmVudDooVUlFdmVudCAqKWV2ZW50CkBAIC00NTExLDkgKzQ1MDgs
NiBAQCAtICh2b2lkKV93aGVlbENoYW5nZWRXaXRoRXZlbnQ6KFVJRXZlbnQgKilldmVudAogICAg
IGlmIChbX251bWJlclBhZFZpZXdDb250cm9sbGVyIGhhbmRsZVdoZWVsRXZlbnQ6ZXZlbnRdKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoW19zZWxlY3RNZW51Vmlld0NvbnRyb2xsZXIgaGFu
ZGxlV2hlZWxFdmVudDpldmVudF0pCi0gICAgICAgIHJldHVybjsKLQogICAgIGlmIChbX3RpbWVQ
aWNrZXJWaWV3Q29udHJvbGxlciBoYW5kbGVXaGVlbEV2ZW50OmV2ZW50XSkKICAgICAgICAgcmV0
dXJuOwogCkBAIC00NjExLDYgKzQ2MDUsNyBAQCAtICh2b2lkKXNldFN1cHByZXNzQXNzaXN0YW50
U2VsZWN0aW9uVmlldzooQk9PTClzdXBwcmVzc0Fzc2lzdGFudFNlbGVjdGlvblZpZXcKIAogLSAo
dm9pZClfc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyOihCT09MKWhhc1ZpZGVvIGZyb21SZWN0Oihj
b25zdCBJbnRSZWN0JillbGVtZW50UmVjdAogeworI2lmIEVOQUJMRShBSVJQTEFZX1BJQ0tFUikK
ICNpZiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDAgJiYgIVBMQVRG
T1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKQogICAgIGlmICghX2FpclBsYXlSb3V0
ZVBpY2tlcikKICAgICAgICAgX2FpclBsYXlSb3V0ZVBpY2tlciA9IGFkb3B0TlMoW1tXS0FpclBs
YXlSb3V0ZVBpY2tlciBhbGxvY10gaW5pdF0pOwpAQCAtNDYyMCw2ICs0NjE1LDcgQEAgLSAodm9p
ZClfc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyOihCT09MKWhhc1ZpZGVvIGZyb21SZWN0Oihjb25z
dCBJbnRSZWN0JillbGVtZW4KICAgICAgICAgX2FpclBsYXlSb3V0ZVBpY2tlciA9IGFkb3B0TlMo
W1tXS0FpclBsYXlSb3V0ZVBpY2tlciBhbGxvY10gaW5pdFdpdGhWaWV3OnNlbGZdKTsKICAgICBb
X2FpclBsYXlSb3V0ZVBpY2tlciBzaG93Omhhc1ZpZGVvIGZyb21SZWN0OmVsZW1lbnRSZWN0XTsK
ICNlbmRpZgorI2VuZGlmCiB9CiAKIC0gKHZvaWQpX3Nob3dSdW5PcGVuUGFuZWw6KEFQSTo6T3Bl
blBhbmVsUGFyYW1ldGVycyopcGFyYW1ldGVycyByZXN1bHRMaXN0ZW5lcjooV2ViT3BlblBhbmVs
UmVzdWx0TGlzdGVuZXJQcm94eSopbGlzdGVuZXIKQEAgLTUxNzMsNyArNTE2OSw3IEBAIC0gKE5T
QXJyYXk8VUlEcmFnSXRlbSAqPiAqKV9pdGVtc0ZvckJlZ2lubmluZ09yQWRkaW5nVG9TZXNzaW9u
V2l0aFJlZ2lzdHJhdGlvbkxpCiAtIChOU0RpY3Rpb25hcnkgKilfYXV0b2ZpbGxDb250ZXh0CiB7
CiAgICAgQk9PTCBwcm92aWRlU3Ryb25nUGFzc3dvcmRBc3Npc3RhbmNlID0gX2ZvY3VzUmVxdWly
ZXNTdHJvbmdQYXNzd29yZEFzc2lzdGFuY2UgJiYgX2Fzc2lzdGVkTm9kZUluZm9ybWF0aW9uLmVs
ZW1lbnRUeXBlID09IElucHV0VHlwZTo6UGFzc3dvcmQ7Ci0gICAgaWYgKF9hc3Npc3RlZE5vZGVJ
bmZvcm1hdGlvbi5lbGVtZW50VHlwZSA9PSBJbnB1dFR5cGU6Ok5vbmUgfHwgKCFfYXNzaXN0ZWRO
b2RlSW5mb3JtYXRpb24uYWNjZXB0c0F1dG9maWxsZWRMb2dpbkNyZWRlbnRpYWxzICYmICFwcm92
aWRlU3Ryb25nUGFzc3dvcmRBc3Npc3RhbmNlKSkKKyAgICBpZiAoIWhhc0Fzc2lzdGVkTm9kZShf
YXNzaXN0ZWROb2RlSW5mb3JtYXRpb24pIHx8ICghX2Fzc2lzdGVkTm9kZUluZm9ybWF0aW9uLmFj
Y2VwdHNBdXRvZmlsbGVkTG9naW5DcmVkZW50aWFscyAmJiAhcHJvdmlkZVN0cm9uZ1Bhc3N3b3Jk
QXNzaXN0YW5jZSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBpZiAocHJvdmlkZVN0cm9u
Z1Bhc3N3b3JkQXNzaXN0YW5jZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9mb3Jtcy9XS0FpclBsYXlSb3V0ZVBpY2tlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL2Zvcm1zL1dLQWlyUGxheVJvdXRlUGlja2VyLmgKaW5kZXggZDJiZTc3NzY4ZTI3ODM0
Zjc5YmMxODNiYzcwNzlhODc5NzMyNmM5ZC4uMWY1MTdiYzQ5MWIzY2E0Y2E5NDMxZWMyODgyYmU5
ZDZhZjIzOWQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1z
L1dLQWlyUGxheVJvdXRlUGlja2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L2Zvcm1zL1dLQWlyUGxheVJvdXRlUGlja2VyLmgKQEAgLTIzLDcgKzIzLDcgQEAKICAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWYgUExBVEZPUk0oSU9TKQorI2lm
IFBMQVRGT1JNKElPUykgJiYgRU5BQkxFKEFJUlBMQVlfUElDS0VSKQogCiAjaWYgX19JUEhPTkVf
T1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwICYmICFQTEFURk9STShXQVRDSE9TKSAm
JiAhUExBVEZPUk0oQVBQTEVUVikKIApAQCAtNDgsNSArNDgsNSBAQAogCiAjZW5kaWYKIAotI2Vu
ZGlmIC8vIFBMQVRGT1JNKElPUykKKyNlbmRpZiAvLyBQTEFURk9STShJT1MpICYmIEVOQUJMRShB
SVJQTEFZX1BJQ0tFUikKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L2Zvcm1zL1dLQWlyUGxheVJvdXRlUGlja2VyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL2Zvcm1zL1dLQWlyUGxheVJvdXRlUGlja2VyLm1tCmluZGV4IGI2ZTUxN2ZhZGNkZGVkNTIz
Y2VmODJkMjg5MjU3MmUyMDI4NDQ5MGUuLmQ1ZjJiMWEyZWU0NTI5MTA1ODA2YWJkNTUzZjU5MTM1
NzhkZTFjYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9X
S0FpclBsYXlSb3V0ZVBpY2tlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
Zm9ybXMvV0tBaXJQbGF5Um91dGVQaWNrZXIubW0KQEAgLTI2LDcgKzI2LDcgQEAKICNpbXBvcnQg
ImNvbmZpZy5oIgogI2ltcG9ydCAiV0tBaXJQbGF5Um91dGVQaWNrZXIuaCIKIAotI2lmIFBMQVRG
T1JNKElPUykKKyNpZiBQTEFURk9STShJT1MpICYmIEVOQUJMRShBSVJQTEFZX1BJQ0tFUikKIAog
I2ltcG9ydCAiVUlLaXRTUEkuaCIKICNpbXBvcnQgPHBhbC9zcGkvaW9zL01lZGlhUGxheWVyU1BJ
Lmg+CkBAIC0yMDAsNCArMjAwLDQgQEAgQGVuZAogCiAjZW5kaWYKIAotI2VuZGlmIC8vIFBMQVRG
T1JNKElPUykKKyNlbmRpZiAvLyBQTEFURk9STShJT1MpICYmIEVOQUJMRShBSVJQTEFZX1BJQ0tF
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVV
cGxvYWRQYW5lbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVV
cGxvYWRQYW5lbC5tbQppbmRleCAwMmFmYzhmY2MxZjk1YjIzY2MyMGU1ODMwZGU5ZGYyNDM5ZTIy
NTVkLi5kOWNlMzJiNjQ0NjNkYmJjZmVkOTFlM2IxMjRhMDhlNTU4NTg0NTk4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVs
Lm1tCkBAIC00Miw3ICs0Miw2IEBACiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKICNpbXBvcnQg
PE1vYmlsZUNvcmVTZXJ2aWNlcy9Nb2JpbGVDb3JlU2VydmljZXMuaD4KICNpbXBvcnQgPFdlYkNv
cmUvTG9jYWxpemVkU3RyaW5ncy5oPgotI2ltcG9ydCA8V2ViS2l0L1dlYk5TRmlsZU1hbmFnZXJF
eHRyYXMuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKQEAgLTYwOCw4ICs2MDcsNyBAQCAtICh2b2lkKV91cGxvYWRJdGVtRm9ySW1hZ2VEYXRh
OihOU0RhdGEgKilpbWFnZURhdGEgaW1hZ2VOYW1lOihOU1N0cmluZyAqKWltYWdlTgogICAgIE5T
U3RyaW5nICogY29uc3Qga1RlbXBvcmFyeURpcmVjdG9yeU5hbWUgPSBAIldLV2ViRmlsZVVwbG9h
ZCI7CiAKICAgICAvLyBCdWlsZCB0ZW1wb3JhcnkgZmlsZSBwYXRoLgotICAgIE5TRmlsZU1hbmFn
ZXIgKmZpbGVNYW5hZ2VyID0gW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdOwotICAgIE5T
U3RyaW5nICp0ZW1wb3JhcnlEaXJlY3RvcnkgPSBbZmlsZU1hbmFnZXIgX3dlYmtpdF9jcmVhdGVU
ZW1wb3JhcnlEaXJlY3RvcnlXaXRoVGVtcGxhdGVQcmVmaXg6a1RlbXBvcmFyeURpcmVjdG9yeU5h
bWVdOworICAgIE5TU3RyaW5nICp0ZW1wb3JhcnlEaXJlY3RvcnkgPSBXZWJDb3JlOjpGaWxlU3lz
dGVtOjpjcmVhdGVUZW1wb3JhcnlEaXJlY3Rvcnkoa1RlbXBvcmFyeURpcmVjdG9yeU5hbWUpOwog
ICAgIE5TU3RyaW5nICpmaWxlUGF0aCA9IFt0ZW1wb3JhcnlEaXJlY3Rvcnkgc3RyaW5nQnlBcHBl
bmRpbmdQYXRoQ29tcG9uZW50OmltYWdlTmFtZV07CiAgICAgaWYgKCFmaWxlUGF0aCkgewogICAg
ICAgICBMT0dfRVJST1IoIldLRmlsZVVwbG9hZFBhbmVsOiBGYWlsZWQgdG8gY3JlYXRlIHRlbXBv
cmFyeSBkaXJlY3RvcnkgdG8gc2F2ZSBpbWFnZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLU2VsZWN0TWVudUxpc3RWaWV3Q29udHJvbGxlci5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLU2VsZWN0TWVudUxpc3RWaWV3Q29u
dHJvbGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2N2IxOGE4ZGZmYTliMjZlOTA1ZTQyZTFhMjc3ZjNjMTNi
ODhmMTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9y
bXMvV0tTZWxlY3RNZW51TGlzdFZpZXdDb250cm9sbGVyLmgKQEAgLTAsMCArMSwzMCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNp
bXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XS1NlbGVjdE1lbnVMaXN0Vmlld0NvbnRyb2xsZXJBZGRp
dGlvbnMuaD4KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L2Zvcm1zL1dLU2VsZWN0TWVudUxpc3RWaWV3Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9mb3Jtcy9XS1NlbGVjdE1lbnVMaXN0Vmlld0NvbnRyb2xsZXIubW0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzYyMTQ4ZGQ2ZGRkOGFkMmIyMGFlMzY2NGVmZWEzNmQ4NDlkNzc1NgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS1NlbGVjdE1l
bnVMaXN0Vmlld0NvbnRyb2xsZXIubW0KQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tTZWxlY3RNZW51TGlzdFZpZXdDb250cm9sbGVy
LmgiCisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2ltcG9ydCA8V2ViS2l0QWRkaXRp
b25zL1dLU2VsZWN0TWVudUxpc3RWaWV3Q29udHJvbGxlckFkZGl0aW9ucy5tbT4KKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLU2VsZWN0TWVu
dVZpZXdDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tT
ZWxlY3RNZW51Vmlld0NvbnRyb2xsZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OTU1MDhiNGE3ODk3NmI0MTFlMjBhOGFjODEzMjIwZDgzYmRiMzcyNS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvZm9ybXMvV0tTZWxlY3RNZW51Vmlld0NvbnRyb2xsZXIuaAorKysgL2Rldi9udWxsCkBAIC0x
LDMwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCi0jaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tTZWxlY3RNZW51Vmlld0Nv
bnRyb2xsZXJBZGRpdGlvbnMuaD4KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL2Zvcm1zL1dLU2VsZWN0TWVudVZpZXdDb250cm9sbGVyLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLU2VsZWN0TWVudVZpZXdDb250cm9sbGVyLm1t
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOWI0NjhkYjRlZWE5MTMwNDVlYzU2YWMy
ZjUyM2U3OTQ0OGVhZWQ1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS1NlbGVjdE1lbnVWaWV3
Q29udHJvbGxlci5tbQorKysgL2Rldi9udWxsCkBAIC0xLDMxICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIldLU2VsZWN0TWVudVZpZXdDb250cm9sbGVy
LmgiCi0KLSNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQotI2ltcG9ydCA8V2ViS2l0QWRkaXRp
b25zL1dLU2VsZWN0TWVudVZpZXdDb250cm9sbGVyQWRkaXRpb25zLm1tPgotI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVy
TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxl
ck1hYy5tbQppbmRleCBkZmZhNTQ3N2Y1OWVmNTc3NTFhNjgyMjllYTY2MzdmYzNjN2FlNTMwLi4w
MzI2YzM0NDAzYjdhMDI1ZWQ2N2JiNmVhYjA2YmY2NTZkZDUwOTIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW0K
QEAgLTc0MSw3ICs3NDEsNyBAQCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6ZW5kU3dpcGVH
ZXN0dXJlKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIHRhcmdldEl0ZW0sCiAgICAgbV93ZWJQYWdl
UHJveHkucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OlZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0
b3I6OlNldFJlbmRlclRyZWVTaXplTm90aWZpY2F0aW9uVGhyZXNob2xkKHJlbmRlclRyZWVTaXpl
ICogc3dpcGVTbmFwc2hvdFJlbW92YWxSZW5kZXJUcmVlU2l6ZVRhcmdldEZyYWN0aW9uKSwgbV93
ZWJQYWdlUHJveHkucGFnZUlEKCkpOwogCiAgICAgbV93ZWJQYWdlUHJveHkubmF2aWdhdGlvbkdl
c3R1cmVEaWRFbmQodHJ1ZSwgKnRhcmdldEl0ZW0pOwotICAgIG1fd2ViUGFnZVByb3h5LmdvVG9C
YWNrRm9yd2FyZEl0ZW0odGFyZ2V0SXRlbSk7CisgICAgbV93ZWJQYWdlUHJveHkuZ29Ub0JhY2tG
b3J3YXJkSXRlbSgqdGFyZ2V0SXRlbSk7CiAKICAgICBTbmFwc2hvdFJlbW92YWxUcmFja2VyOjpF
dmVudHMgZGVzaXJlZEV2ZW50cyA9IFNuYXBzaG90UmVtb3ZhbFRyYWNrZXI6OlZpc3VhbGx5Tm9u
RW1wdHlMYXlvdXQKICAgICAgICAgfCBTbmFwc2hvdFJlbW92YWxUcmFja2VyOjpNYWluRnJhbWVM
b2FkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29va2llTWFu
YWdlclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkNvb2tpZU1h
bmFnZXJQcm94eU1hYy5tbQppbmRleCAwZDBlNzNlNzYwNDE0MTM5MmQ2OGRiNzQwZjBkYzc5OWQ5
NDBhYTVlLi5lZWQ5N2FiZWQ2MDNhM2RjYmUxMWI3OTcyZjQ3MTAxYjliOTRlNzI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViQ29va2llTWFuYWdlclByb3h5TWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJDb29raWVNYW5hZ2VyUHJv
eHlNYWMubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDEx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0y
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjcsMTEgKzI3LDE0IEBACiAjaW1wb3J0ICJXZWJDb29raWVNYW5hZ2Vy
UHJveHkuaCIKIAogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaD4KKyNpbXBvcnQg
PHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIFdl
YkNvb2tpZU1hbmFnZXJQcm94eTo6cGVyc2lzdEhUVFBDb29raWVBY2NlcHRQb2xpY3koSFRUUENv
b2tpZUFjY2VwdFBvbGljeSBwb2xpY3kpCiB7CisgICAgQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxl
Z2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykpOworCiAgICAgLy8gRklY
TUU6IFRoZSBzYW5kYm94IGFwcGVhcnMgdG8gcHJldmVudCBwZXJzaXN0aW5nIHRoZSBuZXcgcG9s
aWN5IHRvIGRpc2ssIHNvIHdlIG11c3Qgc2V0IHRoZQogICAgIC8vIHBvbGljeSBpbiB0aGUgVUkg
UHJvY2VzcyBhcyB3ZWxsIGFzIGluIHRoZSBXZWIgUHJvY2VzcyAodG8gbWFrZSBzdXJlIGl0IGdl
dHMgc2V0IG9uIGFueQogICAgIC8vIFByaXZhdGUgQnJvd3NpbmcgQ29va2llIFN0b3JhZ2UpLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
OTg1Yzk4ODA4YWI4YmRkZWQyN2NlZGIyNTI5NWFjMmUwNDcwNjFjYy4uMjkyZjIwMDBjNmMwNDVh
MDY1NzBjYzg3OTllMzc3YzMzNDljZmU3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MDksNiArNjA5LDcgQEAKIAkJMkQxMDg3NjMx
RDJDNjQxQjAwQjg1RjgyIC8qIExvYWRQYXJhbWV0ZXJzQ29jb2EubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDEwODc2MjFEMkM2NDFCMDBCODVGODIg
LyogTG9hZFBhcmFtZXRlcnNDb2NvYS5tbSAqLzsgfTsKIAkJMkQxMjVDNUUxODU3RUEwNTAwM0JB
M0NCIC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkQxMjVDNUMxODU3RUEwNTAwM0JBM0NCIC8qIFZpZXdHZXN0
dXJlQ29udHJvbGxlci5oICovOyB9OwogCQkyRDEyNUM1RjE4NTdFQTA1MDAzQkEzQ0IgLyogVmll
d0dlc3R1cmVDb250cm9sbGVyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkQxMjVDNUQxODU3RUEwNTAwM0JBM0NCIC8qIFZpZXdHZXN0dXJlQ29u
dHJvbGxlck1hYy5tbSAqLzsgfTsKKwkJMkQxMkRBQjUyMDY2MkM3MzAwNkYwMEZCIC8qIFdLQW5p
bWF0aW9uRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJEMTJEQUI0MjA2NjJDNzMwMDZGMDBGQiAvKiBXS0FuaW1hdGlvbkRlbGVnYXRlLmgg
Ki87IH07CiAJCTJEMUI1RDVEMTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xs
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkQxQjVENUIxODU4NjlDODAwNkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJv
bGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTJEMUI1RDVFMTg1ODY5QzgwMDZDNjU5
NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQxQjVENUMxODU4NjlDODAwNkM2NTk2IC8qIFZp
ZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VzLmggKi87IH07CiAJCTJEMjhBNDk3MUFGOTY1QTEw
MEYxOTBDOSAvKiBXS1ZpZXdMYXlvdXRTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQyOEE0OTUxQUY5NjVBMTAwRjE5MEM5IC8qIFdLVmll
d0xheW91dFN0cmF0ZWd5LmggKi87IH07CkBAIC03NDMsOCArNzQ0LDYgQEAKIAkJMkVBN0IzRDYy
MDI2Q0YyMzAwOUNFNUFDIC8qIFdLTnVtYmVyUGFkVmlldy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFQTdCM0Q0MjAyNkNGMjMwMDlDRTVBQyAvKiBX
S051bWJlclBhZFZpZXcubW0gKi87IH07CiAJCTJFQjZGQzAxMjAzMDIxOTYwMDE3RTYxOSAvKiBX
S1RpbWVQaWNrZXJWaWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkVCNkZCRkYyMDMwMjE5NjAwMTdFNjE5IC8qIFdLVGltZVBpY2tl
clZpZXdDb250cm9sbGVyLmggKi87IH07CiAJCTJFQjZGQzAyMjAzMDIxOTYwMDE3RTYxOSAvKiBX
S1RpbWVQaWNrZXJWaWV3Q29udHJvbGxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJFQjZGQzAwMjAzMDIxOTYwMDE3RTYxOSAvKiBXS1RpbWVQaWNr
ZXJWaWV3Q29udHJvbGxlci5tbSAqLzsgfTsKLQkJMkVFNDUyOUYyMDI5MkQyQTAwRDgxNzc3IC8q
IFdLU2VsZWN0TWVudVZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyRUU0NTI5QzIwMjkyQkQ5MDBEODE3NzcgLyogV0tTZWxlY3RN
ZW51Vmlld0NvbnRyb2xsZXIuaCAqLzsgfTsKLQkJMkVFNDUyQTAyMDI5MkQyRTAwRDgxNzc3IC8q
IFdLU2VsZWN0TWVudVZpZXdDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkVFNDUyOUIyMDI5MkJEODAwRDgxNzc3IC8qIFdLU2VsZWN0
TWVudVZpZXdDb250cm9sbGVyLm1tICovOyB9OwogCQkyRjgwOURENzFGQkQxQkM5MDA1RkU2M0Eg
LyogVG91Y2hCYXJNZW51SXRlbURhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkY4MDlERDUxRkJEMUJDOTAwNUZFNjNBIC8qIFRvdWNoQmFyTWVu
dUl0ZW1EYXRhLmNwcCAqLzsgfTsKIAkJMkY4MzM2ODYxRkExMzlERjAwQzZFMDgwIC8qIFRvdWNo
QmFyTWVudURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJGRDQzQjkxMUZBMDA2QTEwMDgzRjUxQyAvKiBUb3VjaEJhck1lbnVEYXRhLmggKi87IH07
CiAJCTJGODMzNjg3MUZBMTNBMUUwMEM2RTA4MCAvKiBUb3VjaEJhck1lbnVEYXRhLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJGRDQzQjkyMUZBMDA2
QTMwMDgzRjUxQyAvKiBUb3VjaEJhck1lbnVEYXRhLmNwcCAqLzsgfTsKQEAgLTIxNjMsNiArMjE2
Miw3IEBACiAJCUY0RDVGNTFFMjA2MDg3QTEwMDM4QkJBOCAvKiBXS1RleHRJbnB1dExpc3RWaWV3
Q29udHJvbGxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0RDVGNTFBMjA2MDg3QTEwMDM4QkJBOCAvKiBXS1RleHRJbnB1dExpc3RWaWV3Q29udHJv
bGxlci5tbSAqLzsgfTsKIAkJRjRENUY1MUYyMDYwODdBMTAwMzhCQkE4IC8qIFdLRm9ybUNvbnRy
b2xMaXN0Vmlld0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY0RDVGNTFCMjA2MDg3QTEwMDM4QkJBOCAvKiBXS0Zvcm1Db250cm9sTGlz
dFZpZXdDb250cm9sbGVyLmggKi87IH07CiAJCUY0RDVGNTIwMjA2MDg3QTEwMDM4QkJBOCAvKiBX
S0Zvcm1Db250cm9sTGlzdFZpZXdDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRENUY1MUMyMDYwODdBMTAwMzhCQkE4IC8qIFdLRm9y
bUNvbnRyb2xMaXN0Vmlld0NvbnRyb2xsZXIubW0gKi87IH07CisJCUY0RjU5QUQ2MjA2NUFFQjEw
MDZDQUE0NiAvKiBXS1NlbGVjdE1lbnVMaXN0Vmlld0NvbnRyb2xsZXIubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEY1OUFEMzIwNjVBNUM5MDA2Q0FB
NDYgLyogV0tTZWxlY3RNZW51TGlzdFZpZXdDb250cm9sbGVyLm1tICovOyB9OwogCQlGNjExM0Uy
NTEyNkNFMTgyMDA1N0QwQTcgLyogQVBJVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjExM0UyNDEyNkNFMTgyMDA1
N0QwQTcgLyogQVBJVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggKi87IH07CiAJCUY2MTEzRTI4MTI2
Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjExM0UyNjEyNkNFMTlCMDA1N0Qw
QTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwICovOyB9OwogCQlGNjExM0UyOTEyNkNF
MTlCMDA1N0QwQTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2MTEzRTI3MTI2Q0UxOUIwMDU3RDBBNyAv
KiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC0yOTg4LDYgKzI5ODgsNyBAQAogCQkyRDEwODc2MjFEMkM2
NDFCMDBCODVGODIgLyogTG9hZFBhcmFtZXRlcnNDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvYWRQYXJhbWV0ZXJzQ29jb2EubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJEMTI1QzVDMTg1N0VBMDUwMDNCQTNDQiAvKiBWaWV3R2VzdHVy
ZUNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlld0dlc3R1
cmVDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMTI1QzVEMTg1
N0VBMDUwMDNCQTNDQiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEMTJEQUI0MjA2NjJDNzMwMDZGMDBGQiAv
KiBXS0FuaW1hdGlvbkRlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLQW5pbWF0aW9uRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQx
QjVENUExODU4NjU5OTAwNkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlci5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBWaWV3R2VzdHVyZUNvbnRyb2xsZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJEMUI1RDVCMTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNv
bnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gVmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQxQjVENUMxODU4NjlDODAwNkM2NTk2IC8qIFZpZXdH
ZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0zMTMxLDggKzMxMzIsNiBAQAogCQkyRUE3QjNENDIwMjZDRjIzMDA5Q0U1QUMg
LyogV0tOdW1iZXJQYWRWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tOdW1iZXJQYWRW
aWV3Lm1tOyBwYXRoID0gaW9zL2Zvcm1zL1dLTnVtYmVyUGFkVmlldy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkVCNkZCRkYyMDMwMjE5NjAwMTdFNjE5IC8qIFdLVGltZVBpY2tl
clZpZXdDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLVGltZVBpY2tlclZpZXdDb250cm9s
bGVyLmg7IHBhdGggPSBpb3MvZm9ybXMvV0tUaW1lUGlja2VyVmlld0NvbnRyb2xsZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVCNkZDMDAyMDMwMjE5NjAwMTdFNjE5IC8qIFdL
VGltZVBpY2tlclZpZXdDb250cm9sbGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tUaW1l
UGlja2VyVmlld0NvbnRyb2xsZXIubW07IHBhdGggPSBpb3MvZm9ybXMvV0tUaW1lUGlja2VyVmll
d0NvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJFRTQ1MjlCMjAy
OTJCRDgwMEQ4MTc3NyAvKiBXS1NlbGVjdE1lbnVWaWV3Q29udHJvbGxlci5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLU2VsZWN0TWVudVZpZXdDb250cm9sbGVy
Lm1tOyBwYXRoID0gaW9zL2Zvcm1zL1dLU2VsZWN0TWVudVZpZXdDb250cm9sbGVyLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRUU0NTI5QzIwMjkyQkQ5MDBEODE3NzcgLyogV0tT
ZWxlY3RNZW51Vmlld0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gV0tTZWxlY3RNZW51Vmlld0NvbnRyb2xsZXIuaDsgcGF0aCA9IGlvcy9mb3Jtcy9XS1NlbGVj
dE1lbnVWaWV3Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRjgw
OURENTFGQkQxQkM5MDA1RkU2M0EgLyogVG91Y2hCYXJNZW51SXRlbURhdGEuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVG91Y2hCYXJNZW51SXRlbURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyRjgwOUREOTFGQkQxQkYyMDA1RkU2M0EgLyogVG91Y2hCYXJNZW51SXRlbURh
dGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVG91Y2hCYXJNZW51SXRlbURhdGEuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkZENDNCOTExRkEwMDZBMTAwODNGNTFDIC8qIFRvdWNoQmFyTWVu
dURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVG91Y2hCYXJNZW51RGF0
YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDcwMyw2ICs0NzAyLDggQEAKIAkJ
RjRENUY1MUEyMDYwODdBMTAwMzhCQkE4IC8qIFdLVGV4dElucHV0TGlzdFZpZXdDb250cm9sbGVy
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tUZXh0SW5wdXRM
aXN0Vmlld0NvbnRyb2xsZXIubW07IHBhdGggPSBpb3MvZm9ybXMvV0tUZXh0SW5wdXRMaXN0Vmll
d0NvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RDVGNTFCMjA2
MDg3QTEwMDM4QkJBOCAvKiBXS0Zvcm1Db250cm9sTGlzdFZpZXdDb250cm9sbGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLRm9ybUNvbnRyb2xMaXN0Vmlld0NvbnRyb2xs
ZXIuaDsgcGF0aCA9IGlvcy9mb3Jtcy9XS0Zvcm1Db250cm9sTGlzdFZpZXdDb250cm9sbGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RDVGNTFDMjA2MDg3QTEwMDM4QkJBOCAv
KiBXS0Zvcm1Db250cm9sTGlzdFZpZXdDb250cm9sbGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBuYW1lID0gV0tGb3JtQ29udHJvbExpc3RWaWV3Q29udHJvbGxlci5tbTsg
cGF0aCA9IGlvcy9mb3Jtcy9XS0Zvcm1Db250cm9sTGlzdFZpZXdDb250cm9sbGVyLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNEY1OUFEMzIwNjVBNUM5MDA2Q0FBNDYgLyogV0tT
ZWxlY3RNZW51TGlzdFZpZXdDb250cm9sbGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gV0tTZWxlY3RNZW51TGlzdFZpZXdDb250cm9sbGVyLm1tOyBwYXRoID0g
aW9zL2Zvcm1zL1dLU2VsZWN0TWVudUxpc3RWaWV3Q29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRjRGNTlBRDQyMDY1QTVDQTAwNkNBQTQ2IC8qIFdLU2VsZWN0TWVu
dUxpc3RWaWV3Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBX
S1NlbGVjdE1lbnVMaXN0Vmlld0NvbnRyb2xsZXIuaDsgcGF0aCA9IGlvcy9mb3Jtcy9XS1NlbGVj
dE1lbnVMaXN0Vmlld0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjYxMTNFMjQxMjZDRTE4MjAwNTdEMEE3IC8qIEFQSVVzZXJDb250ZW50VVJMUGF0dGVybi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElVc2VyQ29udGVudFVSTFBhdHRlcm4u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjYxMTNFMjYxMjZDRTE5QjAwNTdEMEE3
IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjYxMTNFMjcxMjZDRTE5QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRV
UkxQYXR0ZXJuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLVXNlckNvbnRl
bnRVUkxQYXR0ZXJuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NzU2LDYgKzU3
NTcsNyBAQAogCQkJCTFBRjFBQzY5MTY1MTc1OUUwMEMxN0Q3RiAvKiBSZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbi5tbSAqLywKIAkJCQkwRjU5NDdBMTE4N0IzQjdEMDA0Mzc4NTcgLyogUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbi5jcHAgKi8sCiAJCQkJMEY1OTQ3QTIxODdC
M0I3RDAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uaCAq
LywKKwkJCQkyRDEyREFCNDIwNjYyQzczMDA2RjAwRkIgLyogV0tBbmltYXRpb25EZWxlZ2F0ZS5o
ICovLAogCQkJKTsKIAkJCXBhdGggPSBSZW1vdGVMYXllclRyZWU7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwpAQCAtODQ2NSw4ICs4NDY3LDggQEAKIAkJCQkyRUE3QjNENDIwMjZDRjIzMDA5
Q0U1QUMgLyogV0tOdW1iZXJQYWRWaWV3Lm1tICovLAogCQkJCTJFQTdCM0NGMjAyNkNFRjgwMDlD
RTVBQyAvKiBXS051bWJlclBhZFZpZXdDb250cm9sbGVyLmggKi8sCiAJCQkJMkVBN0IzRDAyMDI2
Q0VGODAwOUNFNUFDIC8qIFdLTnVtYmVyUGFkVmlld0NvbnRyb2xsZXIubW0gKi8sCi0JCQkJMkVF
NDUyOUMyMDI5MkJEOTAwRDgxNzc3IC8qIFdLU2VsZWN0TWVudVZpZXdDb250cm9sbGVyLmggKi8s
Ci0JCQkJMkVFNDUyOUIyMDI5MkJEODAwRDgxNzc3IC8qIFdLU2VsZWN0TWVudVZpZXdDb250cm9s
bGVyLm1tICovLAorCQkJCUY0RjU5QUQ0MjA2NUE1Q0EwMDZDQUE0NiAvKiBXS1NlbGVjdE1lbnVM
aXN0Vmlld0NvbnRyb2xsZXIuaCAqLywKKwkJCQlGNEY1OUFEMzIwNjVBNUM5MDA2Q0FBNDYgLyog
V0tTZWxlY3RNZW51TGlzdFZpZXdDb250cm9sbGVyLm1tICovLAogCQkJCTJFMTZCNjlGMjAxNkU2
ODAwMDg5OTZENiAvKiBXS1RleHRGb3JtQ29udHJvbFZpZXdDb250cm9sbGVyLmggKi8sCiAJCQkJ
MkUxNkI2QTAyMDE2RTY4MDAwODk5NkQ2IC8qIFdLVGV4dEZvcm1Db250cm9sVmlld0NvbnRyb2xs
ZXIubW0gKi8sCiAJCQkJRjRENUY1MTkyMDYwODdBMDAwMzhCQkE4IC8qIFdLVGV4dElucHV0TGlz
dFZpZXdDb250cm9sbGVyLmggKi8sCkBAIC05NDAwLDYgKzk0MDIsNyBAQAogCQkJCTBGQ0I0RTQ4
MThCQkUwNDQwMDBGQ0ZDOSAvKiBXS0FjdGlvblNoZWV0LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkNCNEU0QTE4QkJFMDQ0MDAwRkNGQzkgLyogV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQzVGQTFFRDMxOEUxMDYyMjAwQjNGNDAyIC8qIFdLQWlyUGxheVJvdXRl
UGlja2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQkyRDEyREFCNTIwNjYyQzczMDA2RjAwRkIgLyog
V0tBbmltYXRpb25EZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNEREIzMkQxMjRFQzJF
MTAwNDhEMTNDIC8qIFdLQVBJQ2FzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyRTM0RTUxMzBC
NEQwNTAwQUJEMTlBIC8qIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDNDA3NUY0MTI0RkYwMjcwMDY4RjIwQSAvKiBXS0FycmF5LmggaW4gSGVhZGVycyAq
LywKQEAgLTk2NjgsNyArOTY3MSw2IEBACiAJCQkJNTFDRDFDNjUxQjM0QjlENDAwMTQyQ0E1IC8q
IFdLU2VjdXJpdHlPcmlnaW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQ0QxQzY3MUIzNEI5REYw
MDE0MkNBNSAvKiBXS1NlY3VyaXR5T3JpZ2luSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxQ0QxQzVFMUIzNDkzQjQwMDE0MkNBNSAvKiBXS1NlY3VyaXR5T3JpZ2luUmVmLmggaW4gSGVh
ZGVycyAqLywKLQkJCQkyRUU0NTI5RjIwMjkyRDJBMDBEODE3NzcgLyogV0tTZWxlY3RNZW51Vmll
d0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjA0MTI0RkYwMjcwMDY4RjIw
QSAvKiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFERTQ2
QjMxOTU0RUM2MTAwMEY3OTg1IC8qIFdLU2Vzc2lvblN0YXRlUmVmLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQ0REQjMyQjEyNEVDMkFCMDA0OEQxM0MgLyogV0tTaGFyZWRBUElDYXN0LmggaW4gSGVh
ZGVycyAqLywKQEAgLTEwMDk0LDcgKzEwMDk2LDcgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7Ci0JCQlz
aGVsbFNjcmlwdCA9ICJpZiBbWyAke1BMQVRGT1JNX05BTUV9ICE9IFwibWFjb3N4XCIgXV07IHRo
ZW5cbmV4aXQgMFxuZmlcblxubG4gLXNoZiBWZXJzaW9ucy9DdXJyZW50L0ZyYW1ld29ya3MgXCIk
VEFSR0VUX0JVSUxEX0RJUi9XZWJLaXQuZnJhbWV3b3JrL0ZyYW1ld29ya3NcIlxuIjsKKwkJCXNo
ZWxsU2NyaXB0ID0gImlmIFtbICR7V0tfUExBVEZPUk1fTkFNRX0gIT0gXCJtYWNvc3hcIiBdXTsg
dGhlblxuZXhpdCAwXG5maVxuXG5sbiAtc2hmIFZlcnNpb25zL0N1cnJlbnQvRnJhbWV3b3JrcyBc
IiRUQVJHRVRfQlVJTERfRElSL1dlYktpdC5mcmFtZXdvcmsvRnJhbWV3b3Jrc1wiXG4iOwogCQl9
OwogCQkxQTFEMjExNTE5MUQ5NjM4MDAwMTYxOUYgLyogUG9zdHByb2Nlc3MgRnJhbWV3b3JrIEhl
YWRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CkBAIC0xMDEy
Miw3ICsxMDEyNCw3IEBACiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDE7CiAJCQlzaGVsbFBhdGggPSAvYmluL3NoOwotCQkJc2hlbGxTY3JpcHQgPSAiaWYg
W1sgJHtQTEFURk9STV9OQU1FfSAhPSBcImlwaG9uZW9zXCIgXV07IHRoZW5cbiAgICBleGl0IDA7
XG5maVxuXG5pZiBbWyAhIC1kIFwiJHtJTlNUQUxMX1JPT1R9LyR7U1lTVEVNX0xJQlJBUllfRElS
fS9Qcml2YXRlRnJhbWV3b3Jrc1wiIF1dOyB0aGVuXG4gICAgbWtkaXIgLXAgXCIke0lOU1RBTExf
Uk9PVH0vJHtTWVNURU1fTElCUkFSWV9ESVJ9L1ByaXZhdGVGcmFtZXdvcmtzXCJcbmZpXG5cbmxu
IC1zIC1oIC1mIC4uL0ZyYW1ld29ya3MvV2ViS2l0LmZyYW1ld29yayBcIiR7SU5TVEFMTF9ST09U
fS8ke1NZU1RFTV9MSUJSQVJZX0RJUn0vUHJpdmF0ZUZyYW1ld29ya3MvV2ViS2l0LmZyYW1ld29y
a1wiIjsKKwkJCXNoZWxsU2NyaXB0ID0gImlmIFtbICR7V0tfUExBVEZPUk1fTkFNRX0gIT0gXCJp
cGhvbmVvc1wiIF1dOyB0aGVuXG4gICAgZXhpdCAwO1xuZmlcblxuaWYgW1sgISAtZCBcIiR7SU5T
VEFMTF9ST09UfS8ke1NZU1RFTV9MSUJSQVJZX0RJUn0vUHJpdmF0ZUZyYW1ld29ya3NcIiBdXTsg
dGhlblxuICAgIG1rZGlyIC1wIFwiJHtJTlNUQUxMX1JPT1R9LyR7U1lTVEVNX0xJQlJBUllfRElS
fS9Qcml2YXRlRnJhbWV3b3Jrc1wiXG5maVxuXG5sbiAtcyAtaCAtZiAuLi9GcmFtZXdvcmtzL1dl
YktpdC5mcmFtZXdvcmsgXCIke0lOU1RBTExfUk9PVH0vJHtTWVNURU1fTElCUkFSWV9ESVJ9L1By
aXZhdGVGcmFtZXdvcmtzL1dlYktpdC5mcmFtZXdvcmtcIiI7CiAJCX07CiAJCTFBNjI4MEM4MTkx
OTk1NkIwMDZBRDlGOSAvKiBNaWdyYXRlIFdlYktpdExlZ2FjeSBIZWFkZXJzICovID0gewogCQkJ
aXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwpAQCAtMTAyMTIsNyArMTAyMTQsNyBAQAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQkJc2hl
bGxQYXRoID0gL2Jpbi9zaDsKLQkJCXNoZWxsU2NyaXB0ID0gImlmIFtbIFwiJHtXS19NQU5VQUxf
U0FOREJPWElOR19FTkFCTEVEfVwiICE9IFwiWUVTXCIgfHwgXCIke1BMQVRGT1JNX05BTUV9XCIg
PT0gXCJtYWNvc3hcIiBdXTsgdGhlblxuICAgIGV4aXRcbmZpXG5cbmlmIFtbIFwiJHtBQ1RJT059
XCIgPT0gXCJidWlsZFwiIHx8IFwiJHtBQ1RJT059XCIgPT0gXCJpbnN0YWxsXCIgXV07IHRoZW5c
biAgICBmb3IgKChpID0gMDsgaSA8ICR7U0NSSVBUX0lOUFVUX0ZJTEVfQ09VTlR9OyArK2kpKTsg
ZG9cbiAgICAgICAgZXZhbCBFTlRJVExFTUVOVFM9XFwke1NDUklQVF9JTlBVVF9GSUxFXyR7aX19
XG4gICAgICAgIEVOVElUTEVNRU5UU19CQVNFPSR7RU5USVRMRU1FTlRTIyMqL31cbiAgICAgICAg
RU5USVRMRU1FTlRTX0JBU0U9JHtFTlRJVExFTUVOVFNfQkFTRSUuZW50aXRsZW1lbnRzfVxuICAg
ICAgICBwbHV0aWwgLXJlbW92ZSBzZWF0YmVsdC1wcm9maWxlcyAtbyBcIiR7QlVJTFRfUFJPRFVD
VFNfRElSfS9EZXJpdmVkU291cmNlcy9XZWJLaXQyLyR7RU5USVRMRU1FTlRTX0JBU0V9LW5vLXNh
bmRib3guZW50aXRsZW1lbnRzXCIgXCIke0VOVElUTEVNRU5UU31cIlxuICAgIGRvbmVcbmZpIjsK
KwkJCXNoZWxsU2NyaXB0ID0gImlmIFtbIFwiJHtXS19NQU5VQUxfU0FOREJPWElOR19FTkFCTEVE
fVwiICE9IFwiWUVTXCIgfHwgXCIke1dLX1BMQVRGT1JNX05BTUV9XCIgPT0gXCJtYWNvc3hcIiBd
XTsgdGhlblxuICAgIGV4aXRcbmZpXG5cbmlmIFtbIFwiJHtBQ1RJT059XCIgPT0gXCJidWlsZFwi
IHx8IFwiJHtBQ1RJT059XCIgPT0gXCJpbnN0YWxsXCIgXV07IHRoZW5cbiAgICBmb3IgKChpID0g
MDsgaSA8ICR7U0NSSVBUX0lOUFVUX0ZJTEVfQ09VTlR9OyArK2kpKTsgZG9cbiAgICAgICAgZXZh
bCBFTlRJVExFTUVOVFM9XFwke1NDUklQVF9JTlBVVF9GSUxFXyR7aX19XG4gICAgICAgIEVOVElU
TEVNRU5UU19CQVNFPSR7RU5USVRMRU1FTlRTIyMqL31cbiAgICAgICAgRU5USVRMRU1FTlRTX0JB
U0U9JHtFTlRJVExFTUVOVFNfQkFTRSUuZW50aXRsZW1lbnRzfVxuICAgICAgICBwbHV0aWwgLXJl
bW92ZSBzZWF0YmVsdC1wcm9maWxlcyAtbyBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyLyR7RU5USVRMRU1FTlRTX0JBU0V9LW5vLXNhbmRib3guZW50aXRsZW1l
bnRzXCIgXCIke0VOVElUTEVNRU5UU31cIlxuICAgIGRvbmVcbmZpIjsKIAkJfTsKIAkJMzc1QTI0
ODgxN0U1MDQ4RTAwQzlBMDg2IC8qIFBvc3Rwcm9jZXNzIFdLQmFzZS5oICovID0gewogCQkJaXNh
ID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwpAQCAtMTAyNDQsNyArMTAyNDYsNyBAQAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQkJc2hlbGxQ
YXRoID0gL2Jpbi9zaDsKLQkJCXNoZWxsU2NyaXB0ID0gImlmIFtbIFwiJHtXS19NQU5VQUxfU0FO
REJPWElOR19FTkFCTEVEfVwiICE9IFwiWUVTXCIgfHwgXCIke1BMQVRGT1JNX05BTUV9XCIgPT0g
XCJtYWNvc3hcIiBdXTsgdGhlblxuICAgIGV4aXRcbmZpXG5cbmlmIFtbIFwiJHtBQ1RJT059XCIg
PT0gXCJidWlsZFwiIHx8IFwiJHtBQ1RJT059XCIgPT0gXCJpbnN0YWxsXCIgXV07IHRoZW5cbiAg
ICBmb3IgKChpID0gMDsgaSA8ICR7U0NSSVBUX0lOUFVUX0ZJTEVfQ09VTlR9OyArK2kpKTsgZG9c
biAgICAgICAgZXZhbCBTQU5EQk9YX1BST0ZJTEU9XFwke1NDUklQVF9JTlBVVF9GSUxFXyR7aX19
XG4gICAgICAgIGRpdHRvIFwiJHtTQU5EQk9YX1BST0ZJTEV9XCIgXCIke1RBUkdFVF9CVUlMRF9E
SVJ9LyR7VU5MT0NBTElaRURfUkVTT1VSQ0VTX0ZPTERFUl9QQVRIfS8ke1NBTkRCT1hfUFJPRklM
RSMjKi99XCJcbiAgICBkb25lXG5maSI7CisJCQlzaGVsbFNjcmlwdCA9ICJpZiBbWyBcIiR7V0tf
TUFOVUFMX1NBTkRCT1hJTkdfRU5BQkxFRH1cIiAhPSBcIllFU1wiIHx8IFwiJHtXS19QTEFURk9S
TV9OQU1FfVwiID09IFwibWFjb3N4XCIgXV07IHRoZW5cbiAgICBleGl0XG5maVxuXG5pZiBbWyBc
IiR7QUNUSU9OfVwiID09IFwiYnVpbGRcIiB8fCBcIiR7QUNUSU9OfVwiID09IFwiaW5zdGFsbFwi
IF1dOyB0aGVuXG4gICAgZm9yICgoaSA9IDA7IGkgPCAke1NDUklQVF9JTlBVVF9GSUxFX0NPVU5U
fTsgKytpKSk7IGRvXG4gICAgICAgIGV2YWwgU0FOREJPWF9QUk9GSUxFPVxcJHtTQ1JJUFRfSU5Q
VVRfRklMRV8ke2l9fVxuICAgICAgICBkaXR0byBcIiR7U0FOREJPWF9QUk9GSUxFfVwiIFwiJHtU
QVJHRVRfQlVJTERfRElSfS8ke1VOTE9DQUxJWkVEX1JFU09VUkNFU19GT0xERVJfUEFUSH0vJHtT
QU5EQk9YX1BST0ZJTEUjIyovfVwiXG4gICAgZG9uZVxuZmkiOwogCQl9OwogCQk1REY0MDhDNTEz
MURENDY3MDAxMzAwNzEgLyogQ2hlY2sgRm9yIFdlYWsgVlRhYmxlcyBhbmQgRXh0ZXJuYWxzICov
ID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwpAQCAtMTAzMTksNyArMTAz
MjEsNyBAQAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKLQkJCXNoZWxsU2NyaXB0ID0gImlmIFtbICR7UExB
VEZPUk1fTkFNRX0gPT0gbWFjb3N4IF1dOyB0aGVuXG4gICAgbG4gLXNmIFwiVmVyc2lvbnMvQ3Vy
cmVudC9YUENTZXJ2aWNlc1wiIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L1dlYktpdC5mcmFtZXdv
cmsvWFBDU2VydmljZXNcIjtcbmZpXG4iOworCQkJc2hlbGxTY3JpcHQgPSAiaWYgW1sgJHtXS19Q
TEFURk9STV9OQU1FfSA9PSBtYWNvc3ggXV07IHRoZW5cbiAgICBsbiAtc2YgXCJWZXJzaW9ucy9D
dXJyZW50L1hQQ1NlcnZpY2VzXCIgXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vV2ViS2l0LmZyYW1l
d29yay9YUENTZXJ2aWNlc1wiO1xuZmlcbiI7CiAJCX07CiAJCUJDRkZDQThCMTYwRDZFN0IwMDNE
RjMxNSAvKiBDb3B5IFhQQyBzZXJ2aWNlcyBmb3IgZW5naW5lZXJpbmcgYnVpbGRzICovID0gewog
CQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOwpAQCAtMTAzNDUsNyArMTAzNDcsNyBA
QAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQkJ
c2hlbGxQYXRoID0gL2Jpbi9zaDsKLQkJCXNoZWxsU2NyaXB0ID0gImlmIFtbIFwiJHtDT05GSUdV
UkFUSU9OfVwiID09IFwiUHJvZHVjdGlvblwiIF1dOyB0aGVuXG4gICAgZXhpdFxuZmlcblxuaWYg
W1sgJHtQTEFURk9STV9OQU1FfSAhPSBcIm1hY29zeFwiIF1dOyB0aGVuXG4gICAgWFBDX1NFUlZJ
Q0VTX1BBVEg9XCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vV2ViS2l0LmZyYW1ld29yay9YUENTZXJ2
aWNlc1wiXG5lbHNlXG4gICAgWFBDX1NFUlZJQ0VTX1BBVEg9XCIke0JVSUxUX1BST0RVQ1RTX0RJ
Un0vV2ViS2l0LmZyYW1ld29yay9WZXJzaW9ucy9BL1hQQ1NlcnZpY2VzXCJcbmZpXG5cbm1rZGly
IC1wIFwiJHtYUENfU0VSVklDRVNfUEFUSH1cIlxuZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJ
Un0vY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnhwY1wiIFwiJHtYUENfU0VSVklDRVNfUEFU
SH0vY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LnhwY1wiXG5kaXR0byBcIiR7QlVJTFRfUFJP
RFVDVFNfRElSfS9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcueHBjXCIgXCIke1hQQ19TRVJW
SUNFU19QQVRIfS9jb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtpbmcueHBjXCJcbmRpdHRvIFwiJHtC
VUlMVF9QUk9EVUNUU19ESVJ9LyR7V0tfU1RPUkFHRV9TRVJWSUNFX1BST0RVQ1RfTkFNRX0ueHBj
XCIgXCIke1hQQ19TRVJWSUNFU19QQVRIfS8ke1dLX1NUT1JBR0VfU0VSVklDRV9QUk9EVUNUX05B
TUV9LnhwY1wiXG5cbmlmIFtbICR7UExBVEZPUk1fTkFNRX0gPT0gbWFjb3N4IF1dOyB0aGVuXG4g
ICAgZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vY29tLmFwcGxlLldlYktpdC5QbHVnaW4u
MzIueHBjXCIgXCIke1hQQ19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUuV2ViS2l0LlBsdWdpbi54
cGNcIlxuICAgIGRpdHRvIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQu
UGx1Z2luLjY0LnhwY1wiIFwiJHtYUENfU0VSVklDRVNfUEFUSH0vY29tLmFwcGxlLldlYktpdC5Q
bHVnaW4uNjQueHBjXCJcbmZpXG4iOworCQkJc2hlbGxTY3JpcHQgPSAiaWYgW1sgXCIke0NPTkZJ
R1VSQVRJT059XCIgPT0gXCJQcm9kdWN0aW9uXCIgXV07IHRoZW5cbiAgICBleGl0XG5maVxuXG5p
ZiBbWyAke1dLX1BMQVRGT1JNX05BTUV9ICE9IFwibWFjb3N4XCIgXV07IHRoZW5cbiAgICBYUENf
U0VSVklDRVNfUEFUSD1cIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9XZWJLaXQuZnJhbWV3b3JrL1hQ
Q1NlcnZpY2VzXCJcbmVsc2VcbiAgICBYUENfU0VSVklDRVNfUEFUSD1cIiR7QlVJTFRfUFJPRFVD
VFNfRElSfS9XZWJLaXQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvWFBDU2VydmljZXNcIlxuZmlcblxu
bWtkaXIgLXAgXCIke1hQQ19TRVJWSUNFU19QQVRIfVwiXG5kaXR0byBcIiR7QlVJTFRfUFJPRFVD
VFNfRElSfS9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQueHBjXCIgXCIke1hQQ19TRVJWSUNF
U19QQVRIfS9jb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQueHBjXCJcbmRpdHRvIFwiJHtCVUlM
VF9QUk9EVUNUU19ESVJ9L2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy54cGNcIiBcIiR7WFBD
X1NFUlZJQ0VTX1BBVEh9L2NvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy54cGNcIlxuZGl0dG8g
XCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vJHtXS19TVE9SQUdFX1NFUlZJQ0VfUFJPRFVDVF9OQU1F
fS54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9LyR7V0tfU1RPUkFHRV9TRVJWSUNFX1BST0RV
Q1RfTkFNRX0ueHBjXCJcblxuaWYgW1sgJHtXS19QTEFURk9STV9OQU1FfSA9PSBtYWNvc3ggXV07
IHRoZW5cbiAgICBkaXR0byBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9jb20uYXBwbGUuV2ViS2l0
LlBsdWdpbi4zMi54cGNcIiBcIiR7WFBDX1NFUlZJQ0VTX1BBVEh9L2NvbS5hcHBsZS5XZWJLaXQu
UGx1Z2luLnhwY1wiXG4gICAgZGl0dG8gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vY29tLmFwcGxl
LldlYktpdC5QbHVnaW4uNjQueHBjXCIgXCIke1hQQ19TRVJWSUNFU19QQVRIfS9jb20uYXBwbGUu
V2ViS2l0LlBsdWdpbi42NC54cGNcIlxuZmlcbiI7CiAJCX07CiAJCUMwQ0U3Mjg0MTI0N0U2Njgw
MEJDMEVDNCAvKiBHZW5lcmF0ZSBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhT
aGVsbFNjcmlwdEJ1aWxkUGhhc2U7CkBAIC0xMTMxNiw3ICsxMTMxOCw3IEBACiAJCQkJMEZDQjRF
NTUxOEJCRTA0NDAwMEZDRkM5IC8qIFdLU2Nyb2xsVmlldy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTUxQ0QxQzY2MUIzNEI5REMwMDE0MkNBNSAvKiBXS1NlY3VyaXR5T3JpZ2luLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTFDRDFDNUQxQjM0OTNBRjAwMTQyQ0E1IC8qIFdLU2VjdXJpdHlPcmlnaW5S
ZWYuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMkVFNDUyQTAyMDI5MkQyRTAwRDgxNzc3IC8qIFdL
U2VsZWN0TWVudVZpZXdDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRjRGNTlBRDYy
MDY1QUVCMTAwNkNBQTQ2IC8qIFdLU2VsZWN0TWVudUxpc3RWaWV3Q29udHJvbGxlci5tbSBpbiBT
b3VyY2VzICovLAogCQkJCUJDNDA3NjAzMTI0RkYwMjcwMDY4RjIwQSAvKiBXS1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQURFNDZCMjE5NTRFQzYxMDAwRjc5
ODUgLyogV0tTZXNzaW9uU3RhdGVSZWYuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEzRTQ2MkUx
QUQ4Mzc1NjAwMTYyMzRBIC8qIFdLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZS5tbSBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0
aW9uL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5jcHAKaW5kZXggOTNiOTM2ZmU1YTIxYzUwNGViMzMxYWMxNWU3ZTM1NGYwZDA2NzRmOS4u
MDFmMTM1N2E4ODYzMjcwMjdhZDE2NWYxZjAzZTgyMjMwYjQ5NWQxMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2VvbG9jYXRp
b24vR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC03NCw3ICs3NCw3
IEBAIHZvaWQgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVz
dEZvckdlb2xvY2F0aW9uKEdlb2xvY2F0aW9uCiAKICAgICBTZWN1cml0eU9yaWdpbiYgb3JpZ2lu
ID0gZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCk7CiAKLSAgICBtX3BhZ2Uuc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0R2VvbG9jYXRpb25QZXJtaXNzaW9uRm9y
RnJhbWUoZ2VvbG9jYXRpb25JRCwgd2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5E
YXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4ob3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIoKSkpOwor
ICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3RHZW9sb2NhdGlv
blBlcm1pc3Npb25Gb3JGcmFtZShnZW9sb2NhdGlvbklELCB3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBv
cmlnaW4uZGF0YSgpLmRhdGFiYXNlSWRlbnRpZmllcigpKSk7CiB9CiAKIHZvaWQgR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNhbmNlbFJlcXVlc3RGb3JHZW9sb2NhdGlvbihH
ZW9sb2NhdGlvbiYgZ2VvbG9jYXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCmluZGV4
IDViMzBmMzg3MzkzM2IwYzEwMDQ2YzJkNmM5ZjhmODgzMDkwZjE1Y2IuLjhmNWQ2MWJmNzFjNzIy
MjZhN2IwOTFlM2RiMzk0NzhiZmQzYWYzYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3Bw
CkBAIC02OTMsNyArNjkzLDcgQEAgV0tBcnJheVJlZiBXS0J1bmRsZVBhZ2VDb3B5T3JpZ2luc1dp
dGhBcHBsaWNhdGlvbkNhY2hlKFdLQnVuZGxlUGFnZVJlZiBwYWdlKQogICAgIG9yaWdpbklkZW50
aWZpZXJzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkob3JpZ2lucy5zaXplKCkpOwogCiAgICAgZm9y
IChjb25zdCBhdXRvJiBvcmlnaW4gOiBvcmlnaW5zKQotICAgICAgICBvcmlnaW5JZGVudGlmaWVy
cy51bmNoZWNrZWRBcHBlbmQoQVBJOjpTdHJpbmc6OmNyZWF0ZShXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbigqb3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIo
KSkpOworICAgICAgICBvcmlnaW5JZGVudGlmaWVycy51bmNoZWNrZWRBcHBlbmQoQVBJOjpTdHJp
bmc6OmNyZWF0ZShvcmlnaW4tPmRhdGEoKS5kYXRhYmFzZUlkZW50aWZpZXIoKSkpOwogCiAgICAg
cmV0dXJuIHRvQVBJKCZBUEk6OkFycmF5OjpjcmVhdGUoV1RGTW92ZShvcmlnaW5JZGVudGlmaWVy
cykpLmxlYWtSZWYoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL0RPTU9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vRE9NT2JqZWN0Q2Fj
aGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjBlNzkwZjljOGRkNDAyN2Y1YmU3MzU5NDRlZjIwYWQ2NTEzM2Ri
MTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2dsaWIvRE9NL0RPTU9iamVjdENhY2hlLmNwcApAQCAtMCwwICsxLDIzMyBAQAor
LyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAy
MTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJET01P
YmplY3RDYWNoZS5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9ET01XaW5kb3dQcm9wZXJ0eS5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL05vZGUuaD4KKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL2ds
aWIvR1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IERPTU9iamVjdENh
Y2hlRGF0YSB7CisgICAgRE9NT2JqZWN0Q2FjaGVEYXRhKEdPYmplY3QqIHdyYXBwZXIpCisgICAg
ICAgIDogb2JqZWN0KHdyYXBwZXIpCisgICAgICAgICwgY2FjaGVSZWZlcmVuY2VzKDEpCisgICAg
eworICAgIH0KKworICAgIHZvaWQgY2xlYXJPYmplY3QoKQorICAgIHsKKyAgICAgICAgQVNTRVJU
KG9iamVjdCk7CisgICAgICAgIEFTU0VSVChjYWNoZVJlZmVyZW5jZXMgPj0gMSk7CisgICAgICAg
IEFTU0VSVChvYmplY3QtPnJlZl9jb3VudCA+PSAxKTsKKworICAgICAgICAvLyBNYWtlIHN1cmUg
d2UgZG9uJ3QgdW5yZWYgbW9yZSB0aGFuIHRoZSByZWZlcmVuY2VzIHRoZSBvYmplY3QgYWN0dWFs
bHkgaGFzLiBJdCBjYW4gaGFwcGVuIHRoYXQgdXNlcgorICAgICAgICAvLyB1bnJlZmZlZCBhIHJl
ZmVyZW5jZSBvd25lZCBieSB0aGUgY2FjaGUuCisgICAgICAgIGNhY2hlUmVmZXJlbmNlcyA9IHN0
ZDo6bWluKHN0YXRpY19jYXN0PHVuc2lnbmVkPihvYmplY3QtPnJlZl9jb3VudCksIGNhY2hlUmVm
ZXJlbmNlcyk7CisgICAgICAgIEdSZWZQdHI8R09iamVjdD4gcHJvdGVjdChvYmplY3QpOworICAg
ICAgICBkbyB7CisgICAgICAgICAgICBnX29iamVjdF91bnJlZihvYmplY3QpOworICAgICAgICB9
IHdoaWxlICgtLWNhY2hlUmVmZXJlbmNlcyk7CisgICAgICAgIG9iamVjdCA9IG51bGxwdHI7Cisg
ICAgfQorCisgICAgdm9pZCogcmVmT2JqZWN0KCkKKyAgICB7CisgICAgICAgIEFTU0VSVChvYmpl
Y3QpOworCisgICAgICAgIGNhY2hlUmVmZXJlbmNlcysrOworICAgICAgICByZXR1cm4gZ19vYmpl
Y3RfcmVmKG9iamVjdCk7CisgICAgfQorCisgICAgR09iamVjdCogb2JqZWN0OworICAgIHVuc2ln
bmVkIGNhY2hlUmVmZXJlbmNlczsKK307CisKK2NsYXNzIERPTU9iamVjdENhY2hlRnJhbWVPYnNl
cnZlcjsKK3R5cGVkZWYgSGFzaE1hcDxXZWJDb3JlOjpGcmFtZSosIHN0ZDo6dW5pcXVlX3B0cjxE
T01PYmplY3RDYWNoZUZyYW1lT2JzZXJ2ZXI+PiBET01PYmplY3RDYWNoZUZyYW1lT2JzZXJ2ZXJN
YXA7CisKK3N0YXRpYyBET01PYmplY3RDYWNoZUZyYW1lT2JzZXJ2ZXJNYXAmIGRvbU9iamVjdENh
Y2hlRnJhbWVPYnNlcnZlcnMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxET01PYmpl
Y3RDYWNoZUZyYW1lT2JzZXJ2ZXJNYXA+IG1hcDsKKyAgICByZXR1cm4gbWFwOworfQorCitzdGF0
aWMgRE9NT2JqZWN0Q2FjaGVGcmFtZU9ic2VydmVyJiBnZXRPckNyZWF0ZURPTU9iamVjdENhY2hl
RnJhbWVPYnNlcnZlcihXZWJDb3JlOjpGcmFtZSYgZnJhbWUpCit7CisgICAgRE9NT2JqZWN0Q2Fj
aGVGcmFtZU9ic2VydmVyTWFwOjpBZGRSZXN1bHQgcmVzdWx0ID0gZG9tT2JqZWN0Q2FjaGVGcmFt
ZU9ic2VydmVycygpLmFkZCgmZnJhbWUsIG51bGxwdHIpOworICAgIGlmIChyZXN1bHQuaXNOZXdF
bnRyeSkKKyAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IHN0ZDo6bWFrZV91bmlxdWU8
RE9NT2JqZWN0Q2FjaGVGcmFtZU9ic2VydmVyPihmcmFtZSk7CisgICAgcmV0dXJuICpyZXN1bHQu
aXRlcmF0b3ItPnZhbHVlOworfQorCitjbGFzcyBET01PYmplY3RDYWNoZUZyYW1lT2JzZXJ2ZXIg
ZmluYWw6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIgeworcHVibGlj
OgorICAgIERPTU9iamVjdENhY2hlRnJhbWVPYnNlcnZlcihXZWJDb3JlOjpGcmFtZSYgZnJhbWUp
CisgICAgICAgIDogRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKCZmcmFtZSkKKyAgICB7CisgICAg
fQorCisgICAgfkRPTU9iamVjdENhY2hlRnJhbWVPYnNlcnZlcigpCisgICAgeworICAgICAgICBB
U1NFUlQobV9vYmplY3RzLmlzRW1wdHkoKSk7CisgICAgfQorCisgICAgdm9pZCBhZGRPYmplY3RD
YWNoZURhdGEoRE9NT2JqZWN0Q2FjaGVEYXRhJiBkYXRhKQorICAgIHsKKyAgICAgICAgQVNTRVJU
KCFtX29iamVjdHMuY29udGFpbnMoJmRhdGEpKTsKKworICAgICAgICBXZWJDb3JlOjpET01XaW5k
b3cqIGRvbVdpbmRvdyA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpOworICAgICAg
ICBpZiAoZG9tV2luZG93ICYmICghbV9kb21XaW5kb3dPYnNlcnZlciB8fCBtX2RvbVdpbmRvd09i
c2VydmVyLT5kb21XaW5kb3coKSAhPSBkb21XaW5kb3cpKSB7CisgICAgICAgICAgICAvLyBOZXcg
RE9NV2luZG93LCBjbGVhciB0aGUgY2FjaGUgYW5kIGNyZWF0ZSBhIG5ldyBET01XaW5kb3dPYnNl
cnZlci4KKyAgICAgICAgICAgIGNsZWFyKCk7CisgICAgICAgICAgICBtX2RvbVdpbmRvd09ic2Vy
dmVyID0gc3RkOjptYWtlX3VuaXF1ZTxET01XaW5kb3dPYnNlcnZlcj4oKm1fZnJhbWUsICp0aGlz
LCBkb21XaW5kb3cpOworICAgICAgICB9CisKKyAgICAgICAgbV9vYmplY3RzLmFwcGVuZCgmZGF0
YSk7CisgICAgICAgIGdfb2JqZWN0X3dlYWtfcmVmKGRhdGEub2JqZWN0LCBET01PYmplY3RDYWNo
ZUZyYW1lT2JzZXJ2ZXI6Om9iamVjdEZpbmFsaXplZENhbGxiYWNrLCB0aGlzKTsKKyAgICB9CisK
K3ByaXZhdGU6CisgICAgY2xhc3MgRE9NV2luZG93T2JzZXJ2ZXIgZmluYWw6IHB1YmxpYyBXZWJD
b3JlOjpET01XaW5kb3dQcm9wZXJ0eSB7CisgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OworICAgIHB1YmxpYzoKKyAgICAgICAgRE9NV2luZG93T2JzZXJ2ZXIoV2ViQ29yZTo6RnJhbWUm
IGZyYW1lLCBET01PYmplY3RDYWNoZUZyYW1lT2JzZXJ2ZXImIGZyYW1lT2JzZXJ2ZXIsIFdlYkNv
cmU6OkRPTVdpbmRvdyogd2luZG93KQorICAgICAgICAgICAgOiBET01XaW5kb3dQcm9wZXJ0eSgm
ZnJhbWUpCisgICAgICAgICAgICAsIG1fZnJhbWVPYnNlcnZlcihmcmFtZU9ic2VydmVyKQorICAg
ICAgICAgICAgLCBtX2RvbVdpbmRvdyh3aW5kb3cpCisgICAgICAgIHsKKyAgICAgICAgICAgIEFT
U0VSVChtX2RvbVdpbmRvdyk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIH5ET01XaW5k
b3dPYnNlcnZlcigpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIFdlYkNvcmU6OkRP
TVdpbmRvdyogZG9tV2luZG93KCkgY29uc3QgeyByZXR1cm4gbV9kb21XaW5kb3c7IH0KKworICAg
IHByaXZhdGU6CisgICAgICAgIHZvaWQgd2lsbERldGFjaEdsb2JhbE9iamVjdEZyb21GcmFtZSgp
IG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIENsZWFyIHRoZSBET01XaW5kb3dQ
cm9wZXJ0eSBmaXJzdCwgYW5kIHRoZW4gbm90aWZ5IHRoZSBGcmFtZSBvYnNlcnZlci4KKyAgICAg
ICAgICAgIERPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGV0YWNoR2xvYmFsT2JqZWN0RnJvbUZyYW1l
KCk7CisgICAgICAgICAgICBtX2ZyYW1lT2JzZXJ2ZXIud2lsbERldGFjaEdsb2JhbE9iamVjdEZy
b21GcmFtZSgpOworICAgICAgICB9CisKKyAgICAgICAgRE9NT2JqZWN0Q2FjaGVGcmFtZU9ic2Vy
dmVyJiBtX2ZyYW1lT2JzZXJ2ZXI7CisgICAgICAgIFdlYkNvcmU6OkRPTVdpbmRvdyogbV9kb21X
aW5kb3c7CisgICAgfTsKKworICAgIHN0YXRpYyB2b2lkIG9iamVjdEZpbmFsaXplZENhbGxiYWNr
KGdwb2ludGVyIHVzZXJEYXRhLCBHT2JqZWN0KiBmaW5hbGl6ZWRPYmplY3QpCisgICAgeworICAg
ICAgICBET01PYmplY3RDYWNoZUZyYW1lT2JzZXJ2ZXIqIG9ic2VydmVyID0gc3RhdGljX2Nhc3Q8
RE9NT2JqZWN0Q2FjaGVGcmFtZU9ic2VydmVyKj4odXNlckRhdGEpOworICAgICAgICBvYnNlcnZl
ci0+bV9vYmplY3RzLnJlbW92ZUZpcnN0TWF0Y2hpbmcoW2ZpbmFsaXplZE9iamVjdF0oRE9NT2Jq
ZWN0Q2FjaGVEYXRhKiBkYXRhKSB7CisgICAgICAgICAgICByZXR1cm4gZGF0YS0+b2JqZWN0ID09
IGZpbmFsaXplZE9iamVjdDsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgdm9pZCBjbGVhcigp
CisgICAgeworICAgICAgICBpZiAobV9vYmplY3RzLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICBhdXRvIG9iamVjdHMgPSBXVEZNb3ZlKG1fb2JqZWN0cyk7CisKKyAg
ICAgICAgLy8gRGVsZXRpbmcgb2YgRE9NIHdyYXBwZXJzIG1pZ2h0IGVuZCB1cCBkZWxldGluZyB0
aGUgd3JhcHBlZCBjb3JlIG9iamVjdCB3aGljaCBjb3VsZCBjYXVzZSBzb21lIHByb2JsZW1zCisg
ICAgICAgIC8vIGZvciBleGFtcGxlIGlmIGEgRG9jdW1lbnQgaXMgZGVsZXRlZCBkdXJpbmcgdGhl
IGZyYW1lIGRlc3RydWN0aW9uLCBzbyB3ZSByZW1vdmUgdGhlIHdlYWsgcmVmZXJlbmNlcyBub3cK
KyAgICAgICAgLy8gYW5kIGRlbGV0ZSB0aGUgb2JqZWN0cyBvbiBuZXh0IHJ1biBsb29wIGl0ZXJh
dGlvbi4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE3MDAu
CisgICAgICAgIGZvciAoYXV0byogZGF0YSA6IG9iamVjdHMpCisgICAgICAgICAgICBnX29iamVj
dF93ZWFrX3VucmVmKGRhdGEtPm9iamVjdCwgRE9NT2JqZWN0Q2FjaGVGcmFtZU9ic2VydmVyOjpv
YmplY3RGaW5hbGl6ZWRDYWxsYmFjaywgdGhpcyk7CisKKyAgICAgICAgUnVuTG9vcDo6bWFpbigp
LmRpc3BhdGNoKFtvYmplY3RzXSB7CisgICAgICAgICAgICBmb3IgKGF1dG8qIGRhdGEgOiBvYmpl
Y3RzKQorICAgICAgICAgICAgICAgIGRhdGEtPmNsZWFyT2JqZWN0KCk7CisgICAgICAgIH0pOwor
ICAgIH0KKworICAgIHZvaWQgd2lsbERldGFjaFBhZ2UoKSBvdmVycmlkZQorICAgIHsKKyAgICAg
ICAgY2xlYXIoKTsKKyAgICB9CisKKyAgICB2b2lkIGZyYW1lRGVzdHJveWVkKCkgb3ZlcnJpZGUK
KyAgICB7CisgICAgICAgIGNsZWFyKCk7CisgICAgICAgIFdlYkNvcmU6OkZyYW1lKiBmcmFtZSA9
IG1fZnJhbWU7CisgICAgICAgIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcjo6ZnJhbWVEZXN0cm95
ZWQoKTsKKyAgICAgICAgZG9tT2JqZWN0Q2FjaGVGcmFtZU9ic2VydmVycygpLnJlbW92ZShmcmFt
ZSk7CisgICAgfQorCisgICAgdm9pZCB3aWxsRGV0YWNoR2xvYmFsT2JqZWN0RnJvbUZyYW1lKCkK
KyAgICB7CisgICAgICAgIGNsZWFyKCk7CisgICAgICAgIG1fZG9tV2luZG93T2JzZXJ2ZXIgPSBu
dWxscHRyOworICAgIH0KKworICAgIFZlY3RvcjxET01PYmplY3RDYWNoZURhdGEqLCA4PiBtX29i
amVjdHM7CisgICAgc3RkOjp1bmlxdWVfcHRyPERPTVdpbmRvd09ic2VydmVyPiBtX2RvbVdpbmRv
d09ic2VydmVyOworfTsKKwordHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBzdGQ6OnVuaXF1ZV9wdHI8
RE9NT2JqZWN0Q2FjaGVEYXRhPj4gRE9NT2JqZWN0TWFwOworCitzdGF0aWMgRE9NT2JqZWN0TWFw
JiBkb21PYmplY3RzKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RE9NT2JqZWN0TWFw
PiBzdGF0aWNET01PYmplY3RzOworICAgIHJldHVybiBzdGF0aWNET01PYmplY3RzOworfQorCit2
b2lkIERPTU9iamVjdENhY2hlOjpmb3JnZXQodm9pZCogb2JqZWN0SGFuZGxlKQoreworICAgIEFT
U0VSVChkb21PYmplY3RzKCkuY29udGFpbnMob2JqZWN0SGFuZGxlKSk7CisgICAgZG9tT2JqZWN0
cygpLnJlbW92ZShvYmplY3RIYW5kbGUpOworfQorCit2b2lkKiBET01PYmplY3RDYWNoZTo6Z2V0
KHZvaWQqIG9iamVjdEhhbmRsZSkKK3sKKyAgICBET01PYmplY3RDYWNoZURhdGEqIGRhdGEgPSBk
b21PYmplY3RzKCkuZ2V0KG9iamVjdEhhbmRsZSk7CisgICAgcmV0dXJuIGRhdGEgPyBkYXRhLT5y
ZWZPYmplY3QoKSA6IG51bGxwdHI7Cit9CisKK3ZvaWQgRE9NT2JqZWN0Q2FjaGU6OnB1dCh2b2lk
KiBvYmplY3RIYW5kbGUsIHZvaWQqIHdyYXBwZXIpCit7CisgICAgRE9NT2JqZWN0TWFwOjpBZGRS
ZXN1bHQgcmVzdWx0ID0gZG9tT2JqZWN0cygpLmFkZChvYmplY3RIYW5kbGUsIG51bGxwdHIpOwor
ICAgIGlmIChyZXN1bHQuaXNOZXdFbnRyeSkKKyAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1
ZSA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NT2JqZWN0Q2FjaGVEYXRhPihHX09CSkVDVCh3cmFwcGVy
KSk7Cit9CisKK3ZvaWQgRE9NT2JqZWN0Q2FjaGU6OnB1dChXZWJDb3JlOjpOb2RlKiBvYmplY3RI
YW5kbGUsIHZvaWQqIHdyYXBwZXIpCit7CisgICAgRE9NT2JqZWN0TWFwOjpBZGRSZXN1bHQgcmVz
dWx0ID0gZG9tT2JqZWN0cygpLmFkZChvYmplY3RIYW5kbGUsIG51bGxwdHIpOworICAgIGlmICgh
cmVzdWx0LmlzTmV3RW50cnkpCisgICAgICAgIHJldHVybjsKKworICAgIHJlc3VsdC5pdGVyYXRv
ci0+dmFsdWUgPSBzdGQ6Om1ha2VfdW5pcXVlPERPTU9iamVjdENhY2hlRGF0YT4oR19PQkpFQ1Qo
d3JhcHBlcikpOworICAgIGlmIChXZWJDb3JlOjpGcmFtZSogZnJhbWUgPSBvYmplY3RIYW5kbGUt
PmRvY3VtZW50KCkuZnJhbWUoKSkKKyAgICAgICAgZ2V0T3JDcmVhdGVET01PYmplY3RDYWNoZUZy
YW1lT2JzZXJ2ZXIoKmZyYW1lKS5hZGRPYmplY3RDYWNoZURhdGEoKnJlc3VsdC5pdGVyYXRvci0+
dmFsdWUpOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL0RPTU9iamVjdENhY2hlLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL0RPTU9iamVjdENhY2hlLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMmJjYmE2NjEwODc1YjI3ZjlhNjU1MjkzM2RlNzIzYzkyNzhlYWE1NQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ2xpYi9ET00vRE9NT2JqZWN0Q2FjaGUuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogIENv
cHlyaWdodCAoQykgMjAxMCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3Qs
IHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIE5vZGU7Cit9
OworCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIERPTU9iamVjdENhY2hlIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgdm9pZCogZ2V0KHZvaWQqIG9iamVjdEhhbmRsZSk7CisgICAgc3RhdGljIHZv
aWQgcHV0KHZvaWQqIG9iamVjdEhhbmRsZSwgdm9pZCogd3JhcHBlcik7CisgICAgc3RhdGljIHZv
aWQgcHV0KFdlYkNvcmU6Ok5vZGUqIG9iamVjdEhhbmRsZSwgdm9pZCogd3JhcHBlcik7CisgICAg
c3RhdGljIHZvaWQgZm9yZ2V0KHZvaWQqIG9iamVjdEhhbmRsZSk7Cit9OworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NRG9jdW1lbnQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZhNzBhMzJlYzM5ZThmZTQyZDlhNTc0NDBiNjdkZGM4ZjdhN2IwNTYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTURvY3VtZW50LmNwcApAQCAtMCwwICsxLDc2IEBACisv
KgorICogIENvcHlyaWdodCAoQykgMjAxOCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0RE9NRG9jdW1lbnQuaCIKKworI2luY2x1ZGUg
IkRPTU9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlLmgi
CisjaW5jbHVkZSAiV2ViS2l0RE9NTm9kZVByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01Q
cml2YXRlLmgiCisKKyNpZiBQTEFURk9STShHVEspCisjaW5jbHVkZSAiV2ViS2l0RE9NRXZlbnRU
YXJnZXQuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViS2l0RE9NRG9jdW1l
bnQqIGtpdChXZWJDb3JlOjpEb2N1bWVudCogb2JqKQoreworICAgIHJldHVybiBXRUJLSVRfRE9N
X0RPQ1VNRU5UKGtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpOb2RlKj4ob2JqKSkpOworfQorCitX
ZWJDb3JlOjpEb2N1bWVudCogY29yZShXZWJLaXRET01Eb2N1bWVudCogZG9jdW1lbnQpCit7Cisg
ICAgcmV0dXJuIGRvY3VtZW50ID8gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RG9jdW1lbnQqPih3ZWJr
aXRET01Ob2RlR2V0Q29yZU9iamVjdChXRUJLSVRfRE9NX05PREUoZG9jdW1lbnQpKSkgOiBudWxs
cHRyOworfQorCitXZWJLaXRET01Eb2N1bWVudCogd3JhcERvY3VtZW50KFdlYkNvcmU6OkRvY3Vt
ZW50KiBjb3JlT2JqZWN0KQoreworICAgIEFTU0VSVChjb3JlT2JqZWN0KTsKKyNpZiBQTEFURk9S
TShHVEspCisgICAgcmV0dXJuIFdFQktJVF9ET01fRE9DVU1FTlQoZ19vYmplY3RfbmV3KFdFQktJ
VF9ET01fVFlQRV9ET0NVTUVOVCwgImNvcmUtb2JqZWN0IiwgY29yZU9iamVjdCwgbnVsbHB0cikp
OworI2Vsc2UKKyAgICBhdXRvKiBkb2N1bWVudCA9IFdFQktJVF9ET01fRE9DVU1FTlQoZ19vYmpl
Y3RfbmV3KFdFQktJVF9ET01fVFlQRV9ET0NVTUVOVCwgbnVsbHB0cikpOworICAgIHdlYmtpdERP
TU5vZGVTZXRDb3JlT2JqZWN0KFdFQktJVF9ET01fTk9ERShkb2N1bWVudCksIHN0YXRpY19jYXN0
PFdlYkNvcmU6Ok5vZGUqPihjb3JlT2JqZWN0KSk7CisgICAgcmV0dXJuIGRvY3VtZW50OworI2Vu
ZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjaWYgUExBVEZPUk0oR1RLKQorR19H
TlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CitHX0RFRklORV9UWVBFX1dJVEhfQ09ERShX
ZWJLaXRET01Eb2N1bWVudCwgd2Via2l0X2RvbV9kb2N1bWVudCwgV0VCS0lUX0RPTV9UWVBFX05P
REUsIEdfSU1QTEVNRU5UX0lOVEVSRkFDRShXRUJLSVRfRE9NX1RZUEVfRVZFTlRfVEFSR0VULCB3
ZWJraXRET01Eb2N1bWVudERPTUV2ZW50VGFyZ2V0SW5pdCkpCitHX0dOVUNfRU5EX0lHTk9SRV9E
RVBSRUNBVElPTlM7CisjZWxzZQorR19ERUZJTkVfVFlQRShXZWJLaXRET01Eb2N1bWVudCwgd2Vi
a2l0X2RvbV9kb2N1bWVudCwgV0VCS0lUX0RPTV9UWVBFX05PREUpCisjZW5kaWYKKworc3RhdGlj
IHZvaWQgd2Via2l0X2RvbV9kb2N1bWVudF9jbGFzc19pbml0KFdlYktpdERPTURvY3VtZW50Q2xh
c3MqIGRvY3VtZW50Q2xhc3MpCit7CisjaWYgUExBVEZPUk0oR1RLKQorICAgIEdPYmplY3RDbGFz
cyogZ29iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1MoZG9jdW1lbnRDbGFzcyk7CisgICAgd2Vi
a2l0RE9NRG9jdW1lbnRJbnN0YWxsUHJvcGVydGllcyhnb2JqZWN0Q2xhc3MpOworI2VuZGlmCit9
CisKK3N0YXRpYyB2b2lkIHdlYmtpdF9kb21fZG9jdW1lbnRfaW5pdChXZWJLaXRET01Eb2N1bWVu
dCopCit7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTURvY3VtZW50UHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01Eb2N1
bWVudFByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yM2YwMzIyMWFkY2ZkYjQxY2ViNDVmOWM2ZmUyNDY1
MDY5NzA0MWFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01Eb2N1bWVudFByaXZhdGUuaApAQCAt
MCwwICsxLDM0IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAxOCBJZ2FsaWEgUy5MLgorICoK
KyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIldlYktpdERPTURvY3VtZW50LmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK1dlYktp
dERPTURvY3VtZW50KiB3cmFwRG9jdW1lbnQoV2ViQ29yZTo6RG9jdW1lbnQqKTsKK1dlYktpdERP
TURvY3VtZW50KiBraXQoV2ViQ29yZTo6RG9jdW1lbnQqKTsKK1dlYkNvcmU6OkRvY3VtZW50KiBj
b3JlKFdlYktpdERPTURvY3VtZW50Kik7Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2lmIFBM
QVRGT1JNKEdUSykKK3ZvaWQgd2Via2l0RE9NRG9jdW1lbnRET01FdmVudFRhcmdldEluaXQoV2Vi
S2l0RE9NRXZlbnRUYXJnZXRJZmFjZSopOwordm9pZCB3ZWJraXRET01Eb2N1bWVudEluc3RhbGxQ
cm9wZXJ0aWVzKEdPYmplY3RDbGFzcyopOworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGli
L0RPTS9XZWJLaXRET01FbGVtZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMzMyNDk1NTc3YWQ5MWZlNDRm
MDY3OTY2NzQ1MWZiMTZlYTcwMDVlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01FbGVtZW50LmNw
cApAQCAtMCwwICsxLDE2NCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDIwMTggSWdhbGlhIFMu
TC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAq
ICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYktpdERPTUVs
ZW1lbnQuaCIKKworI2luY2x1ZGUgIkRPTU9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiV2ViS2l0
RE9NRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01Ob2RlUHJpdmF0ZS5oIgor
I2luY2x1ZGUgIldlYktpdERPTVByaXZhdGUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0hUTUxJbnB1
dEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUTUxUZXh0QXJlYUVsZW1lbnQuaD4KKwor
I2lmIFBMQVRGT1JNKEdUSykKKyNpbmNsdWRlICJXZWJLaXRET01FdmVudFRhcmdldC5oIgorI2Vu
ZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJLaXRET01FbGVtZW50KiBraXQoV2ViQ29y
ZTo6RWxlbWVudCogb2JqKQoreworICAgIHJldHVybiBXRUJLSVRfRE9NX0VMRU1FTlQoa2l0KHN0
YXRpY19jYXN0PFdlYkNvcmU6Ok5vZGUqPihvYmopKSk7Cit9CisKK1dlYkNvcmU6OkVsZW1lbnQq
IGNvcmUoV2ViS2l0RE9NRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICByZXR1cm4gZWxlbWVudCA/
IHN0YXRpY19jYXN0PFdlYkNvcmU6OkVsZW1lbnQqPih3ZWJraXRET01Ob2RlR2V0Q29yZU9iamVj
dChXRUJLSVRfRE9NX05PREUoZWxlbWVudCkpKSA6IG51bGxwdHI7Cit9CisKK1dlYktpdERPTUVs
ZW1lbnQqIHdyYXBFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqIGNvcmVPYmplY3QpCit7CisgICAg
QVNTRVJUKGNvcmVPYmplY3QpOworI2lmIFBMQVRGT1JNKEdUSykKKyAgICByZXR1cm4gV0VCS0lU
X0RPTV9FTEVNRU5UKGdfb2JqZWN0X25ldyhXRUJLSVRfRE9NX1RZUEVfRUxFTUVOVCwgImNvcmUt
b2JqZWN0IiwgY29yZU9iamVjdCwgbnVsbHB0cikpOworI2Vsc2UKKyAgICBhdXRvKiBlbGVtZW50
ID0gV0VCS0lUX0RPTV9FTEVNRU5UKGdfb2JqZWN0X25ldyhXRUJLSVRfRE9NX1RZUEVfRUxFTUVO
VCwgbnVsbHB0cikpOworICAgIHdlYmtpdERPTU5vZGVTZXRDb3JlT2JqZWN0KFdFQktJVF9ET01f
Tk9ERShlbGVtZW50KSwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KGNvcmVPYmplY3QpKTsK
KyAgICByZXR1cm4gZWxlbWVudDsKKyNlbmRpZgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2lmIFBMQVRGT1JNKEdUSykKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwor
R19ERUZJTkVfVFlQRV9XSVRIX0NPREUoV2ViS2l0RE9NRWxlbWVudCwgd2Via2l0X2RvbV9lbGVt
ZW50LCBXRUJLSVRfRE9NX1RZUEVfTk9ERSwgR19JTVBMRU1FTlRfSU5URVJGQUNFKFdFQktJVF9E
T01fVFlQRV9FVkVOVF9UQVJHRVQsIHdlYmtpdERPTUVsZW1lbnRET01FdmVudFRhcmdldEluaXQp
KQorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOworI2Vsc2UKK0dfREVGSU5FX1RZUEUo
V2ViS2l0RE9NRWxlbWVudCwgd2Via2l0X2RvbV9lbGVtZW50LCBXRUJLSVRfRE9NX1RZUEVfTk9E
RSkKKyNlbmRpZgorCitzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX2VsZW1lbnRfY2xhc3NfaW5pdChX
ZWJLaXRET01FbGVtZW50Q2xhc3MqIGVsZW1lbnRDbGFzcykKK3sKKyNpZiBQTEFURk9STShHVEsp
CisgICAgR09iamVjdENsYXNzKiBnb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhlbGVtZW50
Q2xhc3MpOworICAgIHdlYmtpdERPTUVsZW1lbnRJbnN0YWxsUHJvcGVydGllcyhnb2JqZWN0Q2xh
c3MpOworI2VuZGlmCit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdF9kb21fZWxlbWVudF9pbml0KFdl
YktpdERPTUVsZW1lbnQqKQoreworfQorCisvKioKKyAqIHdlYmtpdF9kb21fZWxlbWVudF9odG1s
X2lucHV0X2VsZW1lbnRfaXNfdXNlcl9lZGl0ZWQ6CisgKiBAZWxlbWVudDogYSAjV2ViS2l0RE9N
RWxlbWVudAorICoKKyAqIEdldCB3aGV0aGVyIEBlbGVtZW50IGlzIGFuIEhUTUwgdGV4dCBpbnB1
dCBlbGVtZW50IHRoYXQgaGFzIGJlZW4gZWRpdGVkIGJ5IGEgdXNlciBhY3Rpb24uCisgKgorICog
UmV0dXJuczogd2hldGhlciBAZWxlbWVudCBoYXMgYmVlbiBlZGl0ZWQgYnkgYSB1c2VyIGFjdGlv
bi4KKyAqCisgKiBTaW5jZTogMi4yMgorICovCitnYm9vbGVhbiB3ZWJraXRfZG9tX2VsZW1lbnRf
aHRtbF9pbnB1dF9lbGVtZW50X2lzX3VzZXJfZWRpdGVkKFdlYktpdERPTUVsZW1lbnQqIGVsZW1l
bnQpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKGVs
ZW1lbnQpLCBGQUxTRSk7CisKKyAgICBhdXRvKiBub2RlID0gd2Via2l0RE9NTm9kZUdldENvcmVP
YmplY3QoV0VCS0lUX0RPTV9OT0RFKGVsZW1lbnQpKTsKKyAgICBpZiAoaXM8V2ViQ29yZTo6SFRN
TElucHV0RWxlbWVudD4obm9kZSkpCisgICAgICAgIHJldHVybiBkb3duY2FzdDxXZWJDb3JlOjpI
VE1MSW5wdXRFbGVtZW50Pigqbm9kZSkubGFzdENoYW5nZVdhc1VzZXJFZGl0KCk7CisKKyAgICBp
ZiAoaXM8V2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudD4obm9kZSkpCisgICAgICAgIHJldHVy
biBkb3duY2FzdDxXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVtZW50Pigqbm9kZSkubGFzdENoYW5n
ZVdhc1VzZXJFZGl0KCk7CisKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKKy8qKgorICogd2Via2l0
X2RvbV9lbGVtZW50X2lzX2h0bWxfaW5wdXRfZWxlbWVudF9hdXRvX2ZpbGxlZDoKKyAqIEBlbGVt
ZW50OiBhICNXZWJLaXRET01FbGVtZW50CisgKgorICogR2V0IHdoZXRoZXIgdGhlIGVsZW1lbnQg
aXMgYW4gSFRNTCBpbnB1dCBlbGVtZW50IHRoYXQgaGFzIGJlZW4gZmlsbGVkIGF1dG9tYXRpY2Fs
bHkuCisgKgorICogUmV0dXJuczogd2hldGhlciBAZWxlbWVudCBoYXMgYmVlbiBmaWxsZWQgYXV0
b21hdGljYWxseS4KKyAqCisgKiBTaW5jZTogMi4yMgorICovCitnYm9vbGVhbiB3ZWJraXRfZG9t
X2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X2dldF9hdXRvX2ZpbGxlZChXZWJLaXRET01FbGVt
ZW50KiBlbGVtZW50KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNf
RUxFTUVOVChlbGVtZW50KSwgRkFMU0UpOworCisgICAgYXV0byogbm9kZSA9IHdlYmtpdERPTU5v
ZGVHZXRDb3JlT2JqZWN0KFdFQktJVF9ET01fTk9ERShlbGVtZW50KSk7CisgICAgaWYgKCFpczxX
ZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Pihub2RlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgcmV0dXJuIGRvd25jYXN0PFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ+KCpub2RlKS5p
c0F1dG9GaWxsZWQoKTsKK30KKworLyoqCisgKiB3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1
dF9lbGVtZW50X3NldF9hdXRvX2ZpbGxlZDoKKyAqIEBlbGVtZW50OiBhICNXZWJLaXRET01FbGVt
ZW50CisgKiBAYXV0b19maWxsZWQ6IHZhbHVlIHRvIHNldAorICoKKyAqIFNldCB3aGV0aGVyIHRo
ZSBlbGVtZW50IGlzIGFuIEhUTUwgaW5wdXQgZWxlbWVudCB0aGF0IGhhcyBiZWVuIGZpbGxlZCBh
dXRvbWF0aWNhbGx5LgorICogSWYgQGVsZW1lbnQgaXMgbm90IGFuIEhUTUwgaW5wdXQgZWxlbWVu
dCB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90aGluZy4KKyAqCisgKiBTaW5jZTogMi4yMgorICovCit2
b2lkIHdlYmtpdF9kb21fZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2F1dG9fZmlsbGVk
KFdlYktpdERPTUVsZW1lbnQqIGVsZW1lbnQsIGdib29sZWFuIGF1dG9GaWxsZWQpCit7CisgICAg
Z19yZXR1cm5faWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoZWxlbWVudCkpOworCisgICAg
YXV0byogbm9kZSA9IHdlYmtpdERPTU5vZGVHZXRDb3JlT2JqZWN0KFdFQktJVF9ET01fTk9ERShl
bGVtZW50KSk7CisgICAgaWYgKCFpczxXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Pihub2RlKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgZG93bmNhc3Q8V2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dD4oKm5vZGUpLnNldEF1dG9GaWxsZWQoYXV0b0ZpbGxlZCk7Cit9CisKKy8qKgorICogd2Via2l0
X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfZWRpdGluZ192YWx1ZToKKyAqIEBl
bGVtZW50OiBhICNXZWJLaXRET01FbGVtZW50CisgKiBAdmFsdWU6IHRoZSB0ZXh0IHRvIHNldAor
ICoKKyAqIFNldCBlZGl0aW5nIHZhbHVlIG9mIGFuIEhUTUwgaW5wdXQgZWxlbWVudC4gSWYgQGVs
ZW1lbnQgaXMgbm90IGFuIEhUTUwgaW5wdXQgZWxlbWVudCB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90
aGluZy4KKyAqCisgKiBTaW5jZTogMi4yMgorICovCit2b2lkIHdlYmtpdF9kb21fZWxlbWVudF9o
dG1sX2lucHV0X2VsZW1lbnRfc2V0X2VkaXRpbmdfdmFsdWUoV2ViS2l0RE9NRWxlbWVudCogZWxl
bWVudCwgY29uc3QgY2hhciogdmFsdWUpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRf
RE9NX0lTX0VMRU1FTlQoZWxlbWVudCkpOworCisgICAgYXV0byogbm9kZSA9IHdlYmtpdERPTU5v
ZGVHZXRDb3JlT2JqZWN0KFdFQktJVF9ET01fTk9ERShlbGVtZW50KSk7CisgICAgaWYgKCFpczxX
ZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Pihub2RlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
ZG93bmNhc3Q8V2ViQ29yZTo6SFRNTElucHV0RWxlbWVudD4oKm5vZGUpLnNldEVkaXRpbmdWYWx1
ZShTdHJpbmc6OmZyb21VVEY4KHZhbHVlKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTUVsZW1lbnRQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2ds
aWIvRE9NL1dlYktpdERPTUVsZW1lbnRQcml2YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2UwOWQwYjNkMTRl
OTVlN2M1ZGRlYWZkNjIxOGNkOGI0NTRhMTNjMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NRWxl
bWVudFByaXZhdGUuaApAQCAtMCwwICsxLDM0IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAx
OCBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9u
IDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u
CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0b24sIE1B
IDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIldlYktp
dERPTUVsZW1lbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0VsZW1lbnQuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7CitXZWJLaXRET01FbGVtZW50KiB3cmFwRWxlbWVudChXZWJDb3JlOjpFbGVtZW50
Kik7CitXZWJLaXRET01FbGVtZW50KiBraXQoV2ViQ29yZTo6RWxlbWVudCopOworV2ViQ29yZTo6
RWxlbWVudCogY29yZShXZWJLaXRET01FbGVtZW50Kik7Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2lmIFBMQVRGT1JNKEdUSykKK3ZvaWQgd2Via2l0RE9NRWxlbWVudERPTUV2ZW50VGFyZ2V0
SW5pdChXZWJLaXRET01FdmVudFRhcmdldElmYWNlKik7Cit2b2lkIHdlYmtpdERPTUVsZW1lbnRJ
bnN0YWxsUHJvcGVydGllcyhHT2JqZWN0Q2xhc3MqKTsKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRE
T01Ob2RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z2xpYi9ET00vV2ViS2l0RE9NTm9kZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmQ4OTUzMTZkODA1MWNhOTUz
ZmZlY2NhYzMyMmMwNWY1MjQ3MjYyYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NTm9kZS5jcHAK
QEAgLTAsMCArMSwxNTQgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDE4IElnYWxpYSBTLkwu
CisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAg
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5v
dCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRET01Ob2Rl
LmgiCisKKyNpbmNsdWRlICJET01PYmplY3RDYWNoZS5oIgorI2luY2x1ZGUgIldlYktpdERPTU5v
ZGVQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0RE9NUHJpdmF0ZS5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvSlNOb2RlLmg+CisjaW5jbHVkZSA8anNjL0pTQ0NvbnRleHRQcml2YXRlLmg+CisjaW5j
bHVkZSA8anNjL0pTQ1ZhbHVlUHJpdmF0ZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKwor
I2lmIFBMQVRGT1JNKEdUSykKKyNpbmNsdWRlICJXZWJLaXRET01FdmVudFRhcmdldC5oIgorI2Vu
ZGlmCisKKyNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0dFVF9QUklWQVRFKG9iaikgR19UWVBFX0lO
U1RBTkNFX0dFVF9QUklWQVRFKG9iaiwgV0VCS0lUX0RPTV9UWVBFX05PREUsIFdlYktpdERPTU5v
ZGVQcml2YXRlKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NTm9kZVByaXZhdGUgeworICAg
IH5fV2ViS2l0RE9NTm9kZVByaXZhdGUoKQorICAgIHsKKyAgICAgICAgV2ViS2l0OjpET01PYmpl
Y3RDYWNoZTo6Zm9yZ2V0KGNvcmVPYmplY3QuZ2V0KCkpOworICAgIH0KKworICAgIFJlZlB0cjxX
ZWJDb3JlOjpOb2RlPiBjb3JlT2JqZWN0OworfSBXZWJLaXRET01Ob2RlUHJpdmF0ZTsKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK1dlYktpdERPTU5vZGUqIGtpdChXZWJDb3JlOjpOb2RlKiBvYmop
Cit7CisgICAgaWYgKCFvYmopCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKGdw
b2ludGVyIHJldCA9IERPTU9iamVjdENhY2hlOjpnZXQob2JqKSkKKyAgICAgICAgcmV0dXJuIFdF
QktJVF9ET01fTk9ERShyZXQpOworCisgICAgcmV0dXJuIHdyYXAob2JqKTsKK30KKworV2ViQ29y
ZTo6Tm9kZSogY29yZShXZWJLaXRET01Ob2RlKiBub2RlKQoreworICAgIHJldHVybiBub2RlID8g
d2Via2l0RE9NTm9kZUdldENvcmVPYmplY3Qobm9kZSkgOiBudWxscHRyOworfQorCitXZWJLaXRE
T01Ob2RlKiB3cmFwTm9kZShXZWJDb3JlOjpOb2RlKiBjb3JlT2JqZWN0KQoreworICAgIEFTU0VS
VChjb3JlT2JqZWN0KTsKKyNpZiBQTEFURk9STShHVEspCisgICAgcmV0dXJuIFdFQktJVF9ET01f
Tk9ERShnX29iamVjdF9uZXcoV0VCS0lUX0RPTV9UWVBFX05PREUsICJjb3JlLW9iamVjdCIsIGNv
cmVPYmplY3QsIG51bGxwdHIpKTsKKyNlbHNlCisgICAgYXV0byogbm9kZSA9IFdFQktJVF9ET01f
Tk9ERShnX29iamVjdF9uZXcoV0VCS0lUX0RPTV9UWVBFX05PREUsIG51bGxwdHIpKTsKKyAgICB3
ZWJraXRET01Ob2RlU2V0Q29yZU9iamVjdChub2RlLCBjb3JlT2JqZWN0KTsKKyAgICByZXR1cm4g
bm9kZTsKKyNlbmRpZgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2lmIFBMQVRGT1JN
KEdUSykKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworR19ERUZJTkVfVFlQRV9X
SVRIX0NPREUoV2ViS2l0RE9NTm9kZSwgd2Via2l0X2RvbV9ub2RlLCBXRUJLSVRfRE9NX1RZUEVf
T0JKRUNULCBHX0lNUExFTUVOVF9JTlRFUkZBQ0UoV0VCS0lUX0RPTV9UWVBFX0VWRU5UX1RBUkdF
VCwgd2Via2l0RE9NTm9kZURPTUV2ZW50VGFyZ2V0SW5pdCkpCitHX0dOVUNfRU5EX0lHTk9SRV9E
RVBSRUNBVElPTlM7CisjZWxzZQorV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdERPTU5vZGUsIHdl
YmtpdF9kb21fbm9kZSwgV0VCS0lUX0RPTV9UWVBFX09CSkVDVCkKKyNlbmRpZgorCisjaWYgUExB
VEZPUk0oR1RLKQorc3RhdGljIEdPYmplY3QqIHdlYmtpdERPTU5vZGVDb25zdHJ1Y3RvcihHVHlw
ZSB0eXBlLCBndWludCBjb25zdHJ1Y3RQcm9wZXJ0aWVzQ291bnQsIEdPYmplY3RDb25zdHJ1Y3RQ
YXJhbSogY29uc3RydWN0UHJvcGVydGllcykKK3sKKyAgICBHT2JqZWN0KiBvYmplY3QgPSBHX09C
SkVDVF9DTEFTUyh3ZWJraXRfZG9tX25vZGVfcGFyZW50X2NsYXNzKS0+Y29uc3RydWN0b3IodHlw
ZSwgY29uc3RydWN0UHJvcGVydGllc0NvdW50LCBjb25zdHJ1Y3RQcm9wZXJ0aWVzKTsKKworICAg
IHdlYmtpdERPTU5vZGVTZXRDb3JlT2JqZWN0KFdFQktJVF9ET01fTk9ERShvYmplY3QpLCBzdGF0
aWNfY2FzdDxXZWJDb3JlOjpOb2RlKj4oV0VCS0lUX0RPTV9PQkpFQ1Qob2JqZWN0KS0+Y29yZU9i
amVjdCkpOworCisgICAgcmV0dXJuIG9iamVjdDsKK30KKworc3RhdGljIHZvaWQgd2Via2l0RE9N
Tm9kZUZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKK3sKKyAgICBXZWJLaXRET01Ob2RlKiBub2Rl
ID0gV0VCS0lUX0RPTV9OT0RFKG9iamVjdCk7CisKKyAgICBXZWJLaXRET01Ob2RlUHJpdmF0ZSog
cHJpdiA9IFdFQktJVF9ET01fTk9ERV9HRVRfUFJJVkFURShub2RlKTsKKyAgICBwcml2LT5+V2Vi
S2l0RE9NTm9kZVByaXZhdGUoKTsKKworICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9kb21fbm9k
ZV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOworfQorCitzdGF0aWMgdm9pZCB3ZWJr
aXRfZG9tX25vZGVfaW5pdChXZWJLaXRET01Ob2RlKiBub2RlKQoreworICAgIFdlYktpdERPTU5v
ZGVQcml2YXRlKiBwcml2ID0gV0VCS0lUX0RPTV9OT0RFX0dFVF9QUklWQVRFKG5vZGUpOworICAg
IG5ldyAocHJpdikgV2ViS2l0RE9NTm9kZVByaXZhdGUoKTsKK30KKyNlbmRpZgorCitzdGF0aWMg
dm9pZCB3ZWJraXRfZG9tX25vZGVfY2xhc3NfaW5pdChXZWJLaXRET01Ob2RlQ2xhc3MqIG5vZGVD
bGFzcykKK3sKKyNpZiBQTEFURk9STShHVEspCisgICAgR09iamVjdENsYXNzKiBnb2JqZWN0Q2xh
c3MgPSBHX09CSkVDVF9DTEFTUyhub2RlQ2xhc3MpOworICAgIGdfdHlwZV9jbGFzc19hZGRfcHJp
dmF0ZShnb2JqZWN0Q2xhc3MsIHNpemVvZihXZWJLaXRET01Ob2RlUHJpdmF0ZSkpOworICAgIGdv
YmplY3RDbGFzcy0+Y29uc3RydWN0b3IgPSB3ZWJraXRET01Ob2RlQ29uc3RydWN0b3I7CisgICAg
Z29iamVjdENsYXNzLT5maW5hbGl6ZSA9IHdlYmtpdERPTU5vZGVGaW5hbGl6ZTsKKyAgICB3ZWJr
aXRET01Ob2RlSW5zdGFsbFByb3BlcnRpZXMoZ29iamVjdENsYXNzKTsKKyNlbmRpZgorfQorCit2
b2lkIHdlYmtpdERPTU5vZGVTZXRDb3JlT2JqZWN0KFdlYktpdERPTU5vZGUqIG5vZGUsIFdlYkNv
cmU6Ok5vZGUqIGNvcmVPYmplY3QpCit7CisgICAgV2ViS2l0RE9NTm9kZVByaXZhdGUqIHByaXYg
PSBXRUJLSVRfRE9NX05PREVfR0VUX1BSSVZBVEUobm9kZSk7CisgICAgcHJpdi0+Y29yZU9iamVj
dCA9IGNvcmVPYmplY3Q7CisgICAgV2ViS2l0OjpET01PYmplY3RDYWNoZTo6cHV0KGNvcmVPYmpl
Y3QsIG5vZGUpOworfQorCitXZWJDb3JlOjpOb2RlKiB3ZWJraXRET01Ob2RlR2V0Q29yZU9iamVj
dChXZWJLaXRET01Ob2RlKiBub2RlKQoreworICAgIFdlYktpdERPTU5vZGVQcml2YXRlKiBwcml2
ID0gV0VCS0lUX0RPTV9OT0RFX0dFVF9QUklWQVRFKG5vZGUpOworICAgIHJldHVybiBwcml2LT5j
b3JlT2JqZWN0LmdldCgpOworfQorCisvKioKKyAqIHdlYmtpdF9kb21fbm9kZV9mb3JfanNfdmFs
dWU6CisgKiBAdmFsdWU6IGEgI0pTQ1ZhbHVlCisgKgorICogR2V0IHRoZSAjV2ViS2l0RE9NTm9k
ZSBmb3IgdGhlIERPTSBub2RlIHJlZmVyZW5jZWQgYnkgQHZhbHVlLgorICoKKyAqIFJldHVybnM6
ICh0cmFuc2ZlciBub25lKTogYSAjV2ViS2l0RE9NTm9kZSwgb3IgJU5VTEwgaWYgQHZhbHVlIGRv
ZXNuJ3QgcmVmZXJlbmNlIGEgRE9NIG5vZGUuCisgKgorICogU2luY2U6IDIuMjIKKyAqLworV2Vi
S2l0RE9NTm9kZSogd2Via2l0X2RvbV9ub2RlX2Zvcl9qc192YWx1ZShKU0NWYWx1ZSogdmFsdWUp
Cit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoSlNDX0lTX1ZBTFVFKHZhbHVlKSwgbnVsbHB0
cik7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoanNjX3ZhbHVlX2lzX29iamVjdCh2YWx1ZSks
IG51bGxwdHIpOworCisgICAgYXV0byoganNPYmplY3QgPSBKU1ZhbHVlVG9PYmplY3QoanNjQ29u
dGV4dEdldEpTQ29udGV4dChqc2NfdmFsdWVfZ2V0X2NvbnRleHQodmFsdWUpKSwganNjVmFsdWVH
ZXRKU1ZhbHVlKHZhbHVlKSwgbnVsbHB0cik7CisgICAgcmV0dXJuIGpzT2JqZWN0ID8gV2ViS2l0
OjpraXQoV2ViQ29yZTo6SlNOb2RlOjp0b1dyYXBwZWQoKnRvSlMoanNPYmplY3QpLT52bSgpLCB0
b0pTKGpzT2JqZWN0KSkpIDogbnVsbHB0cjsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NTm9kZVByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9E
T00vV2ViS2l0RE9NTm9kZVByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMDViZDU4MmQ4MjQ4ZjE1NDFh
MGVmYWMwOWU2Y2VkZDhiOTY3NjM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01Ob2RlUHJpdmF0
ZS5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDE4IElnYWxpYSBT
LkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiV2ViS2l0RE9NTm9kZS5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvTm9kZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK1dlYktp
dERPTU5vZGUqIHdyYXBOb2RlKFdlYkNvcmU6Ok5vZGUqKTsKK1dlYktpdERPTU5vZGUqIGtpdChX
ZWJDb3JlOjpOb2RlKik7CitXZWJDb3JlOjpOb2RlKiBjb3JlKFdlYktpdERPTU5vZGUqKTsKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCit2b2lkIHdlYmtpdERPTU5vZGVTZXRDb3JlT2JqZWN0KFdl
YktpdERPTU5vZGUqLCBXZWJDb3JlOjpOb2RlKik7CitXZWJDb3JlOjpOb2RlKiB3ZWJraXRET01O
b2RlR2V0Q29yZU9iamVjdChXZWJLaXRET01Ob2RlKik7CisKKyNpZiBQTEFURk9STShHVEspCit2
b2lkIHdlYmtpdERPTU5vZGVET01FdmVudFRhcmdldEluaXQoV2ViS2l0RE9NRXZlbnRUYXJnZXRJ
ZmFjZSopOwordm9pZCB3ZWJraXRET01Ob2RlSW5zdGFsbFByb3BlcnRpZXMoR09iamVjdENsYXNz
Kik7CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NT2JqZWN0LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jYTVmM2M1YzM5NTdhNzA2ZmU3YTE0ZTkwMWE2MTFmYjc2YTUwMzNjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9nbGliL0RPTS9XZWJLaXRET01PYmplY3QuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBs
a2NsLm5ldD4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBNYXJ0aW4gU290byA8c290b0BmcmVlZGVz
a3RvcC5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQWxwIFRva2VyIDxhbHBAYXRva2VyLmNv
bT4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDkgSWdhbGlhIFMuTC4KKyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYktp
dERPTU9iamVjdC5oIgorCisjaWYgUExBVEZPUk0oR1RLKQorZW51bSB7CisgICAgUFJPUF8wLAor
ICAgIFBST1BfQ09SRV9PQkpFQ1QKK307CisjZW5kaWYKKworR19ERUZJTkVfVFlQRShXZWJLaXRE
T01PYmplY3QsIHdlYmtpdF9kb21fb2JqZWN0LCBHX1RZUEVfT0JKRUNUKQorCitzdGF0aWMgdm9p
ZCB3ZWJraXRfZG9tX29iamVjdF9pbml0KFdlYktpdERPTU9iamVjdCopCit7Cit9CisKKyNpZiBQ
TEFURk9STShHVEspCitzdGF0aWMgdm9pZCB3ZWJraXRET01PYmplY3RTZXRQcm9wZXJ0eShHT2Jq
ZWN0KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIEdQYXJh
bVNwZWMqIHBzcGVjKQoreworICAgIHN3aXRjaCAocHJvcGVydHlJZCkgeworICAgIGNhc2UgUFJP
UF9DT1JFX09CSkVDVDoKKyAgICAgICAgV0VCS0lUX0RPTV9PQkpFQ1Qob2JqZWN0KS0+Y29yZU9i
amVjdCA9IGdfdmFsdWVfZ2V0X3BvaW50ZXIodmFsdWUpOworICAgICAgICBicmVhazsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0
LCBwcm9wZXJ0eUlkLCBwc3BlYyk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKyNlbmRpZgor
CitzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX29iamVjdF9jbGFzc19pbml0KFdlYktpdERPTU9iamVj
dENsYXNzKiBrbGFzcykKK3sKKyNpZiBQTEFURk9STShHVEspCisgICAgR09iamVjdENsYXNzKiBn
b2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhrbGFzcyk7CisgICAgZ29iamVjdENsYXNzLT5z
ZXRfcHJvcGVydHkgPSB3ZWJraXRET01PYmplY3RTZXRQcm9wZXJ0eTsKKworICAgIGdfb2JqZWN0
X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCisgICAgICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAg
UFJPUF9DT1JFX09CSkVDVCwKKyAgICAgICAgZ19wYXJhbV9zcGVjX3BvaW50ZXIoCisgICAgICAg
ICAgICAiY29yZS1vYmplY3QiLAorICAgICAgICAgICAgIkNvcmUgT2JqZWN0IiwKKyAgICAgICAg
ICAgICJUaGUgV2ViQ29yZSBvYmplY3QgdGhlIFdlYktpdERPTU9iamVjdCB3cmFwcyIsCisgICAg
ICAgICAgICBzdGF0aWNfY2FzdDxHUGFyYW1GbGFncz4oR19QQVJBTV9XUklUQUJMRSB8IEdfUEFS
QU1fQ09OU1RSVUNUX09OTFkgfCBHX1BBUkFNX1NUQVRJQ19OQU1FIHwgR19QQVJBTV9TVEFUSUNf
TklDSyB8IEdfUEFSQU1fU1RBVElDX0JMVVJCKSkpOworI2VuZGlmCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktp
dERPTU9iamVjdFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NT2JqZWN0UHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMx
NmJlYTdjZmRiZTYzZDA4YjE5ZTM1OTA0MmY3YjBiOGUxZDFlYmIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dl
YktpdERPTU9iamVjdFByaXZhdGUuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICovCisKKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJXZWJLaXRE
T01PYmplY3QuaCIKKworc3RydWN0IF9XZWJLaXRET01PYmplY3QgeworICAgIEdPYmplY3QgcGFy
ZW50OworfTsKKworc3RydWN0IF9XZWJLaXRET01PYmplY3RDbGFzcyB7CisgICAgR09iamVjdENs
YXNzIHBhcmVudF9jbGFzczsKKworI2lmIFBMQVRGT1JNKEdUSykKKyAgICAvLyBUaGlzIGlzIG9u
bHkgdG8ga2VlcCBBQkkgY29tcGF0aWJpbGl0eS4KKyAgICB2b2lkICgqd2Via2l0ZG9tX3Jlc2Vy
dmVkKSh2b2lkKTsKKyNlbmRpZgorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9ET00vV2ViS2l0RE9NUHJpdmF0ZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktp
dERPTVByaXZhdGUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzZmZiODc4MTBiZTA0ODMyZmRmNzVhZTgzMDhj
YjZmNzkzYWQ2MGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvRE9NL1dlYktpdERPTVByaXZhdGUuY3BwCkBAIC0wLDAg
KzEsNjEgQEAKKy8qCisgKiAgQ29weXJpZ2h0IChDKSAyMDE4IElnYWxpYSBTLkwuCisgKgorICog
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1B
ICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViS2l0RE9NUHJpdmF0ZS5oIgorCisjaW5jbHVkZSAiV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRl
LmgiCisjaW5jbHVkZSAiV2ViS2l0RE9NRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJL
aXRET01Ob2RlUHJpdmF0ZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSFRNTEZvcm1FbGVtZW50Lmg+
CisKKyNpZiBQTEFURk9STShHVEspCisjaW5jbHVkZSAiV2ViS2l0RE9NUHJpdmF0ZUd0ay5oIgor
I2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJLaXRET01Ob2RlKiB3cmFwKFdlYkNv
cmU6Ok5vZGUqIG5vZGUpCit7CisgICAgQVNTRVJUKG5vZGUpOworICAgIEFTU0VSVChub2RlLT5u
b2RlVHlwZSgpKTsKKworI2lmIFBMQVRGT1JNKEdUSykKKyAgICBpZiAoYXV0byogd3JhcHBlciA9
IHdyYXBOb2RlR3RrKG5vZGUpKQorICAgICAgICByZXR1cm4gd3JhcHBlcjsKKyNlbmRpZgorCisg
ICAgc3dpdGNoIChub2RlLT5ub2RlVHlwZSgpKSB7CisgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpF
TEVNRU5UX05PREU6CisgICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcEVsZW1lbnQo
ZG93bmNhc3Q8V2ViQ29yZTo6RWxlbWVudD4obm9kZSkpKTsKKyAgICBjYXNlIFdlYkNvcmU6Ok5v
ZGU6OkRPQ1VNRU5UX05PREU6CisgICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcERv
Y3VtZW50KGRvd25jYXN0PFdlYkNvcmU6OkRvY3VtZW50Pihub2RlKSkpOworICAgIGNhc2UgV2Vi
Q29yZTo6Tm9kZTo6QVRUUklCVVRFX05PREU6CisgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpURVhU
X05PREU6CisgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpDREFUQV9TRUNUSU9OX05PREU6CisgICAg
Y2FzZSBXZWJDb3JlOjpOb2RlOjpQUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CisgICAgY2Fz
ZSBXZWJDb3JlOjpOb2RlOjpDT01NRU5UX05PREU6CisgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpE
T0NVTUVOVF9UWVBFX05PREU6CisgICAgY2FzZSBXZWJDb3JlOjpOb2RlOjpET0NVTUVOVF9GUkFH
TUVOVF9OT0RFOgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gd3JhcE5vZGUo
bm9kZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01Qcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIv
RE9NL1dlYktpdERPTVByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOGRiMjc2NjZhYjY3NDZjOGI5Y2Ji
OWQ0YjhmNjEzOGJiNzZmZTU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL0RPTS9XZWJLaXRET01Qcml2YXRlLmgKQEAg
LTAsMCArMSwzOSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMSBIYXJyaSBQb3J0
ZW4gKHBvcnRlbkBrZGUub3JnKQorICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwg
MjAwNiwgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29weXJpZ2h0
IChDKSAyMDA3IFNhbXVlbCBXZWluaWcgPHNhbUB3ZWJraXQub3JnPgorICogIENvcHlyaWdodCAo
QykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgorICog
IENvcHlyaWdodCAoQykgMjAwOCBNYXJ0aW4gU290byA8c290b0BmcmVlZGVza3RvcC5vcmc+Cisg
KiAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEz
MDEgIFVTQQorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiV2ViS2l0RE9NTm9kZS5o
IgorI2luY2x1ZGUgPHd0Zi9nbGliL1dURkdUeXBlLmg+CisKKyNpZiBQTEFURk9STShHVEspCisj
aW5jbHVkZSAiV2ViS2l0RE9NUHJpdmF0ZUd0ay5oIgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKK2NsYXNzIE5vZGU7Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworV2ViS2l0RE9NTm9kZSogd3JhcChXZWJDb3JlOjpOb2RlKik7Cit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0RnJhbWUuY3BwCmluZGV4IDA0NzcxMDAx
NTEyNTY5ZTgzY2ZmMGMxYjAwNzdmNzhkY2JhYzcxODkuLjIxYTNmNjM2ZTJhMTNlNzU2MDA1MWU5
YjYwNDRlMWM4NzVkZDE4OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ2xpYi9XZWJLaXRGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdEZyYW1lLmNwcApAQCAt
MjAsOCArMjAsMTMgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJLaXRGcmFt
ZS5oIgogCisjaW5jbHVkZSAiV2ViS2l0RE9NTm9kZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJL
aXRGcmFtZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRTY3JpcHRXb3JsZFByaXZhdGUuaCIK
KyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zy
YW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9KU05vZGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nj
cmlwdENvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxqc2MvSlNDQ29udGV4dFByaXZhdGUuaD4KICNp
bmNsdWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KQEAgLTkzLDcgKzk4LDcgQEAgY29uc3QgZ2NoYXIqIHdlYmtpdF9mcmFtZV9nZXRfdXJpKFdl
YktpdEZyYW1lKiBmcmFtZSkKIAogI2lmIFBMQVRGT1JNKEdUSykKIC8qKgotICogd2Via2l0X2Zy
YW1lX2dldF9qYXZhc2NyaXB0X2dsb2JhbF9jb250ZXh0OgorICogd2Via2l0X2ZyYW1lX2dldF9q
YXZhc2NyaXB0X2dsb2JhbF9jb250ZXh0OiAoc2tpcCkKICAqIEBmcmFtZTogYSAjV2ViS2l0RnJh
bWUKICAqCiAgKiBHZXRzIHRoZSBnbG9iYWwgSmF2YVNjcmlwdCBleGVjdXRpb24gY29udGV4dC4g
VXNlIHRoaXMgZnVuY3Rpb24gdG8gYnJpZGdlCkBAIC0xMTMsNyArMTE4LDcgQEAgSlNHbG9iYWxD
b250ZXh0UmVmIHdlYmtpdF9mcmFtZV9nZXRfamF2YXNjcmlwdF9nbG9iYWxfY29udGV4dChXZWJL
aXRGcmFtZSogZnJhbWUKIH0KIAogLyoqCi0gKiB3ZWJraXRfZnJhbWVfZ2V0X2phdmFzY3JpcHRf
Y29udGV4dF9mb3Jfc2NyaXB0X3dvcmxkOgorICogd2Via2l0X2ZyYW1lX2dldF9qYXZhc2NyaXB0
X2NvbnRleHRfZm9yX3NjcmlwdF93b3JsZDogKHNraXApCiAgKiBAZnJhbWU6IGEgI1dlYktpdEZy
YW1lCiAgKiBAd29ybGQ6IGEgI1dlYktpdFNjcmlwdFdvcmxkCiAgKgpAQCAtMTcwLDMgKzE3NSw1
MyBAQCBKU0NDb250ZXh0KiB3ZWJraXRfZnJhbWVfZ2V0X2pzX2NvbnRleHRfZm9yX3NjcmlwdF93
b3JsZChXZWJLaXRGcmFtZSogZnJhbWUsIFdlYgogCiAgICAgcmV0dXJuIGpzY0NvbnRleHRHZXRP
ckNyZWF0ZShmcmFtZS0+cHJpdi0+d2ViRnJhbWUtPmpzQ29udGV4dEZvcldvcmxkKHdlYmtpdFNj
cmlwdFdvcmxkR2V0SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCh3b3JsZCkpKS5sZWFrUmVmKCk7
CiB9CisKKy8qKgorICogd2Via2l0X2ZyYW1lX2dldF9qc192YWx1ZV9mb3JfZG9tX29iamVjdDoK
KyAqIEBmcmFtZTogYSAjV2ViS2l0RnJhbWUKKyAqIEBkb21fb2JqZWN0OiBhICNXZWJLaXRET01P
YmplY3QKKyAqCisgKiBHZXQgYSAjSlNDVmFsdWUgcmVmZXJlbmNpbmcgdGhlIGdpdmVuIERPTSBv
YmplY3QuIFRoZSB2YWx1ZSBpcyBjcmVhdGVkIGluIHRoZSBKYXZhU2NyaXB0IGV4ZWN1dGlvbgor
ICogY29udGV4dCBvZiBAZnJhbWUuCisgKgorICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiB0
aGUgI0pTQ1ZhbHVlIHJlZmVyZW5jaW5nIEBkb21fb2JqZWN0LgorICoKKyAqIFNpbmNlOiAyLjIy
CisgKi8KK0pTQ1ZhbHVlKiB3ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0
KFdlYktpdEZyYW1lKiBmcmFtZSwgV2ViS2l0RE9NT2JqZWN0KiBkb21PYmplY3QpCit7CisgICAg
cmV0dXJuIHdlYmtpdF9mcmFtZV9nZXRfanNfdmFsdWVfZm9yX2RvbV9vYmplY3RfaW5fc2NyaXB0
X3dvcmxkKGZyYW1lLCBkb21PYmplY3QsIHdlYmtpdF9zY3JpcHRfd29ybGRfZ2V0X2RlZmF1bHQo
KSk7Cit9CisKKy8qKgorICogd2Via2l0X2ZyYW1lX2dldF9qc192YWx1ZV9mb3JfZG9tX29iamVj
dF9pbl9zY3JpcHRfd29ybGQ6CisgKiBAZnJhbWU6IGEgI1dlYktpdEZyYW1lCisgKiBAZG9tX29i
amVjdDogYSAjV2ViS2l0RE9NT2JqZWN0CisgKiBAd29ybGQ6IGEgI1dlYktpdFNjcmlwdFdvcmxk
CisgKgorICogR2V0IGEgI0pTQ1ZhbHVlIHJlZmVyZW5jaW5nIHRoZSBnaXZlbiBET00gb2JqZWN0
LiBUaGUgdmFsdWUgaXMgY3JlYXRlZCBpbiB0aGUgSmF2YVNjcmlwdCBleGVjdXRpb24KKyAqIGNv
bnRleHQgb2YgQGZyYW1lIGZvciB0aGUgZ2l2ZW4gI1dlYktpdFNjcmlwdFdvcmxkLgorICoKKyAq
IFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogdGhlICNKU0NWYWx1ZSByZWZlcmVuY2luZyBAZG9t
X29iamVjdAorICoKKyAqIFNpbmNlOiAyLjIyCisgKi8KK0pTQ1ZhbHVlKiB3ZWJraXRfZnJhbWVf
Z2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0X2luX3NjcmlwdF93b3JsZChXZWJLaXRGcmFtZSog
ZnJhbWUsIFdlYktpdERPTU9iamVjdCogZG9tT2JqZWN0LCBXZWJLaXRTY3JpcHRXb3JsZCogd29y
bGQpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX0ZSQU1FKGZyYW1lKSwg
bnVsbHB0cik7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19PQkpFQ1Qo
ZG9tT2JqZWN0KSwgbnVsbHB0cik7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lT
X1NDUklQVF9XT1JMRCh3b3JsZCksIG51bGxwdHIpOworCisgICAgYXV0byogd2tXb3JsZCA9IHdl
YmtpdFNjcmlwdFdvcmxkR2V0SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCh3b3JsZCk7CisgICAg
YXV0byBqc0NvbnRleHQgPSBqc2NDb250ZXh0R2V0T3JDcmVhdGUoZnJhbWUtPnByaXYtPndlYkZy
YW1lLT5qc0NvbnRleHRGb3JXb3JsZCh3a1dvcmxkKSk7CisgICAgSlNET01XaW5kb3cqIGdsb2Jh
bE9iamVjdCA9IGZyYW1lLT5wcml2LT53ZWJGcmFtZS0+Y29yZUZyYW1lKCktPnNjcmlwdCgpLmds
b2JhbE9iamVjdCh3a1dvcmxkLT5jb3JlV29ybGQoKSk7CisgICAgSlNDOjpFeGVjU3RhdGUqIGV4
ZWMgPSBnbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKKyAgICBKU1ZhbHVlUmVmIGpzVmFsdWUg
PSBudWxscHRyOworICAgIHsKKyAgICAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayhleGVjKTsK
KyAgICAgICAgaWYgKFdFQktJVF9ET01fSVNfTk9ERShkb21PYmplY3QpKQorICAgICAgICAgICAg
anNWYWx1ZSA9IHRvUmVmKGV4ZWMsIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBXZWJLaXQ6OmNv
cmUoV0VCS0lUX0RPTV9OT0RFKGRvbU9iamVjdCkpKSk7CisgICAgfQorCisgICAgcmV0dXJuIGpz
VmFsdWUgPyBqc2NDb250ZXh0R2V0T3JDcmVhdGVWYWx1ZShqc0NvbnRleHQuZ2V0KCksIGpzVmFs
dWUpLmxlYWtSZWYoKSA6IG51bGxwdHI7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2dsaWIvV2ViS2l0V2ViUGFn
ZS5jcHAKaW5kZXggNjkzZmY3NTU2ODUyYWJlMGQ4NTAxODUxMjI5MjM4NjllMmY4YjE5YS4uNTY0
MmYxNjA3NmU3YWVlMWQyNjA0NWFlYTU4MWM1Y2YzMjA4NjFiOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9nbGliL1dlYktpdFdlYlBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ2xp
Yi9XZWJLaXRXZWJQYWdlLmNwcApAQCAtMzMsMTMgKzMzLDE4IEBACiAjaW5jbHVkZSAiV2ViSW1h
Z2UuaCIKICNpbmNsdWRlICJXZWJLaXRDb25zb2xlTWVzc2FnZVByaXZhdGUuaCIKICNpbmNsdWRl
ICJXZWJLaXRDb250ZXh0TWVudVByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01Eb2N1bWVu
dFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01FbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1
ZGUgIldlYktpdERPTU5vZGVQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RnJhbWVQcml2YXRl
LmgiCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFNjcmlwdFdv
cmxkUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCiAjaW5j
bHVkZSAiV2ViS2l0VVJJUmVzcG9uc2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViRWRp
dG9yUHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdFdlYkhpdFRlc3RSZXN1bHRQcml2YXRlLmgi
CiAjaW5jbHVkZSAiV2ViS2l0V2ViUGFnZVByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRXZWJQ
cm9jZXNzRW51bVR5cGVzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvRG9jdW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+CkBA
IC00Nyw2ICs1Miw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9GcmFtZVZpZXcuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUTUxGb3JtRWxlbWVudC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTWFpbkZyYW1lLmg+CiAjaW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTU0LDI4ICs2MCwxNiBAQAogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+CiAKLSNpZiBQTEFURk9STShHVEspCi0jaW5jbHVkZSAiV2ViS2l0RE9NRG9jdW1lbnRQ
cml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0RE9NRWxlbWVudFByaXZhdGUuaCIKLSNpbmNsdWRl
ICJXZWJLaXRET01IVE1MRm9ybUVsZW1lbnRQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0V2Vi
SGl0VGVzdFJlc3VsdFByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRXZWJQcm9jZXNzRW51bVR5
cGVzLmgiCi0jZW5kaWYKLQogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCiBlbnVtIHsKICAgICBET0NVTUVOVF9MT0FERUQsCiAgICAgU0VORF9SRVFV
RVNULAotI2lmIFBMQVRGT1JNKEdUSykKICAgICBDT05URVhUX01FTlUsCi0jZW5kaWYKICAgICBD
T05TT0xFX01FU1NBR0VfU0VOVCwKLSNpZiBQTEFURk9STShHVEspCiAgICAgRk9STV9DT05UUk9M
U19BU1NPQ0lBVEVELAogICAgIFdJTExfU1VCTUlUX0ZPUk0sCi0jZW5kaWYKIAogICAgIExBU1Rf
U0lHTkFMCiB9OwpAQCAtMzM1LDcgKzMyOSw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgYm9v
bCBnZXRDdXN0b21NZW51RnJvbURlZmF1bHRJdGVtcyhXZWJQYWdlJiwgY29uc3QgV2ViQ29yZTo6
SGl0VGVzdFJlc3VsdCYgaGl0VGVzdFJlc3VsdCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNvbnRl
eHRNZW51SXRlbT4mIGRlZmF1bHRNZW51LCBWZWN0b3I8V2ViQ29udGV4dE1lbnVJdGVtRGF0YT4m
IG5ld01lbnUsIFJlZlB0cjxBUEk6Ok9iamVjdD4mIHVzZXJEYXRhKSBvdmVycmlkZQogICAgIHsK
LSNpZiBQTEFURk9STShHVEspCiAgICAgICAgIEdSZWZQdHI8V2ViS2l0Q29udGV4dE1lbnU+IGNv
bnRleHRNZW51ID0gYWRvcHRHUmVmKHdlYmtpdENvbnRleHRNZW51Q3JlYXRlKGtpdEl0ZW1zKGRl
ZmF1bHRNZW51KSkpOwogICAgICAgICBHUmVmUHRyPFdlYktpdFdlYkhpdFRlc3RSZXN1bHQ+IHdl
YkhpdFRlc3RSZXN1bHQgPSBhZG9wdEdSZWYod2Via2l0V2ViSGl0VGVzdFJlc3VsdENyZWF0ZSho
aXRUZXN0UmVzdWx0KSk7CiAgICAgICAgIGdib29sZWFuIHJldHVyblZhbHVlOwpAQCAtMzUwLDEw
ICszNDMsNiBAQCBwcml2YXRlOgogCiAgICAgICAgIHdlYmtpdENvbnRleHRNZW51UG9wdWxhdGUo
Y29udGV4dE1lbnUuZ2V0KCksIG5ld01lbnUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKLSNlbGlm
IFBMQVRGT1JNKFdQRSkKLSAgICAgICAgLy8gRklYTUU6IHVzZSBhIHNoYXJlZCBXZWJLaXRIaXRU
ZXN0UmVzdWx0IGluIFdQRS4KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCiAgICAgfQog
CiAgICAgV2ViS2l0V2ViUGFnZSogbV93ZWJQYWdlOwpAQCAtMzc1LDcgKzM2NCw2IEBAIHByaXZh
dGU6CiAgICAgV2ViS2l0V2ViUGFnZSogbV93ZWJQYWdlOwogfTsKIAotI2lmIFBMQVRGT1JNKEdU
SykKIGNsYXNzIFBhZ2VGb3JtQ2xpZW50IGZpbmFsIDogcHVibGljIEFQSTo6SW5qZWN0ZWRCdW5k
bGU6OkZvcm1DbGllbnQgewogcHVibGljOgogICAgIGV4cGxpY2l0IFBhZ2VGb3JtQ2xpZW50KFdl
YktpdFdlYlBhZ2UqIHdlYlBhZ2UpCkBAIC00MTcsMTIgKzQwNSwxMSBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgZ19wdHJfYXJyYXlfYWRkKHRleHRGaWVsZFZhbHVlcy5nZXQoKSwgZ19zdHJkdXAo
cGFpci5zZWNvbmQudXRmOCgpLmRhdGEoKSkpOwogICAgICAgICB9CiAKLSAgICAgICAgZ19zaWdu
YWxfZW1pdChtX3dlYlBhZ2UsIHNpZ25hbHNbV0lMTF9TVUJNSVRfRk9STV0sIDAsIFdFQktJVF9E
T01fRUxFTUVOVChXZWJLaXQ6OmtpdChmb3JtRWxlbWVudCkpLCBzdGVwLCB3ZWJraXRTb3VyY2VG
cmFtZSwgd2Via2l0VGFyZ2V0RnJhbWUsIHRleHRGaWVsZE5hbWVzLmdldCgpLCB0ZXh0RmllbGRW
YWx1ZXMuZ2V0KCkpOworICAgICAgICBnX3NpZ25hbF9lbWl0KG1fd2ViUGFnZSwgc2lnbmFsc1tX
SUxMX1NVQk1JVF9GT1JNXSwgMCwgV0VCS0lUX0RPTV9FTEVNRU5UKFdlYktpdDo6a2l0KHN0YXRp
Y19jYXN0PE5vZGUqPihmb3JtRWxlbWVudCkpKSwgc3RlcCwgd2Via2l0U291cmNlRnJhbWUsIHdl
YmtpdFRhcmdldEZyYW1lLCB0ZXh0RmllbGROYW1lcy5nZXQoKSwgdGV4dEZpZWxkVmFsdWVzLmdl
dCgpKTsKICAgICB9CiAKICAgICBXZWJLaXRXZWJQYWdlKiBtX3dlYlBhZ2U7CiB9OwotI2VuZGlm
CiAKIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlBhZ2VHZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3Qs
IGd1aW50IHByb3BJZCwgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyogcGFyYW1TcGVjKQogewpA
QCAtNTA3LDcgKzQ5NCw2IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfcGFnZV9jbGFzc19pbml0
KFdlYktpdFdlYlBhZ2VDbGFzcyoga2xhc3MpCiAgICAgICAgIFdFQktJVF9UWVBFX1VSSV9SRVFV
RVNULAogICAgICAgICBXRUJLSVRfVFlQRV9VUklfUkVTUE9OU0UpOwogCi0jaWYgUExBVEZPUk0o
R1RLKQogICAgIC8qKgogICAgICAqIFdlYktpdFdlYlBhZ2U6OmNvbnRleHQtbWVudToKICAgICAg
KiBAd2ViX3BhZ2U6IHRoZSAjV2ViS2l0V2ViUGFnZSBvbiB3aGljaCB0aGUgc2lnbmFsIGlzIGVt
aXR0ZWQKQEAgLTUzNyw3ICs1MjMsNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3BhZ2VfY2xh
c3NfaW5pdChXZWJLaXRXZWJQYWdlQ2xhc3MqIGtsYXNzKQogICAgICAgICBHX1RZUEVfQk9PTEVB
TiwgMiwKICAgICAgICAgV0VCS0lUX1RZUEVfQ09OVEVYVF9NRU5VLAogICAgICAgICBXRUJLSVRf
VFlQRV9XRUJfSElUX1RFU1RfUkVTVUxUKTsKLSNlbmRpZgogCiAgICAgLyoqCiAgICAgICogV2Vi
S2l0V2ViUGFnZTo6Y29uc29sZS1tZXNzYWdlLXNlbnQ6CkBAIC01NjAsNyArNTQ1LDYgQEAgc3Rh
dGljIHZvaWQgd2Via2l0X3dlYl9wYWdlX2NsYXNzX2luaXQoV2ViS2l0V2ViUGFnZUNsYXNzKiBr
bGFzcykKICAgICAgICAgR19UWVBFX05PTkUsIDEsCiAgICAgICAgIFdFQktJVF9UWVBFX0NPTlNP
TEVfTUVTU0FHRSB8IEdfU0lHTkFMX1RZUEVfU1RBVElDX1NDT1BFKTsKIAotI2lmIFBMQVRGT1JN
KEdUSykKICAgICAvKioKICAgICAgKiBXZWJLaXRXZWJQYWdlOjpmb3JtLWNvbnRyb2xzLWFzc29j
aWF0ZWQ6CiAgICAgICogQHdlYl9wYWdlOiB0aGUgI1dlYktpdFdlYlBhZ2Ugb24gd2hpY2ggdGhl
IHNpZ25hbCBpcyBlbWl0dGVkCkBAIC02NDYsNyArNjMwLDYgQEAgc3RhdGljIHZvaWQgd2Via2l0
X3dlYl9wYWdlX2NsYXNzX2luaXQoV2ViS2l0V2ViUGFnZUNsYXNzKiBrbGFzcykKICAgICAgICAg
V0VCS0lUX1RZUEVfRlJBTUUsCiAgICAgICAgIEdfVFlQRV9QVFJfQVJSQVksCiAgICAgICAgIEdf
VFlQRV9QVFJfQVJSQVkpOwotI2VuZGlmCiB9CiAKIFdlYlBhZ2UqIHdlYmtpdFdlYlBhZ2VHZXRQ
YWdlKFdlYktpdFdlYlBhZ2UgKndlYlBhZ2UpCkBAIC02NjMsOSArNjQ2LDcgQEAgV2ViS2l0V2Vi
UGFnZSogd2Via2l0V2ViUGFnZUNyZWF0ZShXZWJQYWdlKiB3ZWJQYWdlKQogICAgIHdlYlBhZ2Ut
PnNldEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudChzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VM
b2FkZXJDbGllbnQ+KHBhZ2UpKTsKICAgICB3ZWJQYWdlLT5zZXRJbmplY3RlZEJ1bmRsZUNvbnRl
eHRNZW51Q2xpZW50KHN0ZDo6bWFrZV91bmlxdWU8UGFnZUNvbnRleHRNZW51Q2xpZW50PihwYWdl
KSk7CiAgICAgd2ViUGFnZS0+c2V0SW5qZWN0ZWRCdW5kbGVVSUNsaWVudChzdGQ6Om1ha2VfdW5p
cXVlPFBhZ2VVSUNsaWVudD4ocGFnZSkpOwotI2lmIFBMQVRGT1JNKEdUSykKICAgICB3ZWJQYWdl
LT5zZXRJbmplY3RlZEJ1bmRsZUZvcm1DbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxQYWdlRm9ybUNs
aWVudD4ocGFnZSkpOwotI2VuZGlmCiAKICAgICByZXR1cm4gcGFnZTsKIH0KQEAgLTcxNSw3ICs2
OTYsNiBAQCB2b2lkIHdlYmtpdFdlYlBhZ2VEaWRSZWNlaXZlTWVzc2FnZShXZWJLaXRXZWJQYWdl
KiBwYWdlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKIH0KIAotI2lmIFBMQVRGT1JNKEdUSykKIC8qKgogICogd2Via2l0X3dlYl9wYWdlX2dl
dF9kb21fZG9jdW1lbnQ6CiAgKiBAd2ViX3BhZ2U6IGEgI1dlYktpdFdlYlBhZ2UKQEAgLTcyNywx
NSArNzA3LDEzIEBAIHZvaWQgd2Via2l0V2ViUGFnZURpZFJlY2VpdmVNZXNzYWdlKFdlYktpdFdl
YlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgbWVzc2FnZU5hCiAgKi8KIFdlYktpdERPTURvY3Vt
ZW50KiB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2RvbV9kb2N1bWVudChXZWJLaXRXZWJQYWdlKiB3ZWJQ
YWdlKQogewotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfUEFHRSh3ZWJQ
YWdlKSwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9QQUdFKHdl
YlBhZ2UpLCBudWxscHRyKTsKIAotICAgIE1haW5GcmFtZSogY29yZUZyYW1lID0gd2ViUGFnZS0+
cHJpdi0+d2ViUGFnZS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFjb3JlRnJhbWUpCi0gICAgICAg
IHJldHVybiAwOworICAgIGlmIChhdXRvKiBjb3JlRnJhbWUgPSB3ZWJQYWdlLT5wcml2LT53ZWJQ
YWdlLT5tYWluRnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIGtpdChjb3JlRnJhbWUtPmRvY3VtZW50
KCkpOwogCi0gICAgcmV0dXJuIGtpdChjb3JlRnJhbWUtPmRvY3VtZW50KCkpOworICAgIHJldHVy
biBudWxscHRyOwogfQotI2VuZGlmCiAKIC8qKgogICogd2Via2l0X3dlYl9wYWdlX2dldF9pZDoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9ET01PYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vRE9NT2JqZWN0Q2FjaGUuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwZTc5MGY5YzhkZDQwMjdmNWJlNzM1OTQ0ZWYyMGFkNjUxMzNkYjEw
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9ET01PYmplY3RDYWNo
ZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyMzMgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQg
KEMpIDIwMTAsIDIwMTUgSWdhbGlhIFMuTC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
LSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg
aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAq
ICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAq
ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy
YWwgUHVibGljCi0gKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3
cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJET01PYmplY3RDYWNoZS5oIgotCi0j
aW5jbHVkZSA8V2ViQ29yZS9ET01XaW5kb3dQcm9wZXJ0eS5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
RG9jdW1lbnQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9GcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL05vZGUuaD4K
LSNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0jaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KLSNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgotCi1u
YW1lc3BhY2UgV2ViS2l0IHsKLQotc3RydWN0IERPTU9iamVjdENhY2hlRGF0YSB7Ci0gICAgRE9N
T2JqZWN0Q2FjaGVEYXRhKEdPYmplY3QqIHdyYXBwZXIpCi0gICAgICAgIDogb2JqZWN0KHdyYXBw
ZXIpCi0gICAgICAgICwgY2FjaGVSZWZlcmVuY2VzKDEpCi0gICAgewotICAgIH0KLQotICAgIHZv
aWQgY2xlYXJPYmplY3QoKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG9iamVjdCk7Ci0gICAgICAg
IEFTU0VSVChjYWNoZVJlZmVyZW5jZXMgPj0gMSk7Ci0gICAgICAgIEFTU0VSVChvYmplY3QtPnJl
Zl9jb3VudCA+PSAxKTsKLQotICAgICAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3QgdW5yZWYgbW9y
ZSB0aGFuIHRoZSByZWZlcmVuY2VzIHRoZSBvYmplY3QgYWN0dWFsbHkgaGFzLiBJdCBjYW4gaGFw
cGVuIHRoYXQgdXNlcgotICAgICAgICAvLyB1bnJlZmZlZCBhIHJlZmVyZW5jZSBvd25lZCBieSB0
aGUgY2FjaGUuCi0gICAgICAgIGNhY2hlUmVmZXJlbmNlcyA9IHN0ZDo6bWluKHN0YXRpY19jYXN0
PHVuc2lnbmVkPihvYmplY3QtPnJlZl9jb3VudCksIGNhY2hlUmVmZXJlbmNlcyk7Ci0gICAgICAg
IEdSZWZQdHI8R09iamVjdD4gcHJvdGVjdChvYmplY3QpOwotICAgICAgICBkbyB7Ci0gICAgICAg
ICAgICBnX29iamVjdF91bnJlZihvYmplY3QpOwotICAgICAgICB9IHdoaWxlICgtLWNhY2hlUmVm
ZXJlbmNlcyk7Ci0gICAgICAgIG9iamVjdCA9IG51bGxwdHI7Ci0gICAgfQotCi0gICAgdm9pZCog
cmVmT2JqZWN0KCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChvYmplY3QpOwotCi0gICAgICAgIGNh
Y2hlUmVmZXJlbmNlcysrOwotICAgICAgICByZXR1cm4gZ19vYmplY3RfcmVmKG9iamVjdCk7Ci0g
ICAgfQotCi0gICAgR09iamVjdCogb2JqZWN0OwotICAgIHVuc2lnbmVkIGNhY2hlUmVmZXJlbmNl
czsKLX07Ci0KLWNsYXNzIERPTU9iamVjdENhY2hlRnJhbWVPYnNlcnZlcjsKLXR5cGVkZWYgSGFz
aE1hcDxXZWJDb3JlOjpGcmFtZSosIHN0ZDo6dW5pcXVlX3B0cjxET01PYmplY3RDYWNoZUZyYW1l
T2JzZXJ2ZXI+PiBET01PYmplY3RDYWNoZUZyYW1lT2JzZXJ2ZXJNYXA7Ci0KLXN0YXRpYyBET01P
YmplY3RDYWNoZUZyYW1lT2JzZXJ2ZXJNYXAmIGRvbU9iamVjdENhY2hlRnJhbWVPYnNlcnZlcnMo
KQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxET01PYmplY3RDYWNoZUZyYW1lT2JzZXJ2
ZXJNYXA+IG1hcDsKLSAgICByZXR1cm4gbWFwOwotfQotCi1zdGF0aWMgRE9NT2JqZWN0Q2FjaGVG
cmFtZU9ic2VydmVyJiBnZXRPckNyZWF0ZURPTU9iamVjdENhY2hlRnJhbWVPYnNlcnZlcihXZWJD
b3JlOjpGcmFtZSYgZnJhbWUpCi17Ci0gICAgRE9NT2JqZWN0Q2FjaGVGcmFtZU9ic2VydmVyTWFw
OjpBZGRSZXN1bHQgcmVzdWx0ID0gZG9tT2JqZWN0Q2FjaGVGcmFtZU9ic2VydmVycygpLmFkZCgm
ZnJhbWUsIG51bGxwdHIpOwotICAgIGlmIChyZXN1bHQuaXNOZXdFbnRyeSkKLSAgICAgICAgcmVz
dWx0Lml0ZXJhdG9yLT52YWx1ZSA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NT2JqZWN0Q2FjaGVGcmFt
ZU9ic2VydmVyPihmcmFtZSk7Ci0gICAgcmV0dXJuICpyZXN1bHQuaXRlcmF0b3ItPnZhbHVlOwot
fQotCi1jbGFzcyBET01PYmplY3RDYWNoZUZyYW1lT2JzZXJ2ZXIgZmluYWw6IHB1YmxpYyBXZWJD
b3JlOjpGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIgewotcHVibGljOgotICAgIERPTU9iamVjdENh
Y2hlRnJhbWVPYnNlcnZlcihXZWJDb3JlOjpGcmFtZSYgZnJhbWUpCi0gICAgICAgIDogRnJhbWVE
ZXN0cnVjdGlvbk9ic2VydmVyKCZmcmFtZSkKLSAgICB7Ci0gICAgfQotCi0gICAgfkRPTU9iamVj
dENhY2hlRnJhbWVPYnNlcnZlcigpCi0gICAgewotICAgICAgICBBU1NFUlQobV9vYmplY3RzLmlz
RW1wdHkoKSk7Ci0gICAgfQotCi0gICAgdm9pZCBhZGRPYmplY3RDYWNoZURhdGEoRE9NT2JqZWN0
Q2FjaGVEYXRhJiBkYXRhKQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX29iamVjdHMuY29udGFp
bnMoJmRhdGEpKTsKLQotICAgICAgICBXZWJDb3JlOjpET01XaW5kb3cqIGRvbVdpbmRvdyA9IG1f
ZnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpOwotICAgICAgICBpZiAoZG9tV2luZG93ICYm
ICghbV9kb21XaW5kb3dPYnNlcnZlciB8fCBtX2RvbVdpbmRvd09ic2VydmVyLT5kb21XaW5kb3co
KSAhPSBkb21XaW5kb3cpKSB7Ci0gICAgICAgICAgICAvLyBOZXcgRE9NV2luZG93LCBjbGVhciB0
aGUgY2FjaGUgYW5kIGNyZWF0ZSBhIG5ldyBET01XaW5kb3dPYnNlcnZlci4KLSAgICAgICAgICAg
IGNsZWFyKCk7Ci0gICAgICAgICAgICBtX2RvbVdpbmRvd09ic2VydmVyID0gc3RkOjptYWtlX3Vu
aXF1ZTxET01XaW5kb3dPYnNlcnZlcj4oKm1fZnJhbWUsICp0aGlzLCBkb21XaW5kb3cpOwotICAg
ICAgICB9Ci0KLSAgICAgICAgbV9vYmplY3RzLmFwcGVuZCgmZGF0YSk7Ci0gICAgICAgIGdfb2Jq
ZWN0X3dlYWtfcmVmKGRhdGEub2JqZWN0LCBET01PYmplY3RDYWNoZUZyYW1lT2JzZXJ2ZXI6Om9i
amVjdEZpbmFsaXplZENhbGxiYWNrLCB0aGlzKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgY2xh
c3MgRE9NV2luZG93T2JzZXJ2ZXIgZmluYWw6IHB1YmxpYyBXZWJDb3JlOjpET01XaW5kb3dQcm9w
ZXJ0eSB7Ci0gICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotICAgIHB1YmxpYzoKLSAg
ICAgICAgRE9NV2luZG93T2JzZXJ2ZXIoV2ViQ29yZTo6RnJhbWUmIGZyYW1lLCBET01PYmplY3RD
YWNoZUZyYW1lT2JzZXJ2ZXImIGZyYW1lT2JzZXJ2ZXIsIFdlYkNvcmU6OkRPTVdpbmRvdyogd2lu
ZG93KQotICAgICAgICAgICAgOiBET01XaW5kb3dQcm9wZXJ0eSgmZnJhbWUpCi0gICAgICAgICAg
ICAsIG1fZnJhbWVPYnNlcnZlcihmcmFtZU9ic2VydmVyKQotICAgICAgICAgICAgLCBtX2RvbVdp
bmRvdyh3aW5kb3cpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChtX2RvbVdpbmRvdyk7
Ci0gICAgICAgIH0KLQotICAgICAgICB2aXJ0dWFsIH5ET01XaW5kb3dPYnNlcnZlcigpCi0gICAg
ICAgIHsKLSAgICAgICAgfQotCi0gICAgICAgIFdlYkNvcmU6OkRPTVdpbmRvdyogZG9tV2luZG93
KCkgY29uc3QgeyByZXR1cm4gbV9kb21XaW5kb3c7IH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAg
IHZvaWQgd2lsbERldGFjaEdsb2JhbE9iamVjdEZyb21GcmFtZSgpIG92ZXJyaWRlCi0gICAgICAg
IHsKLSAgICAgICAgICAgIC8vIENsZWFyIHRoZSBET01XaW5kb3dQcm9wZXJ0eSBmaXJzdCwgYW5k
IHRoZW4gbm90aWZ5IHRoZSBGcmFtZSBvYnNlcnZlci4KLSAgICAgICAgICAgIERPTVdpbmRvd1By
b3BlcnR5Ojp3aWxsRGV0YWNoR2xvYmFsT2JqZWN0RnJvbUZyYW1lKCk7Ci0gICAgICAgICAgICBt
X2ZyYW1lT2JzZXJ2ZXIud2lsbERldGFjaEdsb2JhbE9iamVjdEZyb21GcmFtZSgpOwotICAgICAg
ICB9Ci0KLSAgICAgICAgRE9NT2JqZWN0Q2FjaGVGcmFtZU9ic2VydmVyJiBtX2ZyYW1lT2JzZXJ2
ZXI7Ci0gICAgICAgIFdlYkNvcmU6OkRPTVdpbmRvdyogbV9kb21XaW5kb3c7Ci0gICAgfTsKLQot
ICAgIHN0YXRpYyB2b2lkIG9iamVjdEZpbmFsaXplZENhbGxiYWNrKGdwb2ludGVyIHVzZXJEYXRh
LCBHT2JqZWN0KiBmaW5hbGl6ZWRPYmplY3QpCi0gICAgewotICAgICAgICBET01PYmplY3RDYWNo
ZUZyYW1lT2JzZXJ2ZXIqIG9ic2VydmVyID0gc3RhdGljX2Nhc3Q8RE9NT2JqZWN0Q2FjaGVGcmFt
ZU9ic2VydmVyKj4odXNlckRhdGEpOwotICAgICAgICBvYnNlcnZlci0+bV9vYmplY3RzLnJlbW92
ZUZpcnN0TWF0Y2hpbmcoW2ZpbmFsaXplZE9iamVjdF0oRE9NT2JqZWN0Q2FjaGVEYXRhKiBkYXRh
KSB7Ci0gICAgICAgICAgICByZXR1cm4gZGF0YS0+b2JqZWN0ID09IGZpbmFsaXplZE9iamVjdDsK
LSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgdm9pZCBjbGVhcigpCi0gICAgewotICAgICAgICBp
ZiAobV9vYmplY3RzLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBh
dXRvIG9iamVjdHMgPSBXVEZNb3ZlKG1fb2JqZWN0cyk7Ci0KLSAgICAgICAgLy8gRGVsZXRpbmcg
b2YgRE9NIHdyYXBwZXJzIG1pZ2h0IGVuZCB1cCBkZWxldGluZyB0aGUgd3JhcHBlZCBjb3JlIG9i
amVjdCB3aGljaCBjb3VsZCBjYXVzZSBzb21lIHByb2JsZW1zCi0gICAgICAgIC8vIGZvciBleGFt
cGxlIGlmIGEgRG9jdW1lbnQgaXMgZGVsZXRlZCBkdXJpbmcgdGhlIGZyYW1lIGRlc3RydWN0aW9u
LCBzbyB3ZSByZW1vdmUgdGhlIHdlYWsgcmVmZXJlbmNlcyBub3cKLSAgICAgICAgLy8gYW5kIGRl
bGV0ZSB0aGUgb2JqZWN0cyBvbiBuZXh0IHJ1biBsb29wIGl0ZXJhdGlvbi4gU2VlIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE3MDAuCi0gICAgICAgIGZvciAoYXV0
byogZGF0YSA6IG9iamVjdHMpCi0gICAgICAgICAgICBnX29iamVjdF93ZWFrX3VucmVmKGRhdGEt
Pm9iamVjdCwgRE9NT2JqZWN0Q2FjaGVGcmFtZU9ic2VydmVyOjpvYmplY3RGaW5hbGl6ZWRDYWxs
YmFjaywgdGhpcyk7Ci0KLSAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtvYmplY3Rz
XSB7Ci0gICAgICAgICAgICBmb3IgKGF1dG8qIGRhdGEgOiBvYmplY3RzKQotICAgICAgICAgICAg
ICAgIGRhdGEtPmNsZWFyT2JqZWN0KCk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIHZvaWQg
d2lsbERldGFjaFBhZ2UoKSBvdmVycmlkZQotICAgIHsKLSAgICAgICAgY2xlYXIoKTsKLSAgICB9
Ci0KLSAgICB2b2lkIGZyYW1lRGVzdHJveWVkKCkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIGNs
ZWFyKCk7Ci0gICAgICAgIFdlYkNvcmU6OkZyYW1lKiBmcmFtZSA9IG1fZnJhbWU7Ci0gICAgICAg
IEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcjo6ZnJhbWVEZXN0cm95ZWQoKTsKLSAgICAgICAgZG9t
T2JqZWN0Q2FjaGVGcmFtZU9ic2VydmVycygpLnJlbW92ZShmcmFtZSk7Ci0gICAgfQotCi0gICAg
dm9pZCB3aWxsRGV0YWNoR2xvYmFsT2JqZWN0RnJvbUZyYW1lKCkKLSAgICB7Ci0gICAgICAgIGNs
ZWFyKCk7Ci0gICAgICAgIG1fZG9tV2luZG93T2JzZXJ2ZXIgPSBudWxscHRyOwotICAgIH0KLQot
ICAgIFZlY3RvcjxET01PYmplY3RDYWNoZURhdGEqLCA4PiBtX29iamVjdHM7Ci0gICAgc3RkOjp1
bmlxdWVfcHRyPERPTVdpbmRvd09ic2VydmVyPiBtX2RvbVdpbmRvd09ic2VydmVyOwotfTsKLQot
dHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBzdGQ6OnVuaXF1ZV9wdHI8RE9NT2JqZWN0Q2FjaGVEYXRh
Pj4gRE9NT2JqZWN0TWFwOwotCi1zdGF0aWMgRE9NT2JqZWN0TWFwJiBkb21PYmplY3RzKCkKLXsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RE9NT2JqZWN0TWFwPiBzdGF0aWNET01PYmplY3Rz
OwotICAgIHJldHVybiBzdGF0aWNET01PYmplY3RzOwotfQotCi12b2lkIERPTU9iamVjdENhY2hl
Ojpmb3JnZXQodm9pZCogb2JqZWN0SGFuZGxlKQotewotICAgIEFTU0VSVChkb21PYmplY3RzKCku
Y29udGFpbnMob2JqZWN0SGFuZGxlKSk7Ci0gICAgZG9tT2JqZWN0cygpLnJlbW92ZShvYmplY3RI
YW5kbGUpOwotfQotCi12b2lkKiBET01PYmplY3RDYWNoZTo6Z2V0KHZvaWQqIG9iamVjdEhhbmRs
ZSkKLXsKLSAgICBET01PYmplY3RDYWNoZURhdGEqIGRhdGEgPSBkb21PYmplY3RzKCkuZ2V0KG9i
amVjdEhhbmRsZSk7Ci0gICAgcmV0dXJuIGRhdGEgPyBkYXRhLT5yZWZPYmplY3QoKSA6IG51bGxw
dHI7Ci19Ci0KLXZvaWQgRE9NT2JqZWN0Q2FjaGU6OnB1dCh2b2lkKiBvYmplY3RIYW5kbGUsIHZv
aWQqIHdyYXBwZXIpCi17Ci0gICAgRE9NT2JqZWN0TWFwOjpBZGRSZXN1bHQgcmVzdWx0ID0gZG9t
T2JqZWN0cygpLmFkZChvYmplY3RIYW5kbGUsIG51bGxwdHIpOwotICAgIGlmIChyZXN1bHQuaXNO
ZXdFbnRyeSkKLSAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IHN0ZDo6bWFrZV91bmlx
dWU8RE9NT2JqZWN0Q2FjaGVEYXRhPihHX09CSkVDVCh3cmFwcGVyKSk7Ci19Ci0KLXZvaWQgRE9N
T2JqZWN0Q2FjaGU6OnB1dChXZWJDb3JlOjpOb2RlKiBvYmplY3RIYW5kbGUsIHZvaWQqIHdyYXBw
ZXIpCi17Ci0gICAgRE9NT2JqZWN0TWFwOjpBZGRSZXN1bHQgcmVzdWx0ID0gZG9tT2JqZWN0cygp
LmFkZChvYmplY3RIYW5kbGUsIG51bGxwdHIpOwotICAgIGlmICghcmVzdWx0LmlzTmV3RW50cnkp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBzdGQ6Om1h
a2VfdW5pcXVlPERPTU9iamVjdENhY2hlRGF0YT4oR19PQkpFQ1Qod3JhcHBlcikpOwotICAgIGlm
IChXZWJDb3JlOjpGcmFtZSogZnJhbWUgPSBvYmplY3RIYW5kbGUtPmRvY3VtZW50KCkuZnJhbWUo
KSkKLSAgICAgICAgZ2V0T3JDcmVhdGVET01PYmplY3RDYWNoZUZyYW1lT2JzZXJ2ZXIoKmZyYW1l
KS5hZGRPYmplY3RDYWNoZURhdGEoKnJlc3VsdC5pdGVyYXRvci0+dmFsdWUpOwotfQotCi19CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vRE9NT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9ET01PYmplY3RDYWNoZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlM2U5ZmMzZWM4NzZmNjcxY2JjZTA5NjZkYTA1MWY1ZjdiZTYyN2JjLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9ET01PYmplY3RDYWNoZS5oCisr
KyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMTAg
SWdhbGlhIFMuTC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0g
KgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAg
TGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJl
ZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICovCi0KLSNpZm5kZWYgRE9N
T2JqZWN0Q2FjaGVfaAotI2RlZmluZSBET01PYmplY3RDYWNoZV9oCi0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLWNsYXNzIE5vZGU7Ci19OwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLWNsYXNzIERPTU9i
amVjdENhY2hlIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgdm9pZCogZ2V0KHZvaWQqIG9iamVjdEhh
bmRsZSk7Ci0gICAgc3RhdGljIHZvaWQgcHV0KHZvaWQqIG9iamVjdEhhbmRsZSwgdm9pZCogd3Jh
cHBlcik7Ci0gICAgc3RhdGljIHZvaWQgcHV0KFdlYkNvcmU6Ok5vZGUqIG9iamVjdEhhbmRsZSwg
dm9pZCogd3JhcHBlcik7Ci0gICAgc3RhdGljIHZvaWQgZm9yZ2V0KHZvaWQqIG9iamVjdEhhbmRs
ZSk7Ci19OwotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL0dPYmplY3RF
dmVudExpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9HT2JqZWN0RXZlbnRMaXN0ZW5lci5jcHAKaW5kZXggNTRlZmJjNzAwMDA5
MzhkNzVkM2M5Njc5NWFiMmM5MDU3ZmUzZWUwNy4uOTk0YjlhY2YyNWY1YTE3MDI4YmM3NzYyZmMw
Mzg5ZWRlY2Y1YjJmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL0dPYmplY3RFdmVudExpc3RlbmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vR09iamVjdEV2
ZW50TGlzdGVuZXIuY3BwCkBAIC02Niw2ICs2Niw3IEBAIHZvaWQgR09iamVjdEV2ZW50TGlzdGVu
ZXI6OmdvYmplY3REZXN0cm95ZWQoKQogCiB2b2lkIEdPYmplY3RFdmVudExpc3RlbmVyOjpoYW5k
bGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgRXZlbnQmIGV2ZW50KQogeworICAgIEdf
R05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwogICAgIEdWYWx1ZSBwYXJhbWV0ZXJzWzJd
ID0geyBHX1ZBTFVFX0lOSVQsIEdfVkFMVUVfSU5JVCB9OwogICAgIGdfdmFsdWVfaW5pdCgmcGFy
YW1ldGVyc1swXSwgV0VCS0lUX0RPTV9UWVBFX0VWRU5UX1RBUkdFVCk7CiAgICAgZ192YWx1ZV9z
ZXRfb2JqZWN0KCZwYXJhbWV0ZXJzWzBdLCBtX3RhcmdldCk7CkBAIC03Nyw2ICs3OCw3IEBAIHZv
aWQgR09iamVjdEV2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBFdmVudCYgZXZlbnQpCiAgICAgZ19jbG9zdXJlX2ludm9rZShtX2hhbmRsZXIuZ2V0KCks
IDAsIDIsIHBhcmFtZXRlcnMsIE5VTEwpOwogICAgIGdfdmFsdWVfdW5zZXQocGFyYW1ldGVycyAr
IDApOwogICAgIGdfdmFsdWVfdW5zZXQocGFyYW1ldGVycyArIDEpOworICAgIEdfR05VQ19FTkRf
SUdOT1JFX0RFUFJFQ0FUSU9OUzsKIH0KIAogYm9vbCBHT2JqZWN0RXZlbnRMaXN0ZW5lcjo6b3Bl
cmF0b3I9PShjb25zdCBFdmVudExpc3RlbmVyJiBsaXN0ZW5lcikgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2Jq
ZWN0Tm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb24uY3BwCmlu
ZGV4IGEwNjY1YjU4NmVhMWJkMjc3YmE5YjZmMTk5MDM5NDBjYjdmZTM3YzYuLmJhMDlkODgwM2M4
ZTc3ZjE5NGE3Y2I1MjdlYjhjNzE5OWI3ZmQyOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2JqZWN0Tm9kZUZpbHRlckNv
bmRpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL0dPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uLmNwcApAQCAtMjQsNiArMjQs
OCBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAorR19HTlVDX0JFR0lOX0lHTk9SRV9E
RVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBHT2JqZWN0Tm9kZUZpbHRlckNv
bmRpdGlvbjo6fkdPYmplY3ROb2RlRmlsdGVyQ29uZGl0aW9uKCkKQEAgLTM3LDMgKzM5LDQgQEAg
dW5zaWduZWQgc2hvcnQgR09iamVjdE5vZGVGaWx0ZXJDb25kaXRpb246OmFjY2VwdE5vZGUoTm9k
ZSYgbm9kZSkgY29uc3QKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CitHX0dOVUNfRU5EX0lH
Tk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vR09iamVjdFhQYXRoTlNSZXNvbHZlci5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vR09iamVj
dFhQYXRoTlNSZXNvbHZlci5jcHAKaW5kZXggYTRkZjgyY2JlMzdmZDM1MGMxY2ZkOTdjN2I3YzEz
MDMxOTMwOTI3Yy4uOTA1ZTdiMjk3NDQ4MGI3NWMxY2UwNzE1OTY4NDIxMGQ1ZWIyM2MyNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL0dPYmplY3RYUGF0aE5TUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9HT2JqZWN0WFBhdGhOU1Jlc29sdmVyLmNw
cApAQCAtMjIsNiArMjIsOCBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNB
VElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBHT2JqZWN0WFBhdGhOU1Jlc29sdmVyOjp+
R09iamVjdFhQYXRoTlNSZXNvbHZlcigpCkBAIC0zNCwzICszNiw0IEBAIFN0cmluZyBHT2JqZWN0
WFBhdGhOU1Jlc29sdmVyOjpsb29rdXBOYW1lc3BhY2VVUkkoY29uc3QgU3RyaW5nJiBwcmVmaXgp
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJ
T05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUF0dHIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUF0dHIuY3BwCmluZGV4IDY4MGIx
NjU5MjAwZWEwZWYwODE4NjE2OGY2ZjI0MDgxZGVmMjgxMjcuLjZiZDlhZWVkOGJjM2FjYTczMzA2
NzlhYjVkNjYzMzdkMDVjYWExY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01BdHRyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
QXR0ci5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsK
KwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUF0dHIqIGtpdChXZWJDb3JlOjpBdHRy
KiBvYmopCkBAIC0zMDcsMyArMzA5LDQgQEAgZ2NoYXIqIHdlYmtpdF9kb21fYXR0cl9nZXRfbG9j
YWxfbmFtZShXZWJLaXRET01BdHRyKiBzZWxmKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0df
R05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01BdHRyLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NQXR0ci5oCmluZGV4IDk4NTk3ZmE2OTAwZGZhMjA3MzQyNDZmMTk0YWNjOWQxNGU1YmE3NGMu
LjcxYzRhMTExMTBmYmY1MDJjYzg5YTY0OWY4NjA3ZGNmYWQ4ZDVjMDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01BdHRyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUF0dHIuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktp
dERPTUF0dHJDbGFzcyB7CiAgICAgV2ViS2l0RE9NTm9kZUNsYXNzIHBhcmVudF9jbGFzczsKIH07
CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9t
X2F0dHJfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2Rv
bV9hdHRyX2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUF0dHIKICAqCiAg
KiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJF
Q0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2F0dHJfZ2V0X25hbWUoV2ViS2l0RE9NQXR0ciogc2Vs
Zik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9hdHRyX2dldF9uYW1lKFdl
YktpdERPTUF0dHIqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUF0dHIKICAqCiAgKiBS
ZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQ
UkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9hdHRyX2dldF9zcGVjaWZpZWQoV2ViS2l0RE9N
QXR0ciogc2VsZik7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0X2RvbV9hdHRyX2dl
dF9zcGVjaWZpZWQoV2ViS2l0RE9NQXR0ciogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
QXR0cgogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitX
RUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fYXR0cl9nZXRfdmFsdWUoV2ViS2l0
RE9NQXR0ciogc2VsZik7CiAKIC8qKgpAQCAtODEsOCArODcsMTAgQEAgd2Via2l0X2RvbV9hdHRy
X2dldF92YWx1ZShXZWJLaXRET01BdHRyKiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAq
IEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX2F0dHJfc2V0X3ZhbHVlKFdlYktpdERPTUF0dHIqIHNlbGYs
IGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTkwLDggKzk4
LDEwIEBAIHdlYmtpdF9kb21fYXR0cl9zZXRfdmFsdWUoV2ViS2l0RE9NQXR0ciogc2VsZiwgY29u
c3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NQXR0
cgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJL
aXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9hdHRyX2dldF9vd25lcl9lbGVtZW50KFdlYktpdERP
TUF0dHIqIHNlbGYpOwogCiAvKioKQEAgLTEwMSw4ICsxMTEsMTAgQEAgd2Via2l0X2RvbV9hdHRy
X2dldF9vd25lcl9lbGVtZW50KFdlYktpdERPTUF0dHIqIHNlbGYpOwogICogUmV0dXJuczogQSAj
Z2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2F0dHJfZ2V0X25hbWVzcGFjZV91cmkoV2Vi
S2l0RE9NQXR0ciogc2VsZik7CiAKIC8qKgpAQCAtMTEyLDggKzEyNCwxMCBAQCB3ZWJraXRfZG9t
X2F0dHJfZ2V0X25hbWVzcGFjZV91cmkoV2ViS2l0RE9NQXR0ciogc2VsZik7CiAgKiBSZXR1cm5z
OiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitX
RUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fYXR0cl9nZXRfcHJlZml4KFdlYktp
dERPTUF0dHIqIHNlbGYpOwogCiAvKioKQEAgLTEyMyw4ICsxMzcsMTAgQEAgd2Via2l0X2RvbV9h
dHRyX2dldF9wcmVmaXgoV2ViS2l0RE9NQXR0ciogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnY2hh
cgogICoKICAqIFNpbmNlOiAyLjE0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fYXR0cl9nZXRfbG9jYWxfbmFtZShXZWJLaXRET01B
dHRyKiBzZWxmKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01CbG9iLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01CbG9iLmNwcAppbmRleCAwOWQ0YWM2NGZmMGNkOTYzZDk1ODY2MmZkZTAzZjE1OTM5ZTg1N2Iy
Li42ZDg0YzIzOGQzZTE1YzJhY2EwNWM2MTJiNThhMmM0ODkzN2I2OTYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NQmxvYi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUJsb2IuY3BwCkBAIC0zNiw2ICszNiw4IEBAIHR5cGVkZWYg
c3RydWN0IF9XZWJLaXRET01CbG9iUHJpdmF0ZSB7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkJsb2I+
IGNvcmVPYmplY3Q7CiB9IFdlYktpdERPTUJsb2JQcml2YXRlOwogCitHX0dOVUNfQkVHSU5fSUdO
T1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUJsb2Iq
IGtpdChXZWJDb3JlOjpCbG9iKiBvYmopCkBAIC0xMzcsMyArMTM5LDQgQEAgZ3VpbnQ2NCB3ZWJr
aXRfZG9tX2Jsb2JfZ2V0X3NpemUoV2ViS2l0RE9NQmxvYiogc2VsZikKICAgICBndWludDY0IHJl
c3VsdCA9IGl0ZW0tPnNpemUoKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQorR19HTlVDX0VORF9J
R05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUJsb2IuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01CbG9iLmgK
aW5kZXggYWM1MDgwMTRlMTBlMDFmZmI1YWRiOTZjNTczODVhOWY2OTc5MWJkZi4uYTNmYjc3ZWM5
Nzk1OWRjYmJlYzFjMDgxMGI3ZTBmMjVjZTk0ZjEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUJsb2IuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NQmxvYi5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NQmxvYkNs
YXNzIHsKICAgICBXZWJLaXRET01PYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJL
SVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9ibG9iX2dl
dF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21fYmxvYl9n
ZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01CbG9iCiAgKgogICogUmV0dXJu
czogQSAjZ3VpbnQ2NAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGd1aW50NjQKK1dFQktJVF9ERVBSRUNBVEVE
IGd1aW50NjQKIHdlYmtpdF9kb21fYmxvYl9nZXRfc2l6ZShXZWJLaXRET01CbG9iKiBzZWxmKTsK
IAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DREFUQVNlY3Rpb24uY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNE
QVRBU2VjdGlvbi5jcHAKaW5kZXggZTAxYzYxZmUzMjU5MjM0MTdhZjliMTY3ZmNjMDIwMjc0YWNi
ZGY0Ni4uMDcyYzRkMGQ0MGYzMzJiZmRjYmQ0MDdjZjg4ZDBmMDkyOWU0OWY2MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUNEQVRBU2VjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNEQVRBU2VjdGlvbi5jcHAKQEAgLTM1
LDYgKzM1LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIFdlYktpdERPTUNEQVRBU2VjdGlvbioga2l0KFdlYkNvcmU6OkNEQVRBU2VjdGlv
biogb2JqKQpAQCAtMTAyLDMgKzEwNCw0IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fY2RhdGFf
c2VjdGlvbl9pbml0KFdlYktpdERPTUNEQVRBU2VjdGlvbiogcmVxdWVzdCkKICAgICBVTlVTRURf
UEFSQU0ocmVxdWVzdCk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01DREFUQVNlY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DREFUQVNlY3Rpb24uaAppbmRleCA2
ZjQyNDg5Mjc3ODA5YjczNDM2YTc2ZGUzNTlkYjYyMmNhMjA4MTVkLi4xMDQ2OGY4OGQ5OGVmOWM2
MTZiODQzOTRkZTAxZjMzOTQ5NjM0YmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ0RBVEFTZWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUNEQVRBU2VjdGlvbi5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0
RE9NQ0RBVEFTZWN0aW9uQ2xhc3MgewogICAgIFdlYktpdERPTVRleHRDbGFzcyBwYXJlbnRfY2xh
c3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Vi
a2l0X2RvbV9jZGF0YV9zZWN0aW9uX2dldF90eXBlKHZvaWQpOwogCiBHX0VORF9ERUNMUwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUNTU1J1bGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1J1bGUuY3BwCmluZGV4IDM5NWNjODZk
MTU4ZDEzMDE3M2UwNWFhOTIzY2VjNDQ4YjdkOTJmOTYuLjNmOGJmZTY2YjkyYjJjY2JiNTkwZTFl
NDAzOWI5NWVkMzg3MDI0YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NSdWxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
Q1NTUnVsZS5jcHAKQEAgLTM4LDYgKzM4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTUNT
U1J1bGVQcml2YXRlIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6Q1NTUnVsZT4gY29yZU9iamVjdDsK
IH0gV2ViS2l0RE9NQ1NTUnVsZVByaXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVD
QVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NQ1NTUnVsZSoga2l0KFdl
YkNvcmU6OkNTU1J1bGUqIG9iaikKQEAgLTI0MCwzICsyNDIsNCBAQCBXZWJLaXRET01DU1NSdWxl
KiB3ZWJraXRfZG9tX2Nzc19ydWxlX2dldF9wYXJlbnRfcnVsZShXZWJLaXRET01DU1NSdWxlKiBz
ZWxmKQogICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKIH0KIAor
R19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1J1bGUu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01DU1NSdWxlLmgKaW5kZXggNDMwZjZmNjc0ZDgyMmI4ODhkYzMwMTBhNDk4ZGE1MjJl
MGE0YmE5OC4uNTliNTgwYTdmNjFhYjI4YjBkNjBkMTRkMWM1YThiMzBjNWM2YjA0MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUNTU1J1bGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTUnVsZS5oCkBAIC0zNyw0MSArMzcsNTkg
QEAgR19CRUdJTl9ERUNMUwogI2RlZmluZSBXRUJLSVRfRE9NX0lTX0NTU19SVUxFX0NMQVNTKGts
YXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9ET01fVFlQRV9D
U1NfUlVMRSkpCiAjZGVmaW5lIFdFQktJVF9ET01fQ1NTX1JVTEVfR0VUX0NMQVNTKG9iaikgIChH
X1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX0RPTV9UWVBFX0NTU19SVUxF
LCBXZWJLaXRET01DU1NSdWxlQ2xhc3MpKQogCisjaWZuZGVmIFdFQktJVF9ESVNBQkxFX0RFUFJF
Q0FURUQKKwogLyoqCiAgKiBXRUJLSVRfRE9NX0NTU19SVUxFX1VOS05PV05fUlVMRToKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwog
I2RlZmluZSBXRUJLSVRfRE9NX0NTU19SVUxFX1VOS05PV05fUlVMRSAwCiAKIC8qKgogICogV0VC
S0lUX0RPTV9DU1NfUlVMRV9TVFlMRV9SVUxFOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fQ1NT
X1JVTEVfU1RZTEVfUlVMRSAxCiAKIC8qKgogICogV0VCS0lUX0RPTV9DU1NfUlVMRV9DSEFSU0VU
X1JVTEU6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9DU1NfUlVMRV9DSEFSU0VUX1JVTEUgMgog
CiAvKioKICAqIFdFQktJVF9ET01fQ1NTX1JVTEVfSU1QT1JUX1JVTEU6CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUg
V0VCS0lUX0RPTV9DU1NfUlVMRV9JTVBPUlRfUlVMRSAzCiAKIC8qKgogICogV0VCS0lUX0RPTV9D
U1NfUlVMRV9NRURJQV9SVUxFOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fQ1NTX1JVTEVfTUVE
SUFfUlVMRSA0CiAKIC8qKgogICogV0VCS0lUX0RPTV9DU1NfUlVMRV9GT05UX0ZBQ0VfUlVMRToK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0NTU19SVUxFX0ZPTlRfRkFDRV9SVUxFIDUKIAogLyoq
CiAgKiBXRUJLSVRfRE9NX0NTU19SVUxFX1BBR0VfUlVMRToKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRf
RE9NX0NTU19SVUxFX1BBR0VfUlVMRSA2CiAKKyNlbmRpZiAvKiBXRUJLSVRfRElTQUJMRV9ERVBS
RUNBVEVEICovCisKIHN0cnVjdCBfV2ViS2l0RE9NQ1NTUnVsZSB7CiAgICAgV2ViS2l0RE9NT2Jq
ZWN0IHBhcmVudF9pbnN0YW5jZTsKIH07CkBAIC04MCw3ICs5OCw3IEBAIHN0cnVjdCBfV2ViS2l0
RE9NQ1NTUnVsZUNsYXNzIHsKICAgICBXZWJLaXRET01PYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7
CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0
X2RvbV9jc3NfcnVsZV9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC04OCw4ICsxMDYsMTAgQEAg
d2Via2l0X2RvbV9jc3NfcnVsZV9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01DU1NSdWxlCiAgKgogICogUmV0dXJuczogQSAjZ3VzaG9ydAorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGd1
c2hvcnQKK1dFQktJVF9ERVBSRUNBVEVEIGd1c2hvcnQKIHdlYmtpdF9kb21fY3NzX3J1bGVfZ2V0
X3J1bGVfdHlwZShXZWJLaXRET01DU1NSdWxlKiBzZWxmKTsKIAogLyoqCkBAIC05Nyw4ICsxMTcs
MTAgQEAgd2Via2l0X2RvbV9jc3NfcnVsZV9nZXRfcnVsZV90eXBlKFdlYktpdERPTUNTU1J1bGUq
IHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUNTU1J1bGUKICAqCiAgKiBSZXR1cm5zOiBB
ICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIq
CiB3ZWJraXRfZG9tX2Nzc19ydWxlX2dldF9jc3NfdGV4dChXZWJLaXRET01DU1NSdWxlKiBzZWxm
KTsKIAogLyoqCkBAIC0xMDcsOCArMTI5LDEwIEBAIHdlYmtpdF9kb21fY3NzX3J1bGVfZ2V0X2Nz
c190ZXh0KFdlYktpdERPTUNTU1J1bGUqIHNlbGYpOwogICogQHZhbHVlOiBBICNnY2hhcgogICog
QGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21fY3NzX3J1bGVfc2V0X2Nzc190ZXh0KFdlYktpdERPTUNTU1J1
bGUqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAg
LTExNiw4ICsxNDAsMTAgQEAgd2Via2l0X2RvbV9jc3NfcnVsZV9zZXRfY3NzX3RleHQoV2ViS2l0
RE9NQ1NTUnVsZSogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXIKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01DU1NSdWxlCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJL
aXRET01DU1NTdHlsZVNoZWV0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NQ1NTU3R5bGVTaGVl
dCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUNTU1N0eWxlU2hlZXQqCiB3ZWJraXRfZG9t
X2Nzc19ydWxlX2dldF9wYXJlbnRfc3R5bGVfc2hlZXQoV2ViS2l0RE9NQ1NTUnVsZSogc2VsZik7
CiAKIC8qKgpAQCAtMTI1LDggKzE1MSwxMCBAQCB3ZWJraXRfZG9tX2Nzc19ydWxlX2dldF9wYXJl
bnRfc3R5bGVfc2hlZXQoV2ViS2l0RE9NQ1NTUnVsZSogc2VsZik7CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NQ1NTUnVsZQogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0
RE9NQ1NTUnVsZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUNTU1J1bGUqCitXRUJLSVRfREVQ
UkVDQVRFRCBXZWJLaXRET01DU1NSdWxlKgogd2Via2l0X2RvbV9jc3NfcnVsZV9nZXRfcGFyZW50
X3J1bGUoV2ViS2l0RE9NQ1NTUnVsZSogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NQ1NTUnVsZUxpc3QuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1J1bGVMaXN0LmNwcAppbmRleCBjOTMyYWRl
NTc4ZDIxM2ZhNTVmODUzMTJlOGE5OTQ2ODVhZDU3ZDFlLi44MmQ5MjEyMzMyYTE3ZDBhMzM2Njk3
NDY3MmY0NDIzMDNhNjE2MGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTUnVsZUxpc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01DU1NSdWxlTGlzdC5jcHAKQEAgLTM3LDYgKzM3LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dl
YktpdERPTUNTU1J1bGVMaXN0UHJpdmF0ZSB7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkNTU1J1bGVM
aXN0PiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01DU1NSdWxlTGlzdFByaXZhdGU7CiAKK0dfR05V
Q19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2Vi
S2l0RE9NQ1NTUnVsZUxpc3QqIGtpdChXZWJDb3JlOjpDU1NSdWxlTGlzdCogb2JqKQpAQCAtMTQ5
LDMgKzE1MSw0IEBAIGd1bG9uZyB3ZWJraXRfZG9tX2Nzc19ydWxlX2xpc3RfZ2V0X2xlbmd0aChX
ZWJLaXRET01DU1NSdWxlTGlzdCogc2VsZikKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitHX0dO
VUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTUnVsZUxpc3Qu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01DU1NSdWxlTGlzdC5oCmluZGV4IDA0ZGViMDUzODA5Yjc0ODI3NWU3ZjFmMjgxZDAy
YmMyMDQyNGIzOGMuLmQ5YTRkYTViOGU2MDZmYjYwNzFhMTIwYzY0MWY0ODNhZWRkNjZiMjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01DU1NSdWxlTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NSdWxlTGlzdC5oCkBAIC00
NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NQ1NTUnVsZUxpc3RDbGFzcyB7CiAgICAgV2Vi
S2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQor
V0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fY3NzX3J1bGVfbGlzdF9nZXRfdHlw
ZSh2b2lkKTsKIAogLyoqCkBAIC01NCw4ICs1NCwxMCBAQCB3ZWJraXRfZG9tX2Nzc19ydWxlX2xp
c3RfZ2V0X3R5cGUodm9pZCk7CiAgKiBAaW5kZXg6IEEgI2d1bG9uZwogICoKICAqIFJldHVybnM6
ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NQ1NTUnVsZQorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdl
YktpdERPTUNTU1J1bGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01DU1NSdWxlKgogd2Vi
a2l0X2RvbV9jc3NfcnVsZV9saXN0X2l0ZW0oV2ViS2l0RE9NQ1NTUnVsZUxpc3QqIHNlbGYsIGd1
bG9uZyBpbmRleCk7CiAKIC8qKgpAQCAtNjMsOCArNjUsMTAgQEAgd2Via2l0X2RvbV9jc3NfcnVs
ZV9saXN0X2l0ZW0oV2ViS2l0RE9NQ1NTUnVsZUxpc3QqIHNlbGYsIGd1bG9uZyBpbmRleCk7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NQ1NTUnVsZUxpc3QKICAqCiAgKiBSZXR1cm5zOiBBICNndWxv
bmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Vi
a2l0X2RvbV9jc3NfcnVsZV9saXN0X2dldF9sZW5ndGgoV2ViS2l0RE9NQ1NTUnVsZUxpc3QqIHNl
bGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24u
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDkxOGQyNWQ3ZDAwZjYzODQ4
MTk1YjNjNjNkMjcyZmQxYzIzZjE3ZmEuLmY0NzQxYzlmZjU2ODNjMTZlODZkYWEwNjE2YjcxNGQ2
OWI2ZjgwNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTM4LDYgKzM4LDggQEAgdHlwZWRlZiBzdHJ1
Y3QgX1dlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb25Qcml2YXRlIHsKICAgICBSZWZQdHI8V2Vi
Q29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbj4gY29yZU9iamVjdDsKIH0gV2ViS2l0RE9NQ1NTU3R5
bGVEZWNsYXJhdGlvblByaXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05T
OworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiog
a2l0KFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb24qIG9iaikKQEAgLTMwMywzICszMDUsNCBA
QCBXZWJLaXRET01DU1NSdWxlKiB3ZWJraXRfZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9nZXRf
cGFyZW50X3J1bGUoV2ViS2l0RE9NQ1NTUwogICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0
UmVzdWx0LmdldCgpKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZURlY2xhcmF0
aW9uLmgKaW5kZXggODhmZTdiODVmNmVkYmYyYTkzMGY5ZmU0ZDI1M2FkZGEyYTQ0MzE3NS4uNzM1
ZmMzMDhmMzI5ODEzNWM4YTI3NGE0ZDc4YWQ3Njk1YzQxNmM0ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNT
U1N0eWxlRGVjbGFyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbi5oCkBAIC00
NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbkNsYXNzIHsK
ICAgICBXZWJLaXRET01PYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJ
IEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9jc3Nfc3R5bGVfZGVj
bGFyYXRpb25fZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTQsOCArNTQsMTAgQEAgd2Via2l0
X2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRpb25fZ2V0X3R5cGUodm9pZCk7CiAgKiBAcHJvcGVydHlO
YW1lOiBBICNnY2hhcgogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fY3NzX3N0eWxlX2Rl
Y2xhcmF0aW9uX2dldF9wcm9wZXJ0eV92YWx1ZShXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9u
KiBzZWxmLCBjb25zdCBnY2hhciogcHJvcGVydHlOYW1lKTsKIAogLyoqCkBAIC02NSw4ICs2Nywx
MCBAQCB3ZWJraXRfZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9nZXRfcHJvcGVydHlfdmFsdWUo
V2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbgogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICog
UmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNB
VEVEIGdjaGFyKgogd2Via2l0X2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRpb25fcmVtb3ZlX3Byb3Bl
cnR5KFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24qIHNlbGYsIGNvbnN0IGdjaGFyKiBwcm9w
ZXJ0eU5hbWUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC03NSw4ICs3OSwxMCBAQCB3ZWJr
aXRfZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9yZW1vdmVfcHJvcGVydHkoV2ViS2l0RE9NQ1NT
U3R5bGVEZWNsYXJhdGlvbiogcwogICogQHByb3BlcnR5TmFtZTogQSAjZ2NoYXIKICAqCiAgKiBS
ZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9nZXRfcHJvcGVydHlf
cHJpb3JpdHkoV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiogc2VsZiwgY29uc3QgZ2NoYXIq
IHByb3BlcnR5TmFtZSk7CiAKIC8qKgpAQCAtODcsOCArOTMsMTAgQEAgd2Via2l0X2RvbV9jc3Nf
c3R5bGVfZGVjbGFyYXRpb25fZ2V0X3Byb3BlcnR5X3ByaW9yaXR5KFdlYktpdERPTUNTU1N0eWxl
RGVjbGFyYXQKICAqIEBwcmlvcml0eTogQSAjZ2NoYXIKICAqIEBlcnJvcjogI0dFcnJvcgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9zZXRfcHJvcGVydHkoV2ViS2l0RE9NQ1NTU3R5bGVEZWNs
YXJhdGlvbiogc2VsZiwgY29uc3QgZ2NoYXIqIHByb3BlcnR5TmFtZSwgY29uc3QgZ2NoYXIqIHZh
bHVlLCBjb25zdCBnY2hhciogcHJpb3JpdHksIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC05
Nyw4ICsxMDUsMTAgQEAgd2Via2l0X2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRpb25fc2V0X3Byb3Bl
cnR5KFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24qIHNlbGYKICAqIEBpbmRleDogQSAjZ3Vs
b25nCiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dF
QktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRpb25f
aXRlbShXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uKiBzZWxmLCBndWxvbmcgaW5kZXgpOwog
CiAvKioKQEAgLTEwNyw4ICsxMTcsMTAgQEAgd2Via2l0X2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRp
b25faXRlbShXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uKiBzZWxmLCBndWxvbmcKICAqIEBw
cm9wZXJ0eU5hbWU6IEEgI2djaGFyCiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9jc3Nf
c3R5bGVfZGVjbGFyYXRpb25fZ2V0X3Byb3BlcnR5X3Nob3J0aGFuZChXZWJLaXRET01DU1NTdHls
ZURlY2xhcmF0aW9uKiBzZWxmLCBjb25zdCBnY2hhciogcHJvcGVydHlOYW1lKTsKIAogLyoqCkBA
IC0xMTcsOCArMTI5LDEwIEBAIHdlYmtpdF9kb21fY3NzX3N0eWxlX2RlY2xhcmF0aW9uX2dldF9w
cm9wZXJ0eV9zaG9ydGhhbmQoV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhCiAgKiBAcHJvcGVydHlO
YW1lOiBBICNnY2hhcgogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2Nzc19z
dHlsZV9kZWNsYXJhdGlvbl9pc19wcm9wZXJ0eV9pbXBsaWNpdChXZWJLaXRET01DU1NTdHlsZURl
Y2xhcmF0aW9uKiBzZWxmLCBjb25zdCBnY2hhciogcHJvcGVydHlOYW1lKTsKIAogLyoqCkBAIC0x
MjYsOCArMTQwLDEwIEBAIHdlYmtpdF9kb21fY3NzX3N0eWxlX2RlY2xhcmF0aW9uX2lzX3Byb3Bl
cnR5X2ltcGxpY2l0KFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpCiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbgogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21f
Y3NzX3N0eWxlX2RlY2xhcmF0aW9uX2dldF9jc3NfdGV4dChXZWJLaXRET01DU1NTdHlsZURlY2xh
cmF0aW9uKiBzZWxmKTsKIAogLyoqCkBAIC0xMzYsOCArMTUyLDEwIEBAIHdlYmtpdF9kb21fY3Nz
X3N0eWxlX2RlY2xhcmF0aW9uX2dldF9jc3NfdGV4dChXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0
aW9uKiBzZWxmCiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9j
c3Nfc3R5bGVfZGVjbGFyYXRpb25fc2V0X2Nzc190ZXh0KFdlYktpdERPTUNTU1N0eWxlRGVjbGFy
YXRpb24qIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioK
QEAgLTE0NSw4ICsxNjMsMTAgQEAgd2Via2l0X2RvbV9jc3Nfc3R5bGVfZGVjbGFyYXRpb25fc2V0
X2Nzc190ZXh0KFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24qIHNlbGYKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uCiAgKgogICogUmV0dXJuczogQSAjZ3Vsb25n
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQUkVDQVRFRCBndWxvbmcKIHdlYmtp
dF9kb21fY3NzX3N0eWxlX2RlY2xhcmF0aW9uX2dldF9sZW5ndGgoV2ViS2l0RE9NQ1NTU3R5bGVE
ZWNsYXJhdGlvbiogc2VsZik7CiAKIC8qKgpAQCAtMTU0LDggKzE3NCwxMCBAQCB3ZWJraXRfZG9t
X2Nzc19zdHlsZV9kZWNsYXJhdGlvbl9nZXRfbGVuZ3RoKFdlYktpdERPTUNTU1N0eWxlRGVjbGFy
YXRpb24qIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24K
ICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUNTU1J1bGUKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBXZWJLaXRET01DU1NSdWxlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0
RE9NQ1NTUnVsZSoKIHdlYmtpdF9kb21fY3NzX3N0eWxlX2RlY2xhcmF0aW9uX2dldF9wYXJlbnRf
cnVsZShXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uKiBzZWxmKTsKIAogR19FTkRfREVDTFMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZVNoZWV0LmNw
cAppbmRleCAwMDA3NDc3MDc2YzBmY2MyZWEyYjQ0NDEzNzMzODllMDRhY2RhM2NjLi4yYTExMmFl
MmVhOGU1YWYyMmQ3MTg2ZDY4MGYxYjVhNWFjMWQyNTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTU3R5
bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1N0eWxlU2hlZXQuY3BwCkBAIC0zNCw2ICszNCw4IEBA
CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19H
TlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBX
ZWJLaXRET01DU1NTdHlsZVNoZWV0KiBraXQoV2ViQ29yZTo6Q1NTU3R5bGVTaGVldCogb2JqKQpA
QCAtMjE0LDMgKzIxNiw0IEBAIFdlYktpdERPTUNTU1J1bGVMaXN0KiB3ZWJraXRfZG9tX2Nzc19z
dHlsZV9zaGVldF9nZXRfcnVsZXMoV2ViS2l0RE9NQ1NTU3R5bGVTaGVlCiAgICAgcmV0dXJuIFdl
YktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9E
RVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ1NTU3R5bGVTaGVldC5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1N0
eWxlU2hlZXQuaAppbmRleCA5YTg1YjY1Nzc4ZTNhYWI3MDNmODk4ZTNiMDAxMjRmNmQ5Zjc3MDY2
Li5hMDRlMDRmYTE4MDRlYmMzMjlkNmQ2NzViNmNjYjJiODkzZTZmN2NhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NQ1NTU3R5bGVTaGVldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NTdHlsZVNoZWV0LmgKQEAgLTQ1LDcgKzQ1
LDcgQEAgc3RydWN0IF9XZWJLaXRET01DU1NTdHlsZVNoZWV0Q2xhc3MgewogICAgIFdlYktpdERP
TVN0eWxlU2hlZXRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitX
RUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9jc3Nfc3R5bGVfc2hlZXRfZ2V0X3R5
cGUodm9pZCk7CiAKIC8qKgpAQCAtNTYsOCArNTYsMTAgQEAgd2Via2l0X2RvbV9jc3Nfc3R5bGVf
c2hlZXRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5z
OiBBICNndWxvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1
bG9uZwogd2Via2l0X2RvbV9jc3Nfc3R5bGVfc2hlZXRfaW5zZXJ0X3J1bGUoV2ViS2l0RE9NQ1NT
U3R5bGVTaGVldCogc2VsZiwgY29uc3QgZ2NoYXIqIHJ1bGUsIGd1bG9uZyBpbmRleCwgR0Vycm9y
KiogZXJyb3IpOwogCiAvKioKQEAgLTY2LDggKzY4LDEwIEBAIHdlYmtpdF9kb21fY3NzX3N0eWxl
X3NoZWV0X2luc2VydF9ydWxlKFdlYktpdERPTUNTU1N0eWxlU2hlZXQqIHNlbGYsIGNvbnN0IGdj
aGFyCiAgKiBAaW5kZXg6IEEgI2d1bG9uZwogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fY3NzX3N0
eWxlX3NoZWV0X2RlbGV0ZV9ydWxlKFdlYktpdERPTUNTU1N0eWxlU2hlZXQqIHNlbGYsIGd1bG9u
ZyBpbmRleCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTc5LDggKzgzLDEwIEBAIHdlYmtp
dF9kb21fY3NzX3N0eWxlX3NoZWV0X2RlbGV0ZV9ydWxlKFdlYktpdERPTUNTU1N0eWxlU2hlZXQq
IHNlbGYsIGd1bG9uZyBpbmRlCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiBB
ICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwog
d2Via2l0X2RvbV9jc3Nfc3R5bGVfc2hlZXRfYWRkX3J1bGUoV2ViS2l0RE9NQ1NTU3R5bGVTaGVl
dCogc2VsZiwgY29uc3QgZ2NoYXIqIHNlbGVjdG9yLCBjb25zdCBnY2hhciogc3R5bGUsIGd1bG9u
ZyBpbmRleCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTg5LDggKzk1LDEwIEBAIHdlYmtp
dF9kb21fY3NzX3N0eWxlX3NoZWV0X2FkZF9ydWxlKFdlYktpdERPTUNTU1N0eWxlU2hlZXQqIHNl
bGYsIGNvbnN0IGdjaGFyKiBzCiAgKiBAaW5kZXg6IEEgI2d1bG9uZwogICogQGVycm9yOiAjR0Vy
cm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21fY3NzX3N0eWxlX3NoZWV0X3JlbW92ZV9ydWxlKFdlYktpdERPTUNTU1N0eWxlU2hl
ZXQqIHNlbGYsIGd1bG9uZyBpbmRleCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTk4LDgg
KzEwNiwxMCBAQCB3ZWJraXRfZG9tX2Nzc19zdHlsZV9zaGVldF9yZW1vdmVfcnVsZShXZWJLaXRE
T01DU1NTdHlsZVNoZWV0KiBzZWxmLCBndWxvbmcgaW5kZQogICogQHNlbGY6IEEgI1dlYktpdERP
TUNTU1N0eWxlU2hlZXQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktp
dERPTUNTU1J1bGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01DU1NSdWxlKgorV0VCS0lUX0RF
UFJFQ0FURUQgV2ViS2l0RE9NQ1NTUnVsZSoKIHdlYmtpdF9kb21fY3NzX3N0eWxlX3NoZWV0X2dl
dF9vd25lcl9ydWxlKFdlYktpdERPTUNTU1N0eWxlU2hlZXQqIHNlbGYpOwogCiAvKioKQEAgLTEw
Nyw4ICsxMTcsMTAgQEAgd2Via2l0X2RvbV9jc3Nfc3R5bGVfc2hlZXRfZ2V0X293bmVyX3J1bGUo
V2ViS2l0RE9NQ1NTU3R5bGVTaGVldCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NQ1NT
U3R5bGVTaGVldAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9N
Q1NTUnVsZUxpc3QKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01DU1NSdWxlTGlzdCoKK1dFQktJ
VF9ERVBSRUNBVEVEIFdlYktpdERPTUNTU1J1bGVMaXN0Kgogd2Via2l0X2RvbV9jc3Nfc3R5bGVf
c2hlZXRfZ2V0X2Nzc19ydWxlcyhXZWJLaXRET01DU1NTdHlsZVNoZWV0KiBzZWxmKTsKIAogLyoq
CkBAIC0xMTYsOCArMTI4LDEwIEBAIHdlYmtpdF9kb21fY3NzX3N0eWxlX3NoZWV0X2dldF9jc3Nf
cnVsZXMoV2ViS2l0RE9NQ1NTU3R5bGVTaGVldCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NQ1NTU3R5bGVTaGVldAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2Vi
S2l0RE9NQ1NTUnVsZUxpc3QKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01DU1NSdWxlTGlzdCoK
K1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUNTU1J1bGVMaXN0Kgogd2Via2l0X2RvbV9jc3Nf
c3R5bGVfc2hlZXRfZ2V0X3J1bGVzKFdlYktpdERPTUNTU1N0eWxlU2hlZXQqIHNlbGYpOwogCiBH
X0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NWYWx1ZS5j
cHAKaW5kZXggYjNjM2UwZmQzODVkMjQ5YWMwOGVkMmZjOTM4NDUxODNhNzgwNGJjNi4uNmE5ZWI1
OTI4OTcyYWFhZDE2YjdiZmZkN2EyYmZlZGZkNjM2NzZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNTU1Zh
bHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NQ1NTVmFsdWUuY3BwCkBAIC0zNyw2ICszNyw4IEBAIHR5cGVkZWYg
c3RydWN0IF9XZWJLaXRET01DU1NWYWx1ZVByaXZhdGUgewogICAgIFJlZlB0cjxXZWJDb3JlOjpE
ZXByZWNhdGVkQ1NTT01WYWx1ZT4gY29yZU9iamVjdDsKIH0gV2ViS2l0RE9NQ1NTVmFsdWVQcml2
YXRlOwogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIFdlYktpdERPTUNTU1ZhbHVlKiBraXQoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09N
VmFsdWUqIG9iaikKQEAgLTE5MywzICsxOTUsNCBAQCBndXNob3J0IHdlYmtpdF9kb21fY3NzX3Zh
bHVlX2dldF9jc3NfdmFsdWVfdHlwZShXZWJLaXRET01DU1NWYWx1ZSogc2VsZikKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NQ1NTVmFsdWUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NWYWx1ZS5oCmluZGV4IGQyNDNiYmYyZGFkZDAx
OTNhYmU3ZGZkYWM2NGU0NmVjMzU0NmJjNTUuLjI2NTU0YWVkMDNjNDliOTg4ZTI1MTZmMzYwYjIx
ZWVhNzhkNzE2MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DU1NWYWx1
ZS5oCkBAIC0zNywyNiArMzcsMzggQEAgR19CRUdJTl9ERUNMUwogI2RlZmluZSBXRUJLSVRfRE9N
X0lTX0NTU19WQUxVRV9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFz
cyksICBXRUJLSVRfRE9NX1RZUEVfQ1NTX1ZBTFVFKSkKICNkZWZpbmUgV0VCS0lUX0RPTV9DU1Nf
VkFMVUVfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAg
V0VCS0lUX0RPTV9UWVBFX0NTU19WQUxVRSwgV2ViS2l0RE9NQ1NTVmFsdWVDbGFzcykpCiAKKyNp
Zm5kZWYgV0VCS0lUX0RJU0FCTEVfREVQUkVDQVRFRAorCiAvKioKICAqIFdFQktJVF9ET01fQ1NT
X1ZBTFVFX0NTU19JTkhFUklUOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fQ1NTX1ZBTFVFX0NT
U19JTkhFUklUIDAKIAogLyoqCiAgKiBXRUJLSVRfRE9NX0NTU19WQUxVRV9DU1NfUFJJTUlUSVZF
X1ZBTFVFOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fQ1NTX1ZBTFVFX0NTU19QUklNSVRJVkVf
VkFMVUUgMQogCiAvKioKICAqIFdFQktJVF9ET01fQ1NTX1ZBTFVFX0NTU19WQUxVRV9MSVNUOgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
ICovCiAjZGVmaW5lIFdFQktJVF9ET01fQ1NTX1ZBTFVFX0NTU19WQUxVRV9MSVNUIDIKIAogLyoq
CiAgKiBXRUJLSVRfRE9NX0NTU19WQUxVRV9DU1NfQ1VTVE9NOgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJ
VF9ET01fQ1NTX1ZBTFVFX0NTU19DVVNUT00gMwogCisjZW5kaWYgLyogV0VCS0lUX0RJU0FCTEVf
REVQUkVDQVRFRCAqLworCiBzdHJ1Y3QgX1dlYktpdERPTUNTU1ZhbHVlIHsKICAgICBXZWJLaXRE
T01PYmplY3QgcGFyZW50X2luc3RhbmNlOwogfTsKQEAgLTY1LDcgKzc3LDcgQEAgc3RydWN0IF9X
ZWJLaXRET01DU1NWYWx1ZUNsYXNzIHsKICAgICBXZWJLaXRET01PYmplY3RDbGFzcyBwYXJlbnRf
Y2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQog
d2Via2l0X2RvbV9jc3NfdmFsdWVfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNzMsOCArODUs
MTAgQEAgd2Via2l0X2RvbV9jc3NfdmFsdWVfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NQ1NTVmFsdWUKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2Nzc192YWx1
ZV9nZXRfY3NzX3RleHQoV2ViS2l0RE9NQ1NTVmFsdWUqIHNlbGYpOwogCiAvKioKQEAgLTgzLDgg
Kzk3LDEwIEBAIHdlYmtpdF9kb21fY3NzX3ZhbHVlX2dldF9jc3NfdGV4dChXZWJLaXRET01DU1NW
YWx1ZSogc2VsZik7CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9jc3NfdmFsdWVfc2V0X2Nzc190ZXh0KFdlYktpdERPTUNTU1ZhbHVlKiBzZWxmLCBjb25zdCBn
Y2hhciogdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC05Miw4ICsxMDgsMTAgQEAg
d2Via2l0X2RvbV9jc3NfdmFsdWVfc2V0X2Nzc190ZXh0KFdlYktpdERPTUNTU1ZhbHVlKiBzZWxm
LCBjb25zdCBnY2hhciogdmFsdWUsIEcKICAqIEBzZWxmOiBBICNXZWJLaXRET01DU1NWYWx1ZQog
ICoKICAqIFJldHVybnM6IEEgI2d1c2hvcnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBndXNob3J0CitXRUJL
SVRfREVQUkVDQVRFRCBndXNob3J0CiB3ZWJraXRfZG9tX2Nzc192YWx1ZV9nZXRfY3NzX3ZhbHVl
X3R5cGUoV2ViS2l0RE9NQ1NTVmFsdWUqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUNoYXJhY3RlckRhdGEuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNoYXJhY3RlckRhdGEuY3BwCmluZGV4IDYy
MDc1M2NjNTA4MmNlMTBhNWUzODIyODdkNzIzZDQxMDg3ODAzYjcuLmNlOTA5NzcyOTQ4MjZmMjk3
NmUzOGMyNTFhN2M5NTlkMGExYThjMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DaGFyYWN0ZXJEYXRhLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YS5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRl
IDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5f
SUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUNo
YXJhY3RlckRhdGEqIGtpdChXZWJDb3JlOjpDaGFyYWN0ZXJEYXRhKiBvYmopCkBAIC0yNTYsMyAr
MjU4LDQgQEAgZ3Vsb25nIHdlYmtpdF9kb21fY2hhcmFjdGVyX2RhdGFfZ2V0X2xlbmd0aChXZWJL
aXRET01DaGFyYWN0ZXJEYXRhKiBzZWxmKQogICAgIGd1bG9uZyByZXN1bHQgPSBpdGVtLT5sZW5n
dGgoKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJ
T05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUNoYXJhY3RlckRhdGEuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DaGFyYWN0ZXJEYXRh
LmgKaW5kZXggMjc1YTViOWU3N2I1NjM4ZjQyODc2ODQzOWVjMzAzZmI1ZWYwNjRjZS4uYjRmOTgw
ZjA3NmFmMDM2NzQ4NWFlYzM4NGU0NDExYmNhODFhMzIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNoYXJh
Y3RlckRhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YS5oCkBAIC00NSw3ICs0NSw3IEBAIHN0
cnVjdCBfV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YUNsYXNzIHsKICAgICBXZWJLaXRET01Ob2RlQ2xh
c3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FU
RUQgR1R5cGUKIHdlYmtpdF9kb21fY2hhcmFjdGVyX2RhdGFfZ2V0X3R5cGUodm9pZCk7CiAKIC8q
KgpAQCAtNTYsOCArNTYsMTAgQEAgd2Via2l0X2RvbV9jaGFyYWN0ZXJfZGF0YV9nZXRfdHlwZSh2
b2lkKTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21f
Y2hhcmFjdGVyX2RhdGFfc3Vic3RyaW5nX2RhdGEoV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YSogc2Vs
ZiwgZ3Vsb25nIG9mZnNldCwgZ3Vsb25nIGxlbmd0aCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioK
QEAgLTY2LDggKzY4LDEwIEBAIHdlYmtpdF9kb21fY2hhcmFjdGVyX2RhdGFfc3Vic3RyaW5nX2Rh
dGEoV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YSogc2VsZiwgZ3Vsb25nIG9mCiAgKiBAZGF0YTogQSAj
Z2NoYXIKICAqIEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2NoYXJhY3Rlcl9kYXRhX2FwcGVuZF9kYXRh
KFdlYktpdERPTUNoYXJhY3RlckRhdGEqIHNlbGYsIGNvbnN0IGdjaGFyKiBkYXRhLCBHRXJyb3Iq
KiBlcnJvcik7CiAKIC8qKgpAQCAtNzcsOCArODEsMTAgQEAgd2Via2l0X2RvbV9jaGFyYWN0ZXJf
ZGF0YV9hcHBlbmRfZGF0YShXZWJLaXRET01DaGFyYWN0ZXJEYXRhKiBzZWxmLCBjb25zdCBnY2hh
cioKICAqIEBkYXRhOiBBICNnY2hhcgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fY2hhcmFjdGVy
X2RhdGFfaW5zZXJ0X2RhdGEoV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YSogc2VsZiwgZ3Vsb25nIG9m
ZnNldCwgY29uc3QgZ2NoYXIqIGRhdGEsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC04OCw4
ICs5NCwxMCBAQCB3ZWJraXRfZG9tX2NoYXJhY3Rlcl9kYXRhX2luc2VydF9kYXRhKFdlYktpdERP
TUNoYXJhY3RlckRhdGEqIHNlbGYsIGd1bG9uZyBvZmZzZQogICogQGxlbmd0aDogQSAjZ3Vsb25n
CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9jaGFyYWN0ZXJfZGF0YV9kZWxldGVfZGF0YShXZWJL
aXRET01DaGFyYWN0ZXJEYXRhKiBzZWxmLCBndWxvbmcgb2Zmc2V0LCBndWxvbmcgbGVuZ3RoLCBH
RXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTAwLDggKzEwOCwxMCBAQCB3ZWJraXRfZG9tX2No
YXJhY3Rlcl9kYXRhX2RlbGV0ZV9kYXRhKFdlYktpdERPTUNoYXJhY3RlckRhdGEqIHNlbGYsIGd1
bG9uZyBvZmZzZQogICogQGRhdGE6IEEgI2djaGFyCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9j
aGFyYWN0ZXJfZGF0YV9yZXBsYWNlX2RhdGEoV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YSogc2VsZiwg
Z3Vsb25nIG9mZnNldCwgZ3Vsb25nIGxlbmd0aCwgY29uc3QgZ2NoYXIqIGRhdGEsIEdFcnJvcioq
IGVycm9yKTsKIAogLyoqCkBAIC0xMDksOCArMTE5LDEwIEBAIHdlYmtpdF9kb21fY2hhcmFjdGVy
X2RhdGFfcmVwbGFjZV9kYXRhKFdlYktpdERPTUNoYXJhY3RlckRhdGEqIHNlbGYsIGd1bG9uZyBv
ZmZzCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YQogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21fY2hhcmFjdGVyX2RhdGFfZ2V0X2RhdGEoV2ViS2l0RE9NQ2hhcmFjdGVy
RGF0YSogc2VsZik7CiAKIC8qKgpAQCAtMTE5LDggKzEzMSwxMCBAQCB3ZWJraXRfZG9tX2NoYXJh
Y3Rlcl9kYXRhX2dldF9kYXRhKFdlYktpdERPTUNoYXJhY3RlckRhdGEqIHNlbGYpOwogICogQHZh
bHVlOiBBICNnY2hhcgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fY2hhcmFjdGVyX2RhdGFfc2V0
X2RhdGEoV2ViS2l0RE9NQ2hhcmFjdGVyRGF0YSogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBH
RXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTI4LDggKzE0MiwxMCBAQCB3ZWJraXRfZG9tX2No
YXJhY3Rlcl9kYXRhX3NldF9kYXRhKFdlYktpdERPTUNoYXJhY3RlckRhdGEqIHNlbGYsIGNvbnN0
IGdjaGFyKiB2YQogICogQHNlbGY6IEEgI1dlYktpdERPTUNoYXJhY3RlckRhdGEKICAqCiAgKiBS
ZXR1cm5zOiBBICNndWxvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNB
VEVEIGd1bG9uZwogd2Via2l0X2RvbV9jaGFyYWN0ZXJfZGF0YV9nZXRfbGVuZ3RoKFdlYktpdERP
TUNoYXJhY3RlckRhdGEqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNs
aWVudFJlY3QuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJlY3QuY3BwCmluZGV4IDE2MTI2ZTI4N2JjOTMwMTE1
ODFjNzc5MDAxYjZkODkxMzVjMzg1YTIuLmU1MGZhNTlhZGNjOWVjNzY5MzA4NDUxZGY1NGUzNWJm
ZTU0Zjk0NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50
UmVjdC5jcHAKQEAgLTM3LDYgKzM3LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTUNsaWVu
dFJlY3RQcml2YXRlIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6RE9NUmVjdD4gY29yZU9iamVjdDsK
IH0gV2ViS2l0RE9NQ2xpZW50UmVjdFByaXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQ
UkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NQ2xpZW50UmVjdCog
a2l0KFdlYkNvcmU6OkRPTVJlY3QqIG9iaikKQEAgLTI0MCwzICsyNDIsNCBAQCBnZmxvYXQgd2Vi
a2l0X2RvbV9jbGllbnRfcmVjdF9nZXRfaGVpZ2h0KFdlYktpdERPTUNsaWVudFJlY3QqIHNlbGYp
CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19DTElFTlRfUkVDVChzZWxm
KSwgMCk7CiAgICAgcmV0dXJuIFdlYktpdDo6Y29yZShzZWxmKS0+aGVpZ2h0KCk7CiB9CitHX0dO
VUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdC5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUNsaWVudFJlY3QuaAppbmRleCBiNTlkOTcwZTBmNWNlNzA4ZmMwMDQzNDIzZWRhYTIy
MTJhOTcwMTg3Li5iNDkxZDIyYWE4MmJiYTExOGQ4MGViMjQ5ZWVhNmM2ZmI1MWQxZDRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NQ2xpZW50UmVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0LmgKQEAgLTQ1LDcg
KzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01DbGllbnRSZWN0Q2xhc3MgewogICAgIFdlYktpdERP
TU9iamVjdENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJ
VF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2NsaWVudF9yZWN0X2dldF90eXBlKHZvaWQp
OwogCiAvKioKQEAgLTU3LDggKzU3LDEwIEBAIHdlYmtpdF9kb21fY2xpZW50X3JlY3RfZ2V0X3R5
cGUodm9pZCk7CiAgKiBSZXR1cm5zOiBBICNnZmxvYXQKICAqCiAgKiBTaW5jZTogMi4xOAorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdmbG9hdAorV0VCS0lUX0RFUFJFQ0FURUQgZ2Zsb2F0CiB3ZWJraXRfZG9t
X2NsaWVudF9yZWN0X2dldF90b3AoV2ViS2l0RE9NQ2xpZW50UmVjdCogc2VsZik7CiAKIC8qKgpA
QCAtNzAsOCArNzIsMTAgQEAgd2Via2l0X2RvbV9jbGllbnRfcmVjdF9nZXRfdG9wKFdlYktpdERP
TUNsaWVudFJlY3QqIHNlbGYpOwogICogUmV0dXJuczogQSAjZ2Zsb2F0CiAgKgogICogU2luY2U6
IDIuMTgKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnZmxvYXQKK1dFQktJVF9ERVBSRUNBVEVEIGdmbG9hdAog
d2Via2l0X2RvbV9jbGllbnRfcmVjdF9nZXRfcmlnaHQoV2ViS2l0RE9NQ2xpZW50UmVjdCogc2Vs
Zik7CiAKIC8qKgpAQCAtODMsOCArODcsMTAgQEAgd2Via2l0X2RvbV9jbGllbnRfcmVjdF9nZXRf
cmlnaHQoV2ViS2l0RE9NQ2xpZW50UmVjdCogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnZmxvYXQK
ICAqCiAgKiBTaW5jZTogMi4xOAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdmbG9hdAorV0VCS0lUX0RFUFJF
Q0FURUQgZ2Zsb2F0CiB3ZWJraXRfZG9tX2NsaWVudF9yZWN0X2dldF9ib3R0b20oV2ViS2l0RE9N
Q2xpZW50UmVjdCogc2VsZik7CiAKIC8qKgpAQCAtOTYsOCArMTAyLDEwIEBAIHdlYmtpdF9kb21f
Y2xpZW50X3JlY3RfZ2V0X2JvdHRvbShXZWJLaXRET01DbGllbnRSZWN0KiBzZWxmKTsKICAqIFJl
dHVybnM6IEEgI2dmbG9hdAogICoKICAqIFNpbmNlOiAyLjE4CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Zs
b2F0CitXRUJLSVRfREVQUkVDQVRFRCBnZmxvYXQKIHdlYmtpdF9kb21fY2xpZW50X3JlY3RfZ2V0
X2xlZnQoV2ViS2l0RE9NQ2xpZW50UmVjdCogc2VsZik7CiAKIC8qKgpAQCAtMTA5LDggKzExNywx
MCBAQCB3ZWJraXRfZG9tX2NsaWVudF9yZWN0X2dldF9sZWZ0KFdlYktpdERPTUNsaWVudFJlY3Qq
IHNlbGYpOwogICogUmV0dXJuczogQSAjZ2Zsb2F0CiAgKgogICogU2luY2U6IDIuMTgKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnZmxvYXQKK1dFQktJVF9ERVBSRUNBVEVEIGdmbG9hdAogd2Via2l0X2RvbV9j
bGllbnRfcmVjdF9nZXRfd2lkdGgoV2ViS2l0RE9NQ2xpZW50UmVjdCogc2VsZik7CiAKIC8qKgpA
QCAtMTIyLDggKzEzMiwxMCBAQCB3ZWJraXRfZG9tX2NsaWVudF9yZWN0X2dldF93aWR0aChXZWJL
aXRET01DbGllbnRSZWN0KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2dmbG9hdAogICoKICAqIFNp
bmNlOiAyLjE4CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Zsb2F0CitXRUJLSVRfREVQUkVDQVRFRCBnZmxv
YXQKIHdlYmtpdF9kb21fY2xpZW50X3JlY3RfZ2V0X2hlaWdodChXZWJLaXRET01DbGllbnRSZWN0
KiBzZWxmKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NQ2xpZW50UmVjdExpc3QuY3BwCmluZGV4IDA3MWM2ZTRlMjgzYmNkNWE2MGUxMzI2
NDU5NzE1MTczZTA3YTNiNWQuLjk1MDM2YWQ4NGI2YjFhM2YxMTBkMDZmYTYxYWNiMzIxMjM2MTJj
M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNsaWVudFJl
Y3RMaXN0LmNwcApAQCAtMzgsNiArMzgsOCBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NQ2xp
ZW50UmVjdExpc3RQcml2YXRlIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6RE9NUmVjdExpc3Q+IGNv
cmVPYmplY3Q7CiB9IFdlYktpdERPTUNsaWVudFJlY3RMaXN0UHJpdmF0ZTsKIAorR19HTlVDX0JF
R0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRE
T01DbGllbnRSZWN0TGlzdCoga2l0KFdlYkNvcmU6OkRPTVJlY3RMaXN0KiBvYmopCkBAIC0xNDQs
MyArMTQ2LDQgQEAgZ3Vsb25nIHdlYmtpdF9kb21fY2xpZW50X3JlY3RfbGlzdF9nZXRfbGVuZ3Ro
KFdlYktpdERPTUNsaWVudFJlY3RMaXN0KiBzZWxmKQogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KFdFQktJVF9ET01fSVNfQ0xJRU5UX1JFQ1RfTElTVChzZWxmKSwgMCk7CiAgICAgcmV0dXJuIFdl
YktpdDo6Y29yZShzZWxmKS0+bGVuZ3RoKCk7CiB9CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNB
VElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0
TGlzdC5oCmluZGV4IGViOWE0Zjc5ZTRiMDhhOWRjNmQ5OTJiZThkNzkyODI5NTRiMmI0NDQuLjJk
OWMwNWZmOGIyZjFiNTViZTIxNjA0MTQ2YjAzMTRlY2ZiZDUwYzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01D
bGllbnRSZWN0TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01DbGllbnRSZWN0TGlzdC5oCkBAIC00NSw3ICs0NSw3
IEBAIHN0cnVjdCBfV2ViS2l0RE9NQ2xpZW50UmVjdExpc3RDbGFzcyB7CiAgICAgV2ViS2l0RE9N
T2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lU
X0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fY2xpZW50X3JlY3RfbGlzdF9nZXRfdHlwZSh2
b2lkKTsKIAogLyoqCkBAIC01Nyw4ICs1NywxMCBAQCB3ZWJraXRfZG9tX2NsaWVudF9yZWN0X2xp
c3RfZ2V0X3R5cGUodm9pZCk7CiAgKiBSZXR1cm5zOiBBICNndWxvbmcKICAqCiAgKiBTaW5jZTog
Mi4xOAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGd1bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vsb25nCiB3
ZWJraXRfZG9tX2NsaWVudF9yZWN0X2xpc3RfZ2V0X2xlbmd0aChXZWJLaXRET01DbGllbnRSZWN0
TGlzdCogc2VsZik7CiAKIC8qKgpAQCAtNzEsOCArNzMsMTAgQEAgd2Via2l0X2RvbV9jbGllbnRf
cmVjdF9saXN0X2dldF9sZW5ndGgoV2ViS2l0RE9NQ2xpZW50UmVjdExpc3QqIHNlbGYpOwogICog
UmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01DbGllbnRSZWN0CiAgKgogICog
U2luY2U6IDIuMTgKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01DbGllbnRSZWN0KiB3ZWJraXRf
ZG9tX2NsaWVudF9yZWN0X2xpc3RfaXRlbShXZWJLaXRET01DbGllbnRSZWN0TGlzdCogc2VsZiwg
Z3Vsb25nIGluZGV4KTsKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUNsaWVudFJlY3QqIHdl
YmtpdF9kb21fY2xpZW50X3JlY3RfbGlzdF9pdGVtKFdlYktpdERPTUNsaWVudFJlY3RMaXN0KiBz
ZWxmLCBndWxvbmcgaW5kZXgpOwogCiBHX0VORF9ERUNMUwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ29t
bWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NQ29tbWVudC5jcHAKaW5kZXggZWRlOWUwYzg4YmQxNmYxYTFlOWMxNDMz
ZGI2OWQzMWQ1OGU4Nzc5Ni4uZWFiMzRmYTIyMTA3NzIxMTQxMWViYWU3N2Q2NWVhMjBlMDliOTA1
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUNvbW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Db21tZW50LmNwcApAQCAt
MzUsNiArMzUsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogV2ViS2l0RE9NQ29tbWVudCoga2l0KFdlYkNvcmU6OkNvbW1lbnQqIG9iaikK
QEAgLTEwMiwzICsxMDQsNCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX2NvbW1lbnRfaW5pdChX
ZWJLaXRET01Db21tZW50KiByZXF1ZXN0KQogICAgIFVOVVNFRF9QQVJBTShyZXF1ZXN0KTsKIH0K
IAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUNvbW1l
bnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01Db21tZW50LmgKaW5kZXggNjZiZmI2M2E0OGU4YmY3N2JlZGQ4OTdiMDFlMDM1
MzRmMzQzYWZiOC4uZmM3M2FiMDBiYzEwMjZmOWQ5YmNhYjUwMGE5Y2QxZjM4ZDdjZDllZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUNvbW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NQ29tbWVudC5oCkBAIC00NSw3ICs0NSw3
IEBAIHN0cnVjdCBfV2ViS2l0RE9NQ29tbWVudENsYXNzIHsKICAgICBXZWJLaXRET01DaGFyYWN0
ZXJEYXRhQ2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lU
X0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fY29tbWVudF9nZXRfdHlwZSh2b2lkKTsKIAog
R19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01JbXBsZW1lbnRhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
RE9NSW1wbGVtZW50YXRpb24uY3BwCmluZGV4IDQ0NTkyNmUyNDU1MTUzMDJiZWNmMTFkMDhkNTli
YzBhODVhMWFkZDguLmY5MWNmNTBhMDZmODNmNDZiYzQxMDkxMzRiOWJiYmY4YTI2NmEyZTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01ET01JbXBsZW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTUltcGxlbWVu
dGF0aW9uLmNwcApAQCAtNDIsNiArNDIsOCBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NRE9N
SW1wbGVtZW50YXRpb25Qcml2YXRlIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6RE9NSW1wbGVtZW50
YXRpb24+IGNvcmVPYmplY3Q7CiB9IFdlYktpdERPTURPTUltcGxlbWVudGF0aW9uUHJpdmF0ZTsK
IAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBXZWJLaXRET01ET01JbXBsZW1lbnRhdGlvbioga2l0KFdlYkNvcmU6OkRPTUltcGxlbWVu
dGF0aW9uKiBvYmopCkBAIC0xODEsMyArMTgzLDQgQEAgV2ViS2l0RE9NSFRNTERvY3VtZW50KiB3
ZWJraXRfZG9tX2RvbV9pbXBsZW1lbnRhdGlvbl9jcmVhdGVfaHRtbF9kb2N1bWVudChXZWJLaXQK
ICAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7CiB9CiAKK0dfR05V
Q19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01JbXBsZW1lbnRh
dGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTURPTUltcGxlbWVudGF0aW9uLmgKaW5kZXggMGU5MmU4MWQ1NTdkYzdiZWY3
NGViMTJlYTliYWJjOGU0OGNlMzAxOC4uMmVjMDQyZmQ4ZjZlYzdkM2U1ZTFhZjkwZTAxYWU4MmZm
Yjg0ZGUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTUltcGxlbWVudGF0aW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURP
TUltcGxlbWVudGF0aW9uLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01ET01J
bXBsZW1lbnRhdGlvbkNsYXNzIHsKICAgICBXZWJLaXRET01PYmplY3RDbGFzcyBwYXJlbnRfY2xh
c3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Vi
a2l0X2RvbV9kb21faW1wbGVtZW50YXRpb25fZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTUs
OCArNTUsMTAgQEAgd2Via2l0X2RvbV9kb21faW1wbGVtZW50YXRpb25fZ2V0X3R5cGUodm9pZCk7
CiAgKiBAdmVyc2lvbjogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0
X2RvbV9kb21faW1wbGVtZW50YXRpb25faGFzX2ZlYXR1cmUoV2ViS2l0RE9NRE9NSW1wbGVtZW50
YXRpb24qIHNlbGYsIGNvbnN0IGdjaGFyKiBmZWF0dXJlLCBjb25zdCBnY2hhciogdmVyc2lvbik7
CiAKIC8qKgpAQCAtNjgsOCArNzAsMTAgQEAgd2Via2l0X2RvbV9kb21faW1wbGVtZW50YXRpb25f
aGFzX2ZlYXR1cmUoV2ViS2l0RE9NRE9NSW1wbGVtZW50YXRpb24qIHNlbGYsIGNvbnMKICAqIEBl
cnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0
RE9NRG9jdW1lbnRUeXBlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRG9jdW1lbnRUeXBlKgor
V0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRG9jdW1lbnRUeXBlKgogd2Via2l0X2RvbV9kb21f
aW1wbGVtZW50YXRpb25fY3JlYXRlX2RvY3VtZW50X3R5cGUoV2ViS2l0RE9NRE9NSW1wbGVtZW50
YXRpb24qIHNlbGYsIGNvbnN0IGdjaGFyKiBxdWFsaWZpZWROYW1lLCBjb25zdCBnY2hhciogcHVi
bGljSWQsIGNvbnN0IGdjaGFyKiBzeXN0ZW1JZCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAg
LTgxLDggKzg1LDEwIEBAIHdlYmtpdF9kb21fZG9tX2ltcGxlbWVudGF0aW9uX2NyZWF0ZV9kb2N1
bWVudF90eXBlKFdlYktpdERPTURPTUltcGxlbWVudGF0aW9uKiBzCiAgKiBAZXJyb3I6ICNHRXJy
b3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTURvY3VtZW50
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRG9jdW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBX
ZWJLaXRET01Eb2N1bWVudCoKIHdlYmtpdF9kb21fZG9tX2ltcGxlbWVudGF0aW9uX2NyZWF0ZV9k
b2N1bWVudChXZWJLaXRET01ET01JbXBsZW1lbnRhdGlvbiogc2VsZiwgY29uc3QgZ2NoYXIqIG5h
bWVzcGFjZVVSSSwgY29uc3QgZ2NoYXIqIHF1YWxpZmllZE5hbWUsIFdlYktpdERPTURvY3VtZW50
VHlwZSogZG9jdHlwZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTkzLDggKzk5LDEwIEBA
IHdlYmtpdF9kb21fZG9tX2ltcGxlbWVudGF0aW9uX2NyZWF0ZV9kb2N1bWVudChXZWJLaXRET01E
T01JbXBsZW1lbnRhdGlvbiogc2VsZiwKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVy
bnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NQ1NTU3R5bGVTaGVldAorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIFdlYktpdERPTUNTU1N0eWxlU2hlZXQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRE
T01DU1NTdHlsZVNoZWV0Kgogd2Via2l0X2RvbV9kb21faW1wbGVtZW50YXRpb25fY3JlYXRlX2Nz
c19zdHlsZV9zaGVldChXZWJLaXRET01ET01JbXBsZW1lbnRhdGlvbiogc2VsZiwgY29uc3QgZ2No
YXIqIHRpdGxlLCBjb25zdCBnY2hhciogbWVkaWEsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBA
IC0xMDMsOCArMTExLDEwIEBAIHdlYmtpdF9kb21fZG9tX2ltcGxlbWVudGF0aW9uX2NyZWF0ZV9j
c3Nfc3R5bGVfc2hlZXQoV2ViS2l0RE9NRE9NSW1wbGVtZW50YXRpb24qCiAgKiBAdGl0bGU6IEEg
I2djaGFyCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01IVE1M
RG9jdW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MRG9jdW1lbnQqCitXRUJLSVRf
REVQUkVDQVRFRCBXZWJLaXRET01IVE1MRG9jdW1lbnQqCiB3ZWJraXRfZG9tX2RvbV9pbXBsZW1l
bnRhdGlvbl9jcmVhdGVfaHRtbF9kb2N1bWVudChXZWJLaXRET01ET01JbXBsZW1lbnRhdGlvbiog
c2VsZiwgY29uc3QgZ2NoYXIqIHRpdGxlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01ET01TZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVNlbGVjdGlvbi5jcHAKaW5kZXggZjg1ZjI1NDU1
NjlkNzIyNDU2MDcxZTA3MzJkZWE2ZWM1ZDI3YjFhNC4uZDA5NDdlNDZiMzk3N2VjZmZlOWM3MDQ5
YmNkMTYzYTkyODJiZDFiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVNlbGVjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTURPTVNlbGVjdGlvbi5jcHAKQEAgLTM5LDYgKzM5LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dl
YktpdERPTURPTVNlbGVjdGlvblByaXZhdGUgewogICAgIFJlZlB0cjxXZWJDb3JlOjpET01TZWxl
Y3Rpb24+IGNvcmVPYmplY3Q7CiB9IFdlYktpdERPTURPTVNlbGVjdGlvblByaXZhdGU7CiAKK0df
R05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
V2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBraXQoV2ViQ29yZTo6RE9NU2VsZWN0aW9uKiBvYmopCkBA
IC01MjksMyArNTMxLDQgQEAgZ3Vsb25nIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfZXh0
ZW50X29mZnNldChXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYpCiAgICAgcmV0dXJuIHJlc3Vs
dDsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TURPTVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVNlbGVjdGlvbi5oCmluZGV4IGFlNTU4Yjk0NGEzYTQ5
MDU3NDRlZGU3Y2FjNjkyZTZlOWJhNDAyZWQuLjljYTA3ZWZhMzE2MjY3NDZjOWM0OTM5OWMyMjcy
Nzc3NGY1ZDMxNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01TZWxlY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9N
U2VsZWN0aW9uLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01ET01TZWxlY3Rp
b25DbGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAot
V0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fZG9t
X3NlbGVjdGlvbl9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01NSw4ICs1NSwxMCBAQCB3ZWJr
aXRfZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X3R5cGUodm9pZCk7CiAgKiBAb2Zmc2V0OiBBICNndWxv
bmcKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBS
RUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9jb2xsYXBzZShXZWJLaXRET01E
T01TZWxlY3Rpb24qIHNlbGYsIFdlYktpdERPTU5vZGUqIG5vZGUsIGd1bG9uZyBvZmZzZXQpOwog
CiAvKioKQEAgLTY1LDggKzY3LDEwIEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9jb2xsYXBz
ZShXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYsIFdlYktpdERPTU5vZGUqIG5vCiAgKiBAZXJy
b3I6ICNHRXJyb3IKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9jb2xsYXBzZV90
b19lbmQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8q
KgpAQCAtNzUsOCArNzksMTAgQEAgd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2NvbGxhcHNlX3Rv
X2VuZChXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYsIEdFcnJvcioqIGUKICAqIEBlcnJvcjog
I0dFcnJvcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2NvbGxhcHNlX3RvX3N0
YXJ0KFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioK
QEAgLTg0LDggKzkwLDEwIEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9jb2xsYXBzZV90b19z
dGFydChXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYsIEdFcnJvcioqCiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NRE9NU2VsZWN0aW9uCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25f
ZGVsZXRlX2Zyb21fZG9jdW1lbnQoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKIAogLyoq
CkBAIC05Nyw4ICsxMDUsMTAgQEAgd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2RlbGV0ZV9mcm9t
X2RvY3VtZW50KFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNn
Ym9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dF
QktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fY29udGFp
bnNfbm9kZShXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYsIFdlYktpdERPTU5vZGUqIG5vZGUs
IGdib29sZWFuIGFsbG93UGFydGlhbCk7CiAKIC8qKgpAQCAtMTA3LDggKzExNywxMCBAQCB3ZWJr
aXRfZG9tX2RvbV9zZWxlY3Rpb25fY29udGFpbnNfbm9kZShXZWJLaXRET01ET01TZWxlY3Rpb24q
IHNlbGYsIFdlYktpdERPTU5vZAogICogQG5vZGU6IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBT
aW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9zZWxlY3RfYWxsX2NoaWxkcmVuKFdlYktpdERPTURP
TVNlbGVjdGlvbiogc2VsZiwgV2ViS2l0RE9NTm9kZSogbm9kZSk7CiAKIC8qKgpAQCAtMTE5LDgg
KzEzMSwxMCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fc2VsZWN0X2FsbF9jaGlsZHJlbihX
ZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYsIFdlYktpdAogICogQGVycm9yOiAjR0Vycm9yCiAg
KgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZXh0ZW5kKFdlYktpdERPTURPTVNlbGVj
dGlvbiogc2VsZiwgV2ViS2l0RE9NTm9kZSogbm9kZSwgZ3Vsb25nIG9mZnNldCwgR0Vycm9yKiog
ZXJyb3IpOwogCiAvKioKQEAgLTEzMiw4ICsxNDYsMTAgQEAgd2Via2l0X2RvbV9kb21fc2VsZWN0
aW9uX2V4dGVuZChXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYsIFdlYktpdERPTU5vZGUqIG5v
ZGUKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NUmFuZ2UKICAqCiAg
KiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIFdlYktpdERPTVJhbmdlKgorV0VCS0lUX0RF
UFJFQ0FURUQgV2ViS2l0RE9NUmFuZ2UqCiB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X3Jh
bmdlX2F0KFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZiwgZ3Vsb25nIGluZGV4LCBHRXJyb3Iq
KiBlcnJvcik7CiAKIC8qKgpAQCAtMTQxLDggKzE1NywxMCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxl
Y3Rpb25fZ2V0X3JhbmdlX2F0KFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZiwgZ3Vsb25nIGlu
ZGV4LAogICogQHNlbGY6IEEgI1dlYktpdERPTURPTVNlbGVjdGlvbgogICoKICAqIFNpbmNlOiAy
LjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9kb21fc2VsZWN0aW9uX3JlbW92ZV9hbGxfcmFuZ2VzKFdlYktpdERPTURPTVNlbGVjdGlv
biogc2VsZik7CiAKIC8qKgpAQCAtMTUxLDggKzE2OSwxMCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxl
Y3Rpb25fcmVtb3ZlX2FsbF9yYW5nZXMoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKICAq
IEByYW5nZTogQSAjV2ViS2l0RE9NUmFuZ2UKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJL
SVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3NlbGVj
dGlvbl9hZGRfcmFuZ2UoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmLCBXZWJLaXRET01SYW5n
ZSogcmFuZ2UpOwogCiAvKioKQEAgLTE2NCw4ICsxODQsMTAgQEAgd2Via2l0X2RvbV9kb21fc2Vs
ZWN0aW9uX2FkZF9yYW5nZShXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYsIFdlYktpdERPTVJh
bmdlKgogICogQGV4dGVudE9mZnNldDogQSAjZ3Vsb25nCiAgKgogICogU2luY2U6IDIuMTYKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2Rv
bV9zZWxlY3Rpb25fc2V0X2Jhc2VfYW5kX2V4dGVudChXZWJLaXRET01ET01TZWxlY3Rpb24qIHNl
bGYsIFdlYktpdERPTU5vZGUqIGJhc2VOb2RlLCBndWxvbmcgYmFzZU9mZnNldCwgV2ViS2l0RE9N
Tm9kZSogZXh0ZW50Tm9kZSwgZ3Vsb25nIGV4dGVudE9mZnNldCk7CiAKIC8qKgpAQCAtMTc1LDgg
KzE5NywxMCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fc2V0X2Jhc2VfYW5kX2V4dGVudChX
ZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYsIFdlYktpdAogICogQG9mZnNldDogQSAjZ3Vsb25n
CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fc2V0X3Bvc2l0aW9uKFdlYktpdERP
TURPTVNlbGVjdGlvbiogc2VsZiwgV2ViS2l0RE9NTm9kZSogbm9kZSwgZ3Vsb25nIG9mZnNldCk7
CiAKIC8qKgpAQCAtMTg0LDggKzIwOCwxMCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fc2V0
X3Bvc2l0aW9uKFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZiwgV2ViS2l0RE9NTm9kZQogICog
QHNlbGY6IEEgI1dlYktpdERPTURPTVNlbGVjdGlvbgogICoKICAqIFNpbmNlOiAyLjE2CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21f
c2VsZWN0aW9uX2VtcHR5KFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZik7CiAKIC8qKgpAQCAt
MTk2LDggKzIyMiwxMCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZW1wdHkoV2ViS2l0RE9N
RE9NU2VsZWN0aW9uKiBzZWxmKTsKICAqIEBncmFudWxhcml0eTogQSAjZ2NoYXIKICAqCiAgKiBT
aW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9tb2RpZnkoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBz
ZWxmLCBjb25zdCBnY2hhciogYWx0ZXIsIGNvbnN0IGdjaGFyKiBkaXJlY3Rpb24sIGNvbnN0IGdj
aGFyKiBncmFudWxhcml0eSk7CiAKIC8qKgpAQCAtMjA3LDggKzIzNSwxMCBAQCB3ZWJraXRfZG9t
X2RvbV9zZWxlY3Rpb25fbW9kaWZ5KFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZiwgY29uc3Qg
Z2NoYXIqIGFsdGVyLAogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01O
b2RlCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgor
V0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlv
bl9nZXRfYW5jaG9yX25vZGUoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKIAogLyoqCkBA
IC0yMTgsOCArMjQ4LDEwIEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfYW5jaG9yX25v
ZGUoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2d1bG9uZwog
ICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQUkVD
QVRFRCBndWxvbmcKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfYW5jaG9yX29mZnNldChX
ZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYpOwogCiAvKioKQEAgLTIyOSw4ICsyNjEsMTAgQEAg
d2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2dldF9hbmNob3Jfb2Zmc2V0KFdlYktpdERPTURPTVNl
bGVjdGlvbiogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERP
TU5vZGUKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUq
CitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9kb21fc2VsZWN0
aW9uX2dldF9mb2N1c19ub2RlKFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZik7CiAKIC8qKgpA
QCAtMjQwLDggKzI3NCwxMCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X2ZvY3VzX25v
ZGUoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2d1bG9uZwog
ICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQUkVD
QVRFRCBndWxvbmcKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfZm9jdXNfb2Zmc2V0KFdl
YktpdERPTURPTVNlbGVjdGlvbiogc2VsZik7CiAKIC8qKgpAQCAtMjUxLDggKzI4NywxMCBAQCB3
ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X2ZvY3VzX29mZnNldChXZWJLaXRET01ET01TZWxl
Y3Rpb24qIHNlbGYpOwogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KICAqCiAgKiBTaW5jZTogMi4x
NgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogICovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgog
d2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2dldF9pc19jb2xsYXBzZWQoV2ViS2l0RE9NRE9NU2Vs
ZWN0aW9uKiBzZWxmKTsKIAogLyoqCkBAIC0yNjIsOCArMzAwLDEwIEBAIHdlYmtpdF9kb21fZG9t
X3NlbGVjdGlvbl9nZXRfaXNfY29sbGFwc2VkKFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZik7
CiAgKiBSZXR1cm5zOiBBICNndWxvbmcKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRf
QVBJIGd1bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vsb25nCiB3ZWJraXRfZG9tX2RvbV9zZWxl
Y3Rpb25fZ2V0X3JhbmdlX2NvdW50KFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZik7CiAKIC8q
KgpAQCAtMjczLDggKzMxMywxMCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X3Jhbmdl
X2NvdW50KFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnY2hh
cgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfc2VsZWN0aW9uX3R5
cGUoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKIAogLyoqCkBAIC0yODQsOCArMzI2LDEw
IEBAIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfc2VsZWN0aW9uX3R5cGUoV2ViS2l0RE9N
RE9NU2VsZWN0aW9uKiBzZWxmKTsKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2Vi
S2l0RE9NTm9kZQogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9N
Tm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX2RvbV9z
ZWxlY3Rpb25fZ2V0X2Jhc2Vfbm9kZShXZWJLaXRET01ET01TZWxlY3Rpb24qIHNlbGYpOwogCiAv
KioKQEAgLTI5NSw4ICszMzksMTAgQEAgd2Via2l0X2RvbV9kb21fc2VsZWN0aW9uX2dldF9iYXNl
X25vZGUoV2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2d1bG9u
ZwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQ
UkVDQVRFRCBndWxvbmcKIHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfYmFzZV9vZmZzZXQo
V2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKIAogLyoqCkBAIC0zMDYsOCArMzUyLDEwIEBA
IHdlYmtpdF9kb21fZG9tX3NlbGVjdGlvbl9nZXRfYmFzZV9vZmZzZXQoV2ViS2l0RE9NRE9NU2Vs
ZWN0aW9uKiBzZWxmKTsKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9N
Tm9kZQogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoK
K1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rp
b25fZ2V0X2V4dGVudF9ub2RlKFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZik7CiAKIC8qKgpA
QCAtMzE3LDggKzM2NSwxMCBAQCB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X2V4dGVudF9u
b2RlKFdlYktpdERPTURPTVNlbGVjdGlvbiogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNndWxvbmcK
ICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIGd1bG9uZworV0VCS0lUX0RFUFJF
Q0FURUQgZ3Vsb25nCiB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fZ2V0X2V4dGVudF9vZmZzZXQo
V2ViS2l0RE9NRE9NU2VsZWN0aW9uKiBzZWxmKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01ET01Ub2tlbkxpc3QuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVRva2VuTGlzdC5jcHAKaW5kZXggOWE5MjE3
MzJkM2JhZGM3MGJjNmIwZTFiNmVhMGJiODA5Nzc0NGQ0OC4uNjVjN2ZiZTI3OGNmYzEyMzk3OWFl
ZGQ4NjhkNzA2ZWYyNGUyODY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVRva2VuTGlzdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTURPTVRva2VuTGlzdC5jcHAKQEAgLTM3LDYgKzM3LDggQEAgdHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdERPTURPTVRva2VuTGlzdFByaXZhdGUgewogICAgIFJlZlB0cjxXZWJDb3JlOjpET01U
b2tlbkxpc3Q+IGNvcmVPYmplY3Q7CiB9IFdlYktpdERPTURPTVRva2VuTGlzdFByaXZhdGU7CiAK
K0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogV2ViS2l0RE9NRE9NVG9rZW5MaXN0KiBraXQoV2ViQ29yZTo6RE9NVG9rZW5MaXN0KiBvYmop
CkBAIC0yODAsMyArMjgyLDQgQEAgdm9pZCB3ZWJraXRfZG9tX2RvbV90b2tlbl9saXN0X3NldF92
YWx1ZShXZWJLaXRET01ET01Ub2tlbkxpc3QqIHNlbGYsIGNvbnN0IGdjaGEKICAgICBpdGVtLT5z
ZXRWYWx1ZShjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FU
SU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01Ub2tlbkxpc3QuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01Ub2tlbkxpc3Qu
aAppbmRleCAyMjNmMGUyNjMwNmI3YzEyNDBmMTFhMzMzOWNhY2RhY2U2YTEyNTk0Li42MDNkYjcx
YTc5OTJkZjM0MmE0MmY3N2ZmYmJiYTYyNDI4MzMwYTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NVG9r
ZW5MaXN0LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTURPTVRva2VuTGlzdC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVj
dCBfV2ViS2l0RE9NRE9NVG9rZW5MaXN0Q2xhc3MgewogICAgIFdlYktpdERPTU9iamVjdENsYXNz
IHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVE
IEdUeXBlCiB3ZWJraXRfZG9tX2RvbV90b2tlbl9saXN0X2dldF90eXBlKHZvaWQpOwogCiAvKioK
QEAgLTU2LDggKzU2LDEwIEBAIHdlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfZ2V0X3R5cGUodm9p
ZCk7CiAgKiBSZXR1cm5zOiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJ
VF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9tX3Rv
a2VuX2xpc3RfaXRlbShXZWJLaXRET01ET01Ub2tlbkxpc3QqIHNlbGYsIGd1bG9uZyBpbmRleCk7
CiAKIC8qKgpAQCAtNjgsOCArNzAsMTAgQEAgd2Via2l0X2RvbV9kb21fdG9rZW5fbGlzdF9pdGVt
KFdlYktpdERPTURPTVRva2VuTGlzdCogc2VsZiwgZ3Vsb25nIGluZGV4KTsKICAqIFJldHVybnM6
IEEgI2dib29sZWFuCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnYm9vbGVh
bgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3Rf
Y29udGFpbnMoV2ViS2l0RE9NRE9NVG9rZW5MaXN0KiBzZWxmLCBjb25zdCBnY2hhciogdG9rZW4p
OwogCiAvKioKQEAgLTc5LDggKzgzLDEwIEBAIHdlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfY29u
dGFpbnMoV2ViS2l0RE9NRE9NVG9rZW5MaXN0KiBzZWxmLCBjb25zdCBnY2hhciogdG9rCiAgKiBA
Li4uOiBsaXN0IG9mICNnY2hhciBlbmRlZCBieSAlTlVMTC4KICAqCiAgKiBTaW5jZTogMi4xNgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
ICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
ZG9tX3Rva2VuX2xpc3RfYWRkKFdlYktpdERPTURPTVRva2VuTGlzdCogc2VsZiwgR0Vycm9yKiog
ZXJyb3IsIC4uLik7CiAKIC8qKgpAQCAtOTAsOCArOTYsMTAgQEAgd2Via2l0X2RvbV9kb21fdG9r
ZW5fbGlzdF9hZGQoV2ViS2l0RE9NRE9NVG9rZW5MaXN0KiBzZWxmLCBHRXJyb3IqKiBlcnJvciwg
Li4uKTsKICAqIEAuLi46IGxpc3Qgb2YgI2djaGFyIGVuZGVkIGJ5ICVOVUxMLgogICoKICAqIFNp
bmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9kb21fdG9rZW5fbGlzdF9yZW1vdmUoV2ViS2l0RE9NRE9NVG9rZW5MaXN0KiBz
ZWxmLCBHRXJyb3IqKiBlcnJvciwgLi4uKTsKIAogLyoqCkBAIC0xMDQsOCArMTEyLDEwIEBAIHdl
YmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfcmVtb3ZlKFdlYktpdERPTURPTVRva2VuTGlzdCogc2Vs
ZiwgR0Vycm9yKiogZXJyb3IsIC4uCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgogICoKICAqIFNp
bmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdi
b29sZWFuCiB3ZWJraXRfZG9tX2RvbV90b2tlbl9saXN0X3RvZ2dsZShXZWJLaXRET01ET01Ub2tl
bkxpc3QqIHNlbGYsIGNvbnN0IGdjaGFyKiB0b2tlbiwgZ2Jvb2xlYW4gZm9yY2UsIEdFcnJvcioq
IGVycm9yKTsKIAogLyoqCkBAIC0xMTYsOCArMTI2LDEwIEBAIHdlYmtpdF9kb21fZG9tX3Rva2Vu
X2xpc3RfdG9nZ2xlKFdlYktpdERPTURPTVRva2VuTGlzdCogc2VsZiwgY29uc3QgZ2NoYXIqIHRv
a2VuCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRf
QVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3Rva2VuX2xp
c3RfcmVwbGFjZShXZWJLaXRET01ET01Ub2tlbkxpc3QqIHNlbGYsIGNvbnN0IGdjaGFyKiB0b2tl
biwgY29uc3QgZ2NoYXIqIG5ld1Rva2VuLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTI3
LDggKzEzOSwxMCBAQCB3ZWJraXRfZG9tX2RvbV90b2tlbl9saXN0X3JlcGxhY2UoV2ViS2l0RE9N
RE9NVG9rZW5MaXN0KiBzZWxmLCBjb25zdCBnY2hhciogdG9rZQogICogUmV0dXJuczogQSAjZ3Vs
b25nCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9E
RVBSRUNBVEVEIGd1bG9uZwogd2Via2l0X2RvbV9kb21fdG9rZW5fbGlzdF9nZXRfbGVuZ3RoKFdl
YktpdERPTURPTVRva2VuTGlzdCogc2VsZik7CiAKIC8qKgpAQCAtMTM4LDggKzE1MiwxMCBAQCB3
ZWJraXRfZG9tX2RvbV90b2tlbl9saXN0X2dldF9sZW5ndGgoV2ViS2l0RE9NRE9NVG9rZW5MaXN0
KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwot
V0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9k
b21fdG9rZW5fbGlzdF9nZXRfdmFsdWUoV2ViS2l0RE9NRE9NVG9rZW5MaXN0KiBzZWxmKTsKIAog
LyoqCkBAIC0xNDgsOCArMTY0LDEwIEBAIHdlYmtpdF9kb21fZG9tX3Rva2VuX2xpc3RfZ2V0X3Zh
bHVlKFdlYktpdERPTURPTVRva2VuTGlzdCogc2VsZik7CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAg
KgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2RvbV90b2tlbl9saXN0X3NldF92YWx1ZShXZWJLaXRET01ET01U
b2tlbkxpc3QqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01XaW5kb3cuY3BwCmluZGV4IDc1ZGZi
OTNmYWUxZDM4OGIyMTljOTM1NjNhYjIwMTY4ZjM4NjIyMDQuLjlhMzJhZGYxZjk4MzBiMmYzM2Uz
NTk4MjUzZDdlZjcwN2YyZjhkNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01ET01XaW5kb3cuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01ET01XaW5kb3cuY3BwCkBAIC00OCw2ICs0OCw4IEBAIHR5cGVkZWYgc3RydWN0IF9XZWJL
aXRET01ET01XaW5kb3dQcml2YXRlIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6RE9NV2luZG93PiBj
b3JlT2JqZWN0OwogfSBXZWJLaXRET01ET01XaW5kb3dQcml2YXRlOwogCitHX0dOVUNfQkVHSU5f
SUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTURP
TVdpbmRvdyoga2l0KFdlYkNvcmU6OkRPTVdpbmRvdyogb2JqKQpAQCAtMTA1NywzICsxMDU5LDQg
QEAgZ2Jvb2xlYW4gd2Via2l0X2RvbV9kb21fd2luZG93X3dlYmtpdF9tZXNzYWdlX2hhbmRsZXJz
X3Bvc3RfbWVzc2FnZShXZWJLaXRET01ET00KIAogICAgIHJldHVybiBUUlVFOwogfQorR19HTlVD
X0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURPTVdpbmRvdy5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTURPTVdpbmRvdy5oCmluZGV4IGI1NDhmY2IyZjVkODQzYWZjOWRiMjFlZDM3OTQwYmQ2ZGMx
MDJjZDIuLmMwZjU0YjhlYzMzYjU5MjIxYzBmMGZhOWRhNGEzNzI4ZDQ5NjZkZTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRE9NV2luZG93LmgKQEAgLTQ1LDcgKzQ1LDcg
QEAgc3RydWN0IF9XZWJLaXRET01ET01XaW5kb3dDbGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0
Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJF
Q0FURUQgR1R5cGUKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfdHlwZSh2b2lkKTsKIAogLyoq
CkBAIC01NSw4ICs1NSwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3R5cGUodm9pZCk7
CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTURPTVNlbGVjdGlvbgog
ICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRE9NU2VsZWN0aW9u
KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRE9NU2VsZWN0aW9uKgogd2Via2l0X2RvbV9k
b21fd2luZG93X2dldF9zZWxlY3Rpb24oV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoq
CkBAIC02NCw4ICs2NiwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3NlbGVjdGlvbihX
ZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURPTVdpbmRv
dwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21fd2luZG93X2ZvY3VzKFdlYktpdERPTURPTVdpbmRv
dyogc2VsZik7CiAKIC8qKgpAQCAtNzMsOCArNzcsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93
X2ZvY3VzKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
RE9NV2luZG93CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfYmx1cihXZWJLaXRET01E
T01XaW5kb3cqIHNlbGYpOwogCiAvKioKQEAgLTgyLDggKzg4LDEwIEBAIHdlYmtpdF9kb21fZG9t
X3dpbmRvd19ibHVyKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NRE9NV2luZG93CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfY2xvc2UoV2Vi
S2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC05MSw4ICs5OSwxMCBAQCB3ZWJraXRf
ZG9tX2RvbV93aW5kb3dfY2xvc2UoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01ET01XaW5kb3cKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRf
QVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19w
cmludChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAvKioKQEAgLTEwMCw4ICsxMTAsMTAg
QEAgd2Via2l0X2RvbV9kb21fd2luZG93X3ByaW50KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRE9NV2luZG93CiAgKgogICogU2luY2U6IDIuMTYKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2Rv
bV93aW5kb3dfc3RvcChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAvKioKQEAgLTExMCw4
ICsxMjIsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X3N0b3AoV2ViS2l0RE9NRE9NV2luZG93
KiBzZWxmKTsKICAqIEBtZXNzYWdlOiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21f
d2luZG93X2FsZXJ0KFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgY29uc3QgZ2NoYXIqIG1lc3Nh
Z2UpOwogCiAvKioKQEAgLTEyMiw4ICsxMzYsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X2Fs
ZXJ0KFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgY29uc3QgZ2NoYXIqIG1lc3NhZ2UpOwogICog
UmV0dXJuczogQSAjZ2Jvb2xlYW4KICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJ
IGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9kb21fd2lu
ZG93X2NvbmZpcm0oV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBjb25zdCBnY2hhciogbWVzc2Fn
ZSk7CiAKIC8qKgpAQCAtMTM1LDggKzE1MSwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfY29u
ZmlybShXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGNvbnN0IGdjaGFyKiBtZXNzYWdlKTsKICAq
IFJldHVybnM6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBn
Y2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb21fd2luZG93X3By
b21wdChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGNvbnN0IGdjaGFyKiBtZXNzYWdlLCBjb25z
dCBnY2hhciogZGVmYXVsdFZhbHVlKTsKIAogLyoqCkBAIC0xNTMsOCArMTcxLDEwIEBAIHdlYmtp
dF9kb21fZG9tX3dpbmRvd19wcm9tcHQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBjb25zdCBn
Y2hhciogbWVzc2FnZSwgY29uCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNl
OiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29s
ZWFuCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZmluZChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYs
IGNvbnN0IGdjaGFyKiBzdHJpbmcsIGdib29sZWFuIGNhc2VTZW5zaXRpdmUsIGdib29sZWFuIGJh
Y2t3YXJkcywgZ2Jvb2xlYW4gd3JhcCwgZ2Jvb2xlYW4gd2hvbGVXb3JkLCBnYm9vbGVhbiBzZWFy
Y2hJbkZyYW1lcywgZ2Jvb2xlYW4gc2hvd0RpYWxvZyk7CiAKIC8qKgpAQCAtMTY0LDggKzE4NCwx
MCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZmluZChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYs
IGNvbnN0IGdjaGFyKiBzdHJpbmcsIGdib29sZQogICogQHk6IEEgI2dkb3VibGUKICAqCiAgKiBT
aW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21fZG9tX3dpbmRvd19zY3JvbGxfYnkoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxm
LCBnZG91YmxlIHgsIGdkb3VibGUgeSk7CiAKIC8qKgpAQCAtMTc1LDggKzE5NywxMCBAQCB3ZWJr
aXRfZG9tX2RvbV93aW5kb3dfc2Nyb2xsX2J5KFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgZ2Rv
dWJsZSB4LCBnZG91YmxlIHkpOwogICogQHk6IEEgI2dkb3VibGUKICAqCiAgKiBTaW5jZTogMi4x
NgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21fZG9tX3dpbmRvd19zY3JvbGxfdG8oV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBnZG91Ymxl
IHgsIGdkb3VibGUgeSk7CiAKIC8qKgpAQCAtMTg2LDggKzIxMCwxMCBAQCB3ZWJraXRfZG9tX2Rv
bV93aW5kb3dfc2Nyb2xsX3RvKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgZ2RvdWJsZSB4LCBn
ZG91YmxlIHkpOwogICogQHk6IEEgI2dmbG9hdAogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21fd2lu
ZG93X21vdmVfYnkoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBnZmxvYXQgeCwgZ2Zsb2F0IHkp
OwogCiAvKioKQEAgLTE5Nyw4ICsyMjMsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X21vdmVf
YnkoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBnZmxvYXQgeCwgZ2Zsb2F0IHkpOwogICogQHk6
IEEgI2dmbG9hdAogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21fd2luZG93X21vdmVfdG8oV2ViS2l0
RE9NRE9NV2luZG93KiBzZWxmLCBnZmxvYXQgeCwgZ2Zsb2F0IHkpOwogCiAvKioKQEAgLTIwOCw4
ICsyMzYsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X21vdmVfdG8oV2ViS2l0RE9NRE9NV2lu
ZG93KiBzZWxmLCBnZmxvYXQgeCwgZ2Zsb2F0IHkpOwogICogQHk6IEEgI2dmbG9hdAogICoKICAq
IFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9p
ZAogd2Via2l0X2RvbV9kb21fd2luZG93X3Jlc2l6ZV9ieShXZWJLaXRET01ET01XaW5kb3cqIHNl
bGYsIGdmbG9hdCB4LCBnZmxvYXQgeSk7CiAKIC8qKgpAQCAtMjE5LDggKzI0OSwxMCBAQCB3ZWJr
aXRfZG9tX2RvbV93aW5kb3dfcmVzaXplX2J5KFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgZ2Zs
b2F0IHgsIGdmbG9hdCB5KTsKICAqIEBoZWlnaHQ6IEEgI2dmbG9hdAogICoKICAqIFNpbmNlOiAy
LjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9kb21fd2luZG93X3Jlc2l6ZV90byhXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGdmbG9h
dCB3aWR0aCwgZ2Zsb2F0IGhlaWdodCk7CiAKIC8qKgpAQCAtMjMyLDggKzI2NCwxMCBAQCB3ZWJr
aXRfZG9tX2RvbV93aW5kb3dfcmVzaXplX3RvKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgZ2Zs
b2F0IHdpZHRoLCBnZmxvYXQgaAogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJL
aXRET01DU1NTdHlsZURlY2xhcmF0aW9uCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lU
X0FQSSBXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uKgorV0VCS0lUX0RFUFJFQ0FURUQgV2Vi
S2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbioKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfY29t
cHV0ZWRfc3R5bGUoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmLCBXZWJLaXRET01FbGVtZW50KiBl
bGVtZW50LCBjb25zdCBnY2hhciogcHNldWRvRWxlbWVudCk7CiAKIC8qKgpAQCAtMjQxLDggKzI3
NSwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2NvbXB1dGVkX3N0eWxlKFdlYktpdERP
TURPTVdpbmRvdyogc2VsZiwgV2ViS2l0RE9NRWxlbQogICogQHNlbGY6IEEgI1dlYktpdERPTURP
TVdpbmRvdwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21fd2luZG93X2NhcHR1cmVfZXZlbnRzKFdl
YktpdERPTURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpAQCAtMjUwLDggKzI4NiwxMCBAQCB3ZWJr
aXRfZG9tX2RvbV93aW5kb3dfY2FwdHVyZV9ldmVudHMoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxm
KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01ET01XaW5kb3cKICAqCiAgKiBTaW5jZTogMi4xNgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
ICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
ZG9tX3dpbmRvd19yZWxlYXNlX2V2ZW50cyhXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAv
KioKQEAgLTI2MSw4ICsyOTksMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X3JlbGVhc2VfZXZl
bnRzKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9u
ZSk6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRf
QVBJIFdlYktpdERPTUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50
Kgogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9mcmFtZV9lbGVtZW50KFdlYktpdERPTURPTVdp
bmRvdyogc2VsZik7CiAKIC8qKgpAQCAtMjcyLDggKzMxMiwxMCBAQCB3ZWJraXRfZG9tX2RvbV93
aW5kb3dfZ2V0X2ZyYW1lX2VsZW1lbnQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIFJl
dHVybnM6IEEgI2dib29sZWFuCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBn
Ym9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZG9tX3dpbmRv
d19nZXRfb2Zmc2NyZWVuX2J1ZmZlcmluZyhXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAv
KioKQEAgLTI4Myw4ICszMjUsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9vZmZzY3Jl
ZW5fYnVmZmVyaW5nKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNn
bG9uZwogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9E
RVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X291dGVyX2hlaWdodChX
ZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAvKioKQEAgLTI5NCw4ICszMzgsMTAgQEAgd2Vi
a2l0X2RvbV9kb21fd2luZG93X2dldF9vdXRlcl9oZWlnaHQoV2ViS2l0RE9NRE9NV2luZG93KiBz
ZWxmKTsKICAqIFJldHVybnM6IEEgI2dsb25nCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VC
S0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fZG9tX3dp
bmRvd19nZXRfb3V0ZXJfd2lkdGgoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBA
IC0zMDUsOCArMzUxLDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfb3V0ZXJfd2lkdGgo
V2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2dsb25nCiAgKgogICog
U2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xv
bmcKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfaW5uZXJfaGVpZ2h0KFdlYktpdERPTURPTVdp
bmRvdyogc2VsZik7CiAKIC8qKgpAQCAtMzE2LDggKzM2NCwxMCBAQCB3ZWJraXRfZG9tX2RvbV93
aW5kb3dfZ2V0X2lubmVyX2hlaWdodChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogICogUmV0
dXJuczogQSAjZ2xvbmcKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIGdsb25n
CitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9pbm5l
cl93aWR0aChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAvKioKQEAgLTMyNyw4ICszNzcs
MTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9pbm5lcl93aWR0aChXZWJLaXRET01ET01X
aW5kb3cqIHNlbGYpOwogICogUmV0dXJuczogQSAjZ2xvbmcKICAqCiAgKiBTaW5jZTogMi4xNgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
ICovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2Rv
bV9kb21fd2luZG93X2dldF9zY3JlZW5feChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAv
KioKQEAgLTMzOCw4ICszOTAsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zY3JlZW5f
eChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogICogUmV0dXJuczogQSAjZ2xvbmcKICAqCiAg
KiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBn
bG9uZwogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zY3JlZW5feShXZWJLaXRET01ET01XaW5k
b3cqIHNlbGYpOwogCiAvKioKQEAgLTM0OSw4ICs0MDMsMTAgQEAgd2Via2l0X2RvbV9kb21fd2lu
ZG93X2dldF9zY3JlZW5feShXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogICogUmV0dXJuczog
QSAjZ2xvbmcKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJL
SVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zY3JlZW5fbGVm
dChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAvKioKQEAgLTM2MCw4ICs0MTYsMTAgQEAg
d2Via2l0X2RvbV9kb21fd2luZG93X2dldF9zY3JlZW5fbGVmdChXZWJLaXRET01ET01XaW5kb3cq
IHNlbGYpOwogICogUmV0dXJuczogQSAjZ2xvbmcKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1X
RUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9kb21f
d2luZG93X2dldF9zY3JlZW5fdG9wKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpA
QCAtMzcxLDggKzQyOSwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3NjcmVlbl90b3Ao
V2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2dsb25nCiAgKgogICog
U2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xv
bmcKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2Nyb2xsX3goV2ViS2l0RE9NRE9NV2luZG93
KiBzZWxmKTsKIAogLyoqCkBAIC0zODIsOCArNDQyLDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRv
d19nZXRfc2Nyb2xsX3goV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIFJldHVybnM6IEEg
I2dsb25nCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lU
X0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfc2Nyb2xsX3koV2Vi
S2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC0zOTMsOCArNDU1LDEwIEBAIHdlYmtp
dF9kb21fZG9tX3dpbmRvd19nZXRfc2Nyb2xsX3koV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsK
ICAqIFJldHVybnM6IEEgI2dsb25nCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQ
SSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19n
ZXRfcGFnZV94X29mZnNldChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAvKioKQEAgLTQw
NCw4ICs0NjgsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9wYWdlX3hfb2Zmc2V0KFdl
YktpdERPTURPTVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnbG9uZwogICoKICAqIFNp
bmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25n
CiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3BhZ2VfeV9vZmZzZXQoV2ViS2l0RE9NRE9NV2lu
ZG93KiBzZWxmKTsKIAogLyoqCkBAIC00MTUsOCArNDgxLDEwIEBAIHdlYmtpdF9kb21fZG9tX3dp
bmRvd19nZXRfcGFnZV95X29mZnNldChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogICogUmV0
dXJuczogQSAjZ2Jvb2xlYW4KICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIGdi
b29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9kb21fd2luZG93
X2dldF9jbG9zZWQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC00MjYsOCAr
NDk0LDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfY2xvc2VkKFdlYktpdERPTURPTVdp
bmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNndWxvbmcKICAqCiAgKiBTaW5jZTogMi4xNgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
ICovCi1XRUJLSVRfQVBJIGd1bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vsb25nCiB3ZWJraXRf
ZG9tX2RvbV93aW5kb3dfZ2V0X2xlbmd0aChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAv
KioKQEAgLTQzNyw4ICs1MDcsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9sZW5ndGgo
V2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2djaGFyCiAgKgogICog
U2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdj
aGFyKgogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9uYW1lKFdlYktpdERPTURPTVdpbmRvdyog
c2VsZik7CiAKIC8qKgpAQCAtNDQ3LDggKzUxOSwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3df
Z2V0X25hbWUoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2NoYXIK
ICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19zZXRfbmFtZShXZWJLaXRET01ET01XaW5k
b3cqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNDU4LDggKzUzMiwxMCBA
QCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfc2V0X25hbWUoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxm
LCBjb25zdCBnY2hhciogdmFsdWUpOwogICogUmV0dXJuczogQSAjZ2NoYXIKICAqCiAgKiBTaW5j
ZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogICovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIq
CiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3N0YXR1cyhXZWJLaXRET01ET01XaW5kb3cqIHNl
bGYpOwogCiAvKioKQEAgLTQ2OCw4ICs1NDQsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X2dl
dF9zdGF0dXMoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2NoYXIK
ICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19zZXRfc3RhdHVzKFdlYktpdERPTURPTVdp
bmRvdyogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC00NzksOCArNTU3LDEw
IEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19zZXRfc3RhdHVzKFdlYktpdERPTURPTVdpbmRvdyog
c2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKICAqIFJldHVybnM6IEEgI2djaGFyCiAgKgogICog
U2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdj
aGFyKgogd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9kZWZhdWx0X3N0YXR1cyhXZWJLaXRET01E
T01XaW5kb3cqIHNlbGYpOwogCiAvKioKQEAgLTQ4OSw4ICs1NjksMTAgQEAgd2Via2l0X2RvbV9k
b21fd2luZG93X2dldF9kZWZhdWx0X3N0YXR1cyhXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwog
ICogQHZhbHVlOiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb21fd2luZG93X3NldF9k
ZWZhdWx0X3N0YXR1cyhXZWJLaXRET01ET01XaW5kb3cqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1
ZSk7CiAKIC8qKgpAQCAtNTAwLDggKzU4MiwxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfc2V0
X2RlZmF1bHRfc3RhdHVzKFdlYktpdERPTURPTVdpbmRvdyogc2VsZiwgY29uc3QgZ2NoYXIqCiAg
KiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTURPTVdpbmRvdwogICoKICAq
IFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRE9NV2luZG93KgorV0VCS0lU
X0RFUFJFQ0FURUQgV2ViS2l0RE9NRE9NV2luZG93Kgogd2Via2l0X2RvbV9kb21fd2luZG93X2dl
dF9zZWxmKFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpAQCAtNTExLDggKzU5NSwx
MCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3NlbGYoV2ViS2l0RE9NRE9NV2luZG93KiBz
ZWxmKTsKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NRE9NV2luZG93
CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBXZWJLaXRET01ET01XaW5kb3cq
CitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01ET01XaW5kb3cqCiB3ZWJraXRfZG9tX2RvbV93
aW5kb3dfZ2V0X3dpbmRvdyhXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAvKioKQEAgLTUy
Miw4ICs2MDgsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X2dldF93aW5kb3coV2ViS2l0RE9N
RE9NV2luZG93KiBzZWxmKTsKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0
RE9NRE9NV2luZG93CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBXZWJLaXRE
T01ET01XaW5kb3cqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01ET01XaW5kb3cqCiB3ZWJr
aXRfZG9tX2RvbV93aW5kb3dfZ2V0X2ZyYW1lcyhXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwog
CiAvKioKQEAgLTUzMyw4ICs2MjEsMTAgQEAgd2Via2l0X2RvbV9kb21fd2luZG93X2dldF9mcmFt
ZXMoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxs
KTogQSAjV2ViS2l0RE9NRE9NV2luZG93CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lU
X0FQSSBXZWJLaXRET01ET01XaW5kb3cqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01ET01X
aW5kb3cqCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X29wZW5lcihXZWJLaXRET01ET01XaW5k
b3cqIHNlbGYpOwogCiAvKioKQEAgLTU0NCw4ICs2MzQsMTAgQEAgd2Via2l0X2RvbV9kb21fd2lu
ZG93X2dldF9vcGVuZXIoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIFJldHVybnM6ICh0
cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NRE9NV2luZG93CiAgKgogICogU2luY2U6IDIuMTYK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICAqLwotV0VCS0lUX0FQSSBXZWJLaXRET01ET01XaW5kb3cqCitXRUJLSVRfREVQUkVDQVRFRCBX
ZWJLaXRET01ET01XaW5kb3cqCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3BhcmVudChXZWJL
aXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAvKioKQEAgLTU1NSw4ICs2NDcsMTAgQEAgd2Via2l0
X2RvbV9kb21fd2luZG93X2dldF9wYXJlbnQoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKICAq
IFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NRE9NV2luZG93CiAgKgogICog
U2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBXZWJLaXRET01ET01XaW5kb3cqCitXRUJLSVRf
REVQUkVDQVRFRCBXZWJLaXRET01ET01XaW5kb3cqCiB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0
X3RvcChXZWJLaXRET01ET01XaW5kb3cqIHNlbGYpOwogCiAvKioKQEAgLTU2Niw4ICs2NjAsMTAg
QEAgd2Via2l0X2RvbV9kb21fd2luZG93X2dldF90b3AoV2ViS2l0RE9NRE9NV2luZG93KiBzZWxm
KTsKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAq
CiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIFdlYktpdERPTURvY3VtZW50KgorV0VC
S0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRG9jdW1lbnQqCiB3ZWJraXRfZG9tX2RvbV93aW5kb3df
Z2V0X2RvY3VtZW50KFdlYktpdERPTURPTVdpbmRvdyogc2VsZik7CiAKIC8qKgpAQCAtNTc3LDgg
KzY3MywxMCBAQCB3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2RvY3VtZW50KFdlYktpdERPTURP
TVdpbmRvdyogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnZG91YmxlCiAgKgogICogU2luY2U6IDIu
MTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICAqLwotV0VCS0lUX0FQSSBnZG91YmxlCitXRUJLSVRfREVQUkVDQVRFRCBnZG91YmxlCiB3
ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X2RldmljZV9waXhlbF9yYXRpbyhXZWJLaXRET01ET01X
aW5kb3cqIHNlbGYpOwogCiAvKioKQEAgLTU4OCw4ICs2ODYsMTAgQEAgd2Via2l0X2RvbV9kb21f
d2luZG93X2dldF9kZXZpY2VfcGl4ZWxfcmF0aW8oV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsK
ICAqIFJldHVybnM6IEEgI2dsb25nCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQ
SSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fZG9tX3dpbmRvd19n
ZXRfb3JpZW50YXRpb24oV2ViS2l0RE9NRE9NV2luZG93KiBzZWxmKTsKIAogLyoqCkBAIC02MDEs
OCArNzAxLDEwIEBAIHdlYmtpdF9kb21fZG9tX3dpbmRvd19nZXRfb3JpZW50YXRpb24oV2ViS2l0
RE9NRE9NV2luZG93KiBzZWxmKTsKICAqIFJldHVybnM6IFdoZXRoZXIgdGhlIG1lc3NhZ2Ugd2Fz
IHN1Y2Nlc3NmdWxseSBzZW50LgogICoKICAqIFNpbmNlOiAyLjgKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBn
Ym9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZG9tX3dpbmRv
d193ZWJraXRfbWVzc2FnZV9oYW5kbGVyc19wb3N0X21lc3NhZ2UoV2ViS2l0RE9NRE9NV2luZG93
KiB3aW5kb3csIGNvbnN0IGdjaGFyKiBoYW5kbGVyLCBjb25zdCBnY2hhciogbWVzc2FnZSk7CiAK
IEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRGVwcmVjYXRlZC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRGVwcmVj
YXRlZC5jcHAKaW5kZXggZWM3MGYzODM2MjhjMjg5N2RkMzU1NWFlZGU0MWZkMmM2N2QwODc1ZC4u
MGQ4OTM1MmRiMjE0NzQwMzEwYzRmNWNiMjNkZDc1MWZhZTU3Y2NiNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TURlcHJlY2F0ZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01EZXByZWNhdGVkLmNwcApAQCAtMzgsNiArMzgsOCBA
QAogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIGdjaGFyKiB3ZWJraXRf
ZG9tX2h0bWxfZWxlbWVudF9nZXRfaW5uZXJfaHRtbChXZWJLaXRET01IVE1MRWxlbWVudCogc2Vs
ZikKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0hUTUxfRUxFTUVO
VChzZWxmKSwgbnVsbHB0cik7CkBAIC0zMjUsMyArMzI3LDQgQEAgZ2NoYXIqIHdlYmtpdF9kb21f
ZWxlbWVudF9nZXRfd2Via2l0X3JlZ2lvbl9vdmVyc2V0KFdlYktpdERPTUVsZW1lbnQqKQogICAg
IGdfd2FybmluZygiJXM6IENTUyBSZWdpb25zIHN1cHBvcnQgaGFzIGJlZW4gcmVtb3ZlZCwgdGhp
cyBmdW5jdGlvbiBkb2VzIG5vdGhpbmcuIiwgX19mdW5jX18pOwogICAgIHJldHVybiBudWxscHRy
OwogfQorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDRiOTI5ZTYxYjUyYTYzZjIxNGQ1ZmIxMGI3MjkyMDdjOWJhNzc3YTcuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50LmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDIwMTAgKzAsMCBAQAotLyoKLSAqICBUaGlzIGZpbGUgaXMgcGFydCBv
ZiB0aGUgV2ViS2l0IG9wZW4gc291cmNlIHByb2plY3QuCi0gKgotICogIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwot
ICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVk
IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQotICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqICB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAotICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJXZWJLaXRET01Eb2N1bWVudC5oIgotCi0jaW5jbHVkZSAiQ29u
dmVydFRvVVRGOFN0cmluZy5oIgotI2luY2x1ZGUgIkRPTU9iamVjdENhY2hlLmgiCi0jaW5jbHVk
ZSAiR09iamVjdEV2ZW50TGlzdGVuZXIuaCIKLSNpbmNsdWRlICJXZWJLaXRET01BdHRyUHJpdmF0
ZS5oIgotI2luY2x1ZGUgIldlYktpdERPTUNEQVRBU2VjdGlvblByaXZhdGUuaCIKLSNpbmNsdWRl
ICJXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uUHJpdmF0ZS5oIgotI2luY2x1ZGUgIldlYktp
dERPTUNvbW1lbnRQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0RE9NRE9NSW1wbGVtZW50YXRp
b25Qcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0RE9NRE9NV2luZG93UHJpdmF0ZS5oIgotI2lu
Y2x1ZGUgIldlYktpdERPTURvY3VtZW50RnJhZ21lbnRQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2Vi
S2l0RE9NRG9jdW1lbnRQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0RE9NRG9jdW1lbnRUeXBl
UHJpdmF0ZS5oIgotI2luY2x1ZGUgIldlYktpdERPTURvY3VtZW50VW5zdGFibGUuaCIKLSNpbmNs
dWRlICJXZWJLaXRET01FbGVtZW50UHJpdmF0ZS5oIgotI2luY2x1ZGUgIldlYktpdERPTUV2ZW50
UHJpdmF0ZS5oIgotI2luY2x1ZGUgIldlYktpdERPTUV2ZW50VGFyZ2V0LmgiCi0jaW5jbHVkZSAi
V2ViS2l0RE9NSFRNTENvbGxlY3Rpb25Qcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0RE9NSFRN
TEVsZW1lbnRQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0RE9NSFRNTEhlYWRFbGVtZW50UHJp
dmF0ZS5oIgotI2luY2x1ZGUgIldlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50UHJpdmF0ZS5oIgot
I2luY2x1ZGUgIldlYktpdERPTU5vZGVGaWx0ZXJQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0
RE9NTm9kZUl0ZXJhdG9yUHJpdmF0ZS5oIgotI2luY2x1ZGUgIldlYktpdERPTU5vZGVMaXN0UHJp
dmF0ZS5oIgotI2luY2x1ZGUgIldlYktpdERPTU5vZGVQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2Vi
S2l0RE9NUHJpdmF0ZS5oIgotI2luY2x1ZGUgIldlYktpdERPTVByb2Nlc3NpbmdJbnN0cnVjdGlv
blByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRET01SYW5nZVByaXZhdGUuaCIKLSNpbmNsdWRl
ICJXZWJLaXRET01TdHlsZVNoZWV0TGlzdFByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRET01U
ZXh0UHJpdmF0ZS5oIgotI2luY2x1ZGUgIldlYktpdERPTVRyZWVXYWxrZXJQcml2YXRlLmgiCi0j
aW5jbHVkZSAiV2ViS2l0RE9NWFBhdGhFeHByZXNzaW9uUHJpdmF0ZS5oIgotI2luY2x1ZGUgIldl
YktpdERPTVhQYXRoTlNSZXNvbHZlclByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRET01YUGF0
aFJlc3VsdFByaXZhdGUuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0NTU0ltcG9ydFJ1bGUuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL0RPTUV4Y2VwdGlvbi5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1l
bnQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oPgotI2luY2x1
ZGUgPHd0Zi9HZXRQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJLaXQgewotCi1XZWJLaXRET01Eb2N1bWVudCoga2l0KFdlYkNvcmU6OkRvY3VtZW50KiBvYmop
Ci17Ci0gICAgcmV0dXJuIFdFQktJVF9ET01fRE9DVU1FTlQoa2l0KHN0YXRpY19jYXN0PFdlYkNv
cmU6Ok5vZGUqPihvYmopKSk7Ci19Ci0KLVdlYkNvcmU6OkRvY3VtZW50KiBjb3JlKFdlYktpdERP
TURvY3VtZW50KiByZXF1ZXN0KQotewotICAgIHJldHVybiByZXF1ZXN0ID8gc3RhdGljX2Nhc3Q8
V2ViQ29yZTo6RG9jdW1lbnQqPihXRUJLSVRfRE9NX09CSkVDVChyZXF1ZXN0KS0+Y29yZU9iamVj
dCkgOiAwOwotfQotCi1XZWJLaXRET01Eb2N1bWVudCogd3JhcERvY3VtZW50KFdlYkNvcmU6OkRv
Y3VtZW50KiBjb3JlT2JqZWN0KQotewotICAgIEFTU0VSVChjb3JlT2JqZWN0KTsKLSAgICByZXR1
cm4gV0VCS0lUX0RPTV9ET0NVTUVOVChnX29iamVjdF9uZXcoV0VCS0lUX0RPTV9UWVBFX0RPQ1VN
RU5ULCAiY29yZS1vYmplY3QiLCBjb3JlT2JqZWN0LCBudWxscHRyKSk7Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYktpdAotCi1zdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X2RvbV9kb2N1bWVudF9kaXNw
YXRjaF9ldmVudChXZWJLaXRET01FdmVudFRhcmdldCogdGFyZ2V0LCBXZWJLaXRET01FdmVudCog
ZXZlbnQsIEdFcnJvcioqIGVycm9yKQotewotICAgIFdlYkNvcmU6OkV2ZW50KiBjb3JlRXZlbnQg
PSBXZWJLaXQ6OmNvcmUoZXZlbnQpOwotICAgIGlmICghY29yZUV2ZW50KQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgV2ViQ29yZTo6RG9jdW1lbnQqIGNvcmVUYXJnZXQgPSBzdGF0aWNfY2Fz
dDxXZWJDb3JlOjpEb2N1bWVudCo+KFdFQktJVF9ET01fT0JKRUNUKHRhcmdldCktPmNvcmVPYmpl
Y3QpOwotCi0gICAgYXV0byByZXN1bHQgPSBjb3JlVGFyZ2V0LT5kaXNwYXRjaEV2ZW50Rm9yQmlu
ZGluZ3MoKmNvcmVFdmVudCk7Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAg
ICAgICBhdXRvIGRlc2NyaXB0aW9uID0gV2ViQ29yZTo6RE9NRXhjZXB0aW9uOjpkZXNjcmlwdGlv
bihyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUoKSk7Ci0gICAgICAgIGdfc2V0X2Vycm9y
X2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZGVzY3Jp
cHRpb24ubGVnYWN5Q29kZSwgZGVzY3JpcHRpb24ubmFtZSk7Ci0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKLX0KLQot
c3RhdGljIGdib29sZWFuIHdlYmtpdF9kb21fZG9jdW1lbnRfYWRkX2V2ZW50X2xpc3RlbmVyKFdl
YktpdERPTUV2ZW50VGFyZ2V0KiB0YXJnZXQsIGNvbnN0IGNoYXIqIGV2ZW50TmFtZSwgR0Nsb3N1
cmUqIGhhbmRsZXIsIGdib29sZWFuIHVzZUNhcHR1cmUpCi17Ci0gICAgV2ViQ29yZTo6RG9jdW1l
bnQqIGNvcmVUYXJnZXQgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpEb2N1bWVudCo+KFdFQktJVF9E
T01fT0JKRUNUKHRhcmdldCktPmNvcmVPYmplY3QpOwotICAgIHJldHVybiBXZWJLaXQ6OkdPYmpl
Y3RFdmVudExpc3RlbmVyOjphZGRFdmVudExpc3RlbmVyKEdfT0JKRUNUKHRhcmdldCksIGNvcmVU
YXJnZXQsIGV2ZW50TmFtZSwgaGFuZGxlciwgdXNlQ2FwdHVyZSk7Ci19Ci0KLXN0YXRpYyBnYm9v
bGVhbiB3ZWJraXRfZG9tX2RvY3VtZW50X3JlbW92ZV9ldmVudF9saXN0ZW5lcihXZWJLaXRET01F
dmVudFRhcmdldCogdGFyZ2V0LCBjb25zdCBjaGFyKiBldmVudE5hbWUsIEdDbG9zdXJlKiBoYW5k
bGVyLCBnYm9vbGVhbiB1c2VDYXB0dXJlKQotewotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBjb3Jl
VGFyZ2V0ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RG9jdW1lbnQqPihXRUJLSVRfRE9NX09CSkVD
VCh0YXJnZXQpLT5jb3JlT2JqZWN0KTsKLSAgICByZXR1cm4gV2ViS2l0OjpHT2JqZWN0RXZlbnRM
aXN0ZW5lcjo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihHX09CSkVDVCh0YXJnZXQpLCBjb3JlVGFyZ2V0
LCBldmVudE5hbWUsIGhhbmRsZXIsIHVzZUNhcHR1cmUpOwotfQotCi1zdGF0aWMgdm9pZCB3ZWJr
aXRfZG9tX2RvY3VtZW50X2RvbV9ldmVudF90YXJnZXRfaW5pdChXZWJLaXRET01FdmVudFRhcmdl
dElmYWNlKiBpZmFjZSkKLXsKLSAgICBpZmFjZS0+ZGlzcGF0Y2hfZXZlbnQgPSB3ZWJraXRfZG9t
X2RvY3VtZW50X2Rpc3BhdGNoX2V2ZW50OwotICAgIGlmYWNlLT5hZGRfZXZlbnRfbGlzdGVuZXIg
PSB3ZWJraXRfZG9tX2RvY3VtZW50X2FkZF9ldmVudF9saXN0ZW5lcjsKLSAgICBpZmFjZS0+cmVt
b3ZlX2V2ZW50X2xpc3RlbmVyID0gd2Via2l0X2RvbV9kb2N1bWVudF9yZW1vdmVfZXZlbnRfbGlz
dGVuZXI7Ci19Ci0KLUdfREVGSU5FX1RZUEVfV0lUSF9DT0RFKFdlYktpdERPTURvY3VtZW50LCB3
ZWJraXRfZG9tX2RvY3VtZW50LCBXRUJLSVRfRE9NX1RZUEVfTk9ERSwgR19JTVBMRU1FTlRfSU5U
RVJGQUNFKFdFQktJVF9ET01fVFlQRV9FVkVOVF9UQVJHRVQsIHdlYmtpdF9kb21fZG9jdW1lbnRf
ZG9tX2V2ZW50X3RhcmdldF9pbml0KSkKLQotZW51bSB7Ci0gICAgRE9NX0RPQ1VNRU5UX1BST1Bf
MCwKLSAgICBET01fRE9DVU1FTlRfUFJPUF9ET0NUWVBFLAotICAgIERPTV9ET0NVTUVOVF9QUk9Q
X0lNUExFTUVOVEFUSU9OLAotICAgIERPTV9ET0NVTUVOVF9QUk9QX0RPQ1VNRU5UX0VMRU1FTlQs
Ci0gICAgRE9NX0RPQ1VNRU5UX1BST1BfSU5QVVRfRU5DT0RJTkcsCi0gICAgRE9NX0RPQ1VNRU5U
X1BST1BfWE1MX0VOQ09ESU5HLAotICAgIERPTV9ET0NVTUVOVF9QUk9QX1hNTF9WRVJTSU9OLAot
ICAgIERPTV9ET0NVTUVOVF9QUk9QX1hNTF9TVEFOREFMT05FLAotICAgIERPTV9ET0NVTUVOVF9Q
Uk9QX0RPQ1VNRU5UX1VSSSwKLSAgICBET01fRE9DVU1FTlRfUFJPUF9ERUZBVUxUX1ZJRVcsCi0g
ICAgRE9NX0RPQ1VNRU5UX1BST1BfU1RZTEVfU0hFRVRTLAotICAgIERPTV9ET0NVTUVOVF9QUk9Q
X0NPTlRFTlRfVFlQRSwKLSAgICBET01fRE9DVU1FTlRfUFJPUF9USVRMRSwKLSAgICBET01fRE9D
VU1FTlRfUFJPUF9ESVIsCi0gICAgRE9NX0RPQ1VNRU5UX1BST1BfREVTSUdOX01PREUsCi0gICAg
RE9NX0RPQ1VNRU5UX1BST1BfUkVGRVJSRVIsCi0gICAgRE9NX0RPQ1VNRU5UX1BST1BfRE9NQUlO
LAotICAgIERPTV9ET0NVTUVOVF9QUk9QX1VSTCwKLSAgICBET01fRE9DVU1FTlRfUFJPUF9DT09L
SUUsCi0gICAgRE9NX0RPQ1VNRU5UX1BST1BfQk9EWSwKLSAgICBET01fRE9DVU1FTlRfUFJPUF9I
RUFELAotICAgIERPTV9ET0NVTUVOVF9QUk9QX0lNQUdFUywKLSAgICBET01fRE9DVU1FTlRfUFJP
UF9BUFBMRVRTLAotICAgIERPTV9ET0NVTUVOVF9QUk9QX0xJTktTLAotICAgIERPTV9ET0NVTUVO
VF9QUk9QX0ZPUk1TLAotICAgIERPTV9ET0NVTUVOVF9QUk9QX0FOQ0hPUlMsCi0gICAgRE9NX0RP
Q1VNRU5UX1BST1BfRU1CRURTLAotICAgIERPTV9ET0NVTUVOVF9QUk9QX1BMVUdJTlMsCi0gICAg
RE9NX0RPQ1VNRU5UX1BST1BfU0NSSVBUUywKLSAgICBET01fRE9DVU1FTlRfUFJPUF9MQVNUX01P
RElGSUVELAotICAgIERPTV9ET0NVTUVOVF9QUk9QX0NIQVJTRVQsCi0gICAgRE9NX0RPQ1VNRU5U
X1BST1BfUkVBRFlfU1RBVEUsCi0gICAgRE9NX0RPQ1VNRU5UX1BST1BfQ0hBUkFDVEVSX1NFVCwK
LSAgICBET01fRE9DVU1FTlRfUFJPUF9QUkVGRVJSRURfU1RZTEVTSEVFVF9TRVQsCi0gICAgRE9N
X0RPQ1VNRU5UX1BST1BfU0VMRUNURURfU1RZTEVTSEVFVF9TRVQsCi0gICAgRE9NX0RPQ1VNRU5U
X1BST1BfQUNUSVZFX0VMRU1FTlQsCi0gICAgRE9NX0RPQ1VNRU5UX1BST1BfQ09NUEFUX01PREUs
Ci0gICAgRE9NX0RPQ1VNRU5UX1BST1BfV0VCS0lUX0lTX0ZVTExfU0NSRUVOLAotICAgIERPTV9E
T0NVTUVOVF9QUk9QX1dFQktJVF9GVUxMX1NDUkVFTl9LRVlCT0FSRF9JTlBVVF9BTExPV0VELAot
ICAgIERPTV9ET0NVTUVOVF9QUk9QX1dFQktJVF9DVVJSRU5UX0ZVTExfU0NSRUVOX0VMRU1FTlQs
Ci0gICAgRE9NX0RPQ1VNRU5UX1BST1BfV0VCS0lUX0ZVTExTQ1JFRU5fRU5BQkxFRCwKLSAgICBE
T01fRE9DVU1FTlRfUFJPUF9XRUJLSVRfRlVMTFNDUkVFTl9FTEVNRU5ULAotICAgIERPTV9ET0NV
TUVOVF9QUk9QX1BPSU5URVJfTE9DS19FTEVNRU5ULAotICAgIERPTV9ET0NVTUVOVF9QUk9QX1ZJ
U0lCSUxJVFlfU1RBVEUsCi0gICAgRE9NX0RPQ1VNRU5UX1BST1BfSElEREVOLAotICAgIERPTV9E
T0NVTUVOVF9QUk9QX0NVUlJFTlRfU0NSSVBULAotICAgIERPTV9ET0NVTUVOVF9QUk9QX09SSUdJ
TiwKLSAgICBET01fRE9DVU1FTlRfUFJPUF9TQ1JPTExJTkdfRUxFTUVOVCwKLSAgICBET01fRE9D
VU1FTlRfUFJPUF9DSElMRFJFTiwKLSAgICBET01fRE9DVU1FTlRfUFJPUF9GSVJTVF9FTEVNRU5U
X0NISUxELAotICAgIERPTV9ET0NVTUVOVF9QUk9QX0xBU1RfRUxFTUVOVF9DSElMRCwKLSAgICBE
T01fRE9DVU1FTlRfUFJPUF9DSElMRF9FTEVNRU5UX0NPVU5ULAotfTsKLQotc3RhdGljIHZvaWQg
d2Via2l0X2RvbV9kb2N1bWVudF9zZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBw
cm9wZXJ0eUlkLCBjb25zdCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKLXsKLSAg
ICBXZWJLaXRET01Eb2N1bWVudCogc2VsZiA9IFdFQktJVF9ET01fRE9DVU1FTlQob2JqZWN0KTsK
LQotICAgIHN3aXRjaCAocHJvcGVydHlJZCkgewotICAgIGNhc2UgRE9NX0RPQ1VNRU5UX1BST1Bf
WE1MX1ZFUlNJT046Ci0gICAgICAgIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X3htbF92ZXJzaW9u
KHNlbGYsIGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSksIG51bGxwdHIpOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIERPTV9ET0NVTUVOVF9QUk9QX1hNTF9TVEFOREFMT05FOgotICAgICAgICB3
ZWJraXRfZG9tX2RvY3VtZW50X3NldF94bWxfc3RhbmRhbG9uZShzZWxmLCBnX3ZhbHVlX2dldF9i
b29sZWFuKHZhbHVlKSwgbnVsbHB0cik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRE9NX0RP
Q1VNRU5UX1BST1BfRE9DVU1FTlRfVVJJOgotICAgICAgICB3ZWJraXRfZG9tX2RvY3VtZW50X3Nl
dF9kb2N1bWVudF91cmkoc2VsZiwgZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgRE9NX0RPQ1VNRU5UX1BST1BfVElUTEU6Ci0gICAgICAgIHdlYmtp
dF9kb21fZG9jdW1lbnRfc2V0X3RpdGxlKHNlbGYsIGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSkp
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIERPTV9ET0NVTUVOVF9QUk9QX0RJUjoKLSAgICAg
ICAgd2Via2l0X2RvbV9kb2N1bWVudF9zZXRfZGlyKHNlbGYsIGdfdmFsdWVfZ2V0X3N0cmluZyh2
YWx1ZSkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIERPTV9ET0NVTUVOVF9QUk9QX0RFU0lH
Tl9NT0RFOgotICAgICAgICB3ZWJraXRfZG9tX2RvY3VtZW50X3NldF9kZXNpZ25fbW9kZShzZWxm
LCBnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBE
T01fRE9DVU1FTlRfUFJPUF9DT09LSUU6Ci0gICAgICAgIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0
X2Nvb2tpZShzZWxmLCBnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpLCBudWxscHRyKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9DSEFSU0VUOgotICAgICAgICB3
ZWJraXRfZG9tX2RvY3VtZW50X3NldF9jaGFyc2V0KHNlbGYsIGdfdmFsdWVfZ2V0X3N0cmluZyh2
YWx1ZSkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIERPTV9ET0NVTUVOVF9QUk9QX1NFTEVD
VEVEX1NUWUxFU0hFRVRfU0VUOgotICAgICAgICB3ZWJraXRfZG9tX2RvY3VtZW50X3NldF9zZWxl
Y3RlZF9zdHlsZXNoZWV0X3NldChzZWxmLCBnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElE
X1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcGVydHlJZCwgcHNwZWMpOwotICAgICAgICBicmVhazsK
LSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3Byb3BlcnR5
KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcGVydHlJZCwgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFt
U3BlYyogcHNwZWMpCi17Ci0gICAgV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYgPSBXRUJLSVRfRE9N
X0RPQ1VNRU5UKG9iamVjdCk7Ci0KLSAgICBzd2l0Y2ggKHByb3BlcnR5SWQpIHsKLSAgICBjYXNl
IERPTV9ET0NVTUVOVF9QUk9QX0RPQ1RZUEU6Ci0gICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2
YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZG9jdHlwZShzZWxmKSk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgRE9NX0RPQ1VNRU5UX1BST1BfSU1QTEVNRU5UQVRJT046Ci0gICAgICAg
IGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfaW1wbGVt
ZW50YXRpb24oc2VsZikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIERPTV9ET0NVTUVOVF9Q
Uk9QX0RPQ1VNRU5UX0VMRU1FTlQ6Ci0gICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwg
d2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZG9jdW1lbnRfZWxlbWVudChzZWxmKSk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgRE9NX0RPQ1VNRU5UX1BST1BfSU5QVVRfRU5DT0RJTkc6Ci0gICAg
ICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUsIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2lu
cHV0X2VuY29kaW5nKHNlbGYpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBET01fRE9DVU1F
TlRfUFJPUF9YTUxfRU5DT0RJTkc6Ci0gICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUs
IHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3htbF9lbmNvZGluZyhzZWxmKSk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgRE9NX0RPQ1VNRU5UX1BST1BfWE1MX1ZFUlNJT046Ci0gICAgICAgIGdf
dmFsdWVfdGFrZV9zdHJpbmcodmFsdWUsIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3htbF92ZXJz
aW9uKHNlbGYpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9Y
TUxfU1RBTkRBTE9ORToKLSAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0
X2RvbV9kb2N1bWVudF9nZXRfeG1sX3N0YW5kYWxvbmUoc2VsZikpOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIERPTV9ET0NVTUVOVF9QUk9QX0RPQ1VNRU5UX1VSSToKLSAgICAgICAgZ192YWx1
ZV90YWtlX3N0cmluZyh2YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZG9jdW1lbnRfdXJp
KHNlbGYpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9ERUZB
VUxUX1ZJRVc6Ci0gICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2RvbV9k
b2N1bWVudF9nZXRfZGVmYXVsdF92aWV3KHNlbGYpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBET01fRE9DVU1FTlRfUFJPUF9TVFlMRV9TSEVFVFM6Ci0gICAgICAgIGdfdmFsdWVfc2V0X29i
amVjdCh2YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfc3R5bGVfc2hlZXRzKHNlbGYpKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9DT05URU5UX1RZUEU6
Ci0gICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUsIHdlYmtpdF9kb21fZG9jdW1lbnRf
Z2V0X2NvbnRlbnRfdHlwZShzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRE9NX0RP
Q1VNRU5UX1BST1BfVElUTEU6Ci0gICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUsIHdl
YmtpdF9kb21fZG9jdW1lbnRfZ2V0X3RpdGxlKHNlbGYpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBET01fRE9DVU1FTlRfUFJPUF9ESVI6Ci0gICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmco
dmFsdWUsIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2RpcihzZWxmKSk7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgRE9NX0RPQ1VNRU5UX1BST1BfREVTSUdOX01PREU6Ci0gICAgICAgIGdfdmFs
dWVfdGFrZV9zdHJpbmcodmFsdWUsIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2Rlc2lnbl9tb2Rl
KHNlbGYpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9SRUZF
UlJFUjoKLSAgICAgICAgZ192YWx1ZV90YWtlX3N0cmluZyh2YWx1ZSwgd2Via2l0X2RvbV9kb2N1
bWVudF9nZXRfcmVmZXJyZXIoc2VsZikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIERPTV9E
T0NVTUVOVF9QUk9QX0RPTUFJTjoKLSAgICAgICAgZ192YWx1ZV90YWtlX3N0cmluZyh2YWx1ZSwg
d2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZG9tYWluKHNlbGYpKTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9VUkw6Ci0gICAgICAgIGdfdmFsdWVfdGFrZV9zdHJp
bmcodmFsdWUsIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3VybChzZWxmKSk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgRE9NX0RPQ1VNRU5UX1BST1BfQ09PS0lFOgotICAgICAgICBnX3ZhbHVl
X3Rha2Vfc3RyaW5nKHZhbHVlLCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jb29raWUoc2VsZiwg
bnVsbHB0cikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIERPTV9ET0NVTUVOVF9QUk9QX0JP
RFk6Ci0gICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVu
dF9nZXRfYm9keShzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRE9NX0RPQ1VNRU5U
X1BST1BfSEVBRDoKLSAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRfZG9t
X2RvY3VtZW50X2dldF9oZWFkKHNlbGYpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBET01f
RE9DVU1FTlRfUFJPUF9JTUFHRVM6Ci0gICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwg
d2Via2l0X2RvbV9kb2N1bWVudF9nZXRfaW1hZ2VzKHNlbGYpKTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9BUFBMRVRTOgotICAgICAgICBnX3ZhbHVlX3NldF9v
YmplY3QodmFsdWUsIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2FwcGxldHMoc2VsZikpOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIERPTV9ET0NVTUVOVF9QUk9QX0xJTktTOgotICAgICAgICBn
X3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2xpbmtzKHNl
bGYpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9GT1JNUzoK
LSAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRfZG9tX2RvY3VtZW50X2dl
dF9mb3JtcyhzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRE9NX0RPQ1VNRU5UX1BS
T1BfQU5DSE9SUzoKLSAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRfZG9t
X2RvY3VtZW50X2dldF9hbmNob3JzKHNlbGYpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBE
T01fRE9DVU1FTlRfUFJPUF9FTUJFRFM6Ci0gICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1
ZSwgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZW1iZWRzKHNlbGYpKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9QTFVHSU5TOgotICAgICAgICBnX3ZhbHVlX3Nl
dF9vYmplY3QodmFsdWUsIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3BsdWdpbnMoc2VsZikpOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIERPTV9ET0NVTUVOVF9QUk9QX1NDUklQVFM6Ci0gICAg
ICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfc2Ny
aXB0cyhzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRE9NX0RPQ1VNRU5UX1BST1Bf
TEFTVF9NT0RJRklFRDoKLSAgICAgICAgZ192YWx1ZV90YWtlX3N0cmluZyh2YWx1ZSwgd2Via2l0
X2RvbV9kb2N1bWVudF9nZXRfbGFzdF9tb2RpZmllZChzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgRE9NX0RPQ1VNRU5UX1BST1BfQ0hBUlNFVDoKLSAgICAgICAgZ192YWx1ZV90YWtl
X3N0cmluZyh2YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfY2hhcnNldChzZWxmKSk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgRE9NX0RPQ1VNRU5UX1BST1BfUkVBRFlfU1RBVEU6Ci0g
ICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUsIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0
X3JlYWR5X3N0YXRlKHNlbGYpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBET01fRE9DVU1F
TlRfUFJPUF9DSEFSQUNURVJfU0VUOgotICAgICAgICBnX3ZhbHVlX3Rha2Vfc3RyaW5nKHZhbHVl
LCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jaGFyYWN0ZXJfc2V0KHNlbGYpKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9QUkVGRVJSRURfU1RZTEVTSEVFVF9T
RVQ6Ci0gICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUsIHdlYmtpdF9kb21fZG9jdW1l
bnRfZ2V0X3ByZWZlcnJlZF9zdHlsZXNoZWV0X3NldChzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgRE9NX0RPQ1VNRU5UX1BST1BfU0VMRUNURURfU1RZTEVTSEVFVF9TRVQ6Ci0gICAg
ICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUsIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3Nl
bGVjdGVkX3N0eWxlc2hlZXRfc2V0KHNlbGYpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBE
T01fRE9DVU1FTlRfUFJPUF9BQ1RJVkVfRUxFTUVOVDoKLSAgICAgICAgZ192YWx1ZV9zZXRfb2Jq
ZWN0KHZhbHVlLCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9hY3RpdmVfZWxlbWVudChzZWxmKSk7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRE9NX0RPQ1VNRU5UX1BST1BfQ09NUEFUX01PREU6
Ci0gICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUsIHdlYmtpdF9kb21fZG9jdW1lbnRf
Z2V0X2NvbXBhdF9tb2RlKHNlbGYpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBET01fRE9D
VU1FTlRfUFJPUF9XRUJLSVRfSVNfRlVMTF9TQ1JFRU46Ci0gICAgICAgIGdfdmFsdWVfc2V0X2Jv
b2xlYW4odmFsdWUsIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3dlYmtpdF9pc19mdWxsc2NyZWVu
KHNlbGYpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9XRUJL
SVRfRlVMTF9TQ1JFRU5fS0VZQk9BUkRfSU5QVVRfQUxMT1dFRDoKLSAgICAgICAgZ192YWx1ZV9z
ZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2Z1bGxzY3Jl
ZW5fa2V5Ym9hcmRfaW5wdXRfYWxsb3dlZChzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgRE9NX0RPQ1VNRU5UX1BST1BfV0VCS0lUX0NVUlJFTlRfRlVMTF9TQ1JFRU5fRUxFTUVOVDoK
LSAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRfZG9tX2RvY3VtZW50X2dl
dF93ZWJraXRfY3VycmVudF9mdWxsc2NyZWVuX2VsZW1lbnQoc2VsZikpOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIERPTV9ET0NVTUVOVF9QUk9QX1dFQktJVF9GVUxMU0NSRUVOX0VOQUJMRUQ6
Ci0gICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHdlYmtpdF9kb21fZG9jdW1lbnRf
Z2V0X3dlYmtpdF9mdWxsc2NyZWVuX2VuYWJsZWQoc2VsZikpOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIERPTV9ET0NVTUVOVF9QUk9QX1dFQktJVF9GVUxMU0NSRUVOX0VMRU1FTlQ6Ci0gICAg
ICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Vi
a2l0X2Z1bGxzY3JlZW5fZWxlbWVudChzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
RE9NX0RPQ1VNRU5UX1BST1BfUE9JTlRFUl9MT0NLX0VMRU1FTlQ6Ci0gICAgICAgIGdfdmFsdWVf
c2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfcG9pbnRlcl9sb2NrX2Vs
ZW1lbnQoc2VsZikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIERPTV9ET0NVTUVOVF9QUk9Q
X1ZJU0lCSUxJVFlfU1RBVEU6Ci0gICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUsIHdl
YmtpdF9kb21fZG9jdW1lbnRfZ2V0X3Zpc2liaWxpdHlfc3RhdGUoc2VsZikpOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIERPTV9ET0NVTUVOVF9QUk9QX0hJRERFTjoKLSAgICAgICAgZ192YWx1
ZV9zZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfaGlkZGVuKHNlbGYp
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9DVVJSRU5UX1ND
UklQVDoKLSAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRfZG9tX2RvY3Vt
ZW50X2dldF9jdXJyZW50X3NjcmlwdChzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
RE9NX0RPQ1VNRU5UX1BST1BfT1JJR0lOOgotICAgICAgICBnX3ZhbHVlX3Rha2Vfc3RyaW5nKHZh
bHVlLCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9vcmlnaW4oc2VsZikpOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIERPTV9ET0NVTUVOVF9QUk9QX1NDUk9MTElOR19FTEVNRU5UOgotICAgICAg
ICBnX3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3Njcm9s
bGluZ19lbGVtZW50KHNlbGYpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBET01fRE9DVU1F
TlRfUFJPUF9DSElMRFJFTjoKLSAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJr
aXRfZG9tX2RvY3VtZW50X2dldF9jaGlsZHJlbihzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgRE9NX0RPQ1VNRU5UX1BST1BfRklSU1RfRUxFTUVOVF9DSElMRDoKLSAgICAgICAgZ192
YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9maXJzdF9lbGVt
ZW50X2NoaWxkKHNlbGYpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBET01fRE9DVU1FTlRf
UFJPUF9MQVNUX0VMRU1FTlRfQ0hJTEQ6Ci0gICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1
ZSwgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfbGFzdF9lbGVtZW50X2NoaWxkKHNlbGYpKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9DSElMRF9FTEVNRU5UX0NP
VU5UOgotICAgICAgICBnX3ZhbHVlX3NldF91bG9uZyh2YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVu
dF9nZXRfY2hpbGRfZWxlbWVudF9jb3VudChzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGRl
ZmF1bHQ6Ci0gICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3Qs
IHByb3BlcnR5SWQsIHBzcGVjKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi1zdGF0aWMg
dm9pZCB3ZWJraXRfZG9tX2RvY3VtZW50X2NsYXNzX2luaXQoV2ViS2l0RE9NRG9jdW1lbnRDbGFz
cyogcmVxdWVzdENsYXNzKQotewotICAgIEdPYmplY3RDbGFzcyogZ29iamVjdENsYXNzID0gR19P
QkpFQ1RfQ0xBU1MocmVxdWVzdENsYXNzKTsKLSAgICBnb2JqZWN0Q2xhc3MtPnNldF9wcm9wZXJ0
eSA9IHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X3Byb3BlcnR5OwotICAgIGdvYmplY3RDbGFzcy0+
Z2V0X3Byb3BlcnR5ID0gd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfcHJvcGVydHk7Ci0KLSAgICBn
X29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xhc3MsCi0g
ICAgICAgIERPTV9ET0NVTUVOVF9QUk9QX0RPQ1RZUEUsCi0gICAgICAgIGdfcGFyYW1fc3BlY19v
YmplY3QoCi0gICAgICAgICAgICAiZG9jdHlwZSIsCi0gICAgICAgICAgICAiRG9jdW1lbnQ6ZG9j
dHlwZSIsCi0gICAgICAgICAgICAicmVhZC1vbmx5IFdlYktpdERPTURvY3VtZW50VHlwZSogRG9j
dW1lbnQ6ZG9jdHlwZSIsCi0gICAgICAgICAgICBXRUJLSVRfRE9NX1RZUEVfRE9DVU1FTlRfVFlQ
RSwKLSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgZ19vYmplY3Rf
Y2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBE
T01fRE9DVU1FTlRfUFJPUF9JTVBMRU1FTlRBVElPTiwKLSAgICAgICAgZ19wYXJhbV9zcGVjX29i
amVjdCgKLSAgICAgICAgICAgICJpbXBsZW1lbnRhdGlvbiIsCi0gICAgICAgICAgICAiRG9jdW1l
bnQ6aW1wbGVtZW50YXRpb24iLAotICAgICAgICAgICAgInJlYWQtb25seSBXZWJLaXRET01ET01J
bXBsZW1lbnRhdGlvbiogRG9jdW1lbnQ6aW1wbGVtZW50YXRpb24iLAotICAgICAgICAgICAgV0VC
S0lUX0RPTV9UWVBFX0RPTV9JTVBMRU1FTlRBVElPTiwKLSAgICAgICAgICAgIFdFQktJVF9QQVJB
TV9SRUFEQUJMRSkpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAg
ICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBET01fRE9DVU1FTlRfUFJPUF9ET0NVTUVOVF9F
TEVNRU5ULAotICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KAotICAgICAgICAgICAgImRvY3Vt
ZW50LWVsZW1lbnQiLAotICAgICAgICAgICAgIkRvY3VtZW50OmRvY3VtZW50LWVsZW1lbnQiLAot
ICAgICAgICAgICAgInJlYWQtb25seSBXZWJLaXRET01FbGVtZW50KiBEb2N1bWVudDpkb2N1bWVu
dC1lbGVtZW50IiwKLSAgICAgICAgICAgIFdFQktJVF9ET01fVFlQRV9FTEVNRU5ULAotICAgICAg
ICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAgICBnX29iamVjdF9jbGFzc19pbnN0
YWxsX3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xhc3MsCi0gICAgICAgIERPTV9ET0NVTUVO
VF9QUk9QX0lOUFVUX0VOQ09ESU5HLAotICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKAotICAg
ICAgICAgICAgImlucHV0LWVuY29kaW5nIiwKLSAgICAgICAgICAgICJEb2N1bWVudDppbnB1dC1l
bmNvZGluZyIsCi0gICAgICAgICAgICAicmVhZC1vbmx5IGdjaGFyKiBEb2N1bWVudDppbnB1dC1l
bmNvZGluZyIsCi0gICAgICAgICAgICAiIiwKLSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFE
QUJMRSkpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAg
Z29iamVjdENsYXNzLAotICAgICAgICBET01fRE9DVU1FTlRfUFJPUF9YTUxfRU5DT0RJTkcsCi0g
ICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoCi0gICAgICAgICAgICAieG1sLWVuY29kaW5nIiwK
LSAgICAgICAgICAgICJEb2N1bWVudDp4bWwtZW5jb2RpbmciLAotICAgICAgICAgICAgInJlYWQt
b25seSBnY2hhciogRG9jdW1lbnQ6eG1sLWVuY29kaW5nIiwKLSAgICAgICAgICAgICIiLAotICAg
ICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAgICBnX29iamVjdF9jbGFzc19p
bnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xhc3MsCi0gICAgICAgIERPTV9ET0NV
TUVOVF9QUk9QX1hNTF9WRVJTSU9OLAotICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKAotICAg
ICAgICAgICAgInhtbC12ZXJzaW9uIiwKLSAgICAgICAgICAgICJEb2N1bWVudDp4bWwtdmVyc2lv
biIsCi0gICAgICAgICAgICAicmVhZC13cml0ZSBnY2hhciogRG9jdW1lbnQ6eG1sLXZlcnNpb24i
LAotICAgICAgICAgICAgIiIsCi0gICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7
Ci0KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0
Q2xhc3MsCi0gICAgICAgIERPTV9ET0NVTUVOVF9QUk9QX1hNTF9TVEFOREFMT05FLAotICAgICAg
ICBnX3BhcmFtX3NwZWNfYm9vbGVhbigKLSAgICAgICAgICAgICJ4bWwtc3RhbmRhbG9uZSIsCi0g
ICAgICAgICAgICAiRG9jdW1lbnQ6eG1sLXN0YW5kYWxvbmUiLAotICAgICAgICAgICAgInJlYWQt
d3JpdGUgZ2Jvb2xlYW4gRG9jdW1lbnQ6eG1sLXN0YW5kYWxvbmUiLAotICAgICAgICAgICAgRkFM
U0UsCi0gICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7Ci0KLSAgICBnX29iamVj
dF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xhc3MsCi0gICAgICAg
IERPTV9ET0NVTUVOVF9QUk9QX0RPQ1VNRU5UX1VSSSwKLSAgICAgICAgZ19wYXJhbV9zcGVjX3N0
cmluZygKLSAgICAgICAgICAgICJkb2N1bWVudC11cmkiLAotICAgICAgICAgICAgIkRvY3VtZW50
OmRvY3VtZW50LXVyaSIsCi0gICAgICAgICAgICAicmVhZC13cml0ZSBnY2hhciogRG9jdW1lbnQ6
ZG9jdW1lbnQtdXJpIiwKLSAgICAgICAgICAgICIiLAotICAgICAgICAgICAgV0VCS0lUX1BBUkFN
X1JFQURXUklURSkpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAg
ICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBET01fRE9DVU1FTlRfUFJPUF9ERUZBVUxUX1ZJ
RVcsCi0gICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoCi0gICAgICAgICAgICAiZGVmYXVsdC12
aWV3IiwKLSAgICAgICAgICAgICJEb2N1bWVudDpkZWZhdWx0LXZpZXciLAotICAgICAgICAgICAg
InJlYWQtb25seSBXZWJLaXRET01ET01XaW5kb3cqIERvY3VtZW50OmRlZmF1bHQtdmlldyIsCi0g
ICAgICAgICAgICBXRUJLSVRfRE9NX1RZUEVfRE9NX1dJTkRPVywKLSAgICAgICAgICAgIFdFQktJ
VF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0
eSgKLSAgICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBET01fRE9DVU1FTlRfUFJPUF9TVFlM
RV9TSEVFVFMsCi0gICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoCi0gICAgICAgICAgICAic3R5
bGUtc2hlZXRzIiwKLSAgICAgICAgICAgICJEb2N1bWVudDpzdHlsZS1zaGVldHMiLAotICAgICAg
ICAgICAgInJlYWQtb25seSBXZWJLaXRET01TdHlsZVNoZWV0TGlzdCogRG9jdW1lbnQ6c3R5bGUt
c2hlZXRzIiwKLSAgICAgICAgICAgIFdFQktJVF9ET01fVFlQRV9TVFlMRV9TSEVFVF9MSVNULAot
ICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAgICBnX29iamVjdF9jbGFz
c19pbnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xhc3MsCi0gICAgICAgIERPTV9E
T0NVTUVOVF9QUk9QX0NPTlRFTlRfVFlQRSwKLSAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygK
LSAgICAgICAgICAgICJjb250ZW50LXR5cGUiLAotICAgICAgICAgICAgIkRvY3VtZW50OmNvbnRl
bnQtdHlwZSIsCi0gICAgICAgICAgICAicmVhZC1vbmx5IGdjaGFyKiBEb2N1bWVudDpjb250ZW50
LXR5cGUiLAotICAgICAgICAgICAgIiIsCi0gICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFC
TEUpKTsKLQotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdv
YmplY3RDbGFzcywKLSAgICAgICAgRE9NX0RPQ1VNRU5UX1BST1BfVElUTEUsCi0gICAgICAgIGdf
cGFyYW1fc3BlY19zdHJpbmcoCi0gICAgICAgICAgICAidGl0bGUiLAotICAgICAgICAgICAgIkRv
Y3VtZW50OnRpdGxlIiwKLSAgICAgICAgICAgICJyZWFkLXdyaXRlIGdjaGFyKiBEb2N1bWVudDp0
aXRsZSIsCi0gICAgICAgICAgICAiIiwKLSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJ
VEUpKTsKLQotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdv
YmplY3RDbGFzcywKLSAgICAgICAgRE9NX0RPQ1VNRU5UX1BST1BfRElSLAotICAgICAgICBnX3Bh
cmFtX3NwZWNfc3RyaW5nKAotICAgICAgICAgICAgImRpciIsCi0gICAgICAgICAgICAiRG9jdW1l
bnQ6ZGlyIiwKLSAgICAgICAgICAgICJyZWFkLXdyaXRlIGdjaGFyKiBEb2N1bWVudDpkaXIiLAot
ICAgICAgICAgICAgIiIsCi0gICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7Ci0K
LSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xh
c3MsCi0gICAgICAgIERPTV9ET0NVTUVOVF9QUk9QX0RFU0lHTl9NT0RFLAotICAgICAgICBnX3Bh
cmFtX3NwZWNfc3RyaW5nKAotICAgICAgICAgICAgImRlc2lnbi1tb2RlIiwKLSAgICAgICAgICAg
ICJEb2N1bWVudDpkZXNpZ24tbW9kZSIsCi0gICAgICAgICAgICAicmVhZC13cml0ZSBnY2hhciog
RG9jdW1lbnQ6ZGVzaWduLW1vZGUiLAotICAgICAgICAgICAgIiIsCi0gICAgICAgICAgICBXRUJL
SVRfUEFSQU1fUkVBRFdSSVRFKSk7Ci0KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3Bl
cnR5KAotICAgICAgICBnb2JqZWN0Q2xhc3MsCi0gICAgICAgIERPTV9ET0NVTUVOVF9QUk9QX1JF
RkVSUkVSLAotICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKAotICAgICAgICAgICAgInJlZmVy
cmVyIiwKLSAgICAgICAgICAgICJEb2N1bWVudDpyZWZlcnJlciIsCi0gICAgICAgICAgICAicmVh
ZC1vbmx5IGdjaGFyKiBEb2N1bWVudDpyZWZlcnJlciIsCi0gICAgICAgICAgICAiIiwKLSAgICAg
ICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5z
dGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBET01fRE9DVU1F
TlRfUFJPUF9ET01BSU4sCi0gICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoCi0gICAgICAgICAg
ICAiZG9tYWluIiwKLSAgICAgICAgICAgICJEb2N1bWVudDpkb21haW4iLAotICAgICAgICAgICAg
InJlYWQtb25seSBnY2hhciogRG9jdW1lbnQ6ZG9tYWluIiwKLSAgICAgICAgICAgICIiLAotICAg
ICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAgICBnX29iamVjdF9jbGFzc19p
bnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xhc3MsCi0gICAgICAgIERPTV9ET0NV
TUVOVF9QUk9QX1VSTCwKLSAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygKLSAgICAgICAgICAg
ICJ1cmwiLAotICAgICAgICAgICAgIkRvY3VtZW50OnVybCIsCi0gICAgICAgICAgICAicmVhZC1v
bmx5IGdjaGFyKiBEb2N1bWVudDp1cmwiLAotICAgICAgICAgICAgIiIsCi0gICAgICAgICAgICBX
RUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJv
cGVydHkoCi0gICAgICAgIGdvYmplY3RDbGFzcywKLSAgICAgICAgRE9NX0RPQ1VNRU5UX1BST1Bf
Q09PS0lFLAotICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKAotICAgICAgICAgICAgImNvb2tp
ZSIsCi0gICAgICAgICAgICAiRG9jdW1lbnQ6Y29va2llIiwKLSAgICAgICAgICAgICJyZWFkLXdy
aXRlIGdjaGFyKiBEb2N1bWVudDpjb29raWUiLAotICAgICAgICAgICAgIiIsCi0gICAgICAgICAg
ICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7Ci0KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxs
X3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xhc3MsCi0gICAgICAgIERPTV9ET0NVTUVOVF9Q
Uk9QX0JPRFksCi0gICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoCi0gICAgICAgICAgICAiYm9k
eSIsCi0gICAgICAgICAgICAiRG9jdW1lbnQ6Ym9keSIsCi0gICAgICAgICAgICAicmVhZC1vbmx5
IFdlYktpdERPTUhUTUxFbGVtZW50KiBEb2N1bWVudDpib2R5IiwKLSAgICAgICAgICAgIFdFQktJ
VF9ET01fVFlQRV9IVE1MX0VMRU1FTlQsCi0gICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFC
TEUpKTsKLQotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdv
YmplY3RDbGFzcywKLSAgICAgICAgRE9NX0RPQ1VNRU5UX1BST1BfSEVBRCwKLSAgICAgICAgZ19w
YXJhbV9zcGVjX29iamVjdCgKLSAgICAgICAgICAgICJoZWFkIiwKLSAgICAgICAgICAgICJEb2N1
bWVudDpoZWFkIiwKLSAgICAgICAgICAgICJyZWFkLW9ubHkgV2ViS2l0RE9NSFRNTEhlYWRFbGVt
ZW50KiBEb2N1bWVudDpoZWFkIiwKLSAgICAgICAgICAgIFdFQktJVF9ET01fVFlQRV9IVE1MX0hF
QURfRUxFTUVOVCwKLSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAg
Z19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVjdENsYXNzLAot
ICAgICAgICBET01fRE9DVU1FTlRfUFJPUF9JTUFHRVMsCi0gICAgICAgIGdfcGFyYW1fc3BlY19v
YmplY3QoCi0gICAgICAgICAgICAiaW1hZ2VzIiwKLSAgICAgICAgICAgICJEb2N1bWVudDppbWFn
ZXMiLAotICAgICAgICAgICAgInJlYWQtb25seSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbiogRG9j
dW1lbnQ6aW1hZ2VzIiwKLSAgICAgICAgICAgIFdFQktJVF9ET01fVFlQRV9IVE1MX0NPTExFQ1RJ
T04sCi0gICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAgIGdfb2JqZWN0
X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdvYmplY3RDbGFzcywKLSAgICAgICAg
RE9NX0RPQ1VNRU5UX1BST1BfQVBQTEVUUywKLSAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgK
LSAgICAgICAgICAgICJhcHBsZXRzIiwKLSAgICAgICAgICAgICJEb2N1bWVudDphcHBsZXRzIiwK
LSAgICAgICAgICAgICJyZWFkLW9ubHkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qIERvY3VtZW50
OmFwcGxldHMiLAotICAgICAgICAgICAgV0VCS0lUX0RPTV9UWVBFX0hUTUxfQ09MTEVDVElPTiwK
LSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgZ19vYmplY3RfY2xh
c3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBET01f
RE9DVU1FTlRfUFJPUF9MSU5LUywKLSAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgKLSAgICAg
ICAgICAgICJsaW5rcyIsCi0gICAgICAgICAgICAiRG9jdW1lbnQ6bGlua3MiLAotICAgICAgICAg
ICAgInJlYWQtb25seSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbiogRG9jdW1lbnQ6bGlua3MiLAot
ICAgICAgICAgICAgV0VCS0lUX0RPTV9UWVBFX0hUTUxfQ09MTEVDVElPTiwKLSAgICAgICAgICAg
IFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9w
cm9wZXJ0eSgKLSAgICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBET01fRE9DVU1FTlRfUFJP
UF9GT1JNUywKLSAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgKLSAgICAgICAgICAgICJmb3Jt
cyIsCi0gICAgICAgICAgICAiRG9jdW1lbnQ6Zm9ybXMiLAotICAgICAgICAgICAgInJlYWQtb25s
eSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbiogRG9jdW1lbnQ6Zm9ybXMiLAotICAgICAgICAgICAg
V0VCS0lUX0RPTV9UWVBFX0hUTUxfQ09MTEVDVElPTiwKLSAgICAgICAgICAgIFdFQktJVF9QQVJB
TV9SRUFEQUJMRSkpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAg
ICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBET01fRE9DVU1FTlRfUFJPUF9BTkNIT1JTLAot
ICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KAotICAgICAgICAgICAgImFuY2hvcnMiLAotICAg
ICAgICAgICAgIkRvY3VtZW50OmFuY2hvcnMiLAotICAgICAgICAgICAgInJlYWQtb25seSBXZWJL
aXRET01IVE1MQ29sbGVjdGlvbiogRG9jdW1lbnQ6YW5jaG9ycyIsCi0gICAgICAgICAgICBXRUJL
SVRfRE9NX1RZUEVfSFRNTF9DT0xMRUNUSU9OLAotICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JF
QURBQkxFKSk7Ci0KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAotICAgICAg
ICBnb2JqZWN0Q2xhc3MsCi0gICAgICAgIERPTV9ET0NVTUVOVF9QUk9QX0VNQkVEUywKLSAgICAg
ICAgZ19wYXJhbV9zcGVjX29iamVjdCgKLSAgICAgICAgICAgICJlbWJlZHMiLAotICAgICAgICAg
ICAgIkRvY3VtZW50OmVtYmVkcyIsCi0gICAgICAgICAgICAicmVhZC1vbmx5IFdlYktpdERPTUhU
TUxDb2xsZWN0aW9uKiBEb2N1bWVudDplbWJlZHMiLAotICAgICAgICAgICAgV0VCS0lUX0RPTV9U
WVBFX0hUTUxfQ09MTEVDVElPTiwKLSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkp
OwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVj
dENsYXNzLAotICAgICAgICBET01fRE9DVU1FTlRfUFJPUF9QTFVHSU5TLAotICAgICAgICBnX3Bh
cmFtX3NwZWNfb2JqZWN0KAotICAgICAgICAgICAgInBsdWdpbnMiLAotICAgICAgICAgICAgIkRv
Y3VtZW50OnBsdWdpbnMiLAotICAgICAgICAgICAgInJlYWQtb25seSBXZWJLaXRET01IVE1MQ29s
bGVjdGlvbiogRG9jdW1lbnQ6cGx1Z2lucyIsCi0gICAgICAgICAgICBXRUJLSVRfRE9NX1RZUEVf
SFRNTF9DT0xMRUNUSU9OLAotICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0K
LSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xh
c3MsCi0gICAgICAgIERPTV9ET0NVTUVOVF9QUk9QX1NDUklQVFMsCi0gICAgICAgIGdfcGFyYW1f
c3BlY19vYmplY3QoCi0gICAgICAgICAgICAic2NyaXB0cyIsCi0gICAgICAgICAgICAiRG9jdW1l
bnQ6c2NyaXB0cyIsCi0gICAgICAgICAgICAicmVhZC1vbmx5IFdlYktpdERPTUhUTUxDb2xsZWN0
aW9uKiBEb2N1bWVudDpzY3JpcHRzIiwKLSAgICAgICAgICAgIFdFQktJVF9ET01fVFlQRV9IVE1M
X0NPTExFQ1RJT04sCi0gICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAg
IGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdvYmplY3RDbGFzcywK
LSAgICAgICAgRE9NX0RPQ1VNRU5UX1BST1BfTEFTVF9NT0RJRklFRCwKLSAgICAgICAgZ19wYXJh
bV9zcGVjX3N0cmluZygKLSAgICAgICAgICAgICJsYXN0LW1vZGlmaWVkIiwKLSAgICAgICAgICAg
ICJEb2N1bWVudDpsYXN0LW1vZGlmaWVkIiwKLSAgICAgICAgICAgICJyZWFkLW9ubHkgZ2NoYXIq
IERvY3VtZW50Omxhc3QtbW9kaWZpZWQiLAotICAgICAgICAgICAgIiIsCi0gICAgICAgICAgICBX
RUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJv
cGVydHkoCi0gICAgICAgIGdvYmplY3RDbGFzcywKLSAgICAgICAgRE9NX0RPQ1VNRU5UX1BST1Bf
Q0hBUlNFVCwKLSAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygKLSAgICAgICAgICAgICJjaGFy
c2V0IiwKLSAgICAgICAgICAgICJEb2N1bWVudDpjaGFyc2V0IiwKLSAgICAgICAgICAgICJyZWFk
LXdyaXRlIGdjaGFyKiBEb2N1bWVudDpjaGFyc2V0IiwKLSAgICAgICAgICAgICIiLAotICAgICAg
ICAgICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSkpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5z
dGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBET01fRE9DVU1F
TlRfUFJPUF9SRUFEWV9TVEFURSwKLSAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygKLSAgICAg
ICAgICAgICJyZWFkeS1zdGF0ZSIsCi0gICAgICAgICAgICAiRG9jdW1lbnQ6cmVhZHktc3RhdGUi
LAotICAgICAgICAgICAgInJlYWQtb25seSBnY2hhciogRG9jdW1lbnQ6cmVhZHktc3RhdGUiLAot
ICAgICAgICAgICAgIiIsCi0gICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLQot
ICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdvYmplY3RDbGFz
cywKLSAgICAgICAgRE9NX0RPQ1VNRU5UX1BST1BfQ0hBUkFDVEVSX1NFVCwKLSAgICAgICAgZ19w
YXJhbV9zcGVjX3N0cmluZygKLSAgICAgICAgICAgICJjaGFyYWN0ZXItc2V0IiwKLSAgICAgICAg
ICAgICJEb2N1bWVudDpjaGFyYWN0ZXItc2V0IiwKLSAgICAgICAgICAgICJyZWFkLW9ubHkgZ2No
YXIqIERvY3VtZW50OmNoYXJhY3Rlci1zZXQiLAotICAgICAgICAgICAgIiIsCi0gICAgICAgICAg
ICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxf
cHJvcGVydHkoCi0gICAgICAgIGdvYmplY3RDbGFzcywKLSAgICAgICAgRE9NX0RPQ1VNRU5UX1BS
T1BfUFJFRkVSUkVEX1NUWUxFU0hFRVRfU0VULAotICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5n
KAotICAgICAgICAgICAgInByZWZlcnJlZC1zdHlsZXNoZWV0LXNldCIsCi0gICAgICAgICAgICAi
RG9jdW1lbnQ6cHJlZmVycmVkLXN0eWxlc2hlZXQtc2V0IiwKLSAgICAgICAgICAgICJyZWFkLW9u
bHkgZ2NoYXIqIERvY3VtZW50OnByZWZlcnJlZC1zdHlsZXNoZWV0LXNldCIsCi0gICAgICAgICAg
ICAiIiwKLSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgZ19vYmpl
Y3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVjdENsYXNzLAotICAgICAg
ICBET01fRE9DVU1FTlRfUFJPUF9TRUxFQ1RFRF9TVFlMRVNIRUVUX1NFVCwKLSAgICAgICAgZ19w
YXJhbV9zcGVjX3N0cmluZygKLSAgICAgICAgICAgICJzZWxlY3RlZC1zdHlsZXNoZWV0LXNldCIs
Ci0gICAgICAgICAgICAiRG9jdW1lbnQ6c2VsZWN0ZWQtc3R5bGVzaGVldC1zZXQiLAotICAgICAg
ICAgICAgInJlYWQtd3JpdGUgZ2NoYXIqIERvY3VtZW50OnNlbGVjdGVkLXN0eWxlc2hlZXQtc2V0
IiwKLSAgICAgICAgICAgICIiLAotICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSkp
OwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVj
dENsYXNzLAotICAgICAgICBET01fRE9DVU1FTlRfUFJPUF9BQ1RJVkVfRUxFTUVOVCwKLSAgICAg
ICAgZ19wYXJhbV9zcGVjX29iamVjdCgKLSAgICAgICAgICAgICJhY3RpdmUtZWxlbWVudCIsCi0g
ICAgICAgICAgICAiRG9jdW1lbnQ6YWN0aXZlLWVsZW1lbnQiLAotICAgICAgICAgICAgInJlYWQt
b25seSBXZWJLaXRET01FbGVtZW50KiBEb2N1bWVudDphY3RpdmUtZWxlbWVudCIsCi0gICAgICAg
ICAgICBXRUJLSVRfRE9NX1RZUEVfRUxFTUVOVCwKLSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9S
RUFEQUJMRSkpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAg
ICAgZ29iamVjdENsYXNzLAotICAgICAgICBET01fRE9DVU1FTlRfUFJPUF9DT01QQVRfTU9ERSwK
LSAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygKLSAgICAgICAgICAgICJjb21wYXQtbW9kZSIs
Ci0gICAgICAgICAgICAiRG9jdW1lbnQ6Y29tcGF0LW1vZGUiLAotICAgICAgICAgICAgInJlYWQt
b25seSBnY2hhciogRG9jdW1lbnQ6Y29tcGF0LW1vZGUiLAotICAgICAgICAgICAgIiIsCi0gICAg
ICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAgIGdfb2JqZWN0X2NsYXNzX2lu
c3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdvYmplY3RDbGFzcywKLSAgICAgICAgRE9NX0RPQ1VN
RU5UX1BST1BfV0VCS0lUX0lTX0ZVTExfU0NSRUVOLAotICAgICAgICBnX3BhcmFtX3NwZWNfYm9v
bGVhbigKLSAgICAgICAgICAgICJ3ZWJraXQtaXMtZnVsbC1zY3JlZW4iLAotICAgICAgICAgICAg
IkRvY3VtZW50OndlYmtpdC1pcy1mdWxsLXNjcmVlbiIsCi0gICAgICAgICAgICAicmVhZC1vbmx5
IGdib29sZWFuIERvY3VtZW50OndlYmtpdC1pcy1mdWxsLXNjcmVlbiIsCi0gICAgICAgICAgICBG
QUxTRSwKLSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgZ19vYmpl
Y3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVjdENsYXNzLAotICAgICAg
ICBET01fRE9DVU1FTlRfUFJPUF9XRUJLSVRfRlVMTF9TQ1JFRU5fS0VZQk9BUkRfSU5QVVRfQUxM
T1dFRCwKLSAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oCi0gICAgICAgICAgICAid2Via2l0
LWZ1bGwtc2NyZWVuLWtleWJvYXJkLWlucHV0LWFsbG93ZWQiLAotICAgICAgICAgICAgIkRvY3Vt
ZW50OndlYmtpdC1mdWxsLXNjcmVlbi1rZXlib2FyZC1pbnB1dC1hbGxvd2VkIiwKLSAgICAgICAg
ICAgICJyZWFkLW9ubHkgZ2Jvb2xlYW4gRG9jdW1lbnQ6d2Via2l0LWZ1bGwtc2NyZWVuLWtleWJv
YXJkLWlucHV0LWFsbG93ZWQiLAotICAgICAgICAgICAgRkFMU0UsCi0gICAgICAgICAgICBXRUJL
SVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVy
dHkoCi0gICAgICAgIGdvYmplY3RDbGFzcywKLSAgICAgICAgRE9NX0RPQ1VNRU5UX1BST1BfV0VC
S0lUX0NVUlJFTlRfRlVMTF9TQ1JFRU5fRUxFTUVOVCwKLSAgICAgICAgZ19wYXJhbV9zcGVjX29i
amVjdCgKLSAgICAgICAgICAgICJ3ZWJraXQtY3VycmVudC1mdWxsLXNjcmVlbi1lbGVtZW50IiwK
LSAgICAgICAgICAgICJEb2N1bWVudDp3ZWJraXQtY3VycmVudC1mdWxsLXNjcmVlbi1lbGVtZW50
IiwKLSAgICAgICAgICAgICJyZWFkLW9ubHkgV2ViS2l0RE9NRWxlbWVudCogRG9jdW1lbnQ6d2Vi
a2l0LWN1cnJlbnQtZnVsbC1zY3JlZW4tZWxlbWVudCIsCi0gICAgICAgICAgICBXRUJLSVRfRE9N
X1RZUEVfRUxFTUVOVCwKLSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0g
ICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVjdENsYXNz
LAotICAgICAgICBET01fRE9DVU1FTlRfUFJPUF9XRUJLSVRfRlVMTFNDUkVFTl9FTkFCTEVELAot
ICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigKLSAgICAgICAgICAgICJ3ZWJraXQtZnVsbHNj
cmVlbi1lbmFibGVkIiwKLSAgICAgICAgICAgICJEb2N1bWVudDp3ZWJraXQtZnVsbHNjcmVlbi1l
bmFibGVkIiwKLSAgICAgICAgICAgICJyZWFkLW9ubHkgZ2Jvb2xlYW4gRG9jdW1lbnQ6d2Via2l0
LWZ1bGxzY3JlZW4tZW5hYmxlZCIsCi0gICAgICAgICAgICBGQUxTRSwKLSAgICAgICAgICAgIFdF
QktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9w
ZXJ0eSgKLSAgICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBET01fRE9DVU1FTlRfUFJPUF9X
RUJLSVRfRlVMTFNDUkVFTl9FTEVNRU5ULAotICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KAot
ICAgICAgICAgICAgIndlYmtpdC1mdWxsc2NyZWVuLWVsZW1lbnQiLAotICAgICAgICAgICAgIkRv
Y3VtZW50OndlYmtpdC1mdWxsc2NyZWVuLWVsZW1lbnQiLAotICAgICAgICAgICAgInJlYWQtb25s
eSBXZWJLaXRET01FbGVtZW50KiBEb2N1bWVudDp3ZWJraXQtZnVsbHNjcmVlbi1lbGVtZW50IiwK
LSAgICAgICAgICAgIFdFQktJVF9ET01fVFlQRV9FTEVNRU5ULAotICAgICAgICAgICAgV0VCS0lU
X1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5
KAotICAgICAgICBnb2JqZWN0Q2xhc3MsCi0gICAgICAgIERPTV9ET0NVTUVOVF9QUk9QX1BPSU5U
RVJfTE9DS19FTEVNRU5ULAotICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KAotICAgICAgICAg
ICAgInBvaW50ZXItbG9jay1lbGVtZW50IiwKLSAgICAgICAgICAgICJEb2N1bWVudDpwb2ludGVy
LWxvY2stZWxlbWVudCIsCi0gICAgICAgICAgICAicmVhZC1vbmx5IFdlYktpdERPTUVsZW1lbnQq
IERvY3VtZW50OnBvaW50ZXItbG9jay1lbGVtZW50IiwKLSAgICAgICAgICAgIFdFQktJVF9ET01f
VFlQRV9FTEVNRU5ULAotICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAg
ICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xhc3Ms
Ci0gICAgICAgIERPTV9ET0NVTUVOVF9QUk9QX1ZJU0lCSUxJVFlfU1RBVEUsCi0gICAgICAgIGdf
cGFyYW1fc3BlY19zdHJpbmcoCi0gICAgICAgICAgICAidmlzaWJpbGl0eS1zdGF0ZSIsCi0gICAg
ICAgICAgICAiRG9jdW1lbnQ6dmlzaWJpbGl0eS1zdGF0ZSIsCi0gICAgICAgICAgICAicmVhZC1v
bmx5IGdjaGFyKiBEb2N1bWVudDp2aXNpYmlsaXR5LXN0YXRlIiwKLSAgICAgICAgICAgICIiLAot
ICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAgICBnX29iamVjdF9jbGFz
c19pbnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xhc3MsCi0gICAgICAgIERPTV9E
T0NVTUVOVF9QUk9QX0hJRERFTiwKLSAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oCi0gICAg
ICAgICAgICAiaGlkZGVuIiwKLSAgICAgICAgICAgICJEb2N1bWVudDpoaWRkZW4iLAotICAgICAg
ICAgICAgInJlYWQtb25seSBnYm9vbGVhbiBEb2N1bWVudDpoaWRkZW4iLAotICAgICAgICAgICAg
RkFMU0UsCi0gICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAgIGdfb2Jq
ZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdvYmplY3RDbGFzcywKLSAgICAg
ICAgRE9NX0RPQ1VNRU5UX1BST1BfQ1VSUkVOVF9TQ1JJUFQsCi0gICAgICAgIGdfcGFyYW1fc3Bl
Y19vYmplY3QoCi0gICAgICAgICAgICAiY3VycmVudC1zY3JpcHQiLAotICAgICAgICAgICAgIkRv
Y3VtZW50OmN1cnJlbnQtc2NyaXB0IiwKLSAgICAgICAgICAgICJyZWFkLW9ubHkgV2ViS2l0RE9N
SFRNTFNjcmlwdEVsZW1lbnQqIERvY3VtZW50OmN1cnJlbnQtc2NyaXB0IiwKLSAgICAgICAgICAg
IFdFQktJVF9ET01fVFlQRV9IVE1MX1NDUklQVF9FTEVNRU5ULAotICAgICAgICAgICAgV0VCS0lU
X1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5
KAotICAgICAgICBnb2JqZWN0Q2xhc3MsCi0gICAgICAgIERPTV9ET0NVTUVOVF9QUk9QX09SSUdJ
TiwKLSAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygKLSAgICAgICAgICAgICJvcmlnaW4iLAot
ICAgICAgICAgICAgIkRvY3VtZW50Om9yaWdpbiIsCi0gICAgICAgICAgICAicmVhZC1vbmx5IGdj
aGFyKiBEb2N1bWVudDpvcmlnaW4iLAotICAgICAgICAgICAgIiIsCi0gICAgICAgICAgICBXRUJL
SVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVy
dHkoCi0gICAgICAgIGdvYmplY3RDbGFzcywKLSAgICAgICAgRE9NX0RPQ1VNRU5UX1BST1BfU0NS
T0xMSU5HX0VMRU1FTlQsCi0gICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoCi0gICAgICAgICAg
ICAic2Nyb2xsaW5nLWVsZW1lbnQiLAotICAgICAgICAgICAgIkRvY3VtZW50OnNjcm9sbGluZy1l
bGVtZW50IiwKLSAgICAgICAgICAgICJyZWFkLW9ubHkgV2ViS2l0RE9NRWxlbWVudCogRG9jdW1l
bnQ6c2Nyb2xsaW5nLWVsZW1lbnQiLAotICAgICAgICAgICAgV0VCS0lUX0RPTV9UWVBFX0VMRU1F
TlQsCi0gICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAgIGdfb2JqZWN0
X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdvYmplY3RDbGFzcywKLSAgICAgICAg
RE9NX0RPQ1VNRU5UX1BST1BfQ0hJTERSRU4sCi0gICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3Qo
Ci0gICAgICAgICAgICAiY2hpbGRyZW4iLAotICAgICAgICAgICAgIkRvY3VtZW50OmNoaWxkcmVu
IiwKLSAgICAgICAgICAgICJyZWFkLW9ubHkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qIERvY3Vt
ZW50OmNoaWxkcmVuIiwKLSAgICAgICAgICAgIFdFQktJVF9ET01fVFlQRV9IVE1MX0NPTExFQ1RJ
T04sCi0gICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAgIGdfb2JqZWN0
X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdvYmplY3RDbGFzcywKLSAgICAgICAg
RE9NX0RPQ1VNRU5UX1BST1BfRklSU1RfRUxFTUVOVF9DSElMRCwKLSAgICAgICAgZ19wYXJhbV9z
cGVjX29iamVjdCgKLSAgICAgICAgICAgICJmaXJzdC1lbGVtZW50LWNoaWxkIiwKLSAgICAgICAg
ICAgICJEb2N1bWVudDpmaXJzdC1lbGVtZW50LWNoaWxkIiwKLSAgICAgICAgICAgICJyZWFkLW9u
bHkgV2ViS2l0RE9NRWxlbWVudCogRG9jdW1lbnQ6Zmlyc3QtZWxlbWVudC1jaGlsZCIsCi0gICAg
ICAgICAgICBXRUJLSVRfRE9NX1RZUEVfRUxFTUVOVCwKLSAgICAgICAgICAgIFdFQktJVF9QQVJB
TV9SRUFEQUJMRSkpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAg
ICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBET01fRE9DVU1FTlRfUFJPUF9MQVNUX0VMRU1F
TlRfQ0hJTEQsCi0gICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoCi0gICAgICAgICAgICAibGFz
dC1lbGVtZW50LWNoaWxkIiwKLSAgICAgICAgICAgICJEb2N1bWVudDpsYXN0LWVsZW1lbnQtY2hp
bGQiLAotICAgICAgICAgICAgInJlYWQtb25seSBXZWJLaXRET01FbGVtZW50KiBEb2N1bWVudDps
YXN0LWVsZW1lbnQtY2hpbGQiLAotICAgICAgICAgICAgV0VCS0lUX0RPTV9UWVBFX0VMRU1FTlQs
Ci0gICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAgIGdfb2JqZWN0X2Ns
YXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdvYmplY3RDbGFzcywKLSAgICAgICAgRE9N
X0RPQ1VNRU5UX1BST1BfQ0hJTERfRUxFTUVOVF9DT1VOVCwKLSAgICAgICAgZ19wYXJhbV9zcGVj
X3Vsb25nKAotICAgICAgICAgICAgImNoaWxkLWVsZW1lbnQtY291bnQiLAotICAgICAgICAgICAg
IkRvY3VtZW50OmNoaWxkLWVsZW1lbnQtY291bnQiLAotICAgICAgICAgICAgInJlYWQtb25seSBn
dWxvbmcgRG9jdW1lbnQ6Y2hpbGQtZWxlbWVudC1jb3VudCIsCi0gICAgICAgICAgICAwLCBHX01B
WFVMT05HLCAwLAotICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLX0KLQot
c3RhdGljIHZvaWQgd2Via2l0X2RvbV9kb2N1bWVudF9pbml0KFdlYktpdERPTURvY3VtZW50KiBy
ZXF1ZXN0KQotewotICAgIFVOVVNFRF9QQVJBTShyZXF1ZXN0KTsKLX0KLQotV2ViS2l0RE9NRWxl
bWVudCogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfZWxlbWVudChXZWJLaXRET01Eb2N1bWVu
dCogc2VsZiwgY29uc3QgZ2NoYXIqIHRhZ05hbWUsIEdFcnJvcioqIGVycm9yKQotewotICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKLSAgICBnX3JldHVybl92YWxf
aWZfZmFpbCh0YWdOYW1lLCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbCghZXJyb3IgfHwg
ISplcnJvciwgMCk7Ci0gICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUo
c2VsZik7Ci0gICAgV1RGOjpTdHJpbmcgY29udmVydGVkVGFnTmFtZSA9IFdURjo6U3RyaW5nOjpm
cm9tVVRGOCh0YWdOYW1lKTsKLSAgICBhdXRvIHJlc3VsdCA9IGl0ZW0tPmNyZWF0ZUVsZW1lbnRG
b3JCaW5kaW5ncyhjb252ZXJ0ZWRUYWdOYW1lKTsKLSAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlv
bigpKSB7Ci0gICAgICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3JlOjpET01FeGNlcHRpb246
OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgpKTsKLSAgICAgICAg
Z19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RP
TSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5uYW1lKTsKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBXZWJLaXQ6OmtpdChyZXN1bHQucmVs
ZWFzZVJldHVyblZhbHVlKCkucHRyKCkpOwotfQotCi1XZWJLaXRET01Eb2N1bWVudEZyYWdtZW50
KiB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9kb2N1bWVudF9mcmFnbWVudChXZWJLaXRET01E
b2N1bWVudCogc2VsZikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxm
KSwgMCk7Ci0gICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7
Ci0gICAgUmVmUHRyPFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQ+IGdvYmplY3RSZXN1bHQgPSBX
VEY6OmdldFB0cihpdGVtLT5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkpOwotICAgIHJldHVybiBX
ZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKLX0KLQotV2ViS2l0RE9NVGV4dCogd2Vi
a2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfdGV4dF9ub2RlKFdlYktpdERPTURvY3VtZW50KiBzZWxm
LCBjb25zdCBnY2hhciogZGF0YSkKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVO
VChzZWxmKSwgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoZGF0YSwgMCk7Ci0gICAgV2Vi
Q29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgV1RGOjpTdHJp
bmcgY29udmVydGVkRGF0YSA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChkYXRhKTsKLSAgICBSZWZQ
dHI8V2ViQ29yZTo6VGV4dD4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPmNyZWF0
ZVRleHROb2RlKGNvbnZlcnRlZERhdGEpKTsKLSAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVj
dFJlc3VsdC5nZXQoKSk7Ci19Ci0KLVdlYktpdERPTUNvbW1lbnQqIHdlYmtpdF9kb21fZG9jdW1l
bnRfY3JlYXRlX2NvbW1lbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBk
YXRhKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBn
X3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKLSAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChkYXRhLCAwKTsKLSAgICBXZWJDb3JlOjpEb2N1bWVudCog
aXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWREYXRh
ID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KGRhdGEpOwotICAgIFJlZlB0cjxXZWJDb3JlOjpDb21t
ZW50PiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+Y3JlYXRlQ29tbWVudChjb252
ZXJ0ZWREYXRhKSk7Ci0gICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkp
OwotfQotCi1XZWJLaXRET01DREFUQVNlY3Rpb24qIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRl
X2NkYXRhX3NlY3Rpb24oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBkYXRh
LCBHRXJyb3IqKiBlcnJvcikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChz
ZWxmKSwgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoZGF0YSwgMCk7Ci0gICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoIWVycm9yIHx8ICEqZXJyb3IsIDApOwotICAgIFdlYkNvcmU6OkRvY3Vt
ZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFdURjo6U3RyaW5nIGNvbnZlcnRl
ZERhdGEgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgoZGF0YSk7Ci0gICAgYXV0byByZXN1bHQgPSBp
dGVtLT5jcmVhdGVDREFUQVNlY3Rpb24oY29udmVydGVkRGF0YSk7Ci0gICAgaWYgKHJlc3VsdC5o
YXNFeGNlcHRpb24oKSkgewotICAgICAgICBhdXRvIGRlc2NyaXB0aW9uID0gV2ViQ29yZTo6RE9N
RXhjZXB0aW9uOjpkZXNjcmlwdGlvbihyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUoKSk7
Ci0gICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmco
IldFQktJVF9ET00iKSwgZGVzY3JpcHRpb24ubGVnYWN5Q29kZSwgZGVzY3JpcHRpb24ubmFtZSk7
Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICByZXR1cm4gV2ViS2l0OjpraXQo
cmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLnB0cigpKTsKLX0KLQotV2ViS2l0RE9NUHJvY2Vz
c2luZ0luc3RydWN0aW9uKiB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9wcm9jZXNzaW5nX2lu
c3RydWN0aW9uKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdGFyZ2V0LCBj
b25zdCBnY2hhciogZGF0YSwgR0Vycm9yKiogZXJyb3IpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9E
T01fSVNfRE9DVU1FTlQoc2VsZiksIDApOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHRhcmdl
dCwgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoZGF0YSwgMCk7Ci0gICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoIWVycm9yIHx8ICEqZXJyb3IsIDApOwotICAgIFdlYkNvcmU6OkRvY3VtZW50
KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZFRh
cmdldCA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOCh0YXJnZXQpOwotICAgIFdURjo6U3RyaW5nIGNv
bnZlcnRlZERhdGEgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgoZGF0YSk7Ci0gICAgYXV0byByZXN1
bHQgPSBpdGVtLT5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oY29udmVydGVkVGFyZ2V0LCBj
b252ZXJ0ZWREYXRhKTsKLSAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAgICAg
IGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3JlOjpET01FeGNlcHRpb246OmRlc2NyaXB0aW9uKHJl
c3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgpKTsKLSAgICAgICAgZ19zZXRfZXJyb3JfbGl0
ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBkZXNjcmlwdGlv
bi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5uYW1lKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgfQotICAgIHJldHVybiBXZWJLaXQ6OmtpdChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVl
KCkucHRyKCkpOwotfQotCi1XZWJLaXRET01BdHRyKiB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0
ZV9hdHRyaWJ1dGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lLCBH
RXJyb3IqKiBlcnJvcikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxm
KSwgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwobmFtZSwgMCk7Ci0gICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoIWVycm9yIHx8ICEqZXJyb3IsIDApOwotICAgIFdlYkNvcmU6OkRvY3VtZW50
KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZE5h
bWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgobmFtZSk7Ci0gICAgYXV0byByZXN1bHQgPSBpdGVt
LT5jcmVhdGVBdHRyaWJ1dGUoY29udmVydGVkTmFtZSk7Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNl
cHRpb24oKSkgewotICAgICAgICBhdXRvIGRlc2NyaXB0aW9uID0gV2ViQ29yZTo6RE9NRXhjZXB0
aW9uOjpkZXNjcmlwdGlvbihyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUoKSk7Ci0gICAg
ICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJ
VF9ET00iKSwgZGVzY3JpcHRpb24ubGVnYWN5Q29kZSwgZGVzY3JpcHRpb24ubmFtZSk7Ci0gICAg
ICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICByZXR1cm4gV2ViS2l0OjpraXQocmVzdWx0
LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLnB0cigpKTsKLX0KLQotV2ViS2l0RE9NSFRNTENvbGxlY3Rp
b24qIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRzX2J5X3RhZ19uYW1lX2FzX2h0bWxf
Y29sbGVjdGlvbihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHRhZ25hbWUp
Ci17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOwotICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKHRhZ25hbWUsIDApOwotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBp
dGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZFRhZ25h
bWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodGFnbmFtZSk7Ci0gICAgUmVmUHRyPFdlYkNvcmU6
OkhUTUxDb2xsZWN0aW9uPiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+Z2V0RWxl
bWVudHNCeVRhZ05hbWUoY29udmVydGVkVGFnbmFtZSkpOwotICAgIHJldHVybiBXZWJLaXQ6Omtp
dChnb2JqZWN0UmVzdWx0LmdldCgpKTsKLX0KLQotV2ViS2l0RE9NTm9kZSogd2Via2l0X2RvbV9k
b2N1bWVudF9pbXBvcnRfbm9kZShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgV2ViS2l0RE9NTm9k
ZSogaW1wb3J0ZWROb2RlLCBnYm9vbGVhbiBkZWVwLCBHRXJyb3IqKiBlcnJvcikKLXsKLSAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7Ci0gICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19OT0RFKGltcG9ydGVkTm9kZSksIDApOwotICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKCFlcnJvciB8fCAhKmVycm9yLCAwKTsKLSAgICBXZWJDb3JlOjpEb2N1
bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBXZWJDb3JlOjpOb2RlKiBjb252
ZXJ0ZWRJbXBvcnRlZE5vZGUgPSBXZWJLaXQ6OmNvcmUoaW1wb3J0ZWROb2RlKTsKLSAgICBhdXRv
IHJlc3VsdCA9IGl0ZW0tPmltcG9ydE5vZGUoKmNvbnZlcnRlZEltcG9ydGVkTm9kZSwgZGVlcCk7
Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICBhdXRvIGRlc2NyaXB0
aW9uID0gV2ViQ29yZTo6RE9NRXhjZXB0aW9uOjpkZXNjcmlwdGlvbihyZXN1bHQucmVsZWFzZUV4
Y2VwdGlvbigpLmNvZGUoKSk7Ci0gICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdf
cXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZGVzY3JpcHRpb24ubGVnYWN5Q29kZSwg
ZGVzY3JpcHRpb24ubmFtZSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICBy
ZXR1cm4gV2ViS2l0OjpraXQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLnB0cigpKTsKLX0K
LQotV2ViS2l0RE9NRWxlbWVudCogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfZWxlbWVudF9u
cyhXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWVzcGFjZVVSSSwgY29u
c3QgZ2NoYXIqIHF1YWxpZmllZE5hbWUsIEdFcnJvcioqIGVycm9yKQotewotICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChX
RUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFp
bChxdWFsaWZpZWROYW1lLCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbCghZXJyb3IgfHwg
ISplcnJvciwgMCk7Ci0gICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUo
c2VsZik7Ci0gICAgV1RGOjpTdHJpbmcgY29udmVydGVkTmFtZXNwYWNlVVJJID0gV1RGOjpTdHJp
bmc6OmZyb21VVEY4KG5hbWVzcGFjZVVSSSk7Ci0gICAgV1RGOjpTdHJpbmcgY29udmVydGVkUXVh
bGlmaWVkTmFtZSA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChxdWFsaWZpZWROYW1lKTsKLSAgICBh
dXRvIHJlc3VsdCA9IGl0ZW0tPmNyZWF0ZUVsZW1lbnROUyhjb252ZXJ0ZWROYW1lc3BhY2VVUkks
IGNvbnZlcnRlZFF1YWxpZmllZE5hbWUpOwotICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkp
IHsKLSAgICAgICAgYXV0byBkZXNjcmlwdGlvbiA9IFdlYkNvcmU6OkRPTUV4Y2VwdGlvbjo6ZGVz
Y3JpcHRpb24ocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKS5jb2RlKCkpOwotICAgICAgICBnX3Nl
dF9lcnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiks
IGRlc2NyaXB0aW9uLmxlZ2FjeUNvZGUsIGRlc2NyaXB0aW9uLm5hbWUpOwotICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgcmV0dXJuIFdlYktpdDo6a2l0KHJlc3VsdC5yZWxlYXNl
UmV0dXJuVmFsdWUoKS5wdHIoKSk7Ci19Ci0KLVdlYktpdERPTUF0dHIqIHdlYmtpdF9kb21fZG9j
dW1lbnRfY3JlYXRlX2F0dHJpYnV0ZV9ucyhXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3Qg
Z2NoYXIqIG5hbWVzcGFjZVVSSSwgY29uc3QgZ2NoYXIqIHF1YWxpZmllZE5hbWUsIEdFcnJvcioq
IGVycm9yKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsK
LSAgICBnX3JldHVybl92YWxfaWZfZmFpbChxdWFsaWZpZWROYW1lLCAwKTsKLSAgICBnX3JldHVy
bl92YWxfaWZfZmFpbCghZXJyb3IgfHwgISplcnJvciwgMCk7Ci0gICAgV2ViQ29yZTo6RG9jdW1l
bnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgV1RGOjpTdHJpbmcgY29udmVydGVk
TmFtZXNwYWNlVVJJID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KG5hbWVzcGFjZVVSSSk7Ci0gICAg
V1RGOjpTdHJpbmcgY29udmVydGVkUXVhbGlmaWVkTmFtZSA9IFdURjo6U3RyaW5nOjpmcm9tVVRG
OChxdWFsaWZpZWROYW1lKTsKLSAgICBhdXRvIHJlc3VsdCA9IGl0ZW0tPmNyZWF0ZUF0dHJpYnV0
ZU5TKGNvbnZlcnRlZE5hbWVzcGFjZVVSSSwgY29udmVydGVkUXVhbGlmaWVkTmFtZSk7Ci0gICAg
aWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICBhdXRvIGRlc2NyaXB0aW9uID0g
V2ViQ29yZTo6RE9NRXhjZXB0aW9uOjpkZXNjcmlwdGlvbihyZXN1bHQucmVsZWFzZUV4Y2VwdGlv
bigpLmNvZGUoKSk7Ci0gICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtf
ZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZGVzY3JpcHRpb24ubGVnYWN5Q29kZSwgZGVzY3Jp
cHRpb24ubmFtZSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICByZXR1cm4g
V2ViS2l0OjpraXQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLnB0cigpKTsKLX0KLQotV2Vi
S2l0RE9NSFRNTENvbGxlY3Rpb24qIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRzX2J5
X3RhZ19uYW1lX25zX2FzX2h0bWxfY29sbGVjdGlvbihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIG5hbWVzcGFjZVVSSSwgY29uc3QgZ2NoYXIqIGxvY2FsTmFtZSkKLXsKLSAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7Ci0gICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwobmFtZXNwYWNlVVJJLCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChs
b2NhbE5hbWUsIDApOwotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3Jl
KHNlbGYpOwotICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZE5hbWVzcGFjZVVSSSA9IFdURjo6U3Ry
aW5nOjpmcm9tVVRGOChuYW1lc3BhY2VVUkkpOwotICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZExv
Y2FsTmFtZSA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChsb2NhbE5hbWUpOwotICAgIFJlZlB0cjxX
ZWJDb3JlOjpIVE1MQ29sbGVjdGlvbj4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0t
PmdldEVsZW1lbnRzQnlUYWdOYW1lTlMoY29udmVydGVkTmFtZXNwYWNlVVJJLCBjb252ZXJ0ZWRM
b2NhbE5hbWUpKTsKLSAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7
Ci19Ci0KLVdlYktpdERPTU5vZGUqIHdlYmtpdF9kb21fZG9jdW1lbnRfYWRvcHRfbm9kZShXZWJL
aXRET01Eb2N1bWVudCogc2VsZiwgV2ViS2l0RE9NTm9kZSogc291cmNlLCBHRXJyb3IqKiBlcnJv
cikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7Ci0gICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19OT0RFKHNvdXJjZSksIDApOwotICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKCFlcnJvciB8fCAhKmVycm9yLCAwKTsKLSAgICBXZWJDb3Jl
OjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBXZWJDb3JlOjpOb2Rl
KiBjb252ZXJ0ZWRTb3VyY2UgPSBXZWJLaXQ6OmNvcmUoc291cmNlKTsKLSAgICBhdXRvIHJlc3Vs
dCA9IGl0ZW0tPmFkb3B0Tm9kZSgqY29udmVydGVkU291cmNlKTsKLSAgICBpZiAocmVzdWx0Lmhh
c0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3JlOjpET01F
eGNlcHRpb246OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgpKTsK
LSAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygi
V0VCS0lUX0RPTSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5uYW1lKTsK
LSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBXZWJLaXQ6OmtpdChy
ZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkucHRyKCkpOwotfQotCi1XZWJLaXRET01FdmVudCog
d2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfZXZlbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYs
IGNvbnN0IGdjaGFyKiBldmVudFR5cGUsIEdFcnJvcioqIGVycm9yKQotewotICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChX
RUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFp
bChldmVudFR5cGUsIDApOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKCFlcnJvciB8fCAhKmVy
cm9yLCAwKTsKLSAgICBXZWJDb3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxm
KTsKLSAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWRFdmVudFR5cGUgPSBXVEY6OlN0cmluZzo6ZnJv
bVVURjgoZXZlbnRUeXBlKTsKLSAgICBhdXRvIHJlc3VsdCA9IGl0ZW0tPmNyZWF0ZUV2ZW50KGNv
bnZlcnRlZEV2ZW50VHlwZSk7Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAg
ICAgICBhdXRvIGRlc2NyaXB0aW9uID0gV2ViQ29yZTo6RE9NRXhjZXB0aW9uOjpkZXNjcmlwdGlv
bihyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUoKSk7Ci0gICAgICAgIGdfc2V0X2Vycm9y
X2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZGVzY3Jp
cHRpb24ubGVnYWN5Q29kZSwgZGVzY3JpcHRpb24ubmFtZSk7Ci0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIH0KLSAgICByZXR1cm4gV2ViS2l0OjpraXQocmVzdWx0LnJlbGVhc2VSZXR1cm5W
YWx1ZSgpLnB0cigpKTsKLX0KLQotV2ViS2l0RE9NUmFuZ2UqIHdlYmtpdF9kb21fZG9jdW1lbnRf
Y3JlYXRlX3JhbmdlKFdlYktpdERPTURvY3VtZW50KiBzZWxmKQotewotICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJL
SVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKLSAgICBXZWJDb3JlOjpEb2N1bWVudCogaXRl
bSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+IGdvYmpl
Y3RSZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5jcmVhdGVSYW5nZSgpKTsKLSAgICByZXR1cm4g
V2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7Ci19Ci0KLVdlYktpdERPTU5vZGVJdGVy
YXRvciogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfbm9kZV9pdGVyYXRvcihXZWJLaXRET01E
b2N1bWVudCogc2VsZiwgV2ViS2l0RE9NTm9kZSogcm9vdCwgZ3Vsb25nIHdoYXRUb1Nob3csIFdl
YktpdERPTU5vZGVGaWx0ZXIqIGZpbHRlciwgZ2Jvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJlbmNl
cywgR0Vycm9yKiogZXJyb3IpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQo
c2VsZiksIDApOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfTk9ERShy
b290KSwgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoIWZpbHRlciB8fCBXRUJLSVRfRE9N
X0lTX05PREVfRklMVEVSKGZpbHRlciksIDApOwotICAgIFVOVVNFRF9QQVJBTShlcnJvcik7Ci0g
ICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgV2Vi
Q29yZTo6Tm9kZSogY29udmVydGVkUm9vdCA9IFdlYktpdDo6Y29yZShyb290KTsKLSAgICBSZWZQ
dHI8V2ViQ29yZTo6Tm9kZUZpbHRlcj4gY29udmVydGVkRmlsdGVyID0gV2ViS2l0Ojpjb3JlKGl0
ZW0sIGZpbHRlcik7Ci0gICAgUmVmUHRyPFdlYkNvcmU6Ok5vZGVJdGVyYXRvcj4gZ29iamVjdFJl
c3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPmNyZWF0ZU5vZGVJdGVyYXRvcigqY29udmVydGVkUm9v
dCwgd2hhdFRvU2hvdywgV1RGOjpnZXRQdHIoY29udmVydGVkRmlsdGVyKSwgZXhwYW5kRW50aXR5
UmVmZXJlbmNlcykpOwotICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgp
KTsKLX0KLQotV2ViS2l0RE9NVHJlZVdhbGtlciogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVf
dHJlZV93YWxrZXIoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJvb3Qs
IGd1bG9uZyB3aGF0VG9TaG93LCBXZWJLaXRET01Ob2RlRmlsdGVyKiBmaWx0ZXIsIGdib29sZWFu
IGV4cGFuZEVudGl0eVJlZmVyZW5jZXMsIEdFcnJvcioqIGVycm9yKQotewotICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChX
RUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfRE9NX0lTX05PREUocm9vdCksIDApOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KCFmaWx0ZXIgfHwgV0VCS0lUX0RPTV9JU19OT0RFX0ZJTFRFUihmaWx0ZXIpLCAwKTsKLSAgICBV
TlVTRURfUEFSQU0oZXJyb3IpOwotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0
Ojpjb3JlKHNlbGYpOwotICAgIFdlYkNvcmU6Ok5vZGUqIGNvbnZlcnRlZFJvb3QgPSBXZWJLaXQ6
OmNvcmUocm9vdCk7Ci0gICAgUmVmUHRyPFdlYkNvcmU6Ok5vZGVGaWx0ZXI+IGNvbnZlcnRlZEZp
bHRlciA9IFdlYktpdDo6Y29yZShpdGVtLCBmaWx0ZXIpOwotICAgIFJlZlB0cjxXZWJDb3JlOjpU
cmVlV2Fsa2VyPiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+Y3JlYXRlVHJlZVdh
bGtlcigqY29udmVydGVkUm9vdCwgd2hhdFRvU2hvdywgV1RGOjpnZXRQdHIoY29udmVydGVkRmls
dGVyKSwgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykpOwotICAgIHJldHVybiBXZWJLaXQ6OmtpdChn
b2JqZWN0UmVzdWx0LmdldCgpKTsKLX0KLQotV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiog
d2Via2l0X2RvbV9kb2N1bWVudF9nZXRfb3ZlcnJpZGVfc3R5bGUoV2ViS2l0RE9NRG9jdW1lbnQq
IHNlbGYsIFdlYktpdERPTUVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IGdjaGFyKiBwc2V1ZG9FbGVt
ZW50KQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBn
X3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKLSAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoZWxlbWVudCksIDAp
OwotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAg
IFdlYkNvcmU6OkVsZW1lbnQqIGNvbnZlcnRlZEVsZW1lbnQgPSBXZWJLaXQ6OmNvcmUoZWxlbWVu
dCk7Ci0gICAgV1RGOjpTdHJpbmcgY29udmVydGVkUHNldWRvRWxlbWVudCA9IFdURjo6U3RyaW5n
Ojpmcm9tVVRGOChwc2V1ZG9FbGVtZW50KTsKLSAgICBSZWZQdHI8V2ViQ29yZTo6Q1NTU3R5bGVE
ZWNsYXJhdGlvbj4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPmdldE92ZXJyaWRl
U3R5bGUoY29udmVydGVkRWxlbWVudCwgY29udmVydGVkUHNldWRvRWxlbWVudCkpOwotICAgIHJl
dHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKLX0KLQotV2ViS2l0RE9NWFBh
dGhFeHByZXNzaW9uKiB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9leHByZXNzaW9uKFdlYktp
dERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogZXhwcmVzc2lvbiwgV2ViS2l0RE9NWFBh
dGhOU1Jlc29sdmVyKiByZXNvbHZlciwgR0Vycm9yKiogZXJyb3IpCi17Ci0gICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdF
QktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KGV4cHJlc3Npb24sIDApOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNf
WFBBVEhfTlNfUkVTT0xWRVIocmVzb2x2ZXIpLCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFp
bCghZXJyb3IgfHwgISplcnJvciwgMCk7Ci0gICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBX
ZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgV1RGOjpTdHJpbmcgY29udmVydGVkRXhwcmVzc2lvbiA9
IFdURjo6U3RyaW5nOjpmcm9tVVRGOChleHByZXNzaW9uKTsKLSAgICBSZWZQdHI8V2ViQ29yZTo6
WFBhdGhOU1Jlc29sdmVyPiBjb252ZXJ0ZWRSZXNvbHZlciA9IFdlYktpdDo6Y29yZShyZXNvbHZl
cik7Ci0gICAgYXV0byByZXN1bHQgPSBpdGVtLT5jcmVhdGVFeHByZXNzaW9uKGNvbnZlcnRlZEV4
cHJlc3Npb24sIFdURk1vdmUoY29udmVydGVkUmVzb2x2ZXIpKTsKLSAgICBpZiAocmVzdWx0Lmhh
c0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3JlOjpET01F
eGNlcHRpb246OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgpKTsK
LSAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygi
V0VCS0lUX0RPTSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5uYW1lKTsK
LSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBXZWJLaXQ6OmtpdChy
ZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkucHRyKCkpOwotfQotCi1XZWJLaXRET01YUGF0aE5T
UmVzb2x2ZXIqIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX25zX3Jlc29sdmVyKFdlYktpdERP
TURvY3VtZW50KiBzZWxmLCBXZWJLaXRET01Ob2RlKiBub2RlUmVzb2x2ZXIpCi17Ci0gICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOwotICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKFdFQktJVF9ET01fSVNfTk9ERShub2RlUmVzb2x2ZXIpLCAwKTsKLSAgICBXZWJDb3Jl
OjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBXZWJDb3JlOjpOb2Rl
KiBjb252ZXJ0ZWROb2RlUmVzb2x2ZXIgPSBXZWJLaXQ6OmNvcmUobm9kZVJlc29sdmVyKTsKLSAg
ICBSZWZQdHI8V2ViQ29yZTo6WFBhdGhOU1Jlc29sdmVyPiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpn
ZXRQdHIoaXRlbS0+Y3JlYXRlTlNSZXNvbHZlcihjb252ZXJ0ZWROb2RlUmVzb2x2ZXIpKTsKLSAg
ICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7Ci19Ci0KLVdlYktpdERP
TVhQYXRoUmVzdWx0KiB3ZWJraXRfZG9tX2RvY3VtZW50X2V2YWx1YXRlKFdlYktpdERPTURvY3Vt
ZW50KiBzZWxmLCBjb25zdCBnY2hhciogZXhwcmVzc2lvbiwgV2ViS2l0RE9NTm9kZSogY29udGV4
dE5vZGUsIFdlYktpdERPTVhQYXRoTlNSZXNvbHZlciogcmVzb2x2ZXIsIGd1c2hvcnQgdHlwZSwg
V2ViS2l0RE9NWFBhdGhSZXN1bHQqIGluUmVzdWx0LCBHRXJyb3IqKiBlcnJvcikKLXsKLSAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7Ci0gICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoZXhwcmVzc2lvbiwgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lU
X0RPTV9JU19OT0RFKGNvbnRleHROb2RlKSwgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
IXJlc29sdmVyIHx8IFdFQktJVF9ET01fSVNfWFBBVEhfTlNfUkVTT0xWRVIocmVzb2x2ZXIpLCAw
KTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbCghaW5SZXN1bHQgfHwgV0VCS0lUX0RPTV9JU19Y
UEFUSF9SRVNVTFQoaW5SZXN1bHQpLCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbCghZXJy
b3IgfHwgISplcnJvciwgMCk7Ci0gICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6
OmNvcmUoc2VsZik7Ci0gICAgV1RGOjpTdHJpbmcgY29udmVydGVkRXhwcmVzc2lvbiA9IFdURjo6
U3RyaW5nOjpmcm9tVVRGOChleHByZXNzaW9uKTsKLSAgICBXZWJDb3JlOjpOb2RlKiBjb252ZXJ0
ZWRDb250ZXh0Tm9kZSA9IFdlYktpdDo6Y29yZShjb250ZXh0Tm9kZSk7Ci0gICAgUmVmUHRyPFdl
YkNvcmU6OlhQYXRoTlNSZXNvbHZlcj4gY29udmVydGVkUmVzb2x2ZXIgPSBXZWJLaXQ6OmNvcmUo
cmVzb2x2ZXIpOwotICAgIFdlYkNvcmU6OlhQYXRoUmVzdWx0KiBjb252ZXJ0ZWRJblJlc3VsdCA9
IFdlYktpdDo6Y29yZShpblJlc3VsdCk7Ci0gICAgYXV0byByZXN1bHQgPSBpdGVtLT5ldmFsdWF0
ZShjb252ZXJ0ZWRFeHByZXNzaW9uLCBjb252ZXJ0ZWRDb250ZXh0Tm9kZSwgV1RGTW92ZShjb252
ZXJ0ZWRSZXNvbHZlciksIHR5cGUsIGNvbnZlcnRlZEluUmVzdWx0KTsKLSAgICBpZiAocmVzdWx0
Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3JlOjpE
T01FeGNlcHRpb246OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgp
KTsKLSAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmlu
ZygiV0VCS0lUX0RPTSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5uYW1l
KTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBXZWJLaXQ6Omtp
dChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkucHRyKCkpOwotfQotCi1nYm9vbGVhbiB3ZWJr
aXRfZG9tX2RvY3VtZW50X2V4ZWNfY29tbWFuZChXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29u
c3QgZ2NoYXIqIGNvbW1hbmQsIGdib29sZWFuIHVzZXJJbnRlcmZhY2UsIGNvbnN0IGdjaGFyKiB2
YWx1ZSkKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgRkFMU0Up
OwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvbW1hbmQsIEZBTFNFKTsKLSAgICBnX3JldHVy
bl92YWxfaWZfZmFpbCh2YWx1ZSwgRkFMU0UpOwotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVt
ID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZENvbW1hbmQg
PSBXVEY6OlN0cmluZzo6ZnJvbVVURjgoY29tbWFuZCk7Ci0gICAgV1RGOjpTdHJpbmcgY29udmVy
dGVkVmFsdWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodmFsdWUpOwotICAgIGdib29sZWFuIHJl
c3VsdCA9IGl0ZW0tPmV4ZWNDb21tYW5kKGNvbnZlcnRlZENvbW1hbmQsIHVzZXJJbnRlcmZhY2Us
IGNvbnZlcnRlZFZhbHVlKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1nYm9vbGVhbiB3ZWJr
aXRfZG9tX2RvY3VtZW50X3F1ZXJ5X2NvbW1hbmRfZW5hYmxlZChXZWJLaXRET01Eb2N1bWVudCog
c2VsZiwgY29uc3QgZ2NoYXIqIGNvbW1hbmQpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNf
RE9DVU1FTlQoc2VsZiksIEZBTFNFKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb21tYW5k
LCBGQUxTRSk7Ci0gICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2Vs
Zik7Ci0gICAgV1RGOjpTdHJpbmcgY29udmVydGVkQ29tbWFuZCA9IFdURjo6U3RyaW5nOjpmcm9t
VVRGOChjb21tYW5kKTsKLSAgICBnYm9vbGVhbiByZXN1bHQgPSBpdGVtLT5xdWVyeUNvbW1hbmRF
bmFibGVkKGNvbnZlcnRlZENvbW1hbmQpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLWdib29s
ZWFuIHdlYmtpdF9kb21fZG9jdW1lbnRfcXVlcnlfY29tbWFuZF9pbmRldGVybShXZWJLaXRET01E
b2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGNvbW1hbmQpCi17Ci0gICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJ
VF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIEZBTFNFKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFp
bChjb21tYW5kLCBGQUxTRSk7Ci0gICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6
OmNvcmUoc2VsZik7Ci0gICAgV1RGOjpTdHJpbmcgY29udmVydGVkQ29tbWFuZCA9IFdURjo6U3Ry
aW5nOjpmcm9tVVRGOChjb21tYW5kKTsKLSAgICBnYm9vbGVhbiByZXN1bHQgPSBpdGVtLT5xdWVy
eUNvbW1hbmRJbmRldGVybShjb252ZXJ0ZWRDb21tYW5kKTsKLSAgICByZXR1cm4gcmVzdWx0Owot
fQotCi1nYm9vbGVhbiB3ZWJraXRfZG9tX2RvY3VtZW50X3F1ZXJ5X2NvbW1hbmRfc3RhdGUoV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBjb21tYW5kKQotewotICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCBGQUxTRSk7Ci0gICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoY29tbWFuZCwgRkFMU0UpOwotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0g
V2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZENvbW1hbmQgPSBX
VEY6OlN0cmluZzo6ZnJvbVVURjgoY29tbWFuZCk7Ci0gICAgZ2Jvb2xlYW4gcmVzdWx0ID0gaXRl
bS0+cXVlcnlDb21tYW5kU3RhdGUoY29udmVydGVkQ29tbWFuZCk7Ci0gICAgcmV0dXJuIHJlc3Vs
dDsKLX0KLQotZ2Jvb2xlYW4gd2Via2l0X2RvbV9kb2N1bWVudF9xdWVyeV9jb21tYW5kX3N1cHBv
cnRlZChXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGNvbW1hbmQpCi17Ci0g
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIEZBTFNFKTsKLSAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbChjb21tYW5kLCBGQUxTRSk7Ci0gICAgV2ViQ29yZTo6RG9jdW1lbnQq
IGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgV1RGOjpTdHJpbmcgY29udmVydGVkQ29t
bWFuZCA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChjb21tYW5kKTsKLSAgICBnYm9vbGVhbiByZXN1
bHQgPSBpdGVtLT5xdWVyeUNvbW1hbmRTdXBwb3J0ZWQoY29udmVydGVkQ29tbWFuZCk7Ci0gICAg
cmV0dXJuIHJlc3VsdDsKLX0KLQotZ2NoYXIqIHdlYmtpdF9kb21fZG9jdW1lbnRfcXVlcnlfY29t
bWFuZF92YWx1ZShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGNvbW1hbmQp
Ci17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOwotICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKGNvbW1hbmQsIDApOwotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBp
dGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZENvbW1h
bmQgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgoY29tbWFuZCk7Ci0gICAgZ2NoYXIqIHJlc3VsdCA9
IGNvbnZlcnRUb1VURjhTdHJpbmcoaXRlbS0+cXVlcnlDb21tYW5kVmFsdWUoY29udmVydGVkQ29t
bWFuZCkpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLVdlYktpdERPTU5vZGVMaXN0KiB3ZWJr
aXRfZG9tX2RvY3VtZW50X2dldF9lbGVtZW50c19ieV9uYW1lKFdlYktpdERPTURvY3VtZW50KiBz
ZWxmLCBjb25zdCBnY2hhciogZWxlbWVudE5hbWUpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01f
SVNfRE9DVU1FTlQoc2VsZiksIDApOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGVsZW1lbnRO
YW1lLCAwKTsKLSAgICBXZWJDb3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxm
KTsKLSAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWRFbGVtZW50TmFtZSA9IFdURjo6U3RyaW5nOjpm
cm9tVVRGOChlbGVtZW50TmFtZSk7Ci0gICAgUmVmUHRyPFdlYkNvcmU6Ok5vZGVMaXN0PiBnb2Jq
ZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+Z2V0RWxlbWVudHNCeU5hbWUoY29udmVydGVk
RWxlbWVudE5hbWUpKTsKLSAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQo
KSk7Ci19Ci0KLVdlYktpdERPTUVsZW1lbnQqIHdlYmtpdF9kb21fZG9jdW1lbnRfZWxlbWVudF9m
cm9tX3BvaW50KFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBnbG9uZyB4LCBnbG9uZyB5KQotewot
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKLSAgICBXZWJDb3Jl
OjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBSZWZQdHI8V2ViQ29y
ZTo6RWxlbWVudD4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPmVsZW1lbnRGcm9t
UG9pbnQoeCwgeSkpOwotICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgp
KTsKLX0KLQotV2ViS2l0RE9NUmFuZ2UqIHdlYmtpdF9kb21fZG9jdW1lbnRfY2FyZXRfcmFuZ2Vf
ZnJvbV9wb2ludChXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgZ2xvbmcgeCwgZ2xvbmcgeSkKLXsK
LSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7Ci0gICAgV2ViQ29y
ZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgUmVmUHRyPFdlYkNv
cmU6OlJhbmdlPiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+Y2FyZXRSYW5nZUZy
b21Qb2ludCh4LCB5KSk7Ci0gICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0
KCkpOwotfQotCi1XZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uKiB3ZWJraXRfZG9tX2RvY3Vt
ZW50X2NyZWF0ZV9jc3Nfc3R5bGVfZGVjbGFyYXRpb24oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYp
Ci17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOwotICAgIFdl
YkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFJlZlB0cjxX
ZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uPiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIo
aXRlbS0+Y3JlYXRlQ1NTU3R5bGVEZWNsYXJhdGlvbigpKTsKLSAgICByZXR1cm4gV2ViS2l0Ojpr
aXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7Ci19Ci0KLVdlYktpdERPTUhUTUxDb2xsZWN0aW9uKiB3
ZWJraXRfZG9tX2RvY3VtZW50X2dldF9lbGVtZW50c19ieV9jbGFzc19uYW1lX2FzX2h0bWxfY29s
bGVjdGlvbihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGNsYXNzTmFtZXMp
Ci17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOwotICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKGNsYXNzTmFtZXMsIDApOwotICAgIFdlYkNvcmU6OkRvY3VtZW50
KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZENs
YXNzTmFtZXMgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgoY2xhc3NOYW1lcyk7Ci0gICAgUmVmUHRy
PFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uPiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRl
bS0+Z2V0RWxlbWVudHNCeUNsYXNzTmFtZShjb252ZXJ0ZWRDbGFzc05hbWVzKSk7Ci0gICAgcmV0
dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOwotfQotCi1nYm9vbGVhbiB3ZWJr
aXRfZG9tX2RvY3VtZW50X2hhc19mb2N1cyhXZWJLaXRET01Eb2N1bWVudCogc2VsZikKLXsKLSAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgRkFMU0UpOwotICAgIFdlYkNv
cmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdib29sZWFuIHJl
c3VsdCA9IGl0ZW0tPmhhc0ZvY3VzKCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotdm9pZCB3
ZWJraXRfZG9tX2RvY3VtZW50X3dlYmtpdF9jYW5jZWxfZnVsbHNjcmVlbihXZWJLaXRET01Eb2N1
bWVudCogc2VsZikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpKTsKLSAg
ICBXZWJDb3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBpdGVt
LT53ZWJraXRDYW5jZWxGdWxsU2NyZWVuKCk7Ci19Ci0KLXZvaWQgd2Via2l0X2RvbV9kb2N1bWVu
dF93ZWJraXRfZXhpdF9mdWxsc2NyZWVuKFdlYktpdERPTURvY3VtZW50KiBzZWxmKQotewotICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl9pZl9m
YWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZikpOwotICAgIFdlYkNvcmU6OkRvY3VtZW50
KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGl0ZW0tPndlYmtpdEV4aXRGdWxsc2Ny
ZWVuKCk7Ci19Ci0KLXZvaWQgd2Via2l0X2RvbV9kb2N1bWVudF9leGl0X3BvaW50ZXJfbG9jayhX
ZWJLaXRET01Eb2N1bWVudCogc2VsZikKLXsKLSNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQotICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl9pZl9m
YWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZikpOwotICAgIFdlYkNvcmU6OkRvY3VtZW50
KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGl0ZW0tPmV4aXRQb2ludGVyTG9jaygp
OwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc2VsZik7Ci0gICAgV0VCS0lUX1dBUk5fRkVBVFVS
RV9OT1RfUFJFU0VOVCgiUG9pbnRlciBMb2NrIikKLSNlbmRpZiAvKiBFTkFCTEUoUE9JTlRFUl9M
T0NLKSAqLwotfQotCi1XZWJLaXRET01FbGVtZW50KiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9l
bGVtZW50X2J5X2lkKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogZWxlbWVu
dElkKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBn
X3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKLSAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChlbGVtZW50SWQsIDApOwotICAgIFdlYkNvcmU6OkRvY3Vt
ZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFdURjo6U3RyaW5nIGNvbnZlcnRl
ZEVsZW1lbnRJZCA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChlbGVtZW50SWQpOwotICAgIFJlZlB0
cjxXZWJDb3JlOjpFbGVtZW50PiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+Z2V0
RWxlbWVudEJ5SWQoY29udmVydGVkRWxlbWVudElkKSk7Ci0gICAgcmV0dXJuIFdlYktpdDo6a2l0
KGdvYmplY3RSZXN1bHQuZ2V0KCkpOwotfQotCi1XZWJLaXRET01FbGVtZW50KiB3ZWJraXRfZG9t
X2RvY3VtZW50X3F1ZXJ5X3NlbGVjdG9yKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBn
Y2hhciogc2VsZWN0b3JzLCBHRXJyb3IqKiBlcnJvcikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RP
TV9JU19ET0NVTUVOVChzZWxmKSwgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZWN0
b3JzLCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbCghZXJyb3IgfHwgISplcnJvciwgMCk7
Ci0gICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAg
V1RGOjpTdHJpbmcgY29udmVydGVkU2VsZWN0b3JzID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHNl
bGVjdG9ycyk7Ci0gICAgYXV0byByZXN1bHQgPSBpdGVtLT5xdWVyeVNlbGVjdG9yKGNvbnZlcnRl
ZFNlbGVjdG9ycyk7Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICBh
dXRvIGRlc2NyaXB0aW9uID0gV2ViQ29yZTo6RE9NRXhjZXB0aW9uOjpkZXNjcmlwdGlvbihyZXN1
bHQucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUoKSk7Ci0gICAgICAgIGdfc2V0X2Vycm9yX2xpdGVy
YWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZGVzY3JpcHRpb24u
bGVnYWN5Q29kZSwgZGVzY3JpcHRpb24ubmFtZSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwot
ICAgIH0KLSAgICByZXR1cm4gV2ViS2l0OjpraXQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgp
KTsKLX0KLQotV2ViS2l0RE9NTm9kZUxpc3QqIHdlYmtpdF9kb21fZG9jdW1lbnRfcXVlcnlfc2Vs
ZWN0b3JfYWxsKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogc2VsZWN0b3Jz
LCBHRXJyb3IqKiBlcnJvcikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChz
ZWxmKSwgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZWN0b3JzLCAwKTsKLSAgICBn
X3JldHVybl92YWxfaWZfZmFpbCghZXJyb3IgfHwgISplcnJvciwgMCk7Ci0gICAgV2ViQ29yZTo6
RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgV1RGOjpTdHJpbmcgY29u
dmVydGVkU2VsZWN0b3JzID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHNlbGVjdG9ycyk7Ci0gICAg
YXV0byByZXN1bHQgPSBpdGVtLT5xdWVyeVNlbGVjdG9yQWxsKGNvbnZlcnRlZFNlbGVjdG9ycyk7
Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICBhdXRvIGRlc2NyaXB0
aW9uID0gV2ViQ29yZTo6RE9NRXhjZXB0aW9uOjpkZXNjcmlwdGlvbihyZXN1bHQucmVsZWFzZUV4
Y2VwdGlvbigpLmNvZGUoKSk7Ci0gICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdf
cXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZGVzY3JpcHRpb24ubGVnYWN5Q29kZSwg
ZGVzY3JpcHRpb24ubmFtZSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICBy
ZXR1cm4gV2ViS2l0OjpraXQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLnB0cigpKTsKLX0K
LQotV2ViS2l0RE9NRG9jdW1lbnRUeXBlKiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kb2N0eXBl
KFdlYktpdERPTURvY3VtZW50KiBzZWxmKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RP
Q1VNRU5UKHNlbGYpLCAwKTsKLSAgICBXZWJDb3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6
Y29yZShzZWxmKTsKLSAgICBSZWZQdHI8V2ViQ29yZTo6RG9jdW1lbnRUeXBlPiBnb2JqZWN0UmVz
dWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+ZG9jdHlwZSgpKTsKLSAgICByZXR1cm4gV2ViS2l0Ojpr
aXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7Ci19Ci0KLVdlYktpdERPTURPTUltcGxlbWVudGF0aW9u
KiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9pbXBsZW1lbnRhdGlvbihXZWJLaXRET01Eb2N1bWVu
dCogc2VsZikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0g
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7
Ci0gICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAg
UmVmUHRyPFdlYkNvcmU6OkRPTUltcGxlbWVudGF0aW9uPiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpn
ZXRQdHIoaXRlbS0+aW1wbGVtZW50YXRpb24oKSk7Ci0gICAgcmV0dXJuIFdlYktpdDo6a2l0KGdv
YmplY3RSZXN1bHQuZ2V0KCkpOwotfQotCi1XZWJLaXRET01FbGVtZW50KiB3ZWJraXRfZG9tX2Rv
Y3VtZW50X2dldF9kb2N1bWVudF9lbGVtZW50KFdlYktpdERPTURvY3VtZW50KiBzZWxmKQotewot
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKLSAgICBXZWJDb3Jl
OjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBSZWZQdHI8V2ViQ29y
ZTo6RWxlbWVudD4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPmRvY3VtZW50RWxl
bWVudCgpKTsKLSAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7Ci19
Ci0KLWdjaGFyKiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9pbnB1dF9lbmNvZGluZyhXZWJLaXRE
T01Eb2N1bWVudCogc2VsZikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChz
ZWxmKSwgMCk7Ci0gICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2Vs
Zik7Ci0gICAgZ2NoYXIqIHJlc3VsdCA9IGNvbnZlcnRUb1VURjhTdHJpbmcoaXRlbS0+Y2hhcmFj
dGVyU2V0V2l0aFVURjhGYWxsYmFjaygpKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1nY2hh
ciogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfeG1sX2VuY29kaW5nKFdlYktpdERPTURvY3VtZW50
KiBzZWxmKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsK
LSAgICBXZWJDb3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBn
Y2hhciogcmVzdWx0ID0gY29udmVydFRvVVRGOFN0cmluZyhpdGVtLT54bWxFbmNvZGluZygpKTsK
LSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1nY2hhciogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRf
eG1sX3ZlcnNpb24oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpCi17Ci0gICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJ
VF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOwotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVt
ID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdjaGFyKiByZXN1bHQgPSBjb252ZXJ0VG9VVEY4
U3RyaW5nKGl0ZW0tPnhtbFZlcnNpb24oKSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotdm9p
ZCB3ZWJraXRfZG9tX2RvY3VtZW50X3NldF94bWxfdmVyc2lvbihXZWJLaXRET01Eb2N1bWVudCog
c2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcikKLXsKLSAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJL
SVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKHZhbHVlKTsK
LSAgICBnX3JldHVybl9pZl9mYWlsKCFlcnJvciB8fCAhKmVycm9yKTsKLSAgICBXZWJDb3JlOjpE
b2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBXVEY6OlN0cmluZyBjb252
ZXJ0ZWRWYWx1ZSA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOCh2YWx1ZSk7Ci0gICAgYXV0byByZXN1
bHQgPSBpdGVtLT5zZXRYTUxWZXJzaW9uKGNvbnZlcnRlZFZhbHVlKTsKLSAgICBpZiAocmVzdWx0
Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3JlOjpE
T01FeGNlcHRpb246OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgp
KTsKLSAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmlu
ZygiV0VCS0lUX0RPTSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5uYW1l
KTsKLSAgICB9Ci19Ci0KLWdib29sZWFuIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3htbF9zdGFu
ZGFsb25lKFdlYktpdERPTURvY3VtZW50KiBzZWxmKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9N
X0lTX0RPQ1VNRU5UKHNlbGYpLCBGQUxTRSk7Ci0gICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0g
PSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ2Jvb2xlYW4gcmVzdWx0ID0gaXRlbS0+eG1sU3Rh
bmRhbG9uZSgpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXZvaWQgd2Via2l0X2RvbV9kb2N1
bWVudF9zZXRfeG1sX3N0YW5kYWxvbmUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGdib29sZWFu
IHZhbHVlLCBHRXJyb3IqKiBlcnJvcikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5U
KHNlbGYpKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKCFlcnJvciB8fCAhKmVycm9yKTsKLSAgICBX
ZWJLaXQ6OmNvcmUoc2VsZiktPnNldFhNTFN0YW5kYWxvbmUodmFsdWUpOwotfQotCi1nY2hhciog
d2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZG9jdW1lbnRfdXJpKFdlYktpdERPTURvY3VtZW50KiBz
ZWxmKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBn
X3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKLSAg
ICBXZWJDb3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBnY2hh
ciogcmVzdWx0ID0gY29udmVydFRvVVRGOFN0cmluZyhpdGVtLT5kb2N1bWVudFVSSSgpKTsKLSAg
ICByZXR1cm4gcmVzdWx0OwotfQotCi12b2lkIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X2RvY3Vt
ZW50X3VyaShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKQotewot
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl9p
Zl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZikpOwotICAgIGdfcmV0dXJuX2lmX2Zh
aWwodmFsdWUpOwotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNl
bGYpOwotICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZFZhbHVlID0gV1RGOjpTdHJpbmc6OmZyb21V
VEY4KHZhbHVlKTsKLSAgICBpdGVtLT5zZXREb2N1bWVudFVSSShjb252ZXJ0ZWRWYWx1ZSk7Ci19
Ci0KLVdlYktpdERPTURPTVdpbmRvdyogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZGVmYXVsdF92
aWV3KFdlYktpdERPTURvY3VtZW50KiBzZWxmKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lT
X0RPQ1VNRU5UKHNlbGYpLCAwKTsKLSAgICBXZWJDb3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktp
dDo6Y29yZShzZWxmKTsKLSAgICBSZWZQdHI8V2ViQ29yZTo6RE9NV2luZG93PiBnb2JqZWN0UmVz
dWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+ZGVmYXVsdFZpZXcoKSk7Ci0gICAgcmV0dXJuIFdlYktp
dDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOwotfQotCi1XZWJLaXRET01TdHlsZVNoZWV0TGlz
dCogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfc3R5bGVfc2hlZXRzKFdlYktpdERPTURvY3VtZW50
KiBzZWxmKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsK
LSAgICBXZWJDb3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBS
ZWZQdHI8V2ViQ29yZTo6U3R5bGVTaGVldExpc3Q+IGdvYmplY3RSZXN1bHQgPSBXVEY6OmdldFB0
cihpdGVtLT5zdHlsZVNoZWV0cygpKTsKLSAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJl
c3VsdC5nZXQoKSk7Ci19Ci0KLWdjaGFyKiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jb250ZW50
X3R5cGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01f
SVNfRE9DVU1FTlQoc2VsZiksIDApOwotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2Vi
S2l0Ojpjb3JlKHNlbGYpOwotICAgIGdjaGFyKiByZXN1bHQgPSBjb252ZXJ0VG9VVEY4U3RyaW5n
KGl0ZW0tPmNvbnRlbnRUeXBlKCkpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLWdjaGFyKiB3
ZWJraXRfZG9tX2RvY3VtZW50X2dldF90aXRsZShXZWJLaXRET01Eb2N1bWVudCogc2VsZikKLXsK
LSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7Ci0gICAgV2ViQ29y
ZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ2NoYXIqIHJlc3Vs
dCA9IGNvbnZlcnRUb1VURjhTdHJpbmcoaXRlbS0+dGl0bGUoKSk7Ci0gICAgcmV0dXJuIHJlc3Vs
dDsKLX0KLQotdm9pZCB3ZWJraXRfZG9tX2RvY3VtZW50X3NldF90aXRsZShXZWJLaXRET01Eb2N1
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9ET01fSVNf
RE9DVU1FTlQoc2VsZikpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOwotICAgIFdlYkNv
cmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFdURjo6U3RyaW5n
IGNvbnZlcnRlZFZhbHVlID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKTsKLSAgICBpdGVt
LT5zZXRUaXRsZShjb252ZXJ0ZWRWYWx1ZSk7Ci19Ci0KLWdjaGFyKiB3ZWJraXRfZG9tX2RvY3Vt
ZW50X2dldF9kaXIoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpCi17Ci0gICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJ
VF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOwotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVt
ID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdjaGFyKiByZXN1bHQgPSBjb252ZXJ0VG9VVEY4
U3RyaW5nKGl0ZW0tPmRpcigpKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi12b2lkIHdlYmtp
dF9kb21fZG9jdW1lbnRfc2V0X2RpcihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2No
YXIqIHZhbHVlKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
LSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZikpOwotICAg
IGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOwotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0g
V2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZFZhbHVlID0gV1RG
OjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKTsKLSAgICBpdGVtLT5zZXREaXIoY29udmVydGVkVmFs
dWUpOwotfQotCi1nY2hhciogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZGVzaWduX21vZGUoV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbGYpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1F
TlQoc2VsZiksIDApOwotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3Jl
KHNlbGYpOwotICAgIGdjaGFyKiByZXN1bHQgPSBjb252ZXJ0VG9VVEY4U3RyaW5nKGl0ZW0tPmRl
c2lnbk1vZGUoKSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotdm9pZCB3ZWJraXRfZG9tX2Rv
Y3VtZW50X3NldF9kZXNpZ25fbW9kZShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2No
YXIqIHZhbHVlKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
LSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZikpOwotICAg
IGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOwotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0g
V2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZFZhbHVlID0gV1RG
OjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKTsKLSAgICBpdGVtLT5zZXREZXNpZ25Nb2RlKGNvbnZl
cnRlZFZhbHVlKTsKLX0KLQotZ2NoYXIqIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3JlZmVycmVy
KFdlYktpdERPTURvY3VtZW50KiBzZWxmKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RP
Q1VNRU5UKHNlbGYpLCAwKTsKLSAgICBXZWJDb3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6
Y29yZShzZWxmKTsKLSAgICBnY2hhciogcmVzdWx0ID0gY29udmVydFRvVVRGOFN0cmluZyhpdGVt
LT5yZWZlcnJlcigpKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1nY2hhciogd2Via2l0X2Rv
bV9kb2N1bWVudF9nZXRfZG9tYWluKFdlYktpdERPTURvY3VtZW50KiBzZWxmKQotewotICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKLSAgICBXZWJDb3JlOjpEb2N1
bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBnY2hhciogcmVzdWx0ID0gY29u
dmVydFRvVVRGOFN0cmluZyhpdGVtLT5kb21haW4oKSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0K
LQotZ2NoYXIqIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3VybChXZWJLaXRET01Eb2N1bWVudCog
c2VsZikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7Ci0g
ICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ2No
YXIqIHJlc3VsdCA9IGNvbnZlcnRUb1VURjhTdHJpbmcoaXRlbS0+dXJsRm9yQmluZGluZ3MoKSk7
Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotZ2NoYXIqIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0
X2Nvb2tpZShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgR0Vycm9yKiogZXJyb3IpCi17Ci0gICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOwotICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKCFlcnJvciB8fCAhKmVycm9yLCAwKTsKLSAgICBXZWJDb3JlOjpEb2N1bWVudCog
aXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBhdXRvIHJlc3VsdCA9IGl0ZW0tPmNvb2tp
ZSgpOwotICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIHJldHVybiBjb252ZXJ0VG9VVEY4U3RyaW5nKHJlc3VsdC5yZWxlYXNlUmV0dXJu
VmFsdWUoKSk7Ci19Ci0KLXZvaWQgd2Via2l0X2RvbV9kb2N1bWVudF9zZXRfY29va2llKFdlYktp
dERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJvcioqIGVycm9yKQot
ewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVy
bl9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZikpOwotICAgIGdfcmV0dXJuX2lm
X2ZhaWwodmFsdWUpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoIWVycm9yIHx8ICEqZXJyb3IpOwot
ICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFdU
Rjo6U3RyaW5nIGNvbnZlcnRlZFZhbHVlID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKTsK
LSAgICBhdXRvIHJlc3VsdCA9IGl0ZW0tPnNldENvb2tpZShjb252ZXJ0ZWRWYWx1ZSk7Ci0gICAg
aWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICBhdXRvIGRlc2NyaXB0aW9uID0g
V2ViQ29yZTo6RE9NRXhjZXB0aW9uOjpkZXNjcmlwdGlvbihyZXN1bHQucmVsZWFzZUV4Y2VwdGlv
bigpLmNvZGUoKSk7Ci0gICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtf
ZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZGVzY3JpcHRpb24ubGVnYWN5Q29kZSwgZGVzY3Jp
cHRpb24ubmFtZSk7Ci0gICAgfQotfQotCi1XZWJLaXRET01IVE1MRWxlbWVudCogd2Via2l0X2Rv
bV9kb2N1bWVudF9nZXRfYm9keShXZWJLaXRET01Eb2N1bWVudCogc2VsZikKLXsKLSAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7Ci0gICAgV2ViQ29yZTo6RG9jdW1l
bnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OkhUTUxF
bGVtZW50PiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+Ym9keU9yRnJhbWVzZXQo
KSk7Ci0gICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOwotfQotCi12
b2lkIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X2JvZHkoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYs
IFdlYktpdERPTUhUTUxFbGVtZW50KiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpCi17Ci0gICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwo
V0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSk7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJL
SVRfRE9NX0lTX0hUTUxfRUxFTUVOVCh2YWx1ZSkpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoIWVy
cm9yIHx8ICEqZXJyb3IpOwotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpj
b3JlKHNlbGYpOwotICAgIFdlYkNvcmU6OkhUTUxFbGVtZW50KiBjb252ZXJ0ZWRWYWx1ZSA9IFdl
YktpdDo6Y29yZSh2YWx1ZSk7Ci0gICAgYXV0byByZXN1bHQgPSBpdGVtLT5zZXRCb2R5T3JGcmFt
ZXNldChjb252ZXJ0ZWRWYWx1ZSk7Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewot
ICAgICAgICBhdXRvIGRlc2NyaXB0aW9uID0gV2ViQ29yZTo6RE9NRXhjZXB0aW9uOjpkZXNjcmlw
dGlvbihyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUoKSk7Ci0gICAgICAgIGdfc2V0X2Vy
cm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZGVz
Y3JpcHRpb24ubGVnYWN5Q29kZSwgZGVzY3JpcHRpb24ubmFtZSk7Ci0gICAgfQotfQotCi1XZWJL
aXRET01IVE1MSGVhZEVsZW1lbnQqIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2hlYWQoV2ViS2l0
RE9NRG9jdW1lbnQqIHNlbGYpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQo
c2VsZiksIDApOwotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNl
bGYpOwotICAgIFJlZlB0cjxXZWJDb3JlOjpIVE1MSGVhZEVsZW1lbnQ+IGdvYmplY3RSZXN1bHQg
PSBXVEY6OmdldFB0cihpdGVtLT5oZWFkKCkpOwotICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2Jq
ZWN0UmVzdWx0LmdldCgpKTsKLX0KLQotV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qIHdlYmtpdF9k
b21fZG9jdW1lbnRfZ2V0X2ltYWdlcyhXZWJLaXRET01Eb2N1bWVudCogc2VsZikKLXsKLSAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7Ci0gICAgV2ViQ29yZTo6RG9j
dW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OkhU
TUxDb2xsZWN0aW9uPiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+aW1hZ2VzKCkp
OwotICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKLX0KLQotV2Vi
S2l0RE9NSFRNTENvbGxlY3Rpb24qIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2FwcGxldHMoV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbGYpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1F
TlQoc2VsZiksIDApOwotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3Jl
KHNlbGYpOwotICAgIFJlZlB0cjxXZWJDb3JlOjpIVE1MQ29sbGVjdGlvbj4gZ29iamVjdFJlc3Vs
dCA9IFdURjo6Z2V0UHRyKGl0ZW0tPmFwcGxldHMoKSk7Ci0gICAgcmV0dXJuIFdlYktpdDo6a2l0
KGdvYmplY3RSZXN1bHQuZ2V0KCkpOwotfQotCi1XZWJLaXRET01IVE1MQ29sbGVjdGlvbiogd2Vi
a2l0X2RvbV9kb2N1bWVudF9nZXRfbGlua3MoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpCi17Ci0g
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOwotICAgIFdlYkNvcmU6
OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFJlZlB0cjxXZWJDb3Jl
OjpIVE1MQ29sbGVjdGlvbj4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPmxpbmtz
KCkpOwotICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKLX0KLQot
V2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2Zvcm1zKFdl
YktpdERPTURvY3VtZW50KiBzZWxmKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VN
RU5UKHNlbGYpLCAwKTsKLSAgICBXZWJDb3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29y
ZShzZWxmKTsKLSAgICBSZWZQdHI8V2ViQ29yZTo6SFRNTENvbGxlY3Rpb24+IGdvYmplY3RSZXN1
bHQgPSBXVEY6OmdldFB0cihpdGVtLT5mb3JtcygpKTsKLSAgICByZXR1cm4gV2ViS2l0OjpraXQo
Z29iamVjdFJlc3VsdC5nZXQoKSk7Ci19Ci0KLVdlYktpdERPTUhUTUxDb2xsZWN0aW9uKiB3ZWJr
aXRfZG9tX2RvY3VtZW50X2dldF9hbmNob3JzKFdlYktpdERPTURvY3VtZW50KiBzZWxmKQotewot
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKLSAgICBXZWJDb3Jl
OjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBSZWZQdHI8V2ViQ29y
ZTo6SFRNTENvbGxlY3Rpb24+IGdvYmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5hbmNo
b3JzKCkpOwotICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKLX0K
LQotV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2VtYmVk
cyhXZWJLaXRET01Eb2N1bWVudCogc2VsZikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19E
T0NVTUVOVChzZWxmKSwgMCk7Ci0gICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6
OmNvcmUoc2VsZik7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uPiBnb2JqZWN0
UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+ZW1iZWRzKCkpOwotICAgIHJldHVybiBXZWJLaXQ6
OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKLX0KLQotV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24q
IHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3BsdWdpbnMoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYp
Ci17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOwotICAgIFdl
YkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFJlZlB0cjxX
ZWJDb3JlOjpIVE1MQ29sbGVjdGlvbj4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0t
PnBsdWdpbnMoKSk7Ci0gICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkp
OwotfQotCi1XZWJLaXRET01IVE1MQ29sbGVjdGlvbiogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRf
c2NyaXB0cyhXZWJLaXRET01Eb2N1bWVudCogc2VsZikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RP
TV9JU19ET0NVTUVOVChzZWxmKSwgMCk7Ci0gICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBX
ZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uPiBn
b2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+c2NyaXB0cygpKTsKLSAgICByZXR1cm4g
V2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7Ci19Ci0KLWdjaGFyKiB3ZWJraXRfZG9t
X2RvY3VtZW50X2dldF9sYXN0X21vZGlmaWVkKFdlYktpdERPTURvY3VtZW50KiBzZWxmKQotewot
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKLSAgICBXZWJDb3Jl
OjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBnY2hhciogcmVzdWx0
ID0gY29udmVydFRvVVRGOFN0cmluZyhpdGVtLT5sYXN0TW9kaWZpZWQoKSk7Ci0gICAgcmV0dXJu
IHJlc3VsdDsKLX0KLQotZ2NoYXIqIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2NoYXJzZXQoV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbGYpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1F
TlQoc2VsZiksIDApOwotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3Jl
KHNlbGYpOwotICAgIGdjaGFyKiByZXN1bHQgPSBjb252ZXJ0VG9VVEY4U3RyaW5nKGl0ZW0tPmNo
YXJzZXQoKSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotdm9pZCB3ZWJraXRfZG9tX2RvY3Vt
ZW50X3NldF9jaGFyc2V0KFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdf
cmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSk7Ci0gICAgZ19yZXR1
cm5faWZfZmFpbCh2YWx1ZSk7Ci0gICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6
OmNvcmUoc2VsZik7Ci0gICAgV1RGOjpTdHJpbmcgY29udmVydGVkVmFsdWUgPSBXVEY6OlN0cmlu
Zzo6ZnJvbVVURjgodmFsdWUpOwotICAgIGl0ZW0tPnNldENoYXJzZXQoY29udmVydGVkVmFsdWUp
OwotfQotCi1nY2hhciogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfcmVhZHlfc3RhdGUoV2ViS2l0
RE9NRG9jdW1lbnQqIHNlbGYpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQo
c2VsZiksIDApOwotCi0gICAgYXV0byByZWFkeVN0YXRlID0gV2ViS2l0Ojpjb3JlKHNlbGYpLT5y
ZWFkeVN0YXRlKCk7Ci0gICAgc3dpdGNoIChyZWFkeVN0YXRlKSB7Ci0gICAgY2FzZSBXZWJDb3Jl
OjpEb2N1bWVudDo6TG9hZGluZzoKLSAgICAgICAgcmV0dXJuIGNvbnZlcnRUb1VURjhTdHJpbmco
QVNDSUlMaXRlcmFsKCJsb2FkaW5nIikpOwotICAgIGNhc2UgV2ViQ29yZTo6RG9jdW1lbnQ6Oklu
dGVyYWN0aXZlOgotICAgICAgICByZXR1cm4gY29udmVydFRvVVRGOFN0cmluZyhBU0NJSUxpdGVy
YWwoImludGVyYWN0aXZlIikpOwotICAgIGNhc2UgV2ViQ29yZTo6RG9jdW1lbnQ6OkNvbXBsZXRl
OgotICAgICAgICByZXR1cm4gY29udmVydFRvVVRGOFN0cmluZyhBU0NJSUxpdGVyYWwoImNvbXBs
ZXRlIikpOwotICAgIH0KLSAgICByZXR1cm4gMDsKLX0KLQotZ2NoYXIqIHdlYmtpdF9kb21fZG9j
dW1lbnRfZ2V0X2NoYXJhY3Rlcl9zZXQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpCi17Ci0gICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOwotICAgIFdlYkNvcmU6OkRv
Y3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdjaGFyKiByZXN1bHQgPSBj
b252ZXJ0VG9VVEY4U3RyaW5nKGl0ZW0tPmNoYXJhY3RlclNldFdpdGhVVEY4RmFsbGJhY2soKSk7
Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotZ2NoYXIqIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0
X3ByZWZlcnJlZF9zdHlsZXNoZWV0X3NldChXZWJLaXRET01Eb2N1bWVudCogc2VsZikKLXsKLSAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7Ci0gICAgV2ViQ29yZTo6
RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ2NoYXIqIHJlc3VsdCA9
IGNvbnZlcnRUb1VURjhTdHJpbmcoaXRlbS0+cHJlZmVycmVkU3R5bGVzaGVldFNldCgpKTsKLSAg
ICByZXR1cm4gcmVzdWx0OwotfQotCi1nY2hhciogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfc2Vs
ZWN0ZWRfc3R5bGVzaGVldF9zZXQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpCi17Ci0gICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOwotICAgIFdlYkNvcmU6OkRvY3Vt
ZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdjaGFyKiByZXN1bHQgPSBjb252
ZXJ0VG9VVEY4U3RyaW5nKGl0ZW0tPnNlbGVjdGVkU3R5bGVzaGVldFNldCgpKTsKLSAgICByZXR1
cm4gcmVzdWx0OwotfQotCi12b2lkIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X3NlbGVjdGVkX3N0
eWxlc2hlZXRfc2V0KFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
Ci17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0
dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSk7Ci0gICAgZ19yZXR1cm5f
aWZfZmFpbCh2YWx1ZSk7Ci0gICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNv
cmUoc2VsZik7Ci0gICAgV1RGOjpTdHJpbmcgY29udmVydGVkVmFsdWUgPSBXVEY6OlN0cmluZzo6
ZnJvbVVURjgodmFsdWUpOwotICAgIGl0ZW0tPnNldFNlbGVjdGVkU3R5bGVzaGVldFNldChjb252
ZXJ0ZWRWYWx1ZSk7Ci19Ci0KLVdlYktpdERPTUVsZW1lbnQqIHdlYmtpdF9kb21fZG9jdW1lbnRf
Z2V0X2FjdGl2ZV9lbGVtZW50KFdlYktpdERPTURvY3VtZW50KiBzZWxmKQotewotICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKLSAgICBXZWJDb3JlOjpEb2N1bWVu
dCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBSZWZQdHI8V2ViQ29yZTo6RWxlbWVu
dD4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPmFjdGl2ZUVsZW1lbnQoKSk7Ci0g
ICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOwotfQotCi1nY2hhciog
d2Via2l0X2RvbV9kb2N1bWVudF9nZXRfY29tcGF0X21vZGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNl
bGYpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOwotICAg
IFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdjaGFy
KiByZXN1bHQgPSBjb252ZXJ0VG9VVEY4U3RyaW5nKGl0ZW0tPmNvbXBhdE1vZGUoKSk7Ci0gICAg
cmV0dXJuIHJlc3VsdDsKLX0KLQotZ2Jvb2xlYW4gd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Vi
a2l0X2lzX2Z1bGxzY3JlZW4oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpCi17Ci0gICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIEZBTFNFKTsKLSAgICBXZWJDb3JlOjpEb2N1
bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBnYm9vbGVhbiByZXN1bHQgPSBp
dGVtLT53ZWJraXRJc0Z1bGxTY3JlZW4oKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1nYm9v
bGVhbiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF93ZWJraXRfZnVsbHNjcmVlbl9rZXlib2FyZF9p
bnB1dF9hbGxvd2VkKFdlYktpdERPTURvY3VtZW50KiBzZWxmKQotewotICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJL
SVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCBGQUxTRSk7Ci0gICAgV2ViQ29yZTo6RG9jdW1lbnQq
IGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ2Jvb2xlYW4gcmVzdWx0ID0gaXRlbS0+
d2Via2l0RnVsbFNjcmVlbktleWJvYXJkSW5wdXRBbGxvd2VkKCk7Ci0gICAgcmV0dXJuIHJlc3Vs
dDsKLX0KLQotV2ViS2l0RE9NRWxlbWVudCogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0
X2N1cnJlbnRfZnVsbHNjcmVlbl9lbGVtZW50KFdlYktpdERPTURvY3VtZW50KiBzZWxmKQotewot
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKLSAgICBXZWJDb3Jl
OjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBSZWZQdHI8V2ViQ29y
ZTo6RWxlbWVudD4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPndlYmtpdEN1cnJl
bnRGdWxsU2NyZWVuRWxlbWVudCgpKTsKLSAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJl
c3VsdC5nZXQoKSk7Ci19Ci0KLWdib29sZWFuIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3dlYmtp
dF9mdWxsc2NyZWVuX2VuYWJsZWQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpCi17Ci0gICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIEZBTFNFKTsKLSAgICBXZWJDb3JlOjpE
b2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBnYm9vbGVhbiByZXN1bHQg
PSBpdGVtLT53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCgpOwotICAgIHJldHVybiByZXN1bHQ7Ci19
Ci0KLVdlYktpdERPTUVsZW1lbnQqIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3dlYmtpdF9mdWxs
c2NyZWVuX2VsZW1lbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpCi17Ci0gICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdF
QktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOwotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBp
dGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiBn
b2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+d2Via2l0RnVsbHNjcmVlbkVsZW1lbnQo
KSk7Ci0gICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOwotfQotCi1X
ZWJLaXRET01FbGVtZW50KiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9wb2ludGVyX2xvY2tfZWxl
bWVudChXZWJLaXRET01Eb2N1bWVudCogc2VsZikKLXsKLSNpZiBFTkFCTEUoUE9JTlRFUl9MT0NL
KQotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKLSAgICBXZWJD
b3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBSZWZQdHI8V2Vi
Q29yZTo6RWxlbWVudD4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPnBvaW50ZXJM
b2NrRWxlbWVudCgpKTsKLSAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQo
KSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzZWxmKTsKLSAgICBXRUJLSVRfV0FSTl9GRUFU
VVJFX05PVF9QUkVTRU5UKCJQb2ludGVyIExvY2siKQotICAgIHJldHVybiAwOwotI2VuZGlmIC8q
IEVOQUJMRShQT0lOVEVSX0xPQ0spICovCi19Ci0KLWdjaGFyKiB3ZWJraXRfZG9tX2RvY3VtZW50
X2dldF92aXNpYmlsaXR5X3N0YXRlKFdlYktpdERPTURvY3VtZW50KiBzZWxmKQotewotICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKLSAgICBXZWJDb3JlOjpEb2N1
bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBzd2l0Y2ggKGl0ZW0tPnZpc2li
aWxpdHlTdGF0ZSgpKSB7Ci0gICAgY2FzZSBXZWJDb3JlOjpWaXNpYmlsaXR5U3RhdGU6OkhpZGRl
bjoKLSAgICAgICAgcmV0dXJuIGNvbnZlcnRUb1VURjhTdHJpbmcoImhpZGRlbiIpOwotICAgIGNh
c2UgV2ViQ29yZTo6VmlzaWJpbGl0eVN0YXRlOjpWaXNpYmxlOgotICAgICAgICByZXR1cm4gY29u
dmVydFRvVVRGOFN0cmluZygidmlzaWJsZSIpOwotICAgIGNhc2UgV2ViQ29yZTo6VmlzaWJpbGl0
eVN0YXRlOjpQcmVyZW5kZXI6Ci0gICAgICAgIHJldHVybiBjb252ZXJ0VG9VVEY4U3RyaW5nKCJw
cmVyZW5kZXIiKTsKLSAgICB9Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJu
IG51bGxwdHI7Ci19Ci0KLWdib29sZWFuIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2hpZGRlbihX
ZWJLaXRET01Eb2N1bWVudCogc2VsZikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NV
TUVOVChzZWxmKSwgRkFMU0UpOwotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0
Ojpjb3JlKHNlbGYpOwotICAgIGdib29sZWFuIHJlc3VsdCA9IGl0ZW0tPmhpZGRlbigpOwotICAg
IHJldHVybiByZXN1bHQ7Ci19Ci0KLVdlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50KiB3ZWJraXRf
ZG9tX2RvY3VtZW50X2dldF9jdXJyZW50X3NjcmlwdChXZWJLaXRET01Eb2N1bWVudCogc2VsZikK
LXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7Ci0gICAgV2Vi
Q29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgUmVmUHRyPFdl
YkNvcmU6OkhUTUxTY3JpcHRFbGVtZW50PiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRl
bS0+Y3VycmVudFNjcmlwdCgpKTsKLSAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3Vs
dC5nZXQoKSk7Ci19Ci0KLWdjaGFyKiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9vcmlnaW4oV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbGYpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1F
TlQoc2VsZiksIDApOwotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3Jl
KHNlbGYpOwotICAgIGdjaGFyKiByZXN1bHQgPSBjb252ZXJ0VG9VVEY4U3RyaW5nKGl0ZW0tPm9y
aWdpbigpKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1XZWJLaXRET01FbGVtZW50KiB3ZWJr
aXRfZG9tX2RvY3VtZW50X2dldF9zY3JvbGxpbmdfZWxlbWVudChXZWJLaXRET01Eb2N1bWVudCog
c2VsZikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7Ci0g
ICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgUmVm
UHRyPFdlYkNvcmU6OkVsZW1lbnQ+IGdvYmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5z
Y3JvbGxpbmdFbGVtZW50KCkpOwotICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0
LmdldCgpKTsKLX0KLQotV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qIHdlYmtpdF9kb21fZG9jdW1l
bnRfZ2V0X2NoaWxkcmVuKFdlYktpdERPTURvY3VtZW50KiBzZWxmKQotewotICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChX
RUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKLSAgICBXZWJDb3JlOjpEb2N1bWVudCog
aXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBSZWZQdHI8V2ViQ29yZTo6SFRNTENvbGxl
Y3Rpb24+IGdvYmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5jaGlsZHJlbigpKTsKLSAg
ICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7Ci19Ci0KLVdlYktpdERP
TUVsZW1lbnQqIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2ZpcnN0X2VsZW1lbnRfY2hpbGQoV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbGYpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1F
TlQoc2VsZiksIDApOwotICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3Jl
KHNlbGYpOwotICAgIFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiBnb2JqZWN0UmVzdWx0ID0gV1RG
OjpnZXRQdHIoaXRlbS0+Zmlyc3RFbGVtZW50Q2hpbGQoKSk7Ci0gICAgcmV0dXJuIFdlYktpdDo6
a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOwotfQotCi1XZWJLaXRET01FbGVtZW50KiB3ZWJraXRf
ZG9tX2RvY3VtZW50X2dldF9sYXN0X2VsZW1lbnRfY2hpbGQoV2ViS2l0RE9NRG9jdW1lbnQqIHNl
bGYpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOwotICAg
IFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFJlZlB0
cjxXZWJDb3JlOjpFbGVtZW50PiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+bGFz
dEVsZW1lbnRDaGlsZCgpKTsKLSAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5n
ZXQoKSk7Ci19Ci0KLWd1bG9uZyB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jaGlsZF9lbGVtZW50
X2NvdW50KFdlYktpdERPTURvY3VtZW50KiBzZWxmKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9N
X0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKLSAgICBXZWJDb3JlOjpEb2N1bWVudCogaXRlbSA9IFdl
YktpdDo6Y29yZShzZWxmKTsKLSAgICBndWxvbmcgcmVzdWx0ID0gaXRlbS0+Y2hpbGRFbGVtZW50
Q291bnQoKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1l
bnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01Eb2N1bWVudC5oCmluZGV4IDRhODNlMDM1YmRmODAzMTZlNjNmMTU5NjM5Yzlk
MzI5NzViNjU3NTIuLjY2OWE2YTE2NzgwMDRkMWQ4ZDVlNjdkMDNhYTYzOGQzNGI5MWExNmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudC5oCkBAIC01NSw4ICs1
NSwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF90eXBlKHZvaWQpOwogICogQGVycm9yOiAj
R0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVt
ZW50CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVE
IFdlYktpdERPTUVsZW1lbnQqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9lbGVtZW50KFdl
YktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdGFnTmFtZSwgR0Vycm9yKiogZXJy
b3IpOwogCiAvKioKQEAgLTY0LDggKzY2LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRl
X2VsZW1lbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB0YWdOYW1lCiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
bm9uZSk6IEEgI1dlYktpdERPTURvY3VtZW50RnJhZ21lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJL
aXRET01Eb2N1bWVudEZyYWdtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRG9jdW1l
bnRGcmFnbWVudCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2RvY3VtZW50X2ZyYWdtZW50
KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC03NCw4ICs3OCwxMCBAQCB3ZWJr
aXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9kb2N1bWVudF9mcmFnbWVudChXZWJLaXRET01Eb2N1bWVu
dCogc2VsZik7CiAgKiBAZGF0YTogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
bm9uZSk6IEEgI1dlYktpdERPTVRleHQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01UZXh0Kgor
V0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NVGV4dCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfY3Jl
YXRlX3RleHRfbm9kZShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGRhdGEp
OwogCiAvKioKQEAgLTg0LDggKzkwLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX3Rl
eHRfbm9kZShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGRhdGEpCiAgKiBA
ZGF0YTogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktp
dERPTUNvbW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Db21tZW50KgorV0VCS0lUX0RF
UFJFQ0FURUQgV2ViS2l0RE9NQ29tbWVudCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2Nv
bW1lbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBkYXRhKTsKIAogLyoq
CkBAIC05NSw4ICsxMDMsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfY29tbWVudChX
ZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGRhdGEpOwogICogQGVycm9yOiAj
R0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01DREFU
QVNlY3Rpb24KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01DREFUQVNlY3Rpb24qCitXRUJLSVRf
REVQUkVDQVRFRCBXZWJLaXRET01DREFUQVNlY3Rpb24qCiB3ZWJraXRfZG9tX2RvY3VtZW50X2Ny
ZWF0ZV9jZGF0YV9zZWN0aW9uKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciog
ZGF0YSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTEwNyw4ICsxMTcsMTAgQEAgd2Via2l0
X2RvbV9kb2N1bWVudF9jcmVhdGVfY2RhdGFfc2VjdGlvbihXZWJLaXRET01Eb2N1bWVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIGQKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0
cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgV2ViS2l0RE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uKgorV0VCS0lUX0RFUFJFQ0FU
RUQgV2ViS2l0RE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uKgogd2Via2l0X2RvbV9kb2N1bWVudF9j
cmVhdGVfcHJvY2Vzc2luZ19pbnN0cnVjdGlvbihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29u
c3QgZ2NoYXIqIHRhcmdldCwgY29uc3QgZ2NoYXIqIGRhdGEsIEdFcnJvcioqIGVycm9yKTsKIAog
LyoqCkBAIC0xMTgsOCArMTMwLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX3Byb2Nl
c3NpbmdfaW5zdHJ1Y3Rpb24oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAZXJy
b3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERP
TUF0dHIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01BdHRyKgorV0VCS0lUX0RFUFJFQ0FURUQg
V2ViS2l0RE9NQXR0cioKIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2F0dHJpYnV0ZShXZWJL
aXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWUsIEdFcnJvcioqIGVycm9yKTsK
IAogLyoqCkBAIC0xMzAsOCArMTQ0LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2F0
dHJpYnV0ZShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWUsCiAgKiBS
ZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCiAgKgog
ICogU2luY2U6IDIuMTIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioK
K1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgogd2Via2l0X2RvbV9k
b2N1bWVudF9nZXRfZWxlbWVudHNfYnlfdGFnX25hbWVfYXNfaHRtbF9jb2xsZWN0aW9uKFdlYktp
dERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdGFnbmFtZSk7CiAKIC8qKgpAQCAtMTQy
LDggKzE1OCwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9lbGVtZW50c19ieV90YWdfbmFt
ZV9hc19odG1sX2NvbGxlY3Rpb24oV2ViS2l0RE9NRG9jdW1lbgogICogQGVycm9yOiAjR0Vycm9y
CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5v
ZGUqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2ltcG9ydF9ub2RlKFdlYktpdERPTURvY3VtZW50KiBz
ZWxmLCBXZWJLaXRET01Ob2RlKiBpbXBvcnRlZE5vZGUsIGdib29sZWFuIGRlZXAsIEdFcnJvcioq
IGVycm9yKTsKIAogLyoqCkBAIC0xNTQsOCArMTcyLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRf
aW1wb3J0X25vZGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIFdlYktpdERPTU5vZGUqIGltcG9y
dGVkCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6
IEEgI1dlYktpdERPTUVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50Kgor
V0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZG9jdW1lbnRf
Y3JlYXRlX2VsZW1lbnRfbnMoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBu
YW1lc3BhY2VVUkksIGNvbnN0IGdjaGFyKiBxdWFsaWZpZWROYW1lLCBHRXJyb3IqKiBlcnJvcik7
CiAKIC8qKgpAQCAtMTY2LDggKzE4NiwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9l
bGVtZW50X25zKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZQogICog
QGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJL
aXRET01BdHRyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NQXR0cioKK1dFQktJVF9ERVBSRUNB
VEVEIFdlYktpdERPTUF0dHIqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9hdHRyaWJ1dGVf
bnMoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lc3BhY2VVUkksIGNv
bnN0IGdjaGFyKiBxdWFsaWZpZWROYW1lLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTc5
LDggKzIwMSwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9hdHRyaWJ1dGVfbnMoV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYQogICogUmV0dXJuczogKHRyYW5z
ZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1MQ29sbGVjdGlvbgogICoKICAqIFNpbmNlOiAyLjEy
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVD
QVRFRCBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2Vs
ZW1lbnRzX2J5X3RhZ19uYW1lX25zX2FzX2h0bWxfY29sbGVjdGlvbihXZWJLaXRET01Eb2N1bWVu
dCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWVzcGFjZVVSSSwgY29uc3QgZ2NoYXIqIGxvY2FsTmFt
ZSk7CiAKIC8qKgpAQCAtMTkwLDggKzIxNCwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9l
bGVtZW50c19ieV90YWdfbmFtZV9uc19hc19odG1sX2NvbGxlY3Rpb24oV2ViS2l0RE9NRG9jdQog
ICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNX
ZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBS
RUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2Fkb3B0X25vZGUoV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbGYsIFdlYktpdERPTU5vZGUqIHNvdXJjZSwgR0Vycm9yKiogZXJy
b3IpOwogCiAvKioKQEAgLTIwMSw4ICsyMjcsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9hZG9w
dF9ub2RlKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBXZWJLaXRET01Ob2RlKiBzb3VyY2UsIEcK
ICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAj
V2ViS2l0RE9NRXZlbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FdmVudCoKK1dFQktJVF9E
RVBSRUNBVEVEIFdlYktpdERPTUV2ZW50Kgogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfZXZl
bnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBldmVudFR5cGUsIEdFcnJv
cioqIGVycm9yKTsKIAogLyoqCkBAIC0yMTAsOCArMjM4LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1l
bnRfY3JlYXRlX2V2ZW50KFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogZXZl
bnRUeXBlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiAo
dHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTVJhbmdlCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0
RE9NUmFuZ2UqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01SYW5nZSoKIHdlYmtpdF9kb21f
ZG9jdW1lbnRfY3JlYXRlX3JhbmdlKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC0yMjQsOCArMjU0LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX3JhbmdlKFdlYktp
dERPTURvY3VtZW50KiBzZWxmKTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6
ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NTm9kZUl0ZXJhdG9yCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgV2ViS2l0RE9NTm9kZUl0ZXJhdG9yKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9k
ZUl0ZXJhdG9yKgogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfbm9kZV9pdGVyYXRvcihXZWJL
aXRET01Eb2N1bWVudCogc2VsZiwgV2ViS2l0RE9NTm9kZSogcm9vdCwgZ3Vsb25nIHdoYXRUb1No
b3csIFdlYktpdERPTU5vZGVGaWx0ZXIqIGZpbHRlciwgZ2Jvb2xlYW4gZXhwYW5kRW50aXR5UmVm
ZXJlbmNlcywgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTIzOCw4ICsyNzAsMTAgQEAgd2Vi
a2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfbm9kZV9pdGVyYXRvcihXZWJLaXRET01Eb2N1bWVudCog
c2VsZiwgV2ViS2l0RE9NTm9kZSoKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6
ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NVHJlZVdhbGtlcgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IFdlYktpdERPTVRyZWVXYWxrZXIqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01UcmVlV2Fs
a2VyKgogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfdHJlZV93YWxrZXIoV2ViS2l0RE9NRG9j
dW1lbnQqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJvb3QsIGd1bG9uZyB3aGF0VG9TaG93LCBXZWJL
aXRET01Ob2RlRmlsdGVyKiBmaWx0ZXIsIGdib29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMs
IEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0yNDksOCArMjgzLDEwIEBAIHdlYmtpdF9kb21f
ZG9jdW1lbnRfY3JlYXRlX3RyZWVfd2Fsa2VyKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBXZWJL
aXRET01Ob2RlKiByCiAgKiBAcHNldWRvRWxlbWVudDogKGFsbG93LW5vbmUpOiBBICNnY2hhcgog
ICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NQ1NTU3R5bGVEZWNs
YXJhdGlvbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24qCitX
RUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uKgogd2Via2l0X2Rv
bV9kb2N1bWVudF9nZXRfb3ZlcnJpZGVfc3R5bGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIFdl
YktpdERPTUVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IGdjaGFyKiBwc2V1ZG9FbGVtZW50KTsKIAog
LyoqCkBAIC0yNjEsOCArMjk3LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X292ZXJyaWRl
X3N0eWxlKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBXZWJLaXRET01FbGVtZW50CiAgKiBAZXJy
b3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERP
TVhQYXRoRXhwcmVzc2lvbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTVhQYXRoRXhwcmVzc2lv
bioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTVhQYXRoRXhwcmVzc2lvbioKIHdlYmtpdF9k
b21fZG9jdW1lbnRfY3JlYXRlX2V4cHJlc3Npb24oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyKiBleHByZXNzaW9uLCBXZWJLaXRET01YUGF0aE5TUmVzb2x2ZXIqIHJlc29sdmVy
LCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMjcxLDggKzMwOSwxMCBAQCB3ZWJraXRfZG9t
X2RvY3VtZW50X2NyZWF0ZV9leHByZXNzaW9uKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogZXhwcgogICogQG5vZGVSZXNvbHZlcjogQSAjV2ViS2l0RE9NTm9kZQogICoKICAq
IFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyKgorV0VCS0lUX0RFUFJFQ0FU
RUQgV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyKgogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVf
bnNfcmVzb2x2ZXIoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIFdlYktpdERPTU5vZGUqIG5vZGVS
ZXNvbHZlcik7CiAKIC8qKgpAQCAtMjg2LDggKzMyNiwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50
X2NyZWF0ZV9uc19yZXNvbHZlcihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgV2ViS2l0RE9NTm9k
ZSogbgogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwp
OiBBICNXZWJLaXRET01YUGF0aFJlc3VsdAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTVhQYXRo
UmVzdWx0KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NWFBhdGhSZXN1bHQqCiB3ZWJraXRf
ZG9tX2RvY3VtZW50X2V2YWx1YXRlKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hh
ciogZXhwcmVzc2lvbiwgV2ViS2l0RE9NTm9kZSogY29udGV4dE5vZGUsIFdlYktpdERPTVhQYXRo
TlNSZXNvbHZlciogcmVzb2x2ZXIsIGd1c2hvcnQgdHlwZSwgV2ViS2l0RE9NWFBhdGhSZXN1bHQq
IGluUmVzdWx0LCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMjk4LDggKzM0MCwxMCBAQCB3
ZWJraXRfZG9tX2RvY3VtZW50X2V2YWx1YXRlKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogZXhwcmVzc2lvbiwgVwogICogQHZhbHVlOiBBICNnY2hhcgogICoKICAqIFJldHVy
bnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNB
VEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2RvY3VtZW50X2V4ZWNfY29tbWFuZChXZWJLaXRET01E
b2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGNvbW1hbmQsIGdib29sZWFuIHVzZXJJbnRlcmZh
Y2UsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMzA4LDggKzM1MiwxMCBAQCB3ZWJr
aXRfZG9tX2RvY3VtZW50X2V4ZWNfY29tbWFuZChXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29u
c3QgZ2NoYXIqIGNvbW1hbmQsCiAgKiBAY29tbWFuZDogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5z
OiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRF
RCBnYm9vbGVhbgogd2Via2l0X2RvbV9kb2N1bWVudF9xdWVyeV9jb21tYW5kX2VuYWJsZWQoV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBjb21tYW5kKTsKIAogLyoqCkBAIC0z
MTgsOCArMzY0LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfcXVlcnlfY29tbWFuZF9lbmFibGVk
KFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhcioKICAqIEBjb21tYW5kOiBBICNn
Y2hhcgogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xl
YW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2RvY3VtZW50X3F1ZXJ5
X2NvbW1hbmRfaW5kZXRlcm0oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBj
b21tYW5kKTsKIAogLyoqCkBAIC0zMjgsOCArMzc2LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRf
cXVlcnlfY29tbWFuZF9pbmRldGVybShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2No
YXIqCiAgKiBAY29tbWFuZDogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Vi
a2l0X2RvbV9kb2N1bWVudF9xdWVyeV9jb21tYW5kX3N0YXRlKFdlYktpdERPTURvY3VtZW50KiBz
ZWxmLCBjb25zdCBnY2hhciogY29tbWFuZCk7CiAKIC8qKgpAQCAtMzM4LDggKzM4OCwxMCBAQCB3
ZWJraXRfZG9tX2RvY3VtZW50X3F1ZXJ5X2NvbW1hbmRfc3RhdGUoV2ViS2l0RE9NRG9jdW1lbnQq
IHNlbGYsIGNvbnN0IGdjaGFyKiBjbwogICogQGNvbW1hbmQ6IEEgI2djaGFyCiAgKgogICogUmV0
dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJF
Q0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZG9jdW1lbnRfcXVlcnlfY29tbWFuZF9zdXBwb3J0
ZWQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBjb21tYW5kKTsKIAogLyoq
CkBAIC0zNDgsOCArNDAwLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfcXVlcnlfY29tbWFuZF9z
dXBwb3J0ZWQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyCiAgKiBAY29tbWFu
ZDogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2RvY3VtZW50X3F1ZXJ5
X2NvbW1hbmRfdmFsdWUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBjb21t
YW5kKTsKIAogLyoqCkBAIC0zNTgsOCArNDEyLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfcXVl
cnlfY29tbWFuZF92YWx1ZShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGNv
CiAgKiBAZWxlbWVudE5hbWU6IEEgI2djaGFyCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1
bGwpOiBBICNXZWJLaXRET01Ob2RlTGlzdAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGVM
aXN0KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZUxpc3QqCiB3ZWJraXRfZG9tX2Rv
Y3VtZW50X2dldF9lbGVtZW50c19ieV9uYW1lKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogZWxlbWVudE5hbWUpOwogCiAvKioKQEAgLTM2OSw4ICs0MjUsMTAgQEAgd2Via2l0
X2RvbV9kb2N1bWVudF9nZXRfZWxlbWVudHNfYnlfbmFtZShXZWJLaXRET01Eb2N1bWVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIGUKICAqIEB5OiBBICNnbG9uZwogICoKICAqIFJldHVybnM6ICh0cmFu
c2ZlciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERP
TUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2Rv
bV9kb2N1bWVudF9lbGVtZW50X2Zyb21fcG9pbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGds
b25nIHgsIGdsb25nIHkpOwogCiAvKioKQEAgLTM3OCw4ICs0MzYsMTAgQEAgd2Via2l0X2RvbV9k
b2N1bWVudF9lbGVtZW50X2Zyb21fcG9pbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGdsb25n
IHgsIGdsb25nIHkKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVy
bnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24qCitXRUJLSVRfREVQUkVD
QVRFRCBXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uKgogd2Via2l0X2RvbV9kb2N1bWVudF9j
cmVhdGVfY3NzX3N0eWxlX2RlY2xhcmF0aW9uKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0zOTAsOCArNDUwLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX2Nzc19z
dHlsZV9kZWNsYXJhdGlvbihXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBSZXR1cm5zOiAo
dHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCiAgKgogICogU2luY2U6
IDIuMTIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKK1dFQktJVF9E
RVBSRUNBVEVEIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgogd2Via2l0X2RvbV9kb2N1bWVudF9n
ZXRfZWxlbWVudHNfYnlfY2xhc3NfbmFtZV9hc19odG1sX2NvbGxlY3Rpb24oV2ViS2l0RE9NRG9j
dW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBjbGFzc05hbWVzKTsKIAogLyoqCkBAIC0zOTksOCAr
NDYxLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRzX2J5X2NsYXNzX25hbWVf
YXNfaHRtbF9jb2xsZWN0aW9uKFdlYktpdERPTURvY3VtCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
RG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdi
b29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9kb2N1bWVudF9o
YXNfZm9jdXMoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTQwOSw4ICs0NzMs
MTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9oYXNfZm9jdXMoV2ViS2l0RE9NRG9jdW1lbnQqIHNl
bGYpOwogICogQGVsZW1lbnRJZDogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
bm9uZSk6IEEgI1dlYktpdERPTUVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVt
ZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fZG9j
dW1lbnRfZ2V0X2VsZW1lbnRfYnlfaWQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiBlbGVtZW50SWQpOwogCiAvKioKQEAgLTQyMCw4ICs0ODYsMTAgQEAgd2Via2l0X2RvbV9k
b2N1bWVudF9nZXRfZWxlbWVudF9ieV9pZChXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3Qg
Z2NoYXIqIGVsZW0KICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2Zl
ciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVs
ZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9k
b2N1bWVudF9xdWVyeV9zZWxlY3RvcihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2No
YXIqIHNlbGVjdG9ycywgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTQzMSw4ICs0OTksMTAg
QEAgd2Via2l0X2RvbV9kb2N1bWVudF9xdWVyeV9zZWxlY3RvcihXZWJLaXRET01Eb2N1bWVudCog
c2VsZiwgY29uc3QgZ2NoYXIqIHNlbGVjdG8KICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJl
dHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NTm9kZUxpc3QKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBXZWJLaXRET01Ob2RlTGlzdCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGVM
aXN0Kgogd2Via2l0X2RvbV9kb2N1bWVudF9xdWVyeV9zZWxlY3Rvcl9hbGwoV2ViS2l0RE9NRG9j
dW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBzZWxlY3RvcnMsIEdFcnJvcioqIGVycm9yKTsKIAog
LyoqCkBAIC00NDAsOCArNTEwLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfcXVlcnlfc2VsZWN0
b3JfYWxsKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogc2VsCiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6
IEEgI1dlYktpdERPTURvY3VtZW50VHlwZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTURvY3Vt
ZW50VHlwZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTURvY3VtZW50VHlwZSoKIHdlYmtp
dF9kb21fZG9jdW1lbnRfZ2V0X2RvY3R5cGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTQ0OSw4ICs1MjEsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZG9jdHlwZShX
ZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTURPTUltcGxlbWVu
dGF0aW9uCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRE9NSW1wbGVtZW50YXRpb24qCitXRUJL
SVRfREVQUkVDQVRFRCBXZWJLaXRET01ET01JbXBsZW1lbnRhdGlvbioKIHdlYmtpdF9kb21fZG9j
dW1lbnRfZ2V0X2ltcGxlbWVudGF0aW9uKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC00NTgsOCArNTMyLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2ltcGxlbWVudGF0
aW9uKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1
bWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVu
dAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBX
ZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZG9jdW1lbnRfZWxlbWVu
dChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNDY3LDggKzU0MywxMCBAQCB3
ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kb2N1bWVudF9lbGVtZW50KFdlYktpdERPTURvY3VtZW50
KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2lucHV0X2VuY29kaW5nKFdlYktpdERPTURvY3Vt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC00NzYsOCArNTU0LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1l
bnRfZ2V0X2lucHV0X2VuY29kaW5nKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9j
dW1lbnRfZ2V0X3htbF9lbmNvZGluZyhXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpA
QCAtNDg1LDggKzU2NSwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF94bWxfZW5jb2Rpbmco
V2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfeG1sX3ZlcnNpb24o
V2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTQ5NSw4ICs1NzcsMTAgQEAgd2Vi
a2l0X2RvbV9kb2N1bWVudF9nZXRfeG1sX3ZlcnNpb24oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYp
OwogICogQHZhbHVlOiBBICNnY2hhcgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9jdW1lbnRf
c2V0X3htbF92ZXJzaW9uKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC01MDQsOCArNTg4LDEwIEBAIHdlYmtpdF9k
b21fZG9jdW1lbnRfc2V0X3htbF92ZXJzaW9uKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUsCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQ
UkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfeG1sX3N0YW5kYWxvbmUo
V2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTUxNCw4ICs2MDAsMTAgQEAgd2Vi
a2l0X2RvbV9kb2N1bWVudF9nZXRfeG1sX3N0YW5kYWxvbmUoV2ViS2l0RE9NRG9jdW1lbnQqIHNl
bGYpOwogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9j
dW1lbnRfc2V0X3htbF9zdGFuZGFsb25lKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBnYm9vbGVh
biB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTUyMyw4ICs2MTEsMTAgQEAgd2Vi
a2l0X2RvbV9kb2N1bWVudF9zZXRfeG1sX3N0YW5kYWxvbmUoV2ViS2l0RE9NRG9jdW1lbnQqIHNl
bGYsIGdib29sZWFuIHZhbHVlLAogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBS
RUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZG9jdW1lbnRfdXJpKFdlYktp
dERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC01MzIsOCArNjIyLDEwIEBAIHdlYmtpdF9k
b21fZG9jdW1lbnRfZ2V0X2RvY3VtZW50X3VyaShXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9k
b2N1bWVudF9zZXRfZG9jdW1lbnRfdXJpKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBn
Y2hhciogdmFsdWUpOwogCiAvKioKQEAgLTU0MSw4ICs2MzMsMTAgQEAgd2Via2l0X2RvbV9kb2N1
bWVudF9zZXRfZG9jdW1lbnRfdXJpKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hh
ciogdmFsdWUKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6
ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NRE9NV2luZG93CisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
V2ViS2l0RE9NRE9NV2luZG93KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRE9NV2luZG93
Kgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZGVmYXVsdF92aWV3KFdlYktpdERPTURvY3VtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC01NTAsOCArNjQ0LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRf
Z2V0X2RlZmF1bHRfdmlldyhXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dl
YktpdERPTVN0eWxlU2hlZXRMaXN0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NU3R5bGVTaGVl
dExpc3QqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01TdHlsZVNoZWV0TGlzdCoKIHdlYmtp
dF9kb21fZG9jdW1lbnRfZ2V0X3N0eWxlX3NoZWV0cyhXZWJLaXRET01Eb2N1bWVudCogc2VsZik7
CiAKIC8qKgpAQCAtNTU5LDggKzY1NSwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9zdHls
ZV9zaGVldHMoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TURvY3VtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hh
cioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfdGl0
bGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTU2OCw4ICs2NjYsMTAgQEAg
d2Via2l0X2RvbV9kb2N1bWVudF9nZXRfdGl0bGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
ZG9jdW1lbnRfc2V0X3RpdGxlKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciog
dmFsdWUpOwogCiAvKioKQEAgLTU3OSw4ICs2NzksMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9z
ZXRfdGl0bGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAg
KiBSZXR1cm5zOiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE0CisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0
X2Rlc2lnbl9tb2RlKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC01ODksOCAr
NjkxLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2Rlc2lnbl9tb2RlKFdlYktpdERPTURv
Y3VtZW50KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNAor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
ZG9jdW1lbnRfc2V0X2Rlc2lnbl9tb2RlKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBn
Y2hhciogdmFsdWUpOwogCiAvKioKQEAgLTU5OCw4ICs3MDIsMTAgQEAgd2Via2l0X2RvbV9kb2N1
bWVudF9zZXRfZGVzaWduX21vZGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFy
KiB2YWx1ZSkKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3JlZmVycmVyKFdlYktpdERPTURvY3VtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC02MDcsOCArNzEzLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0
X3JlZmVycmVyKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01Eb2N1bWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2No
YXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2Rv
bWFpbihXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjE2LDggKzcyNCwxMCBA
QCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kb21haW4oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2No
YXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Vi
a2l0X2RvbV9kb2N1bWVudF9nZXRfdXJsKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC02MjYsOCArNzM2LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3VybChXZWJLaXRE
T01Eb2N1bWVudCogc2VsZik7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiBB
ICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIq
CiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jb29raWUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYs
IEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC02MzYsOCArNzQ4LDEwIEBAIHdlYmtpdF9kb21f
ZG9jdW1lbnRfZ2V0X2Nvb2tpZShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgR0Vycm9yKiogZXJy
b3IpOwogICogQHZhbHVlOiBBICNnY2hhcgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9jdW1l
bnRfc2V0X2Nvb2tpZShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVl
LCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtNjQ1LDggKzc1OSwxMCBAQCB3ZWJraXRfZG9t
X2RvY3VtZW50X3NldF9jb29raWUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFy
KiB2YWx1ZSwgR0VycgogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgogICogUmV0
dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01IVE1MRWxlbWVudAorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIFdlYktpdERPTUhUTUxFbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9N
SFRNTEVsZW1lbnQqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9ib2R5KFdlYktpdERPTURvY3Vt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC02NTUsOCArNzcxLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1l
bnRfZ2V0X2JvZHkoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNXZWJL
aXRET01IVE1MRWxlbWVudAogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X2Jv
ZHkoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIFdlYktpdERPTUhUTUxFbGVtZW50KiB2YWx1ZSwg
R0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTY2NCw4ICs3ODIsMTAgQEAgd2Via2l0X2RvbV9k
b2N1bWVudF9zZXRfYm9keShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgV2ViS2l0RE9NSFRNTEVs
ZW1lbnQqIHZhbHUKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVy
bnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NSFRNTEhlYWRFbGVtZW50CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgV2ViS2l0RE9NSFRNTEhlYWRFbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2Vi
S2l0RE9NSFRNTEhlYWRFbGVtZW50Kgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfaGVhZChXZWJL
aXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjczLDggKzc5MywxMCBAQCB3ZWJraXRf
ZG9tX2RvY3VtZW50X2dldF9oZWFkKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTog
QSAjV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1M
Q29sbGVjdGlvbioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgog
d2Via2l0X2RvbV9kb2N1bWVudF9nZXRfaW1hZ2VzKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsK
IAogLyoqCkBAIC02ODIsOCArODA0LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2ltYWdl
cyhXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1l
bnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUhUTUxDb2xs
ZWN0aW9uCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCitXRUJLSVRf
REVQUkVDQVRFRCBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKIHdlYmtpdF9kb21fZG9jdW1lbnRf
Z2V0X2FwcGxldHMoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTY5MSw4ICs4
MTUsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfYXBwbGV0cyhXZWJLaXRET01Eb2N1bWVu
dCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5z
OiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRE
T01IVE1MQ29sbGVjdGlvbioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2xpbmtzKFdlYktpdERP
TURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC03MDAsOCArODI2LDEwIEBAIHdlYmtpdF9kb21f
ZG9jdW1lbnRfZ2V0X2xpbmtzKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAj
V2ViS2l0RE9NSFRNTENvbGxlY3Rpb24KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MQ29s
bGVjdGlvbioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgogd2Vi
a2l0X2RvbV9kb2N1bWVudF9nZXRfZm9ybXMoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTcwOSw4ICs4MzcsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZm9ybXMoV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAg
KgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1MQ29sbGVjdGlv
bgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgorV0VCS0lUX0RFUFJF
Q0FURUQgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9h
bmNob3JzKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC03MjAsOCArODUwLDEw
IEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2FuY2hvcnMoV2ViS2l0RE9NRG9jdW1lbnQqIHNl
bGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1MQ29sbGVj
dGlvbgogICoKICAqIFNpbmNlOiAyLjE0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTENv
bGxlY3Rpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKIHdl
YmtpdF9kb21fZG9jdW1lbnRfZ2V0X2VtYmVkcyhXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAK
IC8qKgpAQCAtNzMxLDggKzg2MywxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9lbWJlZHMo
V2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBB
ICNXZWJLaXRET01IVE1MQ29sbGVjdGlvbgogICoKICAqIFNpbmNlOiAyLjE0CisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRE
T01IVE1MQ29sbGVjdGlvbioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3BsdWdpbnMoV2ViS2l0
RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTc0Miw4ICs4NzYsMTAgQEAgd2Via2l0X2Rv
bV9kb2N1bWVudF9nZXRfcGx1Z2lucyhXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBSZXR1
cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCiAgKgogICog
U2luY2U6IDIuMTQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKK1dF
QktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgogd2Via2l0X2RvbV9kb2N1
bWVudF9nZXRfc2NyaXB0cyhXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNzUx
LDggKzg4NywxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9zY3JpcHRzKFdlYktpdERPTURv
Y3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJl
dHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRF
RCBnY2hhcioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2xhc3RfbW9kaWZpZWQoV2ViS2l0RE9N
RG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTc2MCw4ICs4OTgsMTAgQEAgd2Via2l0X2RvbV9k
b2N1bWVudF9nZXRfbGFzdF9tb2RpZmllZChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9t
X2RvY3VtZW50X2dldF9jaGFyc2V0KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC03NjksOCArOTA5LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2NoYXJzZXQoV2ViS2l0
RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKiBA
dmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X2NoYXJzZXQoV2ViS2l0RE9NRG9jdW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzc4LDggKzkyMCwxMCBA
QCB3ZWJraXRfZG9tX2RvY3VtZW50X3NldF9jaGFyc2V0KFdlYktpdERPTURvY3VtZW50KiBzZWxm
LCBjb25zdCBnY2hhciogdmFsdWUpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAg
KgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9E
RVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfcmVhZHlfc3RhdGUoV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTc4Nyw4ICs5MzEsMTAgQEAgd2Via2l0
X2RvbV9kb2N1bWVudF9nZXRfcmVhZHlfc3RhdGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0
X2RvbV9kb2N1bWVudF9nZXRfY2hhcmFjdGVyX3NldChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7
CiAKIC8qKgpAQCAtNzk2LDggKzk0MiwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jaGFy
YWN0ZXJfc2V0KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01Eb2N1bWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2No
YXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3By
ZWZlcnJlZF9zdHlsZXNoZWV0X3NldChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpA
QCAtODA1LDggKzk1MywxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9wcmVmZXJyZWRfc3R5
bGVzaGVldF9zZXQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTURvY3VtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Y2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRf
c2VsZWN0ZWRfc3R5bGVzaGVldF9zZXQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTgxNCw4ICs5NjQsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfc2VsZWN0ZWRfc3R5
bGVzaGVldF9zZXQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTURvY3VtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X3NlbGVj
dGVkX3N0eWxlc2hlZXRfc2V0KFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciog
dmFsdWUpOwogCiAvKioKQEAgLTgyMyw4ICs5NzUsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9z
ZXRfc2VsZWN0ZWRfc3R5bGVzaGVldF9zZXQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0
IGcKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFJldHVybnM6ICh0cmFu
c2ZlciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERP
TUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2Rv
bV9kb2N1bWVudF9nZXRfYWN0aXZlX2VsZW1lbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTgzNCw4ICs5ODgsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfYWN0aXZl
X2VsZW1lbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogQSAjZ2NoYXIK
ICAqCiAgKiBTaW5jZTogMi4xNAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJF
Q0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jb21wYXRfbW9kZShXZWJLaXRE
T01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtODQ3LDggKzEwMDMsMTAgQEAgd2Via2l0X2Rv
bV9kb2N1bWVudF9nZXRfY29tcGF0X21vZGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICog
UmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01SYW5nZQogICoKICAqIFNpbmNl
OiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NUmFuZ2UqCitXRUJLSVRfREVQUkVDQVRF
RCBXZWJLaXRET01SYW5nZSoKIHdlYmtpdF9kb21fZG9jdW1lbnRfY2FyZXRfcmFuZ2VfZnJvbV9w
b2ludChXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgZ2xvbmcgeCwgZ2xvbmcgeSk7CiAKIC8qKgpA
QCAtODU2LDggKzEwMTQsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9jYXJldF9yYW5nZV9mcm9t
X3BvaW50KFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBnbG9uZyB4LCBnbG8KICAqIEBzZWxmOiBB
ICNXZWJLaXRET01Eb2N1bWVudAogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb2N1bWVudF93ZWJraXRf
Y2FuY2VsX2Z1bGxzY3JlZW4oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTg2
NSw4ICsxMDI1LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfd2Via2l0X2NhbmNlbF9mdWxsc2Ny
ZWVuKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1
bWVudAogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9kb2N1bWVudF93ZWJraXRfZXhpdF9mdWxsc2NyZWVu
KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04NzQsOCArMTAzNiwxMCBAQCB3
ZWJraXRfZG9tX2RvY3VtZW50X3dlYmtpdF9leGl0X2Z1bGxzY3JlZW4oV2ViS2l0RE9NRG9jdW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50CiAgKgogICogU2luY2U6
IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJr
aXRfZG9tX2RvY3VtZW50X2V4aXRfcG9pbnRlcl9sb2NrKFdlYktpdERPTURvY3VtZW50KiBzZWxm
KTsKIAogLyoqCkBAIC04ODUsOCArMTA0OSwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2V4aXRf
cG9pbnRlcl9sb2NrKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2dj
aGFyCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9E
RVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfY29udGVudF90eXBlKFdl
YktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04OTYsOCArMTA2MiwxMCBAQCB3ZWJr
aXRfZG9tX2RvY3VtZW50X2dldF9jb250ZW50X3R5cGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYp
OwogICogUmV0dXJuczogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2RvY3VtZW50
X2dldF9kaXIoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTkwNiw4ICsxMDc0
LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2RpcihXZWJLaXRET01Eb2N1bWVudCogc2Vs
Zik7CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2RvY3VtZW50X3Nl
dF9kaXIoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8q
KgpAQCAtOTE3LDggKzEwODcsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9zZXRfZGlyKFdlYktp
dERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogICogUmV0dXJuczogQSAj
Z2Jvb2xlYW4KICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitX
RUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0
X2lzX2Z1bGxzY3JlZW4oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTkyOCw4
ICsxMTAwLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3dlYmtpdF9pc19mdWxsc2NyZWVu
KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIFJldHVybnM6IEEgI2dib29sZWFuCiAgKgog
ICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3dlYmtpdF9mdWxsc2NyZWVuX2tl
eWJvYXJkX2lucHV0X2FsbG93ZWQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTkzOSw4ICsxMTEzLDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3dlYmtpdF9mdWxsc2Ny
ZWVuX2tleWJvYXJkX2lucHV0X2FsbG93ZWQoV2ViS2l0RE9NRG9jdW1lCiAgKiBSZXR1cm5zOiAo
dHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBTaW5jZTogMi4xNgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJL
aXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2N1cnJlbnRfZnVs
bHNjcmVlbl9lbGVtZW50KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC05NTAs
OCArMTEyNiwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF93ZWJraXRfY3VycmVudF9mdWxs
c2NyZWVuX2VsZW1lbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbAogICogUmV0dXJuczogQSAjZ2Jv
b2xlYW4KICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJL
SVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2Z1
bGxzY3JlZW5fZW5hYmxlZChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtOTYx
LDggKzExMzksMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2Z1bGxzY3JlZW5f
ZW5hYmxlZChXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
bm9uZSk6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVt
ZW50Kgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2Z1bGxzY3JlZW5fZWxlbWVudChX
ZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtOTcyLDggKzExNTIsMTAgQEAgd2Vi
a2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2Z1bGxzY3JlZW5fZWxlbWVudChXZWJLaXRET01E
b2N1bWVudCogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERP
TUVsZW1lbnQKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVs
ZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9k
b2N1bWVudF9nZXRfcG9pbnRlcl9sb2NrX2VsZW1lbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTk4Myw4ICsxMTY1LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3Bv
aW50ZXJfbG9ja19lbGVtZW50KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAqIFJldHVybnM6
IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dF
QktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfdmlzaWJpbGl0
eV9zdGF0ZShXZWJLaXRET01Eb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtOTk0LDggKzExNzgs
MTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfdmlzaWJpbGl0eV9zdGF0ZShXZWJLaXRET01E
b2N1bWVudCogc2VsZik7CiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAy
LjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFu
CiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9oaWRkZW4oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTEwMDUsOCArMTE5MSwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9o
aWRkZW4oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIG5v
bmUpOiBBICNXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudAogICoKICAqIFNpbmNlOiAyLjE2Cisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqCitXRUJLSVRfREVQUkVD
QVRFRCBXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0
X2N1cnJlbnRfc2NyaXB0KFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMDE2
LDggKzEyMDQsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfY3VycmVudF9zY3JpcHQoV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogQSAjZ2NoYXIKICAqCiAgKiBTaW5j
ZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIq
CiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9vcmlnaW4oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTEwMjcsOCArMTIxNywxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9v
cmlnaW4oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIG5v
bmUpOiBBICNXZWJLaXRET01FbGVtZW50CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBXZWJLaXRET01FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRWxlbWVu
dCoKIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3Njcm9sbGluZ19lbGVtZW50KFdlYktpdERPTURv
Y3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMDM4LDggKzEyMzAsMTAgQEAgd2Via2l0X2RvbV9k
b2N1bWVudF9nZXRfc2Nyb2xsaW5nX2VsZW1lbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwog
ICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1MQ29sbGVjdGlvbgog
ICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTENvbGxlY3Rp
b24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKIHdlYmtpdF9k
b21fZG9jdW1lbnRfZ2V0X2NoaWxkcmVuKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC0xMDQ5LDggKzEyNDMsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfY2hpbGRyZW4o
V2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBB
ICNXZWJLaXRET01FbGVtZW50CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBX
ZWJLaXRET01FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdl
YmtpdF9kb21fZG9jdW1lbnRfZ2V0X2ZpcnN0X2VsZW1lbnRfY2hpbGQoV2ViS2l0RE9NRG9jdW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTEwNjAsOCArMTI1NiwxMCBAQCB3ZWJraXRfZG9tX2RvY3Vt
ZW50X2dldF9maXJzdF9lbGVtZW50X2NoaWxkKFdlYktpdERPTURvY3VtZW50KiBzZWxmKTsKICAq
IFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFNp
bmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRWxlbWVudCoKK1dFQktJVF9ERVBS
RUNBVEVEIFdlYktpdERPTUVsZW1lbnQqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9sYXN0X2Vs
ZW1lbnRfY2hpbGQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEwNzEsOCAr
MTI2OSwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9sYXN0X2VsZW1lbnRfY2hpbGQoV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbGYpOwogICogUmV0dXJuczogQSAjZ3Vsb25nCiAgKgogICogU2lu
Y2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9u
Zwogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfY2hpbGRfZWxlbWVudF9jb3VudChXZWJLaXRET01E
b2N1bWVudCogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRG
cmFnbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudC5jcHAKaW5kZXggNDExNTMzNGU1Y2Q0
YTFiNjNhZmIzMTcyYzVmZGE2ZWQ3MWRiZGU5MS4uZThmZWM2OWEwOGYwM2Q4YmZhYTc4YzBkOWJj
MGVjYzFmMDY4NWIwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50RnJhZ21lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01Eb2N1bWVudEZyYWdtZW50LmNwcApAQCAtMzksNiArMzksOCBAQAogI2luY2x1ZGUgPHd0
Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05P
UkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NRG9jdW1l
bnRGcmFnbWVudCoga2l0KFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQqIG9iaikKQEAgLTI2MCwz
ICsyNjIsNCBAQCBndWxvbmcgd2Via2l0X2RvbV9kb2N1bWVudF9mcmFnbWVudF9nZXRfY2hpbGRf
ZWxlbWVudF9jb3VudChXZWJLaXRET01Eb2N1bWVudEZyYQogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1
bWVudEZyYWdtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudC5oCmluZGV4IGYxYWI3YjIwNDk4
MWIzNDliYWI1Mzk5MjhiOTU4NDNjYWE1ZTcxN2EuLjA5NzY2OTJmMzRkZmRiZDVkOGI2NTc5YTM0
YTZmMGY1NDIzYjBhNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Eb2N1bWVudEZyYWdtZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTURvY3VtZW50RnJhZ21lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERP
TURvY3VtZW50RnJhZ21lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NTm9kZUNsYXNzIHBhcmVudF9j
bGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3
ZWJraXRfZG9tX2RvY3VtZW50X2ZyYWdtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTU2
LDggKzU2LDEwIEBAIHdlYmtpdF9kb21fZG9jdW1lbnRfZnJhZ21lbnRfZ2V0X3R5cGUodm9pZCk7
CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAg
KiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCitXRUJLSVRf
REVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9kb2N1bWVudF9mcmFnbWVu
dF9nZXRfZWxlbWVudF9ieV9pZChXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogZWxlbWVudElkKTsKIAogLyoqCkBAIC02OSw4ICs3MSwxMCBAQCB3ZWJraXRfZG9t
X2RvY3VtZW50X2ZyYWdtZW50X2dldF9lbGVtZW50X2J5X2lkKFdlYktpdERPTURvY3VtZW50RnJh
Z21lbnQqIHNlbGYsCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUVs
ZW1lbnQKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1l
bnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9kb2N1
bWVudF9mcmFnbWVudF9xdWVyeV9zZWxlY3RvcihXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50KiBz
ZWxmLCBjb25zdCBnY2hhciogc2VsZWN0b3JzLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAt
ODIsOCArODYsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF9mcmFnbWVudF9xdWVyeV9zZWxlY3Rv
cihXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50KiBzZWxmLCBjb24KICAqIFJldHVybnM6ICh0cmFu
c2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NTm9kZUxpc3QKICAqCiAgKiBTaW5jZTogMi4xNgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICov
Ci1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGVMaXN0KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0
RE9NTm9kZUxpc3QqCiB3ZWJraXRfZG9tX2RvY3VtZW50X2ZyYWdtZW50X3F1ZXJ5X3NlbGVjdG9y
X2FsbChXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50KiBzZWxmLCBjb25zdCBnY2hhciogc2VsZWN0
b3JzLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtOTMsOCArOTksMTAgQEAgd2Via2l0X2Rv
bV9kb2N1bWVudF9mcmFnbWVudF9xdWVyeV9zZWxlY3Rvcl9hbGwoV2ViS2l0RE9NRG9jdW1lbnRG
cmFnbWVudCogc2VsZiwKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9N
SFRNTENvbGxlY3Rpb24KICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIFdlYktp
dERPTUhUTUxDb2xsZWN0aW9uKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTENvbGxl
Y3Rpb24qCiB3ZWJraXRfZG9tX2RvY3VtZW50X2ZyYWdtZW50X2dldF9jaGlsZHJlbihXZWJLaXRE
T01Eb2N1bWVudEZyYWdtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMDQsOCArMTEyLDEwIEBAIHdl
YmtpdF9kb21fZG9jdW1lbnRfZnJhZ21lbnRfZ2V0X2NoaWxkcmVuKFdlYktpdERPTURvY3VtZW50
RnJhZ21lbnQqIHNlbGYpOwogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRE
T01FbGVtZW50CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBXZWJLaXRET01F
bGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21f
ZG9jdW1lbnRfZnJhZ21lbnRfZ2V0X2ZpcnN0X2VsZW1lbnRfY2hpbGQoV2ViS2l0RE9NRG9jdW1l
bnRGcmFnbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTE1LDggKzEyNSwxMCBAQCB3ZWJraXRfZG9t
X2RvY3VtZW50X2ZyYWdtZW50X2dldF9maXJzdF9lbGVtZW50X2NoaWxkKFdlYktpdERPTURvY3Vt
ZW50RnJhZ21lbnQqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUVs
ZW1lbnQKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1l
bnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9kb2N1
bWVudF9mcmFnbWVudF9nZXRfbGFzdF9lbGVtZW50X2NoaWxkKFdlYktpdERPTURvY3VtZW50RnJh
Z21lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEyNiw4ICsxMzgsMTAgQEAgd2Via2l0X2RvbV9kb2N1
bWVudF9mcmFnbWVudF9nZXRfbGFzdF9lbGVtZW50X2NoaWxkKFdlYktpdERPTURvY3VtZW50RnJh
Z21lbnQqIHMKICAqIFJldHVybnM6IEEgI2d1bG9uZwogICoKICAqIFNpbmNlOiAyLjE2CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8K
LVdFQktJVF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQUkVDQVRFRCBndWxvbmcKIHdlYmtpdF9kb21f
ZG9jdW1lbnRfZnJhZ21lbnRfZ2V0X2NoaWxkX2VsZW1lbnRfY291bnQoV2ViS2l0RE9NRG9jdW1l
bnRGcmFnbWVudCogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1l
bnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTURvY3VtZW50R3RrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTA1NDFmMDliMjI3
MDFhMTM5NTU4MWNkMWI0MzI5NzAzNDIxZWE0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3Vt
ZW50R3RrLmNwcApAQCAtMCwwICsxLDE5ODQgQEAKKy8qCisgKiAgVGhpcyBmaWxlIGlzIHBhcnQg
b2YgdGhlIFdlYktpdCBvcGVuIHNvdXJjZSBwcm9qZWN0LgorICoKKyAqICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0RE9NRG9jdW1lbnQuaCIKKworI2luY2x1ZGUgIkNv
bnZlcnRUb1VURjhTdHJpbmcuaCIKKyNpbmNsdWRlICJHT2JqZWN0RXZlbnRMaXN0ZW5lci5oIgor
I2luY2x1ZGUgIldlYktpdERPTUF0dHJQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0RE9NQ0RB
VEFTZWN0aW9uUHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRp
b25Qcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0RE9NQ29tbWVudFByaXZhdGUuaCIKKyNpbmNs
dWRlICJXZWJLaXRET01ET01JbXBsZW1lbnRhdGlvblByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJL
aXRET01ET01XaW5kb3dQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0RE9NRG9jdW1lbnRGcmFn
bWVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01Eb2N1bWVudFByaXZhdGUuaCIKKyNp
bmNsdWRlICJXZWJLaXRET01Eb2N1bWVudFR5cGVQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0
RE9NRG9jdW1lbnRVbnN0YWJsZS5oIgorI2luY2x1ZGUgIldlYktpdERPTUVsZW1lbnRQcml2YXRl
LmgiCisjaW5jbHVkZSAiV2ViS2l0RE9NRXZlbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0
RE9NRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJXZWJLaXRET01IVE1MQ29sbGVjdGlvblByaXZh
dGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01IVE1MRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRl
ICJXZWJLaXRET01IVE1MSGVhZEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0RE9N
SFRNTFNjcmlwdEVsZW1lbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0RE9NTm9kZUZpbHRl
clByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01Ob2RlSXRlcmF0b3JQcml2YXRlLmgiCisj
aW5jbHVkZSAiV2ViS2l0RE9NTm9kZUxpc3RQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0RE9N
Tm9kZVByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01Qcml2YXRlLmgiCisjaW5jbHVkZSAi
V2ViS2l0RE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uUHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktp
dERPTVJhbmdlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTVN0eWxlU2hlZXRMaXN0UHJp
dmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTVRleHRQcml2YXRlLmgiCisjaW5jbHVkZSAiV2Vi
S2l0RE9NVHJlZVdhbGtlclByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01YUGF0aEV4cHJl
c3Npb25Qcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyUHJpdmF0
ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTVhQYXRoUmVzdWx0UHJpdmF0ZS5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvQ1NTSW1wb3J0UnVsZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRE9NRXhjZXB0aW9u
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSlNN
YWluVGhyZWFkRXhlY1N0YXRlLmg+CisjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KKworR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKK3N0
YXRpYyBnYm9vbGVhbiB3ZWJraXRfZG9tX2RvY3VtZW50X2Rpc3BhdGNoX2V2ZW50KFdlYktpdERP
TUV2ZW50VGFyZ2V0KiB0YXJnZXQsIFdlYktpdERPTUV2ZW50KiBldmVudCwgR0Vycm9yKiogZXJy
b3IpCit7CisgICAgV2ViQ29yZTo6RXZlbnQqIGNvcmVFdmVudCA9IFdlYktpdDo6Y29yZShldmVu
dCk7CisgICAgaWYgKCFjb3JlRXZlbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBXZWJD
b3JlOjpEb2N1bWVudCogY29yZVRhcmdldCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkRvY3VtZW50
Kj4oV0VCS0lUX0RPTV9PQkpFQ1QodGFyZ2V0KS0+Y29yZU9iamVjdCk7CisKKyAgICBhdXRvIHJl
c3VsdCA9IGNvcmVUYXJnZXQtPmRpc3BhdGNoRXZlbnRGb3JCaW5kaW5ncygqY29yZUV2ZW50KTsK
KyAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgIGF1dG8gZGVzY3JpcHRp
b24gPSBXZWJDb3JlOjpET01FeGNlcHRpb246OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhj
ZXB0aW9uKCkuY29kZSgpKTsKKyAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19x
dWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBk
ZXNjcmlwdGlvbi5uYW1lKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1
cm4gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworfQorCitzdGF0aWMgZ2Jvb2xlYW4gd2Vi
a2l0X2RvbV9kb2N1bWVudF9hZGRfZXZlbnRfbGlzdGVuZXIoV2ViS2l0RE9NRXZlbnRUYXJnZXQq
IHRhcmdldCwgY29uc3QgY2hhciogZXZlbnROYW1lLCBHQ2xvc3VyZSogaGFuZGxlciwgZ2Jvb2xl
YW4gdXNlQ2FwdHVyZSkKK3sKKyAgICBXZWJDb3JlOjpEb2N1bWVudCogY29yZVRhcmdldCA9IHN0
YXRpY19jYXN0PFdlYkNvcmU6OkRvY3VtZW50Kj4oV0VCS0lUX0RPTV9PQkpFQ1QodGFyZ2V0KS0+
Y29yZU9iamVjdCk7CisgICAgcmV0dXJuIFdlYktpdDo6R09iamVjdEV2ZW50TGlzdGVuZXI6OmFk
ZEV2ZW50TGlzdGVuZXIoR19PQkpFQ1QodGFyZ2V0KSwgY29yZVRhcmdldCwgZXZlbnROYW1lLCBo
YW5kbGVyLCB1c2VDYXB0dXJlKTsKK30KKworc3RhdGljIGdib29sZWFuIHdlYmtpdF9kb21fZG9j
dW1lbnRfcmVtb3ZlX2V2ZW50X2xpc3RlbmVyKFdlYktpdERPTUV2ZW50VGFyZ2V0KiB0YXJnZXQs
IGNvbnN0IGNoYXIqIGV2ZW50TmFtZSwgR0Nsb3N1cmUqIGhhbmRsZXIsIGdib29sZWFuIHVzZUNh
cHR1cmUpCit7CisgICAgV2ViQ29yZTo6RG9jdW1lbnQqIGNvcmVUYXJnZXQgPSBzdGF0aWNfY2Fz
dDxXZWJDb3JlOjpEb2N1bWVudCo+KFdFQktJVF9ET01fT0JKRUNUKHRhcmdldCktPmNvcmVPYmpl
Y3QpOworICAgIHJldHVybiBXZWJLaXQ6OkdPYmplY3RFdmVudExpc3RlbmVyOjpyZW1vdmVFdmVu
dExpc3RlbmVyKEdfT0JKRUNUKHRhcmdldCksIGNvcmVUYXJnZXQsIGV2ZW50TmFtZSwgaGFuZGxl
ciwgdXNlQ2FwdHVyZSk7Cit9CisKK3ZvaWQgd2Via2l0RE9NRG9jdW1lbnRET01FdmVudFRhcmdl
dEluaXQoV2ViS2l0RE9NRXZlbnRUYXJnZXRJZmFjZSogaWZhY2UpCit7CisgICAgaWZhY2UtPmRp
c3BhdGNoX2V2ZW50ID0gd2Via2l0X2RvbV9kb2N1bWVudF9kaXNwYXRjaF9ldmVudDsKKyAgICBp
ZmFjZS0+YWRkX2V2ZW50X2xpc3RlbmVyID0gd2Via2l0X2RvbV9kb2N1bWVudF9hZGRfZXZlbnRf
bGlzdGVuZXI7CisgICAgaWZhY2UtPnJlbW92ZV9ldmVudF9saXN0ZW5lciA9IHdlYmtpdF9kb21f
ZG9jdW1lbnRfcmVtb3ZlX2V2ZW50X2xpc3RlbmVyOworfQorCitlbnVtIHsKKyAgICBET01fRE9D
VU1FTlRfUFJPUF8wLAorICAgIERPTV9ET0NVTUVOVF9QUk9QX0RPQ1RZUEUsCisgICAgRE9NX0RP
Q1VNRU5UX1BST1BfSU1QTEVNRU5UQVRJT04sCisgICAgRE9NX0RPQ1VNRU5UX1BST1BfRE9DVU1F
TlRfRUxFTUVOVCwKKyAgICBET01fRE9DVU1FTlRfUFJPUF9JTlBVVF9FTkNPRElORywKKyAgICBE
T01fRE9DVU1FTlRfUFJPUF9YTUxfRU5DT0RJTkcsCisgICAgRE9NX0RPQ1VNRU5UX1BST1BfWE1M
X1ZFUlNJT04sCisgICAgRE9NX0RPQ1VNRU5UX1BST1BfWE1MX1NUQU5EQUxPTkUsCisgICAgRE9N
X0RPQ1VNRU5UX1BST1BfRE9DVU1FTlRfVVJJLAorICAgIERPTV9ET0NVTUVOVF9QUk9QX0RFRkFV
TFRfVklFVywKKyAgICBET01fRE9DVU1FTlRfUFJPUF9TVFlMRV9TSEVFVFMsCisgICAgRE9NX0RP
Q1VNRU5UX1BST1BfQ09OVEVOVF9UWVBFLAorICAgIERPTV9ET0NVTUVOVF9QUk9QX1RJVExFLAor
ICAgIERPTV9ET0NVTUVOVF9QUk9QX0RJUiwKKyAgICBET01fRE9DVU1FTlRfUFJPUF9ERVNJR05f
TU9ERSwKKyAgICBET01fRE9DVU1FTlRfUFJPUF9SRUZFUlJFUiwKKyAgICBET01fRE9DVU1FTlRf
UFJPUF9ET01BSU4sCisgICAgRE9NX0RPQ1VNRU5UX1BST1BfVVJMLAorICAgIERPTV9ET0NVTUVO
VF9QUk9QX0NPT0tJRSwKKyAgICBET01fRE9DVU1FTlRfUFJPUF9CT0RZLAorICAgIERPTV9ET0NV
TUVOVF9QUk9QX0hFQUQsCisgICAgRE9NX0RPQ1VNRU5UX1BST1BfSU1BR0VTLAorICAgIERPTV9E
T0NVTUVOVF9QUk9QX0FQUExFVFMsCisgICAgRE9NX0RPQ1VNRU5UX1BST1BfTElOS1MsCisgICAg
RE9NX0RPQ1VNRU5UX1BST1BfRk9STVMsCisgICAgRE9NX0RPQ1VNRU5UX1BST1BfQU5DSE9SUywK
KyAgICBET01fRE9DVU1FTlRfUFJPUF9FTUJFRFMsCisgICAgRE9NX0RPQ1VNRU5UX1BST1BfUExV
R0lOUywKKyAgICBET01fRE9DVU1FTlRfUFJPUF9TQ1JJUFRTLAorICAgIERPTV9ET0NVTUVOVF9Q
Uk9QX0xBU1RfTU9ESUZJRUQsCisgICAgRE9NX0RPQ1VNRU5UX1BST1BfQ0hBUlNFVCwKKyAgICBE
T01fRE9DVU1FTlRfUFJPUF9SRUFEWV9TVEFURSwKKyAgICBET01fRE9DVU1FTlRfUFJPUF9DSEFS
QUNURVJfU0VULAorICAgIERPTV9ET0NVTUVOVF9QUk9QX1BSRUZFUlJFRF9TVFlMRVNIRUVUX1NF
VCwKKyAgICBET01fRE9DVU1FTlRfUFJPUF9TRUxFQ1RFRF9TVFlMRVNIRUVUX1NFVCwKKyAgICBE
T01fRE9DVU1FTlRfUFJPUF9BQ1RJVkVfRUxFTUVOVCwKKyAgICBET01fRE9DVU1FTlRfUFJPUF9D
T01QQVRfTU9ERSwKKyAgICBET01fRE9DVU1FTlRfUFJPUF9XRUJLSVRfSVNfRlVMTF9TQ1JFRU4s
CisgICAgRE9NX0RPQ1VNRU5UX1BST1BfV0VCS0lUX0ZVTExfU0NSRUVOX0tFWUJPQVJEX0lOUFVU
X0FMTE9XRUQsCisgICAgRE9NX0RPQ1VNRU5UX1BST1BfV0VCS0lUX0NVUlJFTlRfRlVMTF9TQ1JF
RU5fRUxFTUVOVCwKKyAgICBET01fRE9DVU1FTlRfUFJPUF9XRUJLSVRfRlVMTFNDUkVFTl9FTkFC
TEVELAorICAgIERPTV9ET0NVTUVOVF9QUk9QX1dFQktJVF9GVUxMU0NSRUVOX0VMRU1FTlQsCisg
ICAgRE9NX0RPQ1VNRU5UX1BST1BfUE9JTlRFUl9MT0NLX0VMRU1FTlQsCisgICAgRE9NX0RPQ1VN
RU5UX1BST1BfVklTSUJJTElUWV9TVEFURSwKKyAgICBET01fRE9DVU1FTlRfUFJPUF9ISURERU4s
CisgICAgRE9NX0RPQ1VNRU5UX1BST1BfQ1VSUkVOVF9TQ1JJUFQsCisgICAgRE9NX0RPQ1VNRU5U
X1BST1BfT1JJR0lOLAorICAgIERPTV9ET0NVTUVOVF9QUk9QX1NDUk9MTElOR19FTEVNRU5ULAor
ICAgIERPTV9ET0NVTUVOVF9QUk9QX0NISUxEUkVOLAorICAgIERPTV9ET0NVTUVOVF9QUk9QX0ZJ
UlNUX0VMRU1FTlRfQ0hJTEQsCisgICAgRE9NX0RPQ1VNRU5UX1BST1BfTEFTVF9FTEVNRU5UX0NI
SUxELAorICAgIERPTV9ET0NVTUVOVF9QUk9QX0NISUxEX0VMRU1FTlRfQ09VTlQsCit9OworCitz
dGF0aWMgdm9pZCB3ZWJraXRfZG9tX2RvY3VtZW50X3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmpl
Y3QsIGd1aW50IHByb3BlcnR5SWQsIGNvbnN0IEdWYWx1ZSogdmFsdWUsIEdQYXJhbVNwZWMqIHBz
cGVjKQoreworICAgIFdlYktpdERPTURvY3VtZW50KiBzZWxmID0gV0VCS0lUX0RPTV9ET0NVTUVO
VChvYmplY3QpOworCisgICAgc3dpdGNoIChwcm9wZXJ0eUlkKSB7CisgICAgY2FzZSBET01fRE9D
VU1FTlRfUFJPUF9YTUxfVkVSU0lPTjoKKyAgICAgICAgd2Via2l0X2RvbV9kb2N1bWVudF9zZXRf
eG1sX3ZlcnNpb24oc2VsZiwgZ192YWx1ZV9nZXRfc3RyaW5nKHZhbHVlKSwgbnVsbHB0cik7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgRE9NX0RPQ1VNRU5UX1BST1BfWE1MX1NUQU5EQUxPTkU6
CisgICAgICAgIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X3htbF9zdGFuZGFsb25lKHNlbGYsIGdf
dmFsdWVfZ2V0X2Jvb2xlYW4odmFsdWUpLCBudWxscHRyKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBET01fRE9DVU1FTlRfUFJPUF9ET0NVTUVOVF9VUkk6CisgICAgICAgIHdlYmtpdF9kb21f
ZG9jdW1lbnRfc2V0X2RvY3VtZW50X3VyaShzZWxmLCBnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUp
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9USVRMRToKKyAg
ICAgICAgd2Via2l0X2RvbV9kb2N1bWVudF9zZXRfdGl0bGUoc2VsZiwgZ192YWx1ZV9nZXRfc3Ry
aW5nKHZhbHVlKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRE9NX0RPQ1VNRU5UX1BST1Bf
RElSOgorICAgICAgICB3ZWJraXRfZG9tX2RvY3VtZW50X3NldF9kaXIoc2VsZiwgZ192YWx1ZV9n
ZXRfc3RyaW5nKHZhbHVlKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRE9NX0RPQ1VNRU5U
X1BST1BfREVTSUdOX01PREU6CisgICAgICAgIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X2Rlc2ln
bl9tb2RlKHNlbGYsIGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSkpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIERPTV9ET0NVTUVOVF9QUk9QX0NPT0tJRToKKyAgICAgICAgd2Via2l0X2RvbV9k
b2N1bWVudF9zZXRfY29va2llKHNlbGYsIGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSksIG51bGxw
dHIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERPTV9ET0NVTUVOVF9QUk9QX0NIQVJTRVQ6
CisgICAgICAgIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X2NoYXJzZXQoc2VsZiwgZ192YWx1ZV9n
ZXRfc3RyaW5nKHZhbHVlKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRE9NX0RPQ1VNRU5U
X1BST1BfU0VMRUNURURfU1RZTEVTSEVFVF9TRVQ6CisgICAgICAgIHdlYmtpdF9kb21fZG9jdW1l
bnRfc2V0X3NlbGVjdGVkX3N0eWxlc2hlZXRfc2V0KHNlbGYsIGdfdmFsdWVfZ2V0X3N0cmluZyh2
YWx1ZSkpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBHX09CSkVDVF9X
QVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wZXJ0eUlkLCBwc3BlYyk7CisgICAg
ICAgIGJyZWFrOworICAgIH0KK30KKworc3RhdGljIHZvaWQgd2Via2l0X2RvbV9kb2N1bWVudF9n
ZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLCBHVmFsdWUqIHZh
bHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKK3sKKyAgICBXZWJLaXRET01Eb2N1bWVudCogc2VsZiA9
IFdFQktJVF9ET01fRE9DVU1FTlQob2JqZWN0KTsKKworICAgIHN3aXRjaCAocHJvcGVydHlJZCkg
eworICAgIGNhc2UgRE9NX0RPQ1VNRU5UX1BST1BfRE9DVFlQRToKKyAgICAgICAgZ192YWx1ZV9z
ZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kb2N0eXBlKHNlbGYpKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9JTVBMRU1FTlRBVElP
TjoKKyAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRfZG9tX2RvY3VtZW50
X2dldF9pbXBsZW1lbnRhdGlvbihzZWxmKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRE9N
X0RPQ1VNRU5UX1BST1BfRE9DVU1FTlRfRUxFTUVOVDoKKyAgICAgICAgZ192YWx1ZV9zZXRfb2Jq
ZWN0KHZhbHVlLCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kb2N1bWVudF9lbGVtZW50KHNlbGYp
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9JTlBVVF9FTkNP
RElORzoKKyAgICAgICAgZ192YWx1ZV90YWtlX3N0cmluZyh2YWx1ZSwgd2Via2l0X2RvbV9kb2N1
bWVudF9nZXRfaW5wdXRfZW5jb2Rpbmcoc2VsZikpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IERPTV9ET0NVTUVOVF9QUk9QX1hNTF9FTkNPRElORzoKKyAgICAgICAgZ192YWx1ZV90YWtlX3N0
cmluZyh2YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfeG1sX2VuY29kaW5nKHNlbGYpKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9YTUxfVkVSU0lPTjoK
KyAgICAgICAgZ192YWx1ZV90YWtlX3N0cmluZyh2YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVudF9n
ZXRfeG1sX3ZlcnNpb24oc2VsZikpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERPTV9ET0NV
TUVOVF9QUk9QX1hNTF9TVEFOREFMT05FOgorICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZh
bHVlLCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF94bWxfc3RhbmRhbG9uZShzZWxmKSk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgRE9NX0RPQ1VNRU5UX1BST1BfRE9DVU1FTlRfVVJJOgorICAg
ICAgICBnX3ZhbHVlX3Rha2Vfc3RyaW5nKHZhbHVlLCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9k
b2N1bWVudF91cmkoc2VsZikpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERPTV9ET0NVTUVO
VF9QUk9QX0RFRkFVTFRfVklFVzoKKyAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3
ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kZWZhdWx0X3ZpZXcoc2VsZikpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIERPTV9ET0NVTUVOVF9QUk9QX1NUWUxFX1NIRUVUUzoKKyAgICAgICAgZ192
YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9zdHlsZV9zaGVl
dHMoc2VsZikpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERPTV9ET0NVTUVOVF9QUk9QX0NP
TlRFTlRfVFlQRToKKyAgICAgICAgZ192YWx1ZV90YWtlX3N0cmluZyh2YWx1ZSwgd2Via2l0X2Rv
bV9kb2N1bWVudF9nZXRfY29udGVudF90eXBlKHNlbGYpKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBET01fRE9DVU1FTlRfUFJPUF9USVRMRToKKyAgICAgICAgZ192YWx1ZV90YWtlX3N0cmlu
Zyh2YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfdGl0bGUoc2VsZikpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIERPTV9ET0NVTUVOVF9QUk9QX0RJUjoKKyAgICAgICAgZ192YWx1ZV90
YWtlX3N0cmluZyh2YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZGlyKHNlbGYpKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9ERVNJR05fTU9ERToKKyAg
ICAgICAgZ192YWx1ZV90YWtlX3N0cmluZyh2YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRf
ZGVzaWduX21vZGUoc2VsZikpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERPTV9ET0NVTUVO
VF9QUk9QX1JFRkVSUkVSOgorICAgICAgICBnX3ZhbHVlX3Rha2Vfc3RyaW5nKHZhbHVlLCB3ZWJr
aXRfZG9tX2RvY3VtZW50X2dldF9yZWZlcnJlcihzZWxmKSk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgRE9NX0RPQ1VNRU5UX1BST1BfRE9NQUlOOgorICAgICAgICBnX3ZhbHVlX3Rha2Vfc3Ry
aW5nKHZhbHVlLCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kb21haW4oc2VsZikpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIERPTV9ET0NVTUVOVF9QUk9QX1VSTDoKKyAgICAgICAgZ192YWx1
ZV90YWtlX3N0cmluZyh2YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfdXJsKHNlbGYpKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9DT09LSUU6CisgICAg
ICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUsIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2Nv
b2tpZShzZWxmLCBudWxscHRyKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRE9NX0RPQ1VN
RU5UX1BST1BfQk9EWToKKyAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRf
ZG9tX2RvY3VtZW50X2dldF9ib2R5KHNlbGYpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBE
T01fRE9DVU1FTlRfUFJPUF9IRUFEOgorICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QodmFsdWUs
IHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2hlYWQoc2VsZikpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIERPTV9ET0NVTUVOVF9QUk9QX0lNQUdFUzoKKyAgICAgICAgZ192YWx1ZV9zZXRfb2Jq
ZWN0KHZhbHVlLCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9pbWFnZXMoc2VsZikpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIERPTV9ET0NVTUVOVF9QUk9QX0FQUExFVFM6CisgICAgICAgIGdf
dmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfYXBwbGV0cyhz
ZWxmKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRE9NX0RPQ1VNRU5UX1BST1BfTElOS1M6
CisgICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVudF9n
ZXRfbGlua3Moc2VsZikpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERPTV9ET0NVTUVOVF9Q
Uk9QX0ZPUk1TOgorICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIHdlYmtpdF9kb21f
ZG9jdW1lbnRfZ2V0X2Zvcm1zKHNlbGYpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBET01f
RE9DVU1FTlRfUFJPUF9BTkNIT1JTOgorICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QodmFsdWUs
IHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2FuY2hvcnMoc2VsZikpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIERPTV9ET0NVTUVOVF9QUk9QX0VNQkVEUzoKKyAgICAgICAgZ192YWx1ZV9zZXRf
b2JqZWN0KHZhbHVlLCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9lbWJlZHMoc2VsZikpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIERPTV9ET0NVTUVOVF9QUk9QX1BMVUdJTlM6CisgICAgICAg
IGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfcGx1Z2lu
cyhzZWxmKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRE9NX0RPQ1VNRU5UX1BST1BfU0NS
SVBUUzoKKyAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRfZG9tX2RvY3Vt
ZW50X2dldF9zY3JpcHRzKHNlbGYpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBET01fRE9D
VU1FTlRfUFJPUF9MQVNUX01PRElGSUVEOgorICAgICAgICBnX3ZhbHVlX3Rha2Vfc3RyaW5nKHZh
bHVlLCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9sYXN0X21vZGlmaWVkKHNlbGYpKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9DSEFSU0VUOgorICAgICAgICBn
X3ZhbHVlX3Rha2Vfc3RyaW5nKHZhbHVlLCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jaGFyc2V0
KHNlbGYpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9SRUFE
WV9TVEFURToKKyAgICAgICAgZ192YWx1ZV90YWtlX3N0cmluZyh2YWx1ZSwgd2Via2l0X2RvbV9k
b2N1bWVudF9nZXRfcmVhZHlfc3RhdGUoc2VsZikpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IERPTV9ET0NVTUVOVF9QUk9QX0NIQVJBQ1RFUl9TRVQ6CisgICAgICAgIGdfdmFsdWVfdGFrZV9z
dHJpbmcodmFsdWUsIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2NoYXJhY3Rlcl9zZXQoc2VsZikp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERPTV9ET0NVTUVOVF9QUk9QX1BSRUZFUlJFRF9T
VFlMRVNIRUVUX1NFVDoKKyAgICAgICAgZ192YWx1ZV90YWtlX3N0cmluZyh2YWx1ZSwgd2Via2l0
X2RvbV9kb2N1bWVudF9nZXRfcHJlZmVycmVkX3N0eWxlc2hlZXRfc2V0KHNlbGYpKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9TRUxFQ1RFRF9TVFlMRVNIRUVU
X1NFVDoKKyAgICAgICAgZ192YWx1ZV90YWtlX3N0cmluZyh2YWx1ZSwgd2Via2l0X2RvbV9kb2N1
bWVudF9nZXRfc2VsZWN0ZWRfc3R5bGVzaGVldF9zZXQoc2VsZikpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIERPTV9ET0NVTUVOVF9QUk9QX0FDVElWRV9FTEVNRU5UOgorICAgICAgICBnX3Zh
bHVlX3NldF9vYmplY3QodmFsdWUsIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2FjdGl2ZV9lbGVt
ZW50KHNlbGYpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9D
T01QQVRfTU9ERToKKyAgICAgICAgZ192YWx1ZV90YWtlX3N0cmluZyh2YWx1ZSwgd2Via2l0X2Rv
bV9kb2N1bWVudF9nZXRfY29tcGF0X21vZGUoc2VsZikpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIERPTV9ET0NVTUVOVF9QUk9QX1dFQktJVF9JU19GVUxMX1NDUkVFTjoKKyAgICAgICAgZ192
YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Via2l0X2lz
X2Z1bGxzY3JlZW4oc2VsZikpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERPTV9ET0NVTUVO
VF9QUk9QX1dFQktJVF9GVUxMX1NDUkVFTl9LRVlCT0FSRF9JTlBVVF9BTExPV0VEOgorICAgICAg
ICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF93ZWJr
aXRfZnVsbHNjcmVlbl9rZXlib2FyZF9pbnB1dF9hbGxvd2VkKHNlbGYpKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9XRUJLSVRfQ1VSUkVOVF9GVUxMX1NDUkVF
Tl9FTEVNRU5UOgorICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIHdlYmtpdF9kb21f
ZG9jdW1lbnRfZ2V0X3dlYmtpdF9jdXJyZW50X2Z1bGxzY3JlZW5fZWxlbWVudChzZWxmKSk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgRE9NX0RPQ1VNRU5UX1BST1BfV0VCS0lUX0ZVTExTQ1JF
RU5fRU5BQkxFRDoKKyAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0X2Rv
bV9kb2N1bWVudF9nZXRfd2Via2l0X2Z1bGxzY3JlZW5fZW5hYmxlZChzZWxmKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgRE9NX0RPQ1VNRU5UX1BST1BfV0VCS0lUX0ZVTExTQ1JFRU5fRUxF
TUVOVDoKKyAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRfZG9tX2RvY3Vt
ZW50X2dldF93ZWJraXRfZnVsbHNjcmVlbl9lbGVtZW50KHNlbGYpKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9QT0lOVEVSX0xPQ0tfRUxFTUVOVDoKKyAgICAg
ICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9wb2lu
dGVyX2xvY2tfZWxlbWVudChzZWxmKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRE9NX0RP
Q1VNRU5UX1BST1BfVklTSUJJTElUWV9TVEFURToKKyAgICAgICAgZ192YWx1ZV90YWtlX3N0cmlu
Zyh2YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfdmlzaWJpbGl0eV9zdGF0ZShzZWxmKSk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRE9NX0RPQ1VNRU5UX1BST1BfSElEREVOOgorICAg
ICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9o
aWRkZW4oc2VsZikpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERPTV9ET0NVTUVOVF9QUk9Q
X0NVUlJFTlRfU0NSSVBUOgorICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIHdlYmtp
dF9kb21fZG9jdW1lbnRfZ2V0X2N1cnJlbnRfc2NyaXB0KHNlbGYpKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9PUklHSU46CisgICAgICAgIGdfdmFsdWVfdGFr
ZV9zdHJpbmcodmFsdWUsIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X29yaWdpbihzZWxmKSk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgRE9NX0RPQ1VNRU5UX1BST1BfU0NST0xMSU5HX0VMRU1F
TlQ6CisgICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2RvbV9kb2N1bWVu
dF9nZXRfc2Nyb2xsaW5nX2VsZW1lbnQoc2VsZikpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IERPTV9ET0NVTUVOVF9QUk9QX0NISUxEUkVOOgorICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3Qo
dmFsdWUsIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2NoaWxkcmVuKHNlbGYpKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBET01fRE9DVU1FTlRfUFJPUF9GSVJTVF9FTEVNRU5UX0NISUxEOgor
ICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0
X2ZpcnN0X2VsZW1lbnRfY2hpbGQoc2VsZikpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERP
TV9ET0NVTUVOVF9QUk9QX0xBU1RfRUxFTUVOVF9DSElMRDoKKyAgICAgICAgZ192YWx1ZV9zZXRf
b2JqZWN0KHZhbHVlLCB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9sYXN0X2VsZW1lbnRfY2hpbGQo
c2VsZikpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERPTV9ET0NVTUVOVF9QUk9QX0NISUxE
X0VMRU1FTlRfQ09VTlQ6CisgICAgICAgIGdfdmFsdWVfc2V0X3Vsb25nKHZhbHVlLCB3ZWJraXRf
ZG9tX2RvY3VtZW50X2dldF9jaGlsZF9lbGVtZW50X2NvdW50KHNlbGYpKTsKKyAgICAgICAgYnJl
YWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZ
X0lEKG9iamVjdCwgcHJvcGVydHlJZCwgcHNwZWMpOworICAgICAgICBicmVhazsKKyAgICB9Cit9
CisKK3ZvaWQgd2Via2l0RE9NRG9jdW1lbnRJbnN0YWxsUHJvcGVydGllcyhHT2JqZWN0Q2xhc3Mq
IGdvYmplY3RDbGFzcykKK3sKKyAgICBnb2JqZWN0Q2xhc3MtPnNldF9wcm9wZXJ0eSA9IHdlYmtp
dF9kb21fZG9jdW1lbnRfc2V0X3Byb3BlcnR5OworICAgIGdvYmplY3RDbGFzcy0+Z2V0X3Byb3Bl
cnR5ID0gd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfcHJvcGVydHk7CisKKyAgICBnX29iamVjdF9j
bGFzc19pbnN0YWxsX3Byb3BlcnR5KAorICAgICAgICBnb2JqZWN0Q2xhc3MsCisgICAgICAgIERP
TV9ET0NVTUVOVF9QUk9QX0RPQ1RZUEUsCisgICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoCisg
ICAgICAgICAgICAiZG9jdHlwZSIsCisgICAgICAgICAgICAiRG9jdW1lbnQ6ZG9jdHlwZSIsCisg
ICAgICAgICAgICAicmVhZC1vbmx5IFdlYktpdERPTURvY3VtZW50VHlwZSogRG9jdW1lbnQ6ZG9j
dHlwZSIsCisgICAgICAgICAgICBXRUJLSVRfRE9NX1RZUEVfRE9DVU1FTlRfVFlQRSwKKyAgICAg
ICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOworCisgICAgZ19vYmplY3RfY2xhc3NfaW5z
dGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ29iamVjdENsYXNzLAorICAgICAgICBET01fRE9DVU1F
TlRfUFJPUF9JTVBMRU1FTlRBVElPTiwKKyAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgKKyAg
ICAgICAgICAgICJpbXBsZW1lbnRhdGlvbiIsCisgICAgICAgICAgICAiRG9jdW1lbnQ6aW1wbGVt
ZW50YXRpb24iLAorICAgICAgICAgICAgInJlYWQtb25seSBXZWJLaXRET01ET01JbXBsZW1lbnRh
dGlvbiogRG9jdW1lbnQ6aW1wbGVtZW50YXRpb24iLAorICAgICAgICAgICAgV0VCS0lUX0RPTV9U
WVBFX0RPTV9JTVBMRU1FTlRBVElPTiwKKyAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJM
RSkpOworCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ29i
amVjdENsYXNzLAorICAgICAgICBET01fRE9DVU1FTlRfUFJPUF9ET0NVTUVOVF9FTEVNRU5ULAor
ICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KAorICAgICAgICAgICAgImRvY3VtZW50LWVsZW1l
bnQiLAorICAgICAgICAgICAgIkRvY3VtZW50OmRvY3VtZW50LWVsZW1lbnQiLAorICAgICAgICAg
ICAgInJlYWQtb25seSBXZWJLaXRET01FbGVtZW50KiBEb2N1bWVudDpkb2N1bWVudC1lbGVtZW50
IiwKKyAgICAgICAgICAgIFdFQktJVF9ET01fVFlQRV9FTEVNRU5ULAorICAgICAgICAgICAgV0VC
S0lUX1BBUkFNX1JFQURBQkxFKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3Bl
cnR5KAorICAgICAgICBnb2JqZWN0Q2xhc3MsCisgICAgICAgIERPTV9ET0NVTUVOVF9QUk9QX0lO
UFVUX0VOQ09ESU5HLAorICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKAorICAgICAgICAgICAg
ImlucHV0LWVuY29kaW5nIiwKKyAgICAgICAgICAgICJEb2N1bWVudDppbnB1dC1lbmNvZGluZyIs
CisgICAgICAgICAgICAicmVhZC1vbmx5IGdjaGFyKiBEb2N1bWVudDppbnB1dC1lbmNvZGluZyIs
CisgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwor
CisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ29iamVjdENs
YXNzLAorICAgICAgICBET01fRE9DVU1FTlRfUFJPUF9YTUxfRU5DT0RJTkcsCisgICAgICAgIGdf
cGFyYW1fc3BlY19zdHJpbmcoCisgICAgICAgICAgICAieG1sLWVuY29kaW5nIiwKKyAgICAgICAg
ICAgICJEb2N1bWVudDp4bWwtZW5jb2RpbmciLAorICAgICAgICAgICAgInJlYWQtb25seSBnY2hh
ciogRG9jdW1lbnQ6eG1sLWVuY29kaW5nIiwKKyAgICAgICAgICAgICIiLAorICAgICAgICAgICAg
V0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3By
b3BlcnR5KAorICAgICAgICBnb2JqZWN0Q2xhc3MsCisgICAgICAgIERPTV9ET0NVTUVOVF9QUk9Q
X1hNTF9WRVJTSU9OLAorICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKAorICAgICAgICAgICAg
InhtbC12ZXJzaW9uIiwKKyAgICAgICAgICAgICJEb2N1bWVudDp4bWwtdmVyc2lvbiIsCisgICAg
ICAgICAgICAicmVhZC13cml0ZSBnY2hhciogRG9jdW1lbnQ6eG1sLXZlcnNpb24iLAorICAgICAg
ICAgICAgIiIsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CisKKyAgICBn
X29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAorICAgICAgICBnb2JqZWN0Q2xhc3MsCisg
ICAgICAgIERPTV9ET0NVTUVOVF9QUk9QX1hNTF9TVEFOREFMT05FLAorICAgICAgICBnX3BhcmFt
X3NwZWNfYm9vbGVhbigKKyAgICAgICAgICAgICJ4bWwtc3RhbmRhbG9uZSIsCisgICAgICAgICAg
ICAiRG9jdW1lbnQ6eG1sLXN0YW5kYWxvbmUiLAorICAgICAgICAgICAgInJlYWQtd3JpdGUgZ2Jv
b2xlYW4gRG9jdW1lbnQ6eG1sLXN0YW5kYWxvbmUiLAorICAgICAgICAgICAgRkFMU0UsCisgICAg
ICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19p
bnN0YWxsX3Byb3BlcnR5KAorICAgICAgICBnb2JqZWN0Q2xhc3MsCisgICAgICAgIERPTV9ET0NV
TUVOVF9QUk9QX0RPQ1VNRU5UX1VSSSwKKyAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygKKyAg
ICAgICAgICAgICJkb2N1bWVudC11cmkiLAorICAgICAgICAgICAgIkRvY3VtZW50OmRvY3VtZW50
LXVyaSIsCisgICAgICAgICAgICAicmVhZC13cml0ZSBnY2hhciogRG9jdW1lbnQ6ZG9jdW1lbnQt
dXJpIiwKKyAgICAgICAgICAgICIiLAorICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURXUklU
RSkpOworCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ29i
amVjdENsYXNzLAorICAgICAgICBET01fRE9DVU1FTlRfUFJPUF9ERUZBVUxUX1ZJRVcsCisgICAg
ICAgIGdfcGFyYW1fc3BlY19vYmplY3QoCisgICAgICAgICAgICAiZGVmYXVsdC12aWV3IiwKKyAg
ICAgICAgICAgICJEb2N1bWVudDpkZWZhdWx0LXZpZXciLAorICAgICAgICAgICAgInJlYWQtb25s
eSBXZWJLaXRET01ET01XaW5kb3cqIERvY3VtZW50OmRlZmF1bHQtdmlldyIsCisgICAgICAgICAg
ICBXRUJLSVRfRE9NX1RZUEVfRE9NX1dJTkRPVywKKyAgICAgICAgICAgIFdFQktJVF9QQVJBTV9S
RUFEQUJMRSkpOworCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAg
ICAgZ29iamVjdENsYXNzLAorICAgICAgICBET01fRE9DVU1FTlRfUFJPUF9TVFlMRV9TSEVFVFMs
CisgICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoCisgICAgICAgICAgICAic3R5bGUtc2hlZXRz
IiwKKyAgICAgICAgICAgICJEb2N1bWVudDpzdHlsZS1zaGVldHMiLAorICAgICAgICAgICAgInJl
YWQtb25seSBXZWJLaXRET01TdHlsZVNoZWV0TGlzdCogRG9jdW1lbnQ6c3R5bGUtc2hlZXRzIiwK
KyAgICAgICAgICAgIFdFQktJVF9ET01fVFlQRV9TVFlMRV9TSEVFVF9MSVNULAorICAgICAgICAg
ICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxs
X3Byb3BlcnR5KAorICAgICAgICBnb2JqZWN0Q2xhc3MsCisgICAgICAgIERPTV9ET0NVTUVOVF9Q
Uk9QX0NPTlRFTlRfVFlQRSwKKyAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygKKyAgICAgICAg
ICAgICJjb250ZW50LXR5cGUiLAorICAgICAgICAgICAgIkRvY3VtZW50OmNvbnRlbnQtdHlwZSIs
CisgICAgICAgICAgICAicmVhZC1vbmx5IGdjaGFyKiBEb2N1bWVudDpjb250ZW50LXR5cGUiLAor
ICAgICAgICAgICAgIiIsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKKwor
ICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCisgICAgICAgIGdvYmplY3RDbGFz
cywKKyAgICAgICAgRE9NX0RPQ1VNRU5UX1BST1BfVElUTEUsCisgICAgICAgIGdfcGFyYW1fc3Bl
Y19zdHJpbmcoCisgICAgICAgICAgICAidGl0bGUiLAorICAgICAgICAgICAgIkRvY3VtZW50OnRp
dGxlIiwKKyAgICAgICAgICAgICJyZWFkLXdyaXRlIGdjaGFyKiBEb2N1bWVudDp0aXRsZSIsCisg
ICAgICAgICAgICAiIiwKKyAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKKwor
ICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCisgICAgICAgIGdvYmplY3RDbGFz
cywKKyAgICAgICAgRE9NX0RPQ1VNRU5UX1BST1BfRElSLAorICAgICAgICBnX3BhcmFtX3NwZWNf
c3RyaW5nKAorICAgICAgICAgICAgImRpciIsCisgICAgICAgICAgICAiRG9jdW1lbnQ6ZGlyIiwK
KyAgICAgICAgICAgICJyZWFkLXdyaXRlIGdjaGFyKiBEb2N1bWVudDpkaXIiLAorICAgICAgICAg
ICAgIiIsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CisKKyAgICBnX29i
amVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAorICAgICAgICBnb2JqZWN0Q2xhc3MsCisgICAg
ICAgIERPTV9ET0NVTUVOVF9QUk9QX0RFU0lHTl9NT0RFLAorICAgICAgICBnX3BhcmFtX3NwZWNf
c3RyaW5nKAorICAgICAgICAgICAgImRlc2lnbi1tb2RlIiwKKyAgICAgICAgICAgICJEb2N1bWVu
dDpkZXNpZ24tbW9kZSIsCisgICAgICAgICAgICAicmVhZC13cml0ZSBnY2hhciogRG9jdW1lbnQ6
ZGVzaWduLW1vZGUiLAorICAgICAgICAgICAgIiIsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1f
UkVBRFdSSVRFKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAorICAg
ICAgICBnb2JqZWN0Q2xhc3MsCisgICAgICAgIERPTV9ET0NVTUVOVF9QUk9QX1JFRkVSUkVSLAor
ICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKAorICAgICAgICAgICAgInJlZmVycmVyIiwKKyAg
ICAgICAgICAgICJEb2N1bWVudDpyZWZlcnJlciIsCisgICAgICAgICAgICAicmVhZC1vbmx5IGdj
aGFyKiBEb2N1bWVudDpyZWZlcnJlciIsCisgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgIFdF
QktJVF9QQVJBTV9SRUFEQUJMRSkpOworCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9w
ZXJ0eSgKKyAgICAgICAgZ29iamVjdENsYXNzLAorICAgICAgICBET01fRE9DVU1FTlRfUFJPUF9E
T01BSU4sCisgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoCisgICAgICAgICAgICAiZG9tYWlu
IiwKKyAgICAgICAgICAgICJEb2N1bWVudDpkb21haW4iLAorICAgICAgICAgICAgInJlYWQtb25s
eSBnY2hhciogRG9jdW1lbnQ6ZG9tYWluIiwKKyAgICAgICAgICAgICIiLAorICAgICAgICAgICAg
V0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3By
b3BlcnR5KAorICAgICAgICBnb2JqZWN0Q2xhc3MsCisgICAgICAgIERPTV9ET0NVTUVOVF9QUk9Q
X1VSTCwKKyAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygKKyAgICAgICAgICAgICJ1cmwiLAor
ICAgICAgICAgICAgIkRvY3VtZW50OnVybCIsCisgICAgICAgICAgICAicmVhZC1vbmx5IGdjaGFy
KiBEb2N1bWVudDp1cmwiLAorICAgICAgICAgICAgIiIsCisgICAgICAgICAgICBXRUJLSVRfUEFS
QU1fUkVBREFCTEUpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCisg
ICAgICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgRE9NX0RPQ1VNRU5UX1BST1BfQ09PS0lFLAor
ICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKAorICAgICAgICAgICAgImNvb2tpZSIsCisgICAg
ICAgICAgICAiRG9jdW1lbnQ6Y29va2llIiwKKyAgICAgICAgICAgICJyZWFkLXdyaXRlIGdjaGFy
KiBEb2N1bWVudDpjb29raWUiLAorICAgICAgICAgICAgIiIsCisgICAgICAgICAgICBXRUJLSVRf
UEFSQU1fUkVBRFdSSVRFKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5
KAorICAgICAgICBnb2JqZWN0Q2xhc3MsCisgICAgICAgIERPTV9ET0NVTUVOVF9QUk9QX0JPRFks
CisgICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoCisgICAgICAgICAgICAiYm9keSIsCisgICAg
ICAgICAgICAiRG9jdW1lbnQ6Ym9keSIsCisgICAgICAgICAgICAicmVhZC1vbmx5IFdlYktpdERP
TUhUTUxFbGVtZW50KiBEb2N1bWVudDpib2R5IiwKKyAgICAgICAgICAgIFdFQktJVF9ET01fVFlQ
RV9IVE1MX0VMRU1FTlQsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKKwor
ICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCisgICAgICAgIGdvYmplY3RDbGFz
cywKKyAgICAgICAgRE9NX0RPQ1VNRU5UX1BST1BfSEVBRCwKKyAgICAgICAgZ19wYXJhbV9zcGVj
X29iamVjdCgKKyAgICAgICAgICAgICJoZWFkIiwKKyAgICAgICAgICAgICJEb2N1bWVudDpoZWFk
IiwKKyAgICAgICAgICAgICJyZWFkLW9ubHkgV2ViS2l0RE9NSFRNTEhlYWRFbGVtZW50KiBEb2N1
bWVudDpoZWFkIiwKKyAgICAgICAgICAgIFdFQktJVF9ET01fVFlQRV9IVE1MX0hFQURfRUxFTUVO
VCwKKyAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOworCisgICAgZ19vYmplY3Rf
Y2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ29iamVjdENsYXNzLAorICAgICAgICBE
T01fRE9DVU1FTlRfUFJPUF9JTUFHRVMsCisgICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoCisg
ICAgICAgICAgICAiaW1hZ2VzIiwKKyAgICAgICAgICAgICJEb2N1bWVudDppbWFnZXMiLAorICAg
ICAgICAgICAgInJlYWQtb25seSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbiogRG9jdW1lbnQ6aW1h
Z2VzIiwKKyAgICAgICAgICAgIFdFQktJVF9ET01fVFlQRV9IVE1MX0NPTExFQ1RJT04sCisgICAg
ICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2lu
c3RhbGxfcHJvcGVydHkoCisgICAgICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgRE9NX0RPQ1VN
RU5UX1BST1BfQVBQTEVUUywKKyAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgKKyAgICAgICAg
ICAgICJhcHBsZXRzIiwKKyAgICAgICAgICAgICJEb2N1bWVudDphcHBsZXRzIiwKKyAgICAgICAg
ICAgICJyZWFkLW9ubHkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qIERvY3VtZW50OmFwcGxldHMi
LAorICAgICAgICAgICAgV0VCS0lUX0RPTV9UWVBFX0hUTUxfQ09MTEVDVElPTiwKKyAgICAgICAg
ICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOworCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFs
bF9wcm9wZXJ0eSgKKyAgICAgICAgZ29iamVjdENsYXNzLAorICAgICAgICBET01fRE9DVU1FTlRf
UFJPUF9MSU5LUywKKyAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgKKyAgICAgICAgICAgICJs
aW5rcyIsCisgICAgICAgICAgICAiRG9jdW1lbnQ6bGlua3MiLAorICAgICAgICAgICAgInJlYWQt
b25seSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbiogRG9jdW1lbnQ6bGlua3MiLAorICAgICAgICAg
ICAgV0VCS0lUX0RPTV9UWVBFX0hUTUxfQ09MTEVDVElPTiwKKyAgICAgICAgICAgIFdFQktJVF9Q
QVJBTV9SRUFEQUJMRSkpOworCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgK
KyAgICAgICAgZ29iamVjdENsYXNzLAorICAgICAgICBET01fRE9DVU1FTlRfUFJPUF9GT1JNUywK
KyAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgKKyAgICAgICAgICAgICJmb3JtcyIsCisgICAg
ICAgICAgICAiRG9jdW1lbnQ6Zm9ybXMiLAorICAgICAgICAgICAgInJlYWQtb25seSBXZWJLaXRE
T01IVE1MQ29sbGVjdGlvbiogRG9jdW1lbnQ6Zm9ybXMiLAorICAgICAgICAgICAgV0VCS0lUX0RP
TV9UWVBFX0hUTUxfQ09MTEVDVElPTiwKKyAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJM
RSkpOworCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ29i
amVjdENsYXNzLAorICAgICAgICBET01fRE9DVU1FTlRfUFJPUF9BTkNIT1JTLAorICAgICAgICBn
X3BhcmFtX3NwZWNfb2JqZWN0KAorICAgICAgICAgICAgImFuY2hvcnMiLAorICAgICAgICAgICAg
IkRvY3VtZW50OmFuY2hvcnMiLAorICAgICAgICAgICAgInJlYWQtb25seSBXZWJLaXRET01IVE1M
Q29sbGVjdGlvbiogRG9jdW1lbnQ6YW5jaG9ycyIsCisgICAgICAgICAgICBXRUJLSVRfRE9NX1RZ
UEVfSFRNTF9DT0xMRUNUSU9OLAorICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7
CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAorICAgICAgICBnb2JqZWN0
Q2xhc3MsCisgICAgICAgIERPTV9ET0NVTUVOVF9QUk9QX0VNQkVEUywKKyAgICAgICAgZ19wYXJh
bV9zcGVjX29iamVjdCgKKyAgICAgICAgICAgICJlbWJlZHMiLAorICAgICAgICAgICAgIkRvY3Vt
ZW50OmVtYmVkcyIsCisgICAgICAgICAgICAicmVhZC1vbmx5IFdlYktpdERPTUhUTUxDb2xsZWN0
aW9uKiBEb2N1bWVudDplbWJlZHMiLAorICAgICAgICAgICAgV0VCS0lUX0RPTV9UWVBFX0hUTUxf
Q09MTEVDVElPTiwKKyAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOworCisgICAg
Z19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ29iamVjdENsYXNzLAor
ICAgICAgICBET01fRE9DVU1FTlRfUFJPUF9QTFVHSU5TLAorICAgICAgICBnX3BhcmFtX3NwZWNf
b2JqZWN0KAorICAgICAgICAgICAgInBsdWdpbnMiLAorICAgICAgICAgICAgIkRvY3VtZW50OnBs
dWdpbnMiLAorICAgICAgICAgICAgInJlYWQtb25seSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbiog
RG9jdW1lbnQ6cGx1Z2lucyIsCisgICAgICAgICAgICBXRUJLSVRfRE9NX1RZUEVfSFRNTF9DT0xM
RUNUSU9OLAorICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisKKyAgICBnX29i
amVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAorICAgICAgICBnb2JqZWN0Q2xhc3MsCisgICAg
ICAgIERPTV9ET0NVTUVOVF9QUk9QX1NDUklQVFMsCisgICAgICAgIGdfcGFyYW1fc3BlY19vYmpl
Y3QoCisgICAgICAgICAgICAic2NyaXB0cyIsCisgICAgICAgICAgICAiRG9jdW1lbnQ6c2NyaXB0
cyIsCisgICAgICAgICAgICAicmVhZC1vbmx5IFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKiBEb2N1
bWVudDpzY3JpcHRzIiwKKyAgICAgICAgICAgIFdFQktJVF9ET01fVFlQRV9IVE1MX0NPTExFQ1RJ
T04sCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKKworICAgIGdfb2JqZWN0
X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCisgICAgICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAg
RE9NX0RPQ1VNRU5UX1BST1BfTEFTVF9NT0RJRklFRCwKKyAgICAgICAgZ19wYXJhbV9zcGVjX3N0
cmluZygKKyAgICAgICAgICAgICJsYXN0LW1vZGlmaWVkIiwKKyAgICAgICAgICAgICJEb2N1bWVu
dDpsYXN0LW1vZGlmaWVkIiwKKyAgICAgICAgICAgICJyZWFkLW9ubHkgZ2NoYXIqIERvY3VtZW50
Omxhc3QtbW9kaWZpZWQiLAorICAgICAgICAgICAgIiIsCisgICAgICAgICAgICBXRUJLSVRfUEFS
QU1fUkVBREFCTEUpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCisg
ICAgICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgRE9NX0RPQ1VNRU5UX1BST1BfQ0hBUlNFVCwK
KyAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygKKyAgICAgICAgICAgICJjaGFyc2V0IiwKKyAg
ICAgICAgICAgICJEb2N1bWVudDpjaGFyc2V0IiwKKyAgICAgICAgICAgICJyZWFkLXdyaXRlIGdj
aGFyKiBEb2N1bWVudDpjaGFyc2V0IiwKKyAgICAgICAgICAgICIiLAorICAgICAgICAgICAgV0VC
S0lUX1BBUkFNX1JFQURXUklURSkpOworCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9w
ZXJ0eSgKKyAgICAgICAgZ29iamVjdENsYXNzLAorICAgICAgICBET01fRE9DVU1FTlRfUFJPUF9S
RUFEWV9TVEFURSwKKyAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygKKyAgICAgICAgICAgICJy
ZWFkeS1zdGF0ZSIsCisgICAgICAgICAgICAiRG9jdW1lbnQ6cmVhZHktc3RhdGUiLAorICAgICAg
ICAgICAgInJlYWQtb25seSBnY2hhciogRG9jdW1lbnQ6cmVhZHktc3RhdGUiLAorICAgICAgICAg
ICAgIiIsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKKworICAgIGdfb2Jq
ZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCisgICAgICAgIGdvYmplY3RDbGFzcywKKyAgICAg
ICAgRE9NX0RPQ1VNRU5UX1BST1BfQ0hBUkFDVEVSX1NFVCwKKyAgICAgICAgZ19wYXJhbV9zcGVj
X3N0cmluZygKKyAgICAgICAgICAgICJjaGFyYWN0ZXItc2V0IiwKKyAgICAgICAgICAgICJEb2N1
bWVudDpjaGFyYWN0ZXItc2V0IiwKKyAgICAgICAgICAgICJyZWFkLW9ubHkgZ2NoYXIqIERvY3Vt
ZW50OmNoYXJhY3Rlci1zZXQiLAorICAgICAgICAgICAgIiIsCisgICAgICAgICAgICBXRUJLSVRf
UEFSQU1fUkVBREFCTEUpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHko
CisgICAgICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgRE9NX0RPQ1VNRU5UX1BST1BfUFJFRkVS
UkVEX1NUWUxFU0hFRVRfU0VULAorICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKAorICAgICAg
ICAgICAgInByZWZlcnJlZC1zdHlsZXNoZWV0LXNldCIsCisgICAgICAgICAgICAiRG9jdW1lbnQ6
cHJlZmVycmVkLXN0eWxlc2hlZXQtc2V0IiwKKyAgICAgICAgICAgICJyZWFkLW9ubHkgZ2NoYXIq
IERvY3VtZW50OnByZWZlcnJlZC1zdHlsZXNoZWV0LXNldCIsCisgICAgICAgICAgICAiIiwKKyAg
ICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOworCisgICAgZ19vYmplY3RfY2xhc3Nf
aW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ29iamVjdENsYXNzLAorICAgICAgICBET01fRE9D
VU1FTlRfUFJPUF9TRUxFQ1RFRF9TVFlMRVNIRUVUX1NFVCwKKyAgICAgICAgZ19wYXJhbV9zcGVj
X3N0cmluZygKKyAgICAgICAgICAgICJzZWxlY3RlZC1zdHlsZXNoZWV0LXNldCIsCisgICAgICAg
ICAgICAiRG9jdW1lbnQ6c2VsZWN0ZWQtc3R5bGVzaGVldC1zZXQiLAorICAgICAgICAgICAgInJl
YWQtd3JpdGUgZ2NoYXIqIERvY3VtZW50OnNlbGVjdGVkLXN0eWxlc2hlZXQtc2V0IiwKKyAgICAg
ICAgICAgICIiLAorICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSkpOworCisgICAg
Z19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ29iamVjdENsYXNzLAor
ICAgICAgICBET01fRE9DVU1FTlRfUFJPUF9BQ1RJVkVfRUxFTUVOVCwKKyAgICAgICAgZ19wYXJh
bV9zcGVjX29iamVjdCgKKyAgICAgICAgICAgICJhY3RpdmUtZWxlbWVudCIsCisgICAgICAgICAg
ICAiRG9jdW1lbnQ6YWN0aXZlLWVsZW1lbnQiLAorICAgICAgICAgICAgInJlYWQtb25seSBXZWJL
aXRET01FbGVtZW50KiBEb2N1bWVudDphY3RpdmUtZWxlbWVudCIsCisgICAgICAgICAgICBXRUJL
SVRfRE9NX1RZUEVfRUxFTUVOVCwKKyAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkp
OworCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ29iamVj
dENsYXNzLAorICAgICAgICBET01fRE9DVU1FTlRfUFJPUF9DT01QQVRfTU9ERSwKKyAgICAgICAg
Z19wYXJhbV9zcGVjX3N0cmluZygKKyAgICAgICAgICAgICJjb21wYXQtbW9kZSIsCisgICAgICAg
ICAgICAiRG9jdW1lbnQ6Y29tcGF0LW1vZGUiLAorICAgICAgICAgICAgInJlYWQtb25seSBnY2hh
ciogRG9jdW1lbnQ6Y29tcGF0LW1vZGUiLAorICAgICAgICAgICAgIiIsCisgICAgICAgICAgICBX
RUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJv
cGVydHkoCisgICAgICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgRE9NX0RPQ1VNRU5UX1BST1Bf
V0VCS0lUX0lTX0ZVTExfU0NSRUVOLAorICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigKKyAg
ICAgICAgICAgICJ3ZWJraXQtaXMtZnVsbC1zY3JlZW4iLAorICAgICAgICAgICAgIkRvY3VtZW50
OndlYmtpdC1pcy1mdWxsLXNjcmVlbiIsCisgICAgICAgICAgICAicmVhZC1vbmx5IGdib29sZWFu
IERvY3VtZW50OndlYmtpdC1pcy1mdWxsLXNjcmVlbiIsCisgICAgICAgICAgICBGQUxTRSwKKyAg
ICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOworCisgICAgZ19vYmplY3RfY2xhc3Nf
aW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ29iamVjdENsYXNzLAorICAgICAgICBET01fRE9D
VU1FTlRfUFJPUF9XRUJLSVRfRlVMTF9TQ1JFRU5fS0VZQk9BUkRfSU5QVVRfQUxMT1dFRCwKKyAg
ICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oCisgICAgICAgICAgICAid2Via2l0LWZ1bGwtc2Ny
ZWVuLWtleWJvYXJkLWlucHV0LWFsbG93ZWQiLAorICAgICAgICAgICAgIkRvY3VtZW50OndlYmtp
dC1mdWxsLXNjcmVlbi1rZXlib2FyZC1pbnB1dC1hbGxvd2VkIiwKKyAgICAgICAgICAgICJyZWFk
LW9ubHkgZ2Jvb2xlYW4gRG9jdW1lbnQ6d2Via2l0LWZ1bGwtc2NyZWVuLWtleWJvYXJkLWlucHV0
LWFsbG93ZWQiLAorICAgICAgICAgICAgRkFMU0UsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1f
UkVBREFCTEUpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCisgICAg
ICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgRE9NX0RPQ1VNRU5UX1BST1BfV0VCS0lUX0NVUlJF
TlRfRlVMTF9TQ1JFRU5fRUxFTUVOVCwKKyAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgKKyAg
ICAgICAgICAgICJ3ZWJraXQtY3VycmVudC1mdWxsLXNjcmVlbi1lbGVtZW50IiwKKyAgICAgICAg
ICAgICJEb2N1bWVudDp3ZWJraXQtY3VycmVudC1mdWxsLXNjcmVlbi1lbGVtZW50IiwKKyAgICAg
ICAgICAgICJyZWFkLW9ubHkgV2ViS2l0RE9NRWxlbWVudCogRG9jdW1lbnQ6d2Via2l0LWN1cnJl
bnQtZnVsbC1zY3JlZW4tZWxlbWVudCIsCisgICAgICAgICAgICBXRUJLSVRfRE9NX1RZUEVfRUxF
TUVOVCwKKyAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOworCisgICAgZ19vYmpl
Y3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ29iamVjdENsYXNzLAorICAgICAg
ICBET01fRE9DVU1FTlRfUFJPUF9XRUJLSVRfRlVMTFNDUkVFTl9FTkFCTEVELAorICAgICAgICBn
X3BhcmFtX3NwZWNfYm9vbGVhbigKKyAgICAgICAgICAgICJ3ZWJraXQtZnVsbHNjcmVlbi1lbmFi
bGVkIiwKKyAgICAgICAgICAgICJEb2N1bWVudDp3ZWJraXQtZnVsbHNjcmVlbi1lbmFibGVkIiwK
KyAgICAgICAgICAgICJyZWFkLW9ubHkgZ2Jvb2xlYW4gRG9jdW1lbnQ6d2Via2l0LWZ1bGxzY3Jl
ZW4tZW5hYmxlZCIsCisgICAgICAgICAgICBGQUxTRSwKKyAgICAgICAgICAgIFdFQktJVF9QQVJB
TV9SRUFEQUJMRSkpOworCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAg
ICAgICAgZ29iamVjdENsYXNzLAorICAgICAgICBET01fRE9DVU1FTlRfUFJPUF9XRUJLSVRfRlVM
TFNDUkVFTl9FTEVNRU5ULAorICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KAorICAgICAgICAg
ICAgIndlYmtpdC1mdWxsc2NyZWVuLWVsZW1lbnQiLAorICAgICAgICAgICAgIkRvY3VtZW50Ondl
YmtpdC1mdWxsc2NyZWVuLWVsZW1lbnQiLAorICAgICAgICAgICAgInJlYWQtb25seSBXZWJLaXRE
T01FbGVtZW50KiBEb2N1bWVudDp3ZWJraXQtZnVsbHNjcmVlbi1lbGVtZW50IiwKKyAgICAgICAg
ICAgIFdFQktJVF9ET01fVFlQRV9FTEVNRU5ULAorICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JF
QURBQkxFKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAorICAgICAg
ICBnb2JqZWN0Q2xhc3MsCisgICAgICAgIERPTV9ET0NVTUVOVF9QUk9QX1BPSU5URVJfTE9DS19F
TEVNRU5ULAorICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KAorICAgICAgICAgICAgInBvaW50
ZXItbG9jay1lbGVtZW50IiwKKyAgICAgICAgICAgICJEb2N1bWVudDpwb2ludGVyLWxvY2stZWxl
bWVudCIsCisgICAgICAgICAgICAicmVhZC1vbmx5IFdlYktpdERPTUVsZW1lbnQqIERvY3VtZW50
OnBvaW50ZXItbG9jay1lbGVtZW50IiwKKyAgICAgICAgICAgIFdFQktJVF9ET01fVFlQRV9FTEVN
RU5ULAorICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisKKyAgICBnX29iamVj
dF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAorICAgICAgICBnb2JqZWN0Q2xhc3MsCisgICAgICAg
IERPTV9ET0NVTUVOVF9QUk9QX1ZJU0lCSUxJVFlfU1RBVEUsCisgICAgICAgIGdfcGFyYW1fc3Bl
Y19zdHJpbmcoCisgICAgICAgICAgICAidmlzaWJpbGl0eS1zdGF0ZSIsCisgICAgICAgICAgICAi
RG9jdW1lbnQ6dmlzaWJpbGl0eS1zdGF0ZSIsCisgICAgICAgICAgICAicmVhZC1vbmx5IGdjaGFy
KiBEb2N1bWVudDp2aXNpYmlsaXR5LXN0YXRlIiwKKyAgICAgICAgICAgICIiLAorICAgICAgICAg
ICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxs
X3Byb3BlcnR5KAorICAgICAgICBnb2JqZWN0Q2xhc3MsCisgICAgICAgIERPTV9ET0NVTUVOVF9Q
Uk9QX0hJRERFTiwKKyAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oCisgICAgICAgICAgICAi
aGlkZGVuIiwKKyAgICAgICAgICAgICJEb2N1bWVudDpoaWRkZW4iLAorICAgICAgICAgICAgInJl
YWQtb25seSBnYm9vbGVhbiBEb2N1bWVudDpoaWRkZW4iLAorICAgICAgICAgICAgRkFMU0UsCisg
ICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKKworICAgIGdfb2JqZWN0X2NsYXNz
X2luc3RhbGxfcHJvcGVydHkoCisgICAgICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgRE9NX0RP
Q1VNRU5UX1BST1BfQ1VSUkVOVF9TQ1JJUFQsCisgICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3Qo
CisgICAgICAgICAgICAiY3VycmVudC1zY3JpcHQiLAorICAgICAgICAgICAgIkRvY3VtZW50OmN1
cnJlbnQtc2NyaXB0IiwKKyAgICAgICAgICAgICJyZWFkLW9ubHkgV2ViS2l0RE9NSFRNTFNjcmlw
dEVsZW1lbnQqIERvY3VtZW50OmN1cnJlbnQtc2NyaXB0IiwKKyAgICAgICAgICAgIFdFQktJVF9E
T01fVFlQRV9IVE1MX1NDUklQVF9FTEVNRU5ULAorICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JF
QURBQkxFKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAorICAgICAg
ICBnb2JqZWN0Q2xhc3MsCisgICAgICAgIERPTV9ET0NVTUVOVF9QUk9QX09SSUdJTiwKKyAgICAg
ICAgZ19wYXJhbV9zcGVjX3N0cmluZygKKyAgICAgICAgICAgICJvcmlnaW4iLAorICAgICAgICAg
ICAgIkRvY3VtZW50Om9yaWdpbiIsCisgICAgICAgICAgICAicmVhZC1vbmx5IGdjaGFyKiBEb2N1
bWVudDpvcmlnaW4iLAorICAgICAgICAgICAgIiIsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1f
UkVBREFCTEUpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCisgICAg
ICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgRE9NX0RPQ1VNRU5UX1BST1BfU0NST0xMSU5HX0VM
RU1FTlQsCisgICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoCisgICAgICAgICAgICAic2Nyb2xs
aW5nLWVsZW1lbnQiLAorICAgICAgICAgICAgIkRvY3VtZW50OnNjcm9sbGluZy1lbGVtZW50IiwK
KyAgICAgICAgICAgICJyZWFkLW9ubHkgV2ViS2l0RE9NRWxlbWVudCogRG9jdW1lbnQ6c2Nyb2xs
aW5nLWVsZW1lbnQiLAorICAgICAgICAgICAgV0VCS0lUX0RPTV9UWVBFX0VMRU1FTlQsCisgICAg
ICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2lu
c3RhbGxfcHJvcGVydHkoCisgICAgICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgRE9NX0RPQ1VN
RU5UX1BST1BfQ0hJTERSRU4sCisgICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoCisgICAgICAg
ICAgICAiY2hpbGRyZW4iLAorICAgICAgICAgICAgIkRvY3VtZW50OmNoaWxkcmVuIiwKKyAgICAg
ICAgICAgICJyZWFkLW9ubHkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qIERvY3VtZW50OmNoaWxk
cmVuIiwKKyAgICAgICAgICAgIFdFQktJVF9ET01fVFlQRV9IVE1MX0NPTExFQ1RJT04sCisgICAg
ICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2lu
c3RhbGxfcHJvcGVydHkoCisgICAgICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgRE9NX0RPQ1VN
RU5UX1BST1BfRklSU1RfRUxFTUVOVF9DSElMRCwKKyAgICAgICAgZ19wYXJhbV9zcGVjX29iamVj
dCgKKyAgICAgICAgICAgICJmaXJzdC1lbGVtZW50LWNoaWxkIiwKKyAgICAgICAgICAgICJEb2N1
bWVudDpmaXJzdC1lbGVtZW50LWNoaWxkIiwKKyAgICAgICAgICAgICJyZWFkLW9ubHkgV2ViS2l0
RE9NRWxlbWVudCogRG9jdW1lbnQ6Zmlyc3QtZWxlbWVudC1jaGlsZCIsCisgICAgICAgICAgICBX
RUJLSVRfRE9NX1RZUEVfRUxFTUVOVCwKKyAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJM
RSkpOworCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ29i
amVjdENsYXNzLAorICAgICAgICBET01fRE9DVU1FTlRfUFJPUF9MQVNUX0VMRU1FTlRfQ0hJTEQs
CisgICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoCisgICAgICAgICAgICAibGFzdC1lbGVtZW50
LWNoaWxkIiwKKyAgICAgICAgICAgICJEb2N1bWVudDpsYXN0LWVsZW1lbnQtY2hpbGQiLAorICAg
ICAgICAgICAgInJlYWQtb25seSBXZWJLaXRET01FbGVtZW50KiBEb2N1bWVudDpsYXN0LWVsZW1l
bnQtY2hpbGQiLAorICAgICAgICAgICAgV0VCS0lUX0RPTV9UWVBFX0VMRU1FTlQsCisgICAgICAg
ICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3Rh
bGxfcHJvcGVydHkoCisgICAgICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgRE9NX0RPQ1VNRU5U
X1BST1BfQ0hJTERfRUxFTUVOVF9DT1VOVCwKKyAgICAgICAgZ19wYXJhbV9zcGVjX3Vsb25nKAor
ICAgICAgICAgICAgImNoaWxkLWVsZW1lbnQtY291bnQiLAorICAgICAgICAgICAgIkRvY3VtZW50
OmNoaWxkLWVsZW1lbnQtY291bnQiLAorICAgICAgICAgICAgInJlYWQtb25seSBndWxvbmcgRG9j
dW1lbnQ6Y2hpbGQtZWxlbWVudC1jb3VudCIsCisgICAgICAgICAgICAwLCBHX01BWFVMT05HLCAw
LAorICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisKK30KKworV2ViS2l0RE9N
RWxlbWVudCogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfZWxlbWVudChXZWJLaXRET01Eb2N1
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHRhZ05hbWUsIEdFcnJvcioqIGVycm9yKQoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxf
aWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKKyAgICBnX3JldHVybl92
YWxfaWZfZmFpbCh0YWdOYW1lLCAwKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCghZXJyb3Ig
fHwgISplcnJvciwgMCk7CisgICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNv
cmUoc2VsZik7CisgICAgV1RGOjpTdHJpbmcgY29udmVydGVkVGFnTmFtZSA9IFdURjo6U3RyaW5n
Ojpmcm9tVVRGOCh0YWdOYW1lKTsKKyAgICBhdXRvIHJlc3VsdCA9IGl0ZW0tPmNyZWF0ZUVsZW1l
bnRGb3JCaW5kaW5ncyhjb252ZXJ0ZWRUYWdOYW1lKTsKKyAgICBpZiAocmVzdWx0Lmhhc0V4Y2Vw
dGlvbigpKSB7CisgICAgICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3JlOjpET01FeGNlcHRp
b246OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgpKTsKKyAgICAg
ICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lU
X0RPTSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5uYW1lKTsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIHJldHVybiBXZWJLaXQ6OmtpdChyZXN1bHQu
cmVsZWFzZVJldHVyblZhbHVlKCkucHRyKCkpOworfQorCitXZWJLaXRET01Eb2N1bWVudEZyYWdt
ZW50KiB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9kb2N1bWVudF9mcmFnbWVudChXZWJLaXRE
T01Eb2N1bWVudCogc2VsZikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChz
ZWxmKSwgMCk7CisgICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2Vs
Zik7CisgICAgUmVmUHRyPFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQ+IGdvYmplY3RSZXN1bHQg
PSBXVEY6OmdldFB0cihpdGVtLT5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkpOworICAgIHJldHVy
biBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKK30KKworV2ViS2l0RE9NVGV4dCog
d2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfdGV4dF9ub2RlKFdlYktpdERPTURvY3VtZW50KiBz
ZWxmLCBjb25zdCBnY2hhciogZGF0YSkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NV
TUVOVChzZWxmKSwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoZGF0YSwgMCk7CisgICAg
V2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgV1RGOjpT
dHJpbmcgY29udmVydGVkRGF0YSA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChkYXRhKTsKKyAgICBS
ZWZQdHI8V2ViQ29yZTo6VGV4dD4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPmNy
ZWF0ZVRleHROb2RlKGNvbnZlcnRlZERhdGEpKTsKKyAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29i
amVjdFJlc3VsdC5nZXQoKSk7Cit9CisKK1dlYktpdERPTUNvbW1lbnQqIHdlYmtpdF9kb21fZG9j
dW1lbnRfY3JlYXRlX2NvbW1lbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFy
KiBkYXRhKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsK
KyAgICBnX3JldHVybl92YWxfaWZfZmFpbChkYXRhLCAwKTsKKyAgICBXZWJDb3JlOjpEb2N1bWVu
dCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWRE
YXRhID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KGRhdGEpOworICAgIFJlZlB0cjxXZWJDb3JlOjpD
b21tZW50PiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+Y3JlYXRlQ29tbWVudChj
b252ZXJ0ZWREYXRhKSk7CisgICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0
KCkpOworfQorCitXZWJLaXRET01DREFUQVNlY3Rpb24qIHdlYmtpdF9kb21fZG9jdW1lbnRfY3Jl
YXRlX2NkYXRhX3NlY3Rpb24oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBk
YXRhLCBHRXJyb3IqKiBlcnJvcikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVO
VChzZWxmKSwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoZGF0YSwgMCk7CisgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoIWVycm9yIHx8ICEqZXJyb3IsIDApOworICAgIFdlYkNvcmU6OkRv
Y3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdURjo6U3RyaW5nIGNvbnZl
cnRlZERhdGEgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgoZGF0YSk7CisgICAgYXV0byByZXN1bHQg
PSBpdGVtLT5jcmVhdGVDREFUQVNlY3Rpb24oY29udmVydGVkRGF0YSk7CisgICAgaWYgKHJlc3Vs
dC5oYXNFeGNlcHRpb24oKSkgeworICAgICAgICBhdXRvIGRlc2NyaXB0aW9uID0gV2ViQ29yZTo6
RE9NRXhjZXB0aW9uOjpkZXNjcmlwdGlvbihyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUo
KSk7CisgICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJp
bmcoIldFQktJVF9ET00iKSwgZGVzY3JpcHRpb24ubGVnYWN5Q29kZSwgZGVzY3JpcHRpb24ubmFt
ZSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICByZXR1cm4gV2ViS2l0Ojpr
aXQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLnB0cigpKTsKK30KKworV2ViS2l0RE9NUHJv
Y2Vzc2luZ0luc3RydWN0aW9uKiB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9wcm9jZXNzaW5n
X2luc3RydWN0aW9uKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdGFyZ2V0
LCBjb25zdCBnY2hhciogZGF0YSwgR0Vycm9yKiogZXJyb3IpCit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJ
VF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHRh
cmdldCwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoZGF0YSwgMCk7CisgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoIWVycm9yIHx8ICEqZXJyb3IsIDApOworICAgIFdlYkNvcmU6OkRvY3Vt
ZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdURjo6U3RyaW5nIGNvbnZlcnRl
ZFRhcmdldCA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOCh0YXJnZXQpOworICAgIFdURjo6U3RyaW5n
IGNvbnZlcnRlZERhdGEgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgoZGF0YSk7CisgICAgYXV0byBy
ZXN1bHQgPSBpdGVtLT5jcmVhdGVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oY29udmVydGVkVGFyZ2V0
LCBjb252ZXJ0ZWREYXRhKTsKKyAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAg
ICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3JlOjpET01FeGNlcHRpb246OmRlc2NyaXB0aW9u
KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgpKTsKKyAgICAgICAgZ19zZXRfZXJyb3Jf
bGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBkZXNjcmlw
dGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5uYW1lKTsKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgfQorICAgIHJldHVybiBXZWJLaXQ6OmtpdChyZXN1bHQucmVsZWFzZVJldHVyblZh
bHVlKCkucHRyKCkpOworfQorCitXZWJLaXRET01BdHRyKiB3ZWJraXRfZG9tX2RvY3VtZW50X2Ny
ZWF0ZV9hdHRyaWJ1dGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1l
LCBHRXJyb3IqKiBlcnJvcikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChz
ZWxmKSwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwobmFtZSwgMCk7CisgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoIWVycm9yIHx8ICEqZXJyb3IsIDApOworICAgIFdlYkNvcmU6OkRvY3Vt
ZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdURjo6U3RyaW5nIGNvbnZlcnRl
ZE5hbWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgobmFtZSk7CisgICAgYXV0byByZXN1bHQgPSBp
dGVtLT5jcmVhdGVBdHRyaWJ1dGUoY29udmVydGVkTmFtZSk7CisgICAgaWYgKHJlc3VsdC5oYXNF
eGNlcHRpb24oKSkgeworICAgICAgICBhdXRvIGRlc2NyaXB0aW9uID0gV2ViQ29yZTo6RE9NRXhj
ZXB0aW9uOjpkZXNjcmlwdGlvbihyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUoKSk7Cisg
ICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldF
QktJVF9ET00iKSwgZGVzY3JpcHRpb24ubGVnYWN5Q29kZSwgZGVzY3JpcHRpb24ubmFtZSk7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICByZXR1cm4gV2ViS2l0OjpraXQocmVz
dWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLnB0cigpKTsKK30KKworV2ViS2l0RE9NSFRNTENvbGxl
Y3Rpb24qIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRzX2J5X3RhZ19uYW1lX2FzX2h0
bWxfY29sbGVjdGlvbihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHRhZ25h
bWUpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOworICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHRhZ25hbWUsIDApOworICAgIFdlYkNvcmU6OkRvY3VtZW50
KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZFRh
Z25hbWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodGFnbmFtZSk7CisgICAgUmVmUHRyPFdlYkNv
cmU6OkhUTUxDb2xsZWN0aW9uPiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+Z2V0
RWxlbWVudHNCeVRhZ05hbWUoY29udmVydGVkVGFnbmFtZSkpOworICAgIHJldHVybiBXZWJLaXQ6
OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKK30KKworV2ViS2l0RE9NTm9kZSogd2Via2l0X2Rv
bV9kb2N1bWVudF9pbXBvcnRfbm9kZShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgV2ViS2l0RE9N
Tm9kZSogaW1wb3J0ZWROb2RlLCBnYm9vbGVhbiBkZWVwLCBHRXJyb3IqKiBlcnJvcikKK3sKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7CisgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19OT0RFKGltcG9ydGVkTm9kZSksIDApOworICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKCFlcnJvciB8fCAhKmVycm9yLCAwKTsKKyAgICBXZWJDb3JlOjpE
b2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBXZWJDb3JlOjpOb2RlKiBj
b252ZXJ0ZWRJbXBvcnRlZE5vZGUgPSBXZWJLaXQ6OmNvcmUoaW1wb3J0ZWROb2RlKTsKKyAgICBh
dXRvIHJlc3VsdCA9IGl0ZW0tPmltcG9ydE5vZGUoKmNvbnZlcnRlZEltcG9ydGVkTm9kZSwgZGVl
cCk7CisgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAgICBhdXRvIGRlc2Ny
aXB0aW9uID0gV2ViQ29yZTo6RE9NRXhjZXB0aW9uOjpkZXNjcmlwdGlvbihyZXN1bHQucmVsZWFz
ZUV4Y2VwdGlvbigpLmNvZGUoKSk7CisgICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3Is
IGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZGVzY3JpcHRpb24ubGVnYWN5Q29k
ZSwgZGVzY3JpcHRpb24ubmFtZSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAg
ICByZXR1cm4gV2ViS2l0OjpraXQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLnB0cigpKTsK
K30KKworV2ViS2l0RE9NRWxlbWVudCogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfZWxlbWVu
dF9ucyhXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWVzcGFjZVVSSSwg
Y29uc3QgZ2NoYXIqIHF1YWxpZmllZE5hbWUsIEdFcnJvcioqIGVycm9yKQoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKKyAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChxdWFsaWZpZWROYW1lLCAwKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCghZXJyb3Ig
fHwgISplcnJvciwgMCk7CisgICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNv
cmUoc2VsZik7CisgICAgV1RGOjpTdHJpbmcgY29udmVydGVkTmFtZXNwYWNlVVJJID0gV1RGOjpT
dHJpbmc6OmZyb21VVEY4KG5hbWVzcGFjZVVSSSk7CisgICAgV1RGOjpTdHJpbmcgY29udmVydGVk
UXVhbGlmaWVkTmFtZSA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChxdWFsaWZpZWROYW1lKTsKKyAg
ICBhdXRvIHJlc3VsdCA9IGl0ZW0tPmNyZWF0ZUVsZW1lbnROUyhjb252ZXJ0ZWROYW1lc3BhY2VV
UkksIGNvbnZlcnRlZFF1YWxpZmllZE5hbWUpOworICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9u
KCkpIHsKKyAgICAgICAgYXV0byBkZXNjcmlwdGlvbiA9IFdlYkNvcmU6OkRPTUV4Y2VwdGlvbjo6
ZGVzY3JpcHRpb24ocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKS5jb2RlKCkpOworICAgICAgICBn
X3NldF9lcnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9N
IiksIGRlc2NyaXB0aW9uLmxlZ2FjeUNvZGUsIGRlc2NyaXB0aW9uLm5hbWUpOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgcmV0dXJuIFdlYktpdDo6a2l0KHJlc3VsdC5yZWxl
YXNlUmV0dXJuVmFsdWUoKS5wdHIoKSk7Cit9CisKK1dlYktpdERPTUF0dHIqIHdlYmtpdF9kb21f
ZG9jdW1lbnRfY3JlYXRlX2F0dHJpYnV0ZV9ucyhXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29u
c3QgZ2NoYXIqIG5hbWVzcGFjZVVSSSwgY29uc3QgZ2NoYXIqIHF1YWxpZmllZE5hbWUsIEdFcnJv
cioqIGVycm9yKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAw
KTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChxdWFsaWZpZWROYW1lLCAwKTsKKyAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbCghZXJyb3IgfHwgISplcnJvciwgMCk7CisgICAgV2ViQ29yZTo6RG9j
dW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgV1RGOjpTdHJpbmcgY29udmVy
dGVkTmFtZXNwYWNlVVJJID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KG5hbWVzcGFjZVVSSSk7Cisg
ICAgV1RGOjpTdHJpbmcgY29udmVydGVkUXVhbGlmaWVkTmFtZSA9IFdURjo6U3RyaW5nOjpmcm9t
VVRGOChxdWFsaWZpZWROYW1lKTsKKyAgICBhdXRvIHJlc3VsdCA9IGl0ZW0tPmNyZWF0ZUF0dHJp
YnV0ZU5TKGNvbnZlcnRlZE5hbWVzcGFjZVVSSSwgY29udmVydGVkUXVhbGlmaWVkTmFtZSk7Cisg
ICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAgICBhdXRvIGRlc2NyaXB0aW9u
ID0gV2ViQ29yZTo6RE9NRXhjZXB0aW9uOjpkZXNjcmlwdGlvbihyZXN1bHQucmVsZWFzZUV4Y2Vw
dGlvbigpLmNvZGUoKSk7CisgICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVh
cmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZGVzY3JpcHRpb24ubGVnYWN5Q29kZSwgZGVz
Y3JpcHRpb24ubmFtZSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICByZXR1
cm4gV2ViS2l0OjpraXQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLnB0cigpKTsKK30KKwor
V2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRz
X2J5X3RhZ19uYW1lX25zX2FzX2h0bWxfY29sbGVjdGlvbihXZWJLaXRET01Eb2N1bWVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIG5hbWVzcGFjZVVSSSwgY29uc3QgZ2NoYXIqIGxvY2FsTmFtZSkKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7CisgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwobmFtZXNwYWNlVVJJLCAwKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFp
bChsb2NhbE5hbWUsIDApOworICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpj
b3JlKHNlbGYpOworICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZE5hbWVzcGFjZVVSSSA9IFdURjo6
U3RyaW5nOjpmcm9tVVRGOChuYW1lc3BhY2VVUkkpOworICAgIFdURjo6U3RyaW5nIGNvbnZlcnRl
ZExvY2FsTmFtZSA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChsb2NhbE5hbWUpOworICAgIFJlZlB0
cjxXZWJDb3JlOjpIVE1MQ29sbGVjdGlvbj4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0
ZW0tPmdldEVsZW1lbnRzQnlUYWdOYW1lTlMoY29udmVydGVkTmFtZXNwYWNlVVJJLCBjb252ZXJ0
ZWRMb2NhbE5hbWUpKTsKKyAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQo
KSk7Cit9CisKK1dlYktpdERPTU5vZGUqIHdlYmtpdF9kb21fZG9jdW1lbnRfYWRvcHRfbm9kZShX
ZWJLaXRET01Eb2N1bWVudCogc2VsZiwgV2ViS2l0RE9NTm9kZSogc291cmNlLCBHRXJyb3IqKiBl
cnJvcikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7Cisg
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19OT0RFKHNvdXJjZSksIDApOwor
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKCFlcnJvciB8fCAhKmVycm9yLCAwKTsKKyAgICBXZWJD
b3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBXZWJDb3JlOjpO
b2RlKiBjb252ZXJ0ZWRTb3VyY2UgPSBXZWJLaXQ6OmNvcmUoc291cmNlKTsKKyAgICBhdXRvIHJl
c3VsdCA9IGl0ZW0tPmFkb3B0Tm9kZSgqY29udmVydGVkU291cmNlKTsKKyAgICBpZiAocmVzdWx0
Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3JlOjpE
T01FeGNlcHRpb246OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgp
KTsKKyAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmlu
ZygiV0VCS0lUX0RPTSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5uYW1l
KTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIHJldHVybiBXZWJLaXQ6Omtp
dChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkucHRyKCkpOworfQorCitXZWJLaXRET01FdmVu
dCogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfZXZlbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiBldmVudFR5cGUsIEdFcnJvcioqIGVycm9yKQoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKKyAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChldmVudFR5cGUsIDApOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKCFlcnJvciB8fCAh
KmVycm9yLCAwKTsKKyAgICBXZWJDb3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShz
ZWxmKTsKKyAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWRFdmVudFR5cGUgPSBXVEY6OlN0cmluZzo6
ZnJvbVVURjgoZXZlbnRUeXBlKTsKKyAgICBhdXRvIHJlc3VsdCA9IGl0ZW0tPmNyZWF0ZUV2ZW50
KGNvbnZlcnRlZEV2ZW50VHlwZSk7CisgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewor
ICAgICAgICBhdXRvIGRlc2NyaXB0aW9uID0gV2ViQ29yZTo6RE9NRXhjZXB0aW9uOjpkZXNjcmlw
dGlvbihyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUoKSk7CisgICAgICAgIGdfc2V0X2Vy
cm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZGVz
Y3JpcHRpb24ubGVnYWN5Q29kZSwgZGVzY3JpcHRpb24ubmFtZSk7CisgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIH0KKyAgICByZXR1cm4gV2ViS2l0OjpraXQocmVzdWx0LnJlbGVhc2VSZXR1
cm5WYWx1ZSgpLnB0cigpKTsKK30KKworV2ViS2l0RE9NUmFuZ2UqIHdlYmtpdF9kb21fZG9jdW1l
bnRfY3JlYXRlX3JhbmdlKFdlYktpdERPTURvY3VtZW50KiBzZWxmKQoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChX
RUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKKyAgICBXZWJDb3JlOjpEb2N1bWVudCog
aXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+IGdv
YmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5jcmVhdGVSYW5nZSgpKTsKKyAgICByZXR1
cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7Cit9CisKK1dlYktpdERPTU5vZGVJ
dGVyYXRvciogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfbm9kZV9pdGVyYXRvcihXZWJLaXRE
T01Eb2N1bWVudCogc2VsZiwgV2ViS2l0RE9NTm9kZSogcm9vdCwgZ3Vsb25nIHdoYXRUb1Nob3cs
IFdlYktpdERPTU5vZGVGaWx0ZXIqIGZpbHRlciwgZ2Jvb2xlYW4gZXhwYW5kRW50aXR5UmVmZXJl
bmNlcywgR0Vycm9yKiogZXJyb3IpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1F
TlQoc2VsZiksIDApOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfTk9E
RShyb290KSwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoIWZpbHRlciB8fCBXRUJLSVRf
RE9NX0lTX05PREVfRklMVEVSKGZpbHRlciksIDApOworICAgIFVOVVNFRF9QQVJBTShlcnJvcik7
CisgICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAg
V2ViQ29yZTo6Tm9kZSogY29udmVydGVkUm9vdCA9IFdlYktpdDo6Y29yZShyb290KTsKKyAgICBS
ZWZQdHI8V2ViQ29yZTo6Tm9kZUZpbHRlcj4gY29udmVydGVkRmlsdGVyID0gV2ViS2l0Ojpjb3Jl
KGl0ZW0sIGZpbHRlcik7CisgICAgUmVmUHRyPFdlYkNvcmU6Ok5vZGVJdGVyYXRvcj4gZ29iamVj
dFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPmNyZWF0ZU5vZGVJdGVyYXRvcigqY29udmVydGVk
Um9vdCwgd2hhdFRvU2hvdywgV1RGOjpnZXRQdHIoY29udmVydGVkRmlsdGVyKSwgZXhwYW5kRW50
aXR5UmVmZXJlbmNlcykpOworICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0Lmdl
dCgpKTsKK30KKworV2ViS2l0RE9NVHJlZVdhbGtlciogd2Via2l0X2RvbV9kb2N1bWVudF9jcmVh
dGVfdHJlZV93YWxrZXIoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJv
b3QsIGd1bG9uZyB3aGF0VG9TaG93LCBXZWJLaXRET01Ob2RlRmlsdGVyKiBmaWx0ZXIsIGdib29s
ZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXMsIEdFcnJvcioqIGVycm9yKQoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKKyAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfRE9NX0lTX05PREUocm9vdCksIDApOworICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKCFmaWx0ZXIgfHwgV0VCS0lUX0RPTV9JU19OT0RFX0ZJTFRFUihmaWx0ZXIpLCAwKTsKKyAg
ICBVTlVTRURfUEFSQU0oZXJyb3IpOworICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2Vi
S2l0Ojpjb3JlKHNlbGYpOworICAgIFdlYkNvcmU6Ok5vZGUqIGNvbnZlcnRlZFJvb3QgPSBXZWJL
aXQ6OmNvcmUocm9vdCk7CisgICAgUmVmUHRyPFdlYkNvcmU6Ok5vZGVGaWx0ZXI+IGNvbnZlcnRl
ZEZpbHRlciA9IFdlYktpdDo6Y29yZShpdGVtLCBmaWx0ZXIpOworICAgIFJlZlB0cjxXZWJDb3Jl
OjpUcmVlV2Fsa2VyPiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+Y3JlYXRlVHJl
ZVdhbGtlcigqY29udmVydGVkUm9vdCwgd2hhdFRvU2hvdywgV1RGOjpnZXRQdHIoY29udmVydGVk
RmlsdGVyKSwgZXhwYW5kRW50aXR5UmVmZXJlbmNlcykpOworICAgIHJldHVybiBXZWJLaXQ6Omtp
dChnb2JqZWN0UmVzdWx0LmdldCgpKTsKK30KKworV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlv
biogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfb3ZlcnJpZGVfc3R5bGUoV2ViS2l0RE9NRG9jdW1l
bnQqIHNlbGYsIFdlYktpdERPTUVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IGdjaGFyKiBwc2V1ZG9F
bGVtZW50KQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsK
KyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoZWxlbWVudCks
IDApOworICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwor
ICAgIFdlYkNvcmU6OkVsZW1lbnQqIGNvbnZlcnRlZEVsZW1lbnQgPSBXZWJLaXQ6OmNvcmUoZWxl
bWVudCk7CisgICAgV1RGOjpTdHJpbmcgY29udmVydGVkUHNldWRvRWxlbWVudCA9IFdURjo6U3Ry
aW5nOjpmcm9tVVRGOChwc2V1ZG9FbGVtZW50KTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6Q1NTU3R5
bGVEZWNsYXJhdGlvbj4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPmdldE92ZXJy
aWRlU3R5bGUoY29udmVydGVkRWxlbWVudCwgY29udmVydGVkUHNldWRvRWxlbWVudCkpOworICAg
IHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKK30KKworV2ViS2l0RE9N
WFBhdGhFeHByZXNzaW9uKiB3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV9leHByZXNzaW9uKFdl
YktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogZXhwcmVzc2lvbiwgV2ViS2l0RE9N
WFBhdGhOU1Jlc29sdmVyKiByZXNvbHZlciwgR0Vycm9yKiogZXJyb3IpCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOworICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKGV4cHJlc3Npb24sIDApOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01f
SVNfWFBBVEhfTlNfUkVTT0xWRVIocmVzb2x2ZXIpLCAwKTsKKyAgICBnX3JldHVybl92YWxfaWZf
ZmFpbCghZXJyb3IgfHwgISplcnJvciwgMCk7CisgICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0g
PSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgV1RGOjpTdHJpbmcgY29udmVydGVkRXhwcmVzc2lv
biA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChleHByZXNzaW9uKTsKKyAgICBSZWZQdHI8V2ViQ29y
ZTo6WFBhdGhOU1Jlc29sdmVyPiBjb252ZXJ0ZWRSZXNvbHZlciA9IFdlYktpdDo6Y29yZShyZXNv
bHZlcik7CisgICAgYXV0byByZXN1bHQgPSBpdGVtLT5jcmVhdGVFeHByZXNzaW9uKGNvbnZlcnRl
ZEV4cHJlc3Npb24sIFdURk1vdmUoY29udmVydGVkUmVzb2x2ZXIpKTsKKyAgICBpZiAocmVzdWx0
Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3JlOjpE
T01FeGNlcHRpb246OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgp
KTsKKyAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmlu
ZygiV0VCS0lUX0RPTSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5uYW1l
KTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIHJldHVybiBXZWJLaXQ6Omtp
dChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkucHRyKCkpOworfQorCitXZWJLaXRET01YUGF0
aE5TUmVzb2x2ZXIqIHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX25zX3Jlc29sdmVyKFdlYktp
dERPTURvY3VtZW50KiBzZWxmLCBXZWJLaXRET01Ob2RlKiBub2RlUmVzb2x2ZXIpCit7CisgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOworICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9ET01fSVNfTk9ERShub2RlUmVzb2x2ZXIpLCAwKTsKKyAgICBXZWJD
b3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBXZWJDb3JlOjpO
b2RlKiBjb252ZXJ0ZWROb2RlUmVzb2x2ZXIgPSBXZWJLaXQ6OmNvcmUobm9kZVJlc29sdmVyKTsK
KyAgICBSZWZQdHI8V2ViQ29yZTo6WFBhdGhOU1Jlc29sdmVyPiBnb2JqZWN0UmVzdWx0ID0gV1RG
OjpnZXRQdHIoaXRlbS0+Y3JlYXRlTlNSZXNvbHZlcihjb252ZXJ0ZWROb2RlUmVzb2x2ZXIpKTsK
KyAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7Cit9CisKK1dlYktp
dERPTVhQYXRoUmVzdWx0KiB3ZWJraXRfZG9tX2RvY3VtZW50X2V2YWx1YXRlKFdlYktpdERPTURv
Y3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogZXhwcmVzc2lvbiwgV2ViS2l0RE9NTm9kZSogY29u
dGV4dE5vZGUsIFdlYktpdERPTVhQYXRoTlNSZXNvbHZlciogcmVzb2x2ZXIsIGd1c2hvcnQgdHlw
ZSwgV2ViS2l0RE9NWFBhdGhSZXN1bHQqIGluUmVzdWx0LCBHRXJyb3IqKiBlcnJvcikKK3sKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7CisgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoZXhwcmVzc2lvbiwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VC
S0lUX0RPTV9JU19OT0RFKGNvbnRleHROb2RlKSwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoIXJlc29sdmVyIHx8IFdFQktJVF9ET01fSVNfWFBBVEhfTlNfUkVTT0xWRVIocmVzb2x2ZXIp
LCAwKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCghaW5SZXN1bHQgfHwgV0VCS0lUX0RPTV9J
U19YUEFUSF9SRVNVTFQoaW5SZXN1bHQpLCAwKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCgh
ZXJyb3IgfHwgISplcnJvciwgMCk7CisgICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJL
aXQ6OmNvcmUoc2VsZik7CisgICAgV1RGOjpTdHJpbmcgY29udmVydGVkRXhwcmVzc2lvbiA9IFdU
Rjo6U3RyaW5nOjpmcm9tVVRGOChleHByZXNzaW9uKTsKKyAgICBXZWJDb3JlOjpOb2RlKiBjb252
ZXJ0ZWRDb250ZXh0Tm9kZSA9IFdlYktpdDo6Y29yZShjb250ZXh0Tm9kZSk7CisgICAgUmVmUHRy
PFdlYkNvcmU6OlhQYXRoTlNSZXNvbHZlcj4gY29udmVydGVkUmVzb2x2ZXIgPSBXZWJLaXQ6OmNv
cmUocmVzb2x2ZXIpOworICAgIFdlYkNvcmU6OlhQYXRoUmVzdWx0KiBjb252ZXJ0ZWRJblJlc3Vs
dCA9IFdlYktpdDo6Y29yZShpblJlc3VsdCk7CisgICAgYXV0byByZXN1bHQgPSBpdGVtLT5ldmFs
dWF0ZShjb252ZXJ0ZWRFeHByZXNzaW9uLCBjb252ZXJ0ZWRDb250ZXh0Tm9kZSwgV1RGTW92ZShj
b252ZXJ0ZWRSZXNvbHZlciksIHR5cGUsIGNvbnZlcnRlZEluUmVzdWx0KTsKKyAgICBpZiAocmVz
dWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3Jl
OjpET01FeGNlcHRpb246OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29k
ZSgpKTsKKyAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0
cmluZygiV0VCS0lUX0RPTSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5u
YW1lKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIHJldHVybiBXZWJLaXQ6
OmtpdChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkucHRyKCkpOworfQorCitnYm9vbGVhbiB3
ZWJraXRfZG9tX2RvY3VtZW50X2V4ZWNfY29tbWFuZChXZWJLaXRET01Eb2N1bWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIGNvbW1hbmQsIGdib29sZWFuIHVzZXJJbnRlcmZhY2UsIGNvbnN0IGdjaGFy
KiB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgRkFM
U0UpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvbW1hbmQsIEZBTFNFKTsKKyAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbCh2YWx1ZSwgRkFMU0UpOworICAgIFdlYkNvcmU6OkRvY3VtZW50KiBp
dGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZENvbW1h
bmQgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgoY29tbWFuZCk7CisgICAgV1RGOjpTdHJpbmcgY29u
dmVydGVkVmFsdWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodmFsdWUpOworICAgIGdib29sZWFu
IHJlc3VsdCA9IGl0ZW0tPmV4ZWNDb21tYW5kKGNvbnZlcnRlZENvbW1hbmQsIHVzZXJJbnRlcmZh
Y2UsIGNvbnZlcnRlZFZhbHVlKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitnYm9vbGVhbiB3
ZWJraXRfZG9tX2RvY3VtZW50X3F1ZXJ5X2NvbW1hbmRfZW5hYmxlZChXZWJLaXRET01Eb2N1bWVu
dCogc2VsZiwgY29uc3QgZ2NoYXIqIGNvbW1hbmQpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01f
SVNfRE9DVU1FTlQoc2VsZiksIEZBTFNFKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb21t
YW5kLCBGQUxTRSk7CisgICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUo
c2VsZik7CisgICAgV1RGOjpTdHJpbmcgY29udmVydGVkQ29tbWFuZCA9IFdURjo6U3RyaW5nOjpm
cm9tVVRGOChjb21tYW5kKTsKKyAgICBnYm9vbGVhbiByZXN1bHQgPSBpdGVtLT5xdWVyeUNvbW1h
bmRFbmFibGVkKGNvbnZlcnRlZENvbW1hbmQpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2di
b29sZWFuIHdlYmtpdF9kb21fZG9jdW1lbnRfcXVlcnlfY29tbWFuZF9pbmRldGVybShXZWJLaXRE
T01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGNvbW1hbmQpCit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdF
QktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIEZBTFNFKTsKKyAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChjb21tYW5kLCBGQUxTRSk7CisgICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJL
aXQ6OmNvcmUoc2VsZik7CisgICAgV1RGOjpTdHJpbmcgY29udmVydGVkQ29tbWFuZCA9IFdURjo6
U3RyaW5nOjpmcm9tVVRGOChjb21tYW5kKTsKKyAgICBnYm9vbGVhbiByZXN1bHQgPSBpdGVtLT5x
dWVyeUNvbW1hbmRJbmRldGVybShjb252ZXJ0ZWRDb21tYW5kKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCitnYm9vbGVhbiB3ZWJraXRfZG9tX2RvY3VtZW50X3F1ZXJ5X2NvbW1hbmRfc3RhdGUo
V2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBjb21tYW5kKQoreworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCBGQUxTRSk7CisgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoY29tbWFuZCwgRkFMU0UpOworICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVt
ID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZENvbW1hbmQg
PSBXVEY6OlN0cmluZzo6ZnJvbVVURjgoY29tbWFuZCk7CisgICAgZ2Jvb2xlYW4gcmVzdWx0ID0g
aXRlbS0+cXVlcnlDb21tYW5kU3RhdGUoY29udmVydGVkQ29tbWFuZCk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KKworZ2Jvb2xlYW4gd2Via2l0X2RvbV9kb2N1bWVudF9xdWVyeV9jb21tYW5kX3N1
cHBvcnRlZChXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGNvbW1hbmQpCit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIEZBTFNFKTsKKyAgICBn
X3JldHVybl92YWxfaWZfZmFpbChjb21tYW5kLCBGQUxTRSk7CisgICAgV2ViQ29yZTo6RG9jdW1l
bnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgV1RGOjpTdHJpbmcgY29udmVydGVk
Q29tbWFuZCA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChjb21tYW5kKTsKKyAgICBnYm9vbGVhbiBy
ZXN1bHQgPSBpdGVtLT5xdWVyeUNvbW1hbmRTdXBwb3J0ZWQoY29udmVydGVkQ29tbWFuZCk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKworZ2NoYXIqIHdlYmtpdF9kb21fZG9jdW1lbnRfcXVlcnlf
Y29tbWFuZF92YWx1ZShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGNvbW1h
bmQpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOworICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvbW1hbmQsIDApOworICAgIFdlYkNvcmU6OkRvY3VtZW50
KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZENv
bW1hbmQgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgoY29tbWFuZCk7CisgICAgZ2NoYXIqIHJlc3Vs
dCA9IGNvbnZlcnRUb1VURjhTdHJpbmcoaXRlbS0+cXVlcnlDb21tYW5kVmFsdWUoY29udmVydGVk
Q29tbWFuZCkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK1dlYktpdERPTU5vZGVMaXN0KiB3
ZWJraXRfZG9tX2RvY3VtZW50X2dldF9lbGVtZW50c19ieV9uYW1lKFdlYktpdERPTURvY3VtZW50
KiBzZWxmLCBjb25zdCBnY2hhciogZWxlbWVudE5hbWUpCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9E
T01fSVNfRE9DVU1FTlQoc2VsZiksIDApOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGVsZW1l
bnROYW1lLCAwKTsKKyAgICBXZWJDb3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShz
ZWxmKTsKKyAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWRFbGVtZW50TmFtZSA9IFdURjo6U3RyaW5n
Ojpmcm9tVVRGOChlbGVtZW50TmFtZSk7CisgICAgUmVmUHRyPFdlYkNvcmU6Ok5vZGVMaXN0PiBn
b2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+Z2V0RWxlbWVudHNCeU5hbWUoY29udmVy
dGVkRWxlbWVudE5hbWUpKTsKKyAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5n
ZXQoKSk7Cit9CisKK1dlYktpdERPTUVsZW1lbnQqIHdlYmtpdF9kb21fZG9jdW1lbnRfZWxlbWVu
dF9mcm9tX3BvaW50KFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBnbG9uZyB4LCBnbG9uZyB5KQor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKKyAgICBXZWJD
b3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBSZWZQdHI8V2Vi
Q29yZTo6RWxlbWVudD4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPmVsZW1lbnRG
cm9tUG9pbnQoeCwgeSkpOworICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0Lmdl
dCgpKTsKK30KKworV2ViS2l0RE9NUmFuZ2UqIHdlYmtpdF9kb21fZG9jdW1lbnRfY2FyZXRfcmFu
Z2VfZnJvbV9wb2ludChXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgZ2xvbmcgeCwgZ2xvbmcgeSkK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7CisgICAgV2Vi
Q29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgUmVmUHRyPFdl
YkNvcmU6OlJhbmdlPiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+Y2FyZXRSYW5n
ZUZyb21Qb2ludCh4LCB5KSk7CisgICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQu
Z2V0KCkpOworfQorCitXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uKiB3ZWJraXRfZG9tX2Rv
Y3VtZW50X2NyZWF0ZV9jc3Nfc3R5bGVfZGVjbGFyYXRpb24oV2ViS2l0RE9NRG9jdW1lbnQqIHNl
bGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOworICAg
IFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFJlZlB0
cjxXZWJDb3JlOjpDU1NTdHlsZURlY2xhcmF0aW9uPiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQ
dHIoaXRlbS0+Y3JlYXRlQ1NTU3R5bGVEZWNsYXJhdGlvbigpKTsKKyAgICByZXR1cm4gV2ViS2l0
OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7Cit9CisKK1dlYktpdERPTUhUTUxDb2xsZWN0aW9u
KiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9lbGVtZW50c19ieV9jbGFzc19uYW1lX2FzX2h0bWxf
Y29sbGVjdGlvbihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIGNsYXNzTmFt
ZXMpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOworICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNsYXNzTmFtZXMsIDApOworICAgIFdlYkNvcmU6OkRvY3Vt
ZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdURjo6U3RyaW5nIGNvbnZlcnRl
ZENsYXNzTmFtZXMgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgoY2xhc3NOYW1lcyk7CisgICAgUmVm
UHRyPFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uPiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIo
aXRlbS0+Z2V0RWxlbWVudHNCeUNsYXNzTmFtZShjb252ZXJ0ZWRDbGFzc05hbWVzKSk7CisgICAg
cmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOworfQorCitnYm9vbGVhbiB3
ZWJraXRfZG9tX2RvY3VtZW50X2hhc19mb2N1cyhXZWJLaXRET01Eb2N1bWVudCogc2VsZikKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgRkFMU0UpOworICAgIFdl
YkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGdib29sZWFu
IHJlc3VsdCA9IGl0ZW0tPmhhc0ZvY3VzKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9p
ZCB3ZWJraXRfZG9tX2RvY3VtZW50X3dlYmtpdF9jYW5jZWxfZnVsbHNjcmVlbihXZWJLaXRET01E
b2N1bWVudCogc2VsZikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpKTsK
KyAgICBXZWJDb3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBp
dGVtLT53ZWJraXRDYW5jZWxGdWxsU2NyZWVuKCk7Cit9CisKK3ZvaWQgd2Via2l0X2RvbV9kb2N1
bWVudF93ZWJraXRfZXhpdF9mdWxsc2NyZWVuKFdlYktpdERPTURvY3VtZW50KiBzZWxmKQorewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl9p
Zl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZikpOworICAgIFdlYkNvcmU6OkRvY3Vt
ZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGl0ZW0tPndlYmtpdEV4aXRGdWxs
c2NyZWVuKCk7Cit9CisKK3ZvaWQgd2Via2l0X2RvbV9kb2N1bWVudF9leGl0X3BvaW50ZXJfbG9j
ayhXZWJLaXRET01Eb2N1bWVudCogc2VsZikKK3sKKyNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl9p
Zl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZikpOworICAgIFdlYkNvcmU6OkRvY3Vt
ZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGl0ZW0tPmV4aXRQb2ludGVyTG9j
aygpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oc2VsZik7CisgICAgV0VCS0lUX1dBUk5fRkVB
VFVSRV9OT1RfUFJFU0VOVCgiUG9pbnRlciBMb2NrIikKKyNlbmRpZiAvKiBFTkFCTEUoUE9JTlRF
Ul9MT0NLKSAqLworfQorCitXZWJLaXRET01FbGVtZW50KiB3ZWJraXRfZG9tX2RvY3VtZW50X2dl
dF9lbGVtZW50X2J5X2lkKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogZWxl
bWVudElkKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsK
KyAgICBnX3JldHVybl92YWxfaWZfZmFpbChlbGVtZW50SWQsIDApOworICAgIFdlYkNvcmU6OkRv
Y3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdURjo6U3RyaW5nIGNvbnZl
cnRlZEVsZW1lbnRJZCA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChlbGVtZW50SWQpOworICAgIFJl
ZlB0cjxXZWJDb3JlOjpFbGVtZW50PiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+
Z2V0RWxlbWVudEJ5SWQoY29udmVydGVkRWxlbWVudElkKSk7CisgICAgcmV0dXJuIFdlYktpdDo6
a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOworfQorCitXZWJLaXRET01FbGVtZW50KiB3ZWJraXRf
ZG9tX2RvY3VtZW50X3F1ZXJ5X3NlbGVjdG9yKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogc2VsZWN0b3JzLCBHRXJyb3IqKiBlcnJvcikKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lU
X0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2Vs
ZWN0b3JzLCAwKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCghZXJyb3IgfHwgISplcnJvciwg
MCk7CisgICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Cisg
ICAgV1RGOjpTdHJpbmcgY29udmVydGVkU2VsZWN0b3JzID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4
KHNlbGVjdG9ycyk7CisgICAgYXV0byByZXN1bHQgPSBpdGVtLT5xdWVyeVNlbGVjdG9yKGNvbnZl
cnRlZFNlbGVjdG9ycyk7CisgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAg
ICBhdXRvIGRlc2NyaXB0aW9uID0gV2ViQ29yZTo6RE9NRXhjZXB0aW9uOjpkZXNjcmlwdGlvbihy
ZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUoKSk7CisgICAgICAgIGdfc2V0X2Vycm9yX2xp
dGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZGVzY3JpcHRp
b24ubGVnYWN5Q29kZSwgZGVzY3JpcHRpb24ubmFtZSk7CisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIH0KKyAgICByZXR1cm4gV2ViS2l0OjpraXQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1
ZSgpKTsKK30KKworV2ViS2l0RE9NTm9kZUxpc3QqIHdlYmtpdF9kb21fZG9jdW1lbnRfcXVlcnlf
c2VsZWN0b3JfYWxsKFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogc2VsZWN0
b3JzLCBHRXJyb3IqKiBlcnJvcikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVO
VChzZWxmKSwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZWN0b3JzLCAwKTsKKyAg
ICBnX3JldHVybl92YWxfaWZfZmFpbCghZXJyb3IgfHwgISplcnJvciwgMCk7CisgICAgV2ViQ29y
ZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgV1RGOjpTdHJpbmcg
Y29udmVydGVkU2VsZWN0b3JzID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHNlbGVjdG9ycyk7Cisg
ICAgYXV0byByZXN1bHQgPSBpdGVtLT5xdWVyeVNlbGVjdG9yQWxsKGNvbnZlcnRlZFNlbGVjdG9y
cyk7CisgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAgICBhdXRvIGRlc2Ny
aXB0aW9uID0gV2ViQ29yZTo6RE9NRXhjZXB0aW9uOjpkZXNjcmlwdGlvbihyZXN1bHQucmVsZWFz
ZUV4Y2VwdGlvbigpLmNvZGUoKSk7CisgICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3Is
IGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZGVzY3JpcHRpb24ubGVnYWN5Q29k
ZSwgZGVzY3JpcHRpb24ubmFtZSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAg
ICByZXR1cm4gV2ViS2l0OjpraXQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLnB0cigpKTsK
K30KKworV2ViS2l0RE9NRG9jdW1lbnRUeXBlKiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kb2N0
eXBlKFdlYktpdERPTURvY3VtZW50KiBzZWxmKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lT
X0RPQ1VNRU5UKHNlbGYpLCAwKTsKKyAgICBXZWJDb3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktp
dDo6Y29yZShzZWxmKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6RG9jdW1lbnRUeXBlPiBnb2JqZWN0
UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+ZG9jdHlwZSgpKTsKKyAgICByZXR1cm4gV2ViS2l0
OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7Cit9CisKK1dlYktpdERPTURPTUltcGxlbWVudGF0
aW9uKiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9pbXBsZW1lbnRhdGlvbihXZWJLaXRET01Eb2N1
bWVudCogc2VsZikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwg
MCk7CisgICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Cisg
ICAgUmVmUHRyPFdlYkNvcmU6OkRPTUltcGxlbWVudGF0aW9uPiBnb2JqZWN0UmVzdWx0ID0gV1RG
OjpnZXRQdHIoaXRlbS0+aW1wbGVtZW50YXRpb24oKSk7CisgICAgcmV0dXJuIFdlYktpdDo6a2l0
KGdvYmplY3RSZXN1bHQuZ2V0KCkpOworfQorCitXZWJLaXRET01FbGVtZW50KiB3ZWJraXRfZG9t
X2RvY3VtZW50X2dldF9kb2N1bWVudF9lbGVtZW50KFdlYktpdERPTURvY3VtZW50KiBzZWxmKQor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKKyAgICBXZWJD
b3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBSZWZQdHI8V2Vi
Q29yZTo6RWxlbWVudD4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPmRvY3VtZW50
RWxlbWVudCgpKTsKKyAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7
Cit9CisKK2djaGFyKiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9pbnB1dF9lbmNvZGluZyhXZWJL
aXRET01Eb2N1bWVudCogc2VsZikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVO
VChzZWxmKSwgMCk7CisgICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUo
c2VsZik7CisgICAgZ2NoYXIqIHJlc3VsdCA9IGNvbnZlcnRUb1VURjhTdHJpbmcoaXRlbS0+Y2hh
cmFjdGVyU2V0V2l0aFVURjhGYWxsYmFjaygpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitn
Y2hhciogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfeG1sX2VuY29kaW5nKFdlYktpdERPTURvY3Vt
ZW50KiBzZWxmKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAw
KTsKKyAgICBXZWJDb3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAg
ICBnY2hhciogcmVzdWx0ID0gY29udmVydFRvVVRGOFN0cmluZyhpdGVtLT54bWxFbmNvZGluZygp
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitnY2hhciogd2Via2l0X2RvbV9kb2N1bWVudF9n
ZXRfeG1sX3ZlcnNpb24oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdF
QktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOworICAgIFdlYkNvcmU6OkRvY3VtZW50KiBp
dGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGdjaGFyKiByZXN1bHQgPSBjb252ZXJ0VG9V
VEY4U3RyaW5nKGl0ZW0tPnhtbFZlcnNpb24oKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
dm9pZCB3ZWJraXRfZG9tX2RvY3VtZW50X3NldF94bWxfdmVyc2lvbihXZWJLaXRET01Eb2N1bWVu
dCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcikKK3sKKyAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5faWZfZmFpbChX
RUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHZhbHVl
KTsKKyAgICBnX3JldHVybl9pZl9mYWlsKCFlcnJvciB8fCAhKmVycm9yKTsKKyAgICBXZWJDb3Jl
OjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBXVEY6OlN0cmluZyBj
b252ZXJ0ZWRWYWx1ZSA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOCh2YWx1ZSk7CisgICAgYXV0byBy
ZXN1bHQgPSBpdGVtLT5zZXRYTUxWZXJzaW9uKGNvbnZlcnRlZFZhbHVlKTsKKyAgICBpZiAocmVz
dWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3Jl
OjpET01FeGNlcHRpb246OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29k
ZSgpKTsKKyAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0
cmluZygiV0VCS0lUX0RPTSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5u
YW1lKTsKKyAgICB9Cit9CisKK2dib29sZWFuIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3htbF9z
dGFuZGFsb25lKFdlYktpdERPTURvY3VtZW50KiBzZWxmKQoreworICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRf
RE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCBGQUxTRSk7CisgICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0
ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgZ2Jvb2xlYW4gcmVzdWx0ID0gaXRlbS0+eG1s
U3RhbmRhbG9uZSgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3ZvaWQgd2Via2l0X2RvbV9k
b2N1bWVudF9zZXRfeG1sX3N0YW5kYWxvbmUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYsIGdib29s
ZWFuIHZhbHVlLCBHRXJyb3IqKiBlcnJvcikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VN
RU5UKHNlbGYpKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKCFlcnJvciB8fCAhKmVycm9yKTsKKyAg
ICBXZWJLaXQ6OmNvcmUoc2VsZiktPnNldFhNTFN0YW5kYWxvbmUodmFsdWUpOworfQorCitnY2hh
ciogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZG9jdW1lbnRfdXJpKFdlYktpdERPTURvY3VtZW50
KiBzZWxmKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsK
KyAgICBXZWJDb3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBn
Y2hhciogcmVzdWx0ID0gY29udmVydFRvVVRGOFN0cmluZyhpdGVtLT5kb2N1bWVudFVSSSgpKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X2Rv
Y3VtZW50X3VyaShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKQor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVy
bl9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZikpOworICAgIGdfcmV0dXJuX2lm
X2ZhaWwodmFsdWUpOworICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3Jl
KHNlbGYpOworICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZFZhbHVlID0gV1RGOjpTdHJpbmc6OmZy
b21VVEY4KHZhbHVlKTsKKyAgICBpdGVtLT5zZXREb2N1bWVudFVSSShjb252ZXJ0ZWRWYWx1ZSk7
Cit9CisKK1dlYktpdERPTURPTVdpbmRvdyogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZGVmYXVs
dF92aWV3KFdlYktpdERPTURvY3VtZW50KiBzZWxmKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9N
X0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKKyAgICBXZWJDb3JlOjpEb2N1bWVudCogaXRlbSA9IFdl
YktpdDo6Y29yZShzZWxmKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6RE9NV2luZG93PiBnb2JqZWN0
UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+ZGVmYXVsdFZpZXcoKSk7CisgICAgcmV0dXJuIFdl
YktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOworfQorCitXZWJLaXRET01TdHlsZVNoZWV0
TGlzdCogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfc3R5bGVfc2hlZXRzKFdlYktpdERPTURvY3Vt
ZW50KiBzZWxmKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAw
KTsKKyAgICBXZWJDb3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAg
ICBSZWZQdHI8V2ViQ29yZTo6U3R5bGVTaGVldExpc3Q+IGdvYmplY3RSZXN1bHQgPSBXVEY6Omdl
dFB0cihpdGVtLT5zdHlsZVNoZWV0cygpKTsKKyAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVj
dFJlc3VsdC5nZXQoKSk7Cit9CisKK2djaGFyKiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jb250
ZW50X3R5cGUoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9E
T01fSVNfRE9DVU1FTlQoc2VsZiksIDApOworICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0g
V2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGdjaGFyKiByZXN1bHQgPSBjb252ZXJ0VG9VVEY4U3Ry
aW5nKGl0ZW0tPmNvbnRlbnRUeXBlKCkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2djaGFy
KiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF90aXRsZShXZWJLaXRET01Eb2N1bWVudCogc2VsZikK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7CisgICAgV2Vi
Q29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgZ2NoYXIqIHJl
c3VsdCA9IGNvbnZlcnRUb1VURjhTdHJpbmcoaXRlbS0+dGl0bGUoKSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KKwordm9pZCB3ZWJraXRfZG9tX2RvY3VtZW50X3NldF90aXRsZShXZWJLaXRET01E
b2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKQoreworICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9ET01f
SVNfRE9DVU1FTlQoc2VsZikpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOworICAgIFdl
YkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdURjo6U3Ry
aW5nIGNvbnZlcnRlZFZhbHVlID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKTsKKyAgICBp
dGVtLT5zZXRUaXRsZShjb252ZXJ0ZWRWYWx1ZSk7Cit9CisKK2djaGFyKiB3ZWJraXRfZG9tX2Rv
Y3VtZW50X2dldF9kaXIoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdF
QktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOworICAgIFdlYkNvcmU6OkRvY3VtZW50KiBp
dGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGdjaGFyKiByZXN1bHQgPSBjb252ZXJ0VG9V
VEY4U3RyaW5nKGl0ZW0tPmRpcigpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIHdl
YmtpdF9kb21fZG9jdW1lbnRfc2V0X2RpcihXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3Qg
Z2NoYXIqIHZhbHVlKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZikpOwor
ICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOworICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVt
ID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZFZhbHVlID0g
V1RGOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKTsKKyAgICBpdGVtLT5zZXREaXIoY29udmVydGVk
VmFsdWUpOworfQorCitnY2hhciogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZGVzaWduX21vZGUo
V2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9D
VU1FTlQoc2VsZiksIDApOworICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpj
b3JlKHNlbGYpOworICAgIGdjaGFyKiByZXN1bHQgPSBjb252ZXJ0VG9VVEY4U3RyaW5nKGl0ZW0t
PmRlc2lnbk1vZGUoKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9pZCB3ZWJraXRfZG9t
X2RvY3VtZW50X3NldF9kZXNpZ25fbW9kZShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgY29uc3Qg
Z2NoYXIqIHZhbHVlKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZikpOwor
ICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOworICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVt
ID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZFZhbHVlID0g
V1RGOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKTsKKyAgICBpdGVtLT5zZXREZXNpZ25Nb2RlKGNv
bnZlcnRlZFZhbHVlKTsKK30KKworZ2NoYXIqIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3JlZmVy
cmVyKFdlYktpdERPTURvY3VtZW50KiBzZWxmKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lT
X0RPQ1VNRU5UKHNlbGYpLCAwKTsKKyAgICBXZWJDb3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktp
dDo6Y29yZShzZWxmKTsKKyAgICBnY2hhciogcmVzdWx0ID0gY29udmVydFRvVVRGOFN0cmluZyhp
dGVtLT5yZWZlcnJlcigpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitnY2hhciogd2Via2l0
X2RvbV9kb2N1bWVudF9nZXRfZG9tYWluKFdlYktpdERPTURvY3VtZW50KiBzZWxmKQoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxf
aWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKKyAgICBXZWJDb3JlOjpE
b2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBnY2hhciogcmVzdWx0ID0g
Y29udmVydFRvVVRGOFN0cmluZyhpdGVtLT5kb21haW4oKSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KKworZ2NoYXIqIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3VybChXZWJLaXRET01Eb2N1bWVu
dCogc2VsZikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7
CisgICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAg
Z2NoYXIqIHJlc3VsdCA9IGNvbnZlcnRUb1VURjhTdHJpbmcoaXRlbS0+dXJsRm9yQmluZGluZ3Mo
KSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworZ2NoYXIqIHdlYmtpdF9kb21fZG9jdW1lbnRf
Z2V0X2Nvb2tpZShXZWJLaXRET01Eb2N1bWVudCogc2VsZiwgR0Vycm9yKiogZXJyb3IpCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOworICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKCFlcnJvciB8fCAhKmVycm9yLCAwKTsKKyAgICBXZWJDb3JlOjpEb2N1bWVu
dCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBhdXRvIHJlc3VsdCA9IGl0ZW0tPmNv
b2tpZSgpOworICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworICAgIHJldHVybiBjb252ZXJ0VG9VVEY4U3RyaW5nKHJlc3VsdC5yZWxlYXNlUmV0
dXJuVmFsdWUoKSk7Cit9CisKK3ZvaWQgd2Via2l0X2RvbV9kb2N1bWVudF9zZXRfY29va2llKFdl
YktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJvcioqIGVycm9y
KQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3Jl
dHVybl9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZikpOworICAgIGdfcmV0dXJu
X2lmX2ZhaWwodmFsdWUpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoIWVycm9yIHx8ICEqZXJyb3Ip
OworICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAg
IFdURjo6U3RyaW5nIGNvbnZlcnRlZFZhbHVlID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVl
KTsKKyAgICBhdXRvIHJlc3VsdCA9IGl0ZW0tPnNldENvb2tpZShjb252ZXJ0ZWRWYWx1ZSk7Cisg
ICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAgICBhdXRvIGRlc2NyaXB0aW9u
ID0gV2ViQ29yZTo6RE9NRXhjZXB0aW9uOjpkZXNjcmlwdGlvbihyZXN1bHQucmVsZWFzZUV4Y2Vw
dGlvbigpLmNvZGUoKSk7CisgICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVh
cmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZGVzY3JpcHRpb24ubGVnYWN5Q29kZSwgZGVz
Y3JpcHRpb24ubmFtZSk7CisgICAgfQorfQorCitXZWJLaXRET01IVE1MRWxlbWVudCogd2Via2l0
X2RvbV9kb2N1bWVudF9nZXRfYm9keShXZWJLaXRET01Eb2N1bWVudCogc2VsZikKK3sKKyAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7CisgICAgV2ViQ29yZTo6RG9j
dW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgUmVmUHRyPFdlYkNvcmU6OkhU
TUxFbGVtZW50PiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+Ym9keU9yRnJhbWVz
ZXQoKSk7CisgICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOworfQor
Cit2b2lkIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X2JvZHkoV2ViS2l0RE9NRG9jdW1lbnQqIHNl
bGYsIFdlYktpdERPTUhUTUxFbGVtZW50KiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpCit7CisgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX2lmX2Zh
aWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSk7CisgICAgZ19yZXR1cm5faWZfZmFpbChX
RUJLSVRfRE9NX0lTX0hUTUxfRUxFTUVOVCh2YWx1ZSkpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwo
IWVycm9yIHx8ICEqZXJyb3IpOworICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0
Ojpjb3JlKHNlbGYpOworICAgIFdlYkNvcmU6OkhUTUxFbGVtZW50KiBjb252ZXJ0ZWRWYWx1ZSA9
IFdlYktpdDo6Y29yZSh2YWx1ZSk7CisgICAgYXV0byByZXN1bHQgPSBpdGVtLT5zZXRCb2R5T3JG
cmFtZXNldChjb252ZXJ0ZWRWYWx1ZSk7CisgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkg
eworICAgICAgICBhdXRvIGRlc2NyaXB0aW9uID0gV2ViQ29yZTo6RE9NRXhjZXB0aW9uOjpkZXNj
cmlwdGlvbihyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUoKSk7CisgICAgICAgIGdfc2V0
X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwg
ZGVzY3JpcHRpb24ubGVnYWN5Q29kZSwgZGVzY3JpcHRpb24ubmFtZSk7CisgICAgfQorfQorCitX
ZWJLaXRET01IVE1MSGVhZEVsZW1lbnQqIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2hlYWQoV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1F
TlQoc2VsZiksIDApOworICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3Jl
KHNlbGYpOworICAgIFJlZlB0cjxXZWJDb3JlOjpIVE1MSGVhZEVsZW1lbnQ+IGdvYmplY3RSZXN1
bHQgPSBXVEY6OmdldFB0cihpdGVtLT5oZWFkKCkpOworICAgIHJldHVybiBXZWJLaXQ6OmtpdChn
b2JqZWN0UmVzdWx0LmdldCgpKTsKK30KKworV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qIHdlYmtp
dF9kb21fZG9jdW1lbnRfZ2V0X2ltYWdlcyhXZWJLaXRET01Eb2N1bWVudCogc2VsZikKK3sKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7CisgICAgV2ViQ29yZTo6
RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgUmVmUHRyPFdlYkNvcmU6
OkhUTUxDb2xsZWN0aW9uPiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+aW1hZ2Vz
KCkpOworICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKK30KKwor
V2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2FwcGxldHMo
V2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9D
VU1FTlQoc2VsZiksIDApOworICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpj
b3JlKHNlbGYpOworICAgIFJlZlB0cjxXZWJDb3JlOjpIVE1MQ29sbGVjdGlvbj4gZ29iamVjdFJl
c3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPmFwcGxldHMoKSk7CisgICAgcmV0dXJuIFdlYktpdDo6
a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOworfQorCitXZWJLaXRET01IVE1MQ29sbGVjdGlvbiog
d2Via2l0X2RvbV9kb2N1bWVudF9nZXRfbGlua3MoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpCit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOworICAgIFdlYkNv
cmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFJlZlB0cjxXZWJD
b3JlOjpIVE1MQ29sbGVjdGlvbj4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPmxp
bmtzKCkpOworICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKK30K
KworV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2Zvcm1z
KFdlYktpdERPTURvY3VtZW50KiBzZWxmKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RP
Q1VNRU5UKHNlbGYpLCAwKTsKKyAgICBXZWJDb3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6
Y29yZShzZWxmKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6SFRNTENvbGxlY3Rpb24+IGdvYmplY3RS
ZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5mb3JtcygpKTsKKyAgICByZXR1cm4gV2ViS2l0Ojpr
aXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7Cit9CisKK1dlYktpdERPTUhUTUxDb2xsZWN0aW9uKiB3
ZWJraXRfZG9tX2RvY3VtZW50X2dldF9hbmNob3JzKFdlYktpdERPTURvY3VtZW50KiBzZWxmKQor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKKyAgICBXZWJD
b3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBSZWZQdHI8V2Vi
Q29yZTo6SFRNTENvbGxlY3Rpb24+IGdvYmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5h
bmNob3JzKCkpOworICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsK
K30KKworV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2Vt
YmVkcyhXZWJLaXRET01Eb2N1bWVudCogc2VsZikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9J
U19ET0NVTUVOVChzZWxmKSwgMCk7CisgICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJL
aXQ6OmNvcmUoc2VsZik7CisgICAgUmVmUHRyPFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uPiBnb2Jq
ZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+ZW1iZWRzKCkpOworICAgIHJldHVybiBXZWJL
aXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKK30KKworV2ViS2l0RE9NSFRNTENvbGxlY3Rp
b24qIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3BsdWdpbnMoV2ViS2l0RE9NRG9jdW1lbnQqIHNl
bGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOworICAg
IFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFJlZlB0
cjxXZWJDb3JlOjpIVE1MQ29sbGVjdGlvbj4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0
ZW0tPnBsdWdpbnMoKSk7CisgICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0
KCkpOworfQorCitXZWJLaXRET01IVE1MQ29sbGVjdGlvbiogd2Via2l0X2RvbV9kb2N1bWVudF9n
ZXRfc2NyaXB0cyhXZWJLaXRET01Eb2N1bWVudCogc2VsZikKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lU
X0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7CisgICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0g
PSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgUmVmUHRyPFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9u
PiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+c2NyaXB0cygpKTsKKyAgICByZXR1
cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7Cit9CisKK2djaGFyKiB3ZWJraXRf
ZG9tX2RvY3VtZW50X2dldF9sYXN0X21vZGlmaWVkKFdlYktpdERPTURvY3VtZW50KiBzZWxmKQor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKKyAgICBXZWJD
b3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBnY2hhciogcmVz
dWx0ID0gY29udmVydFRvVVRGOFN0cmluZyhpdGVtLT5sYXN0TW9kaWZpZWQoKSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KKworZ2NoYXIqIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2NoYXJzZXQo
V2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9D
VU1FTlQoc2VsZiksIDApOworICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpj
b3JlKHNlbGYpOworICAgIGdjaGFyKiByZXN1bHQgPSBjb252ZXJ0VG9VVEY4U3RyaW5nKGl0ZW0t
PmNoYXJzZXQoKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9pZCB3ZWJraXRfZG9tX2Rv
Y3VtZW50X3NldF9jaGFyc2V0KFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciog
dmFsdWUpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSk7CisgICAgZ19y
ZXR1cm5faWZfZmFpbCh2YWx1ZSk7CisgICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJL
aXQ6OmNvcmUoc2VsZik7CisgICAgV1RGOjpTdHJpbmcgY29udmVydGVkVmFsdWUgPSBXVEY6OlN0
cmluZzo6ZnJvbVVURjgodmFsdWUpOworICAgIGl0ZW0tPnNldENoYXJzZXQoY29udmVydGVkVmFs
dWUpOworfQorCitnY2hhciogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfcmVhZHlfc3RhdGUoV2Vi
S2l0RE9NRG9jdW1lbnQqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1F
TlQoc2VsZiksIDApOworCisgICAgYXV0byByZWFkeVN0YXRlID0gV2ViS2l0Ojpjb3JlKHNlbGYp
LT5yZWFkeVN0YXRlKCk7CisgICAgc3dpdGNoIChyZWFkeVN0YXRlKSB7CisgICAgY2FzZSBXZWJD
b3JlOjpEb2N1bWVudDo6TG9hZGluZzoKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRUb1VURjhTdHJp
bmcoQVNDSUlMaXRlcmFsKCJsb2FkaW5nIikpOworICAgIGNhc2UgV2ViQ29yZTo6RG9jdW1lbnQ6
OkludGVyYWN0aXZlOgorICAgICAgICByZXR1cm4gY29udmVydFRvVVRGOFN0cmluZyhBU0NJSUxp
dGVyYWwoImludGVyYWN0aXZlIikpOworICAgIGNhc2UgV2ViQ29yZTo6RG9jdW1lbnQ6OkNvbXBs
ZXRlOgorICAgICAgICByZXR1cm4gY29udmVydFRvVVRGOFN0cmluZyhBU0NJSUxpdGVyYWwoImNv
bXBsZXRlIikpOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworZ2NoYXIqIHdlYmtpdF9kb21f
ZG9jdW1lbnRfZ2V0X2NoYXJhY3Rlcl9zZXQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOworICAgIFdlYkNvcmU6
OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGdjaGFyKiByZXN1bHQg
PSBjb252ZXJ0VG9VVEY4U3RyaW5nKGl0ZW0tPmNoYXJhY3RlclNldFdpdGhVVEY4RmFsbGJhY2so
KSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworZ2NoYXIqIHdlYmtpdF9kb21fZG9jdW1lbnRf
Z2V0X3ByZWZlcnJlZF9zdHlsZXNoZWV0X3NldChXZWJLaXRET01Eb2N1bWVudCogc2VsZikKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7CisgICAgV2ViQ29y
ZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgZ2NoYXIqIHJlc3Vs
dCA9IGNvbnZlcnRUb1VURjhTdHJpbmcoaXRlbS0+cHJlZmVycmVkU3R5bGVzaGVldFNldCgpKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCitnY2hhciogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRf
c2VsZWN0ZWRfc3R5bGVzaGVldF9zZXQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpCit7CisgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOworICAgIFdlYkNvcmU6OkRv
Y3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGdjaGFyKiByZXN1bHQgPSBj
b252ZXJ0VG9VVEY4U3RyaW5nKGl0ZW0tPnNlbGVjdGVkU3R5bGVzaGVldFNldCgpKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCit2b2lkIHdlYmtpdF9kb21fZG9jdW1lbnRfc2V0X3NlbGVjdGVk
X3N0eWxlc2hlZXRfc2V0KFdlYktpdERPTURvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdf
cmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSk7CisgICAgZ19yZXR1
cm5faWZfZmFpbCh2YWx1ZSk7CisgICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6
OmNvcmUoc2VsZik7CisgICAgV1RGOjpTdHJpbmcgY29udmVydGVkVmFsdWUgPSBXVEY6OlN0cmlu
Zzo6ZnJvbVVURjgodmFsdWUpOworICAgIGl0ZW0tPnNldFNlbGVjdGVkU3R5bGVzaGVldFNldChj
b252ZXJ0ZWRWYWx1ZSk7Cit9CisKK1dlYktpdERPTUVsZW1lbnQqIHdlYmtpdF9kb21fZG9jdW1l
bnRfZ2V0X2FjdGl2ZV9lbGVtZW50KFdlYktpdERPTURvY3VtZW50KiBzZWxmKQoreworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKKyAgICBXZWJDb3JlOjpEb2N1
bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6RWxl
bWVudD4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPmFjdGl2ZUVsZW1lbnQoKSk7
CisgICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOworfQorCitnY2hh
ciogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfY29tcGF0X21vZGUoV2ViS2l0RE9NRG9jdW1lbnQq
IHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOwor
ICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGdj
aGFyKiByZXN1bHQgPSBjb252ZXJ0VG9VVEY4U3RyaW5nKGl0ZW0tPmNvbXBhdE1vZGUoKSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKworZ2Jvb2xlYW4gd2Via2l0X2RvbV9kb2N1bWVudF9nZXRf
d2Via2l0X2lzX2Z1bGxzY3JlZW4oV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpCit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIEZBTFNFKTsKKyAgICBXZWJDb3JlOjpE
b2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBnYm9vbGVhbiByZXN1bHQg
PSBpdGVtLT53ZWJraXRJc0Z1bGxTY3JlZW4oKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitn
Ym9vbGVhbiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF93ZWJraXRfZnVsbHNjcmVlbl9rZXlib2Fy
ZF9pbnB1dF9hbGxvd2VkKFdlYktpdERPTURvY3VtZW50KiBzZWxmKQoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChX
RUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCBGQUxTRSk7CisgICAgV2ViQ29yZTo6RG9jdW1l
bnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgZ2Jvb2xlYW4gcmVzdWx0ID0gaXRl
bS0+d2Via2l0RnVsbFNjcmVlbktleWJvYXJkSW5wdXRBbGxvd2VkKCk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KKworV2ViS2l0RE9NRWxlbWVudCogd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfd2Vi
a2l0X2N1cnJlbnRfZnVsbHNjcmVlbl9lbGVtZW50KFdlYktpdERPTURvY3VtZW50KiBzZWxmKQor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKKyAgICBXZWJD
b3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBSZWZQdHI8V2Vi
Q29yZTo6RWxlbWVudD4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPndlYmtpdEN1
cnJlbnRGdWxsU2NyZWVuRWxlbWVudCgpKTsKKyAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVj
dFJlc3VsdC5nZXQoKSk7Cit9CisKK2dib29sZWFuIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3dl
YmtpdF9mdWxsc2NyZWVuX2VuYWJsZWQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpCit7CisgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIEZBTFNFKTsKKyAgICBXZWJDb3Jl
OjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBnYm9vbGVhbiByZXN1
bHQgPSBpdGVtLT53ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCgpOworICAgIHJldHVybiByZXN1bHQ7
Cit9CisKK1dlYktpdERPTUVsZW1lbnQqIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3dlYmtpdF9m
dWxsc2NyZWVuX2VsZW1lbnQoV2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOworICAgIFdlYkNvcmU6OkRvY3VtZW50
KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50
PiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+d2Via2l0RnVsbHNjcmVlbkVsZW1l
bnQoKSk7CisgICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOworfQor
CitXZWJLaXRET01FbGVtZW50KiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9wb2ludGVyX2xvY2tf
ZWxlbWVudChXZWJLaXRET01Eb2N1bWVudCogc2VsZikKK3sKKyNpZiBFTkFCTEUoUE9JTlRFUl9M
T0NLKQorICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKKyAgICBX
ZWJDb3JlOjpEb2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBSZWZQdHI8
V2ViQ29yZTo6RWxlbWVudD4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPnBvaW50
ZXJMb2NrRWxlbWVudCgpKTsKKyAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5n
ZXQoKSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzZWxmKTsKKyAgICBXRUJLSVRfV0FSTl9G
RUFUVVJFX05PVF9QUkVTRU5UKCJQb2ludGVyIExvY2siKQorICAgIHJldHVybiAwOworI2VuZGlm
IC8qIEVOQUJMRShQT0lOVEVSX0xPQ0spICovCit9CisKK2djaGFyKiB3ZWJraXRfZG9tX2RvY3Vt
ZW50X2dldF92aXNpYmlsaXR5X3N0YXRlKFdlYktpdERPTURvY3VtZW50KiBzZWxmKQoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxf
aWZfZmFpbChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKKyAgICBXZWJDb3JlOjpE
b2N1bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBzd2l0Y2ggKGl0ZW0tPnZp
c2liaWxpdHlTdGF0ZSgpKSB7CisgICAgY2FzZSBXZWJDb3JlOjpWaXNpYmlsaXR5U3RhdGU6Okhp
ZGRlbjoKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRUb1VURjhTdHJpbmcoImhpZGRlbiIpOworICAg
IGNhc2UgV2ViQ29yZTo6VmlzaWJpbGl0eVN0YXRlOjpWaXNpYmxlOgorICAgICAgICByZXR1cm4g
Y29udmVydFRvVVRGOFN0cmluZygidmlzaWJsZSIpOworICAgIGNhc2UgV2ViQ29yZTo6VmlzaWJp
bGl0eVN0YXRlOjpQcmVyZW5kZXI6CisgICAgICAgIHJldHVybiBjb252ZXJ0VG9VVEY4U3RyaW5n
KCJwcmVyZW5kZXIiKTsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK2dib29sZWFuIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2hpZGRl
bihXZWJLaXRET01Eb2N1bWVudCogc2VsZikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19E
T0NVTUVOVChzZWxmKSwgRkFMU0UpOworICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2Vi
S2l0Ojpjb3JlKHNlbGYpOworICAgIGdib29sZWFuIHJlc3VsdCA9IGl0ZW0tPmhpZGRlbigpOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK1dlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50KiB3ZWJr
aXRfZG9tX2RvY3VtZW50X2dldF9jdXJyZW50X3NjcmlwdChXZWJLaXRET01Eb2N1bWVudCogc2Vs
ZikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7CisgICAg
V2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgUmVmUHRy
PFdlYkNvcmU6OkhUTUxTY3JpcHRFbGVtZW50PiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIo
aXRlbS0+Y3VycmVudFNjcmlwdCgpKTsKKyAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJl
c3VsdC5nZXQoKSk7Cit9CisKK2djaGFyKiB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9vcmlnaW4o
V2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9D
VU1FTlQoc2VsZiksIDApOworICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpj
b3JlKHNlbGYpOworICAgIGdjaGFyKiByZXN1bHQgPSBjb252ZXJ0VG9VVEY4U3RyaW5nKGl0ZW0t
Pm9yaWdpbigpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitXZWJLaXRET01FbGVtZW50KiB3
ZWJraXRfZG9tX2RvY3VtZW50X2dldF9zY3JvbGxpbmdfZWxlbWVudChXZWJLaXRET01Eb2N1bWVu
dCogc2VsZikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChzZWxmKSwgMCk7
CisgICAgV2ViQ29yZTo6RG9jdW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAg
UmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+IGdvYmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihpdGVt
LT5zY3JvbGxpbmdFbGVtZW50KCkpOworICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVz
dWx0LmdldCgpKTsKK30KKworV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qIHdlYmtpdF9kb21fZG9j
dW1lbnRfZ2V0X2NoaWxkcmVuKFdlYktpdERPTURvY3VtZW50KiBzZWxmKQoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfRE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKKyAgICBXZWJDb3JlOjpEb2N1bWVu
dCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6SFRNTENv
bGxlY3Rpb24+IGdvYmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5jaGlsZHJlbigpKTsK
KyAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7Cit9CisKK1dlYktp
dERPTUVsZW1lbnQqIHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2ZpcnN0X2VsZW1lbnRfY2hpbGQo
V2ViS2l0RE9NRG9jdW1lbnQqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9D
VU1FTlQoc2VsZiksIDApOworICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpj
b3JlKHNlbGYpOworICAgIFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiBnb2JqZWN0UmVzdWx0ID0g
V1RGOjpnZXRQdHIoaXRlbS0+Zmlyc3RFbGVtZW50Q2hpbGQoKSk7CisgICAgcmV0dXJuIFdlYktp
dDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOworfQorCitXZWJLaXRET01FbGVtZW50KiB3ZWJr
aXRfZG9tX2RvY3VtZW50X2dldF9sYXN0X2VsZW1lbnRfY2hpbGQoV2ViS2l0RE9NRG9jdW1lbnQq
IHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRE9DVU1FTlQoc2VsZiksIDApOwor
ICAgIFdlYkNvcmU6OkRvY3VtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFJl
ZlB0cjxXZWJDb3JlOjpFbGVtZW50PiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+
bGFzdEVsZW1lbnRDaGlsZCgpKTsKKyAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3Vs
dC5nZXQoKSk7Cit9CisKK2d1bG9uZyB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9jaGlsZF9lbGVt
ZW50X2NvdW50KFdlYktpdERPTURvY3VtZW50KiBzZWxmKQoreworICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRf
RE9NX0lTX0RPQ1VNRU5UKHNlbGYpLCAwKTsKKyAgICBXZWJDb3JlOjpEb2N1bWVudCogaXRlbSA9
IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBndWxvbmcgcmVzdWx0ID0gaXRlbS0+Y2hpbGRFbGVt
ZW50Q291bnQoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitHX0dOVUNfRU5EX0lHTk9SRV9E
RVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9j
dW1lbnRQcml2YXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzM2NlZDUwZWIz
MjI3YmQ5NWEwMTU4ZTBkMzllMzM2MmU1MTVjNGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50UHJpdmF0ZS5oCisrKyAvZGV2L251bGwK
QEAgLTEsMzIgKzAsMCBAQAotLyoKLSAqICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0
IG9wZW4gc291cmNlIHByb2plY3QuCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICog
IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg
dmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCi0gKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqICB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpZm5kZWYgV2ViS2l0RE9NRG9jdW1l
bnRQcml2YXRlX2gKLSNkZWZpbmUgV2ViS2l0RE9NRG9jdW1lbnRQcml2YXRlX2gKLQotI2luY2x1
ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KLSNpbmNsdWRlIDx3ZWJraXRkb20vV2ViS2l0RE9NRG9j
dW1lbnQuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci1XZWJLaXRET01Eb2N1bWVudCogd3JhcERv
Y3VtZW50KFdlYkNvcmU6OkRvY3VtZW50Kik7Ci1XZWJLaXRET01Eb2N1bWVudCoga2l0KFdlYkNv
cmU6OkRvY3VtZW50Kik7Ci1XZWJDb3JlOjpEb2N1bWVudCogY29yZShXZWJLaXRET01Eb2N1bWVu
dCopOwotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvKiBXZWJLaXRET01Eb2N1bWVu
dFByaXZhdGVfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50VHlwZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9j
dW1lbnRUeXBlLmNwcAppbmRleCBhYzg3ZjY0MTcwNmRmMGVkNWE0NDE3MDY0NDk1NjNjZWE4Yzdj
MjM4Li44ODg3M2IyODJmMzM4NDY2MTc5NjI3NDQzNDQ0Zjc1MTg2YTI0YWZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NRG9jdW1lbnRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRUeXBlLmNwcApAQCAtMzYs
NiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogV2ViS2l0RE9NRG9jdW1lbnRUeXBlKiBraXQoV2ViQ29yZTo6RG9jdW1lbnRUeXBl
KiBvYmopCkBAIC0yNDksMyArMjUxLDQgQEAgZ2NoYXIqIHdlYmtpdF9kb21fZG9jdW1lbnRfdHlw
ZV9nZXRfc3lzdGVtX2lkKFdlYktpdERPTURvY3VtZW50VHlwZSogc2VsZikKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NRG9jdW1lbnRUeXBlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRG9jdW1lbnRUeXBlLmgKaW5kZXggOGI4OTlhMTE2
ZGFkMmNjODJjOTA3NzlhZWIwNWEzNTI4MzI2MWQzNy4uMzliNTEyMjI1ZjhmNThkZTJkYzliMDBh
ZTQxNDVkYTJlZDI5NjI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTURvY3VtZW50VHlwZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01Eb2N1bWVudFR5cGUuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTURvY3Vt
ZW50VHlwZUNsYXNzIHsKICAgICBXZWJLaXRET01Ob2RlQ2xhc3MgcGFyZW50X2NsYXNzOwogfTsK
IAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21f
ZG9jdW1lbnRfdHlwZV9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3
ZWJraXRfZG9tX2RvY3VtZW50X3R5cGVfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NRG9jdW1lbnRUeXBlCiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9kb2N1bWVu
dF90eXBlX2dldF9uYW1lKFdlYktpdERPTURvY3VtZW50VHlwZSogc2VsZik7CiAKIC8qKgpAQCAt
NjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF90eXBlX2dldF9uYW1lKFdlYktpdERP
TURvY3VtZW50VHlwZSogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRG9jdW1lbnRUeXBl
CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01OYW1lZE5vZGVN
YXAKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01OYW1lZE5vZGVNYXAqCitXRUJLSVRfREVQUkVD
QVRFRCBXZWJLaXRET01OYW1lZE5vZGVNYXAqCiB3ZWJraXRfZG9tX2RvY3VtZW50X3R5cGVfZ2V0
X2VudGl0aWVzKFdlYktpdERPTURvY3VtZW50VHlwZSogc2VsZik7CiAKIC8qKgpAQCAtNzEsOCAr
NzUsMTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF90eXBlX2dldF9lbnRpdGllcyhXZWJLaXRET01E
b2N1bWVudFR5cGUqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50VHlwZQog
ICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NTmFtZWROb2RlTWFw
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTmFtZWROb2RlTWFwKgorV0VCS0lUX0RFUFJFQ0FU
RUQgV2ViS2l0RE9NTmFtZWROb2RlTWFwKgogd2Via2l0X2RvbV9kb2N1bWVudF90eXBlX2dldF9u
b3RhdGlvbnMoV2ViS2l0RE9NRG9jdW1lbnRUeXBlKiBzZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4
NiwxMCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X3R5cGVfZ2V0X25vdGF0aW9ucyhXZWJLaXRET01E
b2N1bWVudFR5cGUqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50VHlwZQog
ICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRf
REVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9jdW1lbnRfdHlwZV9nZXRfaW50ZXJuYWxf
c3Vic2V0KFdlYktpdERPTURvY3VtZW50VHlwZSogc2VsZik7CiAKIC8qKgpAQCAtODksOCArOTcs
MTAgQEAgd2Via2l0X2RvbV9kb2N1bWVudF90eXBlX2dldF9pbnRlcm5hbF9zdWJzZXQoV2ViS2l0
RE9NRG9jdW1lbnRUeXBlKiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Eb2N1bWVudFR5
cGUKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2RvY3VtZW50X3R5cGVfZ2V0X3B1Ymxp
Y19pZChXZWJLaXRET01Eb2N1bWVudFR5cGUqIHNlbGYpOwogCiAvKioKQEAgLTk4LDggKzEwOCwx
MCBAQCB3ZWJraXRfZG9tX2RvY3VtZW50X3R5cGVfZ2V0X3B1YmxpY19pZChXZWJLaXRET01Eb2N1
bWVudFR5cGUqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTURvY3VtZW50VHlwZQogICoK
ICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZG9jdW1lbnRfdHlwZV9nZXRfc3lzdGVtX2lkKFdl
YktpdERPTURvY3VtZW50VHlwZSogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDdhODI2MzNhNThhMTBlY2Q1MjE4ZGRhMjNhMjRhYzgyZGRhNGVkYzYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1lbnQuY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsMTM5MCArMCwwIEBACi0vKgotICogIFRoaXMgZmlsZSBpcyBwYXJ0
IG9mIHRoZSBXZWJLaXQgb3BlbiBzb3VyY2UgcHJvamVjdC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
Ci0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRp
b24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCi0gKiAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCi0gKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYktpdERPTUVsZW1lbnQuaCIKLQotI2luY2x1ZGUgPFdl
YkNvcmUvQ1NTSW1wb3J0UnVsZS5oPgotI2luY2x1ZGUgIkRPTU9iamVjdENhY2hlLmgiCi0jaW5j
bHVkZSA8V2ViQ29yZS9ET01FeGNlcHRpb24uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0RPTVJlY3Qu
aD4KLSNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+Ci0jaW5jbHVkZSAiR09iamVjdEV2ZW50
TGlzdGVuZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0hUTUxOYW1lcy5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TdHlsZWRF
bGVtZW50Lmg+Ci0jaW5jbHVkZSAiV2ViS2l0RE9NQXR0clByaXZhdGUuaCIKLSNpbmNsdWRlICJX
ZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uUHJpdmF0ZS5oIgotI2luY2x1ZGUgIldlYktpdERP
TUNsaWVudFJlY3RMaXN0UHJpdmF0ZS5oIgotI2luY2x1ZGUgIldlYktpdERPTUNsaWVudFJlY3RQ
cml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0RE9NRE9NVG9rZW5MaXN0UHJpdmF0ZS5oIgotI2lu
Y2x1ZGUgIldlYktpdERPTUVsZW1lbnRQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0RE9NRXZl
bnRQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0RE9NRXZlbnRUYXJnZXQuaCIKLSNpbmNsdWRl
ICJXZWJLaXRET01IVE1MQ29sbGVjdGlvblByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRET01O
YW1lZE5vZGVNYXBQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0RE9NTm9kZUxpc3RQcml2YXRl
LmgiCi0jaW5jbHVkZSAiV2ViS2l0RE9NTm9kZVByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRE
T01Qcml2YXRlLmgiCi0jaW5jbHVkZSAiQ29udmVydFRvVVRGOFN0cmluZy5oIgotI2luY2x1ZGUg
IldlYktpdERPTUVsZW1lbnRVbnN0YWJsZS5oIgotI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KLSNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJLaXRET01F
bGVtZW50KiBraXQoV2ViQ29yZTo6RWxlbWVudCogb2JqKQotewotICAgIHJldHVybiBXRUJLSVRf
RE9NX0VMRU1FTlQoa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6Ok5vZGUqPihvYmopKSk7Ci19Ci0K
LVdlYkNvcmU6OkVsZW1lbnQqIGNvcmUoV2ViS2l0RE9NRWxlbWVudCogcmVxdWVzdCkKLXsKLSAg
ICByZXR1cm4gcmVxdWVzdCA/IHN0YXRpY19jYXN0PFdlYkNvcmU6OkVsZW1lbnQqPihXRUJLSVRf
RE9NX09CSkVDVChyZXF1ZXN0KS0+Y29yZU9iamVjdCkgOiAwOwotfQotCi1XZWJLaXRET01FbGVt
ZW50KiB3cmFwRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KiBjb3JlT2JqZWN0KQotewotICAgIEFT
U0VSVChjb3JlT2JqZWN0KTsKLSAgICByZXR1cm4gV0VCS0lUX0RPTV9FTEVNRU5UKGdfb2JqZWN0
X25ldyhXRUJLSVRfRE9NX1RZUEVfRUxFTUVOVCwgImNvcmUtb2JqZWN0IiwgY29yZU9iamVjdCwg
bnVsbHB0cikpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotc3RhdGljIGdib29sZWFu
IHdlYmtpdF9kb21fZWxlbWVudF9kaXNwYXRjaF9ldmVudChXZWJLaXRET01FdmVudFRhcmdldCog
dGFyZ2V0LCBXZWJLaXRET01FdmVudCogZXZlbnQsIEdFcnJvcioqIGVycm9yKQotewotICAgIFdl
YkNvcmU6OkV2ZW50KiBjb3JlRXZlbnQgPSBXZWJLaXQ6OmNvcmUoZXZlbnQpOwotICAgIGlmICgh
Y29yZUV2ZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgV2ViQ29yZTo6RWxlbWVudCog
Y29yZVRhcmdldCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkVsZW1lbnQqPihXRUJLSVRfRE9NX09C
SkVDVCh0YXJnZXQpLT5jb3JlT2JqZWN0KTsKLQotICAgIGF1dG8gcmVzdWx0ID0gY29yZVRhcmdl
dC0+ZGlzcGF0Y2hFdmVudEZvckJpbmRpbmdzKCpjb3JlRXZlbnQpOwotICAgIGlmIChyZXN1bHQu
aGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgYXV0byBkZXNjcmlwdGlvbiA9IFdlYkNvcmU6OkRP
TUV4Y2VwdGlvbjo6ZGVzY3JpcHRpb24ocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKS5jb2RlKCkp
OwotICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5n
KCJXRUJLSVRfRE9NIiksIGRlc2NyaXB0aW9uLmxlZ2FjeUNvZGUsIGRlc2NyaXB0aW9uLm5hbWUp
OwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIHJldHVybiByZXN1bHQucmVsZWFz
ZVJldHVyblZhbHVlKCk7Ci19Ci0KLXN0YXRpYyBnYm9vbGVhbiB3ZWJraXRfZG9tX2VsZW1lbnRf
YWRkX2V2ZW50X2xpc3RlbmVyKFdlYktpdERPTUV2ZW50VGFyZ2V0KiB0YXJnZXQsIGNvbnN0IGNo
YXIqIGV2ZW50TmFtZSwgR0Nsb3N1cmUqIGhhbmRsZXIsIGdib29sZWFuIHVzZUNhcHR1cmUpCi17
Ci0gICAgV2ViQ29yZTo6RWxlbWVudCogY29yZVRhcmdldCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6
OkVsZW1lbnQqPihXRUJLSVRfRE9NX09CSkVDVCh0YXJnZXQpLT5jb3JlT2JqZWN0KTsKLSAgICBy
ZXR1cm4gV2ViS2l0OjpHT2JqZWN0RXZlbnRMaXN0ZW5lcjo6YWRkRXZlbnRMaXN0ZW5lcihHX09C
SkVDVCh0YXJnZXQpLCBjb3JlVGFyZ2V0LCBldmVudE5hbWUsIGhhbmRsZXIsIHVzZUNhcHR1cmUp
OwotfQotCi1zdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X2RvbV9lbGVtZW50X3JlbW92ZV9ldmVudF9s
aXN0ZW5lcihXZWJLaXRET01FdmVudFRhcmdldCogdGFyZ2V0LCBjb25zdCBjaGFyKiBldmVudE5h
bWUsIEdDbG9zdXJlKiBoYW5kbGVyLCBnYm9vbGVhbiB1c2VDYXB0dXJlKQotewotICAgIFdlYkNv
cmU6OkVsZW1lbnQqIGNvcmVUYXJnZXQgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpFbGVtZW50Kj4o
V0VCS0lUX0RPTV9PQkpFQ1QodGFyZ2V0KS0+Y29yZU9iamVjdCk7Ci0gICAgcmV0dXJuIFdlYktp
dDo6R09iamVjdEV2ZW50TGlzdGVuZXI6OnJlbW92ZUV2ZW50TGlzdGVuZXIoR19PQkpFQ1QodGFy
Z2V0KSwgY29yZVRhcmdldCwgZXZlbnROYW1lLCBoYW5kbGVyLCB1c2VDYXB0dXJlKTsKLX0KLQot
c3RhdGljIHZvaWQgd2Via2l0X2RvbV9lbGVtZW50X2RvbV9ldmVudF90YXJnZXRfaW5pdChXZWJL
aXRET01FdmVudFRhcmdldElmYWNlKiBpZmFjZSkKLXsKLSAgICBpZmFjZS0+ZGlzcGF0Y2hfZXZl
bnQgPSB3ZWJraXRfZG9tX2VsZW1lbnRfZGlzcGF0Y2hfZXZlbnQ7Ci0gICAgaWZhY2UtPmFkZF9l
dmVudF9saXN0ZW5lciA9IHdlYmtpdF9kb21fZWxlbWVudF9hZGRfZXZlbnRfbGlzdGVuZXI7Ci0g
ICAgaWZhY2UtPnJlbW92ZV9ldmVudF9saXN0ZW5lciA9IHdlYmtpdF9kb21fZWxlbWVudF9yZW1v
dmVfZXZlbnRfbGlzdGVuZXI7Ci19Ci0KLUdfREVGSU5FX1RZUEVfV0lUSF9DT0RFKFdlYktpdERP
TUVsZW1lbnQsIHdlYmtpdF9kb21fZWxlbWVudCwgV0VCS0lUX0RPTV9UWVBFX05PREUsIEdfSU1Q
TEVNRU5UX0lOVEVSRkFDRShXRUJLSVRfRE9NX1RZUEVfRVZFTlRfVEFSR0VULCB3ZWJraXRfZG9t
X2VsZW1lbnRfZG9tX2V2ZW50X3RhcmdldF9pbml0KSkKLQotZW51bSB7Ci0gICAgRE9NX0VMRU1F
TlRfUFJPUF8wLAotICAgIERPTV9FTEVNRU5UX1BST1BfVEFHX05BTUUsCi0gICAgRE9NX0VMRU1F
TlRfUFJPUF9BVFRSSUJVVEVTLAotICAgIERPTV9FTEVNRU5UX1BST1BfU1RZTEUsCi0gICAgRE9N
X0VMRU1FTlRfUFJPUF9JRCwKLSAgICBET01fRUxFTUVOVF9QUk9QX05BTUVTUEFDRV9VUkksCi0g
ICAgRE9NX0VMRU1FTlRfUFJPUF9QUkVGSVgsCi0gICAgRE9NX0VMRU1FTlRfUFJPUF9MT0NBTF9O
QU1FLAotICAgIERPTV9FTEVNRU5UX1BST1BfT0ZGU0VUX0xFRlQsCi0gICAgRE9NX0VMRU1FTlRf
UFJPUF9PRkZTRVRfVE9QLAotICAgIERPTV9FTEVNRU5UX1BST1BfT0ZGU0VUX1dJRFRILAotICAg
IERPTV9FTEVNRU5UX1BST1BfT0ZGU0VUX0hFSUdIVCwKLSAgICBET01fRUxFTUVOVF9QUk9QX0NM
SUVOVF9MRUZULAotICAgIERPTV9FTEVNRU5UX1BST1BfQ0xJRU5UX1RPUCwKLSAgICBET01fRUxF
TUVOVF9QUk9QX0NMSUVOVF9XSURUSCwKLSAgICBET01fRUxFTUVOVF9QUk9QX0NMSUVOVF9IRUlH
SFQsCi0gICAgRE9NX0VMRU1FTlRfUFJPUF9TQ1JPTExfTEVGVCwKLSAgICBET01fRUxFTUVOVF9Q
Uk9QX1NDUk9MTF9UT1AsCi0gICAgRE9NX0VMRU1FTlRfUFJPUF9TQ1JPTExfV0lEVEgsCi0gICAg
RE9NX0VMRU1FTlRfUFJPUF9TQ1JPTExfSEVJR0hULAotICAgIERPTV9FTEVNRU5UX1BST1BfT0ZG
U0VUX1BBUkVOVCwKLSAgICBET01fRUxFTUVOVF9QUk9QX0lOTkVSX0hUTUwsCi0gICAgRE9NX0VM
RU1FTlRfUFJPUF9PVVRFUl9IVE1MLAotICAgIERPTV9FTEVNRU5UX1BST1BfQ0xBU1NfTkFNRSwK
LSAgICBET01fRUxFTUVOVF9QUk9QX0NMQVNTX0xJU1QsCi0gICAgRE9NX0VMRU1FTlRfUFJPUF9X
RUJLSVRfUkVHSU9OX09WRVJTRVQsCi0gICAgRE9NX0VMRU1FTlRfUFJPUF9QUkVWSU9VU19FTEVN
RU5UX1NJQkxJTkcsCi0gICAgRE9NX0VMRU1FTlRfUFJPUF9ORVhUX0VMRU1FTlRfU0lCTElORywK
LSAgICBET01fRUxFTUVOVF9QUk9QX0NISUxEUkVOLAotICAgIERPTV9FTEVNRU5UX1BST1BfRklS
U1RfRUxFTUVOVF9DSElMRCwKLSAgICBET01fRUxFTUVOVF9QUk9QX0xBU1RfRUxFTUVOVF9DSElM
RCwKLSAgICBET01fRUxFTUVOVF9QUk9QX0NISUxEX0VMRU1FTlRfQ09VTlQsCi19OwotCi1zdGF0
aWMgdm9pZCB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwg
Z3VpbnQgcHJvcGVydHlJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyogcHNwZWMp
Ci17Ci0gICAgV2ViS2l0RE9NRWxlbWVudCogc2VsZiA9IFdFQktJVF9ET01fRUxFTUVOVChvYmpl
Y3QpOwotCi0gICAgc3dpdGNoIChwcm9wZXJ0eUlkKSB7Ci0gICAgY2FzZSBET01fRUxFTUVOVF9Q
Uk9QX0lEOgotICAgICAgICB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X2lkKHNlbGYsIGdfdmFsdWVf
Z2V0X3N0cmluZyh2YWx1ZSkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIERPTV9FTEVNRU5U
X1BST1BfU0NST0xMX0xFRlQ6Ci0gICAgICAgIHdlYmtpdF9kb21fZWxlbWVudF9zZXRfc2Nyb2xs
X2xlZnQoc2VsZiwgZ192YWx1ZV9nZXRfbG9uZyh2YWx1ZSkpOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIERPTV9FTEVNRU5UX1BST1BfU0NST0xMX1RPUDoKLSAgICAgICAgd2Via2l0X2RvbV9l
bGVtZW50X3NldF9zY3JvbGxfdG9wKHNlbGYsIGdfdmFsdWVfZ2V0X2xvbmcodmFsdWUpKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBET01fRUxFTUVOVF9QUk9QX0lOTkVSX0hUTUw6Ci0gICAg
ICAgIHdlYmtpdF9kb21fZWxlbWVudF9zZXRfaW5uZXJfaHRtbChzZWxmLCBnX3ZhbHVlX2dldF9z
dHJpbmcodmFsdWUpLCBudWxscHRyKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBET01fRUxF
TUVOVF9QUk9QX09VVEVSX0hUTUw6Ci0gICAgICAgIHdlYmtpdF9kb21fZWxlbWVudF9zZXRfb3V0
ZXJfaHRtbChzZWxmLCBnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpLCBudWxscHRyKTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBET01fRUxFTUVOVF9QUk9QX0NMQVNTX05BTUU6Ci0gICAgICAg
IHdlYmtpdF9kb21fZWxlbWVudF9zZXRfY2xhc3NfbmFtZShzZWxmLCBnX3ZhbHVlX2dldF9zdHJp
bmcodmFsdWUpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgR19PQkpF
Q1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcGVydHlJZCwgcHNwZWMpOwot
ICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF9kb21fZWxlbWVu
dF9nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLCBHVmFsdWUq
IHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKLXsKLSAgICBXZWJLaXRET01FbGVtZW50KiBzZWxm
ID0gV0VCS0lUX0RPTV9FTEVNRU5UKG9iamVjdCk7Ci0KLSAgICBzd2l0Y2ggKHByb3BlcnR5SWQp
IHsKLSAgICBjYXNlIERPTV9FTEVNRU5UX1BST1BfVEFHX05BTUU6Ci0gICAgICAgIGdfdmFsdWVf
dGFrZV9zdHJpbmcodmFsdWUsIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfdGFnX25hbWUoc2VsZikp
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIERPTV9FTEVNRU5UX1BST1BfQVRUUklCVVRFUzoK
LSAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0
X2F0dHJpYnV0ZXMoc2VsZikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIERPTV9FTEVNRU5U
X1BST1BfU1RZTEU6Ci0gICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2Rv
bV9lbGVtZW50X2dldF9zdHlsZShzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRE9N
X0VMRU1FTlRfUFJPUF9JRDoKLSAgICAgICAgZ192YWx1ZV90YWtlX3N0cmluZyh2YWx1ZSwgd2Vi
a2l0X2RvbV9lbGVtZW50X2dldF9pZChzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
RE9NX0VMRU1FTlRfUFJPUF9OQU1FU1BBQ0VfVVJJOgotICAgICAgICBnX3ZhbHVlX3Rha2Vfc3Ry
aW5nKHZhbHVlLCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X25hbWVzcGFjZV91cmkoc2VsZikpOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIERPTV9FTEVNRU5UX1BST1BfUFJFRklYOgotICAgICAg
ICBnX3ZhbHVlX3Rha2Vfc3RyaW5nKHZhbHVlLCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3ByZWZp
eChzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRE9NX0VMRU1FTlRfUFJPUF9MT0NB
TF9OQU1FOgotICAgICAgICBnX3ZhbHVlX3Rha2Vfc3RyaW5nKHZhbHVlLCB3ZWJraXRfZG9tX2Vs
ZW1lbnRfZ2V0X2xvY2FsX25hbWUoc2VsZikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIERP
TV9FTEVNRU5UX1BST1BfT0ZGU0VUX0xFRlQ6Ci0gICAgICAgIGdfdmFsdWVfc2V0X2RvdWJsZSh2
YWx1ZSwgd2Via2l0X2RvbV9lbGVtZW50X2dldF9vZmZzZXRfbGVmdChzZWxmKSk7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgRE9NX0VMRU1FTlRfUFJPUF9PRkZTRVRfVE9QOgotICAgICAgICBn
X3ZhbHVlX3NldF9kb3VibGUodmFsdWUsIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfb2Zmc2V0X3Rv
cChzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRE9NX0VMRU1FTlRfUFJPUF9PRkZT
RVRfV0lEVEg6Ci0gICAgICAgIGdfdmFsdWVfc2V0X2RvdWJsZSh2YWx1ZSwgd2Via2l0X2RvbV9l
bGVtZW50X2dldF9vZmZzZXRfd2lkdGgoc2VsZikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IERPTV9FTEVNRU5UX1BST1BfT0ZGU0VUX0hFSUdIVDoKLSAgICAgICAgZ192YWx1ZV9zZXRfZG91
YmxlKHZhbHVlLCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X29mZnNldF9oZWlnaHQoc2VsZikpOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIERPTV9FTEVNRU5UX1BST1BfQ0xJRU5UX0xFRlQ6Ci0g
ICAgICAgIGdfdmFsdWVfc2V0X2RvdWJsZSh2YWx1ZSwgd2Via2l0X2RvbV9lbGVtZW50X2dldF9j
bGllbnRfbGVmdChzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRE9NX0VMRU1FTlRf
UFJPUF9DTElFTlRfVE9QOgotICAgICAgICBnX3ZhbHVlX3NldF9kb3VibGUodmFsdWUsIHdlYmtp
dF9kb21fZWxlbWVudF9nZXRfY2xpZW50X3RvcChzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgRE9NX0VMRU1FTlRfUFJPUF9DTElFTlRfV0lEVEg6Ci0gICAgICAgIGdfdmFsdWVfc2V0
X2RvdWJsZSh2YWx1ZSwgd2Via2l0X2RvbV9lbGVtZW50X2dldF9jbGllbnRfd2lkdGgoc2VsZikp
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIERPTV9FTEVNRU5UX1BST1BfQ0xJRU5UX0hFSUdI
VDoKLSAgICAgICAgZ192YWx1ZV9zZXRfZG91YmxlKHZhbHVlLCB3ZWJraXRfZG9tX2VsZW1lbnRf
Z2V0X2NsaWVudF9oZWlnaHQoc2VsZikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIERPTV9F
TEVNRU5UX1BST1BfU0NST0xMX0xFRlQ6Ci0gICAgICAgIGdfdmFsdWVfc2V0X2xvbmcodmFsdWUs
IHdlYmtpdF9kb21fZWxlbWVudF9nZXRfc2Nyb2xsX2xlZnQoc2VsZikpOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIERPTV9FTEVNRU5UX1BST1BfU0NST0xMX1RPUDoKLSAgICAgICAgZ192YWx1
ZV9zZXRfbG9uZyh2YWx1ZSwgd2Via2l0X2RvbV9lbGVtZW50X2dldF9zY3JvbGxfdG9wKHNlbGYp
KTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBET01fRUxFTUVOVF9QUk9QX1NDUk9MTF9XSURU
SDoKLSAgICAgICAgZ192YWx1ZV9zZXRfbG9uZyh2YWx1ZSwgd2Via2l0X2RvbV9lbGVtZW50X2dl
dF9zY3JvbGxfd2lkdGgoc2VsZikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIERPTV9FTEVN
RU5UX1BST1BfU0NST0xMX0hFSUdIVDoKLSAgICAgICAgZ192YWx1ZV9zZXRfbG9uZyh2YWx1ZSwg
d2Via2l0X2RvbV9lbGVtZW50X2dldF9zY3JvbGxfaGVpZ2h0KHNlbGYpKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBET01fRUxFTUVOVF9QUk9QX09GRlNFVF9QQVJFTlQ6Ci0gICAgICAgIGdf
dmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2RvbV9lbGVtZW50X2dldF9vZmZzZXRfcGFy
ZW50KHNlbGYpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBET01fRUxFTUVOVF9QUk9QX0lO
TkVSX0hUTUw6Ci0gICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUsIHdlYmtpdF9kb21f
ZWxlbWVudF9nZXRfaW5uZXJfaHRtbChzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
RE9NX0VMRU1FTlRfUFJPUF9PVVRFUl9IVE1MOgotICAgICAgICBnX3ZhbHVlX3Rha2Vfc3RyaW5n
KHZhbHVlLCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X291dGVyX2h0bWwoc2VsZikpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIERPTV9FTEVNRU5UX1BST1BfQ0xBU1NfTkFNRToKLSAgICAgICAg
Z192YWx1ZV90YWtlX3N0cmluZyh2YWx1ZSwgd2Via2l0X2RvbV9lbGVtZW50X2dldF9jbGFzc19u
YW1lKHNlbGYpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBET01fRUxFTUVOVF9QUk9QX0NM
QVNTX0xJU1Q6Ci0gICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2RvbV9l
bGVtZW50X2dldF9jbGFzc19saXN0KHNlbGYpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBE
T01fRUxFTUVOVF9QUk9QX1dFQktJVF9SRUdJT05fT1ZFUlNFVDoKLSAgICAgICAgZ193YXJuaW5n
KCIlczogQ1NTIFJlZ2lvbnMgc3VwcG9ydCBoYXMgYmVlbiByZW1vdmVkLCB0aGUgd2Via2l0LXJl
Z2lvbi1vdmVyc2V0IHByb3BlcnR5IG5vIGxvbmdlciB3b3Jrcy4iLCBfX2Z1bmNfXyk7Ci0gICAg
ICAgIGdfdmFsdWVfc2V0X3N0YXRpY19zdHJpbmcodmFsdWUsIG51bGxwdHIpOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIERPTV9FTEVNRU5UX1BST1BfUFJFVklPVVNfRUxFTUVOVF9TSUJMSU5H
OgotICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIHdlYmtpdF9kb21fZWxlbWVudF9n
ZXRfcHJldmlvdXNfZWxlbWVudF9zaWJsaW5nKHNlbGYpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBET01fRUxFTUVOVF9QUk9QX05FWFRfRUxFTUVOVF9TSUJMSU5HOgotICAgICAgICBnX3Zh
bHVlX3NldF9vYmplY3QodmFsdWUsIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfbmV4dF9lbGVtZW50
X3NpYmxpbmcoc2VsZikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIERPTV9FTEVNRU5UX1BS
T1BfQ0hJTERSRU46Ci0gICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2Rv
bV9lbGVtZW50X2dldF9jaGlsZHJlbihzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
RE9NX0VMRU1FTlRfUFJPUF9GSVJTVF9FTEVNRU5UX0NISUxEOgotICAgICAgICBnX3ZhbHVlX3Nl
dF9vYmplY3QodmFsdWUsIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfZmlyc3RfZWxlbWVudF9jaGls
ZChzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRE9NX0VMRU1FTlRfUFJPUF9MQVNU
X0VMRU1FTlRfQ0hJTEQ6Ci0gICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0
X2RvbV9lbGVtZW50X2dldF9sYXN0X2VsZW1lbnRfY2hpbGQoc2VsZikpOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIERPTV9FTEVNRU5UX1BST1BfQ0hJTERfRUxFTUVOVF9DT1VOVDoKLSAgICAg
ICAgZ192YWx1ZV9zZXRfdWxvbmcodmFsdWUsIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfY2hpbGRf
ZWxlbWVudF9jb3VudChzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAg
ICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BlcnR5SWQs
IHBzcGVjKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRf
ZG9tX2VsZW1lbnRfY2xhc3NfaW5pdChXZWJLaXRET01FbGVtZW50Q2xhc3MqIHJlcXVlc3RDbGFz
cykKLXsKLSAgICBHT2JqZWN0Q2xhc3MqIGdvYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKHJl
cXVlc3RDbGFzcyk7Ci0gICAgZ29iamVjdENsYXNzLT5zZXRfcHJvcGVydHkgPSB3ZWJraXRfZG9t
X2VsZW1lbnRfc2V0X3Byb3BlcnR5OwotICAgIGdvYmplY3RDbGFzcy0+Z2V0X3Byb3BlcnR5ID0g
d2Via2l0X2RvbV9lbGVtZW50X2dldF9wcm9wZXJ0eTsKLQotICAgIGdfb2JqZWN0X2NsYXNzX2lu
c3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdvYmplY3RDbGFzcywKLSAgICAgICAgRE9NX0VMRU1F
TlRfUFJPUF9UQUdfTkFNRSwKLSAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygKLSAgICAgICAg
ICAgICJ0YWctbmFtZSIsCi0gICAgICAgICAgICAiRWxlbWVudDp0YWctbmFtZSIsCi0gICAgICAg
ICAgICAicmVhZC1vbmx5IGdjaGFyKiBFbGVtZW50OnRhZy1uYW1lIiwKLSAgICAgICAgICAgICIi
LAotICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAgICBnX29iamVjdF9j
bGFzc19pbnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xhc3MsCi0gICAgICAgIERP
TV9FTEVNRU5UX1BST1BfQVRUUklCVVRFUywKLSAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgK
LSAgICAgICAgICAgICJhdHRyaWJ1dGVzIiwKLSAgICAgICAgICAgICJFbGVtZW50OmF0dHJpYnV0
ZXMiLAotICAgICAgICAgICAgInJlYWQtb25seSBXZWJLaXRET01OYW1lZE5vZGVNYXAqIEVsZW1l
bnQ6YXR0cmlidXRlcyIsCi0gICAgICAgICAgICBXRUJLSVRfRE9NX1RZUEVfTkFNRURfTk9ERV9N
QVAsCi0gICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAgIGdfb2JqZWN0
X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdvYmplY3RDbGFzcywKLSAgICAgICAg
RE9NX0VMRU1FTlRfUFJPUF9TVFlMRSwKLSAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgKLSAg
ICAgICAgICAgICJzdHlsZSIsCi0gICAgICAgICAgICAiRWxlbWVudDpzdHlsZSIsCi0gICAgICAg
ICAgICAicmVhZC1vbmx5IFdlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24qIEVsZW1lbnQ6c3R5
bGUiLAotICAgICAgICAgICAgV0VCS0lUX0RPTV9UWVBFX0NTU19TVFlMRV9ERUNMQVJBVElPTiwK
LSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgZ19vYmplY3RfY2xh
c3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBET01f
RUxFTUVOVF9QUk9QX0lELAotICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKAotICAgICAgICAg
ICAgImlkIiwKLSAgICAgICAgICAgICJFbGVtZW50OmlkIiwKLSAgICAgICAgICAgICJyZWFkLXdy
aXRlIGdjaGFyKiBFbGVtZW50OmlkIiwKLSAgICAgICAgICAgICIiLAotICAgICAgICAgICAgV0VC
S0lUX1BBUkFNX1JFQURXUklURSkpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9w
ZXJ0eSgKLSAgICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBET01fRUxFTUVOVF9QUk9QX05B
TUVTUEFDRV9VUkksCi0gICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoCi0gICAgICAgICAgICAi
bmFtZXNwYWNlLXVyaSIsCi0gICAgICAgICAgICAiRWxlbWVudDpuYW1lc3BhY2UtdXJpIiwKLSAg
ICAgICAgICAgICJyZWFkLW9ubHkgZ2NoYXIqIEVsZW1lbnQ6bmFtZXNwYWNlLXVyaSIsCi0gICAg
ICAgICAgICAiIiwKLSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAg
Z19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVjdENsYXNzLAot
ICAgICAgICBET01fRUxFTUVOVF9QUk9QX1BSRUZJWCwKLSAgICAgICAgZ19wYXJhbV9zcGVjX3N0
cmluZygKLSAgICAgICAgICAgICJwcmVmaXgiLAotICAgICAgICAgICAgIkVsZW1lbnQ6cHJlZml4
IiwKLSAgICAgICAgICAgICJyZWFkLW9ubHkgZ2NoYXIqIEVsZW1lbnQ6cHJlZml4IiwKLSAgICAg
ICAgICAgICIiLAotICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAgICBn
X29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xhc3MsCi0g
ICAgICAgIERPTV9FTEVNRU5UX1BST1BfTE9DQUxfTkFNRSwKLSAgICAgICAgZ19wYXJhbV9zcGVj
X3N0cmluZygKLSAgICAgICAgICAgICJsb2NhbC1uYW1lIiwKLSAgICAgICAgICAgICJFbGVtZW50
OmxvY2FsLW5hbWUiLAotICAgICAgICAgICAgInJlYWQtb25seSBnY2hhciogRWxlbWVudDpsb2Nh
bC1uYW1lIiwKLSAgICAgICAgICAgICIiLAotICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURB
QkxFKSk7Ci0KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBn
b2JqZWN0Q2xhc3MsCi0gICAgICAgIERPTV9FTEVNRU5UX1BST1BfT0ZGU0VUX0xFRlQsCi0gICAg
ICAgIGdfcGFyYW1fc3BlY19kb3VibGUoCi0gICAgICAgICAgICAib2Zmc2V0LWxlZnQiLAotICAg
ICAgICAgICAgIkVsZW1lbnQ6b2Zmc2V0LWxlZnQiLAotICAgICAgICAgICAgInJlYWQtb25seSBn
ZG91YmxlIEVsZW1lbnQ6b2Zmc2V0LWxlZnQiLAotICAgICAgICAgICAgLUdfTUFYRE9VQkxFLCBH
X01BWERPVUJMRSwgMCwKLSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0g
ICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVjdENsYXNz
LAotICAgICAgICBET01fRUxFTUVOVF9QUk9QX09GRlNFVF9UT1AsCi0gICAgICAgIGdfcGFyYW1f
c3BlY19kb3VibGUoCi0gICAgICAgICAgICAib2Zmc2V0LXRvcCIsCi0gICAgICAgICAgICAiRWxl
bWVudDpvZmZzZXQtdG9wIiwKLSAgICAgICAgICAgICJyZWFkLW9ubHkgZ2RvdWJsZSBFbGVtZW50
Om9mZnNldC10b3AiLAotICAgICAgICAgICAgLUdfTUFYRE9VQkxFLCBHX01BWERPVUJMRSwgMCwK
LSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgZ19vYmplY3RfY2xh
c3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBET01f
RUxFTUVOVF9QUk9QX09GRlNFVF9XSURUSCwKLSAgICAgICAgZ19wYXJhbV9zcGVjX2RvdWJsZSgK
LSAgICAgICAgICAgICJvZmZzZXQtd2lkdGgiLAotICAgICAgICAgICAgIkVsZW1lbnQ6b2Zmc2V0
LXdpZHRoIiwKLSAgICAgICAgICAgICJyZWFkLW9ubHkgZ2RvdWJsZSBFbGVtZW50Om9mZnNldC13
aWR0aCIsCi0gICAgICAgICAgICAtR19NQVhET1VCTEUsIEdfTUFYRE9VQkxFLCAwLAotICAgICAg
ICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAgICBnX29iamVjdF9jbGFzc19pbnN0
YWxsX3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xhc3MsCi0gICAgICAgIERPTV9FTEVNRU5U
X1BST1BfT0ZGU0VUX0hFSUdIVCwKLSAgICAgICAgZ19wYXJhbV9zcGVjX2RvdWJsZSgKLSAgICAg
ICAgICAgICJvZmZzZXQtaGVpZ2h0IiwKLSAgICAgICAgICAgICJFbGVtZW50Om9mZnNldC1oZWln
aHQiLAotICAgICAgICAgICAgInJlYWQtb25seSBnZG91YmxlIEVsZW1lbnQ6b2Zmc2V0LWhlaWdo
dCIsCi0gICAgICAgICAgICAtR19NQVhET1VCTEUsIEdfTUFYRE9VQkxFLCAwLAotICAgICAgICAg
ICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxs
X3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xhc3MsCi0gICAgICAgIERPTV9FTEVNRU5UX1BS
T1BfQ0xJRU5UX0xFRlQsCi0gICAgICAgIGdfcGFyYW1fc3BlY19kb3VibGUoCi0gICAgICAgICAg
ICAiY2xpZW50LWxlZnQiLAotICAgICAgICAgICAgIkVsZW1lbnQ6Y2xpZW50LWxlZnQiLAotICAg
ICAgICAgICAgInJlYWQtb25seSBnZG91YmxlIEVsZW1lbnQ6Y2xpZW50LWxlZnQiLAotICAgICAg
ICAgICAgLUdfTUFYRE9VQkxFLCBHX01BWERPVUJMRSwgMCwKLSAgICAgICAgICAgIFdFQktJVF9Q
QVJBTV9SRUFEQUJMRSkpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgK
LSAgICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBET01fRUxFTUVOVF9QUk9QX0NMSUVOVF9U
T1AsCi0gICAgICAgIGdfcGFyYW1fc3BlY19kb3VibGUoCi0gICAgICAgICAgICAiY2xpZW50LXRv
cCIsCi0gICAgICAgICAgICAiRWxlbWVudDpjbGllbnQtdG9wIiwKLSAgICAgICAgICAgICJyZWFk
LW9ubHkgZ2RvdWJsZSBFbGVtZW50OmNsaWVudC10b3AiLAotICAgICAgICAgICAgLUdfTUFYRE9V
QkxFLCBHX01BWERPVUJMRSwgMCwKLSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkp
OwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVj
dENsYXNzLAotICAgICAgICBET01fRUxFTUVOVF9QUk9QX0NMSUVOVF9XSURUSCwKLSAgICAgICAg
Z19wYXJhbV9zcGVjX2RvdWJsZSgKLSAgICAgICAgICAgICJjbGllbnQtd2lkdGgiLAotICAgICAg
ICAgICAgIkVsZW1lbnQ6Y2xpZW50LXdpZHRoIiwKLSAgICAgICAgICAgICJyZWFkLW9ubHkgZ2Rv
dWJsZSBFbGVtZW50OmNsaWVudC13aWR0aCIsCi0gICAgICAgICAgICAtR19NQVhET1VCTEUsIEdf
TUFYRE9VQkxFLCAwLAotICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAg
ICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xhc3Ms
Ci0gICAgICAgIERPTV9FTEVNRU5UX1BST1BfQ0xJRU5UX0hFSUdIVCwKLSAgICAgICAgZ19wYXJh
bV9zcGVjX2RvdWJsZSgKLSAgICAgICAgICAgICJjbGllbnQtaGVpZ2h0IiwKLSAgICAgICAgICAg
ICJFbGVtZW50OmNsaWVudC1oZWlnaHQiLAotICAgICAgICAgICAgInJlYWQtb25seSBnZG91Ymxl
IEVsZW1lbnQ6Y2xpZW50LWhlaWdodCIsCi0gICAgICAgICAgICAtR19NQVhET1VCTEUsIEdfTUFY
RE9VQkxFLCAwLAotICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAgICBn
X29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xhc3MsCi0g
ICAgICAgIERPTV9FTEVNRU5UX1BST1BfU0NST0xMX0xFRlQsCi0gICAgICAgIGdfcGFyYW1fc3Bl
Y19sb25nKAotICAgICAgICAgICAgInNjcm9sbC1sZWZ0IiwKLSAgICAgICAgICAgICJFbGVtZW50
OnNjcm9sbC1sZWZ0IiwKLSAgICAgICAgICAgICJyZWFkLXdyaXRlIGdsb25nIEVsZW1lbnQ6c2Ny
b2xsLWxlZnQiLAotICAgICAgICAgICAgR19NSU5MT05HLCBHX01BWExPTkcsIDAsCi0gICAgICAg
ICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7Ci0KLSAgICBnX29iamVjdF9jbGFzc19pbnN0
YWxsX3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xhc3MsCi0gICAgICAgIERPTV9FTEVNRU5U
X1BST1BfU0NST0xMX1RPUCwKLSAgICAgICAgZ19wYXJhbV9zcGVjX2xvbmcoCi0gICAgICAgICAg
ICAic2Nyb2xsLXRvcCIsCi0gICAgICAgICAgICAiRWxlbWVudDpzY3JvbGwtdG9wIiwKLSAgICAg
ICAgICAgICJyZWFkLXdyaXRlIGdsb25nIEVsZW1lbnQ6c2Nyb2xsLXRvcCIsCi0gICAgICAgICAg
ICBHX01JTkxPTkcsIEdfTUFYTE9ORywgMCwKLSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFE
V1JJVEUpKTsKLQotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAg
IGdvYmplY3RDbGFzcywKLSAgICAgICAgRE9NX0VMRU1FTlRfUFJPUF9TQ1JPTExfV0lEVEgsCi0g
ICAgICAgIGdfcGFyYW1fc3BlY19sb25nKAotICAgICAgICAgICAgInNjcm9sbC13aWR0aCIsCi0g
ICAgICAgICAgICAiRWxlbWVudDpzY3JvbGwtd2lkdGgiLAotICAgICAgICAgICAgInJlYWQtb25s
eSBnbG9uZyBFbGVtZW50OnNjcm9sbC13aWR0aCIsCi0gICAgICAgICAgICBHX01JTkxPTkcsIEdf
TUFYTE9ORywgMCwKLSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAg
Z19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVjdENsYXNzLAot
ICAgICAgICBET01fRUxFTUVOVF9QUk9QX1NDUk9MTF9IRUlHSFQsCi0gICAgICAgIGdfcGFyYW1f
c3BlY19sb25nKAotICAgICAgICAgICAgInNjcm9sbC1oZWlnaHQiLAotICAgICAgICAgICAgIkVs
ZW1lbnQ6c2Nyb2xsLWhlaWdodCIsCi0gICAgICAgICAgICAicmVhZC1vbmx5IGdsb25nIEVsZW1l
bnQ6c2Nyb2xsLWhlaWdodCIsCi0gICAgICAgICAgICBHX01JTkxPTkcsIEdfTUFYTE9ORywgMCwK
LSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgZ19vYmplY3RfY2xh
c3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBET01f
RUxFTUVOVF9QUk9QX09GRlNFVF9QQVJFTlQsCi0gICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3Qo
Ci0gICAgICAgICAgICAib2Zmc2V0LXBhcmVudCIsCi0gICAgICAgICAgICAiRWxlbWVudDpvZmZz
ZXQtcGFyZW50IiwKLSAgICAgICAgICAgICJyZWFkLW9ubHkgV2ViS2l0RE9NRWxlbWVudCogRWxl
bWVudDpvZmZzZXQtcGFyZW50IiwKLSAgICAgICAgICAgIFdFQktJVF9ET01fVFlQRV9FTEVNRU5U
LAotICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAgICBnX29iamVjdF9j
bGFzc19pbnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xhc3MsCi0gICAgICAgIERP
TV9FTEVNRU5UX1BST1BfSU5ORVJfSFRNTCwKLSAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygK
LSAgICAgICAgICAgICJpbm5lci1odG1sIiwKLSAgICAgICAgICAgICJFbGVtZW50OmlubmVyLWh0
bWwiLAotICAgICAgICAgICAgInJlYWQtd3JpdGUgZ2NoYXIqIEVsZW1lbnQ6aW5uZXItaHRtbCIs
Ci0gICAgICAgICAgICAiIiwKLSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsK
LQotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdvYmplY3RD
bGFzcywKLSAgICAgICAgRE9NX0VMRU1FTlRfUFJPUF9PVVRFUl9IVE1MLAotICAgICAgICBnX3Bh
cmFtX3NwZWNfc3RyaW5nKAotICAgICAgICAgICAgIm91dGVyLWh0bWwiLAotICAgICAgICAgICAg
IkVsZW1lbnQ6b3V0ZXItaHRtbCIsCi0gICAgICAgICAgICAicmVhZC13cml0ZSBnY2hhciogRWxl
bWVudDpvdXRlci1odG1sIiwKLSAgICAgICAgICAgICIiLAotICAgICAgICAgICAgV0VCS0lUX1BB
UkFNX1JFQURXUklURSkpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgK
LSAgICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBET01fRUxFTUVOVF9QUk9QX0NMQVNTX05B
TUUsCi0gICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoCi0gICAgICAgICAgICAiY2xhc3MtbmFt
ZSIsCi0gICAgICAgICAgICAiRWxlbWVudDpjbGFzcy1uYW1lIiwKLSAgICAgICAgICAgICJyZWFk
LXdyaXRlIGdjaGFyKiBFbGVtZW50OmNsYXNzLW5hbWUiLAotICAgICAgICAgICAgIiIsCi0gICAg
ICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7Ci0KLSAgICBnX29iamVjdF9jbGFzc19p
bnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xhc3MsCi0gICAgICAgIERPTV9FTEVN
RU5UX1BST1BfQ0xBU1NfTElTVCwKLSAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgKLSAgICAg
ICAgICAgICJjbGFzcy1saXN0IiwKLSAgICAgICAgICAgICJFbGVtZW50OmNsYXNzLWxpc3QiLAot
ICAgICAgICAgICAgInJlYWQtb25seSBXZWJLaXRET01ET01Ub2tlbkxpc3QqIEVsZW1lbnQ6Y2xh
c3MtbGlzdCIsCi0gICAgICAgICAgICBXRUJLSVRfRE9NX1RZUEVfRE9NX1RPS0VOX0xJU1QsCi0g
ICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAgIC8qKgotICAgICAqIFdl
YktpdERPTUVsZW1lbnQ6d2Via2l0LXJlZ2lvbi1vdmVyc2V0OgotICAgICAqCi0gICAgICogVGhp
cyBwcm9wZXJ0eSBpcyBhbHdheXMgJU5VTEwuCi0gICAgICoKLSAgICAgKiBEZXByZWNhdGVkOiAy
LjIwCi0gICAgICovCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAg
ICAgZ29iamVjdENsYXNzLAotICAgICAgICBET01fRUxFTUVOVF9QUk9QX1dFQktJVF9SRUdJT05f
T1ZFUlNFVCwKLSAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygKLSAgICAgICAgICAgICJ3ZWJr
aXQtcmVnaW9uLW92ZXJzZXQiLAotICAgICAgICAgICAgIkVsZW1lbnQ6d2Via2l0LXJlZ2lvbi1v
dmVyc2V0IiwKLSAgICAgICAgICAgICJyZWFkLW9ubHkgZ2NoYXIqIEVsZW1lbnQ6d2Via2l0LXJl
Z2lvbi1vdmVyc2V0IiwKLSAgICAgICAgICAgICIiLAotICAgICAgICAgICAgV0VCS0lUX1BBUkFN
X1JFQURBQkxFKSk7Ci0KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAotICAg
ICAgICBnb2JqZWN0Q2xhc3MsCi0gICAgICAgIERPTV9FTEVNRU5UX1BST1BfUFJFVklPVVNfRUxF
TUVOVF9TSUJMSU5HLAotICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KAotICAgICAgICAgICAg
InByZXZpb3VzLWVsZW1lbnQtc2libGluZyIsCi0gICAgICAgICAgICAiRWxlbWVudDpwcmV2aW91
cy1lbGVtZW50LXNpYmxpbmciLAotICAgICAgICAgICAgInJlYWQtb25seSBXZWJLaXRET01FbGVt
ZW50KiBFbGVtZW50OnByZXZpb3VzLWVsZW1lbnQtc2libGluZyIsCi0gICAgICAgICAgICBXRUJL
SVRfRE9NX1RZUEVfRUxFTUVOVCwKLSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkp
OwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVj
dENsYXNzLAotICAgICAgICBET01fRUxFTUVOVF9QUk9QX05FWFRfRUxFTUVOVF9TSUJMSU5HLAot
ICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KAotICAgICAgICAgICAgIm5leHQtZWxlbWVudC1z
aWJsaW5nIiwKLSAgICAgICAgICAgICJFbGVtZW50Om5leHQtZWxlbWVudC1zaWJsaW5nIiwKLSAg
ICAgICAgICAgICJyZWFkLW9ubHkgV2ViS2l0RE9NRWxlbWVudCogRWxlbWVudDpuZXh0LWVsZW1l
bnQtc2libGluZyIsCi0gICAgICAgICAgICBXRUJLSVRfRE9NX1RZUEVfRUxFTUVOVCwKLSAgICAg
ICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5z
dGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBET01fRUxFTUVO
VF9QUk9QX0NISUxEUkVOLAotICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KAotICAgICAgICAg
ICAgImNoaWxkcmVuIiwKLSAgICAgICAgICAgICJFbGVtZW50OmNoaWxkcmVuIiwKLSAgICAgICAg
ICAgICJyZWFkLW9ubHkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qIEVsZW1lbnQ6Y2hpbGRyZW4i
LAotICAgICAgICAgICAgV0VCS0lUX0RPTV9UWVBFX0hUTUxfQ09MTEVDVElPTiwKLSAgICAgICAg
ICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFs
bF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBET01fRUxFTUVOVF9Q
Uk9QX0ZJUlNUX0VMRU1FTlRfQ0hJTEQsCi0gICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoCi0g
ICAgICAgICAgICAiZmlyc3QtZWxlbWVudC1jaGlsZCIsCi0gICAgICAgICAgICAiRWxlbWVudDpm
aXJzdC1lbGVtZW50LWNoaWxkIiwKLSAgICAgICAgICAgICJyZWFkLW9ubHkgV2ViS2l0RE9NRWxl
bWVudCogRWxlbWVudDpmaXJzdC1lbGVtZW50LWNoaWxkIiwKLSAgICAgICAgICAgIFdFQktJVF9E
T01fVFlQRV9FTEVNRU5ULAotICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0K
LSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xh
c3MsCi0gICAgICAgIERPTV9FTEVNRU5UX1BST1BfTEFTVF9FTEVNRU5UX0NISUxELAotICAgICAg
ICBnX3BhcmFtX3NwZWNfb2JqZWN0KAotICAgICAgICAgICAgImxhc3QtZWxlbWVudC1jaGlsZCIs
Ci0gICAgICAgICAgICAiRWxlbWVudDpsYXN0LWVsZW1lbnQtY2hpbGQiLAotICAgICAgICAgICAg
InJlYWQtb25seSBXZWJLaXRET01FbGVtZW50KiBFbGVtZW50Omxhc3QtZWxlbWVudC1jaGlsZCIs
Ci0gICAgICAgICAgICBXRUJLSVRfRE9NX1RZUEVfRUxFTUVOVCwKLSAgICAgICAgICAgIFdFQktJ
VF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0
eSgKLSAgICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBET01fRUxFTUVOVF9QUk9QX0NISUxE
X0VMRU1FTlRfQ09VTlQsCi0gICAgICAgIGdfcGFyYW1fc3BlY191bG9uZygKLSAgICAgICAgICAg
ICJjaGlsZC1lbGVtZW50LWNvdW50IiwKLSAgICAgICAgICAgICJFbGVtZW50OmNoaWxkLWVsZW1l
bnQtY291bnQiLAotICAgICAgICAgICAgInJlYWQtb25seSBndWxvbmcgRWxlbWVudDpjaGlsZC1l
bGVtZW50LWNvdW50IiwKLSAgICAgICAgICAgIDAsIEdfTUFYVUxPTkcsIDAsCi0gICAgICAgICAg
ICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLQotfQotCi1zdGF0aWMgdm9pZCB3ZWJraXRfZG9t
X2VsZW1lbnRfaW5pdChXZWJLaXRET01FbGVtZW50KiByZXF1ZXN0KQotewotICAgIFVOVVNFRF9Q
QVJBTShyZXF1ZXN0KTsKLX0KLQotZ2NoYXIqIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfYXR0cmli
dXRlKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lKQotewotICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIDApOwotICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKG5hbWUsIDApOwotICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNv
cmUoc2VsZik7Ci0gICAgV1RGOjpTdHJpbmcgY29udmVydGVkTmFtZSA9IFdURjo6U3RyaW5nOjpm
cm9tVVRGOChuYW1lKTsKLSAgICBnY2hhciogcmVzdWx0ID0gY29udmVydFRvVVRGOFN0cmluZyhp
dGVtLT5nZXRBdHRyaWJ1dGUoY29udmVydGVkTmFtZSkpOwotICAgIHJldHVybiByZXN1bHQ7Ci19
Ci0KLXZvaWQgd2Via2l0X2RvbV9lbGVtZW50X3NldF9hdHRyaWJ1dGUoV2ViS2l0RE9NRWxlbWVu
dCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWUsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKiog
ZXJyb3IpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAg
IGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpKTsKLSAgICBnX3Jl
dHVybl9pZl9mYWlsKG5hbWUpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOwotICAgIGdf
cmV0dXJuX2lmX2ZhaWwoIWVycm9yIHx8ICEqZXJyb3IpOwotICAgIFdlYkNvcmU6OkVsZW1lbnQq
IGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgV1RGOjpTdHJpbmcgY29udmVydGVkTmFt
ZSA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChuYW1lKTsKLSAgICBXVEY6OlN0cmluZyBjb252ZXJ0
ZWRWYWx1ZSA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOCh2YWx1ZSk7Ci0gICAgYXV0byByZXN1bHQg
PSBpdGVtLT5zZXRBdHRyaWJ1dGUoY29udmVydGVkTmFtZSwgY29udmVydGVkVmFsdWUpOwotICAg
IGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgYXV0byBkZXNjcmlwdGlvbiA9
IFdlYkNvcmU6OkRPTUV4Y2VwdGlvbjo6ZGVzY3JpcHRpb24ocmVzdWx0LnJlbGVhc2VFeGNlcHRp
b24oKS5jb2RlKCkpOwotICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJr
X2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGRlc2NyaXB0aW9uLmxlZ2FjeUNvZGUsIGRlc2Ny
aXB0aW9uLm5hbWUpOwotICAgIH0KLX0KLQotdm9pZCB3ZWJraXRfZG9tX2VsZW1lbnRfcmVtb3Zl
X2F0dHJpYnV0ZShXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZSkKLXsK
LSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5f
aWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZikpOwotICAgIGdfcmV0dXJuX2lmX2Zh
aWwobmFtZSk7Ci0gICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxm
KTsKLSAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWROYW1lID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4
KG5hbWUpOwotICAgIGl0ZW0tPnJlbW92ZUF0dHJpYnV0ZShjb252ZXJ0ZWROYW1lKTsKLX0KLQot
V2ViS2l0RE9NQXR0ciogd2Via2l0X2RvbV9lbGVtZW50X2dldF9hdHRyaWJ1dGVfbm9kZShXZWJL
aXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZSkKLXsKLSAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VC
S0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChu
YW1lLCAwKTsKLSAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYp
OwotICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZE5hbWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgo
bmFtZSk7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OkF0dHI+IGdvYmplY3RSZXN1bHQgPSBXVEY6Omdl
dFB0cihpdGVtLT5nZXRBdHRyaWJ1dGVOb2RlKGNvbnZlcnRlZE5hbWUpKTsKLSAgICByZXR1cm4g
V2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7Ci19Ci0KLVdlYktpdERPTUF0dHIqIHdl
YmtpdF9kb21fZWxlbWVudF9zZXRfYXR0cmlidXRlX25vZGUoV2ViS2l0RE9NRWxlbWVudCogc2Vs
ZiwgV2ViS2l0RE9NQXR0ciogbmV3QXR0ciwgR0Vycm9yKiogZXJyb3IpCi17Ci0gICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSwgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoV0VCS0lUX0RPTV9JU19BVFRSKG5ld0F0dHIpLCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZf
ZmFpbCghZXJyb3IgfHwgISplcnJvciwgMCk7Ci0gICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9
IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBXZWJDb3JlOjpBdHRyKiBjb252ZXJ0ZWROZXdBdHRy
ID0gV2ViS2l0Ojpjb3JlKG5ld0F0dHIpOwotICAgIGF1dG8gcmVzdWx0ID0gaXRlbS0+c2V0QXR0
cmlidXRlTm9kZSgqY29udmVydGVkTmV3QXR0cik7Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRp
b24oKSkgewotICAgICAgICBhdXRvIGRlc2NyaXB0aW9uID0gV2ViQ29yZTo6RE9NRXhjZXB0aW9u
OjpkZXNjcmlwdGlvbihyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUoKSk7Ci0gICAgICAg
IGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9E
T00iKSwgZGVzY3JpcHRpb24ubGVnYWN5Q29kZSwgZGVzY3JpcHRpb24ubmFtZSk7Ci0gICAgICAg
IHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICByZXR1cm4gV2ViS2l0OjpraXQocmVzdWx0LnJl
bGVhc2VSZXR1cm5WYWx1ZSgpLmdldCgpKTsKLX0KLQotV2ViS2l0RE9NQXR0ciogd2Via2l0X2Rv
bV9lbGVtZW50X3JlbW92ZV9hdHRyaWJ1dGVfbm9kZShXZWJLaXRET01FbGVtZW50KiBzZWxmLCBX
ZWJLaXRET01BdHRyKiBvbGRBdHRyLCBHRXJyb3IqKiBlcnJvcikKLXsKLSAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VC
S0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChX
RUJLSVRfRE9NX0lTX0FUVFIob2xkQXR0ciksIDApOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KCFlcnJvciB8fCAhKmVycm9yLCAwKTsKLSAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2Vi
S2l0Ojpjb3JlKHNlbGYpOwotICAgIFdlYkNvcmU6OkF0dHIqIGNvbnZlcnRlZE9sZEF0dHIgPSBX
ZWJLaXQ6OmNvcmUob2xkQXR0cik7Ci0gICAgYXV0byByZXN1bHQgPSBpdGVtLT5yZW1vdmVBdHRy
aWJ1dGVOb2RlKCpjb252ZXJ0ZWRPbGRBdHRyKTsKLSAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlv
bigpKSB7Ci0gICAgICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3JlOjpET01FeGNlcHRpb246
OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgpKTsKLSAgICAgICAg
Z19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RP
TSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5uYW1lKTsKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBXZWJLaXQ6OmtpdChyZXN1bHQucmVs
ZWFzZVJldHVyblZhbHVlKCkucHRyKCkpOwotfQotCi1XZWJLaXRET01IVE1MQ29sbGVjdGlvbiog
d2Via2l0X2RvbV9lbGVtZW50X2dldF9lbGVtZW50c19ieV90YWdfbmFtZV9hc19odG1sX2NvbGxl
Y3Rpb24oV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWUpCi17Ci0gICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSwgMCk7Ci0gICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwobmFtZSwgMCk7Ci0gICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6
Y29yZShzZWxmKTsKLSAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWROYW1lID0gV1RGOjpTdHJpbmc6
OmZyb21VVEY4KG5hbWUpOwotICAgIFJlZlB0cjxXZWJDb3JlOjpIVE1MQ29sbGVjdGlvbj4gZ29i
amVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPmdldEVsZW1lbnRzQnlUYWdOYW1lKGNvbnZl
cnRlZE5hbWUpKTsKLSAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7
Ci19Ci0KLWdib29sZWFuIHdlYmtpdF9kb21fZWxlbWVudF9oYXNfYXR0cmlidXRlcyhXZWJLaXRE
T01FbGVtZW50KiBzZWxmKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2Vs
ZiksIEZBTFNFKTsKLSAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNl
bGYpOwotICAgIGdib29sZWFuIHJlc3VsdCA9IGl0ZW0tPmhhc0F0dHJpYnV0ZXMoKTsKLSAgICBy
ZXR1cm4gcmVzdWx0OwotfQotCi1nY2hhciogd2Via2l0X2RvbV9lbGVtZW50X2dldF9hdHRyaWJ1
dGVfbnMoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWVzcGFjZVVSSSwg
Y29uc3QgZ2NoYXIqIGxvY2FsTmFtZSkKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVN
RU5UKHNlbGYpLCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChuYW1lc3BhY2VVUkksIDAp
OwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGxvY2FsTmFtZSwgMCk7Ci0gICAgV2ViQ29yZTo6
RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBXVEY6OlN0cmluZyBjb252
ZXJ0ZWROYW1lc3BhY2VVUkkgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgobmFtZXNwYWNlVVJJKTsK
LSAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWRMb2NhbE5hbWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVU
RjgobG9jYWxOYW1lKTsKLSAgICBnY2hhciogcmVzdWx0ID0gY29udmVydFRvVVRGOFN0cmluZyhp
dGVtLT5nZXRBdHRyaWJ1dGVOUyhjb252ZXJ0ZWROYW1lc3BhY2VVUkksIGNvbnZlcnRlZExvY2Fs
TmFtZSkpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXZvaWQgd2Via2l0X2RvbV9lbGVtZW50
X3NldF9hdHRyaWJ1dGVfbnMoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5h
bWVzcGFjZVVSSSwgY29uc3QgZ2NoYXIqIHF1YWxpZmllZE5hbWUsIGNvbnN0IGdjaGFyKiB2YWx1
ZSwgR0Vycm9yKiogZXJyb3IpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYp
KTsKLSAgICBnX3JldHVybl9pZl9mYWlsKHF1YWxpZmllZE5hbWUpOwotICAgIGdfcmV0dXJuX2lm
X2ZhaWwodmFsdWUpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoIWVycm9yIHx8ICEqZXJyb3IpOwot
ICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgV1RG
OjpTdHJpbmcgY29udmVydGVkTmFtZXNwYWNlVVJJID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KG5h
bWVzcGFjZVVSSSk7Ci0gICAgV1RGOjpTdHJpbmcgY29udmVydGVkUXVhbGlmaWVkTmFtZSA9IFdU
Rjo6U3RyaW5nOjpmcm9tVVRGOChxdWFsaWZpZWROYW1lKTsKLSAgICBXVEY6OlN0cmluZyBjb252
ZXJ0ZWRWYWx1ZSA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOCh2YWx1ZSk7Ci0gICAgYXV0byByZXN1
bHQgPSBpdGVtLT5zZXRBdHRyaWJ1dGVOUyhjb252ZXJ0ZWROYW1lc3BhY2VVUkksIGNvbnZlcnRl
ZFF1YWxpZmllZE5hbWUsIGNvbnZlcnRlZFZhbHVlKTsKLSAgICBpZiAocmVzdWx0Lmhhc0V4Y2Vw
dGlvbigpKSB7Ci0gICAgICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3JlOjpET01FeGNlcHRp
b246OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgpKTsKLSAgICAg
ICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lU
X0RPTSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5uYW1lKTsKLSAgICB9
Ci19Ci0KLXZvaWQgd2Via2l0X2RvbV9lbGVtZW50X3JlbW92ZV9hdHRyaWJ1dGVfbnMoV2ViS2l0
RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWVzcGFjZVVSSSwgY29uc3QgZ2NoYXIq
IGxvY2FsTmFtZSkKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZikpOwotICAg
IGdfcmV0dXJuX2lmX2ZhaWwobmFtZXNwYWNlVVJJKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKGxv
Y2FsTmFtZSk7Ci0gICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxm
KTsKLSAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWROYW1lc3BhY2VVUkkgPSBXVEY6OlN0cmluZzo6
ZnJvbVVURjgobmFtZXNwYWNlVVJJKTsKLSAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWRMb2NhbE5h
bWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgobG9jYWxOYW1lKTsKLSAgICBpdGVtLT5yZW1vdmVB
dHRyaWJ1dGVOUyhjb252ZXJ0ZWROYW1lc3BhY2VVUkksIGNvbnZlcnRlZExvY2FsTmFtZSk7Ci19
Ci0KLVdlYktpdERPTUhUTUxDb2xsZWN0aW9uKiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2VsZW1l
bnRzX2J5X3RhZ19uYW1lX25zX2FzX2h0bWxfY29sbGVjdGlvbihXZWJLaXRET01FbGVtZW50KiBz
ZWxmLCBjb25zdCBnY2hhciogbmFtZXNwYWNlVVJJLCBjb25zdCBnY2hhciogbG9jYWxOYW1lKQot
ewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIDApOwotICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKG5hbWVzcGFjZVVSSSwgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwobG9jYWxOYW1lLCAwKTsKLSAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpj
b3JlKHNlbGYpOwotICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZE5hbWVzcGFjZVVSSSA9IFdURjo6
U3RyaW5nOjpmcm9tVVRGOChuYW1lc3BhY2VVUkkpOwotICAgIFdURjo6U3RyaW5nIGNvbnZlcnRl
ZExvY2FsTmFtZSA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChsb2NhbE5hbWUpOwotICAgIFJlZlB0
cjxXZWJDb3JlOjpIVE1MQ29sbGVjdGlvbj4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0
ZW0tPmdldEVsZW1lbnRzQnlUYWdOYW1lTlMoY29udmVydGVkTmFtZXNwYWNlVVJJLCBjb252ZXJ0
ZWRMb2NhbE5hbWUpKTsKLSAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQo
KSk7Ci19Ci0KLVdlYktpdERPTUF0dHIqIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfYXR0cmlidXRl
X25vZGVfbnMoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWVzcGFjZVVS
SSwgY29uc3QgZ2NoYXIqIGxvY2FsTmFtZSkKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19F
TEVNRU5UKHNlbGYpLCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChuYW1lc3BhY2VVUkks
IDApOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGxvY2FsTmFtZSwgMCk7Ci0gICAgV2ViQ29y
ZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBXVEY6OlN0cmluZyBj
b252ZXJ0ZWROYW1lc3BhY2VVUkkgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgobmFtZXNwYWNlVVJJ
KTsKLSAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWRMb2NhbE5hbWUgPSBXVEY6OlN0cmluZzo6ZnJv
bVVURjgobG9jYWxOYW1lKTsKLSAgICBSZWZQdHI8V2ViQ29yZTo6QXR0cj4gZ29iamVjdFJlc3Vs
dCA9IFdURjo6Z2V0UHRyKGl0ZW0tPmdldEF0dHJpYnV0ZU5vZGVOUyhjb252ZXJ0ZWROYW1lc3Bh
Y2VVUkksIGNvbnZlcnRlZExvY2FsTmFtZSkpOwotICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2Jq
ZWN0UmVzdWx0LmdldCgpKTsKLX0KLQotV2ViS2l0RE9NQXR0ciogd2Via2l0X2RvbV9lbGVtZW50
X3NldF9hdHRyaWJ1dGVfbm9kZV9ucyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBXZWJLaXRET01B
dHRyKiBuZXdBdHRyLCBHRXJyb3IqKiBlcnJvcikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9J
U19FTEVNRU5UKHNlbGYpLCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9N
X0lTX0FUVFIobmV3QXR0ciksIDApOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKCFlcnJvciB8
fCAhKmVycm9yLCAwKTsKLSAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3Jl
KHNlbGYpOwotICAgIFdlYkNvcmU6OkF0dHIqIGNvbnZlcnRlZE5ld0F0dHIgPSBXZWJLaXQ6OmNv
cmUobmV3QXR0cik7Ci0gICAgYXV0byByZXN1bHQgPSBpdGVtLT5zZXRBdHRyaWJ1dGVOb2RlTlMo
KmNvbnZlcnRlZE5ld0F0dHIpOwotICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKLSAg
ICAgICAgYXV0byBkZXNjcmlwdGlvbiA9IFdlYkNvcmU6OkRPTUV4Y2VwdGlvbjo6ZGVzY3JpcHRp
b24ocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKS5jb2RlKCkpOwotICAgICAgICBnX3NldF9lcnJv
cl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGRlc2Ny
aXB0aW9uLmxlZ2FjeUNvZGUsIGRlc2NyaXB0aW9uLm5hbWUpOwotICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLSAgICB9Ci0gICAgcmV0dXJuIFdlYktpdDo6a2l0KHJlc3VsdC5yZWxlYXNlUmV0dXJu
VmFsdWUoKS5nZXQoKSk7Ci19Ci0KLWdib29sZWFuIHdlYmtpdF9kb21fZWxlbWVudF9oYXNfYXR0
cmlidXRlKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lKQotewotICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxf
aWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIEZBTFNFKTsKLSAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChuYW1lLCBGQUxTRSk7Ci0gICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9
IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWROYW1lID0gV1RG
OjpTdHJpbmc6OmZyb21VVEY4KG5hbWUpOwotICAgIGdib29sZWFuIHJlc3VsdCA9IGl0ZW0tPmhh
c0F0dHJpYnV0ZShjb252ZXJ0ZWROYW1lKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1nYm9v
bGVhbiB3ZWJraXRfZG9tX2VsZW1lbnRfaGFzX2F0dHJpYnV0ZV9ucyhXZWJLaXRET01FbGVtZW50
KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZXNwYWNlVVJJLCBjb25zdCBnY2hhciogbG9jYWxOYW1l
KQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIEZBTFNFKTsKLSAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChuYW1lc3BhY2VVUkksIEZBTFNFKTsKLSAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChsb2NhbE5hbWUsIEZBTFNFKTsKLSAgICBXZWJDb3JlOjpFbGVtZW50KiBp
dGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZE5hbWVz
cGFjZVVSSSA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChuYW1lc3BhY2VVUkkpOwotICAgIFdURjo6
U3RyaW5nIGNvbnZlcnRlZExvY2FsTmFtZSA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChsb2NhbE5h
bWUpOwotICAgIGdib29sZWFuIHJlc3VsdCA9IGl0ZW0tPmhhc0F0dHJpYnV0ZU5TKGNvbnZlcnRl
ZE5hbWVzcGFjZVVSSSwgY29udmVydGVkTG9jYWxOYW1lKTsKLSAgICByZXR1cm4gcmVzdWx0Owot
fQotCi12b2lkIHdlYmtpdF9kb21fZWxlbWVudF9mb2N1cyhXZWJLaXRET01FbGVtZW50KiBzZWxm
KQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3Jl
dHVybl9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSk7Ci0gICAgV2ViQ29yZTo6
RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBpdGVtLT5mb2N1cygpOwot
fQotCi12b2lkIHdlYmtpdF9kb21fZWxlbWVudF9ibHVyKFdlYktpdERPTUVsZW1lbnQqIHNlbGYp
Ci17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0
dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpKTsKLSAgICBXZWJDb3JlOjpF
bGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGl0ZW0tPmJsdXIoKTsKLX0K
LQotdm9pZCB3ZWJraXRfZG9tX2VsZW1lbnRfc2Nyb2xsX2ludG9fdmlldyhXZWJLaXRET01FbGVt
ZW50KiBzZWxmLCBnYm9vbGVhbiBhbGlnbldpdGhUb3ApCi17Ci0gICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9J
U19FTEVNRU5UKHNlbGYpKTsKLSAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpj
b3JlKHNlbGYpOwotICAgIGl0ZW0tPnNjcm9sbEludG9WaWV3KGFsaWduV2l0aFRvcCk7Ci19Ci0K
LXZvaWQgd2Via2l0X2RvbV9lbGVtZW50X3Njcm9sbF9pbnRvX3ZpZXdfaWZfbmVlZGVkKFdlYktp
dERPTUVsZW1lbnQqIHNlbGYsIGdib29sZWFuIGNlbnRlcklmTmVlZGVkKQotewotICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdF
QktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSk7Ci0gICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9
IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBpdGVtLT5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKGNl
bnRlcklmTmVlZGVkKTsKLX0KLQotdm9pZCB3ZWJraXRfZG9tX2VsZW1lbnRfc2Nyb2xsX2J5X2xp
bmVzKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGdsb25nIGxpbmVzKQotewotICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJ
VF9ET01fSVNfRUxFTUVOVChzZWxmKSk7Ci0gICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdl
YktpdDo6Y29yZShzZWxmKTsKLSAgICBpdGVtLT5zY3JvbGxCeUxpbmVzKGxpbmVzKTsKLX0KLQot
dm9pZCB3ZWJraXRfZG9tX2VsZW1lbnRfc2Nyb2xsX2J5X3BhZ2VzKFdlYktpdERPTUVsZW1lbnQq
IHNlbGYsIGdsb25nIHBhZ2VzKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxm
KSk7Ci0gICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAg
ICBpdGVtLT5zY3JvbGxCeVBhZ2VzKHBhZ2VzKTsKLX0KLQotV2ViS2l0RE9NSFRNTENvbGxlY3Rp
b24qIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfZWxlbWVudHNfYnlfY2xhc3NfbmFtZV9hc19odG1s
X2NvbGxlY3Rpb24oV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWUpCi17
Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSwgMCk7Ci0gICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwobmFtZSwgMCk7Ci0gICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdl
YktpdDo6Y29yZShzZWxmKTsKLSAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWROYW1lID0gV1RGOjpT
dHJpbmc6OmZyb21VVEY4KG5hbWUpOwotICAgIFJlZlB0cjxXZWJDb3JlOjpIVE1MQ29sbGVjdGlv
bj4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPmdldEVsZW1lbnRzQnlDbGFzc05h
bWUoY29udmVydGVkTmFtZSkpOwotICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0
LmdldCgpKTsKLX0KLQotZ2Jvb2xlYW4gd2Via2l0X2RvbV9lbGVtZW50X21hdGNoZXMoV2ViS2l0
RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHNlbGVjdG9ycywgR0Vycm9yKiogZXJyb3Ip
Ci17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSwgRkFMU0UpOwotICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGVjdG9ycywgRkFMU0UpOwotICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKCFlcnJvciB8fCAhKmVycm9yLCBGQUxTRSk7Ci0gICAgV2ViQ29yZTo6RWxlbWVu
dCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWRT
ZWxlY3RvcnMgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgoc2VsZWN0b3JzKTsKLSAgICBhdXRvIHJl
c3VsdCA9IGl0ZW0tPm1hdGNoZXMoY29udmVydGVkU2VsZWN0b3JzKTsKLSAgICBpZiAocmVzdWx0
Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3JlOjpE
T01FeGNlcHRpb246OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgp
KTsKLSAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmlu
ZygiV0VCS0lUX0RPTSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5uYW1l
KTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnJlbGVh
c2VSZXR1cm5WYWx1ZSgpOwotfQotCi1XZWJLaXRET01FbGVtZW50KiB3ZWJraXRfZG9tX2VsZW1l
bnRfY2xvc2VzdChXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogc2VsZWN0b3Jz
LCBHRXJyb3IqKiBlcnJvcikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNl
bGYpLCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChzZWxlY3RvcnMsIDApOwotICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKCFlcnJvciB8fCAhKmVycm9yLCAwKTsKLSAgICBXZWJDb3JlOjpF
bGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFdURjo6U3RyaW5nIGNvbnZl
cnRlZFNlbGVjdG9ycyA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChzZWxlY3RvcnMpOwotICAgIGF1
dG8gcmVzdWx0ID0gaXRlbS0+Y2xvc2VzdChjb252ZXJ0ZWRTZWxlY3RvcnMpOwotICAgIGlmIChy
ZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgYXV0byBkZXNjcmlwdGlvbiA9IFdlYkNv
cmU6OkRPTUV4Y2VwdGlvbjo6ZGVzY3JpcHRpb24ocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKS5j
b2RlKCkpOwotICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21f
c3RyaW5nKCJXRUJLSVRfRE9NIiksIGRlc2NyaXB0aW9uLmxlZ2FjeUNvZGUsIGRlc2NyaXB0aW9u
Lm5hbWUpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgcmV0dXJuIFdlYktp
dDo6a2l0KHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7Ci19Ci0KLWdib29sZWFuIHdlYmtp
dF9kb21fZWxlbWVudF93ZWJraXRfbWF0Y2hlc19zZWxlY3RvcihXZWJLaXRET01FbGVtZW50KiBz
ZWxmLCBjb25zdCBnY2hhciogc2VsZWN0b3JzLCBHRXJyb3IqKiBlcnJvcikKLXsKLSAgICByZXR1
cm4gd2Via2l0X2RvbV9lbGVtZW50X21hdGNoZXMoc2VsZiwgc2VsZWN0b3JzLCBlcnJvcik7Ci19
Ci0KLXZvaWQgd2Via2l0X2RvbV9lbGVtZW50X3dlYmtpdF9yZXF1ZXN0X2Z1bGxzY3JlZW4oV2Vi
S2l0RE9NRWxlbWVudCogc2VsZikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2Vs
ZikpOwotICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0g
ICAgaXRlbS0+d2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4oKTsKLX0KLQotV2ViS2l0RE9NRWxlbWVu
dCogd2Via2l0X2RvbV9lbGVtZW50X2luc2VydF9hZGphY2VudF9lbGVtZW50KFdlYktpdERPTUVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB3aGVyZSwgV2ViS2l0RE9NRWxlbWVudCogZWxlbWVu
dCwgR0Vycm9yKiogZXJyb3IpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChz
ZWxmKSwgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwod2hlcmUsIDApOwotICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChlbGVtZW50KSwgMCk7Ci0gICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoIWVycm9yIHx8ICEqZXJyb3IsIDApOwotICAgIFdlYkNvcmU6
OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgV1RGOjpTdHJpbmcgY29u
dmVydGVkV2hlcmUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgod2hlcmUpOwotICAgIFdlYkNvcmU6
OkVsZW1lbnQqIGNvbnZlcnRlZEVsZW1lbnQgPSBXZWJLaXQ6OmNvcmUoZWxlbWVudCk7Ci0gICAg
YXV0byByZXN1bHQgPSBpdGVtLT5pbnNlcnRBZGphY2VudEVsZW1lbnQoY29udmVydGVkV2hlcmUs
ICpjb252ZXJ0ZWRFbGVtZW50KTsKLSAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7Ci0g
ICAgICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3JlOjpET01FeGNlcHRpb246OmRlc2NyaXB0
aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgpKTsKLSAgICAgICAgZ19zZXRfZXJy
b3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBkZXNj
cmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5uYW1lKTsKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBXZWJLaXQ6OmtpdChyZXN1bHQucmVsZWFzZVJldHVy
blZhbHVlKCkpOwotfQotCi12b2lkIHdlYmtpdF9kb21fZWxlbWVudF9pbnNlcnRfYWRqYWNlbnRf
aHRtbChXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogd2hlcmUsIGNvbnN0IGdj
aGFyKiBodG1sLCBHRXJyb3IqKiBlcnJvcikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1F
TlQoc2VsZikpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwod2hlcmUpOwotICAgIGdfcmV0dXJuX2lm
X2ZhaWwoaHRtbCk7Ci0gICAgZ19yZXR1cm5faWZfZmFpbCghZXJyb3IgfHwgISplcnJvcik7Ci0g
ICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBXVEY6
OlN0cmluZyBjb252ZXJ0ZWRXaGVyZSA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOCh3aGVyZSk7Ci0g
ICAgV1RGOjpTdHJpbmcgY29udmVydGVkSHRtbCA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChodG1s
KTsKLSAgICBhdXRvIHJlc3VsdCA9IGl0ZW0tPmluc2VydEFkamFjZW50SFRNTChjb252ZXJ0ZWRX
aGVyZSwgY29udmVydGVkSHRtbCk7Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewot
ICAgICAgICBhdXRvIGRlc2NyaXB0aW9uID0gV2ViQ29yZTo6RE9NRXhjZXB0aW9uOjpkZXNjcmlw
dGlvbihyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUoKSk7Ci0gICAgICAgIGdfc2V0X2Vy
cm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZGVz
Y3JpcHRpb24ubGVnYWN5Q29kZSwgZGVzY3JpcHRpb24ubmFtZSk7Ci0gICAgfQotfQotCi12b2lk
IHdlYmtpdF9kb21fZWxlbWVudF9pbnNlcnRfYWRqYWNlbnRfdGV4dChXZWJLaXRET01FbGVtZW50
KiBzZWxmLCBjb25zdCBnY2hhciogd2hlcmUsIGNvbnN0IGdjaGFyKiB0ZXh0LCBHRXJyb3IqKiBl
cnJvcikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAg
Z19yZXR1cm5faWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZikpOwotICAgIGdfcmV0
dXJuX2lmX2ZhaWwod2hlcmUpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwodGV4dCk7Ci0gICAgZ19y
ZXR1cm5faWZfZmFpbCghZXJyb3IgfHwgISplcnJvcik7Ci0gICAgV2ViQ29yZTo6RWxlbWVudCog
aXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWRXaGVy
ZSA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOCh3aGVyZSk7Ci0gICAgV1RGOjpTdHJpbmcgY29udmVy
dGVkVGV4dCA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOCh0ZXh0KTsKLSAgICBhdXRvIHJlc3VsdCA9
IGl0ZW0tPmluc2VydEFkamFjZW50VGV4dChjb252ZXJ0ZWRXaGVyZSwgY29udmVydGVkVGV4dCk7
Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICBhdXRvIGRlc2NyaXB0
aW9uID0gV2ViQ29yZTo6RE9NRXhjZXB0aW9uOjpkZXNjcmlwdGlvbihyZXN1bHQucmVsZWFzZUV4
Y2VwdGlvbigpLmNvZGUoKSk7Ci0gICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdf
cXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZGVzY3JpcHRpb24ubGVnYWN5Q29kZSwg
ZGVzY3JpcHRpb24ubmFtZSk7Ci0gICAgfQotfQotCi12b2lkIHdlYmtpdF9kb21fZWxlbWVudF9y
ZXF1ZXN0X3BvaW50ZXJfbG9jayhXZWJLaXRET01FbGVtZW50KiBzZWxmKQotewotI2lmIEVOQUJM
RShQT0lOVEVSX0xPQ0spCi0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpKTsKLSAg
ICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGl0ZW0t
PnJlcXVlc3RQb2ludGVyTG9jaygpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc2VsZik7Ci0g
ICAgV0VCS0lUX1dBUk5fRkVBVFVSRV9OT1RfUFJFU0VOVCgiUG9pbnRlciBMb2NrIikKLSNlbmRp
ZiAvKiBFTkFCTEUoUE9JTlRFUl9MT0NLKSAqLwotfQotCi12b2lkIHdlYmtpdF9kb21fZWxlbWVu
dF9yZW1vdmUoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgR0Vycm9yKiogZXJyb3IpCi17Ci0gICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX2lmX2Zh
aWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKCFl
cnJvciB8fCAhKmVycm9yKTsKLSAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpj
b3JlKHNlbGYpOwotICAgIGF1dG8gcmVzdWx0ID0gaXRlbS0+cmVtb3ZlKCk7Ci0gICAgaWYgKHJl
c3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICBhdXRvIGRlc2NyaXB0aW9uID0gV2ViQ29y
ZTo6RE9NRXhjZXB0aW9uOjpkZXNjcmlwdGlvbihyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpLmNv
ZGUoKSk7Ci0gICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9z
dHJpbmcoIldFQktJVF9ET00iKSwgZGVzY3JpcHRpb24ubGVnYWN5Q29kZSwgZGVzY3JpcHRpb24u
bmFtZSk7Ci0gICAgfQotfQotCi1XZWJLaXRET01FbGVtZW50KiB3ZWJraXRfZG9tX2VsZW1lbnRf
cXVlcnlfc2VsZWN0b3IoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHNlbGVj
dG9ycywgR0Vycm9yKiogZXJyb3IpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVO
VChzZWxmKSwgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZWN0b3JzLCAwKTsKLSAg
ICBnX3JldHVybl92YWxfaWZfZmFpbCghZXJyb3IgfHwgISplcnJvciwgMCk7Ci0gICAgV2ViQ29y
ZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBXVEY6OlN0cmluZyBj
b252ZXJ0ZWRTZWxlY3RvcnMgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgoc2VsZWN0b3JzKTsKLSAg
ICBhdXRvIHJlc3VsdCA9IGl0ZW0tPnF1ZXJ5U2VsZWN0b3IoY29udmVydGVkU2VsZWN0b3JzKTsK
LSAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgIGF1dG8gZGVzY3JpcHRp
b24gPSBXZWJDb3JlOjpET01FeGNlcHRpb246OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhj
ZXB0aW9uKCkuY29kZSgpKTsKLSAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19x
dWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBk
ZXNjcmlwdGlvbi5uYW1lKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJl
dHVybiBXZWJLaXQ6OmtpdChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwotfQotCi1XZWJL
aXRET01Ob2RlTGlzdCogd2Via2l0X2RvbV9lbGVtZW50X3F1ZXJ5X3NlbGVjdG9yX2FsbChXZWJL
aXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogc2VsZWN0b3JzLCBHRXJyb3IqKiBlcnJv
cikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCAwKTsKLSAgICBn
X3JldHVybl92YWxfaWZfZmFpbChzZWxlY3RvcnMsIDApOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKCFlcnJvciB8fCAhKmVycm9yLCAwKTsKLSAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0g
V2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZFNlbGVjdG9ycyA9
IFdURjo6U3RyaW5nOjpmcm9tVVRGOChzZWxlY3RvcnMpOwotICAgIGF1dG8gcmVzdWx0ID0gaXRl
bS0+cXVlcnlTZWxlY3RvckFsbChjb252ZXJ0ZWRTZWxlY3RvcnMpOwotICAgIGlmIChyZXN1bHQu
aGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgYXV0byBkZXNjcmlwdGlvbiA9IFdlYkNvcmU6OkRP
TUV4Y2VwdGlvbjo6ZGVzY3JpcHRpb24ocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKS5jb2RlKCkp
OwotICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5n
KCJXRUJLSVRfRE9NIiksIGRlc2NyaXB0aW9uLmxlZ2FjeUNvZGUsIGRlc2NyaXB0aW9uLm5hbWUp
OwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgcmV0dXJuIFdlYktpdDo6a2l0
KHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKS5wdHIoKSk7Ci19Ci0KLWdjaGFyKiB3ZWJraXRf
ZG9tX2VsZW1lbnRfZ2V0X3RhZ19uYW1lKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpCi17Ci0gICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSwgMCk7Ci0gICAgV2ViQ29yZTo6RWxl
bWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBnY2hhciogcmVzdWx0ID0gY29u
dmVydFRvVVRGOFN0cmluZyhpdGVtLT50YWdOYW1lKCkpOwotICAgIHJldHVybiByZXN1bHQ7Ci19
Ci0KLVdlYktpdERPTU5hbWVkTm9kZU1hcCogd2Via2l0X2RvbV9lbGVtZW50X2dldF9hdHRyaWJ1
dGVzKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNf
RUxFTUVOVChzZWxmKSwgMCk7Ci0gICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6
Y29yZShzZWxmKTsKLSAgICBSZWZQdHI8V2ViQ29yZTo6TmFtZWROb2RlTWFwPiBnb2JqZWN0UmVz
dWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+YXR0cmlidXRlcygpKTsKLSAgICByZXR1cm4gV2ViS2l0
OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7Ci19Ci0KLVdlYktpdERPTUNTU1N0eWxlRGVjbGFy
YXRpb24qIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfc3R5bGUoV2ViS2l0RE9NRWxlbWVudCogc2Vs
ZikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCAwKTsKLSAgICBh
dXRvJiBpdGVtID0gKldlYktpdDo6Y29yZShzZWxmKTsKLSAgICBpZiAoIWlzPFdlYkNvcmU6OlN0
eWxlZEVsZW1lbnQ+KGl0ZW0pKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4g
V2ViS2l0OjpraXQoJmRvd25jYXN0PFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ+KGl0ZW0pLmNzc29t
U3R5bGUoKSk7Ci19Ci0KLWdjaGFyKiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2lkKFdlYktpdERP
TUVsZW1lbnQqIHNlbGYpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxm
KSwgMCk7Ci0gICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsK
LSAgICBnY2hhciogcmVzdWx0ID0gY29udmVydFRvVVRGOFN0cmluZyhpdGVtLT5nZXRJZEF0dHJp
YnV0ZSgpKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi12b2lkIHdlYmtpdF9kb21fZWxlbWVu
dF9zZXRfaWQoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKQotewot
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl9p
Zl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSk7Ci0gICAgZ19yZXR1cm5faWZfZmFp
bCh2YWx1ZSk7Ci0gICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxm
KTsKLSAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWRWYWx1ZSA9IFdURjo6U3RyaW5nOjpmcm9tVVRG
OCh2YWx1ZSk7Ci0gICAgaXRlbS0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihX
ZWJDb3JlOjpIVE1MTmFtZXM6OmlkQXR0ciwgY29udmVydGVkVmFsdWUpOwotfQotCi1nY2hhciog
d2Via2l0X2RvbV9lbGVtZW50X2dldF9uYW1lc3BhY2VfdXJpKFdlYktpdERPTUVsZW1lbnQqIHNl
bGYpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSwgMCk7Ci0gICAg
V2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBnY2hhciog
cmVzdWx0ID0gY29udmVydFRvVVRGOFN0cmluZyhpdGVtLT5uYW1lc3BhY2VVUkkoKSk7Ci0gICAg
cmV0dXJuIHJlc3VsdDsKLX0KLQotZ2NoYXIqIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfcHJlZml4
KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxF
TUVOVChzZWxmKSwgMCk7Ci0gICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29y
ZShzZWxmKTsKLSAgICBnY2hhciogcmVzdWx0ID0gY29udmVydFRvVVRGOFN0cmluZyhpdGVtLT5w
cmVmaXgoKSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotZ2NoYXIqIHdlYmtpdF9kb21fZWxl
bWVudF9nZXRfbG9jYWxfbmFtZShXZWJLaXRET01FbGVtZW50KiBzZWxmKQotewotICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIDApOwotICAgIFdlYkNvcmU6OkVsZW1lbnQq
IGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ2NoYXIqIHJlc3VsdCA9IGNvbnZlcnRU
b1VURjhTdHJpbmcoaXRlbS0+bG9jYWxOYW1lKCkpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0K
LWdkb3VibGUgd2Via2l0X2RvbV9lbGVtZW50X2dldF9vZmZzZXRfbGVmdChXZWJLaXRET01FbGVt
ZW50KiBzZWxmKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
LSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIDAp
OwotICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAg
Z2RvdWJsZSByZXN1bHQgPSBpdGVtLT5vZmZzZXRMZWZ0KCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsK
LX0KLQotZ2RvdWJsZSB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X29mZnNldF90b3AoV2ViS2l0RE9N
RWxlbWVudCogc2VsZikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYp
LCAwKTsKLSAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwot
ICAgIGdkb3VibGUgcmVzdWx0ID0gaXRlbS0+b2Zmc2V0VG9wKCk7Ci0gICAgcmV0dXJuIHJlc3Vs
dDsKLX0KLQotZ2RvdWJsZSB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X29mZnNldF93aWR0aChXZWJL
aXRET01FbGVtZW50KiBzZWxmKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQo
c2VsZiksIDApOwotICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2Vs
Zik7Ci0gICAgZ2RvdWJsZSByZXN1bHQgPSBpdGVtLT5vZmZzZXRXaWR0aCgpOwotICAgIHJldHVy
biByZXN1bHQ7Ci19Ci0KLWdkb3VibGUgd2Via2l0X2RvbV9lbGVtZW50X2dldF9vZmZzZXRfaGVp
Z2h0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNf
RUxFTUVOVChzZWxmKSwgMCk7Ci0gICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6
Y29yZShzZWxmKTsKLSAgICBnZG91YmxlIHJlc3VsdCA9IGl0ZW0tPm9mZnNldEhlaWdodCgpOwot
ICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLWdkb3VibGUgd2Via2l0X2RvbV9lbGVtZW50X2dldF9j
bGllbnRfbGVmdChXZWJLaXRET01FbGVtZW50KiBzZWxmKQotewotICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRf
RE9NX0lTX0VMRU1FTlQoc2VsZiksIDApOwotICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBX
ZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ2RvdWJsZSByZXN1bHQgPSBpdGVtLT5jbGllbnRMZWZ0
KCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotZ2RvdWJsZSB3ZWJraXRfZG9tX2VsZW1lbnRf
Z2V0X2NsaWVudF90b3AoV2ViS2l0RE9NRWxlbWVudCogc2VsZikKLXsKLSAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VC
S0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCAwKTsKLSAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVt
ID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdkb3VibGUgcmVzdWx0ID0gaXRlbS0+Y2xpZW50
VG9wKCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotZ2RvdWJsZSB3ZWJraXRfZG9tX2VsZW1l
bnRfZ2V0X2NsaWVudF93aWR0aChXZWJLaXRET01FbGVtZW50KiBzZWxmKQotewotICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIDApOwotICAgIFdlYkNvcmU6OkVsZW1lbnQq
IGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ2RvdWJsZSByZXN1bHQgPSBpdGVtLT5j
bGllbnRXaWR0aCgpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLWdkb3VibGUgd2Via2l0X2Rv
bV9lbGVtZW50X2dldF9jbGllbnRfaGVpZ2h0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpCi17Ci0g
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSwgMCk7Ci0gICAgV2ViQ29yZTo6
RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBnZG91YmxlIHJlc3VsdCA9
IGl0ZW0tPmNsaWVudEhlaWdodCgpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLWdsb25nIHdl
YmtpdF9kb21fZWxlbWVudF9nZXRfc2Nyb2xsX2xlZnQoV2ViS2l0RE9NRWxlbWVudCogc2VsZikK
LXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCAwKTsKLSAgICBXZWJD
b3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdsb25nIHJlc3Vs
dCA9IGl0ZW0tPnNjcm9sbExlZnQoKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi12b2lkIHdl
YmtpdF9kb21fZWxlbWVudF9zZXRfc2Nyb2xsX2xlZnQoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwg
Z2xvbmcgdmFsdWUpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpKTsKLSAg
ICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGl0ZW0t
PnNldFNjcm9sbExlZnQodmFsdWUpOwotfQotCi1nbG9uZyB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0
X3Njcm9sbF90b3AoV2ViS2l0RE9NRWxlbWVudCogc2VsZikKLXsKLSAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lU
X0RPTV9JU19FTEVNRU5UKHNlbGYpLCAwKTsKLSAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0g
V2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdsb25nIHJlc3VsdCA9IGl0ZW0tPnNjcm9sbFRvcCgp
OwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLXZvaWQgd2Via2l0X2RvbV9lbGVtZW50X3NldF9z
Y3JvbGxfdG9wKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlKQotewotICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl9pZl9mYWls
KFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSk7Ci0gICAgV2ViQ29yZTo6RWxlbWVudCogaXRl
bSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBpdGVtLT5zZXRTY3JvbGxUb3AodmFsdWUpOwot
fQotCi1nbG9uZyB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3Njcm9sbF93aWR0aChXZWJLaXRET01F
bGVtZW50KiBzZWxmKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiks
IDApOwotICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0g
ICAgZ2xvbmcgcmVzdWx0ID0gaXRlbS0+c2Nyb2xsV2lkdGgoKTsKLSAgICByZXR1cm4gcmVzdWx0
OwotfQotCi1nbG9uZyB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3Njcm9sbF9oZWlnaHQoV2ViS2l0
RE9NRWxlbWVudCogc2VsZikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNl
bGYpLCAwKTsKLSAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYp
OwotICAgIGdsb25nIHJlc3VsdCA9IGl0ZW0tPnNjcm9sbEhlaWdodCgpOwotICAgIHJldHVybiBy
ZXN1bHQ7Ci19Ci0KLVdlYktpdERPTUNsaWVudFJlY3QqIHdlYmtpdF9kb21fZWxlbWVudF9nZXRf
Ym91bmRpbmdfY2xpZW50X3JlY3QoV2ViS2l0RE9NRWxlbWVudCogc2VsZikKLXsKLSAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCBudWxscHRyKTsKLSAgICBXZWJDb3JlOjpF
bGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIHJldHVybiBXZWJLaXQ6Omtp
dChpdGVtLT5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5wdHIoKSk7Ci19Ci0KLVdlYktpdERPTUNs
aWVudFJlY3RMaXN0KiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2NsaWVudF9yZWN0cyhXZWJLaXRE
T01FbGVtZW50KiBzZWxmKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2Vs
ZiksIG51bGxwdHIpOwotICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUo
c2VsZik7Ci0gICAgcmV0dXJuIFdlYktpdDo6a2l0KGl0ZW0tPmdldENsaWVudFJlY3RzKCkucHRy
KCkpOwotfQotCi1XZWJLaXRET01FbGVtZW50KiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X29mZnNl
dF9wYXJlbnQoV2ViS2l0RE9NRWxlbWVudCogc2VsZikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RP
TV9JU19FTEVNRU5UKHNlbGYpLCAwKTsKLSAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2Vi
S2l0Ojpjb3JlKHNlbGYpOwotICAgIFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiBnb2JqZWN0UmVz
dWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+YmluZGluZ3NPZmZzZXRQYXJlbnQoKSk7Ci0gICAgcmV0
dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOwotfQotCi1nY2hhciogd2Via2l0
X2RvbV9lbGVtZW50X2dldF9pbm5lcl9odG1sKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpCi17Ci0g
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSwgMCk7Ci0gICAgV2ViQ29yZTo6
RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBnY2hhciogcmVzdWx0ID0g
Y29udmVydFRvVVRGOFN0cmluZyhpdGVtLT5pbm5lckhUTUwoKSk7Ci0gICAgcmV0dXJuIHJlc3Vs
dDsKLX0KLQotdm9pZCB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X2lubmVyX2h0bWwoV2ViS2l0RE9N
RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcikKLXsKLSAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5faWZf
ZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZikpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwo
dmFsdWUpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoIWVycm9yIHx8ICEqZXJyb3IpOwotICAgIFdl
YkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgV1RGOjpTdHJp
bmcgY29udmVydGVkVmFsdWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodmFsdWUpOwotICAgIGF1
dG8gcmVzdWx0ID0gaXRlbS0+c2V0SW5uZXJIVE1MKGNvbnZlcnRlZFZhbHVlKTsKLSAgICBpZiAo
cmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJD
b3JlOjpET01FeGNlcHRpb246OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCku
Y29kZSgpKTsKLSAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9t
X3N0cmluZygiV0VCS0lUX0RPTSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlv
bi5uYW1lKTsKLSAgICB9Ci19Ci0KLWdjaGFyKiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X291dGVy
X2h0bWwoV2ViS2l0RE9NRWxlbWVudCogc2VsZikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9J
U19FTEVNRU5UKHNlbGYpLCAwKTsKLSAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0
Ojpjb3JlKHNlbGYpOwotICAgIGdjaGFyKiByZXN1bHQgPSBjb252ZXJ0VG9VVEY4U3RyaW5nKGl0
ZW0tPm91dGVySFRNTCgpKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi12b2lkIHdlYmtpdF9k
b21fZWxlbWVudF9zZXRfb3V0ZXJfaHRtbChXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBn
Y2hhciogdmFsdWUsIEdFcnJvcioqIGVycm9yKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxF
TUVOVChzZWxmKSk7Ci0gICAgZ19yZXR1cm5faWZfZmFpbCh2YWx1ZSk7Ci0gICAgZ19yZXR1cm5f
aWZfZmFpbCghZXJyb3IgfHwgISplcnJvcik7Ci0gICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9
IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWRWYWx1ZSA9IFdU
Rjo6U3RyaW5nOjpmcm9tVVRGOCh2YWx1ZSk7Ci0gICAgYXV0byByZXN1bHQgPSBpdGVtLT5zZXRP
dXRlckhUTUwoY29udmVydGVkVmFsdWUpOwotICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkp
IHsKLSAgICAgICAgYXV0byBkZXNjcmlwdGlvbiA9IFdlYkNvcmU6OkRPTUV4Y2VwdGlvbjo6ZGVz
Y3JpcHRpb24ocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKS5jb2RlKCkpOwotICAgICAgICBnX3Nl
dF9lcnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiks
IGRlc2NyaXB0aW9uLmxlZ2FjeUNvZGUsIGRlc2NyaXB0aW9uLm5hbWUpOwotICAgIH0KLX0KLQot
Z2NoYXIqIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfY2xhc3NfbmFtZShXZWJLaXRET01FbGVtZW50
KiBzZWxmKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIDApOwot
ICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ2No
YXIqIHJlc3VsdCA9IGNvbnZlcnRUb1VURjhTdHJpbmcoaXRlbS0+YXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmNsYXNzQXR0cikpOwotICAgIHJldHVy
biByZXN1bHQ7Ci19Ci0KLXZvaWQgd2Via2l0X2RvbV9lbGVtZW50X3NldF9jbGFzc19uYW1lKFdl
YktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSkKLXsKLSAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJL
SVRfRE9NX0lTX0VMRU1FTlQoc2VsZikpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOwot
ICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgV1RG
OjpTdHJpbmcgY29udmVydGVkVmFsdWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodmFsdWUpOwot
ICAgIGl0ZW0tPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRN
TE5hbWVzOjpjbGFzc0F0dHIsIGNvbnZlcnRlZFZhbHVlKTsKLX0KLQotV2ViS2l0RE9NRE9NVG9r
ZW5MaXN0KiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2NsYXNzX2xpc3QoV2ViS2l0RE9NRWxlbWVu
dCogc2VsZikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0g
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCAwKTsK
LSAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFJl
ZlB0cjxXZWJDb3JlOjpET01Ub2tlbkxpc3Q+IGdvYmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihp
dGVtLT5jbGFzc0xpc3QoKSk7Ci0gICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQu
Z2V0KCkpOwotfQotCi1XZWJLaXRET01FbGVtZW50KiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3By
ZXZpb3VzX2VsZW1lbnRfc2libGluZyhXZWJLaXRET01FbGVtZW50KiBzZWxmKQotewotICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIDApOwotICAgIFdlYkNvcmU6OkVsZW1l
bnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OkVsZW1l
bnQ+IGdvYmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5wcmV2aW91c0VsZW1lbnRTaWJs
aW5nKCkpOwotICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKLX0K
LQotV2ViS2l0RE9NRWxlbWVudCogd2Via2l0X2RvbV9lbGVtZW50X2dldF9uZXh0X2VsZW1lbnRf
c2libGluZyhXZWJLaXRET01FbGVtZW50KiBzZWxmKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9N
X0lTX0VMRU1FTlQoc2VsZiksIDApOwotICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJL
aXQ6OmNvcmUoc2VsZik7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+IGdvYmplY3RSZXN1
bHQgPSBXVEY6OmdldFB0cihpdGVtLT5uZXh0RWxlbWVudFNpYmxpbmcoKSk7Ci0gICAgcmV0dXJu
IFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOwotfQotCi1XZWJLaXRET01IVE1MQ29s
bGVjdGlvbiogd2Via2l0X2RvbV9lbGVtZW50X2dldF9jaGlsZHJlbihXZWJLaXRET01FbGVtZW50
KiBzZWxmKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIDApOwot
ICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgUmVm
UHRyPFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uPiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIo
aXRlbS0+Y2hpbGRyZW4oKSk7Ci0gICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQu
Z2V0KCkpOwotfQotCi1XZWJLaXRET01FbGVtZW50KiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2Zp
cnN0X2VsZW1lbnRfY2hpbGQoV2ViS2l0RE9NRWxlbWVudCogc2VsZikKLXsKLSAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
V0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCAwKTsKLSAgICBXZWJDb3JlOjpFbGVtZW50KiBp
dGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiBn
b2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+Zmlyc3RFbGVtZW50Q2hpbGQoKSk7Ci0g
ICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOwotfQotCi1XZWJLaXRE
T01FbGVtZW50KiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2xhc3RfZWxlbWVudF9jaGlsZChXZWJL
aXRET01FbGVtZW50KiBzZWxmKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQo
c2VsZiksIDApOwotICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2Vs
Zik7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+IGdvYmplY3RSZXN1bHQgPSBXVEY6Omdl
dFB0cihpdGVtLT5sYXN0RWxlbWVudENoaWxkKCkpOwotICAgIHJldHVybiBXZWJLaXQ6OmtpdChn
b2JqZWN0UmVzdWx0LmdldCgpKTsKLX0KLQotZ3Vsb25nIHdlYmtpdF9kb21fZWxlbWVudF9nZXRf
Y2hpbGRfZWxlbWVudF9jb3VudChXZWJLaXRET01FbGVtZW50KiBzZWxmKQotewotICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIDApOwotICAgIFdlYkNvcmU6OkVsZW1lbnQq
IGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ3Vsb25nIHJlc3VsdCA9IGl0ZW0tPmNo
aWxkRWxlbWVudENvdW50KCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01FbGVtZW50LmgKaW5kZXggZGJhNzUxZTBjYzNkMWE5ZDE3YmE4
ZmJiZjIzYjUzZjA5MDNiYzU4MC4uMDIyNjNjNDg5YzRiNTg3MjNiMDUwNDZmOGY5YTU3NjE2NDU0
NmRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudC5oCkBAIC00
NiwyMSArNDYsNDIgQEAgc3RydWN0IF9XZWJLaXRET01FbGVtZW50Q2xhc3MgewogfTsKIAogV0VC
S0lUX0FQSSBHVHlwZQotd2Via2l0X2RvbV9lbGVtZW50X2dldF90eXBlKHZvaWQpOword2Via2l0
X2RvbV9lbGVtZW50X2dldF90eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCk7
CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9kb21fZWxlbWVudF9odG1sX2lucHV0X2Vs
ZW1lbnRfaXNfdXNlcl9lZGl0ZWQgICAgKFdlYktpdERPTUVsZW1lbnQgKmVsZW1lbnQpOworCitX
RUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50
X2dldF9hdXRvX2ZpbGxlZCAgIChXZWJLaXRET01FbGVtZW50ICplbGVtZW50KTsKKworV0VCS0lU
X0FQSSB2b2lkCit3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X3NldF9hdXRv
X2ZpbGxlZCAgIChXZWJLaXRET01FbGVtZW50ICplbGVtZW50LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAg
YXV0b19maWxsZWQpOworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9p
bnB1dF9lbGVtZW50X3NldF9lZGl0aW5nX3ZhbHVlIChXZWJLaXRET01FbGVtZW50ICplbGVtZW50
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgY2hhciAgICAgICAqdmFsdWUpOworCisjaWZuZGVmIFdFQktJVF9ESVNBQkxFX0RF
UFJFQ0FURUQKIAogLyoqCiAgKiBXRUJLSVRfRE9NX0VMRU1FTlRfQUxMT1dfS0VZQk9BUkRfSU5Q
VVQ6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9FTEVNRU5UX0FMTE9XX0tFWUJPQVJEX0lOUFVU
IDEKIAorI2VuZGlmCisKIC8qKgogICogd2Via2l0X2RvbV9lbGVtZW50X2dldF9hdHRyaWJ1dGU6
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICogQG5hbWU6IEEgI2djaGFyCiAgKgog
ICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBS
RUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9hdHRyaWJ1dGUoV2ViS2l0RE9N
RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWUpOwogCiAvKioKQEAgLTcwLDggKzkxLDEw
IEBAIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfYXR0cmlidXRlKFdlYktpdERPTUVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiBuYW1lKTsKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqIEBlcnJvcjog
I0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X2F0dHJpYnV0ZShXZWJLaXRET01FbGVtZW50KiBzZWxm
LCBjb25zdCBnY2hhciogbmFtZSwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7
CiAKIC8qKgpAQCAtNzksOCArMTAyLDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9zZXRfYXR0cmli
dXRlKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lLCBjb25zCiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICogQG5hbWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZWxlbWVu
dF9yZW1vdmVfYXR0cmlidXRlKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBu
YW1lKTsKIAogLyoqCkBAIC04OSw4ICsxMTQsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X3JlbW92
ZV9hdHRyaWJ1dGUoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWUpOwog
ICogQG5hbWU6IEEgI2djaGFyCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNX
ZWJLaXRET01BdHRyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NQXR0cioKK1dFQktJVF9ERVBS
RUNBVEVEIFdlYktpdERPTUF0dHIqCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2F0dHJpYnV0ZV9u
b2RlKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lKTsKIAogLyoqCkBA
IC0xMDAsOCArMTI3LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfYXR0cmlidXRlX25vZGUo
V2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWUpCiAgKiBAZXJyb3I6ICNH
RXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUF0dHIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01BdHRyKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0
RE9NQXR0cioKIHdlYmtpdF9kb21fZWxlbWVudF9zZXRfYXR0cmlidXRlX25vZGUoV2ViS2l0RE9N
RWxlbWVudCogc2VsZiwgV2ViS2l0RE9NQXR0ciogbmV3QXR0ciwgR0Vycm9yKiogZXJyb3IpOwog
CiAvKioKQEAgLTExMSw4ICsxNDAsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X3NldF9hdHRyaWJ1
dGVfbm9kZShXZWJLaXRET01FbGVtZW50KiBzZWxmLCBXZWJLaXRET01BdHRyKiBuZXcKICAqIEBl
cnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0
RE9NQXR0cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUF0dHIqCitXRUJLSVRfREVQUkVDQVRF
RCBXZWJLaXRET01BdHRyKgogd2Via2l0X2RvbV9lbGVtZW50X3JlbW92ZV9hdHRyaWJ1dGVfbm9k
ZShXZWJLaXRET01FbGVtZW50KiBzZWxmLCBXZWJLaXRET01BdHRyKiBvbGRBdHRyLCBHRXJyb3Iq
KiBlcnJvcik7CiAKIC8qKgpAQCAtMTIzLDggKzE1NCwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRf
cmVtb3ZlX2F0dHJpYnV0ZV9ub2RlKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIFdlYktpdERPTUF0
dHIqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0
aW9uCiAgKgogICogU2luY2U6IDIuMTIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MQ29s
bGVjdGlvbioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgogd2Vi
a2l0X2RvbV9lbGVtZW50X2dldF9lbGVtZW50c19ieV90YWdfbmFtZV9hc19odG1sX2NvbGxlY3Rp
b24oV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWUpOwogCiAvKioKQEAg
LTEzMiw4ICsxNjUsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9lbGVtZW50c19ieV90YWdf
bmFtZV9hc19odG1sX2NvbGxlY3Rpb24oV2ViS2l0RE9NRWxlbWVudCoKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01FbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZWxl
bWVudF9oYXNfYXR0cmlidXRlcyhXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0x
NDMsOCArMTc4LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9oYXNfYXR0cmlidXRlcyhXZWJLaXRE
T01FbGVtZW50KiBzZWxmKTsKICAqIEBsb2NhbE5hbWU6IEEgI2djaGFyCiAgKgogICogUmV0dXJu
czogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdj
aGFyKgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9hdHRyaWJ1dGVfbnMoV2ViS2l0RE9NRWxlbWVu
dCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWVzcGFjZVVSSSwgY29uc3QgZ2NoYXIqIGxvY2FsTmFt
ZSk7CiAKIC8qKgpAQCAtMTU1LDggKzE5MiwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2F0
dHJpYnV0ZV9ucyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZXNwYQog
ICogQHZhbHVlOiBBICNnY2hhcgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZWxlbWVudF9zZXRf
YXR0cmlidXRlX25zKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lc3Bh
Y2VVUkksIGNvbnN0IGdjaGFyKiBxdWFsaWZpZWROYW1lLCBjb25zdCBnY2hhciogdmFsdWUsIEdF
cnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xNjUsOCArMjA0LDEwIEBAIHdlYmtpdF9kb21fZWxl
bWVudF9zZXRfYXR0cmlidXRlX25zKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFy
KiBuYW1lc3BhCiAgKiBAbmFtZXNwYWNlVVJJOiBBICNnY2hhcgogICogQGxvY2FsTmFtZTogQSAj
Z2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9lbGVtZW50X3JlbW92ZV9hdHRyaWJ1dGVfbnMoV2ViS2l0RE9NRWxlbWVudCog
c2VsZiwgY29uc3QgZ2NoYXIqIG5hbWVzcGFjZVVSSSwgY29uc3QgZ2NoYXIqIGxvY2FsTmFtZSk7
CiAKIC8qKgpAQCAtMTc4LDggKzIxOSwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfcmVtb3ZlX2F0
dHJpYnV0ZV9ucyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZQogICog
UmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1MQ29sbGVjdGlvbgogICoK
ICAqIFNpbmNlOiAyLjEyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24q
CitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKIHdlYmtpdF9kb21f
ZWxlbWVudF9nZXRfZWxlbWVudHNfYnlfdGFnX25hbWVfbnNfYXNfaHRtbF9jb2xsZWN0aW9uKFdl
YktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lc3BhY2VVUkksIGNvbnN0IGdj
aGFyKiBsb2NhbE5hbWUpOwogCiAvKioKQEAgLTE4OSw4ICsyMzIsMTAgQEAgd2Via2l0X2RvbV9l
bGVtZW50X2dldF9lbGVtZW50c19ieV90YWdfbmFtZV9uc19hc19odG1sX2NvbGxlY3Rpb24oV2Vi
S2l0RE9NRWxlbWUKICAqIEBsb2NhbE5hbWU6IEEgI2djaGFyCiAgKgogICogUmV0dXJuczogKHRy
YW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01BdHRyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9N
QXR0cioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUF0dHIqCiB3ZWJraXRfZG9tX2VsZW1l
bnRfZ2V0X2F0dHJpYnV0ZV9ub2RlX25zKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiBuYW1lc3BhY2VVUkksIGNvbnN0IGdjaGFyKiBsb2NhbE5hbWUpOwogCiAvKioKQEAgLTIw
MCw4ICsyNDUsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9hdHRyaWJ1dGVfbm9kZV9ucyhX
ZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmEKICAqIEBlcnJvcjogI0dFcnJv
cgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NQXR0cgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIFdlYktpdERPTUF0dHIqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01B
dHRyKgogd2Via2l0X2RvbV9lbGVtZW50X3NldF9hdHRyaWJ1dGVfbm9kZV9ucyhXZWJLaXRET01F
bGVtZW50KiBzZWxmLCBXZWJLaXRET01BdHRyKiBuZXdBdHRyLCBHRXJyb3IqKiBlcnJvcik7CiAK
IC8qKgpAQCAtMjEwLDggKzI1NywxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X2F0dHJpYnV0
ZV9ub2RlX25zKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIFdlYktpdERPTUF0dHIqCiAgKiBAbmFt
ZTogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9lbGVtZW50
X2hhc19hdHRyaWJ1dGUoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWUp
OwogCiAvKioKQEAgLTIyMSwyNCArMjcwLDMwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9oYXNfYXR0
cmlidXRlKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lKTsKICAqIEBs
b2NhbE5hbWU6IEEgI2djaGFyCiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21f
ZWxlbWVudF9oYXNfYXR0cmlidXRlX25zKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiBuYW1lc3BhY2VVUkksIGNvbnN0IGdjaGFyKiBsb2NhbE5hbWUpOwogCiAvKioKICAqIHdl
YmtpdF9kb21fZWxlbWVudF9mb2N1czoKICAqIEBzZWxmOiBBICNXZWJLaXRET01FbGVtZW50CiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21fZWxlbWVudF9mb2N1cyhXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCiAgKiB3ZWJr
aXRfZG9tX2VsZW1lbnRfYmx1cjoKICAqIEBzZWxmOiBBICNXZWJLaXRET01FbGVtZW50CiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
ZWxlbWVudF9ibHVyKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTI0Niw4ICsz
MDEsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2JsdXIoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICogQGFsaWduV2l0aFRvcDogQSAjZ2Jv
b2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9lbGVtZW50X3Njcm9sbF9pbnRvX3ZpZXcoV2ViS2l0RE9NRWxlbWVudCogc2Vs
ZiwgZ2Jvb2xlYW4gYWxpZ25XaXRoVG9wKTsKIAogLyoqCkBAIC0yNTUsOCArMzEyLDEwIEBAIHdl
YmtpdF9kb21fZWxlbWVudF9zY3JvbGxfaW50b192aWV3KFdlYktpdERPTUVsZW1lbnQqIHNlbGYs
IGdib29sZWFuIGFsaWduV2l0aFRvCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICog
QGNlbnRlcklmTmVlZGVkOiBBICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRfc2Nyb2xsX2ludG9fdmll
d19pZl9uZWVkZWQoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gY2VudGVySWZOZWVk
ZWQpOwogCiAvKioKQEAgLTI2NCw4ICszMjMsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X3Njcm9s
bF9pbnRvX3ZpZXdfaWZfbmVlZGVkKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGdib29sZWFuIGMK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01FbGVtZW50CiAgKiBAbGluZXM6IEEgI2dsb25nCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
ZWxlbWVudF9zY3JvbGxfYnlfbGluZXMoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgZ2xvbmcgbGlu
ZXMpOwogCiAvKioKQEAgLTI3Myw4ICszMzQsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X3Njcm9s
bF9ieV9saW5lcyhXZWJLaXRET01FbGVtZW50KiBzZWxmLCBnbG9uZyBsaW5lcyk7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICogQHBhZ2VzOiBBICNnbG9uZwogICoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRf
c2Nyb2xsX2J5X3BhZ2VzKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGdsb25nIHBhZ2VzKTsKIAog
LyoqCkBAIC0yODUsOCArMzQ4LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9zY3JvbGxfYnlfcGFn
ZXMoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgZ2xvbmcgcGFnZXMpOwogICogUmV0dXJuczogKHRy
YW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1MQ29sbGVjdGlvbgogICoKICAqIFNpbmNlOiAy
LjEyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCitXRUJLSVRfREVQ
UkVDQVRFRCBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKIHdlYmtpdF9kb21fZWxlbWVudF9nZXRf
ZWxlbWVudHNfYnlfY2xhc3NfbmFtZV9hc19odG1sX2NvbGxlY3Rpb24oV2ViS2l0RE9NRWxlbWVu
dCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWUpOwogCiAvKioKQEAgLTI5Niw4ICszNjEsMTAgQEAg
d2Via2l0X2RvbV9lbGVtZW50X2dldF9lbGVtZW50c19ieV9jbGFzc19uYW1lX2FzX2h0bWxfY29s
bGVjdGlvbihXZWJLaXRET01FbGVtZW4KICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVy
bnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IFdlYktpdERPTUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgog
d2Via2l0X2RvbV9lbGVtZW50X3F1ZXJ5X3NlbGVjdG9yKFdlYktpdERPTUVsZW1lbnQqIHNlbGYs
IGNvbnN0IGdjaGFyKiBzZWxlY3RvcnMsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0zMDcs
OCArMzc0LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9xdWVyeV9zZWxlY3RvcihXZWJLaXRET01F
bGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogc2VsZWN0b3JzCiAgKiBAZXJyb3I6ICNHRXJyb3IK
ICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTU5vZGVMaXN0Cisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZUxpc3QqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJL
aXRET01Ob2RlTGlzdCoKIHdlYmtpdF9kb21fZWxlbWVudF9xdWVyeV9zZWxlY3Rvcl9hbGwoV2Vi
S2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHNlbGVjdG9ycywgR0Vycm9yKiogZXJy
b3IpOwogCiAvKioKQEAgLTMxNiw4ICszODUsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X3F1ZXJ5
X3NlbGVjdG9yX2FsbChXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogc2VsZWMK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01FbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0
X2RvbV9lbGVtZW50X2dldF90YWdfbmFtZShXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC0zMjUsOCArMzk2LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfdGFnX25hbWUoV2Vi
S2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoK
ICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NTmFtZWROb2RlTWFwCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTmFtZWROb2RlTWFwKgorV0VCS0lUX0RFUFJFQ0FURUQg
V2ViS2l0RE9NTmFtZWROb2RlTWFwKgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9hdHRyaWJ1dGVz
KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTMzNCw4ICs0MDcsMTAgQEAgd2Vi
a2l0X2RvbV9lbGVtZW50X2dldF9hdHRyaWJ1dGVzKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
ZnVsbCk6IEEgI1dlYktpdERPTUNTU1N0eWxlRGVjbGFyYXRpb24KKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBX
ZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9uKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9N
Q1NTU3R5bGVEZWNsYXJhdGlvbioKIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfc3R5bGUoV2ViS2l0
RE9NRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMzQzLDggKzQxOCwxMCBAQCB3ZWJraXRfZG9t
X2VsZW1lbnRfZ2V0X3N0eWxlKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2VsZW1lbnRf
Z2V0X2lkKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTM1Miw4ICs0MjksMTAg
QEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9pZChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01FbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZWxl
bWVudF9zZXRfaWQoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsK
IAogLyoqCkBAIC0zNjMsOCArNDQyLDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9zZXRfaWQoV2Vi
S2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKICAqIFJldHVybnM6IEEg
I2djaGFyCiAgKgogICogU2luY2U6IDIuMTQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9uYW1lc3BhY2VfdXJp
KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTM3NCw4ICs0NTUsMTAgQEAgd2Vi
a2l0X2RvbV9lbGVtZW50X2dldF9uYW1lc3BhY2VfdXJpKFdlYktpdERPTUVsZW1lbnQqIHNlbGYp
OwogICogUmV0dXJuczogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNAorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2VsZW1lbnRf
Z2V0X3ByZWZpeChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0zODUsOCArNDY4
LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfcHJlZml4KFdlYktpdERPTUVsZW1lbnQqIHNl
bGYpOwogICogUmV0dXJuczogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNAorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2VsZW1l
bnRfZ2V0X2xvY2FsX25hbWUoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMzk0
LDggKzQ3OSwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2xvY2FsX25hbWUoV2ViS2l0RE9N
RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJl
dHVybnM6IEEgI2dkb3VibGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnZG91YmxlCitXRUJLSVRfREVQUkVD
QVRFRCBnZG91YmxlCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X29mZnNldF9sZWZ0KFdlYktpdERP
TUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTQwMyw4ICs0OTAsMTAgQEAgd2Via2l0X2RvbV9l
bGVtZW50X2dldF9vZmZzZXRfbGVmdChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01FbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2RvdWJsZQorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGdkb3VibGUKK1dFQktJVF9ERVBSRUNBVEVEIGdkb3VibGUKIHdlYmtpdF9kb21f
ZWxlbWVudF9nZXRfb2Zmc2V0X3RvcChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC00MTIsOCArNTAxLDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfb2Zmc2V0X3RvcChXZWJL
aXRET01FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01FbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2RvdWJsZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdkb3VibGUKK1dFQktJVF9E
RVBSRUNBVEVEIGdkb3VibGUKIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfb2Zmc2V0X3dpZHRoKFdl
YktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTQyMSw4ICs1MTIsMTAgQEAgd2Via2l0
X2RvbV9lbGVtZW50X2dldF9vZmZzZXRfd2lkdGgoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dkb3VibGUK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnZG91YmxlCitXRUJLSVRfREVQUkVDQVRFRCBnZG91YmxlCiB3ZWJr
aXRfZG9tX2VsZW1lbnRfZ2V0X29mZnNldF9oZWlnaHQoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtNDMwLDggKzUyMywxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X29mZnNl
dF9oZWlnaHQoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dkb3VibGUKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnZG91
YmxlCitXRUJLSVRfREVQUkVDQVRFRCBnZG91YmxlCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2Ns
aWVudF9sZWZ0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTQzOSw4ICs1MzQs
MTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9jbGllbnRfbGVmdChXZWJLaXRET01FbGVtZW50
KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01FbGVtZW50CiAgKgogICogUmV0dXJuczog
QSAjZ2RvdWJsZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdkb3VibGUKK1dFQktJVF9ERVBSRUNBVEVEIGdk
b3VibGUKIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfY2xpZW50X3RvcChXZWJLaXRET01FbGVtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC00NDgsOCArNTQ1LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9n
ZXRfY2xpZW50X3RvcChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01FbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2RvdWJsZQorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGdkb3VibGUKK1dFQktJVF9ERVBSRUNBVEVEIGdkb3VibGUKIHdlYmtpdF9kb21fZWxlbWVudF9n
ZXRfY2xpZW50X3dpZHRoKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTQ1Nyw4
ICs1NTYsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9jbGllbnRfd2lkdGgoV2ViS2l0RE9N
RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJl
dHVybnM6IEEgI2dkb3VibGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnZG91YmxlCitXRUJLSVRfREVQUkVD
QVRFRCBnZG91YmxlCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2NsaWVudF9oZWlnaHQoV2ViS2l0
RE9NRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNDY2LDggKzU2NywxMCBAQCB3ZWJraXRfZG9t
X2VsZW1lbnRfZ2V0X2NsaWVudF9oZWlnaHQoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2Vs
ZW1lbnRfZ2V0X3Njcm9sbF9sZWZ0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTQ3NSw4ICs1NzgsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9zY3JvbGxfbGVmdChXZWJL
aXRET01FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01FbGVtZW50CiAgKiBA
dmFsdWU6IEEgI2dsb25nCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21fZWxlbWVudF9zZXRfc2Nyb2xsX2xlZnQoV2ViS2l0RE9NRWxl
bWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioKQEAgLTQ4NCw4ICs1ODksMTAgQEAgd2Vi
a2l0X2RvbV9lbGVtZW50X3NldF9zY3JvbGxfbGVmdChXZWJLaXRET01FbGVtZW50KiBzZWxmLCBn
bG9uZyB2YWx1ZSk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJldHVy
bnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGds
b25nCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3Njcm9sbF90b3AoV2ViS2l0RE9NRWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtNDkzLDggKzYwMCwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0
X3Njcm9sbF90b3AoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NRWxlbWVudAogICogQHZhbHVlOiBBICNnbG9uZwogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X3Njcm9sbF90
b3AoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioKQEAgLTUwMiw4
ICs2MTEsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X3NldF9zY3JvbGxfdG9wKFdlYktpdERPTUVs
ZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01FbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lU
X0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfc2Nyb2xsX3dpZHRoKFdl
YktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTUxMSw4ICs2MjIsMTAgQEAgd2Via2l0
X2RvbV9lbGVtZW50X2dldF9zY3JvbGxfd2lkdGgoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9t
X2VsZW1lbnRfZ2V0X3Njcm9sbF9oZWlnaHQoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtNTI1LDggKzYzOCwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3Njcm9sbF9oZWln
aHQoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6
IEEgI1dlYktpdERPTUNsaWVudFJlY3QKICAqCiAgKiBTaW5jZTogMi4xOAorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIFdlYktpdERPTUNsaWVudFJlY3QqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01DbGll
bnRSZWN0Kgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9ib3VuZGluZ19jbGllbnRfcmVjdChXZWJL
aXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC01MzksOCArNjU0LDEwIEBAIHdlYmtpdF9k
b21fZWxlbWVudF9nZXRfYm91bmRpbmdfY2xpZW50X3JlY3QoV2ViS2l0RE9NRWxlbWVudCogc2Vs
Zik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUNsaWVudFJlY3RM
aXN0CiAgKgogICogU2luY2U6IDIuMTgKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01DbGllbnRS
ZWN0TGlzdCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUNsaWVudFJlY3RMaXN0Kgogd2Vi
a2l0X2RvbV9lbGVtZW50X2dldF9jbGllbnRfcmVjdHMoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtNTQ4LDggKzY2NSwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2NsaWVu
dF9yZWN0cyhXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01F
bGVtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01FbGVt
ZW50CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVE
IFdlYktpdERPTUVsZW1lbnQqCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X29mZnNldF9wYXJlbnQo
V2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNTU5LDggKzY3OCwxMCBAQCB3ZWJr
aXRfZG9tX2VsZW1lbnRfZ2V0X29mZnNldF9wYXJlbnQoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjgKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9lbGVtZW50X2dl
dF9pbm5lcl9odG1sKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTU3MCw4ICs2
OTEsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9pbm5lcl9odG1sKFdlYktpdERPTUVsZW1l
bnQqIHNlbGYpOwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogU2luY2U6IDIuOAorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZWxlbWVu
dF9zZXRfaW5uZXJfaHRtbChXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC01ODEsOCArNzA0LDEwIEBAIHdlYmtpdF9k
b21fZWxlbWVudF9zZXRfaW5uZXJfaHRtbChXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBn
Y2hhciogdmFsdWUsIEdFCiAgKiBSZXR1cm5zOiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjgK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0
X2RvbV9lbGVtZW50X2dldF9vdXRlcl9odG1sKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTU5Miw4ICs3MTcsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9vdXRlcl9odG1s
KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogU2lu
Y2U6IDIuOAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21fZWxlbWVudF9zZXRfb3V0ZXJfaHRtbChXZWJLaXRET01FbGVtZW50KiBzZWxmLCBj
b25zdCBnY2hhciogdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC02MDEsOCArNzI4
LDEwIEBAIHdlYmtpdF9kb21fZWxlbWVudF9zZXRfb3V0ZXJfaHRtbChXZWJLaXRET01FbGVtZW50
KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxl
bWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitX
RUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfY2xhc3NfbmFt
ZShXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02MTAsOCArNzM5LDEwIEBAIHdl
YmtpdF9kb21fZWxlbWVudF9nZXRfY2xhc3NfbmFtZShXZWJLaXRET01FbGVtZW50KiBzZWxmKTsK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01FbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
ZWxlbWVudF9zZXRfY2xhc3NfbmFtZShXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hh
ciogdmFsdWUpOwogCiAvKioKQEAgLTYxOSw4ICs3NTAsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50
X3NldF9jbGFzc19uYW1lKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1
ZSk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFu
c2ZlciBub25lKTogQSAjV2ViS2l0RE9NRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERP
TUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2Rv
bV9lbGVtZW50X2dldF9wcmV2aW91c19lbGVtZW50X3NpYmxpbmcoV2ViS2l0RE9NRWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtNjI4LDggKzc2MSwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0
X3ByZXZpb3VzX2VsZW1lbnRfc2libGluZyhXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01FbGVtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUp
OiBBICNXZWJLaXRET01FbGVtZW50CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRWxlbWVudCoK
K1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUVsZW1lbnQqCiB3ZWJraXRfZG9tX2VsZW1lbnRf
Z2V0X25leHRfZWxlbWVudF9zaWJsaW5nKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTYzOSw4ICs3NzQsMTAgQEAgd2Via2l0X2RvbV9lbGVtZW50X2dldF9uZXh0X2VsZW1lbnRf
c2libGluZyhXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKICAqIFJldHVybnM6ICh0cmFuc2ZlciBm
dWxsKTogQSAjV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24KICAqCiAgKiBTaW5jZTogMi4xMAorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgorV0VCS0lUX0RFUFJFQ0FURUQg
V2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2NoaWxkcmVu
KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTY0OCw4ICs3ODUsMTAgQEAgd2Vi
a2l0X2RvbV9lbGVtZW50X2dldF9jaGlsZHJlbihXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01FbGVtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5v
bmUpOiBBICNXZWJLaXRET01FbGVtZW50CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRWxlbWVu
dCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUVsZW1lbnQqCiB3ZWJraXRfZG9tX2VsZW1l
bnRfZ2V0X2ZpcnN0X2VsZW1lbnRfY2hpbGQoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtNjU3LDggKzc5NiwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2ZpcnN0X2VsZW1l
bnRfY2hpbGQoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
RWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NRWxl
bWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRF
RCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9lbGVtZW50X2dldF9sYXN0X2VsZW1lbnRf
Y2hpbGQoV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjY2LDggKzgwNywxMCBA
QCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2xhc3RfZWxlbWVudF9jaGlsZChXZWJLaXRET01FbGVt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01FbGVtZW50CiAgKgogICogUmV0dXJu
czogQSAjZ3Vsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQUkVDQVRFRCBn
dWxvbmcKIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfY2hpbGRfZWxlbWVudF9jb3VudChXZWJLaXRE
T01FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02NzksOCArODIyLDEwIEBAIHdlYmtpdF9kb21f
ZWxlbWVudF9nZXRfY2hpbGRfZWxlbWVudF9jb3VudChXZWJLaXRET01FbGVtZW50KiBzZWxmKTsK
ICAqIFJldHVybnM6IEEgI2dib29sZWFuCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fZWxl
bWVudF9tYXRjaGVzKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBzZWxlY3Rv
cnMsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC02OTIsOCArODM3LDEwIEBAIHdlYmtpdF9k
b21fZWxlbWVudF9tYXRjaGVzKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBz
ZWxlY3RvcnMsIEdFcnJvCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERP
TUVsZW1lbnQKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUVs
ZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FbGVtZW50Kgogd2Via2l0X2RvbV9l
bGVtZW50X2Nsb3Nlc3QoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHNlbGVj
dG9ycywgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTcwNSw4ICs4NTIsMTAgQEAgd2Via2l0
X2RvbV9lbGVtZW50X2Nsb3Nlc3QoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IHNlbGVjdG9ycywgR0Vycm8KICAqIFJldHVybnM6IEEgI2dib29sZWFuCiAgKgogICogU2luY2U6
IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xl
YW4KIHdlYmtpdF9kb21fZWxlbWVudF93ZWJraXRfbWF0Y2hlc19zZWxlY3RvcihXZWJLaXRET01F
bGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogc2VsZWN0b3JzLCBHRXJyb3IqKiBlcnJvcik7CiAK
IC8qKgpAQCAtNzE0LDggKzg2MywxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfd2Via2l0X21hdGNo
ZXNfc2VsZWN0b3IoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqCiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9lbGVtZW50X3dlYmtp
dF9yZXF1ZXN0X2Z1bGxzY3JlZW4oV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
NzI4LDggKzg3OSwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfd2Via2l0X3JlcXVlc3RfZnVsbHNj
cmVlbihXZWJLaXRET01FbGVtZW50KiBzZWxmKTsKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25l
KTogQSAjV2ViS2l0RE9NRWxlbWVudAogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgV2ViS2l0RE9NRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUVsZW1lbnQq
CiB3ZWJraXRfZG9tX2VsZW1lbnRfaW5zZXJ0X2FkamFjZW50X2VsZW1lbnQoV2ViS2l0RE9NRWxl
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHdoZXJlLCBXZWJLaXRET01FbGVtZW50KiBlbGVtZW50
LCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtNzQwLDggKzg5MywxMCBAQCB3ZWJraXRfZG9t
X2VsZW1lbnRfaW5zZXJ0X2FkamFjZW50X2VsZW1lbnQoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBTaW5jZTogMi4xNgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZWxl
bWVudF9pbnNlcnRfYWRqYWNlbnRfaHRtbChXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBn
Y2hhciogd2hlcmUsIGNvbnN0IGdjaGFyKiBodG1sLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpA
QCAtNzUyLDggKzkwNywxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRfaW5zZXJ0X2FkamFjZW50X2h0
bWwoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHdoZQogICogQGVycm9yOiAj
R0Vycm9yCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRf
REVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2VsZW1lbnRfaW5zZXJ0X2FkamFjZW50X3RleHQo
V2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHdoZXJlLCBjb25zdCBnY2hhciog
dGV4dCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTc2MSw4ICs5MTgsMTAgQEAgd2Via2l0
X2RvbV9lbGVtZW50X2luc2VydF9hZGphY2VudF90ZXh0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYs
IGNvbnN0IGdjaGFyKiB3aGUKICAqIEBzZWxmOiBBICNXZWJLaXRET01FbGVtZW50CiAgKgogICog
U2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2VsZW1lbnRfcmVxdWVzdF9wb2ludGVyX2xvY2soV2ViS2l0RE9NRWxlbWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtNzcxLDggKzkzMCwxMCBAQCB3ZWJraXRfZG9tX2VsZW1lbnRf
cmVxdWVzdF9wb2ludGVyX2xvY2soV2ViS2l0RE9NRWxlbWVudCogc2VsZik7CiAgKiBAZXJyb3I6
ICNHRXJyb3IKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZWxlbWVudF9yZW1vdmUoV2ViS2l0RE9NRWxl
bWVudCogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTc4Miw4ICs5NDMsMTAgQEAg
d2Via2l0X2RvbV9lbGVtZW50X3JlbW92ZShXZWJLaXRET01FbGVtZW50KiBzZWxmLCBHRXJyb3Iq
KiBlcnJvcik7CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTURPTVRv
a2VuTGlzdAogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRE9N
VG9rZW5MaXN0KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRE9NVG9rZW5MaXN0Kgogd2Vi
a2l0X2RvbV9lbGVtZW50X2dldF9jbGFzc19saXN0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpOwog
CiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1lbnRHdGsuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1l
bnRHdGsuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxYTE1OGVkZWZlZTczYjFhZTZkYjY5OTEwOTZiY2NmNDFh
M2U2ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRWxlbWVudEd0ay5jcHAKQEAgLTAsMCArMSwx
MzY0IEBACisvKgorICogIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBzb3Vy
Y2UgcHJvamVjdC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YktpdERPTUVsZW1lbnQuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvQ1NTSW1wb3J0UnVsZS5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvRE9NRXhjZXB0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9ET01S
ZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgorI2luY2x1ZGUgIkdPYmplY3RF
dmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9IVE1MTmFtZXMuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3R5
bGVkRWxlbWVudC5oPgorI2luY2x1ZGUgIldlYktpdERPTUF0dHJQcml2YXRlLmgiCisjaW5jbHVk
ZSAiV2ViS2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvblByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJL
aXRET01DbGllbnRSZWN0TGlzdFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01DbGllbnRS
ZWN0UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTURPTVRva2VuTGlzdFByaXZhdGUuaCIK
KyNpbmNsdWRlICJXZWJLaXRET01FbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdERP
TUV2ZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTUV2ZW50VGFyZ2V0LmgiCisjaW5j
bHVkZSAiV2ViS2l0RE9NSFRNTENvbGxlY3Rpb25Qcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0
RE9NTmFtZWROb2RlTWFwUHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTU5vZGVMaXN0UHJp
dmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTU5vZGVQcml2YXRlLmgiCisjaW5jbHVkZSAiV2Vi
S2l0RE9NUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkNvbnZlcnRUb1VURjhTdHJpbmcuaCIKKyNpbmNs
dWRlICJXZWJLaXRET01FbGVtZW50VW5zdGFibGUuaCIKKyNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+
CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FU
SU9OUzsKKworc3RhdGljIGdib29sZWFuIHdlYmtpdF9kb21fZWxlbWVudF9kaXNwYXRjaF9ldmVu
dChXZWJLaXRET01FdmVudFRhcmdldCogdGFyZ2V0LCBXZWJLaXRET01FdmVudCogZXZlbnQsIEdF
cnJvcioqIGVycm9yKQoreworICAgIFdlYkNvcmU6OkV2ZW50KiBjb3JlRXZlbnQgPSBXZWJLaXQ6
OmNvcmUoZXZlbnQpOworICAgIGlmICghY29yZUV2ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgV2ViQ29yZTo6RWxlbWVudCogY29yZVRhcmdldCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6
OkVsZW1lbnQqPihXRUJLSVRfRE9NX09CSkVDVCh0YXJnZXQpLT5jb3JlT2JqZWN0KTsKKworICAg
IGF1dG8gcmVzdWx0ID0gY29yZVRhcmdldC0+ZGlzcGF0Y2hFdmVudEZvckJpbmRpbmdzKCpjb3Jl
RXZlbnQpOworICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKKyAgICAgICAgYXV0byBk
ZXNjcmlwdGlvbiA9IFdlYkNvcmU6OkRPTUV4Y2VwdGlvbjo6ZGVzY3JpcHRpb24ocmVzdWx0LnJl
bGVhc2VFeGNlcHRpb24oKS5jb2RlKCkpOworICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVy
cm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGRlc2NyaXB0aW9uLmxlZ2Fj
eUNvZGUsIGRlc2NyaXB0aW9uLm5hbWUpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
ICAgIHJldHVybiByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7Cit9CisKK3N0YXRpYyBnYm9v
bGVhbiB3ZWJraXRfZG9tX2VsZW1lbnRfYWRkX2V2ZW50X2xpc3RlbmVyKFdlYktpdERPTUV2ZW50
VGFyZ2V0KiB0YXJnZXQsIGNvbnN0IGNoYXIqIGV2ZW50TmFtZSwgR0Nsb3N1cmUqIGhhbmRsZXIs
IGdib29sZWFuIHVzZUNhcHR1cmUpCit7CisgICAgV2ViQ29yZTo6RWxlbWVudCogY29yZVRhcmdl
dCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkVsZW1lbnQqPihXRUJLSVRfRE9NX09CSkVDVCh0YXJn
ZXQpLT5jb3JlT2JqZWN0KTsKKyAgICByZXR1cm4gV2ViS2l0OjpHT2JqZWN0RXZlbnRMaXN0ZW5l
cjo6YWRkRXZlbnRMaXN0ZW5lcihHX09CSkVDVCh0YXJnZXQpLCBjb3JlVGFyZ2V0LCBldmVudE5h
bWUsIGhhbmRsZXIsIHVzZUNhcHR1cmUpOworfQorCitzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X2Rv
bV9lbGVtZW50X3JlbW92ZV9ldmVudF9saXN0ZW5lcihXZWJLaXRET01FdmVudFRhcmdldCogdGFy
Z2V0LCBjb25zdCBjaGFyKiBldmVudE5hbWUsIEdDbG9zdXJlKiBoYW5kbGVyLCBnYm9vbGVhbiB1
c2VDYXB0dXJlKQoreworICAgIFdlYkNvcmU6OkVsZW1lbnQqIGNvcmVUYXJnZXQgPSBzdGF0aWNf
Y2FzdDxXZWJDb3JlOjpFbGVtZW50Kj4oV0VCS0lUX0RPTV9PQkpFQ1QodGFyZ2V0KS0+Y29yZU9i
amVjdCk7CisgICAgcmV0dXJuIFdlYktpdDo6R09iamVjdEV2ZW50TGlzdGVuZXI6OnJlbW92ZUV2
ZW50TGlzdGVuZXIoR19PQkpFQ1QodGFyZ2V0KSwgY29yZVRhcmdldCwgZXZlbnROYW1lLCBoYW5k
bGVyLCB1c2VDYXB0dXJlKTsKK30KKwordm9pZCB3ZWJraXRET01FbGVtZW50RE9NRXZlbnRUYXJn
ZXRJbml0KFdlYktpdERPTUV2ZW50VGFyZ2V0SWZhY2UqIGlmYWNlKQoreworICAgIGlmYWNlLT5k
aXNwYXRjaF9ldmVudCA9IHdlYmtpdF9kb21fZWxlbWVudF9kaXNwYXRjaF9ldmVudDsKKyAgICBp
ZmFjZS0+YWRkX2V2ZW50X2xpc3RlbmVyID0gd2Via2l0X2RvbV9lbGVtZW50X2FkZF9ldmVudF9s
aXN0ZW5lcjsKKyAgICBpZmFjZS0+cmVtb3ZlX2V2ZW50X2xpc3RlbmVyID0gd2Via2l0X2RvbV9l
bGVtZW50X3JlbW92ZV9ldmVudF9saXN0ZW5lcjsKK30KKworZW51bSB7CisgICAgRE9NX0VMRU1F
TlRfUFJPUF8wLAorICAgIERPTV9FTEVNRU5UX1BST1BfVEFHX05BTUUsCisgICAgRE9NX0VMRU1F
TlRfUFJPUF9BVFRSSUJVVEVTLAorICAgIERPTV9FTEVNRU5UX1BST1BfU1RZTEUsCisgICAgRE9N
X0VMRU1FTlRfUFJPUF9JRCwKKyAgICBET01fRUxFTUVOVF9QUk9QX05BTUVTUEFDRV9VUkksCisg
ICAgRE9NX0VMRU1FTlRfUFJPUF9QUkVGSVgsCisgICAgRE9NX0VMRU1FTlRfUFJPUF9MT0NBTF9O
QU1FLAorICAgIERPTV9FTEVNRU5UX1BST1BfT0ZGU0VUX0xFRlQsCisgICAgRE9NX0VMRU1FTlRf
UFJPUF9PRkZTRVRfVE9QLAorICAgIERPTV9FTEVNRU5UX1BST1BfT0ZGU0VUX1dJRFRILAorICAg
IERPTV9FTEVNRU5UX1BST1BfT0ZGU0VUX0hFSUdIVCwKKyAgICBET01fRUxFTUVOVF9QUk9QX0NM
SUVOVF9MRUZULAorICAgIERPTV9FTEVNRU5UX1BST1BfQ0xJRU5UX1RPUCwKKyAgICBET01fRUxF
TUVOVF9QUk9QX0NMSUVOVF9XSURUSCwKKyAgICBET01fRUxFTUVOVF9QUk9QX0NMSUVOVF9IRUlH
SFQsCisgICAgRE9NX0VMRU1FTlRfUFJPUF9TQ1JPTExfTEVGVCwKKyAgICBET01fRUxFTUVOVF9Q
Uk9QX1NDUk9MTF9UT1AsCisgICAgRE9NX0VMRU1FTlRfUFJPUF9TQ1JPTExfV0lEVEgsCisgICAg
RE9NX0VMRU1FTlRfUFJPUF9TQ1JPTExfSEVJR0hULAorICAgIERPTV9FTEVNRU5UX1BST1BfT0ZG
U0VUX1BBUkVOVCwKKyAgICBET01fRUxFTUVOVF9QUk9QX0lOTkVSX0hUTUwsCisgICAgRE9NX0VM
RU1FTlRfUFJPUF9PVVRFUl9IVE1MLAorICAgIERPTV9FTEVNRU5UX1BST1BfQ0xBU1NfTkFNRSwK
KyAgICBET01fRUxFTUVOVF9QUk9QX0NMQVNTX0xJU1QsCisgICAgRE9NX0VMRU1FTlRfUFJPUF9X
RUJLSVRfUkVHSU9OX09WRVJTRVQsCisgICAgRE9NX0VMRU1FTlRfUFJPUF9QUkVWSU9VU19FTEVN
RU5UX1NJQkxJTkcsCisgICAgRE9NX0VMRU1FTlRfUFJPUF9ORVhUX0VMRU1FTlRfU0lCTElORywK
KyAgICBET01fRUxFTUVOVF9QUk9QX0NISUxEUkVOLAorICAgIERPTV9FTEVNRU5UX1BST1BfRklS
U1RfRUxFTUVOVF9DSElMRCwKKyAgICBET01fRUxFTUVOVF9QUk9QX0xBU1RfRUxFTUVOVF9DSElM
RCwKKyAgICBET01fRUxFTUVOVF9QUk9QX0NISUxEX0VMRU1FTlRfQ09VTlQsCit9OworCitzdGF0
aWMgdm9pZCB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwg
Z3VpbnQgcHJvcGVydHlJZCwgY29uc3QgR1ZhbHVlKiB2YWx1ZSwgR1BhcmFtU3BlYyogcHNwZWMp
Cit7CisgICAgV2ViS2l0RE9NRWxlbWVudCogc2VsZiA9IFdFQktJVF9ET01fRUxFTUVOVChvYmpl
Y3QpOworCisgICAgc3dpdGNoIChwcm9wZXJ0eUlkKSB7CisgICAgY2FzZSBET01fRUxFTUVOVF9Q
Uk9QX0lEOgorICAgICAgICB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X2lkKHNlbGYsIGdfdmFsdWVf
Z2V0X3N0cmluZyh2YWx1ZSkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERPTV9FTEVNRU5U
X1BST1BfU0NST0xMX0xFRlQ6CisgICAgICAgIHdlYmtpdF9kb21fZWxlbWVudF9zZXRfc2Nyb2xs
X2xlZnQoc2VsZiwgZ192YWx1ZV9nZXRfbG9uZyh2YWx1ZSkpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIERPTV9FTEVNRU5UX1BST1BfU0NST0xMX1RPUDoKKyAgICAgICAgd2Via2l0X2RvbV9l
bGVtZW50X3NldF9zY3JvbGxfdG9wKHNlbGYsIGdfdmFsdWVfZ2V0X2xvbmcodmFsdWUpKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBET01fRUxFTUVOVF9QUk9QX0lOTkVSX0hUTUw6CisgICAg
ICAgIHdlYmtpdF9kb21fZWxlbWVudF9zZXRfaW5uZXJfaHRtbChzZWxmLCBnX3ZhbHVlX2dldF9z
dHJpbmcodmFsdWUpLCBudWxscHRyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBET01fRUxF
TUVOVF9QUk9QX09VVEVSX0hUTUw6CisgICAgICAgIHdlYmtpdF9kb21fZWxlbWVudF9zZXRfb3V0
ZXJfaHRtbChzZWxmLCBnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpLCBudWxscHRyKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBET01fRUxFTUVOVF9QUk9QX0NMQVNTX05BTUU6CisgICAgICAg
IHdlYmtpdF9kb21fZWxlbWVudF9zZXRfY2xhc3NfbmFtZShzZWxmLCBnX3ZhbHVlX2dldF9zdHJp
bmcodmFsdWUpKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgR19PQkpF
Q1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcGVydHlJZCwgcHNwZWMpOwor
ICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdF9kb21fZWxlbWVu
dF9nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLCBHVmFsdWUq
IHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKK3sKKyAgICBXZWJLaXRET01FbGVtZW50KiBzZWxm
ID0gV0VCS0lUX0RPTV9FTEVNRU5UKG9iamVjdCk7CisKKyAgICBzd2l0Y2ggKHByb3BlcnR5SWQp
IHsKKyAgICBjYXNlIERPTV9FTEVNRU5UX1BST1BfVEFHX05BTUU6CisgICAgICAgIGdfdmFsdWVf
dGFrZV9zdHJpbmcodmFsdWUsIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfdGFnX25hbWUoc2VsZikp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERPTV9FTEVNRU5UX1BST1BfQVRUUklCVVRFUzoK
KyAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0
X2F0dHJpYnV0ZXMoc2VsZikpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERPTV9FTEVNRU5U
X1BST1BfU1RZTEU6CisgICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2Rv
bV9lbGVtZW50X2dldF9zdHlsZShzZWxmKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRE9N
X0VMRU1FTlRfUFJPUF9JRDoKKyAgICAgICAgZ192YWx1ZV90YWtlX3N0cmluZyh2YWx1ZSwgd2Vi
a2l0X2RvbV9lbGVtZW50X2dldF9pZChzZWxmKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
RE9NX0VMRU1FTlRfUFJPUF9OQU1FU1BBQ0VfVVJJOgorICAgICAgICBnX3ZhbHVlX3Rha2Vfc3Ry
aW5nKHZhbHVlLCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X25hbWVzcGFjZV91cmkoc2VsZikpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIERPTV9FTEVNRU5UX1BST1BfUFJFRklYOgorICAgICAg
ICBnX3ZhbHVlX3Rha2Vfc3RyaW5nKHZhbHVlLCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3ByZWZp
eChzZWxmKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRE9NX0VMRU1FTlRfUFJPUF9MT0NB
TF9OQU1FOgorICAgICAgICBnX3ZhbHVlX3Rha2Vfc3RyaW5nKHZhbHVlLCB3ZWJraXRfZG9tX2Vs
ZW1lbnRfZ2V0X2xvY2FsX25hbWUoc2VsZikpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERP
TV9FTEVNRU5UX1BST1BfT0ZGU0VUX0xFRlQ6CisgICAgICAgIGdfdmFsdWVfc2V0X2RvdWJsZSh2
YWx1ZSwgd2Via2l0X2RvbV9lbGVtZW50X2dldF9vZmZzZXRfbGVmdChzZWxmKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgRE9NX0VMRU1FTlRfUFJPUF9PRkZTRVRfVE9QOgorICAgICAgICBn
X3ZhbHVlX3NldF9kb3VibGUodmFsdWUsIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfb2Zmc2V0X3Rv
cChzZWxmKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRE9NX0VMRU1FTlRfUFJPUF9PRkZT
RVRfV0lEVEg6CisgICAgICAgIGdfdmFsdWVfc2V0X2RvdWJsZSh2YWx1ZSwgd2Via2l0X2RvbV9l
bGVtZW50X2dldF9vZmZzZXRfd2lkdGgoc2VsZikpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IERPTV9FTEVNRU5UX1BST1BfT0ZGU0VUX0hFSUdIVDoKKyAgICAgICAgZ192YWx1ZV9zZXRfZG91
YmxlKHZhbHVlLCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X29mZnNldF9oZWlnaHQoc2VsZikpOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIERPTV9FTEVNRU5UX1BST1BfQ0xJRU5UX0xFRlQ6Cisg
ICAgICAgIGdfdmFsdWVfc2V0X2RvdWJsZSh2YWx1ZSwgd2Via2l0X2RvbV9lbGVtZW50X2dldF9j
bGllbnRfbGVmdChzZWxmKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRE9NX0VMRU1FTlRf
UFJPUF9DTElFTlRfVE9QOgorICAgICAgICBnX3ZhbHVlX3NldF9kb3VibGUodmFsdWUsIHdlYmtp
dF9kb21fZWxlbWVudF9nZXRfY2xpZW50X3RvcChzZWxmKSk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgRE9NX0VMRU1FTlRfUFJPUF9DTElFTlRfV0lEVEg6CisgICAgICAgIGdfdmFsdWVfc2V0
X2RvdWJsZSh2YWx1ZSwgd2Via2l0X2RvbV9lbGVtZW50X2dldF9jbGllbnRfd2lkdGgoc2VsZikp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIERPTV9FTEVNRU5UX1BST1BfQ0xJRU5UX0hFSUdI
VDoKKyAgICAgICAgZ192YWx1ZV9zZXRfZG91YmxlKHZhbHVlLCB3ZWJraXRfZG9tX2VsZW1lbnRf
Z2V0X2NsaWVudF9oZWlnaHQoc2VsZikpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERPTV9F
TEVNRU5UX1BST1BfU0NST0xMX0xFRlQ6CisgICAgICAgIGdfdmFsdWVfc2V0X2xvbmcodmFsdWUs
IHdlYmtpdF9kb21fZWxlbWVudF9nZXRfc2Nyb2xsX2xlZnQoc2VsZikpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIERPTV9FTEVNRU5UX1BST1BfU0NST0xMX1RPUDoKKyAgICAgICAgZ192YWx1
ZV9zZXRfbG9uZyh2YWx1ZSwgd2Via2l0X2RvbV9lbGVtZW50X2dldF9zY3JvbGxfdG9wKHNlbGYp
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBET01fRUxFTUVOVF9QUk9QX1NDUk9MTF9XSURU
SDoKKyAgICAgICAgZ192YWx1ZV9zZXRfbG9uZyh2YWx1ZSwgd2Via2l0X2RvbV9lbGVtZW50X2dl
dF9zY3JvbGxfd2lkdGgoc2VsZikpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERPTV9FTEVN
RU5UX1BST1BfU0NST0xMX0hFSUdIVDoKKyAgICAgICAgZ192YWx1ZV9zZXRfbG9uZyh2YWx1ZSwg
d2Via2l0X2RvbV9lbGVtZW50X2dldF9zY3JvbGxfaGVpZ2h0KHNlbGYpKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBET01fRUxFTUVOVF9QUk9QX09GRlNFVF9QQVJFTlQ6CisgICAgICAgIGdf
dmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2RvbV9lbGVtZW50X2dldF9vZmZzZXRfcGFy
ZW50KHNlbGYpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBET01fRUxFTUVOVF9QUk9QX0lO
TkVSX0hUTUw6CisgICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUsIHdlYmtpdF9kb21f
ZWxlbWVudF9nZXRfaW5uZXJfaHRtbChzZWxmKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
RE9NX0VMRU1FTlRfUFJPUF9PVVRFUl9IVE1MOgorICAgICAgICBnX3ZhbHVlX3Rha2Vfc3RyaW5n
KHZhbHVlLCB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X291dGVyX2h0bWwoc2VsZikpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIERPTV9FTEVNRU5UX1BST1BfQ0xBU1NfTkFNRToKKyAgICAgICAg
Z192YWx1ZV90YWtlX3N0cmluZyh2YWx1ZSwgd2Via2l0X2RvbV9lbGVtZW50X2dldF9jbGFzc19u
YW1lKHNlbGYpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBET01fRUxFTUVOVF9QUk9QX0NM
QVNTX0xJU1Q6CisgICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2RvbV9l
bGVtZW50X2dldF9jbGFzc19saXN0KHNlbGYpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBE
T01fRUxFTUVOVF9QUk9QX1dFQktJVF9SRUdJT05fT1ZFUlNFVDoKKyAgICAgICAgZ193YXJuaW5n
KCIlczogQ1NTIFJlZ2lvbnMgc3VwcG9ydCBoYXMgYmVlbiByZW1vdmVkLCB0aGUgd2Via2l0LXJl
Z2lvbi1vdmVyc2V0IHByb3BlcnR5IG5vIGxvbmdlciB3b3Jrcy4iLCBfX2Z1bmNfXyk7CisgICAg
ICAgIGdfdmFsdWVfc2V0X3N0YXRpY19zdHJpbmcodmFsdWUsIG51bGxwdHIpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIERPTV9FTEVNRU5UX1BST1BfUFJFVklPVVNfRUxFTUVOVF9TSUJMSU5H
OgorICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIHdlYmtpdF9kb21fZWxlbWVudF9n
ZXRfcHJldmlvdXNfZWxlbWVudF9zaWJsaW5nKHNlbGYpKTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBET01fRUxFTUVOVF9QUk9QX05FWFRfRUxFTUVOVF9TSUJMSU5HOgorICAgICAgICBnX3Zh
bHVlX3NldF9vYmplY3QodmFsdWUsIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfbmV4dF9lbGVtZW50
X3NpYmxpbmcoc2VsZikpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERPTV9FTEVNRU5UX1BS
T1BfQ0hJTERSRU46CisgICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2Rv
bV9lbGVtZW50X2dldF9jaGlsZHJlbihzZWxmKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
RE9NX0VMRU1FTlRfUFJPUF9GSVJTVF9FTEVNRU5UX0NISUxEOgorICAgICAgICBnX3ZhbHVlX3Nl
dF9vYmplY3QodmFsdWUsIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfZmlyc3RfZWxlbWVudF9jaGls
ZChzZWxmKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRE9NX0VMRU1FTlRfUFJPUF9MQVNU
X0VMRU1FTlRfQ0hJTEQ6CisgICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0
X2RvbV9lbGVtZW50X2dldF9sYXN0X2VsZW1lbnRfY2hpbGQoc2VsZikpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIERPTV9FTEVNRU5UX1BST1BfQ0hJTERfRUxFTUVOVF9DT1VOVDoKKyAgICAg
ICAgZ192YWx1ZV9zZXRfdWxvbmcodmFsdWUsIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfY2hpbGRf
ZWxlbWVudF9jb3VudChzZWxmKSk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAg
ICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BlcnR5SWQs
IHBzcGVjKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCit2b2lkIHdlYmtpdERPTUVsZW1l
bnRJbnN0YWxsUHJvcGVydGllcyhHT2JqZWN0Q2xhc3MqIGdvYmplY3RDbGFzcykKK3sKKyAgICBn
b2JqZWN0Q2xhc3MtPnNldF9wcm9wZXJ0eSA9IHdlYmtpdF9kb21fZWxlbWVudF9zZXRfcHJvcGVy
dHk7CisgICAgZ29iamVjdENsYXNzLT5nZXRfcHJvcGVydHkgPSB3ZWJraXRfZG9tX2VsZW1lbnRf
Z2V0X3Byb3BlcnR5OworCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAg
ICAgICAgZ29iamVjdENsYXNzLAorICAgICAgICBET01fRUxFTUVOVF9QUk9QX1RBR19OQU1FLAor
ICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKAorICAgICAgICAgICAgInRhZy1uYW1lIiwKKyAg
ICAgICAgICAgICJFbGVtZW50OnRhZy1uYW1lIiwKKyAgICAgICAgICAgICJyZWFkLW9ubHkgZ2No
YXIqIEVsZW1lbnQ6dGFnLW5hbWUiLAorICAgICAgICAgICAgIiIsCisgICAgICAgICAgICBXRUJL
SVRfUEFSQU1fUkVBREFCTEUpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVy
dHkoCisgICAgICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgRE9NX0VMRU1FTlRfUFJPUF9BVFRS
SUJVVEVTLAorICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KAorICAgICAgICAgICAgImF0dHJp
YnV0ZXMiLAorICAgICAgICAgICAgIkVsZW1lbnQ6YXR0cmlidXRlcyIsCisgICAgICAgICAgICAi
cmVhZC1vbmx5IFdlYktpdERPTU5hbWVkTm9kZU1hcCogRWxlbWVudDphdHRyaWJ1dGVzIiwKKyAg
ICAgICAgICAgIFdFQktJVF9ET01fVFlQRV9OQU1FRF9OT0RFX01BUCwKKyAgICAgICAgICAgIFdF
QktJVF9QQVJBTV9SRUFEQUJMRSkpOworCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9w
ZXJ0eSgKKyAgICAgICAgZ29iamVjdENsYXNzLAorICAgICAgICBET01fRUxFTUVOVF9QUk9QX1NU
WUxFLAorICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KAorICAgICAgICAgICAgInN0eWxlIiwK
KyAgICAgICAgICAgICJFbGVtZW50OnN0eWxlIiwKKyAgICAgICAgICAgICJyZWFkLW9ubHkgV2Vi
S2l0RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiogRWxlbWVudDpzdHlsZSIsCisgICAgICAgICAgICBX
RUJLSVRfRE9NX1RZUEVfQ1NTX1NUWUxFX0RFQ0xBUkFUSU9OLAorICAgICAgICAgICAgV0VCS0lU
X1BBUkFNX1JFQURBQkxFKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5
KAorICAgICAgICBnb2JqZWN0Q2xhc3MsCisgICAgICAgIERPTV9FTEVNRU5UX1BST1BfSUQsCisg
ICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoCisgICAgICAgICAgICAiaWQiLAorICAgICAgICAg
ICAgIkVsZW1lbnQ6aWQiLAorICAgICAgICAgICAgInJlYWQtd3JpdGUgZ2NoYXIqIEVsZW1lbnQ6
aWQiLAorICAgICAgICAgICAgIiIsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRF
KSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAorICAgICAgICBnb2Jq
ZWN0Q2xhc3MsCisgICAgICAgIERPTV9FTEVNRU5UX1BST1BfTkFNRVNQQUNFX1VSSSwKKyAgICAg
ICAgZ19wYXJhbV9zcGVjX3N0cmluZygKKyAgICAgICAgICAgICJuYW1lc3BhY2UtdXJpIiwKKyAg
ICAgICAgICAgICJFbGVtZW50Om5hbWVzcGFjZS11cmkiLAorICAgICAgICAgICAgInJlYWQtb25s
eSBnY2hhciogRWxlbWVudDpuYW1lc3BhY2UtdXJpIiwKKyAgICAgICAgICAgICIiLAorICAgICAg
ICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0
YWxsX3Byb3BlcnR5KAorICAgICAgICBnb2JqZWN0Q2xhc3MsCisgICAgICAgIERPTV9FTEVNRU5U
X1BST1BfUFJFRklYLAorICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKAorICAgICAgICAgICAg
InByZWZpeCIsCisgICAgICAgICAgICAiRWxlbWVudDpwcmVmaXgiLAorICAgICAgICAgICAgInJl
YWQtb25seSBnY2hhciogRWxlbWVudDpwcmVmaXgiLAorICAgICAgICAgICAgIiIsCisgICAgICAg
ICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3Rh
bGxfcHJvcGVydHkoCisgICAgICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgRE9NX0VMRU1FTlRf
UFJPUF9MT0NBTF9OQU1FLAorICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKAorICAgICAgICAg
ICAgImxvY2FsLW5hbWUiLAorICAgICAgICAgICAgIkVsZW1lbnQ6bG9jYWwtbmFtZSIsCisgICAg
ICAgICAgICAicmVhZC1vbmx5IGdjaGFyKiBFbGVtZW50OmxvY2FsLW5hbWUiLAorICAgICAgICAg
ICAgIiIsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKKworICAgIGdfb2Jq
ZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCisgICAgICAgIGdvYmplY3RDbGFzcywKKyAgICAg
ICAgRE9NX0VMRU1FTlRfUFJPUF9PRkZTRVRfTEVGVCwKKyAgICAgICAgZ19wYXJhbV9zcGVjX2Rv
dWJsZSgKKyAgICAgICAgICAgICJvZmZzZXQtbGVmdCIsCisgICAgICAgICAgICAiRWxlbWVudDpv
ZmZzZXQtbGVmdCIsCisgICAgICAgICAgICAicmVhZC1vbmx5IGdkb3VibGUgRWxlbWVudDpvZmZz
ZXQtbGVmdCIsCisgICAgICAgICAgICAtR19NQVhET1VCTEUsIEdfTUFYRE9VQkxFLCAwLAorICAg
ICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19p
bnN0YWxsX3Byb3BlcnR5KAorICAgICAgICBnb2JqZWN0Q2xhc3MsCisgICAgICAgIERPTV9FTEVN
RU5UX1BST1BfT0ZGU0VUX1RPUCwKKyAgICAgICAgZ19wYXJhbV9zcGVjX2RvdWJsZSgKKyAgICAg
ICAgICAgICJvZmZzZXQtdG9wIiwKKyAgICAgICAgICAgICJFbGVtZW50Om9mZnNldC10b3AiLAor
ICAgICAgICAgICAgInJlYWQtb25seSBnZG91YmxlIEVsZW1lbnQ6b2Zmc2V0LXRvcCIsCisgICAg
ICAgICAgICAtR19NQVhET1VCTEUsIEdfTUFYRE9VQkxFLCAwLAorICAgICAgICAgICAgV0VCS0lU
X1BBUkFNX1JFQURBQkxFKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5
KAorICAgICAgICBnb2JqZWN0Q2xhc3MsCisgICAgICAgIERPTV9FTEVNRU5UX1BST1BfT0ZGU0VU
X1dJRFRILAorICAgICAgICBnX3BhcmFtX3NwZWNfZG91YmxlKAorICAgICAgICAgICAgIm9mZnNl
dC13aWR0aCIsCisgICAgICAgICAgICAiRWxlbWVudDpvZmZzZXQtd2lkdGgiLAorICAgICAgICAg
ICAgInJlYWQtb25seSBnZG91YmxlIEVsZW1lbnQ6b2Zmc2V0LXdpZHRoIiwKKyAgICAgICAgICAg
IC1HX01BWERPVUJMRSwgR19NQVhET1VCTEUsIDAsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1f
UkVBREFCTEUpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCisgICAg
ICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgRE9NX0VMRU1FTlRfUFJPUF9PRkZTRVRfSEVJR0hU
LAorICAgICAgICBnX3BhcmFtX3NwZWNfZG91YmxlKAorICAgICAgICAgICAgIm9mZnNldC1oZWln
aHQiLAorICAgICAgICAgICAgIkVsZW1lbnQ6b2Zmc2V0LWhlaWdodCIsCisgICAgICAgICAgICAi
cmVhZC1vbmx5IGdkb3VibGUgRWxlbWVudDpvZmZzZXQtaGVpZ2h0IiwKKyAgICAgICAgICAgIC1H
X01BWERPVUJMRSwgR19NQVhET1VCTEUsIDAsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVB
REFCTEUpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCisgICAgICAg
IGdvYmplY3RDbGFzcywKKyAgICAgICAgRE9NX0VMRU1FTlRfUFJPUF9DTElFTlRfTEVGVCwKKyAg
ICAgICAgZ19wYXJhbV9zcGVjX2RvdWJsZSgKKyAgICAgICAgICAgICJjbGllbnQtbGVmdCIsCisg
ICAgICAgICAgICAiRWxlbWVudDpjbGllbnQtbGVmdCIsCisgICAgICAgICAgICAicmVhZC1vbmx5
IGdkb3VibGUgRWxlbWVudDpjbGllbnQtbGVmdCIsCisgICAgICAgICAgICAtR19NQVhET1VCTEUs
IEdfTUFYRE9VQkxFLCAwLAorICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisK
KyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAorICAgICAgICBnb2JqZWN0Q2xh
c3MsCisgICAgICAgIERPTV9FTEVNRU5UX1BST1BfQ0xJRU5UX1RPUCwKKyAgICAgICAgZ19wYXJh
bV9zcGVjX2RvdWJsZSgKKyAgICAgICAgICAgICJjbGllbnQtdG9wIiwKKyAgICAgICAgICAgICJF
bGVtZW50OmNsaWVudC10b3AiLAorICAgICAgICAgICAgInJlYWQtb25seSBnZG91YmxlIEVsZW1l
bnQ6Y2xpZW50LXRvcCIsCisgICAgICAgICAgICAtR19NQVhET1VCTEUsIEdfTUFYRE9VQkxFLCAw
LAorICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisKKyAgICBnX29iamVjdF9j
bGFzc19pbnN0YWxsX3Byb3BlcnR5KAorICAgICAgICBnb2JqZWN0Q2xhc3MsCisgICAgICAgIERP
TV9FTEVNRU5UX1BST1BfQ0xJRU5UX1dJRFRILAorICAgICAgICBnX3BhcmFtX3NwZWNfZG91Ymxl
KAorICAgICAgICAgICAgImNsaWVudC13aWR0aCIsCisgICAgICAgICAgICAiRWxlbWVudDpjbGll
bnQtd2lkdGgiLAorICAgICAgICAgICAgInJlYWQtb25seSBnZG91YmxlIEVsZW1lbnQ6Y2xpZW50
LXdpZHRoIiwKKyAgICAgICAgICAgIC1HX01BWERPVUJMRSwgR19NQVhET1VCTEUsIDAsCisgICAg
ICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2lu
c3RhbGxfcHJvcGVydHkoCisgICAgICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgRE9NX0VMRU1F
TlRfUFJPUF9DTElFTlRfSEVJR0hULAorICAgICAgICBnX3BhcmFtX3NwZWNfZG91YmxlKAorICAg
ICAgICAgICAgImNsaWVudC1oZWlnaHQiLAorICAgICAgICAgICAgIkVsZW1lbnQ6Y2xpZW50LWhl
aWdodCIsCisgICAgICAgICAgICAicmVhZC1vbmx5IGdkb3VibGUgRWxlbWVudDpjbGllbnQtaGVp
Z2h0IiwKKyAgICAgICAgICAgIC1HX01BWERPVUJMRSwgR19NQVhET1VCTEUsIDAsCisgICAgICAg
ICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3Rh
bGxfcHJvcGVydHkoCisgICAgICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgRE9NX0VMRU1FTlRf
UFJPUF9TQ1JPTExfTEVGVCwKKyAgICAgICAgZ19wYXJhbV9zcGVjX2xvbmcoCisgICAgICAgICAg
ICAic2Nyb2xsLWxlZnQiLAorICAgICAgICAgICAgIkVsZW1lbnQ6c2Nyb2xsLWxlZnQiLAorICAg
ICAgICAgICAgInJlYWQtd3JpdGUgZ2xvbmcgRWxlbWVudDpzY3JvbGwtbGVmdCIsCisgICAgICAg
ICAgICBHX01JTkxPTkcsIEdfTUFYTE9ORywgMCwKKyAgICAgICAgICAgIFdFQktJVF9QQVJBTV9S
RUFEV1JJVEUpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCisgICAg
ICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgRE9NX0VMRU1FTlRfUFJPUF9TQ1JPTExfVE9QLAor
ICAgICAgICBnX3BhcmFtX3NwZWNfbG9uZygKKyAgICAgICAgICAgICJzY3JvbGwtdG9wIiwKKyAg
ICAgICAgICAgICJFbGVtZW50OnNjcm9sbC10b3AiLAorICAgICAgICAgICAgInJlYWQtd3JpdGUg
Z2xvbmcgRWxlbWVudDpzY3JvbGwtdG9wIiwKKyAgICAgICAgICAgIEdfTUlOTE9ORywgR19NQVhM
T05HLCAwLAorICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSkpOworCisgICAgZ19v
YmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ29iamVjdENsYXNzLAorICAg
ICAgICBET01fRUxFTUVOVF9QUk9QX1NDUk9MTF9XSURUSCwKKyAgICAgICAgZ19wYXJhbV9zcGVj
X2xvbmcoCisgICAgICAgICAgICAic2Nyb2xsLXdpZHRoIiwKKyAgICAgICAgICAgICJFbGVtZW50
OnNjcm9sbC13aWR0aCIsCisgICAgICAgICAgICAicmVhZC1vbmx5IGdsb25nIEVsZW1lbnQ6c2Ny
b2xsLXdpZHRoIiwKKyAgICAgICAgICAgIEdfTUlOTE9ORywgR19NQVhMT05HLCAwLAorICAgICAg
ICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0
YWxsX3Byb3BlcnR5KAorICAgICAgICBnb2JqZWN0Q2xhc3MsCisgICAgICAgIERPTV9FTEVNRU5U
X1BST1BfU0NST0xMX0hFSUdIVCwKKyAgICAgICAgZ19wYXJhbV9zcGVjX2xvbmcoCisgICAgICAg
ICAgICAic2Nyb2xsLWhlaWdodCIsCisgICAgICAgICAgICAiRWxlbWVudDpzY3JvbGwtaGVpZ2h0
IiwKKyAgICAgICAgICAgICJyZWFkLW9ubHkgZ2xvbmcgRWxlbWVudDpzY3JvbGwtaGVpZ2h0IiwK
KyAgICAgICAgICAgIEdfTUlOTE9ORywgR19NQVhMT05HLCAwLAorICAgICAgICAgICAgV0VCS0lU
X1BBUkFNX1JFQURBQkxFKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5
KAorICAgICAgICBnb2JqZWN0Q2xhc3MsCisgICAgICAgIERPTV9FTEVNRU5UX1BST1BfT0ZGU0VU
X1BBUkVOVCwKKyAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgKKyAgICAgICAgICAgICJvZmZz
ZXQtcGFyZW50IiwKKyAgICAgICAgICAgICJFbGVtZW50Om9mZnNldC1wYXJlbnQiLAorICAgICAg
ICAgICAgInJlYWQtb25seSBXZWJLaXRET01FbGVtZW50KiBFbGVtZW50Om9mZnNldC1wYXJlbnQi
LAorICAgICAgICAgICAgV0VCS0lUX0RPTV9UWVBFX0VMRU1FTlQsCisgICAgICAgICAgICBXRUJL
SVRfUEFSQU1fUkVBREFCTEUpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVy
dHkoCisgICAgICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgRE9NX0VMRU1FTlRfUFJPUF9JTk5F
Ul9IVE1MLAorICAgICAgICBnX3BhcmFtX3NwZWNfc3RyaW5nKAorICAgICAgICAgICAgImlubmVy
LWh0bWwiLAorICAgICAgICAgICAgIkVsZW1lbnQ6aW5uZXItaHRtbCIsCisgICAgICAgICAgICAi
cmVhZC13cml0ZSBnY2hhciogRWxlbWVudDppbm5lci1odG1sIiwKKyAgICAgICAgICAgICIiLAor
ICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURXUklURSkpOworCisgICAgZ19vYmplY3RfY2xh
c3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ29iamVjdENsYXNzLAorICAgICAgICBET01f
RUxFTUVOVF9QUk9QX09VVEVSX0hUTUwsCisgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoCisg
ICAgICAgICAgICAib3V0ZXItaHRtbCIsCisgICAgICAgICAgICAiRWxlbWVudDpvdXRlci1odG1s
IiwKKyAgICAgICAgICAgICJyZWFkLXdyaXRlIGdjaGFyKiBFbGVtZW50Om91dGVyLWh0bWwiLAor
ICAgICAgICAgICAgIiIsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CisK
KyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAorICAgICAgICBnb2JqZWN0Q2xh
c3MsCisgICAgICAgIERPTV9FTEVNRU5UX1BST1BfQ0xBU1NfTkFNRSwKKyAgICAgICAgZ19wYXJh
bV9zcGVjX3N0cmluZygKKyAgICAgICAgICAgICJjbGFzcy1uYW1lIiwKKyAgICAgICAgICAgICJF
bGVtZW50OmNsYXNzLW5hbWUiLAorICAgICAgICAgICAgInJlYWQtd3JpdGUgZ2NoYXIqIEVsZW1l
bnQ6Y2xhc3MtbmFtZSIsCisgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgIFdFQktJVF9QQVJB
TV9SRUFEV1JJVEUpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCisg
ICAgICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgRE9NX0VMRU1FTlRfUFJPUF9DTEFTU19MSVNU
LAorICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KAorICAgICAgICAgICAgImNsYXNzLWxpc3Qi
LAorICAgICAgICAgICAgIkVsZW1lbnQ6Y2xhc3MtbGlzdCIsCisgICAgICAgICAgICAicmVhZC1v
bmx5IFdlYktpdERPTURPTVRva2VuTGlzdCogRWxlbWVudDpjbGFzcy1saXN0IiwKKyAgICAgICAg
ICAgIFdFQktJVF9ET01fVFlQRV9ET01fVE9LRU5fTElTVCwKKyAgICAgICAgICAgIFdFQktJVF9Q
QVJBTV9SRUFEQUJMRSkpOworCisgICAgLyoqCisgICAgICogV2ViS2l0RE9NRWxlbWVudDp3ZWJr
aXQtcmVnaW9uLW92ZXJzZXQ6CisgICAgICoKKyAgICAgKiBUaGlzIHByb3BlcnR5IGlzIGFsd2F5
cyAlTlVMTC4KKyAgICAgKgorICAgICAqIERlcHJlY2F0ZWQ6IDIuMjAKKyAgICAgKi8KKyAgICBn
X29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAorICAgICAgICBnb2JqZWN0Q2xhc3MsCisg
ICAgICAgIERPTV9FTEVNRU5UX1BST1BfV0VCS0lUX1JFR0lPTl9PVkVSU0VULAorICAgICAgICBn
X3BhcmFtX3NwZWNfc3RyaW5nKAorICAgICAgICAgICAgIndlYmtpdC1yZWdpb24tb3ZlcnNldCIs
CisgICAgICAgICAgICAiRWxlbWVudDp3ZWJraXQtcmVnaW9uLW92ZXJzZXQiLAorICAgICAgICAg
ICAgInJlYWQtb25seSBnY2hhciogRWxlbWVudDp3ZWJraXQtcmVnaW9uLW92ZXJzZXQiLAorICAg
ICAgICAgICAgIiIsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKKworICAg
IGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCisgICAgICAgIGdvYmplY3RDbGFzcywK
KyAgICAgICAgRE9NX0VMRU1FTlRfUFJPUF9QUkVWSU9VU19FTEVNRU5UX1NJQkxJTkcsCisgICAg
ICAgIGdfcGFyYW1fc3BlY19vYmplY3QoCisgICAgICAgICAgICAicHJldmlvdXMtZWxlbWVudC1z
aWJsaW5nIiwKKyAgICAgICAgICAgICJFbGVtZW50OnByZXZpb3VzLWVsZW1lbnQtc2libGluZyIs
CisgICAgICAgICAgICAicmVhZC1vbmx5IFdlYktpdERPTUVsZW1lbnQqIEVsZW1lbnQ6cHJldmlv
dXMtZWxlbWVudC1zaWJsaW5nIiwKKyAgICAgICAgICAgIFdFQktJVF9ET01fVFlQRV9FTEVNRU5U
LAorICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisKKyAgICBnX29iamVjdF9j
bGFzc19pbnN0YWxsX3Byb3BlcnR5KAorICAgICAgICBnb2JqZWN0Q2xhc3MsCisgICAgICAgIERP
TV9FTEVNRU5UX1BST1BfTkVYVF9FTEVNRU5UX1NJQkxJTkcsCisgICAgICAgIGdfcGFyYW1fc3Bl
Y19vYmplY3QoCisgICAgICAgICAgICAibmV4dC1lbGVtZW50LXNpYmxpbmciLAorICAgICAgICAg
ICAgIkVsZW1lbnQ6bmV4dC1lbGVtZW50LXNpYmxpbmciLAorICAgICAgICAgICAgInJlYWQtb25s
eSBXZWJLaXRET01FbGVtZW50KiBFbGVtZW50Om5leHQtZWxlbWVudC1zaWJsaW5nIiwKKyAgICAg
ICAgICAgIFdFQktJVF9ET01fVFlQRV9FTEVNRU5ULAorICAgICAgICAgICAgV0VCS0lUX1BBUkFN
X1JFQURBQkxFKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAorICAg
ICAgICBnb2JqZWN0Q2xhc3MsCisgICAgICAgIERPTV9FTEVNRU5UX1BST1BfQ0hJTERSRU4sCisg
ICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoCisgICAgICAgICAgICAiY2hpbGRyZW4iLAorICAg
ICAgICAgICAgIkVsZW1lbnQ6Y2hpbGRyZW4iLAorICAgICAgICAgICAgInJlYWQtb25seSBXZWJL
aXRET01IVE1MQ29sbGVjdGlvbiogRWxlbWVudDpjaGlsZHJlbiIsCisgICAgICAgICAgICBXRUJL
SVRfRE9NX1RZUEVfSFRNTF9DT0xMRUNUSU9OLAorICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JF
QURBQkxFKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAorICAgICAg
ICBnb2JqZWN0Q2xhc3MsCisgICAgICAgIERPTV9FTEVNRU5UX1BST1BfRklSU1RfRUxFTUVOVF9D
SElMRCwKKyAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgKKyAgICAgICAgICAgICJmaXJzdC1l
bGVtZW50LWNoaWxkIiwKKyAgICAgICAgICAgICJFbGVtZW50OmZpcnN0LWVsZW1lbnQtY2hpbGQi
LAorICAgICAgICAgICAgInJlYWQtb25seSBXZWJLaXRET01FbGVtZW50KiBFbGVtZW50OmZpcnN0
LWVsZW1lbnQtY2hpbGQiLAorICAgICAgICAgICAgV0VCS0lUX0RPTV9UWVBFX0VMRU1FTlQsCisg
ICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKKworICAgIGdfb2JqZWN0X2NsYXNz
X2luc3RhbGxfcHJvcGVydHkoCisgICAgICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgRE9NX0VM
RU1FTlRfUFJPUF9MQVNUX0VMRU1FTlRfQ0hJTEQsCisgICAgICAgIGdfcGFyYW1fc3BlY19vYmpl
Y3QoCisgICAgICAgICAgICAibGFzdC1lbGVtZW50LWNoaWxkIiwKKyAgICAgICAgICAgICJFbGVt
ZW50Omxhc3QtZWxlbWVudC1jaGlsZCIsCisgICAgICAgICAgICAicmVhZC1vbmx5IFdlYktpdERP
TUVsZW1lbnQqIEVsZW1lbnQ6bGFzdC1lbGVtZW50LWNoaWxkIiwKKyAgICAgICAgICAgIFdFQktJ
VF9ET01fVFlQRV9FTEVNRU5ULAorICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7
CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAorICAgICAgICBnb2JqZWN0
Q2xhc3MsCisgICAgICAgIERPTV9FTEVNRU5UX1BST1BfQ0hJTERfRUxFTUVOVF9DT1VOVCwKKyAg
ICAgICAgZ19wYXJhbV9zcGVjX3Vsb25nKAorICAgICAgICAgICAgImNoaWxkLWVsZW1lbnQtY291
bnQiLAorICAgICAgICAgICAgIkVsZW1lbnQ6Y2hpbGQtZWxlbWVudC1jb3VudCIsCisgICAgICAg
ICAgICAicmVhZC1vbmx5IGd1bG9uZyBFbGVtZW50OmNoaWxkLWVsZW1lbnQtY291bnQiLAorICAg
ICAgICAgICAgMCwgR19NQVhVTE9ORywgMCwKKyAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFE
QUJMRSkpOworCit9CisKK2djaGFyKiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2F0dHJpYnV0ZShX
ZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZSkKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
V0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCAwKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFp
bChuYW1lLCAwKTsKKyAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNl
bGYpOworICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZE5hbWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVU
RjgobmFtZSk7CisgICAgZ2NoYXIqIHJlc3VsdCA9IGNvbnZlcnRUb1VURjhTdHJpbmcoaXRlbS0+
Z2V0QXR0cmlidXRlKGNvbnZlcnRlZE5hbWUpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2
b2lkIHdlYmtpdF9kb21fZWxlbWVudF9zZXRfYXR0cmlidXRlKFdlYktpdERPTUVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiBuYW1lLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJvcioqIGVycm9y
KQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3Jl
dHVybl9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSk7CisgICAgZ19yZXR1cm5f
aWZfZmFpbChuYW1lKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHZhbHVlKTsKKyAgICBnX3JldHVy
bl9pZl9mYWlsKCFlcnJvciB8fCAhKmVycm9yKTsKKyAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVt
ID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZE5hbWUgPSBX
VEY6OlN0cmluZzo6ZnJvbVVURjgobmFtZSk7CisgICAgV1RGOjpTdHJpbmcgY29udmVydGVkVmFs
dWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodmFsdWUpOworICAgIGF1dG8gcmVzdWx0ID0gaXRl
bS0+c2V0QXR0cmlidXRlKGNvbnZlcnRlZE5hbWUsIGNvbnZlcnRlZFZhbHVlKTsKKyAgICBpZiAo
cmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJD
b3JlOjpET01FeGNlcHRpb246OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCku
Y29kZSgpKTsKKyAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9t
X3N0cmluZygiV0VCS0lUX0RPTSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlv
bi5uYW1lKTsKKyAgICB9Cit9CisKK3ZvaWQgd2Via2l0X2RvbV9lbGVtZW50X3JlbW92ZV9hdHRy
aWJ1dGUoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWUpCit7CisgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX2lmX2Zh
aWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKG5h
bWUpOworICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Cisg
ICAgV1RGOjpTdHJpbmcgY29udmVydGVkTmFtZSA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChuYW1l
KTsKKyAgICBpdGVtLT5yZW1vdmVBdHRyaWJ1dGUoY29udmVydGVkTmFtZSk7Cit9CisKK1dlYktp
dERPTUF0dHIqIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfYXR0cmlidXRlX25vZGUoV2ViS2l0RE9N
RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWUpCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9E
T01fSVNfRUxFTUVOVChzZWxmKSwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwobmFtZSwg
MCk7CisgICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAg
ICBXVEY6OlN0cmluZyBjb252ZXJ0ZWROYW1lID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KG5hbWUp
OworICAgIFJlZlB0cjxXZWJDb3JlOjpBdHRyPiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIo
aXRlbS0+Z2V0QXR0cmlidXRlTm9kZShjb252ZXJ0ZWROYW1lKSk7CisgICAgcmV0dXJuIFdlYktp
dDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOworfQorCitXZWJLaXRET01BdHRyKiB3ZWJraXRf
ZG9tX2VsZW1lbnRfc2V0X2F0dHJpYnV0ZV9ub2RlKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIFdl
YktpdERPTUF0dHIqIG5ld0F0dHIsIEdFcnJvcioqIGVycm9yKQoreworICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJL
SVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIDApOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdF
QktJVF9ET01fSVNfQVRUUihuZXdBdHRyKSwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
IWVycm9yIHx8ICEqZXJyb3IsIDApOworICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJL
aXQ6OmNvcmUoc2VsZik7CisgICAgV2ViQ29yZTo6QXR0ciogY29udmVydGVkTmV3QXR0ciA9IFdl
YktpdDo6Y29yZShuZXdBdHRyKTsKKyAgICBhdXRvIHJlc3VsdCA9IGl0ZW0tPnNldEF0dHJpYnV0
ZU5vZGUoKmNvbnZlcnRlZE5ld0F0dHIpOworICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkp
IHsKKyAgICAgICAgYXV0byBkZXNjcmlwdGlvbiA9IFdlYkNvcmU6OkRPTUV4Y2VwdGlvbjo6ZGVz
Y3JpcHRpb24ocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKS5jb2RlKCkpOworICAgICAgICBnX3Nl
dF9lcnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiks
IGRlc2NyaXB0aW9uLmxlZ2FjeUNvZGUsIGRlc2NyaXB0aW9uLm5hbWUpOworICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICB9CisgICAgcmV0dXJuIFdlYktpdDo6a2l0KHJlc3VsdC5yZWxlYXNl
UmV0dXJuVmFsdWUoKS5nZXQoKSk7Cit9CisKK1dlYktpdERPTUF0dHIqIHdlYmtpdF9kb21fZWxl
bWVudF9yZW1vdmVfYXR0cmlidXRlX25vZGUoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgV2ViS2l0
RE9NQXR0ciogb2xkQXR0ciwgR0Vycm9yKiogZXJyb3IpCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9E
T01fSVNfRUxFTUVOVChzZWxmKSwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lU
X0RPTV9JU19BVFRSKG9sZEF0dHIpLCAwKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCghZXJy
b3IgfHwgISplcnJvciwgMCk7CisgICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6
Y29yZShzZWxmKTsKKyAgICBXZWJDb3JlOjpBdHRyKiBjb252ZXJ0ZWRPbGRBdHRyID0gV2ViS2l0
Ojpjb3JlKG9sZEF0dHIpOworICAgIGF1dG8gcmVzdWx0ID0gaXRlbS0+cmVtb3ZlQXR0cmlidXRl
Tm9kZSgqY29udmVydGVkT2xkQXR0cik7CisgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkg
eworICAgICAgICBhdXRvIGRlc2NyaXB0aW9uID0gV2ViQ29yZTo6RE9NRXhjZXB0aW9uOjpkZXNj
cmlwdGlvbihyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUoKSk7CisgICAgICAgIGdfc2V0
X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwg
ZGVzY3JpcHRpb24ubGVnYWN5Q29kZSwgZGVzY3JpcHRpb24ubmFtZSk7CisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIH0KKyAgICByZXR1cm4gV2ViS2l0OjpraXQocmVzdWx0LnJlbGVhc2VS
ZXR1cm5WYWx1ZSgpLnB0cigpKTsKK30KKworV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qIHdlYmtp
dF9kb21fZWxlbWVudF9nZXRfZWxlbWVudHNfYnlfdGFnX25hbWVfYXNfaHRtbF9jb2xsZWN0aW9u
KFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lKQoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIDApOworICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKG5hbWUsIDApOworICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUo
c2VsZik7CisgICAgV1RGOjpTdHJpbmcgY29udmVydGVkTmFtZSA9IFdURjo6U3RyaW5nOjpmcm9t
VVRGOChuYW1lKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6SFRNTENvbGxlY3Rpb24+IGdvYmplY3RS
ZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5nZXRFbGVtZW50c0J5VGFnTmFtZShjb252ZXJ0ZWRO
YW1lKSk7CisgICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOworfQor
CitnYm9vbGVhbiB3ZWJraXRfZG9tX2VsZW1lbnRfaGFzX2F0dHJpYnV0ZXMoV2ViS2l0RE9NRWxl
bWVudCogc2VsZikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCBG
QUxTRSk7CisgICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsK
KyAgICBnYm9vbGVhbiByZXN1bHQgPSBpdGVtLT5oYXNBdHRyaWJ1dGVzKCk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKworZ2NoYXIqIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfYXR0cmlidXRlX25z
KFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lc3BhY2VVUkksIGNvbnN0
IGdjaGFyKiBsb2NhbE5hbWUpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChz
ZWxmKSwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwobmFtZXNwYWNlVVJJLCAwKTsKKyAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChsb2NhbE5hbWUsIDApOworICAgIFdlYkNvcmU6OkVsZW1l
bnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgV1RGOjpTdHJpbmcgY29udmVydGVk
TmFtZXNwYWNlVVJJID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KG5hbWVzcGFjZVVSSSk7CisgICAg
V1RGOjpTdHJpbmcgY29udmVydGVkTG9jYWxOYW1lID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KGxv
Y2FsTmFtZSk7CisgICAgZ2NoYXIqIHJlc3VsdCA9IGNvbnZlcnRUb1VURjhTdHJpbmcoaXRlbS0+
Z2V0QXR0cmlidXRlTlMoY29udmVydGVkTmFtZXNwYWNlVVJJLCBjb252ZXJ0ZWRMb2NhbE5hbWUp
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIHdlYmtpdF9kb21fZWxlbWVudF9zZXRf
YXR0cmlidXRlX25zKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lc3Bh
Y2VVUkksIGNvbnN0IGdjaGFyKiBxdWFsaWZpZWROYW1lLCBjb25zdCBnY2hhciogdmFsdWUsIEdF
cnJvcioqIGVycm9yKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSk7Cisg
ICAgZ19yZXR1cm5faWZfZmFpbChxdWFsaWZpZWROYW1lKTsKKyAgICBnX3JldHVybl9pZl9mYWls
KHZhbHVlKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKCFlcnJvciB8fCAhKmVycm9yKTsKKyAgICBX
ZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdURjo6U3Ry
aW5nIGNvbnZlcnRlZE5hbWVzcGFjZVVSSSA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChuYW1lc3Bh
Y2VVUkkpOworICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZFF1YWxpZmllZE5hbWUgPSBXVEY6OlN0
cmluZzo6ZnJvbVVURjgocXVhbGlmaWVkTmFtZSk7CisgICAgV1RGOjpTdHJpbmcgY29udmVydGVk
VmFsdWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodmFsdWUpOworICAgIGF1dG8gcmVzdWx0ID0g
aXRlbS0+c2V0QXR0cmlidXRlTlMoY29udmVydGVkTmFtZXNwYWNlVVJJLCBjb252ZXJ0ZWRRdWFs
aWZpZWROYW1lLCBjb252ZXJ0ZWRWYWx1ZSk7CisgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24o
KSkgeworICAgICAgICBhdXRvIGRlc2NyaXB0aW9uID0gV2ViQ29yZTo6RE9NRXhjZXB0aW9uOjpk
ZXNjcmlwdGlvbihyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUoKSk7CisgICAgICAgIGdf
c2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00i
KSwgZGVzY3JpcHRpb24ubGVnYWN5Q29kZSwgZGVzY3JpcHRpb24ubmFtZSk7CisgICAgfQorfQor
Cit2b2lkIHdlYmtpdF9kb21fZWxlbWVudF9yZW1vdmVfYXR0cmlidXRlX25zKFdlYktpdERPTUVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lc3BhY2VVUkksIGNvbnN0IGdjaGFyKiBsb2Nh
bE5hbWUpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpKTsKKyAgICBnX3Jl
dHVybl9pZl9mYWlsKG5hbWVzcGFjZVVSSSk7CisgICAgZ19yZXR1cm5faWZfZmFpbChsb2NhbE5h
bWUpOworICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Cisg
ICAgV1RGOjpTdHJpbmcgY29udmVydGVkTmFtZXNwYWNlVVJJID0gV1RGOjpTdHJpbmc6OmZyb21V
VEY4KG5hbWVzcGFjZVVSSSk7CisgICAgV1RGOjpTdHJpbmcgY29udmVydGVkTG9jYWxOYW1lID0g
V1RGOjpTdHJpbmc6OmZyb21VVEY4KGxvY2FsTmFtZSk7CisgICAgaXRlbS0+cmVtb3ZlQXR0cmli
dXRlTlMoY29udmVydGVkTmFtZXNwYWNlVVJJLCBjb252ZXJ0ZWRMb2NhbE5hbWUpOworfQorCitX
ZWJLaXRET01IVE1MQ29sbGVjdGlvbiogd2Via2l0X2RvbV9lbGVtZW50X2dldF9lbGVtZW50c19i
eV90YWdfbmFtZV9uc19hc19odG1sX2NvbGxlY3Rpb24oV2ViS2l0RE9NRWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIG5hbWVzcGFjZVVSSSwgY29uc3QgZ2NoYXIqIGxvY2FsTmFtZSkKK3sKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCAwKTsKKyAgICBnX3JldHVybl92
YWxfaWZfZmFpbChuYW1lc3BhY2VVUkksIDApOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGxv
Y2FsTmFtZSwgMCk7CisgICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShz
ZWxmKTsKKyAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWROYW1lc3BhY2VVUkkgPSBXVEY6OlN0cmlu
Zzo6ZnJvbVVURjgobmFtZXNwYWNlVVJJKTsKKyAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWRMb2Nh
bE5hbWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgobG9jYWxOYW1lKTsKKyAgICBSZWZQdHI8V2Vi
Q29yZTo6SFRNTENvbGxlY3Rpb24+IGdvYmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5n
ZXRFbGVtZW50c0J5VGFnTmFtZU5TKGNvbnZlcnRlZE5hbWVzcGFjZVVSSSwgY29udmVydGVkTG9j
YWxOYW1lKSk7CisgICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOwor
fQorCitXZWJLaXRET01BdHRyKiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2F0dHJpYnV0ZV9ub2Rl
X25zKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lc3BhY2VVUkksIGNv
bnN0IGdjaGFyKiBsb2NhbE5hbWUpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVO
VChzZWxmKSwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwobmFtZXNwYWNlVVJJLCAwKTsK
KyAgICBnX3JldHVybl92YWxfaWZfZmFpbChsb2NhbE5hbWUsIDApOworICAgIFdlYkNvcmU6OkVs
ZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgV1RGOjpTdHJpbmcgY29udmVy
dGVkTmFtZXNwYWNlVVJJID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KG5hbWVzcGFjZVVSSSk7Cisg
ICAgV1RGOjpTdHJpbmcgY29udmVydGVkTG9jYWxOYW1lID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4
KGxvY2FsTmFtZSk7CisgICAgUmVmUHRyPFdlYkNvcmU6OkF0dHI+IGdvYmplY3RSZXN1bHQgPSBX
VEY6OmdldFB0cihpdGVtLT5nZXRBdHRyaWJ1dGVOb2RlTlMoY29udmVydGVkTmFtZXNwYWNlVVJJ
LCBjb252ZXJ0ZWRMb2NhbE5hbWUpKTsKKyAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJl
c3VsdC5nZXQoKSk7Cit9CisKK1dlYktpdERPTUF0dHIqIHdlYmtpdF9kb21fZWxlbWVudF9zZXRf
YXR0cmlidXRlX25vZGVfbnMoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgV2ViS2l0RE9NQXR0ciog
bmV3QXR0ciwgR0Vycm9yKiogZXJyb3IpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxF
TUVOVChzZWxmKSwgMCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19B
VFRSKG5ld0F0dHIpLCAwKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCghZXJyb3IgfHwgISpl
cnJvciwgMCk7CisgICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxm
KTsKKyAgICBXZWJDb3JlOjpBdHRyKiBjb252ZXJ0ZWROZXdBdHRyID0gV2ViS2l0Ojpjb3JlKG5l
d0F0dHIpOworICAgIGF1dG8gcmVzdWx0ID0gaXRlbS0+c2V0QXR0cmlidXRlTm9kZU5TKCpjb252
ZXJ0ZWROZXdBdHRyKTsKKyAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAg
IGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3JlOjpET01FeGNlcHRpb246OmRlc2NyaXB0aW9uKHJl
c3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgpKTsKKyAgICAgICAgZ19zZXRfZXJyb3JfbGl0
ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBkZXNjcmlwdGlv
bi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5uYW1lKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgfQorICAgIHJldHVybiBXZWJLaXQ6OmtpdChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVl
KCkuZ2V0KCkpOworfQorCitnYm9vbGVhbiB3ZWJraXRfZG9tX2VsZW1lbnRfaGFzX2F0dHJpYnV0
ZShXZWJLaXRET01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZSkKK3sKKyAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCBGQUxTRSk7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwobmFtZSwgRkFMU0UpOworICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJL
aXQ6OmNvcmUoc2VsZik7CisgICAgV1RGOjpTdHJpbmcgY29udmVydGVkTmFtZSA9IFdURjo6U3Ry
aW5nOjpmcm9tVVRGOChuYW1lKTsKKyAgICBnYm9vbGVhbiByZXN1bHQgPSBpdGVtLT5oYXNBdHRy
aWJ1dGUoY29udmVydGVkTmFtZSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworZ2Jvb2xlYW4g
d2Via2l0X2RvbV9lbGVtZW50X2hhc19hdHRyaWJ1dGVfbnMoV2ViS2l0RE9NRWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIG5hbWVzcGFjZVVSSSwgY29uc3QgZ2NoYXIqIGxvY2FsTmFtZSkKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCBGQUxTRSk7CisgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwobmFtZXNwYWNlVVJJLCBGQUxTRSk7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwobG9jYWxOYW1lLCBGQUxTRSk7CisgICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9
IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWROYW1lc3BhY2VV
UkkgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgobmFtZXNwYWNlVVJJKTsKKyAgICBXVEY6OlN0cmlu
ZyBjb252ZXJ0ZWRMb2NhbE5hbWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgobG9jYWxOYW1lKTsK
KyAgICBnYm9vbGVhbiByZXN1bHQgPSBpdGVtLT5oYXNBdHRyaWJ1dGVOUyhjb252ZXJ0ZWROYW1l
c3BhY2VVUkksIGNvbnZlcnRlZExvY2FsTmFtZSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
dm9pZCB3ZWJraXRfZG9tX2VsZW1lbnRfZm9jdXMoV2ViS2l0RE9NRWxlbWVudCogc2VsZikKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5f
aWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZikpOworICAgIFdlYkNvcmU6OkVsZW1l
bnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgaXRlbS0+Zm9jdXMoKTsKK30KKwor
dm9pZCB3ZWJraXRfZG9tX2VsZW1lbnRfYmx1cihXZWJLaXRET01FbGVtZW50KiBzZWxmKQorewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl9p
Zl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSk7CisgICAgV2ViQ29yZTo6RWxlbWVu
dCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBpdGVtLT5ibHVyKCk7Cit9CisKK3Zv
aWQgd2Via2l0X2RvbV9lbGVtZW50X3Njcm9sbF9pbnRvX3ZpZXcoV2ViS2l0RE9NRWxlbWVudCog
c2VsZiwgZ2Jvb2xlYW4gYWxpZ25XaXRoVG9wKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxF
TUVOVChzZWxmKSk7CisgICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShz
ZWxmKTsKKyAgICBpdGVtLT5zY3JvbGxJbnRvVmlldyhhbGlnbldpdGhUb3ApOworfQorCit2b2lk
IHdlYmtpdF9kb21fZWxlbWVudF9zY3JvbGxfaW50b192aWV3X2lmX25lZWRlZChXZWJLaXRET01F
bGVtZW50KiBzZWxmLCBnYm9vbGVhbiBjZW50ZXJJZk5lZWRlZCkKK3sKKyAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRf
RE9NX0lTX0VMRU1FTlQoc2VsZikpOworICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJL
aXQ6OmNvcmUoc2VsZik7CisgICAgaXRlbS0+c2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChjZW50ZXJJ
Zk5lZWRlZCk7Cit9CisKK3ZvaWQgd2Via2l0X2RvbV9lbGVtZW50X3Njcm9sbF9ieV9saW5lcyhX
ZWJLaXRET01FbGVtZW50KiBzZWxmLCBnbG9uZyBsaW5lcykKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfRE9N
X0lTX0VMRU1FTlQoc2VsZikpOworICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6
OmNvcmUoc2VsZik7CisgICAgaXRlbS0+c2Nyb2xsQnlMaW5lcyhsaW5lcyk7Cit9CisKK3ZvaWQg
d2Via2l0X2RvbV9lbGVtZW50X3Njcm9sbF9ieV9wYWdlcyhXZWJLaXRET01FbGVtZW50KiBzZWxm
LCBnbG9uZyBwYWdlcykKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZikpOwor
ICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgaXRl
bS0+c2Nyb2xsQnlQYWdlcyhwYWdlcyk7Cit9CisKK1dlYktpdERPTUhUTUxDb2xsZWN0aW9uKiB3
ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2VsZW1lbnRzX2J5X2NsYXNzX25hbWVfYXNfaHRtbF9jb2xs
ZWN0aW9uKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lKQoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxf
aWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIDApOworICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKG5hbWUsIDApOworICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6
OmNvcmUoc2VsZik7CisgICAgV1RGOjpTdHJpbmcgY29udmVydGVkTmFtZSA9IFdURjo6U3RyaW5n
Ojpmcm9tVVRGOChuYW1lKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6SFRNTENvbGxlY3Rpb24+IGdv
YmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGNv
bnZlcnRlZE5hbWUpKTsKKyAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQo
KSk7Cit9CisKK2dib29sZWFuIHdlYmtpdF9kb21fZWxlbWVudF9tYXRjaGVzKFdlYktpdERPTUVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBzZWxlY3RvcnMsIEdFcnJvcioqIGVycm9yKQorewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIEZBTFNFKTsKKyAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbChzZWxlY3RvcnMsIEZBTFNFKTsKKyAgICBnX3JldHVybl92YWxfaWZf
ZmFpbCghZXJyb3IgfHwgISplcnJvciwgRkFMU0UpOworICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0
ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgV1RGOjpTdHJpbmcgY29udmVydGVkU2VsZWN0
b3JzID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHNlbGVjdG9ycyk7CisgICAgYXV0byByZXN1bHQg
PSBpdGVtLT5tYXRjaGVzKGNvbnZlcnRlZFNlbGVjdG9ycyk7CisgICAgaWYgKHJlc3VsdC5oYXNF
eGNlcHRpb24oKSkgeworICAgICAgICBhdXRvIGRlc2NyaXB0aW9uID0gV2ViQ29yZTo6RE9NRXhj
ZXB0aW9uOjpkZXNjcmlwdGlvbihyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUoKSk7Cisg
ICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldF
QktJVF9ET00iKSwgZGVzY3JpcHRpb24ubGVnYWN5Q29kZSwgZGVzY3JpcHRpb24ubmFtZSk7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlUmV0
dXJuVmFsdWUoKTsKK30KKworV2ViS2l0RE9NRWxlbWVudCogd2Via2l0X2RvbV9lbGVtZW50X2Ns
b3Nlc3QoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHNlbGVjdG9ycywgR0Vy
cm9yKiogZXJyb3IpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSwg
MCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZWN0b3JzLCAwKTsKKyAgICBnX3JldHVy
bl92YWxfaWZfZmFpbCghZXJyb3IgfHwgISplcnJvciwgMCk7CisgICAgV2ViQ29yZTo6RWxlbWVu
dCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWRT
ZWxlY3RvcnMgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgoc2VsZWN0b3JzKTsKKyAgICBhdXRvIHJl
c3VsdCA9IGl0ZW0tPmNsb3Nlc3QoY29udmVydGVkU2VsZWN0b3JzKTsKKyAgICBpZiAocmVzdWx0
Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3JlOjpE
T01FeGNlcHRpb246OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgp
KTsKKyAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmlu
ZygiV0VCS0lUX0RPTSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5uYW1l
KTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIHJldHVybiBXZWJLaXQ6Omtp
dChyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOworfQorCitnYm9vbGVhbiB3ZWJraXRfZG9t
X2VsZW1lbnRfd2Via2l0X21hdGNoZXNfc2VsZWN0b3IoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHNlbGVjdG9ycywgR0Vycm9yKiogZXJyb3IpCit7CisgICAgcmV0dXJuIHdl
YmtpdF9kb21fZWxlbWVudF9tYXRjaGVzKHNlbGYsIHNlbGVjdG9ycywgZXJyb3IpOworfQorCit2
b2lkIHdlYmtpdF9kb21fZWxlbWVudF93ZWJraXRfcmVxdWVzdF9mdWxsc2NyZWVuKFdlYktpdERP
TUVsZW1lbnQqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpKTsK
KyAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGl0
ZW0tPndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuKCk7Cit9CisKK1dlYktpdERPTUVsZW1lbnQqIHdl
YmtpdF9kb21fZWxlbWVudF9pbnNlcnRfYWRqYWNlbnRfZWxlbWVudChXZWJLaXRET01FbGVtZW50
KiBzZWxmLCBjb25zdCBnY2hhciogd2hlcmUsIFdlYktpdERPTUVsZW1lbnQqIGVsZW1lbnQsIEdF
cnJvcioqIGVycm9yKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiks
IDApOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHdoZXJlLCAwKTsKKyAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoZWxlbWVudCksIDApOworICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKCFlcnJvciB8fCAhKmVycm9yLCAwKTsKKyAgICBXZWJDb3JlOjpFbGVt
ZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdURjo6U3RyaW5nIGNvbnZlcnRl
ZFdoZXJlID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHdoZXJlKTsKKyAgICBXZWJDb3JlOjpFbGVt
ZW50KiBjb252ZXJ0ZWRFbGVtZW50ID0gV2ViS2l0Ojpjb3JlKGVsZW1lbnQpOworICAgIGF1dG8g
cmVzdWx0ID0gaXRlbS0+aW5zZXJ0QWRqYWNlbnRFbGVtZW50KGNvbnZlcnRlZFdoZXJlLCAqY29u
dmVydGVkRWxlbWVudCk7CisgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAg
ICBhdXRvIGRlc2NyaXB0aW9uID0gV2ViQ29yZTo6RE9NRXhjZXB0aW9uOjpkZXNjcmlwdGlvbihy
ZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUoKSk7CisgICAgICAgIGdfc2V0X2Vycm9yX2xp
dGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZGVzY3JpcHRp
b24ubGVnYWN5Q29kZSwgZGVzY3JpcHRpb24ubmFtZSk7CisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIH0KKyAgICByZXR1cm4gV2ViS2l0OjpraXQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1
ZSgpKTsKK30KKwordm9pZCB3ZWJraXRfZG9tX2VsZW1lbnRfaW5zZXJ0X2FkamFjZW50X2h0bWwo
V2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHdoZXJlLCBjb25zdCBnY2hhciog
aHRtbCwgR0Vycm9yKiogZXJyb3IpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNl
bGYpKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHdoZXJlKTsKKyAgICBnX3JldHVybl9pZl9mYWls
KGh0bWwpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoIWVycm9yIHx8ICEqZXJyb3IpOworICAgIFdl
YkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgV1RGOjpTdHJp
bmcgY29udmVydGVkV2hlcmUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgod2hlcmUpOworICAgIFdU
Rjo6U3RyaW5nIGNvbnZlcnRlZEh0bWwgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgoaHRtbCk7Cisg
ICAgYXV0byByZXN1bHQgPSBpdGVtLT5pbnNlcnRBZGphY2VudEhUTUwoY29udmVydGVkV2hlcmUs
IGNvbnZlcnRlZEh0bWwpOworICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKKyAgICAg
ICAgYXV0byBkZXNjcmlwdGlvbiA9IFdlYkNvcmU6OkRPTUV4Y2VwdGlvbjo6ZGVzY3JpcHRpb24o
cmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKS5jb2RlKCkpOworICAgICAgICBnX3NldF9lcnJvcl9s
aXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGRlc2NyaXB0
aW9uLmxlZ2FjeUNvZGUsIGRlc2NyaXB0aW9uLm5hbWUpOworICAgIH0KK30KKwordm9pZCB3ZWJr
aXRfZG9tX2VsZW1lbnRfaW5zZXJ0X2FkamFjZW50X3RleHQoV2ViS2l0RE9NRWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIHdoZXJlLCBjb25zdCBnY2hhciogdGV4dCwgR0Vycm9yKiogZXJyb3Ip
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0
dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpKTsKKyAgICBnX3JldHVybl9p
Zl9mYWlsKHdoZXJlKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHRleHQpOworICAgIGdfcmV0dXJu
X2lmX2ZhaWwoIWVycm9yIHx8ICEqZXJyb3IpOworICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0g
PSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgV1RGOjpTdHJpbmcgY29udmVydGVkV2hlcmUgPSBX
VEY6OlN0cmluZzo6ZnJvbVVURjgod2hlcmUpOworICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZFRl
eHQgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodGV4dCk7CisgICAgYXV0byByZXN1bHQgPSBpdGVt
LT5pbnNlcnRBZGphY2VudFRleHQoY29udmVydGVkV2hlcmUsIGNvbnZlcnRlZFRleHQpOworICAg
IGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKKyAgICAgICAgYXV0byBkZXNjcmlwdGlvbiA9
IFdlYkNvcmU6OkRPTUV4Y2VwdGlvbjo6ZGVzY3JpcHRpb24ocmVzdWx0LnJlbGVhc2VFeGNlcHRp
b24oKS5jb2RlKCkpOworICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJr
X2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGRlc2NyaXB0aW9uLmxlZ2FjeUNvZGUsIGRlc2Ny
aXB0aW9uLm5hbWUpOworICAgIH0KK30KKwordm9pZCB3ZWJraXRfZG9tX2VsZW1lbnRfcmVxdWVz
dF9wb2ludGVyX2xvY2soV2ViS2l0RE9NRWxlbWVudCogc2VsZikKK3sKKyNpZiBFTkFCTEUoUE9J
TlRFUl9MT0NLKQorICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSk7CisgICAgV2Vi
Q29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBpdGVtLT5yZXF1
ZXN0UG9pbnRlckxvY2soKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHNlbGYpOworICAgIFdF
QktJVF9XQVJOX0ZFQVRVUkVfTk9UX1BSRVNFTlQoIlBvaW50ZXIgTG9jayIpCisjZW5kaWYgLyog
RU5BQkxFKFBPSU5URVJfTE9DSykgKi8KK30KKwordm9pZCB3ZWJraXRfZG9tX2VsZW1lbnRfcmVt
b3ZlKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIEdFcnJvcioqIGVycm9yKQoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl9pZl9mYWlsKFdF
QktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSk7CisgICAgZ19yZXR1cm5faWZfZmFpbCghZXJyb3Ig
fHwgISplcnJvcik7CisgICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShz
ZWxmKTsKKyAgICBhdXRvIHJlc3VsdCA9IGl0ZW0tPnJlbW92ZSgpOworICAgIGlmIChyZXN1bHQu
aGFzRXhjZXB0aW9uKCkpIHsKKyAgICAgICAgYXV0byBkZXNjcmlwdGlvbiA9IFdlYkNvcmU6OkRP
TUV4Y2VwdGlvbjo6ZGVzY3JpcHRpb24ocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKS5jb2RlKCkp
OworICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5n
KCJXRUJLSVRfRE9NIiksIGRlc2NyaXB0aW9uLmxlZ2FjeUNvZGUsIGRlc2NyaXB0aW9uLm5hbWUp
OworICAgIH0KK30KKworV2ViS2l0RE9NRWxlbWVudCogd2Via2l0X2RvbV9lbGVtZW50X3F1ZXJ5
X3NlbGVjdG9yKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBzZWxlY3RvcnMs
IEdFcnJvcioqIGVycm9yKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2Vs
ZiksIDApOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGVjdG9ycywgMCk7CisgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoIWVycm9yIHx8ICEqZXJyb3IsIDApOworICAgIFdlYkNvcmU6OkVs
ZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgV1RGOjpTdHJpbmcgY29udmVy
dGVkU2VsZWN0b3JzID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHNlbGVjdG9ycyk7CisgICAgYXV0
byByZXN1bHQgPSBpdGVtLT5xdWVyeVNlbGVjdG9yKGNvbnZlcnRlZFNlbGVjdG9ycyk7CisgICAg
aWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAgICBhdXRvIGRlc2NyaXB0aW9uID0g
V2ViQ29yZTo6RE9NRXhjZXB0aW9uOjpkZXNjcmlwdGlvbihyZXN1bHQucmVsZWFzZUV4Y2VwdGlv
bigpLmNvZGUoKSk7CisgICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtf
ZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZGVzY3JpcHRpb24ubGVnYWN5Q29kZSwgZGVzY3Jp
cHRpb24ubmFtZSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKyAgICByZXR1cm4g
V2ViS2l0OjpraXQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKK30KKworV2ViS2l0RE9N
Tm9kZUxpc3QqIHdlYmtpdF9kb21fZWxlbWVudF9xdWVyeV9zZWxlY3Rvcl9hbGwoV2ViS2l0RE9N
RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHNlbGVjdG9ycywgR0Vycm9yKiogZXJyb3IpCit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSwgMCk7CisgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoc2VsZWN0b3JzLCAwKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCgh
ZXJyb3IgfHwgISplcnJvciwgMCk7CisgICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktp
dDo6Y29yZShzZWxmKTsKKyAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWRTZWxlY3RvcnMgPSBXVEY6
OlN0cmluZzo6ZnJvbVVURjgoc2VsZWN0b3JzKTsKKyAgICBhdXRvIHJlc3VsdCA9IGl0ZW0tPnF1
ZXJ5U2VsZWN0b3JBbGwoY29udmVydGVkU2VsZWN0b3JzKTsKKyAgICBpZiAocmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKSB7CisgICAgICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3JlOjpET01FeGNl
cHRpb246OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgpKTsKKyAg
ICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VC
S0lUX0RPTSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5uYW1lKTsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIHJldHVybiBXZWJLaXQ6OmtpdChyZXN1
bHQucmVsZWFzZVJldHVyblZhbHVlKCkucHRyKCkpOworfQorCitnY2hhciogd2Via2l0X2RvbV9l
bGVtZW50X2dldF90YWdfbmFtZShXZWJLaXRET01FbGVtZW50KiBzZWxmKQoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIDApOworICAgIFdlYkNvcmU6OkVsZW1lbnQq
IGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgZ2NoYXIqIHJlc3VsdCA9IGNvbnZlcnRU
b1VURjhTdHJpbmcoaXRlbS0+dGFnTmFtZSgpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitX
ZWJLaXRET01OYW1lZE5vZGVNYXAqIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfYXR0cmlidXRlcyhX
ZWJLaXRET01FbGVtZW50KiBzZWxmKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1F
TlQoc2VsZiksIDApOworICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUo
c2VsZik7CisgICAgUmVmUHRyPFdlYkNvcmU6Ok5hbWVkTm9kZU1hcD4gZ29iamVjdFJlc3VsdCA9
IFdURjo6Z2V0UHRyKGl0ZW0tPmF0dHJpYnV0ZXMoKSk7CisgICAgcmV0dXJuIFdlYktpdDo6a2l0
KGdvYmplY3RSZXN1bHQuZ2V0KCkpOworfQorCitXZWJLaXRET01DU1NTdHlsZURlY2xhcmF0aW9u
KiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3N0eWxlKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpCit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSwgMCk7CisgICAgYXV0byYg
aXRlbSA9ICpXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgaWYgKCFpczxXZWJDb3JlOjpTdHlsZWRF
bGVtZW50PihpdGVtKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFdlYktp
dDo6a2l0KCZkb3duY2FzdDxXZWJDb3JlOjpTdHlsZWRFbGVtZW50PihpdGVtKS5jc3NvbVN0eWxl
KCkpOworfQorCitnY2hhciogd2Via2l0X2RvbV9lbGVtZW50X2dldF9pZChXZWJLaXRET01FbGVt
ZW50KiBzZWxmKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIDAp
OworICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAg
Z2NoYXIqIHJlc3VsdCA9IGNvbnZlcnRUb1VURjhTdHJpbmcoaXRlbS0+Z2V0SWRBdHRyaWJ1dGUo
KSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9pZCB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0
X2lkKFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSkKK3sKKyAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5faWZfZmFp
bChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZikpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFs
dWUpOworICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Cisg
ICAgV1RGOjpTdHJpbmcgY29udmVydGVkVmFsdWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodmFs
dWUpOworICAgIGl0ZW0tPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29y
ZTo6SFRNTE5hbWVzOjppZEF0dHIsIGNvbnZlcnRlZFZhbHVlKTsKK30KKworZ2NoYXIqIHdlYmtp
dF9kb21fZWxlbWVudF9nZXRfbmFtZXNwYWNlX3VyaShXZWJLaXRET01FbGVtZW50KiBzZWxmKQor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIDApOworICAgIFdlYkNv
cmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgZ2NoYXIqIHJlc3Vs
dCA9IGNvbnZlcnRUb1VURjhTdHJpbmcoaXRlbS0+bmFtZXNwYWNlVVJJKCkpOworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK2djaGFyKiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X3ByZWZpeChXZWJL
aXRET01FbGVtZW50KiBzZWxmKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQo
c2VsZiksIDApOworICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2Vs
Zik7CisgICAgZ2NoYXIqIHJlc3VsdCA9IGNvbnZlcnRUb1VURjhTdHJpbmcoaXRlbS0+cHJlZml4
KCkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2djaGFyKiB3ZWJraXRfZG9tX2VsZW1lbnRf
Z2V0X2xvY2FsX25hbWUoV2ViS2l0RE9NRWxlbWVudCogc2VsZikKK3sKKyAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VC
S0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCAwKTsKKyAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVt
ID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGdjaGFyKiByZXN1bHQgPSBjb252ZXJ0VG9VVEY4
U3RyaW5nKGl0ZW0tPmxvY2FsTmFtZSgpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitnZG91
YmxlIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfb2Zmc2V0X2xlZnQoV2ViS2l0RE9NRWxlbWVudCog
c2VsZikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCAwKTsKKyAg
ICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGdkb3Vi
bGUgcmVzdWx0ID0gaXRlbS0+b2Zmc2V0TGVmdCgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisK
K2dkb3VibGUgd2Via2l0X2RvbV9lbGVtZW50X2dldF9vZmZzZXRfdG9wKFdlYktpdERPTUVsZW1l
bnQqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSwgMCk7
CisgICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBn
ZG91YmxlIHJlc3VsdCA9IGl0ZW0tPm9mZnNldFRvcCgpOworICAgIHJldHVybiByZXN1bHQ7Cit9
CisKK2dkb3VibGUgd2Via2l0X2RvbV9lbGVtZW50X2dldF9vZmZzZXRfd2lkdGgoV2ViS2l0RE9N
RWxlbWVudCogc2VsZikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYp
LCAwKTsKKyAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwor
ICAgIGdkb3VibGUgcmVzdWx0ID0gaXRlbS0+b2Zmc2V0V2lkdGgoKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCitnZG91YmxlIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfb2Zmc2V0X2hlaWdodChX
ZWJLaXRET01FbGVtZW50KiBzZWxmKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1F
TlQoc2VsZiksIDApOworICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUo
c2VsZik7CisgICAgZ2RvdWJsZSByZXN1bHQgPSBpdGVtLT5vZmZzZXRIZWlnaHQoKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCitnZG91YmxlIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfY2xpZW50
X2xlZnQoV2ViS2l0RE9NRWxlbWVudCogc2VsZikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9J
U19FTEVNRU5UKHNlbGYpLCAwKTsKKyAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0
Ojpjb3JlKHNlbGYpOworICAgIGdkb3VibGUgcmVzdWx0ID0gaXRlbS0+Y2xpZW50TGVmdCgpOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2dkb3VibGUgd2Via2l0X2RvbV9lbGVtZW50X2dldF9j
bGllbnRfdG9wKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9E
T01fSVNfRUxFTUVOVChzZWxmKSwgMCk7CisgICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdl
YktpdDo6Y29yZShzZWxmKTsKKyAgICBnZG91YmxlIHJlc3VsdCA9IGl0ZW0tPmNsaWVudFRvcCgp
OworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2dkb3VibGUgd2Via2l0X2RvbV9lbGVtZW50X2dl
dF9jbGllbnRfd2lkdGgoV2ViS2l0RE9NRWxlbWVudCogc2VsZikKK3sKKyAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VC
S0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCAwKTsKKyAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVt
ID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGdkb3VibGUgcmVzdWx0ID0gaXRlbS0+Y2xpZW50
V2lkdGgoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitnZG91YmxlIHdlYmtpdF9kb21fZWxl
bWVudF9nZXRfY2xpZW50X2hlaWdodChXZWJLaXRET01FbGVtZW50KiBzZWxmKQoreworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIDApOworICAgIFdlYkNvcmU6OkVsZW1l
bnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgZ2RvdWJsZSByZXN1bHQgPSBpdGVt
LT5jbGllbnRIZWlnaHQoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitnbG9uZyB3ZWJraXRf
ZG9tX2VsZW1lbnRfZ2V0X3Njcm9sbF9sZWZ0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSwgMCk7CisgICAgV2ViQ29yZTo6
RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBnbG9uZyByZXN1bHQgPSBp
dGVtLT5zY3JvbGxMZWZ0KCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9pZCB3ZWJraXRf
ZG9tX2VsZW1lbnRfc2V0X3Njcm9sbF9sZWZ0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYsIGdsb25n
IHZhbHVlKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSk7CisgICAgV2Vi
Q29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBpdGVtLT5zZXRT
Y3JvbGxMZWZ0KHZhbHVlKTsKK30KKworZ2xvbmcgd2Via2l0X2RvbV9lbGVtZW50X2dldF9zY3Jv
bGxfdG9wKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01f
SVNfRUxFTUVOVChzZWxmKSwgMCk7CisgICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktp
dDo6Y29yZShzZWxmKTsKKyAgICBnbG9uZyByZXN1bHQgPSBpdGVtLT5zY3JvbGxUb3AoKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIHdlYmtpdF9kb21fZWxlbWVudF9zZXRfc2Nyb2xs
X3RvcChXZWJLaXRET01FbGVtZW50KiBzZWxmLCBnbG9uZyB2YWx1ZSkKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJL
SVRfRE9NX0lTX0VMRU1FTlQoc2VsZikpOworICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBX
ZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgaXRlbS0+c2V0U2Nyb2xsVG9wKHZhbHVlKTsKK30KKwor
Z2xvbmcgd2Via2l0X2RvbV9lbGVtZW50X2dldF9zY3JvbGxfd2lkdGgoV2ViS2l0RE9NRWxlbWVu
dCogc2VsZikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCAwKTsK
KyAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGds
b25nIHJlc3VsdCA9IGl0ZW0tPnNjcm9sbFdpZHRoKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
KworZ2xvbmcgd2Via2l0X2RvbV9lbGVtZW50X2dldF9zY3JvbGxfaGVpZ2h0KFdlYktpdERPTUVs
ZW1lbnQqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSwg
MCk7CisgICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAg
ICBnbG9uZyByZXN1bHQgPSBpdGVtLT5zY3JvbGxIZWlnaHQoKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCitXZWJLaXRET01DbGllbnRSZWN0KiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2JvdW5k
aW5nX2NsaWVudF9yZWN0KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdF
QktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSwgbnVsbHB0cik7CisgICAgV2ViQ29yZTo6RWxlbWVu
dCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICByZXR1cm4gV2ViS2l0OjpraXQoaXRl
bS0+Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucHRyKCkpOworfQorCitXZWJLaXRET01DbGllbnRS
ZWN0TGlzdCogd2Via2l0X2RvbV9lbGVtZW50X2dldF9jbGllbnRfcmVjdHMoV2ViS2l0RE9NRWxl
bWVudCogc2VsZikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCBu
dWxscHRyKTsKKyAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYp
OworICAgIHJldHVybiBXZWJLaXQ6OmtpdChpdGVtLT5nZXRDbGllbnRSZWN0cygpLnB0cigpKTsK
K30KKworV2ViS2l0RE9NRWxlbWVudCogd2Via2l0X2RvbV9lbGVtZW50X2dldF9vZmZzZXRfcGFy
ZW50KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNf
RUxFTUVOVChzZWxmKSwgMCk7CisgICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6
Y29yZShzZWxmKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4gZ29iamVjdFJlc3VsdCA9
IFdURjo6Z2V0UHRyKGl0ZW0tPmJpbmRpbmdzT2Zmc2V0UGFyZW50KCkpOworICAgIHJldHVybiBX
ZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKK30KKworZ2NoYXIqIHdlYmtpdF9kb21f
ZWxlbWVudF9nZXRfaW5uZXJfaHRtbChXZWJLaXRET01FbGVtZW50KiBzZWxmKQoreworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQoc2VsZiksIDApOworICAgIFdlYkNvcmU6OkVsZW1l
bnQqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgZ2NoYXIqIHJlc3VsdCA9IGNvbnZl
cnRUb1VURjhTdHJpbmcoaXRlbS0+aW5uZXJIVE1MKCkpOworICAgIHJldHVybiByZXN1bHQ7Cit9
CisKK3ZvaWQgd2Via2l0X2RvbV9lbGVtZW50X3NldF9pbm5lcl9odG1sKFdlYktpdERPTUVsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpCit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX2lmX2ZhaWwo
V0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHZhbHVl
KTsKKyAgICBnX3JldHVybl9pZl9mYWlsKCFlcnJvciB8fCAhKmVycm9yKTsKKyAgICBXZWJDb3Jl
OjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdURjo6U3RyaW5nIGNv
bnZlcnRlZFZhbHVlID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKTsKKyAgICBhdXRvIHJl
c3VsdCA9IGl0ZW0tPnNldElubmVySFRNTChjb252ZXJ0ZWRWYWx1ZSk7CisgICAgaWYgKHJlc3Vs
dC5oYXNFeGNlcHRpb24oKSkgeworICAgICAgICBhdXRvIGRlc2NyaXB0aW9uID0gV2ViQ29yZTo6
RE9NRXhjZXB0aW9uOjpkZXNjcmlwdGlvbihyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUo
KSk7CisgICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJp
bmcoIldFQktJVF9ET00iKSwgZGVzY3JpcHRpb24ubGVnYWN5Q29kZSwgZGVzY3JpcHRpb24ubmFt
ZSk7CisgICAgfQorfQorCitnY2hhciogd2Via2l0X2RvbV9lbGVtZW50X2dldF9vdXRlcl9odG1s
KFdlYktpdERPTUVsZW1lbnQqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxF
TUVOVChzZWxmKSwgMCk7CisgICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29y
ZShzZWxmKTsKKyAgICBnY2hhciogcmVzdWx0ID0gY29udmVydFRvVVRGOFN0cmluZyhpdGVtLT5v
dXRlckhUTUwoKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9pZCB3ZWJraXRfZG9tX2Vs
ZW1lbnRfc2V0X291dGVyX2h0bWwoV2ViS2l0RE9NRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IHZhbHVlLCBHRXJyb3IqKiBlcnJvcikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfRE9NX0lTX0VMRU1FTlQo
c2VsZikpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFsdWUpOworICAgIGdfcmV0dXJuX2lmX2Zh
aWwoIWVycm9yIHx8ICEqZXJyb3IpOworICAgIFdlYkNvcmU6OkVsZW1lbnQqIGl0ZW0gPSBXZWJL
aXQ6OmNvcmUoc2VsZik7CisgICAgV1RGOjpTdHJpbmcgY29udmVydGVkVmFsdWUgPSBXVEY6OlN0
cmluZzo6ZnJvbVVURjgodmFsdWUpOworICAgIGF1dG8gcmVzdWx0ID0gaXRlbS0+c2V0T3V0ZXJI
VE1MKGNvbnZlcnRlZFZhbHVlKTsKKyAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7Cisg
ICAgICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3JlOjpET01FeGNlcHRpb246OmRlc2NyaXB0
aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgpKTsKKyAgICAgICAgZ19zZXRfZXJy
b3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBkZXNj
cmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5uYW1lKTsKKyAgICB9Cit9CisKK2djaGFy
KiB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2NsYXNzX25hbWUoV2ViS2l0RE9NRWxlbWVudCogc2Vs
ZikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCAwKTsKKyAgICBX
ZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGdjaGFyKiBy
ZXN1bHQgPSBjb252ZXJ0VG9VVEY4U3RyaW5nKGl0ZW0tPmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJv
bml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpjbGFzc0F0dHIpKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCit2b2lkIHdlYmtpdF9kb21fZWxlbWVudF9zZXRfY2xhc3NfbmFtZShXZWJLaXRE
T01FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpCit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0RP
TV9JU19FTEVNRU5UKHNlbGYpKTsKKyAgICBnX3JldHVybl9pZl9mYWlsKHZhbHVlKTsKKyAgICBX
ZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdURjo6U3Ry
aW5nIGNvbnZlcnRlZFZhbHVlID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKTsKKyAgICBp
dGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1l
czo6Y2xhc3NBdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7Cit9CisKK1dlYktpdERPTURPTVRva2VuTGlz
dCogd2Via2l0X2RvbV9lbGVtZW50X2dldF9jbGFzc19saXN0KFdlYktpdERPTUVsZW1lbnQqIHNl
bGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfRUxFTUVOVChzZWxmKSwgMCk7CisgICAg
V2ViQ29yZTo6RWxlbWVudCogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBSZWZQdHI8
V2ViQ29yZTo6RE9NVG9rZW5MaXN0PiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+
Y2xhc3NMaXN0KCkpOworICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgp
KTsKK30KKworV2ViS2l0RE9NRWxlbWVudCogd2Via2l0X2RvbV9lbGVtZW50X2dldF9wcmV2aW91
c19lbGVtZW50X3NpYmxpbmcoV2ViS2l0RE9NRWxlbWVudCogc2VsZikKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
V0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCAwKTsKKyAgICBXZWJDb3JlOjpFbGVtZW50KiBp
dGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiBn
b2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+cHJldmlvdXNFbGVtZW50U2libGluZygp
KTsKKyAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7Cit9CisKK1dl
YktpdERPTUVsZW1lbnQqIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfbmV4dF9lbGVtZW50X3NpYmxp
bmcoV2ViS2l0RE9NRWxlbWVudCogc2VsZikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19F
TEVNRU5UKHNlbGYpLCAwKTsKKyAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpj
b3JlKHNlbGYpOworICAgIFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiBnb2JqZWN0UmVzdWx0ID0g
V1RGOjpnZXRQdHIoaXRlbS0+bmV4dEVsZW1lbnRTaWJsaW5nKCkpOworICAgIHJldHVybiBXZWJL
aXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKK30KKworV2ViS2l0RE9NSFRNTENvbGxlY3Rp
b24qIHdlYmtpdF9kb21fZWxlbWVudF9nZXRfY2hpbGRyZW4oV2ViS2l0RE9NRWxlbWVudCogc2Vs
ZikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCAwKTsKKyAgICBX
ZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFJlZlB0cjxX
ZWJDb3JlOjpIVE1MQ29sbGVjdGlvbj4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0t
PmNoaWxkcmVuKCkpOworICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgp
KTsKK30KKworV2ViS2l0RE9NRWxlbWVudCogd2Via2l0X2RvbV9lbGVtZW50X2dldF9maXJzdF9l
bGVtZW50X2NoaWxkKFdlYktpdERPTUVsZW1lbnQqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJ
VF9ET01fSVNfRUxFTUVOVChzZWxmKSwgMCk7CisgICAgV2ViQ29yZTo6RWxlbWVudCogaXRlbSA9
IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6RWxlbWVudD4gZ29iamVj
dFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPmZpcnN0RWxlbWVudENoaWxkKCkpOworICAgIHJl
dHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKK30KKworV2ViS2l0RE9NRWxl
bWVudCogd2Via2l0X2RvbV9lbGVtZW50X2dldF9sYXN0X2VsZW1lbnRfY2hpbGQoV2ViS2l0RE9N
RWxlbWVudCogc2VsZikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19FTEVNRU5UKHNlbGYp
LCAwKTsKKyAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwor
ICAgIFJlZlB0cjxXZWJDb3JlOjpFbGVtZW50PiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIo
aXRlbS0+bGFzdEVsZW1lbnRDaGlsZCgpKTsKKyAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVj
dFJlc3VsdC5nZXQoKSk7Cit9CisKK2d1bG9uZyB3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2NoaWxk
X2VsZW1lbnRfY291bnQoV2ViS2l0RE9NRWxlbWVudCogc2VsZikKK3sKKyAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VC
S0lUX0RPTV9JU19FTEVNRU5UKHNlbGYpLCAwKTsKKyAgICBXZWJDb3JlOjpFbGVtZW50KiBpdGVt
ID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGd1bG9uZyByZXN1bHQgPSBpdGVtLT5jaGlsZEVs
ZW1lbnRDb3VudCgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0dfR05VQ19FTkRfSUdOT1JF
X0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FbGVtZW50UHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVs
ZW1lbnRQcml2YXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdjMWY0MzA4Y2Fh
ZThiNTcxNDhmNzlhZDhjZGYzNGM1MmMzMmU2N2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUVsZW1lbnRQcml2YXRlLmgKKysrIC9kZXYvbnVsbApA
QCAtMSwzMiArMCwwIEBACi0vKgotICogIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQg
b3BlbiBzb3VyY2UgcHJvamVjdC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKLSAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiAgQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2lmbmRlZiBXZWJLaXRET01FbGVtZW50
UHJpdmF0ZV9oCi0jZGVmaW5lIFdlYktpdERPTUVsZW1lbnRQcml2YXRlX2gKLQotI2luY2x1ZGUg
PFdlYkNvcmUvRWxlbWVudC5oPgotI2luY2x1ZGUgPHdlYmtpdGRvbS9XZWJLaXRET01FbGVtZW50
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotV2ViS2l0RE9NRWxlbWVudCogd3JhcEVsZW1lbnQo
V2ViQ29yZTo6RWxlbWVudCopOwotV2ViS2l0RE9NRWxlbWVudCoga2l0KFdlYkNvcmU6OkVsZW1l
bnQqKTsKLVdlYkNvcmU6OkVsZW1lbnQqIGNvcmUoV2ViS2l0RE9NRWxlbWVudCopOwotfSAvLyBu
YW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvKiBXZWJLaXRET01FbGVtZW50UHJpdmF0ZV9oICov
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NRXZlbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUV2ZW50LmNwcAppbmRleCBiYTczNzQ4
MTc5ZjMyZmQ2NDVhNTRjNDBmMjhlYjE4OWYzOTEwMmE0Li40ODJkNWI5MjQzYmVkMTFiZDZjZWFm
OTE4ZDU2NjY5M2JmMTIxZWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRXZlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01F
dmVudC5jcHAKQEAgLTM4LDYgKzM4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTUV2ZW50
UHJpdmF0ZSB7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkV2ZW50PiBjb3JlT2JqZWN0OwogfSBXZWJL
aXRET01FdmVudFByaXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwor
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NRXZlbnQqIGtpdChXZWJDb3JlOjpFdmVu
dCogb2JqKQpAQCAtNDA4LDMgKzQxMCw0IEBAIHZvaWQgd2Via2l0X2RvbV9ldmVudF9zZXRfY2Fu
Y2VsX2J1YmJsZShXZWJLaXRET01FdmVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpCiAgICAgaXRl
bS0+c2V0Q2FuY2VsQnViYmxlKHZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVD
QVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRXZlbnQuaAppbmRleCBmMmUx
ODk4NTZmMmRiOWUzMDhmZWJkYTU0MjIyMzNjN2E5M2Q4MjQ3Li5lMzYzMGUxODM0ZDlmNjYxZGZi
YzcxYmZkOTEzNWI0NTRmYTEyOWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRXZlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
RXZlbnQuaApAQCAtMzcsMTA2ICszNywxNTAgQEAgR19CRUdJTl9ERUNMUwogI2RlZmluZSBXRUJL
SVRfRE9NX0lTX0VWRU5UX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGts
YXNzKSwgIFdFQktJVF9ET01fVFlQRV9FVkVOVCkpCiAjZGVmaW5lIFdFQktJVF9ET01fRVZFTlRf
R0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lU
X0RPTV9UWVBFX0VWRU5ULCBXZWJLaXRET01FdmVudENsYXNzKSkKIAorI2lmbmRlZiBXRUJLSVRf
RElTQUJMRV9ERVBSRUNBVEVECisKIC8qKgogICogV0VCS0lUX0RPTV9FVkVOVF9OT05FOgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICov
CiAjZGVmaW5lIFdFQktJVF9ET01fRVZFTlRfTk9ORSAwCiAKIC8qKgogICogV0VCS0lUX0RPTV9F
VkVOVF9DQVBUVVJJTkdfUEhBU0U6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9FVkVOVF9DQVBU
VVJJTkdfUEhBU0UgMQogCiAvKioKICAqIFdFQktJVF9ET01fRVZFTlRfQVRfVEFSR0VUOgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICov
CiAjZGVmaW5lIFdFQktJVF9ET01fRVZFTlRfQVRfVEFSR0VUIDIKIAogLyoqCiAgKiBXRUJLSVRf
RE9NX0VWRU5UX0JVQkJMSU5HX1BIQVNFOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fRVZFTlRf
QlVCQkxJTkdfUEhBU0UgMwogCiAvKioKICAqIFdFQktJVF9ET01fRVZFTlRfTU9VU0VET1dOOgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
ICovCiAjZGVmaW5lIFdFQktJVF9ET01fRVZFTlRfTU9VU0VET1dOIDEKIAogLyoqCiAgKiBXRUJL
SVRfRE9NX0VWRU5UX01PVVNFVVA6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9FVkVOVF9NT1VT
RVVQIDIKIAogLyoqCiAgKiBXRUJLSVRfRE9NX0VWRU5UX01PVVNFT1ZFUjoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmlu
ZSBXRUJLSVRfRE9NX0VWRU5UX01PVVNFT1ZFUiA0CiAKIC8qKgogICogV0VCS0lUX0RPTV9FVkVO
VF9NT1VTRU9VVDoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0VWRU5UX01PVVNFT1VUIDgKIAog
LyoqCiAgKiBXRUJLSVRfRE9NX0VWRU5UX01PVVNFTU9WRToKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRf
RE9NX0VWRU5UX01PVVNFTU9WRSAxNgogCiAvKioKICAqIFdFQktJVF9ET01fRVZFTlRfTU9VU0VE
UkFHOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fRVZFTlRfTU9VU0VEUkFHIDMyCiAKIC8qKgog
ICogV0VCS0lUX0RPTV9FVkVOVF9DTElDSzoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0VWRU5U
X0NMSUNLIDY0CiAKIC8qKgogICogV0VCS0lUX0RPTV9FVkVOVF9EQkxDTElDSzoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2Rl
ZmluZSBXRUJLSVRfRE9NX0VWRU5UX0RCTENMSUNLIDEyOAogCiAvKioKICAqIFdFQktJVF9ET01f
RVZFTlRfS0VZRE9XTjoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0VWRU5UX0tFWURPV04gMjU2
CiAKIC8qKgogICogV0VCS0lUX0RPTV9FVkVOVF9LRVlVUDoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRf
RE9NX0VWRU5UX0tFWVVQIDUxMgogCiAvKioKICAqIFdFQktJVF9ET01fRVZFTlRfS0VZUFJFU1M6
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9FVkVOVF9LRVlQUkVTUyAxMDI0CiAKIC8qKgogICog
V0VCS0lUX0RPTV9FVkVOVF9EUkFHRFJPUDoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0VWRU5U
X0RSQUdEUk9QIDIwNDgKIAogLyoqCiAgKiBXRUJLSVRfRE9NX0VWRU5UX0ZPQ1VTOgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAj
ZGVmaW5lIFdFQktJVF9ET01fRVZFTlRfRk9DVVMgNDA5NgogCiAvKioKICAqIFdFQktJVF9ET01f
RVZFTlRfQkxVUjoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0VWRU5UX0JMVVIgODE5MgogCiAv
KioKICAqIFdFQktJVF9ET01fRVZFTlRfU0VMRUNUOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01f
RVZFTlRfU0VMRUNUIDE2Mzg0CiAKIC8qKgogICogV0VCS0lUX0RPTV9FVkVOVF9DSEFOR0U6Cisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAg
Ki8KICNkZWZpbmUgV0VCS0lUX0RPTV9FVkVOVF9DSEFOR0UgMzI3NjgKIAorI2VuZGlmIC8qIFdF
QktJVF9ESVNBQkxFX0RFUFJFQ0FURUQgKi8KKwogc3RydWN0IF9XZWJLaXRET01FdmVudCB7CiAg
ICAgV2ViS2l0RE9NT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKIH07CkBAIC0xNDUsMjMgKzE4OSwy
NyBAQCBzdHJ1Y3QgX1dlYktpdERPTUV2ZW50Q2xhc3MgewogICAgIFdlYktpdERPTU9iamVjdENs
YXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNB
VEVEIEdUeXBlCiB3ZWJraXRfZG9tX2V2ZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKICAqIHdl
YmtpdF9kb21fZXZlbnRfc3RvcF9wcm9wYWdhdGlvbjoKICAqIEBzZWxmOiBBICNXZWJLaXRET01F
dmVudAogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3
ZWJraXRfZG9tX2V2ZW50X3N0b3BfcHJvcGFnYXRpb24oV2ViS2l0RE9NRXZlbnQqIHNlbGYpOwog
CiAvKioKICAqIHdlYmtpdF9kb21fZXZlbnRfcHJldmVudF9kZWZhdWx0OgogICogQHNlbGY6IEEg
I1dlYktpdERPTUV2ZW50CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21fZXZlbnRfcHJldmVudF9kZWZhdWx0KFdlYktpdERPTUV2ZW50
KiBzZWxmKTsKIAogLyoqCkBAIC0xNzEsOCArMjE5LDEwIEBAIHdlYmtpdF9kb21fZXZlbnRfcHJl
dmVudF9kZWZhdWx0KFdlYktpdERPTUV2ZW50KiBzZWxmKTsKICAqIEBjYW5CdWJibGVBcmc6IEEg
I2dib29sZWFuCiAgKiBAY2FuY2VsYWJsZUFyZzogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9ldmVudF9pbml0
X2V2ZW50KFdlYktpdERPTUV2ZW50KiBzZWxmLCBjb25zdCBnY2hhciogZXZlbnRUeXBlQXJnLCBn
Ym9vbGVhbiBjYW5CdWJibGVBcmcsIGdib29sZWFuIGNhbmNlbGFibGVBcmcpOwogCiAvKioKQEAg
LTE4MCw4ICsyMzAsMTAgQEAgd2Via2l0X2RvbV9ldmVudF9pbml0X2V2ZW50KFdlYktpdERPTUV2
ZW50KiBzZWxmLCBjb25zdCBnY2hhciogZXZlbnRUeXBlQXJnLCBnYm8KICAqIEBzZWxmOiBBICNX
ZWJLaXRET01FdmVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fZXZlbnRfZ2V0X2V2
ZW50X3R5cGUoV2ViS2l0RE9NRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTE4OSw4ICsyNDEsMTAg
QEAgd2Via2l0X2RvbV9ldmVudF9nZXRfZXZlbnRfdHlwZShXZWJLaXRET01FdmVudCogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRXZlbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
ZnVsbCk6IEEgI1dlYktpdERPTUV2ZW50VGFyZ2V0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9N
RXZlbnRUYXJnZXQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01FdmVudFRhcmdldCoKIHdl
YmtpdF9kb21fZXZlbnRfZ2V0X3RhcmdldChXZWJLaXRET01FdmVudCogc2VsZik7CiAKIC8qKgpA
QCAtMTk4LDggKzI1MiwxMCBAQCB3ZWJraXRfZG9tX2V2ZW50X2dldF90YXJnZXQoV2ViS2l0RE9N
RXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUV2ZW50CiAgKgogICogUmV0dXJu
czogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01FdmVudFRhcmdldAorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIFdlYktpdERPTUV2ZW50VGFyZ2V0KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRXZl
bnRUYXJnZXQqCiB3ZWJraXRfZG9tX2V2ZW50X2dldF9jdXJyZW50X3RhcmdldChXZWJLaXRET01F
dmVudCogc2VsZik7CiAKIC8qKgpAQCAtMjA3LDggKzI2MywxMCBAQCB3ZWJraXRfZG9tX2V2ZW50
X2dldF9jdXJyZW50X3RhcmdldChXZWJLaXRET01FdmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNndXNob3J0CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ3VzaG9ydAorV0VCS0lUX0RFUFJFQ0FURUQgZ3VzaG9ydAogd2Via2l0X2RvbV9ldmVudF9n
ZXRfZXZlbnRfcGhhc2UoV2ViS2l0RE9NRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTIxNiw4ICsy
NzQsMTAgQEAgd2Via2l0X2RvbV9ldmVudF9nZXRfZXZlbnRfcGhhc2UoV2ViS2l0RE9NRXZlbnQq
IHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUV2ZW50CiAgKgogICogUmV0dXJuczogQSAj
Z2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jv
b2xlYW4KIHdlYmtpdF9kb21fZXZlbnRfZ2V0X2J1YmJsZXMoV2ViS2l0RE9NRXZlbnQqIHNlbGYp
OwogCiAvKioKQEAgLTIyNSw4ICsyODUsMTAgQEAgd2Via2l0X2RvbV9ldmVudF9nZXRfYnViYmxl
cyhXZWJLaXRET01FdmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRXZlbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJL
SVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9ldmVudF9nZXRfY2FuY2VsYWJsZShX
ZWJLaXRET01FdmVudCogc2VsZik7CiAKIC8qKgpAQCAtMjM0LDggKzI5NiwxMCBAQCB3ZWJraXRf
ZG9tX2V2ZW50X2dldF9jYW5jZWxhYmxlKFdlYktpdERPTUV2ZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01FdmVudAogICoKICAqIFJldHVybnM6IEEgI2d1aW50MzIKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBndWludDMyCitXRUJLSVRfREVQUkVDQVRFRCBndWludDMyCiB3ZWJraXRfZG9tX2V2
ZW50X2dldF90aW1lX3N0YW1wKFdlYktpdERPTUV2ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNDMs
OCArMzA3LDEwIEBAIHdlYmtpdF9kb21fZXZlbnRfZ2V0X3RpbWVfc3RhbXAoV2ViS2l0RE9NRXZl
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUV2ZW50CiAgKgogICogUmV0dXJuczog
KHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01FdmVudFRhcmdldAorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IFdlYktpdERPTUV2ZW50VGFyZ2V0KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRXZlbnRU
YXJnZXQqCiB3ZWJraXRfZG9tX2V2ZW50X2dldF9zcmNfZWxlbWVudChXZWJLaXRET01FdmVudCog
c2VsZik7CiAKIC8qKgpAQCAtMjUyLDggKzMxOCwxMCBAQCB3ZWJraXRfZG9tX2V2ZW50X2dldF9z
cmNfZWxlbWVudChXZWJLaXRET01FdmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
RXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29s
ZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9ldmVudF9nZXRfcmV0
dXJuX3ZhbHVlKFdlYktpdERPTUV2ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNjEsOCArMzI5LDEw
IEBAIHdlYmtpdF9kb21fZXZlbnRfZ2V0X3JldHVybl92YWx1ZShXZWJLaXRET01FdmVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NRXZlbnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4K
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9ldmVudF9zZXRfcmV0dXJuX3ZhbHVlKFdlYktpdERPTUV2ZW50KiBzZWxmLCBnYm9vbGVh
biB2YWx1ZSk7CiAKIC8qKgpAQCAtMjcwLDggKzM0MCwxMCBAQCB3ZWJraXRfZG9tX2V2ZW50X3Nl
dF9yZXR1cm5fdmFsdWUoV2ViS2l0RE9NRXZlbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01FdmVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJr
aXRfZG9tX2V2ZW50X2dldF9jYW5jZWxfYnViYmxlKFdlYktpdERPTUV2ZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0yNzksOCArMzUxLDEwIEBAIHdlYmtpdF9kb21fZXZlbnRfZ2V0X2NhbmNlbF9idWJi
bGUoV2ViS2l0RE9NRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUV2ZW50CiAg
KiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fZXZlbnRfc2V0X2NhbmNlbF9idWJibGUoV2ViS2l0
RE9NRXZlbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01FdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRXZlbnRUYXJnZXQuY3BwCmluZGV4IDhiNzUw
YjQ3NTQxMzJlYzM0YTRlNWEzNGRiNzg2YjVhYWFkYTJiZDkuLmZlMWEwNDNhODMyMjA1M2NiN2Ey
OThiYWVhOGE2ZTMyNTA3ZWE5ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVudFRhcmdldC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUV2ZW50VGFyZ2V0LmNwcApAQCAtMzgsNiArMzgsOCBAQAogI2luY2x1ZGUgIldlYktp
dERPTVByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAKK0dfR05VQ19C
RUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiB0eXBlZGVmIFdlYktpdERPTUV2ZW50VGFyZ2V0
SWZhY2UgV2ViS2l0RE9NRXZlbnRUYXJnZXRJbnRlcmZhY2U7CiAKIEdfREVGSU5FX0lOVEVSRkFD
RShXZWJLaXRET01FdmVudFRhcmdldCwgd2Via2l0X2RvbV9ldmVudF90YXJnZXQsIEdfVFlQRV9P
QkpFQ1QpCkBAIC0xMTIsMyArMTE0LDQgQEAgV2ViQ29yZTo6RXZlbnRUYXJnZXQqIGNvcmUoV2Vi
S2l0RE9NRXZlbnRUYXJnZXQqIHJlcXVlc3QpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCitH
X0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRXZlbnRUYXJn
ZXQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01FdmVudFRhcmdldC5oCmluZGV4IGFkYzIxMDZjN2M0YTdhYWFiOGE3NDU1YzRi
ZGEzZDFhYWRjOTRiYzguLjc1YWFjMTg5NDM4NjU4MzNjOTA3NGMwYTdiMWRjNGZmMGY0YTdhZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01FdmVudFRhcmdldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01FdmVudFRhcmdldC5oCkBA
IC01NCw3ICs1NCw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NRXZlbnRUYXJnZXRJZmFjZSB7CiB9Owog
CiAKLVdFQktJVF9BUEkgR1R5cGUgICAgIHdlYmtpdF9kb21fZXZlbnRfdGFyZ2V0X2dldF90eXBl
KHZvaWQpIEdfR05VQ19DT05TVDsKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlICAgICB3ZWJraXRf
ZG9tX2V2ZW50X3RhcmdldF9nZXRfdHlwZSh2b2lkKSBHX0dOVUNfQ09OU1Q7CiAKIC8qKgogICog
d2Via2l0X2RvbV9ldmVudF90YXJnZXRfZGlzcGF0Y2hfZXZlbnQ6CkBAIC02Myw4ICs2MywxMCBA
QCBXRUJLSVRfQVBJIEdUeXBlICAgICB3ZWJraXRfZG9tX2V2ZW50X3RhcmdldF9nZXRfdHlwZSh2
b2lkKSBHX0dOVUNfQ09OU1Q7CiAgKiBAZXJyb3I6IHJldHVybiBsb2NhdGlvbiBmb3IgYW4gZXJy
b3Igb3IgJU5VTEwKICAqCiAgKiBSZXR1cm5zOiBhICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJ
IGdib29sZWFuICB3ZWJraXRfZG9tX2V2ZW50X3RhcmdldF9kaXNwYXRjaF9ldmVudChXZWJLaXRE
T01FdmVudFRhcmdldCAqdGFyZ2V0LAorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4gIHdlYmtp
dF9kb21fZXZlbnRfdGFyZ2V0X2Rpc3BhdGNoX2V2ZW50KFdlYktpdERPTUV2ZW50VGFyZ2V0ICp0
YXJnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBXZWJLaXRET01FdmVudCAgICAgICAqZXZlbnQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRXJyb3IgICAgICAg
ICAgICAgICoqZXJyb3IpOwogCkBAIC03Nyw4ICs3OSwxMCBAQCBXRUJLSVRfQVBJIGdib29sZWFu
ICB3ZWJraXRfZG9tX2V2ZW50X3RhcmdldF9kaXNwYXRjaF9ldmVudChXZWJLaXRET01FdmVudFRh
cmdldAogICogQHVzZXJfZGF0YTogQSAjZ3BvaW50ZXIKICAqCiAgKiBSZXR1cm5zOiBhICNnYm9v
bGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogICovCi1XRUJLSVRfQVBJIGdib29sZWFuICB3ZWJraXRfZG9tX2V2ZW50X3RhcmdldF9h
ZGRfZXZlbnRfbGlzdGVuZXIoV2ViS2l0RE9NRXZlbnRUYXJnZXQgKnRhcmdldCwKK1dFQktJVF9E
RVBSRUNBVEVEIGdib29sZWFuICB3ZWJraXRfZG9tX2V2ZW50X3RhcmdldF9hZGRfZXZlbnRfbGlz
dGVuZXIoV2ViS2l0RE9NRXZlbnRUYXJnZXQgKnRhcmdldCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICAg
ICAgICAgICAqZXZlbnRfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ2FsbGJhY2sgICAgICAgICAgICAgaGFuZGxl
ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgICAgICAgdXNlX2NhcHR1cmUsCkBAIC05Miw4ICs5
NiwxMCBAQCBXRUJLSVRfQVBJIGdib29sZWFuICB3ZWJraXRfZG9tX2V2ZW50X3RhcmdldF9hZGRf
ZXZlbnRfbGlzdGVuZXIoV2ViS2l0RE9NRXZlbnRUYQogICogQHVzZV9jYXB0dXJlOiBBICNnYm9v
bGVhbgogICoKICAqIFJldHVybnM6IGEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KLVdFQktJVF9BUEkgZ2Jvb2xl
YW4gIHdlYmtpdF9kb21fZXZlbnRfdGFyZ2V0X3JlbW92ZV9ldmVudF9saXN0ZW5lcihXZWJLaXRE
T01FdmVudFRhcmdldCAqdGFyZ2V0LAorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4gIHdlYmtp
dF9kb21fZXZlbnRfdGFyZ2V0X3JlbW92ZV9ldmVudF9saXN0ZW5lcihXZWJLaXRET01FdmVudFRh
cmdldCAqdGFyZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgICAgICAgICAgICpldmVudF9uYW1l
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdDYWxsYmFjayAgICAgICAgICAgICBoYW5kbGVyLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdi
b29sZWFuICAgICAgICAgICAgICB1c2VfY2FwdHVyZSk7CkBAIC0xMDksOCArMTE1LDEwIEBAIFdF
QktJVF9BUEkgZ2Jvb2xlYW4gIHdlYmtpdF9kb21fZXZlbnRfdGFyZ2V0X3JlbW92ZV9ldmVudF9s
aXN0ZW5lcihXZWJLaXRET01FdmVuCiAgKiBpbnN0ZWFkIG9mIGEgY2FsbGJhY2tzIGZvciBlYXNp
ZXIgYmluZGluZyBpbiBvdGhlciBsYW5ndWFnZXMuCiAgKgogICogUmV0dXJuczogYSAjZ2Jvb2xl
YW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICAqLwotV0VCS0lUX0FQSSBnYm9vbGVhbiB3ZWJraXRfZG9tX2V2ZW50X3RhcmdldF9hZGRf
ZXZlbnRfbGlzdGVuZXJfd2l0aF9jbG9zdXJlKFdlYktpdERPTUV2ZW50VGFyZ2V0ICp0YXJnZXQs
CitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbiB3ZWJraXRfZG9tX2V2ZW50X3RhcmdldF9hZGRf
ZXZlbnRfbGlzdGVuZXJfd2l0aF9jbG9zdXJlKFdlYktpdERPTUV2ZW50VGFyZ2V0ICp0YXJnZXQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAgICAgICAgICAgKmV2ZW50X25hbWUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgR0Nsb3N1cmUgICAgICAgICAgICAgKmhhbmRsZXIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgIHVzZV9jYXB0dXJlKTsKQEAgLTEyNiw4
ICsxMzQsMTAgQEAgV0VCS0lUX0FQSSBnYm9vbGVhbiB3ZWJraXRfZG9tX2V2ZW50X3RhcmdldF9h
ZGRfZXZlbnRfbGlzdGVuZXJfd2l0aF9jbG9zdXJlKFdlYksKICAqIGluc3RlYWQgb2YgYSBjYWxs
YmFja3MgZm9yIGVhc2llciBiaW5kaW5nIGluIG90aGVyIGxhbmd1YWdlcy4KICAqCiAgKiBSZXR1
cm5zOiBhICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIGdib29sZWFuIHdlYmtpdF9kb21fZXZl
bnRfdGFyZ2V0X3JlbW92ZV9ldmVudF9saXN0ZW5lcl93aXRoX2Nsb3N1cmUoV2ViS2l0RE9NRXZl
bnRUYXJnZXQgKnRhcmdldCwKK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuIHdlYmtpdF9kb21f
ZXZlbnRfdGFyZ2V0X3JlbW92ZV9ldmVudF9saXN0ZW5lcl93aXRoX2Nsb3N1cmUoV2ViS2l0RE9N
RXZlbnRUYXJnZXQgKnRhcmdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICAg
ICAgICAgICAqZXZlbnRfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHQ2xvc3VyZSAgICAg
ICAgICAgICAqaGFuZGxlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAg
ICAgICAgdXNlX2NhcHR1cmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUZpbGUuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUZpbGUu
Y3BwCmluZGV4IDNkZGQxNzAwYWM4NGQxOWI3N2EyNGU5YTNjOGRlNjgwYmEzNTNlZjQuLmQ2Mzlm
OTVlNWJiMjcxNzg0YmFlODZhMDI2OTk4MjYwYWFkZDhhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01GaWxl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NRmlsZS5jcHAKQEAgLTMyLDYgKzMyLDggQEAKICNpbmNsdWRlIDx3dGYv
R2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JF
X0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUZpbGUqIGtp
dChXZWJDb3JlOjpGaWxlKiBvYmopCkBAIC0xMDIsMyArMTA0LDQgQEAgZ2NoYXIqIHdlYmtpdF9k
b21fZmlsZV9nZXRfbmFtZShXZWJLaXRET01GaWxlKiBzZWxmKQogICAgIGdjaGFyKiByZXN1bHQg
PSBjb252ZXJ0VG9VVEY4U3RyaW5nKGl0ZW0tPm5hbWUoKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01GaWxl
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NRmlsZS5oCmluZGV4IDMyMzhiNmFjNzg4MWE5NWRhMmY0YzYwNDhlODBiNjM5Y2M4
YTk3MjEuLjBjMDIzNTAyMTU2OThkN2RjMzg1Y2JkNmQ1NGJhNDI5N2NhMjc4ZTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01GaWxlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUZpbGUuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3Qg
X1dlYktpdERPTUZpbGVDbGFzcyB7CiAgICAgV2ViS2l0RE9NQmxvYkNsYXNzIHBhcmVudF9jbGFz
czsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJr
aXRfZG9tX2ZpbGVfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Vi
a2l0X2RvbV9maWxlX2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUZpbGUK
ICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2ZpbGVfZ2V0X25hbWUoV2ViS2l0RE9NRmls
ZSogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NRmlsZUxpc3QuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUZpbGVMaXN0LmNwcAppbmRleCAxNTE5MmM5NzFmMDM5NDFmMGM4MmE4NDhhN2QzZDAzZTMw
OWU1YTM3Li5kYTU0MTZjNjM5MGZlMTlhNjc5ZWM3MjQyYjIxM2JhYmZhYzdhMTkwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NRmlsZUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01GaWxlTGlzdC5jcHAKQEAgLTM4LDYgKzM4
LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTUZpbGVMaXN0UHJpdmF0ZSB7CiAgICAgUmVm
UHRyPFdlYkNvcmU6OkZpbGVMaXN0PiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01GaWxlTGlzdFBy
aXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogV2ViS2l0RE9NRmlsZUxpc3QqIGtpdChXZWJDb3JlOjpGaWxlTGlzdCogb2Jq
KQpAQCAtMTUwLDMgKzE1Miw0IEBAIGd1bG9uZyB3ZWJraXRfZG9tX2ZpbGVfbGlzdF9nZXRfbGVu
Z3RoKFdlYktpdERPTUZpbGVMaXN0KiBzZWxmKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0df
R05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01GaWxlTGlzdC5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUZpbGVMaXN0LmgKaW5kZXggYmY1YzljMTRkMDAwMDMzODM5NmQ1NDI2NGY1MmY0ZjQ5
MjNhMjdjNi4uMGZiYzk0OGIwYzg1YTgwODU3NzhmNzQ3ZGEyNmFjNzEyYTU1ZmU1NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUZpbGVMaXN0LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUZpbGVMaXN0LmgKQEAgLTQ1LDcgKzQ1LDcg
QEAgc3RydWN0IF9XZWJLaXRET01GaWxlTGlzdENsYXNzIHsKICAgICBXZWJLaXRET01PYmplY3RD
bGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVD
QVRFRCBHVHlwZQogd2Via2l0X2RvbV9maWxlX2xpc3RfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpA
QCAtNTQsOCArNTQsMTAgQEAgd2Via2l0X2RvbV9maWxlX2xpc3RfZ2V0X3R5cGUodm9pZCk7CiAg
KiBAaW5kZXg6IEEgI2d1bG9uZwogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAj
V2ViS2l0RE9NRmlsZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUZpbGUqCitXRUJLSVRfREVQ
UkVDQVRFRCBXZWJLaXRET01GaWxlKgogd2Via2l0X2RvbV9maWxlX2xpc3RfaXRlbShXZWJLaXRE
T01GaWxlTGlzdCogc2VsZiwgZ3Vsb25nIGluZGV4KTsKIAogLyoqCkBAIC02Myw4ICs2NSwxMCBA
QCB3ZWJraXRfZG9tX2ZpbGVfbGlzdF9pdGVtKFdlYktpdERPTUZpbGVMaXN0KiBzZWxmLCBndWxv
bmcgaW5kZXgpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUZpbGVMaXN0CiAgKgogICogUmV0dXJu
czogQSAjZ3Vsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQUkVDQVRFRCBn
dWxvbmcKIHdlYmtpdF9kb21fZmlsZV9saXN0X2dldF9sZW5ndGgoV2ViS2l0RE9NRmlsZUxpc3Qq
IHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudC5jcHAKaW5kZXggODVkYzNhZGFjMTg1NDZlODYw
YTM0ZTk3OTJkMzUxNGM2YzU1ZGY3Mi4uOGU1ZWRkYzA4ZTVmODY4ODE5M2E5MWIwYWUxNGZmOWJj
ZmY3MWE3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTEFuY2hvckVsZW1lbnQuY3BwCkBAIC0zNyw2ICszNyw4IEBACiAjaW5jbHVkZSA8d3RmL0dl
dFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9E
RVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MQW5jaG9y
RWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50KiBvYmopCkBAIC03ODEsMyAr
NzgzLDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0X2hhc2goV2Vi
S2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGMKICAgICBpdGVtLT5zZXRIYXNoKGNvbnZl
cnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQuaApp
bmRleCA1ZDcxMDhlOWFkYjE2ZTU1MDhhY2UyMzE2YzA4YjE3MDU1MWVmY2Q5Li44NGNjNzU4NDEw
MGU2ZWIzNWNkY2Q0ZTFiZmRhZWFiZjMyNTI2Zjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEFuY2hv
ckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBA
QCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERP
TUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQor
V0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9n
ZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
YW5jaG9yX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TEFuY2hvckVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9y
X2VsZW1lbnRfZ2V0X2NoYXJzZXQoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9n
ZXRfY2hhcnNldChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9o
dG1sX2FuY2hvcl9lbGVtZW50X3NldF9jaGFyc2V0KFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50
KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTcxLDggKzc1LDEwIEBAIHdl
YmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9zZXRfY2hhcnNldChXZWJLaXRET01IVE1MQW5j
aG9yRWxlbWVudCogc2VsZiwgY29uCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVs
ZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgor
V0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRf
Z2V0X2Nvb3JkcyhXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
ODAsOCArODYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF9jb29yZHMo
V2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxBbmNob3JFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hbmNob3Jf
ZWxlbWVudF9zZXRfY29vcmRzKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTg5LDggKzk3LDEwIEBAIHdlYmtpdF9kb21faHRt
bF9hbmNob3JfZWxlbWVudF9zZXRfY29vcmRzKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBz
ZWxmLCBjb25zCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqCiAg
KiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJF
Q0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X2hyZWZsYW5n
KFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC05OCw4ICsxMDgs
MTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF9ocmVmbGFuZyhXZWJLaXRE
T01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFu
Y2hvckVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50
X3NldF9ocmVmbGFuZyhXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZiwgY29uc3QgZ2No
YXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMDcsOCArMTE5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9h
bmNob3JfZWxlbWVudF9zZXRfaHJlZmxhbmcoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNl
bGYsIGNvCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0
RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTExNiw4ICsxMzAsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhUTUxBbmNo
b3JFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVu
dAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRf
REVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0X25hbWUo
V2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAK
IC8qKgpAQCAtMTI1LDggKzE0MSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRf
c2V0X25hbWUoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hh
cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJr
aXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X3JlbChXZWJLaXRET01IVE1MQW5jaG9yRWxl
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTM0LDggKzE1MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
YW5jaG9yX2VsZW1lbnRfZ2V0X3JlbChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF9yZWwoV2ViS2l0RE9NSFRNTEFuY2hv
ckVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTQzLDggKzE2
MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0X3JlbChXZWJLaXRET01I
VE1MQW5jaG9yRWxlbWVudCogc2VsZiwgY29uc3QgZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxBbmNob3JFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FuY2hv
cl9lbGVtZW50X2dldF9yZXYoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTE1Miw4ICsxNzQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dl
dF9yZXYoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxBbmNob3JFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9h
bmNob3JfZWxlbWVudF9zZXRfcmV2KFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBj
b25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE2MSw4ICsxODUsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF9yZXYoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQq
IHNlbGYsIGNvbnN0IGcKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudAog
ICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRf
REVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfc2hh
cGUoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE3MCw4ICsx
OTYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF9zaGFwZShXZWJLaXRE
T01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFu
Y2hvckVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50
X3NldF9zaGFwZShXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IHZhbHVlKTsKIAogLyoqCkBAIC0xNzksOCArMjA3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hbmNo
b3JfZWxlbWVudF9zZXRfc2hhcGUoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGNv
bnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqCiAgKiBSZXR1
cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQg
Z2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X3RhcmdldChXZWJLaXRE
T01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTg4LDggKzIxOCwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X3RhcmdldChXZWJLaXRET01IVE1MQW5j
aG9yRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1l
bnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF90YXJn
ZXQoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7
CiAKIC8qKgpAQCAtMTk3LDggKzIyOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1l
bnRfc2V0X3RhcmdldChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZiwgY29ucwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAj
Z2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgog
d2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRN
TEFuY2hvckVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTIwNiw4ICsyNDAsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTEFuY2hv
ckVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50
CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9zZXRfdHlwZV9h
dHRyKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
OwogCiAvKioKQEAgLTIxNSw4ICsyNTEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVt
ZW50X3NldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGMKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudAogICoKICAqIFJldHVybnM6IEEg
I2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioK
IHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfdGV4dChXZWJLaXRET01IVE1MQW5j
aG9yRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjI1LDggKzI2MywxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X3RleHQoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQq
IHNlbGYpOwogICogQHZhbHVlOiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2Fu
Y2hvcl9lbGVtZW50X3NldF90ZXh0KFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBj
b25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTIzNCw4ICsyNzQsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF90ZXh0KFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50
KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50CiAg
KgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9E
RVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF9ocmVm
KFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNDMsOCArMjg1
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfaHJlZihXZWJLaXRET01I
VE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hv
ckVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3Nl
dF9ocmVmKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUpOwogCiAvKioKQEAgLTI1Miw4ICsyOTYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9l
bGVtZW50X3NldF9ocmVmKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25zdAog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50CiAgKgogICogUmV0dXJuczog
QSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFy
Kgogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF9wcm90b2NvbChXZWJLaXRET01I
VE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjYxLDggKzMwNywxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X3Byb3RvY29sKFdlYktpdERPTUhUTUxBbmNo
b3JFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVu
dAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRf
REVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0X3Byb3Rv
Y29sKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
OwogCiAvKioKQEAgLTI3MCw4ICszMTgsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVt
ZW50X3NldF9wcm90b2NvbChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZiwgY28KICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudAogICoKICAqIFJldHVybnM6IEEg
I2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioK
IHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfaG9zdChXZWJLaXRET01IVE1MQW5j
aG9yRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjc5LDggKzMyOSwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X2hvc3QoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQq
IHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNob3JFbGVtZW50CiAgKiBAdmFs
dWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9zZXRfaG9zdChXZWJLaXRET01I
VE1MQW5jaG9yRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0y
ODgsOCArMzQwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9zZXRfaG9zdChX
ZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MQW5jaG9yRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRt
bF9hbmNob3JfZWxlbWVudF9nZXRfaG9zdG5hbWUoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQq
IHNlbGYpOwogCiAvKioKQEAgLTI5Nyw4ICszNTEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hv
cl9lbGVtZW50X2dldF9ob3N0bmFtZShXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X3NldF9ob3N0bmFtZShXZWJLaXRET01IVE1M
QW5jaG9yRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0zMDYs
OCArMzYyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9zZXRfaG9zdG5hbWUo
V2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYsIGNvCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTEFuY2hvckVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxf
YW5jaG9yX2VsZW1lbnRfZ2V0X3BvcnQoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTMxNSw4ICszNzMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVt
ZW50X2dldF9wb3J0KFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0X3BvcnQoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQq
IHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMzI0LDggKzM4NCwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0X3BvcnQoV2ViS2l0RE9NSFRNTEFuY2hv
ckVsZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFuY2hvckVs
ZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgor
V0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRf
Z2V0X3BhdGhuYW1lKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC0zMzMsOCArMzk1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfcGF0
aG5hbWUoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxBbmNob3JFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9h
bmNob3JfZWxlbWVudF9zZXRfcGF0aG5hbWUoV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMzQyLDggKzQwNiwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfc2V0X3BhdGhuYW1lKFdlYktpdERPTUhUTUxBbmNo
b3JFbGVtZW50KiBzZWxmLCBjbwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNob3JFbGVt
ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dF
QktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dl
dF9zZWFyY2goV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTM1
MSw4ICs0MTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FuY2hvcl9lbGVtZW50X2dldF9zZWFyY2go
V2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxBbmNob3JFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hbmNob3Jf
ZWxlbWVudF9zZXRfc2VhcmNoKFdlYktpdERPTUhUTUxBbmNob3JFbGVtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTM2MCw4ICs0MjgsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2FuY2hvcl9lbGVtZW50X3NldF9zZWFyY2goV2ViS2l0RE9NSFRNTEFuY2hvckVsZW1lbnQq
IHNlbGYsIGNvbnMKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudAogICoK
ICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9nZXRfaGFzaChX
ZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMzY5LDggKzQzOSwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfYW5jaG9yX2VsZW1lbnRfZ2V0X2hhc2goV2ViS2l0RE9NSFRN
TEFuY2hvckVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBbmNob3JF
bGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hbmNob3JfZWxlbWVudF9zZXRf
aGFzaChXZWJLaXRET01IVE1MQW5jaG9yRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVl
KTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTEFwcGxldEVsZW1lbnQuY3BwCmluZGV4IDlkNTliNGRiMzBjNjJkZTA5ZmY1OTIy
OTg5YTZmZWQxODliMGY1NzIuLjVjMTdlOGNiYTVhOWIyMTczYmY2OTQwYzk4NmU5YTVkODE3MmEy
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxB
cHBsZXRFbGVtZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVD
QVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1l
bnQqIGtpdChXZWJDb3JlOjpIVE1MQXBwbGV0RWxlbWVudCogb2JqKQpAQCAtNTI0LDMgKzUyNiw0
IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X3NldF93aWR0aChXZWJLaXRE
T01IVE1MQXBwbGV0RWxlbWVudCogc2VsZiwKICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0
U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6d2lkdGhBdHRyLCBjb252ZXJ0ZWRW
YWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MQXBwbGV0RWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50LmgKaW5kZXgg
NGQ5MDE0NTczYTEyODcwNGRjNjNjOTYwNmJmOTFjNmE1NjhlNzA3MS4uYmNlMDlhY2JiMTVkNTIz
N2YzZDBlNjkzZjIwYTRjNWFlYzIwNWViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxBcHBsZXRFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3Ry
dWN0IF9XZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1M
RWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJ
VF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRfZ2V0X3R5
cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FwcGxl
dF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcHBs
ZXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hh
cioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVt
ZW50X2dldF9hbGlnbihXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZik7CiAKIC8qKgpA
QCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dldF9hbGln
bihXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTEFwcGxldEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FwcGxl
dF9lbGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZiwgY29u
c3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfYXBwbGV0X2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBz
ZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBS
RUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dldF9hbHQoV2Vi
S2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2LDEwIEBA
IHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9nZXRfYWx0KFdlYktpdERPTUhUTUxBcHBs
ZXRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVu
dAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRf
REVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRfc2V0X2FsdChX
ZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAog
LyoqCkBAIC04OSw4ICs5NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRfc2V0
X2FsdChXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZiwgY29uc3QgZwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0
X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dldF9hcmNoaXZlKFdlYktpdERPTUhUTUxBcHBsZXRF
bGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC05OCw4ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9odG1s
X2FwcGxldF9lbGVtZW50X2dldF9hcmNoaXZlKFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBz
ZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudAogICogQHZhbHVl
OiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2
b2lkCiB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRfc2V0X2FyY2hpdmUoV2ViS2l0RE9N
SFRNTEFwcGxldEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAt
MTA3LDggKzExOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRfc2V0X2FyY2hp
dmUoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYsIGNvbgogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9o
dG1sX2FwcGxldF9lbGVtZW50X2dldF9jb2RlKFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC0xMTYsOCArMTMwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcHBsZXRf
ZWxlbWVudF9nZXRfY29kZShXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZik7CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X3NldF9jb2RlKFdlYktpdERPTUhUTUxBcHBsZXRFbGVt
ZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEyNSw4ICsxNDEsMTAg
QEAgd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X3NldF9jb2RlKFdlYktpdERPTUhUTUxB
cHBsZXRFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcHBs
ZXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hh
cioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVt
ZW50X2dldF9jb2RlX2Jhc2UoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTEzNCw4ICsxNTIsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dl
dF9jb2RlX2Jhc2UoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF9hcHBsZXRfZWxlbWVudF9zZXRfY29kZV9iYXNlKFdlYktpdERPTUhUTUxBcHBsZXRFbGVt
ZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE0Myw4ICsxNjMsMTAg
QEAgd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X3NldF9jb2RlX2Jhc2UoV2ViS2l0RE9N
SFRNTEFwcGxldEVsZW1lbnQqIHNlbGYsIGMKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXBw
bGV0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2No
YXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxl
bWVudF9nZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC0xNTIsOCArMTc0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9nZXRf
aGVpZ2h0KFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxf
YXBwbGV0X2VsZW1lbnRfc2V0X2hlaWdodChXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNjEsOCArMTg1LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9zZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxBcHBsZXRF
bGVtZW50KiBzZWxmLCBjb25zCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJL
SVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dldF9o
c3BhY2UoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE3MCw4
ICsxOTYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dldF9oc3BhY2UoV2Vi
S2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxBcHBsZXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dsb25nCiAgKgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxl
bWVudF9zZXRfaHNwYWNlKFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmLCBnbG9uZyB2
YWx1ZSk7CiAKIC8qKgpAQCAtMTc5LDggKzIwNywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0
X2VsZW1lbnRfc2V0X2hzcGFjZShXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZiwgZ2xv
bgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKgogICogUmV0dXJu
czogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdj
aGFyKgogd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhU
TUxBcHBsZXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xODgsOCArMjE4LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9nZXRfbmFtZShXZWJLaXRET01IVE1MQXBwbGV0RWxl
bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQKICAq
IEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X3NldF9uYW1lKFdlYktp
dERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioK
QEAgLTE5Nyw4ICsyMjksMTAgQEAgd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X3NldF9u
YW1lKFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2Rv
bV9odG1sX2FwcGxldF9lbGVtZW50X2dldF9vYmplY3QoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTIwNiw4ICsyNDAsMTAgQEAgd2Via2l0X2RvbV9odG1sX2Fw
cGxldF9lbGVtZW50X2dldF9vYmplY3QoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50CiAgKiBAdmFsdWU6IEEg
I2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9zZXRfb2JqZWN0KFdlYktpdERPTUhUTUxB
cHBsZXRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTIxNSw4
ICsyNTEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FwcGxldF9lbGVtZW50X3NldF9vYmplY3QoV2Vi
S2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYsIGNvbnMKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MQXBwbGV0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfYXBw
bGV0X2VsZW1lbnRfZ2V0X3ZzcGFjZShXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtMjI0LDggKzI2MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1l
bnRfZ2V0X3ZzcGFjZShXZWJLaXRET01IVE1MQXBwbGV0RWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX2FwcGxldF9lbGVtZW50X3NldF92c3BhY2UoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1l
bnQqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCkBAIC0yMzMsOCArMjczLDEwIEBAIHdlYmtp
dF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9zZXRfdnNwYWNlKFdlYktpdERPTUhUTUxBcHBsZXRF
bGVtZW50KiBzZWxmLCBnbG9uCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYXBwbGV0X2VsZW1lbnRfZ2V0
X3dpZHRoKFdlYktpdERPTUhUTUxBcHBsZXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNDIs
OCArMjg0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxlbWVudF9nZXRfd2lkdGgoV2Vi
S2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxBcHBsZXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hcHBsZXRfZWxl
bWVudF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRNTEFwcGxldEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEFyZWFFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MQXJlYUVsZW1lbnQuY3BwCmluZGV4IDIzYWRiMjRiMjJjOTNiNjU4
NmNkNzViMGYxYWM0YTg2OTBjZDA0NzkuLjhlMDllNzA5ZjljMjVlMzhlYzAzOGUyNmI2NDgxNTc3
MTUzNGQ0MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MQXJlYUVsZW1lbnQuY3BwCkBAIC0zNyw2ICszNyw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBS
RUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MQXJlYUVsZW1l
bnQqIGtpdChXZWJDb3JlOjpIVE1MQXJlYUVsZW1lbnQqIG9iaikKQEAgLTU5OSwzICs2MDEsNCBA
QCB2b2lkIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfc2V0X2hhc2goV2ViS2l0RE9NSFRN
TEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdAogICAgIGl0ZW0tPnNldEhhc2goY29udmVydGVkVmFs
dWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTEFyZWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50LmgKaW5kZXggOGUyNDVm
ODMzMDMxNzYxYWNkZWM1MjdiMDc5YjUzNWMxYTliNmQ1Ni4uMzA5YzczY2U2ZGM1MjUxYzljMjFk
NzJlZTc3NWM0OTNlNDQ0YzEyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxBcmVhRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MQXJlYUVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktp
dERPTUhUTUxBcmVhRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNz
IHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVE
IEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAv
KioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfZ2V0X3R5
cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNB
VEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9nZXRfYWx0KFdlYktpdERP
TUhUTUxBcmVhRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2FyZWFfZWxlbWVudF9nZXRfYWx0KFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50CiAgKiBAdmFsdWU6
IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZv
aWQKIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfc2V0X2FsdChXZWJLaXRET01IVE1MQXJl
YUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUs
MTAgQEAgd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9zZXRfYWx0KFdlYktpdERPTUhUTUxB
cmVhRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
QXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVt
ZW50X2dldF9jb29yZHMoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dldF9jb29yZHMo
V2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MQXJlYUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVu
dF9zZXRfY29vcmRzKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IHZhbHVlKTsKIAogLyoqCkBAIC04OSw4ICs5NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9l
bGVtZW50X3NldF9jb29yZHMoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdCBn
YwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcmVhRWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVE
IGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dldF9ub19ocmVmKFdlYktp
dERPTUhUTUxBcmVhRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtOTgsOCArMTA4LDEwIEBAIHdl
YmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfZ2V0X25vX2hyZWYoV2ViS2l0RE9NSFRNTEFyZWFF
bGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQKICAq
IEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9zZXRfbm9faHJlZihX
ZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBA
IC0xMDcsOCArMTE5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfc2V0X25vX2hy
ZWYoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmLCBnYm9vbGVhCiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9o
dG1sX2FyZWFfZWxlbWVudF9nZXRfc2hhcGUoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxm
KTsKIAogLyoqCkBAIC0xMTYsOCArMTMwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1l
bnRfZ2V0X3NoYXBlKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRt
bF9hcmVhX2VsZW1lbnRfc2V0X3NoYXBlKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMjUsOCArMTQxLDEwIEBAIHdlYmtpdF9k
b21faHRtbF9hcmVhX2VsZW1lbnRfc2V0X3NoYXBlKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCog
c2VsZiwgY29uc3QgZ2NoCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50CiAg
KgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9E
RVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9nZXRfdGFyZ2V0
KFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTM0LDggKzE1Miwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dldF90YXJnZXQoV2ViS2l0RE9NSFRN
TEFyZWFFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXJlYUVsZW1l
bnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9zZXRfdGFyZ2V0
KFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAog
LyoqCkBAIC0xNDMsOCArMTYzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfc2V0
X3RhcmdldChXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjCiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0
X2RvbV9odG1sX2FyZWFfZWxlbWVudF9nZXRfaHJlZihXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQq
IHNlbGYpOwogCiAvKioKQEAgLTE1Miw4ICsxNzQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FyZWFf
ZWxlbWVudF9nZXRfaHJlZihXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxBcmVhRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfYXJlYV9lbGVtZW50X3NldF9ocmVmKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNjEsOCArMTg1LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9hcmVhX2VsZW1lbnRfc2V0X2hyZWYoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50
KiBzZWxmLCBjb25zdCBnY2hhCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9nZXRfcHJv
dG9jb2woV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNzEsOCAr
MTk3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfZ2V0X3Byb3RvY29sKFdlYktp
dERPTUhUTUxBcmVhRWxlbWVudCogc2VsZik7CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgogICog
U2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X3NldF9wcm90b2NvbChXZWJLaXRET01IVE1M
QXJlYUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTgwLDgg
KzIwOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X3NldF9wcm90b2NvbChXZWJL
aXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTEFyZWFFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FyZWFf
ZWxlbWVudF9nZXRfaG9zdChXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTE5MCw4ICsyMjAsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9nZXRfaG9z
dChXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNnY2hhcgog
ICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9zZXRfaG9zdChXZWJLaXRET01I
VE1MQXJlYUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTk5
LDggKzIzMSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X3NldF9ob3N0KFdlYktp
dERPTUhUTUxBcmVhRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYQogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxBcmVhRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9h
cmVhX2VsZW1lbnRfZ2V0X2hvc3RuYW1lKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtMjA5LDggKzI0MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50
X2dldF9ob3N0bmFtZShXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYpOwogICogQHZhbHVl
OiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9zZXRfaG9z
dG5hbWUoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
OwogCiAvKioKQEAgLTIxOCw4ICsyNTQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVu
dF9zZXRfaG9zdG5hbWUoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdAogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxBcmVhRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dj
aGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdl
YmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfZ2V0X3BvcnQoV2ViS2l0RE9NSFRNTEFyZWFFbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMjgsOCArMjY2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9h
cmVhX2VsZW1lbnRfZ2V0X3BvcnQoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmKTsKICAq
IEB2YWx1ZTogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRf
c2V0X3BvcnQoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUpOwogCiAvKioKQEAgLTIzNyw4ICsyNzcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FyZWFfZWxl
bWVudF9zZXRfcG9ydChXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGEK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIq
CiB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dldF9wYXRobmFtZShXZWJLaXRET01IVE1M
QXJlYUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTI0Nyw4ICsyODksMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2FyZWFfZWxlbWVudF9nZXRfcGF0aG5hbWUoV2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50
KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9h
cmVhX2VsZW1lbnRfc2V0X3BhdGhuYW1lKFdlYktpdERPTUhUTUxBcmVhRWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0yNTYsOCArMzAwLDEwIEBAIHdlYmtpdF9k
b21faHRtbF9hcmVhX2VsZW1lbnRfc2V0X3BhdGhuYW1lKFdlYktpdERPTUhUTUxBcmVhRWxlbWVu
dCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X2dldF9zZWFyY2go
V2ViS2l0RE9NSFRNTEFyZWFFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNjYsOCArMzEyLDEw
IEBAIHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfZ2V0X3NlYXJjaChXZWJLaXRET01IVE1M
QXJlYUVsZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNnY2hhcgogICoKICAqIFNpbmNlOiAy
LjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9odG1sX2FyZWFfZWxlbWVudF9zZXRfc2VhcmNoKFdlYktpdERPTUhUTUxBcmVhRWxlbWVu
dCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0yNzUsOCArMzIzLDEwIEBA
IHdlYmtpdF9kb21faHRtbF9hcmVhX2VsZW1lbnRfc2V0X3NlYXJjaChXZWJLaXRET01IVE1MQXJl
YUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEFyZWFF
bGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioK
K1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9n
ZXRfaGFzaChXZWJLaXRET01IVE1MQXJlYUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTI4NSw4
ICszMzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2FyZWFfZWxlbWVudF9nZXRfaGFzaChXZWJLaXRE
T01IVE1MQXJlYUVsZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNnY2hhcgogICoKICAqIFN0
YWJpbGl0eTogVW5zdGFibGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYXJlYV9lbGVtZW50X3NldF9oYXNoKFdlYktpdERPTUhU
TUxBcmVhRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MQlJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQlJFbGVtZW50LmNw
cAppbmRleCBiNjE2OTcyMjA0MmFmZmI4ZGI0NDVmOGJhNWNhYmIzMzA3MjRiYmE0Li42ZTMyN2Fm
ZTgwYjA0NDk4NjRiNGM4YzE4NzVmMWJmODQwZDZiZjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJS
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCUkVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4IEBA
CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19H
TlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBX
ZWJLaXRET01IVE1MQlJFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTEJSRWxlbWVudCogb2JqKQpA
QCAtMTY3LDMgKzE2OSw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX2JyX2VsZW1lbnRfc2V0X2Ns
ZWFyKFdlYktpdERPTUhUTUxCUkVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjCiAgICAgaXRlbS0+c2V0
QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmNsZWFy
QXR0ciwgY29udmVydGVkVmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElP
TlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJSRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCUkVsZW1lbnQu
aAppbmRleCA0Nzc3MWFjOGNlNzQxYWIxNTE0NzkwMDk3NmM0YWNhNGVmMTU2Zjg5Li4yNTQwMjc3
NTM4Y2M1YmIyYmU4NTFjYWNmZGJiZGFiZjA1ZmNlZWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJS
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQlJFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3Ry
dWN0IF9XZWJLaXRET01IVE1MQlJFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVt
ZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RF
UFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF9icl9lbGVtZW50X2dldF90eXBlKHZvaWQp
OwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9icl9lbGVtZW50X2dl
dF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxCUkVsZW1lbnQKICAqCiAg
KiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJF
Q0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYnJfZWxlbWVudF9nZXRfY2xlYXIoV2ViS2l0
RE9NSFRNTEJSRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2JyX2VsZW1lbnRfZ2V0X2NsZWFyKFdlYktpdERPTUhUTUxCUkVsZW1lbnQqIHNl
bGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxCUkVsZW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX2JyX2VsZW1lbnRfc2V0X2NsZWFyKFdlYktpdERPTUhUTUxCUkVsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTEJhc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQmFzZUVsZW1lbnQuY3BwCmluZGV4
IDk0MzZjOTU1OTNiZjQyOGE2YjM5NGJiYzQzOGQ1ZDBmMzhhYWU2YTcuLjlkMTBlMmNjMmFjYjVm
Yjk2MzNlZTFhODBiMWYwZTI1ZjJjMDgyNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQmFzZUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MQmFzZUVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAj
aW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVD
X0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJL
aXRET01IVE1MQmFzZUVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MQmFzZUVsZW1lbnQqIG9iaikK
QEAgLTIwNCwzICsyMDYsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9iYXNlX2VsZW1lbnRfc2V0
X3RhcmdldChXZWJLaXRET01IVE1MQmFzZUVsZW1lbnQqIHNlbGYsIGNvbgogICAgIGl0ZW0tPnNl
dEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjp0YXJn
ZXRBdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FU
SU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQmFzZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQmFzZUVs
ZW1lbnQuaAppbmRleCBlZjIyNDJiNmNmZWVlODBjMjNhMjRlZmU5MzdkNmIyZGVmOTM4NmE1Li40
OGYxNTBiY2RlNGNhOGNhNDdlMGNkODBhNzE4MTBiMjYxNzBiZDdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTEJhc2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCYXNlRWxlbWVudC5oCkBAIC00NSw3ICs0
NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTEJhc2VFbGVtZW50Q2xhc3MgewogICAgIFdlYktp
dERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlw
ZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF9iYXNlX2VsZW1lbnRf
Z2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1s
X2Jhc2VfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
QmFzZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYmFzZV9lbGVt
ZW50X2dldF9ocmVmKFdlYktpdERPTUhUTUxCYXNlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
NjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2Jhc2VfZWxlbWVudF9nZXRfaHJlZihXZWJL
aXRET01IVE1MQmFzZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxC
YXNlRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYmFzZV9lbGVtZW50X3Nl
dF9ocmVmKFdlYktpdERPTUhUTUxCYXNlRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVl
KTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYmFzZV9lbGVtZW50
X3NldF9ocmVmKFdlYktpdERPTUhUTUxCYXNlRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYQogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxCYXNlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dj
aGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdl
YmtpdF9kb21faHRtbF9iYXNlX2VsZW1lbnRfZ2V0X3RhcmdldChXZWJLaXRET01IVE1MQmFzZUVs
ZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9i
YXNlX2VsZW1lbnRfZ2V0X3RhcmdldChXZWJLaXRET01IVE1MQmFzZUVsZW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxCYXNlRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hh
cgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJr
aXRfZG9tX2h0bWxfYmFzZV9lbGVtZW50X3NldF90YXJnZXQoV2ViS2l0RE9NSFRNTEJhc2VFbGVt
ZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxCb2R5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50LmNwcAppbmRl
eCBlYzU4YzUxOTNhMjY0MTY1YjIwODE4YmUwNjM5MWJjNGM1YjA2ZTQxLi4xYjI3MGQ1ODZkOTVi
MDY1YmIzODdjZWEyZDVkMzhiNjFmN2MwOTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJvZHlFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAog
I2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05V
Q19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2Vi
S2l0RE9NSFRNTEJvZHlFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTEJvZHlFbGVtZW50KiBvYmop
CkBAIC0zNDgsMyArMzUwLDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X3Nl
dF92X2xpbmsoV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50KiBzZWxmLCBjb24KICAgICBpdGVtLT5z
ZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6dmxp
bmtBdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FU
SU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQm9keUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQm9keUVs
ZW1lbnQuaAppbmRleCA1NzBlYmJhZjVkNmVkOTE2NGFiM2ZiNmMwNTBmODVkOTExNTgzZTlhLi4x
OWYxNTIwZjQyMzgzNTg0Y2UyODNiNDVjNjc5ODgyNDNkMmY2OGU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTEJvZHlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxCb2R5RWxlbWVudC5oCkBAIC00NSw3ICs0
NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50Q2xhc3MgewogICAgIFdlYktp
dERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlw
ZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF9ib2R5X2VsZW1lbnRf
Z2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1s
X2JvZHlfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
Qm9keUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVt
ZW50X2dldF9hX2xpbmsoV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X2dldF9hX2xpbmso
V2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MQm9keUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2JvZHlfZWxlbWVu
dF9zZXRfYV9saW5rKFdlYktpdERPTUhUTUxCb2R5RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IHZhbHVlKTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYm9keV9l
bGVtZW50X3NldF9hX2xpbmsoV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50KiBzZWxmLCBjb25zdCBn
YwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxCb2R5RWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21faHRtbF9ib2R5X2VsZW1lbnRfZ2V0X2JhY2tncm91bmQoV2ViS2l0RE9N
SFRNTEJvZHlFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfYm9keV9lbGVtZW50X2dldF9iYWNrZ3JvdW5kKFdlYktpdERPTUhUTUxCb2R5RWxl
bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50CiAgKiBA
dmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9ib2R5X2VsZW1lbnRfc2V0X2JhY2tncm91bmQoV2Vi
S2l0RE9NSFRNTEJvZHlFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioK
QEAgLTg5LDggKzk3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9ib2R5X2VsZW1lbnRfc2V0X2JhY2tn
cm91bmQoV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50KiBzZWxmLCBjb25zCiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9o
dG1sX2JvZHlfZWxlbWVudF9nZXRfYmdfY29sb3IoV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC05OCw4ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9odG1sX2JvZHlfZWxl
bWVudF9nZXRfYmdfY29sb3IoV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50KiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MQm9keUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX2JvZHlfZWxlbWVudF9zZXRfYmdfY29sb3IoV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50
KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAg
d2Via2l0X2RvbV9odG1sX2JvZHlfZWxlbWVudF9zZXRfYmdfY29sb3IoV2ViS2l0RE9NSFRNTEJv
ZHlFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxCb2R5RWxl
bWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitX
RUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9ib2R5X2VsZW1lbnRfZ2V0
X2xpbmsoV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMTYsOCAr
MTMwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9ib2R5X2VsZW1lbnRfZ2V0X2xpbmsoV2ViS2l0RE9N
SFRNTEJvZHlFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQm9keUVs
ZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2JvZHlfZWxlbWVudF9zZXRfbGlu
ayhXZWJLaXRET01IVE1MQm9keUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAK
IC8qKgpAQCAtMTI1LDggKzE0MSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X3Nl
dF9saW5rKFdlYktpdERPTUhUTUxCb2R5RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYQogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxCb2R5RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFy
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtp
dF9kb21faHRtbF9ib2R5X2VsZW1lbnRfZ2V0X3RleHQoV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC0xMzQsOCArMTUyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9ib2R5
X2VsZW1lbnRfZ2V0X3RleHQoV2ViS2l0RE9NSFRNTEJvZHlFbGVtZW50KiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MQm9keUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX2JvZHlfZWxlbWVudF9zZXRfdGV4dChXZWJLaXRET01IVE1MQm9keUVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTQzLDggKzE2MywxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfYm9keV9lbGVtZW50X3NldF90ZXh0KFdlYktpdERPTUhUTUxCb2R5RWxlbWVu
dCogc2VsZiwgY29uc3QgZ2NoYQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxCb2R5RWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9ib2R5X2VsZW1lbnRfZ2V0X3Zf
bGluayhXZWJLaXRET01IVE1MQm9keUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE1Miw4ICsx
NzQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2JvZHlfZWxlbWVudF9nZXRfdl9saW5rKFdlYktpdERP
TUhUTUxCb2R5RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEJvZHlF
bGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9ib2R5X2VsZW1lbnRfc2V0X3Zf
bGluayhXZWJLaXRET01IVE1MQm9keUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7
CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxCdXR0b25FbGVtZW50LmNwcAppbmRleCAzZmZlZjZiODYwYjViM2Q0MjkyZDA0M2Iz
NzRmNzA3NzUxYThiNmQzLi42MTY4MzFiMWQyMzJhY2Y3YmMyNjcwMDk5YmM5YWIyMTExNDRjMWMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQnV0
dG9uRWxlbWVudC5jcHAKQEAgLTM4LDYgKzM4LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FU
SU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50
KiBraXQoV2ViQ29yZTo6SFRNTEJ1dHRvbkVsZW1lbnQqIG9iaikKQEAgLTM1NCwzICszNTYsNCBA
QCBnYm9vbGVhbiB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfZ2V0X3dpbGxfdmFsaWRh
dGUoV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZQogICAgIGdib29sZWFuIHJlc3VsdCA9IGl0ZW0tPndp
bGxWYWxpZGF0ZSgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CitHX0dOVUNfRU5EX0lHTk9SRV9E
RVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MQnV0dG9uRWxlbWVudC5oCmluZGV4IDk1MDQxMjQyOTJlMGUyM2EwNGZhM2VhMGQxYzUyNWY5
OGZlODE0NjEuLmE3YTI2OTBjZjc3OWY4NTk5NWNmYjhmMWE5MTU3OTg3YTZjODA5NTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQnV0dG9uRWxlbWVu
dC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnRD
bGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9Owog
Ci1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9o
dG1sX2J1dHRvbl9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEw
IEBAIHdlYmtpdF9kb21faHRtbF9idXR0b25fZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2di
b29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29s
ZWFuCiB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfZ2V0X2F1dG9mb2N1cyhXZWJLaXRE
T01IVE1MQnV0dG9uRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX2J1dHRvbl9lbGVtZW50X2dldF9hdXRvZm9jdXMoV2ViS2l0RE9NSFRNTEJ1
dHRvbkVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxCdXR0b25FbGVt
ZW50CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9idXR0b25fZWxlbWVudF9zZXRf
YXV0b2ZvY3VzKFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1
ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2J1dHRvbl9lbGVt
ZW50X3NldF9hdXRvZm9jdXMoV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQqIHNlbGYsIGcKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudAogICoKICAqIFJldHVybnM6IEEg
I2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdi
b29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfZ2V0X2Rpc2FibGVkKFdlYktp
dERPTUhUTUxCdXR0b25FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4NiwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfZ2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxC
dXR0b25FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQnV0dG9uRWxl
bWVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfc2V0
X2Rpc2FibGVkKFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1
ZSk7CiAKIC8qKgpAQCAtODksOCArOTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2J1dHRvbl9lbGVt
ZW50X3NldF9kaXNhYmxlZChXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudCogc2VsZiwgZ2IKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0
cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9N
SFRNTEZvcm1FbGVtZW50Kgogd2Via2l0X2RvbV9odG1sX2J1dHRvbl9lbGVtZW50X2dldF9mb3Jt
KFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC05OCw4ICsxMDgs
MTAgQEAgd2Via2l0X2RvbV9odG1sX2J1dHRvbl9lbGVtZW50X2dldF9mb3JtKFdlYktpdERPTUhU
TUxCdXR0b25FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQnV0dG9u
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIq
CitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9idXR0b25fZWxlbWVu
dF9nZXRfYnV0dG9uX3R5cGUoV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Via2l0X2RvbV9odG1sX2J1dHRvbl9lbGVtZW50X2dl
dF9idXR0b25fdHlwZShXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudCogc2VsZikKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfYnV0dG9uX2VsZW1lbnRfc2V0X2J1dHRvbl90eXBlKFdlYktpdERPTUhUTUxCdXR0b25F
bGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTExNiw4ICsxMzAs
MTAgQEAgd2Via2l0X2RvbV9odG1sX2J1dHRvbl9lbGVtZW50X3NldF9idXR0b25fdHlwZShXZWJL
aXRET01IVE1MQnV0dG9uRWxlbWVudCogc2VsZiwKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
QnV0dG9uRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9idXR0b25f
ZWxlbWVudF9nZXRfbmFtZShXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtMTI1LDggKzE0MSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfYnV0dG9uX2VsZW1lbnRfZ2V0
X25hbWUoV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxCdXR0b25FbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9i
dXR0b25fZWxlbWVudF9zZXRfbmFtZShXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMzQsOCArMTUyLDEwIEBAIHdlYmtpdF9k
b21faHRtbF9idXR0b25fZWxlbWVudF9zZXRfbmFtZShXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVu
dCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudAog
ICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRf
REVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9idXR0b25fZWxlbWVudF9nZXRfdmFs
dWUoV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE0Myw4ICsx
NjMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2J1dHRvbl9lbGVtZW50X2dldF92YWx1ZShXZWJLaXRE
T01IVE1MQnV0dG9uRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEJ1
dHRvbkVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2J1dHRvbl9lbGVtZW50
X3NldF92YWx1ZShXZWJLaXRET01IVE1MQnV0dG9uRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IHZhbHVlKTsKIAogLyoqCkBAIC0xNTIsOCArMTc0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9idXR0
b25fZWxlbWVudF9zZXRfdmFsdWUoV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQqIHNlbGYsIGNv
bnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEJ1dHRvbkVsZW1lbnQKICAqCiAgKiBSZXR1
cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVD
QVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX2J1dHRvbl9lbGVtZW50X2dldF93aWxsX3Zh
bGlkYXRlKFdlYktpdERPTUhUTUxCdXR0b25FbGVtZW50KiBzZWxmKTsKIAogR19FTkRfREVDTFMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MQ2FudmFzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTENhbnZhc0Vs
ZW1lbnQuY3BwCmluZGV4IDgzMjFjNTY5MGZlZTE2OWJjZTYxMmI0OGNiNTY4YWRhZmRlODc2ZmEu
LmYzM2JhYmU3ODNlM2FlNTlmMGZmMjgyMjUzMDcxYzBhYmExMWU0MDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MQ2FudmFzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxDYW52YXNFbGVtZW50LmNwcApA
QCAtMzUsNiArMzUsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTENhbnZhc0VsZW1lbnQqIGtpdChXZWJDb3JlOjpI
VE1MQ2FudmFzRWxlbWVudCogb2JqKQpAQCAtMTk5LDMgKzIwMSw0IEBAIHZvaWQgd2Via2l0X2Rv
bV9odG1sX2NhbnZhc19lbGVtZW50X3NldF9oZWlnaHQoV2ViS2l0RE9NSFRNTENhbnZhc0VsZW1l
bnQqIHNlbGYsCiAgICAgaXRlbS0+c2V0SGVpZ2h0KHZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9J
R05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxDYW52YXNFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTENhbnZhc0VsZW1lbnQuaAppbmRleCA0NmYzOTdmNGNhZmVjM2YyNDQwN2Y1ZmFm
ODg3YzlhNGYzYTdhMTEyLi42MGQ1NjcyOTNlMzVkOTg2MmM2NDQ5OTg1NzllZTMzZDMxMTdlNGJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTENhbnZhc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTENhbnZh
c0VsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxDYW52YXNF
bGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNz
OwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtp
dF9kb21faHRtbF9jYW52YXNfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4
ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfY2FudmFzX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTENhbnZhc0VsZW1lbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9u
Zwogd2Via2l0X2RvbV9odG1sX2NhbnZhc19lbGVtZW50X2dldF93aWR0aChXZWJLaXRET01IVE1M
Q2FudmFzRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2NhbnZhc19lbGVtZW50X2dldF93aWR0aChXZWJLaXRET01IVE1MQ2FudmFzRWxlbWVu
dCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTENhbnZhc0VsZW1lbnQKICAqIEB2
YWx1ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2NhbnZhc19lbGVtZW50X3NldF93aWR0aChXZWJLaXRE
T01IVE1MQ2FudmFzRWxlbWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioKQEAgLTcxLDgg
Kzc1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9jYW52YXNfZWxlbWVudF9zZXRfd2lkdGgoV2ViS2l0
RE9NSFRNTENhbnZhc0VsZW1lbnQqIHNlbGYsIGdsb25nCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTENhbnZhc0VsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1sX2NhbnZh
c19lbGVtZW50X2dldF9oZWlnaHQoV2ViS2l0RE9NSFRNTENhbnZhc0VsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTgwLDggKzg2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9jYW52YXNfZWxlbWVudF9n
ZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxDYW52YXNFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MQ2FudmFzRWxlbWVudAogICogQHZhbHVlOiBBICNnbG9uZwogICoKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0
bWxfY2FudmFzX2VsZW1lbnRfc2V0X2hlaWdodChXZWJLaXRET01IVE1MQ2FudmFzRWxlbWVudCog
c2VsZiwgZ2xvbmcgdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxD
b2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQ29sbGVjdGlvbi5jcHAKaW5kZXggNzAyNjI4NGY4MDM4
MzRiYTQ4YWU4ZWFiMzA3MTQ3ODliMWE3YjI5My4uMjU1ODVhYjc2OGM1MTY2MDMyZWIzOGM3MjNl
MGQ2NzA0Nzg2NTY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxDb2xsZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTENvbGxlY3Rpb24uY3BwCkBAIC0zOCw2ICszOCw4IEBAIHR5cGVkZWYgc3RydWN0IF9X
ZWJLaXRET01IVE1MQ29sbGVjdGlvblByaXZhdGUgewogICAgIFJlZlB0cjxXZWJDb3JlOjpIVE1M
Q29sbGVjdGlvbj4gY29yZU9iamVjdDsKIH0gV2ViS2l0RE9NSFRNTENvbGxlY3Rpb25Qcml2YXRl
OwogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKiBraXQoV2ViQ29yZTo6SFRNTENvbGxlY3Rp
b24qIG9iaikKQEAgLTE2MSwzICsxNjMsNCBAQCBndWxvbmcgd2Via2l0X2RvbV9odG1sX2NvbGxl
Y3Rpb25fZ2V0X2xlbmd0aChXZWJLaXRET01IVE1MQ29sbGVjdGlvbiogc2VsZikKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTENvbGxlY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQ29sbGVjdGlvbi5oCmluZGV4IDJj
NGEwNjRmM2QzMDMyZGQzNjc2NTBmYjY5YjAwZGQxM2FlNWE5ZDguLjJjM2IxNTI4MTMzNTdiMzNl
ZmI5ZDA4MjcxZDRjYzczYTNlNDFmOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MQ29sbGVjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MQ29sbGVjdGlvbi5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2Vi
S2l0RE9NSFRNTENvbGxlY3Rpb25DbGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFy
ZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5
cGUKIHdlYmtpdF9kb21faHRtbF9jb2xsZWN0aW9uX2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAg
LTU0LDggKzU0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9jb2xsZWN0aW9uX2dldF90eXBlKHZvaWQp
OwogICogQGluZGV4OiBBICNndWxvbmcKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6
IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lU
X0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21faHRtbF9jb2xsZWN0aW9uX2l0
ZW0oV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qIHNlbGYsIGd1bG9uZyBpbmRleCk7CiAKIC8qKgpA
QCAtNjQsOCArNjYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2NvbGxlY3Rpb25faXRlbShXZWJLaXRE
T01IVE1MQ29sbGVjdGlvbiogc2VsZiwgZ3Vsb25nIGluZGV4KTsKICAqIEBuYW1lOiBBICNnY2hh
cgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01O
b2RlKgogd2Via2l0X2RvbV9odG1sX2NvbGxlY3Rpb25fbmFtZWRfaXRlbShXZWJLaXRET01IVE1M
Q29sbGVjdGlvbiogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWUpOwogCiAvKioKQEAgLTczLDggKzc3
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9jb2xsZWN0aW9uX25hbWVkX2l0ZW0oV2ViS2l0RE9NSFRN
TENvbGxlY3Rpb24qIHNlbGYsIGNvbnN0IGdjaGFyCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TENvbGxlY3Rpb24KICAqCiAgKiBSZXR1cm5zOiBBICNndWxvbmcKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
dWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Via2l0X2RvbV9odG1sX2NvbGxlY3Rp
b25fZ2V0X2xlbmd0aChXZWJLaXRET01IVE1MQ29sbGVjdGlvbiogc2VsZik7CiAKIEdfRU5EX0RF
Q0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTERMaXN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTERMaXN0
RWxlbWVudC5jcHAKaW5kZXggZjExMmZjNjk2NGU5Y2MxNWE3M2VkOTQxNjcxN2E0YzU1Mzc2OGMx
Zi4uNjRiYmU5MmIxODMxN2Y0OTExMjc4MzY0Yjc1OGYxOTI5ZGJjNTY3ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxETGlzdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRExpc3RFbGVtZW50LmNwcApA
QCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTERMaXN0RWxlbWVudCoga2l0KFdlYkNvcmU6OkhU
TUxETGlzdEVsZW1lbnQqIG9iaikKQEAgLTE2NiwzICsxNjgsNCBAQCB2b2lkIHdlYmtpdF9kb21f
aHRtbF9kX2xpc3RfZWxlbWVudF9zZXRfY29tcGFjdChXZWJLaXRET01IVE1MRExpc3RFbGVtZW50
KiBzZWxmLAogICAgIGl0ZW0tPnNldEJvb2xlYW5BdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVz
Ojpjb21wYWN0QXR0ciwgdmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElP
TlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTERMaXN0RWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxETGlzdEVs
ZW1lbnQuaAppbmRleCBhNmFlNzA4OWI0ZDk0M2YzNzNjMGEyNDc4M2FjMzZjZDdkNTMzOGM3Li4y
ODAxNzkyYjk5YzY2NzM1MTIxMjM1NmYzMjM4YmY3NjhmMWIxOWFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTERMaXN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRExpc3RFbGVtZW50LmgKQEAgLTQ1LDcg
KzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MRExpc3RFbGVtZW50Q2xhc3MgewogICAgIFdl
YktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBH
VHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF9kX2xpc3RfZWxl
bWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfZF9saXN0X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTERMaXN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9t
X2h0bWxfZF9saXN0X2VsZW1lbnRfZ2V0X2NvbXBhY3QoV2ViS2l0RE9NSFRNTERMaXN0RWxlbWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2RfbGlz
dF9lbGVtZW50X2dldF9jb21wYWN0KFdlYktpdERPTUhUTUxETGlzdEVsZW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxETGlzdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jv
b2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX2RfbGlzdF9lbGVtZW50X3NldF9jb21wYWN0KFdlYktpdERPTUhUTUxE
TGlzdEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MRGlyZWN0b3J5RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTERpcmVjdG9yeUVs
ZW1lbnQuY3BwCmluZGV4IDFmMmE5YjA1ZGJiZjczN2IwNjY0OTZlNDhjOTgwN2I0ZDM2YjQyNGYu
LjMxMWYxZjA2ZjExNTMwMzg3NGQ2MDUzOGUyMDZiYjkxZmEwMjQwYjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MRGlyZWN0b3J5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxEaXJlY3RvcnlFbGVtZW50
LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTERpcmVjdG9yeUVsZW1lbnQqIGtpdChX
ZWJDb3JlOjpIVE1MRGlyZWN0b3J5RWxlbWVudCogb2JqKQpAQCAtMTY2LDMgKzE2OCw0IEBAIHZv
aWQgd2Via2l0X2RvbV9odG1sX2RpcmVjdG9yeV9lbGVtZW50X3NldF9jb21wYWN0KFdlYktpdERP
TUhUTUxEaXJlY3RvcnlFbGVtZW50CiAgICAgaXRlbS0+c2V0Qm9vbGVhbkF0dHJpYnV0ZShXZWJD
b3JlOjpIVE1MTmFtZXM6OmNvbXBhY3RBdHRyLCB2YWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdO
T1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRGlyZWN0b3J5RWxlbWVudC5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxEaXJlY3RvcnlFbGVtZW50LmgKaW5kZXggNzZhZDY3ZmQ3N2VhNjcxNzAzZTdk
MWRiYTVlOTY3Yzg2ODJlMDViMi4uOTk3YmUyNDY0OGEzMzBjMzk0YmEyMzQ0OTE4MGRiY2FhNmI3
YWU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxEaXJlY3RvcnlFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxEaXJlY3RvcnlFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01I
VE1MRGlyZWN0b3J5RWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNz
IHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVE
IEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfZGlyZWN0b3J5X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7
CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2RpcmVjdG9yeV9lbGVt
ZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxEaXJlY3RvcnlF
bGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9v
bGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9kaXJlY3Rv
cnlfZWxlbWVudF9nZXRfY29tcGFjdChXZWJLaXRET01IVE1MRGlyZWN0b3J5RWxlbWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2RpcmVjdG9yeV9l
bGVtZW50X2dldF9jb21wYWN0KFdlYktpdERPTUhUTUxEaXJlY3RvcnlFbGVtZW50KiBzZWwKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MRGlyZWN0b3J5RWxlbWVudAogICogQHZhbHVlOiBBICNn
Ym9vbGVhbgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2h0bWxfZGlyZWN0b3J5X2VsZW1lbnRfc2V0X2NvbXBhY3QoV2ViS2l0RE9N
SFRNTERpcmVjdG9yeUVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogR19FTkRfREVD
TFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRGl2RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTERpdkVsZW1l
bnQuY3BwCmluZGV4IDEzY2NjY2U3ODg1NWM5MTM3Mzk0MjQ2MzJhNjNkNTM0YmU2NDRjZTcuLjVm
MDY0MTZkY2Y3OTE4OTdiY2E1YmExY2NjMzBlNjU1MjQ5NTZkZWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MRGl2RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxEaXZFbGVtZW50LmNwcApAQCAtMzYsNiAr
MzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogV2ViS2l0RE9NSFRNTERpdkVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MRGl2RWxlbWVu
dCogb2JqKQpAQCAtMTY4LDMgKzE3MCw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX2Rpdl9lbGVt
ZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MRGl2RWxlbWVudCogc2VsZiwgY29uc3QKICAgICBp
dGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1l
czo6YWxpZ25BdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RF
UFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRGl2RWxlbWVudC5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxE
aXZFbGVtZW50LmgKaW5kZXggNWY5MjA3NmVjYTllYzk2MDcyODJkNjY1ZmVmYzdkOTNjMWQ4MDgw
NS4uNjIxNDNiOTIxMWRmOTFjYmUxOWMyZWE2MmYxMjhiZWJiNGI0ZjNlMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxEaXZFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxEaXZFbGVtZW50LmgKQEAgLTQ1LDcg
KzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MRGl2RWxlbWVudENsYXNzIHsKICAgICBXZWJL
aXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5
cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfZGl2X2VsZW1lbnRf
Z2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1s
X2Rpdl9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxE
aXZFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hh
cioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2Rpdl9lbGVtZW50
X2dldF9hbGlnbihXZWJLaXRET01IVE1MRGl2RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIs
OCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2Rpdl9lbGVtZW50X2dldF9hbGlnbihXZWJLaXRE
T01IVE1MRGl2RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTERpdkVs
ZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2Rpdl9lbGVtZW50X3NldF9hbGln
bihXZWJLaXRET01IVE1MRGl2RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAog
R19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRG9jdW1lbnQuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxE
b2N1bWVudC5jcHAKaW5kZXggOTUxYTRiZGJmZjliZjhiODE5MzM2ODFhMTM5YjZjMzhmMWEwY2I0
YS4uZjcxMmU4ZDlmMjg5ODE4MDhmNGIyZGEzNDc4NWU3NjJmMjc4NzU0ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxEb2N1bWVudC5jcHAKQEAgLTM1LDYg
KzM1LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIFdlYktpdERPTUhUTUxEb2N1bWVudCoga2l0KFdlYkNvcmU6OkhUTUxEb2N1bWVudCog
b2JqKQpAQCAtNDI1LDMgKzQyNyw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X3Nl
dF92bGlua19jb2xvcihXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYsIGNvbnN0CiAgICAgaXRl
bS0+c2V0VmxpbmtDb2xvcihjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JF
X0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRG9jdW1lbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
RG9jdW1lbnQuaAppbmRleCAzYTI0MGU1MTg1OGU2MmQ0NDc5NzI1MjYyNzI4OTM0NGM3NDA4MTU2
Li45NGMyYTcyNDc1YjNhMzZkZTYwOTNlNzA4MmNkZDRkMjk2MzQzN2YzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTERvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxEb2N1bWVudC5oCkBAIC00NSwzOSArNDUs
NDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MRG9jdW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9N
RG9jdW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJL
SVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X2dldF90eXBlKHZv
aWQpOwogCiAvKioKICAqIHdlYmtpdF9kb21faHRtbF9kb2N1bWVudF9jbG9zZToKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MRG9jdW1lbnQKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X2Nsb3NlKFdlYktp
dERPTUhUTUxEb2N1bWVudCogc2VsZik7CiAKIC8qKgogICogd2Via2l0X2RvbV9odG1sX2RvY3Vt
ZW50X2NsZWFyOgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxEb2N1bWVudAogICoKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxf
ZG9jdW1lbnRfY2xlYXIoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBzZWxmKTsKIAogLyoqCiAgKiB3
ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfY2FwdHVyZV9ldmVudHM6CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTERvY3VtZW50CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBS
RUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9kb2N1bWVudF9jYXB0dXJlX2V2ZW50cyhXZWJL
aXRET01IVE1MRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKICAqIHdlYmtpdF9kb21faHRtbF9kb2N1
bWVudF9yZWxlYXNlX2V2ZW50czoKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRG9jdW1lbnQK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9odG1sX2RvY3VtZW50X3JlbGVhc2VfZXZlbnRzKFdlYktpdERPTUhUTUxEb2N1bWVudCog
c2VsZik7CiAKIC8qKgpAQCAtODUsOCArOTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2RvY3VtZW50
X3JlbGVhc2VfZXZlbnRzKFdlYktpdERPTUhUTUxEb2N1bWVudCogc2VsZik7CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTERvY3VtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRt
bF9kb2N1bWVudF9nZXRfd2lkdGgoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC05NCw4ICsxMDQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X2dldF93aWR0aChX
ZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxE
b2N1bWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcK
K1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfZ2V0X2hl
aWdodChXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEwMyw4ICsxMTUs
MTAgQEAgd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X2dldF9oZWlnaHQoV2ViS2l0RE9NSFRNTERv
Y3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRG9jdW1lbnQKICAqCiAg
KiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJF
Q0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfZ2V0X2RpcihXZWJLaXRET01I
VE1MRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTExMiw4ICsxMjYsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2RvY3VtZW50X2dldF9kaXIoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBzZWxmKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MRG9jdW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX2RvY3VtZW50X3NldF9kaXIoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBzZWxmLCBjb25z
dCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEyMSw4ICsxMzcsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2RvY3VtZW50X3NldF9kaXIoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBzZWxmLCBjb25zdCBn
Y2hhciogdmFsdWUKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRG9jdW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfZ2V0X2JnX2NvbG9yKFdlYktpdERP
TUhUTUxEb2N1bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTMwLDggKzE0OCwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfZG9jdW1lbnRfZ2V0X2JnX2NvbG9yKFdlYktpdERPTUhUTUxEb2N1bWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTERvY3VtZW50CiAgKiBAdmFsdWU6IEEgI2dj
aGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF9kb2N1bWVudF9zZXRfYmdfY29sb3IoV2ViS2l0RE9NSFRNTERvY3VtZW50
KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEzOSw4ICsxNTksMTAgQEAg
d2Via2l0X2RvbV9odG1sX2RvY3VtZW50X3NldF9iZ19jb2xvcihXZWJLaXRET01IVE1MRG9jdW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxEb2N1bWVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9kb2N1bWVudF9nZXRfZmdfY29s
b3IoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNDgsOCArMTcwLDEw
IEBAIHdlYmtpdF9kb21faHRtbF9kb2N1bWVudF9nZXRfZmdfY29sb3IoV2ViS2l0RE9NSFRNTERv
Y3VtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRG9jdW1lbnQKICAqIEB2
YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X3NldF9mZ19jb2xvcihXZWJLaXRET01I
VE1MRG9jdW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTU3LDgg
KzE4MSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfc2V0X2ZnX2NvbG9yKFdlYktpdERP
TUhUTUxEb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTERvY3VtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Y2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2RvY3VtZW50
X2dldF9hbGlua19jb2xvcihXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTE2Niw4ICsxOTIsMTAgQEAgd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X2dldF9hbGlua19jb2xv
cihXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxEb2N1bWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfc2V0X2Fs
aW5rX2NvbG9yKFdlYktpdERPTUhUTUxEb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVl
KTsKIAogLyoqCkBAIC0xNzUsOCArMjAzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9kb2N1bWVudF9z
ZXRfYWxpbmtfY29sb3IoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBzZWxmLCBjb25zdCBnY2hhCiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTERvY3VtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2No
YXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Vi
a2l0X2RvbV9odG1sX2RvY3VtZW50X2dldF9saW5rX2NvbG9yKFdlYktpdERPTUhUTUxEb2N1bWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtMTg0LDggKzIxNCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZG9j
dW1lbnRfZ2V0X2xpbmtfY29sb3IoV2ViS2l0RE9NSFRNTERvY3VtZW50KiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MRG9jdW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9o
dG1sX2RvY3VtZW50X3NldF9saW5rX2NvbG9yKFdlYktpdERPTUhUTUxEb2N1bWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xOTMsOCArMjI1LDEwIEBAIHdlYmtpdF9k
b21faHRtbF9kb2N1bWVudF9zZXRfbGlua19jb2xvcihXZWJLaXRET01IVE1MRG9jdW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTERvY3VtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBS
RUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2RvY3VtZW50X2dldF92bGlua19jb2xvcihX
ZWJLaXRET01IVE1MRG9jdW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTIwMiw4ICsyMzYsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2RvY3VtZW50X2dldF92bGlua19jb2xvcihXZWJLaXRET01IVE1MRG9j
dW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxEb2N1bWVudAogICogQHZh
bHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZG9jdW1lbnRfc2V0X3ZsaW5rX2NvbG9yKFdlYktpdERP
TUhUTUxEb2N1bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEVsZW1lbnQuY3BwCmlu
ZGV4IDkzNGNlNGI3NGZmNWI5NWQyMDBlYWU5YzcxYTNjYjFjNmFiMzQwZWYuLjdlMTcxNTQwMzBk
Y2YwODIzYzlhYjMwNzY3MTJjMjQyNTU2ZjRiYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxFbGVtZW50LmNwcApAQCAtMzcsNiArMzcsOCBAQAogI2luY2x1
ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJ
Tl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9N
SFRNTEVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MRWxlbWVudCogb2JqKQpAQCAtNjM3LDMgKzYz
OSw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X3NwZWxsY2hlY2soV2ViS2l0
RE9NSFRNTEVsZW1lbnQqIHNlbGYsIGdib29sZWFuCiAgICAgaXRlbS0+c2V0U3BlbGxjaGVjayh2
YWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxFbGVtZW50LmgKaW5kZXggMmQxZmI1YTVlNGY2
NTkyNWZiYmE1MWRiZWIyMjQ1NzU0ZGY2OTQzMi4uM2MzODVkMTZiNzhkODMwZGM5ODc4YmU2NTg5
YTRhY2RmZDI0NDQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxFbGVtZW50LmgKQEAgLTQ1LDE1ICs0NSwxNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxFbGVt
ZW50Q2xhc3MgewogICAgIFdlYktpdERPTUVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9Owog
Ci1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9o
dG1sX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgogICogd2Via2l0X2RvbV9odG1sX2Vs
ZW1lbnRfY2xpY2s6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X2VsZW1lbnRfY2xpY2soV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYx
LDggKzYzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X2NsaWNrKFdlYktpdERPTUhUTUxF
bGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRWxlbWVudAogICoKICAq
IFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVD
QVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X2dldF90aXRsZShXZWJLaXRET01I
VE1MRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNzAsOCArNzQsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2VsZW1lbnRfZ2V0X3RpdGxlKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0
bWxfZWxlbWVudF9zZXRfdGl0bGUoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzksOCArODUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2Vs
ZW1lbnRfc2V0X3RpdGxlKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciog
dmFsdWUKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X2dldF9sYW5nKFdlYktpdERPTUhUTUxFbGVtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC04OCw4ICs5NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZWxlbWVu
dF9nZXRfbGFuZyhXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRf
c2V0X2xhbmcoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7
CiAKIC8qKgpAQCAtOTcsOCArMTA3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF9s
YW5nKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpCiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRf
ZG9tX2h0bWxfZWxlbWVudF9nZXRfZGlyKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0xMDYsOCArMTE4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X2dldF9kaXIo
V2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxF
bGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF9kaXIoV2Vi
S2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAt
MTE1LDggKzEyOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9zZXRfZGlyKFdlYktpdERP
TUhUTUxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF9lbGVt
ZW50X2dldF90YWJfaW5kZXgoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTEyNCw4ICsxNDAsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X3RhYl9pbmRleChX
ZWJLaXRET01IVE1MRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVs
ZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VC
S0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X3RhYl9pbmRl
eChXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioKQEAgLTEz
Myw4ICsxNTEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X3RhYl9pbmRleChXZWJL
aXRET01IVE1MRWxlbWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2VsZW1l
bnRfZ2V0X2FjY2Vzc19rZXkoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTE0Miw4ICsxNjIsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X2FjY2Vzc19rZXko
V2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxF
bGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF9hY2Nlc3Nf
a2V5KFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAv
KioKQEAgLTE1MSw4ICsxNzMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X2FjY2Vz
c19rZXkoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKgogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9o
dG1sX2VsZW1lbnRfZ2V0X2lubmVyX3RleHQoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTE2MSw4ICsxODUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X2lu
bmVyX3RleHQoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNnY2hh
cgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF9pbm5lcl90ZXh0KFdl
YktpdERPTUhUTUxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJvcioqIGVy
cm9yKTsKIAogLyoqCkBAIC0xNzAsOCArMTk2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50
X3NldF9pbm5lcl90ZXh0KFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhcioK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dj
aGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdl
YmtpdF9kb21faHRtbF9lbGVtZW50X2dldF9vdXRlcl90ZXh0KFdlYktpdERPTUhUTUxFbGVtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC0xODAsOCArMjA4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbGVt
ZW50X2dldF9vdXRlcl90ZXh0KFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKICAqIEB2YWx1
ZTogQSAjZ2NoYXIKICAqIEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9zZXRfb3V0
ZXJfdGV4dChXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBH
RXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTg5LDggKzIxOSwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfZWxlbWVudF9zZXRfb3V0ZXJfdGV4dChXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwgY29u
c3QgZ2NoYXIqCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKICAqCiAgKiBSZXR1
cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQg
Z2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfY29udGVudF9lZGl0YWJsZShXZWJL
aXRET01IVE1MRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTk5LDggKzIzMSwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfY29udGVudF9lZGl0YWJsZShXZWJLaXRET01IVE1MRWxl
bWVudCogc2VsZik7CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAq
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2Rv
bV9odG1sX2VsZW1lbnRfc2V0X2NvbnRlbnRfZWRpdGFibGUoV2ViS2l0RE9NSFRNTEVsZW1lbnQq
IHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTIw
OCw4ICsyNDIsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X2NvbnRlbnRfZWRpdGFi
bGUoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYsIGNvbnN0IGcKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0
bWxfZWxlbWVudF9nZXRfaXNfY29udGVudF9lZGl0YWJsZShXZWJLaXRET01IVE1MRWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMjE5LDggKzI1NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZWxlbWVu
dF9nZXRfaXNfY29udGVudF9lZGl0YWJsZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZik7CiAg
KiBSZXR1cm5zOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxf
ZWxlbWVudF9nZXRfdHJhbnNsYXRlKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC0yMjksOCArMjY3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X2dldF90cmFuc2xh
dGUoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNnYm9vbGVhbgog
ICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X3RyYW5zbGF0ZShXZWJLaXRET01I
VE1MRWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTI0MCw4ICsyODAs
MTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X3RyYW5zbGF0ZShXZWJLaXRET01IVE1M
RWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUKICAqIFJldHVybnM6IEEgI2dib29sZWFuCiAg
KgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJF
Q0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X2dldF9kcmFnZ2FibGUoV2Vi
S2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTI1MCw4ICsyOTIsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X2RyYWdnYWJsZShXZWJLaXRET01IVE1MRWxlbWVudCog
c2VsZik7CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxf
ZWxlbWVudF9zZXRfZHJhZ2dhYmxlKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmLCBnYm9vbGVh
biB2YWx1ZSk7CiAKIC8qKgpAQCAtMjYxLDggKzMwNSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZWxl
bWVudF9zZXRfZHJhZ2dhYmxlKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2
YWx1ZQogICogUmV0dXJuczogQSAjZ2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxf
ZWxlbWVudF9nZXRfd2Via2l0ZHJvcHpvbmUoV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTI3MSw4ICszMTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X3dl
YmtpdGRyb3B6b25lKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKICAqIEB2YWx1ZTogQSAj
Z2NoYXIKICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF93ZWJraXRkcm9wem9u
ZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoq
CkBAIC0yODIsOCArMzMwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF93ZWJraXRk
cm9wem9uZShXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoCiAgKiBSZXR1cm5z
OiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xl
YW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9n
ZXRfaGlkZGVuKFdlYktpdERPTUhUTUxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yOTIsOCAr
MzQyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbGVtZW50X2dldF9oaWRkZW4oV2ViS2l0RE9NSFRN
TEVsZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAy
LjE2CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9odG1sX2VsZW1lbnRfc2V0X2hpZGRlbihXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwg
Z2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTMwMyw4ICszNTUsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2VsZW1lbnRfc2V0X2hpZGRlbihXZWJLaXRET01IVE1MRWxlbWVudCogc2VsZiwgZ2Jvb2xl
YW4gdmFsdWUpOwogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KICAqCiAgKiBTaW5jZTogMi4xNgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Vi
a2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X3NwZWxsY2hlY2soV2ViS2l0RE9NSFRNTEVsZW1lbnQq
IHNlbGYpOwogCiAvKioKQEAgLTMxMyw4ICszNjcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VsZW1l
bnRfZ2V0X3NwZWxsY2hlY2soV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYpOwogICogQHZhbHVl
OiBBICNnYm9vbGVhbgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfc2V0X3NwZWxs
Y2hlY2soV2ViS2l0RE9NSFRNTEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogR19F
TkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRW1iZWRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
RW1iZWRFbGVtZW50LmNwcAppbmRleCA4ZjA3MDlhMjkyOWZhMzNhN2RjNzA4MDI5MTY5NDA4NjFl
OTlmN2U2Li45MTMxMjQ2OTM4Yzc3OTJmZTE1ZWMzMDRmNzZmZWVmM2Q5YzdiOWVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQu
Y3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50KiBraXQoV2ViQ29y
ZTo6SFRNTEVtYmVkRWxlbWVudCogb2JqKQpAQCAtMzQ0LDMgKzM0Niw0IEBAIHZvaWQgd2Via2l0
X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfc2V0X3dpZHRoKFdlYktpdERPTUhUTUxFbWJlZEVsZW1l
bnQqIHNlbGYsIGdsCiAgICAgaXRlbS0+c2V0SW50ZWdyYWxBdHRyaWJ1dGUoV2ViQ29yZTo6SFRN
TE5hbWVzOjp3aWR0aEF0dHIsIHZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVD
QVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRW1i
ZWRFbGVtZW50LmgKaW5kZXggNjhkMjMzMzBjOWIzZmNmNjQ2ZmY2ODNlZTQ2MDAyMzI3YTA4Nzcy
Ny4uNmVhZmQ1N2NmZjk1ZGExYTRmZjdlNDVlMjU1ZGVhNWQ3ZTZmZTI2MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxFbWJlZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudC5oCkBAIC00
NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudENsYXNzIHsKICAg
ICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9B
UEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfZW1iZWRf
ZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MRW1iZWRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1s
X2VtYmVkX2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbWJlZF9lbGVtZW50
X2dldF9hbGlnbihXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRt
bF9lbWJlZF9lbGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50KiBzZWxm
LCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTcxLDggKzc1LDEwIEBAIHdlYmtpdF9k
b21faHRtbF9lbWJlZF9lbGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50
KiBzZWxmLCBjb25zdCBnCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudAog
ICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9E
RVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9nZXRfaGVpZ2h0
KFdlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2LDEw
IEBAIHdlYmtpdF9kb21faHRtbF9lbWJlZF9lbGVtZW50X2dldF9oZWlnaHQoV2ViS2l0RE9NSFRN
TEVtYmVkRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEVtYmVkRWxl
bWVudAogICogQHZhbHVlOiBBICNnbG9uZwogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9zZXRfaGVp
Z2h0KFdlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoq
CkBAIC04OSw4ICs5NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9zZXRfaGVp
Z2h0KFdlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQqIHNlbGYsIGdsb25nCiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21f
aHRtbF9lbWJlZF9lbGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQqIHNl
bGYpOwogCiAvKioKQEAgLTk4LDggKzEwOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxl
bWVudF9nZXRfbmFtZShXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF9lbWJlZF9lbGVtZW50X3NldF9uYW1lKFdlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTA3LDggKzExOSwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9zZXRfbmFtZShXZWJLaXRET01IVE1MRW1iZWRFbGVt
ZW50KiBzZWxmLCBjb25zdCBnYwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxFbWJlZEVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZW1iZWRfZWxlbWVudF9nZXRf
c3JjKFdlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTExNiw4ICsx
MzAsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfZ2V0X3NyYyhXZWJLaXRET01I
VE1MRW1iZWRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRW1iZWRF
bGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9lbWJlZF9lbGVtZW50X3NldF9z
cmMoV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsK
IAogLyoqCkBAIC0xMjUsOCArMTQxLDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbWJlZF9lbGVtZW50
X3NldF9zcmMoV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoCiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTEVtYmVkRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dj
aGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdl
YmtpdF9kb21faHRtbF9lbWJlZF9lbGVtZW50X2dldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTEVt
YmVkRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTM0LDggKzE1MiwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfZW1iZWRfZWxlbWVudF9nZXRfdHlwZV9hdHRyKFdlYktpdERPTUhUTUxFbWJlZEVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxFbWJlZEVsZW1lbnQKICAqIEB2
YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfc2V0X3R5cGVfYXR0cihXZWJL
aXRET01IVE1MRW1iZWRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioK
QEAgLTE0Myw4ICsxNjMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2VtYmVkX2VsZW1lbnRfc2V0X3R5
cGVfYXR0cihXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50KiBzZWxmLCBjb24KICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21f
aHRtbF9lbWJlZF9lbGVtZW50X2dldF93aWR0aChXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC0xNTIsOCArMTc0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9lbWJlZF9l
bGVtZW50X2dldF93aWR0aChXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50KiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dsb25nCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21faHRtbF9lbWJlZF9lbGVtZW50X3NldF93aWR0aChXZWJLaXRET01IVE1MRW1iZWRFbGVtZW50
KiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TEZpZWxkU2V0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAKaW5kZXgg
OTFhMmNkODJiZDBmYTc2NWNiOTAyMTRhOTJlMjQ0MzlmNDMwYTQzMy4uNmYxMDRiNGVhYTY0MDRj
MTNmMTg3ZDhmMDA4Y2Q2OGM0YWQ4NTVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGaWVsZFNldEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRmllbGRTZXRFbGVtZW50LmNwcApAQCAtMzgsNiArMzgs
OCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAK
K0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogV2ViS2l0RE9NSFRNTEZpZWxkU2V0RWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxGaWVsZFNl
dEVsZW1lbnQqIG9iaikKQEAgLTE0MywzICsxNDUsNCBAQCBXZWJLaXRET01IVE1MRm9ybUVsZW1l
bnQqIHdlYmtpdF9kb21faHRtbF9maWVsZF9zZXRfZWxlbWVudF9nZXRfZm9ybShXZWJLaXRET01I
VAogICAgIFJlZlB0cjxXZWJDb3JlOjpIVE1MRm9ybUVsZW1lbnQ+IGdvYmplY3RSZXN1bHQgPSBX
VEY6OmdldFB0cihpdGVtLT5mb3JtKCkpOwogICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0
UmVzdWx0LmdldCgpKTsKIH0KK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MRmllbGRTZXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZpZWxkU2V0RWxlbWVu
dC5oCmluZGV4IGI4NzY2MTc3YjI4ZGQzNjVkZTBjODdlNTQxODViZDQxNTk2MjNhOTQuLjQ0YWVh
NjQ0NDkyMjgzMzM3MThiNzNmMzgyNzM5NjIxMDhkOTZmMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
RmllbGRTZXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGaWVsZFNldEVsZW1lbnQuaApAQCAtNDUs
NyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxGaWVsZFNldEVsZW1lbnRDbGFzcyB7CiAg
ICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRf
QVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2ZpZWxk
X3NldF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdl
YmtpdF9kb21faHRtbF9maWVsZF9zZXRfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MRmllbGRTZXRFbGVtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5z
ZmVyIG5vbmUpOiBBICNXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBX
ZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1M
Rm9ybUVsZW1lbnQqCiB3ZWJraXRfZG9tX2h0bWxfZmllbGRfc2V0X2VsZW1lbnRfZ2V0X2Zvcm0o
V2ViS2l0RE9NSFRNTEZpZWxkU2V0RWxlbWVudCogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTEZvbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRm9udEVsZW1lbnQuY3Bw
CmluZGV4IDYwZjY3ZTc3ZGQyMmUyMTljNGI2YmRhNmQxZGI4ODM1Y2RhODYzZDQuLmVmOTQ4ZDk1
NTYzZjg3ZTVkMjU1MmZlODc3OGFlZWMyMTU2ODdiYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRm9u
dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRm9udEVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4
IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAor
R19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBXZWJLaXRET01IVE1MRm9udEVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MRm9udEVsZW1lbnQq
IG9iaikKQEAgLTI0MCwzICsyNDIsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9mb250X2VsZW1l
bnRfc2V0X3NpemUoV2ViS2l0RE9NSFRNTEZvbnRFbGVtZW50KiBzZWxmLCBjb25zdAogICAgIGl0
ZW0tPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVz
OjpzaXplQXR0ciwgY29udmVydGVkVmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBS
RUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZvbnRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZv
bnRFbGVtZW50LmgKaW5kZXggOGEyZTA4MjMxYjg0ZDlhODJjM2NjNDk3NDAzZWUxNjEzZjAyZGM2
Yy4uNzgyOWQ2YjNiNTNiMmQwYjgwODAyZjU1NTViYTAyOGE1YzI1YWFlZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxGb250RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRm9udEVsZW1lbnQuaApAQCAtNDUs
NyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxGb250RWxlbWVudENsYXNzIHsKICAgICBX
ZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkg
R1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfZm9udF9lbGVt
ZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9mb250X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTEZvbnRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2ZvbnRf
ZWxlbWVudF9nZXRfY29sb3IoV2ViS2l0RE9NSFRNTEZvbnRFbGVtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZm9udF9lbGVtZW50X2dldF9jb2xv
cihXZWJLaXRET01IVE1MRm9udEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxGb250RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZm9udF9lbGVt
ZW50X3NldF9jb2xvcihXZWJLaXRET01IVE1MRm9udEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFy
KiB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ZvbnRf
ZWxlbWVudF9zZXRfY29sb3IoV2ViS2l0RE9NSFRNTEZvbnRFbGVtZW50KiBzZWxmLCBjb25zdCBn
Y2gKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRm9udEVsZW1lbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2No
YXIqCiB3ZWJraXRfZG9tX2h0bWxfZm9udF9lbGVtZW50X2dldF9mYWNlKFdlYktpdERPTUhUTUxG
b250RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtODAsOCArODYsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2ZvbnRfZWxlbWVudF9nZXRfZmFjZShXZWJLaXRET01IVE1MRm9udEVsZW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGb250RWxlbWVudAogICogQHZhbHVlOiBBICNn
Y2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3
ZWJraXRfZG9tX2h0bWxfZm9udF9lbGVtZW50X3NldF9mYWNlKFdlYktpdERPTUhUTUxGb250RWxl
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC04OSw4ICs5NywxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfZm9udF9lbGVtZW50X3NldF9mYWNlKFdlYktpdERPTUhUTUxGb250
RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGb250
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIq
CitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9mb250X2VsZW1lbnRf
Z2V0X3NpemUoV2ViS2l0RE9NSFRNTEZvbnRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC05OCw4
ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ZvbnRfZWxlbWVudF9nZXRfc2l6ZShXZWJLaXRE
T01IVE1MRm9udEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGb250
RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZm9udF9lbGVtZW50X3NldF9z
aXplKFdlYktpdERPTUhUTUxGb250RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsK
IAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRm9ybUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxGb3JtRWxlbWVudC5jcHAKaW5kZXggMTczMjc3Njg0YTc2MmVhYmI5OTQ4MmQ1NDg0NDE4
ODQ2Yjk1MTE5OS4uZWQ5NmYxYjUzZDRmMWJkNWFhZWExM2M5OGNlMWY0NDFmNTYyMTg5ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxGb3JtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGb3JtRWxlbWVu
dC5jcHAKQEAgLTM3LDYgKzM3LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCoga2l0KFdlYkNv
cmU6OkhUTUxGb3JtRWxlbWVudCogb2JqKQpAQCAtNDQ1LDMgKzQ0Nyw0IEBAIGdsb25nIHdlYmtp
dF9kb21faHRtbF9mb3JtX2VsZW1lbnRfZ2V0X2xlbmd0aChXZWJLaXRET01IVE1MRm9ybUVsZW1l
bnQqIHNlbGYpCiAgICAgZ2xvbmcgcmVzdWx0ID0gaXRlbS0+bGVuZ3RoKCk7CiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MRm9ybUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRm9ybUVsZW1lbnQuaAppbmRleCBiOWVm
OGE2NWJmZWZmYjM5ZjM3ODFjZjU2ZTMyY2EzODg1YjdhMTQzLi41ZTY0YTNmY2FmNWViNDZiYmUx
MzlhYmQ3ZGFhZTUzM2VjMDU4MjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxGb3JtRWxlbWVudC5oCkBAIC00NSwyMyArNDUsMjcgQEAgc3RydWN0IF9X
ZWJLaXRET01IVE1MRm9ybUVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRD
bGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVD
QVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsK
IAogLyoqCiAgKiB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X3N1Ym1pdDoKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9zdWJt
aXQoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmKTsKIAogLyoqCiAgKiB3ZWJraXRfZG9t
X2h0bWxfZm9ybV9lbGVtZW50X3Jlc2V0OgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGb3Jt
RWxlbWVudAogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X3Jlc2V0KFdlYktpdERPTUhUTUxGb3JtRWxl
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjksOCArNzMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2Zv
cm1fZWxlbWVudF9yZXNldChXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxGb3JtRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFy
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtp
dF9kb21faHRtbF9mb3JtX2VsZW1lbnRfZ2V0X2FjY2VwdF9jaGFyc2V0KFdlYktpdERPTUhUTUxG
b3JtRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNzgsOCArODQsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2Zvcm1fZWxlbWVudF9nZXRfYWNjZXB0X2NoYXJzZXQoV2ViS2l0RE9NSFRNTEZvcm1FbGVt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQKICAqIEB2
YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9zZXRfYWNjZXB0X2NoYXJzZXQo
V2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAv
KioKQEAgLTg3LDggKzk1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfc2V0X2Fj
Y2VwdF9jaGFyc2V0KFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogc2VsZiwKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9t
X2h0bWxfZm9ybV9lbGVtZW50X2dldF9hY3Rpb24oV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC05Niw4ICsxMDYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxl
bWVudF9nZXRfYWN0aW9uKFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF9mb3JtX2VsZW1lbnRfc2V0X2FjdGlvbihXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTA1LDggKzExNywxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X3NldF9hY3Rpb24oV2ViS2l0RE9NSFRNTEZvcm1FbGVt
ZW50KiBzZWxmLCBjb25zdCBnYwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGb3JtRWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfZ2V0X2Vu
Y3R5cGUoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMTQsOCAr
MTI4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfZ2V0X2VuY3R5cGUoV2ViS2l0
RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRm9y
bUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9zZXRf
ZW5jdHlwZShXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1
ZSk7CiAKIC8qKgpAQCAtMTIzLDggKzEzOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVt
ZW50X3NldF9lbmN0eXBlKFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogc2VsZiwgY29uc3QgZwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGb3JtRWxlbWVudAogICoKICAqIFJldHVybnM6IEEg
I2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioK
IHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfZ2V0X2VuY29kaW5nKFdlYktpdERPTUhUTUxG
b3JtRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTMyLDggKzE1MCwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfZm9ybV9lbGVtZW50X2dldF9lbmNvZGluZyhXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQq
IHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGb3JtRWxlbWVudAogICogQHZhbHVl
OiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2
b2lkCiB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X3NldF9lbmNvZGluZyhXZWJLaXRET01I
VE1MRm9ybUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTQx
LDggKzE2MSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X3NldF9lbmNvZGluZyhX
ZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTEZvcm1FbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2Zv
cm1fZWxlbWVudF9nZXRfbWV0aG9kKFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtMTUwLDggKzE3MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X2dl
dF9tZXRob2QoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MRm9ybUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2Zv
cm1fZWxlbWVudF9zZXRfbWV0aG9kKFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogc2VsZiwgY29u
c3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNTksOCArMTgzLDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9mb3JtX2VsZW1lbnRfc2V0X21ldGhvZChXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBS
RUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9nZXRfbmFtZShXZWJL
aXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE2OCw4ICsxOTQsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9nZXRfbmFtZShXZWJLaXRET01IVE1MRm9ybUVs
ZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGb3JtRWxlbWVudAogICog
QHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50X3NldF9uYW1lKFdlYktpdERP
TUhUTUxGb3JtRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0x
NzcsOCArMjA1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mb3JtX2VsZW1lbnRfc2V0X25hbWUoV2Vi
S2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhCiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTEZvcm1FbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1s
X2Zvcm1fZWxlbWVudF9nZXRfdGFyZ2V0KFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtMTg2LDggKzIxNiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVtZW50
X2dldF90YXJnZXQoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X2Zvcm1fZWxlbWVudF9zZXRfdGFyZ2V0KFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xOTUsOCArMjI3LDEwIEBAIHdlYmtpdF9k
b21faHRtbF9mb3JtX2VsZW1lbnRfc2V0X3RhcmdldChXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQq
IHNlbGYsIGNvbnN0IGdjCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50CiAg
KgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1MQ29sbGVjdGlv
bgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgorV0VCS0lUX0RFUFJF
Q0FURUQgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCiB3ZWJraXRfZG9tX2h0bWxfZm9ybV9lbGVt
ZW50X2dldF9lbGVtZW50cyhXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTIwNCw4ICsyMzgsMTAgQEAgd2Via2l0X2RvbV9odG1sX2Zvcm1fZWxlbWVudF9nZXRfZWxl
bWVudHMoV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MRm9ybUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1sX2Zv
cm1fZWxlbWVudF9nZXRfbGVuZ3RoKFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCogc2VsZik7CiAK
IEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTEZyYW1lRWxlbWVudC5jcHAKaW5kZXggNzljMTYwZGJmYzAwZjQ4YmE2NmU3MjZkYjYwMjk0
MmYwYTZjMzI2Yy4uYzE1ZjZhNDg2NGY3ODNlYzA3MzZiNGNhMzc5NmM2ZGQ2NmIzNzYyYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRnJhbWVFbGVt
ZW50LmNwcApAQCAtMzgsNiArMzgsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwor
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudCoga2l0KFdl
YkNvcmU6OkhUTUxGcmFtZUVsZW1lbnQqIG9iaikKQEAgLTUxMiwzICs1MTQsNCBAQCBnbG9uZyB3
ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9nZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxGcmFt
ZUVsZW1lbnQqIHNlbGYpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorR19HTlVDX0VORF9JR05P
UkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MRnJhbWVFbGVtZW50LmgKaW5kZXggNzNjN2JjYzJmNzQ3ZGE4NjFlY2YwY2IxN2M3YTgz
MjQxN2I5ZDgyMC4uMGZlZmY0NzIyMmFmY2Q4ODc1NDg1NmQ3ZDlhMzI3MDdlYjdiN2IwZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVu
dC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudENs
YXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAK
LVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0
bWxfZnJhbWVfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0
X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfZ2V0X2ZyYW1lX2JvcmRlcihXZWJLaXRET01IVE1MRnJh
bWVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfZnJhbWVfZWxlbWVudF9nZXRfZnJhbWVfYm9yZGVyKFdlYktpdERPTUhUTUxGcmFtZUVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQKICAqIEB2
YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfc2V0X2ZyYW1lX2JvcmRlcihX
ZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAv
KioKQEAgLTcxLDggKzc1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X3NldF9m
cmFtZV9ib3JkZXIoV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZiwKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2Rv
bV9odG1sX2ZyYW1lX2VsZW1lbnRfZ2V0X2xvbmdfZGVzYyhXZWJLaXRET01IVE1MRnJhbWVFbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZnJh
bWVfZWxlbWVudF9nZXRfbG9uZ19kZXNjKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfc2V0X2xvbmdfZGVzYyhXZWJLaXRET01IVE1M
RnJhbWVFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTg5LDgg
Kzk3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X3NldF9sb25nX2Rlc2MoV2Vi
S2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZiwgY29uCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTEZyYW1lRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9mcmFt
ZV9lbGVtZW50X2dldF9tYXJnaW5faGVpZ2h0KFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNl
bGYpOwogCiAvKioKQEAgLTk4LDggKzEwOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxl
bWVudF9nZXRfbWFyZ2luX2hlaWdodChXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmKQog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2No
YXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfc2V0X21hcmdpbl9oZWlnaHQoV2ViS2l0RE9NSFRN
TEZyYW1lRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMDcs
OCArMTE5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X3NldF9tYXJnaW5faGVp
Z2h0KFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYsCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTEZyYW1lRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9m
cmFtZV9lbGVtZW50X2dldF9tYXJnaW5fd2lkdGgoV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMTE2LDggKzEzMCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZnJhbWVf
ZWxlbWVudF9nZXRfbWFyZ2luX3dpZHRoKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfc2V0X21hcmdpbl93aWR0aChXZWJLaXRET01I
VE1MRnJhbWVFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEy
NSw4ICsxNDEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfc2V0X21hcmdpbl93
aWR0aChXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmLAogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxGcmFtZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxf
ZnJhbWVfZWxlbWVudF9nZXRfbmFtZShXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmKTsK
IAogLyoqCkBAIC0xMzQsOCArMTUyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50
X2dldF9uYW1lKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1s
X2ZyYW1lX2VsZW1lbnRfc2V0X25hbWUoV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNDMsOCArMTYzLDEwIEBAIHdlYmtpdF9k
b21faHRtbF9mcmFtZV9lbGVtZW50X3NldF9uYW1lKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQq
IHNlbGYsIGNvbnN0IGdjCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudAog
ICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dF
QktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9n
ZXRfbm9fcmVzaXplKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTE1Miw4ICsxNzQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfZ2V0X25vX3Jl
c2l6ZShXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MRnJhbWVFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9m
cmFtZV9lbGVtZW50X3NldF9ub19yZXNpemUoV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2Vs
ZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTE2MSw4ICsxODUsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2ZyYW1lX2VsZW1lbnRfc2V0X25vX3Jlc2l6ZShXZWJLaXRET01IVE1MRnJhbWVFbGVt
ZW50KiBzZWxmLCBnYm8KICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50CiAg
KgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9E
RVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfZ2V0X3Njcm9s
bGluZyhXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNzAsOCAr
MTk2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF9zY3JvbGxpbmcoV2Vi
S2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TEZyYW1lRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVu
dF9zZXRfc2Nyb2xsaW5nKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTc5LDggKzIwNywxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
ZnJhbWVfZWxlbWVudF9zZXRfc2Nyb2xsaW5nKFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNl
bGYsIGNvbgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9nZXRfc3JjKFdlYktpdERP
TUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE4OCw4ICsyMTgsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX2ZyYW1lX2VsZW1lbnRfZ2V0X3NyYyhXZWJLaXRET01IVE1MRnJhbWVFbGVt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50CiAgKiBA
dmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X3NldF9zcmMoV2ViS2l0RE9N
SFRNTEZyYW1lRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0x
OTcsOCArMjI5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X3NldF9zcmMoV2Vi
S2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoCiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTEZyYW1lRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTog
QSAjV2ViS2l0RE9NRG9jdW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Eb2N1bWVudCoK
K1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTURvY3VtZW50Kgogd2Via2l0X2RvbV9odG1sX2Zy
YW1lX2VsZW1lbnRfZ2V0X2NvbnRlbnRfZG9jdW1lbnQoV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtMjA2LDggKzI0MCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZnJh
bWVfZWxlbWVudF9nZXRfY29udGVudF9kb2N1bWVudChXZWJLaXRET01IVE1MRnJhbWVFbGVtZW50
KiBzZQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQKICAqCiAgKiBSZXR1
cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTURPTVdpbmRvdworICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIFdlYktpdERPTURPTVdpbmRvdyoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTURPTVdp
bmRvdyoKIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF9jb250ZW50X3dpbmRvdyhX
ZWJLaXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMTUsOCArMjUxLDEw
IEBAIHdlYmtpdF9kb21faHRtbF9mcmFtZV9lbGVtZW50X2dldF9jb250ZW50X3dpbmRvdyhXZWJL
aXRET01IVE1MRnJhbWVFbGVtZW50KiBzZWxmCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEZy
YW1lRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xv
bmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVu
dF9nZXRfd2lkdGgoV2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
MjI0LDggKzI2MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfZWxlbWVudF9nZXRfd2lkdGgo
V2ViS2l0RE9NSFRNTEZyYW1lRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTEZyYW1lRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVf
ZWxlbWVudF9nZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxGcmFtZUVsZW1lbnQqIHNlbGYpOwogCiBH
X0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxGcmFtZVNldEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxGcmFtZVNldEVsZW1lbnQuY3BwCmluZGV4IDc1YmNlNDMzODBjM2RjN2NjMDdjMTk5OWRl
MDAxZDQ3MjNjMWY3MzAuLmIxZWRlNWI0M2YxYTIyMGZmMzc1ZDVkZGIzMzk1ZWVhOGJmOGI1NTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MRnJhbWVTZXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZy
YW1lU2V0RWxlbWVudC5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJF
Q0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxGcmFtZVNldEVs
ZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MRnJhbWVTZXRFbGVtZW50KiBvYmopCkBAIC0yMDQsMyAr
MjA2LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfZnJhbWVfc2V0X2VsZW1lbnRfc2V0X3Jvd3Mo
V2ViS2l0RE9NSFRNTEZyYW1lU2V0RWxlbWVudCogc2UKICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6cm93c0F0dHIsIGNvbnZl
cnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxGcmFtZVNldEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MRnJhbWVTZXRFbGVtZW50
LmgKaW5kZXggYmEyYjFiZDAxM2ExZWQ4OGI2OGM0MDdjNWY1NjgxYzBmOTNkOTg0Yy4uMjUyMDhm
MzRhN2ViYmFkOTBiMjQ3ZDk0OTA5MDI4MjkyZTZiOWFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxG
cmFtZVNldEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEZyYW1lU2V0RWxlbWVudC5oCkBAIC00NSw3
ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTEZyYW1lU2V0RWxlbWVudENsYXNzIHsKICAg
ICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9B
UEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfZnJhbWVf
c2V0X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX2ZyYW1lX3NldF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxGcmFtZVNldEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hh
cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJr
aXRfZG9tX2h0bWxfZnJhbWVfc2V0X2VsZW1lbnRfZ2V0X2NvbHMoV2ViS2l0RE9NSFRNTEZyYW1l
U2V0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2ZyYW1lX3NldF9lbGVtZW50X2dldF9jb2xzKFdlYktpdERPTUhUTUxGcmFtZVNldEVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxGcmFtZVNldEVsZW1lbnQKICAq
IEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2ZyYW1lX3NldF9lbGVtZW50X3NldF9jb2xzKFdl
YktpdERPTUhUTUxGcmFtZVNldEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAK
IC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ZyYW1lX3NldF9lbGVtZW50
X3NldF9jb2xzKFdlYktpdERPTUhUTUxGcmFtZVNldEVsZW1lbnQqIHNlbGYsIGMKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MRnJhbWVTZXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2No
YXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Vi
a2l0X2RvbV9odG1sX2ZyYW1lX3NldF9lbGVtZW50X2dldF9yb3dzKFdlYktpdERPTUhUTUxGcmFt
ZVNldEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2LDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9mcmFtZV9zZXRfZWxlbWVudF9nZXRfcm93cyhXZWJLaXRET01IVE1MRnJhbWVTZXRFbGVt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MRnJhbWVTZXRFbGVtZW50CiAg
KiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBS
RUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9mcmFtZV9zZXRfZWxlbWVudF9zZXRfcm93cyhX
ZWJLaXRET01IVE1MRnJhbWVTZXRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwog
CiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIUkVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxIUkVsZW1lbnQuY3BwCmluZGV4IDliMDEwYmYyZjc0YzU0MDFkNjMzOWZiY2UzMmQ0MmEzNTlh
ZTA0OTguLjJmNmUyNDBiMTIyZDA5Yjc2NzFmMzhmODJjZDE1NWYxNzU4OGUyNzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MSFJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEhSRWxlbWVudC5jcHAKQEAg
LTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxIUkVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MSFJF
bGVtZW50KiBvYmopCkBAIC0yNzQsMyArMjc2LDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfaHJf
ZWxlbWVudF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRNTEhSRWxlbWVudCogc2VsZiwgY29uc3QgZ2MK
ICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhU
TUxOYW1lczo6d2lkdGhBdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdO
T1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSFJFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTEhSRWxlbWVudC5oCmluZGV4IDZmYWNiYzBlZGY1MGM0NGVkZDUyYjdiODRjN2FmNjA5MDE3
OWMzOGQuLmYwM2QwN2VkYWIxZjA3ZDczZjllMjRiYzAzZWUxMDFmM2I5MTRhZGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MSFJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIUkVsZW1lbnQuaApAQCAtNDUs
NyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxIUkVsZW1lbnRDbGFzcyB7CiAgICAgV2Vi
S2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdU
eXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2hyX2VsZW1lbnRf
Z2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1s
X2hyX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEhS
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIq
CitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9ocl9lbGVtZW50X2dl
dF9hbGlnbihXZWJLaXRET01IVE1MSFJFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2
NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaHJfZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRN
TEhSRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEhSRWxlbWVudAog
ICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaHJfZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0
RE9NSFRNTEhSRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC03
MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaHJfZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0
RE9NSFRNTEhSRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTEhSRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0
bWxfaHJfZWxlbWVudF9nZXRfbm9fc2hhZGUoV2ViS2l0RE9NSFRNTEhSRWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtODAsOCArODYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2hyX2VsZW1lbnRfZ2V0
X25vX3NoYWRlKFdlYktpdERPTUhUTUxIUkVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxIUkVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2hy
X2VsZW1lbnRfc2V0X25vX3NoYWRlKFdlYktpdERPTUhUTUxIUkVsZW1lbnQqIHNlbGYsIGdib29s
ZWFuIHZhbHVlKTsKIAogLyoqCkBAIC04OSw4ICs5NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaHJf
ZWxlbWVudF9zZXRfbm9fc2hhZGUoV2ViS2l0RE9NSFRNTEhSRWxlbWVudCogc2VsZiwgZ2Jvb2xl
YW4gdgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxIUkVsZW1lbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2No
YXIqCiB3ZWJraXRfZG9tX2h0bWxfaHJfZWxlbWVudF9nZXRfc2l6ZShXZWJLaXRET01IVE1MSFJF
bGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC05OCw4ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9odG1s
X2hyX2VsZW1lbnRfZ2V0X3NpemUoV2ViS2l0RE9NSFRNTEhSRWxlbWVudCogc2VsZik7CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTEhSRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfaHJfZWxlbWVudF9zZXRfc2l6ZShXZWJLaXRET01IVE1MSFJFbGVtZW50KiBzZWxmLCBj
b25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2hyX2VsZW1lbnRfc2V0X3NpemUoV2ViS2l0RE9NSFRNTEhSRWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHYKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSFJFbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBS
RUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2hyX2VsZW1lbnRfZ2V0X3dpZHRoKFdlYktp
dERPTUhUTUxIUkVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTExNiw4ICsxMzAsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX2hyX2VsZW1lbnRfZ2V0X3dpZHRoKFdlYktpdERPTUhUTUxIUkVsZW1lbnQq
IHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxIUkVsZW1lbnQKICAqIEB2YWx1ZTog
QSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9p
ZAogd2Via2l0X2RvbV9odG1sX2hyX2VsZW1lbnRfc2V0X3dpZHRoKFdlYktpdERPTUhUTUxIUkVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTEhlYWRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSGVhZEVsZW1lbnQuY3BwCmlu
ZGV4IDk2NWY3Yzk0NmRjMzM2NWRkODFjYWZkM2Y4ZWRiNTkzODZjZWI1MTQuLmVkNDY5ZWM5ZDg2
MDAwMDAwNzcyZDA4ZmYxZGZkNDNkYmI5NjE2MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSGVhZEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSGVhZEVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4IEBA
CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19H
TlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBX
ZWJLaXRET01IVE1MSGVhZEVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MSGVhZEVsZW1lbnQqIG9i
aikKQEAgLTE2OCwzICsxNzAsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9oZWFkX2VsZW1lbnRf
c2V0X3Byb2ZpbGUoV2ViS2l0RE9NSFRNTEhlYWRFbGVtZW50KiBzZWxmLCBjbwogICAgIGl0ZW0t
PnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpw
cm9maWxlQXR0ciwgY29udmVydGVkVmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBS
RUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEhlYWRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEhl
YWRFbGVtZW50LmgKaW5kZXggY2U4MTZjZTY5NGVkMTVjYjRjMDJmYWZiMGIyNWMyYTFmZTc5Mjll
NC4uOWZjZGM0ZjIxMzdmYjE3OTY4YjNmODJmMzk2NjQxZTMwMTVkNTRiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxIZWFkRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSGVhZEVsZW1lbnQuaApAQCAtNDUs
NyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxIZWFkRWxlbWVudENsYXNzIHsKICAgICBX
ZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkg
R1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfaGVhZF9lbGVt
ZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9oZWFkX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTEhlYWRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2hlYWRf
ZWxlbWVudF9nZXRfcHJvZmlsZShXZWJLaXRET01IVE1MSGVhZEVsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9oZWFkX2VsZW1lbnRfZ2V0X3By
b2ZpbGUoV2ViS2l0RE9NSFRNTEhlYWRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MSGVhZEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2hlYWRf
ZWxlbWVudF9zZXRfcHJvZmlsZShXZWJLaXRET01IVE1MSGVhZEVsZW1lbnQqIHNlbGYsIGNvbnN0
IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEhlYWRp
bmdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSGVhZGluZ0VsZW1lbnQuY3BwCmluZGV4IGNkYzRlMmVi
N2ViODZiYzU2M2Q5OTY1NTlmOWY4NzYxYTE1YzJhNDQuLjE3ZmUxYmMyZjA2ODBlYmQ0OTEwNzhl
MzFkMGFkNDZlN2FjMjE1NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSGVhZGluZ0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MSGVhZGluZ0VsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5j
bHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JF
R0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRE
T01IVE1MSGVhZGluZ0VsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MSGVhZGluZ0VsZW1lbnQqIG9i
aikKQEAgLTE2OCwzICsxNzAsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9oZWFkaW5nX2VsZW1l
bnRfc2V0X2FsaWduKFdlYktpdERPTUhUTUxIZWFkaW5nRWxlbWVudCogc2VsZgogICAgIGl0ZW0t
PnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjph
bGlnbkF0dHIsIGNvbnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVD
QVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIZWFkaW5nRWxlbWVudC5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxI
ZWFkaW5nRWxlbWVudC5oCmluZGV4IDQ3MDA2MmMwODhlOWFiY2Y2Mzg5ZmJjNWRkMzUxMDk1MDRm
MmEyYzIuLmMyYjQyZDEyZGVkZTEwZmU2OWE5YTE5MDQzNGIwODZiZWE5ZDM5M2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MSGVhZGluZ0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEhlYWRpbmdFbGVtZW50
LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MSGVhZGluZ0VsZW1lbnRD
bGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9Owog
Ci1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9o
dG1sX2hlYWRpbmdfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1Mywx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfaGVhZGluZ19lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxIZWFkaW5nRWxlbWVudAogICoKICAqIFJldHVybnM6IEEg
I2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioK
IHdlYmtpdF9kb21faHRtbF9oZWFkaW5nX2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxI
ZWFkaW5nRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2hlYWRpbmdfZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRNTEhlYWRpbmdFbGVt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSGVhZGluZ0VsZW1lbnQKICAq
IEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2hlYWRpbmdfZWxlbWVudF9zZXRfYWxpZ24oV2Vi
S2l0RE9NSFRNTEhlYWRpbmdFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiBH
X0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIdG1sRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TEh0bWxFbGVtZW50LmNwcAppbmRleCA2NWVjNzJkYmExZDJmNjY1YWE4YjQyYjNkNWI1YmNjYTM3
OWNjOTJiLi45MTdiMDY4OTgyYWU1ZjNiYTQ3MDQ5NTQzZWE5NTE3MWYyM2MyNmI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTEh0bWxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEh0bWxFbGVtZW50LmNw
cApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTEh0bWxFbGVtZW50KiBraXQoV2ViQ29yZTo6
SFRNTEh0bWxFbGVtZW50KiBvYmopCkBAIC0xNjYsMyArMTY4LDQgQEAgdm9pZCB3ZWJraXRfZG9t
X2h0bWxfaHRtbF9lbGVtZW50X3NldF92ZXJzaW9uKFdlYktpdERPTUhUTUxIdG1sRWxlbWVudCog
c2VsZiwgY28KICAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWRWYWx1ZSA9IFdURjo6U3RyaW5nOjpm
cm9tVVRGOCh2YWx1ZSk7CiAgICAgaXRlbS0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnZlcnNpb25BdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9
CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEh0
bWxFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTEh0bWxFbGVtZW50LmgKaW5kZXggMjYwMjBjNWRlZjdkZmMw
ZGZhMTM5MDIzYjlhYTY5MTBhOTRjZjYzMS4uOGM4ZWFmNzQ5YzQ0Njg5MzFiMDY1Yzc2MDM2N2Nh
ZDhjYzQ5MmU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxIdG1sRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MSHRtbEVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxI
dG1sRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9j
bGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3
ZWJraXRfZG9tX2h0bWxfaHRtbF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUz
LDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9odG1sX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEh0bWxFbGVtZW50CiAgKgogICogUmV0dXJuczog
QSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFy
Kgogd2Via2l0X2RvbV9odG1sX2h0bWxfZWxlbWVudF9nZXRfdmVyc2lvbihXZWJLaXRET01IVE1M
SHRtbEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9odG1sX2VsZW1lbnRfZ2V0X3ZlcnNpb24oV2ViS2l0RE9NSFRNTEh0bWxFbGVtZW50KiBz
ZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSHRtbEVsZW1lbnQKICAqIEB2YWx1ZTog
QSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9p
ZAogd2Via2l0X2RvbV9odG1sX2h0bWxfZWxlbWVudF9zZXRfdmVyc2lvbihXZWJLaXRET01IVE1M
SHRtbEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxJRnJhbWVFbGVt
ZW50LmNwcAppbmRleCBlYzI2OWM3YWYzZjYyMTc1NDYxOThhMjI2MWU5NmIzMWNiOWFmNzRmLi4y
OGI1MWNlOTBlOWYzZjUwNDBkYjE2MTc2NmU3NjA0YmNmNGRmZjk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTElGcmFtZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudC5jcHAKQEAg
LTM4LDYgKzM4LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRN
TElGcmFtZUVsZW1lbnQqIG9iaikKQEAgLTU0MCwzICs1NDIsNCBAQCBXZWJLaXRET01ET01XaW5k
b3cqIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9nZXRfY29udGVudF93aW5kb3coV2Vi
S2l0RE9NSAogICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKIH0K
IAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxJ
RnJhbWVFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQuaAppbmRleCA3YmM3ZTc3NmUy
MTZmYjhkNTgwY2MxZmJjYWFjNDRiNTUyZDU1NzU4Li41OWY0NWRmMTc2YzU1NTdmYjU3MDQxYWU1
MDcyY2I4ZDM0MjAxNmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTElGcmFtZUVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktp
dERPTUhUTUxJRnJhbWVFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xh
c3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FU
RUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsK
IAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRf
Z2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X2Fs
aWduKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2
NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERP
TUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSUZy
YW1lRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRf
c2V0X2FsaWduKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciog
dmFsdWUpOwogCiAvKioKQEAgLTcxLDggKzc1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pZnJhbWVf
ZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQqIHNlbGYsIGNvbnN0
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2No
YXIqCiB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X2ZyYW1lX2JvcmRlcihXZWJL
aXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtODAsOCArODYsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X2dldF9mcmFtZV9ib3JkZXIoV2ViS2l0RE9N
SFRNTElGcmFtZUVsZW1lbnQqIHNlbGYKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSUZyYW1l
RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfc2V0
X2ZyYW1lX2JvcmRlcihXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZiwgY29uc3QgZ2No
YXIqIHZhbHVlKTsKIAogLyoqCkBAIC04OSw4ICs5NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaWZy
YW1lX2VsZW1lbnRfc2V0X2ZyYW1lX2JvcmRlcihXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCog
c2VsZgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50CiAgKgogICogUmV0
dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVE
IGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X2dldF9oZWlnaHQoV2ViS2l0
RE9NSFRNTElGcmFtZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTk4LDggKzEwOCwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X2hlaWdodChXZWJLaXRET01IVE1MSUZy
YW1lRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1l
bnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X3NldF9oZWln
aHQoV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7
CiAKIC8qKgpAQCAtMTA3LDggKzExOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1l
bnRfc2V0X2hlaWdodChXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZiwgY29ucwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAj
Z2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgog
d2Via2l0X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X2dldF9sb25nX2Rlc2MoV2ViS2l0RE9NSFRN
TElGcmFtZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTExNiw4ICsxMzAsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X2dldF9sb25nX2Rlc2MoV2ViS2l0RE9NSFRNTElGcmFt
ZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50
CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9zZXRfbG9uZ19k
ZXNjKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUp
OwogCiAvKioKQEAgLTEyNSw4ICsxNDEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lmcmFtZV9lbGVt
ZW50X3NldF9sb25nX2Rlc2MoV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQqIHNlbGYsIGMKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudAogICoKICAqIFJldHVybnM6IEEg
I2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioK
IHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9nZXRfbWFyZ2luX2hlaWdodChXZWJLaXRE
T01IVE1MSUZyYW1lRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTM0LDggKzE1MiwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X21hcmdpbl9oZWlnaHQoV2ViS2l0RE9N
SFRNTElGcmFtZUVsZW1lbnQqIHNlbAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJRnJhbWVF
bGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9zZXRf
bWFyZ2luX2hlaWdodChXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZiwgY29uc3QgZ2No
YXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNDMsOCArMTYzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9p
ZnJhbWVfZWxlbWVudF9zZXRfbWFyZ2luX2hlaWdodChXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVu
dCogc2VsCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X21hcmdpbl93aWR0
aChXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTUyLDggKzE3
NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X21hcmdpbl93aWR0aChX
ZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZgogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxJRnJhbWVFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxl
bWVudF9zZXRfbWFyZ2luX3dpZHRoKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmLCBj
b25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE2MSw4ICsxODUsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2lmcmFtZV9lbGVtZW50X3NldF9tYXJnaW5fd2lkdGgoV2ViS2l0RE9NSFRNTElGcmFt
ZUVsZW1lbnQqIHNlbGYKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudAog
ICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRf
REVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9nZXRfbmFt
ZShXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTcwLDggKzE5
NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0RE9N
SFRNTElGcmFtZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJRnJh
bWVFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9z
ZXRfbmFtZShXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlKTsKIAogLyoqCkBAIC0xNzksOCArMjA3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pZnJhbWVf
ZWxlbWVudF9zZXRfbmFtZShXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZiwgY29uc3QK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9nZXRfc2Nyb2xsaW5nKFdlYktpdERP
TUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xODgsOCArMjE4LDEwIEBAIHdl
YmtpdF9kb21faHRtbF9pZnJhbWVfZWxlbWVudF9nZXRfc2Nyb2xsaW5nKFdlYktpdERPTUhUTUxJ
RnJhbWVFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSUZyYW1lRWxl
bWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfc2V0X3Nj
cm9sbGluZyhXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlKTsKIAogLyoqCkBAIC0xOTcsOCArMjI5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pZnJhbWVf
ZWxlbWVudF9zZXRfc2Nyb2xsaW5nKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmLCBj
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2No
YXIqCiB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X3NyYyhXZWJLaXRET01IVE1M
SUZyYW1lRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjA2LDggKzI0MCwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfZ2V0X3NyYyhXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVu
dCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElGcmFtZUVsZW1lbnQKICAqIEB2
YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X3NldF9zcmMoV2ViS2l0RE9N
SFRNTElGcmFtZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAt
MjE1LDggKzI1MSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfc2V0X3NyYyhX
ZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCogc2VsZiwgY29uc3QgZwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxJRnJhbWVFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9o
dG1sX2lmcmFtZV9lbGVtZW50X2dldF93aWR0aChXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMjI0LDggKzI2MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaWZyYW1l
X2VsZW1lbnRfZ2V0X3dpZHRoKFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxmKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hh
cgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJr
aXRfZG9tX2h0bWxfaWZyYW1lX2VsZW1lbnRfc2V0X3dpZHRoKFdlYktpdERPTUhUTUxJRnJhbWVF
bGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTIzMyw4ICsyNzMs
MTAgQEAgd2Via2l0X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X3NldF93aWR0aChXZWJLaXRET01I
VE1MSUZyYW1lRWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
SUZyYW1lRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0
RE9NRG9jdW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Eb2N1bWVudCoKK1dFQktJVF9E
RVBSRUNBVEVEIFdlYktpdERPTURvY3VtZW50Kgogd2Via2l0X2RvbV9odG1sX2lmcmFtZV9lbGVt
ZW50X2dldF9jb250ZW50X2RvY3VtZW50KFdlYktpdERPTUhUTUxJRnJhbWVFbGVtZW50KiBzZWxm
KTsKIAogLyoqCkBAIC0yNDIsOCArMjg0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pZnJhbWVfZWxl
bWVudF9nZXRfY29udGVudF9kb2N1bWVudChXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudCoKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MSUZyYW1lRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0
cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NRE9NV2luZG93CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2Vi
S2l0RE9NRE9NV2luZG93KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRE9NV2luZG93Kgog
d2Via2l0X2RvbV9odG1sX2lmcmFtZV9lbGVtZW50X2dldF9jb250ZW50X3dpbmRvdyhXZWJLaXRE
T01IVE1MSUZyYW1lRWxlbWVudCogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTEltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXgg
ZTRlYzRkMzQ2NTA2YmFhNjNkYjM2MGRiODdlYzExMWI4M2FmMmVkYi4uNzViYzk2MjUzY2Y0NzEx
NTBkMDQ0NTFmOTdiNDY0MTY3YzE0ZDlhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxJbWFnZUVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAog
I2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05V
Q19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2Vi
S2l0RE9NSFRNTEltYWdlRWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQqIG9i
aikKQEAgLTcwNSwzICs3MDcsNCBAQCBnbG9uZyB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVu
dF9nZXRfeShXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKQogICAgIHJldHVybiByZXN1
bHQ7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudC5oCmluZGV4IGI0OTI4
MzQ4ZjRjMzU3ZGMzMGMwM2RkZTJiM2MzNGY3NjI2ZTliNDMuLmJkNGNiNThmZDE5MDdjMWM0NWMx
YzZmMDBmNzNkNzNhYjk3NzU2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dl
YktpdERPTUhUTUxJbWFnZUVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRD
bGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVD
QVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7
CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRf
Z2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAog
ICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRf
REVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF9uYW1l
KFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEw
IEBAIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhUTUxJ
bWFnZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbWFnZUVsZW1l
bnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0X25hbWUo
V2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAog
LyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9zZXRf
bmFtZShXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBjb25zdCBnYwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRf
ZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtODAsOCArODYsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdl
X2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERPTUhUTUxJbWFnZUVsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtODksOCArOTcsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERPTUhUTUxJbWFn
ZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGcKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW1hZ2VF
bGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioK
K1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRf
Z2V0X2FsdChXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC05OCw4
ICsxMDgsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X2FsdChXZWJLaXRE
T01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW1h
Z2VFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X3Nl
dF9hbHQoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVl
KTsKIAogLyoqCkBAIC0xMDcsOCArMTE5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVt
ZW50X3NldF9hbHQoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoCiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEg
I2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioK
IHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF9ib3JkZXIoV2ViS2l0RE9NSFRNTElt
YWdlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTE2LDggKzEzMCwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfYm9yZGVyKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQq
IHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQKICAqIEB2YWx1
ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0X2JvcmRlcihXZWJLaXRET01I
VE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTEy
NSw4ICsxNDEsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0X2JvcmRlcihX
ZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxJbWFnZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1sX2lt
YWdlX2VsZW1lbnRfZ2V0X2hlaWdodChXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsK
IAogLyoqCkBAIC0xMzQsOCArMTUyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50
X2dldF9oZWlnaHQoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAogICogQHZhbHVlOiBBICNnbG9uZwogICoKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0
bWxfaW1hZ2VfZWxlbWVudF9zZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNl
bGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCkBAIC0xNDMsOCArMTYzLDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9pbWFnZV9lbGVtZW50X3NldF9oZWlnaHQoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCog
c2VsZiwgZ2xvbmcKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJF
Q0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF9oc3BhY2UoV2Vi
S2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTUyLDggKzE3NCwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfaHNwYWNlKFdlYktpdERPTUhUTUxJ
bWFnZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbWFnZUVsZW1l
bnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0X2hzcGFj
ZShXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAKIC8qKgpA
QCAtMTYxLDggKzE4NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9zZXRfaHNw
YWNlKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYsIGdsb25nCiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJr
aXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfaXNfbWFwKFdlYktpdERPTUhUTUxJbWFnZUVs
ZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE3MCw4ICsxOTYsMTAgQEAgd2Via2l0X2RvbV9odG1s
X2ltYWdlX2VsZW1lbnRfZ2V0X2lzX21hcChXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxm
KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50CiAgKiBAdmFsdWU6IEEg
I2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZv
aWQKIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X3NldF9pc19tYXAoV2ViS2l0RE9NSFRN
TEltYWdlRWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTE3OSw4ICsy
MDcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0X2lzX21hcChXZWJLaXRE
T01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBnYm9vbGUKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MSW1hZ2VFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2ltYWdl
X2VsZW1lbnRfZ2V0X2xvbmdfZGVzYyhXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsK
IAogLyoqCkBAIC0xODgsOCArMjE4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50
X2dldF9sb25nX2Rlc2MoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfaW1hZ2VfZWxlbWVudF9zZXRfbG9uZ19kZXNjKFdlYktpdERPTUhUTUxJbWFnZUVsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTk3LDggKzIyOSwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9zZXRfbG9uZ19kZXNjKFdlYktpdERPTUhU
TUxJbWFnZUVsZW1lbnQqIHNlbGYsIGNvbgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbWFn
ZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFy
KgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVu
dF9nZXRfc3JjKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTIw
Niw4ICsyNDAsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X3NyYyhXZWJL
aXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
SW1hZ2VFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50
X3NldF9zcmMoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlKTsKIAogLyoqCkBAIC0yMTUsOCArMjUxLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbWFnZV9l
bGVtZW50X3NldF9zcmMoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZiwgY29uc3QgZ2No
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF91c2VfbWFwKFdlYktpdERPTUhU
TUxJbWFnZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTIyNCw4ICsyNjIsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X3VzZV9tYXAoV2ViS2l0RE9NSFRNTEltYWdlRWxl
bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAogICog
QHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9zZXRfdXNlX21hcChXZWJL
aXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioK
QEAgLTIzMyw4ICsyNzMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0X3Vz
ZV9tYXAoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21f
aHRtbF9pbWFnZV9lbGVtZW50X2dldF92c3BhY2UoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMjQyLDggKzI4NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2Vf
ZWxlbWVudF9nZXRfdnNwYWNlKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0X3ZzcGFjZShXZWJLaXRET01IVE1MSW1hZ2VFbGVt
ZW50KiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAKIC8qKgpAQCAtMjUxLDggKzI5NSwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9zZXRfdnNwYWNlKFdlYktpdERPTUhUTUxJbWFnZUVs
ZW1lbnQqIHNlbGYsIGdsb25nCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJ
VF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfd2lk
dGgoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjYwLDggKzMw
NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfd2lkdGgoV2ViS2l0RE9N
SFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdl
RWxlbWVudAogICogQHZhbHVlOiBBICNnbG9uZwogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9zZXRf
d2lkdGgoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAv
KioKQEAgLTI2OSw4ICszMTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfc2V0
X3dpZHRoKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYsIGdsb25nIHYKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xl
YW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4K
IHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF9jb21wbGV0ZShXZWJLaXRET01IVE1M
SW1hZ2VFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNzgsOCArMzI4LDEwIEBAIHdlYmtpdF9k
b21faHRtbF9pbWFnZV9lbGVtZW50X2dldF9jb21wbGV0ZShXZWJLaXRET01IVE1MSW1hZ2VFbGVt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBS
RUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X2xvd3NyYyhX
ZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yODcsOCArMzM5LDEw
IEBAIHdlYmtpdF9kb21faHRtbF9pbWFnZV9lbGVtZW50X2dldF9sb3dzcmMoV2ViS2l0RE9NSFRN
TEltYWdlRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxl
bWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9zZXRfbG93
c3JjKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7
CiAKIC8qKgpAQCAtMjk2LDggKzM1MCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVu
dF9zZXRfbG93c3JjKFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2ds
b25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJr
aXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfbmF0dXJhbF9oZWlnaHQoV2ViS2l0RE9NSFRN
TEltYWdlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMzA1LDggKzM2MSwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfbmF0dXJhbF9oZWlnaHQoV2ViS2l0RE9NSFRNTElt
YWdlRWxlbWVudCogc2VsZgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRf
REVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1sX2ltYWdlX2VsZW1lbnRfZ2V0X25hdHVy
YWxfd2lkdGgoV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMzE0
LDggKzM3MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRfbmF0dXJhbF93
aWR0aChXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKQogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxJbWFnZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1sX2lt
YWdlX2VsZW1lbnRfZ2V0X3goV2ViS2l0RE9NSFRNTEltYWdlRWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtMzIzLDggKzM4MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW1hZ2VfZWxlbWVudF9nZXRf
eChXZWJLaXRET01IVE1MSW1hZ2VFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MSW1hZ2VFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF9pbWFn
ZV9lbGVtZW50X2dldF95KFdlYktpdERPTUhUTUxJbWFnZUVsZW1lbnQqIHNlbGYpOwogCiBHX0VO
RF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxJ
bnB1dEVsZW1lbnQuY3BwCmluZGV4IGQ3ZDdmZmIxYmI1MGQ0OTU4ZmM1M2M0NDQ3Yjg2NzRiYTA2
ZjUyNTEuLmExYTIwZjViMDQ2Zjg1MGI3MTU4NmQ3NDczNTI0NTMwODllMWYxOWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudC5j
cHAKQEAgLTQwLDYgKzQwLDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIGtpdChXZWJDb3Jl
OjpIVE1MSW5wdXRFbGVtZW50KiBvYmopCkBAIC0xMDA3LDMgKzEwMDksNCBAQCB2b2lkIHdlYmtp
dF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9lZGl0aW5nX3ZhbHVlKFdlYktpdERPTUhUTUxJ
bnB1dEVsZW1lbnQqCiAKICAgV2ViS2l0Ojpjb3JlKHNlbGYpLT5zZXRFZGl0aW5nVmFsdWUoV1RG
OjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKSk7CiB9CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNB
VElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxJbnB1
dEVsZW1lbnQuaAppbmRleCA1NDMzNDQyZWRkOGY3MGQ5ODU1MmMyNzdlNzNhNDA1ZjMzMzZhZmYy
Li45NmFlYmIyNGRiMjljM2JlNzYyNDM5MzJlNjkxNTU3NzllMGMxODk1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTQ1
LDE1ICs0NSwxNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnRDbGFzcyB7CiAg
ICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRf
QVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2lucHV0
X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgogICogd2Via2l0X2RvbV9odG1sX2lucHV0
X2VsZW1lbnRfc2VsZWN0OgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2VsZWN0KFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQq
IHNlbGYpOwogCiAvKioKQEAgLTYxLDggKzYzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9l
bGVtZW50X3NlbGVjdChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0
X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2FjY2VwdChXZWJLaXRET01IVE1MSW5wdXRFbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC03MCw4ICs3NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5w
dXRfZWxlbWVudF9nZXRfYWNjZXB0KFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2No
YXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2FjY2VwdChXZWJLaXRET01IVE1MSW5wdXRF
bGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTc5LDggKzg1LDEw
IEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9hY2NlcHQoV2ViS2l0RE9NSFRN
TElucHV0RWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5w
dXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hh
cioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1l
bnRfZ2V0X2FsdChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04
OCw4ICs5NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfYWx0KFdlYktp
dERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJ
bnB1dEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRf
c2V0X2FsdChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUpOwogCiAvKioKQEAgLTk3LDggKzEwNywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxl
bWVudF9zZXRfYWx0KFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaAog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBn
Ym9vbGVhbgogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2F1dG9mb2N1cyhXZWJL
aXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMDYsOCArMTE4LDEwIEBA
IHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9hdXRvZm9jdXMoV2ViS2l0RE9NSFRN
TElucHV0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxl
bWVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRf
YXV0b2ZvY3VzKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVl
KTsKIAogLyoqCkBAIC0xMTUsOCArMTI5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVt
ZW50X3NldF9hdXRvZm9jdXMoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgZ2JvCiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEg
I2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdi
b29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfZGVmYXVsdF9jaGVja2Vk
KFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEyNSw4ICsxNDEs
MTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2RlZmF1bHRfY2hlY2tlZChX
ZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWwKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAq
CiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVE
IHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9kZWZhdWx0X2NoZWNrZWQo
V2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioK
QEAgLTEzNCw4ICsxNTIsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2Rl
ZmF1bHRfY2hlY2tlZChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWwKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4K
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdl
YmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9jaGVja2VkKFdlYktpdERPTUhUTUxJbnB1
dEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE0Myw4ICsxNjMsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2lucHV0X2VsZW1lbnRfZ2V0X2NoZWNrZWQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICogQHZhbHVl
OiBBICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfY2hlY2tlZChXZWJLaXRE
T01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTUy
LDggKzE3NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfY2hlY2tlZChX
ZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBnYm9vbAogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxJbnB1dEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2Rv
bV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxJbnB1dEVsZW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTE2MSw4ICsxODUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lu
cHV0X2VsZW1lbnRfZ2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9p
ZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2Rpc2FibGVkKFdlYktpdERPTUhU
TUxJbnB1dEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBAIC0xNzAsOCAr
MTk2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9kaXNhYmxlZChXZWJL
aXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBnYm9vCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTElucHV0RWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2Vi
S2l0RE9NSFRNTEZvcm1FbGVtZW50CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTEZvcm1F
bGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50Kgogd2Vi
a2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X2Zvcm0oV2ViS2l0RE9NSFRNTElucHV0RWxl
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTc5LDggKzIwNywxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
aW5wdXRfZWxlbWVudF9nZXRfZm9ybShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKgogICogUmV0dXJuczog
KHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01GaWxlTGlzdAorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdl
YktpdERPTUZpbGVMaXN0KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRmlsZUxpc3QqCiB3
ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfZmlsZXMoV2ViS2l0RE9NSFRNTElucHV0
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTg4LDggKzIxOCwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfaW5wdXRfZWxlbWVudF9nZXRfZmlsZXMoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICogQHZhbHVlOiBB
ICNXZWJLaXRET01GaWxlTGlzdAogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfZmlsZXMoV2Vi
S2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgV2ViS2l0RE9NRmlsZUxpc3QqIHZhbHVlKTsK
IAogLyoqCkBAIC0xOTcsOCArMjI5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50
X3NldF9maWxlcyhXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBXZWJLaXRECiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2d1
bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGd1bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vsb25nCiB3
ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfaGVpZ2h0KFdlYktpdERPTUhUTUxJbnB1
dEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTIwNiw4ICsyNDAsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX2lucHV0X2VsZW1lbnRfZ2V0X2hlaWdodChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBz
ZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKiBAdmFsdWU6
IEEgI2d1bG9uZwogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2
b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfaGVpZ2h0KFdlYktpdERPTUhU
TUxJbnB1dEVsZW1lbnQqIHNlbGYsIGd1bG9uZyB2YWx1ZSk7CiAKIC8qKgpAQCAtMjE1LDggKzI1
MSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfaGVpZ2h0KFdlYktpdERP
TUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGd1bG9uZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxJbnB1dEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1s
X2lucHV0X2VsZW1lbnRfZ2V0X2luZGV0ZXJtaW5hdGUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtMjI0LDggKzI2MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5w
dXRfZWxlbWVudF9nZXRfaW5kZXRlcm1pbmF0ZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBz
ZWxmKQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqIEB2YWx1ZTog
QSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2luZGV0ZXJtaW5hdGUoV2Vi
S2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAg
LTIzMyw4ICsyNzMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2luZGV0
ZXJtaW5hdGUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRt
bF9pbnB1dF9lbGVtZW50X2dldF9tYXhfbGVuZ3RoKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQq
IHNlbGYpOwogCiAvKioKQEAgLTI0Myw4ICsyODUsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0
X2VsZW1lbnRfZ2V0X21heF9sZW5ndGgoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7
CiAgKiBAdmFsdWU6IEEgI2dsb25nCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lucHV0
X2VsZW1lbnRfc2V0X21heF9sZW5ndGgoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwg
Z2xvbmcgdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0yNTIsOCArMjk2LDEwIEBA
IHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9tYXhfbGVuZ3RoKFdlYktpdERPTUhU
TUxJbnB1dEVsZW1lbnQqIHNlbGYsIGdsCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jv
b2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRf
ZWxlbWVudF9nZXRfbXVsdGlwbGUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtMjYxLDggKzMwNywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9n
ZXRfbXVsdGlwbGUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfbXVsdGlwbGUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVu
dCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTI3MCw4ICszMTgsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X211bHRpcGxlKFdlYktpdERPTUhUTUxJbnB1
dEVsZW1lbnQqIHNlbGYsIGdib28KICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVt
ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dF
QktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0
X25hbWUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjc5LDgg
KzMyOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfbmFtZShXZWJLaXRE
T01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MSW5w
dXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3Nl
dF9uYW1lKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1
ZSk7CiAKIC8qKgpAQCAtMjkwLDggKzM0MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxl
bWVudF9zZXRfbmFtZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBjb25zdCBnYwog
ICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KICAqCiAgKiBTaW5jZTogMi4xNgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1s
X2lucHV0X2VsZW1lbnRfZ2V0X3JlYWRfb25seShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC0yOTksOCArMzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9l
bGVtZW50X2dldF9yZWFkX29ubHkoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICogQHZhbHVlOiBBICNnYm9v
bGVhbgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3
ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfcmVhZF9vbmx5KFdlYktpdERPTUhUTUxJ
bnB1dEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBAIC0zMDgsOCArMzY0
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9yZWFkX29ubHkoV2ViS2l0
RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgZ2JvCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TElucHV0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2d1bG9uZworICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGd1bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vsb25nCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRf
ZWxlbWVudF9nZXRfc2l6ZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoq
CkBAIC0zMTgsOCArMzc2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9z
aXplKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNndWxv
bmcKICAqIEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRf
REVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfc2l6ZShX
ZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBndWxvbmcgdmFsdWUsIEdFcnJvcioqIGVy
cm9yKTsKIAogLyoqCkBAIC0zMjcsOCArMzg3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9l
bGVtZW50X3NldF9zaXplKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGd1bG9uZyB2
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9zcmMoV2ViS2l0RE9NSFRNTElu
cHV0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMzM2LDggKzM5OCwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfc3JjKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNl
bGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqIEB2YWx1ZTog
QSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9p
ZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X3NyYyhXZWJLaXRET01IVE1MSW5w
dXRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTM0NSw4ICs0
MDksMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X3NyYyhXZWJLaXRET01I
VE1MSW5wdXRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2gKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MSW5wdXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2lucHV0
X2VsZW1lbnRfZ2V0X2lucHV0X3R5cGUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtMzU0LDggKzQyMCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVu
dF9nZXRfaW5wdXRfdHlwZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9pbnB1dF90eXBlKFdlYktpdERPTUhUTUxJbnB1dEVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMzYzLDggKzQzMSwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfaW5wdXRfdHlwZShXZWJLaXRE
T01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBjbwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJ
bnB1dEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxl
bWVudF9nZXRfZGVmYXVsdF92YWx1ZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsK
IAogLyoqCkBAIC0zNzIsOCArNDQyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50
X2dldF9kZWZhdWx0X3ZhbHVlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpCiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgog
ICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRf
ZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfZGVmYXVsdF92YWx1ZShXZWJLaXRET01IVE1MSW5w
dXRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTM4MSw4ICs0
NTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2RlZmF1bHRfdmFsdWUo
V2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MSW5wdXRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2lucHV0
X2VsZW1lbnRfZ2V0X3ZhbHVlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTM5MCw4ICs0NjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0
X3ZhbHVlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2lu
cHV0X2VsZW1lbnRfc2V0X3ZhbHVlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMzk5LDggKzQ3NSwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfdmFsdWUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCog
c2VsZiwgY29uc3QgZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNndWxvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9E
RVBSRUNBVEVEIGd1bG9uZwogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X3dpZHRo
KFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTQwOCw4ICs0ODYs
MTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X3dpZHRoKFdlYktpdERPTUhU
TUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVs
ZW1lbnQKICAqIEB2YWx1ZTogQSAjZ3Vsb25nCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF93
aWR0aChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBndWxvbmcgdmFsdWUpOwogCiAv
KioKQEAgLTQxNyw4ICs0OTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0
X3dpZHRoKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGd1bG9uZwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVh
bgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgog
d2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X3dpbGxfdmFsaWRhdGUoV2ViS2l0RE9N
SFRNTElucHV0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNDI2LDggKzUwOCwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfd2lsbF92YWxpZGF0ZShXZWJLaXRET01IVE1M
SW5wdXRFbGVtZW50KiBzZWxmKQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRf
YWxpZ24oV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNDM1LDgg
KzUxOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0
RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElu
cHV0RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9z
ZXRfYWxpZ24oV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZh
bHVlKTsKIAogLyoqCkBAIC00NDQsOCArNTMwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9l
bGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBjb25zdCBn
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF91c2VfbWFwKFdlYktpdERPTUhU
TUxJbnB1dEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTQ1Myw4ICs1NDEsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0X3VzZV9tYXAoV2ViS2l0RE9NSFRNTElucHV0RWxl
bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudAogICog
QHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfdXNlX21hcChXZWJL
aXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioK
QEAgLTQ2NCw4ICs1NTQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X3Vz
ZV9tYXAoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZiwgY29uc3QKICAqIFJldHVybnM6
IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dF
QktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfZ2V0
X2NhcHR1cmVfdHlwZShXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC00NzQsOCArNTY2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X2dldF9jYXB0
dXJlX3R5cGUoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7CiAgKiBAdmFsdWU6IEEg
I2djaGFyCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRf
REVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfY2FwdHVy
ZV90eXBlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1
ZSk7CiAKIC8qKgpAQCAtNDgzLDggKzU3NywxMSBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxl
bWVudF9zZXRfY2FwdHVyZV90eXBlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsCiAg
KiBAaW5wdXQ6IEEgI1dlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSB3ZWJraXRfZG9tX2VsZW1l
bnRfaHRtbF9pbnB1dF9lbGVtZW50X2lzX3VzZXJfZWRpdGVkKCkgaW5zdGVhZC4KICAqLwotV0VC
S0lUX0FQSSBnYm9vbGVhbiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9pc19lZGl0ZWQo
V2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogaW5wdXQpOworV0VCS0lUX0RFUFJFQ0FURURfRk9S
KHdlYmtpdF9kb21fZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfaXNfdXNlcl9lZGl0ZWQpIGdi
b29sZWFuCit3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9pc19lZGl0ZWQoV2ViS2l0RE9N
SFRNTElucHV0RWxlbWVudCogaW5wdXQpOwogCiAvKioKICAqIHdlYmtpdF9kb21faHRtbF9pbnB1
dF9lbGVtZW50X2dldF9hdXRvX2ZpbGxlZDoKQEAgLTQ5Myw4ICs1OTAsMTAgQEAgV0VCS0lUX0FQ
SSBnYm9vbGVhbiB3ZWJraXRfZG9tX2h0bWxfaW5wdXRfZWxlbWVudF9pc19lZGl0ZWQoV2ViS2l0
RE9NSFRNTElucHV0RWwKICAqIFJldHVybnM6IEEgI2dib29sZWFuCiAgKgogICogU2luY2U6IDIu
MTYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ugd2Via2l0X2RvbV9lbGVtZW50X2h0bWxf
aW5wdXRfZWxlbWVudF9nZXRfYXV0b19maWxsZWQoKSBpbnN0ZWFkLgogICovCi1XRUJLSVRfQVBJ
IGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRF9GT1Iod2Via2l0X2RvbV9lbGVtZW50X2h0bWxf
aW5wdXRfZWxlbWVudF9nZXRfYXV0b19maWxsZWQpIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxf
aW5wdXRfZWxlbWVudF9nZXRfYXV0b19maWxsZWQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtNTAzLDggKzYwMiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfaW5wdXRf
ZWxlbWVudF9nZXRfYXV0b19maWxsZWQoV2ViS2l0RE9NSFRNTElucHV0RWxlbWVudCogc2VsZik7
CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2Ugd2Via2l0X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRfZWxlbWVudF9z
ZXRfYXV0b19maWxsZWQoKSBpbnN0ZWFkLgogICovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEX0ZPUih3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X3NldF9h
dXRvX2ZpbGxlZCkgdm9pZAogd2Via2l0X2RvbV9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2F1dG9f
ZmlsbGVkKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsK
IAogLyoqCkBAIC01MTMsOCArNjE0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50
X3NldF9hdXRvX2ZpbGxlZChXZWJLaXRET01IVE1MSW5wdXRFbGVtZW50KiBzZWxmLCBnCiAgKiBA
dmFsdWU6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2Ugd2Via2l0X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfZWRpdGlu
Z192YWx1ZSgpIGluc3RlYWQuCiAgKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RURfRk9SKHdlYmtpdF9kb21fZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2VkaXRpbmdf
dmFsdWUpIHZvaWQKIHdlYmtpdF9kb21faHRtbF9pbnB1dF9lbGVtZW50X3NldF9lZGl0aW5nX3Zh
bHVlKFdlYktpdERPTUhUTUxJbnB1dEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7
CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExJRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTExJRWxlbWVudC5jcHAKaW5kZXggNzEzMzFjMzY0ZGYyMWZhYTgzYzdmZDdlMjNmNTNmNzMw
ODU2Y2EzMC4uYzYwYWQ3ZmZiNjFkNjI2YTBiZTRlNGY1OWUwMjRjMzA3NTc2MTk3ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxMSUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTElFbGVtZW50LmNwcApA
QCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTExJRWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxM
SUVsZW1lbnQqIG9iaikKQEAgLTIwMiwzICsyMDQsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9s
aV9lbGVtZW50X3NldF92YWx1ZShXZWJLaXRET01IVE1MTElFbGVtZW50KiBzZWxmLCBnbG9uZyB2
YQogICAgIGl0ZW0tPnNldEludGVncmFsQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6dmFs
dWVBdHRyLCB2YWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MTElFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExJRWxlbWVudC5oCmluZGV4
IGNmZDFlMDU1NzljNGQyODM2ZWFmODA1OTNjN2Y1ZGE4NjIyYmU0MzguLjc3YjNkNTFjZTUzOWI0
ODYwYmQwYWIxNzM4MzIzYjkzMTkyNTYyYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTElFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxMSUVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dl
YktpdERPTUhUTUxMSUVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFz
cyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRF
RCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2xpX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8q
KgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2xpX2VsZW1lbnRfZ2V0X3R5cGUo
dm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExJRWxlbWVudAogICoKICAqIFJldHVy
bnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBn
Y2hhcioKIHdlYmtpdF9kb21faHRtbF9saV9lbGVtZW50X2dldF90eXBlX2F0dHIoV2ViS2l0RE9N
SFRNTExJRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2Rv
bV9odG1sX2xpX2VsZW1lbnRfZ2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MTElFbGVtZW50KiBz
ZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTElFbGVtZW50CiAgKiBAdmFsdWU6IEEg
I2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21faHRtbF9saV9lbGVtZW50X3NldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTExJ
RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC03MSw4ICs3NSwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfbGlfZWxlbWVudF9zZXRfdHlwZV9hdHRyKFdlYktpdERPTUhU
TUxMSUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxM
SUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25n
CitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1sX2xpX2VsZW1lbnRfZ2V0
X3ZhbHVlKFdlYktpdERPTUhUTUxMSUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9saV9lbGVtZW50X2dldF92YWx1ZShXZWJLaXRET01IVE1M
TElFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTElFbGVtZW50CiAg
KiBAdmFsdWU6IEEgI2dsb25nCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBS
RUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9saV9lbGVtZW50X3NldF92YWx1ZShXZWJLaXRE
T01IVE1MTElFbGVtZW50KiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTExhYmVsRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExhYmVsRWxlbWVudC5j
cHAKaW5kZXggOTg3OWYyYmMyNGIzYWRiMjU5ODhkMzIxZTc1MjQ3NDcyODViNDJhOC4uMzc2M2M1
NzNkMGM1YWUyNDYzYjVhNTFkMTQ0NjQ1N2VkMjE2ZGI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxM
YWJlbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGFiZWxFbGVtZW50LmNwcApAQCAtMzgsNiAr
MzgsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogV2ViS2l0RE9NSFRNTExhYmVsRWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxMYWJlbEVs
ZW1lbnQqIG9iaikKQEAgLTE5MiwzICsxOTQsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF9sYWJl
bF9lbGVtZW50X3NldF9odG1sX2ZvcihXZWJLaXRET01IVE1MTGFiZWxFbGVtZW50KiBzZWxmLAog
ICAgIGl0ZW0tPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRN
TE5hbWVzOjpmb3JBdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JF
X0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGFiZWxFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTExhYmVsRWxlbWVudC5oCmluZGV4IDAxYjdkNjg4MDlmYzljNjhiMGRkNjRhNDdmMjA4N2Zl
YWU4Mjg4YWQuLjZkM2U1MTY4N2VlOGFmMjBjMWM3MzYyYTA1NzE0MTUwOTMwYzA0Y2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MTGFiZWxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMYWJlbEVsZW1lbnQu
aApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxMYWJlbEVsZW1lbnRDbGFz
cyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1X
RUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1s
X2xhYmVsX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAg
d2Via2l0X2RvbV9odG1sX2xhYmVsX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTExhYmVsRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBu
b25lKTogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50CisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0
RE9NSFRNTEZvcm1FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTEZvcm1F
bGVtZW50Kgogd2Via2l0X2RvbV9odG1sX2xhYmVsX2VsZW1lbnRfZ2V0X2Zvcm0oV2ViS2l0RE9N
SFRNTExhYmVsRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0
X2RvbV9odG1sX2xhYmVsX2VsZW1lbnRfZ2V0X2Zvcm0oV2ViS2l0RE9NSFRNTExhYmVsRWxlbWVu
dCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExhYmVsRWxlbWVudAogICoKICAq
IFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVD
QVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9sYWJlbF9lbGVtZW50X2dldF9odG1sX2ZvcihX
ZWJLaXRET01IVE1MTGFiZWxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfbGFiZWxfZWxlbWVudF9nZXRfaHRtbF9mb3IoV2ViS2l0RE9NSFRN
TExhYmVsRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExhYmVsRWxl
bWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfbGFiZWxfZWxlbWVudF9zZXRfaHRt
bF9mb3IoV2ViS2l0RE9NSFRNTExhYmVsRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVl
KTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGVnZW5kRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTExlZ2VuZEVsZW1lbnQuY3BwCmluZGV4IGM1MjcyNmMxOTBjZThjNGFmZjQxNzY4
YTEwMDdhZTFhMWFhYzZhY2QuLmE5YzYyYmU3Yjk4MTZiOGU5NGZkNTYwODM3MmU4YzEzNTYzMjVj
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGVnZW5kRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxM
ZWdlbmRFbGVtZW50LmNwcApAQCAtMzcsNiArMzcsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVD
QVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTExlZ2VuZEVsZW1l
bnQqIGtpdChXZWJDb3JlOjpIVE1MTGVnZW5kRWxlbWVudCogb2JqKQpAQCAtMTkyLDMgKzE5NCw0
IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX2xlZ2VuZF9lbGVtZW50X3NldF9hbGlnbihXZWJLaXRE
T01IVE1MTGVnZW5kRWxlbWVudCogc2VsZiwKICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0
U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6YWxpZ25BdHRyLCBjb252ZXJ0ZWRW
YWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MTGVnZW5kRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMZWdlbmRFbGVtZW50LmgKaW5kZXgg
NzBlODUzYzQ1NjNjOGNhNTcxMjEzOGVmNzVkM2Y4ZTUyMzhjNmRhZC4uODI2NmIwNjY2NmYzYmY0
YmY1NDk5ZDViOGM0ODVmM2UyM2RmMzg1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMZWdlbmRFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxMZWdlbmRFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3Ry
dWN0IF9XZWJLaXRET01IVE1MTGVnZW5kRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1M
RWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJ
VF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfbGVnZW5kX2VsZW1lbnRfZ2V0X3R5
cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX2xlZ2Vu
ZF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxMZWdl
bmRFbGVtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01I
VE1MRm9ybUVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQq
CitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1MRm9ybUVsZW1lbnQqCiB3ZWJraXRfZG9t
X2h0bWxfbGVnZW5kX2VsZW1lbnRfZ2V0X2Zvcm0oV2ViS2l0RE9NSFRNTExlZ2VuZEVsZW1lbnQq
IHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9sZWdlbmRf
ZWxlbWVudF9nZXRfZm9ybShXZWJLaXRET01IVE1MTGVnZW5kRWxlbWVudCogc2VsZik7CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTExlZ2VuZEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
Y2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3
ZWJraXRfZG9tX2h0bWxfbGVnZW5kX2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxMZWdl
bmRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfbGVnZW5kX2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxMZWdlbmRFbGVtZW50KiBz
ZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTGVnZW5kRWxlbWVudAogICogQHZhbHVl
OiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2
b2lkCiB3ZWJraXRfZG9tX2h0bWxfbGVnZW5kX2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERPTUhU
TUxMZWdlbmRFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNM
UwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExpbmtFbGVt
ZW50LmNwcAppbmRleCBjZTgxYmViNjg5NzkxNmE5YzdmYTgyZDkxNDBhZDY0NDJiMDM2M2JjLi43
N2QwNDAyNmFjNWQzMGJjZWI0NzQ0MzQzZDYyYzQ2ZWU4NGY2NmE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTExpbmtFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50LmNwcApAQCAtMzgs
NiArMzgsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTExpbmtF
bGVtZW50KiBvYmopCkBAIC01MDgsMyArNTEwLDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfbGlu
a19lbGVtZW50X3NldF9zaXplcyhXZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIGxpbmtFbGVtZW4K
IAogICAgIFdlYktpdDo6Y29yZShsaW5rRWxlbWVudCktPnNpemVzKCkuc2V0VmFsdWUoU3RyaW5n
Ojpmcm9tVVRGOCh2YWx1ZSkpOwogfQorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxMaW5rRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxMaW5rRWxlbWVudC5o
CmluZGV4IDE0YzMzNTNkMTc2MzFkNGFkYjJkMDA1YTVlN2ExMmVmZDNlM2I0OTkuLjc1ZmM5YjZh
OGNiNmU5MjMxOGI1ZTYxZmNkNzFkYzkxNzlkMzA4NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTGlu
a0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAg
c3RydWN0IF9XZWJLaXRET01IVE1MTGlua0VsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRN
TEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJL
SVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9nZXRfdHlw
ZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbGlua19l
bGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxMaW5rRWxl
bWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xl
YW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVt
ZW50X2dldF9kaXNhYmxlZChXZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfZ2V0X2Rpc2Fi
bGVkKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTExpbmtFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9saW5r
X2VsZW1lbnRfc2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgZ2Jv
b2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTcxLDggKzc1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9s
aW5rX2VsZW1lbnRfc2V0X2Rpc2FibGVkKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwg
Z2Jvb2xlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50CiAgKgogICogUmV0
dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVE
IGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9nZXRfY2hhcnNldChXZWJLaXRE
T01IVE1MTGlua0VsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9saW5rX2VsZW1lbnRfZ2V0X2NoYXJzZXQoV2ViS2l0RE9NSFRNTExpbmtFbGVt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTGlua0VsZW1lbnQKICAqIEB2
YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9zZXRfY2hhcnNldChXZWJLaXRE
T01IVE1MTGlua0VsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAt
ODksOCArOTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9zZXRfY2hhcnNldChX
ZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNlbGYsIGNvbnN0IGcKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MTGlua0VsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxf
bGlua19lbGVtZW50X2dldF9ocmVmKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtOTgsOCArMTA4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfZ2V0
X2hyZWYoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MTGlua0VsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2xpbmtf
ZWxlbWVudF9zZXRfaHJlZihXZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTA3LDggKzExOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
bGlua19lbGVtZW50X3NldF9ocmVmKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29u
c3QgZ2NoYQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxMaW5rRWxlbWVudAogICoKICAqIFJl
dHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRF
RCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfZ2V0X2hyZWZsYW5nKFdlYktp
dERPTUhUTUxMaW5rRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTE2LDggKzEzMCwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF9ocmVmbGFuZyhXZWJLaXRET01IVE1MTGlu
a0VsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxMaW5rRWxlbWVudAog
ICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X3NldF9ocmVmbGFuZyhX
ZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8q
KgpAQCAtMTI1LDggKzE0MSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X3NldF9o
cmVmbGFuZyhXZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2Rv
bV9odG1sX2xpbmtfZWxlbWVudF9nZXRfbWVkaWEoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC0xMzQsOCArMTUyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9saW5rX2Vs
ZW1lbnRfZ2V0X21lZGlhKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF9saW5rX2VsZW1lbnRfc2V0X21lZGlhKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNDMsOCArMTYzLDEwIEBAIHdlYmtp
dF9kb21faHRtbF9saW5rX2VsZW1lbnRfc2V0X21lZGlhKFdlYktpdERPTUhUTUxMaW5rRWxlbWVu
dCogc2VsZiwgY29uc3QgZ2NoCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9nZXRfcmVs
KFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTUyLDggKzE3NCwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF9yZWwoV2ViS2l0RE9NSFRNTExp
bmtFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTGlua0VsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9zZXRfcmVsKFdlYktp
dERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBA
IC0xNjEsOCArMTg1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfc2V0X3JlbChX
ZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyCiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTExpbmtFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9o
dG1sX2xpbmtfZWxlbWVudF9nZXRfcmV2KFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZik7
CiAKIC8qKgpAQCAtMTcwLDggKzE5NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50
X2dldF9yZXYoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MTGlua0VsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2xp
bmtfZWxlbWVudF9zZXRfcmV2KFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29uc3Qg
Z2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNzksOCArMjA3LDEwIEBAIHdlYmtpdF9kb21faHRt
bF9saW5rX2VsZW1lbnRfc2V0X3JldihXZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNB
VEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9nZXRfdGFyZ2V0KFdlYktp
dERPTUhUTUxMaW5rRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTg4LDggKzIxOCwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF90YXJnZXQoV2ViS2l0RE9NSFRNTExpbmtF
bGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTGlua0VsZW1lbnQKICAq
IEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9zZXRfdGFyZ2V0KFdlYktp
dERPTUhUTUxMaW5rRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBA
IC0xOTcsOCArMjI5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfc2V0X3Rhcmdl
dChXZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNlbGYsIGNvbnN0IGdjCiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTExpbmtFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9o
dG1sX2xpbmtfZWxlbWVudF9nZXRfdHlwZV9hdHRyKFdlYktpdERPTUhUTUxMaW5rRWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMjA2LDggKzI0MCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbGlua19l
bGVtZW50X2dldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MTGlua0VsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9odG1sX2xpbmtfZWxlbWVudF9zZXRfdHlwZV9hdHRyKFdlYktpdERPTUhUTUxMaW5rRWxl
bWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0yMTUsOCArMjUxLDEw
IEBAIHdlYmtpdF9kb21faHRtbF9saW5rX2VsZW1lbnRfc2V0X3R5cGVfYXR0cihXZWJLaXRET01I
VE1MTGlua0VsZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTExp
bmtFbGVtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01T
dHlsZVNoZWV0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NU3R5bGVTaGVldCoKK1dFQktJVF9E
RVBSRUNBVEVEIFdlYktpdERPTVN0eWxlU2hlZXQqCiB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVt
ZW50X2dldF9zaGVldChXZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTIyNiw4ICsyNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9nZXRfc2hlZXQo
V2ViS2l0RE9NSFRNTExpbmtFbGVtZW50KiBzZWxmKTsKICAqIFJldHVybnM6ICh0cmFuc2ZlciBm
dWxsKTogQSAjV2ViS2l0RE9NRE9NVG9rZW5MaXN0CiAgKgogICogU2luY2U6IDIuMTYKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBXZWJLaXRET01ET01Ub2tlbkxpc3QqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJL
aXRET01ET01Ub2tlbkxpc3QqCiB3ZWJraXRfZG9tX2h0bWxfbGlua19lbGVtZW50X2dldF9zaXpl
cyhXZWJLaXRET01IVE1MTGlua0VsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTIzNiw4ICsyNzYs
MTAgQEAgd2Via2l0X2RvbV9odG1sX2xpbmtfZWxlbWVudF9nZXRfc2l6ZXMoV2ViS2l0RE9NSFRN
TExpbmtFbGVtZW50KiBzZWxmKTsKICAqIEB2YWx1ZTogYSAjZ2NoYXIKICAqCiAgKiBTaW5jZTog
Mi4xNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtp
dF9kb21faHRtbF9saW5rX2VsZW1lbnRfc2V0X3NpemVzKFdlYktpdERPTUhUTUxMaW5rRWxlbWVu
dCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MTWFwRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1hcEVsZW1lbnQuY3BwCmluZGV4IDEx
ZGNhYTlkODEwNTkxYTg4OThhY2UyODE2MzJjYTJkY2E4YTAwNDYuLmIxM2JkY2QzZjYyNGRjNDQz
ZDU1ZTM4OTJmYmRlZGZmN2UyMmViNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWFwRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxNYXBFbGVtZW50LmNwcApAQCAtMzcsNiArMzcsOCBAQAogI2luY2x1
ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJ
Tl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9N
SFRNTE1hcEVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MTWFwRWxlbWVudCogb2JqKQpAQCAtMTky
LDMgKzE5NCw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX21hcF9lbGVtZW50X3NldF9uYW1lKFdl
YktpdERPTUhUTUxNYXBFbGVtZW50KiBzZWxmLCBjb25zdCBnCiAgICAgaXRlbS0+c2V0QXR0cmli
dXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6Om5hbWVBdHRyLCBj
b252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MTWFwRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNYXBFbGVtZW50LmgKaW5k
ZXggNmY1YTYyNTU1ZjA2NjdkZTNhMDY0MjYwMmUxZWU2ODFhN2JjZjgxNC4uZGVjYTEzOGYyNzM2
OWMwMWZhYjQwZjZlYzgyMTI1ODhkYzBlMjA2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNYXBFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxNYXBFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0
IF9XZWJLaXRET01IVE1MTWFwRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVu
dENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBS
RUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfbWFwX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7
CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX21hcF9lbGVtZW50X2dl
dF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxNYXBFbGVtZW50CiAgKgog
ICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRET01IVE1MQ29sbGVjdGlvbgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgorV0VCS0lUX0RFUFJFQ0FU
RUQgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCiB3ZWJraXRfZG9tX2h0bWxfbWFwX2VsZW1lbnRf
Z2V0X2FyZWFzKFdlYktpdERPTUhUTUxNYXBFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4
ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbWFwX2VsZW1lbnRfZ2V0X2FyZWFzKFdlYktpdERP
TUhUTUxNYXBFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTWFwRWxl
bWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitX
RUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9tYXBfZWxlbWVudF9nZXRf
bmFtZShXZWJLaXRET01IVE1MTWFwRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNzEsOCArNzUs
MTAgQEAgd2Via2l0X2RvbV9odG1sX21hcF9lbGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhUTUxN
YXBFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTWFwRWxlbWVudAog
ICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfbWFwX2VsZW1lbnRfc2V0X25hbWUoV2ViS2l0
RE9NSFRNTE1hcEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5EX0RF
Q0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1hcnF1ZWVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWFy
cXVlZUVsZW1lbnQuY3BwCmluZGV4IDMwODhlOWE4MDVhYzk4YWNjM2Q0ZWEyNmE0NTQzZDYxMGVk
NGMxOGEuLjAyODVjODQ3N2QwMzY4MDg0ZDNmNzA5ZWYwZTQ5OGUxMDI4NGVjYmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MTWFycXVlZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWFycXVlZUVsZW1l
bnQuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MTWFycXVlZUVsZW1lbnQqIGtpdChX
ZWJDb3JlOjpIVE1MTWFycXVlZUVsZW1lbnQqIG9iaikKQEAgLTExNywzICsxMTksNCBAQCB2b2lk
IHdlYmtpdF9kb21faHRtbF9tYXJxdWVlX2VsZW1lbnRfc3RvcChXZWJLaXRET01IVE1MTWFycXVl
ZUVsZW1lbnQqIHNlbGYpCiAgICAgV2ViQ29yZTo6SFRNTE1hcnF1ZWVFbGVtZW50KiBpdGVtID0g
V2ViS2l0Ojpjb3JlKHNlbGYpOwogICAgIGl0ZW0tPnN0b3AoKTsKIH0KK0dfR05VQ19FTkRfSUdO
T1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWFycXVlZUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MTWFycXVlZUVsZW1lbnQuaAppbmRleCAwZDZiODJkZjQwMmFjZGRjMTlhNWUyMzQz
NzExYzNmZGRkZDZkMmFkLi5jNmYwYTE5NmY0MTBjNjhmNDdjNGI4MDA4ZGI1N2IyMzdhNTdiYzBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTE1hcnF1ZWVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNYXJx
dWVlRWxlbWVudC5oCkBAIC00NSwyMyArNDUsMjcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MTWFy
cXVlZUVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRf
Y2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQog
d2Via2l0X2RvbV9odG1sX21hcnF1ZWVfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCiAg
KiB3ZWJraXRfZG9tX2h0bWxfbWFycXVlZV9lbGVtZW50X3N0YXJ0OgogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxNYXJxdWVlRWxlbWVudAogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJL
SVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfbWFycXVlZV9lbGVtZW50X3N0YXJ0
KFdlYktpdERPTUhUTUxNYXJxdWVlRWxlbWVudCogc2VsZik7CiAKIC8qKgogICogd2Via2l0X2Rv
bV9odG1sX21hcnF1ZWVfZWxlbWVudF9zdG9wOgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxN
YXJxdWVlRWxlbWVudAogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfbWFycXVlZV9lbGVtZW50X3N0b3AoV2ViS2l0RE9NSFRN
TE1hcnF1ZWVFbGVtZW50KiBzZWxmKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MTWVudUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNZW51RWxlbWVudC5jcHAKaW5kZXggZGM2YjZi
NGU2MDlhNDZmMTY5MzcyMTg0YTFkN2Y5N2I3ZTA0NTVmNC4uMDMyNWNiODFiYWJjYzUxNGNjYjFi
NzM0NmY0ODI0YjA0YmZmNzE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNZW51RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxNZW51RWxlbWVudC5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRl
IDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5f
SUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhU
TUxNZW51RWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxNZW51RWxlbWVudCogb2JqKQpAQCAtMTY2
LDMgKzE2OCw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX21lbnVfZWxlbWVudF9zZXRfY29tcGFj
dChXZWJLaXRET01IVE1MTWVudUVsZW1lbnQqIHNlbGYsIGdiCiAgICAgaXRlbS0+c2V0Qm9vbGVh
bkF0dHJpYnV0ZShXZWJDb3JlOjpIVE1MTmFtZXM6OmNvbXBhY3RBdHRyLCB2YWx1ZSk7CiB9CiAK
K0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWVu
dUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MTWVudUVsZW1lbnQuaAppbmRleCAxZjY3MDg2MzkzZDc1MWQ5
NWQwYTk4NmY3ZjdhMjdlODAyMjFiYjQ0Li4yYTQ2YjU4NTM1MDBmOTM2ZDUwOThkNzBhM2U3YzUw
YjdlMWNjYWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1lbnVFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxNZW51RWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTE1l
bnVFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2Ns
YXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdl
YmtpdF9kb21faHRtbF9tZW51X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMs
OCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX21lbnVfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTWVudUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBn
Ym9vbGVhbgogd2Via2l0X2RvbV9odG1sX21lbnVfZWxlbWVudF9nZXRfY29tcGFjdChXZWJLaXRE
T01IVE1MTWVudUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9tZW51X2VsZW1lbnRfZ2V0X2NvbXBhY3QoV2ViS2l0RE9NSFRNTE1lbnVFbGVt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTWVudUVsZW1lbnQKICAqIEB2
YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX21lbnVfZWxlbWVudF9zZXRfY29tcGFjdChXZWJL
aXRET01IVE1MTWVudUVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogR19FTkRfREVD
TFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTWV0YUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNZXRhRWxl
bWVudC5jcHAKaW5kZXggMGQ1MGMwNTY2NWYxYjAyNWNlNzM4YjRiYTU1NTJiYjQzNGVmZjY1ZC4u
NTUyOWJkNTM1NWM3YzhhMzQ0YzVlZDBiZDZjZmNlZDUzODVjZTU2MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxNZXRhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNZXRhRWxlbWVudC5jcHAKQEAgLTM2
LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIFdlYktpdERPTUhUTUxNZXRhRWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxNZXRh
RWxlbWVudCogb2JqKQpAQCAtMjc2LDMgKzI3OCw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX21l
dGFfZWxlbWVudF9zZXRfc2NoZW1lKFdlYktpdERPTUhUTUxNZXRhRWxlbWVudCogc2VsZiwgY29u
CiAgICAgaXRlbS0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpI
VE1MTmFtZXM6OnNjaGVtZUF0dHIsIGNvbnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9J
R05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxNZXRhRWxlbWVudC5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxNZXRhRWxlbWVudC5oCmluZGV4IGVjZGE5NzA4NGE1MjM2Y2ZjM2U4YzIzZDA0YWQ2
NGE4MWNjNjkzMDUuLmRjODM3MmNmMWMxODc4ZDQ1YzRlMmFlN2M3OWFkMDU5MTMwNjAzMDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MTWV0YUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50
LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MTWV0YUVsZW1lbnRDbGFz
cyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1X
RUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1s
X21ldGFfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfbWV0YV9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxNZXRhRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21f
aHRtbF9tZXRhX2VsZW1lbnRfZ2V0X2NvbnRlbnQoV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbWV0YV9lbGVt
ZW50X2dldF9jb250ZW50KFdlYktpdERPTUhUTUxNZXRhRWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF9tZXRhX2VsZW1lbnRfc2V0X2NvbnRlbnQoV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50KiBz
ZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTcxLDggKzc1LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9tZXRhX2VsZW1lbnRfc2V0X2NvbnRlbnQoV2ViS2l0RE9NSFRNTE1ldGFFbGVt
ZW50KiBzZWxmLCBjb25zdCBnCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX21ldGFfZWxlbWVudF9nZXRfaHR0
cF9lcXVpdihXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDgg
Kzg2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9tZXRhX2VsZW1lbnRfZ2V0X2h0dHBfZXF1aXYoV2Vi
S2l0RE9NSFRNTE1ldGFFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
TWV0YUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX21ldGFfZWxlbWVudF9z
ZXRfaHR0cF9lcXVpdihXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFy
KiB2YWx1ZSk7CiAKIC8qKgpAQCAtODksOCArOTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX21ldGFf
ZWxlbWVudF9zZXRfaHR0cF9lcXVpdihXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQqIHNlbGYsIGNv
bnMKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2No
YXIqCiB3ZWJraXRfZG9tX2h0bWxfbWV0YV9lbGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhUTUxN
ZXRhRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtOTgsOCArMTA4LDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9tZXRhX2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0RE9NSFRNTE1ldGFFbGVtZW50KiBzZWxm
KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX21ldGFfZWxlbWVudF9zZXRfbmFtZShXZWJLaXRET01IVE1MTWV0YUVs
ZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTA3LDggKzExOSwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfbWV0YV9lbGVtZW50X3NldF9uYW1lKFdlYktpdERPTUhUTUxN
ZXRhRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxN
ZXRhRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2No
YXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9tZXRhX2VsZW1l
bnRfZ2V0X3NjaGVtZShXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTExNiw4ICsxMzAsMTAgQEAgd2Via2l0X2RvbV9odG1sX21ldGFfZWxlbWVudF9nZXRfc2NoZW1l
KFdlYktpdERPTUhUTUxNZXRhRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTE1ldGFFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9tZXRhX2VsZW1l
bnRfc2V0X3NjaGVtZShXZWJLaXRET01IVE1MTWV0YUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFy
KiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1vZEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxNb2RFbGVtZW50LmNwcAppbmRleCAyZTU5MDE3MGMxYjYwNjllMjVmYzdk
ODI2NDY5ODhhOTk1NDZiZDBiLi41ZGRlMTRjYTYxNGZhODRhYTljYzA2MWFmMjFkMzY2YWY0ZWQy
NzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1vZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MTW9k
RWxlbWVudC5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9O
UzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxNb2RFbGVtZW50KiBraXQo
V2ViQ29yZTo6SFRNTE1vZEVsZW1lbnQqIG9iaikKQEAgLTIwNCwzICsyMDYsNCBAQCB2b2lkIHdl
YmtpdF9kb21faHRtbF9tb2RfZWxlbWVudF9zZXRfZGF0ZV90aW1lKFdlYktpdERPTUhUTUxNb2RF
bGVtZW50KiBzZWxmLCBjbwogICAgIGl0ZW0tPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6
YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjpkYXRldGltZUF0dHIsIGNvbnZlcnRlZFZhbHVlKTsK
IH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxNb2RFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1vZEVsZW1lbnQuaAppbmRleCBlOWM3NzBmYWY0NjQx
NzI1YTMyNTIzNTBlZGZmMzJiOTI3ZThkOGQ5Li42MTdmMGQwMWQ2ZTdiMmZlM2ZiNDFkZDA4NWY1
NGU3ZjBkNzUzZGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE1vZEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTE1vZEVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxN
b2RFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2Ns
YXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdl
YmtpdF9kb21faHRtbF9tb2RfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4
ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfbW9kX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE1vZEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
Y2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3
ZWJraXRfZG9tX2h0bWxfbW9kX2VsZW1lbnRfZ2V0X2NpdGUoV2ViS2l0RE9NSFRNTE1vZEVsZW1l
bnQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9tb2Rf
ZWxlbWVudF9nZXRfY2l0ZShXZWJLaXRET01IVE1MTW9kRWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTE1vZEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9o
dG1sX21vZF9lbGVtZW50X3NldF9jaXRlKFdlYktpdERPTUhUTUxNb2RFbGVtZW50KiBzZWxmLCBj
b25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTcxLDggKzc1LDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9tb2RfZWxlbWVudF9zZXRfY2l0ZShXZWJLaXRET01IVE1MTW9kRWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE1vZEVsZW1lbnQKICAqCiAg
KiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJF
Q0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfbW9kX2VsZW1lbnRfZ2V0X2RhdGVfdGltZShX
ZWJLaXRET01IVE1MTW9kRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtODAsOCArODYsMTAgQEAg
d2Via2l0X2RvbV9odG1sX21vZF9lbGVtZW50X2dldF9kYXRlX3RpbWUoV2ViS2l0RE9NSFRNTE1v
ZEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxNb2RFbGVtZW50CiAg
KiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBS
RUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9tb2RfZWxlbWVudF9zZXRfZGF0ZV90aW1lKFdl
YktpdERPTUhUTUxNb2RFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiBHX0VO
RF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxP
TGlzdEVsZW1lbnQuY3BwCmluZGV4IGI1ZGMxOWI3NGNhMDE5ZjExNjc2MzAzYjFiMTUyYzNlODY4
ODhhMmIuLmEzMGM2ZDYyY2RkMzk3YWJlODEyOTg2ZWVkMjIyMTNiNzVjOTlhMWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MT0xpc3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudC5j
cHAKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQqIGtpdChXZWJDb3Jl
OjpIVE1MT0xpc3RFbGVtZW50KiBvYmopCkBAIC0yMzYsMyArMjM4LDQgQEAgdm9pZCB3ZWJraXRf
ZG9tX2h0bWxfb19saXN0X2VsZW1lbnRfc2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MT0xpc3RF
bGVtZW50KiBzZWwKICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9u
KFdlYkNvcmU6OkhUTUxOYW1lczo6dHlwZUF0dHIsIGNvbnZlcnRlZFZhbHVlKTsKIH0KIAorR19H
TlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPTGlzdEVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MT0xpc3RFbGVtZW50LmgKaW5kZXggYmNhOGEyZDFlZjdkYzA1N2U1
MjU3YTdkMDQzYmU3NmZjMzdlMTI1Ny4uZGVlMTI4ZjEwMjk5ZGYyZTdjYWY2YjJlMWVmZGE1MjZi
Y2YxZDRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TE9MaXN0RWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTE9M
aXN0RWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9j
bGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3
ZWJraXRfZG9tX2h0bWxfb19saXN0X2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAt
NTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX29fbGlzdF9lbGVtZW50X2dldF90eXBlKHZv
aWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQKICAqCiAgKiBSZXR1
cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVD
QVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX29fbGlzdF9lbGVtZW50X2dldF9jb21wYWN0
KFdlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEw
IEBAIHdlYmtpdF9kb21faHRtbF9vX2xpc3RfZWxlbWVudF9nZXRfY29tcGFjdChXZWJLaXRET01I
VE1MT0xpc3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT0xpc3RF
bGVtZW50CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9vX2xpc3RfZWxlbWVudF9z
ZXRfY29tcGFjdChXZWJLaXRET01IVE1MT0xpc3RFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1
ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX29fbGlzdF9lbGVt
ZW50X3NldF9jb21wYWN0KFdlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQqIHNlbGYsIGdib28KICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MT0xpc3RFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAj
Z2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdl
YmtpdF9kb21faHRtbF9vX2xpc3RfZWxlbWVudF9nZXRfc3RhcnQoV2ViS2l0RE9NSFRNTE9MaXN0
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtODAsOCArODYsMTAgQEAgd2Via2l0X2RvbV9odG1s
X29fbGlzdF9lbGVtZW50X2dldF9zdGFydChXZWJLaXRET01IVE1MT0xpc3RFbGVtZW50KiBzZWxm
KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT0xpc3RFbGVtZW50CiAgKiBAdmFsdWU6IEEg
I2dsb25nCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21faHRtbF9vX2xpc3RfZWxlbWVudF9zZXRfc3RhcnQoV2ViS2l0RE9NSFRNTE9M
aXN0RWxlbWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioKQEAgLTg5LDggKzk3LDEwIEBA
IHdlYmtpdF9kb21faHRtbF9vX2xpc3RfZWxlbWVudF9zZXRfc3RhcnQoV2ViS2l0RE9NSFRNTE9M
aXN0RWxlbWVudCogc2VsZiwgZ2xvbmcKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT0xpc3RF
bGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioK
K1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX29fbGlzdF9lbGVtZW50
X2dldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpA
QCAtOTgsOCArMTA4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vX2xpc3RfZWxlbWVudF9nZXRfdHlw
ZV9hdHRyKFdlYktpdERPTUhUTUxPTGlzdEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxPTGlzdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX29f
bGlzdF9lbGVtZW50X3NldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTE9MaXN0RWxlbWVudCogc2Vs
ZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MT2JqZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQuY3BwCmluZGV4IGIx
YjY0N2UwYTlhNmRhY2RjNzhhNzU0MDVmYmQxYWYzNTBkNWRlMmUuLjkwNjhlMzEwMTVmODA0ODI5
ODMyMjBjYTRhYjgyZDJmNWI2MmQ3OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT2JqZWN0RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50LmNwcApAQCAtMzgsNiArMzgsOCBAQAog
I2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05V
Q19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2Vi
S2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MT2JqZWN0RWxlbWVudCog
b2JqKQpAQCAtNzUwLDMgKzc1Miw0IEBAIFdlYktpdERPTURvY3VtZW50KiB3ZWJraXRfZG9tX2h0
bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X2NvbnRlbnRfZG9jdW1lbnQoV2ViS2l0RE9NCiAgICAgcmV0
dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOwogfQogCitHX0dOVUNfRU5EX0lH
Tk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MT2JqZWN0RWxlbWVudC5oCmluZGV4IDVkM2JkZTcyMjU4YzkyZmU5M2JhMTVhZjM5
ZjgxNDE2MGVjYTJjNjUuLjEwY2VmYTBkNmZlN2Y2ZDQ3MWEwYjJmMWVjNzJiMmEyNGRlMDZiZDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT2JqZWN0
RWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTE9iamVjdEVs
ZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7
CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0
X2RvbV9odG1sX29iamVjdF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDgg
KzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6
ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50CisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0
RE9NSFRNTEZvcm1FbGVtZW50Kgogd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X2dldF9m
b3JtKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2
NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X2Zvcm0oV2ViS2l0RE9N
SFRNTE9iamVjdEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmpl
Y3RFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hh
cioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVt
ZW50X2dldF9jb2RlKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X2NvZGUo
V2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxPYmplY3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9vYmplY3Rf
ZWxlbWVudF9zZXRfY29kZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwgY29uc3Qg
Z2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
b2JqZWN0X2VsZW1lbnRfc2V0X2NvZGUoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYs
IGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X2FsaWduKFdlYktp
dERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04OSw4ICs5NywxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxPYmpl
Y3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVu
dAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRf
REVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfc2V0X2FsaWdu
KFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwog
CiAvKioKQEAgLTk4LDggKzEwOCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRf
c2V0X2FsaWduKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2No
YXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Vi
a2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X2dldF9hcmNoaXZlKFdlYktpdERPTUhUTUxPYmpl
Y3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMDcsOCArMTE5LDEwIEBAIHdlYmtpdF9kb21f
aHRtbF9vYmplY3RfZWxlbWVudF9nZXRfYXJjaGl2ZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVu
dCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqIEB2
YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X3NldF9hcmNoaXZlKFdlYktp
dERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioK
QEAgLTExNiw4ICsxMzAsMTAgQEAgd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X3NldF9h
cmNoaXZlKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmLCBjb24KICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9k
b21faHRtbF9vYmplY3RfZWxlbWVudF9nZXRfYm9yZGVyKFdlYktpdERPTUhUTUxPYmplY3RFbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMjUsOCArMTQxLDEwIEBAIHdlYmtpdF9kb21faHRtbF9v
YmplY3RfZWxlbWVudF9nZXRfYm9yZGVyKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxm
KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudAogICogQHZhbHVlOiBB
ICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfc2V0X2JvcmRlcihXZWJLaXRET01IVE1M
T2JqZWN0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMzQs
OCArMTUyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfYm9yZGVyKFdl
YktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmLCBjb25zCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxf
b2JqZWN0X2VsZW1lbnRfZ2V0X2NvZGVfYmFzZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMTQzLDggKzE2MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0
X2VsZW1lbnRfZ2V0X2NvZGVfYmFzZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X3NldF9jb2RlX2Jhc2UoV2ViS2l0RE9NSFRN
TE9iamVjdEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTUy
LDggKzE3NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfc2V0X2NvZGVfYmFz
ZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwgYwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxPYmplY3RFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1s
X29iamVjdF9lbGVtZW50X2dldF9jb2RlX3R5cGUoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQq
IHNlbGYpOwogCiAvKioKQEAgLTE2MSw4ICsxODUsMTAgQEAgd2Via2l0X2RvbV9odG1sX29iamVj
dF9lbGVtZW50X2dldF9jb2RlX3R5cGUoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAgKiBAdmFsdWU6IEEg
I2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfY29kZV90eXBlKFdlYktpdERPTUhU
TUxPYmplY3RFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE3
MCw4ICsxOTYsMTAgQEAgd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X3NldF9jb2RlX3R5
cGUoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGMKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MT2JqZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRt
bF9vYmplY3RfZWxlbWVudF9nZXRfZGF0YShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2Vs
Zik7CiAKIC8qKgpAQCAtMTc5LDggKzIwNywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2Vs
ZW1lbnRfZ2V0X2RhdGEoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfZGF0YShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVu
dCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xODgsOCArMjE4LDEwIEBA
IHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfZGF0YShXZWJLaXRET01IVE1MT2Jq
ZWN0RWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT2JqZWN0
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jv
b2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0
X2VsZW1lbnRfZ2V0X2RlY2xhcmUoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTE5Nyw4ICsyMjksMTAgQEAgd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50
X2dldF9kZWNsYXJlKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgog
ICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRf
ZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfc2V0X2RlY2xhcmUoV2ViS2l0RE9NSFRNTE9iamVjdEVs
ZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBAIC0yMDYsOCArMjQwLDEwIEBA
IHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfZGVjbGFyZShXZWJLaXRET01IVE1M
T2JqZWN0RWxlbWVudCogc2VsZiwgZ2JvCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9iamVj
dEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFy
KgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1l
bnRfZ2V0X2hlaWdodChXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpA
QCAtMjE1LDggKzI1MSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X2hl
aWdodChXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX29i
amVjdF9lbGVtZW50X3NldF9oZWlnaHQoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYs
IGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjI0LDggKzI2MiwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfc2V0X2hlaWdodChXZWJLaXRET01IVE1MT2JqZWN0RWxl
bWVudCogc2VsZiwgY29ucwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lU
X0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9nZXRfaHNw
YWNlKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMzMsOCAr
MjczLDEwIEBAIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9nZXRfaHNwYWNlKFdlYktp
dERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
T2JqZWN0RWxlbWVudAogICogQHZhbHVlOiBBICNnbG9uZwogICoKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1l
bnRfc2V0X2hzcGFjZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwgZ2xvbmcgdmFs
dWUpOwogCiAvKioKQEAgLTI0Miw4ICsyODQsMTAgQEAgd2Via2l0X2RvbV9odG1sX29iamVjdF9l
bGVtZW50X3NldF9oc3BhY2UoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGdsb24K
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6
IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hh
cioKIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9nZXRfbmFtZShXZWJLaXRET01IVE1M
T2JqZWN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjUxLDggKzI5NSwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1l
bnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAgKiBA
dmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfbmFtZShXZWJLaXRE
T01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBA
IC0yNjAsOCArMzA2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfbmFt
ZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwgY29uc3QKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21f
aHRtbF9vYmplY3RfZWxlbWVudF9nZXRfc3RhbmRieShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtMjY5LDggKzMxNywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2Jq
ZWN0X2VsZW1lbnRfZ2V0X3N0YW5kYnkoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAgKiBAdmFsdWU6IEEg
I2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfc3RhbmRieShXZWJLaXRET01IVE1M
T2JqZWN0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0yNzgs
OCArMzI4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfc3RhbmRieShX
ZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwgY29uCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxf
b2JqZWN0X2VsZW1lbnRfZ2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMjg3LDggKzMzOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0
X2VsZW1lbnRfZ2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X3NldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRN
TE9iamVjdEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjk2
LDggKzM1MCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfc2V0X3R5cGVfYXR0
cihXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZiwgYwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxPYmplY3RFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1s
X29iamVjdF9lbGVtZW50X2dldF91c2VfbWFwKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC0zMDUsOCArMzYxLDEwIEBAIHdlYmtpdF9kb21faHRtbF9vYmplY3Rf
ZWxlbWVudF9nZXRfdXNlX21hcChXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2No
YXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X3NldF91c2VfbWFwKFdlYktpdERPTUhUTUxPYmpl
Y3RFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTMxNCw4ICsz
NzIsMTAgQEAgd2Via2l0X2RvbV9odG1sX29iamVjdF9lbGVtZW50X3NldF91c2VfbWFwKFdlYktp
dERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmLCBjb24KICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MT2JqZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0
X2VsZW1lbnRfZ2V0X3ZzcGFjZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtMzIzLDggKzM4MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRf
Z2V0X3ZzcGFjZShXZWJLaXRET01IVE1MT2JqZWN0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9o
dG1sX29iamVjdF9lbGVtZW50X3NldF92c3BhY2UoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQq
IHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCkBAIC0zMzIsOCArMzk0LDEwIEBAIHdlYmtpdF9k
b21faHRtbF9vYmplY3RfZWxlbWVudF9zZXRfdnNwYWNlKFdlYktpdERPTUhUTUxPYmplY3RFbGVt
ZW50KiBzZWxmLCBnbG9uCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X3dp
ZHRoKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0zNDEsOCAr
NDA1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVudF9nZXRfd2lkdGgoV2ViS2l0
RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxP
YmplY3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9vYmplY3RfZWxlbWVu
dF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFy
KiB2YWx1ZSk7CiAKIC8qKgpAQCAtMzUwLDggKzQxNiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb2Jq
ZWN0X2VsZW1lbnRfc2V0X3dpZHRoKFdlYktpdERPTUhUTUxPYmplY3RFbGVtZW50KiBzZWxmLCBj
b25zdAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPYmplY3RFbGVtZW50CiAgKgogICogUmV0
dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Eb2N1bWVudAorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIFdlYktpdERPTURvY3VtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NRG9jdW1l
bnQqCiB3ZWJraXRfZG9tX2h0bWxfb2JqZWN0X2VsZW1lbnRfZ2V0X2NvbnRlbnRfZG9jdW1lbnQo
V2ViS2l0RE9NSFRNTE9iamVjdEVsZW1lbnQqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxPcHRHcm91cEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRHcm91cEVsZW1l
bnQuY3BwCmluZGV4IDAyZjUxNGFmZDliNGJlNmM2Yjg2MjYwYWExMTdlNDlkODQwYmUzZjEuLjlh
MDE4OWU4OWE1Mjg2NGZhOGRhMWEzOTlmZDhmN2ZiZTcwODE5N2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01I
VE1MT3B0R3JvdXBFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAK
QEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxPcHRHcm91cEVsZW1lbnQqIGtpdChXZWJDb3Jl
OjpIVE1MT3B0R3JvdXBFbGVtZW50KiBvYmopCkBAIC0yMDIsMyArMjA0LDQgQEAgdm9pZCB3ZWJr
aXRfZG9tX2h0bWxfb3B0X2dyb3VwX2VsZW1lbnRfc2V0X2xhYmVsKFdlYktpdERPTUhUTUxPcHRH
cm91cEVsZW1lbnQqIHMKICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0
aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6bGFiZWxBdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAK
K0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT3B0
R3JvdXBFbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxlbWVudC5oCmluZGV4IGJkODJmYThi
ZGQ0MzJhYjQ4YzVhYjMzYzMwYWYxODllYjE2ZjI3Y2MuLmVlNjc1NjEyM2Y0MGRhNTM3OGQ3ZmIy
MTJkMzA4NTg0MmQ3MTZmODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT3B0R3JvdXBFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxPcHRHcm91cEVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3Qg
X1dlYktpdERPTUhUTUxPcHRHcm91cEVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVs
ZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRf
REVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX29wdF9ncm91cF9lbGVtZW50X2dldF90
eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9vcHRf
Z3JvdXBfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
T3B0R3JvdXBFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRt
bF9vcHRfZ3JvdXBfZWxlbWVudF9nZXRfZGlzYWJsZWQoV2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxl
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX29w
dF9ncm91cF9lbGVtZW50X2dldF9kaXNhYmxlZChXZWJLaXRET01IVE1MT3B0R3JvdXBFbGVtZW50
KiBzZWwKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT3B0R3JvdXBFbGVtZW50CiAgKiBAdmFs
dWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9vcHRfZ3JvdXBfZWxlbWVudF9zZXRfZGlzYWJsZWQo
V2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAv
KioKQEAgLTcxLDggKzc1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vcHRfZ3JvdXBfZWxlbWVudF9z
ZXRfZGlzYWJsZWQoV2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxlbWVudCogc2VsCiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFy
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtp
dF9kb21faHRtbF9vcHRfZ3JvdXBfZWxlbWVudF9nZXRfbGFiZWwoV2ViS2l0RE9NSFRNTE9wdEdy
b3VwRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtODAsOCArODYsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX29wdF9ncm91cF9lbGVtZW50X2dldF9sYWJlbChXZWJLaXRET01IVE1MT3B0R3JvdXBFbGVt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MT3B0R3JvdXBFbGVtZW50CiAg
KiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBS
RUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9vcHRfZ3JvdXBfZWxlbWVudF9zZXRfbGFiZWwo
V2ViS2l0RE9NSFRNTE9wdEdyb3VwRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsK
IAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTE9wdGlvbkVsZW1lbnQuY3BwCmluZGV4IGM5MWQ4N2E1MjgxMGMxNmYzMjQwYTQ5ZjFj
MGJjNjEyY2RiZjIyZjEuLjg5NWE3MTI3MzA5Nzk1NzA5NjI0MWYyNWQ1MTNiOTcxMmUxOWNlMWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRp
b25FbGVtZW50LmNwcApAQCAtMzcsNiArMzcsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJ
T05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQq
IGtpdChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVudCogb2JqKQpAQCAtMzc2LDMgKzM3OCw0IEBA
IGdsb25nIHdlYmtpdF9kb21faHRtbF9vcHRpb25fZWxlbWVudF9nZXRfaW5kZXgoV2ViS2l0RE9N
SFRNTE9wdGlvbkVsZW1lbnQqIHNlbGYpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorR19HTlVD
X0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRpb25FbGVt
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQuaAppbmRleCA1Mzg3MDU2OTA5Mzc2MWU0ZmRm
NzQ3ODIzYjRiNjc3MzI1Y2U0ZmUyLi4zZTlmZDg3N2FiMjNkYTg4ZTFiNmVlNGU5YjIwMDJkM2U5
MGFlZTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TE9wdGlvbkVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxP
cHRpb25FbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50
X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUK
IHdlYmtpdF9kb21faHRtbF9vcHRpb25fZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBA
IC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb3B0aW9uX2VsZW1lbnRfZ2V0X3R5cGUo
dm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQ
UkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50X2dldF9kaXNh
YmxlZChXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCAr
NjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50X2dldF9kaXNhYmxlZChXZWJL
aXRET01IVE1MT3B0aW9uRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TE9wdGlvbkVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX29wdGlvbl9l
bGVtZW50X3NldF9kaXNhYmxlZChXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCogc2VsZiwgZ2Jv
b2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTcxLDggKzc1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9v
cHRpb25fZWxlbWVudF9zZXRfZGlzYWJsZWQoV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQqIHNl
bGYsIGdiCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUhUTUxGb3JtRWxlbWVudAorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVE
IFdlYktpdERPTUhUTUxGb3JtRWxlbWVudCoKIHdlYmtpdF9kb21faHRtbF9vcHRpb25fZWxlbWVu
dF9nZXRfZm9ybShXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAt
ODAsOCArODYsMTAgQEAgd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVtZW50X2dldF9mb3JtKFdl
YktpdERPTUhUTUxPcHRpb25FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MT3B0aW9uRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9vcHRp
b25fZWxlbWVudF9nZXRfbGFiZWwoV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTg5LDggKzk3LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vcHRpb25fZWxlbWVudF9n
ZXRfbGFiZWwoV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxPcHRpb25FbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRt
bF9vcHRpb25fZWxlbWVudF9zZXRfbGFiZWwoV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQqIHNl
bGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtOTgsOCArMTA4LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9vcHRpb25fZWxlbWVudF9zZXRfbGFiZWwoV2ViS2l0RE9NSFRNTE9wdGlvbkVs
ZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFu
CitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX29wdGlvbl9lbGVt
ZW50X2dldF9kZWZhdWx0X3NlbGVjdGVkKFdlYktpdERPTUhUTUxPcHRpb25FbGVtZW50KiBzZWxm
KTsKIAogLyoqCkBAIC0xMDcsOCArMTE5LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vcHRpb25fZWxl
bWVudF9nZXRfZGVmYXVsdF9zZWxlY3RlZChXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCoKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudAogICogQHZhbHVlOiBBICNnYm9v
bGVhbgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3
ZWJraXRfZG9tX2h0bWxfb3B0aW9uX2VsZW1lbnRfc2V0X2RlZmF1bHRfc2VsZWN0ZWQoV2ViS2l0
RE9NSFRNTE9wdGlvbkVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBAIC0x
MTYsOCArMTMwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9vcHRpb25fZWxlbWVudF9zZXRfZGVmYXVs
dF9zZWxlY3RlZChXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCoKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MT3B0aW9uRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRf
ZG9tX2h0bWxfb3B0aW9uX2VsZW1lbnRfZ2V0X3NlbGVjdGVkKFdlYktpdERPTUhUTUxPcHRpb25F
bGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMjUsOCArMTQxLDEwIEBAIHdlYmtpdF9kb21faHRt
bF9vcHRpb25fZWxlbWVudF9nZXRfc2VsZWN0ZWQoV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQq
IHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPcHRpb25FbGVtZW50CiAgKiBAdmFs
dWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9vcHRpb25fZWxlbWVudF9zZXRfc2VsZWN0ZWQoV2Vi
S2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBA
IC0xMzQsOCArMTUyLDEwIEBAIHdlYmtpdF9kb21faHRtbF9vcHRpb25fZWxlbWVudF9zZXRfc2Vs
ZWN0ZWQoV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQqIHNlbGYsIGdiCiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9t
X2h0bWxfb3B0aW9uX2VsZW1lbnRfZ2V0X3ZhbHVlKFdlYktpdERPTUhUTUxPcHRpb25FbGVtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC0xNDMsOCArMTYzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9vcHRp
b25fZWxlbWVudF9nZXRfdmFsdWUoV2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxPcHRpb25FbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dj
aGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF9vcHRpb25fZWxlbWVudF9zZXRfdmFsdWUoV2ViS2l0RE9NSFRNTE9wdGlv
bkVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTUyLDggKzE3
NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfb3B0aW9uX2VsZW1lbnRfc2V0X3ZhbHVlKFdlYktpdERP
TUhUTUxPcHRpb25FbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktpdERPTUhU
TUxPcHRpb25FbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX29wdGlv
bl9lbGVtZW50X2dldF90ZXh0KFdlYktpdERPTUhUTUxPcHRpb25FbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0xNjEsOCArMTg1LDEwIEBAIHdlYmtpdF9kb21faHRtbF9vcHRpb25fZWxlbWVudF9n
ZXRfdGV4dChXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTE9wdGlvbkVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9o
dG1sX29wdGlvbl9lbGVtZW50X2dldF9pbmRleChXZWJLaXRET01IVE1MT3B0aW9uRWxlbWVudCog
c2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTE9wdGlvbnNDb2xsZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwCmluZGV4IDljMTE4NjMzYmVl
MzEyYjA4YTY2MjhlZGQ2YjliNDQxMGRlMWVjYTYuLmM5ZjU0Y2MzNWZiOWFkNWU3MTdiZjZhYzMw
NjExYWZhMjM5NjVlYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwCkBAIC0zNCw2ICszNCw4IEBACiAj
aW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVD
X0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJL
aXRET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24qIGtpdChXZWJDb3JlOjpIVE1MT3B0aW9uc0NvbGxl
Y3Rpb24qIG9iaikKQEAgLTE2MywzICsxNjUsNCBAQCBndWxvbmcgd2Via2l0X2RvbV9odG1sX29w
dGlvbnNfY29sbGVjdGlvbl9nZXRfbGVuZ3RoKFdlYktpdERPTUhUTUxPcHRpb25zQ29sbGVjdAog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MT3B0aW9u
c0NvbGxlY3Rpb24uaAppbmRleCBiN2JjNjA5ZTM4OTNkNGQ5YTE3OWExYjAwNWRiZmIzZDJhMmYw
NTMzLi4wMGYwYTgzZDQxZWMzZjQwYzhhZWY4YjRlODc2ZTUzNzk2MzE5Y2JlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxPcHRpb25zQ29sbGVj
dGlvbi5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTE9wdGlvbnNDb2xs
ZWN0aW9uQ2xhc3MgewogICAgIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uQ2xhc3MgcGFyZW50X2Ns
YXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdl
YmtpdF9kb21faHRtbF9vcHRpb25zX2NvbGxlY3Rpb25fZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpA
QCAtNTQsOCArNTQsMTAgQEAgd2Via2l0X2RvbV9odG1sX29wdGlvbnNfY29sbGVjdGlvbl9nZXRf
dHlwZSh2b2lkKTsKICAqIEBuYW1lOiBBICNnY2hhcgogICoKICAqIFJldHVybnM6ICh0cmFuc2Zl
ciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUq
CitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9odG1sX29wdGlv
bnNfY29sbGVjdGlvbl9uYW1lZF9pdGVtKFdlYktpdERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbiog
c2VsZiwgY29uc3QgZ2NoYXIqIG5hbWUpOwogCiAvKioKQEAgLTYzLDggKzY1LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9vcHRpb25zX2NvbGxlY3Rpb25fbmFtZWRfaXRlbShXZWJLaXRET01IVE1MT3B0
aW9uc0NvbGxlY3Rpb24qIHNlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTE9wdGlvbnNDb2xs
ZWN0aW9uCiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZwor
V0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF9vcHRpb25zX2NvbGxlY3Rp
b25fZ2V0X3NlbGVjdGVkX2luZGV4KFdlYktpdERPTUhUTUxPcHRpb25zQ29sbGVjdGlvbiogc2Vs
Zik7CiAKIC8qKgpAQCAtNzIsOCArNzYsMTAgQEAgd2Via2l0X2RvbV9odG1sX29wdGlvbnNfY29s
bGVjdGlvbl9nZXRfc2VsZWN0ZWRfaW5kZXgoV2ViS2l0RE9NSFRNTE9wdGlvbnNDb2xsZWMKICAq
IEBzZWxmOiBBICNXZWJLaXRET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24KICAqIEB2YWx1ZTogQSAj
Z2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX29wdGlvbnNfY29sbGVjdGlvbl9zZXRfc2VsZWN0ZWRfaW5kZXgoV2Vi
S2l0RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uKiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAKIC8qKgpA
QCAtODEsOCArODcsMTAgQEAgd2Via2l0X2RvbV9odG1sX29wdGlvbnNfY29sbGVjdGlvbl9zZXRf
c2VsZWN0ZWRfaW5kZXgoV2ViS2l0RE9NSFRNTE9wdGlvbnNDb2xsZWMKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24KICAqCiAgKiBSZXR1cm5zOiBBICNndWxvbmcK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Via2l0
X2RvbV9odG1sX29wdGlvbnNfY29sbGVjdGlvbl9nZXRfbGVuZ3RoKFdlYktpdERPTUhUTUxPcHRp
b25zQ29sbGVjdGlvbiogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TFBhcmFncmFwaEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50LmNwcAppbmRl
eCAxMjQwMjhhMmMyMTgwZjIzMWQ0NDE3MzU1M2JlZmM3MjFlNjI4MWY5Li4wMWIyODU3MjBhMmU5
NjIwY2IzOTU4M2JkYWE3MzRiODM0ODE4ZTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFBhcmFncmFw
aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUGFyYWdyYXBoRWxlbWVudC5jcHAKQEAgLTM2LDYg
KzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIFdlYktpdERPTUhUTUxQYXJhZ3JhcGhFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTFBh
cmFncmFwaEVsZW1lbnQqIG9iaikKQEAgLTE2OCwzICsxNzAsNCBAQCB2b2lkIHdlYmtpdF9kb21f
aHRtbF9wYXJhZ3JhcGhfZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFBhcmFncmFwaEVs
ZW1lbnQqCiAgICAgaXRlbS0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJD
b3JlOjpIVE1MTmFtZXM6OmFsaWduQXR0ciwgY29udmVydGVkVmFsdWUpOwogfQogCitHX0dOVUNf
RU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFBhcmFncmFwaEVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MUGFyYWdyYXBoRWxlbWVudC5oCmluZGV4IGY4ZDkwMmZiYTAyMWQx
ZjhhODVlMGZkNThhMDlmZDYwZmIzYWYzMGQuLmFkNzNjNDUxOGZjMjk1Zjc0ODE2M2UzMjI2ZjRl
MzMzMDg4YjgyOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUGFyYWdyYXBoRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MUGFyYWdyYXBoRWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2Vi
S2l0RE9NSFRNTFBhcmFncmFwaEVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1l
bnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQ
UkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX3BhcmFncmFwaF9lbGVtZW50X2dldF90eXBl
KHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9wYXJhZ3Jh
cGhfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MUGFy
YWdyYXBoRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9wYXJhZ3Jh
cGhfZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFBhcmFncmFwaEVsZW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21faHRtbF9wYXJhZ3JhcGhfZWxl
bWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFBhcmFncmFwaEVsZW1lbnQqIHNlbGYpCiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTFBhcmFncmFwaEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2No
YXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9odG1sX3BhcmFncmFwaF9lbGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MUGFy
YWdyYXBoRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MUGFyYW1FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUGFyYW1FbGVt
ZW50LmNwcAppbmRleCA5OTUyN2FmM2MzYTM2YTViZmJhMjMxOTM3NjZhMzEwZTk1OGY1NGQzLi4y
OWJhMGYxMTVmNmU1ZDIxOTQxMGY3Y2IyN2E2NDUwODZkMDE5MDZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTFBhcmFtRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQuY3BwCkBAIC0z
Niw2ICszNiw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBXZWJLaXRET01IVE1MUGFyYW1FbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTFBh
cmFtRWxlbWVudCogb2JqKQpAQCAtMjc2LDMgKzI3OCw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1s
X3BhcmFtX2VsZW1lbnRfc2V0X3ZhbHVlX3R5cGUoV2ViS2l0RE9NSFRNTFBhcmFtRWxlbWVudCog
c2VsCiAgICAgaXRlbS0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3Jl
OjpIVE1MTmFtZXM6OnZhbHVldHlwZUF0dHIsIGNvbnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVD
X0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQYXJhbUVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MUGFyYW1FbGVtZW50LmgKaW5kZXggNjg4OGEwYjEwNWM5MzlmMDE2Yjhl
YWVmMTI4MTM0OTA3ZDBlMDBiNS4uMDhmNzEzYmNlZTc3MmY4ZWEzZjBhYjE1ZGQwOWJkNDZmMzE1
NWI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFBh
cmFtRWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTFBhcmFt
RWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFz
czsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJr
aXRfZG9tX2h0bWxfcGFyYW1fZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4
ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfcGFyYW1fZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MUGFyYW1FbGVtZW50CiAgKgogICogUmV0dXJuczog
QSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFy
Kgogd2Via2l0X2RvbV9odG1sX3BhcmFtX2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0RE9NSFRNTFBh
cmFtRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9o
dG1sX3BhcmFtX2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0RE9NSFRNTFBhcmFtRWxlbWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFBhcmFtRWxlbWVudAogICogQHZhbHVlOiBB
ICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2h0bWxfcGFyYW1fZWxlbWVudF9zZXRfbmFtZShXZWJLaXRET01IVE1MUGFy
YW1FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTcxLDggKzc1
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9wYXJhbV9lbGVtZW50X3NldF9uYW1lKFdlYktpdERPTUhU
TUxQYXJhbUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TFBhcmFtRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
Z2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9wYXJhbV9l
bGVtZW50X2dldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTFBhcmFtRWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtODAsOCArODYsMTAgQEAgd2Via2l0X2RvbV9odG1sX3BhcmFtX2VsZW1lbnRfZ2V0
X3R5cGVfYXR0cihXZWJLaXRET01IVE1MUGFyYW1FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MUGFyYW1FbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRt
bF9wYXJhbV9lbGVtZW50X3NldF90eXBlX2F0dHIoV2ViS2l0RE9NSFRNTFBhcmFtRWxlbWVudCog
c2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC04OSw4ICs5NywxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfcGFyYW1fZWxlbWVudF9zZXRfdHlwZV9hdHRyKFdlYktpdERPTUhUTUxQYXJh
bUVsZW1lbnQqIHNlbGYsIGNvbgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxQYXJhbUVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfcGFyYW1fZWxlbWVudF9nZXRf
dmFsdWUoV2ViS2l0RE9NSFRNTFBhcmFtRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtOTgsOCAr
MTA4LDEwIEBAIHdlYmtpdF9kb21faHRtbF9wYXJhbV9lbGVtZW50X2dldF92YWx1ZShXZWJLaXRE
T01IVE1MUGFyYW1FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MUGFy
YW1FbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9wYXJhbV9lbGVtZW50X3Nl
dF92YWx1ZShXZWJLaXRET01IVE1MUGFyYW1FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUpOwogCiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Via2l0X2RvbV9odG1sX3BhcmFtX2Vs
ZW1lbnRfc2V0X3ZhbHVlKFdlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQqIHNlbGYsIGNvbnN0IGcK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MUGFyYW1FbGVtZW50CiAgKgogICogUmV0dXJuczog
QSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFy
Kgogd2Via2l0X2RvbV9odG1sX3BhcmFtX2VsZW1lbnRfZ2V0X3ZhbHVlX3R5cGUoV2ViS2l0RE9N
SFRNTFBhcmFtRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTE2LDggKzEzMCwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfcGFyYW1fZWxlbWVudF9nZXRfdmFsdWVfdHlwZShXZWJLaXRET01IVE1MUGFy
YW1FbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MUGFyYW1FbGVtZW50
CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9wYXJhbV9lbGVtZW50X3NldF92YWx1ZV90
eXBlKFdlYktpdERPTUhUTUxQYXJhbUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7
CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFByZUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxQcmVFbGVtZW50LmNwcAppbmRleCBiOTljZjFmNDliMTcxYmNkZTBmYTViMzJlNjQyZjVh
NDgwYjZmZWI2Li40YWUyMTEzYTk2MjViODEwZTlhOWIxNTQ2MWM1NWExNTQ3MmUzMTczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTFByZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUHJlRWxlbWVudC5j
cHAKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxQcmVFbGVtZW50KiBraXQoV2ViQ29yZTo6
SFRNTFByZUVsZW1lbnQqIG9iaikKQEAgLTIwMCwzICsyMDIsNCBAQCB2b2lkIHdlYmtpdF9kb21f
aHRtbF9wcmVfZWxlbWVudF9zZXRfd3JhcChXZWJLaXRET01IVE1MUHJlRWxlbWVudCogc2VsZiwg
Z2Jvb2xlYQogICAgIGl0ZW0tPnNldEJvb2xlYW5BdHRyaWJ1dGUoV2ViQ29yZTo6SFRNTE5hbWVz
Ojp3cmFwQXR0ciwgdmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTFByZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUHJlRWxlbWVudC5o
CmluZGV4IDM4Y2RlOTRmYmZkNTkzMDU0ODI1NTYxMzQxZDZlOGJmYjJkNWE4YjQuLmIwYWNhMzky
ODViYmE5MmRhMWNiN2MwYjIwOTBmYWRlYjRiZTk3YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUHJl
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUHJlRWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0
cnVjdCBfV2ViS2l0RE9NSFRNTFByZUVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVs
ZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRf
REVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX3ByZV9lbGVtZW50X2dldF90eXBlKHZv
aWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9wcmVfZWxlbWVu
dF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MUHJlRWxlbWVudAog
ICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9E
RVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfcHJlX2VsZW1lbnRfZ2V0X3dpZHRoKFdl
YktpdERPTUhUTUxQcmVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfcHJlX2VsZW1lbnRfZ2V0X3dpZHRoKFdlYktpdERPTUhUTUxQcmVFbGVt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MUHJlRWxlbWVudAogICogQHZh
bHVlOiBBICNnbG9uZwogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfcHJlX2VsZW1lbnRfc2V0X3dpZHRoKFdlYktpdERPTUhU
TUxQcmVFbGVtZW50KiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAg
QEAgd2Via2l0X2RvbV9odG1sX3ByZV9lbGVtZW50X3NldF93aWR0aChXZWJLaXRET01IVE1MUHJl
RWxlbWVudCogc2VsZiwgZ2xvbmcgdmFsdWUKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MUHJl
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jv
b2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfcHJlX2Vs
ZW1lbnRfZ2V0X3dyYXAoV2ViS2l0RE9NSFRNTFByZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTgwLDggKzg2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9wcmVfZWxlbWVudF9nZXRfd3JhcChXZWJL
aXRET01IVE1MUHJlRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFBy
ZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3ByZV9lbGVtZW50X3Nl
dF93cmFwKFdlYktpdERPTUhUTUxQcmVFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAK
IEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFByaXZhdGUuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxQ
cml2YXRlLmNwcAppbmRleCAxMGIxMDRlY2UyMzAyM2I1ZDNhMjgxMzlhNWNiOTc2MTk2NDY5YmM1
Li5iYTQyMjllZDNkNDgxOGZjNzNmZTZiODhmZDVlNDEyYTc4ZWUzM2ViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTFByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUHJpdmF0ZS5jcHAKQEAgLTEzOSw2ICsx
MzksOCBAQAogI2luY2x1ZGUgIldlYktpdERPTUhUTUxUaXRsZUVsZW1lbnRQcml2YXRlLmgiCiAj
aW5jbHVkZSAiV2ViS2l0RE9NSFRNTFVMaXN0RWxlbWVudFByaXZhdGUuaCIKIAorR19HTlVDX0JF
R0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKQEAgLTI0MSwzICsyNDMsNCBAQCBXZWJLaXRET01IVE1MRWxlbWVu
dCogd3JhcChIVE1MRWxlbWVudCogZWxlbWVudCkKIH0KIAogfQorR19HTlVDX0VORF9JR05PUkVf
REVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxRdW90ZUVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TUhUTUxRdW90ZUVsZW1lbnQuY3BwCmluZGV4IDVkMmI0NGQwZWExMTg0NDE3YTk4YzM5NjRiNTg0
MDUxZGZiY2ExMjEuLmNmYjRiMzk3NjZiNTgxYWMzYWQ5NWZiZTBlNmM0MDVmNGMyMTc3NzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01IVE1MUXVvdGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFF1b3RlRWxl
bWVudC5jcHAKQEAgLTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsK
KwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxRdW90ZUVsZW1lbnQqIGtpdChX
ZWJDb3JlOjpIVE1MUXVvdGVFbGVtZW50KiBvYmopCkBAIC0xNjgsMyArMTcwLDQgQEAgdm9pZCB3
ZWJraXRfZG9tX2h0bWxfcXVvdGVfZWxlbWVudF9zZXRfY2l0ZShXZWJLaXRET01IVE1MUXVvdGVF
bGVtZW50KiBzZWxmLCBjb24KICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6Y2l0ZUF0dHIsIGNvbnZlcnRlZFZhbHVlKTsKIH0K
IAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxR
dW90ZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MUXVvdGVFbGVtZW50LmgKaW5kZXggODljMDg4MDhkZTEw
NTVlY2I2YjU3MjczMmY2YjhkNDQ4NTE3ZTY5NS4uZDY1ZTczNGVmZTI2Y2Q0MTVjZmFjN2MzMzMz
NzI0ZDM4YTAyYjI3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxRdW90ZUVsZW1lbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTFF1b3RlRWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9N
SFRNTFF1b3RlRWxlbWVudENsYXNzIHsKICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBh
cmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdU
eXBlCiB3ZWJraXRfZG9tX2h0bWxfcXVvdGVfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoq
CkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfcXVvdGVfZWxlbWVudF9nZXRfdHlw
ZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MUXVvdGVFbGVtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNB
VEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3F1b3RlX2VsZW1lbnRfZ2V0X2NpdGUoV2ViS2l0
RE9NSFRNTFF1b3RlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX3F1b3RlX2VsZW1lbnRfZ2V0X2NpdGUoV2ViS2l0RE9NSFRNTFF1b3RlRWxl
bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFF1b3RlRWxlbWVudAogICog
QHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfcXVvdGVfZWxlbWVudF9zZXRfY2l0ZShXZWJLaXRE
T01IVE1MUXVvdGVFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9E
RUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU2Ny
aXB0RWxlbWVudC5jcHAKaW5kZXggN2NmMzI1NzVkMTRjZjY2M2ZiOWI5NDBhY2E5ZGMxOGViYTJl
Nzg3OC4uOGIxNDFmZTNiMjQwMGEyOWZmZjNiNDMwODE5M2Q3NzM5ZWEwODc1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxTY3JpcHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQu
Y3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudCoga2l0KFdlYkNv
cmU6OkhUTUxTY3JpcHRFbGVtZW50KiBvYmopCkBAIC0zODAsMyArMzgyLDQgQEAgdm9pZCB3ZWJr
aXRfZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfc2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MU2Ny
aXB0RWxlbWVudCogc2UKICAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWRWYWx1ZSA9IFdURjo6U3Ry
aW5nOjpmcm9tVVRGOCh2YWx1ZSk7CiAgICAgaXRlbS0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OnR5cGVBdHRyLCBjb252ZXJ0ZWRWYWx1ZSk7
CiB9CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TFNjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudC5oCmluZGV4IDZiOThjNDc0
YTQ0ZTFmYTljN2RmODg1MDgxNWMzZmU1YmI5YjJjOGQuLjFhMTExOWRjNmNiMTA5OTc2YjY3OTMw
MWE0YjY3NjgxNjc0NzNkYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2Vi
S2l0RE9NSFRNTFNjcmlwdEVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRD
bGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVD
QVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X2dldF90eXBlKHZvaWQp
OwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF9zY3JpcHRfZWxlbWVu
dF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJL
SVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9zY3JpcHRfZWxlbWVudF9nZXRf
dGV4dChXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCAr
NjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X2dldF90ZXh0KFdlYktpdERP
TUhUTUxTY3JpcHRFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MU2Ny
aXB0RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRf
c2V0X3RleHQoV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2
YWx1ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NjcmlwdF9l
bGVtZW50X3NldF90ZXh0KFdlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50KiBzZWxmLCBjb25zdAog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50CiAgKgogICogUmV0dXJuczog
QSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFy
Kgogd2Via2l0X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X2dldF9odG1sX2ZvcihXZWJLaXRET01I
VE1MU2NyaXB0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtODAsOCArODYsMTAgQEAgd2Via2l0
X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X2dldF9odG1sX2ZvcihXZWJLaXRET01IVE1MU2NyaXB0
RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X3NldF9odG1sX2Zv
cihXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsK
IAogLyoqCkBAIC04OSw4ICs5NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRf
c2V0X2h0bWxfZm9yKFdlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50KiBzZWxmLCBjbwogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2No
YXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Vi
a2l0X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X2dldF9ldmVudChXZWJLaXRET01IVE1MU2NyaXB0
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtOTgsOCArMTA4LDEwIEBAIHdlYmtpdF9kb21faHRt
bF9zY3JpcHRfZWxlbWVudF9nZXRfZXZlbnQoV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNl
bGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50CiAgKiBAdmFsdWU6
IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZv
aWQKIHdlYmtpdF9kb21faHRtbF9zY3JpcHRfZWxlbWVudF9zZXRfZXZlbnQoV2ViS2l0RE9NSFRN
TFNjcmlwdEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTA3
LDggKzExOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfc2V0X2V2ZW50KFdl
YktpdERPTUhUTUxTY3JpcHRFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxTY3JpcHRFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1s
X3NjcmlwdF9lbGVtZW50X2dldF9jaGFyc2V0KFdlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC0xMTcsOCArMTMxLDEwIEBAIHdlYmtpdF9kb21faHRtbF9zY3JpcHRf
ZWxlbWVudF9nZXRfY2hhcnNldChXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudCogc2VsZik7CiAg
KiBAdmFsdWU6IEEgI2djaGFyCiAgKgogICogU2luY2U6IDIuMTYKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfc2NyaXB0X2VsZW1l
bnRfc2V0X2NoYXJzZXQoV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTI2LDggKzE0MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
c2NyaXB0X2VsZW1lbnRfc2V0X2NoYXJzZXQoV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNl
bGYsIGNvbgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9zY3JpcHRfZWxlbWVudF9nZXRfZGVm
ZXIoV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEzNSw4ICsx
NTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X2dldF9kZWZlcihXZWJLaXRE
T01IVE1MU2NyaXB0RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNj
cmlwdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3NjcmlwdF9lbGVt
ZW50X3NldF9kZWZlcihXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4g
dmFsdWUpOwogCiAvKioKQEAgLTE0NCw4ICsxNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3Njcmlw
dF9lbGVtZW50X3NldF9kZWZlcihXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudCogc2VsZiwgZ2Jv
b2wKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudAogICoKICAqIFJldHVy
bnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBn
Y2hhcioKIHdlYmtpdF9kb21faHRtbF9zY3JpcHRfZWxlbWVudF9nZXRfc3JjKFdlYktpdERPTUhU
TUxTY3JpcHRFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNTMsOCArMTc1LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9zY3JpcHRfZWxlbWVudF9nZXRfc3JjKFdlYktpdERPTUhUTUxTY3JpcHRFbGVt
ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudAogICog
QHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfc2NyaXB0X2VsZW1lbnRfc2V0X3NyYyhXZWJLaXRE
T01IVE1MU2NyaXB0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBA
IC0xNjIsOCArMTg2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9zY3JpcHRfZWxlbWVudF9zZXRfc3Jj
KFdlYktpdERPTUhUTUxTY3JpcHRFbGVtZW50KiBzZWxmLCBjb25zdCBnCiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9t
X2h0bWxfc2NyaXB0X2VsZW1lbnRfZ2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MU2NyaXB0RWxl
bWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTcxLDggKzE5NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
c2NyaXB0X2VsZW1lbnRfZ2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MU2NyaXB0RWxlbWVudCog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNjcmlwdEVsZW1lbnQKICAqIEB2YWx1
ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX3NjcmlwdF9lbGVtZW50X3NldF90eXBlX2F0dHIoV2ViS2l0
RE9NSFRNTFNjcmlwdEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdfRU5E
X0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxT
ZWxlY3RFbGVtZW50LmNwcAppbmRleCBhNDEwZTk4ZDIwMTBkMTNhMjgxODU3M2E1NjhhOTRiMTZm
NjNkMTdlLi4xOTBhY2JlZTc0NmZmNWQwNDRlZjdiZDEyMDViZTk1ZjdkY2E0ODBlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU2VsZWN0RWxlbWVu
dC5jcHAKQEAgLTQyLDYgKzQyLDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBraXQoV2Vi
Q29yZTo6SFRNTFNlbGVjdEVsZW1lbnQqIG9iaikKQEAgLTU2NSwzICs1NjcsNCBAQCBnYm9vbGVh
biB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X3dpbGxfdmFsaWRhdGUoV2ViS2l0
RE9NSFRNTFNlbGVjdEVsZQogICAgIGdib29sZWFuIHJlc3VsdCA9IGl0ZW0tPndpbGxWYWxpZGF0
ZSgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElP
TlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU2VsZWN0
RWxlbWVudC5oCmluZGV4IGRlOGYzMjQ1Njk1NGY5MmFjNGZiOTIxNjA4MzRmOWI4MzJiYjFkMTEu
LjA5MmNkZWUyNmM2ODQ2N2ZmZmM5ODczZDIzNDUyZDNlNWI0M2ZkOTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01IVE1MU2VsZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudC5oCkBAIC00
NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnRDbGFzcyB7CiAg
ICAgV2ViS2l0RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRf
QVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX3NlbGVj
dF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTU0LDggKzU0LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBpbmRleDogQSAj
Z3Vsb25nCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2Rl
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktp
dERPTU5vZGUqCiB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfaXRlbShXZWJLaXRET01I
VE1MU2VsZWN0RWxlbWVudCogc2VsZiwgZ3Vsb25nIGluZGV4KTsKIAogLyoqCkBAIC02NCw4ICs2
NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfaXRlbShXZWJLaXRET01IVE1M
U2VsZWN0RWxlbWVudCogc2VsZiwgZ3Vsb25nIGluZAogICogQG5hbWU6IEEgI2djaGFyCiAgKgog
ICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3
ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfbmFtZWRfaXRlbShXZWJLaXRET01IVE1MU2Vs
ZWN0RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWUpOwogCiAvKioKQEAgLTc1LDggKzc5
LDEwIEBAIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9uYW1lZF9pdGVtKFdlYktpdERP
TUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmLCBjb25zCiAgKiBAYmVmb3JlOiBBICNXZWJLaXRET01I
VE1MRWxlbWVudAogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9h
ZGQoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYsIFdlYktpdERPTUhUTUxFbGVtZW50
KiBlbGVtZW50LCBXZWJLaXRET01IVE1MRWxlbWVudCogYmVmb3JlLCBHRXJyb3IqKiBlcnJvcik7
CiAKIC8qKgpAQCAtODQsOCArOTAsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50
X2FkZChXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudCogc2VsZiwgV2ViS2l0RE9NSFQKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudAogICogQGluZGV4OiBBICNnbG9uZwog
ICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRf
ZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfcmVtb3ZlKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50
KiBzZWxmLCBnbG9uZyBpbmRleCk7CiAKIC8qKgpAQCAtOTMsOCArMTAxLDEwIEBAIHdlYmtpdF9k
b21faHRtbF9zZWxlY3RfZWxlbWVudF9yZW1vdmUoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQq
IHNlbGYsIGdsb25nIGluCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitX
RUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50
X2dldF9hdXRvZm9jdXMoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYpOwogCiAvKioK
QEAgLTEwMiw4ICsxMTIsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dldF9h
dXRvZm9jdXMoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dib29sZWFuCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF9zZWxlY3RfZWxlbWVudF9zZXRfYXV0b2ZvY3VzKFdlYktpdERPTUhUTUxTZWxlY3RFbGVt
ZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTExLDggKzEyMywxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfc2V0X2F1dG9mb2N1cyhXZWJLaXRET01IVE1M
U2VsZWN0RWxlbWVudCogc2VsZiwgZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTZWxlY3RF
bGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9v
bGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9zZWxlY3Rf
ZWxlbWVudF9nZXRfZGlzYWJsZWQoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTEyMCw4ICsxMzQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50
X2dldF9kaXNhYmxlZChXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4K
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X3NldF9kaXNhYmxlZChXZWJLaXRET01IVE1MU2VsZWN0
RWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTEyOSw4ICsxNDUsMTAg
QEAgd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X3NldF9kaXNhYmxlZChXZWJLaXRET01I
VE1MU2VsZWN0RWxlbWVudCogc2VsZiwgZ2IKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MU2Vs
ZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9N
SFRNTEZvcm1FbGVtZW50CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50
KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50Kgogd2Via2l0X2Rv
bV9odG1sX3NlbGVjdF9lbGVtZW50X2dldF9mb3JtKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50
KiBzZWxmKTsKIAogLyoqCkBAIC0xMzgsOCArMTU2LDEwIEBAIHdlYmtpdF9kb21faHRtbF9zZWxl
Y3RfZWxlbWVudF9nZXRfZm9ybShXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudCogc2VsZik7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBn
Ym9vbGVhbgogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dldF9tdWx0aXBsZShXZWJL
aXRET01IVE1MU2VsZWN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTQ3LDggKzE2NywxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X211bHRpcGxlKFdlYktpdERPTUhU
TUxTZWxlY3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MU2VsZWN0
RWxlbWVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lk
CitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRf
c2V0X211bHRpcGxlKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2
YWx1ZSk7CiAKIC8qKgpAQCAtMTU2LDggKzE3OCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0
X2VsZW1lbnRfc2V0X211bHRpcGxlKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmLCBn
YgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50CiAgKgogICogUmV0dXJu
czogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdj
aGFyKgogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dldF9uYW1lKFdlYktpdERPTUhU
TUxTZWxlY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNjUsOCArMTg5LDEwIEBAIHdlYmtp
dF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9nZXRfbmFtZShXZWJLaXRET01IVE1MU2VsZWN0RWxl
bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQKICAq
IEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X3NldF9uYW1lKFdlYktp
dERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioK
QEAgLTE3NCw4ICsyMDAsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X3NldF9u
YW1lKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21f
aHRtbF9zZWxlY3RfZWxlbWVudF9nZXRfc2l6ZShXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMTgzLDggKzIxMSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0
X2VsZW1lbnRfZ2V0X3NpemUoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dsb25n
CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtp
dF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9zZXRfc2l6ZShXZWJLaXRET01IVE1MU2VsZWN0RWxl
bWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioKQEAgLTE5Miw4ICsyMjIsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X3NldF9zaXplKFdlYktpdERPTUhUTUxTZWxlY3RF
bGVtZW50KiBzZWxmLCBnbG9uZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTZWxlY3RFbGVt
ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dF
QktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dl
dF9zZWxlY3RfdHlwZShXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpA
QCAtMjAxLDggKzIzMywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X3Nl
bGVjdF90eXBlKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmKQogICogQHNlbGY6IEEg
I1dlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1
bGwpOiBBICNXZWJLaXRET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24KKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBX
ZWJLaXRET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRE
T01IVE1MT3B0aW9uc0NvbGxlY3Rpb24qCiB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRf
Z2V0X29wdGlvbnMoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTIxMCw4ICsyNDQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dldF9vcHRp
b25zKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MU2VsZWN0RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2d1bG9uZworICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGd1bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vsb25nCiB3ZWJraXRfZG9tX2h0
bWxfc2VsZWN0X2VsZW1lbnRfZ2V0X2xlbmd0aChXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtMjIwLDggKzI1NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0
X2VsZW1lbnRfZ2V0X2xlbmd0aChXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudCogc2VsZik7CiAg
KiBAdmFsdWU6IEEgI2d1bG9uZwogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9zZWxlY3Rf
ZWxlbWVudF9zZXRfbGVuZ3RoKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmLCBndWxv
bmcgdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0yMjksOCArMjY3LDEwIEBAIHdl
YmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9zZXRfbGVuZ3RoKFdlYktpdERPTUhUTUxTZWxl
Y3RFbGVtZW50KiBzZWxmLCBndWxvCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVjdEVs
ZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitX
RUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1sX3NlbGVjdF9lbGVtZW50X2dl
dF9zZWxlY3RlZF9pbmRleChXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudCogc2VsZik7CiAKIC8q
KgpAQCAtMjM4LDggKzI3OCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1lbnRfZ2V0
X3NlbGVjdGVkX2luZGV4KFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZQogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dsb25nCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF9zZWxlY3RfZWxlbWVudF9zZXRfc2VsZWN0ZWRfaW5kZXgoV2ViS2l0RE9NSFRNTFNlbGVj
dEVsZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCkBAIC0yNDcsOCArMjg5LDEwIEBA
IHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9zZXRfc2VsZWN0ZWRfaW5kZXgoV2ViS2l0
RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFNlbGVj
dEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFy
KgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfc2VsZWN0X2VsZW1l
bnRfZ2V0X3ZhbHVlKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC0yNTYsOCArMzAwLDEwIEBAIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9nZXRfdmFs
dWUoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxTZWxlY3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF9zZWxl
Y3RfZWxlbWVudF9zZXRfdmFsdWUoV2ViS2l0RE9NSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGYsIGNv
bnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjY1LDggKzMxMSwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfc2VsZWN0X2VsZW1lbnRfc2V0X3ZhbHVlKFdlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50
KiBzZWxmLCBjb25zdAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTZWxlY3RFbGVtZW50CiAg
KgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF9zZWxlY3RfZWxlbWVudF9n
ZXRfd2lsbF92YWxpZGF0ZShXZWJLaXRET01IVE1MU2VsZWN0RWxlbWVudCogc2VsZik7CiAKIEdf
RU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TFN0eWxlRWxlbWVudC5jcHAKaW5kZXggYWQxZGRiOTBjNGY4OTFmNjA1YWNlNTc1NDU0YmVhMjU2
ZGE1YWMwMy4uZTc0Nzg4YjExZTYyOTJiNThmMjg4MzIwMTM2NTYwYTc0NjM5ZDk5ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxTdHlsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU3R5bGVFbGVtZW50
LmNwcApAQCAtMzcsNiArMzcsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudCoga2l0KFdlYkNv
cmU6OkhUTUxTdHlsZUVsZW1lbnQqIG9iaikKQEAgLTI2MCwzICsyNjIsNCBAQCBXZWJLaXRET01T
dHlsZVNoZWV0KiB3ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9nZXRfc2hlZXQoV2ViS2l0
RE9NSFRNTFN0eWxlRQogICAgIFJlZlB0cjxXZWJDb3JlOjpTdHlsZVNoZWV0PiBnb2JqZWN0UmVz
dWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+c2hlZXQoKSk7CiAgICAgcmV0dXJuIFdlYktpdDo6a2l0
KGdvYmplY3RSZXN1bHQuZ2V0KCkpOwogfQorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05T
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxTdHlsZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MU3R5bGVFbGVt
ZW50LmgKaW5kZXggOTk4ZWMyY2E5NzhlODE5OGRmMjg3ZmI0NzQzMjc2N2I1YzJkMzhhNC4uMmE3
NjQ1Zjg4ZDdkNGNhODZkYzc4MzI2MTYyM2YzNDY1Mjc4MzlhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxTdHlsZUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudC5oCkBAIC00NSw3ICs0
NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudENsYXNzIHsKICAgICBXZWJL
aXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5
cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVu
dF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfc3R5bGVfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MU3R5bGVFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRt
bF9zdHlsZV9lbGVtZW50X2dldF9kaXNhYmxlZChXZWJLaXRET01IVE1MU3R5bGVFbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxl
bWVudF9nZXRfZGlzYWJsZWQoV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudCogc2VsZik7CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudAogICogQHZhbHVlOiBBICNnYm9vbGVh
bgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJr
aXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9zZXRfZGlzYWJsZWQoV2ViS2l0RE9NSFRNTFN0eWxl
RWxlbWVudCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAvKioKQEAgLTcxLDggKzc1LDEwIEBA
IHdlYmtpdF9kb21faHRtbF9zdHlsZV9lbGVtZW50X3NldF9kaXNhYmxlZChXZWJLaXRET01IVE1M
U3R5bGVFbGVtZW50KiBzZWxmLCBnYm9vCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFN0eWxl
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIq
CitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF9zdHlsZV9lbGVtZW50
X2dldF9tZWRpYShXZWJLaXRET01IVE1MU3R5bGVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04
MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9nZXRfbWVkaWEoV2Vi
S2l0RE9NSFRNTFN0eWxlRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TFN0eWxlRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVu
dF9zZXRfbWVkaWEoV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIq
IHZhbHVlKTsKIAogLyoqCkBAIC04OSw4ICs5NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfc3R5bGVf
ZWxlbWVudF9zZXRfbWVkaWEoV2ViS2l0RE9NSFRNTFN0eWxlRWxlbWVudCogc2VsZiwgY29uc3Qg
ZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTdHlsZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2No
YXIqCiB3ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9nZXRfdHlwZV9hdHRyKFdlYktpdERP
TUhUTUxTdHlsZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTk4LDggKzEwOCwxMCBAQCB3ZWJr
aXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9nZXRfdHlwZV9hdHRyKFdlYktpdERPTUhUTUxTdHls
ZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxTdHlsZUVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3N0eWxlX2VsZW1lbnRfc2V0X3R5cGVfYXR0
cihXZWJLaXRET01IVE1MU3R5bGVFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwog
CiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Via2l0X2RvbV9odG1sX3N0eWxlX2VsZW1lbnRf
c2V0X3R5cGVfYXR0cihXZWJLaXRET01IVE1MU3R5bGVFbGVtZW50KiBzZWxmLCBjb24KICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MU3R5bGVFbGVtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5z
ZmVyIGZ1bGwpOiBBICNXZWJLaXRET01TdHlsZVNoZWV0CisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0
RE9NU3R5bGVTaGVldCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTVN0eWxlU2hlZXQqCiB3
ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9nZXRfc2hlZXQoV2ViS2l0RE9NSFRNTFN0eWxl
RWxlbWVudCogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxl
Q2FwdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmNwcAppbmRl
eCA2ZGE0YjkwNjY3NDI5NWZlNGY0MjliZjMyNjZiMGJmZTYwODQ2MjY1Li44YWI5NThiZjZmMDNm
MTAyNTlkNGY0NzUzOTQ1MTMyYTNiNGVjYzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlQ2Fw
dGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5jcHAKQEAg
LTM2LDYgKzM2LDggQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIFdlYktpdERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50KiBraXQoV2ViQ29y
ZTo6SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQqIG9iaikKQEAgLTE2OCwzICsxNzAsNCBAQCB2b2lk
IHdlYmtpdF9kb21faHRtbF90YWJsZV9jYXB0aW9uX2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERP
TUhUTUxUYWJsZUNhcHRpb25FbAogICAgIGl0ZW0tPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJv
bml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjphbGlnbkF0dHIsIGNvbnZlcnRlZFZhbHVlKTsK
IH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxUYWJsZUNhcHRpb25FbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaApp
bmRleCA0ZTkyZDZlNjliNGI1ODdjZDY3NzE2MWQ1ZTAyMjlkY2IwYWM2YmQwLi5jMjk3NDYzOTg2
ZDI3ZmM0ZmI2MTRhN2FlMTY3NjIzNWI1YjY3Yzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxl
Q2FwdGlvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaApAQCAt
NDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50Q2xh
c3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAot
V0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRt
bF90YWJsZV9jYXB0aW9uX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCAr
NTMsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NhcHRpb25fZWxlbWVudF9nZXRfdHlwZSh2
b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudAogICoK
ICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jYXB0aW9uX2VsZW1lbnRfZ2V0
X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBA
IC02Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2FwdGlvbl9lbGVtZW50X2dl
dF9hbGlnbihXZWJLaXRET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudAogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF90YWJsZV9jYXB0aW9uX2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZUNh
cHRpb25FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVD
ZWxsRWxlbWVudC5jcHAKaW5kZXggYWJkNzZiY2M4YzAxMmNhZDgxNmYwODU5NDllZDhmMDIzNzUx
NjBjNi4uNmI3OWZjN2Y4YWYwOTM4OTEwM2VmYmE5NjEzZWFkYjBlODc0Yzg5ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVs
ZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7
CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCog
a2l0KFdlYkNvcmU6OkhUTUxUYWJsZUNlbGxFbGVtZW50KiBvYmopCkBAIC02NTMsMyArNjU1LDQg
QEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X3NldF9zY29wZShXZWJL
aXRET01IVE1MVGFibGVDZWxsRWxlbWVudCoKICAgICBpdGVtLT5zZXRTY29wZShjb252ZXJ0ZWRW
YWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MVGFibGVDZWxsRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50LmgK
aW5kZXggODFjZmYxNWYyNTBkNTk3NGZiNWFkZDI3YjZjNWNhNTQyMTUwMTZiOS4uZGVmNzVjNjU3
ZDA0ZWViY2UwMWUzMTJlMDcxOGMzZjNkYjZiMTk4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJs
ZUNlbGxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50LmgKQEAgLTQ1LDcg
KzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudENsYXNzIHsKICAg
ICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9B
UEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVf
Y2VsbF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdl
YmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Vi
a2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9nZXRfY2VsbF9pbmRleChXZWJLaXRET01I
VE1MVGFibGVDZWxsRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9nZXRfY2VsbF9pbmRleChXZWJLaXRET01I
VE1MVGFibGVDZWxsRWxlbWVudCoKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxs
RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIq
CitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2Vs
ZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50
X2dldF9hbGlnbihXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZgogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZUNl
bGxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTgwLDggKzg2
LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0X2FsaWduKFdlYktp
dERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxmCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TFRhYmxlQ2VsbEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfY2VsbF9lbGVtZW50X2dldF9heGlzKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBz
ZWxmKTsKIAogLyoqCkBAIC04OSw4ICs5NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2Vs
bF9lbGVtZW50X2dldF9heGlzKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxmKQog
ICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50CiAgKiBAdmFsdWU6IEEg
I2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQK
IHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0X2F4aXMoV2ViS2l0RE9NSFRN
TFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAt
OTgsOCArMTA4LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0X2F4
aXMoV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYsCiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9t
X2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dldF9iZ19jb2xvcihXZWJLaXRET01IVE1MVGFibGVD
ZWxsRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTA3LDggKzExOSwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dldF9iZ19jb2xvcihXZWJLaXRET01IVE1MVGFibGVD
ZWxsRWxlbWVudCogcwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50
CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9E
RVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0X2Jn
X2NvbG9yKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciog
dmFsdWUpOwogCiAvKioKQEAgLTExNiw4ICsxMzAsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxl
X2NlbGxfZWxlbWVudF9zZXRfYmdfY29sb3IoV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQq
IHMKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudAogICoKICAqIFJl
dHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRF
RCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X2NoKFdlYktp
dERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMjUsOCArMTQxLDEw
IEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X2NoKFdlYktpdERPTUhU
TUxUYWJsZUNlbGxFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFi
bGVDZWxsRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2
b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9l
bGVtZW50X3NldF9jaChXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZiwgY29uc3Qg
Z2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMzQsOCArMTUyLDEwIEBAIHdlYmtpdF9kb21faHRt
bF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0X2NoKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50
KiBzZWxmLCBjCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dldF9j
aF9vZmYoV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE0
Myw4ICsxNjMsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9nZXRfY2hf
b2ZmKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWwKICAqIEBzZWxmOiBBICNXZWJL
aXRET01IVE1MVGFibGVDZWxsRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxf
dGFibGVfY2VsbF9lbGVtZW50X3NldF9jaF9vZmYoV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTUyLDggKzE3NCwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X3NldF9jaF9vZmYoV2ViS2l0RE9N
SFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJs
ZUNlbGxFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxs
X2VsZW1lbnRfZ2V0X2NvbF9zcGFuKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxm
KTsKIAogLyoqCkBAIC0xNjEsOCArMTg1LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxs
X2VsZW1lbnRfZ2V0X2NvbF9zcGFuKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzCiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9zZXRfY29sX3NwYW4oV2ViS2l0RE9N
SFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAogLyoqCkBAIC0xNzAs
OCArMTk2LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0X2NvbF9z
cGFuKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9odG1s
X3RhYmxlX2NlbGxfZWxlbWVudF9nZXRfcm93X3NwYW4oV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVs
ZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE3OSw4ICsyMDcsMTAgQEAgd2Via2l0X2RvbV9odG1s
X3RhYmxlX2NlbGxfZWxlbWVudF9nZXRfcm93X3NwYW4oV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVs
ZW1lbnQqIHMKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudAogICog
QHZhbHVlOiBBICNnbG9uZwogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVD
QVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X3NldF9yb3dfc3Bh
bihXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAv
KioKQEAgLTE4OCw4ICsyMTgsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVu
dF9zZXRfcm93X3NwYW4oV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHMKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dj
aGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdl
YmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X2hlYWRlcnMoV2ViS2l0RE9NSFRN
TFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE5Nyw4ICsyMjksMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9nZXRfaGVhZGVycyhXZWJLaXRET01IVE1M
VGFibGVDZWxsRWxlbWVudCogc2UKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxs
RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitX
RUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50
X3NldF9oZWFkZXJzKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50KiBzZWxmLCBjb25zdCBn
Y2hhciogdmFsdWUpOwogCiAvKioKQEAgLTIwNiw4ICsyNDAsMTAgQEAgd2Via2l0X2RvbV9odG1s
X3RhYmxlX2NlbGxfZWxlbWVudF9zZXRfaGVhZGVycyhXZWJLaXRET01IVE1MVGFibGVDZWxsRWxl
bWVudCogc2UKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudAogICoK
ICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQ
UkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X2hl
aWdodChXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjE1
LDggKzI1MSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dldF9oZWln
aHQoV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbAogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxUYWJsZUNlbGxFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90
YWJsZV9jZWxsX2VsZW1lbnRfc2V0X2hlaWdodChXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVu
dCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0yMjQsOCArMjYyLDEwIEBA
IHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0X2hlaWdodChXZWJLaXRET01I
VE1MVGFibGVDZWxsRWxlbWVudCogc2VsCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxl
Q2VsbEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9odG1sX3Rh
YmxlX2NlbGxfZWxlbWVudF9nZXRfbm9fd3JhcChXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtMjMzLDggKzI3MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfY2VsbF9lbGVtZW50X2dldF9ub193cmFwKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50
KiBzZQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50CiAgKiBAdmFs
dWU6IEEgI2dib29sZWFuCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0X25vX3dyYXAo
V2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAog
LyoqCkBAIC0yNDIsOCArMjg0LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1l
bnRfc2V0X25vX3dyYXAoV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlCiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
Y2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3
ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dldF92X2FsaWduKFdlYktpdERPTUhU
TUxUYWJsZUNlbGxFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNTEsOCArMjk1LDEwIEBAIHdl
YmtpdF9kb21faHRtbF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X3ZfYWxpZ24oV2ViS2l0RE9NSFRN
TFRhYmxlQ2VsbEVsZW1lbnQqIHNlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVu
dF9zZXRfdl9hbGlnbihXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZiwgY29uc3Qg
Z2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0yNjAsOCArMzA2LDEwIEBAIHdlYmtpdF9kb21faHRt
bF90YWJsZV9jZWxsX2VsZW1lbnRfc2V0X3ZfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVs
ZW1lbnQqIHNlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dldF93
aWR0aChXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjY5
LDggKzMxNywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X2dldF93aWR0
aChXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZgogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxUYWJsZUNlbGxFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90
YWJsZV9jZWxsX2VsZW1lbnRfc2V0X3dpZHRoKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50
KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTI3OCw4ICszMjgsMTAgQEAg
d2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRN
TFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVD
ZWxsRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2No
YXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jZWxs
X2VsZW1lbnRfZ2V0X2FiYnIoV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTI4Nyw4ICszMzksMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxl
bWVudF9nZXRfYWJicihXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZikKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hh
cgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJr
aXRfZG9tX2h0bWxfdGFibGVfY2VsbF9lbGVtZW50X3NldF9hYmJyKFdlYktpdERPTUhUTUxUYWJs
ZUNlbGxFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTI5Niw4
ICszNTAsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9zZXRfYWJicihX
ZWJLaXRET01IVE1MVGFibGVDZWxsRWxlbWVudCogc2VsZiwKICAqIEBzZWxmOiBBICNXZWJLaXRE
T01IVE1MVGFibGVDZWxsRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRt
bF90YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X3Njb3BlKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0zMDUsOCArMzYxLDEwIEBAIHdlYmtpdF9kb21faHRtbF90
YWJsZV9jZWxsX2VsZW1lbnRfZ2V0X3Njb3BlKFdlYktpdERPTUhUTUxUYWJsZUNlbGxFbGVtZW50
KiBzZWxmCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQKICAqIEB2
YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FU
RUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2NlbGxfZWxlbWVudF9zZXRfc2NvcGUoV2Vi
S2l0RE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAK
IEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTFRhYmxlQ29sRWxlbWVudC5jcHAKaW5kZXggNDY3M2JjYTFjZGFhNTg5ZTEyZjk5OTk5
NGRlNTI4OWJjMWFjYWY3Mi4uMDkwZjIwOTJkMzg1N2RmYWI3M2ZlNjEyZTJkOWZmNzRmM2NiZDcw
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
VGFibGVDb2xFbGVtZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQ
UkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTFRhYmxlQ29s
RWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxUYWJsZUNvbEVsZW1lbnQqIG9iaikKQEAgLTM0Niwz
ICszNDgsNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF90YWJsZV9jb2xfZWxlbWVudF9zZXRfd2lk
dGgoV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudCogcwogICAgIGl0ZW0tPnNldEF0dHJpYnV0
ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjp3aWR0aEF0dHIsIGNv
bnZlcnRlZFZhbHVlKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVDb2xFbGVt
ZW50LmgKaW5kZXggNTczOWEyMDA3NDU5YmNlNGUyNjRmMjY3Mjc0YWJiYzJkYjkzYTY2ZS4uNzJh
MjQwZjEzNjRlZDk1YmJhZmJhM2ZmMWY2ZDM0MTYzOWVhYWMxOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhU
TUxUYWJsZUNvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudC5oCkBAIC00
NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudENsYXNzIHsK
ICAgICBXZWJLaXRET01IVE1MRWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJ
VF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfY29sX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAg
d2Via2l0X2RvbV9odG1sX3RhYmxlX2NvbF9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
Y2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3
ZWJraXRfZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRfZ2V0X2FsaWduKFdlYktpdERPTUhUTUxU
YWJsZUNvbEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9k
b21faHRtbF90YWJsZV9jb2xfZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlQ29s
RWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVu
dAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRf
REVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRfc2V0X2Fs
aWduKFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1
ZSk7CiAKIC8qKgpAQCAtNzEsOCArNzUsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NvbF9l
bGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50KiBzZWxmLAogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIq
CiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRfZ2V0X2NoKFdlYktpdERPTUhUTUxU
YWJsZUNvbEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTgwLDggKzg2LDEwIEBAIHdlYmtpdF9k
b21faHRtbF90YWJsZV9jb2xfZWxlbWVudF9nZXRfY2goV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxl
bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudAog
ICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRfc2V0X2NoKFdl
YktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAK
IC8qKgpAQCAtODksOCArOTcsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NvbF9lbGVtZW50
X3NldF9jaChXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50KiBzZWxmLCBjb24KICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2No
YXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Vi
a2l0X2RvbV9odG1sX3RhYmxlX2NvbF9lbGVtZW50X2dldF9jaF9vZmYoV2ViS2l0RE9NSFRNTFRh
YmxlQ29sRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtOTgsOCArMTA4LDEwIEBAIHdlYmtpdF9k
b21faHRtbF90YWJsZV9jb2xfZWxlbWVudF9nZXRfY2hfb2ZmKFdlYktpdERPTUhUTUxUYWJsZUNv
bEVsZW1lbnQqIHNlbGYpCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVu
dAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRf
REVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRfc2V0X2No
X29mZihXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUpOwogCiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2Nv
bF9lbGVtZW50X3NldF9jaF9vZmYoV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudCogc2VsZiwK
ICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50CiAgKgogICogUmV0dXJu
czogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xv
bmcKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jb2xfZWxlbWVudF9nZXRfc3BhbihXZWJLaXRET01I
VE1MVGFibGVDb2xFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMTYsOCArMTMwLDEwIEBAIHdl
YmtpdF9kb21faHRtbF90YWJsZV9jb2xfZWxlbWVudF9nZXRfc3BhbihXZWJLaXRET01IVE1MVGFi
bGVDb2xFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVDb2xF
bGVtZW50CiAgKiBAdmFsdWU6IEEgI2dsb25nCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9jb2xfZWxlbWVudF9z
ZXRfc3BhbihXZWJLaXRET01IVE1MVGFibGVDb2xFbGVtZW50KiBzZWxmLCBnbG9uZyB2YWx1ZSk7
CiAKIC8qKgpAQCAtMTI1LDggKzE0MSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY29sX2Vs
ZW1lbnRfc2V0X3NwYW4oV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudCogc2VsZiwgZwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIq
CiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRfZ2V0X3ZfYWxpZ24oV2ViS2l0RE9N
SFRNTFRhYmxlQ29sRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTM0LDggKzE1MiwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRfZ2V0X3ZfYWxpZ24oV2ViS2l0RE9NSFRN
TFRhYmxlQ29sRWxlbWVudCogc2VsZgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNv
bEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2NvbF9lbGVtZW50
X3NldF92X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTQzLDggKzE2MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
dGFibGVfY29sX2VsZW1lbnRfc2V0X3ZfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVu
dCogc2VsZgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQKICAqCiAg
KiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJF
Q0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfY29sX2VsZW1lbnRfZ2V0X3dpZHRo
KFdlYktpdERPTUhUTUxUYWJsZUNvbEVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE1Miw4ICsx
NzQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2NvbF9lbGVtZW50X2dldF93aWR0aChXZWJL
aXRET01IVE1MVGFibGVDb2xFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MVGFibGVDb2xFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9j
b2xfZWxlbWVudF9zZXRfd2lkdGgoV2ViS2l0RE9NSFRNTFRhYmxlQ29sRWxlbWVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
VGFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVFbGVtZW50LmNwcAppbmRleCBkMjRlZmEy
ZTEyNzFlNTE5OTU5YWFhZDdmMzBlN2RkMTczMzc5OWZkLi5iYmI1NTQ3NDQwMWU3ZTcwYTRjODJj
NDJhMDA3NzQxMWJmMGQ4Zjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQuY3BwCkBAIC00MCw2ICs0MCw4IEBACiAjaW5jbHVk
ZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorR19HTlVDX0JFR0lO
X0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01I
VE1MVGFibGVFbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTFRhYmxlRWxlbWVudCogb2JqKQpAQCAt
NjYzLDMgKzY2NSw0IEBAIHZvaWQgd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfc2V0X3dp
ZHRoKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYsIGNvCiAgICAgaXRlbS0+c2V0QXR0
cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OndpZHRoQXR0
ciwgY29udmVydGVkVmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZUVsZW1l
bnQuaAppbmRleCA5ZjJkOWY1YjFmMGRhZTQ1ZWIyZWJhNTczZGNkZGUyMGQ4NjZkN2JhLi5mYTc4
YmZlMzc3OWUxMzNlYWMxNWMyMjY0Njc5MjViNTk1ZmQzYWQyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TFRhYmxlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1
LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1MVGFibGVFbGVtZW50Q2xhc3MgewogICAgIFdlYktp
dERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlw
ZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50
X2dldF90eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDE2ICs1MywyMCBAQCB3ZWJraXRfZG9tX2h0
bWxfdGFibGVfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01I
VE1MVGFibGVFbGVtZW50CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJL
aXRET01IVE1MRWxlbWVudAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxFbGVtZW50Kgor
V0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTEVsZW1lbnQqCiB3ZWJraXRfZG9tX2h0bWxf
dGFibGVfZWxlbWVudF9jcmVhdGVfdF9oZWFkKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNl
bGYpOwogCiAvKioKICAqIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2RlbGV0ZV90X2hl
YWQ6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudAogICoKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfZWxlbWVudF9kZWxldGVfdF9oZWFkKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYp
OwogCiAvKioKQEAgLTcwLDE2ICs3NCwyMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVu
dF9kZWxldGVfdF9oZWFkKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNm
ZXIgbm9uZSk6IEEgI1dlYktpdERPTUhUTUxFbGVtZW50CisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0
RE9NSFRNTEVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1MRWxlbWVudCoK
IHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2NyZWF0ZV90X2Zvb3QoV2ViS2l0RE9NSFRN
TFRhYmxlRWxlbWVudCogc2VsZik7CiAKIC8qKgogICogd2Via2l0X2RvbV9odG1sX3RhYmxlX2Vs
ZW1lbnRfZGVsZXRlX3RfZm9vdDoKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVFbGVt
ZW50CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2RlbGV0ZV90X2Zvb3QoV2ViS2l0RE9NSFRNTFRh
YmxlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtODcsMTYgKzk1LDIwIEBAIHdlYmtpdF9kb21f
aHRtbF90YWJsZV9lbGVtZW50X2RlbGV0ZV90X2Zvb3QoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVu
dCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudAogICoKICAq
IFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NSFRNTEVsZW1lbnQKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBXZWJLaXRET01IVE1MRWxlbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktp
dERPTUhUTUxFbGVtZW50Kgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfY3JlYXRlX2Nh
cHRpb24oV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZik7CiAKIC8qKgogICogd2Via2l0
X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZGVsZXRlX2NhcHRpb246CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTFRhYmxlRWxlbWVudAogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRf
REVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9kZWxldGVfY2Fw
dGlvbihXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMDYsOCAr
MTE4LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2RlbGV0ZV9jYXB0aW9uKFdl
YktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogICogQGVycm9yOiAjR0Vycm9yCiAgKgog
ICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01IVE1MRWxlbWVudAorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIFdlYktpdERPTUhUTUxFbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2Vi
S2l0RE9NSFRNTEVsZW1lbnQqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9pbnNlcnRf
cm93KFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYsIGdsb25nIGluZGV4LCBHRXJyb3Iq
KiBlcnJvcik7CiAKIC8qKgpAQCAtMTE2LDggKzEzMCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfZWxlbWVudF9pbnNlcnRfcm93KFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYsIGds
b25nCiAgKiBAaW5kZXg6IEEgI2dsb25nCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3Rh
YmxlX2VsZW1lbnRfZGVsZXRlX3JvdyhXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmLCBn
bG9uZyBpbmRleCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTEyNSw4ICsxNDEsMTAgQEAg
d2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZGVsZXRlX3JvdyhXZWJLaXRET01IVE1MVGFi
bGVFbGVtZW50KiBzZWxmLCBnbG9uZwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUVs
ZW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUhUTUxU
YWJsZUNhcHRpb25FbGVtZW50CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTFRhYmxlQ2Fw
dGlvbkVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1MVGFibGVDYXB0aW9u
RWxlbWVudCoKIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2dldF9jYXB0aW9uKFdlYktp
dERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEzNSw4ICsxNTMsMTAgQEAg
d2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0X2NhcHRpb24oV2ViS2l0RE9NSFRNTFRh
YmxlRWxlbWVudCogc2VsZik7CiAgKiBAdmFsdWU6IEEgI1dlYktpdERPTUhUTUxUYWJsZUNhcHRp
b25FbGVtZW50CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfc2V0
X2NhcHRpb24oV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZiwgV2ViS2l0RE9NSFRNTFRh
YmxlQ2FwdGlvbkVsZW1lbnQqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMTQ0
LDggKzE2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9zZXRfY2FwdGlvbihX
ZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmLCBXZWJLaQogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxUYWJsZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEg
I1dlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50CisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0
RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01I
VE1MVGFibGVTZWN0aW9uRWxlbWVudCoKIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2dl
dF90X2hlYWQoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTU0
LDggKzE3NiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9nZXRfdF9oZWFkKFdl
YktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBBICNXZWJLaXRET01I
VE1MVGFibGVTZWN0aW9uRWxlbWVudAogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJs
ZV9lbGVtZW50X3NldF90X2hlYWQoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZiwgV2Vi
S2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7CiAK
IC8qKgpAQCAtMTYzLDggKzE4NywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9z
ZXRfdF9oZWFkKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYsIFdlYktpdAogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNm
ZXIgbm9uZSk6IEEgI1dlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50CisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRF
RCBXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudCoKIHdlYmtpdF9kb21faHRtbF90YWJs
ZV9lbGVtZW50X2dldF90X2Zvb3QoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtMTczLDggKzE5OSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9n
ZXRfdF9mb290KFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogICogQHZhbHVlOiBB
ICNXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogICogQGVycm9yOiAjR0Vycm9yCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21faHRtbF90YWJsZV9lbGVtZW50X3NldF90X2Zvb3QoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVu
dCogc2VsZiwgV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIHZhbHVlLCBHRXJyb3Iq
KiBlcnJvcik7CiAKIC8qKgpAQCAtMTgyLDggKzIxMCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfZWxlbWVudF9zZXRfdF9mb290KFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYsIFdl
YktpdAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQKICAqCiAgKiBSZXR1
cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUhUTUxDb2xsZWN0aW9uCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCitXRUJLSVRfREVQUkVDQVRFRCBXZWJL
aXRET01IVE1MQ29sbGVjdGlvbioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2dldF9y
b3dzKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE5MSw4ICsy
MjEsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0X3Jvd3MoV2ViS2l0RE9N
SFRNTFRhYmxlRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxl
RWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NSFRN
TENvbGxlY3Rpb24KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKK1dF
QktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgogd2Via2l0X2RvbV9odG1s
X3RhYmxlX2VsZW1lbnRfZ2V0X3RfYm9kaWVzKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNl
bGYpOwogCiAvKioKQEAgLTIwMCw4ICsyMzIsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2Vs
ZW1lbnRfZ2V0X3RfYm9kaWVzKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
Y2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3
ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxl
RWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjA5LDggKzI0MywxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfdGFibGVfZWxlbWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudAogICogQHZhbHVlOiBB
ICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lk
CiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRh
YmxlRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0yMTgsOCAr
MjU0LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X3NldF9hbGlnbihXZWJLaXRE
T01IVE1MVGFibGVFbGVtZW50KiBzZWxmLCBjb25zdCBnCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTFRhYmxlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJs
ZV9lbGVtZW50X2dldF9iZ19jb2xvcihXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsK
IAogLyoqCkBAIC0yMjcsOCArMjY1LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50
X2dldF9iZ19jb2xvcihXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MVGFibGVFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF90YWJsZV9lbGVtZW50X3NldF9iZ19jb2xvcihXZWJLaXRET01IVE1MVGFibGVFbGVtZW50
KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTIzNiw4ICsyNzYsMTAgQEAg
d2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfc2V0X2JnX2NvbG9yKFdlYktpdERPTUhUTUxU
YWJsZUVsZW1lbnQqIHNlbGYsIGNvbnMKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVF
bGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioK
K1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRf
Z2V0X2JvcmRlcihXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0y
NDUsOCArMjg3LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2dldF9ib3JkZXIo
V2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTFRhYmxlRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxl
bWVudF9zZXRfYm9yZGVyKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdj
aGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMjU0LDggKzI5OCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
dGFibGVfZWxlbWVudF9zZXRfYm9yZGVyKFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYs
IGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudAogICoKICAqIFJl
dHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRF
RCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2dldF9jZWxsX3BhZGRpbmco
V2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMjYzLDggKzMwOSwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9nZXRfY2VsbF9wYWRkaW5nKFdlYktp
dERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxU
YWJsZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9p
ZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRf
c2V0X2NlbGxfcGFkZGluZyhXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmLCBjb25zdCBn
Y2hhciogdmFsdWUpOwogCiAvKioKQEAgLTI3Miw4ICszMjAsMTAgQEAgd2Via2l0X2RvbV9odG1s
X3RhYmxlX2VsZW1lbnRfc2V0X2NlbGxfcGFkZGluZyhXZWJLaXRET01IVE1MVGFibGVFbGVtZW50
KiBzZWxmLAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9nZXRfY2VsbF9zcGFjaW5n
KFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTI4MSw4ICszMzEs
MTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0X2NlbGxfc3BhY2luZyhXZWJL
aXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
VGFibGVFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50
X3NldF9jZWxsX3NwYWNpbmcoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZiwgY29uc3Qg
Z2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0yOTAsOCArMzQyLDEwIEBAIHdlYmtpdF9kb21faHRt
bF90YWJsZV9lbGVtZW50X3NldF9jZWxsX3NwYWNpbmcoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVu
dCogc2VsZiwKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVFbGVtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNB
VEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0X3J1bGVzKFdlYktp
dERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTI5OSw4ICszNTMsMTAgQEAg
d2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfZ2V0X3J1bGVzKFdlYktpdERPTUhUTUxUYWJs
ZUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQK
ICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfc2V0X3J1bGVzKFdl
YktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8q
KgpAQCAtMzA4LDggKzM2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfZWxlbWVudF9zZXRf
cnVsZXMoV2ViS2l0RE9NSFRNTFRhYmxlRWxlbWVudCogc2VsZiwgY29uc3QgZwogICogQHNlbGY6
IEEgI1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRf
ZG9tX2h0bWxfdGFibGVfZWxlbWVudF9nZXRfc3VtbWFyeShXZWJLaXRET01IVE1MVGFibGVFbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0zMTcsOCArMzc1LDEwIEBAIHdlYmtpdF9kb21faHRtbF90
YWJsZV9lbGVtZW50X2dldF9zdW1tYXJ5KFdlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZUVsZW1lbnQKICAqIEB2YWx1ZTogQSAj
Z2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAog
d2Via2l0X2RvbV9odG1sX3RhYmxlX2VsZW1lbnRfc2V0X3N1bW1hcnkoV2ViS2l0RE9NSFRNTFRh
YmxlRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0zMjYsOCAr
Mzg2LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X3NldF9zdW1tYXJ5KFdlYktp
dERPTUhUTUxUYWJsZUVsZW1lbnQqIHNlbGYsIGNvbnN0CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
SFRNTFRhYmxlRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJs
ZV9lbGVtZW50X2dldF93aWR0aChXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0zMzUsOCArMzk3LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9lbGVtZW50X2dl
dF93aWR0aChXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MVGFibGVFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90
YWJsZV9lbGVtZW50X3NldF93aWR0aChXZWJLaXRET01IVE1MVGFibGVFbGVtZW50KiBzZWxmLCBj
b25zdCBnY2hhciogdmFsdWUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxU
YWJsZVJvd0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQuY3BwCmluZGV4IGM3
N2MyYTZlZGMwZGUzMjM3MzkwZjBhY2EyY2MwYjk5ZGEwNzRmNzAuLmM4NzRmNTgzZDE4OWE2NTQ2
OWFlODgxMDAzNDVkOWUxZjcyYTZiNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGFibGVSb3dFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudC5jcHAKQEAgLTM4LDYgKzM4LDgg
QEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitH
X0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIGtpdChXZWJDb3JlOjpIVE1MVGFibGVSb3dF
bGVtZW50KiBvYmopCkBAIC00MTEsMyArNDEzLDQgQEAgdm9pZCB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfcm93X2VsZW1lbnRfc2V0X3ZfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudCoK
ICAgICBpdGVtLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhU
TUxOYW1lczo6dmFsaWduQXR0ciwgY29udmVydGVkVmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lH
Tk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudC5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQuaAppbmRleCAwMzc5MWY2YzRkYTIxZWYxMzNmZGJl
Y2YyNjk4YzYwOWY5NDU3Mjg1Li45MmVjMWU1YjUwZDQ4NGE1Njk5ZDFhM2ZjZDNiNzQzNjhjYjRh
Nzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
VGFibGVSb3dFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01IVE1M
VGFibGVSb3dFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFy
ZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5
cGUKIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKIAog
LyoqCkBAIC01NSw4ICs1NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRf
Z2V0X3R5cGUodm9pZCk7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJh
bnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTUhUTUxFbGVtZW50CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2Vi
S2l0RE9NSFRNTEVsZW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1MRWxlbWVu
dCoKIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9pbnNlcnRfY2VsbChXZWJLaXRE
T01IVE1MVGFibGVSb3dFbGVtZW50KiBzZWxmLCBnbG9uZyBpbmRleCwgR0Vycm9yKiogZXJyb3Ip
OwogCiAvKioKQEAgLTY1LDggKzY3LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxl
bWVudF9pbnNlcnRfY2VsbChXZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50KiBzZWxmCiAgKiBA
aW5kZXg6IEEgI2dsb25nCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jvd19l
bGVtZW50X2RlbGV0ZV9jZWxsKFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNlbGYsIGds
b25nIGluZGV4LCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtNzQsOCArNzgsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X2RlbGV0ZV9jZWxsKFdlYktpdERPTUhUTUxU
YWJsZVJvd0VsZW1lbnQqIHNlbGYKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVSb3dF
bGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZwor
V0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVu
dF9nZXRfcm93X2luZGV4KFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTgzLDggKzg5LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9n
ZXRfcm93X2luZGV4KFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNlCiAgKiBAc2VsZjog
QSAjV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25n
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRf
ZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRfZ2V0X3NlY3Rpb25fcm93X2luZGV4KFdlYktpdERP
TUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTkyLDggKzEwMCwxMCBAQCB3
ZWJraXRfZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRfZ2V0X3NlY3Rpb25fcm93X2luZGV4KFdl
YktpdERPTUhUTUxUYWJsZVJvd0VsZQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZVJv
d0VsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTUhU
TUxDb2xsZWN0aW9uCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qCitX
RUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01IVE1MQ29sbGVjdGlvbioKIHdlYmtpdF9kb21faHRt
bF90YWJsZV9yb3dfZWxlbWVudF9nZXRfY2VsbHMoV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtMTAxLDggKzExMSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfcm93X2VsZW1lbnRfZ2V0X2NlbGxzKFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNl
bGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FU
RUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRfZ2V0X2FsaWduKFdl
YktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTExMCw4ICsxMjIs
MTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X2dldF9hbGlnbihXZWJLaXRE
T01IVE1MVGFibGVSb3dFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
VGFibGVSb3dFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3df
ZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudCogc2VsZiwgY29u
c3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMTksOCArMTMzLDEwIEBAIHdlYmtpdF9kb21f
aHRtbF90YWJsZV9yb3dfZWxlbWVudF9zZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxl
bWVudCogc2VsZiwKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50CiAg
KgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9E
RVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X2dldF9i
Z19jb2xvcihXZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0x
MjgsOCArMTQ0LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9nZXRfYmdf
Y29sb3IoV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudCogc2VsCiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxf
dGFibGVfcm93X2VsZW1lbnRfc2V0X2JnX2NvbG9yKFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1l
bnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTM3LDggKzE1NSwxMCBA
QCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRfc2V0X2JnX2NvbG9yKFdlYktpdERP
TUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNlbAogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJs
ZVJvd0VsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfcm93
X2VsZW1lbnRfZ2V0X2NoKFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNlbGYpOwogCiAv
KioKQEAgLTE0Niw4ICsxNjYsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50
X2dldF9jaChXZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21f
aHRtbF90YWJsZV9yb3dfZWxlbWVudF9zZXRfY2goV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVu
dCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xNTUsOCArMTc3LDEwIEBA
IHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9zZXRfY2goV2ViS2l0RE9NSFRNTFRh
YmxlUm93RWxlbWVudCogc2VsZiwgY29uCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxl
Um93RWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2No
YXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21faHRtbF90YWJsZV9yb3df
ZWxlbWVudF9nZXRfY2hfb2ZmKFdlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNlbGYpOwog
CiAvKioKQEAgLTE2NCw4ICsxODgsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jvd19lbGVt
ZW50X2dldF9jaF9vZmYoV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudCogc2VsZikKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFy
CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtp
dF9kb21faHRtbF90YWJsZV9yb3dfZWxlbWVudF9zZXRfY2hfb2ZmKFdlYktpdERPTUhUTUxUYWJs
ZVJvd0VsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTczLDgg
KzE5OSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFibGVfcm93X2VsZW1lbnRfc2V0X2NoX29mZihX
ZWJLaXRET01IVE1MVGFibGVSb3dFbGVtZW50KiBzZWxmLAogICogQHNlbGY6IEEgI1dlYktpdERP
TUhUTUxUYWJsZVJvd0VsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxf
dGFibGVfcm93X2VsZW1lbnRfZ2V0X3ZfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVu
dCogc2VsZik7CiAKIC8qKgpAQCAtMTgyLDggKzIxMCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGFi
bGVfcm93X2VsZW1lbnRfZ2V0X3ZfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlUm93RWxlbWVudCog
c2VsZgogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZVJvd0VsZW1lbnQKICAqIEB2YWx1
ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX3Jvd19lbGVtZW50X3NldF92X2FsaWduKFdlYktp
dERPTUhUTUxUYWJsZVJvd0VsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIEdf
RU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNwcAppbmRleCA1MDkzNjM4YTM4MzBiYzZhNWZj
ZDMzMmY3NjZlYWJiYmE0ZGMzNWZkLi5mOTQzODE0OTA0M2IzNmFjM2YxYzJlNjRjNGJhYjRiMjI5
MDdlYzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudC5jcHAKQEAgLTM4LDYgKzM4LDggQEAKICNpbmNs
dWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitHX0dOVUNfQkVH
SU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERP
TUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBraXQoV2ViQ29yZTo6SFRNTFRhYmxlU2VjdGlvbkVs
ZW1lbnQqIG9iaikKQEAgLTMyOCwzICszMzAsNCBAQCBXZWJLaXRET01IVE1MQ29sbGVjdGlvbiog
d2Via2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVudF9nZXRfcm93cyhXZWJLaXRETwog
ICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKIH0KIAorR19HTlVD
X0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUYWJsZVNlY3Rp
b25FbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaAppbmRleCBiMGY3YjNi
MjEzYzAzZjdmNTA0NDhmOGUyMGI3Y2ZhYTU5YWEzOGRhLi42OTJlMDg0MjE3MTRiYjk4NjBlNTlj
OTk0ZjZmNjAwMGRmOWQxYjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaApAQCAtNDUsNyArNDUsNyBA
QCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Q2xhc3MgewogICAgIFdl
YktpdERPTUhUTUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBH
VHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF90YWJsZV9zZWN0
aW9uX2VsZW1lbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTUsOCArNTUsMTAgQEAgd2Vi
a2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBl
cnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0
RE9NSFRNTEVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MRWxlbWVudCoKK1dF
QktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxFbGVtZW50Kgogd2Via2l0X2RvbV9odG1sX3Rh
YmxlX3NlY3Rpb25fZWxlbWVudF9pbnNlcnRfcm93KFdlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25F
bGVtZW50KiBzZWxmLCBnbG9uZyBpbmRleCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTY1
LDggKzY3LDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfaW5zZXJ0
X3JvdyhXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVuCiAgKiBAaW5kZXg6IEEgI2dsb25n
CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVudF9kZWxl
dGVfcm93KFdlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBzZWxmLCBnbG9uZyBpbmRl
eCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTc0LDggKzc4LDEwIEBAIHdlYmtpdF9kb21f
aHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfZGVsZXRlX3JvdyhXZWJLaXRET01IVE1MVGFibGVT
ZWN0aW9uRWxlbWVuCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfc2VjdGlvbl9lbGVt
ZW50X2dldF9hbGlnbihXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtODMsOCArODksMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxl
bWVudF9nZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hh
cgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJr
aXRfZG9tX2h0bWxfdGFibGVfc2VjdGlvbl9lbGVtZW50X3NldF9hbGlnbihXZWJLaXRET01IVE1M
VGFibGVTZWN0aW9uRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBA
IC05Miw4ICsxMDAsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVudF9z
ZXRfYWxpZ24oV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2djaGFy
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtp
dF9kb21faHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfZ2V0X2NoKFdlYktpdERPTUhUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMDEsOCArMTExLDEwIEBAIHdlYmtp
dF9kb21faHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfZ2V0X2NoKFdlYktpdERPTUhUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50KiBzCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAor
V0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxl
bWVudF9zZXRfY2goV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIHNlbGYsIGNvbnN0
IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAtMTEwLDggKzEyMiwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfdGFibGVfc2VjdGlvbl9lbGVtZW50X3NldF9jaChXZWJLaXRET01IVE1MVGFibGVTZWN0aW9u
RWxlbWVudCogcwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVu
dF9nZXRfY2hfb2ZmKFdlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50KiBzZWxmKTsKIAog
LyoqCkBAIC0xMTksOCArMTMzLDEwIEBAIHdlYmtpdF9kb21faHRtbF90YWJsZV9zZWN0aW9uX2Vs
ZW1lbnRfZ2V0X2NoX29mZihXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVuCiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2No
YXIKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Vi
a2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVudF9zZXRfY2hfb2ZmKFdlYktpdERPTUhU
TUxUYWJsZVNlY3Rpb25FbGVtZW50KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioK
QEAgLTEyOCw4ICsxNDQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVu
dF9zZXRfY2hfb2ZmKFdlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW4KICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dj
aGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdl
YmtpdF9kb21faHRtbF90YWJsZV9zZWN0aW9uX2VsZW1lbnRfZ2V0X3ZfYWxpZ24oV2ViS2l0RE9N
SFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTEzNyw4ICsxNTUsMTAg
QEAgd2Via2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVudF9nZXRfdl9hbGlnbihXZWJL
aXRET01IVE1MVGFibGVTZWN0aW9uRWxlbWUKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFi
bGVTZWN0aW9uRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgogICoKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGFibGVfc2Vj
dGlvbl9lbGVtZW50X3NldF92X2FsaWduKFdlYktpdERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50
KiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUpOwogCiAvKioKQEAgLTE0Niw4ICsxNjYsMTAgQEAg
d2Via2l0X2RvbV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVudF9zZXRfdl9hbGlnbihXZWJLaXRE
T01IVE1MVGFibGVTZWN0aW9uRWxlbWUKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGFibGVT
ZWN0aW9uRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0
RE9NSFRNTENvbGxlY3Rpb24KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01IVE1MQ29sbGVjdGlv
bioKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTUhUTUxDb2xsZWN0aW9uKgogd2Via2l0X2Rv
bV9odG1sX3RhYmxlX3NlY3Rpb25fZWxlbWVudF9nZXRfcm93cyhXZWJLaXRET01IVE1MVGFibGVT
ZWN0aW9uRWxlbWVudCogc2VsZik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRN
TFRleHRBcmVhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKaW5kZXgg
MTUyODNkYWFiZGFmYjAzNGQ0NDk2MDdiNjZkODhlZjgwMWFlNmIwNy4uODAwZDJkM2Y4ZGY2MzUz
Y2ZkNDUzYzA5NDg4ODBlMTAwYzYxYWI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUZXh0QXJlYUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50LmNwcApAQCAtMzgsNiArMzgs
OCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAK
K0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxUZXh0QXJl
YUVsZW1lbnQqIG9iaikKQEAgLTU3MiwzICs1NzQsNCBAQCBnYm9vbGVhbiB3ZWJraXRfZG9tX2h0
bWxfdGV4dF9hcmVhX2VsZW1lbnRfaXNfZWRpdGVkKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1l
bgogCiAgICAgcmV0dXJuIFdlYktpdDo6Y29yZShhcmVhKS0+bGFzdENoYW5nZVdhc1VzZXJFZGl0
KCk7CiB9CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
SFRNTFRleHRBcmVhRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQuaAppbmRleCBi
ODg3ZTU0YjliYmJjZGQxZWZlODVjNWQwZGQwNzVhMWIyYjlhMDgzLi4wZTlkYzE1Y2I2NjdkZjE0
MjRjZjBkZTJhYjkxNmY5NGE0NzZiNDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50LmgKQEAgLTQ1LDE1ICs0NSwxNyBA
QCBzdHJ1Y3QgX1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnRDbGFzcyB7CiAgICAgV2ViS2l0
RE9NSFRNTEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBl
CitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVt
ZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioKICAqIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFf
ZWxlbWVudF9zZWxlY3Q6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVu
dAogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJr
aXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfc2VsZWN0KFdlYktpdERPTUhUTUxUZXh0QXJl
YUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTYzLDggKzY1LDEwIEBAIHdlYmtpdF9kb21faHRt
bF90ZXh0X2FyZWFfZWxlbWVudF9zZWxlY3QoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCog
c2VsZik7CiAgKiBAZW5kOiBBICNnbG9uZwogICogQGRpcmVjdGlvbjogQSAjZ2NoYXIKICAqCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9o
dG1sX3RleHRfYXJlYV9lbGVtZW50X3NldF9zZWxlY3Rpb25fcmFuZ2UoV2ViS2l0RE9NSFRNTFRl
eHRBcmVhRWxlbWVudCogc2VsZiwgZ2xvbmcgc3RhcnQsIGdsb25nIGVuZCwgY29uc3QgZ2NoYXIq
IGRpcmVjdGlvbik7CiAKIC8qKgpAQCAtNzIsOCArNzYsMTAgQEAgd2Via2l0X2RvbV9odG1sX3Rl
eHRfYXJlYV9lbGVtZW50X3NldF9zZWxlY3Rpb25fcmFuZ2UoV2ViS2l0RE9NSFRNTFRleHRBcmVh
RWxlbWUKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKgogICog
UmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9nZXRf
YXV0b2ZvY3VzKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAg
LTgxLDggKzg3LDEwIEBAIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfYXV0
b2ZvY3VzKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlCiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudAogICogQHZhbHVlOiBBICNnYm9vbGVhbgogICoKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0
bWxfdGV4dF9hcmVhX2VsZW1lbnRfc2V0X2F1dG9mb2N1cyhXZWJLaXRET01IVE1MVGV4dEFyZWFF
bGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7CiAKIC8qKgpAQCAtOTAsOCArOTgsMTAgQEAg
d2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X3NldF9hdXRvZm9jdXMoV2ViS2l0RE9N
SFRNTFRleHRBcmVhRWxlbWVudCogc2UKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGV4dEFy
ZWFFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBn
Ym9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21faHRtbF90ZXh0
X2FyZWFfZWxlbWVudF9nZXRfZGlzYWJsZWQoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCog
c2VsZik7CiAKIC8qKgpAQCAtOTksOCArMTA5LDEwIEBAIHdlYmtpdF9kb21faHRtbF90ZXh0X2Fy
ZWFfZWxlbWVudF9nZXRfZGlzYWJsZWQoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogc2Vs
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudAogICogQHZhbHVlOiBB
ICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2
b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfc2V0X2Rpc2FibGVkKFdlYktp
dERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBA
IC0xMDgsOCArMTIwLDEwIEBAIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9zZXRf
ZGlzYWJsZWQoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogc2VsCiAgKiBAc2VsZjogQSAj
V2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBu
b25lKTogQSAjV2ViS2l0RE9NSFRNTEZvcm1FbGVtZW50CisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0
RE9NSFRNTEZvcm1FbGVtZW50KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NSFRNTEZvcm1F
bGVtZW50Kgogd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF9mb3JtKFdlYktp
dERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTExNyw4ICsxMzEsMTAg
QEAgd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF9mb3JtKFdlYktpdERPTUhU
TUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUZXh0
QXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdj
aGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVh
X2VsZW1lbnRfZ2V0X25hbWUoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtMTI2LDggKzE0MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1l
bnRfZ2V0X25hbWUoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogc2VsZik7CiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudAogICogQHZhbHVlOiBBICNnY2hhcgog
ICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRf
ZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfc2V0X25hbWUoV2ViS2l0RE9NSFRNTFRleHRBcmVh
RWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAogLyoqCkBAIC0xMzUsOCArMTUz
LDEwIEBAIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9zZXRfbmFtZShXZWJLaXRE
T01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmLCBjCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TFRleHRBcmVhRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0
bWxfdGV4dF9hcmVhX2VsZW1lbnRfZ2V0X3JlYWRfb25seShXZWJLaXRET01IVE1MVGV4dEFyZWFF
bGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNDQsOCArMTY0LDEwIEBAIHdlYmtpdF9kb21faHRt
bF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfcmVhZF9vbmx5KFdlYktpdERPTUhUTUxUZXh0QXJlYUVs
ZW1lbnQqIHNlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudAogICog
QHZhbHVlOiBBICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfc2V0X3JlYWRf
b25seShXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmLCBnYm9vbGVhbiB2YWx1ZSk7
CiAKIC8qKgpAQCAtMTUzLDggKzE3NSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2Vs
ZW1lbnRfc2V0X3JlYWRfb25seShXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZQogICog
QHNlbGY6IEEgI1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBB
ICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwog
d2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF9yb3dzKFdlYktpdERPTUhUTUxU
ZXh0QXJlYUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTE2Miw4ICsxODYsMTAgQEAgd2Via2l0
X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF9yb3dzKFdlYktpdERPTUhUTUxUZXh0QXJl
YUVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1l
bnQKICAqIEB2YWx1ZTogQSAjZ2xvbmcKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lU
X0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X3NldF9y
b3dzKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYsIGdsb25nIHZhbHVlKTsKIAog
LyoqCkBAIC0xNzEsOCArMTk3LDEwIEBAIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVu
dF9zZXRfcm93cyhXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmLCBnCiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2ds
b25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJr
aXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfZ2V0X2NvbHMoV2ViS2l0RE9NSFRNTFRleHRB
cmVhRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTgwLDggKzIwOCwxMCBAQCB3ZWJraXRfZG9t
X2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfZ2V0X2NvbHMoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxl
bWVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudAog
ICogQHZhbHVlOiBBICNnbG9uZwogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQ
UkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfc2V0X2NvbHMo
V2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogc2VsZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioK
QEAgLTE4OSw4ICsyMTksMTAgQEAgd2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X3Nl
dF9jb2xzKFdlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYsIGcKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0
X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF9hcmVhX3R5cGUoV2ViS2l0RE9NSFRNTFRl
eHRBcmVhRWxlbWVudCogc2VsZik7CiAKIC8qKgpAQCAtMTk4LDggKzIzMCwxMCBAQCB3ZWJraXRf
ZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfZ2V0X2FyZWFfdHlwZShXZWJLaXRET01IVE1MVGV4
dEFyZWFFbGVtZW50KiBzZQogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1l
bnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRf
Z2V0X2RlZmF1bHRfdmFsdWUoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogc2VsZik7CiAK
IC8qKgpAQCAtMjA3LDggKzI0MSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1l
bnRfZ2V0X2RlZmF1bHRfdmFsdWUoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudAogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2NoYXIK
ICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0
X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X3NldF9kZWZhdWx0X3ZhbHVlKFdlYktpdERPTUhU
TUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAKIC8qKgpAQCAt
MjE2LDggKzI1MiwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfc2V0X2Rl
ZmF1bHRfdmFsdWUoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudAogICogQHNlbGY6IEEgI1dl
YktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9t
X2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfZ2V0X3ZhbHVlKFdlYktpdERPTUhUTUxUZXh0QXJlYUVs
ZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTIyNSw4ICsyNjMsMTAgQEAgd2Via2l0X2RvbV9odG1s
X3RleHRfYXJlYV9lbGVtZW50X2dldF92YWx1ZShXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50
KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKiBA
dmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9zZXRfdmFsdWUoV2Vi
S2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlKTsKIAog
LyoqCkBAIC0yMzQsOCArMjc0LDEwIEBAIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVu
dF9zZXRfdmFsdWUoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudCogc2VsZiwKICAqIEBzZWxm
OiBBICNXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKgogICogUmV0dXJuczogQSAjZ2Jv
b2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xl
YW4KIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfd2lsbF92YWxpZGF0ZShX
ZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNDMsOCArMjg1
LDEwIEBAIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVudF9nZXRfd2lsbF92YWxpZGF0
ZShXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRN
TFRleHRBcmVhRWxlbWVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX2h0bWxfdGV4dF9h
cmVhX2VsZW1lbnRfZ2V0X3NlbGVjdGlvbl9zdGFydChXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVt
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yNTIsOCArMjk2LDEwIEBAIHdlYmtpdF9kb21faHRtbF90
ZXh0X2FyZWFfZWxlbWVudF9nZXRfc2VsZWN0aW9uX3N0YXJ0KFdlYktpdERPTUhUTUxUZXh0QXJl
YUVsZW1lCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxlbWVudAogICogQHZh
bHVlOiBBICNnbG9uZwogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRF
RCB2b2lkCiB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfc2V0X3NlbGVjdGlvbl9z
dGFydChXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAK
IC8qKgpAQCAtMjYxLDggKzMwNywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1l
bnRfc2V0X3NlbGVjdGlvbl9zdGFydChXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZQogICogQHNl
bGY6IEEgI1dlYktpdERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Vi
a2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF9zZWxlY3Rpb25fZW5kKFdlYktpdERP
TUhUTUxUZXh0QXJlYUVsZW1lbnQqIHNlbGYpOwogCiAvKioKQEAgLTI3MCw4ICszMTgsMTAgQEAg
d2Via2l0X2RvbV9odG1sX3RleHRfYXJlYV9lbGVtZW50X2dldF9zZWxlY3Rpb25fZW5kKFdlYktp
dERPTUhUTUxUZXh0QXJlYUVsZW1lbnQKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVGV4dEFy
ZWFFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2dsb25nCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90ZXh0X2FyZWFfZWxlbWVu
dF9zZXRfc2VsZWN0aW9uX2VuZChXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50KiBzZWxmLCBn
bG9uZyB2YWx1ZSk7CiAKIC8qKgpAQCAtMjc5LDggKzMyOSwxMCBAQCB3ZWJraXRfZG9tX2h0bWxf
dGV4dF9hcmVhX2VsZW1lbnRfc2V0X3NlbGVjdGlvbl9lbmQoV2ViS2l0RE9NSFRNTFRleHRBcmVh
RWxlbWVudAogICogQGlucHV0OiBBICNXZWJLaXRET01IVE1MVGV4dEFyZWFFbGVtZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnYm9vbGVhbiB3ZWJraXRf
ZG9tX2h0bWxfdGV4dF9hcmVhX2VsZW1lbnRfaXNfZWRpdGVkKFdlYktpdERPTUhUTUxUZXh0QXJl
YUVsZW1lbnQqIGlucHV0KTsKK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuIHdlYmtpdF9kb21f
aHRtbF90ZXh0X2FyZWFfZWxlbWVudF9pc19lZGl0ZWQoV2ViS2l0RE9NSFRNTFRleHRBcmVhRWxl
bWVudCogaW5wdXQpOwogCiBHX0VORF9ERUNMUwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRpdGxl
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NSFRNTFRpdGxlRWxlbWVudC5jcHAKaW5kZXggYzgxZjUyM2NiZDZj
ZmRjMDQ3Y2I4M2MyZjk4MmQ3NzA2NzllMzNhNC4uOTFlMjc3YjIyOTgwOWFkODIyMDE3ZTgxMmVi
NjYwODgyMzQ4MDY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUaXRsZUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01IVE1MVGl0bGVFbGVtZW50LmNwcApAQCAtMzUsNiArMzUsOCBAQAogI2luY2x1ZGUgPHd0
Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05P
UkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTFRp
dGxlRWxlbWVudCoga2l0KFdlYkNvcmU6OkhUTUxUaXRsZUVsZW1lbnQqIG9iaikKQEAgLTE2Nywz
ICsxNjksNCBAQCB2b2lkIHdlYmtpdF9kb21faHRtbF90aXRsZV9lbGVtZW50X3NldF90ZXh0KFdl
YktpdERPTUhUTUxUaXRsZUVsZW1lbnQqIHNlbGYsIGNvbgogICAgIGl0ZW0tPnNldFRleHQoY29u
dmVydGVkVmFsdWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NSFRNTFRpdGxlRWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxUaXRsZUVsZW1lbnQuaApp
bmRleCA0ZTAwYThkNTM2ZjYwNzhjMjVhMTE4Yzk4ODc5ODA1MzhmNWYxOGU1Li44NTgxY2MxNjg0
NDdhNmNhNDhlNzU0NGIxNGEyMzNlY2YwMjExYjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFRpdGxl
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01IVE1MVGl0bGVFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAg
c3RydWN0IF9XZWJLaXRET01IVE1MVGl0bGVFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhU
TUxFbGVtZW50Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VC
S0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF90aXRsZV9lbGVtZW50X2dldF90
eXBlKHZvaWQpOwogCiAvKioKQEAgLTUzLDggKzUzLDEwIEBAIHdlYmtpdF9kb21faHRtbF90aXRs
ZV9lbGVtZW50X2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxUaXRs
ZUVsZW1lbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFy
KgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdGl0bGVfZWxlbWVu
dF9nZXRfdGV4dChXZWJLaXRET01IVE1MVGl0bGVFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC02
Miw4ICs2NCwxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdGl0bGVfZWxlbWVudF9nZXRfdGV4dChXZWJL
aXRET01IVE1MVGl0bGVFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1M
VGl0bGVFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF90aXRsZV9lbGVtZW50
X3NldF90ZXh0KFdlYktpdERPTUhUTUxUaXRsZUVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB2
YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFVMaXN0RWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NSFRNTFVMaXN0RWxlbWVudC5jcHAKaW5kZXggNWUxOTg4MmZjOGMyNWE5ZDFkMzUx
ZjY1YjQwOWE1YzBjYzA1YTU1OS4uNjg4M2U1MWQwYzk3MzZmMmY3MWNkNDEyYjg2NWRlNDI0MjVi
MTI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxVTGlzdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01IVE1M
VUxpc3RFbGVtZW50LmNwcApAQCAtMzYsNiArMzYsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVD
QVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NSFRNTFVMaXN0RWxlbWVu
dCoga2l0KFdlYkNvcmU6OkhUTUxVTGlzdEVsZW1lbnQqIG9iaikKQEAgLTIwMiwzICsyMDQsNCBA
QCB2b2lkIHdlYmtpdF9kb21faHRtbF91X2xpc3RfZWxlbWVudF9zZXRfdHlwZV9hdHRyKFdlYktp
dERPTUhUTUxVTGlzdEVsZW1lbnQqIHNlbAogICAgIGl0ZW0tPnNldEF0dHJpYnV0ZVdpdGhvdXRT
eW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjp0eXBlQXR0ciwgY29udmVydGVkVmFs
dWUpOwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NSFRNTFVMaXN0RWxlbWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUhUTUxVTGlzdEVsZW1lbnQuaAppbmRleCAzODlj
Nzk2NWY2M2E4M2U0YmRkMGUwMDFlMThkMjliNWM2YWU1Zjg1Li44Yzg0YTJlYWM5NzI5YmIyZDk2
N2Y2Njk5YzcwMWIzYzc5ZWI4ZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NSFRNTFVMaXN0RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01IVE1MVUxpc3RFbGVtZW50LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9X
ZWJLaXRET01IVE1MVUxpc3RFbGVtZW50Q2xhc3MgewogICAgIFdlYktpdERPTUhUTUxFbGVtZW50
Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJF
Q0FURUQgR1R5cGUKIHdlYmtpdF9kb21faHRtbF91X2xpc3RfZWxlbWVudF9nZXRfdHlwZSh2b2lk
KTsKIAogLyoqCkBAIC01Myw4ICs1MywxMCBAQCB3ZWJraXRfZG9tX2h0bWxfdV9saXN0X2VsZW1l
bnRfZ2V0X3R5cGUodm9pZCk7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NSFRNTFVMaXN0RWxlbWVu
dAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4K
K1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX2h0bWxfdV9saXN0X2VsZW1l
bnRfZ2V0X2NvbXBhY3QoV2ViS2l0RE9NSFRNTFVMaXN0RWxlbWVudCogc2VsZik7CiAKIC8qKgpA
QCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2RvbV9odG1sX3VfbGlzdF9lbGVtZW50X2dldF9jb21w
YWN0KFdlYktpdERPTUhUTUxVTGlzdEVsZW1lbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktp
dERPTUhUTUxVTGlzdEVsZW1lbnQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9odG1sX3Vf
bGlzdF9lbGVtZW50X3NldF9jb21wYWN0KFdlYktpdERPTUhUTUxVTGlzdEVsZW1lbnQqIHNlbGYs
IGdib29sZWFuIHZhbHVlKTsKIAogLyoqCkBAIC03MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX2h0
bWxfdV9saXN0X2VsZW1lbnRfc2V0X2NvbXBhY3QoV2ViS2l0RE9NSFRNTFVMaXN0RWxlbWVudCog
c2VsZiwgZ2JvbwogICogQHNlbGY6IEEgI1dlYktpdERPTUhUTUxVTGlzdEVsZW1lbnQKICAqCiAg
KiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJF
Q0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX2h0bWxfdV9saXN0X2VsZW1lbnRfZ2V0X3R5cGVfYXR0
cihXZWJLaXRET01IVE1MVUxpc3RFbGVtZW50KiBzZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4Niwx
MCBAQCB3ZWJraXRfZG9tX2h0bWxfdV9saXN0X2VsZW1lbnRfZ2V0X3R5cGVfYXR0cihXZWJLaXRE
T01IVE1MVUxpc3RFbGVtZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01IVE1MVUxp
c3RFbGVtZW50CiAgKiBAdmFsdWU6IEEgI2djaGFyCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQK
K1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21faHRtbF91X2xpc3RfZWxlbWVudF9z
ZXRfdHlwZV9hdHRyKFdlYktpdERPTUhUTUxVTGlzdEVsZW1lbnQqIHNlbGYsIGNvbnN0IGdjaGFy
KiB2YWx1ZSk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NS2V5Ym9hcmRFdmVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NS2V5Ym9hcmRFdmVudC5jcHAKaW5kZXggOTYyNWRkNzdiZGNkOWQ1ZTZkODhlMDJl
ZTAxNWNjZGViYjU4YzlkYi4uNDFmY2M5NzgzNDNkNDIzOGRjNmI1MWE3MDQzOThhZjczYWJjODJk
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTUtleWJvYXJkRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01LZXlib2FyZEV2
ZW50LmNwcApAQCAtMzMsNiArMzMsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwor
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NS2V5Ym9hcmRFdmVudCoga2l0KFdlYkNv
cmU6OktleWJvYXJkRXZlbnQqIG9iaikKQEAgLTI2OCwzICsyNzAsNCBAQCBnYm9vbGVhbiB3ZWJr
aXRfZG9tX2tleWJvYXJkX2V2ZW50X2dldF9hbHRfZ3JhcGhfa2V5KFdlYktpdERPTUtleWJvYXJk
RXZlbnQqIHNlbAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RF
UFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01LZXlib2FyZEV2ZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NS2V5Ym9h
cmRFdmVudC5oCmluZGV4IGZjN2QxZGQyMzBjY2JmNDlmMzY0YTlkM2Y4YTBkMTlmNjlmNmVmN2Eu
LjFjNWVkYTg1ZWE0YmFiMGY1ZWM0MjNjNGFlOGI0ZDM0YzcxNmY3YWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01LZXlib2FyZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTUtleWJvYXJkRXZlbnQuaApAQCAtMzcsMjYgKzM3
LDM4IEBAIEdfQkVHSU5fREVDTFMKICNkZWZpbmUgV0VCS0lUX0RPTV9JU19LRVlCT0FSRF9FVkVO
VF9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRf
RE9NX1RZUEVfS0VZQk9BUkRfRVZFTlQpKQogI2RlZmluZSBXRUJLSVRfRE9NX0tFWUJPQVJEX0VW
RU5UX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdF
QktJVF9ET01fVFlQRV9LRVlCT0FSRF9FVkVOVCwgV2ViS2l0RE9NS2V5Ym9hcmRFdmVudENsYXNz
KSkKIAorI2lmbmRlZiBXRUJLSVRfRElTQUJMRV9ERVBSRUNBVEVECisKIC8qKgogICogV0VCS0lU
X0RPTV9LRVlCT0FSRF9FVkVOVF9LRVlfTE9DQVRJT05fU1RBTkRBUkQ6CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUg
V0VCS0lUX0RPTV9LRVlCT0FSRF9FVkVOVF9LRVlfTE9DQVRJT05fU1RBTkRBUkQgMHgwMAogCiAv
KioKICAqIFdFQktJVF9ET01fS0VZQk9BUkRfRVZFTlRfS0VZX0xPQ0FUSU9OX0xFRlQ6CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8K
ICNkZWZpbmUgV0VCS0lUX0RPTV9LRVlCT0FSRF9FVkVOVF9LRVlfTE9DQVRJT05fTEVGVCAweDAx
CiAKIC8qKgogICogV0VCS0lUX0RPTV9LRVlCT0FSRF9FVkVOVF9LRVlfTE9DQVRJT05fUklHSFQ6
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9LRVlCT0FSRF9FVkVOVF9LRVlfTE9DQVRJT05fUklH
SFQgMHgwMgogCiAvKioKICAqIFdFQktJVF9ET01fS0VZQk9BUkRfRVZFTlRfS0VZX0xPQ0FUSU9O
X05VTVBBRDoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX0tFWUJPQVJEX0VWRU5UX0tFWV9MT0NB
VElPTl9OVU1QQUQgMHgwMwogCisjZW5kaWYgLyogV0VCS0lUX0RJU0FCTEVfREVQUkVDQVRFRCAq
LworCiBzdHJ1Y3QgX1dlYktpdERPTUtleWJvYXJkRXZlbnQgewogICAgIFdlYktpdERPTVVJRXZl
bnQgcGFyZW50X2luc3RhbmNlOwogfTsKQEAgLTY1LDcgKzc3LDcgQEAgc3RydWN0IF9XZWJLaXRE
T01LZXlib2FyZEV2ZW50Q2xhc3MgewogICAgIFdlYktpdERPTVVJRXZlbnRDbGFzcyBwYXJlbnRf
Y2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQog
d2Via2l0X2RvbV9rZXlib2FyZF9ldmVudF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC03NCw4
ICs4NiwxMCBAQCB3ZWJraXRfZG9tX2tleWJvYXJkX2V2ZW50X2dldF90eXBlKHZvaWQpOwogICog
QGtleUlkZW50aWZpZXJBcmc6IEEgI2djaGFyCiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4K
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdl
YmtpdF9kb21fa2V5Ym9hcmRfZXZlbnRfZ2V0X21vZGlmaWVyX3N0YXRlKFdlYktpdERPTUtleWJv
YXJkRXZlbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiBrZXlJZGVudGlmaWVyQXJnKTsKIAogLyoqCkBA
IC05Myw4ICsxMDcsMTAgQEAgd2Via2l0X2RvbV9rZXlib2FyZF9ldmVudF9nZXRfbW9kaWZpZXJf
c3RhdGUoV2ViS2l0RE9NS2V5Ym9hcmRFdmVudCogc2VsZiwgY29uc3QKICAqIEBtZXRhS2V5OiBB
ICNnYm9vbGVhbgogICogQGFsdEdyYXBoS2V5OiBBICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX2tleWJvYXJkX2V2
ZW50X2luaXRfa2V5Ym9hcmRfZXZlbnQoV2ViS2l0RE9NS2V5Ym9hcmRFdmVudCogc2VsZiwgY29u
c3QgZ2NoYXIqIHR5cGUsIGdib29sZWFuIGNhbkJ1YmJsZSwgZ2Jvb2xlYW4gY2FuY2VsYWJsZSwg
V2ViS2l0RE9NRE9NV2luZG93KiB2aWV3LCBjb25zdCBnY2hhcioga2V5SWRlbnRpZmllciwgZ3Vs
b25nIGxvY2F0aW9uLCBnYm9vbGVhbiBjdHJsS2V5LCBnYm9vbGVhbiBhbHRLZXksIGdib29sZWFu
IHNoaWZ0S2V5LCBnYm9vbGVhbiBtZXRhS2V5LCBnYm9vbGVhbiBhbHRHcmFwaEtleSk7CiAKIC8q
KgpAQCAtMTAyLDggKzExOCwxMCBAQCB3ZWJraXRfZG9tX2tleWJvYXJkX2V2ZW50X2luaXRfa2V5
Ym9hcmRfZXZlbnQoV2ViS2l0RE9NS2V5Ym9hcmRFdmVudCogc2VsZiwgY29ucwogICogQHNlbGY6
IEEgI1dlYktpdERPTUtleWJvYXJkRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiov
Ci1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9t
X2tleWJvYXJkX2V2ZW50X2dldF9rZXlfaWRlbnRpZmllcihXZWJLaXRET01LZXlib2FyZEV2ZW50
KiBzZWxmKTsKIAogLyoqCkBAIC0xMTEsOCArMTI5LDEwIEBAIHdlYmtpdF9kb21fa2V5Ym9hcmRf
ZXZlbnRfZ2V0X2tleV9pZGVudGlmaWVyKFdlYktpdERPTUtleWJvYXJkRXZlbnQqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTUtleWJvYXJkRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNn
dWxvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwog
d2Via2l0X2RvbV9rZXlib2FyZF9ldmVudF9nZXRfa2V5X2xvY2F0aW9uKFdlYktpdERPTUtleWJv
YXJkRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTEyMCw4ICsxNDAsMTAgQEAgd2Via2l0X2RvbV9r
ZXlib2FyZF9ldmVudF9nZXRfa2V5X2xvY2F0aW9uKFdlYktpdERPTUtleWJvYXJkRXZlbnQqIHNl
bGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUtleWJvYXJkRXZlbnQKICAqCiAgKiBSZXR1cm5z
OiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRF
RCBnYm9vbGVhbgogd2Via2l0X2RvbV9rZXlib2FyZF9ldmVudF9nZXRfY3RybF9rZXkoV2ViS2l0
RE9NS2V5Ym9hcmRFdmVudCogc2VsZik7CiAKIC8qKgpAQCAtMTI5LDggKzE1MSwxMCBAQCB3ZWJr
aXRfZG9tX2tleWJvYXJkX2V2ZW50X2dldF9jdHJsX2tleShXZWJLaXRET01LZXlib2FyZEV2ZW50
KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01LZXlib2FyZEV2ZW50CiAgKgogICogUmV0
dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJF
Q0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fa2V5Ym9hcmRfZXZlbnRfZ2V0X3NoaWZ0X2tleShX
ZWJLaXRET01LZXlib2FyZEV2ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMzgsOCArMTYyLDEwIEBA
IHdlYmtpdF9kb21fa2V5Ym9hcmRfZXZlbnRfZ2V0X3NoaWZ0X2tleShXZWJLaXRET01LZXlib2Fy
ZEV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01LZXlib2FyZEV2ZW50CiAgKgog
ICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fa2V5Ym9hcmRfZXZlbnRfZ2V0X2FsdF9r
ZXkoV2ViS2l0RE9NS2V5Ym9hcmRFdmVudCogc2VsZik7CiAKIC8qKgpAQCAtMTQ3LDggKzE3Mywx
MCBAQCB3ZWJraXRfZG9tX2tleWJvYXJkX2V2ZW50X2dldF9hbHRfa2V5KFdlYktpdERPTUtleWJv
YXJkRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTUtleWJvYXJkRXZlbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJL
SVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9rZXlib2FyZF9ldmVudF9nZXRfbWV0
YV9rZXkoV2ViS2l0RE9NS2V5Ym9hcmRFdmVudCogc2VsZik7CiAKIC8qKgpAQCAtMTU2LDggKzE4
NCwxMCBAQCB3ZWJraXRfZG9tX2tleWJvYXJkX2V2ZW50X2dldF9tZXRhX2tleShXZWJLaXRET01L
ZXlib2FyZEV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01LZXlib2FyZEV2ZW50
CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgor
V0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fa2V5Ym9hcmRfZXZlbnRfZ2V0
X2FsdF9ncmFwaF9rZXkoV2ViS2l0RE9NS2V5Ym9hcmRFdmVudCogc2VsZik7CiAKIEdfRU5EX0RF
Q0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NTWVkaWFMaXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01NZWRpYUxpc3QuY3BwCmlu
ZGV4IDIwODBlZWZiYTAzMDU4NTY3ZDAwYzU4ZDViY2EwN2QxNGEzNTgxYTcuLmZiMWI0YWJmMzc2
YWY3ZTEwNmUwZDU0MTU1NDRhMjZkMTJlNGZlNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01NZWRpYUxpc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01NZWRpYUxpc3QuY3BwCkBAIC0zNyw2ICszNyw4IEBAIHR5cGVkZWYgc3Ry
dWN0IF9XZWJLaXRET01NZWRpYUxpc3RQcml2YXRlIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6TWVk
aWFMaXN0PiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01NZWRpYUxpc3RQcml2YXRlOwogCitHX0dO
VUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdl
YktpdERPTU1lZGlhTGlzdCoga2l0KFdlYkNvcmU6Ok1lZGlhTGlzdCogb2JqKQpAQCAtMjMyLDMg
KzIzNCw0IEBAIGd1bG9uZyB3ZWJraXRfZG9tX21lZGlhX2xpc3RfZ2V0X2xlbmd0aChXZWJLaXRE
T01NZWRpYUxpc3QqIHNlbGYpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorR19HTlVDX0VORF9J
R05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU1lZGlhTGlzdC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU1l
ZGlhTGlzdC5oCmluZGV4IDcxZjZmNWFhY2ZhNjYxYjY2OWQxOGM4MjdmMGQwZmEwNzc5NjMwN2Uu
LjQzMzc5NzlhMDAxOWY3NWUwZTIwZDI5Y2I5Nzk4YzNmYThhMzZlMGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01NZWRpYUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTWVkaWFMaXN0LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3Ry
dWN0IF9XZWJLaXRET01NZWRpYUxpc3RDbGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3Mg
cGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQg
R1R5cGUKIHdlYmtpdF9kb21fbWVkaWFfbGlzdF9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01
NCw4ICs1NCwxMCBAQCB3ZWJraXRfZG9tX21lZGlhX2xpc3RfZ2V0X3R5cGUodm9pZCk7CiAgKiBA
aW5kZXg6IEEgI2d1bG9uZwogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21fbWVkaWFfbGlz
dF9pdGVtKFdlYktpdERPTU1lZGlhTGlzdCogc2VsZiwgZ3Vsb25nIGluZGV4KTsKIAogLyoqCkBA
IC02NCw4ICs2NiwxMCBAQCB3ZWJraXRfZG9tX21lZGlhX2xpc3RfaXRlbShXZWJLaXRET01NZWRp
YUxpc3QqIHNlbGYsIGd1bG9uZyBpbmRleCk7CiAgKiBAb2xkTWVkaXVtOiBBICNnY2hhcgogICog
QGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNB
VEVEIHZvaWQKIHdlYmtpdF9kb21fbWVkaWFfbGlzdF9kZWxldGVfbWVkaXVtKFdlYktpdERPTU1l
ZGlhTGlzdCogc2VsZiwgY29uc3QgZ2NoYXIqIG9sZE1lZGl1bSwgR0Vycm9yKiogZXJyb3IpOwog
CiAvKioKQEAgLTc0LDggKzc4LDEwIEBAIHdlYmtpdF9kb21fbWVkaWFfbGlzdF9kZWxldGVfbWVk
aXVtKFdlYktpdERPTU1lZGlhTGlzdCogc2VsZiwgY29uc3QgZ2NoYXIqIG9sZE1lCiAgKiBAbmV3
TWVkaXVtOiBBICNnY2hhcgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fbWVkaWFfbGlzdF9hcHBl
bmRfbWVkaXVtKFdlYktpdERPTU1lZGlhTGlzdCogc2VsZiwgY29uc3QgZ2NoYXIqIG5ld01lZGl1
bSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTgzLDggKzg5LDEwIEBAIHdlYmtpdF9kb21f
bWVkaWFfbGlzdF9hcHBlbmRfbWVkaXVtKFdlYktpdERPTU1lZGlhTGlzdCogc2VsZiwgY29uc3Qg
Z2NoYXIqIG5ld01lCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTWVkaWFMaXN0CiAgKgogICogUmV0
dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVE
IGdjaGFyKgogd2Via2l0X2RvbV9tZWRpYV9saXN0X2dldF9tZWRpYV90ZXh0KFdlYktpdERPTU1l
ZGlhTGlzdCogc2VsZik7CiAKIC8qKgpAQCAtOTMsOCArMTAxLDEwIEBAIHdlYmtpdF9kb21fbWVk
aWFfbGlzdF9nZXRfbWVkaWFfdGV4dChXZWJLaXRET01NZWRpYUxpc3QqIHNlbGYpOwogICogQHZh
bHVlOiBBICNnY2hhcgogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fbWVkaWFfbGlzdF9zZXRfbWVk
aWFfdGV4dChXZWJLaXRET01NZWRpYUxpc3QqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vy
cm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTEwMiw4ICsxMTIsMTAgQEAgd2Via2l0X2RvbV9tZWRp
YV9saXN0X3NldF9tZWRpYV90ZXh0KFdlYktpdERPTU1lZGlhTGlzdCogc2VsZiwgY29uc3QgZ2No
YXIqIHZhbHUKICAqIEBzZWxmOiBBICNXZWJLaXRET01NZWRpYUxpc3QKICAqCiAgKiBSZXR1cm5z
OiBBICNndWxvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1
bG9uZwogd2Via2l0X2RvbV9tZWRpYV9saXN0X2dldF9sZW5ndGgoV2ViS2l0RE9NTWVkaWFMaXN0
KiBzZWxmKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Nb3VzZUV2ZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01Nb3VzZUV2ZW50LmNwcAppbmRleCAxN2RiMzNkMTI3NWY1YzgyZTg0NTdhNGQ2MTcyM2Uz
MWExMTBmYWIwLi4wNTgwMGEzNTdmYWM2NzRkYjhjM2QzMzY1ZTFjZTVjNjk2NWI2NzI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NTW91c2VFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU1vdXNlRXZlbnQuY3BwCkBAIC0z
NSw2ICszNSw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBXZWJLaXRET01Nb3VzZUV2ZW50KiBraXQoV2ViQ29yZTo6TW91c2VFdmVudCog
b2JqKQpAQCAtNDY2LDMgKzQ2OCw0IEBAIFdlYktpdERPTU5vZGUqIHdlYmtpdF9kb21fbW91c2Vf
ZXZlbnRfZ2V0X3RvX2VsZW1lbnQoV2ViS2l0RE9NTW91c2VFdmVudCogc2VsZikKICAgICByZXR1
cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7CiB9CiAKK0dfR05VQ19FTkRfSUdO
T1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Nb3VzZUV2ZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTW91
c2VFdmVudC5oCmluZGV4IDEyMTJhZmVkN2IyNTQ5YTA1MzBjYTFiNjMwZjQ1NzhmMmU0MmUwOTAu
LmZkNGE4NjAyYzJiMjk4NDBkYTk1MWQ0OTBiYTljMTc5MzE1MDQ1NTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01Nb3VzZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU1vdXNlRXZlbnQuaApAQCAtNDUsNyArNDUsNyBAQCBz
dHJ1Y3QgX1dlYktpdERPTU1vdXNlRXZlbnRDbGFzcyB7CiAgICAgV2ViS2l0RE9NVUlFdmVudENs
YXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNB
VEVEIEdUeXBlCiB3ZWJraXRfZG9tX21vdXNlX2V2ZW50X2dldF90eXBlKHZvaWQpOwogCiAvKioK
QEAgLTY3LDggKzY3LDEwIEBAIHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X3R5cGUodm9pZCk7
CiAgKiBAYnV0dG9uOiBBICNndXNob3J0CiAgKiBAcmVsYXRlZFRhcmdldDogQSAjV2ViS2l0RE9N
RXZlbnRUYXJnZXQKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQg
dm9pZAogd2Via2l0X2RvbV9tb3VzZV9ldmVudF9pbml0X21vdXNlX2V2ZW50KFdlYktpdERPTU1v
dXNlRXZlbnQqIHNlbGYsIGNvbnN0IGdjaGFyKiB0eXBlLCBnYm9vbGVhbiBjYW5CdWJibGUsIGdi
b29sZWFuIGNhbmNlbGFibGUsIFdlYktpdERPTURPTVdpbmRvdyogdmlldywgZ2xvbmcgZGV0YWls
LCBnbG9uZyBzY3JlZW5YLCBnbG9uZyBzY3JlZW5ZLCBnbG9uZyBjbGllbnRYLCBnbG9uZyBjbGll
bnRZLCBnYm9vbGVhbiBjdHJsS2V5LCBnYm9vbGVhbiBhbHRLZXksIGdib29sZWFuIHNoaWZ0S2V5
LCBnYm9vbGVhbiBtZXRhS2V5LCBndXNob3J0IGJ1dHRvbiwgV2ViS2l0RE9NRXZlbnRUYXJnZXQq
IHJlbGF0ZWRUYXJnZXQpOwogCiAvKioKQEAgLTc2LDggKzc4LDEwIEBAIHdlYmtpdF9kb21fbW91
c2VfZXZlbnRfaW5pdF9tb3VzZV9ldmVudChXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmLCBjb25z
dCBnY2hhcioKICAqIEBzZWxmOiBBICNXZWJLaXRET01Nb3VzZUV2ZW50CiAgKgogICogUmV0dXJu
czogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xv
bmcKIHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X3NjcmVlbl94KFdlYktpdERPTU1vdXNlRXZl
bnQqIHNlbGYpOwogCiAvKioKQEAgLTg1LDggKzg5LDEwIEBAIHdlYmtpdF9kb21fbW91c2VfZXZl
bnRfZ2V0X3NjcmVlbl94KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTU1vdXNlRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9tb3VzZV9l
dmVudF9nZXRfc2NyZWVuX3koV2ViS2l0RE9NTW91c2VFdmVudCogc2VsZik7CiAKIC8qKgpAQCAt
OTQsOCArMTAwLDEwIEBAIHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X3NjcmVlbl95KFdlYktp
dERPTU1vdXNlRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU1vdXNlRXZlbnQK
ICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRf
REVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfY2xpZW50X3goV2Vi
S2l0RE9NTW91c2VFdmVudCogc2VsZik7CiAKIC8qKgpAQCAtMTAzLDggKzExMSwxMCBAQCB3ZWJr
aXRfZG9tX21vdXNlX2V2ZW50X2dldF9jbGllbnRfeChXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxm
KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Nb3VzZUV2ZW50CiAgKgogICogUmV0dXJuczogQSAj
Z2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdl
YmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X2NsaWVudF95KFdlYktpdERPTU1vdXNlRXZlbnQqIHNl
bGYpOwogCiAvKioKQEAgLTExMiw4ICsxMjIsMTAgQEAgd2Via2l0X2RvbV9tb3VzZV9ldmVudF9n
ZXRfY2xpZW50X3koV2ViS2l0RE9NTW91c2VFdmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NTW91c2VFdmVudAogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX21v
dXNlX2V2ZW50X2dldF9jdHJsX2tleShXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmKTsKIAogLyoq
CkBAIC0xMjEsOCArMTMzLDEwIEBAIHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X2N0cmxfa2V5
KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU1vdXNl
RXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29s
ZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9tb3VzZV9ldmVudF9n
ZXRfc2hpZnRfa2V5KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTEzMCw4
ICsxNDQsMTAgQEAgd2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfc2hpZnRfa2V5KFdlYktpdERP
TU1vdXNlRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU1vdXNlRXZlbnQKICAq
CiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJL
SVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfYWx0X2tl
eShXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMzksOCArMTU1LDEwIEBA
IHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X2FsdF9rZXkoV2ViS2l0RE9NTW91c2VFdmVudCog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTW91c2VFdmVudAogICoKICAqIFJldHVybnM6
IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVE
IGdib29sZWFuCiB3ZWJraXRfZG9tX21vdXNlX2V2ZW50X2dldF9tZXRhX2tleShXZWJLaXRET01N
b3VzZUV2ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNDgsOCArMTY2LDEwIEBAIHdlYmtpdF9kb21f
bW91c2VfZXZlbnRfZ2V0X21ldGFfa2V5KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTU1vdXNlRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNndXNob3J0
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ3VzaG9ydAorV0VCS0lUX0RFUFJFQ0FURUQgZ3VzaG9ydAogd2Vi
a2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfYnV0dG9uKFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYp
OwogCiAvKioKQEAgLTE1Nyw4ICsxNzcsMTAgQEAgd2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRf
YnV0dG9uKFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TU1vdXNlRXZlbnQKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERP
TUV2ZW50VGFyZ2V0CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3Jl
IEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRXZlbnRUYXJnZXQqCitXRUJL
SVRfREVQUkVDQVRFRCBXZWJLaXRET01FdmVudFRhcmdldCoKIHdlYmtpdF9kb21fbW91c2VfZXZl
bnRfZ2V0X3JlbGF0ZWRfdGFyZ2V0KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogCiAvKioK
QEAgLTE2Niw4ICsxODgsMTAgQEAgd2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfcmVsYXRlZF90
YXJnZXQoV2ViS2l0RE9NTW91c2VFdmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9N
TW91c2VFdmVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xv
bmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX21vdXNlX2V2ZW50X2dldF9v
ZmZzZXRfeChXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xNzUsOCArMTk5
LDEwIEBAIHdlYmtpdF9kb21fbW91c2VfZXZlbnRfZ2V0X29mZnNldF94KFdlYktpdERPTU1vdXNl
RXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU1vdXNlRXZlbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRF
RCBnbG9uZwogd2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfb2Zmc2V0X3koV2ViS2l0RE9NTW91
c2VFdmVudCogc2VsZik7CiAKIC8qKgpAQCAtMTg0LDggKzIxMCwxMCBAQCB3ZWJraXRfZG9tX21v
dXNlX2V2ZW50X2dldF9vZmZzZXRfeShXZWJLaXRET01Nb3VzZUV2ZW50KiBzZWxmKTsKICAqIEBz
ZWxmOiBBICNXZWJLaXRET01Nb3VzZUV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21f
bW91c2VfZXZlbnRfZ2V0X3goV2ViS2l0RE9NTW91c2VFdmVudCogc2VsZik7CiAKIC8qKgpAQCAt
MTkzLDggKzIyMSwxMCBAQCB3ZWJraXRfZG9tX21vdXNlX2V2ZW50X2dldF94KFdlYktpdERPTU1v
dXNlRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU1vdXNlRXZlbnQKICAqCiAg
KiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVD
QVRFRCBnbG9uZwogd2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfeShXZWJLaXRET01Nb3VzZUV2
ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0yMDIsOCArMjMyLDEwIEBAIHdlYmtpdF9kb21fbW91c2Vf
ZXZlbnRfZ2V0X3koV2ViS2l0RE9NTW91c2VFdmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NTW91c2VFdmVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2Vi
S2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBB
UEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVD
QVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfZnJvbV9lbGVt
ZW50KFdlYktpdERPTU1vdXNlRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTIxMSw4ICsyNDMsMTAg
QEAgd2Via2l0X2RvbV9tb3VzZV9ldmVudF9nZXRfZnJvbV9lbGVtZW50KFdlYktpdERPTU1vdXNl
RXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU1vdXNlRXZlbnQKICAqCiAgKiBS
ZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtp
dF9kb21fbW91c2VfZXZlbnRfZ2V0X3RvX2VsZW1lbnQoV2ViS2l0RE9NTW91c2VFdmVudCogc2Vs
Zik7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTmFtZWROb2RlTWFwLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01OYW1lZE5vZGVNYXAuY3BwCmluZGV4IGQyMWFkYjIzYjFhZWUyYjczMGJkY2JlNWNkNjU3YWI5
ODQ3YjBhMjMuLmJhZjY1OGE2NDEyZDc3MzY2ZDhlMGJjN2EwZTZmM2ZlNGIwZjJlZTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01OYW1lZE5vZGVNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01OYW1lZE5vZGVNYXAuY3BwCkBA
IC0zOSw2ICszOSw4IEBAIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01OYW1lZE5vZGVNYXBQcml2
YXRlIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6TmFtZWROb2RlTWFwPiBjb3JlT2JqZWN0OwogfSBX
ZWJLaXRET01OYW1lZE5vZGVNYXBQcml2YXRlOwogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJF
Q0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTU5hbWVkTm9kZU1hcCog
a2l0KFdlYkNvcmU6Ok5hbWVkTm9kZU1hcCogb2JqKQpAQCAtMjM4LDMgKzI0MCw0IEBAIGd1bG9u
ZyB3ZWJraXRfZG9tX25hbWVkX25vZGVfbWFwX2dldF9sZW5ndGgoV2ViS2l0RE9NTmFtZWROb2Rl
TWFwKiBzZWxmKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RF
UFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01OYW1lZE5vZGVNYXAuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01OYW1lZE5v
ZGVNYXAuaAppbmRleCA0Y2ZjOGJlMzg4M2FjZDk4MDY0M2U1YTZmMjI4MjUwZjg3MWI1NmRmLi4z
YWY0MTI1MmNhOTM2N2Q0OWNiYzZlMzUyODM3YmFiZWRjNjE1ZjQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
TmFtZWROb2RlTWFwLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5hbWVkTm9kZU1hcC5oCkBAIC00NSw3ICs0NSw3IEBA
IHN0cnVjdCBfV2ViS2l0RE9NTmFtZWROb2RlTWFwQ2xhc3MgewogICAgIFdlYktpdERPTU9iamVj
dENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBS
RUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX25hbWVkX25vZGVfbWFwX2dldF90eXBlKHZvaWQpOwog
CiAvKioKQEAgLTU0LDggKzU0LDEwIEBAIHdlYmtpdF9kb21fbmFtZWRfbm9kZV9tYXBfZ2V0X3R5
cGUodm9pZCk7CiAgKiBAbmFtZTogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
bm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgor
V0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fbmFtZWRfbm9kZV9t
YXBfZ2V0X25hbWVkX2l0ZW0oV2ViS2l0RE9NTmFtZWROb2RlTWFwKiBzZWxmLCBjb25zdCBnY2hh
ciogbmFtZSk7CiAKIC8qKgpAQCAtNjUsOCArNjcsMTAgQEAgd2Via2l0X2RvbV9uYW1lZF9ub2Rl
X21hcF9nZXRfbmFtZWRfaXRlbShXZWJLaXRET01OYW1lZE5vZGVNYXAqIHNlbGYsIGNvbnN0IGdj
aGEKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTog
QSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRf
REVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9uYW1lZF9ub2RlX21hcF9zZXRf
bmFtZWRfaXRlbShXZWJLaXRET01OYW1lZE5vZGVNYXAqIHNlbGYsIFdlYktpdERPTU5vZGUqIG5v
ZGUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC03Niw4ICs4MCwxMCBAQCB3ZWJraXRfZG9t
X25hbWVkX25vZGVfbWFwX3NldF9uYW1lZF9pdGVtKFdlYktpdERPTU5hbWVkTm9kZU1hcCogc2Vs
ZiwgV2ViS2l0RE9NTgogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5z
ZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9k
ZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX25hbWVkX25v
ZGVfbWFwX3JlbW92ZV9uYW1lZF9pdGVtKFdlYktpdERPTU5hbWVkTm9kZU1hcCogc2VsZiwgY29u
c3QgZ2NoYXIqIG5hbWUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC04Niw4ICs5MiwxMCBA
QCB3ZWJraXRfZG9tX25hbWVkX25vZGVfbWFwX3JlbW92ZV9uYW1lZF9pdGVtKFdlYktpdERPTU5h
bWVkTm9kZU1hcCogc2VsZiwgY29uc3QgZwogICogQGluZGV4OiBBICNndWxvbmcKICAqCiAgKiBS
ZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNh
dGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQ
SSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtp
dF9kb21fbmFtZWRfbm9kZV9tYXBfaXRlbShXZWJLaXRET01OYW1lZE5vZGVNYXAqIHNlbGYsIGd1
bG9uZyBpbmRleCk7CiAKIC8qKgpAQCAtOTcsOCArMTA1LDEwIEBAIHdlYmtpdF9kb21fbmFtZWRf
bm9kZV9tYXBfaXRlbShXZWJLaXRET01OYW1lZE5vZGVNYXAqIHNlbGYsIGd1bG9uZyBpbmRleCk7
CiAgKiBAbG9jYWxOYW1lOiBBICNnY2hhcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25l
KTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJL
SVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9uYW1lZF9ub2RlX21hcF9n
ZXRfbmFtZWRfaXRlbV9ucyhXZWJLaXRET01OYW1lZE5vZGVNYXAqIHNlbGYsIGNvbnN0IGdjaGFy
KiBuYW1lc3BhY2VVUkksIGNvbnN0IGdjaGFyKiBsb2NhbE5hbWUpOwogCiAvKioKQEAgLTEwOCw4
ICsxMTgsMTAgQEAgd2Via2l0X2RvbV9uYW1lZF9ub2RlX21hcF9nZXRfbmFtZWRfaXRlbV9ucyhX
ZWJLaXRET01OYW1lZE5vZGVNYXAqIHNlbGYsIGNvbnN0IGcKICAqIEBlcnJvcjogI0dFcnJvcgog
ICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2Rl
Kgogd2Via2l0X2RvbV9uYW1lZF9ub2RlX21hcF9zZXRfbmFtZWRfaXRlbV9ucyhXZWJLaXRET01O
YW1lZE5vZGVNYXAqIHNlbGYsIFdlYktpdERPTU5vZGUqIG5vZGUsIEdFcnJvcioqIGVycm9yKTsK
IAogLyoqCkBAIC0xMjAsOCArMTMyLDEwIEBAIHdlYmtpdF9kb21fbmFtZWRfbm9kZV9tYXBfc2V0
X25hbWVkX2l0ZW1fbnMoV2ViS2l0RE9NTmFtZWROb2RlTWFwKiBzZWxmLCBXZWJLaXRECiAgKiBA
ZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktp
dERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FU
RUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fbmFtZWRfbm9kZV9tYXBfcmVtb3ZlX25hbWVk
X2l0ZW1fbnMoV2ViS2l0RE9NTmFtZWROb2RlTWFwKiBzZWxmLCBjb25zdCBnY2hhciogbmFtZXNw
YWNlVVJJLCBjb25zdCBnY2hhciogbG9jYWxOYW1lLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpA
QCAtMTI5LDggKzE0MywxMCBAQCB3ZWJraXRfZG9tX25hbWVkX25vZGVfbWFwX3JlbW92ZV9uYW1l
ZF9pdGVtX25zKFdlYktpdERPTU5hbWVkTm9kZU1hcCogc2VsZiwgY29ucwogICogQHNlbGY6IEEg
I1dlYktpdERPTU5hbWVkTm9kZU1hcAogICoKICAqIFJldHVybnM6IEEgI2d1bG9uZworICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGd1bG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vsb25nCiB3ZWJraXRfZG9tX25h
bWVkX25vZGVfbWFwX2dldF9sZW5ndGgoV2ViS2l0RE9NTmFtZWROb2RlTWFwKiBzZWxmKTsKIAog
R19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGM3NWIxMDQ3ZmE1MDQ4ZjI4YTM5YzUwMWIxNzIw
OGZlMWQxNzBkNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NTm9kZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2OTkgKzAsMCBAQAotLyoKLSAqICBU
aGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0IG9wZW4gc291cmNlIHByb2plY3QuCi0gKgot
ICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0g
KiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiAgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KLSAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJLaXRET01Ob2RlLmgiCi0K
LSNpbmNsdWRlICJDb252ZXJ0VG9VVEY4U3RyaW5nLmgiCi0jaW5jbHVkZSAiRE9NT2JqZWN0Q2Fj
aGUuaCIKLSNpbmNsdWRlICJHT2JqZWN0RXZlbnRMaXN0ZW5lci5oIgotI2luY2x1ZGUgIldlYktp
dERPTURvY3VtZW50UHJpdmF0ZS5oIgotI2luY2x1ZGUgIldlYktpdERPTUVsZW1lbnRQcml2YXRl
LmgiCi0jaW5jbHVkZSAiV2ViS2l0RE9NRXZlbnRQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0
RE9NRXZlbnRUYXJnZXQuaCIKLSNpbmNsdWRlICJXZWJLaXRET01Ob2RlTGlzdFByaXZhdGUuaCIK
LSNpbmNsdWRlICJXZWJLaXRET01Ob2RlUHJpdmF0ZS5oIgotI2luY2x1ZGUgIldlYktpdERPTVBy
aXZhdGUuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0NTU0ltcG9ydFJ1bGUuaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL0RPTUV4Y2VwdGlvbi5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL0pTTWFpblRocmVhZEV4ZWNTdGF0ZS5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvU1ZHVGVzdHMuaD4KLSNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgotCi0jZGVmaW5lIFdFQktJVF9ET01fTk9ERV9HRVRfUFJJVkFURShvYmopIEdfVFlQ
RV9JTlNUQU5DRV9HRVRfUFJJVkFURShvYmosIFdFQktJVF9ET01fVFlQRV9OT0RFLCBXZWJLaXRE
T01Ob2RlUHJpdmF0ZSkKLQotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTU5vZGVQcml2YXRlIHsK
LSAgICBSZWZQdHI8V2ViQ29yZTo6Tm9kZT4gY29yZU9iamVjdDsKLX0gV2ViS2l0RE9NTm9kZVBy
aXZhdGU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJLaXRET01Ob2RlKiBraXQoV2ViQ29y
ZTo6Tm9kZSogb2JqKQotewotICAgIGlmICghb2JqKQotICAgICAgICByZXR1cm4gMDsKLQotICAg
IGlmIChncG9pbnRlciByZXQgPSBET01PYmplY3RDYWNoZTo6Z2V0KG9iaikpCi0gICAgICAgIHJl
dHVybiBXRUJLSVRfRE9NX05PREUocmV0KTsKLQotICAgIHJldHVybiB3cmFwKG9iaik7Ci19Ci0K
LVdlYkNvcmU6Ok5vZGUqIGNvcmUoV2ViS2l0RE9NTm9kZSogcmVxdWVzdCkKLXsKLSAgICByZXR1
cm4gcmVxdWVzdCA/IHN0YXRpY19jYXN0PFdlYkNvcmU6Ok5vZGUqPihXRUJLSVRfRE9NX09CSkVD
VChyZXF1ZXN0KS0+Y29yZU9iamVjdCkgOiAwOwotfQotCi1XZWJLaXRET01Ob2RlKiB3cmFwTm9k
ZShXZWJDb3JlOjpOb2RlKiBjb3JlT2JqZWN0KQotewotICAgIEFTU0VSVChjb3JlT2JqZWN0KTsK
LSAgICByZXR1cm4gV0VCS0lUX0RPTV9OT0RFKGdfb2JqZWN0X25ldyhXRUJLSVRfRE9NX1RZUEVf
Tk9ERSwgImNvcmUtb2JqZWN0IiwgY29yZU9iamVjdCwgbnVsbHB0cikpOwotfQotCi19Ci0KLXN0
YXRpYyBnYm9vbGVhbiB3ZWJraXRfZG9tX25vZGVfZGlzcGF0Y2hfZXZlbnQoV2ViS2l0RE9NRXZl
bnRUYXJnZXQqIHRhcmdldCwgV2ViS2l0RE9NRXZlbnQqIGV2ZW50LCBHRXJyb3IqKiBlcnJvcikK
LXsKLSAgICBXZWJDb3JlOjpFdmVudCogY29yZUV2ZW50ID0gV2ViS2l0Ojpjb3JlKGV2ZW50KTsK
LSAgICBpZiAoIWNvcmVFdmVudCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIFdlYkNvcmU6
Ok5vZGUqIGNvcmVUYXJnZXQgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpOb2RlKj4oV0VCS0lUX0RP
TV9PQkpFQ1QodGFyZ2V0KS0+Y29yZU9iamVjdCk7Ci0KLSAgICBhdXRvIHJlc3VsdCA9IGNvcmVU
YXJnZXQtPmRpc3BhdGNoRXZlbnRGb3JCaW5kaW5ncygqY29yZUV2ZW50KTsKLSAgICBpZiAocmVz
dWx0Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3Jl
OjpET01FeGNlcHRpb246OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29k
ZSgpKTsKLSAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0
cmluZygiV0VCS0lUX0RPTSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5u
YW1lKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0LnJl
bGVhc2VSZXR1cm5WYWx1ZSgpOwotfQotCi1zdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X2RvbV9ub2Rl
X2FkZF9ldmVudF9saXN0ZW5lcihXZWJLaXRET01FdmVudFRhcmdldCogdGFyZ2V0LCBjb25zdCBj
aGFyKiBldmVudE5hbWUsIEdDbG9zdXJlKiBoYW5kbGVyLCBnYm9vbGVhbiB1c2VDYXB0dXJlKQot
ewotICAgIFdlYkNvcmU6Ok5vZGUqIGNvcmVUYXJnZXQgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpO
b2RlKj4oV0VCS0lUX0RPTV9PQkpFQ1QodGFyZ2V0KS0+Y29yZU9iamVjdCk7Ci0gICAgcmV0dXJu
IFdlYktpdDo6R09iamVjdEV2ZW50TGlzdGVuZXI6OmFkZEV2ZW50TGlzdGVuZXIoR19PQkpFQ1Qo
dGFyZ2V0KSwgY29yZVRhcmdldCwgZXZlbnROYW1lLCBoYW5kbGVyLCB1c2VDYXB0dXJlKTsKLX0K
LQotc3RhdGljIGdib29sZWFuIHdlYmtpdF9kb21fbm9kZV9yZW1vdmVfZXZlbnRfbGlzdGVuZXIo
V2ViS2l0RE9NRXZlbnRUYXJnZXQqIHRhcmdldCwgY29uc3QgY2hhciogZXZlbnROYW1lLCBHQ2xv
c3VyZSogaGFuZGxlciwgZ2Jvb2xlYW4gdXNlQ2FwdHVyZSkKLXsKLSAgICBXZWJDb3JlOjpOb2Rl
KiBjb3JlVGFyZ2V0ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KFdFQktJVF9ET01fT0JK
RUNUKHRhcmdldCktPmNvcmVPYmplY3QpOwotICAgIHJldHVybiBXZWJLaXQ6OkdPYmplY3RFdmVu
dExpc3RlbmVyOjpyZW1vdmVFdmVudExpc3RlbmVyKEdfT0JKRUNUKHRhcmdldCksIGNvcmVUYXJn
ZXQsIGV2ZW50TmFtZSwgaGFuZGxlciwgdXNlQ2FwdHVyZSk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdl
YmtpdF9kb21fbm9kZV9kb21fZXZlbnRfdGFyZ2V0X2luaXQoV2ViS2l0RE9NRXZlbnRUYXJnZXRJ
ZmFjZSogaWZhY2UpCi17Ci0gICAgaWZhY2UtPmRpc3BhdGNoX2V2ZW50ID0gd2Via2l0X2RvbV9u
b2RlX2Rpc3BhdGNoX2V2ZW50OwotICAgIGlmYWNlLT5hZGRfZXZlbnRfbGlzdGVuZXIgPSB3ZWJr
aXRfZG9tX25vZGVfYWRkX2V2ZW50X2xpc3RlbmVyOwotICAgIGlmYWNlLT5yZW1vdmVfZXZlbnRf
bGlzdGVuZXIgPSB3ZWJraXRfZG9tX25vZGVfcmVtb3ZlX2V2ZW50X2xpc3RlbmVyOwotfQotCi1H
X0RFRklORV9UWVBFX1dJVEhfQ09ERShXZWJLaXRET01Ob2RlLCB3ZWJraXRfZG9tX25vZGUsIFdF
QktJVF9ET01fVFlQRV9PQkpFQ1QsIEdfSU1QTEVNRU5UX0lOVEVSRkFDRShXRUJLSVRfRE9NX1RZ
UEVfRVZFTlRfVEFSR0VULCB3ZWJraXRfZG9tX25vZGVfZG9tX2V2ZW50X3RhcmdldF9pbml0KSkK
LQotZW51bSB7Ci0gICAgRE9NX05PREVfUFJPUF8wLAotICAgIERPTV9OT0RFX1BST1BfTk9ERV9O
QU1FLAotICAgIERPTV9OT0RFX1BST1BfTk9ERV9WQUxVRSwKLSAgICBET01fTk9ERV9QUk9QX05P
REVfVFlQRSwKLSAgICBET01fTk9ERV9QUk9QX1BBUkVOVF9OT0RFLAotICAgIERPTV9OT0RFX1BS
T1BfQ0hJTERfTk9ERVMsCi0gICAgRE9NX05PREVfUFJPUF9GSVJTVF9DSElMRCwKLSAgICBET01f
Tk9ERV9QUk9QX0xBU1RfQ0hJTEQsCi0gICAgRE9NX05PREVfUFJPUF9QUkVWSU9VU19TSUJMSU5H
LAotICAgIERPTV9OT0RFX1BST1BfTkVYVF9TSUJMSU5HLAotICAgIERPTV9OT0RFX1BST1BfT1dO
RVJfRE9DVU1FTlQsCi0gICAgRE9NX05PREVfUFJPUF9CQVNFX1VSSSwKLSAgICBET01fTk9ERV9Q
Uk9QX1RFWFRfQ09OVEVOVCwKLSAgICBET01fTk9ERV9QUk9QX1BBUkVOVF9FTEVNRU5ULAotfTsK
LQotc3RhdGljIHZvaWQgd2Via2l0X2RvbV9ub2RlX2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkK
LXsKLSAgICBXZWJLaXRET01Ob2RlUHJpdmF0ZSogcHJpdiA9IFdFQktJVF9ET01fTk9ERV9HRVRf
UFJJVkFURShvYmplY3QpOwotCi0gICAgV2ViS2l0OjpET01PYmplY3RDYWNoZTo6Zm9yZ2V0KHBy
aXYtPmNvcmVPYmplY3QuZ2V0KCkpOwotCi0gICAgcHJpdi0+fldlYktpdERPTU5vZGVQcml2YXRl
KCk7Ci0gICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2RvbV9ub2RlX3BhcmVudF9jbGFzcyktPmZp
bmFsaXplKG9iamVjdCk7Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtpdF9kb21fbm9kZV9zZXRfcHJv
cGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLCBjb25zdCBHVmFsdWUqIHZh
bHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKLXsKLSAgICBXZWJLaXRET01Ob2RlKiBzZWxmID0gV0VC
S0lUX0RPTV9OT0RFKG9iamVjdCk7Ci0KLSAgICBzd2l0Y2ggKHByb3BlcnR5SWQpIHsKLSAgICBj
YXNlIERPTV9OT0RFX1BST1BfTk9ERV9WQUxVRToKLSAgICAgICAgd2Via2l0X2RvbV9ub2RlX3Nl
dF9ub2RlX3ZhbHVlKHNlbGYsIGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSksIG51bGxwdHIpOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIERPTV9OT0RFX1BST1BfVEVYVF9DT05URU5UOgotICAg
ICAgICB3ZWJraXRfZG9tX25vZGVfc2V0X3RleHRfY29udGVudChzZWxmLCBnX3ZhbHVlX2dldF9z
dHJpbmcodmFsdWUpLCBudWxscHRyKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAg
ICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcGVydHlJ
ZCwgcHNwZWMpOwotICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkIHdlYmtp
dF9kb21fbm9kZV9nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlk
LCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKLXsKLSAgICBXZWJLaXRET01Ob2Rl
KiBzZWxmID0gV0VCS0lUX0RPTV9OT0RFKG9iamVjdCk7Ci0KLSAgICBzd2l0Y2ggKHByb3BlcnR5
SWQpIHsKLSAgICBjYXNlIERPTV9OT0RFX1BST1BfTk9ERV9OQU1FOgotICAgICAgICBnX3ZhbHVl
X3Rha2Vfc3RyaW5nKHZhbHVlLCB3ZWJraXRfZG9tX25vZGVfZ2V0X25vZGVfbmFtZShzZWxmKSk7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRE9NX05PREVfUFJPUF9OT0RFX1ZBTFVFOgotICAg
ICAgICBnX3ZhbHVlX3Rha2Vfc3RyaW5nKHZhbHVlLCB3ZWJraXRfZG9tX25vZGVfZ2V0X25vZGVf
dmFsdWUoc2VsZikpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIERPTV9OT0RFX1BST1BfTk9E
RV9UWVBFOgotICAgICAgICBnX3ZhbHVlX3NldF91aW50KHZhbHVlLCB3ZWJraXRfZG9tX25vZGVf
Z2V0X25vZGVfdHlwZShzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRE9NX05PREVf
UFJPUF9QQVJFTlRfTk9ERToKLSAgICAgICAgZ192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJr
aXRfZG9tX25vZGVfZ2V0X3BhcmVudF9ub2RlKHNlbGYpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBET01fTk9ERV9QUk9QX0NISUxEX05PREVTOgotICAgICAgICBnX3ZhbHVlX3NldF9vYmpl
Y3QodmFsdWUsIHdlYmtpdF9kb21fbm9kZV9nZXRfY2hpbGRfbm9kZXMoc2VsZikpOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIERPTV9OT0RFX1BST1BfRklSU1RfQ0hJTEQ6Ci0gICAgICAgIGdf
dmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2RvbV9ub2RlX2dldF9maXJzdF9jaGlsZChz
ZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRE9NX05PREVfUFJPUF9MQVNUX0NISUxE
OgotICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIHdlYmtpdF9kb21fbm9kZV9nZXRf
bGFzdF9jaGlsZChzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRE9NX05PREVfUFJP
UF9QUkVWSU9VU19TSUJMSU5HOgotICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIHdl
YmtpdF9kb21fbm9kZV9nZXRfcHJldmlvdXNfc2libGluZyhzZWxmKSk7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgRE9NX05PREVfUFJPUF9ORVhUX1NJQkxJTkc6Ci0gICAgICAgIGdfdmFsdWVf
c2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2RvbV9ub2RlX2dldF9uZXh0X3NpYmxpbmcoc2VsZikp
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIERPTV9OT0RFX1BST1BfT1dORVJfRE9DVU1FTlQ6
Ci0gICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2RvbV9ub2RlX2dldF9v
d25lcl9kb2N1bWVudChzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgRE9NX05PREVf
UFJPUF9CQVNFX1VSSToKLSAgICAgICAgZ192YWx1ZV90YWtlX3N0cmluZyh2YWx1ZSwgd2Via2l0
X2RvbV9ub2RlX2dldF9iYXNlX3VyaShzZWxmKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
RE9NX05PREVfUFJPUF9URVhUX0NPTlRFTlQ6Ci0gICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmco
dmFsdWUsIHdlYmtpdF9kb21fbm9kZV9nZXRfdGV4dF9jb250ZW50KHNlbGYpKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBET01fTk9ERV9QUk9QX1BBUkVOVF9FTEVNRU5UOgotICAgICAgICBn
X3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIHdlYmtpdF9kb21fbm9kZV9nZXRfcGFyZW50X2VsZW1l
bnQoc2VsZikpOwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBHX09CSkVD
VF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wZXJ0eUlkLCBwc3BlYyk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIH0KLX0KLQotc3RhdGljIEdPYmplY3QqIHdlYmtpdF9kb21fbm9k
ZV9jb25zdHJ1Y3RvcihHVHlwZSB0eXBlLCBndWludCBjb25zdHJ1Y3RQcm9wZXJ0aWVzQ291bnQs
IEdPYmplY3RDb25zdHJ1Y3RQYXJhbSogY29uc3RydWN0UHJvcGVydGllcykKLXsKLSAgICBHT2Jq
ZWN0KiBvYmplY3QgPSBHX09CSkVDVF9DTEFTUyh3ZWJraXRfZG9tX25vZGVfcGFyZW50X2NsYXNz
KS0+Y29uc3RydWN0b3IodHlwZSwgY29uc3RydWN0UHJvcGVydGllc0NvdW50LCBjb25zdHJ1Y3RQ
cm9wZXJ0aWVzKTsKLQotICAgIFdlYktpdERPTU5vZGVQcml2YXRlKiBwcml2ID0gV0VCS0lUX0RP
TV9OT0RFX0dFVF9QUklWQVRFKG9iamVjdCk7Ci0gICAgcHJpdi0+Y29yZU9iamVjdCA9IHN0YXRp
Y19jYXN0PFdlYkNvcmU6Ok5vZGUqPihXRUJLSVRfRE9NX09CSkVDVChvYmplY3QpLT5jb3JlT2Jq
ZWN0KTsKLSAgICBXZWJLaXQ6OkRPTU9iamVjdENhY2hlOjpwdXQocHJpdi0+Y29yZU9iamVjdC5n
ZXQoKSwgb2JqZWN0KTsKLQotICAgIHJldHVybiBvYmplY3Q7Ci19Ci0KLXN0YXRpYyB2b2lkIHdl
YmtpdF9kb21fbm9kZV9jbGFzc19pbml0KFdlYktpdERPTU5vZGVDbGFzcyogcmVxdWVzdENsYXNz
KQotewotICAgIEdPYmplY3RDbGFzcyogZ29iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1MocmVx
dWVzdENsYXNzKTsKLSAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUoZ29iamVjdENsYXNzLCBz
aXplb2YoV2ViS2l0RE9NTm9kZVByaXZhdGUpKTsKLSAgICBnb2JqZWN0Q2xhc3MtPmNvbnN0cnVj
dG9yID0gd2Via2l0X2RvbV9ub2RlX2NvbnN0cnVjdG9yOwotICAgIGdvYmplY3RDbGFzcy0+Zmlu
YWxpemUgPSB3ZWJraXRfZG9tX25vZGVfZmluYWxpemU7Ci0gICAgZ29iamVjdENsYXNzLT5zZXRf
cHJvcGVydHkgPSB3ZWJraXRfZG9tX25vZGVfc2V0X3Byb3BlcnR5OwotICAgIGdvYmplY3RDbGFz
cy0+Z2V0X3Byb3BlcnR5ID0gd2Via2l0X2RvbV9ub2RlX2dldF9wcm9wZXJ0eTsKLQotICAgIGdf
b2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdvYmplY3RDbGFzcywKLSAg
ICAgICAgRE9NX05PREVfUFJPUF9OT0RFX05BTUUsCi0gICAgICAgIGdfcGFyYW1fc3BlY19zdHJp
bmcoCi0gICAgICAgICAgICAibm9kZS1uYW1lIiwKLSAgICAgICAgICAgICJOb2RlOm5vZGUtbmFt
ZSIsCi0gICAgICAgICAgICAicmVhZC1vbmx5IGdjaGFyKiBOb2RlOm5vZGUtbmFtZSIsCi0gICAg
ICAgICAgICAiIiwKLSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAg
Z19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVjdENsYXNzLAot
ICAgICAgICBET01fTk9ERV9QUk9QX05PREVfVkFMVUUsCi0gICAgICAgIGdfcGFyYW1fc3BlY19z
dHJpbmcoCi0gICAgICAgICAgICAibm9kZS12YWx1ZSIsCi0gICAgICAgICAgICAiTm9kZTpub2Rl
LXZhbHVlIiwKLSAgICAgICAgICAgICJyZWFkLXdyaXRlIGdjaGFyKiBOb2RlOm5vZGUtdmFsdWUi
LAotICAgICAgICAgICAgIiIsCi0gICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7
Ci0KLSAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0
Q2xhc3MsCi0gICAgICAgIERPTV9OT0RFX1BST1BfTk9ERV9UWVBFLAotICAgICAgICBnX3BhcmFt
X3NwZWNfdWludCgKLSAgICAgICAgICAgICJub2RlLXR5cGUiLAotICAgICAgICAgICAgIk5vZGU6
bm9kZS10eXBlIiwKLSAgICAgICAgICAgICJyZWFkLW9ubHkgZ3VzaG9ydCBOb2RlOm5vZGUtdHlw
ZSIsCi0gICAgICAgICAgICAwLCBHX01BWFVJTlQsIDAsCi0gICAgICAgICAgICBXRUJLSVRfUEFS
QU1fUkVBREFCTEUpKTsKLQotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0g
ICAgICAgIGdvYmplY3RDbGFzcywKLSAgICAgICAgRE9NX05PREVfUFJPUF9QQVJFTlRfTk9ERSwK
LSAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgKLSAgICAgICAgICAgICJwYXJlbnQtbm9kZSIs
Ci0gICAgICAgICAgICAiTm9kZTpwYXJlbnQtbm9kZSIsCi0gICAgICAgICAgICAicmVhZC1vbmx5
IFdlYktpdERPTU5vZGUqIE5vZGU6cGFyZW50LW5vZGUiLAotICAgICAgICAgICAgV0VCS0lUX0RP
TV9UWVBFX05PREUsCi0gICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAg
IGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdvYmplY3RDbGFzcywK
LSAgICAgICAgRE9NX05PREVfUFJPUF9DSElMRF9OT0RFUywKLSAgICAgICAgZ19wYXJhbV9zcGVj
X29iamVjdCgKLSAgICAgICAgICAgICJjaGlsZC1ub2RlcyIsCi0gICAgICAgICAgICAiTm9kZTpj
aGlsZC1ub2RlcyIsCi0gICAgICAgICAgICAicmVhZC1vbmx5IFdlYktpdERPTU5vZGVMaXN0KiBO
b2RlOmNoaWxkLW5vZGVzIiwKLSAgICAgICAgICAgIFdFQktJVF9ET01fVFlQRV9OT0RFX0xJU1Qs
Ci0gICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLQotICAgIGdfb2JqZWN0X2Ns
YXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdvYmplY3RDbGFzcywKLSAgICAgICAgRE9N
X05PREVfUFJPUF9GSVJTVF9DSElMRCwKLSAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgKLSAg
ICAgICAgICAgICJmaXJzdC1jaGlsZCIsCi0gICAgICAgICAgICAiTm9kZTpmaXJzdC1jaGlsZCIs
Ci0gICAgICAgICAgICAicmVhZC1vbmx5IFdlYktpdERPTU5vZGUqIE5vZGU6Zmlyc3QtY2hpbGQi
LAotICAgICAgICAgICAgV0VCS0lUX0RPTV9UWVBFX05PREUsCi0gICAgICAgICAgICBXRUJLSVRf
UEFSQU1fUkVBREFCTEUpKTsKLQotICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHko
Ci0gICAgICAgIGdvYmplY3RDbGFzcywKLSAgICAgICAgRE9NX05PREVfUFJPUF9MQVNUX0NISUxE
LAotICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KAotICAgICAgICAgICAgImxhc3QtY2hpbGQi
LAotICAgICAgICAgICAgIk5vZGU6bGFzdC1jaGlsZCIsCi0gICAgICAgICAgICAicmVhZC1vbmx5
IFdlYktpdERPTU5vZGUqIE5vZGU6bGFzdC1jaGlsZCIsCi0gICAgICAgICAgICBXRUJLSVRfRE9N
X1RZUEVfTk9ERSwKLSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAg
Z19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVjdENsYXNzLAot
ICAgICAgICBET01fTk9ERV9QUk9QX1BSRVZJT1VTX1NJQkxJTkcsCi0gICAgICAgIGdfcGFyYW1f
c3BlY19vYmplY3QoCi0gICAgICAgICAgICAicHJldmlvdXMtc2libGluZyIsCi0gICAgICAgICAg
ICAiTm9kZTpwcmV2aW91cy1zaWJsaW5nIiwKLSAgICAgICAgICAgICJyZWFkLW9ubHkgV2ViS2l0
RE9NTm9kZSogTm9kZTpwcmV2aW91cy1zaWJsaW5nIiwKLSAgICAgICAgICAgIFdFQktJVF9ET01f
VFlQRV9OT0RFLAotICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAgICBn
X29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xhc3MsCi0g
ICAgICAgIERPTV9OT0RFX1BST1BfTkVYVF9TSUJMSU5HLAotICAgICAgICBnX3BhcmFtX3NwZWNf
b2JqZWN0KAotICAgICAgICAgICAgIm5leHQtc2libGluZyIsCi0gICAgICAgICAgICAiTm9kZTpu
ZXh0LXNpYmxpbmciLAotICAgICAgICAgICAgInJlYWQtb25seSBXZWJLaXRET01Ob2RlKiBOb2Rl
Om5leHQtc2libGluZyIsCi0gICAgICAgICAgICBXRUJLSVRfRE9NX1RZUEVfTk9ERSwKLSAgICAg
ICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5z
dGFsbF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBET01fTk9ERV9Q
Uk9QX09XTkVSX0RPQ1VNRU5ULAotICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KAotICAgICAg
ICAgICAgIm93bmVyLWRvY3VtZW50IiwKLSAgICAgICAgICAgICJOb2RlOm93bmVyLWRvY3VtZW50
IiwKLSAgICAgICAgICAgICJyZWFkLW9ubHkgV2ViS2l0RE9NRG9jdW1lbnQqIE5vZGU6b3duZXIt
ZG9jdW1lbnQiLAotICAgICAgICAgICAgV0VCS0lUX0RPTV9UWVBFX0RPQ1VNRU5ULAotICAgICAg
ICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7Ci0KLSAgICBnX29iamVjdF9jbGFzc19pbnN0
YWxsX3Byb3BlcnR5KAotICAgICAgICBnb2JqZWN0Q2xhc3MsCi0gICAgICAgIERPTV9OT0RFX1BS
T1BfQkFTRV9VUkksCi0gICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoCi0gICAgICAgICAgICAi
YmFzZS11cmkiLAotICAgICAgICAgICAgIk5vZGU6YmFzZS11cmkiLAotICAgICAgICAgICAgInJl
YWQtb25seSBnY2hhciogTm9kZTpiYXNlLXVyaSIsCi0gICAgICAgICAgICAiIiwKLSAgICAgICAg
ICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwotCi0gICAgZ19vYmplY3RfY2xhc3NfaW5zdGFs
bF9wcm9wZXJ0eSgKLSAgICAgICAgZ29iamVjdENsYXNzLAotICAgICAgICBET01fTk9ERV9QUk9Q
X1RFWFRfQ09OVEVOVCwKLSAgICAgICAgZ19wYXJhbV9zcGVjX3N0cmluZygKLSAgICAgICAgICAg
ICJ0ZXh0LWNvbnRlbnQiLAotICAgICAgICAgICAgIk5vZGU6dGV4dC1jb250ZW50IiwKLSAgICAg
ICAgICAgICJyZWFkLXdyaXRlIGdjaGFyKiBOb2RlOnRleHQtY29udGVudCIsCi0gICAgICAgICAg
ICAiIiwKLSAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKLQotICAgIGdfb2Jq
ZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdvYmplY3RDbGFzcywKLSAgICAg
ICAgRE9NX05PREVfUFJPUF9QQVJFTlRfRUxFTUVOVCwKLSAgICAgICAgZ19wYXJhbV9zcGVjX29i
amVjdCgKLSAgICAgICAgICAgICJwYXJlbnQtZWxlbWVudCIsCi0gICAgICAgICAgICAiTm9kZTpw
YXJlbnQtZWxlbWVudCIsCi0gICAgICAgICAgICAicmVhZC1vbmx5IFdlYktpdERPTUVsZW1lbnQq
IE5vZGU6cGFyZW50LWVsZW1lbnQiLAotICAgICAgICAgICAgV0VCS0lUX0RPTV9UWVBFX0VMRU1F
TlQsCi0gICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKLQotfQotCi1zdGF0aWMg
dm9pZCB3ZWJraXRfZG9tX25vZGVfaW5pdChXZWJLaXRET01Ob2RlKiByZXF1ZXN0KQotewotICAg
IFdlYktpdERPTU5vZGVQcml2YXRlKiBwcml2ID0gV0VCS0lUX0RPTV9OT0RFX0dFVF9QUklWQVRF
KHJlcXVlc3QpOwotICAgIG5ldyAocHJpdikgV2ViS2l0RE9NTm9kZVByaXZhdGUoKTsKLX0KLQot
V2ViS2l0RE9NTm9kZSogd2Via2l0X2RvbV9ub2RlX2luc2VydF9iZWZvcmUoV2ViS2l0RE9NTm9k
ZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogbmV3Q2hpbGQsIFdlYktpdERPTU5vZGUqIHJlZkNoaWxk
LCBHRXJyb3IqKiBlcnJvcikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19OT0RFKHNlbGYp
LCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX05PREUobmV3Q2hp
bGQpLCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbCghcmVmQ2hpbGQgfHwgV0VCS0lUX0RP
TV9JU19OT0RFKHJlZkNoaWxkKSwgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoIWVycm9y
IHx8ICEqZXJyb3IsIDApOwotICAgIFdlYkNvcmU6Ok5vZGUqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUo
c2VsZik7Ci0gICAgV2ViQ29yZTo6Tm9kZSogY29udmVydGVkTmV3Q2hpbGQgPSBXZWJLaXQ6OmNv
cmUobmV3Q2hpbGQpOwotICAgIFdlYkNvcmU6Ok5vZGUqIGNvbnZlcnRlZFJlZkNoaWxkID0gV2Vi
S2l0Ojpjb3JlKHJlZkNoaWxkKTsKLSAgICBhdXRvIHJlc3VsdCA9IGl0ZW0tPmluc2VydEJlZm9y
ZSgqY29udmVydGVkTmV3Q2hpbGQsIGNvbnZlcnRlZFJlZkNoaWxkKTsKLSAgICBpZiAocmVzdWx0
Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3JlOjpE
T01FeGNlcHRpb246OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgp
KTsKLSAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmlu
ZygiV0VCS0lUX0RPTSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5uYW1l
KTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBuZXdDaGlsZDsK
LX0KLQotV2ViS2l0RE9NTm9kZSogd2Via2l0X2RvbV9ub2RlX3JlcGxhY2VfY2hpbGQoV2ViS2l0
RE9NTm9kZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogbmV3Q2hpbGQsIFdlYktpdERPTU5vZGUqIG9s
ZENoaWxkLCBHRXJyb3IqKiBlcnJvcikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19OT0RF
KHNlbGYpLCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX05PREUo
bmV3Q2hpbGQpLCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX05P
REUob2xkQ2hpbGQpLCAwKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbCghZXJyb3IgfHwgISpl
cnJvciwgMCk7Ci0gICAgV2ViQ29yZTo6Tm9kZSogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsK
LSAgICBXZWJDb3JlOjpOb2RlKiBjb252ZXJ0ZWROZXdDaGlsZCA9IFdlYktpdDo6Y29yZShuZXdD
aGlsZCk7Ci0gICAgV2ViQ29yZTo6Tm9kZSogY29udmVydGVkT2xkQ2hpbGQgPSBXZWJLaXQ6OmNv
cmUob2xkQ2hpbGQpOwotICAgIGF1dG8gcmVzdWx0ID0gaXRlbS0+cmVwbGFjZUNoaWxkKCpjb252
ZXJ0ZWROZXdDaGlsZCwgKmNvbnZlcnRlZE9sZENoaWxkKTsKLSAgICBpZiAocmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKSB7Ci0gICAgICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3JlOjpET01FeGNl
cHRpb246OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgpKTsKLSAg
ICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VC
S0lUX0RPTSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5uYW1lKTsKLSAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBvbGRDaGlsZDsKLX0KLQot
V2ViS2l0RE9NTm9kZSogd2Via2l0X2RvbV9ub2RlX3JlbW92ZV9jaGlsZChXZWJLaXRET01Ob2Rl
KiBzZWxmLCBXZWJLaXRET01Ob2RlKiBvbGRDaGlsZCwgR0Vycm9yKiogZXJyb3IpCi17Ci0gICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKFdFQktJVF9ET01fSVNfTk9ERShzZWxmKSwgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoV0VCS0lUX0RPTV9JU19OT0RFKG9sZENoaWxkKSwgMCk7Ci0gICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoIWVycm9yIHx8ICEqZXJyb3IsIDApOwotICAgIFdlYkNvcmU6Ok5vZGUqIGl0ZW0g
PSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgV2ViQ29yZTo6Tm9kZSogY29udmVydGVkT2xkQ2hp
bGQgPSBXZWJLaXQ6OmNvcmUob2xkQ2hpbGQpOwotICAgIGF1dG8gcmVzdWx0ID0gaXRlbS0+cmVt
b3ZlQ2hpbGQoKmNvbnZlcnRlZE9sZENoaWxkKTsKLSAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlv
bigpKSB7Ci0gICAgICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3JlOjpET01FeGNlcHRpb246
OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgpKTsKLSAgICAgICAg
Z19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RP
TSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5uYW1lKTsKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBvbGRDaGlsZDsKLX0KLQotV2ViS2l0
RE9NTm9kZSogd2Via2l0X2RvbV9ub2RlX2FwcGVuZF9jaGlsZChXZWJLaXRET01Ob2RlKiBzZWxm
LCBXZWJLaXRET01Ob2RlKiBuZXdDaGlsZCwgR0Vycm9yKiogZXJyb3IpCi17Ci0gICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KFdFQktJVF9ET01fSVNfTk9ERShzZWxmKSwgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
V0VCS0lUX0RPTV9JU19OT0RFKG5ld0NoaWxkKSwgMCk7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoIWVycm9yIHx8ICEqZXJyb3IsIDApOwotICAgIFdlYkNvcmU6Ok5vZGUqIGl0ZW0gPSBXZWJL
aXQ6OmNvcmUoc2VsZik7Ci0gICAgV2ViQ29yZTo6Tm9kZSogY29udmVydGVkTmV3Q2hpbGQgPSBX
ZWJLaXQ6OmNvcmUobmV3Q2hpbGQpOwotICAgIGF1dG8gcmVzdWx0ID0gaXRlbS0+YXBwZW5kQ2hp
bGQoKmNvbnZlcnRlZE5ld0NoaWxkKTsKLSAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7
Ci0gICAgICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3JlOjpET01FeGNlcHRpb246OmRlc2Ny
aXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgpKTsKLSAgICAgICAgZ19zZXRf
ZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBk
ZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5uYW1lKTsKLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgfQotICAgIHJldHVybiBuZXdDaGlsZDsKLX0KLQotZ2Jvb2xlYW4gd2Vi
a2l0X2RvbV9ub2RlX2hhc19jaGlsZF9ub2RlcyhXZWJLaXRET01Ob2RlKiBzZWxmKQotewotICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxf
aWZfZmFpbChXRUJLSVRfRE9NX0lTX05PREUoc2VsZiksIEZBTFNFKTsKLSAgICBXZWJDb3JlOjpO
b2RlKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdib29sZWFuIHJlc3VsdCA9IGl0
ZW0tPmhhc0NoaWxkTm9kZXMoKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1XZWJLaXRET01O
b2RlKiB3ZWJraXRfZG9tX25vZGVfY2xvbmVfbm9kZV93aXRoX2Vycm9yKFdlYktpdERPTU5vZGUq
IHNlbGYsIGdib29sZWFuIGRlZXAsIEdFcnJvcioqIGVycm9yKQotewotICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJL
SVRfRE9NX0lTX05PREUoc2VsZiksIDApOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKCFlcnJv
ciB8fCAhKmVycm9yLCAwKTsKLSAgICBXZWJDb3JlOjpOb2RlKiBpdGVtID0gV2ViS2l0Ojpjb3Jl
KHNlbGYpOwotICAgIGF1dG8gcmVzdWx0ID0gaXRlbS0+Y2xvbmVOb2RlRm9yQmluZGluZ3MoZGVl
cCk7Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICBhdXRvIGRlc2Ny
aXB0aW9uID0gV2ViQ29yZTo6RE9NRXhjZXB0aW9uOjpkZXNjcmlwdGlvbihyZXN1bHQucmVsZWFz
ZUV4Y2VwdGlvbigpLmNvZGUoKSk7Ci0gICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3Is
IGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZGVzY3JpcHRpb24ubGVnYWN5Q29k
ZSwgZGVzY3JpcHRpb24ubmFtZSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAg
ICByZXR1cm4gV2ViS2l0OjpraXQocmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLnB0cigpKTsK
LX0KLQotdm9pZCB3ZWJraXRfZG9tX25vZGVfbm9ybWFsaXplKFdlYktpdERPTU5vZGUqIHNlbGYp
Ci17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0
dXJuX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19OT0RFKHNlbGYpKTsKLSAgICBXZWJDb3JlOjpOb2Rl
KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGl0ZW0tPm5vcm1hbGl6ZSgpOwotfQot
Ci1nYm9vbGVhbiB3ZWJraXRfZG9tX25vZGVfaXNfc3VwcG9ydGVkKFdlYktpdERPTU5vZGUqIHNl
bGYsIGNvbnN0IGdjaGFyKiBmZWF0dXJlLCBjb25zdCBnY2hhciogdmVyc2lvbikKLXsKLSAgICBn
X3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX05PREUoc2VsZiksIEZBTFNFKTsKLSAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChmZWF0dXJlLCBGQUxTRSk7Ci0gICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwodmVyc2lvbiwgRkFMU0UpOwotICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZEZlYXR1
cmUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgoZmVhdHVyZSk7Ci0gICAgV1RGOjpTdHJpbmcgY29u
dmVydGVkVmVyc2lvbiA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOCh2ZXJzaW9uKTsKLSAgICByZXR1
cm4gV2ViQ29yZTo6U1ZHVGVzdHM6Omhhc0ZlYXR1cmVGb3JMZWdhY3lCaW5kaW5ncyhjb252ZXJ0
ZWRGZWF0dXJlLCBjb252ZXJ0ZWRWZXJzaW9uKTsKLX0KLQotZ2Jvb2xlYW4gd2Via2l0X2RvbV9u
b2RlX2lzX3NhbWVfbm9kZShXZWJLaXRET01Ob2RlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBvdGhl
cikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19OT0RFKHNlbGYpLCBGQUxTRSk7Ci0gICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19OT0RFKG90aGVyKSwgRkFMU0UpOwot
ICAgIFdlYkNvcmU6Ok5vZGUqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgV2ViQ29y
ZTo6Tm9kZSogY29udmVydGVkT3RoZXIgPSBXZWJLaXQ6OmNvcmUob3RoZXIpOwotICAgIGdib29s
ZWFuIHJlc3VsdCA9IGl0ZW0tPmlzU2FtZU5vZGUoY29udmVydGVkT3RoZXIpOwotICAgIHJldHVy
biByZXN1bHQ7Ci19Ci0KLWdib29sZWFuIHdlYmtpdF9kb21fbm9kZV9pc19lcXVhbF9ub2RlKFdl
YktpdERPTU5vZGUqIHNlbGYsIFdlYktpdERPTU5vZGUqIG90aGVyKQotewotICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChX
RUJLSVRfRE9NX0lTX05PREUoc2VsZiksIEZBTFNFKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfRE9NX0lTX05PREUob3RoZXIpLCBGQUxTRSk7Ci0gICAgV2ViQ29yZTo6Tm9kZSog
aXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBXZWJDb3JlOjpOb2RlKiBjb252ZXJ0ZWRP
dGhlciA9IFdlYktpdDo6Y29yZShvdGhlcik7Ci0gICAgZ2Jvb2xlYW4gcmVzdWx0ID0gaXRlbS0+
aXNFcXVhbE5vZGUoY29udmVydGVkT3RoZXIpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLWdj
aGFyKiB3ZWJraXRfZG9tX25vZGVfbG9va3VwX3ByZWZpeChXZWJLaXRET01Ob2RlKiBzZWxmLCBj
b25zdCBnY2hhciogbmFtZXNwYWNlVVJJKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX05P
REUoc2VsZiksIDApOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKG5hbWVzcGFjZVVSSSwgMCk7
Ci0gICAgV2ViQ29yZTo6Tm9kZSogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBXVEY6
OlN0cmluZyBjb252ZXJ0ZWROYW1lc3BhY2VVUkkgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgobmFt
ZXNwYWNlVVJJKTsKLSAgICBnY2hhciogcmVzdWx0ID0gY29udmVydFRvVVRGOFN0cmluZyhpdGVt
LT5sb29rdXBQcmVmaXgoY29udmVydGVkTmFtZXNwYWNlVVJJKSk7Ci0gICAgcmV0dXJuIHJlc3Vs
dDsKLX0KLQotZ2NoYXIqIHdlYmtpdF9kb21fbm9kZV9sb29rdXBfbmFtZXNwYWNlX3VyaShXZWJL
aXRET01Ob2RlKiBzZWxmLCBjb25zdCBnY2hhciogcHJlZml4KQotewotICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJL
SVRfRE9NX0lTX05PREUoc2VsZiksIDApOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHByZWZp
eCwgMCk7Ci0gICAgV2ViQ29yZTo6Tm9kZSogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAg
ICBXVEY6OlN0cmluZyBjb252ZXJ0ZWRQcmVmaXggPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgocHJl
Zml4KTsKLSAgICBnY2hhciogcmVzdWx0ID0gY29udmVydFRvVVRGOFN0cmluZyhpdGVtLT5sb29r
dXBOYW1lc3BhY2VVUkkoY29udmVydGVkUHJlZml4KSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0K
LQotZ2Jvb2xlYW4gd2Via2l0X2RvbV9ub2RlX2lzX2RlZmF1bHRfbmFtZXNwYWNlKFdlYktpdERP
TU5vZGUqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lc3BhY2VVUkkpCi17Ci0gICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdF
QktJVF9ET01fSVNfTk9ERShzZWxmKSwgRkFMU0UpOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KG5hbWVzcGFjZVVSSSwgRkFMU0UpOwotICAgIFdlYkNvcmU6Ok5vZGUqIGl0ZW0gPSBXZWJLaXQ6
OmNvcmUoc2VsZik7Ci0gICAgV1RGOjpTdHJpbmcgY29udmVydGVkTmFtZXNwYWNlVVJJID0gV1RG
OjpTdHJpbmc6OmZyb21VVEY4KG5hbWVzcGFjZVVSSSk7Ci0gICAgZ2Jvb2xlYW4gcmVzdWx0ID0g
aXRlbS0+aXNEZWZhdWx0TmFtZXNwYWNlKGNvbnZlcnRlZE5hbWVzcGFjZVVSSSk7Ci0gICAgcmV0
dXJuIHJlc3VsdDsKLX0KLQotZ3VzaG9ydCB3ZWJraXRfZG9tX25vZGVfY29tcGFyZV9kb2N1bWVu
dF9wb3NpdGlvbihXZWJLaXRET01Ob2RlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBvdGhlcikKLXsK
LSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19OT0RFKHNlbGYpLCAwKTsKLSAgICBnX3JldHVybl92
YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX05PREUob3RoZXIpLCAwKTsKLSAgICBXZWJDb3JlOjpO
b2RlKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFdlYkNvcmU6Ok5vZGUqIGNvbnZl
cnRlZE90aGVyID0gV2ViS2l0Ojpjb3JlKG90aGVyKTsKLSAgICBndXNob3J0IHJlc3VsdCA9IGl0
ZW0tPmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKCpjb252ZXJ0ZWRPdGhlcik7Ci0gICAgcmV0dXJu
IHJlc3VsdDsKLX0KLQotZ2Jvb2xlYW4gd2Via2l0X2RvbV9ub2RlX2NvbnRhaW5zKFdlYktpdERP
TU5vZGUqIHNlbGYsIFdlYktpdERPTU5vZGUqIG90aGVyKQotewotICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRf
RE9NX0lTX05PREUoc2VsZiksIEZBTFNFKTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJL
SVRfRE9NX0lTX05PREUob3RoZXIpLCBGQUxTRSk7Ci0gICAgV2ViQ29yZTo6Tm9kZSogaXRlbSA9
IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBXZWJDb3JlOjpOb2RlKiBjb252ZXJ0ZWRPdGhlciA9
IFdlYktpdDo6Y29yZShvdGhlcik7Ci0gICAgZ2Jvb2xlYW4gcmVzdWx0ID0gaXRlbS0+Y29udGFp
bnMoY29udmVydGVkT3RoZXIpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLWdjaGFyKiB3ZWJr
aXRfZG9tX25vZGVfZ2V0X25vZGVfbmFtZShXZWJLaXRET01Ob2RlKiBzZWxmKQotewotICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfRE9NX0lTX05PREUoc2VsZiksIDApOwotICAgIFdlYkNvcmU6Ok5vZGUqIGl0
ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ2NoYXIqIHJlc3VsdCA9IGNvbnZlcnRUb1VU
RjhTdHJpbmcoaXRlbS0+bm9kZU5hbWUoKSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotZ2No
YXIqIHdlYmtpdF9kb21fbm9kZV9nZXRfbm9kZV92YWx1ZShXZWJLaXRET01Ob2RlKiBzZWxmKQot
ewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX05PREUoc2VsZiksIDApOwotICAgIFdlYkNvcmU6
Ok5vZGUqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ2NoYXIqIHJlc3VsdCA9IGNv
bnZlcnRUb1VURjhTdHJpbmcoaXRlbS0+bm9kZVZhbHVlKCkpOwotICAgIHJldHVybiByZXN1bHQ7
Ci19Ci0KLXZvaWQgd2Via2l0X2RvbV9ub2RlX3NldF9ub2RlX3ZhbHVlKFdlYktpdERPTU5vZGUq
IHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpCi17Ci0gICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VC
S0lUX0RPTV9JU19OT0RFKHNlbGYpKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKHZhbHVlKTsKLSAg
ICBnX3JldHVybl9pZl9mYWlsKCFlcnJvciB8fCAhKmVycm9yKTsKLSAgICBXZWJDb3JlOjpOb2Rl
KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZFZh
bHVlID0gV1RGOjpTdHJpbmc6OmZyb21VVEY4KHZhbHVlKTsKLSAgICBhdXRvIHJlc3VsdCA9IGl0
ZW0tPnNldE5vZGVWYWx1ZShjb252ZXJ0ZWRWYWx1ZSk7Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNl
cHRpb24oKSkgewotICAgICAgICBhdXRvIGRlc2NyaXB0aW9uID0gV2ViQ29yZTo6RE9NRXhjZXB0
aW9uOjpkZXNjcmlwdGlvbihyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUoKSk7Ci0gICAg
ICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJ
VF9ET00iKSwgZGVzY3JpcHRpb24ubGVnYWN5Q29kZSwgZGVzY3JpcHRpb24ubmFtZSk7Ci0gICAg
fQotfQotCi1ndXNob3J0IHdlYmtpdF9kb21fbm9kZV9nZXRfbm9kZV90eXBlKFdlYktpdERPTU5v
ZGUqIHNlbGYpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwot
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfTk9ERShzZWxmKSwgMCk7Ci0g
ICAgV2ViQ29yZTo6Tm9kZSogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBndXNob3J0
IHJlc3VsdCA9IGl0ZW0tPm5vZGVUeXBlKCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotV2Vi
S2l0RE9NTm9kZSogd2Via2l0X2RvbV9ub2RlX2dldF9wYXJlbnRfbm9kZShXZWJLaXRET01Ob2Rl
KiBzZWxmKQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX05PREUoc2VsZiksIDApOwotICAg
IFdlYkNvcmU6Ok5vZGUqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgUmVmUHRyPFdl
YkNvcmU6Ok5vZGU+IGdvYmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5wYXJlbnROb2Rl
KCkpOwotICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKLX0KLQot
V2ViS2l0RE9NTm9kZUxpc3QqIHdlYmtpdF9kb21fbm9kZV9nZXRfY2hpbGRfbm9kZXMoV2ViS2l0
RE9NTm9kZSogc2VsZikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19OT0RFKHNlbGYpLCAw
KTsKLSAgICBXZWJDb3JlOjpOb2RlKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFJl
ZlB0cjxXZWJDb3JlOjpOb2RlTGlzdD4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0t
PmNoaWxkTm9kZXMoKSk7Ci0gICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0
KCkpOwotfQotCi1XZWJLaXRET01Ob2RlKiB3ZWJraXRfZG9tX25vZGVfZ2V0X2ZpcnN0X2NoaWxk
KFdlYktpdERPTU5vZGUqIHNlbGYpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfTk9ERShz
ZWxmKSwgMCk7Ci0gICAgV2ViQ29yZTo6Tm9kZSogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsK
LSAgICBSZWZQdHI8V2ViQ29yZTo6Tm9kZT4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0
ZW0tPmZpcnN0Q2hpbGQoKSk7Ci0gICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQu
Z2V0KCkpOwotfQotCi1XZWJLaXRET01Ob2RlKiB3ZWJraXRfZG9tX25vZGVfZ2V0X2xhc3RfY2hp
bGQoV2ViS2l0RE9NTm9kZSogc2VsZikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19OT0RF
KHNlbGYpLCAwKTsKLSAgICBXZWJDb3JlOjpOb2RlKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYp
OwotICAgIFJlZlB0cjxXZWJDb3JlOjpOb2RlPiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIo
aXRlbS0+bGFzdENoaWxkKCkpOwotICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0
LmdldCgpKTsKLX0KLQotV2ViS2l0RE9NTm9kZSogd2Via2l0X2RvbV9ub2RlX2dldF9wcmV2aW91
c19zaWJsaW5nKFdlYktpdERPTU5vZGUqIHNlbGYpCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01f
SVNfTk9ERShzZWxmKSwgMCk7Ci0gICAgV2ViQ29yZTo6Tm9kZSogaXRlbSA9IFdlYktpdDo6Y29y
ZShzZWxmKTsKLSAgICBSZWZQdHI8V2ViQ29yZTo6Tm9kZT4gZ29iamVjdFJlc3VsdCA9IFdURjo6
Z2V0UHRyKGl0ZW0tPnByZXZpb3VzU2libGluZygpKTsKLSAgICByZXR1cm4gV2ViS2l0OjpraXQo
Z29iamVjdFJlc3VsdC5nZXQoKSk7Ci19Ci0KLVdlYktpdERPTU5vZGUqIHdlYmtpdF9kb21fbm9k
ZV9nZXRfbmV4dF9zaWJsaW5nKFdlYktpdERPTU5vZGUqIHNlbGYpCi17Ci0gICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdF
QktJVF9ET01fSVNfTk9ERShzZWxmKSwgMCk7Ci0gICAgV2ViQ29yZTo6Tm9kZSogaXRlbSA9IFdl
YktpdDo6Y29yZShzZWxmKTsKLSAgICBSZWZQdHI8V2ViQ29yZTo6Tm9kZT4gZ29iamVjdFJlc3Vs
dCA9IFdURjo6Z2V0UHRyKGl0ZW0tPm5leHRTaWJsaW5nKCkpOwotICAgIHJldHVybiBXZWJLaXQ6
OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKLX0KLQotV2ViS2l0RE9NRG9jdW1lbnQqIHdlYmtp
dF9kb21fbm9kZV9nZXRfb3duZXJfZG9jdW1lbnQoV2ViS2l0RE9NTm9kZSogc2VsZikKLXsKLSAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19OT0RFKHNlbGYpLCAwKTsKLSAgICBXZWJDb3JlOjpOb2Rl
KiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIFJlZlB0cjxXZWJDb3JlOjpEb2N1bWVu
dD4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPm93bmVyRG9jdW1lbnQoKSk7Ci0g
ICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOwotfQotCi1nY2hhciog
d2Via2l0X2RvbV9ub2RlX2dldF9iYXNlX3VyaShXZWJLaXRET01Ob2RlKiBzZWxmKQotewotICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxf
aWZfZmFpbChXRUJLSVRfRE9NX0lTX05PREUoc2VsZiksIDApOwotICAgIFdlYkNvcmU6Ok5vZGUq
IGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgZ2NoYXIqIHJlc3VsdCA9IGNvbnZlcnRU
b1VURjhTdHJpbmcoaXRlbS0+YmFzZVVSSSgpKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1n
Y2hhciogd2Via2l0X2RvbV9ub2RlX2dldF90ZXh0X2NvbnRlbnQoV2ViS2l0RE9NTm9kZSogc2Vs
ZikKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19OT0RFKHNlbGYpLCAwKTsKLSAgICBXZWJD
b3JlOjpOb2RlKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGdjaGFyKiByZXN1bHQg
PSBjb252ZXJ0VG9VVEY4U3RyaW5nKGl0ZW0tPnRleHRDb250ZW50KCkpOwotICAgIHJldHVybiBy
ZXN1bHQ7Ci19Ci0KLXZvaWQgd2Via2l0X2RvbV9ub2RlX3NldF90ZXh0X2NvbnRlbnQoV2ViS2l0
RE9NTm9kZSogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJyb3IqKiBlcnJvcikKLXsKLSAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgZ19yZXR1cm5faWZf
ZmFpbChXRUJLSVRfRE9NX0lTX05PREUoc2VsZikpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwodmFs
dWUpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwoIWVycm9yIHx8ICEqZXJyb3IpOwotICAgIFdlYkNv
cmU6Ok5vZGUqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgV1RGOjpTdHJpbmcgY29u
dmVydGVkVmFsdWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodmFsdWUpOwotICAgIGF1dG8gcmVz
dWx0ID0gaXRlbS0+c2V0VGV4dENvbnRlbnQoY29udmVydGVkVmFsdWUpOwotICAgIGlmIChyZXN1
bHQuaGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgYXV0byBkZXNjcmlwdGlvbiA9IFdlYkNvcmU6
OkRPTUV4Y2VwdGlvbjo6ZGVzY3JpcHRpb24ocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKS5jb2Rl
KCkpOwotICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zyb21fc3Ry
aW5nKCJXRUJLSVRfRE9NIiksIGRlc2NyaXB0aW9uLmxlZ2FjeUNvZGUsIGRlc2NyaXB0aW9uLm5h
bWUpOwotICAgIH0KLX0KLQotV2ViS2l0RE9NRWxlbWVudCogd2Via2l0X2RvbV9ub2RlX2dldF9w
YXJlbnRfZWxlbWVudChXZWJLaXRET01Ob2RlKiBzZWxmKQotewotICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRf
RE9NX0lTX05PREUoc2VsZiksIDApOwotICAgIFdlYkNvcmU6Ok5vZGUqIGl0ZW0gPSBXZWJLaXQ6
OmNvcmUoc2VsZik7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+IGdvYmplY3RSZXN1bHQg
PSBXVEY6OmdldFB0cihpdGVtLT5wYXJlbnRFbGVtZW50KCkpOwotICAgIHJldHVybiBXZWJLaXQ6
OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKLX0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGUuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01Ob2RlLmgKaW5kZXggYzU0YzhhNzM4OWU5NzI2ZDA4NDBlY2EwYjVjOGM3NWNlMTYxOWZj
MS4uNDg2YWU5YjhjNGVjYzQ1MjgwZjNkYTViZGI1YmEzOTM5NjY0NWIzOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZS5oCkBAIC0yNSw2ICsyNSw3IEBACiAjZGVmaW5lIFdl
YktpdERPTU5vZGVfaAogCiAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDxqc2Mv
anNjLmg+CiAjaW5jbHVkZSA8d2Via2l0ZG9tL1dlYktpdERPTU9iamVjdC5oPgogI2luY2x1ZGUg
PHdlYmtpdGRvbS93ZWJraXRkb21kZWZpbmVzLmg+CiAKQEAgLTM3LDk4ICszOCwxMzYgQEAgR19C
RUdJTl9ERUNMUwogI2RlZmluZSBXRUJLSVRfRE9NX0lTX05PREVfQ0xBU1Moa2xhc3MpIChHX1RZ
UEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX0RPTV9UWVBFX05PREUpKQogI2Rl
ZmluZSBXRUJLSVRfRE9NX05PREVfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VU
X0NMQVNTKChvYmopLCAgV0VCS0lUX0RPTV9UWVBFX05PREUsIFdlYktpdERPTU5vZGVDbGFzcykp
CiAKK3N0cnVjdCBfV2ViS2l0RE9NTm9kZSB7CisgICAgV2ViS2l0RE9NT2JqZWN0IHBhcmVudF9p
bnN0YW5jZTsKK307CisKK3N0cnVjdCBfV2ViS2l0RE9NTm9kZUNsYXNzIHsKKyAgICBXZWJLaXRE
T01PYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7Cit9OworCisjaWZuZGVmIFdFQktJVF9ESVNBQkxF
X0RFUFJFQ0FURUQKKwogLyoqCiAgKiBXRUJLSVRfRE9NX05PREVfRUxFTUVOVF9OT0RFOgorICoK
KyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICov
CiAjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9FTEVNRU5UX05PREUgMQogCiAvKioKICAqIFdFQktJ
VF9ET01fTk9ERV9BVFRSSUJVVEVfTk9ERToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX05PREVf
QVRUUklCVVRFX05PREUgMgogCiAvKioKICAqIFdFQktJVF9ET01fTk9ERV9URVhUX05PREU6Cisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAg
Ki8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX1RFWFRfTk9ERSAzCiAKIC8qKgogICogV0VCS0lU
X0RPTV9OT0RFX0NEQVRBX1NFQ1RJT05fTk9ERToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX05P
REVfQ0RBVEFfU0VDVElPTl9OT0RFIDQKIAogLyoqCiAgKiBXRUJLSVRfRE9NX05PREVfRU5USVRZ
X1JFRkVSRU5DRV9OT0RFOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9FTlRJVFlfUkVG
RVJFTkNFX05PREUgNQogCiAvKioKICAqIFdFQktJVF9ET01fTk9ERV9FTlRJVFlfTk9ERToKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAq
LwogI2RlZmluZSBXRUJLSVRfRE9NX05PREVfRU5USVRZX05PREUgNgogCiAvKioKICAqIFdFQktJ
VF9ET01fTk9ERV9QUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREU6CisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VC
S0lUX0RPTV9OT0RFX1BST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERSA3CiAKIC8qKgogICogV0VC
S0lUX0RPTV9OT0RFX0NPTU1FTlRfTk9ERToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX05PREVf
Q09NTUVOVF9OT0RFIDgKIAogLyoqCiAgKiBXRUJLSVRfRE9NX05PREVfRE9DVU1FTlRfTk9ERToK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX05PREVfRE9DVU1FTlRfTk9ERSA5CiAKIC8qKgogICog
V0VCS0lUX0RPTV9OT0RFX0RPQ1VNRU5UX1RZUEVfTk9ERToKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRf
RE9NX05PREVfRE9DVU1FTlRfVFlQRV9OT0RFIDEwCiAKIC8qKgogICogV0VCS0lUX0RPTV9OT0RF
X0RPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0RP
Q1VNRU5UX0ZSQUdNRU5UX05PREUgMTEKIAogLyoqCiAgKiBXRUJLSVRfRE9NX05PREVfRE9DVU1F
TlRfUE9TSVRJT05fRElTQ09OTkVDVEVEOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9E
T0NVTUVOVF9QT1NJVElPTl9ESVNDT05ORUNURUQgMHgwMQogCiAvKioKICAqIFdFQktJVF9ET01f
Tk9ERV9ET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkc6CisgKgorICogRGVwcmVjYXRlZDogMi4y
MjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RP
TV9OT0RFX0RPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORyAweDAyCiAKIC8qKgogICogV0VCS0lU
X0RPTV9OT0RFX0RPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORzoKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJL
SVRfRE9NX05PREVfRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HIDB4MDQKIAogLyoqCiAgKiBX
RUJLSVRfRE9NX05PREVfRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTlM6CisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUg
V0VCS0lUX0RPTV9OT0RFX0RPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5TIDB4MDgKIAogLyoqCiAg
KiBXRUJLSVRfRE9NX05PREVfRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZOgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAj
ZGVmaW5lIFdFQktJVF9ET01fTk9ERV9ET0NVTUVOVF9QT1NJVElPTl9DT05UQUlORURfQlkgMHgx
MAogCiAvKioKICAqIFdFQktJVF9ET01fTk9ERV9ET0NVTUVOVF9QT1NJVElPTl9JTVBMRU1FTlRB
VElPTl9TUEVDSUZJQzoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX05PREVfRE9DVU1FTlRfUE9T
SVRJT05fSU1QTEVNRU5UQVRJT05fU1BFQ0lGSUMgMHgyMAogCi1zdHJ1Y3QgX1dlYktpdERPTU5v
ZGUgewotICAgIFdlYktpdERPTU9iamVjdCBwYXJlbnRfaW5zdGFuY2U7Ci19OwotCi1zdHJ1Y3Qg
X1dlYktpdERPTU5vZGVDbGFzcyB7Ci0gICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50X2Ns
YXNzOwotfTsKKyNlbmRpZiAvKiBXRUJLSVRfRElTQUJMRV9ERVBSRUNBVEVEICovCiAKIFdFQktJ
VF9BUEkgR1R5cGUKIHdlYmtpdF9kb21fbm9kZV9nZXRfdHlwZSh2b2lkKTsKQEAgLTE0MSw4ICsx
ODAsMTAgQEAgd2Via2l0X2RvbV9ub2RlX2dldF90eXBlKHZvaWQpOwogICogQGVycm9yOiAjR0Vy
cm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERP
TU5vZGUqCiB3ZWJraXRfZG9tX25vZGVfaW5zZXJ0X2JlZm9yZShXZWJLaXRET01Ob2RlKiBzZWxm
LCBXZWJLaXRET01Ob2RlKiBuZXdDaGlsZCwgV2ViS2l0RE9NTm9kZSogcmVmQ2hpbGQsIEdFcnJv
cioqIGVycm9yKTsKIAogLyoqCkBAIC0xNTMsOCArMTk0LDEwIEBAIHdlYmtpdF9kb21fbm9kZV9p
bnNlcnRfYmVmb3JlKFdlYktpdERPTU5vZGUqIHNlbGYsIFdlYktpdERPTU5vZGUqIG5ld0NoaWxk
LCBXZWJLCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9u
ZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VC
S0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fbm9kZV9yZXBsYWNlX2No
aWxkKFdlYktpdERPTU5vZGUqIHNlbGYsIFdlYktpdERPTU5vZGUqIG5ld0NoaWxkLCBXZWJLaXRE
T01Ob2RlKiBvbGRDaGlsZCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTE2NCw4ICsyMDcs
MTAgQEAgd2Via2l0X2RvbV9ub2RlX3JlcGxhY2VfY2hpbGQoV2ViS2l0RE9NTm9kZSogc2VsZiwg
V2ViS2l0RE9NTm9kZSogbmV3Q2hpbGQsIFdlYksKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAq
IFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Vi
a2l0X2RvbV9ub2RlX3JlbW92ZV9jaGlsZChXZWJLaXRET01Ob2RlKiBzZWxmLCBXZWJLaXRET01O
b2RlKiBvbGRDaGlsZCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTE3NSw4ICsyMjAsMTAg
QEAgd2Via2l0X2RvbV9ub2RlX3JlbW92ZV9jaGlsZChXZWJLaXRET01Ob2RlKiBzZWxmLCBXZWJL
aXRET01Ob2RlKiBvbGRDaGlsZCwgR0Vycm8KICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJl
dHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0
X2RvbV9ub2RlX2FwcGVuZF9jaGlsZChXZWJLaXRET01Ob2RlKiBzZWxmLCBXZWJLaXRET01Ob2Rl
KiBuZXdDaGlsZCwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTE4NCw4ICsyMzEsMTAgQEAg
d2Via2l0X2RvbV9ub2RlX2FwcGVuZF9jaGlsZChXZWJLaXRET01Ob2RlKiBzZWxmLCBXZWJLaXRE
T01Ob2RlKiBuZXdDaGlsZCwgR0Vycm8KICAqIEBzZWxmOiBBICNXZWJLaXRET01Ob2RlCiAgKgog
ICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fbm9kZV9oYXNfY2hpbGRfbm9kZXMoV2Vi
S2l0RE9NTm9kZSogc2VsZik7CiAKIC8qKgpAQCAtMTk3LDE2ICsyNDYsMjAgQEAgd2Via2l0X2Rv
bV9ub2RlX2hhc19jaGlsZF9ub2RlcyhXZWJLaXRET01Ob2RlKiBzZWxmKTsKICAqIFJldHVybnM6
ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQogICoKICAqIFNpbmNlOiAyLjE0Cisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERP
TU5vZGUqCiB3ZWJraXRfZG9tX25vZGVfY2xvbmVfbm9kZV93aXRoX2Vycm9yKFdlYktpdERPTU5v
ZGUqIHNlbGYsIGdib29sZWFuIGRlZXAsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCiAgKiB3ZWJr
aXRfZG9tX25vZGVfbm9ybWFsaXplOgogICogQHNlbGY6IEEgI1dlYktpdERPTU5vZGUKICAqCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9u
b2RlX25vcm1hbGl6ZShXZWJLaXRET01Ob2RlKiBzZWxmKTsKIAogLyoqCkBAIC0yMTYsOCArMjY5
LDEwIEBAIHdlYmtpdF9kb21fbm9kZV9ub3JtYWxpemUoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAg
KiBAdmVyc2lvbjogQSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2Rv
bV9ub2RlX2lzX3N1cHBvcnRlZChXZWJLaXRET01Ob2RlKiBzZWxmLCBjb25zdCBnY2hhciogZmVh
dHVyZSwgY29uc3QgZ2NoYXIqIHZlcnNpb24pOwogCiAvKioKQEAgLTIyNiw4ICsyODEsMTAgQEAg
d2Via2l0X2RvbV9ub2RlX2lzX3N1cHBvcnRlZChXZWJLaXRET01Ob2RlKiBzZWxmLCBjb25zdCBn
Y2hhciogZmVhdHVyZSwgY29uc3QgZ2MKICAqIEBvdGhlcjogQSAjV2ViS2l0RE9NTm9kZQogICoK
ICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJ
VF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX25vZGVfaXNfc2FtZV9ub2RlKFdlYktp
dERPTU5vZGUqIHNlbGYsIFdlYktpdERPTU5vZGUqIG90aGVyKTsKIAogLyoqCkBAIC0yMzYsOCAr
MjkzLDEwIEBAIHdlYmtpdF9kb21fbm9kZV9pc19zYW1lX25vZGUoV2ViS2l0RE9NTm9kZSogc2Vs
ZiwgV2ViS2l0RE9NTm9kZSogb3RoZXIpOwogICogQG90aGVyOiBBICNXZWJLaXRET01Ob2RlCiAg
KgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VC
S0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fbm9kZV9pc19lcXVhbF9ub2RlKFdl
YktpdERPTU5vZGUqIHNlbGYsIFdlYktpdERPTU5vZGUqIG90aGVyKTsKIAogLyoqCkBAIC0yNDYs
OCArMzA1LDEwIEBAIHdlYmtpdF9kb21fbm9kZV9pc19lcXVhbF9ub2RlKFdlYktpdERPTU5vZGUq
IHNlbGYsIFdlYktpdERPTU5vZGUqIG90aGVyKTsKICAqIEBuYW1lc3BhY2VVUkk6IEEgI2djaGFy
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9ub2RlX2xvb2t1cF9wcmVmaXgoV2ViS2l0
RE9NTm9kZSogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWVzcGFjZVVSSSk7CiAKIC8qKgpAQCAtMjU2
LDggKzMxNywxMCBAQCB3ZWJraXRfZG9tX25vZGVfbG9va3VwX3ByZWZpeChXZWJLaXRET01Ob2Rl
KiBzZWxmLCBjb25zdCBnY2hhciogbmFtZXNwYWNlVVJJKTsKICAqIEBwcmVmaXg6IEEgI2djaGFy
CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJ
VF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9ub2RlX2xvb2t1cF9uYW1lc3BhY2VfdXJp
KFdlYktpdERPTU5vZGUqIHNlbGYsIGNvbnN0IGdjaGFyKiBwcmVmaXgpOwogCiAvKioKQEAgLTI2
Niw4ICszMjksMTAgQEAgd2Via2l0X2RvbV9ub2RlX2xvb2t1cF9uYW1lc3BhY2VfdXJpKFdlYktp
dERPTU5vZGUqIHNlbGYsIGNvbnN0IGdjaGFyKiBwcmVmaXgpOwogICogQG5hbWVzcGFjZVVSSTog
QSAjZ2NoYXIKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdi
b29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Via2l0X2RvbV9ub2RlX2lzX2Rl
ZmF1bHRfbmFtZXNwYWNlKFdlYktpdERPTU5vZGUqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lc3Bh
Y2VVUkkpOwogCiAvKioKQEAgLTI3Niw4ICszNDEsMTAgQEAgd2Via2l0X2RvbV9ub2RlX2lzX2Rl
ZmF1bHRfbmFtZXNwYWNlKFdlYktpdERPTU5vZGUqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lc3Bh
Y2UKICAqIEBvdGhlcjogQSAjV2ViS2l0RE9NTm9kZQogICoKICAqIFJldHVybnM6IEEgI2d1c2hv
cnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBndXNob3J0CitXRUJLSVRfREVQUkVDQVRFRCBndXNob3J0CiB3
ZWJraXRfZG9tX25vZGVfY29tcGFyZV9kb2N1bWVudF9wb3NpdGlvbihXZWJLaXRET01Ob2RlKiBz
ZWxmLCBXZWJLaXRET01Ob2RlKiBvdGhlcik7CiAKIC8qKgpAQCAtMjg2LDggKzM1MywxMCBAQCB3
ZWJraXRfZG9tX25vZGVfY29tcGFyZV9kb2N1bWVudF9wb3NpdGlvbihXZWJLaXRET01Ob2RlKiBz
ZWxmLCBXZWJLaXRET01Ob2RlKiBvdAogICogQG90aGVyOiBBICNXZWJLaXRET01Ob2RlCiAgKgog
ICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2
YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lU
X0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtpdF9kb21fbm9kZV9jb250YWlucyhXZWJLaXRET01O
b2RlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBvdGhlcik7CiAKIC8qKgpAQCAtMjk1LDggKzM2NCwx
MCBAQCB3ZWJraXRfZG9tX25vZGVfY29udGFpbnMoV2ViS2l0RE9NTm9kZSogc2VsZiwgV2ViS2l0
RE9NTm9kZSogb3RoZXIpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBSZXR1
cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQg
Z2NoYXIqCiB3ZWJraXRfZG9tX25vZGVfZ2V0X25vZGVfbmFtZShXZWJLaXRET01Ob2RlKiBzZWxm
KTsKIAogLyoqCkBAIC0zMDQsOCArMzc1LDEwIEBAIHdlYmtpdF9kb21fbm9kZV9nZXRfbm9kZV9u
YW1lKFdlYktpdERPTU5vZGUqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU5vZGUKICAq
CiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RF
UFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX25vZGVfZ2V0X25vZGVfdmFsdWUoV2ViS2l0RE9N
Tm9kZSogc2VsZik7CiAKIC8qKgpAQCAtMzE0LDggKzM4NywxMCBAQCB3ZWJraXRfZG9tX25vZGVf
Z2V0X25vZGVfdmFsdWUoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAgKiBAdmFsdWU6IEEgI2djaGFy
CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RF
UFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9ub2RlX3NldF9ub2RlX3ZhbHVlKFdlYktpdERPTU5v
ZGUqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAg
LTMyMyw4ICszOTgsMTAgQEAgd2Via2l0X2RvbV9ub2RlX3NldF9ub2RlX3ZhbHVlKFdlYktpdERP
TU5vZGUqIHNlbGYsIGNvbnN0IGdjaGFyKiB2YWx1ZSwgR0Vycm9yKioKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01Ob2RlCiAgKgogICogUmV0dXJuczogQSAjZ3VzaG9ydAorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJ
IGd1c2hvcnQKK1dFQktJVF9ERVBSRUNBVEVEIGd1c2hvcnQKIHdlYmtpdF9kb21fbm9kZV9nZXRf
bm9kZV90eXBlKFdlYktpdERPTU5vZGUqIHNlbGYpOwogCiAvKioKQEAgLTMzMiw4ICs0MDksMTAg
QEAgd2Via2l0X2RvbV9ub2RlX2dldF9ub2RlX3R5cGUoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NTm9kZQogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25l
KTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJL
SVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9ub2RlX2dldF9wYXJlbnRf
bm9kZShXZWJLaXRET01Ob2RlKiBzZWxmKTsKIAogLyoqCkBAIC0zNDEsOCArNDIwLDEwIEBAIHdl
YmtpdF9kb21fbm9kZV9nZXRfcGFyZW50X25vZGUoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NTm9kZQogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTog
QSAjV2ViS2l0RE9NTm9kZUxpc3QKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlTGlzdCoK
K1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGVMaXN0Kgogd2Via2l0X2RvbV9ub2RlX2dl
dF9jaGlsZF9ub2RlcyhXZWJLaXRET01Ob2RlKiBzZWxmKTsKIAogLyoqCkBAIC0zNTAsOCArNDMx
LDEwIEBAIHdlYmtpdF9kb21fbm9kZV9nZXRfY2hpbGRfbm9kZXMoV2ViS2l0RE9NTm9kZSogc2Vs
Zik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTm9kZQogICoKICAqIFJldHVybnM6ICh0cmFuc2Zl
ciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUq
CitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9ub2RlX2dldF9m
aXJzdF9jaGlsZChXZWJLaXRET01Ob2RlKiBzZWxmKTsKIAogLyoqCkBAIC0zNTksOCArNDQyLDEw
IEBAIHdlYmtpdF9kb21fbm9kZV9nZXRfZmlyc3RfY2hpbGQoV2ViS2l0RE9NTm9kZSogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTm9kZQogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBu
b25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitX
RUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9ub2RlX2dldF9sYXN0
X2NoaWxkKFdlYktpdERPTU5vZGUqIHNlbGYpOwogCiAvKioKQEAgLTM2OCw4ICs0NTMsMTAgQEAg
d2Via2l0X2RvbV9ub2RlX2dldF9sYXN0X2NoaWxkKFdlYktpdERPTU5vZGUqIHNlbGYpOwogICog
QHNlbGY6IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6
IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lU
X0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fbm9kZV9nZXRfcHJldmlvdXNf
c2libGluZyhXZWJLaXRET01Ob2RlKiBzZWxmKTsKIAogLyoqCkBAIC0zNzcsOCArNDY0LDEwIEBA
IHdlYmtpdF9kb21fbm9kZV9nZXRfcHJldmlvdXNfc2libGluZyhXZWJLaXRET01Ob2RlKiBzZWxm
KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Ob2RlCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVy
IG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoK
K1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX25vZGVfZ2V0X25l
eHRfc2libGluZyhXZWJLaXRET01Ob2RlKiBzZWxmKTsKIAogLyoqCkBAIC0zODYsOCArNDc1LDEw
IEBAIHdlYmtpdF9kb21fbm9kZV9nZXRfbmV4dF9zaWJsaW5nKFdlYktpdERPTU5vZGUqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
bm9uZSk6IEEgI1dlYktpdERPTURvY3VtZW50CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRG9j
dW1lbnQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Eb2N1bWVudCoKIHdlYmtpdF9kb21f
bm9kZV9nZXRfb3duZXJfZG9jdW1lbnQoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAKIC8qKgpAQCAt
Mzk1LDggKzQ4NiwxMCBAQCB3ZWJraXRfZG9tX25vZGVfZ2V0X293bmVyX2RvY3VtZW50KFdlYktp
dERPTU5vZGUqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBSZXR1
cm5zOiBBICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQg
Z2NoYXIqCiB3ZWJraXRfZG9tX25vZGVfZ2V0X2Jhc2VfdXJpKFdlYktpdERPTU5vZGUqIHNlbGYp
OwogCiAvKioKQEAgLTQwNCw4ICs0OTcsMTAgQEAgd2Via2l0X2RvbV9ub2RlX2dldF9iYXNlX3Vy
aShXZWJLaXRET01Ob2RlKiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Ob2RlCiAgKgog
ICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNj
cmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBS
RUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9ub2RlX2dldF90ZXh0X2NvbnRlbnQoV2ViS2l0RE9N
Tm9kZSogc2VsZik7CiAKIC8qKgpAQCAtNDE0LDggKzUwOSwxMCBAQCB3ZWJraXRfZG9tX25vZGVf
Z2V0X3RleHRfY29udGVudChXZWJLaXRET01Ob2RlKiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjZ2No
YXIKICAqIEBlcnJvcjogI0dFcnJvcgogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRf
REVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX25vZGVfc2V0X3RleHRfY29udGVudChXZWJLaXRE
T01Ob2RlKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoq
CkBAIC00MjMsMTAgKzUyMCwxNSBAQCB3ZWJraXRfZG9tX25vZGVfc2V0X3RleHRfY29udGVudChX
ZWJLaXRET01Ob2RlKiBzZWxmLCBjb25zdCBnY2hhciogdmFsdWUsIEdFcnJvcgogICogQHNlbGY6
IEEgI1dlYktpdERPTU5vZGUKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dl
YktpdERPTUVsZW1lbnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01FbGVtZW50KgorV0VCS0lU
X0RFUFJFQ0FURUQgV2ViS2l0RE9NRWxlbWVudCoKIHdlYmtpdF9kb21fbm9kZV9nZXRfcGFyZW50
X2VsZW1lbnQoV2ViS2l0RE9NTm9kZSogc2VsZik7CiAKK1dFQktJVF9BUEkgV2ViS2l0RE9NTm9k
ZSAqCit3ZWJraXRfZG9tX25vZGVfZm9yX2pzX3ZhbHVlKEpTQ1ZhbHVlKiB2YWx1ZSk7CisKIEdf
RU5EX0RFQ0xTCiAKICNlbmRpZiAvKiBXZWJLaXRET01Ob2RlX2ggKi8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01Ob2RlRmlsdGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlRmlsdGVyLmNwcAppbmRleCA4NzQ3ZTM1MWZhNTlj
YWVhMjQ0OWVjMGQ2N2E5ZTY1YWFlNDAzZDAwLi5mZGNjOTRhNDYzMDU1YWZiZDhmNmI3YWRhMWZj
ODc2YWEwMjljMjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUZpbHRlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5v
ZGVGaWx0ZXIuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAKIHR5cGVkZWYgV2ViS2l0RE9NTm9kZUZp
bHRlcklmYWNlIFdlYktpdERPTU5vZGVGaWx0ZXJJbnRlcmZhY2U7CiAKK0dfR05VQ19CRUdJTl9J
R05PUkVfREVQUkVDQVRJT05TOworCiBHX0RFRklORV9JTlRFUkZBQ0UoV2ViS2l0RE9NTm9kZUZp
bHRlciwgd2Via2l0X2RvbV9ub2RlX2ZpbHRlciwgR19UWVBFX09CSkVDVCkKIAogc3RhdGljIHZv
aWQgd2Via2l0X2RvbV9ub2RlX2ZpbHRlcl9kZWZhdWx0X2luaXQoV2ViS2l0RE9NTm9kZUZpbHRl
cklmYWNlKikKQEAgLTgyLDMgKzg0LDQgQEAgUmVmUHRyPFdlYkNvcmU6Ok5vZGVGaWx0ZXI+IGNv
cmUoV2ViQ29yZTo6RG9jdW1lbnQqIGRvY3VtZW50LCBXZWJLaXRET01Ob2RlRmlsdGUKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NTm9kZUZpbHRlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVGaWx0ZXIuaAppbmRleCAyZDg4
ZjhmYjZmZmJmNjNjNzI4OWFmODQ4Njc3M2Q0ZmY5YzhlNDBmLi5lMjYwMDUwMzVhNWQzMjYyZmE1
ZDgxNmMxZTQyODY1ZDhjNWU1OTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUZpbHRlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01Ob2RlRmlsdGVyLmgKQEAgLTMwLDYgKzMwLDggQEAgR19CRUdJTl9ERUNMUwogI2RlZmlu
ZSBXRUJLSVRfRE9NX0lTX05PREVfRklMVEVSKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lO
U1RBTkNFX1RZUEUgKChvYmopLCBXRUJLSVRfRE9NX1RZUEVfTk9ERV9GSUxURVIpKQogI2RlZmlu
ZSBXRUJLSVRfRE9NX05PREVfRklMVEVSX0dFVF9JRkFDRShvYmopICAoR19UWVBFX0lOU1RBTkNF
X0dFVF9JTlRFUkZBQ0UgKChvYmopLCBXRUJLSVRfRE9NX1RZUEVfTk9ERV9GSUxURVIsIFdlYktp
dERPTU5vZGVGaWx0ZXJJZmFjZSkpCiAKKyNpZm5kZWYgV0VCS0lUX0RJU0FCTEVfREVQUkVDQVRF
RAorCiAvKioKICAqIFdFQktJVF9ET01fTk9ERV9GSUxURVJfQUNDRVBUOgogICoKQEAgLTM3LDYg
KzM5LDggQEAgR19CRUdJTl9ERUNMUwogICogaW1wbGVtZW50YXRpb24gdG8gYWNjZXB0IHRoZSBn
aXZlbiAjV2ViS2l0RE9NTm9kZQogICoKICAqIFNpbmNlOiAyLjYKKyAqCisgKiBEZXByZWNhdGVk
OiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJL
SVRfRE9NX05PREVfRklMVEVSX0FDQ0VQVCAxCiAKQEAgLTQ4LDYgKzUyLDggQEAgR19CRUdJTl9E
RUNMUwogICogYmUgcmVqZWN0ZWQgdG9vLgogICoKICAqIFNpbmNlOiAyLjYKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmlu
ZSBXRUJLSVRfRE9NX05PREVfRklMVEVSX1JFSkVDVCAyCiAKQEAgLTU5LDYgKzY1LDggQEAgR19C
RUdJTl9ERUNMUwogICogbm90IGJlIHNraXBwZWQuCiAgKgogICogU2luY2U6IDIuNgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAj
ZGVmaW5lIFdFQktJVF9ET01fTk9ERV9GSUxURVJfU0tJUCAgIDMKIApAQCAtNjgsNiArNzYsOCBA
QCBHX0JFR0lOX0RFQ0xTCiAgKiBTaG93IGFsbCBub2Rlcy4KICAqCiAgKiBTaW5jZTogMi42Cisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAg
Ki8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0ZJTFRFUl9TSE9XX0FMTCAgICAgICAgICAgICAg
ICAgICAgMHhGRkZGRkZGRgogCkBAIC03Nyw2ICs4Nyw4IEBAIEdfQkVHSU5fREVDTFMKICAqIFNo
b3cgI1dlYktpdERPTUVsZW1lbnQgbm9kZXMuCiAgKgogICogU2luY2U6IDIuNgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVm
aW5lIFdFQktJVF9ET01fTk9ERV9GSUxURVJfU0hPV19FTEVNRU5UICAgICAgICAgICAgICAgIDB4
MDAwMDAwMDEKIApAQCAtODYsNiArOTgsOCBAQCBHX0JFR0lOX0RFQ0xTCiAgKiBTaG93ICNXZWJL
aXRET01BdHRyIG5vZGVzLgogICoKICAqIFNpbmNlOiAyLjYKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRf
RE9NX05PREVfRklMVEVSX1NIT1dfQVRUUklCVVRFICAgICAgICAgICAgICAweDAwMDAwMDAyCiAK
QEAgLTk1LDYgKzEwOSw4IEBAIEdfQkVHSU5fREVDTFMKICAqIFNob3cgI1dlYktpdERPTVRleHQg
bm9kZXMuCiAgKgogICogU2luY2U6IDIuNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9G
SUxURVJfU0hPV19URVhUICAgICAgICAgICAgICAgICAgIDB4MDAwMDAwMDQKIApAQCAtMTA0LDYg
KzEyMCw4IEBAIEdfQkVHSU5fREVDTFMKICAqIFNob3cgI1dlYktpdERPTUNEYXRhU2VjdGlvbiBu
b2Rlcy4KICAqCiAgKiBTaW5jZTogMi42CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0ZJ
TFRFUl9TSE9XX0NEQVRBX1NFQ1RJT04gICAgICAgICAgMHgwMDAwMDAwOAogCkBAIC0xMTMsNiAr
MTMxLDggQEAgR19CRUdJTl9ERUNMUwogICogU2hvdyAjV2ViS2l0RE9NRW50aXR5UmVmZXJlbmNl
IG5vZGVzLgogICoKICAqIFNpbmNlOiAyLjYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX05PREVf
RklMVEVSX1NIT1dfRU5USVRZX1JFRkVSRU5DRSAgICAgICAweDAwMDAwMDEwCiAKQEAgLTEyMiw2
ICsxNDIsOCBAQCBHX0JFR0lOX0RFQ0xTCiAgKiBTaG93ICNXZWJLaXRET01FbnRpdHkgbm9kZXMu
CiAgKgogICogU2luY2U6IDIuNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2Ny
aXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9GSUxURVJf
U0hPV19FTlRJVFkgICAgICAgICAgICAgICAgIDB4MDAwMDAwMjAKIApAQCAtMTMxLDYgKzE1Myw4
IEBAIEdfQkVHSU5fREVDTFMKICAqIFNob3cgI1dlYktpdERPTVByb2Nlc3NpbmdJbnN0cnVjdGlv
biBub2Rlcy4KICAqCiAgKiBTaW5jZTogMi42CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RF
X0ZJTFRFUl9TSE9XX1BST0NFU1NJTkdfSU5TVFJVQ1RJT04gMHgwMDAwMDA0MAogCkBAIC0xNDAs
NiArMTY0LDggQEAgR19CRUdJTl9ERUNMUwogICogU2hvdyAjV2ViS2l0RE9NQ29tbWVudCBub2Rl
cy4KICAqCiAgKiBTaW5jZTogMi42CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0ZJTFRF
Ul9TSE9XX0NPTU1FTlQgICAgICAgICAgICAgICAgMHgwMDAwMDA4MAogCkBAIC0xNDksNiArMTc1
LDggQEAgR19CRUdJTl9ERUNMUwogICogU2hvdyAjV2ViS2l0RE9NRG9jdW1lbnQgbm9kZXMuCiAg
KgogICogU2luY2U6IDIuNgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fTk9ERV9GSUxURVJfU0hP
V19ET0NVTUVOVCAgICAgICAgICAgICAgIDB4MDAwMDAxMDAKIApAQCAtMTU4LDYgKzE4Niw4IEBA
IEdfQkVHSU5fREVDTFMKICAqIFNob3cgI1dlYktpdERPTURvY3VtZW50VHlwZSBub2Rlcy4KICAq
CiAgKiBTaW5jZTogMi42CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0ZJTFRFUl9TSE9X
X0RPQ1VNRU5UX1RZUEUgICAgICAgICAgMHgwMDAwMDIwMAogCkBAIC0xNjcsNiArMTk3LDggQEAg
R19CRUdJTl9ERUNMUwogICogU2hvdyAjV2ViS2l0RE9NRG9jdW1lbnRGcmFnbWVudCBub2Rlcy4K
ICAqCiAgKiBTaW5jZTogMi42CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0ZJTFRFUl9T
SE9XX0RPQ1VNRU5UX0ZSQUdNRU5UICAgICAgMHgwMDAwMDQwMAogCkBAIC0xNzYsOSArMjA4LDEz
IEBAIEdfQkVHSU5fREVDTFMKICAqIFNob3cgI1dlYktpdERPTU5vdGF0aW9uIG5vZGVzLgogICoK
ICAqIFNpbmNlOiAyLjYKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX05PREVfRklMVEVSX1NIT1df
Tk9UQVRJT04gICAgICAgICAgICAgICAweDAwMDAwODAwCiAKKyNlbmRpZiAvKiBXRUJLSVRfRElT
QUJMRV9ERVBSRUNBVEVEICovCisKIHN0cnVjdCBfV2ViS2l0RE9NTm9kZUZpbHRlcklmYWNlIHsK
ICAgICBHVHlwZUludGVyZmFjZSBnSWZhY2U7CiAKQEAgLTE5Myw3ICsyMjksNyBAQCBzdHJ1Y3Qg
X1dlYktpdERPTU5vZGVGaWx0ZXJJZmFjZSB7CiB9OwogCiAKLVdFQktJVF9BUEkgR1R5cGUgd2Vi
a2l0X2RvbV9ub2RlX2ZpbHRlcl9nZXRfdHlwZSh2b2lkKSBHX0dOVUNfQ09OU1Q7CitXRUJLSVRf
REVQUkVDQVRFRCBHVHlwZSB3ZWJraXRfZG9tX25vZGVfZmlsdGVyX2dldF90eXBlKHZvaWQpIEdf
R05VQ19DT05TVDsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX25vZGVfZmlsdGVyX2FjY2VwdF9ub2Rl
OgpAQCAtMjAxLDggKzIzNywxMCBAQCBXRUJLSVRfQVBJIEdUeXBlIHdlYmtpdF9kb21fbm9kZV9m
aWx0ZXJfZ2V0X3R5cGUodm9pZCkgR19HTlVDX0NPTlNUOwogICogQG5vZGU6IEEgI1dlYktpdERP
TU5vZGUKICAqCiAgKiBSZXR1cm5zOiBhICNnc2hvcnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIy
OiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwotV0VCS0lUX0FQSSBnc2hvcnQg
d2Via2l0X2RvbV9ub2RlX2ZpbHRlcl9hY2NlcHRfbm9kZShXZWJLaXRET01Ob2RlRmlsdGVyICpm
aWx0ZXIsCitXRUJLSVRfREVQUkVDQVRFRCBnc2hvcnQgd2Via2l0X2RvbV9ub2RlX2ZpbHRlcl9h
Y2NlcHRfbm9kZShXZWJLaXRET01Ob2RlRmlsdGVyICpmaWx0ZXIsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdERPTU5vZGUgICAgICAg
Km5vZGUpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVHdGsuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TU5vZGVHdGsuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmODYyMmI2OTVlNGE2MTUzM2M4MmFiNjJlYWQ2MDM4
OTFiMmFlOWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUd0ay5jcHAKQEAgLTAsMCArMSw2
MzcgQEAKKy8qCisgKiAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFdlYktpdCBvcGVuIHNvdXJj
ZSBwcm9qZWN0LgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
S2l0RE9NTm9kZS5oIgorCisjaW5jbHVkZSAiQ29udmVydFRvVVRGOFN0cmluZy5oIgorI2luY2x1
ZGUgIkdPYmplY3RFdmVudExpc3RlbmVyLmgiCisjaW5jbHVkZSAiV2ViS2l0RE9NRG9jdW1lbnRQ
cml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0RE9NRWxlbWVudFByaXZhdGUuaCIKKyNpbmNsdWRl
ICJXZWJLaXRET01FdmVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01FdmVudFRhcmdl
dC5oIgorI2luY2x1ZGUgIldlYktpdERPTU5vZGVMaXN0UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldl
YktpdERPTU5vZGVQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0RE9NUHJpdmF0ZS5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvQ1NTSW1wb3J0UnVsZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRE9NRXhj
ZXB0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvSlNNYWluVGhyZWFkRXhlY1N0YXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9KU05vZGUuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1NWR1Rlc3RzLmg+CisjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElP
TlM7CisKK3N0YXRpYyBnYm9vbGVhbiB3ZWJraXRfZG9tX25vZGVfZGlzcGF0Y2hfZXZlbnQoV2Vi
S2l0RE9NRXZlbnRUYXJnZXQqIHRhcmdldCwgV2ViS2l0RE9NRXZlbnQqIGV2ZW50LCBHRXJyb3Iq
KiBlcnJvcikKK3sKKyAgICBXZWJDb3JlOjpFdmVudCogY29yZUV2ZW50ID0gV2ViS2l0Ojpjb3Jl
KGV2ZW50KTsKKyAgICBpZiAoIWNvcmVFdmVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IFdlYkNvcmU6Ok5vZGUqIGNvcmVUYXJnZXQgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpOb2RlKj4o
V0VCS0lUX0RPTV9PQkpFQ1QodGFyZ2V0KS0+Y29yZU9iamVjdCk7CisKKyAgICBhdXRvIHJlc3Vs
dCA9IGNvcmVUYXJnZXQtPmRpc3BhdGNoRXZlbnRGb3JCaW5kaW5ncygqY29yZUV2ZW50KTsKKyAg
ICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgIGF1dG8gZGVzY3JpcHRpb24g
PSBXZWJDb3JlOjpET01FeGNlcHRpb246OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0
aW9uKCkuY29kZSgpKTsKKyAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFy
a19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNj
cmlwdGlvbi5uYW1lKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4g
cmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworfQorCitzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0
X2RvbV9ub2RlX2FkZF9ldmVudF9saXN0ZW5lcihXZWJLaXRET01FdmVudFRhcmdldCogdGFyZ2V0
LCBjb25zdCBjaGFyKiBldmVudE5hbWUsIEdDbG9zdXJlKiBoYW5kbGVyLCBnYm9vbGVhbiB1c2VD
YXB0dXJlKQoreworICAgIFdlYkNvcmU6Ok5vZGUqIGNvcmVUYXJnZXQgPSBzdGF0aWNfY2FzdDxX
ZWJDb3JlOjpOb2RlKj4oV0VCS0lUX0RPTV9PQkpFQ1QodGFyZ2V0KS0+Y29yZU9iamVjdCk7Cisg
ICAgcmV0dXJuIFdlYktpdDo6R09iamVjdEV2ZW50TGlzdGVuZXI6OmFkZEV2ZW50TGlzdGVuZXIo
R19PQkpFQ1QodGFyZ2V0KSwgY29yZVRhcmdldCwgZXZlbnROYW1lLCBoYW5kbGVyLCB1c2VDYXB0
dXJlKTsKK30KKworc3RhdGljIGdib29sZWFuIHdlYmtpdF9kb21fbm9kZV9yZW1vdmVfZXZlbnRf
bGlzdGVuZXIoV2ViS2l0RE9NRXZlbnRUYXJnZXQqIHRhcmdldCwgY29uc3QgY2hhciogZXZlbnRO
YW1lLCBHQ2xvc3VyZSogaGFuZGxlciwgZ2Jvb2xlYW4gdXNlQ2FwdHVyZSkKK3sKKyAgICBXZWJD
b3JlOjpOb2RlKiBjb3JlVGFyZ2V0ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KFdFQktJ
VF9ET01fT0JKRUNUKHRhcmdldCktPmNvcmVPYmplY3QpOworICAgIHJldHVybiBXZWJLaXQ6OkdP
YmplY3RFdmVudExpc3RlbmVyOjpyZW1vdmVFdmVudExpc3RlbmVyKEdfT0JKRUNUKHRhcmdldCks
IGNvcmVUYXJnZXQsIGV2ZW50TmFtZSwgaGFuZGxlciwgdXNlQ2FwdHVyZSk7Cit9CisKK3ZvaWQg
d2Via2l0RE9NTm9kZURPTUV2ZW50VGFyZ2V0SW5pdChXZWJLaXRET01FdmVudFRhcmdldElmYWNl
KiBpZmFjZSkKK3sKKyAgICBpZmFjZS0+ZGlzcGF0Y2hfZXZlbnQgPSB3ZWJraXRfZG9tX25vZGVf
ZGlzcGF0Y2hfZXZlbnQ7CisgICAgaWZhY2UtPmFkZF9ldmVudF9saXN0ZW5lciA9IHdlYmtpdF9k
b21fbm9kZV9hZGRfZXZlbnRfbGlzdGVuZXI7CisgICAgaWZhY2UtPnJlbW92ZV9ldmVudF9saXN0
ZW5lciA9IHdlYmtpdF9kb21fbm9kZV9yZW1vdmVfZXZlbnRfbGlzdGVuZXI7Cit9CisKK2VudW0g
eworICAgIERPTV9OT0RFX1BST1BfMCwKKyAgICBET01fTk9ERV9QUk9QX05PREVfTkFNRSwKKyAg
ICBET01fTk9ERV9QUk9QX05PREVfVkFMVUUsCisgICAgRE9NX05PREVfUFJPUF9OT0RFX1RZUEUs
CisgICAgRE9NX05PREVfUFJPUF9QQVJFTlRfTk9ERSwKKyAgICBET01fTk9ERV9QUk9QX0NISUxE
X05PREVTLAorICAgIERPTV9OT0RFX1BST1BfRklSU1RfQ0hJTEQsCisgICAgRE9NX05PREVfUFJP
UF9MQVNUX0NISUxELAorICAgIERPTV9OT0RFX1BST1BfUFJFVklPVVNfU0lCTElORywKKyAgICBE
T01fTk9ERV9QUk9QX05FWFRfU0lCTElORywKKyAgICBET01fTk9ERV9QUk9QX09XTkVSX0RPQ1VN
RU5ULAorICAgIERPTV9OT0RFX1BST1BfQkFTRV9VUkksCisgICAgRE9NX05PREVfUFJPUF9URVhU
X0NPTlRFTlQsCisgICAgRE9NX05PREVfUFJPUF9QQVJFTlRfRUxFTUVOVCwKK307CisKK3N0YXRp
YyB2b2lkIHdlYmtpdF9kb21fbm9kZV9zZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWlu
dCBwcm9wZXJ0eUlkLCBjb25zdCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKK3sK
KyAgICBXZWJLaXRET01Ob2RlKiBzZWxmID0gV0VCS0lUX0RPTV9OT0RFKG9iamVjdCk7CisKKyAg
ICBzd2l0Y2ggKHByb3BlcnR5SWQpIHsKKyAgICBjYXNlIERPTV9OT0RFX1BST1BfTk9ERV9WQUxV
RToKKyAgICAgICAgd2Via2l0X2RvbV9ub2RlX3NldF9ub2RlX3ZhbHVlKHNlbGYsIGdfdmFsdWVf
Z2V0X3N0cmluZyh2YWx1ZSksIG51bGxwdHIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERP
TV9OT0RFX1BST1BfVEVYVF9DT05URU5UOgorICAgICAgICB3ZWJraXRfZG9tX25vZGVfc2V0X3Rl
eHRfY29udGVudChzZWxmLCBnX3ZhbHVlX2dldF9zdHJpbmcodmFsdWUpLCBudWxscHRyKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElE
X1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcGVydHlJZCwgcHNwZWMpOworICAgICAgICBicmVhazsK
KyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIHdlYmtpdF9kb21fbm9kZV9nZXRfcHJvcGVydHkoR09i
amVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVj
KiBwc3BlYykKK3sKKyAgICBXZWJLaXRET01Ob2RlKiBzZWxmID0gV0VCS0lUX0RPTV9OT0RFKG9i
amVjdCk7CisKKyAgICBzd2l0Y2ggKHByb3BlcnR5SWQpIHsKKyAgICBjYXNlIERPTV9OT0RFX1BS
T1BfTk9ERV9OQU1FOgorICAgICAgICBnX3ZhbHVlX3Rha2Vfc3RyaW5nKHZhbHVlLCB3ZWJraXRf
ZG9tX25vZGVfZ2V0X25vZGVfbmFtZShzZWxmKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
RE9NX05PREVfUFJPUF9OT0RFX1ZBTFVFOgorICAgICAgICBnX3ZhbHVlX3Rha2Vfc3RyaW5nKHZh
bHVlLCB3ZWJraXRfZG9tX25vZGVfZ2V0X25vZGVfdmFsdWUoc2VsZikpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIERPTV9OT0RFX1BST1BfTk9ERV9UWVBFOgorICAgICAgICBnX3ZhbHVlX3Nl
dF91aW50KHZhbHVlLCB3ZWJraXRfZG9tX25vZGVfZ2V0X25vZGVfdHlwZShzZWxmKSk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgRE9NX05PREVfUFJPUF9QQVJFTlRfTk9ERToKKyAgICAgICAg
Z192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCB3ZWJraXRfZG9tX25vZGVfZ2V0X3BhcmVudF9ub2Rl
KHNlbGYpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBET01fTk9ERV9QUk9QX0NISUxEX05P
REVTOgorICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIHdlYmtpdF9kb21fbm9kZV9n
ZXRfY2hpbGRfbm9kZXMoc2VsZikpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIERPTV9OT0RF
X1BST1BfRklSU1RfQ0hJTEQ6CisgICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Vi
a2l0X2RvbV9ub2RlX2dldF9maXJzdF9jaGlsZChzZWxmKSk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgRE9NX05PREVfUFJPUF9MQVNUX0NISUxEOgorICAgICAgICBnX3ZhbHVlX3NldF9vYmpl
Y3QodmFsdWUsIHdlYmtpdF9kb21fbm9kZV9nZXRfbGFzdF9jaGlsZChzZWxmKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgRE9NX05PREVfUFJPUF9QUkVWSU9VU19TSUJMSU5HOgorICAgICAg
ICBnX3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIHdlYmtpdF9kb21fbm9kZV9nZXRfcHJldmlvdXNf
c2libGluZyhzZWxmKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRE9NX05PREVfUFJPUF9O
RVhUX1NJQkxJTkc6CisgICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgd2Via2l0X2Rv
bV9ub2RlX2dldF9uZXh0X3NpYmxpbmcoc2VsZikpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IERPTV9OT0RFX1BST1BfT1dORVJfRE9DVU1FTlQ6CisgICAgICAgIGdfdmFsdWVfc2V0X29iamVj
dCh2YWx1ZSwgd2Via2l0X2RvbV9ub2RlX2dldF9vd25lcl9kb2N1bWVudChzZWxmKSk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgRE9NX05PREVfUFJPUF9CQVNFX1VSSToKKyAgICAgICAgZ192
YWx1ZV90YWtlX3N0cmluZyh2YWx1ZSwgd2Via2l0X2RvbV9ub2RlX2dldF9iYXNlX3VyaShzZWxm
KSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRE9NX05PREVfUFJPUF9URVhUX0NPTlRFTlQ6
CisgICAgICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUsIHdlYmtpdF9kb21fbm9kZV9nZXRf
dGV4dF9jb250ZW50KHNlbGYpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBET01fTk9ERV9Q
Uk9QX1BBUkVOVF9FTEVNRU5UOgorICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIHdl
YmtpdF9kb21fbm9kZV9nZXRfcGFyZW50X2VsZW1lbnQoc2VsZikpOworICAgICAgICBicmVhazsK
KyAgICBkZWZhdWx0OgorICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQo
b2JqZWN0LCBwcm9wZXJ0eUlkLCBwc3BlYyk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwor
dm9pZCB3ZWJraXRET01Ob2RlSW5zdGFsbFByb3BlcnRpZXMoR09iamVjdENsYXNzKiBnb2JqZWN0
Q2xhc3MpCit7CisgICAgZ29iamVjdENsYXNzLT5zZXRfcHJvcGVydHkgPSB3ZWJraXRfZG9tX25v
ZGVfc2V0X3Byb3BlcnR5OworICAgIGdvYmplY3RDbGFzcy0+Z2V0X3Byb3BlcnR5ID0gd2Via2l0
X2RvbV9ub2RlX2dldF9wcm9wZXJ0eTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJv
cGVydHkoCisgICAgICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgRE9NX05PREVfUFJPUF9OT0RF
X05BTUUsCisgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoCisgICAgICAgICAgICAibm9kZS1u
YW1lIiwKKyAgICAgICAgICAgICJOb2RlOm5vZGUtbmFtZSIsCisgICAgICAgICAgICAicmVhZC1v
bmx5IGdjaGFyKiBOb2RlOm5vZGUtbmFtZSIsCisgICAgICAgICAgICAiIiwKKyAgICAgICAgICAg
IFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOworCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9w
cm9wZXJ0eSgKKyAgICAgICAgZ29iamVjdENsYXNzLAorICAgICAgICBET01fTk9ERV9QUk9QX05P
REVfVkFMVUUsCisgICAgICAgIGdfcGFyYW1fc3BlY19zdHJpbmcoCisgICAgICAgICAgICAibm9k
ZS12YWx1ZSIsCisgICAgICAgICAgICAiTm9kZTpub2RlLXZhbHVlIiwKKyAgICAgICAgICAgICJy
ZWFkLXdyaXRlIGdjaGFyKiBOb2RlOm5vZGUtdmFsdWUiLAorICAgICAgICAgICAgIiIsCisgICAg
ICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19p
bnN0YWxsX3Byb3BlcnR5KAorICAgICAgICBnb2JqZWN0Q2xhc3MsCisgICAgICAgIERPTV9OT0RF
X1BST1BfTk9ERV9UWVBFLAorICAgICAgICBnX3BhcmFtX3NwZWNfdWludCgKKyAgICAgICAgICAg
ICJub2RlLXR5cGUiLAorICAgICAgICAgICAgIk5vZGU6bm9kZS10eXBlIiwKKyAgICAgICAgICAg
ICJyZWFkLW9ubHkgZ3VzaG9ydCBOb2RlOm5vZGUtdHlwZSIsCisgICAgICAgICAgICAwLCBHX01B
WFVJTlQsIDAsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKKworICAgIGdf
b2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCisgICAgICAgIGdvYmplY3RDbGFzcywKKyAg
ICAgICAgRE9NX05PREVfUFJPUF9QQVJFTlRfTk9ERSwKKyAgICAgICAgZ19wYXJhbV9zcGVjX29i
amVjdCgKKyAgICAgICAgICAgICJwYXJlbnQtbm9kZSIsCisgICAgICAgICAgICAiTm9kZTpwYXJl
bnQtbm9kZSIsCisgICAgICAgICAgICAicmVhZC1vbmx5IFdlYktpdERPTU5vZGUqIE5vZGU6cGFy
ZW50LW5vZGUiLAorICAgICAgICAgICAgV0VCS0lUX0RPTV9UWVBFX05PREUsCisgICAgICAgICAg
ICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxf
cHJvcGVydHkoCisgICAgICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgRE9NX05PREVfUFJPUF9D
SElMRF9OT0RFUywKKyAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgKKyAgICAgICAgICAgICJj
aGlsZC1ub2RlcyIsCisgICAgICAgICAgICAiTm9kZTpjaGlsZC1ub2RlcyIsCisgICAgICAgICAg
ICAicmVhZC1vbmx5IFdlYktpdERPTU5vZGVMaXN0KiBOb2RlOmNoaWxkLW5vZGVzIiwKKyAgICAg
ICAgICAgIFdFQktJVF9ET01fVFlQRV9OT0RFX0xJU1QsCisgICAgICAgICAgICBXRUJLSVRfUEFS
QU1fUkVBREFCTEUpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCisg
ICAgICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgRE9NX05PREVfUFJPUF9GSVJTVF9DSElMRCwK
KyAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgKKyAgICAgICAgICAgICJmaXJzdC1jaGlsZCIs
CisgICAgICAgICAgICAiTm9kZTpmaXJzdC1jaGlsZCIsCisgICAgICAgICAgICAicmVhZC1vbmx5
IFdlYktpdERPTU5vZGUqIE5vZGU6Zmlyc3QtY2hpbGQiLAorICAgICAgICAgICAgV0VCS0lUX0RP
TV9UWVBFX05PREUsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKKworICAg
IGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCisgICAgICAgIGdvYmplY3RDbGFzcywK
KyAgICAgICAgRE9NX05PREVfUFJPUF9MQVNUX0NISUxELAorICAgICAgICBnX3BhcmFtX3NwZWNf
b2JqZWN0KAorICAgICAgICAgICAgImxhc3QtY2hpbGQiLAorICAgICAgICAgICAgIk5vZGU6bGFz
dC1jaGlsZCIsCisgICAgICAgICAgICAicmVhZC1vbmx5IFdlYktpdERPTU5vZGUqIE5vZGU6bGFz
dC1jaGlsZCIsCisgICAgICAgICAgICBXRUJLSVRfRE9NX1RZUEVfTk9ERSwKKyAgICAgICAgICAg
IFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOworCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9w
cm9wZXJ0eSgKKyAgICAgICAgZ29iamVjdENsYXNzLAorICAgICAgICBET01fTk9ERV9QUk9QX1BS
RVZJT1VTX1NJQkxJTkcsCisgICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoCisgICAgICAgICAg
ICAicHJldmlvdXMtc2libGluZyIsCisgICAgICAgICAgICAiTm9kZTpwcmV2aW91cy1zaWJsaW5n
IiwKKyAgICAgICAgICAgICJyZWFkLW9ubHkgV2ViS2l0RE9NTm9kZSogTm9kZTpwcmV2aW91cy1z
aWJsaW5nIiwKKyAgICAgICAgICAgIFdFQktJVF9ET01fVFlQRV9OT0RFLAorICAgICAgICAgICAg
V0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3By
b3BlcnR5KAorICAgICAgICBnb2JqZWN0Q2xhc3MsCisgICAgICAgIERPTV9OT0RFX1BST1BfTkVY
VF9TSUJMSU5HLAorICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KAorICAgICAgICAgICAgIm5l
eHQtc2libGluZyIsCisgICAgICAgICAgICAiTm9kZTpuZXh0LXNpYmxpbmciLAorICAgICAgICAg
ICAgInJlYWQtb25seSBXZWJLaXRET01Ob2RlKiBOb2RlOm5leHQtc2libGluZyIsCisgICAgICAg
ICAgICBXRUJLSVRfRE9NX1RZUEVfTk9ERSwKKyAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFE
QUJMRSkpOworCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAg
Z29iamVjdENsYXNzLAorICAgICAgICBET01fTk9ERV9QUk9QX09XTkVSX0RPQ1VNRU5ULAorICAg
ICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KAorICAgICAgICAgICAgIm93bmVyLWRvY3VtZW50IiwK
KyAgICAgICAgICAgICJOb2RlOm93bmVyLWRvY3VtZW50IiwKKyAgICAgICAgICAgICJyZWFkLW9u
bHkgV2ViS2l0RE9NRG9jdW1lbnQqIE5vZGU6b3duZXItZG9jdW1lbnQiLAorICAgICAgICAgICAg
V0VCS0lUX0RPTV9UWVBFX0RPQ1VNRU5ULAorICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURB
QkxFKSk7CisKKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAorICAgICAgICBn
b2JqZWN0Q2xhc3MsCisgICAgICAgIERPTV9OT0RFX1BST1BfQkFTRV9VUkksCisgICAgICAgIGdf
cGFyYW1fc3BlY19zdHJpbmcoCisgICAgICAgICAgICAiYmFzZS11cmkiLAorICAgICAgICAgICAg
Ik5vZGU6YmFzZS11cmkiLAorICAgICAgICAgICAgInJlYWQtb25seSBnY2hhciogTm9kZTpiYXNl
LXVyaSIsCisgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJM
RSkpOworCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ29i
amVjdENsYXNzLAorICAgICAgICBET01fTk9ERV9QUk9QX1RFWFRfQ09OVEVOVCwKKyAgICAgICAg
Z19wYXJhbV9zcGVjX3N0cmluZygKKyAgICAgICAgICAgICJ0ZXh0LWNvbnRlbnQiLAorICAgICAg
ICAgICAgIk5vZGU6dGV4dC1jb250ZW50IiwKKyAgICAgICAgICAgICJyZWFkLXdyaXRlIGdjaGFy
KiBOb2RlOnRleHQtY29udGVudCIsCisgICAgICAgICAgICAiIiwKKyAgICAgICAgICAgIFdFQktJ
VF9QQVJBTV9SRUFEV1JJVEUpKTsKKworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVy
dHkoCisgICAgICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgRE9NX05PREVfUFJPUF9QQVJFTlRf
RUxFTUVOVCwKKyAgICAgICAgZ19wYXJhbV9zcGVjX29iamVjdCgKKyAgICAgICAgICAgICJwYXJl
bnQtZWxlbWVudCIsCisgICAgICAgICAgICAiTm9kZTpwYXJlbnQtZWxlbWVudCIsCisgICAgICAg
ICAgICAicmVhZC1vbmx5IFdlYktpdERPTUVsZW1lbnQqIE5vZGU6cGFyZW50LWVsZW1lbnQiLAor
ICAgICAgICAgICAgV0VCS0lUX0RPTV9UWVBFX0VMRU1FTlQsCisgICAgICAgICAgICBXRUJLSVRf
UEFSQU1fUkVBREFCTEUpKTsKKworfQorCitXZWJLaXRET01Ob2RlKiB3ZWJraXRfZG9tX25vZGVf
aW5zZXJ0X2JlZm9yZShXZWJLaXRET01Ob2RlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBuZXdDaGls
ZCwgV2ViS2l0RE9NTm9kZSogcmVmQ2hpbGQsIEdFcnJvcioqIGVycm9yKQoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFp
bChXRUJLSVRfRE9NX0lTX05PREUoc2VsZiksIDApOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KFdFQktJVF9ET01fSVNfTk9ERShuZXdDaGlsZCksIDApOworICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKCFyZWZDaGlsZCB8fCBXRUJLSVRfRE9NX0lTX05PREUocmVmQ2hpbGQpLCAwKTsKKyAgICBn
X3JldHVybl92YWxfaWZfZmFpbCghZXJyb3IgfHwgISplcnJvciwgMCk7CisgICAgV2ViQ29yZTo6
Tm9kZSogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBXZWJDb3JlOjpOb2RlKiBjb252
ZXJ0ZWROZXdDaGlsZCA9IFdlYktpdDo6Y29yZShuZXdDaGlsZCk7CisgICAgV2ViQ29yZTo6Tm9k
ZSogY29udmVydGVkUmVmQ2hpbGQgPSBXZWJLaXQ6OmNvcmUocmVmQ2hpbGQpOworICAgIGF1dG8g
cmVzdWx0ID0gaXRlbS0+aW5zZXJ0QmVmb3JlKCpjb252ZXJ0ZWROZXdDaGlsZCwgY29udmVydGVk
UmVmQ2hpbGQpOworICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKKyAgICAgICAgYXV0
byBkZXNjcmlwdGlvbiA9IFdlYkNvcmU6OkRPTUV4Y2VwdGlvbjo6ZGVzY3JpcHRpb24ocmVzdWx0
LnJlbGVhc2VFeGNlcHRpb24oKS5jb2RlKCkpOworICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFs
KGVycm9yLCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGRlc2NyaXB0aW9uLmxl
Z2FjeUNvZGUsIGRlc2NyaXB0aW9uLm5hbWUpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICB9CisgICAgcmV0dXJuIG5ld0NoaWxkOworfQorCitXZWJLaXRET01Ob2RlKiB3ZWJraXRfZG9t
X25vZGVfcmVwbGFjZV9jaGlsZChXZWJLaXRET01Ob2RlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBu
ZXdDaGlsZCwgV2ViS2l0RE9NTm9kZSogb2xkQ2hpbGQsIEdFcnJvcioqIGVycm9yKQoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxf
aWZfZmFpbChXRUJLSVRfRE9NX0lTX05PREUoc2VsZiksIDApOworICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKFdFQktJVF9ET01fSVNfTk9ERShuZXdDaGlsZCksIDApOworICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9ET01fSVNfTk9ERShvbGRDaGlsZCksIDApOworICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKCFlcnJvciB8fCAhKmVycm9yLCAwKTsKKyAgICBXZWJDb3JlOjpOb2RlKiBp
dGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdlYkNvcmU6Ok5vZGUqIGNvbnZlcnRlZE5l
d0NoaWxkID0gV2ViS2l0Ojpjb3JlKG5ld0NoaWxkKTsKKyAgICBXZWJDb3JlOjpOb2RlKiBjb252
ZXJ0ZWRPbGRDaGlsZCA9IFdlYktpdDo6Y29yZShvbGRDaGlsZCk7CisgICAgYXV0byByZXN1bHQg
PSBpdGVtLT5yZXBsYWNlQ2hpbGQoKmNvbnZlcnRlZE5ld0NoaWxkLCAqY29udmVydGVkT2xkQ2hp
bGQpOworICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKKyAgICAgICAgYXV0byBkZXNj
cmlwdGlvbiA9IFdlYkNvcmU6OkRPTUV4Y2VwdGlvbjo6ZGVzY3JpcHRpb24ocmVzdWx0LnJlbGVh
c2VFeGNlcHRpb24oKS5jb2RlKCkpOworICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9y
LCBnX3F1YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGRlc2NyaXB0aW9uLmxlZ2FjeUNv
ZGUsIGRlc2NyaXB0aW9uLm5hbWUpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9Cisg
ICAgcmV0dXJuIG9sZENoaWxkOworfQorCitXZWJLaXRET01Ob2RlKiB3ZWJraXRfZG9tX25vZGVf
cmVtb3ZlX2NoaWxkKFdlYktpdERPTU5vZGUqIHNlbGYsIFdlYktpdERPTU5vZGUqIG9sZENoaWxk
LCBHRXJyb3IqKiBlcnJvcikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19OT0RFKHNlbGYp
LCAwKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX05PREUob2xkQ2hp
bGQpLCAwKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCghZXJyb3IgfHwgISplcnJvciwgMCk7
CisgICAgV2ViQ29yZTo6Tm9kZSogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBXZWJD
b3JlOjpOb2RlKiBjb252ZXJ0ZWRPbGRDaGlsZCA9IFdlYktpdDo6Y29yZShvbGRDaGlsZCk7Cisg
ICAgYXV0byByZXN1bHQgPSBpdGVtLT5yZW1vdmVDaGlsZCgqY29udmVydGVkT2xkQ2hpbGQpOwor
ICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKKyAgICAgICAgYXV0byBkZXNjcmlwdGlv
biA9IFdlYkNvcmU6OkRPTUV4Y2VwdGlvbjo6ZGVzY3JpcHRpb24ocmVzdWx0LnJlbGVhc2VFeGNl
cHRpb24oKS5jb2RlKCkpOworICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9yLCBnX3F1
YXJrX2Zyb21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGRlc2NyaXB0aW9uLmxlZ2FjeUNvZGUsIGRl
c2NyaXB0aW9uLm5hbWUpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgcmV0
dXJuIG9sZENoaWxkOworfQorCitXZWJLaXRET01Ob2RlKiB3ZWJraXRfZG9tX25vZGVfYXBwZW5k
X2NoaWxkKFdlYktpdERPTU5vZGUqIHNlbGYsIFdlYktpdERPTU5vZGUqIG5ld0NoaWxkLCBHRXJy
b3IqKiBlcnJvcikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19OT0RFKHNlbGYpLCAwKTsK
KyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX05PREUobmV3Q2hpbGQpLCAw
KTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCghZXJyb3IgfHwgISplcnJvciwgMCk7CisgICAg
V2ViQ29yZTo6Tm9kZSogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBXZWJDb3JlOjpO
b2RlKiBjb252ZXJ0ZWROZXdDaGlsZCA9IFdlYktpdDo6Y29yZShuZXdDaGlsZCk7CisgICAgYXV0
byByZXN1bHQgPSBpdGVtLT5hcHBlbmRDaGlsZCgqY29udmVydGVkTmV3Q2hpbGQpOworICAgIGlm
IChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKKyAgICAgICAgYXV0byBkZXNjcmlwdGlvbiA9IFdl
YkNvcmU6OkRPTUV4Y2VwdGlvbjo6ZGVzY3JpcHRpb24ocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24o
KS5jb2RlKCkpOworICAgICAgICBnX3NldF9lcnJvcl9saXRlcmFsKGVycm9yLCBnX3F1YXJrX2Zy
b21fc3RyaW5nKCJXRUJLSVRfRE9NIiksIGRlc2NyaXB0aW9uLmxlZ2FjeUNvZGUsIGRlc2NyaXB0
aW9uLm5hbWUpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisgICAgcmV0dXJuIG5l
d0NoaWxkOworfQorCitnYm9vbGVhbiB3ZWJraXRfZG9tX25vZGVfaGFzX2NoaWxkX25vZGVzKFdl
YktpdERPTU5vZGUqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfTk9ERShzZWxm
KSwgRkFMU0UpOworICAgIFdlYkNvcmU6Ok5vZGUqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7
CisgICAgZ2Jvb2xlYW4gcmVzdWx0ID0gaXRlbS0+aGFzQ2hpbGROb2RlcygpOworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK1dlYktpdERPTU5vZGUqIHdlYmtpdF9kb21fbm9kZV9jbG9uZV9ub2Rl
X3dpdGhfZXJyb3IoV2ViS2l0RE9NTm9kZSogc2VsZiwgZ2Jvb2xlYW4gZGVlcCwgR0Vycm9yKiog
ZXJyb3IpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfTk9ERShzZWxmKSwgMCk7CisgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoIWVycm9yIHx8ICEqZXJyb3IsIDApOworICAgIFdlYkNvcmU6
Ok5vZGUqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgYXV0byByZXN1bHQgPSBpdGVt
LT5jbG9uZU5vZGVGb3JCaW5kaW5ncyhkZWVwKTsKKyAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlv
bigpKSB7CisgICAgICAgIGF1dG8gZGVzY3JpcHRpb24gPSBXZWJDb3JlOjpET01FeGNlcHRpb246
OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgpKTsKKyAgICAgICAg
Z19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RP
TSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2RlLCBkZXNjcmlwdGlvbi5uYW1lKTsKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgfQorICAgIHJldHVybiBXZWJLaXQ6OmtpdChyZXN1bHQucmVs
ZWFzZVJldHVyblZhbHVlKCkucHRyKCkpOworfQorCit2b2lkIHdlYmtpdF9kb21fbm9kZV9ub3Jt
YWxpemUoV2ViS2l0RE9NTm9kZSogc2VsZikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfRE9NX0lTX05PREUo
c2VsZikpOworICAgIFdlYkNvcmU6Ok5vZGUqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Cisg
ICAgaXRlbS0+bm9ybWFsaXplKCk7Cit9CisKK2dib29sZWFuIHdlYmtpdF9kb21fbm9kZV9pc19z
dXBwb3J0ZWQoV2ViS2l0RE9NTm9kZSogc2VsZiwgY29uc3QgZ2NoYXIqIGZlYXR1cmUsIGNvbnN0
IGdjaGFyKiB2ZXJzaW9uKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01f
SVNfTk9ERShzZWxmKSwgRkFMU0UpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGZlYXR1cmUs
IEZBTFNFKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbCh2ZXJzaW9uLCBGQUxTRSk7CisgICAg
V1RGOjpTdHJpbmcgY29udmVydGVkRmVhdHVyZSA9IFdURjo6U3RyaW5nOjpmcm9tVVRGOChmZWF0
dXJlKTsKKyAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWRWZXJzaW9uID0gV1RGOjpTdHJpbmc6OmZy
b21VVEY4KHZlcnNpb24pOworICAgIHJldHVybiBXZWJDb3JlOjpTVkdUZXN0czo6aGFzRmVhdHVy
ZUZvckxlZ2FjeUJpbmRpbmdzKGNvbnZlcnRlZEZlYXR1cmUsIGNvbnZlcnRlZFZlcnNpb24pOwor
fQorCitnYm9vbGVhbiB3ZWJraXRfZG9tX25vZGVfaXNfc2FtZV9ub2RlKFdlYktpdERPTU5vZGUq
IHNlbGYsIFdlYktpdERPTU5vZGUqIG90aGVyKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lT
X05PREUoc2VsZiksIEZBTFNFKTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9N
X0lTX05PREUob3RoZXIpLCBGQUxTRSk7CisgICAgV2ViQ29yZTo6Tm9kZSogaXRlbSA9IFdlYktp
dDo6Y29yZShzZWxmKTsKKyAgICBXZWJDb3JlOjpOb2RlKiBjb252ZXJ0ZWRPdGhlciA9IFdlYktp
dDo6Y29yZShvdGhlcik7CisgICAgZ2Jvb2xlYW4gcmVzdWx0ID0gaXRlbS0+aXNTYW1lTm9kZShj
b252ZXJ0ZWRPdGhlcik7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworZ2Jvb2xlYW4gd2Via2l0
X2RvbV9ub2RlX2lzX2VxdWFsX25vZGUoV2ViS2l0RE9NTm9kZSogc2VsZiwgV2ViS2l0RE9NTm9k
ZSogb3RoZXIpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfTk9ERShzZWxmKSwgRkFMU0Up
OworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfTk9ERShvdGhlciksIEZB
TFNFKTsKKyAgICBXZWJDb3JlOjpOb2RlKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAg
IFdlYkNvcmU6Ok5vZGUqIGNvbnZlcnRlZE90aGVyID0gV2ViS2l0Ojpjb3JlKG90aGVyKTsKKyAg
ICBnYm9vbGVhbiByZXN1bHQgPSBpdGVtLT5pc0VxdWFsTm9kZShjb252ZXJ0ZWRPdGhlcik7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKworZ2NoYXIqIHdlYmtpdF9kb21fbm9kZV9sb29rdXBfcHJl
Zml4KFdlYktpdERPTU5vZGUqIHNlbGYsIGNvbnN0IGdjaGFyKiBuYW1lc3BhY2VVUkkpCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9ET01fSVNfTk9ERShzZWxmKSwgMCk7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwobmFtZXNwYWNlVVJJLCAwKTsKKyAgICBXZWJDb3JlOjpOb2RlKiBpdGVtID0gV2Vi
S2l0Ojpjb3JlKHNlbGYpOworICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZE5hbWVzcGFjZVVSSSA9
IFdURjo6U3RyaW5nOjpmcm9tVVRGOChuYW1lc3BhY2VVUkkpOworICAgIGdjaGFyKiByZXN1bHQg
PSBjb252ZXJ0VG9VVEY4U3RyaW5nKGl0ZW0tPmxvb2t1cFByZWZpeChjb252ZXJ0ZWROYW1lc3Bh
Y2VVUkkpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitnY2hhciogd2Via2l0X2RvbV9ub2Rl
X2xvb2t1cF9uYW1lc3BhY2VfdXJpKFdlYktpdERPTU5vZGUqIHNlbGYsIGNvbnN0IGdjaGFyKiBw
cmVmaXgpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfTk9ERShzZWxmKSwgMCk7CisgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwocHJlZml4LCAwKTsKKyAgICBXZWJDb3JlOjpOb2RlKiBpdGVt
ID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdURjo6U3RyaW5nIGNvbnZlcnRlZFByZWZpeCA9
IFdURjo6U3RyaW5nOjpmcm9tVVRGOChwcmVmaXgpOworICAgIGdjaGFyKiByZXN1bHQgPSBjb252
ZXJ0VG9VVEY4U3RyaW5nKGl0ZW0tPmxvb2t1cE5hbWVzcGFjZVVSSShjb252ZXJ0ZWRQcmVmaXgp
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitnYm9vbGVhbiB3ZWJraXRfZG9tX25vZGVfaXNf
ZGVmYXVsdF9uYW1lc3BhY2UoV2ViS2l0RE9NTm9kZSogc2VsZiwgY29uc3QgZ2NoYXIqIG5hbWVz
cGFjZVVSSSkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19OT0RFKHNlbGYpLCBGQUxTRSk7
CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwobmFtZXNwYWNlVVJJLCBGQUxTRSk7CisgICAgV2Vi
Q29yZTo6Tm9kZSogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBXVEY6OlN0cmluZyBj
b252ZXJ0ZWROYW1lc3BhY2VVUkkgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgobmFtZXNwYWNlVVJJ
KTsKKyAgICBnYm9vbGVhbiByZXN1bHQgPSBpdGVtLT5pc0RlZmF1bHROYW1lc3BhY2UoY29udmVy
dGVkTmFtZXNwYWNlVVJJKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitndXNob3J0IHdlYmtp
dF9kb21fbm9kZV9jb21wYXJlX2RvY3VtZW50X3Bvc2l0aW9uKFdlYktpdERPTU5vZGUqIHNlbGYs
IFdlYktpdERPTU5vZGUqIG90aGVyKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX05PREUo
c2VsZiksIDApOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfTk9ERShv
dGhlciksIDApOworICAgIFdlYkNvcmU6Ok5vZGUqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7
CisgICAgV2ViQ29yZTo6Tm9kZSogY29udmVydGVkT3RoZXIgPSBXZWJLaXQ6OmNvcmUob3RoZXIp
OworICAgIGd1c2hvcnQgcmVzdWx0ID0gaXRlbS0+Y29tcGFyZURvY3VtZW50UG9zaXRpb24oKmNv
bnZlcnRlZE90aGVyKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitnYm9vbGVhbiB3ZWJraXRf
ZG9tX25vZGVfY29udGFpbnMoV2ViS2l0RE9NTm9kZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogb3Ro
ZXIpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfTk9ERShzZWxmKSwgRkFMU0UpOworICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfTk9ERShvdGhlciksIEZBTFNFKTsK
KyAgICBXZWJDb3JlOjpOb2RlKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFdlYkNv
cmU6Ok5vZGUqIGNvbnZlcnRlZE90aGVyID0gV2ViS2l0Ojpjb3JlKG90aGVyKTsKKyAgICBnYm9v
bGVhbiByZXN1bHQgPSBpdGVtLT5jb250YWlucyhjb252ZXJ0ZWRPdGhlcik7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKworZ2NoYXIqIHdlYmtpdF9kb21fbm9kZV9nZXRfbm9kZV9uYW1lKFdlYktp
dERPTU5vZGUqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfTk9ERShzZWxmKSwg
MCk7CisgICAgV2ViQ29yZTo6Tm9kZSogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBn
Y2hhciogcmVzdWx0ID0gY29udmVydFRvVVRGOFN0cmluZyhpdGVtLT5ub2RlTmFtZSgpKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCitnY2hhciogd2Via2l0X2RvbV9ub2RlX2dldF9ub2RlX3Zh
bHVlKFdlYktpdERPTU5vZGUqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfTk9E
RShzZWxmKSwgMCk7CisgICAgV2ViQ29yZTo6Tm9kZSogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxm
KTsKKyAgICBnY2hhciogcmVzdWx0ID0gY29udmVydFRvVVRGOFN0cmluZyhpdGVtLT5ub2RlVmFs
dWUoKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9pZCB3ZWJraXRfZG9tX25vZGVfc2V0
X25vZGVfdmFsdWUoV2ViS2l0RE9NTm9kZSogc2VsZiwgY29uc3QgZ2NoYXIqIHZhbHVlLCBHRXJy
b3IqKiBlcnJvcikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfRE9NX0lTX05PREUoc2VsZikpOworICAgIGdf
cmV0dXJuX2lmX2ZhaWwodmFsdWUpOworICAgIGdfcmV0dXJuX2lmX2ZhaWwoIWVycm9yIHx8ICEq
ZXJyb3IpOworICAgIFdlYkNvcmU6Ok5vZGUqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Cisg
ICAgV1RGOjpTdHJpbmcgY29udmVydGVkVmFsdWUgPSBXVEY6OlN0cmluZzo6ZnJvbVVURjgodmFs
dWUpOworICAgIGF1dG8gcmVzdWx0ID0gaXRlbS0+c2V0Tm9kZVZhbHVlKGNvbnZlcnRlZFZhbHVl
KTsKKyAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgIGF1dG8gZGVzY3Jp
cHRpb24gPSBXZWJDb3JlOjpET01FeGNlcHRpb246OmRlc2NyaXB0aW9uKHJlc3VsdC5yZWxlYXNl
RXhjZXB0aW9uKCkuY29kZSgpKTsKKyAgICAgICAgZ19zZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwg
Z19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBkZXNjcmlwdGlvbi5sZWdhY3lDb2Rl
LCBkZXNjcmlwdGlvbi5uYW1lKTsKKyAgICB9Cit9CisKK2d1c2hvcnQgd2Via2l0X2RvbV9ub2Rl
X2dldF9ub2RlX3R5cGUoV2ViS2l0RE9NTm9kZSogc2VsZikKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lU
X0RPTV9JU19OT0RFKHNlbGYpLCAwKTsKKyAgICBXZWJDb3JlOjpOb2RlKiBpdGVtID0gV2ViS2l0
Ojpjb3JlKHNlbGYpOworICAgIGd1c2hvcnQgcmVzdWx0ID0gaXRlbS0+bm9kZVR5cGUoKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCitXZWJLaXRET01Ob2RlKiB3ZWJraXRfZG9tX25vZGVfZ2V0
X3BhcmVudF9ub2RlKFdlYktpdERPTU5vZGUqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9E
T01fSVNfTk9ERShzZWxmKSwgMCk7CisgICAgV2ViQ29yZTo6Tm9kZSogaXRlbSA9IFdlYktpdDo6
Y29yZShzZWxmKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6Tm9kZT4gZ29iamVjdFJlc3VsdCA9IFdU
Rjo6Z2V0UHRyKGl0ZW0tPnBhcmVudE5vZGUoKSk7CisgICAgcmV0dXJuIFdlYktpdDo6a2l0KGdv
YmplY3RSZXN1bHQuZ2V0KCkpOworfQorCitXZWJLaXRET01Ob2RlTGlzdCogd2Via2l0X2RvbV9u
b2RlX2dldF9jaGlsZF9ub2RlcyhXZWJLaXRET01Ob2RlKiBzZWxmKQoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChX
RUJLSVRfRE9NX0lTX05PREUoc2VsZiksIDApOworICAgIFdlYkNvcmU6Ok5vZGUqIGl0ZW0gPSBX
ZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgUmVmUHRyPFdlYkNvcmU6Ok5vZGVMaXN0PiBnb2JqZWN0
UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+Y2hpbGROb2RlcygpKTsKKyAgICByZXR1cm4gV2Vi
S2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7Cit9CisKK1dlYktpdERPTU5vZGUqIHdlYmtp
dF9kb21fbm9kZV9nZXRfZmlyc3RfY2hpbGQoV2ViS2l0RE9NTm9kZSogc2VsZikKK3sKKyAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoV0VCS0lUX0RPTV9JU19OT0RFKHNlbGYpLCAwKTsKKyAgICBXZWJDb3JlOjpOb2RlKiBp
dGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFJlZlB0cjxXZWJDb3JlOjpOb2RlPiBnb2Jq
ZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+Zmlyc3RDaGlsZCgpKTsKKyAgICByZXR1cm4g
V2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7Cit9CisKK1dlYktpdERPTU5vZGUqIHdl
YmtpdF9kb21fbm9kZV9nZXRfbGFzdF9jaGlsZChXZWJLaXRET01Ob2RlKiBzZWxmKQoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxf
aWZfZmFpbChXRUJLSVRfRE9NX0lTX05PREUoc2VsZiksIDApOworICAgIFdlYkNvcmU6Ok5vZGUq
IGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7CisgICAgUmVmUHRyPFdlYkNvcmU6Ok5vZGU+IGdv
YmplY3RSZXN1bHQgPSBXVEY6OmdldFB0cihpdGVtLT5sYXN0Q2hpbGQoKSk7CisgICAgcmV0dXJu
IFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOworfQorCitXZWJLaXRET01Ob2RlKiB3
ZWJraXRfZG9tX25vZGVfZ2V0X3ByZXZpb3VzX3NpYmxpbmcoV2ViS2l0RE9NTm9kZSogc2VsZikK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19OT0RFKHNlbGYpLCAwKTsKKyAgICBXZWJDb3Jl
OjpOb2RlKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFJlZlB0cjxXZWJDb3JlOjpO
b2RlPiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+cHJldmlvdXNTaWJsaW5nKCkp
OworICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKK30KKworV2Vi
S2l0RE9NTm9kZSogd2Via2l0X2RvbV9ub2RlX2dldF9uZXh0X3NpYmxpbmcoV2ViS2l0RE9NTm9k
ZSogc2VsZikKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19OT0RFKHNlbGYpLCAwKTsKKyAg
ICBXZWJDb3JlOjpOb2RlKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIFJlZlB0cjxX
ZWJDb3JlOjpOb2RlPiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+bmV4dFNpYmxp
bmcoKSk7CisgICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOworfQor
CitXZWJLaXRET01Eb2N1bWVudCogd2Via2l0X2RvbV9ub2RlX2dldF9vd25lcl9kb2N1bWVudChX
ZWJLaXRET01Ob2RlKiBzZWxmKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX05PREUoc2Vs
ZiksIDApOworICAgIFdlYkNvcmU6Ok5vZGUqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Cisg
ICAgUmVmUHRyPFdlYkNvcmU6OkRvY3VtZW50PiBnb2JqZWN0UmVzdWx0ID0gV1RGOjpnZXRQdHIo
aXRlbS0+b3duZXJEb2N1bWVudCgpKTsKKyAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJl
c3VsdC5nZXQoKSk7Cit9CisKK2djaGFyKiB3ZWJraXRfZG9tX25vZGVfZ2V0X2Jhc2VfdXJpKFdl
YktpdERPTU5vZGUqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfTk9ERShzZWxm
KSwgMCk7CisgICAgV2ViQ29yZTo6Tm9kZSogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAg
ICBnY2hhciogcmVzdWx0ID0gY29udmVydFRvVVRGOFN0cmluZyhpdGVtLT5iYXNlVVJJKCkpOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2djaGFyKiB3ZWJraXRfZG9tX25vZGVfZ2V0X3RleHRf
Y29udGVudChXZWJLaXRET01Ob2RlKiBzZWxmKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lT
X05PREUoc2VsZiksIDApOworICAgIFdlYkNvcmU6Ok5vZGUqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUo
c2VsZik7CisgICAgZ2NoYXIqIHJlc3VsdCA9IGNvbnZlcnRUb1VURjhTdHJpbmcoaXRlbS0+dGV4
dENvbnRlbnQoKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9pZCB3ZWJraXRfZG9tX25v
ZGVfc2V0X3RleHRfY29udGVudChXZWJLaXRET01Ob2RlKiBzZWxmLCBjb25zdCBnY2hhciogdmFs
dWUsIEdFcnJvcioqIGVycm9yKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9ET01fSVNfTk9ERShzZWxmKSk7
CisgICAgZ19yZXR1cm5faWZfZmFpbCh2YWx1ZSk7CisgICAgZ19yZXR1cm5faWZfZmFpbCghZXJy
b3IgfHwgISplcnJvcik7CisgICAgV2ViQ29yZTo6Tm9kZSogaXRlbSA9IFdlYktpdDo6Y29yZShz
ZWxmKTsKKyAgICBXVEY6OlN0cmluZyBjb252ZXJ0ZWRWYWx1ZSA9IFdURjo6U3RyaW5nOjpmcm9t
VVRGOCh2YWx1ZSk7CisgICAgYXV0byByZXN1bHQgPSBpdGVtLT5zZXRUZXh0Q29udGVudChjb252
ZXJ0ZWRWYWx1ZSk7CisgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAgICBh
dXRvIGRlc2NyaXB0aW9uID0gV2ViQ29yZTo6RE9NRXhjZXB0aW9uOjpkZXNjcmlwdGlvbihyZXN1
bHQucmVsZWFzZUV4Y2VwdGlvbigpLmNvZGUoKSk7CisgICAgICAgIGdfc2V0X2Vycm9yX2xpdGVy
YWwoZXJyb3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZGVzY3JpcHRpb24u
bGVnYWN5Q29kZSwgZGVzY3JpcHRpb24ubmFtZSk7CisgICAgfQorfQorCitXZWJLaXRET01FbGVt
ZW50KiB3ZWJraXRfZG9tX25vZGVfZ2V0X3BhcmVudF9lbGVtZW50KFdlYktpdERPTU5vZGUqIHNl
bGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfTk9ERShzZWxmKSwgMCk7CisgICAgV2Vi
Q29yZTo6Tm9kZSogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBSZWZQdHI8V2ViQ29y
ZTo6RWxlbWVudD4gZ29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPnBhcmVudEVsZW1l
bnQoKSk7CisgICAgcmV0dXJuIFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOworfQor
CitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUl0
ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01Ob2RlSXRlcmF0b3IuY3BwCmluZGV4IDdjZGNlNDY3MGIxNWQ0MTFj
ZDA2NTRiYmU1NDAxMTI5MTVjYWFlM2YuLmRmODBkYjdhYTdhNmUzOGI0OWY2YTE3ZDM1ZTQxNTk4
ZWVlMGExYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlSXRlcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2Rl
SXRlcmF0b3IuY3BwCkBAIC0zOSw2ICszOSw4IEBAIHR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01O
b2RlSXRlcmF0b3JQcml2YXRlIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6Tm9kZUl0ZXJhdG9yPiBj
b3JlT2JqZWN0OwogfSBXZWJLaXRET01Ob2RlSXRlcmF0b3JQcml2YXRlOwogCitHX0dOVUNfQkVH
SU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERP
TU5vZGVJdGVyYXRvcioga2l0KFdlYkNvcmU6Ok5vZGVJdGVyYXRvciogb2JqKQpAQCAtMjcyLDMg
KzI3NCw0IEBAIGdib29sZWFuIHdlYmtpdF9kb21fbm9kZV9pdGVyYXRvcl9nZXRfcG9pbnRlcl9i
ZWZvcmVfcmVmZXJlbmNlX25vZGUoV2ViS2l0RE9NTm9kCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVJ
dGVyYXRvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTU5vZGVJdGVyYXRvci5oCmluZGV4IDZjNzkzYzcxMjkzOWQ0ZGFiOTJi
NjM4YWJhZmE1YjA1ZDIyYzBkNDYuLmRkNGQ2NTM3YjNjNjQ5NWE4NjM2Mjk2NDJlNDllZmJhY2U5
OTg0ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlSXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUl0ZXJh
dG9yLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01Ob2RlSXRlcmF0b3JDbGFz
cyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lU
X0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fbm9kZV9pdGVy
YXRvcl9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01NCw4ICs1NCwxMCBAQCB3ZWJraXRfZG9t
X25vZGVfaXRlcmF0b3JfZ2V0X3R5cGUodm9pZCk7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAg
KiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdl
YmtpdF9kb21fbm9kZV9pdGVyYXRvcl9uZXh0X25vZGUoV2ViS2l0RE9NTm9kZUl0ZXJhdG9yKiBz
ZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtNjQsMTYgKzY2LDIwIEBAIHdlYmtpdF9k
b21fbm9kZV9pdGVyYXRvcl9uZXh0X25vZGUoV2ViS2l0RE9NTm9kZUl0ZXJhdG9yKiBzZWxmLCBH
RXJyb3IqKiBlcnJvcik7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJh
bnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01O
b2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fbm9kZV9p
dGVyYXRvcl9wcmV2aW91c19ub2RlKFdlYktpdERPTU5vZGVJdGVyYXRvciogc2VsZiwgR0Vycm9y
KiogZXJyb3IpOwogCiAvKioKICAqIHdlYmtpdF9kb21fbm9kZV9pdGVyYXRvcl9kZXRhY2g6CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NTm9kZUl0ZXJhdG9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fbm9kZV9pdGVyYXRvcl9kZXRh
Y2goV2ViS2l0RE9NTm9kZUl0ZXJhdG9yKiBzZWxmKTsKIAogLyoqCkBAIC04MSw4ICs4NywxMCBA
QCB3ZWJraXRfZG9tX25vZGVfaXRlcmF0b3JfZGV0YWNoKFdlYktpdERPTU5vZGVJdGVyYXRvciog
c2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NTm9kZUl0ZXJhdG9yCiAgKgogICogUmV0dXJu
czogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2Vi
S2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9t
X25vZGVfaXRlcmF0b3JfZ2V0X3Jvb3QoV2ViS2l0RE9NTm9kZUl0ZXJhdG9yKiBzZWxmKTsKIAog
LyoqCkBAIC05MCw4ICs5OCwxMCBAQCB3ZWJraXRfZG9tX25vZGVfaXRlcmF0b3JfZ2V0X3Jvb3Qo
V2ViS2l0RE9NTm9kZUl0ZXJhdG9yKiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Ob2Rl
SXRlcmF0b3IKICAqCiAgKiBSZXR1cm5zOiBBICNndWxvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBndWxv
bmcKK1dFQktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Via2l0X2RvbV9ub2RlX2l0ZXJhdG9yX2dl
dF93aGF0X3RvX3Nob3coV2ViS2l0RE9NTm9kZUl0ZXJhdG9yKiBzZWxmKTsKIAogLyoqCkBAIC05
OSw4ICsxMDksMTAgQEAgd2Via2l0X2RvbV9ub2RlX2l0ZXJhdG9yX2dldF93aGF0X3RvX3Nob3co
V2ViS2l0RE9NTm9kZUl0ZXJhdG9yKiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01Ob2Rl
SXRlcmF0b3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTU5v
ZGVGaWx0ZXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlRmlsdGVyKgorV0VCS0lUX0RF
UFJFQ0FURUQgV2ViS2l0RE9NTm9kZUZpbHRlcioKIHdlYmtpdF9kb21fbm9kZV9pdGVyYXRvcl9n
ZXRfZmlsdGVyKFdlYktpdERPTU5vZGVJdGVyYXRvciogc2VsZik7CiAKIC8qKgpAQCAtMTA4LDgg
KzEyMCwxMCBAQCB3ZWJraXRfZG9tX25vZGVfaXRlcmF0b3JfZ2V0X2ZpbHRlcihXZWJLaXRET01O
b2RlSXRlcmF0b3IqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU5vZGVJdGVyYXRvcgog
ICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2Rl
Kgogd2Via2l0X2RvbV9ub2RlX2l0ZXJhdG9yX2dldF9yZWZlcmVuY2Vfbm9kZShXZWJLaXRET01O
b2RlSXRlcmF0b3IqIHNlbGYpOwogCiAvKioKQEAgLTExNyw4ICsxMzEsMTAgQEAgd2Via2l0X2Rv
bV9ub2RlX2l0ZXJhdG9yX2dldF9yZWZlcmVuY2Vfbm9kZShXZWJLaXRET01Ob2RlSXRlcmF0b3Iq
IHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTU5vZGVJdGVyYXRvcgogICoKICAqIFJldHVy
bnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNB
VEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX25vZGVfaXRlcmF0b3JfZ2V0X3BvaW50ZXJfYmVmb3Jl
X3JlZmVyZW5jZV9ub2RlKFdlYktpdERPTU5vZGVJdGVyYXRvciogc2VsZik7CiAKIEdfRU5EX0RF
Q0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUxpc3QuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVMaXN0LmNwcAppbmRl
eCAxODc3OWY0ZDA0ODMwMTY4NTFjNDUyNDk2ZjU2OWJlMzAzMDA4YzM0Li4wOTUyMjE4ZGRiZDZj
ZjExNGI5ODg1Yzc1MDhmN2UwMDQ3NGViZjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZUxpc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RP
TS9XZWJLaXRET01Ob2RlTGlzdC5jcHAKQEAgLTM4LDYgKzM4LDggQEAgdHlwZWRlZiBzdHJ1Y3Qg
X1dlYktpdERPTU5vZGVMaXN0UHJpdmF0ZSB7CiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5vZGVMaXN0
PiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01Ob2RlTGlzdFByaXZhdGU7CiAKK0dfR05VQ19CRUdJ
Tl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9N
Tm9kZUxpc3QqIGtpdChXZWJDb3JlOjpOb2RlTGlzdCogb2JqKQpAQCAtMTUwLDMgKzE1Miw0IEBA
IGd1bG9uZyB3ZWJraXRfZG9tX25vZGVfbGlzdF9nZXRfbGVuZ3RoKFdlYktpdERPTU5vZGVMaXN0
KiBzZWxmKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJF
Q0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Ob2RlTGlzdC5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVMaXN0LmgKaW5k
ZXggY2EzZWUyNjNjMTJjNDY1N2IzZjBkZWNiMDYxYzQ5M2M1MjVlYTI0ZS4uNDE3NWYzODdlNzkx
NmZlMGRjYWMxM2M0ZmEzZTFmMTJiY2NjMDE5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU5vZGVMaXN0LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTU5vZGVMaXN0LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01O
b2RlTGlzdENsYXNzIHsKICAgICBXZWJLaXRET01PYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CiB9
OwogCi1XRUJLSVRfQVBJIEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2Rv
bV9ub2RlX2xpc3RfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTQsOCArNTQsMTAgQEAgd2Vi
a2l0X2RvbV9ub2RlX2xpc3RfZ2V0X3R5cGUodm9pZCk7CiAgKiBAaW5kZXg6IEEgI2d1bG9uZwog
ICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2Rl
Kgogd2Via2l0X2RvbV9ub2RlX2xpc3RfaXRlbShXZWJLaXRET01Ob2RlTGlzdCogc2VsZiwgZ3Vs
b25nIGluZGV4KTsKIAogLyoqCkBAIC02Myw4ICs2NSwxMCBAQCB3ZWJraXRfZG9tX25vZGVfbGlz
dF9pdGVtKFdlYktpdERPTU5vZGVMaXN0KiBzZWxmLCBndWxvbmcgaW5kZXgpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTU5vZGVMaXN0CiAgKgogICogUmV0dXJuczogQSAjZ3Vsb25nCisgKgorICog
RGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdF
QktJVF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQUkVDQVRFRCBndWxvbmcKIHdlYmtpdF9kb21fbm9k
ZV9saXN0X2dldF9sZW5ndGgoV2ViS2l0RE9NTm9kZUxpc3QqIHNlbGYpOwogCiBHX0VORF9ERUNM
UwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTU5vZGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NTm9kZVByaXZhdGUuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGQwYmViOWU2ZjJlNGUwZDUwMTJhZTVmZWE1ZDgy
ZWIzM2YzZmQwZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NTm9kZVByaXZhdGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLS8qCi0g
KiAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFdlYktpdCBvcGVuIHNvdXJjZSBwcm9qZWN0Lgot
ICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCi0gKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KLSAqLwotCi0jaWZuZGVmIFdlYktpdERPTU5vZGVQcml2YXRlX2gKLSNkZWZpbmUgV2ViS2l0
RE9NTm9kZVByaXZhdGVfaAotCi0jaW5jbHVkZSA8V2ViQ29yZS9Ob2RlLmg+Ci0jaW5jbHVkZSA8
d2Via2l0ZG9tL1dlYktpdERPTU5vZGUuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci1XZWJLaXRE
T01Ob2RlKiB3cmFwTm9kZShXZWJDb3JlOjpOb2RlKik7Ci1XZWJLaXRET01Ob2RlKiBraXQoV2Vi
Q29yZTo6Tm9kZSopOwotV2ViQ29yZTo6Tm9kZSogY29yZShXZWJLaXRET01Ob2RlKik7Ci19IC8v
IG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8qIFdlYktpdERPTU5vZGVQcml2YXRlX2ggKi8K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01PYmplY3QuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU9iamVjdC5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDg2OTU2M2UyZDNkZTEwZTM4ZDNhMzBhZmI4NWM5OWYxY2ZiMGM2
YzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU9i
amVjdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+Ci0g
KiBDb3B5cmlnaHQgKEMpIDIwMDggTWFydGluIFNvdG8gPHNvdG9AZnJlZWRlc2t0b3Aub3JnPgot
ICogQ29weXJpZ2h0IChDKSAyMDA4IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+Ci0gKiBDb3B5
cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLgotICogQ29weXJpZ2h0IChDKSAyMDA5IElnYWxpYSBT
LkwuCi0gKi8KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJLaXRET01PYmplY3Qu
aCIKLQotZW51bSB7Ci0gICAgRE9NX09CSkVDVF9QUk9QXzAsCi0gICAgRE9NX09CSkVDVF9QUk9Q
X0NPUkVfT0JKRUNUCi19OwotCi1HX0RFRklORV9UWVBFKFdlYktpdERPTU9iamVjdCwgd2Via2l0
X2RvbV9vYmplY3QsIEdfVFlQRV9PQkpFQ1QpCi0KLXN0YXRpYyB2b2lkIHdlYmtpdF9kb21fb2Jq
ZWN0X2luaXQoV2ViS2l0RE9NT2JqZWN0KikKLXsKLX0KLQotc3RhdGljIHZvaWQgd2Via2l0RE9N
T2JqZWN0U2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLCBjb25z
dCBHVmFsdWUqIHZhbHVlLCBHUGFyYW1TcGVjKiBwc3BlYykKLXsKLSAgICBzd2l0Y2ggKHByb3Bl
cnR5SWQpIHsKLSAgICBjYXNlIERPTV9PQkpFQ1RfUFJPUF9DT1JFX09CSkVDVDoKLSAgICAgICAg
V0VCS0lUX0RPTV9PQkpFQ1Qob2JqZWN0KS0+Y29yZU9iamVjdCA9IGdfdmFsdWVfZ2V0X3BvaW50
ZXIodmFsdWUpOwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBHX09CSkVD
VF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wZXJ0eUlkLCBwc3BlYyk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIH0KLX0KLQotc3RhdGljIHZvaWQgd2Via2l0X2RvbV9vYmplY3Rf
Y2xhc3NfaW5pdChXZWJLaXRET01PYmplY3RDbGFzcyoga2xhc3MpCi17Ci0gICAgR09iamVjdENs
YXNzKiBnb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhrbGFzcyk7Ci0gICAgZ29iamVjdENs
YXNzLT5zZXRfcHJvcGVydHkgPSB3ZWJraXRET01PYmplY3RTZXRQcm9wZXJ0eTsKLQotICAgIGdf
b2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCi0gICAgICAgIGdvYmplY3RDbGFzcywKLSAg
ICAgICAgRE9NX09CSkVDVF9QUk9QX0NPUkVfT0JKRUNULAotICAgICAgICBnX3BhcmFtX3NwZWNf
cG9pbnRlcigKLSAgICAgICAgICAgICJjb3JlLW9iamVjdCIsCi0gICAgICAgICAgICAiQ29yZSBP
YmplY3QiLAotICAgICAgICAgICAgIlRoZSBXZWJDb3JlIG9iamVjdCB0aGUgV2ViS2l0RE9NT2Jq
ZWN0IHdyYXBzIiwKLSAgICAgICAgICAgIHN0YXRpY19jYXN0PEdQYXJhbUZsYWdzPihHX1BBUkFN
X1dSSVRBQkxFIHwgR19QQVJBTV9DT05TVFJVQ1RfT05MWSB8IEdfUEFSQU1fU1RBVElDX05BTUUg
fCBHX1BBUkFNX1NUQVRJQ19OSUNLIHwgR19QQVJBTV9TVEFUSUNfQkxVUkIpKSk7Ci19CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9E
T00vV2ViS2l0RE9NT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NT2JqZWN0LmgKaW5kZXggOWI3Yjg2N2I0MTY1N2U1
ZWUzMTc3MTQ2YTRmYjI3MzcyZmZiMzY5NS4uZjdmYmM5MzM4Yjg1YTQxZDc5MTZhZTE0MjNkNDEx
ZWI4ZjYyZGQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01PYmplY3QuaApA
QCAtMjEsNyArMjEsNiBAQAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KIAot
CiAjaWZuZGVmIFdlYktpdERPTU9iamVjdF9oCiAjZGVmaW5lIFdlYktpdERPTU9iamVjdF9oCiAK
QEAgLTM3LDggKzM2LDYgQEAgR19CRUdJTl9ERUNMUwogI2RlZmluZSBXRUJLSVRfRE9NX0lTX09C
SkVDVF9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJL
SVRfRE9NX1RZUEVfT0JKRUNUKSkKICNkZWZpbmUgV0VCS0lUX0RPTV9PQkpFQ1RfR0VUX0NMQVNT
KG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX0RPTV9UWVBF
X09CSkVDVCwgV2ViS2l0RE9NT2JqZWN0Q2xhc3MpKQogCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0
RE9NT2JqZWN0UHJpdmF0ZSBXZWJLaXRET01PYmplY3RQcml2YXRlOwotCiBzdHJ1Y3QgX1dlYktp
dERPTU9iamVjdCB7CiAgICAgR09iamVjdCBwYXJlbnRJbnN0YW5jZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTU9iamVjdFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01PYmplY3RQcml2YXRlLmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAyYjExYTZiZmFmZDZhY2MyNjU1Y2Y0MDllMjZiODRjODMxOTI5YTcu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTU9iamVj
dFByaXZhdGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCi0gKi8KLQotCi0jaWZuZGVmIFdlYktpdERPTU9iamVjdFByaXZhdGVf
aAotI2RlZmluZSBXZWJLaXRET01PYmplY3RQcml2YXRlX2gKLQotI2luY2x1ZGUgPHdlYmtpdGRv
bS9XZWJLaXRET01PYmplY3QuaD4KLQotc3RydWN0IF9XZWJLaXRET01PYmplY3QgewotICAgIEdP
YmplY3QgcGFyZW50OwotfTsKLQotc3RydWN0IF9XZWJLaXRET01PYmplY3RDbGFzcyB7Ci0gICAg
R09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKLQotICAgIHZvaWQgKCogd3JhcCkgKFdlYktpdERP
TU9iamVjdCosIHZvaWQqIGNvcmVPYmplY3QpOwotfTsKLQotdm9pZCB3ZWJraXRET01PYmplY3RX
cmFwKFdlYktpdERPTU9iamVjdCosIHZvaWQqIGNvcmVPYmplY3QpOwotCi0jZW5kaWYgLyogV2Vi
S2l0RE9NT2JqZWN0X2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcml2YXRlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcml2
YXRlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTY2MThhZTMxMjY3YjY3NjA1
MjFhNThkNDc0ZWQ4ZjlkNDk1YTg0ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NUHJpdmF0ZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNTggKzAs
MCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMSBIYXJyaSBQb3J0ZW4gKHBvcnRl
bkBrZGUub3JnKQotICogIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAw
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA3
IFNhbXVlbCBXZWluaWcgPHNhbUB3ZWJraXQub3JnPgotICogIENvcHlyaWdodCAoQykgMjAwOCBM
dWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIDxsa2NsQGxrY2wubmV0PgotICogIENvcHlyaWdo
dCAoQykgMjAwOCBNYXJ0aW4gU290byA8c290b0BmcmVlZGVza3RvcC5vcmc+Ci0gKiAgQ29weXJp
Z2h0IChDKSAyMDA5LTIwMTMgSWdhbGlhIFMuTC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
LSAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoK
LSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90
LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJLaXRET01Qcml2YXRlLmgi
Ci0KLSNpbmNsdWRlIDxXZWJDb3JlL0Jsb2IuaD4KLSNpbmNsdWRlICJET01PYmplY3RDYWNoZS5o
IgotI2luY2x1ZGUgPFdlYkNvcmUvRWxlbWVudC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRXZlbnQu
aD4KLSNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50VGFyZ2V0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9G
aWxlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9IVE1MRWxlbWVudC5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvSFRNTE5hbWVzLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9Nb3VzZUV2ZW50Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TdHlsZVNoZWV0
Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9VSUV2ZW50Lmg+Ci0jaW5jbHVkZSAiV2ViS2l0RE9NQXR0
clByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRET01CbG9iUHJpdmF0ZS5oIgotI2luY2x1ZGUg
IldlYktpdERPTUNEQVRBU2VjdGlvblByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRET01DU1NT
dHlsZVNoZWV0UHJpdmF0ZS5oIgotI2luY2x1ZGUgIldlYktpdERPTUNvbW1lbnRQcml2YXRlLmgi
Ci0jaW5jbHVkZSAiV2ViS2l0RE9NRE9NV2luZG93UHJpdmF0ZS5oIgotI2luY2x1ZGUgIldlYktp
dERPTURvY3VtZW50RnJhZ21lbnRQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0RE9NRG9jdW1l
bnRQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0RE9NRG9jdW1lbnRUeXBlUHJpdmF0ZS5oIgot
I2luY2x1ZGUgIldlYktpdERPTUVsZW1lbnRQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0RE9N
RXZlbnRQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0RE9NRXZlbnRUYXJnZXRQcml2YXRlLmgi
Ci0jaW5jbHVkZSAiV2ViS2l0RE9NRmlsZVByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRET01I
VE1MQ29sbGVjdGlvblByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRET01IVE1MRG9jdW1lbnRQ
cml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0RE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uUHJpdmF0
ZS5oIgotI2luY2x1ZGUgIldlYktpdERPTUhUTUxQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0
RE9NS2V5Ym9hcmRFdmVudFByaXZhdGUuaCIKLSNpbmNsdWRlICJXZWJLaXRET01Nb3VzZUV2ZW50
UHJpdmF0ZS5oIgotI2luY2x1ZGUgIldlYktpdERPTU5vZGVQcml2YXRlLmgiCi0jaW5jbHVkZSAi
V2ViS2l0RE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uUHJpdmF0ZS5oIgotI2luY2x1ZGUgIldlYktp
dERPTVN0eWxlU2hlZXRQcml2YXRlLmgiCi0jaW5jbHVkZSAiV2ViS2l0RE9NVGV4dFByaXZhdGUu
aCIKLSNpbmNsdWRlICJXZWJLaXRET01VSUV2ZW50UHJpdmF0ZS5oIgotI2luY2x1ZGUgIldlYktp
dERPTVdoZWVsRXZlbnRQcml2YXRlLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi11c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOjpIVE1MTmFtZXM7Ci0K
LVdlYktpdERPTU5vZGUqIHdyYXAoTm9kZSogbm9kZSkKLXsKLSAgICBBU1NFUlQobm9kZSk7Ci0g
ICAgQVNTRVJUKG5vZGUtPm5vZGVUeXBlKCkpOwotCi0gICAgc3dpdGNoIChub2RlLT5ub2RlVHlw
ZSgpKSB7Ci0gICAgY2FzZSBOb2RlOjpFTEVNRU5UX05PREU6Ci0gICAgICAgIGlmIChpczxIVE1M
RWxlbWVudD4oKm5vZGUpKQotICAgICAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFw
KGRvd25jYXN0PEhUTUxFbGVtZW50Pihub2RlKSkpOwotICAgICAgICByZXR1cm4gV0VCS0lUX0RP
TV9OT0RFKHdyYXBFbGVtZW50KGRvd25jYXN0PEVsZW1lbnQ+KG5vZGUpKSk7Ci0gICAgY2FzZSBO
b2RlOjpBVFRSSUJVVEVfTk9ERToKLSAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFw
QXR0cihzdGF0aWNfY2FzdDxBdHRyKj4obm9kZSkpKTsKLSAgICBjYXNlIE5vZGU6OlRFWFRfTk9E
RToKLSAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFwVGV4dChkb3duY2FzdDxUZXh0
Pihub2RlKSkpOwotICAgIGNhc2UgTm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOgotICAgICAgICBy
ZXR1cm4gV0VCS0lUX0RPTV9OT0RFKHdyYXBDREFUQVNlY3Rpb24oc3RhdGljX2Nhc3Q8Q0RBVEFT
ZWN0aW9uKj4obm9kZSkpKTsKLSAgICBjYXNlIE5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05f
Tk9ERToKLSAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFwUHJvY2Vzc2luZ0luc3Ry
dWN0aW9uKHN0YXRpY19jYXN0PFByb2Nlc3NpbmdJbnN0cnVjdGlvbio+KG5vZGUpKSk7Ci0gICAg
Y2FzZSBOb2RlOjpDT01NRU5UX05PREU6Ci0gICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUo
d3JhcENvbW1lbnQoc3RhdGljX2Nhc3Q8Q29tbWVudCo+KG5vZGUpKSk7Ci0gICAgY2FzZSBOb2Rl
OjpET0NVTUVOVF9OT0RFOgotICAgICAgICBpZiAoaXM8SFRNTERvY3VtZW50Pigqbm9kZSkpCi0g
ICAgICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9OT0RFKHdyYXBIVE1MRG9jdW1lbnQoZG93bmNh
c3Q8SFRNTERvY3VtZW50Pihub2RlKSkpOwotICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9OT0RF
KHdyYXBEb2N1bWVudChkb3duY2FzdDxEb2N1bWVudD4obm9kZSkpKTsKLSAgICBjYXNlIE5vZGU6
OkRPQ1VNRU5UX1RZUEVfTk9ERToKLSAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFw
RG9jdW1lbnRUeXBlKHN0YXRpY19jYXN0PERvY3VtZW50VHlwZSo+KG5vZGUpKSk7Ci0gICAgY2Fz
ZSBOb2RlOjpET0NVTUVOVF9GUkFHTUVOVF9OT0RFOgotICAgICAgICByZXR1cm4gV0VCS0lUX0RP
TV9OT0RFKHdyYXBEb2N1bWVudEZyYWdtZW50KHN0YXRpY19jYXN0PERvY3VtZW50RnJhZ21lbnQq
Pihub2RlKSkpOwotICAgIH0KLQotICAgIHJldHVybiB3cmFwTm9kZShub2RlKTsKLX0KLQotV2Vi
S2l0RE9NRXZlbnQqIHdyYXAoRXZlbnQqIGV2ZW50KQotewotICAgIEFTU0VSVChldmVudCk7Ci0K
LSAgICBpZiAoaXM8VUlFdmVudD4oKmV2ZW50KSkgewotICAgICAgICBpZiAoaXM8TW91c2VFdmVu
dD4oKmV2ZW50KSkKLSAgICAgICAgICAgIHJldHVybiBXRUJLSVRfRE9NX0VWRU5UKHdyYXBNb3Vz
ZUV2ZW50KCZkb3duY2FzdDxNb3VzZUV2ZW50PigqZXZlbnQpKSk7Ci0gICAgICAgIGlmIChpczxL
ZXlib2FyZEV2ZW50PigqZXZlbnQpKQotICAgICAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fRVZF
TlQod3JhcEtleWJvYXJkRXZlbnQoJmRvd25jYXN0PEtleWJvYXJkRXZlbnQ+KCpldmVudCkpKTsK
LSAgICAgICAgaWYgKGlzPFdoZWVsRXZlbnQ+KCpldmVudCkpCi0gICAgICAgICAgICByZXR1cm4g
V0VCS0lUX0RPTV9FVkVOVCh3cmFwV2hlZWxFdmVudCgmZG93bmNhc3Q8V2hlZWxFdmVudD4oKmV2
ZW50KSkpOwotICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9FVkVOVCh3cmFwVUlFdmVudCgmZG93
bmNhc3Q8VUlFdmVudD4oKmV2ZW50KSkpOwotICAgIH0KLQotICAgIHJldHVybiB3cmFwRXZlbnQo
ZXZlbnQpOwotfQotCi1XZWJLaXRET01TdHlsZVNoZWV0KiB3cmFwKFN0eWxlU2hlZXQqIHN0eWxl
U2hlZXQpCi17Ci0gICAgQVNTRVJUKHN0eWxlU2hlZXQpOwotCi0gICAgaWYgKGlzPENTU1N0eWxl
U2hlZXQ+KCpzdHlsZVNoZWV0KSkKLSAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fU1RZTEVfU0hF
RVQod3JhcENTU1N0eWxlU2hlZXQoZG93bmNhc3Q8Q1NTU3R5bGVTaGVldD4oc3R5bGVTaGVldCkp
KTsKLSAgICByZXR1cm4gd3JhcFN0eWxlU2hlZXQoc3R5bGVTaGVldCk7Ci19Ci0KLVdlYktpdERP
TUhUTUxDb2xsZWN0aW9uKiB3cmFwKEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uKQotewotICAg
IEFTU0VSVChjb2xsZWN0aW9uKTsKLQotICAgIGlmIChpczxIVE1MT3B0aW9uc0NvbGxlY3Rpb24+
KCpjb2xsZWN0aW9uKSkKLSAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fSFRNTF9DT0xMRUNUSU9O
KHdyYXBIVE1MT3B0aW9uc0NvbGxlY3Rpb24oZG93bmNhc3Q8SFRNTE9wdGlvbnNDb2xsZWN0aW9u
Pihjb2xsZWN0aW9uKSkpOwotICAgIHJldHVybiB3cmFwSFRNTENvbGxlY3Rpb24oY29sbGVjdGlv
bik7Ci19Ci0KLVdlYktpdERPTUV2ZW50VGFyZ2V0KiB3cmFwKEV2ZW50VGFyZ2V0KiBldmVudFRh
cmdldCkKLXsKLSAgICBBU1NFUlQoZXZlbnRUYXJnZXQpOwotCi0gICAgaWYgKGlzPE5vZGU+KCpl
dmVudFRhcmdldCkpCi0gICAgICAgIHJldHVybiBXRUJLSVRfRE9NX0VWRU5UX1RBUkdFVChraXQo
JmRvd25jYXN0PE5vZGU+KCpldmVudFRhcmdldCkpKTsKLSAgICBpZiAoaXM8RE9NV2luZG93Pigq
ZXZlbnRUYXJnZXQpKQotICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9FVkVOVF9UQVJHRVQoa2l0
KCZkb3duY2FzdDxET01XaW5kb3c+KCpldmVudFRhcmdldCkpKTsKLSAgICByZXR1cm4gbnVsbHB0
cjsKLX0KLQotV2ViS2l0RE9NQmxvYiogd3JhcChCbG9iKiBibG9iKQotewotICAgIEFTU0VSVChi
bG9iKTsKLQotICAgIGlmIChibG9iLT5pc0ZpbGUoKSkKLSAgICAgICAgcmV0dXJuIFdFQktJVF9E
T01fQkxPQih3cmFwRmlsZShzdGF0aWNfY2FzdDxGaWxlKj4oYmxvYikpKTsKLSAgICByZXR1cm4g
d3JhcEJsb2IoYmxvYik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01Qcml2YXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDJlMTQ5NDJjYjA1YTdhZGM4NjdkZTQ1YWE3NWFjOWY1NDAyYTk3ODAuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVByaXZhdGUuaAorKysgL2Rl
di9udWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0IChDKSAxOTk5LTIwMDEg
SGFycmkgUG9ydGVuIChwb3J0ZW5Aa2RlLm9yZykKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDMsIDIw
MDQsIDIwMDUsIDIwMDYsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICog
IENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2VpbmlnIDxzYW1Ad2Via2l0Lm9yZz4KLSAqICBD
b3B5cmlnaHQgKEMpIDIwMDggTHVrZSBLZW5uZXRoIENhc3NvbiBMZWlnaHRvbiA8bGtjbEBsa2Ns
Lm5ldD4KLSAqICBDb3B5cmlnaHQgKEMpIDIwMDggTWFydGluIFNvdG8gPHNvdG9AZnJlZWRlc2t0
b3Aub3JnPgotICogIENvcHlyaWdodCAoQykgMjAwOS0yMDEzIElnYWxpYSBTLkwuCi0gKgotICog
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAqICBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1B
ICAwMjExMC0xMzAxICBVU0EKLSAqLwotCi0jaWZuZGVmIFdlYktpdERPTVByaXZhdGVfaAotI2Rl
ZmluZSBXZWJLaXRET01Qcml2YXRlX2gKLQotI2luY2x1ZGUgPHdlYmtpdGRvbS93ZWJraXRkb21k
ZWZpbmVzLmg+Ci0KLSNkZWZpbmUgV0VCS0lUX1BBUkFNX1JFQURBQkxFICgoR1BhcmFtRmxhZ3Mp
KEdfUEFSQU1fUkVBREFCTEUgfCBHX1BBUkFNX1NUQVRJQ19OQU1FIHwgR19QQVJBTV9TVEFUSUNf
TklDSyB8IEdfUEFSQU1fU1RBVElDX0JMVVJCKSkKLSNkZWZpbmUgV0VCS0lUX1BBUkFNX1JFQURX
UklURSAoKEdQYXJhbUZsYWdzKShHX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fU1RBVElDX05B
TUUgfCBHX1BBUkFNX1NUQVRJQ19OSUNLIHwgR19QQVJBTV9TVEFUSUNfQkxVUkIpKQotI2RlZmlu
ZSBXRUJLSVRfV0FSTl9GRUFUVVJFX05PVF9QUkVTRU5UKEZlYXR1cmUpIGdfd2FybmluZygiV2Vi
S2l0R1RLKyB3YXMgbm90IGNvbXBpbGVkIHdpdGggc3VwcG9ydCBmb3IgIiBGZWF0dXJlKTsKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgTm9kZTsKLWNsYXNzIEV2ZW50OwotY2xhc3MgU3R5
bGVTaGVldDsKLWNsYXNzIEhUTUxDb2xsZWN0aW9uOwotY2xhc3MgRXZlbnRUYXJnZXQ7Ci1jbGFz
cyBCbG9iOwotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLVdl
YktpdERPTU5vZGUqIHdyYXAoV2ViQ29yZTo6Tm9kZSopOwotV2ViS2l0RE9NRXZlbnQqIHdyYXAo
V2ViQ29yZTo6RXZlbnQqKTsKLVdlYktpdERPTVN0eWxlU2hlZXQqIHdyYXAoV2ViQ29yZTo6U3R5
bGVTaGVldCopOwotV2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qIHdyYXAoV2ViQ29yZTo6SFRNTENv
bGxlY3Rpb24qKTsKLVdlYktpdERPTUV2ZW50VGFyZ2V0KiB3cmFwKFdlYkNvcmU6OkV2ZW50VGFy
Z2V0Kik7Ci1XZWJLaXRET01CbG9iKiB3cmFwKFdlYkNvcmU6OkJsb2IqKTsKLX0gLy8gbmFtZXNw
YWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2ViS2l0RE9NUHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0
RE9NUHJpdmF0ZUd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJpdmF0ZUd0ay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzU3MmY5
MjRmODAyMzc2MzlmYWFiYzI2NjQ3MGUxOWRhYTczMDNlMwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01Qcml2YXRlR3RrLmNwcApAQCAtMCwwICsxLDE2MCBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMp
IDE5OTktMjAwMSBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQorICogIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IFNhbXVlbCBXZWluaWcgPHNhbUB3ZWJraXQu
b3JnPgorICogIENvcHlyaWdodCAoQykgMjAwOCBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9u
IDxsa2NsQGxrY2wubmV0PgorICogIENvcHlyaWdodCAoQykgMjAwOCBNYXJ0aW4gU290byA8c290
b0BmcmVlZGVza3RvcC5vcmc+CisgKiAgQ29weXJpZ2h0IChDKSAyMDA5LTIwMTMgSWdhbGlhIFMu
TC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2Fy
ZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
IEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJLaXRET01Qcml2YXRlLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL0Jsb2Iu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0VsZW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FdmVudFRhcmdldC5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
RmlsZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSFRNTEVsZW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0hUTUxOYW1lcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvTW91c2VFdmVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3R5bGVTaGVl
dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVUlFdmVudC5oPgorI2luY2x1ZGUgIldlYktpdERPTUF0
dHJQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0RE9NQmxvYlByaXZhdGUuaCIKKyNpbmNsdWRl
ICJXZWJLaXRET01DREFUQVNlY3Rpb25Qcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0RE9NQ1NT
U3R5bGVTaGVldFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01Db21tZW50UHJpdmF0ZS5o
IgorI2luY2x1ZGUgIldlYktpdERPTURPTVdpbmRvd1ByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJL
aXRET01Eb2N1bWVudEZyYWdtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTURvY3Vt
ZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTURvY3VtZW50VHlwZVByaXZhdGUuaCIK
KyNpbmNsdWRlICJXZWJLaXRET01FbGVtZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdERP
TUV2ZW50UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTUV2ZW50VGFyZ2V0UHJpdmF0ZS5o
IgorI2luY2x1ZGUgIldlYktpdERPTUZpbGVQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0RE9N
SFRNTENvbGxlY3Rpb25Qcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0RE9NSFRNTERvY3VtZW50
UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTUhUTUxPcHRpb25zQ29sbGVjdGlvblByaXZh
dGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01IVE1MUHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktp
dERPTUtleWJvYXJkRXZlbnRQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0RE9NTW91c2VFdmVu
dFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRET01Ob2RlUHJpdmF0ZS5oIgorI2luY2x1ZGUg
IldlYktpdERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvblByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJL
aXRET01TdHlsZVNoZWV0UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdERPTVRleHRQcml2YXRl
LmgiCisjaW5jbHVkZSAiV2ViS2l0RE9NVUlFdmVudFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJL
aXRET01XaGVlbEV2ZW50UHJpdmF0ZS5oIgorCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FU
SU9OUzsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU6OkhUTUxOYW1lczsKKworV2ViS2l0RE9NTm9kZSogd3Jh
cE5vZGVHdGsoTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAgQVNTRVJUKG5v
ZGUtPm5vZGVUeXBlKCkpOworCisgICAgc3dpdGNoIChub2RlLT5ub2RlVHlwZSgpKSB7CisgICAg
Y2FzZSBOb2RlOjpFTEVNRU5UX05PREU6CisgICAgICAgIGlmIChpczxIVE1MRWxlbWVudD4oKm5v
ZGUpKQorICAgICAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3cmFwKGRvd25jYXN0PEhU
TUxFbGVtZW50Pihub2RlKSkpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBjYXNlIE5v
ZGU6OkFUVFJJQlVURV9OT0RFOgorICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9OT0RFKHdyYXBB
dHRyKHN0YXRpY19jYXN0PEF0dHIqPihub2RlKSkpOworICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RF
OgorICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9OT0RFKHdyYXBUZXh0KGRvd25jYXN0PFRleHQ+
KG5vZGUpKSk7CisgICAgY2FzZSBOb2RlOjpDREFUQV9TRUNUSU9OX05PREU6CisgICAgICAgIHJl
dHVybiBXRUJLSVRfRE9NX05PREUod3JhcENEQVRBU2VjdGlvbihzdGF0aWNfY2FzdDxDREFUQVNl
Y3Rpb24qPihub2RlKSkpOworICAgIGNhc2UgTm9kZTo6UFJPQ0VTU0lOR19JTlNUUlVDVElPTl9O
T0RFOgorICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9OT0RFKHdyYXBQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24oc3RhdGljX2Nhc3Q8UHJvY2Vzc2luZ0luc3RydWN0aW9uKj4obm9kZSkpKTsKKyAgICBj
YXNlIE5vZGU6OkNPTU1FTlRfTk9ERToKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fTk9ERSh3
cmFwQ29tbWVudChzdGF0aWNfY2FzdDxDb21tZW50Kj4obm9kZSkpKTsKKyAgICBjYXNlIE5vZGU6
OkRPQ1VNRU5UX05PREU6CisgICAgICAgIGlmIChpczxIVE1MRG9jdW1lbnQ+KCpub2RlKSkKKyAg
ICAgICAgICAgIHJldHVybiBXRUJLSVRfRE9NX05PREUod3JhcEhUTUxEb2N1bWVudChkb3duY2Fz
dDxIVE1MRG9jdW1lbnQ+KG5vZGUpKSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGNh
c2UgTm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFOgorICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9O
T0RFKHdyYXBEb2N1bWVudFR5cGUoc3RhdGljX2Nhc3Q8RG9jdW1lbnRUeXBlKj4obm9kZSkpKTsK
KyAgICBjYXNlIE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CisgICAgICAgIHJldHVybiBX
RUJLSVRfRE9NX05PREUod3JhcERvY3VtZW50RnJhZ21lbnQoc3RhdGljX2Nhc3Q8RG9jdW1lbnRG
cmFnbWVudCo+KG5vZGUpKSk7CisgICAgfQorCisgICAgcmV0dXJuIHdyYXBOb2RlKG5vZGUpOwor
fQorCitXZWJLaXRET01FdmVudCogd3JhcChFdmVudCogZXZlbnQpCit7CisgICAgQVNTRVJUKGV2
ZW50KTsKKworICAgIGlmIChpczxVSUV2ZW50PigqZXZlbnQpKSB7CisgICAgICAgIGlmIChpczxN
b3VzZUV2ZW50PigqZXZlbnQpKQorICAgICAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fRVZFTlQo
d3JhcE1vdXNlRXZlbnQoJmRvd25jYXN0PE1vdXNlRXZlbnQ+KCpldmVudCkpKTsKKyAgICAgICAg
aWYgKGlzPEtleWJvYXJkRXZlbnQ+KCpldmVudCkpCisgICAgICAgICAgICByZXR1cm4gV0VCS0lU
X0RPTV9FVkVOVCh3cmFwS2V5Ym9hcmRFdmVudCgmZG93bmNhc3Q8S2V5Ym9hcmRFdmVudD4oKmV2
ZW50KSkpOworICAgICAgICBpZiAoaXM8V2hlZWxFdmVudD4oKmV2ZW50KSkKKyAgICAgICAgICAg
IHJldHVybiBXRUJLSVRfRE9NX0VWRU5UKHdyYXBXaGVlbEV2ZW50KCZkb3duY2FzdDxXaGVlbEV2
ZW50PigqZXZlbnQpKSk7CisgICAgICAgIHJldHVybiBXRUJLSVRfRE9NX0VWRU5UKHdyYXBVSUV2
ZW50KCZkb3duY2FzdDxVSUV2ZW50PigqZXZlbnQpKSk7CisgICAgfQorCisgICAgcmV0dXJuIHdy
YXBFdmVudChldmVudCk7Cit9CisKK1dlYktpdERPTVN0eWxlU2hlZXQqIHdyYXAoU3R5bGVTaGVl
dCogc3R5bGVTaGVldCkKK3sKKyAgICBBU1NFUlQoc3R5bGVTaGVldCk7CisKKyAgICBpZiAoaXM8
Q1NTU3R5bGVTaGVldD4oKnN0eWxlU2hlZXQpKQorICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9T
VFlMRV9TSEVFVCh3cmFwQ1NTU3R5bGVTaGVldChkb3duY2FzdDxDU1NTdHlsZVNoZWV0PihzdHls
ZVNoZWV0KSkpOworICAgIHJldHVybiB3cmFwU3R5bGVTaGVldChzdHlsZVNoZWV0KTsKK30KKwor
V2ViS2l0RE9NSFRNTENvbGxlY3Rpb24qIHdyYXAoSFRNTENvbGxlY3Rpb24qIGNvbGxlY3Rpb24p
Cit7CisgICAgQVNTRVJUKGNvbGxlY3Rpb24pOworCisgICAgaWYgKGlzPEhUTUxPcHRpb25zQ29s
bGVjdGlvbj4oKmNvbGxlY3Rpb24pKQorICAgICAgICByZXR1cm4gV0VCS0lUX0RPTV9IVE1MX0NP
TExFQ1RJT04od3JhcEhUTUxPcHRpb25zQ29sbGVjdGlvbihkb3duY2FzdDxIVE1MT3B0aW9uc0Nv
bGxlY3Rpb24+KGNvbGxlY3Rpb24pKSk7CisgICAgcmV0dXJuIHdyYXBIVE1MQ29sbGVjdGlvbihj
b2xsZWN0aW9uKTsKK30KKworV2ViS2l0RE9NRXZlbnRUYXJnZXQqIHdyYXAoRXZlbnRUYXJnZXQq
IGV2ZW50VGFyZ2V0KQoreworICAgIEFTU0VSVChldmVudFRhcmdldCk7CisKKyAgICBpZiAoaXM8
Tm9kZT4oKmV2ZW50VGFyZ2V0KSkKKyAgICAgICAgcmV0dXJuIFdFQktJVF9ET01fRVZFTlRfVEFS
R0VUKGtpdCgmZG93bmNhc3Q8Tm9kZT4oKmV2ZW50VGFyZ2V0KSkpOworICAgIGlmIChpczxET01X
aW5kb3c+KCpldmVudFRhcmdldCkpCisgICAgICAgIHJldHVybiBXRUJLSVRfRE9NX0VWRU5UX1RB
UkdFVChraXQoJmRvd25jYXN0PERPTVdpbmRvdz4oKmV2ZW50VGFyZ2V0KSkpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitXZWJLaXRET01CbG9iKiB3cmFwKEJsb2IqIGJsb2IpCit7CisgICAg
QVNTRVJUKGJsb2IpOworCisgICAgaWYgKGJsb2ItPmlzRmlsZSgpKQorICAgICAgICByZXR1cm4g
V0VCS0lUX0RPTV9CTE9CKHdyYXBGaWxlKHN0YXRpY19jYXN0PEZpbGUqPihibG9iKSkpOworICAg
IHJldHVybiB3cmFwQmxvYihibG9iKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CitHX0dO
VUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJpdmF0ZUd0ay5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTVByaXZhdGVHdGsuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xN2Q2NzljNTZkYjM4MjhhYTc1OTBkZTM2
MmE4ZWYzMjY4NDIwZjAyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVByaXZhdGVHdGsuaApAQCAt
MCwwICsxLDQ2IEBACisvKgorICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAxIEhhcnJpIFBvcnRl
biAocG9ydGVuQGtkZS5vcmcpCisgKiAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAy
MDA2LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqICBDb3B5cmlnaHQg
KEMpIDIwMDcgU2FtdWVsIFdlaW5pZyA8c2FtQHdlYmtpdC5vcmc+CisgKiAgQ29weXJpZ2h0IChD
KSAyMDA4IEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gPGxrY2xAbGtjbC5uZXQ+CisgKiAg
Q29weXJpZ2h0IChDKSAyMDA4IE1hcnRpbiBTb3RvIDxzb3RvQGZyZWVkZXNrdG9wLm9yZz4KKyAq
ICBDb3B5cmlnaHQgKEMpIDIwMDktMjAxMyBJZ2FsaWEgUy5MLgorICoKKyAqICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMw
MSAgVVNBCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJ3ZWJraXRkb21kZWZpbmVz
LmgiCisKKyNkZWZpbmUgV0VCS0lUX1dBUk5fRkVBVFVSRV9OT1RfUFJFU0VOVChGZWF0dXJlKSBn
X3dhcm5pbmcoIldlYktpdEdUSysgd2FzIG5vdCBjb21waWxlZCB3aXRoIHN1cHBvcnQgZm9yICIg
RmVhdHVyZSk7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIE5vZGU7CitjbGFzcyBFdmVu
dDsKK2NsYXNzIFN0eWxlU2hlZXQ7CitjbGFzcyBIVE1MQ29sbGVjdGlvbjsKK2NsYXNzIEV2ZW50
VGFyZ2V0OworY2xhc3MgQmxvYjsKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNl
IFdlYktpdCB7CitXZWJLaXRET01Ob2RlKiB3cmFwTm9kZUd0ayhXZWJDb3JlOjpOb2RlKik7CitX
ZWJLaXRET01FdmVudCogd3JhcChXZWJDb3JlOjpFdmVudCopOworV2ViS2l0RE9NU3R5bGVTaGVl
dCogd3JhcChXZWJDb3JlOjpTdHlsZVNoZWV0Kik7CitXZWJLaXRET01IVE1MQ29sbGVjdGlvbiog
d3JhcChXZWJDb3JlOjpIVE1MQ29sbGVjdGlvbiopOworV2ViS2l0RE9NRXZlbnRUYXJnZXQqIHdy
YXAoV2ViQ29yZTo6RXZlbnRUYXJnZXQqKTsKK1dlYktpdERPTUJsb2IqIHdyYXAoV2ViQ29yZTo6
QmxvYiopOworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUHJvY2Vzc2lu
Z0luc3RydWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCmluZGV4IGIx
NWZkNzFmMTA3ODQxMWNlMmEwZDY2ZTA3YmI5N2RiZmY1NGI3NDUuLmVjYzg3OGU0MDRlOWU2MmFi
NDNmMTRkNDYwOGY2YzA4YjZkYWU2YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCkBAIC0zNiw2ICsz
Niw4IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
IAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBXZWJLaXRET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24qIGtpdChXZWJDb3JlOjpQcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24qIG9iaikKQEAgLTE2NiwzICsxNjgsNCBAQCBXZWJLaXRET01TdHlsZVNo
ZWV0KiB3ZWJraXRfZG9tX3Byb2Nlc3NpbmdfaW5zdHJ1Y3Rpb25fZ2V0X3NoZWV0KFdlYktpdERP
TVByb2NlcwogICAgIHJldHVybiBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKIH0K
IAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVByb2Nl
c3NpbmdJbnN0cnVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oCmluZGV4IDAw
MTVkYzg0NjhkODNjZDZkZmEyNTNiZGE5MjJjZTk2OGY2NzMwZjguLjFmNjc0ZjQ1OGNhNTU0Njk0
YmI1ODY0YTI0NWQzOWJlNjY5ZDRiZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01Qcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2d0ay9ET00vV2ViS2l0RE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgKQEAgLTQ1LDcgKzQ1LDcg
QEAgc3RydWN0IF9XZWJLaXRET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb25DbGFzcyB7CiAgICAgV2Vi
S2l0RE9NQ2hhcmFjdGVyRGF0YUNsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkg
R1R5cGUKK1dFQktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX3Byb2Nlc3NpbmdfaW5z
dHJ1Y3Rpb25fZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0
X2RvbV9wcm9jZXNzaW5nX2luc3RydWN0aW9uX2dldF90eXBlKHZvaWQpOwogICogQHNlbGY6IEEg
I1dlYktpdERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbgogICoKICAqIFJldHVybnM6IEEgI2djaGFy
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtp
dF9kb21fcHJvY2Vzc2luZ19pbnN0cnVjdGlvbl9nZXRfdGFyZ2V0KFdlYktpdERPTVByb2Nlc3Np
bmdJbnN0cnVjdGlvbiogc2VsZik7CiAKIC8qKgpAQCAtNjIsOCArNjQsMTAgQEAgd2Via2l0X2Rv
bV9wcm9jZXNzaW5nX2luc3RydWN0aW9uX2dldF90YXJnZXQoV2ViS2l0RE9NUHJvY2Vzc2luZ0lu
c3RydWN0aW9uKiBzZWwKICAqIEBzZWxmOiBBICNXZWJLaXRET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rp
b24KICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTVN0eWxlU2hl
ZXQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3Rl
YWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01TdHlsZVNoZWV0KgorV0VCS0lUX0RFUFJFQ0FU
RUQgV2ViS2l0RE9NU3R5bGVTaGVldCoKIHdlYmtpdF9kb21fcHJvY2Vzc2luZ19pbnN0cnVjdGlv
bl9nZXRfc2hlZXQoV2ViS2l0RE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uKiBzZWxmKTsKIAogR19F
TkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01SYW5nZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUmFuZ2UuY3BwCmluZGV4
IDg2MWVlZmE1ODE5MDJlNDljNjJkY2YzMzYyZTg2MTVhZDgyODk3NTEuLmJlYjQzNWJiMTQxYzhm
ZWQ4ZTgyNjM0MWE0ZWRlMDU1YWZmOGUwMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01SYW5nZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTVJhbmdlLmNwcApAQCAtNDAsNiArNDAsOCBAQCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0
RE9NUmFuZ2VQcml2YXRlIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+IGNvcmVPYmplY3Q7
CiB9IFdlYktpdERPTVJhbmdlUHJpdmF0ZTsKIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNB
VElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01SYW5nZSoga2l0KFdlYkNv
cmU6OlJhbmdlKiBvYmopCkBAIC02MzUsMyArNjM3LDQgQEAgZ2NoYXIqIHdlYmtpdF9kb21fcmFu
Z2VfZ2V0X3RleHQoV2ViS2l0RE9NUmFuZ2UqIHNlbGYpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVJhbmdl
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NUmFuZ2UuaAppbmRleCBlNjNhNmI0NGVkNmRhZDRjZjFlNzI3NDg0OGI4ZTczMjFk
YzRmM2FkLi43YjFmYWUwZGFlYTI5Yzc5MzZlNjMxZGUzODU1OWZhMjJhMzEyNjhlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NUmFuZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NUmFuZ2UuaApAQCAtMzcsNDYgKzM3LDY2IEBAIEdf
QkVHSU5fREVDTFMKICNkZWZpbmUgV0VCS0lUX0RPTV9JU19SQU5HRV9DTEFTUyhrbGFzcykgKEdf
VFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfRE9NX1RZUEVfUkFOR0UpKQog
I2RlZmluZSBXRUJLSVRfRE9NX1JBTkdFX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNF
X0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9ET01fVFlQRV9SQU5HRSwgV2ViS2l0RE9NUmFuZ2VD
bGFzcykpCiAKKyNpZm5kZWYgV0VCS0lUX0RJU0FCTEVfREVQUkVDQVRFRAorCiAvKioKICAqIFdF
QktJVF9ET01fUkFOR0VfU1RBUlRfVE9fU1RBUlQ6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjog
VXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9S
QU5HRV9TVEFSVF9UT19TVEFSVCAwCiAKIC8qKgogICogV0VCS0lUX0RPTV9SQU5HRV9TVEFSVF9U
T19FTkQ6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBp
bnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9SQU5HRV9TVEFSVF9UT19FTkQgMQogCiAv
KioKICAqIFdFQktJVF9ET01fUkFOR0VfRU5EX1RPX0VORDoKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRf
RE9NX1JBTkdFX0VORF9UT19FTkQgMgogCiAvKioKICAqIFdFQktJVF9ET01fUkFOR0VfRU5EX1RP
X1NUQVJUOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fUkFOR0VfRU5EX1RPX1NUQVJUIDMKIAog
LyoqCiAgKiBXRUJLSVRfRE9NX1JBTkdFX05PREVfQkVGT1JFOgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJ
VF9ET01fUkFOR0VfTk9ERV9CRUZPUkUgMAogCiAvKioKICAqIFdFQktJVF9ET01fUkFOR0VfTk9E
RV9BRlRFUjoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX1JBTkdFX05PREVfQUZURVIgMQogCiAv
KioKICAqIFdFQktJVF9ET01fUkFOR0VfTk9ERV9CRUZPUkVfQU5EX0FGVEVSOgorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVm
aW5lIFdFQktJVF9ET01fUkFOR0VfTk9ERV9CRUZPUkVfQU5EX0FGVEVSIDIKIAogLyoqCiAgKiBX
RUJLSVRfRE9NX1JBTkdFX05PREVfSU5TSURFOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fUkFO
R0VfTk9ERV9JTlNJREUgMwogCisjZW5kaWYgLyogV0VCS0lUX0RJU0FCTEVfREVQUkVDQVRFRCAq
LworCiBzdHJ1Y3QgX1dlYktpdERPTVJhbmdlIHsKICAgICBXZWJLaXRET01PYmplY3QgcGFyZW50
X2luc3RhbmNlOwogfTsKQEAgLTg1LDcgKzEwNSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NUmFuZ2VD
bGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VC
S0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21fcmFuZ2Vf
Z2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtOTUsOCArMTE1LDEwIEBAIHdlYmtpdF9kb21fcmFu
Z2VfZ2V0X3R5cGUodm9pZCk7CiAgKiBAb2Zmc2V0OiBBICNnbG9uZwogICogQGVycm9yOiAjR0Vy
cm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21fcmFuZ2Vfc2V0X3N0YXJ0KFdlYktpdERPTVJhbmdlKiBzZWxmLCBXZWJLaXRET01O
b2RlKiByZWZOb2RlLCBnbG9uZyBvZmZzZXQsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0x
MDYsOCArMTI4LDEwIEBAIHdlYmtpdF9kb21fcmFuZ2Vfc2V0X3N0YXJ0KFdlYktpdERPTVJhbmdl
KiBzZWxmLCBXZWJLaXRET01Ob2RlKiByZWZOb2RlLCBnbG9uZyBvCiAgKiBAb2Zmc2V0OiBBICNn
bG9uZwogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fcmFuZ2Vfc2V0X2VuZChXZWJLaXRET01SYW5n
ZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogcmVmTm9kZSwgZ2xvbmcgb2Zmc2V0LCBHRXJyb3IqKiBl
cnJvcik7CiAKIC8qKgpAQCAtMTE2LDggKzE0MCwxMCBAQCB3ZWJraXRfZG9tX3JhbmdlX3NldF9l
bmQoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJlZk5vZGUsIGdsb25nIG9m
ZgogICogQHJlZk5vZGU6IEEgI1dlYktpdERPTU5vZGUKICAqIEBlcnJvcjogI0dFcnJvcgogICoK
KyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQK
ICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9t
X3JhbmdlX3NldF9zdGFydF9iZWZvcmUoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5v
ZGUqIHJlZk5vZGUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xMjYsOCArMTUyLDEwIEBA
IHdlYmtpdF9kb21fcmFuZ2Vfc2V0X3N0YXJ0X2JlZm9yZShXZWJLaXRET01SYW5nZSogc2VsZiwg
V2ViS2l0RE9NTm9kZSogcmVmTm9kZSwKICAqIEByZWZOb2RlOiBBICNXZWJLaXRET01Ob2RlCiAg
KiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9yYW5nZV9zZXRfc3RhcnRfYWZ0ZXIoV2ViS2l0RE9NUmFu
Z2UqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJlZk5vZGUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoq
CkBAIC0xMzYsOCArMTY0LDEwIEBAIHdlYmtpdF9kb21fcmFuZ2Vfc2V0X3N0YXJ0X2FmdGVyKFdl
YktpdERPTVJhbmdlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiByZWZOb2RlLCBHCiAgKiBAcmVmTm9k
ZTogQSAjV2ViS2l0RE9NTm9kZQogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fcmFuZ2Vfc2V0X2Vu
ZF9iZWZvcmUoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJlZk5vZGUsIEdF
cnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xNDYsOCArMTc2LDEwIEBAIHdlYmtpdF9kb21fcmFu
Z2Vfc2V0X2VuZF9iZWZvcmUoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJl
Zk5vZGUsIEdFCiAgKiBAcmVmTm9kZTogQSAjV2ViS2l0RE9NTm9kZQogICogQGVycm9yOiAjR0Vy
cm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdl
YmtpdF9kb21fcmFuZ2Vfc2V0X2VuZF9hZnRlcihXZWJLaXRET01SYW5nZSogc2VsZiwgV2ViS2l0
RE9NTm9kZSogcmVmTm9kZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTE1Niw4ICsxODgs
MTAgQEAgd2Via2l0X2RvbV9yYW5nZV9zZXRfZW5kX2FmdGVyKFdlYktpdERPTVJhbmdlKiBzZWxm
LCBXZWJLaXRET01Ob2RlKiByZWZOb2RlLCBHRXIKICAqIEB0b1N0YXJ0OiBBICNnYm9vbGVhbgog
ICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBS
RUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fcmFuZ2VfY29sbGFwc2UoV2ViS2l0RE9NUmFuZ2UqIHNl
bGYsIGdib29sZWFuIHRvU3RhcnQsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xNjYsOCAr
MjAwLDEwIEBAIHdlYmtpdF9kb21fcmFuZ2VfY29sbGFwc2UoV2ViS2l0RE9NUmFuZ2UqIHNlbGYs
IGdib29sZWFuIHRvU3RhcnQsIEdFcnJvcioqIGVycm9yCiAgKiBAcmVmTm9kZTogQSAjV2ViS2l0
RE9NTm9kZQogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6
IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dF
QktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fcmFuZ2Vfc2VsZWN0X25vZGUoV2ViS2l0
RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJlZk5vZGUsIEdFcnJvcioqIGVycm9yKTsK
IAogLyoqCkBAIC0xNzYsOCArMjEyLDEwIEBAIHdlYmtpdF9kb21fcmFuZ2Vfc2VsZWN0X25vZGUo
V2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJlZk5vZGUsIEdFcnJvCiAgKiBA
cmVmTm9kZTogQSAjV2ViS2l0RE9NTm9kZQogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fcmFuZ2Vf
c2VsZWN0X25vZGVfY29udGVudHMoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5vZGUq
IHJlZk5vZGUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xODgsOCArMjI2LDEwIEBAIHdl
YmtpdF9kb21fcmFuZ2Vfc2VsZWN0X25vZGVfY29udGVudHMoV2ViS2l0RE9NUmFuZ2UqIHNlbGYs
IFdlYktpdERPTU5vZGUqIHJlZk5vCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5z
OiBBICNnc2hvcnQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUg
QVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnc2hvcnQKK1dFQktJVF9ERVBSRUNBVEVEIGdz
aG9ydAogd2Via2l0X2RvbV9yYW5nZV9jb21wYXJlX2JvdW5kYXJ5X3BvaW50cyhXZWJLaXRET01S
YW5nZSogc2VsZiwgZ3VzaG9ydCBob3csIFdlYktpdERPTVJhbmdlKiBzb3VyY2VSYW5nZSwgR0Vy
cm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTE5Nyw4ICsyMzcsMTAgQEAgd2Via2l0X2RvbV9yYW5n
ZV9jb21wYXJlX2JvdW5kYXJ5X3BvaW50cyhXZWJLaXRET01SYW5nZSogc2VsZiwgZ3VzaG9ydCBo
b3csIFdlYksKICAqIEBzZWxmOiBBICNXZWJLaXRET01SYW5nZQogICogQGVycm9yOiAjR0Vycm9y
CiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtp
dF9kb21fcmFuZ2VfZGVsZXRlX2NvbnRlbnRzKFdlYktpdERPTVJhbmdlKiBzZWxmLCBHRXJyb3Iq
KiBlcnJvcik7CiAKIC8qKgpAQCAtMjA3LDggKzI0OSwxMCBAQCB3ZWJraXRfZG9tX3JhbmdlX2Rl
bGV0ZV9jb250ZW50cyhXZWJLaXRET01SYW5nZSogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogICog
QGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJL
aXRET01Eb2N1bWVudEZyYWdtZW50CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRG9jdW1lbnRG
cmFnbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTURvY3VtZW50RnJhZ21lbnQqCiB3
ZWJraXRfZG9tX3JhbmdlX2V4dHJhY3RfY29udGVudHMoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIEdF
cnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0yMTcsOCArMjYxLDEwIEBAIHdlYmtpdF9kb21fcmFu
Z2VfZXh0cmFjdF9jb250ZW50cyhXZWJLaXRET01SYW5nZSogc2VsZiwgR0Vycm9yKiogZXJyb3Ip
OwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBB
ICNXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRG9j
dW1lbnRGcmFnbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTURvY3VtZW50RnJhZ21l
bnQqCiB3ZWJraXRfZG9tX3JhbmdlX2Nsb25lX2NvbnRlbnRzKFdlYktpdERPTVJhbmdlKiBzZWxm
LCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMjI3LDggKzI3MywxMCBAQCB3ZWJraXRfZG9t
X3JhbmdlX2Nsb25lX2NvbnRlbnRzKFdlYktpdERPTVJhbmdlKiBzZWxmLCBHRXJyb3IqKiBlcnJv
cik7CiAgKiBAbmV3Tm9kZTogQSAjV2ViS2l0RE9NTm9kZQogICogQGVycm9yOiAjR0Vycm9yCiAg
KgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9k
b21fcmFuZ2VfaW5zZXJ0X25vZGUoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5vZGUq
IG5ld05vZGUsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0yMzcsOCArMjg1LDEwIEBAIHdl
YmtpdF9kb21fcmFuZ2VfaW5zZXJ0X25vZGUoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERP
TU5vZGUqIG5ld05vZGUsIEdFcnJvCiAgKiBAbmV3UGFyZW50OiBBICNXZWJLaXRET01Ob2RlCiAg
KiBAZXJyb3I6ICNHRXJyb3IKICAqCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFT
Y3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgdm9pZAorV0VCS0lUX0RFUFJF
Q0FURUQgdm9pZAogd2Via2l0X2RvbV9yYW5nZV9zdXJyb3VuZF9jb250ZW50cyhXZWJLaXRET01S
YW5nZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogbmV3UGFyZW50LCBHRXJyb3IqKiBlcnJvcik7CiAK
IC8qKgpAQCAtMjQ3LDggKzI5NywxMCBAQCB3ZWJraXRfZG9tX3JhbmdlX3N1cnJvdW5kX2NvbnRl
bnRzKFdlYktpdERPTVJhbmdlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiBuZXdQYXJlbgogICogQGVy
cm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBBICNXZWJLaXRE
T01SYW5nZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTVJhbmdlKgorV0VCS0lUX0RFUFJFQ0FU
RUQgV2ViS2l0RE9NUmFuZ2UqCiB3ZWJraXRfZG9tX3JhbmdlX2Nsb25lX3JhbmdlKFdlYktpdERP
TVJhbmdlKiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMjU3LDggKzMwOSwxMCBA
QCB3ZWJraXRfZG9tX3JhbmdlX2Nsb25lX3JhbmdlKFdlYktpdERPTVJhbmdlKiBzZWxmLCBHRXJy
b3IqKiBlcnJvcik7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hh
cgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJr
aXRfZG9tX3JhbmdlX3RvX3N0cmluZyhXZWJLaXRET01SYW5nZSogc2VsZiwgR0Vycm9yKiogZXJy
b3IpOwogCiAvKioKQEAgLTI2Niw4ICszMjAsMTAgQEAgd2Via2l0X2RvbV9yYW5nZV90b19zdHJp
bmcoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIEdFcnJvcioqIGVycm9yKTsKICAqIEBzZWxmOiBBICNX
ZWJLaXRET01SYW5nZQogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6
IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZv
aWQKK1dFQktJVF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fcmFuZ2VfZGV0YWNoKFdlYktp
dERPTVJhbmdlKiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMjc3LDggKzMzMywx
MCBAQCB3ZWJraXRfZG9tX3JhbmdlX2RldGFjaChXZWJLaXRET01SYW5nZSogc2VsZiwgR0Vycm9y
KiogZXJyb3IpOwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVy
IG5vbmUpOiBBICNXZWJLaXRET01Eb2N1bWVudEZyYWdtZW50CisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2Vi
S2l0RE9NRG9jdW1lbnRGcmFnbWVudCoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTURvY3Vt
ZW50RnJhZ21lbnQqCiB3ZWJraXRfZG9tX3JhbmdlX2NyZWF0ZV9jb250ZXh0dWFsX2ZyYWdtZW50
KFdlYktpdERPTVJhbmdlKiBzZWxmLCBjb25zdCBnY2hhciogaHRtbCwgR0Vycm9yKiogZXJyb3Ip
OwogCiAvKioKQEAgLTI4OCw4ICszNDYsMTAgQEAgd2Via2l0X2RvbV9yYW5nZV9jcmVhdGVfY29u
dGV4dHVhbF9mcmFnbWVudChXZWJLaXRET01SYW5nZSogc2VsZiwgY29uc3QgZ2NoYXIqIGgKICAq
IEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6IEEgI2dzaG9ydAorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIGdzaG9ydAorV0VCS0lUX0RFUFJFQ0FURUQgZ3Nob3J0CiB3ZWJraXRfZG9tX3JhbmdlX2Nv
bXBhcmVfbm9kZShXZWJLaXRET01SYW5nZSogc2VsZiwgV2ViS2l0RE9NTm9kZSogcmVmTm9kZSwg
R0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTI5OSw4ICszNTksMTAgQEAgd2Via2l0X2RvbV9y
YW5nZV9jb21wYXJlX25vZGUoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJl
Zk5vZGUsIEdFcnIKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6IEEgI2dib29s
ZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0
ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFu
CiB3ZWJraXRfZG9tX3JhbmdlX2ludGVyc2VjdHNfbm9kZShXZWJLaXRET01SYW5nZSogc2VsZiwg
V2ViS2l0RE9NTm9kZSogcmVmTm9kZSwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTMxMSw4
ICszNzMsMTAgQEAgd2Via2l0X2RvbV9yYW5nZV9pbnRlcnNlY3RzX25vZGUoV2ViS2l0RE9NUmFu
Z2UqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJlZk5vZGUsIEcKICAqIEBlcnJvcjogI0dFcnJvcgog
ICoKICAqIFJldHVybnM6IEEgI2dzaG9ydAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBK
YXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdzaG9ydAorV0VCS0lU
X0RFUFJFQ0FURUQgZ3Nob3J0CiB3ZWJraXRfZG9tX3JhbmdlX2NvbXBhcmVfcG9pbnQoV2ViS2l0
RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJlZk5vZGUsIGdsb25nIG9mZnNldCwgR0Vy
cm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTMyMyw4ICszODcsMTAgQEAgd2Via2l0X2RvbV9yYW5n
ZV9jb21wYXJlX3BvaW50KFdlYktpdERPTVJhbmdlKiBzZWxmLCBXZWJLaXRET01Ob2RlKiByZWZO
b2RlLCBnbG8KICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6IEEgI2dib29sZWFu
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdib29sZWFuCiB3
ZWJraXRfZG9tX3JhbmdlX2lzX3BvaW50X2luX3JhbmdlKFdlYktpdERPTVJhbmdlKiBzZWxmLCBX
ZWJLaXRET01Ob2RlKiByZWZOb2RlLCBnbG9uZyBvZmZzZXQsIEdFcnJvcioqIGVycm9yKTsKIAog
LyoqCkBAIC0zMzMsOCArMzk5LDEwIEBAIHdlYmtpdF9kb21fcmFuZ2VfaXNfcG9pbnRfaW5fcmFu
Z2UoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIFdlYktpdERPTU5vZGUqIHJlZk5vZGUsCiAgKiBAZXJy
b3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERP
TU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQg
V2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fcmFuZ2VfZ2V0X3N0YXJ0X2NvbnRhaW5lcihXZWJL
aXRET01SYW5nZSogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTM0Myw4ICs0MTEs
MTAgQEAgd2Via2l0X2RvbV9yYW5nZV9nZXRfc3RhcnRfY29udGFpbmVyKFdlYktpdERPTVJhbmdl
KiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1
cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBn
bG9uZwogd2Via2l0X2RvbV9yYW5nZV9nZXRfc3RhcnRfb2Zmc2V0KFdlYktpdERPTVJhbmdlKiBz
ZWxmLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgpAQCAtMzUzLDggKzQyMywxMCBAQCB3ZWJraXRf
ZG9tX3JhbmdlX2dldF9zdGFydF9vZmZzZXQoV2ViS2l0RE9NUmFuZ2UqIHNlbGYsIEdFcnJvcioq
IGVycm9yKTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBu
b25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitX
RUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV9yYW5nZV9nZXRfZW5k
X2NvbnRhaW5lcihXZWJLaXRET01SYW5nZSogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioK
QEAgLTM2Myw4ICs0MzUsMTAgQEAgd2Via2l0X2RvbV9yYW5nZV9nZXRfZW5kX2NvbnRhaW5lcihX
ZWJLaXRET01SYW5nZSogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogICogQGVycm9yOiAjR0Vycm9y
CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lU
X0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fcmFuZ2VfZ2V0X2VuZF9vZmZzZXQoV2ViS2l0
RE9NUmFuZ2UqIHNlbGYsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0zNzMsOCArNDQ3LDEw
IEBAIHdlYmtpdF9kb21fcmFuZ2VfZ2V0X2VuZF9vZmZzZXQoV2ViS2l0RE9NUmFuZ2UqIHNlbGYs
IEdFcnJvcioqIGVycm9yKTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6IEEg
I2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJVF9ERVBSRUNBVEVEIGdi
b29sZWFuCiB3ZWJraXRfZG9tX3JhbmdlX2dldF9jb2xsYXBzZWQoV2ViS2l0RE9NUmFuZ2UqIHNl
bGYsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0zODMsOCArNDU5LDEwIEBAIHdlYmtpdF9k
b21fcmFuZ2VfZ2V0X2NvbGxhcHNlZChXZWJLaXRET01SYW5nZSogc2VsZiwgR0Vycm9yKiogZXJy
b3IpOwogICogQGVycm9yOiAjR0Vycm9yCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUp
OiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJ
VF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX3JhbmdlX2dldF9jb21tb25f
YW5jZXN0b3JfY29udGFpbmVyKFdlYktpdERPTVJhbmdlKiBzZWxmLCBHRXJyb3IqKiBlcnJvcik7
CiAKIC8qKgpAQCAtMzkyLDggKzQ3MCwxMCBAQCB3ZWJraXRfZG9tX3JhbmdlX2dldF9jb21tb25f
YW5jZXN0b3JfY29udGFpbmVyKFdlYktpdERPTVJhbmdlKiBzZWxmLCBHRXJyb3IqKiBlcgogICog
QHNlbGY6IEEgI1dlYktpdERPTVJhbmdlCiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisg
KiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwot
V0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV9y
YW5nZV9nZXRfdGV4dChXZWJLaXRET01SYW5nZSogc2VsZik7CiAKIC8qKgpAQCAtNDAzLDggKzQ4
MywxMCBAQCB3ZWJraXRfZG9tX3JhbmdlX2dldF90ZXh0KFdlYktpdERPTVJhbmdlKiBzZWxmKTsK
ICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFNpbmNlOiAyLjE2CisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9yYW5nZV9leHBhbmQoV2Vi
S2l0RE9NUmFuZ2UqIHNlbGYsIGNvbnN0IGdjaGFyKiB1bml0LCBHRXJyb3IqKiBlcnJvcik7CiAK
IEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NU3R5bGVT
aGVldC5jcHAKaW5kZXggNDQzMmE0OThjOGQ5MDNiZWU1MmMyNzMxOTAzZWQzMTZkMDdjZTY3ZS4u
ZWIyNDA1ODA3NTMwMTgxYmM2MWRiNWEwZDg2MmQ3Y2NkYmMxMDBjNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TVN0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01TdHlsZVNoZWV0LmNwcApAQCAtMzksNiArMzksOCBA
QCB0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NU3R5bGVTaGVldFByaXZhdGUgewogICAgIFJlZlB0
cjxXZWJDb3JlOjpTdHlsZVNoZWV0PiBjb3JlT2JqZWN0OwogfSBXZWJLaXRET01TdHlsZVNoZWV0
UHJpdmF0ZTsKIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBXZWJLaXRET01TdHlsZVNoZWV0KiBraXQoV2ViQ29yZTo6U3R5bGVTaGVl
dCogb2JqKQpAQCAtMzAzLDMgKzMwNSw0IEBAIFdlYktpdERPTU1lZGlhTGlzdCogd2Via2l0X2Rv
bV9zdHlsZV9zaGVldF9nZXRfbWVkaWEoV2ViS2l0RE9NU3R5bGVTaGVldCogc2VsZikKICAgICBy
ZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7CiB9CiAKK0dfR05VQ19FTkRf
SUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01TdHlsZVNoZWV0LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
U3R5bGVTaGVldC5oCmluZGV4IDNkODI1MTJkOWE3MTYzMDA2OTE0NzU2ZDEyMTY1NzY1ZDk4YWIw
ZGMuLmQ2ZDIwNDIzMGIxZTQ0MmI0MDdmZGQ0NDE0YTQ0NGMwYzlkYWE0YWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJL
aXRET01TdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVN0eWxlU2hlZXQuaApAQCAtNDUsNyArNDUsNyBA
QCBzdHJ1Y3QgX1dlYktpdERPTVN0eWxlU2hlZXRDbGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0
Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJF
Q0FURUQgR1R5cGUKIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfZ2V0X3R5cGUodm9pZCk7CiAKIC8q
KgpAQCAtNTMsOCArNTMsMTAgQEAgd2Via2l0X2RvbV9zdHlsZV9zaGVldF9nZXRfdHlwZSh2b2lk
KTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01TdHlsZVNoZWV0CiAgKgogICogUmV0dXJuczogQSAj
Z2NoYXIKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGlu
c3RlYWQKICoqLwotV0VCS0lUX0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgog
d2Via2l0X2RvbV9zdHlsZV9zaGVldF9nZXRfY29udGVudF90eXBlKFdlYktpdERPTVN0eWxlU2hl
ZXQqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtpdF9kb21fc3R5bGVfc2hl
ZXRfZ2V0X2NvbnRlbnRfdHlwZShXZWJLaXRET01TdHlsZVNoZWV0KiBzZWxmKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01TdHlsZVNoZWV0CiAgKgogICogUmV0dXJuczogQSAjZ2Jvb2xlYW4KKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnYm9vbGVhbgorV0VCS0lUX0RFUFJFQ0FURUQgZ2Jvb2xlYW4KIHdlYmtp
dF9kb21fc3R5bGVfc2hlZXRfZ2V0X2Rpc2FibGVkKFdlYktpdERPTVN0eWxlU2hlZXQqIHNlbGYp
OwogCiAvKioKQEAgLTcxLDggKzc1LDEwIEBAIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfZ2V0X2Rp
c2FibGVkKFdlYktpdERPTVN0eWxlU2hlZXQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERP
TVN0eWxlU2hlZXQKICAqIEB2YWx1ZTogQSAjZ2Jvb2xlYW4KICAqCisgKgorICogRGVwcmVjYXRl
ZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkg
dm9pZAorV0VCS0lUX0RFUFJFQ0FURUQgdm9pZAogd2Via2l0X2RvbV9zdHlsZV9zaGVldF9zZXRf
ZGlzYWJsZWQoV2ViS2l0RE9NU3R5bGVTaGVldCogc2VsZiwgZ2Jvb2xlYW4gdmFsdWUpOwogCiAv
KioKQEAgLTgwLDggKzg2LDEwIEBAIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfc2V0X2Rpc2FibGVk
KFdlYktpdERPTVN0eWxlU2hlZXQqIHNlbGYsIGdib29sZWFuIHZhbHVlKTsKICAqIEBzZWxmOiBB
ICNXZWJLaXRET01TdHlsZVNoZWV0CiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBB
ICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9E
RVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX3N0eWxlX3NoZWV0X2dldF9vd25l
cl9ub2RlKFdlYktpdERPTVN0eWxlU2hlZXQqIHNlbGYpOwogCiAvKioKQEAgLTg5LDggKzk3LDEw
IEBAIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfZ2V0X293bmVyX25vZGUoV2ViS2l0RE9NU3R5bGVT
aGVldCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NU3R5bGVTaGVldAogICoKICAqIFJl
dHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NU3R5bGVTaGVldAorICoKKyAqIERl
cHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJL
SVRfQVBJIFdlYktpdERPTVN0eWxlU2hlZXQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01T
dHlsZVNoZWV0Kgogd2Via2l0X2RvbV9zdHlsZV9zaGVldF9nZXRfcGFyZW50X3N0eWxlX3NoZWV0
KFdlYktpdERPTVN0eWxlU2hlZXQqIHNlbGYpOwogCiAvKioKQEAgLTk4LDggKzEwOCwxMCBAQCB3
ZWJraXRfZG9tX3N0eWxlX3NoZWV0X2dldF9wYXJlbnRfc3R5bGVfc2hlZXQoV2ViS2l0RE9NU3R5
bGVTaGVldCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NU3R5bGVTaGVldAogICoKICAq
IFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3Jp
cHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVD
QVRFRCBnY2hhcioKIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfZ2V0X2hyZWYoV2ViS2l0RE9NU3R5
bGVTaGVldCogc2VsZik7CiAKIC8qKgpAQCAtMTA3LDggKzExOSwxMCBAQCB3ZWJraXRfZG9tX3N0
eWxlX3NoZWV0X2dldF9ocmVmKFdlYktpdERPTVN0eWxlU2hlZXQqIHNlbGYpOwogICogQHNlbGY6
IEEgI1dlYktpdERPTVN0eWxlU2hlZXQKICAqCiAgKiBSZXR1cm5zOiBBICNnY2hhcgorICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGdjaGFyKgorV0VCS0lUX0RFUFJFQ0FURUQgZ2NoYXIqCiB3ZWJraXRfZG9tX3N0
eWxlX3NoZWV0X2dldF90aXRsZShXZWJLaXRET01TdHlsZVNoZWV0KiBzZWxmKTsKIAogLyoqCkBA
IC0xMTYsOCArMTMwLDEwIEBAIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfZ2V0X3RpdGxlKFdlYktp
dERPTVN0eWxlU2hlZXQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTVN0eWxlU2hlZXQK
ICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTU1lZGlhTGlzdAor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU1lZGlhTGlzdCoKK1dFQktJVF9ERVBSRUNBVEVEIFdl
YktpdERPTU1lZGlhTGlzdCoKIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfZ2V0X21lZGlhKFdlYktp
dERPTVN0eWxlU2hlZXQqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVN0
eWxlU2hlZXRMaXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01TdHlsZVNoZWV0TGlzdC5jcHAKaW5kZXggZGFmODhhMmVk
NjYwOWE3NGFmYTljMmFmNWQxYmUxODhhMWQzOGU4YS4uNjFkOGRiNjk2NmYyZGUxNjQ0YTk0NTRh
YmNlM2YzNDNlZjE2NDBlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVN0eWxlU2hlZXRMaXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NU3R5bGVTaGVldExpc3QuY3BwCkBAIC0zOCw2ICszOCw4IEBAIHR5cGVkZWYgc3RydWN0
IF9XZWJLaXRET01TdHlsZVNoZWV0TGlzdFByaXZhdGUgewogICAgIFJlZlB0cjxXZWJDb3JlOjpT
dHlsZVNoZWV0TGlzdD4gY29yZU9iamVjdDsKIH0gV2ViS2l0RE9NU3R5bGVTaGVldExpc3RQcml2
YXRlOwogCitHX0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIFdlYktpdERPTVN0eWxlU2hlZXRMaXN0KiBraXQoV2ViQ29yZTo6U3R5bGVTaGVl
dExpc3QqIG9iaikKQEAgLTE1MCwzICsxNTIsNCBAQCBndWxvbmcgd2Via2l0X2RvbV9zdHlsZV9z
aGVldF9saXN0X2dldF9sZW5ndGgoV2ViS2l0RE9NU3R5bGVTaGVldExpc3QqIHNlbGYpCiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL1dlYktpdERPTVN0eWxlU2hlZXRMaXN0LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NU3R5bGVTaGVldExpc3QuaAppbmRl
eCAxYmU5ZGEyNDM5NzIwNGVlZTNhZTIzZjI1NTM3ZDBkZjIyMWM3YjdkLi5kNjQwNDc1YzA3MTAx
OTQ3NTBiYzQ0NGRiNGI3NmY0MzI3YzczYWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NU3R5bGVTaGVldExp
c3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NU3R5bGVTaGVldExpc3QuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3Qg
X1dlYktpdERPTVN0eWxlU2hlZXRMaXN0Q2xhc3MgewogICAgIFdlYktpdERPTU9iamVjdENsYXNz
IHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dFQktJVF9ERVBSRUNBVEVE
IEdUeXBlCiB3ZWJraXRfZG9tX3N0eWxlX3NoZWV0X2xpc3RfZ2V0X3R5cGUodm9pZCk7CiAKIC8q
KgpAQCAtNTQsOCArNTQsMTAgQEAgd2Via2l0X2RvbV9zdHlsZV9zaGVldF9saXN0X2dldF90eXBl
KHZvaWQpOwogICogQGluZGV4OiBBICNndWxvbmcKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIg
ZnVsbCk6IEEgI1dlYktpdERPTVN0eWxlU2hlZXQKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01T
dHlsZVNoZWV0KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NU3R5bGVTaGVldCoKIHdlYmtp
dF9kb21fc3R5bGVfc2hlZXRfbGlzdF9pdGVtKFdlYktpdERPTVN0eWxlU2hlZXRMaXN0KiBzZWxm
LCBndWxvbmcgaW5kZXgpOwogCiAvKioKQEAgLTYzLDggKzY1LDEwIEBAIHdlYmtpdF9kb21fc3R5
bGVfc2hlZXRfbGlzdF9pdGVtKFdlYktpdERPTVN0eWxlU2hlZXRMaXN0KiBzZWxmLCBndWxvbmcg
aW5kZXgpOwogICogQHNlbGY6IEEgI1dlYktpdERPTVN0eWxlU2hlZXRMaXN0CiAgKgogICogUmV0
dXJuczogQSAjZ3Vsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRD
b3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ3Vsb25nCitXRUJLSVRfREVQUkVDQVRF
RCBndWxvbmcKIHdlYmtpdF9kb21fc3R5bGVfc2hlZXRfbGlzdF9nZXRfbGVuZ3RoKFdlYktpdERP
TVN0eWxlU2hlZXRMaXN0KiBzZWxmKTsKIAogR19FTkRfREVDTFMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01U
ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3Rr
L0RPTS9XZWJLaXRET01UZXh0LmNwcAppbmRleCBkYjU4NDQ5NTJlZWYxZTVkMTdlNjc1ZjI2N2Zj
MGYyNTZjMmQ1MDYzLi45NjIwODdhMjZjMDQ4NjQ2MWM0NDMxMzY0ZGFhYjM4YTg3NmMyNDcyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVRleHQuY3BwCkBAIC0zNSw2ICszNSw4
IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAor
R19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBXZWJLaXRET01UZXh0KiBraXQoV2ViQ29yZTo6VGV4dCogb2JqKQpAQCAtMTU3LDMgKzE1OSw0
IEBAIGdjaGFyKiB3ZWJraXRfZG9tX3RleHRfZ2V0X3dob2xlX3RleHQoV2ViS2l0RE9NVGV4dCog
c2VsZikKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNB
VElPTlM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVGV4dC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVRleHQuaAppbmRleCA1NGU2MmQ1
ZTBkZDliNjlkZjM1MjkyNmM1YTY4Y2YxZGRhNDlhOGU5Li41NWY5ZjQ5ZGRjOGVjNzc3ZDk0OWRi
ZTRkYjlmNTY2OWE1N2E3NDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVGV4dC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01UZXh0
LmgKQEAgLTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01UZXh0Q2xhc3MgewogICAgIFdl
YktpdERPTUNoYXJhY3RlckRhdGFDbGFzcyBwYXJlbnRfY2xhc3M7CiB9OwogCi1XRUJLSVRfQVBJ
IEdUeXBlCitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZQogd2Via2l0X2RvbV90ZXh0X2dldF90eXBl
KHZvaWQpOwogCiAvKioKQEAgLTU1LDggKzU1LDEwIEBAIHdlYmtpdF9kb21fdGV4dF9nZXRfdHlw
ZSh2b2lkKTsKICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBu
b25lKTogQSAjV2ViS2l0RE9NVGV4dAorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTVRleHQqCitX
RUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01UZXh0Kgogd2Via2l0X2RvbV90ZXh0X3NwbGl0X3Rl
eHQoV2ViS2l0RE9NVGV4dCogc2VsZiwgZ3Vsb25nIG9mZnNldCwgR0Vycm9yKiogZXJyb3IpOwog
CiAvKioKQEAgLTY0LDggKzY2LDEwIEBAIHdlYmtpdF9kb21fdGV4dF9zcGxpdF90ZXh0KFdlYktp
dERPTVRleHQqIHNlbGYsIGd1bG9uZyBvZmZzZXQsIEdFcnJvcioqIGVycm9yKTsKICAqIEBzZWxm
OiBBICNXZWJLaXRET01UZXh0CiAgKgogICogUmV0dXJuczogQSAjZ2NoYXIKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSBnY2hhcioKK1dFQktJVF9ERVBSRUNBVEVEIGdjaGFyKgogd2Via2l0X2RvbV90ZXh0X2dl
dF93aG9sZV90ZXh0KFdlYktpdERPTVRleHQqIHNlbGYpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTVRyZWVXYWxrZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVRyZWVXYWxrZXIuY3BwCmluZGV4IDBhM2Fm
NWQxMmE4NTVlYjdhMWY0NjNjMTBlOTdjZjRkZTYzMDcyYjguLjg2NzYzOTE0NmRhOTM5MmZjMDU5
MDBkODZlMjBhNmYwODE0OGNlYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01UcmVlV2Fsa2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2Vi
S2l0RE9NVHJlZVdhbGtlci5jcHAKQEAgLTM5LDYgKzM5LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dl
YktpdERPTVRyZWVXYWxrZXJQcml2YXRlIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6VHJlZVdhbGtl
cj4gY29yZU9iamVjdDsKIH0gV2ViS2l0RE9NVHJlZVdhbGtlclByaXZhdGU7CiAKK0dfR05VQ19C
RUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0
RE9NVHJlZVdhbGtlcioga2l0KFdlYkNvcmU6OlRyZWVXYWxrZXIqIG9iaikKQEAgLTMyMCwzICsz
MjIsNCBAQCB2b2lkIHdlYmtpdF9kb21fdHJlZV93YWxrZXJfc2V0X2N1cnJlbnRfbm9kZShXZWJL
aXRET01UcmVlV2Fsa2VyKiBzZWxmLCBXZWJLaXRETwogICAgIGl0ZW0tPnNldEN1cnJlbnROb2Rl
KCpjb252ZXJ0ZWRWYWx1ZSk7CiB9CiAKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01UcmVlV2Fsa2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVHJlZVdhbGtlci5oCmluZGV4IDg2
Zjk2MDEyNTU0NDg1YjEwM2U0Y2ZjZTgyNDRkYjQ5ZWVhMjZhYmEuLjA1NzA4ZDdmYzczMzJkMTg3
M2IyMjA4MTIzMjQxNjVjZDM0MDcwMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01UcmVlV2Fsa2VyLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTVRyZWVXYWxrZXIuaApAQCAtNDUsNyArNDUsNyBAQCBzdHJ1Y3QgX1dlYktpdERPTVRy
ZWVXYWxrZXJDbGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwog
fTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9k
b21fdHJlZV93YWxrZXJfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNTMsOCArNTMsMTAgQEAg
d2Via2l0X2RvbV90cmVlX3dhbGtlcl9nZXRfdHlwZSh2b2lkKTsKICAqIEBzZWxmOiBBICNXZWJL
aXRET01UcmVlV2Fsa2VyCiAgKgogICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJL
aXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNB
VEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9tX3RyZWVfd2Fsa2VyX3BhcmVudF9ub2RlKFdl
YktpdERPTVRyZWVXYWxrZXIqIHNlbGYpOwogCiAvKioKQEAgLTYyLDggKzY0LDEwIEBAIHdlYmtp
dF9kb21fdHJlZV93YWxrZXJfcGFyZW50X25vZGUoV2ViS2l0RE9NVHJlZVdhbGtlciogc2VsZik7
CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVHJlZVdhbGtlcgogICoKICAqIFJldHVybnM6ICh0cmFu
c2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5v
ZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV90cmVlX3dh
bGtlcl9maXJzdF9jaGlsZChXZWJLaXRET01UcmVlV2Fsa2VyKiBzZWxmKTsKIAogLyoqCkBAIC03
MSw4ICs3NSwxMCBAQCB3ZWJraXRfZG9tX3RyZWVfd2Fsa2VyX2ZpcnN0X2NoaWxkKFdlYktpdERP
TVRyZWVXYWxrZXIqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTVRyZWVXYWxrZXIKICAq
CiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBE
ZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VC
S0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoK
IHdlYmtpdF9kb21fdHJlZV93YWxrZXJfbGFzdF9jaGlsZChXZWJLaXRET01UcmVlV2Fsa2VyKiBz
ZWxmKTsKIAogLyoqCkBAIC04MCw4ICs4NiwxMCBAQCB3ZWJraXRfZG9tX3RyZWVfd2Fsa2VyX2xh
c3RfY2hpbGQoV2ViS2l0RE9NVHJlZVdhbGtlciogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NVHJlZVdhbGtlcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0
RE9NTm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkg
aW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRF
RCBXZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV90cmVlX3dhbGtlcl9wcmV2aW91c19zaWJsaW5n
KFdlYktpdERPTVRyZWVXYWxrZXIqIHNlbGYpOwogCiAvKioKQEAgLTg5LDggKzk3LDEwIEBAIHdl
YmtpdF9kb21fdHJlZV93YWxrZXJfcHJldmlvdXNfc2libGluZyhXZWJLaXRET01UcmVlV2Fsa2Vy
KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01UcmVlV2Fsa2VyCiAgKgogICogUmV0dXJu
czogKHRyYW5zZmVyIG5vbmUpOiBBICNXZWJLaXRET01Ob2RlCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2Vi
S2l0RE9NTm9kZSoKK1dFQktJVF9ERVBSRUNBVEVEIFdlYktpdERPTU5vZGUqCiB3ZWJraXRfZG9t
X3RyZWVfd2Fsa2VyX25leHRfc2libGluZyhXZWJLaXRET01UcmVlV2Fsa2VyKiBzZWxmKTsKIAog
LyoqCkBAIC05OCw4ICsxMDgsMTAgQEAgd2Via2l0X2RvbV90cmVlX3dhbGtlcl9uZXh0X3NpYmxp
bmcoV2ViS2l0RE9NVHJlZVdhbGtlciogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVHJl
ZVdhbGtlcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9k
ZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJL
aXRET01Ob2RlKgogd2Via2l0X2RvbV90cmVlX3dhbGtlcl9wcmV2aW91c19ub2RlKFdlYktpdERP
TVRyZWVXYWxrZXIqIHNlbGYpOwogCiAvKioKQEAgLTEwNyw4ICsxMTksMTAgQEAgd2Via2l0X2Rv
bV90cmVlX3dhbGtlcl9wcmV2aW91c19ub2RlKFdlYktpdERPTVRyZWVXYWxrZXIqIHNlbGYpOwog
ICogQHNlbGY6IEEgI1dlYktpdERPTVRyZWVXYWxrZXIKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNm
ZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2Ug
SmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2Rl
KgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fdHJlZV93YWxr
ZXJfbmV4dF9ub2RlKFdlYktpdERPTVRyZWVXYWxrZXIqIHNlbGYpOwogCiAvKioKQEAgLTExNiw4
ICsxMzAsMTAgQEAgd2Via2l0X2RvbV90cmVlX3dhbGtlcl9uZXh0X25vZGUoV2ViS2l0RE9NVHJl
ZVdhbGtlciogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVHJlZVdhbGtlcgogICoKICAq
IFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9NTm9kZQorICoKKyAqIERlcHJl
Y2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRf
QVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJLaXRET01Ob2RlKgogd2Vi
a2l0X2RvbV90cmVlX3dhbGtlcl9nZXRfcm9vdChXZWJLaXRET01UcmVlV2Fsa2VyKiBzZWxmKTsK
IAogLyoqCkBAIC0xMjUsOCArMTQxLDEwIEBAIHdlYmtpdF9kb21fdHJlZV93YWxrZXJfZ2V0X3Jv
b3QoV2ViS2l0RE9NVHJlZVdhbGtlciogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVHJl
ZVdhbGtlcgogICoKICAqIFJldHVybnM6IEEgI2d1bG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGd1bG9u
ZworV0VCS0lUX0RFUFJFQ0FURUQgZ3Vsb25nCiB3ZWJraXRfZG9tX3RyZWVfd2Fsa2VyX2dldF93
aGF0X3RvX3Nob3coV2ViS2l0RE9NVHJlZVdhbGtlciogc2VsZik7CiAKIC8qKgpAQCAtMTM0LDgg
KzE1MiwxMCBAQCB3ZWJraXRfZG9tX3RyZWVfd2Fsa2VyX2dldF93aGF0X3RvX3Nob3coV2ViS2l0
RE9NVHJlZVdhbGtlciogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVHJlZVdhbGtlcgog
ICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9NTm9kZUZpbHRlcgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGVGaWx0ZXIqCitXRUJLSVRfREVQUkVDQVRFRCBX
ZWJLaXRET01Ob2RlRmlsdGVyKgogd2Via2l0X2RvbV90cmVlX3dhbGtlcl9nZXRfZmlsdGVyKFdl
YktpdERPTVRyZWVXYWxrZXIqIHNlbGYpOwogCiAvKioKQEAgLTE0Myw4ICsxNjMsMTAgQEAgd2Vi
a2l0X2RvbV90cmVlX3dhbGtlcl9nZXRfZmlsdGVyKFdlYktpdERPTVRyZWVXYWxrZXIqIHNlbGYp
OwogICogQHNlbGY6IEEgI1dlYktpdERPTVRyZWVXYWxrZXIKICAqCiAgKiBSZXR1cm5zOiAodHJh
bnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01O
b2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21fdHJlZV93
YWxrZXJfZ2V0X2N1cnJlbnRfbm9kZShXZWJLaXRET01UcmVlV2Fsa2VyKiBzZWxmKTsKIAogLyoq
CkBAIC0xNTMsOCArMTc1LDEwIEBAIHdlYmtpdF9kb21fdHJlZV93YWxrZXJfZ2V0X2N1cnJlbnRf
bm9kZShXZWJLaXRET01UcmVlV2Fsa2VyKiBzZWxmKTsKICAqIEB2YWx1ZTogQSAjV2ViS2l0RE9N
Tm9kZQogICogQGVycm9yOiAjR0Vycm9yCiAgKgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVz
ZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIHZvaWQKK1dFQktJ
VF9ERVBSRUNBVEVEIHZvaWQKIHdlYmtpdF9kb21fdHJlZV93YWxrZXJfc2V0X2N1cnJlbnRfbm9k
ZShXZWJLaXRET01UcmVlV2Fsa2VyKiBzZWxmLCBXZWJLaXRET01Ob2RlKiB2YWx1ZSwgR0Vycm9y
KiogZXJyb3IpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVVJRXZlbnQuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktp
dERPTVVJRXZlbnQuY3BwCmluZGV4IGIwMDhjNGYwNjY0ZmQ1YzIzNDBkYTZlNzhiMjY1ZTczNmIw
YWRmOGQuLjlhZTAxMjM5YTgyNmNmOGVmMmQ0MDYyMGQ1YzQzNzRiNjAyNDlkZmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01VSUV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVUlFdmVudC5jcHAKQEAgLTM0LDYgKzM0LDgg
QEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCitH
X0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IFdlYktpdERPTVVJRXZlbnQqIGtpdChXZWJDb3JlOjpVSUV2ZW50KiBvYmopCkBAIC0yNzcsMyAr
Mjc5LDQgQEAgZ2xvbmcgd2Via2l0X2RvbV91aV9ldmVudF9nZXRfcGFnZV95KFdlYktpdERPTVVJ
RXZlbnQqIHNlbGYpCiAgICAgZ2xvbmcgcmVzdWx0ID0gaXRlbS0+cGFnZVkoKTsKICAgICByZXR1
cm4gcmVzdWx0OwogfQorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTVVJRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01VSUV2ZW50LmgKaW5kZXggN2YwM2U2NTg0YWUxOTY3ZTI2
ZjBhNGJiNGFkN2FiMmVjY2UxMDUzMi4uN2Q5OGNlMThkYjIxZTBkNTNlOGM0MmNlMDZlZjYzMGUy
ODU3ZTE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVVJRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NVUlFdmVudC5oCkBA
IC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9NVUlFdmVudENsYXNzIHsKICAgICBXZWJL
aXRET01FdmVudENsYXNzIHBhcmVudF9jbGFzczsKIH07CiAKLVdFQktJVF9BUEkgR1R5cGUKK1dF
QktJVF9ERVBSRUNBVEVEIEdUeXBlCiB3ZWJraXRfZG9tX3VpX2V2ZW50X2dldF90eXBlKHZvaWQp
OwogCiAvKioKQEAgLTU3LDggKzU3LDEwIEBAIHdlYmtpdF9kb21fdWlfZXZlbnRfZ2V0X3R5cGUo
dm9pZCk7CiAgKiBAdmlldzogQSAjV2ViS2l0RE9NRE9NV2luZG93CiAgKiBAZGV0YWlsOiBBICNn
bG9uZwogICoKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3
ZWJraXRfZG9tX3VpX2V2ZW50X2luaXRfdWlfZXZlbnQoV2ViS2l0RE9NVUlFdmVudCogc2VsZiwg
Y29uc3QgZ2NoYXIqIHR5cGUsIGdib29sZWFuIGNhbkJ1YmJsZSwgZ2Jvb2xlYW4gY2FuY2VsYWJs
ZSwgV2ViS2l0RE9NRE9NV2luZG93KiB2aWV3LCBnbG9uZyBkZXRhaWwpOwogCiAvKioKQEAgLTY2
LDggKzY4LDEwIEBAIHdlYmtpdF9kb21fdWlfZXZlbnRfaW5pdF91aV9ldmVudChXZWJLaXRET01V
SUV2ZW50KiBzZWxmLCBjb25zdCBnY2hhciogdHlwZSwgZ2JvCiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NVUlFdmVudAogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBmdWxsKTogQSAjV2ViS2l0RE9N
RE9NV2luZG93CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgV2ViS2l0RE9NRE9NV2luZG93KgorV0VCS0lUX0RF
UFJFQ0FURUQgV2ViS2l0RE9NRE9NV2luZG93Kgogd2Via2l0X2RvbV91aV9ldmVudF9nZXRfdmll
dyhXZWJLaXRET01VSUV2ZW50KiBzZWxmKTsKIAogLyoqCkBAIC03NSw4ICs3OSwxMCBAQCB3ZWJr
aXRfZG9tX3VpX2V2ZW50X2dldF92aWV3KFdlYktpdERPTVVJRXZlbnQqIHNlbGYpOwogICogQHNl
bGY6IEEgI1dlYktpdERPTVVJRXZlbnQKICAqCiAgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAq
IERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogKiovCi1X
RUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRFRCBnbG9uZwogd2Via2l0X2RvbV91aV9l
dmVudF9nZXRfZGV0YWlsKFdlYktpdERPTVVJRXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTg0LDgg
KzkwLDEwIEBAIHdlYmtpdF9kb21fdWlfZXZlbnRfZ2V0X2RldGFpbChXZWJLaXRET01VSUV2ZW50
KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01VSUV2ZW50CiAgKgogICogUmV0dXJuczog
QSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJ
IGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcK
IHdlYmtpdF9kb21fdWlfZXZlbnRfZ2V0X2tleV9jb2RlKFdlYktpdERPTVVJRXZlbnQqIHNlbGYp
OwogCiAvKioKQEAgLTkzLDggKzEwMSwxMCBAQCB3ZWJraXRfZG9tX3VpX2V2ZW50X2dldF9rZXlf
Y29kZShXZWJLaXRET01VSUV2ZW50KiBzZWxmKTsKICAqIEBzZWxmOiBBICNXZWJLaXRET01VSUV2
ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBnbG9uZworV0VC
S0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21fdWlfZXZlbnRfZ2V0X2NoYXJfY29kZShX
ZWJLaXRET01VSUV2ZW50KiBzZWxmKTsKIAogLyoqCkBAIC0xMDIsOCArMTEyLDEwIEBAIHdlYmtp
dF9kb21fdWlfZXZlbnRfZ2V0X2NoYXJfY29kZShXZWJLaXRET01VSUV2ZW50KiBzZWxmKTsKICAq
IEBzZWxmOiBBICNXZWJLaXRET01VSUV2ZW50CiAgKgogICogUmV0dXJuczogQSAjZ2xvbmcKKyAq
CisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoq
LwotV0VCS0lUX0FQSSBnbG9uZworV0VCS0lUX0RFUFJFQ0FURUQgZ2xvbmcKIHdlYmtpdF9kb21f
dWlfZXZlbnRfZ2V0X2xheWVyX3goV2ViS2l0RE9NVUlFdmVudCogc2VsZik7CiAKIC8qKgpAQCAt
MTExLDggKzEyMywxMCBAQCB3ZWJraXRfZG9tX3VpX2V2ZW50X2dldF9sYXllcl94KFdlYktpdERP
TVVJRXZlbnQqIHNlbGYpOwogICogQHNlbGY6IEEgI1dlYktpdERPTVVJRXZlbnQKICAqCiAgKiBS
ZXR1cm5zOiBBICNnbG9uZworICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0
Q29yZSBBUEkgaW5zdGVhZAogKiovCi1XRUJLSVRfQVBJIGdsb25nCitXRUJLSVRfREVQUkVDQVRF
RCBnbG9uZwogd2Via2l0X2RvbV91aV9ldmVudF9nZXRfbGF5ZXJfeShXZWJLaXRET01VSUV2ZW50
KiBzZWxmKTsKIAogLyoqCkBAIC0xMjAsOCArMTM0LDEwIEBAIHdlYmtpdF9kb21fdWlfZXZlbnRf
Z2V0X2xheWVyX3koV2ViS2l0RE9NVUlFdmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2ViS2l0
RE9NVUlFdmVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xv
bmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX3VpX2V2ZW50X2dldF9wYWdl
X3goV2ViS2l0RE9NVUlFdmVudCogc2VsZik7CiAKIC8qKgpAQCAtMTI5LDggKzE0NSwxMCBAQCB3
ZWJraXRfZG9tX3VpX2V2ZW50X2dldF9wYWdlX3goV2ViS2l0RE9NVUlFdmVudCogc2VsZik7CiAg
KiBAc2VsZjogQSAjV2ViS2l0RE9NVUlFdmVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9t
X3VpX2V2ZW50X2dldF9wYWdlX3koV2ViS2l0RE9NVUlFdmVudCogc2VsZik7CiAKIEdfRU5EX0RF
Q0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NV2hlZWxFdmVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NV2hlZWxFdmVudC5jcHAK
aW5kZXggNWM0YTA5YTgzOTcxZjVmYzkzZmM5NTNhY2Q5NjY1YTU0ZmM4ZjdkZi4uMGUxYmE2ZGE1
NWMxYzQzZWVlNjRhZTlhMWVkNWFiNjQ0NGY5ZjRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVdoZWVsRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Z3RrL0RPTS9XZWJLaXRET01XaGVlbEV2ZW50LmNwcApAQCAtMzMsNiArMzMsOCBAQAogI2luY2x1
ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJ
Tl9JR05PUkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9N
V2hlZWxFdmVudCoga2l0KFdlYkNvcmU6OldoZWVsRXZlbnQqIG9iaikKQEAgLTE1OSwzICsxNjEs
NCBAQCBnbG9uZyB3ZWJraXRfZG9tX3doZWVsX2V2ZW50X2dldF93aGVlbF9kZWx0YShXZWJLaXRE
T01XaGVlbEV2ZW50KiBzZWxmKQogICAgIGdsb25nIHJlc3VsdCA9IGl0ZW0tPndoZWVsRGVsdGEo
KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05T
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvRE9NL1dlYktpdERPTVdoZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01XaGVlbEV2ZW50LmgKaW5kZXgg
ZmEyZjQ4NWEwZjRjYzkxNmQwZTA4OTRkYTE3NTU5MDYwNDAxODk1ZS4uMTI4NTJmNTNlYTM3NjYw
MjFiNjVkOTg4ZjFhNDE4MmM4MjFjY2EzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVdoZWVsRXZlbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NV2hlZWxFdmVudC5oCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBfV2ViS2l0RE9N
V2hlZWxFdmVudENsYXNzIHsKICAgICBXZWJLaXRET01Nb3VzZUV2ZW50Q2xhc3MgcGFyZW50X2Ns
YXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdl
YmtpdF9kb21fd2hlZWxfZXZlbnRfZ2V0X3R5cGUodm9pZCk7CiAKIC8qKgpAQCAtNjMsOCArNjMs
MTAgQEAgd2Via2l0X2RvbV93aGVlbF9ldmVudF9nZXRfdHlwZSh2b2lkKTsKICAqIEBzaGlmdEtl
eTogQSAjZ2Jvb2xlYW4KICAqIEBtZXRhS2V5OiBBICNnYm9vbGVhbgogICoKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lU
X0FQSSB2b2lkCitXRUJLSVRfREVQUkVDQVRFRCB2b2lkCiB3ZWJraXRfZG9tX3doZWVsX2V2ZW50
X2luaXRfd2hlZWxfZXZlbnQoV2ViS2l0RE9NV2hlZWxFdmVudCogc2VsZiwgZ2xvbmcgd2hlZWxE
ZWx0YVgsIGdsb25nIHdoZWVsRGVsdGFZLCBXZWJLaXRET01ET01XaW5kb3cqIHZpZXcsIGdsb25n
IHNjcmVlblgsIGdsb25nIHNjcmVlblksIGdsb25nIGNsaWVudFgsIGdsb25nIGNsaWVudFksIGdi
b29sZWFuIGN0cmxLZXksIGdib29sZWFuIGFsdEtleSwgZ2Jvb2xlYW4gc2hpZnRLZXksIGdib29s
ZWFuIG1ldGFLZXkpOwogCiAvKioKQEAgLTcyLDggKzc0LDEwIEBAIHdlYmtpdF9kb21fd2hlZWxf
ZXZlbnRfaW5pdF93aGVlbF9ldmVudChXZWJLaXRET01XaGVlbEV2ZW50KiBzZWxmLCBnbG9uZyB3
aGVlbERlCiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NV2hlZWxFdmVudAogICoKICAqIFJldHVybnM6
IEEgI2dsb25nCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQ
SSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25n
CiB3ZWJraXRfZG9tX3doZWVsX2V2ZW50X2dldF93aGVlbF9kZWx0YV94KFdlYktpdERPTVdoZWVs
RXZlbnQqIHNlbGYpOwogCiAvKioKQEAgLTgxLDggKzg1LDEwIEBAIHdlYmtpdF9kb21fd2hlZWxf
ZXZlbnRfZ2V0X3doZWVsX2RlbHRhX3goV2ViS2l0RE9NV2hlZWxFdmVudCogc2VsZik7CiAgKiBA
c2VsZjogQSAjV2ViS2l0RE9NV2hlZWxFdmVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9t
X3doZWVsX2V2ZW50X2dldF93aGVlbF9kZWx0YV95KFdlYktpdERPTVdoZWVsRXZlbnQqIHNlbGYp
OwogCiAvKioKQEAgLTkwLDggKzk2LDEwIEBAIHdlYmtpdF9kb21fd2hlZWxfZXZlbnRfZ2V0X3do
ZWVsX2RlbHRhX3koV2ViS2l0RE9NV2hlZWxFdmVudCogc2VsZik7CiAgKiBAc2VsZjogQSAjV2Vi
S2l0RE9NV2hlZWxFdmVudAogICoKICAqIFJldHVybnM6IEEgI2dsb25nCisgKgorICogRGVwcmVj
YXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9B
UEkgZ2xvbmcKK1dFQktJVF9ERVBSRUNBVEVEIGdsb25nCiB3ZWJraXRfZG9tX3doZWVsX2V2ZW50
X2dldF93aGVlbF9kZWx0YShXZWJLaXRET01XaGVlbEV2ZW50KiBzZWxmKTsKIAogR19FTkRfREVD
TFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvZ3RrL0RPTS9XZWJLaXRET01YUGF0aEV4cHJlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVhQYXRoRXhwcmVz
c2lvbi5jcHAKaW5kZXggMTQ2YTk2YTM3YjBhOGQxMWJjZGZjOTI2ZTM1ODRiMDIxZTdkMGUyZC4u
OTYyYjZlNDI2NTRlN2ExZmMzNDBkMmMxYzRjY2JkZTVmYTk2MzQ3MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERP
TVhQYXRoRXhwcmVzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVhQYXRoRXhwcmVzc2lvbi5jcHAKQEAgLTM5
LDYgKzM5LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTVhQYXRoRXhwcmVzc2lvblByaXZh
dGUgewogICAgIFJlZlB0cjxXZWJDb3JlOjpYUGF0aEV4cHJlc3Npb24+IGNvcmVPYmplY3Q7CiB9
IFdlYktpdERPTVhQYXRoRXhwcmVzc2lvblByaXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05PUkVf
REVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NWFBhdGhFeHBy
ZXNzaW9uKiBraXQoV2ViQ29yZTo6WFBhdGhFeHByZXNzaW9uKiBvYmopCkBAIC0xMjEsMyArMTIz
LDQgQEAgV2ViS2l0RE9NWFBhdGhSZXN1bHQqIHdlYmtpdF9kb21feHBhdGhfZXhwcmVzc2lvbl9l
dmFsdWF0ZShXZWJLaXRET01YUGF0aEV4cHJlc3MKICAgICByZXR1cm4gV2ViS2l0OjpraXQocmVz
dWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLnB0cigpKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVf
REVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVhQYXRoRXhwcmVzc2lvbi5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVhQ
YXRoRXhwcmVzc2lvbi5oCmluZGV4IGVkN2QzZTAzNWIxMzI4ODBiZDM3OGIzY2U4ZGMwZmU1ZGY5
ZTIwMTcuLmIxYzkwNzU2Mjc5ZTZlZmUyMGNmZmQ4MDY5MTk4MTJkYTU1NWI4NmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9X
ZWJLaXRET01YUGF0aEV4cHJlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhFeHByZXNzaW9uLmgKQEAg
LTQ1LDcgKzQ1LDcgQEAgc3RydWN0IF9XZWJLaXRET01YUGF0aEV4cHJlc3Npb25DbGFzcyB7CiAg
ICAgV2ViS2l0RE9NT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBH
VHlwZQorV0VCS0lUX0RFUFJFQ0FURUQgR1R5cGUKIHdlYmtpdF9kb21feHBhdGhfZXhwcmVzc2lv
bl9nZXRfdHlwZSh2b2lkKTsKIAogLyoqCkBAIC01Nyw4ICs1NywxMCBAQCB3ZWJraXRfZG9tX3hw
YXRoX2V4cHJlc3Npb25fZ2V0X3R5cGUodm9pZCk7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAg
KiBSZXR1cm5zOiAodHJhbnNmZXIgZnVsbCk6IEEgI1dlYktpdERPTVhQYXRoUmVzdWx0CisgKgor
ICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8K
LVdFQktJVF9BUEkgV2ViS2l0RE9NWFBhdGhSZXN1bHQqCitXRUJLSVRfREVQUkVDQVRFRCBXZWJL
aXRET01YUGF0aFJlc3VsdCoKIHdlYmtpdF9kb21feHBhdGhfZXhwcmVzc2lvbl9ldmFsdWF0ZShX
ZWJLaXRET01YUGF0aEV4cHJlc3Npb24qIHNlbGYsIFdlYktpdERPTU5vZGUqIGNvbnRleHROb2Rl
LCBndXNob3J0IHR5cGUsIFdlYktpdERPTVhQYXRoUmVzdWx0KiBpblJlc3VsdCwgR0Vycm9yKiog
ZXJyb3IpOwogCiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVhQYXRoTlNSZXNvbHZlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00v
V2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyLmNwcAppbmRleCBjNGJlMzlhMDhkZTQwZGQ3ODIwZGZl
YmE3ZDNhNGFmZDdlOTgzOTdlLi5mZTk3Mjk4MDFmM2JkMjgyNTU4NjgyYWE5NjI4Y2IzMDRmYTA2
NGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhO
U1Jlc29sdmVyLmNwcApAQCAtMjgsNiArMjgsOCBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJ
T05TOworCiB0eXBlZGVmIFdlYktpdERPTVhQYXRoTlNSZXNvbHZlcklmYWNlIFdlYktpdERPTVhQ
YXRoTlNSZXNvbHZlckludGVyZmFjZTsKIAogR19ERUZJTkVfSU5URVJGQUNFKFdlYktpdERPTVhQ
YXRoTlNSZXNvbHZlciwgd2Via2l0X2RvbV94cGF0aF9uc19yZXNvbHZlciwgR19UWVBFX09CSkVD
VCkKQEAgLTEzOCwzICsxNDAsNCBAQCBXZWJDb3JlOjpYUGF0aE5TUmVzb2x2ZXIqIGNvcmUoV2Vi
S2l0RE9NTmF0aXZlWFBhdGhOU1Jlc29sdmVyKiB4UGF0aE5TUmVzb2x2ZXIpCiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9N
L1dlYktpdERPTVhQYXRoTlNSZXNvbHZlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dlYktpdERPTVhQYXRoTlNSZXNvbHZlci5oCmluZGV4
IDJjMTY0NmQ3ZGVjOGNlNjZjYjU3NjhjZjE1ZDlkMmM2NzU2YzQzZjUuLjFmMjdiOTJiMDkxYzAz
ZjVhMzgwOGZlZTVhMmUyMTM4OWEzNjAwZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01YUGF0aE5TUmVzb2x2
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0
ay9ET00vV2ViS2l0RE9NWFBhdGhOU1Jlc29sdmVyLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgc3RydWN0
IF9XZWJLaXRET01YUGF0aE5TUmVzb2x2ZXJJZmFjZSB7CiB9OwogCiAKLVdFQktJVF9BUEkgR1R5
cGUgd2Via2l0X2RvbV94cGF0aF9uc19yZXNvbHZlcl9nZXRfdHlwZSh2b2lkKSBHX0dOVUNfQ09O
U1Q7CitXRUJLSVRfREVQUkVDQVRFRCBHVHlwZSB3ZWJraXRfZG9tX3hwYXRoX25zX3Jlc29sdmVy
X2dldF90eXBlKHZvaWQpIEdfR05VQ19DT05TVDsKIAogLyoqCiAgKiB3ZWJraXRfZG9tX3hwYXRo
X25zX3Jlc29sdmVyX2xvb2t1cF9uYW1lc3BhY2VfdXJpOgpAQCAtNTIsOCArNTIsMTAgQEAgV0VC
S0lUX0FQSSBHVHlwZSB3ZWJraXRfZG9tX3hwYXRoX25zX3Jlc29sdmVyX2dldF90eXBlKHZvaWQp
IEdfR05VQ19DT05TVDsKICAqIEBwcmVmaXg6IFRoZSBwcmVmaXggdG8gbG9va3VwCiAgKgogICog
UmV0dXJuczogKHRyYW5zZmVyIGZ1bGwpOiBhICNnY2hhcgorICoKKyAqIERlcHJlY2F0ZWQ6IDIu
MjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCi1XRUJLSVRfQVBJIGdjaGFy
ICp3ZWJraXRfZG9tX3hwYXRoX25zX3Jlc29sdmVyX2xvb2t1cF9uYW1lc3BhY2VfdXJpKFdlYktp
dERPTVhQYXRoTlNSZXNvbHZlciAqcmVzb2x2ZXIsCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhciAq
d2Via2l0X2RvbV94cGF0aF9uc19yZXNvbHZlcl9sb29rdXBfbmFtZXNwYWNlX3VyaShXZWJLaXRE
T01YUGF0aE5TUmVzb2x2ZXIgKnJlc29sdmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAg
ICAgICAgICAgKnByZWZpeCk7CiAKIEdfRU5EX0RFQ0xTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhS
ZXN1bHQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9n
dGsvRE9NL1dlYktpdERPTVhQYXRoUmVzdWx0LmNwcAppbmRleCBhZDM2Yjc1ZDE2NmRkZDA2MGMz
MGJkZTNjNzI3M2Q5Zjc1ZDYxNDdhLi4yYzA2YTk1ZmFhZjQwZWM0YzdhNGEyYmUxOGRiY2Y4YmM3
ZTE0MTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhSZXN1bHQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRET01YUGF0aFJl
c3VsdC5jcHAKQEAgLTM4LDYgKzM4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTVhQYXRo
UmVzdWx0UHJpdmF0ZSB7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlhQYXRoUmVzdWx0PiBjb3JlT2Jq
ZWN0OwogfSBXZWJLaXRET01YUGF0aFJlc3VsdFByaXZhdGU7CiAKK0dfR05VQ19CRUdJTl9JR05P
UkVfREVQUkVDQVRJT05TOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NWFBhdGhS
ZXN1bHQqIGtpdChXZWJDb3JlOjpYUGF0aFJlc3VsdCogb2JqKQpAQCAtMzM1LDMgKzMzNyw0IEBA
IGd1bG9uZyB3ZWJraXRfZG9tX3hwYXRoX3Jlc3VsdF9nZXRfc25hcHNob3RfbGVuZ3RoKFdlYktp
dERPTVhQYXRoUmVzdWx0KiBzZWxmLCBHCiAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlUmV0dXJu
VmFsdWUoKTsKIH0KIAorR19HTlVDX0VORF9JR05PUkVfREVQUkVDQVRJT05TOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsvRE9NL1dl
YktpdERPTVhQYXRoUmVzdWx0LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhSZXN1bHQuaAppbmRleCA3NzAzZjg2MTkx
ZmNmNWIzNzg4YmVkZjY5ZGI3MzNmNGJmMjBiNTBhLi5kNWE2ZWM3OTYzYWJlYTdiZjNhMzlkYmUz
MmU5YWZiM2ZhY2NjYmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9NWFBhdGhSZXN1bHQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vV2ViS2l0RE9N
WFBhdGhSZXN1bHQuaApAQCAtMzcsNTYgKzM3LDgwIEBAIEdfQkVHSU5fREVDTFMKICNkZWZpbmUg
V0VCS0lUX0RPTV9JU19YUEFUSF9SRVNVTFRfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xB
U1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX0RPTV9UWVBFX1hQQVRIX1JFU1VMVCkpCiAjZGVmaW5l
IFdFQktJVF9ET01fWFBBVEhfUkVTVUxUX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNF
X0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9ET01fVFlQRV9YUEFUSF9SRVNVTFQsIFdlYktpdERP
TVhQYXRoUmVzdWx0Q2xhc3MpKQogCisjaWZuZGVmIFdFQktJVF9ESVNBQkxFX0RFUFJFQ0FURUQK
KwogLyoqCiAgKiBXRUJLSVRfRE9NX1hQQVRIX1JFU1VMVF9BTllfVFlQRToKKyAqCisgKiBEZXBy
ZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmlu
ZSBXRUJLSVRfRE9NX1hQQVRIX1JFU1VMVF9BTllfVFlQRSAwCiAKIC8qKgogICogV0VCS0lUX0RP
TV9YUEFUSF9SRVNVTFRfTlVNQkVSX1RZUEU6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNl
IEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9YUEFU
SF9SRVNVTFRfTlVNQkVSX1RZUEUgMQogCiAvKioKICAqIFdFQktJVF9ET01fWFBBVEhfUkVTVUxU
X1NUUklOR19UWVBFOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29y
ZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fWFBBVEhfUkVTVUxUX1NUUklO
R19UWVBFIDIKIAogLyoqCiAgKiBXRUJLSVRfRE9NX1hQQVRIX1JFU1VMVF9CT09MRUFOX1RZUEU6
CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFk
CiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9YUEFUSF9SRVNVTFRfQk9PTEVBTl9UWVBFIDMKIAog
LyoqCiAgKiBXRUJLSVRfRE9NX1hQQVRIX1JFU1VMVF9VTk9SREVSRURfTk9ERV9JVEVSQVRPUl9U
WVBFOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fWFBBVEhfUkVTVUxUX1VOT1JERVJFRF9OT0RF
X0lURVJBVE9SX1RZUEUgNAogCiAvKioKICAqIFdFQktJVF9ET01fWFBBVEhfUkVTVUxUX09SREVS
RURfTk9ERV9JVEVSQVRPUl9UWVBFOgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZh
U2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fWFBBVEhfUkVT
VUxUX09SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFIDUKIAogLyoqCiAgKiBXRUJLSVRfRE9NX1hQ
QVRIX1JFU1VMVF9VTk9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFOgorICoKKyAqIERlcHJlY2F0
ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAogICovCiAjZGVmaW5lIFdF
QktJVF9ET01fWFBBVEhfUkVTVUxUX1VOT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEUgNgogCiAv
KioKICAqIFdFQktJVF9ET01fWFBBVEhfUkVTVUxUX09SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBF
OgorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVh
ZAogICovCiAjZGVmaW5lIFdFQktJVF9ET01fWFBBVEhfUkVTVUxUX09SREVSRURfTk9ERV9TTkFQ
U0hPVF9UWVBFIDcKIAogLyoqCiAgKiBXRUJLSVRfRE9NX1hQQVRIX1JFU1VMVF9BTllfVU5PUkRF
UkVEX05PREVfVFlQRToKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlwdENv
cmUgQVBJIGluc3RlYWQKICAqLwogI2RlZmluZSBXRUJLSVRfRE9NX1hQQVRIX1JFU1VMVF9BTllf
VU5PUkRFUkVEX05PREVfVFlQRSA4CiAKIC8qKgogICogV0VCS0lUX0RPTV9YUEFUSF9SRVNVTFRf
RklSU1RfT1JERVJFRF9OT0RFX1RZUEU6CisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAgKi8KICNkZWZpbmUgV0VCS0lUX0RPTV9YUEFUSF9S
RVNVTFRfRklSU1RfT1JERVJFRF9OT0RFX1RZUEUgOQogCisjZW5kaWYgLyogV0VCS0lUX0RJU0FC
TEVfREVQUkVDQVRFRCAqLworCiBzdHJ1Y3QgX1dlYktpdERPTVhQYXRoUmVzdWx0IHsKICAgICBX
ZWJLaXRET01PYmplY3QgcGFyZW50X2luc3RhbmNlOwogfTsKQEAgLTk1LDcgKzExOSw3IEBAIHN0
cnVjdCBfV2ViS2l0RE9NWFBhdGhSZXN1bHRDbGFzcyB7CiAgICAgV2ViS2l0RE9NT2JqZWN0Q2xh
c3MgcGFyZW50X2NsYXNzOwogfTsKIAotV0VCS0lUX0FQSSBHVHlwZQorV0VCS0lUX0RFUFJFQ0FU
RUQgR1R5cGUKIHdlYmtpdF9kb21feHBhdGhfcmVzdWx0X2dldF90eXBlKHZvaWQpOwogCiAvKioK
QEAgLTEwNCw4ICsxMjgsMTAgQEAgd2Via2l0X2RvbV94cGF0aF9yZXN1bHRfZ2V0X3R5cGUodm9p
ZCk7CiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6
IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBVc2UgSmF2YVNjcmlw
dENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJLaXRET01Ob2RlKgorV0VCS0lU
X0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21feHBhdGhfcmVzdWx0X2l0ZXJh
dGVfbmV4dChXZWJLaXRET01YUGF0aFJlc3VsdCogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwogCiAv
KioKQEAgLTExNSw4ICsxNDEsMTAgQEAgd2Via2l0X2RvbV94cGF0aF9yZXN1bHRfaXRlcmF0ZV9u
ZXh0KFdlYktpdERPTVhQYXRoUmVzdWx0KiBzZWxmLCBHRXJyb3IqKiBlcnJvcikKICAqIEBlcnJv
cjogI0dFcnJvcgogICoKICAqIFJldHVybnM6ICh0cmFuc2ZlciBub25lKTogQSAjV2ViS2l0RE9N
Tm9kZQorICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5z
dGVhZAogKiovCi1XRUJLSVRfQVBJIFdlYktpdERPTU5vZGUqCitXRUJLSVRfREVQUkVDQVRFRCBX
ZWJLaXRET01Ob2RlKgogd2Via2l0X2RvbV94cGF0aF9yZXN1bHRfc25hcHNob3RfaXRlbShXZWJL
aXRET01YUGF0aFJlc3VsdCogc2VsZiwgZ3Vsb25nIGluZGV4LCBHRXJyb3IqKiBlcnJvcik7CiAK
IC8qKgpAQCAtMTI0LDggKzE1MiwxMCBAQCB3ZWJraXRfZG9tX3hwYXRoX3Jlc3VsdF9zbmFwc2hv
dF9pdGVtKFdlYktpdERPTVhQYXRoUmVzdWx0KiBzZWxmLCBndWxvbmcgaW5kZXgsCiAgKiBAc2Vs
ZjogQSAjV2ViS2l0RE9NWFBhdGhSZXN1bHQKICAqCiAgKiBSZXR1cm5zOiBBICNndXNob3J0Cisg
KgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAq
Ki8KLVdFQktJVF9BUEkgZ3VzaG9ydAorV0VCS0lUX0RFUFJFQ0FURUQgZ3VzaG9ydAogd2Via2l0
X2RvbV94cGF0aF9yZXN1bHRfZ2V0X3Jlc3VsdF90eXBlKFdlYktpdERPTVhQYXRoUmVzdWx0KiBz
ZWxmKTsKIAogLyoqCkBAIC0xMzQsOCArMTY0LDEwIEBAIHdlYmtpdF9kb21feHBhdGhfcmVzdWx0
X2dldF9yZXN1bHRfdHlwZShXZWJLaXRET01YUGF0aFJlc3VsdCogc2VsZik7CiAgKiBAZXJyb3I6
ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiBBICNnZG91YmxlCisgKgorICogRGVwcmVjYXRlZDog
Mi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Rv
dWJsZQorV0VCS0lUX0RFUFJFQ0FURUQgZ2RvdWJsZQogd2Via2l0X2RvbV94cGF0aF9yZXN1bHRf
Z2V0X251bWJlcl92YWx1ZShXZWJLaXRET01YUGF0aFJlc3VsdCogc2VsZiwgR0Vycm9yKiogZXJy
b3IpOwogCiAvKioKQEAgLTE0NCw4ICsxNzYsMTAgQEAgd2Via2l0X2RvbV94cGF0aF9yZXN1bHRf
Z2V0X251bWJlcl92YWx1ZShXZWJLaXRET01YUGF0aFJlc3VsdCogc2VsZiwgR0Vycm9yKiogZXIK
ICAqIEBlcnJvcjogI0dFcnJvcgogICoKICAqIFJldHVybnM6IEEgI2djaGFyCisgKgorICogRGVw
cmVjYXRlZDogMi4yMjogVXNlIEphdmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJ
VF9BUEkgZ2NoYXIqCitXRUJLSVRfREVQUkVDQVRFRCBnY2hhcioKIHdlYmtpdF9kb21feHBhdGhf
cmVzdWx0X2dldF9zdHJpbmdfdmFsdWUoV2ViS2l0RE9NWFBhdGhSZXN1bHQqIHNlbGYsIEdFcnJv
cioqIGVycm9yKTsKIAogLyoqCkBAIC0xNTQsOCArMTg4LDEwIEBAIHdlYmtpdF9kb21feHBhdGhf
cmVzdWx0X2dldF9zdHJpbmdfdmFsdWUoV2ViS2l0RE9NWFBhdGhSZXN1bHQqIHNlbGYsIEdFcnJv
cioqIGVyCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5zOiBBICNnYm9vbGVhbgor
ICoKKyAqIERlcHJlY2F0ZWQ6IDIuMjI6IFVzZSBKYXZhU2NyaXB0Q29yZSBBUEkgaW5zdGVhZAog
KiovCi1XRUJLSVRfQVBJIGdib29sZWFuCitXRUJLSVRfREVQUkVDQVRFRCBnYm9vbGVhbgogd2Vi
a2l0X2RvbV94cGF0aF9yZXN1bHRfZ2V0X2Jvb2xlYW5fdmFsdWUoV2ViS2l0RE9NWFBhdGhSZXN1
bHQqIHNlbGYsIEdFcnJvcioqIGVycm9yKTsKIAogLyoqCkBAIC0xNjQsOCArMjAwLDEwIEBAIHdl
YmtpdF9kb21feHBhdGhfcmVzdWx0X2dldF9ib29sZWFuX3ZhbHVlKFdlYktpdERPTVhQYXRoUmVz
dWx0KiBzZWxmLCBHRXJyb3IqKiBlCiAgKiBAZXJyb3I6ICNHRXJyb3IKICAqCiAgKiBSZXR1cm5z
OiAodHJhbnNmZXIgbm9uZSk6IEEgI1dlYktpdERPTU5vZGUKKyAqCisgKiBEZXByZWNhdGVkOiAy
LjIyOiBVc2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBXZWJL
aXRET01Ob2RlKgorV0VCS0lUX0RFUFJFQ0FURUQgV2ViS2l0RE9NTm9kZSoKIHdlYmtpdF9kb21f
eHBhdGhfcmVzdWx0X2dldF9zaW5nbGVfbm9kZV92YWx1ZShXZWJLaXRET01YUGF0aFJlc3VsdCog
c2VsZiwgR0Vycm9yKiogZXJyb3IpOwogCiAvKioKQEAgLTE3Myw4ICsyMTEsMTAgQEAgd2Via2l0
X2RvbV94cGF0aF9yZXN1bHRfZ2V0X3NpbmdsZV9ub2RlX3ZhbHVlKFdlYktpdERPTVhQYXRoUmVz
dWx0KiBzZWxmLCBHRXJyb3IKICAqIEBzZWxmOiBBICNXZWJLaXRET01YUGF0aFJlc3VsdAogICoK
ICAqIFJldHVybnM6IEEgI2dib29sZWFuCisgKgorICogRGVwcmVjYXRlZDogMi4yMjogVXNlIEph
dmFTY3JpcHRDb3JlIEFQSSBpbnN0ZWFkCiAqKi8KLVdFQktJVF9BUEkgZ2Jvb2xlYW4KK1dFQktJ
VF9ERVBSRUNBVEVEIGdib29sZWFuCiB3ZWJraXRfZG9tX3hwYXRoX3Jlc3VsdF9nZXRfaW52YWxp
ZF9pdGVyYXRvcl9zdGF0ZShXZWJLaXRET01YUGF0aFJlc3VsdCogc2VsZik7CiAKIC8qKgpAQCAt
MTgzLDggKzIyMywxMCBAQCB3ZWJraXRfZG9tX3hwYXRoX3Jlc3VsdF9nZXRfaW52YWxpZF9pdGVy
YXRvcl9zdGF0ZShXZWJLaXRET01YUGF0aFJlc3VsdCogc2VsZik7CiAgKiBAZXJyb3I6ICNHRXJy
b3IKICAqCiAgKiBSZXR1cm5zOiBBICNndWxvbmcKKyAqCisgKiBEZXByZWNhdGVkOiAyLjIyOiBV
c2UgSmF2YVNjcmlwdENvcmUgQVBJIGluc3RlYWQKICoqLwotV0VCS0lUX0FQSSBndWxvbmcKK1dF
QktJVF9ERVBSRUNBVEVEIGd1bG9uZwogd2Via2l0X2RvbV94cGF0aF9yZXN1bHRfZ2V0X3NuYXBz
aG90X2xlbmd0aChXZWJLaXRET01YUGF0aFJlc3VsdCogc2VsZiwgR0Vycm9yKiogZXJyb3IpOwog
CiBHX0VORF9ERUNMUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvRE9NL2RvY3Mvd2Via2l0ZG9tZ3RrLTQuMC1zZWN0aW9ucy50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vZG9j
cy93ZWJraXRkb21ndGstNC4wLXNlY3Rpb25zLnR4dAppbmRleCA3ODc4NjI0NDE2NTE4N2JkOTBk
ODM5ZWY3MmRiMjViYzQ0NWJmZDNjLi4zNDM2N2Y3ODE4M2Y5MWE2YzZmZmY1ZTI3ZGE5NmQ3ZDZj
YWY4YmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vZG9jcy93ZWJraXRkb21ndGstNC4wLXNlY3Rpb25zLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vZG9jcy93
ZWJraXRkb21ndGstNC4wLXNlY3Rpb25zLnR4dApAQCAtNjAwLDYgKzYwMCwxMCBAQCBXZWJLaXRE
T01FbGVtZW50CiAKIFdFQktJVF9ET01fRUxFTUVOVF9BTExPV19LRVlCT0FSRF9JTlBVVAogCit3
ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X2lzX3VzZXJfZWRpdGVkCit3ZWJr
aXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X2dldF9hdXRvX2ZpbGxlZAord2Via2l0
X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRfZWxlbWVudF9zZXRfYXV0b19maWxsZWQKK3dlYmtpdF9k
b21fZWxlbWVudF9odG1sX2lucHV0X2VsZW1lbnRfc2V0X2VkaXRpbmdfdmFsdWUKIHdlYmtpdF9k
b21fZWxlbWVudF9nZXRfYXR0cmlidXRlCiB3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X2F0dHJpYnV0
ZQogd2Via2l0X2RvbV9lbGVtZW50X3JlbW92ZV9hdHRyaWJ1dGUKQEAgLTg5Nyw2ICs5MDEsNyBA
QCB3ZWJraXRfZG9tX25vZGVfZ2V0X25hbWVzcGFjZV91cmkKIHdlYmtpdF9kb21fbm9kZV9nZXRf
cHJlZml4CiB3ZWJraXRfZG9tX25vZGVfc2V0X3ByZWZpeAogd2Via2l0X2RvbV9ub2RlX2dldF9s
b2NhbF9uYW1lCit3ZWJraXRfZG9tX25vZGVfZm9yX2pzX3ZhbHVlCiAKIDxTVUJTRUNUSU9OIFN0
YW5kYXJkPgogV2ViS2l0RE9NTm9kZUNsYXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9ET00vZG9jcy93ZWJraXRkb21ndGstZG9j
cy5zZ21sIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
RE9NL2RvY3Mvd2Via2l0ZG9tZ3RrLWRvY3Muc2dtbAppbmRleCA4NjUyZTFhM2E2NmEzMzBjMTFl
OTlhOTkwZTRmZjQzMjJkNmQ4YTQxLi5mZjRkNzEzNDI1OTgyMTNlZTNiNGQ1NzI4NzkzMmZiN2My
ZWRiOGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2d0ay9ET00vZG9jcy93ZWJraXRkb21ndGstZG9jcy5zZ21sCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9kb2NzL3dlYmtpdGRv
bWd0ay1kb2NzLnNnbWwKQEAgLTExOCwxMCArMTE4LDE2IEBACiAgICAgPHRpdGxlPkluZGV4PC90
aXRsZT4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvYXBpLWluZGV4LWZ1bGwueG1sIj48eGk6
ZmFsbGJhY2sgLz48L3hpOmluY2x1ZGU+CiAgIDwvaW5kZXg+CisKICAgPGluZGV4IGlkPSJhcGkt
aW5kZXgtZGVwcmVjYXRlZCIgcm9sZT0iZGVwcmVjYXRlZCI+CiAgICAgPHRpdGxlPkluZGV4IG9m
IGRlcHJlY2F0ZWQgc3ltYm9sczwvdGl0bGU+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL2Fw
aS1pbmRleC1kZXByZWNhdGVkLnhtbCI+PHhpOmZhbGxiYWNrIC8+PC94aTppbmNsdWRlPgogICA8
L2luZGV4PgogCisgIDxpbmRleCBpZD0iYXBpLWluZGV4LTItMjIiIHJvbGU9IjIuMjIiPgorICAg
IDx0aXRsZT5JbmRleCBvZiBuZXcgc3ltYm9scyBpbiAyLjIyPC90aXRsZT4KKyAgICA8eGk6aW5j
bHVkZSBocmVmPSJ4bWwvYXBpLWluZGV4LTIuMjIueG1sIj48eGk6ZmFsbGJhY2sgLz48L3hpOmlu
Y2x1ZGU+CisgIDwvaW5kZXg+CisKICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL2Fubm90YXRpb24t
Z2xvc3NhcnkueG1sIj48eGk6ZmFsbGJhY2sgLz48L3hpOmluY2x1ZGU+CiA8L2Jvb2s+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9X
ZWJLaXRGcmFtZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9ndGsvV2ViS2l0RnJhbWUuaAppbmRleCA2YzU0YTI0ODRhNzA3ZDEzMDE1YjFjYWE0Njk4OGZm
YzMyYTc2Y2YxLi5hMzEwMDYwYTM4MjRjYjVlYzY4NDAwNDBlNGRlZjAxNTJjNzM3MmEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay9X
ZWJLaXRGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvZ3RrL1dlYktpdEZyYW1lLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlIDxqc2Mv
anNjLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CiAjaW5jbHVkZSA8d2Vi
a2l0Mi9XZWJLaXRTY3JpcHRXb3JsZC5oPgorI2luY2x1ZGUgPHdlYmtpdGRvbS93ZWJraXRkb20u
aD4KIAogR19CRUdJTl9ERUNMUwogCkBAIC01NCwyNyArNTUsMzYgQEAgc3RydWN0IF9XZWJLaXRG
cmFtZUNsYXNzIHsKIH07CiAKIFdFQktJVF9BUEkgR1R5cGUKLXdlYmtpdF9mcmFtZV9nZXRfdHlw
ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQpOword2Via2l0X2ZyYW1lX2dl
dF90eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQpOwogCiBXRUJL
SVRfQVBJIGdib29sZWFuCi13ZWJraXRfZnJhbWVfaXNfbWFpbl9mcmFtZSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUpOword2Via2l0X2ZyYW1lX2lz
X21haW5fZnJhbWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdEZyYW1lICAg
ICAgICpmcmFtZSk7CiAKIFdFQktJVF9BUEkgY29uc3QgZ2NoYXIgKgotd2Via2l0X2ZyYW1lX2dl
dF91cmkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAg
KmZyYW1lKTsKK3dlYmtpdF9mcmFtZV9nZXRfdXJpICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUpOwogCiBXRUJLSVRfREVQUkVDQVRF
RF9GT1Iod2Via2l0X2ZyYW1lX2dldF9qc19jb250ZXh0KSBKU0dsb2JhbENvbnRleHRSZWYKLXdl
YmtpdF9mcmFtZV9nZXRfamF2YXNjcmlwdF9nbG9iYWxfY29udGV4dCAgICAgICAgICAgKFdlYktp
dEZyYW1lICAgICAgICpmcmFtZSk7Cit3ZWJraXRfZnJhbWVfZ2V0X2phdmFzY3JpcHRfZ2xvYmFs
X2NvbnRleHQgICAgICAgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lKTsKIAogV0VC
S0lUX0RFUFJFQ0FURURfRk9SKHdlYmtpdF9mcmFtZV9nZXRfanNfY29udGV4dF9mb3Jfc2NyaXB0
X3dvcmxkKSBKU0dsb2JhbENvbnRleHRSZWYKLXdlYmtpdF9mcmFtZV9nZXRfamF2YXNjcmlwdF9j
b250ZXh0X2Zvcl9zY3JpcHRfd29ybGQgKFdlYktpdEZyYW1lICAgICAgICpmcmFtZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFNj
cmlwdFdvcmxkICp3b3JsZCk7Cit3ZWJraXRfZnJhbWVfZ2V0X2phdmFzY3JpcHRfY29udGV4dF9m
b3Jfc2NyaXB0X3dvcmxkICAgICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFNj
cmlwdFdvcmxkICp3b3JsZCk7CiAKIFdFQktJVF9BUEkgSlNDQ29udGV4dCAqCi13ZWJraXRfZnJh
bWVfZ2V0X2pzX2NvbnRleHQgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRGcmFtZSAg
ICAgICAqZnJhbWUpOword2Via2l0X2ZyYW1lX2dldF9qc19jb250ZXh0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKFdlYktpdEZyYW1lICAgICAgICpmcmFtZSk7CiAKIFdFQktJVF9BUEkg
SlNDQ29udGV4dCAqCi13ZWJraXRfZnJhbWVfZ2V0X2pzX2NvbnRleHRfZm9yX3NjcmlwdF93b3Js
ZCAgICAgICAgIChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRTY3JpcHRXb3JsZCAqd29y
bGQpOword2Via2l0X2ZyYW1lX2dldF9qc19jb250ZXh0X2Zvcl9zY3JpcHRfd29ybGQgICAgICAg
ICAgICAgKFdlYktpdEZyYW1lICAgICAgICpmcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRTY3JpcHRXb3JsZCAqd29y
bGQpOworCitXRUJLSVRfQVBJIEpTQ1ZhbHVlICoKK3dlYmtpdF9mcmFtZV9nZXRfanNfdmFsdWVf
Zm9yX2RvbV9vYmplY3QgICAgICAgICAgICAgICAgIChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgV2ViS2l0RE9NT2JqZWN0ICAgKmRvbV9vYmplY3QpOworCitXRUJLSVRfQVBJIEpTQ1ZhbHVl
ICoKK3dlYmtpdF9mcmFtZV9nZXRfanNfdmFsdWVfZm9yX2RvbV9vYmplY3RfaW5fc2NyaXB0X3dv
cmxkIChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0RE9NT2JqZWN0ICAgKmRvbV9v
YmplY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV2ViS2l0U2NyaXB0V29ybGQgKndvcmxkKTsKIAogR19FTkRfREVDTFMKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9ndGsv
d2Via2l0LXdlYi1leHRlbnNpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvZ3RrL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmgKaW5kZXggN2ZmNmQ3NzdmMGFk
YTQ0MmE0ZGYyMDc3ZjM3OGQ2YWJkMjQ2YmFmNS4uMWM5NWYxZDNhZWQ0MTUwODRiNzAyNjAwM2Q5
M2I0N2ExYzc4MTI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9ndGsvd2Via2l0LXdlYi1leHRlbnNpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2d0ay93ZWJraXQtd2ViLWV4dGVuc2lv
bi5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRXZWJFeHRlbnNp
b24uaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFdlYkhpdFRlc3RSZXN1bHQuaD4KICNpbmNs
dWRlIDx3ZWJraXQyL1dlYktpdFdlYlBhZ2UuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdFdl
YlByb2Nlc3NFbnVtVHlwZXMuaD4KIAogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0V2ViRXh0ZW5z
aW9uQXV0b2NsZWFudXBzLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL0RPTS9XZWJLaXRET01EZWZpbmVzLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vV2ViS2l0RE9NRGVm
aW5lcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjFlZjRmMjg5ZWQyY2M0MTRlZWYzMjlmY2ZmMmViYmJjN2Q2MzU0
ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL3dwZS9ET00vV2ViS2l0RE9NRGVmaW5lcy5oCkBAIC0wLDAgKzEsNDYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lU
RE9NX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3Ig
Ik9ubHkgPHdwZS93ZWJraXRkb20uaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRp
ZgorCisjaWZuZGVmIFdlYktpdERPTURlZmluZXNfaAorI2RlZmluZSBXZWJLaXRET01EZWZpbmVz
X2gKKworI2luY2x1ZGUgPGdsaWIuaD4KKworI2lmZGVmIEdfT1NfV0lOMzIKKyAgICAjaWZkZWYg
QlVJTERJTkdfV0VCS0lUCisgICAgICAgICNkZWZpbmUgV0VCS0lUX0FQSSBfX2RlY2xzcGVjKGRs
bGV4cG9ydCkKKyAgICAjZWxzZQorICAgICAgICAjZGVmaW5lIFdFQktJVF9BUEkgX19kZWNsc3Bl
YyhkbGxpbXBvcnQpCisgICAgI2VuZGlmCisjZWxzZQorICAgICNkZWZpbmUgV0VCS0lUX0FQSSBf
X2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQorI2VuZGlmCisKKyNkZWZpbmUg
V0VCS0lUX0RFUFJFQ0FURUQgV0VCS0lUX0FQSSBHX0RFUFJFQ0FURUQKKyNkZWZpbmUgV0VCS0lU
X0RFUFJFQ0FURURfRk9SKGYpIFdFQktJVF9BUEkgR19ERVBSRUNBVEVEX0ZPUihmKQorCisjaWZu
ZGVmIFdFQktJVF9BUEkKKyAgICAjZGVmaW5lIFdFQktJVF9BUEkKKyNlbmRpZgorCisjZW5kaWYg
LyogV2ViS2l0RE9NRGVmaW5lc19oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vV2ViS2l0RE9NRG9jdW1lbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL0RPTS9XZWJLaXRE
T01Eb2N1bWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyYzY3YzE3ZTg4ZDVhYzdmNjkwYzY4OTg2ZTAwMTkz
NDNiMGM3YzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vV2ViS2l0RE9NRG9jdW1lbnQuaApAQCAtMCwwICsxLDU2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChf
X1dFQktJVERPTV9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQor
I2Vycm9yICJPbmx5IDx3cGUvd2Via2l0ZG9tLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4i
CisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRET01Eb2N1bWVudF9oCisjZGVmaW5lIFdlYktpdERP
TURvY3VtZW50X2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8d3BlL1dl
YktpdERPTU5vZGUuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RE9NRGVmaW5lcy5oPgorCitHX0JF
R0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX0RPTV9UWVBFX0RPQ1VNRU5UICAgICAgICAgICAg
KHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX0RPTV9ET0NV
TUVOVChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBX
RUJLSVRfRE9NX1RZUEVfRE9DVU1FTlQsIFdlYktpdERPTURvY3VtZW50KSkKKyNkZWZpbmUgV0VC
S0lUX0RPTV9ET0NVTUVOVF9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNU
KChrbGFzcyksICBXRUJLSVRfRE9NX1RZUEVfRE9DVU1FTlQsIFdlYktpdERPTURvY3VtZW50Q2xh
c3MpCisjZGVmaW5lIFdFQktJVF9ET01fSVNfRE9DVU1FTlQob2JqKSAgICAgICAgIChHX1RZUEVf
Q0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX0RPTV9UWVBFX0RPQ1VNRU5UKSkKKyNk
ZWZpbmUgV0VCS0lUX0RPTV9JU19ET0NVTUVOVF9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19D
TEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfRE9NX1RZUEVfRE9DVU1FTlQpKQorI2RlZmluZSBX
RUJLSVRfRE9NX0RPQ1VNRU5UX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9D
TEFTUygob2JqKSwgIFdFQktJVF9ET01fVFlQRV9ET0NVTUVOVCwgV2ViS2l0RE9NRG9jdW1lbnRD
bGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRET01Eb2N1bWVudCBXZWJLaXRET01Eb2N1
bWVudDsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRET01Eb2N1bWVudENsYXNzIFdlYktpdERPTURv
Y3VtZW50Q2xhc3M7CisKK3N0cnVjdCBfV2ViS2l0RE9NRG9jdW1lbnQgeworICAgIFdlYktpdERP
TU5vZGUgcGFyZW50X2luc3RhbmNlOworfTsKKworc3RydWN0IF9XZWJLaXRET01Eb2N1bWVudENs
YXNzIHsKKyAgICBXZWJLaXRET01Ob2RlQ2xhc3MgcGFyZW50X2NsYXNzOworfTsKKworV0VCS0lU
X0FQSSBHVHlwZQord2Via2l0X2RvbV9kb2N1bWVudF9nZXRfdHlwZSh2b2lkKTsKKworR19FTkRf
REVDTFMKKworI2VuZGlmIC8qIFdlYktpdERPTURvY3VtZW50X2ggKi8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL0RPTS9XZWJLaXRE
T01FbGVtZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L3dwZS9ET00vV2ViS2l0RE9NRWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2YTZhYTI3N2EyNGM5OTll
OWM4NmRkMDUwNDE4MmYwZjkxMWFmN2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vV2ViS2l0RE9NRWxlbWVudC5o
CkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgSWdhbGlhIFMuTC4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKwor
I2lmICFkZWZpbmVkKF9fV0VCS0lURE9NX0hfSU5TSURFX18pICYmICFkZWZpbmVkKFdFQktJVDJf
Q09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdwZS93ZWJraXRkb20uaD4gY2FuIGJlIGluY2x1
ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdlYktpdERPTUVsZW1lbnRfaAorI2Rl
ZmluZSBXZWJLaXRET01FbGVtZW50X2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5j
bHVkZSA8d3BlL1dlYktpdERPTU5vZGUuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RE9NRGVmaW5l
cy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX0RPTV9UWVBFX0VMRU1FTlQg
ICAgICAgICAgICAod2Via2l0X2RvbV9lbGVtZW50X2dldF90eXBlKCkpCisjZGVmaW5lIFdFQktJ
VF9ET01fRUxFTUVOVChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNU
KChvYmopLCBXRUJLSVRfRE9NX1RZUEVfRUxFTUVOVCwgV2ViS2l0RE9NRWxlbWVudCkpCisjZGVm
aW5lIFdFQktJVF9ET01fRUxFTUVOVF9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFT
U19DQVNUKChrbGFzcyksICBXRUJLSVRfRE9NX1RZUEVfRUxFTUVOVCwgV2ViS2l0RE9NRWxlbWVu
dENsYXNzKQorI2RlZmluZSBXRUJLSVRfRE9NX0lTX0VMRU1FTlQob2JqKSAgICAgICAgIChHX1RZ
UEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX0RPTV9UWVBFX0VMRU1FTlQpKQor
I2RlZmluZSBXRUJLSVRfRE9NX0lTX0VMRU1FTlRfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tf
Q0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX0RPTV9UWVBFX0VMRU1FTlQpKQorI2RlZmluZSBX
RUJLSVRfRE9NX0VMRU1FTlRfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NM
QVNTKChvYmopLCAgV0VCS0lUX0RPTV9UWVBFX0VMRU1FTlQsIFdlYktpdERPTUVsZW1lbnRDbGFz
cykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRET01FbGVtZW50IFdlYktpdERPTUVsZW1lbnQ7
Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NRWxlbWVudENsYXNzIFdlYktpdERPTUVsZW1lbnRD
bGFzczsKKworc3RydWN0IF9XZWJLaXRET01FbGVtZW50IHsKKyAgICBXZWJLaXRET01Ob2RlIHBh
cmVudF9pbnN0YW5jZTsKK307CisKK3N0cnVjdCBfV2ViS2l0RE9NRWxlbWVudENsYXNzIHsKKyAg
ICBXZWJLaXRET01Ob2RlQ2xhc3MgcGFyZW50X2NsYXNzOworfTsKKworV0VCS0lUX0FQSSBHVHlw
ZQord2Via2l0X2RvbV9lbGVtZW50X2dldF90eXBlICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAodm9pZCk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF9kb21fZWxlbWVudF9odG1s
X2lucHV0X2VsZW1lbnRfaXNfdXNlcl9lZGl0ZWQgICAgKFdlYktpdERPTUVsZW1lbnQgKmVsZW1l
bnQpOworCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1
dF9lbGVtZW50X2dldF9hdXRvX2ZpbGxlZCAgIChXZWJLaXRET01FbGVtZW50ICplbGVtZW50KTsK
KworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50
X3NldF9hdXRvX2ZpbGxlZCAgIChXZWJLaXRET01FbGVtZW50ICplbGVtZW50LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4g
ICAgICAgICAgYXV0b19maWxsZWQpOworV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfZG9tX2VsZW1l
bnRfaHRtbF9pbnB1dF9lbGVtZW50X3NldF9lZGl0aW5nX3ZhbHVlIChXZWJLaXRET01FbGVtZW50
ICplbGVtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgY2hhciAgICAgICAqdmFsdWUpOworCitHX0VORF9ERUNMUworCisj
ZW5kaWYgLyogV2ViS2l0RE9NRWxlbWVudF9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vV2ViS2l0RE9NTm9kZS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL1dlYktp
dERPTU5vZGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDI4MzM4Y2EwNjk5ZWNlYzBiMDJjMDJhOTRjOGU4YmJh
ZGY2NzEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS93cGUvRE9NL1dlYktpdERPTU5vZGUuaApAQCAtMCwwICsxLDYzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE4IElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
KyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p
IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRo
ZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJ
VERPTV9IX0lOU0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9y
ICJPbmx5IDx3cGUvd2Via2l0ZG9tLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5k
aWYKKworI2lmbmRlZiBXZWJLaXRET01Ob2RlX2gKKyNkZWZpbmUgV2ViS2l0RE9NTm9kZV9oCisK
KyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPGpzYy9qc2MuaD4KKyNpbmNsdWRl
IDx3cGUvV2ViS2l0RE9NT2JqZWN0Lmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdERPTURlZmluZXMu
aD4KKworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9ET01fVFlQRV9OT0RFICAgICAg
ICAgICAgKHdlYmtpdF9kb21fbm9kZV9nZXRfdHlwZSgpKQorI2RlZmluZSBXRUJLSVRfRE9NX05P
REUob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VC
S0lUX0RPTV9UWVBFX05PREUsIFdlYktpdERPTU5vZGUpKQorI2RlZmluZSBXRUJLSVRfRE9NX05P
REVfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfQ0FTVCgoa2xhc3MpLCAgV0VC
S0lUX0RPTV9UWVBFX05PREUsIFdlYktpdERPTU5vZGVDbGFzcykKKyNkZWZpbmUgV0VCS0lUX0RP
TV9JU19OT0RFKG9iaikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiks
IFdFQktJVF9ET01fVFlQRV9OT0RFKSkKKyNkZWZpbmUgV0VCS0lUX0RPTV9JU19OT0RFX0NMQVNT
KGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9ET01fVFlQ
RV9OT0RFKSkKKyNkZWZpbmUgV0VCS0lUX0RPTV9OT0RFX0dFVF9DTEFTUyhvYmopICAoR19UWVBF
X0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9ET01fVFlQRV9OT0RFLCBXZWJLaXRE
T01Ob2RlQ2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NTm9kZSBXZWJLaXRET01O
b2RlOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTU5vZGVDbGFzcyBXZWJLaXRET01Ob2RlQ2xh
c3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NTm9kZVByaXZhdGUgV2ViS2l0RE9NTm9kZVBy
aXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0RE9NTm9kZSB7CisgICAgV2ViS2l0RE9NT2JqZWN0IHBh
cmVudF9pbnN0YW5jZTsKKworICAgIFdlYktpdERPTU5vZGVQcml2YXRlICpwcml2OworfTsKKwor
c3RydWN0IF9XZWJLaXRET01Ob2RlQ2xhc3MgeworICAgIFdlYktpdERPTU9iamVjdENsYXNzIHBh
cmVudF9jbGFzczsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF9kb21fbm9kZV9nZXRf
dHlwZSAgICAgKHZvaWQpOworCitXRUJLSVRfQVBJIFdlYktpdERPTU5vZGUgKgord2Via2l0X2Rv
bV9ub2RlX2Zvcl9qc192YWx1ZSAoSlNDVmFsdWUgKnZhbHVlKTsKKworR19FTkRfREVDTFMKKwor
I2VuZGlmIC8qIFdlYktpdERPTU5vZGVfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL1dlYktpdERPTU9iamVjdC5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvRE9NL1dlYktp
dERPTU9iamVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1NzU3NjIyMWI3ZThhYzVkZjE4YmQxNDBmOTcyN2Yz
MWI1ZDA1MDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vV2ViS2l0RE9NT2JqZWN0LmgKQEAgLTAsMCArMSw1NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
CisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19X
RUJLSVRET01fSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNl
cnJvciAiT25seSA8d3BlL3dlYmtpdGRvbS5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgor
I2VuZGlmCisKKyNpZm5kZWYgV2ViS2l0RE9NT2JqZWN0X2gKKyNkZWZpbmUgV2ViS2l0RE9NT2Jq
ZWN0X2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdERP
TURlZmluZXMuaD4KKworR19CRUdJTl9ERUNMUworCisjZGVmaW5lIFdFQktJVF9ET01fVFlQRV9P
QkpFQ1QgICAgICAgICAgICAod2Via2l0X2RvbV9vYmplY3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUg
V0VCS0lUX0RPTV9PQkpFQ1Qob2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0Vf
Q0FTVCgob2JqKSwgV0VCS0lUX0RPTV9UWVBFX09CSkVDVCwgV2ViS2l0RE9NT2JqZWN0KSkKKyNk
ZWZpbmUgV0VCS0lUX0RPTV9PQkpFQ1RfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xB
U1NfQ0FTVCgoa2xhc3MpLCAgV0VCS0lUX0RPTV9UWVBFX09CSkVDVCwgV2ViS2l0RE9NT2JqZWN0
Q2xhc3MpKQorI2RlZmluZSBXRUJLSVRfRE9NX0lTX09CSkVDVChvYmopICAgICAgICAgKEdfVFlQ
RV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRfRE9NX1RZUEVfT0JKRUNUKSkKKyNk
ZWZpbmUgV0VCS0lUX0RPTV9JU19PQkpFQ1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xB
U1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX0RPTV9UWVBFX09CSkVDVCkpCisjZGVmaW5lIFdFQktJ
VF9ET01fT0JKRUNUX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygo
b2JqKSwgIFdFQktJVF9ET01fVFlQRV9PQkpFQ1QsIFdlYktpdERPTU9iamVjdENsYXNzKSkKKwor
dHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTU9iamVjdCBXZWJLaXRET01PYmplY3Q7Cit0eXBlZGVm
IHN0cnVjdCBfV2ViS2l0RE9NT2JqZWN0Q2xhc3MgV2ViS2l0RE9NT2JqZWN0Q2xhc3M7CisKK3N0
cnVjdCBfV2ViS2l0RE9NT2JqZWN0IHsKKyAgICBHT2JqZWN0IHBhcmVudEluc3RhbmNlOworfTsK
Kworc3RydWN0IF9XZWJLaXRET01PYmplY3RDbGFzcyB7CisgICAgR09iamVjdENsYXNzIHBhcmVu
dENsYXNzOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X2RvbV9vYmplY3RfZ2V0X3R5
cGUodm9pZCk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZiAvKiBXZWJLaXRET01PYmplY3RfaCAq
LwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS93cGUvRE9NL3dlYmtpdGRvbS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS93cGUvRE9NL3dlYmtpdGRvbS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyZjdhMDI0ZDZmM2Yy
MmVhZWEwZDk3NDY1NjlhNTcxNTMzNjhmNTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9ET00vd2Via2l0ZG9tLmgKQEAg
LTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBJZ2FsaWEgUy5MLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZu
ZGVmIHdlYmtpdGRvbV9oCisjZGVmaW5lIHdlYmtpdGRvbV9oCisKKyNkZWZpbmUgX19XRUJLSVRE
T01fSF9JTlNJREVfXworCisjaW5jbHVkZSA8d3BlL1dlYktpdERPTURlZmluZXMuaD4KKyNpbmNs
dWRlIDx3cGUvV2ViS2l0RE9NRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RE9NRWxl
bWVudC5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRET01Ob2RlLmg+CisjaW5jbHVkZSA8d3BlL1dl
YktpdERPTU9iamVjdC5oPgorCisjdW5kZWYgX19XRUJLSVRET01fSF9JTlNJREVfXworCisjZW5k
aWYgLyogd2Via2l0ZG9tX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdEZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRGcmFtZS5oCmluZGV4IDk0ZjBk
MDA0MDYzZTNmYTUyYzg0NmE1YWUyOGMwMjBlMjQwYmQxZjIuLmEzYzYzOTRkYWQxZjA3NWI3NGVh
ZDNjNmFkM2M5ZTYxOGU5ZDg0NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdEZyYW1lLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0RnJhbWUuaApAQCAtMjgs
NiArMjgsNyBAQAogI2luY2x1ZGUgPGpzYy9qc2MuaD4KICNpbmNsdWRlIDx3cGUvV2ViS2l0RGVm
aW5lcy5oPgogI2luY2x1ZGUgPHdwZS9XZWJLaXRTY3JpcHRXb3JsZC5oPgorI2luY2x1ZGUgPHdw
ZS93ZWJraXRkb20uaD4KIAogR19CRUdJTl9ERUNMUwogCkBAIC01MywyMCArNTQsMjkgQEAgc3Ry
dWN0IF9XZWJLaXRGcmFtZUNsYXNzIHsKIH07CiAKIFdFQktJVF9BUEkgR1R5cGUKLXdlYmtpdF9m
cmFtZV9nZXRfdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKTsKK3dlYmtpdF9mcmFt
ZV9nZXRfdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKTsKIAog
V0VCS0lUX0FQSSBnYm9vbGVhbgotd2Via2l0X2ZyYW1lX2lzX21haW5fZnJhbWUgICAgICAgICAg
ICAgICAgICAgKFdlYktpdEZyYW1lICAgICAgICpmcmFtZSk7Cit3ZWJraXRfZnJhbWVfaXNfbWFp
bl9mcmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAg
KmZyYW1lKTsKIAogV0VCS0lUX0FQSSBjb25zdCBnY2hhciAqCi13ZWJraXRfZnJhbWVfZ2V0X3Vy
aSAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lKTsKK3dl
YmtpdF9mcmFtZV9nZXRfdXJpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChX
ZWJLaXRGcmFtZSAgICAgICAqZnJhbWUpOwogCiBXRUJLSVRfQVBJIEpTQ0NvbnRleHQgKgotd2Vi
a2l0X2ZyYW1lX2dldF9qc19jb250ZXh0ICAgICAgICAgICAgICAgICAgKFdlYktpdEZyYW1lICAg
ICAgICpmcmFtZSk7Cit3ZWJraXRfZnJhbWVfZ2V0X2pzX2NvbnRleHQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lKTsKIAogV0VCS0lUX0FQSSBK
U0NDb250ZXh0ICoKLXdlYmtpdF9mcmFtZV9nZXRfanNfY29udGV4dF9mb3Jfc2NyaXB0X3dvcmxk
IChXZWJLaXRGcmFtZSAgICAgICAqZnJhbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgV2ViS2l0U2NyaXB0V29ybGQgKndvcmxkKTsKK3dlYmtpdF9mcmFt
ZV9nZXRfanNfY29udGV4dF9mb3Jfc2NyaXB0X3dvcmxkICAgICAgICAgICAgIChXZWJLaXRGcmFt
ZSAgICAgICAqZnJhbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgV2ViS2l0U2NyaXB0V29ybGQgKndvcmxkKTsKKworV0VCS0lUX0FQ
SSBKU0NWYWx1ZSAqCit3ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0ICAg
ICAgICAgICAgICAgICAoV2ViS2l0RnJhbWUgICAgICAgKmZyYW1lLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdERPTU9iamVj
dCAgICpkb21fb2JqZWN0KTsKKworV0VCS0lUX0FQSSBKU0NWYWx1ZSAqCit3ZWJraXRfZnJhbWVf
Z2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0X2luX3NjcmlwdF93b3JsZCAoV2ViS2l0RnJhbWUg
ICAgICAgKmZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFdlYktpdERPTU9iamVjdCAgICpkb21fb2JqZWN0LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFNj
cmlwdFdvcmxkICp3b3JsZCk7CiAKIEdfRU5EX0RFQ0xTCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdFdlYkhpdFRlc3RS
ZXN1bHQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3Bl
L1dlYktpdFdlYkhpdFRlc3RSZXN1bHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYzQzYjI1YThjZTI3YWViYzQy
YzFjODlmNjhjZWVhODU2MmU1MjA3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0V2ViSGl0VGVzdFJlc3VsdC5o
CkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiwxIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisK
KyNpZiAhZGVmaW5lZChfX1dFQktJVF9XRUJfRVhURU5TSU9OX0hfSU5TSURFX18pICYmICFkZWZp
bmVkKFdFQktJVDJfQ09NUElMQVRJT04pCisjZXJyb3IgIk9ubHkgPHdwZS93ZWJraXQtd2ViLWV4
dGVuc2lvbi5oPiBjYW4gYmUgaW5jbHVkZWQgZGlyZWN0bHkuIgorI2VuZGlmCisKKyNpZm5kZWYg
V2ViS2l0V2ViSGl0VGVzdFJlc3VsdF9oCisjZGVmaW5lIFdlYktpdFdlYkhpdFRlc3RSZXN1bHRf
aAorCisjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5l
cy5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRIaXRUZXN0UmVzdWx0Lmg+CisjaW5jbHVkZSA8d3Bl
L3dlYmtpdGRvbS5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVfV0VC
X0hJVF9URVNUX1JFU1VMVCAgICAgICAgICAgICh3ZWJraXRfd2ViX2hpdF90ZXN0X3Jlc3VsdF9n
ZXRfdHlwZSgpKQorI2RlZmluZSBXRUJLSVRfV0VCX0hJVF9URVNUX1JFU1VMVChvYmopICAgICAg
ICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9XRUJf
SElUX1RFU1RfUkVTVUxULCBXZWJLaXRXZWJIaXRUZXN0UmVzdWx0KSkKKyNkZWZpbmUgV0VCS0lU
X0lTX1dFQl9ISVRfVEVTVF9SRVNVTFQob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFO
Q0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfV0VCX0hJVF9URVNUX1JFU1VMVCkpCisjZGVmaW5l
IFdFQktJVF9XRUJfSElUX1RFU1RfUkVTVUxUX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNL
X0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX1dFQl9ISVRfVEVTVF9SRVNVTFQsIFdl
YktpdFdlYkhpdFRlc3RSZXN1bHRDbGFzcykpCisjZGVmaW5lIFdFQktJVF9JU19XRUJfSElUX1RF
U1RfUkVTVUxUX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwg
IFdFQktJVF9UWVBFX1dFQl9ISVRfVEVTVF9SRVNVTFQpKQorI2RlZmluZSBXRUJLSVRfV0VCX0hJ
VF9URVNUX1JFU1VMVF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1Mo
KG9iaiksICBXRUJLSVRfVFlQRV9XRUJfSElUX1RFU1RfUkVTVUxULCBXZWJLaXRXZWJIaXRUZXN0
UmVzdWx0Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0V2ViSGl0VGVzdFJlc3VsdCAg
ICAgICAgV2ViS2l0V2ViSGl0VGVzdFJlc3VsdDsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRXZWJI
aXRUZXN0UmVzdWx0Q2xhc3MgICBXZWJLaXRXZWJIaXRUZXN0UmVzdWx0Q2xhc3M7Cit0eXBlZGVm
IHN0cnVjdCBfV2ViS2l0V2ViSGl0VGVzdFJlc3VsdFByaXZhdGUgV2ViS2l0V2ViSGl0VGVzdFJl
c3VsdFByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0V2ViSGl0VGVzdFJlc3VsdCB7CisgICAgV2Vi
S2l0SGl0VGVzdFJlc3VsdCBwYXJlbnQ7CisKKyAgICBXZWJLaXRXZWJIaXRUZXN0UmVzdWx0UHJp
dmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2ViS2l0V2ViSGl0VGVzdFJlc3VsdENsYXNzIHsK
KyAgICBXZWJLaXRIaXRUZXN0UmVzdWx0Q2xhc3MgcGFyZW50X2NsYXNzOworCisgICAgdm9pZCAo
Kl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQx
KSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9p
ZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3
ZWJraXRfd2ViX2hpdF90ZXN0X3Jlc3VsdF9nZXRfdHlwZSAodm9pZCk7CisKK1dFQktJVF9BUEkg
V2ViS2l0RE9NTm9kZSAqCit3ZWJraXRfd2ViX2hpdF90ZXN0X3Jlc3VsdF9nZXRfbm9kZSAoV2Vi
S2l0V2ViSGl0VGVzdFJlc3VsdCAqaGl0X3Rlc3RfcmVzdWx0KTsKKworR19FTkRfREVDTFMKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL3dwZS9XZWJLaXRXZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL3dwZS9XZWJLaXRXZWJQYWdlLmgKaW5kZXggZWVmYmQ4MTAzOTQzOGIy
OWIxODI2MmMzNDNhZmE0NDY0ZWIyNDBmOC4uMzBlMGY5MzM1OGMxYmRkOWYxMWM4NDFkNmVjZmMw
ZmQxNzQyYzdkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS93cGUvV2ViS2l0V2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdFdlYlBhZ2UuaApAQCAtMjgsNiArMjgs
NyBAQAogI2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CiAjaW5jbHVkZSA8d3BlL1dlYktp
dEZyYW1lLmg+CiAjaW5jbHVkZSA8d3BlL1dlYktpdFdlYkVkaXRvci5oPgorI2luY2x1ZGUgPHdw
ZS93ZWJraXRkb20uaD4KIAogR19CRUdJTl9ERUNMUwogCkBAIC00NSw2ICs0NiwyMSBAQCB0eXBl
ZGVmIHN0cnVjdCBfV2ViS2l0V2ViUGFnZVByaXZhdGUgV2ViS2l0V2ViUGFnZVByaXZhdGU7CiAv
KiBGb3J3YXJkIGRlY2xhcmF0aW9ucyAqLwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFdlYkVkaXRv
ciAgICAgIFdlYktpdFdlYkVkaXRvcjsKIAorLyoqCisgKiBXZWJLaXRGb3JtU3VibWlzc2lvblN0
ZXA6CisgKiBAV0VCS0lUX0ZPUk1fU1VCTUlTU0lPTl9XSUxMX1NFTkRfRE9NX0VWRU5UOiBpbmRp
Y2F0ZXMgdGhlIGZvcm0ncworICogRE9NIHN1Ym1pdCBldmVudCBpcyBhYm91dCB0byBiZSBlbWl0
dGVkLgorICogQFdFQktJVF9GT1JNX1NVQk1JU1NJT05fV0lMTF9DT01QTEVURTogaW5kaWNhdGVz
IHRoZSBmb3JtIGlzIGFib3V0CisgKiB0byBiZSBzdWJtaXR0ZWQuCisgKgorICogVXNlZCB0byBp
bmRpY2F0ZSBhIHBhcnRpY3VsYXIgc3RhZ2UgaW4gZm9ybSBzdWJtaXNzaW9uLiBTZWUKKyAqICNX
ZWJLaXRXZWJQYWdlOjp3aWxsLXN1Ym1pdC1mb3JtLgorICovCit0eXBlZGVmIGVudW0geworICAg
IFdFQktJVF9GT1JNX1NVQk1JU1NJT05fV0lMTF9TRU5EX0RPTV9FVkVOVCwKKyAgICBXRUJLSVRf
Rk9STV9TVUJNSVNTSU9OX1dJTExfQ09NUExFVEUsCit9IFdlYktpdEZvcm1TdWJtaXNzaW9uU3Rl
cDsKKwogc3RydWN0IF9XZWJLaXRXZWJQYWdlIHsKICAgICBHT2JqZWN0IHBhcmVudDsKIApAQCAt
NzAsNiArODYsOSBAQCB3ZWJraXRfd2ViX3BhZ2VfZ2V0X21haW5fZnJhbWUgICAoV2ViS2l0V2Vi
UGFnZSAqd2ViX3BhZ2UpOwogV0VCS0lUX0FQSSBXZWJLaXRXZWJFZGl0b3IgKgogd2Via2l0X3dl
Yl9wYWdlX2dldF9lZGl0b3IgICAgICAgKFdlYktpdFdlYlBhZ2UgKndlYl9wYWdlKTsKIAorV0VC
S0lUX0FQSSBXZWJLaXRET01Eb2N1bWVudCAqCit3ZWJraXRfd2ViX3BhZ2VfZ2V0X2RvbV9kb2N1
bWVudCAoV2ViS2l0V2ViUGFnZSAqd2ViX3BhZ2UpOworCiBHX0VORF9ERUNMUwogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
d3BlL1dlYktpdFdlYlByb2Nlc3NFbnVtVHlwZXMuY3BwLnRlbXBsYXRlIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvV2ViS2l0V2ViUHJvY2Vzc0VudW1U
eXBlcy5jcHAudGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjIwZWYxNWNkNzkyYzY4N2EzYzk2ODRhZGI1
OGJmZmZiNTc3YzE0OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdFdlYlByb2Nlc3NFbnVtVHlwZXMuY3BwLnRl
bXBsYXRlCkBAIC0wLDAgKzEsNjIgQEAKKy8qKiogQkVHSU4gZmlsZS1oZWFkZXIgKioqLworLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSA8Y29uZmlnLmg+Cisj
aW5jbHVkZSAiV2ViS2l0V2ViUHJvY2Vzc0VudW1UeXBlcy5oIgorCisjaW5jbHVkZSA8d3BlL3dl
YmtpdC13ZWItZXh0ZW5zaW9uLmg+CitleHRlcm4gIkMiIHsKKy8qKiogRU5EIGZpbGUtaGVhZGVy
ICoqKi8KKworCisvKioqIEJFR0lOIGZpbGUtcHJvZHVjdGlvbiAqKiovCisvLyBFbnVtZXJhdGlv
bnMgZnJvbSBAZmlsZW5hbWVALgorLyoqKiBFTkQgZmlsZS1wcm9kdWN0aW9uICoqKi8KKworCisv
KioqIEJFR0lOIHZhbHVlLWhlYWRlciAqKiovCitHVHlwZSBAZW51bV9uYW1lQF9nZXRfdHlwZSgp
Cit7CisgICAgc3RhdGljIGNvbnN0IEdAVHlwZUBWYWx1ZSB2YWx1ZXNbXSA9IHsKKy8qKiogRU5E
IHZhbHVlLWhlYWRlciAqKiovCisKKworLyoqKiBCRUdJTiB2YWx1ZS1wcm9kdWN0aW9uICoqKi8K
KyAgICAgICAgeyBAVkFMVUVOQU1FQCwgIkBWQUxVRU5BTUVAIiwgIkB2YWx1ZW5pY2tAIiB9LAor
LyoqKiBFTkQgdmFsdWUtcHJvZHVjdGlvbiAqKiovCisKKworLyoqKiBCRUdJTiB2YWx1ZS10YWls
ICoqKi8KKyAgICAgICAgeyAwLCBOVUxMLCBOVUxMIH0KKyAgICB9OworCisgICAgc3RhdGljIEdU
eXBlIHR5cGUgPSAwOworICAgIGlmIChHX1VOTElLRUxZKCF0eXBlKSkKKyAgICAgICAgdHlwZSA9
IGdfQHR5cGVAX3JlZ2lzdGVyX3N0YXRpYygiQEVudW1OYW1lQCIsIHZhbHVlcyk7CisKKyAgICBy
ZXR1cm4gdHlwZTsKK30KKworLyoqKiBFTkQgdmFsdWUtdGFpbCAqKiovCisKKworLyoqKiBCRUdJ
TiBmaWxlLXRhaWwgKioqLworfQorLyoqKiBFTkQgZmlsZS10YWlsICoqKi8KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdFdl
YlByb2Nlc3NFbnVtVHlwZXMuaC50ZW1wbGF0ZSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvd3BlL1dlYktpdFdlYlByb2Nlc3NFbnVtVHlwZXMuaC50ZW1wbGF0
ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41NjA5OTMxMzhjZThiNTUxMzJkNzkxZGU1MmU2ZDBmZmFlOGExN2MzCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS93cGUvV2ViS2l0V2ViUHJvY2Vzc0VudW1UeXBlcy5oLnRlbXBsYXRlCkBAIC0wLDAgKzEs
NTQgQEAKKy8qKiogQkVHSU4gZmlsZS1oZWFkZXIgKioqLworLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNyBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqLworCisjaWYgIWRlZmluZWQoX19XRUJLSVRfV0VCX0VYVEVOU0lPTl9IX0lO
U0lERV9fKSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3
cGUvd2Via2l0LXdlYi1leHRlbnNpb24uaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNl
bmRpZgorCisjaWZuZGVmIFdFQktJVF9XRUJfUFJPQ0VTU19FTlVNX1RZUEVTX0gKKyNkZWZpbmUg
V0VCS0lUX1dFQl9QUk9DRVNTX0VOVU1fVFlQRVNfSAorCisjaW5jbHVkZSA8Z2xpYi1vYmplY3Qu
aD4KKyNpbmNsdWRlIDx3cGUvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisvKioq
IEVORCBmaWxlLWhlYWRlciAqKiovCisKKworLyoqKiBCRUdJTiBmaWxlLXByb2R1Y3Rpb24gKioq
LworLyogRW51bWVyYXRpb25zIGZyb20gQGJhc2VuYW1lQC4gKi8KKy8qKiogRU5EIGZpbGUtcHJv
ZHVjdGlvbiAqKiovCisKKworLyoqKiBCRUdJTiBlbnVtZXJhdGlvbi1wcm9kdWN0aW9uICoqKi8K
KyNkZWZpbmUgV0VCS0lUX1RZUEVfQEVOVU1TSE9SVEAgQGVudW1fbmFtZUBfZ2V0X3R5cGUgKCkK
KworV0VCS0lUX0FQSSBHVHlwZQorQGVudW1fbmFtZUBfZ2V0X3R5cGUgKHZvaWQpOworCisvKioq
IEVORCBlbnVtZXJhdGlvbi1wcm9kdWN0aW9uICoqKi8KKworCisvKioqIEJFR0lOIGZpbGUtdGFp
bCAqKiovCitHX0VORF9ERUNMUworCisjZW5kaWYKKy8qKiogRU5EIGZpbGUtdGFpbCAqKiovCisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
d3BlL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL3dwZS93ZWJraXQtd2ViLWV4dGVuc2lvbi5oCmluZGV4IDZmMDZhY2Qy
YWIwYjlkZTJlM2YyY2NkNWQxODkzZWU4YTcwYThiYmMuLjc5NmIyMWU0MWYxMTQ0YWZmYWYzMzhh
NzhkYTdiMDc4OGY1MjhhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvd3BlL3dlYmtpdC13ZWItZXh0ZW5zaW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS93cGUvd2Via2l0LXdlYi1leHRl
bnNpb24uaApAQCAtMzYsNyArMzYsOSBAQAogI2luY2x1ZGUgPHdwZS9XZWJLaXRVUklSZXNwb25z
ZS5oPgogI2luY2x1ZGUgPHdwZS9XZWJLaXRXZWJFZGl0b3IuaD4KICNpbmNsdWRlIDx3cGUvV2Vi
S2l0V2ViRXh0ZW5zaW9uLmg+CisjaW5jbHVkZSA8d3BlL1dlYktpdFdlYkhpdFRlc3RSZXN1bHQu
aD4KICNpbmNsdWRlIDx3cGUvV2ViS2l0V2ViUGFnZS5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRX
ZWJQcm9jZXNzRW51bVR5cGVzLmg+CiAKICN1bmRlZiBfX1dFQktJVF9XRUJfRVhURU5TSU9OX0hf
SU5TSURFX18KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggYzIzMmZmYWNjZTM2MzE3NGNjYTQ0
ODZlYzY3ZTY0YTFiM2ZiZTliOS4uMWI5YjBjOGM5ZjFmM2YzYWZiZmU1YTE0ZjAxNDkyYmQ2NDEx
NDFmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC03Nyw2ICs3Nyw3IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9Vc2VyU2NyaXB0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyU3R5bGVTaGVldC5o
PgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvUHJvY2Vzc1ByaXZp
bGVnZS5oPgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCiAjaW5jbHVkZSAiV2ViTm90aWZp
Y2F0aW9uTWFuYWdlci5oIgpAQCAtMzI3LDYgKzMyOCw3IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6
OnNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoV2ViUGFnZUdyb3VwUHJveHkqIHBhZ2VH
cm91CiAKIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoV2Vi
UGFnZUdyb3VwUHJveHkqIHBhZ2VHcm91cCwgYm9vbCBlbmFibGVkKQogeworICAgIEFTU0VSVCgh
aGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9jZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVz
KSk7CiAgICAgaWYgKGVuYWJsZWQpIHsKICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
ZW5zdXJlTGVnYWN5UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbkluTmV0d29ya1Byb2Nlc3MoKTsKICAg
ICAgICAgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6ZW5zdXJlV2Vic2l0ZURhdGFTdG9yZVNl
c3Npb24oV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM6OmxlZ2FjeVByaXZhdGVTZXNzaW9uUGFy
YW1ldGVycygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9NZWRpYVN0
cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5jcHAKaW5kZXggZTRkMzdhMjM2Y2NjMDJmYjQ1ODRiNmUzNmIxYmM0OGQ5NThlNzQ0YS4uOWNj
YWNlMDU3N2M3ZmJjOGZmNTcwNmJkZmFkOTNlNDM3Y2M2ZTFmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL01lZGlhU3RyZWFtL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgdm9p
ZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnNlbmRVc2VyTWVkaWFSZXF1ZXN0
KFVzZXJNZWRpYVJlcXVlc3QmIHUKICAgICBBU1NFUlQod2ViRnJhbWUpOwogCiAgICAgYXV0byog
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbiA9IHVzZXJSZXF1ZXN0LnRvcExldmVsRG9jdW1lbnRPcmln
aW4oKTsKLSAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0VXNl
ck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHJlcXVlc3RJRCwgd2ViRnJhbWUtPmZyYW1lSUQoKSwg
U2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oKnVzZXJSZXF1ZXN0LnVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luKCkpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9y
aWdpbigqdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIHVzZXJSZXF1ZXN0LnJlcXVlc3QoKSkpOwor
ICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3RVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yRnJhbWUocmVxdWVzdElELCB3ZWJGcmFtZS0+ZnJhbWVJRCgpLCB1c2VyUmVx
dWVzdC51c2VyTWVkaWFEb2N1bWVudE9yaWdpbigpLT5kYXRhKCksIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4tPmRhdGEoKSwgdXNlclJlcXVlc3QucmVxdWVzdCgpKSk7CiB9CiAKIHZvaWQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpjYW5jZWxVc2VyTWVkaWFSZXF1ZXN0KFVzZXJN
ZWRpYVJlcXVlc3QmIHJlcXVlc3QpCkBAIC0xODIsNyArMTgyLDcgQEAgdm9pZCBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmVudW1lcmF0ZU1lZGlhRGV2aWNlcyhNZWRpYURldmlj
ZXNFbnVtZXIKIAogICAgIFNlY3VyaXR5T3JpZ2luKiB0b3BMZXZlbERvY3VtZW50T3JpZ2luID0g
cmVxdWVzdC50b3BMZXZlbERvY3VtZW50T3JpZ2luKCk7CiAgICAgQVNTRVJUKHRvcExldmVsRG9j
dW1lbnRPcmlnaW4pOwotICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkVu
dW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHJlcXVlc3RJRCwgd2ViRnJhbWUtPmZyYW1lSUQo
KSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oKnJlcXVlc3QudXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4oKSksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3Jp
Z2luKCp0b3BMZXZlbERvY3VtZW50T3JpZ2luKSkpOworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKHJlcXVlc3RJRCwg
d2ViRnJhbWUtPmZyYW1lSUQoKSwgcmVxdWVzdC51c2VyTWVkaWFEb2N1bWVudE9yaWdpbigpLT5k
YXRhKCksIHRvcExldmVsRG9jdW1lbnRPcmlnaW4tPmRhdGEoKSkpOwogfQogCiB2b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsTWVkaWFEZXZpY2VzRW51bWVyYXRp
b24oV2ViQ29yZTo6TWVkaWFEZXZpY2VzRW51bWVyYXRpb25SZXF1ZXN0JiByZXF1ZXN0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50
Q29ubmVjdGlvbi5jcHAKaW5kZXggMWUyMjEyZTA1OGVhZTgxNDQ1NGRiZmJiZDk2ZTM1NzliZWM1
MWU4Ny4uNTg5ODQwMmMzMTQ5Y2NiMzQ5MzcxNjM2YjA3MjFhNjFmOTc5NGY3NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENv
bm5lY3Rpb24uY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiV2ViU1dPcmlnaW5UYWJs
ZS5oIgogI2luY2x1ZGUgIldlYlNXU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4u
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2VydmljZVdvcmtlckNsaWVudERhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nl
cnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oPgpAQCAtOTUsNyArOTYsNyBAQCB2b2lkIFdlYlNXQ2xp
ZW50Q29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcklk
ZW50aWZpZXIgZAogCiB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cmVnaXN0ZXJTZXJ2aWNl
V29ya2VyQ2xpZW50KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiBkYXRhLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiYgY29udHJvbGxpbmdT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikKIHsKLSAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudCB7IFNl
Y3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKHRvcE9yaWdpbiksIGRhdGEsIGNv
bnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgfSk7CisgICAgc2Vu
ZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpSZWdpc3RlclNlcnZpY2VXb3JrZXJD
bGllbnQgeyB0b3BPcmlnaW4uZGF0YSgpLCBkYXRhLCBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JZGVudGlmaWVyIH0pOwogfQogCiB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlv
bjo6dW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoRG9jdW1lbnRJZGVudGlmaWVyIGNvbnRl
eHRJZGVudGlmaWVyKQpAQCAtMTUzLDcgKzE1NCw3IEBAIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0
aW9uOjptYXRjaFJlZ2lzdHJhdGlvbihjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBj
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBydW5PckRlbGF5VGFza0ZvckltcG9ydChb
dGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgdG9wT3JpZ2luID0gU2VjdXJpdHlP
cmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4odG9wT3JpZ2luKSwgY2xpZW50VVJMXSgpIG11
dGFibGUgeworICAgIHJ1bk9yRGVsYXlUYXNrRm9ySW1wb3J0KFt0aGlzLCBjYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spLCB0b3BPcmlnaW4gPSB0b3BPcmlnaW4uZGF0YSgpLCBjbGllbnRVUkxd
KCkgbXV0YWJsZSB7CiAgICAgICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSArK21fcHJldmlvdXND
YWxsYmFja0lkZW50aWZpZXI7CiAgICAgICAgIG1fb25nb2luZ01hdGNoUmVnaXN0cmF0aW9uVGFz
a3MuYWRkKGNhbGxiYWNrSUQsIFdURk1vdmUoY2FsbGJhY2spKTsKICAgICAgICAgc2VuZChNZXNz
YWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpNYXRjaFJlZ2lzdHJhdGlvbihjYWxsYmFja0lE
LCB0b3BPcmlnaW4sIGNsaWVudFVSTCkpOwpAQCAtMTcyLDcgKzE3Myw3IEBAIHZvaWQgV2ViU1dD
bGllbnRDb25uZWN0aW9uOjp3aGVuUmVnaXN0cmF0aW9uUmVhZHkoY29uc3QgU2VjdXJpdHlPcmln
aW4mIHRvcE9yaWdpCiB7CiAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9ICsrbV9wcmV2aW91c0Nh
bGxiYWNrSWRlbnRpZmllcjsKICAgICBtX29uZ29pbmdSZWdpc3RyYXRpb25SZWFkeVRhc2tzLmFk
ZChjYWxsYmFja0lELCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAgc2VuZChNZXNzYWdlczo6V2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOjpXaGVuUmVnaXN0cmF0aW9uUmVhZHkoY2FsbGJhY2tJRCwgU2Vj
dXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4odG9wT3JpZ2luKSwgY2xpZW50VVJM
KSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpXaGVuUmVnaXN0
cmF0aW9uUmVhZHkoY2FsbGJhY2tJRCwgdG9wT3JpZ2luLmRhdGEoKSwgY2xpZW50VVJMKSk7CiB9
CiAKIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpyZWdpc3RyYXRpb25SZWFkeSh1aW50NjRf
dCBjYWxsYmFja0lELCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYmIHJl
Z2lzdHJhdGlvbkRhdGEpCkBAIC0xOTEsNyArMTkyLDcgQEAgdm9pZCBXZWJTV0NsaWVudENvbm5l
Y3Rpb246OmdldFJlZ2lzdHJhdGlvbnMoY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwg
Y28KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHJ1bk9yRGVsYXlUYXNrRm9ySW1wb3J0
KFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB0b3BPcmlnaW4gPSBTZWN1cml0
eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbih0b3BPcmlnaW4pLCBjbGllbnRVUkxdKCkg
bXV0YWJsZSB7CisgICAgcnVuT3JEZWxheVRhc2tGb3JJbXBvcnQoW3RoaXMsIGNhbGxiYWNrID0g
V1RGTW92ZShjYWxsYmFjayksIHRvcE9yaWdpbiA9IHRvcE9yaWdpbi5kYXRhKCksIGNsaWVudFVS
TF0oKSBtdXRhYmxlIHsKICAgICAgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9ICsrbV9wcmV2aW91
c0NhbGxiYWNrSWRlbnRpZmllcjsKICAgICAgICAgbV9vbmdvaW5nR2V0UmVnaXN0cmF0aW9uc1Rh
c2tzLmFkZChjYWxsYmFja0lELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgICAgIHNlbmQoTWVz
c2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6R2V0UmVnaXN0cmF0aW9ucyhjYWxsYmFja0lE
LCB0b3BPcmlnaW4sIGNsaWVudFVSTCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
Y3BwCmluZGV4IDMwYmM5NTA1ODhiMTVjMDhhMzgyMThhNjVkNzU4MTA3YjMyOWZlZmUuLjk0NzNl
ZWY0ZDYxMjUyYWYzZGY0MDQxYjdmYTVlZjgwMDJlNjBkODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5jcHAKQEAgLTMyNyw2ICszMjcsMTIgQEAgdm9pZCBXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbjo6ZGlkRmluaXNoU2tpcFdhaXRpbmcodWludDY0X3QgY2FsbGJhY2tJ
RCkKICAgICAgICAgY2FsbGJhY2soKTsKIH0KIAorTk9fUkVUVVJOIHZvaWQgV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb246OnRlcm1pbmF0ZVByb2Nlc3MoKQoreworICAgIFJFTEVBU0VfTE9H
KFNlcnZpY2VXb3JrZXIsICJTZXJ2aWNlIHdvcmtlciBwcm9jZXNzIGlzIGV4aXRpbmcgYmVjYXVz
ZSBpdCBpcyBubyBsb25nZXIgbmVlZGVkIik7CisgICAgX2V4aXQoRVhJVF9TVUNDRVNTKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKaW5kZXggM2NiN2M2OGU4ZmY2MWFk
NjZkYzA2ZDlkOWYwZDJkNzBmMWQyNjNmMC4uOGU4MjA3ZDY5ZGYwMTdjYzRlZTdlNjg2ZjYxOTlk
ZWFjZGVkNzM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCkBAIC04Nyw2ICs4
Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjbGFpbUNvbXBsZXRlZCh1aW50NjRfdCBjbGFpbVJl
cXVlc3RJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZEZpbmlzaFNraXBXYWl0aW5nKHVpbnQ2NF90
IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgc2V0VXNlckFnZW50KFN0cmluZyYmIHVzZXJBZ2VudCk7
CisgICAgdm9pZCB0ZXJtaW5hdGVQcm9jZXNzKCk7CiAKICAgICBSZWY8SVBDOjpDb25uZWN0aW9u
PiBtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzOwogICAgIHVpbnQ2NF90IG1fcGFnZUdyb3Vw
SUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmlu
ZGV4IDczN2M0MWZlZDBmMGVhMTQ2Y2MzZTkwYzY0YzFkNjZiZGE3YzYwYmEuLjI3YmVlMzIzZWJi
OWFjZGMzMGZiMmY2OGEyNjBlMmNiNDk3ZGY0Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zNiw2ICszNiw3IEBAIG1lc3NhZ2VzIC0+
IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIHsKICAgICBEaWRGaW5pc2hTa2lwV2FpdGlu
Zyh1aW50NjRfdCBjYWxsYmFja0lEKQogICAgIFNldFVzZXJBZ2VudChTdHJpbmcgdXNlckFnZW50
KQogICAgIFVwZGF0ZVByZWZlcmVuY2VzU3RvcmUoc3RydWN0IFdlYktpdDo6V2ViUHJlZmVyZW5j
ZXNTdG9yZSBzdG9yZSkKKyAgICBUZXJtaW5hdGVQcm9jZXNzKCkKIH0KIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vzc2lvblN0
YXRlQ29udmVyc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAKaW5kZXggMWFlMmMzYzhiN2Q2MjIxNTI4Zjhh
YjE0NWI0YzhiYjdlYWQ2NzU5YS4uYTVkNDVhOWE4MGVlODU4MmFiNWQzZmY5YTc4MjY4ZGZjYmRi
OTIwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcApAQCAtMTE5LDcgKzEx
OSw3IEBAIFBhZ2VTdGF0ZSB0b1BhZ2VTdGF0ZShjb25zdCBXZWJDb3JlOjpIaXN0b3J5SXRlbSYg
aGlzdG9yeUl0ZW0pCiAgICAgcGFnZVN0YXRlLnRpdGxlID0gaGlzdG9yeUl0ZW0udGl0bGUoKTsK
ICAgICBwYWdlU3RhdGUubWFpbkZyYW1lU3RhdGUgPSB0b0ZyYW1lU3RhdGUoaGlzdG9yeUl0ZW0p
OwogICAgIHBhZ2VTdGF0ZS5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gaGlzdG9yeUl0
ZW0uc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgpOwotCisgICAgcGFnZVN0YXRlLnNlc3Np
b25TdGF0ZU9iamVjdCA9IGhpc3RvcnlJdGVtLnN0YXRlT2JqZWN0KCk7CiAgICAgcmV0dXJuIHBh
Z2VTdGF0ZTsKIH0KIApAQCAtMTkzLDYgKzE5Myw3IEBAIFJlZjxIaXN0b3J5SXRlbT4gdG9IaXN0
b3J5SXRlbShjb25zdCBQYWdlU3RhdGUmIHBhZ2VTdGF0ZSkKIHsKICAgICBSZWY8SGlzdG9yeUl0
ZW0+IGhpc3RvcnlJdGVtID0gSGlzdG9yeUl0ZW06OmNyZWF0ZShwYWdlU3RhdGUubWFpbkZyYW1l
U3RhdGUudXJsU3RyaW5nLCBwYWdlU3RhdGUudGl0bGUpOwogICAgIGhpc3RvcnlJdGVtLT5zZXRT
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KHBhZ2VTdGF0ZS5zaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5KTsKKyAgICBoaXN0b3J5SXRlbS0+c2V0U3RhdGVPYmplY3QocGFnZVN0YXRlLnNl
c3Npb25TdGF0ZU9iamVjdC5nZXQoKSk7CiAgICAgYXBwbHlGcmFtZVN0YXRlKGhpc3RvcnlJdGVt
LCBwYWdlU3RhdGUubWFpbkZyYW1lU3RhdGUpOwogCiAgICAgcmV0dXJuIGhpc3RvcnlJdGVtOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA0N2I0ZGJiODIzYjVhZWFhMWQ3ZTMwNWQ4MmEzZWMz
YTE3OTc5MDczLi5kNGVlZTMyYzlkYjkxNzJjZmM5MDRiMGVmNGRiNjRiMzY2MjRkMDFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtNzMxLDE3ICs3MzEsMTcgQEAgdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYg
ZGF0YWJhc2UKICAgICBBU1NFUlQod2ViRnJhbWUpOwogICAgIAogICAgIGF1dG8mIG9yaWdpbiA9
IGZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCk7Ci0gICAgYXV0byBvcmlnaW5EYXRh
ID0gU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4ob3JpZ2luKTsKKyAgICBh
dXRvJiBvcmlnaW5EYXRhID0gb3JpZ2luLmRhdGEoKTsKICAgICBhdXRvJiB0cmFja2VyID0gRGF0
YWJhc2VUcmFja2VyOjpzaW5nbGV0b24oKTsKICAgICBhdXRvIGN1cnJlbnRRdW90YSA9IHRyYWNr
ZXIucXVvdGEob3JpZ2luRGF0YSk7CiAgICAgYXV0byBjdXJyZW50T3JpZ2luVXNhZ2UgPSB0cmFj
a2VyLnVzYWdlKG9yaWdpbkRhdGEpOwogICAgIHVpbnQ2NF90IG5ld1F1b3RhID0gMDsKLSAgICBS
ZWZQdHI8QVBJOjpTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4gPSBBUEk6OlNlY3VyaXR5
T3JpZ2luOjpjcmVhdGUoU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRGF0YWJhc2VJZGVudGlmaWVy
KFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKG9yaWdpbikuZGF0YWJhc2VJ
ZGVudGlmaWVyKCkpLT5zZWN1cml0eU9yaWdpbigpKTsKKyAgICBSZWZQdHI8QVBJOjpTZWN1cml0
eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4gPSBBUEk6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoU2Vj
dXJpdHlPcmlnaW5EYXRhOjpmcm9tRGF0YWJhc2VJZGVudGlmaWVyKG9yaWdpbkRhdGEuZGF0YWJh
c2VJZGVudGlmaWVyKCkpLT5zZWN1cml0eU9yaWdpbigpKTsKICAgICBuZXdRdW90YSA9IG1fcGFn
ZS5pbmplY3RlZEJ1bmRsZVVJQ2xpZW50KCkuZGlkRXhjZWVkRGF0YWJhc2VRdW90YSgmbV9wYWdl
LCBzZWN1cml0eU9yaWdpbi5nZXQoKSwgZGF0YWJhc2VOYW1lLCBkZXRhaWxzLmRpc3BsYXlOYW1l
KCksIGN1cnJlbnRRdW90YSwgY3VycmVudE9yaWdpblVzYWdlLCBkZXRhaWxzLmN1cnJlbnRVc2Fn
ZSgpLCBkZXRhaWxzLmV4cGVjdGVkVXNhZ2UoKSk7CiAKICAgICBpZiAoIW5ld1F1b3RhKSB7CiAg
ICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmRTeW5jKAotICAgICAgICAgICAgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVkZWRE
YXRhYmFzZVF1b3RhKHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJv
bVNlY3VyaXR5T3JpZ2luKG9yaWdpbikuZGF0YWJhc2VJZGVudGlmaWVyKCksIGRhdGFiYXNlTmFt
ZSwgZGV0YWlscy5kaXNwbGF5TmFtZSgpLCBjdXJyZW50UXVvdGEsIGN1cnJlbnRPcmlnaW5Vc2Fn
ZSwgZGV0YWlscy5jdXJyZW50VXNhZ2UoKSwgZGV0YWlscy5leHBlY3RlZFVzYWdlKCkpLAorICAg
ICAgICAgICAgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVkZWREYXRhYmFzZVF1b3RhKHdl
YkZyYW1lLT5mcmFtZUlEKCksIG9yaWdpbkRhdGEuZGF0YWJhc2VJZGVudGlmaWVyKCksIGRhdGFi
YXNlTmFtZSwgZGV0YWlscy5kaXNwbGF5TmFtZSgpLCBjdXJyZW50UXVvdGEsIGN1cnJlbnRPcmln
aW5Vc2FnZSwgZGV0YWlscy5jdXJyZW50VXNhZ2UoKSwgZGV0YWlscy5leHBlY3RlZFVzYWdlKCkp
LAogICAgICAgICAgICAgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVkZWREYXRhYmFzZVF1
b3RhOjpSZXBseShuZXdRdW90YSksIG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6aW5maW5pdHko
KSwgSVBDOjpTZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQp
OwogICAgIH0KIApAQCAtNzY2LDcgKzc2Niw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFj
aGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sCiAK
ICAgICB1aW50NjRfdCBuZXdRdW90YSA9IDA7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoCi0gICAgICAgIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlP
cmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4ob3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIo
KSwgY3VycmVudFF1b3RhLCB0b3RhbEJ5dGVzTmVlZGVkKSwKKyAgICAgICAgTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6UmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShvcmlnaW4uZGF0
YSgpLmRhdGFiYXNlSWRlbnRpZmllcigpLCBjdXJyZW50UXVvdGEsIHRvdGFsQnl0ZXNOZWVkZWQp
LAogICAgICAgICBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZWFjaGVkQXBwbGljYXRpb25DYWNo
ZU9yaWdpblF1b3RhOjpSZXBseShuZXdRdW90YSksIG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6
aW5maW5pdHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2ls
bFN1c3BlbmQpOwogCiAgICAgY2FjaGVTdG9yYWdlLnN0b3JlVXBkYXRlZFF1b3RhRm9yT3JpZ2lu
KCZvcmlnaW4sIG5ld1F1b3RhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4
IDNmYmIxN2QxMjUyNTkyZmNkOTgzY2FjNjZkNjc4ZmVhMjgzYTJmZGQuLmFmMzg2NjhlY2I5MmQz
MjFkNmZhYzQ0NmVhMDliMTJjMTE4NGI1ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTkwLDYgKzkwLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1dpZGdldC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvV2luZG93RmVhdHVyZXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIApAQCAtODQ1LDcgKzg0Niw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihjb25zdCBOYXZp
Z2F0CiAgICAgRnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGE7CiAgICAgb3Jp
Z2luYXRpbmdGcmFtZUluZm9EYXRhLmlzTWFpbkZyYW1lID0gbmF2aWdhdGlvbkFjdGlvbi5pbml0
aWF0ZWRCeU1haW5GcmFtZSgpID09IEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpZZXM7CiAgICAgb3Jp
Z2luYXRpbmdGcmFtZUluZm9EYXRhLnJlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3Qoc291cmNlRG9j
dW1lbnQudXJsKCkpOwotICAgIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YS5zZWN1cml0eU9yaWdp
biA9IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKHNvdXJjZURvY3VtZW50
LnNlY3VyaXR5T3JpZ2luKCkpOworICAgIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YS5zZWN1cml0
eU9yaWdpbiA9IHNvdXJjZURvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpOwogICAgIGlm
IChvcmlnaW5hdGluZ0ZyYW1lKQogICAgICAgICBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEuZnJh
bWVJRCA9IG9yaWdpbmF0aW5nRnJhbWUtPmZyYW1lSUQoKTsKIApAQCAtMTczOCwxMyArMTczOSwx
MyBAQCBSZW1vdGVBWE9iamVjdFJlZiBXZWJGcmFtZUxvYWRlckNsaWVudDo6YWNjZXNzaWJpbGl0
eVJlbW90ZU9iamVjdCgpCiAgICAgcmV0dXJuIHdlYlBhZ2UtPmFjY2Vzc2liaWxpdHlSZW1vdGVP
YmplY3QoKTsKIH0KICAgICAKLU5TQ2FjaGVkVVJMUmVzcG9uc2UgKldlYkZyYW1lTG9hZGVyQ2xp
ZW50Ojp3aWxsQ2FjaGVSZXNwb25zZShEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgTlNDYWNoZWRVUkxSZXNwb25zZSogcmVzcG9uc2UpIGNvbnN0Cit2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50Ojp3aWxsQ2FjaGVSZXNwb25zZShEb2N1bWVudExvYWRlciosIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgTlNDYWNoZWRVUkxSZXNwb25zZSogcmVzcG9uc2UsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoTlNDYWNoZWRVUkxSZXNwb25zZSAqKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikgY29uc3QKIHsKICAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgpOwog
ICAgIGlmICghd2ViUGFnZSkKLSAgICAgICAgcmV0dXJuIHJlc3BvbnNlOworICAgICAgICByZXR1
cm4gY29tcGxldGlvbkhhbmRsZXIocmVzcG9uc2UpOwogCi0gICAgcmV0dXJuIHdlYlBhZ2UtPmlu
amVjdGVkQnVuZGxlUmVzb3VyY2VMb2FkQ2xpZW50KCkuc2hvdWxkQ2FjaGVSZXNwb25zZSgqd2Vi
UGFnZSwgKm1fZnJhbWUsIGlkZW50aWZpZXIpID8gcmVzcG9uc2UgOiBuaWw7CisgICAgcmV0dXJu
IGNvbXBsZXRpb25IYW5kbGVyKHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlUmVzb3VyY2VMb2FkQ2xp
ZW50KCkuc2hvdWxkQ2FjaGVSZXNwb25zZSgqd2ViUGFnZSwgKm1fZnJhbWUsIGlkZW50aWZpZXIp
ID8gcmVzcG9uc2UgOiBuaWwpOwogfQogCiBOU0RpY3Rpb25hcnkgKldlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkYXRhRGV0ZWN0aW9uQ29udGV4dCgpCkBAIC0xNzkzLDYgKzE3OTQsNyBAQCBib29sIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpzaG91bGRGb3JjZVVuaXZlcnNhbEFjY2Vzc0Zyb21Mb2NhbFVS
TChjb25zdCBXZWJDb3JlOgogCiBSZWY8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCkKIHsKKyAgICBBU1NFUlQoIWhh
c1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzUmF3Q29va2llcykp
OwogICAgIHJldHVybiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUobV9mcmFtZSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggOWJkMWM1ZmI5NzNmYTdhMGE1
MzQ5ODY2NjQ2OGVkNDMyMGI4OGNkOS4uZDM4YjgxNGY3NTBiMTk5MjlhYTdiMDg5NDg0MTAxZGU5
M2ExODE1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTIzNyw3ICsyMzcsNyBA
QCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJlbW90ZUFYT2JqZWN0UmVmIGFj
Y2Vzc2liaWxpdHlSZW1vdGVPYmplY3QoKSBmaW5hbDsKICAgICAKLSAgICBOU0NhY2hlZFVSTFJl
c3BvbnNlKiB3aWxsQ2FjaGVSZXNwb25zZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgTlNDYWNoZWRVUkxSZXNwb25zZSopIGNvbnN0IGZpbmFsOwor
ICAgIHZvaWQgd2lsbENhY2hlUmVzcG9uc2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNp
Z25lZCBsb25nIGlkZW50aWZpZXIsIE5TQ2FjaGVkVVJMUmVzcG9uc2UqLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE5TQ2FjaGVkVVJMUmVzcG9uc2UgKik+JiYpIGNvbnN0IGZpbmFsOwogCiAgICAg
TlNEaWN0aW9uYXJ5ICpkYXRhRGV0ZWN0aW9uQ29udGV4dCgpIGZpbmFsOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvbWFjL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0KaW5kZXggYTU0ZjRkYWZk
YTRlMDEwODNiYWY3ZTA1YTg4MjdmYmY0YTU3MTU3Ny4uZTNkNGNkMTc4MmIyYjJmMDIxOWUyOTQy
YWNhMGFjOGMyNzBhNDAxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L21hYy9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5tbQpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0
dGluZ3MuaD4KKyNpbmNsdWRlIDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIApAQCAtNDUsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
dm9pZCBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0OjplbnN1cmVXZWJzaXRlRGF0YVN0b3JlU2Vz
c2lvbihXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiB7CisgICAgQVNT
RVJUKCFoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vzc1Jhd0Nv
b2tpZXMpKTsKICAgICBhdXRvIHNlc3Npb25JRCA9IHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25Q
YXJhbWV0ZXJzLnNlc3Npb25JRDsKICAgICBpZiAoTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzdG9y
YWdlU2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICByZXR1cm47CkBAIC04OCw2ICs5MCw3IEBA
IFJlc291cmNlRXJyb3IgV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dDo6YmxvY2tlZEVycm9yKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxCiBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIFdlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQ6OnN0b3JhZ2VTZXNzaW9uKCkgY29uc3QKIHsKICAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOworICAgIEFTU0VSVCghaGFzUHJvY2Vzc1ByaXZpbGVnZShQcm9j
ZXNzUHJpdmlsZWdlOjpDYW5BY2Nlc3NSYXdDb29raWVzKSk7CiAgICAgaWYgKGZyYW1lKCkpIHsK
ICAgICAgICAgaWYgKGF1dG8qIHN0b3JhZ2VTZXNzaW9uID0gV2ViQ29yZTo6TmV0d29ya1N0b3Jh
Z2VTZXNzaW9uOjpzdG9yYWdlU2Vzc2lvbihmcmFtZSgpLT5wYWdlKCktPnNlc3Npb25JRCgpKSkK
ICAgICAgICAgICAgIHJldHVybiAqc3RvcmFnZVNlc3Npb247CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUGxhdGZvcm1DQUFuaW1h
dGlvblJlbW90ZS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCmluZGV4IDJjZjQwNjI2NTk1NjY1
ZjQzMWU1ODA2MjU4NWQ5NDQxYjRlMTEyYzcuLmRjYjgxNDUwZjI3MWVjZWE2ODUxNmE0ZjY0MWYx
ZmM2NWRjNTU5YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBQW5p
bWF0aW9uUmVtb3RlLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbXBvcnQgIkFyZ3VtZW50Q29k
ZXJzLmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVIb3N0LmgiCisjaW1wb3J0ICJXS0FuaW1h
dGlvbkRlbGVnYXRlLmgiCiAjaW1wb3J0ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbXBv
cnQgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0xh
eWVyLmg+CkBAIC00OSwxMyArNTAsNyBAQCBzdGF0aWMgTW9ub3RvbmljVGltZSBtZWRpYVRpbWVU
b0N1cnJlbnRUaW1lKENGVGltZUludGVydmFsIHQpCiAKIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0
IFdLRXhwbGljaXRCZWdpblRpbWVGbGFnID0gQCJXS1BsYXRmb3JtQ0FBbmltYXRpb25FeHBsaWNp
dEJlZ2luVGltZUZsYWciOwogCi1AaW50ZXJmYWNlIFdLQW5pbWF0aW9uRGVsZWdhdGUgOiBOU09i
amVjdCA8Q0FBbmltYXRpb25EZWxlZ2F0ZT4gewotICAgIEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3Jt
TGF5ZXJJRCBfbGF5ZXJJRDsKLSAgICBXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3QqIF9sYXll
clRyZWVIb3N0OwotfQotCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhMYXllcklEOihHcmFwaGlj
c0xheWVyOjpQbGF0Zm9ybUxheWVySUQpbGF5ZXJJRCBsYXllclRyZWVIb3N0OihXZWJLaXQ6OlJl
bW90ZUxheWVyVHJlZUhvc3QqKWxheWVyVHJlZUhvc3Q7Ci0tICh2b2lkKWludmFsaWRhdGU7CitA
aW50ZXJmYWNlIFdLQW5pbWF0aW9uRGVsZWdhdGUgKCkgPENBQW5pbWF0aW9uRGVsZWdhdGU+CiBA
ZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS0FuaW1hdGlvbkRlbGVnYXRlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQ
cm94eS5jcHAKaW5kZXggYzJlOTFlYTdmMWNlMzE2NTk1OGJkYjk0YTY2NjBiNTE0Zjg2OGRlNS4u
N2Y0ZTEyNzdjY2Q3NDAyNzZmN2RlMDlmYTM0ODBjYTIxMmRkMmVkZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlz
dFByb3h5LmNwcApAQCAtOTEsNyArOTEsNyBAQCB2b2lkIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5
OjpzZXRIaWdoZXN0SXRlbUlERnJvbVVJUHJvY2Vzcyh1aW50NjRfdCBpdGVtSUQpCiAKIHN0YXRp
YyB2b2lkIHVwZGF0ZUJhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBpdGVtSUQsIHVpbnQ2NF90IHBh
Z2VJRCwgSGlzdG9yeUl0ZW0qIGl0ZW0pCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5
OjpBZGRCYWNrRm9yd2FyZEl0ZW0oaXRlbUlELCBwYWdlSUQsIHRvUGFnZVN0YXRlKCppdGVtKSks
IDApOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6QWRkT3JVcGRhdGVCYWNrRm9yd2Fy
ZEl0ZW0oaXRlbUlELCBwYWdlSUQsIHRvUGFnZVN0YXRlKCppdGVtKSksIDApOwogfQogCiB2b2lk
IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjphZGRJdGVtRnJvbVVJUHJvY2Vzcyh1aW50NjRfdCBp
dGVtSUQsIFJlZjxIaXN0b3J5SXRlbT4mJiBpdGVtLCB1aW50NjRfdCBwYWdlSUQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDgxYWU0NWM0ZTMx
ZTk4Zjk0ZDRhNzU1MTQwMjg5ODA0ZGE4MzQ0ZWUuLjhiZTJkNzYwMDllZjNiNjk2YTBmNTA2ZTE4
MDE2ZjdkYjc2MGY2ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCkBAIC0xMzgwLDQ5ICsxMzgwLDIzIEBAIHZvaWQgV2ViUGFnZTo6cmVsb2FkKHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3QgcmVsb2FkT3B0aW9ucywgU2FuZGJveEV4dGVu
CiAgICAgY29yZVBhZ2UoKS0+dXNlcklucHV0QnJpZGdlKCkucmVsb2FkRnJhbWUobV9tYWluRnJh
bWUtPmNvcmVGcmFtZSgpLCBPcHRpb25TZXQ8UmVsb2FkT3B0aW9uPjo6ZnJvbVJhdyhyZWxvYWRP
cHRpb25zKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6Z29Gb3J3YXJkKHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgdWludDY0X3QgYmFja0ZvcndhcmRJdGVtSUQpCit2b2lkIFdlYlBhZ2U6OmdvVG9CYWNr
Rm9yd2FyZEl0ZW0odWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50NjRfdCBiYWNrRm9yd2FyZEl0
ZW1JRCwgRnJhbWVMb2FkVHlwZSBiYWNrRm9yd2FyZFR5cGUsIE5hdmlnYXRpb25Qb2xpY3lDaGVj
ayBuYXZpZ2F0aW9uUG9saWN5Q2hlY2spCiB7CiAgICAgU2VuZFN0b3BSZXNwb25zaXZlbmVzc1Rp
bWVyIHN0b3BwZXI7CiAKLSAgICBIaXN0b3J5SXRlbSogaXRlbSA9IFdlYkJhY2tGb3J3YXJkTGlz
dFByb3h5OjppdGVtRm9ySUQoYmFja0ZvcndhcmRJdGVtSUQpOwotICAgIEFTU0VSVChpdGVtKTsK
LSAgICBpZiAoIWl0ZW0pCi0gICAgICAgIHJldHVybjsKLQotICAgIEFTU0VSVCghbV9wZW5kaW5n
TmF2aWdhdGlvbklEKTsKLSAgICBtX3BlbmRpbmdOYXZpZ2F0aW9uSUQgPSBuYXZpZ2F0aW9uSUQ7
Ci0KLSAgICBtX3BhZ2UtPmdvVG9JdGVtKCppdGVtLCBGcmFtZUxvYWRUeXBlOjpGb3J3YXJkKTsK
LX0KLQotdm9pZCBXZWJQYWdlOjpnb0JhY2sodWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50NjRf
dCBiYWNrRm9yd2FyZEl0ZW1JRCkKLXsKLSAgICBTZW5kU3RvcFJlc3BvbnNpdmVuZXNzVGltZXIg
c3RvcHBlcjsKKyAgICBBU1NFUlQoaXNCYWNrRm9yd2FyZExvYWRUeXBlKGJhY2tGb3J3YXJkVHlw
ZSkpOwogCiAgICAgSGlzdG9yeUl0ZW0qIGl0ZW0gPSBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6
aXRlbUZvcklEKGJhY2tGb3J3YXJkSXRlbUlEKTsKICAgICBBU1NFUlQoaXRlbSk7CiAgICAgaWYg
KCFpdGVtKQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQoIW1fcGVuZGluZ05hdmlnYXRp
b25JRCk7Ci0gICAgbV9wZW5kaW5nTmF2aWdhdGlvbklEID0gbmF2aWdhdGlvbklEOwotCi0gICAg
bV9wYWdlLT5nb1RvSXRlbSgqaXRlbSwgRnJhbWVMb2FkVHlwZTo6QmFjayk7Ci19Ci0KLXZvaWQg
V2ViUGFnZTo6Z29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQ2
NF90IGJhY2tGb3J3YXJkSXRlbUlEKQotewotICAgIFNlbmRTdG9wUmVzcG9uc2l2ZW5lc3NUaW1l
ciBzdG9wcGVyOwotCi0gICAgSGlzdG9yeUl0ZW0qIGl0ZW0gPSBXZWJCYWNrRm9yd2FyZExpc3RQ
cm94eTo6aXRlbUZvcklEKGJhY2tGb3J3YXJkSXRlbUlEKTsKLSAgICBBU1NFUlQoaXRlbSk7Ci0g
ICAgaWYgKCFpdGVtKQotICAgICAgICByZXR1cm47CisgICAgTE9HKExvYWRpbmcsICJJbiBXZWJQ
cm9jZXNzLCBXZWJQYWdlICUiIFBSSXU2NCAiIGlzIG5hdmlnYXRpbmcgdG8gYmFjay9mb3J3YXJk
IFVSTCAlcyIsIG1fcGFnZUlELCBpdGVtLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsK
IAogICAgIEFTU0VSVCghbV9wZW5kaW5nTmF2aWdhdGlvbklEKTsKICAgICBtX3BlbmRpbmdOYXZp
Z2F0aW9uSUQgPSBuYXZpZ2F0aW9uSUQ7CiAKLSAgICBtX3BhZ2UtPmdvVG9JdGVtKCppdGVtLCBG
cmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQpOworICAgIG1fcGFnZS0+Z29Ub0l0ZW0o
Kml0ZW0sIGJhY2tGb3J3YXJkVHlwZSwgbmF2aWdhdGlvblBvbGljeUNoZWNrKTsKIH0KIAogdm9p
ZCBXZWJQYWdlOjp0cnlSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDE1ZjkyYzk3NDBmODFiOGMxYTRlYmFiODdj
NGVmNzZkOGFlYzM4MmUuLjA3NDRhMmY0ZmQ1OWJhNTg5YmYwMTc1YjExZGQ3Y2JiN2VjNzA3MDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE0OSw2
ICsxNDksMTAgQEAgY2xhc3MgVGV4dENoZWNraW5nUmVxdWVzdDsKIGNsYXNzIFVSTDsKIGNsYXNz
IFZpc2libGVQb3NpdGlvbjsKIAorZW51bSBTeW50aGV0aWNDbGlja1R5cGUgOiBpbnQ4X3Q7Citl
bnVtIGNsYXNzIE5hdmlnYXRpb25Qb2xpY3lDaGVjazsKK2VudW0gY2xhc3MgVGV4dEluZGljYXRv
clByZXNlbnRhdGlvblRyYW5zaXRpb24gOiB1aW50OF90OworCiBzdHJ1Y3QgQ29tcG9zaXRpb25V
bmRlcmxpbmU7CiBzdHJ1Y3QgRGljdGF0aW9uQWx0ZXJuYXRpdmU7CiBzdHJ1Y3QgSGlnaGxpZ2h0
OwpAQCAtMTU3LDkgKzE2MSw3IEBAIHN0cnVjdCBQcm9taXNlZEJsb2JJbmZvOwogc3RydWN0IFRl
eHRDaGVja2luZ1Jlc3VsdDsKIHN0cnVjdCBWaWV3cG9ydEFyZ3VtZW50czsKIAotZW51bSBTeW50
aGV0aWNDbGlja1R5cGUgOiBpbnQ4X3Q7CiAKLWVudW0gY2xhc3MgVGV4dEluZGljYXRvclByZXNl
bnRhdGlvblRyYW5zaXRpb24gOiB1aW50OF90OwogCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxF
TUVOVCkKIGNsYXNzIEhUTUxBdHRhY2htZW50RWxlbWVudDsKQEAgLTIxNCw2ICsyMTYsOSBAQCBj
bGFzcyBXZWJUb3VjaEV2ZW50OwogY2xhc3MgV2ViQ3JlZGVudGlhbHNNZXNzZW5nZXI7CiBjbGFz
cyBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjsKIAorZW51bSBGaW5kT3B0aW9ucyA6IHVpbnQx
Nl90OworZW51bSBjbGFzcyBEcmFnQ29udHJvbGxlckFjdGlvbjsKKwogc3RydWN0IEFzc2lzdGVk
Tm9kZUluZm9ybWF0aW9uOwogc3RydWN0IEF0dHJpYnV0ZWRTdHJpbmc7CiBzdHJ1Y3QgQmFja0Zv
cndhcmRMaXN0SXRlbVN0YXRlOwpAQCAtMjI3LDkgKzIzMiw2IEBAIHN0cnVjdCBXZWJQcmVmZXJl
bmNlc1N0b3JlOwogc3RydWN0IFdlYlNlbGVjdGlvbkRhdGE7CiBzdHJ1Y3QgV2Vic2l0ZVBvbGlj
aWVzRGF0YTsKIAotZW51bSBjbGFzcyBEcmFnQ29udHJvbGxlckFjdGlvbjsKLWVudW0gRmluZE9w
dGlvbnMgOiB1aW50MTZfdDsKLQogdXNpbmcgU25hcHNob3RPcHRpb25zID0gdWludDMyX3Q7CiB1
c2luZyBXS0V2ZW50TW9kaWZpZXJzID0gdWludDMyX3Q7CiAKQEAgLTExNDgsOSArMTE1MCw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBsb2FkQWx0ZXJuYXRlSFRNTFN0cmluZyhjb25zdCBMb2FkUGFy
YW1ldGVycyYpOwogICAgIHZvaWQgbmF2aWdhdGVUb1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2so
Y29uc3QgU3RyaW5nJiB1cmwsIFdlYkNvcmU6OkludFBvaW50IGRvY3VtZW50UG9pbnQsIFdlYkNv
cmU6OkludFBvaW50IHNjcmVlblBvaW50KTsKICAgICB2b2lkIHJlbG9hZCh1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIHVpbnQzMl90IHJlbG9hZE9wdGlvbnMsIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZSYmKTsKLSAgICB2b2lkIGdvRm9yd2FyZCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQ2NF90
KTsKLSAgICB2b2lkIGdvQmFjayh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQ2NF90KTsKLSAg
ICB2b2lkIGdvVG9CYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50NjRf
dCk7CisgICAgdm9pZCBnb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
dWludDY0X3QsIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUsIFdlYkNvcmU6Ok5hdmlnYXRpb25Qb2xp
Y3lDaGVjayk7CiAgICAgdm9pZCB0cnlSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTsKICAgICB2b2lk
IHNldEluaXRpYWxGb2N1cyhib29sIGZvcndhcmQsIGJvb2wgaXNLZXlib2FyZEV2ZW50VmFsaWQs
IGNvbnN0IFdlYktleWJvYXJkRXZlbnQmLCBDYWxsYmFja0lEKTsKICAgICB2b2lkIHVwZGF0ZUlz
SW5XaW5kb3coYm9vbCBpc0luaXRpYWxTdGF0ZSA9IGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDcxZjdj
NTE2YjBiZmI3YWM0NzUwMmU2YmViYTJhZTY5ZmY1YWRkMjguLjVhN2FhZjRjNzUyNmNhMmI4ZjAz
YjE4MjI2MWY2ZjcyMmM3ODliNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMTM0LDkgKzEzNCw3IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNjcm9sbEJ5KHVpbnQzMl90IHNj
cm9sbERpcmVjdGlvbiwgdWludDMyX3Qgc2Nyb2xsR3JhbnVsYXJpdHkpCiAgICAgQ2VudGVyU2Vs
ZWN0aW9uSW5WaXNpYmxlQXJlYSgpCiAKLSAgICBHb0JhY2sodWludDY0X3QgbmF2aWdhdGlvbklE
LCB1aW50NjRfdCBiYWNrRm9yd2FyZEl0ZW1JRCkKLSAgICBHb0ZvcndhcmQodWludDY0X3QgbmF2
aWdhdGlvbklELCB1aW50NjRfdCBiYWNrRm9yd2FyZEl0ZW1JRCkKLSAgICBHb1RvQmFja0Zvcndh
cmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDY0X3QgYmFja0ZvcndhcmRJdGVtSUQp
CisgICAgR29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQ2NF90
IGJhY2tGb3J3YXJkSXRlbUlELCBlbnVtIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUgYmFja0Zvcndh
cmRUeXBlLCBlbnVtIFdlYkNvcmU6Ok5hdmlnYXRpb25Qb2xpY3lDaGVjayBuYXZpZ2F0aW9uUG9s
aWN5Q2hlY2spCiAgICAgVHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9uKCkKIAogICAgIExvYWRVUkxJ
bkZyYW1lKFdlYkNvcmU6OlVSTCB1cmwsIHVpbnQ2NF90IGZyYW1lSUQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDJhOTQ3
ZmRmMWY0OGQwZTQ3MGVkMjY5NGY3MzI1OWI0NWUzY2I1ZmUuLmRmOGQyMmE0YTQ3YmZmZTljZGYx
Y2M4NDFhZTQwMmYyNWEwMDVkYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0yNjkxLDExICsyNjkxLDYgQEAgc3RhdGlj
IGlubGluZSBFbGVtZW50KiBuZXh0QXNzaXN0YWJsZUVsZW1lbnQoTm9kZSogc3RhcnROb2RlLCBQ
YWdlJiBwYWdlLCBib29sIGkKICAgICByZXR1cm4gbmV4dEVsZW1lbnQ7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgYm9vbCBoYXNBc3Npc3RhYmxlRWxlbWVudChOb2RlKiBzdGFydE5vZGUsIFBhZ2UmIHBh
Z2UsIGJvb2wgaXNGb3J3YXJkKQotewotICAgIHJldHVybiBuZXh0QXNzaXN0YWJsZUVsZW1lbnQo
c3RhcnROb2RlLCBwYWdlLCBpc0ZvcndhcmQpOwotfQotCiB2b2lkIFdlYlBhZ2U6OmZvY3VzTmV4
dEFzc2lzdGVkTm9kZShib29sIGlzRm9yd2FyZCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewog
ICAgIEVsZW1lbnQqIG5leHRFbGVtZW50ID0gbmV4dEFzc2lzdGFibGVFbGVtZW50KG1fYXNzaXN0
ZWROb2RlLmdldCgpLCAqbV9wYWdlLCBpc0ZvcndhcmQpOwpAQCAtMjcwNiw2ICsyNzAxLDE5IEBA
IHZvaWQgV2ViUGFnZTo6Zm9jdXNOZXh0QXNzaXN0ZWROb2RlKGJvb2wgaXNGb3J3YXJkLCBDYWxs
YmFja0lEIGNhbGxiYWNrSUQpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpWb2lk
Q2FsbGJhY2soY2FsbGJhY2tJRCkpOwogfQogCitzdGF0aWMgSW50UmVjdCBlbGVtZW50UmVjdElu
Um9vdFZpZXdDb29yZGluYXRlcyhjb25zdCBOb2RlJiBub2RlLCBjb25zdCBGcmFtZSYgZnJhbWUp
Cit7CisgICAgYXV0byogdmlldyA9IGZyYW1lLnZpZXcoKTsKKyAgICBpZiAoIXZpZXcpCisgICAg
ICAgIHJldHVybiB7IH07CisKKyAgICBhdXRvKiByZW5kZXJlciA9IG5vZGUucmVuZGVyZXIoKTsK
KyAgICBpZiAoIXJlbmRlcmVyKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgcmV0dXJuIHZp
ZXctPmNvbnRlbnRzVG9Sb290VmlldyhyZW5kZXJlci0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3Qo
KSk7Cit9CisKIHZvaWQgV2ViUGFnZTo6Z2V0QXNzaXN0ZWROb2RlSW5mb3JtYXRpb24oQXNzaXN0
ZWROb2RlSW5mb3JtYXRpb24mIGluZm9ybWF0aW9uKQogewogICAgIGxheW91dElmTmVlZGVkKCk7
CkBAIC0yNzE2LDcgKzI3MjQsNyBAQCB2b2lkIFdlYlBhZ2U6OmdldEFzc2lzdGVkTm9kZUluZm9y
bWF0aW9uKEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uJiBpbmZvcm1hdGlvbikKIAogICAgIGlmIChS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbV9hc3Npc3RlZE5vZGUtPnJlbmRlcmVyKCkpIHsKICAg
ICAgICAgRnJhbWUmIGVsZW1lbnRGcmFtZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9j
dXNlZE9yTWFpbkZyYW1lKCk7Ci0gICAgICAgIGluZm9ybWF0aW9uLmVsZW1lbnRSZWN0ID0gZWxl
bWVudEZyYW1lLnZpZXcoKS0+Y29udGVudHNUb1Jvb3RWaWV3KHJlbmRlcmVyLT5hYnNvbHV0ZUJv
dW5kaW5nQm94UmVjdCgpKTsKKyAgICAgICAgaW5mb3JtYXRpb24uZWxlbWVudFJlY3QgPSBlbGVt
ZW50UmVjdEluUm9vdFZpZXdDb29yZGluYXRlcygqbV9hc3Npc3RlZE5vZGUsIGVsZW1lbnRGcmFt
ZSk7CiAgICAgICAgIGluZm9ybWF0aW9uLm5vZGVGb250U2l6ZSA9IHJlbmRlcmVyLT5zdHlsZSgp
LmZvbnREZXNjcmlwdGlvbigpLmNvbXB1dGVkU2l6ZSgpOwogCiAgICAgICAgIGJvb2wgaW5GaXhl
ZCA9IGZhbHNlOwpAQCAtMjc0Niw4ICsyNzU0LDE2IEBAIHZvaWQgV2ViUGFnZTo6Z2V0QXNzaXN0
ZWROb2RlSW5mb3JtYXRpb24oQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24mIGluZm9ybWF0aW9uKQog
ICAgIGluZm9ybWF0aW9uLm1heGltdW1TY2FsZUZhY3Rvcklnbm9yaW5nQWx3YXlzU2NhbGFibGUg
PSBtYXhpbXVtUGFnZVNjYWxlRmFjdG9ySWdub3JpbmdBbHdheXNTY2FsYWJsZSgpOwogICAgIGlu
Zm9ybWF0aW9uLmFsbG93c1VzZXJTY2FsaW5nID0gbV92aWV3cG9ydENvbmZpZ3VyYXRpb24uYWxs
b3dzVXNlclNjYWxpbmcoKTsKICAgICBpbmZvcm1hdGlvbi5hbGxvd3NVc2VyU2NhbGluZ0lnbm9y
aW5nQWx3YXlzU2NhbGFibGUgPSBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5hbGxvd3NVc2VyU2Nh
bGluZ0lnbm9yaW5nQWx3YXlzU2NhbGFibGUoKTsKLSAgICBpbmZvcm1hdGlvbi5oYXNOZXh0Tm9k
ZSA9IGhhc0Fzc2lzdGFibGVFbGVtZW50KG1fYXNzaXN0ZWROb2RlLmdldCgpLCAqbV9wYWdlLCB0
cnVlKTsKLSAgICBpbmZvcm1hdGlvbi5oYXNQcmV2aW91c05vZGUgPSBoYXNBc3Npc3RhYmxlRWxl
bWVudChtX2Fzc2lzdGVkTm9kZS5nZXQoKSwgKm1fcGFnZSwgZmFsc2UpOworICAgIGlmIChhdXRv
KiBuZXh0RWxlbWVudCA9IG5leHRBc3Npc3RhYmxlRWxlbWVudChtX2Fzc2lzdGVkTm9kZS5nZXQo
KSwgKm1fcGFnZSwgdHJ1ZSkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0gbmV4dEVsZW1l
bnQtPmRvY3VtZW50KCkuZnJhbWUoKSkKKyAgICAgICAgICAgIGluZm9ybWF0aW9uLm5leHROb2Rl
UmVjdCA9IGVsZW1lbnRSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCpuZXh0RWxlbWVudCwgKmZy
YW1lKTsKKyAgICAgICAgaW5mb3JtYXRpb24uaGFzTmV4dE5vZGUgPSB0cnVlOworICAgIH0KKyAg
ICBpZiAoYXV0byogcHJldmlvdXNFbGVtZW50ID0gbmV4dEFzc2lzdGFibGVFbGVtZW50KG1fYXNz
aXN0ZWROb2RlLmdldCgpLCAqbV9wYWdlLCBmYWxzZSkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGZy
YW1lID0gcHJldmlvdXNFbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCkpCisgICAgICAgICAgICBp
bmZvcm1hdGlvbi5wcmV2aW91c05vZGVSZWN0ID0gZWxlbWVudFJlY3RJblJvb3RWaWV3Q29vcmRp
bmF0ZXMoKnByZXZpb3VzRWxlbWVudCwgKmZyYW1lKTsKKyAgICAgICAgaW5mb3JtYXRpb24uaGFz
UHJldmlvdXNOb2RlID0gdHJ1ZTsKKyAgICB9CiAgICAgaW5mb3JtYXRpb24uYXNzaXN0ZWROb2Rl
SWRlbnRpZmllciA9IG1fY3VycmVudEFzc2lzdGVkTm9kZUlkZW50aWZpZXI7CiAKICAgICBpZiAo
aXM8TGFiZWxhYmxlRWxlbWVudD4oKm1fYXNzaXN0ZWROb2RlKSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IGNjNDg0Y2MwMjdjYTBkZjkwOWViMjA1MGI5MmRl
Njc4NTkxYWIxNDcuLmYyNTBlZjFhOTIwODNjODI5NGYzM2E5ZjAyODAyMmNkMTQ5ODMwOGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTExNyw2ICsxMTcsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvVVJMUGFyc2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2Vy
R2VzdHVyZUluZGljYXRvci5oPgogI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgorI2luY2x1ZGUg
PHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKQEAgLTIxOSw2ICsyMjAsOCBAQCBXZWJQcm9j
ZXNzOjp+V2ViUHJvY2VzcygpCiAKIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3Mo
Y29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQog
eworICAgIFdURjo6c2V0UHJvY2Vzc1ByaXZpbGVnZXMoeyB9KTsKKwogICAgIE1lc3NhZ2VQb3J0
Q2hhbm5lbFByb3ZpZGVyOjpzZXRTaGFyZWRQcm92aWRlcihXZWJNZXNzYWdlUG9ydENoYW5uZWxQ
cm92aWRlcjo6c2luZ2xldG9uKCkpOwogICAgIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE0MDAKQEAgLTM3MSw2ICszNzQsOSBAQCB2
b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgIGZvciAoYXV0byYgc2NoZW1lIDogcGFyYW1ldGVy
cy51cmxTY2hlbWVzU2VydmljZVdvcmtlcnNDYW5IYW5kbGUpCiAgICAgICAgIHJlZ2lzdGVyVVJM
U2NoZW1lU2VydmljZVdvcmtlcnNDYW5IYW5kbGUoc2NoZW1lKTsKIAorICAgIGZvciAoYXV0byYg
c2NoZW1lIDogcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzQ2FuRGlzcGxheU9ubHlJ
ZkNhblJlcXVlc3QpCisgICAgICAgIHJlZ2lzdGVyVVJMU2NoZW1lQXNDYW5EaXNwbGF5T25seUlm
Q2FuUmVxdWVzdChzY2hlbWUpOworCiAgICAgc2V0RGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2
YWwocGFyYW1ldGVycy5kZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbCk7CiAKICAgICBzZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChwYXJhbWV0ZXJzLnJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkKTsKQEAgLTQ3Nyw2ICs0ODMsMTEgQEAgdm9pZCBXZWJQcm9jZXNzOjpyZWdp
c3RlclVSTFNjaGVtZUFzQ2FjaGVQYXJ0aXRpb25lZChjb25zdCBTdHJpbmcmIHVybFNjaGVtZSkg
Y28KICAgICBTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0NhY2hlUGFydGl0aW9u
ZWQodXJsU2NoZW1lKTsKIH0KIAordm9pZCBXZWJQcm9jZXNzOjpyZWdpc3RlclVSTFNjaGVtZUFz
Q2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3QoY29uc3QgU3RyaW5nJiB1cmxTY2hlbWUpIGNvbnN0
Cit7CisgICAgU2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyQXNDYW5EaXNwbGF5T25seUlmQ2FuUmVx
dWVzdCh1cmxTY2hlbWUpOworfQorCiB2b2lkIFdlYlByb2Nlc3M6OnNldERlZmF1bHRSZXF1ZXN0
VGltZW91dEludGVydmFsKGRvdWJsZSB0aW1lb3V0SW50ZXJ2YWwpCiB7CiAgICAgUmVzb3VyY2VS
ZXF1ZXN0OjpzZXREZWZhdWx0VGltZW91dEludGVydmFsKHRpbWVvdXRJbnRlcnZhbCk7CkBAIC0x
MjY1LDcgKzEyNzYsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdAogewogICAgIGlmICh3ZWJz
aXRlRGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6TWVtb3J5Q2FjaGUpKSB7CiAg
ICAgICAgIGZvciAoYXV0byYgb3JpZ2luIDogTWVtb3J5Q2FjaGU6OnNpbmdsZXRvbigpLm9yaWdp
bnNXaXRoQ2FjaGUoc2Vzc2lvbklEKSkKLSAgICAgICAgICAgIHdlYnNpdGVEYXRhLmVudHJpZXMu
YXBwZW5kKFdlYnNpdGVEYXRhOjpFbnRyeSB7IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3Vy
aXR5T3JpZ2luKCpvcmlnaW4pLCBXZWJzaXRlRGF0YVR5cGU6Ok1lbW9yeUNhY2hlLCAwIH0pOwor
ICAgICAgICAgICAgd2Vic2l0ZURhdGEuZW50cmllcy5hcHBlbmQoV2Vic2l0ZURhdGE6OkVudHJ5
IHsgb3JpZ2luLT5kYXRhKCksIFdlYnNpdGVEYXRhVHlwZTo6TWVtb3J5Q2FjaGUsIDAgfSk7CiAg
ICAgfQogCiAgICAgaWYgKHdlYnNpdGVEYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBl
OjpDcmVkZW50aWFscykpIHsKQEAgLTE2NjgsOSArMTY3OSwxMSBAQCB2b2lkIFdlYlByb2Nlc3M6
OmVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9TdG9yYWdlUHJvY2Vzcyh1aW50NjRf
dCBwYWdlRwogICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnNldENvbm5lY3Rpb24o
c3RkOjptYWtlX3VuaXF1ZTxXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbj4oaXBjQ29ubmVj
dGlvbiwgcGFnZUdyb3VwSUQsIHBhZ2VJRCwgc3RvcmUpKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNz
OjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkK
K3ZvaWQgV2ViUHJvY2Vzczo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50cygpCiB7Ci0gICAg
U2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24oKS5yZWdpc3RlclNlcnZpY2VXb3JrZXJD
bGllbnRzKHNlc3Npb25JRCk7CisgICAgLy8gV2UgZG8gbm90IHdhbnQgdG8gcmVnaXN0ZXIgc2Vy
dmljZSB3b3JrZXIgZHVtbXkgZG9jdW1lbnRzLgorICAgIEFTU0VSVCghU1dDb250ZXh0TWFuYWdl
cjo6c2luZ2xldG9uKCkuY29ubmVjdGlvbigpKTsKKyAgICBTZXJ2aWNlV29ya2VyUHJvdmlkZXI6
OnNpbmdsZXRvbigpLnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudHMoKTsKIH0KIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCA1YjI3ZWY5MWQyYjQwOGNl
Nzc0ZmMxZGU3YWMwZTNlOTdmYWU1MjViLi4xMTM2MGM1MGUyMjBlYzFiYzQ5YWMwNzg0MjEwZjI3
MTYzMWE4YjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTI2MSw2
ICsyNjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJDYWNoZWRDcmVkZW50aWFscygpOwog
CiAgICAgdm9pZCBwbGF0Zm9ybVRlcm1pbmF0ZSgpOworCiAgICAgdm9pZCByZWdpc3RlclVSTFNj
aGVtZUFzRW1wdHlEb2N1bWVudChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlZ2lzdGVyVVJM
U2NoZW1lQXNTZWN1cmUoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdm9pZCByZWdpc3RlclVS
TFNjaGVtZUFzQnlwYXNzaW5nQ29udGVudFNlY3VyaXR5UG9saWN5KGNvbnN0IFN0cmluZyYpIGNv
bnN0OwpAQCAtMjcxLDYgKzI3Miw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWdpc3RlclVSTFNj
aGVtZUFzQ09SU0VuYWJsZWQoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdm9pZCByZWdpc3Rl
clVSTFNjaGVtZUFzQWx3YXlzUmV2YWxpZGF0ZWQoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAg
dm9pZCByZWdpc3RlclVSTFNjaGVtZUFzQ2FjaGVQYXJ0aXRpb25lZChjb25zdCBTdHJpbmcmKSBj
b25zdDsKKyAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNDYW5EaXNwbGF5T25seUlmQ2FuUmVx
dWVzdChjb25zdCBTdHJpbmcmKSBjb25zdDsKKwogICAgIHZvaWQgc2V0RGVmYXVsdFJlcXVlc3RU
aW1lb3V0SW50ZXJ2YWwoZG91YmxlKTsKICAgICB2b2lkIHNldEFsd2F5c1VzZXNDb21wbGV4VGV4
dENvZGVQYXRoKGJvb2wpOwogICAgIHZvaWQgc2V0U2hvdWxkVXNlRm9udFNtb290aGluZyhib29s
KTsKQEAgLTMxNSw3ICszMTgsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAjaWYgRU5BQkxFKFNFUlZJ
Q0VfV09SS0VSKQogICAgIHZvaWQgZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub1N0
b3JhZ2VQcm9jZXNzKHVpbnQ2NF90IHBhZ2VHcm91cElELCB1aW50NjRfdCBwYWdlSUQsIGNvbnN0
IFdlYlByZWZlcmVuY2VzU3RvcmUmLCBQQUw6OlNlc3Npb25JRCk7Ci0gICAgdm9pZCByZWdpc3Rl
clNlcnZpY2VXb3JrZXJDbGllbnRzKFBBTDo6U2Vzc2lvbklEKTsKKyAgICB2b2lkIHJlZ2lzdGVy
U2VydmljZVdvcmtlckNsaWVudHMoKTsKICNlbmRpZgogCiAgICAgdm9pZCByZWxlYXNlUGFnZUNh
Y2hlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluCmluZGV4IDZlZGVlZWUxOTNmMjBjOWExNGMzOTgxZWQ4OWU4MDQ4NWMwZWVjZmQuLjNmYjRj
MGIwYTQzMjZmZDBiMmIxY2M5Njk2Zjk1Yjg4ZGFhOTI2MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0yOCw2ICsyOCw3IEBAIG1l
c3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgIyBHbG9iYWwgcHJl
ZmVyZW5jZXMuCiAgICAgU2V0Q2FjaGVNb2RlbCh1aW50MzJfdCBjYWNoZU1vZGVsKQorCiAgICAg
UmVnaXN0ZXJVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnQoU3RyaW5nIHNjaGVtZSkKICAgICBSZWdp
c3RlclVSTFNjaGVtZUFzU2VjdXJlKFN0cmluZyBzY2hlbWUpCiAgICAgUmVnaXN0ZXJVUkxTY2hl
bWVBc0J5cGFzc2luZ0NvbnRlbnRTZWN1cml0eVBvbGljeShTdHJpbmcgc2NoZW1lKQpAQCAtMzcs
NiArMzgsOCBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBS
ZWdpc3RlclVSTFNjaGVtZUFzRGlzcGxheUlzb2xhdGVkKFN0cmluZyBzY2hlbWUpCiAgICAgUmVn
aXN0ZXJVUkxTY2hlbWVBc0NPUlNFbmFibGVkKFN0cmluZyBzY2hlbWUpCiAgICAgUmVnaXN0ZXJV
UkxTY2hlbWVBc0NhY2hlUGFydGl0aW9uZWQoU3RyaW5nIHNjaGVtZSkKKyAgICBSZWdpc3RlclVS
TFNjaGVtZUFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3QoU3RyaW5nIHNjaGVtZSkKKwogICAg
IFNldERlZmF1bHRSZXF1ZXN0VGltZW91dEludGVydmFsKGRvdWJsZSB0aW1lb3V0SW50ZXJ2YWwp
CiAgICAgU2V0QWx3YXlzVXNlc0NvbXBsZXhUZXh0Q29kZVBhdGgoYm9vbCBhbHdheXNVc2VDb21w
bGV4VGV4dCkKICAgICBTZXRTaG91bGRVc2VGb250U21vb3RoaW5nKGJvb2wgdXNlRm9udFNtb290
aGluZykKQEAgLTExNyw3ICsxMjAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJl
Y2VpdmVyIHsKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICBFc3RhYmxpc2hXb3Jr
ZXJDb250ZXh0Q29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3ModWludDY0X3QgcGFnZUdyb3VwSUQs
IHVpbnQ2NF90IHBhZ2VJRCwgc3RydWN0IFdlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZSBzdG9y
ZSwgUEFMOjpTZXNzaW9uSUQgaW5pdGlhbFNlc3Npb25JRCkKLSAgICBSZWdpc3RlclNlcnZpY2VX
b3JrZXJDbGllbnRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICBSZWdpc3RlclNlcnZp
Y2VXb3JrZXJDbGllbnRzKCkKICNlbmRpZgogCiAgICAgRGlkVGFrZUFsbE1lc3NhZ2VzRm9yUG9y
dChWZWN0b3I8V2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM+IG1lc3NhZ2VzLCB1aW50
NjRfdCBtZXNzYWdlQ2FsbGJhY2tJZGVudGlmaWVyLCB1aW50NjRfdCBtZXNzYWdlQmF0Y2hJZGVu
dGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2Uv
U3RvcmFnZUFyZWFJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdl
L1N0b3JhZ2VBcmVhSW1wbC5jcHAKaW5kZXggYzMwZGZlZDM4YWY1NDI3NTQ0NTI0N2MxZjI2MjQ3
NjU3ZGExZDljNS4uNWQ1YzJiYzA1ZmM2MGM0ZTJmNzBjY2JhYWQ5MGI3OTU1NTJkODFiNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdl
QXJlYUltcGwuY3BwCkBAIC0xMjIsOSArMTIyLDkgQEAgdm9pZCBTdG9yYWdlQXJlYUltcGw6OmNs
b3NlRGF0YWJhc2VJZklkbGUoKQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi1XZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgU3RvcmFnZUFyZWFJbXBsOjpzZWN1cml0eU9yaWdpbigp
IGNvbnN0Citjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIFN0b3JhZ2VBcmVhSW1wbDo6c2VjdXJp
dHlPcmlnaW4oKSBjb25zdAogewotICAgIHJldHVybiBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGE6OmZyb21TZWN1cml0eU9yaWdpbihtX3N0b3JhZ2VBcmVhTWFwLT5zZWN1cml0eU9yaWdpbigp
KTsKKyAgICByZXR1cm4gbV9zdG9yYWdlQXJlYU1hcC0+c2VjdXJpdHlPcmlnaW4oKS5kYXRhKCk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaAppbmRleCA0MzNjNDg3MzgzYzQ4
MzYzNWFjNmYzMjQ0NjU1MzU4YmVmNTc0OTgxLi4xNjVhZjQ0ZDkwMThiOWI5ZDEzZjczZmNlODQ0
NzM5MmNkMTgzNDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3Rv
cmFnZS9TdG9yYWdlQXJlYUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
U3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgaW5jcmVtZW50QWNjZXNzQ291bnQoKSBvdmVycmlkZTsKICAgICB2b2lkIGRlY3JlbWVu
dEFjY2Vzc0NvdW50KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjbG9zZURhdGFiYXNlSWZJZGxlKCkg
b3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2lu
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiBzZWN1cml0eU9yaWdpbigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdWludDY0X3QgbV9zdG9y
YWdlQXJlYUlEOwogICAgIFJlZjxTdG9yYWdlQXJlYU1hcD4gbV9zdG9yYWdlQXJlYU1hcDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVh
TWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVh
TWFwLmNwcAppbmRleCBhMjY1MGQxYjNlYmZjNzI4YzI3NWVlMDEwYmZlYTNhMjY4YjBiODg2Li40
NzEzYWM0YjdlMWM3OGUxMzIyZjQ5ZjJiNTVmYzgzOTI2NWI4MTBkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwCkBA
IC03NCwxNCArNzQsMTQgQEAgU3RvcmFnZUFyZWFNYXA6OlN0b3JhZ2VBcmVhTWFwKFN0b3JhZ2VO
YW1lc3BhY2VJbXBsKiBzdG9yYWdlTmFtZXNwYWNlLCBSZWY8V2ViQ28KICAgICBjYXNlIFN0b3Jh
Z2VUeXBlOjpMb2NhbDoKICAgICBjYXNlIFN0b3JhZ2VUeXBlOjpUcmFuc2llbnRMb2NhbDoKICAg
ICAgICAgaWYgKFNlY3VyaXR5T3JpZ2luKiB0b3BMZXZlbE9yaWdpbiA9IHN0b3JhZ2VOYW1lc3Bh
Y2UtPnRvcExldmVsT3JpZ2luKCkpCi0gICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlTWFuYWdl
cjo6Q3JlYXRlVHJhbnNpZW50TG9jYWxTdG9yYWdlTWFwKG1fc3RvcmFnZU1hcElELCBzdG9yYWdl
TmFtZXNwYWNlLT5zdG9yYWdlTmFtZXNwYWNlSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9t
U2VjdXJpdHlPcmlnaW4oKnRvcExldmVsT3JpZ2luKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9t
U2VjdXJpdHlPcmlnaW4obV9zZWN1cml0eU9yaWdpbikpLCAwKTsKKyAgICAgICAgICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OlN0b3JhZ2VNYW5hZ2VyOjpDcmVhdGVUcmFuc2llbnRMb2NhbFN0b3JhZ2VNYXAobV9zdG9y
YWdlTWFwSUQsIHN0b3JhZ2VOYW1lc3BhY2UtPnN0b3JhZ2VOYW1lc3BhY2VJRCgpLCB0b3BMZXZl
bE9yaWdpbi0+ZGF0YSgpLCBtX3NlY3VyaXR5T3JpZ2luLT5kYXRhKCkpLCAwKTsKICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6U3RvcmFnZU1hbmFnZXI6OkNyZWF0ZUxvY2FsU3Rv
cmFnZU1hcChtX3N0b3JhZ2VNYXBJRCwgc3RvcmFnZU5hbWVzcGFjZS0+c3RvcmFnZU5hbWVzcGFj
ZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKG1fc2VjdXJpdHlP
cmlnaW4pKSwgMCk7CisgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlTWFuYWdlcjo6Q3JlYXRl
TG9jYWxTdG9yYWdlTWFwKG1fc3RvcmFnZU1hcElELCBzdG9yYWdlTmFtZXNwYWNlLT5zdG9yYWdl
TmFtZXNwYWNlSUQoKSwgbV9zZWN1cml0eU9yaWdpbi0+ZGF0YSgpKSwgMCk7CiAKICAgICAgICAg
YnJlYWs7CiAKICAgICBjYXNlIFN0b3JhZ2VUeXBlOjpTZXNzaW9uOgotICAgICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpTdG9yYWdlTWFuYWdlcjo6Q3JlYXRlU2Vzc2lvblN0b3JhZ2VNYXAobV9zdG9yYWdlTWFwSUQs
IHN0b3JhZ2VOYW1lc3BhY2UtPnN0b3JhZ2VOYW1lc3BhY2VJRCgpLCBTZWN1cml0eU9yaWdpbkRh
dGE6OmZyb21TZWN1cml0eU9yaWdpbihtX3NlY3VyaXR5T3JpZ2luKSksIDApOworICAgICAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpTdG9yYWdlTWFuYWdlcjo6Q3JlYXRlU2Vzc2lvblN0b3JhZ2VNYXAobV9zdG9yYWdl
TWFwSUQsIHN0b3JhZ2VOYW1lc3BhY2UtPnN0b3JhZ2VOYW1lc3BhY2VJRCgpLCBtX3NlY3VyaXR5
T3JpZ2luLT5kYXRhKCkpLCAwKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFN0b3JhZ2VU
eXBlOjpFcGhlbWVyYWxMb2NhbDoKQEAgLTM1Miw3ICszNTIsNyBAQCB2b2lkIFN0b3JhZ2VBcmVh
TWFwOjpkaXNwYXRjaFNlc3Npb25TdG9yYWdlRXZlbnQodWludDY0X3Qgc291cmNlU3RvcmFnZUFy
ZWFJRCwgYwogICAgICAgICBmcmFtZXMuYXBwZW5kKGZyYW1lKTsKICAgICB9CiAKLSAgICBTdG9y
YWdlRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaFNlc3Npb25TdG9yYWdlRXZlbnRzVG9GcmFtZXMo
KnBhZ2UsIGZyYW1lcywga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHVybFN0cmluZywgU2VjdXJp
dHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4obV9zZWN1cml0eU9yaWdpbikpOworICAg
IFN0b3JhZ2VFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoU2Vzc2lvblN0b3JhZ2VFdmVudHNUb0Zy
YW1lcygqcGFnZSwgZnJhbWVzLCBrZXksIG9sZFZhbHVlLCBuZXdWYWx1ZSwgdXJsU3RyaW5nLCBt
X3NlY3VyaXR5T3JpZ2luLT5kYXRhKCkpOwogfQogCiB2b2lkIFN0b3JhZ2VBcmVhTWFwOjpkaXNw
YXRjaExvY2FsU3RvcmFnZUV2ZW50KHVpbnQ2NF90IHNvdXJjZVN0b3JhZ2VBcmVhSUQsIGNvbnN0
IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1Zh
bHVlLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZykKQEAgLTM4Myw3ICszODMsNyBAQCB2b2lkIFN0
b3JhZ2VBcmVhTWFwOjpkaXNwYXRjaExvY2FsU3RvcmFnZUV2ZW50KHVpbnQ2NF90IHNvdXJjZVN0
b3JhZ2VBcmVhSUQsIGNvbgogICAgICAgICB9CiAgICAgfQogCi0gICAgU3RvcmFnZUV2ZW50RGlz
cGF0Y2hlcjo6ZGlzcGF0Y2hMb2NhbFN0b3JhZ2VFdmVudHNUb0ZyYW1lcyhwYWdlR3JvdXAsIGZy
YW1lcywga2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHVybFN0cmluZywgU2VjdXJpdHlPcmlnaW5E
YXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4obV9zZWN1cml0eU9yaWdpbikpOworICAgIFN0b3JhZ2VF
dmVudERpc3BhdGNoZXI6OmRpc3BhdGNoTG9jYWxTdG9yYWdlRXZlbnRzVG9GcmFtZXMocGFnZUdy
b3VwLCBmcmFtZXMsIGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCB1cmxTdHJpbmcsIG1fc2VjdXJp
dHlPcmlnaW4tPmRhdGEoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUlt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZU5hbWVz
cGFjZUltcGwuY3BwCmluZGV4IDIxZmQ1ODcwODgwMWMwOGY2YzE1NmYwOTU0Yzg4NjNkMDQ2ZTkx
Y2MuLjJmMWNkMDdhN2FkZDFlNmE1MGU4YTI4OWFiOWFlYmI3M2ExNzRhMTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlTmFt
ZXNwYWNlSW1wbC5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgU3RvcmFnZU5hbWVzcGFjZUltcGw6On5T
dG9yYWdlTmFtZXNwYWNlSW1wbCgpCiAKIHZvaWQgU3RvcmFnZU5hbWVzcGFjZUltcGw6OmRpZERl
c3Ryb3lTdG9yYWdlQXJlYU1hcChTdG9yYWdlQXJlYU1hcCYgbWFwKQogewotICAgIG1fc3RvcmFn
ZUFyZWFNYXBzLnJlbW92ZShTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbiht
YXAuc2VjdXJpdHlPcmlnaW4oKSkpOworICAgIG1fc3RvcmFnZUFyZWFNYXBzLnJlbW92ZShtYXAu
c2VjdXJpdHlPcmlnaW4oKS5kYXRhKCkpOwogfQogCiBSZWZQdHI8U3RvcmFnZUFyZWE+IFN0b3Jh
Z2VOYW1lc3BhY2VJbXBsOjpzdG9yYWdlQXJlYShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNl
Y3VyaXR5T3JpZ2luKQpAQCAtMTc3LDcgKzE3Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZWNy
ZW1lbnRBY2Nlc3NDb3VudCgpIHsgfQogICAgIHZvaWQgY2xvc2VEYXRhYmFzZUlmSWRsZSgpIHsg
fQogCi0gICAgU2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2luKCkgY29uc3QKKyAgICBj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luKCkgY29uc3QKICAgICB7CiAg
ICAgICAgIHJldHVybiBtX3NlY3VyaXR5T3JpZ2luRGF0YTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggMjgwYzQxNTM3N2FmYTNmYWU1ZWUzMThjNWUzOGE3
ZmNmMzhmNGU2Ny4uZWI1NzQwNTYxNzM1MmU4ODEzM2JiODUwZjE1N2YzNGMzYmYyM2VmZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjEsNiArMjEsOCBAQAogIyBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCiAjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAorI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCisKIG1lc3NhZ2VzIC0+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
IHsKICAgICBDYXB0dXJlRmFpbGVkKHVpbnQ2NF90IGlkKQogICAgIFNvdXJjZVN0b3BwZWQodWlu
dDY0X3QgaWQpCkBAIC0zMSwzICszMyw1IEBAIG1lc3NhZ2VzIC0+IFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyIHsKICAgICBBcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKHVpbnQ2NF90IGlkLCBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MpCiAgICAgQXBwbHlDb25z
dHJhaW50c0ZhaWxlZCh1aW50NjRfdCBpZCwgU3RyaW5nIGZhaWxlZENvbnN0cmFpbnQsIFN0cmlu
ZyBtZXNzYWdlKQogfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IGIxNjBiNWUwZjhjYzZiOTk0ZTJlMWE2YmRm
ODM3YjY0MjBlMTFmNzIuLmRmMWZjZTk2YWNiOTMzNjJmYjc0MWY5YjRlNjNjMGVlMmNhYjk0OWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2Nv
YS5tbQpAQCAtMTkyLDcgKzE5Miw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nl
c3NOYW1lKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVyCiAgICAgICAg
IGFwcGxpY2F0aW9uTmFtZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OldFQl9VSV9TVFJJ
TkcoIiVAIFdlYiBJbnNwZWN0b3IiLCAiVmlzaWJsZSBuYW1lIG9mIFdlYiBJbnNwZWN0b3IncyB3
ZWIgcHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiIpLCAoTlNT
dHJpbmcgKilwYXJhbWV0ZXJzLnVpUHJvY2Vzc05hbWVdOwogI2lmIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKICAgICBlbHNlIGlmIChwYXJhbWV0ZXJzLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmdl
dChBU0NJSUxpdGVyYWwoInNlcnZpY2Utd29ya2VyLXByb2Nlc3MiKSkgPT0gIjEiKQotICAgICAg
ICBhcHBsaWNhdGlvbk5hbWUgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpXRUJfVUlfU1RS
SU5HKCIlQCBTZXJ2aWNlIFdvcmtlciIsICJWaXNpYmxlIG5hbWUgb2YgU2VydmljZSBXb3JrZXIg
cHJvY2Vzcy4gVGhlIGFyZ3VtZW50IGlzIHRoZSBhcHBsaWNhdGlvbiBuYW1lLiIpLCAoTlNTdHJp
bmcgKilwYXJhbWV0ZXJzLnVpUHJvY2Vzc05hbWVdOworICAgICAgICBhcHBsaWNhdGlvbk5hbWUg
PSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpXRUJfVUlfU1RSSU5HKCIlQCBTZXJ2aWNlIFdv
cmtlciAoJUApIiwgIlZpc2libGUgbmFtZSBvZiBTZXJ2aWNlIFdvcmtlciBwcm9jZXNzLiBUaGUg
YXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuIiksIChOU1N0cmluZyAqKXBhcmFtZXRl
cnMudWlQcm9jZXNzTmFtZSwgKE5TU3RyaW5nICopcGFyYW1ldGVycy5leHRyYUluaXRpYWxpemF0
aW9uRGF0YS5nZXQoQVNDSUlMaXRlcmFsKCJzZWN1cml0eS1vcmlnaW4iKSldOwogI2VuZGlmCiAg
ICAgZWxzZQogICAgICAgICBhcHBsaWNhdGlvbk5hbWUgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZv
cm1hdDpXRUJfVUlfU1RSSU5HKCIlQCBXZWIgQ29udGVudCIsICJWaXNpYmxlIG5hbWUgb2YgdGhl
IHdlYiBwcm9jZXNzLiBUaGUgYXJndW1lbnQgaXMgdGhlIGFwcGxpY2F0aW9uIG5hbWUuIiksIChO
U1N0cmluZyAqKXBhcmFtZXRlcnMudWlQcm9jZXNzTmFtZV07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9NaWdyYXRlSGVhZGVyc0Zyb21XZWJLaXRMZWdhY3kubWFrZSBiL1NvdXJjZS9X
ZWJLaXQvbWFjL01pZ3JhdGVIZWFkZXJzRnJvbVdlYktpdExlZ2FjeS5tYWtlCmluZGV4IGZhZmVh
MjMzNGI1YThkNGNjZmFiOWM2NWJmZjJlMzAwZDZiODI3ODIuLjVmZWQzNmVhYzNjZjRkNDM2ZDA3
M2UxOTI1NzYyMjAwYjg1OTY2Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL01pZ3Jh
dGVIZWFkZXJzRnJvbVdlYktpdExlZ2FjeS5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL01p
Z3JhdGVIZWFkZXJzRnJvbVdlYktpdExlZ2FjeS5tYWtlCkBAIC0zMCw3ICszMCw3IEBACiBQUklW
QVRFX0hFQURFUlNfRElSID0gJChCVUlMVF9QUk9EVUNUU19ESVIpLyQoUFJJVkFURV9IRUFERVJT
X0ZPTERFUl9QQVRIKQogUFVCTElDX0hFQURFUlNfRElSID0gJChCVUlMVF9QUk9EVUNUU19ESVIp
LyQoUFVCTElDX0hFQURFUlNfRk9MREVSX1BBVEgpCiAKLWlmZXEgKCQoUExBVEZPUk1fTkFNRSks
IG1hY29zeCkKK2lmZXEgKCQoV0tfUExBVEZPUk1fTkFNRSksIG1hY29zeCkKIAogV0VCS0lUX1BV
QkxJQ19IRUFERVJTID0gXAogICAgIENhcmJvblV0aWxzLmggXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvcG9zdHByb2Nlc3MtZnJhbWV3b3JrLWhlYWRlcnMuc2ggYi9Tb3VyY2UvV2Vi
S2l0L21hYy9wb3N0cHJvY2Vzcy1mcmFtZXdvcmstaGVhZGVycy5zaAppbmRleCAzNDJiMjBhOGEy
M2Y1MTJlMzE1YzYzNjY3MTdiMmYxNTVjNDRiZDlkLi4wNzEwNmI0YmRiZTllMTQ2NDVlNGRiOTAw
ZjQ4MzAwNjUwYjgwMTdlIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9wb3N0cHJvY2Vz
cy1mcmFtZXdvcmstaGVhZGVycy5zaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9wb3N0cHJvY2Vz
cy1mcmFtZXdvcmstaGVhZGVycy5zaApAQCAtNDksMTAgKzQ5LDEwIEBAIGZ1bmN0aW9uIHByb2Nl
c3NfZGVmaW5pdGlvbnMgKCkgewogfQogCiBmdW5jdGlvbiByZXdyaXRlX2hlYWRlcnMgKCkgewot
ICAgIGlmIFtbICIke1BMQVRGT1JNX05BTUV9IiA9PSAibWFjb3N4IiBdXTsgdGhlbgorICAgIGlm
IFtbICIke1dLX1BMQVRGT1JNX05BTUV9IiA9PSAibWFjb3N4IiBdXTsgdGhlbgogICAgICAgICBb
WyAtbiAke09TWF9WRVJTSU9OfSBdXSB8fCBPU1hfVkVSU0lPTj0ke01BQ09TWF9ERVBMT1lNRU5U
X1RBUkdFVH0KICAgICAgICAgW1sgLW4gJHtJT1NfVkVSU0lPTn0gXV0gfHwgSU9TX1ZFUlNJT049
Ik5BIgotICAgIGVsaWYgW1sgIiR7UExBVEZPUk1fTkFNRX0iID1+ICJpcGhvbmUiIF1dOyB0aGVu
CisgICAgZWxpZiBbWyAiJHtXS19QTEFURk9STV9OQU1FfSIgPX4gImlwaG9uZSIgXV07IHRoZW4K
ICAgICAgICAgW1sgLW4gJHtJT1NfVkVSU0lPTn0gXV0gfHwgSU9TX1ZFUlNJT049JHtJUEhPTkVP
U19ERVBMT1lNRU5UX1RBUkdFVH0KICAgICAgICAgW1sgLW4gJHtPU1hfVkVSU0lPTn0gXV0gfHwg
T1NYX1ZFUlNJT049Ik5BIgogICAgIGZpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L1N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2Uv
U3RvcmFnZUFyZWFJbXBsLmgKaW5kZXggMTY0NzcyMjc4NGNiYTRjZTNhZGJmMWUxMjJhYWJmMGU2
MDM5NWVjOS4uMzg2ZDQ4ZDk5MDI2YmMxYjE3MWRhMWJlNmQ2NjQzZmYwNDA2ZmQ4OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaApAQCAtNjEsNyAr
NjEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWNyZW1lbnRBY2Nlc3NDb3VudCgpIG92ZXJyaWRl
OwogICAgIHZvaWQgY2xvc2VEYXRhYmFzZUlmSWRsZSgpIG92ZXJyaWRlOwogCi0gICAgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2luKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9zZWN1cml0eU9yaWdpbjsgfQorICAgIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYgc2VjdXJpdHlPcmlnaW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3NlY3Vy
aXR5T3JpZ2luOyB9CiAKICAgICBSZWY8U3RvcmFnZUFyZWFJbXBsPiBjb3B5KCk7CiAgICAgdm9p
ZCBjbG9zZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9TdG9yYWdlL1N0b3Jh
Z2VUcmFja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9TdG9yYWdlVHJhY2tl
ci5jcHAKaW5kZXggZDVlNWY3NDc3ZTgzM2QyNGNlYjNiYTE5MjhmMWQxYzE2OTJmZWFiYS4uZGRi
ZGIyMmVhMGZhMGRjNGIxY2JkNWE2ZmM2Zjg4NjViOGFlYTEwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9TdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L1N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwCkBAIC02MzcsNyArNjM3LDcgQEAg
bG9uZyBsb25nIFN0b3JhZ2VUcmFja2VyOjpkaXNrVXNhZ2VGb3JPcmlnaW4oU2VjdXJpdHlPcmln
aW4qIG9yaWdpbikKIAogICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fZGF0YWJhc2VNdXRleCk7CiAK
LSAgICBTdHJpbmcgcGF0aCA9IGRhdGFiYXNlUGF0aEZvck9yaWdpbihTZWN1cml0eU9yaWdpbkRh
dGE6OmZyb21TZWN1cml0eU9yaWdpbigqb3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIoKSk7Cisg
ICAgU3RyaW5nIHBhdGggPSBkYXRhYmFzZVBhdGhGb3JPcmlnaW4ob3JpZ2luLT5kYXRhKCkuZGF0
YWJhc2VJZGVudGlmaWVyKCkpOwogICAgIGlmIChwYXRoLmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuIDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2Fj
eS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY1NTFmYTRiMDJmNWI2NTc5YzY1NjBm
OTEwMjQ4M2ZlNmJkNmEwNzYuLjZjNDJhNzRiMjk5M2JmMWFiN2Y3YjQwYjQzMzRlMWE3MmMyNzVl
OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJLaXRMZWdhY3ku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzI3Miw3ICszMjcyLDcgQEAKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJCXNoZWxsUGF0aCA9
IC9iaW4vc2g7Ci0JCQlzaGVsbFNjcmlwdCA9ICJpZiBbWyAke1BMQVRGT1JNX05BTUV9ICE9IFwi
bWFjb3N4XCIgXV07IHRoZW5cbiAgICBleGl0IDBcbmZpXG5cbltbIC1oIFwiJHtUQVJHRVRfQlVJ
TERfRElSfS9XZWJLaXRMZWdhY3kuZnJhbWV3b3JrL1dlYktpdFBsdWdpbkhvc3QuYXBwXCIgXV0g
fHwgbG4gLXMgVmVyc2lvbnMvQ3VycmVudC9XZWJLaXRQbHVnaW5Ib3N0LmFwcCBcIiR7VEFSR0VU
X0JVSUxEX0RJUn0vV2ViS2l0TGVnYWN5LmZyYW1ld29yay9XZWJLaXRQbHVnaW5Ib3N0LmFwcFwi
XG5bWyAtaCBcIiR7VEFSR0VUX0JVSUxEX0RJUn0vV2ViS2l0TGVnYWN5LmZyYW1ld29yay9XZWJL
aXRQbHVnaW5BZ2VudFwiIF1dIHx8IGxuIC1zIFZlcnNpb25zL0N1cnJlbnQvV2ViS2l0UGx1Z2lu
QWdlbnQgXCIke1RBUkdFVF9CVUlMRF9ESVJ9L1dlYktpdExlZ2FjeS5mcmFtZXdvcmsvV2ViS2l0
UGx1Z2luQWdlbnRcIlxuXG5pZiBbWyBcIiR7Q09ORklHVVJBVElPTn1cIiAhPSBcIlByb2R1Y3Rp
b25cIiAmJiAke0FDVElPTn0gPT0gXCJidWlsZFwiICAmJiAhIC1lIFwiJHtUQVJHRVRfQlVJTERf
RElSfS9XZWJLaXRMZWdhY3kuZnJhbWV3b3JrL1ZlcnNpb25zL0EvV2ViS2l0UGx1Z2luSG9zdC5h
cHBcIiBdXTsgdGhlblxuICAgIGlmIFtbIC1lIFwiL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv
V2ViS2l0LmZyYW1ld29yay9XZWJLaXRQbHVnaW5Ib3N0LmFwcFwiIF1dOyB0aGVuXG4gICAgICAg
IGxuIC1zIC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1dlYktpdC5mcmFtZXdvcmsvV2ViS2l0
UGx1Z2luSG9zdC5hcHAgXCIke1RBUkdFVF9CVUlMRF9ESVJ9L1dlYktpdExlZ2FjeS5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9XZWJLaXRQbHVnaW5Ib3N0LmFwcFwiXG4gICAgZWxzZVxuICAgICAgICBs
biAtcyAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9XZWJLaXQuZnJhbWV3b3JrL1ZlcnNpb25z
L0EvRnJhbWV3b3Jrcy9XZWJLaXRMZWdhY3kuZnJhbWV3b3JrL1dlYktpdFBsdWdpbkhvc3QuYXBw
IFwiJHtUQVJHRVRfQlVJTERfRElSfS9XZWJLaXRMZWdhY3kuZnJhbWV3b3JrL1ZlcnNpb25zL0Ev
V2ViS2l0UGx1Z2luSG9zdC5hcHBcIlxuICAgIGZpXG5maVxuIjsKKwkJCXNoZWxsU2NyaXB0ID0g
ImlmIFtbICR7V0tfUExBVEZPUk1fTkFNRX0gIT0gXCJtYWNvc3hcIiBdXTsgdGhlblxuICAgIGV4
aXQgMFxuZmlcblxuW1sgLWggXCIke1RBUkdFVF9CVUlMRF9ESVJ9L1dlYktpdExlZ2FjeS5mcmFt
ZXdvcmsvV2ViS2l0UGx1Z2luSG9zdC5hcHBcIiBdXSB8fCBsbiAtcyBWZXJzaW9ucy9DdXJyZW50
L1dlYktpdFBsdWdpbkhvc3QuYXBwIFwiJHtUQVJHRVRfQlVJTERfRElSfS9XZWJLaXRMZWdhY3ku
ZnJhbWV3b3JrL1dlYktpdFBsdWdpbkhvc3QuYXBwXCJcbltbIC1oIFwiJHtUQVJHRVRfQlVJTERf
RElSfS9XZWJLaXRMZWdhY3kuZnJhbWV3b3JrL1dlYktpdFBsdWdpbkFnZW50XCIgXV0gfHwgbG4g
LXMgVmVyc2lvbnMvQ3VycmVudC9XZWJLaXRQbHVnaW5BZ2VudCBcIiR7VEFSR0VUX0JVSUxEX0RJ
Un0vV2ViS2l0TGVnYWN5LmZyYW1ld29yay9XZWJLaXRQbHVnaW5BZ2VudFwiXG5cbmlmIFtbIFwi
JHtDT05GSUdVUkFUSU9OfVwiICE9IFwiUHJvZHVjdGlvblwiICYmICR7QUNUSU9OfSA9PSBcImJ1
aWxkXCIgICYmICEgLWUgXCIke1RBUkdFVF9CVUlMRF9ESVJ9L1dlYktpdExlZ2FjeS5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9XZWJLaXRQbHVnaW5Ib3N0LmFwcFwiIF1dOyB0aGVuXG4gICAgaWYgW1sg
LWUgXCIvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9XZWJLaXQuZnJhbWV3b3JrL1dlYktpdFBs
dWdpbkhvc3QuYXBwXCIgXV07IHRoZW5cbiAgICAgICAgbG4gLXMgL1N5c3RlbS9MaWJyYXJ5L0Zy
YW1ld29ya3MvV2ViS2l0LmZyYW1ld29yay9XZWJLaXRQbHVnaW5Ib3N0LmFwcCBcIiR7VEFSR0VU
X0JVSUxEX0RJUn0vV2ViS2l0TGVnYWN5LmZyYW1ld29yay9WZXJzaW9ucy9BL1dlYktpdFBsdWdp
bkhvc3QuYXBwXCJcbiAgICBlbHNlXG4gICAgICAgIGxuIC1zIC9TeXN0ZW0vTGlicmFyeS9GcmFt
ZXdvcmtzL1dlYktpdC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL1dlYktpdExlZ2Fj
eS5mcmFtZXdvcmsvV2ViS2l0UGx1Z2luSG9zdC5hcHAgXCIke1RBUkdFVF9CVUlMRF9ESVJ9L1dl
YktpdExlZ2FjeS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9XZWJLaXRQbHVnaW5Ib3N0LmFwcFwiXG4g
ICAgZmlcbmZpXG4iOwogCQl9OwogCQkxQzM5NURFMjBDNkJFOEUwMDAwRDFFNTIgLyogR2VuZXJh
dGUgRXhwb3J0IEZpbGVzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNl
OwpAQCAtMzI5Myw3ICszMjkzLDcgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7Ci0JCQlzaGVsbFNjcmlw
dCA9ICJta2RpciAtcCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XZWJL
aXRMZWdhY3lcIlxuXG5pZiBbWyBcIiR7UExBVEZPUk1fTkFNRX1cIiAhPSBcIm1hY29zeFwiIF1d
OyB0aGVuXG4gICAgY2F0IFwiJHtQUk9KRUNUX0RJUn0vbWFjL1dlYktpdC5leHBcIiBcIiR7UFJP
SkVDVF9ESVJ9L2lvcy9XZWJLaXQuaU9TLmV4cFwiID4gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0v
RGVyaXZlZFNvdXJjZXMvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS5nZW5lcmF0ZWQuZXhwXCJc
bmVsc2VcbiAgICBjYXQgXCIke1BST0pFQ1RfRElSfS9tYWMvV2ViS2l0LmV4cFwiIFwiJHtQUk9K
RUNUX0RJUn0vbWFjL1dlYktpdC5tYWMuZXhwXCIgPiBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9E
ZXJpdmVkU291cmNlcy9XZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5LmdlbmVyYXRlZC5leHBcIlxu
ZmlcblxuaWYgWyAtZiBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XZWJL
aXRMZWdhY3kvUmVleHBvcnRlZFdlYkNvcmVTeW1ib2xzXyR7Q1VSUkVOVF9BUkNIfS5leHBcIiBd
OyB0aGVuXG4gICAgY2F0IFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dl
YktpdExlZ2FjeS9SZWV4cG9ydGVkV2ViQ29yZVN5bWJvbHNfJHtDVVJSRU5UX0FSQ0h9LmV4cFwi
ID4+IFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYktpdExlZ2FjeS9X
ZWJLaXRMZWdhY3kuZ2VuZXJhdGVkLmV4cFwiXG5maVxuXG4jIGV4Y2x1ZGUgQ2FyYm9uIGZ1bmN0
aW9ucyBvbiA2NC1iaXRcbnNlZCAtZSBzL15fSElXZWJWaWV3Q3JlYXRlJC8vIC1lIHMvXl9ISVdl
YlZpZXdHZXRXZWJWaWV3JC8vIC1lIHMvXl9XZWJDb252ZXJ0TlNJbWFnZVRvQ0dJbWFnZVJlZiQv
LyAtZSBzL15fV2ViSW5pdEZvckNhcmJvbiQvLyBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJp
dmVkU291cmNlcy9XZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5LmdlbmVyYXRlZC5leHBcIiA+IFwi
JHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYktpdExlZ2FjeS9XZWJLaXRM
ZWdhY3kuTFA2NC5leHBcIlxuXG4jIGV4Y2x1ZGUgT0JKQ19JVkFSIGZvciBpMzg2XG5ncmVwIC12
IFwiX09CSkNfSVZBUlwiIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dl
YktpdExlZ2FjeS9XZWJLaXRMZWdhY3kuZ2VuZXJhdGVkLmV4cFwiID4gXCIke0JVSUxUX1BST0RV
Q1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS5pMzg2LmV4
cFwiIjsKKwkJCXNoZWxsU2NyaXB0ID0gIm1rZGlyIC1wIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdExlZ2FjeVwiXG5cbmlmIFtbIFwiJHtXS19QTEFURk9STV9O
QU1FfVwiICE9IFwibWFjb3N4XCIgXV07IHRoZW5cbiAgICBjYXQgXCIke1BST0pFQ1RfRElSfS9t
YWMvV2ViS2l0LmV4cFwiIFwiJHtQUk9KRUNUX0RJUn0vaW9zL1dlYktpdC5pT1MuZXhwXCIgPiBc
IiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XZWJLaXRMZWdhY3kvV2ViS2l0
TGVnYWN5LmdlbmVyYXRlZC5leHBcIlxuZWxzZVxuICAgIGNhdCBcIiR7UFJPSkVDVF9ESVJ9L21h
Yy9XZWJLaXQuZXhwXCIgXCIke1BST0pFQ1RfRElSfS9tYWMvV2ViS2l0Lm1hYy5leHBcIiA+IFwi
JHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYktpdExlZ2FjeS9XZWJLaXRM
ZWdhY3kuZ2VuZXJhdGVkLmV4cFwiXG5maVxuXG5pZiBbIC1mIFwiJHtCVUlMVF9QUk9EVUNUU19E
SVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYktpdExlZ2FjeS9SZWV4cG9ydGVkV2ViQ29yZVN5bWJvbHNf
JHtDVVJSRU5UX0FSQ0h9LmV4cFwiIF07IHRoZW5cbiAgICBjYXQgXCIke0JVSUxUX1BST0RVQ1RT
X0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViS2l0TGVnYWN5L1JlZXhwb3J0ZWRXZWJDb3JlU3ltYm9s
c18ke0NVUlJFTlRfQVJDSH0uZXhwXCIgPj4gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS5nZW5lcmF0ZWQuZXhwXCJcbmZpXG5c
biMgZXhjbHVkZSBDYXJib24gZnVuY3Rpb25zIG9uIDY0LWJpdFxuc2VkIC1lIHMvXl9ISVdlYlZp
ZXdDcmVhdGUkLy8gLWUgcy9eX0hJV2ViVmlld0dldFdlYlZpZXckLy8gLWUgcy9eX1dlYkNvbnZl
cnROU0ltYWdlVG9DR0ltYWdlUmVmJC8vIC1lIHMvXl9XZWJJbml0Rm9yQ2FyYm9uJC8vIFwiJHtC
VUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYktpdExlZ2FjeS9XZWJLaXRMZWdh
Y3kuZ2VuZXJhdGVkLmV4cFwiID4gXCIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS5MUDY0LmV4cFwiXG5cbiMgZXhjbHVkZSBPQkpD
X0lWQVIgZm9yIGkzODZcbmdyZXAgLXYgXCJfT0JKQ19JVkFSXCIgXCIke0JVSUxUX1BST0RVQ1RT
X0RJUn0vRGVyaXZlZFNvdXJjZXMvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS5nZW5lcmF0ZWQu
ZXhwXCIgPiBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XZWJLaXRMZWdh
Y3kvV2ViS2l0TGVnYWN5LmkzODYuZXhwXCIiOwogCQl9OwogCQkxQzZDQjA1MTBBQTYzRUIwMDBE
MjNCRkQgLyogTWlncmF0ZSBIZWFkZXJzICovID0gewogCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRC
dWlsZFBoYXNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvTWlzYy9XZWJH
ZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9p
b3MvTWlzYy9XZWJHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLm1tCmluZGV4IGQ5ZjAz
M2E3ZDcyMGExNGUxMTMyMTY3MjBmNmYwYjYzODRlYTEzNGEuLjljNzRmODA0M2Y2OTQzYmI0MjI1
M2VhMDlhZjA1MGY2Y2Y0ZDA4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9z
L01pc2MvV2ViR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uQ29yZUxvY2F0aW9uUHJvdmlkZXIu
bW0KQEAgLTg5LDYgKzg5LDEwIEBAIC0gKHZvaWQpZGVhbGxvYwogCiAtICh2b2lkKXJlcXVlc3RH
ZW9sb2NhdGlvbkF1dGhvcml6YXRpb24KIHsKKyNpZiBFTkFCTEUoTUlOSU1BTF9TSU1VTEFUT1Ip
CisgICAgW19wb3NpdGlvbkxpc3RlbmVyIGdlb2xvY2F0aW9uQXV0aG9yaXphdGlvbkRlbmllZF07
CisgICAgcmV0dXJuOworI2Vsc2UKICAgICBpZiAoIVtnZXRDTExvY2F0aW9uTWFuYWdlckNsYXNz
KCkgbG9jYXRpb25TZXJ2aWNlc0VuYWJsZWRdKSB7CiAgICAgICAgIFtfcG9zaXRpb25MaXN0ZW5l
ciBnZW9sb2NhdGlvbkF1dGhvcml6YXRpb25EZW5pZWRdOwogICAgICAgICByZXR1cm47CkBAIC0x
MTIsNiArMTE2LDcgQEAgLSAodm9pZClyZXF1ZXN0R2VvbG9jYXRpb25BdXRob3JpemF0aW9uCiAg
ICAgICAgIFtfcG9zaXRpb25MaXN0ZW5lciBnZW9sb2NhdGlvbkF1dGhvcml6YXRpb25EZW5pZWRd
OwogICAgICAgICBicmVhazsKICAgICB9CisjZW5kaWYKIH0KIAogc3RhdGljIGJvb2wgaXNBdXRo
b3JpemF0aW9uR3JhbnRlZChDTEF1dGhvcml6YXRpb25TdGF0dXMgYXV0aG9yaXphdGlvblN0YXR1
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL01pc2MvV2ViR2VvbG9jYXRp
b25Qcm92aWRlcklPUy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL01pc2MvV2ViR2VvbG9j
YXRpb25Qcm92aWRlcklPUy5tbQppbmRleCA3M2QwMGI0ZDlhYjQwZmE0NDgyOWMzODk2MzUyNjdh
YjE2OWNmODBhLi4yN2RhMjNiZDdmY2Y3NTNhY2QwNTlhZDBhMDllOWM4MTY0ODE5NTRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9NaXNjL1dlYkdlb2xvY2F0aW9uUHJvdmlk
ZXJJT1MubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvTWlzYy9XZWJHZW9sb2NhdGlv
blByb3ZpZGVySU9TLm1tCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbXBvcnQgIldlYkdlb2xvY2F0
aW9uUHJvdmlkZXJJT1MuaCIKIAorI2ltcG9ydCAiV2ViRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNh
Y2hpbmcuaCIKICNpbXBvcnQgIldlYkdlb2xvY2F0aW9uQ29yZUxvY2F0aW9uUHJvdmlkZXIuaCIK
ICNpbXBvcnQgPFdlYkdlb2xvY2F0aW9uUG9zaXRpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvR2Vv
bG9jYXRpb25Qb3NpdGlvbi5oPgpAQCAtMzcsMTAgKzM4LDYgQEAKICNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KIAotI2lmIFBMQVRGT1JNKElPUykKLSNp
bXBvcnQgIldlYkRlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNoaW5nLmgiCi0jZW5kaWYKLQogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIEBpbnRlcmZhY2UgV2ViR2VvbG9jYXRpb25Qb3NpdGlv
biAoSW50ZXJuYWwpCkBAIC0xNzYsMTAgKzE3Myw4IEBAIC0gKHZvaWQpcmVnaXN0ZXJXZWJWaWV3
OihXZWJWaWV3ICopd2ViVmlldwogICAgICAgICByZXR1cm47CiAKICAgICBfcmVnaXN0ZXJlZFdl
YlZpZXdzLmFkZCh3ZWJWaWV3KTsKLSNpZiBQTEFURk9STShJT1MpCiAgICAgaWYgKCFDYWxsVUlE
ZWxlZ2F0ZVJldHVybmluZ0Jvb2xlYW4oWUVTLCB3ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlld0Nh
bkNoZWNrR2VvbG9jYXRpb25BdXRob3JpemF0aW9uU3RhdHVzOikpKQogICAgICAgICByZXR1cm47
Ci0jZW5kaWYKIAogICAgIGlmICghX2lzU3VzcGVuZGVkKSB7CiAgICAgICAgIGRpc3BhdGNoX2Fz
eW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57CkBAIC0yMzksMTAgKzIzNCw5IEBAIC0g
KHZvaWQpaW5pdGlhbGl6ZUdlb2xvY2F0aW9uRm9yV2ViVmlldzooV2ViVmlldyAqKXdlYlZpZXcg
bGlzdGVuZXI6KGlkPFdlYkdlb2xvCiB7CiAgICAgQVNTRVJUKFdlYlRocmVhZElzTG9ja2VkT3JE
aXNhYmxlZCgpKTsKIAotI2lmIFBMQVRGT1JNKElPUykKICAgICBpZiAoIUNhbGxVSURlbGVnYXRl
UmV0dXJuaW5nQm9vbGVhbihZRVMsIHdlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3Q2FuQ2hlY2tH
ZW9sb2NhdGlvbkF1dGhvcml6YXRpb25TdGF0dXM6KSkpCiAgICAgICAgIHJldHVybjsKLSNlbmRp
ZgorCiAgICAgX3dlYlZpZXdzV2FpdGluZ0ZvckNvcmVMb2NhdGlvbkF1dGhvcml6YXRpb24uYWRk
KHdlYlZpZXcsIGxpc3RlbmVyKTsKICAgICBfdHJhY2tlZFdlYlZpZXdzLmFkZCh3ZWJWaWV3KTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0
aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA5NzI1YjA0MmU5NGI2M2NjYmUzODAz
YzUzMmQyY2EyOTgyYjYyZjRiLi40MzZiYjkyMzNlZjExMDM5NzQxMmQ0YWM2MzVkMWY2OTkyMDgw
ODFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpAQCAtMTAxLDcgKzEwMSw2IEBAIEVO
QUJMRV9EQVRBTElTVF9FTEVNRU5UID0gOwogCiBFTkFCTEVfREFUQV9JTlRFUkFDVElPTiA9ICQo
RU5BQkxFX0RBVEFfSU5URVJBQ1RJT05fJChXS19QTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfREFU
QV9JTlRFUkFDVElPTl9pcGhvbmVvcyA9IEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OOwotRU5BQkxF
X0RBVEFfSU5URVJBQ1RJT05faXBob25lbWluaW1hbHNpbXVsYXRvciA9IEVOQUJMRV9EQVRBX0lO
VEVSQUNUSU9OOwogRU5BQkxFX0RBVEFfSU5URVJBQ1RJT05faXBob25lc2ltdWxhdG9yID0gRU5B
QkxFX0RBVEFfSU5URVJBQ1RJT047CiAKIEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04gPSAkKEVO
QUJMRV9ERVZJQ0VfT1JJRU5UQVRJT05fJChXS19QTEFURk9STV9OQU1FKSk7CkBAIC0xMTQsNyAr
MTEzLDYgQEAgRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTl9hcHBsZXR2c2ltdWxhdG9yID0gRU5B
QkxFX0RFVklDRV9PUklFTlRBVElPTjsKIAogRU5BQkxFX0RSQUdfU1VQUE9SVCA9ICQoRU5BQkxF
X0RSQUdfU1VQUE9SVF8kKFdLX1BMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9EUkFHX1NVUFBPUlRf
aXBob25lb3MgPSBFTkFCTEVfRFJBR19TVVBQT1JUOwotRU5BQkxFX0RSQUdfU1VQUE9SVF9pcGhv
bmVtaW5pbWFsc2ltdWxhdG9yID0gRU5BQkxFX0RSQUdfU1VQUE9SVDsKIEVOQUJMRV9EUkFHX1NV
UFBPUlRfaXBob25lc2ltdWxhdG9yID0gRU5BQkxFX0RSQUdfU1VQUE9SVDsKIAogRU5BQkxFX0VO
Q1JZUFRFRF9NRURJQSA9ICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV8kKFdLX1BMQVRGT1JNX05B
TUUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25z
L1ZlcnNpb24ueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9u
cy9WZXJzaW9uLnhjY29uZmlnCmluZGV4IDZlOWJlMDVlYzAwNTUxNzczODVkNjQ0OTI4ZWRiYmE0
MDNiYzEzZmEuLjE3ZjE5MWQ5M2VmOTAzOTExYWFmMzcwZGU3MzA4NjhlYTlmYzIwYTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL1ZlcnNpb24ueGNj
b25maWcKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvVmVyc2lv
bi54Y2NvbmZpZwpAQCAtMjMsNyArMjMsNyBAQAogCiBNQUpPUl9WRVJTSU9OID0gNjA2OwogTUlO
T1JfVkVSU0lPTiA9IDE7Ci1USU5ZX1ZFUlNJT04gPSAxMDsKK1RJTllfVkVSU0lPTiA9IDExOwog
TUlDUk9fVkVSU0lPTiA9IDA7CiBOQU5PX1ZFUlNJT04gPSAwOwogRlVMTF9WRVJTSU9OID0gJChN
QUpPUl9WRVJTSU9OKS4kKE1JTk9SX1ZFUlNJT04pLiQoVElOWV9WRVJTSU9OKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL1dlYktpdExlZ2FjeS54
Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NvbmZpZ3VyYXRpb25zL1dlYktpdExl
Z2FjeS54Y2NvbmZpZwppbmRleCA5ZjkxNTJkYjJhNDhhMjQ0NzNjMjAwM2JiYzM1NjQ4NjYwMDgy
ZjlhLi5jYWU4N2M1ZWY0NDRjYmExMmRkYzExOTVhZjBiOTY4ZWI1YjVlNGQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9Db25maWd1cmF0aW9ucy9XZWJLaXRMZWdhY3kueGNj
b25maWcKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ29uZmlndXJhdGlvbnMvV2ViS2l0
TGVnYWN5LnhjY29uZmlnCkBAIC0yNCwxMiArMjQsMTQgQEAKICNpbmNsdWRlICJGZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZyIKICNpbmNsdWRlICJWZXJzaW9uLnhjY29uZmlnIgogCi1FWENMVURFRF9T
T1VSQ0VfRklMRV9OQU1FU1tzZGs9aXBob25lKl0gPSAqLmRlZnMgKi5uaWIgKi5wZGYgKi50aWZm
IENhcmJvblV0aWxzLiogQ2FyYm9uV2luZG93QWRhcHRlci4qIENhcmJvbldpbmRvd0NvbnRlbnRW
aWV3LiogQ2FyYm9uV2luZG93RnJhbWUuKiBISVZpZXdBZGFwdGVyLiogSElXZWJWaWV3LiogT3V0
bG9va1F1aXJrc1VzZXJTY3JpcHQuanMgUG9wdXBNZW51TWFjLiogU2VhcmNoUG9wdXBNZW51TWFj
LiogV2ViQ2xpcFZpZXcuKiBXZWJEYXNoYm9hcmRSZWdpb24uKiBXZWJEeW5hbWljU2Nyb2xsQmFy
c1ZpZXcuKiBXZWJJY29uRGF0YWJhc2UuKiBXZWJJbnNwZWN0b3JDbGllbnQuKiBXZWJKYXZhU2Ny
aXB0VGV4dElucHV0UGFuZWwuKiBXZWJOU0V2ZW50RXh0cmFzLiogV2ViTlNQYXN0ZWJvYXJkRXh0
cmFzLiogV2ViTlNXaW5kb3dFeHRyYXMuKiBXZWJQYW5lbEF1dGhlbnRpY2F0aW9uSGFuZGxlci4q
IFdlYlBsdWdpbnNQcml2YXRlLiogV2ViU3RyaW5nVHJ1bmNhdG9yLiogV2ViVGV4dENvbXBsZXRp
b25Db250cm9sbGVyLio7Ci1FWENMVURFRF9TT1VSQ0VfRklMRV9OQU1FU1tzZGs9bWFjb3N4Kl0g
PSAqSU9TLm1tIE1lbW9yeU1lYXN1cmUuaCBXZWJDYXJldENoYW5nZUxpc3RlbmVyLmggV2ViRml4
ZWRQb3NpdGlvbkNvbnRlbnQuaCBXZWJGcmFtZUlPUy5oIFdlYkZyYW1lSVBob25lLmggV2ViR2Vv
bG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5oIFdlYkdlb2xvY2F0aW9uUHJpdmF0ZS5oIFdl
Ykdlb2xvY2F0aW9uUHJvdmlkZXJJT1MuaCBXZWJNSU1FVHlwZVJlZ2lzdHJ5LmggV2ViTlNTdHJp
bmdFeHRyYXNJT1MuaCBXZWJOU1N0cmluZ0V4dHJhc0lQaG9uZS5oIFdlYlBERlZpZXdJT1MuaCBX
ZWJQREZWaWV3SVBob25lLmggV2ViUERGVmlld1BsYWNlaG9sZGVyLmggV2ViU2VsZWN0aW9uUmVj
dC5oIFdlYlVJS2l0RGVsZWdhdGUuaCBXZWJVSUtpdFN1cHBvcnQuaCBXZWJWaXNpYmxlUG9zaXRp
b24uaCBET01IVE1MVGV4dEFyZWFFbGVtZW50UHJpdmF0ZS5oIERPTVVJS2l0RXh0ZW5zaW9ucy5o
OworRVhDTFVERURfU09VUkNFX0ZJTEVfTkFNRVMgPSAkKEVYQ0xVREVEX1NPVVJDRV9GSUxFX05B
TUVTXyQoV0tfQ09DT0FfVE9VQ0gpKTsKK0VYQ0xVREVEX1NPVVJDRV9GSUxFX05BTUVTX2NvY29h
dG91Y2ggPSAqLmRlZnMgKi5uaWIgKi5wZGYgKi50aWZmIENhcmJvblV0aWxzLiogQ2FyYm9uV2lu
ZG93QWRhcHRlci4qIENhcmJvbldpbmRvd0NvbnRlbnRWaWV3LiogQ2FyYm9uV2luZG93RnJhbWUu
KiBISVZpZXdBZGFwdGVyLiogSElXZWJWaWV3LiogT3V0bG9va1F1aXJrc1VzZXJTY3JpcHQuanMg
UG9wdXBNZW51TWFjLiogU2VhcmNoUG9wdXBNZW51TWFjLiogV2ViQ2xpcFZpZXcuKiBXZWJEYXNo
Ym9hcmRSZWdpb24uKiBXZWJEeW5hbWljU2Nyb2xsQmFyc1ZpZXcuKiBXZWJJY29uRGF0YWJhc2Uu
KiBXZWJJbnNwZWN0b3JDbGllbnQuKiBXZWJKYXZhU2NyaXB0VGV4dElucHV0UGFuZWwuKiBXZWJO
U0V2ZW50RXh0cmFzLiogV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLiogV2ViTlNXaW5kb3dFeHRyYXMu
KiBXZWJQYW5lbEF1dGhlbnRpY2F0aW9uSGFuZGxlci4qIFdlYlBsdWdpbnNQcml2YXRlLiogV2Vi
U3RyaW5nVHJ1bmNhdG9yLiogV2ViVGV4dENvbXBsZXRpb25Db250cm9sbGVyLio7CitFWENMVURF
RF9TT1VSQ0VfRklMRV9OQU1FU18gPSAqSU9TLm1tIE1lbW9yeU1lYXN1cmUuaCBXZWJDYXJldENo
YW5nZUxpc3RlbmVyLmggV2ViRml4ZWRQb3NpdGlvbkNvbnRlbnQuaCBXZWJGcmFtZUlPUy5oIFdl
YkZyYW1lSVBob25lLmggV2ViR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Qcm92aWRlci5oIFdlYkdl
b2xvY2F0aW9uUHJpdmF0ZS5oIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXJJT1MuaCBXZWJNSU1FVHlw
ZVJlZ2lzdHJ5LmggV2ViTlNTdHJpbmdFeHRyYXNJT1MuaCBXZWJOU1N0cmluZ0V4dHJhc0lQaG9u
ZS5oIFdlYlBERlZpZXdJT1MuaCBXZWJQREZWaWV3SVBob25lLmggV2ViUERGVmlld1BsYWNlaG9s
ZGVyLmggV2ViU2VsZWN0aW9uUmVjdC5oIFdlYlVJS2l0RGVsZWdhdGUuaCBXZWJVSUtpdFN1cHBv
cnQuaCBXZWJWaXNpYmxlUG9zaXRpb24uaCBET01IVE1MVGV4dEFyZWFFbGVtZW50UHJpdmF0ZS5o
IERPTVVJS2l0RXh0ZW5zaW9ucy5oOwogCi1FWFBPUlRFRF9TWU1CT0xTX0ZJTEUgPSAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS5n
ZW5lcmF0ZWQuZXhwOwotRVhQT1JURURfU1lNQk9MU19GSUxFW3Nkaz1tYWNvc3gqXVthcmNoPWkz
ODZdID0gJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdExlZ2FjeS9X
ZWJLaXRMZWdhY3kuaTM4Ni5leHA7Ci1FWFBPUlRFRF9TWU1CT0xTX0ZJTEVbc2RrPW1hY29zeCpd
W2FyY2g9eDg2XzY0XSA9ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXRMZWdhY3kvV2ViS2l0TGVnYWN5LkxQNjQuZXhwOworRVhQT1JURURfU1lNQk9MU19GSUxFID0g
JChFWFBPUlRFRF9TWU1CT0xTX0ZJTEVfJChXS19DT0NPQV9UT1VDSCkpOworRVhQT1JURURfU1lN
Qk9MU19GSUxFX2NvY29hdG91Y2ggPSAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS5nZW5lcmF0ZWQuZXhwOworRVhQT1JURURfU1lN
Qk9MU19GSUxFX1thcmNoPWkzODZdID0gJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdExlZ2FjeS9XZWJLaXRMZWdhY3kuaTM4Ni5leHA7CitFWFBPUlRFRF9TWU1CT0xT
X0ZJTEVfW2FyY2g9eDg2XzY0XSA9ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5LkxQNjQuZXhwOwogCiBXS19YQ09ERV9TVVBQT1JU
U19URVhUX0JBU0VEX1NUVUJTID0gJChXS19OT1RfJChXS19FTVBUWV8kKFRBUElfVkVSSUZZX01P
REUpKSk7CiBXS19QUklWQVRFX0ZSQU1FV09SS1NfRElSID0gJChXS19QUklWQVRFX0ZSQU1FV09S
S1NfRElSXyQoVVNFX0lOVEVSTkFMX1NESykpOwpAQCAtNTQsMTMgKzU2LDE1IEBAIEdDQ19QUkVQ
Uk9DRVNTT1JfREVGSU5JVElPTlMgPSAkKERFQlVHX0RFRklORVMpICQoRkVBVFVSRV9ERUZJTkVT
KSBVX0hJREVfREVQUkVDCiBXRUJLSVRBRERJVElPTlNfSEVBREVSX1NFQVJDSF9QQVRIUyA9ICQo
QlVJTFRfUFJPRFVDVFNfRElSKS91c3IvbG9jYWwvaW5jbHVkZS9XZWJLaXRBZGRpdGlvbnMgJChT
REtST09UKS91c3IvbG9jYWwvaW5jbHVkZS9XZWJLaXRBZGRpdGlvbnM7CiBMSUJXRUJSVENfSEVB
REVSX1NFQVJDSF9QQVRIUyA9ICQoQlVJTFRfUFJPRFVDVFNfRElSKS91c3IvbG9jYWwvaW5jbHVk
ZS93ZWJydGMgJChTREtST09UKS91c3IvbG9jYWwvaW5jbHVkZS93ZWJydGM7CiAKLUhFQURFUl9T
RUFSQ0hfUEFUSFMgPSAiJChXRUJDT1JFX1BSSVZBVEVfSEVBREVSU19ESVIpL0ZvcndhcmRpbmdI
ZWFkZXJzIiAiJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdExlZ2Fj
eSIgIiQoQlVJTFRfUFJPRFVDVFNfRElSKS91c3IvbG9jYWwvaW5jbHVkZSIgJChXRUJLSVRBRERJ
VElPTlNfSEVBREVSX1NFQVJDSF9QQVRIUykgJChMSUJXRUJSVENfSEVBREVSX1NFQVJDSF9QQVRI
UykgJChIRUFERVJfU0VBUkNIX1BBVEhTKTsKK0hFQURFUl9TRUFSQ0hfUEFUSFMgPSAiJChXRUJD
T1JFX1BSSVZBVEVfSEVBREVSU19ESVIpL0ZvcndhcmRpbmdIZWFkZXJzIiAiJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdExlZ2FjeSIgIiQoQlVJTFRfUFJPRFVDVFNf
RElSKSQoV0tfQUxURVJOQVRFX1dFQktJVF9TREtfUEFUSCkvdXNyL2xvY2FsL2luY2x1ZGUiICQo
V0VCS0lUQURESVRJT05TX0hFQURFUl9TRUFSQ0hfUEFUSFMpICQoTElCV0VCUlRDX0hFQURFUl9T
RUFSQ0hfUEFUSFMpICQoSEVBREVSX1NFQVJDSF9QQVRIUyk7CiBJTkZPUExJU1RfRklMRSA9IG1h
Yy9JbmZvLnBsaXN0OwogSU5TVEFMTF9QQVRIID0gJChTWVNURU1fTElCUkFSWV9ESVIpL1ByaXZh
dGVGcmFtZXdvcmtzOwogSU5TVEFMTF9QQVRIW3Nkaz1tYWNvc3gqXSA9ICQoV0VCS0lUX0xFR0FD
WV9GUkFNRVdPUktTX0RJUik7CiAKIERZTElCX0lOU1RBTExfTkFNRV9CQVNFW3Nkaz1pcGhvbmUq
XSA9ICQoU1lTVEVNX0xJQlJBUllfRElSKS9Qcml2YXRlRnJhbWV3b3JrczsKLURZTElCX0lOU1RB
TExfTkFNRV9CQVNFID0gJChOT1JNQUxfV0VCS0lUX0xFR0FDWV9GUkFNRVdPUktTX0RJUik7CitE
WUxJQl9JTlNUQUxMX05BTUVfQkFTRSA9ICQoRFlMSUJfSU5TVEFMTF9OQU1FX0JBU0VfJChXS19V
U0VfQUxURVJOQVRFX0ZSQU1FV09SS1NfRElSKSk7CitEWUxJQl9JTlNUQUxMX05BTUVfQkFTRV9O
TyA9ICQoTk9STUFMX1dFQktJVF9MRUdBQ1lfRlJBTUVXT1JLU19ESVIpOworRFlMSUJfSU5TVEFM
TF9OQU1FX0JBU0VfWUVTID0gJChEWUxJQl9JTlNUQUxMX05BTUVfQkFTRSk7CiAKIElOU1RBTExI
RFJTX0NPUFlfUEhBU0UgPSBZRVM7CiBJTlNUQUxMSERSU19TQ1JJUFRfUEhBU0UgPSBZRVM7CkBA
IC02OCw4ICs3MiwyMiBAQCBQUk9EVUNUX05BTUUgPSBXZWJLaXRMZWdhY3k7CiBQUk9EVUNUX0JV
TkRMRV9JREVOVElGSUVSID0gY29tLmFwcGxlLiQoUFJPRFVDVF9OQU1FOnJmYzEwMzRpZGVudGlm
aWVyKTsKIFVNQlJFTExBX0ZSQU1FV09SS1NfRElSID0gJChQUk9EVUNUSU9OX0ZSQU1FV09SS1Nf
RElSKS9XZWJLaXQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3JrczsKIAotT1RIRVJfTERG
TEFHU1tzZGs9aXBob25lKl0gPSAkKGluaGVyaXRlZCkgLWxvYmpjIC1sc3FsaXRlMyAtZnJhbWV3
b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsgQ29yZUdy
YXBoaWNzIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1mcmFtZXdv
cmsgR3JhcGhpY3NTZXJ2aWNlcyAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBPcGVuR0xF
UyAtZnJhbWV3b3JrIE1vYmlsZUNvcmVTZXJ2aWNlcyAtbE1vYmlsZUdlc3RhbHQ7Ci1PVEhFUl9M
REZMQUdTW3Nkaz1tYWNvc3gqXSA9ICQoaW5oZXJpdGVkKSAtZnJhbWV3b3JrIENhcmJvbiAtZnJh
bWV3b3JrIENvY29hIC1mcmFtZXdvcmsgSU9LaXQgLWZyYW1ld29yayBPcGVuR0w7CitXS19BUFBL
SVRfTERGTEFHUyA9ICQoV0tfQVBQS0lUX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CitX
S19BUFBLSVRfTERGTEFHU19tYWNvc3ggPSAtZnJhbWV3b3JrIEFwcEtpdDsKKworV0tfQ0FSQk9O
X0xERkxBR1MgPSAkKFdLX0NBUkJPTl9MREZMQUdTXyQoV0tfUExBVEZPUk1fTkFNRSkpOworV0tf
Q0FSQk9OX0xERkxBR1NfbWFjb3N4ID0gLWZyYW1ld29yayBDYXJib247CisKK1dLX0dSQVBISUNT
X1NFUlZJQ0VTX0xERkxBR1MgPSAkKFdLX0dSQVBISUNTX1NFUlZJQ0VTX0xERkxBR1NfJChXS19D
T0NPQV9UT1VDSCkpOworV0tfR1JBUEhJQ1NfU0VSVklDRVNfTERGTEFHU19jb2NvYXRvdWNoID0g
LWZyYW1ld29yayBHcmFwaGljc1NlcnZpY2VzOworCitXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19M
REZMQUdTID0gJChXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19MREZMQUdTXyQoV0tfQ09DT0FfVE9V
Q0gpKTsKK1dLX01PQklMRV9DT1JFX1NFUlZJQ0VTX0xERkxBR1NfY29jb2F0b3VjaCA9IC1mcmFt
ZXdvcmsgTW9iaWxlQ29yZVNlcnZpY2VzOworCitXS19NT0JJTEVfR0VTVEFMVF9MREZMQUdTID0g
JChXS19NT0JJTEVfR0VTVEFMVF9MREZMQUdTXyQoV0tfQ09DT0FfVE9VQ0gpKTsKK1dLX01PQklM
RV9HRVNUQUxUX0xERkxBR1NfY29jb2F0b3VjaCA9IC1sTW9iaWxlR2VzdGFsdDsKKworT1RIRVJf
TERGTEFHUyA9IC1sb2JqYyAtbHNxbGl0ZTMgLWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1ld29y
ayBDb3JlRm91bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVU
ZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBJ
T0tpdCAkKFdLX0FQUEtJVF9MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0dSQVBI
SUNTX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0NPUkVfU0VSVklDRVNfTERGTEFHUykg
JChXS19NT0JJTEVfR0VTVEFMVF9MREZMQUdTKTsKIAogU0VDVE9SREVSX0ZMQUdTID0gJChTRUNU
T1JERVJfRkxBR1NfJChDT05GSUdVUkFUSU9OKSk7CiBTRUNUT1JERVJfRkxBR1NfUHJvZHVjdGlv
bltzZGs9aXBob25lb3MqXSA9IC1XbCwtb3JkZXJfZmlsZSwkKFNES1JPT1QpL0FwcGxlSW50ZXJu
YWwvT3JkZXJGaWxlcy9XZWJLaXRMZWdhY3kub3JkZXI7CkBAIC05MCw5ICsxMDgsNiBAQCBQUk9E
VUNUSU9OX0ZSQU1FV09SS1NfRElSID0gJChQUk9EVUNUSU9OX0ZSQU1FV09SS1NfRElSX1VTRV9P
VkVSUklERV9GUkFNRVdPUktTXwogUFJPRFVDVElPTl9GUkFNRVdPUktTX0RJUl9VU0VfT1ZFUlJJ
REVfRlJBTUVXT1JLU19ESVJfTk8gPSAkKE5PUk1BTF9QUk9EVUNUSU9OX0ZSQU1FV09SS1NfRElS
KTsKIFBST0RVQ1RJT05fRlJBTUVXT1JLU19ESVJfVVNFX09WRVJSSURFX0ZSQU1FV09SS1NfRElS
X1lFUyA9ICQoV0tfT1ZFUlJJREVfRlJBTUVXT1JLU19ESVIpOwogCi1QUk9EVUNUSU9OX1JPT1Rb
c2RrPWlwaG9uZSpdID0gJChTREtST09UKTsKLVBST0RVQ1RJT05fUk9PVFtzZGs9bWFjb3N4Kl0g
PSAkKE5FWFRfUk9PVCk7Ci0KIFdFQkNPUkVfUFJJVkFURV9IRUFERVJTX0RJUiA9ICQoV0VCQ09S
RV9QUklWQVRFX0hFQURFUlNfRElSXyQoQ09ORklHVVJBVElPTikpOwogV0VCQ09SRV9QUklWQVRF
X0hFQURFUlNfRElSX1JlbGVhc2UgPSAkKFdFQkNPUkVfUFJJVkFURV9IRUFERVJTX2VuZ2luZWVy
aW5nKTsKIFdFQkNPUkVfUFJJVkFURV9IRUFERVJTX0RJUl9EZWJ1ZyA9ICQoV0VCQ09SRV9QUklW
QVRFX0hFQURFUlNfZW5naW5lZXJpbmcpOwpAQCAtMTAwLDcgKzExNSw3IEBAIFdFQkNPUkVfUFJJ
VkFURV9IRUFERVJTX0RJUl9Qcm9kdWN0aW9uW3Nkaz1pcGhvbmUqXSA9ICQoUFJPRFVDVElPTl9G
UkFNRVdPUktTX0RJCiBXRUJDT1JFX1BSSVZBVEVfSEVBREVSU19ESVJfUHJvZHVjdGlvbiA9ICQo
U0RLUk9PVCkkKFdFQkNPUkVfUFJJVkFURV9IRUFERVJTX0RJUl9Qcm9kdWN0aW9uXyQoUExBVEZP
Uk1fTkFNRSlfVVNFX09WRVJSSURFX0ZSQU1FV09SS1NfRElSXyQoV0tfVVNFX09WRVJSSURFX0ZS
QU1FV09SS1NfRElSKSk7CiBXRUJDT1JFX1BSSVZBVEVfSEVBREVSU19ESVJfUHJvZHVjdGlvbl9t
YWNvc3hfVVNFX09WRVJSSURFX0ZSQU1FV09SS1NfRElSX05PID0gJChVTUJSRUxMQV9GUkFNRVdP
UktTX0RJUikvV2ViQ29yZS5mcmFtZXdvcmsvUHJpdmF0ZUhlYWRlcnM7CiBXRUJDT1JFX1BSSVZB
VEVfSEVBREVSU19ESVJfUHJvZHVjdGlvbl9tYWNvc3hfVVNFX09WRVJSSURFX0ZSQU1FV09SS1Nf
RElSX1lFUyA9ICQoUFJPRFVDVElPTl9GUkFNRVdPUktTX0RJUikvV2ViQ29yZS5mcmFtZXdvcmsv
UHJpdmF0ZUhlYWRlcnM7Ci1XRUJDT1JFX1BSSVZBVEVfSEVBREVSU19lbmdpbmVlcmluZyA9ICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9XZWJDb3JlLmZyYW1ld29yay9Qcml2YXRlSGVhZGVyczsKK1dF
QkNPUkVfUFJJVkFURV9IRUFERVJTX2VuZ2luZWVyaW5nID0gJChCVUlMVF9QUk9EVUNUU19ESVIp
JChXS19BTFRFUk5BVEVfV0VCS0lUX1NES19QQVRIKS9XZWJDb3JlLmZyYW1ld29yay9Qcml2YXRl
SGVhZGVyczsKIAogV0tfRU1QVFlfID0gWUVTOwogV0tfTk9UXyA9IFlFUzsKQEAgLTEwOSw3ICsx
MjQsMTAgQEAgV0tfTk9UX1lFUyA9IE5POwogV0tfVVNFX09WRVJSSURFX0ZSQU1FV09SS1NfRElS
ID0gJChXS19OT1RfJChXS19FTVBUWV8kKFdLX09WRVJSSURFX0ZSQU1FV09SS1NfRElSKSkpOwog
CiBXS19PVkVSUklERV9GUkFNRVdPUktTX0RJUiA9ICQoV0tfT1ZFUlJJREVfRlJBTUVXT1JLU19E
SVJfVVNFX1NUQUdJTkdfSU5TVEFMTF9QQVRIXyQoVVNFX1NUQUdJTkdfSU5TVEFMTF9QQVRIKSk7
CitXS19PVkVSUklERV9GUkFNRVdPUktTX0RJUl9VU0VfU1RBR0lOR19JTlNUQUxMX1BBVEhfID0g
JChXS19PVkVSUklERV9GUkFNRVdPUktTX0RJUl9VU0VfU1RBR0lOR19JTlNUQUxMX1BBVEhfTk8p
OworV0tfT1ZFUlJJREVfRlJBTUVXT1JLU19ESVJfVVNFX1NUQUdJTkdfSU5TVEFMTF9QQVRIX05P
ID0gJChXS19PVkVSUklERV9GUkFNRVdPUktTX0RJUl9VU0VfQUxURVJOQVRFX0ZSQU1FV09SS1Nf
RElSXyQoV0tfVVNFX0FMVEVSTkFURV9GUkFNRVdPUktTX0RJUikpOwogV0tfT1ZFUlJJREVfRlJB
TUVXT1JLU19ESVJfVVNFX1NUQUdJTkdfSU5TVEFMTF9QQVRIX1lFUyA9ICQoU1lTVEVNX0xJQlJB
UllfRElSKS9TdGFnZWRGcmFtZXdvcmtzL1NhZmFyaTsKK1dLX09WRVJSSURFX0ZSQU1FV09SS1Nf
RElSX1VTRV9BTFRFUk5BVEVfRlJBTUVXT1JLU19ESVJfWUVTID0gJChXS19BTFRFUk5BVEVfRlJB
TUVXT1JLU19ESVIpL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3M7CiAKIFdLX1FVT1RFRF9PVkVS
UklERV9GUkFNRVdPUktTX0RJUiA9ICQoV0tfUVVPVEVEX09WRVJSSURFX0ZSQU1FV09SS1NfRElS
XyQoV0tfVVNFX09WRVJSSURFX0ZSQU1FV09SS1NfRElSKSk7CiBXS19RVU9URURfT1ZFUlJJREVf
RlJBTUVXT1JLU19ESVJfWUVTID0gIiQoV0tfT1ZFUlJJREVfRlJBTUVXT1JLU19ESVIpIjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pZ3JhdGVIZWFkZXJzLm1ha2UgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaWdyYXRlSGVhZGVycy5tYWtlCmluZGV4IDU5MzEzMjUz
YWVlYTBlNjk5ZjdmMTlmMGY0Y2Y4YzMwYWRkODNjNGYuLjc0M2JkZmY0NTc4N2I5NDk3NzFhMWQy
NWY3ZTIyZjUxYmU5YWM1ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01p
Z3JhdGVIZWFkZXJzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlncmF0ZUhl
YWRlcnMubWFrZQpAQCAtMzQsNyArMzQsNyBAQCBIRUFERVJTID0gXAogICAgICQoUFJJVkFURV9I
RUFERVJTX0RJUikvV2ViU2NyaXB0T2JqZWN0LmggXAogIwogCi1pZmVxICgkKFBMQVRGT1JNX05B
TUUpLCBtYWNvc3gpCitpZmVxICgkKFdLX1BMQVRGT1JNX05BTUUpLCBtYWNvc3gpCiBIRUFERVJT
ICs9IFwKICAgICAkKFBSSVZBVEVfSEVBREVSU19ESVIpL25wYXBpLmggXAogICAgICQoUFJJVkFU
RV9IRUFERVJTX0RJUikvbnBmdW5jdGlvbnMuaCBcCkBAIC00Myw3ICs0Myw3IEBAIEhFQURFUlMg
Kz0gXAogIwogZW5kaWYKIAotaWZuZXEgKCQoUExBVEZPUk1fTkFNRSksIG1hY29zeCkKK2lmbmVx
ICgkKFdLX1BMQVRGT1JNX05BTUUpLCBtYWNvc3gpCiBIRUFERVJTICs9IFwKICAgICAkKFBSSVZB
VEVfSEVBREVSU19ESVIpL0Fic3RyYWN0UGFzdGVib2FyZC5oIFwKICAgICAkKFBSSVZBVEVfSEVB
REVSU19ESVIpL0tleUV2ZW50Q29kZXNJT1MuaCBcCkBAIC03Niw3ICs3Niw3IEBAIFdFQkNPUkVf
SEVBREVSX01JR1JBVEVfQ01EID0gc2VkIC1FICQoV0VCQ09SRV9IRUFERVJfUkVQTEFDRV9SVUxF
UykgJDwgPiAkQDsgdG91CiAkKFBSSVZBVEVfSEVBREVSU19ESVIpLyUgOiAlIE1pZ3JhdGVIZWFk
ZXJzLm1ha2UKIAkkKFdFQkNPUkVfSEVBREVSX01JR1JBVEVfQ01EKQogCi1pZm5lcSAoJChQTEFU
Rk9STV9OQU1FKSwgbWFjb3N4KQoraWZuZXEgKCQoV0tfUExBVEZPUk1fTkFNRSksIG1hY29zeCkK
IFJFRVhQT1JUX0ZJTEUgPSAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0TGVnYWN5L1JlZXhwb3J0ZWRXZWJDb3JlU3ltYm9sc18kKENVUlJFTlRfQVJDSCkuZXhwCiAK
IGFsbCA6ICQoUkVFWFBPUlRfRklMRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1N0b3JhZ2UvV2ViRGF0YWJhc2VNYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvU3RvcmFnZS9XZWJEYXRhYmFzZU1hbmFnZXIubW0KaW5kZXggNzZjMjhmNGRkYmY3NDllZjBk
YWIyMTkwNDhjZWQyMTJhOWQwMGJkZS4uMDA1MWY1ODJkZDU0NjJmZGZlNWZmODM3ZTBjMTlhMDY0
MDEwN2QzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvU3RvcmFnZS9XZWJE
YXRhYmFzZU1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvU3RvcmFnZS9X
ZWJEYXRhYmFzZU1hbmFnZXIubW0KQEAgLTEwNiw3ICsxMDYsNyBAQCAtIChOU0FycmF5ICopZGF0
YWJhc2VzV2l0aE9yaWdpbjooV2ViU2VjdXJpdHlPcmlnaW4gKilvcmlnaW4KIHsKICAgICBpZiAo
IW9yaWdpbikKICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICBWZWN0b3I8U3RyaW5nPiBuYW1lVmVj
dG9yID0gRGF0YWJhc2VUcmFja2VyOjpzaW5nbGV0b24oKS5kYXRhYmFzZU5hbWVzKFNlY3VyaXR5
T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCpbb3JpZ2luIF9jb3JlXSkpOworICAgIFZl
Y3RvcjxTdHJpbmc+IG5hbWVWZWN0b3IgPSBEYXRhYmFzZVRyYWNrZXI6OnNpbmdsZXRvbigpLmRh
dGFiYXNlTmFtZXMoW29yaWdpbiBfY29yZV0tPmRhdGEoKSk7CiAgICAgTlNNdXRhYmxlQXJyYXkg
Km5hbWVzID0gW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTpuYW1lVmVj
dG9yLnNpemUoKV07CiAgICAgZm9yIChhdXRvJiBuYW1lIDogbmFtZVZlY3RvcikKICAgICAgICAg
W25hbWVzIGFkZE9iamVjdDooTlNTdHJpbmcgKiluYW1lXTsKQEAgLTE0MiwxMiArMTQyLDEyIEBA
IC0gKHZvaWQpZGVsZXRlQWxsRGF0YWJhc2VzCiAKIC0gKEJPT0wpZGVsZXRlT3JpZ2luOihXZWJT
ZWN1cml0eU9yaWdpbiAqKW9yaWdpbgogewotICAgIHJldHVybiBvcmlnaW4gJiYgRGF0YWJhc2VU
cmFja2VyOjpzaW5nbGV0b24oKS5kZWxldGVPcmlnaW4oU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9t
U2VjdXJpdHlPcmlnaW4oKltvcmlnaW4gX2NvcmVdKSk7CisgICAgcmV0dXJuIG9yaWdpbiAmJiBE
YXRhYmFzZVRyYWNrZXI6OnNpbmdsZXRvbigpLmRlbGV0ZU9yaWdpbihbb3JpZ2luIF9jb3JlXS0+
ZGF0YSgpKTsKIH0KIAogLSAoQk9PTClkZWxldGVEYXRhYmFzZTooTlNTdHJpbmcgKilkYXRhYmFz
ZUlkZW50aWZpZXIgd2l0aE9yaWdpbjooV2ViU2VjdXJpdHlPcmlnaW4gKilvcmlnaW4KIHsKLSAg
ICByZXR1cm4gb3JpZ2luICYmIERhdGFiYXNlVHJhY2tlcjo6c2luZ2xldG9uKCkuZGVsZXRlRGF0
YWJhc2UoU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oKltvcmlnaW4gX2Nv
cmVdKSwgZGF0YWJhc2VJZGVudGlmaWVyKTsKKyAgICByZXR1cm4gb3JpZ2luICYmIERhdGFiYXNl
VHJhY2tlcjo6c2luZ2xldG9uKCkuZGVsZXRlRGF0YWJhc2UoW29yaWdpbiBfY29yZV0tPmRhdGEo
KSwgZGF0YWJhc2VJZGVudGlmaWVyKTsKIH0KIAogLy8gRm9yIER1bXBSZW5kZXJUcmVlIHN1cHBv
cnQgb25seQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvU3RvcmFnZS9XZWJE
YXRhYmFzZVF1b3RhTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1N0b3JhZ2Uv
V2ViRGF0YWJhc2VRdW90YU1hbmFnZXIubW0KaW5kZXggOWI4NDE4NjAyZTU5YTFjYTlmMmNjOWU0
ODhiNjhkZTY2NmNiMjIyMS4uMTA4YzUyODdmOTA3ZTgxYTYxYTAxYWE3MjQyM2M5NjA3OTUwYmM5
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvU3RvcmFnZS9XZWJEYXRhYmFz
ZVF1b3RhTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9TdG9yYWdlL1dl
YkRhdGFiYXNlUXVvdGFNYW5hZ2VyLm1tCkBAIC01MywxMiArNTMsMTIgQEAgLSAoV2ViU2VjdXJp
dHlPcmlnaW4gKilvcmlnaW4KIAogLSAodW5zaWduZWQgbG9uZyBsb25nKXVzYWdlCiB7Ci0gICAg
cmV0dXJuIERhdGFiYXNlVHJhY2tlcjo6c2luZ2xldG9uKCkudXNhZ2UoU2VjdXJpdHlPcmlnaW5E
YXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oKltfb3JpZ2luIF9jb3JlXSkpOworICAgIHJldHVybiBE
YXRhYmFzZVRyYWNrZXI6OnNpbmdsZXRvbigpLnVzYWdlKFtfb3JpZ2luIF9jb3JlXS0+ZGF0YSgp
KTsKIH0KIAogLSAodW5zaWduZWQgbG9uZyBsb25nKXF1b3RhCiB7Ci0gICAgcmV0dXJuIERhdGFi
YXNlVHJhY2tlcjo6c2luZ2xldG9uKCkucXVvdGEoU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2Vj
dXJpdHlPcmlnaW4oKltfb3JpZ2luIF9jb3JlXSkpOworICAgIHJldHVybiBEYXRhYmFzZVRyYWNr
ZXI6OnNpbmdsZXRvbigpLnF1b3RhKFtfb3JpZ2luIF9jb3JlXS0+ZGF0YSgpKTsKIH0KIAogLy8g
SWYgdGhlIHF1b3RhIGlzIHNldCB0byBhIHZhbHVlIGxvd2VyIHRoYW4gdGhlIGN1cnJlbnQgdXNh
Z2UsIHRoYXQgcXVvdGEgd2lsbApAQCAtNjYsNyArNjYsNyBAQCAtICh1bnNpZ25lZCBsb25nIGxv
bmcpcXVvdGEKIC8vIHByZXZlbnQgbmV3IGRhdGEgZnJvbSBiZWluZyBhZGRlZCB0byBkYXRhYmFz
ZXMgaW4gdGhhdCBvcmlnaW4uCiAtICh2b2lkKXNldFF1b3RhOih1bnNpZ25lZCBsb25nIGxvbmcp
cXVvdGEKIHsKLSAgICBEYXRhYmFzZVRyYWNrZXI6OnNpbmdsZXRvbigpLnNldFF1b3RhKFNlY3Vy
aXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCpbX29yaWdpbiBfY29yZV0pLCBxdW90
YSk7CisgICAgRGF0YWJhc2VUcmFja2VyOjpzaW5nbGV0b24oKS5zZXRRdW90YShbX29yaWdpbiBf
Y29yZV0tPmRhdGEoKSwgcXVvdGEpOwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9TdG9yYWdlL1dlYlN0b3JhZ2VNYW5hZ2VyLm1tIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvU3RvcmFnZS9XZWJTdG9yYWdlTWFuYWdlci5tbQppbmRleCA5YTY4OWNhNTU5
NDczZWQzYjAxNTRhYTk1Y2VjNmU1MWZhOWE3ZDcwLi42ZTU3ZWNiMzQ4OWI1YTJkNDc0ZmE4NWVj
YWVlN2Q2NzJiNWMzOGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9TdG9y
YWdlL1dlYlN0b3JhZ2VNYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1N0
b3JhZ2UvV2ViU3RvcmFnZU1hbmFnZXIubW0KQEAgLTg0LDcgKzg0LDcgQEAgLSAodm9pZClkZWxl
dGVBbGxPcmlnaW5zCiAKIC0gKHZvaWQpZGVsZXRlT3JpZ2luOihXZWJTZWN1cml0eU9yaWdpbiAq
KW9yaWdpbgogewotICAgIFdlYktpdDo6U3RvcmFnZVRyYWNrZXI6OnRyYWNrZXIoKS5kZWxldGVP
cmlnaW4oU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oKltvcmlnaW4gX2Nv
cmVdKSk7CisgICAgV2ViS2l0OjpTdG9yYWdlVHJhY2tlcjo6dHJhY2tlcigpLmRlbGV0ZU9yaWdp
bihbb3JpZ2luIF9jb3JlXS0+ZGF0YSgpKTsKIH0KIAogLSAodW5zaWduZWQgbG9uZyBsb25nKWRp
c2tVc2FnZUZvck9yaWdpbjooV2ViU2VjdXJpdHlPcmlnaW4gKilvcmlnaW4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oCmluZGV4IDM0YzQ2ZmYzMWE2NTQ2OWE0YmE0NzlhMzdhNzBmYzViOTI5NThi
YWIuLmMzYjQ5OWE4YzU4YTVkNDM1ZWNlNzJjZjE0OTBmZGJlNWJiYTk4OWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaApAQCAtMTAxLDcgKzEwMSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICAg
ICB2b2lkIGRpc3BhdGNoRGlkRmFpbExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1
bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBm
aW5hbDsKIAotICAgIE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHdpbGxDYWNoZVJlc3BvbnNlKFdlYkNv
cmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBOU0NhY2hlZFVS
TFJlc3BvbnNlKikgY29uc3QgZmluYWw7CisgICAgdm9pZCB3aWxsQ2FjaGVSZXNwb25zZShXZWJD
b3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgTlNDYWNoZWRV
UkxSZXNwb25zZSosIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTlNDYWNoZWRVUkxSZXNwb25zZSAq
KT4mJikgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIGRpc3BhdGNoRGlkRGlzcGF0Y2hPbmxvYWRF
dmVudHMoKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0
Rm9yUHJvdmlzaW9uYWxMb2FkKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmlu
ZGV4IDdmODU2NGFmMjk3MDNiYjZjNWY3NDZhMzkxYWQ0MzQ5YmZiMWE5NjUuLmIwY2E1MTU0YmFi
MGFkZjIzZDVmNmEwOTAwMWVjZGY5NDlmMzRhZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tCkBAIC00ODcsNyArNDg3LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEaWRSZWNlaXZlUmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW4KICAgICB9CiB9
CiAKLU5TQ2FjaGVkVVJMUmVzcG9uc2UqIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp3aWxsQ2FjaGVS
ZXNwb25zZShEb2N1bWVudExvYWRlciogbG9hZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IE5TQ2FjaGVkVVJMUmVzcG9uc2UqIHJlc3BvbnNlKSBjb25zdAordm9pZCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6d2lsbENhY2hlUmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBOU0NhY2hlZFVSTFJlc3BvbnNlKiByZXNwb25zZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChOU0NhY2hlZFVSTFJlc3BvbnNlICopPiYmIGNvbXBsZXRpb25IYW5k
bGVyKSBjb25zdAogewogICAgIFdlYlZpZXcgKndlYlZpZXcgPSBnZXRXZWJWaWV3KG1fd2ViRnJh
bWUuZ2V0KCkpOwogICAgIFdlYlJlc291cmNlRGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hlKiBp
bXBsZW1lbnRhdGlvbnMgPSBXZWJWaWV3R2V0UmVzb3VyY2VMb2FkRGVsZWdhdGVJbXBsZW1lbnRh
dGlvbnMod2ViVmlldyk7CkBAIC00OTUsMTYgKzQ5NSwxNiBAQCBOU0NhY2hlZFVSTFJlc3BvbnNl
KiBXZWJGcmFtZUxvYWRlckNsaWVudDo6d2lsbENhY2hlUmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIq
IGxvYQogI2lmIFBMQVRGT1JNKElPUykKICAgICBpZiAoaW1wbGVtZW50YXRpb25zLT53ZWJUaHJl
YWRXaWxsQ2FjaGVSZXNwb25zZUZ1bmMpIHsKICAgICAgICAgaWYgKGlkIHJlc291cmNlID0gW3dl
YlZpZXcgX29iamVjdEZvcklkZW50aWZpZXI6aWRlbnRpZmllcl0pCi0gICAgICAgICAgICByZXR1
cm4gQ2FsbFJlc291cmNlTG9hZERlbGVnYXRlSW5XZWJUaHJlYWQoaW1wbGVtZW50YXRpb25zLT53
ZWJUaHJlYWRXaWxsQ2FjaGVSZXNwb25zZUZ1bmMsIHdlYlZpZXcsIEBzZWxlY3Rvcih3ZWJUaHJl
YWRXZWJWaWV3OnJlc291cmNlOndpbGxDYWNoZVJlc3BvbnNlOmZyb21EYXRhU291cmNlOiksIHJl
c291cmNlLCByZXNwb25zZSwgZGF0YVNvdXJjZShsb2FkZXIpKTsKKyAgICAgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihDYWxsUmVzb3VyY2VMb2FkRGVsZWdhdGVJbldlYlRocmVhZChp
bXBsZW1lbnRhdGlvbnMtPndlYlRocmVhZFdpbGxDYWNoZVJlc3BvbnNlRnVuYywgd2ViVmlldywg
QHNlbGVjdG9yKHdlYlRocmVhZFdlYlZpZXc6cmVzb3VyY2U6d2lsbENhY2hlUmVzcG9uc2U6ZnJv
bURhdGFTb3VyY2U6KSwgcmVzb3VyY2UsIHJlc3BvbnNlLCBkYXRhU291cmNlKGxvYWRlcikpKTsK
ICAgICAgICAgCiAgICAgfSBlbHNlCiAjZW5kaWYKICAgICBpZiAoaW1wbGVtZW50YXRpb25zLT53
aWxsQ2FjaGVSZXNwb25zZUZ1bmMpIHsKICAgICAgICAgaWYgKGlkIHJlc291cmNlID0gW3dlYlZp
ZXcgX29iamVjdEZvcklkZW50aWZpZXI6aWRlbnRpZmllcl0pCi0gICAgICAgICAgICByZXR1cm4g
Q2FsbFJlc291cmNlTG9hZERlbGVnYXRlKGltcGxlbWVudGF0aW9ucy0+d2lsbENhY2hlUmVzcG9u
c2VGdW5jLCB3ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpyZXNvdXJjZTp3aWxsQ2FjaGVSZXNw
b25zZTpmcm9tRGF0YVNvdXJjZTopLCByZXNvdXJjZSwgcmVzcG9uc2UsIGRhdGFTb3VyY2UobG9h
ZGVyKSk7CisgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoQ2FsbFJlc291cmNl
TG9hZERlbGVnYXRlKGltcGxlbWVudGF0aW9ucy0+d2lsbENhY2hlUmVzcG9uc2VGdW5jLCB3ZWJW
aWV3LCBAc2VsZWN0b3Iod2ViVmlldzpyZXNvdXJjZTp3aWxsQ2FjaGVSZXNwb25zZTpmcm9tRGF0
YVNvdXJjZTopLCByZXNvdXJjZSwgcmVzcG9uc2UsIGRhdGFTb3VyY2UobG9hZGVyKSkpOwogICAg
IH0KIAotICAgIHJldHVybiByZXNwb25zZTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihyZXNwb25z
ZSk7CiB9CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkUmVjZWl2ZUNv
bnRlbnRMZW5ndGgoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBpbnQgZGF0YUxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYlNlY3VyaXR5T3JpZ2luLm1tIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU2VjdXJpdHlPcmlnaW4ubW0KaW5kZXggNGY0MjQ4Mzdk
ZWE4YTlhMmM0ZDU3Y2FmNmM4M2RhYWY4NGU3MmE2MS4uNGU0YzEzZGZiNzNhYjY0YWVlOTdkN2Ez
NzM5NTEzYWU0OTI0MjlmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViU2VjdXJpdHlPcmlnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU2VjdXJpdHlPcmlnaW4ubW0KQEAgLTcxLDcgKzcxLDcg
QEAgLSAoTlNTdHJpbmcgKilob3N0CiAKIC0gKE5TU3RyaW5nICopZGF0YWJhc2VJZGVudGlmaWVy
CiB7Ci0gICAgcmV0dXJuIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCpy
ZWludGVycHJldF9jYXN0PFNlY3VyaXR5T3JpZ2luKj4oX3ByaXZhdGUpKS5kYXRhYmFzZUlkZW50
aWZpZXIoKTsKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxTZWN1cml0eU9yaWdpbio+KF9w
cml2YXRlKS0+ZGF0YSgpLmRhdGFiYXNlSWRlbnRpZmllcigpOwogfQogCiAjaWYgUExBVEZPUk0o
SU9TKQpAQCAtMTY5LDE3ICsxNjksMTcgQEAgQGltcGxlbWVudGF0aW9uIFdlYlNlY3VyaXR5T3Jp
Z2luIChEZXByZWNhdGVkKQogCiAtICh1bnNpZ25lZCBsb25nIGxvbmcpdXNhZ2UKIHsKLSAgICBy
ZXR1cm4gRGF0YWJhc2VUcmFja2VyOjpzaW5nbGV0b24oKS51c2FnZShTZWN1cml0eU9yaWdpbkRh
dGE6OmZyb21TZWN1cml0eU9yaWdpbigqcmVpbnRlcnByZXRfY2FzdDxTZWN1cml0eU9yaWdpbio+
KF9wcml2YXRlKSkpOworICAgIHJldHVybiBEYXRhYmFzZVRyYWNrZXI6OnNpbmdsZXRvbigpLnVz
YWdlKHJlaW50ZXJwcmV0X2Nhc3Q8U2VjdXJpdHlPcmlnaW4qPihfcHJpdmF0ZSktPmRhdGEoKSk7
CiB9CiAKIC0gKHVuc2lnbmVkIGxvbmcgbG9uZylxdW90YQogewotICAgIHJldHVybiBEYXRhYmFz
ZVRyYWNrZXI6OnNpbmdsZXRvbigpLnF1b3RhKFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3Vy
aXR5T3JpZ2luKCpyZWludGVycHJldF9jYXN0PFNlY3VyaXR5T3JpZ2luKj4oX3ByaXZhdGUpKSk7
CisgICAgcmV0dXJuIERhdGFiYXNlVHJhY2tlcjo6c2luZ2xldG9uKCkucXVvdGEocmVpbnRlcnBy
ZXRfY2FzdDxTZWN1cml0eU9yaWdpbio+KF9wcml2YXRlKS0+ZGF0YSgpKTsKIH0KIAogLSAodm9p
ZClzZXRRdW90YToodW5zaWduZWQgbG9uZyBsb25nKXF1b3RhCiB7Ci0gICAgRGF0YWJhc2VUcmFj
a2VyOjpzaW5nbGV0b24oKS5zZXRRdW90YShTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0
eU9yaWdpbigqcmVpbnRlcnByZXRfY2FzdDxTZWN1cml0eU9yaWdpbio+KF9wcml2YXRlKSksIHF1
b3RhKTsKKyAgICBEYXRhYmFzZVRyYWNrZXI6OnNpbmdsZXRvbigpLnNldFF1b3RhKHJlaW50ZXJw
cmV0X2Nhc3Q8U2VjdXJpdHlPcmlnaW4qPihfcHJpdmF0ZSktPmRhdGEoKSwgcXVvdGEpOwogfQog
CiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlcy5tbQppbmRleCBjMzBiNmYwNTEzYThmOTI5MTkzNjFkMTg0NDFiNTVkOWQ3Yjg2YjU1Li4z
NDRiYWQ1NmQ4M2NhYjMxYTU3NmI5N2QzMWI4NmIzZTMzNDY4ZmQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTUzLDggKzUz
LDExIEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi0jaWYgUExBVEZPUk0oSU9TKQor
I2lmIEhBVkUoQVVESU9fVE9PTEJPWF9BVURJT19TRVNTSU9OKQogI2ltcG9ydCA8QXVkaW9Ub29s
Ym94L0F1ZGlvU2Vzc2lvbi5oPgorI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1MpCiAjaW1wb3J0
IDxXZWJDb3JlL0RldmljZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZVRocmVhZE1lc3NhZ2UuaD4KQEAgLTIzMjIsNiArMjMy
NSw3IEBAIC0gKHVuc2lnbmVkKWF1ZGlvU2Vzc2lvbkNhdGVnb3J5T3ZlcnJpZGUKIAogLSAodm9p
ZClzZXRBdWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRlOih1bnNpZ25lZClvdmVycmlkZQogewor
I2lmIEhBVkUoQVVESU9fVE9PTEJPWF9BVURJT19TRVNTSU9OKQogICAgIGlmIChvdmVycmlkZSA+
IEF1ZGlvU2Vzc2lvbjo6QXVkaW9Qcm9jZXNzaW5nKSB7CiAgICAgICAgIC8vIENsaWVudHMgYXJl
IHBhc3NpbmcgdXMgT1NUeXBlcyB2YWx1ZXMgZnJvbSBBdWRpb1Rvb2xib3gvQXVkaW9TZXNzaW9u
LmgsCiAgICAgICAgIC8vIHdoaWNoIG5lZWQgdG8gYmUgdHJhbnNsYXRlZCBpbnRvIEF1ZGlvU2Vz
c2lvbjo6Q2F0ZWdvcnlUeXBlOgpAQCAtMjM0OSw2ICsyMzUzLDcgQEAgLSAodm9pZClzZXRBdWRp
b1Nlc3Npb25DYXRlZ29yeU92ZXJyaWRlOih1bnNpZ25lZClvdmVycmlkZQogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICB9CisjZW5kaWYKIAogICAgIFtzZWxmIF9zZXRVbnNpZ25l
ZEludFZhbHVlOm92ZXJyaWRlIGZvcktleTpXZWJLaXRBdWRpb1Nlc3Npb25DYXRlZ29yeU92ZXJy
aWRlXTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRl
eCBhMjA1YzJhMzRhMGMwZGM2YzdkYWYwZTE2N2YwNzFhMGE5YjBlYTEwLi5iYTljNzljMGEwM2Q4
NmE4MWIxNzkxOWRkZmFmYmU1YTA3N2I2ZTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwNS0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwNS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAwNiBEYXZpZCBTbWl0aCAoY2F0ZmlzaC5tYW5AZ21haWwuY29tKQogICogQ29weXJp
Z2h0IChDKSAyMDEwIElnYWxpYSBTLkwKICAqCkBAIC0xNzQsNiArMTc0LDcgQEAKICNpbXBvcnQg
PFdlYkNvcmUvTWFpbkZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01lbW9yeUNhY2hlLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL01lbW9yeVJlbGVhc2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTmF2aWdh
dGlvblBvbGljeUNoZWNrLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lv
bi5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob2RlTGlzdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob3Rp
ZmljYXRpb24uaD4KQEAgLTIyNyw2ICsyMjgsNyBAQAogI2ltcG9ydCA8d3RmL0hhc2hUcmFpdHMu
aD4KICNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW1wb3J0IDx3dGYvT2JqY1J1bnRpbWVF
eHRyYXMuaD4KKyNpbXBvcnQgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CiAjaW1wb3J0IDx3dGYv
UkFNU2l6ZS5oPgogI2ltcG9ydCA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgogI2ltcG9y
dCA8d3RmL1JlZlB0ci5oPgpAQCAtMTgwNSw3ICsxODA3LDkgQEAgLSAodm9pZCl1cGRhdGVMYXlv
dXRJZ25vcmVQZW5kaW5nU3R5bGVTaGVldHMKIH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKERSQUdf
U1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKElPUykKKworI2lmIEVOQUJM
RShEUkFHX1NVUFBPUlQpCiAKIC0gKEJPT0wpX3JlcXVlc3RTdGFydERhdGFJbnRlcmFjdGlvbjoo
Q0dQb2ludCljbGllbnRQb3NpdGlvbiBnbG9iYWxQb3NpdGlvbjooQ0dQb2ludClnbG9iYWxQb3Np
dGlvbgogewpAQCAtMTkzNyw3ICsxOTQxLDc3IEBAIC0gKHZvaWQpX2RpZENvbmNsdWRlRWRpdERh
dGFJbnRlcmFjdGlvbgogICAgIH0KIH0KIAotI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQp
ICYmIFBMQVRGT1JNKElPUykKKyNlbGlmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDExMDAwMAorCistIChCT09MKV9yZXF1ZXN0U3RhcnREYXRhSW50ZXJhY3Rpb246KENHUG9p
bnQpY2xpZW50UG9zaXRpb24gZ2xvYmFsUG9zaXRpb246KENHUG9pbnQpZ2xvYmFsUG9zaXRpb24K
K3sKKyAgICByZXR1cm4gTk87Cit9CisKKy0gKFdlYlVJVGV4dEluZGljYXRvckRhdGEgKilfZ2V0
RGF0YUludGVyYWN0aW9uRGF0YQoreworICAgIHJldHVybiBuaWw7Cit9CisKKy0gKFdlYlVJVGV4
dEluZGljYXRvckRhdGEgKilfZGF0YU9wZXJhdGlvblRleHRJbmRpY2F0b3IKK3sKKyAgICByZXR1
cm4gbmlsOworfQorCistIChOU1VJbnRlZ2VyKV9kcmFnU291cmNlQWN0aW9uCit7CisgICAgcmV0
dXJuIDA7Cit9CisKKy0gKE5TU3RyaW5nICopX2RyYWdnZWRMaW5rVGl0bGUKK3sKKyAgICByZXR1
cm4gbmlsOworfQorCistIChOU1VSTCAqKV9kcmFnZ2VkTGlua1VSTAoreworICAgIHJldHVybiBu
aWw7Cit9CisKKy0gKENHUmVjdClfZHJhZ2dlZEVsZW1lbnRCb3VuZHMKK3sKKyAgICByZXR1cm4g
Q0dSZWN0TnVsbDsKK30KKworLSAodWludDY0X3QpX2VudGVyZWREYXRhSW50ZXJhY3Rpb246KGlk
IDxVSURyb3BTZXNzaW9uPilzZXNzaW9uIGNsaWVudDooQ0dQb2ludCljbGllbnRQb3NpdGlvbiBn
bG9iYWw6KENHUG9pbnQpZ2xvYmFsUG9zaXRpb24gb3BlcmF0aW9uOih1aW50NjRfdClvcGVyYXRp
b24KK3sKKyAgICByZXR1cm4gMDsKK30KKworLSAodWludDY0X3QpX3VwZGF0ZWREYXRhSW50ZXJh
Y3Rpb246KGlkIDxVSURyb3BTZXNzaW9uPilzZXNzaW9uIGNsaWVudDooQ0dQb2ludCljbGllbnRQ
b3NpdGlvbiBnbG9iYWw6KENHUG9pbnQpZ2xvYmFsUG9zaXRpb24gb3BlcmF0aW9uOih1aW50NjRf
dClvcGVyYXRpb24KK3sKKyAgICByZXR1cm4gMDsKK30KKworLSAodm9pZClfZXhpdGVkRGF0YUlu
dGVyYWN0aW9uOihpZCA8VUlEcm9wU2Vzc2lvbj4pc2Vzc2lvbiBjbGllbnQ6KENHUG9pbnQpY2xp
ZW50UG9zaXRpb24gZ2xvYmFsOihDR1BvaW50KWdsb2JhbFBvc2l0aW9uIG9wZXJhdGlvbjoodWlu
dDY0X3Qpb3BlcmF0aW9uCit7Cit9CisKKy0gKHZvaWQpX3BlcmZvcm1EYXRhSW50ZXJhY3Rpb246
KGlkIDxVSURyb3BTZXNzaW9uPilzZXNzaW9uIGNsaWVudDooQ0dQb2ludCljbGllbnRQb3NpdGlv
biBnbG9iYWw6KENHUG9pbnQpZ2xvYmFsUG9zaXRpb24gb3BlcmF0aW9uOih1aW50NjRfdClvcGVy
YXRpb24KK3sKK30KKworLSAoQk9PTClfdHJ5VG9QZXJmb3JtRGF0YUludGVyYWN0aW9uOihpZCA8
VUlEcm9wU2Vzc2lvbj4pc2Vzc2lvbiBjbGllbnQ6KENHUG9pbnQpY2xpZW50UG9zaXRpb24gZ2xv
YmFsOihDR1BvaW50KWdsb2JhbFBvc2l0aW9uIG9wZXJhdGlvbjoodWludDY0X3Qpb3BlcmF0aW9u
Cit7CisgICAgcmV0dXJuIE5POworfQorCistICh2b2lkKV9lbmRlZERhdGFJbnRlcmFjdGlvbjoo
Q0dQb2ludCljbGllbnRQb3NpdGlvbiBnbG9iYWw6KENHUG9pbnQpZ2xvYmFsUG9zaXRpb24KK3sK
K30KKworLSAoQ0dSZWN0KV9kYXRhSW50ZXJhY3Rpb25DYXJldFJlY3QKK3sKKyAgICByZXR1cm4g
Q0dSZWN0TnVsbDsKK30KKworI2VuZGlmCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogCiBzdGF0
aWMgTlNNdXRhYmxlU2V0ICprbm93blBsdWdpbk1JTUVUeXBlcygpCiB7CkBAIC0yNTY2LDcgKzI2
NDAsNyBAQCAtICh2b2lkKV9sb2FkQmFja0ZvcndhcmRMaXN0RnJvbU90aGVyVmlldzooV2ViVmll
dyAqKW90aGVyVmlldwogICAgIH0KIAogICAgIEFTU0VSVChuZXdJdGVtVG9Hb1RvKTsKLSAgICBf
cHJpdmF0ZS0+cGFnZS0+Z29Ub0l0ZW0oKm5ld0l0ZW1Ub0dvVG8sIEZyYW1lTG9hZFR5cGU6Oklu
ZGV4ZWRCYWNrRm9yd2FyZCk7CisgICAgX3ByaXZhdGUtPnBhZ2UtPmdvVG9JdGVtKCpuZXdJdGVt
VG9Hb1RvLCBGcmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQsIE5hdmlnYXRpb25Qb2xp
Y3lDaGVjazo6UmVxdWlyZSk7CiB9CiAKIC0gKHZvaWQpX3NldEZvcm1EZWxlZ2F0ZTogKGlkPFdl
YkZvcm1EZWxlZ2F0ZT4pZGVsZWdhdGUKQEAgLTU0MjAsNiArNTQ5NCw5IEBAICsgKHZvaWQpaW5p
dGlhbGl6ZQogICAgIFJ1bkxvb3A6OmluaXRpYWxpemVNYWluUnVuTG9vcCgpOwogI2VuZGlmCiAK
KyAgICBXVEY6OnNldFByb2Nlc3NQcml2aWxlZ2VzKGFsbFByaXZpbGVnZXMoKSk7CisgICAgV2Vi
Q29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpwZXJtaXRQcm9jZXNzVG9Vc2VDb29raWVBUEko
dHJ1ZSk7CisKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIg
ZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2FwcGxp
Y2F0aW9uV2lsbFRlcm1pbmF0ZSkgbmFtZTpOU0FwcGxpY2F0aW9uV2lsbFRlcm1pbmF0ZU5vdGlm
aWNhdGlvbiBvYmplY3Q6TlNBcHBdOwogI2VuZGlmCkBAIC02MzY5LDcgKzY0NDYsNyBAQCAtIChC
T09MKWdvVG9CYWNrRm9yd2FyZEl0ZW06KFdlYkhpc3RvcnlJdGVtICopaXRlbQogICAgICAgICBy
ZXR1cm4gTk87CiAKICAgICBBU1NFUlQoaXRlbSk7Ci0gICAgX3ByaXZhdGUtPnBhZ2UtPmdvVG9J
dGVtKCpjb3JlKGl0ZW0pLCBGcmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQpOworICAg
IF9wcml2YXRlLT5wYWdlLT5nb1RvSXRlbSgqY29yZShpdGVtKSwgRnJhbWVMb2FkVHlwZTo6SW5k
ZXhlZEJhY2tGb3J3YXJkLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2s6OlJlcXVpcmUpOwogICAgIHJl
dHVybiBZRVM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZp
ZXcvV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlld1ByaXZhdGUuaAppbmRleCA5NWMwODM3NDRmYzY1OTgyMjkyOTVkZDViOTE0ZDExZmRjNmNi
NzBhLi44NjA4ODNiZWExYzJmYmE4MDJlYjEyYTBlZTE1NGQ1NGM1MmQ2M2ExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oCkBAIC00ODMs
NyArNDgzLDcgQEAgQ291bGQgYmUgd29ydGggYWRkaW5nIHRvIHRoZSBBUEkuCiAtICh2b2lkKV9l
eGl0ZWREYXRhSW50ZXJhY3Rpb246KGlkIDxVSURyb3BTZXNzaW9uPilzZXNzaW9uIGNsaWVudDoo
Q0dQb2ludCljbGllbnRQb3NpdGlvbiBnbG9iYWw6KENHUG9pbnQpZ2xvYmFsUG9zaXRpb24gb3Bl
cmF0aW9uOih1aW50NjRfdClvcGVyYXRpb247CiAtICh2b2lkKV9wZXJmb3JtRGF0YUludGVyYWN0
aW9uOihpZCA8VUlEcm9wU2Vzc2lvbj4pc2Vzc2lvbiBjbGllbnQ6KENHUG9pbnQpY2xpZW50UG9z
aXRpb24gZ2xvYmFsOihDR1BvaW50KWdsb2JhbFBvc2l0aW9uIG9wZXJhdGlvbjoodWludDY0X3Qp
b3BlcmF0aW9uOwogLSAoQk9PTClfdHJ5VG9QZXJmb3JtRGF0YUludGVyYWN0aW9uOihpZCA8VUlE
cm9wU2Vzc2lvbj4pc2Vzc2lvbiBjbGllbnQ6KENHUG9pbnQpY2xpZW50UG9zaXRpb24gZ2xvYmFs
OihDR1BvaW50KWdsb2JhbFBvc2l0aW9uIG9wZXJhdGlvbjoodWludDY0X3Qpb3BlcmF0aW9uOwot
LSAodm9pZClfZW5kZWREYXRhSW50ZXJhY3Rpb246KENHUG9pbnQpY2xpZW50UG9zaXRpb24gZ2xv
YmFsOihDR1BvaW50KWNsaWVudFBvc2l0aW9uOworLSAodm9pZClfZW5kZWREYXRhSW50ZXJhY3Rp
b246KENHUG9pbnQpY2xpZW50UG9zaXRpb24gZ2xvYmFsOihDR1BvaW50KWdsb2JhbFBvc2l0aW9u
OwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1fZGF0YUludGVyYWN0
aW9uQ2FyZXRSZWN0KSBDR1JlY3QgZGF0YUludGVyYWN0aW9uQ2FyZXRSZWN0OwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9wb3N0cHJvY2Vzcy1oZWFkZXJzLnNo
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvcG9zdHByb2Nlc3MtaGVhZGVycy5zaAppbmRleCBl
MmNjZTM1NTQ2NjBiZTVkYmZmMmUxNWRiOGFmNGU3YjFlY2JhNWVjLi40YmRlYWFjMTZmNjJiOTM1
OWRlNDlmNGVlNDNlNTYzMWM1MzEzY2ZmIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9wb3N0cHJvY2Vzcy1oZWFkZXJzLnNoCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L3Bvc3Rwcm9jZXNzLWhlYWRlcnMuc2gKQEAgLTE0LDkgKzE0LDkgQEAgcG9zdFByb2Nlc3NJbkRp
cmVjdG9yeSgpCiAgICAgICAgIFVTRV9BUFBMRV9JTlRFUk5BTF9TREs9MAogICAgIGZpCiAKLSAg
ICBpZiBbWyAke1BMQVRGT1JNX05BTUV9ID09IG1hY29zeCBdXTsgdGhlbgorICAgIGlmIFtbICR7
V0tfUExBVEZPUk1fTkFNRX0gPT0gbWFjb3N4IF1dOyB0aGVuCiAgICAgICAgIHVuaWZkZWZPcHRp
b25zPSItRFRBUkdFVF9PU19JUEhPTkU9MCAtRFRBUkdFVF9PU19TSU1VTEFUT1I9MCI7Ci0gICAg
ZWxpZiBbWyAke1BMQVRGT1JNX05BTUV9ID09ICpzaW11bGF0b3IqIF1dOyB0aGVuCisgICAgZWxp
ZiBbWyAke1dLX1BMQVRGT1JNX05BTUV9ID09ICpzaW11bGF0b3IqIF1dOyB0aGVuCiAgICAgICAg
IHVuaWZkZWZPcHRpb25zPSItRFRBUkdFVF9PU19JUEhPTkU9MSAtRFRBUkdFVF9PU19TSU1VTEFU
T1I9MSAtRFVTRV9BUFBMRV9JTlRFUk5BTF9TREs9JHtVU0VfQVBQTEVfSU5URVJOQUxfU0RLfSI7
CiAgICAgZWxzZQogICAgICAgICB1bmlmZGVmT3B0aW9ucz0iLURUQVJHRVRfT1NfSVBIT05FPTEg
LURUQVJHRVRfT1NfU0lNVUxBVE9SPTAgLURVU0VfQVBQTEVfSU5URVJOQUxfU0RLPSR7VVNFX0FQ
UExFX0lOVEVSTkFMX1NES30iOwpAQCAtMzYsNyArMzYsNyBAQCBwb3N0UHJvY2Vzc0luRGlyZWN0
b3J5KCkKICAgICAgICAgZmkKICAgICBkb25lCiAKLSAgICBpZiBbWyAke1BMQVRGT1JNX05BTUV9
ID09IG1hY29zeCBdXTsgdGhlbgorICAgIGlmIFtbICR7V0tfUExBVEZPUk1fTkFNRX0gPT0gbWFj
b3N4IF1dOyB0aGVuCiAgICAgICAgIHNlZEV4cHJlc3Npb249J3MvV0VCS0lUXygoQ0xBU1NffEVO
VU1fKT9BVkFJTEFCTEV8REVQUkVDQVRFRCkvTlNfXDEvZyc7CiAgICAgZWxzZQogICAgICAgICBz
ZWRFeHByZXNzaW9uPSdzLyAqV0VCS0lUXygoQ0xBU1NffEVOVU1fKT9BVkFJTEFCTEV8REVQUkVD
QVRFRClfTUFDXChbXildK1wpLy9nJzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmNwcCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdDb250ZXh0LmNwcAppbmRleCAyMzkxMzM1ZTQyMzQ5MWFhNzdlNDUxMDM1ZmVjZjllYWZjMDEx
NDA4Li40OTliMTc5ZWNjNjc0MjAyMjJjMTUxZDJlMmE0OTJiZjJiMjJmYTVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9BY2NlbGVyYXRlZENvbXBv
c2l0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuY3BwCkBAIC0zMTksOCArMzE5LDcg
QEAgYm9vbCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dDo6YWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0F2YWlsYWJsZSgpCiAgICAgSW50UmVjdCB0YXJnZXRSZWN0KDAsIDAsIHdpZHRoLCBoZWln
aHQpOwogICAgIEludFBvaW50IG9mZnNldCgwLCAwKTsKICAgICBpbnQgYnl0ZXNQZXJMaW5lID0g
d2lkdGggKiA0OwotICAgIEJpdG1hcFRleHR1cmU6OlVwZGF0ZUNvbnRlbnRzRmxhZyBmbGFncyA9
IEJpdG1hcFRleHR1cmU6OlVwZGF0ZUNhbk1vZGlmeU9yaWdpbmFsSW1hZ2VEYXRhOwotICAgIHRl
eHR1cmUtPnVwZGF0ZUNvbnRlbnRzKGRhdGEsIHRhcmdldFJlY3QsIG9mZnNldCwgYnl0ZXNQZXJM
aW5lLCBmbGFncyk7CisgICAgdGV4dHVyZS0+dXBkYXRlQ29udGVudHMoZGF0YSwgdGFyZ2V0UmVj
dCwgb2Zmc2V0LCBieXRlc1BlckxpbmUpOwogCiAgICAgLy8gUmVuZGVyIHRleHR1cmUuCiAgICAg
dGV4dHVyZU1hcHBlci0+YmVnaW5QYWludGluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkRhdGFiYXNlTWFuYWdlci5jcHAKaW5kZXggZmI1NDQwODAyMGEwNzIzNWFmNmFlNGU0
NWNiZjIxYTI5NDhlNGE2NC4uMzYwNTYyMzU4NDkxYjUyZDQ1NGY1ZjNjNjFmMTMzNjFiZTg4MzRl
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViRGF0YWJhc2VNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJEYXRhYmFzZU1hbmFnZXIuY3Bw
CkBAIC0yNTYsNyArMjU2LDcgQEAgSFJFU1VMVCBXZWJEYXRhYmFzZU1hbmFnZXI6OmRhdGFiYXNl
c1dpdGhPcmlnaW4oX0luX29wdF8gSVdlYlNlY3VyaXR5T3JpZ2luKiBvcmkKICAgICBpZiAoIXdl
YlNlY3VyaXR5T3JpZ2luKQogICAgICAgICByZXR1cm4gRV9GQUlMOwogCi0gICAgYXV0byBkYXRh
YmFzZU5hbWVzID0gRGF0YWJhc2VUcmFja2VyOjpzaW5nbGV0b24oKS5kYXRhYmFzZU5hbWVzKFNl
Y3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCp3ZWJTZWN1cml0eU9yaWdpbi0+
c2VjdXJpdHlPcmlnaW4oKSkpOworICAgIGF1dG8gZGF0YWJhc2VOYW1lcyA9IERhdGFiYXNlVHJh
Y2tlcjo6c2luZ2xldG9uKCkuZGF0YWJhc2VOYW1lcyh3ZWJTZWN1cml0eU9yaWdpbi0+c2VjdXJp
dHlPcmlnaW4oKS0+ZGF0YSgpKTsKIAogICAgIENPTVB0cjxDT01FbnVtVmFyaWFudDxWZWN0b3I8
U3RyaW5nPj4+IGVudW1WYXJpYW50KEFkb3B0Q09NLCBDT01FbnVtVmFyaWFudDxWZWN0b3I8U3Ry
aW5nPj46OmFkb3B0KGRhdGFiYXNlTmFtZXMpKTsKIApAQCAtMzExLDcgKzMxMSw3IEBAIEhSRVNV
TFQgV2ViRGF0YWJhc2VNYW5hZ2VyOjpkZWxldGVPcmlnaW4oX0luX29wdF8gSVdlYlNlY3VyaXR5
T3JpZ2luKiBvcmlnaW4pCiAgICAgaWYgKCF3ZWJTZWN1cml0eU9yaWdpbikKICAgICAgICAgcmV0
dXJuIEVfRkFJTDsKIAotICAgIERhdGFiYXNlVHJhY2tlcjo6c2luZ2xldG9uKCkuZGVsZXRlT3Jp
Z2luKFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCp3ZWJTZWN1cml0eU9y
aWdpbi0+c2VjdXJpdHlPcmlnaW4oKSkpOworICAgIERhdGFiYXNlVHJhY2tlcjo6c2luZ2xldG9u
KCkuZGVsZXRlT3JpZ2luKHdlYlNlY3VyaXR5T3JpZ2luLT5zZWN1cml0eU9yaWdpbigpLT5kYXRh
KCkpOwogCiAgICAgcmV0dXJuIFNfT0s7CiB9CkBAIC0zMzEsNyArMzMxLDcgQEAgSFJFU1VMVCBX
ZWJEYXRhYmFzZU1hbmFnZXI6OmRlbGV0ZURhdGFiYXNlKF9Jbl8gQlNUUiBkYXRhYmFzZU5hbWUs
IF9Jbl9vcHRfIElXZWIKICAgICBpZiAoIXdlYlNlY3VyaXR5T3JpZ2luKQogICAgICAgICByZXR1
cm4gRV9GQUlMOwogCi0gICAgRGF0YWJhc2VUcmFja2VyOjpzaW5nbGV0b24oKS5kZWxldGVEYXRh
YmFzZShTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbigqd2ViU2VjdXJpdHlP
cmlnaW4tPnNlY3VyaXR5T3JpZ2luKCkpLCBTdHJpbmcoZGF0YWJhc2VOYW1lLCBTeXNTdHJpbmdM
ZW4oZGF0YWJhc2VOYW1lKSkpOworICAgIERhdGFiYXNlVHJhY2tlcjo6c2luZ2xldG9uKCkuZGVs
ZXRlRGF0YWJhc2Uod2ViU2VjdXJpdHlPcmlnaW4tPnNlY3VyaXR5T3JpZ2luKCktPmRhdGEoKSwg
U3RyaW5nKGRhdGFiYXNlTmFtZSwgU3lzU3RyaW5nTGVuKGRhdGFiYXNlTmFtZSkpKTsKIAogICAg
IHJldHVybiBTX09LOwogfQpAQCAtMzk2LDcgKzM5Niw3IEBAIEhSRVNVTFQgV2ViRGF0YWJhc2VN
YW5hZ2VyOjpzZXRRdW90YShfSW5fIEJTVFIgb3JpZ2luLCB1bnNpZ25lZCBsb25nIGxvbmcgcXVv
dGEpCiAgICAgaWYgKHRoaXMgIT0gc19zaGFyZWRXZWJEYXRhYmFzZU1hbmFnZXIpCiAgICAgICAg
IHJldHVybiBFX0ZBSUw7CiAKLSAgICBEYXRhYmFzZVRyYWNrZXI6OnNpbmdsZXRvbigpLnNldFF1
b3RhKFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKFNlY3VyaXR5T3JpZ2lu
OjpjcmVhdGVGcm9tU3RyaW5nKG9yaWdpbikpLCBxdW90YSk7CisgICAgRGF0YWJhc2VUcmFja2Vy
OjpzaW5nbGV0b24oKS5zZXRRdW90YShTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhv
cmlnaW4pLT5kYXRhKCksIHF1b3RhKTsKIAogICAgIHJldHVybiBTX09LOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViU2VjdXJpdHlPcmlnaW4uY3BwIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViU2VjdXJpdHlPcmlnaW4uY3BwCmluZGV4IDkwNmNiYmE1MWRj
NzU0OWJiNzNlZGYyNTczZjJhZmFlMDIzZGMzMDcuLjgxYjI2OWZjNDIwYzU5Y2M2ZWY1ZDk5MmZj
NzZjYzQ5YjBlYTBmYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlNl
Y3VyaXR5T3JpZ2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJTZWN1cml0
eU9yaWdpbi5jcHAKQEAgLTEzMCw3ICsxMzAsNyBAQCBIUkVTVUxUIFdlYlNlY3VyaXR5T3JpZ2lu
Ojp1c2FnZShfT3V0XyB1bnNpZ25lZCBsb25nIGxvbmcqIHJlc3VsdCkKICAgICBpZiAoIXJlc3Vs
dCkKICAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKIAotICAgICpyZXN1bHQgPSBEYXRhYmFzZVRy
YWNrZXI6OnNpbmdsZXRvbigpLnVzYWdlKFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5
T3JpZ2luKCptX3NlY3VyaXR5T3JpZ2luKSk7CisgICAgKnJlc3VsdCA9IERhdGFiYXNlVHJhY2tl
cjo6c2luZ2xldG9uKCkudXNhZ2UobV9zZWN1cml0eU9yaWdpbi0+ZGF0YSgpKTsKIAogICAgIHJl
dHVybiBTX09LOwogfQpAQCAtMTQwLDEzICsxNDAsMTMgQEAgSFJFU1VMVCBXZWJTZWN1cml0eU9y
aWdpbjo6cXVvdGEoX091dF8gdW5zaWduZWQgbG9uZyBsb25nKiByZXN1bHQpCiAgICAgaWYgKCFy
ZXN1bHQpCiAgICAgICAgIHJldHVybiBFX1BPSU5URVI7CiAKLSAgICAqcmVzdWx0ID0gRGF0YWJh
c2VUcmFja2VyOjpzaW5nbGV0b24oKS5xdW90YShTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1
cml0eU9yaWdpbigqbV9zZWN1cml0eU9yaWdpbikpOworICAgICpyZXN1bHQgPSBEYXRhYmFzZVRy
YWNrZXI6OnNpbmdsZXRvbigpLnF1b3RhKG1fc2VjdXJpdHlPcmlnaW4tPmRhdGEoKSk7CiAgICAg
cmV0dXJuIFNfT0s7CiB9CiAgICAgICAgIAogSFJFU1VMVCBXZWJTZWN1cml0eU9yaWdpbjo6c2V0
UXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKSAKIHsKLSAgICBEYXRhYmFzZVRyYWNrZXI6
OnNpbmdsZXRvbigpLnNldFF1b3RhKFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3Jp
Z2luKCptX3NlY3VyaXR5T3JpZ2luKSwgcXVvdGEpOworICAgIERhdGFiYXNlVHJhY2tlcjo6c2lu
Z2xldG9uKCkuc2V0UXVvdGEobV9zZWN1cml0eU9yaWdpbi0+ZGF0YSgpLCBxdW90YSk7CiAKICAg
ICByZXR1cm4gU19PSzsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YlZpZXcuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKaW5kZXggYTVm
ZjA3Y2E0YmExYTU3NTI1ZDgxZDNlMmU1OWFkYzRkN2QyYzgyNC4uNDljZDdiZGMyMjg3MzMwNzhk
ZmI1MDg1NjkyNjM5MTBlM2VjNGQ3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAK
QEAgLTEyNiw2ICsxMjYsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTWFpbkZyYW1lLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVtb3J5UmVs
ZWFzZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTmF2aWdhdGlvblBvbGljeUNoZWNrLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QYWdlQ2FjaGUuaD4KQEAgLTE2OCw2ICsxNzAsNyBAQAogI2luY2x1ZGUgPGNvbWRl
Zi5oPgogI2luY2x1ZGUgPGQyZDEuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2lu
Y2x1ZGUgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CiAjaW5jbHVkZSA8d3RmL1JBTVNpemUuaD4K
ICNpbmNsdWRlIDx3dGYvU29mdExpbmtpbmcuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+
CkBAIC00MTEsNiArNDE0LDggQEAgV2ViVmlldzo6V2ViVmlldygpCiB7CiAgICAgSlNDOjppbml0
aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5SdW5Mb29wKCk7
CisgICAgV1RGOjpzZXRQcm9jZXNzUHJpdmlsZWdlcyhhbGxQcml2aWxlZ2VzKCkpOworICAgIFdl
YkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6cGVybWl0UHJvY2Vzc1RvVXNlQ29va2llQVBJ
KHRydWUpOwogCiAgICAgbV9iYWNraW5nU3RvcmVTaXplLmN4ID0gbV9iYWNraW5nU3RvcmVTaXpl
LmN5ID0gMDsKIApAQCAtMzQzMyw3ICszNDM4LDcgQEAgSFJFU1VMVCBXZWJWaWV3Ojpnb1RvQmFj
a0ZvcndhcmRJdGVtKF9Jbl9vcHRfIElXZWJIaXN0b3J5SXRlbSogaXRlbSwgX091dF8gQk9PTCoK
ICAgICBpZiAoRkFJTEVEKGhyKSkKICAgICAgICAgcmV0dXJuIGhyOwogCi0gICAgbV9wYWdlLT5n
b1RvSXRlbSgqd2ViSGlzdG9yeUl0ZW0tPmhpc3RvcnlJdGVtKCksIEZyYW1lTG9hZFR5cGU6Oklu
ZGV4ZWRCYWNrRm9yd2FyZCk7CisgICAgbV9wYWdlLT5nb1RvSXRlbSgqd2ViSGlzdG9yeUl0ZW0t
Pmhpc3RvcnlJdGVtKCksIEZyYW1lTG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCwgTmF2aWdh
dGlvblBvbGljeUNoZWNrOjpSZXF1aXJlKTsKICAgICAqc3VjY2VlZGVkID0gVFJVRTsKIAogICAg
IHJldHVybiBTX09LOwpAQCAtNTk2MCw3ICs1OTY1LDcgQEAgSFJFU1VMVCBXZWJWaWV3Ojpsb2Fk
QmFja0ZvcndhcmRMaXN0RnJvbU90aGVyVmlldyhfSW5fb3B0XyBJV2ViVmlldyogb3RoZXJWaWV3
KQogICAgIH0KICAgICAKICAgICBBU1NFUlQobmV3SXRlbVRvR29Ubyk7Ci0gICAgbV9wYWdlLT5n
b1RvSXRlbSgqbmV3SXRlbVRvR29UbywgRnJhbWVMb2FkVHlwZTo6SW5kZXhlZEJhY2tGb3J3YXJk
KTsKKyAgICBtX3BhZ2UtPmdvVG9JdGVtKCpuZXdJdGVtVG9Hb1RvLCBGcmFtZUxvYWRUeXBlOjpJ
bmRleGVkQmFja0ZvcndhcmQsIE5hdmlnYXRpb25Qb2xpY3lDaGVjazo6UmVxdWlyZSk7CiAgICAg
cmV0dXJuIFNfT0s7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNt
YWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKaW5kZXggOTc0NTMzNmJkNGZkOWVl
NTJlNDVmMTAyZDdhMzAyZWU3OGQ1Nzc1Mi4uOGI4NjI3ODYyNzFmZjJjZWEyNTMxMTIyY2M1YWVm
YzA5ZDAwMmVjZSAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKKysr
IGIvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKQEAgLTM1LDYgKzM1LDExIEBAIFdFQktJ
VF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9TTU9PVEhfU0NST0xMSU5HIFBSSVZB
VEUgT0ZGKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1RPVUNIX0VW
RU5UUyBQUklWQVRFIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X1dFQkdMMiBQUklWQVRFICR7RU5BQkxFX0VYUEVSSU1FTlRBTF9GRUFUVVJFU30pCiAKKyMgUHVi
bGljIG9wdGlvbnMgc3BlY2lmaWMgdG8gdGhlIFdQRSBwb3J0LiBEbyBub3QgYWRkIGFueSBvcHRp
b25zIGhlcmUgdW5sZXNzCisjIHRoZXJlIGlzIGEgc3Ryb25nIHJlYXNvbiB3ZSBzaG91bGQgc3Vw
cG9ydCBjaGFuZ2luZyB0aGUgdmFsdWUgb2YgdGhlIG9wdGlvbiwKKyMgYW5kIHRoZSBvcHRpb24g
aXMgbm90IHJlbGV2YW50IHRvIGFueSBvdGhlciBXZWJLaXQgcG9ydHMuCitXRUJLSVRfT1BUSU9O
X0RFRklORShVU0VfV09GRjIgIldoZXRoZXIgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIFdPRkYyIFdl
YiBGb250cy4iIFBVQkxJQyBPTikKKwogIyBQcml2YXRlIG9wdGlvbnMgc3BlY2lmaWMgdG8gdGhl
IFdQRSBwb3J0LgogV0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX09QRU5WUiAiV2hldGhlciB0byB1
c2UgT3BlblZSIGFzIFdlYlZSIGJhY2tlbmQuIiBQUklWQVRFICR7RU5BQkxFX0VYUEVSSU1FTlRB
TF9GRUFUVVJFU30pCiAKQEAgLTczLDYgKzc4LDEzIEBAIGZpbmRfcGFja2FnZShXZWJQIFJFUVVJ
UkVEKQogZmluZF9wYWNrYWdlKFdQRUJhY2tlbmQgUkVRVUlSRUQpCiBmaW5kX3BhY2thZ2UoWkxJ
QiBSRVFVSVJFRCkKIAoraWYgKFVTRV9XT0ZGMikKKyAgICBmaW5kX3BhY2thZ2UoV09GRjJEZWMg
MS4wLjIpCisgICAgaWYgKE5PVCBXT0ZGMkRFQ19GT1VORCkKKyAgICAgICAgbWVzc2FnZShGQVRB
TF9FUlJPUiAibGl3b2ZmMmRlYyBpcyBuZWVkZWQgZm9yIFVTRV9XT0ZGMi4iKQorICAgIGVuZGlm
ICgpCitlbmRpZiAoKQorCiBpZiAoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICAgICBm
aW5kX3BhY2thZ2UoQ2Fpcm9HTCAxLjEwLjIgUkVRVUlSRUQgQ09NUE9ORU5UUyBjYWlyby1lZ2wp
CiBlbmRpZiAoKQpAQCAtMTE0LDYgKzEyNiw3IEBAIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVT
RV9DT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCBUUlVFKQogc2V0KEZPUldBUkRJTkdfSEVB
REVSU19ESVIgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycykKIHNldChG
T1JXQVJESU5HX0hFQURFUlNfV1BFX0RJUiAke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9L3dwZSkK
IHNldChGT1JXQVJESU5HX0hFQURFUlNfV1BFX0VYVEVOU0lPTl9ESVIgJHtGT1JXQVJESU5HX0hF
QURFUlNfRElSfS93cGUtd2ViZXh0ZW5zaW9uKQorc2V0KEZPUldBUkRJTkdfSEVBREVSU19XUEVf
RE9NX0RJUiAke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9L3dwZS1kb20pCiBzZXQoREVSSVZFRF9T
T1VSQ0VTX0pBVkFTQ1JJUENPUkVXUEVfRElSICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRD
T1JFX0RJUn0vamF2YXNjcmlwdGNvcmV3cGUpCiBzZXQoREVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJ
UENPUkVfR0xJQl9BUElfRElSICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0v
amF2YXNjcmlwdGNvcmV3cGUvanNjKQogc2V0KERFUklWRURfU09VUkNFU19XUEVfQVBJX0RJUiAk
e0RFUklWRURfU09VUkNFU19XRUJLSVRfRElSfS93cGUpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWQ3N2Q1OTczYjdjYzU2ZmFmZGQwZWEwOTlk
NjAyZDI4MmY1OWY1ZS4uNWE3YTE2YzZiODFkOGRlNzNmNTJhMmMyNzliOWM2YzdiZWQ1MjBhNiAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMyMiBAQAorMjAxOC0wMy0yNiAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNv
bT4KKworICAgICAgICBXYXJuIGFnYWluc3QgY29va2llIGFjY2VzcyBpbiB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIHVzaW5nIFByb2Nlc3NQcml2aWxlZ2UgYXNzZXJ0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTExCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8zODc2MjMwNj4KKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0
LgorCisgICAgICAgIEFkZCBhIHNldCBvZiBQcm9jZXNzUHJpdmlsZWdlIGFzc2VydGlvbnMgdG8g
ZW5mb3JjZSB0aGUgcnVsZSB0aGF0IHRoZSBXZWJDb250ZW50IHByb2Nlc3MKKyAgICAgICAgc2hv
dWxkIG5ldmVyIGNhbGwgQ29va2llIEFQSSBkaXJlY3RseS4gVGhhdCBzaG91bGQgb25seSBoYXBw
ZW4gaW4gdGhlIE5ldHdvcmtpbmcgb3IKKyAgICAgICAgVUlQcm9jZXNzLiAKKworICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKER1bXBSZW5k
ZXJUcmVlTWFpbik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0c0NvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VGVzdHNDb250cm9sbGVyOjpUZXN0c0NvbnRyb2xs
ZXIpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZSk6CisKKzIwMTgtMDMtMjYgIFph
bGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTGF5b3V0UmVsb2FkZWRd
IEFkZCBJbmxpbmVUZXh0IERPTSBpbnRlcmZhY2UgYW5kIGRlcGVuZGVuY2llcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MDEwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgdG8gaGVscCBpbmxpbmUgdGV4
dCBsYXlvdXQuCisKKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9taXNjL0xheW91dFJlbG9hZGVk
V2ViS2l0LnBhdGNoOgorCisyMDE4LTAzLTI1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJj
aWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIEFkZCBBUEkgdG8gY29udmVydCBi
ZXR3ZWVuIERPTSBhbmQgSlNDVmFsdWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4MzQ0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE1pY2hhZWwgQ2F0
YW56YXJvLgorCisgICAgICAgIEFkZCB1bml0IHRlc3RzIGZvciBub24tZGVwcmVjYXRlZCBET00g
QVBJIGFuZCBzd2l0Y2ggZXhpc3RpbmcgdGVzdHMgdG8gdXNlIG5vbi1kZXByZWNhdGVkIEFQSSBl
eGNlcHQgZm9yIHRoZQorICAgICAgICBvbmVzIHRoYXQgdGVzdCB0aGUgZGVwcmVjYXRlZCBBUEku
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvRE9NRWxlbWVudFRl
c3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKERPTUVsZW1lbnRUZXN0OjpjcmVhdGUpOgorICAgICAg
ICAoRE9NRWxlbWVudFRlc3Q6OnRlc3RBdXRvRmlsbCk6CisgICAgICAgIChyZWdpc3RlclRlc3Rz
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvRWRpdG9yVGVzdC5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0V2ViRWRpdG9yVGVzdDo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYktpdFdlYkVkaXRvclRlc3Q6OnNlbGVjdGlvbkNoYW5nZWRDYWxsYmFjayk6CisgICAg
ICAgIChXZWJLaXRXZWJFZGl0b3JUZXN0Ojp0ZXN0U2VsZWN0aW9uY2hhbmdlZCk6CisgICAgICAg
IChyZWdpc3RlclRlc3RzKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdM
aWIvRnJhbWVUZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdEZyYW1lVGVzdDo6dGVzdEphdmFTY3Jp
cHRWYWx1ZXMpOgorICAgICAgICAocmVnaXN0ZXJUZXN0cyk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RET01FbGVtZW50LmNwcDogUmVuYW1lZCBmcm9tIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvZ3RrL0RPTS9XZWJLaXRE
T01PYmplY3RQcml2YXRlLmguCisgICAgICAgICh0ZXN0V2ViS2l0RE9NRWxlbWVudEF1dG9GaWxs
KToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisgICAgICAgIChhZnRlckFsbCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RFZGl0b3IuY3BwOiBSZW5hbWVkIGZy
b20gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdEVkaXRvci5jcHAuCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RGcmFtZS5jcHA6Cisg
ICAgICAgICh0ZXN0V2ViS2l0RnJhbWVKYXZhU2NyaXB0VmFsdWVzKToKKyAgICAgICAgKGJlZm9y
ZUFsbCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJF
eHRlbnNpb25zLmNwcDoKKyAgICAgICAgKGlucHV0RWxlbWVudElzVXNlckVkaXRlZCk6CisgICAg
ICAgICh0ZXN0V2ViRXh0ZW5zaW9uSW5wdXRFbGVtZW50SXNVc2VyRWRpdGVkKToKKyAgICAgICAg
KHRlc3RXZWJFeHRlbnNpb25Gb3JtU3VibWlzc2lvblN0ZXBzKToKKyAgICAgICAgKGJlZm9yZUFs
bCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1dlYkV4dGVuc2lv
blRlc3QuY3BwOgorICAgICAgICAoZG9jdW1lbnRMb2FkZWRDYWxsYmFjayk6CisgICAgICAgIChz
ZXJpYWxpemVOb2RlKToKKyAgICAgICAgKGNvbnRleHRNZW51Q2FsbGJhY2spOgorICAgICAgICAo
Y29uc29sZU1lc3NhZ2VTZW50Q2FsbGJhY2spOgorICAgICAgICAoZm9ybUNvbnRyb2xzQXNzb2Np
YXRlZENhbGxiYWNrKToKKyAgICAgICAgKHdpbGxTdWJtaXRGb3JtQ2FsbGJhY2spOgorICAgICAg
ICAocGFnZUNyZWF0ZWRDYWxsYmFjayk6CisgICAgICAgIChtZXRob2RDYWxsQ2FsbGJhY2spOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9XZWJQcm9jZXNzVGVzdC5j
cHA6CisgICAgICAgIChjaGVja0xlYWtzKToKKyAgICAgICAgKHdlYlByb2Nlc3NUZXN0UnVubmVy
RmluYWxpemUpOgorICAgICAgICAoY2hlY2tMZWFrc0F0RXhpdCk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvQXV0b2NsZWFudXBzVGVzdC5jcHA6CisgICAgICAgIChB
dXRvY2xlYW51cHNUZXN0Ojp0ZXN0V2ViUHJvY2Vzc0F1dG9jbGVhbnVwcyk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9NQ2xpZW50UmVjdFRlc3QuY3BwOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0RPTU5vZGVGaWx0ZXJUZXN0LmNw
cDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9ET01Ob2RlVGVzdC5j
cHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9NWFBhdGhOU1Jl
c29sdmVyVGVzdC5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsv
RWRpdG9yVGVzdC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9nbGliL0NN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ2xpYi9QbGF0Zm9ybUdUSy5j
bWFrZToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2dsaWIvUGxhdGZvcm1XUEUuY21ha2U6CisK
KzIwMTgtMDMtMjQgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgorCisgICAg
ICAgIHdlYmtpdHB5OiBVbnJlY29nbml6ZWQgbWFjIHZlcnNpb25zIGFsd2F5cyB1c2UgV2ViS2l0
VGVzdFJ1bm5lcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgzNjgxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zODUwOTE2Mj4KKworICAgICAgICBS
ZXZpZXdlZCBieSBEYW5pZWwgQmF0ZXMuCisKKyAgICAgICAgV2hlbiBhbiB1bnJlY29nbml6ZWQg
dmVyc2lvbiBpcyB1c2VkLCB3ZSB3ZXJlIHVuY29uZGl0aW9uYWxseSBhZGRpbmcgJy13azInCisg
ICAgICAgIHRvIHRoZSBtYWMgdmVyc2lvbiBuYW1lLiBUaGlzIHdvdWxkIG1lYW4gdGhhdCB0aGUg
cG9ydCBvYmplY3Qgd291bGQgYWx3YXlzCisgICAgICAgIHVzZSBXZWJLaXRUZXN0UnVubmVyIGFz
IHRoZSBkcml2ZXIsIGV2ZW4gaWYgRHVtcFJlbmRlclRyZWUgd2FzIGV4cGxpY2l0bHkKKyAgICAg
ICAgcmVxdWVzdGVkLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2FwcGxlLnB5
OgorICAgICAgICAoQXBwbGVQb3J0LmRldGVybWluZV9mdWxsX3BvcnRfbmFtZSk6IE9ubHkgYWRk
IHdrMiB0byBwb3J0IG5hbWVzIGlmCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgaXMgc3BlY2lm
aWVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9tYWMucHk6CisgICAgICAgIChN
YWNQb3J0Ll9faW5pdF9fKTogQ29tcGFyZSBsZW5ndGggb2Ygc3BsaXQgc3RyaW5nLCBhbmQgZG8g
bm90IHRyZWF0IHdrMiBhcyBhCisgICAgICAgIHZlcnNpb24gbmFtZS4KKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvbWFjX3VuaXR0ZXN0LnB5OgorICAgICAgICAoTWFjVGVzdCk6Cisg
ICAgICAgIChNYWNUZXN0LnRlc3RfZmFjdG9yeV93aXRoX2Z1dHVyZV92ZXJzaW9uKTogQ29uZmly
bSB0aGF0IGZ1dHVyZSB2ZXJzaW9ucyBjb3JyZWN0bHkKKyAgICAgICAgYXNzaWduIHRoZSBkcml2
ZXIgYW5kIGhhdmUgdW5kZWZpbmVkIHZlcnNpb24gbmFtZXMuCisgICAgICAgIChNYWNUZXN0LnRl
c3RfZmFjdG9yeV93aXRoX3BvcnRuYW1lX3ZlcnNpb24pOiBDb25maXJtIHRoYXQgZ2VuZXJhbCB2
ZXJzaW9ucyBjb3JyZWN0bHkgYXNzaWduCisgICAgICAgIHRoZSBkcml2ZXIgYW5kIGhhdmUgZGVm
aW5lZCB2ZXJzaW9ucy4KKyAgICAgICAgKE1hY1Rlc3QudGVzdF9mYWN0b3J5X3dpdGhfcG9ydG5h
bWVfd2syKTogRW5zdXJlIHRoYXQgbWFjIHBvcnRzIGVuZGluZyBpbiAnd2syJyBzZXQKKyAgICAg
ICAgdGhlIGRyaXZlciB0byBiZSBXZWJLaXRUZXN0UnVubmVyIGV2ZW4gaWYgd2Via2l0X3Rlc3Rf
cnVubmVyPUZhbHNlLgorCisyMDE4LTAzLTIzICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdh
bGlhLmNvbT4KKworICAgICAgICBGaXggdGhlIHJ1bi1iZW5jaG1hcmsgc2NyaXB0LCBwcm9wZXJs
eSBzcGVjaWZ5aW5nIHRoZSBwbGFuIGRpcmVjdG9yeQorICAgICAgICB3aGVyZSB0aGUgU2tpcHBl
ZCBmaWxlIGlzIGxvY2F0ZWQuCisKKyAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgQ2FybG9zIEFs
YmVydG8gTG9wZXogUGVyZXouCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFy
a19ydW5uZXIvcnVuX2JlbmNobWFyay5weToKKyAgICAgICAgKHN0YXJ0KToKKworMjAxOC0wMy0y
MyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBGaXgg
dGhlIGJ1aWxkIHdpdGggbm8gcGFzdGVib2FyZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJl
cm5zdGVpbi4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVy
ZURlZmluZXMueGNjb25maWc6CisKKzIwMTgtMDMtMjMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBXUFQgdG9vbHMgdG8gYTFlYzMzMAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTM0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgVXBkYXRlIHNjcmlwdCB0byBy
dW4gV1BUIHNlcnZlciAgYWNjb3JkaW5nIHVwZGF0ZWQgV1BUIHRvb2xzLgorCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJfcGxhdGZvcm1fdGVzdF9s
YXVuY2hlci5weToKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyLnB5OgorICAgICAg
ICAoYmFzZV9odHRwX3VybCk6CisgICAgICAgIChiYXNlX2h0dHBzX3VybCk6CisKKzIwMTgtMDMt
MjMgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgTG9jYWwgc3Rv
cmFnZSBnZXRJdGVtKCkgZm9yIGFuIGVtcHR5IHN0cmluZyByZXR1cm5lZCBVTkRFRklORUQgdmFs
dWUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTEz
OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTM0MTA5NzQ+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQnJhZHkgRWlkc29uLgorCisgICAgICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFnZS4KKworICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9y
YWdlUGVyc2lzdGVuY2UubW06IEFkZGVkLgorICAgICAgICAoLVtMb2NhbFN0b3JhZ2VNZXNzYWdl
SGFuZGxlciB1c2VyQ29udGVudENvbnRyb2xsZXI6ZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6XSk6
CisgICAgICAgIChURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL2xvY2Fsc3RvcmFnZS1lbXB0eS1zdHJpbmctdmFsdWUuaHRtbDogQWRkZWQuCisKKzIwMTgt
MDMtMjMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBQcm9tcHRs
eSB0ZXJtaW5hdGUgc2VydmljZSB3b3JrZXIgcHJvY2Vzc2VzIHdoZW4gdGhleSBhcmUgbm8gbG9u
Z2VyIG5lZWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgzODczCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zODY3Njk5NT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIEFkZCBBUEkgdGVzdCBjb3ZlcmFn
ZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdv
cmtlckJhc2ljLm1tOgorCisyMDE4LTAzLTIzICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxl
LmNvbT4KKworICAgICAgICBHbyB0byBiYWNrL2ZvcndhcmQgbGlzdCBpdGVtcyBhZnRlciBhIHBy
b2Nlc3Mtc3dhcHBlZCBuYXZpZ2F0aW9uLgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzg2OTA1
NDQ+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTIwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQW5keSBFc3Rlcy4KKworICAgICAgICBBZGQgYSBuZXcgQVBJ
IHRlc3QgdGhhdCBkb2VzIHNvbWUgcHJvY2Vzcy1zd2FwcGluZyBuYXZpZ2F0aW9ucyAoaW5jbHVk
aW5nIGEgYmFjayBuYXZpZ2F0aW9uKQorICAgICAgICBhbmQgdmVyaWZpZXMgdGhlIHN0YXRlIG9m
IHRoZSBlbmdpbmUgYWZ0ZXJ3YXJkcy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW06CisgICAgICAgICgtW1BTT05N
ZXNzYWdlSGFuZGxlciB1c2VyQ29udGVudENvbnRyb2xsZXI6ZGlkUmVjZWl2ZVNjcmlwdE1lc3Nh
Z2U6XSk6CisgICAgICAgICgtW1BTT05TY2hlbWUgaW5pdFdpdGhCeXRlczpdKToKKyAgICAgICAg
KC1bUFNPTlNjaGVtZSB3ZWJWaWV3OnN0YXJ0VVJMU2NoZW1lVGFzazpdKToKKyAgICAgICAgKGxv
Zyk6CisgICAgICAgIChmdW5jdGlvbik6CisgICAgICAgIChURVNUKTogRGVsZXRlZC4KKworMjAx
OC0wMy0yMyAgQnJlbmRhbiBNY0xvdWdobGluICA8YnJlbmRhbkBib2NvdXAuY29tPgorCisgICAg
ICAgIExpbnQgd2ViLXBsYXRmb3JtLXRlc3RzIGNoYW5nZXMgd2l0aCB0aGUgd3B0IGxpbnRlciBi
ZWZvcmUgZXhwb3J0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODM3OTYKKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9leHBvcnRlci5weToKKyAgICAgICAg
KFRlc3RFeHBvcnRlci5fX2luaXRfXyk6CisgICAgICAgIChUZXN0RXhwb3J0ZXIuZG9fZXhwb3J0
KToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2V4cG9ydGVyX3VuaXR0ZXN0
LnB5OgorICAgICAgICAoVGVzdEV4cG9ydGVyVGVzdC5Nb2NrV1BUTGludGVyKToKKyAgICAgICAg
KFRlc3RFeHBvcnRlclRlc3QuTW9ja1dQVExpbnRlci5fX2luaXRfXyk6CisgICAgICAgIChUZXN0
RXhwb3J0ZXJUZXN0Lk1vY2tXUFRMaW50ZXIubGludCk6CisgICAgICAgIChUZXN0RXhwb3J0ZXJU
ZXN0LnRlc3RfZXhwb3J0KToKKyAgICAgICAgKFRlc3RFeHBvcnRlclRlc3QudGVzdF9leHBvcnRf
d2l0aF9zcGVjaWZpY19icmFuY2gpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdzNjL3dw
dF9saW50ZXIucHk6IEFkZGVkLgorICAgICAgICAoV1BUTGludGVyKToKKyAgICAgICAgKFdQVExp
bnRlci5fX2luaXRfXyk6CisgICAgICAgIChXUFRMaW50ZXIubGludCk6CisKKzIwMTgtMDMtMjMg
IERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAgICAgICBTdG9wIHVzaW5n
IGRpc3BhdGNoX3NldF90YXJnZXRfcXVldWUoKQorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3Jn
L2IvMTgzOTA4PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzM1NTM1MzM+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRGFuaWVsIEJhdGVzLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9z
dHlsZS9jaGVja2Vycy9jcHAucHk6CisgICAgICAgIChjaGVja19sYW5ndWFnZSk6IEFkZCBjaGVj
ayBmb3IgdXNlIG9mCisgICAgICAgIGRpc3BhdGNoX3NldF90YXJnZXRfcXVldWUoKS4KKyAgICAg
ICAgKENwcENoZWNrZXIpOiBBZGQgJ3J1bnRpbWUvZGlzcGF0Y2hfc2V0X3RhcmdldF9xdWV1ZScg
Y2F0ZWdvcnkuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHBf
dW5pdHRlc3QucHk6CisgICAgICAgIChDcHBTdHlsZVRlc3QpOiBBZGQgdGVzdC4KKworMjAxOC0w
My0yMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cg
ZnVsbHkgd2hpdGVsaXN0ZWQgcGx1Zy1pbnMgdG8gbWF0Y2ggbm9uIEhUVFAgVVJMcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTM4CisgICAgICAg
IHJkYXI6Ly9wcm9ibGVtLzM4NTM0MzEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVt
ZXouCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMLmNwcDoKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisKKzIwMTgtMDMtMjMgIEpGIEJhc3RpZW4g
IDxqZmJhc3RpZW5AYXBwbGUuY29tPgorCisgICAgICAgIGR1bXAtY2xhc3MtbGF5b3V0IGlzIGp1
c3Qgd3JvbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4MzkzOQorCisgICAgICAgIFJldmlld2VkIGJ5IFl1c3VrZSBTdXp1a2kuCisKKyAgICAgICAg
TG9va3MgbGlrZSByMjI5MjkxIGNvbnRhaW5lZCBhIGhhbGYtcmVuYW1lZCB2YXJpYWJsZSBpbiBp
dCwgc28gaXQKKyAgICAgICAganVzdCBkb2Vzbid0IHdvcmsuCisKKyAgICAgICAgKiBTY3JpcHRz
L2R1bXAtY2xhc3MtbGF5b3V0OgorICAgICAgICAodmVyaWZ5X3R5cGUpOgorICAgICAgICAodmVy
aWZ5X3R5cGVfcmVjdXJzaXZlKToKKworMjAxOC0wMy0yMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZC4gUnVuIEpTQyBHTGli
IEFQSSB0ZXN0cyBpbiBHVEsrIGFuZCBXUEUgYm90cy4KKworICAgICAgICBUaGUgdGVzdCBydW5u
ZXJzIHdlcmUgc3RpbGwgY29uc2lkZXJpbmcgdGhlIEpTQyB0ZXN0cyBhcyBnb29nbGUgdGVzdHMs
IGJ1dCB0aGV5IGFyZSBub3cgR0xpYiB0ZXN0cy4KKworICAgICAgICAqIFNjcmlwdHMvcnVuLWd0
ay10ZXN0czoKKyAgICAgICAgKEd0a1Rlc3RSdW5uZXIuaXNfZ2xpYl90ZXN0KToKKyAgICAgICAg
KEd0a1Rlc3RSdW5uZXIuaXNfZ29vZ2xlX3Rlc3QpOgorICAgICAgICAqIFNjcmlwdHMvcnVuLXdw
ZS10ZXN0czoKKyAgICAgICAgKFdQRVRlc3RSdW5uZXIuaXNfZ2xpYl90ZXN0KToKKyAgICAgICAg
KFdQRVRlc3RSdW5uZXIuaXNfZ29vZ2xlX3Rlc3QpOgorCisyMDE4LTAzLTIyICBEYW5pZWwgQmF0
ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBvc2UgU2NoZW1lUmVnaXN0cnk6
OnJlZ2lzdGVyQXNDYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdCgpIGFzIFdlYktpdCBTUEkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzkwNworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMzg3NTkxMjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxl
eCBDaHJpc3RlbnNlbi4KKworICAgICAgICBBZGRzIHVuaXQgdGVzdHMgZm9yIHRoZSBtb2Rlcm4g
T2JqZWN0aXZlLUMgYW5kIEMgU1BJIHRvIGVuc3VyZSB3ZSBkbyBub3QgcmVncmVzcyBpdC4KKwor
ICAgICAgICBXZSB1c2UgdGhlIGRlcHJlY2F0ZWQgLVtXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xs
ZXIgcmVnaXN0ZXJTY2hlbWVGb3JDdXN0b21Qcm90b2NvbDpdCisgICAgICAgIGluIGJvdGggdGhl
IG1vZGVybiBPYmplY3RpdmUtQyBBUEkgYW5kIEMgQVBJIHRlc3RzIHRvIHNoYXJlIGNvZGUuIE9u
Y2Ugd2Ugbm8gbG9uZ2VyCisgICAgICAgIG5lZWQgdG8gc3VwcG9ydCB0aGUgQyBBUEkgd2Ugc2hv
dWxkIHJlbW92ZSB0aGUgdGVzdHMgYW5kIHRyYW5zaXRpb24gdGhlIG1vZGVybiBPYmplY3RpdmUt
CisgICAgICAgIEMgdGVzdHMgdG8gdXNlIC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxT
Y2hlbWVIYW5kbGVyOmZvclVSTFNjaGVtZTpdLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TY2hlbWVSZWdpc3RyeS5tbTogQWRkZWQuCisgICAg
ICAgICgrW0VjaG9VUkxQcm90b2NvbCBjYW5Jbml0V2l0aFJlcXVlc3Q6XSk6CisgICAgICAgICgr
W0VjaG9VUkxQcm90b2NvbCBjYW5vbmljYWxSZXF1ZXN0Rm9yUmVxdWVzdDpdKToKKyAgICAgICAg
KCtbRWNob1VSTFByb3RvY29sIHJlcXVlc3RJc0NhY2hlRXF1aXZhbGVudDp0b1JlcXVlc3Q6XSk6
CisgICAgICAgICgtW0VjaG9VUkxQcm90b2NvbCBzdGFydExvYWRpbmddKToKKyAgICAgICAgKC1b
RWNob1VSTFByb3RvY29sIHN0b3BMb2FkaW5nXSk6CisgICAgICAgICgtW1dLQ29udGV4dFJlZ2lz
dGVyVVJMU2NoZW1lQXNDYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdExvYWREZWxlZ2F0ZSBicm93
c2luZ0NvbnRleHRDb250cm9sbGVyOmRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3I6XSk6
CisgICAgICAgICgtW1dLQ29udGV4dFJlZ2lzdGVyVVJMU2NoZW1lQXNDYW5EaXNwbGF5T25seUlm
Q2FuUmVxdWVzdExvYWREZWxlZ2F0ZSBicm93c2luZ0NvbnRleHRDb250cm9sbGVyRGlkRmluaXNo
TG9hZDpdKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCisyMDE4LTAzLTIyICBB
ZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dQ
RV0gRW5hYmxlIFdPRkYyIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3ODE1OAorCisgICAgICAgIFJldmlld2VkIGJ5IEZyw6lkw6lyaWMg
V2FuZy4KKworICAgICAgICAqIHdwZS9qaGJ1aWxkLm1vZHVsZXM6IEFkZCAiYnJvdGxpIiBhbmQg
IndvZmYyIiB0byB0aGUgSkhCdWlsZCBtb2R1bGVzZXQuCisKKzIwMTgtMDMtMjIgIEJyZW5kYW4g
TWNMb3VnaGxpbiAgPGJyZW5kYW5AYm9jb3VwLmNvbT4KKworICAgICAgICBEbyBub3QgZXhwb3J0
IHdlYi1wbGF0Zm9ybS10ZXN0IGZpbGVzIGdlbmVyYXRlZCBieSB0aGUgd3B0IGltcG9ydGVyIHRv
IGFzc2lzdCB0aGUgd2Via2l0IHRlc3QgcnVubmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5MTYKKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vl
bm4gRmFibGV0LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9leHBvcnRl
ci5weToKKyAgICAgICAgKFRlc3RFeHBvcnRlci5jcmVhdGVfYnJhbmNoX3dpdGhfcGF0Y2gpOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3RfZXhwb3J0ZXJfdW5pdHRlc3QucHk6
CisgICAgICAgIChUZXN0RXhwb3J0ZXJUZXN0LnRlc3RfZXhwb3J0KToKKyAgICAgICAgKFRlc3RF
eHBvcnRlclRlc3QudGVzdF9leHBvcnRfd2l0aF9zcGVjaWZpY19icmFuY2gpOgorCiAyMDE4LTAz
LTIyICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIElt
cHJvdmUgcmVhZGFiaWxpdHkgb2YgV2ViQ29yZSdzIE9USEVSX0xERkxBR1MKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCAyODUzMzE1MTFiMzQ5M2QwMzFm
N2I3ZTgyMjIyYTQyYjg1NjI5YjE0Li5lYTY1YmI5NTcxZDE2YzFjZmM4ZTc3ZWU4NzlkYmUyMDVm
YjkyMmZkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBA
IC01OSw2ICs1OSw3IEBACiAjaW1wb3J0IDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5o
PgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvVGVzdFJ1bm5lclV0aWxzLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0xvZ0luaXRpYWxpemF0aW9uLmg+CisjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbi5oPgogI2ltcG9ydCA8V2ViS2l0L0RPTUVsZW1lbnQuaD4KICNpbXBvcnQgPFdl
YktpdC9ET01FeHRlbnNpb25zLmg+CiAjaW1wb3J0IDxXZWJLaXQvRE9NUmFuZ2UuaD4KQEAgLTky
LDYgKzkzLDcgQEAKICNpbXBvcnQgPHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW1wb3J0IDx3dGYvTG9n
Z2luZ0FjY3VtdWxhdG9yLmg+CiAjaW1wb3J0IDx3dGYvT2JqY1J1bnRpbWVFeHRyYXMuaD4KKyNp
bXBvcnQgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
CiAjaW1wb3J0IDx3dGYvVGhyZWFkaW5nLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KQEAgLTEzNTAsNiArMTM1Miw5IEBAIGludCBEdW1wUmVuZGVyVHJlZU1haW4oaW50IGFyZ2Ms
IGNvbnN0IGNoYXIgKmFyZ3ZbXSkKIHsKICAgICBhdGV4aXQoYXRleGl0RnVuY3Rpb24pOwogCisg
ICAgV1RGOjpzZXRQcm9jZXNzUHJpdmlsZWdlcyhhbGxQcml2aWxlZ2VzKCkpOworICAgIFdlYkNv
cmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6cGVybWl0UHJvY2Vzc1RvVXNlQ29va2llQVBJKHRy
dWUpOworCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIF9VSUFwcGxpY2F0aW9uTG9hZFdlYktpdCgp
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL0xheW91dFJl
bG9hZGVkV2ViS2l0LnBhdGNoIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9MYXlvdXRSZWxv
YWRlZFdlYktpdC5wYXRjaAppbmRleCBlMWFjMTMyY2UyMjk1MmFjZDMwZTY2ZjRhMzc3ZDViZmQz
NWRjYWQzLi42MTFkM2YwNTcwYjQxNTU0ODliMjQyYWFmMWU4ODVjYTM4ZjE5Yzg0IDEwMDY0NAot
LS0gYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL0xheW91dFJlbG9hZGVkV2ViS2l0LnBhdGNo
CisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvTGF5b3V0UmVsb2FkZWRXZWJLaXQucGF0
Y2gKQEAgLTEsOCArMSw4IEBACiBkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0u
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKLWluZGV4IDkyMWExMDgyMDZiLi42Nzk3MDNm
YTllOSAxMDA2NDQKK2luZGV4IDg0YmM0NGM3NDUwLi5kM2VhMWUwMmY5YSAxMDA2NDQKIC0tLSBh
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKICsrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
LmgKLUBAIC0xMTE2LDcgKzExMTYsNyBAQAorQEAgLTExMTksNyArMTExOSw3IEBACiAgI2lmICFk
ZWZpbmVkKE5ERUJVRykKICAjZGVmaW5lIEVOQUJMRV9UUkVFX0RFQlVHR0lORyAxCiAgI2Vsc2UK
QEAgLTExLDExICsxMSwxMjYgQEAgaW5kZXggOTIxYTEwODIwNmIuLjY3OTcwM2ZhOWU5IDEwMDY0
NAogICNlbmRpZgogICNlbmRpZgogIAorZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCitpbmRl
eCBmNWQwZTVkMmMzZS4uMzk0NTA5MGFjZjMgMTAwNjQ0CistLS0gYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCisrKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCitAQCAtNTMyLDYgKzUzMiw3IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKKyAgICAgJChXZWJD
b3JlKS9kb20vVGV4dERlY29kZXIuaWRsIFwKKyAgICAgJChXZWJDb3JlKS9kb20vVGV4dEVuY29k
ZXIuaWRsIFwKKyAgICAgJChXZWJDb3JlKS9kb20vVGV4dEV2ZW50LmlkbCBcCisrICAgICQoV2Vi
Q29yZSkvZG9tL0lubGluZVRleHRSdW4uaWRsIFwKKyAgICAgJChXZWJDb3JlKS9kb20vVHJhbnNp
dGlvbkV2ZW50LmlkbCBcCisgICAgICQoV2ViQ29yZSkvZG9tL1RyZWVXYWxrZXIuaWRsIFwKKyAg
ICAgJChXZWJDb3JlKS9kb20vVUlFdmVudC5pZGwgXAorZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKK2luZGV4IDAyZGE0
Y2I0NDNjLi5hYTc1N2ZjYjQyZSAxMDA2NDQKKy0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CisrKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorQEAgLTE3OTgsNyArMTc5OCw5
IEBAIHJlbmRlcmluZy9JbmxpbmVCb3guY3BwCisgcmVuZGVyaW5nL0lubGluZUVsZW1lbnRCb3gu
Y3BwCisgcmVuZGVyaW5nL0lubGluZUZsb3dCb3guY3BwCisgcmVuZGVyaW5nL0lubGluZUl0ZXJh
dG9yLmNwcAorK3JlbmRlcmluZy9JbmxpbmVUZXh0QnJlYWtlci5jcHAKKyByZW5kZXJpbmcvSW5s
aW5lVGV4dEJveC5jcHAKKytyZW5kZXJpbmcvSW5saW5lVGV4dFJ1bkl0ZXJhdG9yLmNwcAorIHJl
bmRlcmluZy9MYXlvdXREaXNhbGxvd2VkU2NvcGUuY3BwCisgcmVuZGVyaW5nL0xheW91dFJlcGFp
bnRlci5jcHAKKyByZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCitkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCitpbmRleCA5YmI1NmYwMWE4MS4u
YWExMDNkOGQ3ODIgMTAwNjQ0CistLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorQEAgLTM5Nyw2ICszOTcsMTAgQEAKKyAJCTExOTM0MDhBMUZFQjM1
NUQwMDkzNUYxRSAvKiBSZW5kZXJUcmVlQnVpbGRlclJ1YnkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExOTM0MDg4MUZFQjM1NUQwMDkzNUYxRSAvKiBS
ZW5kZXJUcmVlQnVpbGRlclJ1YnkuaCAqLzsgfTsKKyAJCTExOTM0MDk3MUZFRDcxNTUwMDkzNUYx
RSAvKiBSZW5kZXJUcmVlQnVpbGRlckZvcm1Db250cm9scy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTE5MzQwOTUxRkVENzE1NTAwOTM1RjFFIC8qIFJl
bmRlclRyZWVCdWlsZGVyRm9ybUNvbnRyb2xzLmggKi87IH07CisgCQkxMTkzNDBBMzFGRUUwMjQw
MDA5MzVGMUUgLyogUmVuZGVyVHJlZUJ1aWxkZXJCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTE5MzQwQTExRkVFMDI0MDAwOTM1RjFFIC8qIFJl
bmRlclRyZWVCdWlsZGVyQmxvY2suaCAqLzsgfTsKKysJCTExQzBDNzlFMjA2OTRBRTEwMEJFM0E4
NCAvKiBJbmxpbmVUZXh0UnVuSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDExQzBDNzk5MjA2OTRBREUwMEJFM0E4NCAvKiBJbmxpbmVUZXh0
UnVuSXRlcmF0b3IuaCAqLzsgfTsKKysJCTExQzBDN0EwMjA2OTRBRTEwMEJFM0E4NCAvKiBJbmxp
bmVUZXh0QnJlYWtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTFDMEM3OUMyMDY5NEFFMDAwQkUzQTg0IC8qIElubGluZVRleHRCcmVha2VyLmggKi87
IH07CisrCQkxMUMwQzdBNTIwNjk0QjBBMDBCRTNBODQgLyogSW5saW5lVGV4dFJ1bi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTFDMEM3QTMyMDY5NEIw
OTAwQkUzQTg0IC8qIElubGluZVRleHRSdW4uaCAqLzsgfTsKKysJCTExQzBDN0E3MjA2OTUzRjcw
MEJFM0E4NCAvKiBKU0lubGluZVRleHRSdW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMTFDMEM3QTYyMDY5NTNGNjAwQkUzQTg0IC8qIEpTSW5saW5l
VGV4dFJ1bi5jcHAgKi87IH07CisgCQkxMUNCMjc4OTIwM0JBNTcwMDA0QTFEQzkgLyogUmVuZGVy
VHJlZUJ1aWxkZXJGdWxsU2NyZWVuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxMUNCMjc4NzIwM0JBNTcwMDA0QTFEQzkgLyogUmVuZGVyVHJlZUJ1aWxk
ZXJGdWxsU2NyZWVuLmggKi87IH07CisgCQkxMUUwNjdFRTFFNjI0NkU1MDAxNjJEMTYgLyogU2lt
cGxlTGluZUxheW91dENvdmVyYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxMUUwNjdFRDFFNjI0NkU1MDAxNjJEMTYgLyogU2ltcGxlTGluZUxheW91
dENvdmVyYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKyAJCTE0MDBEN0E4MTcxMzZFQTcwMDc3Q0UwNSAvKiBTY3JpcHRXcmFwcGFibGVJbmxpbmVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDAwRDdB
NzE3MTM2RUE3MDA3N0NFMDUgLyogU2NyaXB0V3JhcHBhYmxlSW5saW5lcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CitAQCAtNTcwNCw2ICs1NzA4LDEz
IEBACisgCQkxMTkzNDA5NTFGRUQ3MTU1MDA5MzVGMUUgLyogUmVuZGVyVHJlZUJ1aWxkZXJGb3Jt
Q29udHJvbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVHJlZUJ1aWxkZXJGb3JtQ29udHJvbHMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKyAJCTExOTM0MEEwMUZFRTAyNDAwMDkzNUYx
RSAvKiBSZW5kZXJUcmVlQnVpbGRlckJsb2NrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRl
clRyZWVCdWlsZGVyQmxvY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworIAkJMTE5
MzQwQTExRkVFMDI0MDAwOTM1RjFFIC8qIFJlbmRlclRyZWVCdWlsZGVyQmxvY2suaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUmVuZGVyVHJlZUJ1aWxkZXJCbG9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworKwkJMTFDMEM3OTkyMDY5NEFERTAwQkUzQTg0IC8qIElubGluZVRleHRSdW5JdGVyYXRv
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmxpbmVUZXh0UnVuSXRlcmF0
b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKysJCTExQzBDNzlCMjA2OTRBREYwMEJF
M0E4NCAvKiBJbmxpbmVUZXh0QnJlYWtlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBJbmxpbmVUZXh0QnJlYWtlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisrCQkxMUMwQzc5QzIwNjk0QUUwMDBCRTNBODQgLyogSW5saW5lVGV4dEJyZWFrZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lVGV4dEJyZWFrZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKysJCTExQzBDNzlEMjA2OTRBRTAwMEJFM0E4NCAvKiBJ
bmxpbmVUZXh0UnVuSXRlcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSW5saW5lVGV4dFJ1bkl0ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKysJCTExQzBDN0EyMjA2OTRCMDgwMEJFM0E4NCAvKiBJbmxpbmVUZXh0UnVuLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBJbmxpbmVUZXh0UnVuLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKysJCTExQzBDN0EzMjA2OTRCMDkwMEJFM0E4NCAvKiBJbmxpbmVUZXh0UnVuLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZVRleHRSdW4uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKysJCTExQzBDN0E2MjA2OTUzRjYwMEJFM0E4NCAvKiBKU0lu
bGluZVRleHRSdW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNJ
bmxpbmVUZXh0UnVuLmNwcDsgcGF0aCA9IEpTSW5saW5lVGV4dFJ1bi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisgCQkxMUM1RjExNjIwMDNFNzc1MDAwMUFFNjAgLyogUmVuZGVyVHJl
ZUJ1aWxkZXJJbmxpbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVuZGVyVHJlZUJ1aWxkZXJJbmxpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
IAkJMTFDNUYxMTgyMDAzRTc3NjAwMDFBRTYwIC8qIFJlbmRlclRyZWVCdWlsZGVySW5saW5lLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclRyZWVCdWlsZGVySW5saW5l
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisgCQkxMUM1RjExRDIwMDNGNjlFMDAwMUFF
NjAgLyogUmVuZGVyVHJlZUJ1aWxkZXJCbG9ja0Zsb3cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVuZGVyVHJlZUJ1aWxkZXJCbG9ja0Zsb3cuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKK0BAIC0yMjEzMCw2ICsyMjE0MSw3IEBACisgCQlBODNCNzkxMDBDQ0IwMDFC
MDAwQjA4MjUgLyogQ29yZSAqLyA9IHsKKyAJCQlpc2EgPSBQQlhHcm91cDsKKyAJCQljaGlsZHJl
biA9ICgKKysJCQkJMTFDMEM3QTYyMDY5NTNGNjAwQkUzQTg0IC8qIEpTSW5saW5lVGV4dFJ1bi5j
cHAgKi8sCisgCQkJCTdDMzBEOTdFMUY4MTVBQzAwMDI2ODM1NiAvKiBKU0Fib3J0Q29udHJvbGxl
ci5jcHAgKi8sCisgCQkJCTdDMzBEOTgwMUY4MTVBQzEwMDI2ODM1NiAvKiBKU0Fib3J0Q29udHJv
bGxlci5oICovLAorIAkJCQk3QzMwRDk4MjFGODE1QUMyMDAyNjgzNTYgLyogSlNBYm9ydFNpZ25h
bC5jcHAgKi8sCitAQCAtMjU0NjEsNiArMjU0NzMsMTAgQEAKKyAJCUY1MjNEMkYzMDJERTQ0M0Iw
MTg2MzVDQSAvKiByZW5kZXJpbmcgKi8gPSB7CisgCQkJaXNhID0gUEJYR3JvdXA7CisgCQkJY2hp
bGRyZW4gPSAoCisrCQkJCTExQzBDNzlCMjA2OTRBREYwMEJFM0E4NCAvKiBJbmxpbmVUZXh0QnJl
YWtlci5jcHAgKi8sCisrCQkJCTExQzBDNzlDMjA2OTRBRTAwMEJFM0E4NCAvKiBJbmxpbmVUZXh0
QnJlYWtlci5oICovLAorKwkJCQkxMUMwQzc5RDIwNjk0QUUwMDBCRTNBODQgLyogSW5saW5lVGV4
dFJ1bkl0ZXJhdG9yLmNwcCAqLywKKysJCQkJMTFDMEM3OTkyMDY5NEFERTAwQkUzQTg0IC8qIElu
bGluZVRleHRSdW5JdGVyYXRvci5oICovLAorIAkJCQlGRkI2OThDODE4MzJGMTBCMDAxNThBMzEg
LyogbGluZSAqLywKKyAJCQkJNDM5MDQ2QzIxMkRBMjVDRTAwQUY4MEEyIC8qIG1hdGhtbCAqLywK
KyAJCQkJRkQwOEE4NzkxNzVEMzkyNjAwMkNEMzYwIC8qIHNoYXBlcyAqLywKK0BAIC0yNTc1NSw2
ICsyNTc3MSw4IEBACisgCQlGNTIzRDMyNDAyREU0NDc4MDE4NjM1Q0EgLyogZG9tICovID0gewor
IAkJCWlzYSA9IFBCWEdyb3VwOworIAkJCWNoaWxkcmVuID0gKAorKwkJCQkxMUMwQzdBMzIwNjk0
QjA5MDBCRTNBODQgLyogSW5saW5lVGV4dFJ1bi5oICovLAorKwkJCQkxMUMwQzdBMjIwNjk0QjA4
MDBCRTNBODQgLyogSW5saW5lVGV4dFJ1bi5pZGwgKi8sCisgCQkJCUNFMjYxNkE0MTg3RTY1QzEw
MDc5NTVGMyAvKiBpb3MgKi8sCisgCQkJCTJENTAzNjY2MUJDREREQzQwMEUyMEJCMyAvKiBtYWMg
Ki8sCisgCQkJCTUxRUNDM0U0MjAwNTgzMUYwMDQ4M0VBRSAvKiBtZXNzYWdlcG9ydHMgKi8sCitA
QCAtMjY3NDksNiArMjY3NjcsNyBAQAorIAkJCQkzMURDRDI5RDFBQjRGQkRFMDA3MkU4MTcgLyog
QW5pbWF0aW9uVHJpZ2dlci5oIGluIEhlYWRlcnMgKi8sCisgCQkJCTBGNTgwRkFGMTQ5ODAwRDQw
MEZCNUJEOCAvKiBBbmltYXRpb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAorIAkJCQk5MzMw
OURENzA5OUU2NDkyMDA1NkU1ODEgLyogQXBwZW5kTm9kZUNvbW1hbmQuaCBpbiBIZWFkZXJzICov
LAorKwkJCQkxMUMwQzdBNTIwNjk0QjBBMDBCRTNBODQgLyogSW5saW5lVGV4dFJ1bi5oIGluIEhl
YWRlcnMgKi8sCisgCQkJCUExREY1QTk0MUY3RUM0MzIwMDU4QTQ3NyAvKiBBcHBsZVBheUNvbnRh
Y3RGaWVsZC5oIGluIEhlYWRlcnMgKi8sCisgCQkJCUExMkM1OUVFMjAzNUZDOUIwMDEyMjM2QiAv
KiBBcHBsZVBheUVycm9yLmggaW4gSGVhZGVycyAqLywKKyAJCQkJN0M2NTc5RTMxRTAwODI3MDAw
RTNBMjdBIC8qIEFwcGxlUGF5TGluZUl0ZW0uaCBpbiBIZWFkZXJzICovLAorQEAgLTMwMzQ1LDYg
KzMwMzY0LDcgQEAKKyAJCQkJNDk0NUJGRDQxM0NGODA5MDAwQ0MzQjM4IC8qIFRyYW5zZm9ybVN0
YXRlLmggaW4gSGVhZGVycyAqLywKKyAJCQkJRTE3QjQ5MTYxNkE5QjA5NDAwMUM4ODM5IC8qIFRy
YW5zaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCisgCQkJCTQ5RTkxMUQyMEVGODZENDcwMDlE
MENBRiAvKiBUcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAorKwkJ
CQkxMUMwQzdBMDIwNjk0QUUxMDBCRTNBODQgLyogSW5saW5lVGV4dEJyZWFrZXIuaCBpbiBIZWFk
ZXJzICovLAorIAkJCQk4NTRGRTczNzBBMjI5N0JFMDA1OEQ3QUQgLyogVHJhdmVyc2FsLmggaW4g
SGVhZGVycyAqLywKKyAJCQkJMzdGRDQyOTgxMTgzNjg0NjAwOTNDMDI5IC8qIFRyZWVEZXB0aExp
bWl0LmggaW4gSGVhZGVycyAqLywKKyAJCQkJMTRENjRCNUQxMzRBNUI2QjAwRTU4RkRBIC8qIFRy
ZWVTY29wZS5oIGluIEhlYWRlcnMgKi8sCitAQCAtMzA1NTksNiArMzA1NzksNyBAQAorIAkJCQk5
N0FBQkQxRTE0RkEwOUQ1MDA3NDU3QUUgLyogV2ViU29ja2V0Q2hhbm5lbC5oIGluIEhlYWRlcnMg
Ki8sCisgCQkJCTk3QUFCRDFGMTRGQTA5RDUwMDc0NTdBRSAvKiBXZWJTb2NrZXRDaGFubmVsQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKKyAJCQkJNEEzOEJGNTExNEZFMUMwOTAwNjEyNTEyIC8qIFdl
YlNvY2tldERlZmxhdGVGcmFtZXIuaCBpbiBIZWFkZXJzICovLAorKwkJCQkxMUMwQzc5RTIwNjk0
QUUxMDBCRTNBODQgLyogSW5saW5lVGV4dFJ1bkl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKKyAJ
CQkJOTdBQUJEMjExNEZBMDlENTAwNzQ1N0FFIC8qIFdlYlNvY2tldERlZmxhdGVyLmggaW4gSGVh
ZGVycyAqLywKKyAJCQkJOTdBQUJEMjMxNEZBMDlENTAwNzQ1N0FFIC8qIFdlYlNvY2tldEV4dGVu
c2lvbkRpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovLAorIAkJCQk0QTVBMkFEQzE2MUU3RTAwMDA1
ODg5REQgLyogV2ViU29ja2V0RXh0ZW5zaW9uUGFyc2VyLmggaW4gSGVhZGVycyAqLywKK0BAIC0z
MTA0Myw2ICszMTA2NCw3IEBACisgCQkJCTA3MTk0MjdGMUQwODhGMjEwMDJBQTUxRCAvKiBBVkZv
dW5kYXRpb25NSU1FVHlwZUNhY2hlLm1tIGluIFNvdXJjZXMgKi8sCisgCQkJCTA3MDM2M0U1MTgx
QTFDREMwMEMwNzRBNSAvKiBBVk1lZGlhQ2FwdHVyZVNvdXJjZS5tbSBpbiBTb3VyY2VzICovLAor
IAkJCQlDRDMzNkY2MTE3RjlGNjQ3MDBERERDRDAgLyogQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1w
bC5tbSBpbiBTb3VyY2VzICovLAorKwkJCQkxMUMwQzdBNzIwNjk1M0Y3MDBCRTNBODQgLyogSlNJ
bmxpbmVUZXh0UnVuLmNwcCBpbiBTb3VyY2VzICovLAorIAkJCQkwNzAzNjNFNzE4MUExQ0RDMDBD
MDc0QTUgLyogQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0gaW4gU291cmNlcyAqLywKKyAJCQkJN0E0
NTAzMkYxOERCNzE3MjAwMzc3QjM0IC8qIEJ1ZmZlcmVkTGluZVJlYWRlci5jcHAgaW4gU291cmNl
cyAqLywKKyAJCQkJMDc1Mzg2MDIxNDQ4OUU5ODAwQjc4NDUyIC8qIENhY2hlZFRleHRUcmFjay5j
cHAgaW4gU291cmNlcyAqLywKIGRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwCi1pbmRleCAyMDllMjlhYTc0MC4uNDExMzUzZTU4NzEgMTAw
NjQ0CitpbmRleCA5MjNhYjU0ZDRmMi4uMTIwMDRiNWFmYmUgMTAwNjQ0CiAtLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAogKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKLUBAIC00MTE0LDYg
KzQxMTQsMzYgQEAgU3RyaW5nIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVy
dHlWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpIGMKK0BAIC00MTEzLDYgKzQxMTMsMzYg
QEAgU3RyaW5nIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlWYWx1ZShD
U1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQpIGMKICAgICAgcmV0dXJuIHZhbHVlLT5jc3NUZXh0KCk7
CiAgfQogIApAQCAtMTE3LDExICsyMzIsMTM4IEBAIGluZGV4IDA0MTk2NDA1ZGRmLi41OTk4MTIw
NWNhZSAxMDA2NDQKICAgICAgU3RyaW5nIGdldFByb3BlcnR5UHJpb3JpdHkoY29uc3QgU3RyaW5n
JiBwcm9wZXJ0eU5hbWUpIGZpbmFsOwogICAgICBTdHJpbmcgZ2V0UHJvcGVydHlTaG9ydGhhbmQo
Y29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUpIGZpbmFsOwogICAgICBib29sIGlzUHJvcGVydHlJ
bXBsaWNpdChjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSkgZmluYWw7CitkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0lubGluZVRleHRSdW4uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9J
bmxpbmVUZXh0UnVuLmgKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMC4u
N2FlNDg2NDlmYmQKKy0tLSAvZGV2L251bGwKKysrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Jbmxp
bmVUZXh0UnVuLmgKK0BAIC0wLDAgKzEsNzkgQEAKKysvKgorKyAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrICoKKysgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKysg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKysgKiBhcmUgbWV0OgorKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisrICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisrICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisrICoK
KysgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisrICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisrICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKysgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisrICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKysgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisrICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorKyAqLworKworKyNwcmFnbWEgb25jZQorKworKyNpbmNsdWRlICJJbmxpbmVUZXh0UnVuSXRl
cmF0b3IuaCIKKysjaW5jbHVkZSA8d3RmL1JlZi5oPgorKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorKworK25hbWVzcGFjZSBXZWJDb3JlIHsKKysKKytjbGFzcyBJbmxpbmVUZXh0UnVuIDog
cHVibGljIFJlZkNvdW50ZWQ8SW5saW5lVGV4dFJ1bj4geworKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKKytwdWJsaWM6CisrICAgIHN0YXRpYyBSZWY8SW5saW5lVGV4dFJ1bj4gY3JlYXRl
KHVuc2lnbmVkIHN0YXJ0UG9zaXRpb24sIHVuc2lnbmVkIGVuZFBvc2l0aW9uLCBkb3VibGUgd2lk
dGgsIHVuc2lnbmVkIHR5cGUsIGJvb2wgaXNDb2xsYXBzZWQsIGJvb2wgaXNDb2xsYXBzaWJsZSkK
KysgICAgICAgIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5saW5lVGV4dFJ1bihzdGFydFBvc2l0
aW9uLCBlbmRQb3NpdGlvbiwgd2lkdGgsIHR5cGUsIGlzQ29sbGFwc2VkLCBpc0NvbGxhcHNpYmxl
KSk7IH0KKysKKysgICAgc3RhdGljIFJlZjxJbmxpbmVUZXh0UnVuPiBjcmVhdGUoY29uc3QgTGF5
b3V0UmVsb2FkZWQ6OklubGluZVRleHRSdW5JdGVyYXRvcjo6UnVuJiBydW4pCisrICAgICAgICB7
IHJldHVybiBhZG9wdFJlZigqbmV3IElubGluZVRleHRSdW4ocnVuLnN0YXJ0KCksIHJ1bi5lbmQo
KSwgcnVuLndpZHRoKCksIHJ1bi50eXBlKCksIHJ1bi5pc0NvbGxhcHNlZCgpLCBydW4uaXNDb2xs
YXBzaWJsZSgpKSk7IH0KKysKKysgICAgZW51bSBUeXBlIHsgSW52YWxpZCwgQ29udGVudEVuZCwg
U29mdExpbmVCcmVhaywgV2hpdGVzcGFjZSwgTm9uV2hpdGVzcGFjZSwgTWl4ZWQgfTsKKysgICAg
dm9pZCBzZXRTdGFydFBvc2l0aW9uKHVuc2lnbmVkIHBvc2l0aW9uKSB7IG1fc3RhcnRQb3NpdGlv
biA9IHBvc2l0aW9uOyB9CisrICAgIHZvaWQgc2V0RW5kUG9zaXRpb24odW5zaWduZWQgcG9zaXRp
b24pIHsgbV9lbmRQb3NpdGlvbiA9IHBvc2l0aW9uOyB9CisrICAgIHZvaWQgc2V0V2lkdGgoZG91
YmxlIHdpZHRoKSB7IG1fd2lkdGggPSB3aWR0aDsgfQorKyAgICB2b2lkIHNldFR5cGVNaXhlZCgp
IHsgbV90eXBlID0gSW5saW5lVGV4dFJ1bjo6TWl4ZWQ7IH0KKysgICAgdm9pZCBzZXRJc0NvbGxh
cHNlZCgpIHsgbV9pc0NvbGxhcHNlZCA9IHRydWU7IH0KKysKKysgICAgdW5zaWduZWQgc3RhcnRQ
b3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRQb3NpdGlvbjsgfQorKyAgICB1bnNpZ25l
ZCBlbmRQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZW5kUG9zaXRpb247IH0KKysgICAgZG91
YmxlIHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV93aWR0aDsgfQorKyAgICB1bnNpZ25lZCB0eXBl
KCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisrICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0
IHsgcmV0dXJuIGVuZFBvc2l0aW9uKCkgLSBzdGFydFBvc2l0aW9uKCk7IH0KKysgICAgYm9vbCBp
c0NvbGxhcHNlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNDb2xsYXBzZWQ7IH0KKysgICAgYm9vbCBp
c0NvbGxhcHNpYmxlKCkgY29uc3QgeyByZXR1cm4gbV9pc0NvbGxhcHNpYmxlOyB9CisrCisrcHJv
dGVjdGVkOgorKyAgICBJbmxpbmVUZXh0UnVuKHVuc2lnbmVkIHN0YXJ0UG9zaXRpb24sIHVuc2ln
bmVkIGVuZFBvc2l0aW9uLCBkb3VibGUgd2lkdGgsIHVuc2lnbmVkIHR5cGUsIGJvb2wgaXNDb2xs
YXBzZWQsIGJvb2wgaXNDb2xsYXBzaWJsZSkKKysgICAgICAgIDogbV9zdGFydFBvc2l0aW9uKHN0
YXJ0UG9zaXRpb24pCisrICAgICAgICAsIG1fZW5kUG9zaXRpb24oZW5kUG9zaXRpb24pCisrICAg
ICAgICAsIG1fd2lkdGgod2lkdGgpCisrICAgICAgICAsIG1fdHlwZSh0eXBlKQorKyAgICAgICAg
LCBtX2lzQ29sbGFwc2VkKGlzQ29sbGFwc2VkKQorKyAgICAgICAgLCBtX2lzQ29sbGFwc2libGUo
aXNDb2xsYXBzaWJsZSkKKysgICAgeworKyAgICB9CisrCisrICAgIElubGluZVRleHRSdW4oKSA9
IGRlZmF1bHQ7CisrCisrICAgIHVuc2lnbmVkIG1fc3RhcnRQb3NpdGlvbiB7IDAgfTsKKysgICAg
dW5zaWduZWQgbV9lbmRQb3NpdGlvbiB7IDAgfTsKKysgICAgZG91YmxlIG1fd2lkdGggeyAwIH07
CisrICAgIHVuc2lnbmVkIG1fdHlwZSB7IDAgfTsKKysgICAgYm9vbCBtX2lzQ29sbGFwc2VkIHsg
ZmFsc2UgfTsKKysgICAgYm9vbCBtX2lzQ29sbGFwc2libGUgeyBmYWxzZSB9OworK307CisrCisr
fQorZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9JbmxpbmVUZXh0UnVuLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9JbmxpbmVUZXh0UnVuLmlkbAorbmV3IGZpbGUgbW9kZSAxMDA2NDQK
K2luZGV4IDAwMDAwMDAwMDAwLi4yMGMwMWI4Y2ZmNQorLS0tIC9kZXYvbnVsbAorKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0lubGluZVRleHRSdW4uaWRsCitAQCAtMCwwICsxLDM2IEBACisrLyoK
KysgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
KyAqCisrICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisrICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisrICogYXJlIG1ldDoKKysgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKysgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKysg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorKyAqCisrICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKysgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKysgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisrICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKysgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKysgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisrICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKysgKi8KKysKKytbCisrICAgIE5vSW50ZXJmYWNlT2Jq
ZWN0LAorKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorK10gaW50ZXJmYWNlIElubGlu
ZVRleHRSdW4geworKyAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBzdGFydFBvc2l0aW9uOwor
KyAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBlbmRQb3NpdGlvbjsKKysgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGRvdWJsZSB3aWR0aDsKKysgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgdHlw
ZTsKKysgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNDb2xsYXBzZWQ7CisrICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzQ29sbGFwc2libGU7CisrfTsKIGRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAKLWluZGV4IDJkODk5ZTc2YjlhLi43MTc1MWM4NjJhMSAxMDA2NDQKK2luZGV4IDVmYzRjYjE2
NjIwLi5kZWYwMThmZGYzZiAxMDA2NDQKIC0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cAogKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCi1AQCAtNTE0LDYgKzUxNCwyNyBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBOb2RlOjpiZWZvcmUoVmVjdG9yPE5vZGVPclN0cmluZz4mJiBu
b2RlT3JTdHJpbmdWZWN0b3IpCitAQCAtNTE3LDYgKzUxNywyNyBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBOb2RlOjpiZWZvcmUoVmVjdG9yPE5vZGVPclN0cmluZz4mJiBub2RlT3JTdHJpbmdWZWN0b3Ip
CiAgICAgIHJldHVybiBwYXJlbnQtPmluc2VydEJlZm9yZSgqbm9kZSwgdmlhYmxlUHJldmlvdXNT
aWJsaW5nLmdldCgpKTsKICB9CiAgCkBAIC0xNTAsMTAgKzM5MiwxMCBAQCBpbmRleCAyZDg5OWU3
NmI5YS4uNzE3NTFjODYyYTEgMTAwNjQ0CiAgewogICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4g
cGFyZW50ID0gcGFyZW50Tm9kZSgpOwogZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCi1pbmRleCBhY2VlNDg2YTAwZC4uNTE0
YjI5MTFkM2YgMTAwNjQ0CitpbmRleCA3NDg4ZjVkNDdkMi4uY2IwYjA1NDk5N2YgMTAwNjQ0CiAt
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCiArKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5oCi1AQCAtMTc4LDcgKzE3OCwxMSBAQCBwdWJsaWM6CitAQCAtMTc5LDcgKzE3OSwxMSBA
QCBwdWJsaWM6CiAgCiAgICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyB0ZXh0Q29udGVudChib29s
IGNvbnZlcnRCUnNUb05ld2xpbmVzID0gZmFsc2UpIGNvbnN0OwogICAgICBXRUJDT1JFX0VYUE9S
VCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRUZXh0Q29udGVudChjb25zdCBTdHJpbmcmKTsKQEAgLTE4
Miw3ICs0MjQsNyBAQCBpbmRleCAyNTE3N2E4Y2Q0My4uMjk0MzA3ZGM4MTUgMTAwNjQ0CiAgICAg
IERPTVN0cmluZz8gbG9va3VwTmFtZXNwYWNlVVJJKERPTVN0cmluZz8gcHJlZml4KTsKICAgICAg
Ym9vbGVhbiBpc0RlZmF1bHROYW1lc3BhY2UoRE9NU3RyaW5nPyBuYW1lc3BhY2VVUkkpOwogZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcAotaW5kZXggYTYyZTIwMDU1MDUuLmE3MTk0N2NjNTRmIDEw
MDY0NAoraW5kZXggMzFmYjk1YzRjNjIuLjgyZTUzOGZjNjhmIDEwMDY0NAogLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCiArKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAKIEBAIC0yOSw2ICsyOSw3IEBACkBAIC0xOTMsMTUgKzQzNSwzNSBAQCBpbmRl
eCBhNjJlMjAwNTUwNS4uYTcxOTQ3Y2M1NGYgMTAwNjQ0CiAgI2luY2x1ZGUgIkNTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5oIgogICNpbmNsdWRlICJDU1NSdWxlLmgiCiAgI2luY2x1ZGUgIkNT
U1J1bGVMaXN0LmgiCi1AQCAtNzgsNiArNzksNyBAQAorQEAgLTYzLDkgKzY0LDExIEBACisgI2lu
Y2x1ZGUgIkZyYW1lVHJlZS5oIgorICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyAjaW5jbHVkZSAi
SGlzdG9yeS5oIgorKyNpbmNsdWRlICJJbmxpbmVUZXh0UnVuSXRlcmF0b3IuaCIKKyAjaW5jbHVk
ZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCisgI2luY2x1ZGUgIkpTRE9NV2luZG93QmFz
ZS5oIgorICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKysjaW5jbHVkZSAiSW5s
aW5lVGV4dEJyZWFrZXIuaCIKKyAjaW5jbHVkZSAiTG9jYXRpb24uaCIKKyAjaW5jbHVkZSAiTWFp
bkZyYW1lLmgiCisgI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0LmgiCitAQCAtNzgsNiArODEsNyBA
QAogICNpbmNsdWRlICJQYWdlQ29uc29sZUNsaWVudC5oIgogICNpbmNsdWRlICJQYWdlVHJhbnNp
dGlvbkV2ZW50LmgiCiAgI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCiArI2luY2x1ZGUgIlJlbmRl
clZpZXcuaCIKICAjaW5jbHVkZSAiUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaCIKICAj
aW5jbHVkZSAiUmVzb3VyY2VMb2FkSW5mby5oIgotICNpbmNsdWRlICJSdW50aW1lQXBwbGljYXRp
b25DaGVja3MuaCIKLUBAIC0xMTUsNiArMTE3LDcgQEAKKyAjaW5jbHVkZSAiUmVzb3VyY2VMb2Fk
T2JzZXJ2ZXIuaCIKK0BAIC0xMDAsNiArMTA0LDcgQEAKKyAjaW5jbHVkZSAiU3R5bGVSZXNvbHZl
ci5oIgorICNpbmNsdWRlICJTdHlsZVNjb3BlLmgiCisgI2luY2x1ZGUgIlN1ZGRlblRlcm1pbmF0
aW9uLmgiCisrI2luY2x1ZGUgIklubGluZVRleHRSdW4uaCIKKyAjaW5jbHVkZSAiVVJMLmgiCisg
I2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCisgI2luY2x1ZGUgIlZpc3VhbFZpZXdw
b3J0LmgiCitAQCAtMTE2LDYgKzEyMSw3IEBACiAgI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgogICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAgI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CkBA
IC0yMDksOCArNDcxLDggQEAgaW5kZXggYTYyZTIwMDU1MDUuLmE3MTk0N2NjNTRmIDEwMDY0NAog
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KICAKICAjaWYgRU5BQkxFKFVTRVJfTUVT
U0FHRV9IQU5ETEVSUykKLUBAIC0xMzc3LDYgKzEzODAsMjUgQEAgU3RyaW5nIERPTVdpbmRvdzo6
bmFtZSgpIGNvbnN0Ci0gICAgIHJldHVybiBtX2ZyYW1lLT50cmVlKCkubmFtZSgpOworQEAgLTEz
NTcsNiArMTM2Myw0MSBAQCBpbnQgRE9NV2luZG93OjpzY3JvbGxZKCkgY29uc3QKKyAgICAgcmV0
dXJuIHZpZXctPm1hcEZyb21MYXlvdXRUb0NTU1VuaXRzKHZpZXctPmNvbnRlbnRzU2Nyb2xsUG9z
aXRpb24oKS55KCkpOwogIH0KICAKICtTdHJpbmcgRE9NV2luZG93OjpzaW1wbGlmaWVkUmVuZGVy
VHJlZSgpIGNvbnN0CkBAIC0yMjMsNiArNDg1LDIyIEBAIGluZGV4IGE2MmUyMDA1NTA1Li5hNzE5
NDdjYzU0ZiAxMDA2NDQKICsgICAgcmV0dXJuIG1fZnJhbWUtPnZpZXcoKS0+cmVuZGVyVmlldygp
LT5yZW5kZXJUcmVlU3RydWN0dXJlKCk7CiArfQogKworK1ZlY3RvcjxSZWY8SW5saW5lVGV4dFJ1
bj4+IERPTVdpbmRvdzo6Y29sbGVjdFRleHRSdW5zKGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3Qg
Tm9kZSYgY29udGFpbmVyLCBmbG9hdCBhdmFpbGFibGVTcGFjZSkKKyt7CisrICAgIFZlY3RvcjxS
ZWY8SW5saW5lVGV4dFJ1bj4+IHRleHRSdW5zOworKyAgICBMYXlvdXRSZWxvYWRlZDo6SW5saW5l
VGV4dFJ1bkl0ZXJhdG9yIHRleHRJdGVyYXRvcih0ZXh0LCBjb250YWluZXIucmVuZGVyZXIoKS0+
c3R5bGUoKSk7CisrICAgIHdoaWxlICh0cnVlKSB7CisrICAgICAgICBhdXRvIHJ1biA9IHRleHRJ
dGVyYXRvci5uZXh0UnVuKCk7CisrICAgICAgICBpZiAocnVuLnR5cGUoKSA9PSBMYXlvdXRSZWxv
YWRlZDo6SW5saW5lVGV4dFJ1bkl0ZXJhdG9yOjpSdW46OkNvbnRlbnRFbmQpCisrICAgICAgICAg
ICAgYnJlYWs7CisrICAgICAgICB0ZXh0UnVucy5hcHBlbmQoSW5saW5lVGV4dFJ1bjo6Y3JlYXRl
KHJ1bikpOworKyAgICB9CisrICAgIGlmIChzdGQ6OmlzbmFuKGF2YWlsYWJsZVNwYWNlKSkKKysg
ICAgICAgIHJldHVybiB0ZXh0UnVuczsKKysKKysgICAgcmV0dXJuIExheW91dFJlbG9hZGVkOjpJ
bmxpbmVUZXh0QnJlYWtlcjo6Y29sbGVjdFJ1bnModGV4dFJ1bnMsIHRleHQsIGF2YWlsYWJsZVNw
YWNlLCBjb250YWluZXIucmVuZGVyZXIoKS0+c3R5bGUoKSk7CisrfQorKwogK2ludCBET01XaW5k
b3c6Om5leHRCcmVha2luZ09wcG9ydHVuaXR5KGNvbnN0IFN0cmluZyYgdGV4dCwgdW5zaWduZWQg
c3RhcnRQb3NpdGlvbikKICt7CiArICAgIExhenlMaW5lQnJlYWtJdGVyYXRvciBsaW5lQnJlYWtJ
dGVyYXRvcih0ZXh0LCBtX2ZyYW1lLT52aWV3KCktPnJlbmRlclZpZXcoKS0+c3R5bGUoKS5sb2Nh
bGUoKSk7CkBAIC0yMzIsMzUgKzUxMCw1MyBAQCBpbmRleCBhNjJlMjAwNTUwNS4uYTcxOTQ3Y2M1
NGYgMTAwNjQ0CiArICAgIHJldHVybiBuZXh0QnJlYWthYmxlUG9zaXRpb25XaXRob3V0U2hvcnRj
dXQobGluZUJyZWFrSXRlcmF0b3IsIHN0YXJ0UG9zaXRpb24pOwogK30KICsKLSB2b2lkIERPTVdp
bmRvdzo6c2V0TmFtZShjb25zdCBTdHJpbmcmIHN0cmluZykKKyBib29sIERPTVdpbmRvdzo6Y2xv
c2VkKCkgY29uc3QKICB7Ci0gICAgIGlmICghbV9mcmFtZSkKKyAgICAgcmV0dXJuICFtX2ZyYW1l
OwogZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCi1pbmRleCA2NDIyYTQ4NTE3YS4uZmNjYzdlZjFhOWYg
MTAwNjQ0CitpbmRleCA2NDIyYTQ4NTE3YS4uMzgxNTA0YzRhMmEgMTAwNjQ0CiAtLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCiArKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5oCi1AQCAtMTkxLDYgKzE5MSwxMCBAQCBwdWJsaWM6CitAQCAtNDgsNyArNDgsNiBA
QCB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgU3Ryb25nOworIH0KKyAKKyBuYW1lc3BhY2UgV2Vi
Q29yZSB7CistCisgY2xhc3MgQmFyUHJvcDsKKyBjbGFzcyBDU1NSdWxlTGlzdDsKKyBjbGFzcyBD
U1NTdHlsZURlY2xhcmF0aW9uOworQEAgLTc3LDYgKzc2LDcgQEAgY2xhc3MgU2NoZWR1bGVkQWN0
aW9uOworIGNsYXNzIFNjcmVlbjsKKyBjbGFzcyBTdG9yYWdlOworIGNsYXNzIFN0eWxlTWVkaWE7
CisrY2xhc3MgSW5saW5lVGV4dFJ1bjsKKyBjbGFzcyBWaXN1YWxWaWV3cG9ydDsKKyBjbGFzcyBX
ZWJLaXROYW1lc3BhY2U7CisgY2xhc3MgV2ViS2l0UG9pbnQ7CitAQCAtMTkxLDYgKzE5MSwxMSBA
QCBwdWJsaWM6CiAgICAgIFN0cmluZyBkZWZhdWx0U3RhdHVzKCkgY29uc3Q7CiAgICAgIHZvaWQg
c2V0RGVmYXVsdFN0YXR1cyhjb25zdCBTdHJpbmcmKTsKICAKICsgICAgU3RyaW5nIHNpbXBsaWZp
ZWRSZW5kZXJUcmVlKCkgY29uc3Q7CiArICAgIFN0cmluZyByZW5kZXJUcmVlU3RydWN0dXJlKCkg
Y29uc3Q7CiArICAgIGludCBuZXh0QnJlYWtpbmdPcHBvcnR1bml0eShjb25zdCBTdHJpbmcmIHRl
eHQsIHVuc2lnbmVkIHN0YXJ0UG9zaXRpb24pOworKyAgICBWZWN0b3I8UmVmPElubGluZVRleHRS
dW4+PiBjb2xsZWN0VGV4dFJ1bnMoY29uc3QgU3RyaW5nJiwgY29uc3QgTm9kZSYsIGZsb2F0IGF2
YWlsYWJsZVNwYWNlKTsKICsKICAgICAgLy8gU2VsZi1yZWZlcmVudGlhbCBhdHRyaWJ1dGVzCiAg
CiAgICAgIERPTVdpbmRvdyogc2VsZigpIGNvbnN0OwogZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93Lmlk
bAotaW5kZXggODAxYTBmYjNiYjMuLmQwMWUxYmY0YTZkIDEwMDY0NAoraW5kZXggODAxYTBmYjNi
YjMuLjVmMGVhZTdiMWZlIDEwMDY0NAogLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaWRsCiArKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKLUBAIC04Miw2
ICs4MiwxMCBAQCB0eXBlZGVmIFVTVlN0cmluZyBDU1NPTVN0cmluZzsKK0BAIC04Miw2ICs4Miwx
MSBAQCB0eXBlZGVmIFVTVlN0cmluZyBDU1NPTVN0cmluZzsKICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIE5hdmlnYXRvciBuYXZpZ2F0b3I7CiAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01BcHBs
aWNhdGlvbkNhY2hlIGFwcGxpY2F0aW9uQ2FjaGU7CiAgCiArICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgc2ltcGxpZmllZFJlbmRlclRyZWU7CiArICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgcmVuZGVyVHJlZVN0cnVjdHVyZTsKICsgICAgbG9uZyBuZXh0QnJlYWtpbmdP
cHBvcnR1bml0eShET01TdHJpbmcgdGV4dCwgdW5zaWduZWQgbG9uZyBzdGFydFBvc2l0aW9uKTsK
KysgICAgc2VxdWVuY2U8SW5saW5lVGV4dFJ1bj4gY29sbGVjdFRleHRSdW5zKERPTVN0cmluZyB0
ZXh0LCBOb2RlIGNvbnRhaW5lck5vZGUsIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBmbG9hdCBhdmFp
bGFibGVTcGFjZSA9IE5hTik7CiArCiAgICAgIC8vIFVzZXIgcHJvbXB0cy4KICAgICAgdm9pZCBh
bGVydCgpOwpAQCAtMzQzLDYgKzYzOSw3MjAgQEAgaW5kZXggMGIyNjQ0NDkwM2YuLjU5NTIwM2Iy
MDFlIDEwMDY0NAogICAgICBjb25zdCBjaGFyKiBib3hOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
I2VuZGlmCiAgCitkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRl
eHRCcmVha2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0QnJlYWtl
ci5jcHAKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMC4uNGFiYmY0Mjkx
NDkKKy0tLSAvZGV2L251bGwKKysrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVU
ZXh0QnJlYWtlci5jcHAKK0BAIC0wLDAgKzEsMjk0IEBACisrLyoKKysgKiBDb3B5cmlnaHQgKEMp
IDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKyAqCisrICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisrICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisrICogYXJlIG1ldDoKKysgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KysgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKysgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
KyAqCisrICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKysgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKysgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisrICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKysgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKysgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisrICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKysgKi8KKysKKysjaW5jbHVkZSAiY29uZmlnLmgiCisrI2luY2x1ZGUgIklubGluZVRl
eHRCcmVha2VyLmgiCisrCisrI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisrI2luY2x1ZGUgIlJl
bmRlclN0eWxlLmgiCisrCisrbmFtZXNwYWNlIFdlYkNvcmUgeworK25hbWVzcGFjZSBMYXlvdXRS
ZWxvYWRlZCB7CisrCisrSW5saW5lVGV4dEJyZWFrZXI6OlN0eWxlOjpTdHlsZShjb25zdCBSZW5k
ZXJTdHlsZSYgc3R5bGUpCisrICAgIDogZm9udChzdHlsZS5mb250Q2FzY2FkZSgpKQorKyAgICAs
IGhhc0tlcm5pbmdPckxpZ2F0dXJlcyhmb250LmVuYWJsZUtlcm5pbmcoKSB8fCBmb250LnJlcXVp
cmVzU2hhcGluZygpKQorKyAgICAsIGNvbGxhcHNlV2hpdGVzcGFjZShzdHlsZS5jb2xsYXBzZVdo
aXRlU3BhY2UoKSkKKysgICAgLCBwcmVzZXJ2ZU5ld2xpbmUoc3R5bGUucHJlc2VydmVOZXdsaW5l
KCkpCisrICAgICwgd3JhcExpbmVzKHN0eWxlLmF1dG9XcmFwKCkpCisrICAgICwgYnJlYWtBbnlX
b3JkT25PdmVyZmxvdyhzdHlsZS53b3JkQnJlYWsoKSA9PSBCcmVha0FsbFdvcmRCcmVhayAmJiB3
cmFwTGluZXMpCisrICAgICwgYnJlYWtGaXJzdFdvcmRPbk92ZXJmbG93KGJyZWFrQW55V29yZE9u
T3ZlcmZsb3cgfHwgKHN0eWxlLmJyZWFrV29yZHMoKSAmJiAod3JhcExpbmVzIHx8IHByZXNlcnZl
TmV3bGluZSkpKQorKyAgICAsIHdvcmRTcGFjaW5nKGZvbnQud29yZFNwYWNpbmcoKSkKKysgICAg
LCB0YWJXaWR0aChjb2xsYXBzZVdoaXRlc3BhY2UgPyAwIDogc3R5bGUudGFiU2l6ZSgpKQorK3sK
Kyt9CisrCisrSW5saW5lVGV4dEJyZWFrZXI6OkxpbmVTdGF0ZTo6TGluZVN0YXRlKGNvbnN0IElu
bGluZVRleHRCcmVha2VyJiBsaW5lQnJlYWtlciwgZmxvYXQgYXZhaWxhYmxlV2lkdGgpCisrICAg
IDogbV9saW5lQnJlYWtlcihsaW5lQnJlYWtlcikKKysgICAgLCBtX2F2YWlsYWJsZVdpZHRoKGF2
YWlsYWJsZVdpZHRoKQorK3sKKyt9CisrCisrZmxvYXQgSW5saW5lVGV4dEJyZWFrZXI6OkxpbmVT
dGF0ZTo6YXZhaWxhYmxlV2lkdGgoKSBjb25zdAorK3sKKysgICAgcmV0dXJuIG1fYXZhaWxhYmxl
V2lkdGg7CisrfQorKworK2Jvb2wgSW5saW5lVGV4dEJyZWFrZXI6OkxpbmVTdGF0ZTo6aGFzVHJh
aWxpbmdXaGl0ZXNwYWNlKCkgY29uc3QKKyt7CisrICAgIHJldHVybiBtX2hhc1RyYWlsaW5nV2hp
dGVzcGFjZTsKKyt9CisrCisrYm9vbCBJbmxpbmVUZXh0QnJlYWtlcjo6TGluZVN0YXRlOjppc1do
aXRlc3BhY2VPbmx5KCkgY29uc3QKKyt7CisrICAgIGZvciAoYXV0byYgcnVuIDogbV9ydW5zKSB7
CisrICAgICAgICBpZiAocnVuLT50eXBlKCkgIT0gSW5saW5lVGV4dFJ1bjo6V2hpdGVzcGFjZSkK
KysgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisrICAgIH0KKysgICAgcmV0dXJuIHRydWU7Cisr
fQorKworK2Jvb2wgSW5saW5lVGV4dEJyZWFrZXI6OkxpbmVTdGF0ZTo6Zml0cyhmbG9hdCBleHRy
YSkgY29uc3QKKyt7CisrICAgIHJldHVybiBtX2F2YWlsYWJsZVdpZHRoID49IHdpZHRoKCkgKyBl
eHRyYTsKKyt9CisrCisrZmxvYXQgSW5saW5lVGV4dEJyZWFrZXI6OkxpbmVTdGF0ZTo6d2lkdGgo
KSBjb25zdAorK3sKKysgICAgZmxvYXQgd2lkdGggPSAwOworKyAgICBmb3IgKGF1dG8mIHJ1biA6
IG1fcnVucykKKysgICAgICAgIHdpZHRoICs9IG1fbGluZUJyZWFrZXIudGV4dFdpZHRoKHJ1bi0+
c3RhcnRQb3NpdGlvbigpLCBydW4tPmVuZFBvc2l0aW9uKCkpOworKyAgICByZXR1cm4gd2lkdGg7
CisrfQorKworK2Jvb2wgSW5saW5lVGV4dEJyZWFrZXI6OkxpbmVTdGF0ZTo6aXNFbXB0eSgpIGNv
bnN0CisreworKyAgICByZXR1cm4gIW1fcnVucy5zaXplKCk7CisrfQorKworK3N0YXRpYyBpbmxp
bmUgdW5zaWduZWQgZW5kUG9zaXRpb25Gb3JDb2xsYXBzZWRSdW4oY29uc3QgSW5saW5lVGV4dFJ1
biYgcnVuKQorK3sKKysgICAgaWYgKHJ1bi5pc0NvbGxhcHNlZCgpKQorKyAgICAgICAgcmV0dXJu
IHJ1bi5zdGFydFBvc2l0aW9uKCkgKyAxOworKyAgICByZXR1cm4gcnVuLmVuZFBvc2l0aW9uKCk7
CisrfQorKworK3ZvaWQgSW5saW5lVGV4dEJyZWFrZXI6OkxpbmVTdGF0ZTo6YXBwZW5kUnVuKGNv
bnN0IElubGluZVRleHRSdW4mIHJ1bikKKyt7CisrICAgIC8vIEFkanVzdCBlbmQgcG9zaXRpb24g
d2hpbGUgY29sbGFwc2luZy4KKysgICAgdW5zaWduZWQgZW5kUG9zaXRpb24gPSBlbmRQb3NpdGlv
bkZvckNvbGxhcHNlZFJ1bihydW4pOworKyAgICBpZiAocnVuLnR5cGUoKSA9PSBJbmxpbmVUZXh0
UnVuOjpOb25XaGl0ZXNwYWNlKQorKyAgICAgICAgbV9sYXN0Tm9uZVdoaXRlc3BhY2VQb3NpdGlv
biA9IGVuZFBvc2l0aW9uOworKyAgICAvLyBOZXcgbGluZSBuZWVkcyBuZXcgcnVuLgorKyAgICBp
ZiAoIW1fcnVucy5zaXplKCkpIHsKKysgICAgICAgIG1fcnVucy5hcHBlbmQoSW5saW5lVGV4dFJ1
bjo6Y3JlYXRlKHJ1bi5zdGFydFBvc2l0aW9uKCksIGVuZFBvc2l0aW9uLCAwLCBydW4udHlwZSgp
LCBydW4uaXNDb2xsYXBzZWQoKSwgcnVuLmlzQ29sbGFwc2libGUoKSkpOworKyAgICB9IGVsc2Ug
eworKyAgICAgICAgLy8gQWR2YW5jZSBsYXN0IGNvbXBsZXRlZCBmcmFnbWVudCB3aGVuIHRoZSBw
cmV2aW91cyBmcmFnbWVudCBpcyBhbGwgc2V0IChpbmNsdWRpbmcgbXVsdGlwbGUgcGFydHMgYWNy
b3NzIHJlbmRlcmVycykKKysgICAgICAgIGlmIChtX3J1bnMubGFzdCgpLT5pc0NvbGxhcHNpYmxl
KCkgJiYgcnVuLmlzQ29sbGFwc2libGUoKSkgeworKyAgICAgICAgICAgIC8vIFRoaXMgZnJhZ21l
bnQgaXMgY29sbGFwc2VkIGNvbXBsZXRlbHkuIE5vIHJ1biBpcyBuZWVkZWQuCisrICAgICAgICAg
ICAgcmV0dXJuOworKyAgICAgICAgfQorKyAgICAgICAgYXV0byYgbGFzdFJ1biA9IG1fcnVucy5s
YXN0KCk7CisrICAgICAgICBpZiAobGFzdFJ1bi0+aXNDb2xsYXBzZWQoKSkKKysgICAgICAgICAg
ICBtX3J1bnMuYXBwZW5kKElubGluZVRleHRSdW46OmNyZWF0ZShydW4uc3RhcnRQb3NpdGlvbigp
LCBlbmRQb3NpdGlvbiwgMCwgcnVuLnR5cGUoKSwgcnVuLmlzQ29sbGFwc2VkKCksIHJ1bi5pc0Nv
bGxhcHNpYmxlKCkpKTsKKysgICAgICAgIGVsc2UgeworKyAgICAgICAgICAgIGxhc3RSdW4tPnNl
dEVuZFBvc2l0aW9uKGVuZFBvc2l0aW9uKTsKKysgICAgICAgICAgICBsYXN0UnVuLT5zZXRUeXBl
TWl4ZWQoKTsKKysgICAgICAgICAgICBpZiAocnVuLmlzQ29sbGFwc2VkKCkpCisrICAgICAgICAg
ICAgICAgIGxhc3RSdW4tPnNldElzQ29sbGFwc2VkKCk7CisrICAgICAgICB9CisrICAgIH0KKysg
ICAgbV9oYXNUcmFpbGluZ1doaXRlc3BhY2UgPSBydW4udHlwZSgpID09IElubGluZVRleHRSdW46
OldoaXRlc3BhY2U7CisrfQorKworK3ZvaWQgSW5saW5lVGV4dEJyZWFrZXI6OkxpbmVTdGF0ZTo6
cmVtb3ZlVHJhaWxpbmdXaGl0ZXNwYWNlKCkKKyt7CisrICAgIGlmICghbV9oYXNUcmFpbGluZ1do
aXRlc3BhY2UpCisrICAgICAgICByZXR1cm47CisrICAgIGlmIChtX3J1bnMubGFzdCgpLT50eXBl
KCkgPT0gSW5saW5lVGV4dFJ1bjo6V2hpdGVzcGFjZSkgeworKyAgICAgICAgbV9ydW5zLnJlbW92
ZUxhc3QoKTsKKysgICAgICAgIHJldHVybjsKKysgICAgfQorKyAgICBBU1NFUlQobV9ydW5zLmxh
c3QoKS0+dHlwZSgpID09IElubGluZVRleHRSdW46Ok1peGVkKTsKKysgICAgbV9ydW5zLmxhc3Qo
KS0+c2V0RW5kUG9zaXRpb24obV9sYXN0Tm9uZVdoaXRlc3BhY2VQb3NpdGlvbik7CisrfQorKwor
K1ZlY3RvcjxSZWY8SW5saW5lVGV4dFJ1bj4+IElubGluZVRleHRCcmVha2VyOjpMaW5lU3RhdGU6
OmNvbGxlY3RSdW5zKCkKKyt7CisrICAgIGZvciAoYXV0byYgcnVuOiBtX3J1bnMpCisrICAgICAg
ICBydW4tPnNldFdpZHRoKG1fbGluZUJyZWFrZXIudGV4dFdpZHRoKHJ1bi0+c3RhcnRQb3NpdGlv
bigpLCBydW4tPmVuZFBvc2l0aW9uKCkpKTsKKysgICAgcmV0dXJuIFdURk1vdmUobV9ydW5zKTsK
Kyt9CisrCisrSW5saW5lVGV4dEJyZWFrZXI6OklubGluZVRleHRCcmVha2VyKFZlY3RvcjxSZWY8
SW5saW5lVGV4dFJ1bj4+JiBydW5zLCBjb25zdCBTdHJpbmcmIHRleHQsIGZsb2F0IGF2YWlsYWJs
ZVdpZHRoLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCisrICAgIDogbV90ZXh0UnVucyhydW5z
KQorKyAgICAsIG1fdGV4dCh0ZXh0KQorKyAgICAsIG1fc3R5bGUoc3R5bGUpCisrICAgICwgbV9s
aW5lKCp0aGlzLCBhdmFpbGFibGVXaWR0aCkKKyt7CisrfQorKworK1ZlY3RvcjxSZWY8SW5saW5l
VGV4dFJ1bj4+IElubGluZVRleHRCcmVha2VyOjpjb2xsZWN0UnVucyhWZWN0b3I8UmVmPElubGlu
ZVRleHRSdW4+PiYgcnVucywgY29uc3QgU3RyaW5nJiB0ZXh0LCBmbG9hdCBhdmFpbGFibGVXaWR0
aCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQorK3sKKysgICAgcmV0dXJuIElubGluZVRleHRC
cmVha2VyKHJ1bnMsIHRleHQsIGF2YWlsYWJsZVdpZHRoLCBzdHlsZSkuY3JlYXRlQW5kQ29sbGVj
dExpbmVSdW5zKCk7CisrfQorKworK2Jvb2wgSW5saW5lVGV4dEJyZWFrZXI6OnByZVdyYXAoKSBj
b25zdAorK3sKKysgICAgcmV0dXJuIG1fc3R5bGUud3JhcExpbmVzICYmICFtX3N0eWxlLmNvbGxh
cHNlV2hpdGVzcGFjZTsKKyt9CisrCisrdm9pZCBJbmxpbmVUZXh0QnJlYWtlcjo6cmVtb3ZlVHJh
aWxpbmdXaGl0ZXNwYWNlKCkKKyt7CisrICAgIGlmICghbV9saW5lLmhhc1RyYWlsaW5nV2hpdGVz
cGFjZSgpKQorKyAgICAgICAgcmV0dXJuOworKyAgICAvLyBSZW1vdmUgY29sbGFwc2VkIHdoaXRl
c3BhY2UsIG9yIG5vbi1jb2xsYXBzZWQgcHJlLXdyYXAgd2hpdGVzcGFjZSwgdW5sZXNzIGl0J3Mg
dGhlIG9ubHkgY29udGVudCBvbiB0aGUgbGluZSAtc28gcmVtb3ZpbmcgdGhlIHdoaXRlc2FwY2UK
KysgICAgLy8gd291bGQgcHJvZHVjZSBhbiBlbXB0eSBsaW5lLgorKyAgICBib29sIGNvbGxhcHNl
V2hpdGVzcGFjZSA9IG1fc3R5bGUuY29sbGFwc2VXaGl0ZXNwYWNlIHwgcHJlV3JhcCgpOworKyAg
ICBpZiAoIWNvbGxhcHNlV2hpdGVzcGFjZSkKKysgICAgICAgIHJldHVybjsKKysgICAgaWYgKHBy
ZVdyYXAoKSAmJiBtX2xpbmUuaXNXaGl0ZXNwYWNlT25seSgpKQorKyAgICAgICAgcmV0dXJuOwor
KyAgICBtX2xpbmUucmVtb3ZlVHJhaWxpbmdXaGl0ZXNwYWNlKCk7CisrfQorKworK3N0cnVjdCBT
cGxpdEZyYWdtZW50RGF0YSB7CisrICAgIHVuc2lnbmVkIHBvc2l0aW9uOworKyAgICBmbG9hdCB3
aWR0aDsKKyt9OworKworK1NwbGl0RnJhZ21lbnREYXRhIElubGluZVRleHRCcmVha2VyOjpzcGxp
dChjb25zdCBJbmxpbmVUZXh0UnVuJiBydW4sIGZsb2F0IGF2YWlsYWJsZVdpZHRoKQorK3sKKysg
ICAgQVNTRVJUKGF2YWlsYWJsZVdpZHRoID49IDApOworKyAgICBhdXRvIGxlZnQgPSBydW4uc3Rh
cnRQb3NpdGlvbigpOworKyAgICAvLyBQYXRob2xvZ2ljYWwgY2FzZSBvZiAoZXh0cmVtZWx5KWxv
bmcgc3RyaW5nIGFuZCBuYXJyb3cgbGluZXMuCisrICAgIC8vIEFkanVzdCB0aGUgcmFuZ2Ugc28g
dGhhdCB3ZSBjYW4gcGljayBhIHJlYXNvbmFibGUgbWlkcG9pbnQuCisrICAgIGF1dG8gYXZlcmFn
ZUNoYXJhY3RlcldpZHRoID0gcnVuLndpZHRoKCkgLyBydW4ubGVuZ3RoKCk7CisrICAgIGF1dG8g
cmlnaHQgPSBzdGQ6Om1pbjx1bnNpZ25lZD4obGVmdCArICgyICogYXZhaWxhYmxlV2lkdGggLyBh
dmVyYWdlQ2hhcmFjdGVyV2lkdGgpLCBydW4uZW5kUG9zaXRpb24oKSAtIDEpOworKyAgICAvLyBQ
cmVzZXJ2ZSB0aGUgbGVmdCB3aWR0aCBmb3IgdGhlIGZpbmFsIHNwbGl0IHBvc2l0aW9uIHNvIHRo
YXQgd2UgZG9uJ3QgbmVlZCB0byByZW1lYXN1cmUgdGhlIGxlZnQgc2lkZSBhZ2Fpbi4KKysgICAg
ZmxvYXQgbGVmdFNpZGVXaWR0aCA9IDA7CisrICAgIHdoaWxlIChsZWZ0IDwgcmlnaHQpIHsKKysg
ICAgICAgIGF1dG8gbWlkZGxlID0gKGxlZnQgKyByaWdodCkgLyAyOworKyAgICAgICAgYXV0byB3
aWR0aCA9IHRleHRXaWR0aChydW4uc3RhcnRQb3NpdGlvbigpLCBtaWRkbGUgKyAxKTsKKysgICAg
ICAgIGlmICh3aWR0aCA8IGF2YWlsYWJsZVdpZHRoKSB7CisrICAgICAgICAgICAgbGVmdCA9IG1p
ZGRsZSArIDE7CisrICAgICAgICAgICAgbGVmdFNpZGVXaWR0aCA9IHdpZHRoOworKyAgICAgICAg
fSBlbHNlIGlmICh3aWR0aCA+IGF2YWlsYWJsZVdpZHRoKQorKyAgICAgICAgICAgIHJpZ2h0ID0g
bWlkZGxlOworKyAgICAgICAgZWxzZSB7CisrICAgICAgICAgICAgcmlnaHQgPSBtaWRkbGUgKyAx
OworKyAgICAgICAgICAgIGxlZnRTaWRlV2lkdGggPSB3aWR0aDsKKysgICAgICAgICAgICBicmVh
azsKKysgICAgICAgIH0KKysgICAgfQorKyAgICByZXR1cm4geyByaWdodCwgbGVmdFNpZGVXaWR0
aCB9OworK30KKysKKyt2b2lkIElubGluZVRleHRCcmVha2VyOjpzcGxpdFJ1blRvRml0TGluZShJ
bmxpbmVUZXh0UnVuJiBydW5Ub1NwbGl0KQorK3sKKysgICAgYXV0byBhdmFpbGFibGVXaWR0aCA9
IG1fbGluZS5hdmFpbGFibGVXaWR0aCgpIC0gbV9saW5lLndpZHRoKCk7CisrICAgIGF1dG8gc3Bs
aXRSdW5EYXRhID0gc3BsaXQocnVuVG9TcGxpdCwgYXZhaWxhYmxlV2lkdGgpOworKyAgICAvLyBE
b2VzIGZpcnN0IGNoYXJhY3RlciBmaXQgdGhpcyBsaW5lPworKyAgICBpZiAoc3BsaXRSdW5EYXRh
LnBvc2l0aW9uID09IHJ1blRvU3BsaXQuc3RhcnRQb3NpdGlvbigpKSB7CisrICAgICAgICAvLyBL
ZWVwIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIgb24gZW1wdHkgbGluZXMuCisrICAgICAgICBpZiAo
bV9saW5lLmlzRW1wdHkoKSkKKysgICAgICAgICAgICBzcGxpdFJ1bkRhdGEud2lkdGggPSB0ZXh0
V2lkdGgocnVuVG9TcGxpdC5zdGFydFBvc2l0aW9uKCksICsrc3BsaXRSdW5EYXRhLnBvc2l0aW9u
KTsKKysgICAgfQorKyAgICBydW5Ub1NwbGl0LnNldEVuZFBvc2l0aW9uKHNwbGl0UnVuRGF0YS5w
b3NpdGlvbik7CisrICAgIHJ1blRvU3BsaXQuc2V0V2lkdGgoc3BsaXRSdW5EYXRhLndpZHRoKTsK
Kyt9CisrCisrVmVjdG9yPFJlZjxJbmxpbmVUZXh0UnVuPj4gSW5saW5lVGV4dEJyZWFrZXI6OmNy
ZWF0ZUFuZENvbGxlY3RMaW5lUnVucygpCisreworKyAgICBib29sIGxpbmVDYW5CZVdyYXBwZWQg
PSBtX3N0eWxlLndyYXBMaW5lcyB8fCBtX3N0eWxlLmJyZWFrRmlyc3RXb3JkT25PdmVyZmxvdyB8
fCBtX3N0eWxlLmJyZWFrQW55V29yZE9uT3ZlcmZsb3c7CisrICAgIGZvciAoYXV0byYgcnVuIDog
bV90ZXh0UnVucykgeworKyAgICAgICAgLy8gSGFyZCBhbmQgc29mdCBsaW5lYnJlYWtzLgorKyAg
ICAgICAgaWYgKHJ1bi0+dHlwZSgpID09IElubGluZVRleHRSdW46OlNvZnRMaW5lQnJlYWspIHsK
KysgICAgICAgICAgICAvLyBBZGQgdGhlIG5ldyBsaW5lIGZyYWdtZW50IG9ubHkgaWYgdGhlcmUn
cyBub3RoaW5nIG9uIHRoZSBsaW5lLiAob3RoZXJ3aXNlIHRoZSBleHRyYSBuZXcgbGluZSBjaGFy
YWN0ZXIgd291bGQgc2hvdyB1cCBhdCB0aGUgZW5kIG9mIHRoZSBjb250ZW50LikKKysgICAgICAg
ICAgICBpZiAobV9saW5lLmlzRW1wdHkoKSkKKysgICAgICAgICAgICAgICAgbV9saW5lLmFwcGVu
ZFJ1bihydW4pOworKyAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgfQorKyAgICAgICAgaWYg
KGxpbmVDYW5CZVdyYXBwZWQgJiYgIW1fbGluZS5maXRzKHJ1bi0+d2lkdGgoKSkpIHsKKysgICAg
ICAgICAgICAvLyBPdmVyZmxvdyB3cmFwcGluZyBiZWhhdmlvdXI6CisrICAgICAgICAgICAgLy8g
MS4gV2hpdGVzYXBjZSBjb2xsYXBzZSBvbjogd2hpdGVzcGFjZSBpcyBza2lwcGVkLiBKdW1wIHRv
IG5leHQgbGluZS4KKysgICAgICAgICAgICAvLyAyLiBXaGl0ZXNwYWNlIGNvbGxhcHNlIG9mZjog
d2hpdGVzcGFjZSBpcyB3cmFwcGVkLgorKyAgICAgICAgICAgIC8vIDMuIEZpcnN0LCBub24td2hp
dGVzcGFjZSBmcmFnbWVudCBpcyBlaXRoZXIgd3JhcHBlZCBvciBrZXB0IG9uIHRoZSBsaW5lLiAo
ZGVwZW5kcyBvbiBvdmVyZmxvdy13cmFwKQorKyAgICAgICAgICAgIC8vIDUuIE5vbi13aGl0ZXNw
YWNlIGZyYWdtZW50IHdoZW4gdGhlcmUncyBhbHJlYWR5IGFub3RoZXIgZnJhZ21lbnQgb24gdGhl
IGxpbmUgZWl0aGVyIGdldHMgd3JhcHBlZCAod29yZC1icmVhazogYnJlYWstYWxsKQorKyAgICAg
ICAgICAgIC8vIG9yIGdldHMgcHVzaGVkIHRvIHRoZSBuZXh0IGxpbmUuCisrICAgICAgICAgICAg
Ym9vbCBlbXB0eUxpbmUgPSBtX2xpbmUuaXNFbXB0eSgpOworKyAgICAgICAgICAgIC8vIFdoaXRl
c3BhY2UgZnJhZ21lbnQuCisrICAgICAgICAgICAgaWYgKHJ1bi0+dHlwZSgpID09IElubGluZVRl
eHRSdW5JdGVyYXRvcjo6UnVuOjpXaGl0ZXNwYWNlKSB7CisrICAgICAgICAgICAgICAgIGlmICht
X3N0eWxlLmNvbGxhcHNlV2hpdGVzcGFjZSkgeworKyAgICAgICAgICAgICAgICAgICAgLy8gUHVz
aCBjb2xsYXBhc2VkIHdoaXRlc3BhY2UgdG8gdGhlIG5leHQgbGluZS4KKysgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworKyAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgIC8vIFNw
bGl0IHRoZSB3aGl0ZXNwYWNlOyBsZWZ0IHBhcnQgc3RheXMgb24gdGhpcyBsaW5lLCByaWdodCBp
cyBwdXNoZWQgdG8gbmV4dCBsaW5lLgorKyAgICAgICAgICAgICAgICBzcGxpdFJ1blRvRml0TGlu
ZShydW4pOworKyAgICAgICAgICAgICAgICBtX2xpbmUuYXBwZW5kUnVuKHJ1bik7CisrICAgICAg
ICAgICAgICAgIGJyZWFrOworKyAgICAgICAgICAgIH0KKysgICAgICAgICAgICAvLyBOb24td2hp
dGVzcGFjZSBmcmFnbWVudC4gKCFzdHlsZS53cmFwTGluZXM6IGJ1ZzEzODEwMihwcmVzZXJ2ZSBl
eGlzdGluZyBiZWhhdmlvcikKKysgICAgICAgICAgICBpZiAoKChlbXB0eUxpbmUgJiYgbV9zdHls
ZS5icmVha0ZpcnN0V29yZE9uT3ZlcmZsb3cpIHx8IG1fc3R5bGUuYnJlYWtBbnlXb3JkT25PdmVy
ZmxvdykgfHwgIW1fc3R5bGUud3JhcExpbmVzKSB7CisrICAgICAgICAgICAgICAgIC8vIFNwbGl0
IHRoZSBmcmFnbWVudDsgKG1vZGlmaWVkKWZyYWdtZW50IHN0YXlzIG9uIHRoaXMgbGluZSwgb3Zl
cmZsb3dlZEZyYWdtZW50IGlzIHB1c2hlZCB0byBuZXh0IGxpbmUuCisrICAgICAgICAgICAgICAg
IHNwbGl0UnVuVG9GaXRMaW5lKHJ1bik7CisrICAgICAgICAgICAgICAgIG1fbGluZS5hcHBlbmRS
dW4ocnVuKTsKKysgICAgICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICAgICAgfQorKyAgICAg
ICAgICAgIEFTU0VSVChydW4tPnR5cGUoKSA9PSBJbmxpbmVUZXh0UnVuSXRlcmF0b3I6OlJ1bjo6
Tm9uV2hpdGVzcGFjZSk7CisrICAgICAgICAgICAgLy8gTm9uLWJyZWFrYWJsZSBub24td2hpdGVz
cGFjZSBmaXJzdCBmcmFnbWVudC4gQWRkIGl0IHRvIHRoZSBjdXJyZW50IGxpbmUuIC1pdCBvdmVy
Zmxvd3MgdGhvdWdoLgorKyAgICAgICAgICAgIGlmIChlbXB0eUxpbmUpIHsKKysgICAgICAgICAg
ICAgICAgbV9saW5lLmFwcGVuZFJ1bihydW4pOworKyAgICAgICAgICAgICAgICBicmVhazsKKysg
ICAgICAgICAgICB9CisrICAgICAgICAgICAgLy8gTm9uLWJyZWFrYWJsZSBub24td2hpdGVzcGFj
ZSBmcmFnbWVudCB3aGVuIHRoZXJlJ3MgYWxyZWFkeSBjb250ZW50IG9uIHRoZSBsaW5lLiBQdXNo
IGl0IHRvIHRoZSBuZXh0IGxpbmUuCisrICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICB9Cisr
ICAgICAgICBtX2xpbmUuYXBwZW5kUnVuKHJ1bik7CisrICAgIH0KKysgICAgcmVtb3ZlVHJhaWxp
bmdXaGl0ZXNwYWNlKCk7CisrICAgIHJldHVybiBtX2xpbmUuY29sbGVjdFJ1bnMoKTsKKyt9Cisr
CisrZmxvYXQgSW5saW5lVGV4dEJyZWFrZXI6OnRleHRXaWR0aCh1bnNpZ25lZCBmcm9tLCB1bnNp
Z25lZCB0bykgY29uc3QKKyt7CisrICAgIGlmICghbV9zdHlsZS5mb250LnNpemUoKSB8fCBmcm9t
ID09IHRvKQorKyAgICAgICAgcmV0dXJuIDA7CisrCisrICAgIGJvb2wgbWVhc3VyZVdpdGhFbmRT
cGFjZSA9IG1fc3R5bGUuaGFzS2VybmluZ09yTGlnYXR1cmVzICYmIG1fc3R5bGUuY29sbGFwc2VX
aGl0ZXNwYWNlICYmIHRvIDwgbV90ZXh0Lmxlbmd0aCgpICYmIG1fdGV4dFt0b10gPT0gJyAnOwor
KyAgICBpZiAobWVhc3VyZVdpdGhFbmRTcGFjZSkKKysgICAgICAgICsrdG87CisrICAgIGZsb2F0
IHdpZHRoID0gMDsKKysgICAgVGV4dFJ1biBydW4oU3RyaW5nVmlldyhtX3RleHQpLnN1YnN0cmlu
Zyhmcm9tLCB0byAtIGZyb20pLCAwKTsKKysgICAgaWYgKG1fc3R5bGUudGFiV2lkdGgpCisrICAg
ICAgICBydW4uc2V0VGFiU2l6ZSh0cnVlLCBtX3N0eWxlLnRhYldpZHRoKTsKKysgICAgd2lkdGgg
PSBtX3N0eWxlLmZvbnQud2lkdGgocnVuKTsKKysgICAgaWYgKG1lYXN1cmVXaXRoRW5kU3BhY2Up
CisrICAgICAgICB3aWR0aCAtPSAobV9zdHlsZS5mb250LnNwYWNlV2lkdGgoKSArIG1fc3R5bGUu
d29yZFNwYWNpbmcpOworKyAgICByZXR1cm4gc3RkOjptYXg8ZmxvYXQ+KDAsIHdpZHRoKTsKKyt9
CisrCisrfQorK30KK2RpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5l
VGV4dEJyZWFrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0QnJlYWtl
ci5oCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAuLmZjMGYwYjI3NzJl
CistLS0gL2Rldi9udWxsCisrKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4
dEJyZWFrZXIuaAorQEAgLTAsMCArMSw5NiBAQAorKy8qCisrICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysgKgorKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworKyAqIGFyZSBtZXQ6CisrICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKysgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisrICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKysgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisrICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKysgKgor
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKysgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKysgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisr
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisrICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisr
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisrICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKysgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKysgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisrICovCisrCisrI3ByYWdtYSBvbmNlCisrCisrI2luY2x1ZGUgIklubGluZVRleHRSdW4uaCIK
KysKKytuYW1lc3BhY2UgV2ViQ29yZSB7CisrCisrY2xhc3MgRm9udENhc2NhZGU7CisrCisrbmFt
ZXNwYWNlIExheW91dFJlbG9hZGVkIHsKKysKKytjbGFzcyBMaW5lU3RhdGU7Cisrc3RydWN0IFNw
bGl0RnJhZ21lbnREYXRhOworKworK2NsYXNzIElubGluZVRleHRCcmVha2VyIHsKKytwdWJsaWM6
CisrICAgIHN0YXRpYyBWZWN0b3I8UmVmPElubGluZVRleHRSdW4+PiBjb2xsZWN0UnVucyhWZWN0
b3I8UmVmPElubGluZVRleHRSdW4+PiYsIGNvbnN0IFN0cmluZyYsIGZsb2F0IGF2YWlsYWJsZVdp
ZHRoLCBjb25zdCBSZW5kZXJTdHlsZSYpOworKworK3ByaXZhdGU6CisrICAgIElubGluZVRleHRC
cmVha2VyKFZlY3RvcjxSZWY8SW5saW5lVGV4dFJ1bj4+JiwgY29uc3QgU3RyaW5nJiwgZmxvYXQg
YXZhaWxhYmxlV2lkdGgsIGNvbnN0IFJlbmRlclN0eWxlJik7CisrCisrICAgIFZlY3RvcjxSZWY8
SW5saW5lVGV4dFJ1bj4+IGNyZWF0ZUFuZENvbGxlY3RMaW5lUnVucygpOworKyAgICBTcGxpdEZy
YWdtZW50RGF0YSBzcGxpdChjb25zdCBJbmxpbmVUZXh0UnVuJiBydW4sIGZsb2F0IGF2YWlsYWJs
ZVdpZHRoKTsKKysgICAgdm9pZCBzcGxpdFJ1blRvRml0TGluZShJbmxpbmVUZXh0UnVuJiBydW5U
b1NwbGl0KTsKKysgICAgdm9pZCByZW1vdmVUcmFpbGluZ1doaXRlc3BhY2UoKTsKKysgICAgYm9v
bCBwcmVXcmFwKCkgY29uc3Q7CisrICAgIGZsb2F0IHRleHRXaWR0aCh1bnNpZ25lZCBmcm9tLCB1
bnNpZ25lZCB0bykgY29uc3Q7CisrCisrICAgIHN0cnVjdCBTdHlsZSB7CisrICAgICAgICBleHBs
aWNpdCBTdHlsZShjb25zdCBSZW5kZXJTdHlsZSYpOworKworKyAgICAgICAgY29uc3QgRm9udENh
c2NhZGUmIGZvbnQ7CisrICAgICAgICBib29sIGhhc0tlcm5pbmdPckxpZ2F0dXJlczsKKysgICAg
ICAgIGJvb2wgY29sbGFwc2VXaGl0ZXNwYWNlOworKyAgICAgICAgYm9vbCBwcmVzZXJ2ZU5ld2xp
bmU7CisrICAgICAgICBib29sIHdyYXBMaW5lczsKKysgICAgICAgIGJvb2wgYnJlYWtBbnlXb3Jk
T25PdmVyZmxvdzsKKysgICAgICAgIGJvb2wgYnJlYWtGaXJzdFdvcmRPbk92ZXJmbG93OworKyAg
ICAgICAgZmxvYXQgd29yZFNwYWNpbmc7CisrICAgICAgICB1bnNpZ25lZCB0YWJXaWR0aDsKKysg
ICAgfTsKKysKKysgICAgY2xhc3MgTGluZVN0YXRlIHsKKysgICAgcHVibGljOgorKyAgICAgICAg
TGluZVN0YXRlKGNvbnN0IElubGluZVRleHRCcmVha2VyJiBsaW5lQnJlYWtlciwgZmxvYXQgYXZh
aWxhYmxlV2lkdGgpOworKworKyAgICAgICAgZmxvYXQgYXZhaWxhYmxlV2lkdGgoKSBjb25zdDsK
KysgICAgICAgIGJvb2wgaGFzVHJhaWxpbmdXaGl0ZXNwYWNlKCkgY29uc3Q7CisrICAgICAgICBi
b29sIGlzV2hpdGVzcGFjZU9ubHkoKSBjb25zdDsKKysgICAgICAgIGJvb2wgZml0cyhmbG9hdCBl
eHRyYSkgY29uc3Q7CisrICAgICAgICBmbG9hdCB3aWR0aCgpIGNvbnN0OworKyAgICAgICAgYm9v
bCBpc0VtcHR5KCkgY29uc3Q7CisrICAgICAgICB2b2lkIGFwcGVuZFJ1bihjb25zdCBJbmxpbmVU
ZXh0UnVuJik7CisrICAgICAgICB2b2lkIHJlbW92ZVRyYWlsaW5nV2hpdGVzcGFjZSgpOworKyAg
ICAgICAgVmVjdG9yPFJlZjxJbmxpbmVUZXh0UnVuPj4gY29sbGVjdFJ1bnMoKTsKKysKKysgICAg
cHJpdmF0ZToKKysgICAgICAgIGNvbnN0IElubGluZVRleHRCcmVha2VyJiBtX2xpbmVCcmVha2Vy
OworKyAgICAgICAgZmxvYXQgbV9hdmFpbGFibGVXaWR0aCB7IDAgfTsKKysgICAgICAgIFZlY3Rv
cjxSZWY8SW5saW5lVGV4dFJ1bj4+IG1fcnVuczsKKysgICAgICAgIGJvb2wgbV9oYXNUcmFpbGlu
Z1doaXRlc3BhY2UgeyBmYWxzZSB9OworKyAgICAgICAgdW5zaWduZWQgbV9sYXN0Tm9uZVdoaXRl
c3BhY2VQb3NpdGlvbiB7IDAgfTsKKysgICAgfTsKKysKKysgICAgVmVjdG9yPFJlZjxJbmxpbmVU
ZXh0UnVuPj4mIG1fdGV4dFJ1bnM7CisrICAgIFN0cmluZyBtX3RleHQ7CisrICAgIGNvbnN0IFN0
eWxlIG1fc3R5bGU7CisrICAgIExpbmVTdGF0ZSBtX2xpbmU7CisrfTsKKysKKyt9CisrfQorZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0UnVuSXRlcmF0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRSdW5JdGVyYXRvci5jcHAK
K25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMC4uYmJlYjczYmI1N2EKKy0t
LSAvZGV2L251bGwKKysrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0UnVu
SXRlcmF0b3IuY3BwCitAQCAtMCwwICsxLDE2NyBAQAorKy8qCisrICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysgKgorKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworKyAqIGFyZSBtZXQ6CisrICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKysgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisr
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKysgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisrICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKysg
KgorKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKysgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKysgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisrICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisrICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisrICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisrICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKysgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKysgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisrICovCisrCisrI2luY2x1ZGUgImNvbmZpZy5oIgorKyNpbmNsdWRlICJJbmxpbmVUZXh0
UnVuSXRlcmF0b3IuaCIKKysKKysjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKKysKKytuYW1lc3Bh
Y2UgV2ViQ29yZSB7CisrbmFtZXNwYWNlIExheW91dFJlbG9hZGVkIHsKKysKKytJbmxpbmVUZXh0
UnVuSXRlcmF0b3I6OlN0eWxlOjpTdHlsZShjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCisrICAg
IDogZm9udChzdHlsZS5mb250Q2FzY2FkZSgpKQorKyAgICAsIHRleHRBbGlnbihzdHlsZS50ZXh0
QWxpZ24oKSkKKysgICAgLCBoYXNLZXJuaW5nT3JMaWdhdHVyZXMoZm9udC5lbmFibGVLZXJuaW5n
KCkgfHwgZm9udC5yZXF1aXJlc1NoYXBpbmcoKSkKKysgICAgLCBjb2xsYXBzZVdoaXRlc3BhY2Uo
c3R5bGUuY29sbGFwc2VXaGl0ZVNwYWNlKCkpCisrICAgICwgcHJlc2VydmVOZXdsaW5lKHN0eWxl
LnByZXNlcnZlTmV3bGluZSgpKQorKyAgICAsIHdyYXBMaW5lcyhzdHlsZS5hdXRvV3JhcCgpKQor
KyAgICAsIGJyZWFrQW55V29yZE9uT3ZlcmZsb3coc3R5bGUud29yZEJyZWFrKCkgPT0gQnJlYWtB
bGxXb3JkQnJlYWsgJiYgd3JhcExpbmVzKQorKyAgICAsIGJyZWFrRmlyc3RXb3JkT25PdmVyZmxv
dyhicmVha0FueVdvcmRPbk92ZXJmbG93IHx8IChzdHlsZS5icmVha1dvcmRzKCkgJiYgKHdyYXBM
aW5lcyB8fCBwcmVzZXJ2ZU5ld2xpbmUpKSkKKysgICAgLCBicmVha05CU1Aod3JhcExpbmVzICYm
IHN0eWxlLm5ic3BNb2RlKCkgPT0gU1BBQ0UpCisrICAgICwga2VlcEFsbFdvcmRzRm9yQ0pLKHN0
eWxlLndvcmRCcmVhaygpID09IEtlZXBBbGxXb3JkQnJlYWspCisrICAgICwgd29yZFNwYWNpbmco
Zm9udC53b3JkU3BhY2luZygpKQorKyAgICAsIHRhYldpZHRoKGNvbGxhcHNlV2hpdGVzcGFjZSA/
IDAgOiBzdHlsZS50YWJTaXplKCkpCisrICAgICwgbG9jYWxlKHN0eWxlLmxvY2FsZSgpKQorK3sK
Kyt9CisrCisrSW5saW5lVGV4dFJ1bkl0ZXJhdG9yOjpJbmxpbmVUZXh0UnVuSXRlcmF0b3IoY29u
c3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCisrICAgIDogbV9saW5l
QnJlYWtJdGVyYXRvcih0ZXh0LCBzdHlsZS5sb2NhbGUoKSkKKysgICAgLCBtX3N0eWxlKHN0eWxl
KQorKyAgICAsIG1fdGV4dCh0ZXh0KQorK3sKKyt9CisrCisrSW5saW5lVGV4dFJ1bkl0ZXJhdG9y
OjpSdW4gSW5saW5lVGV4dFJ1bkl0ZXJhdG9yOjpuZXh0UnVuKCkKKyt7CisrICAgIC8vIEEgZnJh
Z21lbnQgY2FuIGVpdGhlciBiZQorKyAgICAvLyAxLiBsaW5lIGJyZWFrIHdoZW4gPGJyPiBpcyBw
cmVzZW50IG9yIHByZXNlcnZlTmV3bGluZSBpcyBvbiAobm90IGNvbnNpZGVyZWQgYXMgd2hpdGVz
cGFjZSkgb3IKKysgICAgLy8gMi4gd2hpdGVzcGFjZSAoY29sbGFzcGVkLCBub24tY29sbGFwc2Vk
IG11bHRpIG9yIHNpbmdsZSkgb3IKKysgICAgLy8gMy4gbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVy
cy4KKysgICAgLy8gNC4gY29udGVudCBlbmQuCisrICAgIHVuc2lnbmVkIHN0YXJ0UG9zaXRpb24g
PSBtX3Bvc2l0aW9uOworKyAgICBpZiAobV90ZXh0Lmxlbmd0aCgpID09IG1fcG9zaXRpb24pCisr
ICAgICAgICByZXR1cm4gUnVuKHN0YXJ0UG9zaXRpb24sIHN0YXJ0UG9zaXRpb24sIDAsIFJ1bjo6
Q29udGVudEVuZCwgZmFsc2UsIGZhbHNlKTsKKysgICAgaWYgKGlzU29mdExpbmVCcmVhaygpKSB7
CisrICAgICAgICB1bnNpZ25lZCBlbmRQb3NpdGlvbiA9ICsrbV9wb3NpdGlvbjsKKysgICAgICAg
IHJldHVybiBSdW4oc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24sIDAsIFJ1bjo6U29mdExpbmVC
cmVhaywgZmFsc2UsIGZhbHNlKTsKKysgICAgfQorKyAgICBmbG9hdCB3aWR0aCA9IDA7CisrICAg
IHVuc2lnbmVkIGVuZFBvc2l0aW9uID0gc2tpcFRvTmV4dFBvc2l0aW9uKFBvc2l0aW9uVHlwZTo6
Tm9uV2hpdGVzcGFjZSwgc3RhcnRQb3NpdGlvbiwgd2lkdGgpOworKyAgICBpZiAoc3RhcnRQb3Np
dGlvbiA8IGVuZFBvc2l0aW9uKSB7CisrICAgICAgICBib29sIG11bHRpcGxlV2hpdGVzcGFjZSA9
IHN0YXJ0UG9zaXRpb24gKyAxIDwgZW5kUG9zaXRpb247CisrICAgICAgICBib29sIGlzQ29sbGFw
c2VkID0gbXVsdGlwbGVXaGl0ZXNwYWNlICYmIG1fc3R5bGUuY29sbGFwc2VXaGl0ZXNwYWNlOwor
KyAgICAgICAgbV9wb3NpdGlvbiA9IGVuZFBvc2l0aW9uOworKyAgICAgICAgcmV0dXJuIFJ1bihz
dGFydFBvc2l0aW9uLCBlbmRQb3NpdGlvbiwgd2lkdGgsIFJ1bjo6V2hpdGVzcGFjZSwgaXNDb2xs
YXBzZWQsIG1fc3R5bGUuY29sbGFwc2VXaGl0ZXNwYWNlKTsKKysgICAgfQorKyAgICBlbmRQb3Np
dGlvbiA9IHNraXBUb05leHRQb3NpdGlvbihQb3NpdGlvblR5cGU6OkJyZWFrYWJsZSwgc3RhcnRQ
b3NpdGlvbiwgd2lkdGgpOworKyAgICBtX3Bvc2l0aW9uID0gZW5kUG9zaXRpb247CisrICAgIHJl
dHVybiBSdW4oc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24sIHdpZHRoLCBSdW46Ok5vbldoaXRl
c3BhY2UsIGZhbHNlLCBmYWxzZSk7CisrfQorKworK2Jvb2wgSW5saW5lVGV4dFJ1bkl0ZXJhdG9y
Ojppc1NvZnRMaW5lQnJlYWsoKSBjb25zdAorK3sKKysgICAgcmV0dXJuIG1fc3R5bGUucHJlc2Vy
dmVOZXdsaW5lICYmIG1fdGV4dFttX3Bvc2l0aW9uXSA9PSAnXG4nOworK30KKysKKytzdGF0aWMg
aW5saW5lIHVuc2lnbmVkIG5leHRCcmVha2FibGVQb3NpdGlvbihMYXp5TGluZUJyZWFrSXRlcmF0
b3ImIGxpbmVCcmVha0l0ZXJhdG9yLCB1bnNpZ25lZCBzdGFydFBvc2l0aW9uLCBib29sIGJyZWFr
TkJTUCwgYm9vbCBrZWVwQWxsV29yZHNGb3JDSkspCisreworKyAgICBpZiAoa2VlcEFsbFdvcmRz
Rm9yQ0pLKSB7CisrICAgICAgICBpZiAoYnJlYWtOQlNQKQorKyAgICAgICAgICAgIHJldHVybiBu
ZXh0QnJlYWthYmxlUG9zaXRpb25LZWVwaW5nQWxsV29yZHMobGluZUJyZWFrSXRlcmF0b3IsIHN0
YXJ0UG9zaXRpb24pOworKyAgICAgICAgcmV0dXJuIG5leHRCcmVha2FibGVQb3NpdGlvbktlZXBp
bmdBbGxXb3Jkc0lnbm9yaW5nTkJTUChsaW5lQnJlYWtJdGVyYXRvciwgc3RhcnRQb3NpdGlvbik7
CisrICAgIH0KKysKKysgICAgaWYgKGxpbmVCcmVha0l0ZXJhdG9yLm1vZGUoKSA9PSBMaW5lQnJl
YWtJdGVyYXRvck1vZGU6OkRlZmF1bHQpIHsKKysgICAgICAgIGlmIChicmVha05CU1ApCisrICAg
ICAgICAgICAgcmV0dXJuIFdlYkNvcmU6Om5leHRCcmVha2FibGVQb3NpdGlvbihsaW5lQnJlYWtJ
dGVyYXRvciwgc3RhcnRQb3NpdGlvbik7CisrICAgICAgICByZXR1cm4gbmV4dEJyZWFrYWJsZVBv
c2l0aW9uSWdub3JpbmdOQlNQKGxpbmVCcmVha0l0ZXJhdG9yLCBzdGFydFBvc2l0aW9uKTsKKysg
ICAgfQorKworKyAgICBpZiAoYnJlYWtOQlNQKQorKyAgICAgICAgcmV0dXJuIG5leHRCcmVha2Fi
bGVQb3NpdGlvbldpdGhvdXRTaG9ydGN1dChsaW5lQnJlYWtJdGVyYXRvciwgc3RhcnRQb3NpdGlv
bik7CisrICAgIHJldHVybiBuZXh0QnJlYWthYmxlUG9zaXRpb25JZ25vcmluZ05CU1BXaXRob3V0
U2hvcnRjdXQobGluZUJyZWFrSXRlcmF0b3IsIHN0YXJ0UG9zaXRpb24pOworK30KKysKKyt1bnNp
Z25lZCBJbmxpbmVUZXh0UnVuSXRlcmF0b3I6Om5leHROb25XaGl0ZXNwYWNlUG9zaXRpb24odW5z
aWduZWQgc3RhcnRQb3NpdGlvbikKKyt7CisrICAgIEFTU0VSVChzdGFydFBvc2l0aW9uIDwgbV90
ZXh0Lmxlbmd0aCgpKTsKKysgICAgdW5zaWduZWQgcG9zaXRpb24gPSBzdGFydFBvc2l0aW9uOwor
KyAgICBmb3IgKDsgcG9zaXRpb24gPCBtX3RleHQubGVuZ3RoKCkgLSAxOyArK3Bvc2l0aW9uKSB7
CisrICAgICAgICBhdXRvIGNoYXJhY3RlciA9IG1fdGV4dFtwb3NpdGlvbl07CisrICAgICAgICBi
b29sIGlzV2hpdGVzcGFjZSA9IGNoYXJhY3RlciA9PSAnICcgfHwgY2hhcmFjdGVyID09ICdcdCcg
fHwgKCFtX3N0eWxlLnByZXNlcnZlTmV3bGluZSAmJiBjaGFyYWN0ZXIgPT0gJ1xuJyk7CisrICAg
ICAgICBpZiAoIWlzV2hpdGVzcGFjZSkKKysgICAgICAgICAgICByZXR1cm4gcG9zaXRpb247Cisr
ICAgIH0KKysgICAgcmV0dXJuIHBvc2l0aW9uOworK30KKysKKyt1bnNpZ25lZCBJbmxpbmVUZXh0
UnVuSXRlcmF0b3I6OnNraXBUb05leHRQb3NpdGlvbihQb3NpdGlvblR5cGUgcG9zaXRpb25UeXBl
LCB1bnNpZ25lZCBzdGFydFBvc2l0aW9uLCBmbG9hdCYgd2lkdGgpCisreworKyAgICB1bnNpZ25l
ZCBjdXJyZW50UG9zaXRpb24gPSBzdGFydFBvc2l0aW9uOworKyAgICB1bnNpZ25lZCBuZXh0UG9z
aXRpb24gPSBjdXJyZW50UG9zaXRpb247CisrICAgIC8vIENvbGxhcHNlZCB3aGl0ZXNwYWNlIGhh
cyBjb25zdGFudCB3aWR0aC4gRG8gbm90IG1lYXN1cmUgaXQuCisrICAgIGlmIChwb3NpdGlvblR5
cGUgPT0gTm9uV2hpdGVzcGFjZSkKKysgICAgICAgIG5leHRQb3NpdGlvbiA9IG5leHROb25XaGl0
ZXNwYWNlUG9zaXRpb24oY3VycmVudFBvc2l0aW9uKTsKKysgICAgZWxzZSBpZiAocG9zaXRpb25U
eXBlID09IEJyZWFrYWJsZSkgeworKyAgICAgICAgbmV4dFBvc2l0aW9uID0gbmV4dEJyZWFrYWJs
ZVBvc2l0aW9uKG1fbGluZUJyZWFrSXRlcmF0b3IsIGN1cnJlbnRQb3NpdGlvbiwgbV9zdHlsZS5i
cmVha05CU1AsIG1fc3R5bGUua2VlcEFsbFdvcmRzRm9yQ0pLKTsKKysgICAgICAgIC8vIG5leHRC
cmVha2FibGVQb3NpdGlvbiByZXR1cm5zIHRoZSBzYW1lIHBvc2l0aW9uIGZvciBjZXJ0YWluIGNo
YXJhY3RlcnMgc3VjaCBhcyBoeXBoZW5zLiBDYWxsIG5leHQgYWdhaW4gd2l0aCBtb2RpZmllZCBw
b3NpdGlvbi4KKysgICAgICAgIGJvb2wgc2tpcEN1cnJlbnRQb3NpdGlvbiA9IG5leHRQb3NpdGlv
biA9PSBjdXJyZW50UG9zaXRpb247CisrICAgICAgICBpZiAoc2tpcEN1cnJlbnRQb3NpdGlvbikK
KysgICAgICAgICAgICBuZXh0UG9zaXRpb24gPSBuZXh0QnJlYWthYmxlUG9zaXRpb24obV9saW5l
QnJlYWtJdGVyYXRvciwgY3VycmVudFBvc2l0aW9uICsgMSwgbV9zdHlsZS5icmVha05CU1AsIG1f
c3R5bGUua2VlcEFsbFdvcmRzRm9yQ0pLKTsKKysgICAgfQorKyAgICB3aWR0aCA9IDA7CisrICAg
IGlmIChuZXh0UG9zaXRpb24gPT0gY3VycmVudFBvc2l0aW9uKQorKyAgICAgICAgcmV0dXJuIGN1
cnJlbnRQb3NpdGlvbjsKKysgICAgLy8gQm90aCBub24tY29sbGFwc2VkIHdoaXRlc3BhY2UgYW5k
IG5vbi13aGl0ZXNwYWNlIHJ1bnMgbmVlZCB0byBiZSBtZWFzdXJlZC4KKysgICAgYm9vbCBtZWFz
dXJlVGV4dCA9IHBvc2l0aW9uVHlwZSAhPSBOb25XaGl0ZXNwYWNlIHx8ICFtX3N0eWxlLmNvbGxh
cHNlV2hpdGVzcGFjZTsKKysgICAgaWYgKG1lYXN1cmVUZXh0KQorKyAgICAgICAgd2lkdGggPSB0
aGlzLT50ZXh0V2lkdGgoY3VycmVudFBvc2l0aW9uLCBuZXh0UG9zaXRpb24pOworKyAgICBlbHNl
IGlmIChzdGFydFBvc2l0aW9uIDwgbmV4dFBvc2l0aW9uKQorKyAgICAgICAgd2lkdGggPSBtX3N0
eWxlLmZvbnQuc3BhY2VXaWR0aCgpICsgbV9zdHlsZS53b3JkU3BhY2luZzsKKysgICAgcmV0dXJu
IG5leHRQb3NpdGlvbjsKKyt9CisrCisrZmxvYXQgSW5saW5lVGV4dFJ1bkl0ZXJhdG9yOjp0ZXh0
V2lkdGgodW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8pIGNvbnN0CisreworKyAgICBpZiAoIW1f
c3R5bGUuZm9udC5zaXplKCkgfHwgZnJvbSA9PSB0bykKKysgICAgICAgIHJldHVybiAwOworKwor
KyAgICBib29sIG1lYXN1cmVXaXRoRW5kU3BhY2UgPSBtX3N0eWxlLmhhc0tlcm5pbmdPckxpZ2F0
dXJlcyAmJiBtX3N0eWxlLmNvbGxhcHNlV2hpdGVzcGFjZSAmJiB0byA8IG1fdGV4dC5sZW5ndGgo
KSAmJiBtX3RleHRbdG9dID09ICcgJzsKKysgICAgaWYgKG1lYXN1cmVXaXRoRW5kU3BhY2UpCisr
ICAgICAgICArK3RvOworKyAgICBmbG9hdCB3aWR0aCA9IDA7CisrICAgIFRleHRSdW4gcnVuKFN0
cmluZ1ZpZXcobV90ZXh0KS5zdWJzdHJpbmcoZnJvbSwgdG8gLSBmcm9tKSwgMCk7CisrICAgIGlm
IChtX3N0eWxlLnRhYldpZHRoKQorKyAgICAgICAgcnVuLnNldFRhYlNpemUodHJ1ZSwgbV9zdHls
ZS50YWJXaWR0aCk7CisrICAgIHdpZHRoID0gbV9zdHlsZS5mb250LndpZHRoKHJ1bik7CisrICAg
IGlmIChtZWFzdXJlV2l0aEVuZFNwYWNlKQorKyAgICAgICAgd2lkdGggLT0gKG1fc3R5bGUuZm9u
dC5zcGFjZVdpZHRoKCkgKyBtX3N0eWxlLndvcmRTcGFjaW5nKTsKKysgICAgcmV0dXJuIHN0ZDo6
bWF4PGZsb2F0PigwLCB3aWR0aCk7CisrfQorKworK30KKyt9CitkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRSdW5JdGVyYXRvci5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0lubGluZVRleHRSdW5JdGVyYXRvci5oCituZXcgZmlsZSBtb2RlIDEwMDY0
NAoraW5kZXggMDAwMDAwMDAwMDAuLjU5NGY5NWUwMzc4CistLS0gL2Rldi9udWxsCisrKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dFJ1bkl0ZXJhdG9yLmgKK0BAIC0wLDAg
KzEsMTIxIEBACisrLyoKKysgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorKyAqCisrICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisrICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisrICogYXJl
IG1ldDoKKysgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKysgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKysgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKyAqCisrICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKysgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KysgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisrICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKysgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KysgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisrICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKysgKi8KKysKKysjcHJhZ21h
IG9uY2UKKysKKysjaW5jbHVkZSAiQnJlYWtMaW5lcy5oIgorKyNpbmNsdWRlICJSZW5kZXJMaW5l
QnJlYWsuaCIKKysjaW5jbHVkZSAiU2ltcGxlTGluZUxheW91dEZsb3dDb250ZW50cy5oIgorKwor
K25hbWVzcGFjZSBXZWJDb3JlIHsKKysKKytjbGFzcyBSZW5kZXJCbG9ja0Zsb3c7CisrY2xhc3Mg
UmVuZGVyU3R5bGU7CisrCisrbmFtZXNwYWNlIExheW91dFJlbG9hZGVkIHsKKysKKytjbGFzcyBJ
bmxpbmVUZXh0UnVuSXRlcmF0b3IgIHsKKytwdWJsaWM6CisrICAgIElubGluZVRleHRSdW5JdGVy
YXRvcihjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSk7CisrCisr
ICAgIGNsYXNzIFJ1biB7CisrICAgIHB1YmxpYzoKKysgICAgICAgIGVudW0gVHlwZSB7IEludmFs
aWQsIENvbnRlbnRFbmQsIFNvZnRMaW5lQnJlYWssIFdoaXRlc3BhY2UsIE5vbldoaXRlc3BhY2Ug
fTsKKysgICAgICAgIFJ1bigpID0gZGVmYXVsdDsKKysgICAgICAgIFJ1bih1bnNpZ25lZCBzdGFy
dCwgdW5zaWduZWQgZW5kLCBmbG9hdCB3aWR0aCwgVHlwZSB0eXBlLCBib29sIGlzQ29sbGFwc2Vk
LCBib29sIGlzQ29sbGFwc2libGUpCisrICAgICAgICAgICAgOiBtX3N0YXJ0KHN0YXJ0KQorKyAg
ICAgICAgICAgICwgbV9lbmQoZW5kKQorKyAgICAgICAgICAgICwgbV93aWR0aCh3aWR0aCkKKysg
ICAgICAgICAgICAsIG1fdHlwZSh0eXBlKQorKyAgICAgICAgICAgICwgbV9pc0NvbGxhcHNlZChp
c0NvbGxhcHNlZCkKKysgICAgICAgICAgICAsIG1faXNDb2xsYXBzaWJsZShpc0NvbGxhcHNpYmxl
KQorKyAgICAgICAgeworKyAgICAgICAgfQorKworKyAgICAgICAgYm9vbCBpc1ZhbGlkKCkgY29u
c3QgeyByZXR1cm4gbV90eXBlICE9IEludmFsaWQ7IH0KKysgICAgICAgIHVuc2lnbmVkIHN0YXJ0
KCkgY29uc3QgeyByZXR1cm4gbV9zdGFydDsgfQorKyAgICAgICAgdW5zaWduZWQgZW5kKCkgY29u
c3QgeyByZXR1cm4gbV9lbmQ7IH0KKysgICAgICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IHsg
QVNTRVJUKG1fZW5kID49IG1fc3RhcnQpOyByZXR1cm4gbV9lbmQgLSBtX3N0YXJ0OyB9CisrICAg
ICAgICBmbG9hdCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGg7IH0KKysgICAgICAgIFR5
cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQorKyAgICAgICAgYm9vbCBpc0xpbmVC
cmVhaygpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBTb2Z0TGluZUJyZWFrOyB9CisrICAgICAg
ICBib29sIGlzQ29sbGFwc2VkKCkgY29uc3QgeyByZXR1cm4gbV9pc0NvbGxhcHNlZDsgfQorKyAg
ICAgICAgYm9vbCBpc0NvbGxhcHNpYmxlKCkgY29uc3QgeyByZXR1cm4gbV9pc0NvbGxhcHNpYmxl
OyB9CisrCisrICAgICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBzdGFydCgpID09
IGVuZCgpICYmICFpc0xpbmVCcmVhaygpOyB9CisrICAgICAgICBib29sIG9wZXJhdG9yPT0oY29u
c3QgUnVuJiBvdGhlcikgY29uc3QKKysgICAgICAgIHsKKysgICAgICAgICAgICByZXR1cm4gbV9z
dGFydCA9PSBvdGhlci5tX3N0YXJ0CisrICAgICAgICAgICAgICAgICYmIG1fZW5kID09IG90aGVy
Lm1fZW5kCisrICAgICAgICAgICAgICAgICYmIG1fd2lkdGggPT0gb3RoZXIubV93aWR0aAorKyAg
ICAgICAgICAgICAgICAmJiBtX3R5cGUgPT0gb3RoZXIubV90eXBlCisrICAgICAgICAgICAgICAg
ICYmIG1faXNDb2xsYXBzZWQgPT0gb3RoZXIubV9pc0NvbGxhcHNlZAorKyAgICAgICAgICAgICAg
ICAmJiBtX2lzQ29sbGFwc2libGUgPT0gb3RoZXIubV9pc0NvbGxhcHNpYmxlOworKyAgICAgICAg
fQorKworKyAgICBwcml2YXRlOgorKyAgICAgICAgdW5zaWduZWQgbV9zdGFydCB7IDAgfTsKKysg
ICAgICAgIHVuc2lnbmVkIG1fZW5kIHsgMCB9OworKyAgICAgICAgZmxvYXQgbV93aWR0aCB7IDAg
fTsKKysgICAgICAgIFR5cGUgbV90eXBlIHsgSW52YWxpZCB9OworKyAgICAgICAgYm9vbCBtX2lz
Q29sbGFwc2VkIHsgZmFsc2UgfTsKKysgICAgICAgIGJvb2wgbV9pc0NvbGxhcHNpYmxlIHsgZmFs
c2UgfTsKKysgICAgfTsKKysgICAgUnVuIG5leHRSdW4oKTsKKysgICAgZmxvYXQgdGV4dFdpZHRo
KHVuc2lnbmVkIHN0YXJ0UG9zaXRpb24sIHVuc2lnbmVkIGVuZFBvc2l0aW9uKSBjb25zdDsKKysK
KysgICAgc3RydWN0IFN0eWxlIHsKKysgICAgICAgIGV4cGxpY2l0IFN0eWxlKGNvbnN0IFJlbmRl
clN0eWxlJik7CisrCisrICAgICAgICBjb25zdCBGb250Q2FzY2FkZSYgZm9udDsKKysgICAgICAg
IEVUZXh0QWxpZ24gdGV4dEFsaWduOworKyAgICAgICAgYm9vbCBoYXNLZXJuaW5nT3JMaWdhdHVy
ZXM7CisrICAgICAgICBib29sIGNvbGxhcHNlV2hpdGVzcGFjZTsKKysgICAgICAgIGJvb2wgcHJl
c2VydmVOZXdsaW5lOworKyAgICAgICAgYm9vbCB3cmFwTGluZXM7CisrICAgICAgICBib29sIGJy
ZWFrQW55V29yZE9uT3ZlcmZsb3c7CisrICAgICAgICBib29sIGJyZWFrRmlyc3RXb3JkT25PdmVy
ZmxvdzsKKysgICAgICAgIGJvb2wgYnJlYWtOQlNQOworKyAgICAgICAgYm9vbCBrZWVwQWxsV29y
ZHNGb3JDSks7CisrICAgICAgICBmbG9hdCB3b3JkU3BhY2luZzsKKysgICAgICAgIHVuc2lnbmVk
IHRhYldpZHRoOworKyAgICAgICAgQXRvbWljU3RyaW5nIGxvY2FsZTsKKysgICAgfTsKKysgICAg
Y29uc3QgU3R5bGUmIHN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9zdHlsZTsgfQorKworK3ByaXZh
dGU6CisrICAgIGVudW0gUG9zaXRpb25UeXBlIHsgQnJlYWthYmxlLCBOb25XaGl0ZXNwYWNlIH07
CisrICAgIHVuc2lnbmVkIHNraXBUb05leHRQb3NpdGlvbihQb3NpdGlvblR5cGUsIHVuc2lnbmVk
IHN0YXJ0UG9zaXRpb24sIGZsb2F0JiB3aWR0aCk7CisrICAgIGJvb2wgaXNTb2Z0TGluZUJyZWFr
KCkgY29uc3Q7CisrICAgIHVuc2lnbmVkIG5leHROb25XaGl0ZXNwYWNlUG9zaXRpb24odW5zaWdu
ZWQgc3RhcnRQb3NpdGlvbik7CisrCisrICAgIExhenlMaW5lQnJlYWtJdGVyYXRvciBtX2xpbmVC
cmVha0l0ZXJhdG9yOworKyAgICBjb25zdCBTdHlsZSBtX3N0eWxlOworKyAgICBTdHJpbmcgbV90
ZXh0OworKyAgICB1bnNpZ25lZCBtX3Bvc2l0aW9uIHsgMCB9OworK307CisrCisrfQorK30KK2Rp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAoraW5kZXggMjMyOWIyYzRjN2Mu
LmVjMTVjZDU0ZmE0IDEwMDY0NAorLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcAorKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cAorQEAgLTQwLDYgKzQwLDcgQEAKKyAjaW5jbHVkZSAiSW5saW5lSXRlcmF0b3IuaCIKKyAjaW5j
bHVkZSAiSW5saW5lVGV4dEJveC5oIgorICNpbmNsdWRlICJMYXlvdXRSZXBhaW50ZXIuaCIKKysj
aW5jbHVkZSAiTGF5b3V0U3RhdGUuaCIKKyAjaW5jbHVkZSAiTG9naWNhbFNlbGVjdGlvbk9mZnNl
dENhY2hlcy5oIgorICNpbmNsdWRlICJPdmVyZmxvd0V2ZW50LmgiCisgI2luY2x1ZGUgIlBhZ2Uu
aCIKIGRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCiBpbmRl
eCA4NWYzNDA5MGRlNS4uNTAzZDcxZWI4OGUgMTAwNjQ0CiAtLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtMzcyLDggKzEzODIsNDQgQEAgaW5kZXgg
NTJkYzdkYWQ0YjUuLjY5NmU1YTVlZTViIDEwMDY0NAogICNlbmRpZgogIAogICAgICAvLyBSZXR1
cm5zIHRoZSBsb2dpY2FsT2Zmc2V0IGF0IHRoZSB0b3Agb2YgdGhlIG5leHQgcGFnZS4gSWYgdGhl
IG9mZnNldCBwYXNzZWQgaW4gaXMgYWxyZWFkeSBhdCB0aGUgdG9wIG9mIHRoZSBjdXJyZW50IHBh
Z2UsCitkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0
ZWRGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVj
YXRlZEZsZXhpYmxlQm94LmNwcAoraW5kZXggZTcxNTIxOWUyNjguLjYxMDhiMDEzNDFkIDEwMDY0
NAorLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJs
ZUJveC5jcHAKKysrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVk
RmxleGlibGVCb3guY3BwCitAQCAtMjcsNiArMjcsNyBAQAorIAorICNpbmNsdWRlICJGb250Q2Fz
Y2FkZS5oIgorICNpbmNsdWRlICJMYXlvdXRSZXBhaW50ZXIuaCIKKysjaW5jbHVkZSAiTGF5b3V0
U3RhdGUuaCIKKyAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKKyAjaW5jbHVkZSAiUmVuZGVyVmll
dy5oIgorICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcklGcmFtZS5jcHAKK2luZGV4IDA2ZDgwNmMwYjYxLi4yYjcwOTBkNDVi
YSAxMDA2NDQKKy0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJRnJhbWUuY3Bw
CisrKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcAorQEAgLTMy
LDYgKzMyLDcgQEAKKyAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisgI2luY2x1ZGUgIlJlbmRlclZp
ZXcuaCIKKyAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKysjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lu
bGluZXMuaD4KKyAjaW5jbHVkZSA8d3RmL1N0YWNrU3RhdHMuaD4KKyAKKyBuYW1lc3BhY2UgV2Vi
Q29yZSB7CitkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKK2luZGV4IDAy
MDk0YTMyN2E1Li42OTViMDIzNTc4MCAxMDA2NDQKKy0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbWFnZS5jcHAKKysrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJbWFnZS5jcHAKK0BAIC00NSw2ICs0NSw3IEBACisgI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgor
ICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCisgI2luY2x1ZGUgIklubGluZUVsZW1lbnRCb3gu
aCIKKysjaW5jbHVkZSAiTGF5b3V0U3RhdGUuaCIKKyAjaW5jbHVkZSAiUGFnZS5oIgorICNpbmNs
dWRlICJQYWludEluZm8uaCIKKyAjaW5jbHVkZSAiUmVuZGVyRnJhZ21lbnRlZEZsb3cuaCIKIGRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCi1pbmRleCAwNTU1YjFlNzEy
Zi4uZTFmMTU3OGM5NmEgMTAwNjQ0CitpbmRleCAwNTU1YjFlNzEyZi4uOGM3ODQ3NTFhNjIgMTAw
NjQ0CiAtLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAogKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKIEBAIC0xMDgsNyAr
MTA4LDcgQEAgc3RydWN0IFNhbWVTaXplQXNSZW5kZXJPYmplY3QgewpAQCAtMzk0LDcgKzE0NDAs
MjEgQEAgaW5kZXggMDU1NWIxZTcxMmYuLmUxZjE1NzhjOTZhIDEwMDY0NAogICAgICBpZiAoUmVu
ZGVyVmlldyogcmVuZGVyVmlldyA9IG5vZGUuZG9jdW1lbnQoKS5yZW5kZXJWaWV3KCkpCiAgICAg
ICAgICByZW5kZXJWaWV3LT5kaWRDcmVhdGVSZW5kZXJlcigpOwogICNpZm5kZWYgTkRFQlVHCi1A
QCAtMTE5NywxNCArMTE5OSw4MCBAQCB2b2lkIFJlbmRlck9iamVjdDo6b3V0cHV0UmVuZGVyT2Jq
ZWN0KFRleHRTdHJlYW0mIHN0cmVhbSwgYm9vbCBtYXJrLCBpbnQgZGVwdGgpCitAQCAtMTAxMiw2
ICsxMDE0LDEzIEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpzaG93UmVuZGVyVHJlZUZvclRoaXMoKSBj
b25zdAorICAgICBXVEZMb2dBbHdheXMoIiVzIiwgc3RyZWFtLnJlbGVhc2UoKS51dGY4KCkuZGF0
YSgpKTsKKyB9CisgCisrdm9pZCBSZW5kZXJPYmplY3Q6Om91dHB1dFJlbmRlclN1YlRyZWVBbmRN
YXJrKFRleHRTdHJlYW0mIHN0cmVhbSwgY29uc3QgUmVuZGVyT2JqZWN0KiBtYXJrZWRPYmplY3Qs
IGludCBkZXB0aCkgY29uc3QKKyt7CisrICAgIG91dHB1dFJlbmRlck9iamVjdChzdHJlYW0sIG1h
cmtlZE9iamVjdCA9PSB0aGlzLCBkZXB0aCk7CisrICAgIGlmIChpczxSZW5kZXJCbG9ja0Zsb3c+
KCp0aGlzKSkKKysgICAgICAgIGRvd25jYXN0PFJlbmRlckJsb2NrRmxvdz4oKnRoaXMpLm91dHB1
dExpbmVUcmVlQW5kTWFyayhzdHJlYW0sIG51bGxwdHIsIGRlcHRoICsgMSk7CisrfQorKworIHZv
aWQgUmVuZGVyT2JqZWN0OjpzaG93TGluZVRyZWVGb3JUaGlzKCkgY29uc3QKKyB7CisgICAgIGlm
ICghaXM8UmVuZGVyQmxvY2tGbG93PigqdGhpcykpCitAQCAtMTE5NywxNCArMTIwNiw4MCBAQCB2
b2lkIFJlbmRlck9iamVjdDo6b3V0cHV0UmVuZGVyT2JqZWN0KFRleHRTdHJlYW0mIHN0cmVhbSwg
Ym9vbCBtYXJrLCBpbnQgZGVwdGgpCiAgICAgIHN0cmVhbS5uZXh0TGluZSgpOwogIH0KICAKQEAg
LTQwOSw3ICsxNDY5LDcgQEAgaW5kZXggMDU1NWIxZTcxMmYuLmUxZjE1NzhjOTZhIDEwMDY0NAog
KyAgICBmb3IgKGF1dG8qIGNoaWxkID0gZmlyc3RDaGlsZFNsb3coKTsgY2hpbGQ7IGNoaWxkID0g
Y2hpbGQtPm5leHRTaWJsaW5nKCkpCiArICAgICAgICBjaGlsZC0+cmVuZGVyU3VidHJlZVN0cnVj
dHVyZShzdHJlYW0pOwogK30KLSsKKyAKICsvLyAxKClSZW5kZXJWaWV3fDIoMSlSZW5kZXJCbG9j
a3wzKDIpUmVuZGVyQm9keXw0KDMpUmVuZGVyQmxvY2t8NSgzKUFub255bW91c1JlbmRlckJsb2Nr
fAogK3ZvaWQgUmVuZGVyT2JqZWN0OjpvdXRwdXRSZW5kZXJPYmplY3RTdHJ1Y3R1cmUoV1RGOjpU
ZXh0U3RyZWFtJiBzdHJlYW0pIGNvbnN0CiArewpAQCAtNDE4LDcgKzE0NzgsNyBAQCBpbmRleCAw
NTU1YjFlNzEyZi4uZTFmMTU3OGM5NmEgMTAwNjQ0CiArICAgICAgICBzdHJlYW0gPDwgIigiIDw8
IHBhcmVudCgpLT5yZW5kZXJJZCgpIDw8ICIpIjsKICsgICAgZWxzZQogKyAgICAgICAgc3RyZWFt
IDw8ICIoKSI7Ci0gCisrCiArICAgIFN0cmluZyBuYW1lID0gcmVuZGVyTmFtZSgpOwogKyAgICAv
LyBGSVhNRTogUmVuZGVyZXIncyBuYW1lIHNob3VsZCBub3QgaW5jbHVkZSBwcm9wZXJ0eSB2YWx1
ZSBsaXN0aW5nLgogKyAgICBpbnQgcG9zID0gbmFtZS5maW5kKCcoJyk7CkBAIC01MjAsNyArMTU4
MCw3IEBAIGluZGV4IDNjNGYxNWFhNGYxLi4zODNiYjQ2Yjg3NiAxMDA2NDQKICAgICAgUmVuZGVy
RWxlbWVudCogbV9wYXJlbnQ7CiAgICAgIFJlbmRlck9iamVjdCogbV9wcmV2aW91czsKIGRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKLWluZGV4IDZhZTA0N2M0NjlmLi4zYTlm
NDgzOTM1MiAxMDA2NDQKK2luZGV4IGU1NWJlMWU2YWQ4Li5lOTk3OTBkMWM4MyAxMDA2NDQKIC0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAogKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCiBAQCAtMjI4LDYgKzIyOCwxMSBAQCBU
ZXh0KiBSZW5kZXJUZXh0Ojp0ZXh0Tm9kZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Ub29scy9TY3Jp
cHRzL2R1bXAtY2xhc3MtbGF5b3V0IGIvVG9vbHMvU2NyaXB0cy9kdW1wLWNsYXNzLWxheW91dApp
bmRleCAwMzc0NDdlNmM4YmE5MzY5NjFlN2ViNWU0YzZkMDA2YzU0OWRlMzcxLi5kNDE4NjQ0NTU4
MzZlM2IwZTJiMDY1NDZiOWJhYjYyNjY4NTg2ZWM1IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRz
L2R1bXAtY2xhc3MtbGF5b3V0CisrKyBiL1Rvb2xzL1NjcmlwdHMvZHVtcC1jbGFzcy1sYXlvdXQK
QEAgLTU4LDggKzU4LDggQEAgZGVmIGltcG9ydF9sbGRiKCk6CiAKIGRlZiB2ZXJpZnlfdHlwZSh0
YXJnZXQsIHR5cGUpOgogICAgIHR5cGVuYW1lID0gdHlwZS5HZXROYW1lKCkKLSAgICBzZWVuQmVm
b3JlID0gU2V0KCkKLSAgICAoZW5kX29mZnNldCwgcGFkZGluZykgPSB2ZXJpZnlfdHlwZV9yZWN1
cnNpdmUodGFyZ2V0LCB0eXBlLCBOb25lLCAwLCAwLCAwLCBzZWVuQmVmb3JlKQorICAgIHNlZW5P
ZmZzZXQgPSBTZXQoKQorICAgIChlbmRfb2Zmc2V0LCBwYWRkaW5nKSA9IHZlcmlmeV90eXBlX3Jl
Y3Vyc2l2ZSh0YXJnZXQsIHR5cGUsIE5vbmUsIDAsIDAsIDAsIHNlZW5PZmZzZXQpCiAgICAgYnl0
ZV9zaXplID0gdHlwZS5HZXRCeXRlU2l6ZSgpCiAgICAgcHJpbnQgJ1RvdGFsIGJ5dGUgc2l6ZTog
JXUnICUgKGJ5dGVfc2l6ZSkKICAgICBwcmludCAnVG90YWwgcGFkIGJ5dGVzOiAldScgJSAocGFk
ZGluZykKQEAgLTY3LDcgKzY3LDcgQEAgZGVmIHZlcmlmeV90eXBlKHRhcmdldCwgdHlwZSk6CiAg
ICAgICAgIHByaW50ICdQYWRkaW5nIHBlcmNlbnRhZ2U6ICUyLjJmICUlJyAlICgoZmxvYXQocGFk
ZGluZykgLyBmbG9hdChieXRlX3NpemUpKSAqIDEwMC4wKQogICAgIHByaW50CiAKLWRlZiB2ZXJp
ZnlfdHlwZV9yZWN1cnNpdmUodGFyZ2V0LCB0eXBlLCBtZW1iZXJfbmFtZSwgZGVwdGgsIGJhc2Vf
b2Zmc2V0LCBwYWRkaW5nLCBzZWVuQmVmb3JlKToKK2RlZiB2ZXJpZnlfdHlwZV9yZWN1cnNpdmUo
dGFyZ2V0LCB0eXBlLCBtZW1iZXJfbmFtZSwgZGVwdGgsIGJhc2Vfb2Zmc2V0LCBwYWRkaW5nLCBz
ZWVuT2Zmc2V0KToKICAgICBwcmV2X2VuZF9vZmZzZXQgPSBiYXNlX29mZnNldAogICAgIHR5cGVu
YW1lID0gdHlwZS5HZXROYW1lKCkKICAgICBieXRlX3NpemUgPSB0eXBlLkdldEJ5dGVTaXplKCkK
QEAgLTEwNSw3ICsxMDUsNyBAQCBkZWYgdmVyaWZ5X3R5cGVfcmVjdXJzaXZlKHRhcmdldCwgdHlw
ZSwgbWVtYmVyX25hbWUsIGRlcHRoLCBiYXNlX29mZnNldCwgcGFkZGluZwogICAgICAgICAgICAg
ICAgICAgICBwcmludCAnJSs0dSA8JTN1PiAlczxQQURESU5HPicgJSAocHJldl9lbmRfb2Zmc2V0
LCBtZW1iZXJfcGFkZGluZywgJyAgICAnICogKGRlcHRoICsgMSkpCiAKICAgICAgICAgICAgIGlm
IG1lbWJlcl9pc19jbGFzc19vcl9zdHJ1Y3Q6Ci0gICAgICAgICAgICAgICAgKHByZXZfZW5kX29m
ZnNldCwgcGFkZGluZykgPSB2ZXJpZnlfdHlwZV9yZWN1cnNpdmUodGFyZ2V0LCBtZW1iZXJfY2Fu
b25pY2FsX3R5cGUsIG1lbWJlcl9uYW1lLCBkZXB0aCArIDEsIG1lbWJlcl90b3RhbF9vZmZzZXQs
IHBhZGRpbmcsIHNlZW5CZWZvcmUpCisgICAgICAgICAgICAgICAgKHByZXZfZW5kX29mZnNldCwg
cGFkZGluZykgPSB2ZXJpZnlfdHlwZV9yZWN1cnNpdmUodGFyZ2V0LCBtZW1iZXJfY2Fub25pY2Fs
X3R5cGUsIG1lbWJlcl9uYW1lLCBkZXB0aCArIDEsIG1lbWJlcl90b3RhbF9vZmZzZXQsIHBhZGRp
bmcsIHNlZW5PZmZzZXQpCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHByZXZf
ZW5kX29mZnNldCA9IG1lbWJlcl90b3RhbF9vZmZzZXQgKyBtZW1iZXJfYnl0ZV9zaXplCiAgICAg
ICAgICAgICAgICAgbWVtYmVyX3R5cGVuYW1lID0gbWVtYmVyX3R5cGUuR2V0TmFtZSgpCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3J1bi1ndGstdGVzdHMgYi9Ub29scy9TY3JpcHRzL3J1bi1n
dGstdGVzdHMKaW5kZXggYjVkNzI3NmI1ZTJjYzZiMWQ0YmMzMTZjODRlYzM5ODU4MTI0YWY1ZS4u
MWNiNWFmZWZkMWZjZGRiN2I1MTJjN2E5YjZkN2ExY2YwNzFjNTFmMSAxMDA3NTUKLS0tIGEvVG9v
bHMvU2NyaXB0cy9ydW4tZ3RrLXRlc3RzCisrKyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWd0ay10ZXN0
cwpAQCAtMTE5LDEwICsxMTksMTAgQEAgY2xhc3MgR3RrVGVzdFJ1bm5lcihUZXN0UnVubmVyKToK
ICAgICAgICAgc3VwZXIoR3RrVGVzdFJ1bm5lciwgc2VsZikuX3RlYXJfZG93bl90ZXN0aW5nX2Vu
dmlyb25tZW50KCkKIAogICAgIGRlZiBpc19nbGliX3Rlc3Qoc2VsZiwgdGVzdF9wcm9ncmFtKToK
LSAgICAgICAgcmV0dXJuIG9zLnBhdGguYmFzZW5hbWUob3MucGF0aC5kaXJuYW1lKHRlc3RfcHJv
Z3JhbSkpID09ICJXZWJLaXQyR3RrIgorICAgICAgICByZXR1cm4gb3MucGF0aC5iYXNlbmFtZShv
cy5wYXRoLmRpcm5hbWUodGVzdF9wcm9ncmFtKSkgaW4gWyJXZWJLaXQyR3RrIiwgIkphdmFTY3Jp
cHRDb3JlIl0KIAogICAgIGRlZiBpc19nb29nbGVfdGVzdChzZWxmLCB0ZXN0X3Byb2dyYW0pOgot
ICAgICAgICByZXR1cm4gb3MucGF0aC5iYXNlbmFtZShvcy5wYXRoLmRpcm5hbWUodGVzdF9wcm9n
cmFtKSkgaW4gWyJXZWJLaXQiLCAiSmF2YVNjcmlwdENvcmUiLCAiV1RGIiwgIldlYkNvcmUiLCAg
IldlYkNvcmVHdGsiXQorICAgICAgICByZXR1cm4gb3MucGF0aC5iYXNlbmFtZShvcy5wYXRoLmRp
cm5hbWUodGVzdF9wcm9ncmFtKSkgaW4gWyJXZWJLaXQiLCAiV1RGIiwgIldlYkNvcmUiLCAgIldl
YkNvcmVHdGsiXQogCiBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgIGlmIG5vdCBqaGJ1
aWxkdXRpbHMuZW50ZXJfamhidWlsZF9lbnZpcm9ubWVudF9pZl9hdmFpbGFibGUoImd0ayIpOgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9ydW4td3BlLXRlc3RzIGIvVG9vbHMvU2NyaXB0cy9y
dW4td3BlLXRlc3RzCmluZGV4IGQ5YWFkOGJmMGQxNzk4YjljNmNlZDI2ZmQ1NWIyMmZlY2U3NTU3
ZWYuLmMzYjdiZDI2YzYwZTIxZmMwZDQxOGQzNmVmMDI3ZjZkNzc0ZGZiZTEgMTAwNzU1Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvcnVuLXdwZS10ZXN0cworKysgYi9Ub29scy9TY3JpcHRzL3J1bi13cGUt
dGVzdHMKQEAgLTM1LDEwICszNSwxMCBAQCBjbGFzcyBXUEVUZXN0UnVubmVyKFRlc3RSdW5uZXIp
OgogICAgICAgICBzdXBlcihXUEVUZXN0UnVubmVyLCBzZWxmKS5fX2luaXRfXygid3BlIiwgb3B0
aW9ucywgdGVzdHMpCiAKICAgICBkZWYgaXNfZ2xpYl90ZXN0KHNlbGYsIHRlc3RfcHJvZ3JhbSk6
Ci0gICAgICAgIHJldHVybiBvcy5wYXRoLmJhc2VuYW1lKG9zLnBhdGguZGlybmFtZSh0ZXN0X3By
b2dyYW0pKSA9PSAiV1BFIgorICAgICAgICByZXR1cm4gb3MucGF0aC5iYXNlbmFtZShvcy5wYXRo
LmRpcm5hbWUodGVzdF9wcm9ncmFtKSkgaW4gWyJXUEUiLCAiSmF2YVNjcmlwdENvcmUiXQogCiAg
ICAgZGVmIGlzX2dvb2dsZV90ZXN0KHNlbGYsIHRlc3RfcHJvZ3JhbSk6Ci0gICAgICAgIHJldHVy
biBvcy5wYXRoLmJhc2VuYW1lKG9zLnBhdGguZGlybmFtZSh0ZXN0X3Byb2dyYW0pKSBpbiBbIldl
YktpdCIsICJKYXZhU2NyaXB0Q29yZSIsICJXVEYiLCAiV2ViQ29yZSJdCisgICAgICAgIHJldHVy
biBvcy5wYXRoLmJhc2VuYW1lKG9zLnBhdGguZGlybmFtZSh0ZXN0X3Byb2dyYW0pKSBpbiBbIldl
YktpdCIsICJXVEYiLCAiV2ViQ29yZSJdCiAKIAogaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9ydW5f
YmVuY2htYXJrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL3J1
bl9iZW5jaG1hcmsucHkKaW5kZXggZjdjM2NiOTA5OTg5OTRmMDU4YWJiYTM0YTUzN2U4NGIxYTQz
ZjkxMy4uODc1MmYyYjZmYzc2YjQ0MTBiYjRiYzY0NjUwYzdlOGE2OTI1ZjliZCAxMDA3NTUKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL3J1bl9iZW5jaG1hcmsu
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL3J1bl9iZW5j
aG1hcmsucHkKQEAgLTg2LDcgKzg2LDcgQEAgZGVmIHN0YXJ0KGFyZ3MpOgogICAgICAgICBmYWls
ZWQgPSBbXQogICAgICAgICBza2lwcGVkID0gW10KICAgICAgICAgcGxhbmxpc3QgPSBCZW5jaG1h
cmtSdW5uZXIuYXZhaWxhYmxlX3BsYW5zKCkKLSAgICAgICAgc2tpcHBlZGZpbGUgPSBvcy5wYXRo
LmpvaW4ocGxhbmRpciwgJ1NraXBwZWQnKQorICAgICAgICBza2lwcGVkZmlsZSA9IG9zLnBhdGgu
am9pbihCZW5jaG1hcmtSdW5uZXIucGxhbl9kaXJlY3RvcnkoKSwgJ1NraXBwZWQnKQogICAgICAg
ICBpZiBub3QgcGxhbmxpc3Q6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0NhbnQgZmlu
ZCBhbnkgLnBsYW4gZmlsZSBpbiBkaXJlY3RvcnkgJXMnICUgQmVuY2htYXJrUnVubmVyLnBsYW5f
ZGlyZWN0b3J5KCkpCiAgICAgICAgIGlmIG9zLnBhdGguaXNmaWxlKHNraXBwZWRmaWxlKToKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2Vi
X3BsYXRmb3JtX3Rlc3RfbGF1bmNoZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9zZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X2xhdW5jaGVyLnB5CmluZGV4IDc0ZDg2
NTEzODFmMWQ4M2YzMDM4OTAwMmMyZTcwZDYxNzAxN2IzOTcuLmViNWZhMDkxODgxNzUwODM0MDU1
M2VjMzExZGM5MmZiNTQ3M2EwM2QgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3RfbGF1bmNoZXIucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJfcGxhdGZvcm1f
dGVzdF9sYXVuY2hlci5weQpAQCAtNDYsOSArNDYsMTEgQEAgZGVmIG1haW4oYXJndiwgc3Rkb3V0
LCBzdGRlcnIpOgogICAgIFdlYlBsYXRmb3JtVGVzdFNlcnZlci5zZXR1cF9sb2dnZXIoY29uZmln
WyJsb2dfbGV2ZWwiXSkKICAgICBsb2dnZWRfc2VydmVycyA9IFtdCiAKLSAgICB3aXRoIHN0YXNo
LlN0YXNoU2VydmVyKChjb25maWdbImhvc3QiXSwgV2ViUGxhdGZvcm1UZXN0U2VydmVyLmdldF9w
b3J0KCkpLCBhdXRoa2V5PXN0cih1dWlkLnV1aWQ0KCkpKToKKyAgICB3aXRoIHN0YXNoLlN0YXNo
U2VydmVyKChjb25maWdbImJyb3dzZXJfaG9zdCJdLCBXZWJQbGF0Zm9ybVRlc3RTZXJ2ZXIuZ2V0
X3BvcnQoKSksIGF1dGhrZXk9c3RyKHV1aWQudXVpZDQoKSkpOgogICAgICAgICB3aXRoIFdlYlBs
YXRmb3JtVGVzdFNlcnZlci5nZXRfc3NsX2Vudmlyb25tZW50KGNvbmZpZykgYXMgc3NsX2VudjoK
LSAgICAgICAgICAgIGNvbmZpZ18sIHN0YXJ0ZWRfc2VydmVycyA9IFdlYlBsYXRmb3JtVGVzdFNl
cnZlci5zdGFydChjb25maWcsIHNzbF9lbnYsIGJ1aWxkX3JvdXRlcyhjb25maWdbImFsaWFzZXMi
XSkpCisgICAgICAgICAgICBwb3J0cyA9IFdlYlBsYXRmb3JtVGVzdFNlcnZlci5nZXRfcG9ydHMo
Y29uZmlnLCBzc2xfZW52KQorICAgICAgICAgICAgY29uZmlnXyA9IFdlYlBsYXRmb3JtVGVzdFNl
cnZlci5ub3JtYWxpc2VfY29uZmlnKGNvbmZpZywgcG9ydHMpCisgICAgICAgICAgICBzdGFydGVk
X3NlcnZlcnMgPSBXZWJQbGF0Zm9ybVRlc3RTZXJ2ZXIuc3RhcnQoY29uZmlnXywgc3NsX2Vudiwg
YnVpbGRfcm91dGVzKGNvbmZpZ1siYWxpYXNlcyJdKSkKIAogICAgICAgICAgICAgZm9yIHByb3Rv
Y29sLCBzZXJ2ZXJzIGluIHN0YXJ0ZWRfc2VydmVycy5pdGVtcygpOgogICAgICAgICAgICAgICAg
IGZvciBwb3J0LCBwcm9jZXNzIGluIHNlcnZlcnM6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlci5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRm
b3JtX3Rlc3Rfc2VydmVyLnB5CmluZGV4IGMwMjJlOWQzMGM2NjQ1ODY5NTk2NjA0NmE0MGEzM2Mz
YTYyMTc3YTcuLjY0NDRmNWU1OWM4OWZhZGY5MjBmMGVkNWIwNDZmMmI0MjFiNzYyNWEgMTAwNzU1
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3Bs
YXRmb3JtX3Rlc3Rfc2VydmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyLnB5CkBAIC01Miw3ICs1Miw3
IEBAIGRlZiBiYXNlX2h0dHBfdXJsKHBvcnRfb2JqKToKICAgICAgICAgX2xvZy5kZWJ1ZygiTm8g
V1BUIGNvbmZpZyBmaWxlIGZvdW5kIikKICAgICAgICAgcmV0dXJuICJodHRwOi8vbG9jYWxob3N0
Ojg4MDAvIgogICAgIHBvcnRzID0gY29uZmlnWyJwb3J0cyJdCi0gICAgcmV0dXJuICJodHRwOi8v
IiArIGNvbmZpZ1siaG9zdCJdICsgIjoiICsgc3RyKHBvcnRzWyJodHRwIl1bMF0pICsgIi8iCisg
ICAgcmV0dXJuICJodHRwOi8vIiArIGNvbmZpZ1siYnJvd3Nlcl9ob3N0Il0gKyAiOiIgKyBzdHIo
cG9ydHNbImh0dHAiXVswXSkgKyAiLyIKIAogCiBkZWYgYmFzZV9odHRwc191cmwocG9ydF9vYmop
OgpAQCAtNjIsNyArNjIsNyBAQCBkZWYgYmFzZV9odHRwc191cmwocG9ydF9vYmopOgogICAgICAg
ICBfbG9nLmRlYnVnKCJObyBXUFQgY29uZmlnIGZpbGUgZm91bmQiKQogICAgICAgICByZXR1cm4g
Imh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvIgogICAgIHBvcnRzID0gY29uZmlnWyJwb3J0cyJdCi0g
ICAgcmV0dXJuICJodHRwczovLyIgKyBjb25maWdbImhvc3QiXSArICI6IiArIHN0cihwb3J0c1si
aHR0cHMiXVswXSkgKyAiLyIKKyAgICByZXR1cm4gImh0dHBzOi8vIiArIGNvbmZpZ1siYnJvd3Nl
cl9ob3N0Il0gKyAiOiIgKyBzdHIocG9ydHNbImh0dHBzIl1bMF0pICsgIi8iCiAKIAogZGVmIGlz
X3dwdF9zZXJ2ZXJfcnVubmluZyhwb3J0X29iaik6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3BvcnQvYXBwbGUucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYXBw
bGUucHkKaW5kZXggNjFkMmMyYTkwZDc3ZTUzYjhkZDMzNWQ1MjZmYWJjZjAxNjlkOThiYi4uZDc1
NDFmZTcxMWUwYjhiNWJjZmYxY2VkMDAzMTM0MGNhMTQ5MTY1MiAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wb3J0L2FwcGxlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvcG9ydC9hcHBsZS5weQpAQCAtNTUsMTcgKzU1LDE3IEBAIGNsYXNzIEFwcGxlUG9ydChQb3J0
KToKICAgICAgICAgICAgIGlmIGhvc3QucGxhdGZvcm0ub3NfbmFtZSA9PSAnbWFjJyBhbmQgJ2lv
cy1zaW11bGF0b3InIGluIHBvcnRfbmFtZToKICAgICAgICAgICAgICAgICByZXR1cm4gcG9ydF9u
YW1lCiAKKyAgICAgICAgICAgIHZlcnNpb25fbmFtZV9hZGRpdGlvbiA9ICgnLScgKyBob3N0LnBs
YXRmb3JtLm9zX3ZlcnNpb25fbmFtZSgpLmxvd2VyKCkucmVwbGFjZSgnICcsICcnKSkgaWYgaG9z
dC5wbGF0Zm9ybS5vc192ZXJzaW9uX25hbWUoKSBlbHNlICcnCisKICAgICAgICAgICAgICMgSWYg
dGhlIHBvcnRfbmFtZSBtYXRjaGVzIHRoZSAoYmFkbHkgbmFtZWQpIGNscy5wb3J0X25hbWUsIHRo
YXQKICAgICAgICAgICAgICMgbWVhbnMgdGhhdCB0aGV5IHBhc3NlZCAnbWFjJyBvciAnd2luJyBh
bmQgZGlkbid0IHNwZWNpZnkgYSB2ZXJzaW9uLgogICAgICAgICAgICAgIyBUaGF0IGNvbnZlbnRp
b24gbWVhbnMgdGhhdCB3ZSdyZSBzdXBwb3NlZCB0byB1c2UgdGhlIHZlcnNpb24gY3VycmVudGx5
CiAgICAgICAgICAgICAjIGJlaW5nIHJ1biwgc28gdGhpcyB3b24ndCB3b3JrIGlmIHlvdSdyZSBu
b3Qgb24gbWFjIG9yIHdpbiAocmVzcGVjdGl2ZWx5KS4KLSAgICAgICAgICAgICMgSWYgeW91J3Jl
IG5vdCBvbiB0aGUgby9zIGluIHF1ZXN0aW9uLCB5b3UgbXVzdCBzcGVjaWZ5IGEgZnVsbCB2ZXJz
aW9uIG9yIC1mdXR1cmUgKGNmLiBhYm92ZSkuCi0gICAgICAgICAgICBpZiBwb3J0X25hbWUgPT0g
Y2xzLnBvcnRfbmFtZSBhbmQgbm90IGdldGF0dHIob3B0aW9ucywgJ3dlYmtpdF90ZXN0X3J1bm5l
cicsIEZhbHNlKSBhbmQgaG9zdC5wbGF0Zm9ybS5vc192ZXJzaW9uX25hbWUoKToKLSAgICAgICAg
ICAgICAgICBwb3J0X25hbWUgPSBjbHMucG9ydF9uYW1lICsgJy0nICsgaG9zdC5wbGF0Zm9ybS5v
c192ZXJzaW9uX25hbWUoKS5sb3dlcigpLnJlcGxhY2UoJyAnLCAnJykKLSAgICAgICAgICAgIGVs
aWYgaG9zdC5wbGF0Zm9ybS5vc192ZXJzaW9uX25hbWUoKToKLSAgICAgICAgICAgICAgICBwb3J0
X25hbWUgPSBjbHMucG9ydF9uYW1lICsgJy0nICsgaG9zdC5wbGF0Zm9ybS5vc192ZXJzaW9uX25h
bWUoKS5sb3dlcigpLnJlcGxhY2UoJyAnLCAnJykgKyAnLXdrMicKKyAgICAgICAgICAgICMgSWYg
eW91J3JlIG5vdCBvbiB0aGUgby9zIGluIHF1ZXN0aW9uLCB5b3UgbXVzdCBzcGVjaWZ5IGEgZnVs
bCB2ZXJzaW9uIChjZi4gYWJvdmUpLgorICAgICAgICAgICAgaWYgcG9ydF9uYW1lID09IGNscy5w
b3J0X25hbWUgYW5kIG5vdCBnZXRhdHRyKG9wdGlvbnMsICd3ZWJraXRfdGVzdF9ydW5uZXInLCBG
YWxzZSk6CisgICAgICAgICAgICAgICAgcG9ydF9uYW1lID0gY2xzLnBvcnRfbmFtZSArIHZlcnNp
b25fbmFtZV9hZGRpdGlvbgogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBwb3J0
X25hbWUgPSBjbHMucG9ydF9uYW1lICsgJy13azInCisgICAgICAgICAgICAgICAgcG9ydF9uYW1l
ID0gY2xzLnBvcnRfbmFtZSArIHZlcnNpb25fbmFtZV9hZGRpdGlvbiArICctd2syJwogICAgICAg
ICBlbGlmIGdldGF0dHIob3B0aW9ucywgJ3dlYmtpdF90ZXN0X3J1bm5lcicsIEZhbHNlKSBhbmQg
ICctd2syJyBub3QgaW4gcG9ydF9uYW1lOgogICAgICAgICAgICAgcG9ydF9uYW1lICs9ICctd2sy
JwogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbWFjLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L21hYy5weQppbmRleCA2YmQxZDk1OTE1ZDYyNjdhNDk5
M2EzZGE4ZjEyNzA3NDAxYjJkMDU0Li5iNzRiZDAxMzkyYmM3MzQ4ZDlmZGVhYmE2NzZlNDhjNDk3
ODFmMzRkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbWFjLnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9tYWMucHkKQEAgLTU3LDggKzU3LDkgQEAg
Y2xhc3MgTWFjUG9ydChEYXJ3aW5Qb3J0KToKICAgICAgICAgRGFyd2luUG9ydC5fX2luaXRfXyhz
ZWxmLCBob3N0LCBwb3J0X25hbWUsICoqa3dhcmdzKQogICAgICAgICB2ZXJzaW9uX25hbWVfbWFw
ID0gVmVyc2lvbk5hbWVNYXAubWFwKGhvc3QucGxhdGZvcm0pCiAgICAgICAgIHNlbGYuX29zX3Zl
cnNpb24gPSBOb25lCi0gICAgICAgIGlmIHBvcnRfbmFtZS5zcGxpdCgnLScpID4gMToKLSAgICAg
ICAgICAgIHNlbGYuX29zX3ZlcnNpb24gPSB2ZXJzaW9uX25hbWVfbWFwLmZyb21fbmFtZShwb3J0
X25hbWUuc3BsaXQoJy0nKVsxXSlbMV0KKyAgICAgICAgc3BsaXRfcG9ydF9uYW1lID0gcG9ydF9u
YW1lLnNwbGl0KCctJykKKyAgICAgICAgaWYgbGVuKHNwbGl0X3BvcnRfbmFtZSkgPiAxIGFuZCBz
cGxpdF9wb3J0X25hbWVbMV0gIT0gJ3drMic6CisgICAgICAgICAgICBzZWxmLl9vc192ZXJzaW9u
ID0gdmVyc2lvbl9uYW1lX21hcC5mcm9tX25hbWUoc3BsaXRfcG9ydF9uYW1lWzFdKVsxXQogICAg
ICAgICBlbGlmIHNlbGYuaG9zdC5wbGF0Zm9ybS5pc19tYWMoKToKICAgICAgICAgICAgIHNlbGYu
X29zX3ZlcnNpb24gPSBzZWxmLmhvc3QucGxhdGZvcm0ub3NfdmVyc2lvbgogICAgICAgICBpZiBu
b3Qgc2VsZi5fb3NfdmVyc2lvbjoKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
cG9ydC9tYWNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbWFjX3Vu
aXR0ZXN0LnB5CmluZGV4IGY0Mzg5MjA5NGEwMDJmYmVjNmFlNzU3ZjEyZmE1N2RkYmQ5NzIzZTcu
Ljk3YmE1YzE3ODVlMDNjNGU1OTAzZTRiZTBmNjg3NjMzZmU4NmMzMzkgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9tYWNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9wb3J0L21hY191bml0dGVzdC5weQpAQCAtNDIsNiArNDIsMTEgQEAgY2xh
c3MgTWFjVGVzdChkYXJ3aW5fdGVzdGNhc2UuRGFyd2luVGVzdCk6CiAgICAgcG9ydF9uYW1lID0g
J21hYy1saW9uJwogICAgIHBvcnRfbWFrZXIgPSBNYWNQb3J0CiAKKyAgICAjIDIgbWlub3IgdmVy
c2lvbnMgZnJvbSB0aGUgY3VycmVudCB2ZXJzaW9uIHNob3VsZCBhbHdheXMgYmUgYSBmdXR1cmUg
dmVyc2lvbi4KKyAgICBGVVRVUkVfVkVSU0lPTiA9IFZlcnNpb24uZnJvbV9pdGVyYWJsZShNYWNQ
b3J0LkNVUlJFTlRfVkVSU0lPTikKKyAgICBGVVRVUkVfVkVSU0lPTi5taW5vciArPSAyCisKKwog
ICAgIGRlZiB0ZXN0X3ZlcnNpb24oc2VsZik6CiAgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9y
dCgpCiAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHBvcnQudmVyc2lvbl9uYW1lKCkpCkBA
IC0xNTAsMyArMTU1LDUwIEBAIGNsYXNzIE1hY1Rlc3QoZGFyd2luX3Rlc3RjYXNlLkRhcndpblRl
c3QpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlYXJjaF9wYXRoWzNdLCAnL21vY2stY2hl
Y2tvdXQvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWxpb24nKQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHNlYXJjaF9wYXRoWzRdLCAnL2FkZGl0aW9uYWxfdGVzdGluZ19wYXRoL21hYy1hZGQt
bW91bnRhaW5saW9uLXdrMScpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VhcmNoX3BhdGhb
NV0sICcvbW9jay1jaGVja291dC9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtbW91bnRhaW5saW9u
LXdrMScpCisKKyAgICBkZWYgdGVzdF9mYWN0b3J5X3dpdGhfZnV0dXJlX3ZlcnNpb24oc2VsZik6
CisgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydChvcHRpb25zPU1vY2tPcHRpb25zKHdlYmtp
dF90ZXN0X3J1bm5lcj1UcnVlKSwgb3NfdmVyc2lvbj1NYWNUZXN0LkZVVFVSRV9WRVJTSU9OLCBv
c19uYW1lPSdtYWMnLCBwb3J0X25hbWU9J21hYycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cG9ydC5kcml2ZXJfbmFtZSgpLCAnV2ViS2l0VGVzdFJ1bm5lcicpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocG9ydC52ZXJzaW9uX25hbWUoKSwgTm9uZSkKKworICAgICAgICBwb3J0ID0gc2Vs
Zi5tYWtlX3BvcnQob3B0aW9ucz1Nb2NrT3B0aW9ucyh3ZWJraXRfdGVzdF9ydW5uZXI9RmFsc2Up
LCBvc192ZXJzaW9uPU1hY1Rlc3QuRlVUVVJFX1ZFUlNJT04sIG9zX25hbWU9J21hYycsIHBvcnRf
bmFtZT0nbWFjJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmRyaXZlcl9uYW1lKCks
ICdEdW1wUmVuZGVyVHJlZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC52ZXJzaW9u
X25hbWUoKSwgTm9uZSkKKworICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQob3B0aW9ucz1N
b2NrT3B0aW9ucyh3ZWJraXRfdGVzdF9ydW5uZXI9RmFsc2UpLCBvc192ZXJzaW9uPU1hY1Rlc3Qu
RlVUVVJFX1ZFUlNJT04sIG9zX25hbWU9J21hYycsIHBvcnRfbmFtZT0nbWFjLXdrMicpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5kcml2ZXJfbmFtZSgpLCAnV2ViS2l0VGVzdFJ1bm5l
cicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC52ZXJzaW9uX25hbWUoKSwgTm9uZSkK
KworICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQob3B0aW9ucz1Nb2NrT3B0aW9ucyh3ZWJr
aXRfdGVzdF9ydW5uZXI9VHJ1ZSksIG9zX3ZlcnNpb249TWFjVGVzdC5GVVRVUkVfVkVSU0lPTiwg
b3NfbmFtZT0nbWFjJywgcG9ydF9uYW1lPSdtYWMtd2syJykKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChwb3J0LmRyaXZlcl9uYW1lKCksICdXZWJLaXRUZXN0UnVubmVyJykKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChwb3J0LnZlcnNpb25fbmFtZSgpLCBOb25lKQorCisgICAgZGVmIHRlc3Rf
ZmFjdG9yeV93aXRoX3BvcnRuYW1lX3ZlcnNpb24oc2VsZik6CisgICAgICAgIHBvcnQgPSBzZWxm
Lm1ha2VfcG9ydChvcHRpb25zPU1vY2tPcHRpb25zKHdlYmtpdF90ZXN0X3J1bm5lcj1GYWxzZSks
IHBvcnRfbmFtZT0nbWFjLW1vdW50YWlubGlvbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cG9ydC5kcml2ZXJfbmFtZSgpLCAnRHVtcFJlbmRlclRyZWUnKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHBvcnQudmVyc2lvbl9uYW1lKCksICdNb3VudGFpbiBMaW9uJykKKworICAgICAgICBw
b3J0ID0gc2VsZi5tYWtlX3BvcnQob3B0aW9ucz1Nb2NrT3B0aW9ucyh3ZWJraXRfdGVzdF9ydW5u
ZXI9VHJ1ZSksIHBvcnRfbmFtZT0nbWFjLW1vdW50YWlubGlvbicpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocG9ydC5kcml2ZXJfbmFtZSgpLCAnV2ViS2l0VGVzdFJ1bm5lcicpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocG9ydC52ZXJzaW9uX25hbWUoKSwgJ01vdW50YWluIExpb24nKQor
CisgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydChvcHRpb25zPU1vY2tPcHRpb25zKHdlYmtp
dF90ZXN0X3J1bm5lcj1UcnVlKSwgcG9ydF9uYW1lPSdtYWMtbW91bnRhaW5saW9uLXdrMicpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5kcml2ZXJfbmFtZSgpLCAnV2ViS2l0VGVzdFJ1
bm5lcicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC52ZXJzaW9uX25hbWUoKSwgJ01v
dW50YWluIExpb24nKQorCisgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydChvcHRpb25zPU1v
Y2tPcHRpb25zKHdlYmtpdF90ZXN0X3J1bm5lcj1GYWxzZSksIHBvcnRfbmFtZT0nbWFjLW1vdW50
YWlubGlvbi13azInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZHJpdmVyX25hbWUo
KSwgJ1dlYktpdFRlc3RSdW5uZXInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQudmVy
c2lvbl9uYW1lKCksICdNb3VudGFpbiBMaW9uJykKKworICAgIGRlZiB0ZXN0X2ZhY3Rvcnlfd2l0
aF9wb3J0bmFtZV93azIoc2VsZik6CisgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydChvcHRp
b25zPU1vY2tPcHRpb25zKHdlYmtpdF90ZXN0X3J1bm5lcj1GYWxzZSksIHBvcnRfbmFtZT0nbWFj
JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmRyaXZlcl9uYW1lKCksICdEdW1wUmVu
ZGVyVHJlZScpCisKKyAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KG9wdGlvbnM9TW9ja09w
dGlvbnMod2Via2l0X3Rlc3RfcnVubmVyPVRydWUpLCBwb3J0X25hbWU9J21hYycpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5kcml2ZXJfbmFtZSgpLCAnV2ViS2l0VGVzdFJ1bm5lcicp
CisKKyAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KG9wdGlvbnM9TW9ja09wdGlvbnMod2Vi
a2l0X3Rlc3RfcnVubmVyPVRydWUpLCBwb3J0X25hbWU9J21hYy13azInKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHBvcnQuZHJpdmVyX25hbWUoKSwgJ1dlYktpdFRlc3RSdW5uZXInKQorCisg
ICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydChvcHRpb25zPU1vY2tPcHRpb25zKHdlYmtpdF90
ZXN0X3J1bm5lcj1GYWxzZSksIHBvcnRfbmFtZT0nbWFjLXdrMicpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocG9ydC5kcml2ZXJfbmFtZSgpLCAnV2ViS2l0VGVzdFJ1bm5lcicpCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKaW5kZXggZjFiMDkyZDFhZmUwOWNkNDcyMzJm
OWZlOGZiYzNkNDM1NWUxYzliZi4uMzMzZGNlMjY1Njc5OWQ2NzQxMTgwNGY5NmYzNDYwYTBkNTYy
ZDg3NiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQpAQCAtMzQyLDYg
KzM0Miw3IEBAIF9TS0lQUEVEX0ZJTEVTX1dJVEhfV0FSTklORyA9IFsKICAgICByZS5jb21waWxl
KHJlLmVzY2FwZShvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdXZWJLaXQnLCAnVUlQcm9jZXNzJywg
J0FQSScsICd3cGUnKSArIG9zLnBhdGguc2VwKSArIHInV2ViS2l0KD8hLipQcml2YXRlXC5oKS4q
XC5oJCcpLAogICAgIHJlLmNvbXBpbGUocmUuZXNjYXBlKG9zLnBhdGguam9pbignU291cmNlJywg
J1dlYktpdCcsICdXZWJQcm9jZXNzJywgJ0luamVjdGVkQnVuZGxlJywgJ0FQSScsICdndGsnKSAr
IG9zLnBhdGguc2VwKSArIHInV2ViS2l0KD8hLipQcml2YXRlXC5oKS4qXC5oJCcpLAogICAgIHJl
LmNvbXBpbGUocmUuZXNjYXBlKG9zLnBhdGguam9pbignU291cmNlJywgJ1dlYktpdCcsICdXZWJQ
cm9jZXNzJywgJ0luamVjdGVkQnVuZGxlJywgJ0FQSScsICd3cGUnKSArIG9zLnBhdGguc2VwKSAr
IHInV2ViS2l0KD8hLipQcml2YXRlXC5oKS4qXC5oJCcpLAorICAgIHJlLmNvbXBpbGUocmUuZXNj
YXBlKG9zLnBhdGguam9pbignU291cmNlJywgJ1dlYktpdCcsICdXZWJQcm9jZXNzJywgJ0luamVj
dGVkQnVuZGxlJywgJ0FQSScsICd3cGUnLCAnRE9NJykgKyBvcy5wYXRoLnNlcCkgKyByJ1dlYktp
dCg/IS4qUHJpdmF0ZVwuaCkuKlwuaCQnKSwKIAogICAgICMgR09iamVjdCBET00gYmluZGluZ3Mg
Y29waWVkIGZyb20gZ2VuZXJhdGVkIGNvZGUgdXNpbmcgZGlmZmVyZW50IGNvZGluZyBzdHlsZS4K
ICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScsICdXZWJLaXQnLCAnV2ViUHJvY2VzcycsICdJbmpl
Y3RlZEJ1bmRsZScsICdBUEknLCAnZ3RrJywgJ0RPTScpLApAQCAtMzUwLDcgKzM1MSw4IEBAIF9T
S0lQUEVEX0ZJTEVTX1dJVEhfV0FSTklORyA9IFsKICAgICBvcy5wYXRoLmpvaW4oJ1NvdXJjZScs
ICdXZWJLaXQnLCAnVUlQcm9jZXNzJywgJ0FQSScsICdndGsnLCAnd2Via2l0Mi5oJyksCiAgICAg
b3MucGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViS2l0JywgJ1VJUHJvY2VzcycsICdBUEknLCAnd3Bl
JywgJ3dlYmtpdC5oJyksCiAgICAgb3MucGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViS2l0JywgJ1dl
YlByb2Nlc3MnLCAnSW5qZWN0ZWRCdW5kbGUnLCAnQVBJJywgJ2d0aycsICd3ZWJraXQtd2ViLWV4
dGVuc2lvbi5oJyksCi0gICAgb3MucGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViS2l0JywgJ1dlYlBy
b2Nlc3MnLCAnSW5qZWN0ZWRCdW5kbGUnLCAnQVBJJywgJ3dwZScsICd3ZWJraXQtd2ViLWV4dGVu
c2lvbi5oJyldCisgICAgb3MucGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViS2l0JywgJ1dlYlByb2Nl
c3MnLCAnSW5qZWN0ZWRCdW5kbGUnLCAnQVBJJywgJ3dwZScsICd3ZWJraXQtd2ViLWV4dGVuc2lv
bi5oJyksCisgICAgb3MucGF0aC5qb2luKCdTb3VyY2UnLCAnV2ViS2l0JywgJ1dlYlByb2Nlc3Mn
LCAnSW5qZWN0ZWRCdW5kbGUnLCAnQVBJJywgJ3dwZScsICdET00nLCAnd2Via2l0ZG9tLmgnKV0K
IAogIyBGaWxlcyB0byBza2lwIHRoYXQgYXJlIG1vcmUgY29tbW9uIG9yIG9idmlvdXMuCiAjCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5CmluZGV4IGViODNj
MDVlOGZmMmEwNjkxYWFjYWU3ZDRkNGYwNzQ1NGY2NzVmNjQuLjM5YjA4Y2FkNDYyY2M1MDNmOWM5
Yjg0YzMyMjFjOWI5MGU1NjdkYmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c3R5bGUvY2hlY2tlcnMvY3BwLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUv
Y2hlY2tlcnMvY3BwLnB5CkBAIC0zMjI0LDYgKzMyMjQsMTAgQEAgZGVmIGNoZWNrX2xhbmd1YWdl
KGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGZpbGVfZXh0ZW5zaW9uLCBpbmNs
dWRlX3MKICAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICdzZWN1cml0eS90ZW1wX2ZpbGUnLCA1
LAogICAgICAgICAgICAgICAnTmV2ZXIgdXNlIG1rdGVtcC4gIFVzZSBta3N0ZW1wIG9yIG1rb3N0
ZW1wIGluc3RlYWQuJykKIAorICAgIGlmIHNlYXJjaChyJ1xiZGlzcGF0Y2hfc2V0X3RhcmdldF9x
dWV1ZVxiJywgbGluZSk6CisgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAncnVudGltZS9kaXNw
YXRjaF9zZXRfdGFyZ2V0X3F1ZXVlJywgNSwKKyAgICAgICAgICAgICAgJ05ldmVyIHVzZSBkaXNw
YXRjaF9zZXRfdGFyZ2V0X3F1ZXVlLiAgVXNlIGRpc3BhdGNoX3F1ZXVlX2NyZWF0ZV93aXRoX3Rh
cmdldCBpbnN0ZWFkLicpCisKICAgICAjIENoZWNrIGZvciBzdXNwaWNpb3VzIHVzYWdlIG9mICJp
ZiIgbGlrZQogICAgICMgfSBpZiAoYSA9PSBiKSB7CiAgICAgaWYgc2VhcmNoKHInXH1ccyppZlxz
KlwoJywgbGluZSk6CkBAIC0zOTQxLDYgKzM5NDUsNyBAQCBjbGFzcyBDcHBDaGVja2VyKG9iamVj
dCk6CiAgICAgICAgICdydW50aW1lL2JpdGZpZWxkcycsCiAgICAgICAgICdydW50aW1lL2Nhc3Rp
bmcnLAogICAgICAgICAncnVudGltZS9jdHlwZV9mdW5jdGlvbicsCisgICAgICAgICdydW50aW1l
L2Rpc3BhdGNoX3NldF90YXJnZXRfcXVldWUnLAogICAgICAgICAncnVudGltZS9lbnVtX2JpdGZp
ZWxkcycsCiAgICAgICAgICdydW50aW1lL2V4cGxpY2l0JywKICAgICAgICAgJ3J1bnRpbWUvaW5p
dCcsCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2Nw
cF91bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3Bw
X3VuaXR0ZXN0LnB5CmluZGV4IGNkNGFkOGU2Zjc5N2UzNWIwZGEyZGUzM2E1NmIwNjRmZmQyN2M3
OTMuLjc4MmRkN2UzZmIzMmEwYzFlZTU0Yzk4MmY0N2M0YjVhMjg5MzU0Y2EgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwX3VuaXR0ZXN0LnB5Cisr
KyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwX3VuaXR0ZXN0LnB5
CkBAIC0xNTg4LDYgKzE1ODgsMTUgQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJh
c2UpOgogICAgICAgICBzZWxmLmFzc2VydF9saW50KCdta3N0ZW1wKHRlbXBsYXRlKTsnLCAnJykK
ICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnbWtvc3RlbXAodGVtcGxhdGUpOycsICcnKQogCisg
ICAgZGVmIHRlc3RfZGlzcGF0Y2hfc2V0X3RhcmdldF9xdWV1ZShzZWxmKToKKyAgICAgICAgc2Vs
Zi5hc3NlcnRfbGludCgKKyAgICAgICAgICAgICcnJ1wKKyAgICAgICAgICAgIGdsb2JhbFF1ZXVl
ID0gZGlzcGF0Y2hfcXVldWVfY3JlYXRlKCJNeSBTZXJpYWwgUXVldWUiLCBESVNQQVRDSF9RVUVV
RV9TRVJJQUwpOworICAgICAgICAgICAgZGlzcGF0Y2hfc2V0X3RhcmdldF9xdWV1ZShnbG9iYWxR
dWV1ZSwgZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9I
SUdILCAwKSk7JycnLAorICAgICAgICAgICAgJ05ldmVyIHVzZSBkaXNwYXRjaF9zZXRfdGFyZ2V0
X3F1ZXVlLiAgVXNlIGRpc3BhdGNoX3F1ZXVlX2NyZWF0ZV93aXRoX3RhcmdldCBpbnN0ZWFkLicK
KyAgICAgICAgICAgICcgIFtydW50aW1lL2Rpc3BhdGNoX3NldF90YXJnZXRfcXVldWVdIFs1XScp
CisgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ2dsb2JhbFF1ZXVlID0gZGlzcGF0Y2hfcXVldWVf
Y3JlYXRlX3dpdGhfdGFyZ2V0KCJNeSBTZXJpYWwgUXVldWUiLCBESVNQQVRDSF9RVUVVRV9TRVJJ
QUwsIGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfSElH
SCwgMCkpOycsICcnKQorCiAgICAgIyBWYXJpYWJsZS1sZW5ndGggYXJyYXlzIGFyZSBub3QgcGVy
bWl0dGVkLgogICAgIGRlZiB0ZXN0X3ZhcmlhYmxlX2xlbmd0aF9hcnJheV9kZXRlY3Rpb24oc2Vs
Zik6CiAgICAgICAgIGVycm1zZyA9ICgnRG8gbm90IHVzZSB2YXJpYWJsZS1sZW5ndGggYXJyYXlz
LiAgVXNlIGFuIGFwcHJvcHJpYXRlbHkgbmFtZWQgJwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS93M2MvdGVzdF9leHBvcnRlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dzNjL3Rlc3RfZXhwb3J0ZXIucHkKaW5kZXggOGIzZDY2NmMyODBjYmQ1ZGFmZmMxNTIwM2UzNzE3
NWI4ZDFmYjFlZS4uNmE5Y2E1YmI3MmMxZjg0ODMwNjQ4MDM4MzJiMmViNzU1MTE5Y2E2YyAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2MvdGVzdF9leHBvcnRlci5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2V4cG9ydGVyLnB5CkBAIC0zNCw2ICsz
NCw3IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLmhvc3QgaW1wb3J0IEhvc3QKIGZyb20gd2Via2l0
cHkuY29tbW9uLm5ldC5idWd6aWxsYSBpbXBvcnQgQnVnemlsbGEKIGZyb20gd2Via2l0cHkuY29t
bW9uLndlYmtpdF9maW5kZXIgaW1wb3J0IFdlYktpdEZpbmRlcgogZnJvbSB3ZWJraXRweS53M2Mu
d3B0X2dpdGh1YiBpbXBvcnQgV1BUR2l0SHViCitmcm9tIHdlYmtpdHB5LnczYy53cHRfbGludGVy
IGltcG9ydCBXUFRMaW50ZXIKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQog
CkBAIC00NCw3ICs0NSw3IEBAIFdFQktJVF9FWFBPUlRfUFJfTEFCRUwgPSAnd2Via2l0LWV4cG9y
dCcKIAogY2xhc3MgVGVzdEV4cG9ydGVyKG9iamVjdCk6CiAKLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgaG9zdCwgb3B0aW9ucywgZ2l0Q2xhc3M9R2l0LCBidWd6aWxsYUNsYXNzPUJ1Z3ppbGxhLCBX
UFRHaXRIdWJDbGFzcz1XUFRHaXRIdWIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0LCBv
cHRpb25zLCBnaXRDbGFzcz1HaXQsIGJ1Z3ppbGxhQ2xhc3M9QnVnemlsbGEsIFdQVEdpdEh1YkNs
YXNzPVdQVEdpdEh1YiwgV1BUTGludGVyQ2xhc3M9V1BUTGludGVyKToKICAgICAgICAgc2VsZi5f
aG9zdCA9IGhvc3QKICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbSA9IGhvc3QuZmlsZXN5c3RlbQog
ICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwpAQCAtNjQsNiArNjUsNyBAQCBjbGFzcyBU
ZXN0RXhwb3J0ZXIob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMucmVwb3NpdG9y
eV9kaXJlY3RvcnkgPSB3ZWJraXRfZmluZGVyLnBhdGhfZnJvbV93ZWJraXRfYmFzZSgnV2ViS2l0
QnVpbGQnLCAndzNjLXRlc3RzJywgJ3dlYi1wbGF0Zm9ybS10ZXN0cycpCiAKICAgICAgICAgc2Vs
Zi5fZ2l0ID0gc2VsZi5fZW5zdXJlX3dwdF9yZXBvc2l0b3J5KCJodHRwczovL2dpdGh1Yi5jb20v
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy5naXQiLCBzZWxmLl9vcHRpb25zLnJlcG9zaXRvcnlfZGly
ZWN0b3J5LCBnaXRDbGFzcykKKyAgICAgICAgc2VsZi5fbGludGVyID0gV1BUTGludGVyQ2xhc3Mo
c2VsZi5fb3B0aW9ucy5yZXBvc2l0b3J5X2RpcmVjdG9yeSwgaG9zdC5maWxlc3lzdGVtKQogCiAg
ICAgICAgIHNlbGYuX3VzZXJuYW1lID0gb3B0aW9ucy51c2VybmFtZQogICAgICAgICBpZiBub3Qg
c2VsZi5fdXNlcm5hbWU6CkBAIC0xNTQsNyArMTU2LDcgQEAgY2xhc3MgVGVzdEV4cG9ydGVyKG9i
amVjdCk6CiAgICAgICAgICAgICBzZWxmLl9naXQuZGVsZXRlX2JyYW5jaChzZWxmLl9icmFuY2hf
bmFtZSkKICAgICAgICAgICAgIHNlbGYuX2dpdC5jaGVja291dF9uZXdfYnJhbmNoKHNlbGYuX2Jy
YW5jaF9uYW1lKQogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9naXQuYXBwbHlfbWFp
bF9wYXRjaChbcGF0Y2gsICctLWV4Y2x1ZGUnLCAnKi1leHBlY3RlZC50eHQnXSkKKyAgICAgICAg
ICAgIHNlbGYuX2dpdC5hcHBseV9tYWlsX3BhdGNoKFtwYXRjaCwgJy0tZXhjbHVkZScsICcqLWV4
cGVjdGVkLnR4dCcsICctLWV4Y2x1ZGUnLCAnKi53b3JrZXIuaHRtbCcsICctLWV4Y2x1ZGUnLCAn
Ki5hbnkuaHRtbCcsICctLWV4Y2x1ZGUnLCAnKi5hbnkud29ya2VyLmh0bWwnXSkKICAgICAgICAg
ZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICAgX2xvZy53YXJuaW5nKGUpCiAgICAg
ICAgICAgICBzZWxmLl9naXQuYXBwbHlfbWFpbF9wYXRjaChbJy0tYWJvcnQnXSkKQEAgLTI0MCw2
ICsyNDIsMTMgQEAgY2xhc3MgVGVzdEV4cG9ydGVyKG9iamVjdCk6CiAgICAgICAgIGlmIGdpdF9w
YXRjaF9maWxlOgogICAgICAgICAgICAgc2VsZi5fZmlsZXN5c3RlbS5yZW1vdmUoZ2l0X3BhdGNo
X2ZpbGUpCiAKKyAgICAgICAgbGludF9lcnJvcnMgPSBzZWxmLl9saW50ZXIubGludCgpCisgICAg
ICAgIGlmIGxpbnRfZXJyb3JzOgorICAgICAgICAgICAgX2xvZy5lcnJvcigiVGhlIHdwdCBsaW50
ZXIgZGV0ZWN0ZWQgJXMgbGludGluZyBlcnJvcihzKS4gUGxlYXNlIGFkZHJlc3MgdGhlIGFib3Zl
IGVycm9ycyBiZWZvcmUgYXR0ZW1wdGluZyB0byBleHBvcnQgY2hhbmdlcyB0byB0aGUgd2ViLXBs
YXRmb3JtLXRlc3QgcmVwb3NpdG9yeS4iICUgKGxpbnRfZXJyb3JzLCkpCisgICAgICAgICAgICBz
ZWxmLmRlbGV0ZV9sb2NhbF9icmFuY2goKQorICAgICAgICAgICAgc2VsZi5jbGVhbigpCisgICAg
ICAgICAgICByZXR1cm4KKwogICAgICAgICB0cnk6CiAgICAgICAgICAgICBpZiBzZWxmLnB1c2hf
dG9fd3B0X2ZvcmsoKToKICAgICAgICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmNyZWF0ZV9w
dWxsX3JlcXVlc3Q6CkBAIC0yOTUsNyArMzA0LDcgQEAgZGVmIGNvbmZpZ3VyZV9sb2dnaW5nKCk6
CiAgICAgICAgICAgICAgICAgcmV0dXJuICIlczogJXMiICUgKHJlY29yZC5sZXZlbG5hbWUsIHJl
Y29yZC5nZXRNZXNzYWdlKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVjb3JkLmdldE1lc3NhZ2Uo
KQogCi0gICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoKQorICAgIGxvZ2dlciA9IGxvZ2dp
bmcuZ2V0TG9nZ2VyKCd3ZWJraXRweS53M2MudGVzdF9leHBvcnRlcicpCiAgICAgbG9nZ2VyLnNl
dExldmVsKGxvZ2dpbmcuSU5GTykKICAgICBoYW5kbGVyID0gTG9nSGFuZGxlcigpCiAgICAgaGFu
ZGxlci5zZXRMZXZlbChsb2dnaW5nLklORk8pCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3czYy90ZXN0X2V4cG9ydGVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS93M2MvdGVzdF9leHBvcnRlcl91bml0dGVzdC5weQppbmRleCAzYzQzZmY2ODI5YWFlM2Iz
YmJkNDEzN2IzYTgzMzBmY2NiOWQ4MWU4Li5iODMzNGE5NDljNjEyODY3MmUzYzQ3MjRmMTYxMDNj
MDRmOWNiOTg5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3czYy90ZXN0X2V4
cG9ydGVyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3Rlc3Rf
ZXhwb3J0ZXJfdW5pdHRlc3QucHkKQEAgLTI4LDYgKzI4LDcgQEAgZnJvbSB3ZWJraXRweS5jb21t
b24uc3lzdGVtLmV4ZWN1dGl2ZV9tb2NrIGltcG9ydCBNb2NrRXhlY3V0aXZlMgogZnJvbSB3ZWJr
aXRweS53M2MudGVzdF9leHBvcnRlciBpbXBvcnQgVGVzdEV4cG9ydGVyLCBwYXJzZV9hcmdzCiBm
cm9tIHdlYmtpdHB5LnczYy53cHRfZ2l0aHViX21vY2sgaW1wb3J0IE1vY2tXUFRHaXRIdWIKIAor
bW9ja19saW50ZXIgPSBOb25lCiAKIGNsYXNzIFRlc3RFeHBvcnRlclRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogICAgIG1heERpZmYgPSBOb25lCkBAIC0xMDUsMTAgKzEwNiwyNCBAQCBjbGFzcyBU
ZXN0RXhwb3J0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgZGVmIHNjbShzZWxm
KToKICAgICAgICAgICAgIHJldHVybiBzZWxmLl9tb2NrU0NNCiAKKyAgICBjbGFzcyBNb2NrV1BU
TGludGVyKG9iamVjdCk6CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXBvc2l0b3J5X2Rp
cmVjdG9yeSwgZmlsZXN5c3RlbSk6CisgICAgICAgICAgICBzZWxmLmNhbGxzID0gW3JlcG9zaXRv
cnlfZGlyZWN0b3J5XQorICAgICAgICAgICAgIyB3b3JrYXJvdW5kIHRvIGFwcGVhc2UgdGhlIHN0
eWxlIGNoZWNrZXIgd2hpY2ggdGhpbmtzCisgICAgICAgICAgICAjIGV4cG9ydGVyLl9saW50ZXIg
aXMgYW4gaW5zdGFuY2Ugb2YgV1BUTGludGVyIGFuZAorICAgICAgICAgICAgIyBjb21wbGFpbnMg
aWYgd2UgdHJ5IHRvIGFjY2VzcyB0aGUgY2FsbHMgcHJvcGVydHkgd2hpY2gKKyAgICAgICAgICAg
ICMgb25seSBleGlzdHMgb24gTW9ja1dQVExpbnRlcgorICAgICAgICAgICAgZ2xvYmFsIG1vY2tf
bGludGVyCisgICAgICAgICAgICBtb2NrX2xpbnRlciA9IHNlbGYKKworICAgICAgICBkZWYgbGlu
dChzZWxmKToKKyAgICAgICAgICAgIHNlbGYuY2FsbHMuYXBwZW5kKCdsaW50JykKKyAgICAgICAg
ICAgIHJldHVybiAwCisKICAgICBkZWYgdGVzdF9leHBvcnQoc2VsZik6CiAgICAgICAgIGhvc3Qg
PSBUZXN0RXhwb3J0ZXJUZXN0Lk15TW9ja0hvc3QoKQogICAgICAgICBvcHRpb25zID0gcGFyc2Vf
YXJncyhbJ3Rlc3RfZXhwb3J0ZXIucHknLCAnLWcnLCAnSEVBRCcsICctYicsICcxMjM0JywgJy1j
JywgJy1uJywgJ1VTRVInLCAnLXQnLCAnVE9LRU4nXSkKLSAgICAgICAgZXhwb3J0ZXIgPSBUZXN0
RXhwb3J0ZXIoaG9zdCwgb3B0aW9ucywgVGVzdEV4cG9ydGVyVGVzdC5Nb2NrR2l0LCBUZXN0RXhw
b3J0ZXJUZXN0Lk1vY2tCdWd6aWxsYSwgTW9ja1dQVEdpdEh1YikKKyAgICAgICAgZXhwb3J0ZXIg
PSBUZXN0RXhwb3J0ZXIoaG9zdCwgb3B0aW9ucywgVGVzdEV4cG9ydGVyVGVzdC5Nb2NrR2l0LCBU
ZXN0RXhwb3J0ZXJUZXN0Lk1vY2tCdWd6aWxsYSwgTW9ja1dQVEdpdEh1YiwgVGVzdEV4cG9ydGVy
VGVzdC5Nb2NrV1BUTGludGVyKQogICAgICAgICBleHBvcnRlci5kb19leHBvcnQoKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhleHBvcnRlci5fZ2l0aHViLmNhbGxzLCBbJ2NyZWF0ZV9wcics
ICdhZGRfbGFiZWwgIndlYmtpdC1leHBvcnQiJ10pCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgn
V2ViS2l0IGV4cG9ydCcgaW4gZXhwb3J0ZXIuX2dpdGh1Yi5wdWxsX3JlcXVlc3RzX2NyZWF0ZWRb
MF1bMV0pCkBAIC0xMTgsNyArMTMzLDcgQEAgY2xhc3MgVGVzdEV4cG9ydGVyVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAnY2hlY2tvdXQgbWFzdGVyJywKICAgICAgICAgICAg
ICdyZXNldCBoYXJkIG9yaWdpbi9tYXN0ZXInLAogICAgICAgICAgICAgJ2NoZWNrb3V0IG5ldyBi
cmFuY2ggd3B0LWV4cG9ydC1mb3Itd2Via2l0LTEyMzQnLAotICAgICAgICAgICAgJ2FwcGx5X21h
aWxfcGF0Y2ggcGF0Y2gudGVtcCAtLWV4Y2x1ZGUgKi1leHBlY3RlZC50eHQnLAorICAgICAgICAg
ICAgJ2FwcGx5X21haWxfcGF0Y2ggcGF0Y2gudGVtcCAtLWV4Y2x1ZGUgKi1leHBlY3RlZC50eHQg
LS1leGNsdWRlICoud29ya2VyLmh0bWwgLS1leGNsdWRlICouYW55Lmh0bWwgLS1leGNsdWRlICou
YW55Lndvcmtlci5odG1sJywKICAgICAgICAgICAgICdjb21taXQgLWEgLW0gV2ViS2l0IGV4cG9y
dCBvZiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzNCcsCiAgICAg
ICAgICAgICAncmVtb3RlICcsCiAgICAgICAgICAgICAncmVtb3RlIGFkZCBVU0VSIGh0dHBzOi8v
VVNFUkBnaXRodWIuY29tL1VTRVIvd2ViLXBsYXRmb3JtLXRlc3RzLmdpdCcsCkBAIC0xMzEsMTEg
KzE0NiwxMiBAQCBjbGFzcyBUZXN0RXhwb3J0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXhwb3J0ZXIuX2J1Z3ppbGxhLmNhbGxzLCBbCiAgICAg
ICAgICAgICAnZmV0Y2ggYnVnIDEyMzQnLAogICAgICAgICAgICAgJ3Bvc3QgY29tbWVudCB0byBi
dWcgMTIzNCA6IFN1Ym1pdHRlZCB3ZWItcGxhdGZvcm0tdGVzdHMgcHVsbCByZXF1ZXN0OiBodHRw
czovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9wdWxsLzU2NzgnXSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMobW9ja19saW50ZXIuY2FsbHMsIFsnL21vY2stY2hlY2tvdXQv
V2ViS2l0QnVpbGQvdzNjLXRlc3RzL3dlYi1wbGF0Zm9ybS10ZXN0cycsICdsaW50J10pCiAKICAg
ICBkZWYgdGVzdF9leHBvcnRfd2l0aF9zcGVjaWZpY19icmFuY2goc2VsZik6CiAgICAgICAgIGhv
c3QgPSBUZXN0RXhwb3J0ZXJUZXN0Lk15TW9ja0hvc3QoKQogICAgICAgICBvcHRpb25zID0gcGFy
c2VfYXJncyhbJ3Rlc3RfZXhwb3J0ZXIucHknLCAnLWcnLCAnSEVBRCcsICctYicsICcxMjM0Jywg
Jy1jJywgJy1uJywgJ1VTRVInLCAnLXQnLCAnVE9LRU4nLCAnLWJuJywgJ3dwdC1leHBvcnQtYnJh
bmNoJ10pCi0gICAgICAgIGV4cG9ydGVyID0gVGVzdEV4cG9ydGVyKGhvc3QsIG9wdGlvbnMsIFRl
c3RFeHBvcnRlclRlc3QuTW9ja0dpdCwgVGVzdEV4cG9ydGVyVGVzdC5Nb2NrQnVnemlsbGEsIE1v
Y2tXUFRHaXRIdWIpCisgICAgICAgIGV4cG9ydGVyID0gVGVzdEV4cG9ydGVyKGhvc3QsIG9wdGlv
bnMsIFRlc3RFeHBvcnRlclRlc3QuTW9ja0dpdCwgVGVzdEV4cG9ydGVyVGVzdC5Nb2NrQnVnemls
bGEsIE1vY2tXUFRHaXRIdWIsIFRlc3RFeHBvcnRlclRlc3QuTW9ja1dQVExpbnRlcikKICAgICAg
ICAgZXhwb3J0ZXIuZG9fZXhwb3J0KCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXhwb3J0
ZXIuX2dpdC5jYWxscywgWwogICAgICAgICAgICAgJy9tb2NrLWNoZWNrb3V0L1dlYktpdEJ1aWxk
L3czYy10ZXN0cy93ZWItcGxhdGZvcm0tdGVzdHMnLApAQCAtMTQzLDcgKzE1OSw3IEBAIGNsYXNz
IFRlc3RFeHBvcnRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgJ2NoZWNr
b3V0IG1hc3RlcicsCiAgICAgICAgICAgICAncmVzZXQgaGFyZCBvcmlnaW4vbWFzdGVyJywKICAg
ICAgICAgICAgICdjaGVja291dCBuZXcgYnJhbmNoIHdwdC1leHBvcnQtZm9yLXdlYmtpdC0xMjM0
JywKLSAgICAgICAgICAgICdhcHBseV9tYWlsX3BhdGNoIHBhdGNoLnRlbXAgLS1leGNsdWRlICot
ZXhwZWN0ZWQudHh0JywKKyAgICAgICAgICAgICdhcHBseV9tYWlsX3BhdGNoIHBhdGNoLnRlbXAg
LS1leGNsdWRlICotZXhwZWN0ZWQudHh0IC0tZXhjbHVkZSAqLndvcmtlci5odG1sIC0tZXhjbHVk
ZSAqLmFueS5odG1sIC0tZXhjbHVkZSAqLmFueS53b3JrZXIuaHRtbCcsCiAgICAgICAgICAgICAn
Y29tbWl0IC1hIC1tIFdlYktpdCBleHBvcnQgb2YgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyMzQnLAogICAgICAgICAgICAgJ3JlbW90ZSAnLAogICAgICAgICAgICAg
J3JlbW90ZSBhZGQgVVNFUiBodHRwczovL1VTRVJAZ2l0aHViLmNvbS9VU0VSL3dlYi1wbGF0Zm9y
bS10ZXN0cy5naXQnLApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS93M2Mvd3B0
X2xpbnRlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3dwdF9saW50ZXIucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDMwN2Y1OGI5NWFmODJiY2IzOWQwZjY1ZTc5YzcxMDc5MDI1YTFmNQotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdzNjL3dwdF9saW50ZXIucHkKQEAg
LTAsMCArMSwzNyBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTgsIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisj
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisjIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisi
IiIKKyBUaGlzIHNjcmlwdCBpcyBhIHdyYXBwZXIgZm9yIHRoZSB3ZWItcGxhdGZvcm0tdGVzdHMg
bGludGVyCisiIiIKKworaW1wb3J0IHN1YnByb2Nlc3MKKworCitjbGFzcyBXUFRMaW50ZXIob2Jq
ZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcmVwb3NpdG9yeV9kaXJlY3RvcnksIGZpbGVz
eXN0ZW0pOgorICAgICAgICBzZWxmLndwdF9wYXRoID0gZmlsZXN5c3RlbS5qb2luKHJlcG9zaXRv
cnlfZGlyZWN0b3J5LCAnd3B0JykKKworICAgIGRlZiBsaW50KHNlbGYpOgorICAgICAgICBjbWQg
PSBbc2VsZi53cHRfcGF0aCwgJ2xpbnQnXQorICAgICAgICBwcm9jID0gc3VicHJvY2Vzcy5Qb3Bl
bihjbWQpCisgICAgICAgIHJldHVybiBwcm9jLndhaXQoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5k
ZXggOTcyNWIwNDJlOTRiNjNjY2JlMzgwM2M1MzJkMmNhMjk4MmI2MmY0Yi4uNDM2YmI5MjMzZWYx
MTAzOTc0MTJkNGFjNjM1ZDFmNjk5MjA4MDgxYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCkBAIC0x
MDEsNyArMTAxLDYgQEAgRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQgPSA7CiAKIEVOQUJMRV9EQVRB
X0lOVEVSQUNUSU9OID0gJChFTkFCTEVfREFUQV9JTlRFUkFDVElPTl8kKFdLX1BMQVRGT1JNX05B
TUUpKTsKIEVOQUJMRV9EQVRBX0lOVEVSQUNUSU9OX2lwaG9uZW9zID0gRU5BQkxFX0RBVEFfSU5U
RVJBQ1RJT047Ci1FTkFCTEVfREFUQV9JTlRFUkFDVElPTl9pcGhvbmVtaW5pbWFsc2ltdWxhdG9y
ID0gRU5BQkxFX0RBVEFfSU5URVJBQ1RJT047CiBFTkFCTEVfREFUQV9JTlRFUkFDVElPTl9pcGhv
bmVzaW11bGF0b3IgPSBFTkFCTEVfREFUQV9JTlRFUkFDVElPTjsKIAogRU5BQkxFX0RFVklDRV9P
UklFTlRBVElPTiA9ICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTl8kKFdLX1BMQVRGT1JNX05B
TUUpKTsKQEAgLTExNCw3ICsxMTMsNiBAQCBFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OX2FwcGxl
dHZzaW11bGF0b3IgPSBFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OOwogCiBFTkFCTEVfRFJBR19T
VVBQT1JUID0gJChFTkFCTEVfRFJBR19TVVBQT1JUXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogRU5B
QkxFX0RSQUdfU1VQUE9SVF9pcGhvbmVvcyA9IEVOQUJMRV9EUkFHX1NVUFBPUlQ7Ci1FTkFCTEVf
RFJBR19TVVBQT1JUX2lwaG9uZW1pbmltYWxzaW11bGF0b3IgPSBFTkFCTEVfRFJBR19TVVBQT1JU
OwogRU5BQkxFX0RSQUdfU1VQUE9SVF9pcGhvbmVzaW11bGF0b3IgPSBFTkFCTEVfRFJBR19TVVBQ
T1JUOwogCiBFTkFCTEVfRU5DUllQVEVEX01FRElBID0gJChFTkFCTEVfRU5DUllQVEVEX01FRElB
XyQoV0tfUExBVEZPUk1fTkFNRSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3OWYxNWJl
MjdjMGMyYThkMzJkOWI1YjIyNDE4MmI0MjgyOWRkY2VmLi44NzUzNGY4Mzc1YjkzODUxZjJhNDk1
NmQ1ODQ1NzY0MDg2MDQwMjJkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTUzLDYgKzU1
Myw4IEBACiAJCTgzQkFFRThEMUVGNDYyNTUwMERERTg5NCAvKiBQbHVnaW5Mb2FkQ2xpZW50UG9s
aWNpZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
M0JBRUU4QzFFRjQ2MjU1MDBEREU4OTQgLyogUGx1Z2luTG9hZENsaWVudFBvbGljaWVzLm1tICov
OyB9OwogCQk4M0RCNzk2OTFFRjYzQjNDMDBCRkE1RTUgLyogRnVuY3Rpb24uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNEQjc5NjcxRUY2M0IzQzAw
QkZBNUU1IC8qIEZ1bmN0aW9uLmNwcCAqLzsgfTsKIAkJODNERTEzNEQxRUYxQzUwODAwQzFCMzU1
IC8qIFJlc3BvbnNpdmVuZXNzVGltZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODNERTEzNEMxRUYxQzRGRTAwQzFCMzU1IC8qIFJlc3BvbnNpdmVu
ZXNzVGltZXIuY3BwICovOyB9OworCQk4QzEwQUY5ODIwNjQ2NzkyMDAxOEZEOTAgLyogbG9jYWxz
dG9yYWdlLWVtcHR5LXN0cmluZy12YWx1ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhDMTBBRjk3MjA2NDY3ODMwMDE4RkQ5MCAvKiBs
b2NhbHN0b3JhZ2UtZW1wdHktc3RyaW5nLXZhbHVlLmh0bWwgKi87IH07CisJCThDMTBBRjk5MjA2
NDY3QTkwMDE4RkQ5MCAvKiBMb2NhbFN0b3JhZ2VQZXJzaXN0ZW5jZS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDhDMTBBRjk2MjA2NDY3NzcwMDE4RkQ5
MCAvKiBMb2NhbFN0b3JhZ2VQZXJzaXN0ZW5jZS5tbSAqLzsgfTsKIAkJOEU0QTg1MzcxRTFEMUFC
MjAwRjUzQjBGIC8qIEdyaWRQb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4RTRBODUzNjFFMUQxQUExMDBGNTNCMEYgLyogR3JpZFBvc2l0
aW9uLmNwcCAqLzsgfTsKIAkJOTMwQUQ0MDIxNTA2OThEMDAwNjc5NzBGIC8qIGxvdHMtb2YtdGV4
dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzMEFENDAxMTUwNjk4QjMwMDY3OTcwRiAvKiBsb3RzLW9mLXRleHQuaHRtbCAqLzsgfTsK
IAkJOTMxMENEMzgxRUY3MDhGQjAwNTBGRkUwIC8qIEZ1bmN0aW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMTBDRDM2MUVGNzA4RkIwMDUwRkZF
MCAvKiBGdW5jdGlvbi5jcHAgKi87IH07CkBAIC03MDYsNiArNzA4LDcgQEAKIAkJQ0RDRkE3QUEx
RTQ1MTgzMjAwQzI0MzNEIC8qIFNhbXBsZU1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRENGQTdBOTFFNDUxMjJGMDBDMjQzM0QgLyogU2FtcGxl
TWFwLmNwcCAqLzsgfTsKIAkJQ0RFMTk1QjUxQ0ZFMEI4ODAwNTNEMjU2IC8qIEZ1bGxzY3JlZW5U
b3BDb250ZW50SW5zZXQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDREUxOTVCMjFDRkUwQURFMDA1M0QyNTYgLyogRnVsbHNjcmVlblRv
cENvbnRlbnRJbnNldC5odG1sICovOyB9OwogCQlDRTA2REY5QjFFMTg1MUYyMDBFNTcwQzkgLyog
U2VjdXJpdHlPcmlnaW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0UwNkRGOUExRTE4NTFGMjAwRTU3MEM5IC8qIFNlY3VyaXR5T3JpZ2luLmNwcCAq
LzsgfTsKKwkJQ0UwOTQ3MzcyMDYzMjIzQjAwM0M5QkEwIC8qIFNjaGVtZVJlZ2lzdHJ5Lm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0UwOTQ3MzYyMDYz
MjIzQjAwM0M5QkEwIC8qIFNjaGVtZVJlZ2lzdHJ5Lm1tICovOyB9OwogCQlDRTE0RjFBNDE4MTg3
M0IwMDAxQzI3MDUgLyogV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jhc2guaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTE0
RjFBMjE4MTg3M0IwMDAxQzI3MDUgLyogV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMQ3Jh
c2guaHRtbCAqLzsgfTsKIAkJQ0UxODY2NDkxRjcyRThGMTAwQTBDQUI2IC8qIE1hcmtlZFRleHQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0UxODY2
NDcxRjcyRThGMTAwQTBDQUI2IC8qIE1hcmtlZFRleHQuY3BwICovOyB9OwogCQlDRTM1MjRGODFC
MTQzMUY2MDAyOEE3QzUgLyogVGV4dEZpZWxkRGlkQmVnaW5BbmRFbmRFZGl0aW5nX0J1bmRsZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTM1MjRG
MjFCMTQyQjhEMDAyOEE3QzUgLyogVGV4dEZpZWxkRGlkQmVnaW5BbmRFbmRFZGl0aW5nX0J1bmRs
ZS5jcHAgKi87IH07CkBAIC0xMDE2LDYgKzEwMTksNyBAQAogCQkJCTgzNDlEM0M0MURCOTcyOEUw
MDRBOUY2NSAvKiBsaW5rLXdpdGgtZG93bmxvYWQtYXR0cmlidXRlLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJMzc4RTY0NzkxNjMyNzA3NDAwQjZDNjc2IC8qIGxpbmstd2l0aC10aXRs
ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTU3OTAxRkIxMUNBRjE0MkQwMEVENjRG
OSAvKiBMb2FkSW52YWxpZFVSTFJlcXVlc3QuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJ
CQk4QzEwQUY5ODIwNjQ2NzkyMDAxOEZEOTAgLyogbG9jYWxzdG9yYWdlLWVtcHR5LXN0cmluZy12
YWx1ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUxRTZBODk2MUQyRjFDQTcwMEMw
MDRCNiAvKiBMb2NhbFN0b3JhZ2VDbGVhci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJ
CTQ2QzUxOUU2MUQzNTYzRkQwMERBQTUxQSAvKiBMb2NhbFN0b3JhZ2VOdWxsRW50cmllcy5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTQ2QzUxOUU3MUQzNTYzRkQwMERBQTUxQSAvKiBM
b2NhbFN0b3JhZ2VOdWxsRW50cmllcy5sb2NhbHN0b3JhZ2UgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CkBAIC0xNTY5LDYgKzE1NzMsOCBAQAogCQk4QTJDNzUwRDE2Q0VEOTU1MDAyNEYzNTIgLyogUmVz
aXplV2luZG93QWZ0ZXJDcmFzaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSZXNpemVXaW5kb3dBZnRlckNyYXNoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOEEzQUY5M0ExNkM5RUQyNzAwRDI0OEMxIC8qIFJlbG9hZFBhZ2VBZnRlckNyYXNoLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbG9hZFBhZ2VBZnRlckNy
YXNoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOEFBMjhDMTkxNkQyRkE3QjAw
MkZGNERCIC8qIExvYWRQYWdlT25DcmFzaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBMb2FkUGFnZU9uQ3Jhc2guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk4QzEwQUY5NjIwNjQ2Nzc3MDAxOEZEOTAgLyogTG9jYWxTdG9yYWdlUGVyc2lzdGVuY2Uu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2NhbFN0b3JhZ2VQ
ZXJzaXN0ZW5jZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOEMxMEFGOTcyMDY0
Njc4MzAwMThGRDkwIC8qIGxvY2Fsc3RvcmFnZS1lbXB0eS1zdHJpbmctdmFsdWUuaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsb2NhbHN0b3JhZ2UtZW1wdHktc3RyaW5nLXZhbHVl
Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4REQ3NkZBMTA0ODZBQTc2MDBE
OTZCNUUgLyogVGVzdFdlYktpdEFQSSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBs
aWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsgaW5jbHVkZUluSW5k
ZXggPSAwOyBwYXRoID0gVGVzdFdlYktpdEFQSTsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RT
X0RJUjsgfTsKIAkJOEU0QTg1MzYxRTFEMUFBMTAwRjUzQjBGIC8qIEdyaWRQb3NpdGlvbi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmlkUG9zaXRpb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzBBRDQwMTE1MDY5OEIzMDA2Nzk3MEYgLyog
bG90cy1vZi10ZXh0Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibG90cy1vZi10
ZXh0Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTgzNCw2ICsxODQwLDcg
QEAKIAkJQ0RFMTk1QjIxQ0ZFMEFERTAwNTNEMjU2IC8qIEZ1bGxzY3JlZW5Ub3BDb250ZW50SW5z
ZXQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IEZ1bGxzY3JlZW5Ub3BDb250ZW50
SW5zZXQuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RFMTk1QjMxQ0ZFMEFE
RTAwNTNEMjU2IC8qIEZ1bGxzY3JlZW5Ub3BDb250ZW50SW5zZXQubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBGdWxsc2NyZWVuVG9wQ29udGVudEluc2V0Lm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTA2REY5QTFFMTg1MUYyMDBFNTcwQzkgLyog
U2VjdXJpdHlPcmlnaW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U2VjdXJpdHlPcmlnaW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRTA5NDcz
NjIwNjMyMjNCMDAzQzlCQTAgLyogU2NoZW1lUmVnaXN0cnkubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY2hlbWVSZWdpc3RyeS5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0UxNEYxQTIxODE4NzNCMDAwMUMyNzA1IC8qIFdpbGxQZXJmb3JtQ2xp
ZW50UmVkaXJlY3RUb1VSTENyYXNoLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSBXaWxsUGVyZm9ybUNsaWVudFJl
ZGlyZWN0VG9VUkxDcmFzaC5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRTE4
NjY0NzFGNzJFOEYxMDBBMENBQjYgLyogTWFya2VkVGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBNYXJrZWRUZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0UzMkM3Qzcx
ODE4NEM0OTAwQ0Q4QzI4IC8qIFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTENyYXNoLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2lsbFBlcmZvcm1DbGll
bnRSZWRpcmVjdFRvVVJMQ3Jhc2gubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
MTYwLDYgKzIxNjcsNyBAQAogCQkJCTU3OTAxRkFDMUNBRjEyQzIwMEVENjRGOSAvKiBMb2FkSW52
YWxpZFVSTFJlcXVlc3QubW0gKi8sCiAJCQkJNTFFNkE4OTIxRDJGMUJFQzAwQzAwNEI2IC8qIExv
Y2FsU3RvcmFnZUNsZWFyLm1tICovLAogCQkJCTQ2QzUxOUQ4MUQzNTVBNzMwMERBQTUxQSAvKiBM
b2NhbFN0b3JhZ2VOdWxsRW50cmllcy5tbSAqLywKKwkJCQk4QzEwQUY5NjIwNjQ2Nzc3MDAxOEZE
OTAgLyogTG9jYWxTdG9yYWdlUGVyc2lzdGVuY2UubW0gKi8sCiAJCQkJN0E2QTJDNkYxRENDRjg3
QjAwQzBEMDg1IC8qIExvY2FsU3RvcmFnZVF1aXJrVGVzdC5tbSAqLywKIAkJCQk1MTY1RkUwMzIw
MUVFNjE3MDA5RjdFQzMgLyogTWVzc2FnZVBvcnRQcm92aWRlcnMubW0gKi8sCiAJCQkJNTFDRDFD
NkExQjM4Q0UzNjAwMTQyQ0E1IC8qIE1vZGFsQWxlcnRzLm1tICovLApAQCAtMjE5MSw2ICsyMTk5
LDcgQEAKIAkJCQlDRDlFMjkyQjFDOTBBNzFGMDAwQkI4MDAgLyogUmVxdWlyZXNVc2VyQWN0aW9u
Rm9yUGxheWJhY2subW0gKi8sCiAJCQkJNTFDOEUxQTQxRjI2QUM1NDAwQkY3MzFCIC8qIFJlc291
cmNlTG9hZFN0YXRpc3RpY3MubW0gKi8sCiAJCQkJQTE4MEMwRjkxRUU2N0RGMDAwNDY4RjQ3IC8q
IFJ1bk9wZW5QYW5lbC5tbSAqLywKKwkJCQlDRTA5NDczNjIwNjMyMjNCMDAzQzlCQTAgLyogU2No
ZW1lUmVnaXN0cnkubW0gKi8sCiAJCQkJNTFFQjEyOTMxRkRGMDUwNTAwQTVBMUJEIC8qIFNlcnZp
Y2VXb3JrZXJCYXNpYy5tbSAqLywKIAkJCQkzN0JDQTYxQjFCNTk2QkE5MDAyMDEyQ0EgLyogU2hv
dWxkT3BlbkV4dGVybmFsVVJMc0luTmV3V2luZG93QWN0aW9ucy5tbSAqLywKIAkJCQkyRDlBNTNB
RTFCMzFGQThEMDA3NEQ1QUEgLyogU2hyaW5rVG9GaXQubW0gKi8sCkBAIC0yNDg4LDYgKzI0OTcs
NyBAQAogCQkJCUMyNUNDQTBBMUU1MTNGNDkwMDI2Q0I4QSAvKiBMaW5lQnJlYWtpbmcuaHRtbCAq
LywKIAkJCQlGNDFBQjk5NjFFRjQ2OTJDMDA4M0ZBMDggLyogbGluay1hbmQtaW5wdXQuaHRtbCAq
LywKIAkJCQlGNDFBQjk5RDFFRjQ2OTJDMDA4M0ZBMDggLyogbGluay1hbmQtdGFyZ2V0LWRpdi5o
dG1sICovLAorCQkJCThDMTBBRjk3MjA2NDY3ODMwMDE4RkQ5MCAvKiBsb2NhbHN0b3JhZ2UtZW1w
dHktc3RyaW5nLXZhbHVlLmh0bWwgKi8sCiAJCQkJNTFFNkE4OTUxRDJGMUM3NzAwQzAwNEI2IC8q
IExvY2FsU3RvcmFnZUNsZWFyLmh0bWwgKi8sCiAJCQkJNDZDNTE5RTIxRDM1NjI5NjAwREFBNTFB
IC8qIExvY2FsU3RvcmFnZU51bGxFbnRyaWVzLmh0bWwgKi8sCiAJCQkJNDZDNTE5RTMxRDM1NjI5
NjAwREFBNTFBIC8qIExvY2FsU3RvcmFnZU51bGxFbnRyaWVzLmxvY2Fsc3RvcmFnZSAqLywKQEAg
LTM1NzcsNiArMzU4Nyw3IEBACiAJCQkJNTc0RjU1Q0YyMDREMzdDNTAwMjk0OEM2IC8qIExvY2Fs
QXV0aGVudGljYXRvci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxRTZBODk0MUQyRjFDMEEwMEMw
MDRCNiAvKiBMb2NhbFN0b3JhZ2VDbGVhci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQ2QzUxOURB
MUQzNTVBQjIwMERBQTUxQSAvKiBMb2NhbFN0b3JhZ2VOdWxsRW50cmllcy5tbSBpbiBTb3VyY2Vz
ICovLAorCQkJCThDMTBBRjk5MjA2NDY3QTkwMDE4RkQ5MCAvKiBMb2NhbFN0b3JhZ2VQZXJzaXN0
ZW5jZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdBNkEyQzcwMURDQ0ZBOEMwMEMwRDA4NSAvKiBM
b2NhbFN0b3JhZ2VRdWlya1Rlc3QubW0gaW4gU291cmNlcyAqLywKIAkJCQkwNzZFNTA3RjFGNDUx
M0Q2MDA2RTlGNUEgLyogTG9nZ2luZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRTE4NjY0OTFG
NzJFOEYxMDBBMENBQjYgLyogTWFya2VkVGV4dC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTM2MzMs
NiArMzY0NCw3IEBACiAJCQkJQTFFQzExODgxRjQyNTQxMjAwRDAxNDZFIC8qIFByZXZpZXdMb2Fk
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMEMxQTQxMUFFNjAwNDQ3QzRDIC8qIFBy
aXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTQ2NDdCMTI2MUVCQTNCODUwMDQxRDdFRiAvKiBQcm9jZXNzRGlkVGVybWluYXRlLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTUxOEMxMTUzMjA1QjA1MDQwMDFGRjRBRSAvKiBQcm9jZXNz
U3dhcE9uTmF2aWdhdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMEMxMUQwQTY1MkYw
MEZFQkNGMyAvKiBQcm92aXNpb25hbFVSTE5vdENoYW5nZS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTdDQ0U3RUM4MUE0MTFBN0UwMDQ0N0M0QyAvKiBQdWJsaWNTdWZmaXgubW0gaW4gU291cmNlcyAq
LywKIAkJCQk3QzgzRTBDMjFEMEE2NTM1MDBGRUJDRjMgLyogUXVpY2tMb29rLm1tIGluIFNvdXJj
ZXMgKi8sCkBAIC0zNjU0LDYgKzM2NjYsNyBAQAogCQkJCUY0MThCRTE1MUY3MUI3REMwMDE5NzBF
NiAvKiBSb3VuZGVkUmVjdFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExODBDMEZBMUVF
NjdERjAwMDQ2OEY0NyAvKiBSdW5PcGVuUGFuZWwubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRENG
QTdBQTFFNDUxODMyMDBDMjQzM0QgLyogU2FtcGxlTWFwLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUNFMDk0NzM3MjA2MzIyM0IwMDNDOUJBMCAvKiBTY2hlbWVSZWdpc3RyeS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDQ0U3RjEyMUE0MTFBRTYwMDQ0N0M0QyAvKiBTY3JvbGxQaW5uaW5nQmVoYXZp
b3JzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0Qzg3OTdGMjA1OUQ4RDMwMDlDRDAwQiAvKiBT
Y3JvbGxWaWV3SW5zZXRUZXN0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNFMDZERjlCMUUxODUx
RjIwMEU1NzBDOSAvKiBTZWN1cml0eU9yaWdpbi5jcHAgaW4gU291cmNlcyAqLywKQEAgLTM3Mzks
NyArMzc1Miw2IEBACiAJCQkJN0NDRTdGMkYxQTQxMUIxMDAwNDQ3QzRDIC8qIFdLQnJvd3NpbmdD
b250ZXh0TG9hZERlbGVnYXRlVGVzdC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDNTRBNEJFMUFB
MTFDQ0EwMDM4MEY3OCAvKiBXS0J1bmRsZUZpbGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNUNFMzU0RDkxRTcwREE1QzAwQkVGRTNCIC8qIFdLQ29udGVudEV4dGVuc2lvblN0b3JlLm1t
IGluIFNvdXJjZXMgKi8sCi0JCQkJNTE4QzExNTMyMDVCMDUwNDAwMUZGNEFFIC8qIFByb2Nlc3NT
d2FwT25OYXZpZ2F0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ4MzhCMUYxRUVGM0E1QzAw
OUI5ODBFIC8qIFdLQ29udGVudFZpZXdFZGl0aW5nQWN0aW9ucy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTM3MENFMjJBMUY1NzM0MzQwMEU3NDEwQiAvKiBXS0NvbnRlbnRWaWV3VGFyZ2V0Rm9yQWN0
aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFEMTI0OTgxRTc2M0IwMjAwMkIyODIwIC8qIFdL
SFRUUENvb2tpZVN0b3JlLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVVJMLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9VUkwuY3BwCmluZGV4IGRjOGMwMDJiNTkyOGM3NmYyM2ZhNDMwYmQzNjNhNzgy
MTE1ZTkxZjAuLjg4OGE3NDIzYjVmOTU4ZWVhZGM1MjIyYTY3MTJiMjViYjk5ZjU3ODEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkwuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VUkwuY3BwCkBAIC0zODMsOCArMzgzLDgg
QEAgVEVTVF9GKFVSTFRlc3QsIEhvc3RJc01hdGNoaW5nRG9tYWluKQogCiAgICAgdXJsID0gY3Jl
YXRlVVJMKCJmaWxlOi8vL3d3dy53ZWJraXQub3JnIik7CiAKLSAgICBFWFBFQ1RfRkFMU0UodXJs
LmlzTWF0Y2hpbmdEb21haW4oU3RyaW5nIHsgfSkpOwotICAgIEVYUEVDVF9GQUxTRSh1cmwuaXNN
YXRjaGluZ0RvbWFpbihlbXB0eVN0cmluZygpKSk7CisgICAgRVhQRUNUX1RSVUUodXJsLmlzTWF0
Y2hpbmdEb21haW4oU3RyaW5nIHsgfSkpOworICAgIEVYUEVDVF9UUlVFKHVybC5pc01hdGNoaW5n
RG9tYWluKGVtcHR5U3RyaW5nKCkpKTsKICAgICBFWFBFQ1RfRkFMU0UodXJsLmlzTWF0Y2hpbmdE
b21haW4oQVNDSUlMaXRlcmFsKCJvcmciKSkpOwogICAgIEVYUEVDVF9GQUxTRSh1cmwuaXNNYXRj
aGluZ0RvbWFpbihBU0NJSUxpdGVyYWwoIndlYmtpdC5vcmciKSkpOwogICAgIEVYUEVDVF9GQUxT
RSh1cmwuaXNNYXRjaGluZ0RvbWFpbihBU0NJSUxpdGVyYWwoInd3dy53ZWJraXQub3JnIikpKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxT
dG9yYWdlUGVyc2lzdGVuY2UubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0xvY2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2ZjBjNjNiZTYyODk4
MGU3YWEyYmY5Nzk2MTM2ZTBiZmIyNDc2NzkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1tCkBA
IC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpbXBv
cnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0IDxXZWJL
aXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1VzZXJDb250ZW50
Q29udHJvbGxlclByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0
aW9uUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dlYktpdC5oPgorI2ltcG9ydCA8V2ViS2l0
L19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1VzZXJT
dHlsZVNoZWV0Lmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworI2lmIFdLX0FQSV9FTkFCTEVECisKK3N0YXRpYyBib29sIHJlYWR5
VG9Db250aW51ZTsKK3N0YXRpYyBib29sIHJlY2VpdmVkU2NyaXB0TWVzc2FnZTsKK3N0YXRpYyBS
ZXRhaW5QdHI8V0tTY3JpcHRNZXNzYWdlPiBsYXN0U2NyaXB0TWVzc2FnZTsKKworQGludGVyZmFj
ZSBMb2NhbFN0b3JhZ2VNZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VI
YW5kbGVyPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gTG9jYWxTdG9yYWdlTWVzc2FnZUhhbmRs
ZXIKKworLSAodm9pZCl1c2VyQ29udGVudENvbnRyb2xsZXI6KFdLVXNlckNvbnRlbnRDb250cm9s
bGVyICopdXNlckNvbnRlbnRDb250cm9sbGVyIGRpZFJlY2VpdmVTY3JpcHRNZXNzYWdlOihXS1Nj
cmlwdE1lc3NhZ2UgKiltZXNzYWdlCit7CisgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gdHJ1
ZTsKKyAgICBsYXN0U2NyaXB0TWVzc2FnZSA9IG1lc3NhZ2U7Cit9CisKK0BlbmQKKworCitURVNU
KFdLV2ViVmlldywgTG9jYWxTdG9yYWdlRW1wdHlTdHJpbmcpCit7CisgICAgcmVhZHlUb0NvbnRp
bnVlID0gZmFsc2U7CisgICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV0g
cmVtb3ZlRGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVz
XSBtb2RpZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4o
KSB7CisgICAgICAgIHJlYWR5VG9Db250aW51ZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOworCisgICAgQGF1dG9yZWxlYXNl
cG9vbCB7CisgICAgICAgIFJldGFpblB0cjxMb2NhbFN0b3JhZ2VNZXNzYWdlSGFuZGxlcj4gaGFu
ZGxlciA9IGFkb3B0TlMoW1tMb2NhbFN0b3JhZ2VNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0p
OworICAgICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlv
biA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAg
ICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3Nh
Z2VIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAInRlc3RIYW5kbGVyIl07CisgICAgICAgIFtj
b25maWd1cmF0aW9uIF9zZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMczpZRVNdOwor
ICAgIAorICAgICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBj
b25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICAKKyAgICAgICAgTlNVUkxS
ZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxl
IG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAibG9jYWxzdG9yYWdlLWVtcHR5LXN0cmluZy12
YWx1ZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEku
cmVzb3VyY2VzIl1dOworICAgICAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKyAg
ICAKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3Nh
Z2UpOworICAgICAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAgICAgICAgUmV0
YWluUHRyPE5TU3RyaW5nPiBzdHJpbmcxID0gKE5TU3RyaW5nICopW2xhc3RTY3JpcHRNZXNzYWdl
IGJvZHldOworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCIiLCBzdHJpbmcxLmdldCgpKTsKKyAg
ICAKKyAgICAgICAgLy8gRGl0Y2ggdGhpcyB3ZWIgdmlldyAoZGl0Y2ggdGhlIGluLW1lbW9yeSBs
b2NhbCBzdG9yYWdlKS4KKyAgICAgICAgd2ViVmlldyA9IG5pbDsKKyAgICAgICAgY29uZmlndXJh
dGlvbiA9IG5pbDsKKyAgICAgICAgaGFuZGxlciA9IG5pbDsKKyAgICAgICAgcmVxdWVzdCA9IG5p
bDsKKyAgICB9CisgICAgCisgICAgUmV0YWluUHRyPExvY2FsU3RvcmFnZU1lc3NhZ2VIYW5kbGVy
PiBoYW5kbGVyID0gYWRvcHROUyhbW0xvY2FsU3RvcmFnZU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBp
bml0XSk7CisgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRp
b24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAg
IFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VI
YW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAInRlc3RIYW5kbGVyIl07CisgICAgW2NvbmZpZ3Vy
YXRpb24gX3NldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzOllFU107CisgICAgCisg
ICAgLy8gTWFrZSBhIG5ldyB3ZWIgdmlldyB0byBmaW5pc2ggdGhlIHRlc3QuCisgICAgUmV0YWlu
UHRyPFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uLmdldCgpXSk7CisgICAgCisgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJM
UmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291
cmNlOkAibG9jYWxzdG9yYWdlLWVtcHR5LXN0cmluZy12YWx1ZSIgd2l0aEV4dGVuc2lvbjpAImh0
bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIFt3ZWJW
aWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworICAgIAorICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2Ug
PSBmYWxzZTsKKyAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IHN0cmluZzIgPSAoTlNTdHJpbmcgKilb
bGFzdFNjcmlwdE1lc3NhZ2UgYm9keV07CisgICAgRVhQRUNUX1dLX1NUUkVRKEAiIiwgc3RyaW5n
Mi5nZXQoKSk7Cit9CisKKyNlbmRpZgorCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpp
bmRleCBmNGIxZTA3Y2I4MWM0NGE1NzhhOTE3MzA3NmQ0Yjk4MTFjZTEzZTc2Li5mMjIyY2JlMTgx
NzMwNTM5ZGRjZTQwYjJhM2VmYWFiODExNTRhMzNmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmln
YXRpb24ubW0KQEAgLTUyLDYgKzUyLDE5IEBACiBzdGF0aWMgYm9vbCBkb25lOwogc3RhdGljIGlu
dCBudW1iZXJPZkRlY2lkZVBvbGljeUNhbGxzOwogCitzdGF0aWMgUmV0YWluUHRyPE5TTXV0YWJs
ZUFycmF5PiByZWNlaXZlZE1lc3NhZ2VzID0gYWRvcHROUyhbQFtdIG11dGFibGVDb3B5XSk7Citz
dGF0aWMgYm9vbCByZWNlaXZlZE1lc3NhZ2U7CitAaW50ZXJmYWNlIFBTT05NZXNzYWdlSGFuZGxl
ciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPgorQGVuZAorCitAaW1wbGVtZW50
YXRpb24gUFNPTk1lc3NhZ2VIYW5kbGVyCistICh2b2lkKXVzZXJDb250ZW50Q29udHJvbGxlcjoo
V0tVc2VyQ29udGVudENvbnRyb2xsZXIgKil1c2VyQ29udGVudENvbnRyb2xsZXIgZGlkUmVjZWl2
ZVNjcmlwdE1lc3NhZ2U6KFdLU2NyaXB0TWVzc2FnZSAqKW1lc3NhZ2UKK3sKKyAgICBbcmVjZWl2
ZWRNZXNzYWdlcyBhZGRPYmplY3Q6W21lc3NhZ2UgYm9keV1dOworICAgIHJlY2VpdmVkTWVzc2Fn
ZSA9IHRydWU7Cit9CitAZW5kCisKIEBpbnRlcmZhY2UgUFNPTk5hdmlnYXRpb25EZWxlZ2F0ZSA6
IE5TT2JqZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0ZT4KIEBlbmQKIApAQCAtNzEsMTYgKzg0LDMx
IEBAIC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uOihXS05hdmlnYXRpCiBAZW5kCiAKIEBpbnRlcmZhY2UgUFNPTlNjaGVt
ZSA6IE5TT2JqZWN0IDxXS1VSTFNjaGVtZUhhbmRsZXI+IHsKKyAgICBjb25zdCBjaGFyKiBfYnl0
ZXM7CiB9CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhCeXRlczooY29uc3QgY2hhciopYnl0ZXM7
CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBQU09OU2NoZW1lCiAKKy0gKGluc3RhbmNldHlwZSlp
bml0V2l0aEJ5dGVzOihjb25zdCBjaGFyKilieXRlcworeworICAgIHNlbGYgPSBbc3VwZXIgaW5p
dF07CisgICAgX2J5dGVzID0gYnl0ZXM7CisgICAgcmV0dXJuIHNlbGY7Cit9CisKIC0gKHZvaWQp
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzdGFydFVSTFNjaGVtZVRhc2s6KGlkIDxXS1VS
TFNjaGVtZVRhc2s+KXRhc2sKIHsKICAgICBSZXRhaW5QdHI8TlNVUkxSZXNwb25zZT4gcmVzcG9u
c2UgPSBhZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6dGFzay5yZXF1
ZXN0LlVSTCBNSU1FVHlwZTpAInRleHQvaHRtbCIgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOjEgdGV4
dEVuY29kaW5nTmFtZTpuaWxdKTsKICAgICBbdGFzayBkaWRSZWNlaXZlUmVzcG9uc2U6cmVzcG9u
c2UuZ2V0KCldOwotICAgIFt0YXNrIGRpZFJlY2VpdmVEYXRhOltAIkhlbGxvIiBkYXRhVXNpbmdF
bmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ11dOworCisgICAgaWYgKF9ieXRlcykgeworICAg
ICAgICBSZXRhaW5QdHI8TlNEYXRhPiBkYXRhID0gYWRvcHROUyhbW05TRGF0YSBhbGxvY10gaW5p
dFdpdGhCeXRlc05vQ29weToodm9pZCAqKV9ieXRlcyBsZW5ndGg6c3RybGVuKF9ieXRlcykgZnJl
ZVdoZW5Eb25lOk5PXSk7CisgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVEYXRhOmRhdGEuZ2V0KCld
OworICAgIH0gZWxzZQorICAgICAgICBbdGFzayBkaWRSZWNlaXZlRGF0YTpbQCJIZWxsbyIgZGF0
YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddXTsKKwogICAgIFt0YXNrIGRpZEZp
bmlzaF07CiB9CiAKQEAgLTkwLDYgKzExOCwyOCBAQCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgc3RvcFVSTFNjaGVtZVRhc2s6KGlkIDxXS1VSTFNjaGVtZVRhc2s+KXRhcwog
CiBAZW5kCiAKK3N0YXRpYyBjb25zdCBjaGFyKiB0ZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgK
KzxoZWFkPgorPHNjcmlwdD4KKworZnVuY3Rpb24gbG9nKG1zZykKK3sKKyAgICB3aW5kb3cud2Vi
a2l0Lm1lc3NhZ2VIYW5kbGVycy5wc29uLnBvc3RNZXNzYWdlKG1zZyk7Cit9CisKK3dpbmRvdy5v
bmxvYWQgPSBmdW5jdGlvbihldnQpIHsKKyAgICBpZiAod2luZG93Lmhpc3Rvcnkuc3RhdGUgIT0g
Im9ubG9hZENhbGxlZCIpCisgICAgICAgIHNldFRpbWVvdXQoJ3dpbmRvdy5oaXN0b3J5LnJlcGxh
Y2VTdGF0ZSgib25sb2FkQ2FsbGVkIiwgIiIpOycsIDApOworfQorCit3aW5kb3cub25wYWdlc2hv
dyA9IGZ1bmN0aW9uKGV2dCkgeworICAgIGxvZygiUGFnZVNob3cgY2FsbGVkLiBQZXJzaXN0ZWQ6
ICIgKyBldnQucGVyc2lzdGVkICsgIiwgYW5kIHdpbmRvdy5oaXN0b3J5LnN0YXRlIGlzOiAiICsg
d2luZG93Lmhpc3Rvcnkuc3RhdGUpOworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKylQU09OUkVT
T1VSQ0UiOworCiBURVNUKFByb2Nlc3NTd2FwLCBCYXNpYykKIHsKICAgICBhdXRvIHByb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24g
YWxsb2NdIGluaXRdKTsKQEAgLTEzNyw0ICsxODcsNzAgQEAgVEVTVChQcm9jZXNzU3dhcCwgQmFz
aWMpCiAgICAgRVhQRUNUX0VRKG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMsIDMpOwogfQogCitU
RVNUKFByb2Nlc3NTd2FwLCBCYWNrKQoreworICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0p
OworICAgIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzU3dhcHNPbk5hdmln
YXRpb24gPSBZRVM7CisgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQ
b29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlv
bi5nZXQoKV0pOworCisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tX
S1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXdDb25maWd1
cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBSZXRhaW5QdHI8
UFNPTlNjaGVtZT4gaGFuZGxlcjEgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdFdp
dGhCeXRlczp0ZXN0Qnl0ZXNdKTsKKyAgICBSZXRhaW5QdHI8UFNPTlNjaGVtZT4gaGFuZGxlcjIg
PSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3Q29uZmln
dXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIxLmdldCgpIGZvclVSTFNjaGVtZTpA
IlBTT04xIl07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6
aGFuZGxlcjIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTjIiXTsKKworICAgIFJldGFpblB0cjxQ
U09OTWVzc2FnZUhhbmRsZXI+IG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW1BTT05NZXNzYWdl
SGFuZGxlciBhbGxvY10gaW5pdF0pOworICAgIFtbd2ViVmlld0NvbmZpZ3VyYXRpb24gdXNlckNv
bnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5n
ZXQoKSBuYW1lOkAicHNvbiJdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25m
aWd1cmF0aW9uOndlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgYXV0byBkZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tQU09OTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAg
W3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIE5T
VVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJM
IFVSTFdpdGhTdHJpbmc6QCJwc29uMTovL2hvc3QvbWFpbjEuaHRtbCJdXTsKKyAgICBbd2ViVmll
dyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
cmVjZWl2ZWRNZXNzYWdlKTsKKyAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIGF1
dG8gcGlkMSA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisKKyAgICByZXF1ZXN0
ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBz
b24yOi8vaG9zdC9tYWluMi5odG1sIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVl
c3RdOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0g
ZmFsc2U7CisKKyAgICBhdXRvIHBpZDIgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJd
OworCisgICAgW3dlYlZpZXcgZ29CYWNrXTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmcmVjZWl2ZWRNZXNzYWdlKTsKKyAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAg
IGF1dG8gcGlkMyA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisKKyAgICAvLyAz
IGxvYWRzLCAzIGRlY2lkZVBvbGljeSBjYWxscyAoZS5nLiBhbnkgbG9hZCB0aGF0IHBlcmZvcm1z
IGEgcHJvY2VzcyBzd2FwIHNob3VsZCBub3QgaGF2ZSBnZW5lcmF0ZWQgYW4KKyAgICAvLyBhZGRp
dGlvbmFsIGRlY2lkZVBvbGljeSBjYWxsIGFzIGEgcmVzdWx0IG9mIHRoZSBwcm9jZXNzIHN3YXAp
CisgICAgRVhQRUNUX0VRKG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMsIDMpOworCisgICAgRVhQ
RUNUX0VRKFtyZWNlaXZlZE1lc3NhZ2VzIGNvdW50XSwgMnUpOworICAgIEVYUEVDVF9UUlVFKFty
ZWNlaXZlZE1lc3NhZ2VzLmdldCgpWzBdIGlzRXF1YWxUb1N0cmluZzpAIlBhZ2VTaG93IGNhbGxl
ZC4gUGVyc2lzdGVkOiBmYWxzZSwgYW5kIHdpbmRvdy5oaXN0b3J5LnN0YXRlIGlzOiBudWxsIl0p
OworCisgICAgLy8gRklYTUU6IFdlJ2QgbGlrZSB0byBnZXQgdGhlIHBhZ2UgcmVzdG9yaW5nIGZy
b20gdGhlIHBhZ2UgY2FjaGUgbGlrZSBiZWZvcmUgcHJvY2VzcyBzd2FwcGluZywgd2hpY2ggd2ls
bCBtYWtlIFBlcnNpc3RlZCBiZSAidHJ1ZSIKKyAgICAvLyBGb3Igbm93IGl0J3MgZXhwZWN0ZWQg
dG8gYmUgZmFsc2UiCisgICAgRVhQRUNUX1RSVUUoW3JlY2VpdmVkTWVzc2FnZXMuZ2V0KClbMV0g
aXNFcXVhbFRvU3RyaW5nOkAiUGFnZVNob3cgY2FsbGVkLiBQZXJzaXN0ZWQ6IGZhbHNlLCBhbmQg
d2luZG93Lmhpc3Rvcnkuc3RhdGUgaXM6IG9ubG9hZENhbGxlZCJdKTsKKworICAgIEVYUEVDVF9G
QUxTRShwaWQxID09IHBpZDIpOworICAgIEVYUEVDVF9GQUxTRShwaWQyID09IHBpZDMpOworCisg
ICAgLy8gRklYTUU6IElkZWFsbHkgd2UnZCBsaWtlIHRvIGdldCBwcm9jZXNzIGNhY2hpbmcgaGFw
cGVuaW5nIHN1Y2ggdGhhdCBwaWQxIGFuZCBwaWQzIGFyZSBlcXVhbC4KKyAgICAvLyBCdXQgZm9y
IG5vdyB0aGV5IHNob3VsZCBub3QgYmUuCisgICAgRVhQRUNUX0ZBTFNFKHBpZDEgPT0gcGlkMyk7
Cit9CisKICNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TY2hlbWVSZWdpc3RyeS5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2NoZW1lUmVnaXN0cnkubW0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTk1MjhmZjRkYzYxNjllYTNhZmRiY2YzZThmOTgyODBmNmM4MjY3YgotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2NoZW1lUmVnaXN0cnku
bW0KQEAgLTAsMCArMSwyMTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKwor
I2lmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1w
b3J0ICJUZXN0LmgiCisjaW1wb3J0ICJUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgiCisjaW1wb3J0
IDxXZWJLaXQvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLmg+CisjaW1wb3J0IDxXZWJLaXQv
V0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworI2lm
IFdLX0hBVkVfQ19TUEkKKyNpbXBvcnQgIlBsYXRmb3JtV2ViVmlldy5oIgorI2ltcG9ydCA8V2Vi
S2l0L1dLQnJvd3NpbmdDb250ZXh0TG9hZERlbGVnYXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tD
b250ZXh0UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLUGFnZVVJQ2xpZW50Lmg+CisjZW5k
aWYKKworc3RhdGljIE5TU3RyaW5nICogY29uc3QgZWNob1NjaGVtZSA9IEAiZWNobyI7CitzdGF0
aWMgUmV0YWluUHRyPE5TVVJMPiBsYXN0RWNob2VkVVJMOworCitAaW50ZXJmYWNlIEVjaG9VUkxQ
cm90b2NvbCA6IE5TVVJMUHJvdG9jb2wKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIEVjaG9VUkxQ
cm90b2NvbAorCisrIChCT09MKWNhbkluaXRXaXRoUmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVx
dWVzdAoreworICAgIHJldHVybiBbcmVxdWVzdC5VUkwuc2NoZW1lIGlzRXF1YWxUb1N0cmluZzpl
Y2hvU2NoZW1lXTsKK30KKworKyAoTlNVUkxSZXF1ZXN0ICopY2Fub25pY2FsUmVxdWVzdEZvclJl
cXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3QKK3sKKyAgICByZXR1cm4gcmVxdWVzdDsKK30K
KworKyAoQk9PTClyZXF1ZXN0SXNDYWNoZUVxdWl2YWxlbnQ6KE5TVVJMUmVxdWVzdCAqKWEgdG9S
ZXF1ZXN0OihOU1VSTFJlcXVlc3QgKiliCit7CisgICAgcmV0dXJuIE5POworfQorCistICh2b2lk
KXN0YXJ0TG9hZGluZworeworICAgIE5TVVJMICpyZXF1ZXN0VVJMID0gc2VsZi5yZXF1ZXN0LlVS
TDsKKyAgICBFWFBFQ1RfVFJVRShbcmVxdWVzdFVSTC5zY2hlbWUgaXNFcXVhbFRvU3RyaW5nOmVj
aG9TY2hlbWVdKTsKKworICAgIGxhc3RFY2hvZWRVUkwgPSByZXF1ZXN0VVJMOworCisgICAgTlNE
YXRhICpkYXRhID0gW3JlcXVlc3RVUkwuYWJzb2x1dGVTdHJpbmcgZGF0YVVzaW5nRW5jb2Rpbmc6
TlNBU0NJSVN0cmluZ0VuY29kaW5nXTsKKyAgICBhdXRvIHJlc3BvbnNlID0gYWRvcHROUyhbW05T
VVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOnNlbGYucmVxdWVzdC5VUkwgTUlNRVR5cGU6
QCJ0ZXh0L2h0bWwiIGV4cGVjdGVkQ29udGVudExlbmd0aDpbZGF0YSBsZW5ndGhdIHRleHRFbmNv
ZGluZ05hbWU6bmlsXSk7CisgICAgW3NlbGYuY2xpZW50IFVSTFByb3RvY29sOnNlbGYgZGlkUmVj
ZWl2ZVJlc3BvbnNlOnJlc3BvbnNlLmdldCgpIGNhY2hlU3RvcmFnZVBvbGljeTpOU1VSTENhY2hl
U3RvcmFnZU5vdEFsbG93ZWRdOworICAgIFtzZWxmLmNsaWVudCBVUkxQcm90b2NvbDpzZWxmIGRp
ZExvYWREYXRhOmRhdGFdOworICAgIFtzZWxmLmNsaWVudCBVUkxQcm90b2NvbERpZEZpbmlzaExv
YWRpbmc6c2VsZl07Cit9CisKKy0gKHZvaWQpc3RvcExvYWRpbmcKK3sKK30KKworQGVuZAorCisj
aWYgV0tfSEFWRV9DX1NQSQorCitzdGF0aWMgYm9vbCBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CisK
K0BpbnRlcmZhY2UgV0tDb250ZXh0UmVnaXN0ZXJVUkxTY2hlbWVBc0NhbkRpc3BsYXlPbmx5SWZD
YW5SZXF1ZXN0TG9hZERlbGVnYXRlIDogTlNPYmplY3QgPFdLQnJvd3NpbmdDb250ZXh0TG9hZERl
bGVnYXRlPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gV0tDb250ZXh0UmVnaXN0ZXJVUkxTY2hl
bWVBc0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0TG9hZERlbGVnYXRlCisKKy0gKHZvaWQpYnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlcjooV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICopc2Vu
ZGVyIGRpZEZhaWxQcm92aXNpb25hbExvYWRXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcgorewor
ICAgIGRpZEZpbmlzaExvYWQgPSB0cnVlOworfQorCistICh2b2lkKWJyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXJEaWRGaW5pc2hMb2FkOihXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKilzZW5k
ZXIKK3sKKyAgICBkaWRGaW5pc2hMb2FkID0gdHJ1ZTsKK30KKworQGVuZAorCisjZW5kaWYKKwor
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKFdlYktpdCwgUmVnaXN0ZXJBc0NhbkRp
c3BsYXlPbmx5SWZDYW5SZXF1ZXN0X1NhbWVPcmlnaW5Mb2FkKQoreworICAgIEBhdXRvcmVsZWFz
ZXBvb2wgeworICAgICAgICBbTlNVUkxQcm90b2NvbCByZWdpc3RlckNsYXNzOltFY2hvVVJMUHJv
dG9jb2wgY2xhc3NdXTsKKyAgICAgICAgW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciByZWdp
c3RlclNjaGVtZUZvckN1c3RvbVByb3RvY29sOmVjaG9TY2hlbWVdOworCisgICAgICAgIGF1dG8g
cHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gaW5pdF0pOworICAg
ICAgICBbcHJvY2Vzc1Bvb2wgX3JlZ2lzdGVyVVJMU2NoZW1lQXNDYW5EaXNwbGF5T25seUlmQ2Fu
UmVxdWVzdDplY2hvU2NoZW1lXTsKKworICAgICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9u
ID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICAg
ICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgp
XTsKKworICAgICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOkNHUmVjdFplcm8gY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlv
bi5nZXQoKV0pOworCisgICAgICAgIE5TU3RyaW5nICpodG1sU3RyaW5nID0gQCI8IURPQ1RZUEUg
aHRtbD48Ym9keT48c2NyaXB0IHNyYz0nZWNobzovL0EvQV8xJz48L3NjcmlwdD4iOworICAgICAg
ICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpodG1sU3RyaW5nIGJhc2VVUkw6W05TVVJMIFVSTFdp
dGhTdHJpbmc6QCJlY2hvOi8vQSJdXTsKKyAgICAgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRp
ZEZpbmlzaE5hdmlnYXRpb25dOworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJlY2hvOi8vQS9B
XzEiLCBbbGFzdEVjaG9lZFVSTCBhYnNvbHV0ZVN0cmluZ10pOworICAgICAgICBsYXN0RWNob2Vk
VVJMID0gbnVsbHB0cjsKKworICAgICAgICBbV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIHVu
cmVnaXN0ZXJTY2hlbWVGb3JDdXN0b21Qcm90b2NvbDplY2hvU2NoZW1lXTsKKyAgICAgICAgW05T
VVJMUHJvdG9jb2wgdW5yZWdpc3RlckNsYXNzOltFY2hvVVJMUHJvdG9jb2wgY2xhc3NdXTsKKyAg
ICB9Cit9CisKK1RFU1QoV2ViS2l0LCBSZWdpc3RlckFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVl
c3RfQ3Jvc3NPcmlnaW5Mb2FkKQoreworICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAgICBb
TlNVUkxQcm90b2NvbCByZWdpc3RlckNsYXNzOltFY2hvVVJMUHJvdG9jb2wgY2xhc3NdXTsKKyAg
ICAgICAgW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciByZWdpc3RlclNjaGVtZUZvckN1c3Rv
bVByb3RvY29sOmVjaG9TY2hlbWVdOworCisgICAgICAgIGF1dG8gcHJvY2Vzc1Bvb2wgPSBhZG9w
dE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gaW5pdF0pOworICAgICAgICBbcHJvY2Vzc1Bvb2wg
X3JlZ2lzdGVyVVJMU2NoZW1lQXNDYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdDplY2hvU2NoZW1l
XTsKKworICAgICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICAgICAgW3dlYlZpZXdDb25maWd1
cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKworICAgICAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVj
dFplcm8gY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOworCisgICAg
ICAgIE5TU3RyaW5nICpodG1sU3RyaW5nID0gQCI8IURPQ1RZUEUgaHRtbD48Ym9keT48c2NyaXB0
IHNyYz0nZWNobzovL0EvQV8xJz48L3NjcmlwdD4iOworICAgICAgICBbd2ViVmlldyBsb2FkSFRN
TFN0cmluZzpodG1sU3RyaW5nIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJlY2hvOi8v
QiJdXTsKKyAgICAgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25d
OworICAgICAgICBFWFBFQ1RfTlVMTChsYXN0RWNob2VkVVJMKTsgLy8gU2NyaXB0IGJsb2NrZWQK
KyAgICAgICAgbGFzdEVjaG9lZFVSTCA9IG51bGxwdHI7CisKKyAgICAgICAgW1dLQnJvd3NpbmdD
b250ZXh0Q29udHJvbGxlciB1bnJlZ2lzdGVyU2NoZW1lRm9yQ3VzdG9tUHJvdG9jb2w6ZWNob1Nj
aGVtZV07CisgICAgICAgIFtOU1VSTFByb3RvY29sIHVucmVnaXN0ZXJDbGFzczpbRWNob1VSTFBy
b3RvY29sIGNsYXNzXV07CisgICAgfQorfQorCisjaWYgV0tfSEFWRV9DX1NQSQorCitURVNUKFdl
YktpdCwgV0tDb250ZXh0UmVnaXN0ZXJVUkxTY2hlbWVBc0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1
ZXN0X1NhbWVPcmlnaW5Mb2FkKQoreworICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAgICBb
TlNVUkxQcm90b2NvbCByZWdpc3RlckNsYXNzOltFY2hvVVJMUHJvdG9jb2wgY2xhc3NdXTsKKyAg
ICAgICAgW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciByZWdpc3RlclNjaGVtZUZvckN1c3Rv
bVByb3RvY29sOmVjaG9TY2hlbWVdOworCisgICAgICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJl
Zj4gY29udGV4dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlKCkpOworICAgICAgICBXS0NvbnRl
eHRSZWdpc3RlclVSTFNjaGVtZUFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3QoY29udGV4dC5n
ZXQoKSwgVXRpbDo6dG9XSyhlY2hvU2NoZW1lLlVURjhTdHJpbmcpLmdldCgpKTsKKworICAgICAg
ICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyB7IGNvbnRleHQuZ2V0KCkgfTsKKyAgICAgICAgd2Vi
Vmlldy5wbGF0Zm9ybVZpZXcoKS5icm93c2luZ0NvbnRleHRDb250cm9sbGVyLmxvYWREZWxlZ2F0
ZSA9IFtbV0tDb250ZXh0UmVnaXN0ZXJVUkxTY2hlbWVBc0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1
ZXN0TG9hZERlbGVnYXRlIGFsbG9jXSBpbml0XTsKKyAgICAgICAgW3dlYlZpZXcucGxhdGZvcm1W
aWV3KCkuYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBsb2FkSFRNTFN0cmluZzpAIjwhRE9DVFlQ
RSBodG1sPjxib2R5PjxzY3JpcHQgc3JjPSdlY2hvOi8vQS9BXzEnPjwvc2NyaXB0PiIgYmFzZVVS
TDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImVjaG86Ly9BIl1dOworICAgICAgICBVdGlsOjpydW4o
JmRpZEZpbmlzaExvYWQpOworICAgICAgICBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CisKKyAgICAg
ICAgRVhQRUNUX1dLX1NUUkVRKEAiZWNobzovL0EvQV8xIiwgW2xhc3RFY2hvZWRVUkwgYWJzb2x1
dGVTdHJpbmddKTsKKyAgICAgICAgbGFzdEVjaG9lZFVSTCA9IG51bGxwdHI7CisKKyAgICAgICAg
W1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciB1bnJlZ2lzdGVyU2NoZW1lRm9yQ3VzdG9tUHJv
dG9jb2w6ZWNob1NjaGVtZV07CisgICAgICAgIFtOU1VSTFByb3RvY29sIHVucmVnaXN0ZXJDbGFz
czpbRWNob1VSTFByb3RvY29sIGNsYXNzXV07CisgICAgfQorfQorCitURVNUKFdlYktpdCwgV0tD
b250ZXh0UmVnaXN0ZXJVUkxTY2hlbWVBc0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0X0Nyb3Nz
T3JpZ2luTG9hZCkKK3sKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgW05TVVJMUHJv
dG9jb2wgcmVnaXN0ZXJDbGFzczpbRWNob1VSTFByb3RvY29sIGNsYXNzXV07CisgICAgICAgIFtX
S0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgcmVnaXN0ZXJTY2hlbWVGb3JDdXN0b21Qcm90b2Nv
bDplY2hvU2NoZW1lXTsKKworICAgICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRl
eHQgPSBhZG9wdFdLKFdLQ29udGV4dENyZWF0ZSgpKTsKKyAgICAgICAgV0tDb250ZXh0UmVnaXN0
ZXJVUkxTY2hlbWVBc0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0KGNvbnRleHQuZ2V0KCksIFV0
aWw6OnRvV0soZWNob1NjaGVtZS5VVEY4U3RyaW5nKS5nZXQoKSk7CisKKyAgICAgICAgUGxhdGZv
cm1XZWJWaWV3IHdlYlZpZXcgeyBjb250ZXh0LmdldCgpIH07CisgICAgICAgIHdlYlZpZXcucGxh
dGZvcm1WaWV3KCkuYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5sb2FkRGVsZWdhdGUgPSBbW1dL
Q29udGV4dFJlZ2lzdGVyVVJMU2NoZW1lQXNDYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdExvYWRE
ZWxlZ2F0ZSBhbGxvY10gaW5pdF07CisgICAgICAgIFt3ZWJWaWV3LnBsYXRmb3JtVmlldygpLmJy
b3dzaW5nQ29udGV4dENvbnRyb2xsZXIgbG9hZEhUTUxTdHJpbmc6QCI8IURPQ1RZUEUgaHRtbD48
Ym9keT48c2NyaXB0IHNyYz0nZWNobzovL0EvQV8xJz48L3NjcmlwdD4iIGJhc2VVUkw6W05TVVJM
IFVSTFdpdGhTdHJpbmc6QCJlY2hvOi8vQiJdXTsKKyAgICAgICAgVXRpbDo6cnVuKCZkaWRGaW5p
c2hMb2FkKTsKKyAgICAgICAgZGlkRmluaXNoTG9hZCA9IGZhbHNlOworCisgICAgICAgIEVYUEVD
VF9OVUxMKGxhc3RFY2hvZWRVUkwpOyAvLyBTY3JpcHQgYmxvY2tlZAorICAgICAgICBsYXN0RWNo
b2VkVVJMID0gbnVsbHB0cjsKKworICAgICAgICBbV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVy
IHVucmVnaXN0ZXJTY2hlbWVGb3JDdXN0b21Qcm90b2NvbDplY2hvU2NoZW1lXTsKKyAgICAgICAg
W05TVVJMUHJvdG9jb2wgdW5yZWdpc3RlckNsYXNzOltFY2hvVVJMUHJvdG9jb2wgY2xhc3NdXTsK
KyAgICB9Cit9CisKKyNlbmRpZiAvLyBXS19IQVZFX0NfU1BJCisKK30gLy8gbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2lj
Lm1tCmluZGV4IGEwY2ZiNmE1NzY3YTQ3NzA1MDUzNTdhMjM5NDMzODNiZDFlYjc2OGMuLjkxNjY4
YjljMzc2YzhhZTZjYTU1NjA5ZTE2NzQ0ZTY0M2RlMjM2ZmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2lj
Lm1tCkBAIC0xMjgyLDYgKzEyODIsMTUgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgTm9uRGVmYXVs
dFNlc3Npb25JRCkKICAgICBkb25lID0gZmFsc2U7CiB9CiAKK3ZvaWQgd2FpdFVudGlsU2Vydmlj
ZVdvcmtlclByb2Nlc3NDb3VudChXS1Byb2Nlc3NQb29sICpwcm9jZXNzUG9vbCwgdW5zaWduZWQg
cHJvY2Vzc0NvdW50KQoreworICAgIGRvIHsKKyAgICAgICAgaWYgKHByb2Nlc3NQb29sLl9zZXJ2
aWNlV29ya2VyUHJvY2Vzc0NvdW50ID09IHByb2Nlc3NDb3VudCkKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c3BpblJ1bkxvb3AoMSk7CisgICAgfSB3
aGlsZSAodHJ1ZSk7Cit9CisKIFRFU1QoU2VydmljZVdvcmtlcnMsIFByb2Nlc3NQZXJPcmlnaW4p
CiB7CiAgICAgQVNTRVJUKG1haW5CeXRlcyk7CkBAIC0xMzExLDggKzEzMjAsMTMgQEAgVEVTVChT
ZXJ2aWNlV29ya2VycywgUHJvY2Vzc1Blck9yaWdpbikKICAgICBoYW5kbGVyMi0+cmVzb3VyY2Vz
LnNldCgic3cyOi8vaG9zdC9zdy5qcyIsIFJlc291cmNlSW5mbyB7IEAiYXBwbGljYXRpb24vamF2
YXNjcmlwdCIsIHNjcmlwdEJ5dGVzIH0pOwogICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVt
ZUhhbmRsZXI6aGFuZGxlcjIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAic3cyIl07CiAKLSAgICBbY29u
ZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbCBfcmVnaXN0ZXJVUkxTY2hlbWVTZXJ2aWNlV29y
a2Vyc0NhbkhhbmRsZTpAInN3MSJdOwotICAgIFtjb25maWd1cmF0aW9uLmdldCgpLnByb2Nlc3NQ
b29sIF9yZWdpc3RlclVSTFNjaGVtZVNlcnZpY2VXb3JrZXJzQ2FuSGFuZGxlOkAic3cyIl07Cisg
ICAgV0tQcm9jZXNzUG9vbCAqcHJvY2Vzc1Bvb2wgPSBjb25maWd1cmF0aW9uLmdldCgpLnByb2Nl
c3NQb29sOworICAgIFtwcm9jZXNzUG9vbCBfcmVnaXN0ZXJVUkxTY2hlbWVTZXJ2aWNlV29ya2Vy
c0NhbkhhbmRsZTpAInN3MSJdOworICAgIFtwcm9jZXNzUG9vbCBfcmVnaXN0ZXJVUkxTY2hlbWVT
ZXJ2aWNlV29ya2Vyc0NhbkhhbmRsZTpAInN3MiJdOworCisgICAgLy8gTm9ybWFsbHksIHNlcnZp
Y2Ugd29ya2VycyBnZXQgdGVybWluYXRlZCBzZXZlcmFsIHNlY29uZHMgYWZ0ZXIgdGhlaXIgY2xp
ZW50cyBhcmUgZ29uZS4KKyAgICAvLyBEaXNhYmxlIHRoaXMgZGVsYXkgZm9yIHRoZSBwdXJwb3Nl
IG9mIHRlc3RpbmcuCisgICAgW3Byb2Nlc3NQb29sIF9kaXNhYmxlU2VydmljZVdvcmtlclByb2Nl
c3NUZXJtaW5hdGlvbkRlbGF5XTsKIAogICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcx
ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAs
IDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKIApAQCAt
MTMyMiw3ICsxMzM2LDcgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgUHJvY2Vzc1Blck9yaWdpbikK
ICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogICAgIGRvbmUgPSBmYWxzZTsK
IAotICAgIEVYUEVDVF9FUSgxVSwgd2ViVmlldzEuZ2V0KCkuY29uZmlndXJhdGlvbi5wcm9jZXNz
UG9vbC5fc2VydmljZVdvcmtlclByb2Nlc3NDb3VudCk7CisgICAgRVhQRUNUX0VRKDFVLCBwcm9j
ZXNzUG9vbC5fc2VydmljZVdvcmtlclByb2Nlc3NDb3VudCk7CiAKICAgICBSZXRhaW5QdHI8V0tX
ZWJWaWV3PiB3ZWJWaWV3MiA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9u
LmdldCgpXSk7CiAgICAgW3dlYlZpZXcyIGxvYWRSZXF1ZXN0OnJlcXVlc3QxXTsKQEAgLTEzMzAs
NyArMTM0NCw3IEBAIFRFU1QoU2VydmljZVdvcmtlcnMsIFByb2Nlc3NQZXJPcmlnaW4pCiAgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKICAgICBkb25lID0gZmFsc2U7CiAKLSAg
ICBFWFBFQ1RfRVEoMVUsIHdlYlZpZXcyLmdldCgpLmNvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wu
X3NlcnZpY2VXb3JrZXJQcm9jZXNzQ291bnQpOworICAgIEVYUEVDVF9FUSgxVSwgcHJvY2Vzc1Bv
b2wuX3NlcnZpY2VXb3JrZXJQcm9jZXNzQ291bnQpOwogCiAgICAgUmV0YWluUHRyPFdLV2ViVmll
dz4gd2ViVmlldzMgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQo
KV0pOwogICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdDIgPSBbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAic3cyOi8vaG9zdC9tYWluLmh0bWwiXV07CkBA
IC0xMzM5LDcgKzEzNTMsMjEgQEAgVEVTVChTZXJ2aWNlV29ya2VycywgUHJvY2Vzc1Blck9yaWdp
bikKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwogICAgIGRvbmUgPSBmYWxz
ZTsKIAotICAgIEVYUEVDVF9FUSgyVSwgd2ViVmlldzMuZ2V0KCkuY29uZmlndXJhdGlvbi5wcm9j
ZXNzUG9vbC5fc2VydmljZVdvcmtlclByb2Nlc3NDb3VudCk7CisgICAgRVhQRUNUX0VRKDJVLCBw
cm9jZXNzUG9vbC5fc2VydmljZVdvcmtlclByb2Nlc3NDb3VudCk7CisKKyAgICBOU1VSTFJlcXVl
c3QgKmFib3V0QmxhbmtSZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNV
UkwgVVJMV2l0aFN0cmluZzpAImFib3V0OmJsYW5rIl1dOworICAgIFt3ZWJWaWV3MyBsb2FkUmVx
dWVzdDphYm91dEJsYW5rUmVxdWVzdF07CisKKyAgICB3YWl0VW50aWxTZXJ2aWNlV29ya2VyUHJv
Y2Vzc0NvdW50KHByb2Nlc3NQb29sLCAxKTsKKyAgICBFWFBFQ1RfRVEoMVUsIHByb2Nlc3NQb29s
Ll9zZXJ2aWNlV29ya2VyUHJvY2Vzc0NvdW50KTsKKworICAgIFt3ZWJWaWV3MiBsb2FkUmVxdWVz
dDphYm91dEJsYW5rUmVxdWVzdF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6c3BpblJ1bkxv
b3AoMTApOworICAgIEVYUEVDVF9FUSgxVSwgcHJvY2Vzc1Bvb2wuX3NlcnZpY2VXb3JrZXJQcm9j
ZXNzQ291bnQpOworCisgICAgW3dlYlZpZXcxIGxvYWRSZXF1ZXN0OmFib3V0QmxhbmtSZXF1ZXN0
XTsKKyAgICB3YWl0VW50aWxTZXJ2aWNlV29ya2VyUHJvY2Vzc0NvdW50KHByb2Nlc3NQb29sLCAw
KTsKKyAgICBFWFBFQ1RfRVEoMFUsIHByb2Nlc3NQb29sLl9zZXJ2aWNlV29ya2VyUHJvY2Vzc0Nv
dW50KTsKIH0KIAogI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2xvY2Fsc3RvcmFnZS1lbXB0eS1zdHJpbmct
dmFsdWUuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvbG9jYWxz
dG9yYWdlLWVtcHR5LXN0cmluZy12YWx1ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRhNWY3ZGEyZGFhNDMy
Y2Q0NGQyMDQxNjRiM2JlMDNlZDczMWFkM2MKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2xvY2Fsc3RvcmFnZS1lbXB0eS1zdHJpbmctdmFs
dWUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8aHRtbD4KKzxib2R5PgorPHNjcmlwdD4KKyAgdmFy
IGtleSA9ICdFbXB0eVN0cmluZyc7CisgIHZhciB2YWx1ZSA9ICcnOworICB2YXIgdGVzdEtleSA9
ICdUZXN0U3RyaW5nJzsKKyAgaWYgKCFsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0ZXN0S2V5KSkgewor
ICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgdmFsdWUpOworICAgIGxvY2FsU3RvcmFnZS5z
ZXRJdGVtKHRlc3RLZXksICd0ZXN0Jyk7CisgIH0KKyAgICAKKyAgdmFyIHJlc3VsdCA9IGxvY2Fs
U3RvcmFnZS5nZXRJdGVtKGtleSk7CisgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRl
c3RIYW5kbGVyLnBvc3RNZXNzYWdlKCIiICsgcmVzdWx0KTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9ET01FbGVtZW50VGVzdC5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvRE9NRWxlbWVudFRlc3QuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjk1NGUxYzUzZTIwMjczYThjZDgzOWI0MWE2NjYyMTBiNDdmMTExMGMKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvRE9NRWxlbWVudFRl
c3QuY3BwCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggSWdhbGlh
IFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Rlc3QuaCIK
KyNpbmNsdWRlIDxnaW8vZ2lvLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgor
CitjbGFzcyBET01FbGVtZW50VGVzdCA6IHB1YmxpYyBXZWJQcm9jZXNzVGVzdCB7CitwdWJsaWM6
CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxXZWJQcm9jZXNzVGVzdD4gY3JlYXRlKCkgeyBy
ZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFdlYlByb2Nlc3NUZXN0PihuZXcgRE9NRWxlbWVudFRlc3Qo
KSk7IH0KKworcHJpdmF0ZToKKyAgICBib29sIHRlc3RBdXRvRmlsbChXZWJLaXRXZWJQYWdlKiBw
YWdlKQorICAgIHsKKyAgICAgICAgV2ViS2l0RnJhbWUqIGZyYW1lID0gd2Via2l0X3dlYl9wYWdl
X2dldF9tYWluX2ZyYW1lKHBhZ2UpOworICAgICAgICBnX2Fzc2VydF90cnVlKFdFQktJVF9JU19G
UkFNRShmcmFtZSkpOworCisgICAgICAgIEdSZWZQdHI8SlNDQ29udGV4dD4ganNDb250ZXh0ID0g
YWRvcHRHUmVmKHdlYmtpdF9mcmFtZV9nZXRfanNfY29udGV4dChmcmFtZSkpOworICAgICAgICBn
X2Fzc2VydF90cnVlKEpTQ19JU19DT05URVhUKGpzQ29udGV4dC5nZXQoKSkpOworICAgICAgICBh
c3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKGpzQ29udGV4dC5n
ZXQoKSkpOworCisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IGpzSW5wdXRFbGVtZW50ID0gYWRv
cHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGpzQ29udGV4dC5nZXQoKSwgImRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdhdXRvLWZpbGwnKSIpKTsKKyAgICAgICAgZ19hc3NlcnRfdHJ1ZShKU0Nf
SVNfVkFMVUUoanNJbnB1dEVsZW1lbnQuZ2V0KCkpKTsKKyAgICAgICAgYXNzZXJ0T2JqZWN0SXNE
ZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVChqc0lucHV0RWxlbWVudC5nZXQoKSkpOwor
ICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192YWx1ZV9pc19vYmplY3QoanNJbnB1dEVsZW1lbnQu
Z2V0KCkpKTsKKyAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfb2JqZWN0X2lzX2luc3Rh
bmNlX29mKGpzSW5wdXRFbGVtZW50LmdldCgpLCAiSFRNTElucHV0RWxlbWVudCIpKTsKKworICAg
ICAgICBhdXRvKiBub2RlID0gd2Via2l0X2RvbV9ub2RlX2Zvcl9qc192YWx1ZShqc0lucHV0RWxl
bWVudC5nZXQoKSk7CisgICAgICAgIGdfYXNzZXJ0X3RydWUoV0VCS0lUX0RPTV9JU19OT0RFKG5v
ZGUpKTsKKyAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09C
SkVDVChub2RlKSk7CisKKyAgICAgICAgYXV0byogZWxlbWVudCA9IFdFQktJVF9ET01fRUxFTUVO
VChub2RlKTsKKyAgICAgICAgZ19hc3NlcnRfZmFsc2Uod2Via2l0X2RvbV9lbGVtZW50X2h0bWxf
aW5wdXRfZWxlbWVudF9nZXRfYXV0b19maWxsZWQoZWxlbWVudCkpOworICAgICAgICBHUmVmUHRy
PEpTQ1ZhbHVlPiB2YWx1ZSA9IGFkb3B0R1JlZihqc2NfdmFsdWVfb2JqZWN0X2dldF9wcm9wZXJ0
eShqc0lucHV0RWxlbWVudC5nZXQoKSwgInZhbHVlIikpOworICAgICAgICBnX2Fzc2VydF90cnVl
KEpTQ19JU19WQUxVRSh2YWx1ZS5nZXQoKSkpOworICAgICAgICBnX2Fzc2VydF90cnVlKGpzY192
YWx1ZV9pc19zdHJpbmcodmFsdWUuZ2V0KCkpKTsKKyAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiB2
YWx1ZVN0cmluZyhqc2NfdmFsdWVfdG9fc3RyaW5nKHZhbHVlLmdldCgpKSk7CisgICAgICAgIGdf
YXNzZXJ0X2NtcHN0cih2YWx1ZVN0cmluZy5nZXQoKSwgPT0sICIiKTsKKworICAgICAgICB3ZWJr
aXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1dF9lbGVtZW50X3NldF9lZGl0aW5nX3ZhbHVlKGVsZW1l
bnQsICJhdXRvIGZpbGxlZCB2YWx1ZSIpOworICAgICAgICB3ZWJraXRfZG9tX2VsZW1lbnRfaHRt
bF9pbnB1dF9lbGVtZW50X3NldF9hdXRvX2ZpbGxlZChlbGVtZW50LCBUUlVFKTsKKyAgICAgICAg
dmFsdWUgPSBhZG9wdEdSZWYoanNjX3ZhbHVlX29iamVjdF9nZXRfcHJvcGVydHkoanNJbnB1dEVs
ZW1lbnQuZ2V0KCksICJ2YWx1ZSIpKTsKKyAgICAgICAgZ19hc3NlcnRfdHJ1ZShKU0NfSVNfVkFM
VUUodmFsdWUuZ2V0KCkpKTsKKyAgICAgICAgZ19hc3NlcnRfdHJ1ZShqc2NfdmFsdWVfaXNfc3Ry
aW5nKHZhbHVlLmdldCgpKSk7CisgICAgICAgIHZhbHVlU3RyaW5nLnJlc2V0KGpzY192YWx1ZV90
b19zdHJpbmcodmFsdWUuZ2V0KCkpKTsKKyAgICAgICAgZ19hc3NlcnRfY21wc3RyKHZhbHVlU3Ry
aW5nLmdldCgpLCA9PSwgImF1dG8gZmlsbGVkIHZhbHVlIik7CisgICAgICAgIGdfYXNzZXJ0X3Ry
dWUod2Via2l0X2RvbV9lbGVtZW50X2h0bWxfaW5wdXRfZWxlbWVudF9nZXRfYXV0b19maWxsZWQo
ZWxlbWVudCkpOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGJvb2wgcnVu
VGVzdChjb25zdCBjaGFyKiB0ZXN0TmFtZSwgV2ViS2l0V2ViUGFnZSogcGFnZSkgb3ZlcnJpZGUK
KyAgICB7CisgICAgICAgIGlmICghc3RyY21wKHRlc3ROYW1lLCAiYXV0by1maWxsIikpCisgICAg
ICAgICAgICByZXR1cm4gdGVzdEF1dG9GaWxsKHBhZ2UpOworCisgICAgICAgIGdfYXNzZXJ0X25v
dF9yZWFjaGVkKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9OworCitzdGF0aWMg
dm9pZCBfX2F0dHJpYnV0ZV9fKChjb25zdHJ1Y3RvcikpIHJlZ2lzdGVyVGVzdHMoKQoreworICAg
IFJFR0lTVEVSX1RFU1QoRE9NRWxlbWVudFRlc3QsICJXZWJLaXRET01FbGVtZW50L2F1dG8tZmls
bCIpOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGli
L0VkaXRvclRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL0Vk
aXRvclRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQzY2VkMGM1Nzc0MWQ5YjRhYmExOTcwNDk4MDU0NDhh
NjBkYjdkZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdEdMaWIvRWRpdG9yVGVzdC5jcHAKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBSZWQgSGF0IEluYy4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Rlc3QuaCIKKworY2xhc3MgV2ViS2l0V2ViRWRpdG9yVGVzdCA6IHB1YmxpYyBX
ZWJQcm9jZXNzVGVzdCB7CitwdWJsaWM6CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxXZWJQ
cm9jZXNzVGVzdD4gY3JlYXRlKCkgeyByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFdlYlByb2Nlc3NU
ZXN0PihuZXcgV2ViS2l0V2ViRWRpdG9yVGVzdCgpKTsgfQorCitwcml2YXRlOgorICAgIHN0YXRp
YyB2b2lkIHNlbGVjdGlvbkNoYW5nZWRDYWxsYmFjayhib29sKiBzZWxlY3Rpb25DaGFuZ2VkKQor
ICAgIHsKKyAgICAgICAgKnNlbGVjdGlvbkNoYW5nZWQgPSB0cnVlOworICAgIH0KKworICAgIGJv
b2wgdGVzdFNlbGVjdGlvbkNoYW5nZWQoV2ViS2l0V2ViUGFnZSogcGFnZSkKKyAgICB7CisgICAg
ICAgIGJvb2wgc2VsZWN0aW9uQ2hhbmdlZCA9IGZhbHNlOworCisgICAgICAgIFdlYktpdFdlYkVk
aXRvciogZWRpdG9yID0gd2Via2l0X3dlYl9wYWdlX2dldF9lZGl0b3IocGFnZSk7CisgICAgICAg
IGdfYXNzZXJ0KFdFQktJVF9JU19XRUJfRURJVE9SKGVkaXRvcikpOworICAgICAgICBhc3NlcnRP
YmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKGVkaXRvcikpOworICAgICAg
ICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQoZWRpdG9yLCAic2VsZWN0aW9uLWNoYW5nZWQiLCBH
X0NBTExCQUNLKHNlbGVjdGlvbkNoYW5nZWRDYWxsYmFjayksICZzZWxlY3Rpb25DaGFuZ2VkKTsK
KworICAgICAgICBHUmVmUHRyPEpTQ0NvbnRleHQ+IGpzQ29udGV4dCA9IGFkb3B0R1JlZih3ZWJr
aXRfZnJhbWVfZ2V0X2pzX2NvbnRleHQod2Via2l0X3dlYl9wYWdlX2dldF9tYWluX2ZyYW1lKHBh
Z2UpKSk7CisgICAgICAgIGdfYXNzZXJ0KEpTQ19JU19DT05URVhUKGpzQ29udGV4dC5nZXQoKSkp
OworICAgICAgICBhc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNU
KGpzQ29udGV4dC5nZXQoKSkpOworCisgICAgICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdGVwc1td
ID0geworICAgICAgICAgICAgImRvY3VtZW50LmV4ZWNDb21tYW5kKCdTZWxlY3RBbGwnKSIsCisg
ICAgICAgICAgICAid2luZG93LmdldFNlbGVjdGlvbigpLmNvbGxhcHNlVG9TdGFydCgpIiwKKyAg
ICAgICAgICAgICJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCdtb3ZlJywgJ2ZvcndhcmQn
LCAnY2hhcmFjdGVyJykiLAorICAgICAgICAgICAgIndpbmRvdy5nZXRTZWxlY3Rpb24oKS5tb2Rp
ZnkoJ2V4dGVuZCcsICdmb3J3YXJkJywgJ3dvcmQnKSIsCisgICAgICAgICAgICAiZG9jdW1lbnQu
ZXhlY0NvbW1hbmQoJ1Vuc2VsZWN0JykiLAorICAgICAgICAgICAgbnVsbHB0cgorICAgICAgICB9
OworCisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHJlc3VsdDsKKyAgICAgICAgdW5zaWduZWQg
aSA9IDA7CisgICAgICAgIHdoaWxlIChjb25zdCBjaGFyKiBjb21tYW5kID0gc3RlcHNbaSsrXSkg
eworICAgICAgICAgICAgZ19hc3NlcnQoIXNlbGVjdGlvbkNoYW5nZWQpOworICAgICAgICAgICAg
cmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGpzQ29udGV4dC5nZXQoKSwg
Y29tbWFuZCkpOworICAgICAgICAgICAgZ19hc3NlcnQoSlNDX0lTX1ZBTFVFKHJlc3VsdC5nZXQo
KSkpOworICAgICAgICAgICAgZ19hc3NlcnQoc2VsZWN0aW9uQ2hhbmdlZCk7CisgICAgICAgICAg
ICBzZWxlY3Rpb25DaGFuZ2VkID0gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CisKKyAgICBib29sIHJ1blRlc3QoY29uc3QgY2hhciogdGVzdE5hbWUsIFdl
YktpdFdlYlBhZ2UqIHBhZ2UpIG92ZXJyaWRlCisgICAgeworICAgICAgICBpZiAoIXN0cmNtcCh0
ZXN0TmFtZSwgInNlbGVjdGlvbi1jaGFuZ2VkIikpCisgICAgICAgICAgICByZXR1cm4gdGVzdFNl
bGVjdGlvbkNoYW5nZWQocGFnZSk7CisKKyAgICAgICAgZ19hc3NlcnRfbm90X3JlYWNoZWQoKTsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK307CisKK3N0YXRpYyB2b2lkIF9fYXR0cmli
dXRlX18oKGNvbnN0cnVjdG9yKSkgcmVnaXN0ZXJUZXN0cygpCit7CisgICAgUkVHSVNURVJfVEVT
VChXZWJLaXRXZWJFZGl0b3JUZXN0LCAiV2ViS2l0V2ViRWRpdG9yL3NlbGVjdGlvbi1jaGFuZ2Vk
Iik7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIv
RnJhbWVUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9GcmFt
ZVRlc3QuY3BwCmluZGV4IDg4MGMxMDM3NTFkMGQ3NDUyM2Y5ZGQxYWJiYTM0MDQ4YWY4MTAxYTku
LmU5MTBiZjdiYzNkNDU5NWNjYTMzOTkyMTAzNzcxODI2YTM3OWQwMDUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9GcmFtZVRlc3QuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9GcmFtZVRlc3QuY3BwCkBAIC0yMSw2
ICsyMSw3IEBACiAKICNpbmNsdWRlICJXZWJQcm9jZXNzVGVzdC5oIgogI2luY2x1ZGUgPGdpby9n
aW8uaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKIGNsYXNzIFdlYktpdEZy
YW1lVGVzdCA6IHB1YmxpYyBXZWJQcm9jZXNzVGVzdCB7CiBwdWJsaWM6CkBAIC02Miw2ICs2Myw3
NCBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBib29sIHRl
c3RKYXZhU2NyaXB0VmFsdWVzKFdlYktpdFdlYlBhZ2UqIHBhZ2UpCisgICAgeworICAgICAgICBX
ZWJLaXRGcmFtZSogZnJhbWUgPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X21haW5fZnJhbWUocGFnZSk7
CisgICAgICAgIGdfYXNzZXJ0KFdFQktJVF9JU19GUkFNRShmcmFtZSkpOworCisgICAgICAgIEdS
ZWZQdHI8SlNDQ29udGV4dD4ganNDb250ZXh0ID0gYWRvcHRHUmVmKHdlYmtpdF9mcmFtZV9nZXRf
anNfY29udGV4dChmcmFtZSkpOworICAgICAgICBnX2Fzc2VydChKU0NfSVNfQ09OVEVYVChqc0Nv
bnRleHQuZ2V0KCkpKTsKKyAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5p
c2hlcyhHX09CSkVDVChqc0NvbnRleHQuZ2V0KCkpKTsKKworICAgICAgICBXZWJLaXRET01Eb2N1
bWVudCogZG9jdW1lbnQgPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2RvbV9kb2N1bWVudChwYWdlKTsK
KyAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChkb2N1bWVudCkpOworICAg
ICAgICBhc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKGRvY3Vt
ZW50KSk7CisKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4ganNEb2N1bWVudCA9IGFkb3B0R1Jl
Zih3ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0KGZyYW1lLCBXRUJLSVRf
RE9NX09CSkVDVChkb2N1bWVudCkpKTsKKyAgICAgICAgZ19hc3NlcnQoSlNDX0lTX1ZBTFVFKGpz
RG9jdW1lbnQuZ2V0KCkpKTsKKyAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RG
aW5pc2hlcyhHX09CSkVDVChqc0RvY3VtZW50LmdldCgpKSk7CisgICAgICAgIGdfYXNzZXJ0KGpz
Y192YWx1ZV9nZXRfY29udGV4dChqc0RvY3VtZW50LmdldCgpKSA9PSBqc0NvbnRleHQuZ2V0KCkp
OworCisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHZhbHVlID0gYWRvcHRHUmVmKGpzY19jb250
ZXh0X2dldF92YWx1ZShqc0NvbnRleHQuZ2V0KCksICJkb2N1bWVudCIpKTsKKyAgICAgICAgZ19h
c3NlcnQodmFsdWUuZ2V0KCkgPT0ganNEb2N1bWVudC5nZXQoKSk7CisKKyNpZiBQTEFURk9STShH
VEspCisgICAgICAgIEdfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOworICAgICAgICBX
ZWJLaXRET01FbGVtZW50KiBwID0gd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZWxlbWVudF9ieV9p
ZChkb2N1bWVudCwgInBhcmFncmFwaCIpOworICAgICAgICBHX0dOVUNfRU5EX0lHTk9SRV9ERVBS
RUNBVElPTlM7CisgICAgICAgIGdfYXNzZXJ0KFdFQktJVF9ET01fSVNfRUxFTUVOVChwKSk7Cisg
ICAgICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1QocCkp
OworCisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IGpzUCA9IGFkb3B0R1JlZih3ZWJraXRfZnJh
bWVfZ2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0KGZyYW1lLCBXRUJLSVRfRE9NX09CSkVDVChw
KSkpOworI2Vsc2UKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4ganNQID0gYWRvcHRHUmVmKGpz
Y192YWx1ZV9vYmplY3RfaW52b2tlX21ldGhvZChqc0RvY3VtZW50LmdldCgpLCAiZ2V0RWxlbWVu
dEJ5SWQiLCBHX1RZUEVfU1RSSU5HLCAicGFyYWdyYXBoIiwgR19UWVBFX05PTkUpKTsKKyNlbmRp
ZgorICAgICAgICBnX2Fzc2VydChKU0NfSVNfVkFMVUUoanNQLmdldCgpKSk7CisgICAgICAgIGFz
c2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1QoanNQLmdldCgpKSk7
CisgICAgICAgIGdfYXNzZXJ0KGpzY192YWx1ZV9pc19vYmplY3QoanNQLmdldCgpKSk7CisgICAg
ICAgIGdfYXNzZXJ0KGpzY192YWx1ZV9nZXRfY29udGV4dChqc1AuZ2V0KCkpID09IGpzQ29udGV4
dC5nZXQoKSk7CisKKyAgICAgICAgdmFsdWUgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVh
dGUoanNDb250ZXh0LmdldCgpLCAiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3BhcmFncmFwaCcp
IikpOworICAgICAgICBnX2Fzc2VydCh2YWx1ZS5nZXQoKSA9PSBqc1AuZ2V0KCkpOworI2lmIFBM
QVRGT1JNKEdUSykKKyAgICAgICAgdmFsdWUgPSBhZG9wdEdSZWYoanNjX3ZhbHVlX29iamVjdF9p
bnZva2VfbWV0aG9kKGpzRG9jdW1lbnQuZ2V0KCksICJnZXRFbGVtZW50QnlJZCIsIEdfVFlQRV9T
VFJJTkcsICJwYXJhZ3JhcGgiLCBHX1RZUEVfTk9ORSkpOworICAgICAgICBnX2Fzc2VydCh2YWx1
ZS5nZXQoKSA9PSBqc1AuZ2V0KCkpOworI2VuZGlmCisKKyAgICAgICAgdmFsdWUgPSBhZG9wdEdS
ZWYoanNjX3ZhbHVlX29iamVjdF9nZXRfcHJvcGVydHkoanNQLmdldCgpLCAiaW5uZXJUZXh0Iikp
OworICAgICAgICBnX2Fzc2VydChKU0NfSVNfVkFMVUUodmFsdWUuZ2V0KCkpKTsKKyAgICAgICAg
YXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVCh2YWx1ZS5nZXQo
KSkpOworICAgICAgICBnX2Fzc2VydChqc2NfdmFsdWVfaXNfc3RyaW5nKHZhbHVlLmdldCgpKSk7
CisgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gc3RyVmFsdWUoanNjX3ZhbHVlX3RvX3N0cmluZyh2
YWx1ZS5nZXQoKSkpOworICAgICAgICBnX2Fzc2VydF9jbXBzdHIoc3RyVmFsdWUuZ2V0KCksID09
LCAiVGhpcyBpcyBhIHRlc3QiKTsKKworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBqc0ltYWdl
ID0gYWRvcHRHUmVmKGpzY192YWx1ZV9vYmplY3RfaW52b2tlX21ldGhvZChqc0RvY3VtZW50Lmdl
dCgpLCAiZ2V0RWxlbWVudEJ5SWQiLCBHX1RZUEVfU1RSSU5HLCAiaW1hZ2UiLCBHX1RZUEVfTk9O
RSkpOworICAgICAgICBnX2Fzc2VydChKU0NfSVNfVkFMVUUoanNJbWFnZS5nZXQoKSkpOworICAg
ICAgICBhc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKGpzSW1h
Z2UuZ2V0KCkpKTsKKyAgICAgICAgZ19hc3NlcnQoanNjX3ZhbHVlX2lzX29iamVjdChqc0ltYWdl
LmdldCgpKSk7CisKKyAgICAgICAgV2ViS2l0RE9NTm9kZSogaW1hZ2UgPSB3ZWJraXRfZG9tX25v
ZGVfZm9yX2pzX3ZhbHVlKGpzSW1hZ2UuZ2V0KCkpOworICAgICAgICBnX2Fzc2VydChXRUJLSVRf
RE9NX0lTX0VMRU1FTlQoaW1hZ2UpKTsKKyAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hl
blRlc3RGaW5pc2hlcyhHX09CSkVDVChpbWFnZSkpOworI2lmIFBMQVRGT1JNKEdUSykKKyAgICAg
ICAgR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElPTlM7CisgICAgICAgIGdfYXNzZXJ0KHdl
YmtpdF9kb21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRfYnlfaWQoZG9jdW1lbnQsICJpbWFnZSIpID09
IFdFQktJVF9ET01fRUxFTUVOVChpbWFnZSkpOworICAgICAgICBHX0dOVUNfRU5EX0lHTk9SRV9E
RVBSRUNBVElPTlM7CisjZW5kaWYKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAg
ICBib29sIHJ1blRlc3QoY29uc3QgY2hhciogdGVzdE5hbWUsIFdlYktpdFdlYlBhZ2UqIHBhZ2Up
IG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAoIXN0cmNtcCh0ZXN0TmFtZSwgIm1haW4tZnJh
bWUiKSkKQEAgLTcwLDYgKzEzOSw4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICByZXR1cm4gdGVz
dFVSSShwYWdlKTsKICAgICAgICAgaWYgKCFzdHJjbXAodGVzdE5hbWUsICJqYXZhc2NyaXB0LWNv
bnRleHQiKSkKICAgICAgICAgICAgIHJldHVybiB0ZXN0SmF2YVNjcmlwdENvbnRleHQocGFnZSk7
CisgICAgICAgIGlmICghc3RyY21wKHRlc3ROYW1lLCAiamF2YXNjcmlwdC12YWx1ZXMiKSkKKyAg
ICAgICAgICAgIHJldHVybiB0ZXN0SmF2YVNjcmlwdFZhbHVlcyhwYWdlKTsKIAogICAgICAgICBn
X2Fzc2VydF9ub3RfcmVhY2hlZCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC04MSw0ICsx
NTIsNSBAQCBzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fKChjb25zdHJ1Y3RvcikpIHJlZ2lzdGVy
VGVzdHMoKQogICAgIFJFR0lTVEVSX1RFU1QoV2ViS2l0RnJhbWVUZXN0LCAiV2ViS2l0RnJhbWUv
bWFpbi1mcmFtZSIpOwogICAgIFJFR0lTVEVSX1RFU1QoV2ViS2l0RnJhbWVUZXN0LCAiV2ViS2l0
RnJhbWUvdXJpIik7CiAgICAgUkVHSVNURVJfVEVTVChXZWJLaXRGcmFtZVRlc3QsICJXZWJLaXRG
cmFtZS9qYXZhc2NyaXB0LWNvbnRleHQiKTsKKyAgICBSRUdJU1RFUl9URVNUKFdlYktpdEZyYW1l
VGVzdCwgIldlYktpdEZyYW1lL2phdmFzY3JpcHQtdmFsdWVzIik7CiB9CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdERPTUVsZW1lbnQuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RET01FbGVtZW50LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zZDI4MDQ2YmYyNDU0ZGRjYzdkODg2NDIxNDhiNzc4ZWIyOGI2Y2ZmCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RE
T01FbGVtZW50LmNwcApAQCAtMCwwICsxLDM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4
IElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQg
YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIsMSBv
ZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJl
Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor
ICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElm
IG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJXZWJWaWV3VGVz
dC5oIgorCitzdGF0aWMgdm9pZCB0ZXN0V2ViS2l0RE9NRWxlbWVudEF1dG9GaWxsKFdlYlZpZXdU
ZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQoreworICAgIHN0YXRpYyBjb25zdCBnY2hhciogdGVz
dEhUTUwgPSAiPGh0bWw+PGJvZHk+PGZvcm0gYWN0aW9uPScjJz48aW5wdXQgaWQ9J2F1dG8tZmls
bCc+PC9pbnB1dD48L2Zvcm0+PC9ib2R5PjwvaHRtbD4iOworICAgIGdfYXNzZXJ0KHRlc3QtPnJ1
bldlYlByb2Nlc3NUZXN0KCJXZWJLaXRET01FbGVtZW50IiwgImF1dG8tZmlsbCIsIHRlc3RIVE1M
KSk7Cit9CisKK3ZvaWQgYmVmb3JlQWxsKCkKK3sKKyAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJL
aXRET01FbGVtZW50IiwgImF1dG8tZmlsbCIsIHRlc3RXZWJLaXRET01FbGVtZW50QXV0b0ZpbGwp
OworfQorCit2b2lkIGFmdGVyQWxsKCkKK3sKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0RWRpdG9yLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0RWRpdG9yLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OGJlNTNlM2Jl
ZDRlZWNkZmVkODY2ODBiOGEyZGYzNDQ4OTgwMDdkCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RFZGl0b3IuY3BwCkBAIC0wLDAgKzEs
MzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgUmVkIEhhdCBJbmMuCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIsMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpbmNsdWRlICJXZWJWaWV3VGVzdC5oIgorCitzdGF0aWMgdm9pZCB0ZXN0
V2ViS2l0V2ViRWRpdG9yU2VsZWN0aW9uQ2hhbmdlZChXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0
cG9pbnRlcikKK3sKKyAgICBzdGF0aWMgY29uc3QgZ2NoYXIqIHRlc3RIVE1MID0gIjxodG1sPjxi
b2R5PkFsbCB3b3JrIGFuZCBubyBwbGF5IG1ha2UgSmFjayBhIGR1bGwgYm95LjwvYm9keT48L2h0
bWw+IjsKKyAgICBnX2Fzc2VydCh0ZXN0LT5ydW5XZWJQcm9jZXNzVGVzdCgiV2ViS2l0V2ViRWRp
dG9yIiwgInNlbGVjdGlvbi1jaGFuZ2VkIiwgdGVzdEhUTUwpKTsKK30KKwordm9pZCBiZWZvcmVB
bGwoKQoreworICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktpdFdlYkVkaXRvciIsICJzZWxlY3Rp
b24tY2hhbmdlZCIsIHRlc3RXZWJLaXRXZWJFZGl0b3JTZWxlY3Rpb25DaGFuZ2VkKTsKK30KKwor
dm9pZCBhZnRlckFsbCgpCit7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdEdMaWIvVGVzdEZyYW1lLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0R0xpYi9UZXN0RnJhbWUuY3BwCmluZGV4IDIzNDFmYjMxNmRlMzRhMTQyZGVlYjI5NzFk
ZmQ2YzBiZjJhNTg4OTQuLjZmMzM3MjliMTgwMTk1Nzg5NmQyNDMyMjAzZDFlZDZiMDE0MWU0OTQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0RnJh
bWUuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0RnJh
bWUuY3BwCkBAIC0zNiwxMSArMzYsMTggQEAgc3RhdGljIHZvaWQgdGVzdFdlYktpdEZyYW1lSmF2
YVNjcmlwdENvbnRleHQoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAgZ19h
c3NlcnQodGVzdC0+cnVuV2ViUHJvY2Vzc1Rlc3QoIldlYktpdEZyYW1lIiwgImphdmFzY3JpcHQt
Y29udGV4dCIpKTsKIH0KIAorc3RhdGljIHZvaWQgdGVzdFdlYktpdEZyYW1lSmF2YVNjcmlwdFZh
bHVlcyhXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAgICBzdGF0aWMgY29u
c3QgY2hhciogdGVzdEhUTUwgPSAiPGh0bWw+PGJvZHk+PHAgaWQ9J3BhcmFncmFwaCc+VGhpcyBp
cyBhIHRlc3Q8L3A+PGltZyBpZD0naW1hZ2UnIHNyYz0nZm9vLnBuZyc+PC9ib2R5PjwvaHRtbD4i
OworICAgIGdfYXNzZXJ0KHRlc3QtPnJ1bldlYlByb2Nlc3NUZXN0KCJXZWJLaXRGcmFtZSIsICJq
YXZhc2NyaXB0LXZhbHVlcyIsIHRlc3RIVE1MKSk7Cit9CisKIHZvaWQgYmVmb3JlQWxsKCkKIHsK
ICAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRGcmFtZSIsICJtYWluLWZyYW1lIiwgdGVzdFdl
YktpdEZyYW1lTWFpbkZyYW1lKTsKICAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRGcmFtZSIs
ICJ1cmkiLCB0ZXN0V2ViS2l0RnJhbWVVUkkpOwogICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktp
dEZyYW1lIiwgImphdmFzY3JpcHQtY29udGV4dCIsIHRlc3RXZWJLaXRGcmFtZUphdmFTY3JpcHRD
b250ZXh0KTsKKyAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRGcmFtZSIsICJqYXZhc2NyaXB0
LXZhbHVlcyIsIHRlc3RXZWJLaXRGcmFtZUphdmFTY3JpcHRWYWx1ZXMpOwogfQogCiB2b2lkIGFm
dGVyQWxsKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xp
Yi9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dEdMaWIvVGVzdFdlYkV4dGVuc2lvbnMuY3BwCmluZGV4IGRmMDQzZGRmMDYwNWQyODk1MjYwMDM3
MGRiODA2MDZiNjllMmJjNTUuLjk4ZmE3MjQxMmQ2YTQyYjE4N2VlZTcxNTUzYjVlZjIzN2Y4YzZj
MTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0
V2ViRXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1Rlc3RXZWJFeHRlbnNpb25zLmNwcApAQCAtMzIsNyArMzIsNiBAQCBzdGF0aWMgR1VuaXF1
ZVB0cjxjaGFyPiBzY3JpcHREaWFsb2dSZXN1bHQ7CiAKICNkZWZpbmUgRk9STV9TVUJNSVNTSU9O
X1RFU1RfSUQgImZvcm0tc3VibWlzc2lvbi10ZXN0LWlkIgogCi0jaWYgUExBVEZPUk0oR1RLKQog
c3RhdGljIHZvaWQgdGVzdFdlYkV4dGVuc2lvbkdldFRpdGxlKFdlYlZpZXdUZXN0KiB0ZXN0LCBn
Y29uc3Rwb2ludGVyKQogewogICAgIHRlc3QtPmxvYWRIdG1sKCI8aHRtbD48aGVhZD48dGl0bGU+
V2ViS2l0R1RLKyBXZWIgRXh0ZW5zaW9ucyBUZXN0PC90aXRsZT48L2hlYWQ+PGJvZHk+PC9ib2R5
PjwvaHRtbD4iLCAwKTsKQEAgLTUzLDYgKzUyLDU5IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJFeHRl
bnNpb25HZXRUaXRsZShXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICBnX3Zh
cmlhbnRfZ2V0KHJlc3VsdC5nZXQoKSwgIigmcykiLCAmdGl0bGUpOwogICAgIGdfYXNzZXJ0X2Nt
cHN0cih0aXRsZSwgPT0sICJXZWJLaXRHVEsrIFdlYiBFeHRlbnNpb25zIFRlc3QiKTsKIH0KKwor
I2lmIFBMQVRGT1JNKEdUSykKK3N0YXRpYyBnYm9vbGVhbiBpbnB1dEVsZW1lbnRJc1VzZXJFZGl0
ZWQoR0RCdXNQcm94eSogcHJveHksIHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgY2hhciogZWxlbWVu
dElEKQoreworICAgIEdSZWZQdHI8R1ZhcmlhbnQ+IHJlc3VsdCA9IGFkb3B0R1JlZihnX2RidXNf
cHJveHlfY2FsbF9zeW5jKAorICAgICAgICBwcm94eSwKKyAgICAgICAgIklucHV0RWxlbWVudElz
VXNlckVkaXRlZCIsCisgICAgICAgIGdfdmFyaWFudF9uZXcoIih0JnMpIiwgcGFnZUlELCBlbGVt
ZW50SUQpLAorICAgICAgICBHX0RCVVNfQ0FMTF9GTEFHU19OT05FLAorICAgICAgICAtMSwgbnVs
bHB0ciwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X25vbm51bGwocmVzdWx0KTsKKworICAgIGdi
b29sZWFuIHJldHZhbDsKKyAgICBnX3ZhcmlhbnRfZ2V0KHJlc3VsdC5nZXQoKSwgIihiKSIsICZy
ZXR2YWwpOworICAgIHJldHVybiByZXR2YWw7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RXZWJFeHRl
bnNpb25JbnB1dEVsZW1lbnRJc1VzZXJFZGl0ZWQoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBv
aW50ZXIpCit7CisgICAgdGVzdC0+c2hvd0luV2luZG93QW5kV2FpdFVudGlsTWFwcGVkKCk7Cisg
ICAgdGVzdC0+bG9hZEh0bWwoIjxodG1sPjxib2R5IGlkPSdib2R5Jz48aW5wdXQgaWQ9J2lucHV0
Jz48L2lucHV0Pjx0ZXh0YXJlYSBpZD0ndGV4dGFyZWEnPjwvdGV4dGFyZWE+PC9ib2R5PjwvaHRt
bD4iLCBudWxscHRyKTsKKyAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKKworICAg
IEdVbmlxdWVQdHI8Y2hhcj4gZXh0ZW5zaW9uQnVzTmFtZShnX3N0cmR1cF9wcmludGYoIm9yZy53
ZWJraXQuZ3RrLldlYkV4dGVuc2lvblRlc3QldSIsIFRlc3Q6OnNfd2ViRXh0ZW5zaW9uSUQpKTsK
KyAgICBHUmVmUHRyPEdEQnVzUHJveHk+IHByb3h5ID0gYWRvcHRHUmVmKGJ1cy0+Y3JlYXRlUHJv
eHkoZXh0ZW5zaW9uQnVzTmFtZS5nZXQoKSwKKyAgICAgICAgIi9vcmcvd2Via2l0L2d0ay9XZWJF
eHRlbnNpb25UZXN0IiwgIm9yZy53ZWJraXQuZ3RrLldlYkV4dGVuc2lvblRlc3QiLCB0ZXN0LT5t
X21haW5Mb29wKSk7CisKKyAgICB1aW50NjRfdCBwYWdlSUQgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0
X3BhZ2VfaWQodGVzdC0+bV93ZWJWaWV3KTsKKyAgICBnX2Fzc2VydF9mYWxzZShpbnB1dEVsZW1l
bnRJc1VzZXJFZGl0ZWQocHJveHkuZ2V0KCksIHBhZ2VJRCwgImlucHV0IikpOworICAgIHRlc3Qt
PnJ1bkphdmFTY3JpcHRBbmRXYWl0VW50aWxGaW5pc2hlZCgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2lucHV0JykuZm9jdXMoKSIsIG51bGxwdHIpOworICAgIHRlc3QtPmtleVN0cm9rZShHREtf
S0VZX2EpOworICAgIHdoaWxlIChndGtfZXZlbnRzX3BlbmRpbmcoKSkKKyAgICAgICAgZ3RrX21h
aW5faXRlcmF0aW9uKCk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXN1bHRTdHJpbmc7CisgICAg
ZG8geworICAgICAgICBhdXRvKiByZXN1bHQgPSB0ZXN0LT5ydW5KYXZhU2NyaXB0QW5kV2FpdFVu
dGlsRmluaXNoZWQoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1dCcpLnZhbHVlIiwgbnVs
bHB0cik7CisgICAgICAgIHJlc3VsdFN0cmluZy5yZXNldChXZWJWaWV3VGVzdDo6amF2YXNjcmlw
dFJlc3VsdFRvQ1N0cmluZyhyZXN1bHQpKTsKKyAgICB9IHdoaWxlIChnX3N0cmNtcDAocmVzdWx0
U3RyaW5nLmdldCgpLCAiYSIpKTsKKyAgICBnX2Fzc2VydF90cnVlKGlucHV0RWxlbWVudElzVXNl
ckVkaXRlZChwcm94eS5nZXQoKSwgcGFnZUlELCAiaW5wdXQiKSk7CisKKyAgICBnX2Fzc2VydF9m
YWxzZShpbnB1dEVsZW1lbnRJc1VzZXJFZGl0ZWQocHJveHkuZ2V0KCksIHBhZ2VJRCwgInRleHRh
cmVhIikpOworICAgIHRlc3QtPnJ1bkphdmFTY3JpcHRBbmRXYWl0VW50aWxGaW5pc2hlZCgiZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHRhcmVhJykuZm9jdXMoKSIsIG51bGxwdHIpOworICAg
IHRlc3QtPmtleVN0cm9rZShHREtfS0VZX2IpOworICAgIHdoaWxlIChndGtfZXZlbnRzX3BlbmRp
bmcoKSkKKyAgICAgICAgZ3RrX21haW5faXRlcmF0aW9uKCk7CisgICAgZG8geworICAgICAgICBh
dXRvKiByZXN1bHQgPSB0ZXN0LT5ydW5KYXZhU2NyaXB0QW5kV2FpdFVudGlsRmluaXNoZWQoImRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0YXJlYScpLnZhbHVlIiwgbnVsbHB0cik7CisgICAg
ICAgIHJlc3VsdFN0cmluZy5yZXNldChXZWJWaWV3VGVzdDo6amF2YXNjcmlwdFJlc3VsdFRvQ1N0
cmluZyhyZXN1bHQpKTsKKyAgICB9IHdoaWxlIChnX3N0cmNtcDAocmVzdWx0U3RyaW5nLmdldCgp
LCAiYiIpKTsKKyAgICBnX2Fzc2VydF90cnVlKGlucHV0RWxlbWVudElzVXNlckVkaXRlZChwcm94
eS5nZXQoKSwgcGFnZUlELCAidGV4dGFyZWEiKSk7CisKKyAgICBnX2Fzc2VydF9mYWxzZShpbnB1
dEVsZW1lbnRJc1VzZXJFZGl0ZWQocHJveHkuZ2V0KCksIHBhZ2VJRCwgImJvZHkiKSk7Cit9CiAj
ZW5kaWYKIAogc3RhdGljIHZvaWQgZG9jdW1lbnRMb2FkZWRDYWxsYmFjayhHREJ1c0Nvbm5lY3Rp
b24qLCBjb25zdCBjaGFyKiwgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKiwg
R1ZhcmlhbnQqLCBXZWJWaWV3VGVzdCogdGVzdCkKQEAgLTIyMCw2ICsyNzIsNyBAQCBzdGF0aWMg
dm9pZCB0ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QoV2ViVmlld1Rl
c3QqIHRlc3QsIGdjb25zdAogICAgIGdfbWFpbl9sb29wX3J1bih0ZXN0LT5tX21haW5Mb29wKTsK
ICAgICBnX3NpZ25hbF9oYW5kbGVyX2Rpc2Nvbm5lY3QodGVzdC0+bV93ZWJWaWV3LCBwZXJtaXNz
aW9uUmVxdWVzdFNpZ25hbElEKTsKIH0KKyNlbmRpZiAvLyBQTEFURk9STShHVEspCiAKIHN0YXRp
YyB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9sc0NhbGxiYWNrKEdEQnVzQ29ubmVjdGlvbios
IGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKiwgY29uc3QgY2hhciosIGNvbnN0IGNoYXIqLCBHVmFy
aWFudCogcmVzdWx0LCBXZWJWaWV3VGVzdCogdGVzdCkKIHsKQEAgLTM5OSw3ICs0NTIsNiBAQCBz
dGF0aWMgdm9pZCB0ZXN0V2ViRXh0ZW5zaW9uRm9ybVN1Ym1pc3Npb25TdGVwcyhGb3JtU3VibWlz
c2lvblRlc3QqIHRlc3QsIGdjb25zdAogICAgICAgICAiPGlmcmFtZSBuYW1lPVwidGFyZ2V0X2Zy
YW1lXCI+PC9pZnJhbWU+IiwgbnVsbHB0cik7CiAgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlz
aGVkKCk7CiB9Ci0jZW5kaWYgLy8gUExBVEZPUk0oR1RLKQogCiB2b2lkIGJlZm9yZUFsbCgpCiB7
CkBAIC00MDcsOSArNDU5LDkgQEAgdm9pZCBiZWZvcmVBbGwoKQogICAgIGlmICghYnVzLT5ydW4o
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gRklYTUU6IFVzZSBKU0MgQVBJIGluIHRoZSBl
eHRlbnNpb24gdG8gZ2V0IHRoZSB0aXRsZSBmcm9tIEphdmFTY3JpcHQuCi0jaWYgUExBVEZPUk0o
R1RLKQogICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktpdFdlYkV4dGVuc2lvbiIsICJkb20tZG9j
dW1lbnQtdGl0bGUiLCB0ZXN0V2ViRXh0ZW5zaW9uR2V0VGl0bGUpOworI2lmIFBMQVRGT1JNKEdU
SykKKyAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRXZWJFeHRlbnNpb24iLCAiZG9tLWlucHV0
LWVsZW1lbnQtaXMtdXNlci1lZGl0ZWQiLCB0ZXN0V2ViRXh0ZW5zaW9uSW5wdXRFbGVtZW50SXNV
c2VyRWRpdGVkKTsKICNlbmRpZgogICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktpdFdlYkV4dGVu
c2lvbiIsICJkb2N1bWVudC1sb2FkZWQtc2lnbmFsIiwgdGVzdERvY3VtZW50TG9hZGVkU2lnbmFs
KTsKICAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgIndlYi1wcm9jZXNzLWNy
YXNoZWQiLCB0ZXN0V2ViS2l0V2ViVmlld1Byb2Nlc3NDcmFzaGVkKTsKQEAgLTQxNyw5ICs0Njks
OSBAQCB2b2lkIGJlZm9yZUFsbCgpCiAgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0V2ViRXh0
ZW5zaW9uIiwgImlzb2xhdGVkLXdvcmxkIiwgdGVzdFdlYkV4dGVuc2lvbklzb2xhdGVkV29ybGQp
OwogI2lmIFBMQVRGT1JNKEdUSykKICAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3
IiwgImluc3RhbGwtbWlzc2luZy1wbHVnaW5zLXBlcm1pc3Npb24tcmVxdWVzdCIsIHRlc3RJbnN0
YWxsTWlzc2luZ1BsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdCk7CisjZW5kaWYKICAgICBXZWJWaWV3
VGVzdDo6YWRkKCJXZWJLaXRXZWJFeHRlbnNpb24iLCAiZm9ybS1jb250cm9scy1hc3NvY2lhdGVk
LXNpZ25hbCIsIHRlc3RXZWJFeHRlbnNpb25Gb3JtQ29udHJvbHNBc3NvY2lhdGVkKTsKICAgICBG
b3JtU3VibWlzc2lvblRlc3Q6OmFkZCgiV2ViS2l0V2ViRXh0ZW5zaW9uIiwgImZvcm0tc3VibWlz
c2lvbi1zdGVwcyIsIHRlc3RXZWJFeHRlbnNpb25Gb3JtU3VibWlzc2lvblN0ZXBzKTsKLSNlbmRp
ZgogfQogCiB2b2lkIGFmdGVyQWxsKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0R0xpYi9XZWJFeHRlbnNpb25UZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R0xpYi9XZWJFeHRlbnNpb25UZXN0LmNwcAppbmRleCA0NzQ1MTFlZGI4
MmMzYWE2YzcwOTU2MGI4Y2UyZjBmNDgzZWQ3ZWFmLi5iNWVmY2Q5ZDk2OWI0MzI4ZDk1OGZhNjc3
YmNjOWQwYTJjNWRlNTBlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdEdMaWIvV2ViRXh0ZW5zaW9uVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRHTGliL1dlYkV4dGVuc2lvblRlc3QuY3BwCkBAIC00Nyw2ICs0NywxMSBAQCBz
dGF0aWMgY29uc3QgY2hhciBpbnRyb3NwZWN0aW9uWE1MW10gPQogICAgICIgICA8YXJnIHR5cGU9
J3QnIG5hbWU9J3BhZ2VJRCcgZGlyZWN0aW9uPSdpbicvPiIKICAgICAiICAgPGFyZyB0eXBlPSdz
JyBuYW1lPSd0aXRsZScgZGlyZWN0aW9uPSdvdXQnLz4iCiAgICAgIiAgPC9tZXRob2Q+IgorICAg
ICIgIDxtZXRob2QgbmFtZT0nSW5wdXRFbGVtZW50SXNVc2VyRWRpdGVkJz4iCisgICAgIiAgICA8
YXJnIHR5cGU9J3QnIG5hbWU9J3BhZ2VJRCcgZGlyZWN0aW9uPSdpbicvPiIKKyAgICAiICAgIDxh
cmcgdHlwZT0ncycgbmFtZT0nZWxlbWVudElEJyBkaXJlY3Rpb249J2luJy8+IgorICAgICIgICAg
PGFyZyB0eXBlPSdiJyBuYW1lPSdpc1VzZXJFZGl0ZWQnIGRpcmVjdGlvbj0nb3V0Jy8+IgorICAg
ICIgIDwvbWV0aG9kPiIKICAgICAiICA8bWV0aG9kIG5hbWU9J0Fib3J0UHJvY2Vzcyc+IgogICAg
ICIgIDwvbWV0aG9kPiIKICAgICAiICA8bWV0aG9kIG5hbWU9J1J1bkphdmFTY3JpcHRJbklzb2xh
dGVkV29ybGQnPiIKQEAgLTg2LDExICs5MSw5IEBAIHN0YXRpYyBjb25zdCBjaGFyIGludHJvc3Bl
Y3Rpb25YTUxbXSA9CiB0eXBlZGVmIGVudW0gewogICAgIERvY3VtZW50TG9hZGVkU2lnbmFsLAog
ICAgIFVSSUNoYW5nZWRTaWduYWwsCi0jaWYgUExBVEZPUk0oR1RLKQogICAgIEZvcm1Db250cm9s
c0Fzc29jaWF0ZWRTaWduYWwsCiAgICAgRm9ybVN1Ym1pc3Npb25XaWxsU2VuZERPTUV2ZW50U2ln
bmFsLAogICAgIEZvcm1TdWJtaXNzaW9uV2lsbENvbXBsZXRlU2lnbmFsLAotI2VuZGlmCiB9IERl
bGF5ZWRTaWduYWxUeXBlOwogCiBzdHJ1Y3QgRGVsYXllZFNpZ25hbCB7CkBAIC0xNDIsOCArMTQ1
LDEwIEBAIHN0YXRpYyB2b2lkIGRvY3VtZW50TG9hZGVkQ2FsbGJhY2soV2ViS2l0V2ViUGFnZSog
d2ViUGFnZSwgV2ViS2l0V2ViRXh0ZW5zaW9uKiBlCiB7CiAjaWYgUExBVEZPUk0oR1RLKQogICAg
IFdlYktpdERPTURvY3VtZW50KiBkb2N1bWVudCA9IHdlYmtpdF93ZWJfcGFnZV9nZXRfZG9tX2Rv
Y3VtZW50KHdlYlBhZ2UpOworICAgIEdfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwog
ICAgIEdSZWZQdHI8V2ViS2l0RE9NRE9NV2luZG93PiB3aW5kb3cgPSBhZG9wdEdSZWYod2Via2l0
X2RvbV9kb2N1bWVudF9nZXRfZGVmYXVsdF92aWV3KGRvY3VtZW50KSk7CiAgICAgd2Via2l0X2Rv
bV9kb21fd2luZG93X3dlYmtpdF9tZXNzYWdlX2hhbmRsZXJzX3Bvc3RfbWVzc2FnZSh3aW5kb3cu
Z2V0KCksICJkb20iLCAiRG9jdW1lbnRMb2FkZWQiKTsKKyAgICBHX0dOVUNfRU5EX0lHTk9SRV9E
RVBSRUNBVElPTlM7CiAjZW5kaWYKIAogICAgIGdwb2ludGVyIGRhdGEgPSBnX29iamVjdF9nZXRf
ZGF0YShHX09CSkVDVChleHRlbnNpb24pLCAiZGJ1cy1jb25uZWN0aW9uIik7CkBAIC0yMTcsOCAr
MjIyLDYgQEAgc3RhdGljIGdib29sZWFuIHNlbmRSZXF1ZXN0Q2FsbGJhY2soV2ViS2l0V2ViUGFn
ZSosIFdlYktpdFVSSVJlcXVlc3QqIHJlcXVlc3QsIFcKICAgICByZXR1cm4gcmV0dXJuVmFsdWU7
CiB9CiAKLS8vIEZJWE1FOiBmaWd1cmUgb3V0IHdoYXQgdG8gZG8gd2l0aCBXZWJLaXRXZWJIaXRU
ZXN0UmVzdWx0IGluIFdQRS4KLSNpZiBQTEFURk9STShHVEspCiBzdGF0aWMgR1ZhcmlhbnQqIHNl
cmlhbGl6ZUNvbnRleHRNZW51KFdlYktpdENvbnRleHRNZW51KiBtZW51KQogewogICAgIEdWYXJp
YW50QnVpbGRlciBidWlsZGVyOwpAQCAtMjI5LDE1ICsyMzIsMjMgQEAgc3RhdGljIEdWYXJpYW50
KiBzZXJpYWxpemVDb250ZXh0TWVudShXZWJLaXRDb250ZXh0TWVudSogbWVudSkKICAgICByZXR1
cm4gZ192YXJpYW50X2J1aWxkZXJfZW5kKCZidWlsZGVyKTsKIH0KIAotc3RhdGljIEdWYXJpYW50
KiBzZXJpYWxpemVOb2RlKFdlYktpdERPTU5vZGUqIG5vZGUpCitzdGF0aWMgR1ZhcmlhbnQqIHNl
cmlhbGl6ZU5vZGUoSlNDVmFsdWUqIG5vZGUpCiB7CiAgICAgR1ZhcmlhbnRCdWlsZGVyIGJ1aWxk
ZXI7CiAgICAgZ192YXJpYW50X2J1aWxkZXJfaW5pdCgmYnVpbGRlciwgR19WQVJJQU5UX1RZUEVf
QVJSQVkpOwotICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAiTmFt
ZSIsIGdfdmFyaWFudF9uZXdfdGFrZV9zdHJpbmcod2Via2l0X2RvbV9ub2RlX2dldF9ub2RlX25h
bWUobm9kZSkpKTsKLSAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmJ1aWxkZXIsICJ7c3Z9Iiwg
IlR5cGUiLCBnX3ZhcmlhbnRfbmV3X3VpbnQzMih3ZWJraXRfZG9tX25vZGVfZ2V0X25vZGVfdHlw
ZShub2RlKSkpOwotICAgIGdfdmFyaWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAi
Q29udGVudHMiLCBnX3ZhcmlhbnRfbmV3X3Rha2Vfc3RyaW5nKHdlYmtpdF9kb21fbm9kZV9nZXRf
dGV4dF9jb250ZW50KG5vZGUpKSk7Ci0gICAgV2ViS2l0RE9NTm9kZSogcGFyZW50ID0gd2Via2l0
X2RvbV9ub2RlX2dldF9wYXJlbnRfbm9kZShub2RlKTsKLSAgICBnX3ZhcmlhbnRfYnVpbGRlcl9h
ZGQoJmJ1aWxkZXIsICJ7c3Z9IiwgIlBhcmVudCIsIHBhcmVudCA/IGdfdmFyaWFudF9uZXdfdGFr
ZV9zdHJpbmcod2Via2l0X2RvbV9ub2RlX2dldF9ub2RlX25hbWUocGFyZW50KSkgOiBnX3Zhcmlh
bnRfbmV3X3N0cmluZygiUk9PVCIpKTsKKyAgICBHUmVmUHRyPEpTQ1ZhbHVlPiB2YWx1ZSA9IGFk
b3B0R1JlZihqc2NfdmFsdWVfb2JqZWN0X2dldF9wcm9wZXJ0eShub2RlLCAibm9kZU5hbWUiKSk7
CisgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZidWlsZGVyLCAie3N2fSIsICJOYW1lIiwgZ192
YXJpYW50X25ld190YWtlX3N0cmluZyhqc2NfdmFsdWVfdG9fc3RyaW5nKHZhbHVlLmdldCgpKSkp
OworICAgIHZhbHVlID0gYWRvcHRHUmVmKGpzY192YWx1ZV9vYmplY3RfZ2V0X3Byb3BlcnR5KG5v
ZGUsICJub2RlVHlwZSIpKTsKKyAgICBnX3ZhcmlhbnRfYnVpbGRlcl9hZGQoJmJ1aWxkZXIsICJ7
c3Z9IiwgIlR5cGUiLCBnX3ZhcmlhbnRfbmV3X3VpbnQzMihqc2NfdmFsdWVfdG9faW50MzIodmFs
dWUuZ2V0KCkpKSk7CisgICAgdmFsdWUgPSBhZG9wdEdSZWYoanNjX3ZhbHVlX29iamVjdF9nZXRf
cHJvcGVydHkobm9kZSwgInRleHRDb250ZW50IikpOworICAgIGdfdmFyaWFudF9idWlsZGVyX2Fk
ZCgmYnVpbGRlciwgIntzdn0iLCAiQ29udGVudHMiLCBnX3ZhcmlhbnRfbmV3X3Rha2Vfc3RyaW5n
KGpzY192YWx1ZV90b19zdHJpbmcodmFsdWUuZ2V0KCkpKSk7CisgICAgdmFsdWUgPSBhZG9wdEdS
ZWYoanNjX3ZhbHVlX29iamVjdF9nZXRfcHJvcGVydHkobm9kZSwgInBhcmVudE5vZGUiKSk7Cisg
ICAgaWYgKGpzY192YWx1ZV9pc19udWxsKHZhbHVlLmdldCgpKSkKKyAgICAgICAgZ192YXJpYW50
X2J1aWxkZXJfYWRkKCZidWlsZGVyLCAie3N2fSIsICJQYXJlbnQiLCBnX3ZhcmlhbnRfbmV3X3N0
cmluZygiUk9PVCIpKTsKKyAgICBlbHNlIHsKKyAgICAgICAgdmFsdWUgPSBqc2NfdmFsdWVfb2Jq
ZWN0X2dldF9wcm9wZXJ0eSh2YWx1ZS5nZXQoKSwgIm5vZGVOYW1lIik7CisgICAgICAgIGdfdmFy
aWFudF9idWlsZGVyX2FkZCgmYnVpbGRlciwgIntzdn0iLCAiUGFyZW50IiwgZ192YXJpYW50X25l
d190YWtlX3N0cmluZyhqc2NfdmFsdWVfdG9fc3RyaW5nKHZhbHVlLmdldCgpKSkpOworICAgIH0K
ICAgICByZXR1cm4gZ192YXJpYW50X2J1aWxkZXJfZW5kKCZidWlsZGVyKTsKIH0KIApAQCAtMjY3
LDEzICsyNzgsMTQgQEAgc3RhdGljIGdib29sZWFuIGNvbnRleHRNZW51Q2FsbGJhY2soV2ViS2l0
V2ViUGFnZSogcGFnZSwgV2ViS2l0Q29udGV4dE1lbnUqIG1lbnUKICAgICBpZiAoIWdfc3RyY21w
MChwYWdlVVJJLCAiQ29udGV4dE1lbnVUZXN0Tm9kZSIpKSB7CiAgICAgICAgIFdlYktpdERPTU5v
ZGUqIG5vZGUgPSB3ZWJraXRfd2ViX2hpdF90ZXN0X3Jlc3VsdF9nZXRfbm9kZShoaXRUZXN0UmVz
dWx0KTsKICAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19OT0RFKG5vZGUpKTsKLSAgICAg
ICAgd2Via2l0X2NvbnRleHRfbWVudV9zZXRfdXNlcl9kYXRhKG1lbnUsIHNlcmlhbGl6ZU5vZGUo
bm9kZSkpOworICAgICAgICBhdXRvKiBmcmFtZSA9IHdlYmtpdF93ZWJfcGFnZV9nZXRfbWFpbl9m
cmFtZShwYWdlKTsKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4ganNOb2RlID0gYWRvcHRHUmVm
KHdlYmtpdF9mcmFtZV9nZXRfanNfdmFsdWVfZm9yX2RvbV9vYmplY3QoZnJhbWUsIFdFQktJVF9E
T01fT0JKRUNUKG5vZGUpKSk7CisgICAgICAgIHdlYmtpdF9jb250ZXh0X21lbnVfc2V0X3VzZXJf
ZGF0YShtZW51LCBzZXJpYWxpemVOb2RlKGpzTm9kZS5nZXQoKSkpOwogICAgICAgICByZXR1cm4g
VFJVRTsKICAgICB9CiAKICAgICByZXR1cm4gRkFMU0U7CiB9Ci0jZW5kaWYgLy8gUExBVEZPUk0o
R1RLKQogCiBzdGF0aWMgdm9pZCBjb25zb2xlTWVzc2FnZVNlbnRDYWxsYmFjayhXZWJLaXRXZWJQ
YWdlKiB3ZWJQYWdlLCBXZWJLaXRDb25zb2xlTWVzc2FnZSogY29uc29sZU1lc3NhZ2UpCiB7CkBA
IC0yODIsMzAgKzI5NCwxNSBAQCBzdGF0aWMgdm9pZCBjb25zb2xlTWVzc2FnZVNlbnRDYWxsYmFj
ayhXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlLCBXZWJLaXRDb25zb2xlTWVzcwogICAgICAgICB3ZWJr
aXRfY29uc29sZV9tZXNzYWdlX2dldF9sZXZlbChjb25zb2xlTWVzc2FnZSksIHdlYmtpdF9jb25z
b2xlX21lc3NhZ2VfZ2V0X3RleHQoY29uc29sZU1lc3NhZ2UpLAogICAgICAgICB3ZWJraXRfY29u
c29sZV9tZXNzYWdlX2dldF9saW5lKGNvbnNvbGVNZXNzYWdlKSwgd2Via2l0X2NvbnNvbGVfbWVz
c2FnZV9nZXRfc291cmNlX2lkKGNvbnNvbGVNZXNzYWdlKSk7CiAgICAgR1VuaXF1ZVB0cjxjaGFy
PiBtZXNzYWdlU3RyaW5nKGdfdmFyaWFudF9wcmludCh2YXJpYW50LmdldCgpLCBGQUxTRSkpOwot
I2lmIFBMQVRGT1JNKEdUSykKLSAgICBHUmVmUHRyPFdlYktpdERPTURPTVdpbmRvdz4gd2luZG93
ID0gYWRvcHRHUmVmKHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2RlZmF1bHRfdmlldyh3ZWJraXRf
d2ViX3BhZ2VfZ2V0X2RvbV9kb2N1bWVudCh3ZWJQYWdlKSkpOwotICAgIGdfYXNzZXJ0KFdFQktJ
VF9ET01fSVNfRE9NX1dJTkRPVyh3aW5kb3cuZ2V0KCkpKTsKLSAgICB3ZWJraXRfZG9tX2RvbV93
aW5kb3dfd2Via2l0X21lc3NhZ2VfaGFuZGxlcnNfcG9zdF9tZXNzYWdlKHdpbmRvdy5nZXQoKSwg
ImNvbnNvbGUiLCBtZXNzYWdlU3RyaW5nLmdldCgpKTsKLSNlbHNlCi0gICAgR1VuaXF1ZVB0cjxj
aGFyPiBlc2NhcGVkTWVzc2FnZVN0cmluZyhzdGF0aWNfY2FzdDxjaGFyKj4oZ19tYWxsb2Moc3Ry
bGVuKG1lc3NhZ2VTdHJpbmcuZ2V0KCkpICogMiArIDEpKSk7Ci0gICAgY2hhciogc3JjID0gbWVz
c2FnZVN0cmluZy5nZXQoKTsKLSAgICBjaGFyKiBkZXN0ID0gZXNjYXBlZE1lc3NhZ2VTdHJpbmcu
Z2V0KCk7Ci0gICAgd2hpbGUgKCpzcmMpIHsKLSAgICAgICAgaWYgKCpzcmMgPT0gJyInKSB7Ci0g
ICAgICAgICAgICAqZGVzdCsrID0gJ1xcJzsKLSAgICAgICAgICAgICpkZXN0KysgPSAnIic7Ci0g
ICAgICAgIH0gZWxzZQotICAgICAgICAgICAgKmRlc3QrKyA9ICpzcmM7Ci0gICAgICAgICsrc3Jj
OwotICAgIH0KLSAgICAqZGVzdCA9ICdcMCc7Ci0gICAgR1VuaXF1ZVB0cjxjaGFyPiBzY3JpcHQo
Z19zdHJkdXBfcHJpbnRmKCJ3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5jb25zb2xlLnBv
c3RNZXNzYWdlKFwiJXNcIik7IiwgZXNjYXBlZE1lc3NhZ2VTdHJpbmcuZ2V0KCkpKTsKICAgICBH
UmVmUHRyPEpTQ0NvbnRleHQ+IGpzQ29udGV4dCA9IGFkb3B0R1JlZih3ZWJraXRfZnJhbWVfZ2V0
X2pzX2NvbnRleHQod2Via2l0X3dlYl9wYWdlX2dldF9tYWluX2ZyYW1lKHdlYlBhZ2UpKSk7Ci0g
ICAgR1JlZlB0cjxKU0NWYWx1ZT4gcmVzdWx0ID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1
YXRlKGpzQ29udGV4dC5nZXQoKSwgc2NyaXB0LmdldCgpKSk7Ci0jZW5kaWYKKyAgICBHUmVmUHRy
PEpTQ1ZhbHVlPiBjb25zb2xlID0gYWRvcHRHUmVmKGpzY19jb250ZXh0X2V2YWx1YXRlKGpzQ29u
dGV4dC5nZXQoKSwgIndpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLmNvbnNvbGUiKSk7Cisg
ICAgZ19hc3NlcnQoSlNDX0lTX1ZBTFVFKGNvbnNvbGUuZ2V0KCkpKTsKKyAgICBpZiAoanNjX3Zh
bHVlX2lzX29iamVjdChjb25zb2xlLmdldCgpKSkgeworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVl
PiByZXN1bHQgPSBhZG9wdEdSZWYoanNjX3ZhbHVlX29iamVjdF9pbnZva2VfbWV0aG9kKGNvbnNv
bGUuZ2V0KCksICJwb3N0TWVzc2FnZSIsIEdfVFlQRV9TVFJJTkcsIG1lc3NhZ2VTdHJpbmcuZ2V0
KCksIEdfVFlQRV9OT05FKSk7CisgICAgICAgIGdfYXNzZXJ0KEpTQ19JU19WQUxVRShyZXN1bHQu
Z2V0KCkpKTsKKyAgICB9CiB9CiAKLSNpZiBQTEFURk9STShHVEspCiBzdGF0aWMgdm9pZCBlbWl0
Rm9ybUNvbnRyb2xzQXNzb2NpYXRlZChHREJ1c0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0
IGNoYXIqIGZvcm1JZHMpCiB7CiAgICAgYm9vbCBvayA9IGdfZGJ1c19jb25uZWN0aW9uX2VtaXRf
c2lnbmFsKApAQCAtMzIxLDEzICszMTgsMTcgQEAgc3RhdGljIHZvaWQgZW1pdEZvcm1Db250cm9s
c0Fzc29jaWF0ZWQoR0RCdXNDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBjaGFyKgogCiBz
dGF0aWMgdm9pZCBmb3JtQ29udHJvbHNBc3NvY2lhdGVkQ2FsbGJhY2soV2ViS2l0V2ViUGFnZSog
d2ViUGFnZSwgR1B0ckFycmF5KiBmb3JtRWxlbWVudHMsIFdlYktpdFdlYkV4dGVuc2lvbiogZXh0
ZW5zaW9uKQogeworICAgIGF1dG8qIGZyYW1lID0gd2Via2l0X3dlYl9wYWdlX2dldF9tYWluX2Zy
YW1lKHdlYlBhZ2UpOwogICAgIEdTdHJpbmcqIGZvcm1JZHNCdWlsZGVyID0gZ19zdHJpbmdfbmV3
KG51bGxwdHIpOwogICAgIGZvciAoZ3VpbnQgaSA9IDA7IGkgPCBmb3JtRWxlbWVudHMtPmxlbjsg
KytpKSB7CiAgICAgICAgIGdfYXNzZXJ0KFdFQktJVF9ET01fSVNfRUxFTUVOVChnX3B0cl9hcnJh
eV9pbmRleChmb3JtRWxlbWVudHMsIGkpKSk7Ci0gICAgICAgIGF1dG8gZG9tRWxlbWVudCA9IFdF
QktJVF9ET01fRUxFTUVOVChnX3B0cl9hcnJheV9pbmRleChmb3JtRWxlbWVudHMsIGkpKTsKLSAg
ICAgICAgR1VuaXF1ZVB0cjxjaGFyPiBlbGVtZW50SUQod2Via2l0X2RvbV9lbGVtZW50X2dldF9p
ZChkb21FbGVtZW50KSk7Ci0gICAgICAgIGlmIChlbGVtZW50SUQpCi0gICAgICAgICAgICBnX3N0
cmluZ19hcHBlbmQoZm9ybUlkc0J1aWxkZXIsIGVsZW1lbnRJRC5nZXQoKSk7CisgICAgICAgIEdS
ZWZQdHI8SlNDVmFsdWU+IHZhbHVlID0gYWRvcHRHUmVmKHdlYmtpdF9mcmFtZV9nZXRfanNfdmFs
dWVfZm9yX2RvbV9vYmplY3QoZnJhbWUsIFdFQktJVF9ET01fT0JKRUNUKGdfcHRyX2FycmF5X2lu
ZGV4KGZvcm1FbGVtZW50cywgaSkpKSk7CisgICAgICAgIGdfYXNzZXJ0KEpTQ19JU19WQUxVRSh2
YWx1ZS5nZXQoKSkpOworICAgICAgICBnX2Fzc2VydChqc2NfdmFsdWVfaXNfb2JqZWN0KHZhbHVl
LmdldCgpKSk7CisgICAgICAgIGdfYXNzZXJ0KGpzY192YWx1ZV9vYmplY3RfaXNfaW5zdGFuY2Vf
b2YodmFsdWUuZ2V0KCksICJFbGVtZW50IikpOworICAgICAgICBHUmVmUHRyPEpTQ1ZhbHVlPiBp
ZFZhbHVlID0gYWRvcHRHUmVmKGpzY192YWx1ZV9vYmplY3RfZ2V0X3Byb3BlcnR5KHZhbHVlLmdl
dCgpLCAiaWQiKSk7CisgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gZWxlbWVudElEKGpzY192YWx1
ZV90b19zdHJpbmcoaWRWYWx1ZS5nZXQoKSkpOworICAgICAgICBnX3N0cmluZ19hcHBlbmQoZm9y
bUlkc0J1aWxkZXIsIGVsZW1lbnRJRC5nZXQoKSk7CiAgICAgfQogICAgIGlmICghZm9ybUlkc0J1
aWxkZXItPmxlbikgewogICAgICAgICBnX3N0cmluZ19mcmVlKGZvcm1JZHNCdWlsZGVyLCBUUlVF
KTsKQEAgLTM4MSw4ICszODIsMTggQEAgc3RhdGljIHZvaWQgaGFuZGxlRm9ybVN1Ym1pc3Npb25D
YWxsYmFjayhXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlLCBEZWxheWVkU2lnbmFsVHkKIAogc3RhdGlj
IHZvaWQgd2lsbFN1Ym1pdEZvcm1DYWxsYmFjayhXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlLCBXZWJL
aXRET01FbGVtZW50KiBmb3JtRWxlbWVudCwgV2ViS2l0Rm9ybVN1Ym1pc3Npb25TdGVwIHN0ZXAs
IFdlYktpdEZyYW1lKiBzb3VyY2VGcmFtZSwgV2ViS2l0RnJhbWUqIHRhcmdldEZyYW1lLCBHUHRy
QXJyYXkqIHRleHRGaWVsZE5hbWVzLCBHUHRyQXJyYXkqIHRleHRGaWVsZFZhbHVlcywgV2ViS2l0
V2ViRXh0ZW5zaW9uKiBleHRlbnNpb24pCiB7CisjaWYgUExBVEZPUk0oR1RLKQorICAgIEdfR05V
Q19CRUdJTl9JR05PUkVfREVQUkVDQVRJT05TOwogICAgIGdfYXNzZXJ0KFdFQktJVF9ET01fSVNf
SFRNTF9GT1JNX0VMRU1FTlQoZm9ybUVsZW1lbnQpKTsKLSAgICBHVW5pcXVlUHRyPGNoYXI+IGZv
cm1JRCh3ZWJraXRfZG9tX2VsZW1lbnRfZ2V0X2lkKGZvcm1FbGVtZW50KSk7CisgICAgR19HTlVD
X0VORF9JR05PUkVfREVQUkVDQVRJT05TOworI2VuZGlmCisgICAgR1JlZlB0cjxKU0NWYWx1ZT4g
anNGb3JtRWxlbWVudCA9IGFkb3B0R1JlZih3ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9k
b21fb2JqZWN0KHdlYmtpdF93ZWJfcGFnZV9nZXRfbWFpbl9mcmFtZSh3ZWJQYWdlKSwgV0VCS0lU
X0RPTV9PQkpFQ1QoZm9ybUVsZW1lbnQpKSk7CisgICAgZ19hc3NlcnQoSlNDX0lTX1ZBTFVFKGpz
Rm9ybUVsZW1lbnQuZ2V0KCkpKTsKKyAgICBnX2Fzc2VydChqc2NfdmFsdWVfaXNfb2JqZWN0KGpz
Rm9ybUVsZW1lbnQuZ2V0KCkpKTsKKyAgICBnX2Fzc2VydChqc2NfdmFsdWVfb2JqZWN0X2lzX2lu
c3RhbmNlX29mKGpzRm9ybUVsZW1lbnQuZ2V0KCksICJIVE1MRm9ybUVsZW1lbnQiKSk7CisgICAg
R1JlZlB0cjxKU0NWYWx1ZT4gaWRWYWx1ZSA9IGFkb3B0R1JlZihqc2NfdmFsdWVfb2JqZWN0X2dl
dF9wcm9wZXJ0eShqc0Zvcm1FbGVtZW50LmdldCgpLCAiaWQiKSk7CisgICAgR1VuaXF1ZVB0cjxj
aGFyPiBmb3JtSUQoanNjX3ZhbHVlX3RvX3N0cmluZyhpZFZhbHVlLmdldCgpKSk7CisKICAgICBz
d2l0Y2ggKHN0ZXApIHsKICAgICBjYXNlIFdFQktJVF9GT1JNX1NVQk1JU1NJT05fV0lMTF9TRU5E
X0RPTV9FVkVOVDoKICAgICAgICAgaGFuZGxlRm9ybVN1Ym1pc3Npb25DYWxsYmFjayh3ZWJQYWdl
LCBGb3JtU3VibWlzc2lvbldpbGxTZW5kRE9NRXZlbnRTaWduYWwsICJGb3JtU3VibWlzc2lvbldp
bGxTZW5kRE9NRXZlbnQiLCBmb3JtSUQuZ2V0KCksIHNvdXJjZUZyYW1lLCB0YXJnZXRGcmFtZSwg
dGV4dEZpZWxkTmFtZXMsIHRleHRGaWVsZFZhbHVlcywgZXh0ZW5zaW9uKTsKQEAgLTM5NCw3ICs0
MDUsNiBAQCBzdGF0aWMgdm9pZCB3aWxsU3VibWl0Rm9ybUNhbGxiYWNrKFdlYktpdFdlYlBhZ2Uq
IHdlYlBhZ2UsIFdlYktpdERPTUVsZW1lbnQqIGZvcgogICAgICAgICBnX2Fzc2VydF9ub3RfcmVh
Y2hlZCgpOwogICAgIH0KIH0KLSNlbmRpZgogCiBzdGF0aWMgdm9pZCBwYWdlQ3JlYXRlZENhbGxi
YWNrKFdlYktpdFdlYkV4dGVuc2lvbiogZXh0ZW5zaW9uLCBXZWJLaXRXZWJQYWdlKiB3ZWJQYWdl
LCBncG9pbnRlcikKIHsKQEAgLTQwMiwxMSArNDEyLDkgQEAgc3RhdGljIHZvaWQgcGFnZUNyZWF0
ZWRDYWxsYmFjayhXZWJLaXRXZWJFeHRlbnNpb24qIGV4dGVuc2lvbiwgV2ViS2l0V2ViUGFnZSog
d2UKICAgICBnX3NpZ25hbF9jb25uZWN0KHdlYlBhZ2UsICJub3RpZnk6OnVyaSIsIEdfQ0FMTEJB
Q0sodXJpQ2hhbmdlZENhbGxiYWNrKSwgZXh0ZW5zaW9uKTsKICAgICBnX3NpZ25hbF9jb25uZWN0
KHdlYlBhZ2UsICJzZW5kLXJlcXVlc3QiLCBHX0NBTExCQUNLKHNlbmRSZXF1ZXN0Q2FsbGJhY2sp
LCBudWxscHRyKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KHdlYlBhZ2UsICJjb25zb2xlLW1lc3Nh
Z2Utc2VudCIsIEdfQ0FMTEJBQ0soY29uc29sZU1lc3NhZ2VTZW50Q2FsbGJhY2spLCBudWxscHRy
KTsKLSNpZiBQTEFURk9STShHVEspCiAgICAgZ19zaWduYWxfY29ubmVjdCh3ZWJQYWdlLCAiY29u
dGV4dC1tZW51IiwgR19DQUxMQkFDSyhjb250ZXh0TWVudUNhbGxiYWNrKSwgbnVsbHB0cik7CiAg
ICAgZ19zaWduYWxfY29ubmVjdCh3ZWJQYWdlLCAiZm9ybS1jb250cm9scy1hc3NvY2lhdGVkIiwg
R19DQUxMQkFDSyhmb3JtQ29udHJvbHNBc3NvY2lhdGVkQ2FsbGJhY2spLCBleHRlbnNpb24pOwog
ICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2ViUGFnZSwgIndpbGwtc3VibWl0LWZvcm0iLCBHX0NBTExC
QUNLKHdpbGxTdWJtaXRGb3JtQ2FsbGJhY2spLCBleHRlbnNpb24pOwotI2VuZGlmCiB9CiAKIHN0
YXRpYyBjaGFyKiBlY2hvQ2FsbGJhY2soY29uc3QgY2hhciogbWVzc2FnZSkKQEAgLTQ0OCwxNCAr
NDU2LDI2IEBAIHN0YXRpYyB2b2lkIG1ldGhvZENhbGxDYWxsYmFjayhHREJ1c0Nvbm5lY3Rpb24q
IGNvbm5lY3Rpb24sIGNvbnN0IGNoYXIqIHNlbmRlciwKICAgICAgICAgaWYgKCFwYWdlKQogICAg
ICAgICAgICAgcmV0dXJuOwogCi0jaWYgUExBVEZPUk0oR1RLKQotICAgICAgICBXZWJLaXRET01E
b2N1bWVudCogZG9jdW1lbnQgPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2RvbV9kb2N1bWVudChwYWdl
KTsKLSAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiB0aXRsZSh3ZWJraXRfZG9tX2RvY3VtZW50X2dl
dF90aXRsZShkb2N1bWVudCkpOworICAgICAgICBHUmVmUHRyPEpTQ0NvbnRleHQ+IGpzQ29udGV4
dCA9IGFkb3B0R1JlZih3ZWJraXRfZnJhbWVfZ2V0X2pzX2NvbnRleHQod2Via2l0X3dlYl9wYWdl
X2dldF9tYWluX2ZyYW1lKHBhZ2UpKSk7CisgICAgICAgIEdSZWZQdHI8SlNDVmFsdWU+IHRpdGxl
VmFsdWUgPSBhZG9wdEdSZWYoanNjX2NvbnRleHRfZXZhbHVhdGUoanNDb250ZXh0LmdldCgpLCAi
ZG9jdW1lbnQudGl0bGUiKSk7CisgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gdGl0bGUoanNjX3Zh
bHVlX3RvX3N0cmluZyh0aXRsZVZhbHVlLmdldCgpKSk7CiAgICAgICAgIGdfZGJ1c19tZXRob2Rf
aW52b2NhdGlvbl9yZXR1cm5fdmFsdWUoaW52b2NhdGlvbiwgZ192YXJpYW50X25ldygiKHMpIiwg
dGl0bGUuZ2V0KCkpKTsKLSNlbGlmIFBMQVRGT1JNKFdQRSkKLSAgICAgICAgLy8gRklYTUU6IFVz
ZSBKU0MgQVBJIHRvIGdldCB0aGUgdGl0bGUgZnJvbSBKYXZhU2NyaXB0LgotICAgICAgICBnX2Ri
dXNfbWV0aG9kX2ludm9jYXRpb25fcmV0dXJuX3ZhbHVlKGludm9jYXRpb24sIGdfdmFyaWFudF9u
ZXcoIihzKSIsICIiKSk7Ci0jZW5kaWYKKyAgICB9IGVsc2UgaWYgKCFnX3N0cmNtcDAobWV0aG9k
TmFtZSwgIklucHV0RWxlbWVudElzVXNlckVkaXRlZCIpKSB7CisgICAgICAgIHVpbnQ2NF90IHBh
Z2VJRDsKKyAgICAgICAgY29uc3QgY2hhciogZWxlbWVudElEOworICAgICAgICBnX3ZhcmlhbnRf
Z2V0KHBhcmFtZXRlcnMsICIodCZzKSIsICZwYWdlSUQsICZlbGVtZW50SUQpOworICAgICAgICBX
ZWJLaXRXZWJQYWdlKiBwYWdlID0gZ2V0V2ViUGFnZShXRUJLSVRfV0VCX0VYVEVOU0lPTih1c2Vy
RGF0YSksIHBhZ2VJRCwgaW52b2NhdGlvbik7CisgICAgICAgIGlmICghcGFnZSkKKyAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICBXZWJLaXRET01Eb2N1bWVudCogZG9jdW1lbnQgPSB3ZWJr
aXRfd2ViX3BhZ2VfZ2V0X2RvbV9kb2N1bWVudChwYWdlKTsKKyAgICAgICAgV2ViS2l0RnJhbWUq
IGZyYW1lID0gd2Via2l0X3dlYl9wYWdlX2dldF9tYWluX2ZyYW1lKHBhZ2UpOworICAgICAgICBH
UmVmUHRyPEpTQ0NvbnRleHQ+IGpzQ29udGV4dCA9IGFkb3B0R1JlZih3ZWJraXRfZnJhbWVfZ2V0
X2pzX2NvbnRleHQoZnJhbWUpKTsKKyAgICAgICAgR1JlZlB0cjxKU0NWYWx1ZT4ganNEb2N1bWVu
dCA9IGFkb3B0R1JlZih3ZWJraXRfZnJhbWVfZ2V0X2pzX3ZhbHVlX2Zvcl9kb21fb2JqZWN0KGZy
YW1lLCBXRUJLSVRfRE9NX09CSkVDVChkb2N1bWVudCkpKTsKKyAgICAgICAgR1JlZlB0cjxKU0NW
YWx1ZT4ganNJbnB1dEVsZW1lbnQgPSBhZG9wdEdSZWYoanNjX3ZhbHVlX29iamVjdF9pbnZva2Vf
bWV0aG9kKGpzRG9jdW1lbnQuZ2V0KCksICJnZXRFbGVtZW50QnlJZCIsIEdfVFlQRV9TVFJJTkcs
IGVsZW1lbnRJRCwgR19UWVBFX05PTkUpKTsKKyAgICAgICAgV2ViS2l0RE9NTm9kZSogbm9kZSA9
IHdlYmtpdF9kb21fbm9kZV9mb3JfanNfdmFsdWUoanNJbnB1dEVsZW1lbnQuZ2V0KCkpOworICAg
ICAgICBnYm9vbGVhbiBpc1VzZXJFZGl0ZWQgPSB3ZWJraXRfZG9tX2VsZW1lbnRfaHRtbF9pbnB1
dF9lbGVtZW50X2lzX3VzZXJfZWRpdGVkKFdFQktJVF9ET01fRUxFTUVOVChub2RlKSk7CisgICAg
ICAgIGdfZGJ1c19tZXRob2RfaW52b2NhdGlvbl9yZXR1cm5fdmFsdWUoaW52b2NhdGlvbiwgZ192
YXJpYW50X25ldygiKGIpIiwgaXNVc2VyRWRpdGVkKSk7CiAgICAgfSBlbHNlIGlmICghZ19zdHJj
bXAwKG1ldGhvZE5hbWUsICJSdW5KYXZhU2NyaXB0SW5Jc29sYXRlZFdvcmxkIikpIHsKICAgICAg
ICAgdWludDY0X3QgcGFnZUlEOwogICAgICAgICBjb25zdCBjaGFyKiBzY3JpcHQ7CkBAIC01MjMs
NyArNTQzLDYgQEAgc3RhdGljIHZvaWQgYnVzQWNxdWlyZWRDYWxsYmFjayhHREJ1c0Nvbm5lY3Rp
b24qIGNvbm5lY3Rpb24sIGNvbnN0IGNoYXIqIG5hbWUsIGcKICAgICAgICAgY2FzZSBVUklDaGFu
Z2VkU2lnbmFsOgogICAgICAgICAgICAgZW1pdFVSSUNoYW5nZWQoY29ubmVjdGlvbiwgZGVsYXll
ZFNpZ25hbC5zdHIuZGF0YSgpKTsKICAgICAgICAgICAgIGJyZWFrOwotI2lmIFBMQVRGT1JNKEdU
SykKICAgICAgICAgY2FzZSBGb3JtQ29udHJvbHNBc3NvY2lhdGVkU2lnbmFsOgogICAgICAgICAg
ICAgZW1pdEZvcm1Db250cm9sc0Fzc29jaWF0ZWQoY29ubmVjdGlvbiwgZGVsYXllZFNpZ25hbC5z
dHIuZGF0YSgpKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTMzLDggKzU1Miw2IEBAIHN0YXRp
YyB2b2lkIGJ1c0FjcXVpcmVkQ2FsbGJhY2soR0RCdXNDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBj
b25zdCBjaGFyKiBuYW1lLCBnCiAgICAgICAgIGNhc2UgRm9ybVN1Ym1pc3Npb25XaWxsU2VuZERP
TUV2ZW50U2lnbmFsOgogICAgICAgICAgICAgZW1pdEZvcm1TdWJtaXNzaW9uRXZlbnQoY29ubmVj
dGlvbiwgIkZvcm1TdWJtaXNzaW9uV2lsbFNlbmRET01FdmVudCIsIGRlbGF5ZWRTaWduYWwuc3Ry
LmRhdGEoKSwgZGVsYXllZFNpZ25hbC5zdHIyLmRhdGEoKSwgZGVsYXllZFNpZ25hbC5zdHIzLmRh
dGEoKSwgZGVsYXllZFNpZ25hbC5iLCBkZWxheWVkU2lnbmFsLmIyKTsKICAgICAgICAgICAgIGJy
ZWFrOwotI2VuZGlmCi0gICAgICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOwogICAgICAg
ICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRHTGliL1dlYlByb2Nlc3NUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0R0xpYi9XZWJQcm9jZXNzVGVzdC5jcHAKaW5kZXggMjMwZmU4YjRjNTYwNzU0NGI1ZThhMTAz
MTk3YjMyZmRmMjM2MWUwZi4uMzAyZjU3NjRkOGQ4OGFhMGI1YzdjNTkyNDQ0NTNkMmU0Njc1MTYw
YiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1dlYlBy
b2Nlc3NUZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIv
V2ViUHJvY2Vzc1Rlc3QuY3BwCkBAIC0zNiw2ICszNiwxOSBAQCBzdGF0aWMgVGVzdHNNYXAmIHRl
c3RzTWFwKCkKICAgICByZXR1cm4gc190ZXN0c01hcDsKIH0KIAorc3RhdGljIHZvaWQgY2hlY2tM
ZWFrcygpCit7CisgICAgaWYgKHNfd2F0Y2hlZE9iamVjdHMuaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBnX3ByaW50KCJMZWFrZWQgb2JqZWN0cyBpbiBXZWJQcm9jZXNzOiIpOwor
ICAgIGZvciAoY29uc3QgYXV0byBvYmplY3QgOiBzX3dhdGNoZWRPYmplY3RzKQorICAgICAgICBn
X3ByaW50KCIgJXMoJXApIiwgZ190eXBlX25hbWVfZnJvbV9pbnN0YW5jZShyZWludGVycHJldF9j
YXN0PEdUeXBlSW5zdGFuY2UqPihvYmplY3QpKSwgb2JqZWN0KTsKKyAgICBnX3ByaW50KCJcbiIp
OworCisgICAgZ19hc3NlcnQoc193YXRjaGVkT2JqZWN0cy5pc0VtcHR5KCkpOworfQorCiB2b2lk
IFdlYlByb2Nlc3NUZXN0OjphZGQoY29uc3QgU3RyaW5nJiB0ZXN0TmFtZSwgc3RkOjpmdW5jdGlv
bjxzdGQ6OnVuaXF1ZV9wdHI8V2ViUHJvY2Vzc1Rlc3Q+ICgpPiBjbG9zdXJlKQogewogICAgIHRl
c3RzTWFwKCkuYWRkKHRlc3ROYW1lLCBXVEZNb3ZlKGNsb3N1cmUpKTsKQEAgLTY4LDE2ICs4MSw3
IEBAIHN0YXRpYyBnYm9vbGVhbiBydW5UZXN0KFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2UsIGNvbnN0
IGNoYXIqIHRlc3RQYXRoKQogc3RhdGljIHZvaWQgd2ViUHJvY2Vzc1Rlc3RSdW5uZXJGaW5hbGl6
ZShXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlKQogewogICAgIGdfb2JqZWN0X3VucmVmKHdlYlBhZ2Up
OwotCi0gICAgaWYgKHNfd2F0Y2hlZE9iamVjdHMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBnX3ByaW50KCJMZWFrZWQgb2JqZWN0cyBpbiBXZWJQcm9jZXNzOiIpOwotICAgIGZv
ciAoY29uc3QgYXV0byBvYmplY3QgOiBzX3dhdGNoZWRPYmplY3RzKQotICAgICAgICBnX3ByaW50
KCIgJXMoJXApIiwgZ190eXBlX25hbWVfZnJvbV9pbnN0YW5jZShyZWludGVycHJldF9jYXN0PEdU
eXBlSW5zdGFuY2UqPihvYmplY3QpKSwgb2JqZWN0KTsKLSAgICBnX3ByaW50KCJcbiIpOwotCi0g
ICAgZ19hc3NlcnQoc193YXRjaGVkT2JqZWN0cy5pc0VtcHR5KCkpOworICAgIGNoZWNrTGVha3Mo
KTsKIH0KIAogc3RhdGljIHZvaWQgd2luZG93T2JqZWN0Q2xlYXJlZENhbGxiYWNrKFdlYktpdFNj
cmlwdFdvcmxkKiB3b3JsZCwgV2ViS2l0V2ViUGFnZSogd2ViUGFnZSwgV2ViS2l0RnJhbWUqIGZy
YW1lLCBXZWJLaXRXZWJFeHRlbnNpb24qIGV4dGVuc2lvbikKQEAgLTEwMCwzICsxMDQsOCBAQCBl
eHRlcm4gIkMiIHZvaWQgd2Via2l0X3dlYl9leHRlbnNpb25faW5pdGlhbGl6ZShXZWJLaXRXZWJF
eHRlbnNpb24qIGV4dGVuc2lvbikKICAgICB3ZWJraXRXZWJFeHRlbnNpb25TZXRHYXJiYWdlQ29s
bGVjdE9uUGFnZURlc3Ryb3koZXh0ZW5zaW9uKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KHdlYmtp
dF9zY3JpcHRfd29ybGRfZ2V0X2RlZmF1bHQoKSwgIndpbmRvdy1vYmplY3QtY2xlYXJlZCIsIEdf
Q0FMTEJBQ0sod2luZG93T2JqZWN0Q2xlYXJlZENhbGxiYWNrKSwgZXh0ZW5zaW9uKTsKIH0KKwor
c3RhdGljIHZvaWQgX19hdHRyaWJ1dGVfXygoZGVzdHJ1Y3RvcikpIGNoZWNrTGVha3NBdEV4aXQo
KQoreworICAgIGNoZWNrTGVha3MoKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R3RrL0F1dG9jbGVhbnVwc1Rlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRHdGsvQXV0b2NsZWFudXBzVGVzdC5jcHAKaW5kZXggYTIwY2JmZDcz
MzFiZDQ5Yjc5NGFmNTg5OGNiNDIwYjU2NTJkYjdkOS4uMGVkZTcyZmFjNDZkMzVhODIwZDRiMTVh
MmMyM2E0ZDQ4OTkwOTliZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHdGsvQXV0b2NsZWFudXBzVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRHdGsvQXV0b2NsZWFudXBzVGVzdC5jcHAKQEAgLTQyLDEzICs0MiwxNyBAQCBw
cml2YXRlOgogICAgICAgICBhc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdf
T0JKRUNUKGRvY3VtZW50KSk7CiAKICAgICAgICAgLy8gVHJhbnNmZXIgZnVsbAorICAgICAgICBH
X0dOVUNfQkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKICAgICAgICAgZ19hdXRvcHRyKFdlYktp
dERPTURPTVdpbmRvdykgd2luZG93ID0gd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZGVmYXVsdF92
aWV3KGRvY3VtZW50KTsKICAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19ET01fV0lORE9X
KHdpbmRvdykpOworICAgICAgICBHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CiAgICAg
ICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1Qod2luZG93
KSk7CiAKICAgICAgICAgLy8gVHJhbnNmZXIgZnVsbAorICAgICAgICBHX0dOVUNfQkVHSU5fSUdO
T1JFX0RFUFJFQ0FUSU9OUzsKICAgICAgICAgZ19hdXRvcHRyKFdlYktpdERPTVJhbmdlKSByYW5n
ZSA9IHdlYmtpdF9kb21fZG9jdW1lbnRfY3JlYXRlX3JhbmdlKGRvY3VtZW50KTsKICAgICAgICAg
Z19hc3NlcnQoV0VCS0lUX0RPTV9JU19SQU5HRShyYW5nZSkpOworICAgICAgICBHX0dOVUNfRU5E
X0lHTk9SRV9ERVBSRUNBVElPTlM7CiAgICAgICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5U
ZXN0RmluaXNoZXMoR19PQkpFQ1QocmFuZ2UpKTsKIAogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0RPTUNsaWVudFJl
Y3RUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0RPTUNsaWVu
dFJlY3RUZXN0LmNwcAppbmRleCBjYTU5MmMzYWJjZjNkNTJjNDQ4MTg3Y2U5ODE1M2UzOTE4MjEz
Y2JhLi4yMGNkZmU1ZWY5MWM0MWMyMTUwNGYxMWM4NWM4NDE2OGYxMWUxMTE1IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9ET01DbGllbnRSZWN0VGVzdC5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9NQ2xpZW50UmVj
dFRlc3QuY3BwCkBAIC0yMyw2ICsyMyw4IEBACiAjaW5jbHVkZSA8Z2lvL2dpby5oPgogI2luY2x1
ZGUgPHdlYmtpdDIvd2Via2l0LXdlYi1leHRlbnNpb24uaD4KIAorR19HTlVDX0JFR0lOX0lHTk9S
RV9ERVBSRUNBVElPTlM7CisKIGNsYXNzIFdlYktpdERPTUNsaWVudFJlY3RUZXN0IDogcHVibGlj
IFdlYlByb2Nlc3NUZXN0IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFdl
YlByb2Nlc3NUZXN0PiBjcmVhdGUoKSB7IHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0RE9N
Q2xpZW50UmVjdFRlc3Q+KG5ldyBXZWJLaXRET01DbGllbnRSZWN0VGVzdCgpKTsgfQpAQCAtMTAz
LDMgKzEwNSw1IEBAIHN0YXRpYyB2b2lkIF9fYXR0cmlidXRlX18oKGNvbnN0cnVjdG9yKSkgcmVn
aXN0ZXJUZXN0cygpCiAgICAgUkVHSVNURVJfVEVTVChXZWJLaXRET01DbGllbnRSZWN0VGVzdCwg
IldlYktpdERPTUNsaWVudFJlY3QvZGl2LWJvdW5kaW5nLWNsaWVudC1yZWN0LXBvc2l0aW9uIik7
CiAgICAgUkVHSVNURVJfVEVTVChXZWJLaXRET01DbGllbnRSZWN0VGVzdCwgIldlYktpdERPTUNs
aWVudFJlY3QvZGl2LWNsaWVudC1yZWN0cy1wb3NpdGlvbi1hbmQtbGVuZ3RoIik7CiB9CisKK0df
R05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R3RrL0RPTU5vZGVGaWx0ZXJUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0RPTU5vZGVGaWx0ZXJUZXN0LmNwcAppbmRleCAwZjE4
ZDFmMzE4NGVjNGM0YTc2MDk2ZmMyYTEyYmE2ZGYzNDVhYzI2Li44OTcwODM2ZjUwYjY5YzI5ZWFk
MWJlOTBhZDYzNWI1MmQ0MmVkMDZiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdEd0ay9ET01Ob2RlRmlsdGVyVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9NTm9kZUZpbHRlclRlc3QuY3BwCkBAIC0yNCw2ICsyNCw4
IEBACiAjaW5jbHVkZSA8d2Via2l0Mi93ZWJraXQtd2ViLWV4dGVuc2lvbi5oPgogI2luY2x1ZGUg
PHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KIAorR19HTlVDX0JFR0lOX0lHTk9SRV9ERVBSRUNBVElP
TlM7CisKIHR5cGVkZWYgc3RydWN0IF9XZWJLaXROb2RlRmlsdGVyIHsKICAgICBHT2JqZWN0IHBh
cmVudDsKIH0gV2ViS2l0Tm9kZUZpbHRlcjsKQEAgLTIwMSw0ICsyMDMsNCBAQCBzdGF0aWMgdm9p
ZCBfX2F0dHJpYnV0ZV9fKChjb25zdHJ1Y3RvcikpIHJlZ2lzdGVyVGVzdHMoKQogICAgIFJFR0lT
VEVSX1RFU1QoV2ViS2l0RE9NTm9kZUZpbHRlclRlc3QsICJXZWJLaXRET01Ob2RlRmlsdGVyL25v
ZGUtaXRlcmF0b3IiKTsKIH0KIAotCitHX0dOVUNfRU5EX0lHTk9SRV9ERVBSRUNBVElPTlM7CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9ET01Ob2RlVGVz
dC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9ET01Ob2RlVGVzdC5j
cHAKaW5kZXggOWQ1N2I0MmQyYzEyODY0NDJlZGNjYjRkYzg2YTQ0MmNmY2JiMzU5MC4uNzlkNzZh
ZTdkMjM5ZjlhNjIzZWE2NzlhNjVjNTg5NDQwYmMwZDYyMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9NTm9kZVRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0RPTU5vZGVUZXN0LmNwcApAQCAtMjQsNiArMjQs
OCBAQAogI2luY2x1ZGUgPHdlYmtpdDIvd2Via2l0LXdlYi1leHRlbnNpb24uaD4KICNpbmNsdWRl
IDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKK0dfR05VQ19CRUdJTl9JR05PUkVfREVQUkVDQVRJ
T05TOworCiBjbGFzcyBXZWJLaXRET01Ob2RlVGVzdCA6IHB1YmxpYyBXZWJQcm9jZXNzVGVzdCB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxXZWJQcm9jZXNzVGVzdD4gY3Jl
YXRlKCkgeyByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFdlYktpdERPTU5vZGVUZXN0PihuZXcgV2Vi
S2l0RE9NTm9kZVRlc3QoKSk7IH0KQEAgLTI5Nyw0ICsyOTksNCBAQCBzdGF0aWMgdm9pZCBfX2F0
dHJpYnV0ZV9fKChjb25zdHJ1Y3RvcikpIHJlZ2lzdGVyVGVzdHMoKQogICAgIFJFR0lTVEVSX1RF
U1QoV2ViS2l0RE9NTm9kZVRlc3QsICJXZWJLaXRET01Ob2RlL2RvbS1jYWNoZSIpOwogfQogCi0K
K0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9OUzsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0RPTVhQYXRoTlNSZXNvbHZlclRlc3QuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9NWFBhdGhOU1Jlc29sdmVyVGVzdC5j
cHAKaW5kZXggMTEwNjc3ZTQxNDIwNzg4ZjU0OTNlZmIwYjUzM2FjYmE1ZjZiYTIzMS4uZWJiOGYz
OTI0YTIxODc5YzVhYmRkMDRmNGUzNzlhNGQzYWI3ZjFhYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9NWFBhdGhOU1Jlc29sdmVyVGVzdC5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRE9NWFBhdGhOU1Jlc29sdmVy
VGVzdC5jcHAKQEAgLTI0LDYgKzI0LDggQEAKICNpbmNsdWRlIDx3ZWJraXQyL3dlYmtpdC13ZWIt
ZXh0ZW5zaW9uLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCitHX0dOVUNf
QkVHSU5fSUdOT1JFX0RFUFJFQ0FUSU9OUzsKKwogdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdFhQYXRo
TlNSZXNvbHZlciB7CiAgICAgR09iamVjdCBwYXJlbnQ7CiB9IFdlYktpdFhQYXRoTlNSZXNvbHZl
cjsKQEAgLTEyMiwzICsxMjQsNSBAQCBzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fKChjb25zdHJ1
Y3RvcikpIHJlZ2lzdGVyVGVzdHMoKQogICAgIFJFR0lTVEVSX1RFU1QoV2ViS2l0RE9NWFBhdGhO
U1Jlc29sdmVyVGVzdCwgIldlYktpdERPTVhQYXRoTlNSZXNvbHZlci9uYXRpdmUiKTsKICAgICBS
RUdJU1RFUl9URVNUKFdlYktpdERPTVhQYXRoTlNSZXNvbHZlclRlc3QsICJXZWJLaXRET01YUGF0
aE5TUmVzb2x2ZXIvY3VzdG9tIik7CiB9CisKK0dfR05VQ19FTkRfSUdOT1JFX0RFUFJFQ0FUSU9O
UzsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0VkaXRv
clRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRWRpdG9yVGVz
dC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMyMmQ4YWIzODkyMmJlODRkZTQz
NTY3YTQ4NjU1ZjE5NWVhZThiZGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRWRpdG9yVGVz
dC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMzAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNSBSZWQgSGF0IEluYy4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiV2Vi
UHJvY2Vzc1Rlc3QuaCIKLQotI2RlZmluZSBXRUJLSVRfRE9NX1VTRV9VTlNUQUJMRV9BUEkKLSNp
bmNsdWRlIDx3ZWJraXRkb20vV2ViS2l0RE9NRE9NU2VsZWN0aW9uLmg+Ci0jaW5jbHVkZSA8d2Vi
a2l0ZG9tL1dlYktpdERPTURPTVdpbmRvd1Vuc3RhYmxlLmg+Ci0KLWNsYXNzIFdlYktpdFdlYkVk
aXRvclRlc3QgOiBwdWJsaWMgV2ViUHJvY2Vzc1Rlc3QgewotcHVibGljOgotICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8V2ViUHJvY2Vzc1Rlc3Q+IGNyZWF0ZSgpIHsgcmV0dXJuIHN0ZDo6dW5p
cXVlX3B0cjxXZWJQcm9jZXNzVGVzdD4obmV3IFdlYktpdFdlYkVkaXRvclRlc3QoKSk7IH0KLQot
cHJpdmF0ZToKLSAgICBzdGF0aWMgdm9pZCBzZWxlY3Rpb25DaGFuZ2VkQ2FsbGJhY2soYm9vbCog
c2VsZWN0aW9uQ2hhbmdlZCkKLSAgICB7Ci0gICAgICAgICpzZWxlY3Rpb25DaGFuZ2VkID0gdHJ1
ZTsKLSAgICB9Ci0KLSAgICB2b2lkIHRlc3RTZWxlY3Rpb25TZWxlY3RBbGwoV2ViS2l0V2ViUGFn
ZSogcGFnZSkKLSAgICB7Ci0gICAgICAgIFdlYktpdERPTURvY3VtZW50KiBkb2N1bWVudCA9IHdl
YmtpdF93ZWJfcGFnZV9nZXRfZG9tX2RvY3VtZW50KHBhZ2UpOwotICAgICAgICBnX2Fzc2VydChX
RUJLSVRfRE9NX0lTX0RPQ1VNRU5UKGRvY3VtZW50KSk7Ci0KLSAgICAgICAgd2Via2l0X2RvbV9k
b2N1bWVudF9leGVjX2NvbW1hbmQoZG9jdW1lbnQsICJTZWxlY3RBbGwiLCBmYWxzZSwgIiIpOwot
ICAgIH0KLQotICAgIHZvaWQgdGVzdFNlbGVjdGlvbkNvbGxhcHNlKFdlYktpdFdlYlBhZ2UqIHBh
Z2UpCi0gICAgewotICAgICAgICBXZWJLaXRET01Eb2N1bWVudCogZG9jdW1lbnQgPSB3ZWJraXRf
d2ViX3BhZ2VfZ2V0X2RvbV9kb2N1bWVudChwYWdlKTsKLSAgICAgICAgZ19hc3NlcnQoV0VCS0lU
X0RPTV9JU19ET0NVTUVOVChkb2N1bWVudCkpOwotICAgICAgICBHUmVmUHRyPFdlYktpdERPTURP
TVdpbmRvdz4gZG9tV2luZG93ID0gYWRvcHRHUmVmKHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2Rl
ZmF1bHRfdmlldyhkb2N1bWVudCkpOwotICAgICAgICBnX2Fzc2VydChXRUJLSVRfRE9NX0lTX0RP
TV9XSU5ET1coZG9tV2luZG93LmdldCgpKSk7Ci0gICAgICAgIEdSZWZQdHI8V2ViS2l0RE9NRE9N
U2VsZWN0aW9uPiBkb21TZWxlY3Rpb24gPSBhZG9wdEdSZWYod2Via2l0X2RvbV9kb21fd2luZG93
X2dldF9zZWxlY3Rpb24oZG9tV2luZG93LmdldCgpKSk7Ci0gICAgICAgIGdfYXNzZXJ0KFdFQktJ
VF9ET01fSVNfRE9NX1NFTEVDVElPTihkb21TZWxlY3Rpb24uZ2V0KCkpKTsKLQotICAgICAgICB3
ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fY29sbGFwc2VfdG9fc3RhcnQoZG9tU2VsZWN0aW9uLmdl
dCgpLCBudWxscHRyKTsKLSAgICB9Ci0KLSAgICB2b2lkIHRlc3RTZWxlY3Rpb25Nb2RpZnlNb3Zl
KFdlYktpdFdlYlBhZ2UqIHBhZ2UpCi0gICAgewotICAgICAgICBXZWJLaXRET01Eb2N1bWVudCog
ZG9jdW1lbnQgPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2RvbV9kb2N1bWVudChwYWdlKTsKLSAgICAg
ICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChkb2N1bWVudCkpOwotICAgICAgICBH
UmVmUHRyPFdlYktpdERPTURPTVdpbmRvdz4gZG9tV2luZG93ID0gYWRvcHRHUmVmKHdlYmtpdF9k
b21fZG9jdW1lbnRfZ2V0X2RlZmF1bHRfdmlldyhkb2N1bWVudCkpOwotICAgICAgICBnX2Fzc2Vy
dChXRUJLSVRfRE9NX0lTX0RPTV9XSU5ET1coZG9tV2luZG93LmdldCgpKSk7Ci0gICAgICAgIEdS
ZWZQdHI8V2ViS2l0RE9NRE9NU2VsZWN0aW9uPiBkb21TZWxlY3Rpb24gPSBhZG9wdEdSZWYod2Vi
a2l0X2RvbV9kb21fd2luZG93X2dldF9zZWxlY3Rpb24oZG9tV2luZG93LmdldCgpKSk7Ci0gICAg
ICAgIGdfYXNzZXJ0KFdFQktJVF9ET01fSVNfRE9NX1NFTEVDVElPTihkb21TZWxlY3Rpb24uZ2V0
KCkpKTsKLQotICAgICAgICB3ZWJraXRfZG9tX2RvbV9zZWxlY3Rpb25fbW9kaWZ5KGRvbVNlbGVj
dGlvbi5nZXQoKSwgIm1vdmUiLCAiZm9yd2FyZCIsICJjaGFyYWN0ZXIiKTsKLSAgICB9Ci0KLSAg
ICB2b2lkIHRlc3RTZWxlY3Rpb25Nb2RpZnlFeHRlbmQoV2ViS2l0V2ViUGFnZSogcGFnZSkKLSAg
ICB7Ci0gICAgICAgIFdlYktpdERPTURvY3VtZW50KiBkb2N1bWVudCA9IHdlYmtpdF93ZWJfcGFn
ZV9nZXRfZG9tX2RvY3VtZW50KHBhZ2UpOwotICAgICAgICBnX2Fzc2VydChXRUJLSVRfRE9NX0lT
X0RPQ1VNRU5UKGRvY3VtZW50KSk7Ci0gICAgICAgIEdSZWZQdHI8V2ViS2l0RE9NRE9NV2luZG93
PiBkb21XaW5kb3cgPSBhZG9wdEdSZWYod2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZGVmYXVsdF92
aWV3KGRvY3VtZW50KSk7Ci0gICAgICAgIGdfYXNzZXJ0KFdFQktJVF9ET01fSVNfRE9NX1dJTkRP
Vyhkb21XaW5kb3cuZ2V0KCkpKTsKLSAgICAgICAgR1JlZlB0cjxXZWJLaXRET01ET01TZWxlY3Rp
b24+IGRvbVNlbGVjdGlvbiA9IGFkb3B0R1JlZih3ZWJraXRfZG9tX2RvbV93aW5kb3dfZ2V0X3Nl
bGVjdGlvbihkb21XaW5kb3cuZ2V0KCkpKTsKLSAgICAgICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9J
U19ET01fU0VMRUNUSU9OKGRvbVNlbGVjdGlvbi5nZXQoKSkpOwotCi0gICAgICAgIHdlYmtpdF9k
b21fZG9tX3NlbGVjdGlvbl9tb2RpZnkoZG9tU2VsZWN0aW9uLmdldCgpLCAiZXh0ZW5kIiwgImZv
cndhcmQiLCAid29yZCIpOwotICAgIH0KLQotICAgIHZvaWQgdGVzdFNlbGVjdGlvblVuc2VsZWN0
KFdlYktpdFdlYlBhZ2UqIHBhZ2UpCi0gICAgewotICAgICAgICBXZWJLaXRET01Eb2N1bWVudCog
ZG9jdW1lbnQgPSB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2RvbV9kb2N1bWVudChwYWdlKTsKLSAgICAg
ICAgZ19hc3NlcnQoV0VCS0lUX0RPTV9JU19ET0NVTUVOVChkb2N1bWVudCkpOwotCi0gICAgICAg
IHdlYmtpdF9kb21fZG9jdW1lbnRfZXhlY19jb21tYW5kKGRvY3VtZW50LCAiVW5zZWxlY3QiLCBm
YWxzZSwgIiIpOwotICAgIH0KLQotICAgIGJvb2wgcnVuVGVzdChjb25zdCBjaGFyKiB0ZXN0TmFt
ZSwgV2ViS2l0V2ViUGFnZSogcGFnZSkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIGlmICghc3Ry
Y21wKHRlc3ROYW1lLCAic2VsZWN0aW9uLWNoYW5nZWQiKSkgewotICAgICAgICAgICAgYm9vbCBz
ZWxlY3Rpb25DaGFuZ2VkID0gZmFsc2U7Ci0KLSAgICAgICAgICAgIFdlYktpdFdlYkVkaXRvciog
ZWRpdG9yID0gd2Via2l0X3dlYl9wYWdlX2dldF9lZGl0b3IocGFnZSk7Ci0gICAgICAgICAgICBn
X2Fzc2VydChXRUJLSVRfSVNfV0VCX0VESVRPUihlZGl0b3IpKTsKLSAgICAgICAgICAgIGFzc2Vy
dE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1QoZWRpdG9yKSk7Ci0gICAg
ICAgICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQoZWRpdG9yLCAic2VsZWN0aW9uLWNoYW5n
ZWQiLCBHX0NBTExCQUNLKHNlbGVjdGlvbkNoYW5nZWRDYWxsYmFjayksICZzZWxlY3Rpb25DaGFu
Z2VkKTsKLQotICAgICAgICAgICAgdGVzdFNlbGVjdGlvblNlbGVjdEFsbChwYWdlKTsKLSAgICAg
ICAgICAgIGdfYXNzZXJ0KHNlbGVjdGlvbkNoYW5nZWQpOwotCi0gICAgICAgICAgICBzZWxlY3Rp
b25DaGFuZ2VkID0gZmFsc2U7Ci0gICAgICAgICAgICB0ZXN0U2VsZWN0aW9uQ29sbGFwc2UocGFn
ZSk7Ci0gICAgICAgICAgICBnX2Fzc2VydChzZWxlY3Rpb25DaGFuZ2VkKTsKLQotICAgICAgICAg
ICAgc2VsZWN0aW9uQ2hhbmdlZCA9IGZhbHNlOwotICAgICAgICAgICAgdGVzdFNlbGVjdGlvbk1v
ZGlmeU1vdmUocGFnZSk7Ci0gICAgICAgICAgICBnX2Fzc2VydChzZWxlY3Rpb25DaGFuZ2VkKTsK
LQotICAgICAgICAgICAgc2VsZWN0aW9uQ2hhbmdlZCA9IGZhbHNlOwotICAgICAgICAgICAgdGVz
dFNlbGVjdGlvbk1vZGlmeUV4dGVuZChwYWdlKTsKLSAgICAgICAgICAgIGdfYXNzZXJ0KHNlbGVj
dGlvbkNoYW5nZWQpOwotCi0gICAgICAgICAgICBzZWxlY3Rpb25DaGFuZ2VkID0gZmFsc2U7Ci0g
ICAgICAgICAgICB0ZXN0U2VsZWN0aW9uVW5zZWxlY3QocGFnZSk7Ci0gICAgICAgICAgICBnX2Fz
c2VydChzZWxlY3Rpb25DaGFuZ2VkKTsKLQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
ICAgIH0KLQotICAgICAgICBnX2Fzc2VydF9ub3RfcmVhY2hlZCgpOwotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgfQotfTsKLQotc3RhdGljIHZvaWQgX19hdHRyaWJ1dGVfXygoY29uc3RydWN0
b3IpKSByZWdpc3RlclRlc3RzKCkKLXsKLSAgICBSRUdJU1RFUl9URVNUKFdlYktpdFdlYkVkaXRv
clRlc3QsICJXZWJLaXRXZWJFZGl0b3Ivc2VsZWN0aW9uLWNoYW5nZWQiKTsKLX0KZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL1Rlc3RFZGl0b3IuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdEVkaXRvci5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzNGVmZWNkMTkxYWViZDQ1N2NlNGEwZTM2YjIzNmRm
OTU0M2FlNDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdEVkaXRvci5jcHAKKysrIC9k
ZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IFJlZCBI
YXQgSW5jLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyLDEgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiV2ViVmlld1Rlc3QuaCIK
LSNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0jaW5jbHVkZSA8d2Via2l0Mi93ZWJraXQyLmg+Ci0KLXN0
YXRpYyB2b2lkIHRlc3RXZWJLaXRXZWJFZGl0b3JTZWxlY3Rpb25DaGFuZ2VkKFdlYlZpZXdUZXN0
KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQotewotICAgIHN0YXRpYyBjb25zdCBnY2hhciogdGVzdEhU
TUwgPSAiPGh0bWw+PGJvZHk+QWxsIHdvcmsgYW5kIG5vIHBsYXkgbWFrZSBKYWNrIGEgZHVsbCBi
b3kuPC9ib2R5PjwvaHRtbD4iOwotICAgIGdfYXNzZXJ0KHRlc3QtPnJ1bldlYlByb2Nlc3NUZXN0
KCJXZWJLaXRXZWJFZGl0b3IiLCAic2VsZWN0aW9uLWNoYW5nZWQiLCB0ZXN0SFRNTCkpOwotfQot
Ci12b2lkIGJlZm9yZUFsbCgpCi17Ci0gICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0V2ViRWRp
dG9yIiwgInNlbGVjdGlvbi1jaGFuZ2VkIiwgdGVzdFdlYktpdFdlYkVkaXRvclNlbGVjdGlvbkNo
YW5nZWQpOwotfQotCi12b2lkIGFmdGVyQWxsKCkKLXsKLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHNDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHNDb250cm9sbGVyLmNwcAppbmRleCBiYzU1NmVkYWZhYmNiYWMzNTg4NzE2MTQ1MGU5NmRjNzIy
MjczZGQ5Li5mMjI3YmU0YjZkMDgxODkxZDRjMjUyMWMzOGNjZmY0NWU5N2M4MWM5IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzQ29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0c0NvbnRyb2xsZXIuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5j
bHVkZSAiVGVzdHNDb250cm9sbGVyLmgiCiAKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgor
I2luY2x1ZGUgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGlu
Zy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCkBAIC03MCw2ICs3MSw3
IEBAIFRlc3RzQ29udHJvbGxlcjo6VGVzdHNDb250cm9sbGVyKCkKICAgICAvLyBUaHJlYWRTYWZl
UmVmQ291bnRlZCBzbyB0aGF0IHdlIGRvbid0IGhhdmUgdG8gaW5pdGlhbGl6ZSB0aHJlYWRpbmcg
YXQgYWxsIGhlcmUuCiAgICAgV1RGOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjpp
bml0aWFsaXplTWFpblRocmVhZCgpOworICAgIFdURjo6c2V0UHJvY2Vzc1ByaXZpbGVnZXMoYWxs
UHJpdmlsZWdlcygpKTsKICAgICBBdG9taWNTdHJpbmc6OmluaXQoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9nbGliL0NNYWtlTGlzdHMudHh0CmluZGV4IDg1MDZmMGFmMjgxNDM1YjlmM2I4NjY1
MmRlZTdmNGQ0ZGZkNzc5NWYuLjYxMjNhOWMwZDVlN2I1YmIyNTk1OTQyMGI2YzQwYzM4MzRiYzNl
YzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9DTWFrZUxpc3RzLnR4dAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvQ01ha2VMaXN0cy50eHQKQEAgLTM2LDYgKzM2
LDggQEAgc2V0KFdlYktpdEdMaWJBUElUZXN0RXh0ZW5zaW9uX0xJQlJBUklFUwogKQogCiBzZXQo
V2ViS2l0R0xpYkFQSVdlYlByb2Nlc3NUZXN0cworICAgICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdEdMaWIvRE9NRWxlbWVudFRlc3QuY3BwCisgICAgJHtUT09MU19ESVJ9
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9FZGl0b3JUZXN0LmNwcAogICAgICR7VE9P
TFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvRnJhbWVUZXN0LmNwcAogICAg
ICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvV2ViUHJvY2Vzc1Rl
c3QuY3BwCiApCkBAIC0xMjIsNiArMTI0LDcgQEAgQUREX1dLMl9URVNUKFRlc3RDb29raWVNYW5h
Z2VyICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdEMKIEFE
RF9XSzJfVEVTVChUZXN0RG93bmxvYWRzICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdEdMaWIvVGVzdERvd25sb2Fkcy5jcHApCiBBRERfV0syX1RFU1QoVGVzdFdlYktpdEZh
dmljb25EYXRhYmFzZSAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGli
L1Rlc3RXZWJLaXRGYXZpY29uRGF0YWJhc2UuY3BwKQogQUREX1dLMl9URVNUKFRlc3RXZWJLaXRG
aW5kQ29udHJvbGxlciAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGli
L1Rlc3RXZWJLaXRGaW5kQ29udHJvbGxlci5jcHApCitBRERfV0syX1RFU1QoVGVzdEVkaXRvciAk
e1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RFZGl0b3IuY3Bw
KQogQUREX1dLMl9URVNUKFRlc3RGcmFtZSAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRHTGliL1Rlc3RGcmFtZS5jcHApCiBBRERfV0syX1RFU1QoVGVzdExvYWRlckNsaWVu
dCAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RMb2FkZXJD
bGllbnQuY3BwKQogQUREX1dLMl9URVNUKFRlc3RNdWx0aXByb2Nlc3MgJHtUT09MU19ESVJ9L1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0TXVsdGlwcm9jZXNzLmNwcCkKQEAgLTEz
NywzICsxNDAsNCBAQCBBRERfV0syX1RFU1QoVGVzdFdlYktpdFdlYlZpZXcgJHtUT09MU19ESVJ9
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VwogQUREX1dLMl9URVNUKFRlc3RX
ZWJLaXRVc2VyQ29udGVudE1hbmFnZXIgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0R0xpYi9UZXN0V2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNwcCkKIEFERF9XSzJfVEVT
VChUZXN0V2Vic2l0ZURhdGEgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
R0xpYi9UZXN0V2Vic2l0ZURhdGEuY3BwKQogQUREX1dLMl9URVNUKFRlc3RDb25zb2xlTWVzc2Fn
ZSAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RDb25zb2xl
TWVzc2FnZS5jcHApCitBRERfV0syX1RFU1QoVGVzdERPTUVsZW1lbnQgJHtUT09MU19ESVJ9L1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0RE9NRWxlbWVudC5jcHApCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvUGxhdGZvcm1HVEsuY21ha2UgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL2dsaWIvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggZGY2YTI2N2M5NGYzODc5
ZGFkNTQ3OTM2ZDMxNTRhOTVjODg2MTkxMi4uNWIyOWI4NWI4OGU4OWI0ZjA3NTJmMDE1NDY0MWI0
NzY4NzNhMzRjZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1BsYXRmb3Jt
R1RLLmNtYWtlCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9QbGF0Zm9ybUdUSy5jbWFr
ZQpAQCAtMzAsNyArMzAsNiBAQCBsaXN0KEFQUEVORCBXZWJLaXRHTGliQVBJV2ViUHJvY2Vzc1Rl
c3RzCiAgICAgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0RPTU5v
ZGVUZXN0LmNwcAogICAgICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0
ay9ET01Ob2RlRmlsdGVyVGVzdC5jcHAKICAgICAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRHdGsvRE9NWFBhdGhOU1Jlc29sdmVyVGVzdC5jcHAKLSAgICAke1RPT0xTX0RJ
Un0vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvRWRpdG9yVGVzdC5jcHAKICkKIAogQURE
X1dLMl9URVNUKEluc3BlY3RvclRlc3RTZXJ2ZXIgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0R3RrL0luc3BlY3RvclRlc3RTZXJ2ZXIuY3BwKQpAQCAtNDAsNyArMzksNiBA
QCBBRERfV0syX1RFU1QoVGVzdERPTUNsaWVudFJlY3QgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R3RrL1Rlc3RETwogQUREX1dLMl9URVNUKFRlc3RET01Ob2RlICR7VE9P
TFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0RE9NTm9kZS5jcHApCiBB
RERfV0syX1RFU1QoVGVzdERPTU5vZGVGaWx0ZXIgJHtUT09MU19ESVJ9L1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0R3RrL1Rlc3RET01Ob2RlRmlsdGVyLmNwcCkKIEFERF9XSzJfVEVTVChUZXN0
RE9NWFBhdGhOU1Jlc29sdmVyICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dEd0ay9UZXN0RE9NWFBhdGhOU1Jlc29sdmVyLmNwcCkKLUFERF9XSzJfVEVTVChUZXN0RWRpdG9y
ICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0RWRpdG9yLmNw
cCkKIEFERF9XSzJfVEVTVChUZXN0SW5zcGVjdG9yICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEd0ay9UZXN0SW5zcGVjdG9yLmNwcCkKIEFERF9XSzJfVEVTVChUZXN0SW5z
cGVjdG9yU2VydmVyICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9U
ZXN0SW5zcGVjdG9yU2VydmVyLmNwcCkKIEFERF9XSzJfVEVTVChUZXN0T3B0aW9uTWVudSAke1RP
T0xTX0RJUn0vVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdE9wdGlvbk1lbnUuY3Bw
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1BsYXRmb3JtV1BFLmNtYWtl
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1BsYXRmb3JtV1BFLmNtYWtlCmluZGV4IGI1ZDVi
ZDNmMTYzOWIzMTA2NGIxNzg2NGZkMThkOGU4MmZkYzFhNDEuLmFmZjNiMzRmNWZmNzBhNzM1ZWVh
ODg2MTNjYTlmNGYxNDhkNWM4YTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xp
Yi9QbGF0Zm9ybVdQRS5jbWFrZQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvUGxhdGZv
cm1XUEUuY21ha2UKQEAgLTksNiArOSw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdEdMaWJBUElUZXN0
c19JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgJHtERVJJVkVEX1NPVVJDRVNfV1BFX0FQSV9ESVJ9
CiAgICAgJHtGT1JXQVJESU5HX0hFQURFUlNfV1BFX0RJUn0KICAgICAke0ZPUldBUkRJTkdfSEVB
REVSU19XUEVfRVhURU5TSU9OX0RJUn0KKyAgICAke0ZPUldBUkRJTkdfSEVBREVSU19XUEVfRE9N
X0RJUn0KICAgICAke1RPT0xTX0RJUn0vd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQKICkKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA5OTRlZmQ1NDc1MGYw
MmY3N2E0NjlkMGYzYTk2MDM0YTQ4ZWE0N2E5Li5lYzkwYTEwZDhiZDY2MmJhNzZkMDExOWRmNTc0
N2FiN2MxOThiNDFkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cApAQCAtNzEsNiArNzEsNyBAQAogI2luY2x1ZGUgPHd0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRv
bU51bWJlci5oPgogI2luY2x1ZGUgPHd0Zi9IZXhOdW1iZXIuaD4KICNpbmNsdWRlIDx3dGYvTWFp
blRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0
Zi9TZXRGb3JTY29wZS5oPgpAQCAtMzQ3LDYgKzM0OCw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6
OmluaXRpYWxpemUoaW50IGFyZ2MsIGNvbnN0IGNoYXIqIGFyZ3ZbXSkKIHsKICAgICBKU0M6Omlu
aXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3Ao
KTsKKyAgICBXVEY6OnNldFByb2Nlc3NQcml2aWxlZ2VzKGFsbFByaXZpbGVnZXMoKSk7CiAKICAg
ICBwbGF0Zm9ybUluaXRpYWxpemUoKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvZ3RrL2dlbmVyYXRl
LWd0a2RvYyBiL1Rvb2xzL2d0ay9nZW5lcmF0ZS1ndGtkb2MKaW5kZXggMGM2MjhjM2JiNzYyY2Nh
OTQ1NDliZmMxNWJmNTgzZmVkZjViZTAzMS4uNDVjMjNkZmIxMmYxYzg5M2EyNmM4ZDNlN2IzZjBh
NGNhMmEyYjcyNCAxMDA3NTUKLS0tIGEvVG9vbHMvZ3RrL2dlbmVyYXRlLWd0a2RvYworKysgYi9U
b29scy9ndGsvZ2VuZXJhdGUtZ3RrZG9jCkBAIC0yMDQsNyArMjA0LDcgQEAgaWYgX19uYW1lX18g
PT0gIl9fbWFpbl9fIjoKICAgICBpZiBzYXdfd2FybmluZ3M6CiAgICAgICAgIHN5cy5leGl0KHNh
d193YXJuaW5ncykKIAotICAgIHdlYmtpdGRvbV9nZW5lcmF0b3IgPSBnZXRfZ2VuZXJhdG9yX2Zv
cl9jb25maWcoY29tbW9uLmJ1aWxkX3BhdGgoJ2d0a2RvYy13ZWJraXRkb20uY2ZnJyksIGFyZ3Vt
ZW50cy52aXJ0dWFsX3Jvb3QpCisgICAgd2Via2l0ZG9tX2dlbmVyYXRvciA9IGdldF9nZW5lcmF0
b3JfZm9yX2NvbmZpZyhjb21tb24uYnVpbGRfcGF0aCgnZ3RrZG9jLXdlYmtpdGRvbS5jZmcnKSwg
YXJndW1lbnRzLnZpcnR1YWxfcm9vdCwgW2pzY19nZW5lcmF0b3IubW9kdWxlX25hbWVdKQogICAg
IGlmIG5vdCB3ZWJraXRkb21fZ2VuZXJhdG9yOgogICAgICAgICBwcmludCgiZ3RrZG9jLXdlYmtp
dGRvbS5jZmcgZG9lcyBub3QgZXhpc3QhIFNraXBwaW5nIHRoYXQgZG9jdW1lbnRhdGlvbiIpCiAg
ICAgICAgIHN5cy5leGl0KDEpCkBAIC0yMTIsNyArMjEyLDcgQEAgaWYgX19uYW1lX18gPT0gIl9f
bWFpbl9fIjoKICAgICBpZiBzYXdfd2FybmluZ3M6CiAgICAgICAgIHN5cy5leGl0KHNhd193YXJu
aW5ncykKIAotICAgIHdlYmtpdDJfZ2VuZXJhdG9yID0gZ2V0X2dlbmVyYXRvcl9mb3JfY29uZmln
KGNvbW1vbi5idWlsZF9wYXRoKCdndGtkb2Mtd2Via2l0Mmd0ay5jZmcnKSwgYXJndW1lbnRzLnZp
cnR1YWxfcm9vdCwgW3dlYmtpdGRvbV9nZW5lcmF0b3IubW9kdWxlX25hbWVdKQorICAgIHdlYmtp
dDJfZ2VuZXJhdG9yID0gZ2V0X2dlbmVyYXRvcl9mb3JfY29uZmlnKGNvbW1vbi5idWlsZF9wYXRo
KCdndGtkb2Mtd2Via2l0Mmd0ay5jZmcnKSwgYXJndW1lbnRzLnZpcnR1YWxfcm9vdCwgW3dlYmtp
dGRvbV9nZW5lcmF0b3IubW9kdWxlX25hbWUsIGpzY19nZW5lcmF0b3IubW9kdWxlX25hbWVdKQog
ICAgIGlmIG5vdCB3ZWJraXQyX2dlbmVyYXRvcjoKICAgICAgICAgcHJpbnQoImd0a2RvYy13ZWJr
aXQyZ3RrLmNmZyBkb2VzIG5vdCBleGlzdCEgU2tpcHBpbmcgdGhhdCBkb2N1bWVudGF0aW9uIikK
ICAgICAgICAgc3lzLmV4aXQoMSkKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVs
ZXMgYi9Ub29scy93cGUvamhidWlsZC5tb2R1bGVzCmluZGV4IGE0ZjBkMjA1ZDM5ODVjZDBiNDIz
ZDg1NWU1ZDhiODgwYmEyMDM1MjMuLjBmOGJmZWEzN2RjNDEyODBhNjgwNWVjOTY1YjVlNGIxMjZm
NzBjMzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMKKysrIGIvVG9vbHMv
d3BlL2poYnVpbGQubW9kdWxlcwpAQCAtNyw2ICs3LDcgQEAKIAogICA8bWV0YW1vZHVsZSBpZD0i
d2Via2l0d3BlLXRlc3RpbmctZGVwZW5kZW5jaWVzIj4KICAgICA8ZGVwZW5kZW5jaWVzPgorICAg
ICAgPGRlcCBwYWNrYWdlPSJicm90bGkiLz4KICAgICAgIDxkZXAgcGFja2FnZT0iZ2xpYiIvPgog
ICAgICAgPGRlcCBwYWNrYWdlPSJsaWJzb3VwIi8+CiAgICAgICA8ZGVwIHBhY2thZ2U9ImNhaXJv
Ii8+CkBAIC0xNyw2ICsxOCw3IEBACiAgICAgICA8ZGVwIHBhY2thZ2U9ImhhcmZidXp6Ii8+CiAg
ICAgICA8ZGVwIHBhY2thZ2U9InhrYmNvbW1vbiIvPgogICAgICAgPGRlcCBwYWNrYWdlPSJ3ZWJr
aXQtZ3N0cmVhbWVyLXRlc3RpbmctZGVwZW5kZW5jaWVzIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9
IndvZmYyIi8+CiAgICAgICA8ZGVwIHBhY2thZ2U9IndwZSIvPgogICAgICAgPGRlcCBwYWNrYWdl
PSJ3cGUtbWVzYSIvPgogICAgICAgPGRlcCBwYWNrYWdlPSJsaWJncGctZXJyb3IiLz4KQEAgLTQ2
LDYgKzQ4LDE3IEBACiAgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9ImdudXBnLm9y
ZyIKICAgICAgIGhyZWY9Imh0dHBzOi8vd3d3LmdudXBnLm9yZy9mdHAvZ2NyeXB0LyIvPgogCisg
IDxjbWFrZSBpZD0iYnJvdGxpIj4KKyAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5jb20iIG1vZHVs
ZT0iZ29vZ2xlL2Jyb3RsaS5naXQiIGNoZWNrb3V0ZGlyPSJicm90bGkiIHRhZz0idjEuMC4xIi8+
CisgIDwvY21ha2U+CisKKyAgPGNtYWtlIGlkPSJ3b2ZmMiI+CisgICAgPGJyYW5jaCByZXBvPSJn
aXRodWIuY29tIiBtb2R1bGU9Imdvb2dsZS93b2ZmMi5naXQiIGNoZWNrb3V0ZGlyPSJ3b2ZmMiIg
dGFnPSJ2MS4wLjIiLz4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJi
cm90bGkiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgPC9jbWFrZT4KKwogICA8YXV0b3Rvb2xz
IGlkPSJsaWJmZmkiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSI+CiAgICAgPGJyYW5jaCBtb2R1bGU9
ImxpYmZmaS9saWJmZmktMy4wLjEwLnRhci5neiIgdmVyc2lvbj0iMy4wLjEwIgogICAgICAgICAg
ICAgIHJlcG89InNvdXJjZXdhcmUub3JnLW1pcnJvciIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzNzUwNzQ0NjRkODg4ZDNj
MDIwN2FmOTVkMGNhYWRlNTQ3NzNmYTBhLi45NzkxZmZjZmY0ODdhMzE5MWUwZDM5NDU1ZWMyY2Vj
ODIyZDU5YTMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjI1IEBACisyMDE4LTAzLTIzICBBbnRvaW5lIFF1
aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25zXSBNYWtl
IGltcG9ydGVkL21vemlsbGEvY3NzLWFuaW1hdGlvbnMvdGVzdF9hbmltYXRpb24tY3VycmVudHRp
bWUuaHRtbCBwYXNzIHJlbGlhYmx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODM4MTkKKworICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24u
CisKKyAgICAgICAgVGhlIHRlc3QgaW1wb3J0ZWQvbW96aWxsYS9jc3MtYW5pbWF0aW9ucy90ZXN0
X2FuaW1hdGlvbi1jdXJyZW50dGltZS5odG1sIG5vdyBwYXNzZXMgcmVsaWFibHkuCisKKyAgICAg
ICAgKiBUZXN0RXhwZWN0YXRpb25zOgorCisyMDE4LTAzLTIzICBBbnRvaW5lIFF1aW50ICA8Z3Jh
b3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25zXSBDb3JyZWN0bHkgaGFu
ZGxlIHRpbWluZyBmdW5jdGlvbnMgc3BlY2lmaWVkIGJ5IENTUyBBbmltYXRpb25zIGFuZCBDU1Mg
VHJhbnNpdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4MzkzNQorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4KKworICAgICAg
ICBXZSBub3cgcGFzcyAyIGFkZGl0aW9uYWwgTW96aWxsYSB0ZXN0cyBjb21wbGV0ZWx5LCBzbyB0
aGV5IG5vIGxvbmdlciBuZWVkIHRvIGJlIG1hcmtlZCBhcyBmbGFreSBmYWlsdXJlcyBvciB0aW1l
b3V0cy4KKyAgICAgICAgV2UgYWxzbyB1cGRhdGUgdGVzdHMgdGhhdCB3ZSB3cm90ZSBvdXJzZWx2
ZXMgYW5kIHdoaWNoIGluY29ycmVjdGx5IGFzc3VtZWQgdGhhdCB0aGUgZWZmZWN0J3MgdGltaW5n
IHdvdWxkIHJlZmxlY3QKKyAgICAgICAgdGhlIHRpbWluZyBmdW5jdGlvbiBzZXQgYnkgQ1NTLgor
CisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiB3ZWJhbmltYXRpb25zL2Nz
cy1hbmltYXRpb25zLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWJhbmltYXRpb25zL2Nzcy1h
bmltYXRpb25zLmh0bWw6CisgICAgICAgICogd2ViYW5pbWF0aW9ucy9jc3MtdHJhbnNpdGlvbnMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYmFuaW1hdGlvbnMvY3NzLXRyYW5zaXRpb25zLmh0
bWw6CisKKzIwMTgtMDMtMjYgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CisK
KyAgICAgICAgTWFyayBpbXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25zL3Rlc3RfYW5pbWF0
aW9uLWNhbmNlbC5odG1sIGFzIGZsYWt5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTg0MDExCisKKyAgICAgICAgVW5yZXZpZXdlZCB0ZXN0IGdhcmRl
bmluZy4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisKKzIwMTgtMDMtMjMgIERhbmll
bCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIyMjk4NjguCisKKyAgICAgICAgQ2F1c2VkIG1lZGlhIGNvbnRyb2xzIHRlc3RzIHRv
IHRpbWVvdXQuIFdpbGwgaW52ZXN0aWdhdGUKKyAgICAgICAgb2ZmbGluZS4KKworICAgICAgICBS
ZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIkNTUyBtYXNrIGltYWdlcyBzaG91bGQgYmUg
cmV0cmlldmVkIHVzaW5nIHBvdGVudGlhbGx5IENPUlMtCisgICAgICAgIGVuYWJsZWQgZmV0Y2gi
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzk5ODMK
KyAgICAgICAgaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIyOTg2OAorCisyMDE4
LTAzLTIzICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBN
YXJrIGFjY2Vzc2liaWxpdHkvcm93LXdpdGgtYXJpYS1yb2xlLWluLW5hdGl2ZS10YWJsZS5odG1s
IGFzIGZhaWxpbmcgb24gV2luZG93cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4Mzk1NQorCisgICAgICAgIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5p
bmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKworMjAxOC0w
My0yMyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgTWFy
ayBzb21lIENTUyBhbmltYXRpb25zIHRlc3RzIGFzIGZhaWxpbmcgb24gV2luZG93cy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzk1MworCisgICAg
ICAgIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4v
VGVzdEV4cGVjdGF0aW9uczoKKworMjAxOC0wMy0yMyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJs
c29uQGFwcGxlLmNvbT4KKworICAgICAgICBIVE1MRWxlbWVudCBmYWN0b3J5IGRvZXNuJ3QgbmVl
ZCB0byBjYWxsIE1lZGlhUGxheWVyOjppc0F2YWlsYWJsZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTQ2CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8zODgwMjY4Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAg
ICAgICogbWVkaWEvbWVkaWEtZGlzYWJsZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBtZWRpYS9tZWRpYS1kaXNhYmxlZC5odG1sOiBBZGRlZC4KKworMjAxOC0wMy0yMyAgUnlhbiBI
YWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KKworICAgICAgICBPbmx5IGVuYWJsZSBMYXlv
dXRUZXN0IGZhc3QvY3NzL2FwcGxlLXN5c3RlbS1jb250cm9sLWNvbG9ycy5odG1sIG9uIG1hY09T
LgorCisgICAgICAgIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcuCisKKyAgICAgICAgKiBUZXN0
RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgor
CisyMDE4LTAzLTIzICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+
CisKKyAgICAgICAgVW5yZXZpZXdlZCBXUEUgZ2FyZGVuaW5nLgorCisgICAgICAgIFJlbW92ZWQg
aW1wb3J0ZWQvbWF0aG1sLWluLWh0bWw1IGZyb20gV1BFIHRlc3QgZXhwZWN0YXRpb25zLCBhcyB0
aGUKKyAgICAgICAgcGF0aCBkb2VzIG5vdCBleGl0IGFueW1vcmUgYWZ0ZXIgcjIyOTYwMQorCisg
ICAgICAgICogcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnM6IFJlbW92ZCBpbXBvcnRlZC9t
YXRobWwtaW4taHRtbDUKKworMjAxOC0wMy0yMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CisKKyAgICAgICAgU2FmYXJpIFdlYktpdFdlYlJUQ0F1ZGlvTW9kdWxlIGNyYXNoIGR1
cmluZyA8dmlkZW8+IHRhZyB1cGRhdGUgd2hlbiBhdWRpbyB0cmFjayBwcmVzZW50IGluIE1lZGlh
U3RyZWFtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODExODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM2MzAyMzc1PgorCisgICAgICAgIFJldmll
d2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIHdlYnJ0Yy92aWRlby11cGRhdGUtb2Z0
ZW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJydGMvdmlkZW8tdXBkYXRlLW9m
dGVuLmh0bWw6IEFkZGVkLgorCisyMDE4LTAzLTIzICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0Bh
cHBsZS5jb20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25zXSBpbmZpbml0ZSByZXBlYXQgY291
bnRzIGFyZW4ndCByZWZsZWN0ZWQgZm9yIENTUyBBbmltYXRpb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5MzIKKworICAgICAgICBSZXZpZXdl
ZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgT25lIG9mIHRoZSBNb3ppbGxhIHRlc3RzIG5v
dyBwYXNzZXMgY29tcGxldGVseSBhbmQgcmVsaWFibHkuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0
YXRpb25zOgorCisyMDE4LTAzLTIyICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+
CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25zXSBDb3JyZWN0bHkgY2FuY2VsIGFuaW1hdGlvbnMg
d2hlbiBhIHBhcmVudCBnZXRzIGEgImRpc3BsYXk6IG5vbmUiIHN0eWxlIG9yIHdoZW4gYW4gZWxl
bWVudCBpcyByZW1vdmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODM5MTkKKworICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAg
ICAgICAgVGhyZWUgb2YgdGhlIGltcG9ydGVkIE1vemlsbGEgdGVzdHMgbm93IHBhc3MgcmVsaWFi
bHksIHJlbW92aW5nIHRoZW0gZnJvbSB0aGUgbGlzdCBvZiBmbGFreSBmYWlsdXJlIGFuZCB0aW1l
b3V0IHRlc3RzLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKworMjAxOC0wMy0yMyAg
QW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWIgQW5pbWF0
aW9uc10gQW5pbWF0ZWQgdHJhbnNmb3JtIHN0eWxlcyBhcmUgaWdub3JlZCB3aGVuIGNhbGxpbmcg
Z2V0Q29tcHV0ZWRTdHlsZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODM5MTgKKworICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisK
KyAgICAgICAgV2Ugb2J0YWluIGEgbnVtYmVyIG9mIHByb2dyZXNzaW9ucyBieSBjb3JyZWN0bHkg
c2VyaWFsaXppbmcgdGhlIHRyYW5zZm9ybSBwcm9wZXJ0eSBvbiBnZXRDb21wdXRlZFN0eWxlKCku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtc2llcnJhL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvYW5pbWF0aW9uLW1vZGVsL2FuaW1hdGlvbi10eXBlcy9h
Y2N1bXVsYXRpb24tcGVyLXByb3BlcnR5LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMtc2llcnJhL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlv
bnMvYW5pbWF0aW9uLW1vZGVsL2FuaW1hdGlvbi10eXBlcy9pbnRlcnBvbGF0aW9uLXBlci1wcm9w
ZXJ0eS1leHBlY3RlZC50eHQ6CisKKzIwMTgtMDMtMjMgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNl
a0BpZ2FsaWEuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQgR1RLKyBnYXJkZW5pbmcuCisKKyAg
ICAgICAgQWRkIGEgcG9ydC1zcGVjaWZpYyBiYXNlbGluZSBmb3IgZmFzdC9jc3MvYXBwbGUtc3lz
dGVtLWNvbnRyb2wuaHRtbC4KKworICAgICAgICBNYXJrIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vy
cyB0ZXN0cyBhcyBhIG1peCBvZiBmYWlsdXJlcyBhbmQgcGFzc2VzLAorICAgICAgICBzaW5jZSBh
IGxvdCBvZiB0aGUgdGVzdHMgcGFzcyBub3cgdGhhdCBzZXJ2aWNlIHdvcmtlcnMgd2VyZSBlbmFi
bGVkLCBidXQKKyAgICAgICAgdGhlIHBhc3Npbmcgb25lcyBhcmUgc3RpbGwgaW4gbWlub3JpdHkg
YW5kIHRoZXJlJ3MgYWRkaXRpb25hbGx5IGZsYWt5CisgICAgICAgIHRlc3RzLiBUaGlzIHNob3Vs
ZCBpbXByb3ZlIGFmdGVyIG5lY2Vzc2FyeSB0ZXN0aW5nIFNXIGRpcmVjdG9yaWVzIGFyZQorICAg
ICAgICBwcm9wZXJseSBzcGVjaWZpZWQuCisKKyAgICAgICAgSW4gY29udHJhc3QsIGEgYnVuY2gg
b2YgU1ctcmVsaWFudCB0ZXN0cyB1bmRlcgorICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3N0cmVhbXMgYXJlIG5vdyBwYXNzaW5nIGNvbnNpc3RlbnRseS4KKyAgICAgICAg
RmFpbHVyZSBleHBlY3RhdGlvbnMgZm9yIHRoZXNlIGFyZSByZW1vdmVkLgorCisgICAgICAgIEZh
aWx1ZSBleHBlY3RhdGlvbnMgZm9yIHRocmVlIGNvbXBvc2l0aW5nIHRlc3RzIGFyZSBhbHNvIHJl
bW92ZWQgYWZ0ZXIKKyAgICAgICAgcjIyOTgwNCBmaXhlZCB0aGVtLgorCisgICAgICAgICogcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL2Zhc3Qv
Y3NzL2FwcGxlLXN5c3RlbS1jb250cm9sLWNvbG9ycy1leHBlY3RlZC50eHQ6IEFkZGVkLgorCisy
MDE4LTAzLTIyICBOYW4gV2FuZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IFdl
YiB0YWJsZSByb3cgY291bnQgaXMgaW5jb3JyZWN0IHdoZW4gcm9sZSByb3cgaXMgYWRkZWQgdG8g
PHRyPiBpbiBET00KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4MzkyMgorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIEZsZWl6YWNoLgorCisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9yb3ctd2l0aC1hcmlhLXJvbGUtaW4tbmF0aXZlLXRhYmxlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9yb3ctd2l0aC1hcmlh
LXJvbGUtaW4tbmF0aXZlLXRhYmxlLmh0bWw6IEFkZGVkLgorCisyMDE4LTAzLTIyICBEYW5pZWwg
QmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBDU1MgbWFzayBpbWFnZXMgc2hv
dWxkIGJlIHJldHJpZXZlZCB1c2luZyBwb3RlbnRpYWxseSBDT1JTLWVuYWJsZWQgZmV0Y2gKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3OTk4MworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMzU2NzgxNDk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJl
bnQgRnVsZ2hhbS4KKworICAgICAgICBBZGQgYSB0ZXN0IHRvIGVuc3VyZSB3ZSBkbyBub3QgZmV0
Y2ggYSBjcm9zcy1vcmlnaW4gQ1NTIG1hc2sgaW1hZ2UgdGhhdCBkb2VzCisgICAgICAgIG5vdCBh
bGxvdyBDT1JTIGFjY2Vzcy4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3NzLW1h
c2staW1hZ2UtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS9jc3MtbWFzay1pbWFnZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3Jlc291cmNlcy9ibGFjay1zcXVhcmUucG5nOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9mYWlsLW1hc2sucG5nOiBBZGRlZC4KKworMjAxOC0w
My0yMiAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtTaW1wbGUg
bGluZSBsYXlvdXRdIFRleHQgd2l0aCBsZXR0ZXIgc3BhY2luZyBpcyBub3QgcG9zaXRpb25lZCBw
cm9wZXJseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4MzA3OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzg3NjI1Njk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgKiBmYXN0L3RleHQvc2ltcGxlLWxp
bmUtbGF5b3V0LWR5bmFtaWMtbGV0dGVyLXdvcmQtc3BhY2luZy1leHBlY3RlZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L3RleHQvc2ltcGxlLWxpbmUtbGF5b3V0LWR5bmFtaWMtbGV0dGVy
LXdvcmQtc3BhY2luZy5odG1sOiBBZGRlZC4KKworMjAxOC0wMy0yMiAgQWRyaWFuIFBlcmV6IGRl
IENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXUEVdIEVuYWJsZSBXT0ZG
MiBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNzgxNTgKKworICAgICAgICBSZXZpZXdlZCBieSBGcsOpZMOpcmljIFdhbmcuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9uczogVW5za2lwIHRoZSBmYXN0L3RleHQv
d29mZjIuaHRtbCBhbmQgZmFzdC90ZXh0L3dvZmYyLXRvdGFsc2ZudHNpemUuaHRtbAorCisyMDE4
LTAzLTIxICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dl
YiBBbmltYXRpb25zXSBNYWtlIGltcG9ydGVkL21vemlsbGEvY3NzLWFuaW1hdGlvbnMvdGVzdF9l
dmVudC1kaXNwYXRjaC5odG1sIHBhc3MgcmVsaWFibHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4Mzg0NQorCisgICAgICAgIFJldmlld2VkIGJ5IERl
YW4gSmFja3Nvbi4KKworICAgICAgICBBIGNvdXBsZSBvZiBjcmFzaGluZyB0ZXN0cyBubyBsb25n
ZXIgY3Jhc2ggYW5kIGEgY291cGxlIGFyZSBub3cgcmVsaWFibHkgcGFzc2luZy4KKworICAgICAg
ICAqIFRlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTgtMDMtMjIgIFJvc3MgS2lyc2xpbmcgIDxyb3Nz
LmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLiBVcGRh
dGUgV2luQ2Fpcm8gVGVzdEV4cGVjdGF0aW9ucyBhbmQgZHJvcCB0aGUgdW5uZWNlc3Nhcnkgc3Vm
Zml4LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL0NoYW5nZUxvZwppbmRleCBjZDgwOTc4NGYy
MGZkNWYyYjc2YmZiZTI4YzRkYjhkNmVhMmIyYTFhLi5mMzViMjUzNTFiNWE0YzRjOWU4Mjg0NDYz
NTE3YWE5NjU0YjZlY2UyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxh
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEwNyBAQAorMjAxOC0wMy0yMyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBw
bGUuY29tPgorCisgICAgICAgIFtXZWIgQW5pbWF0aW9uc10gTWFrZSBpbXBvcnRlZC9tb3ppbGxh
L2Nzcy1hbmltYXRpb25zL3Rlc3RfYW5pbWF0aW9uLWN1cnJlbnR0aW1lLmh0bWwgcGFzcyByZWxp
YWJseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgz
ODE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIFJlY29y
ZCBwcm9ncmVzc2lvbnMgb2YgTW96aWxsYSB0ZXN0cy4KKworICAgICAgICAqIGNzcy1hbmltYXRp
b25zL3Rlc3RfYW5pbWF0aW9uLWN1cnJlbnR0aW1lLWV4cGVjdGVkLnR4dDoKKworMjAxOC0wMy0y
MyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWIgQW5p
bWF0aW9uc10gQ29ycmVjdGx5IGhhbmRsZSB0aW1pbmcgZnVuY3Rpb25zIHNwZWNpZmllZCBieSBD
U1MgQW5pbWF0aW9ucyBhbmQgQ1NTIFRyYW5zaXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5MzUKKworICAgICAgICBSZXZpZXdlZCBieSBE
ZWFuIEphY2tzb24uCisKKyAgICAgICAgUmVjb3JkIHByb2dyZXNzaW9ucyBvZiBNb3ppbGxhIHRl
c3RzLgorCisgICAgICAgICogY3NzLWFuaW1hdGlvbnMvdGVzdF9hbmltYXRpb24tY29tcHV0ZWQt
dGltaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBjc3MtdHJhbnNpdGlvbnMvdGVzdF9hbmlt
YXRpb24tY29tcHV0ZWQtdGltaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBjc3MtdHJhbnNp
dGlvbnMvdGVzdF9rZXlmcmFtZWVmZmVjdC1nZXRrZXlmcmFtZXMtZXhwZWN0ZWQudHh0OgorCisy
MDE4LTAzLTIzICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAg
W1dlYiBBbmltYXRpb25zXSBpbmZpbml0ZSByZXBlYXQgY291bnRzIGFyZW4ndCByZWZsZWN0ZWQg
Zm9yIENTUyBBbmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODM5MzIKKworICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisK
KyAgICAgICAgUmVjb3JkIHByb2dyZXNzaW9ucyBvZiBNb3ppbGxhIHRlc3RzLgorCisgICAgICAg
ICogY3NzLWFuaW1hdGlvbnMvdGVzdF9hbmltYXRpb24tY29tcHV0ZWQtdGltaW5nLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBjc3MtYW5pbWF0aW9ucy90ZXN0X2FuaW1hdGlvbi1maW5pc2gtZXhw
ZWN0ZWQudHh0OgorCisyMDE4LTAzLTIyICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5j
b20+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25zXSBDb3JyZWN0bHkgY2FuY2VsIGFuaW1hdGlv
bnMgd2hlbiBhIHBhcmVudCBnZXRzIGEgImRpc3BsYXk6IG5vbmUiIHN0eWxlIG9yIHdoZW4gYW4g
ZWxlbWVudCBpcyByZW1vdmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODM5MTkKKworICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisK
KyAgICAgICAgQSBudW1iZXIgb2YgdGVzdHMgbm93IHBhc3MgdGhhbmtzIHRvIGNvcnJlY3RseSBj
YW5jZWxpbmcgYW5pbWF0aW9ucyB3aGVuIGEgcGFyZW50IGVsZW1lbnQgaW4gdGhlIGhpZXJhcmNo
eSBnZXRzIGEKKyAgICAgICAgImRpc3BsYXk6IG5vbmUiIHN0eWxlIG9yIGlmIGFuIGVsZW1lbnQg
d2l0aCBhbmltYXRpb25zIGlzIHJlbW92ZWQuCisKKyAgICAgICAgKiBjc3MtYW5pbWF0aW9ucy90
ZXN0X2FuaW1hdGlvbi1jYW5jZWwtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGNzcy1hbmltYXRp
b25zL3Rlc3RfZG9jdW1lbnQtZ2V0LWFuaW1hdGlvbnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGNzcy1hbmltYXRpb25zL3Rlc3RfZWZmZWN0LXRhcmdldC1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogY3NzLXRyYW5zaXRpb25zL3Rlc3RfYW5pbWF0aW9uLWNhbmNlbC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogY3NzLXRyYW5zaXRpb25zL3Rlc3RfZWZmZWN0LXRhcmdldC1leHBlY3RlZC50eHQ6
CisKKzIwMTgtMDMtMjMgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KKworICAg
ICAgICBbV2ViIEFuaW1hdGlvbnNdIEFuaW1hdGVkIHRyYW5zZm9ybSBzdHlsZXMgYXJlIGlnbm9y
ZWQgd2hlbiBjYWxsaW5nIGdldENvbXB1dGVkU3R5bGUoKQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGVhbiBKYWNrc29uLgorCisgICAgICAgIFdlIG9idGFpbiBvbmUgbW9yZSBQQVNTIGJ5IGNvcnJl
Y3RseSBzZXJpYWxpemluZyB0aGUgdHJhbnNmb3JtIHByb3BlcnR5IG9uIGdldENvbXB1dGVkU3R5
bGUoKS4KKworICAgICAgICAqIGNzcy1hbmltYXRpb25zL3Rlc3RfYW5pbWF0aW9uLWNhbmNlbC1l
eHBlY3RlZC50eHQ6CisKKzIwMTgtMDMtMjIgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxl
LmNvbT4KKworICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIFN1cHBvcnQgInRyYW5zaXRpb246IGFs
bCIgZm9yIENTUyBUcmFuc2l0aW9ucyBhcyBXZWIgQW5pbWF0aW9ucworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTE3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIFJlY29yZCBwcm9ncmVzc2lvbnMgdGhhbmtz
IHRvIHN1cHBvcnRpbmcgInRyYW5zaXRpb246IGFsbCIuCisKKyAgICAgICAgKiBjc3MtdHJhbnNp
dGlvbnMvdGVzdF9hbmltYXRpb24tZmluaXNoZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGNz
cy10cmFuc2l0aW9ucy90ZXN0X2Nzc3RyYW5zaXRpb24tdHJhbnNpdGlvbnByb3BlcnR5LWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBjc3MtdHJhbnNpdGlvbnMvdGVzdF9lZmZlY3QtdGFyZ2V0LWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBjc3MtdHJhbnNpdGlvbnMvdGVzdF9lbGVtZW50LWdldC1h
bmltYXRpb25zLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBjc3MtdHJhbnNpdGlvbnMvdGVzdF9w
c2V1ZG9FbGVtZW50LWdldC1hbmltYXRpb25zLWV4cGVjdGVkLnR4dDoKKworMjAxOC0wMy0yMSAg
QW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWIgQW5pbWF0
aW9uc10gTWFrZSBpbXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25zL3Rlc3RfZXZlbnQtZGlz
cGF0Y2guaHRtbCBwYXNzIHJlbGlhYmx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODM4NDUKKworICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tz
b24uCisKKyAgICAgICAgQWRkIHRlc3QgZXhwZWN0YXRpb25zIGZvciBwcmV2aW91c2x5IGNyYXNo
aW5nIHRlc3RzLCB1cGRhdGUgb3RoZXIgZXhwZWN0YXRpb25zIHdpdGggcHJvZ3Jlc3Npb25zLCBp
bmNsdWRpbmcKKyAgICAgICAgdGhlIHR3byBldmVudCBkaXNwYXRjaCB0ZXN0cyB3aGljaCBub3cg
cGFzcyBhbGwgYXNzZXJ0aW9ucy4KKworICAgICAgICAqIGNzcy1hbmltYXRpb25zL3Rlc3RfYW5p
bWF0aW9uLWZpbmlzaC1leHBlY3RlZC50eHQ6CisgICAgICAgICogY3NzLWFuaW1hdGlvbnMvdGVz
dF9hbmltYXRpb24tcGF1c2luZy1leHBlY3RlZC50eHQ6CisgICAgICAgICogY3NzLWFuaW1hdGlv
bnMvdGVzdF9hbmltYXRpb24tcGxheXN0YXRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBjc3Mt
YW5pbWF0aW9ucy90ZXN0X2FuaW1hdGlvbi1yZWFkeS1leHBlY3RlZC50eHQ6CisgICAgICAgICog
Y3NzLWFuaW1hdGlvbnMvdGVzdF9hbmltYXRpb24tc3RhcnR0aW1lLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBjc3MtYW5pbWF0aW9ucy90ZXN0X2V2ZW50LWRpc3BhdGNoLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBjc3MtYW5pbWF0aW9ucy90ZXN0X2V2ZW50LW9yZGVyLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBjc3MtYW5pbWF0aW9ucy90ZXN0X3NldHRpbmctZWZmZWN0LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogY3NzLXRyYW5zaXRpb25zL3Rlc3RfYW5pbWF0aW9uLWNhbmNl
bC1leHBlY3RlZC50eHQ6CisgICAgICAgICogY3NzLXRyYW5zaXRpb25zL3Rlc3RfYW5pbWF0aW9u
LWNvbXB1dGVkLXRpbWluZy1leHBlY3RlZC50eHQ6CisgICAgICAgICogY3NzLXRyYW5zaXRpb25z
L3Rlc3RfYW5pbWF0aW9uLWN1cnJlbnR0aW1lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBjc3Mt
dHJhbnNpdGlvbnMvdGVzdF9hbmltYXRpb24tcGF1c2luZy1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogY3NzLXRyYW5zaXRpb25zL3Rlc3RfYW5pbWF0aW9uLXN0YXJ0dGltZS1leHBlY3RlZC50eHQ6
CisgICAgICAgICogY3NzLXRyYW5zaXRpb25zL3Rlc3RfZXZlbnQtZGlzcGF0Y2gtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGNzcy10cmFuc2l0aW9ucy90ZXN0X3NldHRpbmctZWZmZWN0LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisKIDIwMTgtMDMtMjEgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFw
cGxlLmNvbT4KIAogICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEVuc3VyZSBhbmltYXRpb25jYW5j
ZWwgYW5kIHRyYW5zaXRpb25jYW5jZWwgZXZlbnRzIGFyZSBkaXNwYXRjaGVkCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBlMThjMTQ0NDI4NGM0MDdiYWRjNzUyNWU1MDg3M2EwZmFj
ZjRhNTE4Li5lMzYwODM1YjA0OTY0ZDBkOTExYzYyMmViMjk4OWYzYWVhM2Q0M2I1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMjAgQEAKKzIwMTgtMDMtMjMgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBXUFQgdG9v
bHMgdG8gYTFlYzMzMAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTgzOTM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAg
ICAgKiByZXNvdXJjZXMvY29uZmlnLmpzb246CisgICAgICAgICogcmVzb3VyY2VzL2ltcG9ydC1l
eHBlY3RhdGlvbnMuanNvbjoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY29uZmlnLmRl
ZmF1bHQuanNvbjoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvOiBSZWZyZXNo
ZWQuCisKKzIwMTgtMDMtMjMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisg
ICAgICAgIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlciBzaG91bGQgc2VuZCBjcmVkZW50aWFscyBh
ZnRlciByZWRpcmVjdGlvbnMgYW5kIHByZWZsaWdodCBpZiBmZXRjaCBvcHRpb24gY3JlZGVudGlh
bHMgaXMgaW5jbHVkZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTgzOTI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1jb29raWVzLXJlZGly
ZWN0LmFueS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL2NvcnMvY29ycy1jb29raWVzLXJlZGlyZWN0LmFueS5qczogQWRkZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtY29va2llcy1yZWRpcmVjdC5h
bnkud29ya2VyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVzb3VyY2VzL2luc3BlY3QtaGVhZGVycy5weToKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9yZWRpcmVjdC5weToKKworMjAxOC0wMy0yMyAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbY3Nz
LWdyaWRdIEZpeCBhdXRvIHJlcGVhdCB0cmFja3MgY29tcHV0YXRpb24gd2l0aCBkZWZpbml0ZSBt
aW4gc2l6ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4MzkzMworCisgICAgICAgIFJldmlld2VkIGJ5IEphdmllciBGZXJuYW5kZXouCisKKyAgICAg
ICAgVGhlIHJlbGV2YW50IHRlc3QgZm9yIHRoaXMgY2hhbmdlIGlzIGp1c3QgZ3JpZC1pbmxpbmUt
YXV0by1yZXBlYXQtMDAxLmh0bWwuIFRoZSBvdGhlciBvbmVzCisgICAgICAgIHdlcmUgcHVsbGVk
IGluIGJ5IHRoZSBpbXBvcnQuIFRoZSB1bmlxdWUgY2hhbmdlIGluIHRob3NlIHRlc3RzIGlzIHRo
ZSBsb2NhdGlvbiBvZiBhCisgICAgICAgIHN0eWxlc2hlZXQuIFNpbmNlIHdlJ3JlIHVzaW5nIGl0
IGluIHRoZSBuZXcgdGVzdCBpdCBzZWVtcyBzZW5zaWJsZSB0byB1c2UgdGhpcyBzYW1lIGNvbW1p
dAorICAgICAgICB0byBpbXBvcnQgdGhvc2UgY2hhbmdlcyB0b28uIFRoZXJlIGlzIG9uZSBpbXBv
cnRhbnQgY2hhbmdlIGluIHRlc3RpbmctdXRpbHMuanMgd2hpY2ggaXMKKyAgICAgICAgYWxzbyBy
ZXF1aXJlZCBieSB0aGUgbmV3IHRlc3QuCisKKyAgICAgICAgKiByZXNvdXJjZXMvaW1wb3J0LWV4
cGVjdGF0aW9ucy5qc29uOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdy
aWQvZ3JpZC1kZWZpbml0aW9uL2dyaWQtY2hhbmdlLWZpdC1jb250ZW50LWFyZ3VtZW50LTAwMS5o
dG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvZ3JpZC1kZWZp
bml0aW9uL2dyaWQtaW5saW5lLWF1dG8tcmVwZWF0LTAwMS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvZ3JpZC1kZWZpbml0aW9u
L2dyaWQtaW5saW5lLWF1dG8tcmVwZWF0LTAwMS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL2dyaWQtZGVmaW5pdGlvbi9ncmlkLXRlbXBsYXRl
LWNvbHVtbnMtZml0LWNvbnRlbnQtMDAxLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9ncmlkLWRlZmluaXRpb24vZ3JpZC10ZW1wbGF0ZS1j
b2x1bW5zLWZpdC1jb250ZW50LTAwMS5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWdyaWQvZ3JpZC1kZWZpbml0aW9uL2dyaWQtdGVtcGxhdGUtcm93cy1maXQtY29u
dGVudC0wMDEtZXhwZWN0ZWQuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1ncmlkL2dyaWQtZGVmaW5pdGlvbi9ncmlkLXRlbXBsYXRlLXJvd3MtZml0LWNvbnRlbnQt
MDAxLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9ncmlk
LWRlZmluaXRpb24vc3VwcG9ydC9ncmlkLmNzczogQWRkZWQuCisgICAgICAgICguZ3JpZCk6Cisg
ICAgICAgICguaW5saW5lLWdyaWQpOgorICAgICAgICAoLmZpcnN0Um93Rmlyc3RDb2x1bW4pOgor
ICAgICAgICAoLm9ubHlGaXJzdFJvd09ubHlGaXJzdENvbHVtbik6CisgICAgICAgICguZmlyc3RS
b3dTZWNvbmRDb2x1bW4pOgorICAgICAgICAoLm9ubHlGaXJzdFJvd09ubHlTZWNvbmRDb2x1bW4p
OgorICAgICAgICAoLnNlY29uZFJvd0ZpcnN0Q29sdW1uKToKKyAgICAgICAgKC5vbmx5U2Vjb25k
Um93T25seUZpcnN0Q29sdW1uKToKKyAgICAgICAgKC5zZWNvbmRSb3dTZWNvbmRDb2x1bW4pOgor
ICAgICAgICAoLm9ubHlTZWNvbmRSb3dPbmx5U2Vjb25kQ29sdW1uKToKKyAgICAgICAgKC5lbmRT
ZWNvbmRSb3dFbmRTZWNvbmRDb2x1bW4pOgorICAgICAgICAoLnRoaXJkUm93U2Vjb25kQ29sdW1u
KToKKyAgICAgICAgKC5maXJzdFJvd1RoaXJkQ29sdW1uKToKKyAgICAgICAgKC5zZWNvbmRSb3dU
aGlyZENvbHVtbik6CisgICAgICAgICguZmlyc3RSb3dGb3VydGhDb2x1bW4pOgorICAgICAgICAo
LnNlY29uZFJvd0ZvdXJ0aENvbHVtbik6CisgICAgICAgICguZmlyc3RBdXRvUm93U2Vjb25kQXV0
b0NvbHVtbik6CisgICAgICAgICguYXV0b0xhc3RSb3dBdXRvTGFzdENvbHVtbik6CisgICAgICAg
ICguYXV0b1NlY29uZFJvd0F1dG9GaXJzdENvbHVtbik6CisgICAgICAgICguZmlyc3RSb3dCb3Ro
Q29sdW1uKToKKyAgICAgICAgKC5zZWNvbmRSb3dCb3RoQ29sdW1uKToKKyAgICAgICAgKC5ib3Ro
Um93Rmlyc3RDb2x1bW4pOgorICAgICAgICAoLmJvdGhSb3dTZWNvbmRDb2x1bW4pOgorICAgICAg
ICAoLmJvdGhSb3dCb3RoQ29sdW1uKToKKyAgICAgICAgKC5hdXRvUm93QXV0b0NvbHVtbik6Cisg
ICAgICAgICguZmlyc3RSb3dBdXRvQ29sdW1uKToKKyAgICAgICAgKC5zZWNvbmRSb3dBdXRvQ29s
dW1uKToKKyAgICAgICAgKC50aGlyZFJvd0F1dG9Db2x1bW4pOgorICAgICAgICAoLmF1dG9Sb3dG
aXJzdENvbHVtbik6CisgICAgICAgICguYXV0b1Jvd1NlY29uZENvbHVtbik6CisgICAgICAgICgu
YXV0b1Jvd1RoaXJkQ29sdW1uKToKKyAgICAgICAgKC5hdXRvUm93QXV0b0NvbHVtblNwYW5uaW5n
Mik6CisgICAgICAgICguYXV0b1Jvd1NwYW5uaW5nMkF1dG9Db2x1bW4pOgorICAgICAgICAoLmF1
dG9Sb3dTcGFubmluZzJBdXRvQ29sdW1uU3Bhbm5pbmczKToKKyAgICAgICAgKC5hdXRvUm93U3Bh
bm5pbmczQXV0b0NvbHVtblNwYW5uaW5nMik6CisgICAgICAgICguYXV0b1Jvd0ZpcnN0Q29sdW1u
U3Bhbm5pbmcyKToKKyAgICAgICAgKC5hdXRvUm93U2Vjb25kQ29sdW1uU3Bhbm5pbmcyKToKKyAg
ICAgICAgKC5maXJzdFJvd1NwYW5uaW5nMkF1dG9Db2x1bW4pOgorICAgICAgICAoLnNlY29uZFJv
d1NwYW5uaW5nMkF1dG9Db2x1bW4pOgorICAgICAgICAoLmdyaWRBdXRvRmxvd0NvbHVtblNwYXJz
ZSk6CisgICAgICAgICguZ3JpZEF1dG9GbG93Q29sdW1uRGVuc2UpOgorICAgICAgICAoLmdyaWRB
dXRvRmxvd1Jvd1NwYXJzZSk6CisgICAgICAgICguZ3JpZEF1dG9GbG93Um93RGVuc2UpOgorICAg
ICAgICAoLmNvbnN0cmFpbmVkQ29udGFpbmVyKToKKyAgICAgICAgKC51bmNvbnN0cmFpbmVkQ29u
dGFpbmVyKToKKyAgICAgICAgKC5zaXplZFRvR3JpZEFyZWEpOgorICAgICAgICAoLnZlcnRpY2Fs
UkwpOgorICAgICAgICAoLnZlcnRpY2FsTFIpOgorICAgICAgICAoLmhvcml6b250YWxUQik6Cisg
ICAgICAgICguZGlyZWN0aW9uUlRMKToKKyAgICAgICAgKC5kaXJlY3Rpb25MVFIpOgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvZ3JpZC1kZWZpbml0aW9uL3N1cHBv
cnQvdGVzdGluZy11dGlscy5qczoKKyAgICAgICAgKGNoZWNrR3JpZFRlbXBsYXRlUm93cyk6IENv
bnZlcnQgdGhlIHBhc3NlZCBjb21wdXRlZCBzdHlsZSB0byBhbiBBcnJheSBpbiBjYXNlIGl0IGlz
IGp1c3QgYW4gc3RyaW5nLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdy
aWQvZ3JpZC1kZWZpbml0aW9uL3N1cHBvcnQvdzNjLWltcG9ydC5sb2c6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9ncmlkLWRlZmluaXRpb24vdzNjLWltcG9ydC5s
b2c6CisKKzIwMTgtMDMtMjMgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEFuaW1hdGVkIHRyYW5zZm9ybSBzdHlsZXMgYXJlIGln
bm9yZWQgd2hlbiBjYWxsaW5nIGdldENvbXB1dGVkU3R5bGUoKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTE4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRGVhbiBKYWNrc29uLgorCisgICAgICAgIFdlIG9idGFpbiBhIG51bWJlciBvZiBwcm9ncmVz
c2lvbnMgYnkgY29ycmVjdGx5IHNlcmlhbGl6aW5nIHRoZSB0cmFuc2Zvcm0gcHJvcGVydHkgb24g
Z2V0Q29tcHV0ZWRTdHlsZSgpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1h
bmltYXRpb25zL2FuaW1hdGlvbi1tb2RlbC9hbmltYXRpb24tdHlwZXMvYWNjdW11bGF0aW9uLXBl
ci1wcm9wZXJ0eS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dl
Yi1hbmltYXRpb25zL2FuaW1hdGlvbi1tb2RlbC9hbmltYXRpb24tdHlwZXMvaW50ZXJwb2xhdGlv
bi1wZXItcHJvcGVydHktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy93ZWItYW5pbWF0aW9ucy9hbmltYXRpb24tbW9kZWwva2V5ZnJhbWUtZWZmZWN0cy9lZmZlY3Qt
dmFsdWUtaXRlcmF0aW9uLWNvbXBvc2l0ZS1vcGVyYXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy9pbnRlcmZhY2VzL0FuaW1hdGlv
bi9jYW5jZWwtZXhwZWN0ZWQudHh0OgorCiAyMDE4LTAzLTIyICBGcmVkZXJpYyBXYW5nICA8Zndh
bmdAaWdhbGlhLmNvbT4KIAogICAgICAgICBbTWF0aE1MXSBJbXBvcnQgV1BUIHRlc3QgdG8gcmVw
bGFjZSBtYXRobWwvb3BlbnR5cGUvbGFyZ2Utb3BlcmF0b3JzLWl0YWxpYy1jb3JyZWN0aW9uLmh0
bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGRhNzA4ZDVjNzk3OTJlMzU3NmEzZjlkYzA3OGJlMmQw
MGFmMTYwMWYuLmQwYjk4Y2ZlZjVjNmUxMjg3YTk5ZjZiMTY5YjUwMDI3YTY4OTI1YjggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtNjEsNiArNjEsOSBAQCBmYXN0L2ltYWdlcy9lcHMtYXMtaW1hZ2Uu
aHRtbCBbIFNraXAgXQogIyBPbmx5IE1hYyBzdXBwb3J0cyBEYXNoYm9hcmQgd2lkZ2V0cy4KIGZh
c3QveG1saHR0cHJlcXVlc3Qvc2V0LWRhbmdlcm91cy1oZWFkZXJzLWluLWRhc2hib2FyZC5odG1s
IFsgV29udEZpeCBdCiAKKyMgT25seSBhcHBsaWNhYmxlIG9uIG1hY09TCitmYXN0L2Nzcy9hcHBs
ZS1zeXN0ZW0tY29udHJvbC1jb2xvcnMuaHRtbCBbIFNraXAgXQorCiAjIE9ubHkgTWFjIHN1cHBv
cnRzIGZvcmNlIHRlc3RzLgogZmFzdC9ldmVudHMvY2FuY2VsbGVkLWZvcmNlLWNsaWNrLWxpbmst
bmF2aWdhdGlvbi5odG1sIFsgU2tpcCBdCiBmYXN0L2V2ZW50cy9mb3JjZS1jbGljay1saW5rLXNl
bGVjdGlvbi1iZWhhdmlvci5odG1sIFsgU2tpcCBdCkBAIC0xNzA1LDEyICsxNzA4LDggQEAgd2Vi
a2l0Lm9yZy9iLzE4MTEyMiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmlt
YXRpb25zL2ludGVyZmFjZXMvQW4KIHdlYmtpdC5vcmcvYi8xODExMjMgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy9pbnRlcmZhY2VzL0FuaW1hdGlvbi9maW5p
c2guaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTgxODg4IGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvdGltaW5nLW1vZGVsL2FuaW1hdGlv
bi1lZmZlY3RzL2N1cnJlbnQtaXRlcmF0aW9uLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCi13ZWJr
aXQub3JnL2IvMTgzODE1IGltcG9ydGVkL21vemlsbGEvY3NzLWFuaW1hdGlvbnMvdGVzdF9hbmlt
YXRpb24tY2FuY2VsLmh0bWwgWyBQYXNzIEZhaWx1cmUgVGltZW91dCBdCi13ZWJraXQub3JnL2Iv
MTgzODE2IGltcG9ydGVkL21vemlsbGEvY3NzLXRyYW5zaXRpb25zL3Rlc3Rfa2V5ZnJhbWVlZmZl
Y3QtZ2V0a2V5ZnJhbWVzLmh0bWwgWyBQYXNzIEZhaWx1cmUgVGltZW91dCBdCi13ZWJraXQub3Jn
L2IvMTgzODE3IGltcG9ydGVkL21vemlsbGEvY3NzLWFuaW1hdGlvbnMvdGVzdF9hbmltYXRpb24t
Y29tcHV0ZWQtdGltaW5nLmh0bWwgWyBQYXNzIEZhaWx1cmUgVGltZW91dCBdCiB3ZWJraXQub3Jn
L2IvMTgzODE4IGltcG9ydGVkL21vemlsbGEvY3NzLWFuaW1hdGlvbnMvdGVzdF9wc2V1ZG9FbGVt
ZW50LWdldC1hbmltYXRpb25zLmh0bWwgWyBQYXNzIEZhaWx1cmUgVGltZW91dCBdCi13ZWJraXQu
b3JnL2IvMTgzODE5IGltcG9ydGVkL21vemlsbGEvY3NzLWFuaW1hdGlvbnMvdGVzdF9hbmltYXRp
b24tY3VycmVudHRpbWUuaHRtbCBbIFBhc3MgRmFpbHVyZSBUaW1lb3V0IF0KLXdlYmtpdC5vcmcv
Yi8xODM4MjAgaW1wb3J0ZWQvbW96aWxsYS9jc3MtYW5pbWF0aW9ucy90ZXN0X2FuaW1hdGlvbi1m
aW5pc2guaHRtbCBbIFBhc3MgRmFpbHVyZSBUaW1lb3V0IF0KK3dlYmtpdC5vcmcvYi8xODQwMTEg
aW1wb3J0ZWQvbW96aWxsYS9jc3MtYW5pbWF0aW9ucy90ZXN0X2FuaW1hdGlvbi1jYW5jZWwuaHRt
bCBbIFBhc3MgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTgzODIxIGltcG9ydGVkL21vemlsbGEv
Y3NzLXRyYW5zaXRpb25zL3Rlc3RfYW5pbWF0aW9uLWNhbmNlbC5odG1sIFsgUGFzcyBGYWlsdXJl
IFRpbWVvdXQgXQogd2Via2l0Lm9yZy9iLzE4MzgyMiBpbXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmlt
YXRpb25zL3Rlc3RfYW5pbWF0aW9uLWZpbmlzaGVkLmh0bWwgWyBQYXNzIEZhaWx1cmUgVGltZW91
dCBdCiB3ZWJraXQub3JnL2IvMTgzODIzIGltcG9ydGVkL21vemlsbGEvY3NzLXRyYW5zaXRpb25z
L3Rlc3RfYW5pbWF0aW9uLWNvbXB1dGVkLXRpbWluZy5odG1sIFsgUGFzcyBGYWlsdXJlIFRpbWVv
dXQgXQpAQCAtMTcyOSwxOSArMTcyOCwxNSBAQCB3ZWJraXQub3JnL2IvMTgzODM1IGltcG9ydGVk
L21vemlsbGEvY3NzLXRyYW5zaXRpb25zL3Rlc3RfY3NzdHJhbnNpdGlvbi10cmFuc2l0aQogd2Vi
a2l0Lm9yZy9iLzE4MzgzNiBpbXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25zL3Rlc3RfYW5p
bWF0aW9ucy1keW5hbWljLWNoYW5nZXMuaHRtbCBbIFBhc3MgRmFpbHVyZSBUaW1lb3V0IF0KIHdl
YmtpdC5vcmcvYi8xODM4MzcgaW1wb3J0ZWQvbW96aWxsYS9jc3MtdHJhbnNpdGlvbnMvdGVzdF9k
b2N1bWVudC1nZXQtYW5pbWF0aW9ucy5odG1sIFsgUGFzcyBGYWlsdXJlIFRpbWVvdXQgXQogd2Vi
a2l0Lm9yZy9iLzE4MzgzOCBpbXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25zL3Rlc3RfY3Nz
YW5pbWF0aW9uLWFuaW1hdGlvbm5hbWUuaHRtbCBbIFBhc3MgRmFpbHVyZSBUaW1lb3V0IF0KLXdl
YmtpdC5vcmcvYi8xODM4MzkgaW1wb3J0ZWQvbW96aWxsYS9jc3MtdHJhbnNpdGlvbnMvdGVzdF9l
ZmZlY3QtdGFyZ2V0Lmh0bWwgWyBQYXNzIEZhaWx1cmUgVGltZW91dCBdCiB3ZWJraXQub3JnL2Iv
MTgzODQwIGltcG9ydGVkL21vemlsbGEvY3NzLWFuaW1hdGlvbnMvdGVzdF9kb2N1bWVudC1nZXQt
YW5pbWF0aW9ucy5odG1sIFsgUGFzcyBGYWlsdXJlIFRpbWVvdXQgXQogd2Via2l0Lm9yZy9iLzE4
Mzg0MSBpbXBvcnRlZC9tb3ppbGxhL2Nzcy10cmFuc2l0aW9ucy90ZXN0X2VsZW1lbnQtZ2V0LWFu
aW1hdGlvbnMuaHRtbCBbIFBhc3MgRmFpbHVyZSBUaW1lb3V0IF0KLXdlYmtpdC5vcmcvYi8xODM4
NDIgaW1wb3J0ZWQvbW96aWxsYS9jc3MtYW5pbWF0aW9ucy90ZXN0X2VmZmVjdC10YXJnZXQuaHRt
bCBbIFBhc3MgRmFpbHVyZSBUaW1lb3V0IF0KLXdlYmtpdC5vcmcvYi8xODM4NDMgaW1wb3J0ZWQv
bW96aWxsYS9jc3MtdHJhbnNpdGlvbnMvdGVzdF9ldmVudC1kaXNwYXRjaC5odG1sIFsgUGFzcyBG
YWlsdXJlIFRpbWVvdXQgXQogd2Via2l0Lm9yZy9iLzE4Mzg0NCBpbXBvcnRlZC9tb3ppbGxhL2Nz
cy1hbmltYXRpb25zL3Rlc3RfZWxlbWVudC1nZXQtYW5pbWF0aW9ucy5odG1sIFsgUGFzcyBGYWls
dXJlIFRpbWVvdXQgXQotd2Via2l0Lm9yZy9iLzE4Mzg0NSBpbXBvcnRlZC9tb3ppbGxhL2Nzcy1h
bmltYXRpb25zL3Rlc3RfZXZlbnQtZGlzcGF0Y2guaHRtbCBbIFBhc3MgRmFpbHVyZSBUaW1lb3V0
IF0KIHdlYmtpdC5vcmcvYi8xODM4NDYgaW1wb3J0ZWQvbW96aWxsYS9jc3MtdHJhbnNpdGlvbnMv
dGVzdF9wc2V1ZG9FbGVtZW50LWdldC1hbmltYXRpb25zLmh0bWwgWyBQYXNzIEZhaWx1cmUgVGlt
ZW91dCBdCiB3ZWJraXQub3JnL2IvMTgzODQ3IGltcG9ydGVkL21vemlsbGEvY3NzLWFuaW1hdGlv
bnMvdGVzdF9ldmVudC1vcmRlci5odG1sIFsgUGFzcyBGYWlsdXJlIFRpbWVvdXQgXQord2Via2l0
Lm9yZy9iLzE4Mzg0OSBpbXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25zL3Rlc3Rfc2V0dGlu
Zy1lZmZlY3QuaHRtbCBbIFBhc3MgRmFpbHVyZSBUaW1lb3V0IF0KK3dlYmtpdC5vcmcvYi8xODM4
NTAgaW1wb3J0ZWQvbW96aWxsYS9jc3MtdHJhbnNpdGlvbnMvdGVzdF9zZXR0aW5nLWVmZmVjdC5o
dG1sIFsgUGFzcyBGYWlsdXJlIFRpbWVvdXQgXQogCiB3ZWJraXQub3JnL2IvMTgzODQ4IGltcG9y
dGVkL21vemlsbGEvY3NzLWFuaW1hdGlvbnMvdGVzdF9rZXlmcmFtZWVmZmVjdC1nZXRrZXlmcmFt
ZXMuaHRtbCBbIENyYXNoIF0KLXdlYmtpdC5vcmcvYi8xODM4NDkgaW1wb3J0ZWQvbW96aWxsYS9j
c3MtYW5pbWF0aW9ucy90ZXN0X3NldHRpbmctZWZmZWN0Lmh0bWwgWyBDcmFzaCBdCi13ZWJraXQu
b3JnL2IvMTgzODUwIGltcG9ydGVkL21vemlsbGEvY3NzLXRyYW5zaXRpb25zL3Rlc3Rfc2V0dGlu
Zy1lZmZlY3QuaHRtbCBbIENyYXNoIF0KIAogd2Via2l0Lm9yZy9iLzE3NzQ0MCBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvb3JpZ2luL3JlbGF4aW5nLXRoZS1z
YW1lLW9yaWdpbi1yZXN0cmljdGlvbi9kb2N1bWVudF9kb21haW5fc2V0dGVyX251bGwudGVudGF0
aXZlLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3Jvdy13aXRoLWFyaWEtcm9sZS1pbi1uYXRpdmUtdGFibGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9yb3ctd2l0aC1hcmlhLXJvbGUtaW4tbmF0aXZl
LXRhYmxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMjQ3NGUzMzQxN2QyNThkMTgzY2Y4NTU5
MmYwMjczMWE0OGQyNzc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9yb3ctd2l0aC1hcmlhLXJvbGUtaW4tbmF0aXZlLXRhYmxlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEyIEBACitJdGVtIDEKK1RoaXMgdGVzdHMgaWYgYSBuYXRpdmUgdHIgZWxlbWVudCB1
c2VzIHRoZSAncm93JyByb2xlLCBidXQgZm9yZ2V0cyB0byBhZGQgcm9sZT0nZ3JpZCcgdG8gdGhl
IG5hdGl2ZSB0YWJsZSBlbGVtZW50LCB0aGUgdGFibGUgc3RpbGwgZXhwb3NlcyB0aGUgcmlnaHQg
bnVtYmVycyBvZiByb3dzL2NlbGxzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyB0YWJsZS5yb3dDb3VudCBpcyAxCitQQVNTIHRhYmxlLmNvbHVtbkNvdW50IGlzIDEKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Jvdy13aXRoLWFyaWEtcm9sZS1pbi1uYXRp
dmUtdGFibGUuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcm93LXdpdGgtYXJpYS1y
b2xlLWluLW5hdGl2ZS10YWJsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3NjZmZDFmNmY0OGQxNzQ5MGNm
OTMzNTZjOWFmNDg4NzdjMmMxN2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3Jvdy13aXRoLWFyaWEtcm9sZS1pbi1uYXRpdmUtdGFibGUuaHRtbApAQCAtMCww
ICsxLDMyIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBpZD0iYm9keSI+CisKKzx0YWJsZSBpZD0idGFi
bGUiPgorPHRoZWFkPgorPHRyIHJvbGU9InJvdyI+PHRoPkl0ZW0gMTwvdGg+PC90cj4KKzwvdGhl
YWQ+Cis8dGJvZHk+PC90Ym9keT4KKzwvdGFibGU+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CisKKyAgICBkZXNjcmlwdGlv
bigiVGhpcyB0ZXN0cyBpZiBhIG5hdGl2ZSB0ciBlbGVtZW50IHVzZXMgdGhlICdyb3cnIHJvbGUs
IGJ1dCBmb3JnZXRzIHRvIGFkZCByb2xlPSdncmlkJyB0byB0aGUgbmF0aXZlIHRhYmxlIGVsZW1l
bnQsIHRoZSB0YWJsZSBzdGlsbCBleHBvc2VzIHRoZSByaWdodCBudW1iZXJzIG9mIHJvd3MvY2Vs
bHMuIik7CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAg
ICAgIHZhciB0YWJsZSA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50
QnlJZCgidGFibGUiKTsKKyAgICAgICAgc2hvdWxkQmUoInRhYmxlLnJvd0NvdW50IiwgIjEiKTsK
KyAgICAgICAgc2hvdWxkQmUoInRhYmxlLmNvbHVtbkNvdW50IiwgIjEiKTsKKyAgICB9CisKKzwv
c2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9hcHBsZS1zeXN0ZW0tY29udHJvbC1jb2xvcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvYXBwbGUtc3lzdGVtLWNvbnRyb2wtY29sb3JzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40OTJlOGE1NWRkNjFlNDY5M2M4ZDA4NjI2YzQxNDdjNzRjNDkzZDQxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvYXBwbGUtc3lzdGVtLWNvbnRyb2wtY29sb3Jz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKKy1hcHBsZS1zeXN0ZW0taGVhZGVyLXRleHQg
OiByZ2IoMCwgMCwgMCkKKy1hcHBsZS1zeXN0ZW0tdGV4dC1iYWNrZ3JvdW5kIDogcmdiKDI1NSwg
MjU1LCAyNTUpCistYXBwbGUtc3lzdGVtLWFsdGVybmF0ZS1zZWxlY3RlZC10ZXh0IDogcmdiKDI1
NSwgMjU1LCAyNTUpCistYXBwbGUtc3lzdGVtLWxhYmVsIDogcmdiKDAsIDAsIDApCistYXBwbGUt
c3lzdGVtLXNlY29uZGFyeS1sYWJlbCA6IHJnYigwLCAwLCAwKQorLWFwcGxlLXN5c3RlbS10ZXJ0
aWFyeS1sYWJlbCA6IHJnYigwLCAwLCAwKQorLWFwcGxlLXN5c3RlbS1xdWF0ZXJuYXJ5LWxhYmVs
IDogcmdiKDAsIDAsIDApCistYXBwbGUtc3lzdGVtLWdyaWQgOiByZ2IoMjA0LCAyMDQsIDIwNCkK
K2N1cnJlbnQtY29sb3Igd2l0aCBpbmhlcml0ZWQgLWFwcGxlLXN5c3RlbS1sYWJlbCA6IHJnYigw
LCAwLCAwKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvYXBwbGUtc3lzdGVtLWNv
bnRyb2wtY29sb3JzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9hcHBsZS1zeXN0ZW0tY29u
dHJvbC1jb2xvcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzJjM2NmZjVjYTMwZjUxMTY5NzEyMjg0ZTcy
M2Y3NGE1YmJjNDNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvYXBw
bGUtc3lzdGVtLWNvbnRyb2wtY29sb3JzLmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPHNjcmlwdD4K
KyAgICAKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHdpbmRvdy50ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKyAgICAKKyAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9h
ZCIsIHJ1biwgZmFsc2UpOworICAgIAorICAgIGZ1bmN0aW9uIHJ1bigpIHsKKyAgICAgICAgdmFy
IGRpdnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkaXYiKTsKKyAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBkaXZzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2YXIgZGl2ID0g
ZGl2c1tpXTsKKyAgICAgICAgICAgIHZhciBzcGFuID0gZGl2LnF1ZXJ5U2VsZWN0b3IoInNwYW4i
KTsKKyAgICAgICAgICAgIGRpdi5pbm5lckhUTUwgKz0gIiA6ICIgKyB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShzcGFuKS5iYWNrZ3JvdW5kQ29sb3I7CisgICAgICAgIH0KKyAgICB9Cis8L3Njcmlw
dD4KKzxzdHlsZT4KKyAgICAuc3dhdGNoIHsKKyAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2Nr
OworICAgICAgICB3aWR0aDogNDBweDsKKyAgICAgICAgaGVpZ2h0OiA0MHB4OworICAgIH0KKzwv
c3R5bGU+Cis8ZGl2PjxzcGFuIGNsYXNzPSJzd2F0Y2giIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9y
OiAtYXBwbGUtc3lzdGVtLWhlYWRlci10ZXh0Ij48L3NwYW4+LWFwcGxlLXN5c3RlbS1oZWFkZXIt
dGV4dDwvZGl2PgorPGRpdj48c3BhbiBjbGFzcz0ic3dhdGNoIiBzdHlsZT0iYmFja2dyb3VuZC1j
b2xvcjogLWFwcGxlLXN5c3RlbS10ZXh0LWJhY2tncm91bmQiPjwvc3Bhbj4tYXBwbGUtc3lzdGVt
LXRleHQtYmFja2dyb3VuZDwvZGl2PgorPGRpdj48c3BhbiBjbGFzcz0ic3dhdGNoIiBzdHlsZT0i
YmFja2dyb3VuZC1jb2xvcjogLWFwcGxlLXN5c3RlbS1hbHRlcm5hdGUtc2VsZWN0ZWQtdGV4dCI+
PC9zcGFuPi1hcHBsZS1zeXN0ZW0tYWx0ZXJuYXRlLXNlbGVjdGVkLXRleHQ8L2Rpdj4KKzxkaXY+
PHNwYW4gY2xhc3M9InN3YXRjaCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IC1hcHBsZS1zeXN0
ZW0tbGFiZWwiPjwvc3Bhbj4tYXBwbGUtc3lzdGVtLWxhYmVsPC9kaXY+Cis8ZGl2PjxzcGFuIGNs
YXNzPSJzd2F0Y2giIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAtYXBwbGUtc3lzdGVtLXNlY29u
ZGFyeS1sYWJlbCI+PC9zcGFuPi1hcHBsZS1zeXN0ZW0tc2Vjb25kYXJ5LWxhYmVsPC9kaXY+Cis8
ZGl2PjxzcGFuIGNsYXNzPSJzd2F0Y2giIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAtYXBwbGUt
c3lzdGVtLXRlcnRpYXJ5LWxhYmVsIj48L3NwYW4+LWFwcGxlLXN5c3RlbS10ZXJ0aWFyeS1sYWJl
bDwvZGl2PgorPGRpdj48c3BhbiBjbGFzcz0ic3dhdGNoIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xv
cjogLWFwcGxlLXN5c3RlbS1xdWF0ZXJuYXJ5LWxhYmVsIj48L3NwYW4+LWFwcGxlLXN5c3RlbS1x
dWF0ZXJuYXJ5LWxhYmVsPC9kaXY+Cis8ZGl2PjxzcGFuIGNsYXNzPSJzd2F0Y2giIHN0eWxlPSJi
YWNrZ3JvdW5kLWNvbG9yOiAtYXBwbGUtc3lzdGVtLWdyaWQiPjwvc3Bhbj4tYXBwbGUtc3lzdGVt
LWdyaWQ8L2Rpdj4KKzxkaXYgc3R5bGU9ImNvbG9yOiAtYXBwbGUtc3lzdGVtLWxhYmVsIj48c3Bh
biBjbGFzcz0ic3dhdGNoIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogY3VycmVudGNvbG9yOyI+
PC9zcGFuPmN1cnJlbnQtY29sb3Igd2l0aCBpbmhlcml0ZWQgLWFwcGxlLXN5c3RlbS1sYWJlbDwv
ZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3NpbXBsZS1saW5lLWxheW91
dC1keW5hbWljLWxldHRlci13b3JkLXNwYWNpbmctZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvdGV4dC9zaW1wbGUtbGluZS1sYXlvdXQtZHluYW1pYy1sZXR0ZXItd29yZC1zcGFjaW5n
LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmVkZDM1YWIxYjgzNTc5M2U4YmM4NDI0ZTBmYzEw
NzVjMzFkNzhlNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC9zaW1w
bGUtbGluZS1sYXlvdXQtZHluYW1pYy1sZXR0ZXItd29yZC1zcGFjaW5nLWV4cGVjdGVkLmh0bWwK
QEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxl
PgorZGl2IHsKKyAgICB3aWR0aDogMjAwcHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+
Cis8ZGl2IGlkPWxldHRlclNwYWNpbmc+Zm9vYmFyIGZvb2JhciBmb29iYXIgZm9vYmFyPC9kaXY+
Cis8ZGl2IGlkPXdvcmRTcGFjaW5nPmZvb2JhciBmb29iYXIgZm9vYmFyIGZvb2JhcjwvZGl2Pgor
PHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRTaW1wbGVMaW5lTGF5b3V0RW5hYmxlZChmYWxzZSk7Citkb2N1bWVudC5ib2R5Lm9mZnNldEhl
aWdodDsKK2xldHRlclNwYWNpbmcuc3R5bGUubGV0dGVyU3BhY2luZyA9ICIxMHB4IjsKK3dvcmRT
cGFjaW5nLnN0eWxlLndvcmRTcGFjaW5nID0gIjIwcHgiOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvc2ltcGxlLWxpbmUtbGF5
b3V0LWR5bmFtaWMtbGV0dGVyLXdvcmQtc3BhY2luZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90
ZXh0L3NpbXBsZS1saW5lLWxheW91dC1keW5hbWljLWxldHRlci13b3JkLXNwYWNpbmcuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hMDgwNTlhNmE1MDZlMTFlMmFhNmI0NDMxNzFmZjYxNjYwYmYwYTJjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3NpbXBsZS1saW5lLWxheW91dC1k
eW5hbWljLWxldHRlci13b3JkLXNwYWNpbmcuaHRtbApAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitkaXYgeworICAgIHdpZHRoOiAyMDBw
eDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9bGV0dGVyU3BhY2luZz5m
b29iYXIgZm9vYmFyIGZvb2JhciBmb29iYXI8L2Rpdj4KKzxkaXYgaWQ9d29yZFNwYWNpbmc+Zm9v
YmFyIGZvb2JhciBmb29iYXIgZm9vYmFyPC9kaXY+Cis8c2NyaXB0PgorZG9jdW1lbnQuYm9keS5v
ZmZzZXRIZWlnaHQ7CitsZXR0ZXJTcGFjaW5nLnN0eWxlLmxldHRlclNwYWNpbmcgPSAiMTBweCI7
Cit3b3JkU3BhY2luZy5zdHlsZS53b3JkU3BhY2luZyA9ICIyMHB4IjsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9j
c3MtYW5pbWF0aW9ucy90ZXN0X2FuaW1hdGlvbi1jYW5jZWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9jc3MtYW5pbWF0aW9ucy90ZXN0X2FuaW1hdGlvbi1jYW5j
ZWwtZXhwZWN0ZWQudHh0CmluZGV4IDBkNjIxMWY4MzFmNTczNjI3Y2M4OWVjNjk0NTc2MTc2Zjk3
NTYzZTIuLmQ2OGI3NTI2MWI4NTJmZTYwYTZlZGFiYWU2MTZjNzBmNTYzMTkyNGYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL21vemlsbGEvY3NzLWFuaW1hdGlvbnMvdGVzdF9hbmlt
YXRpb24tY2FuY2VsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3pp
bGxhL2Nzcy1hbmltYXRpb25zL3Rlc3RfYW5pbWF0aW9uLWNhbmNlbC1leHBlY3RlZC50eHQKQEAg
LTEsNSArMSw1IEBACiAKLUZBSUwgQW5pbWF0ZWQgc3R5bGUgaXMgY2xlYXJlZCBhZnRlciBjYW5j
ZWxsaW5nIGEgcnVubmluZyBDU1MgYW5pbWF0aW9uIGFzc2VydF9ub3RfZXF1YWxzOiB0cmFuc2Zv
cm0gc3R5bGUgaXMgYW5pbWF0ZWQgYmVmb3JlIGNhbmNlbGxpbmcgZ290IGRpc2FsbG93ZWQgdmFs
dWUgIm5vbmUiCitQQVNTIEFuaW1hdGVkIHN0eWxlIGlzIGNsZWFyZWQgYWZ0ZXIgY2FuY2VsbGlu
ZyBhIHJ1bm5pbmcgQ1NTIGFuaW1hdGlvbiAKIFBBU1MgQW5pbWF0ZWQgc3R5bGUgaXMgY2xlYXJl
ZCBhZnRlciBjYW5jZWxsaW5nIGEgZmlsbGluZyBDU1MgYW5pbWF0aW9uIAogUEFTUyBBZnRlciBj
YW5jZWxpbmcgYW4gYW5pbWF0aW9uLCBpdCBjYW4gc3RpbGwgYmUgc2Vla2VkIAogUEFTUyBBZnRl
ciBjYW5jZWxsaW5nIGFuIGFuaW1hdGlvbiwgaXQgY2FuIHN0aWxsIGJlIHJlLXVzZWQgCkBAIC03
LDUgKzcsNSBAQCBQQVNTIEFmdGVyIGNhbmNlbGxpbmcgYW4gYW5pbWF0aW9uLCB1cGRhdGluZyBh
bmltYXRpb24gcHJvcGVydGllcyBkb2Vzbid0IG1ha2UgaQogUEFTUyBBZnRlciBjYW5jZWxsaW5n
IGFuIGFuaW1hdGlvbiwgdXBkYXRpbmcgYW5pbWF0aW9uLXBsYXktc3RhdGUgZG9lc24ndCBtYWtl
IGl0IGxpdmUgYWdhaW4gCiBQQVNTIFNldHRpbmcgYW5pbWF0aW9uLW5hbWUgdG8gJ25vbmUnIGNh
bmNlbHMgdGhlIGFuaW1hdGlvbiAKIFBBU1MgU2V0dGluZyBkaXNwbGF5Om5vbmUgb24gYW4gZWxl
bWVudCBjYW5jZWwgaXRzIGFuaW1hdGlvbnMgCi1GQUlMIFNldHRpbmcgZGlzcGxheTpub25lIG9u
IGFuIGFuY2VzdG9yIGVsZW1lbnQgY2FuY2VscyBhbmltYXRpb25zIG9uIGRlc2NlbmRhbnRzIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJpZGxlIiBidXQgZ290ICJydW5uaW5nIgorUEFTUyBTZXR0
aW5nIGRpc3BsYXk6bm9uZSBvbiBhbiBhbmNlc3RvciBlbGVtZW50IGNhbmNlbHMgYW5pbWF0aW9u
cyBvbiBkZXNjZW5kYW50cyAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96
aWxsYS9jc3MtYW5pbWF0aW9ucy90ZXN0X2FuaW1hdGlvbi1jb21wdXRlZC10aW1pbmctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9jc3MtYW5pbWF0aW9ucy90ZXN0
X2FuaW1hdGlvbi1jb21wdXRlZC10aW1pbmctZXhwZWN0ZWQudHh0CmluZGV4IDAxYzdmMmYwM2Yw
YzhmMTFiY2MwOGI1MjYxOGM2ZDY0NzliNGQ0MmIuLjZhMDkxN2I1ODhiNmJiZDE3YTg2N2E2NTg2
MTcxMTZkZWE0MzRmNjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL21vemlsbGEv
Y3NzLWFuaW1hdGlvbnMvdGVzdF9hbmltYXRpb24tY29tcHV0ZWQtdGltaW5nLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25zL3Rlc3Rf
YW5pbWF0aW9uLWNvbXB1dGVkLXRpbWluZy1leHBlY3RlZC50eHQKQEAgLTcsMTcgKzcsMTcgQEAg
UEFTUyBmaWxsIG9mIGEgbmV3IGFuaW1hdGlvbgogUEFTUyBpdGVyYXRpb25TdGFydCBvZiBhIG5l
dyBhbmltYXRpb24gCiBQQVNTIGl0ZXJhdGlvbnMgb2YgYSBuZXcgYW5pbWF0aW9uIAogUEFTUyBp
dGVyYXRpb25zIG9mIGEgZmluaXRlbHkgcmVwZWF0aW5nIGFuaW1hdGlvbiAKLUZBSUwgaXRlcmF0
aW9ucyBvZiBhbiBpbmZpbml0ZWx5IHJlcGVhdGluZyBhbmltYXRpb24gYXNzZXJ0X2VxdWFsczog
SW5pdGlhbCB2YWx1ZSBvZiBpdGVyYXRpb25zIGV4cGVjdGVkIEluZmluaXR5IGJ1dCBnb3QgMQor
UEFTUyBpdGVyYXRpb25zIG9mIGFuIGluZmluaXRlbHkgcmVwZWF0aW5nIGFuaW1hdGlvbiAKIFBB
U1MgZHVyYXRpb24gb2YgYSBuZXcgYW5pbWF0aW9uIAogUEFTUyBkaXJlY3Rpb24gb2YgYSBuZXcg
YW5pbWF0aW9uIAotRkFJTCBlYXNpbmcgb2YgYSBuZXcgYW5pbWF0aW9uIGFzc2VydF9lcXVhbHM6
IEluaXRpYWwgdmFsdWUgb2YgZWFzaW5nIGV4cGVjdGVkICJsaW5lYXIiIGJ1dCBnb3QgImVhc2Ui
CitQQVNTIGVhc2luZyBvZiBhIG5ldyBhbmltYXRpb24gCiBQQVNTIGVuZFRpbWUgb2YgYW4gbmV3
IGFuaW1hdGlvbiAKIFBBU1MgZW5kVGltZSBvZiBhbiBhbmltYXRpb24gd2l0aCBhIG5lZ2F0aXZl
IGRlbGF5IAotRkFJTCBlbmRUaW1lIG9mIGFuIGluZmluaXRlbHkgcmVwZWF0aW5nIGFuaW1hdGlv
biB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnZGl2LmdldEFuaW1hdGlv
bnMoKVswXS5lZmZlY3QnKQorUEFTUyBlbmRUaW1lIG9mIGFuIGluZmluaXRlbHkgcmVwZWF0aW5n
IGFuaW1hdGlvbiAKIFBBU1MgZW5kVGltZSBvZiBhbiBpbmZpbml0ZWx5IHJlcGVhdGluZyB6ZXJv
LWR1cmF0aW9uIGFuaW1hdGlvbiAKIFBBU1MgZW5kVGltZSBvZiBhbiBhbmltYXRpb24gdGhhdCBm
aW5pc2hlcyBiZWZvcmUgaXRzIHN0YXJ0VGltZSAKIFBBU1MgYWN0aXZlRHVyYXRpb24gb2YgYSBu
ZXcgYW5pbWF0aW9uIAotRkFJTCBhY3RpdmVEdXJhdGlvbiBvZiBhbiBpbmZpbml0ZWx5IHJlcGVh
dGluZyBhbmltYXRpb24gYXNzZXJ0X2VxdWFsczogSW5pdGlhbCB2YWx1ZSBvZiBhY3RpdmVEdXJh
dGlvbiBleHBlY3RlZCBJbmZpbml0eSBidXQgZ290IDEwMDAwMAorUEFTUyBhY3RpdmVEdXJhdGlv
biBvZiBhbiBpbmZpbml0ZWx5IHJlcGVhdGluZyBhbmltYXRpb24gCiBQQVNTIGFjdGl2ZUR1cmF0
aW9uIG9mIGFuIGluZmluaXRlbHkgcmVwZWF0aW5nIHplcm8tZHVyYXRpb24gYW5pbWF0aW9uIAog
UEFTUyBhY3RpdmVEdXJhdGlvbiBvZiBhbiBhbmltYXRpb24gd2l0aCB6ZXJvIGl0ZXJhdGlvbnMg
CiBQQVNTIGxvY2FsVGltZSBvZiBhIG5ldyBhbmltYXRpb24gCkBAIC0yNSwxOCArMjUsMTggQEAg
UEFTUyBsb2NhbFRpbWUgb2YgYW4gYW5pbWF0aW9uIGlzIGFsd2F5cyBlcXVhbCB0byBjdXJyZW50
VGltZQogUEFTUyBsb2NhbFRpbWUgcmVmbGVjdHMgcGxheWJhY2tSYXRlIGltbWVkaWF0ZWx5IAog
UEFTUyBsb2NhbFRpbWUgb2YgYW4gQW5pbWF0aW9uRWZmZWN0IHdpdGhvdXQgYW4gQW5pbWF0aW9u
IAogUEFTUyBwcm9ncmVzcyBvZiBhbiBhbmltYXRpb24gd2l0aCBkaWZmZXJlbnQgZmlsbCBtb2Rl
cyAKLUZBSUwgcHJvZ3Jlc3Mgb2YgYW4gaW50ZWdyYWwgcmVwZWF0aW5nIGFuaW1hdGlvbiB3aXRo
IG5vcm1hbCBkaXJlY3Rpb24gYXNzZXJ0X2VxdWFsczogVmFsdWUgb2YgcHJvZ3Jlc3MgZXhwZWN0
ZWQgMC4yNSBidXQgZ290IDAuNDA4NTY2NTA0OTAxMjY5NAorUEFTUyBwcm9ncmVzcyBvZiBhbiBp
bnRlZ3JhbCByZXBlYXRpbmcgYW5pbWF0aW9uIHdpdGggbm9ybWFsIGRpcmVjdGlvbiAKIFBBU1Mg
cHJvZ3Jlc3Mgb2YgYW4gaW5maW5pdGVseSByZXBlYXRpbmcgemVyby1kdXJhdGlvbiBhbmltYXRp
b24gCiBQQVNTIHByb2dyZXNzIG9mIGEgZmluaXRlbHkgcmVwZWF0aW5nIHplcm8tZHVyYXRpb24g
YW5pbWF0aW9uIAogUEFTUyBwcm9ncmVzcyBvZiBhIG5vbi1pbnRlZ3JhbCByZXBlYXRpbmcgemVy
by1kdXJhdGlvbiBhbmltYXRpb24gCiBQQVNTIFByb2dyZXNzIG9mIGEgbm9uLWludGVncmFsIHJl
cGVhdGluZyB6ZXJvLWR1cmF0aW9uIGFuaW1hdGlvbiB3aXRoIHJldmVyc2luZyBkaXJlY3Rpb24g
Ci1GQUlMIHByb2dyZXNzIG9mIGEgbm9uLWludGVncmFsIHJlcGVhdGluZyBhbmltYXRpb24gd2l0
aCBhbHRlcm5hdGUgZGlyZWN0aW9uIGFzc2VydF9lcXVhbHM6IFZhbHVlIG9mIHByb2dyZXNzIGV4
cGVjdGVkIDAuMjUgYnV0IGdvdCAwLjQwODU2NjUwNDkwMTI2OTQKLUZBSUwgcHJvZ3Jlc3Mgb2Yg
YSBub24taW50ZWdyYWwgcmVwZWF0aW5nIGFuaW1hdGlvbiB3aXRoIGFsdGVybmF0ZS1yZXZlcnNp
bmcgZGlyZWN0aW9uIGFzc2VydF9lcXVhbHM6IFZhbHVlIG9mIHByb2dyZXNzIGV4cGVjdGVkIDAu
NzUgYnV0IGdvdCAwLjk2MDQ1OTA3Mjk1MjU4ODkKK1BBU1MgcHJvZ3Jlc3Mgb2YgYSBub24taW50
ZWdyYWwgcmVwZWF0aW5nIGFuaW1hdGlvbiB3aXRoIGFsdGVybmF0ZSBkaXJlY3Rpb24gCitQQVNT
IHByb2dyZXNzIG9mIGEgbm9uLWludGVncmFsIHJlcGVhdGluZyBhbmltYXRpb24gd2l0aCBhbHRl
cm5hdGUtcmV2ZXJzaW5nIGRpcmVjdGlvbiAKIFBBU1MgcHJvZ3Jlc3Mgb2YgYSBub24taW50ZWdy
YWwgcmVwZWF0aW5nIHplcm8tZHVyYXRpb24gYW5pbWF0aW9uIHdpdGggYWx0ZXJuYXRlIGRpcmVj
dGlvbiAKIFBBU1MgcHJvZ3Jlc3Mgb2YgYSBub24taW50ZWdyYWwgcmVwZWF0aW5nIHplcm8tZHVy
YXRpb24gYW5pbWF0aW9uIHdpdGggYWx0ZXJuYXRlLXJldmVyc2UgZGlyZWN0aW9uIAogUEFTUyBj
dXJyZW50SXRlcmF0aW9uIG9mIGEgbmV3IGFuaW1hdGlvbiB3aXRoIG5vIGJhY2t3YXJkcyBmaWxs
IGlzIHVucmVzb2x2ZWQgaW4gYmVmb3JlIHBoYXNlIAogUEFTUyBjdXJyZW50SXRlcmF0aW9uIG9m
IGEgbmV3IGFuaW1hdGlvbiBpcyB6ZXJvIAotRkFJTCBjdXJyZW50SXRlcmF0aW9uIG9mIGFuIGlu
ZmluaXRlbHkgcmVwZWF0aW5nIHplcm8tZHVyYXRpb24gYW5pbWF0aW9uIGFzc2VydF9lcXVhbHM6
IEluaXRpYWwgdmFsdWUgb2YgY3VycmVudEl0ZXJhdGlvbiBpbiBhZnRlciBwaGFzZSBleHBlY3Rl
ZCBJbmZpbml0eSBidXQgZ290IDAKK1BBU1MgY3VycmVudEl0ZXJhdGlvbiBvZiBhbiBpbmZpbml0
ZWx5IHJlcGVhdGluZyB6ZXJvLWR1cmF0aW9uIGFuaW1hdGlvbiAKIFBBU1MgY3VycmVudEl0ZXJh
dGlvbiBvZiBhIGZpbml0ZWx5IHJlcGVhdGluZyB6ZXJvLWR1cmF0aW9uIGFuaW1hdGlvbiAKIFBB
U1MgY3VycmVudEl0ZXJhdGlvbiBvZiBhbiBhbmltYXRpb24gd2l0aCBhIG5vbi1pbnRlZ3JhbCBp
dGVyYXRpb24gY291bnQgCiBQQVNTIGN1cnJlbnRJdGVyYXRpb24gb2YgYW4gYW5pbWF0aW9uIHdp
dGggYW4gaW50ZWdyYWwgaXRlcmF0aW9uIGNvdW50IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvbW96aWxsYS9jc3MtYW5pbWF0aW9ucy90ZXN0X2FuaW1hdGlvbi1jdXJyZW50dGlt
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmltYXRp
b25zL3Rlc3RfYW5pbWF0aW9uLWN1cnJlbnR0aW1lLWV4cGVjdGVkLnR4dAppbmRleCBhZjBiMWY2
N2VmZDVjYmEzMzg4NmMzODBlY2EzMWU2ZDUwODY2NTc0Li5iMmI2ZDQwMjMyYjM2NWEyOTEzMTA3
OGQwNGM0YTI1NjBiYmY0MmJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3pp
bGxhL2Nzcy1hbmltYXRpb25zL3Rlc3RfYW5pbWF0aW9uLWN1cnJlbnR0aW1lLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25zL3Rlc3Rf
YW5pbWF0aW9uLWN1cnJlbnR0aW1lLWV4cGVjdGVkLnR4dApAQCAtMTEsOCArMTEsOCBAQCBQQVNT
IFJlZHVuZGFudCBjaGFuZ2UsIGFmdGVyIC0+IGFjdGl2ZSwgdGhlbiBiYWNrCiBQQVNTIFNlZWtp
bmcgZmluaXNoZWQgLT4gcGF1c2VkIGRpc3BhdGNoZXMgYW5pbWF0aW9uc3RhcnQgCiBQQVNTIFNl
dHRpbmcgY3VycmVudFRpbWUgdG8gbnVsbCAKIFBBU1MgQW5pbWF0aW9uLmN1cnJlbnRUaW1lIGFm
dGVyIHBhdXNpbmcgCi1GQUlMIEFuaW1hdGlvbi5jdXJyZW50VGltZSBjbGFtcGluZyBhc3NlcnRf
ZXF1YWxzOiBBbmltYXRpb24uY3VycmVudFRpbWUgc2hvdWxkIG5vdCBjb250aW51ZSB0byBpbmNy
ZWFzZSBhZnRlciB0aGUgYW5pbWF0aW9uIGhhcyBmaW5pc2hlZCBleHBlY3RlZCAxMDAwMDAgYnV0
IGdvdCAxMDAwMjYKLUZBSUwgQW5pbWF0aW9uLmN1cnJlbnRUaW1lIGNsYW1waW5nIGZvciByZXZl
cnNlZCBhbmltYXRpb24gYXNzZXJ0X2VxdWFsczogQW5pbWF0aW9uLmN1cnJlbnRUaW1lIHNob3Vs
ZCBub3QgY29udGludWUgdG8gZGVjcmVhc2UgYWZ0ZXIgYW4gYW5pbWF0aW9uIHJ1bm5pbmcgaW4g
cmV2ZXJzZSBoYXMgZmluaXNoZWQgYW5kIGN1cnJlbnRUaW1lIGlzIHplcm8gZXhwZWN0ZWQgMCBi
dXQgZ290IC0yMgorUEFTUyBBbmltYXRpb24uY3VycmVudFRpbWUgY2xhbXBpbmcgCitQQVNTIEFu
aW1hdGlvbi5jdXJyZW50VGltZSBjbGFtcGluZyBmb3IgcmV2ZXJzZWQgYW5pbWF0aW9uIAogUEFT
UyBBbmltYXRpb24uY3VycmVudFRpbWUgYWZ0ZXIgY2FuY2VsbGluZyAKIFBBU1MgQWZ0ZXIgYWJv
cnRpbmcgYSBwYXVzZSB3aGVuIGZpbmlzaGVkLCB0aGUgY2FsbCB0byBwbGF5KCkgc2hvdWxkIHJl
d2luZCB0aGUgY3VycmVudCB0aW1lIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25zL3Rlc3RfYW5pbWF0aW9uLWZpbmlzaC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25zL3Rlc3RfYW5p
bWF0aW9uLWZpbmlzaC1leHBlY3RlZC50eHQKaW5kZXggYTY3ODAxMDU1ODFkMmY2N2UxNjVhZDY2
MmJhZDk1MjY4YmEwZTUwNi4uNWE3Y2Q1ZmQzOGRkOGE3ZGUwNGFmNjU4MzZjNmMxZTQ2NmEyYjc3
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9jc3MtYW5pbWF0aW9u
cy90ZXN0X2FuaW1hdGlvbi1maW5pc2gtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL21vemlsbGEvY3NzLWFuaW1hdGlvbnMvdGVzdF9hbmltYXRpb24tZmluaXNoLWV4cGVj
dGVkLnR4dApAQCAtMSw2ICsxLDYgQEAKIAotRkFJTCBUZXN0IGV4Y2VwdGlvbnMgd2hlbiBmaW5p
c2hpbmcgaW5maW5pdGUgYW5pbWF0aW9uIGFzc2VydF90cnVlOiBFeHBlY3QgSW52YWxpZFN0YXRl
RXJyb3IgZXhjZXB0aW9uIHRyeWluZyB0byBmaW5pc2ggYW4gaW5maW5pdGUgYW5pbWF0aW9uIGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlMIFRlc3QgZmluaXNoKCkgd2hpbGUgcGF1c2VkIHVu
ZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdhbmltYXRpb24ucmVhZHknKQot
RkFJTCBUZXN0IGZpbmlzaCgpIHdoaWxlIHBhdXNlLXBlbmRpbmcgd2l0aCBwb3NpdGl2ZSBwbGF5
YmFja1JhdGUgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ2FuaW1hdGlv
bi5wbGF5YmFja1JhdGUgPSAyJykKLUZBSUwgVGVzdCBmaW5pc2goKSB3aGlsZSBwYXVzZS1wZW5k
aW5nIHdpdGggbmVnYXRpdmUgcGxheWJhY2tSYXRlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0
IChldmFsdWF0aW5nICdhbmltYXRpb24ucGxheWJhY2tSYXRlID0gLTInKQorUEFTUyBUZXN0IGV4
Y2VwdGlvbnMgd2hlbiBmaW5pc2hpbmcgaW5maW5pdGUgYW5pbWF0aW9uIAorUEFTUyBUZXN0IGZp
bmlzaCgpIHdoaWxlIHBhdXNlZCAKK1BBU1MgVGVzdCBmaW5pc2goKSB3aGlsZSBwYXVzZS1wZW5k
aW5nIHdpdGggcG9zaXRpdmUgcGxheWJhY2tSYXRlIAorUEFTUyBUZXN0IGZpbmlzaCgpIHdoaWxl
IHBhdXNlLXBlbmRpbmcgd2l0aCBuZWdhdGl2ZSBwbGF5YmFja1JhdGUgCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL21vemlsbGEvY3NzLWFuaW1hdGlvbnMvdGVzdF9hbmltYXRp
b24tcGF1c2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nz
cy1hbmltYXRpb25zL3Rlc3RfYW5pbWF0aW9uLXBhdXNpbmctZXhwZWN0ZWQudHh0CmluZGV4IDRm
NmZhNWIwNGRkZDg0NzY2ZWQ5NDE0Mjg3ODZjODg4ZmIyOTVmZDAuLmRhMjgzOGM5YWIyMjk2MTcz
ZGY4NjhkZjdlOWU3ZGFjYTY4MzQxNjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L21vemlsbGEvY3NzLWFuaW1hdGlvbnMvdGVzdF9hbmltYXRpb24tcGF1c2luZy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9jc3MtYW5pbWF0aW9ucy90ZXN0
X2FuaW1hdGlvbi1wYXVzaW5nLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAotRkFJTCBw
bGF5KCkgb3ZlcnJpZGVzIGFuaW1hdGlvbi1wbGF5LXN0YXRlIHVuZGVmaW5lZCBpcyBub3QgYW4g
b2JqZWN0IChldmFsdWF0aW5nICdhbmltYXRpb24ucGxheScpCitQQVNTIHBsYXkoKSBvdmVycmlk
ZXMgYW5pbWF0aW9uLXBsYXktc3RhdGUgCiBGQUlMIHBhdXNlKCkgb3ZlcnJpZGVzIGFuaW1hdGlv
bi1wbGF5LXN0YXRlIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdhbmlt
YXRpb24ucGF1c2UnKQogRkFJTCBwbGF5KCkgaXMgb3ZlcnJpZGRlbiBieSBsYXRlciBzZXR0aW5n
ICJhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkIiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVj
dCAoZXZhbHVhdGluZyAnYW5pbWF0aW9uLnBsYXknKQogRkFJTCBwbGF5KCkgZmx1c2hlcyBwZW5k
aW5nIGNoYW5nZXMgdG8gYW5pbWF0aW9uLXBsYXktc3RhdGUgZmlyc3QgYXNzZXJ0X2dyZWF0ZXJf
dGhhbjogUGxheWluZyB2YWx1ZSBvZiBtYXJnaW4tbGVmdCBpcyBpbmNyZWFzaW5nIGV4cGVjdGVk
IGEgbnVtYmVyIGdyZWF0ZXIgdGhhbiAwIGJ1dCBnb3QgMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvbW96aWxsYS9jc3MtYW5pbWF0aW9ucy90ZXN0X2FuaW1hdGlvbi1wbGF5c3Rh
dGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9jc3MtYW5pbWF0
aW9ucy90ZXN0X2FuaW1hdGlvbi1wbGF5c3RhdGUtZXhwZWN0ZWQudHh0CmluZGV4IDc2OTAzYzA2
YmNiOTk2OTU0OTQ3YWZlMzFkODFiYTIwY2FkY2M1NjUuLjQ3ZDdhZjgzZDk1MDhkNmM2ZWQ3ZTZj
MzI2ZmJmNjBmNzM4YWIzMWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL21vemls
bGEvY3NzLWFuaW1hdGlvbnMvdGVzdF9hbmltYXRpb24tcGxheXN0YXRlLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25zL3Rlc3RfYW5p
bWF0aW9uLXBsYXlzdGF0ZS1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiAKIFBBU1MgQW5p
bWF0aW9uIHJldHVybnMgY29ycmVjdCBwbGF5U3RhdGUgd2hlbiBydW5uaW5nIAotRkFJTCBBbmlt
YXRpb24gcmV0dXJucyBjb3JyZWN0IHBsYXlTdGF0ZSB3aGVuIHBhdXNlZCB1bmRlZmluZWQgaXMg
bm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnYW5pbWF0aW9uLnBsYXlTdGF0ZScpCitQQVNTIEFu
aW1hdGlvbiByZXR1cm5zIGNvcnJlY3QgcGxheVN0YXRlIHdoZW4gcGF1c2VkIAogUEFTUyBBbmlt
YXRpb24ucGxheVN0YXRlIHVwZGF0ZXMgd2hlbiBwYXVzZWQgYnkgc2NyaXB0IAotRkFJTCBBbmlt
YXRpb24ucGxheVN0YXRlIHVwZGF0ZXMgd2hlbiByZXN1bWVkIGJ5IHNldHRpbmcgc3R5bGUgdW5k
ZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ2FuaW1hdGlvbi5wbGF5U3RhdGUn
KQorRkFJTCBBbmltYXRpb24ucGxheVN0YXRlIHVwZGF0ZXMgd2hlbiByZXN1bWVkIGJ5IHNldHRp
bmcgc3R5bGUgYXNzZXJ0X2VxdWFsczogQW5pbWF0aW9uLnBsYXlTdGF0ZSByZXBvcnRzIHJ1bm5p
bmcgYWZ0ZXIgdXBkYXRpbmcgYW5pbWF0aW9uLXBsYXktc3RhdGUgKGdvdDogcGF1c2VkKSBleHBl
Y3RlZCAicnVubmluZyIgYnV0IGdvdCAicGF1c2VkIgogUEFTUyBBbmltYXRpb24gcmV0dXJucyBj
b3JyZWN0IHBsYXlTdGF0ZSB3aGVuIGNhbmNlbGxlZCAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvbW96aWxsYS9jc3MtYW5pbWF0aW9ucy90ZXN0X2FuaW1hdGlvbi1yZWFkeS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25z
L3Rlc3RfYW5pbWF0aW9uLXJlYWR5LWV4cGVjdGVkLnR4dAppbmRleCAwMmEyNzdmZjY1ODE5MzVi
OTNkYThkNmUxY2I5ZTlmMGNjOWEwZjA1Li40MzdhN2IxN2E3NGIzOWJiMGVkYmZmMDU4ZjM2ZTM0
ZGIxNGE5NjQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy1h
bmltYXRpb25zL3Rlc3RfYW5pbWF0aW9uLXJlYWR5LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25zL3Rlc3RfYW5pbWF0aW9uLXJlYWR5
LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAotRkFJTCBBIG5ldyByZWFkeSBwcm9taXNl
IGlzIGNyZWF0ZWQgd2hlbiBzZXR0aW5nIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBydW5uaW5nIHVu
ZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdhbmltYXRpb24ucmVhZHknKQor
RkFJTCBBIG5ldyByZWFkeSBwcm9taXNlIGlzIGNyZWF0ZWQgd2hlbiBzZXR0aW5nIGFuaW1hdGlv
bi1wbGF5LXN0YXRlOiBydW5uaW5nIGFzc2VydF9ub3RfZXF1YWxzOiBBZnRlciB1cGRhdGluZyBh
bmltYXRpb24tcGxheS1zdGF0ZSBhIG5ldyByZWFkeSBwcm9taXNlIG9iamVjdCBpcyBjcmVhdGVk
IGdvdCBkaXNhbGxvd2VkIHZhbHVlIG9iamVjdCAiW29iamVjdCBQcm9taXNlXSIKIFBBU1MgcmVh
ZHkgcHJvbWlzZSBpcyByZWplY3RlZCB3aGVuIGFuIGFuaW1hdGlvbiBpcyBjYW5jZWxlZCBieSBy
ZXNldHRpbmcgdGhlIGFuaW1hdGlvbiBwcm9wZXJ0eSAKIFBBU1MgcmVhZHkgcHJvbWlzZSBpcyBy
ZWplY3RlZCB3aGVuIGFuIGFuaW1hdGlvbiBpcyBjYW5jZWxsZWQgYnkgdXBkYXRpbmcgdGhlIGFu
aW1hdGlvbiBwcm9wZXJ0eSAKIEZBSUwgQSBuZXcgcmVhZHkgcHJvbWlzZSBpcyBjcmVhdGVkIHdo
ZW4gc2V0dGluZyBhbmltYXRpb24tcGxheS1zdGF0ZTogcGF1c2VkIGFzc2VydF9ub3RfZXF1YWxz
OiBBIG5ldyBQcm9taXNlIG9iamVjdCBpcyBnZW5lcmF0ZWQgd2hlbiBzZXR0aW5nIGFuaW1hdGlv
bi1wbGF5LXN0YXRlOiBwYXVzZWQgZ290IGRpc2FsbG93ZWQgdmFsdWUgb2JqZWN0ICJbb2JqZWN0
IFByb21pc2VdIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9jc3Mt
YW5pbWF0aW9ucy90ZXN0X2FuaW1hdGlvbi1zdGFydHRpbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9jc3MtYW5pbWF0aW9ucy90ZXN0X2FuaW1hdGlvbi1zdGFy
dHRpbWUtZXhwZWN0ZWQudHh0CmluZGV4IDZmNGY4MDNhZWIwYWFlN2NkMDMwNTQ1MzExZjg3ZjFl
ZmY2M2U3ZGEuLmVhNzcyNDU5ODNlZGQ5NmUyNjMxMjY5ZGEzNjJjNDdiOWU3ODcwNGUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL21vemlsbGEvY3NzLWFuaW1hdGlvbnMvdGVzdF9h
bmltYXRpb24tc3RhcnR0aW1lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25zL3Rlc3RfYW5pbWF0aW9uLXN0YXJ0dGltZS1leHBlY3Rl
ZC50eHQKQEAgLTEsOCArMSw4IEBACiAKIFBBU1Mgc3RhcnRUaW1lIG9mIGEgbmV3bHkgY3JlYXRl
ZCAocGxheS1wZW5kaW5nKSBhbmltYXRpb24gaXMgdW5yZXNvbHZlZCAKLUZBSUwgc3RhcnRUaW1l
IG9mIGEgbmV3bHkgY3JlYXRlZCAocGF1c2UtcGVuZGluZykgYW5pbWF0aW9uIGlzIHVucmVzb2x2
ZWQgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ2FuaW1hdGlvbi5zdGFy
dFRpbWUnKQorUEFTUyBzdGFydFRpbWUgb2YgYSBuZXdseSBjcmVhdGVkIChwYXVzZS1wZW5kaW5n
KSBhbmltYXRpb24gaXMgdW5yZXNvbHZlZCAKIFBBU1Mgc3RhcnRUaW1lIGlzIHJlc29sdmVkIHdo
ZW4gcnVubmluZyAKLUZBSUwgc3RhcnRUaW1lIGlzIHVucmVzb2x2ZWQgd2hlbiBwYXVzZWQgdW5k
ZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ2FuaW1hdGlvbi5yZWFkeScpCitQ
QVNTIHN0YXJ0VGltZSBpcyB1bnJlc29sdmVkIHdoZW4gcGF1c2VkIAogUEFTUyBzdGFydFRpbWUg
d2hpbGUgcGF1c2UtcGVuZGluZyBhbmQgcGxheS1wZW5kaW5nIAogUEFTUyBzdGFydFRpbWUgd2hp
bGUgcGxheS1wZW5kaW5nIGZyb20gZmluaXNoZWQgc3RhdGUgCiBQQVNTIHN0YXJ0VGltZSB3aGls
ZSBwbGF5LXBlbmRpbmcgZnJvbSBmaW5pc2hlZCBzdGF0ZSB1c2luZyBmaW5pc2goKSAKQEAgLTE3
LDYgKzE3LDYgQEAgUEFTUyBSZWR1bmRhbnQgY2hhbmdlLCBhY3RpdmUgLT4gYWZ0ZXIsIHRoZW4g
YmFjawogUEFTUyBSZWR1bmRhbnQgY2hhbmdlLCBhZnRlciAtPiBiZWZvcmUsIHRoZW4gYmFjayAK
IFBBU1MgUmVkdW5kYW50IGNoYW5nZSwgYWZ0ZXIgLT4gYWN0aXZlLCB0aGVuIGJhY2sgCiBQQVNT
IFNldHRpbmcgc3RhcnRUaW1lIHRvIG51bGwgCi1GQUlMIEFuaW1hdGlvbi5zdGFydFRpbWUgYWZ0
ZXIgcGF1c2luZyBhc3NlcnRfZXF1YWxzOiBBbmltYXRpb24ucGxheVN0YXRlIGlzICJwYXVzZWQi
IGFmdGVyIHBhdXNlKCkgY2FsbCBleHBlY3RlZCAicGF1c2VkIiBidXQgZ290ICJydW5uaW5nIgor
UEFTUyBBbmltYXRpb24uc3RhcnRUaW1lIGFmdGVyIHBhdXNpbmcgCiBQQVNTIEFuaW1hdGlvbi5z
dGFydFRpbWUgYWZ0ZXIgY2FuY2VsbGluZyAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvbW96aWxsYS9jc3MtYW5pbWF0aW9ucy90ZXN0X2RvY3VtZW50LWdldC1hbmltYXRpb25z
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL21vemlsbGEvY3NzLWFuaW1hdGlv
bnMvdGVzdF9kb2N1bWVudC1nZXQtYW5pbWF0aW9ucy1leHBlY3RlZC50eHQKaW5kZXggMWU1MjY5
YzEzNmFkYzJhODg2NWY2ZWY2NGJiZTM3ZmU0NzYwNGJjNS4uNDhmMzI1MjVjY2ZlYTVjYjNkNjU3
MDhjZTA5ODkzNTc4ZThkMjdhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96
aWxsYS9jc3MtYW5pbWF0aW9ucy90ZXN0X2RvY3VtZW50LWdldC1hbmltYXRpb25zLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25zL3Rl
c3RfZG9jdW1lbnQtZ2V0LWFuaW1hdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0zLDcgKzMsNyBAQCBQ
QVNTIGdldEFuaW1hdGlvbnMgZm9yIG5vbi1hbmltYXRlZCBjb250ZW50CiBQQVNTIGdldEFuaW1h
dGlvbnMgZm9yIENTUyBBbmltYXRpb25zIAogUEFTUyBPcmRlciBvZiBDU1MgQW5pbWF0aW9ucyAt
IHdpdGhpbiBhbiBlbGVtZW50IAogRkFJTCBPcmRlciBvZiBDU1MgQW5pbWF0aW9ucyAtIGFjcm9z
cyBlbGVtZW50cyBhc3NlcnRfZXF1YWxzOiBPcmRlciBvZiBmaXJzdCBhbmltYXRpb24gcmV0dXJu
ZWQgYWZ0ZXIgdHJlZSBzdXJnZXJ5IGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8ZGl2IHN0eWxlPSJh
bmltYXRpb246IGFuaW1MZWZ0IDEwMHMiPjxkaXYgc3R5bGU9ImFuaW1hdGkuLi4gYnV0IGdvdCBF
bGVtZW50IG5vZGUgPGRpdiBzdHlsZT0iYW5pbWF0aW9uOiBhbmltTGVmdCAxMDBzIj48L2Rpdj4K
LUZBSUwgT3JkZXIgb2YgQ1NTIEFuaW1hdGlvbnMgLSBhY3Jvc3MgYW5kIHdpdGhpbiBlbGVtZW50
cyBhc3NlcnRfZXF1YWxzOiBnZXRBbmltYXRpb25zIHJldHVybnMgYWxsIHJ1bm5pbmcgQ1NTIEFu
aW1hdGlvbnMgYWZ0ZXIgbWFraW5nIGNoYW5nZXMgZXhwZWN0ZWQgNCBidXQgZ290IDYKK1BBU1Mg
T3JkZXIgb2YgQ1NTIEFuaW1hdGlvbnMgLSBhY3Jvc3MgYW5kIHdpdGhpbiBlbGVtZW50cyAKIEZB
SUwgT3JkZXIgb2YgQ1NTIEFuaW1hdGlvbnMgLSBtYXJrdXAtYm91bmQgdnMgZnJlZSBhbmltYXRp
b25zIGFzc2VydF9lcXVhbHM6IGdldEFuaW1hdGlvbnMgcmV0dXJucyBtYXJrdXAtYm91bmQgYW5k
IGZyZWUgYW5pbWF0aW9ucyBleHBlY3RlZCAyIGJ1dCBnb3QgMQogRkFJTCBPcmRlciBvZiBDU1Mg
QW5pbWF0aW9ucyAtIGZyZWUgYW5pbWF0aW9ucyBhc3NlcnRfZXF1YWxzOiBnZXRBbmltYXRpb25z
IHJldHVybnMgZnJlZSBhbmltYXRpb25zIGV4cGVjdGVkIDIgYnV0IGdvdCAwCiBGQUlMIE9yZGVy
IG9mIENTUyBBbmltYXRpb25zIGFuZCBDU1MgVHJhbnNpdGlvbnMgYXNzZXJ0X2VxdWFsczogQm90
aCBDU1MgYW5pbWF0aW9ucyBhbmQgdHJhbnNpdGlvbnMgYXJlIHJldHVybmVkIGV4cGVjdGVkIDIg
YnV0IGdvdCAxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy1h
bmltYXRpb25zL3Rlc3RfZWZmZWN0LXRhcmdldC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25zL3Rlc3RfZWZmZWN0LXRhcmdldC1leHBlY3Rl
ZC50eHQKaW5kZXggNmM0ZjM5ZGI5ZmRkYzViOTBhNmY3ZGQ2YWI4MWNlYTdiMWU4MmM3Zi4uNjUw
NDU5MWVmOGIwNmE0NGUyYTI2N2QyMGVjYmEwODA5NDY3MjUyNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9jc3MtYW5pbWF0aW9ucy90ZXN0X2VmZmVjdC10YXJnZXQt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL21vemlsbGEvY3NzLWFuaW1h
dGlvbnMvdGVzdF9lZmZlY3QtdGFyZ2V0LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAog
UEFTUyBSZXR1cm5lZCBDU1MgYW5pbWF0aW9ucyBoYXZlIHRoZSBjb3JyZWN0IGVmZmVjdCB0YXJn
ZXQgCiBQQVNTIGVmZmVjdC50YXJnZXQgc2hvdWxkIHJldHVybiB0aGUgc2FtZSBDU1NQc2V1ZG9F
bGVtZW50IG9iamVjdCBlYWNoIHRpbWUgCi1GQUlMIGVmZmVjdC50YXJnZXQgZnJvbSB0aGUgc2Ny
aXB0LWdlbmVyYXRlZCBhbmltYXRpb24gc2hvdWxkIHJldHVybiB0aGUgc2FtZSBDU1NQc2V1ZG9F
bGVtZW50IG9iamVjdCBhcyB0aGF0IGZyb20gdGhlIENTUyBnZW5lcmF0ZWQgYW5pbWF0aW9uIGFz
c2VydF9lcXVhbHM6IEdvdCBhbmltYXRpb25zIHJ1bm5pbmcgb24gOjphZnRlciBwc2V1ZG8gZWxl
bWVudCBleHBlY3RlZCAyIGJ1dCBnb3QgNAorUEFTUyBlZmZlY3QudGFyZ2V0IGZyb20gdGhlIHNj
cmlwdC1nZW5lcmF0ZWQgYW5pbWF0aW9uIHNob3VsZCByZXR1cm4gdGhlIHNhbWUgQ1NTUHNldWRv
RWxlbWVudCBvYmplY3QgYXMgdGhhdCBmcm9tIHRoZSBDU1MgZ2VuZXJhdGVkIGFuaW1hdGlvbiAK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9jc3MtYW5pbWF0aW9u
cy90ZXN0X2V2ZW50LWRpc3BhdGNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L21vemlsbGEvY3NzLWFuaW1hdGlvbnMvdGVzdF9ldmVudC1kaXNwYXRjaC1leHBlY3RlZC50eHQK
aW5kZXggYzA2ZjgwZGQ3ZWMxNDY0NTAxNmE5NDRjNjg5N2U1NTFiNGQyNDkwMi4uNTIyMDgxN2Ex
OGEzN2I3ZjBjZTlkMDQzZjAyOWI5NzhlM2MxNGQwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvbW96aWxsYS9jc3MtYW5pbWF0aW9ucy90ZXN0X2V2ZW50LWRpc3BhdGNoLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25z
L3Rlc3RfZXZlbnQtZGlzcGF0Y2gtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMjMgQEAKLSNQSUQg
VU5SRVNQT05TSVZFIC0gY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRldmVsb3BtZW50IChw
aWQgMTM1NTkpCi1GQUlMOiBUaW1lZCBvdXQgd2FpdGluZyBmb3Igbm90aWZ5RG9uZSB0byBiZSBj
YWxsZWQKKworUEFTUyBJZGxlIC0+IEFjdGl2ZSAKK1BBU1MgSWRsZSAtPiBBZnRlciAKK1BBU1Mg
QmVmb3JlIC0+IEFjdGl2ZSAKK1BBU1MgQmVmb3JlIC0+IEFmdGVyIAorUEFTUyBBY3RpdmUgLT4g
SWRsZSwgZGlzcGxheTogbm9uZSAKK1BBU1MgQWN0aXZlIC0+IElkbGUsIHNldHRpbmcgQW5pbWF0
aW9uLnRpbWVsaW5lID0gbnVsbCAKK1BBU1MgQWN0aXZlIC0+IElkbGUsIGNhbGxpbmcgQW5pbWF0
aW9uLmNhbmNlbCgpIAorUEFTUyBBY3RpdmUgLT4gQmVmb3JlIAorUEFTUyBBY3RpdmUgLT4gQWZ0
ZXIgCitQQVNTIEFmdGVyIC0+IEJlZm9yZSAKK1BBU1MgQWZ0ZXIgLT4gQWN0aXZlIAorUEFTUyBB
Y3RpdmUgLT4gQWN0aXZlIChmb3J3YXJkcykgCitQQVNTIEFjdGl2ZSAtPiBBY3RpdmUgKGJhY2t3
YXJkcykgCitQQVNTIEFjdGl2ZSAtPiBJZGxlIC0+IEFjdGl2ZTogYW5pbWF0aW9uc3RhcnQgaXMg
ZmlyZWQgYnkgcmVzdGFydGluZyBhbmltYXRpb24gCitQQVNTIE5lZ2F0aXZlIHBsYXliYWNrUmF0
ZSBzYW5pdHkgdGVzdChCZWZvcmUgLT4gQWN0aXZlIC0+IEJlZm9yZSkgCitQQVNTIENhbGwgQW5p
bWF0aW9uLmNhbmNlbCBhZnRlciBjYW5jZWxsaW5nIGFuaW1hdGlvbi4gCitQQVNTIFJlc3RhcnQg
YW5pbWF0aW9uIGFmdGVyIGNhbmNlbGxpbmcgYW5pbWF0aW9uIGltbWVkaWF0ZWx5LiAKK1BBU1Mg
Q2FsbCBBbmltYXRpb24uY2FuY2VsIGFmdGVyIHJlc3RhcnRpbmcgYW5pbWF0aW9uIGltbWVkaWF0
ZWx5LiAKK1BBU1MgU2V0IHRpbWVsaW5lIGFuZCBwbGF5IHRyYW5zaXRpb24gYWZ0ZXIgY2xlYXJp
bmcgdGhlIHRpbWVsaW5lLiAKK1BBU1MgU2V0IG51bGwgdGFyZ2V0IGVmZmVjdCBhZnRlciBjYW5j
ZWxsaW5nIHRoZSBhbmltYXRpb24uIAorUEFTUyBDYW5jZWwgdGhlIGFuaW1hdGlvbiBhZnRlciBj
bGVhcmluZyB0aGUgdGFyZ2V0IGVmZmVjdC4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL21vemlsbGEvY3NzLWFuaW1hdGlvbnMvdGVzdF9ldmVudC1vcmRlci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25zL3Rlc3RfZXZl
bnQtb3JkZXItZXhwZWN0ZWQudHh0CmluZGV4IGQ2ZDczMTE0MzA2MzQ0ZDYxNDc5NzgwNWVhYzZk
MDQ4NDcxYjI3MGEuLmJmZDMwMzE1Nzk5MzJiNDA5OGE1MjhmODlhNWUyOWY0ZTU4YWQwNzYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL21vemlsbGEvY3NzLWFuaW1hdGlvbnMvdGVz
dF9ldmVudC1vcmRlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96
aWxsYS9jc3MtYW5pbWF0aW9ucy90ZXN0X2V2ZW50LW9yZGVyLWV4cGVjdGVkLnR4dApAQCAtMSwz
ICsxLDYgQEAKLSNQSUQgVU5SRVNQT05TSVZFIC0gY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50
LkRldmVsb3BtZW50IChwaWQgMTM1NjMpCi1GQUlMOiBUaW1lZCBvdXQgd2FpdGluZyBmb3Igbm90
aWZ5RG9uZSB0byBiZSBjYWxsZWQKKworUEFTUyBUZXN0IHNhbWUgZXZlbnRzIGFyZSBvcmRlcmVk
IGJ5IGVsZW1lbnRzLiAKK0ZBSUwgVGVzdCBzdGFydCBhbmQgaXRlcmF0aW9uIGV2ZW50cyBhcmUg
b3JkZXJlZCBieSB0aW1lLiBhc3NlcnRfZXF1YWxzOiBFdmVudCB0eXBlIHNob3VsZCBtYXRjaCBl
eHBlY3RlZCAiYW5pbWF0aW9uc3RhcnQiIGJ1dCBnb3QgImFuaW1hdGlvbml0ZXJhdGlvbiIKK0ZB
SUwgVGVzdCBpdGVyYXRpb24gYW5kIGVuZCBldmVudHMgYXJlIG9yZGVyZWQgYnkgdGltZS4gYXNz
ZXJ0X2VxdWFsczogRXZlbnQgdHlwZSBzaG91bGQgbWF0Y2ggZXhwZWN0ZWQgImFuaW1hdGlvbmVu
ZCIgYnV0IGdvdCAiYW5pbWF0aW9uaXRlcmF0aW9uIgorRkFJTCBUZXN0IHN0YXJ0IGFuZCBlbmQg
ZXZlbnRzIGFyZSBzb3J0ZWQgY29ycmVjdGx5IHdoZW4gZmlyZWQgc2ltdWx0YW5lb3VzbHkgYXNz
ZXJ0X2VxdWFsczogRXZlbnQgdGFyZ2V0IHNob3VsZCBtYXRjaCBleHBlY3RlZCBFbGVtZW50IG5v
ZGUgPGRpdiBzdHlsZT0iYW5pbWF0aW9uOiBhbmltIDEwMHMgMTAwcyI+PC9kaXY+IGJ1dCBnb3Qg
RWxlbWVudCBub2RlIDxkaXYgc3R5bGU9ImFuaW1hdGlvbjogYW5pbSAxMDBzIDIiPjwvZGl2Pgog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25z
L3Rlc3Rfc2V0dGluZy1lZmZlY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
bW96aWxsYS9jc3MtYW5pbWF0aW9ucy90ZXN0X3NldHRpbmctZWZmZWN0LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mMDAwOWIzYjBiMjhlMWZkY2Y5ZTIxNjYzMzZhMDAzM2RhYTlhYzgyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9jc3MtYW5pbWF0aW9u
cy90ZXN0X3NldHRpbmctZWZmZWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKKworUEFT
UyBTZXR0aW5nIGEgbnVsbCBlZmZlY3Qgb24gYSBydW5uaW5nIGFuaW1hdGlvbiBmaXJlcyBhbiBh
bmltYXRpb25lbmQgZXZlbnQgCitQQVNTIFJlcGxhY2luZyBhbiBhbmltYXRpb24ncyBlZmZlY3Qg
d2l0aCBhbiBlZmZlY3QgdGhhdCB0YXJnZXRzIGEgZGlmZmVyZW50IHByb3BlcnR5IHNob3VsZCB1
cGRhdGUgYm90aCBwcm9wZXJ0aWVzIAorUEFTUyBSZXBsYWNpbmcgYW4gYW5pbWF0aW9uJ3MgZWZm
ZWN0IHdpdGggYSBzaG9ydGVyIG9uZSB0aGF0IHNob3VsZCBoYXZlIGFscmVhZHkgZmluaXNoZWQs
IHRoZSBhbmltYXRpb24gZmluaXNoZXMgaW1tZWRpYXRlbHkgCitQQVNTIEEgcGxheS1wZW5kaW5n
IGFuaW1hdGlvbidzIGVmZmVjdCB3aG9zZSBlZmZlY3QgaXMgcmVwbGFjZWQgc3RpbGwgZXhpdHMg
dGhlIHBlbmRpbmcgc3RhdGUgCitQQVNTIFRoZSBldmVudCBpcyBkaXNwYXRjaGVkIGF0IHRoZSBv
cmlnaW5hbCBlbGVtZW50IGV2ZW4gYWZ0ZXIgc2V0dGluZyBhbiBlZmZlY3Qgd2l0aCBhIGRpZmZl
cmVudCB0YXJnZXQgZWxlbWVudCAKK1BBU1MgQWZ0ZXIgcmVwbGFjaW5nIGEgZmluaXNoZWQgYW5p
bWF0aW9uJ3MgZWZmZWN0IHdpdGggYSBsb25nZXIgb25lIGl0IGZpcmVzIGFuIGFuaW1hdGlvbnN0
YXJ0IGV2ZW50IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nz
cy10cmFuc2l0aW9ucy90ZXN0X2FuaW1hdGlvbi1jYW5jZWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9jc3MtdHJhbnNpdGlvbnMvdGVzdF9hbmltYXRpb24tY2Fu
Y2VsLWV4cGVjdGVkLnR4dAppbmRleCA1NjBkODc3ZTIyZmRkNDc5YjYzN2Q2ODNjNGI2NGYxY2Yy
Njg2ZTkyLi4xNjdlMDhlMTdkMDRmNGIwMzg4ZjQ1ZmQ5NDE5NDBkMjk2MTA3ODY1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy10cmFuc2l0aW9ucy90ZXN0X2Fu
aW1hdGlvbi1jYW5jZWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL21v
emlsbGEvY3NzLXRyYW5zaXRpb25zL3Rlc3RfYW5pbWF0aW9uLWNhbmNlbC1leHBlY3RlZC50eHQK
QEAgLTEsMTMgKzEsMTMgQEAKIAotRkFJTCBBbmltYXRlZCBzdHlsZSBpcyBjbGVhcmVkIGFmdGVy
IGNhbmNlbGxpbmcgYSBydW5uaW5nIENTUyB0cmFuc2l0aW9uIGFzc2VydF9lcXVhbHM6IHRyYW5z
Zm9ybSBzdHlsZSBpcyBubyBsb25nZXIgYW5pbWF0ZWQgYWZ0ZXIgY2FuY2VsbGluZyBleHBlY3Rl
ZCAiMTAwMHB4IiBidXQgZ290ICIwLjAwMzAwMDI0MDA3NDQ3MDYzOTJweCIKLUZBSUwgQWZ0ZXIg
Y2FuY2VsaW5nIGEgdHJhbnNpdGlvbiwgaXQgY2FuIHN0aWxsIGJlIHJlLXVzZWQgYXNzZXJ0X2Vx
dWFsczogbWFyZ2luLWxlZnQgc3R5bGUgaXMgYW5pbWF0ZWQgYWZ0ZXIgcmUtc3RhcnRpbmcgdHJh
bnNpdGlvbiBleHBlY3RlZCAiMHB4IiBidXQgZ290ICIxMDAwcHgiCi1GQUlMIEFmdGVyIGNhbmNl
bGxpbmcgYSBmaW5pc2hlZCB0cmFuc2l0aW9uLCBpdCBjYW4gc3RpbGwgYmUgcmUtdXNlZCBhc3Nl
cnRfZXF1YWxzOiBtYXJnaW4tbGVmdCBzdHlsZSBpcyBub3QgYW5pbWF0ZWQgYWZ0ZXIgY2FuY2Vs
bGluZyBleHBlY3RlZCAiMTAwMHB4IiBidXQgZ290ICIwLjA0NDA1NzY4NTg4MTg1MzEwNHB4Igor
UEFTUyBBbmltYXRlZCBzdHlsZSBpcyBjbGVhcmVkIGFmdGVyIGNhbmNlbGxpbmcgYSBydW5uaW5n
IENTUyB0cmFuc2l0aW9uIAorUEFTUyBBZnRlciBjYW5jZWxpbmcgYSB0cmFuc2l0aW9uLCBpdCBj
YW4gc3RpbGwgYmUgcmUtdXNlZCAKK1BBU1MgQWZ0ZXIgY2FuY2VsbGluZyBhIGZpbmlzaGVkIHRy
YW5zaXRpb24sIGl0IGNhbiBzdGlsbCBiZSByZS11c2VkIAogUEFTUyBBZnRlciBjYW5jZWxsaW5n
IGEgdHJhbnNpdGlvbiwgdXBkYXRpbmcgdHJhbnNpdGlvbiBwcm9wZXJ0aWVzIGRvZXNuJ3QgbWFr
ZSBpdCBsaXZlIGFnYWluIAogUEFTUyBTZXR0aW5nIGRpc3BsYXk6bm9uZSBvbiBhbiBlbGVtZW50
IGNhbmNlbHMgaXRzIHRyYW5zaXRpb25zIAotRkFJTCBTZXR0aW5nIGRpc3BsYXk6bm9uZSBjYW5j
ZWxzIHRyYW5zaXRpb25zIG9uIGEgY2hpbGQgZWxlbWVudCBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAiaWRsZSIgYnV0IGdvdCAicnVubmluZyIKK1BBU1MgU2V0dGluZyBkaXNwbGF5Om5vbmUgY2Fu
Y2VscyB0cmFuc2l0aW9ucyBvbiBhIGNoaWxkIGVsZW1lbnQgCiBQQVNTIFJlbW92aW5nIGEgcHJv
cGVydHkgZnJvbSB0cmFuc2l0aW9uLXByb3BlcnR5IGNhbmNlbHMgdHJhbnNpdGlvbnMgb24gdGhh
dCBwcm9wZXJ0eSAKIFBBU1MgU2V0dGluZyB6ZXJvIGNvbWJpbmVkIGR1cmF0aW9uIAogRkFJTCBD
aGFuZ2luZyBzdHlsZSB0byBhbm90aGVyIGludGVycG9sYWJsZSB2YWx1ZSBjYW5jZWxzIHRoZSBv
cmlnaW5hbCB0cmFuc2l0aW9uIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJpZGxlIiBidXQgZ290
ICJmaW5pc2hlZCIKLUZBSUwgQW4gYWZ0ZXItY2hhbmdlIHN0eWxlIHZhbHVlIGNhbid0IGJlIGlu
dGVycG9sYXRlZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiaWRsZSIgYnV0IGdvdCAiZmluaXNo
ZWQiCi1GQUlMIFJldmVyc2luZyBhIHJ1bm5pbmcgdHJhbnNpdGlvbiBjYW5jZWxzIHRoZSBvcmln
aW5hbCB0cmFuc2l0aW9uIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJpZGxlIiBidXQgZ290ICJm
aW5pc2hlZCIKK0ZBSUwgQW4gYWZ0ZXItY2hhbmdlIHN0eWxlIHZhbHVlIGNhbid0IGJlIGludGVy
cG9sYXRlZCBhc3NlcnRfZXF1YWxzOiBUaGVyZSBzaG91bGQgYmUgbm8gdHJhbnNpdGlvbnMgZXhw
ZWN0ZWQgMCBidXQgZ290IDEKK0ZBSUwgUmV2ZXJzaW5nIGEgcnVubmluZyB0cmFuc2l0aW9uIGNh
bmNlbHMgdGhlIG9yaWdpbmFsIHRyYW5zaXRpb24gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgImlk
bGUiIGJ1dCBnb3QgInJ1bm5pbmciCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L21vemlsbGEvY3NzLXRyYW5zaXRpb25zL3Rlc3RfYW5pbWF0aW9uLWNvbXB1dGVkLXRpbWluZy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy10cmFuc2l0aW9u
cy90ZXN0X2FuaW1hdGlvbi1jb21wdXRlZC10aW1pbmctZXhwZWN0ZWQudHh0CmluZGV4IDcwMzRi
YTg4ZjA3NDBmMjljYzRhMjU1ZDdmYTIyYzk0NTNhYmQ4NTUuLjRhNDk4NzE3MmNmMzljYzk5NjEx
MzExMzJhNmFiZmI0YmY3YzdmYmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL21v
emlsbGEvY3NzLXRyYW5zaXRpb25zL3Rlc3RfYW5pbWF0aW9uLWNvbXB1dGVkLXRpbWluZy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9jc3MtdHJhbnNpdGlv
bnMvdGVzdF9hbmltYXRpb24tY29tcHV0ZWQtdGltaW5nLWV4cGVjdGVkLnR4dApAQCAtOCwxMiAr
OCwxMiBAQCBQQVNTIGl0ZXJhdGlvblN0YXJ0IG9mIGEgbmV3IHRyYW5zaXRpb24KIFBBU1MgaXRl
cmF0aW9ucyBvZiBhIG5ldyB0cmFuc2l0aW9uIAogUEFTUyBkdXJhdGlvbiBvZiBhIG5ldyB0cmFu
c2l0aW9uIAogUEFTUyBkaXJlY3Rpb24gb2YgYSBuZXcgdHJhbnNpdGlvbiAKLUZBSUwgZWFzaW5n
IG9mIGEgbmV3IHRyYW5zaXRpb24gYXNzZXJ0X2VxdWFsczogSW5pdGlhbCB2YWx1ZSBvZiBlYXNp
bmcgZXhwZWN0ZWQgImxpbmVhciIgYnV0IGdvdCAiZWFzZSIKK1BBU1MgZWFzaW5nIG9mIGEgbmV3
IHRyYW5zaXRpb24gCiBQQVNTIGVuZFRpbWUgb2YgYSBuZXcgdHJhbnNpdGlvbiAKIFBBU1MgYWN0
aXZlRHVyYXRpb24gb2YgYSBuZXcgdHJhbnNpdGlvbiAKIFBBU1MgbG9jYWxUaW1lIG9mIGEgbmV3
IHRyYW5zaXRpb24gCiBQQVNTIGxvY2FsVGltZSBpcyBhbHdheXMgZXF1YWwgdG8gY3VycmVudFRp
bWUgCi1GQUlMIGxvY2FsVGltZSByZWZsZWN0cyBwbGF5YmFja1JhdGUgaW1tZWRpYXRlbHkgbnVs
bCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdhbmltLmVmZmVjdC5nZXRDb21wdXRlZFRp
bWluZycpCitQQVNTIGxvY2FsVGltZSByZWZsZWN0cyBwbGF5YmFja1JhdGUgaW1tZWRpYXRlbHkg
CiBQQVNTIHByb2dyZXNzIG9mIGEgbmV3IHRyYW5zaXRpb24gCiBGQUlMIHByb2dyZXNzIG9mIGEg
bmV3IHRyYW5zaXRpb24gd2l0aCBwb3NpdGl2ZSBkZWxheSBpbiBiZWZvcmUgcGhhc2UgYXNzZXJ0
X2VxdWFsczogSW5pdGlhbCB2YWx1ZSBvZiBwcm9ncmVzcyBleHBlY3RlZCAobnVtYmVyKSAwIGJ1
dCBnb3QgKG9iamVjdCkgbnVsbAogUEFTUyBwcm9ncmVzcyBvZiBhIGZpbmlzaGVkIHRyYW5zaXRp
b24gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy10cmFuc2l0
aW9ucy90ZXN0X2FuaW1hdGlvbi1jdXJyZW50dGltZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy10cmFuc2l0aW9ucy90ZXN0X2FuaW1hdGlvbi1jdXJyZW50
dGltZS1leHBlY3RlZC50eHQKaW5kZXggOGY0YjFlZTJhZDE1MDk3NGYyM2QyYTE5OWMzZjExYzg1
YmJiM2Y0OS4uOTBlNmQyNjk0YWFiMzIxOTg5MzIwZWQ0NGIwOTE1MzE4YzRmNTkyMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9jc3MtdHJhbnNpdGlvbnMvdGVzdF9h
bmltYXRpb24tY3VycmVudHRpbWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL21vemlsbGEvY3NzLXRyYW5zaXRpb25zL3Rlc3RfYW5pbWF0aW9uLWN1cnJlbnR0aW1lLWV4
cGVjdGVkLnR4dApAQCAtMSw3ICsxLDcgQEAKIAogUEFTUyBjdXJyZW50VGltZSBvZiBhIG5ld2x5
IGNyZWF0ZWQgdHJhbnNpdGlvbiBpcyB6ZXJvIAogUEFTUyBTYW5pdHkgdGVzdCB0byBjaGVjayBy
b3VuZC10cmlwcGluZyBhc3NpZ25pbmcgdG8gbmV3IGFuaW1hdGlvbidzIGN1cnJlbnRUaW1lIAot
RkFJTCBTa2lwcGluZyBmb3J3YXJkIHRocm91Z2ggdHJhbnNpdGlvbiBhc3NlcnRfZXF1YWxzOiBB
bmltYXRpb24ucGxheVN0YXRlIHNob3VsZCBiZSAicnVubmluZyIgb24gdGhlIGZpcnN0IHBhaW50
IHRpY2sgYWZ0ZXIgYW5pbWF0aW9uIGNyZWF0aW9uIGV4cGVjdGVkICJydW5uaW5nIiBidXQgZ290
ICJmaW5pc2hlZCIKK0ZBSUwgU2tpcHBpbmcgZm9yd2FyZCB0aHJvdWdoIHRyYW5zaXRpb24gYXNz
ZXJ0X2VxdWFsczogdGhlIGNvbXB1dGVkIHZhbHVlIG9mIG1hcmdpbi1sZWZ0IHNob3VsZCBiZSB1
bmFmZmVjdGVkIGJ5IGFuIGFuaW1hdGlvbiB3aXRoIGEgZGVsYXkgb24gcmVhZHkgUHJvbWlzZSBy
ZXNvbHZlIGV4cGVjdGVkIDEwMCBidXQgZ290IDIwMAogUEFTUyBTa2lwcGluZyBiYWNrd2FyZHMg
dGhyb3VnaCB0cmFuc2l0aW9uIAogUEFTUyBTZXR0aW5nIGN1cnJlbnRUaW1lIHRvIG51bGwgCiBQ
QVNTIEFuaW1hdGlvbi5jdXJyZW50VGltZSBhZnRlciBwYXVzaW5nIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9jc3MtdHJhbnNpdGlvbnMvdGVzdF9hbmltYXRpb24t
ZmluaXNoZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9jc3Mt
dHJhbnNpdGlvbnMvdGVzdF9hbmltYXRpb24tZmluaXNoZWQtZXhwZWN0ZWQudHh0CmluZGV4IDk2
ZjRlOWQ0OGUzODkxMTkzYWQ5NTk5MTBiNjI5ODNmYmI3ODAzZTIuLjEwNTNhMzNkZWZiZmZlNjBk
MTFkMThkZjRjOGVjZmMzYzIxNjVkYzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L21vemlsbGEvY3NzLXRyYW5zaXRpb25zL3Rlc3RfYW5pbWF0aW9uLWZpbmlzaGVkLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy10cmFuc2l0aW9ucy90
ZXN0X2FuaW1hdGlvbi1maW5pc2hlZC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKIFBB
U1MgVGVzdCByZXN0YXJ0aW5nIGEgZmluaXNoZWQgdHJhbnNpdGlvbiAKLUZBSUwgVGVzdCByZXN0
YXJ0aW5nIGEgcmV2ZXJzZWQgZmluaXNoZWQgdHJhbnNpdGlvbiBhc3NlcnRfZXF1YWxzOiBSZXBs
YXlpbmcgYSBmaW5pc2hlZCByZXZlcnNlZCB0cmFuc2l0aW9uIHNob3VsZCByZXNldCBpdHMgY3Vy
cmVudFRpbWUgdG8gdGhlIGVuZCBvZiB0aGUgZWZmZWN0IGV4cGVjdGVkIDIwMDAwMDAgYnV0IGdv
dCAwCitQQVNTIFRlc3QgcmVzdGFydGluZyBhIHJldmVyc2VkIGZpbmlzaGVkIHRyYW5zaXRpb24g
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL21vemlsbGEvY3NzLXRyYW5zaXRp
b25zL3Rlc3RfYW5pbWF0aW9uLXBhdXNpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvbW96aWxsYS9jc3MtdHJhbnNpdGlvbnMvdGVzdF9hbmltYXRpb24tcGF1c2luZy1leHBl
Y3RlZC50eHQKaW5kZXggZmE0ZDI2ZDU4MjU4MGM5ZmY2ZTJjNzc3OWZlODc3OTc5ZDkxYzExYi4u
OGFiNmQyZDEyOWY1Njk3MjYwZjFlYTg4YWVhNTg4OGI4OTEwN2FhMyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9jc3MtdHJhbnNpdGlvbnMvdGVzdF9hbmltYXRpb24t
cGF1c2luZy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9j
c3MtdHJhbnNpdGlvbnMvdGVzdF9hbmltYXRpb24tcGF1c2luZy1leHBlY3RlZC50eHQKQEAgLTEs
MyArMSwzIEBACiAKLUZBSUwgcGF1c2UoKSBhbmQgcGxheSgpIGEgdHJhbnNpdGlvbiBudWxsIGlz
IG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ2FuaW1hdGlvbi5lZmZlY3QuZ2V0Q29tcHV0ZWRU
aW1pbmcnKQorUEFTUyBwYXVzZSgpIGFuZCBwbGF5KCkgYSB0cmFuc2l0aW9uIAogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy10cmFuc2l0aW9ucy90ZXN0X2Fu
aW1hdGlvbi1zdGFydHRpbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96
aWxsYS9jc3MtdHJhbnNpdGlvbnMvdGVzdF9hbmltYXRpb24tc3RhcnR0aW1lLWV4cGVjdGVkLnR4
dAppbmRleCA2ZGRkYjA2YTE1ZDMyNmZlNjQxMzJmODViZTI1OTdiODRhMzlkMGY2Li41M2YwYmU0
ZGJmZGJiYzZhMjVhZWI2ZTE3NzY4N2Y4MTkxMzA2YmNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy10cmFuc2l0aW9ucy90ZXN0X2FuaW1hdGlvbi1zdGFydHRp
bWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL21vemlsbGEvY3NzLXRy
YW5zaXRpb25zL3Rlc3RfYW5pbWF0aW9uLXN0YXJ0dGltZS1leHBlY3RlZC50eHQKQEAgLTEsOCAr
MSw4IEBACiAKIFBBU1Mgc3RhcnRUaW1lIG9mIGEgbmV3bHkgY3JlYXRlZCB0cmFuc2l0aW9uIGlz
IHVucmVzb2x2ZWQgCiBQQVNTIFNhbml0eSB0ZXN0IHRvIGNoZWNrIHJvdW5kLXRyaXBwaW5nIGFz
c2lnbmluZyB0byBuZXcgYW5pbWF0aW9uJ3Mgc3RhcnRUaW1lIAotRkFJTCBTa2lwcGluZyBmb3J3
YXJkIHRocm91Z2ggYW5pbWF0aW9uIGFzc2VydF9lcXVhbHM6IEFuaW1hdGlvbi5wbGF5U3RhdGUg
c2hvdWxkIGJlICJydW5uaW5nIiBvbiB0aGUgZmlyc3QgcGFpbnQgdGljayBhZnRlciBhbmltYXRp
b24gY3JlYXRpb24gZXhwZWN0ZWQgInJ1bm5pbmciIGJ1dCBnb3QgImZpbmlzaGVkIgotRkFJTCBT
a2lwcGluZyBiYWNrd2FyZHMgdGhyb3VnaCB0cmFuc2l0aW9uIGFzc2VydF9lcXVhbHM6IHRoZSBj
b21wdXRlZCB2YWx1ZSBvZiBtYXJnaW4tbGVmdCBzaG91bGQgYmUgaGFsZiB3YXkgdGhyb3VnaCB0
aGUgYW5pbWF0aW9uIGF0IHRoZSBtaWRwb2ludCBvZiB0aGUgYWN0aXZlIGludGVydmFsIGV4cGVj
dGVkIDE1MCBidXQgZ290IDIwMAorRkFJTCBTa2lwcGluZyBmb3J3YXJkIHRocm91Z2ggYW5pbWF0
aW9uIGFzc2VydF9lcXVhbHM6IHRoZSBjb21wdXRlZCB2YWx1ZSBvZiBtYXJnaW4tbGVmdCBzaG91
bGQgYmUgdW5hZmZlY3RlZCBieSBhbiBhbmltYXRpb24gd2l0aCBhIGRlbGF5IG9uIHJlYWR5IFBy
b21pc2UgcmVzb2x2ZSBleHBlY3RlZCAxMDAgYnV0IGdvdCAyMDAKK1BBU1MgU2tpcHBpbmcgYmFj
a3dhcmRzIHRocm91Z2ggdHJhbnNpdGlvbiAKIFBBU1MgU2V0dGluZyBzdGFydFRpbWUgdG8gbnVs
bCAKIFBBU1MgQW5pbWF0aW9uLnN0YXJ0VGltZSBhZnRlciBwYXVzZWQgCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL21vemlsbGEvY3NzLXRyYW5zaXRpb25zL3Rlc3RfY3NzdHJh
bnNpdGlvbi10cmFuc2l0aW9ucHJvcGVydHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvbW96aWxsYS9jc3MtdHJhbnNpdGlvbnMvdGVzdF9jc3N0cmFuc2l0aW9uLXRyYW5zaXRp
b25wcm9wZXJ0eS1leHBlY3RlZC50eHQKaW5kZXggZmZkYmJkYmJjYzRhYjgxZjRlZjQ5YzM5YTUy
YzQ3NTAzNjFjZWFmZS4uMDJhODA2NDVkM2EyYmZkYjdkZjUxMDcwZjlmMjRlYzE1NGNjY2ZmMSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9jc3MtdHJhbnNpdGlvbnMv
dGVzdF9jc3N0cmFuc2l0aW9uLXRyYW5zaXRpb25wcm9wZXJ0eS1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9jc3MtdHJhbnNpdGlvbnMvdGVzdF9jc3N0cmFu
c2l0aW9uLXRyYW5zaXRpb25wcm9wZXJ0eS1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAK
LUZBSUwgQ1NTVHJhbnNpdGlvbi50cmFuc2l0aW9uUHJvcGVydHkgdW5kZWZpbmVkIGlzIG5vdCBh
biBvYmplY3QgKGV2YWx1YXRpbmcgJ2Rpdi5nZXRBbmltYXRpb25zKClbMF0udHJhbnNpdGlvblBy
b3BlcnR5JykKK1BBU1MgQ1NTVHJhbnNpdGlvbi50cmFuc2l0aW9uUHJvcGVydHkgCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL21vemlsbGEvY3NzLXRyYW5zaXRpb25zL3Rlc3Rf
ZWZmZWN0LXRhcmdldC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxh
L2Nzcy10cmFuc2l0aW9ucy90ZXN0X2VmZmVjdC10YXJnZXQtZXhwZWN0ZWQudHh0CmluZGV4IGNm
ZGY1NTE2YTJiNDE1MzMyZWM5NzQ5YjJmYTAxN2U3NWI4MTYxN2IuLjM3NzQ2NTRmMGRlMTFmZTI4
Y2NkOWRhNDYwNWJhZWVjZDc3ZmVmZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L21vemlsbGEvY3NzLXRyYW5zaXRpb25zL3Rlc3RfZWZmZWN0LXRhcmdldC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9jc3MtdHJhbnNpdGlvbnMvdGVzdF9l
ZmZlY3QtdGFyZ2V0LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAogUEFTUyBSZXR1cm5l
ZCBDU1MgdHJhbnNpdGlvbnMgaGF2ZSB0aGUgY29ycmVjdCBBbmltYXRpb24udGFyZ2V0IAotRkFJ
TCBlZmZlY3QudGFyZ2V0IHNob3VsZCByZXR1cm4gdGhlIHNhbWUgQ1NTUHNldWRvRWxlbWVudCBv
YmplY3QgZWFjaCB0aW1lIGFzc2VydF9lcXVhbHM6IEdvdCB0cmFuc2l0aW9ucyBydW5uaW5nIG9u
IDo6YWZ0ZXIgcHNldWRvIGVsZW1lbnQgZXhwZWN0ZWQgMiBidXQgZ290IDAKLUZBSUwgZWZmZWN0
LnRhcmdldCBmcm9tIHRoZSBzY3JpcHQtZ2VuZXJhdGVkIGFuaW1hdGlvbiBzaG91bGQgcmV0dXJu
IHRoZSBzYW1lIENTU1BzZXVkb0VsZW1lbnQgb2JqZWN0IGFzIHRoYXQgZnJvbSB0aGUgQ1NTIGdl
bmVyYXRlZCB0cmFuc2l0aW9uIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5n
ICdkb2N1bWVudC5nZXRBbmltYXRpb25zKClbMF0uZWZmZWN0JykKK1BBU1MgZWZmZWN0LnRhcmdl
dCBzaG91bGQgcmV0dXJuIHRoZSBzYW1lIENTU1BzZXVkb0VsZW1lbnQgb2JqZWN0IGVhY2ggdGlt
ZSAKK1BBU1MgZWZmZWN0LnRhcmdldCBmcm9tIHRoZSBzY3JpcHQtZ2VuZXJhdGVkIGFuaW1hdGlv
biBzaG91bGQgcmV0dXJuIHRoZSBzYW1lIENTU1BzZXVkb0VsZW1lbnQgb2JqZWN0IGFzIHRoYXQg
ZnJvbSB0aGUgQ1NTIGdlbmVyYXRlZCB0cmFuc2l0aW9uIAogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy10cmFuc2l0aW9ucy90ZXN0X2VsZW1lbnQtZ2V0LWFu
aW1hdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9jc3Mt
dHJhbnNpdGlvbnMvdGVzdF9lbGVtZW50LWdldC1hbmltYXRpb25zLWV4cGVjdGVkLnR4dAppbmRl
eCA5Y2Y2YjQxNzc5ZTAyOGViNDc3NGZmZmJlZDVmZDcyZTQ3OWIzMzAzLi43Y2JmNjI2YjEzYTY5
YjM1NTdkNzgzYTc0OWVjYWI2MTBjOGMwN2JmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC9tb3ppbGxhL2Nzcy10cmFuc2l0aW9ucy90ZXN0X2VsZW1lbnQtZ2V0LWFuaW1hdGlvbnMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL21vemlsbGEvY3NzLXRyYW5z
aXRpb25zL3Rlc3RfZWxlbWVudC1nZXQtYW5pbWF0aW9ucy1leHBlY3RlZC50eHQKQEAgLTEsMyAr
MSw5IEBACi0jUElEIFVOUkVTUE9OU0lWRSAtIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5E
ZXZlbG9wbWVudCAocGlkIDEzNTMwKQotRkFJTDogVGltZWQgb3V0IHdhaXRpbmcgZm9yIG5vdGlm
eURvbmUgdG8gYmUgY2FsbGVkCisKK1BBU1MgZ2V0QW5pbWF0aW9ucyBmb3IgQ1NTIFRyYW5zaXRp
b25zIAorUEFTUyBnZXRBbmltYXRpb25zIHJldHVybnMgQ1NTVHJhbnNpdGlvbiBvYmplY3RzIGZv
ciBDU1MgVHJhbnNpdGlvbnMgCitQQVNTIGdldEFuaW1hdGlvbnMgZm9yIENTUyBUcmFuc2l0aW9u
cyB0aGF0IGhhdmUgZmluaXNoZWQgCitGQUlMIGdldEFuaW1hdGlvbnMgZm9yIHRyYW5zaXRpb24g
b24gbm9uLWFuaW1hdGFibGUgcHJvcGVydHkgYXNzZXJ0X2VxdWFsczogZ2V0QW5pbWF0aW9ucyBy
ZXR1cm5zIGFuIGVtcHR5IHNlcXVlbmNlIGZvciBhIHRyYW5zaXRpb24gb2YgYSBub24tYW5pbWF0
YWJsZSBwcm9wZXJ0eSBleHBlY3RlZCAwIGJ1dCBnb3QgMQorUEFTUyBnZXRBbmltYXRpb25zIGZv
ciB0cmFuc2l0aW9uIG9uIHVuc3VwcG9ydGVkIHByb3BlcnR5IAorRkFJTCBnZXRBbmltYXRpb25z
IHNvcnRzIHNpbXVsdGFuZW91cyB0cmFuc2l0aW9ucyBieSBuYW1lIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkICJib3JkZXItYm90dG9tLXdpZHRoIiBidXQgZ290ICJib3JkZXItbGVmdC13aWR0aCIK
K1BBU1MgZ2V0QW5pbWF0aW9ucyBzb3J0cyB0cmFuc2l0aW9ucyBieSB3aGVuIHRoZXkgd2VyZSBn
ZW5lcmF0ZWQgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL21vemlsbGEvY3Nz
LXRyYW5zaXRpb25zL3Rlc3RfZXZlbnQtZGlzcGF0Y2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvbW96aWxsYS9jc3MtdHJhbnNpdGlvbnMvdGVzdF9ldmVudC1kaXNwYXRjaC1l
eHBlY3RlZC50eHQKaW5kZXggMTlkYjEwZmIyZjhhMjNkMmRhOWQ5MzI1NGU2NzMxZDA1NGQ5YmZm
Zi4uZTVjMzJlNTk2MzBkOTA2ODlmODZhZDk0NmY2ZjhiZGJmNGQ2YzY3ZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9jc3MtdHJhbnNpdGlvbnMvdGVzdF9ldmVudC1k
aXNwYXRjaC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9j
c3MtdHJhbnNpdGlvbnMvdGVzdF9ldmVudC1kaXNwYXRjaC1leHBlY3RlZC50eHQKQEAgLTEsMyAr
MSwyOCBAQAotI1BJRCBVTlJFU1BPTlNJVkUgLSBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQu
RGV2ZWxvcG1lbnQgKHBpZCAxMzU0NikKLUZBSUw6IFRpbWVkIG91dCB3YWl0aW5nIGZvciBub3Rp
ZnlEb25lIHRvIGJlIGNhbGxlZAorCitQQVNTIElkbGUgLT4gUGVuZGluZyBvciBCZWZvcmUgCitQ
QVNTIElkbGUgLT4gQmVmb3JlIAorUEFTUyBJZGxlIG9yIFBlbmRpbmcgLT4gQWN0aXZlIAorUEFT
UyBJZGxlIG9yIFBlbmRpbmcgLT4gQWZ0ZXIgCitQQVNTIEJlZm9yZSAtPiBJZGxlIChkaXNwbGF5
OiBub25lKSAKK1BBU1MgQmVmb3JlIC0+IElkbGUgKEFuaW1hdGlvbi50aW1lbGluZSA9IG51bGwp
IAorUEFTUyBCZWZvcmUgLT4gQWN0aXZlIAorUEFTUyBCZWZvcmUgLT4gQWZ0ZXIgCitQQVNTIEFj
dGl2ZSAtPiBJZGxlLCBubyBkZWxheSAoZGlzcGxheTogbm9uZSkgCitQQVNTIEFjdGl2ZSAtPiBJ
ZGxlLCBubyBkZWxheSAoQW5pbWF0aW9uLnRpbWVsaW5lID0gbnVsbCkgCitQQVNTIEFjdGl2ZSAt
PiBJZGxlLCB3aXRoIHBvc2l0aXZlIGRlbGF5IChkaXNwbGF5OiBub25lKSAKK1BBU1MgQWN0aXZl
IC0+IElkbGUsIHdpdGggcG9zaXRpdmUgZGVsYXkgKEFuaW1hdGlvbi50aW1lbGluZSA9IG51bGwp
IAorUEFTUyBBY3RpdmUgLT4gSWRsZSwgd2l0aCBuZWdhdGl2ZSBkZWxheSAoZGlzcGxheTogbm9u
ZSkgCitQQVNTIEFjdGl2ZSAtPiBJZGxlLCB3aXRoIG5lZ2F0aXZlIGRlbGF5IChBbmltYXRpb24u
dGltZWxpbmUgPSBudWxsKSAKK1BBU1MgQWN0aXZlIC0+IEJlZm9yZSAKK1BBU1MgQWN0aXZlIC0+
IEFmdGVyIAorUEFTUyBBZnRlciAtPiBCZWZvcmUgCitQQVNTIEFmdGVyIC0+IEFjdGl2ZSAKK1BB
U1MgQ2FsY3VsYXRpbmcgdGhlIGludGVydmFsIHN0YXJ0IGFuZCBlbmQgdGltZSB3aXRoIG5lZ2F0
aXZlIHN0YXJ0IGRlbGF5LiAKK1BBU1MgQ2FsY3VsYXRpbmcgdGhlIGludGVydmFsIHN0YXJ0IGFu
ZCBlbmQgdGltZSB3aXRoIG5lZ2F0aXZlIGVuZCBkZWxheS4gCitQQVNTIENhbGwgQW5pbWF0aW9u
LmNhbmNlbCBhZnRlciBjYW5jZWxsaW5nIHRyYW5zaXRpb24uIAorUEFTUyBSZXN0YXJ0IHRyYW5z
aXRpb24gYWZ0ZXIgY2FuY2VsbGluZyB0cmFuc2l0aW9uIGltbWVkaWF0ZWx5IAorUEFTUyBDYWxs
IEFuaW1hdGlvbi5jYW5jZWwgYWZ0ZXIgcmVzdGFydGluZyB0cmFuc2l0aW9uIGltbWVkaWF0ZWx5
IAorUEFTUyBTZXQgdGltZWxpbmUgYW5kIHBsYXkgdHJhbnNpdGlvbiBhZnRlciBjbGVhciB0aGUg
dGltZWxpbmUgCitQQVNTIFNldCBudWxsIHRhcmdldCBlZmZlY3QgYWZ0ZXIgY2FuY2VsIHRoZSB0
cmFuc2l0aW9uIAorUEFTUyBDYW5jZWwgdGhlIHRyYW5zaXRpb24gYWZ0ZXIgY2xlYXJpbmcgdGhl
IHRhcmdldCBlZmZlY3QgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL21vemls
bGEvY3NzLXRyYW5zaXRpb25zL3Rlc3Rfa2V5ZnJhbWVlZmZlY3QtZ2V0a2V5ZnJhbWVzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL21vemlsbGEvY3NzLXRyYW5zaXRpb25zL3Rl
c3Rfa2V5ZnJhbWVlZmZlY3QtZ2V0a2V5ZnJhbWVzLWV4cGVjdGVkLnR4dAppbmRleCBkNzE3YWQ1
MmZlMzYxZmYzMDQzNGE3MTVmNzVjZGNlYTRlMTJiZmM2Li43OWFhZjA5YjgxNjJhNmVjZWEzNmZi
NWM5NmQ3OGY1NjFhMzdkOTIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3pp
bGxhL2Nzcy10cmFuc2l0aW9ucy90ZXN0X2tleWZyYW1lZWZmZWN0LWdldGtleWZyYW1lcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvbW96aWxsYS9jc3MtdHJhbnNpdGlv
bnMvdGVzdF9rZXlmcmFtZWVmZmVjdC1nZXRrZXlmcmFtZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDUg
KzEsNSBAQAogCi1GQUlMIEtleWZyYW1lRWZmZWN0UmVhZE9ubHkuZ2V0S2V5ZnJhbWVzKCkgcmV0
dXJucyBleHBlY3RlZCBmcmFtZXMgZm9yIGEgc2ltcGxlIHRyYW5zaXRpb24gYXNzZXJ0X2VxdWFs
czogdmFsdWUgZm9yICdlYXNpbmcnIG9uIENvbXB1dGVkS2V5ZnJhbWUgIzAgZXhwZWN0ZWQgImVh
c2UiIGJ1dCBnb3QgImxpbmVhciIKLUZBSUwgS2V5ZnJhbWVFZmZlY3RSZWFkT25seS5nZXRLZXlm
cmFtZXMoKSByZXR1cm5zIGV4cGVjdGVkIGZyYW1lcyBmb3IgYSBzaW1wbGUgdHJhbnNpdGlvbiB3
aXRoIGEgbm9uLWRlZmF1bHQgZWFzaW5nIGZ1bmN0aW9uIGFzc2VydF9lcXVhbHM6IHZhbHVlIGZv
ciAnZWFzaW5nJyBvbiBDb21wdXRlZEtleWZyYW1lICMwIGV4cGVjdGVkICJzdGVwcygyKSIgYnV0
IGdvdCAibGluZWFyIgotRkFJTCBLZXlmcmFtZUVmZmVjdFJlYWRPbmx5LmdldEtleWZyYW1lcygp
IHJldHVybnMgZXhwZWN0ZWQgZnJhbWVzIGZvciBhIHRyYW5zaXRpb24gd2l0aCBhIENTUyB2YXJp
YWJsZSBlbmRwb2ludCBhc3NlcnRfZXF1YWxzOiB2YWx1ZSBmb3IgJ2Vhc2luZycgb24gQ29tcHV0
ZWRLZXlmcmFtZSAjMCBleHBlY3RlZCAiZWFzZSIgYnV0IGdvdCAibGluZWFyIgorUEFTUyBLZXlm
cmFtZUVmZmVjdFJlYWRPbmx5LmdldEtleWZyYW1lcygpIHJldHVybnMgZXhwZWN0ZWQgZnJhbWVz
IGZvciBhIHNpbXBsZSB0cmFuc2l0aW9uIAorUEFTUyBLZXlmcmFtZUVmZmVjdFJlYWRPbmx5Lmdl
dEtleWZyYW1lcygpIHJldHVybnMgZXhwZWN0ZWQgZnJhbWVzIGZvciBhIHNpbXBsZSB0cmFuc2l0
aW9uIHdpdGggYSBub24tZGVmYXVsdCBlYXNpbmcgZnVuY3Rpb24gCitQQVNTIEtleWZyYW1lRWZm
ZWN0UmVhZE9ubHkuZ2V0S2V5ZnJhbWVzKCkgcmV0dXJucyBleHBlY3RlZCBmcmFtZXMgZm9yIGEg
dHJhbnNpdGlvbiB3aXRoIGEgQ1NTIHZhcmlhYmxlIGVuZHBvaW50IAogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy10cmFuc2l0aW9ucy90ZXN0X3BzZXVkb0Vs
ZW1lbnQtZ2V0LWFuaW1hdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
bW96aWxsYS9jc3MtdHJhbnNpdGlvbnMvdGVzdF9wc2V1ZG9FbGVtZW50LWdldC1hbmltYXRpb25z
LWV4cGVjdGVkLnR4dAppbmRleCA0NjdiMGIzOWUyMmU3N2JhZjQ1Y2VkZjgzYjdkZjk4NDBjMzcy
MzUwLi41ZmIxMWViM2NhOTgwNDBlY2ViMmFhZjhkMDZjYzA4MDlhZjI1OTExIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy10cmFuc2l0aW9ucy90ZXN0X3BzZXVk
b0VsZW1lbnQtZ2V0LWFuaW1hdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL21vemlsbGEvY3NzLXRyYW5zaXRpb25zL3Rlc3RfcHNldWRvRWxlbWVudC1nZXQtYW5p
bWF0aW9ucy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgZ2V0QW5pbWF0aW9u
cyBzb3J0cyBzaW11bHRhbmVvdXMgdHJhbnNpdGlvbnMgYnkgbmFtZSBhc3NlcnRfZXF1YWxzOiBH
b3QgZXhwZWN0ZWQgbnVtYmVyIG9mIGFuaW1hdGlvbnMgb24gZG9jdW1lbnQgZXhwZWN0ZWQgMyBi
dXQgZ290IDAKK0ZBSUwgZ2V0QW5pbWF0aW9ucyBzb3J0cyBzaW11bHRhbmVvdXMgdHJhbnNpdGlv
bnMgYnkgbmFtZSBhc3NlcnRfZXF1YWxzOiBHb3QgcHNldWRvLWVsZW1lbnQgdGFyZ2V0IGV4cGVj
dGVkICJbb2JqZWN0IENTU1BzZXVkb0VsZW1lbnRdIiBidXQgZ290ICJbb2JqZWN0IEVsZW1lbnRd
IgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy10cmFuc2l0
aW9ucy90ZXN0X3NldHRpbmctZWZmZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL21vemlsbGEvY3NzLXRyYW5zaXRpb25zL3Rlc3Rfc2V0dGluZy1lZmZlY3QtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjIzODZmMGVhYmY3YTU2ZjM1NzA3OGQ2ZDNjYmRmYTdkZmVhOWQ4YmEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC9tb3ppbGxhL2Nzcy10cmFu
c2l0aW9ucy90ZXN0X3NldHRpbmctZWZmZWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAK
KworUEFTUyBUZXN0IGZvciByZW1vdmluZyBhIHRyYW5zaXRpb24gZWZmZWN0IAorRkFJTCBUZXN0
IGZvciByZXBsYWNpbmcgdGhlIHRyYW5zaXRpb24gZWZmZWN0IGJ5IGEgbmV3IGtleWZyYW1lIGVm
ZmVjdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiMTAwcHgiIGJ1dCBnb3QgIjBweCIKK1BBU1Mg
VGVzdCBmb3Igc2V0dGluZyBhIG5ldyBrZXlmcmFtZSBlZmZlY3Qgd2l0aCBhIHNob3J0ZXIgZHVy
YXRpb24gCitQQVNTIFRlc3QgZm9yIHNldHRpbmcgYSBuZXcga2V5ZnJhbWUgZWZmZWN0IHRvIGEg
cGVuZGluZyB0cmFuc2l0aW9uIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvcmVzb3VyY2VzL2NvbmZpZy5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291
cmNlcy9jb25maWcuanNvbgppbmRleCBhOGQ4NTYzYjI5YWJjMjk5NjFhZGFmOWM2Y2M5ZWM0ODU1
MjA4NjdlLi5jMDc0ZmZiMTZkMGFiMWJhODRjNjY4ZmE2MzE0ZjhmNWRiMDNhYjViIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2NvbmZpZy5qc29uCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvY29uZmlnLmpzb24KQEAgLTEsNCAr
MSw0IEBACi17Imhvc3QiOiAibG9jYWxob3N0IiwKK3siYnJvd3Nlcl9ob3N0IjogImxvY2FsaG9z
dCIsCiAgInBvcnRzIjp7Imh0dHAiOls4ODAwLCA4ODAxXSwKICAgICAgICAgICAiaHR0cHMiOls5
NDQzXSwKICAgICAgICAgICAid3MiOls0OTAwMV19LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb24gYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgppbmRl
eCAzOTNmNWU5MmNmYzhiOWU4NjZmOWU2NzAxZDA4NzNjZmZmMTM5ZjY5Li5mZTI4ZmNmMmZhMjlh
OTdhNTAzZTk4NDUyMjA2ZGMzODcxYWNlYTk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbgpAQCAt
MSw1ICsxLDYgQEAKIHsKICAgICAiY3NzL2dlb21ldHJ5IjogImltcG9ydCIsIAorICAgICJ0b29s
cyI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzLzJkY29udGV4dCI6ICJza2lw
IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy8yZGNvbnRleHQvaW1hZ2ViaXRtYXAiOiAiaW1w
b3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy8yZGNvbnRleHQvdHJhbnNmb3JtYXRpb25z
L2NhbnZhc190cmFuc2Zvcm1hdGlvbnNfcmVzZXRfMDAxLXJlZi5odG1sIjogImltcG9ydCIsIApA
QCAtNjIsNiArNjMsNyBAQAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvciI6
ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZGlzcGxheSI6ICJp
bXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZCI6ICJpbXBvcnQi
LCAKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9ncmlkLWRlZmluaXRpb24v
IjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1tdWx0aWNvbCI6
ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtcHNldWRvIjogImlt
cG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY29waW5nIjogImltcG9y
dCIsIApAQCAtMzAyLDcgKzMwNCw3IEBACiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy9zdmciOiAi
c2tpcCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvc3ZnLWFhbSI6ICJza2lwIiwgCiAgICAg
IndlYi1wbGF0Zm9ybS10ZXN0cy90ZXN0aGFybmVzc19ydW5uZXIuaHRtbCI6ICJza2lwIiwgCi0g
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy90b29scyI6ICJza2lwIiwgCisgICAgIndlYi1wbGF0Zm9y
bS10ZXN0cy90b29scyI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L19faW5pdF9fLnB5IjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
aHRtbDVsaWIiOiAiaW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9sb2Nh
bHBhdGhzLnB5IjogImltcG9ydCIsIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb25maWcuZGVmYXVsdC5qc29uIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jb25maWcuZGVmYXVsdC5qc29uCmluZGV4
IGE1NWIxN2MzZGUzZDhiYzMzZmM0MzAyNGM0NWE0MTFlYjEzMTgzZjYuLjIxYzRhOWE5MDZiNWE1
ZmY4ZGFiMDk2OGVlYzY0YzFjZmQ0MDA0MmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY29uZmlnLmRlZmF1bHQuanNvbgorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2NvbmZpZy5kZWZhdWx0Lmpz
b24KQEAgLTEsNCArMSw0IEBACi17Imhvc3QiOiAid2ViLXBsYXRmb3JtLnRlc3QiLAoreyJicm93
c2VyX2hvc3QiOiAid2ViLXBsYXRmb3JtLnRlc3QiLAogICJkb2Nfcm9vdCI6IG51bGwsCiAgIndz
X2RvY19yb290IjogbnVsbCwKICAiZXh0ZXJuYWxfaG9zdCI6IG51bGwsCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9n
cmlkLWRlZmluaXRpb24vZ3JpZC1jaGFuZ2UtZml0LWNvbnRlbnQtYXJndW1lbnQtMDAxLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3Jp
ZC9ncmlkLWRlZmluaXRpb24vZ3JpZC1jaGFuZ2UtZml0LWNvbnRlbnQtYXJndW1lbnQtMDAxLmh0
bWwKaW5kZXggZDA4NzEyZDMwZDI1Y2YxMTMyOTY4NDE2NzYwM2UwODg4Y2E1YWJjYi4uOTQ0MWIw
YTQzOWUxYmJkY2QzOTU0YWY0MzlhNDlhYzE2MmE1MTNhMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvZ3JpZC1kZWZp
bml0aW9uL2dyaWQtY2hhbmdlLWZpdC1jb250ZW50LWFyZ3VtZW50LTAwMS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL2dy
aWQtZGVmaW5pdGlvbi9ncmlkLWNoYW5nZS1maXQtY29udGVudC1hcmd1bWVudC0wMDEuaHRtbApA
QCAtNiw3ICs2LDcgQEAKIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nz
d2cub3JnL2Nzcy1ncmlkLTEvI3RyYWNrLXNpemluZyI+CiA8bWV0YSBuYW1lPSJhc3NlcnQiIGNv
bnRlbnQ9IlRoaXMgdGVzdCBjaGVja3MgdGhhdCBncmlkLXRlbXBsYXRlLXtyb3dzfGNvbHVtbnN9
IHdpdGggZml0LWNvbnRlbnQoKSB0cmFja3MgcmVjb21wdXRlcyB0aGUgdHJhY2tzIHdoZW4gdGhl
IGZpdC1jb250ZW50KCkgYXJndW1lbnQgaXMgbW9kaWZpZWQuIj4KIDxtZXRhIG5hbWU9ImZsYWdz
IiBjb250ZW50PSJhaGVtIj4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vc3VwcG9y
dC9ncmlkLmNzcyI+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN1cHBvcnQvZ3JpZC5j
c3MiPgogPHN0eWxlPgogLmdyaWQgewogICB3aWR0aDogZml0LWNvbnRlbnQ7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3Jp
ZC9ncmlkLWRlZmluaXRpb24vZ3JpZC1pbmxpbmUtYXV0by1yZXBlYXQtMDAxLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1n
cmlkL2dyaWQtZGVmaW5pdGlvbi9ncmlkLWlubGluZS1hdXRvLXJlcGVhdC0wMDEtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmViNGRmMDhlNTI3ZGJmOWI4NGEyYmM0M2EwMjcwNzA2YmU3YzMzODIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtZ3JpZC9ncmlkLWRlZmluaXRpb24vZ3JpZC1pbmxpbmUtYXV0by1yZXBl
YXQtMDAxLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACisKK1BBU1MgJ2F1dG9GaWxsQ29s
dW1ucycgd2l0aDogZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCAxMHB4
KTsgYW5kIGdyaWQtdGVtcGxhdGUtcm93czogMjBweDsgCitQQVNTICdhdXRvRml0Q29sdW1ucycg
d2l0aDogZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIDEwcHgpOyBhbmQg
Z3JpZC10ZW1wbGF0ZS1yb3dzOiAyMHB4OyAKK1BBU1MgJ2F1dG9GaWxsUm93cycgd2l0aDogZ3Jp
ZC10ZW1wbGF0ZS1jb2x1bW5zOiAyMHB4OyBhbmQgZ3JpZC10ZW1wbGF0ZS1yb3dzOiByZXBlYXQo
YXV0by1maWxsLCAxMHB4KTsgCitQQVNTICdhdXRvRml0Um93cycgd2l0aDogZ3JpZC10ZW1wbGF0
ZS1jb2x1bW5zOiAyMHB4OyBhbmQgZ3JpZC10ZW1wbGF0ZS1yb3dzOiByZXBlYXQoYXV0by1maXQs
IDEwcHgpOyAKK1BBU1MgJ2F1dG9GaWxsQ29sdW1ucycgd2l0aDogZ3JpZC10ZW1wbGF0ZS1jb2x1
bW5zOiByZXBlYXQoYXV0by1maWxsLCA5cHgpOyBhbmQgZ3JpZC10ZW1wbGF0ZS1yb3dzOiAyMHB4
OyAKK1BBU1MgJ2F1dG9GaXRDb2x1bW5zJyB3aXRoOiBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJl
cGVhdChhdXRvLWZpdCwgOXB4KTsgYW5kIGdyaWQtdGVtcGxhdGUtcm93czogMjBweDsgCitQQVNT
ICdhdXRvRmlsbFJvd3MnIHdpdGg6IGdyaWQtdGVtcGxhdGUtY29sdW1uczogMjBweDsgYW5kIGdy
aWQtdGVtcGxhdGUtcm93czogcmVwZWF0KGF1dG8tZmlsbCwgOXB4KTsgCitQQVNTICdhdXRvRml0
Um93cycgd2l0aDogZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyMHB4OyBhbmQgZ3JpZC10ZW1wbGF0
ZS1yb3dzOiByZXBlYXQoYXV0by1maXQsIDlweCk7IAorUEFTUyAnYXV0b0ZpbGxDb2x1bW5zJyB3
aXRoOiBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIDMwcHgpOyBhbmQg
Z3JpZC10ZW1wbGF0ZS1yb3dzOiAyMHB4OyAKK1BBU1MgJ2F1dG9GaXRDb2x1bW5zJyB3aXRoOiBn
cmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgMzBweCk7IGFuZCBncmlkLXRl
bXBsYXRlLXJvd3M6IDIwcHg7IAorUEFTUyAnYXV0b0ZpbGxSb3dzJyB3aXRoOiBncmlkLXRlbXBs
YXRlLWNvbHVtbnM6IDIwcHg7IGFuZCBncmlkLXRlbXBsYXRlLXJvd3M6IHJlcGVhdChhdXRvLWZp
bGwsIDMwcHgpOyAKK1BBU1MgJ2F1dG9GaXRSb3dzJyB3aXRoOiBncmlkLXRlbXBsYXRlLWNvbHVt
bnM6IDIwcHg7IGFuZCBncmlkLXRlbXBsYXRlLXJvd3M6IHJlcGVhdChhdXRvLWZpdCwgMzBweCk7
IAorICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtZ3JpZC9ncmlkLWRlZmluaXRpb24vZ3JpZC1pbmxpbmUtYXV0by1yZXBl
YXQtMDAxLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtZ3JpZC9ncmlkLWRlZmluaXRpb24vZ3JpZC1pbmxpbmUtYXV0by1yZXBlYXQtMDAx
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjA2ZmZlNWU0M2E4OWU3OTZiMDk0NjZhNmJiMTA0MTExNmNkZTU4
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1ncmlkL2dyaWQtZGVmaW5pdGlvbi9ncmlkLWlubGluZS1hdXRvLXJl
cGVhdC0wMDEuaHRtbApAQCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxh
bmc9ZW4+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+Q1NTIEdyaWQgTGF5b3V0IFRl
c3Q6IGF1dG8gcmVwZWF0IHRyYWNrcyBpbiBpbmRlZmluaXRlIGNvbnRhaW5lcnMgd2l0aCBtaW5p
bXVtIHNpemU8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJTZXJnaW8gVmlsbGFy
IFNlbmluIiBocmVmPSJtYWlsdG86c3ZpbGxhckBpZ2FsaWEuY29tIj4KKzxsaW5rIHJlbD0iaGVs
cCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1ncmlkLTEvI3JlcGVhdC1zeW50
YXgiPgorPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJUaGlzIHRlc3QgY2hlY2tzIHRoYXQg
d2UgcHJvcGVybHkgY29tcHV0ZSB0aGUgbnVtYmVyIG9mIHJlcXVpcmVkIGF1dG8gcmVwZWF0IHRy
YWNrcyBpbiBpbmRlZmluaXRlIHNpemVkIGNvbnRhaW5lcnMgd2l0aCBtaW5pbXVtIHNpemVzLiI+
Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN1cHBvcnQvZ3JpZC5jc3MiPgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InN1cHBvcnQvdGVzdGluZy11dGlscy5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisuZ3JpZCB7Cisg
ICAgZGlzcGxheTogaW5saW5lLWdyaWQ7CisgICAgZ3JpZDogMjBweCAvIDIwcHg7CisgICAgbWlu
LXdpZHRoOiAyMHB4OworICAgIG1pbi1oZWlnaHQ6IDIwcHg7CisgICAganVzdGlmeS1jb250ZW50
OiBzdGFydDsKKyAgICBhbGlnbi1jb250ZW50OiBzdGFydDsKK30KKzwvc3R5bGU+Cis8ZGl2IGlk
PSJsb2ciPjwvZGl2PgorCis8ZGl2IGlkPSJhdXRvRmlsbENvbHVtbnMiIGNsYXNzPSJncmlkIj48
L2Rpdj4KKzxkaXYgaWQ9ImF1dG9GaXRDb2x1bW5zIiBjbGFzcz0iZ3JpZCI+PC9kaXY+CisKKzxk
aXYgaWQ9ImF1dG9GaWxsUm93cyIgY2xhc3M9ImdyaWQiPjwvZGl2PgorPGRpdiBpZD0iYXV0b0Zp
dFJvd3MiIGNsYXNzPSJncmlkIj48L2Rpdj4KKworPHNjcmlwdD4KKy8vIEV4YWN0IGZpdAorVGVz
dGluZ1V0aWxzLnRlc3RHcmlkVGVtcGxhdGVDb2x1bW5zUm93cygiYXV0b0ZpbGxDb2x1bW5zIiwg
InJlcGVhdChhdXRvLWZpbGwsIDEwcHgpIiwgIjIwcHgiLCBbInJlcGVhdCgyLCAxMHB4KSIsICIx
MHB4IDEwcHgiXSwgIjIwcHgiKTsKK1Rlc3RpbmdVdGlscy50ZXN0R3JpZFRlbXBsYXRlQ29sdW1u
c1Jvd3MoImF1dG9GaXRDb2x1bW5zIiwgInJlcGVhdChhdXRvLWZpdCwgMTBweCkiLCAiMjBweCIs
IFsicmVwZWF0KDIsIDBweCkiLCAiMHB4IDBweCJdLCAiMjBweCIpOworVGVzdGluZ1V0aWxzLnRl
c3RHcmlkVGVtcGxhdGVDb2x1bW5zUm93cygiYXV0b0ZpbGxSb3dzIiwgIjIwcHgiLCAicmVwZWF0
KGF1dG8tZmlsbCwgMTBweCkiLCAiMjBweCIsIFsicmVwZWF0KDIsIDEwcHgpIiwgIjEwcHggMTBw
eCJdKTsKK1Rlc3RpbmdVdGlscy50ZXN0R3JpZFRlbXBsYXRlQ29sdW1uc1Jvd3MoImF1dG9GaXRS
b3dzIiwgIjIwcHgiLCAicmVwZWF0KGF1dG8tZml0LCAxMHB4KSIsICIyMHB4IiwgWyJyZXBlYXQo
MiwgMHB4KSIsICIwcHggMHB4Il0pOworCisvLyBSZXF1aXJlIGFuIGV4dHJhIHRyYWNrCitUZXN0
aW5nVXRpbHMudGVzdEdyaWRUZW1wbGF0ZUNvbHVtbnNSb3dzKCJhdXRvRmlsbENvbHVtbnMiLCAi
cmVwZWF0KGF1dG8tZmlsbCwgOXB4KSIsICIyMHB4IiwgWyJyZXBlYXQoMywgOXB4KSIsICI5cHgg
OXB4IDlweCJdLCAiMjBweCIpOworVGVzdGluZ1V0aWxzLnRlc3RHcmlkVGVtcGxhdGVDb2x1bW5z
Um93cygiYXV0b0ZpdENvbHVtbnMiLCAicmVwZWF0KGF1dG8tZml0LCA5cHgpIiwgIjIwcHgiLCBb
InJlcGVhdCgyLCAwcHgpIiwgIjBweCAwcHgiXSwgIjIwcHgiKTsKK1Rlc3RpbmdVdGlscy50ZXN0
R3JpZFRlbXBsYXRlQ29sdW1uc1Jvd3MoImF1dG9GaWxsUm93cyIsICIyMHB4IiwgInJlcGVhdChh
dXRvLWZpbGwsIDlweCkiLCAiMjBweCIsIFsicmVwZWF0KDMsIDlweCkiLCAiOXB4IDlweCA5cHgi
XSk7CitUZXN0aW5nVXRpbHMudGVzdEdyaWRUZW1wbGF0ZUNvbHVtbnNSb3dzKCJhdXRvRml0Um93
cyIsICIyMHB4IiwgInJlcGVhdChhdXRvLWZpdCwgOXB4KSIsICIyMHB4IiwgWyJyZXBlYXQoMywg
MHB4KSIsICIwcHggMHB4IDBweCJdKTsKKworLy8gQSBzaW5nbGUgcmVwZXRpdGlvbiBpcyBlbm91
Z2ggdG8gZmlsbCBpbiBhbGwgdGhlIGF2YWlsYWJsZSBzcGFjZQorVGVzdGluZ1V0aWxzLnRlc3RH
cmlkVGVtcGxhdGVDb2x1bW5zUm93cygiYXV0b0ZpbGxDb2x1bW5zIiwgInJlcGVhdChhdXRvLWZp
bGwsIDMwcHgpIiwgIjIwcHgiLCAiMzBweCIsICIyMHB4Iik7CitUZXN0aW5nVXRpbHMudGVzdEdy
aWRUZW1wbGF0ZUNvbHVtbnNSb3dzKCJhdXRvRml0Q29sdW1ucyIsICJyZXBlYXQoYXV0by1maXQs
IDMwcHgpIiwgIjIwcHgiLCAiMHB4IiwgIjIwcHgiKTsKK1Rlc3RpbmdVdGlscy50ZXN0R3JpZFRl
bXBsYXRlQ29sdW1uc1Jvd3MoImF1dG9GaWxsUm93cyIsICIyMHB4IiwgInJlcGVhdChhdXRvLWZp
bGwsIDMwcHgpIiwgIjIwcHgiLCAiMzBweCIpOworVGVzdGluZ1V0aWxzLnRlc3RHcmlkVGVtcGxh
dGVDb2x1bW5zUm93cygiYXV0b0ZpdFJvd3MiLCAiMjBweCIsICJyZXBlYXQoYXV0by1maXQsIDMw
cHgpIiwgIjIwcHgiLCAiMHB4Iik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL2dyaWQtZGVmaW5p
dGlvbi9ncmlkLXRlbXBsYXRlLWNvbHVtbnMtZml0LWNvbnRlbnQtMDAxLWV4cGVjdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3Jp
ZC9ncmlkLWRlZmluaXRpb24vZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLWZpdC1jb250ZW50LTAwMS1l
eHBlY3RlZC5odG1sCmluZGV4IGNiN2E1ODJhYjEwMDQwN2Y1ZGRkN2YwNjk2YmEzMzZkOTUzZmUx
ZjguLmY5MGJkMDQ3OTkzZThlODJkNjljMWE1NmMwNDA1NTRiZDQ4Mjk2YTcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlk
L2dyaWQtZGVmaW5pdGlvbi9ncmlkLXRlbXBsYXRlLWNvbHVtbnMtZml0LWNvbnRlbnQtMDAxLWV4
cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWdyaWQvZ3JpZC1kZWZpbml0aW9uL2dyaWQtdGVtcGxhdGUtY29sdW1ucy1m
aXQtY29udGVudC0wMDEtZXhwZWN0ZWQuaHRtbApAQCAtMyw3ICszLDcgQEAKIDxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KIDx0aXRsZT5DU1MgR3JpZCBMYXlvdXQgVGVzdDogZ3JpZC10ZW1wbGF0ZS1j
b2x1bW5zIGZpdC1jb250ZW50KCkgcmVmZXJlbmNlIGZpbGU8L3RpdGxlPgogPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJNYW51ZWwgUmVnbyBDYXNhc25vdmFzIiBocmVmPSJtYWlsdG86cmVnb0Bp
Z2FsaWEuY29tIj4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vc3VwcG9ydC9ncmlk
LmNzcyI+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN1cHBvcnQvZ3JpZC5jc3MiPgog
PG1ldGEgbmFtZT0iZmxhZ3MiIGNvbnRlbnQ9ImFoZW0iPgogPHN0eWxlPgogLmdyaWQgewpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWdyaWQvZ3JpZC1kZWZpbml0aW9uL2dyaWQtdGVtcGxhdGUtY29sdW1ucy1maXQtY29udGVu
dC0wMDEuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1ncmlkL2dyaWQtZGVmaW5pdGlvbi9ncmlkLXRlbXBsYXRlLWNvbHVtbnMtZml0LWNv
bnRlbnQtMDAxLmh0bWwKaW5kZXggZDQ5MmQ0NTg1ZjgxNjNlOWMyMzhhMzk1MzNkMzEzODM5NDgy
N2ZlOS4uYzU5NGQ4MDVlNjRjZjZlOTVlYzY3MjNlYmI0NTViNzBkNjBhNjk1MSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdy
aWQvZ3JpZC1kZWZpbml0aW9uL2dyaWQtdGVtcGxhdGUtY29sdW1ucy1maXQtY29udGVudC0wMDEu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtZ3JpZC9ncmlkLWRlZmluaXRpb24vZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLWZpdC1jb250
ZW50LTAwMS5odG1sCkBAIC03LDcgKzcsNyBAQAogPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0iZ3Jp
ZC10ZW1wbGF0ZS1jb2x1bW5zLWZpdC1jb250ZW50LTAwMS1yZWYuaHRtbCI+CiA8bWV0YSBuYW1l
PSJhc3NlcnQiIGNvbnRlbnQ9IlRoaXMgdGVzdCBjaGVja3MgdGhhdCAnZml0LWNvbnRlbnQoKScg
d29ya3MgYXMgZXhwZWN0ZWQgaW4gZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLCBpLmUuLCBpdCdzIHNp
bWlsYXIgdG8gJ2F1dG8nICgnbWlubWF4KGF1dG8sIG1heC1jb250ZW50KScpIGV4Y2VwdCB0aGF0
IHRoZSBncm93dGggbGltaXQgaXMgY2xhbXBlZCBhdCB0aGUgYXJndW1lbnQgb2YgJ2ZpdC1jb250
ZW50JyAoaWYgZ3JlYXRlciB0aGFuIHRoZSAnYXV0bycgbWluaW11bSkuIj4KIDxtZXRhIG5hbWU9
ImZsYWdzIiBjb250ZW50PSJhaGVtIj4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
c3VwcG9ydC9ncmlkLmNzcyI+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InN1cHBvcnQv
Z3JpZC5jc3MiPgogPHN0eWxlPgogLmdyaWQgewogICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0Owpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWdyaWQvZ3JpZC1kZWZpbml0aW9uL2dyaWQtdGVtcGxhdGUtcm93cy1maXQtY29udGVu
dC0wMDEtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1ncmlkL2dyaWQtZGVmaW5pdGlvbi9ncmlkLXRlbXBsYXRlLXJvd3Mt
Zml0LWNvbnRlbnQtMDAxLWV4cGVjdGVkLmh0bWwKaW5kZXggYTFmODNkYzg1YWYzNzNhMDRlYTRl
MzhkZDhkZmYxYTA0YWUxYzYyMS4uYTY3ODVmY2IxMmY5ZDhkY2Q1NWFmMDFiYjBhMjNiNjQ3MTEz
Nzg5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWdyaWQvZ3JpZC1kZWZpbml0aW9uL2dyaWQtdGVtcGxhdGUtcm93cy1maXQt
Y29udGVudC0wMDEtZXhwZWN0ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9ncmlkLWRlZmluaXRpb24vZ3JpZC10ZW1w
bGF0ZS1yb3dzLWZpdC1jb250ZW50LTAwMS1leHBlY3RlZC5odG1sCkBAIC0zLDcgKzMsNyBAQAog
PG1ldGEgY2hhcnNldD0idXRmLTgiPgogPHRpdGxlPkNTUyBHcmlkIExheW91dCBUZXN0OiBncmlk
LXRlbXBsYXRlLXJvd3MgZml0LWNvbnRlbnQoKSByZWZlcmVuY2UgZmlsZTwvdGl0bGU+CiA8bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9Ik1hbnVlbCBSZWdvIENhc2Fzbm92YXMiIGhyZWY9Im1haWx0
bzpyZWdvQGlnYWxpYS5jb20iPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9zdXBw
b3J0L2dyaWQuY3NzIj4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3VwcG9ydC9ncmlk
LmNzcyI+CiA8bWV0YSBuYW1lPSJmbGFncyIgY29udGVudD0iYWhlbSI+CiA8c3R5bGU+CiAuZ3Jp
ZCB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtZ3JpZC9ncmlkLWRlZmluaXRpb24vZ3JpZC10ZW1wbGF0ZS1yb3dzLWZpdC1j
b250ZW50LTAwMS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWdyaWQvZ3JpZC1kZWZpbml0aW9uL2dyaWQtdGVtcGxhdGUtcm93cy1maXQt
Y29udGVudC0wMDEuaHRtbAppbmRleCA2ZDQwNmMzZjFiNDNkYmNiNzBmYWU3OWI4Y2M0YjIwYTM0
OTkxOTZkLi4yOTMxOTYwMzJlMTllOGFiYzdkYjFmNDE4MDRhZjMxMDVkZGJkMzRhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Z3JpZC9ncmlkLWRlZmluaXRpb24vZ3JpZC10ZW1wbGF0ZS1yb3dzLWZpdC1jb250ZW50LTAwMS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1ncmlkL2dyaWQtZGVmaW5pdGlvbi9ncmlkLXRlbXBsYXRlLXJvd3MtZml0LWNvbnRlbnQt
MDAxLmh0bWwKQEAgLTcsNyArNyw3IEBACiA8bGluayByZWw9Im1hdGNoIiBocmVmPSJncmlkLXRl
bXBsYXRlLXJvd3MtZml0LWNvbnRlbnQtMDAxLXJlZi5odG1sIj4KIDxtZXRhIG5hbWU9ImFzc2Vy
dCIgY29udGVudD0iVGhpcyB0ZXN0IGNoZWNrcyB0aGF0ICdmaXQtY29udGVudCgpJyB3b3JrcyBh
cyBleHBlY3RlZCBpbiBncmlkLXRlbXBsYXRlLXJvd3MsIGkuZS4sIGl0J3Mgc2ltaWxhciB0byAn
YXV0bycgKCdtaW5tYXgoYXV0bywgbWF4LWNvbnRlbnQpJykgZXhjZXB0IHRoYXQgdGhlIGdyb3d0
aCBsaW1pdCBpcyBjbGFtcGVkIGF0IHRoZSBhcmd1bWVudCBvZiAnZml0LWNvbnRlbnQnIChpZiBn
cmVhdGVyIHRoYW4gdGhlICdhdXRvJyBtaW5pbXVtKS4iPgogPG1ldGEgbmFtZT0iZmxhZ3MiIGNv
bnRlbnQ9ImFoZW0iPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9zdXBwb3J0L2dy
aWQuY3NzIj4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3VwcG9ydC9ncmlkLmNzcyI+
CiA8c3R5bGU+CiAuZ3JpZCB7CiAgIGp1c3RpZnktY29udGVudDogc3RhcnQ7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3Jp
ZC9ncmlkLWRlZmluaXRpb24vc3VwcG9ydC9ncmlkLmNzcyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL2dyaWQtZGVmaW5pdGlvbi9zdXBw
b3J0L2dyaWQuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwMmUxMTQ4ODBhZTY1NzZjMGQ0NDBjZjUyNGFkMjg0
Zjg5ZTcwOGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9ncmlkLWRlZmluaXRpb24vc3VwcG9ydC9ncmlk
LmNzcwpAQCAtMCwwICsxLDI3NyBAQAorLmdyaWQgeworICBkaXNwbGF5OiBncmlkOworICBiYWNr
Z3JvdW5kLWNvbG9yOiBncmV5OworfQorCisuaW5saW5lLWdyaWQgeworICBkaXNwbGF5OiBpbmxp
bmUtZ3JpZDsKKyAgYmFja2dyb3VuZC1jb2xvcjogZ3JleTsKK30KKworLmZpcnN0Um93Rmlyc3RD
b2x1bW4geworICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICBncmlkLWNvbHVtbjogMTsKKyAg
Z3JpZC1yb3c6IDE7Cit9CisKKy5vbmx5Rmlyc3RSb3dPbmx5Rmlyc3RDb2x1bW4geworICBiYWNr
Z3JvdW5kLWNvbG9yOiBibHVlOworICBncmlkLWNvbHVtbjogMSAvIDI7CisgIGdyaWQtcm93OiAx
IC8gMjsKK30KKworLmZpcnN0Um93U2Vjb25kQ29sdW1uIHsKKyAgYmFja2dyb3VuZC1jb2xvcjog
bGltZTsKKyAgZ3JpZC1jb2x1bW46IDI7CisgIGdyaWQtcm93OiAxOworfQorCisub25seUZpcnN0
Um93T25seVNlY29uZENvbHVtbiB7CisgIGJhY2tncm91bmQtY29sb3I6IGxpbWU7CisgIGdyaWQt
Y29sdW1uOiAyIC8gMzsKKyAgZ3JpZC1yb3c6IDEgLyAyOworfQorCisuc2Vjb25kUm93Rmlyc3RD
b2x1bW4geworICBiYWNrZ3JvdW5kLWNvbG9yOiBwdXJwbGU7CisgIGdyaWQtY29sdW1uOiAxOwor
ICBncmlkLXJvdzogMjsKK30KKworLm9ubHlTZWNvbmRSb3dPbmx5Rmlyc3RDb2x1bW4geworICBi
YWNrZ3JvdW5kLWNvbG9yOiBwdXJwbGU7CisgIGdyaWQtY29sdW1uOiAxIC8gMjsKKyAgZ3JpZC1y
b3c6IDIgLyAzOworfQorCisuc2Vjb25kUm93U2Vjb25kQ29sdW1uIHsKKyAgYmFja2dyb3VuZC1j
b2xvcjogb3JhbmdlOworICBncmlkLWNvbHVtbjogMjsKKyAgZ3JpZC1yb3c6IDI7Cit9CisKKy5v
bmx5U2Vjb25kUm93T25seVNlY29uZENvbHVtbiB7CisgIGJhY2tncm91bmQtY29sb3I6IG9yYW5n
ZTsKKyAgZ3JpZC1jb2x1bW46IDIgLyAzOworICBncmlkLXJvdzogMiAvIDM7Cit9CisKKy5lbmRT
ZWNvbmRSb3dFbmRTZWNvbmRDb2x1bW4geworICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7Cisg
IGdyaWQtY29sdW1uLWVuZDogMzsKKyAgZ3JpZC1yb3ctZW5kOiAzOworfQorCisudGhpcmRSb3dT
ZWNvbmRDb2x1bW4geworICBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7CisgIGdyaWQtY29sdW1uOiAy
OworICBncmlkLXJvdzogMzsKK30KKworLmZpcnN0Um93VGhpcmRDb2x1bW4geworICBiYWNrZ3Jv
dW5kLWNvbG9yOiBtYWdlbnRhOworICBncmlkLWNvbHVtbjogMzsKKyAgZ3JpZC1yb3c6IDE7Cit9
CisKKy5zZWNvbmRSb3dUaGlyZENvbHVtbiB7CisgIGJhY2tncm91bmQtY29sb3I6IG5hdnk7Cisg
IGdyaWQtY29sdW1uOiAzOworICBncmlkLXJvdzogMjsKK30KKworLmZpcnN0Um93Rm91cnRoQ29s
dW1uIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgIGdyaWQtY29sdW1uOiA0OworICBn
cmlkLXJvdzogMTsKK30KKworLnNlY29uZFJvd0ZvdXJ0aENvbHVtbiB7CisgIGJhY2tncm91bmQt
Y29sb3I6IHBpbms7CisgIGdyaWQtY29sdW1uOiA0OworICBncmlkLXJvdzogMjsKK30KKworLmZp
cnN0QXV0b1Jvd1NlY29uZEF1dG9Db2x1bW4geworICBncmlkLXJvdzogMSAvIGF1dG87CisgIGdy
aWQtY29sdW1uOiAyIC8gYXV0bzsKK30KKworLmF1dG9MYXN0Um93QXV0b0xhc3RDb2x1bW4gewor
ICBncmlkLXJvdzogYXV0byAvIC0xOworICBncmlkLWNvbHVtbjogYXV0byAvIC0xOworfQorCisu
YXV0b1NlY29uZFJvd0F1dG9GaXJzdENvbHVtbiB7CisgIGdyaWQtcm93OiBhdXRvIC8gMjsKKyAg
Z3JpZC1jb2x1bW46IGF1dG8gLyAxOworfQorCisuZmlyc3RSb3dCb3RoQ29sdW1uIHsKKyAgZ3Jp
ZC1yb3c6IDE7CisgIGdyaWQtY29sdW1uOiAxIC8gLTE7Cit9CisKKy5zZWNvbmRSb3dCb3RoQ29s
dW1uIHsKKyAgZ3JpZC1yb3c6IDI7CisgIGdyaWQtY29sdW1uOiAxIC8gLTE7Cit9CisKKy5ib3Ro
Um93Rmlyc3RDb2x1bW4geworICBncmlkLXJvdzogMSAvIC0xOworICBncmlkLWNvbHVtbjogMTsK
K30KKworLmJvdGhSb3dTZWNvbmRDb2x1bW4geworICBncmlkLXJvdzogMSAvIC0xOworICBncmlk
LWNvbHVtbjogMjsKK30KKworLmJvdGhSb3dCb3RoQ29sdW1uIHsKKyAgZ3JpZC1yb3c6IDEgLyAt
MTsKKyAgZ3JpZC1jb2x1bW46IDEgLyAtMTsKK30KKworLyogQXV0byBjb2x1bW4gLyByb3cuICov
CisuYXV0b1Jvd0F1dG9Db2x1bW4geworICBiYWNrZ3JvdW5kLWNvbG9yOiBwaW5rOworICBncmlk
LWNvbHVtbjogYXV0bzsKKyAgZ3JpZC1yb3c6IGF1dG87Cit9CisKKy5maXJzdFJvd0F1dG9Db2x1
bW4geworICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICBncmlkLWNvbHVtbjogYXV0bzsKKyAg
Z3JpZC1yb3c6IDE7Cit9CisKKy5zZWNvbmRSb3dBdXRvQ29sdW1uIHsKKyAgYmFja2dyb3VuZC1j
b2xvcjogcHVycGxlOworICBncmlkLWNvbHVtbjogYXV0bzsKKyAgZ3JpZC1yb3c6IDI7Cit9CisK
Ky50aGlyZFJvd0F1dG9Db2x1bW4geworICBiYWNrZ3JvdW5kLWNvbG9yOiBuYXZ5OworICBncmlk
LWNvbHVtbjogYXV0bzsKKyAgZ3JpZC1yb3c6IDM7Cit9CisKKy5hdXRvUm93Rmlyc3RDb2x1bW4g
eworICBiYWNrZ3JvdW5kLWNvbG9yOiBsaW1lOworICBncmlkLWNvbHVtbjogMTsKKyAgZ3JpZC1y
b3c6IGF1dG87Cit9CisKKy5hdXRvUm93U2Vjb25kQ29sdW1uIHsKKyAgYmFja2dyb3VuZC1jb2xv
cjogb3JhbmdlOworICBncmlkLWNvbHVtbjogMjsKKyAgZ3JpZC1yb3c6IGF1dG87Cit9CisKKy5h
dXRvUm93VGhpcmRDb2x1bW4geworICBiYWNrZ3JvdW5kLWNvbG9yOiBtYWdlbnRhOworICBncmlk
LWNvbHVtbjogMzsKKyAgZ3JpZC1yb3c6IGF1dG87Cit9CisKKy5hdXRvUm93QXV0b0NvbHVtblNw
YW5uaW5nMiB7CisgIGJhY2tncm91bmQtY29sb3I6IG1hcm9vbjsKKyAgZ3JpZC1jb2x1bW46IHNw
YW4gMjsKKyAgZ3JpZC1yb3c6IGF1dG87Cit9CisKKy5hdXRvUm93U3Bhbm5pbmcyQXV0b0NvbHVt
biB7CisgIGJhY2tncm91bmQtY29sb3I6IGFxdWE7CisgIGdyaWQtY29sdW1uOiBhdXRvOworICBn
cmlkLXJvdzogc3BhbiAyOworfQorCisuYXV0b1Jvd1NwYW5uaW5nMkF1dG9Db2x1bW5TcGFubmlu
ZzMgeworICBiYWNrZ3JvdW5kLWNvbG9yOiBvbGl2ZTsKKyAgZ3JpZC1jb2x1bW46IHNwYW4gMzsK
KyAgZ3JpZC1yb3c6IHNwYW4gMjsKK30KKworLmF1dG9Sb3dTcGFubmluZzNBdXRvQ29sdW1uU3Bh
bm5pbmcyIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogaW5kaWdvOworICBncmlkLWNvbHVtbjogc3Bh
biAyOworICBncmlkLXJvdzogc3BhbiAzOworfQorCisuYXV0b1Jvd0ZpcnN0Q29sdW1uU3Bhbm5p
bmcyIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogbWFyb29uOworICBncmlkLWNvbHVtbjogMSAvIHNw
YW4gMjsKKyAgZ3JpZC1yb3c6IGF1dG87Cit9CisKKy5hdXRvUm93U2Vjb25kQ29sdW1uU3Bhbm5p
bmcyIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogb2xpdmU7CisgIGdyaWQtY29sdW1uOiAyIC8gc3Bh
biAyOworICBncmlkLXJvdzogYXV0bzsKK30KKworLmZpcnN0Um93U3Bhbm5pbmcyQXV0b0NvbHVt
biB7CisgIGJhY2tncm91bmQtY29sb3I6IG1hcm9vbjsKKyAgZ3JpZC1jb2x1bW46IGF1dG87Cisg
IGdyaWQtcm93OiAxIC8gc3BhbiAyOworICBoZWlnaHQ6IDEwMCU7Cit9CisKKy5zZWNvbmRSb3dT
cGFubmluZzJBdXRvQ29sdW1uIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogb2xpdmU7CisgIGdyaWQt
Y29sdW1uOiBhdXRvOworICBncmlkLXJvdzogMiAvIHNwYW4gMjsKKyAgaGVpZ2h0OiAxMDAlOwor
fQorCisvKiBHcmlkIGVsZW1lbnQgZmxvdy4gKi8KKy5ncmlkQXV0b0Zsb3dDb2x1bW5TcGFyc2Ug
eworICBncmlkLWF1dG8tZmxvdzogY29sdW1uOworfQorCisuZ3JpZEF1dG9GbG93Q29sdW1uRGVu
c2UgeworICBncmlkLWF1dG8tZmxvdzogY29sdW1uIGRlbnNlOworfQorCisuZ3JpZEF1dG9GbG93
Um93U3BhcnNlIHsKKyAgZ3JpZC1hdXRvLWZsb3c6IHJvdzsKK30KKworLmdyaWRBdXRvRmxvd1Jv
d0RlbnNlIHsKKyAgZ3JpZC1hdXRvLWZsb3c6IHJvdyBkZW5zZTsKK30KKworLyogVGhpcyBydWxl
IG1ha2VzIHN1cmUgdGhlIGNvbnRhaW5lciBpcyBzbWFsbGVyIHRoYW4gYW55IGdyaWQgaXRlbXMg
dG8gYXZvaWQgZGlzdHJpYnV0aW5nIGFueSBleHRyYSBsb2dpY2FsIHNwYWNlIHRvIHRoZW0uICov
CisuY29uc3RyYWluZWRDb250YWluZXIgeworICB3aWR0aDogMTBweDsKKyAgaGVpZ2h0OiAxMHB4
OworfQorCisudW5jb25zdHJhaW5lZENvbnRhaW5lciB7CisgIHdpZHRoOiAxMDAwcHg7CisgIGhl
aWdodDogMTAwMHB4OworfQorCisuc2l6ZWRUb0dyaWRBcmVhIHsKKyAgZm9udDogMTBweC8xIEFo
ZW07CisgIC8qIE1ha2UgdXMgZml0IG91ciBncmlkIGFyZWEuICovCisgIHdpZHRoOiAxMDAlOwor
ICBoZWlnaHQ6IDEwMCU7Cit9CisKKy52ZXJ0aWNhbFJMIHsKKyAgd3JpdGluZy1tb2RlOiB2ZXJ0
aWNhbC1ybDsKK30KKy52ZXJ0aWNhbExSIHsKKyAgd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjsK
K30KKy5ob3Jpem9udGFsVEIgeworICB3cml0aW5nLW1vZGU6IGhvcml6b250YWwtdGI7Cit9Cisu
ZGlyZWN0aW9uUlRMIHsKKyAgZGlyZWN0aW9uOiBydGw7Cit9CisuZGlyZWN0aW9uTFRSIHsKKyAg
ZGlyZWN0aW9uOiBsdHI7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9ncmlkLWRlZmluaXRpb24vc3VwcG9ydC90
ZXN0aW5nLXV0aWxzLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWdyaWQvZ3JpZC1kZWZpbml0aW9uL3N1cHBvcnQvdGVzdGluZy11dGlscy5q
cwppbmRleCAyMDJjODY1YjE1ZWFlNDYwOTQ2MTcxYzk3NzAzMzI2MDgxNWZlZmFkLi4yMTdiNjIw
NDYzNjI0ZTJmZWIyOTRiMzIwZTc3ODdmNmM5MWYxOTMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9ncmlkLWRlZmlu
aXRpb24vc3VwcG9ydC90ZXN0aW5nLXV0aWxzLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL2dyaWQtZGVmaW5pdGlvbi9zdXBw
b3J0L3Rlc3RpbmctdXRpbHMuanMKQEAgLTEsMTAgKzEsMTQgQEAKIHZhciBUZXN0aW5nVXRpbHMg
PSAoZnVuY3Rpb24oKSB7CiAKICAgICBmdW5jdGlvbiBjaGVja0dyaWRUZW1wbGF0ZUNvbHVtbnMo
ZWxlbWVudCwgdmFsdWUpIHsKKyAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkKKyAg
ICAgICAgICAgIHZhbHVlID0gbmV3IEFycmF5KHZhbHVlKTsKICAgICAgICAgYXNzZXJ0X2luX2Fy
cmF5KGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZ3JpZFRlbXBsYXRlQ29sdW1ucywgdmFsdWUs
ICJncmlkVGVtcGxhdGVDb2x1bW5zIik7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gY2hlY2tHcmlk
VGVtcGxhdGVSb3dzKGVsZW1lbnQsIHZhbHVlKSB7CisgICAgICAgIGlmICghQXJyYXkuaXNBcnJh
eSh2YWx1ZSkpCisgICAgICAgICAgICB2YWx1ZSA9IG5ldyBBcnJheSh2YWx1ZSk7CiAgICAgICAg
IGFzc2VydF9pbl9hcnJheShnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdyaWRUZW1wbGF0ZVJv
d3MsIHZhbHVlLCAiZ3JpZFRlbXBsYXRlUm93cyIpOwogICAgIH0KIApAQCAtMTksNiArMjMsOCBA
QCB2YXIgVGVzdGluZ1V0aWxzID0gKGZ1bmN0aW9uKCkgewogICAgIH0KIAogICAgIGZ1bmN0aW9u
IGNoZWNrR3JpZFRlbXBsYXRlQXJlYXMoZWxlbWVudCwgdmFsdWUpIHsKKyAgICAgICAgaWYgKCFB
cnJheS5pc0FycmF5KHZhbHVlKSkKKyAgICAgICAgICAgIHZhbHVlID0gbmV3IEFycmF5KHZhbHVl
KTsKICAgICAgICAgYXNzZXJ0X2luX2FycmF5KGdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZ3Jp
ZFRlbXBsYXRlQXJlYXMsIHZhbHVlLCAiZ3JpZFRlbXBsYXRlQXJlYXMiKTsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1ncmlkL2dyaWQtZGVmaW5pdGlvbi9zdXBwb3J0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvZ3JpZC1k
ZWZpbml0aW9uL3N1cHBvcnQvdzNjLWltcG9ydC5sb2cKaW5kZXggZmE0ZWE5YmFlN2UzZjgyODVh
MWE4YmM0MDUwMGY5ZDk1YjQxY2NlNy4uYWQwODgzMTAwOWM4NDM4NDczNzA1YmYyYjQ5MzExZjE2
NDlkYTRlNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWdyaWQvZ3JpZC1kZWZpbml0aW9uL3N1cHBvcnQvdzNjLWltcG9ydC5s
b2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWdyaWQvZ3JpZC1kZWZpbml0aW9uL3N1cHBvcnQvdzNjLWltcG9ydC5sb2cKQEAgLTE0LDQg
KzE0LDUgQEAgUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CiBOb25l
CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvZ3JpZC1kZWZpbml0aW9uL3N1cHBv
cnQvZ3JpZC5jc3MKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtZ3JpZC9ncmlkLWRlZmluaXRpb24vc3VwcG9ydC90ZXN0aW5nLXV0aWxzLmpzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtZ3JpZC9ncmlkLWRlZmluaXRpb24vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZC9ncmlkLWRlZmluaXRp
b24vdzNjLWltcG9ydC5sb2cKaW5kZXggMGRkYWUwYWQwMDA3MWUyNWRlZTE2ZjFiMTI5ZDYyNmQ1
NmY2ZTc3Ny4uYWJjYWI0YmQ0NmNhZGU5ODc2YjllYjg3Y2RjMmNjNjI4MzgxNjdhNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWdyaWQvZ3JpZC1kZWZpbml0aW9uL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL2dyaWQtZGVmaW5pdGlv
bi93M2MtaW1wb3J0LmxvZwpAQCAtMTksNiArMTksNyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1ncmlkL2dyaWQt
ZGVmaW5pdGlvbi9mci11bml0LXdpdGgtcGVyY2VudGFnZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvZ3JpZC1kZWZpbml0aW9u
L2ZyLXVuaXQuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1ncmlkL2dyaWQtZGVmaW5pdGlvbi9ncmlkLWNoYW5nZS1maXQtY29udGVudC1h
cmd1bWVudC0wMDEuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1ncmlkL2dyaWQtZGVmaW5pdGlvbi9ncmlkLWlubGluZS1hdXRvLXJlcGVh
dC0wMDEuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1ncmlkL2dyaWQtZGVmaW5pdGlvbi9ncmlkLWlubGluZS1zdXBwb3J0LWZsZXhpYmxl
LWxlbmd0aHMtMDAxLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtZ3JpZC9ncmlkLWRlZmluaXRpb24vZ3JpZC1pbmxpbmUtc3VwcG9ydC1n
cmlkLXRlbXBsYXRlLWFyZWFzLTAwMS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWdyaWQvZ3JpZC1kZWZpbml0aW9uL2dyaWQtaW5saW5l
LXN1cHBvcnQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zLXJvd3MtMDAxLmh0bWwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Nv
cnMvY29ycy1jb29raWVzLXJlZGlyZWN0LmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtY29va2ll
cy1yZWRpcmVjdC5hbnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhOGViNjFiYzAwN2RlZGEy
MTNmYjY1ZTc5OWQ5NjlkNjE3OWEzZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtY29va2ll
cy1yZWRpcmVjdC5hbnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTIFNldCBj
b29raWVzIAorUEFTUyBUZXN0aW5nIGNyZWRlbnRpYWxzIGFmdGVyIGNyb3NzLW9yaWdpbiByZWRp
cmVjdGlvbiB3aXRoIENPUlMgYW5kIG5vIHByZWZsaWdodCAKK1BBU1MgVGVzdGluZyBjcmVkZW50
aWFscyBhZnRlciBjcm9zcy1vcmlnaW4gcmVkaXJlY3Rpb24gd2l0aCBDT1JTIGFuZCBwcmVmbGln
aHQgCitQQVNTIENsZWFuIGNvb2tpZXMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1jb29raWVzLXJl
ZGlyZWN0LmFueS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLWNvb2tpZXMtcmVkaXJlY3QuYW55Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjM4MjkxMzUyOGU2OTNiM2E1ZDU2YzY2MGE0NTA2MDk4MGI1NDhjMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2NvcnMvY29ycy1jb29raWVzLXJlZGlyZWN0LmFueS5odG1sCkBAIC0wLDAgKzEgQEAK
KzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVy
ZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1jb29raWVzLXJlZGlyZWN0LmFueS5qcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1j
b29raWVzLXJlZGlyZWN0LmFueS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTIxN2I0MjQ2MGE1N2MxOTEzMDBi
ZGRjZTIxYjZjZGU2YTY5N2QwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLWNvb2tpZXMtcmVk
aXJlY3QuYW55LmpzCkBAIC0wLDAgKzEsNDkgQEAKKy8vIE1FVEE6IHNjcmlwdD0vY29tbW9uL3V0
aWxzLmpzCisvLyBNRVRBOiBzY3JpcHQ9Li4vcmVzb3VyY2VzL3V0aWxzLmpzCisvLyBNRVRBOiBz
Y3JpcHQ9L2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcworCit2YXIgcmVkaXJlY3RVcmwgPSBn
ZXRfaG9zdF9pbmZvKCkuSFRUUF9SRU1PVEVfT1JJR0lOICsgZGlybmFtZShsb2NhdGlvbi5wYXRo
bmFtZSkgKyBSRVNPVVJDRVNfRElSICsgInJlZGlyZWN0LnB5IjsKK3ZhciB1cmxTZXRDb29raWVz
MSA9IGdldF9ob3N0X2luZm8oKS5IVFRQX1JFTU9URV9PUklHSU4gKyBkaXJuYW1lKGxvY2F0aW9u
LnBhdGhuYW1lKSArIFJFU09VUkNFU19ESVIgKyAidG9wLnR4dCI7Cit2YXIgdXJsU2V0Q29va2ll
czIgPSBnZXRfaG9zdF9pbmZvKCkuSFRUUF9PUklHSU5fV0lUSF9ESUZGRVJFTlRfUE9SVCArIGRp
cm5hbWUobG9jYXRpb24ucGF0aG5hbWUpICsgUkVTT1VSQ0VTX0RJUiArICJ0b3AudHh0IjsKK3Zh
ciB1cmxDaGVja0Nvb2tpZXMgPSBnZXRfaG9zdF9pbmZvKCkuSFRUUF9PUklHSU5fV0lUSF9ESUZG
RVJFTlRfUE9SVCArIGRpcm5hbWUobG9jYXRpb24ucGF0aG5hbWUpICsgUkVTT1VSQ0VTX0RJUiAr
ICJpbnNwZWN0LWhlYWRlcnMucHk/Y29ycyZoZWFkZXJzPWNvb2tpZSI7CisKK3ZhciB1cmxTZXRD
b29raWVzUGFyYW1ldGVycyA9ICI/cGlwZT1oZWFkZXIoQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3Jp
Z2luLCIgKyBsb2NhdGlvbi5vcmlnaW4gKyAiKSI7Cit1cmxTZXRDb29raWVzUGFyYW1ldGVycyAr
PSAifGhlYWRlcihBY2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50aWFscyx0cnVlKSI7CisKK3Vy
bFNldENvb2tpZXNQYXJhbWV0ZXJzMSA9IHVybFNldENvb2tpZXNQYXJhbWV0ZXJzICsgInxoZWFk
ZXIoU2V0LUNvb2tpZSxhPTEpIjsKK3VybFNldENvb2tpZXNQYXJhbWV0ZXJzMiA9IHVybFNldENv
b2tpZXNQYXJhbWV0ZXJzICsgInxoZWFkZXIoU2V0LUNvb2tpZSxhPTIpIjsKKwordXJsQ2xlYXJD
b29raWVzUGFyYW1ldGVyczEgPSB1cmxTZXRDb29raWVzUGFyYW1ldGVycyArICJ8aGVhZGVyKFNl
dC1Db29raWUsYT0xJTNCJTIwbWF4LWFnZT0wKSI7Cit1cmxDbGVhckNvb2tpZXNQYXJhbWV0ZXJz
MiA9IHVybFNldENvb2tpZXNQYXJhbWV0ZXJzICsgInxoZWFkZXIoU2V0LUNvb2tpZSxhPTIlM0Il
MjBtYXgtYWdlPTApIjsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgYXdh
aXQgZmV0Y2godXJsU2V0Q29va2llczEgKyB1cmxTZXRDb29raWVzUGFyYW1ldGVyczEsIHsiY3Jl
ZGVudGlhbHMiOiAiaW5jbHVkZSIsICJtb2RlIjogImNvcnMifSk7CisgICAgYXdhaXQgZmV0Y2go
dXJsU2V0Q29va2llczIgKyB1cmxTZXRDb29raWVzUGFyYW1ldGVyczIsIHsiY3JlZGVudGlhbHMi
OiAiaW5jbHVkZSIsICJtb2RlIjogImNvcnMifSk7Cit9LCAiU2V0IGNvb2tpZXMiKTsKKworZnVu
Y3Rpb24gZG9UZXN0KHVzZVByZWZsaWdodCkgeworICAgIHByb21pc2VfdGVzdChhc3luYyAodGVz
dCkgPT4geworICAgICAgICB2YXIgdXJsID0gcmVkaXJlY3RVcmw7CisgICAgICAgIHZhciB1dWlk
X3Rva2VuID0gdG9rZW4oKTsKKyAgICAgICAgdmFyIHVybFBhcmFtZXRlcnMgPSAiP3Rva2VuPSIg
KyB1dWlkX3Rva2VuICsgIiZtYXhfYWdlPTAiOworICAgICAgICB1cmxQYXJhbWV0ZXJzICs9ICIm
cmVkaXJlY3Rfc3RhdHVzPTMwMSI7CisgICAgICAgIHVybFBhcmFtZXRlcnMgKz0gIiZsb2NhdGlv
bj0iICsgZW5jb2RlVVJJQ29tcG9uZW50KHVybENoZWNrQ29va2llcyk7CisgICAgICAgIHVybFBh
cmFtZXRlcnMgKz0gIiZhbGxvd19oZWFkZXJzPWEmaGVhZGVycz1Db29raWUiOworICAgICAgICBo
ZWFkZXJzID0gW107CisgICAgICAgIGlmICh1c2VQcmVmbGlnaHQpCisgICAgICAgICAgICBoZWFk
ZXJzLnB1c2goWyJhIiwgImIiXSk7CisKKyAgICAgICAgdmFyIHJlcXVlc3RJbml0ID0geyJjcmVk
ZW50aWFscyI6ICJpbmNsdWRlIiwgIm1vZGUiOiAiY29ycyIsICJoZWFkZXJzIjogaGVhZGVyc307
CisgICAgICAgIHZhciByZXNwb25zZSA9IGF3YWl0IGZldGNoKHVybCArIHVybFBhcmFtZXRlcnMs
IHJlcXVlc3RJbml0KTsKKworICAgICAgICBhc3NlcnRfZXF1YWxzKHJlc3BvbnNlLmhlYWRlcnMu
Z2V0KCJ4LXJlcXVlc3QtY29va2llIikgLCAiYT0yIiwgIlJlcXVlc3QgaW5jbHVkZXMgY29va2ll
KHMpIik7CisgICAgfSwgIlRlc3RpbmcgY3JlZGVudGlhbHMgYWZ0ZXIgY3Jvc3Mtb3JpZ2luIHJl
ZGlyZWN0aW9uIHdpdGggQ09SUyBhbmQgIiArICh1c2VQcmVmbGlnaHQgPyAiIiA6ICJubyAiKSAr
ICJwcmVmbGlnaHQiKTsKK30KKworZG9UZXN0KGZhbHNlKTsKK2RvVGVzdCh0cnVlKTsKKworcHJv
bWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgYXdhaXQgZmV0Y2godXJsU2V0Q29va2ll
czEgKyB1cmxDbGVhckNvb2tpZXNQYXJhbWV0ZXJzMSwgeyJjcmVkZW50aWFscyI6ICJpbmNsdWRl
IiwgIm1vZGUiOiAiY29ycyJ9KTsKKyAgICBhd2FpdCBmZXRjaCh1cmxTZXRDb29raWVzMiArIHVy
bENsZWFyQ29va2llc1BhcmFtZXRlcnMyLCB7ImNyZWRlbnRpYWxzIjogImluY2x1ZGUiLCAibW9k
ZSI6ICJjb3JzIn0pOworfSwgIkNsZWFuIGNvb2tpZXMiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1j
b29raWVzLXJlZGlyZWN0LmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLWNvb2tpZXMt
cmVkaXJlY3QuYW55Lndvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGE4ZWI2MWJjMDA3
ZGVkYTIxM2ZiNjVlNzk5ZDk2OWQ2MTc5YTNlMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1j
b29raWVzLXJlZGlyZWN0LmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAor
CitQQVNTIFNldCBjb29raWVzIAorUEFTUyBUZXN0aW5nIGNyZWRlbnRpYWxzIGFmdGVyIGNyb3Nz
LW9yaWdpbiByZWRpcmVjdGlvbiB3aXRoIENPUlMgYW5kIG5vIHByZWZsaWdodCAKK1BBU1MgVGVz
dGluZyBjcmVkZW50aWFscyBhZnRlciBjcm9zcy1vcmlnaW4gcmVkaXJlY3Rpb24gd2l0aCBDT1JT
IGFuZCBwcmVmbGlnaHQgCitQQVNTIENsZWFuIGNvb2tpZXMgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29y
cy1jb29raWVzLXJlZGlyZWN0LmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1jb29raWVzLXJlZGly
ZWN0LmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2IzYTVkNTZjNjYw
YTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLWNvb2tpZXMtcmVkaXJl
Y3QuYW55Lndvcmtlci5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVp
cmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0
ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9p
bnNwZWN0LWhlYWRlcnMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvaW5zcGVjdC1oZWFkZXJzLnB5CmluZGV4IGM0YWNl
MThhYjY0YjExZTljMDkwNTRjMDhiZTJkNGQyMmY3MDI2NGUuLmQ1MzAzOGNlZTBiZDc5ZWU1ZDFk
ZTI3MzJhNDcxNDVjYjZlZWNhZWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc291cmNlcy9pbnNwZWN0LWhlYWRlcnMu
cHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvcmVzb3VyY2VzL2luc3BlY3QtaGVhZGVycy5weQpAQCAtMTYsNyArMTYsMTAgQEAgZGVm
IG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgogICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vz
cy1Db250cm9sLUFsbG93LU1ldGhvZHMiLCAiR0VULCBQT1NULCBIRUFEIikpCiAgICAgICAgIGV4
cG9zZWRfaGVhZGVycyA9IFsieC1yZXF1ZXN0LSIgKyBoZWFkZXIgZm9yIGhlYWRlciBpbiBjaGVj
a2VkX2hlYWRlcnNdCiAgICAgICAgIGhlYWRlcnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtRXhw
b3NlLUhlYWRlcnMiLCAiLCAiLmpvaW4oZXhwb3NlZF9oZWFkZXJzKSkpCi0gICAgICAgIGhlYWRl
cnMuYXBwZW5kKCgiQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycyIsICIsICIuam9pbihyZXF1
ZXN0LmhlYWRlcnMpKSkKKyAgICAgICAgaWYgImFsbG93X2hlYWRlcnMiIGluIHJlcXVlc3QuR0VU
OgorICAgICAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFk
ZXJzIiwgcmVxdWVzdC5HRVRbJ2FsbG93X2hlYWRlcnMnXSkpCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMiLCAi
LCAiLmpvaW4ocmVxdWVzdC5oZWFkZXJzKSkpCiAKICAgICBoZWFkZXJzLmFwcGVuZCgoImNvbnRl
bnQtdHlwZSIsICJ0ZXh0L3BsYWluIikpCiAgICAgcmV0dXJuIGhlYWRlcnMsICIiCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9yZXNvdXJjZXMvcmVkaXJlY3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNvdXJjZXMvcmVkaXJlY3QucHkKaW5kZXggNTE4NGJl
MWY2MTFmMzMxM2JiNjU2NDhlZjIxMTE4YTU1ODg3OTRhZS4uODZiYTFkNmRlNTgxZDI1MGI1YWJl
OGI5ZTU1OTkwYTMzODk2YTJhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzb3VyY2VzL3JlZGlyZWN0LnB5CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jl
c291cmNlcy9yZWRpcmVjdC5weQpAQCAtNiwxMCArNiwxNCBAQCBkZWYgbWFpbihyZXF1ZXN0LCBy
ZXNwb25zZSk6CiAgICAgc3RhdHVzID0gMzAyCiAgICAgaGVhZGVycyA9IFsoIkNvbnRlbnQtVHlw
ZSIsICJ0ZXh0L3BsYWluIiksCiAgICAgICAgICAgICAgICAoIkNhY2hlLUNvbnRyb2wiLCAibm8t
Y2FjaGUiKSwKLSAgICAgICAgICAgICAgICgiUHJhZ21hIiwgIm5vLWNhY2hlIiksCi0gICAgICAg
ICAgICAgICAoIkFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsICIqIildCi0gICAgdG9rZW4g
PSBOb25lCisgICAgICAgICAgICAgICAoIlByYWdtYSIsICJuby1jYWNoZSIpXQorICAgIGlmICJP
cmlnaW4iIGluIHJlcXVlc3QuaGVhZGVyczoKKyAgICAgICAgaGVhZGVycy5hcHBlbmQoKCJBY2Nl
c3MtQ29udHJvbC1BbGxvdy1PcmlnaW4iLCByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJPcmlnaW4iLCAi
IikpKQorICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFjY2Vzcy1Db250cm9sLUFsbG93LUNyZWRl
bnRpYWxzIiwgInRydWUiKSkKKyAgICBlbHNlOgorICAgICAgICBoZWFkZXJzLmFwcGVuZCgoIkFj
Y2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbiIsICIqIikpCiAKKyAgICB0b2tlbiA9IE5vbmUKICAg
ICBpZiAidG9rZW4iIGluIHJlcXVlc3QuR0VUOgogICAgICAgICB0b2tlbiA9IHJlcXVlc3QuR0VU
LmZpcnN0KCJ0b2tlbiIpCiAgICAgICAgIGRhdGEgPSByZXF1ZXN0LnNlcnZlci5zdGFzaC50YWtl
KHRva2VuKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9PV05FUlMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL09XTkVSUwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODE0OWJlN2ZjYTViOGRlMWFlMWMy
NWQxYTRlNGRhNjk5MjBhODNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9PV05FUlMKQEAgLTAsMCArMSwyIEBACitA
amdyYWhhbQorQGdzbmVkZGVycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9hcHB2ZXlvci55bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2FwcHZleW9yLnltbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iMGNlZGQ1Yzc4ZmJiZWJlOGRjMDY5YzJmZTUxZGY0ZDlkNTk5ZjkwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9h
cHB2ZXlvci55bWwKQEAgLTAsMCArMSwzMiBAQAorZW52aXJvbm1lbnQ6CisgIGdsb2JhbDoKKyAg
ICBIWVBPVEhFU0lTX1BST0ZJTEU6IGNpCisgIG1hdHJpeDoKKyAgICAtIFBZVEhPTjogJ0M6XFxQ
eXRob24yNycKKyAgICAtIFBZVEhPTjogJ0M6XFxQeXRob24zNScKKyAgICAtIFBZVEhPTjogJ0M6
XFxQeXRob24zNicKKworIyBOZWVkZWQgdG8gbWFrZSBweS50ZXN0IGJlbGlldmUgb3VyIHRvcCBs
ZXZlbCBjYW4gYmUgaW1wb3J0ZWQgKHdlCisjIG90aGVyd2lzZSBlbmQgdXAgaW4gYSB3cHQtdG9v
bHMgZGlyZWN0b3J5LCBhbmQgb2YgY291cnNlIHlvdSBjYW5ub3QKKyMgaW1wb3J0IGEgbmFtZSBp
bmNsdWRpbmcgYSBoeXBoZW4gaW4gUHl0aG9uLCBzbyBpdCBpZ25vcmVzIHRoZSBmYWN0CisjIHdl
IGhhdmUgYSBfX2luaXRfXy5weSBhdCB0aGUgdG9wIGxldmVsKS4KK2Nsb25lX2ZvbGRlcjogJ0M6
XHByb2plY3RzXHdwdHRvb2xzJworCitpbml0OgorICAtICdnaXQgY29uZmlnIC0tZ2xvYmFsIGNv
cmUuYXV0b2NybGYgdHJ1ZScKKworaW5zdGFsbDoKKyAgLSAncm0gLmdpdFxpbmRleCcKKyAgLSAn
Z2l0IHJlc2V0IC0taGFyZCcKKyAgLSAnU0VUIFBBVEg9JVBZVEhPTiU7JVBZVEhPTiVcXFNjcmlw
dHM7JVBBVEglJworICAtICdnaXQgc3VibW9kdWxlIHVwZGF0ZSAtLWluaXQgLS1yZWN1cnNpdmUn
CisgIC0gJ3B5dGhvbi5leGUgLW0gcGlwIGluc3RhbGwgdG94IGNvZGVjb3YnCisKK2J1aWxkOiBv
ZmYKKwordGVzdF9zY3JpcHQ6CisgIC0gJ3RveCAtZSBweScKKworb25fc3VjY2VzczoKKyAgLSAn
Y292ZXJhZ2UgY29tYmluZScKKyAgLSAnY29kZWNvdicKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvY2FjZXJ0LnBlbSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMv
Y2FjZXJ0LnBlbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNGE2MWM0N2IzN2NkNzc2ZWY1OTUyMGRkM2I1YmFkMDQx
MTIxNDdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy9jYWNlcnQucGVtCkBAIC0wLDAgKzEsODMgQEAKK0Nl
cnRpZmljYXRlOgorICAgIERhdGE6CisgICAgICAgIFZlcnNpb246IDMgKDB4MikKKyAgICAgICAg
U2VyaWFsIE51bWJlcjogMSAoMHgxKQorICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IHNoYTI1Nldp
dGhSU0FFbmNyeXB0aW9uCisgICAgICAgIElzc3VlcjogQ049d2ViLXBsYXRmb3JtLXRlc3RzCisg
ICAgICAgIFZhbGlkaXR5CisgICAgICAgICAgICBOb3QgQmVmb3JlOiBEZWMgMjIgMTI6MDk6MTUg
MjAxNCBHTVQKKyAgICAgICAgICAgIE5vdCBBZnRlciA6IERlYyAyMSAxMjowOToxNSAyMDI0IEdN
VAorICAgICAgICBTdWJqZWN0OiBDTj13ZWItcGxhdGZvcm0tdGVzdHMKKyAgICAgICAgU3ViamVj
dCBQdWJsaWMgS2V5IEluZm86CisgICAgICAgICAgICBQdWJsaWMgS2V5IEFsZ29yaXRobTogcnNh
RW5jcnlwdGlvbgorICAgICAgICAgICAgICAgIFB1YmxpYy1LZXk6ICgyMDQ4IGJpdCkKKyAgICAg
ICAgICAgICAgICBNb2R1bHVzOgorICAgICAgICAgICAgICAgICAgICAwMDpjMDozZTpjMzpiZDpi
Nzo5ZToyZTozZTplYzoxZjphNTphZTo5Zjo4NToKKyAgICAgICAgICAgICAgICAgICAgOGQ6YzA6
NTk6YTQ6NDA6YTg6ZmU6NjY6Y2Y6ZWY6N2Q6MWY6NGE6OTE6NTI6CisgICAgICAgICAgICAgICAg
ICAgIGU2OjU1OjBmOmU1OjY5OmI4OjQ0OmRhOjYyOjE3OmM3Ojg4OjI4OmFkOmVjOgorICAgICAg
ICAgICAgICAgICAgICA2ZDpiMDowMDpjZDphMTo2OTowZTplODoxOTo4NDo1ODphZDplOTpjZToz
MToKKyAgICAgICAgICAgICAgICAgICAgNTA6NmM6YTQ6ODI6MTQ6OTE6MDg6NWE6YTM6YWU6Yzg6
NDk6MTM6MTk6MTg6CisgICAgICAgICAgICAgICAgICAgIDdiOjViOjJiOjQ0OjMwOmViOmJmOmM3
OjdjOmJiOmQ0OjMyOjE3OjZhOjRkOgorICAgICAgICAgICAgICAgICAgICBlYjo4NDpmMTo2NTo5
Yjo5ZDoyMTozZTo5MTphZTo3NDo3NTpiMzo3YzpiNDoKKyAgICAgICAgICAgICAgICAgICAgY2Q6
ZmE6OTg6NzM6ZDQ6N2M6ZDE6NWQ6MWI6ODk6NzI6Zjc6ZDQ6NTI6YmQ6CisgICAgICAgICAgICAg
ICAgICAgIDA1OmEzOmMxOmNmOmI2OjU4OmU3OjUxOmVjOmMyOjcxOmM3OmY2OjBiOjAwOgorICAg
ICAgICAgICAgICAgICAgICA5Nzo1ODpmOTpjYjpjMzoxODo0Njo3Yjo1NTowZjo5MDpiZjpkYTph
Mzo3ZDoKKyAgICAgICAgICAgICAgICAgICAgZDY6YzU6NDg6ZWE6YjM6YjU6YTg6MTI6OTY6YWM6
Mzg6NjU6MTA6Yjk6YjE6CisgICAgICAgICAgICAgICAgICAgIDY5OmNiOjRlOjNiOjRjOmMzOjgz
Ojc0OjMzOjYzOmI0OmNjOmZlOjY1OmMxOgorICAgICAgICAgICAgICAgICAgICBhZDoxMjo1MTpm
MTowMjo3Mjo1MDo0OTowMzphYjphNjoyODoyMDo0MToxNToKKyAgICAgICAgICAgICAgICAgICAg
Y2E6Nzc6MTU6ZDk6ODU6NTU6Njk6OWQ6MzE6YzE6ZGI6MTI6YmU6NDY6ZGI6CisgICAgICAgICAg
ICAgICAgICAgIGU2OmQzOjhmOjJmOjY2OjJkOjliOjYxOjA4OjMwOjU3OjZjOmQ5OjRmOmIxOgor
ICAgICAgICAgICAgICAgICAgICA2YTphODplNTo5MDplMzplMjo2ODo5Njo0NTo2ZTozZjpkZTo1
ZToxMzpmZToKKyAgICAgICAgICAgICAgICAgICAgOGE6YmQ6ZjE6M2Y6N2Y6MjY6ZWM6M2M6MWE6
ODA6YjA6YTg6ZWM6NTI6YzU6CisgICAgICAgICAgICAgICAgICAgIDExOjAzCisgICAgICAgICAg
ICAgICAgRXhwb25lbnQ6IDY1NTM3ICgweDEwMDAxKQorICAgICAgICBYNTA5djMgZXh0ZW5zaW9u
czoKKyAgICAgICAgICAgIFg1MDl2MyBCYXNpYyBDb25zdHJhaW50czogCisgICAgICAgICAgICAg
ICAgQ0E6VFJVRQorICAgICAgICAgICAgWDUwOXYzIFN1YmplY3QgS2V5IElkZW50aWZpZXI6IAor
ICAgICAgICAgICAgICAgIDZBOkFCOjUzOjY0OjkyOjM2Ojg3OjIzOjM0OkIzOjFEOjZGOjg1OjRC
OkY1OkRGOjVBOjVDOjc0OjhGCisgICAgICAgICAgICBYNTA5djMgQXV0aG9yaXR5IEtleSBJZGVu
dGlmaWVyOiAKKyAgICAgICAgICAgICAgICBrZXlpZDo2QTpBQjo1Mzo2NDo5MjozNjo4NzoyMzoz
NDpCMzoxRDo2Rjo4NTo0QjpGNTpERjo1QTo1Qzo3NDo4RgorICAgICAgICAgICAgICAgIERpck5h
bWU6L0NOPXdlYi1wbGF0Zm9ybS10ZXN0cworICAgICAgICAgICAgICAgIHNlcmlhbDowMQorCisg
ICAgICAgICAgICBYNTA5djMgS2V5IFVzYWdlOiAKKyAgICAgICAgICAgICAgICBDZXJ0aWZpY2F0
ZSBTaWduCisgICAgICAgICAgICBYNTA5djMgRXh0ZW5kZWQgS2V5IFVzYWdlOiAKKyAgICAgICAg
ICAgICAgICBUTFMgV2ViIFNlcnZlciBBdXRoZW50aWNhdGlvbgorICAgIFNpZ25hdHVyZSBBbGdv
cml0aG06IHNoYTI1NldpdGhSU0FFbmNyeXB0aW9uCisgICAgICAgICA0NjphZjowMjowNDo5Nzoy
Zjo1YjowMDoxMTpjNTo4ZjpjNDplMToyYjoyMzo2MjpkMTo2MToKKyAgICAgICAgIDRhOjI4OmVk
OjgyOjgyOjU3OmQ3OjI4OjY1Ojg4OmE1OjYxOjE2OjIwOjM3OjAyOjkwOjE2OgorICAgICAgICAg
MGI6MDU6NDM6NDY6ZGI6YmQ6M2Q6YjQ6NGQ6MWM6NmU6ODU6ZmY6NWQ6ZGM6MGY6YTQ6YTQ6Cisg
ICAgICAgICAyOTo5ODoyNDphZTozOTphYjplNDo5NzphOToxMDpiYzphNTpiOTo0YjpjMToyZTo1
YTpjZToKKyAgICAgICAgIDg5OjMyOjAwOmYxOmZjOjk0OjM1OmE2OjcxOmM4OjljOmQ5OjA1OjQz
OjQ0OjZjOjY4OjYyOgorICAgICAgICAgYWU6YjE6NzE6MjA6MTc6NWY6YzQ6ZmI6YWU6MDU6ZTY6
MjY6ZTU6NDE6ODg6Y2M6ZGI6NTE6CisgICAgICAgICA1NTplZDo4NTphMDpjOTplNTo2ODo2NTph
NzpmYTo3YTpkYjo4Zjo4MTo2MTo2MDo1MDowYjoKKyAgICAgICAgIDE2OmIwOjEwOjQ5OjE5OmJi
OjcwOjBlOjM3OjA5OjAzOjIwOmU4OmEyOmI5OmU1OmViOmMyOgorICAgICAgICAgNmE6N2I6NGY6
NjA6Y2Q6ZmI6MjI6MGI6Mjc6YzY6MGQ6MmQ6ZTI6MzI6Y2M6Mjg6ZGU6YzY6CisgICAgICAgICBl
MjoxNDo2YTphZDozZjpjNDo2ZTo3ODo5ZDo3MToyNDo5Yjo1NjpjNDo1NDoyODplOTplYzoKKyAg
ICAgICAgIDA5OjZlOjM0OmNjOjZkOjVjOmJjOmU2OjY4Ojk2OjQ0OmZmOjYyOmQwOjU0OmEwOmE0
OjM3OgorICAgICAgICAgZDg6Zjc6OWY6YmM6YmI6ZGM6YWQ6MmM6NDk6ZTI6NjQ6Yjk6NGQ6YWE6
ZTQ6MjI6ZTY6ZGY6CisgICAgICAgICAzYToxNzoyMzoxMzpjMTphYTowZTo5NDoyNzo0Njo1ZDox
MTpiOTowYjpkYzozZDpjZjo5MzoKKyAgICAgICAgIDIwOmViOjE4OjU2OmM1OmFjOmUzOjkyOmVi
OjU1OmQzOmNiOmNlOmU0OjljOjIxOjg1OmQ2OgorICAgICAgICAgMjE6OTM6OTI6NGYKKy0tLS0t
QkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJRFR6Q0NBamVnQXdJQkFnSUJBVEFOQmdrcWhraUc5
dzBCQVFzRkFEQWRNUnN3R1FZRFZRUUREQkozWldJdAorY0d4aGRHWnZjbTB0ZEdWemRITXdIaGNO
TVRReE1qSXlNVEl3T1RFMVdoY05NalF4TWpJeE1USXdPVEUxV2pBZAorTVJzd0dRWURWUVFEREJK
M1pXSXRjR3hoZEdadmNtMHRkR1Z6ZEhNd2dnRWlNQTBHQ1NxR1NJYjNEUUVCQVFVQQorQTRJQkR3
QXdnZ0VLQW9JQkFRREFQc085dDU0dVB1d2ZwYTZmaFkzQVdhUkFxUDVteis5OUgwcVJVdVpWRCtW
cAordUVUYVloZkhpQ2l0N0cyd0FNMmhhUTdvR1lSWXJlbk9NVkJzcElJVWtRaGFvNjdJU1JNWkdI
dGJLMFF3NjcvSAorZkx2VU1oZHFUZXVFOFdXYm5TRStrYTUwZGJOOHRNMzZtSFBVZk5GZEc0bHk5
OVJTdlFXandjKzJXT2RSN01KeAoreC9ZTEFKZFkrY3ZER0VaN1ZRK1F2OXFqZmRiRlNPcXp0YWdT
bHF3NFpSQzVzV25MVGp0TXc0TjBNMk8welA1bAord2EwU1VmRUNjbEJKQTZ1bUtDQkJGY3AzRmRt
RlZXbWRNY0hiRXI1RzIrYlRqeTltTFp0aENEQlhiTmxQc1dxbworNVpEajRtaVdSVzQvM2w0VC9v
cTk4VDkvSnV3OEdvQ3dxT3hTeFJFREFnTUJBQUdqZ1prd2daWXdEQVlEVlIwVAorQkFVd0F3RUIv
ekFkQmdOVkhRNEVGZ1FVYXF0VFpKSTJoeU0wc3gxdmhVdjEzMXBjZEk4d1JRWURWUjBqQkQ0dwor
UElBVWFxdFRaSkkyaHlNMHN4MXZoVXYxMzFwY2RJK2hJYVFmTUIweEd6QVpCZ05WQkFNTUVuZGxZ
aTF3YkdGMAorWm05eWJTMTBaWE4wYzRJQkFUQUxCZ05WSFE4RUJBTUNBZ1F3RXdZRFZSMGxCQXd3
Q2dZSUt3WUJCUVVIQXdFdworRFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUVhdkFnU1hMMXNBRWNX
UHhPRXJJMkxSWVVvbzdZS0NWOWNvWllpbAorWVJZZ053S1FGZ3NGUTBiYnZUMjBUUnh1aGY5ZDNB
K2twQ21ZSks0NXErU1hxUkM4cGJsTHdTNWF6b2t5QVBIOAorbERXbWNjaWMyUVZEUkd4b1lxNnhj
U0FYWDhUN3JnWG1KdVZCaU16YlVWWHRoYURKNVdobHAvcDYyNCtCWVdCUQorQ3hhd0VFa1p1M0FP
TndrRElPaWl1ZVhyd21wN1QyRE4reUlMSjhZTkxlSXl6Q2pleHVJVWFxMC94RzU0blhFaworbTFi
RVZDanA3QWx1Tk14dFhMem1hSlpFLzJMUVZLQ2tOOWozbjd5NzNLMHNTZUprdVUycTVDTG0zem9Y
SXhQQgorcWc2VUowWmRFYmtMM0QzUGt5RHJHRmJGck9PUzYxWFR5ODdrbkNHRjFpR1Rrazg9Cist
LS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL2Nha2V5LnBlbSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvY2FrZXkucGVt
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjU4YjVmZjc1Njg0YTMwNzZhYmQzN2YxMzVjZjI0YTY1NGExNzU5MjkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NlcnRzL2Nha2V5LnBlbQpAQCAtMCwwICsxLDMwIEBACistLS0tLUJFR0lOIEVO
Q1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCitNSUlGRGpCQUJna3Foa2lHOXcwQkJRMHdNekFiQmdr
cWhraUc5dzBCQlF3d0RnUUliOUVTN2g2WUdCY0NBZ2dBCitNQlFHQ0NxR1NJYjNEUU1IQkFpMlpW
TGdxMVh2YWdTQ0JNakFtR0VWdmp3WHZGMDB2ZXVRbUpzbWNqVkhCL3FQCitWcVNYakNROTRvclpi
ODlVZkZuUE85elhkdkxXeHJ3YjVXUDZiYlF2K1NoNGh0RXhYQ0Q1WFppMUF6V05DeWJlCitkYTB2
dlFHZ2pkelVoMmZDckc0SzdKMHcyMGxyWWd3M0hWU2ovV3RtZGJkWkZkb1grQmdYcnhjcWtFM001
b3BaCiszVUQzeUlRZVhTeFVraDNpdjZ6elphV3VqeGpESTJKcHd4Um1NVmJycjhPZUJyS0pzcUIy
RG5LbXErZW1tdkVGCitpWFROM1d3L0FqNkdJcWZQWjhqcFZkd2NWTjVRcGVIQWg3YjJsc3p0N0dF
T0djQmh1dFBxNEFxeThQSWlEUjgwCitzVVlJN1Y4T1htK1k0NURuZmt2c29nWkVpZk9pVXJRMlUr
YUdEdStadDg4NjYxd1Z6anErdm9KbHo4RWFJUENFCitCL05TMlNnTnFJMi9EcmpFRWVjbjZoamdI
V0lVQndPZmVOb1NpMVRyaTZLWkZ5eEcyNkxFL1Y4Q2Q1MHlvZHg5CitwQmdGeGRDYm1ZTGVSY1Zl
WFcyYnUwWk1qUGRkUmxSNU1IZnJrTTVaQXplN25SeG9peVduQi9VOHBQZitiUXZ4CitLNFA5S2N3
Q09lSGlna2FDWVpLcTdubVp5RXk0a204OXpJdWdUL1lXaE1XeVZ3eWxUcGFnYWlpSndZTGp1Zzhu
CitDYkZaV0FrT1JCSWwyZy9ZQ3VUQlVKdEMySVdYOGt3K25ZVndxQnN6cFp5QzZuYmhhMlVtaFFE
Zk1Bb3dRQTV2CituMUxuVjhJNmY3dTZIaWRiQjhXWDJVWm9oMDNBNGJlQ0J6K2RxMlZhVXF1TFRM
NEtRVEl6KzZydzduRXlzcm5ICitUSWI4U2x3c1lBbHp6d3l5TTlkU1d0N2lRZU5qbUg3ekwwTW96
TXMzTEtISXJzV2k3WlpoOEJVWW5UMnZLZE5WCisyWkxPTWNSMHRZVm1WWjh1WWtSOWtueS9mYlpj
S041NHhTY29oQTJVWDI2MVcrc1dpRWdOK1JhQnNRNzlwRmdpCit2WWxkZmphR05TdmZ0WGE1OTB4
bjJ0bFM2L3N1QjVNeGlXNWczUHVCZzVYdFZaOTVsMGYxbjM3NlhoNDFzSnY4CitZSHJDdEZIT2xT
cERKVUxHaVhWaC93WEJtUzdxSjhEaG5VVUc2OTlFZGxzRmY2UWcyMldCM0FaUnZFSmRZQzR6CitQ
OFcraloxNU5URGJIZzNIdjcvQ0ZZVnpiWHYydzBqa2lxUWdERi93YzZ0L0VkTEQrMmh6Y04rbkpH
anR4WmJuCit4amJYY2c5OENVTVUrZGMvYUQ0TjQ1SzllOXJQZzMraVpMd3ZzUnZ3eCtNc3ptZ3h4
UHYwNXBOeVJPN1JWazhyCitna3l5cDkvQ0pGbWUrNG5GS1VjMGRVeTJ5TlhadGtsVFgwWEttL1lO
S2luNnVVTWxJQXJJYTU0Q2Z2dDlRc2xWCitpRCtTeFUxWkhtendLVDgyKzVaZUlSTE5XdkZWLzlF
NG5EK0JUYWdLMkZkd25zdTFTMms3SXREOWxLL2NCUEdTCiswdHoxSFd2NEF1ajN3TVBaa2xwM1NR
bHVPbDZlQUlWcXFJOUdhWC9kNDJEY3RCUVdMVGEyN1lpYld5TkljdzdvCiszTjhHRFJFTWF3VEJk
RFJ3bFozb1QreWlHTFgxYzhkczJvMC80SWNKbE9rRG94WEVybWRsWm85b1ZlNno0UjdnCis2MnlS
NTNhdFZUTG9VbkFqeEhYeDBiSml5YXl2OVkzd2pPRXZ1aHVxZGQ5RitIT2hUdEFIci9CSlFOaEVr
K3o4Cis1MzFDWlRKamIxcDExUGJPdEhHVjJJZUIwUzgybXhra1hSeWtFWE9iODlacERITlJpTWlu
VGhSa29DbXVSSTlyCitkVGlFUzlCMDJ5TVB4SjNzTFF5RHhDb1M1bXdmY0FxS1RlSyt5Q3ZUdkJ5
K3Q1dHc2M0RiV2xNcC83QWh5NjVLCityV01IZHdxd2ZvQitaWXc1c1laZFB2dUJWQVQwMUkySmJP
cVgzNlJhY1F1bHRGbnMyT2lueE9KSGExSGp0WHlTCitjUFZFa01hN2NpM1ltOWo1UlFOTFZzZ0pl
N1lLOUhpeFg1SGpRRkFvd0FIMnBYWjVwS0pJSll4UElVS3RabHN6CitxYk09CistLS0tLUVORCBF
TkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvdzNj
LWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTk2YmE2ZWQ3MWQ3OGUyYjE4MzY2M2Y1YWY4ZTAwMWYz
NThkMjE0YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMCBA
QAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlo
dHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitE
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qg
b2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jZXJ0cy9jYWNlcnQucGVtCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jZXJ0cy9jYWtleS5wZW0KKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL3dlYi1wbGF0Zm9ybS50ZXN0LmtleQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMv
d2ViLXBsYXRmb3JtLnRlc3QucGVtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL3dlYi1wbGF0Zm9ybS50ZXN0LmtleSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMv
d2ViLXBsYXRmb3JtLnRlc3Qua2V5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0OWY0MjIxODQyNzk1MGIxOTFlYzU3
Y2E0YjFiNTEwODNkYTg0MjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL3dlYi1wbGF0Zm9ybS50ZXN0Lmtl
eQpAQCAtMCwwICsxLDI4IEBACistLS0tLUJFR0lOIFBSSVZBVEUgS0VZLS0tLS0KK01JSUV2Z0lC
QURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktnd2dnU2tBZ0VBQW9JQkFRQ3poTmFMQVZrWWhkSGMK
K010ODQ5NUNGR3o2bFhvRStML3c2WDM5Mzd5TzdPb2duRDc0bFJzMWpmY3VWMktWUUVOS2kwcmVY
MFExcysva0YKKzZHK29TNzJWWjU1N2xGaXBiWlA5NEJMRnpiU0taRkl4WHc3amlZUngycGpkUyt3
Q0phVjlOZjVqMnJPczdLVkcKK0R3MWtJMXh0OCt6TUtHTWp3RXVhN0kvQjdyR2lQbkpOY0xVSndl
dTBFRlU4aStvYmxINUxkT2IwbjArbVJUQzEKKzhMaTAwVmxRWlFxR1UrcE1uNTcwV0d3eDlSYzZi
MWVMeTEvd0tBdEZrbzB3SUVuL1V1WXN5eGlhMStidVBrODAKK05SVVR4UUxheFYrKysxdk9qYisx
TlhZOGZPYWNPeWFIVFkyQTVoYkdKL0pRU2JaeWRFTkpTVVE0dTNoREkrNFcKK1B0bGk1cVhYQWdN
QkFBRUNnZ0VCQUljd0RRU25Jam8yWkVDSHl0UXlrcEc2WDZYWEVrc0xoYzFMcDBsaFBDNDkKK3VO
UjVwWDZhNEFjQmIzUExyMG9wTVFaTzJ0VW9LQTBmZjN0MGU4bG9LRCsveFhoWTBaL2RsaW9FT1A3
ZWx3djAKKzJuUzFtaGU5c3BDdXhwazRHR1hSaGR0Ujh0MnRqOHMwZG8zWXZnUGdJVFhvRURYNllC
WkhOR2hacHpTckZQZ1EKKy9jM2VHQ1ZteldZdUxGZmRqNU9QUTlid1RhWTRKU3ZETFpUMC9XVGdp
aWNhN1Z5U3dmejNIUDFmRnFOeWtUaUsKK0FDUVJFdnR4Zms1WW0yblQ2b25pN0NNMnpPRUpMOVNY
aWNYSTVITzRiRVJIMFpZaC8vRjNnNm13R2lGWFVKUGQKK05LZ2FUTTFvVDlrUkdrVWFFWXNSV3Jk
ZHdSOGQ1bVhMdkJ1VEpiZ0lzU0VDZ1lFQTErMnVKU1lSVzFPcWJoWVAKK21zNTlZUUhTczNWanBK
cG5DVjJ6TmEyV2l4czU3S1MyY09IN0I2S3JRQ29nSkZMdGdDRFZMdHlvRXJmVmtEN0UKK0ZpdlRn
WXIxcFZDUnBwSmRkUXpYaWszMXVPSU5PQlZmZnI3LzA5ZzNHY1JOK3ViSFBaUHEzSytkRDZnSGEz
QWoKKzBuSDFFakVFVjBRcFNUUUZuODdPRjJtYzl3Y0NnWUVBMU5WcU1iYnpkKzlYZnQ1Rlh1U2JY
NkUrUzAyZE9HYXQKK1NncG5rVE04MHJqcWE2ZUhkUXpxazNKcXl0ZUhQZ2RpMXZkWVJsU1BPai9Y
KzZ0eVNZMEVqOXNSbllPZmRkQTIKK2twaURpVmttaXFWb2x5SlBZNjlVdGorRTNUekoxdmhDUXVZ
a25KbUI3elA5dERjVHhNZXEwbC9OYVd2R3NoRUsKK3lDNFVUUW9nMXJFQ2dZQVNPRklMZkd6V2dm
Yk5senIxMnhxbFJ0d2FuSHN0OW9GZlB2TFNRcldEUTJiZDJ3QXkKK0FqK0dZMm1EM29vYnhvdVgx
aTFtNk9PZHdMbGFsSkZETmF1Qk1OS05nb0RueDAzdmhJZmplYlNVUnk3S1hyTlMKK0pKZTlybTdu
MDdLb3l6UmdzOHlMbHAzd0prT0tBMHBpaFk4aVc5Ujc4SnB6UE5xRW81U3NVUk1YblFLQmdCbFYK
K2dmdUM5SDR0UGpQNnp6VVpieWsxNzAxVllzYUk2azJxNldNT1Awb3grcTF2MXA3bk43RHZhS2pX
ZU9HNFRWcWIKK1BLVzZnUVlFL1hlV2s5Y1BjeUNRaWdzKzFLZFlibmFLc3ZXUmFCWU8xR0ZSRXpR
aGRhcnY2cWZQQ1pPT0g0MEoKK0NnaWQrU3A0L05VTHpVMmFHc3BKM3hDU1pLZGpnZTRNRmh5SmZS
a3hBb0dCQUpsd3FZNG51ZTBNQkxHTnBxY3MKK1d3RHRTYXNIdmVnS0FjeEdCS0w1b1dQYkxCazdo
aytoZHFjOGY2WXFDa0NOcXYvb29Cc3BMMTVFU0l0TCs2eVQKK3p0MFlrSzRvSDl0bUxEYitydnFa
N1pkWGJXU3dLSVRNb0N5eUhVdFQ2T0t0L1J0QTBWZHk5TFBuUDI3b1NPL0MKK2RrOFFmN0tnS1pM
V28wWk5rdnczOHRFQworLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy93ZWIt
cGxhdGZvcm0udGVzdC5wZW0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2NlcnRzL3dlYi1wbGF0Zm9ybS50ZXN0LnBlbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NjVl
ODg3ZTRlZDIwMzlkMjBlNWM0N2UzZjljZjllZjI5MTVkMmU0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy93
ZWItcGxhdGZvcm0udGVzdC5wZW0KQEAgLTAsMCArMSw4NiBAQAorQ2VydGlmaWNhdGU6CisgICAg
RGF0YToKKyAgICAgICAgVmVyc2lvbjogMyAoMHgyKQorICAgICAgICBTZXJpYWwgTnVtYmVyOiAy
ICgweDIpCisgICAgU2lnbmF0dXJlIEFsZ29yaXRobTogc2hhMjU2V2l0aFJTQUVuY3J5cHRpb24K
KyAgICAgICAgSXNzdWVyOiBDTj13ZWItcGxhdGZvcm0tdGVzdHMKKyAgICAgICAgVmFsaWRpdHkK
KyAgICAgICAgICAgIE5vdCBCZWZvcmU6IERlYyAyMiAxMjowOToxNiAyMDE0IEdNVAorICAgICAg
ICAgICAgTm90IEFmdGVyIDogRGVjIDIxIDEyOjA5OjE2IDIwMjQgR01UCisgICAgICAgIFN1Ympl
Y3Q6IENOPXdlYi1wbGF0Zm9ybS50ZXN0CisgICAgICAgIFN1YmplY3QgUHVibGljIEtleSBJbmZv
OgorICAgICAgICAgICAgUHVibGljIEtleSBBbGdvcml0aG06IHJzYUVuY3J5cHRpb24KKyAgICAg
ICAgICAgICAgICBQdWJsaWMtS2V5OiAoMjA0OCBiaXQpCisgICAgICAgICAgICAgICAgTW9kdWx1
czoKKyAgICAgICAgICAgICAgICAgICAgMDA6YjM6ODQ6ZDY6OGI6MDE6NTk6MTg6ODU6ZDE6ZGM6
MzI6ZGY6Mzg6Zjc6CisgICAgICAgICAgICAgICAgICAgIDkwOjg1OjFiOjNlOmE1OjVlOjgxOjNl
OjJmOmZjOjNhOjVmOjdmOjc3OmVmOgorICAgICAgICAgICAgICAgICAgICAyMzpiYjozYTo4ODoy
NzowZjpiZToyNTo0NjpjZDo2Mzo3ZDpjYjo5NTpkODoKKyAgICAgICAgICAgICAgICAgICAgYTU6
NTA6MTA6ZDI6YTI6ZDI6Yjc6OTc6ZDE6MGQ6NmM6ZmI6Zjk6MDU6ZTg6CisgICAgICAgICAgICAg
ICAgICAgIDZmOmE4OjRiOmJkOjk1OjY3OjllOjdiOjk0OjU4OmE5OjZkOjkzOmZkOmUwOgorICAg
ICAgICAgICAgICAgICAgICAxMjpjNTpjZDpiNDo4YTo2NDo1MjozMTo1ZjowZTplMzo4OTo4NDo3
MTpkYToKKyAgICAgICAgICAgICAgICAgICAgOTg6ZGQ6NGI6ZWM6MDI6MjU6YTU6N2Q6MzU6ZmU6
NjM6ZGE6YjM6YWM6ZWM6CisgICAgICAgICAgICAgICAgICAgIGE1OjQ2OjBmOjBkOjY0OjIzOjVj
OjZkOmYzOmVjOmNjOjI4OjYzOjIzOmMwOgorICAgICAgICAgICAgICAgICAgICA0Yjo5YTplYzo4
ZjpjMTplZTpiMTphMjozZTo3Mjo0ZDo3MDpiNTowOTpjMToKKyAgICAgICAgICAgICAgICAgICAg
ZWI6YjQ6MTA6NTU6M2M6OGI6ZWE6MWI6OTQ6N2U6NGI6NzQ6ZTY6ZjQ6OWY6CisgICAgICAgICAg
ICAgICAgICAgIDRmOmE2OjQ1OjMwOmI1OmYwOmI4OmI0OmQxOjU5OjUwOjY1OjBhOjg2OjUzOgor
ICAgICAgICAgICAgICAgICAgICBlYTo0Yzo5Zjo5ZTpmNDo1ODo2YzozMTpmNToxNzozYTo2Zjo1
Nzo4YjpjYjoKKyAgICAgICAgICAgICAgICAgICAgNWY6ZjA6Mjg6MGI6NDU6OTI6OGQ6MzA6MjA6
NDk6ZmY6NTI6ZTY6MmM6Y2I6CisgICAgICAgICAgICAgICAgICAgIDE4OjlhOmQ3OmU2OmVlOjNl
OjRmOjM0OjM1OjE1OjEzOmM1OjAyOmRhOmM1OgorICAgICAgICAgICAgICAgICAgICA1ZjpiZTpm
Yjo1YjpjZTo4ZDpiZjpiNTozNTo3NjozYzo3YzplNjo5YzozYjoKKyAgICAgICAgICAgICAgICAg
ICAgMjY6ODc6NGQ6OGQ6ODA6ZTY6MTY6YzY6Mjc6ZjI6NTA6NDk6YjY6NzI6NzQ6CisgICAgICAg
ICAgICAgICAgICAgIDQzOjQ5OjQ5OjQ0OjM4OmJiOjc4OjQzOjIzOmVlOjE2OjNlOmQ5OjYyOmU2
OgorICAgICAgICAgICAgICAgICAgICBhNTpkNworICAgICAgICAgICAgICAgIEV4cG9uZW50OiA2
NTUzNyAoMHgxMDAwMSkKKyAgICAgICAgWDUwOXYzIGV4dGVuc2lvbnM6CisgICAgICAgICAgICBY
NTA5djMgQmFzaWMgQ29uc3RyYWludHM6IAorICAgICAgICAgICAgICAgIENBOkZBTFNFCisgICAg
ICAgICAgICBYNTA5djMgU3ViamVjdCBLZXkgSWRlbnRpZmllcjogCisgICAgICAgICAgICAgICAg
MkQ6OTg6QTM6OTk6Mzk6MUM6RkU6RTk6OUE6NkQ6MTc6OTQ6RDI6M0E6OTY6RUU6Qzg6OUU6MDQ6
MjIKKyAgICAgICAgICAgIFg1MDl2MyBBdXRob3JpdHkgS2V5IElkZW50aWZpZXI6IAorICAgICAg
ICAgICAgICAgIGtleWlkOjZBOkFCOjUzOjY0OjkyOjM2Ojg3OjIzOjM0OkIzOjFEOjZGOjg1OjRC
OkY1OkRGOjVBOjVDOjc0OjhGCisKKyAgICAgICAgICAgIFg1MDl2MyBLZXkgVXNhZ2U6IAorICAg
ICAgICAgICAgICAgIERpZ2l0YWwgU2lnbmF0dXJlLCBOb24gUmVwdWRpYXRpb24sIEtleSBFbmNp
cGhlcm1lbnQKKyAgICAgICAgICAgIFg1MDl2MyBFeHRlbmRlZCBLZXkgVXNhZ2U6IAorICAgICAg
ICAgICAgICAgIFRMUyBXZWIgU2VydmVyIEF1dGhlbnRpY2F0aW9uCisgICAgICAgICAgICBYNTA5
djMgU3ViamVjdCBBbHRlcm5hdGl2ZSBOYW1lOiAKKyAgICAgICAgICAgICAgICBETlM6d2ViLXBs
YXRmb3JtLnRlc3QsIEROUzp3d3cud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbjhqNmRzNTNs
d3drcnFodjI4YS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1sdmUtNmxhZC53ZWItcGxhdGZv
cm0udGVzdCwgRE5TOnd3dzIud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cxLndlYi1wbGF0Zm9y
bS50ZXN0CisgICAgU2lnbmF0dXJlIEFsZ29yaXRobTogc2hhMjU2V2l0aFJTQUVuY3J5cHRpb24K
KyAgICAgICAgIDMzOmRiOmY3OmYwOmY2OjkyOjE2OjRmOjJkOjQyOmJjOmI4OmFhOmU2OmFiOjVl
OmY5OmI5OgorICAgICAgICAgYjA6NDg6YWU6YjU6OGQ6Y2M6MDI6N2I6ZTk6NmY6NGU6NzU6Zjc6
MTc6YTA6NWU6N2I6ODc6CisgICAgICAgICAwNjo0OTo0ODo4MzpjNTpiYjpjYTo5NTowNzozNzow
ZTo1ZDplMzo5NzpkZTo5ZTowYzphNDoKKyAgICAgICAgIDgyOjMwOjExOjgxOjQ5OjVkOjUwOjI5
OjcyOjkyOmE1OmNhOjE3OmIxOjdjOmYxOjMyOjExOgorICAgICAgICAgMTc6NTc6ZTY6NTk6YzE6
YWM6ZTM6M2I6MjY6ZDI6OTQ6OTc6NTA6NmE6Yjk6NTQ6ODg6ODQ6CisgICAgICAgICA5Yjo2Zjpi
MTowNjpmNTo4MDowNDoyMjoxMDoxNDpiMTpmNTo5NzoyNTpmYzo2NjpkNjo2OToKKyAgICAgICAg
IGEzOjM2OjA4Ojg1OjIzOmZmOjhlOjNjOjJiOmUwOjZkOmU3OjYxOmYxOjAwOjhmOjYxOjNkOgor
ICAgICAgICAgYjA6ODc6YWQ6NzI6MjE6ZjY6ZjA6Y2M6NGY6Yzk6MjA6YmY6ODM6MTE6MGY6MjE6
ZjQ6Yjg6CisgICAgICAgICBjMDpkZDo5Yzo1MTpkNzpiYjoyNzozMjplYzphYjphNDo2MjoxNDoy
ODozMjpkYTpmMjo4NzoKKyAgICAgICAgIDgwOjY4OjljOmVhOmFjOmViOmY1OjdmOmY1OmRlOmY0
OmMwOjM5OjkxOmM4Ojc2OmE0OmVlOgorICAgICAgICAgZDA6YTg6NTA6ZGI6YzE6NGI6Zjk6YzQ6
M2Q6ZDk6ZTg6OGU6YjY6M2Y6YzA6OTY6Nzk6MTI6CisgICAgICAgICBkODpmYTo0ZDowYTpiMzoz
Njo3NjphYTo0ZTpiMjo4MjoyZjphMjpkNDowZDpkYjpmZDo2NDoKKyAgICAgICAgIDc3OjZmOjZl
OmU5Ojk0OjdmOjBmOmM4OjNhOjNjOjk2OjNkOmNkOjRkOjZjOmJhOjY2Ojk1OgorICAgICAgICAg
Zjc6YjQ6OWQ6YTQ6OTQ6OWY6OTc6YjM6OWE6MGQ6ZGM6MTg6OGM6MTE6MGI6NTY6NjU6OGU6Cisg
ICAgICAgICA0Njo0YzplNjo1ZQorLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlEMmpD
Q0FzS2dBd0lCQWdJQkFqQU5CZ2txaGtpRzl3MEJBUXNGQURBZE1Sc3dHUVlEVlFRRERCSjNaV0l0
CitjR3hoZEdadmNtMHRkR1Z6ZEhNd0hoY05NVFF4TWpJeU1USXdPVEUyV2hjTk1qUXhNakl4TVRJ
d09URTJXakFjCitNUm93R0FZRFZRUURFeEYzWldJdGNHeGhkR1p2Y20wdWRHVnpkRENDQVNJd0RR
WUpLb1pJaHZjTkFRRUJCUUFECitnZ0VQQURDQ0FRb0NnZ0VCQUxPRTFvc0JXUmlGMGR3eTN6ajNr
SVViUHFWZWdUNHYvRHBmZjNmdkk3czZpQ2NQCit2aVZHeldOOXk1WFlwVkFRMHFMU3Q1ZlJEV3o3
K1FYb2I2aEx2WlZubm51VVdLbHRrLzNnRXNYTnRJcGtVakZmCitEdU9KaEhIYW1OMUw3QUlscFgw
MS9tUGFzNnpzcFVZUERXUWpYRzN6N013b1l5UEFTNXJzajhIdXNhSStjazF3Cit0UW5CNjdRUVZU
eUw2aHVVZmt0MDV2U2ZUNlpGTUxYd3VMVFJXVkJsQ29aVDZreWZudlJZYkRIMUZ6cHZWNHZMCitY
L0FvQzBXU2pUQWdTZjlTNWl6TEdKclg1dTQrVHpRMUZSUEZBdHJGWDc3N1c4Nk52N1UxZGp4ODVw
dzdKb2ROCitqWURtRnNZbjhsQkp0bkowUTBsSlJEaTdlRU1qN2hZKzJXTG1wZGNDQXdFQUFhT0NB
U1F3Z2dFZ01Ba0dBMVVkCitFd1FDTUFBd0hRWURWUjBPQkJZRUZDMllvNWs1SFA3cG1tMFhsTkk2
bHU3SW5nUWlNQjhHQTFVZEl3UVlNQmFBCitGR3FyVTJTU05vY2pOTE1kYjRWTDlkOWFYSFNQTUFz
R0ExVWREd1FFQXdJRjREQVRCZ05WSFNVRUREQUtCZ2dyCitCZ0VGQlFjREFUQ0JzQVlEVlIwUkJJ
R29NSUdsZ2hGM1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJVmQzZDNMbmRsCitZaTF3YkdGMFptOXli
UzUwWlhOMGdpbDRiaTB0YmpocU5tUnpOVE5zZDNkcmNuRm9kakk0WVM1M1pXSXRjR3hoCitkR1p2
Y20wdWRHVnpkSUllZUc0dExXeDJaUzAyYkdGa0xuZGxZaTF3YkdGMFptOXliUzUwWlhOMGdoWjNk
M2N5CitMbmRsWWkxd2JHRjBabTl5YlM1MFpYTjBnaFozZDNjeExuZGxZaTF3YkdGMFptOXliUzUw
WlhOME1BMEdDU3FHCitTSWIzRFFFQkN3VUFBNElCQVFBejIvZnc5cElXVHkxQ3ZMaXE1cXRlK2Jt
d1NLNjFqY3dDZStsdlRuWDNGNkJlCitlNGNHU1VpRHhidktsUWMzRGwzamw5NmVES1NDTUJHQlNW
MVFLWEtTcGNvWHNYenhNaEVYVitaWndhempPeWJTCitsSmRRYXJsVWlJU2JiN0VHOVlBRUloQVVz
ZldYSmZ4bTFtbWpOZ2lGSS8rT1BDdmdiZWRoOFFDUFlUMndoNjF5CitJZmJ3ekUvSklMK0RFUTho
OUxqQTNaeFIxN3NuTXV5cnBHSVVLRExhOG9lQWFKenFyT3YxZi9YZTlNQTVrY2gyCitwTzdRcUZE
YndVdjV4RDNaNkk2MlA4Q1dlUkxZK2swS3N6WjJxazZ5Z2kraTFBM2IvV1IzYjI3cGxIOFB5RG84
CitsajNOVFd5NlpwWDN0SjJrbEorWHM1b04zQmlNRVF0V1pZNUdUT1plCistLS0tLUVORCBDRVJU
SUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2NpL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
NjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9f
X2luaXRfXy5weQpAQCAtMCwwICsxIEBACisjIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0
aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2JlZm9yZV9pbnN0YWxsLnNoIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9iZWZvcmVfaW5zdGFsbC5zaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45YjgwZmQ5NTc4NTQ0ZTAzOWQ5NWI0YTUzYjYzZmZlMTdkZTYzMjRlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS9iZWZvcmVfaW5zdGFsbC5zaApAQCAtMCwwICsxLDEzIEBACisjIS9iaW4vYmFz
aAorc2V0IC1lCisKK2lmIFtbIC16ICR7UlVOX0pPQit4fSAmJiAkKC4vd3B0IHRlc3Qtam9icyAt
LWluY2x1ZGVzICRKT0I7IGVjaG8gJD8pIC1lcSAwIF1dIHx8IFtbICRSVU5fSk9CIC1lcSAxIF1d
OyB0aGVuCisgICAgZXhwb3J0IFJVTl9KT0I9MQorICAgIGdpdCBzdWJtb2R1bGUgdXBkYXRlIC0t
aW5pdCAtLXJlY3Vyc2l2ZSAxPiYyCisgICAgZXhwb3J0IERJU1BMQVk9Ojk5LjAKKyAgICBzaCAt
ZSAvZXRjL2luaXQuZC94dmZiIHN0YXJ0IDE+JjIKKyAgICAjIEZvciB1cGxvYWRpbmcgdGhlIG1h
bmlmZXN0CisgICAgZXhwb3J0IFdQVF9NQU5JRkVTVF9GSUxFPSRIT01FL21ldGEvTUFOSUZFU1Qt
JChnaXQgcmV2LXBhcnNlIEhFQUQpLmpzb24KK2VsaWYgW1sgLXogJHtSVU5fSk9CK3h9IF1dOyB0
aGVuCisgICAgZXhwb3J0IFJVTl9KT0I9MAorZmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2hlY2tfc3RhYmlsaXR5LnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9j
aGVja19zdGFiaWxpdHkucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjIxNWUzYzllMWRmNWNiYmRmYTdjNTNiNTc3
NjY3NGIwMzQ3OTljZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2hlY2tfc3RhYmlsaXR5LnB5CkBAIC0wLDAg
KzEsMzY3IEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCisKK2ltcG9y
dCBhcmdwYXJzZQoraW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcworaW1wb3J0IHN1YnByb2Nlc3MK
K2ltcG9ydCBzeXMKK2Zyb20gQ29uZmlnUGFyc2VyIGltcG9ydCBTYWZlQ29uZmlnUGFyc2VyCisK
K2ltcG9ydCByZXF1ZXN0cworCitoZXJlID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQord3B0
X3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsIG9zLnBhcmRpciwgb3Mu
cGFyZGlyKSkKK3N5cy5wYXRoLmluc2VydCgwLCB3cHRfcm9vdCkKKworZnJvbSB0b29scy53cHQg
aW1wb3J0IHRlc3RmaWxlcworZnJvbSB0b29scy53cHQudGVzdGZpbGVzIGltcG9ydCBnZXRfZ2l0
X2NtZAorZnJvbSB0b29scy53cHQudmlydHVhbGVudiBpbXBvcnQgVmlydHVhbGVudgorZnJvbSB0
b29scy53cHQudXRpbHMgaW1wb3J0IEt3YXJncworZnJvbSB0b29scy53cHQucnVuIGltcG9ydCBj
cmVhdGVfcGFyc2VyLCBzZXR1cF93cHRydW5uZXIKK2Zyb20gdG9vbHMud3B0IGltcG9ydCBtYXJr
ZG93bgorZnJvbSB0b29scyBpbXBvcnQgbG9jYWxwYXRocworCitsb2dnZXIgPSBOb25lCitzdGFi
aWxpdHlfcnVuLCB3cml0ZV9pbmNvbnNpc3RlbnQsIHdyaXRlX3Jlc3VsdHMgPSBOb25lLCBOb25l
LCBOb25lCit3cHRydW5uZXIgPSBOb25lCisKK2RlZiBzZXR1cF9sb2dnaW5nKCk6CisgICAgIiIi
U2V0IHVwIGJhc2ljIGRlYnVnIGxvZ2dlci4iIiIKKyAgICBnbG9iYWwgbG9nZ2VyCisgICAgbG9n
Z2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoaGVyZSkKKyAgICBoYW5kbGVyID0gbG9nZ2luZy5TdHJl
YW1IYW5kbGVyKHN5cy5zdGRvdXQpCisgICAgZm9ybWF0dGVyID0gbG9nZ2luZy5Gb3JtYXR0ZXIo
bG9nZ2luZy5CQVNJQ19GT1JNQVQsIE5vbmUpCisgICAgaGFuZGxlci5zZXRGb3JtYXR0ZXIoZm9y
bWF0dGVyKQorICAgIGxvZ2dlci5hZGRIYW5kbGVyKGhhbmRsZXIpCisgICAgbG9nZ2VyLnNldExl
dmVsKGxvZ2dpbmcuREVCVUcpCisKKworZGVmIGRvX2RlbGF5ZWRfaW1wb3J0cygpOgorICAgIGds
b2JhbCBzdGFiaWxpdHlfcnVuLCB3cml0ZV9pbmNvbnNpc3RlbnQsIHdyaXRlX3Jlc3VsdHMsIHdw
dHJ1bm5lcgorICAgIGZyb20gdG9vbHMud3B0LnN0YWJpbGl0eSBpbXBvcnQgcnVuIGFzIHN0YWJp
bGl0eV9ydW4KKyAgICBmcm9tIHRvb2xzLndwdC5zdGFiaWxpdHkgaW1wb3J0IHdyaXRlX2luY29u
c2lzdGVudCwgd3JpdGVfcmVzdWx0cworICAgIGZyb20gd3B0cnVubmVyIGltcG9ydCB3cHRydW5u
ZXIKKworCitjbGFzcyBUcmF2aXNGb2xkKG9iamVjdCk6CisgICAgIiIiQ29udGV4dCBmb3IgVHJh
dmlzQ0kgZm9sZGluZyBtZWNoYW5pc20uIFN1YmNsYXNzZXMgb2JqZWN0LgorCisgICAgU2VlOiBo
dHRwczovL2Jsb2cudHJhdmlzLWNpLmNvbS8yMDEzLTA1LTIyLWltcHJvdmluZy1idWlsZC12aXNp
YmlsaXR5LWxvZy1mb2xkcy8KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1l
KToKKyAgICAgICAgIiIiUmVnaXN0ZXIgVHJhdmlzQ0kgZm9sZGluZyBzZWN0aW9uIG5hbWUuIiIi
CisgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKKworICAgIGRlZiBfX2VudGVyX18oc2VsZik6Cisg
ICAgICAgICIiIkVtaXQgZm9sZCBzdGFydCBzeW50YXguIiIiCisgICAgICAgIHByaW50KCJ0cmF2
aXNfZm9sZDpzdGFydDolcyIgJSBzZWxmLm5hbWUsIGZpbGU9c3lzLnN0ZGVycikKKworICAgIGRl
ZiBfX2V4aXRfXyhzZWxmLCB0eXBlLCB2YWx1ZSwgdHJhY2ViYWNrKToKKyAgICAgICAgIiIiRW1p
dCBmb2xkIGVuZCBzeW50YXguIiIiCisgICAgICAgIHByaW50KCJ0cmF2aXNfZm9sZDplbmQ6JXMi
ICUgc2VsZi5uYW1lLCBmaWxlPXN5cy5zdGRlcnIpCisKKworY2xhc3MgRmlsdGVyZWRJTyhvYmpl
Y3QpOgorICAgICIiIldyYXAgYSBmaWxlIG9iamVjdCwgaW52b2tpbmcgdGhlIHByb3ZpZGVkIGNh
bGxiYWNrIGZvciBldmVyeSBjYWxsIHRvCisgICAgYHdyaXRlYCBhbmQgb25seSBwcm9jZWVkaW5n
IHdpdGggdGhlIG9wZXJhdGlvbiB3aGVuIHRoYXQgY2FsbGJhY2sgcmV0dXJucworICAgIFRydWUu
IiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG9yaWdpbmFsLCBvbl93cml0ZSk6CisgICAgICAg
IHNlbGYub3JpZ2luYWwgPSBvcmlnaW5hbAorICAgICAgICBzZWxmLm9uX3dyaXRlID0gb25fd3Jp
dGUKKworICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCBuYW1lKToKKyAgICAgICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5vcmlnaW5hbCwgbmFtZSkKKworICAgIGRlZiBkaXNhYmxlKHNlbGYpOgorICAg
ICAgICBzZWxmLndyaXRlID0gbGFtYmRhIG1zZzogTm9uZQorCisgICAgZGVmIHdyaXRlKHNlbGYs
IG1zZyk6CisgICAgICAgIGVuY29kZWQgPSBtc2cuZW5jb2RlKCJ1dGY4IiwgImJhY2tzbGFzaHJl
cGxhY2UiKS5kZWNvZGUoInV0ZjgiKQorICAgICAgICBpZiBzZWxmLm9uX3dyaXRlKHNlbGYub3Jp
Z2luYWwsIGVuY29kZWQpIGlzIFRydWU6CisgICAgICAgICAgICBzZWxmLm9yaWdpbmFsLndyaXRl
KGVuY29kZWQpCisKKworZGVmIHJlcGxhY2Vfc3RyZWFtcyhjYXBhY2l0eSwgd2FybmluZ19tc2cp
OgorICAgICMgVmFsdWUgbXVzdCBiZSBib3hlZCB0byBzdXBwb3J0IG1vZGlmaWNhdGlvbiBmcm9t
IGlubmVyIGZ1bmN0aW9uIHNjb3BlCisgICAgY291bnQgPSBbMF0KKyAgICBjYXBhY2l0eSAtPSAy
ICsgbGVuKHdhcm5pbmdfbXNnKQorICAgIHN0ZGVyciA9IHN5cy5zdGRlcnIKKworICAgIGRlZiBv
bl93cml0ZShoYW5kbGUsIG1zZyk6CisgICAgICAgIGxlbmd0aCA9IGxlbihtc2cpCisgICAgICAg
IGNvdW50WzBdICs9IGxlbmd0aAorCisgICAgICAgIGlmIGNvdW50WzBdID4gY2FwYWNpdHk6Cisg
ICAgICAgICAgICB3cmFwcGVkX3N0ZG91dC5kaXNhYmxlKCkKKyAgICAgICAgICAgIHdyYXBwZWRf
c3RkZXJyLmRpc2FibGUoKQorICAgICAgICAgICAgaGFuZGxlLndyaXRlKG1zZ1swOmNhcGFjaXR5
IC0gY291bnRbMF1dKQorICAgICAgICAgICAgaGFuZGxlLmZsdXNoKCkKKyAgICAgICAgICAgIHN0
ZGVyci53cml0ZSgiXG4lc1xuIiAlIHdhcm5pbmdfbXNnKQorICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCisKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgICMgU3RvcmUgbG9jYWwgcmVmZXJlbmNl
cyB0byB0aGUgcmVwbGFjZWQgc3RyZWFtcyB0byBndWFyZCBhZ2FpbnN0IHRoZSBjYXNlCisgICAg
IyB3aGVyZSBvdGhlciBjb2RlIHJlcGxhY2UgdGhlIGdsb2JhbCByZWZlcmVuY2VzLgorICAgIHN5
cy5zdGRvdXQgPSB3cmFwcGVkX3N0ZG91dCA9IEZpbHRlcmVkSU8oc3lzLnN0ZG91dCwgb25fd3Jp
dGUpCisgICAgc3lzLnN0ZGVyciA9IHdyYXBwZWRfc3RkZXJyID0gRmlsdGVyZWRJTyhzeXMuc3Rk
ZXJyLCBvbl93cml0ZSkKKworCitkZWYgY2FsbCgqYXJncyk6CisgICAgIiIiTG9nIHRlcm1pbmFs
IGNvbW1hbmQsIGludm9rZSBpdCBhcyBhIHN1YnByb2Nlc3MuCisKKyAgICBSZXR1cm5zIGEgYnl0
ZXN0cmluZyBvZiB0aGUgc3VicHJvY2VzcyBvdXRwdXQgaWYgbm8gZXJyb3IuCisgICAgIiIiCisg
ICAgbG9nZ2VyLmRlYnVnKCIlcyIgJSAiICIuam9pbihhcmdzKSkKKyAgICB0cnk6CisgICAgICAg
IHJldHVybiBzdWJwcm9jZXNzLmNoZWNrX291dHB1dChhcmdzKQorICAgIGV4Y2VwdCBzdWJwcm9j
ZXNzLkNhbGxlZFByb2Nlc3NFcnJvciBhcyBlOgorICAgICAgICBsb2dnZXIuY3JpdGljYWwoIiVz
IGV4aXRlZCB3aXRoIHJldHVybiBjb2RlICVpIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAo
ZS5jbWQsIGUucmV0dXJuY29kZSkpCisgICAgICAgIGxvZ2dlci5jcml0aWNhbChlLm91dHB1dCkK
KyAgICAgICAgcmFpc2UKKworZGVmIGZldGNoX3dwdCh1c2VyLCAqYXJncyk6CisgICAgZ2l0ID0g
Z2V0X2dpdF9jbWQod3B0X3Jvb3QpCisgICAgZ2l0KCJmZXRjaCIsICJodHRwczovL2dpdGh1Yi5j
b20vJXMvd2ViLXBsYXRmb3JtLXRlc3RzLmdpdCIgJSB1c2VyLCAqYXJncykKKworCitkZWYgZ2V0
X3NoYTEoKToKKyAgICAiIiIgR2V0IGFuZCByZXR1cm4gc2hhMSBvZiBjdXJyZW50IGdpdCBicmFu
Y2ggSEVBRCBjb21taXQuIiIiCisgICAgZ2l0ID0gZ2V0X2dpdF9jbWQod3B0X3Jvb3QpCisgICAg
cmV0dXJuIGdpdCgicmV2LXBhcnNlIiwgIkhFQUQiKS5zdHJpcCgpCisKKworZGVmIGRlZXBlbl9j
aGVja291dCh1c2VyKToKKyAgICAiIiJDb252ZXJ0IGZyb20gYSBzaGFsbG93IGNoZWNrb3V0IHRv
IGEgZnVsbCBvbmUiIiIKKyAgICBmZXRjaF9hcmdzID0gW3VzZXIsICIrcmVmcy9oZWFkcy8qOnJl
ZnMvcmVtb3Rlcy9vcmlnaW4vKiJdCisgICAgaWYgb3MucGF0aC5leGlzdHMob3MucGF0aC5qb2lu
KHdwdF9yb290LCAiLmdpdCIsICJzaGFsbG93IikpOgorICAgICAgICBmZXRjaF9hcmdzLmluc2Vy
dCgxLCAiLS11bnNoYWxsb3ciKQorICAgIGZldGNoX3dwdCgqZmV0Y2hfYXJncykKKworCitkZWYg
Z2V0X3BhcnNlcigpOgorICAgICIiIkNyZWF0ZSBhbmQgcmV0dXJuIHNjcmlwdC1zcGVjaWZpYyBh
cmd1bWVudCBwYXJzZXIuIiIiCisgICAgZGVzY3JpcHRpb24gPSAiIiJEZXRlY3QgaW5zdGFiaWxp
dGllcyBpbiBuZXcgdGVzdHMgYnkgZXhlY3V0aW5nIHRlc3RzCisgICAgcmVwZWF0ZWRseSBhbmQg
Y29tcGFyaW5nIHJlc3VsdHMgYmV0d2VlbiBleGVjdXRpb25zLiIiIgorICAgIHBhcnNlciA9IGFy
Z3BhcnNlLkFyZ3VtZW50UGFyc2VyKGRlc2NyaXB0aW9uPWRlc2NyaXB0aW9uKQorICAgIHBhcnNl
ci5hZGRfYXJndW1lbnQoIi0tdXNlciIsCisgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249
InN0b3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICMgVHJhdmlzIGRvY3Mgc2F5IGRvIG5v
dCBkZXBlbmQgb24gVVNFUiBlbnYgdmFyaWFibGUuCisgICAgICAgICAgICAgICAgICAgICAgICAj
IFRoaXMgaXMgYSB3b3JrYXJvdW5kIHRvIGdldCB3aGF0IHNob3VsZCBiZSB0aGUgc2FtZSB2YWx1
ZQorICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1vcy5lbnZpcm9uLmdldCgiVFJBVklT
X1JFUE9fU0xVRyIsICJ3M2MiKS5zcGxpdCgnLycpWzBdLAorICAgICAgICAgICAgICAgICAgICAg
ICAgaGVscD0iVHJhdmlzIHVzZXIgbmFtZSIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1v
dXRwdXQtYnl0ZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICB0eXBlPWludCwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGhlbHA9Ik1heGltdW0gbnVtYmVyIG9mIGJ5dGVzIHRvIHdyaXRlIHRvIHN0YW5kYXJkIG91dHB1
dC9lcnJvciIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1tZXRhZGF0YSIsCisgICAgICAg
ICAgICAgICAgICAgICAgICBkZXN0PSJtZXRhZGF0YV9yb290IiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGFjdGlvbj0ic3RvcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD13
cHRfcm9vdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkRpcmVjdG9yeSB0aGF0IHdp
bGwgY29udGFpbiBNQU5JRkVTVC5qc29uIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWNv
bmZpZy1maWxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmUiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgdHlwZT1zdHIsCisgICAgICAgICAgICAgICAgICAgICAgICBo
ZWxwPSJMb2NhdGlvbiBvZiBpbmktZm9ybWF0dGVkIGNvbmZpZ3VyYXRpb24gZmlsZSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PSJjaGVja19zdGFiaWxpdHkuaW5pIikKKyAgICBw
YXJzZXIuYWRkX2FyZ3VtZW50KCItLXJldiIsCisgICAgICAgICAgICAgICAgICAgICAgICBhY3Rp
b249InN0b3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9IkNvbW1pdCByYW5nZSB0byB1c2UiKQorICAgIHJldHVy
biBwYXJzZXIKKworCitkZWYgcHIoKToKKyAgICBwciA9IG9zLmVudmlyb24uZ2V0KCJUUkFWSVNf
UFVMTF9SRVFVRVNUIiwgImZhbHNlIikKKyAgICByZXR1cm4gcHIgaWYgcHIgIT0gImZhbHNlIiBl
bHNlIE5vbmUKKworCitkZWYgcG9zdF9yZXN1bHRzKHJlc3VsdHMsIHByX251bWJlciwgaXRlcmF0
aW9ucywgcHJvZHVjdCwgdXJsLCBzdGF0dXMpOgorICAgICIiIlBvc3Qgc3RhYmlsaXR5IHJlc3Vs
dHMgdG8gYSBnaXZlbiBVUkwuIiIiCisgICAgcGF5bG9hZF9yZXN1bHRzID0gW10KKworICAgIGZv
ciB0ZXN0X25hbWUsIHRlc3QgaW4gcmVzdWx0cy5pdGVyaXRlbXMoKToKKyAgICAgICAgc3VidGVz
dHMgPSBbXQorICAgICAgICBmb3Igc3VidGVzdF9uYW1lLCBzdWJ0ZXN0IGluIHRlc3RbJ3N1YnRl
c3RzJ10uaXRlbXMoKToKKyAgICAgICAgICAgIHN1YnRlc3RzLmFwcGVuZCh7CisgICAgICAgICAg
ICAgICAgJ3Rlc3QnOiBzdWJ0ZXN0X25hbWUsCisgICAgICAgICAgICAgICAgJ3Jlc3VsdCc6IHsK
KyAgICAgICAgICAgICAgICAgICAgJ21lc3NhZ2VzJzogbGlzdChzdWJ0ZXN0WydtZXNzYWdlcydd
KSwKKyAgICAgICAgICAgICAgICAgICAgJ3N0YXR1cyc6IHN1YnRlc3RbJ3N0YXR1cyddCisgICAg
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIH0pCisgICAgICAgIHBheWxvYWRfcmVzdWx0cy5h
cHBlbmQoeworICAgICAgICAgICAgJ3Rlc3QnOiB0ZXN0X25hbWUsCisgICAgICAgICAgICAncmVz
dWx0JzogeworICAgICAgICAgICAgICAgICdzdGF0dXMnOiB0ZXN0WydzdGF0dXMnXSwKKyAgICAg
ICAgICAgICAgICAnc3VidGVzdHMnOiBzdWJ0ZXN0cworICAgICAgICAgICAgfQorICAgICAgICB9
KQorCisgICAgcGF5bG9hZCA9IHsKKyAgICAgICAgInB1bGwiOiB7CisgICAgICAgICAgICAibnVt
YmVyIjogaW50KHByX251bWJlciksCisgICAgICAgICAgICAic2hhIjogb3MuZW52aXJvbi5nZXQo
IlRSQVZJU19QVUxMX1JFUVVFU1RfU0hBIiksCisgICAgICAgIH0sCisgICAgICAgICJqb2IiOiB7
CisgICAgICAgICAgICAiaWQiOiBpbnQob3MuZW52aXJvbi5nZXQoIlRSQVZJU19KT0JfSUQiKSks
CisgICAgICAgICAgICAibnVtYmVyIjogb3MuZW52aXJvbi5nZXQoIlRSQVZJU19KT0JfTlVNQkVS
IiksCisgICAgICAgICAgICAiYWxsb3dfZmFpbHVyZSI6IG9zLmVudmlyb24uZ2V0KCJUUkFWSVNf
QUxMT1dfRkFJTFVSRSIpID09ICd0cnVlJywKKyAgICAgICAgICAgICJzdGF0dXMiOiBzdGF0dXMs
CisgICAgICAgIH0sCisgICAgICAgICJidWlsZCI6IHsKKyAgICAgICAgICAgICJpZCI6IGludChv
cy5lbnZpcm9uLmdldCgiVFJBVklTX0JVSUxEX0lEIikpLAorICAgICAgICAgICAgIm51bWJlciI6
IG9zLmVudmlyb24uZ2V0KCJUUkFWSVNfQlVJTERfTlVNQkVSIiksCisgICAgICAgIH0sCisgICAg
ICAgICJwcm9kdWN0IjogcHJvZHVjdCwKKyAgICAgICAgIml0ZXJhdGlvbnMiOiBpdGVyYXRpb25z
LAorICAgICAgICAibWVzc2FnZSI6ICJBbGwgcmVzdWx0cyB3ZXJlIHN0YWJsZS4iIGlmIHN0YXR1
cyA9PSAicGFzc2VkIiBlbHNlICJVbnN0YWJsZSByZXN1bHRzLiIsCisgICAgICAgICJyZXN1bHRz
IjogcGF5bG9hZF9yZXN1bHRzLAorICAgIH0KKworICAgIHJlcXVlc3RzLnBvc3QodXJsLCBqc29u
PXBheWxvYWQpCisKKworZGVmIGdldF9jaGFuZ2VkX2ZpbGVzKG1hbmlmZXN0X3BhdGgsIHJldiwg
aWdub3JlX2NoYW5nZXMsIHNraXBfdGVzdHMpOgorICAgIGlmIG5vdCByZXY6CisgICAgICAgIGJy
YW5jaF9wb2ludCA9IHRlc3RmaWxlcy5icmFuY2hfcG9pbnQoKQorICAgICAgICByZXZpc2ggPSAi
JXMuLkhFQUQiICUgYnJhbmNoX3BvaW50CisgICAgZWxzZToKKyAgICAgICAgcmV2aXNoID0gcmV2
CisKKyAgICBmaWxlc19jaGFuZ2VkLCBmaWxlc19pZ25vcmVkID0gdGVzdGZpbGVzLmZpbGVzX2No
YW5nZWQocmV2aXNoLCBpZ25vcmVfY2hhbmdlcykKKworICAgIGlmIGZpbGVzX2lnbm9yZWQ6Cisg
ICAgICAgIGxvZ2dlci5pbmZvKCJJZ25vcmluZyAlcyBjaGFuZ2VkIGZpbGVzOlxuJXMiICUKKyAg
ICAgICAgICAgICAgICAgICAgKGxlbihmaWxlc19pZ25vcmVkKSwgIiIuam9pbigiICogJXNcbiIg
JSBpdGVtIGZvciBpdGVtIGluIGZpbGVzX2lnbm9yZWQpKSkKKworICAgIHRlc3RzX2NoYW5nZWQs
IGZpbGVzX2FmZmVjdGVkID0gdGVzdGZpbGVzLmFmZmVjdGVkX3Rlc3RmaWxlcyhmaWxlc19jaGFu
Z2VkLCBza2lwX3Rlc3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF9wYXRoPW1hbmlmZXN0X3BhdGgpCisK
KyAgICByZXR1cm4gdGVzdHNfY2hhbmdlZCwgZmlsZXNfYWZmZWN0ZWQKKworCitkZWYgbWFpbigp
OgorICAgICIiIlBlcmZvcm0gY2hlY2tfc3RhYmlsaXR5IGZ1bmN0aW9uYWxpdHkgYW5kIHJldHVy
biBleGl0IGNvZGUuIiIiCisKKyAgICB2ZW52ID0gVmlydHVhbGVudihvcy5lbnZpcm9uLmdldCgi
VklSVFVBTF9FTlYiLCBvcy5wYXRoLmpvaW4od3B0X3Jvb3QsICJfdmVudiIpKSkKKyAgICB2ZW52
Lmluc3RhbGxfcmVxdWlyZW1lbnRzKG9zLnBhdGguam9pbih3cHRfcm9vdCwgInRvb2xzIiwgIndw
dHJ1bm5lciIsICJyZXF1aXJlbWVudHMudHh0IikpCisgICAgdmVudi5pbnN0YWxsKCJyZXF1ZXN0
cyIpCisKKyAgICBhcmdzLCB3cHRfYXJncyA9IGdldF9wYXJzZXIoKS5wYXJzZV9rbm93bl9hcmdz
KCkKKyAgICByZXR1cm4gcnVuKHZlbnYsIHdwdF9hcmdzLCAqKnZhcnMoYXJncykpCisKKworZGVm
IHJ1bih2ZW52LCB3cHRfYXJncywgKiprd2FyZ3MpOgorICAgIGRvX2RlbGF5ZWRfaW1wb3J0cygp
CisKKyAgICByZXRjb2RlID0gMAorCisgICAgd3B0X2FyZ3MgPSBjcmVhdGVfcGFyc2VyKCkucGFy
c2VfYXJncyh3cHRfYXJncykKKworICAgIHdpdGggb3Blbihrd2FyZ3NbImNvbmZpZ19maWxlIl0s
ICdyJykgYXMgY29uZmlnX2ZwOgorICAgICAgICBjb25maWcgPSBTYWZlQ29uZmlnUGFyc2VyKCkK
KyAgICAgICAgY29uZmlnLnJlYWRmcChjb25maWdfZnApCisgICAgICAgIHNraXBfdGVzdHMgPSBj
b25maWcuZ2V0KCJmaWxlIGRldGVjdGlvbiIsICJza2lwX3Rlc3RzIikuc3BsaXQoKQorICAgICAg
ICBpZ25vcmVfY2hhbmdlcyA9IHNldChjb25maWcuZ2V0KCJmaWxlIGRldGVjdGlvbiIsICJpZ25v
cmVfY2hhbmdlcyIpLnNwbGl0KCkpCisgICAgICAgIHJlc3VsdHNfdXJsID0gY29uZmlnLmdldCgi
ZmlsZSBkZXRlY3Rpb24iLCAicmVzdWx0c191cmwiKQorCisgICAgaWYga3dhcmdzWyJvdXRwdXRf
Ynl0ZXMiXSBpcyBub3QgTm9uZToKKyAgICAgICAgcmVwbGFjZV9zdHJlYW1zKGt3YXJnc1sib3V0
cHV0X2J5dGVzIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAiTG9nIHJlYWNoZWQgY2FwYWNp
dHkgKCVzIGJ5dGVzKTsgb3V0cHV0IGRpc2FibGVkLiIgJSBrd2FyZ3NbIm91dHB1dF9ieXRlcyJd
KQorCisKKyAgICB3cHRfYXJncy5tZXRhZGF0YV9yb290ID0ga3dhcmdzWyJtZXRhZGF0YV9yb290
Il0KKyAgICB0cnk6CisgICAgICAgIG9zLm1ha2VkaXJzKHdwdF9hcmdzLm1ldGFkYXRhX3Jvb3Qp
CisgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAgIHBhc3MKKworICAgIHNldHVwX2xvZ2dpbmco
KQorCisgICAgYnJvd3Nlcl9uYW1lID0gd3B0X2FyZ3MucHJvZHVjdC5zcGxpdCgiOiIpWzBdCisK
KyAgICBwcl9udW1iZXIgPSBwcigpCisKKyAgICB3aXRoIFRyYXZpc0ZvbGQoImJyb3dzZXJfc2V0
dXAiKToKKyAgICAgICAgbG9nZ2VyLmluZm8obWFya2Rvd24uZm9ybWF0X2NvbW1lbnRfdGl0bGUo
d3B0X2FyZ3MucHJvZHVjdCkpCisKKyAgICAgICAgaWYgcHIgaXMgbm90IE5vbmU6CisgICAgICAg
ICAgICBkZWVwZW5fY2hlY2tvdXQoa3dhcmdzWyJ1c2VyIl0pCisKKyAgICAgICAgIyBFbnN1cmUg
d2UgaGF2ZSBhIGJyYW5jaCBjYWxsZWQgIm1hc3RlciIKKyAgICAgICAgZmV0Y2hfd3B0KGt3YXJn
c1sidXNlciJdLCAibWFzdGVyOm1hc3RlciIpCisKKyAgICAgICAgaGVhZF9zaGExID0gZ2V0X3No
YTEoKQorICAgICAgICBsb2dnZXIuaW5mbygiVGVzdGluZyB3ZWItcGxhdGZvcm0tdGVzdHMgYXQg
cmV2aXNpb24gJXMiICUgaGVhZF9zaGExKQorCisgICAgICAgIHdwdF9rd2FyZ3MgPSBLd2FyZ3Mo
dmFycyh3cHRfYXJncykpCisKKyAgICAgICAgaWYgbm90IHdwdF9rd2FyZ3NbInRlc3RfbGlzdCJd
OgorICAgICAgICAgICAgbWFuaWZlc3RfcGF0aCA9IG9zLnBhdGguam9pbih3cHRfa3dhcmdzWyJt
ZXRhZGF0YV9yb290Il0sICJNQU5JRkVTVC5qc29uIikKKyAgICAgICAgICAgIHRlc3RzX2NoYW5n
ZWQsIGZpbGVzX2FmZmVjdGVkID0gZ2V0X2NoYW5nZWRfZmlsZXMobWFuaWZlc3RfcGF0aCwga3dh
cmdzWyJyZXYiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWdub3JlX2NoYW5nZXMsIHNraXBfdGVzdHMpCisKKyAgICAgICAg
ICAgIGlmIG5vdCAodGVzdHNfY2hhbmdlZCBvciBmaWxlc19hZmZlY3RlZCk6CisgICAgICAgICAg
ICAgICAgbG9nZ2VyLmluZm8oIk5vIHRlc3RzIGNoYW5nZWQiKQorICAgICAgICAgICAgICAgIHJl
dHVybiAwCisKKyAgICAgICAgICAgIGlmIHRlc3RzX2NoYW5nZWQ6CisgICAgICAgICAgICAgICAg
bG9nZ2VyLmRlYnVnKCJUZXN0cyBjaGFuZ2VkOlxuJXMiICUgIiIuam9pbigiICogJXNcbiIgJSBp
dGVtIGZvciBpdGVtIGluIHRlc3RzX2NoYW5nZWQpKQorCisgICAgICAgICAgICBpZiBmaWxlc19h
ZmZlY3RlZDoKKyAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoIkFmZmVjdGVkIHRlc3RzOlxu
JXMiICUgIiIuam9pbigiICogJXNcbiIgJSBpdGVtIGZvciBpdGVtIGluIGZpbGVzX2FmZmVjdGVk
KSkKKworICAgICAgICAgICAgd3B0X2t3YXJnc1sidGVzdF9saXN0Il0gPSBsaXN0KHRlc3RzX2No
YW5nZWQgfCBmaWxlc19hZmZlY3RlZCkKKworICAgICAgICBkb19kZWxheWVkX2ltcG9ydHMoKQor
CisgICAgICAgIHdwdF9rd2FyZ3NbInN0YWJpbGl0eSJdID0gVHJ1ZQorICAgICAgICB3cHRfa3dh
cmdzWyJwcm9tcHQiXSA9IEZhbHNlCisgICAgICAgIHdwdF9rd2FyZ3NbImluc3RhbGxfYnJvd3Nl
ciJdID0gVHJ1ZQorICAgICAgICB3cHRfa3dhcmdzWyJpbnN0YWxsIl0gPSB3cHRfa3dhcmdzWyJw
cm9kdWN0Il0uc3BsaXQoIjoiKVswXSA9PSAiZmlyZWZveCIKKworICAgICAgICB3cHRfa3dhcmdz
ID0gc2V0dXBfd3B0cnVubmVyKHZlbnYsICoqd3B0X2t3YXJncykKKworICAgICAgICBsb2dnZXIu
aW5mbygiVXNpbmcgYmluYXJ5ICVzIiAlIHdwdF9rd2FyZ3NbImJpbmFyeSJdKQorCisKKyAgICB3
aXRoIFRyYXZpc0ZvbGQoInJ1bm5pbmdfdGVzdHMiKToKKyAgICAgICAgbG9nZ2VyLmluZm8oIlN0
YXJ0aW5nIHRlc3RzIikKKworCisgICAgICAgIHdwdF9sb2dnZXIgPSB3cHRydW5uZXIubG9nZ2Vy
CisgICAgICAgIGl0ZXJhdGlvbnMsIHJlc3VsdHMsIGluY29uc2lzdGVudCA9IHN0YWJpbGl0eV9y
dW4odmVudiwgd3B0X2xvZ2dlciwgKip3cHRfa3dhcmdzKQorCisgICAgaWYgcmVzdWx0czoKKyAg
ICAgICAgaWYgaW5jb25zaXN0ZW50OgorICAgICAgICAgICAgd3JpdGVfaW5jb25zaXN0ZW50KGxv
Z2dlci5lcnJvciwgaW5jb25zaXN0ZW50LCBpdGVyYXRpb25zKQorICAgICAgICAgICAgcmV0Y29k
ZSA9IDIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJBbGwgcmVzdWx0
cyB3ZXJlIHN0YWJsZVxuIikKKyAgICAgICAgd2l0aCBUcmF2aXNGb2xkKCJmdWxsX3Jlc3VsdHMi
KToKKyAgICAgICAgICAgIHdyaXRlX3Jlc3VsdHMobG9nZ2VyLmluZm8sIHJlc3VsdHMsIGl0ZXJh
dGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHByX251bWJlcj1wcl9udW1iZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVzZV9kZXRhaWxzPVRydWUpCisgICAgICAgICAgICBp
ZiBwcl9udW1iZXI6CisgICAgICAgICAgICAgICAgcG9zdF9yZXN1bHRzKHJlc3VsdHMsIGl0ZXJh
dGlvbnM9aXRlcmF0aW9ucywgdXJsPXJlc3VsdHNfdXJsLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwcm9kdWN0PXdwdF9hcmdzLnByb2R1Y3QsIHByX251bWJlcj1wcl9udW1iZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cz0iZmFpbGVkIiBpZiBpbmNvbnNpc3Rl
bnQgZWxzZSAicGFzc2VkIikKKyAgICBlbHNlOgorICAgICAgICBsb2dnZXIuaW5mbygiTm8gdGVz
dHMgcnVuLiIpCisgICAgICAgICMgQmUgY29uc2VydmF0aXZlIGFuZCBvbmx5IHJldHVybiBlcnJv
cnMgd2hlbiB3ZSBrbm93IGZvciBzdXJlIHRlc3RzIGFyZSBjaGFuZ2VkLgorICAgICAgICBpZiB0
ZXN0c19jaGFuZ2VkOgorICAgICAgICAgICAgcmV0Y29kZSA9IDMKKworICAgIHJldHVybiByZXRj
b2RlCisKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICB0cnk6CisgICAgICAgIHN5
cy5leGl0KG1haW4oKSkKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICBpbXBvcnQgdHJh
Y2ViYWNrCisgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoKQorICAgICAgICBzeXMuZXhpdCgx
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS9jaV9idWlsdF9kaWZmLnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV9idWlsdF9kaWZmLnNoCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNl
OWZlNjA5OWQ1MWVkYmNkMjgxMDAwMWUwMDQ0MDFjZjRiMzczZWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2Np
X2J1aWx0X2RpZmYuc2gKQEAgLTAsMCArMSwyNSBAQAorc2V0IC1leAorCitTQ1JJUFRfRElSPSQo
ZGlybmFtZSAkKHJlYWRsaW5rIC1mICIkMCIpKQorV1BUX1JPT1Q9JChyZWFkbGluayAtZiAkU0NS
SVBUX0RJUi8uLi8uLikKK2NkICRXUFRfUk9PVAorCittYWluKCkgeworICAgICMgRGlmZiBQTkdz
IGJhc2VkIG9uIHBpeGVsLWZvci1waXhlbCBpZGVudGl0eQorICAgIGVjaG8gLWUgJ1tkaWZmICJp
bWciXVxuICB0ZXh0Y29udiA9IGlkZW50aWZ5IC1xdWlldCAtZm9ybWF0ICIlIyInID4+IC5naXQv
Y29uZmlnCisgICAgZWNobyAtZSAnKi5wbmcgZGlmZj1pbWcnID4+IC5naXQvaW5mby9hdHRyaWJ1
dGVzCisKKyAgICAjwqBFeGNsdWRlIHRlc3RzIHRoYXQgcmVseSBvbiBmb250IHJlbmRlcmluZwor
ICAgIGV4Y2x1ZGVkPSgKKyAgICAgICAgJzJkY29udGV4dC9kcmF3aW5nLXRleHQtdG8tdGhlLWNh
bnZhcy8yZC50ZXh0LmRyYXcuZmlsbC5iYXNpYy5wbmcnCisgICAgICAgICcyZGNvbnRleHQvZHJh
d2luZy10ZXh0LXRvLXRoZS1jYW52YXMvMmQudGV4dC5kcmF3LmZpbGwubWF4V2lkdGgubGFyZ2Uu
cG5nJworICAgICAgICAnMmRjb250ZXh0L2RyYXdpbmctdGV4dC10by10aGUtY2FudmFzLzJkLnRl
eHQuZHJhdy5maWxsLnJ0bC5wbmcnCisgICAgICAgICcyZGNvbnRleHQvZHJhd2luZy10ZXh0LXRv
LXRoZS1jYW52YXMvMmQudGV4dC5kcmF3LnN0cm9rZS5iYXNpYy5wbmcnCisgICAgKQorCisgICAg
Li91cGRhdGUtYnVpbHQtdGVzdHMuc2gKKyAgICBnaXQgdXBkYXRlLWluZGV4IC0tYXNzdW1lLXVu
Y2hhbmdlZCAke2V4Y2x1ZGVkWypdfQorICAgIGdpdCBkaWZmIC0tZXhpdC1jb2RlCit9CisKK21h
aW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvY2lfbGludC5zaCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfbGludC5zaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmIzMTdlMWExOTNi
NTcxNjFjNTI0YjJjMTBiM2Q0MmZkM2JlYWRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV9saW50LnNoCkBA
IC0wLDAgKzEsOSBAQAorc2V0IC1leAorCitTQ1JJUFRfRElSPSQoZGlybmFtZSAkKHJlYWRsaW5r
IC1mICIkMCIpKQorV1BUX1JPT1Q9JChyZWFkbGluayAtZiAkU0NSSVBUX0RJUi8uLi8uLikKK2Nk
ICRXUFRfUk9PVAorCitta2RpciAtcCB+L21ldGEKKy4vd3B0IG1hbmlmZXN0IC1wIH4vbWV0YS9N
QU5JRkVTVC5qc29uCisuL3dwdCBsaW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX21hbmlmZXN0LnNoIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV9tYW5pZmVz
dC5zaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mMTNhNzBmOTM1NDM2YTUwMjU4MTE1Y2YwMDZkNjkxM2QwYWY3ZWFi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS9jaV9tYW5pZmVzdC5zaApAQCAtMCwwICsxLDEzIEBACitzZXQgLWV4
CisKK1NDUklQVF9ESVI9JChkaXJuYW1lICQocmVhZGxpbmsgLWYgIiQwIikpCitXUFRfUk9PVD0k
KHJlYWRsaW5rIC1mICRTQ1JJUFRfRElSLy4uLy4uKQorY2QgJFdQVF9ST09UCisKK21rZGlyIC1w
IH4vbWV0YQorCitweXRob24gdG9vbHMvY2kvdGFnX21hc3Rlci5weQorLi93cHQgbWFuaWZlc3Qg
LXAgfi9tZXRhL01BTklGRVNULmpzb24KK2NwIH4vbWV0YS9NQU5JRkVTVC5qc29uICRXUFRfTUFO
SUZFU1RfRklMRQorIyBGb3JjZSBvdmVyd3JpdGUgb2YgYW55IGV4aXN0aW5nIGZpbGUKK2d6aXAg
LWYgJFdQVF9NQU5JRkVTVF9GSUxFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3Jlc291cmNlc191bml0dGVzdC5zaCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lf
cmVzb3VyY2VzX3VuaXR0ZXN0LnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmMWUyMjQ4NDNkMjNmNTcwYzNmZmMz
MWRlOTU1NjdhZmFmN2FjM2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3Jlc291cmNlc191bml0dGVzdC5z
aApAQCAtMCwwICsxLDE5IEBACisjIS9iaW4vYmFzaAorc2V0IC1leAorCitTQ1JJUFRfRElSPSQo
ZGlybmFtZSAkKHJlYWRsaW5rIC1mICIkMCIpKQorV1BUX1JPT1Q9JChyZWFkbGluayAtZiAkU0NS
SVBUX0RJUi8uLi8uLikKK2NkICRXUFRfUk9PVAorCittYWluKCkgeworICAgIGNkICRXUFRfUk9P
VAorICAgIHBpcCBpbnN0YWxsIC1VIHRveAorICAgIC4vd3B0IGluc3RhbGwgZmlyZWZveCBicm93
c2VyIC0tZGVzdGluYXRpb24gJEhPTUUKKyAgICAuL3dwdCBpbnN0YWxsIGZpcmVmb3ggd2ViZHJp
dmVyIC0tZGVzdGluYXRpb24gJEhPTUUvZmlyZWZveAorICAgIGV4cG9ydCBQQVRIPSRIT01FL2Zp
cmVmb3g6JFBBVEgKKworICAgIGNkICRXUFRfUk9PVC9yZXNvdXJjZXMvdGVzdAorICAgIHRveCAt
LSAtLWJpbmFyeT0kSE9NRS9icm93c2Vycy9maXJlZm94L2ZpcmVmb3gKK30KKworbWFpbgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9jaS9jaV9zdGFiaWxpdHkuc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3N0YWJpbGl0eS5zaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjNiMDU3Mzg1
M2E1M2ZlNTUyMGQ4ZmE2YWFiMDJmODBiNTNhMThkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV9zdGFiaWxp
dHkuc2gKQEAgLTAsMCArMSwzMCBAQAorIyEvYmluL2Jhc2gKK3NldCAtZXgKKworU0NSSVBUX0RJ
Uj0kKGRpcm5hbWUgJChyZWFkbGluayAtZiAiJDAiKSkKK1dQVF9ST09UPSQocmVhZGxpbmsgLWYg
JFNDUklQVF9ESVIvLi4vLi4pCitjZCAkV1BUX1JPT1QKKworc291cmNlIHRvb2xzL2NpL2xpYi5z
aAorCit0ZXN0X3N0YWJpbGl0eSgpIHsKKyAgICBsb2NhbCBleHRyYV9hcmc9JDEKKyAgICAuL3dw
dCBjaGVjay1zdGFiaWxpdHkgJFBST0RVQ1QgJGV4dHJhX2FyZyAtLW91dHB1dC1ieXRlcyAkKCgx
MDI0ICogMTAyNCAqIDMpKSAtLW1ldGFkYXRhIH4vbWV0YS8gLS1pbnN0YWxsLWZvbnRzCit9CisK
K21haW4oKSB7CisgICAgaG9zdHNfZml4dXAKKyAgICBsb2NhbCBleHRyYV9hcmc9IiIKKyAgICBp
ZiBbICQoZWNobyAkUFJPRFVDVCB8IGdyZXAgJ15jaHJvbWU6JykgXTsgdGhlbgorICAgICAgICBs
b2NhbCBjaGFubmVsPSQoZWNobyAkUFJPRFVDVCB8IGdyZXAgLS1vbmx5LW1hdGNoaW5nICdcd1wr
JCcpCisgICAgICAgIGlmIFtbICRjaGFubmVsID09ICJkZXYiIF1dOyB0aGVuCisgICAgICAgICAg
ICAjIFRoZSBwYWNrYWdlIG5hbWUgZm9yIEdvb2dsZSBDaHJvbWUgRGV2IHVzZXMgInVuc3RhYmxl
Iiwgbm90ICJkZXYiLgorICAgICAgICAgICAgY2hhbm5lbD0idW5zdGFibGUiCisgICAgICAgIGZp
CisgICAgICAgIGluc3RhbGxfY2hyb21lICRjaGFubmVsCisgICAgICAgIGV4dHJhX2FyZz0iLS1i
aW5hcnk9JCh3aGljaCBnb29nbGUtY2hyb21lLSRjaGFubmVsKSIKKyAgICBmaQorICAgIHRlc3Rf
c3RhYmlsaXR5ICRleHRyYV9hcmcKK30KKworbWFpbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV90b29sc191bml0dGVz
dC5zaCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvY2lfdG9vbHNfdW5pdHRlc3Quc2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYThlNGM0MTA3MGZmNTY0MzI2NWE5
Zjg2MTdmYmNmZTQ4Y2ViZWY1MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfdG9vbHNfdW5pdHRlc3Quc2gK
QEAgLTAsMCArMSwzOCBAQAorIyEvYmluL2Jhc2gKK3NldCAtZXgKKworU0NSSVBUX0RJUj0kKGRp
cm5hbWUgJChyZWFkbGluayAtZiAiJDAiKSkKK1dQVF9ST09UPSQocmVhZGxpbmsgLWYgJFNDUklQ
VF9ESVIvLi4vLi4pCitjZCAkV1BUX1JPT1QKKworcnVuX2FwcGxpY2FibGVfdG94ICgpIHsKKyAg
ICAjIGluc3RlYWQgb2YganVzdCBydW5uaW5nIFRPWEVOViAoZS5nLiwgcHkyNykKKyAgICAjIHJ1
biBhbGwgZW52aXJvbm1lbnRzIHRoYXQgc3RhcnQgd2l0aCBUT1hFTlYKKyAgICAjIChlLmcuLCBw
eTI3LWZpcmVmb3ggYXMgd2VsbCBhcyBweTI3KQorICAgIGxvY2FsIE9MRF9UT1hFTlY9IiRUT1hF
TlYiCisgICAgdW5zZXQgVE9YRU5WCisgICAgbG9jYWwgUlVOX0VOVlM9JCh0b3ggLWwgfCBncmVw
ICJeJHtPTERfVE9YRU5WfVwoXC1cfFwkXCkiIHwgdHIgIlxuIiAiLCIpCisgICAgaWYgW1sgLW4g
IiRSVU5fRU5WUyIgXV07IHRoZW4KKyAgICAgICAgdG94IC1lICIkUlVOX0VOVlMiCisgICAgZmkK
KyAgICBleHBvcnQgVE9YRU5WPSIkT0xEX1RPWEVOViIKK30KKworCitpZiBbWyAkKC4vd3B0IHRl
c3Qtam9icyAtLWluY2x1ZGVzIHRvb2xzX3VuaXR0ZXN0OyBlY2hvICQ/KSAtZXEgMCBdXTsgdGhl
bgorICAgIHBpcCBpbnN0YWxsIC1VIHRveCBjb2RlY292CisgICAgY2QgdG9vbHMKKyAgICBydW5f
YXBwbGljYWJsZV90b3gKKyAgICBjZCAkV1BUX1JPT1QKK2Vsc2UKKyAgICBlY2hvICJTa2lwcGlu
ZyB0b29scyB1bml0dGVzdCIKK2ZpCisKK2lmIFtbICQoLi93cHQgdGVzdC1qb2JzIC0taW5jbHVk
ZXMgd3B0cnVubmVyX3VuaXR0ZXN0OyBlY2hvICQ/KSAtZXEgMCBdXTsgdGhlbgorICAgIGNkIHRv
b2xzL3dwdHJ1bm5lcgorICAgIHJ1bl9hcHBsaWNhYmxlX3RveAorICAgIGNkICRXUFRfUk9PVAor
ZWxzZQorICAgIGVjaG8gIlNraXBwaW5nIHdwdHJ1bm5lciB1bml0dGVzdCIKK2ZpCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvY2lfd3B0LnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS9jaV93cHQuc2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmI2MzQxMzc2MDU5MWNlOWYxZjQ2N2Rk
MWIwNjAzZWU4ZDM4Y2YxMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfd3B0LnNoCkBAIC0wLDAgKzEsMTkg
QEAKKyMhL2Jpbi9iYXNoCitzZXQgLWUKKworU0NSSVBUX0RJUj0kKGRpcm5hbWUgJChyZWFkbGlu
ayAtZiAiJDAiKSkKK1dQVF9ST09UPSQocmVhZGxpbmsgLWYgJFNDUklQVF9ESVIvLi4vLi4pCitj
ZCAkV1BUX1JPT1QKKworc291cmNlIHRvb2xzL2NpL2xpYi5zaAorCittYWluKCkgeworICAgIGdp
dCBmZXRjaCAtLXVuc2hhbGxvdyBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy5naXQgK3JlZnMvaGVhZHMvKjpyZWZzL3JlbW90ZXMvb3JpZ2luLyoKKyAgICBob3N0c19m
aXh1cAorICAgIGluc3RhbGxfY2hyb21lIHVuc3RhYmxlCisgICAgcGlwIGluc3RhbGwgLVUgdG94
IGNvZGVjb3YKKyAgICBjZCB0b29scy93cHQKKyAgICB0b3gKK30KKworbWFpbgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9j
aV93cHRydW5uZXJfaW5mcmFzdHJ1Y3R1cmUuc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3dwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZS5z
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kNmQ2ODAzOTc0ZmIwNThlMTFhZWJiNjVmMTI3NTJlNDgyNGE1NzFkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS9jaV93cHRydW5uZXJfaW5mcmFzdHJ1Y3R1cmUuc2gKQEAgLTAsMCArMSwz
NyBAQAorIyEvYmluL2Jhc2gKK3NldCAtZXgKKworU0NSSVBUX0RJUj0kKGRpcm5hbWUgJChyZWFk
bGluayAtZiAiJDAiKSkKK1dQVF9ST09UPSQocmVhZGxpbmsgLWYgJFNDUklQVF9ESVIvLi4vLi4p
CitjZCAkV1BUX1JPT1QKKworc291cmNlIHRvb2xzL2NpL2xpYi5zaAorCit0ZXN0X2luZnJhc3Ry
dWN0dXJlKCkgeworICAgIGxvY2FsIEFSR1M9IiI7CisgICAgaWYgWyAkUFJPRFVDVCA9PSAiZmly
ZWZveCIgXTsgdGhlbgorICAgICAgICBBUkdTPSItLWluc3RhbGwtYnJvd3NlciIKKyAgICBlbHNl
CisgICAgICAgIEFSR1M9JDEKKyAgICBmaQorICAgIC4vd3B0IHJ1biAtLXllcyAtLW1hbmlmZXN0
IH4vbWV0YS9NQU5JRkVTVC5qc29uIC0tbWV0YWRhdGEgaW5mcmFzdHJ1Y3R1cmUvbWV0YWRhdGEv
IC0taW5zdGFsbC1mb250cyAkQVJHUyAkUFJPRFVDVCBpbmZyYXN0cnVjdHVyZS8KK30KKworbWFp
bigpIHsKKyAgICBQUk9EVUNUUz0oICJmaXJlZm94IiAiY2hyb21lIiApCisgICAgZm9yIFBST0RV
Q1QgaW4gIiR7UFJPRFVDVFNbQF19IjsgZG8KKyAgICAgICAgaWYgWyAiJFBST0RVQ1QiICE9ICJm
aXJlZm94IiBdOyB0aGVuCisgICAgICAgICAgICAjIEZpcmVmb3ggaXMgZXhwZWN0ZWQgdG8gd29y
ayB1c2luZyBwcmVmIHNldHRpbmdzIGZvciBETlMKKyAgICAgICAgICAgICMgRG9uJ3QgYWRqdXN0
IHRoZSBob3N0bmFtZXMgaW4gdGhhdCBjYXNlIHRvIGVuc3VyZSB0aGlzIGtlZXBzIHdvcmtpbmcK
KyAgICAgICAgICAgIGhvc3RzX2ZpeHVwCisgICAgICAgIGZpCisgICAgICAgIGlmIFsgIiRQUk9E
VUNUIiA9PSAiY2hyb21lIiBdOyB0aGVuCisgICAgICAgICAgICBpbnN0YWxsX2Nocm9tZSB1bnN0
YWJsZQorICAgICAgICAgICAgdGVzdF9pbmZyYXN0cnVjdHVyZSAiLS1iaW5hcnk9JCh3aGljaCBn
b29nbGUtY2hyb21lLXVuc3RhYmxlKSIKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdF9p
bmZyYXN0cnVjdHVyZQorICAgICAgICBmaQorICAgIGRvbmUKK30KKworbWFpbgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9j
b21tYW5kcy5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS9jb21tYW5kcy5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE4ZGI0MjhlMjhmODc0MGZmYzlk
M2JiMjQ5YjJmYjMzNTM1OGFkMjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NvbW1hbmRzLmpzb24KQEAgLTAs
MCArMSw3IEBACit7CisgICAgInRlc3Qtam9icyI6IHsicGF0aCI6ICJqb2JzLnB5IiwgInNjcmlw
dCI6ICJydW4iLCAicGFyc2VyIjogImNyZWF0ZV9wYXJzZXIiLCAiaGVscCI6ICJMaXN0IHRlc3Qg
am9icyB0aGF0IHNob3VsZCBydW4gZm9yIGEgc2V0IG9mIGNvbW1pdHMiLAorICAgICAgICAgICAg
ICAgICAgInZpcnR1YWxlbnYiOiBmYWxzZX0sCisgICAgImNoZWNrLXN0YWJpbGl0eSI6IHsicGF0
aCI6ICJjaGVja19zdGFiaWxpdHkucHkiLCAic2NyaXB0IjogInJ1biIsICJwYXJzZXIiOiAiZ2V0
X3BhcnNlciIsICJwYXJzZV9rbm93biI6IHRydWUsICJoZWxwIjogIkNoZWNrIHRlc3Qgc3RhYmls
aXR5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ2aXJ0dWFsZW52IjogdHJ1ZSwgImluc3Rh
bGwiOiBbInJlcXVlc3RzIl0sICJyZXF1aXJlbWVudHMiOiBbIi4uL3dwdHJ1bm5lci9yZXF1aXJl
bWVudHMudHh0Il19LAorICAibWFrZS1ob3N0cy1maWxlIjogeyJwYXRoIjogIm1ha2VfaG9zdHNf
ZmlsZS5weSIsICJzY3JpcHQiOiAicnVuIiwgInBhcnNlciI6ICJjcmVhdGVfcGFyc2VyIiwgImhl
bHAiOiAiT3V0cHV0IGEgaG9zdHMgZmlsZSB0byBzdGRvdXQiLCAidmlydHVhbGVudiI6IGZhbHNl
fQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS9pbnN0YWxsLnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jaS9pbnN0YWxsLnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxZDQzNjhkNGZm
OTYwYWZhMGQ5NjY4YTU2MjYzN2IzYzg2YTMwYTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2luc3RhbGwuc2gK
QEAgLTAsMCArMSwxMSBAQAorIyEvYmluL2Jhc2gKK3NldCAtZXgKKworU0NSSVBUX0RJUj0kKGRp
cm5hbWUgJChyZWFkbGluayAtZiAiJDAiKSkKK1dQVF9ST09UPSQocmVhZGxpbmsgLWYgJFNDUklQ
VF9ESVIvLi4vLi4pCitjZCAkV1BUX1JPT1QKKworaWYgW1sgJFJVTl9KT0IgLWVxIDEgXV07IHRo
ZW4KKyAgICBwaXAgaW5zdGFsbCAtVSBzZXR1cHRvb2xzCisgICAgcGlwIGluc3RhbGwgLVUgcmVx
dWVzdHMKK2ZpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL2pvYnMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2pvYnMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDU0NWY0OTZlNTBh
OGRmZDEwZWMzYTUyOWNmZDQ3ZWMzNjMwZGFmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvam9icy5weQpAQCAt
MCwwICsxLDEyNyBAQAoraW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQgb3MKK2ltcG9ydCByZQorZnJv
bSAuLndwdC50ZXN0ZmlsZXMgaW1wb3J0IGJyYW5jaF9wb2ludCwgZmlsZXNfY2hhbmdlZCwgYWZm
ZWN0ZWRfdGVzdGZpbGVzCisKK2Zyb20gdG9vbHMgaW1wb3J0IGxvY2FscGF0aHMKK2Zyb20gc2l4
IGltcG9ydCBpdGVyaXRlbXMKKword3B0X3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5q
b2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksIG9zLnBhcmRpciwgb3MucGFyZGlyKSkKKwor
IyBSdWxlcyBhcmUganVzdCByZWdleCBvbiB0aGUgcGF0aCwgd2l0aCBhIGxlYWRpbmcgISBpbmRp
Y2F0aW5nIGEgcmVnZXggdGhhdCBtdXN0IG5vdAorIyBtYXRjaCBmb3IgdGhlIGpvYgoram9iX3Bh
dGhfbWFwID0geworICAgICJzdGFiaWxpdHkiOiBbIi4qLy4qIiwKKyAgICAgICAgICAgICAgICAg
ICIhdG9vbHMvIiwKKyAgICAgICAgICAgICAgICAgICIhZG9jcy8iLAorICAgICAgICAgICAgICAg
ICAgIiFyZXNvdXJjZXMvKiIsCisgICAgICAgICAgICAgICAgICAiIWNvbmZvcm1hbmNlLWNoZWNr
ZXJzLyIsCisgICAgICAgICAgICAgICAgICAiIS4qL09XTkVSUyIsCisgICAgICAgICAgICAgICAg
ICAiIS4qL3Rvb2xzLyIsCisgICAgICAgICAgICAgICAgICAiIS4qL1JFQURNRSIsCisgICAgICAg
ICAgICAgICAgICAiIWNzcy9bXi9dKiQiXSwKKyAgICAibGludCI6IFsiLioiXSwKKyAgICAibWFu
aWZlc3RfdXBsb2FkIjogWyIuKiJdLAorICAgICJyZXNvdXJjZXNfdW5pdHRlc3QiOiBbInJlc291
cmNlcy8iXSwKKyAgICAidG9vbHNfdW5pdHRlc3QiOiBbInRvb2xzLyJdLAorICAgICJ3cHRydW5u
ZXJfdW5pdHRlc3QiOiBbInRvb2xzL3dwdHJ1bm5lci8qIl0sCisgICAgImJ1aWxkX2NzcyI6IFsi
Y3NzLyJdLAorICAgICJ1cGRhdGVfYnVpbHQiOiBbIjJkY29udGV4dC8iLAorICAgICAgICAgICAg
ICAgICAgICAgImFzc3VtcHRpb25zLyIsCisgICAgICAgICAgICAgICAgICAgICAiaHRtbC8iLAor
ICAgICAgICAgICAgICAgICAgICAgIm9mZnNjcmVlbi1jYW52YXMvIl0sCisgICAgIndwdF9pbnRl
Z3JhdGlvbiI6IFsidG9vbHMvIl0sCisgICAgIndwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZSI6IFsi
dG9vbHMvIl0sCit9CisKKworY2xhc3MgUnVsZXNldChvYmplY3QpOgorICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBydWxlcyk6CisgICAgICAgIHNlbGYuaW5jbHVkZSA9IFtdCisgICAgICAgIHNlbGYu
ZXhjbHVkZSA9IFtdCisgICAgICAgIGZvciBydWxlIGluIHJ1bGVzOgorICAgICAgICAgICAgc2Vs
Zi5hZGRfcnVsZShydWxlKQorCisgICAgZGVmIGFkZF9ydWxlKHNlbGYsIHJ1bGUpOgorICAgICAg
ICBpZiBydWxlLnN0YXJ0c3dpdGgoIiEiKToKKyAgICAgICAgICAgIHRhcmdldCA9IHNlbGYuZXhj
bHVkZQorICAgICAgICAgICAgcnVsZSA9IHJ1bGVbMTpdCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICB0YXJnZXQgPSBzZWxmLmluY2x1ZGUKKworICAgICAgICB0YXJnZXQuYXBwZW5kKHJlLmNv
bXBpbGUoIl4lcyIgJSBydWxlKSkKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBwYXRoKToKKyAg
ICAgICAgaWYgb3MucGF0aC5zZXAgIT0gIi8iOgorICAgICAgICAgICAgcGF0aCA9IHBhdGgucmVw
bGFjZShvcy5wYXRoLnNlcCwgIi8iKQorICAgICAgICBwYXRoID0gb3MucGF0aC5ub3JtY2FzZShw
YXRoKQorICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLmV4Y2x1ZGU6CisgICAgICAgICAgICBpZiBp
dGVtLm1hdGNoKHBhdGgpOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBm
b3IgaXRlbSBpbiBzZWxmLmluY2x1ZGU6CisgICAgICAgICAgICBpZiBpdGVtLm1hdGNoKHBhdGgp
OgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQorCisg
ICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICBzdWJzID0gdHVwbGUoIiwiLmpvaW4oaXRl
bS5wYXR0ZXJuIGZvciBpdGVtIGluIHRhcmdldCkKKyAgICAgICAgICAgICAgICAgICAgIGZvciB0
YXJnZXQgaW4gKHNlbGYuaW5jbHVkZSwgc2VsZi5leGNsdWRlKSkKKyAgICAgICAgcmV0dXJuICJS
dWxlczxpbmNsdWRlOlslc10gZXhjbHVkZTpbJXNdPiIgJSBzdWJzCisKKworZGVmIGdldF9wYXRo
cygqKmt3YXJncyk6CisgICAgaWYga3dhcmdzWyJyZXZpc2giXSBpcyBOb25lOgorICAgICAgICBy
ZXZpc2ggPSAiJXMuLkhFQUQiICUgYnJhbmNoX3BvaW50KCkKKyAgICBlbHNlOgorICAgICAgICBy
ZXZpc2ggPSBrd2FyZ3NbInJldmlzaCJdCisKKyAgICBjaGFuZ2VkLCBfID0gZmlsZXNfY2hhbmdl
ZChyZXZpc2gpCisgICAgYWxsX2NoYW5nZWQgPSBzZXQob3MucGF0aC5yZWxwYXRoKGl0ZW0sIHdw
dF9yb290KQorICAgICAgICAgICAgICAgICAgICAgIGZvciBpdGVtIGluIHNldChjaGFuZ2VkKSkK
KyAgICByZXR1cm4gYWxsX2NoYW5nZWQKKworCitkZWYgZ2V0X2pvYnMocGF0aHMsICoqa3dhcmdz
KToKKyAgICBqb2JzID0gc2V0KCkKKworICAgIHJ1bGVzID0ge30KKyAgICBpbmNsdWRlcyA9IGt3
YXJncy5nZXQoImluY2x1ZGVzIikKKyAgICBpZiBpbmNsdWRlcyBpcyBub3QgTm9uZToKKyAgICAg
ICAgaW5jbHVkZXMgPSBzZXQoaW5jbHVkZXMpCisgICAgZm9yIGtleSwgdmFsdWUgaW4gaXRlcml0
ZW1zKGpvYl9wYXRoX21hcCk6CisgICAgICAgIGlmIGluY2x1ZGVzIGlzIE5vbmUgb3Iga2V5IGlu
IGluY2x1ZGVzOgorICAgICAgICAgICAgcnVsZXNba2V5XSA9IFJ1bGVzZXQodmFsdWUpCisKKyAg
ICBmb3IgcGF0aCBpbiBwYXRoczoKKyAgICAgICAgZm9yIGpvYiBpbiBsaXN0KHJ1bGVzLmtleXMo
KSk6CisgICAgICAgICAgICBydWxlc2V0ID0gcnVsZXNbam9iXQorICAgICAgICAgICAgaWYgcnVs
ZXNldChwYXRoKToKKyAgICAgICAgICAgICAgICBydWxlcy5wb3Aoam9iKQorICAgICAgICAgICAg
ICAgIGpvYnMuYWRkKGpvYikKKyAgICAgICAgaWYgbm90IHJ1bGVzOgorICAgICAgICAgICAgYnJl
YWsKKworICAgICMgRGVmYXVsdCBqb2JzIHNodWxkIHJ1biBldmVuIGlmIHRoZXJlIHdlcmUgbm8g
Y2hhbmdlcworICAgIGlmIG5vdCBwYXRoczoKKyAgICAgICAgZm9yIGpvYiwgcGF0aF9yZSBpbiBp
dGVyaXRlbXMoam9iX3BhdGhfbWFwKToKKyAgICAgICAgICAgIGlmICIuKiIgaW4gcGF0aF9yZToK
KyAgICAgICAgICAgICAgICBqb2JzLmFkZChqb2IpCisKKyAgICByZXR1cm4gam9icworCisKK2Rl
ZiBjcmVhdGVfcGFyc2VyKCk6CisgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIo
KQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoInJldmlzaCIsIGRlZmF1bHQ9Tm9uZSwgaGVscD0i
Q29tbWl0cyB0byBjb25zaWRlci4gRGVmYXVsdHMgdG8gdGhlIGNvbW1pdHMgb24gdGhlIGN1cnJl
bnQgYnJhbmNoIiwgbmFyZ3M9Ij8iKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0taW5jbHVk
ZXMiLCBkZWZhdWx0PU5vbmUsIGhlbHA9IkpvYnMgdG8gY2hlY2sgZm9yLiBSZXR1cm4gY29kZSBp
cyAwIGlmIGFsbCBqb2JzIGFyZSBmb3VuZCwgb3RoZXJ3aXNlIDEiLCBuYXJncz0iKiIpCisgICAg
cmV0dXJuIHBhcnNlcgorCisKK2RlZiBydW4oKiprd2FyZ3MpOgorICAgIHBhdGhzID0gZ2V0X3Bh
dGhzKCoqa3dhcmdzKQorICAgIGpvYnMgPSBnZXRfam9icyhwYXRocywgKiprd2FyZ3MpCisgICAg
aWYgbm90IGt3YXJnc1siaW5jbHVkZXMiXToKKyAgICAgICAgZm9yIGl0ZW0gaW4gc29ydGVkKGpv
YnMpOgorICAgICAgICAgICAgcHJpbnQoaXRlbSkKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4g
MCBpZiBzZXQoa3dhcmdzWyJpbmNsdWRlcyJdKS5pc3N1YnNldChqb2JzKSBlbHNlIDEKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvbGliLnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jaS9saWIuc2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2MwYjgyNTNhOTA2ZTA1ZjdkNzkzZDFjNjI3NGY5
YWVkMDFiN2Y4MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvbGliLnNoCkBAIC0wLDAgKzEsMzcgQEAKKyMhL2Jp
bi9iYXNoCisKK2hvc3RzX2ZpeHVwKCkgeworICAgIGVjaG8gInRyYXZpc19mb2xkOnN0YXJ0Omhv
c3RzX2ZpeHVwIgorICAgIGVjaG8gIlJld3JpdGluZyBob3N0cyBmaWxlIgorICAgIGVjaG8gIiMj
IC9ldGMvaG9zdHMgIyMiCisgICAgY2F0IC9ldGMvaG9zdHMKKyAgICBzdWRvIHNlZCAtaSAncy9e
OjoxXHMqbG9jYWxob3N0Lzo6MS8nIC9ldGMvaG9zdHMKKyAgICAuL3dwdCBtYWtlLWhvc3RzLWZp
bGUgfCBzdWRvIHRlZSAtYSAvZXRjL2hvc3RzCisgICAgZWNobyAiPT0gL2V0Yy9ob3N0cyA9PSIK
KyAgICBjYXQgL2V0Yy9ob3N0cworICAgIGVjaG8gIi0tLS0tLS0tLS0tLS0tLS0iCisgICAgZWNo
byAidHJhdmlzX2ZvbGQ6ZW5kOmhvc3RzX2ZpeHVwIgorfQorCitpbnN0YWxsX2Nocm9tZSgpIHsK
KyAgICBjaGFubmVsPSQxCisgICAgZGViX2FyY2hpdmU9Z29vZ2xlLWNocm9tZS0ke2NoYW5uZWx9
X2N1cnJlbnRfYW1kNjQuZGViCisgICAgd2dldCAtcSBodHRwczovL2RsLmdvb2dsZS5jb20vbGlu
dXgvZGlyZWN0LyRkZWJfYXJjaGl2ZQorCisgICAgIyBJZiB0aGUgZW52aXJvbm1lbnQgcHJvdmlk
ZXMgYW4gaW5zdGFsbGF0aW9uIG9mIEdvb2dsZSBDaHJvbWUsIHRoZQorICAgICMgZXhpc3Rpbmcg
YmluYXJ5IG1heSB0YWtlIHByZWNlZGVuY2Ugb3ZlciB0aGUgb25lIGludHJvZHVjZWQgaW4gdGhp
cworICAgICMgc2NyaXB0LiBSZW1vdmUgYW55IHByZXZpb3VzbHktZXhpc3RpbmcgImFsdGVybmF0
aXZlcyIgcHJpb3IgdG8KKyAgICAjIGluc3RhbGxhdGlvbiBpbiBvcmRlciB0byBlbnN1cmUgdGhh
dCB0aGUgbmV3IGJpbmFyeSBpcyBpbnN0YWxsZWQgYXMKKyAgICAjIGludGVuZGVkLgorICAgIGlm
IHN1ZG8gdXBkYXRlLWFsdGVybmF0aXZlcyAtLWxpc3QgZ29vZ2xlLWNocm9tZTsgdGhlbgorICAg
ICAgICBzdWRvIHVwZGF0ZS1hbHRlcm5hdGl2ZXMgLS1yZW1vdmUtYWxsIGdvb2dsZS1jaHJvbWUK
KyAgICBmaQorCisgICAgIyBJbnN0YWxsYXRpb24gd2lsbCBmYWlsIGluIGNhc2VzIHdoZXJlIHRo
ZSBwYWNrYWdlIGhhcyB1bm1ldCBkZXBlbmRlbmNpZXMuCisgICAgIyBXaGVuIHRoaXMgb2NjdXJz
LCBhdHRlbXB0IHRvIHVzZSB0aGUgc3lzdGVtIHBhY2thZ2UgbWFuYWdlciB0byBmZXRjaCB0aGUK
KyAgICAjIHJlcXVpcmVkIHBhY2thZ2VzIGFuZCByZXRyeS4KKyAgICBpZiAhIHN1ZG8gZHBrZyAt
LWluc3RhbGwgJGRlYl9hcmNoaXZlOyB0aGVuCisgICAgICBzdWRvIGFwdC1nZXQgaW5zdGFsbCAt
LWZpeC1icm9rZW4KKyAgICAgIHN1ZG8gZHBrZyAtLWluc3RhbGwgJGRlYl9hcmNoaXZlCisgICAg
ZmkKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvbWFrZV9ob3N0c19maWxlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9tYWtlX2hvc3RzX2ZpbGUucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjNjNzc1OGIyYWM0NTc3NDA2ODI4N2I0NTU2ZjFlY2IzY2I4OWYxNQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvbWFrZV9ob3N0c19maWxlLnB5CkBAIC0wLDAgKzEsMTkgQEAKK2ltcG9ydCBhcmdwYXJz
ZQoraW1wb3J0IG9zCisKK2Zyb20gLi5sb2NhbHBhdGhzIGltcG9ydCByZXBvX3Jvb3QKKworZnJv
bSAuLnNlcnZlLnNlcnZlIGltcG9ydCBsb2FkX2NvbmZpZywgbm9ybWFsaXNlX2NvbmZpZywgbWFr
ZV9ob3N0c19maWxlCisKK2RlZiBjcmVhdGVfcGFyc2VyKCk6CisgICAgcGFyc2VyID0gYXJncGFy
c2UuQXJndW1lbnRQYXJzZXIoKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoImFkZHJlc3MiLCBk
ZWZhdWx0PSIxMjcuMC4wLjEiLCBuYXJncz0iPyIsIGhlbHA9IkFkZHJlc3MgdGhhdCBob3N0cyBz
aG91bGQgcG9pbnQgYXQiKQorICAgIHJldHVybiBwYXJzZXIKKworZGVmIHJ1bigqKmt3YXJncyk6
CisgICAgY29uZmlnID0gbG9hZF9jb25maWcob3MucGF0aC5qb2luKHJlcG9fcm9vdCwgImNvbmZp
Zy5kZWZhdWx0Lmpzb24iKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4o
cmVwb19yb290LCAiY29uZmlnLmpzb24iKSkKKworICAgIGNvbmZpZyA9IG5vcm1hbGlzZV9jb25m
aWcoY29uZmlnLCB7fSkKKworICAgIHByaW50KG1ha2VfaG9zdHNfZmlsZShjb25maWcsIGt3YXJn
c1siYWRkcmVzcyJdKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvcnVuLnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9ydW4uc2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWU1OGY1OGMz
MzY1ZGEwNzZlYjA1MThmNTMyZWI1NzE3ZDFiZjNmYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvcnVuLnNoCkBA
IC0wLDAgKzEsMTAgQEAKKyMhL2Jpbi9iYXNoCitzZXQgLWV4CisKK1NDUklQVF9ESVI9JChkaXJu
YW1lICQocmVhZGxpbmsgLWYgIiQwIikpCitXUFRfUk9PVD0kKHJlYWRsaW5rIC1mICRTQ1JJUFRf
RElSLy4uLy4uKQorY2QgJFdQVF9ST09UCisKK2lmIFtbICRSVU5fSk9CIC1lcSAxIF1dOyB0aGVu
CisgICAgJFNDUklQVAorZmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGFnX21hc3Rlci5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGFnX21hc3Rlci5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40NDA0YTE5NWVmNjliM2ZkOTUzNzE5YTdkYWYxMDI2ZDE2Nzc3NTYwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jaS90YWdfbWFzdGVyLnB5CkBAIC0wLDAgKzEsOTIgQEAKK2ltcG9ydCBiYXNlNjQKK2lt
cG9ydCBqc29uCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IG9zCitpbXBvcnQgc3lzCitpbXBvcnQg
dXJsbGliMgorCitoZXJlID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguZGlybmFtZShfX2ZpbGVf
XykpCit3cHRfcm9vdCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oaGVyZSwgb3MucGFy
ZGlyLCBvcy5wYXJkaXIpKQorCitpZiBub3Qod3B0X3Jvb3QgaW4gc3lzLnBhdGgpOgorICAgIHN5
cy5wYXRoLmFwcGVuZCh3cHRfcm9vdCkKKworZnJvbSB0b29scy53cHQudGVzdGZpbGVzIGltcG9y
dCBnZXRfZ2l0X2NtZAorCitsb2dnaW5nLmJhc2ljQ29uZmlnKCkKK2xvZ2dlciA9IGxvZ2dpbmcu
Z2V0TG9nZ2VyKF9fbmFtZV9fKQorCisKK2RlZiBnZXRfcHIocmVwbywgb3duZXIsIHJldik6Cisg
ICAgdXJsID0gKCJodHRwczovL2FwaS5naXRodWIuY29tL3NlYXJjaC9pc3N1ZXM/cT10eXBlOnBy
K2lzOm1lcmdlZCtyZXBvOiVzLyVzKyVzIiAlCisgICAgICAgICAgIChyZXBvLCBvd25lciwgcmV2
KSkKKyAgICB0cnk6CisgICAgICAgIHJlc3AgPSB1cmxsaWIyLnVybG9wZW4odXJsKQorICAgIGV4
Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgbG9nZ2VyLmVycm9yKGUpCisgICAgICAgIHJl
dHVybiBOb25lCisKKyAgICBpZiByZXNwLmNvZGUgIT0gMjAwOgorICAgICAgICBsb2dnZXIuZXJy
b3IoIkdvdCBIVFRQIHN0YXR1cyAlcyIgJSByZXNwLmNvZGUpCisgICAgICAgIHJldHVybiBOb25l
CisKKyAgICB0cnk6CisgICAgICAgIGRhdGEgPSBqc29uLmxvYWRzKHJlc3AucmVhZCgpKQorICAg
IGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICBsb2dnZXIuZXJyb3IoIkZhaWxlZCB0byByZWFk
IHJlc3BvbnNlIGFzIEpTT04iKQorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgaXRlbXMgPSBk
YXRhWyJpdGVtcyJdCisgICAgaWYgbGVuKGl0ZW1zKSA9PSAwOgorICAgICAgICBsb2dnZXIuZXJy
b3IoIk5vIFBSIGZvdW5kIGZvciBtYXN0ZXIiKQorICAgICAgICByZXR1cm4gTm9uZQorICAgIGlm
IGxlbihpdGVtcykgPiAxOgorICAgICAgICBsb2dnZXIud2FybmluZygiRm91bmQgbXVsdGlwbGUg
UFJzIGZvciBtYXN0ZXIiKQorCisgICAgcHIgPSBpdGVtc1swXQorCisgICAgcmV0dXJuIHByWyJu
dW1iZXIiXQorCisKK2RlZiB0YWcocmVwbywgb3duZXIsIHNoYSwgdGFnKToKKyAgICBkYXRhID0g
anNvbi5kdW1wcyh7InJlZiI6ICJyZWZzL3RhZ3MvJXMiICUgdGFnLAorICAgICAgICAgICAgICAg
ICAgICAgICAic2hhIjogc2hhfSkKKyAgICB0cnk6CisgICAgICAgIHVybCA9ICJodHRwczovL2Fw
aS5naXRodWIuY29tL3JlcG9zLyVzLyVzL2dpdC9yZWZzIiAlIChyZXBvLCBvd25lcikKKyAgICAg
ICAgcmVxID0gdXJsbGliMi5SZXF1ZXN0KHVybCwgZGF0YT1kYXRhKQorCisgICAgICAgIGJhc2U2
NHN0cmluZyA9IGJhc2U2NC5iNjRlbmNvZGUoJyVzJyAlIChvcy5lbnZpcm9uWyJHSF9UT0tFTiJd
KSkKKyAgICAgICAgcmVxLmFkZF9oZWFkZXIoIkF1dGhvcml6YXRpb24iLCAiQmFzaWMgJXMiICUg
YmFzZTY0c3RyaW5nKQorCisgICAgICAgIG9wZW5lciA9IHVybGxpYjIuYnVpbGRfb3BlbmVyKHVy
bGxpYjIuSFRUUFNIYW5kbGVyKCkpCisKKyAgICAgICAgcmVzcCA9IG9wZW5lci5vcGVuKHJlcSkK
KyAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgIGxvZ2dlci5lcnJvcigiVGFnIGNy
ZWF0aW9uIGZhaWxlZDpcbiVzIiAlIGUpCisgICAgICAgIHJldHVybgorCisgICAgaWYgcmVzcC5j
b2RlICE9IDIwMToKKyAgICAgICAgbG9nZ2VyLmVycm9yKCJHb3QgSFRUUCBzdGF0dXMgJXMiICUg
cmVzcC5jb2RlKQorICAgIGVsc2U6CisgICAgICAgIGxvZ2dlci5pbmZvKCJUYWdnZWQgbWFzdGVy
IGFzICVzIiAlIHRhZykKKworCitkZWYgbWFpbigpOgorICAgIG93bmVyLCByZXBvID0gb3MuZW52
aXJvblsiVFJBVklTX1JFUE9fU0xVRyJdLnNwbGl0KCIvIiwgMSkKKyAgICBpZiBvcy5lbnZpcm9u
WyJUUkFWSVNfUFVMTF9SRVFVRVNUIl0gIT0gImZhbHNlIjoKKyAgICAgICAgbG9nZ2VyLmluZm8o
Ik5vdCB0YWdnaW5nIGZvciBQUiIpCisgICAgICAgIHJldHVybgorICAgIGlmIG9zLmVudmlyb25b
IlRSQVZJU19CUkFOQ0giXSAhPSAibWFzdGVyIjoKKyAgICAgICAgbG9nZ2VyLmluZm8oIk5vdCB0
YWdnaW5nIGZvciBub24tbWFzdGVyIGJyYW5jaCIpCisgICAgICAgIHJldHVybgorCisgICAgZ2l0
ID0gZ2V0X2dpdF9jbWQod3B0X3Jvb3QpCisgICAgaGVhZF9yZXYgPSBnaXQoInJldi1wYXJzZSIs
ICJIRUFEIikKKworICAgIHByID0gZ2V0X3ByKG93bmVyLCByZXBvLCBoZWFkX3JldikKKyAgICBp
ZiBwciBpcyBub3QgTm9uZToKKyAgICAgICAgdGFnKG93bmVyLCByZXBvLCBoZWFkX3JldiwgIm1l
cmdlX3ByXyVzIiAlIHByKQorCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgbWFp
bigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NpL3Rlc3RzL3Rlc3Rfam9icy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGVzdHMvdGVzdF9qb2JzLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjFiMWVkMzYyMDY0OTI5MTBhYWJjNTQyNTgxNGUwOThjYTI0YzAwNGMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NpL3Rlc3RzL3Rlc3Rfam9icy5weQpAQCAtMCwwICsxLDg0IEBACitmcm9tIHRvb2xzLmNpIGlt
cG9ydCBqb2JzCisKK2RlZmF1bHRfam9icyA9IHNldChbImxpbnQiLCAibWFuaWZlc3RfdXBsb2Fk
Il0pCisKKworZGVmIHRlc3RfdGVzdGhhcm5lc3MoKToKKyAgICBhc3NlcnQgam9icy5nZXRfam9i
cyhbInJlc291cmNlcy90ZXN0aGFybmVzcy5qcyJdKSA9PSBkZWZhdWx0X2pvYnMgfCBzZXQoWyJy
ZXNvdXJjZXNfdW5pdHRlc3QiXSkKKyAgICBhc3NlcnQgam9icy5nZXRfam9icyhbInJlc291cmNl
cy90ZXN0aGFybmVzcy5qcyJdLAorICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsi
cmVzb3VyY2VzX3VuaXR0ZXN0Il0pID09IHNldChbInJlc291cmNlc191bml0dGVzdCJdKQorICAg
IGFzc2VydCBqb2JzLmdldF9qb2JzKFsiZm9vL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyJdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsicmVzb3VyY2VzX3VuaXR0ZXN0Il0p
ID09IHNldCgpCisKKworZGVmIHRlc3Rfc3RhYmlsaXR5KCk6CisgICAgYXNzZXJ0IGpvYnMuZ2V0
X2pvYnMoWyJkb20vaGlzdG9yaWNhbC5odG1sIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
aW5jbHVkZXM9WyJzdGFiaWxpdHkiXSkgPT0gc2V0KFsic3RhYmlsaXR5Il0pCisgICAgYXNzZXJ0
IGpvYnMuZ2V0X2pvYnMoWyJ0b29scy9weXRlc3QuaW5pIl0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgaW5jbHVkZXM9WyJzdGFiaWxpdHkiXSkgPT0gc2V0KCkKKyAgICBhc3NlcnQgam9icy5n
ZXRfam9icyhbInNlcnZlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJz
dGFiaWxpdHkiXSkgPT0gc2V0KCkKKyAgICBhc3NlcnQgam9icy5nZXRfam9icyhbInJlc291cmNl
cy90ZXN0aGFybmVzcy5qcyJdLAorICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsi
c3RhYmlsaXR5Il0pID09IHNldCgpCisgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJkb2NzLy5n
aXRpZ25vcmUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bInN0YWJpbGl0
eSJdKSA9PSBzZXQoKQorICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsiZG9tL3Rvb2xzL2V4YW1w
bGUucHkiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bInN0YWJpbGl0eSJd
KSA9PSBzZXQoKQorICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsiY29uZm9ybWFuY2UtY2hlY2tl
cnMvdGVzdC5odG1sIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJzdGFi
aWxpdHkiXSkgPT0gc2V0KCkKKyAgICBhc3NlcnQgam9icy5nZXRfam9icyhbImRvbS9SRUFETUUu
bWQiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bInN0YWJpbGl0eSJdKSA9
PSBzZXQoKQorICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsiY3NzL2J1aWxkLWNzcy10ZXN0c3Vp
dGUuc2giXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bInN0YWJpbGl0eSJd
KSA9PSBzZXQoKQorICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsiY3NzL0NTUzIxL3Rlc3QtMDAx
Lmh0bWwiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bInN0YWJpbGl0eSJd
KSA9PSBzZXQoWyJzdGFiaWxpdHkiXSkKKyAgICBhc3NlcnQgam9icy5nZXRfam9icyhbImNzcy9i
dWlsZC1jc3MtdGVzdHN1aXRlLnNoIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImNzcy9D
U1MyMS90ZXN0LTAwMS5odG1sIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9
WyJzdGFiaWxpdHkiXSkgPT0gc2V0KFsic3RhYmlsaXR5Il0pCisKKworZGVmIHRlc3RfZGVmYXVs
dCgpOgorICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsiUkVBRE1FLm1kIl0pID09IGRlZmF1bHRf
am9icworCisKK2RlZiB0ZXN0X3Rvb2xzX3VuaXR0ZXN0KCk6CisgICAgYXNzZXJ0IGpvYnMuZ2V0
X2pvYnMoWyJ0b29scy9jaS90ZXN0L3Rlc3Rfam9icy5weSJdLAorICAgICAgICAgICAgICAgICAg
ICAgICAgIGluY2x1ZGVzPVsidG9vbHNfdW5pdHRlc3QiXSkgPT0gc2V0KFsidG9vbHNfdW5pdHRl
c3QiXSkKKyAgICBhc3NlcnQgam9icy5nZXRfam9icyhbImRvbS90b29scy9leGFtcGxlLnB5Il0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJ0b29sc191bml0dGVzdCJdKSA9
PSBzZXQoKQorICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsiZG9tL2hpc3RvcmljYWwuaHRtbCJd
LAorICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsidG9vbHNfdW5pdHRlc3QiXSkg
PT0gc2V0KCkKKworCitkZWYgdGVzdF93cHRydW5uZXJfdW5pdHRlc3QoKToKKyAgICBhc3NlcnQg
am9icy5nZXRfam9icyhbInRvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0cnVubmVyLnB5Il0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJ3cHRydW5uZXJfdW5pdHRlc3Qi
XSkgPT0gc2V0KFsid3B0cnVubmVyX3VuaXR0ZXN0Il0pCisgICAgYXNzZXJ0IGpvYnMuZ2V0X2pv
YnMoWyJ0b29scy9leGFtcGxlLnB5Il0sCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVk
ZXM9WyJ3cHRydW5uZXJfdW5pdHRlc3QiXSkgPT0gc2V0KCkKKworCitkZWYgdGVzdF9idWlsZF9j
c3MoKToKKyAgICBhc3NlcnQgam9icy5nZXRfam9icyhbImNzcy9jc3MtYnVpbGQtdGVzdHN1aXRl
cy5zaCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsiYnVpbGRfY3NzIl0p
ID09IHNldChbImJ1aWxkX2NzcyJdKQorICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsiY3NzL0NT
UzIxL3Rlc3QuaHRtbCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsiYnVp
bGRfY3NzIl0pID09IHNldChbImJ1aWxkX2NzcyJdKQorICAgIGFzc2VydCBqb2JzLmdldF9qb2Jz
KFsiaHRtbC9jc3MvQ1NTMjEvdGVzdC5odG1sIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
aW5jbHVkZXM9WyJidWlsZF9jc3MiXSkgPT0gc2V0KCkKKworCitkZWYgdGVzdF91cGRhdGVfYnVp
bHQoKToKKyAgICBhc3NlcnQgam9icy5nZXRfam9icyhbIjJkY29udGV4dC9mb28uaHRtbCJdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsidXBkYXRlX2J1aWx0Il0pID09IHNl
dChbInVwZGF0ZV9idWlsdCJdKQorICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsiYXNzdW1wdGlv
bnMvZm9vLmh0bWwiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bInVwZGF0
ZV9idWlsdCJdKSA9PSBzZXQoWyJ1cGRhdGVfYnVpbHQiXSkKKyAgICBhc3NlcnQgam9icy5nZXRf
am9icyhbImh0bWwvZm9vLmh0bWwiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRl
cz1bInVwZGF0ZV9idWlsdCJdKSA9PSBzZXQoWyJ1cGRhdGVfYnVpbHQiXSkKKyAgICBhc3NlcnQg
am9icy5nZXRfam9icyhbIm9mZnNjcmVlbi1jYW52YXMvZm9vLmh0bWwiXSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICBpbmNsdWRlcz1bInVwZGF0ZV9idWlsdCJdKSA9PSBzZXQoWyJ1cGRhdGVf
YnVpbHQiXSkKKworCitkZWYgdGVzdF93cHRfaW50ZWdyYXRpb24oKToKKyAgICBhc3NlcnQgam9i
cy5nZXRfam9icyhbInRvb2xzL3dwdC93cHQucHkiXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICBpbmNsdWRlcz1bIndwdF9pbnRlZ3JhdGlvbiJdKSA9PSBzZXQoWyJ3cHRfaW50ZWdyYXRpb24i
XSkKKyAgICBhc3NlcnQgam9icy5nZXRfam9icyhbInRvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
d3B0cnVubmVyLnB5Il0sCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJ3cHRf
aW50ZWdyYXRpb24iXSkgPT0gc2V0KFsid3B0X2ludGVncmF0aW9uIl0pCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rlc3Rz
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS90ZXN0cy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45M2ZiNDZiMTZj
Y2EyZjk0YzQ2ZDQ4MDJiNDhiNmUyZjEyYmE1ODI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90ZXN0cy93M2Mt
aW1wb3J0LmxvZwpAQCAtMCwwICsxLDE3IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rlc3RzL3Rlc3Rfam9icy5weQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9jaS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvY2kvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzYxNTcwYzFlNGFj
NTBhY2JiZGVlOThmMDNlOGZmNjgyNDJiYTg3NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdzNjLWltcG9ydC5s
b2cKQEAgLTAsMCArMSwzNCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9u
ZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9fX2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYmVmb3JlX2luc3RhbGwuc2gKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NoZWNr
X3N0YWJpbGl0eS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvY2lfYnVpbHRfZGlmZi5zaAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfbGludC5zaAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfbWFuaWZlc3Quc2gKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3Jlc291
cmNlc191bml0dGVzdC5zaAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvY2lfc3RhYmlsaXR5LnNoCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV90b29sc191bml0dGVzdC5zaAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfd3B0LnNo
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9j
aV93cHRydW5uZXJfaW5mcmFzdHJ1Y3R1cmUuc2gKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NvbW1hbmRzLmpzb24KKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2luc3RhbGwuc2gKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2pvYnMucHkK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2xp
Yi5zaAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvbWFrZV9ob3N0c19maWxlLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jaS9ydW4uc2gKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RhZ19tYXN0ZXIucHkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY29uZnRlc3QucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NvbmZ0
ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjRjZTVlNzRiMDZlYzIwZmNlNDg3M2ViMWVhY2VhOWNmNDU0YTY0
ODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NvbmZ0ZXN0LnB5CkBAIC0wLDAgKzEsMjIgQEAKK2ltcG9ydCBwbGF0
Zm9ybQoraW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK2Zyb20gaHlwb3RoZXNpcyBpbXBvcnQgc2V0
dGluZ3MsIEhlYWx0aENoZWNrCisKK2ltcGwgPSBwbGF0Zm9ybS5weXRob25faW1wbGVtZW50YXRp
b24oKQorCitzZXR0aW5ncy5yZWdpc3Rlcl9wcm9maWxlKCJjaSIsIHNldHRpbmdzKG1heF9leGFt
cGxlcz0xMDAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBw
cmVzc19oZWFsdGhfY2hlY2s9W0hlYWx0aENoZWNrLnRvb19zbG93XSkpCitzZXR0aW5ncy5yZWdp
c3Rlcl9wcm9maWxlKCJweXB5Iiwgc2V0dGluZ3Moc3VwcHJlc3NfaGVhbHRoX2NoZWNrPVtIZWFs
dGhDaGVjay50b29fc2xvd10pKQorCitzZXR0aW5ncy5sb2FkX3Byb2ZpbGUob3MuZ2V0ZW52KCJI
WVBPVEhFU0lTX1BST0ZJTEUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVm
YXVsdCIgaWYgaW1wbCAhPSAiUHlQeSIgZWxzZSAicHlweSIpKQorCisjIHNlcnZlIGNhbid0IGV2
ZW4gYmUgaW1wb3J0ZWQgb24gUHkzLCBzbyB0b3RhbGx5IGlnbm9yZSBpdCBldmVuIGZyb20gY29s
bGVjdGlvbgorY29sbGVjdF9pZ25vcmUgPSBbXQoraWYgc3lzLnZlcnNpb25faW5mb1swXSA+PSAz
OgorICAgIHNlcnZlID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICJz
ZXJ2ZSIpCisgICAgY29sbGVjdF9pZ25vcmUuZXh0ZW5kKFtvcy5wYXRoLmpvaW4ocm9vdCwgZikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciByb290LCBfLCBmaWxlcyBpbiBvcy53YWxr
KHNlcnZlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGYgaW4gZmlsZXNdKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9naXRpZ25vcmUvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjgz
NGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25v
cmUvX19pbml0X18ucHkKQEAgLTAsMCArMSBAQAorIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9y
IFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25vcmUvZ2l0aWdub3JlLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25vcmUvZ2l0aWdu
b3JlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjBiZTZmOGY0YzljZGQ3NDExMTRjMDMzYjIzNWNkZWJhMjQ1ODBl
N2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS9naXRpZ25vcmUucHkKQEAgLTAsMCArMSwxNTQgQEAK
K2ltcG9ydCBpdGVydG9vbHMKK2ltcG9ydCByZQoraW1wb3J0IG9zCisKK2VuZF9zcGFjZSA9IHJl
LmNvbXBpbGUociIoW15cXF1ccykqJCIpCisKKworZGVmIGZubWF0Y2hfdHJhbnNsYXRlKHBhdCwg
cGF0aF9uYW1lPUZhbHNlKToKKyAgICBwYXJ0cyA9IFtdCisgICAgc2VxID0gRmFsc2UKKyAgICBp
ID0gMAorICAgIGlmIHBhdFswXSA9PSAiLyIgb3IgcGF0aF9uYW1lOgorICAgICAgICBwYXJ0cy5h
cHBlbmQoIl4iKQorICAgICAgICBhbnlfY2hhciA9ICJbXi9dIgorICAgICAgICBpZiBwYXRbMF0g
PT0gIi8iOgorICAgICAgICAgICAgcGF0ID0gcGF0WzE6XQorICAgIGVsc2U6CisgICAgICAgIGFu
eV9jaGFyID0gIi4iCisgICAgICAgIHBhcnRzLmFwcGVuZCgiXig/Oi4qLyk/IikKKyAgICBpZiBw
YXRbLTFdID09ICIvIjoKKyAgICAgICAgIyBJZiB0aGUgbGFzdCBjaGFyYWN0ZXIgaXMgLyBtYXRj
aCB0aGlzIGRpcmVjdG9yeSBvciBhbnkgc3ViZGlyZWN0b3J5CisgICAgICAgIHBhdCA9IHBhdFs6
LTFdCisgICAgICAgIHN1ZmZpeCA9ICIoPzovfCQpIgorICAgIGVsc2U6CisgICAgICAgIHN1ZmZp
eCA9ICIkIgorICAgIHdoaWxlIGkgPCBsZW4ocGF0KToKKyAgICAgICAgYyA9IHBhdFtpXQorICAg
ICAgICBpZiBjID09ICJcXCI6CisgICAgICAgICAgICBpZiBpIDwgbGVuKHBhdCkgLSAxOgorICAg
ICAgICAgICAgICAgIGkgKz0gMQorICAgICAgICAgICAgICAgIGMgPSBwYXRbaV0KKyAgICAgICAg
ICAgICAgICBwYXJ0cy5hcHBlbmQocmUuZXNjYXBlKGMpKQorICAgICAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yCisgICAgICAgIGVsaWYgc2VxOgorICAgICAg
ICAgICAgaWYgYyA9PSAiXSI6CisgICAgICAgICAgICAgICAgc2VxID0gRmFsc2UKKyAgICAgICAg
ICAgICAgICAjIEZpcnN0IHR3byBjYXNlcyBhcmUgdG8gZGVhbCB3aXRoIHRoZSBjYXNlIHdoZXJl
IC8gaXMgdGhlIG9ubHkgY2hhcmFjdGVyCisgICAgICAgICAgICAgICAgIyBpbiB0aGUgc2VxdWVu
Y2UgYnV0IHBhdGhfbmFtZSBpcyBUcnVlIHNvIGl0IHNob3VsZG4ndCBtYXRjaCBhbnl0aGluZwor
ICAgICAgICAgICAgICAgIGlmIHBhcnRzWy0xXSA9PSAiWyI6CisgICAgICAgICAgICAgICAgICAg
IHBhcnRzID0gcGFydHNbOi0xXQorICAgICAgICAgICAgICAgIGVsaWYgcGFydHNbLTFdID09ICJe
IiBhbmQgcGFydHNbLTJdID09ICJbIjoKKyAgICAgICAgICAgICAgICAgICAgcGFydHMgPSBwYXJ0
c1s6LTJdCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcGFydHMu
YXBwZW5kKGMpCisgICAgICAgICAgICBlbGlmIGMgPT0gIi0iOgorICAgICAgICAgICAgICAgIHBh
cnRzLmFwcGVuZChjKQorICAgICAgICAgICAgZWxpZiBub3QgKHBhdGhfbmFtZSBhbmQgYyA9PSAi
LyIpOgorICAgICAgICAgICAgICAgIHBhcnRzICs9IHJlLmVzY2FwZShjKQorICAgICAgICBlbGlm
IGMgPT0gIlsiOgorICAgICAgICAgICAgcGFydHMuYXBwZW5kKCJbIikKKyAgICAgICAgICAgIGlm
IGkgPCBsZW4ocGF0KSAtIDEgYW5kIHBhdFtpKzFdIGluICgiISIsICJeIik6CisgICAgICAgICAg
ICAgICAgcGFydHMuYXBwZW5kKCJeIikKKyAgICAgICAgICAgICAgICBpICs9IDEKKyAgICAgICAg
ICAgIHNlcSA9IFRydWUKKyAgICAgICAgZWxpZiBjID09ICIqIjoKKyAgICAgICAgICAgIGlmIGkg
PCBsZW4ocGF0KSAtIDEgYW5kIHBhdFtpKzFdID09ICIqIjoKKyAgICAgICAgICAgICAgICBwYXJ0
cy5hcHBlbmQoYW55X2NoYXIgKyAiKiIpCisgICAgICAgICAgICAgICAgaSArPSAxCisgICAgICAg
ICAgICAgICAgaWYgaSA8IGxlbihwYXQpIC0gMSBhbmQgcGF0W2krMV0gPT0gIioiOgorICAgICAg
ICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yCisgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgIHBhcnRzLmFwcGVuZChhbnlfY2hhciArICIqIikKKyAgICAgICAgZWxpZiBjID09
ICI/IjoKKyAgICAgICAgICAgIHBhcnRzLmFwcGVuZChhbnlfY2hhcikKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIHBhcnRzLmFwcGVuZChyZS5lc2NhcGUoYykpCisgICAgICAgIGkgKz0gMQor
CisgICAgaWYgc2VxOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yCisgICAgcGFydHMuYXBwZW5k
KHN1ZmZpeCkKKyAgICB0cnk6CisgICAgICAgIHJldHVybiByZS5jb21waWxlKCIiLmpvaW4ocGFy
dHMpKQorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIHJhaXNlCisKKworZGVmIHBhcnNl
X2xpbmUobGluZSk6CisgICAgbGluZSA9IGxpbmUucnN0cmlwKCkKKyAgICBpZiBub3QgbGluZSBv
ciBsaW5lWzBdID09ICIjIjoKKyAgICAgICAgcmV0dXJuCisKKyAgICBpbnZlcnQgPSBsaW5lWzBd
ID09ICIhIgorICAgIGlmIGludmVydDoKKyAgICAgICAgbGluZSA9IGxpbmVbMTpdCisKKyAgICBk
aXJfb25seSA9IGxpbmVbLTFdID09ICIvIgorCisgICAgaWYgZGlyX29ubHk6CisgICAgICAgIGxp
bmUgPSBsaW5lWzotMV0KKworICAgIHJldHVybiBpbnZlcnQsIGRpcl9vbmx5LCBmbm1hdGNoX3Ry
YW5zbGF0ZShsaW5lLCBkaXJfb25seSkKKworCitjbGFzcyBQYXRoRmlsdGVyKG9iamVjdCk6Cisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHJvb3QsIGV4dHJhcz1Ob25lKToKKyAgICAgICAgaWYgcm9v
dDoKKyAgICAgICAgICAgIGlnbm9yZV9wYXRoID0gb3MucGF0aC5qb2luKHJvb3QsICIuZ2l0aWdu
b3JlIikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlnbm9yZV9wYXRoID0gTm9uZQorICAg
ICAgICBpZiBub3QgaWdub3JlX3BhdGggYW5kIG5vdCBleHRyYXM6CisgICAgICAgICAgICBzZWxm
LnRyaXZpYWwgPSBUcnVlCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgc2VsZi50cml2aWFs
ID0gRmFsc2UKKworICAgICAgICBzZWxmLnJ1bGVzX2ZpbGUgPSBbXQorICAgICAgICBzZWxmLnJ1
bGVzX2RpciA9IFtdCisKKyAgICAgICAgaWYgZXh0cmFzIGlzIE5vbmU6CisgICAgICAgICAgICBl
eHRyYXMgPSBbXQorCisgICAgICAgIGlmIGlnbm9yZV9wYXRoIGFuZCBvcy5wYXRoLmV4aXN0cyhp
Z25vcmVfcGF0aCk6CisgICAgICAgICAgICBzZWxmLl9yZWFkX2lnbm9yZShpZ25vcmVfcGF0aCkK
KworICAgICAgICBmb3IgaXRlbSBpbiBleHRyYXM6CisgICAgICAgICAgICBzZWxmLl9yZWFkX2xp
bmUoaXRlbSkKKworICAgIGRlZiBfcmVhZF9pZ25vcmUoc2VsZiwgaWdub3JlX3BhdGgpOgorICAg
ICAgICB3aXRoIG9wZW4oaWdub3JlX3BhdGgpIGFzIGY6CisgICAgICAgICAgICBmb3IgbGluZSBp
biBmOgorICAgICAgICAgICAgICAgIHNlbGYuX3JlYWRfbGluZShsaW5lKQorCisgICAgZGVmIF9y
ZWFkX2xpbmUoc2VsZiwgbGluZSk6CisgICAgICAgIHBhcnNlZCA9IHBhcnNlX2xpbmUobGluZSkK
KyAgICAgICAgaWYgbm90IHBhcnNlZDoKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBpbnZl
cnQsIGRpcl9vbmx5LCByZWdleHAgPSBwYXJzZWQKKyAgICAgICAgaWYgZGlyX29ubHk6CisgICAg
ICAgICAgICBzZWxmLnJ1bGVzX2Rpci5hcHBlbmQoKHJlZ2V4cCwgaW52ZXJ0KSkKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIHNlbGYucnVsZXNfZmlsZS5hcHBlbmQoKHJlZ2V4cCwgaW52ZXJ0
KSkKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBwYXRoKToKKyAgICAgICAgaWYgb3MucGF0aC5z
ZXAgIT0gIi8iOgorICAgICAgICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZShvcy5wYXRoLnNlcCwg
Ii8iKQorCisgICAgICAgIGlmIHNlbGYudHJpdmlhbDoKKyAgICAgICAgICAgIHJldHVybiBUcnVl
CisKKyAgICAgICAgcGF0aF9pc19kaXIgPSBwYXRoWy0xXSA9PSAiLyIKKyAgICAgICAgaWYgcGF0
aF9pc19kaXI6CisgICAgICAgICAgICBwYXRoID0gcGF0aFs6LTFdCisgICAgICAgICAgICBydWxl
cyA9IHNlbGYucnVsZXNfZGlyCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBydWxlcyA9IHNl
bGYucnVsZXNfZmlsZQorCisgICAgICAgIGluY2x1ZGUgPSBUcnVlCisgICAgICAgIGZvciByZWdl
eHAsIGludmVydCBpbiBydWxlczoKKyAgICAgICAgICAgIGlmIG5vdCBpbmNsdWRlIGFuZCBpbnZl
cnQgYW5kIHJlZ2V4cC5tYXRjaChwYXRoKToKKyAgICAgICAgICAgICAgICBpbmNsdWRlID0gVHJ1
ZQorICAgICAgICAgICAgZWxpZiBpbmNsdWRlIGFuZCBub3QgaW52ZXJ0IGFuZCByZWdleHAubWF0
Y2gocGF0aCk6CisgICAgICAgICAgICAgICAgaW5jbHVkZSA9IEZhbHNlCisgICAgICAgIHJldHVy
biBpbmNsdWRlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS90ZXN0cy9fX2luaXRfXy5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL3Rlc3RzL19f
aW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4
YmMyMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS90ZXN0cy9fX2luaXRfXy5weQpAQCAtMCwwICsx
IEBACisjIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRp
cmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dp
dGlnbm9yZS90ZXN0cy90ZXN0X2dpdGlnbm9yZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL3Rlc3RzL3Rlc3RfZ2l0aWdub3Jl
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjc1YTBkNThiMmM2MDFjNGIxMDIzZmJiMTE3ZDM5YTQyOWQ4YmIwOWUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS90ZXN0cy90ZXN0X2dpdGlnbm9yZS5weQpAQCAtMCwwICsx
LDgyIEBACitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gLi5naXRpZ25vcmUgaW1wb3J0IGZubWF0Y2hf
dHJhbnNsYXRlLCBQYXRoRmlsdGVyCisKK21hdGNoX2RhdGEgPSBbCisgICAgKCJmb28iLCBGYWxz
ZSwgWyJhL2ZvbyIsICJmb28iXSksCisgICAgKCIqLmEiLCBGYWxzZSwgWyJmb28uYSIsICJhL2Zv
by5hIiwgImEvYi9mb28uYSIsICJhLmEvZm9vLmEiXSksCisgICAgKCIqLnB5W2NvXSIsIEZhbHNl
LCBbImEucHljIiwgImEucHlvIiwgImEvYi9jLnB5YyJdKSwKKyAgICAoIlxcIyoiLCBGYWxzZSwg
WyIjYSIsICJhLyNiIl0pLAorICAgICgiKiMiLCBGYWxzZSwgWyJhIyIsICJhL2IjIiwgIiNhIyJd
KSwKKyAgICAoIi8qLmMiLCBGYWxzZSwgWyJhLmMiLCAiLmMiXSksCisgICAgKCIqKi9iIiwgRmFs
c2UsIFsiYS9iIiwgImEvYy9iIl0pLAorICAgICgiKmIiLCBUcnVlLCBbImFiIl0pLAorICAgICgi
KiovYiIsIFRydWUsIFsiYS9iIl0pLAorICAgICgiYS8iLCBUcnVlLCBbImEiLCAiYS9iIiwgImEv
Yi9jIl0pCitdCisKK21pc21hdGNoX2RhdGEgPSBbCisgICAgKCJmb28iLCBGYWxzZSwgWyJmb29i
IiwgImFmb28iXSksCisgICAgKCIqLmEiLCBGYWxzZSwgWyJhIiwgImZvbzphIiwgImEuYS9mb28i
XSksCisgICAgKCIqLnB5W2NvXSIsIEZhbHNlLCBbImEucHlkIiwgInB5byJdKSwKKyAgICAoIi8q
LmMiLCBGYWxzZSwgWyJhL2IuYyJdKSwKKyAgICAoIipiIiwgVHJ1ZSwgWyJhL2IiXSksCisgICAg
KCIqKmIiLCBUcnVlLCBbImEvYiJdKSwKKyAgICAoImFbL11iIiwgVHJ1ZSwgWyJhL2IiXSksCisg
ICAgKCIqKi9iIiwgVHJ1ZSwgWyJhL2MvYiJdKSwKKyAgICAoImEiLCBUcnVlLCBbImFiIl0pCitd
CisKK2ludmFsaWRfZGF0YSA9IFsKKyAgICAiW2EiLAorICAgICIqKiovZm9vIiwKKyAgICAiYVxc
IiwKK10KKworZmlsdGVyX2RhdGEgPSBbCisgICAgKCJmb28iLCBUcnVlKSwKKyAgICAoImEiLCBG
YWxzZSksCisgICAgKCJhL2IiLCBGYWxzZSksCisgICAgKCJhL2MiLCBUcnVlKSwKKyAgICAoImEv
Yy8iLCBGYWxzZSksCisgICAgKCJjL2IiLCBUcnVlKQorXQorCisKK2RlZiBleHBhbmRfZGF0YShj
b21wYWN0X2RhdGEpOgorICAgIGZvciBwYXR0ZXJuLCBwYXRoX25hbWUsIGlucHV0cyBpbiBjb21w
YWN0X2RhdGE6CisgICAgICAgIGZvciBpbnB1dCBpbiBpbnB1dHM6CisgICAgICAgICAgICB5aWVs
ZCBwYXR0ZXJuLCBpbnB1dCwgcGF0aF9uYW1lCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJwYXR0ZXJuLCBpbnB1dCwgcGF0aF9uYW1lIiwgZXhwYW5kX2RhdGEobWF0Y2hfZGF0YSkpCitk
ZWYgdGVzdHNfbWF0Y2gocGF0dGVybiwgaW5wdXQsIHBhdGhfbmFtZSk6CisgICAgcmVnZXhwID0g
Zm5tYXRjaF90cmFuc2xhdGUocGF0dGVybiwgcGF0aF9uYW1lKQorICAgIGFzc2VydCByZWdleHAu
bWF0Y2goaW5wdXQpIGlzIG5vdCBOb25lCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJw
YXR0ZXJuLCBpbnB1dCwgcGF0aF9uYW1lIiwgZXhwYW5kX2RhdGEobWlzbWF0Y2hfZGF0YSkpCitk
ZWYgdGVzdHNfbm9fbWF0Y2gocGF0dGVybiwgaW5wdXQsIHBhdGhfbmFtZSk6CisgICAgcmVnZXhw
ID0gZm5tYXRjaF90cmFuc2xhdGUocGF0dGVybiwgcGF0aF9uYW1lKQorICAgIGFzc2VydCByZWdl
eHAubWF0Y2goaW5wdXQpIGlzIE5vbmUKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInBh
dHRlcm4iLCBpbnZhbGlkX2RhdGEpCitkZWYgdGVzdHNfaW52YWxpZChwYXR0ZXJuKToKKyAgICB3
aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgIGZubWF0Y2hfdHJhbnNsYXRl
KHBhdHRlcm4sIEZhbHNlKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yKToKKyAg
ICAgICAgZm5tYXRjaF90cmFuc2xhdGUocGF0dGVybiwgVHJ1ZSkKKworCitAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoInBhdGgsIGV4cGVjdGVkIiwgZmlsdGVyX2RhdGEpCitkZWYgdGVzdF9wYXRo
X2ZpbHRlcihwYXRoLCBleHBlY3RlZCk6CisgICAgZXh0cmFzID0gWworICAgICAgICAiI2ZvbyIs
CisgICAgICAgICJhICAiLAorICAgICAgICAiKiovYiIsCisgICAgICAgICJhL2MvIiwKKyAgICAg
ICAgIiFjL2IiLAorICAgIF0KKyAgICBmID0gUGF0aEZpbHRlcihOb25lLCBleHRyYXMpCisgICAg
YXNzZXJ0IGYocGF0aCkgPT0gZXhwZWN0ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL3Rlc3RzL3czYy1pbXBv
cnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9naXRpZ25vcmUvdGVzdHMvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjVlOTA4YWFjZWRm
Nzg0NDA2NWU2NjQ2ZmZmY2MzMGZjYzRiODI4NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL3Rlc3Rz
L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTggQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL3Rlc3RzL19faW5p
dF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9naXRpZ25vcmUvdGVzdHMvdGVzdF9naXRpZ25vcmUucHkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9naXRpZ25vcmUvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTAyNTU3ZmYxNmY1NmIy
ZGEwMWMyNmVkZjM0ZDlhODA4NGIyYTJiNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL3czYy1pbXBv
cnQubG9nCkBAIC0wLDAgKzEsMTggQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJl
IGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0
ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qg
b24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBX
ZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgor
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
K05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL19faW5pdF9fLnB5CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25vcmUvZ2l0
aWdub3JlLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2xpbnQvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvX19pbml0X18ucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTVlYjVlMTJkNWY4OWZjOWZjZDBlZTEwYjY2YjE2MTRkNDJkZjY4NAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGlu
dC9fX2luaXRfXy5weQpAQCAtMCwwICsxIEBACitmcm9tIC4gaW1wb3J0IGxpbnQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGlu
dC9jb21tYW5kcy5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9saW50L2NvbW1hbmRzLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYThlOTg0NGZhZmVlOTk5
ODA4ODRiYjRmNTFiMjAwZDk5MWZhNTNmZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9jb21tYW5kcy5qc29u
CkBAIC0wLDAgKzEsMyBAQAoreyJsaW50IjoKKyB7InBhdGgiOiAibGludC5weSIsICJzY3JpcHQi
OiAibWFpbiIsICJwYXJzZXIiOiAiY3JlYXRlX3BhcnNlciIsICJoZWxwIjogIlJ1biB0aGUgbGlu
dCIsCisgICJ2aXJ0dWFsZW52IjogZmFsc2V9fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L2ZubWF0Y2gucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvZm5tYXRj
aC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yZmUzZWIwYWE5ZTVhZjA3ZTExYWQ1YjA4ZDkwZjgyOWI4YTUxYTUw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9saW50L2ZubWF0Y2gucHkKQEAgLTAsMCArMSwzMiBAQAorZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKKworaW1wb3J0IGZubWF0Y2ggYXMgX3N0ZGxp
Yl9mbm1hdGNoCitpbXBvcnQgb3MKKworCitfX2FsbF9fID0gWyJmbm1hdGNoIiwgImZubWF0Y2hj
YXNlIiwgImZpbHRlciIsICJ0cmFuc2xhdGUiXQorCisKK2RlZiBmbm1hdGNoKG5hbWUsIHBhdCk6
CisgICAgbmFtZSA9IG9zLnBhdGgubm9ybWNhc2UobmFtZSkKKyAgICBwYXQgPSBvcy5wYXRoLm5v
cm1jYXNlKHBhdCkKKyAgICByZXR1cm4gZm5tYXRjaGNhc2UobmFtZSwgcGF0KQorCisKK2RlZiBm
bm1hdGNoY2FzZShuYW1lLCBwYXQpOgorICAgIGlmICc/JyBub3QgaW4gcGF0IGFuZCAnWycgbm90
IGluIHBhdDoKKyAgICAgICAgd2lsZGNhcmRzID0gcGF0LmNvdW50KCIqIikKKyAgICAgICAgaWYg
d2lsZGNhcmRzID09IDA6CisgICAgICAgICAgICByZXR1cm4gbmFtZSA9PSBwYXQKKyAgICAgICAg
ZWxpZiB3aWxkY2FyZHMgPT0gMSBhbmQgcGF0WzBdID09ICIqIjoKKyAgICAgICAgICAgIHJldHVy
biBuYW1lLmVuZHN3aXRoKHBhdFsxOl0pCisgICAgICAgIGVsaWYgd2lsZGNhcmRzID09IDEgYW5k
IHBhdFstMV0gPT0gIioiOgorICAgICAgICAgICAgcmV0dXJuIG5hbWUuc3RhcnRzd2l0aChwYXRb
Oi0xXSkKKyAgICByZXR1cm4gX3N0ZGxpYl9mbm1hdGNoLmZubWF0Y2hjYXNlKG5hbWUsIHBhdCkK
KworCitkZWYgZmlsdGVyKG5hbWVzLCBwYXQpOgorICAgIHJldHVybiBbbiBmb3IgbiBpbiBuYW1l
cyBpZiBmbm1hdGNoKG4sIHBhdCldCisKKwordHJhbnNsYXRlID0gX3N0ZGxpYl9mbm1hdGNoLnRy
YW5zbGF0ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9saW50L2xpbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvbGludC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzUzZDIxMzJm
NTM5M2E3NGVlYmI4MDI2NzRhYTc4YTFiYjRhMTNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L2xpbnQucHkK
QEAgLTAsMCArMSw4ODggQEAKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24s
IHVuaWNvZGVfbGl0ZXJhbHMKKworaW1wb3J0IGFiYworaW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQg
YXN0CitpbXBvcnQgaXRlcnRvb2xzCitpbXBvcnQganNvbgoraW1wb3J0IG9zCitpbXBvcnQgcmUK
K2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgc3lzCitpbXBvcnQgdGVtcGZpbGUKKworZnJvbSBj
b2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRpY3QKKworZnJvbSAuIGltcG9ydCBmbm1hdGNoCitm
cm9tIC4uIGltcG9ydCBsb2NhbHBhdGhzCitmcm9tIC4uZ2l0aWdub3JlLmdpdGlnbm9yZSBpbXBv
cnQgUGF0aEZpbHRlcgorZnJvbSAuLndwdCBpbXBvcnQgdGVzdGZpbGVzCisKK2Zyb20gbWFuaWZl
c3Quc291cmNlZmlsZSBpbXBvcnQgU291cmNlRmlsZSwganNfbWV0YV9yZSwgcHl0aG9uX21ldGFf
cmUsIHNwYWNlX2NoYXJzCitmcm9tIHNpeCBpbXBvcnQgYmluYXJ5X3R5cGUsIGl0ZXJpdGVtcywg
aXRlcnZhbHVlcworZnJvbSBzaXgubW92ZXMgaW1wb3J0IHJhbmdlCitmcm9tIHNpeC5tb3Zlcy51
cmxsaWIucGFyc2UgaW1wb3J0IHVybHNwbGl0LCB1cmxqb2luCisKK2ltcG9ydCBsb2dnaW5nCisK
K2xvZ2dlciA9IE5vbmUKKworZGVmIHNldHVwX2xvZ2dpbmcocHJlZml4PUZhbHNlKToKKyAgICBn
bG9iYWwgbG9nZ2VyCisgICAgaWYgbG9nZ2VyIGlzIE5vbmU6CisgICAgICAgIGxvZ2dlciA9IGxv
Z2dpbmcuZ2V0TG9nZ2VyKG9zLnBhdGguYmFzZW5hbWUob3MucGF0aC5zcGxpdGV4dChfX2ZpbGVf
XylbMF0pKQorICAgICAgICBoYW5kbGVyID0gbG9nZ2luZy5TdHJlYW1IYW5kbGVyKHN5cy5zdGRv
dXQpCisgICAgICAgIGxvZ2dlci5hZGRIYW5kbGVyKGhhbmRsZXIpCisgICAgaWYgcHJlZml4Ogor
ICAgICAgICBmb3JtYXQgPSBsb2dnaW5nLkJBU0lDX0ZPUk1BVAorICAgIGVsc2U6CisgICAgICAg
IGZvcm1hdCA9ICIlKG1lc3NhZ2UpcyIKKyAgICBmb3JtYXR0ZXIgPSBsb2dnaW5nLkZvcm1hdHRl
cihmb3JtYXQpCisgICAgZm9yIGhhbmRsZXIgaW4gbG9nZ2VyLmhhbmRsZXJzOgorICAgICAgICBo
YW5kbGVyLnNldEZvcm1hdHRlcihmb3JtYXR0ZXIpCisgICAgbG9nZ2VyLnNldExldmVsKGxvZ2dp
bmcuREVCVUcpCisKKworc2V0dXBfbG9nZ2luZygpCisKKworRVJST1JfTVNHID0gIiIiWW91IG11
c3QgZml4IGFsbCBlcnJvcnM7IGZvciBkZXRhaWxzIG9uIGhvdyB0byBmaXggdGhlbSwgc2VlCito
dHRwOi8vd2ViLXBsYXRmb3JtLXRlc3RzLm9yZy93cml0aW5nLXRlc3RzL2xpbnQtdG9vbC5odG1s
CisKK0hvd2V2ZXIsIGluc3RlYWQgb2YgZml4aW5nIGEgcGFydGljdWxhciBlcnJvciwgaXQncyBz
b21ldGltZXMKK09LIHRvIGFkZCBhIGxpbmUgdG8gdGhlIGxpbnQud2hpdGVsaXN0IGZpbGUgaW4g
dGhlIHJvb3Qgb2YgdGhlCit3ZWItcGxhdGZvcm0tdGVzdHMgZGlyZWN0b3J5IHRvIG1ha2UgdGhl
IGxpbnQgdG9vbCBpZ25vcmUgaXQuCisKK0ZvciBleGFtcGxlLCB0byBtYWtlIHRoZSBsaW50IHRv
b2wgaWdub3JlIGFsbCAnJXMnCitlcnJvcnMgaW4gdGhlICVzIGZpbGUsCit5b3UgY291bGQgYWRk
IHRoZSBmb2xsb3dpbmcgbGluZSB0byB0aGUgbGludC53aGl0ZWxpc3QgZmlsZS4KKworJXM6ICVz
IiIiCisKK2RlZiBhbGxfZmlsZXN5c3RlbV9wYXRocyhyZXBvX3Jvb3QsIHN1YmRpcj1Ob25lKToK
KyAgICBwYXRoX2ZpbHRlciA9IFBhdGhGaWx0ZXIocmVwb19yb290LCBleHRyYXM9WyIuZ2l0LyJd
KQorICAgIGlmIHN1YmRpcjoKKyAgICAgICAgZXhwYW5kZWRfcGF0aCA9IHN1YmRpcgorICAgIGVs
c2U6CisgICAgICAgIGV4cGFuZGVkX3BhdGggPSByZXBvX3Jvb3QKKyAgICBmb3IgZGlycGF0aCwg
ZGlybmFtZXMsIGZpbGVuYW1lcyBpbiBvcy53YWxrKGV4cGFuZGVkX3BhdGgpOgorICAgICAgICBm
b3IgZmlsZW5hbWUgaW4gZmlsZW5hbWVzOgorICAgICAgICAgICAgcGF0aCA9IG9zLnBhdGgucmVs
cGF0aChvcy5wYXRoLmpvaW4oZGlycGF0aCwgZmlsZW5hbWUpLCByZXBvX3Jvb3QpCisgICAgICAg
ICAgICBpZiBwYXRoX2ZpbHRlcihwYXRoKToKKyAgICAgICAgICAgICAgICB5aWVsZCBwYXRoCisg
ICAgICAgIGRpcm5hbWVzWzpdID0gW2l0ZW0gZm9yIGl0ZW0gaW4gZGlybmFtZXMgaWYKKyAgICAg
ICAgICAgICAgICAgICAgICAgcGF0aF9maWx0ZXIob3MucGF0aC5yZWxwYXRoKG9zLnBhdGguam9p
bihkaXJwYXRoLCBpdGVtKSArICIvIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcG9fcm9vdCkrIi8iKV0KKworZGVmIF9hbGxfZmlsZXNfZXF1
YWwocGF0aHMpOgorICAgICIiIgorICAgIENoZWNrcyBhbGwgdGhlIHBhdGhzIGFyZSBmaWxlcyB0
aGF0IGFyZSBieXRlLWZvci1ieXRlIGlkZW50aWNhbAorCisgICAgOnBhcmFtIHBhdGhzOiB0aGUg
bGlzdCBvZiBwYXRocyB0byBjb21wYXJlCisgICAgOnJldHVybnM6IFRydWUgaWYgdGhleSBhcmUg
YWxsIGlkZW50aWNhbAorICAgICIiIgorICAgIHBhdGhzID0gbGlzdChwYXRocykKKyAgICBpZiBs
ZW4ocGF0aHMpIDwgMjoKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGZpcnN0ID0gcGF0aHMu
cG9wKCkKKyAgICBzaXplID0gb3MucGF0aC5nZXRzaXplKGZpcnN0KQorICAgIGlmIGFueShvcy5w
YXRoLmdldHNpemUocGF0aCkgIT0gc2l6ZSBmb3IgcGF0aCBpbiBwYXRocyk6CisgICAgICAgIHJl
dHVybiBGYWxzZQorCisgICAgIyBDaHVuayB0aGlzIHRvIGF2b2lkIGVhdGluZyB1cCBtZW1vcnkg
YW5kIGZpbGUgZGVzY3JpcHRvcnMKKyAgICBidWZzaXplID0gNDA5Nio0ICAjIDE2S0IsIGEgInJl
YXNvbmFibGUiIG51bWJlciBvZiBkaXNrIHNlY3RvcnMKKyAgICBncm91cHNpemUgPSA4ICAjIEh5
cG90aGVzaXNlZCB0byBiZSBsYXJnZSBlbm91Z2ggaW4gdGhlIGNvbW1vbiBjYXNlIHRoYXQgZXZl
cnl0aGluZyBmaXRzIGluIG9uZSBncm91cAorICAgIHdpdGggb3BlbihmaXJzdCwgInJiIikgYXMg
Zmlyc3RfZjoKKyAgICAgICAgZm9yIHN0YXJ0IGluIHJhbmdlKDAsIGxlbihwYXRocyksIGdyb3Vw
c2l6ZSk6CisgICAgICAgICAgICBwYXRoX2dyb3VwID0gcGF0aHNbc3RhcnQ6c3RhcnQrZ3JvdXBz
aXplXQorICAgICAgICAgICAgZmlyc3RfZi5zZWVrKDApCisgICAgICAgICAgICB0cnk6CisgICAg
ICAgICAgICAgICAgZmlsZXMgPSBbb3Blbih4LCAicmIiKSBmb3IgeCBpbiBwYXRoX2dyb3VwXQor
ICAgICAgICAgICAgICAgIGZvciBfIGluIHJhbmdlKDAsIHNpemUsIGJ1ZnNpemUpOgorICAgICAg
ICAgICAgICAgICAgICBhID0gZmlyc3RfZi5yZWFkKGJ1ZnNpemUpCisgICAgICAgICAgICAgICAg
ICAgIGZvciBmIGluIGZpbGVzOgorICAgICAgICAgICAgICAgICAgICAgICAgYiA9IGYucmVhZChi
dWZzaXplKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgYSAhPSBiOgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgZmluYWxseToKKyAgICAg
ICAgICAgICAgICBmb3IgZiBpbiBmaWxlczoKKyAgICAgICAgICAgICAgICAgICAgZi5jbG9zZSgp
CisKKyAgICByZXR1cm4gVHJ1ZQorCisKK2RlZiBjaGVja19wYXRoX2xlbmd0aChyZXBvX3Jvb3Qs
IHBhdGgpOgorICAgIGlmIGxlbihwYXRoKSArIDEgPiAxNTA6CisgICAgICAgIHJldHVybiBbKCJQ
QVRIIExFTkdUSCIsICIvJXMgbG9uZ2VyIHRoYW4gbWF4aW11bSBwYXRoIGxlbmd0aCAoJWQgPiAx
NTApIiAlIChwYXRoLCBsZW4ocGF0aCkgKyAxKSwgcGF0aCwgTm9uZSldCisgICAgcmV0dXJuIFtd
CisKKworZGVmIGNoZWNrX3dvcmtlcl9jb2xsaXNpb24ocmVwb19yb290LCBwYXRoKToKKyAgICBl
bmRpbmdzID0gWygiLmFueS5odG1sIiwgIi5hbnkuanMiKSwKKyAgICAgICAgICAgICAgICgiLmFu
eS53b3JrZXIuaHRtbCIsICIuYW55LmpzIiksCisgICAgICAgICAgICAgICAoIi53b3JrZXIuaHRt
bCIsICIud29ya2VyLmpzIildCisgICAgZm9yIHBhdGhfZW5kaW5nLCBnZW5lcmF0ZWQgaW4gZW5k
aW5nczoKKyAgICAgICAgaWYgcGF0aC5lbmRzd2l0aChwYXRoX2VuZGluZyk6CisgICAgICAgICAg
ICByZXR1cm4gWygiV09SS0VSIENPTExJU0lPTiIsCisgICAgICAgICAgICAgICAgICAgICAicGF0
aCBlbmRzIHdpdGggJXMgd2hpY2ggY29sbGlkZXMgd2l0aCBnZW5lcmF0ZWQgdGVzdHMgZnJvbSAl
cyBmaWxlcyIgJSAocGF0aF9lbmRpbmcsIGdlbmVyYXRlZCksCisgICAgICAgICAgICAgICAgICAg
ICBwYXRoLAorICAgICAgICAgICAgICAgICAgICAgTm9uZSldCisgICAgcmV0dXJuIFtdCisKKwor
ZGVmIGNoZWNrX2FoZW1fY29weShyZXBvX3Jvb3QsIHBhdGgpOgorICAgIGxwYXRoID0gcGF0aC5s
b3dlcigpCisgICAgaWYgImFoZW0iIGluIGxwYXRoIGFuZCBscGF0aC5lbmRzd2l0aCgiLnR0ZiIp
OgorICAgICAgICByZXR1cm4gWygiQUhFTSBDT1BZIiwgIkRvbid0IGFkZCBleHRyYSBjb3BpZXMg
b2YgQWhlbSwgdXNlIC9mb250cy9BaGVtLnR0ZiIsIHBhdGgsIE5vbmUpXQorICAgIHJldHVybiBb
XQorCisKK2RlZiBjaGVja19naXRfaWdub3JlKHJlcG9fcm9vdCwgcGF0aHMpOgorICAgIGVycm9y
cyA9IFtdCisgICAgd2l0aCB0ZW1wZmlsZS5UZW1wb3JhcnlGaWxlKCd3KycpIGFzIGY6CisgICAg
ICAgIGYud3JpdGUoJ1xuJy5qb2luKHBhdGhzKSkKKyAgICAgICAgZi5zZWVrKDApCisgICAgICAg
IHRyeToKKyAgICAgICAgICAgIG1hdGNoZXMgPSBzdWJwcm9jZXNzLmNoZWNrX291dHB1dCgKKyAg
ICAgICAgICAgICAgICBbImdpdCIsICJjaGVjay1pZ25vcmUiLCAiLS12ZXJib3NlIiwgIi0tbm8t
aW5kZXgiLCAiLS1zdGRpbiJdLCBzdGRpbj1mKQorICAgICAgICAgICAgZm9yIG1hdGNoIGluIG1h
dGNoZXMuc3RyaXAoKS5zcGxpdCgnXG4nKToKKyAgICAgICAgICAgICAgICBtYXRjaF9maWx0ZXIs
IHBhdGggPSBtYXRjaC5zcGxpdCgpCisgICAgICAgICAgICAgICAgXywgXywgZmlsdGVyX3N0cmlu
ZyA9IG1hdGNoX2ZpbHRlci5zcGxpdCgnOicpCisgICAgICAgICAgICAgICAgIyBJZiB0aGUgbWF0
Y2hpbmcgZmlsdGVyIHJlcG9ydGVkIGJ5IGNoZWNrLWlnbm9yZSBpcyBhIHNwZWNpYWwtY2FzZSBl
eGNlcHRpb24sCisgICAgICAgICAgICAgICAgIyB0aGF0J3MgZmluZS4gT3RoZXJ3aXNlLCBpdCBy
ZXF1aXJlcyBhIG5ldyBzcGVjaWFsLWNhc2UgZXhjZXB0aW9uLgorICAgICAgICAgICAgICAgIGlm
IGZpbHRlcl9zdHJpbmdbMF0gIT0gJyEnOgorICAgICAgICAgICAgICAgICAgICBlcnJvcnMgKz0g
WygiSUdOT1JFRCBQQVRIIiwgIiVzIG1hdGNoZXMgYW4gaWdub3JlIGZpbHRlciBpbiAuZ2l0aWdu
b3JlIC0gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGxlYXNlIGFkZCBhIC5n
aXRpZ25vcmUgZXhjZXB0aW9uIiAlIHBhdGgsIHBhdGgsIE5vbmUpXQorICAgICAgICBleGNlcHQg
c3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3IgYXMgZToKKyAgICAgICAgICAgICMgTm9uemVy
byByZXR1cm4gY29kZSBtZWFucyB0aGF0IG5vIG1hdGNoIGV4aXN0cy4KKyAgICAgICAgICAgIHBh
c3MKKyAgICByZXR1cm4gZXJyb3JzCisKKworZHJhZnRzX2Nzc3dnX3JlID0gcmUuY29tcGlsZShy
Imh0dHBzP1w6XC9cL2RyYWZ0c1wuY3Nzd2dcLm9yZ1wvKFteLz8jXSspIikKK3czY190cl9yZSA9
IHJlLmNvbXBpbGUociJodHRwcz9cOlwvXC93d3dcLnczYz9cLm9yZ1wvVFJcLyhbXi8/I10rKSIp
Cit3M2NfZGV2X3JlID0gcmUuY29tcGlsZShyImh0dHBzP1w6XC9cL2RldlwudzNjP1wub3JnXC9b
Xi8/I10rXC8oW14vPyNdKykiKQorCisKK2RlZiBjaGVja19jc3NfZ2xvYmFsbHlfdW5pcXVlKHJl
cG9fcm9vdCwgcGF0aHMpOgorICAgICIiIgorICAgIENoZWNrcyB0aGF0IENTUyBmaWxlbmFtZXMg
YXJlIHN1ZmZpY2llbnRseSB1bmlxdWUKKworICAgIFRoaXMgZ3JvdXBzIGZpbGVzIGJ5IHBhdGgg
Y2xhc3NpZnlpbmcgdGhlbSBhcyAidGVzdCIsICJyZWZlcmVuY2UiLCBvcgorICAgICJzdXBwb3J0
Ii4KKworICAgICJ0ZXN0IiBmaWxlcyBtdXN0IGhhdmUgYSB1bmlxdWUgbmFtZSBhY3Jvc3MgZmls
ZXMgdGhhdCBzaGFyZSBsaW5rcyB0byB0aGUKKyAgICBzYW1lIHNwZWMuCisKKyAgICAicmVmZXJl
bmNlIiBhbmQgInN1cHBvcnQiIGZpbGVzLCBvbiB0aGUgb3RoZXIgaGFuZCwgbXVzdCBoYXZlIGds
b2JhbGx5CisgICAgdW5pcXVlIG5hbWVzLgorCisgICAgOnBhcmFtIHJlcG9fcm9vdDogdGhlIHJl
cG9zaXRvcnkgcm9vdAorICAgIDpwYXJhbSBwYXRoczogbGlzdCBvZiBhbGwgcGF0aHMKKyAgICA6
cmV0dXJuczogYSBsaXN0IG9mIGVycm9ycyBmb3VuZCBpbiBgYHBhdGhzYGAKKworICAgICIiIgor
ICAgIHRlc3RfZmlsZXMgPSBkZWZhdWx0ZGljdChzZXQpCisgICAgcmVmX2ZpbGVzID0gZGVmYXVs
dGRpY3Qoc2V0KQorICAgIHN1cHBvcnRfZmlsZXMgPSBkZWZhdWx0ZGljdChzZXQpCisKKyAgICBm
b3IgcGF0aCBpbiBwYXRoczoKKyAgICAgICAgaWYgb3MubmFtZSA9PSAibnQiOgorICAgICAgICAg
ICAgcGF0aCA9IHBhdGgucmVwbGFjZSgiXFwiLCAiLyIpCisKKyAgICAgICAgaWYgbm90IHBhdGgu
c3RhcnRzd2l0aCgiY3NzLyIpOgorICAgICAgICAgICAgY29udGludWUKKworICAgICAgICBzb3Vy
Y2VfZmlsZSA9IFNvdXJjZUZpbGUocmVwb19yb290LCBwYXRoLCAiLyIpCisgICAgICAgIGlmIHNv
dXJjZV9maWxlLm5hbWVfaXNfbm9uX3Rlc3Q6CisgICAgICAgICAgICAjIElmIHdlJ3JlIG5hbWVf
aXNfbm9uX3Rlc3QgZm9yIGEgcmVhc29uIGFwYXJ0IGZyb20gc3VwcG9ydCwgaWdub3JlIGl0Lgor
ICAgICAgICAgICAgIyBXZSBjYXJlIGFib3V0IHN1cHBvcnQgYmVjYXVzZSBvZiB0aGUgcmVxdWly
ZW1lbnQgYWxsIHN1cHBvcnQgZmlsZXMgaW4gY3NzLyB0byBiZSBpbgorICAgICAgICAgICAgIyBh
IHN1cHBvcnQgZGlyZWN0b3J5OyBzZWUgdGhlIHN0YXJ0IG9mIGNoZWNrX3BhcnNlZC4KKyAgICAg
ICAgICAgIG9mZnNldCA9IHBhdGguZmluZCgiL3N1cHBvcnQvIikKKyAgICAgICAgICAgIGlmIG9m
ZnNldCA9PSAtMToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICBwYXJ0
cyA9IHNvdXJjZV9maWxlLmRpcl9wYXRoLnNwbGl0KG9zLnBhdGguc2VwKQorICAgICAgICAgICAg
aWYgKHBhcnRzWzBdIGluIHNvdXJjZV9maWxlLnJvb3RfZGlyX25vbl90ZXN0IG9yCisgICAgICAg
ICAgICAgICAgYW55KGl0ZW0gaW4gc291cmNlX2ZpbGUuZGlyX25vbl90ZXN0IC0geyJzdXBwb3J0
In0gZm9yIGl0ZW0gaW4gcGFydHMpIG9yCisgICAgICAgICAgICAgICAgYW55KHBhcnRzWzpsZW4o
bm9uX3Rlc3RfcGF0aCldID09IGxpc3Qobm9uX3Rlc3RfcGF0aCkgZm9yIG5vbl90ZXN0X3BhdGgg
aW4gc291cmNlX2ZpbGUuZGlyX3BhdGhfbm9uX3Rlc3QpKToKKyAgICAgICAgICAgICAgICBjb250
aW51ZQorCisgICAgICAgICAgICBuYW1lID0gcGF0aFtvZmZzZXQrMTpdCisgICAgICAgICAgICBz
dXBwb3J0X2ZpbGVzW25hbWVdLmFkZChwYXRoKQorICAgICAgICBlbGlmIHNvdXJjZV9maWxlLm5h
bWVfaXNfcmVmZXJlbmNlOgorICAgICAgICAgICAgcmVmX2ZpbGVzW3NvdXJjZV9maWxlLm5hbWVd
LmFkZChwYXRoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdGVzdF9maWxlc1tzb3VyY2Vf
ZmlsZS5uYW1lXS5hZGQocGF0aCkKKworICAgIGVycm9ycyA9IFtdCisKKyAgICBmb3IgbmFtZSwg
Y29sbGlkaW5nIGluIGl0ZXJpdGVtcyh0ZXN0X2ZpbGVzKToKKyAgICAgICAgaWYgbGVuKGNvbGxp
ZGluZykgPiAxOgorICAgICAgICAgICAgaWYgbm90IF9hbGxfZmlsZXNfZXF1YWwoW29zLnBhdGgu
am9pbihyZXBvX3Jvb3QsIHgpIGZvciB4IGluIGNvbGxpZGluZ10pOgorICAgICAgICAgICAgICAg
ICMgT25seSBjb21wdXRlIGJ5X3NwZWMgaWYgdGhlcmUgYXJlIHByaW1hLWZhY2llIGNvbGxpc2lv
bnMgYmVjYXVzZSBvZiBjb3N0CisgICAgICAgICAgICAgICAgYnlfc3BlYyA9IGRlZmF1bHRkaWN0
KHNldCkKKyAgICAgICAgICAgICAgICBmb3IgcGF0aCBpbiBjb2xsaWRpbmc6CisgICAgICAgICAg
ICAgICAgICAgIHNvdXJjZV9maWxlID0gU291cmNlRmlsZShyZXBvX3Jvb3QsIHBhdGgsICIvIikK
KyAgICAgICAgICAgICAgICAgICAgZm9yIGxpbmsgaW4gc291cmNlX2ZpbGUuc3BlY19saW5rczoK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZvciByIGluIChkcmFmdHNfY3Nzd2dfcmUsIHczY190
cl9yZSwgdzNjX2Rldl9yZSk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbSA9IHIubWF0
Y2gobGluaykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBtOgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzcGVjID0gbS5ncm91cCgxKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgICAgICAgICAg
Ynlfc3BlY1tzcGVjXS5hZGQocGF0aCkKKworICAgICAgICAgICAgICAgIGZvciBzcGVjLCBwYXRo
cyBpbiBpdGVyaXRlbXMoYnlfc3BlYyk6CisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBfYWxs
X2ZpbGVzX2VxdWFsKFtvcy5wYXRoLmpvaW4ocmVwb19yb290LCB4KSBmb3IgeCBpbiBwYXRoc10p
OgorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHggaW4gcGF0aHM6CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIkNTUy1DT0xMSURJTkctVEVTVC1OQU1FIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGZpbGVuYW1l
ICVzIGluIHRoZSAlcyB0ZXN0c3VpdGUgaXMgc2hhcmVkIGJ5OiAlcyIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIChuYW1lLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWMsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIiwgIi5qb2luKHNvcnRlZChwYXRocykpKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vbmUpKQorCisgICAgZm9yIGVycm9yX25hbWUs
IGQgaW4gWygiQ1NTLUNPTExJRElORy1SRUYtTkFNRSIsIHJlZl9maWxlcyksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICgiQ1NTLUNPTExJRElORy1TVVBQT1JULU5BTUUiLCBzdXBwb3J0X2Zp
bGVzKV06CisgICAgICAgIGZvciBuYW1lLCBjb2xsaWRpbmcgaW4gaXRlcml0ZW1zKGQpOgorICAg
ICAgICAgICAgaWYgbGVuKGNvbGxpZGluZykgPiAxOgorICAgICAgICAgICAgICAgIGlmIG5vdCBf
YWxsX2ZpbGVzX2VxdWFsKFtvcy5wYXRoLmpvaW4ocmVwb19yb290LCB4KSBmb3IgeCBpbiBjb2xs
aWRpbmddKToKKyAgICAgICAgICAgICAgICAgICAgZm9yIHggaW4gY29sbGlkaW5nOgorICAgICAg
ICAgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoZXJyb3JfbmFtZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgZmlsZW5hbWUgJXMgaXMgc2hhcmVkIGJ5
OiAlcyIgJSAobmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgIi5qb2luKHNvcnRlZChjb2xs
aWRpbmcpKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSkpCisKKyAgICByZXR1cm4g
ZXJyb3JzCisKKworZGVmIHBhcnNlX3doaXRlbGlzdChmKToKKyAgICAiIiIKKyAgICBQYXJzZSB0
aGUgd2hpdGVsaXN0IGZpbGUgZ2l2ZW4gYnkgYGZgLCBhbmQgcmV0dXJuIHRoZSBwYXJzZWQgc3Ry
dWN0dXJlLgorICAgICIiIgorCisgICAgZGF0YSA9IGRlZmF1bHRkaWN0KGxhbWJkYTpkZWZhdWx0
ZGljdChzZXQpKQorICAgIGlnbm9yZWRfZmlsZXMgPSBzZXQoKQorCisgICAgZm9yIGxpbmUgaW4g
ZjoKKyAgICAgICAgbGluZSA9IGxpbmUuc3RyaXAoKQorICAgICAgICBpZiBub3QgbGluZSBvciBs
aW5lLnN0YXJ0c3dpdGgoIiMiKToKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIHBhcnRz
ID0gW2l0ZW0uc3RyaXAoKSBmb3IgaXRlbSBpbiBsaW5lLnNwbGl0KCI6IildCisgICAgICAgIGlm
IGxlbihwYXJ0cykgPT0gMjoKKyAgICAgICAgICAgIHBhcnRzLmFwcGVuZChOb25lKQorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgcGFydHNbLTFdID0gaW50KHBhcnRzWy0xXSkKKworICAgICAg
ICBlcnJvcl90eXBlcywgZmlsZV9tYXRjaCwgbGluZV9udW1iZXIgPSBwYXJ0cworICAgICAgICBl
cnJvcl90eXBlcyA9IHtpdGVtLnN0cmlwKCkgZm9yIGl0ZW0gaW4gZXJyb3JfdHlwZXMuc3BsaXQo
IiwiKX0KKyAgICAgICAgZmlsZV9tYXRjaCA9IG9zLnBhdGgubm9ybWNhc2UoZmlsZV9tYXRjaCkK
KworICAgICAgICBpZiAiKiIgaW4gZXJyb3JfdHlwZXM6CisgICAgICAgICAgICBpZ25vcmVkX2Zp
bGVzLmFkZChmaWxlX21hdGNoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZm9yIGVycm9y
X3R5cGUgaW4gZXJyb3JfdHlwZXM6CisgICAgICAgICAgICAgICAgZGF0YVtlcnJvcl90eXBlXVtm
aWxlX21hdGNoXS5hZGQobGluZV9udW1iZXIpCisKKyAgICByZXR1cm4gZGF0YSwgaWdub3JlZF9m
aWxlcworCisKK2RlZiBmaWx0ZXJfd2hpdGVsaXN0X2Vycm9ycyhkYXRhLCBlcnJvcnMpOgorICAg
ICIiIgorICAgIEZpbHRlciBvdXQgdGhvc2UgZXJyb3JzIHRoYXQgYXJlIHdoaXRlbGlzdGVkIGlu
IGBkYXRhYC4KKyAgICAiIiIKKworICAgIGlmIG5vdCBlcnJvcnM6CisgICAgICAgIHJldHVybiBb
XQorCisgICAgd2hpdGVsaXN0ZWQgPSBbRmFsc2UgZm9yIGl0ZW0gaW4gcmFuZ2UobGVuKGVycm9y
cykpXQorCisgICAgZm9yIGksIChlcnJvcl90eXBlLCBtc2csIHBhdGgsIGxpbmUpIGluIGVudW1l
cmF0ZShlcnJvcnMpOgorICAgICAgICBub3JtcGF0aCA9IG9zLnBhdGgubm9ybWNhc2UocGF0aCkK
KyAgICAgICAgIyBBbGxvdyB3aGl0ZWxpc3RpbmcgYWxsIGxpbnQgZXJyb3JzIGV4Y2VwdCB0aGUg
SUdOT1JFRCBQQVRIIGxpbnQsCisgICAgICAgICMgd2hpY2ggZXhwbGFpbnMgaG93IHRvIGZpeCBp
dCBjb3JyZWN0bHkgYW5kIHNob3VsZG4ndCBiZSBpZ25vcmVkLgorICAgICAgICBpZiBlcnJvcl90
eXBlIGluIGRhdGEgYW5kIGVycm9yX3R5cGUgIT0gIklHTk9SRUQgUEFUSCI6CisgICAgICAgICAg
ICB3bF9maWxlcyA9IGRhdGFbZXJyb3JfdHlwZV0KKyAgICAgICAgICAgIGZvciBmaWxlX21hdGNo
LCBhbGxvd2VkX2xpbmVzIGluIGl0ZXJpdGVtcyh3bF9maWxlcyk6CisgICAgICAgICAgICAgICAg
aWYgTm9uZSBpbiBhbGxvd2VkX2xpbmVzIG9yIGxpbmUgaW4gYWxsb3dlZF9saW5lczoKKyAgICAg
ICAgICAgICAgICAgICAgaWYgZm5tYXRjaC5mbm1hdGNoY2FzZShub3JtcGF0aCwgZmlsZV9tYXRj
aCk6CisgICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZWxpc3RlZFtpXSA9IFRydWUKKworICAg
IHJldHVybiBbaXRlbSBmb3IgaSwgaXRlbSBpbiBlbnVtZXJhdGUoZXJyb3JzKSBpZiBub3Qgd2hp
dGVsaXN0ZWRbaV1dCisKK2NsYXNzIFJlZ2V4cChvYmplY3QpOgorICAgIHBhdHRlcm4gPSBOb25l
CisgICAgZmlsZV9leHRlbnNpb25zID0gTm9uZQorICAgIGVycm9yID0gTm9uZQorICAgIF9yZSA9
IE5vbmUKKworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5fcmUgPSByZS5j
b21waWxlKHNlbGYucGF0dGVybikKKworICAgIGRlZiBhcHBsaWVzKHNlbGYsIHBhdGgpOgorICAg
ICAgICByZXR1cm4gKHNlbGYuZmlsZV9leHRlbnNpb25zIGlzIE5vbmUgb3IKKyAgICAgICAgICAg
ICAgICBvcy5wYXRoLnNwbGl0ZXh0KHBhdGgpWzFdIGluIHNlbGYuZmlsZV9leHRlbnNpb25zKQor
CisgICAgZGVmIHNlYXJjaChzZWxmLCBsaW5lKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3JlLnNl
YXJjaChsaW5lKQorCitjbGFzcyBUcmFpbGluZ1doaXRlc3BhY2VSZWdleHAoUmVnZXhwKToKKyAg
ICBwYXR0ZXJuID0gYiJbIFx0XGZcdl0kIgorICAgIGVycm9yID0gIlRSQUlMSU5HIFdISVRFU1BB
Q0UiCisgICAgZGVzY3JpcHRpb24gPSAiV2hpdGVzcGFjZSBhdCBFT0wiCisKK2NsYXNzIFRhYnNS
ZWdleHAoUmVnZXhwKToKKyAgICBwYXR0ZXJuID0gYiJeXHQiCisgICAgZXJyb3IgPSAiSU5ERU5U
IFRBQlMiCisgICAgZGVzY3JpcHRpb24gPSAiVGFicyB1c2VkIGZvciBpbmRlbnRhdGlvbiIKKwor
Y2xhc3MgQ1JSZWdleHAoUmVnZXhwKToKKyAgICBwYXR0ZXJuID0gYiJcciQiCisgICAgZXJyb3Ig
PSAiQ1IgQVQgRU9MIgorICAgIGRlc2NyaXB0aW9uID0gIkNSIGNoYXJhY3RlciBpbiBsaW5lIHNl
cGFyYXRvciIKKworY2xhc3MgU2V0VGltZW91dFJlZ2V4cChSZWdleHApOgorICAgIHBhdHRlcm4g
PSBiInNldFRpbWVvdXRccypcKCIKKyAgICBlcnJvciA9ICJTRVQgVElNRU9VVCIKKyAgICBmaWxl
X2V4dGVuc2lvbnMgPSBbIi5odG1sIiwgIi5odG0iLCAiLmpzIiwgIi54aHQiLCAiLnhodG1sIiwg
Ii5zdmciXQorICAgIGRlc2NyaXB0aW9uID0gInNldFRpbWVvdXQgdXNlZDsgc3RlcF90aW1lb3V0
IHNob3VsZCB0eXBpY2FsbHkgYmUgdXNlZCBpbnN0ZWFkIgorCitjbGFzcyBXM0NUZXN0T3JnUmVn
ZXhwKFJlZ2V4cCk6CisgICAgcGF0dGVybiA9IGIidzNjXC10ZXN0XC5vcmciCisgICAgZXJyb3Ig
PSAiVzNDLVRFU1QuT1JHIgorICAgIGRlc2NyaXB0aW9uID0gIkV4dGVybmFsIHczYy10ZXN0Lm9y
ZyBkb21haW4gdXNlZCIKKworY2xhc3MgV2ViUGxhdGZvcm1UZXN0UmVnZXhwKFJlZ2V4cCk6Cisg
ICAgcGF0dGVybiA9IGIid2ViXC1wbGF0Zm9ybVwudGVzdCIKKyAgICBlcnJvciA9ICJXRUItUExB
VEZPUk0uVEVTVCIKKyAgICBkZXNjcmlwdGlvbiA9ICJJbnRlcm5hbCB3ZWItcGxhdGZvcm0udGVz
dCBkb21haW4gdXNlZCIKKworY2xhc3MgV2ViaWRsMlJlZ2V4cChSZWdleHApOgorICAgIHBhdHRl
cm4gPSBiIndlYmlkbDJcLmpzIgorICAgIGVycm9yID0gIldFQklETDIuSlMiCisgICAgZGVzY3Jp
cHRpb24gPSAiTGVnYWN5IHdlYmlkbDIuanMgc2NyaXB0IHVzZWQiCisKK2NsYXNzIENvbnNvbGVS
ZWdleHAoUmVnZXhwKToKKyAgICBwYXR0ZXJuID0gYiJjb25zb2xlXC5bYS16QS1aXStccypcKCIK
KyAgICBlcnJvciA9ICJDT05TT0xFIgorICAgIGZpbGVfZXh0ZW5zaW9ucyA9IFsiLmh0bWwiLCAi
Lmh0bSIsICIuanMiLCAiLnhodCIsICIueGh0bWwiLCAiLnN2ZyJdCisgICAgZGVzY3JpcHRpb24g
PSAiQ29uc29sZSBsb2dnaW5nIEFQSSB1c2VkIgorCitjbGFzcyBHZW5lcmF0ZVRlc3RzUmVnZXhw
KFJlZ2V4cCk6CisgICAgcGF0dGVybiA9IGIiZ2VuZXJhdGVfdGVzdHNccypcKCIKKyAgICBlcnJv
ciA9ICJHRU5FUkFURV9URVNUUyIKKyAgICBmaWxlX2V4dGVuc2lvbnMgPSBbIi5odG1sIiwgIi5o
dG0iLCAiLmpzIiwgIi54aHQiLCAiLnhodG1sIiwgIi5zdmciXQorICAgIGRlc2NyaXB0aW9uID0g
ImdlbmVyYXRlX3Rlc3RzIHVzZWQiCisKK2NsYXNzIFByaW50UmVnZXhwKFJlZ2V4cCk6CisgICAg
cGF0dGVybiA9IGIicHJpbnQoPzpcc3xccypcKCkiCisgICAgZXJyb3IgPSAiUFJJTlQgU1RBVEVN
RU5UIgorICAgIGZpbGVfZXh0ZW5zaW9ucyA9IFsiLnB5Il0KKyAgICBkZXNjcmlwdGlvbiA9ICJQ
cmludCBmdW5jdGlvbiB1c2VkIgorCitjbGFzcyBMYXlvdXRUZXN0c1JlZ2V4cChSZWdleHApOgor
ICAgIHBhdHRlcm4gPSBiImV2ZW50U2VuZGVyfHRlc3RSdW5uZXJ8d2luZG93XC5pbnRlcm5hbHMi
CisgICAgZXJyb3IgPSAiTEFZT1VUVEVTVFMgQVBJUyIKKyAgICBmaWxlX2V4dGVuc2lvbnMgPSBb
Ii5odG1sIiwgIi5odG0iLCAiLmpzIiwgIi54aHQiLCAiLnhodG1sIiwgIi5zdmciXQorICAgIGRl
c2NyaXB0aW9uID0gImV2ZW50U2VuZGVyL3Rlc3RSdW5uZXIvd2luZG93LmludGVybmFscyB1c2Vk
OyB0aGVzZSBhcmUgTGF5b3V0VGVzdHMtc3BlY2lmaWMgQVBJcyAoV2ViS2l0L0JsaW5rKSIKKwor
Y2xhc3MgU3BlY2lhbFBvd2Vyc1JlZ2V4cChSZWdleHApOgorICAgIHBhdHRlcm4gPSBiIlNwZWNp
YWxQb3dlcnMiCisgICAgZXJyb3IgPSAiU1BFQ0lBTFBPV0VSUyBBUEkiCisgICAgZmlsZV9leHRl
bnNpb25zID0gWyIuaHRtbCIsICIuaHRtIiwgIi5qcyIsICIueGh0IiwgIi54aHRtbCIsICIuc3Zn
Il0KKyAgICBkZXNjcmlwdGlvbiA9ICJTcGVjaWFsUG93ZXJzIHVzZWQ7IHRoaXMgaXMgZ2Vja28t
c3BlY2lmaWMgYW5kIG5vdCBzdXBwb3J0ZWQgaW4gd3B0IgorCisKK3JlZ2V4cHMgPSBbaXRlbSgp
IGZvciBpdGVtIGluCisgICAgICAgICAgIFtUcmFpbGluZ1doaXRlc3BhY2VSZWdleHAsCisgICAg
ICAgICAgICBUYWJzUmVnZXhwLAorICAgICAgICAgICAgQ1JSZWdleHAsCisgICAgICAgICAgICBT
ZXRUaW1lb3V0UmVnZXhwLAorICAgICAgICAgICAgVzNDVGVzdE9yZ1JlZ2V4cCwKKyAgICAgICAg
ICAgIFdlYlBsYXRmb3JtVGVzdFJlZ2V4cCwKKyAgICAgICAgICAgIFdlYmlkbDJSZWdleHAsCisg
ICAgICAgICAgICBDb25zb2xlUmVnZXhwLAorICAgICAgICAgICAgR2VuZXJhdGVUZXN0c1JlZ2V4
cCwKKyAgICAgICAgICAgIFByaW50UmVnZXhwLAorICAgICAgICAgICAgTGF5b3V0VGVzdHNSZWdl
eHAsCisgICAgICAgICAgICBTcGVjaWFsUG93ZXJzUmVnZXhwXV0KKworZGVmIGNoZWNrX3JlZ2V4
cF9saW5lKHJlcG9fcm9vdCwgcGF0aCwgZik6CisgICAgZXJyb3JzID0gW10KKworICAgIGFwcGxp
Y2FibGVfcmVnZXhwcyA9IFtyZWdleHAgZm9yIHJlZ2V4cCBpbiByZWdleHBzIGlmIHJlZ2V4cC5h
cHBsaWVzKHBhdGgpXQorCisgICAgZm9yIGksIGxpbmUgaW4gZW51bWVyYXRlKGYpOgorICAgICAg
ICBmb3IgcmVnZXhwIGluIGFwcGxpY2FibGVfcmVnZXhwczoKKyAgICAgICAgICAgIGlmIHJlZ2V4
cC5zZWFyY2gobGluZSk6CisgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgocmVnZXhwLmVy
cm9yLCByZWdleHAuZGVzY3JpcHRpb24sIHBhdGgsIGkrMSkpCisKKyAgICByZXR1cm4gZXJyb3Jz
CisKK2RlZiBjaGVja19wYXJzZWQocmVwb19yb290LCBwYXRoLCBmKToKKyAgICBzb3VyY2VfZmls
ZSA9IFNvdXJjZUZpbGUocmVwb19yb290LCBwYXRoLCAiLyIsIGNvbnRlbnRzPWYucmVhZCgpKQor
CisgICAgZXJyb3JzID0gW10KKworICAgIGlmIHBhdGguc3RhcnRzd2l0aCgiY3NzLyIpOgorICAg
ICAgICBpZiAoc291cmNlX2ZpbGUudHlwZSA9PSAic3VwcG9ydCIgYW5kCisgICAgICAgICAgICBu
b3Qgc291cmNlX2ZpbGUubmFtZV9pc19ub25fdGVzdCBhbmQKKyAgICAgICAgICAgIG5vdCBzb3Vy
Y2VfZmlsZS5uYW1lX2lzX3JlZmVyZW5jZSk6CisgICAgICAgICAgICByZXR1cm4gWygiU1VQUE9S
VC1XUk9ORy1ESVIiLCAiU3VwcG9ydCBmaWxlIG5vdCBpbiBzdXBwb3J0IGRpcmVjdG9yeSIsIHBh
dGgsIE5vbmUpXQorCisgICAgICAgIGlmIChzb3VyY2VfZmlsZS50eXBlICE9ICJzdXBwb3J0IiBh
bmQKKyAgICAgICAgICAgIG5vdCBzb3VyY2VfZmlsZS5uYW1lX2lzX3JlZmVyZW5jZSBhbmQKKyAg
ICAgICAgICAgIG5vdCBzb3VyY2VfZmlsZS5zcGVjX2xpbmtzKToKKyAgICAgICAgICAgIHJldHVy
biBbKCJNSVNTSU5HLUxJTksiLCAiVGVzdGNhc2UgZmlsZSBtdXN0IGhhdmUgYSBsaW5rIHRvIGEg
c3BlYyIsIHBhdGgsIE5vbmUpXQorCisgICAgaWYgc291cmNlX2ZpbGUubmFtZV9pc19ub25fdGVz
dCBvciBzb3VyY2VfZmlsZS5uYW1lX2lzX21hbnVhbDoKKyAgICAgICAgcmV0dXJuIFtdCisKKyAg
ICBpZiBzb3VyY2VfZmlsZS5tYXJrdXBfdHlwZSBpcyBOb25lOgorICAgICAgICByZXR1cm4gW10K
KworICAgIGlmIHNvdXJjZV9maWxlLnJvb3QgaXMgTm9uZToKKyAgICAgICAgcmV0dXJuIFsoIlBB
UlNFLUZBSUxFRCIsICJVbmFibGUgdG8gcGFyc2UgZmlsZSIsIHBhdGgsIE5vbmUpXQorCisgICAg
aWYgc291cmNlX2ZpbGUudHlwZSA9PSAibWFudWFsIiBhbmQgbm90IHNvdXJjZV9maWxlLm5hbWVf
aXNfbWFudWFsOgorICAgICAgICByZXR1cm4gWygiQ09OVEVOVC1NQU5VQUwiLCAiTWFudWFsIHRl
c3Qgd2hvc2UgZmlsZW5hbWUgZG9lc24ndCBlbmQgaW4gJy1tYW51YWwnIiwgcGF0aCwgTm9uZSld
CisKKyAgICBpZiBzb3VyY2VfZmlsZS50eXBlID09ICJ2aXN1YWwiIGFuZCBub3Qgc291cmNlX2Zp
bGUubmFtZV9pc192aXN1YWw6CisgICAgICAgIHJldHVybiBbKCJDT05URU5ULVZJU1VBTCIsICJW
aXN1YWwgdGVzdCB3aG9zZSBmaWxlbmFtZSBkb2Vzbid0IGVuZCBpbiAnLXZpc3VhbCciLCBwYXRo
LCBOb25lKV0KKworICAgIGZvciByZWZ0ZXN0X25vZGUgaW4gc291cmNlX2ZpbGUucmVmdGVzdF9u
b2RlczoKKyAgICAgICAgaHJlZiA9IHJlZnRlc3Rfbm9kZS5hdHRyaWIuZ2V0KCJocmVmIiwgIiIp
LnN0cmlwKHNwYWNlX2NoYXJzKQorICAgICAgICBwYXJ0cyA9IHVybHNwbGl0KGhyZWYpCisgICAg
ICAgIGlmIChwYXJ0cy5zY2hlbWUgb3IgcGFydHMubmV0bG9jKSBhbmQgcGFydHMgIT0gdXJsc3Bs
aXQoImFib3V0OmJsYW5rIik6CisgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCgiQUJTT0xVVEUt
VVJMLVJFRiIsCisgICAgICAgICAgICAgICAgICAgICAiUmVmZXJlbmNlIHRlc3Qgd2l0aCBhIHJl
ZmVyZW5jZSBmaWxlIHNwZWNpZmllZCB2aWEgYW4gYWJzb2x1dGUgVVJMOiAnJXMnIiAlIGhyZWYs
IHBhdGgsIE5vbmUpKQorICAgICAgICAgICAgY29udGludWUKKworICAgICAgICByZWZfdXJsID0g
dXJsam9pbihzb3VyY2VfZmlsZS51cmwsIGhyZWYpCisgICAgICAgIHJlZl9wYXJ0cyA9IHVybHNw
bGl0KHJlZl91cmwpCisKKyAgICAgICAgaWYgc291cmNlX2ZpbGUudXJsID09IHJlZl91cmw6Cisg
ICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCgiU0FNRS1GSUxFLVJFRiIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiUmVmZXJlbmNlIHRlc3Qgd2hpY2ggcG9pbnRzIGF0IGl0c2VsZiBhcyBh
IHJlZmVyZW5jZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgTm9uZSkpCisgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAg
IGFzc2VydCByZWZfcGFydHMucGF0aCAhPSAiIgorCisgICAgICAgIHJlZmVyZW5jZV9maWxlID0g
b3MucGF0aC5qb2luKHJlcG9fcm9vdCwgcmVmX3BhcnRzLnBhdGhbMTpdKQorICAgICAgICByZWZl
cmVuY2VfcmVsID0gcmVmdGVzdF9ub2RlLmF0dHJpYi5nZXQoInJlbCIsICIiKQorCisgICAgICAg
IGlmIG5vdCBvcy5wYXRoLmlzZmlsZShyZWZlcmVuY2VfZmlsZSk6CisgICAgICAgICAgICBlcnJv
cnMuYXBwZW5kKCgiTk9OLUVYSVNURU5ULVJFRiIsCisgICAgICAgICAgICAgICAgICAgICAiUmVm
ZXJlbmNlIHRlc3Qgd2l0aCBhIG5vbi1leGlzdGVudCAnJXMnIHJlbGF0aW9uc2hpcCByZWZlcmVu
Y2U6ICclcyciICUgKHJlZmVyZW5jZV9yZWwsIGhyZWYpLCBwYXRoLCBOb25lKSkKKworICAgIGlm
IGxlbihzb3VyY2VfZmlsZS50aW1lb3V0X25vZGVzKSA+IDE6CisgICAgICAgIGVycm9ycy5hcHBl
bmQoKCJNVUxUSVBMRS1USU1FT1VUIiwgIk1vcmUgdGhhbiBvbmUgbWV0YSBuYW1lPSd0aW1lb3V0
JyIsIHBhdGgsIE5vbmUpKQorCisgICAgZm9yIHRpbWVvdXRfbm9kZSBpbiBzb3VyY2VfZmlsZS50
aW1lb3V0X25vZGVzOgorICAgICAgICB0aW1lb3V0X3ZhbHVlID0gdGltZW91dF9ub2RlLmF0dHJp
Yi5nZXQoImNvbnRlbnQiLCAiIikubG93ZXIoKQorICAgICAgICBpZiB0aW1lb3V0X3ZhbHVlICE9
ICJsb25nIjoKKyAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoKCJJTlZBTElELVRJTUVPVVQiLCAi
SW52YWxpZCB0aW1lb3V0IHZhbHVlICVzIiAlIHRpbWVvdXRfdmFsdWUsIHBhdGgsIE5vbmUpKQor
CisgICAgaWYgc291cmNlX2ZpbGUudGVzdGhhcm5lc3Nfbm9kZXM6CisgICAgICAgIGlmIGxlbihz
b3VyY2VfZmlsZS50ZXN0aGFybmVzc19ub2RlcykgPiAxOgorICAgICAgICAgICAgZXJyb3JzLmFw
cGVuZCgoIk1VTFRJUExFLVRFU1RIQVJORVNTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJNb3JlIHRoYW4gb25lIDxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzJz4i
LCBwYXRoLCBOb25lKSkKKworICAgICAgICB0ZXN0aGFybmVzc3JlcG9ydF9ub2RlcyA9IHNvdXJj
ZV9maWxlLnJvb3QuZmluZGFsbCgiLi8ve2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWx9c2Ny
aXB0W0BzcmM9Jy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMnXSIpCisgICAgICAgIGlm
IG5vdCB0ZXN0aGFybmVzc3JlcG9ydF9ub2RlczoKKyAgICAgICAgICAgIGVycm9ycy5hcHBlbmQo
KCJNSVNTSU5HLVRFU1RIQVJORVNTUkVQT1JUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJNaXNzaW5nIDxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzJz4i
LCBwYXRoLCBOb25lKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIGxlbih0ZXN0aGFy
bmVzc3JlcG9ydF9ub2RlcykgPiAxOgorICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoKCJN
VUxUSVBMRS1URVNUSEFSTkVTU1JFUE9SVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIk1vcmUgdGhhbiBvbmUgPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMnPiIsIHBhdGgsIE5vbmUpKQorCisgICAgICAgIHRlc3RoYXJuZXNzY3NzX25vZGVzID0g
c291cmNlX2ZpbGUucm9vdC5maW5kYWxsKCIuLy97aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bH1saW5rW0BocmVmPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyddIikKKyAgICAgICAgaWYg
dGVzdGhhcm5lc3Njc3Nfbm9kZXM6CisgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCgiUFJFU0VO
VC1URVNUSEFSTkVTU0NTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXhwbGljaXQg
bGluayB0byB0ZXN0aGFybmVzcy5jc3MgcHJlc2VudCIsIHBhdGgsIE5vbmUpKQorCisgICAgICAg
IGZvciBlbGVtZW50IGluIHNvdXJjZV9maWxlLnZhcmlhbnRfbm9kZXM6CisgICAgICAgICAgICBp
ZiAiY29udGVudCIgbm90IGluIGVsZW1lbnQuYXR0cmliOgorICAgICAgICAgICAgICAgIGVycm9y
cy5hcHBlbmQoKCJWQVJJQU5ULU1JU1NJTkciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICI8bWV0YSBuYW1lPXZhcmlhbnQ+IG1pc3NpbmcgJ2NvbnRlbnQnIGF0dHJpYnV0ZSIsIHBh
dGgsIE5vbmUpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB2YXJpYW50ID0g
ZWxlbWVudC5hdHRyaWJbImNvbnRlbnQiXQorICAgICAgICAgICAgICAgIGlmIHZhcmlhbnQgIT0g
IiIgYW5kIHZhcmlhbnRbMF0gbm90IGluICgiPyIsICIjIik6CisgICAgICAgICAgICAgICAgICAg
IGVycm9ycy5hcHBlbmQoKCJNQUxGT1JNRUQtVkFSSUFOVCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIiVzIDxtZXRhIG5hbWU9dmFyaWFudD4gJ2NvbnRlbnQnIGF0dHJpYnV0ZSBt
dXN0IGJlIHRoZSBlbXB0eSBzdHJpbmcgb3Igc3RhcnQgd2l0aCAnPycgb3IgJyMnIiAlIHBhdGgs
IE5vbmUpKQorCisgICAgICAgIHNlZW5fZWxlbWVudHMgPSB7InRpbWVvdXQiOiBGYWxzZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAidGVzdGhhcm5lc3MiOiBGYWxzZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAidGVzdGhhcm5lc3NyZXBvcnQiOiBGYWxzZX0KKyAgICAgICAgcmVxdWly
ZWRfZWxlbWVudHMgPSBba2V5IGZvciBrZXksIHZhbHVlIGluIHsidGVzdGhhcm5lc3MiOiBUcnVl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0
ZXN0aGFybmVzc3JlcG9ydCI6IGxlbih0ZXN0aGFybmVzc3JlcG9ydF9ub2RlcykgPiAwLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aW1lb3V0
IjogbGVuKHNvdXJjZV9maWxlLnRpbWVvdXRfbm9kZXMpID4gMH0uaXRlbXMoKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiB2YWx1ZV0KKworICAgICAgICBmb3IgZWxlbSBpbiBzb3Vy
Y2VfZmlsZS5yb290Lml0ZXIoKToKKyAgICAgICAgICAgIGlmIHNvdXJjZV9maWxlLnRpbWVvdXRf
bm9kZXMgYW5kIGVsZW0gPT0gc291cmNlX2ZpbGUudGltZW91dF9ub2Rlc1swXToKKyAgICAgICAg
ICAgICAgICBzZWVuX2VsZW1lbnRzWyJ0aW1lb3V0Il0gPSBUcnVlCisgICAgICAgICAgICAgICAg
aWYgc2Vlbl9lbGVtZW50c1sidGVzdGhhcm5lc3MiXToKKyAgICAgICAgICAgICAgICAgICAgZXJy
b3JzLmFwcGVuZCgoIkxBVEUtVElNRU9VVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICI8bWV0YSBuYW1lPXRpbWVvdXQ+IHNlZW4gYWZ0ZXIgdGVzdGhhcm5lc3MuanMgc2Ny
aXB0IiwgcGF0aCwgTm9uZSkpCisKKyAgICAgICAgICAgIGVsaWYgZWxlbSA9PSBzb3VyY2VfZmls
ZS50ZXN0aGFybmVzc19ub2Rlc1swXToKKyAgICAgICAgICAgICAgICBzZWVuX2VsZW1lbnRzWyJ0
ZXN0aGFybmVzcyJdID0gVHJ1ZQorCisgICAgICAgICAgICBlbGlmIHRlc3RoYXJuZXNzcmVwb3J0
X25vZGVzIGFuZCBlbGVtID09IHRlc3RoYXJuZXNzcmVwb3J0X25vZGVzWzBdOgorICAgICAgICAg
ICAgICAgIHNlZW5fZWxlbWVudHNbInRlc3RoYXJuZXNzcmVwb3J0Il0gPSBUcnVlCisgICAgICAg
ICAgICAgICAgaWYgbm90IHNlZW5fZWxlbWVudHNbInRlc3RoYXJuZXNzIl06CisgICAgICAgICAg
ICAgICAgICAgIGVycm9ycy5hcHBlbmQoKCJFQVJMWS1URVNUSEFSTkVTU1JFUE9SVCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0aGFybmVzc3JlcG9ydC5qcyBzY3Jp
cHQgc2VlbiBiZWZvcmUgdGVzdGhhcm5lc3MuanMgc2NyaXB0IiwgcGF0aCwgTm9uZSkpCisKKyAg
ICAgICAgICAgIGlmIGFsbChzZWVuX2VsZW1lbnRzW25hbWVdIGZvciBuYW1lIGluIHJlcXVpcmVk
X2VsZW1lbnRzKToKKyAgICAgICAgICAgICAgICBicmVhaworCisgICAgaWYgc291cmNlX2ZpbGUu
dGVzdGRyaXZlcl9ub2RlczoKKyAgICAgICAgaWYgbGVuKHNvdXJjZV9maWxlLnRlc3Rkcml2ZXJf
bm9kZXMpID4gMToKKyAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoKCJNVUxUSVBMRS1URVNURFJJ
VkVSIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJNb3JlIHRoYW4gb25lIDxzY3JpcHQg
c3JjPScvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMnPiIsIHBhdGgsIE5vbmUpKQorCisgICAgICAg
IHRlc3Rkcml2ZXJfdmVuZG9yX25vZGVzID0gc291cmNlX2ZpbGUucm9vdC5maW5kYWxsKCIuLy97
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbH1zY3JpcHRbQHNyYz0nL3Jlc291cmNlcy90ZXN0
ZHJpdmVyLXZlbmRvci5qcyddIikKKyAgICAgICAgaWYgbm90IHRlc3Rkcml2ZXJfdmVuZG9yX25v
ZGVzOgorICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIk1JU1NJTkctVEVTVERSSVZFUi1WRU5E
T1IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1pc3NpbmcgPHNjcmlwdCBzcmM9Jy9y
ZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMnPiIsIHBhdGgsIE5vbmUpKQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgaWYgbGVuKHRlc3Rkcml2ZXJfdmVuZG9yX25vZGVzKSA+IDE6Cisg
ICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIk1VTFRJUExFLVRFU1REUklWRVItVkVORE9S
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTW9yZSB0aGFuIG9uZSA8c2NyaXB0
IHNyYz0nL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyc+IiwgcGF0aCwgTm9uZSkpCisK
KyAgICBmb3IgZWxlbWVudCBpbiBzb3VyY2VfZmlsZS5yb290LmZpbmRhbGwoIi4vL3todHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hodG1sfXNjcmlwdFtAc3JjXSIpOgorICAgICAgICBzcmMgPSBlbGVt
ZW50LmF0dHJpYlsic3JjIl0KKyAgICAgICAgZm9yIG5hbWUgaW4gWyJ0ZXN0aGFybmVzcyIsICJ0
ZXN0aGFybmVzc3JlcG9ydCIsICJ0ZXN0ZHJpdmVyIiwgInRlc3Rkcml2ZXItdmVuZG9yIl06Cisg
ICAgICAgICAgICBpZiAiJXMuanMiICUgbmFtZSA9PSBzcmMgb3IgKCIvJXMuanMiICUgbmFtZSBp
biBzcmMgYW5kIHNyYyAhPSAiL3Jlc291cmNlcy8lcy5qcyIgJSBuYW1lKToKKyAgICAgICAgICAg
ICAgICBlcnJvcnMuYXBwZW5kKCgiJXMtUEFUSCIgJSBuYW1lLnVwcGVyKCksICIlcy5qcyBzY3Jp
cHQgc2VlbiB3aXRoIGluY29ycmVjdCBwYXRoIiAlIG5hbWUsIHBhdGgsIE5vbmUpKQorCisgICAg
cmV0dXJuIGVycm9ycworCitjbGFzcyBBU1RDaGVjayhvYmplY3QpOgorICAgIF9fbWV0YWNsYXNz
X18gPSBhYmMuQUJDTWV0YQorICAgIGVycm9yID0gTm9uZQorICAgIGRlc2NyaXB0aW9uID0gTm9u
ZQorCisgICAgQGFiYy5hYnN0cmFjdG1ldGhvZAorICAgIGRlZiBjaGVjayhzZWxmLCByb290KToK
KyAgICAgICAgcGFzcworCitjbGFzcyBPcGVuTW9kZUNoZWNrKEFTVENoZWNrKToKKyAgICBlcnJv
ciA9ICJPUEVOLU5PLU1PREUiCisgICAgZGVzY3JpcHRpb24gPSAiRmlsZSBvcGVuZWQgd2l0aG91
dCBwcm92aWRpbmcgYW4gZXhwbGljaXQgbW9kZSAobm90ZTogYmluYXJ5IGZpbGVzIG11c3QgYmUg
cmVhZCB3aXRoICdiJyBpbiB0aGUgbW9kZSBmbGFncykiCisKKyAgICBkZWYgY2hlY2soc2VsZiwg
cm9vdCk6CisgICAgICAgIGVycm9ycyA9IFtdCisgICAgICAgIGZvciBub2RlIGluIGFzdC53YWxr
KHJvb3QpOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShub2RlLCBhc3QuQ2FsbCk6CisgICAg
ICAgICAgICAgICAgaWYgaGFzYXR0cihub2RlLmZ1bmMsICJpZCIpIGFuZCBub2RlLmZ1bmMuaWQg
aW4gKCJvcGVuIiwgImZpbGUiKToKKyAgICAgICAgICAgICAgICAgICAgaWYgKGxlbihub2RlLmFy
Z3MpIDwgMiBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsbChpdGVtLmFyZyAhPSAibW9k
ZSIgZm9yIGl0ZW0gaW4gbm9kZS5rZXl3b3JkcykpOgorICAgICAgICAgICAgICAgICAgICAgICAg
ZXJyb3JzLmFwcGVuZChub2RlLmxpbmVubykKKyAgICAgICAgcmV0dXJuIGVycm9ycworCithc3Rf
Y2hlY2tlcnMgPSBbaXRlbSgpIGZvciBpdGVtIGluIFtPcGVuTW9kZUNoZWNrXV0KKworZGVmIGNo
ZWNrX3B5dGhvbl9hc3QocmVwb19yb290LCBwYXRoLCBmKToKKyAgICBpZiBub3QgcGF0aC5lbmRz
d2l0aCgiLnB5Iik6CisgICAgICAgIHJldHVybiBbXQorCisgICAgdHJ5OgorICAgICAgICByb290
ID0gYXN0LnBhcnNlKGYucmVhZCgpKQorICAgIGV4Y2VwdCBTeW50YXhFcnJvciBhcyBlOgorICAg
ICAgICByZXR1cm4gWygiUEFSU0UtRkFJTEVEIiwgIlVuYWJsZSB0byBwYXJzZSBmaWxlIiwgcGF0
aCwgZS5saW5lbm8pXQorCisgICAgZXJyb3JzID0gW10KKyAgICBmb3IgY2hlY2tlciBpbiBhc3Rf
Y2hlY2tlcnM6CisgICAgICAgIGZvciBsaW5lbm8gaW4gY2hlY2tlci5jaGVjayhyb290KToKKyAg
ICAgICAgICAgIGVycm9ycy5hcHBlbmQoKGNoZWNrZXIuZXJyb3IsIGNoZWNrZXIuZGVzY3JpcHRp
b24sIHBhdGgsIGxpbmVubykpCisgICAgcmV0dXJuIGVycm9ycworCisKK2Jyb2tlbl9qc19tZXRh
ZGF0YSA9IHJlLmNvbXBpbGUoYiIvL1xzKk1FVEE6IikKK2Jyb2tlbl9weXRob25fbWV0YWRhdGEg
PSByZS5jb21waWxlKGIiI1xzKk1FVEE6IikKKworCitkZWYgY2hlY2tfc2NyaXB0X21ldGFkYXRh
KHJlcG9fcm9vdCwgcGF0aCwgZik6CisgICAgaWYgcGF0aC5lbmRzd2l0aCgoIi53b3JrZXIuanMi
LCAiLmFueS5qcyIpKToKKyAgICAgICAgbWV0YV9yZSA9IGpzX21ldGFfcmUKKyAgICAgICAgYnJv
a2VuX21ldGFkYXRhID0gYnJva2VuX2pzX21ldGFkYXRhCisgICAgZWxpZiBwYXRoLmVuZHN3aXRo
KCIucHkiKToKKyAgICAgICAgbWV0YV9yZSA9IHB5dGhvbl9tZXRhX3JlCisgICAgICAgIGJyb2tl
bl9tZXRhZGF0YSA9IGJyb2tlbl9weXRob25fbWV0YWRhdGEKKyAgICBlbHNlOgorICAgICAgICBy
ZXR1cm4gW10KKworICAgIGRvbmUgPSBGYWxzZQorICAgIGVycm9ycyA9IFtdCisgICAgZm9yIGlk
eCwgbGluZSBpbiBlbnVtZXJhdGUoZik6CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGxpbmUs
IGJpbmFyeV90eXBlKSwgbGluZQorCisgICAgICAgIG0gPSBtZXRhX3JlLm1hdGNoKGxpbmUpCisg
ICAgICAgIGlmIG06CisgICAgICAgICAgICBrZXksIHZhbHVlID0gbS5ncm91cHMoKQorICAgICAg
ICAgICAgaWYga2V5ID09IGIidGltZW91dCI6CisgICAgICAgICAgICAgICAgaWYgdmFsdWUgIT0g
YiJsb25nIjoKKyAgICAgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIlVOS05PV04tVElN
RU9VVC1NRVRBREFUQSIsICJVbmV4cGVjdGVkIHZhbHVlIGZvciB0aW1lb3V0IG1ldGFkYXRhIiwg
cGF0aCwgaWR4ICsgMSkpCisgICAgICAgICAgICBlbGlmIGtleSA9PSBiInNjcmlwdCI6CisgICAg
ICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBlcnJv
cnMuYXBwZW5kKCgiVU5LTk9XTi1NRVRBREFUQSIsICJVbmV4cGVjdGVkIGtpbmQgb2YgbWV0YWRh
dGEiLCBwYXRoLCBpZHggKyAxKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGRvbmUgPSBU
cnVlCisKKyAgICAgICAgaWYgZG9uZToKKyAgICAgICAgICAgIGlmIG1ldGFfcmUubWF0Y2gobGlu
ZSk6CisgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIlNUUkFZLU1FVEFEQVRBIiwgIk1l
dGFkYXRhIGNvbW1lbnRzIHNob3VsZCBzdGFydCB0aGUgZmlsZSIsIHBhdGgsIGlkeCArIDEpKQor
ICAgICAgICAgICAgZWxpZiBtZXRhX3JlLnNlYXJjaChsaW5lKToKKyAgICAgICAgICAgICAgICBl
cnJvcnMuYXBwZW5kKCgiSU5ERU5URUQtTUVUQURBVEEiLCAiTWV0YWRhdGEgY29tbWVudHMgc2hv
dWxkIHN0YXJ0IHRoZSBsaW5lIiwgcGF0aCwgaWR4ICsgMSkpCisgICAgICAgICAgICBlbGlmIGJy
b2tlbl9tZXRhZGF0YS5zZWFyY2gobGluZSk6CisgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVu
ZCgoIkJST0tFTi1NRVRBREFUQSIsICJNZXRhZGF0YSBjb21tZW50IGlzIG5vdCBmb3JtYXR0ZWQg
Y29ycmVjdGx5IiwgcGF0aCwgaWR4ICsgMSkpCisKKyAgICByZXR1cm4gZXJyb3JzCisKKworZGVm
IGNoZWNrX3BhdGgocmVwb19yb290LCBwYXRoKToKKyAgICAiIiIKKyAgICBSdW5zIGxpbnRzIHRo
YXQgY2hlY2sgdGhlIGZpbGUgcGF0aC4KKworICAgIDpwYXJhbSByZXBvX3Jvb3Q6IHRoZSByZXBv
c2l0b3J5IHJvb3QKKyAgICA6cGFyYW0gcGF0aDogdGhlIHBhdGggb2YgdGhlIGZpbGUgd2l0aGlu
IHRoZSByZXBvc2l0b3J5CisgICAgOnJldHVybnM6IGEgbGlzdCBvZiBlcnJvcnMgZm91bmQgaW4g
YGBwYXRoYGAKKyAgICAiIiIKKworICAgIGVycm9ycyA9IFtdCisgICAgZm9yIHBhdGhfZm4gaW4g
cGF0aF9saW50czoKKyAgICAgICAgZXJyb3JzLmV4dGVuZChwYXRoX2ZuKHJlcG9fcm9vdCwgcGF0
aCkpCisgICAgcmV0dXJuIGVycm9ycworCisKK2RlZiBjaGVja19hbGxfcGF0aHMocmVwb19yb290
LCBwYXRocyk6CisgICAgIiIiCisgICAgUnVucyBsaW50cyB0aGF0IGNoZWNrIGFsbCBwYXRocyBn
bG9iYWxseS4KKworICAgIDpwYXJhbSByZXBvX3Jvb3Q6IHRoZSByZXBvc2l0b3J5IHJvb3QKKyAg
ICA6cGFyYW0gcGF0aHM6IGEgbGlzdCBvZiBhbGwgdGhlIHBhdGhzIHdpdGhpbiB0aGUgcmVwb3Np
dG9yeQorICAgIDpyZXR1cm5zOiBhIGxpc3Qgb2YgZXJyb3JzIGZvdW5kIGluIGBgZmBgCisgICAg
IiIiCisKKyAgICBlcnJvcnMgPSBbXQorICAgIGZvciBwYXRoc19mbiBpbiBhbGxfcGF0aHNfbGlu
dHM6CisgICAgICAgIGVycm9ycy5leHRlbmQocGF0aHNfZm4ocmVwb19yb290LCBwYXRocykpCisg
ICAgcmV0dXJuIGVycm9ycworCisKK2RlZiBjaGVja19maWxlX2NvbnRlbnRzKHJlcG9fcm9vdCwg
cGF0aCwgZik6CisgICAgIiIiCisgICAgUnVucyBsaW50cyB0aGF0IGNoZWNrIHRoZSBmaWxlIGNv
bnRlbnRzLgorCisgICAgOnBhcmFtIHJlcG9fcm9vdDogdGhlIHJlcG9zaXRvcnkgcm9vdAorICAg
IDpwYXJhbSBwYXRoOiB0aGUgcGF0aCBvZiB0aGUgZmlsZSB3aXRoaW4gdGhlIHJlcG9zaXRvcnkK
KyAgICA6cGFyYW0gZjogYSBmaWxlLWxpa2Ugb2JqZWN0IHdpdGggdGhlIGZpbGUgY29udGVudHMK
KyAgICA6cmV0dXJuczogYSBsaXN0IG9mIGVycm9ycyBmb3VuZCBpbiBgYGZgYAorICAgICIiIgor
CisgICAgZXJyb3JzID0gW10KKyAgICBmb3IgZmlsZV9mbiBpbiBmaWxlX2xpbnRzOgorICAgICAg
ICBlcnJvcnMuZXh0ZW5kKGZpbGVfZm4ocmVwb19yb290LCBwYXRoLCBmKSkKKyAgICAgICAgZi5z
ZWVrKDApCisgICAgcmV0dXJuIGVycm9ycworCisKK2RlZiBvdXRwdXRfZXJyb3JzX3RleHQoZXJy
b3JzKToKKyAgICBmb3IgZXJyb3JfdHlwZSwgZGVzY3JpcHRpb24sIHBhdGgsIGxpbmVfbnVtYmVy
IGluIGVycm9yczoKKyAgICAgICAgcG9zX3N0cmluZyA9IHBhdGgKKyAgICAgICAgaWYgbGluZV9u
dW1iZXI6CisgICAgICAgICAgICBwb3Nfc3RyaW5nICs9ICI6JXMiICUgbGluZV9udW1iZXIKKyAg
ICAgICAgbG9nZ2VyLmVycm9yKCIlczogJXMgKCVzKSIgJSAocG9zX3N0cmluZywgZGVzY3JpcHRp
b24sIGVycm9yX3R5cGUpKQorCisKK2RlZiBvdXRwdXRfZXJyb3JzX21hcmtkb3duKGVycm9ycyk6
CisgICAgaWYgbm90IGVycm9yczoKKyAgICAgICAgcmV0dXJuCisgICAgaGVhZGluZyA9ICIiIkdv
dCBsaW50IGVycm9yczoKKworfCBFcnJvciBUeXBlIHwgUG9zaXRpb24gfCBNZXNzYWdlIHwKK3wt
LS0tLS0tLS0tLS18LS0tLS0tLS0tLXwtLS0tLS0tLS18IiIiCisgICAgZm9yIGxpbmUgaW4gaGVh
ZGluZy5zcGxpdCgiXG4iKToKKyAgICAgICAgbG9nZ2VyLmVycm9yKGxpbmUpCisgICAgZm9yIGVy
cm9yX3R5cGUsIGRlc2NyaXB0aW9uLCBwYXRoLCBsaW5lX251bWJlciBpbiBlcnJvcnM6CisgICAg
ICAgIHBvc19zdHJpbmcgPSBwYXRoCisgICAgICAgIGlmIGxpbmVfbnVtYmVyOgorICAgICAgICAg
ICAgcG9zX3N0cmluZyArPSAiOiVzIiAlIGxpbmVfbnVtYmVyCisgICAgICAgIGxvZ2dlci5lcnJv
cigiJXMgfCAlcyB8ICVzIHwiICUgKGVycm9yX3R5cGUsIHBvc19zdHJpbmcsIGRlc2NyaXB0aW9u
KSkKKworCitkZWYgb3V0cHV0X2Vycm9yc19qc29uKGVycm9ycyk6CisgICAgZm9yIGVycm9yX3R5
cGUsIGVycm9yLCBwYXRoLCBsaW5lX251bWJlciBpbiBlcnJvcnM6CisgICAgICAgIHByaW50KGpz
b24uZHVtcHMoeyJwYXRoIjogcGF0aCwgImxpbmVubyI6IGxpbmVfbnVtYmVyLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAicnVsZSI6IGVycm9yX3R5cGUsICJtZXNzYWdlIjogZXJyb3J9KSkK
KworCitkZWYgb3V0cHV0X2Vycm9yX2NvdW50KGVycm9yX2NvdW50KToKKyAgICBpZiBub3QgZXJy
b3JfY291bnQ6CisgICAgICAgIHJldHVybgorCisgICAgYnlfdHlwZSA9ICIgIi5qb2luKCIlczog
JWQiICUgaXRlbSBmb3IgaXRlbSBpbiBlcnJvcl9jb3VudC5pdGVtcygpKQorICAgIGNvdW50ID0g
c3VtKGVycm9yX2NvdW50LnZhbHVlcygpKQorICAgIGxvZ2dlci5pbmZvKCIiKQorICAgIGlmIGNv
dW50ID09IDE6CisgICAgICAgIGxvZ2dlci5pbmZvKCJUaGVyZSB3YXMgMSBlcnJvciAoJXMpIiAl
IChieV90eXBlLCkpCisgICAgZWxzZToKKyAgICAgICAgbG9nZ2VyLmluZm8oIlRoZXJlIHdlcmUg
JWQgZXJyb3JzICglcykiICUgKGNvdW50LCBieV90eXBlKSkKKworCitkZWYgY2hhbmdlZF9maWxl
cyh3cHRfcm9vdCk6CisgICAgcmV2aXNoID0gdGVzdGZpbGVzLmdldF9yZXZpc2gocmV2aXNoPU5v
bmUpCisgICAgY2hhbmdlZCwgXyA9IHRlc3RmaWxlcy5maWxlc19jaGFuZ2VkKHJldmlzaCwgc2V0
KCksIGluY2x1ZGVfdW5jb21taXR0ZWQ9VHJ1ZSwgaW5jbHVkZV9uZXc9VHJ1ZSkKKyAgICByZXR1
cm4gW29zLnBhdGgucmVscGF0aChpdGVtLCB3cHRfcm9vdCkgZm9yIGl0ZW0gaW4gY2hhbmdlZF0K
KworCitkZWYgbGludF9wYXRocyhrd2FyZ3MsIHdwdF9yb290KToKKyAgICBpZiBrd2FyZ3MuZ2V0
KCJwYXRocyIpOgorICAgICAgICBwYXRocyA9IFtdCisgICAgICAgIGZvciBwYXRoIGluIGt3YXJn
cy5nZXQoInBhdGhzIik6CisgICAgICAgICAgICBpZiBvcy5wYXRoLmlzZGlyKHBhdGgpOgorICAg
ICAgICAgICAgICAgIHBhdGhfZGlyID0gbGlzdChhbGxfZmlsZXN5c3RlbV9wYXRocyh3cHRfcm9v
dCwgcGF0aCkpCisgICAgICAgICAgICAgICAgcGF0aHMuZXh0ZW5kKHBhdGhfZGlyKQorICAgICAg
ICAgICAgZWxpZiBvcy5wYXRoLmlzZmlsZShwYXRoKToKKyAgICAgICAgICAgICAgICBwYXRocy5h
cHBlbmQob3MucGF0aC5yZWxwYXRoKG9zLnBhdGguYWJzcGF0aChwYXRoKSwgd3B0X3Jvb3QpKQor
CisKKyAgICBlbGlmIGt3YXJnc1siYWxsIl06CisgICAgICAgIHBhdGhzID0gbGlzdChhbGxfZmls
ZXN5c3RlbV9wYXRocyh3cHRfcm9vdCkpCisgICAgZWxzZToKKyAgICAgICAgY2hhbmdlZF9wYXRo
cyA9IGNoYW5nZWRfZmlsZXMod3B0X3Jvb3QpCisgICAgICAgIGZvcmNlX2FsbCA9IEZhbHNlCisg
ICAgICAgIGZvciBwYXRoIGluIGNoYW5nZWRfcGF0aHM6CisgICAgICAgICAgICBwYXRoID0gcGF0
aC5yZXBsYWNlKG9zLnBhdGguc2VwLCAiLyIpCisgICAgICAgICAgICBpZiBwYXRoID09ICJsaW50
LndoaXRlbGlzdCIgb3IgcGF0aC5zdGFydHN3aXRoKCJ0b29scy9saW50LyIpOgorICAgICAgICAg
ICAgICAgIGZvcmNlX2FsbCA9IFRydWUKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICBw
YXRocyA9IChsaXN0KGNoYW5nZWRfcGF0aHMpIGlmIG5vdCBmb3JjZV9hbGwKKyAgICAgICAgICAg
ICAgICAgZWxzZSBsaXN0KGFsbF9maWxlc3lzdGVtX3BhdGhzKHdwdF9yb290KSkpCisKKyAgICBy
ZXR1cm4gcGF0aHMKKworCitkZWYgY3JlYXRlX3BhcnNlcigpOgorICAgIHBhcnNlciA9IGFyZ3Bh
cnNlLkFyZ3VtZW50UGFyc2VyKCkKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCJwYXRocyIsIG5h
cmdzPSIqIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9Ikxpc3Qgb2YgcGF0aHMgdG8g
bGludCIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1qc29uIiwgYWN0aW9uPSJzdG9yZV90
cnVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9Ik91dHB1dCBtYWNoaW5lLXJlYWRh
YmxlIEpTT04gZm9ybWF0IikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLW1hcmtkb3duIiwg
YWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9Ik91dHB1
dCBtYXJrZG93biIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1jc3MtbW9kZSIsIGFjdGlv
bj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJSdW4gQ1NTIHRl
c3RzdWl0ZSBzcGVjaWZpYyBsaW50cyIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1yZXBv
LXJvb3QiLCBoZWxwPSJUaGUgV1BUIGRpcmVjdG9yeS4gVXNlIHRoaXMiCisgICAgICAgICAgICAg
ICAgICAgICAgICAib3B0aW9uIGlmIHRoZSBsaW50IHNjcmlwdCBleGlzdHMgb3V0c2lkZSB0aGUg
cmVwb3NpdG9yeSIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1hbGwiLCBhY3Rpb249InN0
b3JlX3RydWUiLCBoZWxwPSJJZiBubyBwYXRocyBhcmUgcGFzc2VkLCB0cnkgdG8gbGludCB0aGUg
d2hvbGUgIgorICAgICAgICAgICAgICAgICAgICAgICAgIndvcmtpbmcgZGlyZWN0b3J5LCBub3Qg
anVzdCBmaWxlcyB0aGF0IGNoYW5nZWQiKQorICAgIHJldHVybiBwYXJzZXIKKworCitkZWYgbWFp
bigqKmt3YXJncyk6CisgICAgaWYga3dhcmdzLmdldCgianNvbiIpIGFuZCBrd2FyZ3MuZ2V0KCJt
YXJrZG93biIpOgorICAgICAgICBsb2dnZXIuY3JpdGljYWwoIkNhbm5vdCBzcGVjaWZ5IC0tanNv
biBhbmQgLS1tYXJrZG93biIpCisgICAgICAgIHN5cy5leGl0KDIpCisKKyAgICByZXBvX3Jvb3Qg
PSBrd2FyZ3MuZ2V0KCdyZXBvX3Jvb3QnKSBvciBsb2NhbHBhdGhzLnJlcG9fcm9vdAorICAgIG91
dHB1dF9mb3JtYXQgPSB7KFRydWUsIEZhbHNlKTogImpzb24iLAorICAgICAgICAgICAgICAgICAg
ICAgKEZhbHNlLCBUcnVlKTogIm1hcmtkb3duIiwKKyAgICAgICAgICAgICAgICAgICAgIChGYWxz
ZSwgRmFsc2UpOiAibm9ybWFsIn1bKGt3YXJncy5nZXQoImpzb24iLCBGYWxzZSksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3MuZ2V0KCJtYXJr
ZG93biIsIEZhbHNlKSldCisKKyAgICBpZiBvdXRwdXRfZm9ybWF0ID09ICJtYXJrZG93biI6Cisg
ICAgICAgIHNldHVwX2xvZ2dpbmcoVHJ1ZSkKKworICAgIHBhdGhzID0gbGludF9wYXRocyhrd2Fy
Z3MsIHJlcG9fcm9vdCkKKworICAgIHJldHVybiBsaW50KHJlcG9fcm9vdCwgcGF0aHMsIG91dHB1
dF9mb3JtYXQpCisKKworZGVmIGxpbnQocmVwb19yb290LCBwYXRocywgb3V0cHV0X2Zvcm1hdCk6
CisgICAgZXJyb3JfY291bnQgPSBkZWZhdWx0ZGljdChpbnQpCisgICAgbGFzdCA9IE5vbmUKKwor
ICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4ocmVwb19yb290LCAibGludC53aGl0ZWxpc3QiKSkg
YXMgZjoKKyAgICAgICAgd2hpdGVsaXN0LCBpZ25vcmVkX2ZpbGVzID0gcGFyc2Vfd2hpdGVsaXN0
KGYpCisKKyAgICBvdXRwdXRfZXJyb3JzID0geyJqc29uIjogb3V0cHV0X2Vycm9yc19qc29uLAor
ICAgICAgICAgICAgICAgICAgICAgIm1hcmtkb3duIjogb3V0cHV0X2Vycm9yc19tYXJrZG93biwK
KyAgICAgICAgICAgICAgICAgICAgICJub3JtYWwiOiBvdXRwdXRfZXJyb3JzX3RleHR9W291dHB1
dF9mb3JtYXRdCisKKyAgICBkZWYgcHJvY2Vzc19lcnJvcnMoZXJyb3JzKToKKyAgICAgICAgIiIi
CisgICAgICAgIEZpbHRlcnMgYW5kIHByaW50cyB0aGUgZXJyb3JzLCBhbmQgdXBkYXRlcyB0aGUg
YGBlcnJvcl9jb3VudGBgIG9iamVjdC4KKworICAgICAgICA6cGFyYW0gZXJyb3JzOiBhIGxpc3Qg
b2YgZXJyb3IgdHVwbGVzIChlcnJvciB0eXBlLCBtZXNzYWdlLCBwYXRoLCBsaW5lIG51bWJlcikK
KyAgICAgICAgOnJldHVybnM6IGBgTm9uZWBgIGlmIHRoZXJlIHdlcmUgbm8gZXJyb3JzLCBvcgor
ICAgICAgICAgICAgICAgICAgYSB0dXBsZSBvZiB0aGUgZXJyb3IgdHlwZSBhbmQgdGhlIHBhdGgg
b3RoZXJ3aXNlCisgICAgICAgICIiIgorCisgICAgICAgIGVycm9ycyA9IGZpbHRlcl93aGl0ZWxp
c3RfZXJyb3JzKHdoaXRlbGlzdCwgZXJyb3JzKQorCisgICAgICAgIGlmIG5vdCBlcnJvcnM6Cisg
ICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIG91dHB1dF9lcnJvcnMoZXJyb3JzKQor
ICAgICAgICBmb3IgZXJyb3JfdHlwZSwgZXJyb3IsIHBhdGgsIGxpbmUgaW4gZXJyb3JzOgorICAg
ICAgICAgICAgZXJyb3JfY291bnRbZXJyb3JfdHlwZV0gKz0gMQorCisgICAgICAgIHJldHVybiAo
ZXJyb3JzWy0xXVswXSwgcGF0aCkKKworICAgIGZvciBwYXRoIGluIHBhdGhzWzpdOgorICAgICAg
ICBhYnNfcGF0aCA9IG9zLnBhdGguam9pbihyZXBvX3Jvb3QsIHBhdGgpCisgICAgICAgIGlmIG5v
dCBvcy5wYXRoLmV4aXN0cyhhYnNfcGF0aCk6CisgICAgICAgICAgICBwYXRocy5yZW1vdmUocGF0
aCkKKyAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgaWYgYW55KGZubWF0Y2guZm5tYXRj
aChwYXRoLCBmaWxlX21hdGNoKSBmb3IgZmlsZV9tYXRjaCBpbiBpZ25vcmVkX2ZpbGVzKToKKyAg
ICAgICAgICAgIHBhdGhzLnJlbW92ZShwYXRoKQorICAgICAgICAgICAgY29udGludWUKKworICAg
ICAgICBlcnJvcnMgPSBjaGVja19wYXRoKHJlcG9fcm9vdCwgcGF0aCkKKyAgICAgICAgbGFzdCA9
IHByb2Nlc3NfZXJyb3JzKGVycm9ycykgb3IgbGFzdAorCisgICAgICAgIGlmIG5vdCBvcy5wYXRo
LmlzZGlyKGFic19wYXRoKToKKyAgICAgICAgICAgIHdpdGggb3BlbihhYnNfcGF0aCwgJ3JiJykg
YXMgZjoKKyAgICAgICAgICAgICAgICBlcnJvcnMgPSBjaGVja19maWxlX2NvbnRlbnRzKHJlcG9f
cm9vdCwgcGF0aCwgZikKKyAgICAgICAgICAgICAgICBsYXN0ID0gcHJvY2Vzc19lcnJvcnMoZXJy
b3JzKSBvciBsYXN0CisKKyAgICBlcnJvcnMgPSBjaGVja19hbGxfcGF0aHMocmVwb19yb290LCBw
YXRocykKKyAgICBsYXN0ID0gcHJvY2Vzc19lcnJvcnMoZXJyb3JzKSBvciBsYXN0CisKKyAgICBp
ZiBvdXRwdXRfZm9ybWF0IGluICgibm9ybWFsIiwgIm1hcmtkb3duIik6CisgICAgICAgIG91dHB1
dF9lcnJvcl9jb3VudChlcnJvcl9jb3VudCkKKyAgICAgICAgaWYgZXJyb3JfY291bnQ6CisgICAg
ICAgICAgICBmb3IgbGluZSBpbiAoRVJST1JfTVNHICUgKGxhc3RbMF0sIGxhc3RbMV0sIGxhc3Rb
MF0sIGxhc3RbMV0pKS5zcGxpdCgiXG4iKToKKyAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbyhs
aW5lKQorICAgIHJldHVybiBzdW0oaXRlcnZhbHVlcyhlcnJvcl9jb3VudCkpCisKK3BhdGhfbGlu
dHMgPSBbY2hlY2tfcGF0aF9sZW5ndGgsIGNoZWNrX3dvcmtlcl9jb2xsaXNpb24sIGNoZWNrX2Fo
ZW1fY29weV0KK2FsbF9wYXRoc19saW50cyA9IFtjaGVja19jc3NfZ2xvYmFsbHlfdW5pcXVlXQor
ZmlsZV9saW50cyA9IFtjaGVja19yZWdleHBfbGluZSwgY2hlY2tfcGFyc2VkLCBjaGVja19weXRo
b25fYXN0LCBjaGVja19zY3JpcHRfbWV0YWRhdGFdCisKKyMgRG9uJ3QgYnJlYWsgdXNlcnMgb2Yg
dGhlIGxpbnQgdGhhdCBkb24ndCBoYXZlIGdpdCBpbnN0YWxsZWQuCit0cnk6CisgICAgc3VicHJv
Y2Vzcy5jaGVja19vdXRwdXQoWyJnaXQiLCAiLS12ZXJzaW9uIl0pCisgICAgYWxsX3BhdGhzX2xp
bnRzICs9IFtjaGVja19naXRfaWdub3JlXQorZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vz
c0Vycm9yOgorICAgIHByaW50KCdObyBnaXQgcHJlc2VudDsgc2tpcHBpbmcgLmdpdGlnbm9yZSBs
aW50LicpCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgYXJncyA9IGNyZWF0ZV9w
YXJzZXIoKS5wYXJzZV9hcmdzKCkKKyAgICBlcnJvcl9jb3VudCA9IG1haW4oKip2YXJzKGFyZ3Mp
KQorICAgIGlmIGVycm9yX2NvdW50ID4gMDoKKyAgICAgICAgc3lzLmV4aXQoMSkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGlu
dC90ZXN0cy9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjgzNGI4
Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3Rz
L19faW5pdF9fLnB5CkBAIC0wLDAgKzEgQEAKKyMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQ
eXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9iYXNlLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2Jhc2UucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzYwZjEzY2UyOTM1YTNlNTkxZGI4YjQ3MjAwN2EyNzAxMGM4YTgxNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvbGludC90ZXN0cy9iYXNlLnB5CkBAIC0wLDAgKzEsMTEgQEAKK2Zyb20gX19mdXR1cmVf
XyBpbXBvcnQgdW5pY29kZV9saXRlcmFscworCitmcm9tIHNpeCBpbXBvcnQgaW50ZWdlcl90eXBl
cywgdGV4dF90eXBlCisKK2RlZiBjaGVja19lcnJvcnMoZXJyb3JzKToKKyAgICBmb3IgZSBpbiBl
cnJvcnM6CisgICAgICAgIGVycm9yX3R5cGUsIGRlc2NyaXB0aW9uLCBwYXRoLCBsaW5lX251bWJl
ciA9IGUKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZXJyb3JfdHlwZSwgdGV4dF90eXBlKQor
ICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShkZXNjcmlwdGlvbiwgdGV4dF90eXBlKQorICAgICAg
ICBhc3NlcnQgaXNpbnN0YW5jZShwYXRoLCB0ZXh0X3R5cGUpCisgICAgICAgIGFzc2VydCBsaW5l
X251bWJlciBpcyBOb25lIG9yIGlzaW5zdGFuY2UobGluZV9udW1iZXIsIGludGVnZXJfdHlwZXMp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvYnJva2VuLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvYnJva2VuLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzQ3OTNjNDNjYWYwMTY1MWU1MTU1ZDc5OTNkOTlmOWI1ZmQ5Mjg4Ygot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9icm9rZW4uaHRtbApAQCAtMCwwICsxIEBACitU
SElTIExJTkUgSEFTIFRSQUlMSU5HIFdISVRFU1BBQ0UgICAgCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVt
bXkvYnJva2VuX2lnbm9yZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9icm9rZW5faWdub3JlZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjc0NzkzYzQzY2FmMDE2NTFlNTE1NWQ3OTkzZDk5ZjliNWZkOTI4OGIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvYnJva2VuX2lnbm9yZWQuaHRtbApAQCAtMCwwICsxIEBA
CitUSElTIExJTkUgSEFTIFRSQUlMSU5HIFdISVRFU1BBQ0UgICAgCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMv
ZHVtbXkvY3NzL2Nzcy11bmlxdWUvYS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3Mt
dW5pcXVlL2EtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDA0OTFmZDdlNWJiNmZhMjhjNTE3
YTBiYjMyYjhiNTA2NTM5ZDRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3Mt
dW5pcXVlL2EtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxIEBACisxCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMv
ZHVtbXkvY3NzL2Nzcy11bmlxdWUvYS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL2Eu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43M2M1ZDBiYzM3M2Y1YjFmYzJlZTQ1YjI5ODVjMzNhODhjODQ0MjMy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL2EuaHRtbApAQCAt
MCwwICsxLDQgQEAKKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly93d3cudzMub3JnL1RS
L0NTUzIxL2F1cmFsLmh0bWwjcHJvcGRlZi1zdHJlc3MiPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nz
cy9jc3MtdW5pcXVlL21hdGNoL2EtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVu
aXF1ZS9tYXRjaC9hLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDAwNDkxZmQ3ZTViYjZmYTI4
YzUxN2EwYmIzMmI4YjUwNjUzOWQ0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3Mv
Y3NzLXVuaXF1ZS9tYXRjaC9hLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSBAQAorMQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9s
aW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL2EuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9j
c3MvY3NzLXVuaXF1ZS9tYXRjaC9hLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzNjNWQwYmMzNzNmNWIxZmMy
ZWU0NWIyOTg1YzMzYTg4Yzg0NDIzMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3Mv
Y3NzLXVuaXF1ZS9tYXRjaC9hLmh0bWwKQEAgLTAsMCArMSw0IEBACis8bGluayByZWw9ImhlbHAi
IGhyZWY9Imh0dHBzOi8vd3d3LnczLm9yZy9UUi9DU1MyMS9hdXJhbC5odG1sI3Byb3BkZWYtc3Ry
ZXNzIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRjaC9zdXBwb3J0L2Eu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRjaC9zdXBwb3J0L2EuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kMDA0OTFmZDdlNWJiNmZhMjhjNTE3YTBiYjMyYjhiNTA2NTM5ZDRkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL3N1cHBvcnQvYS5odG1s
CkBAIC0wLDAgKzEgQEAKKzEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9t
YXRjaC9zdXBwb3J0L3Rvb2xzL2EuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRj
aC9zdXBwb3J0L3Rvb2xzL2EuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2ZiZjA4ODg2ZmNhOWE5MWNiNzUz
ZWM4NzM0Yzg0ZmNiZTUyYzlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3Mt
dW5pcXVlL21hdGNoL3N1cHBvcnQvdG9vbHMvYS5odG1sCkBAIC0wLDAgKzEgQEAKKzIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRjaC9zdXBwb3J0L3Rvb2xzL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL3N1cHBvcnQvdG9vbHMv
dzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWEyNTBhMWNiY2RjMGZjZWM2MTQxNzQ4OTdhMDQ3
ZThmZjMwODMyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9t
YXRjaC9zdXBwb3J0L3Rvb2xzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTcgQEAKK1RoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9n
aXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVz
OgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGlu
dC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRjaC9zdXBwb3J0L3Rvb2xzL2EuaHRtbApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL3N1cHBvcnQvdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gvc3VwcG9ydC93M2MtaW1w
b3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iOGRhNDE3NTE1MzY4NWM1OTgwMWU3NDQ1MWFiMzY4MTI0OTVi
ZThhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL3N1
cHBvcnQvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15
L2Nzcy9jc3MtdW5pcXVlL21hdGNoL3N1cHBvcnQvYS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVt
bXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gvdG9vbHMvYS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3Mt
dW5pcXVlL21hdGNoL3Rvb2xzL2EuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDA0OTFmZDdlNWJiNmZhMjhj
NTE3YTBiYjMyYjhiNTA2NTM5ZDRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9j
c3MtdW5pcXVlL21hdGNoL3Rvb2xzL2EuaHRtbApAQCAtMCwwICsxIEBACisxCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQv
dGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gvdG9vbHMvdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVz
dHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gvdG9vbHMvdzNjLWltcG9ydC5sb2cKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODZjNjBmZTRiOTk0NTM1ZTdmZTc3MzMzNGUzMmM5YmU1MWU1YTY1YQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRjaC90b29scy93M2MtaW1wb3J0
LmxvZwpAQCAtMCwwICsxLDE3IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBp
bXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVz
dHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9u
IHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2Vi
S2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKwor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitO
b25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUv
bWF0Y2gvdG9vbHMvYS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUv
bWF0Y2gvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gvdzNj
LWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjQ5YjQ1ODA1M2FiOWI3ZjU5YmZmNGM0MDRjM2VhMzgz
MTFjOWY1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRj
aC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3Nz
L2Nzcy11bmlxdWUvbWF0Y2gvYS1leHBlY3RlZC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5p
cXVlL21hdGNoL2EuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL25v
dC1tYXRjaC9hLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90LW1h
dGNoL2EtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2ZiZjA4ODg2ZmNhOWE5MWNiNzUzZWM4
NzM0Yzg0ZmNiZTUyYzlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5p
cXVlL25vdC1tYXRjaC9hLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSBAQAorMgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50
L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC9hLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkv
Y3NzL2Nzcy11bmlxdWUvbm90LW1hdGNoL2EuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YjBjZTM4M2EyNWNj
NDNmNjM1NTU0ODE4NmY5MjI1ZDc5YzdiNDUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15
L2Nzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC9hLmh0bWwKQEAgLTAsMCArMSw0IEBACis8bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vd3d3LnczLm9yZy9UUi9DU1MyMS9hdXJhbC5odG1sI3By
b3BkZWYtc3RyZXNzIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9ub3QtbWF0
Y2gvc3VwcG9ydC9hLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90LW1hdGNoL3N1
cHBvcnQvYS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjZmJmMDg4ODZmY2E5YTkxY2I3NTNlYzg3MzRjODRm
Y2JlNTJjOWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90
LW1hdGNoL3N1cHBvcnQvYS5odG1sCkBAIC0wLDAgKzEgQEAKKzIKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9k
dW1teS9jc3MvY3NzLXVuaXF1ZS9ub3QtbWF0Y2gvc3VwcG9ydC93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0
cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9ub3QtbWF0Y2gvc3VwcG9ydC93M2MtaW1wb3J0LmxvZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44OTQ3OTEwNzNmYWIwNTdlZjQ0NzJiYjVlODJmNWE1Y2RhNGJmMjMyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC9zdXBwb3J0
L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTcgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3Mv
Y3NzLXVuaXF1ZS9ub3QtbWF0Y2gvc3VwcG9ydC9hLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1t
eS9jc3MvY3NzLXVuaXF1ZS9ub3QtbWF0Y2gvdG9vbHMvYS5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9j
c3MtdW5pcXVlL25vdC1tYXRjaC90b29scy9hLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGNmYmYwODg4NmZj
YTlhOTFjYjc1M2VjODczNGM4NGZjYmU1MmM5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1t
eS9jc3MvY3NzLXVuaXF1ZS9ub3QtbWF0Y2gvdG9vbHMvYS5odG1sCkBAIC0wLDAgKzEgQEAKKzIK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9ub3QtbWF0Y2gvdG9vbHMvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90LW1hdGNoL3Rvb2xzL3cz
Yy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExYzZmODI3YmRjMDA4OTg5ZjA5MTQzM2I1MzE3YTU3
ZjA0OTc1MWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90
LW1hdGNoL3Rvb2xzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTcgQEAKK1RoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgor
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIu
Y29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0
cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9ub3QtbWF0Y2gvdG9vbHMvYS5odG1sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQv
dGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90LW1hdGNoL3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3Rz
L2R1bW15L2Nzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40YWE5ZTZlMTdjYTgyYTlhZTBkNjFhZTE0NjM3NzcwM2E0YzIxNjY3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9s
aW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC93M2MtaW1wb3J0LmxvZwpA
QCAtMCwwICsxLDE4IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
UFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisK
K1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRv
IHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQ
cm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90LW1h
dGNoL2EtZXhwZWN0ZWQuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9ub3QtbWF0Y2gv
YS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvc2VsZWN0b3JzL2Eu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9zZWxlY3RvcnMvYS5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBkNjNjNmJmZWRkMTM4Njg4M2ZhOGZhZTMyNDIzOTUzMDVhMWMyY2QKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvc2VsZWN0b3JzL2EuaHRtbApAQCAtMCww
ICsxLDQgQEAKKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3Jn
L3NlbGVjdG9ycy0zLyN0eXBlLXNlbGVjdG9ycyI+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nz
cy11bmlxdWUvc2VsZWN0b3JzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5p
cXVlL3NlbGVjdG9ycy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNWRmMDRkMWIzZTJiNmNk
MzllZWRhYjg3ZGQ0MjUxODM1YWNmN2E4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nz
cy9jc3MtdW5pcXVlL3NlbGVjdG9ycy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE3IEBACitU
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgor
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBz
Oi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBm
aWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvc2VsZWN0b3JzL2EuaHRtbApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9s
aW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3N1cHBvcnQvYS5odG1sIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15
L2Nzcy9jc3MtdW5pcXVlL3N1cHBvcnQvYS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwMDQ5MWZkN2U1YmI2
ZmEyOGM1MTdhMGJiMzJiOGI1MDY1MzlkNGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkv
Y3NzL2Nzcy11bmlxdWUvc3VwcG9ydC9hLmh0bWwKQEAgLTAsMCArMSBAQAorMQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50
L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3N1cHBvcnQvdG9vbHMvYS5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1
bW15L2Nzcy9jc3MtdW5pcXVlL3N1cHBvcnQvdG9vbHMvYS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjZmJm
MDg4ODZmY2E5YTkxY2I3NTNlYzg3MzRjODRmY2JlNTJjOWYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVz
dHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvc3VwcG9ydC90b29scy9hLmh0bWwKQEAgLTAsMCArMSBA
QAorMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3N1cHBvcnQvdG9vbHMv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvc3VwcG9ydC90b29scy93
M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZGI3OGI5MGZmYTcyYTIxNzYzYzBmZDU0Mjg4N2I1
ZTM4NTBhYjA0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3N1
cHBvcnQvdG9vbHMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAorVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitE
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5j
b20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3Rz
L2R1bW15L2Nzcy9jc3MtdW5pcXVlL3N1cHBvcnQvdG9vbHMvYS5odG1sCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVz
dHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvc3VwcG9ydC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1t
eS9jc3MvY3NzLXVuaXF1ZS9zdXBwb3J0L3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4MTg0
YjViZjVlOTIxY2VmZmJmOGRmNzBjZDBhMzUxMjNlYTc3ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVz
dHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvc3VwcG9ydC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsx
LDE3IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
TGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvc3VwcG9ydC9hLmh0bWwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS90b29scy9hLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMv
ZHVtbXkvY3NzL2Nzcy11bmlxdWUvdG9vbHMvYS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwMDQ5MWZkN2U1
YmI2ZmEyOGM1MTdhMGJiMzJiOGI1MDY1MzlkNGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVt
bXkvY3NzL2Nzcy11bmlxdWUvdG9vbHMvYS5odG1sCkBAIC0wLDAgKzEgQEAKKzEKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGlu
dC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS90b29scy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9k
dW1teS9jc3MvY3NzLXVuaXF1ZS90b29scy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTky
MDJiMDhkY2YzZmFmOTE3NDc1OWJiNjk5MTNmNTA2ZmY2NjlhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rl
c3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3Rvb2xzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEs
MTcgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
KworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitM
aXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS90b29scy9hLmh0bWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9k
dW1teS9jc3MvY3NzLXVuaXF1ZS93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NWQwZmM5YTk4
YTdhYmY3OGJjMTZlMzEwNWViZjdjNWU2NTRlMGI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1
bW15L2Nzcy9jc3MtdW5pcXVlL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTggQEAKK1RoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9n
aXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVz
OgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGlu
dC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9hLWV4cGVjdGVkLmh0bWwKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkv
Y3NzL2Nzcy11bmlxdWUvYS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvZGVwZW5kZW5jeS5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9s
aW50L3Rlc3RzL2R1bW15L2RlcGVuZGVuY3kuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTI5NmY0YzU4NzZm
YzhjNGNkMDUyNTQ4NjE2MDA1YzFlNDZmMGU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15
L2RlcGVuZGVuY3kuaHRtbApAQCAtMCwwICsxIEBACitUaGlzIGZpbGUgaXMgdXNlZCB0byBkZW1v
bnN0cmF0ZSBhY2NlcHRhbmNlIG9mIHJvb3QtcmVsYXRpdmUgcmVmdGVzdCByZWZlcmVuY2VzLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9saW50L3Rlc3RzL2R1bW15L2xpbnQud2hpdGVsaXN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2xpbnQud2hp
dGVsaXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE3NjNlNDQzMmU1YWZhMjEyMzAzNTM0NWUxMzBkMDE4NzEwZmZk
ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvbGludC53aGl0ZWxpc3QKQEAgLTAsMCAr
MSBAQAorKjpicm9rZW5faWdub3JlZC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvb2theS5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9s
aW50L3Rlc3RzL2R1bW15L29rYXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMzE3OGEzYzgzYTM4MzVjNzFi
YzA3NjhjMGMxZWE3YmQzZmY3MjI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L29rYXku
aHRtbApAQCAtMCwwICsxIEBACitUSElTIExJTkUgSEFTIE5PIFRSQUlMSU5HIFdISVRFU1BBQ0UK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvbGludC90ZXN0cy9kdW1teS9yZWYvYWJvdXRfYmxhbmstcmVmLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVt
bXkvcmVmL2Fib3V0X2JsYW5rLXJlZi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmOTQwYjU0MGY5YmQzODI5
MmVmZTdkZjhiZDk3YmRhZjM4NjNhZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVm
L2Fib3V0X2JsYW5rLXJlZi5odG1sCkBAIC0wLDAgKzEgQEAKKzxsaW5rIHJlbD0ibWF0Y2giIGhy
ZWY9YWJvdXQ6Ymxhbms+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVmL2Fic29sdXRlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQv
dGVzdHMvZHVtbXkvcmVmL2Fic29sdXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGI0N2JjODgzNjcxYmQz
MDgxMzU5N2MzYWViYTkyMjk5M2IzNjUzYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9y
ZWYvYWJzb2x1dGUuaHRtbApAQCAtMCwwICsxIEBACis8bGluayByZWw9Im1hdGNoIiBocmVmPSJo
dHRwOi8vZXhhbXBsZS5jb20vcmVmZXJlbmNlLmh0bWwiPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15
L3JlZi9leGlzdGVudF9yZWxhdGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9leGlzdGVudF9yZWxh
dGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5MzY0ZWU1ZmIxMWM2OWVhN2QwN2Q0NGYxNzc2MDkwZDhj
NmU4MmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVmL2V4aXN0ZW50X3JlbGF0aXZl
Lmh0bWwKQEAgLTAsMCArMSBAQAorPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0iZXhpc3RlbnRfcmVs
YXRpdmUtcmVmLmh0bWwiPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9leGlzdGVudF9yb290
X3JlbGF0aXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVmL2V4aXN0ZW50X3Jvb3RfcmVsYXRpdmUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yYmVkYzJkMzA5YmFhNzVmNGI2ODI3MTcyMWUxMmQ4MTQ1NWE0YTYyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9leGlzdGVudF9yb290X3JlbGF0aXZlLmh0
bWwKQEAgLTAsMCArMSBAQAorPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0iL2RlcGVuZGVuY3kuaHRt
bCI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVmL25vbl9leGlzdGVudF9yZWxhdGl2ZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50
L3Rlc3RzL2R1bW15L3JlZi9ub25fZXhpc3RlbnRfcmVsYXRpdmUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
MDlhMWQ1ZWIwMTE5OWQ0NzA2MzY4OGYzZWUyM2ZhZDM0NjYzNmIwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50
L3Rlc3RzL2R1bW15L3JlZi9ub25fZXhpc3RlbnRfcmVsYXRpdmUuaHRtbApAQCAtMCwwICsxIEBA
Cis8bGluayByZWw9Im1hdGNoIiBocmVmPSJub25fZXhpc3RlbnRfZmlsZS5odG1sIj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bGludC90ZXN0cy9kdW1teS9yZWYvbm9uX2V4aXN0ZW50X3Jvb3RfcmVsYXRpdmUuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0
cy9kdW1teS9yZWYvbm9uX2V4aXN0ZW50X3Jvb3RfcmVsYXRpdmUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
MTgxMjAxM2FhMDlhNjZmYjAxOTVjZWZhNmM0ZjhjZTBhNGM5MDYxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50
L3Rlc3RzL2R1bW15L3JlZi9ub25fZXhpc3RlbnRfcm9vdF9yZWxhdGl2ZS5odG1sCkBAIC0wLDAg
KzEgQEAKKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9Ii9ub25fZXhpc3RlbnRfZmlsZS5odG1sIj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvbGludC90ZXN0cy9kdW1teS9yZWYvc2FtZV9maWxlX2VtcHR5Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVt
bXkvcmVmL3NhbWVfZmlsZV9lbXB0eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVhYTE4ZTljMDEwODZmODhm
YmFhNmM5YjA1ZGQ2ZTI2YzRkNmFiNDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVm
L3NhbWVfZmlsZV9lbXB0eS5odG1sCkBAIC0wLDAgKzEgQEAKKzxsaW5rIHJlbD0ibWF0Y2giIGhy
ZWY9IiI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVmL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1
bW15L3JlZi93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYjgzZDliN2UwOGZmMzdjYjRkNWE3
MmFiOWUyYjkyZjQzNTI5NmZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi93M2Mt
aW1wb3J0LmxvZwpAQCAtMCwwICsxLDI0IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVmL2Fib3V0
X2JsYW5rLXJlZi5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9hYnNvbHV0ZS5odG1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15
L3JlZi9leGlzdGVudF9yZWxhdGl2ZS1leHBlY3RlZC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9leGlz
dGVudF9yZWxhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9leGlzdGVudF9yb290X3JlbGF0aXZl
Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2xpbnQvdGVzdHMvZHVtbXkvcmVmL25vbl9leGlzdGVudF9yZWxhdGl2ZS5odG1sCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1
bW15L3JlZi9ub25fZXhpc3RlbnRfcm9vdF9yZWxhdGl2ZS5odG1sCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9z
YW1lX2ZpbGVfZW1wdHkuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50
L3Rlc3RzL2R1bW15L3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRiZGUyYWNhY2M3NjdiNDk4
ODE1Mjk5MDdhMWNmODBjN2Q2ZWJjODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvdzNj
LWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitO
b25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Jyb2tlbi5o
dG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9s
aW50L3Rlc3RzL2R1bW15L2Jyb2tlbl9pZ25vcmVkLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvZGVwZW5kZW5j
eS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9saW50L3Rlc3RzL2R1bW15L2xpbnQud2hpdGVsaXN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L29rYXkuaHRtbApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9saW50L3Rlc3RzL3Rlc3RfZmlsZV9saW50cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy90ZXN0X2ZpbGVfbGludHMu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjRmYjIyMWI3YTU4NzBmMDA3NWJkNTUwZWY3NGI0MmJkN2ZlZWE3NQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbGludC90ZXN0cy90ZXN0X2ZpbGVfbGludHMucHkKQEAgLTAsMCArMSw1OTgg
QEAKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFscworCitmcm9tIC4ubGlu
dCBpbXBvcnQgY2hlY2tfZmlsZV9jb250ZW50cworZnJvbSAuYmFzZSBpbXBvcnQgY2hlY2tfZXJy
b3JzCitpbXBvcnQgb3MKK2ltcG9ydCBweXRlc3QKK2ltcG9ydCBzaXgKKworSU5URVJFU1RJTkdf
RklMRV9OQU1FUyA9IHsKKyAgICAicHl0aG9uIjogWworICAgICAgICAidGVzdC5weSIsCisgICAg
XSwKKyAgICAianMiOiBbCisgICAgICAgICJ0ZXN0LmpzIiwKKyAgICBdLAorICAgICJ3ZWItbGF4
IjogWworICAgICAgICAidGVzdC5odG0iLAorICAgICAgICAidGVzdC5odG1sIiwKKyAgICBdLAor
ICAgICJ3ZWItc3RyaWN0IjogWworICAgICAgICAidGVzdC5zdmciLAorICAgICAgICAidGVzdC54
aHQiLAorICAgICAgICAidGVzdC54aHRtbCIsCisgICAgXSwKK30KKworZGVmIGNoZWNrX3dpdGhf
ZmlsZXMoaW5wdXRfYnl0ZXMpOgorICAgIHJldHVybiB7CisgICAgICAgIGZpbGVuYW1lOiAoY2hl
Y2tfZmlsZV9jb250ZW50cygiIiwgZmlsZW5hbWUsIHNpeC5CeXRlc0lPKGlucHV0X2J5dGVzKSks
IGtpbmQpCisgICAgICAgIGZvciAoZmlsZW5hbWUsIGtpbmQpIGluCisgICAgICAgICgKKyAgICAg
ICAgICAgIChvcy5wYXRoLmpvaW4oImh0bWwiLCBmaWxlbmFtZSksIGtpbmQpCisgICAgICAgICAg
ICBmb3IgKGtpbmQsIGZpbGVuYW1lcykgaW4gSU5URVJFU1RJTkdfRklMRV9OQU1FUy5pdGVtcygp
CisgICAgICAgICAgICBmb3IgZmlsZW5hbWUgaW4gZmlsZW5hbWVzCisgICAgICAgICkKKyAgICB9
CisKKworZGVmIHRlc3RfdHJhaWxpbmdfd2hpdGVzcGFjZSgpOgorICAgIGVycm9yX21hcCA9IGNo
ZWNrX3dpdGhfZmlsZXMoYiJ0ZXN0OyAiKQorCisgICAgZm9yIChmaWxlbmFtZSwgKGVycm9ycywg
a2luZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgorICAgICAgICBjaGVja19lcnJvcnMoZXJyb3Jz
KQorCisgICAgICAgIGV4cGVjdGVkID0gWygiVFJBSUxJTkcgV0hJVEVTUEFDRSIsICJXaGl0ZXNw
YWNlIGF0IEVPTCIsIGZpbGVuYW1lLCAxKV0KKyAgICAgICAgaWYga2luZCA9PSAid2ViLXN0cmlj
dCI6CisgICAgICAgICAgICBleHBlY3RlZC5hcHBlbmQoKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxl
IHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgTm9uZSkpCisgICAgICAgIGFzc2VydCBlcnJvcnMg
PT0gZXhwZWN0ZWQKKworCitkZWYgdGVzdF9pbmRlbnRfdGFicygpOgorICAgIGVycm9yX21hcCA9
IGNoZWNrX3dpdGhfZmlsZXMoYiJkZWYgZm9vKCk6XG5ceDA5cGFzcyIpCisKKyAgICBmb3IgKGZp
bGVuYW1lLCAoZXJyb3JzLCBraW5kKSkgaW4gZXJyb3JfbWFwLml0ZW1zKCk6CisgICAgICAgIGNo
ZWNrX2Vycm9ycyhlcnJvcnMpCisKKyAgICAgICAgZXhwZWN0ZWQgPSBbKCJJTkRFTlQgVEFCUyIs
ICJUYWJzIHVzZWQgZm9yIGluZGVudGF0aW9uIiwgZmlsZW5hbWUsIDIpXQorICAgICAgICBpZiBr
aW5kID09ICJ3ZWItc3RyaWN0IjoKKyAgICAgICAgICAgIGV4cGVjdGVkLmFwcGVuZCgoIlBBUlNF
LUZBSUxFRCIsICJVbmFibGUgdG8gcGFyc2UgZmlsZSIsIGZpbGVuYW1lLCBOb25lKSkKKyAgICAg
ICAgYXNzZXJ0IGVycm9ycyA9PSBleHBlY3RlZAorCisKK2RlZiB0ZXN0X2NyX25vdF9hdF9lb2wo
KToKKyAgICBlcnJvcl9tYXAgPSBjaGVja193aXRoX2ZpbGVzKGIibGluZTFccmxpbmUyXHIiKQor
CisgICAgZm9yIChmaWxlbmFtZSwgKGVycm9ycywga2luZCkpIGluIGVycm9yX21hcC5pdGVtcygp
OgorICAgICAgICBjaGVja19lcnJvcnMoZXJyb3JzKQorCisgICAgICAgIGV4cGVjdGVkID0gWygi
Q1IgQVQgRU9MIiwgIkNSIGNoYXJhY3RlciBpbiBsaW5lIHNlcGFyYXRvciIsIGZpbGVuYW1lLCAx
KV0KKyAgICAgICAgaWYga2luZCA9PSAid2ViLXN0cmljdCI6CisgICAgICAgICAgICBleHBlY3Rl
ZC5hcHBlbmQoKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFt
ZSwgTm9uZSkpCisgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gZXhwZWN0ZWQKKworCitkZWYgdGVz
dF9jcl9hdF9lb2woKToKKyAgICBlcnJvcl9tYXAgPSBjaGVja193aXRoX2ZpbGVzKGIibGluZTFc
clxubGluZTJcclxuIikKKworICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMsIGtpbmQpKSBpbiBl
cnJvcl9tYXAuaXRlbXMoKToKKyAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKKworICAgICAg
ICBleHBlY3RlZCA9IFsKKyAgICAgICAgICAgICgiQ1IgQVQgRU9MIiwgIkNSIGNoYXJhY3RlciBp
biBsaW5lIHNlcGFyYXRvciIsIGZpbGVuYW1lLCAxKSwKKyAgICAgICAgICAgICgiQ1IgQVQgRU9M
IiwgIkNSIGNoYXJhY3RlciBpbiBsaW5lIHNlcGFyYXRvciIsIGZpbGVuYW1lLCAyKSwKKyAgICAg
ICAgXQorICAgICAgICBpZiBraW5kID09ICJ3ZWItc3RyaWN0IjoKKyAgICAgICAgICAgIGV4cGVj
dGVkLmFwcGVuZCgoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8gcGFyc2UgZmlsZSIsIGZpbGVu
YW1lLCBOb25lKSkKKyAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBleHBlY3RlZAorCisKK2RlZiB0
ZXN0X3czY190ZXN0X29yZygpOgorICAgIGVycm9yX21hcCA9IGNoZWNrX3dpdGhfZmlsZXMoYiJp
bXBvcnQoJ2h0dHA6Ly93d3cudzNjLXRlc3Qub3JnLycpIikKKworICAgIGZvciAoZmlsZW5hbWUs
IChlcnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9tYXAuaXRlbXMoKToKKyAgICAgICAgY2hlY2tfZXJy
b3JzKGVycm9ycykKKworICAgICAgICBleHBlY3RlZCA9IFsoIlczQy1URVNULk9SRyIsICJFeHRl
cm5hbCB3M2MtdGVzdC5vcmcgZG9tYWluIHVzZWQiLCBmaWxlbmFtZSwgMSldCisgICAgICAgIGlm
IGtpbmQgPT0gInB5dGhvbiI6CisgICAgICAgICAgICBleHBlY3RlZC5hcHBlbmQoKCJQQVJTRS1G
QUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgMSkpCisgICAgICAgIGVs
aWYga2luZCA9PSAid2ViLXN0cmljdCI6CisgICAgICAgICAgICBleHBlY3RlZC5hcHBlbmQoKCJQ
QVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgTm9uZSkpCisg
ICAgICAgIGFzc2VydCBlcnJvcnMgPT0gZXhwZWN0ZWQKKworZGVmIHRlc3Rfd2ViX3BsYXRmb3Jt
X3Rlc3QoKToKKyAgICBlcnJvcl9tYXAgPSBjaGVja193aXRoX2ZpbGVzKGIiaW1wb3J0KCdodHRw
Oi8vd2ViLXBsYXRmb3JtLnRlc3QvJykiKQorCisgICAgZm9yIChmaWxlbmFtZSwgKGVycm9ycywg
a2luZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgorICAgICAgICBjaGVja19lcnJvcnMoZXJyb3Jz
KQorCisgICAgICAgIGV4cGVjdGVkID0gWygiV0VCLVBMQVRGT1JNLlRFU1QiLCAiSW50ZXJuYWwg
d2ViLXBsYXRmb3JtLnRlc3QgZG9tYWluIHVzZWQiLCBmaWxlbmFtZSwgMSldCisgICAgICAgIGlm
IGtpbmQgPT0gInB5dGhvbiI6CisgICAgICAgICAgICBleHBlY3RlZC5hcHBlbmQoKCJQQVJTRS1G
QUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgMSkpCisgICAgICAgIGVs
aWYga2luZCA9PSAid2ViLXN0cmljdCI6CisgICAgICAgICAgICBleHBlY3RlZC5hcHBlbmQoKCJQ
QVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgTm9uZSkpCisg
ICAgICAgIGFzc2VydCBlcnJvcnMgPT0gZXhwZWN0ZWQKKworCitkZWYgdGVzdF93ZWJpZGwyX2pz
KCk6CisgICAgZXJyb3JfbWFwID0gY2hlY2tfd2l0aF9maWxlcyhiIjxzY3JpcHQgc3JjPS9yZXNv
dXJjZXMvd2ViaWRsMi5qcz4iKQorCisgICAgZm9yIChmaWxlbmFtZSwgKGVycm9ycywga2luZCkp
IGluIGVycm9yX21hcC5pdGVtcygpOgorICAgICAgICBjaGVja19lcnJvcnMoZXJyb3JzKQorCisg
ICAgICAgIGV4cGVjdGVkID0gWygiV0VCSURMMi5KUyIsICJMZWdhY3kgd2ViaWRsMi5qcyBzY3Jp
cHQgdXNlZCIsIGZpbGVuYW1lLCAxKV0KKyAgICAgICAgaWYga2luZCA9PSAicHl0aG9uIjoKKyAg
ICAgICAgICAgIGV4cGVjdGVkLmFwcGVuZCgoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8gcGFy
c2UgZmlsZSIsIGZpbGVuYW1lLCAxKSkKKyAgICAgICAgZWxpZiBraW5kID09ICJ3ZWItc3RyaWN0
IjoKKyAgICAgICAgICAgIGV4cGVjdGVkLmFwcGVuZCgoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUg
dG8gcGFyc2UgZmlsZSIsIGZpbGVuYW1lLCBOb25lKSkKKyAgICAgICAgYXNzZXJ0IGVycm9ycyA9
PSBleHBlY3RlZAorCisKK2RlZiB0ZXN0X2NvbnNvbGUoKToKKyAgICBlcnJvcl9tYXAgPSBjaGVj
a193aXRoX2ZpbGVzKGIiPHNjcmlwdD5cbmNvbnNvbGUubG9nKCdlcnJvcicpO1xuY29uc29sZS5l
cnJvciAoJ2xvZycpXG48L3NjcmlwdD4iKQorCisgICAgZm9yIChmaWxlbmFtZSwgKGVycm9ycywg
a2luZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgorICAgICAgICBjaGVja19lcnJvcnMoZXJyb3Jz
KQorCisgICAgICAgIGlmIGtpbmQgaW4gWyJ3ZWItbGF4IiwgIndlYi1zdHJpY3QiLCAianMiXToK
KyAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWworICAgICAgICAgICAgICAgICgiQ09OU09M
RSIsICJDb25zb2xlIGxvZ2dpbmcgQVBJIHVzZWQiLCBmaWxlbmFtZSwgMiksCisgICAgICAgICAg
ICAgICAgKCJDT05TT0xFIiwgIkNvbnNvbGUgbG9nZ2luZyBBUEkgdXNlZCIsIGZpbGVuYW1lLCAz
KSwKKyAgICAgICAgICAgIF0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCBlcnJv
cnMgPT0gWygiUEFSU0UtRkFJTEVEIiwgIlVuYWJsZSB0byBwYXJzZSBmaWxlIiwgZmlsZW5hbWUs
IDEpXQorCisKK2RlZiB0ZXN0X3NldFRpbWVvdXQoKToKKyAgICBlcnJvcl9tYXAgPSBjaGVja193
aXRoX2ZpbGVzKGIiPHNjcmlwdD5zZXRUaW1lb3V0KCgpID0+IDEsIDEwKTwvc2NyaXB0PiIpCisK
KyAgICBmb3IgKGZpbGVuYW1lLCAoZXJyb3JzLCBraW5kKSkgaW4gZXJyb3JfbWFwLml0ZW1zKCk6
CisgICAgICAgIGNoZWNrX2Vycm9ycyhlcnJvcnMpCisKKyAgICAgICAgaWYga2luZCA9PSAicHl0
aG9uIjoKKyAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWygiUEFSU0UtRkFJTEVEIiwgIlVu
YWJsZSB0byBwYXJzZSBmaWxlIiwgZmlsZW5hbWUsIDEpXQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbKCdTRVQgVElNRU9VVCcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ3NldFRpbWVvdXQgdXNlZDsgc3RlcF90aW1lb3V0IHNob3VsZCB0eXBp
Y2FsbHkgYmUgdXNlZCBpbnN0ZWFkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
aWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKV0KKworCitkZWYgdGVz
dF9ldmVudFNlbmRlcigpOgorICAgIGVycm9yX21hcCA9IGNoZWNrX3dpdGhfZmlsZXMoYiI8c2Ny
aXB0PmV2ZW50U2VuZGVyLm1vdXNlRG93bigpPC9zY3JpcHQ+IikKKworICAgIGZvciAoZmlsZW5h
bWUsIChlcnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9tYXAuaXRlbXMoKToKKyAgICAgICAgY2hlY2tf
ZXJyb3JzKGVycm9ycykKKworICAgICAgICBpZiBraW5kID09ICJweXRob24iOgorICAgICAgICAg
ICAgYXNzZXJ0IGVycm9ycyA9PSBbKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZp
bGUiLCBmaWxlbmFtZSwgMSldCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgZXJy
b3JzID09IFsoJ0xBWU9VVFRFU1RTIEFQSVMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdldmVudFNlbmRlci90ZXN0UnVubmVyL3dpbmRvdy5pbnRlcm5hbHMgdXNlZDsgdGhlc2Ug
YXJlIExheW91dFRlc3RzLXNwZWNpZmljIEFQSXMgKFdlYktpdC9CbGluayknLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDEpXQorCisKK2RlZiB0ZXN0X3Rlc3RSdW5uZXIoKToKKyAgICBlcnJvcl9tYXAgPSBj
aGVja193aXRoX2ZpbGVzKGIiPHNjcmlwdD5pZiAod2luZG93LnRlc3RSdW5uZXIpIHsgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7IH08L3NjcmlwdD4iKQorCisgICAgZm9yIChmaWxlbmFtZSwg
KGVycm9ycywga2luZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgorICAgICAgICBjaGVja19lcnJv
cnMoZXJyb3JzKQorCisgICAgICAgIGlmIGtpbmQgPT0gInB5dGhvbiI6CisgICAgICAgICAgICBh
c3NlcnQgZXJyb3JzID09IFsoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8gcGFyc2UgZmlsZSIs
IGZpbGVuYW1lLCAxKV0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCBlcnJvcnMg
PT0gWygnTEFZT1VUVEVTVFMgQVBJUycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J2V2ZW50U2VuZGVyL3Rlc3RSdW5uZXIvd2luZG93LmludGVybmFscyB1c2VkOyB0aGVzZSBhcmUg
TGF5b3V0VGVzdHMtc3BlY2lmaWMgQVBJcyAoV2ViS2l0L0JsaW5rKScsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZmlsZW5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgMSldCisKKworZGVmIHRlc3Rfd2luZG93RG90SW50ZXJuYWxzKCk6CisgICAgZXJyb3JfbWFw
ID0gY2hlY2tfd2l0aF9maWxlcyhiIjxzY3JpcHQ+aWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsgaW50
ZXJuYWxzLmRvQVRoaW5nKCk7IH08L3NjcmlwdD4iKQorCisgICAgZm9yIChmaWxlbmFtZSwgKGVy
cm9ycywga2luZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgorICAgICAgICBjaGVja19lcnJvcnMo
ZXJyb3JzKQorCisgICAgICAgIGlmIGtpbmQgPT0gInB5dGhvbiI6CisgICAgICAgICAgICBhc3Nl
cnQgZXJyb3JzID09IFsoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8gcGFyc2UgZmlsZSIsIGZp
bGVuYW1lLCAxKV0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0g
WygnTEFZT1VUVEVTVFMgQVBJUycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V2
ZW50U2VuZGVyL3Rlc3RSdW5uZXIvd2luZG93LmludGVybmFscyB1c2VkOyB0aGVzZSBhcmUgTGF5
b3V0VGVzdHMtc3BlY2lmaWMgQVBJcyAoV2ViS2l0L0JsaW5rKScsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZmlsZW5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
MSldCisKKworZGVmIHRlc3RfbWV0YV90aW1lb3V0KCk6CisgICAgY29kZSA9IGIiIiIKKzxodG1s
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxtZXRhIG5hbWU9InRpbWVv
dXQiIC8+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJzaG9ydCIgLz4KKzxtZXRhIG5h
bWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciIC8+Cis8L2h0bWw+CisiIiIKKyAgICBlcnJvcl9t
YXAgPSBjaGVja193aXRoX2ZpbGVzKGNvZGUpCisKKyAgICBmb3IgKGZpbGVuYW1lLCAoZXJyb3Jz
LCBraW5kKSkgaW4gZXJyb3JfbWFwLml0ZW1zKCk6CisgICAgICAgIGNoZWNrX2Vycm9ycyhlcnJv
cnMpCisKKyAgICAgICAgaWYga2luZCBpbiBbIndlYi1sYXgiLCAid2ViLXN0cmljdCJdOgorICAg
ICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbCisgICAgICAgICAgICAgICAgKCJNVUxUSVBMRS1U
SU1FT1VUIiwgIk1vcmUgdGhhbiBvbmUgbWV0YSBuYW1lPSd0aW1lb3V0JyIsIGZpbGVuYW1lLCBO
b25lKSwKKyAgICAgICAgICAgICAgICAoIklOVkFMSUQtVElNRU9VVCIsICJJbnZhbGlkIHRpbWVv
dXQgdmFsdWUgIiwgZmlsZW5hbWUsIE5vbmUpLAorICAgICAgICAgICAgICAgICgiSU5WQUxJRC1U
SU1FT1VUIiwgIkludmFsaWQgdGltZW91dCB2YWx1ZSBzaG9ydCIsIGZpbGVuYW1lLCBOb25lKSwK
KyAgICAgICAgICAgIF0KKyAgICAgICAgZWxpZiBraW5kID09ICJweXRob24iOgorICAgICAgICAg
ICAgYXNzZXJ0IGVycm9ycyA9PSBbCisgICAgICAgICAgICAgICAgKCJQQVJTRS1GQUlMRUQiLCAi
VW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgMiksCisgICAgICAgICAgICBdCisKKwor
ZGVmIHRlc3RfZWFybHlfdGVzdGhhcm5lc3NyZXBvcnQoKToKKyAgICBjb2RlID0gYiIiIgorPGh0
bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPC9odG1sPgorIiIiCisgICAgZXJy
b3JfbWFwID0gY2hlY2tfd2l0aF9maWxlcyhjb2RlKQorCisgICAgZm9yIChmaWxlbmFtZSwgKGVy
cm9ycywga2luZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgorICAgICAgICBjaGVja19lcnJvcnMo
ZXJyb3JzKQorCisgICAgICAgIGlmIGtpbmQgaW4gWyJ3ZWItbGF4IiwgIndlYi1zdHJpY3QiXToK
KyAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWworICAgICAgICAgICAgICAgICgiRUFSTFkt
VEVTVEhBUk5FU1NSRVBPUlQiLCAidGVzdGhhcm5lc3NyZXBvcnQuanMgc2NyaXB0IHNlZW4gYmVm
b3JlIHRlc3RoYXJuZXNzLmpzIHNjcmlwdCIsIGZpbGVuYW1lLCBOb25lKSwKKyAgICAgICAgICAg
IF0KKyAgICAgICAgZWxpZiBraW5kID09ICJweXRob24iOgorICAgICAgICAgICAgYXNzZXJ0IGVy
cm9ycyA9PSBbCisgICAgICAgICAgICAgICAgKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBh
cnNlIGZpbGUiLCBmaWxlbmFtZSwgMiksCisgICAgICAgICAgICBdCisKKworZGVmIHRlc3RfbXVs
dGlwbGVfdGVzdGhhcm5lc3MoKToKKyAgICBjb2RlID0gYiIiIgorPGh0bWwgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPC9odG1sPgorIiIiCisgICAgZXJyb3JfbWFwID0gY2hlY2tfd2l0aF9m
aWxlcyhjb2RlKQorCisgICAgZm9yIChmaWxlbmFtZSwgKGVycm9ycywga2luZCkpIGluIGVycm9y
X21hcC5pdGVtcygpOgorICAgICAgICBjaGVja19lcnJvcnMoZXJyb3JzKQorCisgICAgICAgIGlm
IGtpbmQgaW4gWyJ3ZWItbGF4IiwgIndlYi1zdHJpY3QiXToKKyAgICAgICAgICAgIGFzc2VydCBl
cnJvcnMgPT0gWworICAgICAgICAgICAgICAgICgiTVVMVElQTEUtVEVTVEhBUk5FU1MiLCAiTW9y
ZSB0aGFuIG9uZSA8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyc+IiwgZmls
ZW5hbWUsIE5vbmUpLAorICAgICAgICAgICAgICAgICgiTUlTU0lORy1URVNUSEFSTkVTU1JFUE9S
VCIsICJNaXNzaW5nIDxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Jz4iLCBmaWxlbmFtZSwgTm9uZSksCisgICAgICAgICAgICBdCisgICAgICAgIGVsaWYga2luZCA9
PSAicHl0aG9uIjoKKyAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWworICAgICAgICAgICAg
ICAgICgiUEFSU0UtRkFJTEVEIiwgIlVuYWJsZSB0byBwYXJzZSBmaWxlIiwgZmlsZW5hbWUsIDIp
LAorICAgICAgICAgICAgXQorCisKK2RlZiB0ZXN0X211bHRpcGxlX3Rlc3RoYXJuZXNzcmVwb3J0
KCk6CisgICAgY29kZSA9IGIiIiIKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzwvaHRtbD4KKyIiIgorICAgIGVycm9yX21hcCA9IGNoZWNrX3dpdGhfZmlsZXMoY29kZSkK
KworICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9tYXAuaXRlbXMo
KToKKyAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKKworICAgICAgICBpZiBraW5kIGluIFsi
d2ViLWxheCIsICJ3ZWItc3RyaWN0Il06CisgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsK
KyAgICAgICAgICAgICAgICAoIk1VTFRJUExFLVRFU1RIQVJORVNTUkVQT1JUIiwgIk1vcmUgdGhh
biBvbmUgPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMnPiIsIGZp
bGVuYW1lLCBOb25lKSwKKyAgICAgICAgICAgIF0KKyAgICAgICAgZWxpZiBraW5kID09ICJweXRo
b24iOgorICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbCisgICAgICAgICAgICAgICAgKCJQ
QVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgMiksCisgICAg
ICAgICAgICBdCisKKworZGVmIHRlc3RfcHJlc2VudF90ZXN0aGFybmVzc2NzcygpOgorICAgIGNv
ZGUgPSBiIiIiCis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuY3NzIi8+Cis8L2h0
bWw+CisiIiIKKyAgICBlcnJvcl9tYXAgPSBjaGVja193aXRoX2ZpbGVzKGNvZGUpCisKKyAgICBm
b3IgKGZpbGVuYW1lLCAoZXJyb3JzLCBraW5kKSkgaW4gZXJyb3JfbWFwLml0ZW1zKCk6CisgICAg
ICAgIGNoZWNrX2Vycm9ycyhlcnJvcnMpCisKKyAgICAgICAgaWYga2luZCBpbiBbIndlYi1sYXgi
LCAid2ViLXN0cmljdCJdOgorICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbCisgICAgICAg
ICAgICAgICAgKCJQUkVTRU5ULVRFU1RIQVJORVNTQ1NTIiwgIkV4cGxpY2l0IGxpbmsgdG8gdGVz
dGhhcm5lc3MuY3NzIHByZXNlbnQiLCBmaWxlbmFtZSwgTm9uZSksCisgICAgICAgICAgICBdCisg
ICAgICAgIGVsaWYga2luZCA9PSAicHl0aG9uIjoKKyAgICAgICAgICAgIGFzc2VydCBlcnJvcnMg
PT0gWworICAgICAgICAgICAgICAgICgiUEFSU0UtRkFJTEVEIiwgIlVuYWJsZSB0byBwYXJzZSBm
aWxlIiwgZmlsZW5hbWUsIDIpLAorICAgICAgICAgICAgXQorCisKK2RlZiB0ZXN0X3Rlc3RoYXJu
ZXNzX3BhdGgoKToKKyAgICBjb2RlID0gYiIiIlwKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sIj4KKzxzY3JpcHQgc3JjPSJ0ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Imh0dHA6Ly93M2MtdGVzdC5vcmcvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzwvaHRtbD4KKyIiIgorICAgIGVycm9yX21hcCA9IGNoZWNrX3dpdGhfZmlsZXMoY29kZSkK
KworICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9tYXAuaXRlbXMo
KToKKyAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKKworICAgICAgICBleHBlY3RlZCA9IFso
IlczQy1URVNULk9SRyIsICJFeHRlcm5hbCB3M2MtdGVzdC5vcmcgZG9tYWluIHVzZWQiLCBmaWxl
bmFtZSwgNSldCisgICAgICAgIGlmIGtpbmQgPT0gInB5dGhvbiI6CisgICAgICAgICAgICBleHBl
Y3RlZC5hcHBlbmQoKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxl
bmFtZSwgMSkpCisgICAgICAgIGVsaWYga2luZCBpbiBbIndlYi1sYXgiLCAid2ViLXN0cmljdCJd
OgorICAgICAgICAgICAgZXhwZWN0ZWQuZXh0ZW5kKFsKKyAgICAgICAgICAgICAgICAoIlRFU1RI
QVJORVNTLVBBVEgiLCAidGVzdGhhcm5lc3MuanMgc2NyaXB0IHNlZW4gd2l0aCBpbmNvcnJlY3Qg
cGF0aCIsIGZpbGVuYW1lLCBOb25lKSwKKyAgICAgICAgICAgICAgICAoIlRFU1RIQVJORVNTLVBB
VEgiLCAidGVzdGhhcm5lc3MuanMgc2NyaXB0IHNlZW4gd2l0aCBpbmNvcnJlY3QgcGF0aCIsIGZp
bGVuYW1lLCBOb25lKSwKKyAgICAgICAgICAgICAgICAoIlRFU1RIQVJORVNTLVBBVEgiLCAidGVz
dGhhcm5lc3MuanMgc2NyaXB0IHNlZW4gd2l0aCBpbmNvcnJlY3QgcGF0aCIsIGZpbGVuYW1lLCBO
b25lKSwKKyAgICAgICAgICAgICAgICAoIlRFU1RIQVJORVNTLVBBVEgiLCAidGVzdGhhcm5lc3Mu
anMgc2NyaXB0IHNlZW4gd2l0aCBpbmNvcnJlY3QgcGF0aCIsIGZpbGVuYW1lLCBOb25lKSwKKyAg
ICAgICAgICAgIF0pCisgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gZXhwZWN0ZWQKKworCitkZWYg
dGVzdF90ZXN0aGFybmVzc3JlcG9ydF9wYXRoKCk6CisgICAgY29kZSA9IGIiIiJcCis8aHRtbCB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8c2NyaXB0IHNyYz0idGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJodHRwOi8vdzNjLXRlc3Qu
b3JnL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2h0bWw+Cisi
IiIKKyAgICBlcnJvcl9tYXAgPSBjaGVja193aXRoX2ZpbGVzKGNvZGUpCisKKyAgICBmb3IgKGZp
bGVuYW1lLCAoZXJyb3JzLCBraW5kKSkgaW4gZXJyb3JfbWFwLml0ZW1zKCk6CisgICAgICAgIGNo
ZWNrX2Vycm9ycyhlcnJvcnMpCisKKyAgICAgICAgZXhwZWN0ZWQgPSBbKCJXM0MtVEVTVC5PUkci
LCAiRXh0ZXJuYWwgdzNjLXRlc3Qub3JnIGRvbWFpbiB1c2VkIiwgZmlsZW5hbWUsIDUpXQorICAg
ICAgICBpZiBraW5kID09ICJweXRob24iOgorICAgICAgICAgICAgZXhwZWN0ZWQuYXBwZW5kKCgi
UEFSU0UtRkFJTEVEIiwgIlVuYWJsZSB0byBwYXJzZSBmaWxlIiwgZmlsZW5hbWUsIDEpKQorICAg
ICAgICBlbGlmIGtpbmQgaW4gWyJ3ZWItbGF4IiwgIndlYi1zdHJpY3QiXToKKyAgICAgICAgICAg
IGV4cGVjdGVkLmV4dGVuZChbCisgICAgICAgICAgICAgICAgKCJURVNUSEFSTkVTU1JFUE9SVC1Q
QVRIIiwgInRlc3RoYXJuZXNzcmVwb3J0LmpzIHNjcmlwdCBzZWVuIHdpdGggaW5jb3JyZWN0IHBh
dGgiLCBmaWxlbmFtZSwgTm9uZSksCisgICAgICAgICAgICAgICAgKCJURVNUSEFSTkVTU1JFUE9S
VC1QQVRIIiwgInRlc3RoYXJuZXNzcmVwb3J0LmpzIHNjcmlwdCBzZWVuIHdpdGggaW5jb3JyZWN0
IHBhdGgiLCBmaWxlbmFtZSwgTm9uZSksCisgICAgICAgICAgICAgICAgKCJURVNUSEFSTkVTU1JF
UE9SVC1QQVRIIiwgInRlc3RoYXJuZXNzcmVwb3J0LmpzIHNjcmlwdCBzZWVuIHdpdGggaW5jb3Jy
ZWN0IHBhdGgiLCBmaWxlbmFtZSwgTm9uZSksCisgICAgICAgICAgICAgICAgKCJURVNUSEFSTkVT
U1JFUE9SVC1QQVRIIiwgInRlc3RoYXJuZXNzcmVwb3J0LmpzIHNjcmlwdCBzZWVuIHdpdGggaW5j
b3JyZWN0IHBhdGgiLCBmaWxlbmFtZSwgTm9uZSksCisgICAgICAgICAgICBdKQorICAgICAgICBh
c3NlcnQgZXJyb3JzID09IGV4cGVjdGVkCisKKworZGVmIHRlc3Rfbm90X3Rlc3RoYXJuZXNzX3Bh
dGgoKToKKyAgICBjb2RlID0gYiIiIlwKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2VicGVyZnRlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzwvaHRtbD4KKyIiIgorICAgIGVycm9yX21hcCA9IGNoZWNrX3dpdGhfZmlsZXMoY29k
ZSkKKworICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9tYXAuaXRl
bXMoKToKKyAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKKworICAgICAgICBpZiBraW5kID09
ICJweXRob24iOgorICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbCisgICAgICAgICAgICAg
ICAgKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgMSks
CisgICAgICAgICAgICBdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgZXJyb3Jz
ID09IFtdCisKKworQHB5dGVzdC5tYXJrLnNraXBpZihzaXguUFkzLCByZWFzb249IkNhbm5vdCBw
YXJzZSBwcmludCBzdGF0ZW1lbnRzIGZyb20gcHl0aG9uIDMiKQorZGVmIHRlc3RfcHJpbnRfc3Rh
dGVtZW50KCk6CisgICAgZXJyb3JfbWFwID0gY2hlY2tfd2l0aF9maWxlcyhiImRlZiBmb28oKTpc
biAgcHJpbnQgJ3N0YXRlbWVudCdcbiAgcHJpbnRcbiIpCisKKyAgICBmb3IgKGZpbGVuYW1lLCAo
ZXJyb3JzLCBraW5kKSkgaW4gZXJyb3JfbWFwLml0ZW1zKCk6CisgICAgICAgIGNoZWNrX2Vycm9y
cyhlcnJvcnMpCisKKyAgICAgICAgaWYga2luZCA9PSAicHl0aG9uIjoKKyAgICAgICAgICAgIGFz
c2VydCBlcnJvcnMgPT0gWworICAgICAgICAgICAgICAgICgiUFJJTlQgU1RBVEVNRU5UIiwgIlBy
aW50IGZ1bmN0aW9uIHVzZWQiLCBmaWxlbmFtZSwgMiksCisgICAgICAgICAgICAgICAgKCJQUklO
VCBTVEFURU1FTlQiLCAiUHJpbnQgZnVuY3Rpb24gdXNlZCIsIGZpbGVuYW1lLCAzKSwKKyAgICAg
ICAgICAgIF0KKyAgICAgICAgZWxpZiBraW5kID09ICJ3ZWItc3RyaWN0IjoKKyAgICAgICAgICAg
IGFzc2VydCBlcnJvcnMgPT0gWworICAgICAgICAgICAgICAgICgiUEFSU0UtRkFJTEVEIiwgIlVu
YWJsZSB0byBwYXJzZSBmaWxlIiwgZmlsZW5hbWUsIE5vbmUpLAorICAgICAgICAgICAgXQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbXQorCisKK2RlZiB0ZXN0
X3ByaW50X2Z1bmN0aW9uKCk6CisgICAgZXJyb3JfbWFwID0gY2hlY2tfd2l0aF9maWxlcyhiImRl
ZiBmb28oKTpcbiAgcHJpbnQoJ2Z1bmN0aW9uJylcbiIpCisKKyAgICBmb3IgKGZpbGVuYW1lLCAo
ZXJyb3JzLCBraW5kKSkgaW4gZXJyb3JfbWFwLml0ZW1zKCk6CisgICAgICAgIGNoZWNrX2Vycm9y
cyhlcnJvcnMpCisKKyAgICAgICAgaWYga2luZCA9PSAicHl0aG9uIjoKKyAgICAgICAgICAgIGFz
c2VydCBlcnJvcnMgPT0gWworICAgICAgICAgICAgICAgICgiUFJJTlQgU1RBVEVNRU5UIiwgIlBy
aW50IGZ1bmN0aW9uIHVzZWQiLCBmaWxlbmFtZSwgMiksCisgICAgICAgICAgICBdCisgICAgICAg
IGVsaWYga2luZCA9PSAid2ViLXN0cmljdCI6CisgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09
IFsKKyAgICAgICAgICAgICAgICAoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8gcGFyc2UgZmls
ZSIsIGZpbGVuYW1lLCBOb25lKSwKKyAgICAgICAgICAgIF0KKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIGFzc2VydCBlcnJvcnMgPT0gW10KKworCitvcGVuX21vZGVfY29kZSA9ICIiIgorZGVm
IGZpcnN0KCk6CisgICAgcmV0dXJuIHswfSgidGVzdC5wbmciKQorCitkZWYgc2Vjb25kKCk6Cisg
ICAgcmV0dXJuIHswfSgidGVzdC5wbmciLCAiciIpCisKK2RlZiB0aGlyZCgpOgorICAgIHJldHVy
biB7MH0oInRlc3QucG5nIiwgInJiIikKKworZGVmIGZvdXJ0aCgpOgorICAgIHJldHVybiB7MH0o
InRlc3QucG5nIiwgZW5jb2Rpbmc9InV0Zi04IikKKworZGVmIGZpZnRoKCk6CisgICAgcmV0dXJu
IHswfSgidGVzdC5wbmciLCBtb2RlPSJyYiIpCisiIiIKKworCitkZWYgdGVzdF9vcGVuX21vZGUo
KToKKyAgICBmb3IgbWV0aG9kIGluIFsib3BlbiIsICJmaWxlIl06CisgICAgICAgIGNvZGUgPSBv
cGVuX21vZGVfY29kZS5mb3JtYXQobWV0aG9kKS5lbmNvZGUoInV0Zi04IikKKyAgICAgICAgZXJy
b3JzID0gY2hlY2tfZmlsZV9jb250ZW50cygiIiwgInRlc3QucHkiLCBzaXguQnl0ZXNJTyhjb2Rl
KSkKKyAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKKworICAgICAgICBtZXNzYWdlID0gKCJG
aWxlIG9wZW5lZCB3aXRob3V0IHByb3ZpZGluZyBhbiBleHBsaWNpdCBtb2RlIChub3RlOiAiICsK
KyAgICAgICAgICAgICAgICAgICAiYmluYXJ5IGZpbGVzIG11c3QgYmUgcmVhZCB3aXRoICdiJyBp
biB0aGUgbW9kZSBmbGFncykiKQorCisgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWworICAgICAg
ICAgICAgKCJPUEVOLU5PLU1PREUiLCBtZXNzYWdlLCAidGVzdC5weSIsIDMpLAorICAgICAgICAg
ICAgKCJPUEVOLU5PLU1PREUiLCBtZXNzYWdlLCAidGVzdC5weSIsIDEyKSwKKyAgICAgICAgXQor
CisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAiZmlsZW5hbWUsZXhwZWN0X2Vycm9y
IiwKKyAgICBbCisgICAgICAgICgiZm9vL2Jhci5odG1sIiwgRmFsc2UpLAorICAgICAgICAoImNz
cy9iYXIuaHRtbCIsIFRydWUpLAorICAgIF0pCitkZWYgdGVzdF9jc3Nfc3VwcG9ydF9maWxlKGZp
bGVuYW1lLCBleHBlY3RfZXJyb3IpOgorICAgIGVycm9ycyA9IGNoZWNrX2ZpbGVfY29udGVudHMo
IiIsIGZpbGVuYW1lLCBzaXguQnl0ZXNJTyhiIiIpKQorICAgIGNoZWNrX2Vycm9ycyhlcnJvcnMp
CisKKyAgICBpZiBleHBlY3RfZXJyb3I6CisgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWworICAg
ICAgICAgICAgKCdTVVBQT1JULVdST05HLURJUicsCisgICAgICAgICAgICAgJ1N1cHBvcnQgZmls
ZSBub3QgaW4gc3VwcG9ydCBkaXJlY3RvcnknLAorICAgICAgICAgICAgIGZpbGVuYW1lLAorICAg
ICAgICAgICAgIE5vbmUpLAorICAgICAgICBdCisgICAgZWxzZToKKyAgICAgICAgYXNzZXJ0IGVy
cm9ycyA9PSBbXQorCisKK2RlZiB0ZXN0X2Nzc19taXNzaW5nX2ZpbGVfaW5fY3NzKCk6CisgICAg
Y29kZSA9IGIiIiJcCis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2h0
bWw+CisiIiIKKyAgICBlcnJvcnMgPSBjaGVja19maWxlX2NvbnRlbnRzKCIiLCAiY3NzL2Zvby9i
YXIuaHRtbCIsIHNpeC5CeXRlc0lPKGNvZGUpKQorICAgIGNoZWNrX2Vycm9ycyhlcnJvcnMpCisK
KyAgICBhc3NlcnQgZXJyb3JzID09IFsKKyAgICAgICAgKCdNSVNTSU5HLUxJTksnLAorICAgICAg
ICAgJ1Rlc3RjYXNlIGZpbGUgbXVzdCBoYXZlIGEgbGluayB0byBhIHNwZWMnLAorICAgICAgICAg
ImNzcy9mb28vYmFyLmh0bWwiLAorICAgICAgICAgTm9uZSksCisgICAgXQorCisKK2RlZiB0ZXN0
X2Nzc19taXNzaW5nX2ZpbGVfbWFudWFsKCk6CisgICAgZXJyb3JzID0gY2hlY2tfZmlsZV9jb250
ZW50cygiIiwgImNzcy9mb28vYmFyLW1hbnVhbC5odG1sIiwgc2l4LkJ5dGVzSU8oYiIiKSkKKyAg
ICBjaGVja19lcnJvcnMoZXJyb3JzKQorCisgICAgYXNzZXJ0IGVycm9ycyA9PSBbCisgICAgICAg
ICgnTUlTU0lORy1MSU5LJywKKyAgICAgICAgICdUZXN0Y2FzZSBmaWxlIG11c3QgaGF2ZSBhIGxp
bmsgdG8gYSBzcGVjJywKKyAgICAgICAgICJjc3MvZm9vL2Jhci1tYW51YWwuaHRtbCIsCisgICAg
ICAgICBOb25lKSwKKyAgICBdCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJmaWxlbmFt
ZSIsIFsKKyAgICAiZm9vLndvcmtlci5qcyIsCisgICAgImZvby5hbnkuanMiLAorXSkKK0BweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgiaW5wdXQsZXJyb3IiLCBbCisgICAgKGIiIiIvL01FVEE6IHRp
bWVvdXQ9bG9uZ1xuIiIiLCBOb25lKSwKKyAgICAoYiIiIi8vIE1FVEE6IHRpbWVvdXQ9bG9uZ1xu
IiIiLCBOb25lKSwKKyAgICAoYiIiIi8vICBNRVRBOiB0aW1lb3V0PWxvbmdcbiIiIiwgTm9uZSks
CisgICAgKGIiIiIvLyBNRVRBOiBzY3JpcHQ9Zm9vLmpzXG4iIiIsIE5vbmUpLAorICAgIChiIiIi
IyBNRVRBOlxuIiIiLCBOb25lKSwKKyAgICAoYiIiIlxuLy8gTUVUQTogdGltZW91dD1sb25nXG4i
IiIsICgyLCAiU1RSQVktTUVUQURBVEEiKSksCisgICAgKGIiIiIgLy8gTUVUQTogdGltZW91dD1s
b25nXG4iIiIsICgxLCAiSU5ERU5URUQtTUVUQURBVEEiKSksCisgICAgKGIiIiIvLyBNRVRBOiB0
aW1lb3V0PWxvbmdcbi8vIE1FVEE6IHRpbWVvdXQ9bG9uZ1xuIiIiLCBOb25lKSwKKyAgICAoYiIi
Ii8vIE1FVEE6IHRpbWVvdXQ9bG9uZ1xuXG4vLyBNRVRBOiB0aW1lb3V0PWxvbmdcbiIiIiwgKDMs
ICJTVFJBWS1NRVRBREFUQSIpKSwKKyAgICAoYiIiIi8vIE1FVEE6IHRpbWVvdXQ9bG9uZ1xuLy8g
U3RhcnQgb2YgdGhlIHRlc3Rcbi8vIE1FVEE6IHRpbWVvdXQ9bG9uZ1xuIiIiLCAoMywgIlNUUkFZ
LU1FVEFEQVRBIikpLAorICAgIChiIiIiLy8gTUVUQTpcbiIiIiwgKDEsICJCUk9LRU4tTUVUQURB
VEEiKSksCisgICAgKGIiIiIvLyBNRVRBOiBmb29iYXJcbiIiIiwgKDEsICJCUk9LRU4tTUVUQURB
VEEiKSksCisgICAgKGIiIiIvLyBNRVRBOiBmb289YmFyXG4iIiIsICgxLCAiVU5LTk9XTi1NRVRB
REFUQSIpKSwKKyAgICAoYiIiIi8vIE1FVEE6IHRpbWVvdXQ9YmFyXG4iIiIsICgxLCAiVU5LTk9X
Ti1USU1FT1VULU1FVEFEQVRBIikpLAorXSkKK2RlZiB0ZXN0X3NjcmlwdF9tZXRhZGF0YShmaWxl
bmFtZSwgaW5wdXQsIGVycm9yKToKKyAgICBlcnJvcnMgPSBjaGVja19maWxlX2NvbnRlbnRzKCIi
LCBmaWxlbmFtZSwgc2l4LkJ5dGVzSU8oaW5wdXQpKQorICAgIGNoZWNrX2Vycm9ycyhlcnJvcnMp
CisKKyAgICBpZiBlcnJvciBpcyBub3QgTm9uZToKKyAgICAgICAgbGluZSwga2luZCA9IGVycm9y
CisgICAgICAgIG1lc3NhZ2VzID0geworICAgICAgICAgICAgIlNUUkFZLU1FVEFEQVRBIjogIk1l
dGFkYXRhIGNvbW1lbnRzIHNob3VsZCBzdGFydCB0aGUgZmlsZSIsCisgICAgICAgICAgICAiSU5E
RU5URUQtTUVUQURBVEEiOiAiTWV0YWRhdGEgY29tbWVudHMgc2hvdWxkIHN0YXJ0IHRoZSBsaW5l
IiwKKyAgICAgICAgICAgICJCUk9LRU4tTUVUQURBVEEiOiAiTWV0YWRhdGEgY29tbWVudCBpcyBu
b3QgZm9ybWF0dGVkIGNvcnJlY3RseSIsCisgICAgICAgICAgICAiVU5LTk9XTi1USU1FT1VULU1F
VEFEQVRBIjogIlVuZXhwZWN0ZWQgdmFsdWUgZm9yIHRpbWVvdXQgbWV0YWRhdGEiLAorICAgICAg
ICAgICAgIlVOS05PV04tTUVUQURBVEEiOiAiVW5leHBlY3RlZCBraW5kIG9mIG1ldGFkYXRhIiwK
KyAgICAgICAgfQorICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsKKyAgICAgICAgICAgIChraW5k
LAorICAgICAgICAgICAgIG1lc3NhZ2VzW2tpbmRdLAorICAgICAgICAgICAgIGZpbGVuYW1lLAor
ICAgICAgICAgICAgIGxpbmUpLAorICAgICAgICBdCisgICAgZWxzZToKKyAgICAgICAgYXNzZXJ0
IGVycm9ycyA9PSBbXQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiaW5wdXQsZXJyb3Ii
LCBbCisgICAgKGIiIiIjTUVUQTogdGltZW91dD1sb25nXG4iIiIsIE5vbmUpLAorICAgIChiIiIi
IyBNRVRBOiB0aW1lb3V0PWxvbmdcbiIiIiwgTm9uZSksCisgICAgKGIiIiIjICBNRVRBOiB0aW1l
b3V0PWxvbmdcbiIiIiwgTm9uZSksCisgICAgKGIiIiIiLy8gTUVUQToiXG4iIiIsIE5vbmUpLAor
ICAgIChiIiIiXG4jIE1FVEE6IHRpbWVvdXQ9bG9uZ1xuIiIiLCAoMiwgIlNUUkFZLU1FVEFEQVRB
IikpLAorICAgIChiIiIiICMgTUVUQTogdGltZW91dD1sb25nXG4iIiIsICgxLCAiSU5ERU5URUQt
TUVUQURBVEEiKSksCisgICAgKGIiIiIjIE1FVEE6IHRpbWVvdXQ9bG9uZ1xuIyBNRVRBOiB0aW1l
b3V0PWxvbmdcbiIiIiwgTm9uZSksCisgICAgKGIiIiIjIE1FVEE6IHRpbWVvdXQ9bG9uZ1xuXG4j
IE1FVEE6IHRpbWVvdXQ9bG9uZ1xuIiIiLCAoMywgIlNUUkFZLU1FVEFEQVRBIikpLAorICAgIChi
IiIiIyBNRVRBOiB0aW1lb3V0PWxvbmdcbiMgU3RhcnQgb2YgdGhlIHRlc3RcbiMgTUVUQTogdGlt
ZW91dD1sb25nXG4iIiIsICgzLCAiU1RSQVktTUVUQURBVEEiKSksCisgICAgKGIiIiIjIE1FVEE6
XG4iIiIsICgxLCAiQlJPS0VOLU1FVEFEQVRBIikpLAorICAgIChiIiIiIyBNRVRBOiBmb29iYXJc
biIiIiwgKDEsICJCUk9LRU4tTUVUQURBVEEiKSksCisgICAgKGIiIiIjIE1FVEE6IGZvbz1iYXJc
biIiIiwgKDEsICJVTktOT1dOLU1FVEFEQVRBIikpLAorICAgIChiIiIiIyBNRVRBOiB0aW1lb3V0
PWJhclxuIiIiLCAoMSwgIlVOS05PV04tVElNRU9VVC1NRVRBREFUQSIpKSwKK10pCitkZWYgdGVz
dF9weXRob25fbWV0YWRhdGEoaW5wdXQsIGVycm9yKToKKyAgICBmaWxlbmFtZSA9ICJ0ZXN0LnB5
IgorICAgIGVycm9ycyA9IGNoZWNrX2ZpbGVfY29udGVudHMoIiIsIGZpbGVuYW1lLCBzaXguQnl0
ZXNJTyhpbnB1dCkpCisgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKKworICAgIGlmIGVycm9yIGlz
IG5vdCBOb25lOgorICAgICAgICBsaW5lLCBraW5kID0gZXJyb3IKKyAgICAgICAgbWVzc2FnZXMg
PSB7CisgICAgICAgICAgICAiU1RSQVktTUVUQURBVEEiOiAiTWV0YWRhdGEgY29tbWVudHMgc2hv
dWxkIHN0YXJ0IHRoZSBmaWxlIiwKKyAgICAgICAgICAgICJJTkRFTlRFRC1NRVRBREFUQSI6ICJN
ZXRhZGF0YSBjb21tZW50cyBzaG91bGQgc3RhcnQgdGhlIGxpbmUiLAorICAgICAgICAgICAgIkJS
T0tFTi1NRVRBREFUQSI6ICJNZXRhZGF0YSBjb21tZW50IGlzIG5vdCBmb3JtYXR0ZWQgY29ycmVj
dGx5IiwKKyAgICAgICAgICAgICJVTktOT1dOLVRJTUVPVVQtTUVUQURBVEEiOiAiVW5leHBlY3Rl
ZCB2YWx1ZSBmb3IgdGltZW91dCBtZXRhZGF0YSIsCisgICAgICAgICAgICAiVU5LTk9XTi1NRVRB
REFUQSI6ICJVbmV4cGVjdGVkIGtpbmQgb2YgbWV0YWRhdGEiLAorICAgICAgICB9CisgICAgICAg
IGFzc2VydCBlcnJvcnMgPT0gWworICAgICAgICAgICAgKGtpbmQsCisgICAgICAgICAgICAgbWVz
c2FnZXNba2luZF0sCisgICAgICAgICAgICAgZmlsZW5hbWUsCisgICAgICAgICAgICAgbGluZSks
CisgICAgICAgIF0KKyAgICBlbHNlOgorICAgICAgICBhc3NlcnQgZXJyb3JzID09IFtdCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2xpbnQvdGVzdHMvdGVzdF9saW50LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL3Rlc3RfbGludC5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
YTk2YjI5NjhiYjFmMmYwNzU2MmRiYjY3NTViZTZkNDZjZWM3YTI1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50
L3Rlc3RzL3Rlc3RfbGludC5weQpAQCAtMCwwICsxLDQzNCBAQAorZnJvbSBfX2Z1dHVyZV9fIGlt
cG9ydCB1bmljb2RlX2xpdGVyYWxzCisKK2ltcG9ydCBvcworaW1wb3J0IHN5cworCitpbXBvcnQg
bW9jaworaW1wb3J0IHB5dGVzdAoraW1wb3J0IHNpeAorCitmcm9tIC4uLmxvY2FscGF0aHMgaW1w
b3J0IHJlcG9fcm9vdAorZnJvbSAuLiBpbXBvcnQgbGludCBhcyBsaW50X21vZAorZnJvbSAuLmxp
bnQgaW1wb3J0IGZpbHRlcl93aGl0ZWxpc3RfZXJyb3JzLCBwYXJzZV93aGl0ZWxpc3QsIGxpbnQs
IGNyZWF0ZV9wYXJzZXIKKworX2R1bW15X3JlcG8gPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJu
YW1lKF9fZmlsZV9fKSwgImR1bW15IikKKworZGVmIF9tb2NrX2xpbnQobmFtZSwgKiprd2FyZ3Mp
OgorICAgIHdyYXBwZWQgPSBnZXRhdHRyKGxpbnRfbW9kLCBuYW1lKQorICAgIHJldHVybiBtb2Nr
LnBhdGNoKGxpbnRfbW9kLl9fbmFtZV9fICsgIi4iICsgbmFtZSwgd3JhcHM9d3JhcHBlZCwgKipr
d2FyZ3MpCisKKworZGVmIHRlc3RfZmlsdGVyX3doaXRlbGlzdF9lcnJvcnMoKToKKyAgICB3aGl0
ZWxpc3QgPSB7CisgICAgICAgICdDT05TT0xFJzogeworICAgICAgICAgICAgJ3N2Zy8qJzogezEy
fQorICAgICAgICB9LAorICAgICAgICAnSU5ERU5UIFRBQlMnOiB7CisgICAgICAgICAgICAnc3Zn
LyonOiB7Tm9uZX0KKyAgICAgICAgfQorICAgIH0KKyAgICAjIHBhcnNlX3doaXRlbGlzdCBub3Jt
YWxpc2VzIHRoZSBjYXNlL3BhdGggb2YgdGhlIG1hdGNoIHN0cmluZyBzbyBuZWVkIHRvIGRvIHRo
ZSBzYW1lCisgICAgd2hpdGVsaXN0ID0ge2U6IHtvcy5wYXRoLm5vcm1jYXNlKGspOiB2IGZvciBr
LCB2IGluIHAuaXRlbXMoKX0KKyAgICAgICAgICAgICAgICAgZm9yIGUsIHAgaW4gd2hpdGVsaXN0
Lml0ZW1zKCl9CisgICAgIyBwYXRocyBwYXNzZWQgaW50byBmaWx0ZXJfd2hpdGVsaXN0X2Vycm9y
cyBhcmUgYWx3YXlzIFVuaXggc3R5bGUKKyAgICBmaWx0ZXJlZGZpbGUgPSAnc3ZnL3Rlc3QuaHRt
bCcKKyAgICB1bmZpbHRlcmVkZmlsZSA9ICdodG1sL3Rlc3QuaHRtbCcKKyAgICAjIFRlc3RzIGZv
ciBwYXNzaW5nIG5vIGVycm9ycworICAgIGZpbHRlcmVkID0gZmlsdGVyX3doaXRlbGlzdF9lcnJv
cnMod2hpdGVsaXN0LCBbXSkKKyAgICBhc3NlcnQgZmlsdGVyZWQgPT0gW10KKyAgICBmaWx0ZXJl
ZCA9IGZpbHRlcl93aGl0ZWxpc3RfZXJyb3JzKHdoaXRlbGlzdCwgW10pCisgICAgYXNzZXJ0IGZp
bHRlcmVkID09IFtdCisgICAgIyBUZXN0cyBmb3IgZmlsdGVyaW5nIG9uIGZpbGUgYW5kIGxpbmUg
bnVtYmVyCisgICAgZmlsdGVyZWQgPSBmaWx0ZXJfd2hpdGVsaXN0X2Vycm9ycyh3aGl0ZWxpc3Qs
IFtbJ0NPTlNPTEUnLCAnJywgZmlsdGVyZWRmaWxlLCAxMl1dKQorICAgIGFzc2VydCBmaWx0ZXJl
ZCA9PSBbXQorICAgIGZpbHRlcmVkID0gZmlsdGVyX3doaXRlbGlzdF9lcnJvcnMod2hpdGVsaXN0
LCBbWydDT05TT0xFJywgJycsIHVuZmlsdGVyZWRmaWxlLCAxMl1dKQorICAgIGFzc2VydCBmaWx0
ZXJlZCA9PSBbWydDT05TT0xFJywgJycsIHVuZmlsdGVyZWRmaWxlLCAxMl1dCisgICAgZmlsdGVy
ZWQgPSBmaWx0ZXJfd2hpdGVsaXN0X2Vycm9ycyh3aGl0ZWxpc3QsIFtbJ0NPTlNPTEUnLCAnJywg
ZmlsdGVyZWRmaWxlLCAxMV1dKQorICAgIGFzc2VydCBmaWx0ZXJlZCA9PSBbWydDT05TT0xFJywg
JycsIGZpbHRlcmVkZmlsZSwgMTFdXQorICAgICMgVGVzdHMgZm9yIGZpbHRlcmluZyBvbiBqdXN0
IGZpbGUKKyAgICBmaWx0ZXJlZCA9IGZpbHRlcl93aGl0ZWxpc3RfZXJyb3JzKHdoaXRlbGlzdCwg
W1snSU5ERU5UIFRBQlMnLCAnJywgZmlsdGVyZWRmaWxlLCAxMl1dKQorICAgIGFzc2VydCBmaWx0
ZXJlZCA9PSBbXQorICAgIGZpbHRlcmVkID0gZmlsdGVyX3doaXRlbGlzdF9lcnJvcnMod2hpdGVs
aXN0LCBbWydJTkRFTlQgVEFCUycsICcnLCBmaWx0ZXJlZGZpbGUsIDExXV0pCisgICAgYXNzZXJ0
IGZpbHRlcmVkID09IFtdCisgICAgZmlsdGVyZWQgPSBmaWx0ZXJfd2hpdGVsaXN0X2Vycm9ycyh3
aGl0ZWxpc3QsIFtbJ0lOREVOVCBUQUJTJywgJycsIHVuZmlsdGVyZWRmaWxlLCAxMV1dKQorICAg
IGFzc2VydCBmaWx0ZXJlZCA9PSBbWydJTkRFTlQgVEFCUycsICcnLCB1bmZpbHRlcmVkZmlsZSwg
MTFdXQorCisKK2RlZiB0ZXN0X3BhcnNlX3doaXRlbGlzdCgpOgorICAgIGlucHV0X2J1ZmZlciA9
IHNpeC5TdHJpbmdJTygiIiIKKyMgQ29tbWVudAorQ1IgQVQgRU9MOiBzdmcvaW1wb3J0LyoKK0NS
IEFUIEVPTDogc3RyZWFtcy9yZXNvdXJjZXMvdGVzdC11dGlscy5qcworCitJTkRFTlQgVEFCUzog
LmdpdG1vZHVsZXMKK0lOREVOVCBUQUJTOiBhcHAtdXJpLyoKK0lOREVOVCBUQUJTOiBzdmcvKgor
CitUUkFJTElORyBXSElURVNQQUNFOiBhcHAtdXJpLyoKKworQ09OU09MRTpzdHJlYW1zL3Jlc291
cmNlcy90ZXN0LXV0aWxzLmpzOiAxMgorCitDUiBBVCBFT0wsIElOREVOVCBUQUJTOiBodG1sL3Rl
c3QuanMKKworQ1IgQVQgRU9MLCBJTkRFTlQgVEFCUzogaHRtbC90ZXN0Mi5qczogNDIKKworKjoq
LnBkZgorKjpyZXNvdXJjZXMvKgorCisqLCBDUiBBVCBFT0w6ICoucG5nCisiIiIpCisKKyAgICBl
eHBlY3RlZF9kYXRhID0geworICAgICAgICAnSU5ERU5UIFRBQlMnOiB7CisgICAgICAgICAgICAn
LmdpdG1vZHVsZXMnOiB7Tm9uZX0sCisgICAgICAgICAgICAnYXBwLXVyaS8qJzoge05vbmV9LAor
ICAgICAgICAgICAgJ3N2Zy8qJzoge05vbmV9LAorICAgICAgICAgICAgJ2h0bWwvdGVzdC5qcyc6
IHtOb25lfSwKKyAgICAgICAgICAgICdodG1sL3Rlc3QyLmpzJzogezQyfSwKKyAgICAgICAgfSwK
KyAgICAgICAgJ1RSQUlMSU5HIFdISVRFU1BBQ0UnOiB7CisgICAgICAgICAgICAnYXBwLXVyaS8q
Jzoge05vbmV9LAorICAgICAgICB9LAorICAgICAgICAnQ09OU09MRSc6IHsKKyAgICAgICAgICAg
ICdzdHJlYW1zL3Jlc291cmNlcy90ZXN0LXV0aWxzLmpzJzogezEyfSwKKyAgICAgICAgfSwKKyAg
ICAgICAgJ0NSIEFUIEVPTCc6IHsKKyAgICAgICAgICAgICdzdHJlYW1zL3Jlc291cmNlcy90ZXN0
LXV0aWxzLmpzJzoge05vbmV9LAorICAgICAgICAgICAgJ3N2Zy9pbXBvcnQvKic6IHtOb25lfSwK
KyAgICAgICAgICAgICdodG1sL3Rlc3QuanMnOiB7Tm9uZX0sCisgICAgICAgICAgICAnaHRtbC90
ZXN0Mi5qcyc6IHs0Mn0sCisgICAgICAgIH0KKyAgICB9CisgICAgZXhwZWN0ZWRfZGF0YSA9IHtl
OiB7b3MucGF0aC5ub3JtY2FzZShrKTogdiBmb3IgaywgdiBpbiBwLml0ZW1zKCl9CisgICAgICAg
ICAgICAgICAgICAgICBmb3IgZSwgcCBpbiBleHBlY3RlZF9kYXRhLml0ZW1zKCl9CisgICAgZXhw
ZWN0ZWRfaWdub3JlZCA9IHtvcy5wYXRoLm5vcm1jYXNlKHgpIGZvciB4IGluIHsiKi5wZGYiLCAi
cmVzb3VyY2VzLyoiLCAiKi5wbmcifX0KKyAgICBkYXRhLCBpZ25vcmVkID0gcGFyc2Vfd2hpdGVs
aXN0KGlucHV0X2J1ZmZlcikKKyAgICBhc3NlcnQgZGF0YSA9PSBleHBlY3RlZF9kYXRhCisgICAg
YXNzZXJ0IGlnbm9yZWQgPT0gZXhwZWN0ZWRfaWdub3JlZAorCisKK2RlZiB0ZXN0X2xpbnRfbm9f
ZmlsZXMoY2FwbG9nKToKKyAgICBydiA9IGxpbnQoX2R1bW15X3JlcG8sIFtdLCAibm9ybWFsIikK
KyAgICBhc3NlcnQgcnYgPT0gMAorICAgIGFzc2VydCBjYXBsb2cudGV4dCA9PSAiIgorCisKK2Rl
ZiB0ZXN0X2xpbnRfaWdub3JlZF9maWxlKGNhcGxvZyk6CisgICAgd2l0aCBfbW9ja19saW50KCJj
aGVja19wYXRoIikgYXMgbW9ja2VkX2NoZWNrX3BhdGg6CisgICAgICAgIHdpdGggX21vY2tfbGlu
dCgiY2hlY2tfZmlsZV9jb250ZW50cyIpIGFzIG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzOgor
ICAgICAgICAgICAgcnYgPSBsaW50KF9kdW1teV9yZXBvLCBbImJyb2tlbl9pZ25vcmVkLmh0bWwi
XSwgIm5vcm1hbCIpCisgICAgICAgICAgICBhc3NlcnQgcnYgPT0gMAorICAgICAgICAgICAgYXNz
ZXJ0IG5vdCBtb2NrZWRfY2hlY2tfcGF0aC5jYWxsZWQKKyAgICAgICAgICAgIGFzc2VydCBub3Qg
bW9ja2VkX2NoZWNrX2ZpbGVfY29udGVudHMuY2FsbGVkCisgICAgYXNzZXJ0IGNhcGxvZy50ZXh0
ID09ICIiCisKKworZGVmIHRlc3RfbGludF9ub3RfZXhpc3RpbmdfZmlsZShjYXBsb2cpOgorICAg
IHdpdGggX21vY2tfbGludCgiY2hlY2tfcGF0aCIpIGFzIG1vY2tlZF9jaGVja19wYXRoOgorICAg
ICAgICB3aXRoIF9tb2NrX2xpbnQoImNoZWNrX2ZpbGVfY29udGVudHMiKSBhcyBtb2NrZWRfY2hl
Y2tfZmlsZV9jb250ZW50czoKKyAgICAgICAgICAgICMgcmVhbGx5IGxvbmcgcGF0aC1saW50ZWQg
ZmlsZW5hbWUKKyAgICAgICAgICAgIG5hbWUgPSAiYSIgKiAyNTYgKyAiLmh0bWwiCisgICAgICAg
ICAgICBydiA9IGxpbnQoX2R1bW15X3JlcG8sIFtuYW1lXSwgIm5vcm1hbCIpCisgICAgICAgICAg
ICBhc3NlcnQgcnYgPT0gMAorICAgICAgICAgICAgYXNzZXJ0IG5vdCBtb2NrZWRfY2hlY2tfcGF0
aC5jYWxsZWQKKyAgICAgICAgICAgIGFzc2VydCBub3QgbW9ja2VkX2NoZWNrX2ZpbGVfY29udGVu
dHMuY2FsbGVkCisgICAgYXNzZXJ0IGNhcGxvZy50ZXh0ID09ICIiCisKKworZGVmIHRlc3RfbGlu
dF9wYXNzaW5nKGNhcGxvZyk6CisgICAgd2l0aCBfbW9ja19saW50KCJjaGVja19wYXRoIikgYXMg
bW9ja2VkX2NoZWNrX3BhdGg6CisgICAgICAgIHdpdGggX21vY2tfbGludCgiY2hlY2tfZmlsZV9j
b250ZW50cyIpIGFzIG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzOgorICAgICAgICAgICAgcnYg
PSBsaW50KF9kdW1teV9yZXBvLCBbIm9rYXkuaHRtbCJdLCAibm9ybWFsIikKKyAgICAgICAgICAg
IGFzc2VydCBydiA9PSAwCisgICAgICAgICAgICBhc3NlcnQgbW9ja2VkX2NoZWNrX3BhdGguY2Fs
bF9jb3VudCA9PSAxCisgICAgICAgICAgICBhc3NlcnQgbW9ja2VkX2NoZWNrX2ZpbGVfY29udGVu
dHMuY2FsbF9jb3VudCA9PSAxCisgICAgYXNzZXJ0IGNhcGxvZy50ZXh0ID09ICIiCisKKworZGVm
IHRlc3RfbGludF9mYWlsaW5nKGNhcGxvZyk6CisgICAgd2l0aCBfbW9ja19saW50KCJjaGVja19w
YXRoIikgYXMgbW9ja2VkX2NoZWNrX3BhdGg6CisgICAgICAgIHdpdGggX21vY2tfbGludCgiY2hl
Y2tfZmlsZV9jb250ZW50cyIpIGFzIG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzOgorICAgICAg
ICAgICAgcnYgPSBsaW50KF9kdW1teV9yZXBvLCBbImJyb2tlbi5odG1sIl0sICJub3JtYWwiKQor
ICAgICAgICAgICAgYXNzZXJ0IHJ2ID09IDEKKyAgICAgICAgICAgIGFzc2VydCBtb2NrZWRfY2hl
Y2tfcGF0aC5jYWxsX2NvdW50ID09IDEKKyAgICAgICAgICAgIGFzc2VydCBtb2NrZWRfY2hlY2tf
ZmlsZV9jb250ZW50cy5jYWxsX2NvdW50ID09IDEKKyAgICBhc3NlcnQgIlRSQUlMSU5HIFdISVRF
U1BBQ0UiIGluIGNhcGxvZy50ZXh0CisgICAgYXNzZXJ0ICJicm9rZW4uaHRtbDoxIiBpbiBjYXBs
b2cudGV4dAorCisKK2RlZiB0ZXN0X3JlZl9leGlzdGVudF9yZWxhdGl2ZShjYXBsb2cpOgorICAg
IHdpdGggX21vY2tfbGludCgiY2hlY2tfcGF0aCIpIGFzIG1vY2tlZF9jaGVja19wYXRoOgorICAg
ICAgICB3aXRoIF9tb2NrX2xpbnQoImNoZWNrX2ZpbGVfY29udGVudHMiKSBhcyBtb2NrZWRfY2hl
Y2tfZmlsZV9jb250ZW50czoKKyAgICAgICAgICAgIHJ2ID0gbGludChfZHVtbXlfcmVwbywgWyJy
ZWYvZXhpc3RlbnRfcmVsYXRpdmUuaHRtbCJdLCAibm9ybWFsIikKKyAgICAgICAgICAgIGFzc2Vy
dCBydiA9PSAwCisgICAgICAgICAgICBhc3NlcnQgbW9ja2VkX2NoZWNrX3BhdGguY2FsbF9jb3Vu
dCA9PSAxCisgICAgICAgICAgICBhc3NlcnQgbW9ja2VkX2NoZWNrX2ZpbGVfY29udGVudHMuY2Fs
bF9jb3VudCA9PSAxCisgICAgYXNzZXJ0IGNhcGxvZy50ZXh0ID09ICIiCisKKworZGVmIHRlc3Rf
cmVmX2V4aXN0ZW50X3Jvb3RfcmVsYXRpdmUoY2FwbG9nKToKKyAgICB3aXRoIF9tb2NrX2xpbnQo
ImNoZWNrX3BhdGgiKSBhcyBtb2NrZWRfY2hlY2tfcGF0aDoKKyAgICAgICAgd2l0aCBfbW9ja19s
aW50KCJjaGVja19maWxlX2NvbnRlbnRzIikgYXMgbW9ja2VkX2NoZWNrX2ZpbGVfY29udGVudHM6
CisgICAgICAgICAgICBydiA9IGxpbnQoX2R1bW15X3JlcG8sIFsicmVmL2V4aXN0ZW50X3Jvb3Rf
cmVsYXRpdmUuaHRtbCJdLCAibm9ybWFsIikKKyAgICAgICAgICAgIGFzc2VydCBydiA9PSAwCisg
ICAgICAgICAgICBhc3NlcnQgbW9ja2VkX2NoZWNrX3BhdGguY2FsbF9jb3VudCA9PSAxCisgICAg
ICAgICAgICBhc3NlcnQgbW9ja2VkX2NoZWNrX2ZpbGVfY29udGVudHMuY2FsbF9jb3VudCA9PSAx
CisgICAgYXNzZXJ0IGNhcGxvZy50ZXh0ID09ICIiCisKKworZGVmIHRlc3RfcmVmX25vbl9leGlz
dGVudF9yZWxhdGl2ZShjYXBsb2cpOgorICAgIHdpdGggX21vY2tfbGludCgiY2hlY2tfcGF0aCIp
IGFzIG1vY2tlZF9jaGVja19wYXRoOgorICAgICAgICB3aXRoIF9tb2NrX2xpbnQoImNoZWNrX2Zp
bGVfY29udGVudHMiKSBhcyBtb2NrZWRfY2hlY2tfZmlsZV9jb250ZW50czoKKyAgICAgICAgICAg
IHJ2ID0gbGludChfZHVtbXlfcmVwbywgWyJyZWYvbm9uX2V4aXN0ZW50X3JlbGF0aXZlLmh0bWwi
XSwgIm5vcm1hbCIpCisgICAgICAgICAgICBhc3NlcnQgcnYgPT0gMQorICAgICAgICAgICAgYXNz
ZXJ0IG1vY2tlZF9jaGVja19wYXRoLmNhbGxfY291bnQgPT0gMQorICAgICAgICAgICAgYXNzZXJ0
IG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzLmNhbGxfY291bnQgPT0gMQorICAgIGFzc2VydCAi
Tk9OLUVYSVNURU5ULVJFRiIgaW4gY2FwbG9nLnRleHQKKyAgICBhc3NlcnQgInJlZi9ub25fZXhp
c3RlbnRfcmVsYXRpdmUuaHRtbCIgaW4gY2FwbG9nLnRleHQKKyAgICBhc3NlcnQgIm5vbl9leGlz
dGVudF9maWxlLmh0bWwiIGluIGNhcGxvZy50ZXh0CisKKworZGVmIHRlc3RfcmVmX25vbl9leGlz
dGVudF9yb290X3JlbGF0aXZlKGNhcGxvZyk6CisgICAgd2l0aCBfbW9ja19saW50KCJjaGVja19w
YXRoIikgYXMgbW9ja2VkX2NoZWNrX3BhdGg6CisgICAgICAgIHdpdGggX21vY2tfbGludCgiY2hl
Y2tfZmlsZV9jb250ZW50cyIpIGFzIG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzOgorICAgICAg
ICAgICAgcnYgPSBsaW50KF9kdW1teV9yZXBvLCBbInJlZi9ub25fZXhpc3RlbnRfcm9vdF9yZWxh
dGl2ZS5odG1sIl0sICJub3JtYWwiKQorICAgICAgICAgICAgYXNzZXJ0IHJ2ID09IDEKKyAgICAg
ICAgICAgIGFzc2VydCBtb2NrZWRfY2hlY2tfcGF0aC5jYWxsX2NvdW50ID09IDEKKyAgICAgICAg
ICAgIGFzc2VydCBtb2NrZWRfY2hlY2tfZmlsZV9jb250ZW50cy5jYWxsX2NvdW50ID09IDEKKyAg
ICBhc3NlcnQgIk5PTi1FWElTVEVOVC1SRUYiIGluIGNhcGxvZy50ZXh0CisgICAgYXNzZXJ0ICJy
ZWYvbm9uX2V4aXN0ZW50X3Jvb3RfcmVsYXRpdmUuaHRtbCIgaW4gY2FwbG9nLnRleHQKKyAgICBh
c3NlcnQgIi9ub25fZXhpc3RlbnRfZmlsZS5odG1sIiBpbiBjYXBsb2cudGV4dAorCisKKworZGVm
IHRlc3RfcmVmX2Fic29sdXRlX3VybChjYXBsb2cpOgorICAgIHdpdGggX21vY2tfbGludCgiY2hl
Y2tfcGF0aCIpIGFzIG1vY2tlZF9jaGVja19wYXRoOgorICAgICAgICB3aXRoIF9tb2NrX2xpbnQo
ImNoZWNrX2ZpbGVfY29udGVudHMiKSBhcyBtb2NrZWRfY2hlY2tfZmlsZV9jb250ZW50czoKKyAg
ICAgICAgICAgIHJ2ID0gbGludChfZHVtbXlfcmVwbywgWyJyZWYvYWJzb2x1dGUuaHRtbCJdLCAi
bm9ybWFsIikKKyAgICAgICAgICAgIGFzc2VydCBydiA9PSAxCisgICAgICAgICAgICBhc3NlcnQg
bW9ja2VkX2NoZWNrX3BhdGguY2FsbF9jb3VudCA9PSAxCisgICAgICAgICAgICBhc3NlcnQgbW9j
a2VkX2NoZWNrX2ZpbGVfY29udGVudHMuY2FsbF9jb3VudCA9PSAxCisgICAgYXNzZXJ0ICJBQlNP
TFVURS1VUkwtUkVGIiBpbiBjYXBsb2cudGV4dAorICAgIGFzc2VydCAiaHR0cDovL2V4YW1wbGUu
Y29tL3JlZmVyZW5jZS5odG1sIiBpbiBjYXBsb2cudGV4dAorICAgIGFzc2VydCAicmVmL2Fic29s
dXRlLmh0bWwiIGluIGNhcGxvZy50ZXh0CisKKworZGVmIHRlc3RfYWJvdXRfYmxhbmtfYXNfcmVm
KGNhcGxvZyk6CisgICAgd2l0aCBfbW9ja19saW50KCJjaGVja19wYXRoIikgYXMgbW9ja2VkX2No
ZWNrX3BhdGg6CisgICAgICAgIHdpdGggX21vY2tfbGludCgiY2hlY2tfZmlsZV9jb250ZW50cyIp
IGFzIG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzOgorICAgICAgICAgICAgcnYgPSBsaW50KF9k
dW1teV9yZXBvLCBbImFib3V0X2JsYW5rLXJlZi5odG1sIl0sICJub3JtYWwiKQorICAgICAgICAg
ICAgYXNzZXJ0IHJ2ID09IDAKKyAgICAgICAgICAgIGFzc2VydCBub3QgbW9ja2VkX2NoZWNrX3Bh
dGguY2FsbGVkCisgICAgICAgICAgICBhc3NlcnQgbm90IG1vY2tlZF9jaGVja19maWxlX2NvbnRl
bnRzLmNhbGxlZAorICAgIGFzc2VydCBjYXBsb2cudGV4dCA9PSAiIgorCisKK2RlZiB0ZXN0X3Jl
Zl9zYW1lX2ZpbGVfZW1wdHkoY2FwbG9nKToKKyAgICB3aXRoIF9tb2NrX2xpbnQoImNoZWNrX3Bh
dGgiKSBhcyBtb2NrZWRfY2hlY2tfcGF0aDoKKyAgICAgICAgd2l0aCBfbW9ja19saW50KCJjaGVj
a19maWxlX2NvbnRlbnRzIikgYXMgbW9ja2VkX2NoZWNrX2ZpbGVfY29udGVudHM6CisgICAgICAg
ICAgICBydiA9IGxpbnQoX2R1bW15X3JlcG8sIFsicmVmL3NhbWVfZmlsZV9lbXB0eS5odG1sIl0s
ICJub3JtYWwiKQorICAgICAgICAgICAgYXNzZXJ0IHJ2ID09IDEKKyAgICAgICAgICAgIGFzc2Vy
dCBtb2NrZWRfY2hlY2tfcGF0aC5jYWxsX2NvdW50ID09IDEKKyAgICAgICAgICAgIGFzc2VydCBt
b2NrZWRfY2hlY2tfZmlsZV9jb250ZW50cy5jYWxsX2NvdW50ID09IDEKKyAgICBhc3NlcnQgIlNB
TUUtRklMRS1SRUYiIGluIGNhcGxvZy50ZXh0CisgICAgYXNzZXJ0ICJzYW1lX2ZpbGVfZW1wdHku
aHRtbCIgaW4gY2FwbG9nLnRleHQKKworCitkZWYgdGVzdF9yZWZfc2FtZV9maWxlX3BhdGgoY2Fw
bG9nKToKKyAgICB3aXRoIF9tb2NrX2xpbnQoImNoZWNrX3BhdGgiKSBhcyBtb2NrZWRfY2hlY2tf
cGF0aDoKKyAgICAgICAgd2l0aCBfbW9ja19saW50KCJjaGVja19maWxlX2NvbnRlbnRzIikgYXMg
bW9ja2VkX2NoZWNrX2ZpbGVfY29udGVudHM6CisgICAgICAgICAgICBydiA9IGxpbnQoX2R1bW15
X3JlcG8sIFsicmVmL3NhbWVfZmlsZV9wYXRoLmh0bWwiXSwgIm5vcm1hbCIpCisgICAgICAgICAg
ICBhc3NlcnQgcnYgPT0gMQorICAgICAgICAgICAgYXNzZXJ0IG1vY2tlZF9jaGVja19wYXRoLmNh
bGxfY291bnQgPT0gMQorICAgICAgICAgICAgYXNzZXJ0IG1vY2tlZF9jaGVja19maWxlX2NvbnRl
bnRzLmNhbGxfY291bnQgPT0gMQorICAgIGFzc2VydCAiU0FNRS1GSUxFLVJFRiIgaW4gY2FwbG9n
LnRleHQKKyAgICBhc3NlcnQgInNhbWVfZmlsZV9wYXRoLmh0bWwiIGluIGNhcGxvZy50ZXh0CisK
KworZGVmIHRlc3RfbGludF9wYXNzaW5nX2FuZF9mYWlsaW5nKGNhcGxvZyk6CisgICAgd2l0aCBf
bW9ja19saW50KCJjaGVja19wYXRoIikgYXMgbW9ja2VkX2NoZWNrX3BhdGg6CisgICAgICAgIHdp
dGggX21vY2tfbGludCgiY2hlY2tfZmlsZV9jb250ZW50cyIpIGFzIG1vY2tlZF9jaGVja19maWxl
X2NvbnRlbnRzOgorICAgICAgICAgICAgcnYgPSBsaW50KF9kdW1teV9yZXBvLCBbImJyb2tlbi5o
dG1sIiwgIm9rYXkuaHRtbCJdLCAibm9ybWFsIikKKyAgICAgICAgICAgIGFzc2VydCBydiA9PSAx
CisgICAgICAgICAgICBhc3NlcnQgbW9ja2VkX2NoZWNrX3BhdGguY2FsbF9jb3VudCA9PSAyCisg
ICAgICAgICAgICBhc3NlcnQgbW9ja2VkX2NoZWNrX2ZpbGVfY29udGVudHMuY2FsbF9jb3VudCA9
PSAyCisgICAgYXNzZXJ0ICJUUkFJTElORyBXSElURVNQQUNFIiBpbiBjYXBsb2cudGV4dAorICAg
IGFzc2VydCAiYnJva2VuLmh0bWw6MSIgaW4gY2FwbG9nLnRleHQKKyAgICBhc3NlcnQgIm9rYXku
aHRtbCIgbm90IGluIGNhcGxvZy50ZXh0CisKKworZGVmIHRlc3RfY2hlY2tfY3NzX2dsb2JhbGx5
X3VuaXF1ZV9pZGVudGljYWxfdGVzdChjYXBsb2cpOgorICAgIHdpdGggX21vY2tfbGludCgiY2hl
Y2tfcGF0aCIpIGFzIG1vY2tlZF9jaGVja19wYXRoOgorICAgICAgICB3aXRoIF9tb2NrX2xpbnQo
ImNoZWNrX2ZpbGVfY29udGVudHMiKSBhcyBtb2NrZWRfY2hlY2tfZmlsZV9jb250ZW50czoKKyAg
ICAgICAgICAgIHJ2ID0gbGludChfZHVtbXlfcmVwbywgWyJjc3MvY3NzLXVuaXF1ZS9tYXRjaC9h
Lmh0bWwiLCAiY3NzL2Nzcy11bmlxdWUvYS5odG1sIl0sICJub3JtYWwiKQorICAgICAgICAgICAg
YXNzZXJ0IHJ2ID09IDAKKyAgICAgICAgICAgIGFzc2VydCBtb2NrZWRfY2hlY2tfcGF0aC5jYWxs
X2NvdW50ID09IDIKKyAgICAgICAgICAgIGFzc2VydCBtb2NrZWRfY2hlY2tfZmlsZV9jb250ZW50
cy5jYWxsX2NvdW50ID09IDIKKyAgICBhc3NlcnQgY2FwbG9nLnRleHQgPT0gIiIKKworCitkZWYg
dGVzdF9jaGVja19jc3NfZ2xvYmFsbHlfdW5pcXVlX2RpZmZlcmVudF90ZXN0KGNhcGxvZyk6Cisg
ICAgd2l0aCBfbW9ja19saW50KCJjaGVja19wYXRoIikgYXMgbW9ja2VkX2NoZWNrX3BhdGg6Cisg
ICAgICAgIHdpdGggX21vY2tfbGludCgiY2hlY2tfZmlsZV9jb250ZW50cyIpIGFzIG1vY2tlZF9j
aGVja19maWxlX2NvbnRlbnRzOgorICAgICAgICAgICAgcnYgPSBsaW50KF9kdW1teV9yZXBvLCBb
ImNzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC9hLmh0bWwiLCAiY3NzL2Nzcy11bmlxdWUvYS5odG1s
Il0sICJub3JtYWwiKQorICAgICAgICAgICAgYXNzZXJ0IHJ2ID09IDIKKyAgICAgICAgICAgIGFz
c2VydCBtb2NrZWRfY2hlY2tfcGF0aC5jYWxsX2NvdW50ID09IDIKKyAgICAgICAgICAgIGFzc2Vy
dCBtb2NrZWRfY2hlY2tfZmlsZV9jb250ZW50cy5jYWxsX2NvdW50ID09IDIKKyAgICBhc3NlcnQg
IkNTUy1DT0xMSURJTkctVEVTVC1OQU1FIiBpbiBjYXBsb2cudGV4dAorCisKK2RlZiB0ZXN0X2No
ZWNrX2Nzc19nbG9iYWxseV91bmlxdWVfZGlmZmVyZW50X3NwZWNfdGVzdChjYXBsb2cpOgorICAg
IHdpdGggX21vY2tfbGludCgiY2hlY2tfcGF0aCIpIGFzIG1vY2tlZF9jaGVja19wYXRoOgorICAg
ICAgICB3aXRoIF9tb2NrX2xpbnQoImNoZWNrX2ZpbGVfY29udGVudHMiKSBhcyBtb2NrZWRfY2hl
Y2tfZmlsZV9jb250ZW50czoKKyAgICAgICAgICAgIHJ2ID0gbGludChfZHVtbXlfcmVwbywgWyJj
c3MvY3NzLXVuaXF1ZS9zZWxlY3RvcnMvYS5odG1sIiwgImNzcy9jc3MtdW5pcXVlL2EuaHRtbCJd
LCAibm9ybWFsIikKKyAgICAgICAgICAgIGFzc2VydCBydiA9PSAwCisgICAgICAgICAgICBhc3Nl
cnQgbW9ja2VkX2NoZWNrX3BhdGguY2FsbF9jb3VudCA9PSAyCisgICAgICAgICAgICBhc3NlcnQg
bW9ja2VkX2NoZWNrX2ZpbGVfY29udGVudHMuY2FsbF9jb3VudCA9PSAyCisgICAgYXNzZXJ0IGNh
cGxvZy50ZXh0ID09ICIiCisKKworZGVmIHRlc3RfY2hlY2tfY3NzX2dsb2JhbGx5X3VuaXF1ZV9z
dXBwb3J0X2lnbm9yZWQoY2FwbG9nKToKKyAgICB3aXRoIF9tb2NrX2xpbnQoImNoZWNrX3BhdGgi
KSBhcyBtb2NrZWRfY2hlY2tfcGF0aDoKKyAgICAgICAgd2l0aCBfbW9ja19saW50KCJjaGVja19m
aWxlX2NvbnRlbnRzIikgYXMgbW9ja2VkX2NoZWNrX2ZpbGVfY29udGVudHM6CisgICAgICAgICAg
ICBydiA9IGxpbnQoX2R1bW15X3JlcG8sIFsiY3NzL2Nzcy11bmlxdWUvc3VwcG9ydC9hLmh0bWwi
LCAiY3NzL2Nzcy11bmlxdWUvc3VwcG9ydC90b29scy9hLmh0bWwiXSwgIm5vcm1hbCIpCisgICAg
ICAgICAgICBhc3NlcnQgcnYgPT0gMAorICAgICAgICAgICAgYXNzZXJ0IG1vY2tlZF9jaGVja19w
YXRoLmNhbGxfY291bnQgPT0gMgorICAgICAgICAgICAgYXNzZXJ0IG1vY2tlZF9jaGVja19maWxl
X2NvbnRlbnRzLmNhbGxfY291bnQgPT0gMgorICAgIGFzc2VydCBjYXBsb2cudGV4dCA9PSAiIgor
CisKK2RlZiB0ZXN0X2NoZWNrX2Nzc19nbG9iYWxseV91bmlxdWVfc3VwcG9ydF9pZGVudGljYWwo
Y2FwbG9nKToKKyAgICB3aXRoIF9tb2NrX2xpbnQoImNoZWNrX3BhdGgiKSBhcyBtb2NrZWRfY2hl
Y2tfcGF0aDoKKyAgICAgICAgd2l0aCBfbW9ja19saW50KCJjaGVja19maWxlX2NvbnRlbnRzIikg
YXMgbW9ja2VkX2NoZWNrX2ZpbGVfY29udGVudHM6CisgICAgICAgICAgICBydiA9IGxpbnQoX2R1
bW15X3JlcG8sIFsiY3NzL2Nzcy11bmlxdWUvc3VwcG9ydC9hLmh0bWwiLCAiY3NzL2Nzcy11bmlx
dWUvbWF0Y2gvc3VwcG9ydC9hLmh0bWwiXSwgIm5vcm1hbCIpCisgICAgICAgICAgICBhc3NlcnQg
cnYgPT0gMAorICAgICAgICAgICAgYXNzZXJ0IG1vY2tlZF9jaGVja19wYXRoLmNhbGxfY291bnQg
PT0gMgorICAgICAgICAgICAgYXNzZXJ0IG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzLmNhbGxf
Y291bnQgPT0gMgorICAgIGFzc2VydCBjYXBsb2cudGV4dCA9PSAiIgorCisKK2RlZiB0ZXN0X2No
ZWNrX2Nzc19nbG9iYWxseV91bmlxdWVfc3VwcG9ydF9kaWZmZXJlbnQoY2FwbG9nKToKKyAgICB3
aXRoIF9tb2NrX2xpbnQoImNoZWNrX3BhdGgiKSBhcyBtb2NrZWRfY2hlY2tfcGF0aDoKKyAgICAg
ICAgd2l0aCBfbW9ja19saW50KCJjaGVja19maWxlX2NvbnRlbnRzIikgYXMgbW9ja2VkX2NoZWNr
X2ZpbGVfY29udGVudHM6CisgICAgICAgICAgICBydiA9IGxpbnQoX2R1bW15X3JlcG8sIFsiY3Nz
L2Nzcy11bmlxdWUvbm90LW1hdGNoL3N1cHBvcnQvYS5odG1sIiwgImNzcy9jc3MtdW5pcXVlL3N1
cHBvcnQvYS5odG1sIl0sICJub3JtYWwiKQorICAgICAgICAgICAgYXNzZXJ0IHJ2ID09IDIKKyAg
ICAgICAgICAgIGFzc2VydCBtb2NrZWRfY2hlY2tfcGF0aC5jYWxsX2NvdW50ID09IDIKKyAgICAg
ICAgICAgIGFzc2VydCBtb2NrZWRfY2hlY2tfZmlsZV9jb250ZW50cy5jYWxsX2NvdW50ID09IDIK
KyAgICBhc3NlcnQgIkNTUy1DT0xMSURJTkctU1VQUE9SVC1OQU1FIiBpbiBjYXBsb2cudGV4dAor
CisKK2RlZiB0ZXN0X2NoZWNrX2Nzc19nbG9iYWxseV91bmlxdWVfdGVzdF9zdXBwb3J0KGNhcGxv
Zyk6CisgICAgd2l0aCBfbW9ja19saW50KCJjaGVja19wYXRoIikgYXMgbW9ja2VkX2NoZWNrX3Bh
dGg6CisgICAgICAgIHdpdGggX21vY2tfbGludCgiY2hlY2tfZmlsZV9jb250ZW50cyIpIGFzIG1v
Y2tlZF9jaGVja19maWxlX2NvbnRlbnRzOgorICAgICAgICAgICAgcnYgPSBsaW50KF9kdW1teV9y
ZXBvLCBbImNzcy9jc3MtdW5pcXVlL3N1cHBvcnQvYS5odG1sIiwgImNzcy9jc3MtdW5pcXVlL2Eu
aHRtbCJdLCAibm9ybWFsIikKKyAgICAgICAgICAgIGFzc2VydCBydiA9PSAwCisgICAgICAgICAg
ICBhc3NlcnQgbW9ja2VkX2NoZWNrX3BhdGguY2FsbF9jb3VudCA9PSAyCisgICAgICAgICAgICBh
c3NlcnQgbW9ja2VkX2NoZWNrX2ZpbGVfY29udGVudHMuY2FsbF9jb3VudCA9PSAyCisgICAgYXNz
ZXJ0IGNhcGxvZy50ZXh0ID09ICIiCisKKworZGVmIHRlc3RfY2hlY2tfY3NzX2dsb2JhbGx5X3Vu
aXF1ZV9yZWZfaWRlbnRpY2FsKGNhcGxvZyk6CisgICAgd2l0aCBfbW9ja19saW50KCJjaGVja19w
YXRoIikgYXMgbW9ja2VkX2NoZWNrX3BhdGg6CisgICAgICAgIHdpdGggX21vY2tfbGludCgiY2hl
Y2tfZmlsZV9jb250ZW50cyIpIGFzIG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzOgorICAgICAg
ICAgICAgcnYgPSBsaW50KF9kdW1teV9yZXBvLCBbImNzcy9jc3MtdW5pcXVlL2EtcmVmLmh0bWwi
LCAiY3NzL2Nzcy11bmlxdWUvbWF0Y2gvYS1yZWYuaHRtbCJdLCAibm9ybWFsIikKKyAgICAgICAg
ICAgIGFzc2VydCBydiA9PSAwCisgICAgICAgICAgICBhc3NlcnQgbW9ja2VkX2NoZWNrX3BhdGgu
Y2FsbF9jb3VudCA9PSAyCisgICAgICAgICAgICBhc3NlcnQgbW9ja2VkX2NoZWNrX2ZpbGVfY29u
dGVudHMuY2FsbF9jb3VudCA9PSAyCisgICAgYXNzZXJ0IGNhcGxvZy50ZXh0ID09ICIiCisKKwor
ZGVmIHRlc3RfY2hlY2tfY3NzX2dsb2JhbGx5X3VuaXF1ZV9yZWZfZGlmZmVyZW50KGNhcGxvZyk6
CisgICAgd2l0aCBfbW9ja19saW50KCJjaGVja19wYXRoIikgYXMgbW9ja2VkX2NoZWNrX3BhdGg6
CisgICAgICAgIHdpdGggX21vY2tfbGludCgiY2hlY2tfZmlsZV9jb250ZW50cyIpIGFzIG1vY2tl
ZF9jaGVja19maWxlX2NvbnRlbnRzOgorICAgICAgICAgICAgcnYgPSBsaW50KF9kdW1teV9yZXBv
LCBbImNzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC9hLXJlZi5odG1sIiwgImNzcy9jc3MtdW5pcXVl
L2EtcmVmLmh0bWwiXSwgIm5vcm1hbCIpCisgICAgICAgICAgICBhc3NlcnQgcnYgPT0gMgorICAg
ICAgICAgICAgYXNzZXJ0IG1vY2tlZF9jaGVja19wYXRoLmNhbGxfY291bnQgPT0gMgorICAgICAg
ICAgICAgYXNzZXJ0IG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzLmNhbGxfY291bnQgPT0gMgor
ICAgIGFzc2VydCAiQ1NTLUNPTExJRElORy1SRUYtTkFNRSIgaW4gY2FwbG9nLnRleHQKKworCitk
ZWYgdGVzdF9jaGVja19jc3NfZ2xvYmFsbHlfdW5pcXVlX3Rlc3RfcmVmKGNhcGxvZyk6CisgICAg
d2l0aCBfbW9ja19saW50KCJjaGVja19wYXRoIikgYXMgbW9ja2VkX2NoZWNrX3BhdGg6CisgICAg
ICAgIHdpdGggX21vY2tfbGludCgiY2hlY2tfZmlsZV9jb250ZW50cyIpIGFzIG1vY2tlZF9jaGVj
a19maWxlX2NvbnRlbnRzOgorICAgICAgICAgICAgcnYgPSBsaW50KF9kdW1teV9yZXBvLCBbImNz
cy9jc3MtdW5pcXVlL2EtcmVmLmh0bWwiLCAiY3NzL2Nzcy11bmlxdWUvYS5odG1sIl0sICJub3Jt
YWwiKQorICAgICAgICAgICAgYXNzZXJ0IHJ2ID09IDAKKyAgICAgICAgICAgIGFzc2VydCBtb2Nr
ZWRfY2hlY2tfcGF0aC5jYWxsX2NvdW50ID09IDIKKyAgICAgICAgICAgIGFzc2VydCBtb2NrZWRf
Y2hlY2tfZmlsZV9jb250ZW50cy5jYWxsX2NvdW50ID09IDIKKyAgICBhc3NlcnQgY2FwbG9nLnRl
eHQgPT0gIiIKKworCitkZWYgdGVzdF9jaGVja19jc3NfZ2xvYmFsbHlfdW5pcXVlX2lnbm9yZWQo
Y2FwbG9nKToKKyAgICB3aXRoIF9tb2NrX2xpbnQoImNoZWNrX3BhdGgiKSBhcyBtb2NrZWRfY2hl
Y2tfcGF0aDoKKyAgICAgICAgd2l0aCBfbW9ja19saW50KCJjaGVja19maWxlX2NvbnRlbnRzIikg
YXMgbW9ja2VkX2NoZWNrX2ZpbGVfY29udGVudHM6CisgICAgICAgICAgICBydiA9IGxpbnQoX2R1
bW15X3JlcG8sIFsiY3NzL2Nzcy11bmlxdWUvdG9vbHMvYS5odG1sIiwgImNzcy9jc3MtdW5pcXVl
L25vdC1tYXRjaC90b29scy9hLmh0bWwiXSwgIm5vcm1hbCIpCisgICAgICAgICAgICBhc3NlcnQg
cnYgPT0gMAorICAgICAgICAgICAgYXNzZXJ0IG1vY2tlZF9jaGVja19wYXRoLmNhbGxfY291bnQg
PT0gMgorICAgICAgICAgICAgYXNzZXJ0IG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzLmNhbGxf
Y291bnQgPT0gMgorICAgIGFzc2VydCBjYXBsb2cudGV4dCA9PSAiIgorCisKK2RlZiB0ZXN0X2No
ZWNrX2Nzc19nbG9iYWxseV91bmlxdWVfaWdub3JlZF9kaXIoY2FwbG9nKToKKyAgICB3aXRoIF9t
b2NrX2xpbnQoImNoZWNrX3BhdGgiKSBhcyBtb2NrZWRfY2hlY2tfcGF0aDoKKyAgICAgICAgd2l0
aCBfbW9ja19saW50KCJjaGVja19maWxlX2NvbnRlbnRzIikgYXMgbW9ja2VkX2NoZWNrX2ZpbGVf
Y29udGVudHM6CisgICAgICAgICAgICBydiA9IGxpbnQoX2R1bW15X3JlcG8sIFsiY3NzL2Nzcy11
bmlxdWUvc3VwcG9ydC9hLmh0bWwiXSwgIm5vcm1hbCIpCisgICAgICAgICAgICBhc3NlcnQgcnYg
PT0gMAorICAgICAgICAgICAgYXNzZXJ0IG1vY2tlZF9jaGVja19wYXRoLmNhbGxfY291bnQgPT0g
MQorICAgICAgICAgICAgYXNzZXJ0IG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzLmNhbGxfY291
bnQgPT0gMQorICAgIGFzc2VydCBjYXBsb2cudGV4dCA9PSAiIgorCisKK2RlZiB0ZXN0X2FsbF9m
aWxlc3lzdGVtX3BhdGhzKCk6CisgICAgd2l0aCBtb2NrLnBhdGNoKAorICAgICAgICAgICAgJ29z
LndhbGsnLAorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPVsoJy4nLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgWydkaXJfYScsICdkaXJfYiddLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgWydmaWxlX2EnLCAnZmlsZV9iJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAob3Mu
cGF0aC5qb2luKCcuJywgJ2Rpcl9hJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnZmlsZV9jJywgJ2ZpbGVfZCddKV0KKyAgICAp
IGFzIG06CisgICAgICAgIGdvdCA9IGxpc3QobGludF9tb2QuYWxsX2ZpbGVzeXN0ZW1fcGF0aHMo
Jy4nKSkKKyAgICAgICAgYXNzZXJ0IGdvdCA9PSBbJ2ZpbGVfYScsCisgICAgICAgICAgICAgICAg
ICAgICAgICdmaWxlX2InLAorICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oJ2Rp
cl9hJywgJ2ZpbGVfYycpLAorICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oJ2Rp
cl9hJywgJ2ZpbGVfZCcpXQorCisKK2RlZiB0ZXN0X21haW5fd2l0aF9hcmdzKCk6CisgICAgb3Jp
Z19hcmd2ID0gc3lzLmFyZ3YKKyAgICB0cnk6CisgICAgICAgIHN5cy5hcmd2ID0gWycuL2xpbnQn
LCAnYScsICdiJywgJ2MnXQorICAgICAgICB3aXRoIG1vY2sucGF0Y2gobGludF9tb2QuX19uYW1l
X18gKyAiLm9zLnBhdGguaXNmaWxlIikgYXMgbW9ja19pc2ZpbGU6CisgICAgICAgICAgICBtb2Nr
X2lzZmlsZS5yZXR1cm5fdmFsdWUgPSBUcnVlCisgICAgICAgICAgICB3aXRoIF9tb2NrX2xpbnQo
J2xpbnQnLCByZXR1cm5fdmFsdWU9VHJ1ZSkgYXMgbToKKyAgICAgICAgICAgICAgICBsaW50X21v
ZC5tYWluKCoqdmFycyhjcmVhdGVfcGFyc2VyKCkucGFyc2VfYXJncygpKSkKKyAgICAgICAgICAg
ICAgICBtLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKHJlcG9fcm9vdCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcy5wYXRoLnJlbHBhdGgob3MucGF0aC5qb2lu
KG9zLmdldGN3ZCgpLCB4KSwgcmVwb19yb290KQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZvciB4IGluIFsnYScsICdiJywgJ2MnXV0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibm9ybWFsIikKKyAgICBmaW5hbGx5OgorICAg
ICAgICBzeXMuYXJndiA9IG9yaWdfYXJndgorCisKK2RlZiB0ZXN0X21haW5fbm9fYXJncygpOgor
ICAgIG9yaWdfYXJndiA9IHN5cy5hcmd2CisgICAgdHJ5OgorICAgICAgICBzeXMuYXJndiA9IFsn
Li9saW50J10KKyAgICAgICAgd2l0aCBfbW9ja19saW50KCdsaW50JywgcmV0dXJuX3ZhbHVlPVRy
dWUpIGFzIG06CisgICAgICAgICAgICB3aXRoIF9tb2NrX2xpbnQoJ2NoYW5nZWRfZmlsZXMnLCBy
ZXR1cm5fdmFsdWU9Wydmb28nLCAnYmFyJ10pIGFzIG0yOgorICAgICAgICAgICAgICAgIGxpbnRf
bW9kLm1haW4oKip2YXJzKGNyZWF0ZV9wYXJzZXIoKS5wYXJzZV9hcmdzKCkpKQorICAgICAgICAg
ICAgICAgIG0uYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgocmVwb19yb290LCBbJ2ZvbycsICdiYXIn
XSwgIm5vcm1hbCIpCisgICAgZmluYWxseToKKyAgICAgICAgc3lzLmFyZ3YgPSBvcmlnX2FyZ3YK
KworCitkZWYgdGVzdF9tYWluX2FsbCgpOgorICAgIG9yaWdfYXJndiA9IHN5cy5hcmd2CisgICAg
dHJ5OgorICAgICAgICBzeXMuYXJndiA9IFsnLi9saW50JywgJy0tYWxsJ10KKyAgICAgICAgd2l0
aCBfbW9ja19saW50KCdsaW50JywgcmV0dXJuX3ZhbHVlPVRydWUpIGFzIG06CisgICAgICAgICAg
ICB3aXRoIF9tb2NrX2xpbnQoJ2FsbF9maWxlc3lzdGVtX3BhdGhzJywgcmV0dXJuX3ZhbHVlPVsn
Zm9vJywgJ2JhciddKSBhcyBtMjoKKyAgICAgICAgICAgICAgICBsaW50X21vZC5tYWluKCoqdmFy
cyhjcmVhdGVfcGFyc2VyKCkucGFyc2VfYXJncygpKSkKKyAgICAgICAgICAgICAgICBtLmFzc2Vy
dF9jYWxsZWRfb25jZV93aXRoKHJlcG9fcm9vdCwgWydmb28nLCAnYmFyJ10sICJub3JtYWwiKQor
ICAgIGZpbmFsbHk6CisgICAgICAgIHN5cy5hcmd2ID0gb3JpZ19hcmd2CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVz
dHMvdGVzdF9wYXRoX2xpbnRzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL3Rlc3RfcGF0aF9saW50cy5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iNTgxODI4OWVhY2M1ZWU4YTg3OWFjOThiYTIzZWE5MjMzZThmYTdjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9s
aW50L3Rlc3RzL3Rlc3RfcGF0aF9saW50cy5weQpAQCAtMCwwICsxLDQxIEBACitmcm9tIF9fZnV0
dXJlX18gaW1wb3J0IHVuaWNvZGVfbGl0ZXJhbHMKKworZnJvbSAuLmxpbnQgaW1wb3J0IGNoZWNr
X3BhdGgKK2Zyb20gLmJhc2UgaW1wb3J0IGNoZWNrX2Vycm9ycworaW1wb3J0IHB5dGVzdAoraW1w
b3J0IHNpeAorCitkZWYgdGVzdF9hbGxvd2VkX3BhdGhfbGVuZ3RoKCk6CisgICAgYmFzZW5hbWUg
PSAyOSAqICJ0ZXN0LyIKKworICAgIGZvciBpZHggaW4gcmFuZ2UoNSk6CisgICAgICAgIGZpbGVu
YW1lID0gYmFzZW5hbWUgKyBpZHggKiAiYSIKKworICAgICAgICBlcnJvcnMgPSBjaGVja19wYXRo
KCIvZm9vLyIsIGZpbGVuYW1lKQorICAgICAgICBjaGVja19lcnJvcnMoZXJyb3JzKQorICAgICAg
ICBhc3NlcnQgZXJyb3JzID09IFtdCisKKworZGVmIHRlc3RfZm9yYmlkZGVuX3BhdGhfbGVuZ3Ro
KCk6CisgICAgYmFzZW5hbWUgPSAyOSAqICJ0ZXN0LyIKKworICAgIGZvciBpZHggaW4gcmFuZ2Uo
NSwgMTApOgorICAgICAgICBmaWxlbmFtZSA9IGJhc2VuYW1lICsgaWR4ICogImEiCisgICAgICAg
IG1lc3NhZ2UgPSAiLyVzIGxvbmdlciB0aGFuIG1heGltdW0gcGF0aCBsZW5ndGggKCVzID4gMTUw
KSIgJSAoZmlsZW5hbWUsIDE0NiArIGlkeCkKKworICAgICAgICBlcnJvcnMgPSBjaGVja19wYXRo
KCIvZm9vLyIsIGZpbGVuYW1lKQorICAgICAgICBjaGVja19lcnJvcnMoZXJyb3JzKQorICAgICAg
ICBhc3NlcnQgZXJyb3JzID09IFsoIlBBVEggTEVOR1RIIiwgbWVzc2FnZSwgZmlsZW5hbWUsIE5v
bmUpXQorCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInBhdGhfZW5kaW5nLGdlbmVyYXRlZCIs
IFsoIi53b3JrZXIuaHRtbCIsICIud29ya2VyLmpzIiksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIi5hbnkud29ya2VyLmh0bWwiLCAiLmFueS5q
cyIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KCIuYW55Lmh0bWwiLCAiLmFueS5qcyIpXSkKK2RlZiB0ZXN0X2ZvcmJpZGRlbl9wYXRoX2VuZGlu
Z3MocGF0aF9lbmRpbmcsIGdlbmVyYXRlZCk6CisgICAgcGF0aCA9ICIvdGVzdC90ZXN0IiArIHBh
dGhfZW5kaW5nCisKKyAgICBtZXNzYWdlID0gKCJwYXRoIGVuZHMgd2l0aCAlcyB3aGljaCBjb2xs
aWRlcyB3aXRoIGdlbmVyYXRlZCB0ZXN0cyBmcm9tICVzIGZpbGVzIiAlCisgICAgICAgICAgICAg
ICAocGF0aF9lbmRpbmcsIGdlbmVyYXRlZCkpCisKKyAgICBlcnJvcnMgPSBjaGVja19wYXRoKCIv
Zm9vLyIsIHBhdGgpCisgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKKyAgICBhc3NlcnQgZXJyb3Jz
ID09IFsoIldPUktFUiBDT0xMSVNJT04iLCBtZXNzYWdlLCBwYXRoLCBOb25lKV0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGlu
dC90ZXN0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
ZTAyNjdmMzY0YTk5ZjIwZTcxNmY3OTQ0ZmE1MmZmMjg3OGFjMGY1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50
L3Rlc3RzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjEgQEAKK1RoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0
LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1v
dmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9fX2lu
aXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbGludC90ZXN0cy9iYXNlLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL3Rlc3RfZmlsZV9saW50cy5weQorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy90ZXN0
X2xpbnQucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2xpbnQvdGVzdHMvdGVzdF9wYXRoX2xpbnRzLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xp
bnQvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDcxNTI1YWY2YmY3ZmIzODUyYWNlYTliMGQ2
MmI2MWU0MWVlZmViNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsx
LDIwIEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
TGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2xpbnQvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvY29tbWFuZHMuanNvbgorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9mbm1hdGNoLnB5CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L2xpbnQu
cHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbG9jYWxwYXRocy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvbG9jYWxwYXRocy5weQppbmRleCA5ZDU5Y2Y4MTVjNjc2YjkwNmFm
OTMwNmI5NjVhMzBlYTAzMDY1MjExLi44NTA5MTE0YjkzOWM1MDk0ZjQzYjJkYjhhZDQ0ZTVmM2E2
YTU1YjRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2xvY2FscGF0aHMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9sb2NhbHBhdGhzLnB5CkBAIC04LDggKzgsMTEgQEAg
c3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguam9pbihoZXJlKSkKIHN5cy5wYXRoLmluc2VydCgw
LCBvcy5wYXRoLmpvaW4oaGVyZSwgInNpeCIpKQogc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGgu
am9pbihoZXJlLCAiaHRtbDVsaWIiKSkKIHN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4o
aGVyZSwgIndwdHNlcnZlIikpCi1zeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKGhlcmUs
ICJweXdlYnNvY2tldCIsICJzcmMiKSkKLXN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4o
aGVyZSwgInB5IikpCi1zeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKGhlcmUsICJweXRl
c3QiKSkKK3N5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4oaGVyZSwgInB5d2Vic29ja2V0
IikpCitzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKGhlcmUsICJ0aGlyZF9wYXJ0eSIs
ICJhdHRycyIsICJzcmMiKSkKK3N5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmpvaW4oaGVyZSwg
InRoaXJkX3BhcnR5IiwgImZ1bmNzaWdzIikpCitzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5q
b2luKGhlcmUsICJ0aGlyZF9wYXJ0eSIsICJwbHVnZ3kiKSkKK3N5cy5wYXRoLmluc2VydCgwLCBv
cy5wYXRoLmpvaW4oaGVyZSwgInRoaXJkX3BhcnR5IiwgInB5IikpCitzeXMucGF0aC5pbnNlcnQo
MCwgb3MucGF0aC5qb2luKGhlcmUsICJ0aGlyZF9wYXJ0eSIsICJweXRlc3QiKSkKIHN5cy5wYXRo
Lmluc2VydCgwLCBvcy5wYXRoLmpvaW4oaGVyZSwgIndlYmRyaXZlciIpKQogc3lzLnBhdGguaW5z
ZXJ0KDAsIG9zLnBhdGguam9pbihoZXJlLCAid3B0cnVubmVyIikpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L1hN
TFBhcnNlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvbWFuaWZlc3QvWE1MUGFyc2VyLnB5CmluZGV4IDVjZWViMGI1ZjcyNzE5MGYzZDkyOWUx
ZDQxYjkyMGMyNjU0YjFkZDcuLjUyM2Y1NDRiN2M0ZTgzNGI4NWQ5NzBhMzUyYWFiMjhkM2M4NDYx
NDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbWFuaWZlc3QvWE1MUGFyc2VyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvWE1MUGFyc2VyLnB5CkBAIC03
MCw4ICs3MCw4IEBAIGNsYXNzIFhNTFBhcnNlcihvYmplY3QpOgogICAgIGRlZiBfZW5kKHNlbGYs
IHRhZyk6CiAgICAgICAgIHJldHVybiBzZWxmLl90YXJnZXQuZW5kKF9maXhuYW1lKHRhZykpCiAK
LSAgICBkZWYgX2V4dGVybmFsKHNlbGYsIGNvbnRleHQsIGJhc2UsIHN5c3RlbUlkLCBwdWJsaWNJ
ZCk6Ci0gICAgICAgIGlmIHB1YmxpY0lkIGluIHsKKyAgICBkZWYgX2V4dGVybmFsKHNlbGYsIGNv
bnRleHQsIGJhc2UsIHN5c3RlbV9pZCwgcHVibGljX2lkKToKKyAgICAgICAgaWYgcHVibGljX2lk
IGluIHsKICAgICAgICAgICAgICAgICAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25h
bC8vRU4iLAogICAgICAgICAgICAgICAgICItLy9XM0MvL0RURCBYSFRNTCAxLjEvL0VOIiwKICAg
ICAgICAgICAgICAgICAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iLApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9t
YW5pZmVzdC9jb21tYW5kcy5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9jb21tYW5kcy5qc29uCmluZGV4IDMyMmNjNTk4MTFi
YWRhZjQ4NDI3YzY3MGY5MWY1N2U4NmJiZGVjMjguLmQ2Y2NkOTg4MDllZjg5NTE2NjJiZGI5YzBi
ZjA1ZjIzM2VhZTRkYjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvY29tbWFuZHMuanNvbgorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L2NvbW1h
bmRzLmpzb24KQEAgLTEsMyArMSw2IEBACiB7Im1hbmlmZXN0IjoKICB7InBhdGgiOiAidXBkYXRl
LnB5IiwgInNjcmlwdCI6ICJydW4iLCAicGFyc2VyIjogImNyZWF0ZV9wYXJzZXIiLCAiaGVscCI6
ICJVcGRhdGUgdGhlIE1BTklGRVNULmpzb24gZmlsZSIsCisgICJ2aXJ0dWFsZW52IjogZmFsc2V9
LAorICJtYW5pZmVzdC1kb3dubG9hZCI6CisgeyJwYXRoIjogImRvd25sb2FkLnB5IiwgInNjcmlw
dCI6ICJydW4iLCAicGFyc2VyIjogImNyZWF0ZV9wYXJzZXIiLCAiaGVscCI6ICJEb3dubG9hZCBy
ZWNlbnQgcHJlZ2VuZXJhdGVkIE1BTklGRVNULmpzb24gZmlsZSIsCiAgICJ2aXJ0dWFsZW52Ijog
ZmFsc2V9fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9tYW5pZmVzdC9kb3dubG9hZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvZG93bmxvYWQucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjExYWRhMGVjZDNmODdkMjUyZTQxMDFmZDAzM2RkZWRjNjUzOTdjMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbWFuaWZlc3QvZG93bmxvYWQucHkKQEAgLTAsMCArMSwxMzMgQEAKK2Zyb20gX19mdXR1cmVf
XyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0CisKK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IGd6aXAK
K2ltcG9ydCBqc29uCitpbXBvcnQgaW8KK2ltcG9ydCBvcworZnJvbSBkYXRldGltZSBpbXBvcnQg
ZGF0ZXRpbWUsIHRpbWVkZWx0YQorCitmcm9tIHNpeC5tb3Zlcy51cmxsaWIucmVxdWVzdCBpbXBv
cnQgdXJsb3BlbgorCitmcm9tIC52Y3MgaW1wb3J0IEdpdAorCitmcm9tIC4gaW1wb3J0IGxvZwor
CitoZXJlID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQorCit3cHRfcm9vdCA9IG9zLnBhdGgu
YWJzcGF0aChvcy5wYXRoLmpvaW4oaGVyZSwgb3MucGFyZGlyLCBvcy5wYXJkaXIpKQorbG9nZ2Vy
ID0gbG9nLmdldF9sb2dnZXIoKQorCisKK2RlZiBhYnNfcGF0aChwYXRoKToKKyAgICByZXR1cm4g
b3MucGF0aC5hYnNwYXRoKG9zLnBhdGguZXhwYW5kdXNlcihwYXRoKSkKKworCitkZWYgc2hvdWxk
X2Rvd25sb2FkKG1hbmlmZXN0X3BhdGgsIHJlYnVpbGRfdGltZT10aW1lZGVsdGEoZGF5cz01KSk6
CisgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKG1hbmlmZXN0X3BhdGgpOgorICAgICAgICByZXR1
cm4gVHJ1ZQorICAgIG10aW1lID0gZGF0ZXRpbWUuZnJvbXRpbWVzdGFtcChvcy5wYXRoLmdldG10
aW1lKG1hbmlmZXN0X3BhdGgpKQorICAgIGlmIG10aW1lIDwgZGF0ZXRpbWUubm93KCkgLSByZWJ1
aWxkX3RpbWU6CisgICAgICAgIHJldHVybiBUcnVlCisgICAgbG9nZ2VyLmluZm8oIlNraXBwaW5n
IG1hbmlmZXN0IGRvd25sb2FkIGJlY2F1c2UgZXhpc3RpbmcgZmlsZSBpcyByZWNlbnQiKQorICAg
IHJldHVybiBGYWxzZQorCisKK2RlZiBnaXRfY29tbWl0cyhyZXBvX3Jvb3QpOgorICAgIGdpdCA9
IEdpdC5nZXRfZnVuYyhyZXBvX3Jvb3QpCisgICAgcmV0dXJuIFtpdGVtIGZvciBpdGVtIGluIGdp
dCgibG9nIiwgIi0tZm9ybWF0PSVIIiwgIi1uNTAiKS5zcGxpdCgiXG4iKSBpZiBpdGVtXQorCisK
K2RlZiBnaXRodWJfdXJsKGNvbW1pdHMpOgorICAgIHRyeToKKyAgICAgICAgcmVzcCA9IHVybG9w
ZW4oImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZWxlYXNlcyIpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgcmV0dXJuIE5vbmUKKwor
ICAgIGlmIHJlc3AuY29kZSAhPSAyMDA6CisgICAgICAgIHJldHVybiBOb25lCisKKyAgICB0cnk6
CisgICAgICAgIHJlbGVhc2VzID0ganNvbi5sb2FkKHJlc3AuZnApCisgICAgZXhjZXB0IFZhbHVl
RXJyb3I6CisgICAgICAgIGxvZ2dlci53YXJuaW5nKCJSZXNwb25zZSB3YXMgbm90IHZhbGlkIEpT
T04iKQorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgZmFsbGJhY2sgPSBOb25lCisgICAgZm9y
IHJlbGVhc2UgaW4gcmVsZWFzZXM6CisgICAgICAgIGZvciBjb21taXQgaW4gY29tbWl0czoKKyAg
ICAgICAgICAgIGZvciBpdGVtIGluIHJlbGVhc2VbImFzc2V0cyJdOgorICAgICAgICAgICAgICAg
IGlmIGl0ZW1bIm5hbWUiXSA9PSAiTUFOSUZFU1QtJXMuanNvbi5neiIgJSBjb21taXQ6CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBpdGVtWyJicm93c2VyX2Rvd25sb2FkX3VybCJdCisgICAg
ICAgICAgICAgICAgZWxpZiBpdGVtWyJuYW1lIl0gPT0gIk1BTklGRVNULmpzb24uZ3oiIGFuZCBu
b3QgZmFsbGJhY2s6CisgICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrID0gaXRlbVsiYnJvd3Nl
cl9kb3dubG9hZF91cmwiXQorICAgIGlmIGZhbGxiYWNrOgorICAgICAgICBsb2dnZXIuaW5mbygi
Q2FuJ3QgZmluZCBhIGNvbW1pdC1zcGVjaWZpYyBtYW5pZmVzdCBzbyBqdXN0IHVzaW5nIHRoZSBt
b3N0IHJlY2VudCBvbmUiKQorICAgICAgICByZXR1cm4gZmFsbGJhY2sKKworCitkZWYgZG93bmxv
YWRfbWFuaWZlc3QobWFuaWZlc3RfcGF0aCwgY29tbWl0c19mdW5jLCB1cmxfZnVuYywgZm9yY2U9
RmFsc2UpOgorICAgIGlmIG5vdCBmb3JjZSBhbmQgbm90IHNob3VsZF9kb3dubG9hZChtYW5pZmVz
dF9wYXRoKToKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBjb21taXRzID0gY29tbWl0c19m
dW5jKCkKKworICAgIHVybCA9IHVybF9mdW5jKGNvbW1pdHMpCisgICAgaWYgbm90IHVybDoKKyAg
ICAgICAgbG9nZ2VyLndhcm5pbmcoIk5vIGdlbmVyYXRlZCBtYW5pZmVzdCBmb3VuZCIpCisgICAg
ICAgIHJldHVybiBGYWxzZQorCisgICAgbG9nZ2VyLmluZm8oIkRvd25sb2FkaW5nIG1hbmlmZXN0
IGZyb20gJXMiICUgdXJsKQorICAgIHRyeToKKyAgICAgICAgcmVzcCA9IHVybG9wZW4odXJsKQor
ICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIGxvZ2dlci53YXJuaW5nKCJEb3dubG9hZGlu
ZyBwcmVnZW5lcmF0ZWQgbWFuaWZlc3QgZmFpbGVkIikKKyAgICAgICAgcmV0dXJuIEZhbHNlCisK
KyAgICBpZiByZXNwLmNvZGUgIT0gMjAwOgorICAgICAgICBsb2dnZXIud2FybmluZygiRG93bmxv
YWRpbmcgcHJlZ2VuZXJhdGVkIG1hbmlmZXN0IGZhaWxlZDsgZ290IEhUVFAgc3RhdHVzICVkIiAl
CisgICAgICAgICAgICAgICAgICAgICAgIHJlc3AuY29kZSkKKyAgICAgICAgcmV0dXJuIEZhbHNl
CisKKyAgICBnemYgPSBnemlwLkd6aXBGaWxlKGZpbGVvYmo9aW8uQnl0ZXNJTyhyZXNwLnJlYWQo
KSkpCisKKyAgICB0cnk6CisgICAgICAgIGRlY29tcHJlc3NlZCA9IGd6Zi5yZWFkKCkKKyAgICBl
eGNlcHQgSU9FcnJvcjoKKyAgICAgICAgbG9nZ2VyLndhcm5pbmcoIkZhaWxlZCB0byBkZWNvbXBy
ZXNzIGRvd25sb2FkZWQgZmlsZSIpCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgdHJ5Ogor
ICAgICAgICB3aXRoIG9wZW4obWFuaWZlc3RfcGF0aCwgInciKSBhcyBmOgorICAgICAgICAgICAg
Zi53cml0ZShkZWNvbXByZXNzZWQpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgbG9n
Z2VyLndhcm5pbmcoIkZhaWxlZCB0byB3cml0ZSBtYW5pZmVzdCIpCisgICAgICAgIHJldHVybiBG
YWxzZQorICAgIGxvZ2dlci5pbmZvKCJNYW5pZmVzdCBkb3dubG9hZGVkIikKKyAgICByZXR1cm4g
VHJ1ZQorCisKK2RlZiBjcmVhdGVfcGFyc2VyKCk6CisgICAgcGFyc2VyID0gYXJncGFyc2UuQXJn
dW1lbnRQYXJzZXIoKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCisgICAgICAgICItcCIsICIt
LXBhdGgiLCB0eXBlPWFic19wYXRoLCBoZWxwPSJQYXRoIHRvIG1hbmlmZXN0IGZpbGUuIikKKyAg
ICBwYXJzZXIuYWRkX2FyZ3VtZW50KAorICAgICAgICAiLS10ZXN0cy1yb290IiwgdHlwZT1hYnNf
cGF0aCwgZGVmYXVsdD13cHRfcm9vdCwgaGVscD0iUGF0aCB0byByb290IG9mIHRlc3RzLiIpCisg
ICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKKyAgICAgICAgIi0tZm9yY2UiLCBhY3Rpb249InN0b3Jl
X3RydWUiLAorICAgICAgICBoZWxwPSJBbHdheXMgZG93bmxvYWQsIGV2ZW4gaWYgdGhlIGV4aXN0
aW5nIG1hbmlmZXN0IGlzIHJlY2VudCIpCisgICAgcmV0dXJuIHBhcnNlcgorCisKK2RlZiBkb3du
bG9hZF9mcm9tX2dpdGh1YihwYXRoLCB0ZXN0c19yb290LCBmb3JjZT1GYWxzZSk6CisgICAgcmV0
dXJuIGRvd25sb2FkX21hbmlmZXN0KHBhdGgsIGxhbWJkYTogZ2l0X2NvbW1pdHModGVzdHNfcm9v
dCksIGdpdGh1Yl91cmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlPWZvcmNl
KQorCisKK2RlZiBydW4oKiprd2FyZ3MpOgorICAgIGlmIGt3YXJnc1sicGF0aCJdIGlzIE5vbmU6
CisgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oa3dhcmdzWyJ0ZXN0c19yb290Il0sICJNQU5J
RkVTVC5qc29uIikKKyAgICBlbHNlOgorICAgICAgICBwYXRoID0ga3dhcmdzWyJwYXRoIl0KKyAg
ICBzdWNjZXNzID0gZG93bmxvYWRfZnJvbV9naXRodWIocGF0aCwga3dhcmdzWyJ0ZXN0c19yb290
Il0sIGt3YXJnc1siZm9yY2UiXSkKKyAgICByZXR1cm4gMCBpZiBzdWNjZXNzIGVsc2UgMQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9tYW5pZmVzdC9pdGVtLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9tYW5pZmVzdC9pdGVtLnB5CmluZGV4IDYxYmU0NDQzYjQwMjFhN2RmZjAz
ZjczNWMxNTg3ODY3MTYzNjRhMWYuLjA2YWUzYzIzNmU2MTcwNDdmMzA4YTVhODY0NGU5NGY5YWZk
MTc5MjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbWFuaWZlc3QvaXRlbS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L2l0ZW0ucHkKQEAgLTEwMiwxNyAr
MTAyLDIwIEBAIGNsYXNzIFVSTE1hbmlmZXN0SXRlbShNYW5pZmVzdEl0ZW0pOgogY2xhc3MgVGVz
dGhhcm5lc3NUZXN0KFVSTE1hbmlmZXN0SXRlbSk6CiAgICAgaXRlbV90eXBlID0gInRlc3RoYXJu
ZXNzIgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvdXJjZV9maWxlLCB1cmwsIHVybF9iYXNl
PSIvIiwgdGltZW91dD1Ob25lLCBtYW5pZmVzdD1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2Vs
Ziwgc291cmNlX2ZpbGUsIHVybCwgdXJsX2Jhc2U9Ii8iLCB0aW1lb3V0PU5vbmUsIHRlc3Rkcml2
ZXI9RmFsc2UsIG1hbmlmZXN0PU5vbmUpOgogICAgICAgICBVUkxNYW5pZmVzdEl0ZW0uX19pbml0
X18oc2VsZiwgc291cmNlX2ZpbGUsIHVybCwgdXJsX2Jhc2U9dXJsX2Jhc2UsIG1hbmlmZXN0PW1h
bmlmZXN0KQogICAgICAgICBzZWxmLnRpbWVvdXQgPSB0aW1lb3V0CisgICAgICAgIHNlbGYudGVz
dGRyaXZlciA9IHRlc3Rkcml2ZXIKIAogICAgIGRlZiBtZXRhX2tleShzZWxmKToKLSAgICAgICAg
cmV0dXJuIChzZWxmLnRpbWVvdXQsKQorICAgICAgICByZXR1cm4gKHNlbGYudGltZW91dCwgc2Vs
Zi50ZXN0ZHJpdmVyKQogCiAgICAgZGVmIHRvX2pzb24oc2VsZik6CiAgICAgICAgIHJ2ID0gVVJM
TWFuaWZlc3RJdGVtLnRvX2pzb24oc2VsZikKICAgICAgICAgaWYgc2VsZi50aW1lb3V0IGlzIG5v
dCBOb25lOgogICAgICAgICAgICAgcnZbLTFdWyJ0aW1lb3V0Il0gPSBzZWxmLnRpbWVvdXQKKyAg
ICAgICAgaWYgc2VsZi50ZXN0ZHJpdmVyOgorICAgICAgICAgICAgcnZbLTFdWyJ0ZXN0ZHJpdmVy
Il0gPSBzZWxmLnRlc3Rkcml2ZXIKICAgICAgICAgcmV0dXJuIHJ2CiAKICAgICBAY2xhc3NtZXRo
b2QKQEAgLTEyNCw2ICsxMjcsNyBAQCBjbGFzcyBUZXN0aGFybmVzc1Rlc3QoVVJMTWFuaWZlc3RJ
dGVtKToKICAgICAgICAgICAgICAgICAgICB1cmwsCiAgICAgICAgICAgICAgICAgICAgdXJsX2Jh
c2U9bWFuaWZlc3QudXJsX2Jhc2UsCiAgICAgICAgICAgICAgICAgICAgdGltZW91dD1leHRyYXMu
Z2V0KCJ0aW1lb3V0IiksCisgICAgICAgICAgICAgICAgICAgdGVzdGRyaXZlcj1ib29sKGV4dHJh
cy5nZXQoInRlc3Rkcml2ZXIiKSksCiAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3Q9bWFuaWZl
c3QpCiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9tYW5pZmVzdC9tYW5pZmVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvbWFuaWZlc3QucHkKaW5kZXgg
YjE1Mzc5OGQ2Zjk2YjBiODBlY2NkN2Q1NDM5YjVmOTk1ZWFlZGM4ZS4uOGNlZWIzODYwNTJjOTQx
ZjAwMTI5MzVjOGRiYjM2MzY5ZGRjYTI0YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9tYW5pZmVzdC5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlm
ZXN0L21hbmlmZXN0LnB5CkBAIC0yLDcgKzIsNyBAQCBpbXBvcnQganNvbgogaW1wb3J0IG9zCiBp
bXBvcnQgcmUKIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0Ci1mcm9tIHNpeCBp
bXBvcnQgaXRlcml0ZW1zLCBpdGVydmFsdWVzLCB2aWV3a2V5cworZnJvbSBzaXggaW1wb3J0IGl0
ZXJpdGVtcywgaXRlcnZhbHVlcywgdmlld2tleXMsIHN0cmluZ190eXBlcwogCiBmcm9tIC5pdGVt
IGltcG9ydCBNYW51YWxUZXN0LCBXZWJkcml2ZXJTcGVjVGVzdCwgU3R1YiwgUmVmVGVzdE5vZGUs
IFJlZlRlc3QsIFRlc3RoYXJuZXNzVGVzdCwgU3VwcG9ydEZpbGUsIENvbmZvcm1hbmNlQ2hlY2tl
clRlc3QsIFZpc3VhbFRlc3QKIGZyb20gLmxvZyBpbXBvcnQgZ2V0X2xvZ2dlcgpAQCAtMjAsMTQg
KzIwLDYgQEAgY2xhc3MgTWFuaWZlc3RWZXJzaW9uTWlzbWF0Y2goTWFuaWZlc3RFcnJvcik6CiAg
ICAgcGFzcwogCiAKLWRlZiBzb3VyY2VmaWxlX2l0ZW1zKGFyZ3MpOgotICAgIHRlc3RzX3Jvb3Qs
IHVybF9iYXNlLCByZWxfcGF0aCwgc3RhdHVzID0gYXJncwotICAgIHNvdXJjZV9maWxlID0gU291
cmNlRmlsZSh0ZXN0c19yb290LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxfcGF0
aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsX2Jhc2UpCi0gICAgcmV0dXJuIHJl
bF9wYXRoLCBzb3VyY2VfZmlsZS5tYW5pZmVzdF9pdGVtcygpCi0KLQogY2xhc3MgTWFuaWZlc3Qo
b2JqZWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgdXJsX2Jhc2U9Ii8iKToKICAgICAgICAg
YXNzZXJ0IHVybF9iYXNlIGlzIG5vdCBOb25lCkBAIC05OCw2ICs5MCw4IEBAIGNsYXNzIE1hbmlm
ZXN0KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgIGhhc2hfY2hhbmdlZCA9IFRydWUKICAg
ICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICBuZXdfdHlwZSwgbWFuaWZl
c3RfaXRlbXMgPSBvbGRfdHlwZSwgc2VsZi5fZGF0YVtvbGRfdHlwZV1bcmVsX3BhdGhdCisgICAg
ICAgICAgICAgICAgaWYgb2xkX3R5cGUgaW4gKCJyZWZ0ZXN0IiwgInJlZnRlc3Rfbm9kZSIpIGFu
ZCBuZXdfdHlwZSAhPSBvbGRfdHlwZToKKyAgICAgICAgICAgICAgICAgICAgcmVmdGVzdF9jaGFu
Z2VzID0gVHJ1ZQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBuZXdfdHlwZSwg
bWFuaWZlc3RfaXRlbXMgPSBzb3VyY2VfZmlsZS5tYW5pZmVzdF9pdGVtcygpCiAKQEAgLTIyMSw3
ICsyMTUsNyBAQCBkZWYgbG9hZCh0ZXN0c19yb290LCBtYW5pZmVzdCk6CiAgICAgbG9nZ2VyID0g
Z2V0X2xvZ2dlcigpCiAKICAgICAjICJtYW5pZmVzdCIgaXMgYSBwYXRoIG9yIGZpbGUtbGlrZSBv
YmplY3QuCi0gICAgaWYgaXNpbnN0YW5jZShtYW5pZmVzdCwgYmFzZXN0cmluZyk6CisgICAgaWYg
aXNpbnN0YW5jZShtYW5pZmVzdCwgc3RyaW5nX3R5cGVzKToKICAgICAgICAgaWYgb3MucGF0aC5l
eGlzdHMobWFuaWZlc3QpOgogICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKCJPcGVuaW5nIG1hbmlm
ZXN0IGF0ICVzIiAlIG1hbmlmZXN0KQogICAgICAgICBlbHNlOgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9zb3Vy
Y2VmaWxlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9tYW5pZmVzdC9zb3VyY2VmaWxlLnB5CmluZGV4IGJmNzJmNDViMzUxN2IxZjFmNTMzNjcy
NGEzMWVjMjc4NTE2MWYwZWUuLjA5M2ZjMmJkNDcwMmY3OGY5YTBhYmM3NzlhNWU3M2E1OTU5NzMw
ZGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbWFuaWZlc3Qvc291cmNlZmlsZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3NvdXJjZWZpbGUucHkKQEAg
LTU0LDggKzU0LDcgQEAgY2xhc3MgU291cmNlRmlsZShvYmplY3QpOgogICAgICAgICAgICAgICAg
InhodG1sIjpsYW1iZGEgeDpFbGVtZW50VHJlZS5wYXJzZSh4LCBYTUxQYXJzZXIuWE1MUGFyc2Vy
KCkpLAogICAgICAgICAgICAgICAgInN2ZyI6bGFtYmRhIHg6RWxlbWVudFRyZWUucGFyc2UoeCwg
WE1MUGFyc2VyLlhNTFBhcnNlcigpKX0KIAotICAgIHJvb3RfZGlyX25vbl90ZXN0ID0gc2V0KFsi
Y29tbW9uIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndvcmstaW4tcHJvZ3Jlc3Mi
XSkKKyAgICByb290X2Rpcl9ub25fdGVzdCA9IHNldChbImNvbW1vbiJdKQogCiAgICAgZGlyX25v
bl90ZXN0ID0gc2V0KFsicmVzb3VyY2VzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICJzdXBw
b3J0IiwKQEAgLTYzLDggKzYyLDcgQEAgY2xhc3MgU291cmNlRmlsZShvYmplY3QpOgogCiAgICAg
ZGlyX3BhdGhfbm9uX3Rlc3QgPSB7KCJjc3MyMSIsICJhcmNoaXZlIiksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgKCJjc3MiLCAiQ1NTMiIsICJhcmNoaXZlIiksCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgKCJjc3MiLCAiY29tbW9uIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgKCJj
c3MiLCAid29yay1pbi1wcm9ncmVzcyIpfQorICAgICAgICAgICAgICAgICAgICAgICAgICgiY3Nz
IiwgImNvbW1vbiIpfQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RzX3Jvb3QsIHJlbF9w
YXRoLCB1cmxfYmFzZSwgY29udGVudHM9Tm9uZSk6CiAgICAgICAgICIiIk9iamVjdCByZXByZXNl
bnRpbmcgYSBmaWxlIGluIGEgc291cmNlIHRyZWUuCkBAIC0zODIsNiArMzgwLDIwIEBAIGNsYXNz
IFNvdXJjZUZpbGUob2JqZWN0KToKIAogICAgICAgICByZXR1cm4gcnYKIAorICAgIEBjYWNoZWRf
cHJvcGVydHkKKyAgICBkZWYgdGVzdGRyaXZlcl9ub2RlcyhzZWxmKToKKyAgICAgICAgIiIiTGlz
dCBvZiBFbGVtZW50VHJlZSBFbGVtZW50cyBjb3JyZXNwb25kaW5nIHRvIG5vZGVzIHJlcHJlc2Vu
dGluZyBhCisgICAgICAgIHRlc3Rkcml2ZXIuanMgc2NyaXB0IiIiCisgICAgICAgIHJldHVybiBz
ZWxmLnJvb3QuZmluZGFsbCgiLi8ve2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWx9c2NyaXB0
W0BzcmM9Jy9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyddIikKKworICAgIEBjYWNoZWRfcHJvcGVy
dHkKKyAgICBkZWYgaGFzX3Rlc3Rkcml2ZXIoc2VsZik6CisgICAgICAgICIiIkJvb2xlYW4gaW5k
aWNhdGluZyB3aGV0aGVyIHRoZSBmaWxlIGNvbnRlbnQgcmVwcmVzZW50cyBhCisgICAgICAgIHRl
c3RoYXJuZXNzLmpzIHRlc3QiIiIKKyAgICAgICAgaWYgc2VsZi5yb290IGlzIE5vbmU6CisgICAg
ICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICByZXR1cm4gYm9vbChzZWxmLnRlc3Rkcml2ZXJf
bm9kZXMpCisKICAgICBAY2FjaGVkX3Byb3BlcnR5CiAgICAgZGVmIHJlZnRlc3Rfbm9kZXMoc2Vs
Zik6CiAgICAgICAgICIiIkxpc3Qgb2YgRWxlbWVudFRyZWUgRWxlbWVudHMgY29ycmVzcG9uZGlu
ZyB0byBub2RlcyByZXByZXNlbnRpbmcgYQpAQCAtNTIzLDkgKzUzNSwxMCBAQCBjbGFzcyBTb3Vy
Y2VGaWxlKG9iamVjdCk6CiAKICAgICAgICAgZWxpZiBzZWxmLmNvbnRlbnRfaXNfdGVzdGhhcm5l
c3M6CiAgICAgICAgICAgICBydiA9IFRlc3RoYXJuZXNzVGVzdC5pdGVtX3R5cGUsIFtdCisgICAg
ICAgICAgICB0ZXN0ZHJpdmVyID0gc2VsZi5oYXNfdGVzdGRyaXZlcgogICAgICAgICAgICAgZm9y
IHZhcmlhbnQgaW4gc2VsZi50ZXN0X3ZhcmlhbnRzOgogICAgICAgICAgICAgICAgIHVybCA9IHNl
bGYudXJsICsgdmFyaWFudAotICAgICAgICAgICAgICAgIHJ2WzFdLmFwcGVuZChUZXN0aGFybmVz
c1Rlc3Qoc2VsZiwgdXJsLCB0aW1lb3V0PXNlbGYudGltZW91dCkpCisgICAgICAgICAgICAgICAg
cnZbMV0uYXBwZW5kKFRlc3RoYXJuZXNzVGVzdChzZWxmLCB1cmwsIHRpbWVvdXQ9c2VsZi50aW1l
b3V0LCB0ZXN0ZHJpdmVyPXRlc3Rkcml2ZXIpKQogCiAgICAgICAgIGVsaWYgc2VsZi5jb250ZW50
X2lzX3JlZl9ub2RlOgogICAgICAgICAgICAgcnYgPSAoUmVmVGVzdE5vZGUuaXRlbV90eXBlLApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9tYW5pZmVzdC90ZXN0cy90ZXN0X21hbmlmZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0cy90ZXN0X21hbmlm
ZXN0LnB5CmluZGV4IGU5YTY3YjgyNTZiOGMzYzM1NmE0Nzc0NGMwZTg4MDgwMWVjNGZjNDIuLjA3
NWQ2ODkyZGI3NmY4M2FjMGJlZDQ2Zjg0YjU4M2Y4Y2M4ZDFlOTUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVz
dHMvdGVzdF9tYW5pZmVzdC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3RfbWFuaWZlc3QucHkKQEAgLTIz
Miw2ICsyMzIsNTIgQEAgZGVmIHRlc3RfcmVmdGVzdF9jb21wdXRhdGlvbl9jaGFpbl91cGRhdGVf
cmVtb3ZlKCk6CiAgICAgYXNzZXJ0IGxpc3QobSkgPT0gWygicmVmdGVzdCIsIHRlc3QyLnBhdGgs
IHt0ZXN0Mn0pXQogCiAKK2RlZiB0ZXN0X3JlZnRlc3RfY29tcHV0YXRpb25fY2hhaW5fdXBkYXRl
X3Rlc3RfdHlwZSgpOgorICAgIG0gPSBtYW5pZmVzdC5NYW5pZmVzdCgpCisKKyAgICBzMSA9IFNv
dXJjZUZpbGVXaXRoVGVzdCgidGVzdCIsICIwIio0MCwgaXRlbS5SZWZUZXN0LCBbKCIvdGVzdC1y
ZWYiLCAiPT0iKV0pCisKKyAgICBhc3NlcnQgbS51cGRhdGUoW3MxXSkgaXMgVHJ1ZQorCisgICAg
dGVzdDEgPSBzMS5tYW5pZmVzdF9pdGVtcygpWzFdWzBdCisKKyAgICBhc3NlcnQgbGlzdChtKSA9
PSBbKCJyZWZ0ZXN0IiwgdGVzdDEucGF0aCwge3Rlc3QxfSldCisKKyAgICAjIHRlc3QgYmVjb21l
cyBhIHRlc3RoYXJuZXNzIHRlc3QgKGhhc2ggY2hhbmdlIGJlY2F1c2UgdGhhdCBpcyBkZXRlcm1p
bmVkCisgICAgIyBiYXNlZCBvbiB0aGUgZmlsZSBjb250ZW50cykuIFRoZSB1cGRhdGVkIG1hbmlm
ZXN0IHNob3VsZCBub3QgaW5jbHVkZXMgdGhlCisgICAgIyBvbGQgcmVmdGVzdC4KKyAgICBzMiA9
IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdCIsICIxIio0MCwgaXRlbS5UZXN0aGFybmVzc1Rlc3Qp
CisgICAgYXNzZXJ0IG0udXBkYXRlKFtzMl0pIGlzIFRydWUKKworICAgIHRlc3QyID0gczIubWFu
aWZlc3RfaXRlbXMoKVsxXVswXQorCisgICAgYXNzZXJ0IGxpc3QobSkgPT0gWygidGVzdGhhcm5l
c3MiLCB0ZXN0Mi5wYXRoLCB7dGVzdDJ9KV0KKworCitkZWYgdGVzdF9yZWZ0ZXN0X2NvbXB1dGF0
aW9uX2NoYWluX3VwZGF0ZV9ub2RlX2NoYW5nZSgpOgorICAgIG0gPSBtYW5pZmVzdC5NYW5pZmVz
dCgpCisKKyAgICBzMSA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDEiLCAiMCIqNDAsIGl0ZW0u
UmVmVGVzdCwgWygiL3Rlc3QyIiwgIj09IildKQorICAgIHMyID0gU291cmNlRmlsZVdpdGhUZXN0
KCJ0ZXN0MiIsICIwIio0MCwgaXRlbS5SZWZUZXN0Tm9kZSwgWygiL3Rlc3QzIiwgIj09IildKQor
CisgICAgYXNzZXJ0IG0udXBkYXRlKFtzMSwgczJdKSBpcyBUcnVlCisKKyAgICB0ZXN0MSA9IHMx
Lm1hbmlmZXN0X2l0ZW1zKClbMV1bMF0KKyAgICB0ZXN0MiA9IHMyLm1hbmlmZXN0X2l0ZW1zKClb
MV1bMF0KKworICAgIGFzc2VydCBsaXN0KG0pID09IFsoInJlZnRlc3QiLCB0ZXN0MS5wYXRoLCB7
dGVzdDF9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJyZWZ0ZXN0X25vZGUiLCB0ZXN0Mi5w
YXRoLCB7dGVzdDJ9KV0KKworICAgICN0ZXN0MiBjaGFuZ2VzIHRvIHN1cHBvcnQgdHlwZQorICAg
IHMyID0gU291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0MiIsICIxIio0MCwgaXRlbS5TdXBwb3J0Rmls
ZSkKKworICAgIGFzc2VydCBtLnVwZGF0ZShbczEsczJdKSBpcyBUcnVlCisgICAgdGVzdDMgPSBz
Mi5tYW5pZmVzdF9pdGVtcygpWzFdWzBdCisKKyAgICBhc3NlcnQgbGlzdChtKSA9PSBbKCJyZWZ0
ZXN0IiwgdGVzdDEucGF0aCwge3Rlc3QxfSksCisgICAgICAgICAgICAgICAgICAgICAgICgic3Vw
cG9ydCIsIHRlc3QzLnBhdGgsIHt0ZXN0M30pXQorCisKIGRlZiB0ZXN0X2l0ZXJwYXRoKCk6CiAg
ICAgbSA9IG1hbmlmZXN0Lk1hbmlmZXN0KCkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0cy90ZXN0X3Nv
dXJjZWZpbGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3Rfc291cmNlZmlsZS5weQppbmRleCA3M2VmNDEwYTMw
ZDg3NzI4NzJiZjQzZWE1NWI2NDNlZjZhMjMzZGQ4Li41Nzg2M2JmNzNjNGFlZjU4YmUxMTM2YjU2
NWYyMDVlN2M1NjM5NzQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3Rfc291cmNlZmlsZS5weQor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21h
bmlmZXN0L3Rlc3RzL3Rlc3Rfc291cmNlZmlsZS5weQpAQCAtMjcsNyArMjcsNiBAQCBkZWYgaXRl
bXMocyk6CiAgICAgImNvbW1vbi90ZXN0Lmh0bWwiLAogICAgICJzdXBwb3J0L3Rlc3QuaHRtbCIs
CiAgICAgImNzczIxL2FyY2hpdmUvdGVzdC5odG1sIiwKLSAgICAid29yay1pbi1wcm9ncmVzcy90
ZXN0Lmh0bWwiLAogICAgICJjb25mb3JtYW5jZS1jaGVja2Vycy90ZXN0Lmh0bWwiLAogICAgICJj
b25mb3JtYW5jZS1jaGVja2Vycy9SRUFETUUubWQiLAogICAgICJjb25mb3JtYW5jZS1jaGVja2Vy
cy9odG1sL01ha2VmaWxlIiwKQEAgLTM4LDcgKzM3LDYgQEAgZGVmIGl0ZW1zKHMpOgogICAgICJm
b28vdGVzdC1zdXBwb3J0Lmh0bWwiLAogICAgICJjc3MvY29tbW9uL3Rlc3QuaHRtbCIsCiAgICAg
ImNzcy9DU1MyL2FyY2hpdmUvdGVzdC5odG1sIiwKLSAgICAiY3NzL3dvcmstaW4tcHJvZ3Jlc3Mv
dGVzdC5odG1sIiwKIF0pCiBkZWYgdGVzdF9uYW1lX2lzX25vbl90ZXN0KHJlbF9wYXRoKToKICAg
ICBzID0gY3JlYXRlKHJlbF9wYXRoKQpAQCAtNTQsNyArNTIsNiBAQCBkZWYgdGVzdF9uYW1lX2lz
X25vbl90ZXN0KHJlbF9wYXRoKToKICAgICAiZm9vL2NvbmZvcm1hbmNlLWNoZWNrZXJzL3Rlc3Qu
aHRtbCIsCiAgICAgImZvby9fY2VydHMvdGVzdC5odG1sIiwKICAgICAiZm9vL2NzczIxL2FyY2hp
dmUvdGVzdC5odG1sIiwKLSAgICAiZm9vL3dvcmstaW4tcHJvZ3Jlc3MvdGVzdC5odG1sIiwKICAg
ICAiZm9vL0NTUzIvYXJjaGl2ZS90ZXN0Lmh0bWwiLAogICAgICJjc3MvY3NzMjEvYXJjaGl2ZS90
ZXN0Lmh0bWwiLAogXSkKQEAgLTQ1Miw2ICs0NDksMjYgQEAgZGVmIHRlc3RfdGVzdGhhcm5lc3Nf
ZXh0KGZpbGVuYW1lKToKICAgICBhc3NlcnQgaXRlbXMocykgPT0gW10KIAogCitAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoImV4dCIsIFsiaHRtIiwgImh0bWwiXSkKK2RlZiB0ZXN0X3Rlc3Rkcml2
ZXIoZXh0KToKKyAgICBjb250ZW50ID0gYiI8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3Rkcml2
ZXIuanM+PC9zY3JpcHQ+IgorCisgICAgZmlsZW5hbWUgPSAiaHRtbC90ZXN0LiIgKyBleHQKKyAg
ICBzID0gY3JlYXRlKGZpbGVuYW1lLCBjb250ZW50KQorCisgICAgYXNzZXJ0IHMuaGFzX3Rlc3Rk
cml2ZXIKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImV4dCIsIFsiaHRtIiwgImh0bWwi
XSkKK2RlZiB0ZXN0X3JlbGF0aXZlX3Rlc3Rkcml2ZXIoZXh0KToKKyAgICBjb250ZW50ID0gYiI8
c2NyaXB0IHNyYz0uLi9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcz48L3NjcmlwdD4iCisKKyAgICBm
aWxlbmFtZSA9ICJodG1sL3Rlc3QuIiArIGV4dAorICAgIHMgPSBjcmVhdGUoZmlsZW5hbWUsIGNv
bnRlbnQpCisKKyAgICBhc3NlcnQgbm90IHMuaGFzX3Rlc3Rkcml2ZXIKKworCiBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoImV4dCIsIFsiaHRtIiwgImh0bWwiXSkKIGRlZiB0ZXN0X3JlZnRlc3Rf
bm9kZShleHQpOgogICAgIGNvbnRlbnQgPSBiIjxsaW5rIHJlbD1tYXRjaCBocmVmPXJlZi5odG1s
PiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbWFuaWZlc3QvdXBkYXRlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC91cGRhdGUucHkKaW5kZXggMGJiYmVmYjkx
MTFjMDc3NTg5ZDJmYWIyM2M3ZjI4OWY1MzAwNjdiOS4uMjljODAxMDU3MzVkNGVhMGVkYzNmYTU2
NmVlNWU2ODk5NmQ4MjRkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC91cGRhdGUucHkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC91cGRhdGUu
cHkKQEAgLTcsMTMgKzcsMTYgQEAgaW1wb3J0IHN5cwogaW1wb3J0IG1hbmlmZXN0CiBmcm9tIC4g
aW1wb3J0IHZjcwogZnJvbSAubG9nIGltcG9ydCBnZXRfbG9nZ2VyCitmcm9tIC5kb3dubG9hZCBp
bXBvcnQgZG93bmxvYWRfZnJvbV9naXRodWIKIAogaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2Zp
bGVfXykKIAogd3B0X3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsIG9z
LnBhcmRpciwgb3MucGFyZGlyKSkKIAorbG9nZ2VyID0gZ2V0X2xvZ2dlcigpCiAKIGRlZiB1cGRh
dGUodGVzdHNfcm9vdCwgbWFuaWZlc3QsIHdvcmtpbmdfY29weT1GYWxzZSk6CisgICAgbG9nZ2Vy
LmluZm8oIlVwZGF0aW5nIG1hbmlmZXN0IikKICAgICB0cmVlID0gTm9uZQogICAgIGlmIG5vdCB3
b3JraW5nX2NvcHk6CiAgICAgICAgIHRyZWUgPSB2Y3MuR2l0LmZvcl9wYXRoKHRlc3RzX3Jvb3Qs
IG1hbmlmZXN0LnVybF9iYXNlKQpAQCAtMjksNyArMzIsOSBAQCBkZWYgdXBkYXRlX2Zyb21fY2xp
KCoqa3dhcmdzKToKICAgICBhc3NlcnQgdGVzdHNfcm9vdCBpcyBub3QgTm9uZQogCiAgICAgbSA9
IE5vbmUKLSAgICBsb2dnZXIgPSBnZXRfbG9nZ2VyKCkKKworICAgIGlmIGt3YXJnc1siZG93bmxv
YWQiXToKKyAgICAgICAgZG93bmxvYWRfZnJvbV9naXRodWIocGF0aCwgdGVzdHNfcm9vdCkKIAog
ICAgIGlmIG5vdCBrd2FyZ3MuZ2V0KCJyZWJ1aWxkIiwgRmFsc2UpOgogICAgICAgICB0cnk6CkBA
IC0zNyw4ICs0Miw2IEBAIGRlZiB1cGRhdGVfZnJvbV9jbGkoKiprd2FyZ3MpOgogICAgICAgICBl
eGNlcHQgbWFuaWZlc3QuTWFuaWZlc3RWZXJzaW9uTWlzbWF0Y2g6CiAgICAgICAgICAgICBsb2dn
ZXIuaW5mbygiTWFuaWZlc3QgdmVyc2lvbiBjaGFuZ2VkLCByZWJ1aWxkaW5nIikKICAgICAgICAg
ICAgIG0gPSBOb25lCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBsb2dnZXIuaW5mbygiVXBk
YXRpbmcgbWFuaWZlc3QiKQogCiAgICAgaWYgbSBpcyBOb25lOgogICAgICAgICBtID0gbWFuaWZl
c3QuTWFuaWZlc3Qoa3dhcmdzWyJ1cmxfYmFzZSJdKQpAQCAtNjksNiArNzIsOSBAQCBkZWYgY3Jl
YXRlX3BhcnNlcigpOgogICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCiAgICAgICAgICItLXVybC1i
YXNlIiwgYWN0aW9uPSJzdG9yZSIsIGRlZmF1bHQ9Ii8iLAogICAgICAgICBoZWxwPSJCYXNlIHVy
bCB0byB1c2UgYXMgdGhlIG1vdW50IHBvaW50IGZvciB0ZXN0cyBpbiB0aGlzIG1hbmlmZXN0LiIp
CisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKKyAgICAgICAgIi0tbm8tZG93bmxvYWQiLCBkZXN0
PSJkb3dubG9hZCIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZWZhdWx0PVRydWUsCisgICAgICAg
IGhlbHA9Ik5ldmVyIGF0dGVtcHQgdG8gZG93bmxvYWQgdGhlIG1hbmlmZXN0LiIpCiAgICAgcmV0
dXJuIHBhcnNlcgogCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdmNzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC92Y3MucHkKaW5kZXggMDEw
YmNlODFhOWNjNTc4MjdlOWJiN2E1MWNkMWQxOTQ1NGNlNzk3MS4uOGQ1ZTc4NTRlYjZjOGQ1ZmRi
OTIwOGZjZjY2ZjY0OTI5NWQ1YjkyZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC92Y3MucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC92Y3Mu
cHkKQEAgLTE0LDcgKzE0LDExIEBAIGNsYXNzIEdpdChvYmplY3QpOgogICAgIGRlZiBnZXRfZnVu
YyhyZXBvX3BhdGgpOgogICAgICAgICBkZWYgZ2l0KGNtZCwgKmFyZ3MpOgogICAgICAgICAgICAg
ZnVsbF9jbWQgPSBbImdpdCIsIGNtZF0gKyBsaXN0KGFyZ3MpCi0gICAgICAgICAgICByZXR1cm4g
c3VicHJvY2Vzcy5jaGVja19vdXRwdXQoZnVsbF9jbWQsIGN3ZD1yZXBvX3BhdGgsIHN0ZGVycj1z
dWJwcm9jZXNzLlNURE9VVCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXR1
cm4gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoZnVsbF9jbWQsIGN3ZD1yZXBvX3BhdGgsIHN0ZGVy
cj1zdWJwcm9jZXNzLlNURE9VVCkKKyAgICAgICAgICAgIGV4Y2VwdCBXaW5kb3dzRXJyb3I6Cisg
ICAgICAgICAgICAgICAgZnVsbF9jbWRbMF0gPSAiZ2l0LmJhdCIKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoZnVsbF9jbWQsIGN3ZD1yZXBvX3BhdGgsIHN0
ZGVycj1zdWJwcm9jZXNzLlNURE9VVCkKICAgICAgICAgcmV0dXJuIGdpdAogCiAgICAgQGNsYXNz
bWV0aG9kCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL21hbmlmZXN0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC93M2MtaW1wb3J0LmxvZwpp
bmRleCA3NzgxYmY4YzE1MzZkNGJmOTNiOWE2NTBhYjZiYzNmYmIyYTZlOGE0Li5lY2NkY2E1MjUz
M2U4YTAwZTNjMTczODdjMzhkYThiZGU1NGE4NTk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3czYy1pbXBvcnQu
bG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbWFuaWZlc3QvdzNjLWltcG9ydC5sb2cKQEAgLTE3LDYgKzE3LDcgQEAgTGlzdCBvZiBmaWxl
czoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21h
bmlmZXN0L1hNTFBhcnNlci5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvX19pbml0X18ucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L2NvbW1hbmRzLmpzb24KKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0
L2Rvd25sb2FkLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9tYW5pZmVzdC9pdGVtLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9sb2cucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L21hbmlmZXN0LnB5CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5dGVzdC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5dGVzdC5pbmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjUyZTQ2NTU5OGFiOTdmYWE2YjcxODg1OTYx
N2YyMTk0MTQxZmJiNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl0ZXN0LmluaQpAQCAtMCwwICsxLDMgQEAKK1tw
eXRlc3RdCitub3JlY3Vyc2VkaXJzID0gLioge2FyY2h9ICouZWdnIGh0bWw1bGliIHRoaXJkX3Bh
cnR5IHB5d2Vic29ja2V0IHNpeCB3cHQgd3B0cnVubmVyCit4ZmFpbF9zdHJpY3Q9dHJ1ZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9DT05UUklCVVRJTkcgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L0NPTlRSSUJVVElORwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42NDE1ZjVkMDExZjNlMjJiZTU1NGZmNzU1YzA3ODA1MjIxM2FmYTkwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9DT05UUklCVVRJTkcKQEAgLTAsMCArMSwxMSBAQAorRm9yIGluc3RydWN0aW9u
cyBmb3IgY29udHJpYnV0aW5nIGNvZGUsIHBsZWFzZSByZWFkOgoraHR0cHM6Ly9naXRodWIuY29t
L2dvb2dsZS9weXdlYnNvY2tldC93aWtpL0NvZGVSZXZpZXdJbnN0cnVjdGlvbgorCitZb3UgbXVz
dCBjb21wbGV0ZSB0aGUgSW5kaXZpZHVhbCBDb250cmlidXRvciBMaWNlbnNlIEFncmVlbWVudC4K
K2h0dHBzOi8vY2xhLmRldmVsb3BlcnMuZ29vZ2xlLmNvbS9hYm91dC9nb29nbGUtaW5kaXZpZHVh
bAorWW91IGNhbiBkbyB0aGlzIG9ubGluZSwgYW5kIGl0IG9ubHkgdGFrZXMgYSBtaW51dGUuCisK
K0lmIHlvdSBhcmUgY29udHJpYnV0aW5nIG9uIGJlaGFsZiBvZiBhIGNvcnBvcmF0aW9uLCB5b3Ug
bXVzdCBmaWxsIG91dCB0aGUKK0NvcnBvcmF0ZSBDb250cmlidXRvciBMaWNlbnNlIEFncmVlbWVu
dAoraHR0cHM6Ly9jbGEuZGV2ZWxvcGVycy5nb29nbGUuY29tL2Fib3V0L2dvb2dsZS1jb3Jwb3Jh
dGUKK2FuZCBzZW5kIGl0IHRvIHVzIGFzIGRlc2NyaWJlZCBvbiB0aGF0IHBhZ2UuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L0xJQ0VOU0UgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L0xJQ0VOU0UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTg5ZDAyZTRjZDA5
MjM3ODA2ZjdkZjhiZWFlY2M2OTE1MjczNDI4ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvTElD
RU5TRQpAQCAtMCwwICsxLDI4IEBACitDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KK0FsbCBy
aWdodHMgcmVzZXJ2ZWQuCisKK1JlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorbWV0OgorCisgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgoraW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorZGlzdHJpYnV0aW9uLgor
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KK3RoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisKK1RISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCitMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKK0Eg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCitPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKK1NQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKK0xJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCitUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKK09GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L01BTklGRVNULmluIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9NQU5JRkVTVC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOTI1Njg4MmM1
NmZlYjcyODEyYzk5YzhhODM3OTk3OWU2M2U0YTBjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9N
QU5JRkVTVC5pbgpAQCAtMCwwICsxLDYgQEAKK2luY2x1ZGUgQ09QWUlORworaW5jbHVkZSBNQU5J
RkVTVC5pbgoraW5jbHVkZSBSRUFETUUKK3JlY3Vyc2l2ZS1pbmNsdWRlIGV4YW1wbGUgKi5weQor
cmVjdXJzaXZlLWluY2x1ZGUgbW9kX3B5d2Vic29ja2V0ICoucHkKK3JlY3Vyc2l2ZS1pbmNsdWRl
IHRlc3QgKi5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9SRUFETUUgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L1JFQURNRQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jOGM3NThmNWVlZjRjNzMxODkyNjQxZGUzMzNlNWQ3NWQxMGEzZTU2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9SRUFETUUKQEAgLTAsMCArMSwxNyBAQAorSU5TVEFMTAorCitUbyBpbnN0
YWxsIHRoaXMgcGFja2FnZSB0byB0aGUgc3lzdGVtLCBydW4gdGhpczoKKyQgcHl0aG9uIHNldHVw
LnB5IGJ1aWxkCiskIHN1ZG8gcHl0aG9uIHNldHVwLnB5IGluc3RhbGwKKworVG8gaW5zdGFsbCB0
aGlzIHBhY2thZ2UgYXMgYSBub3JtYWwgdXNlciwgcnVuIHRoaXMgaW5zdGVhZDoKKyQgcHl0aG9u
IHNldHVwLnB5IGJ1aWxkCiskIHB5dGhvbiBzZXR1cC5weSBpbnN0YWxsIC0tdXNlcgorCitMQVVO
Q0gKKworVG8gdXNlIHB5d2Vic29ja2V0IGFzIEFwYWNoZSBtb2R1bGUsIHJ1biB0aGlzIHRvIHJl
YWQgdGhlIGRvY3VtZW50OgorJCBweWRvYyBtb2RfcHl3ZWJzb2NrZXQKKworVG8gdXNlIHB5d2Vi
c29ja2V0IGFzIHN0YW5kYWxvbmUgc2VydmVyLCBydW4gdGhpcyB0byByZWFkIHRoZSBkb2N1bWVu
dDoKKyQgcHlkb2MgbW9kX3B5d2Vic29ja2V0LnN0YW5kYWxvbmUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
UkVBRE1FLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9SRUFETUUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWU4ZTkxMGE4NGVmOTk1NjY5
ZWEwNzIzZjFiYzdmMjk5MzQ2NjU4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvUkVBRE1FLm1k
CkBAIC0wLDAgKzEsOCBAQAorCisjIHB5d2Vic29ja2V0ICMKKworVGhlIHB5d2Vic29ja2V0IHBy
b2plY3QgYWltcyB0byBwcm92aWRlIGEgW1dlYlNvY2tldF0oaHR0cHM6Ly90b29scy5pZXRmLm9y
Zy9odG1sL3JmYzY0NTUpIHN0YW5kYWxvbmUgc2VydmVyIGFuZCBhIFdlYlNvY2tldCBleHRlbnNp
b24gZm9yIFtBcGFjaGUgSFRUUCBTZXJ2ZXJdKGh0dHBzOi8vaHR0cGQuYXBhY2hlLm9yZy8pLCBt
b2RcX3B5d2Vic29ja2V0LgorCitweXdlYnNvY2tldCBpcyBpbnRlbmRlZCBmb3IgKip0ZXN0aW5n
Kiogb3IgKipleHBlcmltZW50YWwqKiBwdXJwb3Nlcy4KKworUGxlYXNlIHNlZSBbV2lraV0oLi4v
Li4vd2lraSkgZm9yIG1vcmUgZGV0YWlscy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9hYm9y
dF9oYW5kc2hha2Vfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2Fib3J0X2hhbmRzaGFrZV93c2gucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDA4MDIzYTFmZTkxZTJmMjk3N2IxNjNmOTc3ZGFlNjg1MDAwOWFhNAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9hYm9ydF9oYW5kc2hha2Vfd3NoLnB5CkBAIC0w
LDAgKzEsNDMgQEAKKyMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMg
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBk
aXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisj
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisj
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGlt
cG9ydCBoYW5kc2hha2UKKworCitkZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVx
dWVzdCk6CisgICAgcmFpc2UgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24oCisgICAg
ICAgICJBYm9ydGVkIGluIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlIikKKworCitkZWYg
d2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgorICAgIHBhc3MKKworCisjIHZpOnN0
cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9hYm9ydF93c2gucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L2V4YW1wbGUvYWJvcnRfd3NoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiYmYwMDVmNmEzN2M2MDllMTZhYmRl
NGRmOTQwMjQyNjhkMGRhZWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYWJvcnRf
d3NoLnB5CkBAIC0wLDAgKzEsNDMgQEAKKyMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCisj
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisj
IG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKK2Zyb20gbW9kX3B5
d2Vic29ja2V0IGltcG9ydCBoYW5kc2hha2UKKworCitkZWYgd2ViX3NvY2tldF9kb19leHRyYV9o
YW5kc2hha2UocmVxdWVzdCk6CisgICAgcGFzcworCisKK2RlZiB3ZWJfc29ja2V0X3RyYW5zZmVy
X2RhdGEocmVxdWVzdCk6CisgICAgcmFpc2UgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRp
b24oCisgICAgICAgICJBYm9ydGVkIGluIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YSIpCisKKwor
IyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYXJyYXlidWZmZXJf
YmVuY2htYXJrLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYXJyYXlidWZmZXJfYmVuY2htYXJrLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODY5Y2Q3ZTFlZTY1M2Q1OWYwNGI4MDJmZjM0YzhkMDgxMzE3Y2E4OQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9hcnJheWJ1ZmZlcl9iZW5jaG1hcmsuaHRtbApA
QCAtMCwwICsxLDEzNCBAQAorPCEtLQorQ29weXJpZ2h0IDIwMTMsIEdvb2dsZSBJbmMuCitBbGwg
cmlnaHRzIHJlc2VydmVkLgorCitSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKK21vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKK21ldDoKKworICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKK25vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKK2NvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKK2luIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKK2Rpc3RyaWJ1dGlvbi4K
KyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKK2NvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCit0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorCitUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCitB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCitTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCitMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKK0RBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCitPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorLS0+CisKKzxodG1s
PgorPGhlYWQ+Cis8dGl0bGU+QXJyYXlCdWZmZXIgYmVuY2htYXJrPC90aXRsZT4KKzxzY3JpcHQg
c3JjPSJ1dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgUFJJTlRfU0laRSA9IHRydWU7
CisKKy8vIEluaXRpYWwgc2l6ZSBvZiBhcnJheXMuCit2YXIgU1RBUlRfU0laRSA9IDEwICogMTAy
NDsKKy8vIFN0b3BzIGJlbmNobWFyayB3aGVuIHRoZSBzaXplIG9mIGFuIGFycmF5IGV4Y2VlZHMg
dGhpcyB0aHJlc2hvbGQuCit2YXIgU1RPUF9USFJFU0hPTEQgPSAxMDAwMDAgKiAxMDI0OworLy8g
SWYgdGhlIHNpemUgb2YgZWFjaCBhcnJheSBpcyBzbWFsbCwgd3JpdGUvcmVhZCB0aGUgYXJyYXkg
bXVsdGlwbGUgdGltZXMKKy8vIHVudGlsIHRoZSBzdW0gb2Ygc2l6ZXMgcmVhY2hlcyB0aGlzIHRo
cmVzaG9sZC4KK3ZhciBNSU5fVE9UQUwgPSAxMDAwMDAgKiAxMDI0OwordmFyIE1VTFRJUExJRVJT
ID0gWzUsIDJdOworCisvLyBSZXBlYXQgYmVuY2htYXJrIGZvciBzZXZlcmFsIHRpbWVzIHRvIG1l
YXN1cmUgcGVyZm9ybWFuY2Ugb2Ygb3B0aW1pemVkCisvLyAoc3VjaCBhcyBKSVQpIHJ1bi4KK3Zh
ciBSRVBFQVRfRk9SX1dBUk1VUCA9IDM7CisKK2Z1bmN0aW9uIHdyaXRlQmVuY2htYXJrKHNpemUs
IG1pblRvdGFsKSB7CisgIHZhciB0b3RhbFNpemUgPSAwOworICB3aGlsZSAodG90YWxTaXplIDwg
bWluVG90YWwpIHsKKyAgICB2YXIgYXJyYXlCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoc2l6ZSk7
CisKKyAgICAvLyBXcml0ZSAnYSdzLgorICAgIGZpbGxBcnJheUJ1ZmZlcihhcnJheUJ1ZmZlciwg
MHg2MSk7CisKKyAgICB0b3RhbFNpemUgKz0gc2l6ZTsKKyAgfQorICByZXR1cm4gdG90YWxTaXpl
OworfQorCitmdW5jdGlvbiByZWFkQmVuY2htYXJrKHNpemUsIG1pblRvdGFsKSB7CisgIHZhciB0
b3RhbFNpemUgPSAwOworICB3aGlsZSAodG90YWxTaXplIDwgbWluVG90YWwpIHsKKyAgICB2YXIg
YXJyYXlCdWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoc2l6ZSk7CisKKyAgICBpZiAoIXZlcmlmeUFy
cmF5QnVmZmVyKGFycmF5QnVmZmVyLCAweDAwKSkgeworICAgICAgcXVldWVMb2coJ1ZlcmlmaWNh
dGlvbiBmYWlsZWQnKTsKKyAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICB0b3RhbFNpemUg
Kz0gc2l6ZTsKKyAgfQorICByZXR1cm4gdG90YWxTaXplOworfQorCitmdW5jdGlvbiBydW5CZW5j
aG1hcmsoYmVuY2htYXJrRnVuY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgc2l6ZSwKKyAg
ICAgICAgICAgICAgICAgICAgICBzdG9wVGhyZXNob2xkLAorICAgICAgICAgICAgICAgICAgICAg
IG1pblRvdGFsLAorICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxpZXJzLAorICAgICAgICAg
ICAgICAgICAgICAgIG11bHRpcGxpZXJJbmRleCkgeworICB3aGlsZSAoc2l6ZSA8PSBzdG9wVGhy
ZXNob2xkKSB7CisgICAgdmFyIG1heFNwZWVkID0gMDsKKworICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgUkVQRUFUX0ZPUl9XQVJNVVA7ICsraSkgeworICAgICAgdmFyIHN0YXJ0VGltZUluTXMgPSBn
ZXRUaW1lU3RhbXAoKTsKKworICAgICAgdmFyIHRvdGFsU2l6ZSA9IGJlbmNobWFya0Z1bmN0aW9u
KHNpemUsIG1pblRvdGFsKTsKKworICAgICAgbWF4U3BlZWQgPSBNYXRoLm1heChtYXhTcGVlZCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsY3VsYXRlU3BlZWRJbktCKHRvdGFsU2l6ZSwg
c3RhcnRUaW1lSW5NcykpOworICAgIH0KKyAgICBxdWV1ZUxvZyhmb3JtYXRSZXN1bHRJbktpQihz
aXplLCBtYXhTcGVlZCwgUFJJTlRfU0laRSkpOworCisgICAgc2l6ZSAqPSBtdWx0aXBsaWVyc1tt
dWx0aXBsaWVySW5kZXhdOworICAgIG11bHRpcGxpZXJJbmRleCA9IChtdWx0aXBsaWVySW5kZXgg
KyAxKSAlIG11bHRpcGxpZXJzLmxlbmd0aDsKKyAgfQorfQorCitmdW5jdGlvbiBydW5CZW5jaG1h
cmtzKCkgeworICBxdWV1ZUxvZygnTWVzc2FnZSBzaXplIGluIEtpQiwgU3BlZWQgaW4ga0Ivcycp
OworCisgIHF1ZXVlTG9nKCdXcml0ZSBiZW5jaG1hcmsnKTsKKyAgcnVuQmVuY2htYXJrKAorICAg
ICAgd3JpdGVCZW5jaG1hcmssIFNUQVJUX1NJWkUsIFNUT1BfVEhSRVNIT0xELCBNSU5fVE9UQUws
IE1VTFRJUExJRVJTLCAwKTsKKyAgcXVldWVMb2coJ0ZpbmlzaGVkJyk7CisKKyAgcXVldWVMb2co
J1JlYWQgYmVuY2htYXJrJyk7CisgIHJ1bkJlbmNobWFyaygKKyAgICAgIHJlYWRCZW5jaG1hcmss
IFNUQVJUX1NJWkUsIFNUT1BfVEhSRVNIT0xELCBNSU5fVE9UQUwsIE1VTFRJUExJRVJTLCAwKTsK
KyAgYWRkVG9Mb2coJ0ZpbmlzaGVkJyk7Cit9CisKK2Z1bmN0aW9uIGluaXQoKSB7CisgIGxvZ0Jv
eCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2cnKTsKKworICBxdWV1ZUxvZyh3aW5kb3cu
bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKTsKKworICBhZGRUb0xvZygnU3RhcnRl
ZC4uLicpOworCisgIHNldFRpbWVvdXQocnVuQmVuY2htYXJrcywgMCk7Cit9CisKKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJpbml0KCkiPgorPHRleHRhcmVhCisgICAgaWQ9Imxv
ZyIgcm93cz0iNTAiIHN0eWxlPSJ3aWR0aDogMTAwJSIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9iZW5jaF93c2gucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L2V4YW1wbGUvYmVuY2hfd3NoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwNjdjYTdkODk1NWZjMTYzZDUw
MDFjZDg4MTJlNmFlMjBjMTYyOTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYmVu
Y2hfd3NoLnB5CkBAIC0wLDAgKzEsNjAgQEAKKyMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMu
CisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKKyIiIkEgc2lt
cGxlIGxvYWQgdGVzdGVyIGZvciBXZWJTb2NrZXQgY2xpZW50cy4KKworQSBjbGllbnQgcHJvZ3Jh
bSBzZW5kcyBhIG1lc3NhZ2UgZm9ybWF0dGVkIGFzICI8dGltZT4gPGNvdW50PiA8bWVzc2FnZT4i
IHRvCit0aGlzIGhhbmRsZXIuIFRoaXMgaGFuZGxlciBzdGFydHMgc2VuZGluZyB0b3RhbCA8Y291
bnQ+IFdlYlNvY2tldCBtZXNzYWdlcworY29udGFpbmluZyA8bWVzc2FnZT4gZXZlcnkgPHRpbWU+
IHNlY29uZHMuIDx0aW1lPiBjYW4gYmUgYSBmbG9hdGluZyBwb2ludAordmFsdWUuIDxjb3VudD4g
bXVzdCBiZSBhbiBpbnRlZ2VyIHZhbHVlLgorIiIiCisKKworaW1wb3J0IHRpbWUKKworCitkZWYg
d2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6CisgICAgcGFzcyAgIyBBbHdh
eXMgYWNjZXB0LgorCisKK2RlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Cisg
ICAgbGluZSA9IHJlcXVlc3Qud3Nfc3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpCisgICAgcGFydHMg
PSBsaW5lLnNwbGl0KCcgJykKKyAgICBpZiBsZW4ocGFydHMpICE9IDM6CisgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoJ0JhZCBwYXJhbWV0ZXIgZm9ybWF0JykKKyAgICB3YWl0ID0gZmxvYXQocGFy
dHNbMF0pCisgICAgY291bnQgPSBpbnQocGFydHNbMV0pCisgICAgbWVzc2FnZSA9IHBhcnRzWzJd
CisgICAgZm9yIGkgaW4geHJhbmdlKGNvdW50KToKKyAgICAgICAgcmVxdWVzdC53c19zdHJlYW0u
c2VuZF9tZXNzYWdlKG1lc3NhZ2UpCisgICAgICAgIHRpbWUuc2xlZXAod2FpdCkKKworCisjIHZp
OnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9iZW5jaG1hcmsuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvZXhhbXBsZS9iZW5jaG1hcmsuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOTIzODYzYTk5NTY5NzYz
YWI3OTc2YTdkZTc4MjA1Y2E2MTkyYTJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxl
L2JlbmNobWFyay5odG1sCkBAIC0wLDAgKzEsMTc1IEBACis8IS0tCitDb3B5cmlnaHQgMjAxMywg
R29vZ2xlIEluYy4KK0FsbCByaWdodHMgcmVzZXJ2ZWQuCisKK1JlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorbWV0OgorCisgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgoraW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorZGlzdHJpYnV0aW9uLgorICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KK3RoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisKK1RISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CitMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKK0EgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCitPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKK1NQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKK0xJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCitUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKK09GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCistLT4KKworPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5XZWJTb2NrZXQgYmVuY2htYXJrPC90
aXRsZT4KKzxzY3JpcHQgc3JjPSJ1dGlsX21haW4uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InV0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImJlbmNobWFyay5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgordmFyIGFkZHJlc3NCb3ggPSBudWxsOworCitmdW5jdGlvbiBnZXRDb25maWco
KSB7CisgIHJldHVybiB7CisgICAgcHJlZml4VXJsOiBhZGRyZXNzQm94LnZhbHVlLAorICAgIHBy
aW50U2l6ZTogZ2V0Qm9vbEZyb21DaGVja0JveCgncHJpbnRzaXplJyksCisgICAgbnVtU29ja2V0
czogZ2V0SW50RnJvbUlucHV0KCdudW1zb2NrZXRzJyksCisgICAgLy8gSW5pdGlhbCBzaXplIG9m
IG1lc3NhZ2VzLgorICAgIG51bUl0ZXJhdGlvbnM6IGdldEludEZyb21JbnB1dCgnbnVtaXRlcmF0
aW9ucycpLAorICAgIG51bVdhcm1VcEl0ZXJhdGlvbnM6IGdldEludEZyb21JbnB1dCgnbnVtd2Fy
bXVwaXRlcmF0aW9ucycpLAorICAgIHN0YXJ0U2l6ZTogZ2V0SW50RnJvbUlucHV0KCdzdGFydHNp
emUnKSwKKyAgICAvLyBTdG9wcyBiZW5jaG1hcmsgd2hlbiB0aGUgc2l6ZSBvZiBtZXNzYWdlIGV4
Y2VlZHMgdGhpcyB0aHJlc2hvbGQuCisgICAgc3RvcFRocmVzaG9sZDogZ2V0SW50RnJvbUlucHV0
KCdzdG9wdGhyZXNob2xkJyksCisgICAgLy8gSWYgdGhlIHNpemUgb2YgZWFjaCBtZXNzYWdlIGlz
IHNtYWxsLCBzZW5kL3JlY2VpdmUgbXVsdGlwbGUgbWVzc2FnZXMKKyAgICAvLyB1bnRpbCB0aGUg
c3VtIG9mIHNpemVzIHJlYWNoZXMgdGhpcyB0aHJlc2hvbGQuCisgICAgbWluVG90YWw6IGdldElu
dEZyb21JbnB1dCgnbWludG90YWwnKSwKKyAgICBtdWx0aXBsaWVyczogZ2V0RmxvYXRBcnJheUZy
b21JbnB1dCgnbXVsdGlwbGllcnMnKSwKKyAgICB2ZXJpZnlEYXRhOiBnZXRCb29sRnJvbUNoZWNr
Qm94KCd2ZXJpZnlkYXRhJyksCisgICAgYWRkVG9Mb2c6IGFkZFRvTG9nLAorICAgIGFkZFRvU3Vt
bWFyeTogYWRkVG9TdW1tYXJ5LAorICAgIG1lYXN1cmVWYWx1ZTogbWVhc3VyZVZhbHVlLAorICAg
IG5vdGlmeUFib3J0OiBub3RpZnlBYm9ydAorICB9OworfQorCitmdW5jdGlvbiBvblNlbmRCZW5j
aG1hcmsoKSB7CisgIHZhciBjb25maWcgPSBnZXRDb25maWcoKTsKKyAgZG9BY3Rpb24oY29uZmln
LCBnZXRCb29sRnJvbUNoZWNrQm94KCd3b3JrZXInKSwgJ3NlbmRCZW5jaG1hcmsnKTsKK30KKwor
ZnVuY3Rpb24gb25SZWNlaXZlQmVuY2htYXJrKCkgeworICB2YXIgY29uZmlnID0gZ2V0Q29uZmln
KCk7CisgIGRvQWN0aW9uKGNvbmZpZywgZ2V0Qm9vbEZyb21DaGVja0JveCgnd29ya2VyJyksICdy
ZWNlaXZlQmVuY2htYXJrJyk7Cit9CisKK2Z1bmN0aW9uIG9uQmF0Y2hCZW5jaG1hcmsoKSB7Cisg
IHZhciBjb25maWcgPSBnZXRDb25maWcoKTsKKyAgZG9BY3Rpb24oY29uZmlnLCBnZXRCb29sRnJv
bUNoZWNrQm94KCd3b3JrZXInKSwgJ2JhdGNoQmVuY2htYXJrJyk7Cit9CisKK2Z1bmN0aW9uIG9u
U3RvcCgpIHsKKyAgdmFyIGNvbmZpZyA9IGdldENvbmZpZygpOworICBkb0FjdGlvbihjb25maWcs
IGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicpLCAnc3RvcCcpOworfQorCitmdW5jdGlvbiBp
bml0KCkgeworICBhZGRyZXNzQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkZHJlc3Mn
KTsKKyAgbG9nQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpOworCisgIHN1bW1h
cnlCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3VtbWFyeScpOworCisgIHZhciBzY2hl
bWUgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgPT0gJ2h0dHBzOicgPyAnd3NzOi8vJyA6ICd3
czovLyc7CisgIHZhciBkZWZhdWx0QWRkcmVzcyA9IHNjaGVtZSArIHdpbmRvdy5sb2NhdGlvbi5o
b3N0ICsgJy9iZW5jaG1hcmtfaGVscGVyJzsKKworICBhZGRyZXNzQm94LnZhbHVlID0gZGVmYXVs
dEFkZHJlc3M7CisKKyAgYWRkVG9Mb2cod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dl
ckNhc2UoKSk7CisgIGFkZFRvU3VtbWFyeSh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xv
d2VyQ2FzZSgpKTsKKworICBpZiAoISgnV2ViU29ja2V0JyBpbiB3aW5kb3cpKSB7CisgICAgYWRk
VG9Mb2coJ1dlYlNvY2tldCBpcyBub3QgYXZhaWxhYmxlJyk7CisgIH0KKworICBpbml0V29ya2Vy
KCdXZWJTb2NrZXQnLCAnJyk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0i
aW5pdCgpIj4KKworPGRpdiBpZD0iYmVuY2htYXJrX2RpdiI+CisgIHVybCA8aW5wdXQgdHlwZT0i
dGV4dCIgaWQ9ImFkZHJlc3MiIHNpemU9IjQwIj4KKyAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFs
dWU9InNlbmQiIG9uY2xpY2s9Im9uU2VuZEJlbmNobWFyaygpIj4KKyAgPGlucHV0IHR5cGU9ImJ1
dHRvbiIgdmFsdWU9InJlY2VpdmUiIG9uY2xpY2s9Im9uUmVjZWl2ZUJlbmNobWFyaygpIj4KKyAg
PGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9ImJhdGNoIiBvbmNsaWNrPSJvbkJhdGNoQmVuY2ht
YXJrKCkiPgorICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0ic3RvcCIgb25jbGljaz0ib25T
dG9wKCkiPgorCisgIDxici8+CisKKyAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0icHJpbnRz
aXplIiBjaGVja2VkPgorICA8bGFiZWwgZm9yPSJwcmludHNpemUiPlByaW50IHNpemUgYW5kIHRp
bWUgcGVyIG1lc3NhZ2U8L2xhYmVsPgorICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJ2ZXJp
ZnlkYXRhIiBjaGVja2VkPgorICA8bGFiZWwgZm9yPSJ2ZXJpZnlkYXRhIj5WZXJpZnkgZGF0YTwv
bGFiZWw+CisgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9IndvcmtlciI+CisgIDxsYWJlbCBm
b3I9IndvcmtlciI+UnVuIG9uIHdvcmtlcjwvbGFiZWw+CisKKyAgPGJyLz4KKworICBQYXJhbWV0
ZXJzOgorCisgIDxici8+CisKKyAgPHRhYmxlPgorICAgIDx0cj4KKyAgICAgIDx0ZD5OdW0gc29j
a2V0czwvdGQ+CisgICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJudW1zb2NrZXRzIiB2
YWx1ZT0iMSI+PC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD5OdW1iZXIgb2Yg
aXRlcmF0aW9uczwvdGQ+CisgICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJudW1pdGVy
YXRpb25zIiB2YWx1ZT0iMSI+PC90ZD4KKyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD5O
dW1iZXIgb2Ygd2FybS11cCBpdGVyYXRpb25zPC90ZD4KKyAgICAgIDx0ZD48aW5wdXQgdHlwZT0i
dGV4dCIgaWQ9Im51bXdhcm11cGl0ZXJhdGlvbnMiIHZhbHVlPSIwIj48L3RkPgorICAgIDwvdHI+
CisgICAgPHRyPgorICAgICAgPHRkPlN0YXJ0IHNpemU8L3RkPgorICAgICAgPHRkPjxpbnB1dCB0
eXBlPSJ0ZXh0IiBpZD0ic3RhcnRzaXplIiB2YWx1ZT0iMTAyNDAiPjwvdGQ+CisgICAgPC90cj4K
KyAgICA8dHI+CisgICAgICA8dGQ+U3RvcCB0aHJlc2hvbGQ8L3RkPgorICAgICAgPHRkPjxpbnB1
dCB0eXBlPSJ0ZXh0IiBpZD0ic3RvcHRocmVzaG9sZCIgdmFsdWU9IjEwMjQwMDAwMCI+PC90ZD4K
KyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD5NaW5pbXVtIHRvdGFsPC90ZD4KKyAgICAg
IDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im1pbnRvdGFsIiB2YWx1ZT0iMTAyNDAwMDAwIj48
L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkPk11bHRpcGxpZXJzPC90ZD4KKyAg
ICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im11bHRpcGxpZXJzIiB2YWx1ZT0iNSwgMiI+
PC90ZD4KKyAgICA8L3RyPgorICA8L3RhYmxlPgorPC9kaXY+CisKKzxkaXYgaWQ9ImxvZ19kaXYi
PgorICA8dGV4dGFyZWEKKyAgICAgIGlkPSJsb2ciIHJvd3M9IjIwIiBzdHlsZT0id2lkdGg6IDEw
MCUiIHJlYWRvbmx5PjwvdGV4dGFyZWE+Cis8L2Rpdj4KKzxkaXYgaWQ9InN1bW1hcnlfZGl2Ij4K
KyAgU3VtbWFyeQorICA8dGV4dGFyZWEKKyAgICAgIGlkPSJzdW1tYXJ5IiByb3dzPSIyMCIgc3R5
bGU9IndpZHRoOiAxMDAlIiByZWFkb25seT48L3RleHRhcmVhPgorPC9kaXY+CisKK05vdGU6IEVm
ZmVjdCBvZiBSVFQgaXMgbm90IGVsaW1pbmF0ZWQuCisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvZXhhbXBsZS9iZW5jaG1hcmsuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYmVuY2htYXJr
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg1NjQzNWQxZDBkZDc4ZDk3OTRhYTg0YzAyOWM4YWI0ZjczMzllYzEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYmVuY2htYXJrLmpzCkBAIC0wLDAgKzEs
MjE0IEBACisvLyBDb3B5cmlnaHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorLy8KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0
eWxlCisvLyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBDT1BZSU5HIGZpbGUgb3Ig
YXQKKy8vIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL29wZW4tc291cmNlL2xpY2Vuc2Vz
L2JzZAorCitpZiAodHlwZW9mIGltcG9ydFNjcmlwdHMgIT09ICJ1bmRlZmluZWQiKSB7CisgIC8v
IFJ1bm5pbmcgb24gYSB3b3JrZXIKKyAgaW1wb3J0U2NyaXB0cygndXRpbC5qcycsICd1dGlsX3dv
cmtlci5qcycpOworfQorCisvLyBOYW1lc3BhY2UgZm9yIGhvbGRpbmcgZ2xvYmFscy4KK3ZhciBi
ZW5jaG1hcmsgPSB7c3RhcnRUaW1lSW5NczogMH07CisKK3ZhciBzb2NrZXRzID0gW107Cit2YXIg
bnVtRXN0YWJsaXNoZWRTb2NrZXRzID0gMDsKKwordmFyIHRpbWVySUQgPSBudWxsOworCitmdW5j
dGlvbiBkZXN0cm95U29ja2V0KHNvY2tldCkgeworICBzb2NrZXQub25vcGVuID0gbnVsbDsKKyAg
c29ja2V0Lm9ubWVzc2FnZSA9IG51bGw7CisgIHNvY2tldC5vbmVycm9yID0gbnVsbDsKKyAgc29j
a2V0Lm9uY2xvc2UgPSBudWxsOworICBzb2NrZXQuY2xvc2UoKTsKK30KKworZnVuY3Rpb24gZGVz
dHJveUFsbFNvY2tldHMoKSB7CisgIGZvciAodmFyIGkgPSAwOyBpIDwgc29ja2V0cy5sZW5ndGg7
ICsraSkgeworICAgIGRlc3Ryb3lTb2NrZXQoc29ja2V0c1tpXSk7CisgIH0KKyAgc29ja2V0cyA9
IFtdOworfQorCitmdW5jdGlvbiBzZW5kQmVuY2htYXJrU3RlcChzaXplLCBjb25maWcsIGlzV2Fy
bVVwKSB7CisgIHRpbWVySUQgPSBudWxsOworCisgIHZhciB0b3RhbFNpemUgPSAwOworICB2YXIg
dG90YWxSZXBsaWVkID0gMDsKKworICB2YXIgb25NZXNzYWdlSGFuZGxlciA9IGZ1bmN0aW9uKGV2
ZW50KSB7CisgICAgaWYgKCF2ZXJpZnlBY2tub3dsZWRnZW1lbnQoY29uZmlnLCBldmVudC5kYXRh
LCBzaXplKSkgeworICAgICAgZGVzdHJveUFsbFNvY2tldHMoKTsKKyAgICAgIGNvbmZpZy5ub3Rp
ZnlBYm9ydCgpOworICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHRvdGFsUmVwbGllZCArPSBz
aXplOworCisgICAgaWYgKHRvdGFsUmVwbGllZCA8IHRvdGFsU2l6ZSkgeworICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGNhbGN1bGF0ZUFuZExvZ1Jlc3VsdChjb25maWcsIHNpemUsIGJlbmNo
bWFyay5zdGFydFRpbWVJbk1zLCB0b3RhbFNpemUsCisgICAgICAgIGlzV2FybVVwKTsKKworICAg
IHJ1bk5leHRUYXNrKGNvbmZpZyk7CisgIH07CisKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb2Nr
ZXRzLmxlbmd0aDsgKytpKSB7CisgICAgdmFyIHNvY2tldCA9IHNvY2tldHNbaV07CisgICAgc29j
a2V0Lm9ubWVzc2FnZSA9IG9uTWVzc2FnZUhhbmRsZXI7CisgIH0KKworICB2YXIgZGF0YUFycmF5
ID0gW107CisKKyAgd2hpbGUgKHRvdGFsU2l6ZSA8IGNvbmZpZy5taW5Ub3RhbCkgeworICAgIHZh
ciBidWZmZXIgPSBuZXcgQXJyYXlCdWZmZXIoc2l6ZSk7CisKKyAgICBmaWxsQXJyYXlCdWZmZXIo
YnVmZmVyLCAweDYxKTsKKworICAgIGRhdGFBcnJheS5wdXNoKGJ1ZmZlcik7CisgICAgdG90YWxT
aXplICs9IHNpemU7CisgIH0KKworICBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcyA9IGdldFRpbWVT
dGFtcCgpOworCisgIHRvdGFsU2l6ZSA9IDA7CisKKyAgdmFyIHNvY2tldEluZGV4ID0gMDsKKyAg
dmFyIGRhdGFJbmRleCA9IDA7CisgIHdoaWxlICh0b3RhbFNpemUgPCBjb25maWcubWluVG90YWwp
IHsKKyAgICB2YXIgY29tbWFuZCA9IFsnc2VuZCddOworICAgIGNvbW1hbmQucHVzaChjb25maWcu
dmVyaWZ5RGF0YSA/ICcxJyA6ICcwJyk7CisgICAgc29ja2V0c1tzb2NrZXRJbmRleF0uc2VuZChj
b21tYW5kLmpvaW4oJyAnKSk7CisgICAgc29ja2V0c1tzb2NrZXRJbmRleF0uc2VuZChkYXRhQXJy
YXlbZGF0YUluZGV4XSk7CisgICAgc29ja2V0SW5kZXggPSAoc29ja2V0SW5kZXggKyAxKSAlIHNv
Y2tldHMubGVuZ3RoOworCisgICAgdG90YWxTaXplICs9IHNpemU7CisgICAgKytkYXRhSW5kZXg7
CisgIH0KK30KKworZnVuY3Rpb24gcmVjZWl2ZUJlbmNobWFya1N0ZXAoc2l6ZSwgY29uZmlnLCBp
c1dhcm1VcCkgeworICB0aW1lcklEID0gbnVsbDsKKworICB2YXIgdG90YWxTaXplID0gMDsKKyAg
dmFyIHRvdGFsUmVwbGllZCA9IDA7CisKKyAgdmFyIG9uTWVzc2FnZUhhbmRsZXIgPSBmdW5jdGlv
bihldmVudCkgeworICAgIHZhciBieXRlc1JlY2VpdmVkID0gZXZlbnQuZGF0YS5ieXRlTGVuZ3Ro
OworICAgIGlmIChieXRlc1JlY2VpdmVkICE9IHNpemUpIHsKKyAgICAgIGNvbmZpZy5hZGRUb0xv
ZygnRXhwZWN0ZWQgJyArIHNpemUgKyAnQiBidXQgcmVjZWl2ZWQgJyArCisgICAgICAgICAgYnl0
ZXNSZWNlaXZlZCArICdCJyk7CisgICAgICBkZXN0cm95QWxsU29ja2V0cygpOworICAgICAgY29u
ZmlnLm5vdGlmeUFib3J0KCk7CisgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGNvbmZp
Zy52ZXJpZnlEYXRhICYmICF2ZXJpZnlBcnJheUJ1ZmZlcihldmVudC5kYXRhLCAweDYxKSkgewor
ICAgICAgY29uZmlnLmFkZFRvTG9nKCdSZXNwb25zZSB2ZXJpZmljYXRpb24gZmFpbGVkJyk7Cisg
ICAgICBkZXN0cm95QWxsU29ja2V0cygpOworICAgICAgY29uZmlnLm5vdGlmeUFib3J0KCk7Cisg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgdG90YWxSZXBsaWVkICs9IGJ5dGVzUmVjZWl2ZWQ7
CisKKyAgICBpZiAodG90YWxSZXBsaWVkIDwgdG90YWxTaXplKSB7CisgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgY2FsY3VsYXRlQW5kTG9nUmVzdWx0KGNvbmZpZywgc2l6ZSwgYmVuY2htYXJr
LnN0YXJ0VGltZUluTXMsIHRvdGFsU2l6ZSwKKyAgICAgICAgaXNXYXJtVXApOworCisgICAgcnVu
TmV4dFRhc2soY29uZmlnKTsKKyAgfTsKKworICBmb3IgKHZhciBpID0gMDsgaSA8IHNvY2tldHMu
bGVuZ3RoOyArK2kpIHsKKyAgICB2YXIgc29ja2V0ID0gc29ja2V0c1tpXTsKKyAgICBzb2NrZXQu
YmluYXJ5VHlwZSA9ICdhcnJheWJ1ZmZlcic7CisgICAgc29ja2V0Lm9ubWVzc2FnZSA9IG9uTWVz
c2FnZUhhbmRsZXI7CisgIH0KKworICBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcyA9IGdldFRpbWVT
dGFtcCgpOworCisgIHZhciBzb2NrZXRJbmRleCA9IDA7CisgIHdoaWxlICh0b3RhbFNpemUgPCBj
b25maWcubWluVG90YWwpIHsKKyAgICBzb2NrZXRzW3NvY2tldEluZGV4XS5zZW5kKCdyZWNlaXZl
ICcgKyBzaXplKTsKKyAgICBzb2NrZXRJbmRleCA9IChzb2NrZXRJbmRleCArIDEpICUgc29ja2V0
cy5sZW5ndGg7CisKKyAgICB0b3RhbFNpemUgKz0gc2l6ZTsKKyAgfQorfQorCitmdW5jdGlvbiBj
cmVhdGVTb2NrZXQoY29uZmlnKSB7CisgIC8vIFRPRE8odHlvc2hpbm8pOiBBZGQgVENQIHdhcm0g
dXAuCisgIHZhciB1cmwgPSBjb25maWcucHJlZml4VXJsOworCisgIGNvbmZpZy5hZGRUb0xvZygn
Q29ubmVjdCAnICsgdXJsKTsKKworICB2YXIgc29ja2V0ID0gbmV3IFdlYlNvY2tldCh1cmwpOwor
ICBzb2NrZXQub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBjb25maWcuYWRkVG9M
b2coJ1VuZXhwZWN0ZWQgbWVzc2FnZSByZWNlaXZlZC4gQWJvcnRpbmcuJyk7CisgIH07CisgIHNv
Y2tldC5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgY29uZmlnLmFkZFRvTG9nKCdFcnJvcicp
OworICB9OworICBzb2NrZXQub25jbG9zZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgY29uZmln
LmFkZFRvTG9nKCdDbG9zZWQnKTsKKyAgICBjb25maWcubm90aWZ5QWJvcnQoKTsKKyAgfTsKKyAg
cmV0dXJuIHNvY2tldDsKK30KKworZnVuY3Rpb24gc3RhcnRCZW5jaG1hcmsoY29uZmlnKSB7Cisg
IGNsZWFyVGltZW91dCh0aW1lcklEKTsKKyAgZGVzdHJveUFsbFNvY2tldHMoKTsKKworICBudW1F
c3RhYmxpc2hlZFNvY2tldHMgPSAwOworCisgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLm51
bVNvY2tldHM7ICsraSkgeworICAgIHZhciBzb2NrZXQgPSBjcmVhdGVTb2NrZXQoY29uZmlnKTsK
KyAgICBzb2NrZXQub25vcGVuID0gZnVuY3Rpb24oKSB7CisgICAgICBjb25maWcuYWRkVG9Mb2co
J09wZW5lZCcpOworCisgICAgICArK251bUVzdGFibGlzaGVkU29ja2V0czsKKworICAgICAgaWYg
KG51bUVzdGFibGlzaGVkU29ja2V0cyA9PSBzb2NrZXRzLmxlbmd0aCkgeworICAgICAgICBydW5O
ZXh0VGFzayhjb25maWcpOworICAgICAgfQorICAgIH07CisgICAgc29ja2V0cy5wdXNoKHNvY2tl
dCk7CisgIH0KK30KKworZnVuY3Rpb24gZ2V0Q29uZmlnU3RyaW5nKGNvbmZpZykgeworICByZXR1
cm4gJyhXZWJTb2NrZXQnICsKKyAgICAnLCAnICsgKHR5cGVvZiBpbXBvcnRTY3JpcHRzICE9PSAi
dW5kZWZpbmVkIiA/ICdXb3JrZXInIDogJ01haW4nKSArCisgICAgJywgbnVtU29ja2V0cz0nICsg
Y29uZmlnLm51bVNvY2tldHMgKworICAgICcsIG51bUl0ZXJhdGlvbnM9JyArIGNvbmZpZy5udW1J
dGVyYXRpb25zICsKKyAgICAnLCB2ZXJpZnlEYXRhPScgKyBjb25maWcudmVyaWZ5RGF0YSArCisg
ICAgJywgbWluVG90YWw9JyArIGNvbmZpZy5taW5Ub3RhbCArCisgICAgJywgbnVtV2FybVVwSXRl
cmF0aW9ucz0nICsgY29uZmlnLm51bVdhcm1VcEl0ZXJhdGlvbnMgKworICAgICcpJzsKK30KKwor
ZnVuY3Rpb24gYmF0Y2hCZW5jaG1hcmsoY29uZmlnKSB7CisgIGNvbmZpZy5hZGRUb0xvZygnQmF0
Y2ggYmVuY2htYXJrJyk7CisgIGNvbmZpZy5hZGRUb0xvZyhidWlsZExlZ2VuZFN0cmluZyhjb25m
aWcpKTsKKworICB0YXNrcyA9IFtdOworICBjbGVhckF2ZXJhZ2VEYXRhKCk7CisgIGFkZFRhc2tz
KGNvbmZpZywgc2VuZEJlbmNobWFya1N0ZXApOworICBhZGRSZXN1bHRSZXBvcnRpbmdUYXNrKGNv
bmZpZywgJ1NlbmQgQmVuY2htYXJrICcgKyBnZXRDb25maWdTdHJpbmcoY29uZmlnKSk7CisgIGFk
ZFRhc2tzKGNvbmZpZywgcmVjZWl2ZUJlbmNobWFya1N0ZXApOworICBhZGRSZXN1bHRSZXBvcnRp
bmdUYXNrKGNvbmZpZywgJ1JlY2VpdmUgQmVuY2htYXJrICcgKworICAgICAgZ2V0Q29uZmlnU3Ry
aW5nKGNvbmZpZykpOworICBzdGFydEJlbmNobWFyayhjb25maWcpOworfQorCitmdW5jdGlvbiBj
bGVhbnVwKCkgeworICBkZXN0cm95QWxsU29ja2V0cygpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9l
eGFtcGxlL2JlbmNobWFya19oZWxwZXJfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2JlbmNobWFya19o
ZWxwZXJfd3NoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0YWQwYmZlZWZjNmY0NDMwNTcxYjdiNTMyMzNmYjc5
NTA2MTRjZjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYmVuY2htYXJrX2hlbHBl
cl93c2gucHkKQEAgLTAsMCArMSw4NSBAQAorIyBDb3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4K
KyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisj
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKworIiIiSGFuZGxl
ciBmb3IgYmVuY2htYXJrLmh0bWwuIiIiCisKKworZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFu
ZHNoYWtlKHJlcXVlc3QpOgorICAgICMgVHVybiBvZmYgY29tcHJlc3Npb24uCisgICAgcmVxdWVz
dC53c19leHRlbnNpb25fcHJvY2Vzc29ycyA9IFtdCisKKworZGVmIHdlYl9zb2NrZXRfdHJhbnNm
ZXJfZGF0YShyZXF1ZXN0KToKKyAgICBkYXRhID0gJycKKworICAgIHdoaWxlIFRydWU6CisgICAg
ICAgIGNvbW1hbmQgPSByZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQorICAgICAg
ICBpZiBjb21tYW5kIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBpZiBu
b3QgaXNpbnN0YW5jZShjb21tYW5kLCB1bmljb2RlKToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoJ0ludmFsaWQgY29tbWFuZCBkYXRhOicgKyBjb21tYW5kKQorICAgICAgICBjb21tYW5k
cyA9IGNvbW1hbmQuc3BsaXQoJyAnKQorICAgICAgICBpZiBsZW4oY29tbWFuZHMpID09IDA6Cisg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIGNvbW1hbmQgZGF0YTogJyArIGNv
bW1hbmQpCisKKyAgICAgICAgaWYgY29tbWFuZHNbMF0gPT0gJ3JlY2VpdmUnOgorICAgICAgICAg
ICAgaWYgbGVuKGNvbW1hbmRzKSAhPSAyOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoCisgICAgICAgICAgICAgICAgICAgICAgICAnSWxsZWdhbCBudW1iZXIgb2YgYXJndW1lbnRz
IGZvciBzZW5kIGNvbW1hbmQnICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQpCisg
ICAgICAgICAgICBzaXplID0gaW50KGNvbW1hbmRzWzFdKQorCisgICAgICAgICAgICAjIFJldXNl
IGRhdGEgaWYgcG9zc2libGUuCisgICAgICAgICAgICBpZiBsZW4oZGF0YSkgIT0gc2l6ZToKKyAg
ICAgICAgICAgICAgICBkYXRhID0gJ2EnICogc2l6ZQorICAgICAgICAgICAgcmVxdWVzdC53c19z
dHJlYW0uc2VuZF9tZXNzYWdlKGRhdGEsIGJpbmFyeT1UcnVlKQorICAgICAgICBlbGlmIGNvbW1h
bmRzWzBdID09ICdzZW5kJzoKKyAgICAgICAgICAgIGlmIGxlbihjb21tYW5kcykgIT0gMjoKKyAg
ICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAgICAg
J0lsbGVnYWwgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgcmVjZWl2ZSBjb21tYW5kJyArCisgICAg
ICAgICAgICAgICAgICAgICAgICBjb21tYW5kKQorICAgICAgICAgICAgdmVyaWZ5X2RhdGEgPSBj
b21tYW5kc1sxXSA9PSAnMScKKworICAgICAgICAgICAgZGF0YSA9IHJlcXVlc3Qud3Nfc3RyZWFt
LnJlY2VpdmVfbWVzc2FnZSgpCisgICAgICAgICAgICBpZiBkYXRhIGlzIE5vbmU6CisgICAgICAg
ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignUGF5bG9hZCBub3QgcmVjZWl2ZWQnKQorICAgICAg
ICAgICAgc2l6ZSA9IGxlbihkYXRhKQorCisgICAgICAgICAgICBpZiB2ZXJpZnlfZGF0YToKKyAg
ICAgICAgICAgICAgICBpZiBkYXRhICE9ICdhJyAqIHNpemU6CisgICAgICAgICAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoJ1BheWxvYWQgdmVyaWZpY2F0aW9uIGZhaWxlZCcpCisKKyAgICAg
ICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShzdHIoc2l6ZSkpCisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIGNvbW1hbmQ6ICcg
KyBjb21tYW5kc1swXSkKKworCisjIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
ZXhhbXBsZS9jbG9zZV93c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvY2xvc2Vfd3NoLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjI2YjA4Mzg0MDgxMjQ1Mzk3OTc2NTdkNDBkNjQyNzhmMWE2NDgxYzAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L2V4YW1wbGUvY2xvc2Vfd3NoLnB5CkBAIC0wLDAgKzEsNjkgQEAKKyMgQ29w
eXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorCitpbXBvcnQgc3RydWN0CisKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9y
dCBjb21tb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBzdHJlYW0KKworCitkZWYgd2Vi
X3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6CisgICAgcGFzcworCisKK2RlZiB3
ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6CisgICAgd2hpbGUgVHJ1ZToKKyAgICAg
ICAgbGluZSA9IHJlcXVlc3Qud3Nfc3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpCisgICAgICAgIGlm
IGxpbmUgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBjb2RlLCByZWFzb24g
PSBsaW5lLnNwbGl0KCcgJywgMSkKKyAgICAgICAgaWYgY29kZSBpcyBOb25lIG9yIHJlYXNvbiBp
cyBOb25lOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNs
b3NlX2Nvbm5lY3Rpb24oaW50KGNvZGUpLCByZWFzb24pCisgICAgICAgICMgY2xvc2VfY29ubmVj
dGlvbigpIGluaXRpYXRlcyBjbG9zaW5nIGhhbmRzaGFrZS4gSXQgdmFsaWRhdGVzIGNvZGUKKyAg
ICAgICAgIyBhbmQgcmVhc29uLiBJZiB5b3Ugd2FudCB0byBzZW5kIGEgYnJva2VuIGNsb3NlIGZy
YW1lIGZvciBhIHRlc3QsCisgICAgICAgICMgZm9sbG93aW5nIGNvZGUgd2lsbCBiZSB1c2VmdWwu
CisgICAgICAgICMgPiBkYXRhID0gc3RydWN0LnBhY2soJyFIJywgaW50KGNvZGUpKSArIHJlYXNv
bi5lbmNvZGUoJ1VURi04JykKKyAgICAgICAgIyA+IHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZShz
dHJlYW0uY3JlYXRlX2Nsb3NlX2ZyYW1lKGRhdGEpKQorICAgICAgICAjID4gIyBTdXBwcmVzcyB0
byByZS1yZXNwb25kIGNsaWVudCByZXNwb25kaW5nIGNsb3NlIGZyYW1lLgorICAgICAgICAjID4g
cmFpc2UgRXhjZXB0aW9uKCJjdXN0b21pemVkIHNlcnZlciBpbml0aWF0ZWQgY2xvc2luZyBoYW5k
c2hha2UiKQorCisKK2RlZiB3ZWJfc29ja2V0X3Bhc3NpdmVfY2xvc2luZ19oYW5kc2hha2UocmVx
dWVzdCk6CisgICAgIyBTaW1wbHkgZWNobyBhIGNsb3NlIHN0YXR1cyBjb2RlCisgICAgY29kZSwg
cmVhc29uID0gcmVxdWVzdC53c19jbG9zZV9jb2RlLCByZXF1ZXN0LndzX2Nsb3NlX3JlYXNvbgor
CisgICAgIyBweXdlYnNvY2tldCBzZXRzIHBzZXVkbyBjb2RlIGZvciByZWNlaXZpbmcgYW4gZW1w
dHkgYm9keSBjbG9zZSBmcmFtZS4KKyAgICBpZiBjb2RlID09IGNvbW1vbi5TVEFUVVNfTk9fU1RB
VFVTX1JFQ0VJVkVEOgorICAgICAgICBjb2RlID0gTm9uZQorICAgICAgICByZWFzb24gPSAnJwor
ICAgIHJldHVybiBjb2RlLCByZWFzb24KKworCisjIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvZXhhbXBsZS9jb25zb2xlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvY29uc29sZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmNjZDZkOGY4MDY3NmI5OTkxZTIyZGZjN2VjODUwODM0MTFkZGQwYjMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvY29uc29sZS5odG1sCkBAIC0wLDAgKzEsMzE3
IEBACis8IS0tCitDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KK0FsbCByaWdodHMgcmVzZXJ2
ZWQuCisKK1JlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorbWV0OgorCisgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgoraW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorZGlzdHJpYnV0aW9uLgorICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KK3RoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisKK1RISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCitMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKK0EgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCitP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKK1NQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKK0xJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCitUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKK09GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCistLT4KKworPCEtLQorQSBzaW1wbGUgY29u
c29sZSBmb3IgdGVzdGluZyBXZWJTb2NrZXQgc2VydmVyLgorCitUeXBlIGFuIGFkZHJlc3MgaW50
byB0aGUgdG9wIHRleHQgaW5wdXQgYW5kIGNsaWNrIGNvbm5lY3QgdG8gZXN0YWJsaXNoCitXZWJT
b2NrZXQuIFRoZW4sIHR5cGUgc29tZSBtZXNzYWdlIGludG8gdGhlIGJvdHRvbSB0ZXh0IGlucHV0
IGFuZCBjbGljayBzZW5kCit0byBzZW5kIHRoZSBtZXNzYWdlLiBSZWNlaXZlZC9zZW50IG1lc3Nh
Z2VzIGFuZCBjb25uZWN0aW9uIHN0YXRlIHdpbGwgYmUgc2hvd24KK29uIHRoZSBtaWRkbGUgdGV4
dGFyZWEuCistLT4KKworPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5XZWJTb2NrZXQgY29uc29sZTwv
dGl0bGU+Cis8c2NyaXB0PgordmFyIHNvY2tldCA9IG51bGw7CisKK3ZhciBzaG93VGltZVN0YW1w
ID0gZmFsc2U7CisKK3ZhciBhZGRyZXNzQm94ID0gbnVsbDsKK3ZhciBwcm90b2NvbHNCb3ggPSBu
dWxsOwordmFyIGxvZ0JveCA9IG51bGw7Cit2YXIgbWVzc2FnZUJveCA9IG51bGw7Cit2YXIgZmls
ZUJveCA9IG51bGw7Cit2YXIgY29kZUJveCA9IG51bGw7Cit2YXIgcmVhc29uQm94ID0gbnVsbDsK
KworZnVuY3Rpb24gZ2V0VGltZVN0YW1wKCkgeworICByZXR1cm4gbmV3IERhdGUoKS5nZXRUaW1l
KCk7Cit9CisKK2Z1bmN0aW9uIGFkZFRvTG9nKGxvZykgeworICBpZiAoc2hvd1RpbWVTdGFtcCkg
eworICAgIGxvZ0JveC52YWx1ZSArPSAnWycgKyBnZXRUaW1lU3RhbXAoKSArICddICc7CisgIH0K
KyAgbG9nQm94LnZhbHVlICs9IGxvZyArICdcbicKKyAgLy8gTGFyZ2UgZW5vdWdoIHRvIGtlZXAg
c2hvd2luZyB0aGUgbGF0ZXN0IG1lc3NhZ2UuCisgIGxvZ0JveC5zY3JvbGxUb3AgPSAxMDAwMDAw
OworfQorCitmdW5jdGlvbiBzZXRiaW5hcnl0eXBlKGJpbmFyeVR5cGUpIHsKKyAgaWYgKCFzb2Nr
ZXQpIHsKKyAgICBhZGRUb0xvZygnTm90IGNvbm5lY3RlZCcpOworICAgIHJldHVybjsKKyAgfQor
CisgIHNvY2tldC5iaW5hcnlUeXBlID0gYmluYXJ5VHlwZTsKKyAgYWRkVG9Mb2coJ1NldCBiaW5h
cnlUeXBlIHRvICcgKyBiaW5hcnlUeXBlKTsKK30KKworZnVuY3Rpb24gc2VuZCgpIHsKKyAgaWYg
KCFzb2NrZXQpIHsKKyAgICBhZGRUb0xvZygnTm90IGNvbm5lY3RlZCcpOworICAgIHJldHVybjsK
KyAgfQorCisgIHNvY2tldC5zZW5kKG1lc3NhZ2VCb3gudmFsdWUpOworICBhZGRUb0xvZygnPiAn
ICsgbWVzc2FnZUJveC52YWx1ZSk7CisgIG1lc3NhZ2VCb3gudmFsdWUgPSAnJzsKK30KKworZnVu
Y3Rpb24gc2VuZGZpbGUoKSB7CisgIGlmICghc29ja2V0KSB7CisgICAgYWRkVG9Mb2coJ05vdCBj
b25uZWN0ZWQnKTsKKyAgICByZXR1cm47CisgIH0KKworICB2YXIgZmlsZXMgPSBmaWxlQm94LmZp
bGVzOworCisgIGlmIChmaWxlcy5sZW5ndGggPT0gMCkgeworICAgIGFkZFRvTG9nKCdGaWxlIG5v
dCBzZWxlY3RlZCcpOworICAgIHJldHVybjsKKyAgfQorCisgIHNvY2tldC5zZW5kKGZpbGVzWzBd
KTsKKyAgYWRkVG9Mb2coJz4gU2VuZCAnICsgZmlsZXNbMF0ubmFtZSk7Cit9CisKK2Z1bmN0aW9u
IHBhcnNlUHJvdG9jb2xzKHByb3RvY29sc1RleHQpIHsKKyAgdmFyIHByb3RvY29scyA9IHByb3Rv
Y29sc1RleHQuc3BsaXQoJywnKTsKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm90b2NvbHMubGVu
Z3RoOyArK2kpIHsKKyAgICBwcm90b2NvbHNbaV0gPSBwcm90b2NvbHNbaV0udHJpbSgpOworICB9
CisKKyAgaWYgKHByb3RvY29scy5sZW5ndGggPT0gMCkgeworICAgIC8vIERvbid0IHBhc3MuCisg
ICAgcHJvdG9jb2xzID0gbnVsbDsKKyAgfSBlbHNlIGlmIChwcm90b2NvbHMubGVuZ3RoID09IDEp
IHsKKyAgICBpZiAocHJvdG9jb2xzWzBdLmxlbmd0aCA9PSAwKSB7CisgICAgICAvLyBEb24ndCBw
YXNzLgorICAgICAgcHJvdG9jb2xzID0gbnVsbDsKKyAgICB9IGVsc2UgeworICAgICAgLy8gUGFz
cyBhcyBhIHN0cmluZy4KKyAgICAgIHByb3RvY29scyA9IHByb3RvY29sc1swXTsKKyAgICB9Cisg
IH0KKworICByZXR1cm4gcHJvdG9jb2xzOworfQorCitmdW5jdGlvbiBjb25uZWN0KCkgeworICB2
YXIgdXJsID0gYWRkcmVzc0JveC52YWx1ZTsKKyAgdmFyIHByb3RvY29scyA9IHBhcnNlUHJvdG9j
b2xzKHByb3RvY29sc0JveC52YWx1ZSk7CisKKyAgaWYgKCdXZWJTb2NrZXQnIGluIHdpbmRvdykg
eworICAgIGlmIChwcm90b2NvbHMpIHsKKyAgICAgIHNvY2tldCA9IG5ldyBXZWJTb2NrZXQodXJs
LCBwcm90b2NvbHMpOworICAgIH0gZWxzZSB7CisgICAgICBzb2NrZXQgPSBuZXcgV2ViU29ja2V0
KHVybCk7CisgICAgfQorICB9IGVsc2UgeworICAgIHJldHVybjsKKyAgfQorCisgIHNvY2tldC5v
bm9wZW4gPSBmdW5jdGlvbiAoKSB7CisgICAgdmFyIGV4dHJhSW5mbyA9IFtdOworICAgIGlmICgo
J3Byb3RvY29sJyBpbiBzb2NrZXQpICYmIHNvY2tldC5wcm90b2NvbCkgeworICAgICAgZXh0cmFJ
bmZvLnB1c2goJ3Byb3RvY29sID0gJyArIHNvY2tldC5wcm90b2NvbCk7CisgICAgfQorICAgIGlm
ICgoJ2V4dGVuc2lvbnMnIGluIHNvY2tldCkgJiYgc29ja2V0LmV4dGVuc2lvbnMpIHsKKyAgICAg
IGV4dHJhSW5mby5wdXNoKCdleHRlbnNpb25zID0gJyArIHNvY2tldC5leHRlbnNpb25zKTsKKyAg
ICB9CisKKyAgICB2YXIgbG9nTWVzc2FnZSA9ICdPcGVuZWQnOworICAgIGlmIChleHRyYUluZm8u
bGVuZ3RoID4gMCkgeworICAgICAgbG9nTWVzc2FnZSArPSAnICgnICsgZXh0cmFJbmZvLmpvaW4o
JywgJykgKyAnKSc7CisgICAgfQorICAgIGFkZFRvTG9nKGxvZ01lc3NhZ2UpOworICB9OworICBz
b2NrZXQub25tZXNzYWdlID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgaWYgKCgnQXJyYXlCdWZm
ZXInIGluIHdpbmRvdykgJiYgKGV2ZW50LmRhdGEgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcikpIHsK
KyAgICAgIGFkZFRvTG9nKCc8IFJlY2VpdmVkIGFuIEFycmF5QnVmZmVyIG9mICcgKyBldmVudC5k
YXRhLmJ5dGVMZW5ndGggKworICAgICAgICAgICAgICAgJyBieXRlcycpCisgICAgfSBlbHNlIGlm
ICgoJ0Jsb2InIGluIHdpbmRvdykgJiYgKGV2ZW50LmRhdGEgaW5zdGFuY2VvZiBCbG9iKSkgewor
ICAgICAgYWRkVG9Mb2coJzwgUmVjZWl2ZWQgYSBCbG9iIG9mICcgKyBldmVudC5kYXRhLnNpemUg
KyAnIGJ5dGVzJykKKyAgICB9IGVsc2UgeworICAgICAgYWRkVG9Mb2coJzwgJyArIGV2ZW50LmRh
dGEpOworICAgIH0KKyAgfTsKKyAgc29ja2V0Lm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7CisgICAg
YWRkVG9Mb2coJ0Vycm9yJyk7CisgIH07CisgIHNvY2tldC5vbmNsb3NlID0gZnVuY3Rpb24gKGV2
ZW50KSB7CisgICAgdmFyIGxvZ01lc3NhZ2UgPSAnQ2xvc2VkICgnOworICAgIGlmICgoYXJndW1l
bnRzLmxlbmd0aCA9PSAxKSAmJiAoJ0Nsb3NlRXZlbnQnIGluIHdpbmRvdykgJiYKKyAgICAgICAg
KGV2ZW50IGluc3RhbmNlb2YgQ2xvc2VFdmVudCkpIHsKKyAgICAgIGxvZ01lc3NhZ2UgKz0gJ3dh
c0NsZWFuID0gJyArIGV2ZW50Lndhc0NsZWFuOworICAgICAgLy8gY29kZSBhbmQgcmVhc29uIGFy
ZSBwcmVzZW50IG9ubHkgZm9yCisgICAgICAvLyBkcmFmdC1pZXRmLWh5YmktdGhld2Vic29ja2V0
cHJvdG9jb2wtMDYgYW5kIGxhdGVyCisgICAgICBpZiAoJ2NvZGUnIGluIGV2ZW50KSB7CisgICAg
ICAgIGxvZ01lc3NhZ2UgKz0gJywgY29kZSA9ICcgKyBldmVudC5jb2RlOworICAgICAgfQorICAg
ICAgaWYgKCdyZWFzb24nIGluIGV2ZW50KSB7CisgICAgICAgIGxvZ01lc3NhZ2UgKz0gJywgcmVh
c29uID0gJyArIGV2ZW50LnJlYXNvbjsKKyAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgbG9n
TWVzc2FnZSArPSAnQ2xvc2VFdmVudCBpcyBub3QgYXZhaWxhYmxlJzsKKyAgICB9CisgICAgYWRk
VG9Mb2cobG9nTWVzc2FnZSArICcpJyk7CisgIH07CisKKyAgaWYgKHByb3RvY29scykgeworICAg
IGFkZFRvTG9nKCdDb25uZWN0ICcgKyB1cmwgKyAnIChwcm90b2NvbHMgPSAnICsgcHJvdG9jb2xz
ICsgJyknKTsKKyAgfSBlbHNlIHsKKyAgICBhZGRUb0xvZygnQ29ubmVjdCAnICsgdXJsKTsKKyAg
fQorfQorCitmdW5jdGlvbiBjbG9zZVNvY2tldCgpIHsKKyAgaWYgKCFzb2NrZXQpIHsKKyAgICBh
ZGRUb0xvZygnTm90IGNvbm5lY3RlZCcpOworICAgIHJldHVybjsKKyAgfQorCisgIGlmIChjb2Rl
Qm94LnZhbHVlIHx8IHJlYXNvbkJveC52YWx1ZSkgeworICAgIHNvY2tldC5jbG9zZShjb2RlQm94
LnZhbHVlLCByZWFzb25Cb3gudmFsdWUpOworICB9IGVsc2UgeworICAgIHNvY2tldC5jbG9zZSgp
OworICB9Cit9CisKK2Z1bmN0aW9uIHByaW50U3RhdGUoKSB7CisgIGlmICghc29ja2V0KSB7Cisg
ICAgYWRkVG9Mb2coJ05vdCBjb25uZWN0ZWQnKTsKKyAgICByZXR1cm47CisgIH0KKworICBhZGRU
b0xvZygKKyAgICAgICd1cmwgPSAnICsgc29ja2V0LnVybCArCisgICAgICAnLCByZWFkeVN0YXRl
ID0gJyArIHNvY2tldC5yZWFkeVN0YXRlICsKKyAgICAgICcsIGJ1ZmZlcmVkQW1vdW50ID0gJyAr
IHNvY2tldC5idWZmZXJlZEFtb3VudCk7Cit9CisKK2Z1bmN0aW9uIGluaXQoKSB7CisgIHZhciBz
Y2hlbWUgPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgPT0gJ2h0dHBzOicgPyAnd3NzOi8vJyA6
ICd3czovLyc7CisgIHZhciBkZWZhdWx0QWRkcmVzcyA9IHNjaGVtZSArIHdpbmRvdy5sb2NhdGlv
bi5ob3N0ICsgJy9lY2hvJzsKKworICBhZGRyZXNzQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2FkZHJlc3MnKTsKKyAgcHJvdG9jb2xzQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Byb3RvY29scycpOworICBsb2dCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJyk7
CisgIG1lc3NhZ2VCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVzc2FnZScpOworICBm
aWxlQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZpbGUnKTsKKyAgY29kZUJveCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb2RlJyk7CisgIHJlYXNvbkJveCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdyZWFzb24nKTsKKworICBhZGRyZXNzQm94LnZhbHVlID0gZGVmYXVsdEFk
ZHJlc3M7CisKKyAgaWYgKCEoJ1dlYlNvY2tldCcgaW4gd2luZG93KSkgeworICAgIGFkZFRvTG9n
KCdXZWJTb2NrZXQgaXMgbm90IGF2YWlsYWJsZScpOworICB9Cit9Cis8L3NjcmlwdD4KKzxzdHls
ZSB0eXBlPSJ0ZXh0L2NzcyI+Citmb3JtIHsKKyAgbWFyZ2luOiAwcHg7Cit9CisKKyNjb25uZWN0
X2RpdiwgI2xvZ19kaXYsICNzZW5kX2RpdiwgI3NlbmRmaWxlX2RpdiwgI2Nsb3NlX2RpdiwgI3By
aW50c3RhdGVfZGl2IHsKKyAgcGFkZGluZzogNXB4OworICBtYXJnaW46IDVweDsKKyAgYm9yZGVy
LXdpZHRoOiAwcHggMHB4IDBweCAxMHB4OworICBib3JkZXItc3R5bGU6IHNvbGlkOworICBib3Jk
ZXItY29sb3I6IHNpbHZlcjsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9Imlu
aXQoKSI+CisKKzxkaXY+CisKKzxkaXYgaWQ9ImNvbm5lY3RfZGl2Ij4KKyAgPGZvcm0gYWN0aW9u
PSIjIiBvbnN1Ym1pdD0iY29ubmVjdCgpOyByZXR1cm4gZmFsc2U7Ij4KKyAgICB1cmwgPGlucHV0
IHR5cGU9InRleHQiIGlkPSJhZGRyZXNzIiBzaXplPSI0MCI+CisgICAgPGlucHV0IHR5cGU9InN1
Ym1pdCIgdmFsdWU9ImNvbm5lY3QiPgorICAgIDxici8+CisgICAgcHJvdG9jb2xzIDxpbnB1dCB0
eXBlPSJ0ZXh0IiBpZD0icHJvdG9jb2xzIiBzaXplPSIyMCI+CisgIDwvZm9ybT4KKzwvZGl2Pgor
Cis8ZGl2IGlkPSJsb2dfZGl2Ij4KKyAgPHRleHRhcmVhIGlkPSJsb2ciIHJvd3M9IjEwIiBjb2xz
PSI0MCIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KKyAgPGJyLz4KKyAgPGlucHV0IHR5cGU9ImNoZWNr
Ym94IgorICAgICAgICAgbmFtZT0ic2hvd3RpbWVzdGFtcCIKKyAgICAgICAgIHZhbHVlPSJzaG93
dGltZXN0YW1wIgorICAgICAgICAgb25jbGljaz0ic2hvd1RpbWVTdGFtcCA9IHRoaXMuY2hlY2tl
ZCI+U2hvdyB0aW1lIHN0YW1wCis8L2Rpdj4KKworPGRpdiBpZD0ic2VuZF9kaXYiPgorICA8Zm9y
bSBhY3Rpb249IiMiIG9uc3VibWl0PSJzZW5kKCk7IHJldHVybiBmYWxzZTsiPgorICAgIGRhdGEg
PGlucHV0IHR5cGU9InRleHQiIGlkPSJtZXNzYWdlIiBzaXplPSI0MCI+CisgICAgPGlucHV0IHR5
cGU9InN1Ym1pdCIgdmFsdWU9InNlbmQiPgorICA8L2Zvcm0+Cis8L2Rpdj4KKworPGRpdiBpZD0i
c2VuZGZpbGVfZGl2Ij4KKyAgPGZvcm0gYWN0aW9uPSIjIiBvbnN1Ym1pdD0ic2VuZGZpbGUoKTsg
cmV0dXJuIGZhbHNlOyI+CisgICAgPGlucHV0IHR5cGU9ImZpbGUiIGlkPSJmaWxlIiBzaXplPSI0
MCI+CisgICAgPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9InNlbmQgZmlsZSI+CisgIDwvZm9y
bT4KKworICBTZXQgYmluYXJ5VHlwZQorICA8aW5wdXQgdHlwZT0icmFkaW8iCisgICAgICAgICBu
YW1lPSJiaW5hcnl0eXBlIgorICAgICAgICAgdmFsdWU9ImJsb2IiCisgICAgICAgICBvbmNsaWNr
PSJzZXRiaW5hcnl0eXBlKCdibG9iJykiIGNoZWNrZWQ+YmxvYgorICA8aW5wdXQgdHlwZT0icmFk
aW8iCisgICAgICAgICBuYW1lPSJiaW5hcnl0eXBlIgorICAgICAgICAgdmFsdWU9ImFycmF5YnVm
ZmVyIgorICAgICAgICAgb25jbGljaz0ic2V0YmluYXJ5dHlwZSgnYXJyYXlidWZmZXInKSI+YXJy
YXlidWZmZXIKKzwvZGl2PgorCis8ZGl2IGlkPSJjbG9zZV9kaXYiPgorICA8Zm9ybSBhY3Rpb249
IiMiIG9uc3VibWl0PSJjbG9zZVNvY2tldCgpOyByZXR1cm4gZmFsc2U7Ij4KKyAgICBjb2RlIDxp
bnB1dCB0eXBlPSJ0ZXh0IiBpZD0iY29kZSIgc2l6ZT0iMTAiPgorICAgIHJlYXNvbiA8aW5wdXQg
dHlwZT0idGV4dCIgaWQ9InJlYXNvbiIgc2l6ZT0iMjAiPgorICAgIDxpbnB1dCB0eXBlPSJzdWJt
aXQiIHZhbHVlPSJjbG9zZSI+CisgIDwvZm9ybT4KKzwvZGl2PgorCis8ZGl2IGlkPSJwcmludHN0
YXRlX2RpdiI+CisgIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJwcmludCBzdGF0ZSIgb25j
bGljaz0icHJpbnRTdGF0ZSgpOyI+Cis8L2Rpdj4KKworPC9kaXY+CisKKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9jb29raWVfd3NoLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxl
L2Nvb2tpZV93c2gucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIzMjcxNTJlNzAxZjdkMjAzMWQ3YzljZTA0NjI0
Y2ZhODRhYzE2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9jb29raWVfd3NoLnB5
CkBAIC0wLDAgKzEsMzIgQEAKKyMgQ29weXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMKKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg
YSBCU0Qtc3R5bGUKKyMgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgQ09QWUlORyBm
aWxlIG9yIGF0CisjIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL29wZW4tc291cmNlL2xp
Y2Vuc2VzL2JzZAorCisKK2ltcG9ydCB1cmxwYXJzZQorCisKK2RlZiBfYWRkX3NldF9jb29raWUo
cmVxdWVzdCwgdmFsdWUpOgorICAgIHJlcXVlc3QuZXh0cmFfaGVhZGVycy5hcHBlbmQoKCdTZXQt
Q29va2llJywgdmFsdWUpKQorCisKK2RlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShy
ZXF1ZXN0KToKKyAgICBjb21wb25lbnRzID0gdXJscGFyc2UudXJscGFyc2UocmVxdWVzdC51cmkp
CisgICAgY29tbWFuZCA9IGNvbXBvbmVudHNbNF0KKworICAgIE9ORV9EQVlfTElGRSA9ICdNYXgt
QWdlPTg2NDAwJworCisgICAgaWYgY29tbWFuZCA9PSAnc2V0JzoKKyAgICAgICAgX2FkZF9zZXRf
Y29va2llKHJlcXVlc3QsICc7ICcuam9pbihbJ2Zvbz1iYXInLCBPTkVfREFZX0xJRkVdKSkKKyAg
ICBlbGlmIGNvbW1hbmQgPT0gJ3NldF9odHRwb25seSc6CisgICAgICAgIF9hZGRfc2V0X2Nvb2tp
ZShyZXF1ZXN0LAorICAgICAgICAgICAgJzsgJy5qb2luKFsnaHR0cE9ubHlGb289YmFyJywgT05F
X0RBWV9MSUZFLCAnaHR0cE9ubHknXSkpCisgICAgZWxpZiBjb21tYW5kID09ICdjbGVhcic6Cisg
ICAgICAgIF9hZGRfc2V0X2Nvb2tpZShyZXF1ZXN0LCAnZm9vPTA7IE1heC1BZ2U9MCcpCisgICAg
ICAgIF9hZGRfc2V0X2Nvb2tpZShyZXF1ZXN0LCAnaHR0cE9ubHlGb289MDsgTWF4LUFnZT0wJykK
KworCitkZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgorICAgIHBhc3MKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9lY2hvX2NsaWVudC5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9lY2hv
X2NsaWVudC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NDNjZTY0ZThiODg2NTYyZmM2OTIwOTgzNGJmOTJiMTM5
OTE0MmY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9fY2xpZW50LnB5CkBA
IC0wLDAgKzEsMTEyOCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAy
MDExLCBHb29nbGUgSW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisj
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
IyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworCisiIiJTaW1wbGUgV2ViU29ja2V0IGNsaWVudCBuYW1lZCBlY2hvX2NsaWVudCBqdXN0
IGJlY2F1c2Ugb2YgaGlzdG9yaWNhbCByZWFzb24uCisKK21vZF9weXdlYnNvY2tldCBkaXJlY3Rv
cnkgbXVzdCBiZSBpbiBQWVRIT05QQVRILgorCitFeGFtcGxlIFVzYWdlOgorCisjIHNlcnZlciBz
ZXR1cAorICUgY2QgJHB5d2Vic29ja2V0CisgJSBQWVRIT05QQVRIPSRjd2Qvc3JjIHB5dGhvbiAu
L21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5IC1wIDg4ODAgXAorICAgIC1kICRjd2Qvc3Jj
L2V4YW1wbGUKKworIyBydW4gY2xpZW50CisgJSBQWVRIT05QQVRIPSRjd2Qvc3JjIHB5dGhvbiAu
L3NyYy9leGFtcGxlL2VjaG9fY2xpZW50LnB5IC1wIDg4ODAgXAorICAgICAtcyBsb2NhbGhvc3Qg
XAorICAgICAtbyBodHRwOi8vbG9jYWxob3N0IC1yIC9lY2hvIC1tIHRlc3QKKworb3IKKworIyBy
dW4gZWNobyBjbGllbnQgdG8gdGVzdCBJRVRGIEh5QmkgMDAgcHJvdG9jb2wKKyBydW4gd2l0aCAt
LXByb3RvY29sLXZlcnNpb249aHliaTAwCisiIiIKKworCitpbXBvcnQgYmFzZTY0CitpbXBvcnQg
Y29kZWNzCitpbXBvcnQgbG9nZ2luZworZnJvbSBvcHRwYXJzZSBpbXBvcnQgT3B0aW9uUGFyc2Vy
CitpbXBvcnQgb3MKK2ltcG9ydCByYW5kb20KK2ltcG9ydCByZQoraW1wb3J0IHNvY2tldAoraW1w
b3J0IHN0cnVjdAoraW1wb3J0IHN5cworCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29t
bW9uCitmcm9tIG1vZF9weXdlYnNvY2tldC5leHRlbnNpb25zIGltcG9ydCBEZWZsYXRlRnJhbWVF
eHRlbnNpb25Qcm9jZXNzb3IKK2Zyb20gbW9kX3B5d2Vic29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0
IFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yCitmcm9tIG1vZF9weXdlYnNvY2tl
dC5leHRlbnNpb25zIGltcG9ydCBfUGVyTWVzc2FnZURlZmxhdGVGcmFtZXIKK2Zyb20gbW9kX3B5
d2Vic29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0IF9wYXJzZV93aW5kb3dfYml0cworZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBTdHJlYW0KK2Zyb20gbW9kX3B5d2Vic29ja2V0LnN0
cmVhbSBpbXBvcnQgU3RyZWFtSGl4aWU3NQorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGlt
cG9ydCBTdHJlYW1PcHRpb25zCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAorCisK
K19USU1FT1VUX1NFQyA9IDEwCitfVU5ERUZJTkVEX1BPUlQgPSAtMQorCitfVVBHUkFERV9IRUFE
RVIgPSAnVXBncmFkZTogd2Vic29ja2V0XHJcbicKK19VUEdSQURFX0hFQURFUl9ISVhJRTc1ID0g
J1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4nCitfQ09OTkVDVElPTl9IRUFERVIgPSAnQ29ubmVjdGlv
bjogVXBncmFkZVxyXG4nCisKKyMgU3BlY2lhbCBtZXNzYWdlIHRoYXQgdGVsbHMgdGhlIGVjaG8g
c2VydmVyIHRvIHN0YXJ0IGNsb3NpbmcgaGFuZHNoYWtlCitfR09PREJZRV9NRVNTQUdFID0gJ0dv
b2RieWUnCisKK19QUk9UT0NPTF9WRVJTSU9OX0hZQkkxMyA9ICdoeWJpMTMnCitfUFJPVE9DT0xf
VkVSU0lPTl9IWUJJMDggPSAnaHliaTA4JworX1BST1RPQ09MX1ZFUlNJT05fSFlCSTAwID0gJ2h5
YmkwMCcKK19QUk9UT0NPTF9WRVJTSU9OX0hJWElFNzUgPSAnaGl4aWU3NScKKworIyBDb25zdGFu
dHMgZm9yIHRoZSAtLXRsc19tb2R1bGUgZmxhZy4KK19UTFNfQllfU1RBTkRBUkRfTU9EVUxFID0g
J3NzbCcKK19UTFNfQllfUFlPUEVOU1NMID0gJ3B5b3BlbnNzbCcKKworIyBWYWx1ZXMgdXNlZCBi
eSB0aGUgLS10bHMtdmVyc2lvbiBmbGFnLgorX1RMU19WRVJTSU9OX1NTTDIzID0gJ3NzbDIzJwor
X1RMU19WRVJTSU9OX1NTTDMgPSAnc3NsMycKK19UTFNfVkVSU0lPTl9UTFMxID0gJ3RsczEnCisK
KworY2xhc3MgQ2xpZW50SGFuZHNoYWtlRXJyb3IoRXhjZXB0aW9uKToKKyAgICBwYXNzCisKKwor
ZGVmIF9idWlsZF9tZXRob2RfbGluZShyZXNvdXJjZSk6CisgICAgcmV0dXJuICdHRVQgJXMgSFRU
UC8xLjFcclxuJyAlIHJlc291cmNlCisKKworZGVmIF9vcmlnaW5faGVhZGVyKGhlYWRlciwgb3Jp
Z2luKToKKyAgICAjIDQuMSAxMy4gY29uY2F0ZW5hdGlvbiBvZiB0aGUgc3RyaW5nICJPcmlnaW46
IiwgYSBVKzAwMjAgU1BBQ0UgY2hhcmFjdGVyLAorICAgICMgYW5kIHRoZSAvb3JpZ2luLyB2YWx1
ZSwgY29udmVydGVkIHRvIEFTQ0lJIGxvd2VyY2FzZSwgdG8gL2ZpZWxkcy8uCisgICAgcmV0dXJu
ICclczogJXNcclxuJyAlIChoZWFkZXIsIG9yaWdpbi5sb3dlcigpKQorCisKK2RlZiBfZm9ybWF0
X2hvc3RfaGVhZGVyKGhvc3QsIHBvcnQsIHNlY3VyZSk6CisgICAgIyA0LjEgOS4gTGV0IC9ob3N0
cG9ydC8gYmUgYW4gZW1wdHkgc3RyaW5nLgorICAgICMgNC4xIDEwLiBBcHBlbmQgdGhlIC9ob3N0
LyB2YWx1ZSwgY29udmVydGVkIHRvIEFTQ0lJIGxvd2VyY2FzZSwgdG8KKyAgICAjIC9ob3N0cG9y
dC8KKyAgICBob3N0cG9ydCA9IGhvc3QubG93ZXIoKQorICAgICMgNC4xIDExLiBJZiAvc2VjdXJl
LyBpcyBmYWxzZSwgYW5kIC9wb3J0LyBpcyBub3QgODAsIG9yIGlmIC9zZWN1cmUvCisgICAgIyBp
cyB0cnVlLCBhbmQgL3BvcnQvIGlzIG5vdCA0NDMsIHRoZW4gYXBwZW5kIGEgVSswMDNBIENPTE9O
IGNoYXJhY3RlcgorICAgICMgKDopIGZvbGxvd2VkIGJ5IHRoZSB2YWx1ZSBvZiAvcG9ydC8sIGV4
cHJlc3NlZCBhcyBhIGJhc2UtdGVuIGludGVnZXIsCisgICAgIyB0byAvaG9zdHBvcnQvCisgICAg
aWYgKChub3Qgc2VjdXJlIGFuZCBwb3J0ICE9IGNvbW1vbi5ERUZBVUxUX1dFQl9TT0NLRVRfUE9S
VCkgb3IKKyAgICAgICAgKHNlY3VyZSBhbmQgcG9ydCAhPSBjb21tb24uREVGQVVMVF9XRUJfU09D
S0VUX1NFQ1VSRV9QT1JUKSk6CisgICAgICAgIGhvc3Rwb3J0ICs9ICc6JyArIHN0cihwb3J0KQor
ICAgICMgNC4xIDEyLiBjb25jYXRlbmF0aW9uIG9mIHRoZSBzdHJpbmcgIkhvc3Q6IiwgYSBVKzAw
MjAgU1BBQ0UKKyAgICAjIGNoYXJhY3RlciwgYW5kIC9ob3N0cG9ydC8sIHRvIC9maWVsZHMvLgor
ICAgIHJldHVybiAnJXM6ICVzXHJcbicgJSAoY29tbW9uLkhPU1RfSEVBREVSLCBob3N0cG9ydCkK
KworCitkZWYgX3JlY2VpdmVfYnl0ZXMoc29ja2V0LCBsZW5ndGgpOgorICAgIGJ5dGVzID0gW10K
KyAgICByZW1haW5pbmcgPSBsZW5ndGgKKyAgICB3aGlsZSByZW1haW5pbmcgPiAwOgorICAgICAg
ICByZWNlaXZlZF9ieXRlcyA9IHNvY2tldC5yZWN2KHJlbWFpbmluZykKKyAgICAgICAgaWYgbm90
IHJlY2VpdmVkX2J5dGVzOgorICAgICAgICAgICAgcmFpc2UgSU9FcnJvcigKKyAgICAgICAgICAg
ICAgICAnQ29ubmVjdGlvbiBjbG9zZWQgYmVmb3JlIHJlY2VpdmluZyByZXF1ZXN0ZWQgbGVuZ3Ro
ICcKKyAgICAgICAgICAgICAgICAnKHJlcXVlc3RlZCAlZCBieXRlcyBidXQgcmVjZWl2ZWQgb25s
eSAlZCBieXRlcyknICUKKyAgICAgICAgICAgICAgICAobGVuZ3RoLCBsZW5ndGggLSByZW1haW5p
bmcpKQorICAgICAgICBieXRlcy5hcHBlbmQocmVjZWl2ZWRfYnl0ZXMpCisgICAgICAgIHJlbWFp
bmluZyAtPSBsZW4ocmVjZWl2ZWRfYnl0ZXMpCisgICAgcmV0dXJuICcnLmpvaW4oYnl0ZXMpCisK
KworZGVmIF9nZXRfbWFuZGF0b3J5X2hlYWRlcihmaWVsZHMsIG5hbWUpOgorICAgICIiIkdldHMg
dGhlIHZhbHVlIG9mIHRoZSBoZWFkZXIgc3BlY2lmaWVkIGJ5IG5hbWUgZnJvbSBmaWVsZHMuCisK
KyAgICBUaGlzIGZ1bmN0aW9uIGV4cGVjdHMgdGhhdCB0aGVyZSdzIG9ubHkgb25lIGhlYWRlciB3
aXRoIHRoZSBzcGVjaWZpZWQgbmFtZQorICAgIGluIGZpZWxkcy4gT3RoZXJ3aXNlLCByYWlzZXMg
YW4gQ2xpZW50SGFuZHNoYWtlRXJyb3IuCisgICAgIiIiCisKKyAgICB2YWx1ZXMgPSBmaWVsZHMu
Z2V0KG5hbWUubG93ZXIoKSkKKyAgICBpZiB2YWx1ZXMgaXMgTm9uZSBvciBsZW4odmFsdWVzKSA9
PSAwOgorICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKKyAgICAgICAgICAgICcl
cyBoZWFkZXIgbm90IGZvdW5kOiAlcicgJSAobmFtZSwgdmFsdWVzKSkKKyAgICBpZiBsZW4odmFs
dWVzKSA+IDE6CisgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAorICAgICAgICAg
ICAgJ011bHRpcGxlICVzIGhlYWRlcnMgZm91bmQ6ICVyJyAlIChuYW1lLCB2YWx1ZXMpKQorICAg
IHJldHVybiB2YWx1ZXNbMF0KKworCitkZWYgX3ZhbGlkYXRlX21hbmRhdG9yeV9oZWFkZXIoZmll
bGRzLCBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3ZhbHVl
LCBjYXNlX3NlbnNpdGl2ZT1GYWxzZSk6CisgICAgIiIiR2V0cyBhbmQgdmFsaWRhdGVzIHRoZSB2
YWx1ZSBvZiB0aGUgaGVhZGVyIHNwZWNpZmllZCBieSBuYW1lIGZyb20KKyAgICBmaWVsZHMuCisK
KyAgICBJZiBleHBlY3RlZF92YWx1ZSBpcyBzcGVjaWZpZWQsIGNvbXBhcmVzIGV4cGVjdGVkIHZh
bHVlIGFuZCBhY3R1YWwgdmFsdWUKKyAgICBhbmQgcmFpc2VzIGFuIENsaWVudEhhbmRzaGFrZUVy
cm9yIG9uIGZhaWx1cmUuIFlvdSBjYW4gc3BlY2lmeSBjYXNlCisgICAgc2Vuc2l0aXZlbmVzcyBp
biB0aGlzIGNvbXBhcmlzb24gYnkgY2FzZV9zZW5zaXRpdmUgcGFyYW1ldGVyLiBUaGlzIGZ1bmN0
aW9uCisgICAgZXhwZWN0cyB0aGF0IHRoZXJlJ3Mgb25seSBvbmUgaGVhZGVyIHdpdGggdGhlIHNw
ZWNpZmllZCBuYW1lIGluIGZpZWxkcy4KKyAgICBPdGhlcndpc2UsIHJhaXNlcyBhbiBDbGllbnRI
YW5kc2hha2VFcnJvci4KKyAgICAiIiIKKworICAgIHZhbHVlID0gX2dldF9tYW5kYXRvcnlfaGVh
ZGVyKGZpZWxkcywgbmFtZSkKKworICAgIGlmICgoY2FzZV9zZW5zaXRpdmUgYW5kIHZhbHVlICE9
IGV4cGVjdGVkX3ZhbHVlKSBvcgorICAgICAgICAobm90IGNhc2Vfc2Vuc2l0aXZlIGFuZCB2YWx1
ZS5sb3dlcigpICE9IGV4cGVjdGVkX3ZhbHVlLmxvd2VyKCkpKToKKyAgICAgICAgcmFpc2UgQ2xp
ZW50SGFuZHNoYWtlRXJyb3IoCisgICAgICAgICAgICAnSWxsZWdhbCB2YWx1ZSBmb3IgaGVhZGVy
ICVzOiAlciAoZXhwZWN0ZWQpIHZzICVyIChhY3R1YWwpJyAlCisgICAgICAgICAgICAobmFtZSwg
ZXhwZWN0ZWRfdmFsdWUsIHZhbHVlKSkKKworCitjbGFzcyBfVExTU29ja2V0KG9iamVjdCk6Cisg
ICAgIiIiV3JhcHBlciBmb3IgYSBUTFMgY29ubmVjdGlvbi4iIiIKKworICAgIGRlZiBfX2luaXRf
XyhzZWxmLAorICAgICAgICAgICAgICAgICByYXdfc29ja2V0LCB0bHNfbW9kdWxlLCB0bHNfdmVy
c2lvbiwgZGlzYWJsZV90bHNfY29tcHJlc3Npb24pOgorICAgICAgICBzZWxmLl9sb2dnZXIgPSB1
dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKKworICAgICAgICBpZiB0bHNfbW9kdWxlID09IF9U
TFNfQllfU1RBTkRBUkRfTU9EVUxFOgorICAgICAgICAgICAgaWYgdGxzX3ZlcnNpb24gPT0gX1RM
U19WRVJTSU9OX1NTTDIzOgorICAgICAgICAgICAgICAgIHZlcnNpb24gPSBzc2wuUFJPVE9DT0xf
U1NMdjIzCisgICAgICAgICAgICBlbGlmIHRsc192ZXJzaW9uID09IF9UTFNfVkVSU0lPTl9TU0wz
OgorICAgICAgICAgICAgICAgIHZlcnNpb24gPSBzc2wuUFJPVE9DT0xfU1NMdjMKKyAgICAgICAg
ICAgIGVsaWYgdGxzX3ZlcnNpb24gPT0gX1RMU19WRVJTSU9OX1RMUzE6CisgICAgICAgICAgICAg
ICAgdmVyc2lvbiA9IHNzbC5QUk9UT0NPTF9UTFN2MQorICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAnSW52YWxp
ZCAtLXRscy12ZXJzaW9uIGZsYWc6ICVyJyAlIHRsc192ZXJzaW9uKQorCisgICAgICAgICAgICBp
ZiBkaXNhYmxlX3Rsc19jb21wcmVzc2lvbjoKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKAorICAgICAgICAgICAgICAgICAgICAnLS1kaXNhYmxlLXRscy1jb21wcmVzc2lvbiBpcyBu
b3QgYXZhaWxhYmxlIGZvciBzc2wgJworICAgICAgICAgICAgICAgICAgICAnbW9kdWxlJykKKwor
ICAgICAgICAgICAgc2VsZi5fdGxzX3NvY2tldCA9IHNzbC53cmFwX3NvY2tldChyYXdfc29ja2V0
LCBzc2xfdmVyc2lvbj12ZXJzaW9uKQorCisgICAgICAgICAgICAjIFByaW50IGNpcGhlciBpbiB1
c2UuIEhhbmRzaGFrZSBpcyBkb25lIG9uIHdyYXBfc29ja2V0IGNhbGwuCisgICAgICAgICAgICBz
ZWxmLl9sb2dnZXIuaW5mbygiQ2lwaGVyOiAlcyIsIHNlbGYuX3Rsc19zb2NrZXQuY2lwaGVyKCkp
CisgICAgICAgIGVsaWYgdGxzX21vZHVsZSA9PSBfVExTX0JZX1BZT1BFTlNTTDoKKyAgICAgICAg
ICAgIGlmIHRsc192ZXJzaW9uID09IF9UTFNfVkVSU0lPTl9TU0wyMzoKKyAgICAgICAgICAgICAg
ICB2ZXJzaW9uID0gT3BlblNTTC5TU0wuU1NMdjIzX01FVEhPRAorICAgICAgICAgICAgZWxpZiB0
bHNfdmVyc2lvbiA9PSBfVExTX1ZFUlNJT05fU1NMMzoKKyAgICAgICAgICAgICAgICB2ZXJzaW9u
ID0gT3BlblNTTC5TU0wuU1NMdjNfTUVUSE9ECisgICAgICAgICAgICBlbGlmIHRsc192ZXJzaW9u
ID09IF9UTFNfVkVSU0lPTl9UTFMxOgorICAgICAgICAgICAgICAgIHZlcnNpb24gPSBPcGVuU1NM
LlNTTC5UTFN2MV9NRVRIT0QKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFp
c2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgJ0ludmFsaWQgLS10bHMtdmVyc2lv
biBmbGFnOiAlcicgJSB0bHNfdmVyc2lvbikKKworICAgICAgICAgICAgY29udGV4dCA9IE9wZW5T
U0wuU1NMLkNvbnRleHQodmVyc2lvbikKKworICAgICAgICAgICAgaWYgZGlzYWJsZV90bHNfY29t
cHJlc3Npb246CisgICAgICAgICAgICAgICAgIyBPUF9OT19DT01QUkVTU0lPTiBpcyBub3QgZGVm
aW5lZCBpbiBPcGVuU1NMIG1vZHVsZS4KKyAgICAgICAgICAgICAgICBjb250ZXh0LnNldF9vcHRp
b25zKDB4MDAwMjAwMDApCisKKyAgICAgICAgICAgIHNlbGYuX3Rsc19zb2NrZXQgPSBPcGVuU1NM
LlNTTC5Db25uZWN0aW9uKGNvbnRleHQsIHJhd19zb2NrZXQpCisgICAgICAgICAgICAjIENsaWVu
dCBtb2RlLgorICAgICAgICAgICAgc2VsZi5fdGxzX3NvY2tldC5zZXRfY29ubmVjdF9zdGF0ZSgp
CisgICAgICAgICAgICBzZWxmLl90bHNfc29ja2V0LnNldGJsb2NraW5nKFRydWUpCisKKyAgICAg
ICAgICAgICMgRG8gaGFuZHNoYWtlIG5vdyAobm90IG5lY2Vzc2FyeSkuCisgICAgICAgICAgICBz
ZWxmLl90bHNfc29ja2V0LmRvX2hhbmRzaGFrZSgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCdObyBUTFMgc3VwcG9ydCBtb2R1bGUgaXMgYXZhaWxhYmxlJykK
KworICAgIGRlZiBzZW5kKHNlbGYsIGRhdGEpOgorICAgICAgICByZXR1cm4gc2VsZi5fdGxzX3Nv
Y2tldC53cml0ZShkYXRhKQorCisgICAgZGVmIHNlbmRhbGwoc2VsZiwgZGF0YSk6CisgICAgICAg
IHJldHVybiBzZWxmLl90bHNfc29ja2V0LnNlbmRhbGwoZGF0YSkKKworICAgIGRlZiByZWN2KHNl
bGYsIHNpemU9LTEpOgorICAgICAgICByZXR1cm4gc2VsZi5fdGxzX3NvY2tldC5yZWFkKHNpemUp
CisKKyAgICBkZWYgY2xvc2Uoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl90bHNfc29ja2V0
LmNsb3NlKCkKKworICAgIGRlZiBnZXRwZWVybmFtZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNl
bGYuX3Rsc19zb2NrZXQuZ2V0cGVlcm5hbWUoKQorCisKK2NsYXNzIENsaWVudEhhbmRzaGFrZUJh
c2Uob2JqZWN0KToKKyAgICAiIiJBIGJhc2UgY2xhc3MgZm9yIFdlYlNvY2tldCBvcGVuaW5nIGhh
bmRzaGFrZSBwcm9jZXNzb3JzIGZvciBlYWNoCisgICAgcHJvdG9jb2wgdmVyc2lvbi4KKyAgICAi
IiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRp
bC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCisKKyAgICBkZWYgX3JlYWRfZmllbGRzKHNlbGYpOgor
ICAgICAgICAjIDQuMSAzMi4gbGV0IC9maWVsZHMvIGJlIGEgbGlzdCBvZiBuYW1lLXZhbHVlIHBh
aXJzLCBpbml0aWFsbHkgZW1wdHkuCisgICAgICAgIGZpZWxkcyA9IHt9CisgICAgICAgIHdoaWxl
IFRydWU6ICAjICJGaWVsZCIKKyAgICAgICAgICAgICMgNC4xIDMzLiBsZXQgL25hbWUvIGFuZCAv
dmFsdWUvIGJlIGVtcHR5IGJ5dGUgYXJyYXlzCisgICAgICAgICAgICBuYW1lID0gJycKKyAgICAg
ICAgICAgIHZhbHVlID0gJycKKyAgICAgICAgICAgICMgNC4xIDM0LiByZWFkIC9uYW1lLworICAg
ICAgICAgICAgbmFtZSA9IHNlbGYuX3JlYWRfbmFtZSgpCisgICAgICAgICAgICBpZiBuYW1lIGlz
IE5vbmU6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICMgNC4xIDM1LiByZWFk
IHNwYWNlcworICAgICAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTogU2tpcCBvbmx5IG9uZSBzcGFj
ZSBhcyBkZXNjcmliZWQgaW4gdGhlIHNwZWMuCisgICAgICAgICAgICBjaCA9IHNlbGYuX3NraXBf
c3BhY2VzKCkKKyAgICAgICAgICAgICMgNC4xIDM2LiByZWFkIC92YWx1ZS8KKyAgICAgICAgICAg
IHZhbHVlID0gc2VsZi5fcmVhZF92YWx1ZShjaCkKKyAgICAgICAgICAgICMgNC4xIDM3LiByZWFk
IGEgYnl0ZSBmcm9tIHRoZSBzZXJ2ZXIKKyAgICAgICAgICAgIGNoID0gX3JlY2VpdmVfYnl0ZXMo
c2VsZi5fc29ja2V0LCAxKQorICAgICAgICAgICAgaWYgY2ggIT0gJ1xuJzogICMgMHgwQQorICAg
ICAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAorICAgICAgICAgICAgICAg
ICAgICAnRXhwZWN0ZWQgTEYgYnV0IGZvdW5kICVyIHdoaWxlIHJlYWRpbmcgdmFsdWUgJXIgZm9y
ICcKKyAgICAgICAgICAgICAgICAgICAgJ2hlYWRlciAlcicgJSAoY2gsIHZhbHVlLCBuYW1lKSkK
KyAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVjZWl2ZWQgJXIgaGVhZGVyJywgbmFt
ZSkKKyAgICAgICAgICAgICMgNC4xIDM4LiBhcHBlbmQgYW4gZW50cnkgdG8gdGhlIC9maWVsZHMv
IGxpc3QgdGhhdCBoYXMgdGhlIG5hbWUKKyAgICAgICAgICAgICMgZ2l2ZW4gYnkgdGhlIHN0cmlu
ZyBvYnRhaW5lZCBieSBpbnRlcnByZXRpbmcgdGhlIC9uYW1lLyBieXRlCisgICAgICAgICAgICAj
IGFycmF5IGFzIGEgVVRGLTggc3RyZWFtIGFuZCB0aGUgdmFsdWUgZ2l2ZW4gYnkgdGhlIHN0cmlu
ZworICAgICAgICAgICAgIyBvYnRhaW5lZCBieSBpbnRlcnByZXRpbmcgdGhlIC92YWx1ZS8gYnl0
ZSBhcnJheSBhcyBhIFVURi04IGJ5dGUKKyAgICAgICAgICAgICMgc3RyZWFtLgorICAgICAgICAg
ICAgZmllbGRzLnNldGRlZmF1bHQobmFtZSwgW10pLmFwcGVuZCh2YWx1ZSkKKyAgICAgICAgICAg
ICMgNC4xIDM5LiByZXR1cm4gdG8gdGhlICJGaWVsZCIgc3RlcCBhYm92ZQorICAgICAgICByZXR1
cm4gZmllbGRzCisKKyAgICBkZWYgX3JlYWRfbmFtZShzZWxmKToKKyAgICAgICAgIyA0LjEgMzMu
IGxldCAvbmFtZS8gYmUgZW1wdHkgYnl0ZSBhcnJheXMKKyAgICAgICAgbmFtZSA9ICcnCisgICAg
ICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICAjIDQuMSAzNC4gcmVhZCBhIGJ5dGUgZnJvbSB0
aGUgc2VydmVyCisgICAgICAgICAgICBjaCA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwg
MSkKKyAgICAgICAgICAgIGlmIGNoID09ICdccic6ICAjIDB4MEQKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gTm9uZQorICAgICAgICAgICAgZWxpZiBjaCA9PSAnXG4nOiAgIyAweDBBCisgICAgICAg
ICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCisgICAgICAgICAgICAgICAgICAg
ICdVbmV4cGVjdGVkIExGIHdoZW4gcmVhZGluZyBoZWFkZXIgbmFtZSAlcicgJSBuYW1lKQorICAg
ICAgICAgICAgZWxpZiBjaCA9PSAnOic6ICAjIDB4M0EKKyAgICAgICAgICAgICAgICByZXR1cm4g
bmFtZQorICAgICAgICAgICAgZWxpZiBjaCA+PSAnQScgYW5kIGNoIDw9ICdaJzogICMgUmFuZ2Ug
MHgzMSB0byAweDVBCisgICAgICAgICAgICAgICAgY2ggPSBjaHIob3JkKGNoKSArIDB4MjApCisg
ICAgICAgICAgICAgICAgbmFtZSArPSBjaAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICAgICBuYW1lICs9IGNoCisKKyAgICBkZWYgX3NraXBfc3BhY2VzKHNlbGYpOgorICAgICAgICAj
IDQuMSAzNS4gcmVhZCBhIGJ5dGUgZnJvbSB0aGUgc2VydmVyCisgICAgICAgIHdoaWxlIFRydWU6
CisgICAgICAgICAgICBjaCA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKKyAgICAg
ICAgICAgIGlmIGNoID09ICcgJzogICMgMHgyMAorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisg
ICAgICAgICAgICByZXR1cm4gY2gKKworICAgIGRlZiBfcmVhZF92YWx1ZShzZWxmLCBjaCk6Cisg
ICAgICAgICMgNC4xIDMzLiBsZXQgL3ZhbHVlLyBiZSBlbXB0eSBieXRlIGFycmF5cworICAgICAg
ICB2YWx1ZSA9ICcnCisgICAgICAgICMgNC4xIDM2LiByZWFkIGEgYnl0ZSBmcm9tIHNlcnZlci4K
KyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIGlmIGNoID09ICdccic6ICAjIDB4MEQK
KyAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUKKyAgICAgICAgICAgIGVsaWYgY2ggPT0gJ1xu
JzogICMgMHgwQQorICAgICAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAor
ICAgICAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBMRiB3aGVuIHJlYWRpbmcgaGVhZGVyIHZh
bHVlICVyJyAlIHZhbHVlKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB2YWx1
ZSArPSBjaAorICAgICAgICAgICAgY2ggPSBfcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEp
CisKKworZGVmIF9nZXRfcGVybWVzc2FnZV9kZWZsYXRlX2ZyYW1lcihleHRlbnNpb25fcmVzcG9u
c2UpOgorICAgICIiIlZhbGlkYXRlIHRoZSByZXNwb25zZSBhbmQgcmV0dXJuIGEgZnJhbWVyIG9i
amVjdCB1c2luZyB0aGUgcGFyYW1ldGVycyBpbgorICAgIHRoZSByZXNwb25zZS4gVGhpcyBtZXRo
b2QgZG9lc24ndCBhY2NlcHQgdGhlIHNlcnZlcl8uKiBwYXJhbWV0ZXJzLgorICAgICIiIgorCisg
ICAgY2xpZW50X21heF93aW5kb3dfYml0cyA9IE5vbmUKKyAgICBjbGllbnRfbm9fY29udGV4dF90
YWtlb3ZlciA9IE5vbmUKKworICAgIGNsaWVudF9tYXhfd2luZG93X2JpdHNfbmFtZSA9ICgKKyAg
ICAgICAgICAgIFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yLgorICAgICAgICAg
ICAgICAgICAgICBfQ0xJRU5UX01BWF9XSU5ET1dfQklUU19QQVJBTSkKKyAgICBjbGllbnRfbm9f
Y29udGV4dF90YWtlb3Zlcl9uYW1lID0gKAorICAgICAgICAgICAgUGVyTWVzc2FnZURlZmxhdGVF
eHRlbnNpb25Qcm9jZXNzb3IuCisgICAgICAgICAgICAgICAgICAgIF9DTElFTlRfTk9fQ09OVEVY
VF9UQUtFT1ZFUl9QQVJBTSkKKworICAgICMgV2UgZGlkbid0IHNlbmQgYW55IHNlcnZlcl8uKiBw
YXJhbWV0ZXIuCisgICAgIyBIYW5kbGUgdGhvc2UgcGFyYW1ldGVycyBhcyBpbnZhbGlkIGlmIGZv
dW5kIGluIHRoZSByZXNwb25zZS4KKworICAgIGZvciBwYXJhbV9uYW1lLCBwYXJhbV92YWx1ZSBp
biBleHRlbnNpb25fcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMoKToKKyAgICAgICAgaWYgcGFyYW1f
bmFtZSA9PSBjbGllbnRfbWF4X3dpbmRvd19iaXRzX25hbWU6CisgICAgICAgICAgICBpZiBjbGll
bnRfbWF4X3dpbmRvd19iaXRzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHJhaXNlIENs
aWVudEhhbmRzaGFrZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRpcGxlICVz
IGZvdW5kJyAlIGNsaWVudF9tYXhfd2luZG93X2JpdHNfbmFtZSkKKworICAgICAgICAgICAgcGFy
c2VkX3ZhbHVlID0gX3BhcnNlX3dpbmRvd19iaXRzKHBhcmFtX3ZhbHVlKQorICAgICAgICAgICAg
aWYgcGFyc2VkX3ZhbHVlIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFu
ZHNoYWtlRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICAgICAnQmFkICVzOiAlcicgJQorICAg
ICAgICAgICAgICAgICAgICAgICAgKGNsaWVudF9tYXhfd2luZG93X2JpdHNfbmFtZSwgcGFyYW1f
dmFsdWUpKQorICAgICAgICAgICAgY2xpZW50X21heF93aW5kb3dfYml0cyA9IHBhcnNlZF92YWx1
ZQorICAgICAgICBlbGlmIHBhcmFtX25hbWUgPT0gY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXJf
bmFtZToKKyAgICAgICAgICAgIGlmIGNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyIGlzIG5vdCBO
b25lOgorICAgICAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAorICAgICAg
ICAgICAgICAgICAgICAgICAgJ011bHRpcGxlICVzIGZvdW5kJyAlIGNsaWVudF9ub19jb250ZXh0
X3Rha2VvdmVyX25hbWUpCisKKyAgICAgICAgICAgIGlmIHBhcmFtX3ZhbHVlIGlzIG5vdCBOb25l
OgorICAgICAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAorICAgICAgICAg
ICAgICAgICAgICAgICAgJ0JhZCAlczogSGFzIHZhbHVlICVyJyAlCisgICAgICAgICAgICAgICAg
ICAgICAgICAoY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXJfbmFtZSwgcGFyYW1fdmFsdWUpKQor
ICAgICAgICAgICAgY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXIgPSBUcnVlCisKKyAgICBpZiBj
bGllbnRfbm9fY29udGV4dF90YWtlb3ZlciBpcyBOb25lOgorICAgICAgICBjbGllbnRfbm9fY29u
dGV4dF90YWtlb3ZlciA9IEZhbHNlCisKKyAgICByZXR1cm4gX1Blck1lc3NhZ2VEZWZsYXRlRnJh
bWVyKGNsaWVudF9tYXhfd2luZG93X2JpdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjbGllbnRfbm9fY29udGV4dF90YWtlb3ZlcikKKworCitjbGFzcyBDbGllbnRIYW5k
c2hha2VQcm9jZXNzb3IoQ2xpZW50SGFuZHNoYWtlQmFzZSk6CisgICAgIiIiV2ViU29ja2V0IG9w
ZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3NvciBmb3IKKyAgICBkcmFmdC1pZXRmLWh5YmktdGhld2Vi
c29ja2V0cHJvdG9jb2wtMDYgYW5kIGxhdGVyLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHNvY2tldCwgb3B0aW9ucyk6CisgICAgICAgIHN1cGVyKENsaWVudEhhbmRzaGFrZVBy
b2Nlc3Nvciwgc2VsZikuX19pbml0X18oKQorCisgICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tl
dAorICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucworCisgICAgICAgIHNlbGYuX2xvZ2dl
ciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQorCisgICAgZGVmIGhhbmRzaGFrZShzZWxm
KToKKyAgICAgICAgIiIiUGVyZm9ybXMgb3BlbmluZyBoYW5kc2hha2Ugb24gdGhlIHNwZWNpZmll
ZCBzb2NrZXQuCisKKyAgICAgICAgUmFpc2VzOgorICAgICAgICAgICAgQ2xpZW50SGFuZHNoYWtl
RXJyb3I6IGhhbmRzaGFrZSBmYWlsZWQuCisgICAgICAgICIiIgorCisgICAgICAgIHJlcXVlc3Rf
bGluZSA9IF9idWlsZF9tZXRob2RfbGluZShzZWxmLl9vcHRpb25zLnJlc291cmNlKQorICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NsaWVudFwncyBvcGVuaW5nIGhhbmRzaGFrZSBSZXF1ZXN0
LUxpbmU6ICVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RfbGluZSkKKyAg
ICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwocmVxdWVzdF9saW5lKQorCisgICAgICAgIGZpZWxk
cyA9IFtdCisgICAgICAgIGZpZWxkcy5hcHBlbmQoX2Zvcm1hdF9ob3N0X2hlYWRlcigKKyAgICAg
ICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX2hvc3QsCisgICAgICAgICAgICBzZWxmLl9vcHRp
b25zLnNlcnZlcl9wb3J0LAorICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfdGxzKSkKKyAg
ICAgICAgZmllbGRzLmFwcGVuZChfVVBHUkFERV9IRUFERVIpCisgICAgICAgIGZpZWxkcy5hcHBl
bmQoX0NPTk5FQ1RJT05fSEVBREVSKQorICAgICAgICBpZiBzZWxmLl9vcHRpb25zLm9yaWdpbiBp
cyBub3QgTm9uZToKKyAgICAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMucHJvdG9jb2xfdmVyc2lv
biA9PSBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDg6CisgICAgICAgICAgICAgICAgZmllbGRzLmFw
cGVuZChfb3JpZ2luX2hlYWRlcigKKyAgICAgICAgICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJT
T0NLRVRfT1JJR0lOX0hFQURFUiwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5v
cmlnaW4pKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBmaWVsZHMuYXBwZW5k
KF9vcmlnaW5faGVhZGVyKGNvbW1vbi5PUklHSU5fSEVBREVSLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5vcmlnaW4pKQorCisgICAg
ICAgIG9yaWdpbmFsX2tleSA9IG9zLnVyYW5kb20oMTYpCisgICAgICAgIHNlbGYuX2tleSA9IGJh
c2U2NC5iNjRlbmNvZGUob3JpZ2luYWxfa2V5KQorICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
CisgICAgICAgICAgICAnJXM6ICVyICglcyknLAorICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJT
T0NLRVRfS0VZX0hFQURFUiwKKyAgICAgICAgICAgIHNlbGYuX2tleSwKKyAgICAgICAgICAgIHV0
aWwuaGV4aWZ5KG9yaWdpbmFsX2tleSkpCisgICAgICAgIGZpZWxkcy5hcHBlbmQoCisgICAgICAg
ICAgICAnJXM6ICVzXHJcbicgJSAoY29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZX0hFQURFUiwgc2Vs
Zi5fa2V5KSkKKworICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnZlcnNpb25faGVhZGVyID4gMDoK
KyAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoJyVzOiAlZFxyXG4nICUgKGNvbW1vbi5TRUNfV0VC
U09DS0VUX1ZFUlNJT05fSEVBREVSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fb3B0aW9ucy52ZXJzaW9uX2hlYWRlcikpCisgICAgICAgIGVsaWYgc2Vs
Zi5fb3B0aW9ucy5wcm90b2NvbF92ZXJzaW9uID09IF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwODoK
KyAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoJyVzOiAlZFxyXG4nICUgKGNvbW1vbi5TRUNfV0VC
U09DS0VUX1ZFUlNJT05fSEVBREVSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29tbW9uLlZFUlNJT05fSFlCSTA4KSkKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIGZpZWxkcy5hcHBlbmQoJyVzOiAlZFxyXG4nICUgKGNvbW1vbi5TRUNfV0VCU09DS0VUX1ZF
UlNJT05fSEVBREVSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29tbW9uLlZFUlNJT05fSFlCSV9MQVRFU1QpKQorCisgICAgICAgIGV4dGVuc2lvbnNfdG9fcmVx
dWVzdCA9IFtdCisKKyAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5kZWZsYXRlX2ZyYW1lOgorICAg
ICAgICAgICAgZXh0ZW5zaW9uc190b19yZXF1ZXN0LmFwcGVuZCgKKyAgICAgICAgICAgICAgICBj
b21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikp
CisKKyAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy51c2VfcGVybWVzc2FnZV9kZWZsYXRlOgorICAg
ICAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKKyAgICAgICAg
ICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCisgICAgICAg
ICAgICAjIEFjY2VwdCB0aGUgY2xpZW50X21heF93aW5kb3dfYml0cyBleHRlbnNpb24gcGFyYW1l
dGVyIGJ5IGRlZmF1bHQuCisgICAgICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFtZXRlcigKKyAg
ICAgICAgICAgICAgICAgICAgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IuCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgX0NMSUVOVF9NQVhfV0lORE9XX0JJVFNfUEFSQU0s
CisgICAgICAgICAgICAgICAgICAgIE5vbmUpCisgICAgICAgICAgICBleHRlbnNpb25zX3RvX3Jl
cXVlc3QuYXBwZW5kKGV4dGVuc2lvbikKKworICAgICAgICBpZiBsZW4oZXh0ZW5zaW9uc190b19y
ZXF1ZXN0KSAhPSAwOgorICAgICAgICAgICAgZmllbGRzLmFwcGVuZCgKKyAgICAgICAgICAgICAg
ICAnJXM6ICVzXHJcbicgJQorICAgICAgICAgICAgICAgIChjb21tb24uU0VDX1dFQlNPQ0tFVF9F
WFRFTlNJT05TX0hFQURFUiwKKyAgICAgICAgICAgICAgICAgY29tbW9uLmZvcm1hdF9leHRlbnNp
b25zKGV4dGVuc2lvbnNfdG9fcmVxdWVzdCkpKQorCisgICAgICAgIGZvciBmaWVsZCBpbiBmaWVs
ZHM6CisgICAgICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChmaWVsZCkKKworICAgICAgICBz
ZWxmLl9zb2NrZXQuc2VuZGFsbCgnXHJcbicpCisKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVn
KCdTZW50IGNsaWVudFwncyBvcGVuaW5nIGhhbmRzaGFrZSBoZWFkZXJzOiAlcicsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmaWVsZHMpCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1Zygn
U3RhcnQgcmVhZGluZyBTdGF0dXMtTGluZScpCisKKyAgICAgICAgc3RhdHVzX2xpbmUgPSAnJwor
ICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgY2ggPSBfcmVjZWl2ZV9ieXRlcyhzZWxm
Ll9zb2NrZXQsIDEpCisgICAgICAgICAgICBzdGF0dXNfbGluZSArPSBjaAorICAgICAgICAgICAg
aWYgY2ggPT0gJ1xuJzoKKyAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAgIG0gPSByZS5t
YXRjaCgnSFRUUC9cXGQrXC5cXGQrIChcXGRcXGRcXGQpIC4qXHJcbicsIHN0YXR1c19saW5lKQor
ICAgICAgICBpZiBtIGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VF
cnJvcigKKyAgICAgICAgICAgICAgICAnV3Jvbmcgc3RhdHVzIGxpbmUgZm9ybWF0OiAlcicgJSBz
dGF0dXNfbGluZSkKKyAgICAgICAgc3RhdHVzX2NvZGUgPSBtLmdyb3VwKDEpCisgICAgICAgIGlm
IHN0YXR1c19jb2RlICE9ICcxMDEnOgorICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdV
bmV4cGVjdGVkIHN0YXR1cyBjb2RlICVzIHdpdGggZm9sbG93aW5nICcKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnaGVhZGVyczogJXInLCBzdGF0dXNfY29kZSwgc2VsZi5fcmVhZF9m
aWVsZHMoKSkKKyAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAorICAgICAg
ICAgICAgICAgICdFeHBlY3RlZCBIVFRQIHN0YXR1cyBjb2RlIDEwMSBidXQgZm91bmQgJXInICUg
c3RhdHVzX2NvZGUpCisKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZWNlaXZlZCB2YWxp
ZCBTdGF0dXMtTGluZScpCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU3RhcnQgcmVhZGlu
ZyBoZWFkZXJzIHVudGlsIHdlIHNlZSBhbiBlbXB0eSBsaW5lJykKKworICAgICAgICBmaWVsZHMg
PSBzZWxmLl9yZWFkX2ZpZWxkcygpCisKKyAgICAgICAgY2ggPSBfcmVjZWl2ZV9ieXRlcyhzZWxm
Ll9zb2NrZXQsIDEpCisgICAgICAgIGlmIGNoICE9ICdcbic6ICAjIDB4MEEKKyAgICAgICAgICAg
IHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAorICAgICAgICAgICAgICAgICdFeHBlY3RlZCBM
RiBidXQgZm91bmQgJXIgd2hpbGUgcmVhZGluZyB2YWx1ZSAlciBmb3IgaGVhZGVyICcKKyAgICAg
ICAgICAgICAgICAnbmFtZSAlcicgJSAoY2gsIHZhbHVlLCBuYW1lKSkKKworICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoJ1JlY2VpdmVkIGFuIGVtcHR5IGxpbmUnKQorICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoJ1NlcnZlclwncyBvcGVuaW5nIGhhbmRzaGFrZSBoZWFkZXJzOiAlcicsIGZp
ZWxkcykKKworICAgICAgICBfdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcigKKyAgICAgICAgICAg
IGZpZWxkcywKKyAgICAgICAgICAgIGNvbW1vbi5VUEdSQURFX0hFQURFUiwKKyAgICAgICAgICAg
IGNvbW1vbi5XRUJTT0NLRVRfVVBHUkFERV9UWVBFLAorICAgICAgICAgICAgRmFsc2UpCisKKyAg
ICAgICAgX3ZhbGlkYXRlX21hbmRhdG9yeV9oZWFkZXIoCisgICAgICAgICAgICBmaWVsZHMsCisg
ICAgICAgICAgICBjb21tb24uQ09OTkVDVElPTl9IRUFERVIsCisgICAgICAgICAgICBjb21tb24u
VVBHUkFERV9DT05ORUNUSU9OX1RZUEUsCisgICAgICAgICAgICBGYWxzZSkKKworICAgICAgICBh
Y2NlcHQgPSBfZ2V0X21hbmRhdG9yeV9oZWFkZXIoCisgICAgICAgICAgICBmaWVsZHMsIGNvbW1v
bi5TRUNfV0VCU09DS0VUX0FDQ0VQVF9IRUFERVIpCisKKyAgICAgICAgIyBWYWxpZGF0ZQorICAg
ICAgICB0cnk6CisgICAgICAgICAgICBiaW5hcnlfYWNjZXB0ID0gYmFzZTY0LmI2NGRlY29kZShh
Y2NlcHQpCisgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3IsIGU6CisgICAgICAgICAgICByYWlzZSBI
YW5kc2hha2VFcnJvcigKKyAgICAgICAgICAgICAgICAnSWxsZWdhbCB2YWx1ZSBmb3IgaGVhZGVy
ICVzOiAlcicgJQorICAgICAgICAgICAgICAgIChjb21tb24uU0VDX1dFQlNPQ0tFVF9BQ0NFUFRf
SEVBREVSLCBhY2NlcHQpKQorCisgICAgICAgIGlmIGxlbihiaW5hcnlfYWNjZXB0KSAhPSAyMDoK
KyAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAorICAgICAgICAgICAgICAg
ICdEZWNvZGVkIHZhbHVlIG9mICVzIGlzIG5vdCAyMC1ieXRlIGxvbmcnICUKKyAgICAgICAgICAg
ICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9BQ0NFUFRfSEVBREVSKQorCisgICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygKKyAgICAgICAgICAgICdSZXNwb25zZSBmb3IgY2hhbGxlbmdlIDogJXIg
KCVzKScsCisgICAgICAgICAgICBhY2NlcHQsIHV0aWwuaGV4aWZ5KGJpbmFyeV9hY2NlcHQpKQor
CisgICAgICAgIGJpbmFyeV9leHBlY3RlZF9hY2NlcHQgPSB1dGlsLnNoYTFfaGFzaCgKKyAgICAg
ICAgICAgIHNlbGYuX2tleSArIGNvbW1vbi5XRUJTT0NLRVRfQUNDRVBUX1VVSUQpLmRpZ2VzdCgp
CisgICAgICAgIGV4cGVjdGVkX2FjY2VwdCA9IGJhc2U2NC5iNjRlbmNvZGUoYmluYXJ5X2V4cGVj
dGVkX2FjY2VwdCkKKworICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAn
RXhwZWN0ZWQgcmVzcG9uc2UgZm9yIGNoYWxsZW5nZTogJXIgKCVzKScsCisgICAgICAgICAgICBl
eHBlY3RlZF9hY2NlcHQsIHV0aWwuaGV4aWZ5KGJpbmFyeV9leHBlY3RlZF9hY2NlcHQpKQorCisg
ICAgICAgIGlmIGFjY2VwdCAhPSBleHBlY3RlZF9hY2NlcHQ6CisgICAgICAgICAgICByYWlzZSBD
bGllbnRIYW5kc2hha2VFcnJvcigKKyAgICAgICAgICAgICAgICAnSW52YWxpZCAlcyBoZWFkZXI6
ICVyIChleHBlY3RlZDogJXMpJyAlCisgICAgICAgICAgICAgICAgKGNvbW1vbi5TRUNfV0VCU09D
S0VUX0FDQ0VQVF9IRUFERVIsIGFjY2VwdCwgZXhwZWN0ZWRfYWNjZXB0KSkKKworICAgICAgICBk
ZWZsYXRlX2ZyYW1lX2FjY2VwdGVkID0gRmFsc2UKKyAgICAgICAgcGVybWVzc2FnZV9kZWZsYXRl
X2FjY2VwdGVkID0gRmFsc2UKKworICAgICAgICBleHRlbnNpb25zX2hlYWRlciA9IGZpZWxkcy5n
ZXQoCisgICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9FWFRFTlNJT05TX0hFQURFUi5s
b3dlcigpKQorICAgICAgICBhY2NlcHRlZF9leHRlbnNpb25zID0gW10KKyAgICAgICAgaWYgZXh0
ZW5zaW9uc19oZWFkZXIgaXMgbm90IE5vbmUgYW5kIGxlbihleHRlbnNpb25zX2hlYWRlcikgIT0g
MDoKKyAgICAgICAgICAgIGFjY2VwdGVkX2V4dGVuc2lvbnMgPSBjb21tb24ucGFyc2VfZXh0ZW5z
aW9ucyhleHRlbnNpb25zX2hlYWRlclswXSkKKworICAgICAgICAjIFRPRE8oYmFzaGkpOiBTdXBw
b3J0IHRoZSBuZXcgc3R5bGUgcGVyZnJhbWUgY29tcHJlc3Npb24gZXh0ZW5zaW9uLgorICAgICAg
ICBmb3IgZXh0ZW5zaW9uIGluIGFjY2VwdGVkX2V4dGVuc2lvbnM6CisgICAgICAgICAgICBleHRl
bnNpb25fbmFtZSA9IGV4dGVuc2lvbi5uYW1lKCkKKyAgICAgICAgICAgIGlmIChleHRlbnNpb25f
bmFtZSA9PSBjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04gYW5kCisgICAgICAgICAgICAg
ICAgc2VsZi5fb3B0aW9ucy5kZWZsYXRlX2ZyYW1lKToKKyAgICAgICAgICAgICAgICBkZWZsYXRl
X2ZyYW1lX2FjY2VwdGVkID0gVHJ1ZQorICAgICAgICAgICAgICAgIHByb2Nlc3NvciA9IERlZmxh
dGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihleHRlbnNpb24pCisgICAgICAgICAgICAgICAgdW51
c2VkX2V4dGVuc2lvbl9yZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNl
KCkKKyAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLmRlZmxhdGVfZnJhbWUgPSBwcm9jZXNz
b3IKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgZWxpZiAoZXh0ZW5zaW9u
X25hbWUgPT0gY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04gYW5kCisgICAgICAg
ICAgICAgICAgICBzZWxmLl9vcHRpb25zLnVzZV9wZXJtZXNzYWdlX2RlZmxhdGUpOgorICAgICAg
ICAgICAgICAgIHBlcm1lc3NhZ2VfZGVmbGF0ZV9hY2NlcHRlZCA9IFRydWUKKworICAgICAgICAg
ICAgICAgIGZyYW1lciA9IF9nZXRfcGVybWVzc2FnZV9kZWZsYXRlX2ZyYW1lcihleHRlbnNpb24p
CisgICAgICAgICAgICAgICAgZnJhbWVyLnNldF9jb21wcmVzc19vdXRnb2luZ19lbmFibGVkKFRy
dWUpCisgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfcGVybWVzc2FnZV9kZWZsYXRl
ID0gZnJhbWVyCisgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgcmFpc2Ug
Q2xpZW50SGFuZHNoYWtlRXJyb3IoCisgICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgZXh0ZW5z
aW9uICVyJyAlIGV4dGVuc2lvbl9uYW1lKQorCisgICAgICAgIGlmIChzZWxmLl9vcHRpb25zLmRl
ZmxhdGVfZnJhbWUgYW5kIG5vdCBkZWZsYXRlX2ZyYW1lX2FjY2VwdGVkKToKKyAgICAgICAgICAg
IHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAorICAgICAgICAgICAgICAgICdSZXF1ZXN0ZWQg
JXMsIGJ1dCB0aGUgc2VydmVyIHJlamVjdGVkIGl0JyAlCisgICAgICAgICAgICAgICAgY29tbW9u
LkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQorCisgICAgICAgIGlmIChzZWxmLl9vcHRpb25zLnVz
ZV9wZXJtZXNzYWdlX2RlZmxhdGUgYW5kCisgICAgICAgICAgICBub3QgcGVybWVzc2FnZV9kZWZs
YXRlX2FjY2VwdGVkKToKKyAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAor
ICAgICAgICAgICAgICAgICAgICAnUmVxdWVzdGVkICVzLCBidXQgdGhlIHNlcnZlciByZWplY3Rl
ZCBpdCcgJQorICAgICAgICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VY
VEVOU0lPTikKKworICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBIYW5kbGUgU2VjLVdlYlNvY2tl
dC1Qcm90b2NvbAorICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBIYW5kbGUgQ29va2llLCBldGMu
CisKKworY2xhc3MgQ2xpZW50SGFuZHNoYWtlUHJvY2Vzc29ySHliaTAwKENsaWVudEhhbmRzaGFr
ZUJhc2UpOgorICAgICIiIldlYlNvY2tldCBvcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IgZm9y
CisgICAgZHJhZnQtaWV0Zi1oeWJpLXRoZXdlYnNvY2tldHByb3RvY29sLTAwIChlcXVpdmFsZW50
IHRvCisgICAgZHJhZnQtaGl4aWUtdGhld2Vic29ja2V0cHJvdG9jb2wtNzYpLgorICAgICIiIgor
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvY2tldCwgb3B0aW9ucyk6CisgICAgICAgIHN1cGVy
KENsaWVudEhhbmRzaGFrZVByb2Nlc3Nvckh5YmkwMCwgc2VsZikuX19pbml0X18oKQorCisgICAg
ICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldAorICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9u
cworCisgICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQor
CisgICAgICAgIGlmIChzZWxmLl9vcHRpb25zLmRlZmxhdGVfZnJhbWUgb3IKKyAgICAgICAgICAg
IHNlbGYuX29wdGlvbnMudXNlX3Blcm1lc3NhZ2VfZGVmbGF0ZSk6CisgICAgICAgICAgICBsb2dn
aW5nLmNyaXRpY2FsKCdIeUJpIDAwIGRvZXNuXCd0IHN1cHBvcnQgZXh0ZW5zaW9ucy4nKQorICAg
ICAgICAgICAgc3lzLmV4aXQoMSkKKworICAgIGRlZiBoYW5kc2hha2Uoc2VsZik6CisgICAgICAg
ICIiIlBlcmZvcm1zIG9wZW5pbmcgaGFuZHNoYWtlIG9uIHRoZSBzcGVjaWZpZWQgc29ja2V0Lgor
CisgICAgICAgIFJhaXNlczoKKyAgICAgICAgICAgIENsaWVudEhhbmRzaGFrZUVycm9yOiBoYW5k
c2hha2UgZmFpbGVkLgorICAgICAgICAiIiIKKworICAgICAgICAjIDQuMSA1LiBzZW5kIHJlcXVl
c3QgbGluZS4KKyAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoX2J1aWxkX21ldGhvZF9saW5l
KHNlbGYuX29wdGlvbnMucmVzb3VyY2UpKQorICAgICAgICAjIDQuMSA2LiBMZXQgL2ZpZWxkcy8g
YmUgYW4gZW1wdHkgbGlzdCBvZiBzdHJpbmdzLgorICAgICAgICBmaWVsZHMgPSBbXQorICAgICAg
ICAjIDQuMSA3LiBBZGQgdGhlIHN0cmluZyAiVXBncmFkZTogV2ViU29ja2V0IiB0byAvZmllbGRz
Ly4KKyAgICAgICAgZmllbGRzLmFwcGVuZChfVVBHUkFERV9IRUFERVJfSElYSUU3NSkKKyAgICAg
ICAgIyA0LjEgOC4gQWRkIHRoZSBzdHJpbmcgIkNvbm5lY3Rpb246IFVwZ3JhZGUiIHRvIC9maWVs
ZHMvLgorICAgICAgICBmaWVsZHMuYXBwZW5kKF9DT05ORUNUSU9OX0hFQURFUikKKyAgICAgICAg
IyA0LjEgOS0xMi4gQWRkIEhvc3Q6IGZpZWxkIHRvIC9maWVsZHMvLgorICAgICAgICBmaWVsZHMu
YXBwZW5kKF9mb3JtYXRfaG9zdF9oZWFkZXIoCisgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNl
cnZlcl9ob3N0LAorICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCwKKyAgICAg
ICAgICAgIHNlbGYuX29wdGlvbnMudXNlX3RscykpCisgICAgICAgICMgNC4xIDEzLiBBZGQgT3Jp
Z2luOiBmaWVsZCB0byAvZmllbGRzLy4KKyAgICAgICAgaWYgbm90IHNlbGYuX29wdGlvbnMub3Jp
Z2luOgorICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCisgICAgICAgICAg
ICAgICAgJ1NwZWNpZnkgdGhlIG9yaWdpbiBvZiB0aGUgY29ubmVjdGlvbiBieSAtLW9yaWdpbiBm
bGFnJykKKyAgICAgICAgZmllbGRzLmFwcGVuZChfb3JpZ2luX2hlYWRlcihjb21tb24uT1JJR0lO
X0hFQURFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRp
b25zLm9yaWdpbikpCisgICAgICAgICMgVE9ETzogNC4xIDE0IEFkZCBTZWMtV2ViU29ja2V0LVBy
b3RvY29sOiBmaWVsZCB0byAvZmllbGRzLy4KKyAgICAgICAgIyBUT0RPOiA0LjEgMTUgQWRkIGNv
b2tpZSBoZWFkZXJzIHRvIC9maWVsZHMvLgorCisgICAgICAgICMgNC4xIDE2LTIzLiBBZGQgU2Vj
LVdlYlNvY2tldC1LZXk8bj4gdG8gL2ZpZWxkcy8uCisgICAgICAgIHNlbGYuX251bWJlcjEsIGtl
eTEgPSBzZWxmLl9nZW5lcmF0ZV9zZWNfd2Vic29ja2V0X2tleSgpCisgICAgICAgIHNlbGYuX2xv
Z2dlci5kZWJ1ZygnTnVtYmVyMTogJWQnLCBzZWxmLl9udW1iZXIxKQorICAgICAgICBmaWVsZHMu
YXBwZW5kKCclczogJXNcclxuJyAlIChjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVkxX0hFQURFUiwg
a2V5MSkpCisgICAgICAgIHNlbGYuX251bWJlcjIsIGtleTIgPSBzZWxmLl9nZW5lcmF0ZV9zZWNf
d2Vic29ja2V0X2tleSgpCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnTnVtYmVyMjogJWQn
LCBzZWxmLl9udW1iZXIyKQorICAgICAgICBmaWVsZHMuYXBwZW5kKCclczogJXNcclxuJyAlIChj
b21tb24uU0VDX1dFQlNPQ0tFVF9LRVkyX0hFQURFUiwga2V5MikpCisKKyAgICAgICAgZmllbGRz
LmFwcGVuZCgnJXM6IDBcclxuJyAlIGNvbW1vbi5TRUNfV0VCU09DS0VUX0RSQUZUX0hFQURFUikK
KworICAgICAgICAjIDQuMSAyNC4gRm9yIGVhY2ggc3RyaW5nIGluIC9maWVsZHMvLCBpbiBhIHJh
bmRvbSBvcmRlcjogc2VuZCB0aGUKKyAgICAgICAgIyBzdHJpbmcsIGVuY29kZWQgYXMgVVRGLTgs
IGZvbGxvd2VkIGJ5IGEgVVRGLTggZW5jb2RlZCBVKzAwMEQgQ0FSUklBR0UKKyAgICAgICAgIyBS
RVRVUk4gVSswMDBBIExJTkUgRkVFRCBjaGFyYWN0ZXIgcGFpciAoQ1JMRikuCisgICAgICAgIHJh
bmRvbS5zaHVmZmxlKGZpZWxkcykKKyAgICAgICAgZm9yIGZpZWxkIGluIGZpZWxkczoKKyAgICAg
ICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKGZpZWxkKQorICAgICAgICAjIDQuMSAyNS4gc2Vu
ZCBhIFVURi04LWVuY29kZWQgVSswMDBEIENBUlJJQUdFIFJFVFVSTiBVKzAwMEEgTElORSBGRUVE
CisgICAgICAgICMgY2hhcmFjdGVyIHBhaXIgKENSTEYpLgorICAgICAgICBzZWxmLl9zb2NrZXQu
c2VuZGFsbCgnXHJcbicpCisgICAgICAgICMgNC4xIDI2LiBsZXQgL2tleTMvIGJlIGEgc3RyaW5n
IGNvbnNpc3Rpbmcgb2YgZWlnaHQgcmFuZG9tIGJ5dGVzIChvcgorICAgICAgICAjIGVxdWl2YWxl
bnRseSwgYSByYW5kb20gNjQgYml0IGludGVnZXIgZW5jb2RlZCBpbiBhIGJpZy1lbmRpYW4gb3Jk
ZXIpLgorICAgICAgICBzZWxmLl9rZXkzID0gc2VsZi5fZ2VuZXJhdGVfa2V5MygpCisgICAgICAg
ICMgNC4xIDI3LiBzZW5kIC9rZXkzLyB0byB0aGUgc2VydmVyLgorICAgICAgICBzZWxmLl9zb2Nr
ZXQuc2VuZGFsbChzZWxmLl9rZXkzKQorICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCisgICAg
ICAgICAgICAnS2V5MzogJXIgKCVzKScsIHNlbGYuX2tleTMsIHV0aWwuaGV4aWZ5KHNlbGYuX2tl
eTMpKQorCisgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdTZW50IGhhbmRzaGFrZScpCisKKyAg
ICAgICAgIyA0LjEgMjguIFJlYWQgYnl0ZXMgZnJvbSB0aGUgc2VydmVyIHVudGlsIGVpdGhlciB0
aGUgY29ubmVjdGlvbgorICAgICAgICAjIGNsb3Nlcywgb3IgYSAweDBBIGJ5dGUgaXMgcmVhZC4g
bGV0IC9maWVsZC8gYmUgdGhlc2UgYnl0ZXMsIGluY2x1ZGluZworICAgICAgICAjIHRoZSAweDBB
IGJ5dGVzLgorICAgICAgICBmaWVsZCA9ICcnCisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAg
ICAgICBjaCA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKKyAgICAgICAgICAgIGZp
ZWxkICs9IGNoCisgICAgICAgICAgICBpZiBjaCA9PSAnXG4nOgorICAgICAgICAgICAgICAgIGJy
ZWFrCisgICAgICAgICMgaWYgL2ZpZWxkLyBpcyBub3QgYXQgbGVhc3Qgc2V2ZW4gYnl0ZXMgbG9u
Zywgb3IgaWYgdGhlIGxhc3QKKyAgICAgICAgIyB0d28gYnl0ZXMgYXJlbid0IDB4MEQgYW5kIDB4
MEEgcmVzcGVjdGl2ZWx5LCBvciBpZiBpdCBkb2VzIG5vdAorICAgICAgICAjIGNvbnRhaW4gYXQg
bGVhc3QgdHdvIDB4MjAgYnl0ZXMsIHRoZW4gZmFpbCB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24K
KyAgICAgICAgIyBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgICAgIGlmIGxlbihmaWVsZCkg
PCA3IG9yIG5vdCBmaWVsZC5lbmRzd2l0aCgnXHJcbicpOgorICAgICAgICAgICAgcmFpc2UgQ2xp
ZW50SGFuZHNoYWtlRXJyb3IoJ1dyb25nIHN0YXR1cyBsaW5lOiAlcicgJSBmaWVsZCkKKyAgICAg
ICAgbSA9IHJlLm1hdGNoKCdbXiBdKiAoW14gXSopIC4qJywgZmllbGQpCisgICAgICAgIGlmIG0g
aXMgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAorICAgICAg
ICAgICAgICAgICdObyBIVFRQIHN0YXR1cyBjb2RlIGZvdW5kIGluIHN0YXR1cyBsaW5lOiAlcicg
JSBmaWVsZCkKKyAgICAgICAgIyA0LjEgMjkuIGxldCAvY29kZS8gYmUgdGhlIHN1YnN0cmluZyBv
ZiAvZmllbGQvIHRoYXQgc3RhcnRzIGZyb20gdGhlCisgICAgICAgICMgYnl0ZSBhZnRlciB0aGUg
Zmlyc3QgMHgyMCBieXRlLCBhbmQgZW5kcyB3aXRoIHRoZSBieXRlIGJlZm9yZSB0aGUKKyAgICAg
ICAgIyBzZWNvbmQgMHgyMCBieXRlLgorICAgICAgICBjb2RlID0gbS5ncm91cCgxKQorICAgICAg
ICAjIDQuMSAzMC4gaWYgL2NvZGUvIGlzIG5vdCB0aHJlZSBieXRlcyBsb25nLCBvciBpZiBhbnkg
b2YgdGhlIGJ5dGVzIGluCisgICAgICAgICMgL2NvZGUvIGFyZSBub3QgaW4gdGhlIHJhbmdlIDB4
MzAgdG8gMHg5MCwgdGhlbiBmYWlsIHRoZSBXZWJTb2NrZXQKKyAgICAgICAgIyBjb25uZWN0aW9u
IGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAgICAgaWYgbm90IHJlLm1hdGNoKCdbMC05XVsw
LTldWzAtOV0nLCBjb2RlKToKKyAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9y
KAorICAgICAgICAgICAgICAgICdIVFRQIHN0YXR1cyBjb2RlICVyIGlzIG5vdCB0aHJlZSBkaWdp
dCBpbiBzdGF0dXMgbGluZTogJXInICUKKyAgICAgICAgICAgICAgICAoY29kZSwgZmllbGQpKQor
ICAgICAgICAjIDQuMSAzMS4gaWYgL2NvZGUvLCBpbnRlcnByZXRlZCBhcyBVVEYtOCwgaXMgIjEw
MSIsIHRoZW4gbW92ZSB0byB0aGUKKyAgICAgICAgIyBuZXh0IHN0ZXAuCisgICAgICAgIGlmIGNv
ZGUgIT0gJzEwMSc6CisgICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKKyAg
ICAgICAgICAgICAgICAnRXhwZWN0ZWQgSFRUUCBzdGF0dXMgY29kZSAxMDEgYnV0IGZvdW5kICVy
IGluIHN0YXR1cyBsaW5lOiAnCisgICAgICAgICAgICAgICAgJyVyJyAlIChjb2RlLCBmaWVsZCkp
CisgICAgICAgICMgNC4xIDMyLTM5LiByZWFkIGZpZWxkcyBpbnRvIC9maWVsZHMvCisgICAgICAg
IGZpZWxkcyA9IHNlbGYuX3JlYWRfZmllbGRzKCkKKyAgICAgICAgIyA0LjEgNDAuIF9GaWVsZHMg
cHJvY2Vzc2luZ18KKyAgICAgICAgIyByZWFkIGEgYnl0ZSBmcm9tIHNlcnZlcgorICAgICAgICBj
aCA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKKyAgICAgICAgaWYgY2ggIT0gJ1xu
JzogICMgMHgwQQorICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoJ0V4cGVj
dGVkIExGIGJ1dCBmb3VuZCAlcicgJSBjaCkKKyAgICAgICAgIyA0LjEgNDEuIGNoZWNrIC9maWVs
ZHMvCisgICAgICAgICMgVE9ETyh1a2FpKTogcHJvdG9jb2wKKyAgICAgICAgIyBpZiB0aGUgZW50
cnkncyBuYW1lIGlzICJ1cGdyYWRlIgorICAgICAgICAjICBpZiB0aGUgdmFsdWUgaXMgbm90IGV4
YWN0bHkgZXF1YWwgdG8gdGhlIHN0cmluZyAiV2ViU29ja2V0IiwKKyAgICAgICAgIyAgdGhlbiBm
YWlsIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAg
ICAgIF92YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyKAorICAgICAgICAgICAgZmllbGRzLAorICAg
ICAgICAgICAgY29tbW9uLlVQR1JBREVfSEVBREVSLAorICAgICAgICAgICAgY29tbW9uLldFQlNP
Q0tFVF9VUEdSQURFX1RZUEVfSElYSUU3NSwKKyAgICAgICAgICAgIFRydWUpCisgICAgICAgICMg
aWYgdGhlIGVudHJ5J3MgbmFtZSBpcyAiY29ubmVjdGlvbiIKKyAgICAgICAgIyAgaWYgdGhlIHZh
bHVlLCBjb252ZXJ0ZWQgdG8gQVNDSUkgbG93ZXJjYXNlLCBpcyBub3QgZXhhY3RseSBlcXVhbAor
ICAgICAgICAjICB0byB0aGUgc3RyaW5nICJ1cGdyYWRlIiwgdGhlbiBmYWlsIHRoZSBXZWJTb2Nr
ZXQgY29ubmVjdGlvbiBhbmQKKyAgICAgICAgIyAgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgICAg
IF92YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyKAorICAgICAgICAgICAgZmllbGRzLAorICAgICAg
ICAgICAgY29tbW9uLkNPTk5FQ1RJT05fSEVBREVSLAorICAgICAgICAgICAgY29tbW9uLlVQR1JB
REVfQ09OTkVDVElPTl9UWVBFLAorICAgICAgICAgICAgRmFsc2UpCisKKyAgICAgICAgb3JpZ2lu
ID0gX2dldF9tYW5kYXRvcnlfaGVhZGVyKAorICAgICAgICAgICAgZmllbGRzLCBjb21tb24uU0VD
X1dFQlNPQ0tFVF9PUklHSU5fSEVBREVSKQorCisgICAgICAgIGxvY2F0aW9uID0gX2dldF9tYW5k
YXRvcnlfaGVhZGVyKAorICAgICAgICAgICAgZmllbGRzLCBjb21tb24uU0VDX1dFQlNPQ0tFVF9M
T0NBVElPTl9IRUFERVIpCisKKyAgICAgICAgIyBUT0RPKHVrYWkpOiBjaGVjayBvcmlnaW4sIGxv
Y2F0aW9uLCBjb29raWUsIC4uCisKKyAgICAgICAgIyA0LjEgNDIuIGxldCAvY2hhbGxlbmdlLyBi
ZSB0aGUgY29uY2F0ZW5hdGlvbiBvZiAvbnVtYmVyXzEvLAorICAgICAgICAjIGV4cHJlc3NlZCBh
cyBhIGJpZyBlbmRpYW4gMzIgYml0IGludGVnZXIsIC9udW1iZXJfMi8sIGV4cHJlc3NlZAorICAg
ICAgICAjIGFzIGJpZyBlbmRpYW4gMzIgYml0IGludGVnZXIsIGFuZCB0aGUgZWlnaHQgYnl0ZXMg
b2YgL2tleV8zLyBpbiB0aGUKKyAgICAgICAgIyBvcmRlciB0aGV5IHdlcmUgc2VudCBvbiB0aGUg
d2lyZS4KKyAgICAgICAgY2hhbGxlbmdlID0gc3RydWN0LnBhY2soJyFJJywgc2VsZi5fbnVtYmVy
MSkKKyAgICAgICAgY2hhbGxlbmdlICs9IHN0cnVjdC5wYWNrKCchSScsIHNlbGYuX251bWJlcjIp
CisgICAgICAgIGNoYWxsZW5nZSArPSBzZWxmLl9rZXkzCisKKyAgICAgICAgc2VsZi5fbG9nZ2Vy
LmRlYnVnKAorICAgICAgICAgICAgJ0NoYWxsZW5nZTogJXIgKCVzKScsIGNoYWxsZW5nZSwgdXRp
bC5oZXhpZnkoY2hhbGxlbmdlKSkKKworICAgICAgICAjIDQuMSA0My4gbGV0IC9leHBlY3RlZC8g
YmUgdGhlIE1ENSBmaW5nZXJwcmludCBvZiAvY2hhbGxlbmdlLyBhcyBhCisgICAgICAgICMgYmln
LWVuZGlhbiAxMjggYml0IHN0cmluZy4KKyAgICAgICAgZXhwZWN0ZWQgPSB1dGlsLm1kNV9oYXNo
KGNoYWxsZW5nZSkuZGlnZXN0KCkKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAorICAgICAg
ICAgICAgJ0V4cGVjdGVkIGNoYWxsZW5nZSByZXNwb25zZTogJXIgKCVzKScsCisgICAgICAgICAg
ICBleHBlY3RlZCwgdXRpbC5oZXhpZnkoZXhwZWN0ZWQpKQorCisgICAgICAgICMgNC4xIDQ0LiBy
ZWFkIHNpeHRlZW4gYnl0ZXMgZnJvbSB0aGUgc2VydmVyLgorICAgICAgICAjIGxldCAvcmVwbHkv
IGJlIHRob3NlIGJ5dGVzLgorICAgICAgICByZXBseSA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3Nv
Y2tldCwgMTYpCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKKyAgICAgICAgICAgICdBY3R1
YWwgY2hhbGxlbmdlIHJlc3BvbnNlOiAlciAoJXMpJywgcmVwbHksIHV0aWwuaGV4aWZ5KHJlcGx5
KSkKKworICAgICAgICAjIDQuMSA0NS4gaWYgL3JlcGx5LyBkb2VzIG5vdCBleGFjdGx5IGVxdWFs
IC9leHBlY3RlZC8sIHRoZW4gZmFpbAorICAgICAgICAjIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlv
biBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgICAgIGlmIGV4cGVjdGVkICE9IHJlcGx5Ogor
ICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCisgICAgICAgICAgICAgICAg
J0JhZCBjaGFsbGVuZ2UgcmVzcG9uc2U6ICVyIChleHBlY3RlZCkgIT0gJXIgKGFjdHVhbCknICUK
KyAgICAgICAgICAgICAgICAoZXhwZWN0ZWQsIHJlcGx5KSkKKyAgICAgICAgIyA0LjEgNDYuIFRo
ZSAqV2ViU29ja2V0IGNvbm5lY3Rpb24gaXMgZXN0YWJsaXNoZWQqLgorCisgICAgZGVmIF9nZW5l
cmF0ZV9zZWNfd2Vic29ja2V0X2tleShzZWxmKToKKyAgICAgICAgIyA0LjEgMTYuIGxldCAvc3Bh
Y2VzX24vIGJlIGEgcmFuZG9tIGludGVnZXIgZnJvbSAxIHRvIDEyIGluY2x1c2l2ZS4KKyAgICAg
ICAgc3BhY2VzID0gcmFuZG9tLnJhbmRpbnQoMSwgMTIpCisgICAgICAgICMgNC4xIDE3LiBsZXQg
L21heF9uLyBiZSB0aGUgbGFyZ2VzdCBpbnRlZ2VyIG5vdCBncmVhdGVyIHRoYW4KKyAgICAgICAg
IyAgNCwyOTQsOTY3LDI5NSBkaXZpZGVkIGJ5IC9zcGFjZXNfbi8uCisgICAgICAgIG1heG51bSA9
IDQyOTQ5NjcyOTUgLyBzcGFjZXMKKyAgICAgICAgIyA0LjEgMTguIGxldCAvbnVtYmVyX24vIGJl
IGEgcmFuZG9tIGludGVnZXIgZnJvbSAwIHRvIC9tYXhfbi8KKyAgICAgICAgIyBpbmNsdXNpdmUu
CisgICAgICAgIG51bWJlciA9IHJhbmRvbS5yYW5kaW50KDAsIG1heG51bSkKKyAgICAgICAgIyA0
LjEgMTkuIGxldCAvcHJvZHVjdF9uLyBiZSB0aGUgcmVzdWx0IG9mIG11bHRpcGx5aW5nIC9udW1i
ZXJfbi8gYW5kCisgICAgICAgICMgL3NwYWNlc19uLyB0b2dldGhlci4KKyAgICAgICAgcHJvZHVj
dCA9IG51bWJlciAqIHNwYWNlcworICAgICAgICAjIDQuMSAyMC4gbGV0IC9rZXlfbi8gYmUgYSBz
dHJpbmcgY29uc2lzdGluZyBvZiAvcHJvZHVjdF9uLywgZXhwcmVzc2VkCisgICAgICAgICMgaW4g
YmFzZSB0ZW4gdXNpbmcgdGhlIG51bWVyYWxzIGluIHRoZSByYW5nZSBVKzAwMzAgRElHSVQgWkVS
TyAoMCkgdG8KKyAgICAgICAgIyBVKzAwMzkgRElHSVQgTklORSAoOSkuCisgICAgICAgIGtleSA9
IHN0cihwcm9kdWN0KQorICAgICAgICAjIDQuMSAyMS4gaW5zZXJ0IGJldHdlZW4gb25lIGFuZCB0
d2VsdmUgcmFuZG9tIGNoYXJhY3RlcnMgZnJvbSB0aGUKKyAgICAgICAgIyByYW5nZSBVKzAwMjEg
dG8gVSswMDJGIGFuZCBVKzAwM0EgdG8gVSswMDdFIGludG8gL2tleV9uLyBhdCByYW5kb20KKyAg
ICAgICAgIyBwb3NpdGlvbnMuCisgICAgICAgIGF2YWlsYWJsZV9jaGFycyA9IHJhbmdlKDB4MjEs
IDB4MmYgKyAxKSArIHJhbmdlKDB4M2EsIDB4N2UgKyAxKQorICAgICAgICBuID0gcmFuZG9tLnJh
bmRpbnQoMSwgMTIpCisgICAgICAgIGZvciBfIGluIHhyYW5nZShuKToKKyAgICAgICAgICAgIGNo
ID0gcmFuZG9tLmNob2ljZShhdmFpbGFibGVfY2hhcnMpCisgICAgICAgICAgICBwb3MgPSByYW5k
b20ucmFuZGludCgwLCBsZW4oa2V5KSkKKyAgICAgICAgICAgIGtleSA9IGtleVswOnBvc10gKyBj
aHIoY2gpICsga2V5W3BvczpdCisgICAgICAgICMgNC4xIDIyLiBpbnNlcnQgL3NwYWNlc19uLyBV
KzAwMjAgU1BBQ0UgY2hhcmFjdGVycyBpbnRvIC9rZXlfbi8gYXQKKyAgICAgICAgIyByYW5kb20g
cG9zaXRpb25zIG90aGVyIHRoYW4gc3RhcnQgb3IgZW5kIG9mIHRoZSBzdHJpbmcuCisgICAgICAg
IGZvciBfIGluIHhyYW5nZShzcGFjZXMpOgorICAgICAgICAgICAgcG9zID0gcmFuZG9tLnJhbmRp
bnQoMSwgbGVuKGtleSkgLSAxKQorICAgICAgICAgICAga2V5ID0ga2V5WzA6cG9zXSArICcgJyAr
IGtleVtwb3M6XQorICAgICAgICByZXR1cm4gbnVtYmVyLCBrZXkKKworICAgIGRlZiBfZ2VuZXJh
dGVfa2V5MyhzZWxmKToKKyAgICAgICAgIyA0LjEgMjYuIGxldCAva2V5My8gYmUgYSBzdHJpbmcg
Y29uc2lzdGluZyBvZiBlaWdodCByYW5kb20gYnl0ZXMgKG9yCisgICAgICAgICMgZXF1aXZhbGVu
dGx5LCBhIHJhbmRvbSA2NCBiaXQgaW50ZWdlciBlbmNvZGVkIGluIGEgYmlnLWVuZGlhbiBvcmRl
cikuCisgICAgICAgIHJldHVybiAnJy5qb2luKFtjaHIocmFuZG9tLnJhbmRpbnQoMCwgMjU1KSkg
Zm9yIF8gaW4geHJhbmdlKDgpXSkKKworCitjbGFzcyBDbGllbnRDb25uZWN0aW9uKG9iamVjdCk6
CisgICAgIiIiQSB3cmFwcGVyIGZvciBzb2NrZXQgb2JqZWN0IHRvIHByb3ZpZGUgdGhlIG1wX2Nv
bm4gaW50ZXJmYWNlLgorICAgIG1vZF9weXdlYnNvY2tldCBsaWJyYXJ5IGlzIGRlc2lnbmVkIHRv
IGJlIHdvcmtpbmcgb24gQXBhY2hlIG1vZF9weXRob24ncworICAgIG1wX2Nvbm4gb2JqZWN0Lgor
ICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvY2tldCk6CisgICAgICAgIHNlbGYu
X3NvY2tldCA9IHNvY2tldAorCisgICAgZGVmIHdyaXRlKHNlbGYsIGRhdGEpOgorICAgICAgICBz
ZWxmLl9zb2NrZXQuc2VuZGFsbChkYXRhKQorCisgICAgZGVmIHJlYWQoc2VsZiwgbik6CisgICAg
ICAgIHJldHVybiBzZWxmLl9zb2NrZXQucmVjdihuKQorCisgICAgZGVmIGdldF9yZW1vdGVfYWRk
cihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3NvY2tldC5nZXRwZWVybmFtZSgpCisgICAg
cmVtb3RlX2FkZHIgPSBwcm9wZXJ0eShnZXRfcmVtb3RlX2FkZHIpCisKKworY2xhc3MgQ2xpZW50
UmVxdWVzdChvYmplY3QpOgorICAgICIiIkEgd3JhcHBlciBjbGFzcyBqdXN0IHRvIG1ha2UgaXQg
YWJsZSB0byBwYXNzIGEgc29ja2V0IG9iamVjdCB0bworICAgIGZ1bmN0aW9ucyB0aGF0IGV4cGVj
dCBhIG1wX3JlcXVlc3Qgb2JqZWN0LgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHNvY2tldCk6CisgICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihz
ZWxmKQorCisgICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldAorICAgICAgICBzZWxmLmNvbm5l
Y3Rpb24gPSBDbGllbnRDb25uZWN0aW9uKHNvY2tldCkKKworCitkZWYgX2ltcG9ydF9zc2woKToK
KyAgICBnbG9iYWwgc3NsCisgICAgdHJ5OgorICAgICAgICBpbXBvcnQgc3NsCisgICAgICAgIHJl
dHVybiBUcnVlCisgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICByZXR1cm4gRmFsc2UK
KworCitkZWYgX2ltcG9ydF9weW9wZW5zc2woKToKKyAgICBnbG9iYWwgT3BlblNTTAorICAgIHRy
eToKKyAgICAgICAgaW1wb3J0IE9wZW5TU0wuU1NMCisgICAgICAgIHJldHVybiBUcnVlCisgICAg
ZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICByZXR1cm4gRmFsc2UKKworCitjbGFzcyBFY2hv
Q2xpZW50KG9iamVjdCk6CisgICAgIiIiV2ViU29ja2V0IGVjaG8gY2xpZW50LiIiIgorCisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMpOgorICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0
aW9ucworICAgICAgICBzZWxmLl9zb2NrZXQgPSBOb25lCisKKyAgICAgICAgc2VsZi5fbG9nZ2Vy
ID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCisKKyAgICBkZWYgcnVuKHNlbGYpOgorICAg
ICAgICAiIiJSdW4gdGhlIGNsaWVudC4KKworICAgICAgICBTaGFrZSBoYW5kcyBhbmQgdGhlbiBy
ZXBlYXQgc2VuZGluZyBtZXNzYWdlIGFuZCByZWNlaXZpbmcgaXRzIGVjaG8uCisgICAgICAgICIi
IgorCisgICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldC5zb2NrZXQoKQorICAgICAgICBzZWxm
Ll9zb2NrZXQuc2V0dGltZW91dChzZWxmLl9vcHRpb25zLnNvY2tldF90aW1lb3V0KQorICAgICAg
ICB0cnk6CisgICAgICAgICAgICBzZWxmLl9zb2NrZXQuY29ubmVjdCgoc2VsZi5fb3B0aW9ucy5z
ZXJ2ZXJfaG9zdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRp
b25zLnNlcnZlcl9wb3J0KSkKKyAgICAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMudXNlX3RsczoK
KyAgICAgICAgICAgICAgICBzZWxmLl9zb2NrZXQgPSBfVExTU29ja2V0KAorICAgICAgICAgICAg
ICAgICAgICBzZWxmLl9zb2NrZXQsCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMu
dGxzX21vZHVsZSwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy50bHNfdmVyc2lv
biwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5kaXNhYmxlX3Rsc19jb21wcmVz
c2lvbikKKworICAgICAgICAgICAgdmVyc2lvbiA9IHNlbGYuX29wdGlvbnMucHJvdG9jb2xfdmVy
c2lvbgorCisgICAgICAgICAgICBpZiAodmVyc2lvbiA9PSBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJ
MDggb3IKKyAgICAgICAgICAgICAgICB2ZXJzaW9uID09IF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkx
Myk6CisgICAgICAgICAgICAgICAgc2VsZi5faGFuZHNoYWtlID0gQ2xpZW50SGFuZHNoYWtlUHJv
Y2Vzc29yKAorICAgICAgICAgICAgICAgICAgICBzZWxmLl9zb2NrZXQsIHNlbGYuX29wdGlvbnMp
CisgICAgICAgICAgICBlbGlmIHZlcnNpb24gPT0gX1BST1RPQ09MX1ZFUlNJT05fSFlCSTAwOgor
ICAgICAgICAgICAgICAgIHNlbGYuX2hhbmRzaGFrZSA9IENsaWVudEhhbmRzaGFrZVByb2Nlc3Nv
ckh5YmkwMCgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fc29ja2V0LCBzZWxmLl9vcHRpb25z
KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAor
ICAgICAgICAgICAgICAgICAgICAnSW52YWxpZCAtLXByb3RvY29sLXZlcnNpb24gZmxhZzogJXIn
ICUgdmVyc2lvbikKKworICAgICAgICAgICAgc2VsZi5faGFuZHNoYWtlLmhhbmRzaGFrZSgpCisK
KyAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdDb25uZWN0aW9uIGVzdGFibGlzaGVkJykK
KworICAgICAgICAgICAgcmVxdWVzdCA9IENsaWVudFJlcXVlc3Qoc2VsZi5fc29ja2V0KQorCisg
ICAgICAgICAgICB2ZXJzaW9uX21hcCA9IHsKKyAgICAgICAgICAgICAgICBfUFJPVE9DT0xfVkVS
U0lPTl9IWUJJMDg6IGNvbW1vbi5WRVJTSU9OX0hZQkkwOCwKKyAgICAgICAgICAgICAgICBfUFJP
VE9DT0xfVkVSU0lPTl9IWUJJMTM6IGNvbW1vbi5WRVJTSU9OX0hZQkkxMywKKyAgICAgICAgICAg
ICAgICBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDA6IGNvbW1vbi5WRVJTSU9OX0hZQkkwMH0KKyAg
ICAgICAgICAgIHJlcXVlc3Qud3NfdmVyc2lvbiA9IHZlcnNpb25fbWFwW3ZlcnNpb25dCisKKyAg
ICAgICAgICAgIGlmICh2ZXJzaW9uID09IF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwOCBvcgorICAg
ICAgICAgICAgICAgIHZlcnNpb24gPT0gX1BST1RPQ09MX1ZFUlNJT05fSFlCSTEzKToKKyAgICAg
ICAgICAgICAgICBzdHJlYW1fb3B0aW9uID0gU3RyZWFtT3B0aW9ucygpCisgICAgICAgICAgICAg
ICAgc3RyZWFtX29wdGlvbi5tYXNrX3NlbmQgPSBUcnVlCisgICAgICAgICAgICAgICAgc3RyZWFt
X29wdGlvbi51bm1hc2tfcmVjZWl2ZSA9IEZhbHNlCisKKyAgICAgICAgICAgICAgICBpZiBzZWxm
Ll9vcHRpb25zLmRlZmxhdGVfZnJhbWUgaXMgbm90IEZhbHNlOgorICAgICAgICAgICAgICAgICAg
ICBwcm9jZXNzb3IgPSBzZWxmLl9vcHRpb25zLmRlZmxhdGVfZnJhbWUKKyAgICAgICAgICAgICAg
ICAgICAgcHJvY2Vzc29yLnNldHVwX3N0cmVhbV9vcHRpb25zKHN0cmVhbV9vcHRpb24pCisKKyAg
ICAgICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnVzZV9wZXJtZXNzYWdlX2RlZmxhdGUgaXMg
bm90IEZhbHNlOgorICAgICAgICAgICAgICAgICAgICBmcmFtZXIgPSBzZWxmLl9vcHRpb25zLnVz
ZV9wZXJtZXNzYWdlX2RlZmxhdGUKKyAgICAgICAgICAgICAgICAgICAgZnJhbWVyLnNldHVwX3N0
cmVhbV9vcHRpb25zKHN0cmVhbV9vcHRpb24pCisKKyAgICAgICAgICAgICAgICBzZWxmLl9zdHJl
YW0gPSBTdHJlYW0ocmVxdWVzdCwgc3RyZWFtX29wdGlvbikKKyAgICAgICAgICAgIGVsaWYgdmVy
c2lvbiA9PSBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDA6CisgICAgICAgICAgICAgICAgc2VsZi5f
c3RyZWFtID0gU3RyZWFtSGl4aWU3NShyZXF1ZXN0LCBUcnVlKQorCisgICAgICAgICAgICBmb3Ig
bGluZSBpbiBzZWxmLl9vcHRpb25zLm1lc3NhZ2Uuc3BsaXQoJywnKToKKyAgICAgICAgICAgICAg
ICBzZWxmLl9zdHJlYW0uc2VuZF9tZXNzYWdlKGxpbmUpCisgICAgICAgICAgICAgICAgaWYgc2Vs
Zi5fb3B0aW9ucy52ZXJib3NlOgorICAgICAgICAgICAgICAgICAgICBwcmludCAnU2VuZDogJXMn
ICUgbGluZQorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgcmVjZWl2
ZWQgPSBzZWxmLl9zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKKworICAgICAgICAgICAgICAgICAg
ICBpZiBzZWxmLl9vcHRpb25zLnZlcmJvc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBwcmlu
dCAnUmVjdjogJXMnICUgcmVjZWl2ZWQKKyAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9u
LCBlOgorICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnZlcmJvc2U6CisgICAg
ICAgICAgICAgICAgICAgICAgICBwcmludCAnRXJyb3I6ICVzJyAlIGUKKyAgICAgICAgICAgICAg
ICAgICAgcmFpc2UKKworICAgICAgICAgICAgc2VsZi5fZG9fY2xvc2luZ19oYW5kc2hha2UoKQor
ICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5fc29ja2V0LmNsb3NlKCkKKworICAg
IGRlZiBfZG9fY2xvc2luZ19oYW5kc2hha2Uoc2VsZik6CisgICAgICAgICIiIlBlcmZvcm0gY2xv
c2luZyBoYW5kc2hha2UgdXNpbmcgdGhlIHNwZWNpZmllZCBjbG9zaW5nIGZyYW1lLiIiIgorCisg
ICAgICAgIGlmIHNlbGYuX29wdGlvbnMubWVzc2FnZS5zcGxpdCgnLCcpWy0xXSA9PSBfR09PREJZ
RV9NRVNTQUdFOgorICAgICAgICAgICAgIyByZXF1ZXN0ZWQgc2VydmVyIGluaXRpYXRlZCBjbG9z
aW5nIGhhbmRzaGFrZSwgc28KKyAgICAgICAgICAgICMgZXhwZWN0aW5nIGNsb3NpbmcgaGFuZHNo
YWtlIG1lc3NhZ2UgZnJvbSBzZXJ2ZXIuCisgICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygn
V2FpdCBmb3Igc2VydmVyLWluaXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZScpCisgICAgICAgICAg
ICBtZXNzYWdlID0gc2VsZi5fc3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpCisgICAgICAgICAgICBp
ZiBtZXNzYWdlIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcHJpbnQgJ1JlY3YgY2xvc2UnCisg
ICAgICAgICAgICAgICAgcHJpbnQgJ1NlbmQgYWNrJworICAgICAgICAgICAgICAgIHNlbGYuX2xv
Z2dlci5pbmZvKAorICAgICAgICAgICAgICAgICAgICAnUmVjZWl2ZWQgY2xvc2luZyBoYW5kc2hh
a2UgYW5kIHNlbnQgYWNrJykKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgcHJpbnQg
J1NlbmQgY2xvc2UnCisgICAgICAgIHNlbGYuX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKCkKKyAg
ICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1NlbnQgY2xvc2luZyBoYW5kc2hha2UnKQorICAgICAg
ICBwcmludCAnUmVjdiBhY2snCisgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdSZWNlaXZlZCBh
Y2snKQorCisKK2RlZiBtYWluKCk6CisgICAgc3lzLnN0ZG91dCA9IGNvZGVjcy5nZXR3cml0ZXIo
J3V0Zi04Jykoc3lzLnN0ZG91dCkKKworICAgIHBhcnNlciA9IE9wdGlvblBhcnNlcigpCisgICAg
IyBXZSBhY2NlcHQgLS1jb21tYW5kX2xpbmVfZmxhZyBzdHlsZSBmbGFncyB3aGljaCBpcyB0aGUg
c2FtZSBhcyBHb29nbGUKKyAgICAjIGdmbGFncyBpbiBhZGRpdGlvbiB0byBjb21tb24gLS1jb21t
YW5kLWxpbmUtZmxhZyBzdHlsZSBmbGFncy4KKyAgICBwYXJzZXIuYWRkX29wdGlvbignLXMnLCAn
LS1zZXJ2ZXItaG9zdCcsICctLXNlcnZlcl9ob3N0JywKKyAgICAgICAgICAgICAgICAgICAgICBk
ZXN0PSdzZXJ2ZXJfaG9zdCcsIHR5cGU9J3N0cmluZycsCisgICAgICAgICAgICAgICAgICAgICAg
ZGVmYXVsdD0nbG9jYWxob3N0JywgaGVscD0nc2VydmVyIGhvc3QnKQorICAgIHBhcnNlci5hZGRf
b3B0aW9uKCctcCcsICctLXNlcnZlci1wb3J0JywgJy0tc2VydmVyX3BvcnQnLAorICAgICAgICAg
ICAgICAgICAgICAgIGRlc3Q9J3NlcnZlcl9wb3J0JywgdHlwZT0naW50JywKKyAgICAgICAgICAg
ICAgICAgICAgICBkZWZhdWx0PV9VTkRFRklORURfUE9SVCwgaGVscD0nc2VydmVyIHBvcnQnKQor
ICAgIHBhcnNlci5hZGRfb3B0aW9uKCctbycsICctLW9yaWdpbicsIGRlc3Q9J29yaWdpbicsIHR5
cGU9J3N0cmluZycsCisgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25lLCBoZWxwPSdv
cmlnaW4nKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcicsICctLXJlc291cmNlJywgZGVzdD0n
cmVzb3VyY2UnLCB0eXBlPSdzdHJpbmcnLAorICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9
Jy9lY2hvJywgaGVscD0ncmVzb3VyY2UgcGF0aCcpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1t
JywgJy0tbWVzc2FnZScsIGRlc3Q9J21lc3NhZ2UnLCB0eXBlPSdzdHJpbmcnLAorICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9KCdjb21tYS1zZXBhcmF0ZWQgbWVzc2FnZXMgdG8gc2VuZC4gJwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJyVzIHdpbGwgZm9yY2UgY2xvc2UgdGhlIGNvbm5l
Y3Rpb24gZnJvbSBzZXJ2ZXIuJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgX0dPT0RC
WUVfTUVTU0FHRSkpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1xJywgJy0tcXVpZXQnLCBkZXN0
PSd2ZXJib3NlJywgYWN0aW9uPSdzdG9yZV9mYWxzZScsCisgICAgICAgICAgICAgICAgICAgICAg
ZGVmYXVsdD1UcnVlLCBoZWxwPSdzdXBwcmVzcyBtZXNzYWdlcycpCisgICAgcGFyc2VyLmFkZF9v
cHRpb24oJy10JywgJy0tdGxzJywgZGVzdD0ndXNlX3RscycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScs
CisgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwgaGVscD0ndXNlIFRMUyAod3Nz
Oi8vKS4gQnkgZGVmYXVsdCwgJworICAgICAgICAgICAgICAgICAgICAgICdpdCBsb29rcyBmb3Ig
c3NsIGFuZCBweU9wZW5TU0wgbW9kdWxlIGFuZCB1c2VzIGZvdW5kICcKKyAgICAgICAgICAgICAg
ICAgICAgICAnb25lLiBVc2UgLS10bHMtbW9kdWxlIG9wdGlvbiB0byBzcGVjaWZ5IHdoaWNoIG1v
ZHVsZSAnCisgICAgICAgICAgICAgICAgICAgICAgJ3RvIHVzZScpCisgICAgcGFyc2VyLmFkZF9v
cHRpb24oJy0tdGxzLW1vZHVsZScsICctLXRsc19tb2R1bGUnLCBkZXN0PSd0bHNfbW9kdWxlJywK
KyAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdjaG9pY2UnLAorICAgICAgICAgICAgICAgICAg
ICAgIGNob2ljZXM9W19UTFNfQllfU1RBTkRBUkRfTU9EVUxFLCBfVExTX0JZX1BZT1BFTlNTTF0s
CisgICAgICAgICAgICAgICAgICAgICAgaGVscD0nVXNlIHNzbCBtb2R1bGUgaWYgIiVzIiBpcyBz
cGVjaWZpZWQuICcKKyAgICAgICAgICAgICAgICAgICAgICAnVXNlIHB5T3BlblNTTCBtb2R1bGUg
aWYgIiVzIiBpcyBzcGVjaWZpZWQnICUKKyAgICAgICAgICAgICAgICAgICAgICAoX1RMU19CWV9T
VEFOREFSRF9NT0RVTEUsIF9UTFNfQllfUFlPUEVOU1NMKSkKKyAgICBwYXJzZXIuYWRkX29wdGlv
bignLS10bHMtdmVyc2lvbicsICctLXRsc192ZXJzaW9uJywKKyAgICAgICAgICAgICAgICAgICAg
ICBkZXN0PSd0bHNfdmVyc2lvbicsCisgICAgICAgICAgICAgICAgICAgICAgdHlwZT0nc3RyaW5n
JywgZGVmYXVsdD1fVExTX1ZFUlNJT05fU1NMMjMsCisgICAgICAgICAgICAgICAgICAgICAgaGVs
cD0nVExTL1NTTCB2ZXJzaW9uIHRvIHVzZS4gT25lIG9mIFwnJyArCisgICAgICAgICAgICAgICAg
ICAgICAgX1RMU19WRVJTSU9OX1NTTDIzICsgJ1wnIChTU0wgdmVyc2lvbiAyIG9yIDMpLCBcJycg
KworICAgICAgICAgICAgICAgICAgICAgIF9UTFNfVkVSU0lPTl9TU0wzICsgJ1wnIChTU0wgdmVy
c2lvbiAzKSwgXCcnICsKKyAgICAgICAgICAgICAgICAgICAgICBfVExTX1ZFUlNJT05fVExTMSAr
ICdcJyAoVExTIHZlcnNpb24gMSknKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWRpc2FibGUt
dGxzLWNvbXByZXNzaW9uJywgJy0tZGlzYWJsZV90bHNfY29tcHJlc3Npb24nLAorICAgICAgICAg
ICAgICAgICAgICAgIGRlc3Q9J2Rpc2FibGVfdGxzX2NvbXByZXNzaW9uJywKKyAgICAgICAgICAg
ICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9J0Rpc2FibGUgVExTIGNvbXByZXNzaW9uLiBBdmFpbGFibGUgb25s
eSB3aGVuICcKKyAgICAgICAgICAgICAgICAgICAgICAncHlPcGVuU1NMIG1vZHVsZSBpcyB1c2Vk
LicpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1rJywgJy0tc29ja2V0LXRpbWVvdXQnLCAnLS1z
b2NrZXRfdGltZW91dCcsCisgICAgICAgICAgICAgICAgICAgICAgZGVzdD0nc29ja2V0X3RpbWVv
dXQnLCB0eXBlPSdpbnQnLCBkZWZhdWx0PV9USU1FT1VUX1NFQywKKyAgICAgICAgICAgICAgICAg
ICAgICBoZWxwPSdUaW1lb3V0KHNlYykgZm9yIHNvY2tldHMnKQorICAgIHBhcnNlci5hZGRfb3B0
aW9uKCctLWRyYWZ0NzUnLCBkZXN0PSdkcmFmdDc1JywKKyAgICAgICAgICAgICAgICAgICAgICBh
Y3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAg
IGhlbHA9J09ic29sZXRlIG9wdGlvbi4gRG9uXCd0IHVzZSB0aGlzLicpCisgICAgcGFyc2VyLmFk
ZF9vcHRpb24oJy0tcHJvdG9jb2wtdmVyc2lvbicsICctLXByb3RvY29sX3ZlcnNpb24nLAorICAg
ICAgICAgICAgICAgICAgICAgIGRlc3Q9J3Byb3RvY29sX3ZlcnNpb24nLAorICAgICAgICAgICAg
ICAgICAgICAgIHR5cGU9J3N0cmluZycsIGRlZmF1bHQ9X1BST1RPQ09MX1ZFUlNJT05fSFlCSTEz
LAorICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1dlYlNvY2tldCBwcm90b2NvbCB2ZXJzaW9u
IHRvIHVzZS4gT25lIG9mIFwnJyArCisgICAgICAgICAgICAgICAgICAgICAgX1BST1RPQ09MX1ZF
UlNJT05fSFlCSTEzICsgJ1wnLCBcJycgKworICAgICAgICAgICAgICAgICAgICAgIF9QUk9UT0NP
TF9WRVJTSU9OX0hZQkkwOCArICdcJywgXCcnICsKKyAgICAgICAgICAgICAgICAgICAgICBfUFJP
VE9DT0xfVkVSU0lPTl9IWUJJMDAgKyAnXCcnKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXZl
cnNpb24taGVhZGVyJywgJy0tdmVyc2lvbl9oZWFkZXInLAorICAgICAgICAgICAgICAgICAgICAg
IGRlc3Q9J3ZlcnNpb25faGVhZGVyJywKKyAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdpbnQn
LCBkZWZhdWx0PS0xLAorICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1NwZWNpZnkgU2VjLVdl
YlNvY2tldC1WZXJzaW9uIGhlYWRlciB2YWx1ZScpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy0t
ZGVmbGF0ZS1mcmFtZScsICctLWRlZmxhdGVfZnJhbWUnLAorICAgICAgICAgICAgICAgICAgICAg
IGRlc3Q9J2RlZmxhdGVfZnJhbWUnLAorICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3Rv
cmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgaGVscD0nVXNl
IHRoZSBkZWZsYXRlLWZyYW1lIGV4dGVuc2lvbi4nKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCct
LXVzZS1wZXJtZXNzYWdlLWRlZmxhdGUnLCAnLS11c2VfcGVybWVzc2FnZV9kZWZsYXRlJywKKyAg
ICAgICAgICAgICAgICAgICAgICBkZXN0PSd1c2VfcGVybWVzc2FnZV9kZWZsYXRlJywKKyAgICAg
ICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAorICAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9J1VzZSB0aGUgcGVybWVzc2FnZS1kZWZsYXRlIGV4dGVu
c2lvbi4nKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWxvZy1sZXZlbCcsICctLWxvZ19sZXZl
bCcsIHR5cGU9J2Nob2ljZScsCisgICAgICAgICAgICAgICAgICAgICAgZGVzdD0nbG9nX2xldmVs
JywgZGVmYXVsdD0nd2FybicsCisgICAgICAgICAgICAgICAgICAgICAgY2hvaWNlcz1bJ2RlYnVn
JywgJ2luZm8nLCAnd2FybicsICdlcnJvcicsICdjcml0aWNhbCddLAorICAgICAgICAgICAgICAg
ICAgICAgIGhlbHA9J0xvZyBsZXZlbC4nKQorCisgICAgKG9wdGlvbnMsIHVudXNlZF9hcmdzKSA9
IHBhcnNlci5wYXJzZV9hcmdzKCkKKworICAgIGxvZ2dpbmcuYmFzaWNDb25maWcobGV2ZWw9bG9n
Z2luZy5nZXRMZXZlbE5hbWUob3B0aW9ucy5sb2dfbGV2ZWwudXBwZXIoKSkpCisKKyAgICBpZiBv
cHRpb25zLmRyYWZ0NzU6CisgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJy0tZHJhZnQ3NSBvcHRp
b24gaXMgb2Jzb2xldGUuJykKKyAgICAgICAgc3lzLmV4aXQoMSkKKworICAgIGlmIG9wdGlvbnMu
cHJvdG9jb2xfdmVyc2lvbiA9PSBfUFJPVE9DT0xfVkVSU0lPTl9ISVhJRTc1OgorICAgICAgICBs
b2dnaW5nLmNyaXRpY2FsKAorICAgICAgICAgICAgJ1ZhbHVlICVzIGlzIG9ic29sZXRlIGZvciAt
LXByb3RvY29sX3ZlcnNpb24gb3B0aW9ucycgJQorICAgICAgICAgICAgX1BST1RPQ09MX1ZFUlNJ
T05fSElYSUU3NSkKKyAgICAgICAgc3lzLmV4aXQoMSkKKworICAgIGlmIG9wdGlvbnMudXNlX3Rs
czoKKyAgICAgICAgaWYgb3B0aW9ucy50bHNfbW9kdWxlIGlzIE5vbmU6CisgICAgICAgICAgICBp
ZiBfaW1wb3J0X3NzbCgpOgorICAgICAgICAgICAgICAgIG9wdGlvbnMudGxzX21vZHVsZSA9IF9U
TFNfQllfU1RBTkRBUkRfTU9EVUxFCisgICAgICAgICAgICAgICAgbG9nZ2luZy5kZWJ1ZygnVXNp
bmcgc3NsIG1vZHVsZScpCisgICAgICAgICAgICBlbGlmIF9pbXBvcnRfcHlvcGVuc3NsKCk6Cisg
ICAgICAgICAgICAgICAgb3B0aW9ucy50bHNfbW9kdWxlID0gX1RMU19CWV9QWU9QRU5TU0wKKyAg
ICAgICAgICAgICAgICBsb2dnaW5nLmRlYnVnKCdVc2luZyBweU9wZW5TU0wgbW9kdWxlJykKKyAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgKKyAgICAg
ICAgICAgICAgICAgICAgICAgICdUTFMgc3VwcG9ydCByZXF1aXJlcyBzc2wgb3IgcHlPcGVuU1NM
IG1vZHVsZS4nKQorICAgICAgICAgICAgICAgIHN5cy5leGl0KDEpCisgICAgICAgIGVsaWYgb3B0
aW9ucy50bHNfbW9kdWxlID09IF9UTFNfQllfU1RBTkRBUkRfTU9EVUxFOgorICAgICAgICAgICAg
aWYgbm90IF9pbXBvcnRfc3NsKCk6CisgICAgICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgn
c3NsIG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlJykKKyAgICAgICAgICAgICAgICBzeXMuZXhpdCgx
KQorICAgICAgICBlbGlmIG9wdGlvbnMudGxzX21vZHVsZSA9PSBfVExTX0JZX1BZT1BFTlNTTDoK
KyAgICAgICAgICAgIGlmIG5vdCBfaW1wb3J0X3B5b3BlbnNzbCgpOgorICAgICAgICAgICAgICAg
IGxvZ2dpbmcuY3JpdGljYWwoJ3B5T3BlblNTTCBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZScpCisg
ICAgICAgICAgICAgICAgc3lzLmV4aXQoMSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGxv
Z2dpbmcuY3JpdGljYWwoJ0ludmFsaWQgLS10bHMtbW9kdWxlIG9wdGlvbjogJXInLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnRsc19tb2R1bGUpCisgICAgICAgICAgICBz
eXMuZXhpdCgxKQorCisgICAgICAgIGlmIChvcHRpb25zLmRpc2FibGVfdGxzX2NvbXByZXNzaW9u
IGFuZAorICAgICAgICAgICAgb3B0aW9ucy50bHNfbW9kdWxlICE9IF9UTFNfQllfUFlPUEVOU1NM
KToKKyAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ1lvdSBjYW4gZGlzYWJsZSBUTFMgY29t
cHJlc3Npb24gb25seSB3aGVuICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3B5T3Bl
blNTTCBtb2R1bGUgaXMgdXNlZC4nKQorICAgICAgICAgICAgc3lzLmV4aXQoMSkKKyAgICBlbHNl
OgorICAgICAgICBpZiBvcHRpb25zLnRsc19tb2R1bGUgaXMgbm90IE5vbmU6CisgICAgICAgICAg
ICBsb2dnaW5nLmNyaXRpY2FsKCdVc2UgLS10bHMtbW9kdWxlIG9wdGlvbiBvbmx5IHRvZ2V0aGVy
IHdpdGggJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS11c2UtdGxzIG9wdGlvbi4n
KQorICAgICAgICAgICAgc3lzLmV4aXQoMSkKKworICAgICAgICBpZiBvcHRpb25zLmRpc2FibGVf
dGxzX2NvbXByZXNzaW9uOgorICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnVXNlIC0tZGlz
YWJsZS10bHMtY29tcHJlc3Npb24gb25seSB0b2dldGhlciAnCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICd3aXRoIC0tdXNlLXRscyBvcHRpb24uJykKKyAgICAgICAgICAgIHN5cy5leGl0
KDEpCisKKyAgICAjIERlZmF1bHQgcG9ydCBudW1iZXIgZGVwZW5kcyBvbiB3aGV0aGVyIFRMUyBp
cyB1c2VkLgorICAgIGlmIG9wdGlvbnMuc2VydmVyX3BvcnQgPT0gX1VOREVGSU5FRF9QT1JUOgor
ICAgICAgICBpZiBvcHRpb25zLnVzZV90bHM6CisgICAgICAgICAgICBvcHRpb25zLnNlcnZlcl9w
b3J0ID0gY29tbW9uLkRFRkFVTFRfV0VCX1NPQ0tFVF9TRUNVUkVfUE9SVAorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgb3B0aW9ucy5zZXJ2ZXJfcG9ydCA9IGNvbW1vbi5ERUZBVUxUX1dFQl9T
T0NLRVRfUE9SVAorCisgICAgIyBvcHRwYXJzZSBkb2Vzbid0IHNlZW0gdG8gaGFuZGxlIG5vbi1h
c2NpaSBkZWZhdWx0IHZhbHVlcy4KKyAgICAjIFNldCBkZWZhdWx0IG1lc3NhZ2UgaGVyZS4KKyAg
ICBpZiBub3Qgb3B0aW9ucy5tZXNzYWdlOgorICAgICAgICBvcHRpb25zLm1lc3NhZ2UgPSB1J0hl
bGxvLFx1NjVlNVx1NjcyYycgICAjICJKYXBhbiIgaW4gSmFwYW5lc2UKKworICAgIEVjaG9DbGll
bnQob3B0aW9ucykucnVuKCkKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIG1h
aW4oKQorCisKKyMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2Vj
aG9fbm9leHRfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9fbm9leHRfd3NoLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjFkZjUxNTEyMjcxMTFlMTE0NDI0YzU1ODZhMTQyYTlhZGI3ZDYwNGQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L2V4YW1wbGUvZWNob19ub2V4dF93c2gucHkKQEAgLTAsMCArMSw2MSBAQAor
IyBDb3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
IyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4K
KyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKKworX0dPT0RCWUVfTUVTU0FHRSA9IHUnR29vZGJ5ZScKKworCitk
ZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6CisgICAgIiIiUmVjZWl2
ZWQgU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRlciB2YWx1ZSBpcyBwYXJzZWQgaW50bwor
ICAgIHJlcXVlc3Qud3NfcmVxdWVzdGVkX2V4dGVuc2lvbnMuIHB5d2Vic29ja2V0IGNyZWF0ZXMg
ZXh0ZW5zaW9uCisgICAgcHJvY2Vzc29ycyB1c2luZyBpdCBiZWZvcmUgZG9fZXh0cmFfaGFuZHNo
YWtlIGNhbGwgYW5kIG5ldmVyIGxvb2tzIGF0IGl0CisgICAgYWZ0ZXIgdGhlIGNhbGwuCisKKyAg
ICBUbyByZWplY3QgcmVxdWVzdGVkIGV4dGVuc2lvbnMsIGNsZWFyIHRoZSBwcm9jZXNzb3IgbGlz
dC4KKyAgICAiIiIKKworICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMgPSBbXQor
CisKK2RlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6CisgICAgIiIiRWNoby4g
U2FtZSBhcyBlY2hvX3dzaC5weS4iIiIKKworICAgIHdoaWxlIFRydWU6CisgICAgICAgIGxpbmUg
PSByZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQorICAgICAgICBpZiBsaW5lIGlz
IE5vbmU6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgaWYgaXNpbnN0YW5jZShsaW5lLCB1
bmljb2RlKToKKyAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShsaW5l
LCBiaW5hcnk9RmFsc2UpCisgICAgICAgICAgICBpZiBsaW5lID09IF9HT09EQllFX01FU1NBR0U6
CisgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXF1
ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UobGluZSwgYmluYXJ5PVRydWUpCisKKworIyB2aTpz
dHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZWNob193c2gucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L2V4YW1wbGUvZWNob193c2gucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzg2NDZjMzJjZWI1MTVmMTVkZDU3MjYy
MjY4OWM3OWVlNjFlNTQzZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9lY2hvX3dz
aC5weQpAQCAtMCwwICsxLDU0IEBACisjIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgorIyBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBt
ZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisj
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCitfR09PREJZRV9NRVNT
QUdFID0gdSdHb29kYnllJworCisKK2RlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShy
ZXF1ZXN0KToKKyAgICAjIFRoaXMgZXhhbXBsZSBoYW5kbGVyIGFjY2VwdHMgYW55IHJlcXVlc3Qu
IFNlZSBvcmlnaW5fY2hlY2tfd3NoLnB5IGZvciBob3cKKyAgICAjIHRvIHJlamVjdCBhY2Nlc3Mg
ZnJvbSB1bnRydXN0ZWQgc2NyaXB0cyBiYXNlZCBvbiBvcmlnaW4gdmFsdWUuCisKKyAgICBwYXNz
ICAjIEFsd2F5cyBhY2NlcHQuCisKKworZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1
ZXN0KToKKyAgICB3aGlsZSBUcnVlOgorICAgICAgICBsaW5lID0gcmVxdWVzdC53c19zdHJlYW0u
cmVjZWl2ZV9tZXNzYWdlKCkKKyAgICAgICAgaWYgbGluZSBpcyBOb25lOgorICAgICAgICAgICAg
cmV0dXJuCisgICAgICAgIGlmIGlzaW5zdGFuY2UobGluZSwgdW5pY29kZSk6CisgICAgICAgICAg
ICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UobGluZSwgYmluYXJ5PUZhbHNlKQorICAg
ICAgICAgICAgaWYgbGluZSA9PSBfR09PREJZRV9NRVNTQUdFOgorICAgICAgICAgICAgICAgIHJl
dHVybgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9t
ZXNzYWdlKGxpbmUsIGJpbmFyeT1UcnVlKQorCisKKyMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9leGFtcGxlL2V2ZW50c291cmNlLmNnaSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9ldmVudHNv
dXJjZS5jZ2kKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYWRkZGYyMzdjZjdkNDc2NDk3MzQ3ZDA5NWExMjI5OTQxNzdl
MTQwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9ldmVudHNvdXJjZS5jZ2kKQEAg
LTAsMCArMSw1NCBAQAorIyEvdXNyL2Jpbi9weXRob24KKworIyBDb3B5cmlnaHQgMjAxMywgR29v
Z2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
IyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKwor
IiIiVGhpcyBDR0kgc2NyaXB0IGdlbmVyYXRlcyB0ZXh0L2V2ZW50LXN0cmVhbSB0eXBlIGRhdGEg
c3RyZWFtIGZvciB0ZXN0aW5nCit0aGUgU2VydmVyLVNlbnQgRXZlbnRzLgorCitJdCB3aWxsIG9u
bHkgd29yayBjb3JyZWN0bHkgd2l0aCBIVFRQIHNlcnZlcnMgdGhhdCBkbyBub3QgYnVmZmVyIHRo
ZSBvdXRwdXQgb2YKK0NHSSBzY3JpcHRzLgorIiIiCisKKworaW1wb3J0IHN5cworaW1wb3J0IHRp
bWUKKworc3lzLnN0ZG91dC53cml0ZSgnQ29udGVudC10eXBlOiB0ZXh0L2V2ZW50LXN0cmVhbVxy
XG5cclxuJykKKworaWQgPSAwCisKK3doaWxlIFRydWU6CisgIHN5cy5zdGRvdXQud3JpdGUoJ2Rh
dGE6IEhlbGxvXHJcbmlkOiAlZFxyXG5cclxuJyAlIGlkKQorICBzeXMuc3Rkb3V0LmZsdXNoKCkK
KworICBpZCA9IGlkICsgMQorCisgIHRpbWUuc2xlZXAoMSkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhh
bXBsZS9ldmVudHNvdXJjZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2V2ZW50c291cmNlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTU5OGE4ODA3ZDFmZmNjZWNmNTg1ZjFiYjY1NmZkMmQ5MDJmY2QzOQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9ldmVudHNvdXJjZS5odG1sCkBAIC0wLDAgKzEsNzQg
QEAKKzwhLS0KK0NvcHlyaWdodCAyMDEzLCBHb29nbGUgSW5jLgorQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKworUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Cittb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCittZXQ6CisKKyAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Citub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCitjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCitpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCitkaXN0cmlidXRpb24uCisgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCitjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQordGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKworVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKK0xJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKK09X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCitEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKK1RIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyhJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKy0tPgorCis8IS0tCitTaW1wbGUgZXhhbXBs
ZSBvZiB0aGUgU2VydmVyLVNlbnQgRXZlbnRzCitodHRwOi8vZGV2LnczLm9yZy9odG1sNS9ldmVu
dHNvdXJjZS8KKworRm9yIGNvbXBhcmlzb24gd2l0aCB0aGUgV2ViU29ja2V0IFByb3RvY29sICYg
QVBJLgorCitSdW4gdGhlIHB5d2Vic29ja2V0IHdpdGggdGhlIC0tY2dpX3BhdGggcGFyYW1ldGVy
LgorLS0+CisKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+U2VydmVyLVNlbnQgRXZlbnRzIEV4YW1w
bGU8L3RpdGxlPgorPHNjcmlwdD4KK3ZhciBldmVudFNvdXJjZSA9IG51bGw7CisKK2Z1bmN0aW9u
IGFkZFRvTG9nKGRhdGEpIHsKKyAgbG9nQm94LnZhbHVlICs9IGRhdGEgKyAnXG4nOworICBsb2dC
b3guc2Nyb2xsVG9wID0gMTAwMDAwMDsKK30KKworZnVuY3Rpb24gaW5pdCgpIHsKKyAgbG9nQm94
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpOworCisgIGV2ZW50U291cmNlICA9IG5l
dyBFdmVudFNvdXJjZSgnL2V2ZW50c291cmNlLmNnaScpOworICBldmVudFNvdXJjZS5vbm9wZW4g
PSBmdW5jdGlvbigpIHsKKyAgICBhZGRUb0xvZygnb25vcGVuIChyZWFkeVN0YXRlID0gJyArIGV2
ZW50U291cmNlLnJlYWR5U3RhdGUgKyAnKScpOworICB9CisgIGV2ZW50U291cmNlLm9ubWVzc2Fn
ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgYWRkVG9Mb2coZXZlbnQuZGF0YSk7CisgIH0KKyAg
ZXZlbnRTb3VyY2Uub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgYWRkVG9Mb2coJ29u
ZXJyb3IgKHJlYWR5U3RhdGUgPSAnICsgZXZlbnRTb3VyY2UucmVhZHlTdGF0ZSArICcpJyk7Cisg
IH0KK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJpbml0KCkiPgorPHRleHRh
cmVhIGlkPSJsb2ciIHJvd3M9IjEwIiBjb2xzPSI0MCIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KKzxw
IHN0eWxlPSJmb250LXNpemU6IHNtYWxsIj4KKyAgTWFrZSBzdXJlIHRoYXQgcHl3ZWJzb2NrZXQg
aXMgcnVuIHdpdGggLS1jZ2lfcGF0aCBwYXJhbWV0ZXIuCis8L3A+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZmV0Y2hfYmVuY2htYXJrLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4
YW1wbGUvZmV0Y2hfYmVuY2htYXJrLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjEwNWViNjdhNTUzMmI3NmJj
OTdiZjgzMTA4YTE5ZTA0M2U1NGYzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9m
ZXRjaF9iZW5jaG1hcmsuaHRtbApAQCAtMCwwICsxLDE2MyBAQAorPCEtLQorQ29weXJpZ2h0IDIw
MTUgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKworVXNlIG9mIHRoaXMgc291cmNl
IGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUKK2xpY2Vuc2UgdGhhdCBjYW4gYmUgZm91
bmQgaW4gdGhlIENPUFlJTkcgZmlsZSBvciBhdAoraHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5j
b20vb3Blbi1zb3VyY2UvbGljZW5zZXMvYnNkCistLT4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+
RmV0Y2ggQVBJIGJlbmNobWFyazwvdGl0bGU+Cis8c2NyaXB0IHNyYz0idXRpbF9tYWluLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJ1dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJm
ZXRjaF9iZW5jaG1hcmsuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3ZhciBhZGRyZXNzQm94ID0g
bnVsbDsKKworZnVuY3Rpb24gZ2V0Q29uZmlnKCkgeworICByZXR1cm4geworICAgIHByZWZpeFVy
bDogYWRkcmVzc0JveC52YWx1ZSwKKyAgICBwcmludFNpemU6IGdldEJvb2xGcm9tQ2hlY2tCb3go
J3ByaW50c2l6ZScpLAorICAgIG51bUZldGNoZXM6IGdldEludEZyb21JbnB1dCgnbnVtRmV0Y2hl
cycpLAorICAgIC8vIEluaXRpYWwgc2l6ZSBvZiBtZXNzYWdlcy4KKyAgICBudW1JdGVyYXRpb25z
OiBnZXRJbnRGcm9tSW5wdXQoJ251bWl0ZXJhdGlvbnMnKSwKKyAgICBudW1XYXJtVXBJdGVyYXRp
b25zOiBnZXRJbnRGcm9tSW5wdXQoJ251bXdhcm11cGl0ZXJhdGlvbnMnKSwKKyAgICBzdGFydFNp
emU6IGdldEludEZyb21JbnB1dCgnc3RhcnRzaXplJyksCisgICAgLy8gU3RvcHMgYmVuY2htYXJr
IHdoZW4gdGhlIHNpemUgb2YgbWVzc2FnZSBleGNlZWRzIHRoaXMgdGhyZXNob2xkLgorICAgIHN0
b3BUaHJlc2hvbGQ6IGdldEludEZyb21JbnB1dCgnc3RvcHRocmVzaG9sZCcpLAorICAgIG11bHRp
cGxpZXJzOiBnZXRGbG9hdEFycmF5RnJvbUlucHV0KCdtdWx0aXBsaWVycycpLAorICAgIHZlcmlm
eURhdGE6IGdldEJvb2xGcm9tQ2hlY2tCb3goJ3ZlcmlmeWRhdGEnKSwKKyAgICBhZGRUb0xvZzog
YWRkVG9Mb2csCisgICAgYWRkVG9TdW1tYXJ5OiBhZGRUb1N1bW1hcnksCisgICAgbWVhc3VyZVZh
bHVlOiBtZWFzdXJlVmFsdWUsCisgICAgbm90aWZ5QWJvcnQ6IG5vdGlmeUFib3J0CisgIH07Cit9
CisKK2Z1bmN0aW9uIG9uU2VuZEJlbmNobWFyaygpIHsKKyAgdmFyIGNvbmZpZyA9IGdldENvbmZp
ZygpOworICBjb25maWcuZGF0YVR5cGUgPSBnZXRTdHJpbmdGcm9tUmFkaW9Cb3goJ2RhdGF0eXBl
cmFkaW8nKTsKKyAgZG9BY3Rpb24oY29uZmlnLCBnZXRCb29sRnJvbUNoZWNrQm94KCd3b3JrZXIn
KSwgJ3NlbmRCZW5jaG1hcmsnKTsKK30KKworZnVuY3Rpb24gb25SZWNlaXZlQmVuY2htYXJrKCkg
eworICB2YXIgY29uZmlnID0gZ2V0Q29uZmlnKCk7CisgIGNvbmZpZy5kYXRhVHlwZSA9IGdldFN0
cmluZ0Zyb21SYWRpb0JveCgnZGF0YXR5cGVyYWRpbycpOworICBkb0FjdGlvbihjb25maWcsIGdl
dEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicpLCAncmVjZWl2ZUJlbmNobWFyaycpOworfQorCitm
dW5jdGlvbiBvbkJhdGNoQmVuY2htYXJrKCkgeworICB2YXIgY29uZmlnID0gZ2V0Q29uZmlnKCk7
CisgIGRvQWN0aW9uKGNvbmZpZywgZ2V0Qm9vbEZyb21DaGVja0JveCgnd29ya2VyJyksICdiYXRj
aEJlbmNobWFyaycpOworfQorCitmdW5jdGlvbiBvblN0b3AoKSB7CisgIHZhciBjb25maWcgPSBn
ZXRDb25maWcoKTsKKyAgZG9BY3Rpb24oY29uZmlnLCBnZXRCb29sRnJvbUNoZWNrQm94KCd3b3Jr
ZXInKSwgJ3N0b3AnKTsKK30KKworZnVuY3Rpb24gaW5pdCgpIHsKKyAgYWRkcmVzc0JveCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGRyZXNzJyk7CisgIGxvZ0JveCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdsb2cnKTsKKworICBzdW1tYXJ5Qm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3N1bW1hcnknKTsKKworICAvLyBTcGVjaWFsIGFkZHJlc3Mgb2YgcHl3ZWJzb2NrZXQg
Zm9yIFhIUi9GZXRjaCBBUEkgYmVuY2htYXJrLgorICBhZGRyZXNzQm94LnZhbHVlID0gJy8wNzNi
ZTAwMWUxMDk1MDY5MmNjYmYzYTJhZDIxYzI0NSc7CisKKyAgYWRkVG9Mb2cod2luZG93Lm5hdmln
YXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSk7CisgIGFkZFRvU3VtbWFyeSh3aW5kb3cubmF2
aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKTsKKworICBpbml0V29ya2VyKCdmZXRjaCcs
ICcnKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJpbml0KCkiPgorCis8
Zm9ybSBpZD0iYmVuY2htYXJrX2Zvcm0iPgorICB1cmwgcHJlZml4IDxpbnB1dCB0eXBlPSJ0ZXh0
IiBpZD0iYWRkcmVzcyIgc2l6ZT0iNDAiPgorICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0i
c2VuZCIgb25jbGljaz0ib25TZW5kQmVuY2htYXJrKCkiPgorICA8aW5wdXQgdHlwZT0iYnV0dG9u
IiB2YWx1ZT0icmVjZWl2ZSIgb25jbGljaz0ib25SZWNlaXZlQmVuY2htYXJrKCkiPgorICA8aW5w
dXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iYmF0Y2giIG9uY2xpY2s9Im9uQmF0Y2hCZW5jaG1hcmso
KSI+CisgIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJzdG9wIiBvbmNsaWNrPSJvblN0b3Ao
KSI+CisKKyAgPGJyLz4KKworICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJwcmludHNpemUi
IGNoZWNrZWQ+CisgIDxsYWJlbCBmb3I9InByaW50c2l6ZSI+UHJpbnQgc2l6ZSBhbmQgdGltZSBw
ZXIgbWVzc2FnZTwvbGFiZWw+CisgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9InZlcmlmeWRh
dGEiIGNoZWNrZWQ+CisgIDxsYWJlbCBmb3I9InZlcmlmeWRhdGEiPlZlcmlmeSBkYXRhPC9sYWJl
bD4KKyAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0id29ya2VyIj4KKyAgPGxhYmVsIGZvcj0i
d29ya2VyIj5SdW4gb24gd29ya2VyPC9sYWJlbD4KKworICA8YnIvPgorCisgIFBhcmFtZXRlcnM6
CisKKyAgPGJyLz4KKworICA8dGFibGU+CisgICAgPHRyPgorICAgICAgPHRkPk51bWJlciBvZiBm
ZXRjaCgpIHJlcXVlc3RzPC90ZD4KKyAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im51
bUZldGNoZXMiIHZhbHVlPSIxIj48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRk
Pk51bWJlciBvZiBpdGVyYXRpb25zPC90ZD4KKyAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIg
aWQ9Im51bWl0ZXJhdGlvbnMiIHZhbHVlPSIxIj48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgor
ICAgICAgPHRkPk51bWJlciBvZiB3YXJtLXVwIGl0ZXJhdGlvbnM8L3RkPgorICAgICAgPHRkPjxp
bnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibnVtd2FybXVwaXRlcmF0aW9ucyIgdmFsdWU9IjAiPjwvdGQ+
CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+U3RhcnQgc2l6ZTwvdGQ+CisgICAgICA8
dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJzdGFydHNpemUiIHZhbHVlPSIxMDI0MCI+PC90ZD4K
KyAgICA8L3RyPgorICAgIDx0cj4KKyAgICAgIDx0ZD5TdG9wIHRocmVzaG9sZDwvdGQ+CisgICAg
ICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJzdG9wdGhyZXNob2xkIiB2YWx1ZT0iMTAyNDAw
MDAwIj48L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRkPk11bHRpcGxpZXJzPC90
ZD4KKyAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9Im11bHRpcGxpZXJzIiB2YWx1ZT0i
NSwgMiI+PC90ZD4KKyAgICA8L3RyPgorICA8L3RhYmxlPgorCisgIFNldCBkYXRhIHR5cGUKKyAg
PGlucHV0IHR5cGU9InJhZGlvIgorICAgICAgICAgbmFtZT0iZGF0YXR5cGVyYWRpbyIKKyAgICAg
ICAgIGlkPSJkYXRhdHlwZXJhZGlvdGV4dCIKKyAgICAgICAgIHZhbHVlPSJ0ZXh0IgorICAgICAg
ICAgY2hlY2tlZD48bGFiZWwgZm9yPSJkYXRhdHlwZXJhZGlvdGV4dCI+dGV4dDwvbGFiZWw+Cisg
IDxpbnB1dCB0eXBlPSJyYWRpbyIKKyAgICAgICAgIG5hbWU9ImRhdGF0eXBlcmFkaW8iCisgICAg
ICAgICBpZD0iZGF0YXR5cGVyYWRpb2Jsb2IiCisgICAgICAgICB2YWx1ZT0iYmxvYiIKKyAgICAg
ICAgID48bGFiZWwgZm9yPSJkYXRhdHlwZXJhZGlvYmxvYiI+YmxvYjwvbGFiZWw+CisgIDxpbnB1
dCB0eXBlPSJyYWRpbyIKKyAgICAgICAgIG5hbWU9ImRhdGF0eXBlcmFkaW8iCisgICAgICAgICBp
ZD0iZGF0YXR5cGVyYWRpb2FycmF5YnVmZmVyIgorICAgICAgICAgdmFsdWU9ImFycmF5YnVmZmVy
IgorICAgICAgICAgPjxsYWJlbCBmb3I9ImRhdGF0eXBlcmFkaW9hcnJheWJ1ZmZlciI+YXJyYXli
dWZmZXI8L2xhYmVsPgorPC9mb3JtPgorCis8ZGl2IGlkPSJsb2dfZGl2Ij4KKyAgPHRleHRhcmVh
CisgICAgICBpZD0ibG9nIiByb3dzPSIyMCIgc3R5bGU9IndpZHRoOiAxMDAlIiByZWFkb25seT48
L3RleHRhcmVhPgorPC9kaXY+Cis8ZGl2IGlkPSJzdW1tYXJ5X2RpdiI+CisgIFN1bW1hcnkKKyAg
PHRleHRhcmVhCisgICAgICBpZD0ic3VtbWFyeSIgcm93cz0iMjAiIHN0eWxlPSJ3aWR0aDogMTAw
JSIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KKzwvZGl2PgorCis8ZGl2IGlkPSJub3RlX2RpdiI+Cisg
IE5vdGU6CisgIDx1bD4KKyAgICA8bGk+RWZmZWN0IG9mIFJUVCBhbmQgdGltZSBzcGVudCBmb3Ig
QXJyYXlCdWZmZXIgY3JlYXRpb24gaW4gcmVjZWl2ZSBiZW5jaG1hcmtzIGFyZSBub3QgZWxpbWlu
YXRlZC48L2xpPgorICAgIDxsaT5UaGUgU3RkZGV2IGNvbHVtbiBzaG93cyBOYU4gd2hlbiB0aGUg
bnVtYmVyIG9mIGl0ZXJhdGlvbnMgaXMgc2V0IHRvIDEuPC9saT4KKyAgPC91bD4KKzwvZGl2Pgor
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZmV0Y2hfYmVuY2ht
YXJrLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9leGFtcGxlL2ZldGNoX2JlbmNobWFyay5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMzk1
MjE5MGE4ZTA3MzllM2EwZjJhNDhjYjgzZGJlOWIzMDE1Mzk2Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9leGFtcGxlL2ZldGNoX2JlbmNobWFyay5qcwpAQCAtMCwwICsxLDIyNSBAQAorLy8gQ29w
eXJpZ2h0IDIwMTUgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBVc2Ug
b2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZQorLy8gbGljZW5z
ZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgQ09QWUlORyBmaWxlIG9yIGF0CisvLyBodHRwczov
L2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9vcGVuLXNvdXJjZS9saWNlbnNlcy9ic2QKKwordmFyIGlz
V29ya2VyID0gdHlwZW9mIGltcG9ydFNjcmlwdHMgIT09ICJ1bmRlZmluZWQiOworCitpZiAoaXNX
b3JrZXIpIHsKKyAgLy8gUnVubmluZyBvbiBhIHdvcmtlcgorICBpbXBvcnRTY3JpcHRzKCd1dGls
LmpzJywgJ3V0aWxfd29ya2VyLmpzJyk7Cit9CisKKy8vIE5hbWVzcGFjZSBmb3IgaG9sZGluZyBn
bG9iYWxzLgordmFyIGJlbmNobWFyayA9IHt9OworYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPSAw
OworCit2YXIgdGltZXJJRCA9IG51bGw7CisKK2Z1bmN0aW9uIHNlbmRCZW5jaG1hcmtTdGVwKHNp
emUsIGNvbmZpZywgaXNXYXJtVXApIHsKKyAgdGltZXJJRCA9IG51bGw7CisgIGJlbmNobWFyay5z
dGFydFRpbWVJbk1zID0gbnVsbDsKKworICAvLyBQcmVwYXJlIGRhdGEuCisgIHZhciBkYXRhQXJy
YXkgPSBbXTsKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb25maWcubnVtRmV0Y2hlczsgKytpKSB7
CisgICAgdmFyIGRhdGEgPSBudWxsOworICAgIGlmIChjb25maWcuZGF0YVR5cGUgPT0gJ2FycmF5
YnVmZmVyJyB8fAorICAgICAgICBjb25maWcuZGF0YVR5cGUgPT0gJ2Jsb2InKSB7CisgICAgICBk
YXRhID0gbmV3IEFycmF5QnVmZmVyKHNpemUpOworCisgICAgICBmaWxsQXJyYXlCdWZmZXIoZGF0
YSwgMHg2MSk7CisKKyAgICAgIGlmIChjb25maWcuZGF0YVR5cGUgPT0gJ2Jsb2InKSB7CisgICAg
ICAgIGRhdGEgPSBuZXcgQmxvYihbZGF0YV0pOworICAgICAgfQorICAgIH0gZWxzZSB7CisgICAg
ICBkYXRhID0gcmVwZWF0U3RyaW5nKCdhJywgc2l6ZSk7CisgICAgfQorCisgICAgZGF0YUFycmF5
LnB1c2goZGF0YSk7CisgIH0KKworICAvLyBTdGFydCB0aW1lIG1lYXN1cmluZy4KKyAgYmVuY2ht
YXJrLnN0YXJ0VGltZUluTXMgPSBnZXRUaW1lU3RhbXAoKTsKKworICAvLyBTdGFydCBmZXRjaC4K
KyAgdmFyIHByb21pc2VzID0gW107CisgIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLm51bUZl
dGNoZXM7ICsraSkgeworICAgIHZhciBkYXRhID0gZGF0YUFycmF5W2ldOworICAgIHZhciBwcm9t
aXNlID0gZmV0Y2goY29uZmlnLnByZWZpeFVybCArICdfc2VuZCcsCisgICAgICAgICAgICAgICAg
ICAgICAgICB7bWV0aG9kOiAnUE9TVCcsIGJvZHk6IGRhdGF9KQorICAgICAgICAudGhlbihmdW5j
dGlvbiAocmVzcG9uc2UpIHsKKyAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9IDIwMCkg
eworICAgICAgICAgICAgY29uZmlnLmFkZFRvTG9nKCdGYWlsZWQgKHN0YXR1cz0nICsgcmVzcG9u
c2Uuc3RhdHVzICsgJyknKTsKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgpOwor
ICAgICAgICAgIH0KKyAgICAgICAgICAvLyBDaGVjayBhbmQgd2FybiBpZiBwcm94eSBpcyBlbmFi
bGVkLgorICAgICAgICAgIGlmIChyZXNwb25zZS5oZWFkZXJzLmdldCgnVmlhJykgIT09IG51bGwp
IHsKKyAgICAgICAgICAgIGNvbmZpZy5hZGRUb0xvZygnV0FSTklORzogcHJveHkgc2VlbXMgZW5h
YmxlZC4nKTsKKyAgICAgICAgICB9CisgICAgICAgICAgaWYgKGNvbmZpZy52ZXJpZnlEYXRhKSB7
CisgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpCisgICAgICAgICAgICAgICAgLnRo
ZW4oZnVuY3Rpb24odGV4dCkgeworICAgICAgICAgICAgICAgICAgaWYgKCF2ZXJpZnlBY2tub3ds
ZWRnZW1lbnQoY29uZmlnLCB0ZXh0LCBzaXplKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1
cm4gUHJvbWlzZS5yZWplY3QoKTsKKyAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIHByb21pc2VzLnB1c2gocHJvbWlz
ZSk7CisgIH0KKworICAvLyBGaW5pc2ggYW5kIHJlcG9ydCB0aW1lIG1lYXN1cmluZy4KKyAgUHJv
bWlzZS5hbGwocHJvbWlzZXMpCisgICAgICAudGhlbihmdW5jdGlvbigpIHsKKyAgICAgICAgaWYg
KGJlbmNobWFyay5zdGFydFRpbWVJbk1zID09IG51bGwpIHsKKyAgICAgICAgICBjb25maWcuYWRk
VG9Mb2coJ3N0YXJ0VGltZUluTXMgbm90IHNldCcpOworICAgICAgICAgIHJldHVybiBQcm9taXNl
LnJlamVjdCgpOworICAgICAgICB9CisgICAgICAgIGNhbGN1bGF0ZUFuZExvZ1Jlc3VsdChjb25m
aWcsIHNpemUsIGJlbmNobWFyay5zdGFydFRpbWVJbk1zLAorICAgICAgICAgIHNpemUgKiBjb25m
aWcubnVtRmV0Y2hlcywgaXNXYXJtVXApOworICAgICAgICBydW5OZXh0VGFzayhjb25maWcpOwor
ICAgICAgfSkKKyAgICAgIC5jYXRjaChmdW5jdGlvbihlKSB7CisgICAgICAgIGNvbmZpZy5hZGRU
b0xvZygiRVJST1I6ICIgKyBlKTsKKyAgICAgICAgY29uZmlnLm5vdGlmeUFib3J0KCk7CisgICAg
ICB9KTsKK30KKworZnVuY3Rpb24gcmVjZWl2ZUJlbmNobWFya1N0ZXAoc2l6ZSwgY29uZmlnLCBp
c1dhcm1VcCkgeworICB0aW1lcklEID0gbnVsbDsKKyAgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMg
PSBudWxsOworCisgIC8vIFN0YXJ0IHRpbWUgbWVhc3VyaW5nLgorICBiZW5jaG1hcmsuc3RhcnRU
aW1lSW5NcyA9IGdldFRpbWVTdGFtcCgpOworCisgIC8vIFN0YXJ0IGZldGNoLgorICB2YXIgcHJv
bWlzZXMgPSBbXTsKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb25maWcubnVtRmV0Y2hlczsgKytp
KSB7CisgICAgdmFyIHJlcXVlc3Q7CisgICAgaWYgKGNvbmZpZy5tZXRob2RBbmRDYWNoZSA9PT0g
J0dFVC1OT0NBQ0hFJykgeworICAgICAgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGNvbmZpZy5wcmVm
aXhVcmwgKyAnX3JlY2VpdmVfZ2V0bm9jYWNoZT8nICsgc2l6ZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7bWV0aG9kOiAnR0VUJ30pOworICAgIH0gZWxzZSBpZiAoY29uZmlnLm1ldGhv
ZEFuZENhY2hlID09PSAnR0VULUNBQ0hFJykgeworICAgICAgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0
KGNvbmZpZy5wcmVmaXhVcmwgKyAnX3JlY2VpdmVfZ2V0Y2FjaGU/JyArIHNpemUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAge21ldGhvZDogJ0dFVCd9KTsKKyAgICB9IGVsc2UgeworICAg
ICAgcmVxdWVzdCA9IG5ldyBSZXF1ZXN0KGNvbmZpZy5wcmVmaXhVcmwgKyAnX3JlY2VpdmUnLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttZXRob2Q6ICdQT1NUJywgYm9keTogc2l6ZSAr
ICcgbm9uZSd9KTsKKyAgICB9CisgICAgdmFyIHByb21pc2UgPSBmZXRjaChyZXF1ZXN0KQorICAg
ICAgICAudGhlbihmdW5jdGlvbihyZXNwb25zZSkgeworICAgICAgICAgIGlmIChyZXNwb25zZS5z
dGF0dXMgIT0gMjAwKSB7CisgICAgICAgICAgICBjb25maWcuYWRkVG9Mb2coJ0ZhaWxlZCAoc3Rh
dHVzPScgKyB0aGlzLnN0YXR1cyArICcpJyk7CisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5y
ZWplY3QoKTsKKyAgICAgICAgICB9CisgICAgICAgICAgLy8gQ2hlY2sgYW5kIHdhcm4gaWYgcHJv
eHkgaXMgZW5hYmxlZC4KKyAgICAgICAgICBpZiAocmVzcG9uc2UuaGVhZGVycy5nZXQoJ1ZpYScp
ICE9PSBudWxsKSB7CisgICAgICAgICAgICBjb25maWcuYWRkVG9Mb2coJ1dBUk5JTkc6IHByb3h5
IHNlZW1zIGVuYWJsZWQuJyk7CisgICAgICAgICAgfQorICAgICAgICAgIGlmIChjb25maWcuZGF0
YVR5cGUgPT09ICdhcnJheWJ1ZmZlcicpIHsKKyAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5h
cnJheUJ1ZmZlcigpCisgICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24oYXJyYXlCdWZmZXIp
IHsKKyAgICAgICAgICAgICAgICAgIHJldHVybiBbYXJyYXlCdWZmZXIuYnl0ZUxlbmd0aCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgKCFjb25maWcudmVyaWZ5RGF0YSB8fAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdmVyaWZ5QXJyYXlCdWZmZXIoYXJyYXlCdWZmZXIsIDB4NjEpKV07
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgfSBlbHNlIGlmIChjb25maWcuZGF0YVR5
cGUgPT0gJ2Jsb2InKSB7CisgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuYmxvYigpCisgICAg
ICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24oYmxvYikgeworICAgICAgICAgICAgICAgICAgcmV0
dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAg
ICAgICAgICAgIGlmIChjb25maWcudmVyaWZ5RGF0YSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgdmVyaWZ5QmxvYihjb25maWcsIGJsb2IsIDB4NjEsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZnVuY3Rpb24ocmVjZWl2ZWRTaXplLCB2ZXJpZmljYXRpb25SZXN1bHQpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoW3JlY2VpdmVkU2l6ZSwgdmVyaWZpY2F0
aW9uUmVzdWx0XSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoW2Js
b2Iuc2l6ZSwgdHJ1ZV0pOworICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCkKKyAgICAgICAgICAgICAgICAudGhlbihmdW5j
dGlvbih0ZXh0KSB7CisgICAgICAgICAgICAgICAgICByZXR1cm4gW3RleHQubGVuZ3RoLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAoIWNvbmZpZy52ZXJpZnlEYXRhIHx8CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXh0ID09IHJlcGVhdFN0cmluZygnYScsIHRleHQubGVuZ3RoKSld
OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgIH0KKyAgICAgICAgfSkKKyAgICAgICAg
LnRoZW4oZnVuY3Rpb24ocmVjZWl2ZWRTaXplQW5kVmVyaWZpY2F0aW9uUmVzdWx0KSB7CisgICAg
ICAgICAgdmFyIHJlY2VpdmVkU2l6ZSA9IHJlY2VpdmVkU2l6ZUFuZFZlcmlmaWNhdGlvblJlc3Vs
dFswXTsKKyAgICAgICAgICB2YXIgdmVyaWZpY2F0aW9uUmVzdWx0ID0gcmVjZWl2ZWRTaXplQW5k
VmVyaWZpY2F0aW9uUmVzdWx0WzFdOworICAgICAgICAgIGlmIChyZWNlaXZlZFNpemUgIT09IHNp
emUpIHsKKyAgICAgICAgICAgIGNvbmZpZy5hZGRUb0xvZygnRXhwZWN0ZWQgJyArIHNpemUgKwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdCIGJ1dCByZWNlaXZlZCAnICsgcmVjZWl2ZWRT
aXplICsgJ0InKTsKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgpOworICAgICAg
ICAgIH0KKyAgICAgICAgICBpZiAoIXZlcmlmaWNhdGlvblJlc3VsdCkgeworICAgICAgICAgICAg
Y29uZmlnLmFkZFRvTG9nKCdSZXNwb25zZSB2ZXJpZmljYXRpb24gZmFpbGVkJyk7CisgICAgICAg
ICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoKTsKKyAgICAgICAgICB9CisgICAgICAgIH0pOwor
ICAgIHByb21pc2VzLnB1c2gocHJvbWlzZSk7CisgIH0KKworICAvLyBGaW5pc2ggYW5kIHJlcG9y
dCB0aW1lIG1lYXN1cmluZy4KKyAgUHJvbWlzZS5hbGwocHJvbWlzZXMpCisgICAgICAudGhlbihm
dW5jdGlvbigpIHsKKyAgICAgICAgaWYgKGJlbmNobWFyay5zdGFydFRpbWVJbk1zID09IG51bGwp
IHsKKyAgICAgICAgICBjb25maWcuYWRkVG9Mb2coJ3N0YXJ0VGltZUluTXMgbm90IHNldCcpOwor
ICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCgpOworICAgICAgICB9CisgICAgICAgIGNh
bGN1bGF0ZUFuZExvZ1Jlc3VsdChjb25maWcsIHNpemUsIGJlbmNobWFyay5zdGFydFRpbWVJbk1z
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSAqIGNvbmZpZy5udW1GZXRjaGVz
LCBpc1dhcm1VcCk7CisgICAgICAgIHJ1bk5leHRUYXNrKGNvbmZpZyk7CisgICAgICB9KQorICAg
ICAgLmNhdGNoKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgY29uZmlnLmFkZFRvTG9nKCJFUlJPUjog
IiArIGUpOworICAgICAgICBjb25maWcubm90aWZ5QWJvcnQoKTsKKyAgICAgIH0pOworfQorCisK
K2Z1bmN0aW9uIGdldENvbmZpZ1N0cmluZyhjb25maWcpIHsKKyAgcmV0dXJuICcoJyArIGNvbmZp
Zy5kYXRhVHlwZSArCisgICAgJywgdmVyaWZ5RGF0YT0nICsgY29uZmlnLnZlcmlmeURhdGEgKwor
ICAgICcsICcgKyAoaXNXb3JrZXIgPyAnV29ya2VyJyA6ICdNYWluJykgKworICAgICcsIG51bUZl
dGNoZXM9JyArIGNvbmZpZy5udW1GZXRjaGVzICsKKyAgICAnLCBudW1JdGVyYXRpb25zPScgKyBj
b25maWcubnVtSXRlcmF0aW9ucyArCisgICAgJywgbnVtV2FybVVwSXRlcmF0aW9ucz0nICsgY29u
ZmlnLm51bVdhcm1VcEl0ZXJhdGlvbnMgKworICAgICcpJzsKK30KKworZnVuY3Rpb24gc3RhcnRC
ZW5jaG1hcmsoY29uZmlnKSB7CisgIGNsZWFyVGltZW91dCh0aW1lcklEKTsKKworICBydW5OZXh0
VGFzayhjb25maWcpOworfQorCitmdW5jdGlvbiBiYXRjaEJlbmNobWFyayhvcmlnaW5hbENvbmZp
ZykgeworICBvcmlnaW5hbENvbmZpZy5hZGRUb0xvZygnQmF0Y2ggYmVuY2htYXJrJyk7CisKKyAg
dGFza3MgPSBbXTsKKyAgY2xlYXJBdmVyYWdlRGF0YSgpOworCisgIHZhciBkYXRhVHlwZXMgPSBb
J3RleHQnLCAnYmxvYicsICdhcnJheWJ1ZmZlciddOworICB2YXIgc3RlcEZ1bmNzID0gW3NlbmRC
ZW5jaG1hcmtTdGVwLCByZWNlaXZlQmVuY2htYXJrU3RlcF07CisgIHZhciBuYW1lcyA9IFsnU2Vu
ZCcsICdSZWNlaXZlJ107CisgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RlcEZ1bmNzLmxlbmd0aDsg
KytpKSB7CisgICAgZm9yICh2YXIgaiA9IDA7IGogPCBkYXRhVHlwZXMubGVuZ3RoOyArK2opIHsK
KyAgICAgIHZhciBjb25maWcgPSBjbG9uZUNvbmZpZyhvcmlnaW5hbENvbmZpZyk7CisgICAgICBj
b25maWcuZGF0YVR5cGUgPSBkYXRhVHlwZXNbal07CisgICAgICBhZGRUYXNrcyhjb25maWcsIHN0
ZXBGdW5jc1tpXSk7CisgICAgICBhZGRSZXN1bHRSZXBvcnRpbmdUYXNrKGNvbmZpZywKKyAgICAg
ICAgICBuYW1lc1tpXSArICcgYmVuY2htYXJrICcgKyBnZXRDb25maWdTdHJpbmcoY29uZmlnKSk7
CisgICAgfQorICB9CisKKyAgc3RhcnRCZW5jaG1hcmsoY29uZmlnKTsKK30KKworZnVuY3Rpb24g
Y2xlYW51cCgpIHsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9mZXRjaF9wZXJmb3JtYW5j
ZV90ZXN0X2lmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2ZldGNoX3BlcmZvcm1hbmNlX3Rlc3Rf
aWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTEyZGYyZTdkZjRkM2VhNjJkYzJhMGJkNWU4MWJlOGJm
NWI1ZGJjOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9mZXRjaF9wZXJmb3JtYW5j
ZV90ZXN0X2lmcmFtZS5odG1sCkBAIC0wLDAgKzEsNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSJ1dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJwZXJmb3Jt
YW5jZV90ZXN0X2lmcmFtZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iZmV0Y2hfYmVuY2ht
YXJrLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9oYW5k
bGVyX21hcC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvaGFuZGxlcl9tYXAudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIx
YzRjMDlhYTAwOTFkOGJhZjI5MDg5NTk5MDU4Njc4NDJhZWI4NjUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L2V4YW1wbGUvaGFuZGxlcl9tYXAudHh0CkBAIC0wLDAgKzEsMTEgQEAKKyMgd2Vic29j
a2V0IGhhbmRsZXIgbWFwIGZpbGUsIHVzZWQgYnkgc3RhbmRhbG9uZS5weSAtbSBvcHRpb24uCisj
IEEgbGluZSBzdGFydGluZyB3aXRoICcjJyBpcyBhIGNvbW1lbnQgbGluZS4KKyMgRWFjaCBsaW5l
IGNvbnNpc3RzIG9mICdhbGlhc19yZXNvdXJjZV9wYXRoJyBhbmQgJ2V4aXN0aW5nX3Jlc291cmNl
X3BhdGgnCisjIHNlcGFyYXRlZCBieSBzcGFjZXMuCisjIEFsaWFzaW5nIGlzIHByb2Nlc3NlZCBm
cm9tIHRoZSB0b3AgdG8gdGhlIGJvdHRvbSBvZiB0aGUgbGluZSwgYW5kCisjICdleGlzdGluZ19y
ZXNvdXJjZV9wYXRoJyBtdXN0IGV4aXN0IGJlZm9yZSBpdCBpcyBhbGlhc2VkLgorIyBGb3IgZXhh
bXBsZSwKKyMgIC8gL2VjaG8KKyMgbWVhbnMgdGhhdCBhIHJlcXVlc3QgdG8gJy8nIHdpbGwgYmUg
aGFuZGxlZCBieSBoYW5kbGVycyBmb3IgJy9lY2hvJy4KKy8gL2VjaG8KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9leGFtcGxlL2hzdHNfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2hzdHNfd3NoLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmU4NjE5NDY5MjFhZjA0NTk0ZDYyMDI2YjQ2ZjA3NzU4ZGRmZTQwMmEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvaHN0c193c2gucHkKQEAgLTAsMCArMSw0MCBAQAorIyBD
b3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMg
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisj
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKKworZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVl
c3QpOgorICAgIHJlcXVlc3QuZXh0cmFfaGVhZGVycy5hcHBlbmQoCisgICAgICAgICgnU3RyaWN0
LVRyYW5zcG9ydC1TZWN1cml0eScsICdtYXgtYWdlPTg2NDAwJykpCisKKworZGVmIHdlYl9zb2Nr
ZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKKyAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21l
c3NhZ2UoJ0hlbGxvJywgYmluYXJ5PUZhbHNlKQorCisKKyMgdmk6c3RzPTQgc3c9NCBldApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9leGFtcGxlL2ludGVybmFsX2Vycm9yX3dzaC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBs
ZS9pbnRlcm5hbF9lcnJvcl93c2gucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmU1ODFiNTRhNjQ4YzA5YTIyZjI1
NDUxMjdkNzBkZjA1MTM0OTIzNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9pbnRl
cm5hbF9lcnJvcl93c2gucHkKQEAgLTAsMCArMSw0MiBAQAorIyBDb3B5cmlnaHQgMjAxMiwgR29v
Z2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
IyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKwor
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IG1zZ3V0aWwKKworCitkZWYgd2ViX3NvY2tldF9k
b19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6CisgICAgcGFzcworCisKK2RlZiB3ZWJfc29ja2V0
X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6CisgICAgcmFpc2UgbXNndXRpbC5CYWRPcGVyYXRpb25F
eGNlcHRpb24oJ0ludGVudGlvbmFsJykKKworCisjIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvZXhhbXBsZS9vcmlnaW5fY2hlY2tfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL29yaWdp
bl9jaGVja193c2gucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTA1NzY3YWI5MzJmYjU4MjgyNGFhZjFhNTdkOTI0
OWMzMDRiZDUxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9vcmlnaW5fY2hlY2tf
d3NoLnB5CkBAIC0wLDAgKzEsNDQgQEAKKyMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCisj
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisj
IG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIFRoaXMgZXhhbXBs
ZSBpcyBkZXJpdmVkIGZyb20gdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9vcmlnaW5fY2hlY2tfd3No
LnB5LgorCisKK2RlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKKyAg
ICBpZiByZXF1ZXN0LndzX29yaWdpbiA9PSAnaHR0cDovL2V4YW1wbGUuY29tJzoKKyAgICAgICAg
cmV0dXJuCisgICAgcmFpc2UgVmFsdWVFcnJvcignVW5hY2NlcHRhYmxlIG9yaWdpbjogJXInICUg
cmVxdWVzdC53c19vcmlnaW4pCisKKworZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1
ZXN0KToKKyAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUoJ29yaWdpbl9jaGVja193c2gucHkg
aXMgY2FsbGVkIGZvciAlcywgJXMnICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJl
cXVlc3Qud3NfcmVzb3VyY2UsIHJlcXVlc3Qud3NfcHJvdG9jb2wpKQorCisKKyMgdmk6c3RzPTQg
c3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3BlcmZvcm1hbmNlX3Rlc3RfaWZyYW1l
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L2V4YW1wbGUvcGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43OGFlZGU5N2ExNDMwNDI4NTRlNTU1NzI4OTM3MjI4ZmVhYzdiZWIwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9leGFtcGxlL3BlcmZvcm1hbmNlX3Rlc3RfaWZyYW1lLmh0bWwKQEAgLTAs
MCArMSw2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InV0aWwuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InBlcmZvcm1hbmNlX3Rlc3RfaWZyYW1lLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJiZW5jaG1hcmsuanMiPjwvc2NyaXB0PgorPC9oZWFkPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9leGFtcGxlL3BlcmZvcm1hbmNlX3Rlc3RfaWZyYW1lLmpzIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9l
eGFtcGxlL3BlcmZvcm1hbmNlX3Rlc3RfaWZyYW1lLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2NWIyNWJkMWZm
ZDYzNzU5M2VmM2Y3ZjA2ZjBhNGZlNjYwYWQwZTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4
YW1wbGUvcGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuanMKQEAgLTAsMCArMSw2NiBAQAorZnVuY3Rp
b24gcGVyZlRlc3RBZGRUb0xvZyh0ZXh0KSB7CisgIHBhcmVudC5wb3N0TWVzc2FnZSh7J2NvbW1h
bmQnOiAnbG9nJywgJ3ZhbHVlJzogdGV4dH0sICcqJyk7Cit9CisKK2Z1bmN0aW9uIHBlcmZUZXN0
QWRkVG9TdW1tYXJ5KHRleHQpIHsKK30KKworZnVuY3Rpb24gcGVyZlRlc3RNZWFzdXJlVmFsdWUo
dmFsdWUpIHsKKyAgcGFyZW50LnBvc3RNZXNzYWdlKHsnY29tbWFuZCc6ICdtZWFzdXJlVmFsdWUn
LCAndmFsdWUnOiB2YWx1ZX0sICcqJyk7Cit9CisKK2Z1bmN0aW9uIHBlcmZUZXN0Tm90aWZ5QWJv
cnQoKSB7CisgIHBhcmVudC5wb3N0TWVzc2FnZSh7J2NvbW1hbmQnOiAnbm90aWZ5QWJvcnQnfSwg
JyonKTsKK30KKworZnVuY3Rpb24gZ2V0Q29uZmlnRm9yUGVyZm9ybWFuY2VUZXN0KGNvbm5lY3Rp
b25UeXBlLCBkYXRhVHlwZSwgYXN5bmMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdmVyaWZ5RGF0YSwgbnVtSXRlcmF0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBudW1XYXJtVXBJdGVyYXRpb25zKSB7CisgIHZhciBwcmVmaXhVcmw7Cisg
IGlmIChjb25uZWN0aW9uVHlwZSA9PT0gJ1dlYlNvY2tldCcpIHsKKyAgICBwcmVmaXhVcmwgPSAn
d3M6Ly8nICsgbG9jYXRpb24uaG9zdCArICcvYmVuY2htYXJrX2hlbHBlcic7CisgIH0gZWxzZSB7
CisgICAgLy8gWEhSIG9yIGZldGNoCisgICAgcHJlZml4VXJsID0gJ2h0dHA6Ly8nICsgbG9jYXRp
b24uaG9zdCArICcvMDczYmUwMDFlMTA5NTA2OTJjY2JmM2EyYWQyMWMyNDUnOworICB9CisKKyAg
cmV0dXJuIHsKKyAgICBwcmVmaXhVcmw6IHByZWZpeFVybCwKKyAgICBwcmludFNpemU6IHRydWUs
CisgICAgbnVtWEhSczogMSwKKyAgICBudW1GZXRjaGVzOiAxLAorICAgIG51bVNvY2tldHM6IDEs
CisgICAgLy8gKyAxIGlzIGZvciBhIHdhcm11cCBpdGVyYXRpb24gYnkgdGhlIFRlbGVtZXRyeSBm
cmFtZXdvcmsuCisgICAgbnVtSXRlcmF0aW9uczogbnVtSXRlcmF0aW9ucyArIG51bVdhcm1VcEl0
ZXJhdGlvbnMgKyAxLAorICAgIG51bVdhcm1VcEl0ZXJhdGlvbnM6IG51bVdhcm1VcEl0ZXJhdGlv
bnMsCisgICAgbWluVG90YWw6IDEwMjQwMDAwLAorICAgIHN0YXJ0U2l6ZTogMTAyNDAwMDAsCisg
ICAgc3RvcFRocmVzaG9sZDogMTAyNDAwMDAsCisgICAgbXVsdGlwbGllcnM6IFsyXSwKKyAgICB2
ZXJpZnlEYXRhOiB2ZXJpZnlEYXRhLAorICAgIGRhdGFUeXBlOiBkYXRhVHlwZSwKKyAgICBhc3lu
YzogYXN5bmMsCisgICAgYWRkVG9Mb2c6IHBlcmZUZXN0QWRkVG9Mb2csCisgICAgYWRkVG9TdW1t
YXJ5OiBwZXJmVGVzdEFkZFRvU3VtbWFyeSwKKyAgICBtZWFzdXJlVmFsdWU6IHBlcmZUZXN0TWVh
c3VyZVZhbHVlLAorICAgIG5vdGlmeUFib3J0OiBwZXJmVGVzdE5vdGlmeUFib3J0CisgIH07Cit9
CisKK3ZhciBkYXRhOworb25tZXNzYWdlID0gZnVuY3Rpb24obWVzc2FnZSkgeworICB2YXIgYWN0
aW9uOworICBpZiAobWVzc2FnZS5kYXRhLmNvbW1hbmQgPT09ICdzdGFydCcpIHsKKyAgICBkYXRh
ID0gbWVzc2FnZS5kYXRhOworICAgIGluaXRXb3JrZXIoZGF0YS5jb25uZWN0aW9uVHlwZSwgJ2h0
dHA6Ly8nICsgbG9jYXRpb24uaG9zdCk7CisgICAgYWN0aW9uID0gZGF0YS5iZW5jaG1hcmtOYW1l
OworICB9IGVsc2UgeworICAgIGFjdGlvbiA9ICdzdG9wJzsKKyAgfQorCisgIHZhciBjb25maWcg
PSBnZXRDb25maWdGb3JQZXJmb3JtYW5jZVRlc3QoZGF0YS5jb25uZWN0aW9uVHlwZSwgZGF0YS5k
YXRhVHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRh
LmFzeW5jLCBkYXRhLnZlcmlmeURhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGF0YS5udW1JdGVyYXRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRhdGEubnVtV2FybVVwSXRlcmF0aW9ucyk7CisgIGRvQWN0aW9u
KGNvbmZpZywgZGF0YS5pc1dvcmtlciwgYWN0aW9uKTsKK307CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4
YW1wbGUvcHl3ZWJzb2NrZXQuY29uZiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9weXdlYnNvY2tldC5jb25mCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjMzNWQxMzBhNWM4NGY2OWRlNGY4MWQzNThmYjJjZGI1YmRlNGFmNmQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvcHl3ZWJzb2NrZXQuY29uZgpAQCAtMCwwICsxLDQy
IEBACisjIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0
aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworIworIyBTYW1wbGUgY29uZmlndXJhdGlvbiBmaWxlIGZv
ciBhcGFjaGUyCisjCitMb2dMZXZlbCBkZWJ1ZworPElmTW9kdWxlIHB5dGhvbl9tb2R1bGU+Cisg
IFB5dGhvblBhdGggInN5cy5wYXRoK1snL21vZF9weXdlYnNvY2tldCddIgorICBQeXRob25PcHRp
b24gbW9kX3B5d2Vic29ja2V0LmhhbmRsZXJfcm9vdCAvdmFyL3d3dworICBQeXRob25PcHRpb24g
bW9kX3B5d2Vic29ja2V0LmhhbmRsZXJfc2NhbiAvdmFyL3d3dy93cworICAjUHl0aG9uT3B0aW9u
IG1vZF9weXdlYnNvY2tldC5hbGxvd19kcmFmdDc1IE9uCisgIDxMb2NhdGlvbiAvd3M+CisgICAg
UHl0aG9uSGVhZGVyUGFyc2VySGFuZGxlciBtb2RfcHl3ZWJzb2NrZXQuaGVhZGVycGFyc2VyaGFu
ZGxlcgorICA8L0xvY2F0aW9uPgorPC9JZk1vZHVsZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBs
ZS9zcGVjaWFsX2hlYWRlcnMuY2dpIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3NwZWNpYWxfaGVhZGVycy5jZ2kK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZWE1MDgwZjFmMWFlYTNhMzdhN2U3MjljNjc4ZDZhMTIzMzdiZWRiNwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9zcGVjaWFsX2hlYWRlcnMuY2dpCkBAIC0wLDAg
KzEsMjggQEAKKyMhL3Vzci9iaW4vcHl0aG9uCisKKyMgQ29weXJpZ2h0IDIwMTQgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMg
Z292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUKKyMgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0
aGUgQ09QWUlORyBmaWxlIG9yIGF0CisjIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL29w
ZW4tc291cmNlL2xpY2Vuc2VzL2JzZAorCisiIiJDR0kgc2NyaXB0IHNhbXBsZSBmb3IgdGVzdGlu
ZyBlZmZlY3Qgb2YgSFRUUCBoZWFkZXJzIG9uIHRoZSBvcmlnaW4gcGFnZS4KKworTm90ZSB0aGF0
IENHSSBzY3JpcHRzIGRvbid0IHdvcmsgb24gdGhlIHN0YW5kYWxvbmUgcHl3ZWJzb2NrZXQgcnVu
bmluZyBpbiBUTFMKK21vZGUuCisiIiIKKworCitwcmludCAiIiJDb250ZW50LXR5cGU6IHRleHQv
aHRtbAorQ29udGVudC1TZWN1cml0eS1Qb2xpY3k6IGNvbm5lY3Qtc3JjIHNlbGYKKworPGh0bWw+
Cis8aGVhZD4KKzx0aXRsZT48L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgordmFy
IHNvY2tldCA9IG5ldyBXZWJTb2NrZXQoIndzOi8vZXhhbXBsZS5jb20iKTsKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPiIiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3V0aWwuanMgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L2V4YW1wbGUvdXRpbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZWMwMDA3YjFlZGQ1YTBjNTcxN2EyOGRh
MDU1MjE4N2E2N2RhOWE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3V0aWwuanMK
QEAgLTAsMCArMSwzMjcgQEAKKy8vIENvcHlyaWdodCAyMDEzLCBHb29nbGUgSW5jLgorLy8gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKy8vIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKy8v
IG1ldDoKKy8vCisvLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorLy8gY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8gICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworLy8gY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKy8v
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8vIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorLy8gQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorLy8gTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisv
LyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorLy8gT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworCisvLyBVdGlsaXRpZXMgZm9yIGV4YW1wbGUgYXBwbGljYXRpb25zIChmb3IgYm90
aCBtYWluIGFuZCB3b3JrZXIgdGhyZWFkKS4KKwordmFyIHJlc3VsdHMgPSB7fTsKKworZnVuY3Rp
b24gZ2V0VGltZVN0YW1wKCkgeworICByZXR1cm4gRGF0ZS5ub3coKTsKK30KKworZnVuY3Rpb24g
Zm9ybWF0UmVzdWx0SW5LaUIoc2l6ZSwgdGltZVBlck1lc3NhZ2VJbk1zLCBzdGRkZXZUaW1lUGVy
TWVzc2FnZUluTXMsCisgICAgc3BlZWQsIHByaW50U2l6ZSkgeworICBpZiAocHJpbnRTaXplKSB7
CisgICAgcmV0dXJuIChzaXplIC8gMTAyNCkgKworICAgICAgICAnXHQnICsgdGltZVBlck1lc3Nh
Z2VJbk1zLnRvRml4ZWQoMykgKworICAgICAgICAoc3RkZGV2VGltZVBlck1lc3NhZ2VJbk1zID09
IC0xID8KKyAgICAgICAgICAgICcnIDoKKyAgICAgICAgICAgICdcdCcgKyBzdGRkZXZUaW1lUGVy
TWVzc2FnZUluTXMudG9GaXhlZCgzKSkgKworICAgICAgICAnXHQnICsgc3BlZWQudG9GaXhlZCgz
KTsKKyAgfSBlbHNlIHsKKyAgICByZXR1cm4gc3BlZWQudG9TdHJpbmcoKTsKKyAgfQorfQorCitm
dW5jdGlvbiBjbGVhckF2ZXJhZ2VEYXRhKCkgeworICByZXN1bHRzID0ge307Cit9CisKK2Z1bmN0
aW9uIHJlcG9ydEF2ZXJhZ2VEYXRhKGNvbmZpZykgeworICBjb25maWcuYWRkVG9TdW1tYXJ5KAor
ICAgICAgJ1NpemVbS2lCXVx0QXZlcmFnZSB0aW1lW21zXVx0U3RkZGV2IHRpbWVbbXNdXHRTcGVl
ZFtLQi9zXScpOworICBmb3IgKHZhciBzaXplIGluIHJlc3VsdHMpIHsKKyAgICB2YXIgYXZlcmFn
ZVRpbWVQZXJNZXNzYWdlSW5NcyA9IHJlc3VsdHNbc2l6ZV0uc3VtX3QgLyByZXN1bHRzW3NpemVd
Lm47CisgICAgdmFyIHNwZWVkID0gY2FsY3VsYXRlU3BlZWRJbktCKHNpemUsIGF2ZXJhZ2VUaW1l
UGVyTWVzc2FnZUluTXMpOworICAgIC8vIENhbGN1bGF0ZSBzYW1wbGUgc3RhbmRhcmQgZGV2aWF0
aW9uCisgICAgdmFyIHN0ZGRldlRpbWVQZXJNZXNzYWdlSW5NcyA9IE1hdGguc3FydCgKKyAgICAg
ICAgKHJlc3VsdHNbc2l6ZV0uc3VtX3QyIC8gcmVzdWx0c1tzaXplXS5uIC0KKyAgICAgICAgICAg
IGF2ZXJhZ2VUaW1lUGVyTWVzc2FnZUluTXMgKiBhdmVyYWdlVGltZVBlck1lc3NhZ2VJbk1zKSAq
CisgICAgICAgIHJlc3VsdHNbc2l6ZV0ubiAvCisgICAgICAgIChyZXN1bHRzW3NpemVdLm4gLSAx
KSk7CisgICAgY29uZmlnLmFkZFRvU3VtbWFyeShmb3JtYXRSZXN1bHRJbktpQigKKyAgICAgICAg
c2l6ZSwgYXZlcmFnZVRpbWVQZXJNZXNzYWdlSW5Ncywgc3RkZGV2VGltZVBlck1lc3NhZ2VJbk1z
LCBzcGVlZCwKKyAgICAgICAgdHJ1ZSkpOworICB9Cit9CisKK2Z1bmN0aW9uIGNhbGN1bGF0ZVNw
ZWVkSW5LQihzaXplLCB0aW1lU3BlbnRJbk1zKSB7CisgIHJldHVybiBNYXRoLnJvdW5kKHNpemUg
LyB0aW1lU3BlbnRJbk1zICogMTAwMCkgLyAxMDAwOworfQorCitmdW5jdGlvbiBjYWxjdWxhdGVB
bmRMb2dSZXN1bHQoY29uZmlnLCBzaXplLCBzdGFydFRpbWVJbk1zLCB0b3RhbFNpemUsCisgICAg
aXNXYXJtVXApIHsKKyAgdmFyIHRpbWVTcGVudEluTXMgPSBnZXRUaW1lU3RhbXAoKSAtIHN0YXJ0
VGltZUluTXM7CisgIHZhciBzcGVlZCA9IGNhbGN1bGF0ZVNwZWVkSW5LQih0b3RhbFNpemUsIHRp
bWVTcGVudEluTXMpOworICB2YXIgdGltZVBlck1lc3NhZ2VJbk1zID0gdGltZVNwZW50SW5NcyAv
ICh0b3RhbFNpemUgLyBzaXplKTsKKyAgaWYgKCFpc1dhcm1VcCkgeworICAgIGNvbmZpZy5tZWFz
dXJlVmFsdWUodGltZVBlck1lc3NhZ2VJbk1zKTsKKyAgICBpZiAoIXJlc3VsdHNbc2l6ZV0pIHsK
KyAgICAgIHJlc3VsdHNbc2l6ZV0gPSB7bjogMCwgc3VtX3Q6IDAsIHN1bV90MjogMH07CisgICAg
fQorICAgIHJlc3VsdHNbc2l6ZV0ubiArKzsKKyAgICByZXN1bHRzW3NpemVdLnN1bV90ICs9IHRp
bWVQZXJNZXNzYWdlSW5NczsKKyAgICByZXN1bHRzW3NpemVdLnN1bV90MiArPSB0aW1lUGVyTWVz
c2FnZUluTXMgKiB0aW1lUGVyTWVzc2FnZUluTXM7CisgIH0KKyAgY29uZmlnLmFkZFRvTG9nKGZv
cm1hdFJlc3VsdEluS2lCKHNpemUsIHRpbWVQZXJNZXNzYWdlSW5NcywgLTEsIHNwZWVkLAorICAg
ICAgY29uZmlnLnByaW50U2l6ZSkpOworfQorCitmdW5jdGlvbiByZXBlYXRTdHJpbmcoc3RyLCBj
b3VudCkgeworICB2YXIgZGF0YSA9ICcnOworICB2YXIgZXhwQ2h1bmsgPSBzdHI7CisgIHZhciBy
ZW1haW4gPSBjb3VudDsKKyAgd2hpbGUgKHRydWUpIHsKKyAgICBpZiAocmVtYWluICUgMikgewor
ICAgICAgZGF0YSArPSBleHBDaHVuazsKKyAgICAgIHJlbWFpbiA9IChyZW1haW4gLSAxKSAvIDI7
CisgICAgfSBlbHNlIHsKKyAgICAgIHJlbWFpbiAvPSAyOworICAgIH0KKworICAgIGlmIChyZW1h
aW4gPT0gMCkKKyAgICAgIGJyZWFrOworCisgICAgZXhwQ2h1bmsgPSBleHBDaHVuayArIGV4cENo
dW5rOworICB9CisgIHJldHVybiBkYXRhOworfQorCitmdW5jdGlvbiBmaWxsQXJyYXlCdWZmZXIo
YnVmZmVyLCBjKSB7CisgIHZhciBpOworCisgIHZhciB1MzJDb250ZW50ID0gYyAqIDB4MDEwMTAx
MDE7CisKKyAgdmFyIHUzMkJsb2NrcyA9IE1hdGguZmxvb3IoYnVmZmVyLmJ5dGVMZW5ndGggLyA0
KTsKKyAgdmFyIHUzMlZpZXcgPSBuZXcgVWludDMyQXJyYXkoYnVmZmVyLCAwLCB1MzJCbG9ja3Mp
OworICAvLyBsZW5ndGggYXR0cmlidXRlIGlzIHNsb3cgb24gQ2hyb21lLiBEb24ndCB1c2UgaXQg
Zm9yIGxvb3AgY29uZGl0aW9uLgorICBmb3IgKGkgPSAwOyBpIDwgdTMyQmxvY2tzOyArK2kpIHsK
KyAgICB1MzJWaWV3W2ldID0gdTMyQ29udGVudDsKKyAgfQorCisgIC8vIEZyYWN0aW9uCisgIHZh
ciB1OEJsb2NrcyA9IGJ1ZmZlci5ieXRlTGVuZ3RoIC0gdTMyQmxvY2tzICogNDsKKyAgdmFyIHU4
VmlldyA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlciwgdTMyQmxvY2tzICogNCwgdThCbG9ja3MpOwor
ICBmb3IgKGkgPSAwOyBpIDwgdThCbG9ja3M7ICsraSkgeworICAgIHU4Vmlld1tpXSA9IGM7Cisg
IH0KK30KKworZnVuY3Rpb24gdmVyaWZ5QXJyYXlCdWZmZXIoYnVmZmVyLCBleHBlY3RlZENoYXIp
IHsKKyAgdmFyIGk7CisKKyAgdmFyIGV4cGVjdGVkVTMyVmFsdWUgPSBleHBlY3RlZENoYXIgKiAw
eDAxMDEwMTAxOworCisgIHZhciB1MzJCbG9ja3MgPSBNYXRoLmZsb29yKGJ1ZmZlci5ieXRlTGVu
Z3RoIC8gNCk7CisgIHZhciB1MzJWaWV3ID0gbmV3IFVpbnQzMkFycmF5KGJ1ZmZlciwgMCwgdTMy
QmxvY2tzKTsKKyAgZm9yIChpID0gMDsgaSA8IHUzMkJsb2NrczsgKytpKSB7CisgICAgaWYgKHUz
MlZpZXdbaV0gIT0gZXhwZWN0ZWRVMzJWYWx1ZSkgeworICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0KKyAgfQorCisgIHZhciB1OEJsb2NrcyA9IGJ1ZmZlci5ieXRlTGVuZ3RoIC0gdTMyQmxvY2tz
ICogNDsKKyAgdmFyIHU4VmlldyA9IG5ldyBVaW50OEFycmF5KGJ1ZmZlciwgdTMyQmxvY2tzICog
NCwgdThCbG9ja3MpOworICBmb3IgKGkgPSAwOyBpIDwgdThCbG9ja3M7ICsraSkgeworICAgIGlm
ICh1OFZpZXdbaV0gIT0gZXhwZWN0ZWRDaGFyKSB7CisgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorICB9CisKKyAgcmV0dXJuIHRydWU7Cit9CisKK2Z1bmN0aW9uIHZlcmlmeUJsb2IoY29uZmln
LCBibG9iLCBleHBlY3RlZENoYXIsIGRvbmVDYWxsYmFjaykgeworICB2YXIgcmVhZGVyID0gbmV3
IEZpbGVSZWFkZXIoYmxvYik7CisgIHJlYWRlci5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAg
Y29uZmlnLmFkZFRvTG9nKCdGaWxlUmVhZGVyIEVycm9yOiAnICsgcmVhZGVyLmVycm9yLm1lc3Nh
Z2UpOworICAgIGRvbmVDYWxsYmFjayhibG9iLnNpemUsIGZhbHNlKTsKKyAgfQorICByZWFkZXIu
b25sb2FkZW5kID0gZnVuY3Rpb24oKSB7CisgICAgdmFyIHJlc3VsdCA9IHZlcmlmeUFycmF5QnVm
ZmVyKHJlYWRlci5yZXN1bHQsIGV4cGVjdGVkQ2hhcik7CisgICAgZG9uZUNhbGxiYWNrKGJsb2Iu
c2l6ZSwgcmVzdWx0KTsKKyAgfQorICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoYmxvYik7Cit9
CisKK2Z1bmN0aW9uIHZlcmlmeUFja25vd2xlZGdlbWVudChjb25maWcsIG1lc3NhZ2UsIHNpemUp
IHsKKyAgaWYgKHR5cGVvZiBtZXNzYWdlICE9ICdzdHJpbmcnKSB7CisgICAgY29uZmlnLmFkZFRv
TG9nKCdJbnZhbGlkIGFjayB0eXBlOiAnICsgdHlwZW9mIG1lc3NhZ2UpOworICAgIHJldHVybiBm
YWxzZTsKKyAgfQorICB2YXIgcGFyc2VkQWNrID0gcGFyc2VJbnQobWVzc2FnZSk7CisgIGlmIChp
c05hTihwYXJzZWRBY2spKSB7CisgICAgY29uZmlnLmFkZFRvTG9nKCdJbnZhbGlkIGFjayB2YWx1
ZTogJyArIG1lc3NhZ2UpOworICAgIHJldHVybiBmYWxzZTsKKyAgfQorICBpZiAocGFyc2VkQWNr
ICE9IHNpemUpIHsKKyAgICBjb25maWcuYWRkVG9Mb2coCisgICAgICAgICdFeHBlY3RlZCBhY2sg
Zm9yICcgKyBzaXplICsgJ0IgYnV0IHJlY2VpdmVkIG9uZSBmb3IgJyArIHBhcnNlZEFjayArCisg
ICAgICAgICdCJyk7CisgICAgcmV0dXJuIGZhbHNlOworICB9CisKKyAgcmV0dXJuIHRydWU7Cit9
CisKK2Z1bmN0aW9uIGNsb25lQ29uZmlnKG9iaikgeworICB2YXIgbmV3T2JqID0ge307CisgIGZv
ciAoa2V5IGluIG9iaikgeworICAgIG5ld09ialtrZXldID0gb2JqW2tleV07CisgIH0KKyAgcmV0
dXJuIG5ld09iajsKK30KKwordmFyIHRhc2tzID0gW107CisKK2Z1bmN0aW9uIHJ1bk5leHRUYXNr
KGNvbmZpZykgeworICB2YXIgdGFzayA9IHRhc2tzLnNoaWZ0KCk7CisgIGlmICh0YXNrID09IHVu
ZGVmaW5lZCkgeworICAgIGNvbmZpZy5hZGRUb0xvZygnRmluaXNoZWQnKTsKKyAgICBjbGVhbnVw
KCk7CisgICAgcmV0dXJuOworICB9CisgIHRpbWVySUQgPSBzZXRUaW1lb3V0KHRhc2ssIDApOwor
fQorCitmdW5jdGlvbiBidWlsZExlZ2VuZFN0cmluZyhjb25maWcpIHsKKyAgdmFyIGxlZ2VuZCA9
ICcnCisgIGlmIChjb25maWcucHJpbnRTaXplKQorICAgIGxlZ2VuZCA9ICdNZXNzYWdlIHNpemUg
aW4gS2lCLCBUaW1lL21lc3NhZ2UgaW4gbXMsICc7CisgIGxlZ2VuZCArPSAnU3BlZWQgaW4ga0Iv
cyc7CisgIHJldHVybiBsZWdlbmQ7Cit9CisKK2Z1bmN0aW9uIGFkZFRhc2tzKGNvbmZpZywgc3Rl
cEZ1bmMpIHsKKyAgZm9yICh2YXIgaSA9IDA7CisgICAgICBpIDwgY29uZmlnLm51bVdhcm1VcEl0
ZXJhdGlvbnMgKyBjb25maWcubnVtSXRlcmF0aW9uczsgKytpKSB7CisgICAgdmFyIG11bHRpcGxp
ZXJJbmRleCA9IDA7CisgICAgZm9yICh2YXIgc2l6ZSA9IGNvbmZpZy5zdGFydFNpemU7CisgICAg
ICAgICBzaXplIDw9IGNvbmZpZy5zdG9wVGhyZXNob2xkOworICAgICAgICAgKyttdWx0aXBsaWVy
SW5kZXgpIHsKKyAgICAgIHZhciB0YXNrID0gc3RlcEZ1bmMuYmluZCgKKyAgICAgICAgICBudWxs
LAorICAgICAgICAgIHNpemUsCisgICAgICAgICAgY29uZmlnLAorICAgICAgICAgIGkgPCBjb25m
aWcubnVtV2FybVVwSXRlcmF0aW9ucyk7CisgICAgICB0YXNrcy5wdXNoKHRhc2spOworICAgICAg
dmFyIG11bHRpcGxpZXIgPSBjb25maWcubXVsdGlwbGllcnNbCisgICAgICAgIG11bHRpcGxpZXJJ
bmRleCAlIGNvbmZpZy5tdWx0aXBsaWVycy5sZW5ndGhdOworICAgICAgaWYgKG11bHRpcGxpZXIg
PD0gMSkgeworICAgICAgICBjb25maWcuYWRkVG9Mb2coJ0ludmFsaWQgbXVsdGlwbGllciAnICsg
bXVsdGlwbGllcik7CisgICAgICAgIGNvbmZpZy5ub3RpZnlBYm9ydCgpOworICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoJ0ludmFsaWQgbXVsdGlwbGVyJyk7CisgICAgICB9CisgICAgICBzaXplID0g
TWF0aC5jZWlsKHNpemUgKiBtdWx0aXBsaWVyKTsKKyAgICB9CisgIH0KK30KKworZnVuY3Rpb24g
YWRkUmVzdWx0UmVwb3J0aW5nVGFzayhjb25maWcsIHRpdGxlKSB7CisgIHRhc2tzLnB1c2goZnVu
Y3Rpb24oKXsKKyAgICAgIHRpbWVySUQgPSBudWxsOworICAgICAgY29uZmlnLmFkZFRvU3VtbWFy
eSh0aXRsZSk7CisgICAgICByZXBvcnRBdmVyYWdlRGF0YShjb25maWcpOworICAgICAgY2xlYXJB
dmVyYWdlRGF0YSgpOworICAgICAgcnVuTmV4dFRhc2soY29uZmlnKTsKKyAgfSk7Cit9CisKK2Z1
bmN0aW9uIHNlbmRCZW5jaG1hcmsoY29uZmlnKSB7CisgIGNvbmZpZy5hZGRUb0xvZygnU2VuZCBi
ZW5jaG1hcmsnKTsKKyAgY29uZmlnLmFkZFRvTG9nKGJ1aWxkTGVnZW5kU3RyaW5nKGNvbmZpZykp
OworCisgIHRhc2tzID0gW107CisgIGNsZWFyQXZlcmFnZURhdGEoKTsKKyAgYWRkVGFza3MoY29u
ZmlnLCBzZW5kQmVuY2htYXJrU3RlcCk7CisgIGFkZFJlc3VsdFJlcG9ydGluZ1Rhc2soY29uZmln
LCAnU2VuZCBCZW5jaG1hcmsgJyArIGdldENvbmZpZ1N0cmluZyhjb25maWcpKTsKKyAgc3RhcnRC
ZW5jaG1hcmsoY29uZmlnKTsKK30KKworZnVuY3Rpb24gcmVjZWl2ZUJlbmNobWFyayhjb25maWcp
IHsKKyAgY29uZmlnLmFkZFRvTG9nKCdSZWNlaXZlIGJlbmNobWFyaycpOworICBjb25maWcuYWRk
VG9Mb2coYnVpbGRMZWdlbmRTdHJpbmcoY29uZmlnKSk7CisKKyAgdGFza3MgPSBbXTsKKyAgY2xl
YXJBdmVyYWdlRGF0YSgpOworICBhZGRUYXNrcyhjb25maWcsIHJlY2VpdmVCZW5jaG1hcmtTdGVw
KTsKKyAgYWRkUmVzdWx0UmVwb3J0aW5nVGFzayhjb25maWcsCisgICAgICAnUmVjZWl2ZSBCZW5j
aG1hcmsgJyArIGdldENvbmZpZ1N0cmluZyhjb25maWcpKTsKKyAgc3RhcnRCZW5jaG1hcmsoY29u
ZmlnKTsKK30KKworZnVuY3Rpb24gc3RvcChjb25maWcpIHsKKyAgY2xlYXJUaW1lb3V0KHRpbWVy
SUQpOworICB0aW1lcklEID0gbnVsbDsKKyAgdGFza3MgPSBbXTsKKyAgY29uZmlnLmFkZFRvTG9n
KCdTdG9wcGVkJyk7CisgIGNsZWFudXAoKTsKK30KKwordmFyIHdvcmtlcjsKKworZnVuY3Rpb24g
aW5pdFdvcmtlcihjb25uZWN0aW9uVHlwZSwgb3JpZ2luKSB7CisgIHZhciBzY3JpcHRQYXRoID0K
KyAgICBjb25uZWN0aW9uVHlwZSA9PT0gJ1dlYlNvY2tldCcgPyAnL2JlbmNobWFyay5qcycgOgor
ICAgIGNvbm5lY3Rpb25UeXBlID09PSAnWEhSJyA/ICcveGhyX2JlbmNobWFyay5qcycgOgorICAg
ICcvZmV0Y2hfYmVuY2htYXJrLmpzJzsgLy8gY29ubmVjdGlvblR5cGUgPT09ICdmZXRjaCcKKyAg
d29ya2VyID0gbmV3IFdvcmtlcihvcmlnaW4gKyBzY3JpcHRQYXRoKTsKK30KKworZnVuY3Rpb24g
ZG9BY3Rpb24oY29uZmlnLCBpc1dpbmRvd1RvV29ya2VyLCBhY3Rpb24pIHsKKyAgaWYgKGlzV2lu
ZG93VG9Xb3JrZXIpIHsKKyAgICB3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24oYWRkVG9Mb2cs
IGFkZFRvU3VtbWFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVhc3VyZVZh
bHVlLCBub3RpZnlBYm9ydCwgbWVzc2FnZSkgeworICAgICAgaWYgKG1lc3NhZ2UuZGF0YS50eXBl
ID09PSAnYWRkVG9Mb2cnKQorICAgICAgICBhZGRUb0xvZyhtZXNzYWdlLmRhdGEuZGF0YSk7Cisg
ICAgICBlbHNlIGlmIChtZXNzYWdlLmRhdGEudHlwZSA9PT0gJ2FkZFRvU3VtbWFyeScpCisgICAg
ICAgIGFkZFRvU3VtbWFyeShtZXNzYWdlLmRhdGEuZGF0YSk7CisgICAgICBlbHNlIGlmIChtZXNz
YWdlLmRhdGEudHlwZSA9PT0gJ21lYXN1cmVWYWx1ZScpCisgICAgICAgIG1lYXN1cmVWYWx1ZSht
ZXNzYWdlLmRhdGEuZGF0YSk7CisgICAgICBlbHNlIGlmIChtZXNzYWdlLmRhdGEudHlwZSA9PT0g
J25vdGlmeUFib3J0JykKKyAgICAgICAgbm90aWZ5QWJvcnQoKTsKKyAgICB9LmJpbmQodW5kZWZp
bmVkLCBjb25maWcuYWRkVG9Mb2csIGNvbmZpZy5hZGRUb1N1bW1hcnksCisgICAgICAgICAgIGNv
bmZpZy5tZWFzdXJlVmFsdWUsIGNvbmZpZy5ub3RpZnlBYm9ydCk7CisgICAgY29uZmlnLmFkZFRv
TG9nID0gdW5kZWZpbmVkOworICAgIGNvbmZpZy5hZGRUb1N1bW1hcnkgPSB1bmRlZmluZWQ7Cisg
ICAgY29uZmlnLm1lYXN1cmVWYWx1ZSA9IHVuZGVmaW5lZDsKKyAgICBjb25maWcubm90aWZ5QWJv
cnQgPSB1bmRlZmluZWQ7CisgICAgd29ya2VyLnBvc3RNZXNzYWdlKHt0eXBlOiBhY3Rpb24sIGNv
bmZpZzogY29uZmlnfSk7CisgIH0gZWxzZSB7CisgICAgaWYgKGFjdGlvbiA9PT0gJ3NlbmRCZW5j
aG1hcmsnKQorICAgICAgc2VuZEJlbmNobWFyayhjb25maWcpOworICAgIGVsc2UgaWYgKGFjdGlv
biA9PT0gJ3JlY2VpdmVCZW5jaG1hcmsnKQorICAgICAgcmVjZWl2ZUJlbmNobWFyayhjb25maWcp
OworICAgIGVsc2UgaWYgKGFjdGlvbiA9PT0gJ2JhdGNoQmVuY2htYXJrJykKKyAgICAgIGJhdGNo
QmVuY2htYXJrKGNvbmZpZyk7CisgICAgZWxzZSBpZiAoYWN0aW9uID09PSAnc3RvcCcpCisgICAg
ICBzdG9wKGNvbmZpZyk7CisgIH0KK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS91dGlsX21h
aW4uanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L2V4YW1wbGUvdXRpbF9tYWluLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3MWVkNjNmYjVk
NzQ5ZDBlZDIxODFiNWFhYmNjZTJlOTM2NWI4N2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4
YW1wbGUvdXRpbF9tYWluLmpzCkBAIC0wLDAgKzEsNjUgQEAKKy8vIENvcHlyaWdodCAyMDE0IEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisvLworLy8gVXNlIG9mIHRoaXMgc291cmNl
IGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUKKy8vIGxpY2Vuc2UgdGhhdCBjYW4gYmUg
Zm91bmQgaW4gdGhlIENPUFlJTkcgZmlsZSBvciBhdAorLy8gaHR0cHM6Ly9kZXZlbG9wZXJzLmdv
b2dsZS5jb20vb3Blbi1zb3VyY2UvbGljZW5zZXMvYnNkCisKKy8vIFV0aWxpdGllcyBmb3IgZXhh
bXBsZSBhcHBsaWNhdGlvbnMgKGZvciB0aGUgbWFpbiB0aHJlYWQgb25seSkuCisKK3ZhciBsb2dC
b3ggPSBudWxsOwordmFyIHF1ZXVlZExvZyA9ICcnOworCit2YXIgc3VtbWFyeUJveCA9IG51bGw7
CisKK2Z1bmN0aW9uIHF1ZXVlTG9nKGxvZykgeworICBxdWV1ZWRMb2cgKz0gbG9nICsgJ1xuJzsK
K30KKworZnVuY3Rpb24gYWRkVG9Mb2cobG9nKSB7CisgIGxvZ0JveC52YWx1ZSArPSBxdWV1ZWRM
b2c7CisgIHF1ZXVlZExvZyA9ICcnOworICBsb2dCb3gudmFsdWUgKz0gbG9nICsgJ1xuJzsKKyAg
bG9nQm94LnNjcm9sbFRvcCA9IDEwMDAwMDA7Cit9CisKK2Z1bmN0aW9uIGFkZFRvU3VtbWFyeShs
b2cpIHsKKyAgc3VtbWFyeUJveC52YWx1ZSArPSBsb2cgKyAnXG4nOworICBzdW1tYXJ5Qm94LnNj
cm9sbFRvcCA9IDEwMDAwMDA7Cit9CisKKy8vIHZhbHVlOiBleGVjdXRpb24gdGltZSBpbiBtaWxs
aXNlY29uZHMuCisvLyBjb25maWcubWVhc3VyZVZhbHVlIGlzIGludGVuZGVkIHRvIGJlIHVzZWQg
aW4gUGVyZm9ybWFuY2UgVGVzdHMuCisvLyBEbyBub3RoaW5nIGhlcmUgaW4gbm9uLVBlcmZvcm1h
bmNlVGVzdC4KK2Z1bmN0aW9uIG1lYXN1cmVWYWx1ZSh2YWx1ZSkgeworfQorCisvLyBjb25maWcu
bm90aWZ5QWJvcnQgaXMgY2FsbGVkIHdoZW4gdGhlIGJlbmNobWFyayBmYWlsZWQgYW5kIGFib3J0
ZWQsIGFuZAorLy8gaW50ZW5kZWQgdG8gYmUgdXNlZCBpbiBQZXJmb3JtYW5jZSBUZXN0cy4KKy8v
IERvIG5vdGhpbmcgaGVyZSBpbiBub24tUGVyZm9ybWFuY2VUZXN0LgorZnVuY3Rpb24gbm90aWZ5
QWJvcnQoKSB7Cit9CisKK2Z1bmN0aW9uIGdldEludEZyb21JbnB1dChpZCkgeworICByZXR1cm4g
cGFyc2VJbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnZhbHVlKTsKK30KKworZnVuY3Rp
b24gZ2V0U3RyaW5nRnJvbVJhZGlvQm94KG5hbWUpIHsKKyAgdmFyIGxpc3QgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnYmVuY2htYXJrX2Zvcm0nKVtuYW1lXTsKKyAgZm9yICh2YXIgaSA9IDA7
IGkgPCBsaXN0Lmxlbmd0aDsgKytpKQorICAgIGlmIChsaXN0Lml0ZW0oaSkuY2hlY2tlZCkKKyAg
ICAgIHJldHVybiBsaXN0Lml0ZW0oaSkudmFsdWU7CisgIHJldHVybiB1bmRlZmluZWQ7Cit9Citm
dW5jdGlvbiBnZXRCb29sRnJvbUNoZWNrQm94KGlkKSB7CisgIHJldHVybiBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChpZCkuY2hlY2tlZDsKK30KKworZnVuY3Rpb24gZ2V0SW50QXJyYXlGcm9tSW5w
dXQoaWQpIHsKKyAgdmFyIHN0ckFycmF5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnZh
bHVlLnNwbGl0KCcsJyk7CisgIHJldHVybiBzdHJBcnJheS5tYXAoZnVuY3Rpb24oc3RyKSB7IHJl
dHVybiBwYXJzZUludChzdHIsIDEwKTsgfSk7Cit9CisKK2Z1bmN0aW9uIGdldEZsb2F0QXJyYXlG
cm9tSW5wdXQoaWQpIHsKKyAgdmFyIHN0ckFycmF5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
aWQpLnZhbHVlLnNwbGl0KCcsJyk7CisgIHJldHVybiBzdHJBcnJheS5tYXAocGFyc2VGbG9hdCk7
Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvdXRpbF93b3JrZXIuanMgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1w
bGUvdXRpbF93b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOThkY2Y0NDE3Mjk5ZjljOWQ2MWRlZWZjYjFh
NTk1YWVhYjA1ZDU2YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS91dGlsX3dvcmtl
ci5qcwpAQCAtMCwwICsxLDIwIEBACisvLyBDb3B5cmlnaHQgMjAxNCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorLy8KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVy
bmVkIGJ5IGEgQlNELXN0eWxlCisvLyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBD
T1BZSU5HIGZpbGUgb3IgYXQKKy8vIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL29wZW4t
c291cmNlL2xpY2Vuc2VzL2JzZAorCisvLyBVdGlsaXRpZXMgZm9yIGV4YW1wbGUgYXBwbGljYXRp
b25zIChmb3IgdGhlIHdvcmtlciB0aHJlYWRzIG9ubHkpLgorCitvbm1lc3NhZ2UgPSBmdW5jdGlv
biAobWVzc2FnZSkgeworICB2YXIgY29uZmlnID0gbWVzc2FnZS5kYXRhLmNvbmZpZzsKKyAgY29u
ZmlnLmFkZFRvTG9nID0gZnVuY3Rpb24odGV4dCkgeworICAgICAgcG9zdE1lc3NhZ2Uoe3R5cGU6
ICdhZGRUb0xvZycsIGRhdGE6IHRleHR9KTsgfTsKKyAgY29uZmlnLmFkZFRvU3VtbWFyeSA9IGZ1
bmN0aW9uKHRleHQpIHsKKyAgICAgIHBvc3RNZXNzYWdlKHt0eXBlOiAnYWRkVG9TdW1tYXJ5Jywg
ZGF0YTogdGV4dH0pOyB9OworICBjb25maWcubWVhc3VyZVZhbHVlID0gZnVuY3Rpb24odmFsdWUp
IHsKKyAgICAgIHBvc3RNZXNzYWdlKHt0eXBlOiAnbWVhc3VyZVZhbHVlJywgZGF0YTogdmFsdWV9
KTsgfTsKKyAgY29uZmlnLm5vdGlmeUFib3J0ID0gZnVuY3Rpb24oKSB7IHBvc3RNZXNzYWdlKHt0
eXBlOiAnbm90aWZ5QWJvcnQnfSk7IH07CisKKyAgZG9BY3Rpb24oY29uZmlnLCBmYWxzZSwgbWVz
c2FnZS5kYXRhLnR5cGUpOworfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvZXhhbXBsZS93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTU5NDRhZmEz
M2JmYjZhMjQyNGM3Mjk0ZmY5YTRmODM5MTJjYjY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9l
eGFtcGxlL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsNDkgQEAKK1RoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0
LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1v
dmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhh
bXBsZS9hYm9ydF9oYW5kc2hha2Vfd3NoLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2Fib3J0X3dzaC5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvZXhhbXBsZS9hcnJheWJ1ZmZlcl9iZW5jaG1hcmsuaHRtbAorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9i
ZW5jaF93c2gucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYmVuY2htYXJrLmh0bWwKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUv
YmVuY2htYXJrLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2JlbmNobWFya19oZWxwZXJfd3NoLnB5CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9leGFtcGxlL2Nsb3NlX3dzaC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9jb25zb2xlLmh0bWwKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L2V4YW1wbGUvY29va2llX3dzaC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9lY2hvX2NsaWVudC5weQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvZXhhbXBsZS9lY2hvX25vZXh0X3dzaC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9lY2hvX3dzaC5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvZXhhbXBsZS9ldmVudHNvdXJjZS5jZ2kKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZXZlbnRzb3VyY2Uu
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvZXhhbXBsZS9mZXRjaF9iZW5jaG1hcmsuaHRtbAorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9m
ZXRjaF9iZW5jaG1hcmsuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZmV0Y2hfcGVyZm9ybWFuY2VfdGVzdF9p
ZnJhbWUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9oYW5kbGVyX21hcC50eHQKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUv
aHN0c193c2gucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvaW50ZXJuYWxfZXJyb3Jfd3NoLnB5CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9l
eGFtcGxlL29yaWdpbl9jaGVja193c2gucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvcGVyZm9ybWFuY2VfdGVz
dF9pZnJhbWUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9wZXJmb3JtYW5jZV90ZXN0X2lmcmFtZS5qcwor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvZXhhbXBsZS9weXdlYnNvY2tldC5jb25mCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3NwZWNpYWxfaGVh
ZGVycy5jZ2kKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvdXRpbC5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS91dGlsX21haW4u
anMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L2V4YW1wbGUvdXRpbF93b3JrZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUveGhyX2JlbmNo
bWFyay5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9leGFtcGxlL3hocl9iZW5jaG1hcmsuanMKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUv
eGhyX2V2ZW50X2xvZ2dlci5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3hocl9wZXJmb3JtYW5jZV90ZXN0
X2lmcmFtZS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUveGhyX2JlbmNobWFyay5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9leGFtcGxlL3hocl9iZW5jaG1hcmsuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MDBkMjBjOWNj
YjRhYmVjZjIzOWM3NWIxODU3N2IwZDFmZjExYzkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9l
eGFtcGxlL3hocl9iZW5jaG1hcmsuaHRtbApAQCAtMCwwICsxLDIxMiBAQAorPCEtLQorQ29weXJp
Z2h0IDIwMTMsIEdvb2dsZSBJbmMuCitBbGwgcmlnaHRzIHJlc2VydmVkLgorCitSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
K21vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKK21ldDoKKworICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKK25vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKK2NvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKK2luIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKK2Rpc3RyaWJ1dGlvbi4KKyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKK2NvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCit0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorCitUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCitBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCitTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCitMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKK0RBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CitPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorLS0+CisKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+WE1MSHR0cFJlcXVl
c3QgYmVuY2htYXJrPC90aXRsZT4KKzxzY3JpcHQgc3JjPSJ1dGlsX21haW4uanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InV0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Inhocl9iZW5j
aG1hcmsuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3ZhciBhZGRyZXNzQm94ID0gbnVsbDsKKwor
ZnVuY3Rpb24gZ2V0Q29uZmlnKCkgeworICByZXR1cm4geworICAgIHByZWZpeFVybDogYWRkcmVz
c0JveC52YWx1ZSwKKyAgICBwcmludFNpemU6IGdldEJvb2xGcm9tQ2hlY2tCb3goJ3ByaW50c2l6
ZScpLAorICAgIG51bVhIUnM6IGdldEludEZyb21JbnB1dCgnbnVtWEhScycpLAorICAgIGFzeW5j
OiBnZXRCb29sRnJvbUNoZWNrQm94KCdhc3luYycpLAorICAgIC8vIEluaXRpYWwgc2l6ZSBvZiBt
ZXNzYWdlcy4KKyAgICBudW1JdGVyYXRpb25zOiBnZXRJbnRGcm9tSW5wdXQoJ251bWl0ZXJhdGlv
bnMnKSwKKyAgICBudW1XYXJtVXBJdGVyYXRpb25zOiBnZXRJbnRGcm9tSW5wdXQoJ251bXdhcm11
cGl0ZXJhdGlvbnMnKSwKKyAgICBzdGFydFNpemU6IGdldEludEZyb21JbnB1dCgnc3RhcnRzaXpl
JyksCisgICAgLy8gU3RvcHMgYmVuY2htYXJrIHdoZW4gdGhlIHNpemUgb2YgbWVzc2FnZSBleGNl
ZWRzIHRoaXMgdGhyZXNob2xkLgorICAgIHN0b3BUaHJlc2hvbGQ6IGdldEludEZyb21JbnB1dCgn
c3RvcHRocmVzaG9sZCcpLAorICAgIG11bHRpcGxpZXJzOiBnZXRGbG9hdEFycmF5RnJvbUlucHV0
KCdtdWx0aXBsaWVycycpLAorICAgIHZlcmlmeURhdGE6IGdldEJvb2xGcm9tQ2hlY2tCb3goJ3Zl
cmlmeWRhdGEnKSwKKyAgICBtZXRob2RBbmRDYWNoZTogZ2V0U3RyaW5nRnJvbVJhZGlvQm94KCdt
ZXRob2RhbmRjYWNoZScpLAorICAgIGFkZFRvTG9nOiBhZGRUb0xvZywKKyAgICBhZGRUb1N1bW1h
cnk6IGFkZFRvU3VtbWFyeSwKKyAgICBtZWFzdXJlVmFsdWU6IG1lYXN1cmVWYWx1ZSwKKyAgICBu
b3RpZnlBYm9ydDogbm90aWZ5QWJvcnQKKyAgfTsKK30KKworZnVuY3Rpb24gb25TZW5kQmVuY2ht
YXJrKCkgeworICB2YXIgY29uZmlnID0gZ2V0Q29uZmlnKCk7CisgIGNvbmZpZy5kYXRhVHlwZSA9
IGdldFN0cmluZ0Zyb21SYWRpb0JveCgnZGF0YXR5cGVyYWRpbycpOworICBkb0FjdGlvbihjb25m
aWcsIGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicpLCAnc2VuZEJlbmNobWFyaycpOworfQor
CitmdW5jdGlvbiBvblJlY2VpdmVCZW5jaG1hcmsoKSB7CisgIHZhciBjb25maWcgPSBnZXRDb25m
aWcoKTsKKyAgY29uZmlnLmRhdGFUeXBlID0gZ2V0U3RyaW5nRnJvbVJhZGlvQm94KCdkYXRhdHlw
ZXJhZGlvJyk7CisgIGRvQWN0aW9uKGNvbmZpZywgZ2V0Qm9vbEZyb21DaGVja0JveCgnd29ya2Vy
JyksICdyZWNlaXZlQmVuY2htYXJrJyk7Cit9CisKK2Z1bmN0aW9uIG9uQmF0Y2hCZW5jaG1hcmso
KSB7CisgIHZhciBjb25maWcgPSBnZXRDb25maWcoKTsKKyAgZG9BY3Rpb24oY29uZmlnLCBnZXRC
b29sRnJvbUNoZWNrQm94KCd3b3JrZXInKSwgJ2JhdGNoQmVuY2htYXJrJyk7Cit9CisKK2Z1bmN0
aW9uIG9uU3RvcCgpIHsKKyAgdmFyIGNvbmZpZyA9IGdldENvbmZpZygpOworICBkb0FjdGlvbihj
b25maWcsIGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtlcicpLCAnc3RvcCcpOworfQorCitmdW5j
dGlvbiBpbml0KCkgeworICBhZGRyZXNzQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Fk
ZHJlc3MnKTsKKyAgbG9nQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpOworCisg
IHN1bW1hcnlCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3VtbWFyeScpOworCisgIC8v
IFNwZWNpYWwgYWRkcmVzcyBvZiBweXdlYnNvY2tldCBmb3IgWEhSIGJlbmNobWFyay4KKyAgYWRk
cmVzc0JveC52YWx1ZSA9ICcvMDczYmUwMDFlMTA5NTA2OTJjY2JmM2EyYWQyMWMyNDUnOworCisg
IGFkZFRvTG9nKHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkpOworICBh
ZGRUb1N1bW1hcnkod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSk7CisK
KyAgaW5pdFdvcmtlcignWEhSJywgJycpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9ImluaXQoKSI+CisKKzxmb3JtIGlkPSJiZW5jaG1hcmtfZm9ybSI+CisgIHVybCBwcmVm
aXggPGlucHV0IHR5cGU9InRleHQiIGlkPSJhZGRyZXNzIiBzaXplPSI0MCI+CisgIDxpbnB1dCB0
eXBlPSJidXR0b24iIHZhbHVlPSJzZW5kIiBvbmNsaWNrPSJvblNlbmRCZW5jaG1hcmsoKSI+Cisg
IDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJyZWNlaXZlIiBvbmNsaWNrPSJvblJlY2VpdmVC
ZW5jaG1hcmsoKSI+CisgIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJiYXRjaCIgb25jbGlj
az0ib25CYXRjaEJlbmNobWFyaygpIj4KKyAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9InN0
b3AiIG9uY2xpY2s9Im9uU3RvcCgpIj4KKworICA8YnIvPgorCisgIDxpbnB1dCB0eXBlPSJjaGVj
a2JveCIgaWQ9InByaW50c2l6ZSIgY2hlY2tlZD4KKyAgPGxhYmVsIGZvcj0icHJpbnRzaXplIj5Q
cmludCBzaXplIGFuZCB0aW1lIHBlciBtZXNzYWdlPC9sYWJlbD4KKyAgPGlucHV0IHR5cGU9ImNo
ZWNrYm94IiBpZD0idmVyaWZ5ZGF0YSIgY2hlY2tlZD4KKyAgPGxhYmVsIGZvcj0idmVyaWZ5ZGF0
YSI+VmVyaWZ5IGRhdGE8L2xhYmVsPgorICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJ3b3Jr
ZXIiPgorICA8bGFiZWwgZm9yPSJ3b3JrZXIiPlJ1biBvbiB3b3JrZXI8L2xhYmVsPgorICA8aW5w
dXQgdHlwZT0iY2hlY2tib3giIGlkPSJhc3luYyIgY2hlY2tlZD4KKyAgPGxhYmVsIGZvcj0iYXN5
bmMiPkFzeW5jPC9sYWJlbD48YnI+CisgIChSZWNlaXZlICZhbXA7JmFtcDsgTm9uLVdvcmtlciAm
YW1wOyZhbXA7IFN5bmMgaXMgbm90IHN1cHBvcnRlZCBieSBzcGVjKQorCisgIDxici8+CisKKyAg
UGFyYW1ldGVyczoKKworICA8YnIvPgorCisgIDx0YWJsZT4KKyAgICA8dHI+CisgICAgICA8dGQ+
TnVtIFhIUnM8L3RkPgorICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibnVtWEhScyIg
dmFsdWU9IjEiPjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+TnVtYmVyIG9m
IGl0ZXJhdGlvbnM8L3RkPgorICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibnVtaXRl
cmF0aW9ucyIgdmFsdWU9IjEiPjwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+
TnVtYmVyIG9mIHdhcm0tdXAgaXRlcmF0aW9uczwvdGQ+CisgICAgICA8dGQ+PGlucHV0IHR5cGU9
InRleHQiIGlkPSJudW13YXJtdXBpdGVyYXRpb25zIiB2YWx1ZT0iMCI+PC90ZD4KKyAgICA8L3Ry
PgorICAgIDx0cj4KKyAgICAgIDx0ZD5TdGFydCBzaXplPC90ZD4KKyAgICAgIDx0ZD48aW5wdXQg
dHlwZT0idGV4dCIgaWQ9InN0YXJ0c2l6ZSIgdmFsdWU9IjEwMjQwIj48L3RkPgorICAgIDwvdHI+
CisgICAgPHRyPgorICAgICAgPHRkPlN0b3AgdGhyZXNob2xkPC90ZD4KKyAgICAgIDx0ZD48aW5w
dXQgdHlwZT0idGV4dCIgaWQ9InN0b3B0aHJlc2hvbGQiIHZhbHVlPSIxMDI0MDAwMDAiPjwvdGQ+
CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGQ+TXVsdGlwbGllcnM8L3RkPgorICAgICAg
PHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibXVsdGlwbGllcnMiIHZhbHVlPSI1LCAyIj48L3Rk
PgorICAgIDwvdHI+CisgIDwvdGFibGU+CisKKyAgU2V0IGRhdGEgdHlwZQorICA8aW5wdXQgdHlw
ZT0icmFkaW8iCisgICAgICAgICBuYW1lPSJkYXRhdHlwZXJhZGlvIgorICAgICAgICAgaWQ9ImRh
dGF0eXBlcmFkaW90ZXh0IgorICAgICAgICAgdmFsdWU9InRleHQiCisgICAgICAgICBjaGVja2Vk
PjxsYWJlbCBmb3I9ImRhdGF0eXBlcmFkaW90ZXh0Ij50ZXh0PC9sYWJlbD4KKyAgPGlucHV0IHR5
cGU9InJhZGlvIgorICAgICAgICAgbmFtZT0iZGF0YXR5cGVyYWRpbyIKKyAgICAgICAgIGlkPSJk
YXRhdHlwZXJhZGlvYmxvYiIKKyAgICAgICAgIHZhbHVlPSJibG9iIgorICAgICAgICAgPjxsYWJl
bCBmb3I9ImRhdGF0eXBlcmFkaW9ibG9iIj5ibG9iPC9sYWJlbD4KKyAgPGlucHV0IHR5cGU9InJh
ZGlvIgorICAgICAgICAgbmFtZT0iZGF0YXR5cGVyYWRpbyIKKyAgICAgICAgIGlkPSJkYXRhdHlw
ZXJhZGlvYXJyYXlidWZmZXIiCisgICAgICAgICB2YWx1ZT0iYXJyYXlidWZmZXIiCisgICAgICAg
ICA+PGxhYmVsIGZvcj0iZGF0YXR5cGVyYWRpb2FycmF5YnVmZmVyIj5hcnJheWJ1ZmZlcjwvbGFi
ZWw+CisKKyAgPGJyPgorICBTZXQgSFRUUCBtZXRob2QgYW5kIGNhY2hlIGNvbnRyb2wKKyAgPGlu
cHV0IHR5cGU9InJhZGlvIgorICAgICAgICAgbmFtZT0ibWV0aG9kYW5kY2FjaGUiCisgICAgICAg
ICBpZD0ibWV0aG9kYW5kY2FjaGVQT1NUIgorICAgICAgICAgdmFsdWU9IlBPU1QiCisgICAgICAg
ICBjaGVja2VkPjxsYWJlbCBmb3I9Im1ldGhvZGFuZGNhY2hlUE9TVCI+UE9TVCAoTm8gQ2FjaGUp
PC9sYWJlbD4KKyAgPGlucHV0IHR5cGU9InJhZGlvIgorICAgICAgICAgbmFtZT0ibWV0aG9kYW5k
Y2FjaGUiCisgICAgICAgICBpZD0ibWV0aG9kYW5kY2FjaGVHRVROT0NBQ0hFIgorICAgICAgICAg
dmFsdWU9IkdFVC1OT0NBQ0hFIgorICAgICAgICAgPjxsYWJlbCBmb3I9Im1ldGhvZGFuZGNhY2hl
R0VUTk9DQUNIRSI+R0VUIChObyBDYWNoZSk8L2xhYmVsPgorICA8aW5wdXQgdHlwZT0icmFkaW8i
CisgICAgICAgICBuYW1lPSJtZXRob2RhbmRjYWNoZSIKKyAgICAgICAgIGlkPSJtZXRob2RhbmRj
YWNoZUdFVENBQ0hFIgorICAgICAgICAgdmFsdWU9IkdFVC1DQUNIRSIKKyAgICAgICAgID48bGFi
ZWwgZm9yPSJtZXRob2RhbmRjYWNoZUdFVENBQ0hFIj5HRVQgKENhY2hlKTwvbGFiZWw+CisgIDxi
cj4KKyAgPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTogODAlIj4oQ2FjaGUgY29udHJvbDogcmVjZWl2
ZSBvbmx5LiBDYWNoZSBpcyB2YWxpZCBmb3IgMTAgc2Vjb25kcy4gVGhpcyBjb25maWcgY29udHJv
bHMgQ2FjaGUtY29udHJvbCBIVFRQIHJlc3BvbnNlIGhlYWRlci4gQnJvd3NlcnMgbWlnaHQgbm90
IGNhY2hlIGRhdGEgZS5nLiB3aGVuIGl0IGlzIGxhcmdlKTwvc3Bhbj4KKzwvZm9ybT4KKworPGRp
diBpZD0ibG9nX2RpdiI+CisgIDx0ZXh0YXJlYQorICAgICAgaWQ9ImxvZyIgcm93cz0iMjAiIHN0
eWxlPSJ3aWR0aDogMTAwJSIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KKzwvZGl2PgorPGRpdiBpZD0i
c3VtbWFyeV9kaXYiPgorICBTdW1tYXJ5CisgIDx0ZXh0YXJlYQorICAgICAgaWQ9InN1bW1hcnki
IHJvd3M9IjIwIiBzdHlsZT0id2lkdGg6IDEwMCUiIHJlYWRvbmx5PjwvdGV4dGFyZWE+Cis8L2Rp
dj4KKworPGRpdiBpZD0ibm90ZV9kaXYiPgorICBOb3RlOgorICA8dWw+CisgICAgPGxpPkVmZmVj
dCBvZiBSVFQgYW5kIHRpbWUgc3BlbnQgZm9yIEFycmF5QnVmZmVyIGNyZWF0aW9uIGluIHJlY2Vp
dmUgYmVuY2htYXJrcyBhcmUgbm90IGVsaW1pbmF0ZWQuPC9saT4KKyAgICA8bGk+VGhlIFN0ZGRl
diBjb2x1bW4gc2hvd3MgTmFOIHdoZW4gdGhlIG51bWJlciBvZiBpdGVyYXRpb25zIGlzIHNldCB0
byAxLjwvbGk+CisgIDwvdWw+Cis8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9leGFtcGxlL3hocl9iZW5jaG1hcmsuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUveGhyX2JlbmNo
bWFyay5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xNGE5N2U4ZmI4M2U5NDhjODVmOWYwMjEwMjFkYzc0NzkzMDVl
NmMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3hocl9iZW5jaG1hcmsuanMKQEAg
LTAsMCArMSwyOTIgQEAKKy8vIENvcHlyaWdodCAyMDE0IEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisvLworLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg
YSBCU0Qtc3R5bGUKKy8vIGxpY2Vuc2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIENPUFlJTkcg
ZmlsZSBvciBhdAorLy8gaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vb3Blbi1zb3VyY2Uv
bGljZW5zZXMvYnNkCisKK3ZhciBpc1dvcmtlciA9IHR5cGVvZiBpbXBvcnRTY3JpcHRzICE9PSAi
dW5kZWZpbmVkIjsKKworaWYgKGlzV29ya2VyKSB7CisgIC8vIFJ1bm5pbmcgb24gYSB3b3JrZXIK
KyAgaW1wb3J0U2NyaXB0cygndXRpbC5qcycsICd1dGlsX3dvcmtlci5qcycpOworfQorCisvLyBO
YW1lc3BhY2UgZm9yIGhvbGRpbmcgZ2xvYmFscy4KK3ZhciBiZW5jaG1hcmsgPSB7fTsKK2JlbmNo
bWFyay5zdGFydFRpbWVJbk1zID0gMDsKKwordmFyIHhocnMgPSBbXTsKKwordmFyIHRpbWVySUQg
PSBudWxsOworCitmdW5jdGlvbiBkZXN0cm95QWxsWEhScygpIHsKKyAgZm9yICh2YXIgaSA9IDA7
IGkgPCB4aHJzLmxlbmd0aDsgKytpKSB7CisgICAgeGhyc1tpXS5vbnJlYWR5c3RhdGVjaGFuZ2Ug
PSBudWxsOworICAgIC8vIEFib3J0IFhIUnMgaWYgdGhleSBhcmUgbm90IHlldCBET05FIHN0YXRl
LgorICAgIC8vIENhbGxpbmcgYWJvcnQoKSBoZXJlIChpLmUuIGluIG9ucmVhZHlzdGF0ZWNoYW5n
ZSBoYW5kbGVyKSAKKyAgICAvLyBjYXVzZXMgIk5ldHdvcmtFcnJvciIgbWVzc2FnZXMgaW4gRGV2
VG9vbHMgaW4gc3luYyBtb2RlLAorICAgIC8vIGV2ZW4gaWYgaXQgaXMgYWZ0ZXIgdHJhbnNpdGlv
biB0byBET05FIHN0YXRlLgorICAgIGlmICh4aHJzW2ldLnJlYWR5U3RhdGUgIT0gWE1MSHR0cFJl
cXVlc3QuRE9ORSkKKyAgICAgIHhocnNbaV0uYWJvcnQoKTsKKyAgfQorICB4aHJzID0gW107Cisg
IC8vIGdjKCkgbWlnaHQgYmUgbmVlZGVkIGZvciBDaHJvbWUvQmxvYgorfQorCitmdW5jdGlvbiBz
ZW5kQmVuY2htYXJrU3RlcChzaXplLCBjb25maWcsIGlzV2FybVVwKSB7CisgIHRpbWVySUQgPSBu
dWxsOworCisgIGJlbmNobWFyay5zdGFydFRpbWVJbk1zID0gbnVsbDsKKyAgdmFyIHRvdGFsU2l6
ZSA9IDA7CisgIHZhciB0b3RhbFJlcGxpZWQgPSAwOworCisgIHZhciBvblJlYWR5U3RhdGVDaGFu
Z2VIYW5kbGVyID0gZnVuY3Rpb24gKCkgeworICAgIGlmICh0aGlzLnJlYWR5U3RhdGUgIT0gdGhp
cy5ET05FKSB7CisgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHRoaXMuc3RhdHVzICE9
IDIwMCkgeworICAgICAgY29uZmlnLmFkZFRvTG9nKCdGYWlsZWQgKHN0YXR1cz0nICsgdGhpcy5z
dGF0dXMgKyAnKScpOworICAgICAgZGVzdHJveUFsbFhIUnMoKTsKKyAgICAgIGNvbmZpZy5ub3Rp
ZnlBYm9ydCgpOworICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChjb25maWcudmVyaWZ5
RGF0YSAmJgorICAgICAgICAhdmVyaWZ5QWNrbm93bGVkZ2VtZW50KGNvbmZpZywgdGhpcy5yZXNw
b25zZSwgc2l6ZSkpIHsKKyAgICAgIGRlc3Ryb3lBbGxYSFJzKCk7CisgICAgICBjb25maWcubm90
aWZ5QWJvcnQoKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB0b3RhbFJlcGxpZWQgKz0g
c2l6ZTsKKworICAgIGlmICh0b3RhbFJlcGxpZWQgPCB0b3RhbFNpemUpIHsKKyAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBpZiAoYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPT0gbnVsbCkgewor
ICAgICAgY29uZmlnLmFkZFRvTG9nKCdzdGFydFRpbWVJbk1zIG5vdCBzZXQnKTsKKyAgICAgIGRl
c3Ryb3lBbGxYSFJzKCk7CisgICAgICBjb25maWcubm90aWZ5QWJvcnQoKTsKKyAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICAvLyBDaGVjayBhbmQgd2FybiBpZiBwcm94eSBpcyBlbmFibGVkLgor
ICAgIGlmICh0aGlzLmdldFJlc3BvbnNlSGVhZGVyKCdWaWEnKSAhPT0gbnVsbCkgeworICAgICAg
Y29uZmlnLmFkZFRvTG9nKCdXQVJOSU5HOiBwcm94eSBzZWVtcyBlbmFibGVkLicpOworICAgIH0K
KworICAgIGNhbGN1bGF0ZUFuZExvZ1Jlc3VsdChjb25maWcsIHNpemUsIGJlbmNobWFyay5zdGFy
dFRpbWVJbk1zLCB0b3RhbFNpemUsCisgICAgICAgIGlzV2FybVVwKTsKKworICAgIGRlc3Ryb3lB
bGxYSFJzKCk7CisKKyAgICBydW5OZXh0VGFzayhjb25maWcpOworICB9OworCisgIGZvciAodmFy
IGkgPSAwOyBpIDwgY29uZmlnLm51bVhIUnM7ICsraSkgeworICAgIHZhciB4aHIgPSBuZXcgWE1M
SHR0cFJlcXVlc3QoKTsKKyAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gb25SZWFkeVN0YXRl
Q2hhbmdlSGFuZGxlcjsKKyAgICB4aHJzLnB1c2goeGhyKTsKKyAgfQorCisgIHZhciBkYXRhQXJy
YXkgPSBbXTsKKworICBmb3IgKHZhciBpID0gMDsgaSA8IHhocnMubGVuZ3RoOyArK2kpIHsKKyAg
ICB2YXIgZGF0YSA9IG51bGw7CisgICAgaWYgKGNvbmZpZy5kYXRhVHlwZSA9PSAnYXJyYXlidWZm
ZXInIHx8CisgICAgICAgIGNvbmZpZy5kYXRhVHlwZSA9PSAnYmxvYicpIHsKKyAgICAgIGRhdGEg
PSBuZXcgQXJyYXlCdWZmZXIoc2l6ZSk7CisKKyAgICAgIGZpbGxBcnJheUJ1ZmZlcihkYXRhLCAw
eDYxKTsKKworICAgICAgaWYgKGNvbmZpZy5kYXRhVHlwZSA9PSAnYmxvYicpIHsKKyAgICAgICAg
ZGF0YSA9IG5ldyBCbG9iKFtkYXRhXSk7CisgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgIGRh
dGEgPSByZXBlYXRTdHJpbmcoJ2EnLCBzaXplKTsKKyAgICB9CisKKyAgICBkYXRhQXJyYXkucHVz
aChkYXRhKTsKKyAgfQorCisKKyAgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPSBnZXRUaW1lU3Rh
bXAoKTsKKyAgdG90YWxTaXplID0gc2l6ZSAqIHhocnMubGVuZ3RoOworCisgIGZvciAodmFyIGkg
PSAwOyBpIDwgeGhycy5sZW5ndGg7ICsraSkgeworICAgIHZhciBkYXRhID0gZGF0YUFycmF5W2ld
OworICAgIHZhciB4aHIgPSB4aHJzW2ldOworICAgIHhoci5vcGVuKCdQT1NUJywgY29uZmlnLnBy
ZWZpeFVybCArICdfc2VuZCcsIGNvbmZpZy5hc3luYyk7CisgICAgeGhyLnNlbmQoZGF0YSk7Cisg
IH0KK30KKworZnVuY3Rpb24gcmVjZWl2ZUJlbmNobWFya1N0ZXAoc2l6ZSwgY29uZmlnLCBpc1dh
cm1VcCkgeworICB0aW1lcklEID0gbnVsbDsKKworICBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcyA9
IG51bGw7CisgIHZhciB0b3RhbFNpemUgPSAwOworICB2YXIgdG90YWxSZXBsaWVkID0gMDsKKwor
ICB2YXIgY2hlY2tSZXN1bHRBbmRDb250aW51ZSA9IGZ1bmN0aW9uIChieXRlc1JlY2VpdmVkLCB2
ZXJpZmljYXRpb25SZXN1bHQpIHsKKyAgICBpZiAoIXZlcmlmaWNhdGlvblJlc3VsdCkgeworICAg
ICAgY29uZmlnLmFkZFRvTG9nKCdSZXNwb25zZSB2ZXJpZmljYXRpb24gZmFpbGVkJyk7CisgICAg
ICBkZXN0cm95QWxsWEhScygpOworICAgICAgY29uZmlnLm5vdGlmeUFib3J0KCk7CisgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgdG90YWxSZXBsaWVkICs9IGJ5dGVzUmVjZWl2ZWQ7CisKKyAg
ICBpZiAodG90YWxSZXBsaWVkIDwgdG90YWxTaXplKSB7CisgICAgICByZXR1cm47CisgICAgfQor
CisgICAgaWYgKGJlbmNobWFyay5zdGFydFRpbWVJbk1zID09IG51bGwpIHsKKyAgICAgIGNvbmZp
Zy5hZGRUb0xvZygnc3RhcnRUaW1lSW5NcyBub3Qgc2V0Jyk7CisgICAgICBkZXN0cm95QWxsWEhS
cygpOworICAgICAgY29uZmlnLm5vdGlmeUFib3J0KCk7CisgICAgICByZXR1cm47CisgICAgfQor
CisgICAgY2FsY3VsYXRlQW5kTG9nUmVzdWx0KGNvbmZpZywgc2l6ZSwgYmVuY2htYXJrLnN0YXJ0
VGltZUluTXMsIHRvdGFsU2l6ZSwKKyAgICAgICAgaXNXYXJtVXApOworCisgICAgZGVzdHJveUFs
bFhIUnMoKTsKKworICAgIHJ1bk5leHRUYXNrKGNvbmZpZyk7CisgIH0KKworICB2YXIgb25SZWFk
eVN0YXRlQ2hhbmdlSGFuZGxlciA9IGZ1bmN0aW9uICgpIHsKKyAgICBpZiAodGhpcy5yZWFkeVN0
YXRlICE9IHRoaXMuRE9ORSkgeworICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICh0aGlz
LnN0YXR1cyAhPSAyMDApIHsKKyAgICAgIGNvbmZpZy5hZGRUb0xvZygnRmFpbGVkIChzdGF0dXM9
JyArIHRoaXMuc3RhdHVzICsgJyknKTsKKyAgICAgIGRlc3Ryb3lBbGxYSFJzKCk7CisgICAgICBj
b25maWcubm90aWZ5QWJvcnQoKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBDaGVj
ayBhbmQgd2FybiBpZiBwcm94eSBpcyBlbmFibGVkLgorICAgIGlmICh0aGlzLmdldFJlc3BvbnNl
SGVhZGVyKCdWaWEnKSAhPT0gbnVsbCkgeworICAgICAgY29uZmlnLmFkZFRvTG9nKCdXQVJOSU5H
OiBwcm94eSBzZWVtcyBlbmFibGVkLicpOworICAgIH0KKworICAgIHZhciBieXRlc1JlY2VpdmVk
ID0gLTE7CisgICAgaWYgKHRoaXMucmVzcG9uc2VUeXBlID09ICdhcnJheWJ1ZmZlcicpIHsKKyAg
ICAgIGJ5dGVzUmVjZWl2ZWQgPSB0aGlzLnJlc3BvbnNlLmJ5dGVMZW5ndGg7CisgICAgfSBlbHNl
IGlmICh0aGlzLnJlc3BvbnNlVHlwZSA9PSAnYmxvYicpIHsKKyAgICAgIGJ5dGVzUmVjZWl2ZWQg
PSB0aGlzLnJlc3BvbnNlLnNpemU7CisgICAgfSBlbHNlIHsKKyAgICAgIGJ5dGVzUmVjZWl2ZWQg
PSB0aGlzLnJlc3BvbnNlLmxlbmd0aDsKKyAgICB9CisgICAgaWYgKGJ5dGVzUmVjZWl2ZWQgIT0g
c2l6ZSkgeworICAgICAgY29uZmlnLmFkZFRvTG9nKCdFeHBlY3RlZCAnICsgc2l6ZSArCisgICAg
ICAgICAgJ0IgYnV0IHJlY2VpdmVkICcgKyBieXRlc1JlY2VpdmVkICsgJ0InKTsKKyAgICAgIGRl
c3Ryb3lBbGxYSFJzKCk7CisgICAgICBjb25maWcubm90aWZ5QWJvcnQoKTsKKyAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBpZiAodGhpcy5yZXNwb25zZVR5cGUgPT0gJ2FycmF5YnVmZmVyJykg
eworICAgICAgY2hlY2tSZXN1bHRBbmRDb250aW51ZShieXRlc1JlY2VpdmVkLAorICAgICAgICAg
ICFjb25maWcudmVyaWZ5RGF0YSB8fCB2ZXJpZnlBcnJheUJ1ZmZlcih0aGlzLnJlc3BvbnNlLCAw
eDYxKSk7CisgICAgfSBlbHNlIGlmICh0aGlzLnJlc3BvbnNlVHlwZSA9PSAnYmxvYicpIHsKKyAg
ICAgIGlmIChjb25maWcudmVyaWZ5RGF0YSkKKyAgICAgICAgdmVyaWZ5QmxvYihjb25maWcsIHRo
aXMucmVzcG9uc2UsIDB4NjEsIGNoZWNrUmVzdWx0QW5kQ29udGludWUpOworICAgICAgZWxzZQor
ICAgICAgICBjaGVja1Jlc3VsdEFuZENvbnRpbnVlKGJ5dGVzUmVjZWl2ZWQsIHRydWUpOworICAg
IH0gZWxzZSB7CisgICAgICBjaGVja1Jlc3VsdEFuZENvbnRpbnVlKAorICAgICAgICAgIGJ5dGVz
UmVjZWl2ZWQsCisgICAgICAgICAgIWNvbmZpZy52ZXJpZnlEYXRhIHx8CisgICAgICAgICAgICAg
IHRoaXMucmVzcG9uc2UgPT0gcmVwZWF0U3RyaW5nKCdhJywgdGhpcy5yZXNwb25zZS5sZW5ndGgp
KTsKKyAgICB9CisgIH07CisKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb25maWcubnVtWEhSczsg
KytpKSB7CisgICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5vbnJl
YWR5c3RhdGVjaGFuZ2UgPSBvblJlYWR5U3RhdGVDaGFuZ2VIYW5kbGVyOworICAgIHhocnMucHVz
aCh4aHIpOworICB9CisKKyAgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPSBnZXRUaW1lU3RhbXAo
KTsKKyAgdG90YWxTaXplID0gc2l6ZSAqIHhocnMubGVuZ3RoOworCisgIGZvciAodmFyIGkgPSAw
OyBpIDwgeGhycy5sZW5ndGg7ICsraSkgeworICAgIHZhciB4aHIgPSB4aHJzW2ldOworICAgIGlm
IChjb25maWcubWV0aG9kQW5kQ2FjaGUgPT09ICdHRVQtTk9DQUNIRScpIHsKKyAgICAgIHhoci5v
cGVuKCdHRVQnLCBjb25maWcucHJlZml4VXJsICsgJ19yZWNlaXZlX2dldG5vY2FjaGU/JyArIHNp
emUsCisgICAgICAgICAgY29uZmlnLmFzeW5jKTsKKyAgICAgIHhoci5yZXNwb25zZVR5cGUgPSBj
b25maWcuZGF0YVR5cGU7CisgICAgICB4aHIuc2VuZCgpOworICAgIH0gZWxzZSBpZiAoY29uZmln
Lm1ldGhvZEFuZENhY2hlID09PSAnR0VULUNBQ0hFJykgeworICAgICAgeGhyLm9wZW4oJ0dFVCcs
IGNvbmZpZy5wcmVmaXhVcmwgKyAnX3JlY2VpdmVfZ2V0Y2FjaGU/JyArIHNpemUsCisgICAgICAg
ICAgY29uZmlnLmFzeW5jKTsKKyAgICAgIHhoci5yZXNwb25zZVR5cGUgPSBjb25maWcuZGF0YVR5
cGU7CisgICAgICB4aHIuc2VuZCgpOworICAgIH0gZWxzZSB7CisgICAgICB4aHIub3BlbignUE9T
VCcsIGNvbmZpZy5wcmVmaXhVcmwgKyAnX3JlY2VpdmUnLCBjb25maWcuYXN5bmMpOworICAgICAg
eGhyLnJlc3BvbnNlVHlwZSA9IGNvbmZpZy5kYXRhVHlwZTsKKyAgICAgIHhoci5zZW5kKHNpemUg
KyAnIG5vbmUnKTsKKyAgICB9CisgIH0KK30KKworCitmdW5jdGlvbiBnZXRDb25maWdTdHJpbmco
Y29uZmlnKSB7CisgIHJldHVybiAnKCcgKyBjb25maWcuZGF0YVR5cGUgKworICAgICcsIHZlcmlm
eURhdGE9JyArIGNvbmZpZy52ZXJpZnlEYXRhICsKKyAgICAnLCAnICsgKGlzV29ya2VyID8gJ1dv
cmtlcicgOiAnTWFpbicpICsKKyAgICAnLCAnICsgKGNvbmZpZy5hc3luYyA/ICdBc3luYycgOiAn
U3luYycpICsKKyAgICAnLCBudW1YSFJzPScgKyBjb25maWcubnVtWEhScyArCisgICAgJywgbnVt
SXRlcmF0aW9ucz0nICsgY29uZmlnLm51bUl0ZXJhdGlvbnMgKworICAgICcsIG51bVdhcm1VcEl0
ZXJhdGlvbnM9JyArIGNvbmZpZy5udW1XYXJtVXBJdGVyYXRpb25zICsKKyAgICAnKSc7Cit9CisK
K2Z1bmN0aW9uIHN0YXJ0QmVuY2htYXJrKGNvbmZpZykgeworICBjbGVhclRpbWVvdXQodGltZXJJ
RCk7CisgIGRlc3Ryb3lBbGxYSFJzKCk7CisKKyAgcnVuTmV4dFRhc2soY29uZmlnKTsKK30KKwor
ZnVuY3Rpb24gYmF0Y2hCZW5jaG1hcmsob3JpZ2luYWxDb25maWcpIHsKKyAgb3JpZ2luYWxDb25m
aWcuYWRkVG9Mb2coJ0JhdGNoIGJlbmNobWFyaycpOworCisgIHRhc2tzID0gW107CisgIGNsZWFy
QXZlcmFnZURhdGEoKTsKKworICB2YXIgZGF0YVR5cGVzID0gWyd0ZXh0JywgJ2Jsb2InLCAnYXJy
YXlidWZmZXInXTsKKyAgdmFyIHN0ZXBGdW5jcyA9IFtzZW5kQmVuY2htYXJrU3RlcCwgcmVjZWl2
ZUJlbmNobWFya1N0ZXBdOworICB2YXIgbmFtZXMgPSBbJ1NlbmQnLCAnUmVjZWl2ZSddOworICB2
YXIgYXN5bmMgPSBbdHJ1ZSwgZmFsc2VdOworICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ZXBGdW5j
cy5sZW5ndGg7ICsraSkgeworICAgIGZvciAodmFyIGogPSAwOyBqIDwgZGF0YVR5cGVzLmxlbmd0
aDsgKytqKSB7CisgICAgICBmb3IgKHZhciBrID0gMDsgayA8IGFzeW5jLmxlbmd0aDsgKytrKSB7
CisgICAgICAgIHZhciBjb25maWcgPSBjbG9uZUNvbmZpZyhvcmlnaW5hbENvbmZpZyk7CisgICAg
ICAgIGNvbmZpZy5kYXRhVHlwZSA9IGRhdGFUeXBlc1tqXTsKKyAgICAgICAgY29uZmlnLmFzeW5j
ID0gYXN5bmNba107CisKKyAgICAgICAgLy8gUmVjZWl2ZSAmJiBOb24tV29ya2VyICYmIFN5bmMg
aXMgbm90IHN1cHBvcnRlZCBieSB0aGUgc3BlYworICAgICAgICBpZiAoc3RlcEZ1bmNzW2ldID09
PSByZWNlaXZlQmVuY2htYXJrU3RlcCAmJiAhaXNXb3JrZXIgJiYKKyAgICAgICAgICAgICFjb25m
aWcuYXN5bmMpCisgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgYWRkVGFza3MoY29uZmln
LCBzdGVwRnVuY3NbaV0pOworICAgICAgICBhZGRSZXN1bHRSZXBvcnRpbmdUYXNrKGNvbmZpZywK
KyAgICAgICAgICAgIG5hbWVzW2ldICsgJyBiZW5jaG1hcmsgJyArIGdldENvbmZpZ1N0cmluZyhj
b25maWcpKTsKKyAgICAgIH0KKyAgICB9CisgIH0KKworICBzdGFydEJlbmNobWFyayhjb25maWcp
OworfQorCitmdW5jdGlvbiBjbGVhbnVwKCkgeworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxl
L3hocl9ldmVudF9sb2dnZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS94aHJfZXZlbnRfbG9nZ2VyLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTBkYjBmYmVjNDk0NjUwOTEzMjliZGFmNDcxN2Q3MjE5ODg2YWQ2Zgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS94aHJfZXZlbnRfbG9nZ2VyLmh0bWwKQEAg
LTAsMCArMSwxMjMgQEAKKzwhLS0KK0NvcHlyaWdodCAyMDE0IEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisKK1VzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEg
QlNELXN0eWxlCitsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBDT1BZSU5HIGZpbGUg
b3IgYXQKK2h0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL29wZW4tc291cmNlL2xpY2Vuc2Vz
L2JzZAorLS0+CisKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+WEhSIGV2ZW50IGxvZ2dlcjwvdGl0
bGU+Cis8c2NyaXB0IHNyYz0idXRpbF9tYWluLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIg
ZXZlbnRzID0gW107Cit2YXIgc3RhcnRUaW1lID0gMDsKKworZnVuY3Rpb24gcnVuKCkgeworICBl
dmVudHMgPSBbXTsKKyAgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTsKKworICBmdW5jdGlvbiBwdXNo
VG9Mb2codHlwZSkgeworICAgIHZhciB0aW1lID0gRGF0ZS5ub3coKTsKKyAgICBpZiAoZXZlbnRz
Lmxlbmd0aCAhPSAwICYmIHR5cGUgPT09IGV2ZW50c1tldmVudHMubGVuZ3RoIC0gMV0udHlwZSkg
eworICAgICAgZXZlbnRzW2V2ZW50cy5sZW5ndGggLSAxXS5jb3VudCArPSAxOworICAgICAgZXZl
bnRzW2V2ZW50cy5sZW5ndGggLSAxXS5sYXN0ID0gdGltZTsKKyAgICB9IGVsc2UgeworICAgICAg
ZXZlbnRzLnB1c2goe3R5cGU6IHR5cGUsIGNvdW50OiAxLCBmaXJzdDogdGltZSwgbGFzdDogdGlt
ZX0pOworICAgIH0KKyAgfQorCisgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKwor
ICBmdW5jdGlvbiBnZXRQcm9ncmVzc0V2ZW50RHVtcChlKSB7CisgICAgcmV0dXJuICcoJyArIGUu
bGVuZ3RoQ29tcHV0YWJsZSArICcsICcgKyBlLmxvYWRlZCArICcsICcgKyBlLnRvdGFsICsgJykn
OworICB9CisKKyAgdmFyIGR1bXBQcm9ncmVzc0V2ZW50ID0gZ2V0Qm9vbEZyb21DaGVja0JveCgn
ZHVtcHByb2dyZXNzZXZlbnQnKTsKKworICBmdW5jdGlvbiBsb2coZSkgeworICAgIHZhciB0eXBl
ID0gZS50eXBlOworICAgIGlmICh0eXBlID09PSAncmVhZHlzdGF0ZWNoYW5nZScpIHsKKyAgICAg
IHR5cGUgKz0gZS50YXJnZXQucmVhZHlTdGF0ZTsKKyAgICB9CisgICAgaWYgKGR1bXBQcm9ncmVz
c0V2ZW50ICYmIChlIGluc3RhbmNlb2YgUHJvZ3Jlc3NFdmVudCkpIHsKKyAgICAgIHR5cGUgKz0g
Z2V0UHJvZ3Jlc3NFdmVudER1bXAoZSk7CisgICAgfQorICAgIHB1c2hUb0xvZyh0eXBlKTsKKyAg
fTsKKworICBmdW5jdGlvbiBsb2dVcGxvYWQoZSkgeworICAgIHZhciB0eXBlID0gZS50eXBlOwor
ICAgIGlmIChkdW1wUHJvZ3Jlc3NFdmVudCAmJiAoZSBpbnN0YW5jZW9mIFByb2dyZXNzRXZlbnQp
KSB7CisgICAgICB0eXBlICs9IGdldFByb2dyZXNzRXZlbnREdW1wKGUpOworICAgIH0KKyAgICBw
dXNoVG9Mb2coJ3VwbG9hZCcgKyB0eXBlKTsKKyAgfQorCisgIGlmIChnZXRCb29sRnJvbUNoZWNr
Qm94KCd1cGxvYWQnKSkgeworICAgIHZhciB1cGxvYWQgPSB4aHIudXBsb2FkOworICAgIHVwbG9h
ZC5vbmxvYWRzdGFydCA9IGxvZ1VwbG9hZDsKKyAgICB1cGxvYWQub25wcm9ncmVzcyA9IGxvZ1Vw
bG9hZDsKKyAgICB1cGxvYWQub25hYm9ydCA9IGxvZ1VwbG9hZDsKKyAgICB1cGxvYWQub25lcnJv
ciA9IGxvZ1VwbG9hZDsKKyAgICB1cGxvYWQub25sb2FkID0gbG9nVXBsb2FkOworICAgIHVwbG9h
ZC5vbnRpbWVvdXQgPSBsb2dVcGxvYWQ7CisgICAgdXBsb2FkLm9ubG9hZGVuZCA9IGxvZ1VwbG9h
ZDsKKyAgfQorCisgIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBsb2c7CisgIHhoci5vbmxvYWRz
dGFydCA9IGxvZzsKKyAgeGhyLm9ucHJvZ3Jlc3MgPSBsb2c7CisgIHhoci5vbmFib3J0ID0gbG9n
OworICB4aHIub25lcnJvciA9IGxvZzsKKyAgeGhyLm9ubG9hZCA9IGxvZzsKKyAgeGhyLm9udGlt
ZW91dCA9IGxvZzsKKyAgeGhyLm9ubG9hZGVuZCA9IGxvZzsKKworICB4aHIub3BlbignUE9TVCcs
ICcvMDczYmUwMDFlMTA5NTA2OTJjY2JmM2EyYWQyMWMyNDVfcmVjZWl2ZScsCisgICAgICAgICAg
IGdldEJvb2xGcm9tQ2hlY2tCb3goJ2FzeW5jJykpOworICB2YXIgc2l6ZSA9IGdldEludEZyb21J
bnB1dCgnc2l6ZScpOworICB2YXIgY2h1bmtlZE1vZGUgPSAnbm9uZSc7CisgIGlmIChnZXRCb29s
RnJvbUNoZWNrQm94KCdjaHVua2VkcmVzcG9uc2UnKSkgeworICAgIGNodW5rZWRNb2RlID0gJ2No
dW5rZWQnOworICB9CisgIHhoci5zZW5kKHNpemUgKyAnICcgKyBjaHVua2VkTW9kZSk7Cit9CisK
K2Z1bmN0aW9uIHByaW50KCkgeworICB2YXIgcmVzdWx0ID0gJyc7CisgIGZvciAodmFyIGkgPSAw
OyBpIDwgZXZlbnRzLmxlbmd0aDsgKytpKSB7CisgICAgdmFyIGV2ZW50ID0gZXZlbnRzW2ldOwor
ICAgIHZhciBsaW5lID0gJyc7CisgICAgbGluZSArPSAoZXZlbnQuZmlyc3QgLSBzdGFydFRpbWUp
ICsgIm1zIjsKKyAgICBpZiAoZXZlbnQuY291bnQgPiAxKQorICAgICAgbGluZSArPSAiLSIgKyAo
ZXZlbnQubGFzdCAtIHN0YXJ0VGltZSkgKyAibXMiOworICAgIGVsc2UKKyAgICAgIGxpbmUgKz0g
IiAgICAgICAgIjsKKyAgICB3aGlsZShsaW5lLmxlbmd0aCA8IDE1KQorICAgICAgbGluZSArPSAi
ICI7CisgICAgbGluZSArPSAiOiAiICsgZXZlbnQudHlwZSArICcgKiAnICsgZXZlbnQuY291bnQg
KyAnXG4nOworICAgIHJlc3VsdCArPSBsaW5lOworICB9CisgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdsb2cnKS52YWx1ZSA9IHJlc3VsdDsKK30KKzwvc2NyaXB0PgorCis8Ym9keT4KKyAgPHRl
eHRhcmVhIGlkPSJsb2ciIHJvd3M9IjEwIiBjb2xzPSI3MCIgcmVhZG9ubHk+PC90ZXh0YXJlYT4K
KyAgPGJyLz4KKyAgU2l6ZTogPGlucHV0IHR5cGU9InRleHQiIGlkPSJzaXplIiB2YWx1ZT0iNjU1
MzYiPjxici8+CisgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImNodW5rZWRyZXNwb25zZSI+
CisgIDxsYWJlbCBmb3I9ImNodW5rZWRyZXNwb25zZSI+VXNlIENodW5rZWQgVC1FIGZvciByZXNw
b25zZTwvbGFiZWw+PGJyLz4KKyAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0idXBsb2FkIj4K
KyAgPGxhYmVsIGZvcj0idXBsb2FkIj5VcGxvYWQgcHJvZ3Jlc3M8L2xhYmVsPjxici8+CisgIDxp
bnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImR1bXBwcm9ncmVzc2V2ZW50Ij4KKyAgPGxhYmVsIGZv
cj0iZHVtcHByb2dyZXNzZXZlbnQiPgorICAgIER1bXAgbGVuZ3RoQ29tcHV0YWJsZS9sb2FkZWQv
dG90YWw8L2xhYmVsPjxici8+CisgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImFzeW5jIiBj
aGVja2VkPgorICA8bGFiZWwgZm9yPSJhc3luYyI+QXN5bmM8L2xhYmVsPjxici8+CisgIDxpbnB1
dCB0eXBlPSJidXR0b24iIG9uY2xpY2s9InJ1bigpIiB2YWx1ZT0iUnVuIFhIUiI+CisgIDxpbnB1
dCB0eXBlPSJidXR0b24iIG9uY2xpY2s9InByaW50KCkiIHZhbHVlPSJQcmludCBsb2ciPgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3hocl9wZXJmb3JtYW5jZV90
ZXN0X2lmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3hocl9wZXJmb3JtYW5jZV90ZXN0X2lmcmFt
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFiMDJjOWVhNTZmNmMxMGQwM2JlYzEwMzhkNjcyMmRlNmU4ZDMx
ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUveGhyX3BlcmZvcm1hbmNlX3Rlc3Rf
aWZyYW1lLmh0bWwKQEAgLTAsMCArMSw2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9InV0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InBlcmZvcm1hbmNlX3Rl
c3RfaWZyYW1lLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJ4aHJfYmVuY2htYXJrLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L19faW5p
dF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzA5
MzNhMjIwNDUxZmFkYjZhMDFhNWMxZDQ1YzI1NTE0NjhkN2Q4NQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvbW9kX3B5d2Vic29ja2V0L19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMjI0IEBACisjIENv
cHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworCisiIiJXZWJTb2NrZXQgZXh0ZW5zaW9uIGZvciBBcGFjaGUgSFRUUCBT
ZXJ2ZXIuCisKK21vZF9weXdlYnNvY2tldCBpcyBhIFdlYlNvY2tldCBleHRlbnNpb24gZm9yIEFw
YWNoZSBIVFRQIFNlcnZlcgoraW50ZW5kZWQgZm9yIHRlc3Rpbmcgb3IgZXhwZXJpbWVudGFsIHB1
cnBvc2VzLiBtb2RfcHl0aG9uIGlzIHJlcXVpcmVkLgorCisKK0luc3RhbGxhdGlvbgorPT09PT09
PT09PT09CisKKzAuIFByZXBhcmUgYW4gQXBhY2hlIEhUVFAgU2VydmVyIGZvciB3aGljaCBtb2Rf
cHl0aG9uIGlzIGVuYWJsZWQuCisKKzEuIFNwZWNpZnkgdGhlIGZvbGxvd2luZyBBcGFjaGUgSFRU
UCBTZXJ2ZXIgZGlyZWN0aXZlcyB0byBzdWl0IHlvdXIKKyAgIGNvbmZpZ3VyYXRpb24uCisKKyAg
IElmIG1vZF9weXdlYnNvY2tldCBpcyBub3QgaW4gdGhlIFB5dGhvbiBwYXRoLCBzcGVjaWZ5IHRo
ZSBmb2xsb3dpbmcuCisgICA8d2Vic29ja19saWI+IGlzIHRoZSBkaXJlY3Rvcnkgd2hlcmUgbW9k
X3B5d2Vic29ja2V0IGlzIGluc3RhbGxlZC4KKworICAgICAgIFB5dGhvblBhdGggInN5cy5wYXRo
K1snPHdlYnNvY2tfbGliPiddIgorCisgICBBbHdheXMgc3BlY2lmeSB0aGUgZm9sbG93aW5nLiA8
d2Vic29ja19oYW5kbGVycz4gaXMgdGhlIGRpcmVjdG9yeSB3aGVyZQorICAgdXNlci13cml0dGVu
IFdlYlNvY2tldCBoYW5kbGVycyBhcmUgcGxhY2VkLgorCisgICAgICAgUHl0aG9uT3B0aW9uIG1v
ZF9weXdlYnNvY2tldC5oYW5kbGVyX3Jvb3QgPHdlYnNvY2tfaGFuZGxlcnM+CisgICAgICAgUHl0
aG9uSGVhZGVyUGFyc2VySGFuZGxlciBtb2RfcHl3ZWJzb2NrZXQuaGVhZGVycGFyc2VyaGFuZGxl
cgorCisgICBUbyBsaW1pdCB0aGUgc2VhcmNoIGZvciBXZWJTb2NrZXQgaGFuZGxlcnMgdG8gYSBk
aXJlY3RvcnkgPHNjYW5fZGlyPgorICAgdW5kZXIgPHdlYnNvY2tfaGFuZGxlcnM+LCBjb25maWd1
cmUgYXMgZm9sbG93czoKKworICAgICAgIFB5dGhvbk9wdGlvbiBtb2RfcHl3ZWJzb2NrZXQuaGFu
ZGxlcl9zY2FuIDxzY2FuX2Rpcj4KKworICAgPHNjYW5fZGlyPiBpcyB1c2VmdWwgaW4gc2F2aW5n
IHNjYW4gdGltZSB3aGVuIDx3ZWJzb2NrX2hhbmRsZXJzPgorICAgY29udGFpbnMgbWFueSBub24t
V2ViU29ja2V0IGhhbmRsZXIgZmlsZXMuCisKKyAgIElmIHlvdSB3YW50IHRvIGFsbG93IGhhbmRs
ZXJzIHdob3NlIGNhbm9uaWNhbCBwYXRoIGlzIG5vdCB1bmRlciB0aGUgcm9vdAorICAgZGlyZWN0
b3J5IChpLmUuIHN5bWJvbGljIGxpbmsgaXMgaW4gcm9vdCBkaXJlY3RvcnkgYnV0IGl0cyB0YXJn
ZXQgaXMgbm90KSwKKyAgIGNvbmZpZ3VyZSBhcyBmb2xsb3dzOgorCisgICAgICAgUHl0aG9uT3B0
aW9uIG1vZF9weXdlYnNvY2tldC5hbGxvd19oYW5kbGVyc19vdXRzaWRlX3Jvb3RfZGlyIE9uCisK
KyAgIEV4YW1wbGUgc25pcHBldCBvZiBodHRwZC5jb25mOgorICAgKG1vZF9weXdlYnNvY2tldCBp
cyBpbiAvd2Vic29ja19saWIsIFdlYlNvY2tldCBoYW5kbGVycyBhcmUgaW4KKyAgIC93ZWJzb2Nr
X2hhbmRsZXJzLCBwb3J0IGlzIDgwIGZvciB3cywgNDQzIGZvciB3c3MuKQorCisgICAgICAgPElm
TW9kdWxlIHB5dGhvbl9tb2R1bGU+CisgICAgICAgICBQeXRob25QYXRoICJzeXMucGF0aCtbJy93
ZWJzb2NrX2xpYiddIgorICAgICAgICAgUHl0aG9uT3B0aW9uIG1vZF9weXdlYnNvY2tldC5oYW5k
bGVyX3Jvb3QgL3dlYnNvY2tfaGFuZGxlcnMKKyAgICAgICAgIFB5dGhvbkhlYWRlclBhcnNlckhh
bmRsZXIgbW9kX3B5d2Vic29ja2V0LmhlYWRlcnBhcnNlcmhhbmRsZXIKKyAgICAgICA8L0lmTW9k
dWxlPgorCisyLiBUdW5lIEFwYWNoZSBwYXJhbWV0ZXJzIGZvciBzZXJ2aW5nIFdlYlNvY2tldC4g
V2UnZCBsaWtlIHRvIG5vdGUgdGhhdCBhdAorICAgbGVhc3QgVGltZU91dCBkaXJlY3RpdmUgZnJv
bSBjb3JlIGZlYXR1cmVzIGFuZCBSZXF1ZXN0UmVhZFRpbWVvdXQKKyAgIGRpcmVjdGl2ZSBmcm9t
IG1vZF9yZXF0aW1lb3V0IHNob3VsZCBiZSBtb2RpZmllZCBub3QgdG8ga2lsbCBjb25uZWN0aW9u
cworICAgaW4gb25seSBhIGZldyBzZWNvbmRzIG9mIGlkbGUgdGltZS4KKworMy4gVmVyaWZ5IGlu
c3RhbGxhdGlvbi4gWW91IGNhbiB1c2UgZXhhbXBsZS9jb25zb2xlLmh0bWwgdG8gcG9rZSB0aGUg
c2VydmVyLgorCisKK1dyaXRpbmcgV2ViU29ja2V0IGhhbmRsZXJzCis9PT09PT09PT09PT09PT09
PT09PT09PT09PQorCitXaGVuIGEgV2ViU29ja2V0IHJlcXVlc3QgY29tZXMgaW4sIHRoZSByZXNv
dXJjZSBuYW1lCitzcGVjaWZpZWQgaW4gdGhlIGhhbmRzaGFrZSBpcyBjb25zaWRlcmVkIGFzIGlm
IGl0IGlzIGEgZmlsZSBwYXRoIHVuZGVyCis8d2Vic29ja19oYW5kbGVycz4gYW5kIHRoZSBoYW5k
bGVyIGRlZmluZWQgaW4KKzx3ZWJzb2NrX2hhbmRsZXJzPi88cmVzb3VyY2VfbmFtZT5fd3NoLnB5
IGlzIGludm9rZWQuCisKK0ZvciBleGFtcGxlLCBpZiB0aGUgcmVzb3VyY2UgbmFtZSBpcyAvZXhh
bXBsZS9jaGF0LCB0aGUgaGFuZGxlciBkZWZpbmVkIGluCis8d2Vic29ja19oYW5kbGVycz4vZXhh
bXBsZS9jaGF0X3dzaC5weSBpcyBpbnZva2VkLgorCitBIFdlYlNvY2tldCBoYW5kbGVyIGlzIGNv
bXBvc2VkIG9mIHRoZSBmb2xsb3dpbmcgdGhyZWUgZnVuY3Rpb25zOgorCisgICAgd2ViX3NvY2tl
dF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCkKKyAgICB3ZWJfc29ja2V0X3RyYW5zZmVyX2Rh
dGEocmVxdWVzdCkKKyAgICB3ZWJfc29ja2V0X3Bhc3NpdmVfY2xvc2luZ19oYW5kc2hha2UocmVx
dWVzdCkKKword2hlcmU6CisgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgorCit3ZWJf
c29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSBpcyBjYWxsZWQgZHVyaW5nIHRoZSBoYW5kc2hha2Ug
YWZ0ZXIgdGhlCitoZWFkZXJzIGFyZSBzdWNjZXNzZnVsbHkgcGFyc2VkIGFuZCBXZWJTb2NrZXQg
cHJvcGVydGllcyAod3NfbG9jYXRpb24sCit3c19vcmlnaW4sIGFuZCB3c19yZXNvdXJjZSkgYXJl
IGFkZGVkIHRvIHJlcXVlc3QuIEEgaGFuZGxlcgorY2FuIHJlamVjdCB0aGUgcmVxdWVzdCBieSBy
YWlzaW5nIGFuIGV4Y2VwdGlvbi4KKworQSByZXF1ZXN0IG9iamVjdCBoYXMgdGhlIGZvbGxvd2lu
ZyBwcm9wZXJ0aWVzIHRoYXQgeW91IGNhbiB1c2UgZHVyaW5nIHRoZQorZXh0cmEgaGFuZHNoYWtl
ICh3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSk6CistIHdzX3Jlc291cmNlCistIHdzX29y
aWdpbgorLSB3c192ZXJzaW9uCistIHdzX2xvY2F0aW9uIChIeUJpIDAwIG9ubHkpCistIHdzX2V4
dGVuc2lvbnMgKEh5QmkgMDYgYW5kIGxhdGVyKQorLSB3c19kZWZsYXRlIChIeUJpIDA2IGFuZCBs
YXRlcikKKy0gd3NfcHJvdG9jb2wKKy0gd3NfcmVxdWVzdGVkX3Byb3RvY29scyAoSHlCaSAwNiBh
bmQgbGF0ZXIpCisKK1RoZSBsYXN0IHR3byBhcmUgYSBiaXQgdHJpY2t5LiBTZWUgdGhlIG5leHQg
c3Vic2VjdGlvbi4KKworCitTdWJwcm90b2NvbCBOZWdvdGlhdGlvbgorLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKworRm9yIEh5QmkgMDYgYW5kIGxhdGVyLCB3c19wcm90b2NvbCBpcyBhbHdheXMg
c2V0IHRvIE5vbmUgd2hlbgord2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UgaXMgY2FsbGVk
LiBJZiB3c19yZXF1ZXN0ZWRfcHJvdG9jb2xzIGlzIG5vdAorTm9uZSwgeW91IG11c3QgY2hvb3Nl
IG9uZSBzdWJwcm90b2NvbCBmcm9tIHRoaXMgbGlzdCBhbmQgc2V0IGl0IHRvCit3c19wcm90b2Nv
bC4KKworRm9yIEh5QmkgMDAsIHdoZW4gd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UgaXMg
Y2FsbGVkLAord3NfcHJvdG9jb2wgaXMgc2V0IHRvIHRoZSB2YWx1ZSBnaXZlbiBieSB0aGUgY2xp
ZW50IGluCitTZWMtV2ViU29ja2V0LVByb3RvY29sIGhlYWRlciBvciBOb25lIGlmCitzdWNoIGhl
YWRlciB3YXMgbm90IGZvdW5kIGluIHRoZSBvcGVuaW5nIGhhbmRzaGFrZSByZXF1ZXN0LiBGaW5p
c2ggZXh0cmEKK2hhbmRzaGFrZSB3aXRoIHdzX3Byb3RvY29sIHVudG91Y2hlZCB0byBhY2NlcHQg
dGhlIHJlcXVlc3Qgc3VicHJvdG9jb2wuCitUaGVuLCBTZWMtV2ViU29ja2V0LVByb3RvY29sIGhl
YWRlciB3aWxsIGJlIHNlbnQgdG8KK3RoZSBjbGllbnQgaW4gcmVzcG9uc2Ugd2l0aCB0aGUgc2Ft
ZSB2YWx1ZSBhcyByZXF1ZXN0ZWQuIFJhaXNlIGFuIGV4Y2VwdGlvbgoraW4gd2ViX3NvY2tldF9k
b19leHRyYV9oYW5kc2hha2UgdG8gcmVqZWN0IHRoZSByZXF1ZXN0ZWQgc3VicHJvdG9jb2wuCisK
KworRGF0YSBUcmFuc2ZlcgorLS0tLS0tLS0tLS0tLQorCit3ZWJfc29ja2V0X3RyYW5zZmVyX2Rh
dGEgaXMgY2FsbGVkIGFmdGVyIHRoZSBoYW5kc2hha2UgY29tcGxldGVkCitzdWNjZXNzZnVsbHku
IEEgaGFuZGxlciBjYW4gcmVjZWl2ZS9zZW5kIG1lc3NhZ2VzIGZyb20vdG8gdGhlIGNsaWVudAor
dXNpbmcgcmVxdWVzdC4gbW9kX3B5d2Vic29ja2V0Lm1zZ3V0aWwgbW9kdWxlIHByb3ZpZGVzIHV0
aWxpdGllcworZm9yIGRhdGEgdHJhbnNmZXIuCisKK1lvdSBjYW4gcmVjZWl2ZSBhIG1lc3NhZ2Ug
YnkgdGhlIGZvbGxvd2luZyBzdGF0ZW1lbnQuCisKKyAgICBtZXNzYWdlID0gcmVxdWVzdC53c19z
dHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKKworVGhpcyBjYWxsIGJsb2NrcyB1bnRpbCBhbnkgY29t
cGxldGUgdGV4dCBmcmFtZSBhcnJpdmVzLCBhbmQgdGhlIHBheWxvYWQgZGF0YQorb2YgdGhlIGlu
Y29taW5nIGZyYW1lIHdpbGwgYmUgc3RvcmVkIGludG8gbWVzc2FnZS4gV2hlbiB5b3UncmUgdXNp
bmcgSUVURgorSHlCaSAwMCBvciBsYXRlciBwcm90b2NvbCwgcmVjZWl2ZV9tZXNzYWdlKCkgd2ls
bCByZXR1cm4gTm9uZSBvbiByZWNlaXZpbmcKK2NsaWVudC1pbml0aWF0ZWQgY2xvc2luZyBoYW5k
c2hha2UuIFdoZW4gYW55IGVycm9yIG9jY3VycywgcmVjZWl2ZV9tZXNzYWdlKCkKK3dpbGwgcmFp
c2Ugc29tZSBleGNlcHRpb24uCisKK1lvdSBjYW4gc2VuZCBhIG1lc3NhZ2UgYnkgdGhlIGZvbGxv
d2luZyBzdGF0ZW1lbnQuCisKKyAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UobWVz
c2FnZSkKKworCitDbG9zaW5nIENvbm5lY3Rpb24KKy0tLS0tLS0tLS0tLS0tLS0tLQorCitFeGVj
dXRpbmcgdGhlIGZvbGxvd2luZyBzdGF0ZW1lbnQgb3IganVzdCByZXR1cm4taW5nIGZyb20KK3dl
Yl9zb2NrZXRfdHJhbnNmZXJfZGF0YSBjYXVzZSBjb25uZWN0aW9uIGNsb3NlLgorCisgICAgcmVx
dWVzdC53c19zdHJlYW0uY2xvc2VfY29ubmVjdGlvbigpCisKK2Nsb3NlX2Nvbm5lY3Rpb24gd2ls
bCB3YWl0Citmb3IgY2xvc2luZyBoYW5kc2hha2UgYWNrbm93bGVkZ2VtZW50IGNvbWluZyBmcm9t
IHRoZSBjbGllbnQuIFdoZW4gaXQKK2NvdWxkbid0IHJlY2VpdmUgYSB2YWxpZCBhY2tub3dsZWRn
ZW1lbnQsIHJhaXNlcyBhbiBleGNlcHRpb24uCisKK3dlYl9zb2NrZXRfcGFzc2l2ZV9jbG9zaW5n
X2hhbmRzaGFrZSBpcyBjYWxsZWQgYWZ0ZXIgdGhlIHNlcnZlciByZWNlaXZlcworaW5jb21pbmcg
Y2xvc2luZyBmcmFtZSBmcm9tIHRoZSBjbGllbnQgcGVlciBpbW1lZGlhdGVseS4gWW91IGNhbiBz
cGVjaWZ5Citjb2RlIGFuZCByZWFzb24gYnkgcmV0dXJuIHZhbHVlcy4gVGhleSBhcmUgc2VudCBh
cyBhIG91dGdvaW5nIGNsb3NpbmcgZnJhbWUKK2Zyb20gdGhlIHNlcnZlci4gQSByZXF1ZXN0IG9i
amVjdCBoYXMgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIHRoYXQgeW91IGNhbgordXNlIGluIHdl
Yl9zb2NrZXRfcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZS4KKy0gd3NfY2xvc2VfY29kZQorLSB3
c19jbG9zZV9yZWFzb24KKworCitUaHJlYWRpbmcKKy0tLS0tLS0tLQorCitBIFdlYlNvY2tldCBo
YW5kbGVyIG11c3QgYmUgdGhyZWFkLXNhZmUgaWYgdGhlIHNlcnZlciAoQXBhY2hlIG9yCitzdGFu
ZGFsb25lLnB5KSBpcyBjb25maWd1cmVkIHRvIHVzZSB0aHJlYWRzLgorCisKK0NvbmZpZ3VyaW5n
IFdlYlNvY2tldCBFeHRlbnNpb24gUHJvY2Vzc29ycworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKK1NlZSBleHRlbnNpb25zLnB5IGZvciBzdXBwb3J0ZWQgV2Vi
U29ja2V0IGV4dGVuc2lvbnMuIE5vdGUgdGhhdCB0aGV5IGFyZQordW5zdGFibGUgYW5kIHRoZWly
IEFQSXMgYXJlIHN1YmplY3QgdG8gY2hhbmdlIHN1YnN0YW50aWFsbHkuCisKK0EgcmVxdWVzdCBv
YmplY3QgaGFzIHRoZXNlIGV4dGVuc2lvbiBwcm9jZXNzaW5nIHJlbGF0ZWQgYXR0cmlidXRlcy4K
KworLSB3c19yZXF1ZXN0ZWRfZXh0ZW5zaW9uczoKKworICBBIGxpc3Qgb2YgY29tbW9uLkV4dGVu
c2lvblBhcmFtZXRlciBpbnN0YW5jZXMgcmVwcmVzZW50aW5nIGV4dGVuc2lvbgorICBwYXJhbWV0
ZXJzIHJlY2VpdmVkIGZyb20gdGhlIGNsaWVudCBpbiB0aGUgY2xpZW50J3Mgb3BlbmluZyBoYW5k
c2hha2UuCisgIFlvdSBzaG91bGRuJ3QgbW9kaWZ5IGl0IG1hbnVhbGx5LgorCistIHdzX2V4dGVu
c2lvbnM6CisKKyAgQSBsaXN0IG9mIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIgaW5zdGFuY2Vz
IHJlcHJlc2VudGluZyBleHRlbnNpb24KKyAgcGFyYW1ldGVycyB0byBzZW5kIGJhY2sgdG8gdGhl
IGNsaWVudCBpbiB0aGUgc2VydmVyJ3Mgb3BlbmluZyBoYW5kc2hha2UuCisgIFlvdSBzaG91bGRu
J3QgdG91Y2ggaXQgZGlyZWN0bHkuIEluc3RlYWQsIGNhbGwgbWV0aG9kcyBvbiBleHRlbnNpb24K
KyAgcHJvY2Vzc29ycy4KKworLSB3c19leHRlbnNpb25fcHJvY2Vzc29yczoKKworICBBIGxpc3Qg
b2YgbG9hZGVkIGV4dGVuc2lvbiBwcm9jZXNzb3JzLiBGaW5kIHRoZSBwcm9jZXNzb3IgZm9yIHRo
ZQorICBleHRlbnNpb24geW91IHdhbnQgdG8gY29uZmlndXJlIGZyb20gaXQsIGFuZCBjYWxsIGl0
cyBtZXRob2RzLgorIiIiCisKKworIyB2aTpzdHM9NCBzdz00IGV0IHR3PTcyCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2Jhc2UucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNv
Y2tldC9fc3RyZWFtX2Jhc2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODIzNTY2NmJiYjFkNTFjMTBkYjNmOTFi
ZGE0YWJjZDdhZmViMjY4MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0
L19zdHJlYW1fYmFzZS5weQpAQCAtMCwwICsxLDE4MSBAQAorIyBDb3B5cmlnaHQgMjAxMSwgR29v
Z2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
IyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKwor
IiIiQmFzZSBzdHJlYW0gY2xhc3MuCisiIiIKKworCisjIE5vdGU6IHJlcXVlc3QuY29ubmVjdGlv
bi53cml0ZS9yZWFkIGFyZSB1c2VkIGluIHRoaXMgbW9kdWxlLCBldmVuIHRob3VnaAorIyBtb2Rf
cHl0aG9uIGRvY3VtZW50IHNheXMgdGhhdCB0aGV5IHNob3VsZCBiZSB1c2VkIG9ubHkgaW4gY29u
bmVjdGlvbgorIyBoYW5kbGVycy4gVW5mb3J0dW5hdGVseSwgd2UgaGF2ZSBubyBvdGhlciBvcHRp
b25zLiBGb3IgZXhhbXBsZSwKKyMgcmVxdWVzdC53cml0ZS9yZWFkIGFyZSBub3Qgc3VpdGFibGUg
YmVjYXVzZSB0aGV5IGRvbid0IGFsbG93IGRpcmVjdCByYXcgYnl0ZXMKKyMgd3JpdGluZy9yZWFk
aW5nLgorCisKK2ltcG9ydCBzb2NrZXQKKworZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0
aWwKKworCisjIEV4Y2VwdGlvbnMKKworCitjbGFzcyBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2Vw
dGlvbihFeGNlcHRpb24pOgorICAgICIiIlRoaXMgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIHdo
ZW4gYSBjb25uZWN0aW9uIGlzIHRlcm1pbmF0ZWQKKyAgICB1bmV4cGVjdGVkbHkuCisgICAgIiIi
CisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZEZyYW1lRXhjZXB0aW9uKENvbm5lY3Rpb25U
ZXJtaW5hdGVkRXhjZXB0aW9uKToKKyAgICAiIiJUaGlzIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNl
ZCB3aGVuIHdlIHJlY2VpdmVkIGFuIGludmFsaWQgZnJhbWUgd2UKKyAgICBjYW5ub3QgcGFyc2Uu
CisgICAgIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKEV4
Y2VwdGlvbik6CisgICAgIiIiVGhpcyBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQgd2hlbiBzZW5k
X21lc3NhZ2UoKSBpcyBjYWxsZWQgb24KKyAgICBzZXJ2ZXItdGVybWluYXRlZCBjb25uZWN0aW9u
IG9yIHJlY2VpdmVfbWVzc2FnZSgpIGlzIGNhbGxlZCBvbgorICAgIGNsaWVudC10ZXJtaW5hdGVk
IGNvbm5lY3Rpb24uCisgICAgIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgVW5zdXBwb3J0ZWRG
cmFtZUV4Y2VwdGlvbihFeGNlcHRpb24pOgorICAgICIiIlRoaXMgZXhjZXB0aW9uIHdpbGwgYmUg
cmFpc2VkIHdoZW4gd2UgcmVjZWl2ZSBhIGZyYW1lIHdpdGggZmxhZywgb3Bjb2RlCisgICAgd2Ug
Y2Fubm90IGhhbmRsZS4gSGFuZGxlcnMgY2FuIGp1c3QgY2F0Y2ggYW5kIGlnbm9yZSB0aGlzIGV4
Y2VwdGlvbiBhbmQKKyAgICBjYWxsIHJlY2VpdmVfbWVzc2FnZSgpIGFnYWluIHRvIGNvbnRpbnVl
IHByb2Nlc3NpbmcgdGhlIG5leHQgZnJhbWUuCisgICAgIiIiCisKKyAgICBwYXNzCisKKworY2xh
c3MgSW52YWxpZFVURjhFeGNlcHRpb24oRXhjZXB0aW9uKToKKyAgICAiIiJUaGlzIGV4Y2VwdGlv
biB3aWxsIGJlIHJhaXNlZCB3aGVuIHdlIHJlY2VpdmUgYSB0ZXh0IGZyYW1lIHdoaWNoCisgICAg
Y29udGFpbnMgaW52YWxpZCBVVEYtOCBzdHJpbmdzLgorICAgICIiIgorCisgICAgcGFzcworCisK
K2NsYXNzIFN0cmVhbUJhc2Uob2JqZWN0KToKKyAgICAiIiJCYXNlIHN0cmVhbSBjbGFzcy4iIiIK
KworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgIiIiQ29uc3RydWN0
IGFuIGluc3RhbmNlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICByZXF1ZXN0OiBtb2Rf
cHl0aG9uIHJlcXVlc3QuCisgICAgICAgICIiIgorCisgICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0
aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQorCisgICAgICAgIHNlbGYuX3JlcXVlc3QgPSByZXF1
ZXN0CisKKyAgICBkZWYgX3JlYWQoc2VsZiwgbGVuZ3RoKToKKyAgICAgICAgIiIiUmVhZHMgbGVu
Z3RoIGJ5dGVzIGZyb20gY29ubmVjdGlvbi4gSW4gY2FzZSB3ZSBjYXRjaCBhbnkgZXhjZXB0aW9u
LAorICAgICAgICBwcmVwZW5kcyByZW1vdGUgYWRkcmVzcyB0byB0aGUgZXhjZXB0aW9uIG1lc3Nh
Z2UgYW5kIHJhaXNlIGFnYWluLgorCisgICAgICAgIFJhaXNlczoKKyAgICAgICAgICAgIENvbm5l
Y3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHJlYWQgcmV0dXJucyBlbXB0eSBzdHJpbmcu
CisgICAgICAgICIiIgorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJlYWRfYnl0ZXMgPSBz
ZWxmLl9yZXF1ZXN0LmNvbm5lY3Rpb24ucmVhZChsZW5ndGgpCisgICAgICAgICAgICBpZiBub3Qg
cmVhZF9ieXRlczoKKyAgICAgICAgICAgICAgICByYWlzZSBDb25uZWN0aW9uVGVybWluYXRlZEV4
Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmluZyAlZCBieXRlIGZhaWxlZC4g
UGVlciAoJXIpIGNsb3NlZCBjb25uZWN0aW9uJyAlCisgICAgICAgICAgICAgICAgICAgIChsZW5n
dGgsIChzZWxmLl9yZXF1ZXN0LmNvbm5lY3Rpb24ucmVtb3RlX2FkZHIsKSkpCisgICAgICAgICAg
ICByZXR1cm4gcmVhZF9ieXRlcworICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yLCBlOgorICAg
ICAgICAgICAgIyBDYXRjaCBhIHNvY2tldC5lcnJvci4gQmVjYXVzZSBpdCdzIG5vdCBhIGNoaWxk
IGNsYXNzIG9mIHRoZQorICAgICAgICAgICAgIyBJT0Vycm9yIHByaW9yIHRvIFB5dGhvbiAyLjYs
IHdlIGNhbm5vdCBvbWl0IHRoaXMgZXhjZXB0IGNsYXVzZS4KKyAgICAgICAgICAgICMgVXNlICVz
IHJhdGhlciB0aGFuICVyIGZvciB0aGUgZXhjZXB0aW9uIHRvIHVzZSBodW1hbiBmcmllbmRseQor
ICAgICAgICAgICAgIyBmb3JtYXQuCisgICAgICAgICAgICByYWlzZSBDb25uZWN0aW9uVGVybWlu
YXRlZEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnUmVjZWl2aW5nICVkIGJ5dGUgZmFpbGVk
LiBzb2NrZXQuZXJyb3IgKCVzKSBvY2N1cnJlZCcgJQorICAgICAgICAgICAgICAgIChsZW5ndGgs
IGUpKQorICAgICAgICBleGNlcHQgSU9FcnJvciwgZToKKyAgICAgICAgICAgICMgQWxzbyBjYXRj
aCBhbiBJT0Vycm9yIGJlY2F1c2UgbW9kX3B5dGhvbiB0aHJvd3MgaXQuCisgICAgICAgICAgICBy
YWlzZSBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnUmVj
ZWl2aW5nICVkIGJ5dGUgZmFpbGVkLiBJT0Vycm9yICglcykgb2NjdXJyZWQnICUKKyAgICAgICAg
ICAgICAgICAobGVuZ3RoLCBlKSkKKworICAgIGRlZiBfd3JpdGUoc2VsZiwgYnl0ZXNfdG9fd3Jp
dGUpOgorICAgICAgICAiIiJXcml0ZXMgZ2l2ZW4gYnl0ZXMgdG8gY29ubmVjdGlvbi4gSW4gY2Fz
ZSB3ZSBjYXRjaCBhbnkgZXhjZXB0aW9uLAorICAgICAgICBwcmVwZW5kcyByZW1vdGUgYWRkcmVz
cyB0byB0aGUgZXhjZXB0aW9uIG1lc3NhZ2UgYW5kIHJhaXNlIGFnYWluLgorICAgICAgICAiIiIK
KworICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmNvbm5lY3Rpb24ud3Jp
dGUoYnl0ZXNfdG9fd3JpdGUpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAg
ICAgICB1dGlsLnByZXBlbmRfbWVzc2FnZV90b19leGNlcHRpb24oCisgICAgICAgICAgICAgICAg
ICAgICdGYWlsZWQgdG8gc2VuZCBtZXNzYWdlIHRvICVyOiAnICUKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoc2VsZi5fcmVxdWVzdC5jb25uZWN0aW9uLnJlbW90ZV9hZGRyLCksCisgICAg
ICAgICAgICAgICAgICAgIGUpCisgICAgICAgICAgICByYWlzZQorCisgICAgZGVmIHJlY2VpdmVf
Ynl0ZXMoc2VsZiwgbGVuZ3RoKToKKyAgICAgICAgIiIiUmVjZWl2ZXMgbXVsdGlwbGUgYnl0ZXMu
IFJldHJpZXMgcmVhZCB3aGVuIHdlIGNvdWxkbid0IHJlY2VpdmUgdGhlCisgICAgICAgIHNwZWNp
ZmllZCBhbW91bnQuCisKKyAgICAgICAgUmFpc2VzOgorICAgICAgICAgICAgQ29ubmVjdGlvblRl
cm1pbmF0ZWRFeGNlcHRpb246IHdoZW4gcmVhZCByZXR1cm5zIGVtcHR5IHN0cmluZy4KKyAgICAg
ICAgIiIiCisKKyAgICAgICAgcmVhZF9ieXRlcyA9IFtdCisgICAgICAgIHdoaWxlIGxlbmd0aCA+
IDA6CisgICAgICAgICAgICBuZXdfcmVhZF9ieXRlcyA9IHNlbGYuX3JlYWQobGVuZ3RoKQorICAg
ICAgICAgICAgcmVhZF9ieXRlcy5hcHBlbmQobmV3X3JlYWRfYnl0ZXMpCisgICAgICAgICAgICBs
ZW5ndGggLT0gbGVuKG5ld19yZWFkX2J5dGVzKQorICAgICAgICByZXR1cm4gJycuam9pbihyZWFk
X2J5dGVzKQorCisgICAgZGVmIF9yZWFkX3VudGlsKHNlbGYsIGRlbGltX2NoYXIpOgorICAgICAg
ICAiIiJSZWFkcyBieXRlcyB1bnRpbCB3ZSBlbmNvdW50ZXIgZGVsaW1fY2hhci4gVGhlIHJlc3Vs
dCB3aWxsIG5vdAorICAgICAgICBjb250YWluIGRlbGltX2NoYXIuCisKKyAgICAgICAgUmFpc2Vz
OgorICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4gcmVhZCBy
ZXR1cm5zIGVtcHR5IHN0cmluZy4KKyAgICAgICAgIiIiCisKKyAgICAgICAgcmVhZF9ieXRlcyA9
IFtdCisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICBjaCA9IHNlbGYuX3JlYWQoMSkK
KyAgICAgICAgICAgIGlmIGNoID09IGRlbGltX2NoYXI6CisgICAgICAgICAgICAgICAgYnJlYWsK
KyAgICAgICAgICAgIHJlYWRfYnl0ZXMuYXBwZW5kKGNoKQorICAgICAgICByZXR1cm4gJycuam9p
bihyZWFkX2J5dGVzKQorCisKKyMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9t
b2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9oaXhpZTc1LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQv
X3N0cmVhbV9oaXhpZTc1LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0Y2Y1YjMxYmEwZmMzYzNhMzQ3N2RlODIy
OTdhMGMyNmRhMWM0OGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9f
c3RyZWFtX2hpeGllNzUucHkKQEAgLTAsMCArMSwyMjkgQEAKKyMgQ29weXJpZ2h0IDIwMTEsIEdv
b2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisK
KyIiIlRoaXMgZmlsZSBwcm92aWRlcyBhIGNsYXNzIGZvciBwYXJzaW5nL2J1aWxkaW5nIGZyYW1l
cyBvZiB0aGUgV2ViU29ja2V0Citwcm90b2NvbCB2ZXJzaW9uIEh5QmkgMDAgYW5kIEhpeGllIDc1
LgorCitTcGVjaWZpY2F0aW9uOgorLSBIeUJpIDAwIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1s
L2RyYWZ0LWlldGYtaHliaS10aGV3ZWJzb2NrZXRwcm90b2NvbC0wMAorLSBIaXhpZSA3NSBodHRw
Oi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFmdC1oaXhpZS10aGV3ZWJzb2NrZXRwcm90b2NvbC03
NQorIiIiCisKKworZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgorZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBCYWRPcGVyYXRpb25FeGNlcHRpb24KK2Zy
b20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgQ29ubmVjdGlvblRlcm1pbmF0
ZWRFeGNlcHRpb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgSW52
YWxpZEZyYW1lRXhjZXB0aW9uCitmcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1w
b3J0IFN0cmVhbUJhc2UKK2Zyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQg
VW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0
aWwKKworCitjbGFzcyBTdHJlYW1IaXhpZTc1KFN0cmVhbUJhc2UpOgorICAgICIiIkEgY2xhc3Mg
Zm9yIHBhcnNpbmcvYnVpbGRpbmcgZnJhbWVzIG9mIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wgdmVy
c2lvbgorICAgIEh5QmkgMDAgYW5kIEhpeGllIDc1LgorICAgICIiIgorCisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIHJlcXVlc3QsIGVuYWJsZV9jbG9zaW5nX2hhbmRzaGFrZT1GYWxzZSk6CisgICAg
ICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAg
ICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgorICAgICAgICAgICAgZW5hYmxlX2Nsb3Np
bmdfaGFuZHNoYWtlOiB0byBsZXQgU3RyZWFtSGl4aWU3NSBwZXJmb3JtIGNsb3NpbmcKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZHNoYWtlIGFzIHNwZWNpZmllZCBp
biBIeUJpIDAwLCBzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhp
cyBvcHRpb24gdG8gVHJ1ZS4KKyAgICAgICAgIiIiCisKKyAgICAgICAgU3RyZWFtQmFzZS5fX2lu
aXRfXyhzZWxmLCByZXF1ZXN0KQorCisgICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2Ns
YXNzX2xvZ2dlcihzZWxmKQorCisgICAgICAgIHNlbGYuX2VuYWJsZV9jbG9zaW5nX2hhbmRzaGFr
ZSA9IGVuYWJsZV9jbG9zaW5nX2hhbmRzaGFrZQorCisgICAgICAgIHNlbGYuX3JlcXVlc3QuY2xp
ZW50X3Rlcm1pbmF0ZWQgPSBGYWxzZQorICAgICAgICBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJt
aW5hdGVkID0gRmFsc2UKKworICAgIGRlZiBzZW5kX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSwgZW5k
PVRydWUsIGJpbmFyeT1GYWxzZSk6CisgICAgICAgICIiIlNlbmQgbWVzc2FnZS4KKworICAgICAg
ICBBcmdzOgorICAgICAgICAgICAgbWVzc2FnZTogdW5pY29kZSBzdHJpbmcgdG8gc2VuZC4KKyAg
ICAgICAgICAgIGJpbmFyeTogbm90IHVzZWQgaW4gaGl4aWU3NS4KKworICAgICAgICBSYWlzZXM6
CisgICAgICAgICAgICBCYWRPcGVyYXRpb25FeGNlcHRpb246IHdoZW4gY2FsbGVkIG9uIGEgc2Vy
dmVyLXRlcm1pbmF0ZWQKKyAgICAgICAgICAgICAgICBjb25uZWN0aW9uLgorICAgICAgICAiIiIK
KworICAgICAgICBpZiBub3QgZW5kOgorICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhj
ZXB0aW9uKAorICAgICAgICAgICAgICAgICdTdHJlYW1IaXhpZTc1IGRvZXNuXCd0IHN1cHBvcnQg
c2VuZF9tZXNzYWdlIHdpdGggZW5kPUZhbHNlJykKKworICAgICAgICBpZiBiaW5hcnk6CisgICAg
ICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ1N0
cmVhbUhpeGllNzUgZG9lc25cJ3Qgc3VwcG9ydCBzZW5kX21lc3NhZ2Ugd2l0aCBiaW5hcnk9VHJ1
ZScpCisKKyAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKKyAgICAg
ICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnUmVx
dWVzdGVkIHNlbmRfbWVzc2FnZSBhZnRlciBzZW5kaW5nIG91dCBhIGNsb3NpbmcgaGFuZHNoYWtl
JykKKworICAgICAgICBzZWxmLl93cml0ZSgnJy5qb2luKFsnXHgwMCcsIG1lc3NhZ2UuZW5jb2Rl
KCd1dGYtOCcpLCAnXHhmZiddKSkKKworICAgIGRlZiBfcmVhZF9wYXlsb2FkX2xlbmd0aF9oaXhp
ZTc1KHNlbGYpOgorICAgICAgICAiIiJSZWFkcyBhIGxlbmd0aCBoZWFkZXIgaW4gYSBIaXhpZTc1
IHZlcnNpb24gZnJhbWUgd2l0aCBsZW5ndGguCisKKyAgICAgICAgUmFpc2VzOgorICAgICAgICAg
ICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4gcmVhZCByZXR1cm5zIGVtcHR5
IHN0cmluZy4KKyAgICAgICAgIiIiCisKKyAgICAgICAgbGVuZ3RoID0gMAorICAgICAgICB3aGls
ZSBUcnVlOgorICAgICAgICAgICAgYl9zdHIgPSBzZWxmLl9yZWFkKDEpCisgICAgICAgICAgICBi
ID0gb3JkKGJfc3RyKQorICAgICAgICAgICAgbGVuZ3RoID0gbGVuZ3RoICogMTI4ICsgKGIgJiAw
eDdmKQorICAgICAgICAgICAgaWYgKGIgJiAweDgwKSA9PSAwOgorICAgICAgICAgICAgICAgIGJy
ZWFrCisgICAgICAgIHJldHVybiBsZW5ndGgKKworICAgIGRlZiByZWNlaXZlX21lc3NhZ2Uoc2Vs
Zik6CisgICAgICAgICIiIlJlY2VpdmUgYSBXZWJTb2NrZXQgZnJhbWUgYW5kIHJldHVybiBpdHMg
cGF5bG9hZCBhbiB1bmljb2RlIHN0cmluZy4KKworICAgICAgICBSZXR1cm5zOgorICAgICAgICAg
ICAgcGF5bG9hZCB1bmljb2RlIHN0cmluZyBpbiBhIFdlYlNvY2tldCBmcmFtZS4KKworICAgICAg
ICBSYWlzZXM6CisgICAgICAgICAgICBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbjogd2hl
biByZWFkIHJldHVybnMgZW1wdHkKKyAgICAgICAgICAgICAgICBzdHJpbmcuCisgICAgICAgICAg
ICBCYWRPcGVyYXRpb25FeGNlcHRpb246IHdoZW4gY2FsbGVkIG9uIGEgY2xpZW50LXRlcm1pbmF0
ZWQKKyAgICAgICAgICAgICAgICBjb25uZWN0aW9uLgorICAgICAgICAiIiIKKworICAgICAgICBp
ZiBzZWxmLl9yZXF1ZXN0LmNsaWVudF90ZXJtaW5hdGVkOgorICAgICAgICAgICAgcmFpc2UgQmFk
T3BlcmF0aW9uRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdSZXF1ZXN0ZWQgcmVjZWl2ZV9t
ZXNzYWdlIGFmdGVyIHJlY2VpdmluZyBhIGNsb3NpbmcgJworICAgICAgICAgICAgICAgICdoYW5k
c2hha2UnKQorCisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICAjIFJlYWQgMSBieXRl
LgorICAgICAgICAgICAgIyBtcF9jb25uLnJlYWQgd2lsbCBibG9jayBpZiBubyBieXRlcyBhcmUg
YXZhaWxhYmxlLgorICAgICAgICAgICAgIyBUaW1lb3V0IGlzIGNvbnRyb2xsZWQgYnkgVGltZU91
dCBkaXJlY3RpdmUgb2YgQXBhY2hlLgorICAgICAgICAgICAgZnJhbWVfdHlwZV9zdHIgPSBzZWxm
LnJlY2VpdmVfYnl0ZXMoMSkKKyAgICAgICAgICAgIGZyYW1lX3R5cGUgPSBvcmQoZnJhbWVfdHlw
ZV9zdHIpCisgICAgICAgICAgICBpZiAoZnJhbWVfdHlwZSAmIDB4ODApID09IDB4ODA6CisgICAg
ICAgICAgICAgICAgIyBUaGUgcGF5bG9hZCBsZW5ndGggaXMgc3BlY2lmaWVkIGluIHRoZSBmcmFt
ZS4KKyAgICAgICAgICAgICAgICAjIFJlYWQgYW5kIGRpc2NhcmQuCisgICAgICAgICAgICAgICAg
bGVuZ3RoID0gc2VsZi5fcmVhZF9wYXlsb2FkX2xlbmd0aF9oaXhpZTc1KCkKKyAgICAgICAgICAg
ICAgICBpZiBsZW5ndGggPiAwOgorICAgICAgICAgICAgICAgICAgICBfID0gc2VsZi5yZWNlaXZl
X2J5dGVzKGxlbmd0aCkKKyAgICAgICAgICAgICAgICAjIDUuMyAzLiAxMi4gaWYgL3R5cGUvIGlz
IDB4RkYgYW5kIC9sZW5ndGgvIGlzIDAsIHRoZW4gc2V0IHRoZQorICAgICAgICAgICAgICAgICMg
L2NsaWVudCB0ZXJtaW5hdGVkLyBmbGFnIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAgICAg
ICAgICAgICBpZiBub3Qgc2VsZi5fZW5hYmxlX2Nsb3NpbmdfaGFuZHNoYWtlOgorICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICAgICAgaWYgZnJhbWVfdHlwZSA9PSAw
eEZGIGFuZCBsZW5ndGggPT0gMDoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5j
bGllbnRfdGVybWluYXRlZCA9IFRydWUKKworICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLl9y
ZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWNlaXZlZCBhY2sg
Zm9yIHNlcnZlci1pbml0aWF0ZWQgY2xvc2luZyAnCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ2hhbmRzaGFrZScpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorCisg
ICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKKyAgICAgICAgICAgICAgICAg
ICAgICAgICdSZWNlaXZlZCBjbGllbnQtaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNoYWtlJykKKwor
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9zZW5kX2Nsb3NpbmdfaGFuZHNoYWtlKCkKKyAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAorICAgICAgICAgICAgICAgICAgICAg
ICAgJ1NlbnQgYWNrIGZvciBjbGllbnQtaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNoYWtlJykKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgIyBUaGUgcGF5bG9hZCBpcyBkZWxpbWl0ZWQgd2l0aCBceGZmLgorICAgICAgICAg
ICAgICAgIGJ5dGVzID0gc2VsZi5fcmVhZF91bnRpbCgnXHhmZicpCisgICAgICAgICAgICAgICAg
IyBUaGUgV2ViU29ja2V0IHByb3RvY29sIHNlY3Rpb24gNC40IHNwZWNpZmllcyB0aGF0IGludmFs
aWQKKyAgICAgICAgICAgICAgICAjIGNoYXJhY3RlcnMgbXVzdCBiZSByZXBsYWNlZCB3aXRoIFUr
ZmZmZCBSRVBMQUNFTUVOVAorICAgICAgICAgICAgICAgICMgQ0hBUkFDVEVSLgorICAgICAgICAg
ICAgICAgIG1lc3NhZ2UgPSBieXRlcy5kZWNvZGUoJ3V0Zi04JywgJ3JlcGxhY2UnKQorICAgICAg
ICAgICAgICAgIGlmIGZyYW1lX3R5cGUgPT0gMHgwMDoKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIG1lc3NhZ2UKKyAgICAgICAgICAgICAgICAjIERpc2NhcmQgZGF0YSBvZiBvdGhlciB0eXBl
cy4KKworICAgIGRlZiBfc2VuZF9jbG9zaW5nX2hhbmRzaGFrZShzZWxmKToKKyAgICAgICAgaWYg
bm90IHNlbGYuX2VuYWJsZV9jbG9zaW5nX2hhbmRzaGFrZToKKyAgICAgICAgICAgIHJhaXNlIEJh
ZE9wZXJhdGlvbkV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnQ2xvc2luZyBoYW5kc2hha2Ug
aXMgbm90IHN1cHBvcnRlZCBpbiBIaXhpZSA3NSBwcm90b2NvbCcpCisKKyAgICAgICAgc2VsZi5f
cmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZCA9IFRydWUKKworICAgICAgICAjIDUuMyB0aGUgc2Vy
dmVyIG1heSBkZWNpZGUgdG8gdGVybWluYXRlIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBieQor
ICAgICAgICAjIHJ1bm5pbmcgdGhyb3VnaCB0aGUgZm9sbG93aW5nIHN0ZXBzOgorICAgICAgICAj
IDEuIHNlbmQgYSAweEZGIGJ5dGUgYW5kIGEgMHgwMCBieXRlIHRvIHRoZSBjbGllbnQgdG8gaW5k
aWNhdGUgdGhlCisgICAgICAgICMgc3RhcnQgb2YgdGhlIGNsb3NpbmcgaGFuZHNoYWtlLgorICAg
ICAgICBzZWxmLl93cml0ZSgnXHhmZlx4MDAnKQorCisgICAgZGVmIGNsb3NlX2Nvbm5lY3Rpb24o
c2VsZiwgdW51c2VkX2NvZGU9JycsIHVudXNlZF9yZWFzb249JycpOgorICAgICAgICAiIiJDbG9z
ZXMgYSBXZWJTb2NrZXQgY29ubmVjdGlvbi4KKworICAgICAgICBSYWlzZXM6CisgICAgICAgICAg
ICBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbjogd2hlbiBjbG9zaW5nIGhhbmRzaGFrZSB3
YXMKKyAgICAgICAgICAgICAgICBub3Qgc3VjY2Vzc2Z1bGwuCisgICAgICAgICIiIgorCisgICAg
ICAgIGlmIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQ6CisgICAgICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAgICAgJ1JlcXVlc3RlZCBjbG9zZV9jb25uZWN0
aW9uIGJ1dCBzZXJ2ZXIgaXMgYWxyZWFkeSB0ZXJtaW5hdGVkJykKKyAgICAgICAgICAgIHJldHVy
bgorCisgICAgICAgIGlmIG5vdCBzZWxmLl9lbmFibGVfY2xvc2luZ19oYW5kc2hha2U6CisgICAg
ICAgICAgICBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkID0gVHJ1ZQorICAgICAgICAg
ICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDb25uZWN0aW9uIGNsb3NlZCcpCisgICAgICAgICAgICBy
ZXR1cm4KKworICAgICAgICBzZWxmLl9zZW5kX2Nsb3NpbmdfaGFuZHNoYWtlKCkKKyAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW50IHNlcnZlci1pbml0aWF0ZWQgY2xvc2luZyBoYW5kc2hh
a2UnKQorCisgICAgICAgICMgVE9ETyh1a2FpKTogMi4gd2FpdCB1bnRpbCB0aGUgL2NsaWVudCB0
ZXJtaW5hdGVkLyBmbGFnIGhhcyBiZWVuIHNldCwKKyAgICAgICAgIyBvciB1bnRpbCBhIHNlcnZl
ci1kZWZpbmVkIHRpbWVvdXQgZXhwaXJlcy4KKyAgICAgICAgIworICAgICAgICAjIEZvciBub3cs
IHdlIGV4cGVjdCByZWNlaXZpbmcgY2xvc2luZyBoYW5kc2hha2UgcmlnaHQgYWZ0ZXIgc2VuZGlu
ZworICAgICAgICAjIG91dCBjbG9zaW5nIGhhbmRzaGFrZSwgYW5kIGlmIHdlIGNvdWxkbid0IHJl
Y2VpdmUgbm9uLWhhbmRzaGFrZQorICAgICAgICAjIGZyYW1lLCB3ZSB0YWtlIGl0IGFzIENvbm5l
Y3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uLgorICAgICAgICBtZXNzYWdlID0gc2VsZi5yZWNlaXZl
X21lc3NhZ2UoKQorICAgICAgICBpZiBtZXNzYWdlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAg
cmFpc2UgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ0Rp
ZG5cJ3QgcmVjZWl2ZSB2YWxpZCBhY2sgZm9yIGNsb3NpbmcgaGFuZHNoYWtlJykKKyAgICAgICAg
IyBUT0RPOiAzLiBjbG9zZSB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24uCisgICAgICAgICMgbm90
ZTogbW9kX3B5dGhvbiBDb25uZWN0aW9uIChtcF9jb25uKSBkb2Vzbid0IGhhdmUgY2xvc2UgbWV0
aG9kLgorCisgICAgZGVmIHNlbmRfcGluZyhzZWxmLCBib2R5KToKKyAgICAgICAgcmFpc2UgQmFk
T3BlcmF0aW9uRXhjZXB0aW9uKAorICAgICAgICAgICAgJ1N0cmVhbUhpeGllNzUgZG9lc25cJ3Qg
c3VwcG9ydCBzZW5kX3BpbmcnKQorCisKKyMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9oeWJpLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2Nr
ZXQvX3N0cmVhbV9oeWJpLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwNDIyMWI0YzMwNDAyNmYwYWI5NGVjZWU3
OWViNjZhMmNlNDE0NDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9f
c3RyZWFtX2h5YmkucHkKQEAgLTAsMCArMSw4OTQgQEAKKyMgQ29weXJpZ2h0IDIwMTIsIEdvb2ds
ZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMg
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKKyIi
IlRoaXMgZmlsZSBwcm92aWRlcyBjbGFzc2VzIGFuZCBoZWxwZXIgZnVuY3Rpb25zIGZvciBwYXJz
aW5nL2J1aWxkaW5nIGZyYW1lcworb2YgdGhlIFdlYlNvY2tldCBwcm90b2NvbCAoUkZDIDY0NTUp
LgorCitTcGVjaWZpY2F0aW9uOgoraHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjQ1NQor
IiIiCisKKworZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVxdWUKK2ltcG9ydCBsb2dnaW5nCitp
bXBvcnQgb3MKK2ltcG9ydCBzdHJ1Y3QKK2ltcG9ydCB0aW1lCisKK2Zyb20gbW9kX3B5d2Vic29j
a2V0IGltcG9ydCBjb21tb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCitmcm9t
IG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEJhZE9wZXJhdGlvbkV4Y2VwdGlv
bgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBDb25uZWN0aW9uVGVy
bWluYXRlZEV4Y2VwdGlvbgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9y
dCBJbnZhbGlkRnJhbWVFeGNlcHRpb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFz
ZSBpbXBvcnQgSW52YWxpZFVURjhFeGNlcHRpb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJl
YW1fYmFzZSBpbXBvcnQgU3RyZWFtQmFzZQorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9i
YXNlIGltcG9ydCBVbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uCisKKworX05PT1BfTUFTS0VSID0g
dXRpbC5Ob29wTWFza2VyKCkKKworCitjbGFzcyBGcmFtZShvYmplY3QpOgorCisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGZpbj0xLCByc3YxPTAsIHJzdjI9MCwgcnN2Mz0wLAorICAgICAgICAgICAg
ICAgICBvcGNvZGU9Tm9uZSwgcGF5bG9hZD0nJyk6CisgICAgICAgIHNlbGYuZmluID0gZmluCisg
ICAgICAgIHNlbGYucnN2MSA9IHJzdjEKKyAgICAgICAgc2VsZi5yc3YyID0gcnN2MgorICAgICAg
ICBzZWxmLnJzdjMgPSByc3YzCisgICAgICAgIHNlbGYub3Bjb2RlID0gb3Bjb2RlCisgICAgICAg
IHNlbGYucGF5bG9hZCA9IHBheWxvYWQKKworCisjIEhlbHBlciBmdW5jdGlvbnMgbWFkZSBwdWJs
aWMgdG8gYmUgdXNlZCBmb3Igd3JpdGluZyB1bml0dGVzdHMgZm9yIFdlYlNvY2tldAorIyBjbGll
bnRzLgorCisKK2RlZiBjcmVhdGVfbGVuZ3RoX2hlYWRlcihsZW5ndGgsIG1hc2spOgorICAgICIi
IkNyZWF0ZXMgYSBsZW5ndGggaGVhZGVyLgorCisgICAgQXJnczoKKyAgICAgICAgbGVuZ3RoOiBG
cmFtZSBsZW5ndGguIE11c3QgYmUgbGVzcyB0aGFuIDJeNjMuCisgICAgICAgIG1hc2s6IE1hc2sg
Yml0LiBNdXN0IGJlIGJvb2xlYW4uCisKKyAgICBSYWlzZXM6CisgICAgICAgIFZhbHVlRXJyb3I6
IHdoZW4gYmFkIGRhdGEgaXMgZ2l2ZW4uCisgICAgIiIiCisKKyAgICBpZiBtYXNrOgorICAgICAg
ICBtYXNrX2JpdCA9IDEgPDwgNworICAgIGVsc2U6CisgICAgICAgIG1hc2tfYml0ID0gMAorCisg
ICAgaWYgbGVuZ3RoIDwgMDoKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignbGVuZ3RoIG11c3Qg
YmUgbm9uIG5lZ2F0aXZlIGludGVnZXInKQorICAgIGVsaWYgbGVuZ3RoIDw9IDEyNToKKyAgICAg
ICAgcmV0dXJuIGNocihtYXNrX2JpdCB8IGxlbmd0aCkKKyAgICBlbGlmIGxlbmd0aCA8ICgxIDw8
IDE2KToKKyAgICAgICAgcmV0dXJuIGNocihtYXNrX2JpdCB8IDEyNikgKyBzdHJ1Y3QucGFjaygn
IUgnLCBsZW5ndGgpCisgICAgZWxpZiBsZW5ndGggPCAoMSA8PCA2Myk6CisgICAgICAgIHJldHVy
biBjaHIobWFza19iaXQgfCAxMjcpICsgc3RydWN0LnBhY2soJyFRJywgbGVuZ3RoKQorICAgIGVs
c2U6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1BheWxvYWQgaXMgdG9vIGJpZyBmb3Igb25l
IGZyYW1lJykKKworCitkZWYgY3JlYXRlX2hlYWRlcihvcGNvZGUsIHBheWxvYWRfbGVuZ3RoLCBm
aW4sIHJzdjEsIHJzdjIsIHJzdjMsIG1hc2spOgorICAgICIiIkNyZWF0ZXMgYSBmcmFtZSBoZWFk
ZXIuCisKKyAgICBSYWlzZXM6CisgICAgICAgIEV4Y2VwdGlvbjogd2hlbiBiYWQgZGF0YSBpcyBn
aXZlbi4KKyAgICAiIiIKKworICAgIGlmIG9wY29kZSA8IDAgb3IgMHhmIDwgb3Bjb2RlOgorICAg
ICAgICByYWlzZSBWYWx1ZUVycm9yKCdPcGNvZGUgb3V0IG9mIHJhbmdlJykKKworICAgIGlmIHBh
eWxvYWRfbGVuZ3RoIDwgMCBvciAoMSA8PCA2MykgPD0gcGF5bG9hZF9sZW5ndGg6CisgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoJ3BheWxvYWRfbGVuZ3RoIG91dCBvZiByYW5nZScpCisKKyAgICBp
ZiAoZmluIHwgcnN2MSB8IHJzdjIgfCByc3YzKSAmIH4xOgorICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCdGSU4gYml0IGFuZCBSZXNlcnZlZCBiaXQgcGFyYW1ldGVyIG11c3QgYmUgMCBvciAxJykK
KworICAgIGhlYWRlciA9ICcnCisKKyAgICBmaXJzdF9ieXRlID0gKChmaW4gPDwgNykKKyAgICAg
ICAgICAgICAgICAgIHwgKHJzdjEgPDwgNikgfCAocnN2MiA8PCA1KSB8IChyc3YzIDw8IDQpCisg
ICAgICAgICAgICAgICAgICB8IG9wY29kZSkKKyAgICBoZWFkZXIgKz0gY2hyKGZpcnN0X2J5dGUp
CisgICAgaGVhZGVyICs9IGNyZWF0ZV9sZW5ndGhfaGVhZGVyKHBheWxvYWRfbGVuZ3RoLCBtYXNr
KQorCisgICAgcmV0dXJuIGhlYWRlcgorCisKK2RlZiBfYnVpbGRfZnJhbWUoaGVhZGVyLCBib2R5
LCBtYXNrKToKKyAgICBpZiBub3QgbWFzazoKKyAgICAgICAgcmV0dXJuIGhlYWRlciArIGJvZHkK
KworICAgIG1hc2tpbmdfbm9uY2UgPSBvcy51cmFuZG9tKDQpCisgICAgbWFza2VyID0gdXRpbC5S
ZXBlYXRlZFhvck1hc2tlcihtYXNraW5nX25vbmNlKQorCisgICAgcmV0dXJuIGhlYWRlciArIG1h
c2tpbmdfbm9uY2UgKyBtYXNrZXIubWFzayhib2R5KQorCisKK2RlZiBfZmlsdGVyX2FuZF9mb3Jt
YXRfZnJhbWVfb2JqZWN0KGZyYW1lLCBtYXNrLCBmcmFtZV9maWx0ZXJzKToKKyAgICBmb3IgZnJh
bWVfZmlsdGVyIGluIGZyYW1lX2ZpbHRlcnM6CisgICAgICAgIGZyYW1lX2ZpbHRlci5maWx0ZXIo
ZnJhbWUpCisKKyAgICBoZWFkZXIgPSBjcmVhdGVfaGVhZGVyKAorICAgICAgICBmcmFtZS5vcGNv
ZGUsIGxlbihmcmFtZS5wYXlsb2FkKSwgZnJhbWUuZmluLAorICAgICAgICBmcmFtZS5yc3YxLCBm
cmFtZS5yc3YyLCBmcmFtZS5yc3YzLCBtYXNrKQorICAgIHJldHVybiBfYnVpbGRfZnJhbWUoaGVh
ZGVyLCBmcmFtZS5wYXlsb2FkLCBtYXNrKQorCisKK2RlZiBjcmVhdGVfYmluYXJ5X2ZyYW1lKAor
ICAgIG1lc3NhZ2UsIG9wY29kZT1jb21tb24uT1BDT0RFX0JJTkFSWSwgZmluPTEsIG1hc2s9RmFs
c2UsIGZyYW1lX2ZpbHRlcnM9W10pOgorICAgICIiIkNyZWF0ZXMgYSBzaW1wbGUgYmluYXJ5IGZy
YW1lIHdpdGggbm8gZXh0ZW5zaW9uLCByZXNlcnZlZCBiaXQuIiIiCisKKyAgICBmcmFtZSA9IEZy
YW1lKGZpbj1maW4sIG9wY29kZT1vcGNvZGUsIHBheWxvYWQ9bWVzc2FnZSkKKyAgICByZXR1cm4g
X2ZpbHRlcl9hbmRfZm9ybWF0X2ZyYW1lX29iamVjdChmcmFtZSwgbWFzaywgZnJhbWVfZmlsdGVy
cykKKworCitkZWYgY3JlYXRlX3RleHRfZnJhbWUoCisgICAgbWVzc2FnZSwgb3Bjb2RlPWNvbW1v
bi5PUENPREVfVEVYVCwgZmluPTEsIG1hc2s9RmFsc2UsIGZyYW1lX2ZpbHRlcnM9W10pOgorICAg
ICIiIkNyZWF0ZXMgYSBzaW1wbGUgdGV4dCBmcmFtZSB3aXRoIG5vIGV4dGVuc2lvbiwgcmVzZXJ2
ZWQgYml0LiIiIgorCisgICAgZW5jb2RlZF9tZXNzYWdlID0gbWVzc2FnZS5lbmNvZGUoJ3V0Zi04
JykKKyAgICByZXR1cm4gY3JlYXRlX2JpbmFyeV9mcmFtZShlbmNvZGVkX21lc3NhZ2UsIG9wY29k
ZSwgZmluLCBtYXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lX2ZpbHRl
cnMpCisKKworZGVmIHBhcnNlX2ZyYW1lKHJlY2VpdmVfYnl0ZXMsIGxvZ2dlcj1Ob25lLAorICAg
ICAgICAgICAgICAgIHdzX3ZlcnNpb249Y29tbW9uLlZFUlNJT05fSFlCSV9MQVRFU1QsCisgICAg
ICAgICAgICAgICAgdW5tYXNrX3JlY2VpdmU9VHJ1ZSk6CisgICAgIiIiUGFyc2VzIGEgZnJhbWUu
IFJldHVybnMgYSB0dXBsZSBjb250YWluaW5nIGVhY2ggaGVhZGVyIGZpZWxkIGFuZAorICAgIHBh
eWxvYWQuCisKKyAgICBBcmdzOgorICAgICAgICByZWNlaXZlX2J5dGVzOiBhIGZ1bmN0aW9uIHRo
YXQgcmVhZHMgZnJhbWUgZGF0YSBmcm9tIGEgc3RyZWFtIG9yCisgICAgICAgICAgICBzb21ldGhp
bmcgc2ltaWxhci4gVGhlIGZ1bmN0aW9uIHRha2VzIGxlbmd0aCBvZiB0aGUgYnl0ZXMgdG8gYmUK
KyAgICAgICAgICAgIHJlYWQuIFRoZSBmdW5jdGlvbiBtdXN0IHJhaXNlIENvbm5lY3Rpb25UZXJt
aW5hdGVkRXhjZXB0aW9uIGlmCisgICAgICAgICAgICB0aGVyZSBpcyBub3QgZW5vdWdoIGRhdGEg
dG8gYmUgcmVhZC4KKyAgICAgICAgbG9nZ2VyOiBhIGxvZ2dpbmcgb2JqZWN0LgorICAgICAgICB3
c192ZXJzaW9uOiB0aGUgdmVyc2lvbiBvZiBXZWJTb2NrZXQgcHJvdG9jb2wuCisgICAgICAgIHVu
bWFza19yZWNlaXZlOiB1bm1hc2sgcmVjZWl2ZWQgZnJhbWVzLiBXaGVuIHJlY2VpdmVkIHVubWFz
a2VkCisgICAgICAgICAgICBmcmFtZSwgcmFpc2VzIEludmFsaWRGcmFtZUV4Y2VwdGlvbi4KKwor
ICAgIFJhaXNlczoKKyAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4g
cmVjZWl2ZV9ieXRlcyByYWlzZXMgaXQuCisgICAgICAgIEludmFsaWRGcmFtZUV4Y2VwdGlvbjog
d2hlbiB0aGUgZnJhbWUgY29udGFpbnMgaW52YWxpZCBkYXRhLgorICAgICIiIgorCisgICAgaWYg
bm90IGxvZ2dlcjoKKyAgICAgICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoKQorCisgICAg
bG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxfRklORSwgJ1JlY2VpdmUgdGhlIGZpcnN0IDIgb2N0
ZXRzIG9mIGEgZnJhbWUnKQorCisgICAgcmVjZWl2ZWQgPSByZWNlaXZlX2J5dGVzKDIpCisKKyAg
ICBmaXJzdF9ieXRlID0gb3JkKHJlY2VpdmVkWzBdKQorICAgIGZpbiA9IChmaXJzdF9ieXRlID4+
IDcpICYgMQorICAgIHJzdjEgPSAoZmlyc3RfYnl0ZSA+PiA2KSAmIDEKKyAgICByc3YyID0gKGZp
cnN0X2J5dGUgPj4gNSkgJiAxCisgICAgcnN2MyA9IChmaXJzdF9ieXRlID4+IDQpICYgMQorICAg
IG9wY29kZSA9IGZpcnN0X2J5dGUgJiAweGYKKworICAgIHNlY29uZF9ieXRlID0gb3JkKHJlY2Vp
dmVkWzFdKQorICAgIG1hc2sgPSAoc2Vjb25kX2J5dGUgPj4gNykgJiAxCisgICAgcGF5bG9hZF9s
ZW5ndGggPSBzZWNvbmRfYnl0ZSAmIDB4N2YKKworICAgIGxvZ2dlci5sb2coY29tbW9uLkxPR0xF
VkVMX0ZJTkUsCisgICAgICAgICAgICAgICAnRklOPSVzLCBSU1YxPSVzLCBSU1YyPSVzLCBSU1Yz
PSVzLCBvcGNvZGU9JXMsICcKKyAgICAgICAgICAgICAgICdNYXNrPSVzLCBQYXlsb2FkX2xlbmd0
aD0lcycsCisgICAgICAgICAgICAgICBmaW4sIHJzdjEsIHJzdjIsIHJzdjMsIG9wY29kZSwgbWFz
aywgcGF5bG9hZF9sZW5ndGgpCisKKyAgICBpZiAobWFzayA9PSAxKSAhPSB1bm1hc2tfcmVjZWl2
ZToKKyAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAorICAgICAgICAgICAgJ01h
c2sgYml0IG9uIHRoZSByZWNlaXZlZCBmcmFtZSBkaWRcJ250IG1hdGNoIG1hc2tpbmcgJworICAg
ICAgICAgICAgJ2NvbmZpZ3VyYXRpb24gZm9yIHJlY2VpdmVkIGZyYW1lcycpCisKKyAgICAjIFRo
ZSBIeUJpIGFuZCBsYXRlciBzcGVjcyBkaXNhbGxvdyBwdXR0aW5nIGEgdmFsdWUgaW4gMHgwLTB4
RkZGRgorICAgICMgaW50byB0aGUgOC1vY3RldCBleHRlbmRlZCBwYXlsb2FkIGxlbmd0aCBmaWVs
ZCAob3IgMHgwLTB4RkQgaW4KKyAgICAjIDItb2N0ZXQgZmllbGQpLgorICAgIHZhbGlkX2xlbmd0
aF9lbmNvZGluZyA9IFRydWUKKyAgICBsZW5ndGhfZW5jb2RpbmdfYnl0ZXMgPSAxCisgICAgaWYg
cGF5bG9hZF9sZW5ndGggPT0gMTI3OgorICAgICAgICBsb2dnZXIubG9nKGNvbW1vbi5MT0dMRVZF
TF9GSU5FLAorICAgICAgICAgICAgICAgICAgICdSZWNlaXZlIDgtb2N0ZXQgZXh0ZW5kZWQgcGF5
bG9hZCBsZW5ndGgnKQorCisgICAgICAgIGV4dGVuZGVkX3BheWxvYWRfbGVuZ3RoID0gcmVjZWl2
ZV9ieXRlcyg4KQorICAgICAgICBwYXlsb2FkX2xlbmd0aCA9IHN0cnVjdC51bnBhY2soCisgICAg
ICAgICAgICAnIVEnLCBleHRlbmRlZF9wYXlsb2FkX2xlbmd0aClbMF0KKyAgICAgICAgaWYgcGF5
bG9hZF9sZW5ndGggPiAweDdGRkZGRkZGRkZGRkZGRkY6CisgICAgICAgICAgICByYWlzZSBJbnZh
bGlkRnJhbWVFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ0V4dGVuZGVkIHBheWxvYWQgbGVu
Z3RoID49IDJeNjMnKQorICAgICAgICBpZiB3c192ZXJzaW9uID49IDEzIGFuZCBwYXlsb2FkX2xl
bmd0aCA8IDB4MTAwMDA6CisgICAgICAgICAgICB2YWxpZF9sZW5ndGhfZW5jb2RpbmcgPSBGYWxz
ZQorICAgICAgICAgICAgbGVuZ3RoX2VuY29kaW5nX2J5dGVzID0gOAorCisgICAgICAgIGxvZ2dl
ci5sb2coY29tbW9uLkxPR0xFVkVMX0ZJTkUsCisgICAgICAgICAgICAgICAgICAgJ0RlY29kZWRf
cGF5bG9hZF9sZW5ndGg9JXMnLCBwYXlsb2FkX2xlbmd0aCkKKyAgICBlbGlmIHBheWxvYWRfbGVu
Z3RoID09IDEyNjoKKyAgICAgICAgbG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxfRklORSwKKyAg
ICAgICAgICAgICAgICAgICAnUmVjZWl2ZSAyLW9jdGV0IGV4dGVuZGVkIHBheWxvYWQgbGVuZ3Ro
JykKKworICAgICAgICBleHRlbmRlZF9wYXlsb2FkX2xlbmd0aCA9IHJlY2VpdmVfYnl0ZXMoMikK
KyAgICAgICAgcGF5bG9hZF9sZW5ndGggPSBzdHJ1Y3QudW5wYWNrKAorICAgICAgICAgICAgJyFI
JywgZXh0ZW5kZWRfcGF5bG9hZF9sZW5ndGgpWzBdCisgICAgICAgIGlmIHdzX3ZlcnNpb24gPj0g
MTMgYW5kIHBheWxvYWRfbGVuZ3RoIDwgMTI2OgorICAgICAgICAgICAgdmFsaWRfbGVuZ3RoX2Vu
Y29kaW5nID0gRmFsc2UKKyAgICAgICAgICAgIGxlbmd0aF9lbmNvZGluZ19ieXRlcyA9IDIKKwor
ICAgICAgICBsb2dnZXIubG9nKGNvbW1vbi5MT0dMRVZFTF9GSU5FLAorICAgICAgICAgICAgICAg
ICAgICdEZWNvZGVkX3BheWxvYWRfbGVuZ3RoPSVzJywgcGF5bG9hZF9sZW5ndGgpCisKKyAgICBp
ZiBub3QgdmFsaWRfbGVuZ3RoX2VuY29kaW5nOgorICAgICAgICBsb2dnZXIud2FybmluZygKKyAg
ICAgICAgICAgICdQYXlsb2FkIGxlbmd0aCBpcyBub3QgZW5jb2RlZCB1c2luZyB0aGUgbWluaW1h
bCBudW1iZXIgb2YgJworICAgICAgICAgICAgJ2J5dGVzICglZCBpcyBlbmNvZGVkIHVzaW5nICVk
IGJ5dGVzKScsCisgICAgICAgICAgICBwYXlsb2FkX2xlbmd0aCwKKyAgICAgICAgICAgIGxlbmd0
aF9lbmNvZGluZ19ieXRlcykKKworICAgIGlmIG1hc2sgPT0gMToKKyAgICAgICAgbG9nZ2VyLmxv
Zyhjb21tb24uTE9HTEVWRUxfRklORSwgJ1JlY2VpdmUgbWFzaycpCisKKyAgICAgICAgbWFza2lu
Z19ub25jZSA9IHJlY2VpdmVfYnl0ZXMoNCkKKyAgICAgICAgbWFza2VyID0gdXRpbC5SZXBlYXRl
ZFhvck1hc2tlcihtYXNraW5nX25vbmNlKQorCisgICAgICAgIGxvZ2dlci5sb2coY29tbW9uLkxP
R0xFVkVMX0ZJTkUsICdNYXNrPSVyJywgbWFza2luZ19ub25jZSkKKyAgICBlbHNlOgorICAgICAg
ICBtYXNrZXIgPSBfTk9PUF9NQVNLRVIKKworICAgIGxvZ2dlci5sb2coY29tbW9uLkxPR0xFVkVM
X0ZJTkUsICdSZWNlaXZlIHBheWxvYWQgZGF0YScpCisgICAgaWYgbG9nZ2VyLmlzRW5hYmxlZEZv
cihjb21tb24uTE9HTEVWRUxfRklORSk6CisgICAgICAgIHJlY2VpdmVfc3RhcnQgPSB0aW1lLnRp
bWUoKQorCisgICAgcmF3X3BheWxvYWRfYnl0ZXMgPSByZWNlaXZlX2J5dGVzKHBheWxvYWRfbGVu
Z3RoKQorCisgICAgaWYgbG9nZ2VyLmlzRW5hYmxlZEZvcihjb21tb24uTE9HTEVWRUxfRklORSk6
CisgICAgICAgIGxvZ2dlci5sb2coCisgICAgICAgICAgICBjb21tb24uTE9HTEVWRUxfRklORSwK
KyAgICAgICAgICAgICdEb25lIHJlY2VpdmluZyBwYXlsb2FkIGRhdGEgYXQgJXMgTUIvcycsCisg
ICAgICAgICAgICBwYXlsb2FkX2xlbmd0aCAvICh0aW1lLnRpbWUoKSAtIHJlY2VpdmVfc3RhcnQp
IC8gMTAwMCAvIDEwMDApCisgICAgbG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxfRklORSwgJ1Vu
bWFzayBwYXlsb2FkIGRhdGEnKQorCisgICAgaWYgbG9nZ2VyLmlzRW5hYmxlZEZvcihjb21tb24u
TE9HTEVWRUxfRklORSk6CisgICAgICAgIHVubWFza19zdGFydCA9IHRpbWUudGltZSgpCisKKyAg
ICB1bm1hc2tlZF9ieXRlcyA9IG1hc2tlci5tYXNrKHJhd19wYXlsb2FkX2J5dGVzKQorCisgICAg
aWYgbG9nZ2VyLmlzRW5hYmxlZEZvcihjb21tb24uTE9HTEVWRUxfRklORSk6CisgICAgICAgIGxv
Z2dlci5sb2coCisgICAgICAgICAgICBjb21tb24uTE9HTEVWRUxfRklORSwKKyAgICAgICAgICAg
ICdEb25lIHVubWFza2luZyBwYXlsb2FkIGRhdGEgYXQgJXMgTUIvcycsCisgICAgICAgICAgICBw
YXlsb2FkX2xlbmd0aCAvICh0aW1lLnRpbWUoKSAtIHVubWFza19zdGFydCkgLyAxMDAwIC8gMTAw
MCkKKworICAgIHJldHVybiBvcGNvZGUsIHVubWFza2VkX2J5dGVzLCBmaW4sIHJzdjEsIHJzdjIs
IHJzdjMKKworCitjbGFzcyBGcmFnbWVudGVkRnJhbWVCdWlsZGVyKG9iamVjdCk6CisgICAgIiIi
QSBzdGF0ZWZ1bCBjbGFzcyB0byBzZW5kIGEgbWVzc2FnZSBhcyBmcmFnbWVudHMuIiIiCisKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgbWFzaywgZnJhbWVfZmlsdGVycz1bXSwgZW5jb2RlX3V0Zjg9
VHJ1ZSk6CisgICAgICAgICIiIkNvbnN0cnVjdHMgYW4gaW5zdGFuY2UuIiIiCisKKyAgICAgICAg
c2VsZi5fbWFzayA9IG1hc2sKKyAgICAgICAgc2VsZi5fZnJhbWVfZmlsdGVycyA9IGZyYW1lX2Zp
bHRlcnMKKyAgICAgICAgIyBUaGlzIGlzIGZvciBza2lwcGluZyBVVEYtOCBlbmNvZGluZyB3aGVu
IGJ1aWxkaW5nIHRleHQgdHlwZSBmcmFtZXMKKyAgICAgICAgIyBmcm9tIGNvbXByZXNzZWQgZGF0
YS4KKyAgICAgICAgc2VsZi5fZW5jb2RlX3V0ZjggPSBlbmNvZGVfdXRmOAorCisgICAgICAgIHNl
bGYuX3N0YXJ0ZWQgPSBGYWxzZQorCisgICAgICAgICMgSG9sZCBvcGNvZGUgb2YgdGhlIGZpcnN0
IGZyYW1lIGluIG1lc3NhZ2VzIHRvIHZlcmlmeSB0eXBlcyBvZiBvdGhlcgorICAgICAgICAjIGZy
YW1lcyBpbiB0aGUgbWVzc2FnZSBhcmUgYWxsIHRoZSBzYW1lLgorICAgICAgICBzZWxmLl9vcGNv
ZGUgPSBjb21tb24uT1BDT0RFX1RFWFQKKworICAgIGRlZiBidWlsZChzZWxmLCBwYXlsb2FkX2Rh
dGEsIGVuZCwgYmluYXJ5KToKKyAgICAgICAgaWYgYmluYXJ5OgorICAgICAgICAgICAgZnJhbWVf
dHlwZSA9IGNvbW1vbi5PUENPREVfQklOQVJZCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBm
cmFtZV90eXBlID0gY29tbW9uLk9QQ09ERV9URVhUCisgICAgICAgIGlmIHNlbGYuX3N0YXJ0ZWQ6
CisgICAgICAgICAgICBpZiBzZWxmLl9vcGNvZGUgIT0gZnJhbWVfdHlwZToKKyAgICAgICAgICAg
ICAgICByYWlzZSBWYWx1ZUVycm9yKCdNZXNzYWdlIHR5cGVzIGFyZSBkaWZmZXJlbnQgaW4gZnJh
bWVzIGZvciAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGhlIHNhbWUgbWVz
c2FnZScpCisgICAgICAgICAgICBvcGNvZGUgPSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTgor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgb3Bjb2RlID0gZnJhbWVfdHlwZQorICAgICAgICAg
ICAgc2VsZi5fb3Bjb2RlID0gZnJhbWVfdHlwZQorCisgICAgICAgIGlmIGVuZDoKKyAgICAgICAg
ICAgIHNlbGYuX3N0YXJ0ZWQgPSBGYWxzZQorICAgICAgICAgICAgZmluID0gMQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgc2VsZi5fc3RhcnRlZCA9IFRydWUKKyAgICAgICAgICAgIGZpbiA9
IDAKKworICAgICAgICBpZiBiaW5hcnkgb3Igbm90IHNlbGYuX2VuY29kZV91dGY4OgorICAgICAg
ICAgICAgcmV0dXJuIGNyZWF0ZV9iaW5hcnlfZnJhbWUoCisgICAgICAgICAgICAgICAgcGF5bG9h
ZF9kYXRhLCBvcGNvZGUsIGZpbiwgc2VsZi5fbWFzaywgc2VsZi5fZnJhbWVfZmlsdGVycykKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVfdGV4dF9mcmFtZSgKKyAgICAg
ICAgICAgICAgICBwYXlsb2FkX2RhdGEsIG9wY29kZSwgZmluLCBzZWxmLl9tYXNrLCBzZWxmLl9m
cmFtZV9maWx0ZXJzKQorCisKK2RlZiBfY3JlYXRlX2NvbnRyb2xfZnJhbWUob3Bjb2RlLCBib2R5
LCBtYXNrLCBmcmFtZV9maWx0ZXJzKToKKyAgICBmcmFtZSA9IEZyYW1lKG9wY29kZT1vcGNvZGUs
IHBheWxvYWQ9Ym9keSkKKworICAgIGZvciBmcmFtZV9maWx0ZXIgaW4gZnJhbWVfZmlsdGVyczoK
KyAgICAgICAgZnJhbWVfZmlsdGVyLmZpbHRlcihmcmFtZSkKKworICAgIGlmIGxlbihmcmFtZS5w
YXlsb2FkKSA+IDEyNToKKyAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAorICAg
ICAgICAgICAgJ1BheWxvYWQgZGF0YSBzaXplIG9mIGNvbnRyb2wgZnJhbWVzIG11c3QgYmUgMTI1
IGJ5dGVzIG9yIGxlc3MnKQorCisgICAgaGVhZGVyID0gY3JlYXRlX2hlYWRlcigKKyAgICAgICAg
ZnJhbWUub3Bjb2RlLCBsZW4oZnJhbWUucGF5bG9hZCksIGZyYW1lLmZpbiwKKyAgICAgICAgZnJh
bWUucnN2MSwgZnJhbWUucnN2MiwgZnJhbWUucnN2MywgbWFzaykKKyAgICByZXR1cm4gX2J1aWxk
X2ZyYW1lKGhlYWRlciwgZnJhbWUucGF5bG9hZCwgbWFzaykKKworCitkZWYgY3JlYXRlX3Bpbmdf
ZnJhbWUoYm9keSwgbWFzaz1GYWxzZSwgZnJhbWVfZmlsdGVycz1bXSk6CisgICAgcmV0dXJuIF9j
cmVhdGVfY29udHJvbF9mcmFtZShjb21tb24uT1BDT0RFX1BJTkcsIGJvZHksIG1hc2ssIGZyYW1l
X2ZpbHRlcnMpCisKKworZGVmIGNyZWF0ZV9wb25nX2ZyYW1lKGJvZHksIG1hc2s9RmFsc2UsIGZy
YW1lX2ZpbHRlcnM9W10pOgorICAgIHJldHVybiBfY3JlYXRlX2NvbnRyb2xfZnJhbWUoY29tbW9u
Lk9QQ09ERV9QT05HLCBib2R5LCBtYXNrLCBmcmFtZV9maWx0ZXJzKQorCisKK2RlZiBjcmVhdGVf
Y2xvc2VfZnJhbWUoYm9keSwgbWFzaz1GYWxzZSwgZnJhbWVfZmlsdGVycz1bXSk6CisgICAgcmV0
dXJuIF9jcmVhdGVfY29udHJvbF9mcmFtZSgKKyAgICAgICAgY29tbW9uLk9QQ09ERV9DTE9TRSwg
Ym9keSwgbWFzaywgZnJhbWVfZmlsdGVycykKKworCitkZWYgY3JlYXRlX2Nsb3NpbmdfaGFuZHNo
YWtlX2JvZHkoY29kZSwgcmVhc29uKToKKyAgICBib2R5ID0gJycKKyAgICBpZiBjb2RlIGlzIG5v
dCBOb25lOgorICAgICAgICBpZiAoY29kZSA+IGNvbW1vbi5TVEFUVVNfVVNFUl9QUklWQVRFX01B
WCBvcgorICAgICAgICAgICAgY29kZSA8IGNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUpOgor
ICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKCdTdGF0dXMgY29kZSBpcyBv
dXQgb2YgcmFuZ2UnKQorICAgICAgICBpZiAoY29kZSA9PSBjb21tb24uU1RBVFVTX05PX1NUQVRV
U19SRUNFSVZFRCBvcgorICAgICAgICAgICAgY29kZSA9PSBjb21tb24uU1RBVFVTX0FCTk9STUFM
X0NMT1NVUkUgb3IKKyAgICAgICAgICAgIGNvZGUgPT0gY29tbW9uLlNUQVRVU19UTFNfSEFORFNI
QUtFKToKKyAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbignU3RhdHVzIGNv
ZGUgaXMgcmVzZXJ2ZWQgcHNldWRvICcKKyAgICAgICAgICAgICAgICAnY29kZScpCisgICAgICAg
IGVuY29kZWRfcmVhc29uID0gcmVhc29uLmVuY29kZSgndXRmLTgnKQorICAgICAgICBib2R5ID0g
c3RydWN0LnBhY2soJyFIJywgY29kZSkgKyBlbmNvZGVkX3JlYXNvbgorICAgIHJldHVybiBib2R5
CisKKworY2xhc3MgU3RyZWFtT3B0aW9ucyhvYmplY3QpOgorICAgICIiIkhvbGRzIG9wdGlvbiB2
YWx1ZXMgdG8gY29uZmlndXJlIFN0cmVhbSBvYmplY3RzLiIiIgorCisgICAgZGVmIF9faW5pdF9f
KHNlbGYpOgorICAgICAgICAiIiJDb25zdHJ1Y3RzIFN0cmVhbU9wdGlvbnMuIiIiCisKKyAgICAg
ICAgIyBGaWx0ZXJzIGFwcGxpZWQgdG8gZnJhbWVzLgorICAgICAgICBzZWxmLm91dGdvaW5nX2Zy
YW1lX2ZpbHRlcnMgPSBbXQorICAgICAgICBzZWxmLmluY29taW5nX2ZyYW1lX2ZpbHRlcnMgPSBb
XQorCisgICAgICAgICMgRmlsdGVycyBhcHBsaWVkIHRvIG1lc3NhZ2VzLiBDb250cm9sIGZyYW1l
cyBhcmUgbm90IGFmZmVjdGVkIGJ5IHRoZW0uCisgICAgICAgIHNlbGYub3V0Z29pbmdfbWVzc2Fn
ZV9maWx0ZXJzID0gW10KKyAgICAgICAgc2VsZi5pbmNvbWluZ19tZXNzYWdlX2ZpbHRlcnMgPSBb
XQorCisgICAgICAgIHNlbGYuZW5jb2RlX3RleHRfbWVzc2FnZV90b191dGY4ID0gVHJ1ZQorICAg
ICAgICBzZWxmLm1hc2tfc2VuZCA9IEZhbHNlCisgICAgICAgIHNlbGYudW5tYXNrX3JlY2VpdmUg
PSBUcnVlCisKKworY2xhc3MgU3RyZWFtKFN0cmVhbUJhc2UpOgorICAgICIiIkEgY2xhc3MgZm9y
IHBhcnNpbmcvYnVpbGRpbmcgZnJhbWVzIG9mIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wKKyAgICAo
UkZDIDY0NTUpLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIG9w
dGlvbnMpOgorICAgICAgICAiIiJDb25zdHJ1Y3RzIGFuIGluc3RhbmNlLgorCisgICAgICAgIEFy
Z3M6CisgICAgICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCisgICAgICAgICIi
IgorCisgICAgICAgIFN0cmVhbUJhc2UuX19pbml0X18oc2VsZiwgcmVxdWVzdCkKKworICAgICAg
ICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKKworICAgICAgICBz
ZWxmLl9vcHRpb25zID0gb3B0aW9ucworCisgICAgICAgIHNlbGYuX3JlcXVlc3QuY2xpZW50X3Rl
cm1pbmF0ZWQgPSBGYWxzZQorICAgICAgICBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVk
ID0gRmFsc2UKKworICAgICAgICAjIEhvbGRzIGJvZHkgb2YgcmVjZWl2ZWQgZnJhZ21lbnRzLgor
ICAgICAgICBzZWxmLl9yZWNlaXZlZF9mcmFnbWVudHMgPSBbXQorICAgICAgICAjIEhvbGRzIHRo
ZSBvcGNvZGUgb2YgdGhlIGZpcnN0IGZyYWdtZW50LgorICAgICAgICBzZWxmLl9vcmlnaW5hbF9v
cGNvZGUgPSBOb25lCisKKyAgICAgICAgc2VsZi5fd3JpdGVyID0gRnJhZ21lbnRlZEZyYW1lQnVp
bGRlcigKKyAgICAgICAgICAgIHNlbGYuX29wdGlvbnMubWFza19zZW5kLCBzZWxmLl9vcHRpb25z
Lm91dGdvaW5nX2ZyYW1lX2ZpbHRlcnMsCisgICAgICAgICAgICBzZWxmLl9vcHRpb25zLmVuY29k
ZV90ZXh0X21lc3NhZ2VfdG9fdXRmOCkKKworICAgICAgICBzZWxmLl9waW5nX3F1ZXVlID0gZGVx
dWUoKQorCisgICAgZGVmIF9yZWNlaXZlX2ZyYW1lKHNlbGYpOgorICAgICAgICAiIiJSZWNlaXZl
cyBhIGZyYW1lIGFuZCByZXR1cm4gZGF0YSBpbiB0aGUgZnJhbWUgYXMgYSB0dXBsZSBjb250YWlu
aW5nCisgICAgICAgIGVhY2ggaGVhZGVyIGZpZWxkIGFuZCBwYXlsb2FkIHNlcGFyYXRlbHkuCisK
KyAgICAgICAgUmFpc2VzOgorICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRp
b246IHdoZW4gcmVhZCByZXR1cm5zIGVtcHR5CisgICAgICAgICAgICAgICAgc3RyaW5nLgorICAg
ICAgICAgICAgSW52YWxpZEZyYW1lRXhjZXB0aW9uOiB3aGVuIHRoZSBmcmFtZSBjb250YWlucyBp
bnZhbGlkIGRhdGEuCisgICAgICAgICIiIgorCisgICAgICAgIGRlZiBfcmVjZWl2ZV9ieXRlcyhs
ZW5ndGgpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVjZWl2ZV9ieXRlcyhsZW5ndGgpCisK
KyAgICAgICAgcmV0dXJuIHBhcnNlX2ZyYW1lKHJlY2VpdmVfYnl0ZXM9X3JlY2VpdmVfYnl0ZXMs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXI9c2VsZi5fbG9nZ2VyLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgd3NfdmVyc2lvbj1zZWxmLl9yZXF1ZXN0LndzX3ZlcnNpb24s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICB1bm1hc2tfcmVjZWl2ZT1zZWxmLl9vcHRpb25z
LnVubWFza19yZWNlaXZlKQorCisgICAgZGVmIF9yZWNlaXZlX2ZyYW1lX2FzX2ZyYW1lX29iamVj
dChzZWxmKToKKyAgICAgICAgb3Bjb2RlLCB1bm1hc2tlZF9ieXRlcywgZmluLCByc3YxLCByc3Yy
LCByc3YzID0gc2VsZi5fcmVjZWl2ZV9mcmFtZSgpCisKKyAgICAgICAgcmV0dXJuIEZyYW1lKGZp
bj1maW4sIHJzdjE9cnN2MSwgcnN2Mj1yc3YyLCByc3YzPXJzdjMsCisgICAgICAgICAgICAgICAg
ICAgICBvcGNvZGU9b3Bjb2RlLCBwYXlsb2FkPXVubWFza2VkX2J5dGVzKQorCisgICAgZGVmIHJl
Y2VpdmVfZmlsdGVyZWRfZnJhbWUoc2VsZik6CisgICAgICAgICIiIlJlY2VpdmVzIGEgZnJhbWUg
YW5kIGFwcGxpZXMgZnJhbWUgZmlsdGVycyBhbmQgbWVzc2FnZSBmaWx0ZXJzLgorICAgICAgICBU
aGUgZnJhbWUgdG8gYmUgcmVjZWl2ZWQgbXVzdCBzYXRpc2Z5IGZvbGxvd2luZyBjb25kaXRpb25z
OgorICAgICAgICAtIFRoZSBmcmFtZSBpcyBub3QgZnJhZ21lbnRlZC4KKyAgICAgICAgLSBUaGUg
b3Bjb2RlIG9mIHRoZSBmcmFtZSBpcyBURVhUIG9yIEJJTkFSWS4KKworICAgICAgICBETyBOT1Qg
VVNFIHRoaXMgbWV0aG9kIGV4Y2VwdCBmb3IgdGVzdGluZyBwdXJwb3NlLgorICAgICAgICAiIiIK
KworICAgICAgICBmcmFtZSA9IHNlbGYuX3JlY2VpdmVfZnJhbWVfYXNfZnJhbWVfb2JqZWN0KCkK
KyAgICAgICAgaWYgbm90IGZyYW1lLmZpbjoKKyAgICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFt
ZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnU2VnbWVudGVkIGZyYW1lcyBtdXN0IG5vdCBi
ZSByZWNlaXZlZCB2aWEgJworICAgICAgICAgICAgICAgICdyZWNlaXZlX2ZpbHRlcmVkX2ZyYW1l
KCknKQorICAgICAgICBpZiAoZnJhbWUub3Bjb2RlICE9IGNvbW1vbi5PUENPREVfVEVYVCBhbmQK
KyAgICAgICAgICAgIGZyYW1lLm9wY29kZSAhPSBjb21tb24uT1BDT0RFX0JJTkFSWSk6CisgICAg
ICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ0Nv
bnRyb2wgZnJhbWVzIG11c3Qgbm90IGJlIHJlY2VpdmVkIHZpYSAnCisgICAgICAgICAgICAgICAg
J3JlY2VpdmVfZmlsdGVyZWRfZnJhbWUoKScpCisKKyAgICAgICAgZm9yIGZyYW1lX2ZpbHRlciBp
biBzZWxmLl9vcHRpb25zLmluY29taW5nX2ZyYW1lX2ZpbHRlcnM6CisgICAgICAgICAgICBmcmFt
ZV9maWx0ZXIuZmlsdGVyKGZyYW1lKQorICAgICAgICBmb3IgbWVzc2FnZV9maWx0ZXIgaW4gc2Vs
Zi5fb3B0aW9ucy5pbmNvbWluZ19tZXNzYWdlX2ZpbHRlcnM6CisgICAgICAgICAgICBmcmFtZS5w
YXlsb2FkID0gbWVzc2FnZV9maWx0ZXIuZmlsdGVyKGZyYW1lLnBheWxvYWQpCisgICAgICAgIHJl
dHVybiBmcmFtZQorCisgICAgZGVmIHNlbmRfbWVzc2FnZShzZWxmLCBtZXNzYWdlLCBlbmQ9VHJ1
ZSwgYmluYXJ5PUZhbHNlKToKKyAgICAgICAgIiIiU2VuZCBtZXNzYWdlLgorCisgICAgICAgIEFy
Z3M6CisgICAgICAgICAgICBtZXNzYWdlOiB0ZXh0IGluIHVuaWNvZGUgb3IgYmluYXJ5IGluIHN0
ciB0byBzZW5kLgorICAgICAgICAgICAgYmluYXJ5OiBzZW5kIG1lc3NhZ2UgYXMgYmluYXJ5IGZy
YW1lLgorCisgICAgICAgIFJhaXNlczoKKyAgICAgICAgICAgIEJhZE9wZXJhdGlvbkV4Y2VwdGlv
bjogd2hlbiBjYWxsZWQgb24gYSBzZXJ2ZXItdGVybWluYXRlZAorICAgICAgICAgICAgICAgIGNv
bm5lY3Rpb24gb3IgY2FsbGVkIHdpdGggaW5jb25zaXN0ZW50IG1lc3NhZ2UgdHlwZSBvcgorICAg
ICAgICAgICAgICAgIGJpbmFyeSBwYXJhbWV0ZXIuCisgICAgICAgICIiIgorCisgICAgICAgIGlm
IHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQ6CisgICAgICAgICAgICByYWlzZSBCYWRP
cGVyYXRpb25FeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ1JlcXVlc3RlZCBzZW5kX21lc3Nh
Z2UgYWZ0ZXIgc2VuZGluZyBvdXQgYSBjbG9zaW5nIGhhbmRzaGFrZScpCisKKyAgICAgICAgaWYg
YmluYXJ5IGFuZCBpc2luc3RhbmNlKG1lc3NhZ2UsIHVuaWNvZGUpOgorICAgICAgICAgICAgcmFp
c2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdNZXNzYWdlIGZvciBi
aW5hcnkgZnJhbWUgbXVzdCBiZSBpbnN0YW5jZSBvZiBzdHInKQorCisgICAgICAgIGZvciBtZXNz
YWdlX2ZpbHRlciBpbiBzZWxmLl9vcHRpb25zLm91dGdvaW5nX21lc3NhZ2VfZmlsdGVyczoKKyAg
ICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlX2ZpbHRlci5maWx0ZXIobWVzc2FnZSwgZW5kLCBi
aW5hcnkpCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBTZXQgdGhpcyB0byBhbnkgcG9z
aXRpdmUgaW50ZWdlciB0byBsaW1pdCBtYXhpbXVtIHNpemUgb2YgZGF0YSBpbgorICAgICAgICAg
ICAgIyBwYXlsb2FkIGRhdGEgb2YgZWFjaCBmcmFtZS4KKyAgICAgICAgICAgIE1BWF9QQVlMT0FE
X0RBVEFfU0laRSA9IC0xCisKKyAgICAgICAgICAgIGlmIE1BWF9QQVlMT0FEX0RBVEFfU0laRSA8
PSAwOgorICAgICAgICAgICAgICAgIHNlbGYuX3dyaXRlKHNlbGYuX3dyaXRlci5idWlsZChtZXNz
YWdlLCBlbmQsIGJpbmFyeSkpCisgICAgICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgICAg
IGJ5dGVzX3dyaXR0ZW4gPSAwCisgICAgICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAg
ICAgIGVuZF9mb3JfdGhpc19mcmFtZSA9IGVuZAorICAgICAgICAgICAgICAgIGJ5dGVzX3RvX3dy
aXRlID0gbGVuKG1lc3NhZ2UpIC0gYnl0ZXNfd3JpdHRlbgorICAgICAgICAgICAgICAgIGlmIChN
QVhfUEFZTE9BRF9EQVRBX1NJWkUgPiAwIGFuZAorICAgICAgICAgICAgICAgICAgICBieXRlc190
b193cml0ZSA+IE1BWF9QQVlMT0FEX0RBVEFfU0laRSk6CisgICAgICAgICAgICAgICAgICAgIGVu
ZF9mb3JfdGhpc19mcmFtZSA9IEZhbHNlCisgICAgICAgICAgICAgICAgICAgIGJ5dGVzX3RvX3dy
aXRlID0gTUFYX1BBWUxPQURfREFUQV9TSVpFCisKKyAgICAgICAgICAgICAgICBmcmFtZSA9IHNl
bGYuX3dyaXRlci5idWlsZCgKKyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVtieXRlc193cml0
dGVuOmJ5dGVzX3dyaXR0ZW4gKyBieXRlc190b193cml0ZV0sCisgICAgICAgICAgICAgICAgICAg
IGVuZF9mb3JfdGhpc19mcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgYmluYXJ5KQorICAgICAg
ICAgICAgICAgIHNlbGYuX3dyaXRlKGZyYW1lKQorCisgICAgICAgICAgICAgICAgYnl0ZXNfd3Jp
dHRlbiArPSBieXRlc190b193cml0ZQorCisgICAgICAgICAgICAgICAgIyBUaGlzIGlmIG11c3Qg
YmUgcGxhY2VkIGhlcmUgKHRoZSBlbmQgb2Ygd2hpbGUgYmxvY2spIHNvIHRoYXQKKyAgICAgICAg
ICAgICAgICAjIGF0IGxlYXN0IG9uZSBmcmFtZSBpcyBzZW50LgorICAgICAgICAgICAgICAgIGlm
IGxlbihtZXNzYWdlKSA8PSBieXRlc193cml0dGVuOgorICAgICAgICAgICAgICAgICAgICBicmVh
aworICAgICAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKKyAgICAgICAgICAgIHJhaXNlIEJhZE9w
ZXJhdGlvbkV4Y2VwdGlvbihlKQorCisgICAgZGVmIF9nZXRfbWVzc2FnZV9mcm9tX2ZyYW1lKHNl
bGYsIGZyYW1lKToKKyAgICAgICAgIiIiR2V0cyBhIG1lc3NhZ2UgZnJvbSBmcmFtZS4gSWYgdGhl
IG1lc3NhZ2UgaXMgY29tcG9zZWQgb2YgZnJhZ21lbnRlZAorICAgICAgICBmcmFtZXMgYW5kIHRo
ZSBmcmFtZSBpcyBub3QgdGhlIGxhc3QgZnJhZ21lbnRlZCBmcmFtZSwgdGhpcyBtZXRob2QKKyAg
ICAgICAgcmV0dXJucyBOb25lLiBUaGUgd2hvbGUgbWVzc2FnZSB3aWxsIGJlIHJldHVybmVkIHdo
ZW4gdGhlIGxhc3QKKyAgICAgICAgZnJhZ21lbnRlZCBmcmFtZSBpcyBwYXNzZWQgdG8gdGhpcyBt
ZXRob2QuCisKKyAgICAgICAgUmFpc2VzOgorICAgICAgICAgICAgSW52YWxpZEZyYW1lRXhjZXB0
aW9uOiB3aGVuIHRoZSBmcmFtZSBkb2Vzbid0IG1hdGNoIGRlZnJhZ21lbnRhdGlvbgorICAgICAg
ICAgICAgICAgIGNvbnRleHQsIG9yIHRoZSBmcmFtZSBjb250YWlucyBpbnZhbGlkIGRhdGEuCisg
ICAgICAgICIiIgorCisgICAgICAgIGlmIGZyYW1lLm9wY29kZSA9PSBjb21tb24uT1BDT0RFX0NP
TlRJTlVBVElPTjoKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9yZWNlaXZlZF9mcmFnbWVudHM6
CisgICAgICAgICAgICAgICAgaWYgZnJhbWUuZmluOgorICAgICAgICAgICAgICAgICAgICByYWlz
ZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAnUmVjZWl2
ZWQgYSB0ZXJtaW5hdGlvbiBmcmFtZSBidXQgZnJhZ21lbnRhdGlvbiAnCisgICAgICAgICAgICAg
ICAgICAgICAgICAnbm90IHN0YXJ0ZWQnKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAg
ICAgICAgICAgICdSZWNlaXZlZCBhbiBpbnRlcm1lZGlhdGUgZnJhbWUgYnV0ICcKKyAgICAgICAg
ICAgICAgICAgICAgICAgICdmcmFnbWVudGF0aW9uIG5vdCBzdGFydGVkJykKKworICAgICAgICAg
ICAgaWYgZnJhbWUuZmluOgorICAgICAgICAgICAgICAgICMgRW5kIG9mIGZyYWdtZW50YXRpb24g
ZnJhbWUKKyAgICAgICAgICAgICAgICBzZWxmLl9yZWNlaXZlZF9mcmFnbWVudHMuYXBwZW5kKGZy
YW1lLnBheWxvYWQpCisgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICcnLmpvaW4oc2VsZi5fcmVj
ZWl2ZWRfZnJhZ21lbnRzKQorICAgICAgICAgICAgICAgIHNlbGYuX3JlY2VpdmVkX2ZyYWdtZW50
cyA9IFtdCisgICAgICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2UKKyAgICAgICAgICAgIGVsc2U6
CisgICAgICAgICAgICAgICAgIyBJbnRlcm1lZGlhdGUgZnJhbWUKKyAgICAgICAgICAgICAgICBz
ZWxmLl9yZWNlaXZlZF9mcmFnbWVudHMuYXBwZW5kKGZyYW1lLnBheWxvYWQpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIHNlbGYuX3Jl
Y2VpdmVkX2ZyYWdtZW50czoKKyAgICAgICAgICAgICAgICBpZiBmcmFtZS5maW46CisgICAgICAg
ICAgICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAg
ICAgICAgICAgICdSZWNlaXZlZCBhbiB1bmZyYWdtZW50ZWQgZnJhbWUgd2l0aG91dCAnCisgICAg
ICAgICAgICAgICAgICAgICAgICAndGVybWluYXRpbmcgZXhpc3RpbmcgZnJhZ21lbnRhdGlvbicp
CisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgSW52YWxp
ZEZyYW1lRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgJ05ldyBmcmFnbWVudGF0
aW9uIHN0YXJ0ZWQgd2l0aG91dCB0ZXJtaW5hdGluZyAnCisgICAgICAgICAgICAgICAgICAgICAg
ICAnZXhpc3RpbmcgZnJhZ21lbnRhdGlvbicpCisKKyAgICAgICAgICAgIGlmIGZyYW1lLmZpbjoK
KyAgICAgICAgICAgICAgICAjIFVuZnJhZ21lbnRlZCBmcmFtZQorCisgICAgICAgICAgICAgICAg
c2VsZi5fb3JpZ2luYWxfb3Bjb2RlID0gZnJhbWUub3Bjb2RlCisgICAgICAgICAgICAgICAgcmV0
dXJuIGZyYW1lLnBheWxvYWQKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBT
dGFydCBvZiBmcmFnbWVudGF0aW9uIGZyYW1lCisKKyAgICAgICAgICAgICAgICBpZiBjb21tb24u
aXNfY29udHJvbF9vcGNvZGUoZnJhbWUub3Bjb2RlKToKKyAgICAgICAgICAgICAgICAgICAgcmFp
c2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRy
b2wgZnJhbWVzIG11c3Qgbm90IGJlIGZyYWdtZW50ZWQnKQorCisgICAgICAgICAgICAgICAgc2Vs
Zi5fb3JpZ2luYWxfb3Bjb2RlID0gZnJhbWUub3Bjb2RlCisgICAgICAgICAgICAgICAgc2VsZi5f
cmVjZWl2ZWRfZnJhZ21lbnRzLmFwcGVuZChmcmFtZS5wYXlsb2FkKQorICAgICAgICAgICAgICAg
IHJldHVybiBOb25lCisKKyAgICBkZWYgX3Byb2Nlc3NfY2xvc2VfbWVzc2FnZShzZWxmLCBtZXNz
YWdlKToKKyAgICAgICAgIiIiUHJvY2Vzc2VzIGNsb3NlIG1lc3NhZ2UuCisKKyAgICAgICAgQXJn
czoKKyAgICAgICAgICAgIG1lc3NhZ2U6IGNsb3NlIG1lc3NhZ2UuCisKKyAgICAgICAgUmFpc2Vz
OgorICAgICAgICAgICAgSW52YWxpZEZyYW1lRXhjZXB0aW9uOiB3aGVuIHRoZSBtZXNzYWdlIGlz
IGludmFsaWQuCisgICAgICAgICIiIgorCisgICAgICAgIHNlbGYuX3JlcXVlc3QuY2xpZW50X3Rl
cm1pbmF0ZWQgPSBUcnVlCisKKyAgICAgICAgIyBTdGF0dXMgY29kZSBpcyBvcHRpb25hbC4gV2Ug
Y2FuIGhhdmUgc3RhdHVzIHJlYXNvbiBvbmx5IGlmIHdlCisgICAgICAgICMgaGF2ZSBzdGF0dXMg
Y29kZS4gU3RhdHVzIHJlYXNvbiBjYW4gYmUgZW1wdHkgc3RyaW5nLiBTbywKKyAgICAgICAgIyBh
bGxvd2VkIGNhc2VzIGFyZQorICAgICAgICAjIC0gbm8gYXBwbGljYXRpb24gZGF0YTogbm8gY29k
ZSBubyByZWFzb24KKyAgICAgICAgIyAtIDIgb2N0ZXQgb2YgYXBwbGljYXRpb24gZGF0YTogaGFz
IGNvZGUgYnV0IG5vIHJlYXNvbgorICAgICAgICAjIC0gMyBvciBtb3JlIG9jdGV0IG9mIGFwcGxp
Y2F0aW9uIGRhdGE6IGJvdGggY29kZSBhbmQgcmVhc29uCisgICAgICAgIGlmIGxlbihtZXNzYWdl
KSA9PSAwOgorICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZWNlaXZlZCBjbG9zZSBm
cmFtZSAoZW1wdHkgYm9keSknKQorICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jbG9zZV9j
b2RlID0gKAorICAgICAgICAgICAgICAgIGNvbW1vbi5TVEFUVVNfTk9fU1RBVFVTX1JFQ0VJVkVE
KQorICAgICAgICBlbGlmIGxlbihtZXNzYWdlKSA9PSAxOgorICAgICAgICAgICAgcmFpc2UgSW52
YWxpZEZyYW1lRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdJZiBhIGNsb3NlIGZyYW1lIGhh
cyBzdGF0dXMgY29kZSwgdGhlIGxlbmd0aCBvZiAnCisgICAgICAgICAgICAgICAgJ3N0YXR1cyBj
b2RlIG11c3QgYmUgMiBvY3RldCcpCisgICAgICAgIGVsaWYgbGVuKG1lc3NhZ2UpID49IDI6Cisg
ICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2Nsb3NlX2NvZGUgPSBzdHJ1Y3QudW5wYWNrKAor
ICAgICAgICAgICAgICAgICchSCcsIG1lc3NhZ2VbMDoyXSlbMF0KKyAgICAgICAgICAgIHNlbGYu
X3JlcXVlc3Qud3NfY2xvc2VfcmVhc29uID0gbWVzc2FnZVsyOl0uZGVjb2RlKAorICAgICAgICAg
ICAgICAgICd1dGYtOCcsICdyZXBsYWNlJykKKyAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygKKyAgICAgICAgICAgICAgICAnUmVjZWl2ZWQgY2xvc2UgZnJhbWUgKGNvZGU9JWQsIHJlYXNv
bj0lciknLAorICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfY2xvc2VfY29kZSwKKyAg
ICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2Nsb3NlX3JlYXNvbikKKworICAgICAgICAj
IEFzIHdlJ3ZlIHJlY2VpdmVkIGEgY2xvc2UgZnJhbWUsIG5vIG1vcmUgZGF0YSBpcyBjb21pbmcg
b3ZlciB0aGUKKyAgICAgICAgIyBzb2NrZXQuIFdlIGNhbiBub3cgc2FmZWx5IGNsb3NlIHRoZSBz
b2NrZXQgd2l0aG91dCB3b3JyeWluZyBhYm91dAorICAgICAgICAjIFJTVCBzZW5kaW5nLgorCisg
ICAgICAgIGlmIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQ6CisgICAgICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGFjayBmb3Igc2Vy
dmVyLWluaXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZScpCisgICAgICAgICAgICByZXR1cm4KKwor
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAnUmVjZWl2ZWQgY2xpZW50
LWluaXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZScpCisKKyAgICAgICAgY29kZSA9IGNvbW1vbi5T
VEFUVVNfTk9STUFMX0NMT1NVUkUKKyAgICAgICAgcmVhc29uID0gJycKKyAgICAgICAgaWYgaGFz
YXR0cihzZWxmLl9yZXF1ZXN0LCAnX2Rpc3BhdGNoZXInKToKKyAgICAgICAgICAgIGRpc3BhdGNo
ZXIgPSBzZWxmLl9yZXF1ZXN0Ll9kaXNwYXRjaGVyCisgICAgICAgICAgICBjb2RlLCByZWFzb24g
PSBkaXNwYXRjaGVyLnBhc3NpdmVfY2xvc2luZ19oYW5kc2hha2UoCisgICAgICAgICAgICAgICAg
c2VsZi5fcmVxdWVzdCkKKyAgICAgICAgICAgIGlmIGNvZGUgaXMgTm9uZSBhbmQgcmVhc29uIGlz
IG5vdCBOb25lIGFuZCBsZW4ocmVhc29uKSA+IDA6CisgICAgICAgICAgICAgICAgc2VsZi5fbG9n
Z2VyLndhcm5pbmcoCisgICAgICAgICAgICAgICAgICAgICdIYW5kbGVyIHNwZWNpZmllZCByZWFz
b24gZGVzcGl0ZSBjb2RlIGJlaW5nIE5vbmUnKQorICAgICAgICAgICAgICAgIHJlYXNvbiA9ICcn
CisgICAgICAgICAgICBpZiByZWFzb24gaXMgTm9uZToKKyAgICAgICAgICAgICAgICByZWFzb24g
PSAnJworICAgICAgICBzZWxmLl9zZW5kX2Nsb3NpbmdfaGFuZHNoYWtlKGNvZGUsIHJlYXNvbikK
KyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAorICAgICAgICAgICAgJ0Fja25vd2xlZGdlZCBj
bG9zaW5nIGhhbmRzaGFrZSBpbml0aWF0ZWQgYnkgdGhlIHBlZXIgJworICAgICAgICAgICAgJyhj
b2RlPSVyLCByZWFzb249JXIpJywgY29kZSwgcmVhc29uKQorCisgICAgZGVmIF9wcm9jZXNzX3Bp
bmdfbWVzc2FnZShzZWxmLCBtZXNzYWdlKToKKyAgICAgICAgIiIiUHJvY2Vzc2VzIHBpbmcgbWVz
c2FnZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgbWVzc2FnZTogcGluZyBtZXNzYWdl
LgorICAgICAgICAiIiIKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBoYW5kbGVyID0gc2Vs
Zi5fcmVxdWVzdC5vbl9waW5nX2hhbmRsZXIKKyAgICAgICAgICAgIGlmIGhhbmRsZXI6CisgICAg
ICAgICAgICAgICAgaGFuZGxlcihzZWxmLl9yZXF1ZXN0LCBtZXNzYWdlKQorICAgICAgICAgICAg
ICAgIHJldHVybgorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3IsIGU6CisgICAgICAgICAg
ICBwYXNzCisgICAgICAgIHNlbGYuX3NlbmRfcG9uZyhtZXNzYWdlKQorCisgICAgZGVmIF9wcm9j
ZXNzX3BvbmdfbWVzc2FnZShzZWxmLCBtZXNzYWdlKToKKyAgICAgICAgIiIiUHJvY2Vzc2VzIHBv
bmcgbWVzc2FnZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgbWVzc2FnZTogcG9uZyBt
ZXNzYWdlLgorICAgICAgICAiIiIKKworICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBBZGQgcGlu
ZyB0aW1lb3V0IGhhbmRsaW5nLgorCisgICAgICAgIGluZmxpZ2h0X3BpbmdzID0gZGVxdWUoKQor
CisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAg
ZXhwZWN0ZWRfYm9keSA9IHNlbGYuX3BpbmdfcXVldWUucG9wbGVmdCgpCisgICAgICAgICAgICAg
ICAgaWYgZXhwZWN0ZWRfYm9keSA9PSBtZXNzYWdlOgorICAgICAgICAgICAgICAgICAgICAjIGlu
ZmxpZ2h0X3BpbmdzIGNvbnRhaW5zIHBpbmdzIGlnbm9yZWQgYnkgdGhlCisgICAgICAgICAgICAg
ICAgICAgICMgb3RoZXIgcGVlci4gSnVzdCBmb3JnZXQgdGhlbS4KKyAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAorICAgICAgICAgICAgICAgICAgICAgICAgJ1BpbmcgJXIg
aXMgYWNrZWQgKCVkIHBpbmdzIHdlcmUgaWdub3JlZCknLAorICAgICAgICAgICAgICAgICAgICAg
ICAgZXhwZWN0ZWRfYm9keSwgbGVuKGluZmxpZ2h0X3BpbmdzKSkKKyAgICAgICAgICAgICAgICAg
ICAgYnJlYWsKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBpbmZs
aWdodF9waW5ncy5hcHBlbmQoZXhwZWN0ZWRfYm9keSkKKyAgICAgICAgICAgIGV4Y2VwdCBJbmRl
eEVycm9yLCBlOgorICAgICAgICAgICAgICAgICMgVGhlIHJlY2VpdmVkIHBvbmcgd2FzIHVuc29s
aWNpdGVkIHBvbmcuIEtlZXAgdGhlCisgICAgICAgICAgICAgICAgIyBwaW5nIHF1ZXVlIGFzIGlz
LgorICAgICAgICAgICAgICAgIHNlbGYuX3BpbmdfcXVldWUgPSBpbmZsaWdodF9waW5ncworICAg
ICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVjZWl2ZWQgYSB1bnNvbGljaXRlZCBw
b25nJykKKyAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IGhhbmRsZXIgPSBzZWxmLl9yZXF1ZXN0Lm9uX3BvbmdfaGFuZGxlcgorICAgICAgICAgICAgaWYg
aGFuZGxlcjoKKyAgICAgICAgICAgICAgICBoYW5kbGVyKHNlbGYuX3JlcXVlc3QsIG1lc3NhZ2Up
CisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvciwgZToKKyAgICAgICAgICAgIHBhc3MKKwor
ICAgIGRlZiByZWNlaXZlX21lc3NhZ2Uoc2VsZik6CisgICAgICAgICIiIlJlY2VpdmUgYSBXZWJT
b2NrZXQgZnJhbWUgYW5kIHJldHVybiBpdHMgcGF5bG9hZCBhcyBhIHRleHQgaW4KKyAgICAgICAg
dW5pY29kZSBvciBhIGJpbmFyeSBpbiBzdHIuCisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAg
ICAgIHBheWxvYWQgZGF0YSBvZiB0aGUgZnJhbWUKKyAgICAgICAgICAgIC0gYXMgdW5pY29kZSBp
bnN0YW5jZSBpZiByZWNlaXZlZCB0ZXh0IGZyYW1lCisgICAgICAgICAgICAtIGFzIHN0ciBpbnN0
YW5jZSBpZiByZWNlaXZlZCBiaW5hcnkgZnJhbWUKKyAgICAgICAgICAgIG9yIE5vbmUgaWZmIHJl
Y2VpdmVkIGNsb3NpbmcgaGFuZHNoYWtlLgorICAgICAgICBSYWlzZXM6CisgICAgICAgICAgICBC
YWRPcGVyYXRpb25FeGNlcHRpb246IHdoZW4gY2FsbGVkIG9uIGEgY2xpZW50LXRlcm1pbmF0ZWQK
KyAgICAgICAgICAgICAgICBjb25uZWN0aW9uLgorICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1p
bmF0ZWRFeGNlcHRpb246IHdoZW4gcmVhZCByZXR1cm5zIGVtcHR5CisgICAgICAgICAgICAgICAg
c3RyaW5nLgorICAgICAgICAgICAgSW52YWxpZEZyYW1lRXhjZXB0aW9uOiB3aGVuIHRoZSBmcmFt
ZSBjb250YWlucyBpbnZhbGlkCisgICAgICAgICAgICAgICAgZGF0YS4KKyAgICAgICAgICAgIFVu
c3VwcG9ydGVkRnJhbWVFeGNlcHRpb246IHdoZW4gdGhlIHJlY2VpdmVkIGZyYW1lIGhhcworICAg
ICAgICAgICAgICAgIGZsYWdzLCBvcGNvZGUgd2UgY2Fubm90IGhhbmRsZS4gWW91IGNhbiBpZ25v
cmUgdGhpcworICAgICAgICAgICAgICAgIGV4Y2VwdGlvbiBhbmQgY29udGludWUgcmVjZWl2aW5n
IHRoZSBuZXh0IGZyYW1lLgorICAgICAgICAiIiIKKworICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0
LmNsaWVudF90ZXJtaW5hdGVkOgorICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0
aW9uKAorICAgICAgICAgICAgICAgICdSZXF1ZXN0ZWQgcmVjZWl2ZV9tZXNzYWdlIGFmdGVyIHJl
Y2VpdmluZyBhIGNsb3NpbmcgJworICAgICAgICAgICAgICAgICdoYW5kc2hha2UnKQorCisgICAg
ICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICAjIG1wX2Nvbm4ucmVhZCB3aWxsIGJsb2NrIGlm
IG5vIGJ5dGVzIGFyZSBhdmFpbGFibGUuCisgICAgICAgICAgICAjIFRpbWVvdXQgaXMgY29udHJv
bGxlZCBieSBUaW1lT3V0IGRpcmVjdGl2ZSBvZiBBcGFjaGUuCisKKyAgICAgICAgICAgIGZyYW1l
ID0gc2VsZi5fcmVjZWl2ZV9mcmFtZV9hc19mcmFtZV9vYmplY3QoKQorCisgICAgICAgICAgICAj
IENoZWNrIHRoZSBjb25zdHJhaW50IG9uIHRoZSBwYXlsb2FkIHNpemUgZm9yIGNvbnRyb2wgZnJh
bWVzCisgICAgICAgICAgICAjIGJlZm9yZSBleHRlbnNpb24gcHJvY2Vzc2VzIHRoZSBmcmFtZS4K
KyAgICAgICAgICAgICMgU2VlIGFsc28gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjQ1
NSNzZWN0aW9uLTUuNQorICAgICAgICAgICAgaWYgKGNvbW1vbi5pc19jb250cm9sX29wY29kZShm
cmFtZS5vcGNvZGUpIGFuZAorICAgICAgICAgICAgICAgIGxlbihmcmFtZS5wYXlsb2FkKSA+IDEy
NSk6CisgICAgICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAorICAgICAg
ICAgICAgICAgICAgICAnUGF5bG9hZCBkYXRhIHNpemUgb2YgY29udHJvbCBmcmFtZXMgbXVzdCBi
ZSAxMjUgYnl0ZXMgb3IgJworICAgICAgICAgICAgICAgICAgICAnbGVzcycpCisKKyAgICAgICAg
ICAgIGZvciBmcmFtZV9maWx0ZXIgaW4gc2VsZi5fb3B0aW9ucy5pbmNvbWluZ19mcmFtZV9maWx0
ZXJzOgorICAgICAgICAgICAgICAgIGZyYW1lX2ZpbHRlci5maWx0ZXIoZnJhbWUpCisKKyAgICAg
ICAgICAgIGlmIGZyYW1lLnJzdjEgb3IgZnJhbWUucnN2MiBvciBmcmFtZS5yc3YzOgorICAgICAg
ICAgICAgICAgIHJhaXNlIFVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24oCisgICAgICAgICAgICAg
ICAgICAgICdVbnN1cHBvcnRlZCBmbGFnIGlzIHNldCAocnN2ID0gJWQlZCVkKScgJQorICAgICAg
ICAgICAgICAgICAgICAoZnJhbWUucnN2MSwgZnJhbWUucnN2MiwgZnJhbWUucnN2MykpCisKKyAg
ICAgICAgICAgIG1lc3NhZ2UgPSBzZWxmLl9nZXRfbWVzc2FnZV9mcm9tX2ZyYW1lKGZyYW1lKQor
ICAgICAgICAgICAgaWYgbWVzc2FnZSBpcyBOb25lOgorICAgICAgICAgICAgICAgIGNvbnRpbnVl
CisKKyAgICAgICAgICAgIGZvciBtZXNzYWdlX2ZpbHRlciBpbiBzZWxmLl9vcHRpb25zLmluY29t
aW5nX21lc3NhZ2VfZmlsdGVyczoKKyAgICAgICAgICAgICAgICBtZXNzYWdlID0gbWVzc2FnZV9m
aWx0ZXIuZmlsdGVyKG1lc3NhZ2UpCisKKyAgICAgICAgICAgIGlmIHNlbGYuX29yaWdpbmFsX29w
Y29kZSA9PSBjb21tb24uT1BDT0RFX1RFWFQ6CisgICAgICAgICAgICAgICAgIyBUaGUgV2ViU29j
a2V0IHByb3RvY29sIHNlY3Rpb24gNC40IHNwZWNpZmllcyB0aGF0IGludmFsaWQKKyAgICAgICAg
ICAgICAgICAjIGNoYXJhY3RlcnMgbXVzdCBiZSByZXBsYWNlZCB3aXRoIFUrZmZmZCBSRVBMQUNF
TUVOVAorICAgICAgICAgICAgICAgICMgQ0hBUkFDVEVSLgorICAgICAgICAgICAgICAgIHRyeToK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2UuZGVjb2RlKCd1dGYtOCcpCisgICAg
ICAgICAgICAgICAgZXhjZXB0IFVuaWNvZGVEZWNvZGVFcnJvciwgZToKKyAgICAgICAgICAgICAg
ICAgICAgcmFpc2UgSW52YWxpZFVURjhFeGNlcHRpb24oZSkKKyAgICAgICAgICAgIGVsaWYgc2Vs
Zi5fb3JpZ2luYWxfb3Bjb2RlID09IGNvbW1vbi5PUENPREVfQklOQVJZOgorICAgICAgICAgICAg
ICAgIHJldHVybiBtZXNzYWdlCisgICAgICAgICAgICBlbGlmIHNlbGYuX29yaWdpbmFsX29wY29k
ZSA9PSBjb21tb24uT1BDT0RFX0NMT1NFOgorICAgICAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3Nf
Y2xvc2VfbWVzc2FnZShtZXNzYWdlKQorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisgICAg
ICAgICAgICBlbGlmIHNlbGYuX29yaWdpbmFsX29wY29kZSA9PSBjb21tb24uT1BDT0RFX1BJTkc6
CisgICAgICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc19waW5nX21lc3NhZ2UobWVzc2FnZSkKKyAg
ICAgICAgICAgIGVsaWYgc2VsZi5fb3JpZ2luYWxfb3Bjb2RlID09IGNvbW1vbi5PUENPREVfUE9O
RzoKKyAgICAgICAgICAgICAgICBzZWxmLl9wcm9jZXNzX3BvbmdfbWVzc2FnZShtZXNzYWdlKQor
ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBVbnN1cHBvcnRlZEZyYW1l
RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAnT3Bjb2RlICVkIGlzIG5vdCBzdXBwb3J0
ZWQnICUgc2VsZi5fb3JpZ2luYWxfb3Bjb2RlKQorCisgICAgZGVmIF9zZW5kX2Nsb3NpbmdfaGFu
ZHNoYWtlKHNlbGYsIGNvZGUsIHJlYXNvbik6CisgICAgICAgIGJvZHkgPSBjcmVhdGVfY2xvc2lu
Z19oYW5kc2hha2VfYm9keShjb2RlLCByZWFzb24pCisgICAgICAgIGZyYW1lID0gY3JlYXRlX2Ns
b3NlX2ZyYW1lKAorICAgICAgICAgICAgYm9keSwgbWFzaz1zZWxmLl9vcHRpb25zLm1hc2tfc2Vu
ZCwKKyAgICAgICAgICAgIGZyYW1lX2ZpbHRlcnM9c2VsZi5fb3B0aW9ucy5vdXRnb2luZ19mcmFt
ZV9maWx0ZXJzKQorCisgICAgICAgIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQgPSBU
cnVlCisKKyAgICAgICAgc2VsZi5fd3JpdGUoZnJhbWUpCisKKyAgICBkZWYgY2xvc2VfY29ubmVj
dGlvbihzZWxmLCBjb2RlPWNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUsIHJlYXNvbj0nJywK
KyAgICAgICAgICAgICAgICAgICAgICAgICB3YWl0X3Jlc3BvbnNlPVRydWUpOgorICAgICAgICAi
IiJDbG9zZXMgYSBXZWJTb2NrZXQgY29ubmVjdGlvbi4gTm90ZSB0aGF0IHRoaXMgbWV0aG9kIGJs
b2NrcyB1bnRpbAorICAgICAgICBpdCByZWNlaXZlcyBhY2tub3dsZWRnZW1lbnQgdG8gdGhlIGNs
b3NpbmcgaGFuZHNoYWtlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBjb2RlOiBTdGF0
dXMgY29kZSBmb3IgY2xvc2UgZnJhbWUuIElmIGNvZGUgaXMgTm9uZSwgYSBjbG9zZQorICAgICAg
ICAgICAgICAgIGZyYW1lIHdpdGggZW1wdHkgYm9keSB3aWxsIGJlIHNlbnQuCisgICAgICAgICAg
ICByZWFzb246IHN0cmluZyByZXByZXNlbnRpbmcgY2xvc2UgcmVhc29uLgorICAgICAgICAgICAg
d2FpdF9yZXNwb25zZTogVHJ1ZSB3aGVuIGNhbGxlciB3YW50IHRvIHdhaXQgdGhlIHJlc3BvbnNl
LgorICAgICAgICBSYWlzZXM6CisgICAgICAgICAgICBCYWRPcGVyYXRpb25FeGNlcHRpb246IHdo
ZW4gcmVhc29uIGlzIHNwZWNpZmllZCB3aXRoIGNvZGUgTm9uZQorICAgICAgICAgICAgb3IgcmVh
c29uIGlzIG5vdCBhbiBpbnN0YW5jZSBvZiBib3RoIHN0ciBhbmQgdW5pY29kZS4KKyAgICAgICAg
IiIiCisKKyAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKKyAgICAg
ICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKKyAgICAgICAgICAgICAgICAnUmVxdWVzdGVkIGNs
b3NlX2Nvbm5lY3Rpb24gYnV0IHNlcnZlciBpcyBhbHJlYWR5IHRlcm1pbmF0ZWQnKQorICAgICAg
ICAgICAgcmV0dXJuCisKKyAgICAgICAgIyBXaGVuIHdlIHJlY2VpdmUgYSBjbG9zZSBmcmFtZSwg
d2UgY2FsbCBfcHJvY2Vzc19jbG9zZV9tZXNzYWdlKCkuCisgICAgICAgICMgX3Byb2Nlc3NfY2xv
c2VfbWVzc2FnZSgpIGltbWVkaWF0ZWx5IGFja25vd2xlZGdlcyB0byB0aGUKKyAgICAgICAgIyBz
ZXJ2ZXItaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNoYWtlIGFuZCBzZXRzIHNlcnZlcl90ZXJtaW5h
dGVkIHRvCisgICAgICAgICMgVHJ1ZS4gU28sIGhlcmUgd2UgY2FuIGFzc3VtZSB0aGF0IHdlIGhh
dmVuJ3QgcmVjZWl2ZWQgYW55IGNsb3NlCisgICAgICAgICMgZnJhbWUuIFdlJ3JlIGluaXRpYXRp
bmcgYSBjbG9zaW5nIGhhbmRzaGFrZS4KKworICAgICAgICBpZiBjb2RlIGlzIE5vbmU6CisgICAg
ICAgICAgICBpZiByZWFzb24gaXMgbm90IE5vbmUgYW5kIGxlbihyZWFzb24pID4gMDoKKyAgICAg
ICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCisgICAgICAgICAgICAgICAg
ICAgICdjbG9zZSByZWFzb24gbXVzdCBub3QgYmUgc3BlY2lmaWVkIGlmIGNvZGUgaXMgTm9uZScp
CisgICAgICAgICAgICByZWFzb24gPSAnJworICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYg
bm90IGlzaW5zdGFuY2UocmVhc29uLCBzdHIpIGFuZCBub3QgaXNpbnN0YW5jZShyZWFzb24sIHVu
aWNvZGUpOgorICAgICAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKKyAg
ICAgICAgICAgICAgICAgICAgJ2Nsb3NlIHJlYXNvbiBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIHN0
ciBvciB1bmljb2RlJykKKworICAgICAgICBzZWxmLl9zZW5kX2Nsb3NpbmdfaGFuZHNoYWtlKGNv
ZGUsIHJlYXNvbikKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAorICAgICAgICAgICAgJ0lu
aXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZSAoY29kZT0lciwgcmVhc29uPSVyKScsCisgICAgICAg
ICAgICBjb2RlLCByZWFzb24pCisKKyAgICAgICAgaWYgKGNvZGUgPT0gY29tbW9uLlNUQVRVU19H
T0lOR19BV0FZIG9yCisgICAgICAgICAgICBjb2RlID09IGNvbW1vbi5TVEFUVVNfUFJPVE9DT0xf
RVJST1IpIG9yIG5vdCB3YWl0X3Jlc3BvbnNlOgorICAgICAgICAgICAgIyBJdCBkb2Vzbid0IG1h
a2Ugc2Vuc2UgdG8gd2FpdCBmb3IgYSBjbG9zZSBmcmFtZSBpZiB0aGUgcmVhc29uIGlzCisgICAg
ICAgICAgICAjIHByb3RvY29sIGVycm9yIG9yIHRoYXQgdGhlIHNlcnZlciBpcyBnb2luZyBhd2F5
LiBGb3Igc29tZSBvZgorICAgICAgICAgICAgIyBvdGhlciByZWFzb25zLCBpdCBtaWdodCBub3Qg
bWFrZSBzZW5zZSB0byB3YWl0IGZvciBhIGNsb3NlIGZyYW1lLAorICAgICAgICAgICAgIyBidXQg
aXQncyBub3QgY2xlYXIsIHlldC4KKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICMgVE9E
Tyh1a2FpKTogMi4gd2FpdCB1bnRpbCB0aGUgL2NsaWVudCB0ZXJtaW5hdGVkLyBmbGFnIGhhcyBi
ZWVuIHNldCwKKyAgICAgICAgIyBvciB1bnRpbCBhIHNlcnZlci1kZWZpbmVkIHRpbWVvdXQgZXhw
aXJlcy4KKyAgICAgICAgIworICAgICAgICAjIEZvciBub3csIHdlIGV4cGVjdCByZWNlaXZpbmcg
Y2xvc2luZyBoYW5kc2hha2UgcmlnaHQgYWZ0ZXIgc2VuZGluZworICAgICAgICAjIG91dCBjbG9z
aW5nIGhhbmRzaGFrZS4KKyAgICAgICAgbWVzc2FnZSA9IHNlbGYucmVjZWl2ZV9tZXNzYWdlKCkK
KyAgICAgICAgaWYgbWVzc2FnZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIENvbm5l
Y3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdEaWRuXCd0IHJlY2Vp
dmUgdmFsaWQgYWNrIGZvciBjbG9zaW5nIGhhbmRzaGFrZScpCisgICAgICAgICMgVE9ETzogMy4g
Y2xvc2UgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uLgorICAgICAgICAjIG5vdGU6IG1vZF9weXRo
b24gQ29ubmVjdGlvbiAobXBfY29ubikgZG9lc24ndCBoYXZlIGNsb3NlIG1ldGhvZC4KKworICAg
IGRlZiBzZW5kX3Bpbmcoc2VsZiwgYm9keT0nJyk6CisgICAgICAgIGZyYW1lID0gY3JlYXRlX3Bp
bmdfZnJhbWUoCisgICAgICAgICAgICBib2R5LAorICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5t
YXNrX3NlbmQsCisgICAgICAgICAgICBzZWxmLl9vcHRpb25zLm91dGdvaW5nX2ZyYW1lX2ZpbHRl
cnMpCisgICAgICAgIHNlbGYuX3dyaXRlKGZyYW1lKQorCisgICAgICAgIHNlbGYuX3BpbmdfcXVl
dWUuYXBwZW5kKGJvZHkpCisKKyAgICBkZWYgX3NlbmRfcG9uZyhzZWxmLCBib2R5KToKKyAgICAg
ICAgZnJhbWUgPSBjcmVhdGVfcG9uZ19mcmFtZSgKKyAgICAgICAgICAgIGJvZHksCisgICAgICAg
ICAgICBzZWxmLl9vcHRpb25zLm1hc2tfc2VuZCwKKyAgICAgICAgICAgIHNlbGYuX29wdGlvbnMu
b3V0Z29pbmdfZnJhbWVfZmlsdGVycykKKyAgICAgICAgc2VsZi5fd3JpdGUoZnJhbWUpCisKKyAg
ICBkZWYgZ2V0X2xhc3RfcmVjZWl2ZWRfb3Bjb2RlKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm5z
IHRoZSBvcGNvZGUgb2YgdGhlIFdlYlNvY2tldCBtZXNzYWdlIHdoaWNoIHRoZSBsYXN0IHJlY2Vp
dmVkCisgICAgICAgIGZyYW1lIGJlbG9uZ3MgdG8uIFRoZSByZXR1cm4gdmFsdWUgaXMgdmFsaWQg
aWZmIGltbWVkaWF0ZWx5IGFmdGVyCisgICAgICAgIHJlY2VpdmVfbWVzc2FnZSBjYWxsLgorICAg
ICAgICAiIiIKKworICAgICAgICByZXR1cm4gc2VsZi5fb3JpZ2luYWxfb3Bjb2RlCisKKworIyB2
aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9jb21tb24u
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9jb21tb24ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQxNzNkYjkz
M2Y0ZmU2ZmQ2M2JjMjhkZWJlNjZmZjFmMTc1MTY4OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
bW9kX3B5d2Vic29ja2V0L2NvbW1vbi5weQpAQCAtMCwwICsxLDMwNiBAQAorIyBDb3B5cmlnaHQg
MjAxMiwgR29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
IyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisKKworIiIiVGhpcyBmaWxlIG11c3Qgbm90IGRlcGVuZCBvbiBhbnkgbW9kdWxlIHNwZWNp
ZmljIHRvIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wuCisiIiIKKworCitmcm9tIG1vZF9weXdlYnNv
Y2tldCBpbXBvcnQgaHR0cF9oZWFkZXJfdXRpbAorCisKKyMgQWRkaXRpb25hbCBsb2cgbGV2ZWwg
ZGVmaW5pdGlvbnMuCitMT0dMRVZFTF9GSU5FID0gOQorCisjIENvbnN0YW50cyBpbmRpY2F0aW5n
IFdlYlNvY2tldCBwcm90b2NvbCB2ZXJzaW9uLgorVkVSU0lPTl9ISVhJRTc1ID0gLTEKK1ZFUlNJ
T05fSFlCSTAwID0gMAorVkVSU0lPTl9IWUJJMDEgPSAxCitWRVJTSU9OX0hZQkkwMiA9IDIKK1ZF
UlNJT05fSFlCSTAzID0gMgorVkVSU0lPTl9IWUJJMDQgPSA0CitWRVJTSU9OX0hZQkkwNSA9IDUK
K1ZFUlNJT05fSFlCSTA2ID0gNgorVkVSU0lPTl9IWUJJMDcgPSA3CitWRVJTSU9OX0hZQkkwOCA9
IDgKK1ZFUlNJT05fSFlCSTA5ID0gOAorVkVSU0lPTl9IWUJJMTAgPSA4CitWRVJTSU9OX0hZQkkx
MSA9IDgKK1ZFUlNJT05fSFlCSTEyID0gOAorVkVSU0lPTl9IWUJJMTMgPSAxMworVkVSU0lPTl9I
WUJJMTQgPSAxMworVkVSU0lPTl9IWUJJMTUgPSAxMworVkVSU0lPTl9IWUJJMTYgPSAxMworVkVS
U0lPTl9IWUJJMTcgPSAxMworCisjIENvbnN0YW50cyBpbmRpY2F0aW5nIFdlYlNvY2tldCBwcm90
b2NvbCBsYXRlc3QgdmVyc2lvbi4KK1ZFUlNJT05fSFlCSV9MQVRFU1QgPSBWRVJTSU9OX0hZQkkx
MworCisjIFBvcnQgbnVtYmVycworREVGQVVMVF9XRUJfU09DS0VUX1BPUlQgPSA4MAorREVGQVVM
VF9XRUJfU09DS0VUX1NFQ1VSRV9QT1JUID0gNDQzCisKKyMgU2NoZW1lcworV0VCX1NPQ0tFVF9T
Q0hFTUUgPSAnd3MnCitXRUJfU09DS0VUX1NFQ1VSRV9TQ0hFTUUgPSAnd3NzJworCisjIEZyYW1l
IG9wY29kZXMgZGVmaW5lZCBpbiB0aGUgc3BlYy4KK09QQ09ERV9DT05USU5VQVRJT04gPSAweDAK
K09QQ09ERV9URVhUID0gMHgxCitPUENPREVfQklOQVJZID0gMHgyCitPUENPREVfQ0xPU0UgPSAw
eDgKK09QQ09ERV9QSU5HID0gMHg5CitPUENPREVfUE9ORyA9IDB4YQorCisjIFVVSURzIHVzZWQg
YnkgSHlCaSAwNCBhbmQgbGF0ZXIgb3BlbmluZyBoYW5kc2hha2UgYW5kIGZyYW1lIG1hc2tpbmcu
CitXRUJTT0NLRVRfQUNDRVBUX1VVSUQgPSAnMjU4RUFGQTUtRTkxNC00N0RBLTk1Q0EtQzVBQjBE
Qzg1QjExJworCisjIE9wZW5pbmcgaGFuZHNoYWtlIGhlYWRlciBuYW1lcyBhbmQgZXhwZWN0ZWQg
dmFsdWVzLgorVVBHUkFERV9IRUFERVIgPSAnVXBncmFkZScKK1dFQlNPQ0tFVF9VUEdSQURFX1RZ
UEUgPSAnd2Vic29ja2V0JworV0VCU09DS0VUX1VQR1JBREVfVFlQRV9ISVhJRTc1ID0gJ1dlYlNv
Y2tldCcKK0NPTk5FQ1RJT05fSEVBREVSID0gJ0Nvbm5lY3Rpb24nCitVUEdSQURFX0NPTk5FQ1RJ
T05fVFlQRSA9ICdVcGdyYWRlJworSE9TVF9IRUFERVIgPSAnSG9zdCcKK09SSUdJTl9IRUFERVIg
PSAnT3JpZ2luJworU0VDX1dFQlNPQ0tFVF9PUklHSU5fSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQt
T3JpZ2luJworU0VDX1dFQlNPQ0tFVF9LRVlfSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtS2V5Jwor
U0VDX1dFQlNPQ0tFVF9BQ0NFUFRfSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtQWNjZXB0JworU0VD
X1dFQlNPQ0tFVF9WRVJTSU9OX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LVZlcnNpb24nCitTRUNf
V0VCU09DS0VUX1BST1RPQ09MX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LVByb3RvY29sJworU0VD
X1dFQlNPQ0tFVF9FWFRFTlNJT05TX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMn
CitTRUNfV0VCU09DS0VUX0RSQUZUX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LURyYWZ0JworU0VD
X1dFQlNPQ0tFVF9LRVkxX0hFQURFUiA9ICdTZWMtV2ViU29ja2V0LUtleTEnCitTRUNfV0VCU09D
S0VUX0tFWTJfSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtS2V5MicKK1NFQ19XRUJTT0NLRVRfTE9D
QVRJT05fSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtTG9jYXRpb24nCisKKyMgRXh0ZW5zaW9ucwor
REVGTEFURV9GUkFNRV9FWFRFTlNJT04gPSAnZGVmbGF0ZS1mcmFtZScKK1BFUk1FU1NBR0VfREVG
TEFURV9FWFRFTlNJT04gPSAncGVybWVzc2FnZS1kZWZsYXRlJworWF9XRUJLSVRfREVGTEFURV9G
UkFNRV9FWFRFTlNJT04gPSAneC13ZWJraXQtZGVmbGF0ZS1mcmFtZScKK01VWF9FWFRFTlNJT04g
PSAnbXV4X0RPX05PVF9VU0UnCisKKyMgU3RhdHVzIGNvZGVzCisjIENvZGUgU1RBVFVTX05PX1NU
QVRVU19SRUNFSVZFRCwgU1RBVFVTX0FCTk9STUFMX0NMT1NVUkUsIGFuZAorIyBTVEFUVVNfVExT
X0hBTkRTSEFLRSBhcmUgcHNldWRvIGNvZGVzIHRvIGluZGljYXRlIHNwZWNpZmljIGVycm9yIGNh
c2VzLgorIyBDb3VsZCBub3QgYmUgdXNlZCBmb3IgY29kZXMgaW4gYWN0dWFsIGNsb3NpbmcgZnJh
bWVzLgorIyBBcHBsaWNhdGlvbiBsZXZlbCBlcnJvcnMgbXVzdCB1c2UgY29kZXMgaW4gdGhlIHJh
bmdlCisjIFNUQVRVU19VU0VSX1JFR0lTVEVSRURfQkFTRSB0byBTVEFUVVNfVVNFUl9QUklWQVRF
X01BWC4gVGhlIGNvZGVzIGluIHRoZQorIyByYW5nZSBTVEFUVVNfVVNFUl9SRUdJU1RFUkVEX0JB
U0UgdG8gU1RBVFVTX1VTRVJfUkVHSVNURVJFRF9NQVggYXJlIG1hbmFnZWQKKyMgYnkgSUFOQS4g
VXN1YWxseSBhcHBsaWNhdGlvbiBtdXN0IGRlZmluZSB1c2VyIHByb3RvY29sIGxldmVsIGVycm9y
cyBpbiB0aGUKKyMgcmFuZ2UgU1RBVFVTX1VTRVJfUFJJVkFURV9CQVNFIHRvIFNUQVRVU19VU0VS
X1BSSVZBVEVfTUFYLgorU1RBVFVTX05PUk1BTF9DTE9TVVJFID0gMTAwMAorU1RBVFVTX0dPSU5H
X0FXQVkgPSAxMDAxCitTVEFUVVNfUFJPVE9DT0xfRVJST1IgPSAxMDAyCitTVEFUVVNfVU5TVVBQ
T1JURURfREFUQSA9IDEwMDMKK1NUQVRVU19OT19TVEFUVVNfUkVDRUlWRUQgPSAxMDA1CitTVEFU
VVNfQUJOT1JNQUxfQ0xPU1VSRSA9IDEwMDYKK1NUQVRVU19JTlZBTElEX0ZSQU1FX1BBWUxPQURf
REFUQSA9IDEwMDcKK1NUQVRVU19QT0xJQ1lfVklPTEFUSU9OID0gMTAwOAorU1RBVFVTX01FU1NB
R0VfVE9PX0JJRyA9IDEwMDkKK1NUQVRVU19NQU5EQVRPUllfRVhURU5TSU9OID0gMTAxMAorU1RB
VFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SID0gMTAxMQorU1RBVFVTX1RMU19IQU5EU0hBS0Ug
PSAxMDE1CitTVEFUVVNfVVNFUl9SRUdJU1RFUkVEX0JBU0UgPSAzMDAwCitTVEFUVVNfVVNFUl9S
RUdJU1RFUkVEX01BWCA9IDM5OTkKK1NUQVRVU19VU0VSX1BSSVZBVEVfQkFTRSA9IDQwMDAKK1NU
QVRVU19VU0VSX1BSSVZBVEVfTUFYID0gNDk5OQorIyBGb2xsb3dpbmcgZGVmaW5pdGlvbnMgYXJl
IGFsaWFzZXMgdG8ga2VlcCBjb21wYXRpYmlsaXR5LiBBcHBsaWNhdGlvbnMgbXVzdAorIyBub3Qg
dXNlIHRoZXNlIG9ic29sZXRlZCBkZWZpbml0aW9ucyBhbnltb3JlLgorU1RBVFVTX05PUk1BTCA9
IFNUQVRVU19OT1JNQUxfQ0xPU1VSRQorU1RBVFVTX1VOU1VQUE9SVEVEID0gU1RBVFVTX1VOU1VQ
UE9SVEVEX0RBVEEKK1NUQVRVU19DT0RFX05PVF9BVkFJTEFCTEUgPSBTVEFUVVNfTk9fU1RBVFVT
X1JFQ0VJVkVECitTVEFUVVNfQUJOT1JNQUxfQ0xPU0UgPSBTVEFUVVNfQUJOT1JNQUxfQ0xPU1VS
RQorU1RBVFVTX0lOVkFMSURfRlJBTUVfUEFZTE9BRCA9IFNUQVRVU19JTlZBTElEX0ZSQU1FX1BB
WUxPQURfREFUQQorU1RBVFVTX01BTkRBVE9SWV9FWFQgPSBTVEFUVVNfTUFOREFUT1JZX0VYVEVO
U0lPTgorCisjIEhUVFAgc3RhdHVzIGNvZGVzCitIVFRQX1NUQVRVU19CQURfUkVRVUVTVCA9IDQw
MAorSFRUUF9TVEFUVVNfRk9SQklEREVOID0gNDAzCitIVFRQX1NUQVRVU19OT1RfRk9VTkQgPSA0
MDQKKworCitkZWYgaXNfY29udHJvbF9vcGNvZGUob3Bjb2RlKToKKyAgICByZXR1cm4gKG9wY29k
ZSA+PiAzKSA9PSAxCisKKworY2xhc3MgRXh0ZW5zaW9uUGFyYW1ldGVyKG9iamVjdCk6CisKKyAg
ICAiIiJUaGlzIGlzIGV4Y2hhbmdlZCBvbiBleHRlbnNpb24gbmVnb3RpYXRpb24gaW4gb3Blbmlu
ZyBoYW5kc2hha2UuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSk6CisgICAgICAg
IHNlbGYuX25hbWUgPSBuYW1lCisgICAgICAgICMgVE9ETyh0eW9zaGlubyk6IENoYW5nZSB0aGUg
ZGF0YSBzdHJ1Y3R1cmUgdG8gbW9yZSBlZmZpY2llbnQgb25lIHN1Y2gKKyAgICAgICAgIyBhcyBk
aWN0IHdoZW4gdGhlIHNwZWMgY2hhbmdlcyB0byBzYXkgbGlrZQorICAgICAgICAjIC0gUGFyYW1l
dGVyIG5hbWVzIG11c3QgYmUgdW5pcXVlCisgICAgICAgICMgLSBUaGUgb3JkZXIgb2YgcGFyYW1l
dGVycyBpcyBub3Qgc2lnbmlmaWNhbnQKKyAgICAgICAgc2VsZi5fcGFyYW1ldGVycyA9IFtdCisK
KyAgICBkZWYgbmFtZShzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIHRoZSBleHRlbnNpb24gbmFt
ZS4iIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX25hbWUKKworICAgIGRlZiBhZGRfcGFyYW1ldGVy
KHNlbGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgIiIiQWRkIGEgcGFyYW1ldGVyLiIiIgorICAg
ICAgICBzZWxmLl9wYXJhbWV0ZXJzLmFwcGVuZCgobmFtZSwgdmFsdWUpKQorCisgICAgZGVmIGdl
dF9wYXJhbWV0ZXJzKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gdGhlIHBhcmFtZXRlcnMuIiIi
CisgICAgICAgIHJldHVybiBzZWxmLl9wYXJhbWV0ZXJzCisKKyAgICBkZWYgZ2V0X3BhcmFtZXRl
cl9uYW1lcyhzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIHRoZSBuYW1lcyBvZiB0aGUgcGFyYW1l
dGVycy4iIiIKKyAgICAgICAgcmV0dXJuIFtuYW1lIGZvciBuYW1lLCB1bnVzZWRfdmFsdWUgaW4g
c2VsZi5fcGFyYW1ldGVyc10KKworICAgIGRlZiBoYXNfcGFyYW1ldGVyKHNlbGYsIG5hbWUpOgor
ICAgICAgICAiIiJUZXN0IGlmIGEgcGFyYW1ldGVyIGV4aXN0cy4iIiIKKyAgICAgICAgZm9yIHBh
cmFtX25hbWUsIHBhcmFtX3ZhbHVlIGluIHNlbGYuX3BhcmFtZXRlcnM6CisgICAgICAgICAgICBp
ZiBwYXJhbV9uYW1lID09IG5hbWU6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAg
ICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgZ2V0X3BhcmFtZXRlcl92YWx1ZShzZWxmLCBuYW1l
KToKKyAgICAgICAgIiIiR2V0IHRoZSB2YWx1ZSBvZiBhIHNwZWNpZmljIHBhcmFtZXRlci4iIiIK
KyAgICAgICAgZm9yIHBhcmFtX25hbWUsIHBhcmFtX3ZhbHVlIGluIHNlbGYuX3BhcmFtZXRlcnM6
CisgICAgICAgICAgICBpZiBwYXJhbV9uYW1lID09IG5hbWU6CisgICAgICAgICAgICAgICAgcmV0
dXJuIHBhcmFtX3ZhbHVlCisKKworY2xhc3MgRXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbihFeGNl
cHRpb24pOgorCisgICAgIiIiRXhjZXB0aW9uIHRvIGhhbmRsZSBlcnJvcnMgaW4gZXh0ZW5zaW9u
IHBhcnNpbmcuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSk6CisgICAgICAgIHN1
cGVyKEV4dGVuc2lvblBhcnNpbmdFeGNlcHRpb24sIHNlbGYpLl9faW5pdF9fKG5hbWUpCisKKwor
ZGVmIF9wYXJzZV9leHRlbnNpb25fcGFyYW0oc3RhdGUsIGRlZmluaXRpb24pOgorICAgIHBhcmFt
X25hbWUgPSBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfdG9rZW4oc3RhdGUpCisKKyAgICBpZiBw
YXJhbV9uYW1lIGlzIE5vbmU6CisgICAgICAgIHJhaXNlIEV4dGVuc2lvblBhcnNpbmdFeGNlcHRp
b24oJ05vIHZhbGlkIHBhcmFtZXRlciBuYW1lIGZvdW5kJykKKworICAgIGh0dHBfaGVhZGVyX3V0
aWwuY29uc3VtZV9sd3NlcyhzdGF0ZSkKKworICAgIGlmIG5vdCBodHRwX2hlYWRlcl91dGlsLmNv
bnN1bWVfc3RyaW5nKHN0YXRlLCAnPScpOgorICAgICAgICBkZWZpbml0aW9uLmFkZF9wYXJhbWV0
ZXIocGFyYW1fbmFtZSwgTm9uZSkKKyAgICAgICAgcmV0dXJuCisKKyAgICBodHRwX2hlYWRlcl91
dGlsLmNvbnN1bWVfbHdzZXMoc3RhdGUpCisKKyAgICAjIFRPRE8odHlvc2hpbm8pOiBBZGQgY29k
ZSB0byB2YWxpZGF0ZSB0aGF0IHBhcnNlZCBwYXJhbV92YWx1ZSBpcyB0b2tlbgorICAgIHBhcmFt
X3ZhbHVlID0gaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX3Rva2VuX29yX3F1b3RlZF9zdHJpbmco
c3RhdGUpCisgICAgaWYgcGFyYW1fdmFsdWUgaXMgTm9uZToKKyAgICAgICAgcmFpc2UgRXh0ZW5z
aW9uUGFyc2luZ0V4Y2VwdGlvbigKKyAgICAgICAgICAgICdObyB2YWxpZCBwYXJhbWV0ZXIgdmFs
dWUgZm91bmQgb24gdGhlIHJpZ2h0LWhhbmQgc2lkZSBvZiAnCisgICAgICAgICAgICAncGFyYW1l
dGVyICVyJyAlIHBhcmFtX25hbWUpCisKKyAgICBkZWZpbml0aW9uLmFkZF9wYXJhbWV0ZXIocGFy
YW1fbmFtZSwgcGFyYW1fdmFsdWUpCisKKworZGVmIF9wYXJzZV9leHRlbnNpb24oc3RhdGUpOgor
ICAgIGV4dGVuc2lvbl90b2tlbiA9IGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV90b2tlbihzdGF0
ZSkKKyAgICBpZiBleHRlbnNpb25fdG9rZW4gaXMgTm9uZToKKyAgICAgICAgcmV0dXJuIE5vbmUK
KworICAgIGV4dGVuc2lvbiA9IEV4dGVuc2lvblBhcmFtZXRlcihleHRlbnNpb25fdG9rZW4pCisK
KyAgICB3aGlsZSBUcnVlOgorICAgICAgICBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfbHdzZXMo
c3RhdGUpCisKKyAgICAgICAgaWYgbm90IGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9zdHJpbmco
c3RhdGUsICc7Jyk6CisgICAgICAgICAgICBicmVhaworCisgICAgICAgIGh0dHBfaGVhZGVyX3V0
aWwuY29uc3VtZV9sd3NlcyhzdGF0ZSkKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBfcGFy
c2VfZXh0ZW5zaW9uX3BhcmFtKHN0YXRlLCBleHRlbnNpb24pCisgICAgICAgIGV4Y2VwdCBFeHRl
bnNpb25QYXJzaW5nRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgcmFpc2UgRXh0ZW5zaW9uUGFy
c2luZ0V4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnRmFpbGVkIHRvIHBhcnNlIHBhcmFtZXRl
ciBmb3IgJXIgKCVyKScgJQorICAgICAgICAgICAgICAgIChleHRlbnNpb25fdG9rZW4sIGUpKQor
CisgICAgcmV0dXJuIGV4dGVuc2lvbgorCisKK2RlZiBwYXJzZV9leHRlbnNpb25zKGRhdGEpOgor
ICAgICIiIlBhcnNlIFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXIgdmFsdWUuCisKKyAg
ICBSZXR1cm5zIGEgbGlzdCBvZiBFeHRlbnNpb25QYXJhbWV0ZXIgb2JqZWN0cy4KKyAgICBMZWFk
aW5nIExXU2VzIG11c3QgYmUgdHJpbW1lZC4KKyAgICAiIiIKKyAgICBzdGF0ZSA9IGh0dHBfaGVh
ZGVyX3V0aWwuUGFyc2luZ1N0YXRlKGRhdGEpCisKKyAgICBleHRlbnNpb25fbGlzdCA9IFtdCisg
ICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgZXh0ZW5zaW9uID0gX3BhcnNlX2V4dGVuc2lvbihzdGF0
ZSkKKyAgICAgICAgaWYgZXh0ZW5zaW9uIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgZXh0ZW5z
aW9uX2xpc3QuYXBwZW5kKGV4dGVuc2lvbikKKworICAgICAgICBodHRwX2hlYWRlcl91dGlsLmNv
bnN1bWVfbHdzZXMoc3RhdGUpCisKKyAgICAgICAgaWYgaHR0cF9oZWFkZXJfdXRpbC5wZWVrKHN0
YXRlKSBpcyBOb25lOgorICAgICAgICAgICAgYnJlYWsKKworICAgICAgICBpZiBub3QgaHR0cF9o
ZWFkZXJfdXRpbC5jb25zdW1lX3N0cmluZyhzdGF0ZSwgJywnKToKKyAgICAgICAgICAgIHJhaXNl
IEV4dGVuc2lvblBhcnNpbmdFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ0ZhaWxlZCB0byBw
YXJzZSBTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVhZGVyOiAnCisgICAgICAgICAgICAgICAg
J0V4cGVjdGVkIGEgY29tbWEgYnV0IGZvdW5kICVyJyAlCisgICAgICAgICAgICAgICAgaHR0cF9o
ZWFkZXJfdXRpbC5wZWVrKHN0YXRlKSkKKworICAgICAgICBodHRwX2hlYWRlcl91dGlsLmNvbnN1
bWVfbHdzZXMoc3RhdGUpCisKKyAgICBpZiBsZW4oZXh0ZW5zaW9uX2xpc3QpID09IDA6CisgICAg
ICAgIHJhaXNlIEV4dGVuc2lvblBhcnNpbmdFeGNlcHRpb24oCisgICAgICAgICAgICAnTm8gdmFs
aWQgZXh0ZW5zaW9uIGVudHJ5IGZvdW5kJykKKworICAgIHJldHVybiBleHRlbnNpb25fbGlzdAor
CisKK2RlZiBmb3JtYXRfZXh0ZW5zaW9uKGV4dGVuc2lvbik6CisgICAgIiIiRm9ybWF0IGFuIEV4
dGVuc2lvblBhcmFtZXRlciBvYmplY3QuIiIiCisgICAgZm9ybWF0dGVkX3BhcmFtcyA9IFtleHRl
bnNpb24ubmFtZSgpXQorICAgIGZvciBwYXJhbV9uYW1lLCBwYXJhbV92YWx1ZSBpbiBleHRlbnNp
b24uZ2V0X3BhcmFtZXRlcnMoKToKKyAgICAgICAgaWYgcGFyYW1fdmFsdWUgaXMgTm9uZToKKyAg
ICAgICAgICAgIGZvcm1hdHRlZF9wYXJhbXMuYXBwZW5kKHBhcmFtX25hbWUpCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICBxdW90ZWRfdmFsdWUgPSBodHRwX2hlYWRlcl91dGlsLnF1b3RlX2lm
X25lY2Vzc2FyeShwYXJhbV92YWx1ZSkKKyAgICAgICAgICAgIGZvcm1hdHRlZF9wYXJhbXMuYXBw
ZW5kKCclcz0lcycgJSAocGFyYW1fbmFtZSwgcXVvdGVkX3ZhbHVlKSkKKyAgICByZXR1cm4gJzsg
Jy5qb2luKGZvcm1hdHRlZF9wYXJhbXMpCisKKworZGVmIGZvcm1hdF9leHRlbnNpb25zKGV4dGVu
c2lvbl9saXN0KToKKyAgICAiIiJGb3JtYXQgYSBsaXN0IG9mIEV4dGVuc2lvblBhcmFtZXRlciBv
YmplY3RzLiIiIgorICAgIGZvcm1hdHRlZF9leHRlbnNpb25fbGlzdCA9IFtdCisgICAgZm9yIGV4
dGVuc2lvbiBpbiBleHRlbnNpb25fbGlzdDoKKyAgICAgICAgZm9ybWF0dGVkX2V4dGVuc2lvbl9s
aXN0LmFwcGVuZChmb3JtYXRfZXh0ZW5zaW9uKGV4dGVuc2lvbikpCisgICAgcmV0dXJuICcsICcu
am9pbihmb3JtYXR0ZWRfZXh0ZW5zaW9uX2xpc3QpCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9kaXNwYXRjaC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5
d2Vic29ja2V0L2Rpc3BhdGNoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2YzkxZTBjOTBlNzQyOWQwZjc2MGMw
ZTljN2I5ODEyMDQwOTJhMGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tl
dC9kaXNwYXRjaC5weQpAQCAtMCwwICsxLDM5MyBAQAorIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xl
IEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKworIiIi
RGlzcGF0Y2ggV2ViU29ja2V0IHJlcXVlc3QuCisiIiIKKworCitpbXBvcnQgbG9nZ2luZworaW1w
b3J0IG9zCitpbXBvcnQgcmUKKworZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgor
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGhhbmRzaGFrZQorZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQgaW1wb3J0IG1zZ3V0aWwKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBtdXgKK2Zyb20g
bW9kX3B5d2Vic29ja2V0IGltcG9ydCBzdHJlYW0KK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9y
dCB1dGlsCisKKworX1NPVVJDRV9QQVRIX1BBVFRFUk4gPSByZS5jb21waWxlKHInKD9pKV93c2hc
LnB5JCcpCitfU09VUkNFX1NVRkZJWCA9ICdfd3NoLnB5JworX0RPX0VYVFJBX0hBTkRTSEFLRV9I
QU5ETEVSX05BTUUgPSAnd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UnCitfVFJBTlNGRVJf
REFUQV9IQU5ETEVSX05BTUUgPSAnd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhJworX1BBU1NJVkVf
Q0xPU0lOR19IQU5EU0hBS0VfSEFORExFUl9OQU1FID0gKAorICAgICd3ZWJfc29ja2V0X3Bhc3Np
dmVfY2xvc2luZ19oYW5kc2hha2UnKQorCisKK2NsYXNzIERpc3BhdGNoRXhjZXB0aW9uKEV4Y2Vw
dGlvbik6CisgICAgIiIiRXhjZXB0aW9uIGluIGRpc3BhdGNoaW5nIFdlYlNvY2tldCByZXF1ZXN0
LiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHN0YXR1cz1jb21tb24uSFRUUF9T
VEFUVVNfTk9UX0ZPVU5EKToKKyAgICAgICAgc3VwZXIoRGlzcGF0Y2hFeGNlcHRpb24sIHNlbGYp
Ll9faW5pdF9fKG5hbWUpCisgICAgICAgIHNlbGYuc3RhdHVzID0gc3RhdHVzCisKKworZGVmIF9k
ZWZhdWx0X3Bhc3NpdmVfY2xvc2luZ19oYW5kc2hha2VfaGFuZGxlcihyZXF1ZXN0KToKKyAgICAi
IiJEZWZhdWx0IHdlYl9zb2NrZXRfcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZSBoYW5kbGVyLiIi
IgorCisgICAgcmV0dXJuIGNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUsICcnCisKKworZGVm
IF9ub3JtYWxpemVfcGF0aChwYXRoKToKKyAgICAiIiJOb3JtYWxpemUgcGF0aC4KKworICAgIEFy
Z3M6CisgICAgICAgIHBhdGg6IHRoZSBwYXRoIHRvIG5vcm1hbGl6ZS4KKworICAgIFBhdGggaXMg
Y29udmVydGVkIHRvIHRoZSBhYnNvbHV0ZSBwYXRoLgorICAgIFRoZSBpbnB1dCBwYXRoIGNhbiB1
c2UgZWl0aGVyICdcXCcgb3IgJy8nIGFzIHRoZSBzZXBhcmF0b3IuCisgICAgVGhlIG5vcm1hbGl6
ZWQgcGF0aCBhbHdheXMgdXNlcyAnLycgcmVnYXJkbGVzcyBvZiB0aGUgcGxhdGZvcm0uCisgICAg
IiIiCisKKyAgICBwYXRoID0gcGF0aC5yZXBsYWNlKCdcXCcsIG9zLnBhdGguc2VwKQorICAgIHBh
dGggPSBvcy5wYXRoLnJlYWxwYXRoKHBhdGgpCisgICAgcGF0aCA9IHBhdGgucmVwbGFjZSgnXFwn
LCAnLycpCisgICAgcmV0dXJuIHBhdGgKKworCitkZWYgX2NyZWF0ZV9wYXRoX3RvX3Jlc291cmNl
X2NvbnZlcnRlcihiYXNlX2Rpcik6CisgICAgIiIiUmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgY29u
dmVydHMgdGhlIHBhdGggb2YgYSBXZWJTb2NrZXQgaGFuZGxlciBzb3VyY2UKKyAgICBmaWxlIHRv
IGEgcmVzb3VyY2Ugc3RyaW5nIGJ5IHJlbW92aW5nIHRoZSBwYXRoIHRvIHRoZSBiYXNlIGRpcmVj
dG9yeSBmcm9tCisgICAgaXRzIGhlYWQsIHJlbW92aW5nIF9TT1VSQ0VfU1VGRklYIGZyb20gaXRz
IHRhaWwsIGFuZCByZXBsYWNpbmcgcGF0aAorICAgIHNlcGFyYXRvcnMgaW4gaXQgd2l0aCAnLycu
CisKKyAgICBBcmdzOgorICAgICAgICBiYXNlX2RpcjogdGhlIHBhdGggdG8gdGhlIGJhc2UgZGly
ZWN0b3J5LgorICAgICIiIgorCisgICAgYmFzZV9kaXIgPSBfbm9ybWFsaXplX3BhdGgoYmFzZV9k
aXIpCisKKyAgICBiYXNlX2xlbiA9IGxlbihiYXNlX2RpcikKKyAgICBzdWZmaXhfbGVuID0gbGVu
KF9TT1VSQ0VfU1VGRklYKQorCisgICAgZGVmIGNvbnZlcnRlcihwYXRoKToKKyAgICAgICAgaWYg
bm90IHBhdGguZW5kc3dpdGgoX1NPVVJDRV9TVUZGSVgpOgorICAgICAgICAgICAgcmV0dXJuIE5v
bmUKKyAgICAgICAgIyBfbm9ybWFsaXplX3BhdGggbXVzdCBub3QgYmUgdXNlZCBiZWNhdXNlIHJl
c29sdmluZyBzeW1saW5rIGJyZWFrcworICAgICAgICAjIGZvbGxvd2luZyBwYXRoIGNoZWNrLgor
ICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKCdcXCcsICcvJykKKyAgICAgICAgaWYgbm90IHBh
dGguc3RhcnRzd2l0aChiYXNlX2Rpcik6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAg
ICByZXR1cm4gcGF0aFtiYXNlX2xlbjotc3VmZml4X2xlbl0KKworICAgIHJldHVybiBjb252ZXJ0
ZXIKKworCitkZWYgX2VudW1lcmF0ZV9oYW5kbGVyX2ZpbGVfcGF0aHMoZGlyZWN0b3J5KToKKyAg
ICAiIiJSZXR1cm5zIGEgZ2VuZXJhdG9yIHRoYXQgZW51bWVyYXRlcyBXZWJTb2NrZXQgSGFuZGxl
ciBzb3VyY2UgZmlsZSBuYW1lcworICAgIGluIHRoZSBnaXZlbiBkaXJlY3RvcnkuCisgICAgIiIi
CisKKyAgICBmb3Igcm9vdCwgdW51c2VkX2RpcnMsIGZpbGVzIGluIG9zLndhbGsoZGlyZWN0b3J5
KToKKyAgICAgICAgZm9yIGJhc2UgaW4gZmlsZXM6CisgICAgICAgICAgICBwYXRoID0gb3MucGF0
aC5qb2luKHJvb3QsIGJhc2UpCisgICAgICAgICAgICBpZiBfU09VUkNFX1BBVEhfUEFUVEVSTi5z
ZWFyY2gocGF0aCk6CisgICAgICAgICAgICAgICAgeWllbGQgcGF0aAorCisKK2NsYXNzIF9IYW5k
bGVyU3VpdGUob2JqZWN0KToKKyAgICAiIiJBIGhhbmRsZXIgc3VpdGUgaG9sZGVyIGNsYXNzLiIi
IgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRvX2V4dHJhX2hhbmRzaGFrZSwgdHJhbnNmZXJf
ZGF0YSwKKyAgICAgICAgICAgICAgICAgcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZSk6CisgICAg
ICAgIHNlbGYuZG9fZXh0cmFfaGFuZHNoYWtlID0gZG9fZXh0cmFfaGFuZHNoYWtlCisgICAgICAg
IHNlbGYudHJhbnNmZXJfZGF0YSA9IHRyYW5zZmVyX2RhdGEKKyAgICAgICAgc2VsZi5wYXNzaXZl
X2Nsb3NpbmdfaGFuZHNoYWtlID0gcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZQorCisKK2RlZiBf
c291cmNlX2hhbmRsZXJfZmlsZShoYW5kbGVyX2RlZmluaXRpb24pOgorICAgICIiIlNvdXJjZSBh
IGhhbmRsZXIgZGVmaW5pdGlvbiBzdHJpbmcuCisKKyAgICBBcmdzOgorICAgICAgICBoYW5kbGVy
X2RlZmluaXRpb246IGEgc3RyaW5nIGNvbnRhaW5pbmcgUHl0aG9uIHN0YXRlbWVudHMgdGhhdCBk
ZWZpbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyIGZ1bmN0aW9ucy4KKyAg
ICAiIiIKKworICAgIGdsb2JhbF9kaWMgPSB7fQorICAgIHRyeToKKyAgICAgICAgZXhlYyBoYW5k
bGVyX2RlZmluaXRpb24gaW4gZ2xvYmFsX2RpYworICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAg
ICAgIHJhaXNlIERpc3BhdGNoRXhjZXB0aW9uKCdFcnJvciBpbiBzb3VyY2luZyBoYW5kbGVyOicg
KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlsLmdldF9zdGFja190cmFjZSgp
KQorICAgIHBhc3NpdmVfY2xvc2luZ19oYW5kc2hha2VfaGFuZGxlciA9IE5vbmUKKyAgICB0cnk6
CisgICAgICAgIHBhc3NpdmVfY2xvc2luZ19oYW5kc2hha2VfaGFuZGxlciA9IF9leHRyYWN0X2hh
bmRsZXIoCisgICAgICAgICAgICBnbG9iYWxfZGljLCBfUEFTU0lWRV9DTE9TSU5HX0hBTkRTSEFL
RV9IQU5ETEVSX05BTUUpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgcGFzc2l2ZV9j
bG9zaW5nX2hhbmRzaGFrZV9oYW5kbGVyID0gKAorICAgICAgICAgICAgX2RlZmF1bHRfcGFzc2l2
ZV9jbG9zaW5nX2hhbmRzaGFrZV9oYW5kbGVyKQorICAgIHJldHVybiBfSGFuZGxlclN1aXRlKAor
ICAgICAgICBfZXh0cmFjdF9oYW5kbGVyKGdsb2JhbF9kaWMsIF9ET19FWFRSQV9IQU5EU0hBS0Vf
SEFORExFUl9OQU1FKSwKKyAgICAgICAgX2V4dHJhY3RfaGFuZGxlcihnbG9iYWxfZGljLCBfVFJB
TlNGRVJfREFUQV9IQU5ETEVSX05BTUUpLAorICAgICAgICBwYXNzaXZlX2Nsb3NpbmdfaGFuZHNo
YWtlX2hhbmRsZXIpCisKKworZGVmIF9leHRyYWN0X2hhbmRsZXIoZGljLCBuYW1lKToKKyAgICAi
IiJFeHRyYWN0cyBhIGNhbGxhYmxlIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lIGZyb20gdGhlIGdp
dmVuIGRpY3Rpb25hcnkKKyAgICBkaWMuCisgICAgIiIiCisKKyAgICBpZiBuYW1lIG5vdCBpbiBk
aWM6CisgICAgICAgIHJhaXNlIERpc3BhdGNoRXhjZXB0aW9uKCclcyBpcyBub3QgZGVmaW5lZC4n
ICUgbmFtZSkKKyAgICBoYW5kbGVyID0gZGljW25hbWVdCisgICAgaWYgbm90IGNhbGxhYmxlKGhh
bmRsZXIpOgorICAgICAgICByYWlzZSBEaXNwYXRjaEV4Y2VwdGlvbignJXMgaXMgbm90IGNhbGxh
YmxlLicgJSBuYW1lKQorICAgIHJldHVybiBoYW5kbGVyCisKKworY2xhc3MgRGlzcGF0Y2hlcihv
YmplY3QpOgorICAgICIiIkRpc3BhdGNoZXMgV2ViU29ja2V0IHJlcXVlc3RzLgorCisgICAgVGhp
cyBjbGFzcyBtYWludGFpbnMgYSBtYXAgZnJvbSByZXNvdXJjZSBuYW1lIHRvIGhhbmRsZXJzLgor
ICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKAorICAgICAgICBzZWxmLCByb290X2Rpciwgc2Nh
bl9kaXI9Tm9uZSwKKyAgICAgICAgYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290X2Rpcj1UcnVl
KToKKyAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgorCisgICAgICAgIEFyZ3M6Cisg
ICAgICAgICAgICByb290X2RpcjogVGhlIGRpcmVjdG9yeSB3aGVyZSBoYW5kbGVyIGRlZmluaXRp
b24gZmlsZXMgYXJlCisgICAgICAgICAgICAgICAgICAgICAgcGxhY2VkLgorICAgICAgICAgICAg
c2Nhbl9kaXI6IFRoZSBkaXJlY3Rvcnkgd2hlcmUgaGFuZGxlciBkZWZpbml0aW9uIGZpbGVzIGFy
ZQorICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaGVkLiBzY2FuX2RpciBtdXN0IGJlIGEgZGly
ZWN0b3J5IHVuZGVyIHJvb3RfZGlyLAorICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGluZyBy
b290X2RpciBpdHNlbGYuICBJZiBzY2FuX2RpciBpcyBOb25lLAorICAgICAgICAgICAgICAgICAg
ICAgIHJvb3RfZGlyIGlzIHVzZWQgYXMgc2Nhbl9kaXIuIHNjYW5fZGlyIGNhbiBiZSB1c2VmdWwK
KyAgICAgICAgICAgICAgICAgICAgICBpbiBzYXZpbmcgc2NhbiB0aW1lIHdoZW4gcm9vdF9kaXIg
Y29udGFpbnMgbWFueQorICAgICAgICAgICAgICAgICAgICAgIHN1YmRpcmVjdG9yaWVzLgorICAg
ICAgICAgICAgYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290X2RpcjogU2NhbnMgaGFuZGxlciBm
aWxlcyBldmVuIGlmIHRoZWlyCisgICAgICAgICAgICAgICAgICAgICAgY2Fub25pY2FsIHBhdGgg
aXMgbm90IHVuZGVyIHJvb3RfZGlyLgorICAgICAgICAiIiIKKworICAgICAgICBzZWxmLl9sb2dn
ZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKKworICAgICAgICBzZWxmLl9oYW5kbGVy
X3N1aXRlX21hcCA9IHt9CisgICAgICAgIHNlbGYuX3NvdXJjZV93YXJuaW5ncyA9IFtdCisgICAg
ICAgIGlmIHNjYW5fZGlyIGlzIE5vbmU6CisgICAgICAgICAgICBzY2FuX2RpciA9IHJvb3RfZGly
CisgICAgICAgIGlmIG5vdCBvcy5wYXRoLnJlYWxwYXRoKHNjYW5fZGlyKS5zdGFydHN3aXRoKAor
ICAgICAgICAgICAgICAgIG9zLnBhdGgucmVhbHBhdGgocm9vdF9kaXIpKToKKyAgICAgICAgICAg
IHJhaXNlIERpc3BhdGNoRXhjZXB0aW9uKCdzY2FuX2RpcjolcyBtdXN0IGJlIGEgZGlyZWN0b3J5
IHVuZGVyICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyb290X2Rpcjol
cy4nICUgKHNjYW5fZGlyLCByb290X2RpcikpCisgICAgICAgIHNlbGYuX3NvdXJjZV9oYW5kbGVy
X2ZpbGVzX2luX2RpcigKKyAgICAgICAgICAgIHJvb3RfZGlyLCBzY2FuX2RpciwgYWxsb3dfaGFu
ZGxlcnNfb3V0c2lkZV9yb290X2RpcikKKworICAgIGRlZiBhZGRfcmVzb3VyY2VfcGF0aF9hbGlh
cyhzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlhc19yZXNvdXJjZV9w
YXRoLCBleGlzdGluZ19yZXNvdXJjZV9wYXRoKToKKyAgICAgICAgIiIiQWRkIHJlc291cmNlIHBh
dGggYWxpYXMuCisKKyAgICAgICAgT25jZSBhZGRlZCwgcmVxdWVzdCB0byBhbGlhc19yZXNvdXJj
ZV9wYXRoIHdvdWxkIGJlIGhhbmRsZWQgYnkKKyAgICAgICAgaGFuZGxlciByZWdpc3RlcmVkIGZv
ciBleGlzdGluZ19yZXNvdXJjZV9wYXRoLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBh
bGlhc19yZXNvdXJjZV9wYXRoOiBhbGlhcyByZXNvdXJjZSBwYXRoCisgICAgICAgICAgICBleGlz
dGluZ19yZXNvdXJjZV9wYXRoOiBleGlzdGluZyByZXNvdXJjZSBwYXRoCisgICAgICAgICIiIgor
ICAgICAgICB0cnk6CisgICAgICAgICAgICBoYW5kbGVyX3N1aXRlID0gc2VsZi5faGFuZGxlcl9z
dWl0ZV9tYXBbZXhpc3RpbmdfcmVzb3VyY2VfcGF0aF0KKyAgICAgICAgICAgIHNlbGYuX2hhbmRs
ZXJfc3VpdGVfbWFwW2FsaWFzX3Jlc291cmNlX3BhdGhdID0gaGFuZGxlcl9zdWl0ZQorICAgICAg
ICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICByYWlzZSBEaXNwYXRjaEV4Y2VwdGlvbign
Tm8gaGFuZGxlciBmb3I6ICVyJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBleGlzdGluZ19yZXNvdXJjZV9wYXRoKQorCisgICAgZGVmIHNvdXJjZV93YXJuaW5ncyhzZWxm
KToKKyAgICAgICAgIiIiUmV0dXJuIHdhcm5pbmdzIGluIHNvdXJjaW5nIGhhbmRsZXJzLiIiIgor
CisgICAgICAgIHJldHVybiBzZWxmLl9zb3VyY2Vfd2FybmluZ3MKKworICAgIGRlZiBkb19leHRy
YV9oYW5kc2hha2Uoc2VsZiwgcmVxdWVzdCk6CisgICAgICAgICIiIkRvIGV4dHJhIGNoZWNraW5n
IGluIFdlYlNvY2tldCBoYW5kc2hha2UuCisKKyAgICAgICAgU2VsZWN0IGEgaGFuZGxlciBiYXNl
ZCBvbiByZXF1ZXN0LnVyaSBhbmQgY2FsbCBpdHMKKyAgICAgICAgd2ViX3NvY2tldF9kb19leHRy
YV9oYW5kc2hha2UgZnVuY3Rpb24uCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIHJlcXVl
c3Q6IG1vZF9weXRob24gcmVxdWVzdC4KKworICAgICAgICBSYWlzZXM6CisgICAgICAgICAgICBE
aXNwYXRjaEV4Y2VwdGlvbjogd2hlbiBoYW5kbGVyIHdhcyBub3QgZm91bmQKKyAgICAgICAgICAg
IEFib3J0ZWRCeVVzZXJFeGNlcHRpb246IHdoZW4gdXNlciBoYW5kbGVyIGFib3J0IGNvbm5lY3Rp
b24KKyAgICAgICAgICAgIEhhbmRzaGFrZUV4Y2VwdGlvbjogd2hlbiBvcGVuaW5nIGhhbmRzaGFr
ZSBmYWlsZWQKKyAgICAgICAgIiIiCisKKyAgICAgICAgaGFuZGxlcl9zdWl0ZSA9IHNlbGYuZ2V0
X2hhbmRsZXJfc3VpdGUocmVxdWVzdC53c19yZXNvdXJjZSkKKyAgICAgICAgaWYgaGFuZGxlcl9z
dWl0ZSBpcyBOb25lOgorICAgICAgICAgICAgcmFpc2UgRGlzcGF0Y2hFeGNlcHRpb24oJ05vIGhh
bmRsZXIgZm9yOiAlcicgJSByZXF1ZXN0LndzX3Jlc291cmNlKQorICAgICAgICBkb19leHRyYV9o
YW5kc2hha2VfID0gaGFuZGxlcl9zdWl0ZS5kb19leHRyYV9oYW5kc2hha2UKKyAgICAgICAgdHJ5
OgorICAgICAgICAgICAgZG9fZXh0cmFfaGFuZHNoYWtlXyhyZXF1ZXN0KQorICAgICAgICBleGNl
cHQgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAjIFJl
LXJhaXNlIHRvIHRlbGwgdGhlIGNhbGxlciBvZiB0aGlzIGZ1bmN0aW9uIHRvIGZpbmlzaCB0aGlz
CisgICAgICAgICAgICAjIGNvbm5lY3Rpb24gd2l0aG91dCBzZW5kaW5nIGFueSBlcnJvci4KKyAg
ICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCB1dGlsLmdldF9zdGFja190cmFjZSgp
KQorICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAg
ICAgICAgIHV0aWwucHJlcGVuZF9tZXNzYWdlX3RvX2V4Y2VwdGlvbigKKyAgICAgICAgICAgICAg
ICAgICAgJyVzIHJhaXNlZCBleGNlcHRpb24gZm9yICVzOiAnICUgKAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIF9ET19FWFRSQV9IQU5EU0hBS0VfSEFORExFUl9OQU1FLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfcmVzb3VyY2UpLAorICAgICAgICAgICAgICAg
ICAgICBlKQorICAgICAgICAgICAgcmFpc2UgaGFuZHNoYWtlLkhhbmRzaGFrZUV4Y2VwdGlvbihl
LCBjb21tb24uSFRUUF9TVEFUVVNfRk9SQklEREVOKQorCisgICAgZGVmIHRyYW5zZmVyX2RhdGEo
c2VsZiwgcmVxdWVzdCk6CisgICAgICAgICIiIkxldCBhIGhhbmRsZXIgdHJhbnNmZXJfZGF0YSB3
aXRoIGEgV2ViU29ja2V0IGNsaWVudC4KKworICAgICAgICBTZWxlY3QgYSBoYW5kbGVyIGJhc2Vk
IG9uIHJlcXVlc3Qud3NfcmVzb3VyY2UgYW5kIGNhbGwgaXRzCisgICAgICAgIHdlYl9zb2NrZXRf
dHJhbnNmZXJfZGF0YSBmdW5jdGlvbi4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgcmVx
dWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgorCisgICAgICAgIFJhaXNlczoKKyAgICAgICAgICAg
IERpc3BhdGNoRXhjZXB0aW9uOiB3aGVuIGhhbmRsZXIgd2FzIG5vdCBmb3VuZAorICAgICAgICAg
ICAgQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbjogd2hlbiB1c2VyIGhhbmRsZXIgYWJvcnQgY29ubmVj
dGlvbgorICAgICAgICAiIiIKKworICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBUZXJtaW5hdGUg
dW5kZXJseWluZyBUQ1AgY29ubmVjdGlvbiBpZiBwb3NzaWJsZS4KKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgaWYgbXV4LnVzZV9tdXgocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgbXV4LnN0
YXJ0KHJlcXVlc3QsIHNlbGYpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGhh
bmRsZXJfc3VpdGUgPSBzZWxmLmdldF9oYW5kbGVyX3N1aXRlKHJlcXVlc3Qud3NfcmVzb3VyY2Up
CisgICAgICAgICAgICAgICAgaWYgaGFuZGxlcl9zdWl0ZSBpcyBOb25lOgorICAgICAgICAgICAg
ICAgICAgICByYWlzZSBEaXNwYXRjaEV4Y2VwdGlvbignTm8gaGFuZGxlciBmb3I6ICVyJyAlCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfcmVz
b3VyY2UpCisgICAgICAgICAgICAgICAgdHJhbnNmZXJfZGF0YV8gPSBoYW5kbGVyX3N1aXRlLnRy
YW5zZmVyX2RhdGEKKyAgICAgICAgICAgICAgICB0cmFuc2Zlcl9kYXRhXyhyZXF1ZXN0KQorCisg
ICAgICAgICAgICBpZiBub3QgcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKKyAgICAgICAgICAg
ICAgICByZXF1ZXN0LndzX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKCkKKyAgICAgICAgIyBDYXRj
aCBub24tY3JpdGljYWwgZXhjZXB0aW9ucyB0aGUgaGFuZGxlciBkaWRuJ3QgaGFuZGxlLgorICAg
ICAgICBleGNlcHQgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24sIGU6CisgICAgICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzJywgdXRpbC5nZXRfc3RhY2tfdHJhY2UoKSkKKyAg
ICAgICAgICAgIHJhaXNlCisgICAgICAgIGV4Y2VwdCBtc2d1dGlsLkJhZE9wZXJhdGlvbkV4Y2Vw
dGlvbiwgZToKKyAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCBlKQorICAgICAg
ICAgICAgcmVxdWVzdC53c19zdHJlYW0uY2xvc2VfY29ubmVjdGlvbigKKyAgICAgICAgICAgICAg
ICBjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SKQorICAgICAgICBleGNlcHQg
bXNndXRpbC5JbnZhbGlkRnJhbWVFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAjIEludmFsaWRG
cmFtZUV4Y2VwdGlvbiBtdXN0IGJlIGNhdWdodCBiZWZvcmUKKyAgICAgICAgICAgICMgQ29ubmVj
dGlvblRlcm1pbmF0ZWRFeGNlcHRpb24gdGhhdCBjYXRjaGVzIEludmFsaWRGcmFtZUV4Y2VwdGlv
bi4KKyAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCBlKQorICAgICAgICAgICAg
cmVxdWVzdC53c19zdHJlYW0uY2xvc2VfY29ubmVjdGlvbihjb21tb24uU1RBVFVTX1BST1RPQ09M
X0VSUk9SKQorICAgICAgICBleGNlcHQgbXNndXRpbC5VbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9u
LCBlOgorICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcycsIGUpCisgICAgICAgICAg
ICByZXF1ZXN0LndzX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKGNvbW1vbi5TVEFUVVNfVU5TVVBQ
T1JURURfREFUQSkKKyAgICAgICAgZXhjZXB0IHN0cmVhbS5JbnZhbGlkVVRGOEV4Y2VwdGlvbiwg
ZToKKyAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCBlKQorICAgICAgICAgICAg
cmVxdWVzdC53c19zdHJlYW0uY2xvc2VfY29ubmVjdGlvbigKKyAgICAgICAgICAgICAgICBjb21t
b24uU1RBVFVTX0lOVkFMSURfRlJBTUVfUEFZTE9BRF9EQVRBKQorICAgICAgICBleGNlcHQgbXNn
dXRpbC5Db25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygnJXMnLCBlKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAg
ICAgICAgICAgIyBBbnkgb3RoZXIgZXhjZXB0aW9ucyBhcmUgZm9yd2FyZGVkIHRvIHRoZSBjYWxs
ZXIgb2YgdGhpcworICAgICAgICAgICAgIyBmdW5jdGlvbi4KKyAgICAgICAgICAgIHV0aWwucHJl
cGVuZF9tZXNzYWdlX3RvX2V4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnJXMgcmFpc2VkIGV4
Y2VwdGlvbiBmb3IgJXM6ICcgJSAoCisgICAgICAgICAgICAgICAgICAgIF9UUkFOU0ZFUl9EQVRB
X0hBTkRMRVJfTkFNRSwgcmVxdWVzdC53c19yZXNvdXJjZSksCisgICAgICAgICAgICAgICAgZSkK
KyAgICAgICAgICAgIHJhaXNlCisKKyAgICBkZWYgcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZShz
ZWxmLCByZXF1ZXN0KToKKyAgICAgICAgIiIiUHJlcGFyZSBjb2RlIGFuZCByZWFzb24gZm9yIHJl
c3BvbmRpbmcgY2xpZW50IGluaXRpYXRlZCBjbG9zaW5nCisgICAgICAgIGhhbmRzaGFrZS4KKyAg
ICAgICAgIiIiCisKKyAgICAgICAgaGFuZGxlcl9zdWl0ZSA9IHNlbGYuZ2V0X2hhbmRsZXJfc3Vp
dGUocmVxdWVzdC53c19yZXNvdXJjZSkKKyAgICAgICAgaWYgaGFuZGxlcl9zdWl0ZSBpcyBOb25l
OgorICAgICAgICAgICAgcmV0dXJuIF9kZWZhdWx0X3Bhc3NpdmVfY2xvc2luZ19oYW5kc2hha2Vf
aGFuZGxlcihyZXF1ZXN0KQorICAgICAgICByZXR1cm4gaGFuZGxlcl9zdWl0ZS5wYXNzaXZlX2Ns
b3NpbmdfaGFuZHNoYWtlKHJlcXVlc3QpCisKKyAgICBkZWYgZ2V0X2hhbmRsZXJfc3VpdGUoc2Vs
ZiwgcmVzb3VyY2UpOgorICAgICAgICAiIiJSZXRyaWV2ZXMgdHdvIGhhbmRsZXJzIChvbmUgZm9y
IGV4dHJhIGhhbmRzaGFrZSBwcm9jZXNzaW5nLCBhbmQgb25lCisgICAgICAgIGZvciBkYXRhIHRy
YW5zZmVyKSBmb3IgdGhlIGdpdmVuIHJlcXVlc3QgYXMgYSBIYW5kbGVyU3VpdGUgb2JqZWN0Lgor
ICAgICAgICAiIiIKKworICAgICAgICBmcmFnbWVudCA9IE5vbmUKKyAgICAgICAgaWYgJyMnIGlu
IHJlc291cmNlOgorICAgICAgICAgICAgcmVzb3VyY2UsIGZyYWdtZW50ID0gcmVzb3VyY2Uuc3Bs
aXQoJyMnLCAxKQorICAgICAgICBpZiAnPycgaW4gcmVzb3VyY2U6CisgICAgICAgICAgICByZXNv
dXJjZSA9IHJlc291cmNlLnNwbGl0KCc/JywgMSlbMF0KKyAgICAgICAgaGFuZGxlcl9zdWl0ZSA9
IHNlbGYuX2hhbmRsZXJfc3VpdGVfbWFwLmdldChyZXNvdXJjZSkKKyAgICAgICAgaWYgaGFuZGxl
cl9zdWl0ZSBhbmQgZnJhZ21lbnQ6CisgICAgICAgICAgICByYWlzZSBEaXNwYXRjaEV4Y2VwdGlv
bignRnJhZ21lbnQgaWRlbnRpZmllcnMgTVVTVCBOT1QgYmUgdXNlZCBvbiAnCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnV2ViU29ja2V0IFVSSXMnLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUKQor
ICAgICAgICByZXR1cm4gaGFuZGxlcl9zdWl0ZQorCisgICAgZGVmIF9zb3VyY2VfaGFuZGxlcl9m
aWxlc19pbl9kaXIoCisgICAgICAgIHNlbGYsIHJvb3RfZGlyLCBzY2FuX2RpciwgYWxsb3dfaGFu
ZGxlcnNfb3V0c2lkZV9yb290X2Rpcik6CisgICAgICAgICIiIlNvdXJjZSBhbGwgdGhlIGhhbmRs
ZXIgc291cmNlIGZpbGVzIGluIHRoZSBzY2FuX2RpciBkaXJlY3RvcnkuCisKKyAgICAgICAgVGhl
IHJlc291cmNlIHBhdGggaXMgZGV0ZXJtaW5lZCByZWxhdGl2ZSB0byByb290X2Rpci4KKyAgICAg
ICAgIiIiCisKKyAgICAgICAgIyBXZSBidWlsZCBhIG1hcCBmcm9tIHJlc291cmNlIHRvIGhhbmRs
ZXIgY29kZSBhc3N1bWluZyB0aGF0IHRoZXJlJ3MKKyAgICAgICAgIyBvbmx5IG9uZSBwYXRoIGZy
b20gcm9vdF9kaXIgdG8gc2Nhbl9kaXIgYW5kIGl0IGNhbiBiZSBvYnRhaW5lZCBieQorICAgICAg
ICAjIGNvbXBhcmluZyByZWFscGF0aCBvZiB0aGVtLgorCisgICAgICAgICMgSGVyZSB3ZSBjYW5u
b3QgdXNlIGFic3BhdGguIFNlZQorICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zMTYwMworCisgICAgICAgIGNvbnZlcnQgPSBfY3JlYXRlX3BhdGhfdG9f
cmVzb3VyY2VfY29udmVydGVyKHJvb3RfZGlyKQorICAgICAgICBzY2FuX3JlYWxwYXRoID0gb3Mu
cGF0aC5yZWFscGF0aChzY2FuX2RpcikKKyAgICAgICAgcm9vdF9yZWFscGF0aCA9IG9zLnBhdGgu
cmVhbHBhdGgocm9vdF9kaXIpCisgICAgICAgIGZvciBwYXRoIGluIF9lbnVtZXJhdGVfaGFuZGxl
cl9maWxlX3BhdGhzKHNjYW5fcmVhbHBhdGgpOgorICAgICAgICAgICAgaWYgKG5vdCBhbGxvd19o
YW5kbGVyc19vdXRzaWRlX3Jvb3RfZGlyIGFuZAorICAgICAgICAgICAgICAgIChub3Qgb3MucGF0
aC5yZWFscGF0aChwYXRoKS5zdGFydHN3aXRoKHJvb3RfcmVhbHBhdGgpKSk6CisgICAgICAgICAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAorICAgICAgICAgICAgICAgICAgICAnQ2Fub25pY2Fs
IHBhdGggb2YgJXMgaXMgbm90IHVuZGVyIHJvb3QgZGlyZWN0b3J5JyAlCisgICAgICAgICAgICAg
ICAgICAgIHBhdGgpCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIHRyeToK
KyAgICAgICAgICAgICAgICBoYW5kbGVyX3N1aXRlID0gX3NvdXJjZV9oYW5kbGVyX2ZpbGUob3Bl
bihwYXRoKS5yZWFkKCkpCisgICAgICAgICAgICBleGNlcHQgRGlzcGF0Y2hFeGNlcHRpb24sIGU6
CisgICAgICAgICAgICAgICAgc2VsZi5fc291cmNlX3dhcm5pbmdzLmFwcGVuZCgnJXM6ICVzJyAl
IChwYXRoLCBlKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgcmVzb3Vy
Y2UgPSBjb252ZXJ0KHBhdGgpCisgICAgICAgICAgICBpZiByZXNvdXJjZSBpcyBOb25lOgorICAg
ICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKKyAgICAgICAgICAgICAgICAgICAgJ1Bh
dGggdG8gcmVzb3VyY2UgY29udmVyc2lvbiBvbiAlcyBmYWlsZWQnICUgcGF0aCkKKyAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlcl9zdWl0ZV9tYXBbY29udmVy
dChwYXRoKV0gPSBoYW5kbGVyX3N1aXRlCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9leHRlbnNpb25zLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJz
b2NrZXQvZXh0ZW5zaW9ucy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNGI1ZWFmNzNmNGQyZDZiNjI0MzgwZjUx
ZGFhNzc0MTk0ZjE4ZGRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQv
ZXh0ZW5zaW9ucy5weQpAQCAtMCwwICsxLDc1MCBAQAorIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xl
IEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKworZnJv
bSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1w
b3J0IHV0aWwKK2Zyb20gbW9kX3B5d2Vic29ja2V0Lmh0dHBfaGVhZGVyX3V0aWwgaW1wb3J0IHF1
b3RlX2lmX25lY2Vzc2FyeQorCisKKyMgVGhlIGxpc3Qgb2YgYXZhaWxhYmxlIHNlcnZlciBzaWRl
IGV4dGVuc2lvbiBwcm9jZXNzb3IgY2xhc3Nlcy4KK19hdmFpbGFibGVfcHJvY2Vzc29ycyA9IHt9
CitfY29tcHJlc3Npb25fZXh0ZW5zaW9uX25hbWVzID0gW10KKworCitjbGFzcyBFeHRlbnNpb25Q
cm9jZXNzb3JJbnRlcmZhY2Uob2JqZWN0KToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1
ZXN0KToKKyAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYp
CisKKyAgICAgICAgc2VsZi5fcmVxdWVzdCA9IHJlcXVlc3QKKyAgICAgICAgc2VsZi5fYWN0aXZl
ID0gVHJ1ZQorCisgICAgZGVmIHJlcXVlc3Qoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9y
ZXF1ZXN0CisKKyAgICBkZWYgbmFtZShzZWxmKToKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAg
IGRlZiBjaGVja19jb25zaXN0ZW5jeV93aXRoX290aGVyX3Byb2Nlc3NvcnMoc2VsZiwgcHJvY2Vz
c29ycyk6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBzZXRfYWN0aXZlKHNlbGYsIGFjdGl2ZSk6
CisgICAgICAgIHNlbGYuX2FjdGl2ZSA9IGFjdGl2ZQorCisgICAgZGVmIGlzX2FjdGl2ZShzZWxm
KToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2FjdGl2ZQorCisgICAgZGVmIF9nZXRfZXh0ZW5zaW9u
X3Jlc3BvbnNlX2ludGVybmFsKHNlbGYpOgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgZGVm
IGdldF9leHRlbnNpb25fcmVzcG9uc2Uoc2VsZik6CisgICAgICAgIGlmIG5vdCBzZWxmLl9hY3Rp
dmU6CisgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0V4dGVuc2lvbiAlcyBpcyBkZWFj
dGl2YXRlZCcsIHNlbGYubmFtZSgpKQorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAg
ICByZXNwb25zZSA9IHNlbGYuX2dldF9leHRlbnNpb25fcmVzcG9uc2VfaW50ZXJuYWwoKQorICAg
ICAgICBpZiByZXNwb25zZSBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5fYWN0aXZlID0gRmFs
c2UKKyAgICAgICAgcmV0dXJuIHJlc3BvbnNlCisKKyAgICBkZWYgX3NldHVwX3N0cmVhbV9vcHRp
b25zX2ludGVybmFsKHNlbGYsIHN0cmVhbV9vcHRpb25zKToKKyAgICAgICAgcGFzcworCisgICAg
ZGVmIHNldHVwX3N0cmVhbV9vcHRpb25zKHNlbGYsIHN0cmVhbV9vcHRpb25zKToKKyAgICAgICAg
aWYgc2VsZi5fYWN0aXZlOgorICAgICAgICAgICAgc2VsZi5fc2V0dXBfc3RyZWFtX29wdGlvbnNf
aW50ZXJuYWwoc3RyZWFtX29wdGlvbnMpCisKKworZGVmIF9sb2dfb3V0Z29pbmdfY29tcHJlc3Np
b25fcmF0aW8oCisgICAgICAgIGxvZ2dlciwgb3JpZ2luYWxfYnl0ZXMsIGZpbHRlcmVkX2J5dGVz
LCBhdmVyYWdlX3JhdGlvKToKKyAgICAjIFByaW50IGluZiB3aGVuIHJhdGlvIGlzIG5vdCBhdmFp
bGFibGUuCisgICAgcmF0aW8gPSBmbG9hdCgnaW5mJykKKyAgICBpZiBvcmlnaW5hbF9ieXRlcyAh
PSAwOgorICAgICAgICByYXRpbyA9IGZsb2F0KGZpbHRlcmVkX2J5dGVzKSAvIG9yaWdpbmFsX2J5
dGVzCisKKyAgICBsb2dnZXIuZGVidWcoJ091dGdvaW5nIGNvbXByZXNzaW9uIHJhdGlvOiAlZiAo
YXZlcmFnZTogJWYpJyAlCisgICAgICAgICAgICAocmF0aW8sIGF2ZXJhZ2VfcmF0aW8pKQorCisK
K2RlZiBfbG9nX2luY29taW5nX2NvbXByZXNzaW9uX3JhdGlvKAorICAgICAgICBsb2dnZXIsIHJl
Y2VpdmVkX2J5dGVzLCBmaWx0ZXJlZF9ieXRlcywgYXZlcmFnZV9yYXRpbyk6CisgICAgIyBQcmlu
dCBpbmYgd2hlbiByYXRpbyBpcyBub3QgYXZhaWxhYmxlLgorICAgIHJhdGlvID0gZmxvYXQoJ2lu
ZicpCisgICAgaWYgZmlsdGVyZWRfYnl0ZXMgIT0gMDoKKyAgICAgICAgcmF0aW8gPSBmbG9hdChy
ZWNlaXZlZF9ieXRlcykgLyBmaWx0ZXJlZF9ieXRlcworCisgICAgbG9nZ2VyLmRlYnVnKCdJbmNv
bWluZyBjb21wcmVzc2lvbiByYXRpbzogJWYgKGF2ZXJhZ2U6ICVmKScgJQorICAgICAgICAgICAg
KHJhdGlvLCBhdmVyYWdlX3JhdGlvKSkKKworCitkZWYgX3BhcnNlX3dpbmRvd19iaXRzKGJpdHMp
OgorICAgICIiIlJldHVybiBwYXJzZWQgaW50ZWdlciB2YWx1ZSBpZmYgdGhlIGdpdmVuIHN0cmlu
ZyBjb25mb3JtcyB0byB0aGUKKyAgICBncmFtbWFyIG9mIHRoZSB3aW5kb3cgYml0cyBleHRlbnNp
b24gcGFyYW1ldGVycy4KKyAgICAiIiIKKworICAgIGlmIGJpdHMgaXMgTm9uZToKKyAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcignVmFsdWUgaXMgcmVxdWlyZWQnKQorCisgICAgIyBGb3Igbm9uIGlu
dGVnZXIgdmFsdWVzIHN1Y2ggYXMgIjEwLjAiLCBWYWx1ZUVycm9yIHdpbGwgYmUgcmFpc2VkLgor
ICAgIGludF9iaXRzID0gaW50KGJpdHMpCisKKyAgICAjIEZpcnN0IGNvbmRpdGlvbiBpcyB0byBk
cm9wIGxlYWRpbmcgemVybyBjYXNlIGUuZy4gIjA4Ii4KKyAgICBpZiBiaXRzICE9IHN0cihpbnRf
Yml0cykgb3IgaW50X2JpdHMgPCA4IG9yIGludF9iaXRzID4gMTU6CisgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoJ0ludmFsaWQgdmFsdWU6ICVyJyAlIGJpdHMpCisKKyAgICByZXR1cm4gaW50X2Jp
dHMKKworCitjbGFzcyBfQXZlcmFnZVJhdGlvQ2FsY3VsYXRvcihvYmplY3QpOgorICAgICIiIlN0
b3JlcyB0b3RhbCBieXRlcyBvZiBvcmlnaW5hbCBhbmQgcmVzdWx0IGRhdGEsIGFuZCBjYWxjdWxh
dGVzIGF2ZXJhZ2UKKyAgICByZXN1bHQgLyBvcmlnaW5hbCByYXRpby4KKyAgICAiIiIKKworICAg
IGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5fdG90YWxfb3JpZ2luYWxfYnl0ZXMg
PSAwCisgICAgICAgIHNlbGYuX3RvdGFsX3Jlc3VsdF9ieXRlcyA9IDAKKworICAgIGRlZiBhZGRf
b3JpZ2luYWxfYnl0ZXMoc2VsZiwgdmFsdWUpOgorICAgICAgICBzZWxmLl90b3RhbF9vcmlnaW5h
bF9ieXRlcyArPSB2YWx1ZQorCisgICAgZGVmIGFkZF9yZXN1bHRfYnl0ZXMoc2VsZiwgdmFsdWUp
OgorICAgICAgICBzZWxmLl90b3RhbF9yZXN1bHRfYnl0ZXMgKz0gdmFsdWUKKworICAgIGRlZiBn
ZXRfYXZlcmFnZV9yYXRpbyhzZWxmKToKKyAgICAgICAgaWYgc2VsZi5fdG90YWxfb3JpZ2luYWxf
Ynl0ZXMgIT0gMDoKKyAgICAgICAgICAgIHJldHVybiAoZmxvYXQoc2VsZi5fdG90YWxfcmVzdWx0
X2J5dGVzKSAvCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3RvdGFsX29yaWdpbmFsX2J5dGVz
KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIGZsb2F0KCdpbmYnKQorCisKK2Ns
YXNzIERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihFeHRlbnNpb25Qcm9jZXNzb3JJbnRl
cmZhY2UpOgorICAgICIiImRlZmxhdGUtZnJhbWUgZXh0ZW5zaW9uIHByb2Nlc3Nvci4KKworICAg
IFNwZWNpZmljYXRpb246CisgICAgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtdHlv
c2hpbm8taHliaS13ZWJzb2NrZXQtcGVyZnJhbWUtZGVmbGF0ZQorICAgICIiIgorCisgICAgX1dJ
TkRPV19CSVRTX1BBUkFNID0gJ21heF93aW5kb3dfYml0cycKKyAgICBfTk9fQ09OVEVYVF9UQUtF
T1ZFUl9QQVJBTSA9ICdub19jb250ZXh0X3Rha2VvdmVyJworCisgICAgZGVmIF9faW5pdF9fKHNl
bGYsIHJlcXVlc3QpOgorICAgICAgICBFeHRlbnNpb25Qcm9jZXNzb3JJbnRlcmZhY2UuX19pbml0
X18oc2VsZiwgcmVxdWVzdCkKKyAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3Nf
bG9nZ2VyKHNlbGYpCisKKyAgICAgICAgc2VsZi5fcmVzcG9uc2Vfd2luZG93X2JpdHMgPSBOb25l
CisgICAgICAgIHNlbGYuX3Jlc3BvbnNlX25vX2NvbnRleHRfdGFrZW92ZXIgPSBGYWxzZQorICAg
ICAgICBzZWxmLl9iZmluYWwgPSBGYWxzZQorCisgICAgICAgICMgQ2FsY3VsYXRlcworICAgICAg
ICAjICAgICAoVG90YWwgb3V0Z29pbmcgYnl0ZXMgc3VwcGxpZWQgdG8gdGhpcyBmaWx0ZXIpIC8K
KyAgICAgICAgIyAgICAgKFRvdGFsIGJ5dGVzIHNlbnQgdG8gdGhlIG5ldHdvcmsgYWZ0ZXIgYXBw
bHlpbmcgdGhpcyBmaWx0ZXIpCisgICAgICAgIHNlbGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0aW9f
Y2FsY3VsYXRvciA9IF9BdmVyYWdlUmF0aW9DYWxjdWxhdG9yKCkKKworICAgICAgICAjIENhbGN1
bGF0ZXMKKyAgICAgICAgIyAgICAgKFRvdGFsIGJ5dGVzIHJlY2VpdmVkIGZyb20gdGhlIG5ldHdv
cmspIC8KKyAgICAgICAgIyAgICAgKFRvdGFsIGluY29taW5nIGJ5dGVzIG9idGFpbmVkIGFmdGVy
IGFwcGx5aW5nIHRoaXMgZmlsdGVyKQorICAgICAgICBzZWxmLl9pbmNvbWluZ19hdmVyYWdlX3Jh
dGlvX2NhbGN1bGF0b3IgPSBfQXZlcmFnZVJhdGlvQ2FsY3VsYXRvcigpCisKKyAgICBkZWYgbmFt
ZShzZWxmKToKKyAgICAgICAgcmV0dXJuIGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTgor
CisgICAgZGVmIF9nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlX2ludGVybmFsKHNlbGYpOgorICAgICAg
ICAjIEFueSB1bmtub3duIHBhcmFtZXRlciB3aWxsIGJlIGp1c3QgaWdub3JlZC4KKworICAgICAg
ICB3aW5kb3dfYml0cyA9IE5vbmUKKyAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5oYXNfcGFyYW1l
dGVyKHNlbGYuX1dJTkRPV19CSVRTX1BBUkFNKToKKyAgICAgICAgICAgIHdpbmRvd19iaXRzID0g
c2VsZi5fcmVxdWVzdC5nZXRfcGFyYW1ldGVyX3ZhbHVlKAorICAgICAgICAgICAgICAgIHNlbGYu
X1dJTkRPV19CSVRTX1BBUkFNKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHdp
bmRvd19iaXRzID0gX3BhcnNlX3dpbmRvd19iaXRzKHdpbmRvd19iaXRzKQorICAgICAgICAgICAg
ZXhjZXB0IFZhbHVlRXJyb3IsIGU6CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAg
ICAgICBub19jb250ZXh0X3Rha2VvdmVyID0gc2VsZi5fcmVxdWVzdC5oYXNfcGFyYW1ldGVyKAor
ICAgICAgICAgICAgc2VsZi5fTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSkKKyAgICAgICAgaWYg
KG5vX2NvbnRleHRfdGFrZW92ZXIgYW5kCisgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmdldF9w
YXJhbWV0ZXJfdmFsdWUoCisgICAgICAgICAgICAgICAgc2VsZi5fTk9fQ09OVEVYVF9UQUtFT1ZF
Ul9QQVJBTSkgaXMgbm90IE5vbmUpOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAg
ICBzZWxmLl9yZmMxOTc5X2RlZmxhdGVyID0gdXRpbC5fUkZDMTk3OURlZmxhdGVyKAorICAgICAg
ICAgICAgd2luZG93X2JpdHMsIG5vX2NvbnRleHRfdGFrZW92ZXIpCisKKyAgICAgICAgc2VsZi5f
cmZjMTk3OV9pbmZsYXRlciA9IHV0aWwuX1JGQzE5NzlJbmZsYXRlcigpCisKKyAgICAgICAgc2Vs
Zi5fY29tcHJlc3Nfb3V0Z29pbmcgPSBUcnVlCisKKyAgICAgICAgcmVzcG9uc2UgPSBjb21tb24u
RXh0ZW5zaW9uUGFyYW1ldGVyKHNlbGYuX3JlcXVlc3QubmFtZSgpKQorCisgICAgICAgIGlmIHNl
bGYuX3Jlc3BvbnNlX3dpbmRvd19iaXRzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmVzcG9u
c2UuYWRkX3BhcmFtZXRlcigKKyAgICAgICAgICAgICAgICBzZWxmLl9XSU5ET1dfQklUU19QQVJB
TSwgc3RyKHNlbGYuX3Jlc3BvbnNlX3dpbmRvd19iaXRzKSkKKyAgICAgICAgaWYgc2VsZi5fcmVz
cG9uc2Vfbm9fY29udGV4dF90YWtlb3ZlcjoKKyAgICAgICAgICAgIHJlc3BvbnNlLmFkZF9wYXJh
bWV0ZXIoCisgICAgICAgICAgICAgICAgc2VsZi5fTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSwg
Tm9uZSkKKworICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAnRW5hYmxl
ICVzIGV4dGVuc2lvbiAoJworICAgICAgICAgICAgJ3JlcXVlc3Q6IHdpbmRvd19iaXRzPSVzOyBu
b19jb250ZXh0X3Rha2VvdmVyPSVyLCAnCisgICAgICAgICAgICAncmVzcG9uc2U6IHdpbmRvd193
Yml0cz0lczsgbm9fY29udGV4dF90YWtlb3Zlcj0lciknICUKKyAgICAgICAgICAgIChzZWxmLl9y
ZXF1ZXN0Lm5hbWUoKSwKKyAgICAgICAgICAgICB3aW5kb3dfYml0cywKKyAgICAgICAgICAgICBu
b19jb250ZXh0X3Rha2VvdmVyLAorICAgICAgICAgICAgIHNlbGYuX3Jlc3BvbnNlX3dpbmRvd19i
aXRzLAorICAgICAgICAgICAgIHNlbGYuX3Jlc3BvbnNlX25vX2NvbnRleHRfdGFrZW92ZXIpKQor
CisgICAgICAgIHJldHVybiByZXNwb25zZQorCisgICAgZGVmIF9zZXR1cF9zdHJlYW1fb3B0aW9u
c19pbnRlcm5hbChzZWxmLCBzdHJlYW1fb3B0aW9ucyk6CisKKyAgICAgICAgY2xhc3MgX091dGdv
aW5nRmlsdGVyKG9iamVjdCk6CisKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJl
bnQpOgorICAgICAgICAgICAgICAgIHNlbGYuX3BhcmVudCA9IHBhcmVudAorCisgICAgICAgICAg
ICBkZWYgZmlsdGVyKHNlbGYsIGZyYW1lKToKKyAgICAgICAgICAgICAgICBzZWxmLl9wYXJlbnQu
X291dGdvaW5nX2ZpbHRlcihmcmFtZSkKKworICAgICAgICBjbGFzcyBfSW5jb21pbmdGaWx0ZXIo
b2JqZWN0KToKKworICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCk6CisgICAg
ICAgICAgICAgICAgc2VsZi5fcGFyZW50ID0gcGFyZW50CisKKyAgICAgICAgICAgIGRlZiBmaWx0
ZXIoc2VsZiwgZnJhbWUpOgorICAgICAgICAgICAgICAgIHNlbGYuX3BhcmVudC5faW5jb21pbmdf
ZmlsdGVyKGZyYW1lKQorCisgICAgICAgIHN0cmVhbV9vcHRpb25zLm91dGdvaW5nX2ZyYW1lX2Zp
bHRlcnMuYXBwZW5kKAorICAgICAgICAgICAgX091dGdvaW5nRmlsdGVyKHNlbGYpKQorICAgICAg
ICBzdHJlYW1fb3B0aW9ucy5pbmNvbWluZ19mcmFtZV9maWx0ZXJzLmluc2VydCgKKyAgICAgICAg
ICAgIDAsIF9JbmNvbWluZ0ZpbHRlcihzZWxmKSkKKworICAgIGRlZiBzZXRfcmVzcG9uc2Vfd2lu
ZG93X2JpdHMoc2VsZiwgdmFsdWUpOgorICAgICAgICBzZWxmLl9yZXNwb25zZV93aW5kb3dfYml0
cyA9IHZhbHVlCisKKyAgICBkZWYgc2V0X3Jlc3BvbnNlX25vX2NvbnRleHRfdGFrZW92ZXIoc2Vs
ZiwgdmFsdWUpOgorICAgICAgICBzZWxmLl9yZXNwb25zZV9ub19jb250ZXh0X3Rha2VvdmVyID0g
dmFsdWUKKworICAgIGRlZiBzZXRfYmZpbmFsKHNlbGYsIHZhbHVlKToKKyAgICAgICAgc2VsZi5f
YmZpbmFsID0gdmFsdWUKKworICAgIGRlZiBlbmFibGVfb3V0Z29pbmdfY29tcHJlc3Npb24oc2Vs
Zik6CisgICAgICAgIHNlbGYuX2NvbXByZXNzX291dGdvaW5nID0gVHJ1ZQorCisgICAgZGVmIGRp
c2FibGVfb3V0Z29pbmdfY29tcHJlc3Npb24oc2VsZik6CisgICAgICAgIHNlbGYuX2NvbXByZXNz
X291dGdvaW5nID0gRmFsc2UKKworICAgIGRlZiBfb3V0Z29pbmdfZmlsdGVyKHNlbGYsIGZyYW1l
KToKKyAgICAgICAgIiIiVHJhbnNmb3JtIG91dGdvaW5nIGZyYW1lcy4gVGhpcyBtZXRob2QgaXMg
Y2FsbGVkIG9ubHkgYnkKKyAgICAgICAgYW4gX091dGdvaW5nRmlsdGVyIGluc3RhbmNlLgorICAg
ICAgICAiIiIKKworICAgICAgICBvcmlnaW5hbF9wYXlsb2FkX3NpemUgPSBsZW4oZnJhbWUucGF5
bG9hZCkKKyAgICAgICAgc2VsZi5fb3V0Z29pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFk
ZF9vcmlnaW5hbF9ieXRlcygKKyAgICAgICAgICAgICAgICBvcmlnaW5hbF9wYXlsb2FkX3NpemUp
CisKKyAgICAgICAgaWYgKG5vdCBzZWxmLl9jb21wcmVzc19vdXRnb2luZyBvcgorICAgICAgICAg
ICAgY29tbW9uLmlzX2NvbnRyb2xfb3Bjb2RlKGZyYW1lLm9wY29kZSkpOgorICAgICAgICAgICAg
c2VsZi5fb3V0Z29pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFkZF9yZXN1bHRfYnl0ZXMo
CisgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsX3BheWxvYWRfc2l6ZSkKKyAgICAgICAgICAg
IHJldHVybgorCisgICAgICAgIGZyYW1lLnBheWxvYWQgPSBzZWxmLl9yZmMxOTc5X2RlZmxhdGVy
LmZpbHRlcigKKyAgICAgICAgICAgIGZyYW1lLnBheWxvYWQsIGJmaW5hbD1zZWxmLl9iZmluYWwp
CisgICAgICAgIGZyYW1lLnJzdjEgPSAxCisKKyAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXpl
ID0gbGVuKGZyYW1lLnBheWxvYWQpCisgICAgICAgIHNlbGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0
aW9fY2FsY3VsYXRvci5hZGRfcmVzdWx0X2J5dGVzKAorICAgICAgICAgICAgICAgIGZpbHRlcmVk
X3BheWxvYWRfc2l6ZSkKKworICAgICAgICBfbG9nX291dGdvaW5nX2NvbXByZXNzaW9uX3JhdGlv
KAorICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlciwKKyAgICAgICAgICAgICAgICBvcmlnaW5h
bF9wYXlsb2FkX3NpemUsCisgICAgICAgICAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplLAor
ICAgICAgICAgICAgICAgIHNlbGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5n
ZXRfYXZlcmFnZV9yYXRpbygpKQorCisgICAgZGVmIF9pbmNvbWluZ19maWx0ZXIoc2VsZiwgZnJh
bWUpOgorICAgICAgICAiIiJUcmFuc2Zvcm0gaW5jb21pbmcgZnJhbWVzLiBUaGlzIG1ldGhvZCBp
cyBjYWxsZWQgb25seSBieQorICAgICAgICBhbiBfSW5jb21pbmdGaWx0ZXIgaW5zdGFuY2UuCisg
ICAgICAgICIiIgorCisgICAgICAgIHJlY2VpdmVkX3BheWxvYWRfc2l6ZSA9IGxlbihmcmFtZS5w
YXlsb2FkKQorICAgICAgICBzZWxmLl9pbmNvbWluZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3Iu
YWRkX3Jlc3VsdF9ieXRlcygKKyAgICAgICAgICAgICAgICByZWNlaXZlZF9wYXlsb2FkX3NpemUp
CisKKyAgICAgICAgaWYgZnJhbWUucnN2MSAhPSAxIG9yIGNvbW1vbi5pc19jb250cm9sX29wY29k
ZShmcmFtZS5vcGNvZGUpOgorICAgICAgICAgICAgc2VsZi5faW5jb21pbmdfYXZlcmFnZV9yYXRp
b19jYWxjdWxhdG9yLmFkZF9vcmlnaW5hbF9ieXRlcygKKyAgICAgICAgICAgICAgICAgICAgcmVj
ZWl2ZWRfcGF5bG9hZF9zaXplKQorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgZnJhbWUu
cGF5bG9hZCA9IHNlbGYuX3JmYzE5NzlfaW5mbGF0ZXIuZmlsdGVyKGZyYW1lLnBheWxvYWQpCisg
ICAgICAgIGZyYW1lLnJzdjEgPSAwCisKKyAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplID0g
bGVuKGZyYW1lLnBheWxvYWQpCisgICAgICAgIHNlbGYuX2luY29taW5nX2F2ZXJhZ2VfcmF0aW9f
Y2FsY3VsYXRvci5hZGRfb3JpZ2luYWxfYnl0ZXMoCisgICAgICAgICAgICAgICAgZmlsdGVyZWRf
cGF5bG9hZF9zaXplKQorCisgICAgICAgIF9sb2dfaW5jb21pbmdfY29tcHJlc3Npb25fcmF0aW8o
CisgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLAorICAgICAgICAgICAgICAgIHJlY2VpdmVk
X3BheWxvYWRfc2l6ZSwKKyAgICAgICAgICAgICAgICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUsCisg
ICAgICAgICAgICAgICAgc2VsZi5faW5jb21pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmdl
dF9hdmVyYWdlX3JhdGlvKCkpCisKKworX2F2YWlsYWJsZV9wcm9jZXNzb3JzW2NvbW1vbi5ERUZM
QVRFX0ZSQU1FX0VYVEVOU0lPTl0gPSAoCisgICAgRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vz
c29yKQorX2NvbXByZXNzaW9uX2V4dGVuc2lvbl9uYW1lcy5hcHBlbmQoY29tbW9uLkRFRkxBVEVf
RlJBTUVfRVhURU5TSU9OKQorCitfYXZhaWxhYmxlX3Byb2Nlc3NvcnNbY29tbW9uLlhfV0VCS0lU
X0RFRkxBVEVfRlJBTUVfRVhURU5TSU9OXSA9ICgKKyAgICBEZWZsYXRlRnJhbWVFeHRlbnNpb25Q
cm9jZXNzb3IpCitfY29tcHJlc3Npb25fZXh0ZW5zaW9uX25hbWVzLmFwcGVuZChjb21tb24uWF9X
RUJLSVRfREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCisKKworY2xhc3MgUGVyTWVzc2FnZURlZmxh
dGVFeHRlbnNpb25Qcm9jZXNzb3IoRXh0ZW5zaW9uUHJvY2Vzc29ySW50ZXJmYWNlKToKKyAgICAi
IiJwZXJtZXNzYWdlLWRlZmxhdGUgZXh0ZW5zaW9uIHByb2Nlc3Nvci4KKworICAgIFNwZWNpZmlj
YXRpb246CisgICAgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1oeWJpLXBl
cm1lc3NhZ2UtY29tcHJlc3Npb24tMDgKKyAgICAiIiIKKworICAgIF9TRVJWRVJfTUFYX1dJTkRP
V19CSVRTX1BBUkFNID0gJ3NlcnZlcl9tYXhfd2luZG93X2JpdHMnCisgICAgX1NFUlZFUl9OT19D
T05URVhUX1RBS0VPVkVSX1BBUkFNID0gJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJworICAg
IF9DTElFTlRfTUFYX1dJTkRPV19CSVRTX1BBUkFNID0gJ2NsaWVudF9tYXhfd2luZG93X2JpdHMn
CisgICAgX0NMSUVOVF9OT19DT05URVhUX1RBS0VPVkVSX1BBUkFNID0gJ2NsaWVudF9ub19jb250
ZXh0X3Rha2VvdmVyJworCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QpOgorICAgICAg
ICAiIiJDb25zdHJ1Y3QgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IuIiIiCisK
KyAgICAgICAgRXh0ZW5zaW9uUHJvY2Vzc29ySW50ZXJmYWNlLl9faW5pdF9fKHNlbGYsIHJlcXVl
c3QpCisgICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQor
CisgICAgICAgIHNlbGYuX3ByZWZlcnJlZF9jbGllbnRfbWF4X3dpbmRvd19iaXRzID0gTm9uZQor
ICAgICAgICBzZWxmLl9jbGllbnRfbm9fY29udGV4dF90YWtlb3ZlciA9IEZhbHNlCisKKyAgICBk
ZWYgbmFtZShzZWxmKToKKyAgICAgICAgIyBUaGlzIG1ldGhvZCByZXR1cm5zICJkZWZsYXRlIiAo
bm90ICJwZXJtZXNzYWdlLWRlZmxhdGUiKSBmb3IKKyAgICAgICAgIyBjb21wYXRpYmlsaXR5Lgor
ICAgICAgICByZXR1cm4gJ2RlZmxhdGUnCisKKyAgICBkZWYgX2dldF9leHRlbnNpb25fcmVzcG9u
c2VfaW50ZXJuYWwoc2VsZik6CisgICAgICAgIGZvciBuYW1lIGluIHNlbGYuX3JlcXVlc3QuZ2V0
X3BhcmFtZXRlcl9uYW1lcygpOgorICAgICAgICAgICAgaWYgbmFtZSBub3QgaW4gW3NlbGYuX1NF
UlZFUl9NQVhfV0lORE9XX0JJVFNfUEFSQU0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZi5fU0VSVkVSX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fQ0xJRU5UX01BWF9XSU5ET1dfQklUU19QQVJBTV06CisgICAgICAg
ICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdVbmtub3duIHBhcmFtZXRlcjogJXInLCBuYW1l
KQorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgc2VydmVyX21heF93aW5k
b3dfYml0cyA9IE5vbmUKKyAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5oYXNfcGFyYW1ldGVyKHNl
bGYuX1NFUlZFUl9NQVhfV0lORE9XX0JJVFNfUEFSQU0pOgorICAgICAgICAgICAgc2VydmVyX21h
eF93aW5kb3dfYml0cyA9IHNlbGYuX3JlcXVlc3QuZ2V0X3BhcmFtZXRlcl92YWx1ZSgKKyAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fU0VSVkVSX01BWF9XSU5ET1dfQklUU19QQVJBTSkKKyAgICAg
ICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzID0gX3Bh
cnNlX3dpbmRvd19iaXRzKAorICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfbWF4X3dpbmRvd19i
aXRzKQorICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IsIGU6CisgICAgICAgICAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKCdCYWQgJXMgcGFyYW1ldGVyOiAlcicsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX1NFUlZFUl9NQVhfV0lORE9XX0JJVFNfUEFSQU0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUpCisgICAgICAgICAgICAgICAg
cmV0dXJuIE5vbmUKKworICAgICAgICBzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlciA9IHNlbGYu
X3JlcXVlc3QuaGFzX3BhcmFtZXRlcigKKyAgICAgICAgICAgIHNlbGYuX1NFUlZFUl9OT19DT05U
RVhUX1RBS0VPVkVSX1BBUkFNKQorICAgICAgICBpZiAoc2VydmVyX25vX2NvbnRleHRfdGFrZW92
ZXIgYW5kCisgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmdldF9wYXJhbWV0ZXJfdmFsdWUoCisg
ICAgICAgICAgICAgICAgc2VsZi5fU0VSVkVSX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0pIGlz
IG5vdCBOb25lKToKKyAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMgcGFyYW1ldGVy
IG11c3Qgbm90IGhhdmUgYSB2YWx1ZTogJXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYuX1NFUlZFUl9OT19DT05URVhUX1RBS0VPVkVSX1BBUkFNLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyKQorICAgICAgICAg
ICAgcmV0dXJuIE5vbmUKKworICAgICAgICAjIGNsaWVudF9tYXhfd2luZG93X2JpdHMgZnJvbSBh
IGNsaWVudCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgY2xpZW50IGNhbgorICAgICAgICAjIGFjY2Vw
dCBjbGllbnRfbWF4X3dpbmRvd19iaXRzIGZyb20gYSBzZXJ2ZXIgb3Igbm90LgorICAgICAgICBj
bGllbnRfY2xpZW50X21heF93aW5kb3dfYml0cyA9IHNlbGYuX3JlcXVlc3QuaGFzX3BhcmFtZXRl
cigKKyAgICAgICAgICAgIHNlbGYuX0NMSUVOVF9NQVhfV0lORE9XX0JJVFNfUEFSQU0pCisgICAg
ICAgIGlmIChjbGllbnRfY2xpZW50X21heF93aW5kb3dfYml0cyBhbmQKKyAgICAgICAgICAgIHNl
bGYuX3JlcXVlc3QuZ2V0X3BhcmFtZXRlcl92YWx1ZSgKKyAgICAgICAgICAgICAgICBzZWxmLl9D
TElFTlRfTUFYX1dJTkRPV19CSVRTX1BBUkFNKSBpcyBub3QgTm9uZSk6CisgICAgICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoJyVzIHBhcmFtZXRlciBtdXN0IG5vdCBoYXZlIGEgdmFsdWUgaW4g
YSAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NsaWVudFwncyBvcGVuaW5nIGhh
bmRzaGFrZTogJXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX0NMSUVO
VF9NQVhfV0lORE9XX0JJVFNfUEFSQU0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xpZW50X2NsaWVudF9tYXhfd2luZG93X2JpdHMpCisgICAgICAgICAgICByZXR1cm4gTm9uZQor
CisgICAgICAgIHNlbGYuX3JmYzE5NzlfZGVmbGF0ZXIgPSB1dGlsLl9SRkMxOTc5RGVmbGF0ZXIo
CisgICAgICAgICAgICBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzLCBzZXJ2ZXJfbm9fY29udGV4dF90
YWtlb3ZlcikKKworICAgICAgICAjIE5vdGUgdGhhdCB3ZSBwcmVwYXJlIGZvciBpbmNvbWluZyBt
ZXNzYWdlcyBjb21wcmVzc2VkIHdpdGggd2luZG93CisgICAgICAgICMgYml0cyB1cHRvIDE1IHJl
Z2FyZGxlc3Mgb2YgdGhlIGNsaWVudF9tYXhfd2luZG93X2JpdHMgdmFsdWUgdG8gYmUKKyAgICAg
ICAgIyBzZW50IHRvIHRoZSBjbGllbnQuCisgICAgICAgIHNlbGYuX3JmYzE5NzlfaW5mbGF0ZXIg
PSB1dGlsLl9SRkMxOTc5SW5mbGF0ZXIoKQorCisgICAgICAgIHNlbGYuX2ZyYW1lciA9IF9QZXJN
ZXNzYWdlRGVmbGF0ZUZyYW1lcigKKyAgICAgICAgICAgIHNlcnZlcl9tYXhfd2luZG93X2JpdHMs
IHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyKQorICAgICAgICBzZWxmLl9mcmFtZXIuc2V0X2Jm
aW5hbChGYWxzZSkKKyAgICAgICAgc2VsZi5fZnJhbWVyLnNldF9jb21wcmVzc19vdXRnb2luZ19l
bmFibGVkKFRydWUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1l
dGVyKHNlbGYuX3JlcXVlc3QubmFtZSgpKQorCisgICAgICAgIGlmIHNlcnZlcl9tYXhfd2luZG93
X2JpdHMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICByZXNwb25zZS5hZGRfcGFyYW1ldGVyKAor
ICAgICAgICAgICAgICAgIHNlbGYuX1NFUlZFUl9NQVhfV0lORE9XX0JJVFNfUEFSQU0sCisgICAg
ICAgICAgICAgICAgc3RyKHNlcnZlcl9tYXhfd2luZG93X2JpdHMpKQorCisgICAgICAgIGlmIHNl
cnZlcl9ub19jb250ZXh0X3Rha2VvdmVyOgorICAgICAgICAgICAgcmVzcG9uc2UuYWRkX3BhcmFt
ZXRlcigKKyAgICAgICAgICAgICAgICBzZWxmLl9TRVJWRVJfTk9fQ09OVEVYVF9UQUtFT1ZFUl9Q
QVJBTSwgTm9uZSkKKworICAgICAgICBpZiBzZWxmLl9wcmVmZXJyZWRfY2xpZW50X21heF93aW5k
b3dfYml0cyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGlmIG5vdCBjbGllbnRfY2xpZW50X21h
eF93aW5kb3dfYml0czoKKyAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1Byb2Nl
c3NvciBpcyBjb25maWd1cmVkIHRvIHVzZSAlcyBidXQgJworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAndGhlIGNsaWVudCBjYW5ub3QgYWNjZXB0IGl0JywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fQ0xJRU5UX01BWF9XSU5ET1dfQklUU19QQVJB
TSkKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICAgICAgcmVzcG9uc2UuYWRk
X3BhcmFtZXRlcigKKyAgICAgICAgICAgICAgICBzZWxmLl9DTElFTlRfTUFYX1dJTkRPV19CSVRT
X1BBUkFNLAorICAgICAgICAgICAgICAgIHN0cihzZWxmLl9wcmVmZXJyZWRfY2xpZW50X21heF93
aW5kb3dfYml0cykpCisKKyAgICAgICAgaWYgc2VsZi5fY2xpZW50X25vX2NvbnRleHRfdGFrZW92
ZXI6CisgICAgICAgICAgICByZXNwb25zZS5hZGRfcGFyYW1ldGVyKAorICAgICAgICAgICAgICAg
IHNlbGYuX0NMSUVOVF9OT19DT05URVhUX1RBS0VPVkVSX1BBUkFNLCBOb25lKQorCisgICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygKKyAgICAgICAgICAgICdFbmFibGUgJXMgZXh0ZW5zaW9uICgn
CisgICAgICAgICAgICAncmVxdWVzdDogc2VydmVyX21heF93aW5kb3dfYml0cz0lczsgJworICAg
ICAgICAgICAgJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyPSVyLCAnCisgICAgICAgICAgICAn
cmVzcG9uc2U6IGNsaWVudF9tYXhfd2luZG93X2JpdHM9JXM7ICcKKyAgICAgICAgICAgICdjbGll
bnRfbm9fY29udGV4dF90YWtlb3Zlcj0lciknICUKKyAgICAgICAgICAgIChzZWxmLl9yZXF1ZXN0
Lm5hbWUoKSwKKyAgICAgICAgICAgICBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzLAorICAgICAgICAg
ICAgIHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyLAorICAgICAgICAgICAgIHNlbGYuX3ByZWZl
cnJlZF9jbGllbnRfbWF4X3dpbmRvd19iaXRzLAorICAgICAgICAgICAgIHNlbGYuX2NsaWVudF9u
b19jb250ZXh0X3Rha2VvdmVyKSkKKworICAgICAgICByZXR1cm4gcmVzcG9uc2UKKworICAgIGRl
ZiBfc2V0dXBfc3RyZWFtX29wdGlvbnNfaW50ZXJuYWwoc2VsZiwgc3RyZWFtX29wdGlvbnMpOgor
ICAgICAgICBzZWxmLl9mcmFtZXIuc2V0dXBfc3RyZWFtX29wdGlvbnMoc3RyZWFtX29wdGlvbnMp
CisKKyAgICBkZWYgc2V0X2NsaWVudF9tYXhfd2luZG93X2JpdHMoc2VsZiwgdmFsdWUpOgorICAg
ICAgICAiIiJJZiB0aGlzIG9wdGlvbiBpcyBzcGVjaWZpZWQsIHRoaXMgY2xhc3MgYWRkcyB0aGUK
KyAgICAgICAgY2xpZW50X21heF93aW5kb3dfYml0cyBleHRlbnNpb24gcGFyYW1ldGVyIHRvIHRo
ZSBoYW5kc2hha2UgcmVzcG9uc2UsCisgICAgICAgIGJ1dCBkb2Vzbid0IHJlZHVjZSB0aGUgTFo3
NyBzbGlkaW5nIHdpbmRvdyBzaXplIG9mIGl0cyBpbmZsYXRlci4KKyAgICAgICAgSS5lLiwgeW91
IGNhbiB1c2UgdGhpcyBmb3IgdGVzdGluZyBjbGllbnQgaW1wbGVtZW50YXRpb24gYnV0IGNhbm5v
dAorICAgICAgICByZWR1Y2UgbWVtb3J5IHVzYWdlIG9mIHRoaXMgY2xhc3MuCisKKyAgICAgICAg
SWYgdGhpcyBtZXRob2QgaGFzIGJlZW4gY2FsbGVkIHdpdGggVHJ1ZSBhbmQgYW4gb2ZmZXIgd2l0
aG91dCB0aGUKKyAgICAgICAgY2xpZW50X21heF93aW5kb3dfYml0cyBleHRlbnNpb24gcGFyYW1l
dGVyIGlzIHJlY2VpdmVkLAorICAgICAgICAtIChXaGVuIHByb2Nlc3NpbmcgdGhlIHBlcm1lc3Nh
Z2UtZGVmbGF0ZSBleHRlbnNpb24pIHRoaXMgcHJvY2Vzc29yCisgICAgICAgICAgZGVjbGluZXMg
dGhlIHJlcXVlc3QuCisgICAgICAgIC0gKFdoZW4gcHJvY2Vzc2luZyB0aGUgcGVybWVzc2FnZS1j
b21wcmVzcyBleHRlbnNpb24pIHRoaXMgcHJvY2Vzc29yCisgICAgICAgICAgYWNjZXB0cyB0aGUg
cmVxdWVzdC4KKyAgICAgICAgIiIiCisKKyAgICAgICAgc2VsZi5fcHJlZmVycmVkX2NsaWVudF9t
YXhfd2luZG93X2JpdHMgPSB2YWx1ZQorCisgICAgZGVmIHNldF9jbGllbnRfbm9fY29udGV4dF90
YWtlb3ZlcihzZWxmLCB2YWx1ZSk6CisgICAgICAgICIiIklmIHRoaXMgb3B0aW9uIGlzIHNwZWNp
ZmllZCwgdGhpcyBjbGFzcyBhZGRzIHRoZQorICAgICAgICBjbGllbnRfbm9fY29udGV4dF90YWtl
b3ZlciBleHRlbnNpb24gcGFyYW1ldGVyIHRvIHRoZSBoYW5kc2hha2UKKyAgICAgICAgcmVzcG9u
c2UsIGJ1dCBkb2Vzbid0IHJlc2V0IGluZmxhdGVyIGZvciBlYWNoIG1lc3NhZ2UuIEkuZS4sIHlv
dSBjYW4KKyAgICAgICAgdXNlIHRoaXMgZm9yIHRlc3RpbmcgY2xpZW50IGltcGxlbWVudGF0aW9u
IGJ1dCBjYW5ub3QgcmVkdWNlIG1lbW9yeQorICAgICAgICB1c2FnZSBvZiB0aGlzIGNsYXNzLgor
ICAgICAgICAiIiIKKworICAgICAgICBzZWxmLl9jbGllbnRfbm9fY29udGV4dF90YWtlb3ZlciA9
IHZhbHVlCisKKyAgICBkZWYgc2V0X2JmaW5hbChzZWxmLCB2YWx1ZSk6CisgICAgICAgIHNlbGYu
X2ZyYW1lci5zZXRfYmZpbmFsKHZhbHVlKQorCisgICAgZGVmIGVuYWJsZV9vdXRnb2luZ19jb21w
cmVzc2lvbihzZWxmKToKKyAgICAgICAgc2VsZi5fZnJhbWVyLnNldF9jb21wcmVzc19vdXRnb2lu
Z19lbmFibGVkKFRydWUpCisKKyAgICBkZWYgZGlzYWJsZV9vdXRnb2luZ19jb21wcmVzc2lvbihz
ZWxmKToKKyAgICAgICAgc2VsZi5fZnJhbWVyLnNldF9jb21wcmVzc19vdXRnb2luZ19lbmFibGVk
KEZhbHNlKQorCisKK2NsYXNzIF9QZXJNZXNzYWdlRGVmbGF0ZUZyYW1lcihvYmplY3QpOgorICAg
ICIiIkEgZnJhbWVyIGZvciBleHRlbnNpb25zIHdpdGggcGVyLW1lc3NhZ2UgREVGTEFURSBmZWF0
dXJlLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRlZmxhdGVfbWF4X3dpbmRvd19iaXRz
LCBkZWZsYXRlX25vX2NvbnRleHRfdGFrZW92ZXIpOgorICAgICAgICBzZWxmLl9sb2dnZXIgPSB1
dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKKworICAgICAgICBzZWxmLl9yZmMxOTc5X2RlZmxh
dGVyID0gdXRpbC5fUkZDMTk3OURlZmxhdGVyKAorICAgICAgICAgICAgZGVmbGF0ZV9tYXhfd2lu
ZG93X2JpdHMsIGRlZmxhdGVfbm9fY29udGV4dF90YWtlb3ZlcikKKworICAgICAgICBzZWxmLl9y
ZmMxOTc5X2luZmxhdGVyID0gdXRpbC5fUkZDMTk3OUluZmxhdGVyKCkKKworICAgICAgICBzZWxm
Ll9iZmluYWwgPSBGYWxzZQorCisgICAgICAgIHNlbGYuX2NvbXByZXNzX291dGdvaW5nX2VuYWJs
ZWQgPSBGYWxzZQorCisgICAgICAgICMgVHJ1ZSBpZiBhIG1lc3NhZ2UgaXMgZnJhZ21lbnRlZCBh
bmQgY29tcHJlc3Npb24gaXMgb25nb2luZy4KKyAgICAgICAgc2VsZi5fY29tcHJlc3Nfb25nb2lu
ZyA9IEZhbHNlCisKKyAgICAgICAgIyBDYWxjdWxhdGVzCisgICAgICAgICMgICAgIChUb3RhbCBv
dXRnb2luZyBieXRlcyBzdXBwbGllZCB0byB0aGlzIGZpbHRlcikgLworICAgICAgICAjICAgICAo
VG90YWwgYnl0ZXMgc2VudCB0byB0aGUgbmV0d29yayBhZnRlciBhcHBseWluZyB0aGlzIGZpbHRl
cikKKyAgICAgICAgc2VsZi5fb3V0Z29pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yID0gX0F2
ZXJhZ2VSYXRpb0NhbGN1bGF0b3IoKQorCisgICAgICAgICMgQ2FsY3VsYXRlcworICAgICAgICAj
ICAgICAoVG90YWwgYnl0ZXMgcmVjZWl2ZWQgZnJvbSB0aGUgbmV0d29yaykgLworICAgICAgICAj
ICAgICAoVG90YWwgaW5jb21pbmcgYnl0ZXMgb2J0YWluZWQgYWZ0ZXIgYXBwbHlpbmcgdGhpcyBm
aWx0ZXIpCisgICAgICAgIHNlbGYuX2luY29taW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvciA9
IF9BdmVyYWdlUmF0aW9DYWxjdWxhdG9yKCkKKworICAgIGRlZiBzZXRfYmZpbmFsKHNlbGYsIHZh
bHVlKToKKyAgICAgICAgc2VsZi5fYmZpbmFsID0gdmFsdWUKKworICAgIGRlZiBzZXRfY29tcHJl
c3Nfb3V0Z29pbmdfZW5hYmxlZChzZWxmLCB2YWx1ZSk6CisgICAgICAgIHNlbGYuX2NvbXByZXNz
X291dGdvaW5nX2VuYWJsZWQgPSB2YWx1ZQorCisgICAgZGVmIF9wcm9jZXNzX2luY29taW5nX21l
c3NhZ2Uoc2VsZiwgbWVzc2FnZSwgZGVjb21wcmVzcyk6CisgICAgICAgIGlmIG5vdCBkZWNvbXBy
ZXNzOgorICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2UKKworICAgICAgICByZWNlaXZlZF9wYXls
b2FkX3NpemUgPSBsZW4obWVzc2FnZSkKKyAgICAgICAgc2VsZi5faW5jb21pbmdfYXZlcmFnZV9y
YXRpb19jYWxjdWxhdG9yLmFkZF9yZXN1bHRfYnl0ZXMoCisgICAgICAgICAgICAgICAgcmVjZWl2
ZWRfcGF5bG9hZF9zaXplKQorCisgICAgICAgIG1lc3NhZ2UgPSBzZWxmLl9yZmMxOTc5X2luZmxh
dGVyLmZpbHRlcihtZXNzYWdlKQorCisgICAgICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6ZSA9IGxl
bihtZXNzYWdlKQorICAgICAgICBzZWxmLl9pbmNvbWluZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0
b3IuYWRkX29yaWdpbmFsX2J5dGVzKAorICAgICAgICAgICAgICAgIGZpbHRlcmVkX3BheWxvYWRf
c2l6ZSkKKworICAgICAgICBfbG9nX2luY29taW5nX2NvbXByZXNzaW9uX3JhdGlvKAorICAgICAg
ICAgICAgICAgIHNlbGYuX2xvZ2dlciwKKyAgICAgICAgICAgICAgICByZWNlaXZlZF9wYXlsb2Fk
X3NpemUsCisgICAgICAgICAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplLAorICAgICAgICAg
ICAgICAgIHNlbGYuX2luY29taW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5nZXRfYXZlcmFn
ZV9yYXRpbygpKQorCisgICAgICAgIHJldHVybiBtZXNzYWdlCisKKyAgICBkZWYgX3Byb2Nlc3Nf
b3V0Z29pbmdfbWVzc2FnZShzZWxmLCBtZXNzYWdlLCBlbmQsIGJpbmFyeSk6CisgICAgICAgIGlm
IG5vdCBiaW5hcnk6CisgICAgICAgICAgICBtZXNzYWdlID0gbWVzc2FnZS5lbmNvZGUoJ3V0Zi04
JykKKworICAgICAgICBpZiBub3Qgc2VsZi5fY29tcHJlc3Nfb3V0Z29pbmdfZW5hYmxlZDoKKyAg
ICAgICAgICAgIHJldHVybiBtZXNzYWdlCisKKyAgICAgICAgb3JpZ2luYWxfcGF5bG9hZF9zaXpl
ID0gbGVuKG1lc3NhZ2UpCisgICAgICAgIHNlbGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0aW9fY2Fs
Y3VsYXRvci5hZGRfb3JpZ2luYWxfYnl0ZXMoCisgICAgICAgICAgICBvcmlnaW5hbF9wYXlsb2Fk
X3NpemUpCisKKyAgICAgICAgbWVzc2FnZSA9IHNlbGYuX3JmYzE5NzlfZGVmbGF0ZXIuZmlsdGVy
KAorICAgICAgICAgICAgbWVzc2FnZSwgZW5kPWVuZCwgYmZpbmFsPXNlbGYuX2JmaW5hbCkKKwor
ICAgICAgICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUgPSBsZW4obWVzc2FnZSkKKyAgICAgICAgc2Vs
Zi5fb3V0Z29pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFkZF9yZXN1bHRfYnl0ZXMoCisg
ICAgICAgICAgICBmaWx0ZXJlZF9wYXlsb2FkX3NpemUpCisKKyAgICAgICAgX2xvZ19vdXRnb2lu
Z19jb21wcmVzc2lvbl9yYXRpbygKKyAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIsCisgICAg
ICAgICAgICAgICAgb3JpZ2luYWxfcGF5bG9hZF9zaXplLAorICAgICAgICAgICAgICAgIGZpbHRl
cmVkX3BheWxvYWRfc2l6ZSwKKyAgICAgICAgICAgICAgICBzZWxmLl9vdXRnb2luZ19hdmVyYWdl
X3JhdGlvX2NhbGN1bGF0b3IuZ2V0X2F2ZXJhZ2VfcmF0aW8oKSkKKworICAgICAgICBpZiBub3Qg
c2VsZi5fY29tcHJlc3Nfb25nb2luZzoKKyAgICAgICAgICAgIHNlbGYuX291dGdvaW5nX2ZyYW1l
X2ZpbHRlci5zZXRfY29tcHJlc3Npb25fYml0KCkKKyAgICAgICAgc2VsZi5fY29tcHJlc3Nfb25n
b2luZyA9IG5vdCBlbmQKKyAgICAgICAgcmV0dXJuIG1lc3NhZ2UKKworICAgIGRlZiBfcHJvY2Vz
c19pbmNvbWluZ19mcmFtZShzZWxmLCBmcmFtZSk6CisgICAgICAgIGlmIGZyYW1lLnJzdjEgPT0g
MSBhbmQgbm90IGNvbW1vbi5pc19jb250cm9sX29wY29kZShmcmFtZS5vcGNvZGUpOgorICAgICAg
ICAgICAgc2VsZi5faW5jb21pbmdfbWVzc2FnZV9maWx0ZXIuZGVjb21wcmVzc19uZXh0X21lc3Nh
Z2UoKQorICAgICAgICAgICAgZnJhbWUucnN2MSA9IDAKKworICAgIGRlZiBfcHJvY2Vzc19vdXRn
b2luZ19mcmFtZShzZWxmLCBmcmFtZSwgY29tcHJlc3Npb25fYml0KToKKyAgICAgICAgaWYgKG5v
dCBjb21wcmVzc2lvbl9iaXQgb3IKKyAgICAgICAgICAgIGNvbW1vbi5pc19jb250cm9sX29wY29k
ZShmcmFtZS5vcGNvZGUpKToKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIGZyYW1lLnJz
djEgPSAxCisKKyAgICBkZWYgc2V0dXBfc3RyZWFtX29wdGlvbnMoc2VsZiwgc3RyZWFtX29wdGlv
bnMpOgorICAgICAgICAiIiJDcmVhdGVzIGZpbHRlcnMgYW5kIHNldHMgdGhlbSB0byB0aGUgU3Ry
ZWFtT3B0aW9ucy4iIiIKKworICAgICAgICBjbGFzcyBfT3V0Z29pbmdNZXNzYWdlRmlsdGVyKG9i
amVjdCk6CisKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQpOgorICAgICAg
ICAgICAgICAgIHNlbGYuX3BhcmVudCA9IHBhcmVudAorCisgICAgICAgICAgICBkZWYgZmlsdGVy
KHNlbGYsIG1lc3NhZ2UsIGVuZD1UcnVlLCBiaW5hcnk9RmFsc2UpOgorICAgICAgICAgICAgICAg
IHJldHVybiBzZWxmLl9wYXJlbnQuX3Byb2Nlc3Nfb3V0Z29pbmdfbWVzc2FnZSgKKyAgICAgICAg
ICAgICAgICAgICAgbWVzc2FnZSwgZW5kLCBiaW5hcnkpCisKKyAgICAgICAgY2xhc3MgX0luY29t
aW5nTWVzc2FnZUZpbHRlcihvYmplY3QpOgorCisgICAgICAgICAgICBkZWYgX19pbml0X18oc2Vs
ZiwgcGFyZW50KToKKyAgICAgICAgICAgICAgICBzZWxmLl9wYXJlbnQgPSBwYXJlbnQKKyAgICAg
ICAgICAgICAgICBzZWxmLl9kZWNvbXByZXNzX25leHRfbWVzc2FnZSA9IEZhbHNlCisKKyAgICAg
ICAgICAgIGRlZiBkZWNvbXByZXNzX25leHRfbWVzc2FnZShzZWxmKToKKyAgICAgICAgICAgICAg
ICBzZWxmLl9kZWNvbXByZXNzX25leHRfbWVzc2FnZSA9IFRydWUKKworICAgICAgICAgICAgZGVm
IGZpbHRlcihzZWxmLCBtZXNzYWdlKToKKyAgICAgICAgICAgICAgICBtZXNzYWdlID0gc2VsZi5f
cGFyZW50Ll9wcm9jZXNzX2luY29taW5nX21lc3NhZ2UoCisgICAgICAgICAgICAgICAgICAgIG1l
c3NhZ2UsIHNlbGYuX2RlY29tcHJlc3NfbmV4dF9tZXNzYWdlKQorICAgICAgICAgICAgICAgIHNl
bGYuX2RlY29tcHJlc3NfbmV4dF9tZXNzYWdlID0gRmFsc2UKKyAgICAgICAgICAgICAgICByZXR1
cm4gbWVzc2FnZQorCisgICAgICAgIHNlbGYuX291dGdvaW5nX21lc3NhZ2VfZmlsdGVyID0gX091
dGdvaW5nTWVzc2FnZUZpbHRlcihzZWxmKQorICAgICAgICBzZWxmLl9pbmNvbWluZ19tZXNzYWdl
X2ZpbHRlciA9IF9JbmNvbWluZ01lc3NhZ2VGaWx0ZXIoc2VsZikKKyAgICAgICAgc3RyZWFtX29w
dGlvbnMub3V0Z29pbmdfbWVzc2FnZV9maWx0ZXJzLmFwcGVuZCgKKyAgICAgICAgICAgIHNlbGYu
X291dGdvaW5nX21lc3NhZ2VfZmlsdGVyKQorICAgICAgICBzdHJlYW1fb3B0aW9ucy5pbmNvbWlu
Z19tZXNzYWdlX2ZpbHRlcnMuYXBwZW5kKAorICAgICAgICAgICAgc2VsZi5faW5jb21pbmdfbWVz
c2FnZV9maWx0ZXIpCisKKyAgICAgICAgY2xhc3MgX091dGdvaW5nRnJhbWVGaWx0ZXIob2JqZWN0
KToKKworICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCk6CisgICAgICAgICAg
ICAgICAgc2VsZi5fcGFyZW50ID0gcGFyZW50CisgICAgICAgICAgICAgICAgc2VsZi5fc2V0X2Nv
bXByZXNzaW9uX2JpdCA9IEZhbHNlCisKKyAgICAgICAgICAgIGRlZiBzZXRfY29tcHJlc3Npb25f
Yml0KHNlbGYpOgorICAgICAgICAgICAgICAgIHNlbGYuX3NldF9jb21wcmVzc2lvbl9iaXQgPSBU
cnVlCisKKyAgICAgICAgICAgIGRlZiBmaWx0ZXIoc2VsZiwgZnJhbWUpOgorICAgICAgICAgICAg
ICAgIHNlbGYuX3BhcmVudC5fcHJvY2Vzc19vdXRnb2luZ19mcmFtZSgKKyAgICAgICAgICAgICAg
ICAgICAgZnJhbWUsIHNlbGYuX3NldF9jb21wcmVzc2lvbl9iaXQpCisgICAgICAgICAgICAgICAg
c2VsZi5fc2V0X2NvbXByZXNzaW9uX2JpdCA9IEZhbHNlCisKKyAgICAgICAgY2xhc3MgX0luY29t
aW5nRnJhbWVGaWx0ZXIob2JqZWN0KToKKworICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHBhcmVudCk6CisgICAgICAgICAgICAgICAgc2VsZi5fcGFyZW50ID0gcGFyZW50CisKKyAgICAg
ICAgICAgIGRlZiBmaWx0ZXIoc2VsZiwgZnJhbWUpOgorICAgICAgICAgICAgICAgIHNlbGYuX3Bh
cmVudC5fcHJvY2Vzc19pbmNvbWluZ19mcmFtZShmcmFtZSkKKworICAgICAgICBzZWxmLl9vdXRn
b2luZ19mcmFtZV9maWx0ZXIgPSBfT3V0Z29pbmdGcmFtZUZpbHRlcihzZWxmKQorICAgICAgICBz
ZWxmLl9pbmNvbWluZ19mcmFtZV9maWx0ZXIgPSBfSW5jb21pbmdGcmFtZUZpbHRlcihzZWxmKQor
ICAgICAgICBzdHJlYW1fb3B0aW9ucy5vdXRnb2luZ19mcmFtZV9maWx0ZXJzLmFwcGVuZCgKKyAg
ICAgICAgICAgIHNlbGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRlcikKKyAgICAgICAgc3RyZWFtX29w
dGlvbnMuaW5jb21pbmdfZnJhbWVfZmlsdGVycy5hcHBlbmQoCisgICAgICAgICAgICBzZWxmLl9p
bmNvbWluZ19mcmFtZV9maWx0ZXIpCisKKyAgICAgICAgc3RyZWFtX29wdGlvbnMuZW5jb2RlX3Rl
eHRfbWVzc2FnZV90b191dGY4ID0gRmFsc2UKKworCitfYXZhaWxhYmxlX3Byb2Nlc3NvcnNbY29t
bW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT05dID0gKAorICAgICAgICBQZXJNZXNzYWdl
RGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcikKKyMgVE9ETyh0eW9zaGlubyk6IFJlb3JnYW5pemUg
Y2xhc3MgbmFtZXMuCitfY29tcHJlc3Npb25fZXh0ZW5zaW9uX25hbWVzLmFwcGVuZCgnZGVmbGF0
ZScpCisKKworY2xhc3MgTXV4RXh0ZW5zaW9uUHJvY2Vzc29yKEV4dGVuc2lvblByb2Nlc3Nvcklu
dGVyZmFjZSk6CisgICAgIiIiV2ViU29ja2V0IG11bHRpcGxleGluZyBleHRlbnNpb24gcHJvY2Vz
c29yLiIiIgorCisgICAgX1FVT1RBX1BBUkFNID0gJ3F1b3RhJworCisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHJlcXVlc3QpOgorICAgICAgICBFeHRlbnNpb25Qcm9jZXNzb3JJbnRlcmZhY2UuX19p
bml0X18oc2VsZiwgcmVxdWVzdCkKKyAgICAgICAgc2VsZi5fcXVvdGEgPSAwCisgICAgICAgIHNl
bGYuX2V4dGVuc2lvbnMgPSBbXQorCisgICAgZGVmIG5hbWUoc2VsZik6CisgICAgICAgIHJldHVy
biBjb21tb24uTVVYX0VYVEVOU0lPTgorCisgICAgZGVmIGNoZWNrX2NvbnNpc3RlbmN5X3dpdGhf
b3RoZXJfcHJvY2Vzc29ycyhzZWxmLCBwcm9jZXNzb3JzKToKKyAgICAgICAgYmVmb3JlX211eCA9
IFRydWUKKyAgICAgICAgZm9yIHByb2Nlc3NvciBpbiBwcm9jZXNzb3JzOgorICAgICAgICAgICAg
bmFtZSA9IHByb2Nlc3Nvci5uYW1lKCkKKyAgICAgICAgICAgIGlmIG5hbWUgPT0gc2VsZi5uYW1l
KCk6CisgICAgICAgICAgICAgICAgYmVmb3JlX211eCA9IEZhbHNlCisgICAgICAgICAgICAgICAg
Y29udGludWUKKyAgICAgICAgICAgIGlmIG5vdCBwcm9jZXNzb3IuaXNfYWN0aXZlKCk6CisgICAg
ICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIGJlZm9yZV9tdXg6CisgICAgICAg
ICAgICAgICAgIyBNdXggZXh0ZW5zaW9uIGNhbm5vdCBiZSB1c2VkIGFmdGVyIGV4dGVuc2lvbnMK
KyAgICAgICAgICAgICAgICAjIHRoYXQgZGVwZW5kIG9uIGZyYW1lIGJvdW5kYXJ5LCBleHRlbnNp
b24gZGF0YSBmaWVsZCwgb3IgYW55CisgICAgICAgICAgICAgICAgIyByZXNlcnZlZCBiaXRzIHdo
aWNoIGFyZSBhdHRyaWJ1dGVkIHRvIGVhY2ggZnJhbWUuCisgICAgICAgICAgICAgICAgaWYgKG5h
bWUgPT0gY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OIG9yCisgICAgICAgICAgICAgICAg
ICAgIG5hbWUgPT0gY29tbW9uLlhfV0VCS0lUX0RFRkxBVEVfRlJBTUVfRVhURU5TSU9OKToKKyAg
ICAgICAgICAgICAgICAgICAgc2VsZi5zZXRfYWN0aXZlKEZhbHNlKQorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBNdXggZXh0
ZW5zaW9uIHNob3VsZCBub3QgYmUgYXBwbGllZCBiZWZvcmUgYW55IGhpc3RvcnktYmFzZWQKKyAg
ICAgICAgICAgICAgICAjIGNvbXByZXNzaW9uIGV4dGVuc2lvbi4KKyAgICAgICAgICAgICAgICBp
ZiAobmFtZSA9PSAnZGVmbGF0ZScgb3IKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9PSBjb21t
b24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04gb3IKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9
PSBjb21tb24uWF9XRUJLSVRfREVGTEFURV9GUkFNRV9FWFRFTlNJT04pOgorICAgICAgICAgICAg
ICAgICAgICBzZWxmLnNldF9hY3RpdmUoRmFsc2UpCisgICAgICAgICAgICAgICAgICAgIHJldHVy
bgorCisgICAgZGVmIF9nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlX2ludGVybmFsKHNlbGYpOgorICAg
ICAgICBzZWxmLl9hY3RpdmUgPSBGYWxzZQorICAgICAgICBxdW90YSA9IHNlbGYuX3JlcXVlc3Qu
Z2V0X3BhcmFtZXRlcl92YWx1ZShzZWxmLl9RVU9UQV9QQVJBTSkKKyAgICAgICAgaWYgcXVvdGEg
aXMgbm90IE5vbmU6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcXVvdGEgPSBp
bnQocXVvdGEpCisgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKKyAgICAgICAgICAg
ICAgICByZXR1cm4gTm9uZQorICAgICAgICAgICAgaWYgcXVvdGEgPCAwIG9yIHF1b3RhID49IDIg
KiogMzI6CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgICAgIHNlbGYuX3F1
b3RhID0gcXVvdGEKKworICAgICAgICBzZWxmLl9hY3RpdmUgPSBUcnVlCisgICAgICAgIHJldHVy
biBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5NVVhfRVhURU5TSU9OKQorCisgICAg
ZGVmIF9zZXR1cF9zdHJlYW1fb3B0aW9uc19pbnRlcm5hbChzZWxmLCBzdHJlYW1fb3B0aW9ucyk6
CisgICAgICAgIHBhc3MKKworICAgIGRlZiBzZXRfcXVvdGEoc2VsZiwgcXVvdGEpOgorICAgICAg
ICBzZWxmLl9xdW90YSA9IHF1b3RhCisKKyAgICBkZWYgcXVvdGEoc2VsZik6CisgICAgICAgIHJl
dHVybiBzZWxmLl9xdW90YQorCisgICAgZGVmIHNldF9leHRlbnNpb25zKHNlbGYsIGV4dGVuc2lv
bnMpOgorICAgICAgICBzZWxmLl9leHRlbnNpb25zID0gZXh0ZW5zaW9ucworCisgICAgZGVmIGV4
dGVuc2lvbnMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9leHRlbnNpb25zCisKKworX2F2
YWlsYWJsZV9wcm9jZXNzb3JzW2NvbW1vbi5NVVhfRVhURU5TSU9OXSA9IE11eEV4dGVuc2lvblBy
b2Nlc3NvcgorCisKK2RlZiBnZXRfZXh0ZW5zaW9uX3Byb2Nlc3NvcihleHRlbnNpb25fcmVxdWVz
dCk6CisgICAgIiIiR2l2ZW4gYW4gRXh0ZW5zaW9uUGFyYW1ldGVyIHJlcHJlc2VudGluZyBhbiBl
eHRlbnNpb24gb2ZmZXIgcmVjZWl2ZWQKKyAgICBmcm9tIGEgY2xpZW50LCBjb25maWd1cmVzIGFu
ZCByZXR1cm5zIGFuIGluc3RhbmNlIG9mIHRoZSBjb3JyZXNwb25kaW5nCisgICAgZXh0ZW5zaW9u
IHByb2Nlc3NvciBjbGFzcy4KKyAgICAiIiIKKworICAgIHByb2Nlc3Nvcl9jbGFzcyA9IF9hdmFp
bGFibGVfcHJvY2Vzc29ycy5nZXQoZXh0ZW5zaW9uX3JlcXVlc3QubmFtZSgpKQorICAgIGlmIHBy
b2Nlc3Nvcl9jbGFzcyBpcyBOb25lOgorICAgICAgICByZXR1cm4gTm9uZQorICAgIHJldHVybiBw
cm9jZXNzb3JfY2xhc3MoZXh0ZW5zaW9uX3JlcXVlc3QpCisKKworZGVmIGlzX2NvbXByZXNzaW9u
X2V4dGVuc2lvbihleHRlbnNpb25fbmFtZSk6CisgICAgcmV0dXJuIGV4dGVuc2lvbl9uYW1lIGlu
IF9jb21wcmVzc2lvbl9leHRlbnNpb25fbmFtZXMKKworCisjIHZpOnN0cz00IHN3PTQgZXQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2Zhc3RfbWFza2luZy5pIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2Rf
cHl3ZWJzb2NrZXQvZmFzdF9tYXNraW5nLmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGRhYWQyN2Y1M2M0NmJlMmE3
MWM3MDRjNzA4ZmJiM2Y0MmYxYTNkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vi
c29ja2V0L2Zhc3RfbWFza2luZy5pCkBAIC0wLDAgKzEsOTggQEAKKy8vIENvcHlyaWdodCAyMDEz
LCBHb29nbGUgSW5jLgorLy8gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vCisvLyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
Ky8vIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKy8vIG1ldDoKKy8vCisvLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorLy8gbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
Ly8gICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorLy8gY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorLy8gaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorLy8gZGlzdHJpYnV0aW9uLgorLy8g
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworLy8gY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKy8vIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisvLworLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworLy8gIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKy8v
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorLy8gQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKy8vIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorLy8gU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorLy8gTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisvLyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKy8vIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy8vIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorLy8gT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCislbW9kdWxlIGZhc3RfbWFza2luZworCisl
aW5jbHVkZSAiY3N0cmluZy5pIgorCisleworI2luY2x1ZGUgPGNzdHJpbmc+CisKKyNpZmRlZiBf
X1NTRTJfXworI2luY2x1ZGUgPGVtbWludHJpbi5oPgorI2VuZGlmCislfQorCislYXBwbHkgKGNo
YXIgKlNUUklORywgaW50IExFTkdUSCkgeworICAgIChjb25zdCBjaGFyKiBwYXlsb2FkLCBpbnQg
cGF5bG9hZF9sZW5ndGgpLAorICAgIChjb25zdCBjaGFyKiBtYXNraW5nX2tleSwgaW50IG1hc2tp
bmdfa2V5X2xlbmd0aCkgfTsKKyVjc3RyaW5nX291dHB1dF9hbGxvY2F0ZV9zaXplKAorICAgIGNo
YXIqKiByZXN1bHQsIGludCogcmVzdWx0X2xlbmd0aCwgZGVsZXRlIFtdICokMSk7CisKKyVpbmxp
bmUgJXsKKwordm9pZCBtYXNrKAorICAgIGNvbnN0IGNoYXIqIHBheWxvYWQsIGludCBwYXlsb2Fk
X2xlbmd0aCwKKyAgICBjb25zdCBjaGFyKiBtYXNraW5nX2tleSwgaW50IG1hc2tpbmdfa2V5X2xl
bmd0aCwKKyAgICBpbnQgbWFza2luZ19rZXlfaW5kZXgsCisgICAgY2hhcioqIHJlc3VsdCwgaW50
KiByZXN1bHRfbGVuZ3RoKSB7CisgICpyZXN1bHQgPSBuZXcgY2hhcltwYXlsb2FkX2xlbmd0aF07
CisgICpyZXN1bHRfbGVuZ3RoID0gcGF5bG9hZF9sZW5ndGg7CisgIG1lbWNweSgqcmVzdWx0LCBw
YXlsb2FkLCBwYXlsb2FkX2xlbmd0aCk7CisKKyAgY2hhciogY3Vyc29yID0gKnJlc3VsdDsKKyAg
Y2hhciogY3Vyc29yX2VuZCA9ICpyZXN1bHQgKyAqcmVzdWx0X2xlbmd0aDsKKworI2lmZGVmIF9f
U1NFMl9fCisgIHdoaWxlICgoY3Vyc29yIDwgY3Vyc29yX2VuZCkgJiYKKyAgICAgICAgIChyZWlu
dGVycHJldF9jYXN0PHNpemVfdD4oY3Vyc29yKSAmIDB4ZikpIHsKKyAgICAqY3Vyc29yIF49IG1h
c2tpbmdfa2V5W21hc2tpbmdfa2V5X2luZGV4XTsKKyAgICArK2N1cnNvcjsKKyAgICBtYXNraW5n
X2tleV9pbmRleCA9IChtYXNraW5nX2tleV9pbmRleCArIDEpICUgbWFza2luZ19rZXlfbGVuZ3Ro
OworICB9CisgIGlmIChjdXJzb3IgPT0gY3Vyc29yX2VuZCkgeworICAgIHJldHVybjsKKyAgfQor
CisgIGNvbnN0IGludCBrQmxvY2tTaXplID0gMTY7CisgIF9fbTEyOGkgbWFza2luZ19rZXlfYmxv
Y2s7CisgIGZvciAoaW50IGkgPSAwOyBpIDwga0Jsb2NrU2l6ZTsgKytpKSB7CisgICAgKihyZWlu
dGVycHJldF9jYXN0PGNoYXIqPigmbWFza2luZ19rZXlfYmxvY2spICsgaSkgPQorICAgICAgICBt
YXNraW5nX2tleVttYXNraW5nX2tleV9pbmRleF07CisgICAgbWFza2luZ19rZXlfaW5kZXggPSAo
bWFza2luZ19rZXlfaW5kZXggKyAxKSAlIG1hc2tpbmdfa2V5X2xlbmd0aDsKKyAgfQorCisgIHdo
aWxlIChjdXJzb3IgKyBrQmxvY2tTaXplIDw9IGN1cnNvcl9lbmQpIHsKKyAgICBfX20xMjhpIHBh
eWxvYWRfYmxvY2sgPQorICAgICAgICBfbW1fbG9hZF9zaTEyOChyZWludGVycHJldF9jYXN0PF9f
bTEyOGkqPihjdXJzb3IpKTsKKyAgICBfbW1fc3RyZWFtX3NpMTI4KHJlaW50ZXJwcmV0X2Nhc3Q8
X19tMTI4aSo+KGN1cnNvciksCisgICAgICAgICAgICAgICAgICAgICBfbW1feG9yX3NpMTI4KHBh
eWxvYWRfYmxvY2ssIG1hc2tpbmdfa2V5X2Jsb2NrKSk7CisgICAgY3Vyc29yICs9IGtCbG9ja1Np
emU7CisgIH0KKyNlbmRpZgorCisgIHdoaWxlIChjdXJzb3IgPCBjdXJzb3JfZW5kKSB7CisgICAg
KmN1cnNvciBePSBtYXNraW5nX2tleVttYXNraW5nX2tleV9pbmRleF07CisgICAgKytjdXJzb3I7
CisgICAgbWFza2luZ19rZXlfaW5kZXggPSAobWFza2luZ19rZXlfaW5kZXggKyAxKSAlIG1hc2tp
bmdfa2V5X2xlbmd0aDsKKyAgfQorfQorCislfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJz
b2NrZXQvaGFuZHNoYWtlL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNo
YWtlL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5NGY2YjM5NWFlMjNiM2ExMzY0MWNkNGI5MDRm
NTkzNWQxZmExZjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5k
c2hha2UvX19pbml0X18ucHkKQEAgLTAsMCArMSwxMTAgQEAKKyMgQ29weXJpZ2h0IDIwMTEsIEdv
b2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisK
KyIiIldlYlNvY2tldCBvcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IuIFRoaXMgY2xhc3MgdHJ5
IHRvIGFwcGx5IGF2YWlsYWJsZQorb3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29ycyBmb3IgZWFj
aCBwcm90b2NvbCB2ZXJzaW9uIHVudGlsIGEgY29ubmVjdGlvbiBpcworc3VjY2Vzc2Z1bGx5IGVz
dGFibGlzaGVkLgorIiIiCisKKworaW1wb3J0IGxvZ2dpbmcKKworZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQgaW1wb3J0IGNvbW1vbgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlIGltcG9ydCBo
eWJpMDAKK2Zyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZSBpbXBvcnQgaHliaQorIyBFeHBv
cnQgQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiwgSGFuZHNoYWtlRXhjZXB0aW9uLCBhbmQgVmVyc2lv
bkV4Y2VwdGlvbgorIyBzeW1ib2wgZnJvbSB0aGlzIG1vZHVsZS4KK2Zyb20gbW9kX3B5d2Vic29j
a2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbgorZnJvbSBt
b2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBIYW5kc2hha2VFeGNlcHRpb24K
K2Zyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgVmVyc2lvbkV4Y2Vw
dGlvbgorCisKK19MT0dHRVIgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKworCitkZWYg
ZG9faGFuZHNoYWtlKHJlcXVlc3QsIGRpc3BhdGNoZXIsIGFsbG93RHJhZnQ3NT1GYWxzZSwgc3Ry
aWN0PUZhbHNlKToKKyAgICAiIiJQZXJmb3JtcyBXZWJTb2NrZXQgaGFuZHNoYWtlLgorCisgICAg
QXJnczoKKyAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgorICAgICAgICBkaXNw
YXRjaGVyOiBEaXNwYXRjaGVyIChkaXNwYXRjaC5EaXNwYXRjaGVyKS4KKyAgICAgICAgYWxsb3dE
cmFmdDc1OiBvYnNvbGV0ZSBhcmd1bWVudC4gaWdub3JlZC4KKyAgICAgICAgc3RyaWN0OiBvYnNv
bGV0ZSBhcmd1bWVudC4gaWdub3JlZC4KKworICAgIEhhbmRzaGFrZXIgd2lsbCBhZGQgYXR0cmli
dXRlcyBzdWNoIGFzIHdzX3Jlc291cmNlIGluIHBlcmZvcm1pbmcKKyAgICBoYW5kc2hha2UuCisg
ICAgIiIiCisKKyAgICBfTE9HR0VSLmRlYnVnKCdDbGllbnRcJ3Mgb3BlbmluZyBoYW5kc2hha2Ug
cmVzb3VyY2U6ICVyJywgcmVxdWVzdC51cmkpCisgICAgIyBUbyBwcmludCBtaW1ldG9vbHMuTWVz
c2FnZSBhcyBlc2NhcGVkIG9uZS1saW5lIHN0cmluZywgd2UgY29udmVydHMKKyAgICAjIGhlYWRl
cnNfaW4gdG8gZGljdCBvYmplY3QuIFdpdGhvdXQgY29udmVyc2lvbiwgaWYgd2UgdXNlICVyLCBp
dCBqdXN0CisgICAgIyBwcmludHMgdGhlIHR5cGUgYW5kIGFkZHJlc3MsIGFuZCBpZiB3ZSB1c2Ug
JXMsIGl0IHByaW50cyB0aGUgb3JpZ2luYWwKKyAgICAjIGhlYWRlciBzdHJpbmcgYXMgbXVsdGlw
bGUgbGluZXMuCisgICAgIworICAgICMgQm90aCBtaW1ldG9vbHMuTWVzc2FnZSBhbmQgTXBUYWJs
ZV9UeXBlIG9mIG1vZF9weXRob24gY2FuIGJlCisgICAgIyBjb252ZXJ0ZWQgdG8gZGljdC4KKyAg
ICAjCisgICAgIyBtaW1ldG9vbHMuTWVzc2FnZS5fX3N0cl9fIHJldHVybnMgdGhlIG9yaWdpbmFs
IGhlYWRlciBzdHJpbmcuCisgICAgIyBkaWN0KG1pbWV0b29scy5NZXNzYWdlIG9iamVjdCkgcmV0
dXJucyB0aGUgbWFwIGZyb20gaGVhZGVyIG5hbWVzIHRvCisgICAgIyBoZWFkZXIgdmFsdWVzLiBX
aGlsZSBNcFRhYmxlX1R5cGUgZG9lc24ndCBoYXZlIHN1Y2ggX19zdHJfXyBidXQganVzdAorICAg
ICMgX19yZXByX18gd2hpY2ggZm9ybWF0cyBpdHNlbGYgYXMgd2VsbCBhcyBkaWN0aW9uYXJ5IG9i
amVjdC4KKyAgICBfTE9HR0VSLmRlYnVnKAorICAgICAgICAnQ2xpZW50XCdzIG9wZW5pbmcgaGFu
ZHNoYWtlIGhlYWRlcnM6ICVyJywgZGljdChyZXF1ZXN0LmhlYWRlcnNfaW4pKQorCisgICAgaGFu
ZHNoYWtlcnMgPSBbXQorICAgIGhhbmRzaGFrZXJzLmFwcGVuZCgKKyAgICAgICAgKCdSRkMgNjQ1
NScsIGh5YmkuSGFuZHNoYWtlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKSkpCisgICAgaGFuZHNoYWtl
cnMuYXBwZW5kKAorICAgICAgICAoJ0h5QmkgMDAnLCBoeWJpMDAuSGFuZHNoYWtlcihyZXF1ZXN0
LCBkaXNwYXRjaGVyKSkpCisKKyAgICBmb3IgbmFtZSwgaGFuZHNoYWtlciBpbiBoYW5kc2hha2Vy
czoKKyAgICAgICAgX0xPR0dFUi5kZWJ1ZygnVHJ5aW5nIHByb3RvY29sIHZlcnNpb24gJXMnLCBu
YW1lKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgp
CisgICAgICAgICAgICBfTE9HR0VSLmluZm8oJ0VzdGFibGlzaGVkICglcyBwcm90b2NvbCknLCBu
YW1lKQorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGV4Y2VwdCBIYW5kc2hha2VFeGNlcHRp
b24sIGU6CisgICAgICAgICAgICBfTE9HR0VSLmRlYnVnKAorICAgICAgICAgICAgICAgICdGYWls
ZWQgdG8gY29tcGxldGUgb3BlbmluZyBoYW5kc2hha2UgYXMgJXMgcHJvdG9jb2w6ICVyJywKKyAg
ICAgICAgICAgICAgICBuYW1lLCBlKQorICAgICAgICAgICAgaWYgZS5zdGF0dXM6CisgICAgICAg
ICAgICAgICAgcmFpc2UgZQorICAgICAgICBleGNlcHQgQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiwg
ZToKKyAgICAgICAgICAgIHJhaXNlCisgICAgICAgIGV4Y2VwdCBWZXJzaW9uRXhjZXB0aW9uLCBl
OgorICAgICAgICAgICAgcmFpc2UKKworICAgICMgVE9ETyh0b3lvc2hpbSk6IEFkZCBhIHRlc3Qg
dG8gY292ZXIgdGhlIGNhc2UgYWxsIGhhbmRzaGFrZXJzIGZhaWwuCisgICAgcmFpc2UgSGFuZHNo
YWtlRXhjZXB0aW9uKAorICAgICAgICAnRmFpbGVkIHRvIGNvbXBsZXRlIG9wZW5pbmcgaGFuZHNo
YWtlIGZvciBhbGwgYXZhaWxhYmxlIHByb3RvY29scycsCisgICAgICAgIHN0YXR1cz1jb21tb24u
SFRUUF9TVEFUVVNfQkFEX1JFUVVFU1QpCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvX2Jhc2UucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9w
eXdlYnNvY2tldC9oYW5kc2hha2UvX2Jhc2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzk5M2E1ODRiN2IzZTUy
YjYwN2I2NWJmMzhhZmRjYWRkY2EyZmU3OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5
d2Vic29ja2V0L2hhbmRzaGFrZS9fYmFzZS5weQpAQCAtMCwwICsxLDE4MiBAQAorIyBDb3B5cmln
aHQgMjAxMiwgR29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKKworIiIiQ29tbW9uIGZ1bmN0aW9ucyBhbmQgZXhjZXB0aW9ucyB1c2VkIGJ5IFdl
YlNvY2tldCBvcGVuaW5nIGhhbmRzaGFrZQorcHJvY2Vzc29ycy4KKyIiIgorCisKK2Zyb20gbW9k
X3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBo
dHRwX2hlYWRlcl91dGlsCisKKworY2xhc3MgQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbihFeGNlcHRp
b24pOgorICAgICIiIkV4Y2VwdGlvbiBmb3IgYWJvcnRpbmcgYSBjb25uZWN0aW9uIGludGVudGlv
bmFsbHkuCisKKyAgICBJZiB0aGlzIGV4Y2VwdGlvbiBpcyByYWlzZWQgaW4gZG9fZXh0cmFfaGFu
ZHNoYWtlIGhhbmRsZXIsIHRoZSBjb25uZWN0aW9uCisgICAgd2lsbCBiZSBhYmFuZG9uZWQuIE5v
IG90aGVyIFdlYlNvY2tldCBvciBIVFRQKFMpIGhhbmRsZXIgd2lsbCBiZSBpbnZva2VkLgorCisg
ICAgSWYgdGhpcyBleGNlcHRpb24gaXMgcmFpc2VkIGluIHRyYW5zZmVyX2RhdGFfaGFuZGxlciwg
dGhlIGNvbm5lY3Rpb24gd2lsbAorICAgIGJlIGNsb3NlZCB3aXRob3V0IGNsb3NpbmcgaGFuZHNo
YWtlLiBObyBvdGhlciBXZWJTb2NrZXQgb3IgSFRUUChTKSBoYW5kbGVyCisgICAgd2lsbCBiZSBp
bnZva2VkLgorICAgICIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEhhbmRzaGFrZUV4Y2VwdGlv
bihFeGNlcHRpb24pOgorICAgICIiIlRoaXMgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIHdoZW4g
YW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgcHJvY2Vzc2luZworICAgIFdlYlNvY2tldCBpbml0aWFs
IGhhbmRzaGFrZS4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBzdGF0
dXM9Tm9uZSk6CisgICAgICAgIHN1cGVyKEhhbmRzaGFrZUV4Y2VwdGlvbiwgc2VsZikuX19pbml0
X18obmFtZSkKKyAgICAgICAgc2VsZi5zdGF0dXMgPSBzdGF0dXMKKworCitjbGFzcyBWZXJzaW9u
RXhjZXB0aW9uKEV4Y2VwdGlvbik6CisgICAgIiIiVGhpcyBleGNlcHRpb24gd2lsbCBiZSByYWlz
ZWQgd2hlbiBhIHZlcnNpb24gb2YgY2xpZW50IHJlcXVlc3QgZG9lcyBub3QKKyAgICBtYXRjaCB3
aXRoIHZlcnNpb24gdGhlIHNlcnZlciBzdXBwb3J0cy4KKyAgICAiIiIKKworICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBuYW1lLCBzdXBwb3J0ZWRfdmVyc2lvbnM9JycpOgorICAgICAgICAiIiJDb25z
dHJ1Y3QgYW4gaW5zdGFuY2UuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIHN1cHBvcnRl
ZF92ZXJzaW9uOiBhIHN0ciBvYmplY3QgdG8gc2hvdyBzdXBwb3J0ZWQgaHliaSB2ZXJzaW9ucy4K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZS5nLiAnOCwgMTMnKQorICAgICAgICAi
IiIKKyAgICAgICAgc3VwZXIoVmVyc2lvbkV4Y2VwdGlvbiwgc2VsZikuX19pbml0X18obmFtZSkK
KyAgICAgICAgc2VsZi5zdXBwb3J0ZWRfdmVyc2lvbnMgPSBzdXBwb3J0ZWRfdmVyc2lvbnMKKwor
CitkZWYgZ2V0X2RlZmF1bHRfcG9ydChpc19zZWN1cmUpOgorICAgIGlmIGlzX3NlY3VyZToKKyAg
ICAgICAgcmV0dXJuIGNvbW1vbi5ERUZBVUxUX1dFQl9TT0NLRVRfU0VDVVJFX1BPUlQKKyAgICBl
bHNlOgorICAgICAgICByZXR1cm4gY29tbW9uLkRFRkFVTFRfV0VCX1NPQ0tFVF9QT1JUCisKKwor
ZGVmIHZhbGlkYXRlX3N1YnByb3RvY29sKHN1YnByb3RvY29sKToKKyAgICAiIiJWYWxpZGF0ZSBh
IHZhbHVlIGluIHRoZSBTZWMtV2ViU29ja2V0LVByb3RvY29sIGZpZWxkLgorCisgICAgU2VlIHRo
ZSBTZWN0aW9uIDQuMS4sIDQuMi4yLiwgYW5kIDQuMy4gb2YgUkZDIDY0NTUuCisgICAgIiIiCisK
KyAgICBpZiBub3Qgc3VicHJvdG9jb2w6CisgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlv
bignSW52YWxpZCBzdWJwcm90b2NvbCBuYW1lOiBlbXB0eScpCisKKyAgICAjIFBhcmFtZXRlciBz
aG91bGQgYmUgZW5jb2RlZCBIVFRQIHRva2VuLgorICAgIHN0YXRlID0gaHR0cF9oZWFkZXJfdXRp
bC5QYXJzaW5nU3RhdGUoc3VicHJvdG9jb2wpCisgICAgdG9rZW4gPSBodHRwX2hlYWRlcl91dGls
LmNvbnN1bWVfdG9rZW4oc3RhdGUpCisgICAgcmVzdCA9IGh0dHBfaGVhZGVyX3V0aWwucGVlayhz
dGF0ZSkKKyAgICAjIElmIHxyZXN0fCBpcyBub3QgTm9uZSwgfHN1YnByb3RvY29sfCBpcyBub3Qg
b25lIHRva2VuIG9yIGludmFsaWQuIElmCisgICAgIyB8cmVzdHwgaXMgTm9uZSwgfHRva2VufCBt
dXN0IG5vdCBiZSBOb25lIGJlY2F1c2UgfHN1YnByb3RvY29sfCBpcworICAgICMgY29uY2F0ZW5h
dGlvbiBvZiB8dG9rZW58IGFuZCB8cmVzdHwgYW5kIGlzIG5vdCBOb25lLgorICAgIGlmIHJlc3Qg
aXMgbm90IE5vbmU6CisgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignSW52YWxpZCBu
b24tdG9rZW4gc3RyaW5nIGluIHN1YnByb3RvY29sICcKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICduYW1lOiAlcicgJSByZXN0KQorCisKK2RlZiBwYXJzZV9ob3N0X2hlYWRlcihy
ZXF1ZXN0KToKKyAgICBmaWVsZHMgPSByZXF1ZXN0LmhlYWRlcnNfaW5bY29tbW9uLkhPU1RfSEVB
REVSXS5zcGxpdCgnOicsIDEpCisgICAgaWYgbGVuKGZpZWxkcykgPT0gMToKKyAgICAgICAgcmV0
dXJuIGZpZWxkc1swXSwgZ2V0X2RlZmF1bHRfcG9ydChyZXF1ZXN0LmlzX2h0dHBzKCkpCisgICAg
dHJ5OgorICAgICAgICByZXR1cm4gZmllbGRzWzBdLCBpbnQoZmllbGRzWzFdKQorICAgIGV4Y2Vw
dCBWYWx1ZUVycm9yLCBlOgorICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJ0ludmFs
aWQgcG9ydCBudW1iZXIgZm9ybWF0OiAlcicgJSBlKQorCisKK2RlZiBmb3JtYXRfaGVhZGVyKG5h
bWUsIHZhbHVlKToKKyAgICByZXR1cm4gJyVzOiAlc1xyXG4nICUgKG5hbWUsIHZhbHVlKQorCisK
K2RlZiBnZXRfbWFuZGF0b3J5X2hlYWRlcihyZXF1ZXN0LCBrZXkpOgorICAgIHZhbHVlID0gcmVx
dWVzdC5oZWFkZXJzX2luLmdldChrZXkpCisgICAgaWYgdmFsdWUgaXMgTm9uZToKKyAgICAgICAg
cmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdIZWFkZXIgJXMgaXMgbm90IGRlZmluZWQnICUga2V5
KQorICAgIHJldHVybiB2YWx1ZQorCisKK2RlZiB2YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyKHJl
cXVlc3QsIGtleSwgZXhwZWN0ZWRfdmFsdWUsIGZhaWxfc3RhdHVzPU5vbmUpOgorICAgIHZhbHVl
ID0gZ2V0X21hbmRhdG9yeV9oZWFkZXIocmVxdWVzdCwga2V5KQorCisgICAgaWYgdmFsdWUubG93
ZXIoKSAhPSBleHBlY3RlZF92YWx1ZS5sb3dlcigpOgorICAgICAgICByYWlzZSBIYW5kc2hha2VF
eGNlcHRpb24oCisgICAgICAgICAgICAnRXhwZWN0ZWQgJXIgZm9yIGhlYWRlciAlcyBidXQgZm91
bmQgJXIgKGNhc2UtaW5zZW5zaXRpdmUpJyAlCisgICAgICAgICAgICAoZXhwZWN0ZWRfdmFsdWUs
IGtleSwgdmFsdWUpLCBzdGF0dXM9ZmFpbF9zdGF0dXMpCisKKworZGVmIGNoZWNrX3JlcXVlc3Rf
bGluZShyZXF1ZXN0KToKKyAgICAjIDUuMSAxLiBUaGUgdGhyZWUgY2hhcmFjdGVyIFVURi04IHN0
cmluZyAiR0VUIi4KKyAgICAjIDUuMSAyLiBBIFVURi04LWVuY29kZWQgVSswMDIwIFNQQUNFIGNo
YXJhY3RlciAoMHgyMCBieXRlKS4KKyAgICBpZiByZXF1ZXN0Lm1ldGhvZCAhPSAnR0VUJzoKKyAg
ICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdNZXRob2QgaXMgbm90IEdFVDogJXInICUg
cmVxdWVzdC5tZXRob2QpCisKKyAgICBpZiByZXF1ZXN0LnByb3RvY29sICE9ICdIVFRQLzEuMSc6
CisgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignVmVyc2lvbiBpcyBub3QgSFRUUC8x
LjE6ICVyJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LnByb3Rv
Y29sKQorCisKK2RlZiBwYXJzZV90b2tlbl9saXN0KGRhdGEpOgorICAgICIiIlBhcnNlcyBhIGhl
YWRlciB2YWx1ZSB3aGljaCBmb2xsb3dzIDEjdG9rZW4gYW5kIHJldHVybnMgcGFyc2VkIGVsZW1l
bnRzCisgICAgYXMgYSBsaXN0IG9mIHN0cmluZ3MuCisKKyAgICBMZWFkaW5nIExXU2VzIG11c3Qg
YmUgdHJpbW1lZC4KKyAgICAiIiIKKworICAgIHN0YXRlID0gaHR0cF9oZWFkZXJfdXRpbC5QYXJz
aW5nU3RhdGUoZGF0YSkKKworICAgIHRva2VuX2xpc3QgPSBbXQorCisgICAgd2hpbGUgVHJ1ZToK
KyAgICAgICAgdG9rZW4gPSBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfdG9rZW4oc3RhdGUpCisg
ICAgICAgIGlmIHRva2VuIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgdG9rZW5fbGlzdC5hcHBl
bmQodG9rZW4pCisKKyAgICAgICAgaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX2x3c2VzKHN0YXRl
KQorCisgICAgICAgIGlmIGh0dHBfaGVhZGVyX3V0aWwucGVlayhzdGF0ZSkgaXMgTm9uZToKKyAg
ICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgaWYgbm90IGh0dHBfaGVhZGVyX3V0aWwuY29uc3Vt
ZV9zdHJpbmcoc3RhdGUsICcsJyk6CisgICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRp
b24oCisgICAgICAgICAgICAgICAgJ0V4cGVjdGVkIGEgY29tbWEgYnV0IGZvdW5kICVyJyAlIGh0
dHBfaGVhZGVyX3V0aWwucGVlayhzdGF0ZSkpCisKKyAgICAgICAgaHR0cF9oZWFkZXJfdXRpbC5j
b25zdW1lX2x3c2VzKHN0YXRlKQorCisgICAgaWYgbGVuKHRva2VuX2xpc3QpID09IDA6CisgICAg
ICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignTm8gdmFsaWQgdG9rZW4gZm91bmQnKQorCisg
ICAgcmV0dXJuIHRva2VuX2xpc3QKKworCisjIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9oeWJpLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJz
b2NrZXQvaGFuZHNoYWtlL2h5YmkucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWFkMTBlYTM3MjgyOWQwOTNkNjZl
NmFjNjBhY2NjZDljMWNhZWZiNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29j
a2V0L2hhbmRzaGFrZS9oeWJpLnB5CkBAIC0wLDAgKzEsNDIwIEBACisjIENvcHlyaWdodCAyMDEy
LCBHb29nbGUgSW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
IyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KworCisiIiJUaGlzIGZpbGUgcHJvdmlkZXMgdGhlIG9wZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3Nv
ciBmb3IgdGhlIFdlYlNvY2tldAorcHJvdG9jb2wgKFJGQyA2NDU1KS4KKworU3BlY2lmaWNhdGlv
bjoKK2h0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY0NTUKKyIiIgorCisKKyMgTm90ZTog
cmVxdWVzdC5jb25uZWN0aW9uLndyaXRlIGlzIHVzZWQgaW4gdGhpcyBtb2R1bGUsIGV2ZW4gdGhv
dWdoIG1vZF9weXRob24KKyMgZG9jdW1lbnQgc2F5cyB0aGF0IGl0IHNob3VsZCBiZSB1c2VkIG9u
bHkgaW4gY29ubmVjdGlvbiBoYW5kbGVycy4KKyMgVW5mb3J0dW5hdGVseSwgd2UgaGF2ZSBubyBv
dGhlciBvcHRpb25zLiBGb3IgZXhhbXBsZSwgcmVxdWVzdC53cml0ZSBpcyBub3QKKyMgc3VpdGFi
bGUgYmVjYXVzZSBpdCBkb2Vzbid0IGFsbG93IGRpcmVjdCByYXcgYnl0ZXMgd3JpdGluZy4KKwor
CitpbXBvcnQgYmFzZTY0CitpbXBvcnQgbG9nZ2luZworaW1wb3J0IG9zCitpbXBvcnQgcmUKKwor
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQu
ZXh0ZW5zaW9ucyBpbXBvcnQgZ2V0X2V4dGVuc2lvbl9wcm9jZXNzb3IKK2Zyb20gbW9kX3B5d2Vi
c29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0IGlzX2NvbXByZXNzaW9uX2V4dGVuc2lvbgorZnJvbSBt
b2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBjaGVja19yZXF1ZXN0X2xpbmUK
K2Zyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgZm9ybWF0X2hlYWRl
cgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBnZXRfbWFuZGF0
b3J5X2hlYWRlcgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBI
YW5kc2hha2VFeGNlcHRpb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBp
bXBvcnQgcGFyc2VfdG9rZW5fbGlzdAorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9i
YXNlIGltcG9ydCB2YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyCitmcm9tIG1vZF9weXdlYnNvY2tl
dC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IHZhbGlkYXRlX3N1YnByb3RvY29sCitmcm9tIG1vZF9w
eXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IFZlcnNpb25FeGNlcHRpb24KK2Zyb20g
bW9kX3B5d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgU3RyZWFtCitmcm9tIG1vZF9weXdlYnNvY2tl
dC5zdHJlYW0gaW1wb3J0IFN0cmVhbU9wdGlvbnMKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9y
dCB1dGlsCisKKworIyBVc2VkIHRvIHZhbGlkYXRlIHRoZSB2YWx1ZSBpbiB0aGUgU2VjLVdlYlNv
Y2tldC1LZXkgaGVhZGVyIHN0cmljdGx5LiBSRkMgNDY0OAorIyBkaXNhbGxvd3Mgbm9uLXplcm8g
cGFkZGluZywgc28gdGhlIGNoYXJhY3RlciByaWdodCBiZWZvcmUgPT0gbXVzdCBiZSBhbnkgb2YK
KyMgQSwgUSwgZyBhbmQgdy4KK19TRUNfV0VCU09DS0VUX0tFWV9SRUdFWCA9IHJlLmNvbXBpbGUo
J15bKy8wLTlBLVphLXpdezIxfVtBUWd3XT09JCcpCisKKyMgRGVmaW5pbmcgYWxpYXNlcyBmb3Ig
dmFsdWVzIHVzZWQgZnJlcXVlbnRseS4KK19WRVJTSU9OX0xBVEVTVCA9IGNvbW1vbi5WRVJTSU9O
X0hZQklfTEFURVNUCitfVkVSU0lPTl9MQVRFU1RfU1RSSU5HID0gc3RyKF9WRVJTSU9OX0xBVEVT
VCkKK19TVVBQT1JURURfVkVSU0lPTlMgPSBbCisgICAgX1ZFUlNJT05fTEFURVNULAorXQorCisK
K2RlZiBjb21wdXRlX2FjY2VwdChrZXkpOgorICAgICIiIkNvbXB1dGVzIHZhbHVlIGZvciB0aGUg
U2VjLVdlYlNvY2tldC1BY2NlcHQgaGVhZGVyIGZyb20gdmFsdWUgb2YgdGhlCisgICAgU2VjLVdl
YlNvY2tldC1LZXkgaGVhZGVyLgorICAgICIiIgorCisgICAgYWNjZXB0X2JpbmFyeSA9IHV0aWwu
c2hhMV9oYXNoKAorICAgICAgICBrZXkgKyBjb21tb24uV0VCU09DS0VUX0FDQ0VQVF9VVUlEKS5k
aWdlc3QoKQorICAgIGFjY2VwdCA9IGJhc2U2NC5iNjRlbmNvZGUoYWNjZXB0X2JpbmFyeSkKKwor
ICAgIHJldHVybiAoYWNjZXB0LCBhY2NlcHRfYmluYXJ5KQorCisKK2NsYXNzIEhhbmRzaGFrZXIo
b2JqZWN0KToKKyAgICAiIiJPcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IgZm9yIHRoZSBXZWJT
b2NrZXQgcHJvdG9jb2wgKFJGQyA2NDU1KS4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBy
ZXF1ZXN0LCBkaXNwYXRjaGVyKToKKyAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgor
CisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3Qu
CisgICAgICAgICAgICBkaXNwYXRjaGVyOiBEaXNwYXRjaGVyIChkaXNwYXRjaC5EaXNwYXRjaGVy
KS4KKworICAgICAgICBIYW5kc2hha2VyIHdpbGwgYWRkIGF0dHJpYnV0ZXMgc3VjaCBhcyB3c19y
ZXNvdXJjZSBkdXJpbmcgaGFuZHNoYWtlLgorICAgICAgICAiIiIKKworICAgICAgICBzZWxmLl9s
b2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKKworICAgICAgICBzZWxmLl9yZXF1
ZXN0ID0gcmVxdWVzdAorICAgICAgICBzZWxmLl9kaXNwYXRjaGVyID0gZGlzcGF0Y2hlcgorCisg
ICAgZGVmIF92YWxpZGF0ZV9jb25uZWN0aW9uX2hlYWRlcihzZWxmKToKKyAgICAgICAgY29ubmVj
dGlvbiA9IGdldF9tYW5kYXRvcnlfaGVhZGVyKAorICAgICAgICAgICAgc2VsZi5fcmVxdWVzdCwg
Y29tbW9uLkNPTk5FQ1RJT05fSEVBREVSKQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGNv
bm5lY3Rpb25fdG9rZW5zID0gcGFyc2VfdG9rZW5fbGlzdChjb25uZWN0aW9uKQorICAgICAgICBl
eGNlcHQgSGFuZHNoYWtlRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtl
RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdGYWlsZWQgdG8gcGFyc2UgJXM6ICVzJyAlIChj
b21tb24uQ09OTkVDVElPTl9IRUFERVIsIGUpKQorCisgICAgICAgIGNvbm5lY3Rpb25faXNfdmFs
aWQgPSBGYWxzZQorICAgICAgICBmb3IgdG9rZW4gaW4gY29ubmVjdGlvbl90b2tlbnM6CisgICAg
ICAgICAgICBpZiB0b2tlbi5sb3dlcigpID09IGNvbW1vbi5VUEdSQURFX0NPTk5FQ1RJT05fVFlQ
RS5sb3dlcigpOgorICAgICAgICAgICAgICAgIGNvbm5lY3Rpb25faXNfdmFsaWQgPSBUcnVlCisg
ICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgaWYgbm90IGNvbm5lY3Rpb25faXNfdmFsaWQ6
CisgICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCisgICAgICAgICAgICAgICAg
JyVzIGhlYWRlciBkb2VzblwndCBjb250YWluICIlcyInICUKKyAgICAgICAgICAgICAgICAoY29t
bW9uLkNPTk5FQ1RJT05fSEVBREVSLCBjb21tb24uVVBHUkFERV9DT05ORUNUSU9OX1RZUEUpKQor
CisgICAgZGVmIGRvX2hhbmRzaGFrZShzZWxmKToKKyAgICAgICAgc2VsZi5fcmVxdWVzdC53c19j
bG9zZV9jb2RlID0gTm9uZQorICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2Nsb3NlX3JlYXNvbiA9
IE5vbmUKKworICAgICAgICAjIFBhcnNpbmcuCisKKyAgICAgICAgY2hlY2tfcmVxdWVzdF9saW5l
KHNlbGYuX3JlcXVlc3QpCisKKyAgICAgICAgdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcigKKyAg
ICAgICAgICAgIHNlbGYuX3JlcXVlc3QsCisgICAgICAgICAgICBjb21tb24uVVBHUkFERV9IRUFE
RVIsCisgICAgICAgICAgICBjb21tb24uV0VCU09DS0VUX1VQR1JBREVfVFlQRSkKKworICAgICAg
ICBzZWxmLl92YWxpZGF0ZV9jb25uZWN0aW9uX2hlYWRlcigpCisKKyAgICAgICAgc2VsZi5fcmVx
dWVzdC53c19yZXNvdXJjZSA9IHNlbGYuX3JlcXVlc3QudXJpCisKKyAgICAgICAgdW51c2VkX2hv
c3QgPSBnZXRfbWFuZGF0b3J5X2hlYWRlcihzZWxmLl9yZXF1ZXN0LCBjb21tb24uSE9TVF9IRUFE
RVIpCisKKyAgICAgICAgc2VsZi5fcmVxdWVzdC53c192ZXJzaW9uID0gc2VsZi5fY2hlY2tfdmVy
c2lvbigpCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5fZ2V0X29yaWdpbigpCisg
ICAgICAgICAgICBzZWxmLl9zZXRfcHJvdG9jb2woKQorICAgICAgICAgICAgc2VsZi5fcGFyc2Vf
ZXh0ZW5zaW9ucygpCisKKyAgICAgICAgICAgICMgS2V5IHZhbGlkYXRpb24sIHJlc3BvbnNlIGdl
bmVyYXRpb24uCisKKyAgICAgICAgICAgIGtleSA9IHNlbGYuX2dldF9rZXkoKQorICAgICAgICAg
ICAgKGFjY2VwdCwgYWNjZXB0X2JpbmFyeSkgPSBjb21wdXRlX2FjY2VwdChrZXkpCisgICAgICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAgICAgJyVzOiAlciAoJXMpJywK
KyAgICAgICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9BQ0NFUFRfSEVBREVSLAorICAg
ICAgICAgICAgICAgIGFjY2VwdCwKKyAgICAgICAgICAgICAgICB1dGlsLmhleGlmeShhY2NlcHRf
YmluYXJ5KSkKKworICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdQcm90b2NvbCB2ZXJz
aW9uIGlzIFJGQyA2NDU1JykKKworICAgICAgICAgICAgIyBTZXR1cCBleHRlbnNpb24gcHJvY2Vz
c29ycy4KKworICAgICAgICAgICAgcHJvY2Vzc29ycyA9IFtdCisgICAgICAgICAgICBpZiBzZWxm
Ll9yZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25zIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgICAgIGZvciBleHRlbnNpb25fcmVxdWVzdCBpbiBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3Rl
ZF9leHRlbnNpb25zOgorICAgICAgICAgICAgICAgICAgICBwcm9jZXNzb3IgPSBnZXRfZXh0ZW5z
aW9uX3Byb2Nlc3NvcihleHRlbnNpb25fcmVxdWVzdCkKKyAgICAgICAgICAgICAgICAgICAgIyBV
bmtub3duIGV4dGVuc2lvbiByZXF1ZXN0cyBhcmUganVzdCBpZ25vcmVkLgorICAgICAgICAgICAg
ICAgICAgICBpZiBwcm9jZXNzb3IgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAg
ICBwcm9jZXNzb3JzLmFwcGVuZChwcm9jZXNzb3IpCisgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0
LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzID0gcHJvY2Vzc29ycworCisgICAgICAgICAgICAjIExp
c3Qgb2YgZXh0cmEgaGVhZGVycy4gVGhlIGV4dHJhIGhhbmRzaGFrZSBoYW5kbGVyIG1heSBhZGQg
aGVhZGVyCisgICAgICAgICAgICAjIGRhdGEgYXMgbmFtZS92YWx1ZSBwYWlycyB0byB0aGlzIGxp
c3QgYW5kIHB5d2Vic29ja2V0IGFwcGVuZHMKKyAgICAgICAgICAgICMgdGhlbSB0byB0aGUgV2Vi
U29ja2V0IGhhbmRzaGFrZS4KKyAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuZXh0cmFfaGVhZGVy
cyA9IFtdCisKKyAgICAgICAgICAgICMgRXh0cmEgaGFuZHNoYWtlIGhhbmRsZXIgbWF5IG1vZGlm
eS9yZW1vdmUgcHJvY2Vzc29ycy4KKyAgICAgICAgICAgIHNlbGYuX2Rpc3BhdGNoZXIuZG9fZXh0
cmFfaGFuZHNoYWtlKHNlbGYuX3JlcXVlc3QpCisgICAgICAgICAgICBwcm9jZXNzb3JzID0gZmls
dGVyKGxhbWJkYSBwcm9jZXNzb3I6IHByb2Nlc3NvciBpcyBub3QgTm9uZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29y
cykKKworICAgICAgICAgICAgIyBBc2sgZWFjaCBwcm9jZXNzb3IgaWYgdGhlcmUgYXJlIGV4dGVu
c2lvbnMgb24gdGhlIHJlcXVlc3Qgd2hpY2gKKyAgICAgICAgICAgICMgY2Fubm90IGNvLWV4aXN0
LiBXaGVuIHByb2Nlc3NvciBkZWNpZGVkIG90aGVyIHByb2Nlc3NvcnMgY2Fubm90CisgICAgICAg
ICAgICAjIGNvLWV4aXN0IHdpdGggaXQsIHRoZSBwcm9jZXNzb3IgbWFya3MgdGhlbSAob3IgaXRz
ZWxmKSBhcworICAgICAgICAgICAgIyAiaW5hY3RpdmUiLiBUaGUgZmlyc3QgZXh0ZW5zaW9uIHBy
b2Nlc3NvciBoYXMgdGhlIHJpZ2h0IHRvCisgICAgICAgICAgICAjIG1ha2UgdGhlIGZpbmFsIGNh
bGwuCisgICAgICAgICAgICBmb3IgcHJvY2Vzc29yIGluIHJldmVyc2VkKHByb2Nlc3NvcnMpOgor
ICAgICAgICAgICAgICAgIGlmIHByb2Nlc3Nvci5pc19hY3RpdmUoKToKKyAgICAgICAgICAgICAg
ICAgICAgcHJvY2Vzc29yLmNoZWNrX2NvbnNpc3RlbmN5X3dpdGhfb3RoZXJfcHJvY2Vzc29ycygK
KyAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NvcnMpCisgICAgICAgICAgICBwcm9jZXNz
b3JzID0gZmlsdGVyKGxhbWJkYSBwcm9jZXNzb3I6IHByb2Nlc3Nvci5pc19hY3RpdmUoKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29ycykKKworICAgICAgICAgICAg
YWNjZXB0ZWRfZXh0ZW5zaW9ucyA9IFtdCisKKyAgICAgICAgICAgICMgV2UgbmVlZCB0byB0YWtl
IGludG8gYWNjb3VudCBvZiBtdXggZXh0ZW5zaW9uIGhlcmUuCisgICAgICAgICAgICAjIElmIG11
eCBleHRlbnNpb24gZXhpc3RzOgorICAgICAgICAgICAgIyAtIFJlbW92ZSBwcm9jZXNzb3JzIG9m
IGV4dGVuc2lvbnMgZm9yIGxvZ2ljYWwgY2hhbm5lbCwKKyAgICAgICAgICAgICMgICB3aGljaCBh
cmUgcHJvY2Vzc29ycyBsb2NhdGVkIGJlZm9yZSB0aGUgbXV4IHByb2Nlc3NvcgorICAgICAgICAg
ICAgIyAtIFBhc3MgZXh0ZW5zaW9uIHJlcXVlc3RzIGZvciBsb2dpY2FsIGNoYW5uZWwgdG8gbXV4
IHByb2Nlc3NvcgorICAgICAgICAgICAgIyAtIEF0dGFjaCB0aGUgbXV4IHByb2Nlc3NvciB0byB0
aGUgcmVxdWVzdC4gSXQgd2lsbCBiZSByZWZlcnJlZAorICAgICAgICAgICAgIyAgIGJ5IGRpc3Bh
dGNoZXIgdG8gc2VlIHdoZXRoZXIgdGhlIGRpc3BhdGNoZXIgc2hvdWxkIHVzZSBtdXgKKyAgICAg
ICAgICAgICMgICBoYW5kbGVyIG9yIG5vdC4KKyAgICAgICAgICAgIG11eF9pbmRleCA9IC0xCisg
ICAgICAgICAgICBmb3IgaSwgcHJvY2Vzc29yIGluIGVudW1lcmF0ZShwcm9jZXNzb3JzKToKKyAg
ICAgICAgICAgICAgICBpZiBwcm9jZXNzb3IubmFtZSgpID09IGNvbW1vbi5NVVhfRVhURU5TSU9O
OgorICAgICAgICAgICAgICAgICAgICBtdXhfaW5kZXggPSBpCisgICAgICAgICAgICAgICAgICAg
IGJyZWFrCisgICAgICAgICAgICBpZiBtdXhfaW5kZXggPj0gMDoKKyAgICAgICAgICAgICAgICBs
b2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucyA9IFtdCisgICAgICAgICAgICAgICAgZm9yIHByb2Nl
c3NvciBpbiBwcm9jZXNzb3JzWzptdXhfaW5kZXhdOgorICAgICAgICAgICAgICAgICAgICBsb2dp
Y2FsX2NoYW5uZWxfZXh0ZW5zaW9ucy5hcHBlbmQocHJvY2Vzc29yLnJlcXVlc3QoKSkKKyAgICAg
ICAgICAgICAgICAgICAgcHJvY2Vzc29yLnNldF9hY3RpdmUoRmFsc2UpCisgICAgICAgICAgICAg
ICAgc2VsZi5fcmVxdWVzdC5tdXhfcHJvY2Vzc29yID0gcHJvY2Vzc29yc1ttdXhfaW5kZXhdCisg
ICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5tdXhfcHJvY2Vzc29yLnNldF9leHRlbnNpb25z
KAorICAgICAgICAgICAgICAgICAgICBsb2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucykKKyAgICAg
ICAgICAgICAgICBwcm9jZXNzb3JzID0gZmlsdGVyKGxhbWJkYSBwcm9jZXNzb3I6IHByb2Nlc3Nv
ci5pc19hY3RpdmUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nl
c3NvcnMpCisKKyAgICAgICAgICAgIHN0cmVhbV9vcHRpb25zID0gU3RyZWFtT3B0aW9ucygpCisK
KyAgICAgICAgICAgIGZvciBpbmRleCwgcHJvY2Vzc29yIGluIGVudW1lcmF0ZShwcm9jZXNzb3Jz
KToKKyAgICAgICAgICAgICAgICBpZiBub3QgcHJvY2Vzc29yLmlzX2FjdGl2ZSgpOgorICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICAgICAgZXh0ZW5zaW9uX3Jlc3Bv
bnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQorICAgICAgICAgICAgICAg
IGlmIGV4dGVuc2lvbl9yZXNwb25zZSBpcyBOb25lOgorICAgICAgICAgICAgICAgICAgICAjIFJl
amVjdGVkLgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICAgICAg
YWNjZXB0ZWRfZXh0ZW5zaW9ucy5hcHBlbmQoZXh0ZW5zaW9uX3Jlc3BvbnNlKQorCisgICAgICAg
ICAgICAgICAgcHJvY2Vzc29yLnNldHVwX3N0cmVhbV9vcHRpb25zKHN0cmVhbV9vcHRpb25zKQor
CisgICAgICAgICAgICAgICAgaWYgbm90IGlzX2NvbXByZXNzaW9uX2V4dGVuc2lvbihwcm9jZXNz
b3IubmFtZSgpKToKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAg
ICAgICMgSW5hY3RpdmF0ZSBhbGwgb2YgdGhlIGZvbGxvd2luZyBjb21wcmVzc2lvbiBleHRlbnNp
b25zLgorICAgICAgICAgICAgICAgIGZvciBqIGluIHhyYW5nZShpbmRleCArIDEsIGxlbihwcm9j
ZXNzb3JzKSk6CisgICAgICAgICAgICAgICAgICAgIGlmIGlzX2NvbXByZXNzaW9uX2V4dGVuc2lv
bihwcm9jZXNzb3JzW2pdLm5hbWUoKSk6CisgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNz
b3JzW2pdLnNldF9hY3RpdmUoRmFsc2UpCisKKyAgICAgICAgICAgIGlmIGxlbihhY2NlcHRlZF9l
eHRlbnNpb25zKSA+IDA6CisgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19leHRlbnNp
b25zID0gYWNjZXB0ZWRfZXh0ZW5zaW9ucworICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygKKyAgICAgICAgICAgICAgICAgICAgJ0V4dGVuc2lvbnMgYWNjZXB0ZWQ6ICVyJywKKyAg
ICAgICAgICAgICAgICAgICAgbWFwKGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIubmFtZSwgYWNj
ZXB0ZWRfZXh0ZW5zaW9ucykpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNl
bGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9ucyA9IE5vbmUKKworICAgICAgICAgICAgc2VsZi5fcmVx
dWVzdC53c19zdHJlYW0gPSBzZWxmLl9jcmVhdGVfc3RyZWFtKHN0cmVhbV9vcHRpb25zKQorCisg
ICAgICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9wcm90b2NvbHMgaXMgbm90
IE5vbmU6CisgICAgICAgICAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCBpcyBO
b25lOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCisgICAg
ICAgICAgICAgICAgICAgICAgICAnZG9fZXh0cmFfaGFuZHNoYWtlIG11c3QgY2hvb3NlIG9uZSBz
dWJwcm90b2NvbCBmcm9tICcKKyAgICAgICAgICAgICAgICAgICAgICAgICd3c19yZXF1ZXN0ZWRf
cHJvdG9jb2xzIGFuZCBzZXQgaXQgdG8gd3NfcHJvdG9jb2wnKQorICAgICAgICAgICAgICAgIHZh
bGlkYXRlX3N1YnByb3RvY29sKHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wpCisKKyAgICAgICAg
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAgICAgICAgICdTdWJwcm90
b2NvbCBhY2NlcHRlZDogJXInLAorICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0Lndz
X3Byb3RvY29sKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBpZiBzZWxmLl9y
ZXF1ZXN0LndzX3Byb3RvY29sIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICByYWlz
ZSBIYW5kc2hha2VFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgICAgICAgICAnd3NfcHJvdG9j
b2wgbXVzdCBiZSBOb25lIHdoZW4gdGhlIGNsaWVudCBkaWRuXCd0ICcKKyAgICAgICAgICAgICAg
ICAgICAgICAgICdyZXF1ZXN0IGFueSBzdWJwcm90b2NvbCcpCisKKyAgICAgICAgICAgIHNlbGYu
X3NlbmRfaGFuZHNoYWtlKGFjY2VwdCkKKyAgICAgICAgZXhjZXB0IEhhbmRzaGFrZUV4Y2VwdGlv
biwgZToKKyAgICAgICAgICAgIGlmIG5vdCBlLnN0YXR1czoKKyAgICAgICAgICAgICAgICAjIEZh
bGxiYWNrIHRvIDQwMCBiYWQgcmVxdWVzdCBieSBkZWZhdWx0LgorICAgICAgICAgICAgICAgIGUu
c3RhdHVzID0gY29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUCisgICAgICAgICAgICByYWlz
ZSBlCisKKyAgICBkZWYgX2dldF9vcmlnaW4oc2VsZik6CisgICAgICAgIG9yaWdpbl9oZWFkZXIg
PSBjb21tb24uT1JJR0lOX0hFQURFUgorICAgICAgICBvcmlnaW4gPSBzZWxmLl9yZXF1ZXN0Lmhl
YWRlcnNfaW4uZ2V0KG9yaWdpbl9oZWFkZXIpCisgICAgICAgIGlmIG9yaWdpbiBpcyBOb25lOgor
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDbGllbnQgcmVxdWVzdCBkb2VzIG5vdCBo
YXZlIG9yaWdpbiBoZWFkZXInKQorICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX29yaWdpbiA9IG9y
aWdpbgorCisgICAgZGVmIF9jaGVja192ZXJzaW9uKHNlbGYpOgorICAgICAgICB2ZXJzaW9uID0g
Z2V0X21hbmRhdG9yeV9oZWFkZXIoc2VsZi5fcmVxdWVzdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVBREVSKQor
ICAgICAgICBpZiB2ZXJzaW9uID09IF9WRVJTSU9OX0xBVEVTVF9TVFJJTkc6CisgICAgICAgICAg
ICByZXR1cm4gX1ZFUlNJT05fTEFURVNUCisKKyAgICAgICAgaWYgdmVyc2lvbi5maW5kKCcsJykg
Pj0gMDoKKyAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKKyAgICAgICAgICAg
ICAgICAnTXVsdGlwbGUgdmVyc2lvbnMgKCVyKSBhcmUgbm90IGFsbG93ZWQgZm9yIGhlYWRlciAl
cycgJQorICAgICAgICAgICAgICAgICh2ZXJzaW9uLCBjb21tb24uU0VDX1dFQlNPQ0tFVF9WRVJT
SU9OX0hFQURFUiksCisgICAgICAgICAgICAgICAgc3RhdHVzPWNvbW1vbi5IVFRQX1NUQVRVU19C
QURfUkVRVUVTVCkKKyAgICAgICAgcmFpc2UgVmVyc2lvbkV4Y2VwdGlvbigKKyAgICAgICAgICAg
ICdVbnN1cHBvcnRlZCB2ZXJzaW9uICVyIGZvciBoZWFkZXIgJXMnICUKKyAgICAgICAgICAgICh2
ZXJzaW9uLCBjb21tb24uU0VDX1dFQlNPQ0tFVF9WRVJTSU9OX0hFQURFUiksCisgICAgICAgICAg
ICBzdXBwb3J0ZWRfdmVyc2lvbnM9JywgJy5qb2luKG1hcChzdHIsIF9TVVBQT1JURURfVkVSU0lP
TlMpKSkKKworICAgIGRlZiBfc2V0X3Byb3RvY29sKHNlbGYpOgorICAgICAgICBzZWxmLl9yZXF1
ZXN0LndzX3Byb3RvY29sID0gTm9uZQorCisgICAgICAgIHByb3RvY29sX2hlYWRlciA9IHNlbGYu
X3JlcXVlc3QuaGVhZGVyc19pbi5nZXQoCisgICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tF
VF9QUk9UT0NPTF9IRUFERVIpCisKKyAgICAgICAgaWYgcHJvdG9jb2xfaGVhZGVyIGlzIE5vbmU6
CisgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9wcm90b2NvbHMgPSBOb25l
CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3Rl
ZF9wcm90b2NvbHMgPSBwYXJzZV90b2tlbl9saXN0KAorICAgICAgICAgICAgcHJvdG9jb2xfaGVh
ZGVyKQorICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1N1YnByb3RvY29scyByZXF1ZXN0ZWQ6
ICVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVxdWVz
dGVkX3Byb3RvY29scykKKworICAgIGRlZiBfcGFyc2VfZXh0ZW5zaW9ucyhzZWxmKToKKyAgICAg
ICAgZXh0ZW5zaW9uc19oZWFkZXIgPSBzZWxmLl9yZXF1ZXN0LmhlYWRlcnNfaW4uZ2V0KAorICAg
ICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfRVhURU5TSU9OU19IRUFERVIpCisgICAgICAg
IGlmIG5vdCBleHRlbnNpb25zX2hlYWRlcjoKKyAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3Nf
cmVxdWVzdGVkX2V4dGVuc2lvbnMgPSBOb25lCisgICAgICAgICAgICByZXR1cm4KKworICAgICAg
ICB0cnk6CisgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25z
ID0gY29tbW9uLnBhcnNlX2V4dGVuc2lvbnMoCisgICAgICAgICAgICAgICAgZXh0ZW5zaW9uc19o
ZWFkZXIpCisgICAgICAgIGV4Y2VwdCBjb21tb24uRXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbiwg
ZToKKyAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAg
ICAnRmFpbGVkIHRvIHBhcnNlIFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXI6ICVyJyAl
IGUpCisKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAorICAgICAgICAgICAgJ0V4dGVuc2lv
bnMgcmVxdWVzdGVkOiAlcicsCisgICAgICAgICAgICBtYXAoY29tbW9uLkV4dGVuc2lvblBhcmFt
ZXRlci5uYW1lLAorICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVxdWVzdGVkX2V4
dGVuc2lvbnMpKQorCisgICAgZGVmIF92YWxpZGF0ZV9rZXkoc2VsZiwga2V5KToKKyAgICAgICAg
aWYga2V5LmZpbmQoJywnKSA+PSAwOgorICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0
aW9uKCdSZXF1ZXN0IGhhcyBtdWx0aXBsZSAlcyBoZWFkZXIgbGluZXMgb3IgJworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb250YWlucyBpbGxlZ2FsIGNoYXJhY3RlciBc
JyxcJzogJXInICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29tbW9u
LlNFQ19XRUJTT0NLRVRfS0VZX0hFQURFUiwga2V5KSkKKworICAgICAgICAjIFZhbGlkYXRlCisg
ICAgICAgIGtleV9pc192YWxpZCA9IEZhbHNlCisgICAgICAgIHRyeToKKyAgICAgICAgICAgICMg
VmFsaWRhdGUga2V5IGJ5IHF1aWNrIHJlZ2V4IG1hdGNoIGJlZm9yZSBwYXJzaW5nIGJ5IGJhc2U2
NAorICAgICAgICAgICAgIyBtb2R1bGUuIEJlY2F1c2UgYmFzZTY0IG1vZHVsZSBza2lwcyBpbnZh
bGlkIGNoYXJhY3RlcnMsIHdlIGhhdmUKKyAgICAgICAgICAgICMgdG8gZG8gdGhpcyBpbiBhZHZh
bmNlIHRvIG1ha2UgdGhpcyBzZXJ2ZXIgc3RyaWN0bHkgcmVqZWN0IGlsbGVnYWwKKyAgICAgICAg
ICAgICMga2V5cy4KKyAgICAgICAgICAgIGlmIF9TRUNfV0VCU09DS0VUX0tFWV9SRUdFWC5tYXRj
aChrZXkpOgorICAgICAgICAgICAgICAgIGRlY29kZWRfa2V5ID0gYmFzZTY0LmI2NGRlY29kZShr
ZXkpCisgICAgICAgICAgICAgICAgaWYgbGVuKGRlY29kZWRfa2V5KSA9PSAxNjoKKyAgICAgICAg
ICAgICAgICAgICAga2V5X2lzX3ZhbGlkID0gVHJ1ZQorICAgICAgICBleGNlcHQgVHlwZUVycm9y
LCBlOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIGlmIG5vdCBrZXlfaXNfdmFsaWQ6Cisg
ICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ0ls
bGVnYWwgdmFsdWUgZm9yIGhlYWRlciAlczogJXInICUKKyAgICAgICAgICAgICAgICAoY29tbW9u
LlNFQ19XRUJTT0NLRVRfS0VZX0hFQURFUiwga2V5KSkKKworICAgICAgICByZXR1cm4gZGVjb2Rl
ZF9rZXkKKworICAgIGRlZiBfZ2V0X2tleShzZWxmKToKKyAgICAgICAga2V5ID0gZ2V0X21hbmRh
dG9yeV9oZWFkZXIoCisgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LCBjb21tb24uU0VDX1dFQlNP
Q0tFVF9LRVlfSEVBREVSKQorCisgICAgICAgIGRlY29kZWRfa2V5ID0gc2VsZi5fdmFsaWRhdGVf
a2V5KGtleSkKKworICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAnJXM6
ICVyICglcyknLAorICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZX0hFQURFUiwK
KyAgICAgICAgICAgIGtleSwKKyAgICAgICAgICAgIHV0aWwuaGV4aWZ5KGRlY29kZWRfa2V5KSkK
KworICAgICAgICByZXR1cm4ga2V5CisKKyAgICBkZWYgX2NyZWF0ZV9zdHJlYW0oc2VsZiwgc3Ry
ZWFtX29wdGlvbnMpOgorICAgICAgICByZXR1cm4gU3RyZWFtKHNlbGYuX3JlcXVlc3QsIHN0cmVh
bV9vcHRpb25zKQorCisgICAgZGVmIF9jcmVhdGVfaGFuZHNoYWtlX3Jlc3BvbnNlKHNlbGYsIGFj
Y2VwdCk6CisgICAgICAgIHJlc3BvbnNlID0gW10KKworICAgICAgICByZXNwb25zZS5hcHBlbmQo
J0hUVFAvMS4xIDEwMSBTd2l0Y2hpbmcgUHJvdG9jb2xzXHJcbicpCisKKyAgICAgICAgIyBXZWJT
b2NrZXQgaGVhZGVycworICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigKKyAg
ICAgICAgICAgIGNvbW1vbi5VUEdSQURFX0hFQURFUiwgY29tbW9uLldFQlNPQ0tFVF9VUEdSQURF
X1RZUEUpKQorICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigKKyAgICAgICAg
ICAgIGNvbW1vbi5DT05ORUNUSU9OX0hFQURFUiwgY29tbW9uLlVQR1JBREVfQ09OTkVDVElPTl9U
WVBFKSkKKyAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9oZWFkZXIoCisgICAgICAgICAg
ICBjb21tb24uU0VDX1dFQlNPQ0tFVF9BQ0NFUFRfSEVBREVSLCBhY2NlcHQpKQorICAgICAgICBp
ZiBzZWxmLl9yZXF1ZXN0LndzX3Byb3RvY29sIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmVz
cG9uc2UuYXBwZW5kKGZvcm1hdF9oZWFkZXIoCisgICAgICAgICAgICAgICAgY29tbW9uLlNFQ19X
RUJTT0NLRVRfUFJPVE9DT0xfSEVBREVSLAorICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qu
d3NfcHJvdG9jb2wpKQorICAgICAgICBpZiAoc2VsZi5fcmVxdWVzdC53c19leHRlbnNpb25zIGlz
IG5vdCBOb25lIGFuZAorICAgICAgICAgICAgbGVuKHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9u
cykgIT0gMCk6CisgICAgICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigKKyAg
ICAgICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9FWFRFTlNJT05TX0hFQURFUiwKKyAg
ICAgICAgICAgICAgICBjb21tb24uZm9ybWF0X2V4dGVuc2lvbnMoc2VsZi5fcmVxdWVzdC53c19l
eHRlbnNpb25zKSkpCisKKyAgICAgICAgIyBIZWFkZXJzIG5vdCBzcGVjaWZpYyBmb3IgV2ViU29j
a2V0CisgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBzZWxmLl9yZXF1ZXN0LmV4dHJhX2hlYWRl
cnM6CisgICAgICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcihuYW1lLCB2YWx1
ZSkpCisKKyAgICAgICAgcmVzcG9uc2UuYXBwZW5kKCdcclxuJykKKworICAgICAgICByZXR1cm4g
Jycuam9pbihyZXNwb25zZSkKKworICAgIGRlZiBfc2VuZF9oYW5kc2hha2Uoc2VsZiwgYWNjZXB0
KToKKyAgICAgICAgcmF3X3Jlc3BvbnNlID0gc2VsZi5fY3JlYXRlX2hhbmRzaGFrZV9yZXNwb25z
ZShhY2NlcHQpCisgICAgICAgIHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi53cml0ZShyYXdfcmVz
cG9uc2UpCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU2VudCBzZXJ2ZXJcJ3Mgb3Blbmlu
ZyBoYW5kc2hha2U6ICVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhd19yZXNwb25z
ZSkKKworCisjIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29j
a2V0L2hhbmRzaGFrZS9oeWJpMDAucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2Uv
aHliaTAwLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3NTc3MTdhNjM5YmFjM2RiMDVkNGNiMzAyN2UwNTVmZGJm
N2YzY2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2Uv
aHliaTAwLnB5CkBAIC0wLDAgKzEsMjkzIEBACisjIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5j
LgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisj
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCisiIiJUaGlz
IGZpbGUgcHJvdmlkZXMgdGhlIG9wZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3NvciBmb3IgdGhlIFdl
YlNvY2tldAorcHJvdG9jb2wgdmVyc2lvbiBIeUJpIDAwLgorCitTcGVjaWZpY2F0aW9uOgoraHR0
cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1oeWJpLXRoZXdlYnNvY2tldHByb3Rv
Y29sLTAwCisiIiIKKworCisjIE5vdGU6IHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZS9yZWFkIGFy
ZSB1c2VkIGluIHRoaXMgbW9kdWxlLCBldmVuIHRob3VnaAorIyBtb2RfcHl0aG9uIGRvY3VtZW50
IHNheXMgdGhhdCB0aGV5IHNob3VsZCBiZSB1c2VkIG9ubHkgaW4gY29ubmVjdGlvbgorIyBoYW5k
bGVycy4gVW5mb3J0dW5hdGVseSwgd2UgaGF2ZSBubyBvdGhlciBvcHRpb25zLiBGb3IgZXhhbXBs
ZSwKKyMgcmVxdWVzdC53cml0ZS9yZWFkIGFyZSBub3Qgc3VpdGFibGUgYmVjYXVzZSB0aGV5IGRv
bid0IGFsbG93IGRpcmVjdCByYXcgYnl0ZXMKKyMgd3JpdGluZy9yZWFkaW5nLgorCisKK2ltcG9y
dCBsb2dnaW5nCitpbXBvcnQgcmUKK2ltcG9ydCBzdHJ1Y3QKKworZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQgaW1wb3J0IGNvbW1vbgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBTdHJl
YW1IaXhpZTc1Citmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAorZnJvbSBtb2RfcHl3
ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBIYW5kc2hha2VFeGNlcHRpb24KK2Zyb20g
bW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgY2hlY2tfcmVxdWVzdF9saW5l
Citmcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IGZvcm1hdF9oZWFk
ZXIKK2Zyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgZ2V0X2RlZmF1
bHRfcG9ydAorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBnZXRf
bWFuZGF0b3J5X2hlYWRlcgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGlt
cG9ydCBwYXJzZV9ob3N0X2hlYWRlcgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9i
YXNlIGltcG9ydCB2YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyCisKKworX01BTkRBVE9SWV9IRUFE
RVJTID0gWworICAgICMga2V5LCBleHBlY3RlZCB2YWx1ZSBvciBOb25lCisgICAgW2NvbW1vbi5V
UEdSQURFX0hFQURFUiwgY29tbW9uLldFQlNPQ0tFVF9VUEdSQURFX1RZUEVfSElYSUU3NV0sCisg
ICAgW2NvbW1vbi5DT05ORUNUSU9OX0hFQURFUiwgY29tbW9uLlVQR1JBREVfQ09OTkVDVElPTl9U
WVBFXSwKK10KKworCitkZWYgX3ZhbGlkYXRlX3N1YnByb3RvY29sKHN1YnByb3RvY29sKToKKyAg
ICAiIiJDaGVja3MgaWYgY2hhcmFjdGVycyBpbiBzdWJwcm90b2NvbCBhcmUgaW4gcmFuZ2UgYmV0
d2VlbiBVKzAwMjAgYW5kCisgICAgVSswMDdFLiBBIHZhbHVlIGluIHRoZSBTZWMtV2ViU29ja2V0
LVByb3RvY29sIGZpZWxkIG5lZWQgdG8gc2F0aXNmeSB0aGlzCisgICAgcmVxdWlyZW1lbnQuCisK
KyAgICBTZWUgdGhlIFNlY3Rpb24gNC4xLiBPcGVuaW5nIGhhbmRzaGFrZSBvZiB0aGUgc3BlYy4K
KyAgICAiIiIKKworICAgIGlmIG5vdCBzdWJwcm90b2NvbDoKKyAgICAgICAgcmFpc2UgSGFuZHNo
YWtlRXhjZXB0aW9uKCdJbnZhbGlkIHN1YnByb3RvY29sIG5hbWU6IGVtcHR5JykKKworICAgICMg
UGFyYW1ldGVyIHNob3VsZCBiZSBpbiB0aGUgcmFuZ2UgVSswMDIwIHRvIFUrMDA3RS4KKyAgICBm
b3IgYyBpbiBzdWJwcm90b2NvbDoKKyAgICAgICAgaWYgbm90IDB4MjAgPD0gb3JkKGMpIDw9IDB4
N2U6CisgICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCisgICAgICAgICAgICAg
ICAgJ0lsbGVnYWwgY2hhcmFjdGVyIGluIHN1YnByb3RvY29sIG5hbWU6ICVyJyAlIGMpCisKKwor
ZGVmIF9jaGVja19oZWFkZXJfbGluZXMocmVxdWVzdCwgbWFuZGF0b3J5X2hlYWRlcnMpOgorICAg
IGNoZWNrX3JlcXVlc3RfbGluZShyZXF1ZXN0KQorCisgICAgIyBUaGUgZXhwZWN0ZWQgZmllbGQg
bmFtZXMsIGFuZCB0aGUgbWVhbmluZyBvZiB0aGVpciBjb3JyZXNwb25kaW5nCisgICAgIyB2YWx1
ZXMsIGFyZSBhcyBmb2xsb3dzLgorICAgICMgIHxVcGdyYWRlfCBhbmQgfENvbm5lY3Rpb258Cisg
ICAgZm9yIGtleSwgZXhwZWN0ZWRfdmFsdWUgaW4gbWFuZGF0b3J5X2hlYWRlcnM6CisgICAgICAg
IHZhbGlkYXRlX21hbmRhdG9yeV9oZWFkZXIocmVxdWVzdCwga2V5LCBleHBlY3RlZF92YWx1ZSkK
KworCitkZWYgX2J1aWxkX2xvY2F0aW9uKHJlcXVlc3QpOgorICAgICIiIkJ1aWxkIFdlYlNvY2tl
dCBsb2NhdGlvbiBmb3IgcmVxdWVzdC4iIiIKKworICAgIGxvY2F0aW9uX3BhcnRzID0gW10KKyAg
ICBpZiByZXF1ZXN0LmlzX2h0dHBzKCk6CisgICAgICAgIGxvY2F0aW9uX3BhcnRzLmFwcGVuZChj
b21tb24uV0VCX1NPQ0tFVF9TRUNVUkVfU0NIRU1FKQorICAgIGVsc2U6CisgICAgICAgIGxvY2F0
aW9uX3BhcnRzLmFwcGVuZChjb21tb24uV0VCX1NPQ0tFVF9TQ0hFTUUpCisgICAgbG9jYXRpb25f
cGFydHMuYXBwZW5kKCc6Ly8nKQorICAgIGhvc3QsIHBvcnQgPSBwYXJzZV9ob3N0X2hlYWRlcihy
ZXF1ZXN0KQorICAgIGNvbm5lY3Rpb25fcG9ydCA9IHJlcXVlc3QuY29ubmVjdGlvbi5sb2NhbF9h
ZGRyWzFdCisgICAgaWYgcG9ydCAhPSBjb25uZWN0aW9uX3BvcnQ6CisgICAgICAgIHJhaXNlIEhh
bmRzaGFrZUV4Y2VwdGlvbignSGVhZGVyL2Nvbm5lY3Rpb24gcG9ydCBtaXNtYXRjaDogJWQvJWQn
ICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb3J0LCBjb25uZWN0aW9uX3Bv
cnQpKQorICAgIGxvY2F0aW9uX3BhcnRzLmFwcGVuZChob3N0KQorICAgIGlmIChwb3J0ICE9IGdl
dF9kZWZhdWx0X3BvcnQocmVxdWVzdC5pc19odHRwcygpKSk6CisgICAgICAgIGxvY2F0aW9uX3Bh
cnRzLmFwcGVuZCgnOicpCisgICAgICAgIGxvY2F0aW9uX3BhcnRzLmFwcGVuZChzdHIocG9ydCkp
CisgICAgbG9jYXRpb25fcGFydHMuYXBwZW5kKHJlcXVlc3QudW5wYXJzZWRfdXJpKQorICAgIHJl
dHVybiAnJy5qb2luKGxvY2F0aW9uX3BhcnRzKQorCisKK2NsYXNzIEhhbmRzaGFrZXIob2JqZWN0
KToKKyAgICAiIiJPcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IgZm9yIHRoZSBXZWJTb2NrZXQg
cHJvdG9jb2wgdmVyc2lvbiBIeUJpIDAwLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNl
bGYsIHJlcXVlc3QsIGRpc3BhdGNoZXIpOgorICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFu
Y2UuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVx
dWVzdC4KKyAgICAgICAgICAgIGRpc3BhdGNoZXI6IERpc3BhdGNoZXIgKGRpc3BhdGNoLkRpc3Bh
dGNoZXIpLgorCisgICAgICAgIEhhbmRzaGFrZXIgd2lsbCBhZGQgYXR0cmlidXRlcyBzdWNoIGFz
IHdzX3Jlc291cmNlIGluIHBlcmZvcm1pbmcKKyAgICAgICAgaGFuZHNoYWtlLgorICAgICAgICAi
IiIKKworICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikK
KworICAgICAgICBzZWxmLl9yZXF1ZXN0ID0gcmVxdWVzdAorICAgICAgICBzZWxmLl9kaXNwYXRj
aGVyID0gZGlzcGF0Y2hlcgorCisgICAgZGVmIGRvX2hhbmRzaGFrZShzZWxmKToKKyAgICAgICAg
IiIiUGVyZm9ybSBXZWJTb2NrZXQgSGFuZHNoYWtlLgorCisgICAgICAgIE9uIF9yZXF1ZXN0LCB3
ZSBzZXQKKyAgICAgICAgICAgIHdzX3Jlc291cmNlLCB3c19wcm90b2NvbCwgd3NfbG9jYXRpb24s
IHdzX29yaWdpbiwgd3NfY2hhbGxlbmdlLAorICAgICAgICAgICAgd3NfY2hhbGxlbmdlX21kNTog
V2ViU29ja2V0IGhhbmRzaGFrZSBpbmZvcm1hdGlvbi4KKyAgICAgICAgICAgIHdzX3N0cmVhbTog
RnJhbWUgZ2VuZXJhdGlvbi9wYXJzaW5nIGNsYXNzLgorICAgICAgICAgICAgd3NfdmVyc2lvbjog
UHJvdG9jb2wgdmVyc2lvbi4KKworICAgICAgICBSYWlzZXM6CisgICAgICAgICAgICBIYW5kc2hh
a2VFeGNlcHRpb246IHdoZW4gYW55IGVycm9yIGhhcHBlbmVkIGluIHBhcnNpbmcgdGhlIG9wZW5p
bmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZHNoYWtlIHJlcXVlc3QuCisg
ICAgICAgICIiIgorCisgICAgICAgICMgNS4xIFJlYWRpbmcgdGhlIGNsaWVudCdzIG9wZW5pbmcg
aGFuZHNoYWtlLgorICAgICAgICAjIGRpc3BhdGNoZXIgc2V0cyBpdCBpbiBzZWxmLl9yZXF1ZXN0
LgorICAgICAgICBfY2hlY2tfaGVhZGVyX2xpbmVzKHNlbGYuX3JlcXVlc3QsIF9NQU5EQVRPUllf
SEVBREVSUykKKyAgICAgICAgc2VsZi5fc2V0X3Jlc291cmNlKCkKKyAgICAgICAgc2VsZi5fc2V0
X3N1YnByb3RvY29sKCkKKyAgICAgICAgc2VsZi5fc2V0X2xvY2F0aW9uKCkKKyAgICAgICAgc2Vs
Zi5fc2V0X29yaWdpbigpCisgICAgICAgIHNlbGYuX3NldF9jaGFsbGVuZ2VfcmVzcG9uc2UoKQor
ICAgICAgICBzZWxmLl9zZXRfcHJvdG9jb2xfdmVyc2lvbigpCisKKyAgICAgICAgc2VsZi5fZGlz
cGF0Y2hlci5kb19leHRyYV9oYW5kc2hha2Uoc2VsZi5fcmVxdWVzdCkKKworICAgICAgICBzZWxm
Ll9zZW5kX2hhbmRzaGFrZSgpCisKKyAgICBkZWYgX3NldF9yZXNvdXJjZShzZWxmKToKKyAgICAg
ICAgc2VsZi5fcmVxdWVzdC53c19yZXNvdXJjZSA9IHNlbGYuX3JlcXVlc3QudXJpCisKKyAgICBk
ZWYgX3NldF9zdWJwcm90b2NvbChzZWxmKToKKyAgICAgICAgIyB8U2VjLVdlYlNvY2tldC1Qcm90
b2NvbHwKKyAgICAgICAgc3VicHJvdG9jb2wgPSBzZWxmLl9yZXF1ZXN0LmhlYWRlcnNfaW4uZ2V0
KAorICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfUFJPVE9DT0xfSEVBREVSKQorICAg
ICAgICBpZiBzdWJwcm90b2NvbCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIF92YWxpZGF0ZV9z
dWJwcm90b2NvbChzdWJwcm90b2NvbCkKKyAgICAgICAgc2VsZi5fcmVxdWVzdC53c19wcm90b2Nv
bCA9IHN1YnByb3RvY29sCisKKyAgICBkZWYgX3NldF9sb2NhdGlvbihzZWxmKToKKyAgICAgICAg
IyB8SG9zdHwKKyAgICAgICAgaG9zdCA9IHNlbGYuX3JlcXVlc3QuaGVhZGVyc19pbi5nZXQoY29t
bW9uLkhPU1RfSEVBREVSKQorICAgICAgICBpZiBob3N0IGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgc2VsZi5fcmVxdWVzdC53c19sb2NhdGlvbiA9IF9idWlsZF9sb2NhdGlvbihzZWxmLl9yZXF1
ZXN0KQorICAgICAgICAjIFRPRE8odWthaSk6IGNoZWNrIGhvc3QgaXMgdGhpcyBob3N0LgorCisg
ICAgZGVmIF9zZXRfb3JpZ2luKHNlbGYpOgorICAgICAgICAjIHxPcmlnaW58CisgICAgICAgIG9y
aWdpbiA9IHNlbGYuX3JlcXVlc3QuaGVhZGVyc19pbi5nZXQoY29tbW9uLk9SSUdJTl9IRUFERVIp
CisgICAgICAgIGlmIG9yaWdpbiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX3JlcXVl
c3Qud3Nfb3JpZ2luID0gb3JpZ2luCisKKyAgICBkZWYgX3NldF9wcm90b2NvbF92ZXJzaW9uKHNl
bGYpOgorICAgICAgICAjIHxTZWMtV2ViU29ja2V0LURyYWZ0fAorICAgICAgICBkcmFmdCA9IHNl
bGYuX3JlcXVlc3QuaGVhZGVyc19pbi5nZXQoY29tbW9uLlNFQ19XRUJTT0NLRVRfRFJBRlRfSEVB
REVSKQorICAgICAgICBpZiBkcmFmdCBpcyBub3QgTm9uZSBhbmQgZHJhZnQgIT0gJzAnOgorICAg
ICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdJbGxlZ2FsIHZhbHVlIGZvciAlczog
JXMnICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29tbW9uLlNFQ19X
RUJTT0NLRVRfRFJBRlRfSEVBREVSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkcmFmdCkpCisKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdQcm90b2NvbCB2ZXJz
aW9uIGlzIEh5QmkgMDAnKQorICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3ZlcnNpb24gPSBjb21t
b24uVkVSU0lPTl9IWUJJMDAKKyAgICAgICAgc2VsZi5fcmVxdWVzdC53c19zdHJlYW0gPSBTdHJl
YW1IaXhpZTc1KHNlbGYuX3JlcXVlc3QsIFRydWUpCisKKyAgICBkZWYgX3NldF9jaGFsbGVuZ2Vf
cmVzcG9uc2Uoc2VsZik6CisgICAgICAgICMgNS4yIDQtOC4KKyAgICAgICAgc2VsZi5fcmVxdWVz
dC53c19jaGFsbGVuZ2UgPSBzZWxmLl9nZXRfY2hhbGxlbmdlKCkKKyAgICAgICAgIyA1LjIgOS4g
bGV0IC9yZXNwb25zZS8gYmUgdGhlIE1ENSBmaW50ZXJwcmludCBvZiAvY2hhbGxlbmdlLworICAg
ICAgICBzZWxmLl9yZXF1ZXN0LndzX2NoYWxsZW5nZV9tZDUgPSB1dGlsLm1kNV9oYXNoKAorICAg
ICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jaGFsbGVuZ2UpLmRpZ2VzdCgpCisgICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygKKyAgICAgICAgICAgICdDaGFsbGVuZ2U6ICVyICglcyknLAorICAg
ICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jaGFsbGVuZ2UsCisgICAgICAgICAgICB1dGlsLmhl
eGlmeShzZWxmLl9yZXF1ZXN0LndzX2NoYWxsZW5nZSkpCisgICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygKKyAgICAgICAgICAgICdDaGFsbGVuZ2UgcmVzcG9uc2U6ICVyICglcyknLAorICAgICAg
ICAgICAgc2VsZi5fcmVxdWVzdC53c19jaGFsbGVuZ2VfbWQ1LAorICAgICAgICAgICAgdXRpbC5o
ZXhpZnkoc2VsZi5fcmVxdWVzdC53c19jaGFsbGVuZ2VfbWQ1KSkKKworICAgIGRlZiBfZ2V0X2tl
eV92YWx1ZShzZWxmLCBrZXlfZmllbGQpOgorICAgICAgICBrZXlfdmFsdWUgPSBnZXRfbWFuZGF0
b3J5X2hlYWRlcihzZWxmLl9yZXF1ZXN0LCBrZXlfZmllbGQpCisKKyAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKCclczogJXInLCBrZXlfZmllbGQsIGtleV92YWx1ZSkKKworICAgICAgICAjIDUu
MiA0LiBsZXQgL2tleS1udW1iZXJfbi8gYmUgdGhlIGRpZ2l0cyAoY2hhcmFjdGVycyBpbiB0aGUg
cmFuZ2UKKyAgICAgICAgIyBVKzAwMzAgRElHSVQgWkVSTyAoMCkgdG8gVSswMDM5IERJR0lUIE5J
TkUgKDkpKSBpbiAva2V5X24vLAorICAgICAgICAjIGludGVycHJldGVkIGFzIGEgYmFzZSB0ZW4g
aW50ZWdlciwgaWdub3JpbmcgYWxsIG90aGVyIGNoYXJhY3RlcnMKKyAgICAgICAgIyBpbiAva2V5
X24vLgorICAgICAgICB0cnk6CisgICAgICAgICAgICBrZXlfbnVtYmVyID0gaW50KHJlLnN1Yigi
XFxEIiwgIiIsIGtleV92YWx1ZSkpCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIHJhaXNl
IEhhbmRzaGFrZUV4Y2VwdGlvbignJXMgZmllbGQgY29udGFpbnMgbm8gZGlnaXQnICUga2V5X2Zp
ZWxkKQorICAgICAgICAjIDUuMiA1LiBsZXQgL3NwYWNlc19uLyBiZSB0aGUgbnVtYmVyIG9mIFUr
MDAyMCBTUEFDRSBjaGFyYWN0ZXJzCisgICAgICAgICMgaW4gL2tleV9uLy4KKyAgICAgICAgc3Bh
Y2VzID0gcmUuc3VibigiICIsICIiLCBrZXlfdmFsdWUpWzFdCisgICAgICAgIGlmIHNwYWNlcyA9
PSAwOgorICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCclcyBmaWVsZCBjb250
YWlucyBubyBzcGFjZScgJSBrZXlfZmllbGQpCisKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVn
KAorICAgICAgICAgICAgJyVzOiBLZXktbnVtYmVyIGlzICVkIGFuZCBudW1iZXIgb2Ygc3BhY2Vz
IGlzICVkJywKKyAgICAgICAgICAgIGtleV9maWVsZCwga2V5X251bWJlciwgc3BhY2VzKQorCisg
ICAgICAgICMgNS4yIDYuIGlmIC9rZXktbnVtYmVyX24vIGlzIG5vdCBhbiBpbnRlZ3JhbCBtdWx0
aXBsZSBvZiAvc3BhY2VzX24vCisgICAgICAgICMgdGhlbiBhYm9ydCB0aGUgV2ViU29ja2V0IGNv
bm5lY3Rpb24uCisgICAgICAgIGlmIGtleV9udW1iZXIgJSBzcGFjZXMgIT0gMDoKKyAgICAgICAg
ICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnJXM6IEtleS1u
dW1iZXIgKCVkKSBpcyBub3QgYW4gaW50ZWdyYWwgbXVsdGlwbGUgb2Ygc3BhY2VzICcKKyAgICAg
ICAgICAgICAgICAnKCVkKScgJSAoa2V5X2ZpZWxkLCBrZXlfbnVtYmVyLCBzcGFjZXMpKQorICAg
ICAgICAjIDUuMiA3LiBsZXQgL3BhcnRfbi8gYmUgL2tleS1udW1iZXJfbi8gZGl2aWRlZCBieSAv
c3BhY2VzX24vLgorICAgICAgICBwYXJ0ID0ga2V5X251bWJlciAvIHNwYWNlcworICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoJyVzOiBQYXJ0IGlzICVkJywga2V5X2ZpZWxkLCBwYXJ0KQorICAg
ICAgICByZXR1cm4gcGFydAorCisgICAgZGVmIF9nZXRfY2hhbGxlbmdlKHNlbGYpOgorICAgICAg
ICAjIDUuMiA0LTcuCisgICAgICAgIGtleTEgPSBzZWxmLl9nZXRfa2V5X3ZhbHVlKGNvbW1vbi5T
RUNfV0VCU09DS0VUX0tFWTFfSEVBREVSKQorICAgICAgICBrZXkyID0gc2VsZi5fZ2V0X2tleV92
YWx1ZShjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVkyX0hFQURFUikKKyAgICAgICAgIyA1LjIgOC4g
bGV0IC9jaGFsbGVuZ2UvIGJlIHRoZSBjb25jYXRlbmF0aW9uIG9mIC9wYXJ0XzEvLAorICAgICAg
ICBjaGFsbGVuZ2UgPSAnJworICAgICAgICBjaGFsbGVuZ2UgKz0gc3RydWN0LnBhY2soJyFJJywg
a2V5MSkgICMgbmV0d29yayBieXRlb3JkZXIgaW50CisgICAgICAgIGNoYWxsZW5nZSArPSBzdHJ1
Y3QucGFjaygnIUknLCBrZXkyKSAgIyBuZXR3b3JrIGJ5dGVvcmRlciBpbnQKKyAgICAgICAgY2hh
bGxlbmdlICs9IHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi5yZWFkKDgpCisgICAgICAgIHJldHVy
biBjaGFsbGVuZ2UKKworICAgIGRlZiBfc2VuZF9oYW5kc2hha2Uoc2VsZik6CisgICAgICAgIHJl
c3BvbnNlID0gW10KKworICAgICAgICAjIDUuMiAxMC4gc2VuZCB0aGUgZm9sbG93aW5nIGxpbmUu
CisgICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnSFRUUC8xLjEgMTAxIFdlYlNvY2tldCBQcm90b2Nv
bCBIYW5kc2hha2VcclxuJykKKworICAgICAgICAjIDUuMiAxMS4gc2VuZCB0aGUgZm9sbG93aW5n
IGZpZWxkcyB0byB0aGUgY2xpZW50LgorICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hl
YWRlcigKKyAgICAgICAgICAgIGNvbW1vbi5VUEdSQURFX0hFQURFUiwgY29tbW9uLldFQlNPQ0tF
VF9VUEdSQURFX1RZUEVfSElYSUU3NSkpCisgICAgICAgIHJlc3BvbnNlLmFwcGVuZChmb3JtYXRf
aGVhZGVyKAorICAgICAgICAgICAgY29tbW9uLkNPTk5FQ1RJT05fSEVBREVSLCBjb21tb24uVVBH
UkFERV9DT05ORUNUSU9OX1RZUEUpKQorICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hl
YWRlcigKKyAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX0xPQ0FUSU9OX0hFQURFUiwg
c2VsZi5fcmVxdWVzdC53c19sb2NhdGlvbikpCisgICAgICAgIHJlc3BvbnNlLmFwcGVuZChmb3Jt
YXRfaGVhZGVyKAorICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfT1JJR0lOX0hFQURF
Uiwgc2VsZi5fcmVxdWVzdC53c19vcmlnaW4pKQorICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0Lndz
X3Byb3RvY29sOgorICAgICAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9oZWFkZXIoCisg
ICAgICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfUFJPVE9DT0xfSEVBREVSLAorICAg
ICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wpKQorICAgICAgICAjIDUuMiAx
Mi4gc2VuZCB0d28gYnl0ZXMgMHgwRCAweDBBLgorICAgICAgICByZXNwb25zZS5hcHBlbmQoJ1xy
XG4nKQorICAgICAgICAjIDUuMiAxMy4gc2VuZCAvcmVzcG9uc2UvCisgICAgICAgIHJlc3BvbnNl
LmFwcGVuZChzZWxmLl9yZXF1ZXN0LndzX2NoYWxsZW5nZV9tZDUpCisKKyAgICAgICAgcmF3X3Jl
c3BvbnNlID0gJycuam9pbihyZXNwb25zZSkKKyAgICAgICAgc2VsZi5fcmVxdWVzdC5jb25uZWN0
aW9uLndyaXRlKHJhd19yZXNwb25zZSkKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW50
IHNlcnZlclwncyBvcGVuaW5nIGhhbmRzaGFrZTogJXInLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmF3X3Jlc3BvbnNlKQorCisKKyMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2Rf
cHl3ZWJzb2NrZXQvaGFuZHNoYWtlL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmOWQ1YjJj
YzZhZjFhNmI3NmVjNTE1ZGRlZGI4MDI2OGZmNzZmMTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMCBA
QAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlo
dHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitE
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qg
b2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL19faW5pdF9fLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL19iYXNlLnB5CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJz
b2NrZXQvaGFuZHNoYWtlL2h5YmkucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2Uv
aHliaTAwLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oZWFkZXJwYXJzZXJo
YW5kbGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGVhZGVycGFyc2VyaGFuZGxlci5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kZGE0M2M5ZDgxOTdmMjE3ODA0MzMxZmIxYmU5NzA2NTI4MmUzNjQ2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGVhZGVycGFyc2VyaGFuZGxlci5w
eQpAQCAtMCwwICsxLDI1NyBAQAorIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KKyMgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0
OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKworIiIiUHl0aG9uSGVhZGVy
UGFyc2VySGFuZGxlciBmb3IgbW9kX3B5d2Vic29ja2V0LgorCitBcGFjaGUgSFRUUCBTZXJ2ZXIg
YW5kIG1vZF9weXRob24gbXVzdCBiZSBjb25maWd1cmVkIHN1Y2ggdGhhdCB0aGlzCitmdW5jdGlv
biBpcyBjYWxsZWQgdG8gaGFuZGxlIFdlYlNvY2tldCByZXF1ZXN0LgorIiIiCisKKworaW1wb3J0
IGxvZ2dpbmcKKworZnJvbSBtb2RfcHl0aG9uIGltcG9ydCBhcGFjaGUKKworZnJvbSBtb2RfcHl3
ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGRpc3Bh
dGNoCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaGFuZHNoYWtlCitmcm9tIG1vZF9weXdl
YnNvY2tldCBpbXBvcnQgdXRpbAorCisKKyMgUHl0aG9uT3B0aW9uIHRvIHNwZWNpZnkgdGhlIGhh
bmRsZXIgcm9vdCBkaXJlY3RvcnkuCitfUFlPUFRfSEFORExFUl9ST09UID0gJ21vZF9weXdlYnNv
Y2tldC5oYW5kbGVyX3Jvb3QnCisKKyMgUHl0aG9uT3B0aW9uIHRvIHNwZWNpZnkgdGhlIGhhbmRs
ZXIgc2NhbiBkaXJlY3RvcnkuCisjIFRoaXMgbXVzdCBiZSBhIGRpcmVjdG9yeSB1bmRlciB0aGUg
cm9vdCBkaXJlY3RvcnkuCisjIFRoZSBkZWZhdWx0IGlzIHRoZSByb290IGRpcmVjdG9yeS4KK19Q
WU9QVF9IQU5ETEVSX1NDQU4gPSAnbW9kX3B5d2Vic29ja2V0LmhhbmRsZXJfc2NhbicKKworIyBQ
eXRob25PcHRpb24gdG8gYWxsb3cgaGFuZGxlcnMgd2hvc2UgY2Fub25pY2FsIHBhdGggaXMKKyMg
bm90IHVuZGVyIHRoZSByb290IGRpcmVjdG9yeS4gSXQncyBkaXNhbGxvd2VkIGJ5IGRlZmF1bHQu
CisjIFNldCB0aGlzIG9wdGlvbiB3aXRoIHZhbHVlIG9mICd5ZXMnIHRvIGFsbG93LgorX1BZT1BU
X0FMTE9XX0hBTkRMRVJTX09VVFNJREVfUk9PVCA9ICgKKyAgICAnbW9kX3B5d2Vic29ja2V0LmFs
bG93X2hhbmRsZXJzX291dHNpZGVfcm9vdF9kaXInKQorIyBNYXAgZnJvbSB2YWx1ZXMgdG8gdGhl
aXIgbWVhbmluZ3MuICdZZXMnIGFuZCAnTm8nIGFyZSBhbGxvd2VkIGp1c3QgZm9yCisjIGNvbXBh
dGliaWxpdHkuCitfUFlPUFRfQUxMT1dfSEFORExFUlNfT1VUU0lERV9ST09UX0RFRklOSVRJT04g
PSB7CisgICAgJ29mZic6IEZhbHNlLCAnbm8nOiBGYWxzZSwgJ29uJzogVHJ1ZSwgJ3llcyc6IFRy
dWV9CisKKyMgKE9ic29sZXRlIG9wdGlvbi4gSWdub3JlZC4pCisjIFB5dGhvbk9wdGlvbiB0byBz
cGVjaWZ5IHRvIGFsbG93IGhhbmRzaGFrZSBkZWZpbmVkIGluIEhpeGllIDc1IHZlcnNpb24KKyMg
cHJvdG9jb2wuIFRoZSBkZWZhdWx0IGlzIE5vbmUgKE9mZikKK19QWU9QVF9BTExPV19EUkFGVDc1
ID0gJ21vZF9weXdlYnNvY2tldC5hbGxvd19kcmFmdDc1JworIyBNYXAgZnJvbSB2YWx1ZXMgdG8g
dGhlaXIgbWVhbmluZ3MuCitfUFlPUFRfQUxMT1dfRFJBRlQ3NV9ERUZJTklUSU9OID0geydvZmYn
OiBGYWxzZSwgJ29uJzogVHJ1ZX0KKworCitjbGFzcyBBcGFjaGVMb2dIYW5kbGVyKGxvZ2dpbmcu
SGFuZGxlcik6CisKKyAgICAiIiJXcmFwcGVyIGxvZ2dpbmcuSGFuZGxlciB0byBlbWl0IGxvZyBt
ZXNzYWdlIHRvIGFwYWNoZSdzIGVycm9yLmxvZy4iIiIKKworICAgIF9MRVZFTFMgPSB7CisgICAg
ICAgIGxvZ2dpbmcuREVCVUc6IGFwYWNoZS5BUExPR19ERUJVRywKKyAgICAgICAgbG9nZ2luZy5J
TkZPOiBhcGFjaGUuQVBMT0dfSU5GTywKKyAgICAgICAgbG9nZ2luZy5XQVJOSU5HOiBhcGFjaGUu
QVBMT0dfV0FSTklORywKKyAgICAgICAgbG9nZ2luZy5FUlJPUjogYXBhY2hlLkFQTE9HX0VSUiwK
KyAgICAgICAgbG9nZ2luZy5DUklUSUNBTDogYXBhY2hlLkFQTE9HX0NSSVQsCisgICAgICAgIH0K
KworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0PU5vbmUpOgorICAgICAgICBsb2dnaW5n
LkhhbmRsZXIuX19pbml0X18oc2VsZikKKyAgICAgICAgc2VsZi5fbG9nX2Vycm9yID0gYXBhY2hl
LmxvZ19lcnJvcgorICAgICAgICBpZiByZXF1ZXN0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAg
c2VsZi5fbG9nX2Vycm9yID0gcmVxdWVzdC5sb2dfZXJyb3IKKworICAgICAgICAjIFRpbWUgYW5k
IGxldmVsIHdpbGwgYmUgcHJpbnRlZCBieSBBcGFjaGUuCisgICAgICAgIHNlbGYuX2Zvcm1hdHRl
ciA9IGxvZ2dpbmcuRm9ybWF0dGVyKCclKG5hbWUpczogJShtZXNzYWdlKXMnKQorCisgICAgZGVm
IGVtaXQoc2VsZiwgcmVjb3JkKToKKyAgICAgICAgYXBhY2hlX2xldmVsID0gYXBhY2hlLkFQTE9H
X0RFQlVHCisgICAgICAgIGlmIHJlY29yZC5sZXZlbG5vIGluIEFwYWNoZUxvZ0hhbmRsZXIuX0xF
VkVMUzoKKyAgICAgICAgICAgIGFwYWNoZV9sZXZlbCA9IEFwYWNoZUxvZ0hhbmRsZXIuX0xFVkVM
U1tyZWNvcmQubGV2ZWxub10KKworICAgICAgICBtc2cgPSBzZWxmLl9mb3JtYXR0ZXIuZm9ybWF0
KHJlY29yZCkKKworICAgICAgICAjICJzZXJ2ZXIiIHBhcmFtZXRlciBtdXN0IGJlIHBhc3NlZCB0
byBoYXZlICJsZXZlbCIgcGFyYW1ldGVyIHdvcmsuCisgICAgICAgICMgSWYgb25seSAibGV2ZWwi
IHBhcmFtZXRlciBpcyBwYXNzZWQsIG5vdGhpbmcgc2hvd3MgdXAgb24gQXBhY2hlJ3MKKyAgICAg
ICAgIyBsb2cuIEhvd2V2ZXIsIGF0IHRoaXMgcG9pbnQsIHdlIGNhbm5vdCBnZXQgdGhlIHNlcnZl
ciBvYmplY3Qgb2YgdGhlCisgICAgICAgICMgdmlydHVhbCBob3N0IHdoaWNoIHdpbGwgcHJvY2Vz
cyBXZWJTb2NrZXQgcmVxdWVzdHMuIFRoZSBvbmx5IHNlcnZlcgorICAgICAgICAjIG9iamVjdCB3
ZSBjYW4gZ2V0IGhlcmUgaXMgYXBhY2hlLm1haW5fc2VydmVyLiBCdXQgV2hlcmV2ZXIgKHNlcnZl
cgorICAgICAgICAjIGNvbmZpZ3VyYXRpb24gY29udGV4dCBvciB2aXJ0dWFsIGhvc3QgY29udGV4
dCkgd2UgcHV0CisgICAgICAgICMgUHl0aG9uSGVhZGVyUGFyc2VySGFuZGxlciBkaXJlY3RpdmUs
IGFwYWNoZS5tYWluX3NlcnZlciBqdXN0IHBvaW50cworICAgICAgICAjIHRoZSBtYWluIHNlcnZl
ciBpbnN0YW5jZSAobm90IGFueSBvZiB2aXJ0dWFsIHNlcnZlciBpbnN0YW5jZSkuIFRoZW4sCisg
ICAgICAgICMgQXBhY2hlIGZvbGxvd3MgTG9nTGV2ZWwgZGlyZWN0aXZlIGluIHRoZSBzZXJ2ZXIg
Y29uZmlndXJhdGlvbiBjb250ZXh0CisgICAgICAgICMgdG8gZmlsdGVyIGxvZ3MuIFNvLCB3ZSBu
ZWVkIHRvIHNwZWNpZnkgTG9nTGV2ZWwgaW4gdGhlIHNlcnZlcgorICAgICAgICAjIGNvbmZpZ3Vy
YXRpb24gY29udGV4dC4gRXZlbiBpZiB3ZSBzcGVjaWZ5ICJMb2dMZXZlbCBkZWJ1ZyIgaW4gdGhl
CisgICAgICAgICMgdmlydHVhbCBob3N0IGNvbnRleHQgd2hpY2ggYWN0dWFsbHkgaGFuZGxlcyBX
ZWJTb2NrZXQgY29ubmVjdGlvbnMsCisgICAgICAgICMgREVCVUcgbGV2ZWwgbG9ncyBuZXZlciBz
aG93IHVwIHVubGVzcyAiTG9nTGV2ZWwgZGVidWciIGlzIHNwZWNpZmllZAorICAgICAgICAjIGlu
IHRoZSBzZXJ2ZXIgY29uZmlndXJhdGlvbiBjb250ZXh0LgorICAgICAgICAjCisgICAgICAgICMg
VE9ETyh0eW9zaGlubyk6IFByb3ZpZGUgbG9nZ2luZyBtZXRob2RzIG9uIHJlcXVlc3Qgb2JqZWN0
LiBXaGVuCisgICAgICAgICMgcmVxdWVzdCBpcyBtcF9yZXF1ZXN0IG9iamVjdCAod2hlbiB1c2Vk
IHRvZ2V0aGVyIHdpdGggQXBhY2hlKSwgdGhlCisgICAgICAgICMgbWV0aG9kcyBjYWxsIHJlcXVl
c3QubG9nX2Vycm9yIGluZGlyZWN0bHkuIFdoZW4gcmVxdWVzdCBpcworICAgICAgICAjIF9TdGFu
ZGFsb25lUmVxdWVzdCwgdGhlIG1ldGhvZHMgY2FsbCBQeXRob24ncyBsb2dnaW5nIGZhY2lsaXR5
IHdoaWNoCisgICAgICAgICMgd2UgY3JlYXRlIGluIHN0YW5kYWxvbmUucHkuCisgICAgICAgIHNl
bGYuX2xvZ19lcnJvcihtc2csIGFwYWNoZV9sZXZlbCwgYXBhY2hlLm1haW5fc2VydmVyKQorCisK
K2RlZiBfY29uZmlndXJlX2xvZ2dpbmcoKToKKyAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dl
cigpCisgICAgIyBMb2dzIGFyZSBmaWx0ZXJlZCBieSBBcGFjaGUgYmFzZWQgb24gTG9nTGV2ZWwg
ZGlyZWN0aXZlIGluIEFwYWNoZQorICAgICMgY29uZmlndXJhdGlvbiBmaWxlLiBXZSBtdXN0IGp1
c3QgcGFzcyBsb2dzIGZvciBhbGwgbGV2ZWxzIHRvCisgICAgIyBBcGFjaGVMb2dIYW5kbGVyLgor
ICAgIGxvZ2dlci5zZXRMZXZlbChsb2dnaW5nLkRFQlVHKQorICAgIGxvZ2dlci5hZGRIYW5kbGVy
KEFwYWNoZUxvZ0hhbmRsZXIoKSkKKworCitfY29uZmlndXJlX2xvZ2dpbmcoKQorCitfTE9HR0VS
ID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworZGVmIF9wYXJzZV9vcHRpb24obmFt
ZSwgdmFsdWUsIGRlZmluaXRpb24pOgorICAgICIiIlJldHVybiB0aGUgbWVhbmluZyBvZiBhIG9w
dGlvbiB2YWx1ZS4iIiIKKyAgICBpZiB2YWx1ZSBpcyBOb25lOgorICAgICAgICByZXR1cm4gRmFs
c2UKKworICAgIG1lYW5pbmcgPSBkZWZpbml0aW9uLmdldCh2YWx1ZS5sb3dlcigpKQorICAgIGlm
IG1lYW5pbmcgaXMgTm9uZToKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbnZhbGlkIHZhbHVl
IGZvciBQeXRob25PcHRpb24gJXM6ICVyJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAobmFt
ZSwgdmFsdWUpKQorICAgIHJldHVybiBtZWFuaW5nCisKKworZGVmIF9jcmVhdGVfZGlzcGF0Y2hl
cigpOgorICAgICIiIkluaXRpYWxpemUgYSBkaXNwYXRjaC5EaXNwYXRjaGVyLiIiIgorICAgIF9M
T0dHRVIuaW5mbygnSW5pdGlhbGl6aW5nIERpc3BhdGNoZXInKQorCisgICAgb3B0aW9ucyA9IGFw
YWNoZS5tYWluX3NlcnZlci5nZXRfb3B0aW9ucygpCisKKyAgICBoYW5kbGVyX3Jvb3QgPSBvcHRp
b25zLmdldChfUFlPUFRfSEFORExFUl9ST09ULCBOb25lKQorICAgIGlmIG5vdCBoYW5kbGVyX3Jv
b3Q6CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignUHl0aG9uT3B0aW9uICVzIGlzIG5vdCBkZWZp
bmVkJyAlIF9QWU9QVF9IQU5ETEVSX1JPT1QsCisgICAgICAgICAgICAgICAgICAgICAgICBhcGFj
aGUuQVBMT0dfRVJSKQorCisgICAgaGFuZGxlcl9zY2FuID0gb3B0aW9ucy5nZXQoX1BZT1BUX0hB
TkRMRVJfU0NBTiwgaGFuZGxlcl9yb290KQorCisgICAgYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9y
b290ID0gX3BhcnNlX29wdGlvbigKKyAgICAgICAgX1BZT1BUX0FMTE9XX0hBTkRMRVJTX09VVFNJ
REVfUk9PVCwKKyAgICAgICAgb3B0aW9ucy5nZXQoX1BZT1BUX0FMTE9XX0hBTkRMRVJTX09VVFNJ
REVfUk9PVCksCisgICAgICAgIF9QWU9QVF9BTExPV19IQU5ETEVSU19PVVRTSURFX1JPT1RfREVG
SU5JVElPTikKKworICAgIGRpc3BhdGNoZXIgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKAorICAgICAg
ICBoYW5kbGVyX3Jvb3QsIGhhbmRsZXJfc2NhbiwgYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290
KQorCisgICAgZm9yIHdhcm5pbmcgaW4gZGlzcGF0Y2hlci5zb3VyY2Vfd2FybmluZ3MoKToKKyAg
ICAgICAgYXBhY2hlLmxvZ19lcnJvcigKKyAgICAgICAgICAgICdtb2RfcHl3ZWJzb2NrZXQ6IFdh
cm5pbmcgaW4gc291cmNlIGxvYWRpbmc6ICVzJyAlIHdhcm5pbmcsCisgICAgICAgICAgICBhcGFj
aGUuQVBMT0dfV0FSTklORykKKworICAgIHJldHVybiBkaXNwYXRjaGVyCisKKworIyBJbml0aWFs
aXplCitfZGlzcGF0Y2hlciA9IF9jcmVhdGVfZGlzcGF0Y2hlcigpCisKKworZGVmIGhlYWRlcnBh
cnNlcmhhbmRsZXIocmVxdWVzdCk6CisgICAgIiIiSGFuZGxlIHJlcXVlc3QuCisKKyAgICBBcmdz
OgorICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCisKKyAgICBUaGlzIGZ1bmN0
aW9uIGlzIG5hbWVkIGhlYWRlcnBhcnNlcmhhbmRsZXIgYmVjYXVzZSBpdCBpcyB0aGUgZGVmYXVs
dAorICAgIG5hbWUgZm9yIGEgUHl0aG9uSGVhZGVyUGFyc2VySGFuZGxlci4KKyAgICAiIiIKKyAg
ICBoYW5kc2hha2VfaXNfZG9uZSA9IEZhbHNlCisgICAgdHJ5OgorICAgICAgICAjIEZhbGxiYWNr
IHRvIGRlZmF1bHQgaHR0cCBoYW5kbGVyIGZvciByZXF1ZXN0IHBhdGhzIGZvciB3aGljaAorICAg
ICAgICAjIHdlIGRvbid0IGhhdmUgcmVxdWVzdCBoYW5kbGVycy4KKyAgICAgICAgaWYgbm90IF9k
aXNwYXRjaGVyLmdldF9oYW5kbGVyX3N1aXRlKHJlcXVlc3QudXJpKToKKyAgICAgICAgICAgIHJl
cXVlc3QubG9nX2Vycm9yKAorICAgICAgICAgICAgICAgICdtb2RfcHl3ZWJzb2NrZXQ6IE5vIGhh
bmRsZXIgZm9yIHJlc291cmNlOiAlcicgJSByZXF1ZXN0LnVyaSwKKyAgICAgICAgICAgICAgICBh
cGFjaGUuQVBMT0dfSU5GTykKKyAgICAgICAgICAgIHJlcXVlc3QubG9nX2Vycm9yKAorICAgICAg
ICAgICAgICAgICdtb2RfcHl3ZWJzb2NrZXQ6IEZhbGxiYWNrIHRvIEFwYWNoZScsIGFwYWNoZS5B
UExPR19JTkZPKQorICAgICAgICAgICAgcmV0dXJuIGFwYWNoZS5ERUNMSU5FRAorICAgIGV4Y2Vw
dCBkaXNwYXRjaC5EaXNwYXRjaEV4Y2VwdGlvbiwgZToKKyAgICAgICAgcmVxdWVzdC5sb2dfZXJy
b3IoCisgICAgICAgICAgICAnbW9kX3B5d2Vic29ja2V0OiBEaXNwYXRjaCBmYWlsZWQgZm9yIGVy
cm9yOiAlcycgJSBlLAorICAgICAgICAgICAgYXBhY2hlLkFQTE9HX0lORk8pCisgICAgICAgIGlm
IG5vdCBoYW5kc2hha2VfaXNfZG9uZToKKyAgICAgICAgICAgIHJldHVybiBlLnN0YXR1cworCisg
ICAgdHJ5OgorICAgICAgICBhbGxvd19kcmFmdDc1ID0gX3BhcnNlX29wdGlvbigKKyAgICAgICAg
ICAgIF9QWU9QVF9BTExPV19EUkFGVDc1LAorICAgICAgICAgICAgYXBhY2hlLm1haW5fc2VydmVy
LmdldF9vcHRpb25zKCkuZ2V0KF9QWU9QVF9BTExPV19EUkFGVDc1KSwKKyAgICAgICAgICAgIF9Q
WU9QVF9BTExPV19EUkFGVDc1X0RFRklOSVRJT04pCisKKyAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgaGFuZHNoYWtlLmRvX2hhbmRzaGFrZSgKKyAgICAgICAgICAgICAgICByZXF1ZXN0LCBfZGlz
cGF0Y2hlciwgYWxsb3dEcmFmdDc1PWFsbG93X2RyYWZ0NzUpCisgICAgICAgIGV4Y2VwdCBoYW5k
c2hha2UuVmVyc2lvbkV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIHJlcXVlc3QubG9nX2Vycm9y
KAorICAgICAgICAgICAgICAgICdtb2RfcHl3ZWJzb2NrZXQ6IEhhbmRzaGFrZSBmYWlsZWQgZm9y
IHZlcnNpb24gZXJyb3I6ICVzJyAlIGUsCisgICAgICAgICAgICAgICAgYXBhY2hlLkFQTE9HX0lO
Rk8pCisgICAgICAgICAgICByZXF1ZXN0LmVycl9oZWFkZXJzX291dC5hZGQoY29tbW9uLlNFQ19X
RUJTT0NLRVRfVkVSU0lPTl9IRUFERVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZS5zdXBwb3J0ZWRfdmVyc2lvbnMpCisgICAgICAgICAgICByZXR1cm4gYXBhY2hl
LkhUVFBfQkFEX1JFUVVFU1QKKyAgICAgICAgZXhjZXB0IGhhbmRzaGFrZS5IYW5kc2hha2VFeGNl
cHRpb24sIGU6CisgICAgICAgICAgICAjIEhhbmRzaGFrZSBmb3Igd3Mvd3NzIGZhaWxlZC4KKyAg
ICAgICAgICAgICMgU2VuZCBodHRwIHJlc3BvbnNlIHdpdGggZXJyb3Igc3RhdHVzLgorICAgICAg
ICAgICAgcmVxdWVzdC5sb2dfZXJyb3IoCisgICAgICAgICAgICAgICAgJ21vZF9weXdlYnNvY2tl
dDogSGFuZHNoYWtlIGZhaWxlZCBmb3IgZXJyb3I6ICVzJyAlIGUsCisgICAgICAgICAgICAgICAg
YXBhY2hlLkFQTE9HX0lORk8pCisgICAgICAgICAgICByZXR1cm4gZS5zdGF0dXMKKworICAgICAg
ICBoYW5kc2hha2VfaXNfZG9uZSA9IFRydWUKKyAgICAgICAgcmVxdWVzdC5fZGlzcGF0Y2hlciA9
IF9kaXNwYXRjaGVyCisgICAgICAgIF9kaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEocmVxdWVzdCkK
KyAgICBleGNlcHQgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24sIGU6CisgICAgICAg
IHJlcXVlc3QubG9nX2Vycm9yKCdtb2RfcHl3ZWJzb2NrZXQ6IEFib3J0ZWQ6ICVzJyAlIGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFwYWNoZS5BUExPR19JTkZPKQorICAgIGV4Y2VwdCBF
eGNlcHRpb24sIGU6CisgICAgICAgICMgRGlzcGF0Y2hFeGNlcHRpb24gY2FuIGFsc28gYmUgdGhy
b3duIGlmIHNvbWV0aGluZyBpcyB3cm9uZyBpbgorICAgICAgICAjIHB5d2Vic29ja2V0IGNvZGUu
IEl0J3MgY2F1Z2h0IGhlcmUsIHRoZW4uCisKKyAgICAgICAgcmVxdWVzdC5sb2dfZXJyb3IoJ21v
ZF9weXdlYnNvY2tldDogRXhjZXB0aW9uIG9jY3VycmVkOiAlc1xuJXMnICUKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGUsIHV0aWwuZ2V0X3N0YWNrX3RyYWNlKCkpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICBhcGFjaGUuQVBMT0dfRVJSKQorICAgICAgICAjIFVua25vd24gZXhjZXB0
aW9ucyBiZWZvcmUgaGFuZHNoYWtlIG1lYW4gQXBhY2hlIG11c3QgaGFuZGxlIGl0cworICAgICAg
ICAjIHJlcXVlc3Qgd2l0aCBhbm90aGVyIGhhbmRsZXIuCisgICAgICAgIGlmIG5vdCBoYW5kc2hh
a2VfaXNfZG9uZToKKyAgICAgICAgICAgIHJldHVybiBhcGFjaGUuREVDTElORUQKKyAgICAjIFNl
dCBhc3NiYWNrd2FyZHMgdG8gc3VwcHJlc3MgcmVzcG9uc2UgaGVhZGVyIGdlbmVyYXRpb24gYnkg
QXBhY2hlLgorICAgIHJlcXVlc3QuYXNzYmFja3dhcmRzID0gMQorICAgIHJldHVybiBhcGFjaGUu
RE9ORSAgIyBSZXR1cm4gRE9ORSBzdWNoIHRoYXQgbm8gb3RoZXIgaGFuZGxlcnMgYXJlIGludm9r
ZWQuCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNv
Y2tldC9odHRwX2hlYWRlcl91dGlsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaHR0cF9oZWFk
ZXJfdXRpbC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzc0NjUzOTMyODVmZjFiZDZiZjhkOTk0MDFjYzY3NDQy
MTI1ZTBiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaHR0cF9oZWFk
ZXJfdXRpbC5weQpAQCAtMCwwICsxLDI2MyBAQAorIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIElu
Yy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
IyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKworIiIiVXRp
bGl0aWVzIGZvciBwYXJzaW5nIGFuZCBmb3JtYXR0aW5nIGhlYWRlcnMgdGhhdCBmb2xsb3cgdGhl
IGdyYW1tYXIgZGVmaW5lZAoraW4gSFRUUCBSRkMgaHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZj
MjYxNi50eHQuCisiIiIKKworCitpbXBvcnQgdXJscGFyc2UKKworCitfU0VQQVJBVE9SUyA9ICco
KTw+QCw7OlxcIi9bXT89e30gXHQnCisKKworZGVmIF9pc19jaGFyKGMpOgorICAgICIiIlJldHVy
bnMgdHJ1ZSBpZmYgYyBpcyBpbiBDSEFSIGFzIHNwZWNpZmllZCBpbiBIVFRQIFJGQy4iIiIKKwor
ICAgIHJldHVybiBvcmQoYykgPD0gMTI3CisKKworZGVmIF9pc19jdGwoYyk6CisgICAgIiIiUmV0
dXJucyB0cnVlIGlmZiBjIGlzIGluIENUTCBhcyBzcGVjaWZpZWQgaW4gSFRUUCBSRkMuIiIiCisK
KyAgICByZXR1cm4gb3JkKGMpIDw9IDMxIG9yIG9yZChjKSA9PSAxMjcKKworCitjbGFzcyBQYXJz
aW5nU3RhdGUob2JqZWN0KToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkYXRhKToKKyAgICAg
ICAgc2VsZi5kYXRhID0gZGF0YQorICAgICAgICBzZWxmLmhlYWQgPSAwCisKKworZGVmIHBlZWso
c3RhdGUsIHBvcz0wKToKKyAgICAiIiJQZWVrcyB0aGUgY2hhcmFjdGVyIGF0IHBvcyBmcm9tIHRo
ZSBoZWFkIG9mIGRhdGEuIiIiCisKKyAgICBpZiBzdGF0ZS5oZWFkICsgcG9zID49IGxlbihzdGF0
ZS5kYXRhKToKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIHJldHVybiBzdGF0ZS5kYXRhW3N0
YXRlLmhlYWQgKyBwb3NdCisKKworZGVmIGNvbnN1bWUoc3RhdGUsIGFtb3VudD0xKToKKyAgICAi
IiJDb25zdW1lcyBzcGVjaWZpZWQgYW1vdW50IG9mIGJ5dGVzIGZyb20gdGhlIGhlYWQgYW5kIHJl
dHVybnMgdGhlCisgICAgY29uc3VtZWQgYnl0ZXMuIElmIHRoZXJlJ3Mgbm90IGVub3VnaCBieXRl
cyB0byBjb25zdW1lLCByZXR1cm5zIE5vbmUuCisgICAgIiIiCisKKyAgICBpZiBzdGF0ZS5oZWFk
ICsgYW1vdW50ID4gbGVuKHN0YXRlLmRhdGEpOgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAg
cmVzdWx0ID0gc3RhdGUuZGF0YVtzdGF0ZS5oZWFkOnN0YXRlLmhlYWQgKyBhbW91bnRdCisgICAg
c3RhdGUuaGVhZCA9IHN0YXRlLmhlYWQgKyBhbW91bnQKKyAgICByZXR1cm4gcmVzdWx0CisKKwor
ZGVmIGNvbnN1bWVfc3RyaW5nKHN0YXRlLCBleHBlY3RlZCk6CisgICAgIiIiR2l2ZW4gYSBwYXJz
aW5nIHN0YXRlIGFuZCBhIGV4cGVjdGVkIHN0cmluZywgY29uc3VtZXMgdGhlIHN0cmluZyBmcm9t
CisgICAgdGhlIGhlYWQuIFJldHVybnMgVHJ1ZSBpZiBjb25zdW1lZCBzdWNjZXNzZnVsbHkuIE90
aGVyd2lzZSwgcmV0dXJucworICAgIEZhbHNlLgorICAgICIiIgorCisgICAgcG9zID0gMAorCisg
ICAgZm9yIGMgaW4gZXhwZWN0ZWQ6CisgICAgICAgIGlmIGMgIT0gcGVlayhzdGF0ZSwgcG9zKToK
KyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBwb3MgKz0gMQorCisgICAgY29uc3Vt
ZShzdGF0ZSwgcG9zKQorICAgIHJldHVybiBUcnVlCisKKworZGVmIGNvbnN1bWVfbHdzKHN0YXRl
KToKKyAgICAiIiJDb25zdW1lcyBhIExXUyBmcm9tIHRoZSBoZWFkLiBSZXR1cm5zIFRydWUgaWYg
YW55IExXUyBpcyBjb25zdW1lZC4KKyAgICBPdGhlcndpc2UsIHJldHVybnMgRmFsc2UuCisKKyAg
ICBMV1MgPSBbQ1JMRl0gMSooIFNQIHwgSFQgKQorICAgICIiIgorCisgICAgb3JpZ2luYWxfaGVh
ZCA9IHN0YXRlLmhlYWQKKworICAgIGNvbnN1bWVfc3RyaW5nKHN0YXRlLCAnXHJcbicpCisKKyAg
ICBwb3MgPSAwCisKKyAgICB3aGlsZSBUcnVlOgorICAgICAgICBjID0gcGVlayhzdGF0ZSwgcG9z
KQorICAgICAgICBpZiBjID09ICcgJyBvciBjID09ICdcdCc6CisgICAgICAgICAgICBwb3MgKz0g
MQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgcG9zID09IDA6CisgICAgICAgICAgICAg
ICAgc3RhdGUuaGVhZCA9IG9yaWdpbmFsX2hlYWQKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFs
c2UKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgY29uc3VtZShzdGF0ZSwgcG9z
KQorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisKKworZGVmIGNvbnN1bWVfbHdzZXMoc3Rh
dGUpOgorICAgICIiIkNvbnN1bWVzICpMV1MgZnJvbSB0aGUgaGVhZC4iIiIKKworICAgIHdoaWxl
IGNvbnN1bWVfbHdzKHN0YXRlKToKKyAgICAgICAgcGFzcworCisKK2RlZiBjb25zdW1lX3Rva2Vu
KHN0YXRlKToKKyAgICAiIiJDb25zdW1lcyBhIHRva2VuIGZyb20gdGhlIGhlYWQuIFJldHVybnMg
dGhlIHRva2VuIG9yIE5vbmUgaWYgbm8gdG9rZW4KKyAgICB3YXMgZm91bmQuCisgICAgIiIiCisK
KyAgICBwb3MgPSAwCisKKyAgICB3aGlsZSBUcnVlOgorICAgICAgICBjID0gcGVlayhzdGF0ZSwg
cG9zKQorICAgICAgICBpZiBjIGlzIE5vbmUgb3IgYyBpbiBfU0VQQVJBVE9SUyBvciBfaXNfY3Rs
KGMpIG9yIG5vdCBfaXNfY2hhcihjKToKKyAgICAgICAgICAgIGlmIHBvcyA9PSAwOgorICAgICAg
ICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgICAgIHJldHVybiBjb25zdW1lKHN0YXRl
LCBwb3MpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwb3MgKz0gMQorCisKK2RlZiBjb25z
dW1lX3Rva2VuX29yX3F1b3RlZF9zdHJpbmcoc3RhdGUpOgorICAgICIiIkNvbnN1bWVzIGEgdG9r
ZW4gb3IgYSBxdW90ZWQtc3RyaW5nLCBhbmQgcmV0dXJucyB0aGUgdG9rZW4gb3IgdW5xdW90ZWQK
KyAgICBzdHJpbmcuIElmIG5vIHRva2VuIG9yIHF1b3RlZC1zdHJpbmcgd2FzIGZvdW5kLCByZXR1
cm5zIE5vbmUuCisgICAgIiIiCisKKyAgICBvcmlnaW5hbF9oZWFkID0gc3RhdGUuaGVhZAorCisg
ICAgaWYgbm90IGNvbnN1bWVfc3RyaW5nKHN0YXRlLCAnIicpOgorICAgICAgICByZXR1cm4gY29u
c3VtZV90b2tlbihzdGF0ZSkKKworICAgIHJlc3VsdCA9IFtdCisKKyAgICBleHBlY3RfcXVvdGVk
X3BhaXIgPSBGYWxzZQorCisgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgaWYgbm90IGV4cGVjdF9x
dW90ZWRfcGFpciBhbmQgY29uc3VtZV9sd3Moc3RhdGUpOgorICAgICAgICAgICAgcmVzdWx0LmFw
cGVuZCgnICcpCisgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgIGMgPSBjb25zdW1lKHN0
YXRlKQorICAgICAgICBpZiBjIGlzIE5vbmU6CisgICAgICAgICAgICAjIHF1b3RlZC1zdHJpbmcg
aXMgbm90IGVuY2xvc2VkIHdpdGggZG91YmxlIHF1b3RhdGlvbgorICAgICAgICAgICAgc3RhdGUu
aGVhZCA9IG9yaWdpbmFsX2hlYWQKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIGVs
aWYgZXhwZWN0X3F1b3RlZF9wYWlyOgorICAgICAgICAgICAgZXhwZWN0X3F1b3RlZF9wYWlyID0g
RmFsc2UKKyAgICAgICAgICAgIGlmIF9pc19jaGFyKGMpOgorICAgICAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoYykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBOb24gQ0hB
UiBjaGFyYWN0ZXIgZm91bmQgaW4gcXVvdGVkLXBhaXIKKyAgICAgICAgICAgICAgICBzdGF0ZS5o
ZWFkID0gb3JpZ2luYWxfaGVhZAorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAg
IGVsaWYgYyA9PSAnXFwnOgorICAgICAgICAgICAgZXhwZWN0X3F1b3RlZF9wYWlyID0gVHJ1ZQor
ICAgICAgICBlbGlmIGMgPT0gJyInOgorICAgICAgICAgICAgcmV0dXJuICcnLmpvaW4ocmVzdWx0
KQorICAgICAgICBlbGlmIF9pc19jdGwoYyk6CisgICAgICAgICAgICAjIEludmFsaWQgY2hhcmFj
dGVyICVyIGZvdW5kIGluIHFkdGV4dAorICAgICAgICAgICAgc3RhdGUuaGVhZCA9IG9yaWdpbmFs
X2hlYWQKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKGMpCisKKworZGVmIHF1b3RlX2lmX25lY2Vzc2FyeShzKToKKyAgICAi
IiJRdW90ZXMgYXJiaXRyYXJ5IHN0cmluZyBpbnRvIHF1b3RlZC1zdHJpbmcuIiIiCisKKyAgICBx
dW90ZSA9IEZhbHNlCisgICAgaWYgcyA9PSAnJzoKKyAgICAgICAgcmV0dXJuICciIicKKworICAg
IHJlc3VsdCA9IFtdCisgICAgZm9yIGMgaW4gczoKKyAgICAgICAgaWYgYyA9PSAnIicgb3IgYyBp
biBfU0VQQVJBVE9SUyBvciBfaXNfY3RsKGMpIG9yIG5vdCBfaXNfY2hhcihjKToKKyAgICAgICAg
ICAgIHF1b3RlID0gVHJ1ZQorCisgICAgICAgIGlmIGMgPT0gJyInIG9yIF9pc19jdGwoYyk6Cisg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdcXCcgKyBjKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZChjKQorCisgICAgaWYgcXVvdGU6CisgICAgICAgIHJldHVybiAn
IicgKyAnJy5qb2luKHJlc3VsdCkgKyAnIicKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gJycu
am9pbihyZXN1bHQpCisKKworZGVmIHBhcnNlX3VyaSh1cmkpOgorICAgICIiIlBhcnNlIGFic29s
dXRlIFVSSSB0aGVuIHJldHVybiBob3N0LCBwb3J0IGFuZCByZXNvdXJjZS4iIiIKKworICAgIHBh
cnNlZCA9IHVybHBhcnNlLnVybHNwbGl0KHVyaSkKKyAgICBpZiBwYXJzZWQuc2NoZW1lICE9ICd3
c3MnIGFuZCBwYXJzZWQuc2NoZW1lICE9ICd3cyc6CisgICAgICAgICMgfHVyaXwgbXVzdCBiZSBh
IHJlbGF0aXZlIFVSSS4KKyAgICAgICAgIyBUT0RPKHRveW9zaGltKTogU2hvdWxkIHZhbGlkYXRl
IHx1cml8LgorICAgICAgICByZXR1cm4gTm9uZSwgTm9uZSwgdXJpCisKKyAgICBpZiBwYXJzZWQu
aG9zdG5hbWUgaXMgTm9uZToKKyAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUsIE5vbmUKKworICAg
IHBvcnQgPSBOb25lCisgICAgdHJ5OgorICAgICAgICBwb3J0ID0gcGFyc2VkLnBvcnQKKyAgICBl
eGNlcHQgVmFsdWVFcnJvciwgZToKKyAgICAgICAgIyBwb3J0IHByb3BlcnR5IGNhdXNlIFZhbHVl
RXJyb3Igb24gaW52YWxpZCBudWxsIHBvcnQgZGVzY3JpcHRpb24gbGlrZQorICAgICAgICAjICd3
czovL2hvc3Q6L3BhdGgnLgorICAgICAgICByZXR1cm4gTm9uZSwgTm9uZSwgTm9uZQorCisgICAg
aWYgcG9ydCBpcyBOb25lOgorICAgICAgICBpZiBwYXJzZWQuc2NoZW1lID09ICd3cyc6CisgICAg
ICAgICAgICBwb3J0ID0gODAKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHBvcnQgPSA0NDMK
KworICAgIHBhdGggPSBwYXJzZWQucGF0aAorICAgIGlmIG5vdCBwYXRoOgorICAgICAgICBwYXRo
ICs9ICcvJworICAgIGlmIHBhcnNlZC5xdWVyeToKKyAgICAgICAgcGF0aCArPSAnPycgKyBwYXJz
ZWQucXVlcnkKKyAgICBpZiBwYXJzZWQuZnJhZ21lbnQ6CisgICAgICAgIHBhdGggKz0gJyMnICsg
cGFyc2VkLmZyYWdtZW50CisKKyAgICByZXR1cm4gcGFyc2VkLmhvc3RuYW1lLCBwb3J0LCBwYXRo
CisKKwordHJ5OgorICAgIHVybHBhcnNlLnVzZXNfbmV0bG9jLmluZGV4KCd3cycpCitleGNlcHQg
VmFsdWVFcnJvciwgZToKKyAgICAjIHVybHBhcnNlIGluIFB5dGhvbjIuNS4xIGRvZXNuJ3QgaGF2
ZSAnd3MnIGFuZCAnd3NzJyBlbnRyaWVzLgorICAgIHVybHBhcnNlLnVzZXNfbmV0bG9jLmFwcGVu
ZCgnd3MnKQorICAgIHVybHBhcnNlLnVzZXNfbmV0bG9jLmFwcGVuZCgnd3NzJykKKworCisjIHZp
OnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L21lbW9yaXpp
bmdmaWxlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvbWVtb3JpemluZ2ZpbGUucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYTI0ZTdlZTM4MjFlYTFhNzMxNDViYmE4MjQ2YzdiNWIwNDNlMTRjOQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L21lbW9yaXppbmdmaWxlLnB5CkBAIC0wLDAg
KzEsMTAzIEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMKKyMgQ29weXJpZ2h0IDIwMTEsIEdv
b2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisK
KyIiIk1lbW9yaXppbmcgZmlsZS4KKworQSBtZW1vcml6aW5nIGZpbGUgd3JhcHMgYSBmaWxlIGFu
ZCBtZW1vcml6ZXMgbGluZXMgcmVhZCBieSByZWFkbGluZS4KKyIiIgorCisKK2ltcG9ydCBzeXMK
KworCitjbGFzcyBNZW1vcml6aW5nRmlsZShvYmplY3QpOgorCisgICAgIiIiTWVtb3JpemluZ0Zp
bGUgd3JhcHMgYSBmaWxlIGFuZCBtZW1vcml6ZXMgbGluZXMgcmVhZCBieSByZWFkbGluZS4KKwor
ICAgIE5vdGUgdGhhdCBkYXRhIHJlYWQgYnkgb3RoZXIgbWV0aG9kcyBhcmUgbm90IG1lbW9yaXpl
ZC4gVGhpcyBiZWhhdmlvcgorICAgIGlzIGdvb2QgZW5vdWdoIGZvciBtZW1vcml6aW5nIGxpbmVz
IFNpbXBsZUhUVFBTZXJ2ZXIgcmVhZHMgYmVmb3JlCisgICAgdGhlIGNvbnRyb2wgcmVhY2hlcyBX
ZWJTb2NrZXRSZXF1ZXN0SGFuZGxlci4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBmaWxlXywgbWF4X21lbW9yaXplZF9saW5lcz1zeXMubWF4aW50KToKKyAgICAgICAgIiIiQ29u
c3RydWN0IGFuIGluc3RhbmNlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBmaWxlXzog
dGhlIGZpbGUgb2JqZWN0IHRvIHdyYXAuCisgICAgICAgICAgICBtYXhfbWVtb3JpemVkX2xpbmVz
OiB0aGUgbWF4aW11bSBudW1iZXIgb2YgbGluZXMgdG8gbWVtb3JpemUuCisgICAgICAgICAgICAg
ICAgT25seSB0aGUgZmlyc3QgbWF4X21lbW9yaXplZF9saW5lcyBhcmUgbWVtb3JpemVkLgorICAg
ICAgICAgICAgICAgIERlZmF1bHQ6IHN5cy5tYXhpbnQuCisgICAgICAgICIiIgorICAgICAgICBz
ZWxmLl9maWxlID0gZmlsZV8KKyAgICAgICAgc2VsZi5fbWVtb3JpemVkX2xpbmVzID0gW10KKyAg
ICAgICAgc2VsZi5fbWF4X21lbW9yaXplZF9saW5lcyA9IG1heF9tZW1vcml6ZWRfbGluZXMKKyAg
ICAgICAgc2VsZi5fYnVmZmVyZWQgPSBGYWxzZQorICAgICAgICBzZWxmLl9idWZmZXJlZF9saW5l
ID0gTm9uZQorCisgICAgZGVmIF9fZ2V0YXR0cmlidXRlX18oc2VsZiwgbmFtZSk6CisgICAgICAg
ICIiIlJldHVybiBhIGZpbGUgYXR0cmlidXRlLgorICAgICAgICAKKyAgICAgICAgUmV0dXJucyB0
aGUgdmFsdWUgb3ZlcnJpZGRlbiBieSB0aGlzIGNsYXNzIGZvciBzb21lIGF0dHJpYnV0ZXMsCisg
ICAgICAgIGFuZCBmb3J3YXJkcyB0aGUgY2FsbCB0byBfZmlsZSBmb3IgdGhlIG90aGVyIGF0dHJp
YnV0ZXMuCisgICAgICAgICIiIgorICAgICAgICBpZiBuYW1lIGluICgnX2ZpbGUnLCAnX21lbW9y
aXplZF9saW5lcycsICdfbWF4X21lbW9yaXplZF9saW5lcycsCisgICAgICAgICAgICAgICAgICAg
ICdfYnVmZmVyZWQnLCAnX2J1ZmZlcmVkX2xpbmUnLCAncmVhZGxpbmUnLAorICAgICAgICAgICAg
ICAgICAgICAnZ2V0X21lbW9yaXplZF9saW5lcycpOgorICAgICAgICAgICAgcmV0dXJuIG9iamVj
dC5fX2dldGF0dHJpYnV0ZV9fKHNlbGYsIG5hbWUpCisgICAgICAgIHJldHVybiBzZWxmLl9maWxl
Ll9fZ2V0YXR0cmlidXRlX18obmFtZSkKKworICAgIGRlZiByZWFkbGluZShzZWxmLCBzaXplPS0x
KToKKyAgICAgICAgIiIiT3ZlcnJpZGUgZmlsZS5yZWFkbGluZSBhbmQgbWVtb3JpemUgdGhlIGxp
bmUgcmVhZC4KKworICAgICAgICBOb3RlIHRoYXQgZXZlbiBpZiBzaXplIGlzIHNwZWNpZmllZCBh
bmQgc21hbGxlciB0aGFuIGFjdHVhbCBzaXplLAorICAgICAgICB0aGUgd2hvbGUgbGluZSB3aWxs
IGJlIHJlYWQgb3V0IGZyb20gdW5kZXJseWluZyBmaWxlIG9iamVjdCBieQorICAgICAgICBzdWJz
ZXF1ZW50IHJlYWRsaW5lIGNhbGxzLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5fYnVm
ZmVyZWQ6CisgICAgICAgICAgICBsaW5lID0gc2VsZi5fYnVmZmVyZWRfbGluZQorICAgICAgICAg
ICAgc2VsZi5fYnVmZmVyZWQgPSBGYWxzZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbGlu
ZSA9IHNlbGYuX2ZpbGUucmVhZGxpbmUoKQorICAgICAgICAgICAgaWYgbGluZSBhbmQgbGVuKHNl
bGYuX21lbW9yaXplZF9saW5lcykgPCBzZWxmLl9tYXhfbWVtb3JpemVkX2xpbmVzOgorICAgICAg
ICAgICAgICAgIHNlbGYuX21lbW9yaXplZF9saW5lcy5hcHBlbmQobGluZSkKKyAgICAgICAgaWYg
c2l6ZSA+PSAwIGFuZCBzaXplIDwgbGVuKGxpbmUpOgorICAgICAgICAgICAgc2VsZi5fYnVmZmVy
ZWQgPSBUcnVlCisgICAgICAgICAgICBzZWxmLl9idWZmZXJlZF9saW5lID0gbGluZVtzaXplOl0K
KyAgICAgICAgICAgIHJldHVybiBsaW5lWzpzaXplXQorICAgICAgICByZXR1cm4gbGluZQorCisg
ICAgZGVmIGdldF9tZW1vcml6ZWRfbGluZXMoc2VsZik6CisgICAgICAgICIiIkdldCBsaW5lcyBt
ZW1vcml6ZWQgc28gZmFyLiIiIgorICAgICAgICByZXR1cm4gc2VsZi5fbWVtb3JpemVkX2xpbmVz
CisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tl
dC9tc2d1dGlsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvbXNndXRpbC5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40YzFhMDExNGI0YmM0MThiMjBlNmExNTU2NTllOTI1N2FhYjczNmVmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvbXNndXRpbC5weQpAQCAtMCwwICsxLDIxOSBAQAor
IyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
IyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4K
KyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisKKworIiIiTWVzc2FnZSByZWxhdGVkIHV0aWxpdGllcy4KKworTm90
ZTogcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlL3JlYWQgYXJlIHVzZWQgaW4gdGhpcyBtb2R1bGUs
IGV2ZW4gdGhvdWdoCittb2RfcHl0aG9uIGRvY3VtZW50IHNheXMgdGhhdCB0aGV5IHNob3VsZCBi
ZSB1c2VkIG9ubHkgaW4gY29ubmVjdGlvbgoraGFuZGxlcnMuIFVuZm9ydHVuYXRlbHksIHdlIGhh
dmUgbm8gb3RoZXIgb3B0aW9ucy4gRm9yIGV4YW1wbGUsCityZXF1ZXN0LndyaXRlL3JlYWQgYXJl
IG5vdCBzdWl0YWJsZSBiZWNhdXNlIHRoZXkgZG9uJ3QgYWxsb3cgZGlyZWN0IHJhdworYnl0ZXMg
d3JpdGluZy9yZWFkaW5nLgorIiIiCisKKworaW1wb3J0IFF1ZXVlCitpbXBvcnQgdGhyZWFkaW5n
CisKKworIyBFeHBvcnQgRXhjZXB0aW9uIHN5bWJvbHMgZnJvbSBtc2d1dGlsIGZvciBiYWNrd2Fy
ZCBjb21wYXRpYmlsaXR5Citmcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0
IENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uCitmcm9tIG1vZF9weXdlYnNvY2tldC5fc3Ry
ZWFtX2Jhc2UgaW1wb3J0IEludmFsaWRGcmFtZUV4Y2VwdGlvbgorZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBCYWRPcGVyYXRpb25FeGNlcHRpb24KK2Zyb20gbW9kX3B5
d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbgor
CisKKyMgQW4gQVBJIGZvciBoYW5kbGVyIHRvIHNlbmQvcmVjZWl2ZSBXZWJTb2NrZXQgbWVzc2Fn
ZXMuCitkZWYgY2xvc2VfY29ubmVjdGlvbihyZXF1ZXN0KToKKyAgICAiIiJDbG9zZSBjb25uZWN0
aW9uLgorCisgICAgQXJnczoKKyAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0Lgor
ICAgICIiIgorICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oKQorCisKK2Rl
ZiBzZW5kX21lc3NhZ2UocmVxdWVzdCwgcGF5bG9hZF9kYXRhLCBlbmQ9VHJ1ZSwgYmluYXJ5PUZh
bHNlKToKKyAgICAiIiJTZW5kIGEgbWVzc2FnZSAob3IgcGFydCBvZiBhIG1lc3NhZ2UpLgorCisg
ICAgQXJnczoKKyAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgorICAgICAgICBw
YXlsb2FkX2RhdGE6IHVuaWNvZGUgdGV4dCBvciBzdHIgYmluYXJ5IHRvIHNlbmQuCisgICAgICAg
IGVuZDogVHJ1ZSB0byB0ZXJtaW5hdGUgYSBtZXNzYWdlLgorICAgICAgICAgICAgIEZhbHNlIHRv
IHNlbmQgcGF5bG9hZF9kYXRhIGFzIHBhcnQgb2YgYSBtZXNzYWdlIHRoYXQgaXMgdG8gYmUKKyAg
ICAgICAgICAgICB0ZXJtaW5hdGVkIGJ5IG5leHQgb3IgbGF0ZXIgc2VuZF9tZXNzYWdlIGNhbGwg
d2l0aCBlbmQ9VHJ1ZS4KKyAgICAgICAgYmluYXJ5OiBzZW5kIHBheWxvYWRfZGF0YSBhcyBiaW5h
cnkgZnJhbWUocykuCisgICAgUmFpc2VzOgorICAgICAgICBCYWRPcGVyYXRpb25FeGNlcHRpb246
IHdoZW4gc2VydmVyIGFscmVhZHkgdGVybWluYXRlZC4KKyAgICAiIiIKKyAgICByZXF1ZXN0Lndz
X3N0cmVhbS5zZW5kX21lc3NhZ2UocGF5bG9hZF9kYXRhLCBlbmQsIGJpbmFyeSkKKworCitkZWYg
cmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpOgorICAgICIiIlJlY2VpdmUgYSBXZWJTb2NrZXQgZnJh
bWUgYW5kIHJldHVybiBpdHMgcGF5bG9hZCBhcyBhIHRleHQgaW4KKyAgICB1bmljb2RlIG9yIGEg
YmluYXJ5IGluIHN0ci4KKworICAgIEFyZ3M6CisgICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24g
cmVxdWVzdC4KKyAgICBSYWlzZXM6CisgICAgICAgIEludmFsaWRGcmFtZUV4Y2VwdGlvbjogICAg
IHdoZW4gY2xpZW50IHNlbmQgaW52YWxpZCBmcmFtZS4KKyAgICAgICAgVW5zdXBwb3J0ZWRGcmFt
ZUV4Y2VwdGlvbjogd2hlbiBjbGllbnQgc2VuZCB1bnN1cHBvcnRlZCBmcmFtZSBlLmcuIHNvbWUK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgcmVzZXJ2ZWQgYml0IGlzIHNl
dCBidXQgbm8gZXh0ZW5zaW9uIGNhbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZWNvZ25pemUgaXQuCisgICAgICAgIEludmFsaWRVVEY4RXhjZXB0aW9uOiAgICAgIHdoZW4g
Y2xpZW50IHNlbmQgYSB0ZXh0IGZyYW1lIGNvbnRhaW5pbmcgYW55CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGludmFsaWQgVVRGLTggc3RyaW5nLgorICAgICAgICBDb25uZWN0
aW9uVGVybWluYXRlZEV4Y2VwdGlvbjogd2hlbiB0aGUgY29ubmVjdGlvbiBpcyBjbG9zZWQKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5leHBlY3RlZGx5LgorICAgICAgICBC
YWRPcGVyYXRpb25FeGNlcHRpb246ICAgICB3aGVuIGNsaWVudCBhbHJlYWR5IHRlcm1pbmF0ZWQu
CisgICAgIiIiCisgICAgcmV0dXJuIHJlcXVlc3Qud3Nfc3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgp
CisKKworZGVmIHNlbmRfcGluZyhyZXF1ZXN0LCBib2R5PScnKToKKyAgICByZXF1ZXN0LndzX3N0
cmVhbS5zZW5kX3BpbmcoYm9keSkKKworCitjbGFzcyBNZXNzYWdlUmVjZWl2ZXIodGhyZWFkaW5n
LlRocmVhZCk6CisgICAgIiIiVGhpcyBjbGFzcyByZWNlaXZlcyBtZXNzYWdlcyBmcm9tIHRoZSBj
bGllbnQuCisKKyAgICBUaGlzIGNsYXNzIHByb3ZpZGVzIHRocmVlIHdheXMgdG8gcmVjZWl2ZSBt
ZXNzYWdlczogYmxvY2tpbmcsCisgICAgbm9uLWJsb2NraW5nLCBhbmQgdmlhIGNhbGxiYWNrLiBD
YWxsYmFjayBoYXMgdGhlIGhpZ2hlc3QgcHJlY2VkZW5jZS4KKworICAgIE5vdGU6IFRoaXMgY2xh
c3Mgc2hvdWxkIG5vdCBiZSB1c2VkIHdpdGggdGhlIHN0YW5kYWxvbmUgc2VydmVyIGZvciB3c3MK
KyAgICBiZWNhdXNlIHB5T3BlblNTTCB1c2VkIGJ5IHRoZSBzZXJ2ZXIgcmFpc2VzIGEgZmF0YWwg
ZXJyb3IgaWYgdGhlIHNvY2tldAorICAgIGlzIGFjY2Vzc2VkIGZyb20gbXVsdGlwbGUgdGhyZWFk
cy4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0LCBvbm1lc3NhZ2U9
Tm9uZSk6CisgICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KKworICAgICAgICBBcmdz
OgorICAgICAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1ZXN0LgorICAgICAgICAgICAg
b25tZXNzYWdlOiBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIGEgbWVzc2FnZSBpcyByZWNl
aXZlZC4KKyAgICAgICAgICAgICAgICAgICAgICAgTWF5IGJlIE5vbmUuIElmIG5vdCBOb25lLCB0
aGUgZnVuY3Rpb24gaXMgY2FsbGVkIG9uCisgICAgICAgICAgICAgICAgICAgICAgIGFub3RoZXIg
dGhyZWFkLiBJbiB0aGF0IGNhc2UsIE1lc3NhZ2VSZWNlaXZlci5yZWNlaXZlCisgICAgICAgICAg
ICAgICAgICAgICAgIGFuZCBNZXNzYWdlUmVjZWl2ZXIucmVjZWl2ZV9ub3dhaXQgYXJlIHVzZWxl
c3MKKyAgICAgICAgICAgICAgICAgICAgICAgYmVjYXVzZSB0aGV5IHdpbGwgbmV2ZXIgcmV0dXJu
IGFueSBtZXNzYWdlcy4KKyAgICAgICAgIiIiCisKKyAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5f
X2luaXRfXyhzZWxmKQorICAgICAgICBzZWxmLl9yZXF1ZXN0ID0gcmVxdWVzdAorICAgICAgICBz
ZWxmLl9xdWV1ZSA9IFF1ZXVlLlF1ZXVlKCkKKyAgICAgICAgc2VsZi5fb25tZXNzYWdlID0gb25t
ZXNzYWdlCisgICAgICAgIHNlbGYuX3N0b3BfcmVxdWVzdGVkID0gRmFsc2UKKyAgICAgICAgc2Vs
Zi5zZXREYWVtb24oVHJ1ZSkKKyAgICAgICAgc2VsZi5zdGFydCgpCisKKyAgICBkZWYgcnVuKHNl
bGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICB3aGlsZSBub3Qgc2VsZi5fc3RvcF9yZXF1
ZXN0ZWQ6CisgICAgICAgICAgICAgICAgbWVzc2FnZSA9IHJlY2VpdmVfbWVzc2FnZShzZWxmLl9y
ZXF1ZXN0KQorICAgICAgICAgICAgICAgIGlmIHNlbGYuX29ubWVzc2FnZToKKyAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fb25tZXNzYWdlKG1lc3NhZ2UpCisgICAgICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcXVldWUucHV0KG1lc3NhZ2UpCisgICAgICAgIGZp
bmFsbHk6CisgICAgICAgICAgICBjbG9zZV9jb25uZWN0aW9uKHNlbGYuX3JlcXVlc3QpCisKKyAg
ICBkZWYgcmVjZWl2ZShzZWxmKToKKyAgICAgICAgIiIiIFJlY2VpdmUgYSBtZXNzYWdlIGZyb20g
dGhlIGNoYW5uZWwsIGJsb2NraW5nLgorCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAgICBt
ZXNzYWdlIGFzIGEgdW5pY29kZSBzdHJpbmcuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4g
c2VsZi5fcXVldWUuZ2V0KCkKKworICAgIGRlZiByZWNlaXZlX25vd2FpdChzZWxmKToKKyAgICAg
ICAgIiIiIFJlY2VpdmUgYSBtZXNzYWdlIGZyb20gdGhlIGNoYW5uZWwsIG5vbi1ibG9ja2luZy4K
KworICAgICAgICBSZXR1cm5zOgorICAgICAgICAgICAgbWVzc2FnZSBhcyBhIHVuaWNvZGUgc3Ry
aW5nIGlmIGF2YWlsYWJsZS4gTm9uZSBvdGhlcndpc2UuCisgICAgICAgICIiIgorICAgICAgICB0
cnk6CisgICAgICAgICAgICBtZXNzYWdlID0gc2VsZi5fcXVldWUuZ2V0X25vd2FpdCgpCisgICAg
ICAgIGV4Y2VwdCBRdWV1ZS5FbXB0eToKKyAgICAgICAgICAgIG1lc3NhZ2UgPSBOb25lCisgICAg
ICAgIHJldHVybiBtZXNzYWdlCisKKyAgICBkZWYgc3RvcChzZWxmKToKKyAgICAgICAgIiIiUmVx
dWVzdCB0byBzdG9wIHRoaXMgaW5zdGFuY2UuCisKKyAgICAgICAgVGhlIGluc3RhbmNlIHdpbGwg
YmUgc3RvcHBlZCBhZnRlciByZWNlaXZpbmcgdGhlIG5leHQgbWVzc2FnZS4KKyAgICAgICAgVGhp
cyBtZXRob2QgbWF5IG5vdCBiZSB2ZXJ5IHVzZWZ1bCwgYnV0IHRoZXJlIGlzIG5vIGNsZWFuIHdh
eQorICAgICAgICBpbiBQeXRob24gdG8gZm9yY2VmdWxseSBzdG9wIGEgcnVubmluZyB0aHJlYWQu
CisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9zdG9wX3JlcXVlc3RlZCA9IFRydWUKKworCitj
bGFzcyBNZXNzYWdlU2VuZGVyKHRocmVhZGluZy5UaHJlYWQpOgorICAgICIiIlRoaXMgY2xhc3Mg
c2VuZHMgbWVzc2FnZXMgdG8gdGhlIGNsaWVudC4KKworICAgIFRoaXMgY2xhc3MgcHJvdmlkZXMg
Ym90aCBzeW5jaHJvbm91cyBhbmQgYXN5bmNocm9ub3VzIHdheXMgdG8gc2VuZAorICAgIG1lc3Nh
Z2VzLgorCisgICAgTm90ZTogVGhpcyBjbGFzcyBzaG91bGQgbm90IGJlIHVzZWQgd2l0aCB0aGUg
c3RhbmRhbG9uZSBzZXJ2ZXIgZm9yIHdzcworICAgIGJlY2F1c2UgcHlPcGVuU1NMIHVzZWQgYnkg
dGhlIHNlcnZlciByYWlzZXMgYSBmYXRhbCBlcnJvciBpZiB0aGUgc29ja2V0CisgICAgaXMgYWNj
ZXNzZWQgZnJvbSBtdWx0aXBsZSB0aHJlYWRzLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHJlcXVlc3QpOgorICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCisKKyAg
ICAgICAgQXJnczoKKyAgICAgICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KKyAg
ICAgICAgIiIiCisgICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18oc2VsZikKKyAgICAg
ICAgc2VsZi5fcmVxdWVzdCA9IHJlcXVlc3QKKyAgICAgICAgc2VsZi5fcXVldWUgPSBRdWV1ZS5R
dWV1ZSgpCisgICAgICAgIHNlbGYuc2V0RGFlbW9uKFRydWUpCisgICAgICAgIHNlbGYuc3RhcnQo
KQorCisgICAgZGVmIHJ1bihzZWxmKToKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAg
IG1lc3NhZ2UsIGNvbmRpdGlvbiA9IHNlbGYuX3F1ZXVlLmdldCgpCisgICAgICAgICAgICBjb25k
aXRpb24uYWNxdWlyZSgpCisgICAgICAgICAgICBzZW5kX21lc3NhZ2Uoc2VsZi5fcmVxdWVzdCwg
bWVzc2FnZSkKKyAgICAgICAgICAgIGNvbmRpdGlvbi5ub3RpZnkoKQorICAgICAgICAgICAgY29u
ZGl0aW9uLnJlbGVhc2UoKQorCisgICAgZGVmIHNlbmQoc2VsZiwgbWVzc2FnZSk6CisgICAgICAg
ICIiIlNlbmQgYSBtZXNzYWdlLCBibG9ja2luZy4iIiIKKworICAgICAgICBjb25kaXRpb24gPSB0
aHJlYWRpbmcuQ29uZGl0aW9uKCkKKyAgICAgICAgY29uZGl0aW9uLmFjcXVpcmUoKQorICAgICAg
ICBzZWxmLl9xdWV1ZS5wdXQoKG1lc3NhZ2UsIGNvbmRpdGlvbikpCisgICAgICAgIGNvbmRpdGlv
bi53YWl0KCkKKworICAgIGRlZiBzZW5kX25vd2FpdChzZWxmLCBtZXNzYWdlKToKKyAgICAgICAg
IiIiU2VuZCBhIG1lc3NhZ2UsIG5vbi1ibG9ja2luZy4iIiIKKworICAgICAgICBzZWxmLl9xdWV1
ZS5wdXQoKG1lc3NhZ2UsIHRocmVhZGluZy5Db25kaXRpb24oKSkpCisKKworIyB2aTpzdHM9NCBz
dz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9tdXgucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21v
ZF9weXdlYnNvY2tldC9tdXgucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGI2NWY2ZWQwZDM0YzVjNjkxNmZjNmYx
NmYyM2MyNzc3OGUwYzAxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0
L211eC5weQpAQCAtMCwwICsxLDE4ODUgQEAKKyMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMu
CisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKKyIiIlRoaXMg
ZmlsZSBwcm92aWRlcyBjbGFzc2VzIGFuZCBoZWxwZXIgZnVuY3Rpb25zIGZvciBtdWx0aXBsZXhp
bmcgZXh0ZW5zaW9uLgorCitTcGVjaWZpY2F0aW9uOgoraHR0cDovL3Rvb2xzLmlldGYub3JnL2h0
bWwvZHJhZnQtaWV0Zi1oeWJpLXdlYnNvY2tldC1tdWx0aXBsZXhpbmctMDYKKyIiIgorCisKK2lt
cG9ydCBjb2xsZWN0aW9ucworaW1wb3J0IGNvcHkKK2ltcG9ydCBlbWFpbAoraW1wb3J0IGVtYWls
LnBhcnNlcgoraW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBtYXRoCitpbXBvcnQgc3RydWN0CitpbXBv
cnQgdGhyZWFkaW5nCitpbXBvcnQgdHJhY2ViYWNrCisKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGlt
cG9ydCBjb21tb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBoYW5kc2hha2UKK2Zyb20g
bW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCitmcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFt
X2Jhc2UgaW1wb3J0IEJhZE9wZXJhdGlvbkV4Y2VwdGlvbgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQu
X3N0cmVhbV9iYXNlIGltcG9ydCBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbgorZnJvbSBt
b2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBJbnZhbGlkRnJhbWVFeGNlcHRpb24K
K2Zyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgRnJhbWUKK2Zyb20gbW9k
X3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgU3RyZWFtCitmcm9tIG1vZF9weXdlYnNv
Y2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IFN0cmVhbU9wdGlvbnMKK2Zyb20gbW9kX3B5d2Vic29j
a2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX2JpbmFyeV9mcmFtZQorZnJvbSBtb2RfcHl3
ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfY2xvc2luZ19oYW5kc2hha2VfYm9k
eQorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfaGVhZGVy
Citmcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9sZW5ndGhf
aGVhZGVyCitmcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IHBhcnNlX2Zy
YW1lCitmcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UgaW1wb3J0IGh5YmkKKworCitfQ09O
VFJPTF9DSEFOTkVMX0lEID0gMAorX0RFRkFVTFRfQ0hBTk5FTF9JRCA9IDEKKworX01VWF9PUENP
REVfQUREX0NIQU5ORUxfUkVRVUVTVCA9IDAKK19NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFU1BP
TlNFID0gMQorX01VWF9PUENPREVfRkxPV19DT05UUk9MID0gMgorX01VWF9PUENPREVfRFJPUF9D
SEFOTkVMID0gMworX01VWF9PUENPREVfTkVXX0NIQU5ORUxfU0xPVCA9IDQKKworX01BWF9DSEFO
TkVMX0lEID0gMiAqKiAyOSAtIDEKKworX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMg
PSA2NAorX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCA9IDggKiAxMDI0CisKK19IQU5EU0hBS0Vf
RU5DT0RJTkdfSURFTlRJVFkgPSAwCitfSEFORFNIQUtFX0VOQ09ESU5HX0RFTFRBID0gMQorCisj
IFdlIG5lZWQgb25seSB0aGVzZSBzdGF0dXMgY29kZSBmb3Igbm93LgorX0hUVFBfQkFEX1JFU1BP
TlNFX01FU1NBR0VTID0geworICAgIGNvbW1vbi5IVFRQX1NUQVRVU19CQURfUkVRVUVTVDogJ0Jh
ZCBSZXF1ZXN0JywKK30KKworIyBEcm9wQ2hhbm5lbCByZWFzb24gY29kZQorIyBUT0RPKGJhc2hp
KTogRGVmaW5lIGFsbCByZWFzb24gY29kZSBkZWZpbmVkIGluIC0wNSBkcmFmdC4KK19EUk9QX0NP
REVfTk9STUFMX0NMT1NVUkUgPSAxMDAwCisKK19EUk9QX0NPREVfSU5WQUxJRF9FTkNBUFNVTEFU
SU5HX01FU1NBR0UgPSAyMDAxCitfRFJPUF9DT0RFX0NIQU5ORUxfSURfVFJVTkNBVEVEID0gMjAw
MgorX0RST1BfQ09ERV9FTkNBUFNVTEFURURfRlJBTUVfSVNfVFJVTkNBVEVEID0gMjAwMworX0RS
T1BfQ09ERV9VTktOT1dOX01VWF9PUENPREUgPSAyMDA0CitfRFJPUF9DT0RFX0lOVkFMSURfTVVY
X0NPTlRST0xfQkxPQ0sgPSAyMDA1CitfRFJPUF9DT0RFX0NIQU5ORUxfQUxSRUFEWV9FWElTVFMg
PSAyMDA2CitfRFJPUF9DT0RFX05FV19DSEFOTkVMX1NMT1RfVklPTEFUSU9OID0gMjAwNworX0RS
T1BfQ09ERV9VTktOT1dOX1JFUVVFU1RfRU5DT0RJTkcgPSAyMDEwCisKK19EUk9QX0NPREVfU0VO
RF9RVU9UQV9WSU9MQVRJT04gPSAzMDA1CitfRFJPUF9DT0RFX1NFTkRfUVVPVEFfT1ZFUkZMT1cg
PSAzMDA2CitfRFJPUF9DT0RFX0FDS05PV0xFREdFRCA9IDMwMDgKK19EUk9QX0NPREVfQkFEX0ZS
QUdNRU5UQVRJT04gPSAzMDA5CisKKworY2xhc3MgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbihFeGNl
cHRpb24pOgorCisgICAgIiIiRXhjZXB0aW9uIGluIGhhbmRsaW5nIG11bHRpcGxleGluZyBleHRl
bnNpb24uIiIiCisKKyAgICBwYXNzCisKKworIyBUZW1wb3JhcnkKK2NsYXNzIE11eE5vdEltcGxl
bWVudGVkRXhjZXB0aW9uKEV4Y2VwdGlvbik6CisKKyAgICAiIiJSYWlzZWQgd2hlbiBhIGZsb3cg
ZW50ZXJzIHVuaW1wbGVtZW50ZWQgY29kZSBwYXRoLiIiIgorCisgICAgcGFzcworCisKK2NsYXNz
IExvZ2ljYWxDb25uZWN0aW9uQ2xvc2VkRXhjZXB0aW9uKEV4Y2VwdGlvbik6CisKKyAgICAiIiJS
YWlzZWQgd2hlbiBsb2dpY2FsIGNvbm5lY3Rpb24gaXMgZ3JhY2VmdWxseSBjbG9zZWQuIiIiCisK
KyAgICBwYXNzCisKKworY2xhc3MgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoRXhjZXB0aW9uKToK
KworICAgICIiIlJhaXNlZCB3aGVuIHRoZXJlIGlzIGEgcGh5c2ljYWwgY29ubmVjdGlvbiBlcnJv
ci4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkcm9wX2NvZGUsIG1lc3NhZ2U9JycpOgor
ICAgICAgICBzdXBlcihQaHlzaWNhbENvbm5lY3Rpb25FcnJvciwgc2VsZikuX19pbml0X18oCisg
ICAgICAgICAgICAnY29kZT0lZCwgbWVzc2FnZT0lcicgJSAoZHJvcF9jb2RlLCBtZXNzYWdlKSkK
KyAgICAgICAgc2VsZi5kcm9wX2NvZGUgPSBkcm9wX2NvZGUKKyAgICAgICAgc2VsZi5tZXNzYWdl
ID0gbWVzc2FnZQorCisKK2NsYXNzIExvZ2ljYWxDaGFubmVsRXJyb3IoRXhjZXB0aW9uKToKKwor
ICAgICIiIlJhaXNlZCB3aGVuIHRoZXJlIGlzIGEgbG9naWNhbCBjaGFubmVsIGVycm9yLiIiIgor
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNoYW5uZWxfaWQsIGRyb3BfY29kZSwgbWVzc2FnZT0n
Jyk6CisgICAgICAgICIiIkluaXRpYWxpemUgdGhlIGVycm9yIHdpdGggYSBzdGF0dXMgbWVzc2Fn
ZS4iIiIKKyAgICAgICAgc3VwZXIoTG9naWNhbENoYW5uZWxFcnJvciwgc2VsZikuX19pbml0X18o
CisgICAgICAgICAgICAnY2hhbm5lbF9pZD0lZCwgY29kZT0lZCwgbWVzc2FnZT0lcicgJSAoCisg
ICAgICAgICAgICAgICAgY2hhbm5lbF9pZCwgZHJvcF9jb2RlLCBtZXNzYWdlKSkKKyAgICAgICAg
c2VsZi5jaGFubmVsX2lkID0gY2hhbm5lbF9pZAorICAgICAgICBzZWxmLmRyb3BfY29kZSA9IGRy
b3BfY29kZQorICAgICAgICBzZWxmLm1lc3NhZ2UgPSBtZXNzYWdlCisKKworZGVmIF9lbmNvZGVf
Y2hhbm5lbF9pZChjaGFubmVsX2lkKToKKyAgICBpZiBjaGFubmVsX2lkIDwgMDoKKyAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcignQ2hhbm5lbCBpZCAlZCBtdXN0IG5vdCBiZSBuZWdhdGl2ZScgJSBj
aGFubmVsX2lkKQorCisgICAgaWYgY2hhbm5lbF9pZCA8IDIgKiogNzoKKyAgICAgICAgcmV0dXJu
IGNocihjaGFubmVsX2lkKQorICAgIGlmIGNoYW5uZWxfaWQgPCAyICoqIDE0OgorICAgICAgICBy
ZXR1cm4gc3RydWN0LnBhY2soJyFIJywgMHg4MDAwICsgY2hhbm5lbF9pZCkKKyAgICBpZiBjaGFu
bmVsX2lkIDwgMiAqKiAyMToKKyAgICAgICAgZmlyc3QgPSBjaHIoMHhjMCArIChjaGFubmVsX2lk
ID4+IDE2KSkKKyAgICAgICAgcmV0dXJuIGZpcnN0ICsgc3RydWN0LnBhY2soJyFIJywgY2hhbm5l
bF9pZCAmIDB4ZmZmZikKKyAgICBpZiBjaGFubmVsX2lkIDwgMiAqKiAyOToKKyAgICAgICAgcmV0
dXJuIHN0cnVjdC5wYWNrKCchTCcsIDB4ZTAwMDAwMDAgKyBjaGFubmVsX2lkKQorCisgICAgcmFp
c2UgVmFsdWVFcnJvcignQ2hhbm5lbCBpZCAlZCBpcyB0b28gbGFyZ2UnICUgY2hhbm5lbF9pZCkK
KworCitkZWYgX2VuY29kZV9udW1iZXIobnVtYmVyKToKKyAgICByZXR1cm4gY3JlYXRlX2xlbmd0
aF9oZWFkZXIobnVtYmVyLCBGYWxzZSkKKworCitkZWYgX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXNw
b25zZShjaGFubmVsX2lkLCBlbmNvZGVkX2hhbmRzaGFrZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGVuY29kaW5nPTAsIHJlamVjdGVkPUZhbHNlKToKKyAgICBpZiBlbmNvZGlu
ZyAhPSAwIGFuZCBlbmNvZGluZyAhPSAxOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZh
bGlkIGVuY29kaW5nICVkJyAlIGVuY29kaW5nKQorCisgICAgZmlyc3RfYnl0ZSA9ICgoX01VWF9P
UENPREVfQUREX0NIQU5ORUxfUkVTUE9OU0UgPDwgNSkgfAorICAgICAgICAgICAgICAgICAgKHJl
amVjdGVkIDw8IDQpIHwgZW5jb2RpbmcpCisgICAgYmxvY2sgPSAoY2hyKGZpcnN0X2J5dGUpICsK
KyAgICAgICAgICAgICBfZW5jb2RlX2NoYW5uZWxfaWQoY2hhbm5lbF9pZCkgKworICAgICAgICAg
ICAgIF9lbmNvZGVfbnVtYmVyKGxlbihlbmNvZGVkX2hhbmRzaGFrZSkpICsKKyAgICAgICAgICAg
ICBlbmNvZGVkX2hhbmRzaGFrZSkKKyAgICByZXR1cm4gYmxvY2sKKworCitkZWYgX2NyZWF0ZV9k
cm9wX2NoYW5uZWwoY2hhbm5lbF9pZCwgY29kZT1Ob25lLCBtZXNzYWdlPScnKToKKyAgICBpZiBs
ZW4obWVzc2FnZSkgPiAwIGFuZCBjb2RlIGlzIE5vbmU6CisgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoJ0NvZGUgbXVzdCBiZSBzcGVjaWZpZWQgaWYgbWVzc2FnZSBpcyBzcGVjaWZpZWQnKQorCisg
ICAgZmlyc3RfYnl0ZSA9IF9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCA8PCA1CisgICAgYmxvY2sg
PSBjaHIoZmlyc3RfYnl0ZSkgKyBfZW5jb2RlX2NoYW5uZWxfaWQoY2hhbm5lbF9pZCkKKyAgICBp
ZiBjb2RlIGlzIE5vbmU6CisgICAgICAgIGJsb2NrICs9IF9lbmNvZGVfbnVtYmVyKDApICAjIFJl
YXNvbiBzaXplCisgICAgZWxzZToKKyAgICAgICAgcmVhc29uID0gc3RydWN0LnBhY2soJyFIJywg
Y29kZSkgKyBtZXNzYWdlCisgICAgICAgIHJlYXNvbl9zaXplID0gX2VuY29kZV9udW1iZXIobGVu
KHJlYXNvbikpCisgICAgICAgIGJsb2NrICs9IHJlYXNvbl9zaXplICsgcmVhc29uCisKKyAgICBy
ZXR1cm4gYmxvY2sKKworCitkZWYgX2NyZWF0ZV9mbG93X2NvbnRyb2woY2hhbm5lbF9pZCwgcmVw
bGVuaXNoZWRfcXVvdGEpOgorICAgIGZpcnN0X2J5dGUgPSBfTVVYX09QQ09ERV9GTE9XX0NPTlRS
T0wgPDwgNQorICAgIGJsb2NrID0gKGNocihmaXJzdF9ieXRlKSArCisgICAgICAgICAgICAgX2Vu
Y29kZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQpICsKKyAgICAgICAgICAgICBfZW5jb2RlX251bWJl
cihyZXBsZW5pc2hlZF9xdW90YSkpCisgICAgcmV0dXJuIGJsb2NrCisKKworZGVmIF9jcmVhdGVf
bmV3X2NoYW5uZWxfc2xvdChzbG90cywgc2VuZF9xdW90YSk6CisgICAgaWYgc2xvdHMgPCAwIG9y
IHNlbmRfcXVvdGEgPCAwOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdzbG90cyBhbmQgc2Vu
ZF9xdW90YSBtdXN0IGJlIG5vbi1uZWdhdGl2ZS4nKQorICAgIGZpcnN0X2J5dGUgPSBfTVVYX09Q
Q09ERV9ORVdfQ0hBTk5FTF9TTE9UIDw8IDUKKyAgICBibG9jayA9IChjaHIoZmlyc3RfYnl0ZSkg
KworICAgICAgICAgICAgIF9lbmNvZGVfbnVtYmVyKHNsb3RzKSArCisgICAgICAgICAgICAgX2Vu
Y29kZV9udW1iZXIoc2VuZF9xdW90YSkpCisgICAgcmV0dXJuIGJsb2NrCisKKworZGVmIF9jcmVh
dGVfZmFsbGJhY2tfbmV3X2NoYW5uZWxfc2xvdCgpOgorICAgIGZpcnN0X2J5dGUgPSAoX01VWF9P
UENPREVfTkVXX0NIQU5ORUxfU0xPVCA8PCA1KSB8IDEgICMgU2V0IHRoZSBGIGZsYWcKKyAgICBi
bG9jayA9IChjaHIoZmlyc3RfYnl0ZSkgKyBfZW5jb2RlX251bWJlcigwKSArIF9lbmNvZGVfbnVt
YmVyKDApKQorICAgIHJldHVybiBibG9jaworCisKK2RlZiBfcGFyc2VfcmVxdWVzdF90ZXh0KHJl
cXVlc3RfdGV4dCk6CisgICAgcmVxdWVzdF9saW5lLCBoZWFkZXJfbGluZXMgPSByZXF1ZXN0X3Rl
eHQuc3BsaXQoJ1xyXG4nLCAxKQorCisgICAgd29yZHMgPSByZXF1ZXN0X2xpbmUuc3BsaXQoJyAn
KQorICAgIGlmIGxlbih3b3JkcykgIT0gMzoKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQmFk
IFJlcXVlc3QtTGluZSBzeW50YXggJXInICUgcmVxdWVzdF9saW5lKQorICAgIFtjb21tYW5kLCBw
YXRoLCB2ZXJzaW9uXSA9IHdvcmRzCisgICAgaWYgdmVyc2lvbiAhPSAnSFRUUC8xLjEnOgorICAg
ICAgICByYWlzZSBWYWx1ZUVycm9yKCdCYWQgcmVxdWVzdCB2ZXJzaW9uICVyJyAlIHZlcnNpb24p
CisKKyAgICAjIGVtYWlsLnBhcnNlci5QYXJzZXIoKSBwYXJzZXMgUkZDIDI4MjIgKFJGQyA4MjIp
IHN0eWxlIGhlYWRlcnMuCisgICAgIyBSRkMgNjQ1NSByZWZlcnMgUkZDIDI2MTYgZm9yIGhhbmRz
aGFrZSBwYXJzaW5nLCBhbmQgUkZDIDI2MTYgcmVmZXJzCisgICAgIyBSRkMgODIyLgorICAgIGhl
YWRlcnMgPSBlbWFpbC5wYXJzZXIuUGFyc2VyKCkucGFyc2VzdHIoaGVhZGVyX2xpbmVzKQorICAg
IHJldHVybiBjb21tYW5kLCBwYXRoLCB2ZXJzaW9uLCBoZWFkZXJzCisKKworY2xhc3MgX0NvbnRy
b2xCbG9jayhvYmplY3QpOgorCisgICAgIiIiQSBzdHJ1Y3R1cmUgdGhhdCBob2xkcyBwYXJzaW5n
IHJlc3VsdCBvZiBtdWx0aXBsZXhpbmcgY29udHJvbCBibG9jay4KKworICAgIENvbnRyb2wgYmxv
Y2sgc3BlY2lmaWMgYXR0cmlidXRlcyB3aWxsIGJlIGFkZGVkIGJ5IF9NdXhGcmFtZVBheWxvYWRQ
YXJzZXIuCisgICAgKGUuZy4gZW5jb2RlZF9oYW5kc2hha2Ugd2lsbCBiZSBhZGRlZCBmb3IgQWRk
Q2hhbm5lbFJlcXVlc3QgYW5kCisgICAgQWRkQ2hhbm5lbFJlc3BvbnNlKQorICAgICIiIgorCisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wY29kZSk6CisgICAgICAgIHNlbGYub3Bjb2RlID0gb3Bj
b2RlCisKKworY2xhc3MgX011eEZyYW1lUGF5bG9hZFBhcnNlcihvYmplY3QpOgorCisgICAgIiIi
QSBjbGFzcyB0aGF0IHBhcnNlcyBtdWx0aXBsZXhlZCBmcmFtZSBwYXlsb2FkLiIiIgorCisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHBheWxvYWQpOgorICAgICAgICBzZWxmLl9kYXRhID0gcGF5bG9h
ZAorICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0aW9uID0gMAorICAgICAgICBzZWxmLl9sb2dnZXIg
PSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKKworICAgIGRlZiByZWFkX2NoYW5uZWxfaWQo
c2VsZik6CisgICAgICAgICIiIlJlYWQgY2hhbm5lbCBpZC4KKworICAgICAgICBSYWlzZXM6Cisg
ICAgICAgICAgICBWYWx1ZUVycm9yOiB3aGVuIHRoZSBwYXlsb2FkIGRvZXNuJ3QgY29udGFpbgor
ICAgICAgICAgICAgICAgIHZhbGlkIGNoYW5uZWwgaWQuCisgICAgICAgICIiIgorICAgICAgICBy
ZW1haW5pbmdfbGVuZ3RoID0gbGVuKHNlbGYuX2RhdGEpIC0gc2VsZi5fcmVhZF9wb3NpdGlvbgor
ICAgICAgICBwb3MgPSBzZWxmLl9yZWFkX3Bvc2l0aW9uCisgICAgICAgIGlmIHJlbWFpbmluZ19s
ZW5ndGggPT0gMDoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0ludmFsaWQgY2hhbm5l
bCBpZCBmb3JtYXQnKQorCisgICAgICAgIGNoYW5uZWxfaWQgPSBvcmQoc2VsZi5fZGF0YVtwb3Nd
KQorICAgICAgICBjaGFubmVsX2lkX2xlbmd0aCA9IDEKKyAgICAgICAgaWYgY2hhbm5lbF9pZCAm
IDB4ZTAgPT0gMHhlMDoKKyAgICAgICAgICAgIGlmIHJlbWFpbmluZ19sZW5ndGggPCA0OgorICAg
ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0ludmFsaWQgY2hhbm5lbCBpZCBmb3JtYXQn
KQorICAgICAgICAgICAgY2hhbm5lbF9pZCA9IHN0cnVjdC51bnBhY2soJyFMJywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2RhdGFbcG9zOnBvcys0XSlbMF0g
JiAweDFmZmZmZmZmCisgICAgICAgICAgICBjaGFubmVsX2lkX2xlbmd0aCA9IDQKKyAgICAgICAg
ZWxpZiBjaGFubmVsX2lkICYgMHhjMCA9PSAweGMwOgorICAgICAgICAgICAgaWYgcmVtYWluaW5n
X2xlbmd0aCA8IDM6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCBj
aGFubmVsIGlkIGZvcm1hdCcpCisgICAgICAgICAgICBjaGFubmVsX2lkID0gKCgoY2hhbm5lbF9p
ZCAmIDB4MWYpIDw8IDE2KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdC51bnBh
Y2soJyFIJywgc2VsZi5fZGF0YVtwb3MrMTpwb3MrM10pWzBdKQorICAgICAgICAgICAgY2hhbm5l
bF9pZF9sZW5ndGggPSAzCisgICAgICAgIGVsaWYgY2hhbm5lbF9pZCAmIDB4ODAgPT0gMHg4MDoK
KyAgICAgICAgICAgIGlmIHJlbWFpbmluZ19sZW5ndGggPCAyOgorICAgICAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoJ0ludmFsaWQgY2hhbm5lbCBpZCBmb3JtYXQnKQorICAgICAgICAgICAg
Y2hhbm5lbF9pZCA9IHN0cnVjdC51bnBhY2soJyFIJywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGYuX2RhdGFbcG9zOnBvcysyXSlbMF0gJiAweDNmZmYKKyAgICAg
ICAgICAgIGNoYW5uZWxfaWRfbGVuZ3RoID0gMgorICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0aW9u
ICs9IGNoYW5uZWxfaWRfbGVuZ3RoCisKKyAgICAgICAgcmV0dXJuIGNoYW5uZWxfaWQKKworICAg
IGRlZiByZWFkX2lubmVyX2ZyYW1lKHNlbGYpOgorICAgICAgICAiIiJSZWFkIGFuIGlubmVyIGZy
YW1lLgorCisgICAgICAgIFJhaXNlczoKKyAgICAgICAgICAgIFBoeXNpY2FsQ29ubmVjdGlvbkVy
cm9yOiB3aGVuIHRoZSBpbm5lciBmcmFtZSBpcyBpbnZhbGlkLgorICAgICAgICAiIiIKKyAgICAg
ICAgaWYgbGVuKHNlbGYuX2RhdGEpID09IHNlbGYuX3JlYWRfcG9zaXRpb246CisgICAgICAgICAg
ICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKKyAgICAgICAgICAgICAgICBfRFJPUF9D
T0RFX0VOQ0FQU1VMQVRFRF9GUkFNRV9JU19UUlVOQ0FURUQpCisKKyAgICAgICAgYml0cyA9IG9y
ZChzZWxmLl9kYXRhW3NlbGYuX3JlYWRfcG9zaXRpb25dKQorICAgICAgICBzZWxmLl9yZWFkX3Bv
c2l0aW9uICs9IDEKKyAgICAgICAgZmluID0gKGJpdHMgJiAweDgwKSA9PSAweDgwCisgICAgICAg
IHJzdjEgPSAoYml0cyAmIDB4NDApID09IDB4NDAKKyAgICAgICAgcnN2MiA9IChiaXRzICYgMHgy
MCkgPT0gMHgyMAorICAgICAgICByc3YzID0gKGJpdHMgJiAweDEwKSA9PSAweDEwCisgICAgICAg
IG9wY29kZSA9IGJpdHMgJiAweGYKKyAgICAgICAgcGF5bG9hZCA9IHNlbGYucmVtYWluaW5nX2Rh
dGEoKQorICAgICAgICAjIENvbnN1bWUgcmVzdCBvZiB0aGUgbWVzc2FnZSB3aGljaCBpcyBwYXls
b2FkIGRhdGEgb2YgdGhlIG9yaWdpbmFsCisgICAgICAgICMgZnJhbWUuCisgICAgICAgIHNlbGYu
X3JlYWRfcG9zaXRpb24gPSBsZW4oc2VsZi5fZGF0YSkKKyAgICAgICAgcmV0dXJuIGZpbiwgcnN2
MSwgcnN2MiwgcnN2Mywgb3Bjb2RlLCBwYXlsb2FkCisKKyAgICBkZWYgX3JlYWRfbnVtYmVyKHNl
bGYpOgorICAgICAgICBpZiBzZWxmLl9yZWFkX3Bvc2l0aW9uICsgMSA+IGxlbihzZWxmLl9kYXRh
KToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAgICAgJ0Nhbm5v
dCByZWFkIHRoZSBmaXJzdCBieXRlIG9mIG51bWJlciBmaWVsZCcpCisKKyAgICAgICAgbnVtYmVy
ID0gb3JkKHNlbGYuX2RhdGFbc2VsZi5fcmVhZF9wb3NpdGlvbl0pCisgICAgICAgIGlmIG51bWJl
ciAmIDB4ODAgPT0gMHg4MDoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAg
ICAgICAgICAgJ1RoZSBtb3N0IHNpZ25pZmljYW50IGJpdCBvZiB0aGUgZmlyc3QgYnl0ZSBvZiBu
dW1iZXIgc2hvdWxkICcKKyAgICAgICAgICAgICAgICAnYmUgdW5zZXQnKQorICAgICAgICBzZWxm
Ll9yZWFkX3Bvc2l0aW9uICs9IDEKKyAgICAgICAgcG9zID0gc2VsZi5fcmVhZF9wb3NpdGlvbgor
ICAgICAgICBpZiBudW1iZXIgPT0gMTI3OgorICAgICAgICAgICAgaWYgcG9zICsgOCA+IGxlbihz
ZWxmLl9kYXRhKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZhbGlkIG51
bWJlciBmaWVsZCcpCisgICAgICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0aW9uICs9IDgKKyAgICAg
ICAgICAgIG51bWJlciA9IHN0cnVjdC51bnBhY2soJyFRJywgc2VsZi5fZGF0YVtwb3M6cG9zKzhd
KVswXQorICAgICAgICAgICAgaWYgbnVtYmVyID4gMHg3RkZGRkZGRkZGRkZGRkZGOgorICAgICAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0VuY29kZWQgbnVtYmVyKCVkKSA+PSAyXjYzJyAl
IG51bWJlcikKKyAgICAgICAgICAgIGlmIG51bWJlciA8PSAweEZGRkY6CisgICAgICAgICAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgJyVkIHNob3VsZCBub3Qg
YmUgZW5jb2RlZCBieSA5IGJ5dGVzIGVuY29kaW5nJyAlIG51bWJlcikKKyAgICAgICAgICAgIHJl
dHVybiBudW1iZXIKKyAgICAgICAgaWYgbnVtYmVyID09IDEyNjoKKyAgICAgICAgICAgIGlmIHBv
cyArIDIgPiBsZW4oc2VsZi5fZGF0YSk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cignSW52YWxpZCBudW1iZXIgZmllbGQnKQorICAgICAgICAgICAgc2VsZi5fcmVhZF9wb3NpdGlv
biArPSAyCisgICAgICAgICAgICBudW1iZXIgPSBzdHJ1Y3QudW5wYWNrKCchSCcsIHNlbGYuX2Rh
dGFbcG9zOnBvcysyXSlbMF0KKyAgICAgICAgICAgIGlmIG51bWJlciA8PSAxMjU6CisgICAgICAg
ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgJyVkIHNob3Vs
ZCBub3QgYmUgZW5jb2RlZCBieSAzIGJ5dGVzIGVuY29kaW5nJyAlIG51bWJlcikKKyAgICAgICAg
cmV0dXJuIG51bWJlcgorCisgICAgZGVmIF9yZWFkX3NpemVfYW5kX2NvbnRlbnRzKHNlbGYpOgor
ICAgICAgICAiIiJSZWFkIGRhdGEgdGhhdCBjb25zaXN0cyBvZiB0aGUgZm9sbG93aW5nOgorICAg
ICAgICAgICAgLSB0aGUgc2l6ZSBvZiB0aGUgY29udGVudHMgZW5jb2RlZCB0aGUgc2FtZSB3YXkg
YXMgcGF5bG9hZCBsZW5ndGgKKyAgICAgICAgICAgICAgb2YgdGhlIFdlYlNvY2tldCBQcm90b2Nv
bCB3aXRoIDEgYml0IHBhZGRpbmcgYXQgdGhlIGhlYWQuCisgICAgICAgICAgICAtIHRoZSBjb250
ZW50cy4KKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNpemUgPSBzZWxm
Ll9yZWFkX251bWJlcigpCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgorICAgICAgICAg
ICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoX0RST1BfQ09ERV9JTlZBTElEX01VWF9D
T05UUk9MX0JMT0NLLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RyKGUpKQorICAgICAgICBwb3MgPSBzZWxmLl9yZWFkX3Bvc2l0aW9uCisgICAgICAgIGlmIHBv
cyArIHNpemUgPiBsZW4oc2VsZi5fZGF0YSk6CisgICAgICAgICAgICByYWlzZSBQaHlzaWNhbENv
bm5lY3Rpb25FcnJvcigKKyAgICAgICAgICAgICAgICBfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NP
TlRST0xfQkxPQ0ssCisgICAgICAgICAgICAgICAgJ0Nhbm5vdCByZWFkICVkIGJ5dGVzIGRhdGEn
ICUgc2l6ZSkKKworICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0aW9uICs9IHNpemUKKyAgICAgICAg
cmV0dXJuIHNlbGYuX2RhdGFbcG9zOnBvcytzaXplXQorCisgICAgZGVmIF9yZWFkX2FkZF9jaGFu
bmVsX3JlcXVlc3Qoc2VsZiwgZmlyc3RfYnl0ZSwgY29udHJvbF9ibG9jayk6CisgICAgICAgIHJl
c2VydmVkID0gKGZpcnN0X2J5dGUgPj4gMikgJiAweDcKKyAgICAgICAgaWYgcmVzZXJ2ZWQgIT0g
MDoKKyAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAorICAgICAgICAg
ICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKKyAgICAgICAgICAg
ICAgICAnUmVzZXJ2ZWQgYml0cyBtdXN0IGJlIHVuc2V0JykKKworICAgICAgICAjIEludmFsaWQg
ZW5jb2Rpbmcgd2lsbCBiZSBoYW5kbGVkIGJ5IE11eEhhbmRsZXIuCisgICAgICAgIGVuY29kaW5n
ID0gZmlyc3RfYnl0ZSAmIDB4MworICAgICAgICB0cnk6CisgICAgICAgICAgICBjb250cm9sX2Js
b2NrLmNoYW5uZWxfaWQgPSBzZWxmLnJlYWRfY2hhbm5lbF9pZCgpCisgICAgICAgIGV4Y2VwdCBW
YWx1ZUVycm9yLCBlOgorICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3Io
X0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLKQorICAgICAgICBjb250cm9sX2Js
b2NrLmVuY29kaW5nID0gZW5jb2RpbmcKKyAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBzZWxm
Ll9yZWFkX3NpemVfYW5kX2NvbnRlbnRzKCkKKyAgICAgICAgY29udHJvbF9ibG9jay5lbmNvZGVk
X2hhbmRzaGFrZSA9IGVuY29kZWRfaGFuZHNoYWtlCisgICAgICAgIHJldHVybiBjb250cm9sX2Js
b2NrCisKKyAgICBkZWYgX3JlYWRfYWRkX2NoYW5uZWxfcmVzcG9uc2Uoc2VsZiwgZmlyc3RfYnl0
ZSwgY29udHJvbF9ibG9jayk6CisgICAgICAgIHJlc2VydmVkID0gKGZpcnN0X2J5dGUgPj4gMikg
JiAweDMKKyAgICAgICAgaWYgcmVzZXJ2ZWQgIT0gMDoKKyAgICAgICAgICAgIHJhaXNlIFBoeXNp
Y2FsQ29ubmVjdGlvbkVycm9yKAorICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9N
VVhfQ09OVFJPTF9CTE9DSywKKyAgICAgICAgICAgICAgICAnUmVzZXJ2ZWQgYml0cyBtdXN0IGJl
IHVuc2V0JykKKworICAgICAgICBjb250cm9sX2Jsb2NrLmFjY2VwdGVkID0gKGZpcnN0X2J5dGUg
Pj4gNCkgJiAxCisgICAgICAgIGNvbnRyb2xfYmxvY2suZW5jb2RpbmcgPSBmaXJzdF9ieXRlICYg
MHgzCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGNvbnRyb2xfYmxvY2suY2hhbm5lbF9pZCA9
IHNlbGYucmVhZF9jaGFubmVsX2lkKCkKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IsIGU6Cisg
ICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcihfRFJPUF9DT0RFX0lOVkFM
SURfTVVYX0NPTlRST0xfQkxPQ0spCisgICAgICAgIGNvbnRyb2xfYmxvY2suZW5jb2RlZF9oYW5k
c2hha2UgPSBzZWxmLl9yZWFkX3NpemVfYW5kX2NvbnRlbnRzKCkKKyAgICAgICAgcmV0dXJuIGNv
bnRyb2xfYmxvY2sKKworICAgIGRlZiBfcmVhZF9mbG93X2NvbnRyb2woc2VsZiwgZmlyc3RfYnl0
ZSwgY29udHJvbF9ibG9jayk6CisgICAgICAgIHJlc2VydmVkID0gZmlyc3RfYnl0ZSAmIDB4MWYK
KyAgICAgICAgaWYgcmVzZXJ2ZWQgIT0gMDoKKyAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29u
bmVjdGlvbkVycm9yKAorICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09O
VFJPTF9CTE9DSywKKyAgICAgICAgICAgICAgICAnUmVzZXJ2ZWQgYml0cyBtdXN0IGJlIHVuc2V0
JykKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBjb250cm9sX2Jsb2NrLmNoYW5uZWxfaWQg
PSBzZWxmLnJlYWRfY2hhbm5lbF9pZCgpCisgICAgICAgICAgICBjb250cm9sX2Jsb2NrLnNlbmRf
cXVvdGEgPSBzZWxmLl9yZWFkX251bWJlcigpCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBl
OgorICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoX0RST1BfQ09ERV9J
TlZBTElEX01VWF9DT05UUk9MX0JMT0NLLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3RyKGUpKQorCisgICAgICAgIHJldHVybiBjb250cm9sX2Jsb2NrCisKKyAg
ICBkZWYgX3JlYWRfZHJvcF9jaGFubmVsKHNlbGYsIGZpcnN0X2J5dGUsIGNvbnRyb2xfYmxvY2sp
OgorICAgICAgICByZXNlcnZlZCA9IGZpcnN0X2J5dGUgJiAweDFmCisgICAgICAgIGlmIHJlc2Vy
dmVkICE9IDA6CisgICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKKyAg
ICAgICAgICAgICAgICBfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCisgICAg
ICAgICAgICAgICAgJ1Jlc2VydmVkIGJpdHMgbXVzdCBiZSB1bnNldCcpCisKKyAgICAgICAgdHJ5
OgorICAgICAgICAgICAgY29udHJvbF9ibG9jay5jaGFubmVsX2lkID0gc2VsZi5yZWFkX2NoYW5u
ZWxfaWQoKQorICAgICAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKKyAgICAgICAgICAgIHJhaXNl
IFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9C
TE9DSykKKyAgICAgICAgcmVhc29uID0gc2VsZi5fcmVhZF9zaXplX2FuZF9jb250ZW50cygpCisg
ICAgICAgIGlmIGxlbihyZWFzb24pID09IDA6CisgICAgICAgICAgICBjb250cm9sX2Jsb2NrLmRy
b3BfY29kZSA9IE5vbmUKKyAgICAgICAgICAgIGNvbnRyb2xfYmxvY2suZHJvcF9tZXNzYWdlID0g
JycKKyAgICAgICAgZWxpZiBsZW4ocmVhc29uKSA+PSAyOgorICAgICAgICAgICAgY29udHJvbF9i
bG9jay5kcm9wX2NvZGUgPSBzdHJ1Y3QudW5wYWNrKCchSCcsIHJlYXNvbls6Ml0pWzBdCisgICAg
ICAgICAgICBjb250cm9sX2Jsb2NrLmRyb3BfbWVzc2FnZSA9IHJlYXNvblsyOl0KKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAorICAgICAg
ICAgICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKKyAgICAgICAg
ICAgICAgICAnUmVjZWl2ZWQgRHJvcENoYW5uZWwgdGhhdCBjb25haW5zIG9ubHkgMS1ieXRlIHJl
YXNvbicpCisgICAgICAgIHJldHVybiBjb250cm9sX2Jsb2NrCisKKyAgICBkZWYgX3JlYWRfbmV3
X2NoYW5uZWxfc2xvdChzZWxmLCBmaXJzdF9ieXRlLCBjb250cm9sX2Jsb2NrKToKKyAgICAgICAg
cmVzZXJ2ZWQgPSBmaXJzdF9ieXRlICYgMHgxZQorICAgICAgICBpZiByZXNlcnZlZCAhPSAwOgor
ICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCisgICAgICAgICAgICAg
ICAgX0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLLAorICAgICAgICAgICAgICAg
ICdSZXNlcnZlZCBiaXRzIG11c3QgYmUgdW5zZXQnKQorICAgICAgICBjb250cm9sX2Jsb2NrLmZh
bGxiYWNrID0gZmlyc3RfYnl0ZSAmIDEKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgY29udHJv
bF9ibG9jay5zbG90cyA9IHNlbGYuX3JlYWRfbnVtYmVyKCkKKyAgICAgICAgICAgIGNvbnRyb2xf
YmxvY2suc2VuZF9xdW90YSA9IHNlbGYuX3JlYWRfbnVtYmVyKCkKKyAgICAgICAgZXhjZXB0IFZh
bHVlRXJyb3IsIGU6CisgICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcihf
RFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdHIoZSkpCisgICAgICAgIHJldHVybiBjb250cm9sX2Js
b2NrCisKKyAgICBkZWYgcmVhZF9jb250cm9sX2Jsb2NrcyhzZWxmKToKKyAgICAgICAgIiIiUmVh
ZCBjb250cm9sIGJsb2NrKHMpLgorCisgICAgICAgIFJhaXNlczoKKyAgICAgICAgICAgUGh5c2lj
YWxDb25uZWN0aW9uRXJyb3I6IHdoZW4gdGhlIHBheWxvYWQgY29udGFpbnMgaW52YWxpZCBjb250
cm9sCisgICAgICAgICAgICAgICBibG9jayhzKS4KKyAgICAgICAgICAgU3RvcEl0ZXJhdGlvbjog
d2hlbiBubyBjb250cm9sIGJsb2NrcyBsZWZ0LgorICAgICAgICAiIiIKKyAgICAgICAgd2hpbGUg
c2VsZi5fcmVhZF9wb3NpdGlvbiA8IGxlbihzZWxmLl9kYXRhKToKKyAgICAgICAgICAgIGZpcnN0
X2J5dGUgPSBvcmQoc2VsZi5fZGF0YVtzZWxmLl9yZWFkX3Bvc2l0aW9uXSkKKyAgICAgICAgICAg
IHNlbGYuX3JlYWRfcG9zaXRpb24gKz0gMQorICAgICAgICAgICAgb3Bjb2RlID0gKGZpcnN0X2J5
dGUgPj4gNSkgJiAweDcKKyAgICAgICAgICAgIGNvbnRyb2xfYmxvY2sgPSBfQ29udHJvbEJsb2Nr
KG9wY29kZT1vcGNvZGUpCisgICAgICAgICAgICBpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfQURE
X0NIQU5ORUxfUkVRVUVTVDoKKyAgICAgICAgICAgICAgICB5aWVsZCBzZWxmLl9yZWFkX2FkZF9j
aGFubmVsX3JlcXVlc3QoZmlyc3RfYnl0ZSwgY29udHJvbF9ibG9jaykKKyAgICAgICAgICAgIGVs
aWYgb3Bjb2RlID09IF9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFU1BPTlNFOgorICAgICAgICAg
ICAgICAgIHlpZWxkIHNlbGYuX3JlYWRfYWRkX2NoYW5uZWxfcmVzcG9uc2UoCisgICAgICAgICAg
ICAgICAgICAgIGZpcnN0X2J5dGUsIGNvbnRyb2xfYmxvY2spCisgICAgICAgICAgICBlbGlmIG9w
Y29kZSA9PSBfTVVYX09QQ09ERV9GTE9XX0NPTlRST0w6CisgICAgICAgICAgICAgICAgeWllbGQg
c2VsZi5fcmVhZF9mbG93X2NvbnRyb2woZmlyc3RfYnl0ZSwgY29udHJvbF9ibG9jaykKKyAgICAg
ICAgICAgIGVsaWYgb3Bjb2RlID09IF9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTDoKKyAgICAgICAg
ICAgICAgICB5aWVsZCBzZWxmLl9yZWFkX2Ryb3BfY2hhbm5lbChmaXJzdF9ieXRlLCBjb250cm9s
X2Jsb2NrKQorICAgICAgICAgICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfTkVXX0NIQU5O
RUxfU0xPVDoKKyAgICAgICAgICAgICAgICB5aWVsZCBzZWxmLl9yZWFkX25ld19jaGFubmVsX3Ns
b3QoZmlyc3RfYnl0ZSwgY29udHJvbF9ibG9jaykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCisgICAgICAgICAgICAgICAg
ICAgIF9EUk9QX0NPREVfVU5LTk9XTl9NVVhfT1BDT0RFLAorICAgICAgICAgICAgICAgICAgICAn
SW52YWxpZCBvcGNvZGUgJWQnICUgb3Bjb2RlKQorCisgICAgICAgIGFzc2VydCBzZWxmLl9yZWFk
X3Bvc2l0aW9uID09IGxlbihzZWxmLl9kYXRhKQorICAgICAgICByYWlzZSBTdG9wSXRlcmF0aW9u
CisKKyAgICBkZWYgcmVtYWluaW5nX2RhdGEoc2VsZik6CisgICAgICAgICIiIlJldHVybiByZW1h
aW5pbmcgZGF0YS4iIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX2RhdGFbc2VsZi5fcmVhZF9wb3Np
dGlvbjpdCisKKworY2xhc3MgX0xvZ2ljYWxSZXF1ZXN0KG9iamVjdCk6CisKKyAgICAiIiJNaW1p
Y3MgbW9kX3B5dGhvbiByZXF1ZXN0LiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNoYW5u
ZWxfaWQsIGNvbW1hbmQsIHBhdGgsIHByb3RvY29sLCBoZWFkZXJzLAorICAgICAgICAgICAgICAg
ICBjb25uZWN0aW9uKToKKyAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgorCisgICAg
ICAgIEFyZ3M6CisgICAgICAgICAgICBjaGFubmVsX2lkOiB0aGUgY2hhbm5lbCBpZCBvZiB0aGUg
bG9naWNhbCBjaGFubmVsLgorICAgICAgICAgICAgY29tbWFuZDogSFRUUCByZXF1ZXN0IGNvbW1h
bmQuCisgICAgICAgICAgICBwYXRoOiBIVFRQIHJlcXVlc3QgcGF0aC4KKyAgICAgICAgICAgIGhl
YWRlcnM6IEhUVFAgaGVhZGVycy4KKyAgICAgICAgICAgIGNvbm5lY3Rpb246IF9Mb2dpY2FsQ29u
bmVjdGlvbiBpbnN0YW5jZS4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuY2hhbm5lbF9pZCA9
IGNoYW5uZWxfaWQKKyAgICAgICAgc2VsZi5tZXRob2QgPSBjb21tYW5kCisgICAgICAgIHNlbGYu
dXJpID0gcGF0aAorICAgICAgICBzZWxmLnByb3RvY29sID0gcHJvdG9jb2wKKyAgICAgICAgc2Vs
Zi5oZWFkZXJzX2luID0gaGVhZGVycworICAgICAgICBzZWxmLmNvbm5lY3Rpb24gPSBjb25uZWN0
aW9uCisgICAgICAgIHNlbGYuc2VydmVyX3Rlcm1pbmF0ZWQgPSBGYWxzZQorICAgICAgICBzZWxm
LmNsaWVudF90ZXJtaW5hdGVkID0gRmFsc2UKKworICAgIGRlZiBpc19odHRwcyhzZWxmKToKKyAg
ICAgICAgIiIiTWltaWMgcmVxdWVzdC5pc19odHRwcygpLgorCisgICAgICAgIFJldHVybnMgRmFs
c2UgYmVjYXVzZSB0aGlzIG1ldGhvZCBpcyB1c2VkIG9ubHkgYnkgb2xkIHByb3RvY29scworICAg
ICAgICAoaGl4aWUgYW5kIGh5YmkwMCkuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gRmFs
c2UKKworCitjbGFzcyBfTG9naWNhbENvbm5lY3Rpb24ob2JqZWN0KToKKworICAgICIiIk1pbWlj
cyBtb2RfcHl0aG9uIG1wX2Nvbm4uIiIiCisKKyAgICAjIEZvciBkZXRhaWxzLCBzZWUgdGhlIGNv
bW1lbnQgb2Ygc2V0X3JlYWRfc3RhdGUoKS4KKyAgICBTVEFURV9BQ1RJVkUgPSAxCisgICAgU1RB
VEVfR1JBQ0VGVUxMWV9DTE9TRUQgPSAyCisgICAgU1RBVEVfVEVSTUlOQVRFRCA9IDMKKworICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBtdXhfaGFuZGxlciwgY2hhbm5lbF9pZCk6CisgICAgICAgICIi
IkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgbXV4
X2hhbmRsZXI6IF9NdXhIYW5kbGVyIGluc3RhbmNlLgorICAgICAgICAgICAgY2hhbm5lbF9pZDog
Y2hhbm5lbCBpZCBvZiB0aGlzIGNvbm5lY3Rpb24uCisgICAgICAgICIiIgorICAgICAgICBzZWxm
Ll9tdXhfaGFuZGxlciA9IG11eF9oYW5kbGVyCisgICAgICAgIHNlbGYuX2NoYW5uZWxfaWQgPSBj
aGFubmVsX2lkCisgICAgICAgIHNlbGYuX2luY29taW5nX2RhdGEgPSAnJworCisgICAgICAgICMg
LSBQcm90ZWN0cyBfd2FpdGluZ193cml0ZV9jb21wbGV0aW9uCisgICAgICAgICMgLSBTaWduYWxz
IHRoZSB0aHJlYWQgd2FpdGluZyBmb3IgY29tcGxldGlvbiBvZiB3cml0ZSBieSBtdXggaGFuZGxl
cgorICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRpb24gPSB0aHJlYWRpbmcuQ29uZGl0aW9uKCkK
KyAgICAgICAgc2VsZi5fd2FpdGluZ193cml0ZV9jb21wbGV0aW9uID0gRmFsc2UKKworICAgICAg
ICBzZWxmLl9yZWFkX2NvbmRpdGlvbiA9IHRocmVhZGluZy5Db25kaXRpb24oKQorICAgICAgICBz
ZWxmLl9yZWFkX3N0YXRlID0gc2VsZi5TVEFURV9BQ1RJVkUKKworICAgIGRlZiBnZXRfbG9jYWxf
YWRkcihzZWxmKToKKyAgICAgICAgIiIiR2V0dGVyIHRvIG1pbWljIG1wX2Nvbm4ubG9jYWxfYWRk
ci4iIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX211eF9oYW5kbGVyLnBoeXNpY2FsX2Nvbm5lY3Rp
b24uZ2V0X2xvY2FsX2FkZHIoKQorICAgIGxvY2FsX2FkZHIgPSBwcm9wZXJ0eShnZXRfbG9jYWxf
YWRkcikKKworICAgIGRlZiBnZXRfcmVtb3RlX2FkZHIoc2VsZik6CisgICAgICAgICIiIkdldHRl
ciB0byBtaW1pYyBtcF9jb25uLnJlbW90ZV9hZGRyLiIiIgorICAgICAgICByZXR1cm4gc2VsZi5f
bXV4X2hhbmRsZXIucGh5c2ljYWxfY29ubmVjdGlvbi5nZXRfcmVtb3RlX2FkZHIoKQorICAgIHJl
bW90ZV9hZGRyID0gcHJvcGVydHkoZ2V0X3JlbW90ZV9hZGRyKQorCisgICAgZGVmIGdldF9tZW1v
cml6ZWRfbGluZXMoc2VsZik6CisgICAgICAgICIiIkdldCBtZW1vcml6ZWQgbGluZXMuIE5vdCBz
dXBwb3J0ZWQuIiIiCisgICAgICAgIHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRpb24oJ19Mb2dp
Y2FsQ29ubmVjdGlvbiBkb2VzIG5vdCBzdXBwb3J0ICcKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnZ2V0X21lbW9yaXplZF9saW5lcycpCisKKyAgICBkZWYgd3JpdGUoc2Vs
ZiwgZGF0YSk6CisgICAgICAgICIiIldyaXRlIGRhdGEuIG11eF9oYW5kbGVyIHNlbmRzIGRhdGEg
YXN5bmNocm9ub3VzbHkuCisKKyAgICAgICAgVGhlIGNhbGxlciB3aWxsIGJlIHN1c3BlbmRlZCB1
bnRpbCB3cml0ZSBkb25lLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBkYXRhOiBkYXRh
IHRvIGJlIHdyaXR0ZW4uCisKKyAgICAgICAgUmFpc2VzOgorICAgICAgICAgICAgTXV4VW5leHBl
Y3RlZEV4Y2VwdGlvbjogd2hlbiBjYWxsZWQgYmVmb3JlIGZpbmlzaGluZyB0aGUgcHJldmlvdXMK
KyAgICAgICAgICAgICAgICB3cml0ZS4KKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbi5hY3F1aXJlKCkKKyAgICAgICAgICAgIGlmIHNl
bGYuX3dhaXRpbmdfd3JpdGVfY29tcGxldGlvbjoKKyAgICAgICAgICAgICAgICByYWlzZSBNdXhV
bmV4cGVjdGVkRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAnTG9naWNhbCBjb25uZWN0
aW9uICVkIGlzIGFscmVhZHkgd2FpdGluZyB0aGUgY29tcGxldGlvbiAnCisgICAgICAgICAgICAg
ICAgICAgICdvZiB3cml0ZScgJSBzZWxmLl9jaGFubmVsX2lkKQorCisgICAgICAgICAgICBzZWxm
Ll93YWl0aW5nX3dyaXRlX2NvbXBsZXRpb24gPSBUcnVlCisgICAgICAgICAgICBzZWxmLl9tdXhf
aGFuZGxlci5zZW5kX2RhdGEoc2VsZi5fY2hhbm5lbF9pZCwgZGF0YSkKKyAgICAgICAgICAgIHNl
bGYuX3dyaXRlX2NvbmRpdGlvbi53YWl0KCkKKyAgICAgICAgICAgICMgVE9ETyh0eW9zaGlubyk6
IFJhaXNlIGFuIGV4Y2VwdGlvbiBpZiB3b2tlIHVwIGJ5IG9uX3dyaXRlcl9kb25lLgorICAgICAg
ICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5fd3JpdGVfY29uZGl0aW9uLnJlbGVhc2UoKQor
CisgICAgZGVmIHdyaXRlX2NvbnRyb2xfZGF0YShzZWxmLCBkYXRhKToKKyAgICAgICAgIiIiV3Jp
dGUgZGF0YSB2aWEgdGhlIGNvbnRyb2wgY2hhbm5lbC4KKworICAgICAgICBEb24ndCB3YWl0IGZp
bmlzaGluZyB3cml0ZSBiZWNhdXNlIHRoaXMgbWV0aG9kIGNhbiBiZSBjYWxsZWQgYnkKKyAgICAg
ICAgbXV4IGRpc3BhdGNoZXIuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGRhdGE6IGRh
dGEgdG8gYmUgd3JpdHRlbi4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX211eF9oYW5kbGVy
LnNlbmRfY29udHJvbF9kYXRhKGRhdGEpCisKKyAgICBkZWYgb25fd3JpdGVfZGF0YV9kb25lKHNl
bGYpOgorICAgICAgICAiIiJDYWxsZWQgd2hlbiBzZW5kaW5nIGRhdGEgaXMgY29tcGxldGVkLiIi
IgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRpb24uYWNxdWly
ZSgpCisgICAgICAgICAgICBpZiBub3Qgc2VsZi5fd2FpdGluZ193cml0ZV9jb21wbGV0aW9uOgor
ICAgICAgICAgICAgICAgIHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRpb24oCisgICAgICAgICAg
ICAgICAgICAgICdJbnZhbGlkIGNhbGwgb2Ygb25fd3JpdGVfZGF0YV9kb25lIGZvciBsb2dpY2Fs
ICcKKyAgICAgICAgICAgICAgICAgICAgJ2Nvbm5lY3Rpb24gJWQnICUgc2VsZi5fY2hhbm5lbF9p
ZCkKKyAgICAgICAgICAgIHNlbGYuX3dhaXRpbmdfd3JpdGVfY29tcGxldGlvbiA9IEZhbHNlCisg
ICAgICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRpb24ubm90aWZ5KCkKKyAgICAgICAgZmluYWxs
eToKKyAgICAgICAgICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbi5yZWxlYXNlKCkKKworICAgIGRl
ZiBvbl93cml0ZXJfZG9uZShzZWxmKToKKyAgICAgICAgIiIiQ2FsbGVkIGJ5IHRoZSBtdXggaGFu
ZGxlciB3aGVuIHRoZSB3cml0ZXIgdGhyZWFkIGhhcyBmaW5pc2hlZC4iIiIKKyAgICAgICAgdHJ5
OgorICAgICAgICAgICAgc2VsZi5fd3JpdGVfY29uZGl0aW9uLmFjcXVpcmUoKQorICAgICAgICAg
ICAgc2VsZi5fd2FpdGluZ193cml0ZV9jb21wbGV0aW9uID0gRmFsc2UKKyAgICAgICAgICAgIHNl
bGYuX3dyaXRlX2NvbmRpdGlvbi5ub3RpZnkoKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAg
ICAgc2VsZi5fd3JpdGVfY29uZGl0aW9uLnJlbGVhc2UoKQorCisgICAgZGVmIGFwcGVuZF9mcmFt
ZV9kYXRhKHNlbGYsIGZyYW1lX2RhdGEpOgorICAgICAgICAiIiJBcHBlbmQgaW5jb21pbmcgZnJh
bWUgZGF0YS4KKworICAgICAgICBDYWxsZWQgd2hlbiBtdXhfaGFuZGxlciBkaXNwYXRjaGVzIGZy
YW1lIGRhdGEgdG8gdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgYXBwbGljYXRpb24uCisKKyAg
ICAgICAgQXJnczoKKyAgICAgICAgICAgIGZyYW1lX2RhdGE6IGluY29taW5nIGZyYW1lIGRhdGEu
CisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9yZWFkX2NvbmRpdGlvbi5hY3F1aXJlKCkKKyAg
ICAgICAgc2VsZi5faW5jb21pbmdfZGF0YSArPSBmcmFtZV9kYXRhCisgICAgICAgIHNlbGYuX3Jl
YWRfY29uZGl0aW9uLm5vdGlmeSgpCisgICAgICAgIHNlbGYuX3JlYWRfY29uZGl0aW9uLnJlbGVh
c2UoKQorCisgICAgZGVmIHJlYWQoc2VsZiwgbGVuZ3RoKToKKyAgICAgICAgIiIiUmVhZCBkYXRh
LgorCisgICAgICAgIEJsb2NrcyB1bnRpbCBlbm91Z2ggZGF0YSBoYXMgYXJyaXZlZCB2aWEgcGh5
c2ljYWwgY29ubmVjdGlvbi4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgbGVuZ3RoOiBs
ZW5ndGggb2YgZGF0YSB0byBiZSByZWFkLgorICAgICAgICBSYWlzZXM6CisgICAgICAgICAgICBM
b2dpY2FsQ29ubmVjdGlvbkNsb3NlZEV4Y2VwdGlvbjogd2hlbiBjbG9zaW5nIGhhbmRzaGFrZSBm
b3IgdGhpcworICAgICAgICAgICAgICAgIGxvZ2ljYWwgY2hhbm5lbCBoYXMgYmVlbiByZWNlaXZl
ZC4KKyAgICAgICAgICAgIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHRoZSBw
aHlzaWNhbCBjb25uZWN0aW9uIGhhcworICAgICAgICAgICAgICAgIGNsb3NlZCwgb3IgYW4gZXJy
b3IgaXMgY2F1c2VkIG9uIHRoZSByZWFkZXIgdGhyZWFkLgorICAgICAgICAiIiIKKyAgICAgICAg
c2VsZi5fcmVhZF9jb25kaXRpb24uYWNxdWlyZSgpCisgICAgICAgIHdoaWxlIChzZWxmLl9yZWFk
X3N0YXRlID09IHNlbGYuU1RBVEVfQUNUSVZFIGFuZAorICAgICAgICAgICAgICAgbGVuKHNlbGYu
X2luY29taW5nX2RhdGEpIDwgbGVuZ3RoKToKKyAgICAgICAgICAgIHNlbGYuX3JlYWRfY29uZGl0
aW9uLndhaXQoKQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIHNlbGYuX3JlYWRfc3Rh
dGUgPT0gc2VsZi5TVEFURV9HUkFDRUZVTExZX0NMT1NFRDoKKyAgICAgICAgICAgICAgICByYWlz
ZSBMb2dpY2FsQ29ubmVjdGlvbkNsb3NlZEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAg
J0xvZ2ljYWwgY2hhbm5lbCAlZCBoYXMgY2xvc2VkLicgJSBzZWxmLl9jaGFubmVsX2lkKQorICAg
ICAgICAgICAgZWxpZiBzZWxmLl9yZWFkX3N0YXRlID09IHNlbGYuU1RBVEVfVEVSTUlOQVRFRDoK
KyAgICAgICAgICAgICAgICByYWlzZSBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbigKKyAg
ICAgICAgICAgICAgICAgICAgJ1JlY2VpdmluZyAlZCBieXRlIGZhaWxlZC4gTG9naWNhbCBjaGFu
bmVsICglZCkgY2xvc2VkJyAlCisgICAgICAgICAgICAgICAgICAgIChsZW5ndGgsIHNlbGYuX2No
YW5uZWxfaWQpKQorCisgICAgICAgICAgICB2YWx1ZSA9IHNlbGYuX2luY29taW5nX2RhdGFbOmxl
bmd0aF0KKyAgICAgICAgICAgIHNlbGYuX2luY29taW5nX2RhdGEgPSBzZWxmLl9pbmNvbWluZ19k
YXRhW2xlbmd0aDpdCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLl9yZWFkX2Nv
bmRpdGlvbi5yZWxlYXNlKCkKKworICAgICAgICByZXR1cm4gdmFsdWUKKworICAgIGRlZiBzZXRf
cmVhZF9zdGF0ZShzZWxmLCBuZXdfc3RhdGUpOgorICAgICAgICAiIiJTZXQgdGhlIHN0YXRlIG9m
IHRoaXMgY29ubmVjdGlvbi4KKworICAgICAgICBDYWxsZWQgd2hlbiBhbiBldmVudCBmb3IgdGhp
cyBjb25uZWN0aW9uIGhhcyBvY2N1cnJlZC4KKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIG5l
d19zdGF0ZTogc3RhdGUgdG8gYmUgc2V0LiBuZXdfc3RhdGUgbXVzdCBiZSBvbmUgb2YgZm9sbG93
aW5nczoKKyAgICAgICAgICAgIC0gU1RBVEVfR1JBQ0VGVUxMWV9DTE9TRUQ6IHdoZW4gY2xvc2lu
ZyBoYW5kc2hha2UgZm9yIHRoaXMKKyAgICAgICAgICAgICAgICBjb25uZWN0aW9uIGhhcyBiZWVu
IHJlY2VpdmVkLgorICAgICAgICAgICAgLSBTVEFURV9URVJNSU5BVEVEOiB3aGVuIHRoZSBwaHlz
aWNhbCBjb25uZWN0aW9uIGhhcyBjbG9zZWQgb3IKKyAgICAgICAgICAgICAgICBEcm9wQ2hhbm5l
bCBvZiB0aGlzIGNvbm5lY3Rpb24gaGFzIHJlY2VpdmVkLgorICAgICAgICAiIiIKKyAgICAgICAg
c2VsZi5fcmVhZF9jb25kaXRpb24uYWNxdWlyZSgpCisgICAgICAgIHNlbGYuX3JlYWRfc3RhdGUg
PSBuZXdfc3RhdGUKKyAgICAgICAgc2VsZi5fcmVhZF9jb25kaXRpb24ubm90aWZ5KCkKKyAgICAg
ICAgc2VsZi5fcmVhZF9jb25kaXRpb24ucmVsZWFzZSgpCisKKworY2xhc3MgX0lubmVyTWVzc2Fn
ZShvYmplY3QpOgorCisgICAgIiIiSG9sZCB0aGUgcmVzdWx0IG9mIF9Jbm5lck1lc3NhZ2VCdWls
ZGVyLmJ1aWxkKCkuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgb3Bjb2RlLCBwYXlsb2Fk
KToKKyAgICAgICAgc2VsZi5vcGNvZGUgPSBvcGNvZGUKKyAgICAgICAgc2VsZi5wYXlsb2FkID0g
cGF5bG9hZAorCisKK2NsYXNzIF9Jbm5lck1lc3NhZ2VCdWlsZGVyKG9iamVjdCk6CisKKyAgICAi
IiJDbGFzcyB0byBidWlsZCBhbiBfSW5uZXJNZXNzYWdlLgorCisgICAgQSBjbGFzcyB0aGF0IGhv
bGRzIHRoZSBjb250ZXh0IG9mIGlubmVyIG1lc3NhZ2UgZnJhZ21lbnRhdGlvbiBhbmQKKyAgICBi
dWlsZHMgYSBtZXNzYWdlIGZyb20gZnJhZ21lbnRlZCBpbm5lciBmcmFtZShzKS4KKyAgICAiIiIK
KworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5fY29udHJvbF9vcGNvZGUg
PSBOb25lCisgICAgICAgIHNlbGYuX3BlbmRpbmdfY29udHJvbF9mcmFnbWVudHMgPSBbXQorICAg
ICAgICBzZWxmLl9tZXNzYWdlX29wY29kZSA9IE5vbmUKKyAgICAgICAgc2VsZi5fcGVuZGluZ19t
ZXNzYWdlX2ZyYWdtZW50cyA9IFtdCisgICAgICAgIHNlbGYuX2ZyYW1lX2hhbmRsZXIgPSBzZWxm
Ll9oYW5kbGVfZmlyc3QKKworICAgIGRlZiBfaGFuZGxlX2ZpcnN0KHNlbGYsIGZyYW1lKToKKyAg
ICAgICAgaWYgZnJhbWUub3Bjb2RlID09IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OOgorICAg
ICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKCdTZW5kaW5nIGludmFsaWQgY29u
dGludWF0aW9uIG9wY29kZScpCisKKyAgICAgICAgaWYgY29tbW9uLmlzX2NvbnRyb2xfb3Bjb2Rl
KGZyYW1lLm9wY29kZSk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fcHJvY2Vzc19maXJzdF9m
cmFnbWVudGVkX2NvbnRyb2woZnJhbWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1
cm4gc2VsZi5fcHJvY2Vzc19maXJzdF9mcmFnbWVudGVkX21lc3NhZ2UoZnJhbWUpCisKKyAgICBk
ZWYgX3Byb2Nlc3NfZmlyc3RfZnJhZ21lbnRlZF9jb250cm9sKHNlbGYsIGZyYW1lKToKKyAgICAg
ICAgc2VsZi5fY29udHJvbF9vcGNvZGUgPSBmcmFtZS5vcGNvZGUKKyAgICAgICAgc2VsZi5fcGVu
ZGluZ19jb250cm9sX2ZyYWdtZW50cy5hcHBlbmQoZnJhbWUucGF5bG9hZCkKKyAgICAgICAgaWYg
bm90IGZyYW1lLmZpbjoKKyAgICAgICAgICAgIHNlbGYuX2ZyYW1lX2hhbmRsZXIgPSBzZWxmLl9o
YW5kbGVfZnJhZ21lbnRlZF9jb250cm9sCisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAg
ICByZXR1cm4gc2VsZi5fcmVhc3NlbWJsZV9mcmFnbWVudGVkX2NvbnRyb2woKQorCisgICAgZGVm
IF9wcm9jZXNzX2ZpcnN0X2ZyYWdtZW50ZWRfbWVzc2FnZShzZWxmLCBmcmFtZSk6CisgICAgICAg
IHNlbGYuX21lc3NhZ2Vfb3Bjb2RlID0gZnJhbWUub3Bjb2RlCisgICAgICAgIHNlbGYuX3BlbmRp
bmdfbWVzc2FnZV9mcmFnbWVudHMuYXBwZW5kKGZyYW1lLnBheWxvYWQpCisgICAgICAgIGlmIG5v
dCBmcmFtZS5maW46CisgICAgICAgICAgICBzZWxmLl9mcmFtZV9oYW5kbGVyID0gc2VsZi5faGFu
ZGxlX2ZyYWdtZW50ZWRfbWVzc2FnZQorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAg
cmV0dXJuIHNlbGYuX3JlYXNzZW1ibGVfZnJhZ21lbnRlZF9tZXNzYWdlKCkKKworICAgIGRlZiBf
aGFuZGxlX2ZyYWdtZW50ZWRfY29udHJvbChzZWxmLCBmcmFtZSk6CisgICAgICAgIGlmIGZyYW1l
Lm9wY29kZSAhPSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTjoKKyAgICAgICAgICAgIHJhaXNl
IEludmFsaWRGcmFtZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnU2VuZGluZyBpbnZhbGlk
IG9wY29kZSAlZCB3aGlsZSBzZW5kaW5nIGZyYWdtZW50ZWQgY29udHJvbCAnCisgICAgICAgICAg
ICAgICAgJ21lc3NhZ2UnICUgZnJhbWUub3Bjb2RlKQorICAgICAgICBzZWxmLl9wZW5kaW5nX2Nv
bnRyb2xfZnJhZ21lbnRzLmFwcGVuZChmcmFtZS5wYXlsb2FkKQorICAgICAgICBpZiBub3QgZnJh
bWUuZmluOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJuIHNlbGYuX3Jl
YXNzZW1ibGVfZnJhZ21lbnRlZF9jb250cm9sKCkKKworICAgIGRlZiBfcmVhc3NlbWJsZV9mcmFn
bWVudGVkX2NvbnRyb2woc2VsZik6CisgICAgICAgIG9wY29kZSA9IHNlbGYuX2NvbnRyb2xfb3Bj
b2RlCisgICAgICAgIHBheWxvYWQgPSAnJy5qb2luKHNlbGYuX3BlbmRpbmdfY29udHJvbF9mcmFn
bWVudHMpCisgICAgICAgIHNlbGYuX2NvbnRyb2xfb3Bjb2RlID0gTm9uZQorICAgICAgICBzZWxm
Ll9wZW5kaW5nX2NvbnRyb2xfZnJhZ21lbnRzID0gW10KKyAgICAgICAgaWYgc2VsZi5fbWVzc2Fn
ZV9vcGNvZGUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLl9mcmFtZV9oYW5kbGVyID0g
c2VsZi5faGFuZGxlX2ZyYWdtZW50ZWRfbWVzc2FnZQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgc2VsZi5fZnJhbWVfaGFuZGxlciA9IHNlbGYuX2hhbmRsZV9maXJzdAorICAgICAgICByZXR1
cm4gX0lubmVyTWVzc2FnZShvcGNvZGUsIHBheWxvYWQpCisKKyAgICBkZWYgX2hhbmRsZV9mcmFn
bWVudGVkX21lc3NhZ2Uoc2VsZiwgZnJhbWUpOgorICAgICAgICAjIFNlbmRlciBjYW4gaW50ZXJs
ZWF2ZSBhIGNvbnRyb2wgbWVzc2FnZSB3aGlsZSBzZW5kaW5nIGZyYWdtZW50ZWQKKyAgICAgICAg
IyBtZXNzYWdlcy4KKyAgICAgICAgaWYgY29tbW9uLmlzX2NvbnRyb2xfb3Bjb2RlKGZyYW1lLm9w
Y29kZSk6CisgICAgICAgICAgICBpZiBzZWxmLl9jb250cm9sX29wY29kZSBpcyBub3QgTm9uZToK
KyAgICAgICAgICAgICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uKAorICAgICAgICAg
ICAgICAgICAgICAnU2hvdWxkIG5vdCByZWFjaCBoZXJlKEJ1ZyBpbiBidWlsZGVyKScpCisgICAg
ICAgICAgICByZXR1cm4gc2VsZi5fcHJvY2Vzc19maXJzdF9mcmFnbWVudGVkX2NvbnRyb2woZnJh
bWUpCisKKyAgICAgICAgaWYgZnJhbWUub3Bjb2RlICE9IGNvbW1vbi5PUENPREVfQ09OVElOVUFU
SU9OOgorICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAorICAgICAgICAg
ICAgICAgICdTZW5kaW5nIGludmFsaWQgb3Bjb2RlICVkIHdoaWxlIHNlbmRpbmcgZnJhZ21lbnRl
ZCBtZXNzYWdlJyAlCisgICAgICAgICAgICAgICAgZnJhbWUub3Bjb2RlKQorICAgICAgICBzZWxm
Ll9wZW5kaW5nX21lc3NhZ2VfZnJhZ21lbnRzLmFwcGVuZChmcmFtZS5wYXlsb2FkKQorICAgICAg
ICBpZiBub3QgZnJhbWUuZmluOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0
dXJuIHNlbGYuX3JlYXNzZW1ibGVfZnJhZ21lbnRlZF9tZXNzYWdlKCkKKworICAgIGRlZiBfcmVh
c3NlbWJsZV9mcmFnbWVudGVkX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIG9wY29kZSA9IHNlbGYu
X21lc3NhZ2Vfb3Bjb2RlCisgICAgICAgIHBheWxvYWQgPSAnJy5qb2luKHNlbGYuX3BlbmRpbmdf
bWVzc2FnZV9mcmFnbWVudHMpCisgICAgICAgIHNlbGYuX21lc3NhZ2Vfb3Bjb2RlID0gTm9uZQor
ICAgICAgICBzZWxmLl9wZW5kaW5nX21lc3NhZ2VfZnJhZ21lbnRzID0gW10KKyAgICAgICAgc2Vs
Zi5fZnJhbWVfaGFuZGxlciA9IHNlbGYuX2hhbmRsZV9maXJzdAorICAgICAgICByZXR1cm4gX0lu
bmVyTWVzc2FnZShvcGNvZGUsIHBheWxvYWQpCisKKyAgICBkZWYgYnVpbGQoc2VsZiwgZnJhbWUp
OgorICAgICAgICAiIiJCdWlsZCBhbiBpbm5lciBtZXNzYWdlLgorCisgICAgICAgIFJldHVybnMg
YW4gX0lubmVyTWVzc2FnZSBpbnN0YW5jZSB3aGVuIHRoZSBnaXZlbiBmcmFtZSBpcyB0aGUgbGFz
dAorICAgICAgICBmcmFnbWVudGVkIGZyYW1lLiBSZXR1cm5zIE5vbmUgb3RoZXJ3aXNlLgorCisg
ICAgICAgIEFyZ3M6CisgICAgICAgICAgICBmcmFtZTogYW4gaW5uZXIgZnJhbWUuCisgICAgICAg
IFJhaXNlczoKKyAgICAgICAgICAgIEludmFsaWRGcmFtZUV4Y2VwdGlvbjogd2hlbiByZWNlaXZl
ZCBpbnZhbGlkIG9wY29kZS4gKGUuZy4KKyAgICAgICAgICAgICAgICByZWNlaXZpbmcgbm9uIGNv
bnRpbnVhdGlvbiBkYXRhIG9wY29kZSBidXQgdGhlIGZpbiBmbGFnIG9mCisgICAgICAgICAgICAg
ICAgdGhlIHByZXZpb3VzIGlubmVyIGZyYW1lIHdhcyBub3Qgc2V0LikKKyAgICAgICAgIiIiCisg
ICAgICAgIHJldHVybiBzZWxmLl9mcmFtZV9oYW5kbGVyKGZyYW1lKQorCisKK2NsYXNzIF9Mb2dp
Y2FsU3RyZWFtKFN0cmVhbSk6CisKKyAgICAiIiJNaW1pY3MgdGhlIFN0cmVhbSBjbGFzcy4KKwor
ICAgIFRoaXMgY2xhc3MgaW50ZXJwcmV0cyBtdWx0aXBsZXhlZCBXZWJTb2NrZXQgZnJhbWVzLgor
ICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIHN0cmVhbV9vcHRpb25z
LCBzZW5kX3F1b3RhLCByZWNlaXZlX3F1b3RhKToKKyAgICAgICAgIiIiQ29uc3RydWN0IGFuIGlu
c3RhbmNlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICByZXF1ZXN0OiBfTG9naWNhbFJl
cXVlc3QgaW5zdGFuY2UuCisgICAgICAgICAgICBzdHJlYW1fb3B0aW9uczogU3RyZWFtT3B0aW9u
cyBpbnN0YW5jZS4KKyAgICAgICAgICAgIHNlbmRfcXVvdGE6IEluaXRpYWwgc2VuZCBxdW90YS4K
KyAgICAgICAgICAgIHJlY2VpdmVfcXVvdGE6IEluaXRpYWwgcmVjZWl2ZSBxdW90YS4KKyAgICAg
ICAgIiIiCisgICAgICAgICMgUGh5c2ljYWwgc3RyZWFtIGlzIHJlc3BvbnNpYmxlIGZvciBtYXNr
aW5nLgorICAgICAgICBzdHJlYW1fb3B0aW9ucy51bm1hc2tfcmVjZWl2ZSA9IEZhbHNlCisgICAg
ICAgIFN0cmVhbS5fX2luaXRfXyhzZWxmLCByZXF1ZXN0LCBzdHJlYW1fb3B0aW9ucykKKworICAg
ICAgICBzZWxmLl9zZW5kX2Nsb3NlZCA9IEZhbHNlCisgICAgICAgIHNlbGYuX3NlbmRfcXVvdGEg
PSBzZW5kX3F1b3RhCisgICAgICAgICMgLSBQcm90ZWN0cyBfc2VuZF9jbG9zZWQgYW5kIF9zZW5k
X3F1b3RhCisgICAgICAgICMgLSBTaWduYWxzIHRoZSB0aHJlYWQgd2FpdGluZyBmb3Igc2VuZCBx
dW90YSByZXBsZW5pc2hlZAorICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlvbiA9IHRocmVhZGlu
Zy5Db25kaXRpb24oKQorCisgICAgICAgICMgVGhlIG9wY29kZSBvZiB0aGUgZmlyc3QgZnJhbWUg
aW4gbWVzc2FnZXMuCisgICAgICAgIHNlbGYuX21lc3NhZ2Vfb3Bjb2RlID0gY29tbW9uLk9QQ09E
RV9URVhUCisgICAgICAgICMgVHJ1ZSB3aGVuIHRoZSBsYXN0IG1lc3NhZ2Ugd2FzIGZyYWdtZW50
ZWQuCisgICAgICAgIHNlbGYuX2xhc3RfbWVzc2FnZV93YXNfZnJhZ21lbnRlZCA9IEZhbHNlCisK
KyAgICAgICAgc2VsZi5fcmVjZWl2ZV9xdW90YSA9IHJlY2VpdmVfcXVvdGEKKyAgICAgICAgc2Vs
Zi5fd3JpdGVfaW5uZXJfZnJhbWVfc2VtYXBob3JlID0gdGhyZWFkaW5nLlNlbWFwaG9yZSgpCisK
KyAgICAgICAgc2VsZi5faW5uZXJfbWVzc2FnZV9idWlsZGVyID0gX0lubmVyTWVzc2FnZUJ1aWxk
ZXIoKQorCisgICAgZGVmIF9jcmVhdGVfaW5uZXJfZnJhbWUoc2VsZiwgb3Bjb2RlLCBwYXlsb2Fk
LCBlbmQ9VHJ1ZSk6CisgICAgICAgIGZyYW1lID0gRnJhbWUoZmluPWVuZCwgb3Bjb2RlPW9wY29k
ZSwgcGF5bG9hZD1wYXlsb2FkKQorICAgICAgICBmb3IgZnJhbWVfZmlsdGVyIGluIHNlbGYuX29w
dGlvbnMub3V0Z29pbmdfZnJhbWVfZmlsdGVyczoKKyAgICAgICAgICAgIGZyYW1lX2ZpbHRlci5m
aWx0ZXIoZnJhbWUpCisKKyAgICAgICAgaWYgbGVuKHBheWxvYWQpICE9IGxlbihmcmFtZS5wYXls
b2FkKToKKyAgICAgICAgICAgIHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRpb24oCisgICAgICAg
ICAgICAgICAgJ011eCBleHRlbnNpb24gbXVzdCBub3QgYmUgdXNlZCBhZnRlciBleHRlbnNpb25z
IHdoaWNoIGNoYW5nZSAnCisgICAgICAgICAgICAgICAgJyBmcmFtZSBib3VuZGFyeScpCisKKyAg
ICAgICAgZmlyc3RfYnl0ZSA9ICgoZnJhbWUuZmluIDw8IDcpIHwgKGZyYW1lLnJzdjEgPDwgNikg
fAorICAgICAgICAgICAgICAgICAgICAgIChmcmFtZS5yc3YyIDw8IDUpIHwgKGZyYW1lLnJzdjMg
PDwgNCkgfCBmcmFtZS5vcGNvZGUpCisgICAgICAgIHJldHVybiBjaHIoZmlyc3RfYnl0ZSkgKyBm
cmFtZS5wYXlsb2FkCisKKyAgICBkZWYgX3dyaXRlX2lubmVyX2ZyYW1lKHNlbGYsIG9wY29kZSwg
cGF5bG9hZCwgZW5kPVRydWUpOgorICAgICAgICBwYXlsb2FkX2xlbmd0aCA9IGxlbihwYXlsb2Fk
KQorICAgICAgICB3cml0ZV9wb3NpdGlvbiA9IDAKKworICAgICAgICB0cnk6CisgICAgICAgICAg
ICAjIEFuIGlubmVyIGZyYW1lIHdpbGwgYmUgZnJhZ21lbnRlZCBpZiB0aGVyZSBpcyBubyBlbm91
Z2ggc2VuZAorICAgICAgICAgICAgIyBxdW90YS4gVGhpcyBzZW1hcGhvcmUgZW5zdXJlcyB0aGF0
IGZyYWdtZW50ZWQgaW5uZXIgZnJhbWVzIGFyZQorICAgICAgICAgICAgIyBzZW50IGluIG9yZGVy
IG9uIHRoZSBsb2dpY2FsIGNoYW5uZWwuCisgICAgICAgICAgICAjIE5vdGUgdGhhdCBmcmFtZXMg
dGhhdCBjb21lIGZyb20gb3RoZXIgbG9naWNhbCBjaGFubmVscyBvcgorICAgICAgICAgICAgIyBt
dWx0aXBsZXhpbmcgY29udHJvbCBibG9ja3MgY2FuIGJlIGluc2VydGVkIGJldHdlZW4gZnJhZ21l
bnRlZAorICAgICAgICAgICAgIyBpbm5lciBmcmFtZXMgb24gdGhlIHBoeXNpY2FsIGNoYW5uZWwu
CisgICAgICAgICAgICBzZWxmLl93cml0ZV9pbm5lcl9mcmFtZV9zZW1hcGhvcmUuYWNxdWlyZSgp
CisKKyAgICAgICAgICAgICMgQ29uc3VtZSBhbiBvY3RldCBxdW90YSB3aGVuIHRoaXMgaXMgdGhl
IGZpcnN0IGZyYWdtZW50ZWQgZnJhbWUuCisgICAgICAgICAgICBpZiBvcGNvZGUgIT0gY29tbW9u
Lk9QQ09ERV9DT05USU5VQVRJT046CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAg
ICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlvbi5hY3F1aXJlKCkKKyAgICAgICAgICAgICAgICAg
ICAgd2hpbGUgKG5vdCBzZWxmLl9zZW5kX2Nsb3NlZCkgYW5kIHNlbGYuX3NlbmRfcXVvdGEgPT0g
MDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLndhaXQoKQor
CisgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX3NlbmRfY2xvc2VkOgorICAgICAgICAgICAg
ICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdMb2dpY2FsIGNvbm5lY3Rpb24gJWQgaXMgY2xvc2VkJyAlCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkKQorCisgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX3NlbmRfcXVvdGEgLT0gMQorICAgICAgICAgICAgICAgIGZpbmFs
bHk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLnJlbGVhc2UoKQor
CisgICAgICAgICAgICB3aGlsZSB3cml0ZV9wb3NpdGlvbiA8IHBheWxvYWRfbGVuZ3RoOgorICAg
ICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRp
b24uYWNxdWlyZSgpCisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChub3Qgc2VsZi5fc2VuZF9j
bG9zZWQpIGFuZCBzZWxmLl9zZW5kX3F1b3RhID09IDA6CisgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ05vIHF1
b3RhLiBXYWl0aW5nIEZsb3dDb250cm9sIG1lc3NhZ2UgZm9yICVkLicgJQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLndhaXQoKQorCisgICAgICAgICAgICAgICAg
ICAgIGlmIHNlbGYuX3NlbmRfY2xvc2VkOgorICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2Ug
QmFkT3BlcmF0aW9uRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdMb2dp
Y2FsIGNvbm5lY3Rpb24gJWQgaXMgY2xvc2VkJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5yZXF1ZXN0Ll9jaGFubmVsX2lkKQorCisgICAgICAgICAgICAgICAgICAgIHJlbWFp
bmluZyA9IHBheWxvYWRfbGVuZ3RoIC0gd3JpdGVfcG9zaXRpb24KKyAgICAgICAgICAgICAgICAg
ICAgd3JpdGVfbGVuZ3RoID0gbWluKHNlbGYuX3NlbmRfcXVvdGEsIHJlbWFpbmluZykKKyAgICAg
ICAgICAgICAgICAgICAgaW5uZXJfZnJhbWVfZW5kID0gKAorICAgICAgICAgICAgICAgICAgICAg
ICAgZW5kIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgKHdyaXRlX3Bvc2l0aW9uICsgd3Jp
dGVfbGVuZ3RoID09IHBheWxvYWRfbGVuZ3RoKSkKKworICAgICAgICAgICAgICAgICAgICBpbm5l
cl9mcmFtZSA9IHNlbGYuX2NyZWF0ZV9pbm5lcl9mcmFtZSgKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG9wY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWRbd3JpdGVfcG9zaXRp
b246d3JpdGVfcG9zaXRpb24rd3JpdGVfbGVuZ3RoXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGlubmVyX2ZyYW1lX2VuZCkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9xdW90YSAt
PSB3cml0ZV9sZW5ndGgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdD
b25zdW1lZCBxdW90YT0lZCwgcmVtYWluaW5nPSVkJyAlCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAod3JpdGVfbGVuZ3RoLCBzZWxmLl9zZW5kX3F1b3RhKSkKKyAgICAg
ICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgICAgICBzZWxmLl9zZW5kX2NvbmRp
dGlvbi5yZWxlYXNlKCkKKworICAgICAgICAgICAgICAgICMgV3JpdGluZyBkYXRhIHdpbGwgYmxv
Y2sgdGhlIHdvcmtlciBzbyB3ZSBuZWVkIHRvIHJlbGVhc2UKKyAgICAgICAgICAgICAgICAjIF9z
ZW5kX2NvbmRpdGlvbiBiZWZvcmUgd3JpdGluZy4KKyAgICAgICAgICAgICAgICBzZWxmLl9sb2dn
ZXIuZGVidWcoJ1NlbmRpbmcgaW5uZXIgZnJhbWU6ICVyJyAlIGlubmVyX2ZyYW1lKQorICAgICAg
ICAgICAgICAgIHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi53cml0ZShpbm5lcl9mcmFtZSkKKyAg
ICAgICAgICAgICAgICB3cml0ZV9wb3NpdGlvbiArPSB3cml0ZV9sZW5ndGgKKworICAgICAgICAg
ICAgICAgIG9wY29kZSA9IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OCisKKyAgICAgICAgZXhj
ZXB0IFZhbHVlRXJyb3IsIGU6CisgICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRp
b24oZSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNlbGYuX3dyaXRlX2lubmVyX2Zy
YW1lX3NlbWFwaG9yZS5yZWxlYXNlKCkKKworICAgIGRlZiByZXBsZW5pc2hfc2VuZF9xdW90YShz
ZWxmLCBzZW5kX3F1b3RhKToKKyAgICAgICAgIiIiUmVwbGVuaXNoIHNlbmQgcXVvdGEuIiIiCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLmFjcXVpcmUoKQor
ICAgICAgICAgICAgaWYgc2VsZi5fc2VuZF9xdW90YSArIHNlbmRfcXVvdGEgPiAweDdGRkZGRkZG
RkZGRkZGRkY6CisgICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9xdW90YSA9IDAKKyAgICAgICAg
ICAgICAgICByYWlzZSBMb2dpY2FsQ2hhbm5lbEVycm9yKAorICAgICAgICAgICAgICAgICAgICBz
ZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQsIF9EUk9QX0NPREVfU0VORF9RVU9UQV9PVkVSRkxPVykK
KyAgICAgICAgICAgIHNlbGYuX3NlbmRfcXVvdGEgKz0gc2VuZF9xdW90YQorICAgICAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKCdSZXBsZW5pc2hlZCBzZW5kIHF1b3RhIGZvciBjaGFubmVsIGlk
ICVkOiAlZCcgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLl9yZXF1ZXN0
LmNoYW5uZWxfaWQsIHNlbGYuX3NlbmRfcXVvdGEpKQorICAgICAgICBmaW5hbGx5OgorICAgICAg
ICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24ubm90aWZ5KCkKKyAgICAgICAgICAgIHNlbGYuX3Nl
bmRfY29uZGl0aW9uLnJlbGVhc2UoKQorCisgICAgZGVmIGNvbnN1bWVfcmVjZWl2ZV9xdW90YShz
ZWxmLCBhbW91bnQpOgorICAgICAgICAiIiJDb25zdW1lIHJlY2VpdmUgcXVvdGEuIFJldHVybnMg
RmFsc2Ugb24gZmFpbHVyZS4iIiIKKyAgICAgICAgaWYgc2VsZi5fcmVjZWl2ZV9xdW90YSA8IGFt
b3VudDoKKyAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnVmlvbGF0ZSBxdW90YSBvbiBj
aGFubmVsIGlkICVkOiAlZCA8ICVkJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fcmVjZWl2ZV9xdW90YSwgYW1vdW50KSkKKyAgICAgICAgICAgIHJldHVybiBGYWxz
ZQorICAgICAgICBzZWxmLl9yZWNlaXZlX3F1b3RhIC09IGFtb3VudAorICAgICAgICByZXR1cm4g
VHJ1ZQorCisgICAgZGVmIHNlbmRfbWVzc2FnZShzZWxmLCBtZXNzYWdlLCBlbmQ9VHJ1ZSwgYmlu
YXJ5PUZhbHNlKToKKyAgICAgICAgIiIiT3ZlcnJpZGUgU3RyZWFtLnNlbmRfbWVzc2FnZS4iIiIK
KyAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKKyAgICAgICAgICAg
IHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnUmVxdWVzdGVk
IHNlbmRfbWVzc2FnZSBhZnRlciBzZW5kaW5nIG91dCBhIGNsb3NpbmcgaGFuZHNoYWtlJykKKwor
ICAgICAgICBpZiBiaW5hcnkgYW5kIGlzaW5zdGFuY2UobWVzc2FnZSwgdW5pY29kZSk6CisgICAg
ICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ01l
c3NhZ2UgZm9yIGJpbmFyeSBmcmFtZSBtdXN0IGJlIGluc3RhbmNlIG9mIHN0cicpCisKKyAgICAg
ICAgaWYgYmluYXJ5OgorICAgICAgICAgICAgb3Bjb2RlID0gY29tbW9uLk9QQ09ERV9CSU5BUlkK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG9wY29kZSA9IGNvbW1vbi5PUENPREVfVEVYVAor
ICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UuZW5jb2RlKCd1dGYtOCcpCisKKyAgICAgICAg
Zm9yIG1lc3NhZ2VfZmlsdGVyIGluIHNlbGYuX29wdGlvbnMub3V0Z29pbmdfbWVzc2FnZV9maWx0
ZXJzOgorICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2VfZmlsdGVyLmZpbHRlcihtZXNzYWdl
LCBlbmQsIGJpbmFyeSkKKworICAgICAgICBpZiBzZWxmLl9sYXN0X21lc3NhZ2Vfd2FzX2ZyYWdt
ZW50ZWQ6CisgICAgICAgICAgICBpZiBvcGNvZGUgIT0gc2VsZi5fbWVzc2FnZV9vcGNvZGU6Cisg
ICAgICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKCdNZXNzYWdlIHR5cGVz
IGFyZSBkaWZmZXJlbnQgaW4gJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnZnJhbWVzIGZvciB0aGUgc2FtZSBtZXNzYWdlJykKKyAgICAgICAgICAgIG9wY29k
ZSA9IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICBzZWxmLl9tZXNzYWdlX29wY29kZSA9IG9wY29kZQorCisgICAgICAgIHNlbGYuX3dyaXRlX2lu
bmVyX2ZyYW1lKG9wY29kZSwgbWVzc2FnZSwgZW5kKQorICAgICAgICBzZWxmLl9sYXN0X21lc3Nh
Z2Vfd2FzX2ZyYWdtZW50ZWQgPSBub3QgZW5kCisKKyAgICBkZWYgX3JlY2VpdmVfZnJhbWUoc2Vs
Zik6CisgICAgICAgICIiIk92ZXJyaWRlIFN0cmVhbS5fcmVjZWl2ZV9mcmFtZS4KKworICAgICAg
ICBJbiBhZGRpdGlvbiB0byBjYWxsIFN0cmVhbS5fcmVjZWl2ZV9mcmFtZSwgdGhpcyBtZXRob2Qg
YWRkcyB0aGUgYW1vdW50CisgICAgICAgIG9mIHBheWxvYWQgdG8gcmVjZWl2aW5nIHF1b3RhIGFu
ZCBzZW5kcyBGbG93Q29udHJvbCB0byB0aGUgY2xpZW50LgorICAgICAgICBXZSBuZWVkIHRvIGRv
IGl0IGhlcmUgYmVjYXVzZSBTdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkgaGFuZGxlcworICAgICAg
ICBjb250cm9sIGZyYW1lcyBpbnRlcm5hbGx5LgorICAgICAgICAiIiIKKyAgICAgICAgb3Bjb2Rl
LCBwYXlsb2FkLCBmaW4sIHJzdjEsIHJzdjIsIHJzdjMgPSBTdHJlYW0uX3JlY2VpdmVfZnJhbWUo
c2VsZikKKyAgICAgICAgYW1vdW50ID0gbGVuKHBheWxvYWQpCisgICAgICAgICMgUmVwbGVuaXNo
IGV4dHJhIG9uZSBvY3RldCB3aGVuIHJlY2VpdmluZyB0aGUgZmlyc3QgZnJhZ21lbnRlZCBmcmFt
ZS4KKyAgICAgICAgaWYgb3Bjb2RlICE9IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OOgorICAg
ICAgICAgICAgYW1vdW50ICs9IDEKKyAgICAgICAgc2VsZi5fcmVjZWl2ZV9xdW90YSArPSBhbW91
bnQKKyAgICAgICAgZnJhbWVfZGF0YSA9IF9jcmVhdGVfZmxvd19jb250cm9sKHNlbGYuX3JlcXVl
c3QuY2hhbm5lbF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGFtb3VudCkKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW5kaW5nIGZsb3cgY29udHJv
bCBmb3IgJWQsIHJlcGxlbmlzaGVkPSVkJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAo
c2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkLCBhbW91bnQpKQorICAgICAgICBzZWxmLl9yZXF1ZXN0
LmNvbm5lY3Rpb24ud3JpdGVfY29udHJvbF9kYXRhKGZyYW1lX2RhdGEpCisgICAgICAgIHJldHVy
biBvcGNvZGUsIHBheWxvYWQsIGZpbiwgcnN2MSwgcnN2MiwgcnN2MworCisgICAgZGVmIF9nZXRf
bWVzc2FnZV9mcm9tX2ZyYW1lKHNlbGYsIGZyYW1lKToKKyAgICAgICAgIiIiT3ZlcnJpZGUgU3Ry
ZWFtLl9nZXRfbWVzc2FnZV9mcm9tX2ZyYW1lLiIiIgorICAgICAgICB0cnk6CisgICAgICAgICAg
ICBpbm5lcl9tZXNzYWdlID0gc2VsZi5faW5uZXJfbWVzc2FnZV9idWlsZGVyLmJ1aWxkKGZyYW1l
KQorICAgICAgICBleGNlcHQgSW52YWxpZEZyYW1lRXhjZXB0aW9uOgorICAgICAgICAgICAgcmFp
c2UgTG9naWNhbENoYW5uZWxFcnJvcigKKyAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmNo
YW5uZWxfaWQsIF9EUk9QX0NPREVfQkFEX0ZSQUdNRU5UQVRJT04pCisKKyAgICAgICAgaWYgaW5u
ZXJfbWVzc2FnZSBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgc2Vs
Zi5fb3JpZ2luYWxfb3Bjb2RlID0gaW5uZXJfbWVzc2FnZS5vcGNvZGUKKyAgICAgICAgcmV0dXJu
IGlubmVyX21lc3NhZ2UucGF5bG9hZAorCisgICAgZGVmIHJlY2VpdmVfbWVzc2FnZShzZWxmKToK
KyAgICAgICAgIiIiT3ZlcnJpZGUgU3RyZWFtLnJlY2VpdmVfbWVzc2FnZS4iIiIKKyAgICAgICAg
IyBKdXN0IGNhbGwgU3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpLCBidXQgY2F0Y2gKKyAgICAgICAg
IyBMb2dpY2FsQ29ubmVjdGlvbkNsb3NlZEV4Y2VwdGlvbiwgd2hpY2ggaXMgcmFpc2VkIHdoZW4g
dGhlIGxvZ2ljYWwKKyAgICAgICAgIyBjb25uZWN0aW9uIGhhcyBjbG9zZWQgZ3JhY2VmdWxseS4K
KyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIFN0cmVhbS5yZWNlaXZlX21lc3NhZ2Uo
c2VsZikKKyAgICAgICAgZXhjZXB0IExvZ2ljYWxDb25uZWN0aW9uQ2xvc2VkRXhjZXB0aW9uLCBl
OgorICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcycsIGUpCisgICAgICAgICAgICBy
ZXR1cm4gTm9uZQorCisgICAgZGVmIF9zZW5kX2Nsb3NpbmdfaGFuZHNoYWtlKHNlbGYsIGNvZGUs
IHJlYXNvbik6CisgICAgICAgICIiIk92ZXJyaWRlIFN0cmVhbS5fc2VuZF9jbG9zaW5nX2hhbmRz
aGFrZS4iIiIKKyAgICAgICAgYm9keSA9IGNyZWF0ZV9jbG9zaW5nX2hhbmRzaGFrZV9ib2R5KGNv
ZGUsIHJlYXNvbikKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW5kaW5nIGNsb3Npbmcg
aGFuZHNoYWtlIGZvciAlZDogKCVyLCAlciknICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IChzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQsIGNvZGUsIHJlYXNvbikpCisgICAgICAgIHNlbGYu
X3dyaXRlX2lubmVyX2ZyYW1lKGNvbW1vbi5PUENPREVfQ0xPU0UsIGJvZHksIGVuZD1UcnVlKQor
CisgICAgICAgIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQgPSBUcnVlCisKKyAgICBk
ZWYgc2VuZF9waW5nKHNlbGYsIGJvZHk9JycpOgorICAgICAgICAiIiJPdmVycmlkZSBTdHJlYW0u
c2VuZF9waW5nLiIiIgorICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlbmRpbmcgcGluZyBv
biBsb2dpY2FsIGNoYW5uZWwgJWQ6ICVyJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAo
c2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkLCBib2R5KSkKKyAgICAgICAgc2VsZi5fd3JpdGVfaW5u
ZXJfZnJhbWUoY29tbW9uLk9QQ09ERV9QSU5HLCBib2R5LCBlbmQ9VHJ1ZSkKKworICAgICAgICBz
ZWxmLl9waW5nX3F1ZXVlLmFwcGVuZChib2R5KQorCisgICAgZGVmIF9zZW5kX3Bvbmcoc2VsZiwg
Ym9keSk6CisgICAgICAgICIiIk92ZXJyaWRlIFN0cmVhbS5fc2VuZF9wb25nLiIiIgorICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlbmRpbmcgcG9uZyBvbiBsb2dpY2FsIGNoYW5uZWwgJWQ6
ICVyJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5fcmVxdWVzdC5jaGFubmVs
X2lkLCBib2R5KSkKKyAgICAgICAgc2VsZi5fd3JpdGVfaW5uZXJfZnJhbWUoY29tbW9uLk9QQ09E
RV9QT05HLCBib2R5LCBlbmQ9VHJ1ZSkKKworICAgIGRlZiBjbG9zZV9jb25uZWN0aW9uKHNlbGYs
IGNvZGU9Y29tbW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSwgcmVhc29uPScnKToKKyAgICAgICAg
IiIiT3ZlcnJpZGUgU3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24uIiIiCisgICAgICAgICMgVE9ETyhi
YXNoaSk6IEltcGxlbWVudAorICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0Nsb3NpbmcgbG9n
aWNhbCBjb25uZWN0aW9uICVkJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9y
ZXF1ZXN0LmNoYW5uZWxfaWQpCisgICAgICAgIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0
ZWQgPSBUcnVlCisKKyAgICBkZWYgc3RvcF9zZW5kaW5nKHNlbGYpOgorICAgICAgICAiIiJTdG9w
IGFjY2VwdGluZyBuZXcgc2VuZCBvcGVyYXRpb24gKF93cml0ZV9pbm5lcl9mcmFtZSkuIiIiCisg
ICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLmFjcXVpcmUoKQorICAgICAgICBzZWxmLl9zZW5k
X2Nsb3NlZCA9IFRydWUKKyAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24ubm90aWZ5KCkKKyAg
ICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24ucmVsZWFzZSgpCisKKworY2xhc3MgX091dGdvaW5n
RGF0YShvYmplY3QpOgorCisgICAgIiIiU2ltcGxlIGRhdGEvY2hhbm5lbCBjb250YWluZXIuCisK
KyAgICBBIHN0cnVjdHVyZSB0aGF0IGhvbGRzIGRhdGEgdG8gYmUgc2VudCB2aWEgcGh5c2ljYWwg
Y29ubmVjdGlvbiBhbmQKKyAgICBvcmlnaW4gb2YgdGhlIGRhdGEuCisgICAgIiIiCisKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgY2hhbm5lbF9pZCwgZGF0YSk6CisgICAgICAgIHNlbGYuY2hhbm5l
bF9pZCA9IGNoYW5uZWxfaWQKKyAgICAgICAgc2VsZi5kYXRhID0gZGF0YQorCisKK2NsYXNzIF9Q
aHlzaWNhbENvbm5lY3Rpb25Xcml0ZXIodGhyZWFkaW5nLlRocmVhZCk6CisKKyAgICAiIiJBIHRo
cmVhZCB0aGF0IGlzIHJlc3BvbnNpYmxlIGZvciB3cml0aW5nIGRhdGEgdG8gcGh5c2ljYWwgY29u
bmVjdGlvbi4KKworICAgIFRPRE8oYmFzaGkpOiBNYWtlIHN1cmUgdGhlcmUgaXMgbm8gdGhyZWFk
LXNhZmV0eSBwcm9ibGVtIHdoZW4gdGhlIHJlYWRlcgorICAgIHRocmVhZCByZWFkcyBkYXRhIGZy
b20gdGhlIHNhbWUgc29ja2V0IGF0IGEgdGltZS4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBtdXhfaGFuZGxlcik6CisgICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4K
KworICAgICAgICBBcmdzOgorICAgICAgICAgICAgbXV4X2hhbmRsZXI6IF9NdXhIYW5kbGVyIGlu
c3RhbmNlLgorICAgICAgICAiIiIKKyAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhz
ZWxmKQorICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikK
KyAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIgPSBtdXhfaGFuZGxlcgorICAgICAgICBzZWxmLnNl
dERhZW1vbihUcnVlKQorCisgICAgICAgICMgV2hlbiBzZXQsIG1ha2UgdGhpcyB0aHJlYWQgc3Rv
cCBhY2NlcHRpbmcgbmV3IGRhdGEsIGZsdXNoIHBlbmRpbmcKKyAgICAgICAgIyBkYXRhIGFuZCBl
eGl0LgorICAgICAgICBzZWxmLl9zdG9wX3JlcXVlc3RlZCA9IEZhbHNlCisgICAgICAgICMgVGhl
IGNsb3NlIGNvZGUgb2YgdGhlIHBoeXNpY2FsIGNvbm5lY3Rpb24uCisgICAgICAgIHNlbGYuX2Ns
b3NlX2NvZGUgPSBjb21tb24uU1RBVFVTX05PUk1BTF9DTE9TVVJFCisgICAgICAgICMgRGVxdWUg
Zm9yIHBhc3Npbmcgd3JpdGUgZGF0YS4gSXQncyBwcm90ZWN0ZWQgYnkgX2RlcXVlX2NvbmRpdGlv
bgorICAgICAgICAjIHVudGlsIF9zdG9wX3JlcXVlc3RlZCBpcyBzZXQuCisgICAgICAgIHNlbGYu
X2RlcXVlID0gY29sbGVjdGlvbnMuZGVxdWUoKQorICAgICAgICAjIC0gUHJvdGVjdHMgX2RlcXVl
LCBfc3RvcF9yZXF1ZXN0ZWQgYW5kIF9jbG9zZV9jb2RlCisgICAgICAgICMgLSBTaWduYWxzIHRo
cmVhZHMgd2FpdGluZyBmb3IgdGhlbSB0byBiZSBhdmFpbGFibGUKKyAgICAgICAgc2VsZi5fZGVx
dWVfY29uZGl0aW9uID0gdGhyZWFkaW5nLkNvbmRpdGlvbigpCisKKyAgICBkZWYgcHV0X291dGdv
aW5nX2RhdGEoc2VsZiwgZGF0YSk6CisgICAgICAgICIiIlB1dCBvdXRnb2luZyBkYXRhLgorCisg
ICAgICAgIEFyZ3M6CisgICAgICAgICAgICBkYXRhOiBfT3V0Z29pbmdEYXRhIGluc3RhbmNlLgor
ICAgICAgICBSYWlzZXM6CisgICAgICAgICAgICBCYWRPcGVyYXRpb25FeGNlcHRpb246IHdoZW4g
dGhlIHRocmVhZCBoYXMgYmVlbiByZXF1ZXN0ZWQgdG8KKyAgICAgICAgICAgICAgICB0ZXJtaW5h
dGUuCisgICAgICAgICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLl9kZXF1ZV9j
b25kaXRpb24uYWNxdWlyZSgpCisgICAgICAgICAgICBpZiBzZWxmLl9zdG9wX3JlcXVlc3RlZDoK
KyAgICAgICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oJ0Nhbm5vdCB3cml0
ZSBkYXRhIGFueW1vcmUnKQorCisgICAgICAgICAgICBzZWxmLl9kZXF1ZS5hcHBlbmQoZGF0YSkK
KyAgICAgICAgICAgIHNlbGYuX2RlcXVlX2NvbmRpdGlvbi5ub3RpZnkoKQorICAgICAgICBmaW5h
bGx5OgorICAgICAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLnJlbGVhc2UoKQorCisgICAg
ZGVmIF93cml0ZV9kYXRhKHNlbGYsIG91dGdvaW5nX2RhdGEpOgorICAgICAgICBtZXNzYWdlID0g
KF9lbmNvZGVfY2hhbm5lbF9pZChvdXRnb2luZ19kYXRhLmNoYW5uZWxfaWQpICsKKyAgICAgICAg
ICAgICAgICAgICBvdXRnb2luZ19kYXRhLmRhdGEpCisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IHNlbGYuX211eF9oYW5kbGVyLnBoeXNpY2FsX3N0cmVhbS5zZW5kX21lc3NhZ2UoCisgICAgICAg
ICAgICAgICAgbWVzc2FnZT1tZXNzYWdlLCBlbmQ9VHJ1ZSwgYmluYXJ5PVRydWUpCisgICAgICAg
IGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICB1dGlsLnByZXBlbmRfbWVzc2FnZV90
b19leGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ0ZhaWxlZCB0byBzZW5kIG1lc3NhZ2UgdG8g
JXI6ICcgJQorICAgICAgICAgICAgICAgIChzZWxmLl9tdXhfaGFuZGxlci5waHlzaWNhbF9jb25u
ZWN0aW9uLnJlbW90ZV9hZGRyLCksIGUpCisgICAgICAgICAgICByYWlzZQorCisgICAgICAgICMg
VE9ETyhiYXNoaSk6IEl0IHdvdWxkIGJlIGJldHRlciB0byBibG9jayB0aGUgdGhyZWFkIHRoYXQg
c2VuZHMKKyAgICAgICAgIyBjb250cm9sIGRhdGEgYXMgd2VsbC4KKyAgICAgICAgaWYgb3V0Z29p
bmdfZGF0YS5jaGFubmVsX2lkICE9IF9DT05UUk9MX0NIQU5ORUxfSUQ6CisgICAgICAgICAgICBz
ZWxmLl9tdXhfaGFuZGxlci5ub3RpZnlfd3JpdGVfZGF0YV9kb25lKG91dGdvaW5nX2RhdGEuY2hh
bm5lbF9pZCkKKworICAgIGRlZiBydW4oc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IHNlbGYuX2RlcXVlX2NvbmRpdGlvbi5hY3F1aXJlKCkKKyAgICAgICAgICAgIHdoaWxlIG5vdCBz
ZWxmLl9zdG9wX3JlcXVlc3RlZDoKKyAgICAgICAgICAgICAgICBpZiBsZW4oc2VsZi5fZGVxdWUp
ID09IDA6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX2RlcXVlX2NvbmRpdGlvbi53YWl0KCkK
KyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgICAgIG91dGdvaW5n
X2RhdGEgPSBzZWxmLl9kZXF1ZS5wb3BsZWZ0KCkKKworICAgICAgICAgICAgICAgIHNlbGYuX2Rl
cXVlX2NvbmRpdGlvbi5yZWxlYXNlKCkKKyAgICAgICAgICAgICAgICBzZWxmLl93cml0ZV9kYXRh
KG91dGdvaW5nX2RhdGEpCisgICAgICAgICAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLmFj
cXVpcmUoKQorCisgICAgICAgICAgICAjIEZsdXNoIGRlcXVlLgorICAgICAgICAgICAgIworICAg
ICAgICAgICAgIyBBdCB0aGlzIHBvaW50LCBzZWxmLl9kZXF1ZV9jb25kaXRpb24gaXMgYWx3YXlz
IGFjcXVpcmVkLgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHdoaWxlIGxlbihz
ZWxmLl9kZXF1ZSkgPiAwOgorICAgICAgICAgICAgICAgICAgICBvdXRnb2luZ19kYXRhID0gc2Vs
Zi5fZGVxdWUucG9wbGVmdCgpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3dyaXRlX2RhdGEo
b3V0Z29pbmdfZGF0YSkKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgc2Vs
Zi5fZGVxdWVfY29uZGl0aW9uLnJlbGVhc2UoKQorCisgICAgICAgICAgICAjIENsb3NlIHBoeXNp
Y2FsIGNvbm5lY3Rpb24uCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgIyBEb24n
dCB3YWl0IHRoZSByZXNwb25zZSBoZXJlLiBUaGUgcmVzcG9uc2Ugd2lsbCBiZSByZWFkCisgICAg
ICAgICAgICAgICAgIyBieSB0aGUgcmVhZGVyIHRocmVhZC4KKyAgICAgICAgICAgICAgICBzZWxm
Ll9tdXhfaGFuZGxlci5waHlzaWNhbF9zdHJlYW0uY2xvc2VfY29ubmVjdGlvbigKKyAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fY2xvc2VfY29kZSwgd2FpdF9yZXNwb25zZT1GYWxzZSkKKyAgICAg
ICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAgICAgdXRpbC5wcmVwZW5k
X21lc3NhZ2VfdG9fZXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAnRmFpbGVkIHRvIGNs
b3NlIHRoZSBwaHlzaWNhbCBjb25uZWN0aW9uOiAlcicgJSBlKQorICAgICAgICAgICAgICAgIHJh
aXNlCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5ub3Rp
Znlfd3JpdGVyX2RvbmUoKQorCisgICAgZGVmIHN0b3Aoc2VsZiwgY2xvc2VfY29kZT1jb21tb24u
U1RBVFVTX05PUk1BTF9DTE9TVVJFKToKKyAgICAgICAgIiIiU3RvcCB0aGUgd3JpdGVyIHRocmVh
ZC4iIiIKKyAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLmFjcXVpcmUoKQorICAgICAgICBz
ZWxmLl9zdG9wX3JlcXVlc3RlZCA9IFRydWUKKyAgICAgICAgc2VsZi5fY2xvc2VfY29kZSA9IGNs
b3NlX2NvZGUKKyAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLm5vdGlmeSgpCisgICAgICAg
IHNlbGYuX2RlcXVlX2NvbmRpdGlvbi5yZWxlYXNlKCkKKworCitjbGFzcyBfUGh5c2ljYWxDb25u
ZWN0aW9uUmVhZGVyKHRocmVhZGluZy5UaHJlYWQpOgorCisgICAgIiIiQSB0aHJlYWQgdGhhdCBp
cyByZXNwb25zaWJsZSBmb3IgcmVhZGluZyBkYXRhIGZyb20gcGh5c2ljYWwgY29ubmVjdGlvbi4K
KyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtdXhfaGFuZGxlcik6CisgICAgICAg
ICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAg
bXV4X2hhbmRsZXI6IF9NdXhIYW5kbGVyIGluc3RhbmNlLgorICAgICAgICAiIiIKKyAgICAgICAg
dGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhzZWxmKQorICAgICAgICBzZWxmLl9sb2dnZXIgPSB1
dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKKyAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIgPSBt
dXhfaGFuZGxlcgorICAgICAgICBzZWxmLnNldERhZW1vbihUcnVlKQorCisgICAgZGVmIHJ1bihz
ZWxmKToKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAg
ICAgICBwaHlzaWNhbF9zdHJlYW0gPSBzZWxmLl9tdXhfaGFuZGxlci5waHlzaWNhbF9zdHJlYW0K
KyAgICAgICAgICAgICAgICBtZXNzYWdlID0gcGh5c2ljYWxfc3RyZWFtLnJlY2VpdmVfbWVzc2Fn
ZSgpCisgICAgICAgICAgICAgICAgaWYgbWVzc2FnZSBpcyBOb25lOgorICAgICAgICAgICAgICAg
ICAgICBicmVhaworICAgICAgICAgICAgICAgICMgQmVsb3cgaGFwcGVucyBvbmx5IHdoZW4gYSBk
YXRhIG1lc3NhZ2UgaXMgcmVjZWl2ZWQuCisgICAgICAgICAgICAgICAgb3Bjb2RlID0gcGh5c2lj
YWxfc3RyZWFtLmdldF9sYXN0X3JlY2VpdmVkX29wY29kZSgpCisgICAgICAgICAgICAgICAgaWYg
b3Bjb2RlICE9IGNvbW1vbi5PUENPREVfQklOQVJZOgorICAgICAgICAgICAgICAgICAgICBzZWxm
Ll9tdXhfaGFuZGxlci5mYWlsX3BoeXNpY2FsX2Nvbm5lY3Rpb24oCisgICAgICAgICAgICAgICAg
ICAgICAgICBfRFJPUF9DT0RFX0lOVkFMSURfRU5DQVBTVUxBVElOR19NRVNTQUdFLAorICAgICAg
ICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGEgdGV4dCBtZXNzYWdlIG9uIHBoeXNpY2FsIGNv
bm5lY3Rpb24nKQorICAgICAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAgICAgICBleGNl
cHQgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKCclcycsIGUpCisgICAgICAgICAgICAgICAgYnJlYWsKKworICAgICAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYuX211eF9oYW5kbGVyLmRpc3BhdGNoX21l
c3NhZ2UobWVzc2FnZSkKKyAgICAgICAgICAgIGV4Y2VwdCBQaHlzaWNhbENvbm5lY3Rpb25FcnJv
ciwgZToKKyAgICAgICAgICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5mYWlsX3BoeXNpY2FsX2Nv
bm5lY3Rpb24oCisgICAgICAgICAgICAgICAgICAgIGUuZHJvcF9jb2RlLCBlLm1lc3NhZ2UpCisg
ICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGV4Y2VwdCBMb2dpY2FsQ2hhbm5lbEVy
cm9yLCBlOgorICAgICAgICAgICAgICAgIHNlbGYuX211eF9oYW5kbGVyLmZhaWxfbG9naWNhbF9j
aGFubmVsKAorICAgICAgICAgICAgICAgICAgICBlLmNoYW5uZWxfaWQsIGUuZHJvcF9jb2RlLCBl
Lm1lc3NhZ2UpCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1Zyh0cmFjZWJhY2suZm9ybWF0X2V4YygpKQorICAgICAgICAg
ICAgICAgIGJyZWFrCisKKyAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIubm90aWZ5X3JlYWRlcl9k
b25lKCkKKworCitjbGFzcyBfV29ya2VyKHRocmVhZGluZy5UaHJlYWQpOgorCisgICAgIiIiQSB0
aHJlYWQgdGhhdCBpcyByZXNwb25zaWJsZSBmb3IgcnVubmluZyB0aGUgY29ycmVzcG9uZGluZyBh
cHBsaWNhdGlvbgorICAgIGhhbmRsZXIuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgbXV4X2hhbmRsZXIsIHJlcXVlc3QpOgorICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFu
Y2UuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIG11eF9oYW5kbGVyOiBfTXV4SGFuZGxl
ciBpbnN0YW5jZS4KKyAgICAgICAgICAgIHJlcXVlc3Q6IF9Mb2dpY2FsUmVxdWVzdCBpbnN0YW5j
ZS4KKyAgICAgICAgIiIiCisgICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18oc2VsZikK
KyAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCisgICAg
ICAgIHNlbGYuX211eF9oYW5kbGVyID0gbXV4X2hhbmRsZXIKKyAgICAgICAgc2VsZi5fcmVxdWVz
dCA9IHJlcXVlc3QKKyAgICAgICAgc2VsZi5zZXREYWVtb24oVHJ1ZSkKKworICAgIGRlZiBydW4o
c2VsZik6CisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnTG9naWNhbCBjaGFubmVsIHdvcmtl
ciBzdGFydGVkLiAoaWQ9JWQpJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9y
ZXF1ZXN0LmNoYW5uZWxfaWQpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgTm9uLWNyaXRp
Y2FsIGV4Y2VwdGlvbnMgd2lsbCBiZSBoYW5kbGVkIGJ5IGRpc3BhdGNoZXIuCisgICAgICAgICAg
ICBzZWxmLl9tdXhfaGFuZGxlci5kaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEoc2VsZi5fcmVxdWVz
dCkKKyAgICAgICAgZXhjZXB0IExvZ2ljYWxDaGFubmVsRXJyb3IsIGU6CisgICAgICAgICAgICBz
ZWxmLl9tdXhfaGFuZGxlci5mYWlsX2xvZ2ljYWxfY2hhbm5lbCgKKyAgICAgICAgICAgICAgICBl
LmNoYW5uZWxfaWQsIGUuZHJvcF9jb2RlLCBlLm1lc3NhZ2UpCisgICAgICAgIGZpbmFsbHk6Cisg
ICAgICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5ub3RpZnlfd29ya2VyX2RvbmUoc2VsZi5fcmVx
dWVzdC5jaGFubmVsX2lkKQorCisKK2NsYXNzIF9NdXhIYW5kc2hha2VyKGh5YmkuSGFuZHNoYWtl
cik6CisKKyAgICAiIiJPcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IgZm9yIG11bHRpcGxleGlu
Zy4iIiIKKworICAgIF9EVU1NWV9XRUJTT0NLRVRfS0VZID0gJ2RHaGxJSE5oYlhCc1pTQnViMjVq
WlE9PScKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0LCBkaXNwYXRjaGVyLCBzZW5k
X3F1b3RhLCByZWNlaXZlX3F1b3RhKToKKyAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNl
LgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICByZXF1ZXN0OiBfTG9naWNhbFJlcXVlc3Qg
aW5zdGFuY2UuCisgICAgICAgICAgICBkaXNwYXRjaGVyOiBEaXNwYXRjaGVyIGluc3RhbmNlIChk
aXNwYXRjaC5EaXNwYXRjaGVyKS4KKyAgICAgICAgICAgIHNlbmRfcXVvdGE6IEluaXRpYWwgc2Vu
ZCBxdW90YS4KKyAgICAgICAgICAgIHJlY2VpdmVfcXVvdGE6IEluaXRpYWwgcmVjZWl2ZSBxdW90
YS4KKyAgICAgICAgIiIiCisgICAgICAgIGh5YmkuSGFuZHNoYWtlci5fX2luaXRfXyhzZWxmLCBy
ZXF1ZXN0LCBkaXNwYXRjaGVyKQorICAgICAgICBzZWxmLl9zZW5kX3F1b3RhID0gc2VuZF9xdW90
YQorICAgICAgICBzZWxmLl9yZWNlaXZlX3F1b3RhID0gcmVjZWl2ZV9xdW90YQorCisgICAgICAg
ICMgQXBwZW5kIGhlYWRlcnMgd2hpY2ggc2hvdWxkIG5vdCBiZSBpbmNsdWRlZCBpbiBoYW5kc2hh
a2UgZmllbGQgb2YKKyAgICAgICAgIyBBZGRDaGFubmVsUmVxdWVzdC4KKyAgICAgICAgIyBUT0RP
KGJhc2hpKTogTWFrZSBzdXJlIHdoZXRoZXIgd2Ugc2hvdWxkIHJhaXNlIGV4Y2VwdGlvbiB3aGVu
CisgICAgICAgICMgICAgIHRoZXNlIGhlYWRlcnMgYXJlIGluY2x1ZGVkIGFscmVhZHkuCisgICAg
ICAgIHJlcXVlc3QuaGVhZGVyc19pbltjb21tb24uVVBHUkFERV9IRUFERVJdID0gKAorICAgICAg
ICAgICAgY29tbW9uLldFQlNPQ0tFVF9VUEdSQURFX1RZUEUpCisgICAgICAgIHJlcXVlc3QuaGVh
ZGVyc19pbltjb21tb24uU0VDX1dFQlNPQ0tFVF9WRVJTSU9OX0hFQURFUl0gPSAoCisgICAgICAg
ICAgICBzdHIoY29tbW9uLlZFUlNJT05fSFlCSV9MQVRFU1QpKQorICAgICAgICByZXF1ZXN0Lmhl
YWRlcnNfaW5bY29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZX0hFQURFUl0gPSAoCisgICAgICAgICAg
ICBzZWxmLl9EVU1NWV9XRUJTT0NLRVRfS0VZKQorCisgICAgZGVmIF9jcmVhdGVfc3RyZWFtKHNl
bGYsIHN0cmVhbV9vcHRpb25zKToKKyAgICAgICAgIiIiT3ZlcnJpZGUgaHliaS5IYW5kc2hha2Vy
Ll9jcmVhdGVfc3RyZWFtLiIiIgorICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NyZWF0aW5n
IGxvZ2ljYWwgc3RyZWFtIGZvciAlZCcgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5fcmVxdWVzdC5jaGFubmVsX2lkKQorICAgICAgICByZXR1cm4gX0xvZ2ljYWxTdHJlYW0oCisg
ICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LCBzdHJlYW1fb3B0aW9ucywgc2VsZi5fc2VuZF9xdW90
YSwKKyAgICAgICAgICAgIHNlbGYuX3JlY2VpdmVfcXVvdGEpCisKKyAgICBkZWYgX2NyZWF0ZV9o
YW5kc2hha2VfcmVzcG9uc2Uoc2VsZiwgYWNjZXB0KToKKyAgICAgICAgIiIiT3ZlcnJpZGUgaHli
aS5fY3JlYXRlX2hhbmRzaGFrZV9yZXNwb25zZS4iIiIKKyAgICAgICAgcmVzcG9uc2UgPSBbXQor
CisgICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnSFRUUC8xLjEgMTAxIFN3aXRjaGluZyBQcm90b2Nv
bHNcclxuJykKKworICAgICAgICAjIFVwZ3JhZGUgYW5kIFNlYy1XZWJTb2NrZXQtQWNjZXB0IHNo
b3VsZCBiZSBleGNsdWRlZC4KKyAgICAgICAgcmVzcG9uc2UuYXBwZW5kKCclczogJXNcclxuJyAl
ICgKKyAgICAgICAgICAgIGNvbW1vbi5DT05ORUNUSU9OX0hFQURFUiwgY29tbW9uLlVQR1JBREVf
Q09OTkVDVElPTl9UWVBFKSkKKyAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCBp
cyBub3QgTm9uZToKKyAgICAgICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnJXM6ICVzXHJcbicgJSAo
CisgICAgICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfUFJPVE9DT0xfSEVBREVSLAor
ICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wpKQorICAgICAgICBpZiAo
c2VsZi5fcmVxdWVzdC53c19leHRlbnNpb25zIGlzIG5vdCBOb25lIGFuZAorICAgICAgICAgICAg
bGVuKHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9ucykgIT0gMCk6CisgICAgICAgICAgICByZXNw
b25zZS5hcHBlbmQoJyVzOiAlc1xyXG4nICUgKAorICAgICAgICAgICAgICAgIGNvbW1vbi5TRUNf
V0VCU09DS0VUX0VYVEVOU0lPTlNfSEVBREVSLAorICAgICAgICAgICAgICAgIGNvbW1vbi5mb3Jt
YXRfZXh0ZW5zaW9ucyhzZWxmLl9yZXF1ZXN0LndzX2V4dGVuc2lvbnMpKSkKKyAgICAgICAgcmVz
cG9uc2UuYXBwZW5kKCdcclxuJykKKworICAgICAgICByZXR1cm4gJycuam9pbihyZXNwb25zZSkK
KworICAgIGRlZiBfc2VuZF9oYW5kc2hha2Uoc2VsZiwgYWNjZXB0KToKKyAgICAgICAgIiIiT3Zl
cnJpZGUgaHliaS5IYW5kc2hha2VyLl9zZW5kX2hhbmRzaGFrZS4iIiIKKyAgICAgICAgIyBEb24n
dCBzZW5kIGhhbmRzaGFrZSByZXNwb25zZSBmb3IgdGhlIGRlZmF1bHQgY2hhbm5lbAorICAgICAg
ICBpZiBzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQgPT0gX0RFRkFVTFRfQ0hBTk5FTF9JRDoKKyAg
ICAgICAgICAgIHJldHVybgorCisgICAgICAgIGhhbmRzaGFrZV9yZXNwb25zZSA9IHNlbGYuX2Ny
ZWF0ZV9oYW5kc2hha2VfcmVzcG9uc2UoYWNjZXB0KQorICAgICAgICBmcmFtZV9kYXRhID0gX2Ny
ZWF0ZV9hZGRfY2hhbm5lbF9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
Ll9yZXF1ZXN0LmNoYW5uZWxfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZHNoYWtl
X3Jlc3BvbnNlKQorICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlbmRpbmcgaGFuZHNoYWtl
IHJlc3BvbnNlIGZvciAlZDogJXInICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxm
Ll9yZXF1ZXN0LmNoYW5uZWxfaWQsIGZyYW1lX2RhdGEpKQorICAgICAgICBzZWxmLl9yZXF1ZXN0
LmNvbm5lY3Rpb24ud3JpdGVfY29udHJvbF9kYXRhKGZyYW1lX2RhdGEpCisKKworY2xhc3MgX0xv
Z2ljYWxDaGFubmVsRGF0YShvYmplY3QpOgorCisgICAgIiIiQSBzdHJ1Y3R1cmUgdGhhdCBob2xk
cyBpbmZvcm1hdGlvbiBhYm91dCBsb2dpY2FsIGNoYW5uZWwuIiIiCisKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgcmVxdWVzdCwgd29ya2VyKToKKyAgICAgICAgc2VsZi5yZXF1ZXN0ID0gcmVxdWVz
dAorICAgICAgICBzZWxmLndvcmtlciA9IHdvcmtlcgorICAgICAgICBzZWxmLmRyb3BfY29kZSA9
IF9EUk9QX0NPREVfTk9STUFMX0NMT1NVUkUKKyAgICAgICAgc2VsZi5kcm9wX21lc3NhZ2UgPSAn
JworCisKK2NsYXNzIF9IYW5kc2hha2VEZWx0YUJhc2Uob2JqZWN0KToKKyAgICAiIiJBIGNsYXNz
IHRoYXQgaG9sZHMgaW5mb3JtYXRpb24gZm9yIGRlbHRhLWVuY29kZWQgaGFuZHNoYWtlLiIiIgor
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhlYWRlcnMpOgorICAgICAgICBzZWxmLl9oZWFkZXJz
ID0gaGVhZGVycworCisgICAgZGVmIGNyZWF0ZV9oZWFkZXJzKHNlbGYsIGRlbHRhPU5vbmUpOgor
ICAgICAgICAiIiJDcmVhdGVzIHJlcXVlc3QgaGVhZGVycyBmb3IgYW4gQWRkQ2hhbm5lbFJlcXVl
c3QgdGhhdCBoYXMKKyAgICAgICAgZGVsdGEtZW5jb2RlZCBoYW5kc2hha2UuCisKKyAgICAgICAg
QXJnczoKKyAgICAgICAgICAgIGRlbHRhOiBoZWFkZXJzIHNob3VsZCBiZSBvdmVycmlkZGVuLgor
ICAgICAgICAiIiIKKworICAgICAgICBoZWFkZXJzID0gY29weS5jb3B5KHNlbGYuX2hlYWRlcnMp
CisgICAgICAgIGlmIGRlbHRhOgorICAgICAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gZGVsdGEu
aXRlbXMoKToKKyAgICAgICAgICAgICAgICAjIFRoZSBzcGVjIHJlcXVpcmVzIHRoYXQgYSBoZWFk
ZXIgd2l0aCBhbiBlbXB0eSB2YWx1ZSBpcworICAgICAgICAgICAgICAgICMgcmVtb3ZlZCBmcm9t
IHRoZSBkZWx0YSBiYXNlLgorICAgICAgICAgICAgICAgIGlmIGxlbih2YWx1ZSkgPT0gMCBhbmQg
aGVhZGVycy5oYXNfa2V5KGtleSk6CisgICAgICAgICAgICAgICAgICAgIGRlbCBoZWFkZXJzW2tl
eV0KKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBoZWFkZXJzW2tl
eV0gPSB2YWx1ZQorICAgICAgICByZXR1cm4gaGVhZGVycworCisKK2NsYXNzIF9NdXhIYW5kbGVy
KG9iamVjdCk6CisgICAgIiIiTXVsdGlwbGV4aW5nIGhhbmRsZXIuIFdoZW4gYSBoYW5kbGVyIHN0
YXJ0cywgaXQgbGF1bmNoZXMgdGhyZWUKKyAgICB0aHJlYWRzOyB0aGUgcmVhZGVyIHRocmVhZCwg
dGhlIHdyaXRlciB0aHJlYWQsIGFuZCBhIHdvcmtlciB0aHJlYWQuCisKKyAgICBUaGUgcmVhZGVy
IHRocmVhZCByZWFkcyBkYXRhIGZyb20gdGhlIHBoeXNpY2FsIHN0cmVhbSwgaS5lLiwgdGhlCisg
ICAgd3Nfc3RyZWFtIG9iamVjdCBvZiB0aGUgdW5kZXJseWluZyB3ZWJzb2NrZXQgY29ubmVjdGlv
bi4gVGhlIHJlYWRlcgorICAgIHRocmVhZCBpbnRlcnByZXRzIG11bHRpcGxleGVkIGZyYW1lcyBh
bmQgZGlzcGF0Y2hlcyB0aGVtIHRvIGxvZ2ljYWwKKyAgICBjaGFubmVscy4gTWV0aG9kcyBvZiB0
aGlzIGNsYXNzIGFyZSBtb3N0bHkgY2FsbGVkIGJ5IHRoZSByZWFkZXIgdGhyZWFkLgorCisgICAg
VGhlIHdyaXRlciB0aHJlYWQgc2VuZHMgbXVsdGlwbGV4ZWQgZnJhbWVzIHdoaWNoIGFyZSBjcmVh
dGVkIGJ5CisgICAgbG9naWNhbCBjaGFubmVscyB2aWEgdGhlIHBoeXNpY2FsIGNvbm5lY3Rpb24u
CisKKyAgICBUaGUgd29ya2VyIHRocmVhZCBsYXVuY2hlZCBhdCB0aGUgc3RhcnRpbmcgcG9pbnQg
aGFuZGxlcyB0aGUKKyAgICAiSW1wbGljaXRseSBPcGVuZWQgQ29ubmVjdGlvbiIuIElmIG11bHRp
cGxleGluZyBoYW5kbGVyIHJlY2VpdmVzCisgICAgYW4gQWRkQ2hhbm5lbFJlcXVlc3QgYW5kIGFj
Y2VwdHMgaXQsIHRoZSBoYW5kbGVyIHdpbGwgbGF1bmNoIGEgbmV3IHdvcmtlcgorICAgIHRocmVh
ZCBhbmQgZGlzcGF0Y2ggdGhlIHJlcXVlc3QgdG8gaXQuCisgICAgIiIiCisKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgcmVxdWVzdCwgZGlzcGF0Y2hlcik6CisgICAgICAgICIiIkNvbnN0cnVjdHMg
YW4gaW5zdGFuY2UuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIHJlcXVlc3Q6IG1vZF9w
eXRob24gcmVxdWVzdCBvZiB0aGUgcGh5c2ljYWwgY29ubmVjdGlvbi4KKyAgICAgICAgICAgIGRp
c3BhdGNoZXI6IERpc3BhdGNoZXIgaW5zdGFuY2UgKGRpc3BhdGNoLkRpc3BhdGNoZXIpLgorICAg
ICAgICAiIiIKKworICAgICAgICBzZWxmLm9yaWdpbmFsX3JlcXVlc3QgPSByZXF1ZXN0CisgICAg
ICAgIHNlbGYuZGlzcGF0Y2hlciA9IGRpc3BhdGNoZXIKKyAgICAgICAgc2VsZi5waHlzaWNhbF9j
b25uZWN0aW9uID0gcmVxdWVzdC5jb25uZWN0aW9uCisgICAgICAgIHNlbGYucGh5c2ljYWxfc3Ry
ZWFtID0gcmVxdWVzdC53c19zdHJlYW0KKyAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRf
Y2xhc3NfbG9nZ2VyKHNlbGYpCisgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHMgPSB7fQor
ICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbiA9IHRocmVhZGluZy5Db25k
aXRpb24oKQorICAgICAgICAjIEhvbGRzIGNsaWVudCdzIGluaXRpYWwgcXVvdGEKKyAgICAgICAg
c2VsZi5fY2hhbm5lbF9zbG90cyA9IGNvbGxlY3Rpb25zLmRlcXVlKCkKKyAgICAgICAgc2VsZi5f
aGFuZHNoYWtlX2Jhc2UgPSBOb25lCisgICAgICAgIHNlbGYuX3dvcmtlcl9kb25lX25vdGlmeV9y
ZWNlaXZlZCA9IEZhbHNlCisgICAgICAgIHNlbGYuX3JlYWRlciA9IE5vbmUKKyAgICAgICAgc2Vs
Zi5fd3JpdGVyID0gTm9uZQorCisgICAgZGVmIHN0YXJ0KHNlbGYpOgorICAgICAgICAiIiJTdGFy
dHMgdGhlIGhhbmRsZXIuCisKKyAgICAgICAgUmFpc2VzOgorICAgICAgICAgICAgTXV4VW5leHBl
Y3RlZEV4Y2VwdGlvbjogd2hlbiB0aGUgaGFuZGxlciBhbHJlYWR5IHN0YXJ0ZWQsIG9yIHdoZW4K
KyAgICAgICAgICAgICAgICBvcGVuaW5nIGhhbmRzaGFrZSBvZiB0aGUgZGVmYXVsdCBjaGFubmVs
IGZhaWxzLgorICAgICAgICAiIiIKKworICAgICAgICBpZiBzZWxmLl9yZWFkZXIgb3Igc2VsZi5f
d3JpdGVyOgorICAgICAgICAgICAgcmFpc2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbignTXV4SGFu
ZGxlciBhbHJlYWR5IHN0YXJ0ZWQnKQorCisgICAgICAgIHNlbGYuX3JlYWRlciA9IF9QaHlzaWNh
bENvbm5lY3Rpb25SZWFkZXIoc2VsZikKKyAgICAgICAgc2VsZi5fd3JpdGVyID0gX1BoeXNpY2Fs
Q29ubmVjdGlvbldyaXRlcihzZWxmKQorICAgICAgICBzZWxmLl9yZWFkZXIuc3RhcnQoKQorICAg
ICAgICBzZWxmLl93cml0ZXIuc3RhcnQoKQorCisgICAgICAgICMgQ3JlYXRlICJJbXBsaWNpdGx5
IE9wZW5lZCBDb25uZWN0aW9uIi4KKyAgICAgICAgbG9naWNhbF9jb25uZWN0aW9uID0gX0xvZ2lj
YWxDb25uZWN0aW9uKHNlbGYsIF9ERUZBVUxUX0NIQU5ORUxfSUQpCisgICAgICAgIGhlYWRlcnMg
PSBjb3B5LmNvcHkoc2VsZi5vcmlnaW5hbF9yZXF1ZXN0LmhlYWRlcnNfaW4pCisgICAgICAgICMg
QWRkIGV4dGVuc2lvbnMgZm9yIGxvZ2ljYWwgY2hhbm5lbC4KKyAgICAgICAgaGVhZGVyc1tjb21t
b24uU0VDX1dFQlNPQ0tFVF9FWFRFTlNJT05TX0hFQURFUl0gPSAoCisgICAgICAgICAgICBjb21t
b24uZm9ybWF0X2V4dGVuc2lvbnMoCisgICAgICAgICAgICAgICAgc2VsZi5vcmlnaW5hbF9yZXF1
ZXN0Lm11eF9wcm9jZXNzb3IuZXh0ZW5zaW9ucygpKSkKKyAgICAgICAgc2VsZi5faGFuZHNoYWtl
X2Jhc2UgPSBfSGFuZHNoYWtlRGVsdGFCYXNlKGhlYWRlcnMpCisgICAgICAgIGxvZ2ljYWxfcmVx
dWVzdCA9IF9Mb2dpY2FsUmVxdWVzdCgKKyAgICAgICAgICAgIF9ERUZBVUxUX0NIQU5ORUxfSUQs
CisgICAgICAgICAgICBzZWxmLm9yaWdpbmFsX3JlcXVlc3QubWV0aG9kLAorICAgICAgICAgICAg
c2VsZi5vcmlnaW5hbF9yZXF1ZXN0LnVyaSwKKyAgICAgICAgICAgIHNlbGYub3JpZ2luYWxfcmVx
dWVzdC5wcm90b2NvbCwKKyAgICAgICAgICAgIHNlbGYuX2hhbmRzaGFrZV9iYXNlLmNyZWF0ZV9o
ZWFkZXJzKCksCisgICAgICAgICAgICBsb2dpY2FsX2Nvbm5lY3Rpb24pCisgICAgICAgICMgQ2xp
ZW50J3Mgc2VuZCBxdW90YSBmb3IgdGhlIGltcGxpY2l0bHkgb3BlbmVkIGNvbm5lY3Rpb24gaXMg
emVybywKKyAgICAgICAgIyBidXQgd2Ugd2lsbCBzZW5kIEZsb3dDb250cm9sIGxhdGVyIHNvIHNl
dCB0aGUgaW5pdGlhbCBxdW90YSB0bworICAgICAgICAjIF9JTklUSUFMX1FVT1RBX0ZPUl9DTElF
TlQuCisgICAgICAgIHNlbGYuX2NoYW5uZWxfc2xvdHMuYXBwZW5kKF9JTklUSUFMX1FVT1RBX0ZP
Ul9DTElFTlQpCisgICAgICAgIHNlbmRfcXVvdGEgPSBzZWxmLm9yaWdpbmFsX3JlcXVlc3QubXV4
X3Byb2Nlc3Nvci5xdW90YSgpCisgICAgICAgIGlmIG5vdCBzZWxmLl9kb19oYW5kc2hha2VfZm9y
X2xvZ2ljYWxfcmVxdWVzdCgKKyAgICAgICAgICAgIGxvZ2ljYWxfcmVxdWVzdCwgc2VuZF9xdW90
YT1zZW5kX3F1b3RhKToKKyAgICAgICAgICAgIHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRpb24o
CisgICAgICAgICAgICAgICAgJ0ZhaWxlZCBoYW5kc2hha2Ugb24gdGhlIGRlZmF1bHQgY2hhbm5l
bCBpZCcpCisgICAgICAgIHNlbGYuX2FkZF9sb2dpY2FsX2NoYW5uZWwobG9naWNhbF9yZXF1ZXN0
KQorCisgICAgICAgICMgU2VuZCBGbG93Q29udHJvbCBmb3IgdGhlIGltcGxpY2l0bHkgb3BlbmVk
IGNvbm5lY3Rpb24uCisgICAgICAgIGZyYW1lX2RhdGEgPSBfY3JlYXRlX2Zsb3dfY29udHJvbChf
REVGQVVMVF9DSEFOTkVMX0lELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKKyAgICAgICAgbG9naWNhbF9yZXF1ZXN0
LmNvbm5lY3Rpb24ud3JpdGVfY29udHJvbF9kYXRhKGZyYW1lX2RhdGEpCisKKyAgICBkZWYgYWRk
X2NoYW5uZWxfc2xvdHMoc2VsZiwgc2xvdHMsIHNlbmRfcXVvdGEpOgorICAgICAgICAiIiJBZGRz
IGNoYW5uZWwgc2xvdHMuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIHNsb3RzOiBudW1i
ZXIgb2Ygc2xvdHMgdG8gYmUgYWRkZWQuCisgICAgICAgICAgICBzZW5kX3F1b3RhOiBpbml0aWFs
IHNlbmQgcXVvdGEgZm9yIHNsb3RzLgorICAgICAgICAiIiIKKworICAgICAgICBzZWxmLl9jaGFu
bmVsX3Nsb3RzLmV4dGVuZChbc2VuZF9xdW90YV0gKiBzbG90cykKKyAgICAgICAgIyBTZW5kIE5l
d0NoYW5uZWxTbG90IHRvIGNsaWVudC4KKyAgICAgICAgZnJhbWVfZGF0YSA9IF9jcmVhdGVfbmV3
X2NoYW5uZWxfc2xvdChzbG90cywgc2VuZF9xdW90YSkKKyAgICAgICAgc2VsZi5zZW5kX2NvbnRy
b2xfZGF0YShmcmFtZV9kYXRhKQorCisgICAgZGVmIHdhaXRfdW50aWxfZG9uZShzZWxmLCB0aW1l
b3V0PU5vbmUpOgorICAgICAgICAiIiJXYWl0cyB1bnRpbCBhbGwgd29ya2VycyBhcmUgZG9uZS4g
UmV0dXJucyBGYWxzZSB3aGVuIHRpbWVvdXQgaGFzCisgICAgICAgIG9jY3VycmVkLiBSZXR1cm5z
IFRydWUgb24gc3VjY2Vzcy4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgdGltZW91dDog
dGltZW91dCBpbiBzZWMuCisgICAgICAgICIiIgorCisgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hh
bm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICB3aGls
ZSBsZW4oc2VsZi5fbG9naWNhbF9jaGFubmVscykgPiAwOgorICAgICAgICAgICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygnV2FpdGluZyB3b3JrZXJzKCVkKS4uLicgJQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZW4oc2VsZi5fbG9naWNhbF9jaGFubmVscykpCisgICAgICAg
ICAgICAgICAgc2VsZi5fd29ya2VyX2RvbmVfbm90aWZ5X3JlY2VpdmVkID0gRmFsc2UKKyAgICAg
ICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi53YWl0KHRpbWVvdXQp
CisgICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuX3dvcmtlcl9kb25lX25vdGlmeV9yZWNlaXZl
ZDoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdXYWl0aW5nIHdvcmtl
cihzKSB0aW1lZCBvdXQnKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAg
ICAgZmluYWxseToKKyAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9u
LnJlbGVhc2UoKQorCisgICAgICAgICMgRmx1c2ggcGVuZGluZyBvdXRnb2luZyBkYXRhCisgICAg
ICAgIHNlbGYuX3dyaXRlci5zdG9wKCkKKyAgICAgICAgc2VsZi5fd3JpdGVyLmpvaW4oKQorCisg
ICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgbm90aWZ5X3dyaXRlX2RhdGFfZG9uZShzZWxm
LCBjaGFubmVsX2lkKToKKyAgICAgICAgIiIiQ2FsbGVkIGJ5IHRoZSB3cml0ZXIgdGhyZWFkIHdo
ZW4gYSB3cml0ZSBvcGVyYXRpb24gaGFzIGRvbmUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAg
ICAgIGNoYW5uZWxfaWQ6IG9iamVjdGl2ZSBjaGFubmVsIGlkLgorICAgICAgICAiIiIKKworICAg
ICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5h
Y3F1aXJlKCkKKyAgICAgICAgICAgIGlmIGNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9jaGFu
bmVsczoKKyAgICAgICAgICAgICAgICBjaGFubmVsX2RhdGEgPSBzZWxmLl9sb2dpY2FsX2NoYW5u
ZWxzW2NoYW5uZWxfaWRdCisgICAgICAgICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVlc3QuY29u
bmVjdGlvbi5vbl93cml0ZV9kYXRhX2RvbmUoKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlZW1zIHRoYXQgbG9naWNhbCBjaGFubmVsIGZv
ciAlZCBoYXMgZ29uZScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBjaGFu
bmVsX2lkKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFu
bmVsc19jb25kaXRpb24ucmVsZWFzZSgpCisKKyAgICBkZWYgc2VuZF9jb250cm9sX2RhdGEoc2Vs
ZiwgZGF0YSk6CisgICAgICAgICIiIlNlbmRzIGRhdGEgdmlhIHRoZSBjb250cm9sIGNoYW5uZWwu
CisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGRhdGE6IGRhdGEgdG8gYmUgc2VudC4KKyAg
ICAgICAgIiIiCisKKyAgICAgICAgc2VsZi5fd3JpdGVyLnB1dF9vdXRnb2luZ19kYXRhKF9PdXRn
b2luZ0RhdGEoCisgICAgICAgICAgICAgICAgY2hhbm5lbF9pZD1fQ09OVFJPTF9DSEFOTkVMX0lE
LCBkYXRhPWRhdGEpKQorCisgICAgZGVmIHNlbmRfZGF0YShzZWxmLCBjaGFubmVsX2lkLCBkYXRh
KToKKyAgICAgICAgIiIiU2VuZHMgZGF0YSB2aWEgZ2l2ZW4gbG9naWNhbCBjaGFubmVsLiBUaGlz
IG1ldGhvZCBpcyBjYWxsZWQgYnkKKyAgICAgICAgd29ya2VyIHRocmVhZHMuCisKKyAgICAgICAg
QXJnczoKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ6IG9iamVjdGl2ZSBjaGFubmVsIGlkLgorICAg
ICAgICAgICAgZGF0YTogZGF0YSB0byBiZSBzZW50LgorICAgICAgICAiIiIKKworICAgICAgICBz
ZWxmLl93cml0ZXIucHV0X291dGdvaW5nX2RhdGEoX091dGdvaW5nRGF0YSgKKyAgICAgICAgICAg
ICAgICBjaGFubmVsX2lkPWNoYW5uZWxfaWQsIGRhdGE9ZGF0YSkpCisKKyAgICBkZWYgX3NlbmRf
ZHJvcF9jaGFubmVsKHNlbGYsIGNoYW5uZWxfaWQsIGNvZGU9Tm9uZSwgbWVzc2FnZT0nJyk6Cisg
ICAgICAgIGZyYW1lX2RhdGEgPSBfY3JlYXRlX2Ryb3BfY2hhbm5lbChjaGFubmVsX2lkLCBjb2Rl
LCBtZXNzYWdlKQorICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAnU2Vu
ZGluZyBkcm9wIGNoYW5uZWwgZm9yIGNoYW5uZWwgaWQgJWQnICUgY2hhbm5lbF9pZCkKKyAgICAg
ICAgc2VsZi5zZW5kX2NvbnRyb2xfZGF0YShmcmFtZV9kYXRhKQorCisgICAgZGVmIF9zZW5kX2Vy
cm9yX2FkZF9jaGFubmVsX3Jlc3BvbnNlKHNlbGYsIGNoYW5uZWxfaWQsIHN0YXR1cz1Ob25lKToK
KyAgICAgICAgaWYgc3RhdHVzIGlzIE5vbmU6CisgICAgICAgICAgICBzdGF0dXMgPSBjb21tb24u
SFRUUF9TVEFUVVNfQkFEX1JFUVVFU1QKKworICAgICAgICBpZiBzdGF0dXMgaW4gX0hUVFBfQkFE
X1JFU1BPTlNFX01FU1NBR0VTOgorICAgICAgICAgICAgbWVzc2FnZSA9IF9IVFRQX0JBRF9SRVNQ
T05TRV9NRVNTQUdFU1tzdGF0dXNdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoJ1Jlc3BvbnNlIG1lc3NhZ2UgZm9yICVkIGlzIG5vdCBmb3VuZCcgJSBzdGF0
dXMpCisgICAgICAgICAgICBtZXNzYWdlID0gJz8/PycKKworICAgICAgICByZXNwb25zZSA9ICdI
VFRQLzEuMSAlZCAlc1xyXG5cclxuJyAlIChzdGF0dXMsIG1lc3NhZ2UpCisgICAgICAgIGZyYW1l
X2RhdGEgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3Jlc3BvbnNlKGNoYW5uZWxfaWQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kZWRfaGFuZHNo
YWtlPXJlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBlbmNvZGluZz0wLCByZWplY3RlZD1UcnVlKQorICAgICAgICBzZWxmLnNlbmRfY29u
dHJvbF9kYXRhKGZyYW1lX2RhdGEpCisKKyAgICBkZWYgX2NyZWF0ZV9sb2dpY2FsX3JlcXVlc3Qo
c2VsZiwgYmxvY2spOgorICAgICAgICBpZiBibG9jay5jaGFubmVsX2lkID09IF9DT05UUk9MX0NI
QU5ORUxfSUQ6CisgICAgICAgICAgICAjIFRPRE8oYmFzaGkpOiBSYWlzZSBQaHlzaWNhbENvbm5l
Y3Rpb25FcnJvciB3aXRoIGNvZGUgMjAwNgorICAgICAgICAgICAgIyBpbnN0ZWFkIG9mIE11eFVu
ZXhwZWN0ZWRFeGNlcHRpb24uCisgICAgICAgICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhjZXB0
aW9uKAorICAgICAgICAgICAgICAgICdSZWNlaXZlZCB0aGUgY29udHJvbCBjaGFubmVsIGlkICgw
KSBhcyBvYmplY3RpdmUgY2hhbm5lbCAnCisgICAgICAgICAgICAgICAgJ2lkIGZvciBBZGRDaGFu
bmVsJykKKworICAgICAgICBpZiBibG9jay5lbmNvZGluZyA+IF9IQU5EU0hBS0VfRU5DT0RJTkdf
REVMVEE6CisgICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKKyAgICAg
ICAgICAgICAgICBfRFJPUF9DT0RFX1VOS05PV05fUkVRVUVTVF9FTkNPRElORykKKworICAgICAg
ICBtZXRob2QsIHBhdGgsIHZlcnNpb24sIGhlYWRlcnMgPSBfcGFyc2VfcmVxdWVzdF90ZXh0KAor
ICAgICAgICAgICAgYmxvY2suZW5jb2RlZF9oYW5kc2hha2UpCisgICAgICAgIGlmIGJsb2NrLmVu
Y29kaW5nID09IF9IQU5EU0hBS0VfRU5DT0RJTkdfREVMVEE6CisgICAgICAgICAgICBoZWFkZXJz
ID0gc2VsZi5faGFuZHNoYWtlX2Jhc2UuY3JlYXRlX2hlYWRlcnMoaGVhZGVycykKKworICAgICAg
ICBjb25uZWN0aW9uID0gX0xvZ2ljYWxDb25uZWN0aW9uKHNlbGYsIGJsb2NrLmNoYW5uZWxfaWQp
CisgICAgICAgIHJlcXVlc3QgPSBfTG9naWNhbFJlcXVlc3QoYmxvY2suY2hhbm5lbF9pZCwgbWV0
aG9kLCBwYXRoLCB2ZXJzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhl
YWRlcnMsIGNvbm5lY3Rpb24pCisgICAgICAgIHJldHVybiByZXF1ZXN0CisKKyAgICBkZWYgX2Rv
X2hhbmRzaGFrZV9mb3JfbG9naWNhbF9yZXF1ZXN0KHNlbGYsIHJlcXVlc3QsIHNlbmRfcXVvdGE9
MCk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJlY2VpdmVfcXVvdGEgPSBzZWxmLl9jaGFu
bmVsX3Nsb3RzLnBvcGxlZnQoKQorICAgICAgICBleGNlcHQgSW5kZXhFcnJvcjoKKyAgICAgICAg
ICAgIHJhaXNlIExvZ2ljYWxDaGFubmVsRXJyb3IoCisgICAgICAgICAgICAgICAgcmVxdWVzdC5j
aGFubmVsX2lkLCBfRFJPUF9DT0RFX05FV19DSEFOTkVMX1NMT1RfVklPTEFUSU9OKQorCisgICAg
ICAgIGhhbmRzaGFrZXIgPSBfTXV4SGFuZHNoYWtlcihyZXF1ZXN0LCBzZWxmLmRpc3BhdGNoZXIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW5kX3F1b3RhLCByZWNlaXZl
X3F1b3RhKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFr
ZSgpCisgICAgICAgIGV4Y2VwdCBoYW5kc2hha2UuVmVyc2lvbkV4Y2VwdGlvbiwgZToKKyAgICAg
ICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCclcycsIGUpCisgICAgICAgICAgICBzZWxmLl9zZW5k
X2Vycm9yX2FkZF9jaGFubmVsX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIHJlcXVlc3QuY2hh
bm5lbF9pZCwgc3RhdHVzPWNvbW1vbi5IVFRQX1NUQVRVU19CQURfUkVRVUVTVCkKKyAgICAgICAg
ICAgIHJldHVybiBGYWxzZQorICAgICAgICBleGNlcHQgaGFuZHNoYWtlLkhhbmRzaGFrZUV4Y2Vw
dGlvbiwgZToKKyAgICAgICAgICAgICMgVE9ETyhiYXNoaSk6IFNob3VsZCB3ZSBfRmFpbCB0aGUg
TG9naWNhbCBDaGFubmVsXyB3aXRoIDMwMDEKKyAgICAgICAgICAgICMgaW5zdGVhZD8KKyAgICAg
ICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCclcycsIGUpCisgICAgICAgICAgICBzZWxmLl9zZW5k
X2Vycm9yX2FkZF9jaGFubmVsX3Jlc3BvbnNlKHJlcXVlc3QuY2hhbm5lbF9pZCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzPWUuc3RhdHVz
KQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGV4Y2VwdCBoYW5kc2hha2UuQWJv
cnRlZEJ5VXNlckV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCcl
cycsIGUpCisgICAgICAgICAgICBzZWxmLl9zZW5kX2Vycm9yX2FkZF9jaGFubmVsX3Jlc3BvbnNl
KHJlcXVlc3QuY2hhbm5lbF9pZCkKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAg
IHJldHVybiBUcnVlCisKKyAgICBkZWYgX2FkZF9sb2dpY2FsX2NoYW5uZWwoc2VsZiwgbG9naWNh
bF9yZXF1ZXN0KToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFu
bmVsc19jb25kaXRpb24uYWNxdWlyZSgpCisgICAgICAgICAgICBpZiBsb2dpY2FsX3JlcXVlc3Qu
Y2hhbm5lbF9pZCBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgorICAgICAgICAgICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygnQ2hhbm5lbCBpZCAlZCBhbHJlYWR5IGV4aXN0cycgJQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dpY2FsX3JlcXVlc3QuY2hhbm5lbF9pZCkK
KyAgICAgICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKKyAgICAgICAg
ICAgICAgICAgICAgX0RST1BfQ09ERV9DSEFOTkVMX0FMUkVBRFlfRVhJU1RTLAorICAgICAgICAg
ICAgICAgICAgICAnQ2hhbm5lbCBpZCAlZCBhbHJlYWR5IGV4aXN0cycgJQorICAgICAgICAgICAg
ICAgICAgICBsb2dpY2FsX3JlcXVlc3QuY2hhbm5lbF9pZCkKKyAgICAgICAgICAgIHdvcmtlciA9
IF9Xb3JrZXIoc2VsZiwgbG9naWNhbF9yZXF1ZXN0KQorICAgICAgICAgICAgY2hhbm5lbF9kYXRh
ID0gX0xvZ2ljYWxDaGFubmVsRGF0YShsb2dpY2FsX3JlcXVlc3QsIHdvcmtlcikKKyAgICAgICAg
ICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbbG9naWNhbF9yZXF1ZXN0LmNoYW5uZWxfaWRdID0g
Y2hhbm5lbF9kYXRhCisgICAgICAgICAgICB3b3JrZXIuc3RhcnQoKQorICAgICAgICBmaW5hbGx5
OgorICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgp
CisKKyAgICBkZWYgX3Byb2Nlc3NfYWRkX2NoYW5uZWxfcmVxdWVzdChzZWxmLCBibG9jayk6Cisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIGxvZ2ljYWxfcmVxdWVzdCA9IHNlbGYuX2NyZWF0ZV9s
b2dpY2FsX3JlcXVlc3QoYmxvY2spCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgorICAg
ICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdGYWlsZWQgdG8gY3JlYXRlIGxvZ2ljYWwgcmVx
dWVzdDogJXInICUgZSkKKyAgICAgICAgICAgIHNlbGYuX3NlbmRfZXJyb3JfYWRkX2NoYW5uZWxf
cmVzcG9uc2UoCisgICAgICAgICAgICAgICAgYmxvY2suY2hhbm5lbF9pZCwgc3RhdHVzPWNvbW1v
bi5IVFRQX1NUQVRVU19CQURfUkVRVUVTVCkKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBp
ZiBzZWxmLl9kb19oYW5kc2hha2VfZm9yX2xvZ2ljYWxfcmVxdWVzdChsb2dpY2FsX3JlcXVlc3Qp
OgorICAgICAgICAgICAgaWYgYmxvY2suZW5jb2RpbmcgPT0gX0hBTkRTSEFLRV9FTkNPRElOR19J
REVOVElUWToKKyAgICAgICAgICAgICAgICAjIFVwZGF0ZSBoYW5kc2hha2UgYmFzZS4KKyAgICAg
ICAgICAgICAgICAjIFRPRE8oYmFzaGkpOiBNYWtlIHN1cmUgdGhpcyBpcyB0aGUgcmlnaHQgcGxh
Y2UgdG8gdXBkYXRlCisgICAgICAgICAgICAgICAgIyBoYW5kc2hha2UgYmFzZS4KKyAgICAgICAg
ICAgICAgICBzZWxmLl9oYW5kc2hha2VfYmFzZSA9IF9IYW5kc2hha2VEZWx0YUJhc2UoCisgICAg
ICAgICAgICAgICAgICAgIGxvZ2ljYWxfcmVxdWVzdC5oZWFkZXJzX2luKQorICAgICAgICAgICAg
c2VsZi5fYWRkX2xvZ2ljYWxfY2hhbm5lbChsb2dpY2FsX3JlcXVlc3QpCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBzZWxmLl9zZW5kX2Vycm9yX2FkZF9jaGFubmVsX3Jlc3BvbnNlKAorICAg
ICAgICAgICAgICAgIGJsb2NrLmNoYW5uZWxfaWQsIHN0YXR1cz1jb21tb24uSFRUUF9TVEFUVVNf
QkFEX1JFUVVFU1QpCisKKyAgICBkZWYgX3Byb2Nlc3NfZmxvd19jb250cm9sKHNlbGYsIGJsb2Nr
KToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25k
aXRpb24uYWNxdWlyZSgpCisgICAgICAgICAgICBpZiBub3QgYmxvY2suY2hhbm5lbF9pZCBpbiBz
ZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgorICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAg
ICAgY2hhbm5lbF9kYXRhID0gc2VsZi5fbG9naWNhbF9jaGFubmVsc1tibG9jay5jaGFubmVsX2lk
XQorICAgICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVlc3Qud3Nfc3RyZWFtLnJlcGxlbmlzaF9z
ZW5kX3F1b3RhKAorICAgICAgICAgICAgICAgIGJsb2NrLnNlbmRfcXVvdGEpCisgICAgICAgIGZp
bmFsbHk6CisgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxl
YXNlKCkKKworICAgIGRlZiBfcHJvY2Vzc19kcm9wX2NoYW5uZWwoc2VsZiwgYmxvY2spOgorICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAnRHJvcENoYW5uZWwgcmVjZWl2
ZWQgZm9yICVkOiBjb2RlPSVyLCByZWFzb249JXInICUKKyAgICAgICAgICAgIChibG9jay5jaGFu
bmVsX2lkLCBibG9jay5kcm9wX2NvZGUsIGJsb2NrLmRyb3BfbWVzc2FnZSkpCisgICAgICAgIHRy
eToKKyAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUo
KQorICAgICAgICAgICAgaWYgbm90IGJsb2NrLmNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9j
aGFubmVsczoKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIGNoYW5uZWxfZGF0
YSA9IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbYmxvY2suY2hhbm5lbF9pZF0KKyAgICAgICAgICAg
IGNoYW5uZWxfZGF0YS5kcm9wX2NvZGUgPSBfRFJPUF9DT0RFX0FDS05PV0xFREdFRAorCisgICAg
ICAgICAgICAjIENsb3NlIHRoZSBsb2dpY2FsIGNoYW5uZWwKKyAgICAgICAgICAgIGNoYW5uZWxf
ZGF0YS5yZXF1ZXN0LmNvbm5lY3Rpb24uc2V0X3JlYWRfc3RhdGUoCisgICAgICAgICAgICAgICAg
X0xvZ2ljYWxDb25uZWN0aW9uLlNUQVRFX1RFUk1JTkFURUQpCisgICAgICAgICAgICBjaGFubmVs
X2RhdGEucmVxdWVzdC53c19zdHJlYW0uc3RvcF9zZW5kaW5nKCkKKyAgICAgICAgZmluYWxseToK
KyAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQor
CisgICAgZGVmIF9wcm9jZXNzX2NvbnRyb2xfYmxvY2tzKHNlbGYsIHBhcnNlcik6CisgICAgICAg
IGZvciBjb250cm9sX2Jsb2NrIGluIHBhcnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCk6CisgICAg
ICAgICAgICBvcGNvZGUgPSBjb250cm9sX2Jsb2NrLm9wY29kZQorICAgICAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKCdjb250cm9sIGJsb2NrIHJlY2VpdmVkLCBvcGNvZGU6ICVkJyAlIG9wY29k
ZSkKKyAgICAgICAgICAgIGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFV
RVNUOgorICAgICAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfYWRkX2NoYW5uZWxfcmVxdWVzdChj
b250cm9sX2Jsb2NrKQorICAgICAgICAgICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfQURE
X0NIQU5ORUxfUkVTUE9OU0U6CisgICAgICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0
aW9uRXJyb3IoCisgICAgICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09O
VFJPTF9CTE9DSywKKyAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIEFkZENoYW5uZWxSZXNw
b25zZScpCisgICAgICAgICAgICBlbGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9GTE9XX0NPTlRS
T0w6CisgICAgICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc19mbG93X2NvbnRyb2woY29udHJvbF9i
bG9jaykKKyAgICAgICAgICAgIGVsaWYgb3Bjb2RlID09IF9NVVhfT1BDT0RFX0RST1BfQ0hBTk5F
TDoKKyAgICAgICAgICAgICAgICBzZWxmLl9wcm9jZXNzX2Ryb3BfY2hhbm5lbChjb250cm9sX2Js
b2NrKQorICAgICAgICAgICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfTkVXX0NIQU5ORUxf
U0xPVDoKKyAgICAgICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKKyAg
ICAgICAgICAgICAgICAgICAgX0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLLAor
ICAgICAgICAgICAgICAgICAgICAnUmVjZWl2ZWQgTmV3Q2hhbm5lbFNsb3QnKQorICAgICAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uKAor
ICAgICAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBvcGNvZGUgJXInICUgb3Bjb2RlKQorCisg
ICAgZGVmIF9wcm9jZXNzX2xvZ2ljYWxfZnJhbWUoc2VsZiwgY2hhbm5lbF9pZCwgcGFyc2VyKToK
KyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZWNlaXZlZCBhIGZyYW1lLiBjaGFubmVsIGlk
PSVkJyAlIGNoYW5uZWxfaWQpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuX2xvZ2lj
YWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQorICAgICAgICAgICAgaWYgbm90IGNoYW5u
ZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVsczoKKyAgICAgICAgICAgICAgICAjIFdlIG11
c3QgaWdub3JlIHRoZSBtZXNzYWdlIGZvciBhbiBpbmFjdGl2ZSBjaGFubmVsLgorICAgICAgICAg
ICAgICAgIHJldHVybgorICAgICAgICAgICAgY2hhbm5lbF9kYXRhID0gc2VsZi5fbG9naWNhbF9j
aGFubmVsc1tjaGFubmVsX2lkXQorICAgICAgICAgICAgZmluLCByc3YxLCByc3YyLCByc3YzLCBv
cGNvZGUsIHBheWxvYWQgPSBwYXJzZXIucmVhZF9pbm5lcl9mcmFtZSgpCisgICAgICAgICAgICBj
b25zdW1pbmdfYnl0ZSA9IGxlbihwYXlsb2FkKQorICAgICAgICAgICAgaWYgb3Bjb2RlICE9IGNv
bW1vbi5PUENPREVfQ09OVElOVUFUSU9OOgorICAgICAgICAgICAgICAgIGNvbnN1bWluZ19ieXRl
ICs9IDEKKyAgICAgICAgICAgIGlmIG5vdCBjaGFubmVsX2RhdGEucmVxdWVzdC53c19zdHJlYW0u
Y29uc3VtZV9yZWNlaXZlX3F1b3RhKAorICAgICAgICAgICAgICAgIGNvbnN1bWluZ19ieXRlKToK
KyAgICAgICAgICAgICAgICAjIFRoZSBjbGllbnQgdmlvbGF0ZXMgcXVvdGEuIENsb3NlIGxvZ2lj
YWwgY2hhbm5lbC4KKyAgICAgICAgICAgICAgICByYWlzZSBMb2dpY2FsQ2hhbm5lbEVycm9yKAor
ICAgICAgICAgICAgICAgICAgICBjaGFubmVsX2lkLCBfRFJPUF9DT0RFX1NFTkRfUVVPVEFfVklP
TEFUSU9OKQorICAgICAgICAgICAgaGVhZGVyID0gY3JlYXRlX2hlYWRlcihvcGNvZGUsIGxlbihw
YXlsb2FkKSwgZmluLCByc3YxLCByc3YyLCByc3YzLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtYXNrPUZhbHNlKQorICAgICAgICAgICAgZnJhbWVfZGF0YSA9IGhlYWRlciAr
IHBheWxvYWQKKyAgICAgICAgICAgIGNoYW5uZWxfZGF0YS5yZXF1ZXN0LmNvbm5lY3Rpb24uYXBw
ZW5kX2ZyYW1lX2RhdGEoZnJhbWVfZGF0YSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAg
IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQorCisgICAgZGVmIGRp
c3BhdGNoX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSk6CisgICAgICAgICIiIkRpc3BhdGNoZXMgbWVz
c2FnZS4gVGhlIHJlYWRlciB0aHJlYWQgY2FsbHMgdGhpcyBtZXRob2QuCisKKyAgICAgICAgQXJn
czoKKyAgICAgICAgICAgIG1lc3NhZ2U6IGEgbWVzc2FnZSB0aGF0IGNvbnRhaW5zIGVuY2Fwc3Vs
YXRlZCBmcmFtZS4KKyAgICAgICAgUmFpc2VzOgorICAgICAgICAgICAgUGh5c2ljYWxDb25uZWN0
aW9uRXJyb3I6IGlmIHRoZSBtZXNzYWdlIGNvbnRhaW5zIHBoeXNpY2FsCisgICAgICAgICAgICAg
ICAgY29ubmVjdGlvbiBsZXZlbCBlcnJvcnMuCisgICAgICAgICAgICBMb2dpY2FsQ2hhbm5lbEVy
cm9yOiBpZiB0aGUgbWVzc2FnZSBjb250YWlucyBsb2dpY2FsIGNoYW5uZWwKKyAgICAgICAgICAg
ICAgICBsZXZlbCBlcnJvcnMuCisgICAgICAgICIiIgorCisgICAgICAgIHBhcnNlciA9IF9NdXhG
cmFtZVBheWxvYWRQYXJzZXIobWVzc2FnZSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgY2hh
bm5lbF9pZCA9IHBhcnNlci5yZWFkX2NoYW5uZWxfaWQoKQorICAgICAgICBleGNlcHQgVmFsdWVF
cnJvciwgZToKKyAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKF9EUk9Q
X0NPREVfQ0hBTk5FTF9JRF9UUlVOQ0FURUQpCisgICAgICAgIGlmIGNoYW5uZWxfaWQgPT0gX0NP
TlRST0xfQ0hBTk5FTF9JRDoKKyAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfY29udHJvbF9ibG9j
a3MocGFyc2VyKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc19sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQsIHBhcnNlcikKKworICAgIGRlZiBub3RpZnlfd29ya2VyX2Rv
bmUoc2VsZiwgY2hhbm5lbF9pZCk6CisgICAgICAgICIiIkNhbGxlZCB3aGVuIGEgd29ya2VyIGhh
cyBmaW5pc2hlZC4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgY2hhbm5lbF9pZDogY2hh
bm5lbCBpZCBjb3JyZXNwb25kZWQgd2l0aCB0aGUgd29ya2VyLgorICAgICAgICAiIiIKKworICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1dvcmtlciBmb3IgY2hhbm5lbCBpZCAlZCB0ZXJtaW5h
dGVkJyAlIGNoYW5uZWxfaWQpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuX2xvZ2lj
YWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQorICAgICAgICAgICAgaWYgbm90IGNoYW5u
ZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVsczoKKyAgICAgICAgICAgICAgICByYWlzZSBN
dXhVbmV4cGVjdGVkRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAnQ2hhbm5lbCBpZCAl
ZCBub3QgZm91bmQnICUgY2hhbm5lbF9pZCkKKyAgICAgICAgICAgIGNoYW5uZWxfZGF0YSA9IHNl
bGYuX2xvZ2ljYWxfY2hhbm5lbHMucG9wKGNoYW5uZWxfaWQpCisgICAgICAgIGZpbmFsbHk6Cisg
ICAgICAgICAgICBzZWxmLl93b3JrZXJfZG9uZV9ub3RpZnlfcmVjZWl2ZWQgPSBUcnVlCisgICAg
ICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5ub3RpZnkoKQorICAgICAg
ICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCisKKyAgICAg
ICAgaWYgbm90IGNoYW5uZWxfZGF0YS5yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgorICAgICAg
ICAgICAgc2VsZi5fc2VuZF9kcm9wX2NoYW5uZWwoCisgICAgICAgICAgICAgICAgY2hhbm5lbF9p
ZCwgY29kZT1jaGFubmVsX2RhdGEuZHJvcF9jb2RlLAorICAgICAgICAgICAgICAgIG1lc3NhZ2U9
Y2hhbm5lbF9kYXRhLmRyb3BfbWVzc2FnZSkKKworICAgIGRlZiBub3RpZnlfcmVhZGVyX2RvbmUo
c2VsZik6CisgICAgICAgICIiIlRoaXMgbWV0aG9kIGlzIGNhbGxlZCBieSB0aGUgcmVhZGVyIHRo
cmVhZCB3aGVuIHRoZSByZWFkZXIgaGFzCisgICAgICAgIGZpbmlzaGVkLgorICAgICAgICAiIiIK
KworICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAnVGVybWlhdGluZyBh
bGwgbG9naWNhbCBjb25uZWN0aW9ucyB3YWl0aW5nIGZvciBpbmNvbWluZyBkYXRhICcKKyAgICAg
ICAgICAgICcuLi4nKQorICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5h
Y3F1aXJlKCkKKyAgICAgICAgZm9yIGNoYW5uZWxfZGF0YSBpbiBzZWxmLl9sb2dpY2FsX2NoYW5u
ZWxzLnZhbHVlcygpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGNoYW5uZWxf
ZGF0YS5yZXF1ZXN0LmNvbm5lY3Rpb24uc2V0X3JlYWRfc3RhdGUoCisgICAgICAgICAgICAgICAg
ICAgIF9Mb2dpY2FsQ29ubmVjdGlvbi5TVEFURV9URVJNSU5BVEVEKQorICAgICAgICAgICAgZXhj
ZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcodHJhY2Vi
YWNrLmZvcm1hdF9leGMoKSkKKyAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRp
b24ucmVsZWFzZSgpCisKKyAgICBkZWYgbm90aWZ5X3dyaXRlcl9kb25lKHNlbGYpOgorICAgICAg
ICAiIiJUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkgdGhlIHdyaXRlciB0aHJlYWQgd2hlbiB0aGUg
d3JpdGVyIGhhcworICAgICAgICBmaW5pc2hlZC4KKyAgICAgICAgIiIiCisKKyAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKAorICAgICAgICAgICAgJ1Rlcm1pYXRpbmcgYWxsIGxvZ2ljYWwgY29u
bmVjdGlvbnMgd2FpdGluZyBmb3Igd3JpdGUgJworICAgICAgICAgICAgJ2NvbXBsZXRpb24gLi4u
JykKKyAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCisg
ICAgICAgIGZvciBjaGFubmVsX2RhdGEgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVscy52YWx1ZXMo
KToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBjaGFubmVsX2RhdGEucmVxdWVz
dC5jb25uZWN0aW9uLm9uX3dyaXRlcl9kb25lKCkKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRp
b246CisgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKHRyYWNlYmFjay5mb3JtYXRf
ZXhjKCkpCisgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2Uo
KQorCisgICAgZGVmIGZhaWxfcGh5c2ljYWxfY29ubmVjdGlvbihzZWxmLCBjb2RlLCBtZXNzYWdl
KToKKyAgICAgICAgIiIiRmFpbCB0aGUgcGh5c2ljYWwgY29ubmVjdGlvbi4KKworICAgICAgICBB
cmdzOgorICAgICAgICAgICAgY29kZTogZHJvcCByZWFzb24gY29kZS4KKyAgICAgICAgICAgIG1l
c3NhZ2U6IGRyb3AgbWVzc2FnZS4KKyAgICAgICAgIiIiCisKKyAgICAgICAgc2VsZi5fbG9nZ2Vy
LmRlYnVnKCdGYWlsaW5nIHRoZSBwaHlzaWNhbCBjb25uZWN0aW9uLi4uJykKKyAgICAgICAgc2Vs
Zi5fc2VuZF9kcm9wX2NoYW5uZWwoX0NPTlRST0xfQ0hBTk5FTF9JRCwgY29kZSwgbWVzc2FnZSkK
KyAgICAgICAgc2VsZi5fd3JpdGVyLnN0b3AoY29tbW9uLlNUQVRVU19JTlRFUk5BTF9FTkRQT0lO
VF9FUlJPUikKKworICAgIGRlZiBmYWlsX2xvZ2ljYWxfY2hhbm5lbChzZWxmLCBjaGFubmVsX2lk
LCBjb2RlLCBtZXNzYWdlKToKKyAgICAgICAgIiIiRmFpbCBhIGxvZ2ljYWwgY2hhbm5lbC4KKwor
ICAgICAgICBBcmdzOgorICAgICAgICAgICAgY2hhbm5lbF9pZDogY2hhbm5lbCBpZC4KKyAgICAg
ICAgICAgIGNvZGU6IGRyb3AgcmVhc29uIGNvZGUuCisgICAgICAgICAgICBtZXNzYWdlOiBkcm9w
IG1lc3NhZ2UuCisgICAgICAgICIiIgorCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnRmFp
bGluZyBsb2dpY2FsIGNoYW5uZWwgJWQuLi4nICUgY2hhbm5lbF9pZCkKKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCisg
ICAgICAgICAgICBpZiBjaGFubmVsX2lkIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6CisgICAg
ICAgICAgICAgICAgY2hhbm5lbF9kYXRhID0gc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVs
X2lkXQorICAgICAgICAgICAgICAgICMgQ2xvc2UgdGhlIGxvZ2ljYWwgY2hhbm5lbC4gbm90aWZ5
X3dvcmtlcl9kb25lKCkgd2lsbCBiZQorICAgICAgICAgICAgICAgICMgY2FsbGVkIGxhdGVyIGFu
ZCBpdCB3aWxsIHNlbmQgRHJvcENoYW5uZWwuCisgICAgICAgICAgICAgICAgY2hhbm5lbF9kYXRh
LmRyb3BfY29kZSA9IGNvZGUKKyAgICAgICAgICAgICAgICBjaGFubmVsX2RhdGEuZHJvcF9tZXNz
YWdlID0gbWVzc2FnZQorCisgICAgICAgICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVlc3QuY29u
bmVjdGlvbi5zZXRfcmVhZF9zdGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgX0xvZ2ljYWxDb25u
ZWN0aW9uLlNUQVRFX1RFUk1JTkFURUQpCisgICAgICAgICAgICAgICAgY2hhbm5lbF9kYXRhLnJl
cXVlc3Qud3Nfc3RyZWFtLnN0b3Bfc2VuZGluZygpCisgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgIHNlbGYuX3NlbmRfZHJvcF9jaGFubmVsKGNoYW5uZWxfaWQsIGNvZGUsIG1lc3Nh
Z2UpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxz
X2NvbmRpdGlvbi5yZWxlYXNlKCkKKworCitkZWYgdXNlX211eChyZXF1ZXN0KToKKyAgICByZXR1
cm4gaGFzYXR0cihyZXF1ZXN0LCAnbXV4X3Byb2Nlc3NvcicpIGFuZCAoCisgICAgICAgIHJlcXVl
c3QubXV4X3Byb2Nlc3Nvci5pc19hY3RpdmUoKSkKKworCitkZWYgc3RhcnQocmVxdWVzdCwgZGlz
cGF0Y2hlcik6CisgICAgbXV4X2hhbmRsZXIgPSBfTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRj
aGVyKQorICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKKworICAgIG11eF9oYW5kbGVyLmFkZF9jaGFu
bmVsX3Nsb3RzKF9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCisKKyAgICBt
dXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUoKQorCisKKyMgdmk6c3RzPTQgc3c9NCBldApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5
d2Vic29ja2V0L3N0YW5kYWxvbmUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjMyMDBlMjM1YzcyOGJlNTQ5OTY4
ZmQ4NjJkMjliNDkzZGJhMjdkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29j
a2V0L3N0YW5kYWxvbmUucHkKQEAgLTAsMCArMSwxMjA4IEBACisjIS91c3IvYmluL2VudiBweXRo
b24KKyMKKyMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmli
dXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKKyIiIlN0YW5kYWxvbmUgV2ViU29ja2V0IHNlcnZl
ci4KKworVXNlIHRoaXMgZmlsZSB0byBsYXVuY2ggcHl3ZWJzb2NrZXQgd2l0aG91dCBBcGFjaGUg
SFRUUCBTZXJ2ZXIuCisKKworQkFTSUMgVVNBR0UKKz09PT09PT09PT09CisKK0dvIHRvIHRoZSBz
cmMgZGlyZWN0b3J5IGFuZCBydW4KKworICAkIHB5dGhvbiBtb2RfcHl3ZWJzb2NrZXQvc3RhbmRh
bG9uZS5weSBbLXAgPHdzX3BvcnQ+XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbLXcgPHdlYnNvY2tfaGFuZGxlcnM+XQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbLWQgPGRvY3VtZW50X3Jvb3Q+XQorCis8d3NfcG9ydD4gaXMgdGhl
IHBvcnQgbnVtYmVyIHRvIHVzZSBmb3Igd3M6Ly8gY29ubmVjdGlvbi4KKworPGRvY3VtZW50X3Jv
b3Q+IGlzIHRoZSBwYXRoIHRvIHRoZSByb290IGRpcmVjdG9yeSBvZiBIVE1MIGZpbGVzLgorCis8
d2Vic29ja19oYW5kbGVycz4gaXMgdGhlIHBhdGggdG8gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIFdl
YlNvY2tldCBoYW5kbGVycy4KK0lmIG5vdCBzcGVjaWZpZWQsIDxkb2N1bWVudF9yb290PiB3aWxs
IGJlIHVzZWQuIFNlZSBfX2luaXRfXy5weSAob3IKK3J1biAkIHB5ZG9jIG1vZF9weXdlYnNvY2tl
dCkgZm9yIGhvdyB0byB3cml0ZSBXZWJTb2NrZXQgaGFuZGxlcnMuCisKK0ZvciBtb3JlIGRldGFp
bCBhbmQgb3RoZXIgb3B0aW9ucywgcnVuCisKKyAgJCBweXRob24gbW9kX3B5d2Vic29ja2V0L3N0
YW5kYWxvbmUucHkgLS1oZWxwCisKK29yIHNlZSBfYnVpbGRfb3B0aW9uX3BhcnNlciBtZXRob2Qg
YmVsb3cuCisKK0ZvciB0cm91YmxlIHNob290aW5nLCBhZGRpbmcgIi0tbG9nX2xldmVsIGRlYnVn
IiBtaWdodCBoZWxwIHlvdS4KKworCitUUlkgREVNTworPT09PT09PT0KKworR28gdG8gdGhlIHNy
YyBkaXJlY3RvcnkgYW5kIHJ1biBzdGFuZGFsb25lLnB5IHdpdGggLWQgb3B0aW9uIHRvIHNldCB0
aGUKK2RvY3VtZW50IHJvb3QgdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIGV4YW1wbGUgSFRN
THMgYW5kIGhhbmRsZXJzIGxpa2UgdGhpczoKKworICAkIGNkIHNyYworICAkIFBZVEhPTlBBVEg9
LiBweXRob24gbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkgLWQgZXhhbXBsZQorCit0byBs
YXVuY2ggcHl3ZWJzb2NrZXQgd2l0aCB0aGUgc2FtcGxlIGhhbmRsZXIgYW5kIGh0bWwgb24gcG9y
dCA4MC4gT3BlbgoraHR0cDovL2xvY2FsaG9zdC9jb25zb2xlLmh0bWwsIGNsaWNrIHRoZSBjb25u
ZWN0IGJ1dHRvbiwgdHlwZSBzb21ldGhpbmcgaW50bwordGhlIHRleHQgYm94IG5leHQgdG8gdGhl
IHNlbmQgYnV0dG9uIGFuZCBjbGljayB0aGUgc2VuZCBidXR0b24uIElmIGV2ZXJ5dGhpbmcKK2lz
IHdvcmtpbmcsIHlvdSdsbCBzZWUgdGhlIG1lc3NhZ2UgeW91IHR5cGVkIGVjaG9lZCBieSB0aGUg
c2VydmVyLgorCisKK1VTSU5HIFRMUworPT09PT09PT09CisKK1RvIHJ1biB0aGUgc3RhbmRhbG9u
ZSBzZXJ2ZXIgd2l0aCBUTFMgc3VwcG9ydCwgcnVuIGl0IHdpdGggLXQsIC1rLCBhbmQgLWMKK29w
dGlvbnMuIFdoZW4gVExTIGlzIGVuYWJsZWQsIHRoZSBzdGFuZGFsb25lIHNlcnZlciBhY2NlcHRz
IG9ubHkgVExTIGNvbm5lY3Rpb24uCisKK05vdGUgdGhhdCB3aGVuIHNzbCBtb2R1bGUgaXMgdXNl
ZCBhbmQgdGhlIGtleS9jZXJ0IGxvY2F0aW9uIGlzIGluY29ycmVjdCwKK1RMUyBjb25uZWN0aW9u
IHNpbGVudGx5IGZhaWxzIHdoaWxlIHB5T3BlblNTTCBmYWlscyBvbiBzdGFydHVwLgorCitFeGFt
cGxlOgorCisgICQgUFlUSE9OUEFUSD0uIHB5dGhvbiBtb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9u
ZS5weSBcCisgICAgICAgIC1kIGV4YW1wbGUgXAorICAgICAgICAtcCAxMDQ0MyBcCisgICAgICAg
IC10IFwKKyAgICAgICAgLWMgLi4vdGVzdC9jZXJ0L2NlcnQucGVtIFwKKyAgICAgICAgLWsgLi4v
dGVzdC9jZXJ0L2tleS5wZW0gXAorCitOb3RlIHRoYXQgd2hlbiBwYXNzaW5nIGEgcmVsYXRpdmUg
cGF0aCB0byAtYyBhbmQgLWsgb3B0aW9uLCBpdCB3aWxsIGJlIHJlc29sdmVkCit1c2luZyB0aGUg
ZG9jdW1lbnQgcm9vdCBkaXJlY3RvcnkgYXMgdGhlIGJhc2UuCisKKworVVNJTkcgQ0xJRU5UIEFV
VEhFTlRJQ0FUSU9OCis9PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVG8gcnVuIHRoZSBz
dGFuZGFsb25lIHNlcnZlciB3aXRoIFRMUyBjbGllbnQgYXV0aGVudGljYXRpb24gc3VwcG9ydCwg
cnVuIGl0IHdpdGgKKy0tdGxzLWNsaWVudC1hdXRoIGFuZCAtLXRscy1jbGllbnQtY2Egb3B0aW9u
cyBpbiBhZGRpdGlvbiB0byBvbmVzIHJlcXVpcmVkIGZvcgorVExTIHN1cHBvcnQuCisKK0V4YW1w
bGU6CisKKyAgJCBQWVRIT05QQVRIPS4gcHl0aG9uIG1vZF9weXdlYnNvY2tldC9zdGFuZGFsb25l
LnB5IC1kIGV4YW1wbGUgLXAgMTA0NDMgLXQgXAorICAgICAgICAtYyAuLi90ZXN0L2NlcnQvY2Vy
dC5wZW0gLWsgLi4vdGVzdC9jZXJ0L2tleS5wZW0gXAorICAgICAgICAtLXRscy1jbGllbnQtYXV0
aCBcCisgICAgICAgIC0tdGxzLWNsaWVudC1jYT0uLi90ZXN0L2NlcnQvY2FjZXJ0LnBlbQorCitO
b3RlIHRoYXQgd2hlbiBwYXNzaW5nIGEgcmVsYXRpdmUgcGF0aCB0byAtLXRscy1jbGllbnQtY2Eg
b3B0aW9uLCBpdCB3aWxsIGJlCityZXNvbHZlZCB1c2luZyB0aGUgZG9jdW1lbnQgcm9vdCBkaXJl
Y3RvcnkgYXMgdGhlIGJhc2UuCisKKworQ09ORklHVVJBVElPTiBGSUxFCis9PT09PT09PT09PT09
PT09PT0KKworWW91IGNhbiBhbHNvIHdyaXRlIGEgY29uZmlndXJhdGlvbiBmaWxlIGFuZCB1c2Ug
aXQgYnkgc3BlY2lmeWluZyB0aGUgcGF0aCB0bwordGhlIGNvbmZpZ3VyYXRpb24gZmlsZSBieSAt
LWNvbmZpZyBvcHRpb24uIFBsZWFzZSB3cml0ZSBhIGNvbmZpZ3VyYXRpb24gZmlsZQorZm9sbG93
aW5nIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBQeXRob24gQ29uZmlnUGFyc2VyIGxpYnJhcnku
IE5hbWUgb2YgZWFjaAorZW50cnkgbXVzdCBiZSB0aGUgbG9uZyB2ZXJzaW9uIGFyZ3VtZW50IG5h
bWUuIEUuZy4gdG8gc2V0IGxvZyBsZXZlbCB0byBkZWJ1ZywKK2FkZCB0aGUgZm9sbG93aW5nIGxp
bmU6CisKK2xvZ19sZXZlbD1kZWJ1ZworCitGb3Igb3B0aW9ucyB3aGljaCBkb2Vzbid0IHRha2Ug
dmFsdWUsIHBsZWFzZSBhZGQgc29tZSBmYWtlIHZhbHVlLiBFLmcuIGZvcgorLS10bHMgb3B0aW9u
LCBhZGQgdGhlIGZvbGxvd2luZyBsaW5lOgorCit0bHM9VHJ1ZQorCitOb3RlIHRoYXQgdGxzIHdp
bGwgYmUgZW5hYmxlZCBldmVuIGlmIHlvdSB3cml0ZSB0bHM9RmFsc2UgYXMgdGhlIHZhbHVlIHBh
cnQgaXMKK2Zha2UuCisKK1doZW4gYm90aCBhIGNvbW1hbmQgbGluZSBhcmd1bWVudCBhbmQgYSBj
b25maWd1cmF0aW9uIGZpbGUgZW50cnkgYXJlIHNldCBmb3IKK3RoZSBzYW1lIGNvbmZpZ3VyYXRp
b24gaXRlbSwgdGhlIGNvbW1hbmQgbGluZSB2YWx1ZSB3aWxsIG92ZXJyaWRlIG9uZSBpbiB0aGUK
K2NvbmZpZ3VyYXRpb24gZmlsZS4KKworCitUSFJFQURJTkcKKz09PT09PT09PQorCitUaGlzIHNl
cnZlciBpcyBkZXJpdmVkIGZyb20gU29ja2V0U2VydmVyLlRocmVhZGluZ01peEluLiBIZW5jZSBh
IHRocmVhZCBpcwordXNlZCBmb3IgZWFjaCByZXF1ZXN0LgorCisKK1NFQ1VSSVRZIFdBUk5JTkcK
Kz09PT09PT09PT09PT09PT0KKworVGhpcyB1c2VzIENHSUhUVFBTZXJ2ZXIgYW5kIENHSUhUVFBT
ZXJ2ZXIgaXMgbm90IHNlY3VyZS4KK0l0IG1heSBleGVjdXRlIGFyYml0cmFyeSBQeXRob24gY29k
ZSBvciBleHRlcm5hbCBwcm9ncmFtcy4gSXQgc2hvdWxkIG5vdCBiZQordXNlZCBvdXRzaWRlIGEg
ZmlyZXdhbGwuCisiIiIKKworaW1wb3J0IEJhc2VIVFRQU2VydmVyCitpbXBvcnQgQ0dJSFRUUFNl
cnZlcgoraW1wb3J0IFNpbXBsZUhUVFBTZXJ2ZXIKK2ltcG9ydCBTb2NrZXRTZXJ2ZXIKK2ltcG9y
dCBDb25maWdQYXJzZXIKK2ltcG9ydCBiYXNlNjQKK2ltcG9ydCBodHRwbGliCitpbXBvcnQgbG9n
Z2luZworaW1wb3J0IGxvZ2dpbmcuaGFuZGxlcnMKK2ltcG9ydCBvcHRwYXJzZQoraW1wb3J0IG9z
CitpbXBvcnQgcmUKK2ltcG9ydCBzZWxlY3QKK2ltcG9ydCBzb2NrZXQKK2ltcG9ydCBzeXMKK2lt
cG9ydCB0aHJlYWRpbmcKK2ltcG9ydCB0aW1lCitpbXBvcnQgdXJscGFyc2UKKworZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGRp
c3BhdGNoCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaGFuZHNoYWtlCitmcm9tIG1vZF9w
eXdlYnNvY2tldCBpbXBvcnQgaHR0cF9oZWFkZXJfdXRpbAorZnJvbSBtb2RfcHl3ZWJzb2NrZXQg
aW1wb3J0IG1lbW9yaXppbmdmaWxlCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAor
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQueGhyX2JlbmNobWFya19oYW5kbGVyIGltcG9ydCBYSFJCZW5j
aG1hcmtIYW5kbGVyCisKKworX0RFRkFVTFRfTE9HX01BWF9CWVRFUyA9IDEwMjQgKiAyNTYKK19E
RUZBVUxUX0xPR19CQUNLVVBfQ09VTlQgPSA1CisKK19ERUZBVUxUX1JFUVVFU1RfUVVFVUVfU0la
RSA9IDEyOAorCisjIDEwMjQgaXMgcHJhY3RpY2FsbHkgbGFyZ2UgZW5vdWdoIHRvIGNvbnRhaW4g
V2ViU29ja2V0IGhhbmRzaGFrZSBsaW5lcy4KK19NQVhfTUVNT1JJWkVEX0xJTkVTID0gMTAyNAor
CisjIENvbnN0YW50cyBmb3IgdGhlIC0tdGxzX21vZHVsZSBmbGFnLgorX1RMU19CWV9TVEFOREFS
RF9NT0RVTEUgPSAnc3NsJworX1RMU19CWV9QWU9QRU5TU0wgPSAncHlvcGVuc3NsJworCisKK2Ns
YXNzIF9TdGFuZGFsb25lQ29ubmVjdGlvbihvYmplY3QpOgorICAgICIiIk1pbWljIG1vZF9weXRo
b24gbXBfY29ubi4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0X2hhbmRsZXIp
OgorICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCisKKyAgICAgICAgQXJnczoKKyAg
ICAgICAgICAgIHJlcXVlc3RfaGFuZGxlcjogQSBXZWJTb2NrZXRSZXF1ZXN0SGFuZGxlciBpbnN0
YW5jZS4KKyAgICAgICAgIiIiCisKKyAgICAgICAgc2VsZi5fcmVxdWVzdF9oYW5kbGVyID0gcmVx
dWVzdF9oYW5kbGVyCisKKyAgICBkZWYgZ2V0X2xvY2FsX2FkZHIoc2VsZik6CisgICAgICAgICIi
IkdldHRlciB0byBtaW1pYyBtcF9jb25uLmxvY2FsX2FkZHIuIiIiCisKKyAgICAgICAgcmV0dXJu
IChzZWxmLl9yZXF1ZXN0X2hhbmRsZXIuc2VydmVyLnNlcnZlcl9uYW1lLAorICAgICAgICAgICAg
ICAgIHNlbGYuX3JlcXVlc3RfaGFuZGxlci5zZXJ2ZXIuc2VydmVyX3BvcnQpCisgICAgbG9jYWxf
YWRkciA9IHByb3BlcnR5KGdldF9sb2NhbF9hZGRyKQorCisgICAgZGVmIGdldF9yZW1vdGVfYWRk
cihzZWxmKToKKyAgICAgICAgIiIiR2V0dGVyIHRvIG1pbWljIG1wX2Nvbm4ucmVtb3RlX2FkZHIu
CisKKyAgICAgICAgU2V0dGluZyB0aGUgcHJvcGVydHkgaW4gX19pbml0X18gd29uJ3Qgd29yayBi
ZWNhdXNlIHRoZSByZXF1ZXN0CisgICAgICAgIGhhbmRsZXIgaXMgbm90IGluaXRpYWxpemVkIHll
dCB0aGVyZS4iIiIKKworICAgICAgICByZXR1cm4gc2VsZi5fcmVxdWVzdF9oYW5kbGVyLmNsaWVu
dF9hZGRyZXNzCisgICAgcmVtb3RlX2FkZHIgPSBwcm9wZXJ0eShnZXRfcmVtb3RlX2FkZHIpCisK
KyAgICBkZWYgd3JpdGUoc2VsZiwgZGF0YSk6CisgICAgICAgICIiIk1pbWljIG1wX2Nvbm4ud3Jp
dGUoKS4iIiIKKworICAgICAgICByZXR1cm4gc2VsZi5fcmVxdWVzdF9oYW5kbGVyLndmaWxlLndy
aXRlKGRhdGEpCisKKyAgICBkZWYgcmVhZChzZWxmLCBsZW5ndGgpOgorICAgICAgICAiIiJNaW1p
YyBtcF9jb25uLnJlYWQoKS4iIiIKKworICAgICAgICByZXR1cm4gc2VsZi5fcmVxdWVzdF9oYW5k
bGVyLnJmaWxlLnJlYWQobGVuZ3RoKQorCisgICAgZGVmIGdldF9tZW1vcml6ZWRfbGluZXMoc2Vs
Zik6CisgICAgICAgICIiIkdldCBtZW1vcml6ZWQgbGluZXMuIiIiCisKKyAgICAgICAgcmV0dXJu
IHNlbGYuX3JlcXVlc3RfaGFuZGxlci5yZmlsZS5nZXRfbWVtb3JpemVkX2xpbmVzKCkKKworCitj
bGFzcyBfU3RhbmRhbG9uZVJlcXVlc3Qob2JqZWN0KToKKyAgICAiIiJNaW1pYyBtb2RfcHl0aG9u
IHJlcXVlc3QuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdF9oYW5kbGVyLCB1
c2VfdGxzKToKKyAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgorCisgICAgICAgIEFy
Z3M6CisgICAgICAgICAgICByZXF1ZXN0X2hhbmRsZXI6IEEgV2ViU29ja2V0UmVxdWVzdEhhbmRs
ZXIgaW5zdGFuY2UuCisgICAgICAgICIiIgorCisgICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwu
Z2V0X2NsYXNzX2xvZ2dlcihzZWxmKQorCisgICAgICAgIHNlbGYuX3JlcXVlc3RfaGFuZGxlciA9
IHJlcXVlc3RfaGFuZGxlcgorICAgICAgICBzZWxmLmNvbm5lY3Rpb24gPSBfU3RhbmRhbG9uZUNv
bm5lY3Rpb24ocmVxdWVzdF9oYW5kbGVyKQorICAgICAgICBzZWxmLl91c2VfdGxzID0gdXNlX3Rs
cworICAgICAgICBzZWxmLmhlYWRlcnNfaW4gPSByZXF1ZXN0X2hhbmRsZXIuaGVhZGVycworCisg
ICAgZGVmIGdldF91cmkoc2VsZik6CisgICAgICAgICIiIkdldHRlciB0byBtaW1pYyByZXF1ZXN0
LnVyaS4KKworICAgICAgICBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSByYXcgZGF0YSBhdCB0aGUg
UmVxdWVzdC1VUkkgcGFydCBvZiB0aGUKKyAgICAgICAgUmVxdWVzdC1MaW5lLCB3aGlsZSB0aGUg
dXJpIG1ldGhvZCBvbiB0aGUgcmVxdWVzdCBvYmplY3Qgb2YgbW9kX3B5dGhvbgorICAgICAgICBy
ZXR1cm5zIHRoZSBwYXRoIHBvcnRpb24gYWZ0ZXIgcGFyc2luZyB0aGUgcmF3IGRhdGEuIFRoaXMg
YmVoYXZpb3IgaXMKKyAgICAgICAga2VwdCBmb3IgY29tcGF0aWJpbGl0eS4KKyAgICAgICAgIiIi
CisKKyAgICAgICAgcmV0dXJuIHNlbGYuX3JlcXVlc3RfaGFuZGxlci5wYXRoCisgICAgdXJpID0g
cHJvcGVydHkoZ2V0X3VyaSkKKworICAgIGRlZiBnZXRfdW5wYXJzZWRfdXJpKHNlbGYpOgorICAg
ICAgICAiIiJHZXR0ZXIgdG8gbWltaWMgcmVxdWVzdC51bnBhcnNlZF91cmkuIiIiCisKKyAgICAg
ICAgcmV0dXJuIHNlbGYuX3JlcXVlc3RfaGFuZGxlci5wYXRoCisgICAgdW5wYXJzZWRfdXJpID0g
cHJvcGVydHkoZ2V0X3VucGFyc2VkX3VyaSkKKworICAgIGRlZiBnZXRfbWV0aG9kKHNlbGYpOgor
ICAgICAgICAiIiJHZXR0ZXIgdG8gbWltaWMgcmVxdWVzdC5tZXRob2QuIiIiCisKKyAgICAgICAg
cmV0dXJuIHNlbGYuX3JlcXVlc3RfaGFuZGxlci5jb21tYW5kCisgICAgbWV0aG9kID0gcHJvcGVy
dHkoZ2V0X21ldGhvZCkKKworICAgIGRlZiBnZXRfcHJvdG9jb2woc2VsZik6CisgICAgICAgICIi
IkdldHRlciB0byBtaW1pYyByZXF1ZXN0LnByb3RvY29sLiIiIgorCisgICAgICAgIHJldHVybiBz
ZWxmLl9yZXF1ZXN0X2hhbmRsZXIucmVxdWVzdF92ZXJzaW9uCisgICAgcHJvdG9jb2wgPSBwcm9w
ZXJ0eShnZXRfcHJvdG9jb2wpCisKKyAgICBkZWYgaXNfaHR0cHMoc2VsZik6CisgICAgICAgICIi
Ik1pbWljIHJlcXVlc3QuaXNfaHR0cHMoKS4iIiIKKworICAgICAgICByZXR1cm4gc2VsZi5fdXNl
X3RscworCisKK2RlZiBfaW1wb3J0X3NzbCgpOgorICAgIGdsb2JhbCBzc2wKKyAgICB0cnk6Cisg
ICAgICAgIGltcG9ydCBzc2wKKyAgICAgICAgcmV0dXJuIFRydWUKKyAgICBleGNlcHQgSW1wb3J0
RXJyb3I6CisgICAgICAgIHJldHVybiBGYWxzZQorCisKK2RlZiBfaW1wb3J0X3B5b3BlbnNzbCgp
OgorICAgIGdsb2JhbCBPcGVuU1NMCisgICAgdHJ5OgorICAgICAgICBpbXBvcnQgT3BlblNTTC5T
U0wKKyAgICAgICAgcmV0dXJuIFRydWUKKyAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAg
IHJldHVybiBGYWxzZQorCisKK2NsYXNzIF9TdGFuZGFsb25lU1NMQ29ubmVjdGlvbihvYmplY3Qp
OgorICAgICIiIkEgd3JhcHBlciBjbGFzcyBmb3IgT3BlblNTTC5TU0wuQ29ubmVjdGlvbiB0bwor
ICAgIC0gcHJvdmlkZSBtYWtlZmlsZSBtZXRob2Qgd2hpY2ggaXMgbm90IHN1cHBvcnRlZCBieSB0
aGUgY2xhc3MKKyAgICAtIHR3ZWFrIHNodXRkb3duIG1ldGhvZCBzaW5jZSBPcGVuU1NMLlNTTC5D
b25uZWN0aW9uLnNodXRkb3duIGRvZXNuJ3QKKyAgICAgIGFjY2VwdCB0aGUgImhvdyIgYXJndW1l
bnQuCisgICAgLSBjb252ZXJ0IFN5c0NhbGxFcnJvciBleGNlcHRpb25zIHRoYXQgaXRzIHJlY3Yg
bWV0aG9kIG1heSByYWlzZSBpbnRvIGEKKyAgICAgIHJldHVybiB2YWx1ZSBvZiAnJywgbWVhbmlu
ZyBFT0YuIFdlIGNhbm5vdCBvdmVyd3JpdGUgdGhlIHJlY3YgbWV0aG9kIG9uCisgICAgICBzZWxm
Ll9jb25uZWN0aW9uIHNpbmNlIGl0J3MgaW1tdXRhYmxlLgorICAgICIiIgorCisgICAgX09WRVJS
SURERU5fQVRUUklCVVRFUyA9IFsnX2Nvbm5lY3Rpb24nLCAnbWFrZWZpbGUnLCAnc2h1dGRvd24n
LCAncmVjdiddCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY29ubmVjdGlvbik6CisgICAgICAg
IHNlbGYuX2Nvbm5lY3Rpb24gPSBjb25uZWN0aW9uCisKKyAgICBkZWYgX19nZXRhdHRyaWJ1dGVf
XyhzZWxmLCBuYW1lKToKKyAgICAgICAgaWYgbmFtZSBpbiBfU3RhbmRhbG9uZVNTTENvbm5lY3Rp
b24uX09WRVJSSURERU5fQVRUUklCVVRFUzoKKyAgICAgICAgICAgIHJldHVybiBvYmplY3QuX19n
ZXRhdHRyaWJ1dGVfXyhzZWxmLCBuYW1lKQorICAgICAgICByZXR1cm4gc2VsZi5fY29ubmVjdGlv
bi5fX2dldGF0dHJpYnV0ZV9fKG5hbWUpCisKKyAgICBkZWYgX19zZXRhdHRyX18oc2VsZiwgbmFt
ZSwgdmFsdWUpOgorICAgICAgICBpZiBuYW1lIGluIF9TdGFuZGFsb25lU1NMQ29ubmVjdGlvbi5f
T1ZFUlJJRERFTl9BVFRSSUJVVEVTOgorICAgICAgICAgICAgcmV0dXJuIG9iamVjdC5fX3NldGF0
dHJfXyhzZWxmLCBuYW1lLCB2YWx1ZSkKKyAgICAgICAgcmV0dXJuIHNlbGYuX2Nvbm5lY3Rpb24u
X19zZXRhdHRyX18obmFtZSwgdmFsdWUpCisKKyAgICBkZWYgbWFrZWZpbGUoc2VsZiwgbW9kZT0n
cicsIGJ1ZnNpemU9LTEpOgorICAgICAgICByZXR1cm4gc29ja2V0Ll9maWxlb2JqZWN0KHNlbGYs
IG1vZGUsIGJ1ZnNpemUpCisKKyAgICBkZWYgc2h1dGRvd24oc2VsZiwgdW51c2VkX2hvdyk6Cisg
ICAgICAgIHNlbGYuX2Nvbm5lY3Rpb24uc2h1dGRvd24oKQorCisgICAgZGVmIHJlY3Yoc2VsZiwg
YnVmc2l6ZSwgZmxhZ3M9MCk6CisgICAgICAgIGlmIGZsYWdzICE9IDA6CisgICAgICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKCdOb24temVybyBmbGFncyBub3QgYWxsb3dlZCcpCisKKyAgICAgICAg
dHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2Nvbm5lY3Rpb24ucmVjdihidWZzaXplKQor
ICAgICAgICBleGNlcHQgT3BlblNTTC5TU0wuU3lzQ2FsbEVycm9yLCAoZXJyLCBtZXNzYWdlKToK
KyAgICAgICAgICAgIGlmIGVyciA9PSAtMToKKyAgICAgICAgICAgICAgICAjIFN1cHByZXNzICJ1
bmV4cGVjdGVkIEVPRiIgZXhjZXB0aW9uLiBTZWUgdGhlIE9wZW5TU0wgZG9jdW1lbnQKKyAgICAg
ICAgICAgICAgICAjIGZvciBTU0xfZ2V0X2Vycm9yLgorICAgICAgICAgICAgICAgIHJldHVybiAn
JworICAgICAgICAgICAgcmFpc2UKKworCitkZWYgX2FsaWFzX2hhbmRsZXJzKGRpc3BhdGNoZXIs
IHdlYnNvY2tfaGFuZGxlcnNfbWFwX2ZpbGUpOgorICAgICIiIlNldCBhbGlhc2VzIHNwZWNpZmll
ZCBpbiB3ZWJzb2NrX2hhbmRsZXJfbWFwX2ZpbGUgaW4gZGlzcGF0Y2hlci4KKworICAgIEFyZ3M6
CisgICAgICAgIGRpc3BhdGNoZXI6IGRpc3BhdGNoLkRpc3BhdGNoZXIgaW5zdGFuY2UKKyAgICAg
ICAgd2Vic29ja19oYW5kbGVyX21hcF9maWxlOiBhbGlhcyBtYXAgZmlsZQorICAgICIiIgorCisg
ICAgZnAgPSBvcGVuKHdlYnNvY2tfaGFuZGxlcnNfbWFwX2ZpbGUpCisgICAgdHJ5OgorICAgICAg
ICBmb3IgbGluZSBpbiBmcDoKKyAgICAgICAgICAgIGlmIGxpbmVbMF0gPT0gJyMnIG9yIGxpbmUu
aXNzcGFjZSgpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBtID0gcmUu
bWF0Y2goJyhcUyspXHMrKFxTKyknLCBsaW5lKQorICAgICAgICAgICAgaWYgbm90IG06CisgICAg
ICAgICAgICAgICAgbG9nZ2luZy53YXJuaW5nKCdXcm9uZyBmb3JtYXQgaW4gbWFwIGZpbGU6JyAr
IGxpbmUpCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIHRyeToKKyAgICAg
ICAgICAgICAgICBkaXNwYXRjaGVyLmFkZF9yZXNvdXJjZV9wYXRoX2FsaWFzKAorICAgICAgICAg
ICAgICAgICAgICBtLmdyb3VwKDEpLCBtLmdyb3VwKDIpKQorICAgICAgICAgICAgZXhjZXB0IGRp
c3BhdGNoLkRpc3BhdGNoRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgICAgIGxvZ2dpbmcuZXJy
b3Ioc3RyKGUpKQorICAgIGZpbmFsbHk6CisgICAgICAgIGZwLmNsb3NlKCkKKworCitjbGFzcyBX
ZWJTb2NrZXRTZXJ2ZXIoU29ja2V0U2VydmVyLlRocmVhZGluZ01peEluLCBCYXNlSFRUUFNlcnZl
ci5IVFRQU2VydmVyKToKKyAgICAiIiJIVFRQU2VydmVyIHNwZWNpYWxpemVkIGZvciBXZWJTb2Nr
ZXQuIiIiCisKKyAgICAjIE92ZXJyaWRlcyBTb2NrZXRTZXJ2ZXIuVGhyZWFkaW5nTWl4SW4uZGFl
bW9uX3RocmVhZHMKKyAgICBkYWVtb25fdGhyZWFkcyA9IFRydWUKKyAgICAjIE92ZXJyaWRlcyBC
YXNlSFRUUFNlcnZlci5IVFRQU2VydmVyLmFsbG93X3JldXNlX2FkZHJlc3MKKyAgICBhbGxvd19y
ZXVzZV9hZGRyZXNzID0gVHJ1ZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMpOgor
ICAgICAgICAiIiJPdmVycmlkZSBTb2NrZXRTZXJ2ZXIuVENQU2VydmVyLl9faW5pdF9fIHRvIHNl
dCBTU0wgZW5hYmxlZAorICAgICAgICBzb2NrZXQgb2JqZWN0IHRvIHNlbGYuc29ja2V0IGJlZm9y
ZSBzZXJ2ZXJfYmluZCBhbmQgc2VydmVyX2FjdGl2YXRlLAorICAgICAgICBpZiBuZWNlc3Nhcnku
CisgICAgICAgICIiIgorCisgICAgICAgICMgU2hhcmUgYSBEaXNwYXRjaGVyIGFtb25nIHJlcXVl
c3QgaGFuZGxlcnMgdG8gc2F2ZSB0aW1lIGZvcgorICAgICAgICAjIGluc3RhbnRpYXRpb24uICBE
aXNwYXRjaGVyIGNhbiBiZSBzaGFyZWQgYmVjYXVzZSBpdCBpcyB0aHJlYWQtc2FmZS4KKyAgICAg
ICAgb3B0aW9ucy5kaXNwYXRjaGVyID0gZGlzcGF0Y2guRGlzcGF0Y2hlcigKKyAgICAgICAgICAg
IG9wdGlvbnMud2Vic29ja19oYW5kbGVycywKKyAgICAgICAgICAgIG9wdGlvbnMuc2Nhbl9kaXIs
CisgICAgICAgICAgICBvcHRpb25zLmFsbG93X2hhbmRsZXJzX291dHNpZGVfcm9vdF9kaXIpCisg
ICAgICAgIGlmIG9wdGlvbnMud2Vic29ja19oYW5kbGVyc19tYXBfZmlsZToKKyAgICAgICAgICAg
IF9hbGlhc19oYW5kbGVycyhvcHRpb25zLmRpc3BhdGNoZXIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3B0aW9ucy53ZWJzb2NrX2hhbmRsZXJzX21hcF9maWxlKQorICAgICAgICB3YXJu
aW5ncyA9IG9wdGlvbnMuZGlzcGF0Y2hlci5zb3VyY2Vfd2FybmluZ3MoKQorICAgICAgICBpZiB3
YXJuaW5nczoKKyAgICAgICAgICAgIGZvciB3YXJuaW5nIGluIHdhcm5pbmdzOgorICAgICAgICAg
ICAgICAgIGxvZ2dpbmcud2FybmluZygnV2FybmluZyBpbiBzb3VyY2UgbG9hZGluZzogJXMnICUg
d2FybmluZykKKworICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIo
c2VsZikKKworICAgICAgICBzZWxmLnJlcXVlc3RfcXVldWVfc2l6ZSA9IG9wdGlvbnMucmVxdWVz
dF9xdWV1ZV9zaXplCisgICAgICAgIHNlbGYuX193c19pc19zaHV0X2Rvd24gPSB0aHJlYWRpbmcu
RXZlbnQoKQorICAgICAgICBzZWxmLl9fd3Nfc2VydmluZyA9IEZhbHNlCisKKyAgICAgICAgU29j
a2V0U2VydmVyLkJhc2VTZXJ2ZXIuX19pbml0X18oCisgICAgICAgICAgICBzZWxmLCAob3B0aW9u
cy5zZXJ2ZXJfaG9zdCwgb3B0aW9ucy5wb3J0KSwgV2ViU29ja2V0UmVxdWVzdEhhbmRsZXIpCisK
KyAgICAgICAgIyBFeHBvc2UgdGhlIG9wdGlvbnMgb2JqZWN0IHRvIGFsbG93IGhhbmRsZXIgb2Jq
ZWN0cyBhY2Nlc3MgaXQuIFdlIG5hbWUKKyAgICAgICAgIyBpdCB3aXRoIHdlYnNvY2tldF8gcHJl
Zml4IHRvIGF2b2lkIGNvbmZsaWN0LgorICAgICAgICBzZWxmLndlYnNvY2tldF9zZXJ2ZXJfb3B0
aW9ucyA9IG9wdGlvbnMKKworICAgICAgICBzZWxmLl9jcmVhdGVfc29ja2V0cygpCisgICAgICAg
IHNlbGYuc2VydmVyX2JpbmQoKQorICAgICAgICBzZWxmLnNlcnZlcl9hY3RpdmF0ZSgpCisKKyAg
ICBkZWYgX2NyZWF0ZV9zb2NrZXRzKHNlbGYpOgorICAgICAgICBzZWxmLnNlcnZlcl9uYW1lLCBz
ZWxmLnNlcnZlcl9wb3J0ID0gc2VsZi5zZXJ2ZXJfYWRkcmVzcworICAgICAgICBzZWxmLl9zb2Nr
ZXRzID0gW10KKyAgICAgICAgaWYgbm90IHNlbGYuc2VydmVyX25hbWU6CisgICAgICAgICAgICAj
IE9uIHBsYXRmb3JtcyB0aGF0IGRvZXNuJ3Qgc3VwcG9ydCBJUHY2LCB0aGUgZmlyc3QgYmluZCBm
YWlscy4KKyAgICAgICAgICAgICMgT24gcGxhdGZvcm1zIHRoYXQgc3VwcG9ydHMgSVB2NgorICAg
ICAgICAgICAgIyAtIElmIGl0IGJpbmRzIGJvdGggSVB2NCBhbmQgSVB2NiBvbiBjYWxsIHdpdGgg
QUZfSU5FVDYsIHRoZQorICAgICAgICAgICAgIyAgIGZpcnN0IGJpbmQgc3VjY2VlZHMgYW5kIHRo
ZSBzZWNvbmQgZmFpbHMgKHdlJ2xsIHNlZSAnQWRkcmVzcworICAgICAgICAgICAgIyAgIGFscmVh
ZHkgaW4gdXNlJyBlcnJvcikuCisgICAgICAgICAgICAjIC0gSWYgaXQgYmluZHMgb25seSBJUHY2
IG9uIGNhbGwgd2l0aCBBRl9JTkVUNiwgYm90aCBjYWxsIGFyZQorICAgICAgICAgICAgIyAgIGV4
cGVjdGVkIHRvIHN1Y2NlZWQgdG8gbGlzdGVuIGJvdGggcHJvdG9jb2wuCisgICAgICAgICAgICBh
ZGRyaW5mb19hcnJheSA9IFsKKyAgICAgICAgICAgICAgICAoc29ja2V0LkFGX0lORVQ2LCBzb2Nr
ZXQuU09DS19TVFJFQU0sICcnLCAnJywgJycpLAorICAgICAgICAgICAgICAgIChzb2NrZXQuQUZf
SU5FVCwgc29ja2V0LlNPQ0tfU1RSRUFNLCAnJywgJycsICcnKV0KKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIGFkZHJpbmZvX2FycmF5ID0gc29ja2V0LmdldGFkZHJpbmZvKHNlbGYuc2VydmVy
X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLnNlcnZlcl9wb3J0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc29ja2V0LkFGX1VOU1BFQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNvY2tldC5TT0NLX1NUUkVBTSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2tldC5JUFBST1RPX1RDUCkKKyAgICAg
ICAgZm9yIGFkZHJpbmZvIGluIGFkZHJpbmZvX2FycmF5OgorICAgICAgICAgICAgc2VsZi5fbG9n
Z2VyLmluZm8oJ0NyZWF0ZSBzb2NrZXQgb246ICVyJywgYWRkcmluZm8pCisgICAgICAgICAgICBm
YW1pbHksIHNvY2t0eXBlLCBwcm90bywgY2Fub25uYW1lLCBzb2NrYWRkciA9IGFkZHJpbmZvCisg
ICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc29ja2V0XyA9IHNvY2tldC5zb2NrZXQo
ZmFtaWx5LCBzb2NrdHlwZSkKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAg
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1NraXAgYnkgZmFpbHVyZTogJXInLCBlKQor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBzZXJ2ZXJfb3B0aW9ucyA9IHNl
bGYud2Vic29ja2V0X3NlcnZlcl9vcHRpb25zCisgICAgICAgICAgICBpZiBzZXJ2ZXJfb3B0aW9u
cy51c2VfdGxzOgorICAgICAgICAgICAgICAgICMgRm9yIHRoZSBjYXNlIG9mIF9IQVNfT1BFTl9T
U0wsIHdlIGRvIHdyYXBwZXIgc2V0dXAgYWZ0ZXIKKyAgICAgICAgICAgICAgICAjIGFjY2VwdC4K
KyAgICAgICAgICAgICAgICBpZiBzZXJ2ZXJfb3B0aW9ucy50bHNfbW9kdWxlID09IF9UTFNfQllf
U1RBTkRBUkRfTU9EVUxFOgorICAgICAgICAgICAgICAgICAgICBpZiBzZXJ2ZXJfb3B0aW9ucy50
bHNfY2xpZW50X2F1dGg6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBzZXJ2ZXJfb3B0aW9u
cy50bHNfY2xpZW50X2NlcnRfb3B0aW9uYWw6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xpZW50X2NlcnRfID0gc3NsLkNFUlRfT1BUSU9OQUwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50X2NlcnRfID0gc3NsLkNF
UlRfUkVRVUlSRUQKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGNsaWVudF9jZXJ0XyA9IHNzbC5DRVJUX05PTkUKKyAgICAgICAgICAgICAgICAgICAg
c29ja2V0XyA9IHNzbC53cmFwX3NvY2tldChzb2NrZXRfLAorICAgICAgICAgICAgICAgICAgICAg
ICAga2V5ZmlsZT1zZXJ2ZXJfb3B0aW9ucy5wcml2YXRlX2tleSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGNlcnRmaWxlPXNlcnZlcl9vcHRpb25zLmNlcnRpZmljYXRlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgc3NsX3ZlcnNpb249c3NsLlBST1RPQ09MX1NTTHYyMywKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGNhX2NlcnRzPXNlcnZlcl9vcHRpb25zLnRsc19jbGllbnRfY2EsCisgICAg
ICAgICAgICAgICAgICAgICAgICBjZXJ0X3JlcXM9Y2xpZW50X2NlcnRfLAorICAgICAgICAgICAg
ICAgICAgICAgICAgZG9faGFuZHNoYWtlX29uX2Nvbm5lY3Q9RmFsc2UpCisgICAgICAgICAgICBz
ZWxmLl9zb2NrZXRzLmFwcGVuZCgoc29ja2V0XywgYWRkcmluZm8pKQorCisgICAgZGVmIHNlcnZl
cl9iaW5kKHNlbGYpOgorICAgICAgICAiIiJPdmVycmlkZSBTb2NrZXRTZXJ2ZXIuVENQU2VydmVy
LnNlcnZlcl9iaW5kIHRvIGVuYWJsZSBtdWx0aXBsZQorICAgICAgICBzb2NrZXRzIGJpbmQuCisg
ICAgICAgICIiIgorCisgICAgICAgIGZhaWxlZF9zb2NrZXRzID0gW10KKworICAgICAgICBmb3Ig
c29ja2V0aW5mbyBpbiBzZWxmLl9zb2NrZXRzOgorICAgICAgICAgICAgc29ja2V0XywgYWRkcmlu
Zm8gPSBzb2NrZXRpbmZvCisgICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnQmluZCBvbjog
JXInLCBhZGRyaW5mbykKKyAgICAgICAgICAgIGlmIHNlbGYuYWxsb3dfcmV1c2VfYWRkcmVzczoK
KyAgICAgICAgICAgICAgICBzb2NrZXRfLnNldHNvY2tvcHQoc29ja2V0LlNPTF9TT0NLRVQsIHNv
Y2tldC5TT19SRVVTRUFERFIsIDEpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAg
c29ja2V0Xy5iaW5kKHNlbGYuc2VydmVyX2FkZHJlc3MpCisgICAgICAgICAgICBleGNlcHQgRXhj
ZXB0aW9uLCBlOgorICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdTa2lwIGJ5IGZh
aWx1cmU6ICVyJywgZSkKKyAgICAgICAgICAgICAgICBzb2NrZXRfLmNsb3NlKCkKKyAgICAgICAg
ICAgICAgICBmYWlsZWRfc29ja2V0cy5hcHBlbmQoc29ja2V0aW5mbykKKyAgICAgICAgICAgIGlm
IHNlbGYuc2VydmVyX2FkZHJlc3NbMV0gPT0gMDoKKyAgICAgICAgICAgICAgICAjIFRoZSBvcGVy
YXRpbmcgc3lzdGVtIGFzc2lnbnMgdGhlIGFjdHVhbCBwb3J0IG51bWJlciBmb3IgcG9ydAorICAg
ICAgICAgICAgICAgICMgbnVtYmVyIDAuIFRoaXMgY2FzZSwgdGhlIHNlY29uZCBhbmQgbGF0ZXIg
c29ja2V0cyBzaG91bGQgdXNlCisgICAgICAgICAgICAgICAgIyB0aGUgc2FtZSBwb3J0IG51bWJl
ci4gQWxzbyBzZWxmLnNlcnZlcl9wb3J0IGlzIHJld3JpdHRlbgorICAgICAgICAgICAgICAgICMg
YmVjYXVzZSBpdCBpcyBleHBvcnRlZCwgYW5kIHdpbGwgYmUgdXNlZCBieSBleHRlcm5hbCBjb2Rl
LgorICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2FkZHJlc3MgPSAoCisgICAgICAgICAgICAg
ICAgICAgIHNlbGYuc2VydmVyX25hbWUsIHNvY2tldF8uZ2V0c29ja25hbWUoKVsxXSkKKyAgICAg
ICAgICAgICAgICBzZWxmLnNlcnZlcl9wb3J0ID0gc2VsZi5zZXJ2ZXJfYWRkcmVzc1sxXQorICAg
ICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdQb3J0ICVyIGlzIGFzc2lnbmVkJywgc2Vs
Zi5zZXJ2ZXJfcG9ydCkKKworICAgICAgICBmb3Igc29ja2V0aW5mbyBpbiBmYWlsZWRfc29ja2V0
czoKKyAgICAgICAgICAgIHNlbGYuX3NvY2tldHMucmVtb3ZlKHNvY2tldGluZm8pCisKKyAgICBk
ZWYgc2VydmVyX2FjdGl2YXRlKHNlbGYpOgorICAgICAgICAiIiJPdmVycmlkZSBTb2NrZXRTZXJ2
ZXIuVENQU2VydmVyLnNlcnZlcl9hY3RpdmF0ZSB0byBlbmFibGUgbXVsdGlwbGUKKyAgICAgICAg
c29ja2V0cyBsaXN0ZW4uCisgICAgICAgICIiIgorCisgICAgICAgIGZhaWxlZF9zb2NrZXRzID0g
W10KKworICAgICAgICBmb3Igc29ja2V0aW5mbyBpbiBzZWxmLl9zb2NrZXRzOgorICAgICAgICAg
ICAgc29ja2V0XywgYWRkcmluZm8gPSBzb2NrZXRpbmZvCisgICAgICAgICAgICBzZWxmLl9sb2dn
ZXIuaW5mbygnTGlzdGVuIG9uOiAlcicsIGFkZHJpbmZvKQorICAgICAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgICAgIHNvY2tldF8ubGlzdGVuKHNlbGYucmVxdWVzdF9xdWV1ZV9zaXplKQorICAg
ICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgICAgICBzZWxmLl9sb2dn
ZXIuaW5mbygnU2tpcCBieSBmYWlsdXJlOiAlcicsIGUpCisgICAgICAgICAgICAgICAgc29ja2V0
Xy5jbG9zZSgpCisgICAgICAgICAgICAgICAgZmFpbGVkX3NvY2tldHMuYXBwZW5kKHNvY2tldGlu
Zm8pCisKKyAgICAgICAgZm9yIHNvY2tldGluZm8gaW4gZmFpbGVkX3NvY2tldHM6CisgICAgICAg
ICAgICBzZWxmLl9zb2NrZXRzLnJlbW92ZShzb2NrZXRpbmZvKQorCisgICAgICAgIGlmIGxlbihz
ZWxmLl9zb2NrZXRzKSA9PSAwOgorICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmNyaXRpY2FsKAor
ICAgICAgICAgICAgICAgICdObyBzb2NrZXRzIGFjdGl2YXRlZC4gVXNlIGluZm8gbG9nIGxldmVs
IHRvIHNlZSB0aGUgcmVhc29uLicpCisKKyAgICBkZWYgc2VydmVyX2Nsb3NlKHNlbGYpOgorICAg
ICAgICAiIiJPdmVycmlkZSBTb2NrZXRTZXJ2ZXIuVENQU2VydmVyLnNlcnZlcl9jbG9zZSB0byBl
bmFibGUgbXVsdGlwbGUKKyAgICAgICAgc29ja2V0cyBjbG9zZS4KKyAgICAgICAgIiIiCisKKyAg
ICAgICAgZm9yIHNvY2tldGluZm8gaW4gc2VsZi5fc29ja2V0czoKKyAgICAgICAgICAgIHNvY2tl
dF8sIGFkZHJpbmZvID0gc29ja2V0aW5mbworICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8o
J0Nsb3NlIG9uOiAlcicsIGFkZHJpbmZvKQorICAgICAgICAgICAgc29ja2V0Xy5jbG9zZSgpCisK
KyAgICBkZWYgZmlsZW5vKHNlbGYpOgorICAgICAgICAiIiJPdmVycmlkZSBTb2NrZXRTZXJ2ZXIu
VENQU2VydmVyLmZpbGVuby4iIiIKKworICAgICAgICBzZWxmLl9sb2dnZXIuY3JpdGljYWwoJ05v
dCBzdXBwb3J0ZWQ6IGZpbGVubycpCisgICAgICAgIHJldHVybiBzZWxmLl9zb2NrZXRzWzBdWzBd
LmZpbGVubygpCisKKyAgICBkZWYgaGFuZGxlX2Vycm9yKHNlbGYsIHJlcXVlc3QsIGNsaWVudF9h
ZGRyZXNzKToKKyAgICAgICAgIiIiT3ZlcnJpZGUgU29ja2V0U2VydmVyLmhhbmRsZV9lcnJvci4i
IiIKKworICAgICAgICBzZWxmLl9sb2dnZXIuZXJyb3IoCisgICAgICAgICAgICAnRXhjZXB0aW9u
IGluIHByb2Nlc3NpbmcgcmVxdWVzdCBmcm9tOiAlclxuJXMnLAorICAgICAgICAgICAgY2xpZW50
X2FkZHJlc3MsCisgICAgICAgICAgICB1dGlsLmdldF9zdGFja190cmFjZSgpKQorICAgICAgICAj
IE5vdGU6IGNsaWVudF9hZGRyZXNzIGlzIGEgdHVwbGUuCisKKyAgICBkZWYgZ2V0X3JlcXVlc3Qo
c2VsZik6CisgICAgICAgICIiIk92ZXJyaWRlIFRDUFNlcnZlci5nZXRfcmVxdWVzdCB0byB3cmFw
IE9wZW5TU0wuU1NMLkNvbm5lY3Rpb24KKyAgICAgICAgb2JqZWN0IHdpdGggX1N0YW5kYWxvbmVT
U0xDb25uZWN0aW9uIHRvIHByb3ZpZGUgbWFrZWZpbGUgbWV0aG9kLiBXZQorICAgICAgICBjYW5u
b3Qgc3Vic3RpdHV0ZSBPcGVuU1NMLlNTTC5Db25uZWN0aW9uLm1ha2VmaWxlIHNpbmNlIGl0J3Mg
cmVhZG9ubHkKKyAgICAgICAgYXR0cmlidXRlLgorICAgICAgICAiIiIKKworICAgICAgICBhY2Nl
cHRlZF9zb2NrZXQsIGNsaWVudF9hZGRyZXNzID0gc2VsZi5zb2NrZXQuYWNjZXB0KCkKKworICAg
ICAgICBzZXJ2ZXJfb3B0aW9ucyA9IHNlbGYud2Vic29ja2V0X3NlcnZlcl9vcHRpb25zCisgICAg
ICAgIGlmIHNlcnZlcl9vcHRpb25zLnVzZV90bHM6CisgICAgICAgICAgICBpZiBzZXJ2ZXJfb3B0
aW9ucy50bHNfbW9kdWxlID09IF9UTFNfQllfU1RBTkRBUkRfTU9EVUxFOgorICAgICAgICAgICAg
ICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgYWNjZXB0ZWRfc29ja2V0LmRvX2hhbmRzaGFr
ZSgpCisgICAgICAgICAgICAgICAgZXhjZXB0IHNzbC5TU0xFcnJvciwgZToKKyAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcicsIGUpCisgICAgICAgICAgICAgICAgICAg
IHJhaXNlCisKKyAgICAgICAgICAgICAgICAjIFByaW50IGNpcGhlciBpbiB1c2UuIEhhbmRzaGFr
ZSBpcyBkb25lIG9uIGFjY2VwdC4KKyAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
J0NpcGhlcjogJXMnLCBhY2NlcHRlZF9zb2NrZXQuY2lwaGVyKCkpCisgICAgICAgICAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKCdDbGllbnQgY2VydDogJXInLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhY2NlcHRlZF9zb2NrZXQuZ2V0cGVlcmNlcnQoKSkKKyAgICAgICAg
ICAgIGVsaWYgc2VydmVyX29wdGlvbnMudGxzX21vZHVsZSA9PSBfVExTX0JZX1BZT1BFTlNTTDoK
KyAgICAgICAgICAgICAgICAjIFdlIGNhbm5vdCBwcmludCB0aGUgY2lwaGVyIGluIHVzZS4gcHlP
cGVuU1NMIGRvZXNuJ3QgcHJvdmlkZQorICAgICAgICAgICAgICAgICMgYW55IG1ldGhvZCB0byBm
ZXRjaCB0aGF0LgorCisgICAgICAgICAgICAgICAgY3R4ID0gT3BlblNTTC5TU0wuQ29udGV4dChP
cGVuU1NMLlNTTC5TU0x2MjNfTUVUSE9EKQorICAgICAgICAgICAgICAgIGN0eC51c2VfcHJpdmF0
ZWtleV9maWxlKHNlcnZlcl9vcHRpb25zLnByaXZhdGVfa2V5KQorICAgICAgICAgICAgICAgIGN0
eC51c2VfY2VydGlmaWNhdGVfZmlsZShzZXJ2ZXJfb3B0aW9ucy5jZXJ0aWZpY2F0ZSkKKworICAg
ICAgICAgICAgICAgIGRlZiBkZWZhdWx0X2NhbGxiYWNrKGNvbm4sIGNlcnQsIGVycm51bSwgZXJy
ZGVwdGgsIG9rKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9rID09IDEKKworICAgICAg
ICAgICAgICAgICMgU2VlIHRoZSBPcGVuU1NMIGRvY3VtZW50IGZvciBTU0xfQ1RYX3NldF92ZXJp
ZnkuCisgICAgICAgICAgICAgICAgaWYgc2VydmVyX29wdGlvbnMudGxzX2NsaWVudF9hdXRoOgor
ICAgICAgICAgICAgICAgICAgICB2ZXJpZnlfbW9kZSA9IE9wZW5TU0wuU1NMLlZFUklGWV9QRUVS
CisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBzZXJ2ZXJfb3B0aW9ucy50bHNfY2xpZW50X2Nl
cnRfb3B0aW9uYWw6CisgICAgICAgICAgICAgICAgICAgICAgICB2ZXJpZnlfbW9kZSB8PSBPcGVu
U1NMLlNTTC5WRVJJRllfRkFJTF9JRl9OT19QRUVSX0NFUlQKKyAgICAgICAgICAgICAgICAgICAg
Y3R4LnNldF92ZXJpZnkodmVyaWZ5X21vZGUsIGRlZmF1bHRfY2FsbGJhY2spCisgICAgICAgICAg
ICAgICAgICAgIGN0eC5sb2FkX3ZlcmlmeV9sb2NhdGlvbnMoc2VydmVyX29wdGlvbnMudGxzX2Ns
aWVudF9jYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO
b25lKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGN0eC5zZXRf
dmVyaWZ5KE9wZW5TU0wuU1NMLlZFUklGWV9OT05FLCBkZWZhdWx0X2NhbGxiYWNrKQorCisgICAg
ICAgICAgICAgICAgYWNjZXB0ZWRfc29ja2V0ID0gT3BlblNTTC5TU0wuQ29ubmVjdGlvbihjdHgs
IGFjY2VwdGVkX3NvY2tldCkKKyAgICAgICAgICAgICAgICBhY2NlcHRlZF9zb2NrZXQuc2V0X2Fj
Y2VwdF9zdGF0ZSgpCisKKyAgICAgICAgICAgICAgICAjIENvbnZlcnQgU1NMIHJlbGF0ZWQgZXJy
b3IgaW50byBzb2NrZXQuZXJyb3Igc28gdGhhdAorICAgICAgICAgICAgICAgICMgU29ja2V0U2Vy
dmVyIGlnbm9yZXMgdGhlbSBhbmQga2VlcHMgcnVubmluZy4KKyAgICAgICAgICAgICAgICAjCisg
ICAgICAgICAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTogQ29udmVydCBhbGwga2luZHMgb2YgZXJy
b3JzLgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgYWNjZXB0ZWRf
c29ja2V0LmRvX2hhbmRzaGFrZSgpCisgICAgICAgICAgICAgICAgZXhjZXB0IE9wZW5TU0wuU1NM
LkVycm9yLCBlOgorICAgICAgICAgICAgICAgICAgICAjIFNldCBlcnJubyBwYXJ0IHRvIDEgKFNT
TF9FUlJPUl9TU0wpIGxpa2UgdGhlIHNzbCBtb2R1bGUKKyAgICAgICAgICAgICAgICAgICAgIyBk
b2VzLgorICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVyJywgZSkKKyAg
ICAgICAgICAgICAgICAgICAgcmFpc2Ugc29ja2V0LmVycm9yKDEsICclcicgJSBlKQorICAgICAg
ICAgICAgICAgIGNlcnQgPSBhY2NlcHRlZF9zb2NrZXQuZ2V0X3BlZXJfY2VydGlmaWNhdGUoKQor
ICAgICAgICAgICAgICAgIGlmIGNlcnQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ2xpZW50IGNlcnQgc3ViamVjdDogJXInLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydC5nZXRfc3ViamVjdCgpLmdldF9jb21w
b25lbnRzKCkpCisgICAgICAgICAgICAgICAgYWNjZXB0ZWRfc29ja2V0ID0gX1N0YW5kYWxvbmVT
U0xDb25uZWN0aW9uKGFjY2VwdGVkX3NvY2tldCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignTm8gVExTIHN1cHBvcnQgbW9kdWxlIGlzIGF2YWls
YWJsZScpCisKKyAgICAgICAgcmV0dXJuIGFjY2VwdGVkX3NvY2tldCwgY2xpZW50X2FkZHJlc3MK
KworICAgIGRlZiBzZXJ2ZV9mb3JldmVyKHNlbGYsIHBvbGxfaW50ZXJ2YWw9MC41KToKKyAgICAg
ICAgIiIiT3ZlcnJpZGUgU29ja2V0U2VydmVyLkJhc2VTZXJ2ZXIuc2VydmVfZm9yZXZlci4iIiIK
KworICAgICAgICBzZWxmLl9fd3Nfc2VydmluZyA9IFRydWUKKyAgICAgICAgc2VsZi5fX3dzX2lz
X3NodXRfZG93bi5jbGVhcigpCisgICAgICAgIGhhbmRsZV9yZXF1ZXN0ID0gc2VsZi5oYW5kbGVf
cmVxdWVzdAorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdfaGFuZGxlX3JlcXVlc3Rfbm9ibG9j
aycpOgorICAgICAgICAgICAgaGFuZGxlX3JlcXVlc3QgPSBzZWxmLl9oYW5kbGVfcmVxdWVzdF9u
b2Jsb2NrCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLl9sb2dnZXIud2FybmluZygn
RmFsbGJhY2sgdG8gYmxvY2tpbmcgcmVxdWVzdCBoYW5kbGVyJykKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgd2hpbGUgc2VsZi5fX3dzX3NlcnZpbmc6CisgICAgICAgICAgICAgICAgciwgdywg
ZSA9IHNlbGVjdC5zZWxlY3QoCisgICAgICAgICAgICAgICAgICAgIFtzb2NrZXRfWzBdIGZvciBz
b2NrZXRfIGluIHNlbGYuX3NvY2tldHNdLAorICAgICAgICAgICAgICAgICAgICBbXSwgW10sIHBv
bGxfaW50ZXJ2YWwpCisgICAgICAgICAgICAgICAgZm9yIHNvY2tldF8gaW4gcjoKKyAgICAgICAg
ICAgICAgICAgICAgc2VsZi5zb2NrZXQgPSBzb2NrZXRfCisgICAgICAgICAgICAgICAgICAgIGhh
bmRsZV9yZXF1ZXN0KCkKKyAgICAgICAgICAgICAgICBzZWxmLnNvY2tldCA9IE5vbmUKKyAgICAg
ICAgZmluYWxseToKKyAgICAgICAgICAgIHNlbGYuX193c19pc19zaHV0X2Rvd24uc2V0KCkKKwor
ICAgIGRlZiBzaHV0ZG93bihzZWxmKToKKyAgICAgICAgIiIiT3ZlcnJpZGUgU29ja2V0U2VydmVy
LkJhc2VTZXJ2ZXIuc2h1dGRvd24uIiIiCisKKyAgICAgICAgc2VsZi5fX3dzX3NlcnZpbmcgPSBG
YWxzZQorICAgICAgICBzZWxmLl9fd3NfaXNfc2h1dF9kb3duLndhaXQoKQorCisKK2NsYXNzIFdl
YlNvY2tldFJlcXVlc3RIYW5kbGVyKENHSUhUVFBTZXJ2ZXIuQ0dJSFRUUFJlcXVlc3RIYW5kbGVy
KToKKyAgICAiIiJDR0lIVFRQUmVxdWVzdEhhbmRsZXIgc3BlY2lhbGl6ZWQgZm9yIFdlYlNvY2tl
dC4iIiIKKworICAgICMgVXNlIGh0dHBsaWIuSFRUUE1lc3NhZ2UgaW5zdGVhZCBvZiBtaW1ldG9v
bHMuTWVzc2FnZS4KKyAgICBNZXNzYWdlQ2xhc3MgPSBodHRwbGliLkhUVFBNZXNzYWdlCisKKyAg
ICBwcm90b2NvbF92ZXJzaW9uID0gIkhUVFAvMS4xIgorCisgICAgZGVmIHNldHVwKHNlbGYpOgor
ICAgICAgICAiIiJPdmVycmlkZSBTb2NrZXRTZXJ2ZXIuU3RyZWFtUmVxdWVzdEhhbmRsZXIuc2V0
dXAgdG8gd3JhcCByZmlsZQorICAgICAgICB3aXRoIE1lbW9yaXppbmdGaWxlLgorCisgICAgICAg
IFRoaXMgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIGJ5IEJhc2VSZXF1ZXN0SGFuZGxlcidzIGNvbnN0
cnVjdG9yCisgICAgICAgIGJlZm9yZSBjYWxsaW5nIEJhc2VIVFRQUmVxdWVzdEhhbmRsZXIuaGFu
ZGxlLgorICAgICAgICBCYXNlSFRUUFJlcXVlc3RIYW5kbGVyLmhhbmRsZSB3aWxsIGNhbGwKKyAg
ICAgICAgQmFzZUhUVFBSZXF1ZXN0SGFuZGxlci5oYW5kbGVfb25lX3JlcXVlc3QgYW5kIGl0IHdp
bGwgY2FsbAorICAgICAgICBXZWJTb2NrZXRSZXF1ZXN0SGFuZGxlci5wYXJzZV9yZXF1ZXN0Lgor
ICAgICAgICAiIiIKKworICAgICAgICAjIENhbGwgc3VwZXJjbGFzcydzIHNldHVwIHRvIHByZXBh
cmUgcmZpbGUsIHdmaWxlLCBldGMuIFNlZSBzZXR1cAorICAgICAgICAjIGRlZmluaXRpb24gb24g
dGhlIHJvb3QgY2xhc3MgU29ja2V0U2VydmVyLlN0cmVhbVJlcXVlc3RIYW5kbGVyIHRvCisgICAg
ICAgICMgdW5kZXJzdGFuZCB3aGF0IHRoaXMgZG9lcy4KKyAgICAgICAgQ0dJSFRUUFNlcnZlci5D
R0lIVFRQUmVxdWVzdEhhbmRsZXIuc2V0dXAoc2VsZikKKworICAgICAgICBzZWxmLnJmaWxlID0g
bWVtb3JpemluZ2ZpbGUuTWVtb3JpemluZ0ZpbGUoCisgICAgICAgICAgICBzZWxmLnJmaWxlLAor
ICAgICAgICAgICAgbWF4X21lbW9yaXplZF9saW5lcz1fTUFYX01FTU9SSVpFRF9MSU5FUykKKwor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0LCBjbGllbnRfYWRkcmVzcywgc2VydmVyKToK
KyAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCisKKyAg
ICAgICAgc2VsZi5fb3B0aW9ucyA9IHNlcnZlci53ZWJzb2NrZXRfc2VydmVyX29wdGlvbnMKKwor
ICAgICAgICAjIE92ZXJyaWRlcyBDR0lIVFRQU2VydmVyUmVxdWVzdEhhbmRsZXIuY2dpX2RpcmVj
dG9yaWVzLgorICAgICAgICBzZWxmLmNnaV9kaXJlY3RvcmllcyA9IHNlbGYuX29wdGlvbnMuY2dp
X2RpcmVjdG9yaWVzCisgICAgICAgICMgUmVwbGFjZSBDR0lIVFRQUmVxdWVzdEhhbmRsZXIuaXNf
ZXhlY3V0YWJsZSBtZXRob2QuCisgICAgICAgIGlmIHNlbGYuX29wdGlvbnMuaXNfZXhlY3V0YWJs
ZV9tZXRob2QgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLmlzX2V4ZWN1dGFibGUgPSBz
ZWxmLl9vcHRpb25zLmlzX2V4ZWN1dGFibGVfbWV0aG9kCisKKyAgICAgICAgIyBUaGlzIGFjdHVh
bGx5IGNhbGxzIEJhc2VSZXF1ZXN0SGFuZGxlci5fX2luaXRfXy4KKyAgICAgICAgQ0dJSFRUUFNl
cnZlci5DR0lIVFRQUmVxdWVzdEhhbmRsZXIuX19pbml0X18oCisgICAgICAgICAgICBzZWxmLCBy
ZXF1ZXN0LCBjbGllbnRfYWRkcmVzcywgc2VydmVyKQorCisgICAgZGVmIHBhcnNlX3JlcXVlc3Qo
c2VsZik6CisgICAgICAgICIiIk92ZXJyaWRlIEJhc2VIVFRQU2VydmVyLkJhc2VIVFRQUmVxdWVz
dEhhbmRsZXIucGFyc2VfcmVxdWVzdC4KKworICAgICAgICBSZXR1cm4gVHJ1ZSB0byBjb250aW51
ZSBwcm9jZXNzaW5nIGZvciBIVFRQKFMpLCBGYWxzZSBvdGhlcndpc2UuCisKKyAgICAgICAgU2Vl
IEJhc2VIVFRQUmVxdWVzdEhhbmRsZXIuaGFuZGxlX29uZV9yZXF1ZXN0IG1ldGhvZCB3aGljaCBj
YWxscworICAgICAgICB0aGlzIG1ldGhvZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgcmV0dXJuIHZh
bHVlIHdpbGwgYmUgaGFuZGxlZC4KKyAgICAgICAgIiIiCisKKyAgICAgICAgIyBXZSBob29rIHBh
cnNlX3JlcXVlc3QgbWV0aG9kLCBidXQgYWxzbyBjYWxsIHRoZSBvcmlnaW5hbAorICAgICAgICAj
IENHSUhUVFBSZXF1ZXN0SGFuZGxlci5wYXJzZV9yZXF1ZXN0IHNpbmNlIHdoZW4gd2UgcmV0dXJu
IEZhbHNlLAorICAgICAgICAjIENHSUhUVFBSZXF1ZXN0SGFuZGxlci5oYW5kbGVfb25lX3JlcXVl
c3QgY29udGludWVzIHByb2Nlc3NpbmcgYW5kCisgICAgICAgICMgaXQgbmVlZHMgdmFyaWFibGVz
IHNldCBieSBDR0lIVFRQUmVxdWVzdEhhbmRsZXIucGFyc2VfcmVxdWVzdC4KKyAgICAgICAgIwor
ICAgICAgICAjIFZhcmlhYmxlcyBzZXQgYnkgdGhpcyBtZXRob2Qgd2lsbCBiZSBhbHNvIHVzZWQg
YnkgV2ViU29ja2V0IHJlcXVlc3QKKyAgICAgICAgIyBoYW5kbGluZyAoc2VsZi5wYXRoLCBzZWxm
LmNvbW1hbmQsIHNlbGYucmVxdWVzdGxpbmUsIGV0Yy4gU2VlIGFsc28KKyAgICAgICAgIyBob3cg
X1N0YW5kYWxvbmVSZXF1ZXN0J3MgbWVtYmVycyBhcmUgaW1wbGVtZW50ZWQgdXNpbmcgdGhlc2UK
KyAgICAgICAgIyBhdHRyaWJ1dGVzKS4KKyAgICAgICAgaWYgbm90IENHSUhUVFBTZXJ2ZXIuQ0dJ
SFRUUFJlcXVlc3RIYW5kbGVyLnBhcnNlX3JlcXVlc3Qoc2VsZik6CisgICAgICAgICAgICByZXR1
cm4gRmFsc2UKKworICAgICAgICBpZiBzZWxmLmNvbW1hbmQgPT0gIkNPTk5FQ1QiOgorICAgICAg
ICAgICAgc2VsZi5zZW5kX3Jlc3BvbnNlKDIwMCwgIkNvbm5lY3RlZCIpCisgICAgICAgICAgICBz
ZWxmLnNlbmRfaGVhZGVyKCJDb25uZWN0aW9uIiwgImtlZXAtYWxpdmUiKQorICAgICAgICAgICAg
c2VsZi5lbmRfaGVhZGVycygpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICBp
ZiBzZWxmLl9vcHRpb25zLnVzZV9iYXNpY19hdXRoOgorICAgICAgICAgICAgYXV0aCA9IHNlbGYu
aGVhZGVycy5nZXRoZWFkZXIoJ0F1dGhvcml6YXRpb24nKQorICAgICAgICAgICAgaWYgYXV0aCAh
PSBzZWxmLl9vcHRpb25zLmJhc2ljX2F1dGhfY3JlZGVudGlhbDoKKyAgICAgICAgICAgICAgICBz
ZWxmLnNlbmRfcmVzcG9uc2UoNDAxKQorICAgICAgICAgICAgICAgIHNlbGYuc2VuZF9oZWFkZXIo
J1dXVy1BdXRoZW50aWNhdGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Jh
c2ljIHJlYWxtPSJQeXdlYnNvY2tldCInKQorICAgICAgICAgICAgICAgIHNlbGYuZW5kX2hlYWRl
cnMoKQorICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdSZXF1ZXN0IGJhc2ljIGF1
dGhlbnRpY2F0aW9uJykKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICAj
IFNwZWNpYWwgcGF0aHMgZm9yIFhNTEh0dHBSZXF1ZXN0IGJlbmNobWFyaworICAgICAgICB4aHJf
YmVuY2htYXJrX2hlbHBlcl9wcmVmaXggPSAnLzA3M2JlMDAxZTEwOTUwNjkyY2NiZjNhMmFkMjFj
MjQ1JworICAgICAgICBwYXJzZWRfcGF0aCA9IHVybHBhcnNlLnVybHNwbGl0KHNlbGYucGF0aCkK
KyAgICAgICAgaWYgcGFyc2VkX3BhdGgucGF0aCA9PSAoeGhyX2JlbmNobWFya19oZWxwZXJfcHJl
Zml4ICsgJ19zZW5kJyk6CisgICAgICAgICAgICB4aHJfYmVuY2htYXJrX2hhbmRsZXIgPSBYSFJC
ZW5jaG1hcmtIYW5kbGVyKAorICAgICAgICAgICAgICAgIHNlbGYuaGVhZGVycywgc2VsZi5yZmls
ZSwgc2VsZi53ZmlsZSkKKyAgICAgICAgICAgIHhocl9iZW5jaG1hcmtfaGFuZGxlci5kb19zZW5k
KCkKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBpZiBwYXJzZWRfcGF0aC5wYXRo
ID09ICh4aHJfYmVuY2htYXJrX2hlbHBlcl9wcmVmaXggKyAnX3JlY2VpdmUnKToKKyAgICAgICAg
ICAgIHhocl9iZW5jaG1hcmtfaGFuZGxlciA9IFhIUkJlbmNobWFya0hhbmRsZXIoCisgICAgICAg
ICAgICAgICAgc2VsZi5oZWFkZXJzLCBzZWxmLnJmaWxlLCBzZWxmLndmaWxlKQorICAgICAgICAg
ICAgeGhyX2JlbmNobWFya19oYW5kbGVyLmRvX3JlY2VpdmVfYW5kX3BhcnNlKCkKKyAgICAgICAg
ICAgIHJldHVybiBGYWxzZQorICAgICAgICBpZiBwYXJzZWRfcGF0aC5wYXRoID09ICh4aHJfYmVu
Y2htYXJrX2hlbHBlcl9wcmVmaXggKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
X3JlY2VpdmVfZ2V0bm9jYWNoZScpOgorICAgICAgICAgICAgeGhyX2JlbmNobWFya19oYW5kbGVy
ID0gWEhSQmVuY2htYXJrSGFuZGxlcigKKyAgICAgICAgICAgICAgICBzZWxmLmhlYWRlcnMsIHNl
bGYucmZpbGUsIHNlbGYud2ZpbGUpCisgICAgICAgICAgICB4aHJfYmVuY2htYXJrX2hhbmRsZXIu
ZG9fcmVjZWl2ZSgKKyAgICAgICAgICAgICAgICBpbnQocGFyc2VkX3BhdGgucXVlcnkpLCBGYWxz
ZSwgRmFsc2UpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgaWYgcGFyc2VkX3Bh
dGgucGF0aCA9PSAoeGhyX2JlbmNobWFya19oZWxwZXJfcHJlZml4ICsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ19yZWNlaXZlX2dldGNhY2hlJyk6CisgICAgICAgICAgICB4aHJf
YmVuY2htYXJrX2hhbmRsZXIgPSBYSFJCZW5jaG1hcmtIYW5kbGVyKAorICAgICAgICAgICAgICAg
IHNlbGYuaGVhZGVycywgc2VsZi5yZmlsZSwgc2VsZi53ZmlsZSkKKyAgICAgICAgICAgIHhocl9i
ZW5jaG1hcmtfaGFuZGxlci5kb19yZWNlaXZlKAorICAgICAgICAgICAgICAgIGludChwYXJzZWRf
cGF0aC5xdWVyeSksIEZhbHNlLCBUcnVlKQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAg
ICAgICAgaG9zdCwgcG9ydCwgcmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBhcnNlX3VyaShz
ZWxmLnBhdGgpCisgICAgICAgIGlmIHJlc291cmNlIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxm
Ll9sb2dnZXIuaW5mbygnSW52YWxpZCBVUkk6ICVyJywgc2VsZi5wYXRoKQorICAgICAgICAgICAg
c2VsZi5fbG9nZ2VyLmluZm8oJ0ZhbGxiYWNrIHRvIENHSUhUVFBSZXF1ZXN0SGFuZGxlcicpCisg
ICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBzZXJ2ZXJfb3B0aW9ucyA9IHNlbGYuc2Vy
dmVyLndlYnNvY2tldF9zZXJ2ZXJfb3B0aW9ucworICAgICAgICBpZiBob3N0IGlzIG5vdCBOb25l
OgorICAgICAgICAgICAgdmFsaWRhdGlvbl9ob3N0ID0gc2VydmVyX29wdGlvbnMudmFsaWRhdGlv
bl9ob3N0CisgICAgICAgICAgICBpZiB2YWxpZGF0aW9uX2hvc3QgaXMgbm90IE5vbmUgYW5kIGhv
c3QgIT0gdmFsaWRhdGlvbl9ob3N0OgorICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZv
KCdJbnZhbGlkIGhvc3Q6ICVyIChleHBlY3RlZDogJXIpJywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBob3N0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZh
bGlkYXRpb25faG9zdCkKKyAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnRmFsbGJh
Y2sgdG8gQ0dJSFRUUFJlcXVlc3RIYW5kbGVyJykKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1
ZQorICAgICAgICBpZiBwb3J0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgdmFsaWRhdGlvbl9w
b3J0ID0gc2VydmVyX29wdGlvbnMudmFsaWRhdGlvbl9wb3J0CisgICAgICAgICAgICBpZiB2YWxp
ZGF0aW9uX3BvcnQgaXMgbm90IE5vbmUgYW5kIHBvcnQgIT0gdmFsaWRhdGlvbl9wb3J0OgorICAg
ICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdJbnZhbGlkIHBvcnQ6ICVyIChleHBlY3Rl
ZDogJXIpJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25fcG9ydCkKKyAgICAgICAgICAg
ICAgICBzZWxmLl9sb2dnZXIuaW5mbygnRmFsbGJhY2sgdG8gQ0dJSFRUUFJlcXVlc3RIYW5kbGVy
JykKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBzZWxmLnBhdGggPSByZXNv
dXJjZQorCisgICAgICAgIHJlcXVlc3QgPSBfU3RhbmRhbG9uZVJlcXVlc3Qoc2VsZiwgc2VsZi5f
b3B0aW9ucy51c2VfdGxzKQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgRmFsbGJhY2sg
dG8gZGVmYXVsdCBodHRwIGhhbmRsZXIgZm9yIHJlcXVlc3QgcGF0aHMgZm9yIHdoaWNoCisgICAg
ICAgICAgICAjIHdlIGRvbid0IGhhdmUgcmVxdWVzdCBoYW5kbGVycy4KKyAgICAgICAgICAgIGlm
IG5vdCBzZWxmLl9vcHRpb25zLmRpc3BhdGNoZXIuZ2V0X2hhbmRsZXJfc3VpdGUoc2VsZi5wYXRo
KToKKyAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnTm8gaGFuZGxlciBmb3IgcmVz
b3VyY2U6ICVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBhdGgp
CisgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0ZhbGxiYWNrIHRvIENHSUhUVFBS
ZXF1ZXN0SGFuZGxlcicpCisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgZXhj
ZXB0IGRpc3BhdGNoLkRpc3BhdGNoRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgc2VsZi5fbG9n
Z2VyLmluZm8oJ0Rpc3BhdGNoIGZhaWxlZCBmb3IgZXJyb3I6ICVzJywgZSkKKyAgICAgICAgICAg
IHNlbGYuc2VuZF9lcnJvcihlLnN0YXR1cykKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisg
ICAgICAgICMgSWYgYW55IEV4Y2VwdGlvbnMgd2l0aG91dCBleGNlcHQgY2xhdXNlIHNldHVwIChp
bmNsdWRpbmcKKyAgICAgICAgIyBEaXNwYXRjaEV4Y2VwdGlvbikgaXMgcmFpc2VkIGJlbG93IHRo
aXMgcG9pbnQsIGl0IHdpbGwgYmUgY2F1Z2h0CisgICAgICAgICMgYW5kIGxvZ2dlZCBieSBXZWJT
b2NrZXRTZXJ2ZXIuCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgICAgIGhhbmRzaGFrZS5kb19oYW5kc2hha2UoCisgICAgICAgICAgICAgICAgICAgIHJlcXVl
c3QsCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuZGlzcGF0Y2hlciwKKyAgICAg
ICAgICAgICAgICAgICAgYWxsb3dEcmFmdDc1PXNlbGYuX29wdGlvbnMuYWxsb3dfZHJhZnQ3NSwK
KyAgICAgICAgICAgICAgICAgICAgc3RyaWN0PXNlbGYuX29wdGlvbnMuc3RyaWN0KQorICAgICAg
ICAgICAgZXhjZXB0IGhhbmRzaGFrZS5WZXJzaW9uRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAg
ICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdIYW5kc2hha2UgZmFpbGVkIGZvciB2ZXJzaW9uIGVycm9y
OiAlcycsIGUpCisgICAgICAgICAgICAgICAgc2VsZi5zZW5kX3Jlc3BvbnNlKGNvbW1vbi5IVFRQ
X1NUQVRVU19CQURfUkVRVUVTVCkKKyAgICAgICAgICAgICAgICBzZWxmLnNlbmRfaGVhZGVyKGNv
bW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVBREVSLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZS5zdXBwb3J0ZWRfdmVyc2lvbnMpCisgICAgICAgICAgICAgICAgc2VsZi5l
bmRfaGVhZGVycygpCisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICBl
eGNlcHQgaGFuZHNoYWtlLkhhbmRzaGFrZUV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgICAgICAj
IEhhbmRzaGFrZSBmb3Igd3MocykgZmFpbGVkLgorICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dl
ci5pbmZvKCdIYW5kc2hha2UgZmFpbGVkIGZvciBlcnJvcjogJXMnLCBlKQorICAgICAgICAgICAg
ICAgIHNlbGYuc2VuZF9lcnJvcihlLnN0YXR1cykKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFs
c2UKKworICAgICAgICAgICAgcmVxdWVzdC5fZGlzcGF0Y2hlciA9IHNlbGYuX29wdGlvbnMuZGlz
cGF0Y2hlcgorICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5kaXNwYXRjaGVyLnRyYW5zZmVyX2Rh
dGEocmVxdWVzdCkKKyAgICAgICAgZXhjZXB0IGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0
aW9uLCBlOgorICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0Fib3J0ZWQ6ICVzJywgZSkK
KyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgbG9nX3JlcXVlc3Qoc2VsZiwgY29kZT0n
LScsIHNpemU9Jy0nKToKKyAgICAgICAgIiIiT3ZlcnJpZGUgQmFzZUhUVFBTZXJ2ZXIubG9nX3Jl
cXVlc3QuIiIiCisKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJyIlcyIgJXMgJXMnLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJlcXVlc3RsaW5lLCBzdHIoY29kZSksIHN0cihz
aXplKSkKKworICAgIGRlZiBsb2dfZXJyb3Ioc2VsZiwgKmFyZ3MpOgorICAgICAgICAiIiJPdmVy
cmlkZSBCYXNlSFRUUFNlcnZlci5sb2dfZXJyb3IuIiIiCisKKyAgICAgICAgIyBEZXNwaXRlIHRo
ZSBuYW1lLCB0aGlzIG1ldGhvZCBpcyBmb3Igd2FybmluZ3MgdGhhbiBmb3IgZXJyb3JzLgorICAg
ICAgICAjIEZvciBleGFtcGxlLCBIVFRQIHN0YXR1cyBjb2RlIGlzIGxvZ2dlZCBieSB0aGlzIG1l
dGhvZC4KKyAgICAgICAgc2VsZi5fbG9nZ2VyLndhcm5pbmcoJyVzIC0gJXMnLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLmFkZHJlc3Nfc3RyaW5nKCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFyZ3NbMF0gJSBhcmdzWzE6XSkKKworICAgIGRlZiBpc19jZ2koc2Vs
Zik6CisgICAgICAgICIiIlRlc3Qgd2hldGhlciBzZWxmLnBhdGggY29ycmVzcG9uZHMgdG8gYSBD
R0kgc2NyaXB0LgorCisgICAgICAgIEFkZCBleHRyYSBjaGVjayB0aGF0IHNlbGYucGF0aCBkb2Vz
bid0IGNvbnRhaW5zIC4uCisgICAgICAgIEFsc28gY2hlY2sgaWYgdGhlIGZpbGUgaXMgYSBleGVj
dXRhYmxlIGZpbGUgb3Igbm90LgorICAgICAgICBJZiB0aGUgZmlsZSBpcyBub3QgZXhlY3V0YWJs
ZSwgaXQgaXMgaGFuZGxlZCBhcyBzdGF0aWMgZmlsZSBvciBkaXIKKyAgICAgICAgcmF0aGVyIHRo
YW4gYSBDR0kgc2NyaXB0LgorICAgICAgICAiIiIKKworICAgICAgICBpZiBDR0lIVFRQU2VydmVy
LkNHSUhUVFBSZXF1ZXN0SGFuZGxlci5pc19jZ2koc2VsZik6CisgICAgICAgICAgICBpZiAnLi4n
IGluIHNlbGYucGF0aDoKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAg
ICMgc3RyaXAgcXVlcnkgcGFyYW1ldGVyIGZyb20gcmVxdWVzdCBwYXRoCisgICAgICAgICAgICBy
ZXNvdXJjZV9uYW1lID0gc2VsZi5wYXRoLnNwbGl0KCc/JywgMilbMF0KKyAgICAgICAgICAgICMg
Y29udmVydCByZXNvdXJjZV9uYW1lIGludG8gcmVhbCBwYXRoIG5hbWUgaW4gZmlsZXN5c3RlbS4K
KyAgICAgICAgICAgIHNjcmlwdGZpbGUgPSBzZWxmLnRyYW5zbGF0ZV9wYXRoKHJlc291cmNlX25h
bWUpCisgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoc2NyaXB0ZmlsZSk6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICBpZiBub3Qgc2VsZi5pc19leGVj
dXRhYmxlKHNjcmlwdGZpbGUpOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAg
ICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKworZGVmIF9nZXRfbG9n
Z2VyX2Zyb21fY2xhc3MoYyk6CisgICAgcmV0dXJuIGxvZ2dpbmcuZ2V0TG9nZ2VyKCclcy4lcycg
JSAoYy5fX21vZHVsZV9fLCBjLl9fbmFtZV9fKSkKKworCitkZWYgX2NvbmZpZ3VyZV9sb2dnaW5n
KG9wdGlvbnMpOgorICAgIGxvZ2dpbmcuYWRkTGV2ZWxOYW1lKGNvbW1vbi5MT0dMRVZFTF9GSU5F
LCAnRklORScpCisKKyAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigpCisgICAgbG9nZ2Vy
LnNldExldmVsKGxvZ2dpbmcuZ2V0TGV2ZWxOYW1lKG9wdGlvbnMubG9nX2xldmVsLnVwcGVyKCkp
KQorICAgIGlmIG9wdGlvbnMubG9nX2ZpbGU6CisgICAgICAgIGhhbmRsZXIgPSBsb2dnaW5nLmhh
bmRsZXJzLlJvdGF0aW5nRmlsZUhhbmRsZXIoCisgICAgICAgICAgICAgICAgb3B0aW9ucy5sb2df
ZmlsZSwgJ2EnLCBvcHRpb25zLmxvZ19tYXgsIG9wdGlvbnMubG9nX2NvdW50KQorICAgIGVsc2U6
CisgICAgICAgIGhhbmRsZXIgPSBsb2dnaW5nLlN0cmVhbUhhbmRsZXIoKQorICAgIGZvcm1hdHRl
ciA9IGxvZ2dpbmcuRm9ybWF0dGVyKAorICAgICAgICAgICAgJ1slKGFzY3RpbWUpc10gWyUobGV2
ZWxuYW1lKXNdICUobmFtZSlzOiAlKG1lc3NhZ2UpcycpCisgICAgaGFuZGxlci5zZXRGb3JtYXR0
ZXIoZm9ybWF0dGVyKQorICAgIGxvZ2dlci5hZGRIYW5kbGVyKGhhbmRsZXIpCisKKyAgICBkZWZs
YXRlX2xvZ19sZXZlbF9uYW1lID0gbG9nZ2luZy5nZXRMZXZlbE5hbWUoCisgICAgICAgIG9wdGlv
bnMuZGVmbGF0ZV9sb2dfbGV2ZWwudXBwZXIoKSkKKyAgICBfZ2V0X2xvZ2dlcl9mcm9tX2NsYXNz
KHV0aWwuX0RlZmxhdGVyKS5zZXRMZXZlbCgKKyAgICAgICAgZGVmbGF0ZV9sb2dfbGV2ZWxfbmFt
ZSkKKyAgICBfZ2V0X2xvZ2dlcl9mcm9tX2NsYXNzKHV0aWwuX0luZmxhdGVyKS5zZXRMZXZlbCgK
KyAgICAgICAgZGVmbGF0ZV9sb2dfbGV2ZWxfbmFtZSkKKworCitkZWYgX2J1aWxkX29wdGlvbl9w
YXJzZXIoKToKKyAgICBwYXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIoKQorCisgICAgcGFy
c2VyLmFkZF9vcHRpb24oJy0tY29uZmlnJywgZGVzdD0nY29uZmlnX2ZpbGUnLCB0eXBlPSdzdHJp
bmcnLAorICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKKyAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSgnUGF0aCB0byBjb25maWd1cmF0aW9uIGZpbGUuIFNlZSB0aGUgZmlsZSBj
b21tZW50ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXQgdGhlIHRvcCBvZiB0aGlz
IGZpbGUgZm9yIHRoZSBjb25maWd1cmF0aW9uICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAnZmlsZSBmb3JtYXQnKSkKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLUgnLCAnLS1zZXJ2ZXIt
aG9zdCcsICctLXNlcnZlcl9ob3N0JywKKyAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdzZXJ2
ZXJfaG9zdCcsCisgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nJywKKyAgICAgICAgICAg
ICAgICAgICAgICBoZWxwPSdzZXJ2ZXIgaG9zdG5hbWUgdG8gbGlzdGVuIHRvJykKKyAgICBwYXJz
ZXIuYWRkX29wdGlvbignLVYnLCAnLS12YWxpZGF0aW9uLWhvc3QnLCAnLS12YWxpZGF0aW9uX2hv
c3QnLAorICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3ZhbGlkYXRpb25faG9zdCcsCisgICAg
ICAgICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgIGhl
bHA9J3NlcnZlciBob3N0bmFtZSB0byB2YWxpZGF0ZSBpbiBhYnNvbHV0ZSBwYXRoLicpCisgICAg
cGFyc2VyLmFkZF9vcHRpb24oJy1wJywgJy0tcG9ydCcsIGRlc3Q9J3BvcnQnLCB0eXBlPSdpbnQn
LAorICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Y29tbW9uLkRFRkFVTFRfV0VCX1NPQ0tF
VF9QT1JULAorICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3BvcnQgdG8gbGlzdGVuIHRvJykK
KyAgICBwYXJzZXIuYWRkX29wdGlvbignLVAnLCAnLS12YWxpZGF0aW9uLXBvcnQnLCAnLS12YWxp
ZGF0aW9uX3BvcnQnLAorICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3ZhbGlkYXRpb25fcG9y
dCcsIHR5cGU9J2ludCcsCisgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25lLAorICAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9J3NlcnZlciBwb3J0IHRvIHZhbGlkYXRlIGluIGFic29s
dXRlIHBhdGguJykKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLXcnLCAnLS13ZWJzb2NrLWhhbmRs
ZXJzJywgJy0td2Vic29ja19oYW5kbGVycycsCisgICAgICAgICAgICAgICAgICAgICAgZGVzdD0n
d2Vic29ja19oYW5kbGVycycsCisgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nLicsCisg
ICAgICAgICAgICAgICAgICAgICAgaGVscD0oJ1RoZSByb290IGRpcmVjdG9yeSBvZiBXZWJTb2Nr
ZXQgaGFuZGxlciBmaWxlcy4gJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdJZiB0aGUg
cGF0aCBpcyByZWxhdGl2ZSwgLS1kb2N1bWVudC1yb290IGlzIHVzZWQgJworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdhcyB0aGUgYmFzZS4nKSkKKyAgICBwYXJzZXIuYWRkX29wdGlvbign
LW0nLCAnLS13ZWJzb2NrLWhhbmRsZXJzLW1hcC1maWxlJywKKyAgICAgICAgICAgICAgICAgICAg
ICAnLS13ZWJzb2NrX2hhbmRsZXJzX21hcF9maWxlJywKKyAgICAgICAgICAgICAgICAgICAgICBk
ZXN0PSd3ZWJzb2NrX2hhbmRsZXJzX21hcF9maWxlJywKKyAgICAgICAgICAgICAgICAgICAgICBk
ZWZhdWx0PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgaGVscD0oJ1dlYlNvY2tldCBoYW5k
bGVycyBtYXAgZmlsZS4gJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdFYWNoIGxpbmUg
Y29uc2lzdHMgb2YgYWxpYXNfcmVzb3VyY2VfcGF0aCBhbmQgJworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdleGlzdGluZ19yZXNvdXJjZV9wYXRoLCBzZXBhcmF0ZWQgYnkgc3BhY2VzLicp
KQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcycsICctLXNjYW4tZGlyJywgJy0tc2Nhbl9kaXIn
LCBkZXN0PSdzY2FuX2RpcicsCisgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25lLAor
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdNdXN0IGJlIGEgZGlyZWN0b3J5IHVuZGVyIC0t
d2Vic29jay1oYW5kbGVycy4gJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdPbmx5IGhh
bmRsZXJzIHVuZGVyIHRoaXMgZGlyZWN0b3J5IGFyZSBzY2FubmVkICcKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnYW5kIHJlZ2lzdGVyZWQgdG8gdGhlIHNlcnZlci4gJworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdVc2VmdWwgZm9yIHNhdmluZyBzY2FuIHRpbWUgd2hlbiB0aGUg
aGFuZGxlciAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Jvb3QgZGlyZWN0b3J5IGNv
bnRhaW5zIGxvdHMgb2YgZmlsZXMgdGhhdCBhcmUgJworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdub3QgaGFuZGxlciBmaWxlIG9yIGFyZSBoYW5kbGVyIGZpbGVzIGJ1dCB5b3UgJworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdkb25cJ3Qgd2FudCB0aGVtIHRvIGJlIHJlZ2lzdGVy
ZWQuICcpKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWFsbG93LWhhbmRsZXJzLW91dHNpZGUt
cm9vdC1kaXInLAorICAgICAgICAgICAgICAgICAgICAgICctLWFsbG93X2hhbmRsZXJzX291dHNp
ZGVfcm9vdF9kaXInLAorICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J2FsbG93X2hhbmRsZXJz
X291dHNpZGVfcm9vdF9kaXInLAorICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVf
dHJ1ZScsCisgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAg
ICAgICAgICAgICBoZWxwPSgnU2NhbnMgV2ViU29ja2V0IGhhbmRsZXJzIGV2ZW4gaWYgdGhlaXIg
Y2Fub25pY2FsICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGF0aCBpcyBub3QgdW5k
ZXIgLS13ZWJzb2NrLWhhbmRsZXJzLicpKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctZCcsICct
LWRvY3VtZW50LXJvb3QnLCAnLS1kb2N1bWVudF9yb290JywKKyAgICAgICAgICAgICAgICAgICAg
ICBkZXN0PSdkb2N1bWVudF9yb290JywgZGVmYXVsdD0nLicsCisgICAgICAgICAgICAgICAgICAg
ICAgaGVscD0nRG9jdW1lbnQgcm9vdCBkaXJlY3RvcnkuJykKKyAgICBwYXJzZXIuYWRkX29wdGlv
bignLXgnLCAnLS1jZ2ktcGF0aHMnLCAnLS1jZ2lfcGF0aHMnLCBkZXN0PSdjZ2lfcGF0aHMnLAor
ICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAg
ICBoZWxwPSgnQ0dJIHBhdGhzIHJlbGF0aXZlIHRvIGRvY3VtZW50X3Jvb3QuJworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICdDb21tYS1zZXBhcmF0ZWQuIChlLmcgLXggL2NnaSwvaHRiaW4p
ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRmlsZXMgdW5kZXIgZG9jdW1lbnRfcm9v
dC9jZ2lfcGF0aCBhcmUgaGFuZGxlZCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Fz
IENHSSBwcm9ncmFtcy4gTXVzdCBiZSBleGVjdXRhYmxlLicpKQorICAgIHBhcnNlci5hZGRfb3B0
aW9uKCctdCcsICctLXRscycsIGRlc3Q9J3VzZV90bHMnLCBhY3Rpb249J3N0b3JlX3RydWUnLAor
ICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9J3VzZSBUTFMgKHdzczov
LyknKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXRscy1tb2R1bGUnLCAnLS10bHNfbW9kdWxl
JywgZGVzdD0ndGxzX21vZHVsZScsCisgICAgICAgICAgICAgICAgICAgICAgdHlwZT0nY2hvaWNl
JywKKyAgICAgICAgICAgICAgICAgICAgICBjaG9pY2VzID0gW19UTFNfQllfU1RBTkRBUkRfTU9E
VUxFLCBfVExTX0JZX1BZT1BFTlNTTF0sCisgICAgICAgICAgICAgICAgICAgICAgaGVscD0nVXNl
IHNzbCBtb2R1bGUgaWYgIiVzIiBpcyBzcGVjaWZpZWQuICcKKyAgICAgICAgICAgICAgICAgICAg
ICAnVXNlIHB5T3BlblNTTCBtb2R1bGUgaWYgIiVzIiBpcyBzcGVjaWZpZWQnICUKKyAgICAgICAg
ICAgICAgICAgICAgICAoX1RMU19CWV9TVEFOREFSRF9NT0RVTEUsIF9UTFNfQllfUFlPUEVOU1NM
KSkKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLWsnLCAnLS1wcml2YXRlLWtleScsICctLXByaXZh
dGVfa2V5JywKKyAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdwcml2YXRlX2tleScsCisgICAg
ICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nJywgaGVscD0nVExTIHByaXZhdGUga2V5IGZpbGUu
JykKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLWMnLCAnLS1jZXJ0aWZpY2F0ZScsIGRlc3Q9J2Nl
cnRpZmljYXRlJywKKyAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PScnLCBoZWxwPSdUTFMg
Y2VydGlmaWNhdGUgZmlsZS4nKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXRscy1jbGllbnQt
YXV0aCcsIGRlc3Q9J3Rsc19jbGllbnRfYXV0aCcsCisgICAgICAgICAgICAgICAgICAgICAgYWN0
aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICBo
ZWxwPSdSZXF1ZXN0cyBUTFMgY2xpZW50IGF1dGggb24gZXZlcnkgY29ubmVjdGlvbi4nKQorICAg
IHBhcnNlci5hZGRfb3B0aW9uKCctLXRscy1jbGllbnQtY2VydC1vcHRpb25hbCcsCisgICAgICAg
ICAgICAgICAgICAgICAgZGVzdD0ndGxzX2NsaWVudF9jZXJ0X29wdGlvbmFsJywKKyAgICAgICAg
ICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAorICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9KCdNYWtlcyBjbGllbnQgY2VydGlmaWNhdGUgb3B0aW9uYWwg
ZXZlbiB0aG91Z2ggJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdUTFMgY2xpZW50IGF1
dGggaXMgZW5hYmxlZC4nKSkKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLS10bHMtY2xpZW50LWNh
JywgZGVzdD0ndGxzX2NsaWVudF9jYScsIGRlZmF1bHQ9JycsCisgICAgICAgICAgICAgICAgICAg
ICAgaGVscD0oJ1NwZWNpZmllcyBhIHBlbSBmaWxlIHdoaWNoIGNvbnRhaW5zIGEgc2V0IG9mICcK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uY2F0ZW5hdGVkIENBIGNlcnRpZmljYXRl
cyB3aGljaCBhcmUgdXNlZCB0byAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbGlk
YXRlIGNlcnRpZmljYXRlcyBwYXNzZWQgZnJvbSBjbGllbnRzJykpCisgICAgcGFyc2VyLmFkZF9v
cHRpb24oJy0tYmFzaWMtYXV0aCcsIGRlc3Q9J3VzZV9iYXNpY19hdXRoJywKKyAgICAgICAgICAg
ICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9J1JlcXVpcmVzIEJhc2ljIGF1dGhlbnRpY2F0aW9uLicpCisgICAg
cGFyc2VyLmFkZF9vcHRpb24oJy0tYmFzaWMtYXV0aC1jcmVkZW50aWFsJywKKyAgICAgICAgICAg
ICAgICAgICAgICBkZXN0PSdiYXNpY19hdXRoX2NyZWRlbnRpYWwnLCBkZWZhdWx0PSd0ZXN0OnRl
c3QnLAorICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1NwZWNpZmllcyB0aGUgY3JlZGVudGlh
bCBvZiBiYXNpYyBhdXRoZW50aWNhdGlvbiAnCisgICAgICAgICAgICAgICAgICAgICAgJ2J5IHVz
ZXJuYW1lOnBhc3N3b3JkIHBhaXIgKGUuZy4gdGVzdDp0ZXN0KS4nKQorICAgIHBhcnNlci5hZGRf
b3B0aW9uKCctbCcsICctLWxvZy1maWxlJywgJy0tbG9nX2ZpbGUnLCBkZXN0PSdsb2dfZmlsZScs
CisgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nJywgaGVscD0nTG9nIGZpbGUuJykKKyAg
ICAjIEN1c3RvbSBsb2cgbGV2ZWw6CisgICAgIyAtIEZJTkU6IFByaW50cyBzdGF0dXMgb2YgZWFj
aCBmcmFtZSBwcm9jZXNzaW5nIHN0ZXAKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLS1sb2ctbGV2
ZWwnLCAnLS1sb2dfbGV2ZWwnLCB0eXBlPSdjaG9pY2UnLAorICAgICAgICAgICAgICAgICAgICAg
IGRlc3Q9J2xvZ19sZXZlbCcsIGRlZmF1bHQ9J3dhcm4nLAorICAgICAgICAgICAgICAgICAgICAg
IGNob2ljZXM9WydmaW5lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVidWcn
LCAnaW5mbycsICd3YXJuaW5nJywgJ3dhcm4nLCAnZXJyb3InLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdjcml0aWNhbCddLAorICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J0xv
ZyBsZXZlbC4nKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWRlZmxhdGUtbG9nLWxldmVsJywg
Jy0tZGVmbGF0ZV9sb2dfbGV2ZWwnLAorICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J2Nob2lj
ZScsCisgICAgICAgICAgICAgICAgICAgICAgZGVzdD0nZGVmbGF0ZV9sb2dfbGV2ZWwnLCBkZWZh
dWx0PSd3YXJuJywKKyAgICAgICAgICAgICAgICAgICAgICBjaG9pY2VzPVsnZGVidWcnLCAnaW5m
bycsICd3YXJuaW5nJywgJ3dhcm4nLCAnZXJyb3InLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdjcml0aWNhbCddLAorICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J0xvZyBsZXZl
bCBmb3IgX0RlZmxhdGVyIGFuZCBfSW5mbGF0ZXIuJykKKyAgICBwYXJzZXIuYWRkX29wdGlvbign
LS10aHJlYWQtbW9uaXRvci1pbnRlcnZhbC1pbi1zZWMnLAorICAgICAgICAgICAgICAgICAgICAg
ICctLXRocmVhZF9tb25pdG9yX2ludGVydmFsX2luX3NlYycsCisgICAgICAgICAgICAgICAgICAg
ICAgZGVzdD0ndGhyZWFkX21vbml0b3JfaW50ZXJ2YWxfaW5fc2VjJywKKyAgICAgICAgICAgICAg
ICAgICAgICB0eXBlPSdpbnQnLCBkZWZhdWx0PS0xLAorICAgICAgICAgICAgICAgICAgICAgIGhl
bHA9KCdJZiBwb3NpdGl2ZSBpbnRlZ2VyIGlzIHNwZWNpZmllZCwgcnVuIGEgdGhyZWFkICcKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9uaXRvciB0byBzaG93IHRoZSBzdGF0dXMgb2Yg
c2VydmVyIHRocmVhZHMgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwZXJpb2RpY2Fs
bHkgaW4gdGhlIHNwZWNpZmllZCBpbnRldmFsIGluICcKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnc2Vjb25kLiBJZiBub24tcG9zaXRpdmUgaW50ZWdlciBpcyBzcGVjaWZpZWQsICcKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlzYWJsZSB0aGUgdGhyZWFkIG1vbml0b3IuJykp
CisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tbG9nLW1heCcsICctLWxvZ19tYXgnLCBkZXN0PSds
b2dfbWF4JywgdHlwZT0naW50JywKKyAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PV9ERUZB
VUxUX0xPR19NQVhfQllURVMsCisgICAgICAgICAgICAgICAgICAgICAgaGVscD0nTG9nIG1heGlt
dW0gYnl0ZXMnKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWxvZy1jb3VudCcsICctLWxvZ19j
b3VudCcsIGRlc3Q9J2xvZ19jb3VudCcsCisgICAgICAgICAgICAgICAgICAgICAgdHlwZT0naW50
JywgZGVmYXVsdD1fREVGQVVMVF9MT0dfQkFDS1VQX0NPVU5ULAorICAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9J0xvZyBiYWNrdXAgY291bnQnKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWFs
bG93LWRyYWZ0NzUnLCBkZXN0PSdhbGxvd19kcmFmdDc1JywKKyAgICAgICAgICAgICAgICAgICAg
ICBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9J09ic29sZXRlIG9wdGlvbi4gSWdub3JlZC4nKQorICAgIHBhcnNlci5hZGRfb3B0
aW9uKCctLXN0cmljdCcsIGRlc3Q9J3N0cmljdCcsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCisgICAg
ICAgICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwgaGVscD0nT2Jzb2xldGUgb3B0aW9uLiBJ
Z25vcmVkLicpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1xJywgJy0tcXVldWUnLCBkZXN0PSdy
ZXF1ZXN0X3F1ZXVlX3NpemUnLCB0eXBlPSdpbnQnLAorICAgICAgICAgICAgICAgICAgICAgIGRl
ZmF1bHQ9X0RFRkFVTFRfUkVRVUVTVF9RVUVVRV9TSVpFLAorICAgICAgICAgICAgICAgICAgICAg
IGhlbHA9J3JlcXVlc3QgcXVldWUgc2l6ZScpCisKKyAgICByZXR1cm4gcGFyc2VyCisKKworY2xh
c3MgVGhyZWFkTW9uaXRvcih0aHJlYWRpbmcuVGhyZWFkKToKKyAgICBkYWVtb24gPSBUcnVlCisK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgaW50ZXJ2YWxfaW5fc2VjKToKKyAgICAgICAgdGhyZWFk
aW5nLlRocmVhZC5fX2luaXRfXyhzZWxmLCBuYW1lPSdUaHJlYWRNb25pdG9yJykKKworICAgICAg
ICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKKworICAgICAgICBz
ZWxmLl9pbnRlcnZhbF9pbl9zZWMgPSBpbnRlcnZhbF9pbl9zZWMKKworICAgIGRlZiBydW4oc2Vs
Zik6CisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICB0aHJlYWRfbmFtZV9saXN0ID0g
W10KKyAgICAgICAgICAgIGZvciB0aHJlYWQgaW4gdGhyZWFkaW5nLmVudW1lcmF0ZSgpOgorICAg
ICAgICAgICAgICAgIHRocmVhZF9uYW1lX2xpc3QuYXBwZW5kKHRocmVhZC5uYW1lKQorICAgICAg
ICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oCisgICAgICAgICAgICAgICAgIiVkIGFjdGl2ZSB0aHJl
YWRzOiAlcyIsCisgICAgICAgICAgICAgICAgdGhyZWFkaW5nLmFjdGl2ZV9jb3VudCgpLAorICAg
ICAgICAgICAgICAgICcsICcuam9pbih0aHJlYWRfbmFtZV9saXN0KSkKKyAgICAgICAgICAgIHRp
bWUuc2xlZXAoc2VsZi5faW50ZXJ2YWxfaW5fc2VjKQorCisKK2RlZiBfcGFyc2VfYXJnc19hbmRf
Y29uZmlnKGFyZ3MpOgorICAgIHBhcnNlciA9IF9idWlsZF9vcHRpb25fcGFyc2VyKCkKKworICAg
ICMgRmlyc3QsIHBhcnNlIG9wdGlvbnMgd2l0aG91dCBjb25maWd1cmF0aW9uIGZpbGUuCisgICAg
dGVtcG9yYXJ5X29wdGlvbnMsIHRlbXBvcmFyeV9hcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoYXJn
cz1hcmdzKQorICAgIGlmIHRlbXBvcmFyeV9hcmdzOgorICAgICAgICBsb2dnaW5nLmNyaXRpY2Fs
KAorICAgICAgICAgICAgJ1VucmVjb2duaXplZCBwb3NpdGlvbmFsIGFyZ3VtZW50czogJXInLCB0
ZW1wb3JhcnlfYXJncykKKyAgICAgICAgc3lzLmV4aXQoMSkKKworICAgIGlmIHRlbXBvcmFyeV9v
cHRpb25zLmNvbmZpZ19maWxlOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBjb25maWdfZnAg
PSBvcGVuKHRlbXBvcmFyeV9vcHRpb25zLmNvbmZpZ19maWxlLCAncicpCisgICAgICAgIGV4Y2Vw
dCBJT0Vycm9yLCBlOgorICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgKKyAgICAgICAgICAg
ICAgICAnRmFpbGVkIHRvIG9wZW4gY29uZmlndXJhdGlvbiBmaWxlICVyOiAlcicsCisgICAgICAg
ICAgICAgICAgdGVtcG9yYXJ5X29wdGlvbnMuY29uZmlnX2ZpbGUsCisgICAgICAgICAgICAgICAg
ZSkKKyAgICAgICAgICAgIHN5cy5leGl0KDEpCisKKyAgICAgICAgY29uZmlnX3BhcnNlciA9IENv
bmZpZ1BhcnNlci5TYWZlQ29uZmlnUGFyc2VyKCkKKyAgICAgICAgY29uZmlnX3BhcnNlci5yZWFk
ZnAoY29uZmlnX2ZwKQorICAgICAgICBjb25maWdfZnAuY2xvc2UoKQorCisgICAgICAgIGFyZ3Nf
ZnJvbV9jb25maWcgPSBbXQorICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gY29uZmlnX3BhcnNl
ci5pdGVtcygncHl3ZWJzb2NrZXQnKToKKyAgICAgICAgICAgIGFyZ3NfZnJvbV9jb25maWcuYXBw
ZW5kKCctLScgKyBuYW1lKQorICAgICAgICAgICAgYXJnc19mcm9tX2NvbmZpZy5hcHBlbmQodmFs
dWUpCisgICAgICAgIGlmIGFyZ3MgaXMgTm9uZToKKyAgICAgICAgICAgIGFyZ3MgPSBhcmdzX2Zy
b21fY29uZmlnCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhcmdzID0gYXJnc19mcm9tX2Nv
bmZpZyArIGFyZ3MKKyAgICAgICAgcmV0dXJuIHBhcnNlci5wYXJzZV9hcmdzKGFyZ3M9YXJncykK
KyAgICBlbHNlOgorICAgICAgICByZXR1cm4gdGVtcG9yYXJ5X29wdGlvbnMsIHRlbXBvcmFyeV9h
cmdzCisKKworZGVmIF9tYWluKGFyZ3M9Tm9uZSk6CisgICAgIiIiWW91IGNhbiBjYWxsIHRoaXMg
ZnVuY3Rpb24gZnJvbSB5b3VyIG93biBwcm9ncmFtLCBidXQgcGxlYXNlIG5vdGUgdGhhdAorICAg
IHRoaXMgZnVuY3Rpb24gaGFzIHNvbWUgc2lkZS1lZmZlY3RzIHRoYXQgbWlnaHQgYWZmZWN0IHlv
dXIgcHJvZ3JhbS4gRm9yCisgICAgZXhhbXBsZSwgdXRpbC53cmFwX3BvcGVuM19mb3Jfd2luIHVz
ZSBpbiB0aGlzIG1ldGhvZCByZXBsYWNlcyBpbXBsZW1lbnRhdGlvbgorICAgIG9mIG9zLnBvcGVu
My4KKyAgICAiIiIKKworICAgIG9wdGlvbnMsIGFyZ3MgPSBfcGFyc2VfYXJnc19hbmRfY29uZmln
KGFyZ3M9YXJncykKKworICAgIG9zLmNoZGlyKG9wdGlvbnMuZG9jdW1lbnRfcm9vdCkKKworICAg
IF9jb25maWd1cmVfbG9nZ2luZyhvcHRpb25zKQorCisgICAgaWYgb3B0aW9ucy5hbGxvd19kcmFm
dDc1OgorICAgICAgICBsb2dnaW5nLndhcm5pbmcoJy0tYWxsb3dfZHJhZnQ3NSBvcHRpb24gaXMg
b2Jzb2xldGUuJykKKworICAgIGlmIG9wdGlvbnMuc3RyaWN0OgorICAgICAgICBsb2dnaW5nLndh
cm5pbmcoJy0tc3RyaWN0IG9wdGlvbiBpcyBvYnNvbGV0ZS4nKQorCisgICAgIyBUT0RPKHR5b3No
aW5vKTogQ2xlYW4gdXAgaW5pdGlhbGl6YXRpb24gb2YgQ0dJIHJlbGF0ZWQgdmFsdWVzLiBNb3Zl
IHNvbWUKKyAgICAjIG9mIGNvZGUgaGVyZSB0byBXZWJTb2NrZXRSZXF1ZXN0SGFuZGxlciBjbGFz
cyBpZiBpdCdzIGJldHRlci4KKyAgICBvcHRpb25zLmNnaV9kaXJlY3RvcmllcyA9IFtdCisgICAg
b3B0aW9ucy5pc19leGVjdXRhYmxlX21ldGhvZCA9IE5vbmUKKyAgICBpZiBvcHRpb25zLmNnaV9w
YXRoczoKKyAgICAgICAgb3B0aW9ucy5jZ2lfZGlyZWN0b3JpZXMgPSBvcHRpb25zLmNnaV9wYXRo
cy5zcGxpdCgnLCcpCisgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSBpbiAoJ2N5Z3dpbicsICd3aW4z
MicpOgorICAgICAgICAgICAgY3lnd2luX3BhdGggPSBOb25lCisgICAgICAgICAgICAjIEZvciBX
aW4zMiBQeXRob24sIGl0IGlzIGV4cGVjdGVkIHRoYXQgQ1lHV0lOX1BBVEgKKyAgICAgICAgICAg
ICMgaXMgc2V0IHRvIGEgZGlyZWN0b3J5IG9mIGN5Z3dpbiBiaW5hcmllcy4KKyAgICAgICAgICAg
ICMgRm9yIGV4YW1wbGUsIHdlYnNvY2tldF9zZXJ2ZXIucHkgaW4gQ2hyb21pdW0gc2V0cyBDWUdX
SU5fUEFUSCB0bworICAgICAgICAgICAgIyBmdWxsIHBhdGggb2YgdGhpcmRfcGFydHkvY3lnd2lu
L2Jpbi4KKyAgICAgICAgICAgIGlmICdDWUdXSU5fUEFUSCcgaW4gb3MuZW52aXJvbjoKKyAgICAg
ICAgICAgICAgICBjeWd3aW5fcGF0aCA9IG9zLmVudmlyb25bJ0NZR1dJTl9QQVRIJ10KKyAgICAg
ICAgICAgIHV0aWwud3JhcF9wb3BlbjNfZm9yX3dpbihjeWd3aW5fcGF0aCkKKworICAgICAgICAg
ICAgZGVmIF9fY2hlY2tfc2NyaXB0KHNjcmlwdHBhdGgpOgorICAgICAgICAgICAgICAgIHJldHVy
biB1dGlsLmdldF9zY3JpcHRfaW50ZXJwKHNjcmlwdHBhdGgsIGN5Z3dpbl9wYXRoKQorCisgICAg
ICAgICAgICBvcHRpb25zLmlzX2V4ZWN1dGFibGVfbWV0aG9kID0gX19jaGVja19zY3JpcHQKKwor
ICAgIGlmIG9wdGlvbnMudXNlX3RsczoKKyAgICAgICAgaWYgb3B0aW9ucy50bHNfbW9kdWxlIGlz
IE5vbmU6CisgICAgICAgICAgICBpZiBfaW1wb3J0X3NzbCgpOgorICAgICAgICAgICAgICAgIG9w
dGlvbnMudGxzX21vZHVsZSA9IF9UTFNfQllfU1RBTkRBUkRfTU9EVUxFCisgICAgICAgICAgICAg
ICAgbG9nZ2luZy5kZWJ1ZygnVXNpbmcgc3NsIG1vZHVsZScpCisgICAgICAgICAgICBlbGlmIF9p
bXBvcnRfcHlvcGVuc3NsKCk6CisgICAgICAgICAgICAgICAgb3B0aW9ucy50bHNfbW9kdWxlID0g
X1RMU19CWV9QWU9QRU5TU0wKKyAgICAgICAgICAgICAgICBsb2dnaW5nLmRlYnVnKCdVc2luZyBw
eU9wZW5TU0wgbW9kdWxlJykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbG9n
Z2luZy5jcml0aWNhbCgKKyAgICAgICAgICAgICAgICAgICAgICAgICdUTFMgc3VwcG9ydCByZXF1
aXJlcyBzc2wgb3IgcHlPcGVuU1NMIG1vZHVsZS4nKQorICAgICAgICAgICAgICAgIHN5cy5leGl0
KDEpCisgICAgICAgIGVsaWYgb3B0aW9ucy50bHNfbW9kdWxlID09IF9UTFNfQllfU1RBTkRBUkRf
TU9EVUxFOgorICAgICAgICAgICAgaWYgbm90IF9pbXBvcnRfc3NsKCk6CisgICAgICAgICAgICAg
ICAgbG9nZ2luZy5jcml0aWNhbCgnc3NsIG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlJykKKyAgICAg
ICAgICAgICAgICBzeXMuZXhpdCgxKQorICAgICAgICBlbGlmIG9wdGlvbnMudGxzX21vZHVsZSA9
PSBfVExTX0JZX1BZT1BFTlNTTDoKKyAgICAgICAgICAgIGlmIG5vdCBfaW1wb3J0X3B5b3BlbnNz
bCgpOgorICAgICAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ3B5T3BlblNTTCBtb2R1bGUg
aXMgbm90IGF2YWlsYWJsZScpCisgICAgICAgICAgICAgICAgc3lzLmV4aXQoMSkKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ0ludmFsaWQgLS10bHMtbW9kdWxl
IG9wdGlvbjogJXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnRsc19t
b2R1bGUpCisgICAgICAgICAgICBzeXMuZXhpdCgxKQorCisgICAgICAgIGlmIG5vdCBvcHRpb25z
LnByaXZhdGVfa2V5IG9yIG5vdCBvcHRpb25zLmNlcnRpZmljYXRlOgorICAgICAgICAgICAgbG9n
Z2luZy5jcml0aWNhbCgKKyAgICAgICAgICAgICAgICAgICAgJ1RvIHVzZSBUTFMsIHNwZWNpZnkg
cHJpdmF0ZV9rZXkgYW5kIGNlcnRpZmljYXRlLicpCisgICAgICAgICAgICBzeXMuZXhpdCgxKQor
CisgICAgICAgIGlmIChvcHRpb25zLnRsc19jbGllbnRfY2VydF9vcHRpb25hbCBhbmQKKyAgICAg
ICAgICAgIG5vdCBvcHRpb25zLnRsc19jbGllbnRfYXV0aCk6CisgICAgICAgICAgICBsb2dnaW5n
LmNyaXRpY2FsKCdDbGllbnQgYXV0aGVudGljYXRpb24gbXVzdCBiZSBlbmFibGVkIHRvICcKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NwZWNpZnkgdGxzX2NsaWVudF9jZXJ0X29wdGlv
bmFsJykKKyAgICAgICAgICAgIHN5cy5leGl0KDEpCisgICAgZWxzZToKKyAgICAgICAgaWYgb3B0
aW9ucy50bHNfbW9kdWxlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNh
bCgnVXNlIC0tdGxzLW1vZHVsZSBvcHRpb24gb25seSB0b2dldGhlciB3aXRoICcKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJy0tdXNlLXRscyBvcHRpb24uJykKKyAgICAgICAgICAgIHN5
cy5leGl0KDEpCisKKyAgICAgICAgaWYgb3B0aW9ucy50bHNfY2xpZW50X2F1dGg6CisgICAgICAg
ICAgICBsb2dnaW5nLmNyaXRpY2FsKCdUTFMgbXVzdCBiZSBlbmFibGVkIGZvciBjbGllbnQgYXV0
aGVudGljYXRpb24uJykKKyAgICAgICAgICAgIHN5cy5leGl0KDEpCisKKyAgICAgICAgaWYgb3B0
aW9ucy50bHNfY2xpZW50X2NlcnRfb3B0aW9uYWw6CisgICAgICAgICAgICBsb2dnaW5nLmNyaXRp
Y2FsKCdUTFMgbXVzdCBiZSBlbmFibGVkIGZvciBjbGllbnQgYXV0aGVudGljYXRpb24uJykKKyAg
ICAgICAgICAgIHN5cy5leGl0KDEpCisKKyAgICBpZiBub3Qgb3B0aW9ucy5zY2FuX2RpcjoKKyAg
ICAgICAgb3B0aW9ucy5zY2FuX2RpciA9IG9wdGlvbnMud2Vic29ja19oYW5kbGVycworCisgICAg
aWYgb3B0aW9ucy51c2VfYmFzaWNfYXV0aDoKKyAgICAgICAgb3B0aW9ucy5iYXNpY19hdXRoX2Ny
ZWRlbnRpYWwgPSAnQmFzaWMgJyArIGJhc2U2NC5iNjRlbmNvZGUoCisgICAgICAgICAgICBvcHRp
b25zLmJhc2ljX2F1dGhfY3JlZGVudGlhbCkKKworICAgIHRyeToKKyAgICAgICAgaWYgb3B0aW9u
cy50aHJlYWRfbW9uaXRvcl9pbnRlcnZhbF9pbl9zZWMgPiAwOgorICAgICAgICAgICAgIyBSdW4g
YSB0aHJlYWQgbW9uaXRvciB0byBzaG93IHRoZSBzdGF0dXMgb2Ygc2VydmVyIHRocmVhZHMgZm9y
CisgICAgICAgICAgICAjIGRlYnVnZ2luZy4KKyAgICAgICAgICAgIFRocmVhZE1vbml0b3Iob3B0
aW9ucy50aHJlYWRfbW9uaXRvcl9pbnRlcnZhbF9pbl9zZWMpLnN0YXJ0KCkKKworICAgICAgICBz
ZXJ2ZXIgPSBXZWJTb2NrZXRTZXJ2ZXIob3B0aW9ucykKKyAgICAgICAgc2VydmVyLnNlcnZlX2Zv
cmV2ZXIoKQorICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgIGxvZ2dpbmcuY3JpdGlj
YWwoJ21vZF9weXdlYnNvY2tldDogJXMnICUgZSkKKyAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgn
bW9kX3B5d2Vic29ja2V0OiAlcycgJSB1dGlsLmdldF9zdGFja190cmFjZSgpKQorICAgICAgICBz
eXMuZXhpdCgxKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgX21haW4oc3lz
LmFyZ3ZbMTpdKQorCisKKyMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2Rf
cHl3ZWJzb2NrZXQvc3RyZWFtLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvc3RyZWFtLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmE3ZDMxMzZhYzliNDJmNWRmNTY1MmQ5MWYzYzg4NmY4NWVjYmYxZjQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdHJlYW0ucHkKQEAgLTAsMCArMSw1
NiBAQAorIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1
dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKworIiIiVGhpcyBmaWxlIGV4cG9ydHMgcHVibGljIHN5
bWJvbHMuIiIiCisKKworZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBC
YWRPcGVyYXRpb25FeGNlcHRpb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBp
bXBvcnQgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0
Ll9zdHJlYW1fYmFzZSBpbXBvcnQgSW52YWxpZEZyYW1lRXhjZXB0aW9uCitmcm9tIG1vZF9weXdl
YnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEludmFsaWRVVEY4RXhjZXB0aW9uCitmcm9tIG1v
ZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IFVuc3VwcG9ydGVkRnJhbWVFeGNlcHRp
b24KK2Zyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faGl4aWU3NSBpbXBvcnQgU3RyZWFtSGl4
aWU3NQorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBGcmFtZQorZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBTdHJlYW0KK2Zyb20gbW9kX3B5
d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgU3RyZWFtT3B0aW9ucworCisjIFRoZXNlIG1l
dGhvZHMgYXJlIGludGVuZGVkIHRvIGJlIHVzZWQgYnkgV2ViU29ja2V0IGNsaWVudCBkZXZlbG9w
ZXJzIHRvIGhhdmUKKyMgdGhlaXIgaW1wbGVtZW50YXRpb25zIHJlY2VpdmUgYnJva2VuIGRhdGEg
aW4gdGVzdHMuCitmcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0
ZV9jbG9zZV9mcmFtZQorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBj
cmVhdGVfaGVhZGVyCitmcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNy
ZWF0ZV9sZW5ndGhfaGVhZGVyCitmcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1w
b3J0IGNyZWF0ZV9waW5nX2ZyYW1lCitmcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5Ymkg
aW1wb3J0IGNyZWF0ZV9wb25nX2ZyYW1lCitmcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5
YmkgaW1wb3J0IGNyZWF0ZV9iaW5hcnlfZnJhbWUKK2Zyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJl
YW1faHliaSBpbXBvcnQgY3JlYXRlX3RleHRfZnJhbWUKK2Zyb20gbW9kX3B5d2Vic29ja2V0Ll9z
dHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX2Nsb3NpbmdfaGFuZHNoYWtlX2JvZHkKKworCisjIHZp
OnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3V0aWwucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L21vZF9weXdlYnNvY2tldC91dGlsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2OGQ5OWU2NzFkYWM0
YmY4OWI5ZTA5NzE1MTg0YjI1NTZiY2YwMTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9w
eXdlYnNvY2tldC91dGlsLnB5CkBAIC0wLDAgKzEsNDI0IEBACisjIENvcHlyaWdodCAyMDExLCBH
b29nbGUgSW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwor
CisiIiJXZWJTb2NrZXQgdXRpbGl0aWVzLiIiIgorCisKK2ltcG9ydCBhcnJheQoraW1wb3J0IGVy
cm5vCisKKyMgSW1wb3J0IGhhc2ggY2xhc3NlcyBmcm9tIGEgbW9kdWxlIGF2YWlsYWJsZSBhbmQg
cmVjb21tZW5kZWQgZm9yIGVhY2ggUHl0aG9uCisjIHZlcnNpb24gYW5kIHJlLWV4cG9ydCB0aG9z
ZSBzeW1ib2wuIFVzZSBzaGEgYW5kIG1kNSBtb2R1bGUgaW4gUHl0aG9uIDIuNCwgYW5kCisjIGhh
c2hsaWIgbW9kdWxlIGluIFB5dGhvbiAyLjYuCit0cnk6CisgICAgaW1wb3J0IGhhc2hsaWIKKyAg
ICBtZDVfaGFzaCA9IGhhc2hsaWIubWQ1CisgICAgc2hhMV9oYXNoID0gaGFzaGxpYi5zaGExCitl
eGNlcHQgSW1wb3J0RXJyb3I6CisgICAgaW1wb3J0IG1kNQorICAgIGltcG9ydCBzaGEKKyAgICBt
ZDVfaGFzaCA9IG1kNS5tZDUKKyAgICBzaGExX2hhc2ggPSBzaGEuc2hhCisKK2ltcG9ydCBTdHJp
bmdJTworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcworaW1wb3J0IHJlCitpbXBvcnQgc29ja2V0
CitpbXBvcnQgdHJhY2ViYWNrCitpbXBvcnQgemxpYgorCit0cnk6CisgICAgZnJvbSBtb2RfcHl3
ZWJzb2NrZXQgaW1wb3J0IGZhc3RfbWFza2luZworZXhjZXB0IEltcG9ydEVycm9yOgorICAgIHBh
c3MKKworCitkZWYgZ2V0X3N0YWNrX3RyYWNlKCk6CisgICAgIiIiR2V0IHRoZSBjdXJyZW50IHN0
YWNrIHRyYWNlIGFzIHN0cmluZy4KKworICAgIFRoaXMgaXMgbmVlZGVkIHRvIHN1cHBvcnQgUHl0
aG9uIDIuMy4KKyAgICBUT0RPOiBSZW1vdmUgdGhpcyB3aGVuIHdlIG9ubHkgc3VwcG9ydCBQeXRo
b24gMi40IGFuZCBhYm92ZS4KKyAgICAgICAgICBVc2UgdHJhY2ViYWNrLmZvcm1hdF9leGMgaW5z
dGVhZC4KKyAgICAiIiIKKyAgICBvdXQgPSBTdHJpbmdJTy5TdHJpbmdJTygpCisgICAgdHJhY2Vi
YWNrLnByaW50X2V4YyhmaWxlPW91dCkKKyAgICByZXR1cm4gb3V0LmdldHZhbHVlKCkKKworCitk
ZWYgcHJlcGVuZF9tZXNzYWdlX3RvX2V4Y2VwdGlvbihtZXNzYWdlLCBleGMpOgorICAgICIiIlBy
ZXBlbmQgbWVzc2FnZSB0byB0aGUgZXhjZXB0aW9uLiIiIgorICAgIGV4Yy5hcmdzID0gKG1lc3Nh
Z2UgKyBzdHIoZXhjKSwpCisgICAgcmV0dXJuCisKKworZGVmIF9fdHJhbnNsYXRlX2ludGVycChp
bnRlcnAsIGN5Z3dpbl9wYXRoKToKKyAgICAiIiJUcmFuc2xhdGUgaW50ZXJwIHByb2dyYW0gcGF0
aCBmb3IgV2luMzIgcHl0aG9uIHRvIHJ1biBjeWd3aW4gcHJvZ3JhbQorICAgIChlLmcuIHBlcmwp
LiAgTm90ZSB0aGF0IGl0IGRvZXNuJ3Qgc3VwcG9ydCBwYXRoIHRoYXQgY29udGFpbnMgc3BhY2Us
CisgICAgd2hpY2ggaXMgdHlwaWNhbGx5IHRydWUgZm9yIFVuaXgsIHdoZXJlICMhLXNjcmlwdCBp
cyB3cml0dGVuLgorICAgIEZvciBXaW4zMiBweXRob24sIGN5Z3dpbl9wYXRoIGlzIGEgZGlyZWN0
b3J5IG9mIGN5Z3dpbiBiaW5hcmllcy4KKworICAgIEFyZ3M6CisgICAgICBpbnRlcnA6IGludGVy
cCBjb21tYW5kIGxpbmUKKyAgICAgIGN5Z3dpbl9wYXRoOiBkaXJlY3RvcnkgbmFtZSBvZiBjeWd3
aW4gYmluYXJ5LCBvciBOb25lCisgICAgUmV0dXJuczoKKyAgICAgIHRyYW5zbGF0ZWQgaW50ZXJw
IGNvbW1hbmQgbGluZS4KKyAgICAiIiIKKyAgICBpZiBub3QgY3lnd2luX3BhdGg6CisgICAgICAg
IHJldHVybiBpbnRlcnAKKyAgICBtID0gcmUubWF0Y2goJ15bXiBdKi8oW14gXSspKCAuKik/Jywg
aW50ZXJwKQorICAgIGlmIG06CisgICAgICAgIGNtZCA9IG9zLnBhdGguam9pbihjeWd3aW5fcGF0
aCwgbS5ncm91cCgxKSkKKyAgICAgICAgcmV0dXJuIGNtZCArIG0uZ3JvdXAoMikKKyAgICByZXR1
cm4gaW50ZXJwCisKKworZGVmIGdldF9zY3JpcHRfaW50ZXJwKHNjcmlwdF9wYXRoLCBjeWd3aW5f
cGF0aD1Ob25lKToKKyAgICByIiIiR2V0ICMhLWludGVycHJldGVyIGNvbW1hbmQgbGluZSBmcm9t
IHRoZSBzY3JpcHQuCisKKyAgICBJdCBhbHNvIGZpeGVzIGNvbW1hbmQgcGF0aC4gIFdoZW4gQ3ln
d2luIFB5dGhvbiBpcyB1c2VkLCBlLmcuIGluIFdlYktpdCwKKyAgICBpdCBjb3VsZCBydW4gIi91
c3IvYmluL3BlcmwgLXdUIGhlbGxvLnBsIi4KKyAgICBXaGVuIFdpbjMyIFB5dGhvbiBpcyB1c2Vk
LCBlLmcuIGluIENocm9taXVtLCBpdCBjb3VsZG4ndC4gIFNvLCBmaXgKKyAgICAiL3Vzci9iaW4v
cGVybCIgdG8gIjxjeWd3aW5fcGF0aD5ccGVybC5leGUiLgorCisgICAgQXJnczoKKyAgICAgIHNj
cmlwdF9wYXRoOiBwYXRobmFtZSBvZiB0aGUgc2NyaXB0CisgICAgICBjeWd3aW5fcGF0aDogZGly
ZWN0b3J5IG5hbWUgb2YgY3lnd2luIGJpbmFyeSwgb3IgTm9uZQorICAgIFJldHVybnM6CisgICAg
ICAjIS1pbnRlcnByZXRlciBjb21tYW5kIGxpbmUsIG9yIE5vbmUgaWYgaXQgaXMgbm90ICMhLXNj
cmlwdC4KKyAgICAiIiIKKyAgICBmcCA9IG9wZW4oc2NyaXB0X3BhdGgpCisgICAgbGluZSA9IGZw
LnJlYWRsaW5lKCkKKyAgICBmcC5jbG9zZSgpCisgICAgbSA9IHJlLm1hdGNoKCdeIyEoLiopJywg
bGluZSkKKyAgICBpZiBtOgorICAgICAgICByZXR1cm4gX190cmFuc2xhdGVfaW50ZXJwKG0uZ3Jv
dXAoMSksIGN5Z3dpbl9wYXRoKQorICAgIHJldHVybiBOb25lCisKKworZGVmIHdyYXBfcG9wZW4z
X2Zvcl93aW4oY3lnd2luX3BhdGgpOgorICAgICIiIldyYXAgcG9wZW4zIHRvIHN1cHBvcnQgIyEt
c2NyaXB0IG9uIFdpbmRvd3MuCisKKyAgICBBcmdzOgorICAgICAgY3lnd2luX3BhdGg6ICBwYXRo
IGZvciBjeWd3aW4gYmluYXJ5IGlmIGNvbW1hbmQgcGF0aCBpcyBuZWVkZWQgdG8gYmUKKyAgICAg
ICAgICAgICAgICAgICAgdHJhbnNsYXRlZC4gIE5vbmUgaWYgbm8gdHJhbnNsYXRpb24gcmVxdWly
ZWQuCisgICAgIiIiCisgICAgX19vcmlnX3BvcGVuMyA9IG9zLnBvcGVuMworCisgICAgZGVmIF9f
d3JhcF9wb3BlbjMoY21kLCBtb2RlPSd0JywgYnVmc2l6ZT0tMSk6CisgICAgICAgIGNtZGxpbmUg
PSBjbWQuc3BsaXQoJyAnKQorICAgICAgICBpbnRlcnAgPSBnZXRfc2NyaXB0X2ludGVycChjbWRs
aW5lWzBdLCBjeWd3aW5fcGF0aCkKKyAgICAgICAgaWYgaW50ZXJwOgorICAgICAgICAgICAgY21k
ID0gaW50ZXJwICsgJyAnICsgY21kCisgICAgICAgIHJldHVybiBfX29yaWdfcG9wZW4zKGNtZCwg
bW9kZSwgYnVmc2l6ZSkKKworICAgIG9zLnBvcGVuMyA9IF9fd3JhcF9wb3BlbjMKKworCitkZWYg
aGV4aWZ5KHMpOgorICAgIHJldHVybiAnICcuam9pbihtYXAobGFtYmRhIHg6ICclMDJ4JyAlIG9y
ZCh4KSwgcykpCisKKworZGVmIGdldF9jbGFzc19sb2dnZXIobyk6CisgICAgIiIiUmV0dXJuIHRo
ZSBsb2dnaW5nIGNsYXNzIGluZm9ybWF0aW9uLiIiIgorICAgIHJldHVybiBsb2dnaW5nLmdldExv
Z2dlcigKKyAgICAgICAgJyVzLiVzJyAlIChvLl9fY2xhc3NfXy5fX21vZHVsZV9fLCBvLl9fY2xh
c3NfXy5fX25hbWVfXykpCisKKworY2xhc3MgTm9vcE1hc2tlcihvYmplY3QpOgorICAgICIiIkEg
Tm9PcCBtYXNraW5nIG9iamVjdC4KKworICAgIFRoaXMgaGFzIHRoZSBzYW1lIGludGVyZmFjZSBh
cyBSZXBlYXRlZFhvck1hc2tlciBidXQganVzdCByZXR1cm5zCisgICAgdGhlIHN0cmluZyBwYXNz
ZWQgaW4gd2l0aG91dCBtYWtpbmcgYW55IGNoYW5nZS4KKyAgICAiIiIKKworICAgIGRlZiBfX2lu
aXRfXyhzZWxmKToKKyAgICAgICAgIiIiTm9PcC4iIiIKKyAgICAgICAgcGFzcworCisgICAgZGVm
IG1hc2soc2VsZiwgcyk6CisgICAgICAgICIiIk5vT3AuIiIiCisgICAgICAgIHJldHVybiBzCisK
KworY2xhc3MgUmVwZWF0ZWRYb3JNYXNrZXIob2JqZWN0KToKKworICAgICIiIkEgbWFza2luZyBv
YmplY3QgdGhhdCBhcHBsaWVzIFhPUiBvbiB0aGUgc3RyaW5nLgorCisgICAgQXBwbGllcyBYT1Ig
b24gdGhlIHN0cmluZyBnaXZlbiB0byBtYXNrIG1ldGhvZCB3aXRoIHRoZSBtYXNraW5nIGJ5dGVz
CisgICAgZ2l2ZW4gdG8gdGhlIGNvbnN0cnVjdG9yIHJlcGVhdGVkbHkuIFRoaXMgb2JqZWN0IHJl
bWVtYmVycyB0aGUgcG9zaXRpb24KKyAgICBpbiB0aGUgbWFza2luZyBieXRlcyB0aGUgbGFzdCBt
YXNrIG1ldGhvZCBjYWxsIGVuZGVkIGFuZCByZXN1bWVzIGZyb20KKyAgICB0aGF0IHBvaW50IG9u
IHRoZSBuZXh0IG1hc2sgbWV0aG9kIGNhbGwuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgbWFza2luZ19rZXkpOgorICAgICAgICBzZWxmLl9tYXNraW5nX2tleSA9IG1hc2tpbmdf
a2V5CisgICAgICAgIHNlbGYuX21hc2tpbmdfa2V5X2luZGV4ID0gMAorCisgICAgZGVmIF9tYXNr
X3VzaW5nX3N3aWcoc2VsZiwgcyk6CisgICAgICAgICIiIlBlcmZvcm0gdGhlIG1hc2sgdmlhIFNX
SUcuIiIiCisgICAgICAgIG1hc2tlZF9kYXRhID0gZmFzdF9tYXNraW5nLm1hc2soCisgICAgICAg
ICAgICAgICAgcywgc2VsZi5fbWFza2luZ19rZXksIHNlbGYuX21hc2tpbmdfa2V5X2luZGV4KQor
ICAgICAgICBzZWxmLl9tYXNraW5nX2tleV9pbmRleCA9ICgKKyAgICAgICAgICAgICAgICAoc2Vs
Zi5fbWFza2luZ19rZXlfaW5kZXggKyBsZW4ocykpICUgbGVuKHNlbGYuX21hc2tpbmdfa2V5KSkK
KyAgICAgICAgcmV0dXJuIG1hc2tlZF9kYXRhCisKKyAgICBkZWYgX21hc2tfdXNpbmdfYXJyYXko
c2VsZiwgcyk6CisgICAgICAgICIiIlBlcmZvcm0gdGhlIG1hc2sgdmlhIHB5dGhvbi4iIiIKKyAg
ICAgICAgcmVzdWx0ID0gYXJyYXkuYXJyYXkoJ0InKQorICAgICAgICByZXN1bHQuZnJvbXN0cmlu
ZyhzKQorCisgICAgICAgICMgVXNlIHRlbXBvcmFyeSBsb2NhbCB2YXJpYWJsZXMgdG8gZWxpbWlu
YXRlIHRoZSBjb3N0IHRvIGFjY2VzcworICAgICAgICAjIGF0dHJpYnV0ZXMKKyAgICAgICAgbWFz
a2luZ19rZXkgPSBtYXAob3JkLCBzZWxmLl9tYXNraW5nX2tleSkKKyAgICAgICAgbWFza2luZ19r
ZXlfc2l6ZSA9IGxlbihtYXNraW5nX2tleSkKKyAgICAgICAgbWFza2luZ19rZXlfaW5kZXggPSBz
ZWxmLl9tYXNraW5nX2tleV9pbmRleAorCisgICAgICAgIGZvciBpIGluIHhyYW5nZShsZW4ocmVz
dWx0KSk6CisgICAgICAgICAgICByZXN1bHRbaV0gXj0gbWFza2luZ19rZXlbbWFza2luZ19rZXlf
aW5kZXhdCisgICAgICAgICAgICBtYXNraW5nX2tleV9pbmRleCA9IChtYXNraW5nX2tleV9pbmRl
eCArIDEpICUgbWFza2luZ19rZXlfc2l6ZQorCisgICAgICAgIHNlbGYuX21hc2tpbmdfa2V5X2lu
ZGV4ID0gbWFza2luZ19rZXlfaW5kZXgKKworICAgICAgICByZXR1cm4gcmVzdWx0LnRvc3RyaW5n
KCkKKworICAgIGlmICdmYXN0X21hc2tpbmcnIGluIGdsb2JhbHMoKToKKyAgICAgICAgbWFzayA9
IF9tYXNrX3VzaW5nX3N3aWcKKyAgICBlbHNlOgorICAgICAgICBtYXNrID0gX21hc2tfdXNpbmdf
YXJyYXkKKworCisjIEJ5IG1ha2luZyB3Yml0cyBvcHRpb24gbmVnYXRpdmUsIHdlIGNhbiBzdXBw
cmVzcyBDTUYvRkxHICgyIG9jdGV0KSBhbmQKKyMgQURMRVIzMiAoNCBvY3RldCkgZmllbGRzIG9m
IHpsaWIgc28gdGhhdCB3ZSBjYW4gdXNlIHpsaWIgbW9kdWxlIGp1c3QgYXMKKyMgZGVmbGF0ZSBs
aWJyYXJ5LiBESUNUSUQgd29uJ3QgYmUgYWRkZWQgYXMgZmFyIGFzIHdlIGRvbid0IHNldCBkaWN0
aW9uYXJ5LgorIyBMWjc3IHdpbmRvdyBvZiAzMksgd2lsbCBiZSB1c2VkIGZvciBib3RoIGNvbXBy
ZXNzaW9uIGFuZCBkZWNvbXByZXNzaW9uLgorIyBGb3IgZGVjb21wcmVzc2lvbiwgd2UgY2FuIGp1
c3QgdXNlIDMySyB0byBjb3ZlciBhbnkgd2luZG93cyBzaXplLiBGb3IKKyMgY29tcHJlc3Npb24s
IHdlIHVzZSAzMksgc28gcmVjZWl2ZXJzIG11c3QgdXNlIDMySy4KKyMKKyMgQ29tcHJlc3Npb24g
bGV2ZWwgaXMgWl9ERUZBVUxUX0NPTVBSRVNTSU9OLiBXZSBkb24ndCBoYXZlIHRvIG1hdGNoIGxl
dmVsCisjIHRvIGRlY29kZS4KKyMKKyMgU2VlIHpjb25mLmgsIGRlZmxhdGUuY2MsIGluZmxhdGUu
Y2Mgb2YgemxpYiBsaWJyYXJ5LCBhbmQgemxpYm1vZHVsZS5jIG9mCisjIFB5dGhvbi4gU2VlIGFs
c28gUkZDMTk1MCAoWkxJQiAzLjMpLgorCisKK2NsYXNzIF9EZWZsYXRlcihvYmplY3QpOgorCisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHdpbmRvd19iaXRzKToKKyAgICAgICAgc2VsZi5fbG9nZ2Vy
ID0gZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQorCisgICAgICAgIHNlbGYuX2NvbXByZXNzID0gemxp
Yi5jb21wcmVzc29iaigKKyAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6
bGliLkRFRkxBVEVELCAtd2luZG93X2JpdHMpCisKKyAgICBkZWYgY29tcHJlc3Moc2VsZiwgYnl0
ZXMpOgorICAgICAgICBjb21wcmVzc2VkX2J5dGVzID0gc2VsZi5fY29tcHJlc3MuY29tcHJlc3Mo
Ynl0ZXMpCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ29tcHJlc3MgaW5wdXQgJXInLCBi
eXRlcykKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDb21wcmVzcyByZXN1bHQgJXInLCBj
b21wcmVzc2VkX2J5dGVzKQorICAgICAgICByZXR1cm4gY29tcHJlc3NlZF9ieXRlcworCisgICAg
ZGVmIGNvbXByZXNzX2FuZF9mbHVzaChzZWxmLCBieXRlcyk6CisgICAgICAgIGNvbXByZXNzZWRf
Ynl0ZXMgPSBzZWxmLl9jb21wcmVzcy5jb21wcmVzcyhieXRlcykKKyAgICAgICAgY29tcHJlc3Nl
ZF9ieXRlcyArPSBzZWxmLl9jb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKKyAgICAg
ICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDb21wcmVzcyBpbnB1dCAlcicsIGJ5dGVzKQorICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NvbXByZXNzIHJlc3VsdCAlcicsIGNvbXByZXNzZWRfYnl0
ZXMpCisgICAgICAgIHJldHVybiBjb21wcmVzc2VkX2J5dGVzCisKKyAgICBkZWYgY29tcHJlc3Nf
YW5kX2ZpbmlzaChzZWxmLCBieXRlcyk6CisgICAgICAgIGNvbXByZXNzZWRfYnl0ZXMgPSBzZWxm
Ll9jb21wcmVzcy5jb21wcmVzcyhieXRlcykKKyAgICAgICAgY29tcHJlc3NlZF9ieXRlcyArPSBz
ZWxmLl9jb21wcmVzcy5mbHVzaCh6bGliLlpfRklOSVNIKQorICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoJ0NvbXByZXNzIGlucHV0ICVyJywgYnl0ZXMpCisgICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygnQ29tcHJlc3MgcmVzdWx0ICVyJywgY29tcHJlc3NlZF9ieXRlcykKKyAgICAgICAgcmV0
dXJuIGNvbXByZXNzZWRfYnl0ZXMKKworCitjbGFzcyBfSW5mbGF0ZXIob2JqZWN0KToKKworICAg
IGRlZiBfX2luaXRfXyhzZWxmLCB3aW5kb3dfYml0cyk6CisgICAgICAgIHNlbGYuX2xvZ2dlciA9
IGdldF9jbGFzc19sb2dnZXIoc2VsZikKKyAgICAgICAgc2VsZi5fd2luZG93X2JpdHMgPSB3aW5k
b3dfYml0cworCisgICAgICAgIHNlbGYuX3VuY29uc3VtZWQgPSAnJworCisgICAgICAgIHNlbGYu
cmVzZXQoKQorCisgICAgZGVmIGRlY29tcHJlc3Moc2VsZiwgc2l6ZSk6CisgICAgICAgIGlmIG5v
dCAoc2l6ZSA9PSAtMSBvciBzaXplID4gMCk6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
J3NpemUgbXVzdCBiZSAtMSBvciBwb3NpdGl2ZScpCisKKyAgICAgICAgZGF0YSA9ICcnCisKKyAg
ICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIGlmIHNpemUgPT0gLTE6CisgICAgICAgICAg
ICAgICAgZGF0YSArPSBzZWxmLl9kZWNvbXByZXNzLmRlY29tcHJlc3Moc2VsZi5fdW5jb25zdW1l
ZCkKKyAgICAgICAgICAgICAgICAjIFNlZSBQeXRob24gYnVnIGh0dHA6Ly9idWdzLnB5dGhvbi5v
cmcvaXNzdWUxMjA1MCB0bworICAgICAgICAgICAgICAgICMgdW5kZXJzdGFuZCB3aHkgdGhlIHNh
bWUgY29kZSBjYW5ub3QgYmUgdXNlZCBmb3IgdXBkYXRpbmcKKyAgICAgICAgICAgICAgICAjIHNl
bGYuX3VuY29uc3VtZWQgZm9yIGhlcmUgYW5kIGVsc2UgYmxvY2suCisgICAgICAgICAgICAgICAg
c2VsZi5fdW5jb25zdW1lZCA9ICcnCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
IGRhdGEgKz0gc2VsZi5fZGVjb21wcmVzcy5kZWNvbXByZXNzKAorICAgICAgICAgICAgICAgICAg
ICBzZWxmLl91bmNvbnN1bWVkLCBzaXplIC0gbGVuKGRhdGEpKQorICAgICAgICAgICAgICAgIHNl
bGYuX3VuY29uc3VtZWQgPSBzZWxmLl9kZWNvbXByZXNzLnVuY29uc3VtZWRfdGFpbAorICAgICAg
ICAgICAgaWYgc2VsZi5fZGVjb21wcmVzcy51bnVzZWRfZGF0YToKKyAgICAgICAgICAgICAgICAj
IEVuY291bnRlcmVkIGEgbGFzdCBibG9jayAoaS5lLiBhIGJsb2NrIHdpdGggQkZJTkFMID0gMSkg
YW5kCisgICAgICAgICAgICAgICAgIyBmb3VuZCBhIG5ldyBzdHJlYW0gKHVudXNlZF9kYXRhKS4g
V2UgY2Fubm90IHVzZSB0aGUgc2FtZQorICAgICAgICAgICAgICAgICMgemxpYi5EZWNvbXByZXNz
IG9iamVjdCBmb3IgdGhlIG5ldyBzdHJlYW0uIENyZWF0ZSBhIG5ldworICAgICAgICAgICAgICAg
ICMgRGVjb21wcmVzcyBvYmplY3QgdG8gZGVjb21wcmVzcyB0aGUgbmV3IG9uZS4KKyAgICAgICAg
ICAgICAgICAjCisgICAgICAgICAgICAgICAgIyBJdCdzIGZpbmUgdG8gaWdub3JlIHVuY29uc3Vt
ZWRfdGFpbCBpZiB1bnVzZWRfZGF0YSBpcyBub3QKKyAgICAgICAgICAgICAgICAjIGVtcHR5Lgor
ICAgICAgICAgICAgICAgIHNlbGYuX3VuY29uc3VtZWQgPSBzZWxmLl9kZWNvbXByZXNzLnVudXNl
ZF9kYXRhCisgICAgICAgICAgICAgICAgc2VsZi5yZXNldCgpCisgICAgICAgICAgICAgICAgaWYg
c2l6ZSA+PSAwIGFuZCBsZW4oZGF0YSkgPT0gc2l6ZToKKyAgICAgICAgICAgICAgICAgICAgIyBk
YXRhIGlzIGZpbGxlZC4gRG9uJ3QgY2FsbCBkZWNvbXByZXNzIGFnYWluLgorICAgICAgICAgICAg
ICAgICAgICBicmVhaworICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAg
ICMgUmUtaW52b2tlIERlY29tcHJlc3MuZGVjb21wcmVzcyB0byB0cnkgdG8gZGVjb21wcmVzcyBh
bGwKKyAgICAgICAgICAgICAgICAgICAgIyBhdmFpbGFibGUgYnl0ZXMgYmVmb3JlIGludm9raW5n
IHJlYWQgd2hpY2ggYmxvY2tzIHVudGlsCisgICAgICAgICAgICAgICAgICAgICMgYW55IG5ldyBi
eXRlIGlzIGF2YWlsYWJsZS4KKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBIZXJlLCBzaW5jZSB1bnVzZWRfZGF0YSBpcyBl
bXB0eSwgZXZlbiBpZiB1bmNvbnN1bWVkX3RhaWwgaXMKKyAgICAgICAgICAgICAgICAjIG5vdCBl
bXB0eSwgYnl0ZXMgb2YgcmVxdWVzdGVkIGxlbmd0aCBhcmUgYWxyZWFkeSBpbiBkYXRhLiBXZQor
ICAgICAgICAgICAgICAgICMgZG9uJ3QgaGF2ZSB0byAiY29udGludWUiIGhlcmUuCisgICAgICAg
ICAgICAgICAgYnJlYWsKKworICAgICAgICBpZiBkYXRhOgorICAgICAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKCdEZWNvbXByZXNzZWQgJXInLCBkYXRhKQorICAgICAgICByZXR1cm4gZGF0YQor
CisgICAgZGVmIGFwcGVuZChzZWxmLCBkYXRhKToKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVn
KCdBcHBlbmRlZCAlcicsIGRhdGEpCisgICAgICAgIHNlbGYuX3VuY29uc3VtZWQgKz0gZGF0YQor
CisgICAgZGVmIHJlc2V0KHNlbGYpOgorICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1Jlc2V0
JykKKyAgICAgICAgc2VsZi5fZGVjb21wcmVzcyA9IHpsaWIuZGVjb21wcmVzc29iaigtc2VsZi5f
d2luZG93X2JpdHMpCisKKworIyBDb21wcmVzc2VzL2RlY29tcHJlc3NlcyBnaXZlbiBvY3RldHMg
dXNpbmcgdGhlIG1ldGhvZCBpbnRyb2R1Y2VkIGluIFJGQzE5NzkuCisKKworY2xhc3MgX1JGQzE5
NzlEZWZsYXRlcihvYmplY3QpOgorICAgICIiIkEgY29tcHJlc3NvciBjbGFzcyB0aGF0IGFwcGxp
ZXMgREVGTEFURSB0byBnaXZlbiBieXRlIHNlcXVlbmNlIGFuZAorICAgIGZsdXNoZXMgdXNpbmcg
dGhlIGFsZ29yaXRobSBkZXNjcmliZWQgaW4gdGhlIFJGQzE5Nzkgc2VjdGlvbiAyLjEuCisgICAg
IiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgd2luZG93X2JpdHMsIG5vX2NvbnRleHRfdGFr
ZW92ZXIpOgorICAgICAgICBzZWxmLl9kZWZsYXRlciA9IE5vbmUKKyAgICAgICAgaWYgd2luZG93
X2JpdHMgaXMgTm9uZToKKyAgICAgICAgICAgIHdpbmRvd19iaXRzID0gemxpYi5NQVhfV0JJVFMK
KyAgICAgICAgc2VsZi5fd2luZG93X2JpdHMgPSB3aW5kb3dfYml0cworICAgICAgICBzZWxmLl9u
b19jb250ZXh0X3Rha2VvdmVyID0gbm9fY29udGV4dF90YWtlb3ZlcgorCisgICAgZGVmIGZpbHRl
cihzZWxmLCBieXRlcywgZW5kPVRydWUsIGJmaW5hbD1GYWxzZSk6CisgICAgICAgIGlmIHNlbGYu
X2RlZmxhdGVyIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLl9kZWZsYXRlciA9IF9EZWZsYXRl
cihzZWxmLl93aW5kb3dfYml0cykKKworICAgICAgICBpZiBiZmluYWw6CisgICAgICAgICAgICBy
ZXN1bHQgPSBzZWxmLl9kZWZsYXRlci5jb21wcmVzc19hbmRfZmluaXNoKGJ5dGVzKQorICAgICAg
ICAgICAgIyBBZGQgYSBwYWRkaW5nIGJsb2NrIHdpdGggQkZJTkFMID0gMCBhbmQgQlRZUEUgPSAw
LgorICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgY2hyKDApCisgICAgICAgICAgICBzZWxm
Ll9kZWZsYXRlciA9IE5vbmUKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQKKworICAgICAgICBy
ZXN1bHQgPSBzZWxmLl9kZWZsYXRlci5jb21wcmVzc19hbmRfZmx1c2goYnl0ZXMpCisgICAgICAg
IGlmIGVuZDoKKyAgICAgICAgICAgICMgU3RyaXAgbGFzdCA0IG9jdGV0cyB3aGljaCBpcyBMRU4g
YW5kIE5MRU4gZmllbGQgb2YgYQorICAgICAgICAgICAgIyBub24tY29tcHJlc3NlZCBibG9jayBh
ZGRlZCBmb3IgWl9TWU5DX0ZMVVNILgorICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0WzotNF0K
KworICAgICAgICBpZiBzZWxmLl9ub19jb250ZXh0X3Rha2VvdmVyIGFuZCBlbmQ6CisgICAgICAg
ICAgICBzZWxmLl9kZWZsYXRlciA9IE5vbmUKKworICAgICAgICByZXR1cm4gcmVzdWx0CisKKwor
Y2xhc3MgX1JGQzE5NzlJbmZsYXRlcihvYmplY3QpOgorICAgICIiIkEgZGVjb21wcmVzc29yIGNs
YXNzIGEgbGEgUkZDMTk3OS4KKworICAgIEEgZGVjb21wcmVzc29yIGNsYXNzIGZvciBieXRlIHNl
cXVlbmNlIGNvbXByZXNzZWQgYW5kIGZsdXNoZWQgZm9sbG93aW5nCisgICAgdGhlIGFsZ29yaXRo
bSBkZXNjcmliZWQgaW4gdGhlIFJGQzE5Nzkgc2VjdGlvbiAyLjEuCisgICAgIiIiCisKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgd2luZG93X2JpdHM9emxpYi5NQVhfV0JJVFMpOgorICAgICAgICBz
ZWxmLl9pbmZsYXRlciA9IF9JbmZsYXRlcih3aW5kb3dfYml0cykKKworICAgIGRlZiBmaWx0ZXIo
c2VsZiwgYnl0ZXMpOgorICAgICAgICAjIFJlc3RvcmUgc3RyaXBwZWQgTEVOIGFuZCBOTEVOIGZp
ZWxkIG9mIGEgbm9uLWNvbXByZXNzZWQgYmxvY2sgYWRkZWQKKyAgICAgICAgIyBmb3IgWl9TWU5D
X0ZMVVNILgorICAgICAgICBzZWxmLl9pbmZsYXRlci5hcHBlbmQoYnl0ZXMgKyAnXHgwMFx4MDBc
eGZmXHhmZicpCisgICAgICAgIHJldHVybiBzZWxmLl9pbmZsYXRlci5kZWNvbXByZXNzKC0xKQor
CisKK2NsYXNzIERlZmxhdGVTb2NrZXQob2JqZWN0KToKKyAgICAiIiJBIHdyYXBwZXIgY2xhc3Mg
Zm9yIHNvY2tldCBvYmplY3QgdG8gaW50ZXJjZXB0IHNlbmQgYW5kIHJlY3YgdG8gcGVyZm9ybQor
ICAgIGRlZmxhdGUgY29tcHJlc3Npb24gYW5kIGRlY29tcHJlc3Npb24gdHJhbnNwYXJlbnRseS4K
KyAgICAiIiIKKworICAgICMgU2l6ZSBvZiB0aGUgYnVmZmVyIHBhc3NlZCB0byByZWN2IHRvIHJl
Y2VpdmUgY29tcHJlc3NlZCBkYXRhLgorICAgIF9SRUNWX1NJWkUgPSA0MDk2CisKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgc29ja2V0KToKKyAgICAgICAgc2VsZi5fc29ja2V0ID0gc29ja2V0CisK
KyAgICAgICAgc2VsZi5fbG9nZ2VyID0gZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQorCisgICAgICAg
IHNlbGYuX2RlZmxhdGVyID0gX0RlZmxhdGVyKHpsaWIuTUFYX1dCSVRTKQorICAgICAgICBzZWxm
Ll9pbmZsYXRlciA9IF9JbmZsYXRlcih6bGliLk1BWF9XQklUUykKKworICAgIGRlZiByZWN2KHNl
bGYsIHNpemUpOgorICAgICAgICAiIiJSZWNlaXZlcyBkYXRhIGZyb20gdGhlIHNvY2tldCBzcGVj
aWZpZWQgb24gdGhlIGNvbnN0cnVjdGlvbiB1cAorICAgICAgICB0byB0aGUgc3BlY2lmaWVkIHNp
emUuIE9uY2UgYW55IGRhdGEgaXMgYXZhaWxhYmxlLCByZXR1cm5zIGl0IGV2ZW4KKyAgICAgICAg
aWYgaXQncyBzbWFsbGVyIHRoYW4gdGhlIHNwZWNpZmllZCBzaXplLgorICAgICAgICAiIiIKKwor
ICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBBbGxvdyBjYWxsIHdpdGggc2l6ZT0wLiBJdCBzaG91
bGQgYmxvY2sgdW50aWwgYW55CisgICAgICAgICMgZGVjb21wcmVzc2VkIGRhdGEgaXMgYXZhaWxh
YmxlLgorICAgICAgICBpZiBzaXplIDw9IDA6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
J05vbi1wb3NpdGl2ZSBzaXplIHBhc3NlZCcpCisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAg
ICAgICBkYXRhID0gc2VsZi5faW5mbGF0ZXIuZGVjb21wcmVzcyhzaXplKQorICAgICAgICAgICAg
aWYgbGVuKGRhdGEpICE9IDA6CisgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEKKworICAgICAg
ICAgICAgcmVhZF9kYXRhID0gc2VsZi5fc29ja2V0LnJlY3YoRGVmbGF0ZVNvY2tldC5fUkVDVl9T
SVpFKQorICAgICAgICAgICAgaWYgbm90IHJlYWRfZGF0YToKKyAgICAgICAgICAgICAgICByZXR1
cm4gJycKKyAgICAgICAgICAgIHNlbGYuX2luZmxhdGVyLmFwcGVuZChyZWFkX2RhdGEpCisKKyAg
ICBkZWYgc2VuZGFsbChzZWxmLCBieXRlcyk6CisgICAgICAgIHNlbGYuc2VuZChieXRlcykKKwor
ICAgIGRlZiBzZW5kKHNlbGYsIGJ5dGVzKToKKyAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwo
c2VsZi5fZGVmbGF0ZXIuY29tcHJlc3NfYW5kX2ZsdXNoKGJ5dGVzKSkKKyAgICAgICAgcmV0dXJu
IGxlbihieXRlcykKKworCisjIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9k
X3B5d2Vic29ja2V0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvdzNjLWlt
cG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYTEzMGI0NzdkZjExNTFlMGU2NDY3Y2FjMDI3YjI2MTVlZTU4
YzgwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3czYy1pbXBvcnQu
bG9nCkBAIC0wLDAgKzEsMzMgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L19faW5p
dF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9iYXNlLnB5CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2Rf
cHl3ZWJzb2NrZXQvX3N0cmVhbV9oaXhpZTc1LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvX3N0
cmVhbV9oeWJpLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvY29tbW9uLnB5CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2Rf
cHl3ZWJzb2NrZXQvZGlzcGF0Y2gucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9leHRlbnNpb25z
LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvZmFzdF9tYXNraW5nLmkKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdl
YnNvY2tldC9oZWFkZXJwYXJzZXJoYW5kbGVyLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaHR0
cF9oZWFkZXJfdXRpbC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L21lbW9yaXppbmdmaWxlLnB5
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvbXNndXRpbC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0
L211eC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9w
eXdlYnNvY2tldC9zdHJlYW0ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC91dGlsLnB5CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9tb2RfcHl3ZWJzb2NrZXQveGhyX2JlbmNobWFya19oYW5kbGVyLnB5CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L21vZF9weXdlYnNvY2tldC94aHJfYmVuY2htYXJrX2hhbmRsZXIucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9w
eXdlYnNvY2tldC94aHJfYmVuY2htYXJrX2hhbmRsZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzYyZjE1NDBi
OGM5NjhkMDFjNDQ5NmNjNDFkOTUwODZiM2M5NjM5OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
bW9kX3B5d2Vic29ja2V0L3hocl9iZW5jaG1hcmtfaGFuZGxlci5weQpAQCAtMCwwICsxLDEyMSBA
QAorIyBDb3B5cmlnaHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZQorIyBs
aWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBDT1BZSU5HIGZpbGUgb3IgYXQKKyMgaHR0
cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vb3Blbi1zb3VyY2UvbGljZW5zZXMvYnNkCisKKwor
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKKworCitjbGFzcyBYSFJCZW5jaG1hcmtI
YW5kbGVyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhlYWRlcnMsIHJmaWxlLCB3
ZmlsZSk6CisgICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxm
KQorCisgICAgICAgIHNlbGYuaGVhZGVycyA9IGhlYWRlcnMKKyAgICAgICAgc2VsZi5yZmlsZSA9
IHJmaWxlCisgICAgICAgIHNlbGYud2ZpbGUgPSB3ZmlsZQorCisgICAgZGVmIGRvX3NlbmQoc2Vs
Zik6CisgICAgICAgIGNvbnRlbnRfbGVuZ3RoID0gaW50KHNlbGYuaGVhZGVycy5nZXRoZWFkZXIo
J0NvbnRlbnQtTGVuZ3RoJykpCisKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZXF1ZXN0
ZWQgdG8gcmVjZWl2ZSAlcyBieXRlcycsIGNvbnRlbnRfbGVuZ3RoKQorCisgICAgICAgIFJFQ0VJ
VkVfQkxPQ0tfU0laRSA9IDEwMjQgKiAxMDI0CisKKyAgICAgICAgYnl0ZXNfdG9fcmVjZWl2ZSA9
IGNvbnRlbnRfbGVuZ3RoCisgICAgICAgIHdoaWxlIGJ5dGVzX3RvX3JlY2VpdmUgPiAwOgorICAg
ICAgICAgICAgYnl0ZXNfdG9fcmVjZWl2ZV9pbl90aGlzX2xvb3AgPSBieXRlc190b19yZWNlaXZl
CisgICAgICAgICAgICBpZiBieXRlc190b19yZWNlaXZlX2luX3RoaXNfbG9vcCA+IFJFQ0VJVkVf
QkxPQ0tfU0laRToKKyAgICAgICAgICAgICAgICBieXRlc190b19yZWNlaXZlX2luX3RoaXNfbG9v
cCA9IFJFQ0VJVkVfQkxPQ0tfU0laRQorICAgICAgICAgICAgcmVjZWl2ZWRfZGF0YSA9IHNlbGYu
cmZpbGUucmVhZChieXRlc190b19yZWNlaXZlX2luX3RoaXNfbG9vcCkKKyAgICAgICAgICAgIGlm
IHJlY2VpdmVkX2RhdGEgIT0gKCdhJyAqIGJ5dGVzX3RvX3JlY2VpdmVfaW5fdGhpc19sb29wKToK
KyAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1JlcXVlc3QgYm9keSB2ZXJpZmlj
YXRpb24gZmFpbGVkJykKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIGJ5dGVz
X3RvX3JlY2VpdmUgLT0gbGVuKHJlY2VpdmVkX2RhdGEpCisgICAgICAgIGlmIGJ5dGVzX3RvX3Jl
Y2VpdmUgPCAwOgorICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZWNlaXZlZCAlZCBt
b3JlIGJ5dGVzIHRoYW4gZXhwZWN0ZWQnICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoLWJ5dGVzX3RvX3JlY2VpdmUpKQorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgIyBS
ZXR1cm4gdGhlIG51bWJlciBvZiByZWNlaXZlZCBieXRlcyBiYWNrIHRvIHRoZSBjbGllbnQuCisg
ICAgICAgIHJlc3BvbnNlX2JvZHkgPSAnJWQnICUgY29udGVudF9sZW5ndGgKKyAgICAgICAgc2Vs
Zi53ZmlsZS53cml0ZSgKKyAgICAgICAgICAgICdIVFRQLzEuMSAyMDAgT0tcclxuJworICAgICAg
ICAgICAgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbjogKlxyXG4nCisgICAgICAgICAgICAn
Q29udGVudC1UeXBlOiB0ZXh0L2h0bWxcclxuJworICAgICAgICAgICAgJ0NvbnRlbnQtTGVuZ3Ro
OiAlZFxyXG4nCisgICAgICAgICAgICAnXHJcbiVzJyAlIChsZW4ocmVzcG9uc2VfYm9keSksIHJl
c3BvbnNlX2JvZHkpKQorICAgICAgICBzZWxmLndmaWxlLmZsdXNoKCkKKworICAgIGRlZiBkb19y
ZWNlaXZlX2FuZF9wYXJzZShzZWxmKToKKyAgICAgICAgY29udGVudF9sZW5ndGggPSBpbnQoc2Vs
Zi5oZWFkZXJzLmdldGhlYWRlcignQ29udGVudC1MZW5ndGgnKSkKKyAgICAgICAgcmVxdWVzdF9i
b2R5ID0gc2VsZi5yZmlsZS5yZWFkKGNvbnRlbnRfbGVuZ3RoKQorCisgICAgICAgIHJlcXVlc3Rf
YXJyYXkgPSByZXF1ZXN0X2JvZHkuc3BsaXQoJyAnKQorICAgICAgICBpZiBsZW4ocmVxdWVzdF9h
cnJheSkgPCAyOgorICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdNYWxmb3JtZWQgcmVx
dWVzdCBib2R5OiAlcicsIHJlcXVlc3RfYm9keSkKKyAgICAgICAgICAgIHJldHVybgorCisgICAg
ICAgICMgUGFyc2UgdGhlIHNpemUgcGFyYW1ldGVyLgorICAgICAgICBieXRlc190b19zZW5kID0g
cmVxdWVzdF9hcnJheVswXQorICAgICAgICB0cnk6CisgICAgICAgICAgICBieXRlc190b19zZW5k
ID0gaW50KGJ5dGVzX3RvX3NlbmQpCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgorICAg
ICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdNYWxmb3JtZWQgc2l6ZSBwYXJhbWV0ZXI6ICVy
JywgYnl0ZXNfdG9fc2VuZCkKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICMgUGFyc2Ug
dGhlIHRyYW5zZmVyIGVuY29kaW5nIHBhcmFtZXRlci4KKyAgICAgICAgY2h1bmtlZF9tb2RlID0g
RmFsc2UKKyAgICAgICAgbW9kZV9wYXJhbWV0ZXIgPSByZXF1ZXN0X2FycmF5WzFdCisgICAgICAg
IGlmIG1vZGVfcGFyYW1ldGVyID09ICdjaHVua2VkJzoKKyAgICAgICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygnUmVxdWVzdGVkIGNodW5rZWQgdHJhbnNmZXIgZW5jb2RpbmcnKQorICAgICAgICAg
ICAgY2h1bmtlZF9tb2RlID0gVHJ1ZQorICAgICAgICBlbGlmIG1vZGVfcGFyYW1ldGVyICE9ICdu
b25lJzoKKyAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnSW52YWxpZCBtb2RlIHBhcmFt
ZXRlcjogJXInLCBtb2RlX3BhcmFtZXRlcikKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAg
IHNlbGYuZG9fcmVjZWl2ZShieXRlc190b19zZW5kLCBjaHVua2VkX21vZGUsIEZhbHNlKQorCisg
ICAgZGVmIGRvX3JlY2VpdmUoc2VsZiwgYnl0ZXNfdG9fc2VuZCwgY2h1bmtlZF9tb2RlLCBlbmFi
bGVfY2FjaGUpOgorICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAnUmVx
dWVzdGVkIHRvIHNlbmQgJXMgYnl0ZXMgKGNodW5rZWQ6ICVzLCBjYWNoZTogJXMpJywKKyAgICAg
ICAgICAgIGJ5dGVzX3RvX3NlbmQsIGNodW5rZWRfbW9kZSwgZW5hYmxlX2NhY2hlKQorICAgICAg
ICAjIFdyaXRlIGEgaGVhZGVyCisgICAgICAgIHJlc3BvbnNlX2hlYWRlciA9ICgKKyAgICAgICAg
ICAgICdIVFRQLzEuMSAyMDAgT0tcclxuJworICAgICAgICAgICAgJ0FjY2Vzcy1Db250cm9sLUFs
bG93LU9yaWdpbjogKlxyXG4nCisgICAgICAgICAgICAnQ29udGVudC1UeXBlOiBhcHBsaWNhdGlv
bi9vY3RldC1zdHJlYW1cclxuJykKKyAgICAgICAgaWYgZW5hYmxlX2NhY2hlOgorICAgICAgICAg
ICAgcmVzcG9uc2VfaGVhZGVyICs9ICdDYWNoZS1Db250cm9sOiBwcml2YXRlLCBtYXgtYWdlPTEw
XHJcbicKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlciArPSBcCisg
ICAgICAgICAgICAgICAgJ0NhY2hlLUNvbnRyb2w6IG5vLWNhY2hlLCBuby1zdG9yZSwgbXVzdC1y
ZXZhbGlkYXRlXHJcbicKKyAgICAgICAgaWYgY2h1bmtlZF9tb2RlOgorICAgICAgICAgICAgcmVz
cG9uc2VfaGVhZGVyICs9ICdUcmFuc2Zlci1FbmNvZGluZzogY2h1bmtlZFxyXG5cclxuJworICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgcmVzcG9uc2VfaGVhZGVyICs9ICgKKyAgICAgICAgICAg
ICAgICAnQ29udGVudC1MZW5ndGg6ICVkXHJcblxyXG4nICUgYnl0ZXNfdG9fc2VuZCkKKyAgICAg
ICAgc2VsZi53ZmlsZS53cml0ZShyZXNwb25zZV9oZWFkZXIpCisgICAgICAgIHNlbGYud2ZpbGUu
Zmx1c2goKQorCisgICAgICAgICMgV3JpdGUgYSBib2R5CisgICAgICAgIFNFTkRfQkxPQ0tfU0la
RSA9IDEwMjQgKiAxMDI0CisKKyAgICAgICAgd2hpbGUgYnl0ZXNfdG9fc2VuZCA+IDA6CisgICAg
ICAgICAgICBieXRlc190b19zZW5kX2luX3RoaXNfbG9vcCA9IGJ5dGVzX3RvX3NlbmQKKyAgICAg
ICAgICAgIGlmIGJ5dGVzX3RvX3NlbmRfaW5fdGhpc19sb29wID4gU0VORF9CTE9DS19TSVpFOgor
ICAgICAgICAgICAgICAgIGJ5dGVzX3RvX3NlbmRfaW5fdGhpc19sb29wID0gU0VORF9CTE9DS19T
SVpFCisKKyAgICAgICAgICAgIGlmIGNodW5rZWRfbW9kZToKKyAgICAgICAgICAgICAgICBzZWxm
LndmaWxlLndyaXRlKCcleFxyXG4nICUgYnl0ZXNfdG9fc2VuZF9pbl90aGlzX2xvb3ApCisgICAg
ICAgICAgICBzZWxmLndmaWxlLndyaXRlKCdhJyAqIGJ5dGVzX3RvX3NlbmRfaW5fdGhpc19sb29w
KQorICAgICAgICAgICAgaWYgY2h1bmtlZF9tb2RlOgorICAgICAgICAgICAgICAgIHNlbGYud2Zp
bGUud3JpdGUoJ1xyXG4nKQorICAgICAgICAgICAgc2VsZi53ZmlsZS5mbHVzaCgpCisKKyAgICAg
ICAgICAgIGJ5dGVzX3RvX3NlbmQgLT0gYnl0ZXNfdG9fc2VuZF9pbl90aGlzX2xvb3AKKworICAg
ICAgICBpZiBjaHVua2VkX21vZGU6CisgICAgICAgICAgICBzZWxmLndmaWxlLndyaXRlKCcwXHJc
blxyXG4nKQorICAgICAgICAgICAgc2VsZi53ZmlsZS5mbHVzaCgpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NldHVwLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zZXR1cC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzVkNmIxMDU4OTljYTEzNDhk
N2Q2ZDY4YmJlMmJkNDllODVkMTE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zZXR1cC5weQpA
QCAtMCwwICsxLDc0IEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMKKyMgQ29weXJpZ2h0IDIw
MTIsIEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMg
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisj
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCisKKyIiIlNldCB1cCBzY3JpcHQgZm9yIG1vZF9weXdlYnNvY2tldC4KKyIiIgorCisKK2Zy
b20gZGlzdHV0aWxzLmNvcmUgaW1wb3J0IHNldHVwLCBFeHRlbnNpb24KK2ltcG9ydCBzeXMKKwor
CitfUEFDS0FHRV9OQU1FID0gJ21vZF9weXdlYnNvY2tldCcKKworIyBCdWlsZCBhbmQgdXNlIGEg
QysrIGV4dGVuc2lvbiBmb3IgZmFzdGVyIG1hc2tpbmcuIFNXSUcgaXMgcmVxdWlyZWQuCitfVVNF
X0ZBU1RfTUFTS0lORyA9IEZhbHNlCisKK2lmIHN5cy52ZXJzaW9uIDwgJzIuMyc6CisgICAgcHJp
bnQgPj4gc3lzLnN0ZGVyciwgJyVzIHJlcXVpcmVzIFB5dGhvbiAyLjMgb3IgbGF0ZXIuJyAlIF9Q
QUNLQUdFX05BTUUKKyAgICBzeXMuZXhpdCgxKQorCitpZiBfVVNFX0ZBU1RfTUFTS0lORzoKKyAg
ICBzZXR1cChleHRfbW9kdWxlcz1bCisgICAgICAgICAgICAgICAgICBFeHRlbnNpb24oCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICdtb2RfcHl3ZWJzb2NrZXQvX2Zhc3RfbWFza2luZycsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIFsnbW9kX3B5d2Vic29ja2V0L2Zhc3RfbWFza2luZy5p
J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aWdfb3B0cz1bJy1jKysnXSldKQorCitz
ZXR1cChhdXRob3I9J1l1em8gRnVqaXNoaW1hJywKKyAgICAgIGF1dGhvcl9lbWFpbD0neXV6b0Bj
aHJvbWl1bS5vcmcnLAorICAgICAgZGVzY3JpcHRpb249J1dlYlNvY2tldCBleHRlbnNpb24gZm9y
IEFwYWNoZSBIVFRQIFNlcnZlci4nLAorICAgICAgbG9uZ19kZXNjcmlwdGlvbj0oCisgICAgICAg
ICAgICAgICdtb2RfcHl3ZWJzb2NrZXQgaXMgYW4gQXBhY2hlIEhUVFAgU2VydmVyIGV4dGVuc2lv
biBmb3IgJworICAgICAgICAgICAgICAndGhlIFdlYlNvY2tldCBQcm90b2NvbCAoUkZDIDY0NTUp
LiAnCisgICAgICAgICAgICAgICdTZWUgbW9kX3B5d2Vic29ja2V0L19faW5pdF9fLnB5IGZvciBt
b3JlIGRldGFpbC4nKSwKKyAgICAgIGxpY2Vuc2U9J1NlZSBMSUNFTlNFJywKKyAgICAgIG5hbWU9
X1BBQ0tBR0VfTkFNRSwKKyAgICAgIHBhY2thZ2VzPVtfUEFDS0FHRV9OQU1FLCBfUEFDS0FHRV9O
QU1FICsgJy5oYW5kc2hha2UnXSwKKyAgICAgIHVybD0naHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9w
L3B5d2Vic29ja2V0LycsCisgICAgICAjIFNlZSB0aGUgc291cmNlIG9mIGRpc3R1dGlscy52ZXJz
aW9uLCBkaXN0dXRpbHMudmVyc2lvbnByZWRpY2F0ZSBhbmQKKyAgICAgICMgZGlzdHV0aWxzLmRp
c3QgdG8gdW5kZXJzdGFuZCBob3cgdG8gbmFtZSB2ZXJzaW9uIG51bWJlcnMuCisgICAgICB2ZXJz
aW9uPScwLjcuOScsCisgICAgICApCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3Rlc3QvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvX19pbml0X18ucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvdGVzdC9fX2luaXRfXy5weQpAQCAtMCwwICsxIEBACisjIFRoaXMgZmlsZSBp
cyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxl
cy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvY2Vy
dC9jYWNlcnQucGVtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NlcnQvY2FjZXJ0LnBlbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZGFk
YWUxMjFiZGQzYWRiNzQ0MzgzY2QzYmYwOGMyMjZmODU1NGJhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC90ZXN0L2NlcnQvY2FjZXJ0LnBlbQpAQCAtMCwwICsxLDE3IEBACistLS0tLUJFR0lOIENF
UlRJRklDQVRFLS0tLS0KK01JSUN2RENDQWlXZ0F3SUJBZ0lKQUtxVmdoa0dGMXJTTUEwR0NTcUdT
SWIzRFFFQkJRVUFNRWt4Q3pBSkJnTlYKK0JBWVRBa3BRTVE0d0RBWURWUVFJRXdWVWIydDViekVV
TUJJR0ExVUVDaE1MY0hsM1pXSnpiMk5yWlhReEZEQVMKK0JnTlZCQU1UQzNCNWQyVmljMjlqYTJW
ME1CNFhEVEV5TURZd05qQTNNalF6TTFvWERUTTVNVEF5TXpBM01qUXoKK00xb3dTVEVMTUFrR0Ex
VUVCaE1DU2xBeERqQU1CZ05WQkFnVEJWUnZhM2x2TVJRd0VnWURWUVFLRXd0d2VYZGwKK1luTnZZ
MnRsZERFVU1CSUdBMVVFQXhNTGNIbDNaV0p6YjJOclpYUXdnWjh3RFFZSktvWklodmNOQVFFQkJR
QUQKK2dZMEFNSUdKQW9HQkFLb1NFVzJiaVF4VnJNTUtkbi84UEp6RFlpU1hEUFI5V1FiTFJSUTFH
bTVqa0NZaWFoWFcKK3UyQ2JUVGhmUFBmaTJOSEEzSStIbFQ3Z085eVI3UlZVdk42SVNVekd3WERF
cTRmNFVOcXRRT2hRYXFxSytDWjkKK0xPL0JoTy9ZWWZOcmJTUGxZekhVS2FUOWVzZTd4TzlWelZL
TFcrcVVmMk1qaDQvK1N6eEJETlA3QWdNQkFBR2oKK2dhc3dnYWd3SFFZRFZSME9CQllFRk9zV2R4
Q1N1eWh3YVplYWI2Qm9UaG8zKytiek1Ia0dBMVVkSXdSeU1IQ0EKK0ZPc1dkeENTdXlod2FaZWFi
NkJvVGhvMysrYnpvVTJrU3pCSk1Rc3dDUVlEVlFRR0V3SktVREVPTUF3R0ExVUUKK0NCTUZWRzly
ZVc4eEZEQVNCZ05WQkFvVEMzQjVkMlZpYzI5amEyVjBNUlF3RWdZRFZRUURFd3R3ZVhkbFluTnYK
K1kydGxkSUlKQUtxVmdoa0dGMXJTTUF3R0ExVWRFd1FGTUFNQkFmOHdEUVlKS29aSWh2Y05BUUVG
QlFBRGdZRUEKK2dzTUkxV0VZcU53L2poVUlkclRCY0N4SjBYNmhKdkE5emlLQU5WbTFScys0UDNZ
REFya1E4YkNyNnhZK0t3N3MKK1pwMHlFN2RNOEdNZGkrRFU2aEwzdDNFNWVNa1RTMXlacjlXQ0s0
ZjJSTG8rZXQ5OHNlbFp5ZHBIZW1GM0RKSjMKK2dBajhTeDRMQmFHOENiL1duRU1QdjNNeEczZkJF
NWZhdkY2VjRqVTA3aFE9CistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvY2VydC9jZXJ0LnBlbSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L2NlcnQucGVtCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjI1Mzc5YTcyYjBkYWM1ZjQxOTc5YzgwMmM2NjNkZjhiODhkZWE4MjkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3Rlc3QvY2VydC9jZXJ0LnBlbQpAQCAtMCwwICsxLDYxIEBACitDZXJ0aWZp
Y2F0ZToKKyAgICBEYXRhOgorICAgICAgICBWZXJzaW9uOiAzICgweDIpCisgICAgICAgIFNlcmlh
bCBOdW1iZXI6IDEgKDB4MSkKKyAgICAgICAgU2lnbmF0dXJlIEFsZ29yaXRobTogc2hhMVdpdGhS
U0FFbmNyeXB0aW9uCisgICAgICAgIElzc3VlcjogQz1KUCwgU1Q9VG9reW8sIE89cHl3ZWJzb2Nr
ZXQsIENOPXB5d2Vic29ja2V0CisgICAgICAgIFZhbGlkaXR5CisgICAgICAgICAgICBOb3QgQmVm
b3JlOiBKdW4gIDYgMDc6MjU6MDggMjAxMiBHTVQKKyAgICAgICAgICAgIE5vdCBBZnRlciA6IE9j
dCAyMyAwNzoyNTowOCAyMDM5IEdNVAorICAgICAgICBTdWJqZWN0OiBDPUpQLCBTVD1Ub2t5bywg
Tz1weXdlYnNvY2tldCwgQ049cHl3ZWJzb2NrZXQKKyAgICAgICAgU3ViamVjdCBQdWJsaWMgS2V5
IEluZm86CisgICAgICAgICAgICBQdWJsaWMgS2V5IEFsZ29yaXRobTogcnNhRW5jcnlwdGlvbgor
ICAgICAgICAgICAgUlNBIFB1YmxpYyBLZXk6ICgxMDI0IGJpdCkKKyAgICAgICAgICAgICAgICBN
b2R1bHVzICgxMDI0IGJpdCk6CisgICAgICAgICAgICAgICAgICAgIDAwOmRlOjEwOmNlOjNhOjVh
OjA0OmE0OjFjOjI5OjkzOjVjOjIzOjgyOjFhOgorICAgICAgICAgICAgICAgICAgICBmMjowNjow
MTplNjoyYjphNDowZjpkZDo3Nzo0OTo3Njo4OTowMzphMjoyMToKKyAgICAgICAgICAgICAgICAg
ICAgZGU6MDQ6NzU6YzY6ZTI6ZGQ6ZmI6MzU6Mjc6M2E6YTI6OTI6OGU6MTI6NjI6CisgICAgICAg
ICAgICAgICAgICAgIDJiOjNlOjFmOmY0Ojc4OmRmOmI2Ojk0OmNiOjI3OmQ2OmNiOmQ2OjM3OmQ3
OgorICAgICAgICAgICAgICAgICAgICA1YzowODpmMDowOTozZTpjOTpjZToyNDoyZDowMDpjOTpk
Zjo0YTplMDo5OToKKyAgICAgICAgICAgICAgICAgICAgZTU6ZmI6MjM6YTk6ZTI6ZDY6Yzk6M2Q6
OTY6ZmE6MDE6ODg6ZGU6NWE6ODk6CisgICAgICAgICAgICAgICAgICAgIGIwOmNmOjAzOjY3OjZm
OjA0Ojg2OjFkOmVmOjYyOjFjOjU1OmE5OjA3OjlhOgorICAgICAgICAgICAgICAgICAgICAyZTo2
NjoyYTo3Mzo1Yjo0Yzo2MjowMzpmOTo4Mjo4MzpkYjo2ODpiZjpiODoKKyAgICAgICAgICAgICAg
ICAgICAgNGI6MGI6OGI6OTM6MTE6Yjg6NTQ6NzM6N2IKKyAgICAgICAgICAgICAgICBFeHBvbmVu
dDogNjU1MzcgKDB4MTAwMDEpCisgICAgICAgIFg1MDl2MyBleHRlbnNpb25zOgorICAgICAgICAg
ICAgWDUwOXYzIEJhc2ljIENvbnN0cmFpbnRzOiAKKyAgICAgICAgICAgICAgICBDQTpGQUxTRQor
ICAgICAgICAgICAgTmV0c2NhcGUgQ2VydCBUeXBlOiAKKyAgICAgICAgICAgICAgICBTU0wgU2Vy
dmVyCisgICAgICAgICAgICBOZXRzY2FwZSBDb21tZW50OiAKKyAgICAgICAgICAgICAgICBPcGVu
U1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZQorICAgICAgICAgICAgWDUwOXYzIFN1YmplY3QgS2V5
IElkZW50aWZpZXI6IAorICAgICAgICAgICAgICAgIDgyOkExOjczOjhCOjE2OjBDOjdDOkU0OkQz
OjQ2Ojk1OjEzOjk1OjFBOjMyOkMxOjg0OkU5OjA2OjAwCisgICAgICAgICAgICBYNTA5djMgQXV0
aG9yaXR5IEtleSBJZGVudGlmaWVyOiAKKyAgICAgICAgICAgICAgICBrZXlpZDpFQjoxNjo3Nzox
MDo5MjpCQjoyODo3MDo2OTo5Nzo5QTo2RjpBMDo2ODo0RToxQTozNzpGQjpFNjpGMworCisgICAg
U2lnbmF0dXJlIEFsZ29yaXRobTogc2hhMVdpdGhSU0FFbmNyeXB0aW9uCisgICAgICAgIDZiOmIz
OjQ2OjI5OjAyOmRmOmIwOmM4OjhlOmM0OmQ3OjdmOmEwOjFlOjBkOjFhOmViOjJmOgorICAgICAg
ICBkZjpkMTo0ODo1NzozNjo1Zjo5NTo4YzoxYjpmMDo1MTpkNjo1MjplNzo4ZDo4NDozYjo5ZjoK
KyAgICAgICAgZDg6ZWQ6MjI6OWM6YWE6YmQ6ZWU6OWI6OTA6MWQ6ODQ6YTM6NGM6MGI6Y2I6ZWI6
NjQ6NzM6CisgICAgICAgIGJhOmY3OjE1OmNlOmRhOjVmOmRiOjhiOjE1OjA3OmE2OjI4OjdmOmI5
OjhjOjExOjliOjY0OgorICAgICAgICBkMzpmMTpiZTo1Mjo0ZjpjMzpkODo1ODpmZTpkZTo1Njo2
Mzo2MzozYjo1MTplZDphNzo4MToKKyAgICAgICAgZjk6MDU6NTE6NzA6NjM6MzI6MDk6MGU6OTQ6
N2U6MDU6ZmU6YTE6NTY6MTg6MzQ6OTg6ZDU6CisgICAgICAgIDk5OjFlOjRlOjI3OjM4Ojg5Ojkw
OjZhOmU1OmNlOjYwOjM1OjAxOmY1OmRlOjM0OjYwOmIxOgorICAgICAgICBjYjphZQorLS0tLS1C
RUdJTiBDRVJUSUZJQ0FURS0tLS0tCitNSUlDbURDQ0FnR2dBd0lCQWdJQkFUQU5CZ2txaGtpRzl3
MEJBUVVGQURCSk1Rc3dDUVlEVlFRR0V3SktVREVPCitNQXdHQTFVRUNCTUZWRzlyZVc4eEZEQVNC
Z05WQkFvVEMzQjVkMlZpYzI5amEyVjBNUlF3RWdZRFZRUURFd3R3CitlWGRsWW5OdlkydGxkREFl
RncweE1qQTJNRFl3TnpJMU1EaGFGdzB6T1RFd01qTXdOekkxTURoYU1Fa3hDekFKCitCZ05WQkFZ
VEFrcFFNUTR3REFZRFZRUUlFd1ZVYjJ0NWJ6RVVNQklHQTFVRUNoTUxjSGwzWldKemIyTnJaWFF4
CitGREFTQmdOVkJBTVRDM0I1ZDJWaWMyOWphMlYwTUlHZk1BMEdDU3FHU0liM0RRRUJBUVVBQTRH
TkFEQ0JpUUtCCitnUURlRU00NldnU2tIQ21UWENPQ0d2SUdBZVlycEEvZGQwbDJpUU9pSWQ0RWRj
YmkzZnMxSnpxaWtvNFNZaXMrCitIL1I0MzdhVXl5Zld5OVkzMTF3SThBayt5YzRrTFFESjMwcmdt
ZVg3STZuaTFzazlsdm9CaU41YWliRFBBMmR2CitCSVlkNzJJY1Zha0htaTVtS25OYlRHSUQrWUtE
MjJpL3VFc0xpNU1SdUZSemV3SURBUUFCbzRHUE1JR01NQWtHCitBMVVkRXdRQ01BQXdFUVlKWUla
SUFZYjRRZ0VCQkFRREFnWkFNQ3dHQ1dDR1NBR0crRUlCRFFRZkZoMVBjR1Z1CitVMU5NSUVkbGJt
VnlZWFJsWkNCRFpYSjBhV1pwWTJGMFpUQWRCZ05WSFE0RUZnUVVncUZ6aXhZTWZPVFRScFVUCits
Um95d1lUcEJnQXdId1lEVlIwakJCZ3dGb0FVNnhaM0VKSzdLSEJwbDVwdm9HaE9HamY3NXZNd0RR
WUpLb1pJCitodmNOQVFFRkJRQURnWUVBYTdOR0tRTGZzTWlPeE5kL29CNE5HdXN2MzlGSVZ6WmZs
WXdiOEZIV1V1ZU5oRHVmCisyTzBpbktxOTdwdVFIWVNqVEF2TDYyUnp1dmNWenRwZjI0c1ZCNllv
ZjdtTUVadGswL0crVWsvRDJGaiszbFpqCitZenRSN2FlQitRVlJjR015Q1E2VWZnWCtvVllZTkpq
Vm1SNU9KemlKa0dybHptQTFBZlhlTkdDeHk2ND0KKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L2NsaWVudF9jZXJ0LnAxMiBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9j
ZXJ0L2NsaWVudF9jZXJ0LnAxMgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNGUxMzk5Mjc5ODJmYTk4MjNhNTcyMzFh
ZjExMzQ5OWQ2YTVhOGIwCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyNTgyCnpjbVkrRlhIKmpp
N0tNYCMwdEJnMnF6Rml0UCFmPFBIQS0qTkxvQFZfZ2NmMHQ4V0IoI0k/eyVZUkZ4KnVgJSl5Sgp6
MW5HIUszNWJxaFhyWDdBYjlRJWpmODZ1bHglWnYtPiVIXkFhWnB3ZWtQNDJZbn1nNnYjT3VZQThH
dG12VmpTSWoKekZwaDVVKChaJWZBU3dTdWtZWEdwPUYqQSkwUmZpPGAlZU9kXkZwQmktZiNzN2Zp
cj8+MmNXJFQjOzIqR0FQX0FlCnoxXyNscm4yRShlS09NSjZOMjZZSm5lX0BocH1TS1BYVUI3Rk1l
cl9+NXwxcWdDe1Rxbm5CdXYxJGtwcDVPQnolQAp6PG15U3crP1k+XmpBWjQjWEEtfSohUXNidU9o
VyhzTzgzNjYoJDsoMUE+bW8oTy0leChobig9eVo7eX5ORyNRWDEKemdIa1NpXl44Y3Y0VFRTTDl2
bjVxUig+X0QzZiZvYypqd1BnSSNLQFEjQXNMKUQ7QkQmV2IyZCtJMV5KN24+fVlaCnpiQ1hvOWZP
QGchQGRXWWEyViV9Oykhezx6RGN8KHB2SklheFc3TmRPJU82Zj5yJmFPcnBIa3tvX1I5bVE0N3Vv
Ygp6P2w+OXxufFgzYGFncF5HO0x3WFI1PChscitSPGNMNWpUUSg/XkQ8a1JvIUhfVCNwP3kzZH1e
dENZViE4Ul5OP30KekMqJVhtOUxlZj5qN2hsci0/akhscHx3ZkEmXm4tczs8IXokcUQxeFBxIThL
UTF9fmR1cHd+Qk0xZ3N+QEFvO0NxCnp3UmdVfDJeZH1OLWdWO0BhWWt1OEklfXw8bDZRTT89ZH5G
WXBiR0ZIOSZ2TmdLWipTeWNJU3xtY3VPUj9sJkNPdwp6c3t6ZDV6bWVseHFOMURReXt9UGdCPXUj
ZnpJTlBrQjBvTipjazN2YCsxeyFZWFB+e0VWSTdWcWgqfnVhV19+VUMKemxSMzNSWjA1SGhrQy0x
ZUlwKS1AWV55dmMtfFIlISo5ZHc3bmZXKXlqY0hJWWY2cj1hQ3QoVWhpLUZKbTJue18pCnole3Vs
QlVYUmAyPD5seH1lR21TbVJKPjVvdGtAKCtwanNQcTs0aFo2RklLbCN7bnhQIUFMITI4X19BWWZs
YFZnewp6bFJSYUFSfFZteTFfYF5iYmpacnpBe1EkbFllaklZZF5BJFo+VyZqeW5NPUtgVGw0d1Yp
M3dAZDFKY2AtNS1DR0oKenhxXkA4XyghPFpGMnFsaF9afX1ucj9TJjUqeitGQCl2KFoxRUlzO0ht
fSExfk1UTCFqMUBjJFpITFJ9Vig9O15vCnpkVXBmeT9vPnl6b2xfc2k8PFVFQj10KGVlQnpnSl5X
WXdzSENHOTM0cyRkKUBxcUh3Z155Wk17YF5qSiE5O3RyNgp6ZW9VYXkmJCtCeUd8Tl5fem9BSF50
WUlnPmhhWXd8QHxjMzFedyhuVWQ3ayhZbUVKNzZWWTc5KyhDKF8kOzFNc1UKemhpTmkrQjVnU3JE
anw5PjxAPzZSJjh6Ym04YnI/Qy1ObjFjaygrPE5LJTcpNnYtd1dxND1NX1RidDE5NHpVKnlGCnpo
PG90PEhCV25veEIlMWs5KE0wbzxOZylSZ0hTKCM/ZWRFUUIhXnxGay1fKGFgYlVCTEFLKmh+YXp+
IV94dT1UNAp6Nkc1Sy1hWEpvdEhRbEVDOENVNXxSeU1SdVFrWEUpP152NihpPU11KT0kXm8lMCF5
czVHVlJhWFoyUzJINEk4M0wKenEpYmB8UHh7KDg5VzMyenE0c3F6SCtCQUtQOXVhREVwRDhJSUE5
RC1INDVDJVZUP0pKI01hK0JAaTlNUGRGLSMjCnpOeEY1VHV9aXpfaHokU0taMF9fJiFZcDF5YWRW
em9jQEV5K0JlZkpDdENTVmQ1KEp5KDxDNkljQ1d9RG1Id0M4VAp6UntrcXZSQD8zcnpMRzIkWmRj
eC01dkZSQGQkUSNERCt+e2RoQG1kX2VgQkI2KlVZNlIrNF4jVSV6NGx0eDlCJTsKek5WOHoqe0dj
R007Z3EyUnR5ZGp7SDBTMHAjejw2JTdtMyElez9NUXVhPGBAZTViT3RiZCFFYz9HXnV4ZjRneGNJ
CnotRjdTVFlpfnZEYm12Q1ozTkRjZkhqOD5DOUZWNmpkMX0ocFN3cmdHaypRWjlScjQpNiFzU2tU
VXFieGJhZWEydQp6d1NgJHlvc1EpZWIlb192Sk8qIUFgZFI7WTRrPiZxWXp1YS1aTkU8M0ZFPUkr
ZVNVO3ghcHReQTM1Pm9Jb1BgSnEKelpsfilyQzYwTCtrU3hBZ29QRXxyR2pWQD8yQXkqWGI9JGNg
Y19MMz1FemhqQlVEPWgxXzQlZUJDZmxqJkVIWm1PCnpzezFifE51eDYrO0sjS0I9VGtffGlrfHsq
MDFkayQ5S2E2YGNSVT1NY1lpTiFrLWEpMlBEMzFoPGNUcyVrUGhvWgp6Tykyd19UOS04dzJOTSYm
cTJwbDReS3F9Q1BlPWw5aHEkVzQhdDtKRCV8VUooMjh2RGJNKkw+VkY3YldfWHtiMTQKekdOdyh3
PkVfUzlgPDt4UWxQYEBzZD42bTNuMilMKTBwIVhSckQjMjVpSWtSRHMpMXVqTiVTc3l3IzYydmR2
JkFsCnpjZGotWWwjNitAYTBXc2NVPDNgZ3ZXJDJ3LSheSGZFUnl4c05zcTZtSzBkODs/MExTZU5o
JU5FZTBCWUo0SUwoYQp6JFdYbmQpUEJXPEFUa3t5JTJTOUdQYTJxeUpXJF5KSl9jb19YUDFtOUV9
ailRP15sJCMqTUR4UDV8bVkxemNxM3kKemI9QHp5Q1h1Z3dke05qeD9pMjdqK3pYTzQqVj59WmUt
ekJReClIeW53TGBOaighOXQpNTRkTzt6VFZ+LU8jO1U7CnpNd3AwUFUtdVVMPyMjOEwtKSZ2bWJu
QW1uI0AmYT52PWNQfUVVUUpWd2FEdzlWPC1Jd1l0aVQ5dyhUTWVhMiVEeQp6fEE0MCRONXVvaVFF
Xl97UzEtaWBxNWx0dHBnPlNENHBhZmhmbEJ8NlBFPiE+c2hXa29FbVpoZyt+MEhwPDNLVEAKejlq
ayRxTUM9MCZCYmteZlJvNGYzOEp+aVdDfHhHUDBgd1ozRiNrOGcqSWROWSRHRi1BeDhePERyQl5q
MjhYYjZzCnpSfDtWdmFyJTx8VFpLfj4zMGtEMylXJEFEIyh0dGAjQHg3UThPWWFwVF9KeU0xdlQ/
bGJ4LStfRihKRiV5UzBPJAp6cFMjbH13KjBqPmJ9TTNlOzRJPntwTU0+cyVgP2ZTQUVfUWJgQW4+
X1Yha2l9JDl3TU45KGZVMXVKR20wTWk3aEsKekE1bDBlMXdWY14kcWw/NWdtPjhFdkJwU2FXZjVU
SWczWlNidUpocDthJShaK2tje2NkdjFQdVgkZTJHQU4/SmY4CnpXS05nUzwoTTJGTlVgUnhkQkd9
Zj1TMXJuUSplUjEycUZfQyYmcG5AYHklQ35MOV5RX1o5bGgmRz1YdkdDITQxMAp6eW4pNW89KXgy
aUpZK14/XkVMam50SEhgfUspemE/ST18diEkaEwwbiZHenlwemFMd05kZU09T2pXfC0tPW1SX2oK
enl0P35WeF9fOUJFdmNoTD85aHVVb2ItNW4rcjE/PHhAY2d9NWF8VnxGY0ZRTyplSXB3WkVuflZH
TGVxdlNAV2syCnopIStEMy07ezRAT08pYitiUU8jPS1FK0JlT0BmITM8aVQwbWIycGIzODh7R0lS
YXJqZG5UaSVAPzRxd3kjcTYwWQp6cWlBfHt0Nm80OUVNMThKJnc4REEjd1FERHNGd04kSEcqTVRM
MjFCUWopWVJgVzVMO1pmTU08KnJMPUZJZ3wwYkoKelQ5cjdGbEJMTF5yViUxVU8hM3xHREVhTSFq
SFBMcj81UUJ1Q0MhVyk+ZHJmXlJDYGA3WVJZWihLPmllMD5wSmReCnpKV19IeyUpXmMhNj5sfDlQ
OD9jPWooQjU3WUp6OD9YeVF6RTl1R2F9ZFYwUFRwMyE7cCFTRil9dC1pPkM8RWRIKwp6TUtBU25W
IyEmU1dmZH0wZGxqWHN5UWZ6c0A2aTArZHFTSEpMfkY3fm90fCRId2YrRiowakNLKnc1V29GQFE5
aE4KemhsayVTe2g2QzU3Q0kyXzVSOTtmMztwLTE+RFVuKlVeZW9HamhxbzsqUioka1ZFMDFKPlRK
UVJzdjlveiZrITN6CnprV1Q7KjBRZTBNM1VDTHcwRD1KK2ZHZmNGdkpVfGBVZHNLXzM0dFR2SHtm
Ji1ZOFdGR2g/XlAhWDU7eT1GWnVEcwpmZnJXazAlTShPR25UTU48aCZxQHlMZERVXyZNY0FmP3wx
a01lalVObwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2Nl
cnQva2V5LnBlbSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L2tleS5wZW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmFlODU4MzE4
ZjI5YmE2YjQ2MjNiZDVmYmM0YTA4Y2U3M2Q5MDMxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
dGVzdC9jZXJ0L2tleS5wZW0KQEAgLTAsMCArMSwxNSBAQAorLS0tLS1CRUdJTiBSU0EgUFJJVkFU
RSBLRVktLS0tLQorTUlJQ1hnSUJBQUtCZ1FEZUVNNDZXZ1NrSENtVFhDT0NHdklHQWVZcnBBL2Rk
MGwyaVFPaUlkNEVkY2JpM2ZzMQorSnpxaWtvNFNZaXMrSC9SNDM3YVV5eWZXeTlZMzExd0k4QWsr
eWM0a0xRREozMHJnbWVYN0k2bmkxc2s5bHZvQgoraU41YWliRFBBMmR2QklZZDcySWNWYWtIbWk1
bUtuTmJUR0lEK1lLRDIyaS91RXNMaTVNUnVGUnpld0lEQVFBQgorQW9HQkFJdUN1VjFWY25iN3Jt
OEN3dGdaUDVYZ21ZOHZTanhUbGRhZmE2WHZhd0VZVVRQMFM3N3YvMWxsZzFZdgorVUlWK0krUFFn
RzlvVm9ZT2wyMkxvaW1IUy9aM2UxZnNvdDV0RFlzekdlOC9Ha3N0NG9hUmVTb3h2QlVhNldYcAor
UVNvN1lGQ2FqdUh0RStXL2d6RitVSGJkenpYSURqUVozMTRMTkY1dCs0VW5zRVBCQWtFQStnaXJJ
bXFXb00ydAorM1VSOGY4b2VrRVJ3c21FTWY5REg1WXBINGN2VW52SStrd2VzQy9yMlU4U2hvKytm
eUVNVU5tN2FJWEdxTkxnYQorb2dBTSs0Tlg0UUpCQU9OZFN4U2F5MjJlZ1RHTm9JaExuZGxqV2t1
T3QvOUZXajJrbGYvNFF4RDRibE1KUTVPcQorUWRPR0FoN25WUWpwUExRNUQ3Q0JWQUtwR00yQ0Qr
UUpCdHNDUUVQMmt6MzVweFB5bEczdXJjQzJtZlF4QmtrVworWkNWaUJOUDU4R3dKMGJPYXVUT1NC
RXdGWFd1THFUdzhhRHd4TDQ5VU5tcWMwTjBmcGUyZkFlaGozVUVDUVFDbQorRkgvRGpVOEx3N3li
ZGRqTnRtNlhYUHVZTmFneHozY2JrQjRCM0ZjaERsZUlVRHdNb1ZGME1XOWJJNS81NG1WMQorUURr
MXRVS29ydHh2UVpKYUFENEJBa0VBaEdPSFFxUGQ2YkJCb0ZCdnBhTHpQSk14d0xLckIrV3RrcS9R
bEM3MgorQ2xSaU1uMmc4U0FMaUlMM0JEZ0dYS2NLRS9XeTdqby9hZi9KQ3pRL2NQcXQvQT09Cist
LS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NlcnQv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvY2VydC93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zODBiOTRkZTM4NjZkZWI2OTY2Y2UwNjcxZmYyMmY2MGU3M2NjMDQ1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC90ZXN0L2NlcnQvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMCBAQAorVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0lu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczov
L2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmls
ZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC90ZXN0L2NlcnQvY2FjZXJ0LnBlbQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L2NlcnQucGVt
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC90ZXN0L2NlcnQvY2xpZW50X2NlcnQucDEyCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NlcnQva2V5LnBl
bQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NsaWVudF9mb3JfdGVzdGluZy5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVz
dC9jbGllbnRfZm9yX3Rlc3RpbmcucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzdmODA1ZWU5NGU1NDk0NjllZDg3
MGRhZTdlMGNjZjIwMjZiZWFiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jbGllbnRf
Zm9yX3Rlc3RpbmcucHkKQEAgLTAsMCArMSwxMTAwIEBACisjIS91c3IvYmluL2VudiBweXRob24K
KyMKKyMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRp
b24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisKKyIiIldlYlNvY2tldCBjbGllbnQgdXRpbGl0eSBmb3Ig
dGVzdGluZy4KKworVGhpcyBtb2R1bGUgY29udGFpbnMgaGVscGVyIG1ldGhvZHMgZm9yIHBlcmZv
cm1pbmcgaGFuZHNoYWtlLCBmcmFtZQorc2VuZGluZy9yZWNlaXZpbmcgYXMgYSBXZWJTb2NrZXQg
Y2xpZW50LgorCitUaGlzIGlzIGNvZGUgZm9yIHRlc3RpbmcgbW9kX3B5d2Vic29ja2V0LiBLZWVw
IHRoaXMgY29kZSBpbmRlcGVuZGVudCBmcm9tCittb2RfcHl3ZWJzb2NrZXQuIERvbid0IGltcG9y
dCBlLmcuIFN0cmVhbSBjbGFzcyBmb3IgZ2VuZXJhdGluZyBmcmFtZSBmb3IKK3Rlc3RpbmcuIFVz
aW5nIHV0aWwuaGV4aWZ5LCBldGMuIHRoYXQgYXJlIG5vdCByZWxhdGVkIHRvIHByb3RvY29sIHBy
b2Nlc3NpbmcKK2lzIGFsbG93ZWQuCisKK05vdGU6CitUaGlzIGNvZGUgaXMgZmFyIGZyb20gcm9i
dXN0LCBlLmcuLCB3ZSBjdXQgY29ybmVycyBpbiBoYW5kc2hha2UuCisiIiIKKworCitpbXBvcnQg
YmFzZTY0CitpbXBvcnQgZXJybm8KK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3MKK2ltcG9ydCBy
YW5kb20KK2ltcG9ydCByZQoraW1wb3J0IHNvY2tldAoraW1wb3J0IHN0cnVjdAoraW1wb3J0IHRp
bWUKKworZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgorZnJvbSBtb2RfcHl3ZWJz
b2NrZXQgaW1wb3J0IHV0aWwKKworCitERUZBVUxUX1BPUlQgPSA4MAorREVGQVVMVF9TRUNVUkVf
UE9SVCA9IDQ0MworCisjIE9wY29kZXMgaW50cm9kdWNlZCBpbiBJRVRGIEh5QmkgMDEgZm9yIHRo
ZSBuZXcgZnJhbWluZyBmb3JtYXQKK09QQ09ERV9DT05USU5VQVRJT04gPSAweDAKK09QQ09ERV9D
TE9TRSA9IDB4OAorT1BDT0RFX1BJTkcgPSAweDkKK09QQ09ERV9QT05HID0gMHhhCitPUENPREVf
VEVYVCA9IDB4MQorT1BDT0RFX0JJTkFSWSA9IDB4MgorCisjIFN0cmluZ3MgdXNlZCBmb3IgaGFu
ZHNoYWtlCitfVVBHUkFERV9IRUFERVIgPSAnVXBncmFkZTogd2Vic29ja2V0XHJcbicKK19VUEdS
QURFX0hFQURFUl9ISVhJRTc1ID0gJ1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4nCitfQ09OTkVDVElP
Tl9IRUFERVIgPSAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCisKK1dFQlNPQ0tFVF9BQ0NFUFRf
VVVJRCA9ICcyNThFQUZBNS1FOTE0LTQ3REEtOTVDQS1DNUFCMERDODVCMTEnCisKKyMgU3RhdHVz
IGNvZGVzCitTVEFUVVNfTk9STUFMX0NMT1NVUkUgPSAxMDAwCitTVEFUVVNfR09JTkdfQVdBWSA9
IDEwMDEKK1NUQVRVU19QUk9UT0NPTF9FUlJPUiA9IDEwMDIKK1NUQVRVU19VTlNVUFBPUlRFRF9E
QVRBID0gMTAwMworU1RBVFVTX05PX1NUQVRVU19SRUNFSVZFRCA9IDEwMDUKK1NUQVRVU19BQk5P
Uk1BTF9DTE9TVVJFID0gMTAwNgorU1RBVFVTX0lOVkFMSURfRlJBTUVfUEFZTE9BRF9EQVRBID0g
MTAwNworU1RBVFVTX1BPTElDWV9WSU9MQVRJT04gPSAxMDA4CitTVEFUVVNfTUVTU0FHRV9UT09f
QklHID0gMTAwOQorU1RBVFVTX01BTkRBVE9SWV9FWFQgPSAxMDEwCitTVEFUVVNfSU5URVJOQUxf
RU5EUE9JTlRfRVJST1IgPSAxMDExCitTVEFUVVNfVExTX0hBTkRTSEFLRSA9IDEwMTUKKworIyBF
eHRlbnNpb24gdG9rZW5zCitfREVGTEFURV9GUkFNRV9FWFRFTlNJT04gPSAnZGVmbGF0ZS1mcmFt
ZScKKyMgVE9ETyhiYXNoaSk6IFVwZGF0ZSBhZnRlciBtdXggaW1wbGVtZW50YXRpb24gZmluaXNo
ZWQuCitfTVVYX0VYVEVOU0lPTiA9ICdtdXhfRE9fTk9UX1VTRScKK19QRVJNRVNTQUdFX0RFRkxB
VEVfRVhURU5TSU9OID0gJ3Blcm1lc3NhZ2UtZGVmbGF0ZScKKworZGVmIF9tZXRob2RfbGluZShy
ZXNvdXJjZSk6CisgICAgcmV0dXJuICdHRVQgJXMgSFRUUC8xLjFcclxuJyAlIHJlc291cmNlCisK
KworZGVmIF9zZWNfb3JpZ2luX2hlYWRlcihvcmlnaW4pOgorICAgIHJldHVybiAnU2VjLVdlYlNv
Y2tldC1PcmlnaW46ICVzXHJcbicgJSBvcmlnaW4ubG93ZXIoKQorCisKK2RlZiBfb3JpZ2luX2hl
YWRlcihvcmlnaW4pOgorICAgICMgNC4xIDEzLiBjb25jYXRlbmF0aW9uIG9mIHRoZSBzdHJpbmcg
Ik9yaWdpbjoiLCBhIFUrMDAyMCBTUEFDRSBjaGFyYWN0ZXIsCisgICAgIyBhbmQgdGhlIC9vcmln
aW4vIHZhbHVlLCBjb252ZXJ0ZWQgdG8gQVNDSUkgbG93ZXJjYXNlLCB0byAvZmllbGRzLy4KKyAg
ICByZXR1cm4gJ09yaWdpbjogJXNcclxuJyAlIG9yaWdpbi5sb3dlcigpCisKKworZGVmIF9mb3Jt
YXRfaG9zdF9oZWFkZXIoaG9zdCwgcG9ydCwgc2VjdXJlKToKKyAgICAjIDQuMSA5LiBMZXQgL2hv
c3Rwb3J0LyBiZSBhbiBlbXB0eSBzdHJpbmcuCisgICAgIyA0LjEgMTAuIEFwcGVuZCB0aGUgL2hv
c3QvIHZhbHVlLCBjb252ZXJ0ZWQgdG8gQVNDSUkgbG93ZXJjYXNlLCB0bworICAgICMgL2hvc3Rw
b3J0LworICAgIGhvc3Rwb3J0ID0gaG9zdC5sb3dlcigpCisgICAgIyA0LjEgMTEuIElmIC9zZWN1
cmUvIGlzIGZhbHNlLCBhbmQgL3BvcnQvIGlzIG5vdCA4MCwgb3IgaWYgL3NlY3VyZS8KKyAgICAj
IGlzIHRydWUsIGFuZCAvcG9ydC8gaXMgbm90IDQ0MywgdGhlbiBhcHBlbmQgYSBVKzAwM0EgQ09M
T04gY2hhcmFjdGVyCisgICAgIyAoOikgZm9sbG93ZWQgYnkgdGhlIHZhbHVlIG9mIC9wb3J0Lywg
ZXhwcmVzc2VkIGFzIGEgYmFzZS10ZW4gaW50ZWdlciwKKyAgICAjIHRvIC9ob3N0cG9ydC8KKyAg
ICBpZiAoKG5vdCBzZWN1cmUgYW5kIHBvcnQgIT0gREVGQVVMVF9QT1JUKSBvcgorICAgICAgICAo
c2VjdXJlIGFuZCBwb3J0ICE9IERFRkFVTFRfU0VDVVJFX1BPUlQpKToKKyAgICAgICAgaG9zdHBv
cnQgKz0gJzonICsgc3RyKHBvcnQpCisgICAgIyA0LjEgMTIuIGNvbmNhdGVuYXRpb24gb2YgdGhl
IHN0cmluZyAiSG9zdDoiLCBhIFUrMDAyMCBTUEFDRQorICAgICMgY2hhcmFjdGVyLCBhbmQgL2hv
c3Rwb3J0LywgdG8gL2ZpZWxkcy8uCisgICAgcmV0dXJuICdIb3N0OiAlc1xyXG4nICUgaG9zdHBv
cnQKKworCisjIFRPRE8odHlvc2hpbm8pOiBEZWZpbmUgYSBiYXNlIGNsYXNzIGFuZCBtb3ZlIHRo
ZXNlIHNoYXJlZCBtZXRob2RzIHRvIHRoYXQuCisKKworZGVmIHJlY2VpdmVfYnl0ZXMoc29ja2V0
LCBsZW5ndGgpOgorICAgIHJlY2VpdmVkX2J5dGVzID0gW10KKyAgICByZW1haW5pbmcgPSBsZW5n
dGgKKyAgICB3aGlsZSByZW1haW5pbmcgPiAwOgorICAgICAgICBuZXdfcmVjZWl2ZWRfYnl0ZXMg
PSBzb2NrZXQucmVjdihyZW1haW5pbmcpCisgICAgICAgIGlmIG5vdCBuZXdfcmVjZWl2ZWRfYnl0
ZXM6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ0Nvbm5l
Y3Rpb24gY2xvc2VkIGJlZm9yZSByZWNlaXZpbmcgcmVxdWVzdGVkIGxlbmd0aCAnCisgICAgICAg
ICAgICAgICAgJyhyZXF1ZXN0ZWQgJWQgYnl0ZXMgYnV0IHJlY2VpdmVkIG9ubHkgJWQgYnl0ZXMp
JyAlCisgICAgICAgICAgICAgICAgKGxlbmd0aCwgbGVuZ3RoIC0gcmVtYWluaW5nKSkKKyAgICAg
ICAgcmVjZWl2ZWRfYnl0ZXMuYXBwZW5kKG5ld19yZWNlaXZlZF9ieXRlcykKKyAgICAgICAgcmVt
YWluaW5nIC09IGxlbihuZXdfcmVjZWl2ZWRfYnl0ZXMpCisgICAgcmV0dXJuICcnLmpvaW4ocmVj
ZWl2ZWRfYnl0ZXMpCisKKworIyBUT0RPKHR5b3NoaW5vKTogTm93IHRoZSBXZWJTb2NrZXRIYW5k
c2hha2UgY2xhc3MgZGl2ZXJ0cyB0aGVzZSBtZXRob2RzLiBXZQorIyBzaG91bGQgbW92ZSB0byBI
VFRQIHBhcnNlciBhcyBzcGVjaWZpZWQgaW4gUkZDIDY0NTUuIEZvciBIeUJpIDAwIGFuZAorIyBI
aXhpZSA3NSwgcGFjayB0aGVzZSBtZXRob2RzIGFzIHNvbWUgcGFyc2VyIGNsYXNzLgorCisKK2Rl
ZiBfcmVhZF9maWVsZHMoc29ja2V0KToKKyAgICAjIDQuMSAzMi4gbGV0IC9maWVsZHMvIGJlIGEg
bGlzdCBvZiBuYW1lLXZhbHVlIHBhaXJzLCBpbml0aWFsbHkgZW1wdHkuCisgICAgZmllbGRzID0g
e30KKyAgICB3aGlsZSBUcnVlOgorICAgICAgICAjIDQuMSAzMy4gbGV0IC9uYW1lLyBhbmQgL3Zh
bHVlLyBiZSBlbXB0eSBieXRlIGFycmF5cworICAgICAgICBuYW1lID0gJycKKyAgICAgICAgdmFs
dWUgPSAnJworICAgICAgICAjIDQuMSAzNC4gcmVhZCAvbmFtZS8KKyAgICAgICAgbmFtZSA9IF9y
ZWFkX25hbWUoc29ja2V0KQorICAgICAgICBpZiBuYW1lIGlzIE5vbmU6CisgICAgICAgICAgICBi
cmVhaworICAgICAgICAjIDQuMSAzNS4gcmVhZCBzcGFjZXMKKyAgICAgICAgIyBUT0RPKHR5b3No
aW5vKTogU2tpcCBvbmx5IG9uZSBzcGFjZSBhcyBkZXNjcmliZWQgaW4gdGhlIHNwZWMuCisgICAg
ICAgIGNoID0gX3NraXBfc3BhY2VzKHNvY2tldCkKKyAgICAgICAgIyA0LjEgMzYuIHJlYWQgL3Zh
bHVlLworICAgICAgICB2YWx1ZSA9IF9yZWFkX3ZhbHVlKHNvY2tldCwgY2gpCisgICAgICAgICMg
NC4xIDM3LiByZWFkIGEgYnl0ZSBmcm9tIHRoZSBzZXJ2ZXIKKyAgICAgICAgY2ggPSByZWNlaXZl
X2J5dGVzKHNvY2tldCwgMSkKKyAgICAgICAgaWYgY2ggIT0gJ1xuJzogICMgMHgwQQorICAgICAg
ICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdFeHBlY3RlZCBMRiBidXQg
Zm91bmQgJXIgd2hpbGUgcmVhZGluZyB2YWx1ZSAlciBmb3IgaGVhZGVyICcKKyAgICAgICAgICAg
ICAgICAnJXInICUgKGNoLCBuYW1lLCB2YWx1ZSkpCisgICAgICAgICMgNC4xIDM4LiBhcHBlbmQg
YW4gZW50cnkgdG8gdGhlIC9maWVsZHMvIGxpc3QgdGhhdCBoYXMgdGhlIG5hbWUKKyAgICAgICAg
IyBnaXZlbiBieSB0aGUgc3RyaW5nIG9idGFpbmVkIGJ5IGludGVycHJldGluZyB0aGUgL25hbWUv
IGJ5dGUKKyAgICAgICAgIyBhcnJheSBhcyBhIFVURi04IHN0cmVhbSBhbmQgdGhlIHZhbHVlIGdp
dmVuIGJ5IHRoZSBzdHJpbmcKKyAgICAgICAgIyBvYnRhaW5lZCBieSBpbnRlcnByZXRpbmcgdGhl
IC92YWx1ZS8gYnl0ZSBhcnJheSBhcyBhIFVURi04IGJ5dGUKKyAgICAgICAgIyBzdHJlYW0uCisg
ICAgICAgIGZpZWxkcy5zZXRkZWZhdWx0KG5hbWUsIFtdKS5hcHBlbmQodmFsdWUpCisgICAgICAg
ICMgNC4xIDM5LiByZXR1cm4gdG8gdGhlICJGaWVsZCIgc3RlcCBhYm92ZQorICAgIHJldHVybiBm
aWVsZHMKKworCitkZWYgX3JlYWRfbmFtZShzb2NrZXQpOgorICAgICMgNC4xIDMzLiBsZXQgL25h
bWUvIGJlIGVtcHR5IGJ5dGUgYXJyYXlzCisgICAgbmFtZSA9ICcnCisgICAgd2hpbGUgVHJ1ZToK
KyAgICAgICAgIyA0LjEgMzQuIHJlYWQgYSBieXRlIGZyb20gdGhlIHNlcnZlcgorICAgICAgICBj
aCA9IHJlY2VpdmVfYnl0ZXMoc29ja2V0LCAxKQorICAgICAgICBpZiBjaCA9PSAnXHInOiAgIyAw
eDBECisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBlbGlmIGNoID09ICdcbic6ICAj
IDB4MEEKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnVW5l
eHBlY3RlZCBMRiB3aGVuIHJlYWRpbmcgaGVhZGVyIG5hbWUgJXInICUgbmFtZSkKKyAgICAgICAg
ZWxpZiBjaCA9PSAnOic6ICAjIDB4M0EKKyAgICAgICAgICAgIHJldHVybiBuYW1lCisgICAgICAg
IGVsaWYgY2ggPj0gJ0EnIGFuZCBjaCA8PSAnWic6ICAjIHJhbmdlIDB4MzEgdG8gMHg1QQorICAg
ICAgICAgICAgY2ggPSBjaHIob3JkKGNoKSArIDB4MjApCisgICAgICAgICAgICBuYW1lICs9IGNo
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBuYW1lICs9IGNoCisKKworZGVmIF9za2lwX3Nw
YWNlcyhzb2NrZXQpOgorICAgICMgNC4xIDM1LiByZWFkIGEgYnl0ZSBmcm9tIHRoZSBzZXJ2ZXIK
KyAgICB3aGlsZSBUcnVlOgorICAgICAgICBjaCA9IHJlY2VpdmVfYnl0ZXMoc29ja2V0LCAxKQor
ICAgICAgICBpZiBjaCA9PSAnICc6ICAjIDB4MjAKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAg
ICAgIHJldHVybiBjaAorCisKK2RlZiBfcmVhZF92YWx1ZShzb2NrZXQsIGNoKToKKyAgICAjIDQu
MSAzMy4gbGV0IC92YWx1ZS8gYmUgZW1wdHkgYnl0ZSBhcnJheXMKKyAgICB2YWx1ZSA9ICcnCisg
ICAgIyA0LjEgMzYuIHJlYWQgYSBieXRlIGZyb20gc2VydmVyLgorICAgIHdoaWxlIFRydWU6Cisg
ICAgICAgIGlmIGNoID09ICdccic6ICAjIDB4MEQKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZQor
ICAgICAgICBlbGlmIGNoID09ICdcbic6ICAjIDB4MEEKKyAgICAgICAgICAgIHJhaXNlIEV4Y2Vw
dGlvbigKKyAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBMRiB3aGVuIHJlYWRpbmcgaGVhZGVy
IHZhbHVlICVyJyAlIHZhbHVlKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdmFsdWUgKz0g
Y2gKKyAgICAgICAgY2ggPSByZWNlaXZlX2J5dGVzKHNvY2tldCwgMSkKKworCitkZWYgcmVhZF9m
cmFtZV9oZWFkZXIoc29ja2V0KToKKyAgICByZWNlaXZlZCA9IHJlY2VpdmVfYnl0ZXMoc29ja2V0
LCAyKQorCisgICAgZmlyc3RfYnl0ZSA9IG9yZChyZWNlaXZlZFswXSkKKyAgICBmaW4gPSAoZmly
c3RfYnl0ZSA+PiA3KSAmIDEKKyAgICByc3YxID0gKGZpcnN0X2J5dGUgPj4gNikgJiAxCisgICAg
cnN2MiA9IChmaXJzdF9ieXRlID4+IDUpICYgMQorICAgIHJzdjMgPSAoZmlyc3RfYnl0ZSA+PiA0
KSAmIDEKKyAgICBvcGNvZGUgPSBmaXJzdF9ieXRlICYgMHhmCisKKyAgICBzZWNvbmRfYnl0ZSA9
IG9yZChyZWNlaXZlZFsxXSkKKyAgICBtYXNrID0gKHNlY29uZF9ieXRlID4+IDcpICYgMQorICAg
IHBheWxvYWRfbGVuZ3RoID0gc2Vjb25kX2J5dGUgJiAweDdmCisKKyAgICBpZiBtYXNrICE9IDA6
CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKKyAgICAgICAgICAgICdNYXNrIGJpdCBtdXN0IGJl
IDAgZm9yIGZyYW1lcyBjb21pbmcgZnJvbSBzZXJ2ZXInKQorCisgICAgaWYgcGF5bG9hZF9sZW5n
dGggPT0gMTI3OgorICAgICAgICBleHRlbmRlZF9wYXlsb2FkX2xlbmd0aCA9IHJlY2VpdmVfYnl0
ZXMoc29ja2V0LCA4KQorICAgICAgICBwYXlsb2FkX2xlbmd0aCA9IHN0cnVjdC51bnBhY2soCisg
ICAgICAgICAgICAnIVEnLCBleHRlbmRlZF9wYXlsb2FkX2xlbmd0aClbMF0KKyAgICAgICAgaWYg
cGF5bG9hZF9sZW5ndGggPiAweDdGRkZGRkZGRkZGRkZGRkY6CisgICAgICAgICAgICByYWlzZSBF
eGNlcHRpb24oJ0V4dGVuZGVkIHBheWxvYWQgbGVuZ3RoID49IDJeNjMnKQorICAgIGVsaWYgcGF5
bG9hZF9sZW5ndGggPT0gMTI2OgorICAgICAgICBleHRlbmRlZF9wYXlsb2FkX2xlbmd0aCA9IHJl
Y2VpdmVfYnl0ZXMoc29ja2V0LCAyKQorICAgICAgICBwYXlsb2FkX2xlbmd0aCA9IHN0cnVjdC51
bnBhY2soCisgICAgICAgICAgICAnIUgnLCBleHRlbmRlZF9wYXlsb2FkX2xlbmd0aClbMF0KKwor
ICAgIHJldHVybiBmaW4sIHJzdjEsIHJzdjIsIHJzdjMsIG9wY29kZSwgcGF5bG9hZF9sZW5ndGgK
KworCitjbGFzcyBfVExTU29ja2V0KG9iamVjdCk6CisgICAgIiIiV3JhcHBlciBmb3IgYSBUTFMg
Y29ubmVjdGlvbi4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByYXdfc29ja2V0KToKKyAg
ICAgICAgc2VsZi5fc3NsID0gc29ja2V0LnNzbChyYXdfc29ja2V0KQorCisgICAgZGVmIHNlbmQo
c2VsZiwgYnl0ZXMpOgorICAgICAgICByZXR1cm4gc2VsZi5fc3NsLndyaXRlKGJ5dGVzKQorCisg
ICAgZGVmIHJlY3Yoc2VsZiwgc2l6ZT0tMSk6CisgICAgICAgIHJldHVybiBzZWxmLl9zc2wucmVh
ZChzaXplKQorCisgICAgZGVmIGNsb3NlKHNlbGYpOgorICAgICAgICAjIE5vdGhpbmcgdG8gZG8u
CisgICAgICAgIHBhc3MKKworCitjbGFzcyBIdHRwU3RhdHVzRXhjZXB0aW9uKEV4Y2VwdGlvbik6
CisgICAgIiIiVGhpcyBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQgd2hlbiB1bmV4cGVjdGVkIGh0
dHAgc3RhdHVzIGNvZGUgd2FzCisgICAgcmVjZWl2ZWQgYXMgYSByZXN1bHQgb2YgaGFuZHNoYWtl
LgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHN0YXR1cyk6CisgICAg
ICAgIHN1cGVyKEh0dHBTdGF0dXNFeGNlcHRpb24sIHNlbGYpLl9faW5pdF9fKG5hbWUpCisgICAg
ICAgIHNlbGYuc3RhdHVzID0gc3RhdHVzCisKKworY2xhc3MgV2ViU29ja2V0SGFuZHNoYWtlKG9i
amVjdCk6CisgICAgIiIiT3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29yIGZvciB0aGUgV2ViU29j
a2V0IHByb3RvY29sIChSRkMgNjQ1NSkuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0
aW9ucyk6CisgICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxm
KQorCisgICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25zCisKKyAgICBkZWYgaGFuZHNoYWtl
KHNlbGYsIHNvY2tldCk6CisgICAgICAgICIiIkhhbmRzaGFrZSBXZWJTb2NrZXQuCisKKyAgICAg
ICAgUmFpc2VzOgorICAgICAgICAgICAgRXhjZXB0aW9uOiBoYW5kc2hha2UgZmFpbGVkLgorICAg
ICAgICAiIiIKKworICAgICAgICBzZWxmLl9zb2NrZXQgPSBzb2NrZXQKKworICAgICAgICByZXF1
ZXN0X2xpbmUgPSBfbWV0aG9kX2xpbmUoc2VsZi5fb3B0aW9ucy5yZXNvdXJjZSkKKyAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSBSZXF1ZXN0LUxpbmU6ICVyJywg
cmVxdWVzdF9saW5lKQorICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChyZXF1ZXN0X2xpbmUp
CisKKyAgICAgICAgZmllbGRzID0gW10KKyAgICAgICAgZmllbGRzLmFwcGVuZChfVVBHUkFERV9I
RUFERVIpCisgICAgICAgIGZpZWxkcy5hcHBlbmQoX0NPTk5FQ1RJT05fSEVBREVSKQorCisgICAg
ICAgIGZpZWxkcy5hcHBlbmQoX2Zvcm1hdF9ob3N0X2hlYWRlcigKKyAgICAgICAgICAgIHNlbGYu
X29wdGlvbnMuc2VydmVyX2hvc3QsCisgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9w
b3J0LAorICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfdGxzKSkKKworICAgICAgICBpZiBz
ZWxmLl9vcHRpb25zLnZlcnNpb24gaXMgODoKKyAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoX3Nl
Y19vcmlnaW5faGVhZGVyKHNlbGYuX29wdGlvbnMub3JpZ2luKSkKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIGZpZWxkcy5hcHBlbmQoX29yaWdpbl9oZWFkZXIoc2VsZi5fb3B0aW9ucy5vcmln
aW4pKQorCisgICAgICAgIG9yaWdpbmFsX2tleSA9IG9zLnVyYW5kb20oMTYpCisgICAgICAgIGtl
eSA9IGJhc2U2NC5iNjRlbmNvZGUob3JpZ2luYWxfa2V5KQorICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoCisgICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXk6ICVzICglcyknLCBrZXksIHV0
aWwuaGV4aWZ5KG9yaWdpbmFsX2tleSkpCisgICAgICAgIGZpZWxkcy5hcHBlbmQoJ1NlYy1XZWJT
b2NrZXQtS2V5OiAlc1xyXG4nICUga2V5KQorCisgICAgICAgIGZpZWxkcy5hcHBlbmQoJ1NlYy1X
ZWJTb2NrZXQtVmVyc2lvbjogJWRcclxuJyAlIHNlbGYuX29wdGlvbnMudmVyc2lvbikKKworICAg
ICAgICAjIFNldHRpbmcgdXAgZXh0ZW5zaW9ucy4KKyAgICAgICAgaWYgbGVuKHNlbGYuX29wdGlv
bnMuZXh0ZW5zaW9ucykgPiAwOgorICAgICAgICAgICAgZmllbGRzLmFwcGVuZCgnU2VjLVdlYlNv
Y2tldC1FeHRlbnNpb25zOiAlc1xyXG4nICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJywg
Jy5qb2luKHNlbGYuX29wdGlvbnMuZXh0ZW5zaW9ucykpCisKKyAgICAgICAgc2VsZi5fbG9nZ2Vy
LmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSByZXF1ZXN0IGhlYWRlcnM6ICVyJywgZmllbGRzKQor
CisgICAgICAgIGZvciBmaWVsZCBpbiBmaWVsZHM6CisgICAgICAgICAgICBzZWxmLl9zb2NrZXQu
c2VuZGFsbChmaWVsZCkKKyAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoJ1xyXG4nKQorCisg
ICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdTZW50IG9wZW5pbmcgaGFuZHNoYWtlIHJlcXVlc3Qn
KQorCisgICAgICAgIGZpZWxkID0gJycKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAg
IGNoID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCisgICAgICAgICAgICBmaWVsZCAr
PSBjaAorICAgICAgICAgICAgaWYgY2ggPT0gJ1xuJzoKKyAgICAgICAgICAgICAgICBicmVhawor
CisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hha2UgUmVzcG9uc2Ut
TGluZTogJXInLCBmaWVsZCkKKworICAgICAgICBpZiBsZW4oZmllbGQpIDwgNyBvciBub3QgZmll
bGQuZW5kc3dpdGgoJ1xyXG4nKToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignV3Jvbmcg
c3RhdHVzIGxpbmU6ICVyJyAlIGZpZWxkKQorICAgICAgICBtID0gcmUubWF0Y2goJ1teIF0qIChb
XiBdKikgLionLCBmaWVsZCkKKyAgICAgICAgaWYgbSBpcyBOb25lOgorICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdObyBIVFRQIHN0YXR1cyBjb2RlIGZvdW5k
IGluIHN0YXR1cyBsaW5lOiAlcicgJSBmaWVsZCkKKyAgICAgICAgY29kZSA9IG0uZ3JvdXAoMSkK
KyAgICAgICAgaWYgbm90IHJlLm1hdGNoKCdbMC05XVswLTldWzAtOV0nLCBjb2RlKToKKyAgICAg
ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnSFRUUCBzdGF0dXMgY29k
ZSAlciBpcyBub3QgdGhyZWUgZGlnaXQgaW4gc3RhdHVzIGxpbmU6ICVyJyAlCisgICAgICAgICAg
ICAgICAgKGNvZGUsIGZpZWxkKSkKKyAgICAgICAgaWYgY29kZSAhPSAnMTAxJzoKKyAgICAgICAg
ICAgIHJhaXNlIEh0dHBTdGF0dXNFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ0V4cGVjdGVk
IEhUVFAgc3RhdHVzIGNvZGUgMTAxIGJ1dCBmb3VuZCAlciBpbiBzdGF0dXMgbGluZTogJworICAg
ICAgICAgICAgICAgICclcicgJSAoY29kZSwgZmllbGQpLCBpbnQoY29kZSkpCisgICAgICAgIGZp
ZWxkcyA9IF9yZWFkX2ZpZWxkcyhzZWxmLl9zb2NrZXQpCisgICAgICAgIGNoID0gcmVjZWl2ZV9i
eXRlcyhzZWxmLl9zb2NrZXQsIDEpCisgICAgICAgIGlmIGNoICE9ICdcbic6ICAjIDB4MEEKKyAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRXhwZWN0ZWQgTEYgYnV0IGZvdW5kOiAlcicgJSBj
aCkKKworICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ09wZW5pbmcgaGFuZHNoYWtlIHJlc3Bv
bnNlIGhlYWRlcnM6ICVyJywgZmllbGRzKQorCisgICAgICAgICMgQ2hlY2sgL2ZpZWxkcy8KKyAg
ICAgICAgaWYgbGVuKGZpZWxkc1sndXBncmFkZSddKSAhPSAxOgorICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdNdWx0aXBsZSBVcGdyYWRlIGhlYWRlcnMgZm91
bmQ6ICVzJyAlIGZpZWxkc1sndXBncmFkZSddKQorICAgICAgICBpZiBsZW4oZmllbGRzWydjb25u
ZWN0aW9uJ10pICE9IDE6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAg
ICAgICAgJ011bHRpcGxlIENvbm5lY3Rpb24gaGVhZGVycyBmb3VuZDogJXMnICUgZmllbGRzWydj
b25uZWN0aW9uJ10pCisgICAgICAgIGlmIGZpZWxkc1sndXBncmFkZSddWzBdICE9ICd3ZWJzb2Nr
ZXQnOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdVbmV4
cGVjdGVkIFVwZ3JhZGUgaGVhZGVyIHZhbHVlOiAlcycgJSBmaWVsZHNbJ3VwZ3JhZGUnXVswXSkK
KyAgICAgICAgaWYgZmllbGRzWydjb25uZWN0aW9uJ11bMF0ubG93ZXIoKSAhPSAndXBncmFkZSc6
CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ1VuZXhwZWN0
ZWQgQ29ubmVjdGlvbiBoZWFkZXIgdmFsdWU6ICVzJyAlCisgICAgICAgICAgICAgICAgZmllbGRz
Wydjb25uZWN0aW9uJ11bMF0pCisKKyAgICAgICAgaWYgbGVuKGZpZWxkc1snc2VjLXdlYnNvY2tl
dC1hY2NlcHQnXSkgIT0gMToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKKyAgICAgICAg
ICAgICAgICAnTXVsdGlwbGUgU2VjLVdlYlNvY2tldC1BY2NlcHQgaGVhZGVycyBmb3VuZDogJXMn
ICUKKyAgICAgICAgICAgICAgICBmaWVsZHNbJ3NlYy13ZWJzb2NrZXQtYWNjZXB0J10pCisKKyAg
ICAgICAgYWNjZXB0ID0gZmllbGRzWydzZWMtd2Vic29ja2V0LWFjY2VwdCddWzBdCisKKyAgICAg
ICAgIyBWYWxpZGF0ZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBkZWNvZGVkX2FjY2VwdCA9
IGJhc2U2NC5iNjRkZWNvZGUoYWNjZXB0KQorICAgICAgICBleGNlcHQgVHlwZUVycm9yLCBlOgor
ICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdJ
bGxlZ2FsIHZhbHVlIGZvciBoZWFkZXIgU2VjLVdlYlNvY2tldC1BY2NlcHQ6ICcgKyBhY2NlcHQp
CisKKyAgICAgICAgaWYgbGVuKGRlY29kZWRfYWNjZXB0KSAhPSAyMDoKKyAgICAgICAgICAgIHJh
aXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnRGVjb2RlZCB2YWx1ZSBv
ZiBTZWMtV2ViU29ja2V0LUFjY2VwdCBpcyBub3QgMjAtYnl0ZSBsb25nJykKKworICAgICAgICBz
ZWxmLl9sb2dnZXIuZGVidWcoJ0FjdHVhbCBTZWMtV2ViU29ja2V0LUFjY2VwdDogJXIgKCVzKScs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHQsIHV0aWwuaGV4aWZ5KGRlY29kZWRf
YWNjZXB0KSkKKworICAgICAgICBvcmlnaW5hbF9leHBlY3RlZF9hY2NlcHQgPSB1dGlsLnNoYTFf
aGFzaCgKKyAgICAgICAgICAgIGtleSArIFdFQlNPQ0tFVF9BQ0NFUFRfVVVJRCkuZGlnZXN0KCkK
KyAgICAgICAgZXhwZWN0ZWRfYWNjZXB0ID0gYmFzZTY0LmI2NGVuY29kZShvcmlnaW5hbF9leHBl
Y3RlZF9hY2NlcHQpCisKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdFeHBlY3RlZCBTZWMt
V2ViU29ja2V0LUFjY2VwdDogJXIgKCVzKScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBl
eHBlY3RlZF9hY2NlcHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlsLmhleGlmeShv
cmlnaW5hbF9leHBlY3RlZF9hY2NlcHQpKQorCisgICAgICAgIGlmIGFjY2VwdCAhPSBleHBlY3Rl
ZF9hY2NlcHQ6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAgICAg
J0ludmFsaWQgU2VjLVdlYlNvY2tldC1BY2NlcHQgaGVhZGVyOiAlciAoZXhwZWN0ZWQpICE9ICVy
ICcKKyAgICAgICAgICAgICAgICAnKGFjdHVhbCknICUgKGFjY2VwdCwgZXhwZWN0ZWRfYWNjZXB0
KSkKKworICAgICAgICBzZXJ2ZXJfZXh0ZW5zaW9uc19oZWFkZXIgPSBmaWVsZHMuZ2V0KCdzZWMt
d2Vic29ja2V0LWV4dGVuc2lvbnMnKQorICAgICAgICBhY2NlcHRlZF9leHRlbnNpb25zID0gW10K
KyAgICAgICAgaWYgc2VydmVyX2V4dGVuc2lvbnNfaGVhZGVyIGlzIG5vdCBOb25lOgorICAgICAg
ICAgICAgYWNjZXB0ZWRfZXh0ZW5zaW9ucyA9IGNvbW1vbi5wYXJzZV9leHRlbnNpb25zKAorICAg
ICAgICAgICAgICAgICAgICAnLCAnLmpvaW4oc2VydmVyX2V4dGVuc2lvbnNfaGVhZGVyKSkKKwor
ICAgICAgICAjIFNjYW4gYWNjZXB0ZWQgZXh0ZW5zaW9uIGxpc3QgdG8gY2hlY2sgaWYgdGhlcmUg
aXMgYW55IHVucmVjb2duaXplZAorICAgICAgICAjIGV4dGVuc2lvbnMgb3IgZXh0ZW5zaW9ucyB3
ZSBkaWRuJ3QgcmVxdWVzdCBpbiBpdC4gVGhlbiwgZm9yCisgICAgICAgICMgZXh0ZW5zaW9ucyB3
ZSByZXF1ZXN0LCBwYXJzZSB0aGVtIGFuZCBzdG9yZSBwYXJhbWV0ZXJzLiBUaGV5IHdpbGwgYmUK
KyAgICAgICAgIyB1c2VkIGxhdGVyIGJ5IGVhY2ggZXh0ZW5zaW9uLgorICAgICAgICBkZWZsYXRl
X2ZyYW1lX2FjY2VwdGVkID0gRmFsc2UKKyAgICAgICAgbXV4X2FjY2VwdGVkID0gRmFsc2UKKyAg
ICAgICAgZm9yIGV4dGVuc2lvbiBpbiBhY2NlcHRlZF9leHRlbnNpb25zOgorICAgICAgICAgICAg
aWYgZXh0ZW5zaW9uLm5hbWUoKSA9PSBfREVGTEFURV9GUkFNRV9FWFRFTlNJT046CisgICAgICAg
ICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy51c2VfZGVmbGF0ZV9mcmFtZToKKyAgICAgICAgICAg
ICAgICAgICAgZGVmbGF0ZV9mcmFtZV9hY2NlcHRlZCA9IFRydWUKKyAgICAgICAgICAgICAgICAg
ICAgY29udGludWUKKyAgICAgICAgICAgIGlmIGV4dGVuc2lvbi5uYW1lKCkgPT0gX01VWF9FWFRF
TlNJT046CisgICAgICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy51c2VfbXV4OgorICAgICAg
ICAgICAgICAgICAgICBtdXhfYWNjZXB0ZWQgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlCisgICAgICAgICAgICBpZiBleHRlbnNpb24ubmFtZSgpID09IF9QRVJNRVNTQUdFX0RF
RkxBVEVfRVhURU5TSU9OOgorICAgICAgICAgICAgICAgIGNoZWNrZXIgPSBzZWxmLl9vcHRpb25z
LmNoZWNrX3Blcm1lc3NhZ2VfZGVmbGF0ZQorICAgICAgICAgICAgICAgIGlmIGNoZWNrZXI6Cisg
ICAgICAgICAgICAgICAgICAgIGNoZWNrZXIoZXh0ZW5zaW9uKQorICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZQorCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAg
ICAgJ1JlY2VpdmVkIHVucmVjb2duaXplZCBleHRlbnNpb246ICVzJyAlIGV4dGVuc2lvbi5uYW1l
KCkpCisKKyAgICAgICAgIyBMZXQgYWxsIGV4dGVuc2lvbnMgY2hlY2sgdGhlIHJlc3BvbnNlIGZv
ciBleHRlbnNpb24gcmVxdWVzdC4KKworICAgICAgICBpZiAoc2VsZi5fb3B0aW9ucy51c2VfZGVm
bGF0ZV9mcmFtZSBhbmQKKyAgICAgICAgICAgIG5vdCBkZWZsYXRlX2ZyYW1lX2FjY2VwdGVkKToK
KyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignJXMgZXh0ZW5zaW9uIG5vdCBhY2NlcHRlZCcg
JQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikK
KworICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnVzZV9tdXggYW5kIG5vdCBtdXhfYWNjZXB0ZWQ6
CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJyVzIGV4dGVuc2lvbiBub3QgYWNjZXB0ZWQn
ICUgX01VWF9FWFRFTlNJT04pCisKKworY2xhc3MgV2ViU29ja2V0SHliaTAwSGFuZHNoYWtlKG9i
amVjdCk6CisgICAgIiIiT3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29yIGZvciB0aGUgV2ViU29j
a2V0IHByb3RvY29sIHZlcnNpb24gSHlCaSAwMC4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBvcHRpb25zLCBkcmFmdF9maWVsZCk6CisgICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0
aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQorCisgICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRp
b25zCisgICAgICAgIHNlbGYuX2RyYWZ0X2ZpZWxkID0gZHJhZnRfZmllbGQKKworICAgIGRlZiBo
YW5kc2hha2Uoc2VsZiwgc29ja2V0KToKKyAgICAgICAgIiIiSGFuZHNoYWtlIFdlYlNvY2tldC4K
KworICAgICAgICBSYWlzZXM6CisgICAgICAgICAgICBFeGNlcHRpb246IGhhbmRzaGFrZSBmYWls
ZWQuCisgICAgICAgICIiIgorCisgICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldAorCisgICAg
ICAgICMgNC4xIDUuIHNlbmQgcmVxdWVzdCBsaW5lLgorICAgICAgICByZXF1ZXN0X2xpbmUgPSBf
bWV0aG9kX2xpbmUoc2VsZi5fb3B0aW9ucy5yZXNvdXJjZSkKKyAgICAgICAgc2VsZi5fbG9nZ2Vy
LmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSBSZXF1ZXN0LUxpbmU6ICVyJywgcmVxdWVzdF9saW5l
KQorICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChyZXF1ZXN0X2xpbmUpCisgICAgICAgICMg
NC4xIDYuIExldCAvZmllbGRzLyBiZSBhbiBlbXB0eSBsaXN0IG9mIHN0cmluZ3MuCisgICAgICAg
IGZpZWxkcyA9IFtdCisgICAgICAgICMgNC4xIDcuIEFkZCB0aGUgc3RyaW5nICJVcGdyYWRlOiBX
ZWJTb2NrZXQiIHRvIC9maWVsZHMvLgorICAgICAgICBmaWVsZHMuYXBwZW5kKF9VUEdSQURFX0hF
QURFUl9ISVhJRTc1KQorICAgICAgICAjIDQuMSA4LiBBZGQgdGhlIHN0cmluZyAiQ29ubmVjdGlv
bjogVXBncmFkZSIgdG8gL2ZpZWxkcy8uCisgICAgICAgIGZpZWxkcy5hcHBlbmQoX0NPTk5FQ1RJ
T05fSEVBREVSKQorICAgICAgICAjIDQuMSA5LTEyLiBBZGQgSG9zdDogZmllbGQgdG8gL2ZpZWxk
cy8uCisgICAgICAgIGZpZWxkcy5hcHBlbmQoX2Zvcm1hdF9ob3N0X2hlYWRlcigKKyAgICAgICAg
ICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX2hvc3QsCisgICAgICAgICAgICBzZWxmLl9vcHRpb25z
LnNlcnZlcl9wb3J0LAorICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfdGxzKSkKKyAgICAg
ICAgIyA0LjEgMTMuIEFkZCBPcmlnaW46IGZpZWxkIHRvIC9maWVsZHMvLgorICAgICAgICBmaWVs
ZHMuYXBwZW5kKF9vcmlnaW5faGVhZGVyKHNlbGYuX29wdGlvbnMub3JpZ2luKSkKKyAgICAgICAg
IyBUT0RPOiA0LjEgMTQgQWRkIFNlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IGZpZWxkIHRvIC9maWVs
ZHMvLgorICAgICAgICAjIFRPRE86IDQuMSAxNSBBZGQgY29va2llIGhlYWRlcnMgdG8gL2ZpZWxk
cy8uCisKKyAgICAgICAgIyA0LjEgMTYtMjMuIEFkZCBTZWMtV2ViU29ja2V0LUtleTxuPiB0byAv
ZmllbGRzLy4KKyAgICAgICAgc2VsZi5fbnVtYmVyMSwga2V5MSA9IHNlbGYuX2dlbmVyYXRlX3Nl
Y193ZWJzb2NrZXRfa2V5KCkKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdOdW1iZXIxOiAl
ZCcsIHNlbGYuX251bWJlcjEpCisgICAgICAgIGZpZWxkcy5hcHBlbmQoJ1NlYy1XZWJTb2NrZXQt
S2V5MTogJXNcclxuJyAlIGtleTEpCisgICAgICAgIHNlbGYuX251bWJlcjIsIGtleTIgPSBzZWxm
Ll9nZW5lcmF0ZV9zZWNfd2Vic29ja2V0X2tleSgpCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygnTnVtYmVyMjogJWQnLCBzZWxmLl9udW1iZXIxKQorICAgICAgICBmaWVsZHMuYXBwZW5kKCdT
ZWMtV2ViU29ja2V0LUtleTI6ICVzXHJcbicgJSBrZXkyKQorCisgICAgICAgIGZpZWxkcy5hcHBl
bmQoJ1NlYy1XZWJTb2NrZXQtRHJhZnQ6ICVzXHJcbicgJSBzZWxmLl9kcmFmdF9maWVsZCkKKwor
ICAgICAgICAjIDQuMSAyNC4gRm9yIGVhY2ggc3RyaW5nIGluIC9maWVsZHMvLCBpbiBhIHJhbmRv
bSBvcmRlcjogc2VuZCB0aGUKKyAgICAgICAgIyBzdHJpbmcsIGVuY29kZWQgYXMgVVRGLTgsIGZv
bGxvd2VkIGJ5IGEgVVRGLTggZW5jb2RlZCBVKzAwMEQgQ0FSUklBR0UKKyAgICAgICAgIyBSRVRV
Uk4gVSswMDBBIExJTkUgRkVFRCBjaGFyYWN0ZXIgcGFpciAoQ1JMRikuCisgICAgICAgIHJhbmRv
bS5zaHVmZmxlKGZpZWxkcykKKworICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ09wZW5pbmcg
aGFuZHNoYWtlIHJlcXVlc3QgaGVhZGVyczogJXInLCBmaWVsZHMpCisgICAgICAgIGZvciBmaWVs
ZCBpbiBmaWVsZHM6CisgICAgICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChmaWVsZCkKKwor
ICAgICAgICAjIDQuMSAyNS4gc2VuZCBhIFVURi04LWVuY29kZWQgVSswMDBEIENBUlJJQUdFIFJF
VFVSTiBVKzAwMEEgTElORSBGRUVECisgICAgICAgICMgY2hhcmFjdGVyIHBhaXIgKENSTEYpLgor
ICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbCgnXHJcbicpCisgICAgICAgICMgNC4xIDI2LiBs
ZXQgL2tleTMvIGJlIGEgc3RyaW5nIGNvbnNpc3Rpbmcgb2YgZWlnaHQgcmFuZG9tIGJ5dGVzIChv
cgorICAgICAgICAjIGVxdWl2YWxlbnRseSwgYSByYW5kb20gNjQgYml0IGludGVnZXIgZW5jb2Rl
ZCBpbiBhIGJpZy1lbmRpYW4gb3JkZXIpLgorICAgICAgICBzZWxmLl9rZXkzID0gc2VsZi5fZ2Vu
ZXJhdGVfa2V5MygpCisgICAgICAgICMgNC4xIDI3LiBzZW5kIC9rZXkzLyB0byB0aGUgc2VydmVy
LgorICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChzZWxmLl9rZXkzKQorICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoCisgICAgICAgICAgICAnS2V5MzogJXIgKCVzKScsIHNlbGYuX2tleTMs
IHV0aWwuaGV4aWZ5KHNlbGYuX2tleTMpKQorCisgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdT
ZW50IG9wZW5pbmcgaGFuZHNoYWtlIHJlcXVlc3QnKQorCisgICAgICAgICMgNC4xIDI4LiBSZWFk
IGJ5dGVzIGZyb20gdGhlIHNlcnZlciB1bnRpbCBlaXRoZXIgdGhlIGNvbm5lY3Rpb24KKyAgICAg
ICAgIyBjbG9zZXMsIG9yIGEgMHgwQSBieXRlIGlzIHJlYWQuIGxldCAvZmllbGQvIGJlIHRoZXNl
IGJ5dGVzLCBpbmNsdWRpbmcKKyAgICAgICAgIyB0aGUgMHgwQSBieXRlcy4KKyAgICAgICAgZmll
bGQgPSAnJworICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgY2ggPSByZWNlaXZlX2J5
dGVzKHNlbGYuX3NvY2tldCwgMSkKKyAgICAgICAgICAgIGZpZWxkICs9IGNoCisgICAgICAgICAg
ICBpZiBjaCA9PSAnXG4nOgorICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSBSZXNwb25zZS1MaW5lOiAlcicsIGZpZWxk
KQorCisgICAgICAgICMgaWYgL2ZpZWxkLyBpcyBub3QgYXQgbGVhc3Qgc2V2ZW4gYnl0ZXMgbG9u
Zywgb3IgaWYgdGhlIGxhc3QKKyAgICAgICAgIyB0d28gYnl0ZXMgYXJlbid0IDB4MEQgYW5kIDB4
MEEgcmVzcGVjdGl2ZWx5LCBvciBpZiBpdCBkb2VzIG5vdAorICAgICAgICAjIGNvbnRhaW4gYXQg
bGVhc3QgdHdvIDB4MjAgYnl0ZXMsIHRoZW4gZmFpbCB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24K
KyAgICAgICAgIyBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgICAgIGlmIGxlbihmaWVsZCkg
PCA3IG9yIG5vdCBmaWVsZC5lbmRzd2l0aCgnXHJcbicpOgorICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKCdXcm9uZyBzdGF0dXMgbGluZTogJXInICUgZmllbGQpCisgICAgICAgIG0gPSByZS5t
YXRjaCgnW14gXSogKFteIF0qKSAuKicsIGZpZWxkKQorICAgICAgICBpZiBtIGlzIE5vbmU6Cisg
ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ05vIGNvZGUgZm91bmQgaW4gc3RhdHVzIGxpbmU6
ICVyJyAlIGZpZWxkKQorICAgICAgICAjIDQuMSAyOS4gbGV0IC9jb2RlLyBiZSB0aGUgc3Vic3Ry
aW5nIG9mIC9maWVsZC8gdGhhdCBzdGFydHMgZnJvbSB0aGUKKyAgICAgICAgIyBieXRlIGFmdGVy
IHRoZSBmaXJzdCAweDIwIGJ5dGUsIGFuZCBlbmRzIHdpdGggdGhlIGJ5dGUgYmVmb3JlIHRoZQor
ICAgICAgICAjIHNlY29uZCAweDIwIGJ5dGUuCisgICAgICAgIGNvZGUgPSBtLmdyb3VwKDEpCisg
ICAgICAgICMgNC4xIDMwLiBpZiAvY29kZS8gaXMgbm90IHRocmVlIGJ5dGVzIGxvbmcsIG9yIGlm
IGFueSBvZiB0aGUgYnl0ZXMgaW4KKyAgICAgICAgIyAvY29kZS8gYXJlIG5vdCBpbiB0aGUgcmFu
Z2UgMHgzMCB0byAweDkwLCB0aGVuIGZhaWwgdGhlIFdlYlNvY2tldAorICAgICAgICAjIGNvbm5l
Y3Rpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgorICAgICAgICBpZiBub3QgcmUubWF0Y2goJ1sw
LTldWzAtOV1bMC05XScsIGNvZGUpOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAg
ICAgICAgICAgICAgICdIVFRQIHN0YXR1cyBjb2RlICVyIGlzIG5vdCB0aHJlZSBkaWdpdCBpbiBz
dGF0dXMgbGluZTogJXInICUKKyAgICAgICAgICAgICAgICAoY29kZSwgZmllbGQpKQorICAgICAg
ICAjIDQuMSAzMS4gaWYgL2NvZGUvLCBpbnRlcnByZXRlZCBhcyBVVEYtOCwgaXMgIjEwMSIsIHRo
ZW4gbW92ZSB0byB0aGUKKyAgICAgICAgIyBuZXh0IHN0ZXAuCisgICAgICAgIGlmIGNvZGUgIT0g
JzEwMSc6CisgICAgICAgICAgICByYWlzZSBIdHRwU3RhdHVzRXhjZXB0aW9uKAorICAgICAgICAg
ICAgICAgICdFeHBlY3RlZCBIVFRQIHN0YXR1cyBjb2RlIDEwMSBidXQgZm91bmQgJXIgaW4gc3Rh
dHVzIGxpbmU6ICcKKyAgICAgICAgICAgICAgICAnJXInICUgKGNvZGUsIGZpZWxkKSwgaW50KGNv
ZGUpKQorICAgICAgICAjIDQuMSAzMi0zOS4gcmVhZCBmaWVsZHMgaW50byAvZmllbGRzLworICAg
ICAgICBmaWVsZHMgPSBfcmVhZF9maWVsZHMoc2VsZi5fc29ja2V0KQorCisgICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hha2UgcmVzcG9uc2UgaGVhZGVyczogJXInLCBm
aWVsZHMpCisKKyAgICAgICAgIyA0LjEgNDAuIF9GaWVsZHMgcHJvY2Vzc2luZ18KKyAgICAgICAg
IyByZWFkIGEgYnl0ZSBmcm9tIHNlcnZlcgorICAgICAgICBjaCA9IHJlY2VpdmVfYnl0ZXMoc2Vs
Zi5fc29ja2V0LCAxKQorICAgICAgICBpZiBjaCAhPSAnXG4nOiAgIyAweDBBCisgICAgICAgICAg
ICByYWlzZSBFeGNlcHRpb24oJ0V4cGVjdGVkIExGIGJ1dCBmb3VuZCAlcicgJSBjaCkKKyAgICAg
ICAgIyA0LjEgNDEuIGNoZWNrIC9maWVsZHMvCisgICAgICAgIGlmIGxlbihmaWVsZHNbJ3VwZ3Jh
ZGUnXSkgIT0gMToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAg
ICAnTXVsdGlwbGUgVXBncmFkZSBoZWFkZXJzIGZvdW5kOiAlcycgJSBmaWVsZHNbJ3VwZ3JhZGUn
XSkKKyAgICAgICAgaWYgbGVuKGZpZWxkc1snY29ubmVjdGlvbiddKSAhPSAxOgorICAgICAgICAg
ICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdNdWx0aXBsZSBDb25uZWN0aW9u
IGhlYWRlcnMgZm91bmQ6ICVzJyAlIGZpZWxkc1snY29ubmVjdGlvbiddKQorICAgICAgICBpZiBs
ZW4oZmllbGRzWydzZWMtd2Vic29ja2V0LW9yaWdpbiddKSAhPSAxOgorICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdNdWx0aXBsZSBTZWMtV2ViU29ja2V0LU9y
aWdpbiBoZWFkZXJzIGZvdW5kOiAlcycgJQorICAgICAgICAgICAgICAgIGZpZWxkc1snc2VjLXNl
YnNvY2tldC1vcmlnaW4nXSkKKyAgICAgICAgaWYgbGVuKGZpZWxkc1snc2VjLXdlYnNvY2tldC1s
b2NhdGlvbiddKSAhPSAxOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAg
ICAgICAgICdNdWx0aXBsZSBTZWMtV2ViU29ja2V0LUxvY2F0aW9uIGhlYWRlcnMgZm91bmQ6ICVz
JyAlCisgICAgICAgICAgICAgICAgZmllbGRzWydzZWMtc2Vic29ja2V0LWxvY2F0aW9uJ10pCisg
ICAgICAgICMgVE9ETyh1a2FpKTogcHJvdG9jb2wKKyAgICAgICAgIyBpZiB0aGUgZW50cnkncyBu
YW1lIGlzICJ1cGdyYWRlIgorICAgICAgICAjICBpZiB0aGUgdmFsdWUgaXMgbm90IGV4YWN0bHkg
ZXF1YWwgdG8gdGhlIHN0cmluZyAiV2ViU29ja2V0IiwKKyAgICAgICAgIyAgdGhlbiBmYWlsIHRo
ZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisgICAgICAgIGlm
IGZpZWxkc1sndXBncmFkZSddWzBdICE9ICdXZWJTb2NrZXQnOgorICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIFVwZ3JhZGUgaGVhZGVyIHZh
bHVlOiAlcycgJSBmaWVsZHNbJ3VwZ3JhZGUnXVswXSkKKyAgICAgICAgIyBpZiB0aGUgZW50cnkn
cyBuYW1lIGlzICJjb25uZWN0aW9uIgorICAgICAgICAjICBpZiB0aGUgdmFsdWUsIGNvbnZlcnRl
ZCB0byBBU0NJSSBsb3dlcmNhc2UsIGlzIG5vdCBleGFjdGx5IGVxdWFsCisgICAgICAgICMgIHRv
IHRoZSBzdHJpbmcgInVwZ3JhZGUiLCB0aGVuIGZhaWwgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9u
IGFuZAorICAgICAgICAjICBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICAgICAgaWYgZmllbGRzWydj
b25uZWN0aW9uJ11bMF0ubG93ZXIoKSAhPSAndXBncmFkZSc6CisgICAgICAgICAgICByYWlzZSBF
eGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgQ29ubmVjdGlvbiBoZWFkZXIg
dmFsdWU6ICVzJyAlCisgICAgICAgICAgICAgICAgZmllbGRzWydjb25uZWN0aW9uJ11bMF0pCisg
ICAgICAgICMgVE9ETyh1a2FpKTogY2hlY2sgb3JpZ2luLCBsb2NhdGlvbiwgY29va2llLCAuLgor
CisgICAgICAgICMgNC4xIDQyLiBsZXQgL2NoYWxsZW5nZS8gYmUgdGhlIGNvbmNhdGVuYXRpb24g
b2YgL251bWJlcl8xLywKKyAgICAgICAgIyBleHByZXNzZWQgYXMgYSBiaWcgZW5kaWFuIDMyIGJp
dCBpbnRlZ2VyLCAvbnVtYmVyXzIvLCBleHByZXNzZWQKKyAgICAgICAgIyBhcyBiaWcgZW5kaWFu
IDMyIGJpdCBpbnRlZ2VyLCBhbmQgdGhlIGVpZ2h0IGJ5dGVzIG9mIC9rZXlfMy8gaW4gdGhlCisg
ICAgICAgICMgb3JkZXIgdGhleSB3ZXJlIHNlbnQgb24gdGhlIHdpcmUuCisgICAgICAgIGNoYWxs
ZW5nZSA9IHN0cnVjdC5wYWNrKCchSScsIHNlbGYuX251bWJlcjEpCisgICAgICAgIGNoYWxsZW5n
ZSArPSBzdHJ1Y3QucGFjaygnIUknLCBzZWxmLl9udW1iZXIyKQorICAgICAgICBjaGFsbGVuZ2Ug
Kz0gc2VsZi5fa2V5MworCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKKyAgICAgICAgICAg
ICdDaGFsbGVuZ2U6ICVyICglcyknLCBjaGFsbGVuZ2UsIHV0aWwuaGV4aWZ5KGNoYWxsZW5nZSkp
CisKKyAgICAgICAgIyA0LjEgNDMuIGxldCAvZXhwZWN0ZWQvIGJlIHRoZSBNRDUgZmluZ2VycHJp
bnQgb2YgL2NoYWxsZW5nZS8gYXMgYQorICAgICAgICAjIGJpZy1lbmRpYW4gMTI4IGJpdCBzdHJp
bmcuCisgICAgICAgIGV4cGVjdGVkID0gdXRpbC5tZDVfaGFzaChjaGFsbGVuZ2UpLmRpZ2VzdCgp
CisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKKyAgICAgICAgICAgICdFeHBlY3RlZCBjaGFs
bGVuZ2UgcmVzcG9uc2U6ICVyICglcyknLAorICAgICAgICAgICAgZXhwZWN0ZWQsIHV0aWwuaGV4
aWZ5KGV4cGVjdGVkKSkKKworICAgICAgICAjIDQuMSA0NC4gcmVhZCBzaXh0ZWVuIGJ5dGVzIGZy
b20gdGhlIHNlcnZlci4KKyAgICAgICAgIyBsZXQgL3JlcGx5LyBiZSB0aG9zZSBieXRlcy4KKyAg
ICAgICAgcmVwbHkgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMTYpCisgICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygKKyAgICAgICAgICAgICdBY3R1YWwgY2hhbGxlbmdlIHJlc3BvbnNl
OiAlciAoJXMpJywgcmVwbHksIHV0aWwuaGV4aWZ5KHJlcGx5KSkKKworICAgICAgICAjIDQuMSA0
NS4gaWYgL3JlcGx5LyBkb2VzIG5vdCBleGFjdGx5IGVxdWFsIC9leHBlY3RlZC8sIHRoZW4gZmFp
bAorICAgICAgICAjIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3Rl
cHMuCisgICAgICAgIGlmIGV4cGVjdGVkICE9IHJlcGx5OgorICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKAorICAgICAgICAgICAgICAgICdCYWQgY2hhbGxlbmdlIHJlc3BvbnNlOiAlciAoZXhw
ZWN0ZWQpICE9ICVyIChhY3R1YWwpJyAlCisgICAgICAgICAgICAgICAgKGV4cGVjdGVkLCByZXBs
eSkpCisgICAgICAgICMgNC4xIDQ2LiBUaGUgKldlYlNvY2tldCBjb25uZWN0aW9uIGlzIGVzdGFi
bGlzaGVkKi4KKworICAgIGRlZiBfZ2VuZXJhdGVfc2VjX3dlYnNvY2tldF9rZXkoc2VsZik6Cisg
ICAgICAgICMgNC4xIDE2LiBsZXQgL3NwYWNlc19uLyBiZSBhIHJhbmRvbSBpbnRlZ2VyIGZyb20g
MSB0byAxMiBpbmNsdXNpdmUuCisgICAgICAgIHNwYWNlcyA9IHJhbmRvbS5yYW5kaW50KDEsIDEy
KQorICAgICAgICAjIDQuMSAxNy4gbGV0IC9tYXhfbi8gYmUgdGhlIGxhcmdlc3QgaW50ZWdlciBu
b3QgZ3JlYXRlciB0aGFuCisgICAgICAgICMgIDQsMjk0LDk2NywyOTUgZGl2aWRlZCBieSAvc3Bh
Y2VzX24vLgorICAgICAgICBtYXhudW0gPSA0Mjk0OTY3Mjk1IC8gc3BhY2VzCisgICAgICAgICMg
NC4xIDE4LiBsZXQgL251bWJlcl9uLyBiZSBhIHJhbmRvbSBpbnRlZ2VyIGZyb20gMCB0byAvbWF4
X24vCisgICAgICAgICMgaW5jbHVzaXZlLgorICAgICAgICBudW1iZXIgPSByYW5kb20ucmFuZGlu
dCgwLCBtYXhudW0pCisgICAgICAgICMgNC4xIDE5LiBsZXQgL3Byb2R1Y3Rfbi8gYmUgdGhlIHJl
c3VsdCBvZiBtdWx0aXBseWluZyAvbnVtYmVyX24vIGFuZAorICAgICAgICAjIC9zcGFjZXNfbi8g
dG9nZXRoZXIuCisgICAgICAgIHByb2R1Y3QgPSBudW1iZXIgKiBzcGFjZXMKKyAgICAgICAgIyA0
LjEgMjAuIGxldCAva2V5X24vIGJlIGEgc3RyaW5nIGNvbnNpc3Rpbmcgb2YgL3Byb2R1Y3Rfbi8s
IGV4cHJlc3NlZAorICAgICAgICAjIGluIGJhc2UgdGVuIHVzaW5nIHRoZSBudW1lcmFscyBpbiB0
aGUgcmFuZ2UgVSswMDMwIERJR0lUIFpFUk8gKDApIHRvCisgICAgICAgICMgVSswMDM5IERJR0lU
IE5JTkUgKDkpLgorICAgICAgICBrZXkgPSBzdHIocHJvZHVjdCkKKyAgICAgICAgIyA0LjEgMjEu
IGluc2VydCBiZXR3ZWVuIG9uZSBhbmQgdHdlbHZlIHJhbmRvbSBjaGFyYWN0ZXJzIGZyb20gdGhl
CisgICAgICAgICMgcmFuZ2UgVSswMDIxIHRvIFUrMDAyRiBhbmQgVSswMDNBIHRvIFUrMDA3RSBp
bnRvIC9rZXlfbi8gYXQgcmFuZG9tCisgICAgICAgICMgcG9zaXRpb25zLgorICAgICAgICBhdmFp
bGFibGVfY2hhcnMgPSByYW5nZSgweDIxLCAweDJmICsgMSkgKyByYW5nZSgweDNhLCAweDdlICsg
MSkKKyAgICAgICAgbiA9IHJhbmRvbS5yYW5kaW50KDEsIDEyKQorICAgICAgICBmb3IgXyBpbiB4
cmFuZ2Uobik6CisgICAgICAgICAgICBjaCA9IHJhbmRvbS5jaG9pY2UoYXZhaWxhYmxlX2NoYXJz
KQorICAgICAgICAgICAgcG9zID0gcmFuZG9tLnJhbmRpbnQoMCwgbGVuKGtleSkpCisgICAgICAg
ICAgICBrZXkgPSBrZXlbMDpwb3NdICsgY2hyKGNoKSArIGtleVtwb3M6XQorICAgICAgICAjIDQu
MSAyMi4gaW5zZXJ0IC9zcGFjZXNfbi8gVSswMDIwIFNQQUNFIGNoYXJhY3RlcnMgaW50byAva2V5
X24vIGF0CisgICAgICAgICMgcmFuZG9tIHBvc2l0aW9ucyBvdGhlciB0aGFuIHN0YXJ0IG9yIGVu
ZCBvZiB0aGUgc3RyaW5nLgorICAgICAgICBmb3IgXyBpbiB4cmFuZ2Uoc3BhY2VzKToKKyAgICAg
ICAgICAgIHBvcyA9IHJhbmRvbS5yYW5kaW50KDEsIGxlbihrZXkpIC0gMSkKKyAgICAgICAgICAg
IGtleSA9IGtleVswOnBvc10gKyAnICcgKyBrZXlbcG9zOl0KKyAgICAgICAgcmV0dXJuIG51bWJl
ciwga2V5CisKKyAgICBkZWYgX2dlbmVyYXRlX2tleTMoc2VsZik6CisgICAgICAgICMgNC4xIDI2
LiBsZXQgL2tleTMvIGJlIGEgc3RyaW5nIGNvbnNpc3Rpbmcgb2YgZWlnaHQgcmFuZG9tIGJ5dGVz
IChvcgorICAgICAgICAjIGVxdWl2YWxlbnRseSwgYSByYW5kb20gNjQgYml0IGludGVnZXIgZW5j
b2RlZCBpbiBhIGJpZy1lbmRpYW4gb3JkZXIpLgorICAgICAgICByZXR1cm4gJycuam9pbihbY2hy
KHJhbmRvbS5yYW5kaW50KDAsIDI1NSkpIGZvciBfIGluIHhyYW5nZSg4KV0pCisKKworY2xhc3Mg
V2ViU29ja2V0SGl4aWU3NUhhbmRzaGFrZShvYmplY3QpOgorICAgICIiIldlYlNvY2tldCBoYW5k
c2hha2UgcHJvY2Vzc29yIGZvciBJRVRGIEhpeGllIDc1LiIiIgorCisgICAgX0VYUEVDVEVEX1JF
U1BPTlNFID0gKAorICAgICAgICAnSFRUUC8xLjEgMTAxIFdlYiBTb2NrZXQgUHJvdG9jb2wgSGFu
ZHNoYWtlXHJcbicgKworICAgICAgICBfVVBHUkFERV9IRUFERVJfSElYSUU3NSArCisgICAgICAg
IF9DT05ORUNUSU9OX0hFQURFUikKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zKToK
KyAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCisKKyAg
ICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKKworICAgIGRlZiBfc2tpcF9oZWFkZXJzKHNl
bGYpOgorICAgICAgICB0ZXJtaW5hdG9yID0gJ1xyXG5cclxuJworICAgICAgICBwb3MgPSAwCisg
ICAgICAgIHdoaWxlIHBvcyA8IGxlbih0ZXJtaW5hdG9yKToKKyAgICAgICAgICAgIHJlY2VpdmVk
ID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCisgICAgICAgICAgICBpZiByZWNlaXZl
ZCA9PSB0ZXJtaW5hdG9yW3Bvc106CisgICAgICAgICAgICAgICAgcG9zICs9IDEKKyAgICAgICAg
ICAgIGVsaWYgcmVjZWl2ZWQgPT0gdGVybWluYXRvclswXToKKyAgICAgICAgICAgICAgICBwb3Mg
PSAxCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHBvcyA9IDAKKworICAgIGRl
ZiBoYW5kc2hha2Uoc2VsZiwgc29ja2V0KToKKyAgICAgICAgc2VsZi5fc29ja2V0ID0gc29ja2V0
CisKKyAgICAgICAgcmVxdWVzdF9saW5lID0gX21ldGhvZF9saW5lKHNlbGYuX29wdGlvbnMucmVz
b3VyY2UpCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hha2UgUmVx
dWVzdC1MaW5lOiAlcicsIHJlcXVlc3RfbGluZSkKKyAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRh
bGwocmVxdWVzdF9saW5lKQorCisgICAgICAgIGhlYWRlcnMgPSBfVVBHUkFERV9IRUFERVJfSElY
SUU3NSArIF9DT05ORUNUSU9OX0hFQURFUgorICAgICAgICBoZWFkZXJzICs9IF9mb3JtYXRfaG9z
dF9oZWFkZXIoCisgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9ob3N0LAorICAgICAg
ICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCwKKyAgICAgICAgICAgIHNlbGYuX29wdGlv
bnMudXNlX3RscykKKyAgICAgICAgaGVhZGVycyArPSBfb3JpZ2luX2hlYWRlcihzZWxmLl9vcHRp
b25zLm9yaWdpbikKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFr
ZSByZXF1ZXN0IGhlYWRlcnM6ICVyJywgaGVhZGVycykKKyAgICAgICAgc2VsZi5fc29ja2V0LnNl
bmRhbGwoaGVhZGVycykKKworICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbCgnXHJcbicpCisK
KyAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1NlbnQgb3BlbmluZyBoYW5kc2hha2UgcmVxdWVz
dCcpCisKKyAgICAgICAgZm9yIGV4cGVjdGVkX2NoYXIgaW4gV2ViU29ja2V0SGl4aWU3NUhhbmRz
aGFrZS5fRVhQRUNURURfUkVTUE9OU0U6CisgICAgICAgICAgICByZWNlaXZlZCA9IHJlY2VpdmVf
Ynl0ZXMoc2VsZi5fc29ja2V0LCAxKQorICAgICAgICAgICAgaWYgZXhwZWN0ZWRfY2hhciAhPSBy
ZWNlaXZlZDoKKyAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0hhbmRzaGFrZSBmYWls
dXJlJykKKyAgICAgICAgIyBXZSBjdXQgY29ybmVycyBhbmQgc2tpcCBvdGhlciBoZWFkZXJzLgor
ICAgICAgICBzZWxmLl9za2lwX2hlYWRlcnMoKQorCisKK2NsYXNzIFdlYlNvY2tldFN0cmVhbShv
YmplY3QpOgorICAgICIiIkZyYW1lIHByb2Nlc3NvciBmb3IgdGhlIFdlYlNvY2tldCBwcm90b2Nv
bCAoUkZDIDY0NTUpLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvY2tldCwgaGFuZHNo
YWtlKToKKyAgICAgICAgc2VsZi5faGFuZHNoYWtlID0gaGFuZHNoYWtlCisgICAgICAgIHNlbGYu
X3NvY2tldCA9IHNvY2tldAorCisgICAgICAgICMgRmlsdGVycyBhcHBsaWVkIHRvIGFwcGxpY2F0
aW9uIGRhdGEgcGFydCBvZiBkYXRhIGZyYW1lcy4KKyAgICAgICAgc2VsZi5fb3V0Z29pbmdfZnJh
bWVfZmlsdGVyID0gTm9uZQorICAgICAgICBzZWxmLl9pbmNvbWluZ19mcmFtZV9maWx0ZXIgPSBO
b25lCisKKyAgICAgICAgaWYgc2VsZi5faGFuZHNoYWtlLl9vcHRpb25zLnVzZV9kZWZsYXRlX2Zy
YW1lOgorICAgICAgICAgICAgc2VsZi5fb3V0Z29pbmdfZnJhbWVfZmlsdGVyID0gKAorICAgICAg
ICAgICAgICAgIHV0aWwuX1JGQzE5NzlEZWZsYXRlcihOb25lLCBGYWxzZSkpCisgICAgICAgICAg
ICBzZWxmLl9pbmNvbWluZ19mcmFtZV9maWx0ZXIgPSB1dGlsLl9SRkMxOTc5SW5mbGF0ZXIoKQor
CisgICAgICAgIHNlbGYuX2ZyYWdtZW50ZWQgPSBGYWxzZQorCisgICAgZGVmIF9tYXNrX2h5Ymko
c2VsZiwgcyk6CisgICAgICAgICMgVE9ETyh0eW9zaGlubyk6IG9zLnVyYW5kb20gZG9lcyBvcGVu
L3JlYWQvY2xvc2UgZm9yIGV2ZXJ5IGNhbGwuIElmCisgICAgICAgICMgcGVyZm9ybWFuY2UgbWF0
dGVycywgY2hhbmdlIHRoaXMgdG8gc29tZSBsaWJyYXJ5IGNhbGwgdGhhdCBnZW5lcmF0ZXMKKyAg
ICAgICAgIyBjcnlwdG9ncmFwaGljYWxseSBzZWN1cmUgcHNldWRvIHJhbmRvbSBudW1iZXIgc2Vx
dWVuY2UuCisgICAgICAgIG1hc2tpbmdfbm9uY2UgPSBvcy51cmFuZG9tKDQpCisgICAgICAgIHJl
c3VsdCA9IFttYXNraW5nX25vbmNlXQorICAgICAgICBjb3VudCA9IDAKKyAgICAgICAgZm9yIGMg
aW4gczoKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2hyKG9yZChjKSBeIG9yZChtYXNraW5n
X25vbmNlW2NvdW50XSkpKQorICAgICAgICAgICAgY291bnQgPSAoY291bnQgKyAxKSAlIGxlbiht
YXNraW5nX25vbmNlKQorICAgICAgICByZXR1cm4gJycuam9pbihyZXN1bHQpCisKKyAgICBkZWYg
c2VuZF9mcmFtZV9vZl9hcmJpdHJhcnlfYnl0ZXMoc2VsZiwgaGVhZGVyLCBib2R5KToKKyAgICAg
ICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoaGVhZGVyICsgc2VsZi5fbWFza19oeWJpKGJvZHkpKQor
CisgICAgZGVmIHNlbmRfZGF0YShzZWxmLCBwYXlsb2FkLCBmcmFtZV90eXBlLCBlbmQ9VHJ1ZSwg
bWFzaz1UcnVlLAorICAgICAgICAgICAgICAgICAgcnN2MT0wLCByc3YyPTAsIHJzdjM9MCk6Cisg
ICAgICAgIGlmIHNlbGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRlciBpcyBub3QgTm9uZToKKyAgICAg
ICAgICAgIHBheWxvYWQgPSBzZWxmLl9vdXRnb2luZ19mcmFtZV9maWx0ZXIuZmlsdGVyKHBheWxv
YWQpCisKKyAgICAgICAgaWYgc2VsZi5fZnJhZ21lbnRlZDoKKyAgICAgICAgICAgIG9wY29kZSA9
IE9QQ09ERV9DT05USU5VQVRJT04KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG9wY29kZSA9
IGZyYW1lX3R5cGUKKworICAgICAgICBpZiBlbmQ6CisgICAgICAgICAgICBzZWxmLl9mcmFnbWVu
dGVkID0gRmFsc2UKKyAgICAgICAgICAgIGZpbiA9IDEKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIHNlbGYuX2ZyYWdtZW50ZWQgPSBUcnVlCisgICAgICAgICAgICBmaW4gPSAwCisKKyAgICAg
ICAgaWYgc2VsZi5faGFuZHNoYWtlLl9vcHRpb25zLnVzZV9kZWZsYXRlX2ZyYW1lOgorICAgICAg
ICAgICAgcnN2MSA9IDEKKworICAgICAgICBpZiBtYXNrOgorICAgICAgICAgICAgbWFza19iaXQg
PSAxIDw8IDcKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG1hc2tfYml0ID0gMAorCisgICAg
ICAgIGhlYWRlciA9IGNocihmaW4gPDwgNyB8IHJzdjEgPDwgNiB8IHJzdjIgPDwgNSB8IHJzdjMg
PDwgNCB8IG9wY29kZSkKKyAgICAgICAgcGF5bG9hZF9sZW5ndGggPSBsZW4ocGF5bG9hZCkKKyAg
ICAgICAgaWYgcGF5bG9hZF9sZW5ndGggPD0gMTI1OgorICAgICAgICAgICAgaGVhZGVyICs9IGNo
cihtYXNrX2JpdCB8IHBheWxvYWRfbGVuZ3RoKQorICAgICAgICBlbGlmIHBheWxvYWRfbGVuZ3Ro
IDwgMSA8PCAxNjoKKyAgICAgICAgICAgIGhlYWRlciArPSBjaHIobWFza19iaXQgfCAxMjYpICsg
c3RydWN0LnBhY2soJyFIJywgcGF5bG9hZF9sZW5ndGgpCisgICAgICAgIGVsaWYgcGF5bG9hZF9s
ZW5ndGggPCAxIDw8IDYzOgorICAgICAgICAgICAgaGVhZGVyICs9IGNocihtYXNrX2JpdCB8IDEy
NykgKyBzdHJ1Y3QucGFjaygnIVEnLCBwYXlsb2FkX2xlbmd0aCkKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVG9vIGxvbmcgcGF5bG9hZCAoJWQgYnl0ZSknICUg
cGF5bG9hZF9sZW5ndGgpCisgICAgICAgIGlmIG1hc2s6CisgICAgICAgICAgICBwYXlsb2FkID0g
c2VsZi5fbWFza19oeWJpKHBheWxvYWQpCisgICAgICAgIHNlbGYuX3NvY2tldC5zZW5kYWxsKGhl
YWRlciArIHBheWxvYWQpCisKKyAgICBkZWYgc2VuZF9iaW5hcnkoc2VsZiwgcGF5bG9hZCwgZW5k
PVRydWUsIG1hc2s9VHJ1ZSk6CisgICAgICAgIHNlbGYuc2VuZF9kYXRhKHBheWxvYWQsIE9QQ09E
RV9CSU5BUlksIGVuZCwgbWFzaykKKworICAgIGRlZiBzZW5kX3RleHQoc2VsZiwgcGF5bG9hZCwg
ZW5kPVRydWUsIG1hc2s9VHJ1ZSk6CisgICAgICAgIHNlbGYuc2VuZF9kYXRhKHBheWxvYWQuZW5j
b2RlKCd1dGYtOCcpLCBPUENPREVfVEVYVCwgZW5kLCBtYXNrKQorCisgICAgZGVmIF9hc3NlcnRf
cmVjZWl2ZV9kYXRhKHNlbGYsIHBheWxvYWQsIG9wY29kZSwgZmluLCByc3YxLCByc3YyLCByc3Yz
KToKKyAgICAgICAgKGFjdHVhbF9maW4sIGFjdHVhbF9yc3YxLCBhY3R1YWxfcnN2MiwgYWN0dWFs
X3JzdjMsIGFjdHVhbF9vcGNvZGUsCisgICAgICAgICBwYXlsb2FkX2xlbmd0aCkgPSByZWFkX2Zy
YW1lX2hlYWRlcihzZWxmLl9zb2NrZXQpCisKKyAgICAgICAgaWYgYWN0dWFsX29wY29kZSAhPSBv
cGNvZGU6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ1Vu
ZXhwZWN0ZWQgb3Bjb2RlOiAlZCAoZXhwZWN0ZWQpIHZzICVkIChhY3R1YWwpJyAlCisgICAgICAg
ICAgICAgICAgKG9wY29kZSwgYWN0dWFsX29wY29kZSkpCisKKyAgICAgICAgaWYgYWN0dWFsX2Zp
biAhPSBmaW46CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAgICAg
J1VuZXhwZWN0ZWQgZmluOiAlZCAoZXhwZWN0ZWQpIHZzICVkIChhY3R1YWwpJyAlCisgICAgICAg
ICAgICAgICAgKGZpbiwgYWN0dWFsX2ZpbikpCisKKyAgICAgICAgaWYgcnN2MSBpcyBOb25lOgor
ICAgICAgICAgICAgcnN2MSA9IDAKKyAgICAgICAgICAgIGlmIHNlbGYuX2hhbmRzaGFrZS5fb3B0
aW9ucy51c2VfZGVmbGF0ZV9mcmFtZToKKyAgICAgICAgICAgICAgICByc3YxID0gMQorCisgICAg
ICAgIGlmIHJzdjIgaXMgTm9uZToKKyAgICAgICAgICAgIHJzdjIgPSAwCisKKyAgICAgICAgaWYg
cnN2MyBpcyBOb25lOgorICAgICAgICAgICAgcnN2MyA9IDAKKworICAgICAgICBpZiBhY3R1YWxf
cnN2MSAhPSByc3YxOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAg
ICAgICdVbmV4cGVjdGVkIHJzdjE6ICVyIChleHBlY3RlZCkgdnMgJXIgKGFjdHVhbCknICUKKyAg
ICAgICAgICAgICAgICAocnN2MSwgYWN0dWFsX3JzdjEpKQorCisgICAgICAgIGlmIGFjdHVhbF9y
c3YyICE9IHJzdjI6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAg
ICAgJ1VuZXhwZWN0ZWQgcnN2MjogJXIgKGV4cGVjdGVkKSB2cyAlciAoYWN0dWFsKScgJQorICAg
ICAgICAgICAgICAgIChyc3YyLCBhY3R1YWxfcnN2MikpCisKKyAgICAgICAgaWYgYWN0dWFsX3Jz
djMgIT0gcnN2MzoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAg
ICAnVW5leHBlY3RlZCByc3YzOiAlciAoZXhwZWN0ZWQpIHZzICVyIChhY3R1YWwpJyAlCisgICAg
ICAgICAgICAgICAgKHJzdjMsIGFjdHVhbF9yc3YzKSkKKworICAgICAgICByZWNlaXZlZCA9IHJl
Y2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCBwYXlsb2FkX2xlbmd0aCkKKworICAgICAgICBpZiBz
ZWxmLl9pbmNvbWluZ19mcmFtZV9maWx0ZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICByZWNl
aXZlZCA9IHNlbGYuX2luY29taW5nX2ZyYW1lX2ZpbHRlci5maWx0ZXIocmVjZWl2ZWQpCisKKyAg
ICAgICAgaWYgbGVuKHJlY2VpdmVkKSAhPSBsZW4ocGF5bG9hZCk6CisgICAgICAgICAgICByYWlz
ZSBFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgcGF5bG9hZCBsZW5ndGg6
ICVkIChleHBlY3RlZCkgdnMgJWQgKGFjdHVhbCknICUKKyAgICAgICAgICAgICAgICAobGVuKHBh
eWxvYWQpLCBsZW4ocmVjZWl2ZWQpKSkKKworICAgICAgICBpZiBwYXlsb2FkICE9IHJlY2VpdmVk
OgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICdVbmV4cGVj
dGVkIHBheWxvYWQ6ICVyIChleHBlY3RlZCkgdnMgJXIgKGFjdHVhbCknICUKKyAgICAgICAgICAg
ICAgICAocGF5bG9hZCwgcmVjZWl2ZWQpKQorCisgICAgZGVmIGFzc2VydF9yZWNlaXZlX2JpbmFy
eShzZWxmLCBwYXlsb2FkLCBvcGNvZGU9T1BDT0RFX0JJTkFSWSwgZmluPTEsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByc3YxPU5vbmUsIHJzdjI9Tm9uZSwgcnN2Mz1Ob25lKToKKyAg
ICAgICAgc2VsZi5fYXNzZXJ0X3JlY2VpdmVfZGF0YShwYXlsb2FkLCBvcGNvZGUsIGZpbiwgcnN2
MSwgcnN2MiwgcnN2MykKKworICAgIGRlZiBhc3NlcnRfcmVjZWl2ZV90ZXh0KHNlbGYsIHBheWxv
YWQsIG9wY29kZT1PUENPREVfVEVYVCwgZmluPTEsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcnN2MT1Ob25lLCByc3YyPU5vbmUsIHJzdjM9Tm9uZSk6CisgICAgICAgIHNlbGYuX2Fzc2Vy
dF9yZWNlaXZlX2RhdGEocGF5bG9hZC5lbmNvZGUoJ3V0Zi04JyksIG9wY29kZSwgZmluLCByc3Yx
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzdjIsIHJzdjMpCisKKyAgICBk
ZWYgX2J1aWxkX2Nsb3NlX2ZyYW1lKHNlbGYsIGNvZGUsIHJlYXNvbiwgbWFzayk6CisgICAgICAg
IGZyYW1lID0gY2hyKDEgPDwgNyB8IE9QQ09ERV9DTE9TRSkKKworICAgICAgICBpZiBjb2RlIGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgYm9keSA9IHN0cnVjdC5wYWNrKCchSCcsIGNvZGUpICsg
cmVhc29uLmVuY29kZSgndXRmLTgnKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYm9keSA9
ICcnCisgICAgICAgIGlmIG1hc2s6CisgICAgICAgICAgICBmcmFtZSArPSBjaHIoMSA8PCA3IHwg
bGVuKGJvZHkpKSArIHNlbGYuX21hc2tfaHliaShib2R5KQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgZnJhbWUgKz0gY2hyKGxlbihib2R5KSkgKyBib2R5CisgICAgICAgIHJldHVybiBmcmFt
ZQorCisgICAgZGVmIHNlbmRfY2xvc2Uoc2VsZiwgY29kZSwgcmVhc29uKToKKyAgICAgICAgc2Vs
Zi5fc29ja2V0LnNlbmRhbGwoCisgICAgICAgICAgICBzZWxmLl9idWlsZF9jbG9zZV9mcmFtZShj
b2RlLCByZWFzb24sIFRydWUpKQorCisgICAgZGVmIGFzc2VydF9yZWNlaXZlX2Nsb3NlKHNlbGYs
IGNvZGUsIHJlYXNvbik6CisgICAgICAgIGV4cGVjdGVkX2ZyYW1lID0gc2VsZi5fYnVpbGRfY2xv
c2VfZnJhbWUoY29kZSwgcmVhc29uLCBGYWxzZSkKKyAgICAgICAgYWN0dWFsX2ZyYW1lID0gcmVj
ZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIGxlbihleHBlY3RlZF9mcmFtZSkpCisgICAgICAgIGlm
IGFjdHVhbF9mcmFtZSAhPSBleHBlY3RlZF9mcmFtZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2Vw
dGlvbigKKyAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBjbG9zZSBmcmFtZTogJXIgKGV4cGVj
dGVkKSB2cyAlciAoYWN0dWFsKScgJQorICAgICAgICAgICAgICAgIChleHBlY3RlZF9mcmFtZSwg
YWN0dWFsX2ZyYW1lKSkKKworCitjbGFzcyBXZWJTb2NrZXRTdHJlYW1IaXhpZTc1KG9iamVjdCk6
CisgICAgIiIiRnJhbWUgcHJvY2Vzc29yIGZvciB0aGUgV2ViU29ja2V0IHByb3RvY29sIHZlcnNp
b24gSGl4aWUgNzUgYW5kIEh5QmkgMDAuCisgICAgIiIiCisKKyAgICBfQ0xPU0VfRlJBTUUgPSAn
XHhmZlx4MDAnCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc29ja2V0LCB1bnVzZWRfaGFuZHNo
YWtlKToKKyAgICAgICAgc2VsZi5fc29ja2V0ID0gc29ja2V0CisKKyAgICBkZWYgc2VuZF9mcmFt
ZV9vZl9hcmJpdHJhcnlfYnl0ZXMoc2VsZiwgaGVhZGVyLCBib2R5KToKKyAgICAgICAgc2VsZi5f
c29ja2V0LnNlbmRhbGwoaGVhZGVyICsgYm9keSkKKworICAgIGRlZiBzZW5kX2RhdGEoc2VsZiwg
cGF5bG9hZCwgdW51c2VkX2ZyYW1lX3R5cGVtLCB1bnVzZWRfZW5kLCB1bnVzZWRfbWFzayk6Cisg
ICAgICAgIGZyYW1lID0gJycuam9pbihbJ1x4MDAnLCBwYXlsb2FkLCAnXHhmZiddKQorICAgICAg
ICBzZWxmLl9zb2NrZXQuc2VuZGFsbChmcmFtZSkKKworICAgIGRlZiBzZW5kX2JpbmFyeShzZWxm
LCB1bnVzZWRfcGF5bG9hZCwgdW51c2VkX2VuZCwgdW51c2VkX21hc2spOgorICAgICAgICBwYXNz
CisKKyAgICBkZWYgc2VuZF90ZXh0KHNlbGYsIHBheWxvYWQsIHVudXNlZF9lbmQsIHVudXNlZF9t
YXNrKToKKyAgICAgICAgZW5jb2RlZF9wYXlsb2FkID0gcGF5bG9hZC5lbmNvZGUoJ3V0Zi04JykK
KyAgICAgICAgZnJhbWUgPSAnJy5qb2luKFsnXHgwMCcsIGVuY29kZWRfcGF5bG9hZCwgJ1x4ZmYn
XSkKKyAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoZnJhbWUpCisKKyAgICBkZWYgYXNzZXJ0
X3JlY2VpdmVfYmluYXJ5KHNlbGYsIHBheWxvYWQsIG9wY29kZT1PUENPREVfQklOQVJZLCBmaW49
MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzdjE9MCwgcnN2Mj0wLCByc3YzPTAp
OgorICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0JpbmFyeSBmcmFtZSBpcyBub3Qgc3VwcG9ydGVk
IGluIGhpeGllNzUnKQorCisgICAgZGVmIGFzc2VydF9yZWNlaXZlX3RleHQoc2VsZiwgcGF5bG9h
ZCk6CisgICAgICAgIHJlY2VpdmVkID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCisK
KyAgICAgICAgaWYgcmVjZWl2ZWQgIT0gJ1x4MDAnOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKAorICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIGZyYW1lIHR5cGU6ICVkIChleHBlY3Rl
ZCkgdnMgJWQgKGFjdHVhbCknICUKKyAgICAgICAgICAgICAgICAoMCwgb3JkKHJlY2VpdmVkKSkp
CisKKyAgICAgICAgcmVjZWl2ZWQgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgbGVuKHBh
eWxvYWQpICsgMSkKKyAgICAgICAgaWYgcmVjZWl2ZWRbLTFdICE9ICdceGZmJzoKKyAgICAgICAg
ICAgIHJhaXNlIEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAnVGVybWluYXRpb24gZXhwZWN0
ZWQ6IDB4ZmYgKGV4cGVjdGVkKSB2cyAlciAoYWN0dWFsKScgJQorICAgICAgICAgICAgICAgIHJl
Y2VpdmVkKQorCisgICAgICAgIGlmIHJlY2VpdmVkWzA6LTFdICE9IHBheWxvYWQ6CisgICAgICAg
ICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgcGF5bG9h
ZDogJXIgKGV4cGVjdGVkKSB2cyAlciAoYWN0dWFsKScgJQorICAgICAgICAgICAgICAgIChwYXls
b2FkLCByZWNlaXZlZFswOi0xXSkpCisKKyAgICBkZWYgc2VuZF9jbG9zZShzZWxmLCBjb2RlLCBy
ZWFzb24pOgorICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChzZWxmLl9DTE9TRV9GUkFNRSkK
KworICAgIGRlZiBhc3NlcnRfcmVjZWl2ZV9jbG9zZShzZWxmLCB1bnVzZWRfY29kZSwgdW51c2Vk
X3JlYXNvbik6CisgICAgICAgIGNsb3NpbmcgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwg
bGVuKHNlbGYuX0NMT1NFX0ZSQU1FKSkKKyAgICAgICAgaWYgY2xvc2luZyAhPSBzZWxmLl9DTE9T
RV9GUkFNRToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRGlkblwndCByZWNlaXZlIGNs
b3NpbmcgaGFuZHNoYWtlJykKKworCitjbGFzcyBDbGllbnRPcHRpb25zKG9iamVjdCk6CisgICAg
IiIiSG9sZHMgb3B0aW9uIHZhbHVlcyB0byBjb25maWd1cmUgdGhlIENsaWVudCBvYmplY3QuIiIi
CisKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHNlbGYudmVyc2lvbiA9IDEzCisg
ICAgICAgIHNlbGYuc2VydmVyX2hvc3QgPSAnJworICAgICAgICBzZWxmLm9yaWdpbiA9ICcnCisg
ICAgICAgIHNlbGYucmVzb3VyY2UgPSAnJworICAgICAgICBzZWxmLnNlcnZlcl9wb3J0ID0gLTEK
KyAgICAgICAgc2VsZi5zb2NrZXRfdGltZW91dCA9IDEwMDAKKyAgICAgICAgc2VsZi51c2VfdGxz
ID0gRmFsc2UKKyAgICAgICAgc2VsZi5leHRlbnNpb25zID0gW10KKyAgICAgICAgIyBFbmFibGUg
ZGVmbGF0ZS1hcHBsaWNhdGlvbi1kYXRhLgorICAgICAgICBzZWxmLnVzZV9kZWZsYXRlX2ZyYW1l
ID0gRmFsc2UKKyAgICAgICAgIyBFbmFibGUgbXV4CisgICAgICAgIHNlbGYudXNlX211eCA9IEZh
bHNlCisKKyAgICBkZWYgZW5hYmxlX2RlZmxhdGVfZnJhbWUoc2VsZik6CisgICAgICAgIHNlbGYu
dXNlX2RlZmxhdGVfZnJhbWUgPSBUcnVlCisgICAgICAgIHNlbGYuZXh0ZW5zaW9ucy5hcHBlbmQo
X0RFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQorCisgICAgZGVmIGVuYWJsZV9tdXgoc2VsZik6Cisg
ICAgICAgIHNlbGYudXNlX211eCA9IFRydWUKKyAgICAgICAgc2VsZi5leHRlbnNpb25zLmFwcGVu
ZChfTVVYX0VYVEVOU0lPTikKKworCitkZWYgY29ubmVjdF9zb2NrZXRfd2l0aF9yZXRyeShob3N0
LCBwb3J0LCB0aW1lb3V0LCB1c2VfdGxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmV0cnk9MTAsIHNsZWVwX3NlYz0wLjEpOgorICAgIHJldHJ5X2NvdW50ID0gMAorICAgIHdoaWxl
IHJldHJ5X2NvdW50IDwgcmV0cnk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHMgPSBzb2Nr
ZXQuc29ja2V0KCkKKyAgICAgICAgICAgIHMuc2V0dGltZW91dCh0aW1lb3V0KQorICAgICAgICAg
ICAgcy5jb25uZWN0KChob3N0LCBwb3J0KSkKKyAgICAgICAgICAgIGlmIHVzZV90bHM6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIF9UTFNTb2NrZXQocykKKyAgICAgICAgICAgIHJldHVybiBzCisg
ICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IsIGU6CisgICAgICAgICAgICBpZiBlLmVycm5vICE9
IGVycm5vLkVDT05OUkVGVVNFRDoKKyAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICByZXRyeV9jb3VudCA9IHJldHJ5X2NvdW50ICsgMQorICAg
ICAgICAgICAgICAgIHRpbWUuc2xlZXAoc2xlZXBfc2VjKQorCisgICAgcmV0dXJuIE5vbmUKKwor
CitjbGFzcyBDbGllbnQob2JqZWN0KToKKyAgICAiIiJXZWJTb2NrZXQgY2xpZW50LiIiIgorCisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMsIGhhbmRzaGFrZSwgc3RyZWFtX2NsYXNzKToK
KyAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCisKKyAg
ICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKKyAgICAgICAgc2VsZi5fc29ja2V0ID0gTm9u
ZQorCisgICAgICAgIHNlbGYuX2hhbmRzaGFrZSA9IGhhbmRzaGFrZQorICAgICAgICBzZWxmLl9z
dHJlYW1fY2xhc3MgPSBzdHJlYW1fY2xhc3MKKworICAgIGRlZiBjb25uZWN0KHNlbGYpOgorICAg
ICAgICBzZWxmLl9zb2NrZXQgPSBjb25uZWN0X3NvY2tldF93aXRoX3JldHJ5KAorICAgICAgICAg
ICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX2hvc3QsCisgICAgICAgICAgICAgICAgc2VsZi5f
b3B0aW9ucy5zZXJ2ZXJfcG9ydCwKKyAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNvY2tl
dF90aW1lb3V0LAorICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMudXNlX3RscykKKworICAg
ICAgICBzZWxmLl9oYW5kc2hha2UuaGFuZHNoYWtlKHNlbGYuX3NvY2tldCkKKworICAgICAgICBz
ZWxmLl9zdHJlYW0gPSBzZWxmLl9zdHJlYW1fY2xhc3Moc2VsZi5fc29ja2V0LCBzZWxmLl9oYW5k
c2hha2UpCisKKyAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0Nvbm5lY3Rpb24gZXN0YWJsaXNo
ZWQnKQorCisgICAgZGVmIHNlbmRfZnJhbWVfb2ZfYXJiaXRyYXJ5X2J5dGVzKHNlbGYsIGhlYWRl
ciwgYm9keSk6CisgICAgICAgIHNlbGYuX3N0cmVhbS5zZW5kX2ZyYW1lX29mX2FyYml0cmFyeV9i
eXRlcyhoZWFkZXIsIGJvZHkpCisKKyAgICBkZWYgc2VuZF9tZXNzYWdlKHNlbGYsIG1lc3NhZ2Us
IGVuZD1UcnVlLCBiaW5hcnk9RmFsc2UsIHJhdz1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAg
IG1hc2s9VHJ1ZSk6CisgICAgICAgIGlmIGJpbmFyeToKKyAgICAgICAgICAgIHNlbGYuX3N0cmVh
bS5zZW5kX2JpbmFyeShtZXNzYWdlLCBlbmQsIG1hc2spCisgICAgICAgIGVsaWYgcmF3OgorICAg
ICAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfZGF0YShtZXNzYWdlLCBPUENPREVfVEVYVCwgZW5k
LCBtYXNrKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfdGV4
dChtZXNzYWdlLCBlbmQsIG1hc2spCisKKyAgICBkZWYgYXNzZXJ0X3JlY2VpdmUoc2VsZiwgcGF5
bG9hZCwgYmluYXJ5PUZhbHNlKToKKyAgICAgICAgaWYgYmluYXJ5OgorICAgICAgICAgICAgc2Vs
Zi5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX2JpbmFyeShwYXlsb2FkKQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgc2VsZi5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX3RleHQocGF5bG9hZCkKKwor
ICAgIGRlZiBzZW5kX2Nsb3NlKHNlbGYsIGNvZGU9U1RBVFVTX05PUk1BTF9DTE9TVVJFLCByZWFz
b249JycpOgorICAgICAgICBzZWxmLl9zdHJlYW0uc2VuZF9jbG9zZShjb2RlLCByZWFzb24pCisK
KyAgICBkZWYgYXNzZXJ0X3JlY2VpdmVfY2xvc2Uoc2VsZiwgY29kZT1TVEFUVVNfTk9STUFMX0NM
T1NVUkUsIHJlYXNvbj0nJyk6CisgICAgICAgIHNlbGYuX3N0cmVhbS5hc3NlcnRfcmVjZWl2ZV9j
bG9zZShjb2RlLCByZWFzb24pCisKKyAgICBkZWYgY2xvc2Vfc29ja2V0KHNlbGYpOgorICAgICAg
ICBzZWxmLl9zb2NrZXQuY2xvc2UoKQorCisgICAgZGVmIGFzc2VydF9jb25uZWN0aW9uX2Nsb3Nl
ZChzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmVhZF9kYXRhID0gcmVjZWl2ZV9i
eXRlcyhzZWxmLl9zb2NrZXQsIDEpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAg
ICAgICAgICBpZiBzdHIoZSkuZmluZCgKKyAgICAgICAgICAgICAgICAnQ29ubmVjdGlvbiBjbG9z
ZWQgYmVmb3JlIHJlY2VpdmluZyByZXF1ZXN0ZWQgbGVuZ3RoICcpID09IDA6CisgICAgICAgICAg
ICAgICAgcmV0dXJuCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZXJyb3JfbnVt
YmVyLCBtZXNzYWdlID0gZQorICAgICAgICAgICAgICAgIGZvciBlcnJvcl9uYW1lIGluIFsnRUNP
Tk5SRVNFVCcsICdXU0FFQ09OTlJFU0VUJ106CisgICAgICAgICAgICAgICAgICAgIGlmIChlcnJv
cl9uYW1lIGluIGRpcihlcnJubykgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9u
dW1iZXIgPT0gZ2V0YXR0cihlcnJubywgZXJyb3JfbmFtZSkpOgorICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgcmFpc2Ug
ZQorICAgICAgICAgICAgcmFpc2UgZQorCisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ29ubmVj
dGlvbiBpcyBub3QgY2xvc2VkIChSZWFkOiAlciknICUgcmVhZF9kYXRhKQorCisKK2RlZiBjcmVh
dGVfY2xpZW50KG9wdGlvbnMpOgorICAgIHJldHVybiBDbGllbnQoCisgICAgICAgIG9wdGlvbnMs
IFdlYlNvY2tldEhhbmRzaGFrZShvcHRpb25zKSwgV2ViU29ja2V0U3RyZWFtKQorCisKK2RlZiBj
cmVhdGVfY2xpZW50X2h5YmkwMChvcHRpb25zKToKKyAgICByZXR1cm4gQ2xpZW50KAorICAgICAg
ICBvcHRpb25zLAorICAgICAgICBXZWJTb2NrZXRIeWJpMDBIYW5kc2hha2Uob3B0aW9ucywgJzAn
KSwKKyAgICAgICAgV2ViU29ja2V0U3RyZWFtSGl4aWU3NSkKKworCitkZWYgY3JlYXRlX2NsaWVu
dF9oaXhpZTc1KG9wdGlvbnMpOgorICAgIHJldHVybiBDbGllbnQoCisgICAgICAgIG9wdGlvbnMs
IFdlYlNvY2tldEhpeGllNzVIYW5kc2hha2Uob3B0aW9ucyksIFdlYlNvY2tldFN0cmVhbUhpeGll
NzUpCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvZW5kdG9l
bmRfd2l0aF9leHRlcm5hbF9zZXJ2ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvZW5kdG9lbmRfd2l0aF9leHRl
cm5hbF9zZXJ2ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDdmODZmZGI0MTYzZDRlNzM4OTUyYjNjY2I3N2Yx
OTIxNmJjNTkxNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9lbmR0b2VuZF93aXRoX2V4
dGVybmFsX3NlcnZlci5weQpAQCAtMCwwICsxLDY3IEBACisjIS91c3IvYmluL2VudiBweXRob24K
KyMKKyMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRp
b24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisKKyIiIlRlc3QgZm9yIGVuZC10by1lbmQgd2l0aCBleHRl
cm5hbCBzZXJ2ZXIuCisKK1RoaXMgdGVzdCBpcyBub3QgcnVuIGJ5IHJ1bl9hbGwucHkgYmVjYXVz
ZSBpdCByZXF1aXJlcyBzb21lIHByZXBhcmF0aW9ucy4KK0lmIHlvdSB3b3VsZCBsaWtlIHRvIHJ1
biB0aGlzIHRlc3QgY29ycmVjdGx5LCBsYXVuY2ggQXBhY2hlIHdpdGggbW9kX3B5dGhvbgorYW5k
IG1vZF9weXdlYnNvY2tldCBtYW51YWxseS4gSW4gYWRkaXRpb24sIHlvdSBzaG91bGQgcGFzcyBh
bGxvd19kcmFmdDc1IG9wdGlvbgorYW5kIGV4YW1wbGUgcGF0aCBhcyBoYW5kbGVyX3NjYW4gb3B0
aW9uIGFuZCBBcGFjaGUncyBEb2N1bWVudFJvb3QuCisiIiIKKworCitpbXBvcnQgb3B0cGFyc2UK
K2ltcG9ydCBzeXMKK2ltcG9ydCB0ZXN0LnRlc3RfZW5kdG9lbmQKK2ltcG9ydCB1bml0dGVzdAor
CisKK19ERUZBVUxUX1dFQl9TT0NLRVRfUE9SVCA9IDgwCisKKworY2xhc3MgRW5kVG9FbmRUZXN0
V2l0aEV4dGVybmFsU2VydmVyKHRlc3QudGVzdF9lbmR0b2VuZC5FbmRUb0VuZFRlc3QpOgorICAg
IHBhc3MKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBwYXJzZXIgPSBvcHRwYXJz
ZS5PcHRpb25QYXJzZXIoKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcCcsICctLXBvcnQnLCBk
ZXN0PSdwb3J0JywgdHlwZT0naW50JywKKyAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PV9E
RUZBVUxUX1dFQl9TT0NLRVRfUE9SVCwKKyAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdleHRl
cm5hbCB0ZXN0IHNlcnZlciBwb3J0LicpCisgICAgKG9wdGlvbnMsIGFyZ3MpID0gcGFyc2VyLnBh
cnNlX2FyZ3MoKQorCisgICAgdGVzdC50ZXN0X2VuZHRvZW5kLl91c2VfZXh0ZXJuYWxfc2VydmVy
ID0gVHJ1ZQorICAgIHRlc3QudGVzdF9lbmR0b2VuZC5fZXh0ZXJuYWxfc2VydmVyX3BvcnQgPSBv
cHRpb25zLnBvcnQKKworICAgIHVuaXR0ZXN0Lm1haW4oYXJndj1bc3lzLmFyZ3ZbMF1dKQorCisK
KyMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L21vY2sucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3Rlc3QvbW9jay5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YmZmY2FjNDhkYzQzYTUyYjljY2YxYmNkMDEyOTc1
NDI0MDQ4ZDY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L21vY2sucHkKQEAgLTAsMCAr
MSwyMjEgQEAKKyMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0
cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKKyIiIk1vY2tzIGZvciB0ZXN0aW5nLgorIiIi
CisKKworaW1wb3J0IFF1ZXVlCitpbXBvcnQgdGhyZWFkaW5nCisKK2Zyb20gbW9kX3B5d2Vic29j
a2V0IGltcG9ydCBjb21tb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBpbXBvcnQgU3Ry
ZWFtSGl4aWU3NQorCisKK2NsYXNzIF9Nb2NrQ29ubkJhc2Uob2JqZWN0KToKKyAgICAiIiJCYXNl
IGNsYXNzIG9mIG1vY2tzIGZvciBtb2RfcHl0aG9uLmFwYWNoZS5tcF9jb25uLgorCisgICAgVGhp
cyBlbmFibGVzIHRlc3RzIHRvIGNoZWNrIHdoYXQgaXMgd3JpdHRlbiB0byBhIChtb2NrKSBtcF9j
b25uLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLl93
cml0ZV9kYXRhID0gW10KKyAgICAgICAgc2VsZi5yZW1vdGVfYWRkciA9ICdmYWtlX2FkZHJlc3Mn
CisKKyAgICBkZWYgd3JpdGUoc2VsZiwgZGF0YSk6CisgICAgICAgICIiIk92ZXJyaWRlIG1vZF9w
eXRob24uYXBhY2hlLm1wX2Nvbm4ud3JpdGUuIiIiCisKKyAgICAgICAgc2VsZi5fd3JpdGVfZGF0
YS5hcHBlbmQoZGF0YSkKKworICAgIGRlZiB3cml0dGVuX2RhdGEoc2VsZik6CisgICAgICAgICIi
IkdldCBieXRlcyB3cml0dGVuIHRvIHRoaXMgbW9jay4iIiIKKworICAgICAgICByZXR1cm4gJycu
am9pbihzZWxmLl93cml0ZV9kYXRhKQorCisKK2NsYXNzIE1vY2tDb25uKF9Nb2NrQ29ubkJhc2Up
OgorICAgICIiIk1vY2sgZm9yIG1vZF9weXRob24uYXBhY2hlLm1wX2Nvbm4uCisKKyAgICBUaGlz
IGVuYWJsZXMgdGVzdHMgdG8gc3BlY2lmeSB3aGF0IHNob3VsZCBiZSByZWFkIGZyb20gYSAobW9j
aykgbXBfY29ubiBhcworICAgIHdlbGwgYXMgdG8gY2hlY2sgd2hhdCBpcyB3cml0dGVuIHRvIGl0
LgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlYWRfZGF0YSk6CisgICAgICAg
ICIiIkNvbnN0cnVjdHMgYW4gaW5zdGFuY2UuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAg
IHJlYWRfZGF0YTogYnl0ZXMgdGhhdCBzaG91bGQgYmUgcmV0dXJuZWQgd2hlbiByZWFkKiBtZXRo
b2RzIGFyZQorICAgICAgICAgICAgY2FsbGVkLgorICAgICAgICAiIiIKKworICAgICAgICBfTW9j
a0Nvbm5CYXNlLl9faW5pdF9fKHNlbGYpCisgICAgICAgIHNlbGYuX3JlYWRfZGF0YSA9IHJlYWRf
ZGF0YQorICAgICAgICBzZWxmLl9yZWFkX3BvcyA9IDAKKworICAgIGRlZiByZWFkbGluZShzZWxm
KToKKyAgICAgICAgIiIiT3ZlcnJpZGUgbW9kX3B5dGhvbi5hcGFjaGUubXBfY29ubi5yZWFkbGlu
ZS4iIiIKKworICAgICAgICBpZiBzZWxmLl9yZWFkX3BvcyA+PSBsZW4oc2VsZi5fcmVhZF9kYXRh
KToKKyAgICAgICAgICAgIHJldHVybiAnJworICAgICAgICBlbmRfaW5kZXggPSBzZWxmLl9yZWFk
X2RhdGEuZmluZCgnXG4nLCBzZWxmLl9yZWFkX3BvcykgKyAxCisgICAgICAgIGlmIG5vdCBlbmRf
aW5kZXg6CisgICAgICAgICAgICBlbmRfaW5kZXggPSBsZW4oc2VsZi5fcmVhZF9kYXRhKQorICAg
ICAgICByZXR1cm4gc2VsZi5fcmVhZF91cF90byhlbmRfaW5kZXgpCisKKyAgICBkZWYgcmVhZChz
ZWxmLCBsZW5ndGgpOgorICAgICAgICAiIiJPdmVycmlkZSBtb2RfcHl0aG9uLmFwYWNoZS5tcF9j
b25uLnJlYWQuIiIiCisKKyAgICAgICAgaWYgc2VsZi5fcmVhZF9wb3MgPj0gbGVuKHNlbGYuX3Jl
YWRfZGF0YSk6CisgICAgICAgICAgICByZXR1cm4gJycKKyAgICAgICAgZW5kX2luZGV4ID0gbWlu
KGxlbihzZWxmLl9yZWFkX2RhdGEpLCBzZWxmLl9yZWFkX3BvcyArIGxlbmd0aCkKKyAgICAgICAg
cmV0dXJuIHNlbGYuX3JlYWRfdXBfdG8oZW5kX2luZGV4KQorCisgICAgZGVmIF9yZWFkX3VwX3Rv
KHNlbGYsIGVuZF9pbmRleCk6CisgICAgICAgIGxpbmUgPSBzZWxmLl9yZWFkX2RhdGFbc2VsZi5f
cmVhZF9wb3M6ZW5kX2luZGV4XQorICAgICAgICBzZWxmLl9yZWFkX3BvcyA9IGVuZF9pbmRleAor
ICAgICAgICByZXR1cm4gbGluZQorCisKK2NsYXNzIE1vY2tCbG9ja2luZ0Nvbm4oX01vY2tDb25u
QmFzZSk6CisgICAgIiIiQmxvY2tpbmcgbW9jayBmb3IgbW9kX3B5dGhvbi5hcGFjaGUubXBfY29u
bi4KKworICAgIFRoaXMgZW5hYmxlcyB0ZXN0cyB0byBzcGVjaWZ5IHdoYXQgc2hvdWxkIGJlIHJl
YWQgZnJvbSBhIChtb2NrKSBtcF9jb25uIGFzCisgICAgd2VsbCBhcyB0byBjaGVjayB3aGF0IGlz
IHdyaXR0ZW4gdG8gaXQuCisgICAgQ2FsbGVycyBvZiByZWFkKiBtZXRob2RzIHdpbGwgYmxvY2sg
aWYgdGhlcmUgaXMgbm8gYnl0ZXMgYXZhaWxhYmxlLgorICAgICIiIgorCisgICAgZGVmIF9faW5p
dF9fKHNlbGYpOgorICAgICAgICBfTW9ja0Nvbm5CYXNlLl9faW5pdF9fKHNlbGYpCisgICAgICAg
IHNlbGYuX3F1ZXVlID0gUXVldWUuUXVldWUoKQorCisgICAgZGVmIHJlYWRsaW5lKHNlbGYpOgor
ICAgICAgICAiIiJPdmVycmlkZSBtb2RfcHl0aG9uLmFwYWNoZS5tcF9jb25uLnJlYWRsaW5lLiIi
IgorICAgICAgICBsaW5lID0gJycKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIGMg
PSBzZWxmLl9xdWV1ZS5nZXQoKQorICAgICAgICAgICAgbGluZSArPSBjCisgICAgICAgICAgICBp
ZiBjID09ICdcbic6CisgICAgICAgICAgICAgICAgcmV0dXJuIGxpbmUKKworICAgIGRlZiByZWFk
KHNlbGYsIGxlbmd0aCk6CisgICAgICAgICIiIk92ZXJyaWRlIG1vZF9weXRob24uYXBhY2hlLm1w
X2Nvbm4ucmVhZC4iIiIKKworICAgICAgICBkYXRhID0gJycKKyAgICAgICAgZm9yIHVudXNlZCBp
biByYW5nZShsZW5ndGgpOgorICAgICAgICAgICAgZGF0YSArPSBzZWxmLl9xdWV1ZS5nZXQoKQor
ICAgICAgICByZXR1cm4gZGF0YQorCisgICAgZGVmIHB1dF9ieXRlcyhzZWxmLCBieXRlcyk6Cisg
ICAgICAgICIiIlB1dCBieXRlcyB0byBiZSByZWFkIGZyb20gdGhpcyBtb2NrLgorCisgICAgICAg
IEFyZ3M6CisgICAgICAgICAgICBieXRlczogYnl0ZXMgdG8gYmUgcmVhZC4KKyAgICAgICAgIiIi
CisKKyAgICAgICAgZm9yIGJ5dGUgaW4gYnl0ZXM6CisgICAgICAgICAgICBzZWxmLl9xdWV1ZS5w
dXQoYnl0ZSkKKworCitjbGFzcyBNb2NrVGFibGUoZGljdCk6CisgICAgIiIiTW9jayB0YWJsZS4K
KworICAgIFRoaXMgbWltaWNzIG1vZF9weXRob24gbXBfdGFibGUuIE5vdGUgdGhhdCBvbmx5IHRo
ZSBtZXRob2RzIHVzZWQgYnkKKyAgICB0ZXN0cyBhcmUgb3ZlcnJpZGRlbi4KKyAgICAiIiIKKwor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb3B5X2Zyb209e30pOgorICAgICAgICBpZiBpc2luc3Rh
bmNlKGNvcHlfZnJvbSwgZGljdCk6CisgICAgICAgICAgICBjb3B5X2Zyb20gPSBjb3B5X2Zyb20u
aXRlbXMoKQorICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBjb3B5X2Zyb206CisgICAgICAgICAg
ICBzZWxmLl9fc2V0aXRlbV9fKGtleSwgdmFsdWUpCisKKyAgICBkZWYgX19nZXRpdGVtX18oc2Vs
Ziwga2V5KToKKyAgICAgICAgcmV0dXJuIHN1cGVyKE1vY2tUYWJsZSwgc2VsZikuX19nZXRpdGVt
X18oa2V5Lmxvd2VyKCkpCisKKyAgICBkZWYgX19zZXRpdGVtX18oc2VsZiwga2V5LCB2YWx1ZSk6
CisgICAgICAgIHN1cGVyKE1vY2tUYWJsZSwgc2VsZikuX19zZXRpdGVtX18oa2V5Lmxvd2VyKCks
IHZhbHVlKQorCisgICAgZGVmIGdldChzZWxmLCBrZXksIGRlZl92YWx1ZT1Ob25lKToKKyAgICAg
ICAgcmV0dXJuIHN1cGVyKE1vY2tUYWJsZSwgc2VsZikuZ2V0KGtleS5sb3dlcigpLCBkZWZfdmFs
dWUpCisKKworY2xhc3MgTW9ja1JlcXVlc3Qob2JqZWN0KToKKyAgICAiIiJNb2NrIHJlcXVlc3Qu
CisKKyAgICBUaGlzIG1pbWljcyBtb2RfcHl0aG9uIHJlcXVlc3QuCisgICAgIiIiCisKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgdXJpPU5vbmUsIGhlYWRlcnNfaW49e30sIGNvbm5lY3Rpb249Tm9u
ZSwgbWV0aG9kPSdHRVQnLAorICAgICAgICAgICAgICAgICBwcm90b2NvbD0nSFRUUC8xLjEnLCBp
c19odHRwcz1GYWxzZSk6CisgICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KKworICAg
ICAgICBBcmd1bWVudHM6CisgICAgICAgICAgICB1cmk6IFVSSSBvZiB0aGUgcmVxdWVzdC4KKyAg
ICAgICAgICAgIGhlYWRlcnNfaW46IFJlcXVlc3QgaGVhZGVycy4KKyAgICAgICAgICAgIGNvbm5l
Y3Rpb246IENvbm5lY3Rpb24gdXNlZCBmb3IgdGhlIHJlcXVlc3QuCisgICAgICAgICAgICBtZXRo
b2Q6IHJlcXVlc3QgbWV0aG9kLgorICAgICAgICAgICAgaXNfaHR0cHM6IFdoZXRoZXIgdGhpcyBy
ZXF1ZXN0IGlzIG92ZXIgU1NMLgorCisgICAgICAgIFNlZSB0aGUgZG9jdW1lbnQgb2YgbW9kX3B5
dGhvbiBSZXF1ZXN0IGZvciBkZXRhaWxzLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi51cmkg
PSB1cmkKKyAgICAgICAgc2VsZi51bnBhcnNlZF91cmkgPSB1cmkKKyAgICAgICAgc2VsZi5jb25u
ZWN0aW9uID0gY29ubmVjdGlvbgorICAgICAgICBzZWxmLm1ldGhvZCA9IG1ldGhvZAorICAgICAg
ICBzZWxmLnByb3RvY29sID0gcHJvdG9jb2wKKyAgICAgICAgc2VsZi5oZWFkZXJzX2luID0gTW9j
a1RhYmxlKGhlYWRlcnNfaW4pCisgICAgICAgICMgc2VsZi5pc19odHRwc18gbmVlZHMgdG8gYmUg
YWNjZXNzaWJsZSBmcm9tIHRlc3RzLiAgVG8gYXZvaWQgbmFtZQorICAgICAgICAjIGNvbmZsaWN0
IHdpdGggc2VsZi5pc19odHRwcygpLCBpdCBpcyBuYW1lZCBhcyBzdWNoLgorICAgICAgICBzZWxm
LmlzX2h0dHBzXyA9IGlzX2h0dHBzCisgICAgICAgIHNlbGYud3Nfc3RyZWFtID0gU3RyZWFtSGl4
aWU3NShzZWxmLCBUcnVlKQorICAgICAgICBzZWxmLndzX2Nsb3NlX2NvZGUgPSBOb25lCisgICAg
ICAgIHNlbGYud3NfY2xvc2VfcmVhc29uID0gTm9uZQorICAgICAgICBzZWxmLndzX3ZlcnNpb24g
PSBjb21tb24uVkVSU0lPTl9IWUJJMDAKKyAgICAgICAgc2VsZi53c19kZWZsYXRlID0gRmFsc2UK
KworICAgIGRlZiBpc19odHRwcyhzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIHdoZXRoZXIgdGhp
cyByZXF1ZXN0IGlzIG92ZXIgU1NMLiIiIgorICAgICAgICByZXR1cm4gc2VsZi5pc19odHRwc18K
KworCitjbGFzcyBNb2NrRGlzcGF0Y2hlcihvYmplY3QpOgorICAgICIiIk1vY2sgZm9yIGRpc3Bh
dGNoLkRpc3BhdGNoZXIuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHNl
bGYuZG9fZXh0cmFfaGFuZHNoYWtlX2NhbGxlZCA9IEZhbHNlCisKKyAgICBkZWYgZG9fZXh0cmFf
aGFuZHNoYWtlKHNlbGYsIGNvbm5fY29udGV4dCk6CisgICAgICAgIHNlbGYuZG9fZXh0cmFfaGFu
ZHNoYWtlX2NhbGxlZCA9IFRydWUKKworICAgIGRlZiB0cmFuc2Zlcl9kYXRhKHNlbGYsIGNvbm5f
Y29udGV4dCk6CisgICAgICAgIHBhc3MKKworCisjIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvdGVzdC9tdXhfY2xpZW50X2Zvcl90ZXN0aW5nLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L211eF9j
bGllbnRfZm9yX3Rlc3RpbmcucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ1NDM1YThjYzBlMjc1NWM1ODNjMzZk
MGNlYWYzZjNmZjYwMjFiMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9tdXhfY2xpZW50
X2Zvcl90ZXN0aW5nLnB5CkBAIC0wLDAgKzEsNjkwIEBACisjIS91c3IvYmluL2VudiBweXRob24K
KyMKKyMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRp
b24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisKKyIiIldlYlNvY2tldCBjbGllbnQgdXRpbGl0eSBmb3Ig
dGVzdGluZyBtdXggZXh0ZW5zaW9uLgorCitUaGlzIGNvZGUgc2hvdWxkIGJlIGluZGVwZW5kZW50
IGZyb20gbW9kX3B5d2Vic29ja2V0LiBTZWUgdGhlIGNvbW1lbnQgb2YKK2NsaWVudF9mb3JfdGVz
dGluZy5weS4KKworTk9URTogVGhpcyBjb2RlIGlzIGZhciBmcm9tIHJvYnVzdCBsaWtlIGNsaWVu
dF9mb3JfdGVzdGluZy5weS4KKyIiIgorCisKKworaW1wb3J0IFF1ZXVlCitpbXBvcnQgYmFzZTY0
CitpbXBvcnQgY29sbGVjdGlvbnMKK2ltcG9ydCBlbWFpbAoraW1wb3J0IGVtYWlsLnBhcnNlcgor
aW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBtYXRoCitpbXBvcnQgb3MKK2ltcG9ydCByYW5kb20KK2lt
cG9ydCBzb2NrZXQKK2ltcG9ydCBzdHJ1Y3QKK2ltcG9ydCB0aHJlYWRpbmcKKworZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKKworZnJvbSB0ZXN0IGltcG9ydCBjbGllbnRfZm9yX3Rl
c3RpbmcKKworCitfQ09OVFJPTF9DSEFOTkVMX0lEID0gMAorX0RFRkFVTFRfQ0hBTk5FTF9JRCA9
IDEKKworX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVTVCA9IDAKK19NVVhfT1BDT0RFX0FE
RF9DSEFOTkVMX1JFU1BPTlNFID0gMQorX01VWF9PUENPREVfRkxPV19DT05UUk9MID0gMgorX01V
WF9PUENPREVfRFJPUF9DSEFOTkVMID0gMworX01VWF9PUENPREVfTkVXX0NIQU5ORUxfU0xPVCA9
IDQKKworCitjbGFzcyBfQ29udHJvbEJsb2NrOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcGNv
ZGUpOgorICAgICAgICBzZWxmLm9wY29kZSA9IG9wY29kZQorCisKK2RlZiBfcGFyc2VfaGFuZHNo
YWtlX3Jlc3BvbnNlKHJlc3BvbnNlKToKKyAgICBzdGF0dXNfbGluZSwgaGVhZGVyX2xpbmVzID0g
cmVzcG9uc2Uuc3BsaXQoJ1xyXG4nLCAxKQorCisgICAgd29yZHMgPSBzdGF0dXNfbGluZS5zcGxp
dCgnICcpCisgICAgaWYgbGVuKHdvcmRzKSA8IDM6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
J0JhZCBTdGF0dXMtTGluZSBzeW50YXggJXInICUgc3RhdHVzX2xpbmUpCisgICAgW3ZlcnNpb24s
IHJlc3BvbnNlX2NvZGVdID0gd29yZHNbOjJdCisgICAgaWYgdmVyc2lvbiAhPSAnSFRUUC8xLjEn
OgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdCYWQgcmVzcG9uc2UgdmVyc2lvbiAlcicgJSB2
ZXJzaW9uKQorCisgICAgaWYgcmVzcG9uc2VfY29kZSAhPSAnMTAxJzoKKyAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcignQmFkIHJlc3BvbnNlIGNvZGUgJXIgJyAlIHJlc3BvbnNlX2NvZGUpCisgICAg
aGVhZGVycyA9IGVtYWlsLnBhcnNlci5QYXJzZXIoKS5wYXJzZXN0cihoZWFkZXJfbGluZXMpCisg
ICAgcmV0dXJuIGhlYWRlcnMKKworCitkZWYgX3BhcnNlX2NoYW5uZWxfaWQoZGF0YSwgb2Zmc2V0
PTApOgorICAgIGxlbmd0aCA9IGxlbihkYXRhKQorICAgIHJlbWFpbmluZyA9IGxlbmd0aCAtIG9m
ZnNldAorCisgICAgaWYgcmVtYWluaW5nIDw9IDA6CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbign
Tm8gY2hhbm5lbCBpZCBmb3VuZCcpCisKKyAgICBjaGFubmVsX2lkID0gb3JkKGRhdGFbb2Zmc2V0
XSkKKyAgICBjaGFubmVsX2lkX2xlbmd0aCA9IDEKKyAgICBpZiBjaGFubmVsX2lkICYgMHhlMCA9
PSAweGUwOgorICAgICAgICBpZiByZW1haW5pbmcgPCA0OgorICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKCdJbnZhbGlkIGNoYW5uZWwgaWQgZm9ybWF0JykKKyAgICAgICAgY2hhbm5lbF9pZCA9
IHN0cnVjdC51bnBhY2soJyFMJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGF0YVtvZmZzZXQ6b2Zmc2V0KzRdKVswXSAmIDB4MWZmZmZmZmYKKyAgICAgICAgY2hhbm5lbF9p
ZF9sZW5ndGggPSA0CisgICAgZWxpZiBjaGFubmVsX2lkICYgMHhjMCA9PSAweGMwOgorICAgICAg
ICBpZiByZW1haW5pbmcgPCAzOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbnZhbGlk
IGNoYW5uZWwgaWQgZm9ybWF0JykKKyAgICAgICAgY2hhbm5lbF9pZCA9ICgoKGNoYW5uZWxfaWQg
JiAweDFmKSA8PCAxNikgKworICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdC51bnBhY2soJyFI
JywgZGF0YVtvZmZzZXQrMTpvZmZzZXQrM10pWzBdKQorICAgICAgICBjaGFubmVsX2lkX2xlbmd0
aCA9IDMKKyAgICBlbGlmIGNoYW5uZWxfaWQgJiAweDgwID09IDB4ODA6CisgICAgICAgIGlmIHJl
bWFpbmluZyA8IDI6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgY2hhbm5l
bCBpZCBmb3JtYXQnKQorICAgICAgICBjaGFubmVsX2lkID0gc3RydWN0LnVucGFjaygnIUgnLCBk
YXRhW29mZnNldDpvZmZzZXQrMl0pWzBdICYgMHgzZmZmCisgICAgICAgIGNoYW5uZWxfaWRfbGVu
Z3RoID0gMgorCisgICAgcmV0dXJuIGNoYW5uZWxfaWQsIGNoYW5uZWxfaWRfbGVuZ3RoCisKKwor
ZGVmIF9wYXJzZV9udW1iZXIoZGF0YSwgb2Zmc2V0PTApOgorICAgIGZpcnN0X2J5dGUgPSBvcmQo
ZGF0YVtvZmZzZXRdKQorICAgIGlmIChmaXJzdF9ieXRlICYgMHg4MCkgIT0gMDoKKyAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKCdUaGUgTVNCIG9mIG51bWJlciBmaWVsZCBtdXN0IGJlIHVuc2V0JykK
KyAgICBmaXJzdF9ieXRlID0gZmlyc3RfYnl0ZSAmIDB4N2YKKyAgICBpZiBmaXJzdF9ieXRlID09
IDEyNzoKKyAgICAgICAgaWYgb2Zmc2V0ICsgOSA+IGxlbihkYXRhKToKKyAgICAgICAgICAgIHJh
aXNlIEV4Y2VwdGlvbignSW52YWxpZCBudW1iZXInKQorICAgICAgICByZXR1cm4gc3RydWN0LnVu
cGFjaygnIVEnLCBkYXRhW29mZnNldCsxOm9mZnNldCs5XSlbMF0sIDkKKyAgICBpZiBmaXJzdF9i
eXRlID09IDEyNjoKKyAgICAgICAgaWYgb2Zmc2V0ICsgMyA+IGxlbihkYXRhKToKKyAgICAgICAg
ICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBudW1iZXInKQorICAgICAgICByZXR1cm4gc3Ry
dWN0LnVucGFjaygnIUgnLCBkYXRhW29mZnNldCsxOm9mZnNldCszXSlbMF0sIDMKKyAgICByZXR1
cm4gZmlyc3RfYnl0ZSwgMQorCisKK2RlZiBfcGFyc2Vfc2l6ZV9hbmRfY29udGVudHMoZGF0YSwg
b2Zmc2V0PTApOgorICAgIHNpemUsIGFkdmFuY2UgPSBfcGFyc2VfbnVtYmVyKGRhdGEsIG9mZnNl
dCkKKyAgICBzdGFydF9wb3NpdGlvbiA9IG9mZnNldCArIGFkdmFuY2UKKyAgICBlbmRfcG9zaXRp
b24gPSBzdGFydF9wb3NpdGlvbiArIHNpemUKKyAgICBpZiBsZW4oZGF0YSkgPCBlbmRfcG9zaXRp
b246CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBzaXplIG9mIGNvbnRyb2wgYmxv
Y2sgKCVkIDwgJWQpJyAlICgKKyAgICAgICAgICAgICAgICBsZW4oZGF0YSksIGVuZF9wb3NpdGlv
bikpCisgICAgcmV0dXJuIGRhdGFbc3RhcnRfcG9zaXRpb246ZW5kX3Bvc2l0aW9uXSwgc2l6ZSAr
IGFkdmFuY2UKKworCitkZWYgX3BhcnNlX2NvbnRyb2xfYmxvY2tzKGRhdGEpOgorICAgIGJsb2Nr
cyA9IFtdCisgICAgbGVuZ3RoID0gbGVuKGRhdGEpCisgICAgcG9zID0gMAorCisgICAgd2hpbGUg
cG9zIDwgbGVuZ3RoOgorICAgICAgICBmaXJzdF9ieXRlID0gb3JkKGRhdGFbcG9zXSkKKyAgICAg
ICAgcG9zICs9IDEKKyAgICAgICAgb3Bjb2RlID0gKGZpcnN0X2J5dGUgPj4gNSkgJiAweDcKKyAg
ICAgICAgYmxvY2sgPSBfQ29udHJvbEJsb2NrKG9wY29kZSkKKworICAgICAgICAjIFRPRE8oYmFz
aGkpOiBTdXBwb3J0IG1vcmUgb3Bjb2RlCisgICAgICAgIGlmIG9wY29kZSA9PSBfTVVYX09QQ09E
RV9BRERfQ0hBTk5FTF9SRVNQT05TRToKKyAgICAgICAgICAgIGJsb2NrLmVuY29kZSA9IGZpcnN0
X2J5dGUgJiAzCisgICAgICAgICAgICBibG9jay5yZWplY3RlZCA9IChmaXJzdF9ieXRlID4+IDQp
ICYgMQorCisgICAgICAgICAgICBjaGFubmVsX2lkLCBhZHZhbmNlID0gX3BhcnNlX2NoYW5uZWxf
aWQoZGF0YSwgcG9zKQorICAgICAgICAgICAgYmxvY2suY2hhbm5lbF9pZCA9IGNoYW5uZWxfaWQK
KyAgICAgICAgICAgIHBvcyArPSBhZHZhbmNlCisKKyAgICAgICAgICAgIGVuY29kZWRfaGFuZHNo
YWtlLCBhZHZhbmNlID0gX3BhcnNlX3NpemVfYW5kX2NvbnRlbnRzKGRhdGEsIHBvcykKKyAgICAg
ICAgICAgIGJsb2NrLmVuY29kZWRfaGFuZHNoYWtlID0gZW5jb2RlZF9oYW5kc2hha2UKKyAgICAg
ICAgICAgIHBvcyArPSBhZHZhbmNlCisgICAgICAgICAgICBibG9ja3MuYXBwZW5kKGJsb2NrKQor
ICAgICAgICBlbGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9EUk9QX0NIQU5ORUw6CisgICAgICAg
ICAgICBibG9jay5tdXhfZXJyb3IgPSAoZmlyc3RfYnl0ZSA+PiA0KSAmIDEKKworICAgICAgICAg
ICAgY2hhbm5lbF9pZCwgYWR2YW5jZSA9IF9wYXJzZV9jaGFubmVsX2lkKGRhdGEsIHBvcykKKyAg
ICAgICAgICAgIGJsb2NrLmNoYW5uZWxfaWQgPSBjaGFubmVsX2lkCisgICAgICAgICAgICBwb3Mg
Kz0gYWR2YW5jZQorCisgICAgICAgICAgICByZWFzb24sIGFkdmFuY2UgPSBfcGFyc2Vfc2l6ZV9h
bmRfY29udGVudHMoZGF0YSwgcG9zKQorICAgICAgICAgICAgaWYgbGVuKHJlYXNvbikgPT0gMDoK
KyAgICAgICAgICAgICAgICBibG9jay5kcm9wX2NvZGUgPSBOb25lCisgICAgICAgICAgICAgICAg
YmxvY2suZHJvcF9tZXNzYWdlID0gJycKKyAgICAgICAgICAgIGVsaWYgbGVuKHJlYXNvbikgPj0g
MjoKKyAgICAgICAgICAgICAgICBibG9jay5kcm9wX2NvZGUgPSBzdHJ1Y3QudW5wYWNrKCchSCcs
IHJlYXNvbls6Ml0pWzBdCisgICAgICAgICAgICAgICAgYmxvY2suZHJvcF9tZXNzYWdlID0gcmVh
c29uWzI6XQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRp
b24oJ0ludmFsaWQgRHJvcENoYW5uZWwnKQorICAgICAgICAgICAgcG9zICs9IGFkdmFuY2UKKyAg
ICAgICAgICAgIGJsb2Nrcy5hcHBlbmQoYmxvY2spCisgICAgICAgIGVsaWYgb3Bjb2RlID09IF9N
VVhfT1BDT0RFX0ZMT1dfQ09OVFJPTDoKKyAgICAgICAgICAgIGNoYW5uZWxfaWQsIGFkdmFuY2Ug
PSBfcGFyc2VfY2hhbm5lbF9pZChkYXRhLCBwb3MpCisgICAgICAgICAgICBibG9jay5jaGFubmVs
X2lkID0gY2hhbm5lbF9pZAorICAgICAgICAgICAgcG9zICs9IGFkdmFuY2UKKyAgICAgICAgICAg
IHNlbmRfcXVvdGEsIGFkdmFuY2UgPSBfcGFyc2VfbnVtYmVyKGRhdGEsIHBvcykKKyAgICAgICAg
ICAgIGJsb2NrLnNlbmRfcXVvdGEgPSBzZW5kX3F1b3RhCisgICAgICAgICAgICBwb3MgKz0gYWR2
YW5jZQorICAgICAgICAgICAgYmxvY2tzLmFwcGVuZChibG9jaykKKyAgICAgICAgZWxpZiBvcGNv
ZGUgPT0gX01VWF9PUENPREVfTkVXX0NIQU5ORUxfU0xPVDoKKyAgICAgICAgICAgIGZhbGxiYWNr
ID0gZmlyc3RfYnl0ZSAmIDEKKyAgICAgICAgICAgIHNsb3RzLCBhZHZhbmNlID0gX3BhcnNlX251
bWJlcihkYXRhLCBwb3MpCisgICAgICAgICAgICBwb3MgKz0gYWR2YW5jZQorICAgICAgICAgICAg
c2VuZF9xdW90YSwgYWR2YW5jZSA9IF9wYXJzZV9udW1iZXIoZGF0YSwgcG9zKQorICAgICAgICAg
ICAgcG9zICs9IGFkdmFuY2UKKyAgICAgICAgICAgIGlmIGZhbGxiYWNrID09IDEgYW5kIChzbG90
cyAhPSAwIG9yIHNlbmRfcXVvdGEgIT0gMCk6CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCdzbG90cyBhbmQgc2VuZF9xdW90YSBtdXN0IGJlIHplcm8gaWYgRiBiaXQgJworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnaXMgc2V0JykKKyAgICAgICAgICAgIGJsb2NrLmZh
bGxiYWNrID0gZmFsbGJhY2sKKyAgICAgICAgICAgIGJsb2NrLnNsb3RzID0gc2xvdHMKKyAgICAg
ICAgICAgIGJsb2NrLnNlbmRfcXVvdGEgPSBzZW5kX3F1b3RhCisgICAgICAgICAgICBibG9ja3Mu
YXBwZW5kKGJsb2NrKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u
KAorICAgICAgICAgICAgICAgICdVbnN1cHBvcnRlZCBtdXggb3Bjb2RlICVkIHJlY2VpdmVkJyAl
IG9wY29kZSkKKworICAgIHJldHVybiBibG9ja3MKKworCitkZWYgX2VuY29kZV9jaGFubmVsX2lk
KGNoYW5uZWxfaWQpOgorICAgIGlmIGNoYW5uZWxfaWQgPCAwOgorICAgICAgICByYWlzZSBWYWx1
ZUVycm9yKCdDaGFubmVsIGlkICVkIG11c3Qgbm90IGJlIG5lZ2F0aXZlJyAlIGNoYW5uZWxfaWQp
CisKKyAgICBpZiBjaGFubmVsX2lkIDwgMiAqKiA3OgorICAgICAgICByZXR1cm4gY2hyKGNoYW5u
ZWxfaWQpCisgICAgaWYgY2hhbm5lbF9pZCA8IDIgKiogMTQ6CisgICAgICAgIHJldHVybiBzdHJ1
Y3QucGFjaygnIUgnLCAweDgwMDAgKyBjaGFubmVsX2lkKQorICAgIGlmIGNoYW5uZWxfaWQgPCAy
ICoqIDIxOgorICAgICAgICBmaXJzdCA9IGNocigweGMwICsgKGNoYW5uZWxfaWQgPj4gMTYpKQor
ICAgICAgICByZXR1cm4gZmlyc3QgKyBzdHJ1Y3QucGFjaygnIUgnLCBjaGFubmVsX2lkICYgMHhm
ZmZmKQorICAgIGlmIGNoYW5uZWxfaWQgPCAyICoqIDI5OgorICAgICAgICByZXR1cm4gc3RydWN0
LnBhY2soJyFMJywgMHhlMDAwMDAwMCArIGNoYW5uZWxfaWQpCisKKyAgICByYWlzZSBWYWx1ZUVy
cm9yKCdDaGFubmVsIGlkICVkIGlzIHRvbyBsYXJnZScgJSBjaGFubmVsX2lkKQorCisKK2RlZiBf
ZW5jb2RlX251bWJlcihudW1iZXIpOgorICAgIGlmIG51bWJlciA8PSAxMjU6CisgICAgICAgIHJl
dHVybiBjaHIobnVtYmVyKQorICAgIGVsaWYgbnVtYmVyIDwgKDEgPDwgMTYpOgorICAgICAgICBy
ZXR1cm4gY2hyKDB4N2UpICsgc3RydWN0LnBhY2soJyFIJywgbnVtYmVyKQorICAgIGVsaWYgbnVt
YmVyIDwgKDEgPDwgNjMpOgorICAgICAgICByZXR1cm4gY2hyKDB4N2YpICsgc3RydWN0LnBhY2so
JyFRJywgbnVtYmVyKQorICAgIGVsc2U6CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxp
ZCBudW1iZXInKQorCisKK2RlZiBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3QoY2hhbm5lbF9p
ZCwgZW5jb2RlZF9oYW5kc2hha2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVu
Y29kaW5nPTApOgorICAgIGxlbmd0aCA9IGxlbihlbmNvZGVkX2hhbmRzaGFrZSkKKyAgICBoYW5k
c2hha2VfbGVuZ3RoID0gX2VuY29kZV9udW1iZXIobGVuZ3RoKQorCisgICAgZmlyc3RfYnl0ZSA9
IChfTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNUIDw8IDUpIHwgZW5jb2RpbmcKKyAgICBy
ZXR1cm4gKGNocihmaXJzdF9ieXRlKSArIF9lbmNvZGVfY2hhbm5lbF9pZChjaGFubmVsX2lkKSAr
CisgICAgICAgICAgICBoYW5kc2hha2VfbGVuZ3RoICsgZW5jb2RlZF9oYW5kc2hha2UpCisKKwor
ZGVmIF9jcmVhdGVfZmxvd19jb250cm9sKGNoYW5uZWxfaWQsIHJlcGxlbmlzaGVkX3F1b3RhKToK
KyAgICBmaXJzdF9ieXRlID0gKF9NVVhfT1BDT0RFX0ZMT1dfQ09OVFJPTCA8PCA1KQorICAgIHJl
dHVybiAoY2hyKGZpcnN0X2J5dGUpICsgX2VuY29kZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQpICsK
KyAgICAgICAgICAgIF9lbmNvZGVfbnVtYmVyKHJlcGxlbmlzaGVkX3F1b3RhKSkKKworCitjbGFz
cyBfTXV4UmVhZGVyVGhyZWFkKHRocmVhZGluZy5UaHJlYWQpOgorICAgICIiIk11eCByZWFkZXIg
dGhyZWFkLgorCisgICAgUmVhZHMgZnJhbWVzIGFuZCBwYXNzZXMgdGhlbSB0byB0aGUgbXV4IGNs
aWVudC4gVGhpcyB0aHJlYWQgYWNjZXNzZXMKKyAgICBwcml2YXRlIGZ1bmN0aW9ucy92YXJpYWJs
ZXMgb2YgdGhlIG11eCBjbGllbnQuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
bXV4KToKKyAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhzZWxmKQorICAgICAgICBz
ZWxmLnNldERhZW1vbihUcnVlKQorICAgICAgICBzZWxmLl9tdXggPSBtdXgKKyAgICAgICAgc2Vs
Zi5fc3RvcF9yZXF1ZXN0ZWQgPSBGYWxzZQorCisgICAgZGVmIF9yZWNlaXZlX21lc3NhZ2Uoc2Vs
Zik6CisgICAgICAgIGZpcnN0X29wY29kZSA9IE5vbmUKKyAgICAgICAgcGVuZGluZ19wYXlsb2Fk
ID0gW10KKyAgICAgICAgd2hpbGUgbm90IHNlbGYuX3N0b3BfcmVxdWVzdGVkOgorICAgICAgICAg
ICAgZmluLCByc3YxLCByc3YyLCByc3YzLCBvcGNvZGUsIHBheWxvYWRfbGVuZ3RoID0gKAorICAg
ICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5yZWFkX2ZyYW1lX2hlYWRlcihzZWxmLl9t
dXguX3NvY2tldCkpCisKKyAgICAgICAgICAgIGlmIG5vdCBmaXJzdF9vcGNvZGU6CisgICAgICAg
ICAgICAgICAgaWYgb3Bjb2RlID09IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVDoKKyAg
ICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdSZWNlaXZlZCBhIHRleHQgbWVzc2Fn
ZSBvbiBwaHlzaWNhbCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29u
bmVjdGlvbicpCisgICAgICAgICAgICAgICAgaWYgb3Bjb2RlID09IGNsaWVudF9mb3JfdGVzdGlu
Zy5PUENPREVfQ09OVElOVUFUSU9OOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRp
b24oJ1JlY2VpdmVkIGFuIGludGVybWVkaWF0ZSBmcmFtZSBidXQgJworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2ZyYWdtZW50YXRpb24gd2FzIG5vdCBzdGFydGVkJykKKyAg
ICAgICAgICAgICAgICBpZiAob3Bjb2RlID09IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfQklO
QVJZIG9yCisgICAgICAgICAgICAgICAgICAgIG9wY29kZSA9PSBjbGllbnRfZm9yX3Rlc3Rpbmcu
T1BDT0RFX1BPTkcgb3IKKyAgICAgICAgICAgICAgICAgICAgb3Bjb2RlID09IGNsaWVudF9mb3Jf
dGVzdGluZy5PUENPREVfUE9ORyBvcgorICAgICAgICAgICAgICAgICAgICBvcGNvZGUgPT0gY2xp
ZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9DTE9TRSk6CisgICAgICAgICAgICAgICAgICAgIGZpcnN0
X29wY29kZSA9IG9wY29kZQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg
ICAgIHJhaXNlIEV4Y2VwdGlvbignUmVjZWl2ZWQgYW4gdW5kZWZpbmVkIG9wY29kZSBmcmFtZTog
JWQnICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZSkKKworICAg
ICAgICAgICAgZWxpZiBvcGNvZGUgIT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9DT05USU5V
QVRJT046CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdSZWNlaXZlZCBhIG5ldyBv
cGNvZGUgYmVmb3JlICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Rlcm1pbmF0
aW5nIGZyYWdtZW50YXRpb24nKQorCisgICAgICAgICAgICBwYXlsb2FkID0gY2xpZW50X2Zvcl90
ZXN0aW5nLnJlY2VpdmVfYnl0ZXMoCisgICAgICAgICAgICAgICAgc2VsZi5fbXV4Ll9zb2NrZXQs
IHBheWxvYWRfbGVuZ3RoKQorCisgICAgICAgICAgICBpZiBzZWxmLl9tdXguX2luY29taW5nX2Zy
YW1lX2ZpbHRlciBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBwYXlsb2FkID0gc2VsZi5f
bXV4Ll9pbmNvbWluZ19mcmFtZV9maWx0ZXIuZmlsdGVyKHBheWxvYWQpCisKKyAgICAgICAgICAg
IHBlbmRpbmdfcGF5bG9hZC5hcHBlbmQocGF5bG9hZCkKKworICAgICAgICAgICAgaWYgZmluOgor
ICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgaWYgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQ6
CisgICAgICAgICAgICByZXR1cm4gTm9uZSwgTm9uZQorCisgICAgICAgIG1lc3NhZ2UgPSAnJy5q
b2luKHBlbmRpbmdfcGF5bG9hZCkKKyAgICAgICAgcmV0dXJuIGZpcnN0X29wY29kZSwgbWVzc2Fn
ZQorCisgICAgZGVmIHJlcXVlc3Rfc3RvcChzZWxmKToKKyAgICAgICAgc2VsZi5fc3RvcF9yZXF1
ZXN0ZWQgPSBUcnVlCisKKyAgICBkZWYgcnVuKHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAg
ICAgICB3aGlsZSBub3Qgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQ6CisgICAgICAgICAgICAgICAgIyBv
cGNvZGUgaXMgT1BDT0RFX0JJTkFSWSBvciBjb250cm9sIG9wY29kZXMgd2hlbiBhIG1lc3NhZ2UK
KyAgICAgICAgICAgICAgICAjIGlzIHN1Y2Nlc2Z1bGx5IHJlY2VpdmVkLgorICAgICAgICAgICAg
ICAgIG9wY29kZSwgbWVzc2FnZSA9IHNlbGYuX3JlY2VpdmVfbWVzc2FnZSgpCisgICAgICAgICAg
ICAgICAgaWYgbm90IG9wY29kZToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAg
ICAgICAgICAgaWYgb3Bjb2RlID09IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfQklOQVJZOgor
ICAgICAgICAgICAgICAgICAgICBjaGFubmVsX2lkLCBhZHZhbmNlID0gX3BhcnNlX2NoYW5uZWxf
aWQobWVzc2FnZSkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fbXV4Ll9kaXNwYXRjaF9mcmFt
ZShjaGFubmVsX2lkLCBtZXNzYWdlW2FkdmFuY2U6XSkKKyAgICAgICAgICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9tdXguX3Byb2Nlc3NfY29udHJvbF9tZXNzYWdlKG9w
Y29kZSwgbWVzc2FnZSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNlbGYuX211eC5f
bm90aWZ5X3JlYWRlcl9kb25lKCkKKworCitjbGFzcyBfSW5uZXJGcmFtZShvYmplY3QpOgorICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBmaW4sIHJzdjEsIHJzdjIsIHJzdjMsIG9wY29kZSwgcGF5bG9h
ZCk6CisgICAgICAgIHNlbGYuZmluID0gZmluCisgICAgICAgIHNlbGYucnN2MSA9IHJzdjEKKyAg
ICAgICAgc2VsZi5yc3YyID0gcnN2MgorICAgICAgICBzZWxmLnJzdjMgPSByc3YzCisgICAgICAg
IHNlbGYub3Bjb2RlID0gb3Bjb2RlCisgICAgICAgIHNlbGYucGF5bG9hZCA9IHBheWxvYWQKKwor
CitjbGFzcyBfTG9naWNhbENoYW5uZWxEYXRhKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNl
bGYpOgorICAgICAgICBzZWxmLnF1ZXVlID0gUXVldWUuUXVldWUoKQorICAgICAgICBzZWxmLnNl
bmRfcXVvdGEgPSAwCisgICAgICAgIHNlbGYucmVjZWl2ZV9xdW90YSA9IDAKKworCitjbGFzcyBN
dXhDbGllbnQob2JqZWN0KToKKyAgICAiIiJXZWJTb2NrZXQgbXV4IGNsaWVudC4KKworICAgIE5v
dGUgdGhhdCB0aGlzIGNsYXNzIGlzIE5PVCB0aHJlYWQtc2FmZS4gRG8gbm90IGFjY2VzcyBhbiBp
bnN0YW5jZSBvZiB0aGlzCisgICAgY2xhc3MgZnJvbSBtdWx0aXBsZSB0aHJlYWRzIGF0IGEgc2Ft
ZSB0aW1lLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMpOgorICAg
ICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKKworICAgICAg
ICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucworICAgICAgICBzZWxmLl9vcHRpb25zLmVuYWJsZV9t
dXgoKQorICAgICAgICBzZWxmLl9zdHJlYW0gPSBOb25lCisgICAgICAgIHNlbGYuX3NvY2tldCA9
IE5vbmUKKyAgICAgICAgc2VsZi5faGFuZHNoYWtlID0gY2xpZW50X2Zvcl90ZXN0aW5nLldlYlNv
Y2tldEhhbmRzaGFrZShzZWxmLl9vcHRpb25zKQorICAgICAgICBzZWxmLl9pbmNvbWluZ19mcmFt
ZV9maWx0ZXIgPSBOb25lCisgICAgICAgIHNlbGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRlciA9IE5v
bmUKKworICAgICAgICBzZWxmLl9pc19hY3RpdmUgPSBGYWxzZQorICAgICAgICBzZWxmLl9yZWFk
X3RocmVhZCA9IE5vbmUKKyAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3NfY29uZGl0aW9uID0g
dGhyZWFkaW5nLkNvbmRpdGlvbigpCisgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzID0gW10K
KyAgICAgICAgc2VsZi5fY2hhbm5lbF9zbG90cyA9IGNvbGxlY3Rpb25zLmRlcXVlKCkKKyAgICAg
ICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24gPSB0aHJlYWRpbmcuQ29uZGl0aW9u
KCk7CisgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHMgPSB7fQorICAgICAgICBzZWxmLl90
aW1lb3V0ID0gMgorICAgICAgICBzZWxmLl9waHlzaWNhbF9jb25uZWN0aW9uX2Nsb3NlX2V2ZW50
ID0gTm9uZQorICAgICAgICBzZWxmLl9waHlzaWNhbF9jb25uZWN0aW9uX2Nsb3NlX21lc3NhZ2Ug
PSBOb25lCisKKyAgICBkZWYgX3BhcnNlX2lubmVyX2ZyYW1lKHNlbGYsIGRhdGEpOgorICAgICAg
ICBpZiBsZW4oZGF0YSkgPT0gMDoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxp
ZCBlbmNhcHN1bGF0ZWQgZnJhbWUgcmVjZWl2ZWQnKQorCisgICAgICAgIGZpcnN0X2J5dGUgPSBv
cmQoZGF0YVswXSkKKyAgICAgICAgZmluID0gKGZpcnN0X2J5dGUgPDwgNykgJiAxCisgICAgICAg
IHJzdjEgPSAoZmlyc3RfYnl0ZSA8PCA2KSAmIDEKKyAgICAgICAgcnN2MiA9IChmaXJzdF9ieXRl
IDw8IDUpICYgMQorICAgICAgICByc3YzID0gKGZpcnN0X2J5dGUgPDwgNCkgJiAxCisgICAgICAg
IG9wY29kZSA9IGZpcnN0X2J5dGUgJiAweGYKKworICAgICAgICBpZiBzZWxmLl9vdXRnb2luZ19m
cmFtZV9maWx0ZXI6CisgICAgICAgICAgICBwYXlsb2FkID0gc2VsZi5fb3V0Z29pbmdfZnJhbWVf
ZmlsdGVyLmZpbHRlcigKKyAgICAgICAgICAgICAgICBkYXRhWzE6XSkKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIHBheWxvYWQgPSBkYXRhWzE6XQorCisgICAgICAgIHJldHVybiBfSW5uZXJG
cmFtZShmaW4sIHJzdjEsIHJzdjIsIHJzdjMsIG9wY29kZSwgcGF5bG9hZCkKKworICAgIGRlZiBf
cHJvY2Vzc19tdXhfY29udHJvbF9ibG9ja3Moc2VsZik6CisgICAgICAgIGZvciBibG9jayBpbiBz
ZWxmLl9jb250cm9sX2Jsb2NrczoKKyAgICAgICAgICAgIGlmIGJsb2NrLm9wY29kZSA9PSBfTVVY
X09QQ09ERV9BRERfQ0hBTk5FTF9SRVNQT05TRToKKyAgICAgICAgICAgICAgICAjIEFkZENoYW5u
ZWxSZXNwb25zZSB3aWxsIGJlIGhhbmRsZWQgaW4gYWRkX2NoYW5uZWwoKS4KKyAgICAgICAgICAg
ICAgICBjb250aW51ZQorICAgICAgICAgICAgZWxpZiBibG9jay5vcGNvZGUgPT0gX01VWF9PUENP
REVfRkxPV19DT05UUk9MOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCisgICAgICAgICAg
ICAgICAgICAgIGlmIG5vdCBibG9jay5jaGFubmVsX2lkIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5l
bHM6CisgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgZmxv
dyBjb250cm9sIHJlY2VpdmVkIGZvciAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ2NoYW5uZWwgaWQgJWQnICUgYmxvY2suY2hhbm5lbF9pZCkKKyAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tibG9jay5jaGFubmVsX2lkXS5zZW5kX3F1
b3RhICs9ICgKKyAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLnNlbmRfcXVvdGEpCisgICAg
ICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLm5vdGlmeSgp
CisgICAgICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9n
aWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCisgICAgICAgICAgICBlbGlmIGJsb2Nr
Lm9wY29kZSA9PSBfTVVYX09QQ09ERV9ORVdfQ0hBTk5FTF9TTE9UOgorICAgICAgICAgICAgICAg
IHNlbGYuX2NoYW5uZWxfc2xvdHMuZXh0ZW5kKFtibG9jay5zZW5kX3F1b3RhXSAqIGJsb2NrLnNs
b3RzKQorCisgICAgZGVmIF9kaXNwYXRjaF9mcmFtZShzZWxmLCBjaGFubmVsX2lkLCBwYXlsb2Fk
KToKKyAgICAgICAgaWYgY2hhbm5lbF9pZCA9PSBfQ09OVFJPTF9DSEFOTkVMX0lEOgorICAgICAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlv
bi5hY3F1aXJlKCkKKyAgICAgICAgICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2NrcyArPSBfcGFy
c2VfY29udHJvbF9ibG9ja3MocGF5bG9hZCkKKyAgICAgICAgICAgICAgICBzZWxmLl9wcm9jZXNz
X211eF9jb250cm9sX2Jsb2NrcygpCisgICAgICAgICAgICAgICAgc2VsZi5fY29udHJvbF9ibG9j
a3NfY29uZGl0aW9uLm5vdGlmeSgpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAg
ICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlvbi5yZWxlYXNlKCkKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5u
ZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKKyAgICAgICAgICAgICAgICBpZiBub3QgY2hhbm5lbF9p
ZCBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBF
eGNlcHRpb24oJ1JlY2VpdmVkIGxvZ2ljYWwgZnJhbWUgb24gY2hhbm5lbCBpZCAnCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJWQsIHdoaWNoIGlzIG5vdCBlc3RhYmxpc2hl
ZCcgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbF9pZCkKKwor
ICAgICAgICAgICAgICAgIGlubmVyX2ZyYW1lID0gc2VsZi5fcGFyc2VfaW5uZXJfZnJhbWUocGF5
bG9hZCkKKyAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRd
LnJlY2VpdmVfcXVvdGEgLT0gKAorICAgICAgICAgICAgICAgICAgICAgICAgbGVuKGlubmVyX2Zy
YW1lLnBheWxvYWQpKQorICAgICAgICAgICAgICAgIGlmIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNb
Y2hhbm5lbF9pZF0ucmVjZWl2ZV9xdW90YSA8IDA6CisgICAgICAgICAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbignVGhlIHNlcnZlciB2aW9sYXRlcyBxdW90YSBvbiAnCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnY2hhbm5lbCBpZCAlZCcgJSBjaGFubmVsX2lkKQorICAg
ICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxz
X2NvbmRpdGlvbi5yZWxlYXNlKCkKKyAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNb
Y2hhbm5lbF9pZF0ucXVldWUucHV0KGlubmVyX2ZyYW1lKQorCisgICAgZGVmIF9wcm9jZXNzX2Nv
bnRyb2xfbWVzc2FnZShzZWxmLCBvcGNvZGUsIG1lc3NhZ2UpOgorICAgICAgICAjIFBpbmcvUG9u
ZyBhcmUgbm90IHN1cHBvcnRlZC4KKyAgICAgICAgaWYgb3Bjb2RlID09IGNsaWVudF9mb3JfdGVz
dGluZy5PUENPREVfQ0xPU0U6CisgICAgICAgICAgICBzZWxmLl9waHlzaWNhbF9jb25uZWN0aW9u
X2Nsb3NlX21lc3NhZ2UgPSBtZXNzYWdlCisgICAgICAgICAgICBpZiBzZWxmLl9pc19hY3RpdmU6
CisgICAgICAgICAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfY2xvc2UoCisgICAgICAgICAgICAg
ICAgICAgIGNvZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSwgcmVh
c29uPScnKQorICAgICAgICAgICAgICAgIHNlbGYuX3JlYWRfdGhyZWFkLnJlcXVlc3Rfc3RvcCgp
CisKKyAgICAgICAgICAgIGlmIHNlbGYuX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xvc2VfZXZlbnQ6
CisgICAgICAgICAgICAgICAgc2VsZi5fcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZV9ldmVudC5z
ZXQoKQorCisgICAgZGVmIF9ub3RpZnlfcmVhZGVyX2RvbmUoc2VsZik6CisgICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygnUmVhZCB0aHJlYWQgdGVybWluYXRlZC4nKQorICAgICAgICBzZWxmLmNs
b3NlX3NvY2tldCgpCisKKyAgICBkZWYgX2Fzc2VydF9jaGFubmVsX3Nsb3RfYXZhaWxhYmxlKHNl
bGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2Nrc19jb25k
aXRpb24uYWNxdWlyZSgpCisgICAgICAgICAgICBpZiBsZW4oc2VsZi5fY2hhbm5lbF9zbG90cykg
PT0gMDoKKyAgICAgICAgICAgICAgICAjIFdhaXQgb25jZQorICAgICAgICAgICAgICAgIHNlbGYu
X2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlvbi53YWl0KHRpbWVvdXQ9c2VsZi5fdGltZW91dCkKKyAg
ICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlv
bi5yZWxlYXNlKCkKKworICAgICAgICBpZiBsZW4oc2VsZi5fY2hhbm5lbF9zbG90cykgPT0gMDoK
KyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRmFpbGVkIHRvIHJlY2VpdmUgTmV3Q2hhbm5l
bFNsb3QnKQorCisgICAgZGVmIF9hc3NlcnRfc2VuZF9xdW90YV9hdmFpbGFibGUoc2VsZiwgY2hh
bm5lbF9pZCk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5l
bHNfY29uZGl0aW9uLmFjcXVpcmUoKQorICAgICAgICAgICAgaWYgc2VsZi5fbG9naWNhbF9jaGFu
bmVsc1tjaGFubmVsX2lkXS5zZW5kX3F1b3RhID09IDA6CisgICAgICAgICAgICAgICAgIyBXYWl0
IG9uY2UKKyAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi53
YWl0KHRpbWVvdXQ9c2VsZi5fdGltZW91dCkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAg
IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQorCisgICAgICAgIGlm
IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0uc2VuZF9xdW90YSA9PSAwOgorICAg
ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdGYWlsZWQgdG8gcmVjZWl2ZSBGbG93Q29udHJvbCBm
b3IgY2hhbm5lbCBpZCAlZCcgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWxf
aWQpCisKKyAgICBkZWYgY29ubmVjdChzZWxmKToKKyAgICAgICAgc2VsZi5fc29ja2V0ID0gY2xp
ZW50X2Zvcl90ZXN0aW5nLmNvbm5lY3Rfc29ja2V0X3dpdGhfcmV0cnkoCisgICAgICAgICAgICAg
ICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfaG9zdCwKKyAgICAgICAgICAgICAgICBzZWxmLl9vcHRp
b25zLnNlcnZlcl9wb3J0LAorICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc29ja2V0X3Rp
bWVvdXQsCisgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfdGxzKQorCisgICAgICAg
IHNlbGYuX2hhbmRzaGFrZS5oYW5kc2hha2Uoc2VsZi5fc29ja2V0KQorICAgICAgICBzZWxmLl9z
dHJlYW0gPSBjbGllbnRfZm9yX3Rlc3RpbmcuV2ViU29ja2V0U3RyZWFtKAorICAgICAgICAgICAg
c2VsZi5fc29ja2V0LCBzZWxmLl9oYW5kc2hha2UpCisKKyAgICAgICAgc2VsZi5fbG9naWNhbF9j
aGFubmVsc1tfREVGQVVMVF9DSEFOTkVMX0lEXSA9IF9Mb2dpY2FsQ2hhbm5lbERhdGEoKQorCisg
ICAgICAgIHNlbGYuX3JlYWRfdGhyZWFkID0gX011eFJlYWRlclRocmVhZChzZWxmKQorICAgICAg
ICBzZWxmLl9yZWFkX3RocmVhZC5zdGFydCgpCisKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2NoYW5u
ZWxfc2xvdF9hdmFpbGFibGUoKQorICAgICAgICBzZWxmLl9hc3NlcnRfc2VuZF9xdW90YV9hdmFp
bGFibGUoX0RFRkFVTFRfQ0hBTk5FTF9JRCkKKworICAgICAgICBzZWxmLl9pc19hY3RpdmUgPSBU
cnVlCisgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdDb25uZWN0aW9uIGVzdGFibGlzaGVkJykK
KworICAgIGRlZiBhZGRfY2hhbm5lbChzZWxmLCBjaGFubmVsX2lkLCBvcHRpb25zKToKKyAgICAg
ICAgaWYgbm90IHNlbGYuX2lzX2FjdGl2ZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbign
TXV4IGNsaWVudCBpcyBub3QgYWN0aXZlJykKKworICAgICAgICBpZiBjaGFubmVsX2lkIGluIHNl
bGYuX2xvZ2ljYWxfY2hhbm5lbHM6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0NoYW5u
ZWwgaWQgJWQgYWxyZWFkeSBleGlzdHMnICUgY2hhbm5lbF9pZCkKKworICAgICAgICB0cnk6Cisg
ICAgICAgICAgICBzZW5kX3F1b3RhID0gc2VsZi5fY2hhbm5lbF9zbG90cy5wb3BsZWZ0KCkKKyAg
ICAgICAgZXhjZXB0IEluZGV4RXJyb3IsIGU6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
J05vIGNoYW5uZWwgc2xvdHM6ICVyJyAlIGUpCisKKyAgICAgICAgIyBDcmVhdGUgQWRkQ2hhbm5l
bCByZXF1ZXN0CisgICAgICAgIHJlcXVlc3RfbGluZSA9ICdHRVQgJXMgSFRUUC8xLjFcclxuJyAl
IG9wdGlvbnMucmVzb3VyY2UKKyAgICAgICAgZmllbGRzID0gW10KKyAgICAgICAgaWYgb3B0aW9u
cy5zZXJ2ZXJfcG9ydCA9PSBjbGllbnRfZm9yX3Rlc3RpbmcuREVGQVVMVF9QT1JUOgorICAgICAg
ICAgICAgZmllbGRzLmFwcGVuZCgnSG9zdDogJXNcclxuJyAlIG9wdGlvbnMuc2VydmVyX2hvc3Qu
bG93ZXIoKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoJ0hvc3Q6
ICVzOiVkXHJcbicgJSAob3B0aW9ucy5zZXJ2ZXJfaG9zdC5sb3dlcigpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnNlcnZlcl9wb3J0KSkK
KyAgICAgICAgZmllbGRzLmFwcGVuZCgnT3JpZ2luOiAlc1xyXG4nICUgb3B0aW9ucy5vcmlnaW4u
bG93ZXIoKSkKKyAgICAgICAgZmllbGRzLmFwcGVuZCgnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4n
KQorCisgICAgICAgIGlmIGxlbihvcHRpb25zLmV4dGVuc2lvbnMpID4gMDoKKyAgICAgICAgICAg
IGZpZWxkcy5hcHBlbmQoJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9uczogJXNcclxuJyAlCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICcsICcuam9pbihvcHRpb25zLmV4dGVuc2lvbnMpKQorCisg
ICAgICAgIGhhbmRzaGFrZSA9IHJlcXVlc3RfbGluZSArICcnLmpvaW4oZmllbGRzKSArICdcclxu
JworICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1
ZXN0KAorICAgICAgICAgICAgY2hhbm5lbF9pZCwgaGFuZHNoYWtlKQorICAgICAgICBwYXlsb2Fk
ID0gX2VuY29kZV9jaGFubmVsX2lkKF9DT05UUk9MX0NIQU5ORUxfSUQpICsgYWRkX2NoYW5uZWxf
cmVxdWVzdAorICAgICAgICBzZWxmLl9zdHJlYW0uc2VuZF9iaW5hcnkocGF5bG9hZCkKKworICAg
ICAgICAjIFdhaXQgQWRkQ2hhbm5lbFJlc3BvbnNlCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygnV2FpdGluZyBBZGRDaGFubmVsUmVzcG9uc2UgZm9yIHRoZSByZXF1ZXN0Li4uJykKKyAgICAg
ICAgcmVzcG9uc2UgPSBOb25lCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuX2NvbnRy
b2xfYmxvY2tzX2NvbmRpdGlvbi5hY3F1aXJlKCkKKyAgICAgICAgICAgIHdoaWxlIFRydWU6Cisg
ICAgICAgICAgICAgICAgZm9yIGJsb2NrIGluIHNlbGYuX2NvbnRyb2xfYmxvY2tzOgorICAgICAg
ICAgICAgICAgICAgICBpZiBibG9jay5vcGNvZGUgIT0gX01VWF9PUENPREVfQUREX0NIQU5ORUxf
UkVTUE9OU0U6CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAg
ICAgICAgICBpZiBibG9jay5jaGFubmVsX2lkID09IGNoYW5uZWxfaWQ6CisgICAgICAgICAgICAg
ICAgICAgICAgICByZXNwb25zZSA9IGJsb2NrCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
Ll9jb250cm9sX2Jsb2Nrcy5yZW1vdmUocmVzcG9uc2UpCisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhaworICAgICAgICAgICAgICAgIGlmIHJlc3BvbnNlOgorICAgICAgICAgICAgICAgICAg
ICBicmVhaworICAgICAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlvbi53
YWl0KHNlbGYuX3RpbWVvdXQpCisgICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuX2lzX2FjdGl2
ZToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdBZGRDaGFubmVsUmVxdWVz
dCB0aW1lZCBvdXQnKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5fY29udHJv
bF9ibG9ja3NfY29uZGl0aW9uLnJlbGVhc2UoKQorCisgICAgICAgICMgVmFsaWRhdGUgQWRkQ2hh
bm5lbFJlc3BvbnNlCisgICAgICAgIGlmIHJlc3BvbnNlLnJlamVjdGVkOgorICAgICAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKCdUaGUgc2VydmVyIHJlamVjdGVkIEFkZENoYW5uZWxSZXF1ZXN0JykK
KworICAgICAgICBmaWVsZHMgPSBfcGFyc2VfaGFuZHNoYWtlX3Jlc3BvbnNlKHJlc3BvbnNlLmVu
Y29kZWRfaGFuZHNoYWtlKQorCisgICAgICAgICMgU2hvdWxkIHdlIHJlamVjdCB3aGVuIFVwZ3Jh
ZGUsIENvbm5lY3Rpb24sIG9yIFNlYy1XZWJTb2NrZXQtQWNjZXB0CisgICAgICAgICMgaGVhZGVy
cyBleGlzdD8KKworICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1
aXJlKCkKKyAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXSA9IF9Mb2dp
Y2FsQ2hhbm5lbERhdGEoKQorICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxf
aWRdLnNlbmRfcXVvdGEgPSBzZW5kX3F1b3RhCisgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5l
bHNfY29uZGl0aW9uLnJlbGVhc2UoKQorCisgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnTG9n
aWNhbCBjaGFubmVsICVkIGVzdGFibGlzaGVkJyAlIGNoYW5uZWxfaWQpCisKKyAgICBkZWYgX2No
ZWNrX2xvZ2ljYWxfY2hhbm5lbF9pc19vcGVuZWQoc2VsZiwgY2hhbm5lbF9pZCk6CisgICAgICAg
IGlmIG5vdCBzZWxmLl9pc19hY3RpdmU6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ011
eCBjbGllbnQgaXMgbm90IGFjdGl2ZScpCisKKyAgICAgICAgaWYgbm90IGNoYW5uZWxfaWQgaW4g
c2VsZi5fbG9naWNhbF9jaGFubmVsczoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignTG9n
aWNhbCBjaGFubmVsICVkIGlzIG5vdCBlc3RhYmxpc2hlZC4nKQorCisgICAgZGVmIGRyb3BfY2hh
bm5lbChzZWxmLCBjaGFubmVsX2lkKToKKyAgICAgICAgIyBUT0RPKGJhc2hpKTogSW1wbGVtZW50
CisgICAgICAgIHBhc3MKKworICAgIGRlZiBzZW5kX2Zsb3dfY29udHJvbChzZWxmLCBjaGFubmVs
X2lkLCByZXBsZW5pc2hlZF9xdW90YSk6CisgICAgICAgIHNlbGYuX2NoZWNrX2xvZ2ljYWxfY2hh
bm5lbF9pc19vcGVuZWQoY2hhbm5lbF9pZCkKKyAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0
ZV9mbG93X2NvbnRyb2woY2hhbm5lbF9pZCwgcmVwbGVuaXNoZWRfcXVvdGEpCisgICAgICAgIHBh
eWxvYWQgPSBfZW5jb2RlX2NoYW5uZWxfaWQoX0NPTlRST0xfQ0hBTk5FTF9JRCkgKyBmbG93X2Nv
bnRyb2wKKyAgICAgICAgIyBSZXBsZW5pc2ggcmVjZWl2ZSBxdW90YQorICAgICAgICB0cnk6Cisg
ICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKKyAg
ICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0ucmVjZWl2ZV9xdW90
YSArPSAoCisgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGEpCisgICAgICAgIGZpbmFs
bHk6CisgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNl
KCkKKyAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfYmluYXJ5KHBheWxvYWQpCisKKyAgICBkZWYg
c2VuZF9tZXNzYWdlKHNlbGYsIGNoYW5uZWxfaWQsIG1lc3NhZ2UsIGVuZD1UcnVlLCBiaW5hcnk9
RmFsc2UpOgorICAgICAgICBzZWxmLl9jaGVja19sb2dpY2FsX2NoYW5uZWxfaXNfb3BlbmVkKGNo
YW5uZWxfaWQpCisKKyAgICAgICAgaWYgYmluYXJ5OgorICAgICAgICAgICAgZmlyc3RfYnl0ZSA9
IChlbmQgPDwgNykgfCBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX0JJTkFSWQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgZmlyc3RfYnl0ZSA9IChlbmQgPDwgNykgfCBjbGllbnRfZm9yX3Rl
c3RpbmcuT1BDT0RFX1RFWFQKKyAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLmVuY29kZSgn
dXRmLTgnKQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5l
bHNfY29uZGl0aW9uLmFjcXVpcmUoKQorICAgICAgICAgICAgaWYgc2VsZi5fbG9naWNhbF9jaGFu
bmVsc1tjaGFubmVsX2lkXS5zZW5kX3F1b3RhIDwgbGVuKG1lc3NhZ2UpOgorICAgICAgICAgICAg
ICAgIHJhaXNlIEV4Y2VwdGlvbignU2VuZCBxdW90YSB2aW9sYXRpb246ICVkIDwgJWQnICUgKAor
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lk
XS5zZW5kX3F1b3RhLAorICAgICAgICAgICAgICAgICAgICAgICAgbGVuKG1lc3NhZ2UpKSkKKwor
ICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5zZW5kX3F1b3Rh
IC09IGxlbihtZXNzYWdlKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5fbG9n
aWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCisgICAgICAgIHBheWxvYWQgPSBfZW5j
b2RlX2NoYW5uZWxfaWQoY2hhbm5lbF9pZCkgKyBjaHIoZmlyc3RfYnl0ZSkgKyBtZXNzYWdlCisg
ICAgICAgIHNlbGYuX3N0cmVhbS5zZW5kX2JpbmFyeShwYXlsb2FkKQorCisgICAgZGVmIGFzc2Vy
dF9yZWNlaXZlKHNlbGYsIGNoYW5uZWxfaWQsIHBheWxvYWQsIGJpbmFyeT1GYWxzZSk6CisgICAg
ICAgIHNlbGYuX2NoZWNrX2xvZ2ljYWxfY2hhbm5lbF9pc19vcGVuZWQoY2hhbm5lbF9pZCkKKwor
ICAgICAgICB0cnk6CisgICAgICAgICAgICBpbm5lcl9mcmFtZSA9IHNlbGYuX2xvZ2ljYWxfY2hh
bm5lbHNbY2hhbm5lbF9pZF0ucXVldWUuZ2V0KAorICAgICAgICAgICAgICAgIHRpbWVvdXQ9c2Vs
Zi5fdGltZW91dCkKKyAgICAgICAgZXhjZXB0IFF1ZXVlLkVtcHR5LCBlOgorICAgICAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKCdDYW5ub3QgcmVjZWl2ZSBtZXNzYWdlIGZyb20gY2hhbm5lbCBpZCAl
ZCcgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWxfaWQpCisKKyAgICAgICAg
aWYgYmluYXJ5OgorICAgICAgICAgICAgb3Bjb2RlID0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09E
RV9CSU5BUlkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG9wY29kZSA9IGNsaWVudF9mb3Jf
dGVzdGluZy5PUENPREVfVEVYVAorCisgICAgICAgIGlmIGlubmVyX2ZyYW1lLm9wY29kZSAhPSBv
cGNvZGU6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1VuZXhwZWN0ZWQgb3Bjb2RlIHJl
Y2VpdmVkICglciAhPSAlciknICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXhwZWN0
ZWRfb3Bjb2RlLCBpbm5lcl9mcmFtZS5vcGNvZGUpKQorCisgICAgICAgIGlmIGlubmVyX2ZyYW1l
LnBheWxvYWQgIT0gcGF5bG9hZDoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVW5leHBl
Y3RlZCBwYXlsb2FkIHJlY2VpdmVkJykKKworICAgIGRlZiBzZW5kX2Nsb3NlKHNlbGYsIGNoYW5u
ZWxfaWQsIGNvZGU9Tm9uZSwgcmVhc29uPScnKToKKyAgICAgICAgc2VsZi5fY2hlY2tfbG9naWNh
bF9jaGFubmVsX2lzX29wZW5lZChjaGFubmVsX2lkKQorCisgICAgICAgIGlmIGNvZGUgaXMgbm90
IE5vbmU6CisgICAgICAgICAgICBib2R5ID0gc3RydWN0LnBhY2soJyFIJywgY29kZSkgKyByZWFz
b24uZW5jb2RlKCd1dGYtOCcpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBib2R5ID0gJycK
KworICAgICAgICBmaXJzdF9ieXRlID0gKDEgPDwgNykgfCBjbGllbnRfZm9yX3Rlc3RpbmcuT1BD
T0RFX0NMT1NFCisgICAgICAgIHBheWxvYWQgPSBfZW5jb2RlX2NoYW5uZWxfaWQoY2hhbm5lbF9p
ZCkgKyBjaHIoZmlyc3RfYnl0ZSkgKyBib2R5CisgICAgICAgIHNlbGYuX3N0cmVhbS5zZW5kX2Jp
bmFyeShwYXlsb2FkKQorCisgICAgZGVmIGFzc2VydF9yZWNlaXZlX2Nsb3NlKHNlbGYsIGNoYW5u
ZWxfaWQpOgorICAgICAgICBzZWxmLl9jaGVja19sb2dpY2FsX2NoYW5uZWxfaXNfb3BlbmVkKGNo
YW5uZWxfaWQpCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaW5uZXJfZnJhbWUgPSBzZWxm
Ll9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdLnF1ZXVlLmdldCgKKyAgICAgICAgICAgICAg
ICB0aW1lb3V0PXNlbGYuX3RpbWVvdXQpCisgICAgICAgIGV4Y2VwdCBRdWV1ZS5FbXB0eSwgZToK
KyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ2Fubm90IHJlY2VpdmUgbWVzc2FnZSBmcm9t
IGNoYW5uZWwgaWQgJWQnICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsX2lk
KQorICAgICAgICBpZiBpbm5lcl9mcmFtZS5vcGNvZGUgIT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9Q
Q09ERV9DTE9TRToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRGlkblwndCByZWNlaXZl
IGNsb3NlIGZyYW1lJykKKworICAgIGRlZiBzZW5kX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xvc2Uo
c2VsZiwgY29kZT1Ob25lLCByZWFzb249JycpOgorICAgICAgICBzZWxmLl9waHlzaWNhbF9jb25u
ZWN0aW9uX2Nsb3NlX2V2ZW50ID0gdGhyZWFkaW5nLkV2ZW50KCkKKyAgICAgICAgc2VsZi5fc3Ry
ZWFtLnNlbmRfY2xvc2UoY29kZSwgcmVhc29uKQorCisgICAgIyBUaGlzIG1ldGhvZCBjYW4gYmUg
dXNlZCBvbmx5IGFmdGVyIGNhbGxpbmcKKyAgICAjIHNlbmRfcGh5c2ljYWxfY29ubmVjdGlvbl9j
bG9zZSgpLgorICAgIGRlZiBhc3NlcnRfcGh5c2ljYWxfY29ubmVjdGlvbl9yZWNlaXZlX2Nsb3Nl
KAorICAgICAgICBzZWxmLCBjb2RlPWNsaWVudF9mb3JfdGVzdGluZy5TVEFUVVNfTk9STUFMX0NM
T1NVUkUsIHJlYXNvbj0nJyk6CisgICAgICAgIHNlbGYuX3BoeXNpY2FsX2Nvbm5lY3Rpb25fY2xv
c2VfZXZlbnQud2FpdCh0aW1lb3V0PXNlbGYuX3RpbWVvdXQpCisgICAgICAgIGlmIChub3Qgc2Vs
Zi5fcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZV9ldmVudC5pc1NldCgpIG9yCisgICAgICAgICAg
ICBub3Qgc2VsZi5fcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZV9tZXNzYWdlKToKKyAgICAgICAg
ICAgIHJhaXNlIEV4Y2VwdGlvbignRGlkblwndCByZWNlaXZlIGNsb3NpbmcgaGFuZHNoYWtlJykK
KworICAgIGRlZiBjbG9zZV9zb2NrZXQoc2VsZik6CisgICAgICAgIHNlbGYuX2lzX2FjdGl2ZSA9
IEZhbHNlCisgICAgICAgIHNlbGYuX3NvY2tldC5jbG9zZSgpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rl
c3QvcnVuX2FsbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9ydW5fYWxsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwYTVkODdk
ODM4MjJiMDc4M2JlMTNlMzNkZGEzYWI2MWE1YWZlNDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3Rlc3QvcnVuX2FsbC5weQpAQCAtMCwwICsxLDg5IEBACisjIS91c3IvYmluL2VudiBweXRob24K
KyMKKyMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRp
b24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisKKyIiIlJ1biBhbGwgdGVzdHMgaW4gdGhlIHNhbWUgZGly
ZWN0b3J5LgorCitUaGlzIHN1aXRlIGlzIGV4cGVjdGVkIHRvIGJlIHJ1biB1bmRlciBweXdlYnNv
Y2tldCdzIHNyYyBkaXJlY3RvcnksIGkuZS4gdGhlCitkaXJlY3RvcnkgY29udGFpbmluZyBtb2Rf
cHl3ZWJzb2NrZXQsIHRlc3QsIGV0Yy4KKworVG8gY2hhbmdlIGxvZ2dpbiBsZXZlbCwgcGxlYXNl
IHNwZWNpZnkgLS1sb2ctbGV2ZWwgb3B0aW9uLgorICAgIHB5dGhvbiB0ZXN0L3J1bl90ZXN0LnB5
IC0tbG9nLWxldmVsIGRlYnVnCisKK1RvIHBhc3MgYW55IG9wdGlvbiB0byB1bml0dGVzdCBtb2R1
bGUsIHBsZWFzZSBzcGVjaWZ5IG9wdGlvbnMgYWZ0ZXIgJy0tJy4gRm9yCitleGFtcGxlLCBydW4g
dGhpcyBmb3IgbWFraW5nIHRoZSB0ZXN0IHJ1bm5lciB2ZXJib3NlLgorICAgIHB5dGhvbiB0ZXN0
L3J1bl90ZXN0LnB5IC0tbG9nLWxldmVsIGRlYnVnIC0tIC12CisiIiIKKworCitpbXBvcnQgbG9n
Z2luZworaW1wb3J0IG9wdHBhcnNlCitpbXBvcnQgb3MKK2ltcG9ydCByZQoraW1wb3J0IHN5cwor
aW1wb3J0IHVuaXR0ZXN0CisKKworX1RFU1RfTU9EVUxFX1BBVFRFUk4gPSByZS5jb21waWxlKHIn
Xih0ZXN0Xy4rKVwucHkkJykKKworCitkZWYgX2xpc3RfdGVzdF9tb2R1bGVzKGRpcmVjdG9yeSk6
CisgICAgbW9kdWxlX25hbWVzID0gW10KKyAgICBmb3IgZmlsZW5hbWUgaW4gb3MubGlzdGRpcihk
aXJlY3RvcnkpOgorICAgICAgICBtYXRjaCA9IF9URVNUX01PRFVMRV9QQVRURVJOLnNlYXJjaChm
aWxlbmFtZSkKKyAgICAgICAgaWYgbWF0Y2g6CisgICAgICAgICAgICBtb2R1bGVfbmFtZXMuYXBw
ZW5kKG1hdGNoLmdyb3VwKDEpKQorICAgIHJldHVybiBtb2R1bGVfbmFtZXMKKworCitkZWYgX3N1
aXRlKCk6CisgICAgbG9hZGVyID0gdW5pdHRlc3QuVGVzdExvYWRlcigpCisgICAgcmV0dXJuIGxv
YWRlci5sb2FkVGVzdHNGcm9tTmFtZXMoCisgICAgICAgICAgICBfbGlzdF90ZXN0X21vZHVsZXMo
b3MucGF0aC5qb2luKG9zLnBhdGguc3BsaXQoX19maWxlX18pWzBdLCAnLicpKSkKKworCitpZiBf
X25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHBhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNl
cigpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tbG9nLWxldmVsJywgJy0tbG9nX2xldmVsJywg
dHlwZT0nY2hvaWNlJywKKyAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdsb2dfbGV2ZWwnLCBk
ZWZhdWx0PSd3YXJuaW5nJywKKyAgICAgICAgICAgICAgICAgICAgICBjaG9pY2VzPVsnZGVidWcn
LCAnaW5mbycsICd3YXJuaW5nJywgJ3dhcm4nLCAnZXJyb3InLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdjcml0aWNhbCddKQorICAgIG9wdGlvbnMsIGFyZ3MgPSBwYXJzZXIucGFy
c2VfYXJncygpCisgICAgbG9nZ2luZy5iYXNpY0NvbmZpZygKKyAgICAgICAgICAgIGxldmVsPWxv
Z2dpbmcuZ2V0TGV2ZWxOYW1lKG9wdGlvbnMubG9nX2xldmVsLnVwcGVyKCkpLAorICAgICAgICAg
ICAgZm9ybWF0PSclKGxldmVsbmFtZSlzICUoYXNjdGltZSlzICcKKyAgICAgICAgICAgICAgICAg
ICAnJShmaWxlbmFtZSlzOiUobGluZW5vKWRdICcKKyAgICAgICAgICAgICAgICAgICAnJShtZXNz
YWdlKXMnLAorICAgICAgICAgICAgZGF0ZWZtdD0nJUg6JU06JVMnKQorICAgIHVuaXR0ZXN0Lm1h
aW4oZGVmYXVsdFRlc3Q9J19zdWl0ZScsIGFyZ3Y9W3N5cy5hcmd2WzBdXSArIGFyZ3MpCisKKwor
IyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qvc2V0X3N5c19wYXRoLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC90ZXN0L3NldF9zeXNfcGF0aC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lM2M2ZGI5ZWE0ZDM4M2Ez
N2MyN2EwNjBhMGVmMWM1NjNiYmIxZTE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Nl
dF9zeXNfcGF0aC5weQpAQCAtMCwwICsxLDQ1IEBACisjIENvcHlyaWdodCAyMDA5LCBHb29nbGUg
SW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCisiIiJD
b25maWd1cmF0aW9uIGZvciB0ZXN0aW5nLgorCitUZXN0IGZpbGVzIHNob3VsZCBpbXBvcnQgdGhp
cyBtb2R1bGUgYmVmb3JlIG1vZF9weXdlYnNvY2tldC4KKyIiIgorCisKK2ltcG9ydCBvcworaW1w
b3J0IHN5cworCisKKyMgQWRkIHRoZSBwYXJlbnQgZGlyZWN0b3J5IHRvIHN5cy5wYXRoIHRvIGVu
YWJsZSBpbXBvcnRpbmcgbW9kX3B5d2Vic29ja2V0Lgorc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBh
dGguam9pbihvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVswXSwgJy4uJykpCisKKworIyB2aTpzdHM9
NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9kaXNwYXRjaC5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
dGVzdC90ZXN0X2Rpc3BhdGNoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljYTNkNGYzYWUxZGJmNWY5N2IyN2Q4
NGVjNmU2NDIyZmQwZWNhYTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9kaXNw
YXRjaC5weQpAQCAtMCwwICsxLDI4OCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENv
cHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworCisiIiJUZXN0cyBmb3IgZGlzcGF0Y2ggbW9kdWxlLiIiIgorCisKK2lt
cG9ydCBvcworaW1wb3J0IHVuaXR0ZXN0CisKK2ltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRl
IHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgorCitmcm9tIG1vZF9w
eXdlYnNvY2tldCBpbXBvcnQgZGlzcGF0Y2gKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBo
YW5kc2hha2UKK2Zyb20gdGVzdCBpbXBvcnQgbW9jaworCisKK19URVNUX0hBTkRMRVJTX0RJUiA9
IG9zLnBhdGguam9pbigKKyAgICAgICAgb3MucGF0aC5zcGxpdChfX2ZpbGVfXylbMF0sICd0ZXN0
ZGF0YScsICdoYW5kbGVycycpCisKK19URVNUX0hBTkRMRVJTX1NVQl9ESVIgPSBvcy5wYXRoLmpv
aW4oX1RFU1RfSEFORExFUlNfRElSLCAnc3ViJykKKworCitjbGFzcyBEaXNwYXRjaGVyVGVzdCh1
bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgIiIiQSB1bml0dGVzdCBmb3IgZGlzcGF0Y2ggbW9kdWxl
LiIiIgorCisgICAgZGVmIHRlc3Rfbm9ybWFsaXplX3BhdGgoc2VsZik6CisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwob3MucGF0aC5hYnNwYXRoKCcvYS9iJykucmVwbGFjZSgnXFwnLCAnLycpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoLl9ub3JtYWxpemVfcGF0aCgnL2EvYicp
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9zLnBhdGguYWJzcGF0aCgnL2EvYicpLnJlcGxh
Y2UoJ1xcJywgJy8nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaC5fbm9ybWFs
aXplX3BhdGgoJ1xcYVxcYicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9zLnBhdGguYWJz
cGF0aCgnL2EvYicpLnJlcGxhY2UoJ1xcJywgJy8nKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICBkaXNwYXRjaC5fbm9ybWFsaXplX3BhdGgoJy9hL2MvLi4vYicpKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKG9zLnBhdGguYWJzcGF0aCgnYWJjJykucmVwbGFjZSgnXFwnLCAnLycpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoLl9ub3JtYWxpemVfcGF0aCgnYWJjJykpCisK
KyAgICBkZWYgdGVzdF9jb252ZXJ0ZXIoc2VsZik6CisgICAgICAgIGNvbnZlcnRlciA9IGRpc3Bh
dGNoLl9jcmVhdGVfcGF0aF90b19yZXNvdXJjZV9jb252ZXJ0ZXIoJy9hL2InKQorICAgICAgICAj
IFB5dGhvbiBidWlsdCBieSBNU0MgaW5zZXJ0cyBhIGRyaXZlIG5hbWUgbGlrZSAnQzpcJyB2aWEg
cmVhbHBhdGgoKS4KKyAgICAgICAgIyBDb252ZXJ0ZXIgR2VuZXJhdG9yIGV4cGFuZHMgcHJvdmlk
ZWQgcGF0aCB1c2luZyByZWFscGF0aCgpIGFuZCB1c2VzCisgICAgICAgICMgdGhlIHBhdGggaW5j
bHVkaW5nIGEgZHJpdmUgbmFtZSB0byB2ZXJpZnkgdGhlIHByZWZpeC4KKyAgICAgICAgb3Nfcm9v
dCA9IG9zLnBhdGgucmVhbHBhdGgoJy8nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvaCcs
IGNvbnZlcnRlcihvc19yb290ICsgJ2EvYi9oX3dzaC5weScpKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCcvYy9oJywgY29udmVydGVyKG9zX3Jvb3QgKyAnYS9iL2MvaF93c2gucHknKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBjb252ZXJ0ZXIob3Nfcm9vdCArICdhL2IvaC5w
eScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIGNvbnZlcnRlcignYS9iL2hfd3No
LnB5JykpCisKKyAgICAgICAgY29udmVydGVyID0gZGlzcGF0Y2guX2NyZWF0ZV9wYXRoX3RvX3Jl
c291cmNlX2NvbnZlcnRlcignYS9iJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL2gnLCBj
b252ZXJ0ZXIoZGlzcGF0Y2guX25vcm1hbGl6ZV9wYXRoKAorICAgICAgICAgICAgJ2EvYi9oX3dz
aC5weScpKSkKKworICAgICAgICBjb252ZXJ0ZXIgPSBkaXNwYXRjaC5fY3JlYXRlX3BhdGhfdG9f
cmVzb3VyY2VfY29udmVydGVyKCcvYS9iLy8vJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
L2gnLCBjb252ZXJ0ZXIob3Nfcm9vdCArICdhL2IvaF93c2gucHknKSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnL2gnLCBjb252ZXJ0ZXIoZGlzcGF0Y2guX25vcm1hbGl6ZV9wYXRoKAorICAg
ICAgICAgICAgJy9hL2IvLi4vYi9oX3dzaC5weScpKSkKKworICAgICAgICBjb252ZXJ0ZXIgPSBk
aXNwYXRjaC5fY3JlYXRlX3BhdGhfdG9fcmVzb3VyY2VfY29udmVydGVyKAorICAgICAgICAgICAg
Jy9hLy4uL2EvYi8uLi9iLycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy9oJywgY29udmVy
dGVyKG9zX3Jvb3QgKyAnYS9iL2hfd3NoLnB5JykpCisKKyAgICAgICAgY29udmVydGVyID0gZGlz
cGF0Y2guX2NyZWF0ZV9wYXRoX3RvX3Jlc291cmNlX2NvbnZlcnRlcihyJ1xhXGInKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCcvaCcsIGNvbnZlcnRlcihvc19yb290ICsgcidhXGJcaF93c2gu
cHknKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL2gnLCBjb252ZXJ0ZXIob3Nfcm9vdCAr
IHInYS9iL2hfd3NoLnB5JykpCisKKyAgICBkZWYgdGVzdF9lbnVtZXJhdGVfaGFuZGxlcl9maWxl
X3BhdGhzKHNlbGYpOgorICAgICAgICBwYXRocyA9IGxpc3QoCisgICAgICAgICAgICBkaXNwYXRj
aC5fZW51bWVyYXRlX2hhbmRsZXJfZmlsZV9wYXRocyhfVEVTVF9IQU5ETEVSU19ESVIpKQorICAg
ICAgICBwYXRocy5zb3J0KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg4LCBsZW4ocGF0aHMp
KQorICAgICAgICBleHBlY3RlZF9wYXRocyA9IFsKKyAgICAgICAgICAgICAgICBvcy5wYXRoLmpv
aW4oX1RFU1RfSEFORExFUlNfRElSLCAnYWJvcnRfYnlfdXNlcl93c2gucHknKSwKKyAgICAgICAg
ICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfSEFORExFUlNfRElSLCAnYmxhbmtfd3NoLnB5Jyks
CisgICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKF9URVNUX0hBTkRMRVJTX0RJUiwgJ29yaWdp
bl9jaGVja193c2gucHknKSwKKyAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfSEFO
RExFUlNfRElSLCAnc3ViJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V4Y2VwdGlv
bl9pbl90cmFuc2Zlcl93c2gucHknKSwKKyAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RF
U1RfSEFORExFUlNfRElSLCAnc3ViJywgJ25vbl9jYWxsYWJsZV93c2gucHknKSwKKyAgICAgICAg
ICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfSEFORExFUlNfRElSLCAnc3ViJywgJ3BsYWluX3dz
aC5weScpLAorICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9IQU5ETEVSU19ESVIs
ICdzdWInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd3JvbmdfaGFuZHNoYWtlX3Np
Z193c2gucHknKSwKKyAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfSEFORExFUlNf
RElSLCAnc3ViJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dyb25nX3RyYW5zZmVy
X3NpZ193c2gucHknKSwKKyAgICAgICAgICAgICAgICBdCisgICAgICAgIGZvciBleHBlY3RlZCwg
YWN0dWFsIGluIHppcChleHBlY3RlZF9wYXRocywgcGF0aHMpOgorICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChleHBlY3RlZCwgYWN0dWFsKQorCisgICAgZGVmIHRlc3Rfc291cmNlX2hhbmRs
ZXJfZmlsZShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCisgICAgICAgICAgICBk
aXNwYXRjaC5EaXNwYXRjaEV4Y2VwdGlvbiwgZGlzcGF0Y2guX3NvdXJjZV9oYW5kbGVyX2ZpbGUs
ICcnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcygKKyAgICAgICAgICAgIGRpc3BhdGNoLkRp
c3BhdGNoRXhjZXB0aW9uLCBkaXNwYXRjaC5fc291cmNlX2hhbmRsZXJfZmlsZSwgJ2RlZicpCisg
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKAorICAgICAgICAgICAgZGlzcGF0Y2guRGlzcGF0Y2hF
eGNlcHRpb24sIGRpc3BhdGNoLl9zb3VyY2VfaGFuZGxlcl9maWxlLCAnMS8wJykKKyAgICAgICAg
c2VsZi5mYWlsVW5sZXNzKGRpc3BhdGNoLl9zb3VyY2VfaGFuZGxlcl9maWxlKAorICAgICAgICAg
ICAgICAgICdkZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6cGFzc1xu
JworICAgICAgICAgICAgICAgICdkZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3Qp
OnBhc3NcbicpKQorCisgICAgZGVmIHRlc3Rfc291cmNlX3dhcm5pbmdzKHNlbGYpOgorICAgICAg
ICBkaXNwYXRjaGVyID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5ETEVSU19ESVIsIE5v
bmUpCisgICAgICAgIHdhcm5pbmdzID0gZGlzcGF0Y2hlci5zb3VyY2Vfd2FybmluZ3MoKQorICAg
ICAgICB3YXJuaW5ncy5zb3J0KCkKKyAgICAgICAgZXhwZWN0ZWRfd2FybmluZ3MgPSBbCisgICAg
ICAgICAgICAgICAgKG9zLnBhdGgucmVhbHBhdGgob3MucGF0aC5qb2luKAorICAgICAgICAgICAg
ICAgICAgICBfVEVTVF9IQU5ETEVSU19ESVIsICdibGFua193c2gucHknKSkgKworICAgICAgICAg
ICAgICAgICAnOiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSBpcyBub3QgZGVmaW5lZC4n
KSwKKyAgICAgICAgICAgICAgICAob3MucGF0aC5yZWFscGF0aChvcy5wYXRoLmpvaW4oCisgICAg
ICAgICAgICAgICAgICAgIF9URVNUX0hBTkRMRVJTX0RJUiwgJ3N1YicsICdub25fY2FsbGFibGVf
d3NoLnB5JykpICsKKyAgICAgICAgICAgICAgICAgJzogd2ViX3NvY2tldF9kb19leHRyYV9oYW5k
c2hha2UgaXMgbm90IGNhbGxhYmxlLicpLAorICAgICAgICAgICAgICAgIChvcy5wYXRoLnJlYWxw
YXRoKG9zLnBhdGguam9pbigKKyAgICAgICAgICAgICAgICAgICAgX1RFU1RfSEFORExFUlNfRElS
LCAnc3ViJywgJ3dyb25nX2hhbmRzaGFrZV9zaWdfd3NoLnB5JykpICsKKyAgICAgICAgICAgICAg
ICAgJzogd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UgaXMgbm90IGRlZmluZWQuJyksCisg
ICAgICAgICAgICAgICAgKG9zLnBhdGgucmVhbHBhdGgob3MucGF0aC5qb2luKAorICAgICAgICAg
ICAgICAgICAgICBfVEVTVF9IQU5ETEVSU19ESVIsICdzdWInLCAnd3JvbmdfdHJhbnNmZXJfc2ln
X3dzaC5weScpKSArCisgICAgICAgICAgICAgICAgICc6IHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0
YSBpcyBub3QgZGVmaW5lZC4nKSwKKyAgICAgICAgICAgICAgICBdCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKDQsIGxlbih3YXJuaW5ncykpCisgICAgICAgIGZvciBleHBlY3RlZCwgYWN0dWFs
IGluIHppcChleHBlY3RlZF93YXJuaW5ncywgd2FybmluZ3MpOgorICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoZXhwZWN0ZWQsIGFjdHVhbCkKKworICAgIGRlZiB0ZXN0X2RvX2V4dHJhX2hh
bmRzaGFrZShzZWxmKToKKyAgICAgICAgZGlzcGF0Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIo
X1RFU1RfSEFORExFUlNfRElSLCBOb25lKQorICAgICAgICByZXF1ZXN0ID0gbW9jay5Nb2NrUmVx
dWVzdCgpCisgICAgICAgIHJlcXVlc3Qud3NfcmVzb3VyY2UgPSAnL29yaWdpbl9jaGVjaycKKyAg
ICAgICAgcmVxdWVzdC53c19vcmlnaW4gPSAnaHR0cDovL2V4YW1wbGUuY29tJworICAgICAgICBk
aXNwYXRjaGVyLmRvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KSAgIyBNdXN0IG5vdCByYWlzZSBl
eGNlcHRpb24uCisKKyAgICAgICAgcmVxdWVzdC53c19vcmlnaW4gPSAnaHR0cDovL2JhZC5leGFt
cGxlLmNvbScKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZGlzcGF0Y2hlci5kb19leHRyYV9o
YW5kc2hha2UocmVxdWVzdCkKKyAgICAgICAgICAgIHNlbGYuZmFpbCgnQ291bGQgbm90IGNhdGNo
IEhhbmRzaGFrZUV4Y2VwdGlvbiB3aXRoIDQwMyBzdGF0dXMnKQorICAgICAgICBleGNlcHQgaGFu
ZHNoYWtlLkhhbmRzaGFrZUV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKDQwMywgZS5zdGF0dXMpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAg
ICAgICBzZWxmLmZhaWwoJ1VuZXhwZWN0ZWQgZXhjZXB0aW9uOiAlcicgJSBlKQorCisgICAgZGVm
IHRlc3RfYWJvcnRfZXh0cmFfaGFuZHNoYWtlKHNlbGYpOgorICAgICAgICBkaXNwYXRjaGVyID0g
ZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5ETEVSU19ESVIsIE5vbmUpCisgICAgICAgIHJl
cXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0KCkKKyAgICAgICAgcmVxdWVzdC53c19yZXNvdXJjZSA9
ICcvYWJvcnRfYnlfdXNlcicKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoaGFuZHNoYWtlLkFi
b3J0ZWRCeVVzZXJFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNo
ZXIuZG9fZXh0cmFfaGFuZHNoYWtlLCByZXF1ZXN0KQorCisgICAgZGVmIHRlc3RfdHJhbnNmZXJf
ZGF0YShzZWxmKToKKyAgICAgICAgZGlzcGF0Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RF
U1RfSEFORExFUlNfRElSLCBOb25lKQorCisgICAgICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1
ZXN0KGNvbm5lY3Rpb249bW9jay5Nb2NrQ29ubignXHhmZlx4MDAnKSkKKyAgICAgICAgcmVxdWVz
dC53c19yZXNvdXJjZSA9ICcvb3JpZ2luX2NoZWNrJworICAgICAgICByZXF1ZXN0LndzX3Byb3Rv
Y29sID0gJ3AxJworICAgICAgICBkaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEocmVxdWVzdCkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnb3JpZ2luX2NoZWNrX3dzaC5weSBpcyBjYWxsZWQgZm9y
IC9vcmlnaW5fY2hlY2ssIHAxJworICAgICAgICAgICAgICAgICAgICAgICAgICdceGZmXHgwMCcs
CisgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0
YSgpKQorCisgICAgICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0KGNvbm5lY3Rpb249bW9j
ay5Nb2NrQ29ubignXHhmZlx4MDAnKSkKKyAgICAgICAgcmVxdWVzdC53c19yZXNvdXJjZSA9ICcv
c3ViL3BsYWluJworICAgICAgICByZXF1ZXN0LndzX3Byb3RvY29sID0gTm9uZQorICAgICAgICBk
aXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEocmVxdWVzdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnc3ViL3BsYWluX3dzaC5weSBpcyBjYWxsZWQgZm9yIC9zdWIvcGxhaW4sIE5vbmUnCisgICAg
ICAgICAgICAgICAgICAgICAgICAgJ1x4ZmZceDAwJywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCisKKyAgICAgICAgcmVxdWVzdCA9
IG1vY2suTW9ja1JlcXVlc3QoY29ubmVjdGlvbj1tb2NrLk1vY2tDb25uKCdceGZmXHgwMCcpKQor
ICAgICAgICByZXF1ZXN0LndzX3Jlc291cmNlID0gJy9zdWIvcGxhaW4/JworICAgICAgICByZXF1
ZXN0LndzX3Byb3RvY29sID0gTm9uZQorICAgICAgICBkaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEo
cmVxdWVzdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnc3ViL3BsYWluX3dzaC5weSBpcyBj
YWxsZWQgZm9yIC9zdWIvcGxhaW4/LCBOb25lJworICAgICAgICAgICAgICAgICAgICAgICAgICdc
eGZmXHgwMCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndy
aXR0ZW5fZGF0YSgpKQorCisgICAgICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0KGNvbm5l
Y3Rpb249bW9jay5Nb2NrQ29ubignXHhmZlx4MDAnKSkKKyAgICAgICAgcmVxdWVzdC53c19yZXNv
dXJjZSA9ICcvc3ViL3BsYWluP3E9dicKKyAgICAgICAgcmVxdWVzdC53c19wcm90b2NvbCA9IE5v
bmUKKyAgICAgICAgZGlzcGF0Y2hlci50cmFuc2Zlcl9kYXRhKHJlcXVlc3QpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ3N1Yi9wbGFpbl93c2gucHkgaXMgY2FsbGVkIGZvciAvc3ViL3BsYWlu
P3E9diwgTm9uZScKKyAgICAgICAgICAgICAgICAgICAgICAgICAnXHhmZlx4MDAnLAorICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKKwor
ICAgIGRlZiB0ZXN0X3RyYW5zZmVyX2RhdGFfbm9faGFuZGxlcihzZWxmKToKKyAgICAgICAgZGlz
cGF0Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25lKQor
ICAgICAgICBmb3IgcmVzb3VyY2UgaW4gWycvYmxhbmsnLCAnL3N1Yi9ub25fY2FsbGFibGUnLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICcvc3ViL25vX3dzaF9hdF90aGVfZW5kJywgJy9kb2Vz
L25vdC9leGlzdCddOgorICAgICAgICAgICAgcmVxdWVzdCA9IG1vY2suTW9ja1JlcXVlc3QoY29u
bmVjdGlvbj1tb2NrLk1vY2tDb25uKCcnKSkKKyAgICAgICAgICAgIHJlcXVlc3Qud3NfcmVzb3Vy
Y2UgPSByZXNvdXJjZQorICAgICAgICAgICAgcmVxdWVzdC53c19wcm90b2NvbCA9ICdwMicKKyAg
ICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBkaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEo
cmVxdWVzdCkKKyAgICAgICAgICAgICAgICBzZWxmLmZhaWwoKQorICAgICAgICAgICAgZXhjZXB0
IGRpc3BhdGNoLkRpc3BhdGNoRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgICAgIHNlbGYuZmFp
bFVubGVzcyhzdHIoZSkuZmluZCgnTm8gaGFuZGxlcicpICE9IC0xKQorICAgICAgICAgICAgZXhj
ZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICBzZWxmLmZhaWwoKQorCisgICAgZGVmIHRl
c3RfdHJhbnNmZXJfZGF0YV9oYW5kbGVyX2V4Y2VwdGlvbihzZWxmKToKKyAgICAgICAgZGlzcGF0
Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25lKQorICAg
ICAgICByZXF1ZXN0ID0gbW9jay5Nb2NrUmVxdWVzdChjb25uZWN0aW9uPW1vY2suTW9ja0Nvbm4o
JycpKQorICAgICAgICByZXF1ZXN0LndzX3Jlc291cmNlID0gJy9zdWIvZXhjZXB0aW9uX2luX3Ry
YW5zZmVyJworICAgICAgICByZXF1ZXN0LndzX3Byb3RvY29sID0gJ3AzJworICAgICAgICB0cnk6
CisgICAgICAgICAgICBkaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEocmVxdWVzdCkKKyAgICAgICAg
ICAgIHNlbGYuZmFpbCgpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAg
ICBzZWxmLmZhaWxVbmxlc3Moc3RyKGUpLmZpbmQoJ0ludGVudGlvbmFsJykgIT0gLTEsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgZXhjZXB0aW9uOiAlcycgJSBlKQor
CisgICAgZGVmIHRlc3RfYWJvcnRfdHJhbnNmZXJfZGF0YShzZWxmKToKKyAgICAgICAgZGlzcGF0
Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25lKQorICAg
ICAgICByZXF1ZXN0ID0gbW9jay5Nb2NrUmVxdWVzdCgpCisgICAgICAgIHJlcXVlc3Qud3NfcmVz
b3VyY2UgPSAnL2Fib3J0X2J5X3VzZXInCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKGhhbmRz
aGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICBk
aXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEsIHJlcXVlc3QpCisKKyAgICBkZWYgdGVzdF9zY2FuX2Rp
cihzZWxmKToKKyAgICAgICAgZGlzcCA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExF
UlNfRElSLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDQsIGxlbihkaXNwLl9oYW5k
bGVyX3N1aXRlX21hcCkpCisgICAgICAgIHNlbGYuZmFpbFVubGVzcygnL29yaWdpbl9jaGVjaycg
aW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCisgICAgICAgIHNlbGYuZmFpbFVubGVzcygKKyAg
ICAgICAgICAgICcvc3ViL2V4Y2VwdGlvbl9pbl90cmFuc2ZlcicgaW4gZGlzcC5faGFuZGxlcl9z
dWl0ZV9tYXApCisgICAgICAgIHNlbGYuZmFpbFVubGVzcygnL3N1Yi9wbGFpbicgaW4gZGlzcC5f
aGFuZGxlcl9zdWl0ZV9tYXApCisKKyAgICBkZWYgdGVzdF9zY2FuX3N1Yl9kaXIoc2VsZik6Cisg
ICAgICAgIGRpc3AgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKF9URVNUX0hBTkRMRVJTX0RJUiwgX1RF
U1RfSEFORExFUlNfU1VCX0RJUikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBsZW4oZGlz
cC5faGFuZGxlcl9zdWl0ZV9tYXApKQorICAgICAgICBzZWxmLmZhaWxJZignL29yaWdpbl9jaGVj
aycgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCisgICAgICAgIHNlbGYuZmFpbFVubGVzcygK
KyAgICAgICAgICAgICcvc3ViL2V4Y2VwdGlvbl9pbl90cmFuc2ZlcicgaW4gZGlzcC5faGFuZGxl
cl9zdWl0ZV9tYXApCisgICAgICAgIHNlbGYuZmFpbFVubGVzcygnL3N1Yi9wbGFpbicgaW4gZGlz
cC5faGFuZGxlcl9zdWl0ZV9tYXApCisKKyAgICBkZWYgdGVzdF9zY2FuX3N1Yl9kaXJfYXNfcm9v
dChzZWxmKToKKyAgICAgICAgZGlzcCA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExF
UlNfU1VCX0RJUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX1RFU1RfSEFO
RExFUlNfU1VCX0RJUikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBsZW4oZGlzcC5faGFu
ZGxlcl9zdWl0ZV9tYXApKQorICAgICAgICBzZWxmLmZhaWxJZignL29yaWdpbl9jaGVjaycgaW4g
ZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCisgICAgICAgIHNlbGYuZmFpbElmKCcvc3ViL2V4Y2Vw
dGlvbl9pbl90cmFuc2ZlcicgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCisgICAgICAgIHNl
bGYuZmFpbElmKCcvc3ViL3BsYWluJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKKyAgICAg
ICAgc2VsZi5mYWlsVW5sZXNzKCcvZXhjZXB0aW9uX2luX3RyYW5zZmVyJyBpbiBkaXNwLl9oYW5k
bGVyX3N1aXRlX21hcCkKKyAgICAgICAgc2VsZi5mYWlsVW5sZXNzKCcvcGxhaW4nIGluIGRpc3Au
X2hhbmRsZXJfc3VpdGVfbWFwKQorCisgICAgZGVmIHRlc3Rfc2Nhbl9kaXJfbXVzdF91bmRlcl9y
b290KHNlbGYpOgorICAgICAgICBkaXNwYXRjaC5EaXNwYXRjaGVyKCdhL2InLCAnYS9iL2MnKSAg
IyBPSworICAgICAgICBkaXNwYXRjaC5EaXNwYXRjaGVyKCdhL2IvLy8nLCAnYS9iJykgICMgT0sK
KyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoZGlzcGF0Y2guRGlzcGF0Y2hFeGNlcHRpb24sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoLkRpc3BhdGNoZXIsICdhL2IvYycsICdh
L2InKQorCisgICAgZGVmIHRlc3RfcmVzb3VyY2VfcGF0aF9hbGlhcyhzZWxmKToKKyAgICAgICAg
ZGlzcCA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25lKQorICAg
ICAgICBkaXNwLmFkZF9yZXNvdXJjZV9wYXRoX2FsaWFzKCcvJywgJy9vcmlnaW5fY2hlY2snKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDUsIGxlbihkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkp
CisgICAgICAgIHNlbGYuZmFpbFVubGVzcygnL29yaWdpbl9jaGVjaycgaW4gZGlzcC5faGFuZGxl
cl9zdWl0ZV9tYXApCisgICAgICAgIHNlbGYuZmFpbFVubGVzcygKKyAgICAgICAgICAgICcvc3Vi
L2V4Y2VwdGlvbl9pbl90cmFuc2ZlcicgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCisgICAg
ICAgIHNlbGYuZmFpbFVubGVzcygnL3N1Yi9wbGFpbicgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9t
YXApCisgICAgICAgIHNlbGYuZmFpbFVubGVzcygnLycgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9t
YXApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKGRpc3BhdGNoLkRpc3BhdGNoRXhjZXB0aW9u
LAorICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwLmFkZF9yZXNvdXJjZV9wYXRoX2FsaWFz
LCAnL2FsaWFzJywgJy9ub3QtZXhpc3QnKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6
CisgICAgdW5pdHRlc3QubWFpbigpCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3Rlc3QvdGVzdF9lbmR0b2VuZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2VuZHRvZW5kLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjVlNWNmNjE1NzM5MTdkODdkMTM2NWIxNmE1OGMyYzQxODhhOTEyZWMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9lbmR0b2VuZC5weQpAQCAtMCwwICsxLDc1
MyBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAyMDEyLCBHb29nbGUg
SW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCisiIiJF
bmQtdG8tZW5kIHRlc3RzIGZvciBweXdlYnNvY2tldC4gVGVzdHMgc3RhbmRhbG9uZS5weSBieSBk
ZWZhdWx0LiBZb3UKK2NhbiBhbHNvIHRlc3QgbW9kX3B5d2Vic29ja2V0IGhvc3RlZCBvbiBhbiBB
cGFjaGUgc2VydmVyIGJ5IHNldHRpbmcKK191c2VfZXh0ZXJuYWxfc2VydmVyIHRvIFRydWUgYW5k
IG1vZGlmeWluZyBfZXh0ZXJuYWxfc2VydmVyX3BvcnQgdG8gcG9pbnQgdG8KK3RoZSBwb3J0IG9u
IHdoaWNoIHRoZSBBcGFjaGUgc2VydmVyIGlzIHJ1bm5pbmcuCisiIiIKKworCitpbXBvcnQgbG9n
Z2luZworaW1wb3J0IG9zCitpbXBvcnQgc2lnbmFsCitpbXBvcnQgc29ja2V0CitpbXBvcnQgc3Vi
cHJvY2VzcworaW1wb3J0IHN5cworaW1wb3J0IHRpbWUKK2ltcG9ydCB1bml0dGVzdAorCitpbXBv
cnQgc2V0X3N5c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29j
a2V0IG1vZHVsZS4KKworZnJvbSB0ZXN0IGltcG9ydCBjbGllbnRfZm9yX3Rlc3RpbmcKK2Zyb20g
dGVzdCBpbXBvcnQgbXV4X2NsaWVudF9mb3JfdGVzdGluZworCisKKyMgU3BlY2lhbCBtZXNzYWdl
IHRoYXQgdGVsbHMgdGhlIGVjaG8gc2VydmVyIHRvIHN0YXJ0IGNsb3NpbmcgaGFuZHNoYWtlCitf
R09PREJZRV9NRVNTQUdFID0gJ0dvb2RieWUnCisKK19TRVJWRVJfV0FSTVVQX0lOX1NFQyA9IDAu
MgorCisjIElmIHlvdSB3YW50IHRvIHVzZSBleHRlcm5hbCBzZXJ2ZXIgdG8gcnVuIGVuZCB0byBl
bmQgdGVzdHMsIHNldCBmb2xsb3dpbmcKKyMgcGFyYW1ldGVycyBjb3JyZWN0bHkuCitfdXNlX2V4
dGVybmFsX3NlcnZlciA9IEZhbHNlCitfZXh0ZXJuYWxfc2VydmVyX3BvcnQgPSAwCisKKworIyBU
ZXN0IGJvZHkgZnVuY3Rpb25zCitkZWYgX2VjaG9fY2hlY2tfcHJvY2VkdXJlKGNsaWVudCk6Cisg
ICAgY2xpZW50LmNvbm5lY3QoKQorCisgICAgY2xpZW50LnNlbmRfbWVzc2FnZSgndGVzdCcpCisg
ICAgY2xpZW50LmFzc2VydF9yZWNlaXZlKCd0ZXN0JykKKyAgICBjbGllbnQuc2VuZF9tZXNzYWdl
KCdoZWxsb3dvcmxkJykKKyAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmUoJ2hlbGxvd29ybGQnKQor
CisgICAgY2xpZW50LnNlbmRfY2xvc2UoKQorICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9z
ZSgpCisKKyAgICBjbGllbnQuYXNzZXJ0X2Nvbm5lY3Rpb25fY2xvc2VkKCkKKworCitkZWYgX2Vj
aG9fY2hlY2tfcHJvY2VkdXJlX3dpdGhfYmluYXJ5KGNsaWVudCk6CisgICAgY2xpZW50LmNvbm5l
Y3QoKQorCisgICAgY2xpZW50LnNlbmRfbWVzc2FnZSgnYmluYXJ5JywgYmluYXJ5PVRydWUpCisg
ICAgY2xpZW50LmFzc2VydF9yZWNlaXZlKCdiaW5hcnknLCBiaW5hcnk9VHJ1ZSkKKyAgICBjbGll
bnQuc2VuZF9tZXNzYWdlKCdceDAwXHg4MFx4ZmVceGZmXHgwMFx4ODAnLCBiaW5hcnk9VHJ1ZSkK
KyAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmUoJ1x4MDBceDgwXHhmZVx4ZmZceDAwXHg4MCcsIGJp
bmFyeT1UcnVlKQorCisgICAgY2xpZW50LnNlbmRfY2xvc2UoKQorICAgIGNsaWVudC5hc3NlcnRf
cmVjZWl2ZV9jbG9zZSgpCisKKyAgICBjbGllbnQuYXNzZXJ0X2Nvbm5lY3Rpb25fY2xvc2VkKCkK
KworCitkZWYgX2VjaG9fY2hlY2tfcHJvY2VkdXJlX3dpdGhfZ29vZGJ5ZShjbGllbnQpOgorICAg
IGNsaWVudC5jb25uZWN0KCkKKworICAgIGNsaWVudC5zZW5kX21lc3NhZ2UoJ3Rlc3QnKQorICAg
IGNsaWVudC5hc3NlcnRfcmVjZWl2ZSgndGVzdCcpCisKKyAgICBjbGllbnQuc2VuZF9tZXNzYWdl
KF9HT09EQllFX01FU1NBR0UpCisgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlKF9HT09EQllFX01F
U1NBR0UpCisKKyAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQorICAgIGNsaWVudC5z
ZW5kX2Nsb3NlKCkKKworICAgIGNsaWVudC5hc3NlcnRfY29ubmVjdGlvbl9jbG9zZWQoKQorCisK
K2RlZiBfZWNob19jaGVja19wcm9jZWR1cmVfd2l0aF9jb2RlX2FuZF9yZWFzb24oY2xpZW50LCBj
b2RlLCByZWFzb24pOgorICAgIGNsaWVudC5jb25uZWN0KCkKKworICAgIGNsaWVudC5zZW5kX2Ns
b3NlKGNvZGUsIHJlYXNvbikKKyAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoY29kZSwg
cmVhc29uKQorCisgICAgY2xpZW50LmFzc2VydF9jb25uZWN0aW9uX2Nsb3NlZCgpCisKKworZGVm
IF91bm1hc2tlZF9mcmFtZV9jaGVja19wcm9jZWR1cmUoY2xpZW50KToKKyAgICBjbGllbnQuY29u
bmVjdCgpCisKKyAgICBjbGllbnQuc2VuZF9tZXNzYWdlKCd0ZXN0JywgbWFzaz1GYWxzZSkKKyAg
ICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoY2xpZW50X2Zvcl90ZXN0aW5nLlNUQVRVU19Q
Uk9UT0NPTF9FUlJPUiwgJycpCisKKyAgICBjbGllbnQuYXNzZXJ0X2Nvbm5lY3Rpb25fY2xvc2Vk
KCkKKworCitkZWYgX211eF9lY2hvX2NoZWNrX3Byb2NlZHVyZShtdXhfY2xpZW50KToKKyAgICBt
dXhfY2xpZW50LmNvbm5lY3QoKQorICAgIG11eF9jbGllbnQuc2VuZF9mbG93X2NvbnRyb2woMSwg
MTAyNCkKKworICAgIGxvZ2ljYWxfY2hhbm5lbF9vcHRpb25zID0gY2xpZW50X2Zvcl90ZXN0aW5n
LkNsaWVudE9wdGlvbnMoKQorICAgIGxvZ2ljYWxfY2hhbm5lbF9vcHRpb25zLnNlcnZlcl9ob3N0
ID0gJ2xvY2FsaG9zdCcKKyAgICBsb2dpY2FsX2NoYW5uZWxfb3B0aW9ucy5zZXJ2ZXJfcG9ydCA9
IDgwCisgICAgbG9naWNhbF9jaGFubmVsX29wdGlvbnMub3JpZ2luID0gJ2h0dHA6Ly9sb2NhbGhv
c3QnCisgICAgbG9naWNhbF9jaGFubmVsX29wdGlvbnMucmVzb3VyY2UgPSAnL2VjaG8nCisgICAg
bXV4X2NsaWVudC5hZGRfY2hhbm5lbCgyLCBsb2dpY2FsX2NoYW5uZWxfb3B0aW9ucykKKyAgICBt
dXhfY2xpZW50LnNlbmRfZmxvd19jb250cm9sKDIsIDEwMjQpCisKKyAgICBtdXhfY2xpZW50LnNl
bmRfbWVzc2FnZSgyLCAndGVzdCcpCisgICAgbXV4X2NsaWVudC5hc3NlcnRfcmVjZWl2ZSgyLCAn
dGVzdCcpCisKKyAgICBtdXhfY2xpZW50LmFkZF9jaGFubmVsKDMsIGxvZ2ljYWxfY2hhbm5lbF9v
cHRpb25zKQorICAgIG11eF9jbGllbnQuc2VuZF9mbG93X2NvbnRyb2woMywgMTAyNCkKKworICAg
IG11eF9jbGllbnQuc2VuZF9tZXNzYWdlKDIsICdoZWxsbycpCisgICAgbXV4X2NsaWVudC5zZW5k
X21lc3NhZ2UoMywgJ3dvcmxkJykKKyAgICBtdXhfY2xpZW50LmFzc2VydF9yZWNlaXZlKDIsICdo
ZWxsbycpCisgICAgbXV4X2NsaWVudC5hc3NlcnRfcmVjZWl2ZSgzLCAnd29ybGQnKQorCisgICAg
IyBEb24ndCBzZW5kIGNsb3NlIG1lc3NhZ2Ugb24gY2hhbm5lbCBpZCAxIHNvIHRoYXQgc2VydmVy
LWluaXRpYXRlZAorICAgICMgY2xvc2luZyBoYW5kc2hha2Ugd29uJ3Qgb2NjdXIuCisgICAgbXV4
X2NsaWVudC5zZW5kX2Nsb3NlKDIpCisgICAgbXV4X2NsaWVudC5zZW5kX2Nsb3NlKDMpCisgICAg
bXV4X2NsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgyKQorICAgIG11eF9jbGllbnQuYXNzZXJ0
X3JlY2VpdmVfY2xvc2UoMykKKworICAgIG11eF9jbGllbnQuc2VuZF9waHlzaWNhbF9jb25uZWN0
aW9uX2Nsb3NlKCkKKyAgICBtdXhfY2xpZW50LmFzc2VydF9waHlzaWNhbF9jb25uZWN0aW9uX3Jl
Y2VpdmVfY2xvc2UoKQorCisKK2NsYXNzIEVuZFRvRW5kVGVzdEJhc2UodW5pdHRlc3QuVGVzdENh
c2UpOgorICAgICIiIkJhc2UgY2xhc3MgZm9yIGVuZC10by1lbmQgdGVzdHMgdGhhdCBsYXVuY2gg
cHl3ZWJzb2NrZXQgc3RhbmRhbG9uZQorICAgIHNlcnZlciBhcyBhIHNlcGFyYXRlIHByb2Nlc3Ms
IGNvbm5lY3QgdG8gaXQgdXNpbmcgdGhlIGNsaWVudF9mb3JfdGVzdGluZworICAgIG1vZHVsZSwg
YW5kIGNoZWNrIGlmIHRoZSBzZXJ2ZXIgYmVoYXZlcyBjb3JyZWN0bHkgYnkgZXhjaGFuZ2luZyBv
cGVuaW5nCisgICAgaGFuZHNoYWtlIGFuZCBmcmFtZXMgb3ZlciBhIFRDUCBjb25uZWN0aW9uLgor
ICAgICIiIgorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLnNlcnZlcl9zdGRl
cnIgPSBOb25lCisgICAgICAgIHNlbGYudG9wX2RpciA9IG9zLnBhdGguam9pbihvcy5wYXRoLnNw
bGl0KF9fZmlsZV9fKVswXSwgJy4uJykKKyAgICAgICAgb3MucHV0ZW52KCdQWVRIT05QQVRIJywg
b3MucGF0aC5wYXRoc2VwLmpvaW4oc3lzLnBhdGgpKQorICAgICAgICBzZWxmLnN0YW5kYWxvbmVf
Y29tbWFuZCA9IG9zLnBhdGguam9pbigKKyAgICAgICAgICAgIHNlbGYudG9wX2RpciwgJ21vZF9w
eXdlYnNvY2tldCcsICdzdGFuZGFsb25lLnB5JykKKyAgICAgICAgc2VsZi5kb2N1bWVudF9yb290
ID0gb3MucGF0aC5qb2luKHNlbGYudG9wX2RpciwgJ2V4YW1wbGUnKQorICAgICAgICBzID0gc29j
a2V0LnNvY2tldCgpCisgICAgICAgIHMuYmluZCgoJ2xvY2FsaG9zdCcsIDApKQorICAgICAgICAo
Xywgc2VsZi50ZXN0X3BvcnQpID0gcy5nZXRzb2NrbmFtZSgpCisgICAgICAgIHMuY2xvc2UoKQor
CisgICAgICAgIHNlbGYuX29wdGlvbnMgPSBjbGllbnRfZm9yX3Rlc3RpbmcuQ2xpZW50T3B0aW9u
cygpCisgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX2hvc3QgPSAnbG9jYWxob3N0JworICAg
ICAgICBzZWxmLl9vcHRpb25zLm9yaWdpbiA9ICdodHRwOi8vbG9jYWxob3N0JworICAgICAgICBz
ZWxmLl9vcHRpb25zLnJlc291cmNlID0gJy9lY2hvJworCisgICAgICAgICMgVE9ETyh0b3lvc2hp
bSk6IEVsaW1pbmF0ZSBsYXVuY2hpbmcgYSBzdGFuZGFsb25lIHNlcnZlciBvbiB1c2luZworICAg
ICAgICAjIGV4dGVybmFsIHNlcnZlci4KKworICAgICAgICBpZiBfdXNlX2V4dGVybmFsX3NlcnZl
cjoKKyAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX3BvcnQgPSBfZXh0ZXJuYWxfc2Vy
dmVyX3BvcnQKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVy
X3BvcnQgPSBzZWxmLnRlc3RfcG9ydAorCisgICAgIyBUT0RPKHR5b3NoaW5vKTogVXNlIHRlYXJE
b3duIHRvIGtpbGwgdGhlIHNlcnZlci4KKworICAgIGRlZiBfcnVuX3B5dGhvbl9jb21tYW5kKHNl
bGYsIGNvbW1hbmRsaW5lLCBzdGRvdXQ9Tm9uZSwgc3RkZXJyPU5vbmUpOgorICAgICAgICByZXR1
cm4gc3VicHJvY2Vzcy5Qb3Blbihbc3lzLmV4ZWN1dGFibGVdICsgY29tbWFuZGxpbmUsIGNsb3Nl
X2Zkcz1UcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9c3Rkb3V0
LCBzdGRlcnI9c3RkZXJyKQorCisgICAgZGVmIF9ydW5fc2VydmVyKHNlbGYpOgorICAgICAgICBh
cmdzID0gW3NlbGYuc3RhbmRhbG9uZV9jb21tYW5kLAorICAgICAgICAgICAgICAgICctSCcsICds
b2NhbGhvc3QnLAorICAgICAgICAgICAgICAgICctVicsICdsb2NhbGhvc3QnLAorICAgICAgICAg
ICAgICAgICctcCcsIHN0cihzZWxmLnRlc3RfcG9ydCksCisgICAgICAgICAgICAgICAgJy1QJywg
c3RyKHNlbGYudGVzdF9wb3J0KSwKKyAgICAgICAgICAgICAgICAnLWQnLCBzZWxmLmRvY3VtZW50
X3Jvb3RdCisKKyAgICAgICAgIyBJbmhlcml0IHRoZSBsZXZlbCBzZXQgdG8gdGhlIHJvb3QgbG9n
Z2VyIGJ5IHRlc3QgcnVubmVyLgorICAgICAgICByb290X2xvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9n
Z2VyKCkKKyAgICAgICAgbG9nX2xldmVsID0gcm9vdF9sb2dnZXIuZ2V0RWZmZWN0aXZlTGV2ZWwo
KQorICAgICAgICBpZiBsb2dfbGV2ZWwgIT0gbG9nZ2luZy5OT1RTRVQ6CisgICAgICAgICAgICBh
cmdzLmFwcGVuZCgnLS1sb2ctbGV2ZWwnKQorICAgICAgICAgICAgYXJncy5hcHBlbmQobG9nZ2lu
Zy5nZXRMZXZlbE5hbWUobG9nX2xldmVsKS5sb3dlcigpKQorCisgICAgICAgIHJldHVybiBzZWxm
Ll9ydW5fcHl0aG9uX2NvbW1hbmQoYXJncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdGRlcnI9c2VsZi5zZXJ2ZXJfc3RkZXJyKQorCisgICAgZGVmIF9raWxsX3By
b2Nlc3Moc2VsZiwgcGlkKToKKyAgICAgICAgaWYgc3lzLnBsYXRmb3JtIGluICgnd2luMzInLCAn
Y3lnd2luJyk6CisgICAgICAgICAgICBzdWJwcm9jZXNzLmNhbGwoCisgICAgICAgICAgICAgICAg
KCd0YXNra2lsbC5leGUnLCAnL2YnLCAnL3BpZCcsIHN0cihwaWQpKSwgY2xvc2VfZmRzPVRydWUp
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBvcy5raWxsKHBpZCwgc2lnbmFsLlNJR0tJTEwp
CisKKworY2xhc3MgRW5kVG9FbmRIeUJpVGVzdChFbmRUb0VuZFRlc3RCYXNlKToKKyAgICBkZWYg
c2V0VXAoc2VsZik6CisgICAgICAgIEVuZFRvRW5kVGVzdEJhc2Uuc2V0VXAoc2VsZikKKworICAg
IGRlZiBfcnVuX3Rlc3Rfd2l0aF9jbGllbnRfb3B0aW9ucyhzZWxmLCB0ZXN0X2Z1bmN0aW9uLCBv
cHRpb25zKToKKyAgICAgICAgc2VydmVyID0gc2VsZi5fcnVuX3NlcnZlcigpCisgICAgICAgIHRy
eToKKyAgICAgICAgICAgICMgVE9ETyh0eW9zaGlubyk6IGFkZCBzb21lIGxvZ2ljIHRvIHBvbGwg
dGhlIHNlcnZlciB1bnRpbCBpdAorICAgICAgICAgICAgIyBiZWNvbWVzIHJlYWR5CisgICAgICAg
ICAgICB0aW1lLnNsZWVwKF9TRVJWRVJfV0FSTVVQX0lOX1NFQykKKworICAgICAgICAgICAgY2xp
ZW50ID0gY2xpZW50X2Zvcl90ZXN0aW5nLmNyZWF0ZV9jbGllbnQob3B0aW9ucykKKyAgICAgICAg
ICAgIHRyeToKKyAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKGNsaWVudCkKKyAgICAgICAg
ICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgY2xpZW50LmNsb3NlX3NvY2tldCgpCisgICAg
ICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLl9raWxsX3Byb2Nlc3Moc2VydmVyLnBpZCkK
KworICAgIGRlZiBfcnVuX3Rlc3Qoc2VsZiwgdGVzdF9mdW5jdGlvbik6CisgICAgICAgIHNlbGYu
X3J1bl90ZXN0X3dpdGhfY2xpZW50X29wdGlvbnModGVzdF9mdW5jdGlvbiwgc2VsZi5fb3B0aW9u
cykKKworICAgIGRlZiBfcnVuX2RlZmxhdGVfZnJhbWVfdGVzdChzZWxmLCB0ZXN0X2Z1bmN0aW9u
KToKKyAgICAgICAgc2VydmVyID0gc2VsZi5fcnVuX3NlcnZlcigpCisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIHRpbWUuc2xlZXAoX1NFUlZFUl9XQVJNVVBfSU5fU0VDKQorCisgICAgICAgICAg
ICBzZWxmLl9vcHRpb25zLmVuYWJsZV9kZWZsYXRlX2ZyYW1lKCkKKyAgICAgICAgICAgIGNsaWVu
dCA9IGNsaWVudF9mb3JfdGVzdGluZy5jcmVhdGVfY2xpZW50KHNlbGYuX29wdGlvbnMpCisgICAg
ICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbihjbGllbnQpCisgICAg
ICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIGNsaWVudC5jbG9zZV9zb2NrZXQoKQor
ICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5fa2lsbF9wcm9jZXNzKHNlcnZlci5w
aWQpCisKKyAgICBkZWYgX3J1bl9wZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgKKyAgICAgICAgICAg
IHNlbGYsIG9mZmVyLCByZXNwb25zZV9jaGVja2VyLCB0ZXN0X2Z1bmN0aW9uKToKKyAgICAgICAg
c2VydmVyID0gc2VsZi5fcnVuX3NlcnZlcigpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHRp
bWUuc2xlZXAoX1NFUlZFUl9XQVJNVVBfSU5fU0VDKQorCisgICAgICAgICAgICBzZWxmLl9vcHRp
b25zLmV4dGVuc2lvbnMgKz0gb2ZmZXIKKyAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuY2hlY2tf
cGVybWVzc2FnZV9kZWZsYXRlID0gcmVzcG9uc2VfY2hlY2tlcgorICAgICAgICAgICAgY2xpZW50
ID0gY2xpZW50X2Zvcl90ZXN0aW5nLmNyZWF0ZV9jbGllbnQoc2VsZi5fb3B0aW9ucykKKworICAg
ICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGNsaWVudC5jb25uZWN0KCkKKworICAgICAg
ICAgICAgICAgIGlmIHRlc3RfZnVuY3Rpb24gaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAg
ICAgIHRlc3RfZnVuY3Rpb24oY2xpZW50KQorCisgICAgICAgICAgICAgICAgY2xpZW50LmFzc2Vy
dF9jb25uZWN0aW9uX2Nsb3NlZCgpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAg
ICAgIGNsaWVudC5jbG9zZV9zb2NrZXQoKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAg
c2VsZi5fa2lsbF9wcm9jZXNzKHNlcnZlci5waWQpCisKKyAgICBkZWYgX3J1bl9jbG9zZV93aXRo
X2NvZGVfYW5kX3JlYXNvbl90ZXN0KHNlbGYsIHRlc3RfZnVuY3Rpb24sIGNvZGUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbik6CisgICAg
ICAgIHNlcnZlciA9IHNlbGYuX3J1bl9zZXJ2ZXIoKQorICAgICAgICB0cnk6CisgICAgICAgICAg
ICB0aW1lLnNsZWVwKF9TRVJWRVJfV0FSTVVQX0lOX1NFQykKKworICAgICAgICAgICAgY2xpZW50
ID0gY2xpZW50X2Zvcl90ZXN0aW5nLmNyZWF0ZV9jbGllbnQoc2VsZi5fb3B0aW9ucykKKyAgICAg
ICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKGNsaWVudCwgY29kZSwg
cmVhc29uKQorICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICBjbGllbnQuY2xv
c2Vfc29ja2V0KCkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNlbGYuX2tpbGxfcHJv
Y2VzcyhzZXJ2ZXIucGlkKQorCisgICAgZGVmIF9ydW5faHR0cF9mYWxsYmFja190ZXN0KHNlbGYs
IG9wdGlvbnMsIHN0YXR1cyk6CisgICAgICAgIHNlcnZlciA9IHNlbGYuX3J1bl9zZXJ2ZXIoKQor
ICAgICAgICB0cnk6CisgICAgICAgICAgICB0aW1lLnNsZWVwKF9TRVJWRVJfV0FSTVVQX0lOX1NF
QykKKworICAgICAgICAgICAgY2xpZW50ID0gY2xpZW50X2Zvcl90ZXN0aW5nLmNyZWF0ZV9jbGll
bnQob3B0aW9ucykKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBjbGllbnQuY29u
bmVjdCgpCisgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdDb3VsZCBub3QgY2F0Y2ggSHR0cFN0
YXR1c0V4Y2VwdGlvbicpCisgICAgICAgICAgICBleGNlcHQgY2xpZW50X2Zvcl90ZXN0aW5nLkh0
dHBTdGF0dXNFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChz
dGF0dXMsIGUuc3RhdHVzKQorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAg
ICAgICAgICAgICBzZWxmLmZhaWwoJ0NhdGNoIHVuZXhwZWN0ZWQgZXhjZXB0aW9uJykKKyAgICAg
ICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgY2xpZW50LmNsb3NlX3NvY2tldCgpCisg
ICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLl9raWxsX3Byb2Nlc3Moc2VydmVyLnBp
ZCkKKworICAgIGRlZiBfcnVuX211eF90ZXN0KHNlbGYsIHRlc3RfZnVuY3Rpb24pOgorICAgICAg
ICBzZXJ2ZXIgPSBzZWxmLl9ydW5fc2VydmVyKCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
dGltZS5zbGVlcChfU0VSVkVSX1dBUk1VUF9JTl9TRUMpCisKKyAgICAgICAgICAgIGNsaWVudCA9
IG11eF9jbGllbnRfZm9yX3Rlc3RpbmcuTXV4Q2xpZW50KHNlbGYuX29wdGlvbnMpCisgICAgICAg
ICAgICB0cnk6CisgICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbihjbGllbnQpCisgICAgICAg
ICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIGNsaWVudC5jbG9zZV9zb2NrZXQoKQorICAg
ICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5fa2lsbF9wcm9jZXNzKHNlcnZlci5waWQp
CisKKyAgICBkZWYgdGVzdF9lY2hvKHNlbGYpOgorICAgICAgICBzZWxmLl9ydW5fdGVzdChfZWNo
b19jaGVja19wcm9jZWR1cmUpCisKKyAgICBkZWYgdGVzdF9lY2hvX2JpbmFyeShzZWxmKToKKyAg
ICAgICAgc2VsZi5fcnVuX3Rlc3QoX2VjaG9fY2hlY2tfcHJvY2VkdXJlX3dpdGhfYmluYXJ5KQor
CisgICAgZGVmIHRlc3RfZWNob19zZXJ2ZXJfY2xvc2Uoc2VsZik6CisgICAgICAgIHNlbGYuX3J1
bl90ZXN0KF9lY2hvX2NoZWNrX3Byb2NlZHVyZV93aXRoX2dvb2RieWUpCisKKyAgICBkZWYgdGVz
dF91bm1hc2tlZF9mcmFtZShzZWxmKToKKyAgICAgICAgc2VsZi5fcnVuX3Rlc3QoX3VubWFza2Vk
X2ZyYW1lX2NoZWNrX3Byb2NlZHVyZSkKKworICAgIGRlZiB0ZXN0X2VjaG9fZGVmbGF0ZV9mcmFt
ZShzZWxmKToKKyAgICAgICAgc2VsZi5fcnVuX2RlZmxhdGVfZnJhbWVfdGVzdChfZWNob19jaGVj
a19wcm9jZWR1cmUpCisKKyAgICBkZWYgdGVzdF9lY2hvX2RlZmxhdGVfZnJhbWVfc2VydmVyX2Ns
b3NlKHNlbGYpOgorICAgICAgICBzZWxmLl9ydW5fZGVmbGF0ZV9mcmFtZV90ZXN0KAorICAgICAg
ICAgICAgX2VjaG9fY2hlY2tfcHJvY2VkdXJlX3dpdGhfZ29vZGJ5ZSkKKworICAgIGRlZiB0ZXN0
X2VjaG9fcGVybWVzc2FnZV9kZWZsYXRlKHNlbGYpOgorICAgICAgICBkZWYgdGVzdF9mdW5jdGlv
bihjbGllbnQpOgorICAgICAgICAgICAgIyBGcm9tIHRoZSBleGFtcGxlcyBpbiB0aGUgc3BlYy4K
KyAgICAgICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSAnXHhmMlx4NDhceGNkXHhjOVx4YzlceDA3
XHgwMCcKKyAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLnNlbmRfZGF0YSgKKyAgICAgICAgICAg
ICAgICAgICAgY29tcHJlc3NlZF9oZWxsbywKKyAgICAgICAgICAgICAgICAgICAgY2xpZW50X2Zv
cl90ZXN0aW5nLk9QQ09ERV9URVhULAorICAgICAgICAgICAgICAgICAgICByc3YxPTEpCisgICAg
ICAgICAgICBjbGllbnQuX3N0cmVhbS5hc3NlcnRfcmVjZWl2ZV9iaW5hcnkoCisgICAgICAgICAg
ICAgICAgICAgIGNvbXByZXNzZWRfaGVsbG8sCisgICAgICAgICAgICAgICAgICAgIG9wY29kZT1j
bGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCisgICAgICAgICAgICAgICAgICAgIHJzdjE9
MSkKKworICAgICAgICAgICAgY2xpZW50LnNlbmRfY2xvc2UoKQorICAgICAgICAgICAgY2xpZW50
LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKKworICAgICAgICBkZWYgcmVzcG9uc2VfY2hlY2tlcihw
YXJhbWV0ZXIpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoJ3Blcm1lc3NhZ2UtZGVm
bGF0ZScsIHBhcmFtZXRlci5uYW1lKCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhb
XSwgcGFyYW1ldGVyLmdldF9wYXJhbWV0ZXJzKCkpCisKKyAgICAgICAgc2VsZi5fcnVuX3Blcm1l
c3NhZ2VfZGVmbGF0ZV90ZXN0KAorICAgICAgICAgICAgICAgIFsncGVybWVzc2FnZS1kZWZsYXRl
J10sCisgICAgICAgICAgICAgICAgcmVzcG9uc2VfY2hlY2tlciwKKyAgICAgICAgICAgICAgICB0
ZXN0X2Z1bmN0aW9uKQorCisgICAgZGVmIHRlc3RfZWNob19wZXJtZXNzYWdlX2RlZmxhdGVfdHdv
X2ZyYW1lcyhzZWxmKToKKyAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKKyAgICAg
ICAgICAgICMgRnJvbSB0aGUgZXhhbXBsZXMgaW4gdGhlIHNwZWMuCisgICAgICAgICAgICBjbGll
bnQuX3N0cmVhbS5zZW5kX2RhdGEoCisgICAgICAgICAgICAgICAgICAgICdceGYyXHg0OFx4Y2Qn
LAorICAgICAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCisg
ICAgICAgICAgICAgICAgICAgIGVuZD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgcnN2MT0x
KQorICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uc2VuZF9kYXRhKAorICAgICAgICAgICAgICAg
ICAgICAnXHhjOVx4YzlceDA3XHgwMCcsCisgICAgICAgICAgICAgICAgICAgIGNsaWVudF9mb3Jf
dGVzdGluZy5PUENPREVfVEVYVCkKKyAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLmFzc2VydF9y
ZWNlaXZlX2JpbmFyeSgKKyAgICAgICAgICAgICAgICAgICAgJ1x4ZjJceDQ4XHhjZFx4YzlceGM5
XHgwN1x4MDAnLAorICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y2xpZW50X2Zvcl90ZXN0aW5n
Lk9QQ09ERV9URVhULAorICAgICAgICAgICAgICAgICAgICByc3YxPTEpCisKKyAgICAgICAgICAg
IGNsaWVudC5zZW5kX2Nsb3NlKCkKKyAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9j
bG9zZSgpCisKKyAgICAgICAgZGVmIHJlc3BvbnNlX2NoZWNrZXIocGFyYW1ldGVyKToKKyAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCBwYXJhbWV0ZXIu
bmFtZSgpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoW10sIHBhcmFtZXRlci5nZXRf
cGFyYW1ldGVycygpKQorCisgICAgICAgIHNlbGYuX3J1bl9wZXJtZXNzYWdlX2RlZmxhdGVfdGVz
dCgKKyAgICAgICAgICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZSddLAorICAgICAgICAgICAg
ICAgIHJlc3BvbnNlX2NoZWNrZXIsCisgICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbikKKwor
ICAgIGRlZiB0ZXN0X2VjaG9fcGVybWVzc2FnZV9kZWZsYXRlX3R3b19tZXNzYWdlcyhzZWxmKToK
KyAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKKyAgICAgICAgICAgICMgRnJvbSB0
aGUgZXhhbXBsZXMgaW4gdGhlIHNwZWMuCisgICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5zZW5k
X2RhdGEoCisgICAgICAgICAgICAgICAgICAgICdceGYyXHg0OFx4Y2RceGM5XHhjOVx4MDdceDAw
JywKKyAgICAgICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAor
ICAgICAgICAgICAgICAgICAgICByc3YxPTEpCisgICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5z
ZW5kX2RhdGEoCisgICAgICAgICAgICAgICAgICAgICdceGYyXHgwMFx4MTFceDAwXHgwMCcsCisg
ICAgICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKKyAgICAg
ICAgICAgICAgICAgICAgcnN2MT0xKQorICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uYXNzZXJ0
X3JlY2VpdmVfYmluYXJ5KAorICAgICAgICAgICAgICAgICAgICAnXHhmMlx4NDhceGNkXHhjOVx4
YzlceDA3XHgwMCcsCisgICAgICAgICAgICAgICAgICAgIG9wY29kZT1jbGllbnRfZm9yX3Rlc3Rp
bmcuT1BDT0RFX1RFWFQsCisgICAgICAgICAgICAgICAgICAgIHJzdjE9MSkKKyAgICAgICAgICAg
IGNsaWVudC5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX2JpbmFyeSgKKyAgICAgICAgICAgICAgICAg
ICAgJ1x4ZjJceDAwXHgxMVx4MDBceDAwJywKKyAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNs
aWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKKyAgICAgICAgICAgICAgICAgICAgcnN2MT0x
KQorCisgICAgICAgICAgICBjbGllbnQuc2VuZF9jbG9zZSgpCisgICAgICAgICAgICBjbGllbnQu
YXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQorCisgICAgICAgIGRlZiByZXNwb25zZV9jaGVja2VyKHBh
cmFtZXRlcik6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscygncGVybWVzc2FnZS1kZWZs
YXRlJywgcGFyYW1ldGVyLm5hbWUoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtd
LCBwYXJhbWV0ZXIuZ2V0X3BhcmFtZXRlcnMoKSkKKworICAgICAgICBzZWxmLl9ydW5fcGVybWVz
c2FnZV9kZWZsYXRlX3Rlc3QoCisgICAgICAgICAgICAgICAgWydwZXJtZXNzYWdlLWRlZmxhdGUn
XSwKKyAgICAgICAgICAgICAgICByZXNwb25zZV9jaGVja2VyLAorICAgICAgICAgICAgICAgIHRl
c3RfZnVuY3Rpb24pCisKKyAgICBkZWYgdGVzdF9lY2hvX3Blcm1lc3NhZ2VfZGVmbGF0ZV90d29f
bXNnc19zZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcihzZWxmKToKKyAgICAgICAgZGVmIHRlc3Rf
ZnVuY3Rpb24oY2xpZW50KToKKyAgICAgICAgICAgICMgRnJvbSB0aGUgZXhhbXBsZXMgaW4gdGhl
IHNwZWMuCisgICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5zZW5kX2RhdGEoCisgICAgICAgICAg
ICAgICAgICAgICdceGYyXHg0OFx4Y2RceGM5XHhjOVx4MDdceDAwJywKKyAgICAgICAgICAgICAg
ICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAorICAgICAgICAgICAgICAgICAg
ICByc3YxPTEpCisgICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5zZW5kX2RhdGEoCisgICAgICAg
ICAgICAgICAgICAgICdceGYyXHgwMFx4MTFceDAwXHgwMCcsCisgICAgICAgICAgICAgICAgICAg
IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKKyAgICAgICAgICAgICAgICAgICAgcnN2
MT0xKQorICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVfYmluYXJ5KAor
ICAgICAgICAgICAgICAgICAgICAnXHhmMlx4NDhceGNkXHhjOVx4YzlceDA3XHgwMCcsCisgICAg
ICAgICAgICAgICAgICAgIG9wY29kZT1jbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCisg
ICAgICAgICAgICAgICAgICAgIHJzdjE9MSkKKyAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLmFz
c2VydF9yZWNlaXZlX2JpbmFyeSgKKyAgICAgICAgICAgICAgICAgICAgJ1x4ZjJceDQ4XHhjZFx4
YzlceGM5XHgwN1x4MDAnLAorICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y2xpZW50X2Zvcl90
ZXN0aW5nLk9QQ09ERV9URVhULAorICAgICAgICAgICAgICAgICAgICByc3YxPTEpCisKKyAgICAg
ICAgICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKKyAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVj
ZWl2ZV9jbG9zZSgpCisKKyAgICAgICAgZGVmIHJlc3BvbnNlX2NoZWNrZXIocGFyYW1ldGVyKToK
KyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCBwYXJh
bWV0ZXIubmFtZSgpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoWygnc2VydmVyX25v
X2NvbnRleHRfdGFrZW92ZXInLCBOb25lKV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXJhbWV0ZXIuZ2V0X3BhcmFtZXRlcnMoKSkKKworICAgICAgICBzZWxmLl9ydW5fcGVybWVz
c2FnZV9kZWZsYXRlX3Rlc3QoCisgICAgICAgICAgICAgICAgWydwZXJtZXNzYWdlLWRlZmxhdGU7
IHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJ10sCisgICAgICAgICAgICAgICAgcmVzcG9uc2Vf
Y2hlY2tlciwKKyAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKQorCisgICAgZGVmIHRlc3Rf
ZWNob19wZXJtZXNzYWdlX2RlZmxhdGVfcHJlZmVyZW5jZShzZWxmKToKKyAgICAgICAgZGVmIHRl
c3RfZnVuY3Rpb24oY2xpZW50KToKKyAgICAgICAgICAgICMgRnJvbSB0aGUgZXhhbXBsZXMgaW4g
dGhlIHNwZWMuCisgICAgICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gJ1x4ZjJceDQ4XHhjZFx4
YzlceGM5XHgwN1x4MDAnCisgICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5zZW5kX2RhdGEoCisg
ICAgICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfaGVsbG8sCisgICAgICAgICAgICAgICAgICAg
IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKKyAgICAgICAgICAgICAgICAgICAgcnN2
MT0xKQorICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVfYmluYXJ5KAor
ICAgICAgICAgICAgICAgICAgICBjb21wcmVzc2VkX2hlbGxvLAorICAgICAgICAgICAgICAgICAg
ICBvcGNvZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAorICAgICAgICAgICAgICAg
ICAgICByc3YxPTEpCisKKyAgICAgICAgICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKKyAgICAgICAg
ICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgpCisKKyAgICAgICAgZGVmIHJlc3BvbnNl
X2NoZWNrZXIocGFyYW1ldGVyKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKCdwZXJt
ZXNzYWdlLWRlZmxhdGUnLCBwYXJhbWV0ZXIubmFtZSgpKQorICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoW10sIHBhcmFtZXRlci5nZXRfcGFyYW1ldGVycygpKQorCisgICAgICAgIHNlbGYu
X3J1bl9wZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgKKyAgICAgICAgICAgICAgICBbJ3Blcm1lc3Nh
Z2UtZGVmbGF0ZScsICdkZWZsYXRlLWZyYW1lJ10sCisgICAgICAgICAgICAgICAgcmVzcG9uc2Vf
Y2hlY2tlciwKKyAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKQorCisgICAgZGVmIHRlc3Rf
ZWNob19wZXJtZXNzYWdlX2RlZmxhdGVfd2l0aF9wYXJhbWV0ZXJzKHNlbGYpOgorICAgICAgICBk
ZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgorICAgICAgICAgICAgIyBGcm9tIHRoZSBleGFtcGxl
cyBpbiB0aGUgc3BlYy4KKyAgICAgICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSAnXHhmMlx4NDhc
eGNkXHhjOVx4YzlceDA3XHgwMCcKKyAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLnNlbmRfZGF0
YSgKKyAgICAgICAgICAgICAgICAgICAgY29tcHJlc3NlZF9oZWxsbywKKyAgICAgICAgICAgICAg
ICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAorICAgICAgICAgICAgICAgICAg
ICByc3YxPTEpCisgICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5hc3NlcnRfcmVjZWl2ZV9iaW5h
cnkoCisgICAgICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfaGVsbG8sCisgICAgICAgICAgICAg
ICAgICAgIG9wY29kZT1jbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCisgICAgICAgICAg
ICAgICAgICAgIHJzdjE9MSkKKworICAgICAgICAgICAgY2xpZW50LnNlbmRfY2xvc2UoKQorICAg
ICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKKworICAgICAgICBkZWYgcmVz
cG9uc2VfY2hlY2tlcihwYXJhbWV0ZXIpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
J3Blcm1lc3NhZ2UtZGVmbGF0ZScsIHBhcmFtZXRlci5uYW1lKCkpCisgICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyhbKCdzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzJywgJzEwJyksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKCdzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcicsIE5v
bmUpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlci5nZXRfcGFyYW1l
dGVycygpKQorCisgICAgICAgIHNlbGYuX3J1bl9wZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgKKyAg
ICAgICAgICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZTsgc2VydmVyX21heF93aW5kb3dfYml0
cz0xMDsgJworICAgICAgICAgICAgICAgICAnc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXInXSwK
KyAgICAgICAgICAgICAgICByZXNwb25zZV9jaGVja2VyLAorICAgICAgICAgICAgICAgIHRlc3Rf
ZnVuY3Rpb24pCisKKyAgICBkZWYgdGVzdF9lY2hvX3Blcm1lc3NhZ2VfZGVmbGF0ZV93aXRoX2Jh
ZF9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzKHNlbGYpOgorICAgICAgICBkZWYgdGVzdF9mdW5jdGlv
bihjbGllbnQpOgorICAgICAgICAgICAgY2xpZW50LnNlbmRfY2xvc2UoKQorICAgICAgICAgICAg
Y2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKKworICAgICAgICBkZWYgcmVzcG9uc2VfY2hl
Y2tlcihwYXJhbWV0ZXIpOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdVbmV4cGVjdGVk
IGFjY2VwdGFuY2Ugb2YgcGVybWVzc2FnZS1kZWZsYXRlJykKKworICAgICAgICBzZWxmLl9ydW5f
cGVybWVzc2FnZV9kZWZsYXRlX3Rlc3QoCisgICAgICAgICAgICAgICAgWydwZXJtZXNzYWdlLWRl
ZmxhdGU7IHNlcnZlcl9tYXhfd2luZG93X2JpdHM9MzAwMDAwMCddLAorICAgICAgICAgICAgICAg
IHJlc3BvbnNlX2NoZWNrZXIsCisgICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbikKKworICAg
IGRlZiB0ZXN0X2VjaG9fcGVybWVzc2FnZV9kZWZsYXRlX3dpdGhfYmFkX3NlcnZlcl9tYXhfd2lu
ZG93X2JpdHMoc2VsZik6CisgICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6CisgICAg
ICAgICAgICBjbGllbnQuc2VuZF9jbG9zZSgpCisgICAgICAgICAgICBjbGllbnQuYXNzZXJ0X3Jl
Y2VpdmVfY2xvc2UoKQorCisgICAgICAgIGRlZiByZXNwb25zZV9jaGVja2VyKHBhcmFtZXRlcik6
CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1VuZXhwZWN0ZWQgYWNjZXB0YW5jZSBvZiBw
ZXJtZXNzYWdlLWRlZmxhdGUnKQorCisgICAgICAgIHNlbGYuX3J1bl9wZXJtZXNzYWdlX2RlZmxh
dGVfdGVzdCgKKyAgICAgICAgICAgICAgICBbJ3Blcm1lc3NhZ2UtZGVmbGF0ZTsgc2VydmVyX21h
eF93aW5kb3dfYml0cz0zMDAwMDAwJ10sCisgICAgICAgICAgICAgICAgcmVzcG9uc2VfY2hlY2tl
ciwKKyAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKQorCisgICAgZGVmIHRlc3RfZWNob19w
ZXJtZXNzYWdlX2RlZmxhdGVfd2l0aF91bmRlZmluZWRfcGFyYW1ldGVyKHNlbGYpOgorICAgICAg
ICBkZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgorICAgICAgICAgICAgY2xpZW50LnNlbmRfY2xv
c2UoKQorICAgICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKKworICAgICAg
ICBkZWYgcmVzcG9uc2VfY2hlY2tlcihwYXJhbWV0ZXIpOgorICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKCdVbmV4cGVjdGVkIGFjY2VwdGFuY2Ugb2YgcGVybWVzc2FnZS1kZWZsYXRlJykKKwor
ICAgICAgICBzZWxmLl9ydW5fcGVybWVzc2FnZV9kZWZsYXRlX3Rlc3QoCisgICAgICAgICAgICAg
ICAgWydwZXJtZXNzYWdlLWRlZmxhdGU7IGZvbz1iYXInXSwKKyAgICAgICAgICAgICAgICByZXNw
b25zZV9jaGVja2VyLAorICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rpb24pCisKKyAgICBkZWYg
dGVzdF9lY2hvX2Nsb3NlX3dpdGhfY29kZV9hbmRfcmVhc29uKHNlbGYpOgorICAgICAgICBzZWxm
Ll9vcHRpb25zLnJlc291cmNlID0gJy9jbG9zZScKKyAgICAgICAgc2VsZi5fcnVuX2Nsb3NlX3dp
dGhfY29kZV9hbmRfcmVhc29uX3Rlc3QoCisgICAgICAgICAgICBfZWNob19jaGVja19wcm9jZWR1
cmVfd2l0aF9jb2RlX2FuZF9yZWFzb24sIDMzMzMsICdzdW5zdW5zdW5zdW4nKQorCisgICAgZGVm
IHRlc3RfZWNob19jbG9zZV93aXRoX2VtcHR5X2JvZHkoc2VsZik6CisgICAgICAgIHNlbGYuX29w
dGlvbnMucmVzb3VyY2UgPSAnL2Nsb3NlJworICAgICAgICBzZWxmLl9ydW5fY2xvc2Vfd2l0aF9j
b2RlX2FuZF9yZWFzb25fdGVzdCgKKyAgICAgICAgICAgIF9lY2hvX2NoZWNrX3Byb2NlZHVyZV93
aXRoX2NvZGVfYW5kX3JlYXNvbiwgTm9uZSwgJycpCisKKyAgICBkZWYgdGVzdF9tdXhfZWNobyhz
ZWxmKToKKyAgICAgICAgc2VsZi5fcnVuX211eF90ZXN0KF9tdXhfZWNob19jaGVja19wcm9jZWR1
cmUpCisKKyAgICBkZWYgdGVzdF9jbG9zZV9vbl9wcm90b2NvbF9lcnJvcihzZWxmKToKKyAgICAg
ICAgIiIiVGVzdHMgdGhhdCB0aGUgc2VydmVyIHNlbmRzIGEgY2xvc2UgZnJhbWUgd2l0aCBwcm90
b2NvbCBlcnJvciBzdGF0dXMKKyAgICAgICAgY29kZSB3aGVuIHRoZSBjbGllbnQgc2VuZHMgZGF0
YSB3aXRoIHNvbWUgcHJvdG9jb2wgZXJyb3IuCisgICAgICAgICIiIgorCisgICAgICAgIGRlZiB0
ZXN0X2Z1bmN0aW9uKGNsaWVudCk6CisgICAgICAgICAgICBjbGllbnQuY29ubmVjdCgpCisKKyAg
ICAgICAgICAgICMgSW50ZXJtZWRpYXRlIGZyYW1lIHdpdGhvdXQgYW55IHByZWNlZGluZyBzdGFy
dCBvZiBmcmFnbWVudGF0aW9uCisgICAgICAgICAgICAjIGZyYW1lLgorICAgICAgICAgICAgY2xp
ZW50LnNlbmRfZnJhbWVfb2ZfYXJiaXRyYXJ5X2J5dGVzKCdceDgwXHg4MCcsICcnKQorICAgICAg
ICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKAorICAgICAgICAgICAgICAgIGNsaWVu
dF9mb3JfdGVzdGluZy5TVEFUVVNfUFJPVE9DT0xfRVJST1IpCisKKyAgICAgICAgc2VsZi5fcnVu
X3Rlc3QodGVzdF9mdW5jdGlvbikKKworICAgIGRlZiB0ZXN0X2Nsb3NlX29uX3Vuc3VwcG9ydGVk
X2ZyYW1lKHNlbGYpOgorICAgICAgICAiIiJUZXN0cyB0aGF0IHRoZSBzZXJ2ZXIgc2VuZHMgYSBj
bG9zZSBmcmFtZSB3aXRoIHVuc3VwcG9ydGVkIG9wZXJhdGlvbgorICAgICAgICBzdGF0dXMgY29k
ZSB3aGVuIHRoZSBjbGllbnQgc2VuZHMgZGF0YSBhc2tpbmcgc29tZSBvcGVyYXRpb24gdGhhdCBp
cworICAgICAgICBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBzZXJ2ZXIuCisgICAgICAgICIiIgorCisg
ICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6CisgICAgICAgICAgICBjbGllbnQuY29u
bmVjdCgpCisKKyAgICAgICAgICAgICMgVGV4dCBmcmFtZSB3aXRoIFJTVjMgYml0IHJhaXNlZC4K
KyAgICAgICAgICAgIGNsaWVudC5zZW5kX2ZyYW1lX29mX2FyYml0cmFyeV9ieXRlcygnXHg5MVx4
ODAnLCAnJykKKyAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgKKyAgICAg
ICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuU1RBVFVTX1VOU1VQUE9SVEVEX0RBVEEpCisK
KyAgICAgICAgc2VsZi5fcnVuX3Rlc3QodGVzdF9mdW5jdGlvbikKKworICAgIGRlZiB0ZXN0X2Ns
b3NlX29uX2ludmFsaWRfZnJhbWUoc2VsZik6CisgICAgICAgICIiIlRlc3RzIHRoYXQgdGhlIHNl
cnZlciBzZW5kcyBhIGNsb3NlIGZyYW1lIHdpdGggaW52YWxpZCBmcmFtZSBwYXlsb2FkCisgICAg
ICAgIGRhdGEgc3RhdHVzIGNvZGUgd2hlbiB0aGUgY2xpZW50IHNlbmRzIGFuIGludmFsaWQgZnJh
bWUgbGlrZSBjb250YWluaW5nCisgICAgICAgIGludmFsaWQgVVRGLTggY2hhcmFjdGVyLgorICAg
ICAgICAiIiIKKworICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgorICAgICAgICAg
ICAgY2xpZW50LmNvbm5lY3QoKQorCisgICAgICAgICAgICAjIFRleHQgZnJhbWUgd2l0aCBpbnZh
bGlkIFVURi04IHN0cmluZy4KKyAgICAgICAgICAgIGNsaWVudC5zZW5kX21lc3NhZ2UoJ1x4ODAn
LCByYXc9VHJ1ZSkKKyAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgKKyAg
ICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuU1RBVFVTX0lOVkFMSURfRlJBTUVfUEFZ
TE9BRF9EQVRBKQorCisgICAgICAgIHNlbGYuX3J1bl90ZXN0KHRlc3RfZnVuY3Rpb24pCisKKyAg
ICBkZWYgdGVzdF9jbG9zZV9vbl9pbnRlcm5hbF9lbmRwb2ludF9lcnJvcihzZWxmKToKKyAgICAg
ICAgIiIiVGVzdHMgdGhhdCB0aGUgc2VydmVyIHNlbmRzIGEgY2xvc2UgZnJhbWUgd2l0aCBpbnRl
cm5hbCBlbmRwb2ludAorICAgICAgICBlcnJvciBzdGF0dXMgY29kZSB3aGVuIHRoZSBoYW5kbGVy
IGRvZXMgYmFkIG9wZXJhdGlvbi4KKyAgICAgICAgIiIiCisKKyAgICAgICAgc2VsZi5fb3B0aW9u
cy5yZXNvdXJjZSA9ICcvaW50ZXJuYWxfZXJyb3InCisKKyAgICAgICAgZGVmIHRlc3RfZnVuY3Rp
b24oY2xpZW50KToKKyAgICAgICAgICAgIGNsaWVudC5jb25uZWN0KCkKKyAgICAgICAgICAgIGNs
aWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgKKyAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rl
c3RpbmcuU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SKQorCisgICAgICAgIHNlbGYuX3J1
bl90ZXN0KHRlc3RfZnVuY3Rpb24pCisKKyAgICAjIFRPRE8odG95b3NoaW0pOiBBZGQgdGVzdHMg
dG8gdmVyaWZ5IGludmFsaWQgYWJzb2x1dGUgdXJpIGhhbmRsaW5nIGxpa2UKKyAgICAjIGhvc3Qg
dW5tYXRjaCwgcG9ydCB1bm1hdGNoIGFuZCBpbnZhbGlkIHBvcnQgZGVzY3JpcHRpb24gKCc6JyB3
aXRob3V0IHBvcnQKKyAgICAjIG51bWJlcikuCisKKyAgICBkZWYgdGVzdF9hYnNvbHV0ZV91cmko
c2VsZik6CisgICAgICAgICIiIlRlc3RzIGFic29sdXRlIHVyaSByZXF1ZXN0LiIiIgorCisgICAg
ICAgIG9wdGlvbnMgPSBzZWxmLl9vcHRpb25zCisgICAgICAgIG9wdGlvbnMucmVzb3VyY2UgPSAn
d3M6Ly9sb2NhbGhvc3Q6JWQvZWNobycgJSBvcHRpb25zLnNlcnZlcl9wb3J0CisgICAgICAgIHNl
bGYuX3J1bl90ZXN0X3dpdGhfY2xpZW50X29wdGlvbnMoX2VjaG9fY2hlY2tfcHJvY2VkdXJlLCBv
cHRpb25zKQorCisgICAgZGVmIHRlc3Rfb3JpZ2luX2NoZWNrKHNlbGYpOgorICAgICAgICAiIiJU
ZXN0cyBodHRwIGZhbGxiYWNrIG9uIG9yaWdpbiBjaGVjayBmYWlsLiIiIgorCisgICAgICAgIG9w
dGlvbnMgPSBzZWxmLl9vcHRpb25zCisgICAgICAgIG9wdGlvbnMucmVzb3VyY2UgPSAnL29yaWdp
bl9jaGVjaycKKyAgICAgICAgIyBTZXJ2ZXIgc2hvd3Mgd2FybmluZyBtZXNzYWdlIGZvciBodHRw
IDQwMyBmYWxsYmFjay4gVGhpcyB3YXJuaW5nCisgICAgICAgICMgbWVzc2FnZSBpcyBjb25mdXNp
bmcuIEZvbGxvd2luZyBwaXBlIGRpc3Bvc2VzIHdhcm5pbmcgbWVzc2FnZXMuCisgICAgICAgIHNl
bGYuc2VydmVyX3N0ZGVyciA9IHN1YnByb2Nlc3MuUElQRQorICAgICAgICBzZWxmLl9ydW5faHR0
cF9mYWxsYmFja190ZXN0KG9wdGlvbnMsIDQwMykKKworICAgIGRlZiB0ZXN0X3ZlcnNpb25fY2hl
Y2soc2VsZik6CisgICAgICAgICIiIlRlc3RzIGh0dHAgZmFsbGJhY2sgb24gdmVyc2lvbiBjaGVj
ayBmYWlsLiIiIgorCisgICAgICAgIG9wdGlvbnMgPSBzZWxmLl9vcHRpb25zCisgICAgICAgIG9w
dGlvbnMudmVyc2lvbiA9IDk5CisgICAgICAgIHNlbGYuX3J1bl9odHRwX2ZhbGxiYWNrX3Rlc3Qo
b3B0aW9ucywgNDAwKQorCisKK2NsYXNzIEVuZFRvRW5kSHlCaTAwVGVzdChFbmRUb0VuZFRlc3RC
YXNlKToKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIEVuZFRvRW5kVGVzdEJhc2Uuc2V0
VXAoc2VsZikKKworICAgIGRlZiBfcnVuX3Rlc3Qoc2VsZiwgdGVzdF9mdW5jdGlvbik6CisgICAg
ICAgIHNlcnZlciA9IHNlbGYuX3J1bl9zZXJ2ZXIoKQorICAgICAgICB0cnk6CisgICAgICAgICAg
ICB0aW1lLnNsZWVwKF9TRVJWRVJfV0FSTVVQX0lOX1NFQykKKworICAgICAgICAgICAgY2xpZW50
ID0gY2xpZW50X2Zvcl90ZXN0aW5nLmNyZWF0ZV9jbGllbnRfaHliaTAwKHNlbGYuX29wdGlvbnMp
CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbihjbGllbnQp
CisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIGNsaWVudC5jbG9zZV9zb2Nr
ZXQoKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5fa2lsbF9wcm9jZXNzKHNl
cnZlci5waWQpCisKKyAgICBkZWYgdGVzdF9lY2hvKHNlbGYpOgorICAgICAgICBzZWxmLl9ydW5f
dGVzdChfZWNob19jaGVja19wcm9jZWR1cmUpCisKKyAgICBkZWYgdGVzdF9lY2hvX3NlcnZlcl9j
bG9zZShzZWxmKToKKyAgICAgICAgc2VsZi5fcnVuX3Rlc3QoX2VjaG9fY2hlY2tfcHJvY2VkdXJl
X3dpdGhfZ29vZGJ5ZSkKKworCitjbGFzcyBFbmRUb0VuZFRlc3RXaXRoRWNob0NsaWVudChFbmRU
b0VuZFRlc3RCYXNlKToKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIEVuZFRvRW5kVGVz
dEJhc2Uuc2V0VXAoc2VsZikKKworICAgIGRlZiBfY2hlY2tfZXhhbXBsZV9lY2hvX2NsaWVudF9y
ZXN1bHQoCisgICAgICAgIHNlbGYsIGV4cGVjdGVkLCBzdGRvdXRkYXRhLCBzdGRlcnJkYXRhKToK
KyAgICAgICAgYWN0dWFsID0gc3Rkb3V0ZGF0YS5kZWNvZGUoInV0Zi04IikKKyAgICAgICAgaWYg
YWN0dWFsICE9IGV4cGVjdGVkOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdVbmV4cGVj
dGVkIHJlc3VsdCBvbiBleGFtcGxlIGVjaG8gY2xpZW50OiAnCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJyVyIChleHBlY3RlZCkgdnMgJXIgKGFjdHVhbCknICUKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoZXhwZWN0ZWQsIGFjdHVhbCkpCisgICAgICAgIGlmIHN0ZGVycmRhdGEg
aXMgbm90IE5vbmU6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1VuZXhwZWN0ZWQgZXJy
b3IgbWVzc2FnZSBvbiBleGFtcGxlIGVjaG8gJworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdjbGllbnQ6ICVyJyAlIHN0ZGVycmRhdGEpCisKKyAgICBkZWYgdGVzdF9leGFtcGxlX2VjaG9f
Y2xpZW50KHNlbGYpOgorICAgICAgICAiIiJUZXN0cyB0aGF0IHRoZSBlY2hvX2NsaWVudC5weSBl
eGFtcGxlIGNhbiB0YWxrIHdpdGggdGhlIHNlcnZlci4iIiIKKworICAgICAgICBzZXJ2ZXIgPSBz
ZWxmLl9ydW5fc2VydmVyKCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdGltZS5zbGVlcChf
U0VSVkVSX1dBUk1VUF9JTl9TRUMpCisKKyAgICAgICAgICAgIGNsaWVudF9jb21tYW5kID0gb3Mu
cGF0aC5qb2luKAorICAgICAgICAgICAgICAgIHNlbGYudG9wX2RpciwgJ2V4YW1wbGUnLCAnZWNo
b19jbGllbnQucHknKQorCisgICAgICAgICAgICAjIEV4cGVjdGVkIG91dHB1dCBmb3IgdGhlIGRl
ZmF1bHQgbWVzc2FnZXMuCisgICAgICAgICAgICBkZWZhdWx0X2V4cGVjdGF0aW9uID0gKCdTZW5k
OiBIZWxsb1xuJyAnUmVjdjogSGVsbG9cbicKKyAgICAgICAgICAgICAgICB1J1NlbmQ6IFx1NjVl
NVx1NjcyY1xuJyB1J1JlY3Y6IFx1NjVlNVx1NjcyY1xuJworICAgICAgICAgICAgICAgICdTZW5k
IGNsb3NlXG4nICdSZWN2IGFja1xuJykKKworICAgICAgICAgICAgYXJncyA9IFtjbGllbnRfY29t
bWFuZCwKKyAgICAgICAgICAgICAgICAgICAgJy1wJywgc3RyKHNlbGYuX29wdGlvbnMuc2VydmVy
X3BvcnQpXQorICAgICAgICAgICAgY2xpZW50ID0gc2VsZi5fcnVuX3B5dGhvbl9jb21tYW5kKGFy
Z3MsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpCisgICAgICAgICAgICBzdGRvdXRkYXRhLCBzdGRl
cnJkYXRhID0gY2xpZW50LmNvbW11bmljYXRlKCkKKyAgICAgICAgICAgIHNlbGYuX2NoZWNrX2V4
YW1wbGVfZWNob19jbGllbnRfcmVzdWx0KAorICAgICAgICAgICAgICAgICAgICBkZWZhdWx0X2V4
cGVjdGF0aW9uLCBzdGRvdXRkYXRhLCBzdGRlcnJkYXRhKQorCisgICAgICAgICAgICAjIFByb2Nl
c3MgYSBiaWcgbWVzc2FnZSBmb3Igd2hpY2ggZXh0ZW5kZWQgcGF5bG9hZCBsZW5ndGggaXMgdXNl
ZC4KKyAgICAgICAgICAgICMgVG8gaGFuZGxlIGV4dGVuZGVkIHBheWxvYWQgbGVuZ3RoLCB3c192
ZXJzaW9uIGF0dHJpYnV0ZSB3aWxsIGJlCisgICAgICAgICAgICAjIGFjY2Vzc2VkLiBUaGlzIHRl
c3QgY2hlY2tzIHRoYXQgd3NfdmVyc2lvbiBpcyBjb3JyZWN0bHkgc2V0LgorICAgICAgICAgICAg
YmlnX21lc3NhZ2UgPSAnYScgKiAxMDI0CisgICAgICAgICAgICBhcmdzID0gW2NsaWVudF9jb21t
YW5kLAorICAgICAgICAgICAgICAgICAgICAnLXAnLCBzdHIoc2VsZi5fb3B0aW9ucy5zZXJ2ZXJf
cG9ydCksCisgICAgICAgICAgICAgICAgICAgICctbScsIGJpZ19tZXNzYWdlXQorICAgICAgICAg
ICAgY2xpZW50ID0gc2VsZi5fcnVuX3B5dGhvbl9jb21tYW5kKGFyZ3MsIHN0ZG91dD1zdWJwcm9j
ZXNzLlBJUEUpCisgICAgICAgICAgICBzdGRvdXRkYXRhLCBzdGRlcnJkYXRhID0gY2xpZW50LmNv
bW11bmljYXRlKCkKKyAgICAgICAgICAgIGV4cGVjdGVkID0gKCdTZW5kOiAlc1xuUmVjdjogJXNc
blNlbmQgY2xvc2VcblJlY3YgYWNrXG4nICUKKyAgICAgICAgICAgICAgICAgICAgICAgIChiaWdf
bWVzc2FnZSwgYmlnX21lc3NhZ2UpKQorICAgICAgICAgICAgc2VsZi5fY2hlY2tfZXhhbXBsZV9l
Y2hvX2NsaWVudF9yZXN1bHQoCisgICAgICAgICAgICAgICAgZXhwZWN0ZWQsIHN0ZG91dGRhdGEs
IHN0ZGVycmRhdGEpCisKKyAgICAgICAgICAgICMgVGVzdCB0aGUgcGVybWVzc2FnZS1kZWZsYXRl
IGV4dGVuc2lvbi4KKyAgICAgICAgICAgIGFyZ3MgPSBbY2xpZW50X2NvbW1hbmQsCisgICAgICAg
ICAgICAgICAgICAgICctcCcsIHN0cihzZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0KSwKKyAgICAg
ICAgICAgICAgICAgICAgJy0tdXNlX3Blcm1lc3NhZ2VfZGVmbGF0ZSddCisgICAgICAgICAgICBj
bGllbnQgPSBzZWxmLl9ydW5fcHl0aG9uX2NvbW1hbmQoYXJncywgc3Rkb3V0PXN1YnByb2Nlc3Mu
UElQRSkKKyAgICAgICAgICAgIHN0ZG91dGRhdGEsIHN0ZGVycmRhdGEgPSBjbGllbnQuY29tbXVu
aWNhdGUoKQorICAgICAgICAgICAgc2VsZi5fY2hlY2tfZXhhbXBsZV9lY2hvX2NsaWVudF9yZXN1
bHQoCisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRfZXhwZWN0YXRpb24sIHN0ZG91dGRhdGEs
IHN0ZGVycmRhdGEpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLl9raWxsX3By
b2Nlc3Moc2VydmVyLnBpZCkKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHVu
aXR0ZXN0Lm1haW4oKQorCisKKyMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90
ZXN0L3Rlc3RfZXh0ZW5zaW9ucy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2V4dGVuc2lvbnMucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTRhNDM4NDc5MmJmZmQwYTIwZDJlNzU0MzNkYzI5MDljZjkzZGU2ZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2V4dGVuc2lvbnMucHkKQEAgLTAsMCArMSwyNzkg
QEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIElu
Yy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
IyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKworIiIiVGVz
dHMgZm9yIGV4dGVuc2lvbnMgbW9kdWxlLiIiIgorCisKK2ltcG9ydCB1bml0dGVzdAoraW1wb3J0
IHpsaWIKKworaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRl
IG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCisKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBj
b21tb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBleHRlbnNpb25zCisKKworY2xhc3Mg
RXh0ZW5zaW9uc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICIiIkEgdW5pdHRlc3QgZm9y
IG5vbi1jbGFzcyBtZXRob2RzIGluIGV4dGVuc2lvbnMucHkiIiIKKworICAgIGRlZiB0ZXN0X3Bh
cnNlX3dpbmRvd19iaXRzKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVy
cm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgTm9uZSkKKyAgICAgICAgc2VsZi5h
c3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICdm
b29iYXInKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25z
Ll9wYXJzZV93aW5kb3dfYml0cywgJyA4ICcpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZh
bHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnYThhJykKKyAgICAgICAg
c2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2Jp
dHMsICcwMDAwMCcpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVu
c2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnMDAwMDgnKQorICAgICAgICBzZWxmLmFzc2VydFJh
aXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJzB4OCcpCisK
KyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vf
d2luZG93X2JpdHMsICc5LjUnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9y
LCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJzguMCcpCisKKyAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnOCcpCisgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJzE1JykKKworICAg
ICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5k
b3dfYml0cywgJy04JykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0
ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICcwJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlz
ZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICc3JykKKworICAg
ICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5k
b3dfYml0cywgJzE2JykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCisgICAgICAgICAgICAg
ICAgVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2JpdHMsICcxMDAwMDAwMCcp
CisKKworY2xhc3MgRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yUGFyc2luZ1Rlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgorICAgICIiIkEgdW5pdHRlc3QgZm9yIGNoZWNraW5nIHRoYXQgRGVm
bGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yIHBhcnNlcyBnaXZlbgorICAgIGV4dGVuc2lvbiBw
YXJhbWV0ZXIgY29ycmVjdGx5LgorICAgICIiIgorCisgICAgZGVmIHRlc3RfcmVnaXN0cnkoc2Vs
Zik6CisgICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuZ2V0X2V4dGVuc2lvbl9wcm9jZXNz
b3IoCisgICAgICAgICAgICAgICAgY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcignZGVmbGF0ZS1m
cmFtZScpKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UocHJvY2Vzc29yLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Q
cm9jZXNzb3IpCisKKyAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5nZXRfZXh0ZW5zaW9u
X3Byb2Nlc3NvcigKKyAgICAgICAgICAgICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCd4
LXdlYmtpdC1kZWZsYXRlLWZyYW1lJykpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShw
cm9jZXNzb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25zLkRlZmxh
dGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcikKKworICAgIGRlZiB0ZXN0X21pbmltYWxfb2ZmZXIo
c2VsZik6CisgICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuRGVmbGF0ZUZyYW1lRXh0ZW5z
aW9uUHJvY2Vzc29yKAorICAgICAgICAgICAgY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVy
ZnJhbWUtZGVmbGF0ZScpKQorCisgICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRl
bnNpb25fcmVzcG9uc2UoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJmcmFtZS1kZWZs
YXRlJywgcmVzcG9uc2UubmFtZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihy
ZXNwb25zZS5nZXRfcGFyYW1ldGVycygpKSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHps
aWIuTUFYX1dCSVRTLAorICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3Nvci5fcmZjMTk3
OV9kZWZsYXRlci5fd2luZG93X2JpdHMpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocHJvY2Vz
c29yLl9yZmMxOTc5X2RlZmxhdGVyLl9ub19jb250ZXh0X3Rha2VvdmVyKQorCisgICAgZGVmIHRl
c3Rfb2ZmZXJfd2l0aF9tYXhfd2luZG93X2JpdHMoc2VsZik6CisgICAgICAgIHBhcmFtZXRlciA9
IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3BlcmZyYW1lLWRlZmxhdGUnKQorICAgICAgICBw
YXJhbWV0ZXIuYWRkX3BhcmFtZXRlcignbWF4X3dpbmRvd19iaXRzJywgJzEwJykKKyAgICAgICAg
cHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IocGFy
YW1ldGVyKQorCisgICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVz
cG9uc2UoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJmcmFtZS1kZWZsYXRlJywgcmVz
cG9uc2UubmFtZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihyZXNwb25zZS5n
ZXRfcGFyYW1ldGVycygpKSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEwLCBwcm9jZXNz
b3IuX3JmYzE5NzlfZGVmbGF0ZXIuX3dpbmRvd19iaXRzKQorCisgICAgZGVmIHRlc3Rfb2ZmZXJf
d2l0aF9vdXRfb2ZfcmFuZ2VfbWF4X3dpbmRvd19iaXRzKHNlbGYpOgorICAgICAgICBwYXJhbWV0
ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJmcmFtZS1kZWZsYXRlJykKKyAgICAg
ICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ21heF93aW5kb3dfYml0cycsICcwJykKKyAgICAg
ICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3Io
cGFyYW1ldGVyKQorCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHByb2Nlc3Nvci5nZXRfZXh0
ZW5zaW9uX3Jlc3BvbnNlKCkpCisKKyAgICBkZWYgdGVzdF9vZmZlcl93aXRoX21heF93aW5kb3df
Yml0c193aXRob3V0X3ZhbHVlKHNlbGYpOgorICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0
ZW5zaW9uUGFyYW1ldGVyKCdwZXJmcmFtZS1kZWZsYXRlJykKKyAgICAgICAgcGFyYW1ldGVyLmFk
ZF9wYXJhbWV0ZXIoJ21heF93aW5kb3dfYml0cycsIE5vbmUpCisgICAgICAgIHByb2Nlc3NvciA9
IGV4dGVuc2lvbnMuRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKKwor
ICAgICAgICBzZWxmLmFzc2VydElzTm9uZShwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25z
ZSgpKQorCisgICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF9ub19jb250ZXh0X3Rha2VvdmVyKHNlbGYp
OgorICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJmcmFt
ZS1kZWZsYXRlJykKKyAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ25vX2NvbnRleHRf
dGFrZW92ZXInLCBOb25lKQorICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLkRlZmxhdGVG
cmFtZUV4dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0ZXIpCisKKyAgICAgICAgcmVzcG9uc2UgPSBw
cm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ3BlcmZyYW1lLWRlZmxhdGUnLCByZXNwb25zZS5uYW1lKCkpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoMCwgbGVuKHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJzKCkpKQorCisgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShwcm9jZXNzb3IuX3JmYzE5NzlfZGVmbGF0ZXIuX25vX2NvbnRleHRfdGFr
ZW92ZXIpCisKKyAgICBkZWYgdGVzdF9vZmZlcl93aXRoX25vX2NvbnRleHRfdGFrZW92ZXJfd2l0
aF92YWx1ZShzZWxmKToKKyAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFt
ZXRlcigncGVyZnJhbWUtZGVmbGF0ZScpCisgICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1ldGVy
KCdub19jb250ZXh0X3Rha2VvdmVyJywgJ2Zvb2JhcicpCisgICAgICAgIHByb2Nlc3NvciA9IGV4
dGVuc2lvbnMuRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKKworICAg
ICAgICBzZWxmLmFzc2VydElzTm9uZShwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgp
KQorCisgICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF91bmtub3duX3BhcmFtZXRlcihzZWxmKToKKyAg
ICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVyZnJhbWUtZGVm
bGF0ZScpCisgICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1ldGVyKCdmb28nLCAnYmFyJykKKyAg
ICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNz
b3IocGFyYW1ldGVyKQorCisgICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNp
b25fcmVzcG9uc2UoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJmcmFtZS1kZWZsYXRl
JywgcmVzcG9uc2UubmFtZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihyZXNw
b25zZS5nZXRfcGFyYW1ldGVycygpKSkKKworCitjbGFzcyBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVu
c2lvblByb2Nlc3NvclBhcnNpbmdUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJBIHVu
aXR0ZXN0IGZvciBjaGVja2luZyB0aGF0IFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vz
c29yIHBhcnNlcworICAgIGdpdmVuIGV4dGVuc2lvbiBwYXJhbWV0ZXIgY29ycmVjdGx5LgorICAg
ICIiIgorCisgICAgZGVmIHRlc3RfcmVnaXN0cnkoc2VsZik6CisgICAgICAgIHByb2Nlc3NvciA9
IGV4dGVuc2lvbnMuZ2V0X2V4dGVuc2lvbl9wcm9jZXNzb3IoCisgICAgICAgICAgICAgICAgY29t
bW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykpCisgICAgICAgIHNl
bGYuYXNzZXJ0SXNJbnN0YW5jZShwcm9jZXNzb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBleHRlbnNpb25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKQorCisg
ICAgZGVmIHRlc3RfbWluaW1hbF9vZmZlcihzZWxmKToKKyAgICAgICAgcHJvY2Vzc29yID0gZXh0
ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcigKKyAgICAgICAgICAg
IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpKQorCisgICAg
ICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCByZXNwb25zZS5uYW1lKCkp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJz
KCkpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoemxpYi5NQVhfV0JJVFMsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgcHJvY2Vzc29yLl9yZmMxOTc5X2RlZmxhdGVyLl93aW5kb3dfYml0
cykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShwcm9jZXNzb3IuX3JmYzE5NzlfZGVmbGF0ZXIu
X25vX2NvbnRleHRfdGFrZW92ZXIpCisKKyAgICBkZWYgdGVzdF9vZmZlcl93aXRoX21heF93aW5k
b3dfYml0cyhzZWxmKToKKyAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFt
ZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykKKyAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0
ZXIoJ3NlcnZlcl9tYXhfd2luZG93X2JpdHMnLCAnMTAnKQorICAgICAgICBwcm9jZXNzb3IgPSBl
eHRlbnNpb25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikK
KworICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgncGVybWVzc2FnZS1kZWZsYXRlJywgcmVzcG9uc2Uu
bmFtZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsoJ3NlcnZlcl9tYXhfd2luZG93X2Jp
dHMnLCAnMTAnKV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuZ2V0X3BhcmFt
ZXRlcnMoKSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEwLCBwcm9jZXNzb3IuX3JmYzE5
NzlfZGVmbGF0ZXIuX3dpbmRvd19iaXRzKQorCisgICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF9vdXRf
b2ZfcmFuZ2VfbWF4X3dpbmRvd19iaXRzKHNlbGYpOgorICAgICAgICBwYXJhbWV0ZXIgPSBjb21t
b24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJtZXNzYWdlLWRlZmxhdGUnKQorICAgICAgICBwYXJh
bWV0ZXIuYWRkX3BhcmFtZXRlcignc2VydmVyX21heF93aW5kb3dfYml0cycsICcwJykKKyAgICAg
ICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nl
c3NvcihwYXJhbWV0ZXIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocHJvY2Vzc29yLmdl
dF9leHRlbnNpb25fcmVzcG9uc2UoKSkKKworICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfbWF4X3dp
bmRvd19iaXRzX3dpdGhvdXRfdmFsdWUoc2VsZik6CisgICAgICAgIHBhcmFtZXRlciA9IGNvbW1v
bi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpCisgICAgICAgIHBhcmFt
ZXRlci5hZGRfcGFyYW1ldGVyKCdzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzJywgTm9uZSkKKyAgICAg
ICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nl
c3NvcihwYXJhbWV0ZXIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocHJvY2Vzc29yLmdl
dF9leHRlbnNpb25fcmVzcG9uc2UoKSkKKworICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfbm9fY29u
dGV4dF90YWtlb3ZlcihzZWxmKToKKyAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lv
blBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykKKyAgICAgICAgcGFyYW1ldGVyLmFkZF9w
YXJhbWV0ZXIoJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJywgTm9uZSkKKyAgICAgICAgcHJv
Y2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3Nvcihw
YXJhbWV0ZXIpCisKKyAgICAgICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9y
ZXNwb25zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScs
IHJlc3BvbnNlLm5hbWUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbKCdzZXJ2ZXJfbm9f
Y29udGV4dF90YWtlb3ZlcicsIE5vbmUpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXNw
b25zZS5nZXRfcGFyYW1ldGVycygpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwcm9jZXNz
b3IuX3JmYzE5NzlfZGVmbGF0ZXIuX25vX2NvbnRleHRfdGFrZW92ZXIpCisKKyAgICBkZWYgdGVz
dF9vZmZlcl93aXRoX25vX2NvbnRleHRfdGFrZW92ZXJfd2l0aF92YWx1ZShzZWxmKToKKyAgICAg
ICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZs
YXRlJykKKyAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ3NlcnZlcl9ub19jb250ZXh0
X3Rha2VvdmVyJywgJ2Zvb2JhcicpCisgICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuUGVy
TWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQorCisgICAgICAgIHNl
bGYuYXNzZXJ0SXNOb25lKHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCisKKyAg
ICBkZWYgdGVzdF9vZmZlcl93aXRoX3Vua25vd25fcGFyYW1ldGVyKHNlbGYpOgorICAgICAgICBw
YXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJtZXNzYWdlLWRlZmxhdGUn
KQorICAgICAgICBwYXJhbWV0ZXIuYWRkX3BhcmFtZXRlcignZm9vJywgJ2JhcicpCisgICAgICAg
IHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNz
b3IocGFyYW1ldGVyKQorCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHByb2Nlc3Nvci5nZXRf
ZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCisKKworY2xhc3MgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNp
b25Qcm9jZXNzb3JCdWlsZGluZ1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICIiIkEgdW5p
dHRlc3QgZm9yIGNoZWNraW5nIHRoYXQgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNz
b3IgYnVpbGRzCisgICAgYSByZXNwb25zZSBiYXNlZCBvbiBzcGVjaWZpZWQgb3B0aW9ucyBjb3Jy
ZWN0bHkuCisgICAgIiIiCisKKyAgICBkZWYgdGVzdF9yZXNwb25zZV93aXRoX21heF93aW5kb3df
Yml0cyhzZWxmKToKKyAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRl
cigncGVybWVzc2FnZS1kZWZsYXRlJykKKyAgICAgICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIo
J2NsaWVudF9tYXhfd2luZG93X2JpdHMnLCBOb25lKQorICAgICAgICBwcm9jZXNzb3IgPSBleHRl
bnNpb25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKKyAg
ICAgICAgcHJvY2Vzc29yLnNldF9jbGllbnRfbWF4X3dpbmRvd19iaXRzKDEwKQorCisgICAgICAg
IHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCByZXNwb25zZS5uYW1lKCkpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWygnY2xpZW50X21heF93aW5kb3dfYml0cycsICcxMCcp
XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5nZXRfcGFyYW1ldGVycygpKQor
CisgICAgZGVmIHRlc3RfcmVzcG9uc2Vfd2l0aF9tYXhfd2luZG93X2JpdHNfd2l0aG91dF9jbGll
bnRfcGVybWlzc2lvbihzZWxmKToKKyAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJN
ZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcigKKyAgICAgICAgICAgIGNvbW1vbi5FeHRl
bnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpKQorICAgICAgICBwcm9jZXNzb3Iu
c2V0X2NsaWVudF9tYXhfd2luZG93X2JpdHMoMTApCisKKyAgICAgICAgcmVzcG9uc2UgPSBwcm9j
ZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25l
KHJlc3BvbnNlKQorCisgICAgZGVmIHRlc3RfcmVzcG9uc2Vfd2l0aF90cnVlX2Zvcl9ub19jb250
ZXh0X3Rha2VvdmVyKHNlbGYpOgorICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLlBlck1l
c3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKAorICAgICAgICAgICAgY29tbW9uLkV4dGVu
c2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykpCisKKyAgICAgICAgcHJvY2Vzc29y
LnNldF9jbGllbnRfbm9fY29udGV4dF90YWtlb3ZlcihUcnVlKQorCisgICAgICAgIHJlc3BvbnNl
ID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCByZXNwb25zZS5uYW1lKCkpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoWygnY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXInLCBOb25lKV0sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMoKSkKKworICAg
IGRlZiB0ZXN0X3Jlc3BvbnNlX3dpdGhfZmFsc2VfZm9yX25vX2NvbnRleHRfdGFrZW92ZXIoc2Vs
Zik6CisgICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuUGVyTWVzc2FnZURlZmxhdGVFeHRl
bnNpb25Qcm9jZXNzb3IoCisgICAgICAgICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdw
ZXJtZXNzYWdlLWRlZmxhdGUnKSkKKworICAgICAgICBwcm9jZXNzb3Iuc2V0X2NsaWVudF9ub19j
b250ZXh0X3Rha2VvdmVyKEZhbHNlKQorCisgICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdl
dF9leHRlbnNpb25fcmVzcG9uc2UoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJtZXNz
YWdlLWRlZmxhdGUnLCByZXNwb25zZS5uYW1lKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
MCwgbGVuKHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJzKCkpKQorCisKK2lmIF9fbmFtZV9fID09ICdf
X21haW5fXyc6CisgICAgdW5pdHRlc3QubWFpbigpCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9oYW5kc2hha2UucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9o
YW5kc2hha2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWE3OGFjMDVlNTg3MWQxNTlhNjdmN2U0MTZmMzAyNzAw
ZmEwZjkyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2hhbmRzaGFrZS5weQpA
QCAtMCwwICsxLDE4OCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAy
MDEyLCBHb29nbGUgSW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisj
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
IyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworCisiIiJUZXN0cyBmb3IgaGFuZHNoYWtlLl9iYXNlIG1vZHVsZS4iIiIKKworCitpbXBv
cnQgdW5pdHRlc3QKKworaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8g
bG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCisKK2Zyb20gbW9kX3B5d2Vic29ja2V0LmNv
bW1vbiBpbXBvcnQgRXh0ZW5zaW9uUGFyYW1ldGVyCitmcm9tIG1vZF9weXdlYnNvY2tldC5jb21t
b24gaW1wb3J0IEV4dGVuc2lvblBhcnNpbmdFeGNlcHRpb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0
LmNvbW1vbiBpbXBvcnQgZm9ybWF0X2V4dGVuc2lvbnMKK2Zyb20gbW9kX3B5d2Vic29ja2V0LmNv
bW1vbiBpbXBvcnQgcGFyc2VfZXh0ZW5zaW9ucworZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNo
YWtlLl9iYXNlIGltcG9ydCBIYW5kc2hha2VFeGNlcHRpb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0
LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgdmFsaWRhdGVfc3VicHJvdG9jb2wKKworCitjbGFzcyBW
YWxpZGF0ZVN1YnByb3RvY29sVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgIiIiQSB1bml0
dGVzdCBmb3IgdmFsaWRhdGVfc3VicHJvdG9jb2wgbWV0aG9kLiIiIgorCisgICAgZGVmIHRlc3Rf
dmFsaWRhdGVfc3VicHJvdG9jb2woc2VsZik6CisgICAgICAgICMgU2hvdWxkIHN1Y2NlZWQuCisg
ICAgICAgIHZhbGlkYXRlX3N1YnByb3RvY29sKCdzYW1wbGUnKQorICAgICAgICB2YWxpZGF0ZV9z
dWJwcm90b2NvbCgnU2FtcGxlJykKKyAgICAgICAgdmFsaWRhdGVfc3VicHJvdG9jb2woJ3NhbXBs
ZVx4N2Vwcm90b2NvbCcpCisKKyAgICAgICAgIyBTaG91bGQgZmFpbC4KKyAgICAgICAgc2VsZi5h
c3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICB2YWxpZGF0ZV9zdWJwcm90b2NvbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJycpCisg
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgdmFsaWRhdGVfc3VicHJvdG9jb2wsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICdzYW1wbGVceDA5cHJvdG9jb2wnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhI
YW5kc2hha2VFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlX3N1
YnByb3RvY29sLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnc2FtcGxlXHgxOXByb3RvY29s
JykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZV9zdWJwcm90b2NvbCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ3NhbXBsZVx4MjBwcm90b2NvbCcpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFp
c2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRh
dGVfc3VicHJvdG9jb2wsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdzYW1wbGVceDdmcHJv
dG9jb2wnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlX3N1YnByb3RvY29sLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAjICJKYXBhbiIgaW4gSmFwYW5lc2UKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgdSdcdTY1ZTVcdTY3MmMnKQorCisKK19URVNUX1RPS0VOX0VYVEVOU0lPTl9EQVRB
ID0gWworICAgICgnZm9vJywgWygnZm9vJywgW10pXSksCisgICAgKCdmb287IGJhcicsIFsoJ2Zv
bycsIFsoJ2JhcicsIE5vbmUpXSldKSwKKyAgICAoJ2ZvbzsgYmFyPWJheicsIFsoJ2ZvbycsIFso
J2JhcicsICdiYXonKV0pXSksCisgICAgKCdmb287IGJhcj1iYXo7IGNhcj1jZHInLCBbKCdmb28n
LCBbKCdiYXInLCAnYmF6JyksICgnY2FyJywgJ2NkcicpXSldKSwKKyAgICAoJ2ZvbzsgYmFyPWJh
eiwgY2FyOyBjZHInLAorICAgICBbKCdmb28nLCBbKCdiYXInLCAnYmF6JyldKSwgKCdjYXInLCBb
KCdjZHInLCBOb25lKV0pXSksCisgICAgKCdhLCBiLCBjLCBkJywKKyAgICAgWygnYScsIFtdKSwg
KCdiJywgW10pLCAoJ2MnLCBbXSksICgnZCcsIFtdKV0pLAorICAgIF0KKworCitfVEVTVF9RVU9U
RURfRVhURU5TSU9OX0RBVEEgPSBbCisgICAgKCdmb287IGJhcj0iIicsIFsoJ2ZvbycsIFsoJ2Jh
cicsICcnKV0pXSksCisgICAgKCdmb287IGJhcj0iIGJheiAiJywgWygnZm9vJywgWygnYmFyJywg
JyBiYXogJyldKV0pLAorICAgICgnZm9vOyBiYXI9IixiYXo7IicsIFsoJ2ZvbycsIFsoJ2Jhcics
ICcsYmF6OycpXSldKSwKKyAgICAoJ2ZvbzsgYmFyPSJcXFxyXFxcbmJheiInLCBbKCdmb28nLCBb
KCdiYXInLCAnXHJcbmJheicpXSldKSwKKyAgICAoJ2ZvbzsgYmFyPSJcXCJiYXoiJywgWygnZm9v
JywgWygnYmFyJywgJyJiYXonKV0pXSksCisgICAgKCdmb287IGJhcj0iXHhiYmJheiInLCBbKCdm
b28nLCBbKCdiYXInLCAnXHhiYmJheicpXSldKSwKKyAgICBdCisKKworX1RFU1RfUkVEVU5EQU5U
X1RPS0VOX0VYVEVOU0lPTl9EQVRBID0gWworICAgICgnZm9vIFx0ICcsIFsoJ2ZvbycsIFtdKV0p
LAorICAgICgnZm9vOyBcclxuIGJhcicsIFsoJ2ZvbycsIFsoJ2JhcicsIE5vbmUpXSldKSwKKyAg
ICAoJ2ZvbzsgYmFyPVxyXG4gXHJcbiBiYXonLCBbKCdmb28nLCBbKCdiYXInLCAnYmF6JyldKV0p
LAorICAgICgnZm9vIDtiYXIgPSBiYXogJywgWygnZm9vJywgWygnYmFyJywgJ2JheicpXSldKSwK
KyAgICAoJ2ZvbyxiYXIsLGJheicsIFsoJ2ZvbycsIFtdKSwgKCdiYXInLCBbXSksICgnYmF6Jywg
W10pXSksCisgICAgXQorCisKK19URVNUX1JFRFVOREFOVF9RVU9URURfRVhURU5TSU9OX0RBVEEg
PSBbCisgICAgKCdmb287IGJhcj0iXHJcbiBcclxuIGJheiInLCBbKCdmb28nLCBbKCdiYXInLCAn
ICBiYXonKV0pXSksCisgICAgXQorCisKK2NsYXNzIEV4dGVuc2lvbnNQYXJzZXJUZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiBfdmVyaWZ5X2V4dGVuc2lvbl9saXN0KHNlbGYsIGV4
cGVjdGVkX2xpc3QsIGFjdHVhbF9saXN0KToKKyAgICAgICAgIiIiVmVyaWZpZXMgdGhhdCBFeHRl
bnNpb25QYXJhbWV0ZXIgb2JqZWN0cyBpbiBhY3R1YWxfbGlzdCBoYXZlIHRoZQorICAgICAgICBz
YW1lIG1lbWJlcnMgYXMgZXh0ZW5zaW9uIGRlZmluaXRpb25zIGluIGV4cGVjdGVkX2xpc3QuIEV4
dGVuc2lvbgorICAgICAgICBkZWZpbml0aW9uIHVzZWQgaW4gdGhpcyB0ZXN0IGlzIGEgcGFpciBv
ZiBhbiBleHRlbnNpb24gbmFtZSBhbmQgYQorICAgICAgICBwYXJhbWV0ZXIgZGljdGlvbmFyeS4K
KyAgICAgICAgIiIiCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZXhwZWN0ZWRfbGlz
dCksIGxlbihhY3R1YWxfbGlzdCkpCisgICAgICAgIGZvciBleHBlY3RlZCwgYWN0dWFsIGluIHpp
cChleHBlY3RlZF9saXN0LCBhY3R1YWxfbGlzdCk6CisgICAgICAgICAgICAobmFtZSwgcGFyYW1l
dGVycykgPSBleHBlY3RlZAorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuYW1lLCBhY3R1
YWwuX25hbWUpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcmFtZXRlcnMsIGFjdHVh
bC5fcGFyYW1ldGVycykKKworICAgIGRlZiB0ZXN0X3BhcnNlKHNlbGYpOgorICAgICAgICBmb3Ig
Zm9ybWF0dGVkX3N0cmluZywgZGVmaW5pdGlvbiBpbiBfVEVTVF9UT0tFTl9FWFRFTlNJT05fREFU
QToKKyAgICAgICAgICAgIHNlbGYuX3ZlcmlmeV9leHRlbnNpb25fbGlzdCgKKyAgICAgICAgICAg
ICAgICBkZWZpbml0aW9uLCBwYXJzZV9leHRlbnNpb25zKGZvcm1hdHRlZF9zdHJpbmcpKQorCisg
ICAgZGVmIHRlc3RfcGFyc2VfcXVvdGVkX2RhdGEoc2VsZik6CisgICAgICAgIGZvciBmb3JtYXR0
ZWRfc3RyaW5nLCBkZWZpbml0aW9uIGluIF9URVNUX1FVT1RFRF9FWFRFTlNJT05fREFUQToKKyAg
ICAgICAgICAgIHNlbGYuX3ZlcmlmeV9leHRlbnNpb25fbGlzdCgKKyAgICAgICAgICAgICAgICBk
ZWZpbml0aW9uLCBwYXJzZV9leHRlbnNpb25zKGZvcm1hdHRlZF9zdHJpbmcpKQorCisgICAgZGVm
IHRlc3RfcGFyc2VfcmVkdW5kYW50X2RhdGEoc2VsZik6CisgICAgICAgIGZvciAoZm9ybWF0dGVk
X3N0cmluZywKKyAgICAgICAgICAgICBkZWZpbml0aW9uKSBpbiBfVEVTVF9SRURVTkRBTlRfVE9L
RU5fRVhURU5TSU9OX0RBVEE6CisgICAgICAgICAgICBzZWxmLl92ZXJpZnlfZXh0ZW5zaW9uX2xp
c3QoCisgICAgICAgICAgICAgICAgZGVmaW5pdGlvbiwgcGFyc2VfZXh0ZW5zaW9ucyhmb3JtYXR0
ZWRfc3RyaW5nKSkKKworICAgIGRlZiB0ZXN0X3BhcnNlX3JlZHVuZGFudF9xdW90ZWRfZGF0YShz
ZWxmKToKKyAgICAgICAgZm9yIChmb3JtYXR0ZWRfc3RyaW5nLAorICAgICAgICAgICAgIGRlZmlu
aXRpb24pIGluIF9URVNUX1JFRFVOREFOVF9RVU9URURfRVhURU5TSU9OX0RBVEE6CisgICAgICAg
ICAgICBzZWxmLl92ZXJpZnlfZXh0ZW5zaW9uX2xpc3QoCisgICAgICAgICAgICAgICAgZGVmaW5p
dGlvbiwgcGFyc2VfZXh0ZW5zaW9ucyhmb3JtYXR0ZWRfc3RyaW5nKSkKKworICAgIGRlZiB0ZXN0
X3BhcnNlX2JhZF9kYXRhKHNlbGYpOgorICAgICAgICBfVEVTVF9CQURfRVhURU5TSU9OX0RBVEEg
PSBbCisgICAgICAgICAgICAoJ2ZvbzsgOyAnKSwKKyAgICAgICAgICAgICgnZm9vOyBhIGEnKSwK
KyAgICAgICAgICAgICgnZm9vIGZvbycpLAorICAgICAgICAgICAgKCcsLCwnKSwKKyAgICAgICAg
ICAgICgnZm9vOyBiYXI9JyksCisgICAgICAgICAgICAoJ2ZvbzsgYmFyPSJob2dlJyksCisgICAg
ICAgICAgICAoJ2ZvbzsgYmFyPSJhXHIiJyksCisgICAgICAgICAgICAoJ2ZvbzsgYmFyPSJcXFx4
ZmYiJyksCisgICAgICAgICAgICAoJ2ZvbzsgYmFyPVxyYScpLAorICAgICAgICAgICAgXQorCisg
ICAgICAgIGZvciBmb3JtYXR0ZWRfc3RyaW5nIGluIF9URVNUX0JBRF9FWFRFTlNJT05fREFUQToK
KyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKAorICAgICAgICAgICAgICAgIEV4dGVuc2lv
blBhcnNpbmdFeGNlcHRpb24sIHBhcnNlX2V4dGVuc2lvbnMsIGZvcm1hdHRlZF9zdHJpbmcpCisK
KworY2xhc3MgRm9ybWF0RXh0ZW5zaW9uc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAg
ZGVmIHRlc3RfZm9ybWF0X2V4dGVuc2lvbnMoc2VsZik6CisgICAgICAgIGZvciBmb3JtYXR0ZWRf
c3RyaW5nLCBkZWZpbml0aW9ucyBpbiBfVEVTVF9UT0tFTl9FWFRFTlNJT05fREFUQToKKyAgICAg
ICAgICAgIGV4dGVuc2lvbnMgPSBbXQorICAgICAgICAgICAgZm9yIGRlZmluaXRpb24gaW4gZGVm
aW5pdGlvbnM6CisgICAgICAgICAgICAgICAgKG5hbWUsIHBhcmFtZXRlcnMpID0gZGVmaW5pdGlv
bgorICAgICAgICAgICAgICAgIGV4dGVuc2lvbiA9IEV4dGVuc2lvblBhcmFtZXRlcihuYW1lKQor
ICAgICAgICAgICAgICAgIGV4dGVuc2lvbi5fcGFyYW1ldGVycyA9IHBhcmFtZXRlcnMKKyAgICAg
ICAgICAgICAgICBleHRlbnNpb25zLmFwcGVuZChleHRlbnNpb24pCisgICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKAorICAgICAgICAgICAgICAgIGZvcm1hdHRlZF9zdHJpbmcsIGZvcm1hdF9l
eHRlbnNpb25zKGV4dGVuc2lvbnMpKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Cisg
ICAgdW5pdHRlc3QubWFpbigpCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2hhbmRzaGFr
ZV9oeWJpLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxMDY2Nzc0OWU2MzViYTFjOTZmOGIyM2ZiOTdmYWI1OTgz
MDUyYjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaS5w
eQpAQCAtMCwwICsxLDUyMSBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHlyaWdo
dCAyMDExLCBHb29nbGUgSW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworCisiIiJUZXN0cyBmb3IgaGFuZHNoYWtlIG1vZHVsZS4iIiIKKworCitpbXBvcnQg
dW5pdHRlc3QKKworaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9j
YXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQg
Y29tbW9uCitmcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IEFib3J0
ZWRCeVVzZXJFeGNlcHRpb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBp
bXBvcnQgSGFuZHNoYWtlRXhjZXB0aW9uCitmcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2Uu
X2Jhc2UgaW1wb3J0IFZlcnNpb25FeGNlcHRpb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRz
aGFrZS5oeWJpIGltcG9ydCBIYW5kc2hha2VyCisKK2ltcG9ydCBtb2NrCisKKworY2xhc3MgUmVx
dWVzdERlZmluaXRpb24ob2JqZWN0KToKKyAgICAiIiJBIGNsYXNzIGZvciBob2xkaW5nIGRhdGEg
Zm9yIGNvbnN0cnVjdGluZyBvcGVuaW5nIGhhbmRzaGFrZSBzdHJpbmdzIGZvcgorICAgIHRlc3Rp
bmcgdGhlIG9wZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3Nvci4KKyAgICAiIiIKKworICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBtZXRob2QsIHVyaSwgaGVhZGVycyk6CisgICAgICAgIHNlbGYubWV0aG9k
ID0gbWV0aG9kCisgICAgICAgIHNlbGYudXJpID0gdXJpCisgICAgICAgIHNlbGYuaGVhZGVycyA9
IGhlYWRlcnMKKworCitkZWYgX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCk6CisgICAgcmV0dXJu
IFJlcXVlc3REZWZpbml0aW9uKAorICAgICAgICAnR0VUJywgJy9kZW1vJywKKyAgICAgICAgeydI
b3N0JzogJ3NlcnZlci5leGFtcGxlLmNvbScsCisgICAgICAgICAnVXBncmFkZSc6ICd3ZWJzb2Nr
ZXQnLAorICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCisgICAgICAgICAnU2VjLVdl
YlNvY2tldC1LZXknOiAnZEdobElITmhiWEJzWlNCdWIyNWpaUT09JywKKyAgICAgICAgICdTZWMt
V2ViU29ja2V0LVZlcnNpb24nOiAnMTMnLAorICAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhh
bXBsZS5jb20nfSkKKworCitkZWYgX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKToKKyAgICBj
b25uID0gbW9jay5Nb2NrQ29ubignJykKKyAgICByZXR1cm4gbW9jay5Nb2NrUmVxdWVzdCgKKyAg
ICAgICAgbWV0aG9kPXJlcXVlc3RfZGVmLm1ldGhvZCwKKyAgICAgICAgdXJpPXJlcXVlc3RfZGVm
LnVyaSwKKyAgICAgICAgaGVhZGVyc19pbj1yZXF1ZXN0X2RlZi5oZWFkZXJzLAorICAgICAgICBj
b25uZWN0aW9uPWNvbm4pCisKKworZGVmIF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KToKKyAg
ICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkp
CisgICAgcmV0dXJuIGhhbmRzaGFrZXIKKworCitjbGFzcyBTdWJwcm90b2NvbENob29zaW5nRGlz
cGF0Y2hlcihvYmplY3QpOgorICAgICIiIkEgZGlzcGF0Y2hlciBmb3IgdGVzdGluZy4gVGhpcyBk
aXNwYXRjaGVyIHNldHMgdGhlIGktdGggc3VicHJvdG9jb2wKKyAgICBvZiByZXF1ZXN0ZWQgb25l
cyB0byB3c19wcm90b2NvbCB3aGVyZSBpIGlzIGdpdmVuIG9uIGNvbnN0cnVjdGlvbiBhcyBpbmRl
eAorICAgIGFyZ3VtZW50LiBJZiBpbmRleCBpcyBuZWdhdGl2ZSwgZGVmYXVsdF92YWx1ZSB3aWxs
IGJlIHNldCB0byB3c19wcm90b2NvbC4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBpbmRleCwgZGVmYXVsdF92YWx1ZT1Ob25lKToKKyAgICAgICAgc2VsZi5pbmRleCA9IGluZGV4
CisgICAgICAgIHNlbGYuZGVmYXVsdF92YWx1ZSA9IGRlZmF1bHRfdmFsdWUKKworICAgIGRlZiBk
b19leHRyYV9oYW5kc2hha2Uoc2VsZiwgY29ubl9jb250ZXh0KToKKyAgICAgICAgaWYgc2VsZi5p
bmRleCA+PSAwOgorICAgICAgICAgICAgY29ubl9jb250ZXh0LndzX3Byb3RvY29sID0gY29ubl9j
b250ZXh0LndzX3JlcXVlc3RlZF9wcm90b2NvbHNbCisgICAgICAgICAgICAgICAgc2VsZi5pbmRl
eF0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGNvbm5fY29udGV4dC53c19wcm90b2NvbCA9
IHNlbGYuZGVmYXVsdF92YWx1ZQorCisgICAgZGVmIHRyYW5zZmVyX2RhdGEoc2VsZiwgY29ubl9j
b250ZXh0KToKKyAgICAgICAgcGFzcworCisKK2NsYXNzIEhhbmRzaGFrZUFib3J0ZWRFeGNlcHRp
b24oRXhjZXB0aW9uKToKKyAgICBwYXNzCisKKworY2xhc3MgQWJvcnRpbmdEaXNwYXRjaGVyKG9i
amVjdCk6CisgICAgIiIiQSBkaXNwYXRjaGVyIGZvciB0ZXN0aW5nLiBUaGlzIGRpc3BhdGNoZXIg
cmFpc2VzIGFuIGV4Y2VwdGlvbiBpbgorICAgIGRvX2V4dHJhX2hhbmRzaGFrZSB0byByZWplY3Qg
dGhlIHJlcXVlc3QuCisgICAgIiIiCisKKyAgICBkZWYgZG9fZXh0cmFfaGFuZHNoYWtlKHNlbGYs
IGNvbm5fY29udGV4dCk6CisgICAgICAgIHJhaXNlIEhhbmRzaGFrZUFib3J0ZWRFeGNlcHRpb24o
J0FuIGV4Y2VwdGlvbiB0byByZWplY3QgdGhlIHJlcXVlc3QnKQorCisgICAgZGVmIHRyYW5zZmVy
X2RhdGEoc2VsZiwgY29ubl9jb250ZXh0KToKKyAgICAgICAgcGFzcworCisKK2NsYXNzIEFib3J0
ZWRCeVVzZXJEaXNwYXRjaGVyKG9iamVjdCk6CisgICAgIiIiQSBkaXNwYXRjaGVyIGZvciB0ZXN0
aW5nLiBUaGlzIGRpc3BhdGNoZXIgcmFpc2VzIGFuCisgICAgQWJvcnRlZEJ5VXNlckV4Y2VwdGlv
biBpbiBkb19leHRyYV9oYW5kc2hha2UgdG8gcmVqZWN0IHRoZSByZXF1ZXN0LgorICAgICIiIgor
CisgICAgZGVmIGRvX2V4dHJhX2hhbmRzaGFrZShzZWxmLCBjb25uX2NvbnRleHQpOgorICAgICAg
ICByYWlzZSBBYm9ydGVkQnlVc2VyRXhjZXB0aW9uKCdBbiBBYm9ydGVkQnlVc2VyRXhjZXB0aW9u
IHRvIHJlamVjdCB0aGUgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdy
ZXF1ZXN0JykKKworICAgIGRlZiB0cmFuc2Zlcl9kYXRhKHNlbGYsIGNvbm5fY29udGV4dCk6Cisg
ICAgICAgIHBhc3MKKworCitfRVhQRUNURURfUkVTUE9OU0UgPSAoCisgICAgJ0hUVFAvMS4xIDEw
MSBTd2l0Y2hpbmcgUHJvdG9jb2xzXHJcbicKKyAgICAnVXBncmFkZTogd2Vic29ja2V0XHJcbicK
KyAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCisgICAgJ1NlYy1XZWJTb2NrZXQtQWNjZXB0
OiBzM3BQTE1CaVR4YVE5a1lHenpoWlJiSyt4T289XHJcblxyXG4nKQorCisKK2NsYXNzIEhhbmRz
aGFrZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJBIHVuaXR0ZXN0IGZvciBkcmFm
dC1pZXRmLWh5YmktdGhld2Vic29ja2V0cHJvdG9jb2wtMDYgYW5kIGxhdGVyCisgICAgaGFuZHNo
YWtlIHByb2Nlc3Nvci4KKyAgICAiIiIKKworICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZShzZWxm
KToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfY3JlYXRlX2dvb2RfcmVxdWVz
dF9kZWYoKSkKKyAgICAgICAgZGlzcGF0Y2hlciA9IG1vY2suTW9ja0Rpc3BhdGNoZXIoKQorICAg
ICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQorICAgICAg
ICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGRp
c3BhdGNoZXIuZG9fZXh0cmFfaGFuZHNoYWtlX2NhbGxlZCkKKworICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKAorICAgICAgICAgICAgX0VYUEVDVEVEX1JFU1BPTlNFLCByZXF1ZXN0LmNvbm5lY3Rp
b24ud3JpdHRlbl9kYXRhKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy9kZW1vJywgcmVx
dWVzdC53c19yZXNvdXJjZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnaHR0cDovL2V4YW1w
bGUuY29tJywgcmVxdWVzdC53c19vcmlnaW4pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9u
ZSwgcmVxdWVzdC53c19wcm90b2NvbCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBy
ZXF1ZXN0LndzX2V4dGVuc2lvbnMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlZF
UlNJT05fSFlCSV9MQVRFU1QsIHJlcXVlc3Qud3NfdmVyc2lvbikKKworICAgIGRlZiB0ZXN0X2Rv
X2hhbmRzaGFrZV93aXRoX2V4dHJhX2hlYWRlcnMoc2VsZik6CisgICAgICAgIHJlcXVlc3RfZGVm
ID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKKyAgICAgICAgIyBBZGQgaGVhZGVycyBub3Qg
cmVsYXRlZCB0byBXZWJTb2NrZXQgb3BlbmluZyBoYW5kc2hha2UuCisgICAgICAgIHJlcXVlc3Rf
ZGVmLmhlYWRlcnNbJ0Zvb0tleSddID0gJ0JhclZhbHVlJworICAgICAgICByZXF1ZXN0X2RlZi5o
ZWFkZXJzWydFbXB0eUtleSddID0gJycKKworICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1
ZXN0KHJlcXVlc3RfZGVmKQorICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2Vy
KHJlcXVlc3QpCisgICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIF9FWFBFQ1RFRF9SRVNQT05TRSwgcmVxdWVzdC5j
b25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQorCisgICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dp
dGhfY2FwaXRhbGl6ZWRfdmFsdWUoc2VsZik6CisgICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0
ZV9nb29kX3JlcXVlc3RfZGVmKCkKKyAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1sndXBncmFk
ZSddID0gJ1dFQlNPQ0tFVCcKKworICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJl
cXVlc3RfZGVmKQorICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVl
c3QpCisgICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgKKyAgICAgICAgICAgIF9FWFBFQ1RFRF9SRVNQT05TRSwgcmVxdWVzdC5jb25uZWN0
aW9uLndyaXR0ZW5fZGF0YSgpKQorCisgICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29k
X3JlcXVlc3RfZGVmKCkKKyAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snQ29ubmVjdGlvbidd
ID0gJ1VQR1JBREUnCisKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0
X2RlZikKKyAgICAgICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KQor
ICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoCisgICAgICAgICAgICBfRVhQRUNURURfUkVTUE9OU0UsIHJlcXVlc3QuY29ubmVjdGlvbi53
cml0dGVuX2RhdGEoKSkKKworICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX211bHRpcGxl
X2Nvbm5lY3Rpb25fdmFsdWVzKHNlbGYpOgorICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVf
Z29vZF9yZXF1ZXN0X2RlZigpCisgICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ0Nvbm5lY3Rp
b24nXSA9ICdVcGdyYWRlLCBrZWVwLWFsaXZlLCAsICcKKworICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQorICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9o
YW5kc2hha2VyKHJlcXVlc3QpCisgICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIF9FWFBFQ1RFRF9SRVNQT05TRSwg
cmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQorCisgICAgZGVmIHRlc3RfYWJvcnRp
bmdfaGFuZHNoYWtlKHNlbGYpOgorICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcigKKyAg
ICAgICAgICAgIF9jcmVhdGVfcmVxdWVzdChfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKSksCisg
ICAgICAgICAgICBBYm9ydGluZ0Rpc3BhdGNoZXIoKSkKKyAgICAgICAgIyBkb19leHRyYV9oYW5k
c2hha2UgcmFpc2VzIGFuIGV4Y2VwdGlvbi4gQ2hlY2sgdGhhdCBpdCdzIG5vdCBjYXVnaHQgYnkK
KyAgICAgICAgIyBkb19oYW5kc2hha2UuCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRz
aGFrZUFib3J0ZWRFeGNlcHRpb24sIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKQorCisgICAgZGVm
IHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfcHJvdG9jb2woc2VsZik6CisgICAgICAgIHJlcXVlc3Rf
ZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKKyAgICAgICAgcmVxdWVzdF9kZWYuaGVh
ZGVyc1snU2VjLVdlYlNvY2tldC1Qcm90b2NvbCddID0gJ2NoYXQsIHN1cGVyY2hhdCcKKworICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQorICAgICAgICBoYW5k
c2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBTdWJwcm90b2NvbENob29zaW5nRGlzcGF0Y2hl
cigwKSkKKyAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQorCisgICAgICAgIEVYUEVD
VEVEX1JFU1BPTlNFID0gKAorICAgICAgICAgICAgJ0hUVFAvMS4xIDEwMSBTd2l0Y2hpbmcgUHJv
dG9jb2xzXHJcbicKKyAgICAgICAgICAgICdVcGdyYWRlOiB3ZWJzb2NrZXRcclxuJworICAgICAg
ICAgICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJworICAgICAgICAgICAgJ1NlYy1XZWJTb2Nr
ZXQtQWNjZXB0OiBzM3BQTE1CaVR4YVE5a1lHenpoWlJiSyt4T289XHJcbicKKyAgICAgICAgICAg
ICdTZWMtV2ViU29ja2V0LVByb3RvY29sOiBjaGF0XHJcblxyXG4nKQorCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoRVhQRUNURURfUkVTUE9OU0UsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVu
X2RhdGEoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnY2hhdCcsIHJlcXVlc3Qud3NfcHJv
dG9jb2wpCisKKyAgICBkZWYgdGVzdF9kb19oYW5kc2hha2VfcHJvdG9jb2xfbm90X2luX3JlcXVl
c3RfYnV0X2luX3Jlc3BvbnNlKHNlbGYpOgorICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVf
Z29vZF9yZXF1ZXN0X2RlZigpCisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVx
dWVzdF9kZWYpCisgICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKAorICAgICAgICAgICAg
cmVxdWVzdCwgU3VicHJvdG9jb2xDaG9vc2luZ0Rpc3BhdGNoZXIoLTEsICdmb29iYXInKSkKKyAg
ICAgICAgIyBObyByZXF1ZXN0IGhhcyBiZWVuIG1hZGUgYnV0IHdzX3Byb3RvY29sIGlzIHNldC4g
SGFuZHNoYWtlRXhjZXB0aW9uCisgICAgICAgICMgbXVzdCBiZSByYWlzZWQuCisgICAgICAgIHNl
bGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwgaGFuZHNoYWtlci5kb19oYW5kc2hh
a2UpCisKKyAgICBkZWYgdGVzdF9kb19oYW5kc2hha2Vfd2l0aF9wcm90b2NvbF9ub19wcm90b2Nv
bF9zZWxlY3Rpb24oc2VsZik6CisgICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3Jl
cXVlc3RfZGVmKCkKKyAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1Q
cm90b2NvbCddID0gJ2NoYXQsIHN1cGVyY2hhdCcKKworICAgICAgICByZXF1ZXN0ID0gX2NyZWF0
ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQorICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5k
c2hha2VyKHJlcXVlc3QpCisgICAgICAgICMgd3NfcHJvdG9jb2wgaXMgbm90IHNldC4gSGFuZHNo
YWtlRXhjZXB0aW9uIG11c3QgYmUgcmFpc2VkLgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhI
YW5kc2hha2VFeGNlcHRpb24sIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKQorCisgICAgZGVmIHRl
c3RfZG9faGFuZHNoYWtlX3dpdGhfZXh0ZW5zaW9ucyhzZWxmKToKKyAgICAgICAgcmVxdWVzdF9k
ZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQorICAgICAgICByZXF1ZXN0X2RlZi5oZWFk
ZXJzWydTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMnXSA9ICgKKyAgICAgICAgICAgICdwZXJtZXNz
YWdlLWRlZmxhdGU7IHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJykKKworICAgICAgICBFWFBF
Q1RFRF9SRVNQT05TRSA9ICgKKyAgICAgICAgICAgICdIVFRQLzEuMSAxMDEgU3dpdGNoaW5nIFBy
b3RvY29sc1xyXG4nCisgICAgICAgICAgICAnVXBncmFkZTogd2Vic29ja2V0XHJcbicKKyAgICAg
ICAgICAgICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKKyAgICAgICAgICAgICdTZWMtV2ViU29j
a2V0LUFjY2VwdDogczNwUExNQmlUeGFROWtZR3p6aFpSYksreE9vPVxyXG4nCisgICAgICAgICAg
ICAnU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zOiAnCisgICAgICAgICAgICAgICAgJ3Blcm1lc3Nh
Z2UtZGVmbGF0ZTsgc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXJcclxuJworICAgICAgICAgICAg
J1xyXG4nKQorCisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYp
CisgICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKKyAgICAg
ICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEVY
UEVDVEVEX1JFU1BPTlNFLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9ucykpCisgICAg
ICAgIGV4dGVuc2lvbiA9IHJlcXVlc3Qud3NfZXh0ZW5zaW9uc1swXQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OLAorICAgICAgICAg
ICAgICAgICAgICAgICAgIGV4dGVuc2lvbi5uYW1lKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoWydzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlciddLAorICAgICAgICAgICAgICAgICAgICAg
ICAgIGV4dGVuc2lvbi5nZXRfcGFyYW1ldGVyX25hbWVzKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb24uZ2V0X3BhcmFt
ZXRlcl92YWx1ZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NlcnZlcl9ub19jb250
ZXh0X3Rha2VvdmVyJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKHJlcXVlc3Qu
d3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdkZWZs
YXRlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9j
ZXNzb3JzWzBdLm5hbWUoKSkKKworICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX3F1b3Rl
ZF9leHRlbnNpb25zKHNlbGYpOgorICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9y
ZXF1ZXN0X2RlZigpCisgICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQt
RXh0ZW5zaW9ucyddID0gKAorICAgICAgICAgICAgJ3Blcm1lc3NhZ2UtZGVmbGF0ZSwgLCAnCisg
ICAgICAgICAgICAndW5rbm93bjsgZSAgID0gICAgIm1jXjIiOyBtYT0iXHJcbiAgICAgIFxcXHJm
ICAiOyBwdj1ucnQnKQorCisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVz
dF9kZWYpCisgICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkK
KyAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKDIsIGxlbihyZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25zKSkKKyAgICAgICAgZmly
c3RfZXh0ZW5zaW9uID0gcmVxdWVzdC53c19yZXF1ZXN0ZWRfZXh0ZW5zaW9uc1swXQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCBmaXJzdF9leHRlbnNpb24u
bmFtZSgpKQorICAgICAgICBzZWNvbmRfZXh0ZW5zaW9uID0gcmVxdWVzdC53c19yZXF1ZXN0ZWRf
ZXh0ZW5zaW9uc1sxXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCd1bmtub3duJywgc2Vjb25k
X2V4dGVuc2lvbi5uYW1lKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAg
ICBbJ2UnLCAnbWEnLCAncHYnXSwgc2Vjb25kX2V4dGVuc2lvbi5nZXRfcGFyYW1ldGVyX25hbWVz
KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ21jXjInLCBzZWNvbmRfZXh0ZW5zaW9uLmdl
dF9wYXJhbWV0ZXJfdmFsdWUoJ2UnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnIFxyZiAn
LCBzZWNvbmRfZXh0ZW5zaW9uLmdldF9wYXJhbWV0ZXJfdmFsdWUoJ21hJykpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ25ydCcsIHNlY29uZF9leHRlbnNpb24uZ2V0X3BhcmFtZXRlcl92YWx1
ZSgncHYnKSkKKworICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX29wdGlvbmFsX2hlYWRl
cnMoc2VsZik6CisgICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVm
KCkKKyAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snRW1wdHlWYWx1ZSddID0gJycKKyAgICAg
ICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snQUtleSddID0gJ0FWYWx1ZScKKworICAgICAgICByZXF1
ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQorICAgICAgICBoYW5kc2hha2VyID0g
X2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCisgICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNo
YWtlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgICdBVmFsdWUnLCBy
ZXF1ZXN0LmhlYWRlcnNfaW5bJ0FLZXknXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAg
ICAgICAgICAgICcnLCByZXF1ZXN0LmhlYWRlcnNfaW5bJ0VtcHR5VmFsdWUnXSkKKworICAgIGRl
ZiB0ZXN0X2Fib3J0X2V4dHJhX2hhbmRzaGFrZShzZWxmKToKKyAgICAgICAgaGFuZHNoYWtlciA9
IEhhbmRzaGFrZXIoCisgICAgICAgICAgICBfY3JlYXRlX3JlcXVlc3QoX2NyZWF0ZV9nb29kX3Jl
cXVlc3RfZGVmKCkpLAorICAgICAgICAgICAgQWJvcnRlZEJ5VXNlckRpc3BhdGNoZXIoKSkKKyAg
ICAgICAgIyBkb19leHRyYV9oYW5kc2hha2UgcmFpc2VzIGFuIEFib3J0ZWRCeVVzZXJFeGNlcHRp
b24uIENoZWNrIHRoYXQgaXQncworICAgICAgICAjIG5vdCBjYXVnaHQgYnkgZG9faGFuZHNoYWtl
LgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBYm9ydGVkQnlVc2VyRXhjZXB0aW9uLCBoYW5k
c2hha2VyLmRvX2hhbmRzaGFrZSkKKworICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX211
eF9hbmRfZGVmbGF0ZV9mcmFtZShzZWxmKToKKyAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRl
X2dvb2RfcmVxdWVzdF9kZWYoKQorICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2Vi
U29ja2V0LUV4dGVuc2lvbnMnXSA9ICgnJXMsICVzJyAlICgKKyAgICAgICAgICAgICAgICBjb21t
b24uTVVYX0VYVEVOU0lPTiwKKyAgICAgICAgICAgICAgICBjb21tb24uREVGTEFURV9GUkFNRV9F
WFRFTlNJT04pKQorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVm
KQorICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCisgICAg
ICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKKyAgICAgICAgIyBtdXggc2hvdWxkIGJlIHJl
amVjdGVkLgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihyZXF1ZXN0LndzX2V4dGVu
c2lvbnMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VY
VEVOU0lPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbnNb
MF0ubmFtZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGxlbihyZXF1ZXN0LndzX2V4
dGVuc2lvbl9wcm9jZXNzb3JzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uTVVY
X0VYVEVOU0lPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lv
bl9wcm9jZXNzb3JzWzBdLm5hbWUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24u
REVGTEFURV9GUkFNRV9FWFRFTlNJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVz
dC53c19leHRlbnNpb25fcHJvY2Vzc29yc1sxXS5uYW1lKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0
RmFsc2UoaGFzYXR0cihyZXF1ZXN0LCAnbXV4X3Byb2Nlc3NvcicpKQorCisgICAgZGVmIHRlc3Rf
ZG9faGFuZHNoYWtlX3dpdGhfZGVmbGF0ZV9mcmFtZV9hbmRfbXV4KHNlbGYpOgorICAgICAgICBy
ZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCisgICAgICAgIHJlcXVlc3Rf
ZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyddID0gKCclcywgJXMnICUgKAor
ICAgICAgICAgICAgICAgIGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiwKKyAgICAgICAg
ICAgICAgICBjb21tb24uTVVYX0VYVEVOU0lPTikpCisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X3JlcXVlc3QocmVxdWVzdF9kZWYpCisgICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRz
aGFrZXIocmVxdWVzdCkKKyAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQorICAgICAg
ICAjIG11eCBzaG91bGQgYmUgcmVqZWN0ZWQuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwg
bGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9ucykpCisgICAgICAgIGZpcnN0X2V4dGVuc2lvbiA9IHJl
cXVlc3Qud3NfZXh0ZW5zaW9uc1swXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5E
RUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdF9l
eHRlbnNpb24ubmFtZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGxlbihyZXF1ZXN0
LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21t
b24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1swXS5uYW1lKCkpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoY29tbW9uLk1VWF9FWFRFTlNJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAg
cmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1sxXS5uYW1lKCkpCisgICAgICAgIHNlbGYu
YXNzZXJ0RmFsc2UoaGFzYXR0cihyZXF1ZXN0LCAnbXV4JykpCisKKyAgICBkZWYgdGVzdF9kb19o
YW5kc2hha2Vfd2l0aF9wZXJtZXNzYWdlX2RlZmxhdGVfYW5kX211eChzZWxmKToKKyAgICAgICAg
cmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQorICAgICAgICByZXF1ZXN0
X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMnXSA9ICgKKyAgICAgICAgICAg
ICclcywgJXMnICUgKAorICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVf
RVhURU5TSU9OLAorICAgICAgICAgICAgICAgIGNvbW1vbi5NVVhfRVhURU5TSU9OKSkKKyAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZikKKyAgICAgICAgaGFuZHNo
YWtlciA9IF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KQorICAgICAgICBoYW5kc2hha2VyLmRv
X2hhbmRzaGFrZSgpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4ocmVxdWVzdC53
c19leHRlbnNpb25zKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uTVVYX0VYVEVO
U0lPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVuc2lvbnNbMF0u
bmFtZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGxlbihyZXF1ZXN0LndzX2V4dGVu
c2lvbl9wcm9jZXNzb3JzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnZGVmbGF0ZScsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1sw
XS5uYW1lKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk1VWF9FWFRFTlNJT04s
CisgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29y
c1sxXS5uYW1lKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShoYXNhdHRyKHJlcXVlc3QsICdt
dXhfcHJvY2Vzc29yJykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXF1ZXN0Lm11eF9wcm9j
ZXNzb3IuaXNfYWN0aXZlKCkpCisgICAgICAgIG11eF9leHRlbnNpb25zID0gcmVxdWVzdC5tdXhf
cHJvY2Vzc29yLmV4dGVuc2lvbnMoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbiht
dXhfZXh0ZW5zaW9ucykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlBFUk1FU1NB
R0VfREVGTEFURV9FWFRFTlNJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgbXV4X2V4dGVu
c2lvbnNbMF0ubmFtZSgpKQorCisgICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfbXV4X2Fu
ZF9wZXJtZXNzYWdlX2RlZmxhdGUoc2VsZik6CisgICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0
ZV9nb29kX3JlcXVlc3RfZGVmKCkKKyAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdl
YlNvY2tldC1FeHRlbnNpb25zJ10gPSAoCisgICAgICAgICAgICAnJXMsICVzJyAlICgKKyAgICAg
ICAgICAgICAgICBjb21tb24uTVVYX0VYVEVOU0lPTiwKKyAgICAgICAgICAgICAgICBjb21tb24u
UEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikpCisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X3JlcXVlc3QocmVxdWVzdF9kZWYpCisgICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRz
aGFrZXIocmVxdWVzdCkKKyAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQorICAgICAg
ICAjIG11eCBzaG91bGQgYmUgcmVqZWN0ZWQuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwg
bGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9ucykpCisgICAgICAgIGZpcnN0X2V4dGVuc2lvbiA9IHJl
cXVlc3Qud3NfZXh0ZW5zaW9uc1swXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5Q
RVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgIGZp
cnN0X2V4dGVuc2lvbi5uYW1lKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgbGVuKHJl
cXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGNvbW1vbi5NVVhfRVhURU5TSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qu
d3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNbMF0ubmFtZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdkZWZsYXRlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVu
c2lvbl9wcm9jZXNzb3JzWzFdLm5hbWUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShoYXNh
dHRyKHJlcXVlc3QsICdtdXhfcHJvY2Vzc29yJykpCisKKyAgICBkZWYgdGVzdF9iYWRfcmVxdWVz
dHMoc2VsZik6CisgICAgICAgIGJhZF9jYXNlcyA9IFsKKyAgICAgICAgICAgICgnSFRUUCByZXF1
ZXN0JywKKyAgICAgICAgICAgICBSZXF1ZXN0RGVmaW5pdGlvbigKKyAgICAgICAgICAgICAgICAg
J0dFVCcsICcvZGVtbycsCisgICAgICAgICAgICAgICAgIHsnSG9zdCc6ICd3d3cuZ29vZ2xlLmNv
bScsCisgICAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6CisgICAgICAgICAgICAgICAgICAg
ICAgJ01vemlsbGEvNS4wIChNYWNpbnRvc2g7IFU7IEludGVsIE1hYyBPUyBYIDEwLjU7JworICAg
ICAgICAgICAgICAgICAgICAgICcgZW4tVVM7IHJ2OjEuOS4xLjMpIEdlY2tvLzIwMDkwODI0IEZp
cmVmb3gvMy41LjMnCisgICAgICAgICAgICAgICAgICAgICAgJyBHVEI2IEdUQkEnLAorICAgICAg
ICAgICAgICAgICAgJ0FjY2VwdCc6CisgICAgICAgICAgICAgICAgICAgICAgJ3RleHQvaHRtbCxh
cHBsaWNhdGlvbi94aHRtbCt4bWwsYXBwbGljYXRpb24veG1sO3E9MC45LCcKKyAgICAgICAgICAg
ICAgICAgICAgICAnKi8qO3E9MC44JywKKyAgICAgICAgICAgICAgICAgICdBY2NlcHQtTGFuZ3Vh
Z2UnOiAnZW4tdXMsZW47cT0wLjUnLAorICAgICAgICAgICAgICAgICAgJ0FjY2VwdC1FbmNvZGlu
Zyc6ICdnemlwLGRlZmxhdGUnLAorICAgICAgICAgICAgICAgICAgJ0FjY2VwdC1DaGFyc2V0Jzog
J0lTTy04ODU5LTEsdXRmLTg7cT0wLjcsKjtxPTAuNycsCisgICAgICAgICAgICAgICAgICAnS2Vl
cC1BbGl2ZSc6ICczMDAnLAorICAgICAgICAgICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAna2VlcC1h
bGl2ZSd9KSwgTm9uZSwgVHJ1ZSldCisKKyAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dv
b2RfcmVxdWVzdF9kZWYoKQorICAgICAgICByZXF1ZXN0X2RlZi5tZXRob2QgPSAnUE9TVCcKKyAg
ICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ1dyb25nIG1ldGhvZCcsIHJlcXVlc3RfZGVmLCBOb25l
LCBUcnVlKSkKKworICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2Rl
ZigpCisgICAgICAgIGRlbCByZXF1ZXN0X2RlZi5oZWFkZXJzWydIb3N0J10KKyAgICAgICAgYmFk
X2Nhc2VzLmFwcGVuZCgoJ01pc3NpbmcgSG9zdCcsIHJlcXVlc3RfZGVmLCBOb25lLCBUcnVlKSkK
KworICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCisgICAg
ICAgIGRlbCByZXF1ZXN0X2RlZi5oZWFkZXJzWydVcGdyYWRlJ10KKyAgICAgICAgYmFkX2Nhc2Vz
LmFwcGVuZCgoJ01pc3NpbmcgVXBncmFkZScsIHJlcXVlc3RfZGVmLCBOb25lLCBUcnVlKSkKKwor
ICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCisgICAgICAg
IHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1VwZ3JhZGUnXSA9ICdub253ZWJzb2NrZXQnCisgICAgICAg
IGJhZF9jYXNlcy5hcHBlbmQoKCdXcm9uZyBVcGdyYWRlJywgcmVxdWVzdF9kZWYsIE5vbmUsIFRy
dWUpKQorCisgICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkK
KyAgICAgICAgZGVsIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ0Nvbm5lY3Rpb24nXQorICAgICAgICBi
YWRfY2FzZXMuYXBwZW5kKCgnTWlzc2luZyBDb25uZWN0aW9uJywgcmVxdWVzdF9kZWYsIE5vbmUs
IFRydWUpKQorCisgICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVm
KCkKKyAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snQ29ubmVjdGlvbiddID0gJ0Rvd25ncmFk
ZScKKyAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ1dyb25nIENvbm5lY3Rpb24nLCByZXF1ZXN0
X2RlZiwgTm9uZSwgVHJ1ZSkpCisKKyAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2Rf
cmVxdWVzdF9kZWYoKQorICAgICAgICBkZWwgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNv
Y2tldC1LZXknXQorICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnTWlzc2luZyBTZWMtV2ViU29j
a2V0LUtleScsIHJlcXVlc3RfZGVmLCA0MDAsIFRydWUpKQorCisgICAgICAgIHJlcXVlc3RfZGVm
ID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKKyAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVy
c1snU2VjLVdlYlNvY2tldC1LZXknXSA9ICgKKyAgICAgICAgICAgICdkR2hsSUhOaGJYQnNaU0J1
YjI1alpRPT1nYXJiYWdlJykKKyAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ1dyb25nIFNlYy1X
ZWJTb2NrZXQtS2V5ICh3aXRoIGdhcmJhZ2Ugb24gdGhlIHRhaWwpJywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVxdWVzdF9kZWYsIDQwMCwgVHJ1ZSkpCisKKyAgICAgICAgcmVxdWVzdF9k
ZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQorICAgICAgICByZXF1ZXN0X2RlZi5oZWFk
ZXJzWydTZWMtV2ViU29ja2V0LUtleSddID0gJ1lRPT0nICAjIEJBU0U2NCBvZiAnYScKKyAgICAg
ICAgYmFkX2Nhc2VzLmFwcGVuZCgKKyAgICAgICAgICAgICgnV3JvbmcgU2VjLVdlYlNvY2tldC1L
ZXkgKGRlY29kZWQgdmFsdWUgaXMgbm90IDE2IG9jdGV0cyBsb25nKScsCisgICAgICAgICAgICAg
cmVxdWVzdF9kZWYsIDQwMCwgVHJ1ZSkpCisKKyAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRl
X2dvb2RfcmVxdWVzdF9kZWYoKQorICAgICAgICAjIFRoZSBsYXN0IGNoYXJhY3RlciByaWdodCBi
ZWZvcmUgPT0gbXVzdCBiZSBhbnkgb2YgQSwgUSwgdyBhbmQgZy4KKyAgICAgICAgcmVxdWVzdF9k
ZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1LZXknXSA9ICgKKyAgICAgICAgICAgICdBUUlEQkFV
R0J3Z0pDZ3NNRFE0UEVDPT0nKQorICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKAorICAgICAgICAg
ICAgKCdXcm9uZyBTZWMtV2ViU29ja2V0LUtleSAocGFkZGluZyBiaXRzIGFyZSBub3QgemVybykn
LAorICAgICAgICAgICAgIHJlcXVlc3RfZGVmLCA0MDAsIFRydWUpKQorCisgICAgICAgIHJlcXVl
c3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKKyAgICAgICAgcmVxdWVzdF9kZWYu
aGVhZGVyc1snU2VjLVdlYlNvY2tldC1LZXknXSA9ICgKKyAgICAgICAgICAgICdkR2hsSUhOaGJY
QnNaU0J1YjI1alpRPT0sZEdobElITmhiWEJzWlNCdWIyNWpaUT09JykKKyAgICAgICAgYmFkX2Nh
c2VzLmFwcGVuZCgKKyAgICAgICAgICAgICgnV3JvbmcgU2VjLVdlYlNvY2tldC1LZXkgKG11bHRp
cGxlIHZhbHVlcyknLAorICAgICAgICAgICAgIHJlcXVlc3RfZGVmLCA0MDAsIFRydWUpKQorCisg
ICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKKyAgICAgICAg
ZGVsIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtVmVyc2lvbiddCisgICAgICAg
IGJhZF9jYXNlcy5hcHBlbmQoKCdNaXNzaW5nIFNlYy1XZWJTb2NrZXQtVmVyc2lvbicsIHJlcXVl
c3RfZGVmLCBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICBUcnVlKSkKKworICAgICAg
ICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCisgICAgICAgIHJlcXVl
c3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtVmVyc2lvbiddID0gJzMnCisgICAgICAgIGJh
ZF9jYXNlcy5hcHBlbmQoKCdXcm9uZyBTZWMtV2ViU29ja2V0LVZlcnNpb24nLCByZXF1ZXN0X2Rl
ZiwgTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2UpKQorCisgICAgICAgIHJl
cXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKKyAgICAgICAgcmVxdWVzdF9k
ZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1WZXJzaW9uJ10gPSAnMTMsIDEzJworICAgICAgICBi
YWRfY2FzZXMuYXBwZW5kKCgnV3JvbmcgU2VjLVdlYlNvY2tldC1WZXJzaW9uIChtdWx0aXBsZSB2
YWx1ZXMpJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdF9kZWYsIDQwMCwgVHJ1
ZSkpCisKKyAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQor
ICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LVByb3RvY29sJ10gPSAn
aWxsZWdhbFx4MDlwcm90b2NvbCcKKyAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ0lsbGVnYWwg
U2VjLVdlYlNvY2tldC1Qcm90b2NvbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVl
c3RfZGVmLCA0MDAsIFRydWUpKQorCisgICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29k
X3JlcXVlc3RfZGVmKCkKKyAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tl
dC1Qcm90b2NvbCddID0gJycKKyAgICAgICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ0VtcHR5IFNlYy1X
ZWJTb2NrZXQtUHJvdG9jb2wnLAorICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0X2Rl
ZiwgNDAwLCBUcnVlKSkKKworICAgICAgICBmb3IgKGNhc2VfbmFtZSwgcmVxdWVzdF9kZWYsIGV4
cGVjdGVkX3N0YXR1cywKKyAgICAgICAgICAgICBleHBlY3RfaGFuZHNoYWtlX2V4Y2VwdGlvbikg
aW4gYmFkX2Nhc2VzOgorICAgICAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1
ZXN0X2RlZikKKyAgICAgICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIG1v
Y2suTW9ja0Rpc3BhdGNoZXIoKSkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBo
YW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCisgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdObyBl
eGNlcHRpb24gdGhyb3duIGZvciBcJyVzXCcgY2FzZScgJSBjYXNlX25hbWUpCisgICAgICAgICAg
ICBleGNlcHQgSGFuZHNoYWtlRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShleHBlY3RfaGFuZHNoYWtlX2V4Y2VwdGlvbikKKyAgICAgICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGV4cGVjdGVkX3N0YXR1cywgZS5zdGF0dXMpCisgICAgICAgICAgICBleGNl
cHQgVmVyc2lvbkV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNl
KGV4cGVjdF9oYW5kc2hha2VfZXhjZXB0aW9uKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5f
Xyc6CisgICAgdW5pdHRlc3QubWFpbigpCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaTAwLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rf
aGFuZHNoYWtlX2h5YmkwMC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43M2Y5ZjI3Y2EyZDk0MjFiMjMwMTVmNThj
ODkzYWNmMWRjMDA5ZGVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfaGFuZHNo
YWtlX2h5YmkwMC5weQpAQCAtMCwwICsxLDUxNiBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisj
CisjIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9u
LgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMg
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisj
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKworCisiIiJUZXN0cyBmb3IgaGFuZHNoYWtlLmh5YmkwMCBtb2R1
bGUuIiIiCisKKworaW1wb3J0IHVuaXR0ZXN0CisKK2ltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBk
YXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgorCitmcm9tIG1v
ZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IEhhbmRzaGFrZUV4Y2VwdGlvbgor
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLmh5YmkwMCBpbXBvcnQgSGFuZHNoYWtlcgor
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLmh5YmkwMCBpbXBvcnQgX3ZhbGlkYXRlX3N1
YnByb3RvY29sCitmcm9tIHRlc3QgaW1wb3J0IG1vY2sKKworCitfVEVTVF9LRVkxID0gJzQgQDEg
IDQ2NTQ2eFclMGwgMSA1JworX1RFU1RfS0VZMiA9ICcxMjk5OCA1IFkzIDEgIC5QMDAnCitfVEVT
VF9LRVkzID0gJ15uOmRzWzRVJworX1RFU1RfQ0hBTExFTkdFX1JFU1BPTlNFID0gJzhqS1NcJ3k6
RypDbyxXeGEtJworCisKK19HT09EX1JFUVVFU1QgPSAoCisgICAgODAsCisgICAgJ0dFVCcsCisg
ICAgJy9kZW1vJywKKyAgICB7CisgICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKKyAgICAg
ICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCisgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTIn
OiBfVEVTVF9LRVkyLAorICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1wbGUn
LAorICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQnLAorICAgICAgICAnU2VjLVdlYlNvY2tl
dC1LZXkxJzogX1RFU1RfS0VZMSwKKyAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5j
b20nLAorICAgIH0sCisgICAgX1RFU1RfS0VZMykKKworX0dPT0RfUkVRVUVTVF9DQVBJVEFMSVpF
RF9IRUFERVJfVkFMVUVTID0gKAorICAgIDgwLAorICAgICdHRVQnLAorICAgICcvZGVtbycsCisg
ICAgeworICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCisgICAgICAgICdDb25uZWN0aW9u
JzogJ1VQR1JBREUnLAorICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RFU1RfS0VZMiwK
KyAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKKyAgICAgICAgJ1Vw
Z3JhZGUnOiAnV0VCU09DS0VUJywKKyAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNU
X0tFWTEsCisgICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKKyAgICB9LAor
ICAgIF9URVNUX0tFWTMpCisKK19HT09EX1JFUVVFU1RfQ0FTRV9NSVhFRF9IRUFERVJfTkFNRVMg
PSAoCisgICAgODAsCisgICAgJ0dFVCcsCisgICAgJy9kZW1vJywKKyAgICB7CisgICAgICAgICdo
T3NUJzogJ2V4YW1wbGUuY29tJywKKyAgICAgICAgJ2NPbk5lQ3RJb04nOiAnVXBncmFkZScsCisg
ICAgICAgICdzRWMtd0Vic09jS2VULWtFeTInOiBfVEVTVF9LRVkyLAorICAgICAgICAnc0VjLXdF
YnNPY0tlVC1wUm9Ub0NvTCc6ICdzYW1wbGUnLAorICAgICAgICAndVBnUmFEZSc6ICdXZWJTb2Nr
ZXQnLAorICAgICAgICAnc0VjLXdFYnNPY0tlVC1rRXkxJzogX1RFU1RfS0VZMSwKKyAgICAgICAg
J29SaUdpTic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAorICAgIH0sCisgICAgX1RFU1RfS0VZMykK
KworX0dPT0RfUkVTUE9OU0VfREVGQVVMVF9QT1JUID0gKAorICAgICdIVFRQLzEuMSAxMDEgV2Vi
U29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nCisgICAgJ1VwZ3JhZGU6IFdlYlNvY2tldFxy
XG4nCisgICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJworICAgICdTZWMtV2ViU29ja2V0LUxv
Y2F0aW9uOiB3czovL2V4YW1wbGUuY29tL2RlbW9cclxuJworICAgICdTZWMtV2ViU29ja2V0LU9y
aWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJcbicKKyAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2Nv
bDogc2FtcGxlXHJcbicKKyAgICAnXHJcbicgKworICAgIF9URVNUX0NIQUxMRU5HRV9SRVNQT05T
RSkKKworX0dPT0RfUkVTUE9OU0VfU0VDVVJFID0gKAorICAgICdIVFRQLzEuMSAxMDEgV2ViU29j
a2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nCisgICAgJ1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4n
CisgICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJworICAgICdTZWMtV2ViU29ja2V0LUxvY2F0
aW9uOiB3c3M6Ly9leGFtcGxlLmNvbS9kZW1vXHJcbicKKyAgICAnU2VjLVdlYlNvY2tldC1Pcmln
aW46IGh0dHA6Ly9leGFtcGxlLmNvbVxyXG4nCisgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6
IHNhbXBsZVxyXG4nCisgICAgJ1xyXG4nICsKKyAgICBfVEVTVF9DSEFMTEVOR0VfUkVTUE9OU0Up
CisKK19HT09EX1JFUVVFU1RfTk9OREVGQVVMVF9QT1JUID0gKAorICAgIDgwODEsCisgICAgJ0dF
VCcsCisgICAgJy9kZW1vJywKKyAgICB7CisgICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tOjgw
ODEnLAorICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKKyAgICAgICAgJ1NlYy1XZWJT
b2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCisgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29s
JzogJ3NhbXBsZScsCisgICAgICAgICdVcGdyYWRlJzogJ1dlYlNvY2tldCcsCisgICAgICAgICdT
ZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAorICAgICAgICAnT3JpZ2luJzogJ2h0dHA6
Ly9leGFtcGxlLmNvbScsCisgICAgfSwKKyAgICBfVEVTVF9LRVkzKQorCitfR09PRF9SRVNQT05T
RV9OT05ERUZBVUxUX1BPUlQgPSAoCisgICAgJ0hUVFAvMS4xIDEwMSBXZWJTb2NrZXQgUHJvdG9j
b2wgSGFuZHNoYWtlXHJcbicKKyAgICAnVXBncmFkZTogV2ViU29ja2V0XHJcbicKKyAgICAnQ29u
bmVjdGlvbjogVXBncmFkZVxyXG4nCisgICAgJ1NlYy1XZWJTb2NrZXQtTG9jYXRpb246IHdzOi8v
ZXhhbXBsZS5jb206ODA4MS9kZW1vXHJcbicKKyAgICAnU2VjLVdlYlNvY2tldC1PcmlnaW46IGh0
dHA6Ly9leGFtcGxlLmNvbVxyXG4nCisgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IHNhbXBs
ZVxyXG4nCisgICAgJ1xyXG4nICsKKyAgICBfVEVTVF9DSEFMTEVOR0VfUkVTUE9OU0UpCisKK19H
T09EX1JFU1BPTlNFX1NFQ1VSRV9OT05ERUYgPSAoCisgICAgJ0hUVFAvMS4xIDEwMSBXZWJTb2Nr
ZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJcbicKKyAgICAnVXBncmFkZTogV2ViU29ja2V0XHJcbicK
KyAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCisgICAgJ1NlYy1XZWJTb2NrZXQtTG9jYXRp
b246IHdzczovL2V4YW1wbGUuY29tOjgwODEvZGVtb1xyXG4nCisgICAgJ1NlYy1XZWJTb2NrZXQt
T3JpZ2luOiBodHRwOi8vZXhhbXBsZS5jb21cclxuJworICAgICdTZWMtV2ViU29ja2V0LVByb3Rv
Y29sOiBzYW1wbGVcclxuJworICAgICdcclxuJyArCisgICAgX1RFU1RfQ0hBTExFTkdFX1JFU1BP
TlNFKQorCitfR09PRF9SRVFVRVNUX05PX1BST1RPQ09MID0gKAorICAgIDgwLAorICAgICdHRVQn
LAorICAgICcvZGVtbycsCisgICAgeworICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCisg
ICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAorICAgICAgICAnU2VjLVdlYlNvY2tldC1L
ZXkyJzogX1RFU1RfS0VZMiwKKyAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29ja2V0JywKKyAgICAg
ICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCisgICAgICAgICdPcmlnaW4nOiAn
aHR0cDovL2V4YW1wbGUuY29tJywKKyAgICB9LAorICAgIF9URVNUX0tFWTMpCisKK19HT09EX1JF
U1BPTlNFX05PX1BST1RPQ09MID0gKAorICAgICdIVFRQLzEuMSAxMDEgV2ViU29ja2V0IFByb3Rv
Y29sIEhhbmRzaGFrZVxyXG4nCisgICAgJ1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4nCisgICAgJ0Nv
bm5lY3Rpb246IFVwZ3JhZGVcclxuJworICAgICdTZWMtV2ViU29ja2V0LUxvY2F0aW9uOiB3czov
L2V4YW1wbGUuY29tL2RlbW9cclxuJworICAgICdTZWMtV2ViU29ja2V0LU9yaWdpbjogaHR0cDov
L2V4YW1wbGUuY29tXHJcbicKKyAgICAnXHJcbicgKworICAgIF9URVNUX0NIQUxMRU5HRV9SRVNQ
T05TRSkKKworX0dPT0RfUkVRVUVTVF9XSVRIX09QVElPTkFMX0hFQURFUlMgPSAoCisgICAgODAs
CisgICAgJ0dFVCcsCisgICAgJy9kZW1vJywKKyAgICB7CisgICAgICAgICdIb3N0JzogJ2V4YW1w
bGUuY29tJywKKyAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCisgICAgICAgICdTZWMt
V2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAorICAgICAgICAnRW1wdHlWYWx1ZSc6ICcnLAor
ICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1wbGUnLAorICAgICAgICAnQUtl
eSc6ICdBVmFsdWUnLAorICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQnLAorICAgICAgICAn
U2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwKKyAgICAgICAgJ09yaWdpbic6ICdodHRw
Oi8vZXhhbXBsZS5jb20nLAorICAgIH0sCisgICAgX1RFU1RfS0VZMykKKworIyBUT0RPKHR5b3No
aW5vKTogSW5jbHVkZSBcciBcbiBpbiBrZXkzLCBjaGFsbGVuZ2UgcmVzcG9uc2UuCisKK19HT09E
X1JFUVVFU1RfV0lUSF9OT05QUklOVEFCTEVfS0VZID0gKAorICAgIDgwLAorICAgICdHRVQnLAor
ICAgICcvZGVtbycsCisgICAgeworICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCisgICAg
ICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAorICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXky
JzogJ3kgIFIyIDQ4IFExTzQgIGV8QlYzIGk1IDEgIHUtIDY1JywKKyAgICAgICAgJ1NlYy1XZWJT
b2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKKyAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29ja2V0
JywKKyAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6ICczNiA3ICAgNzQgaSAgOTIgMlwnbSA5
IDBHJywKKyAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAorICAgIH0sCisg
ICAgJycuam9pbihtYXAoY2hyLCBbMHgwMSwgMHhkMSwgMHhkZCwgMHgzYiwgMHhkMSwgMHg1Niwg
MHg2MywgMHhmZl0pKSkKKworX0dPT0RfUkVTUE9OU0VfV0lUSF9OT05QUklOVEFCTEVfS0VZID0g
KAorICAgICdIVFRQLzEuMSAxMDEgV2ViU29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nCisg
ICAgJ1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4nCisgICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxu
JworICAgICdTZWMtV2ViU29ja2V0LUxvY2F0aW9uOiB3czovL2V4YW1wbGUuY29tL2RlbW9cclxu
JworICAgICdTZWMtV2ViU29ja2V0LU9yaWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJcbicKKyAg
ICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbDogc2FtcGxlXHJcbicKKyAgICAnXHJcbicgKworICAg
ICcnLmpvaW4obWFwKGNociwgWzB4MGIsIDB4OTksIDB4ZmEsIDB4NTUsIDB4YmQsIDB4MDEsIDB4
MjMsIDB4N2IsCisgICAgICAgICAgICAgICAgICAgICAgMHg0NSwgMHhhMiwgMHhmMSwgMHhkMCwg
MHg4NywgMHg4YSwgMHhlZSwgMHhlYl0pKSkKKworX0dPT0RfUkVRVUVTVF9XSVRIX1FVRVJZX1BB
UlQgPSAoCisgICAgODAsCisgICAgJ0dFVCcsCisgICAgJy9kZW1vP2U9bWMyJywKKyAgICB7Cisg
ICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKKyAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBn
cmFkZScsCisgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAorICAgICAg
ICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1wbGUnLAorICAgICAgICAnVXBncmFkZSc6
ICdXZWJTb2NrZXQnLAorICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwK
KyAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAorICAgIH0sCisgICAgX1RF
U1RfS0VZMykKKworX0dPT0RfUkVTUE9OU0VfV0lUSF9RVUVSWV9QQVJUID0gKAorICAgICdIVFRQ
LzEuMSAxMDEgV2ViU29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nCisgICAgJ1VwZ3JhZGU6
IFdlYlNvY2tldFxyXG4nCisgICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJworICAgICdTZWMt
V2ViU29ja2V0LUxvY2F0aW9uOiB3czovL2V4YW1wbGUuY29tL2RlbW8/ZT1tYzJcclxuJworICAg
ICdTZWMtV2ViU29ja2V0LU9yaWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJcbicKKyAgICAnU2Vj
LVdlYlNvY2tldC1Qcm90b2NvbDogc2FtcGxlXHJcbicKKyAgICAnXHJcbicgKworICAgIF9URVNU
X0NIQUxMRU5HRV9SRVNQT05TRSkKKworX0JBRF9SRVFVRVNUUyA9ICgKKyAgICAoICAjIEhUVFAg
cmVxdWVzdAorICAgICAgICA4MCwKKyAgICAgICAgJ0dFVCcsCisgICAgICAgICcvZGVtbycsCisg
ICAgICAgIHsKKyAgICAgICAgICAgICdIb3N0JzogJ3d3dy5nb29nbGUuY29tJywKKyAgICAgICAg
ICAgICdVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wIChNYWNpbnRvc2g7IFU7IEludGVsIE1hYyBP
UyBYIDEwLjU7JworICAgICAgICAgICAgICAgICAgICAgICAgICAnIGVuLVVTOyBydjoxLjkuMS4z
KSBHZWNrby8yMDA5MDgyNCBGaXJlZm94LzMuNS4zJworICAgICAgICAgICAgICAgICAgICAgICAg
ICAnIEdUQjYgR1RCQScsCisgICAgICAgICAgICAnQWNjZXB0JzogJ3RleHQvaHRtbCxhcHBsaWNh
dGlvbi94aHRtbCt4bWwsYXBwbGljYXRpb24veG1sO3E9MC45LCcKKyAgICAgICAgICAgICAgICAg
ICAgICAnKi8qO3E9MC44JywKKyAgICAgICAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiAnZW4tdXMs
ZW47cT0wLjUnLAorICAgICAgICAgICAgJ0FjY2VwdC1FbmNvZGluZyc6ICdnemlwLGRlZmxhdGUn
LAorICAgICAgICAgICAgJ0FjY2VwdC1DaGFyc2V0JzogJ0lTTy04ODU5LTEsdXRmLTg7cT0wLjcs
KjtxPTAuNycsCisgICAgICAgICAgICAnS2VlcC1BbGl2ZSc6ICczMDAnLAorICAgICAgICAgICAg
J0Nvbm5lY3Rpb24nOiAna2VlcC1hbGl2ZScsCisgICAgICAgIH0pLAorICAgICggICMgV3Jvbmcg
bWV0aG9kCisgICAgICAgIDgwLAorICAgICAgICAnUE9TVCcsCisgICAgICAgICcvZGVtbycsCisg
ICAgICAgIHsKKyAgICAgICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKKyAgICAgICAgICAg
ICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAorICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5
Mic6IF9URVNUX0tFWTIsCisgICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdz
YW1wbGUnLAorICAgICAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29ja2V0JywKKyAgICAgICAgICAg
ICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAorICAgICAgICAgICAgJ09yaWdpbic6
ICdodHRwOi8vZXhhbXBsZS5jb20nLAorICAgICAgICB9LAorICAgICAgICBfVEVTVF9LRVkzKSwK
KyAgICAoICAjIE1pc3NpbmcgVXBncmFkZQorICAgICAgICA4MCwKKyAgICAgICAgJ0dFVCcsCisg
ICAgICAgICcvZGVtbycsCisgICAgICAgIHsKKyAgICAgICAgICAgICdIb3N0JzogJ2V4YW1wbGUu
Y29tJywKKyAgICAgICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAorICAgICAgICAgICAg
J1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCisgICAgICAgICAgICAnU2VjLVdlYlNv
Y2tldC1Qcm90b2NvbCc6ICdzYW1wbGUnLAorICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5
MSc6IF9URVNUX0tFWTEsCisgICAgICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNv
bScsCisgICAgICAgIH0sCisgICAgICAgIF9URVNUX0tFWTMpLAorICAgICggICMgV3JvbmcgVXBn
cmFkZQorICAgICAgICA4MCwKKyAgICAgICAgJ0dFVCcsCisgICAgICAgICcvZGVtbycsCisgICAg
ICAgIHsKKyAgICAgICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKKyAgICAgICAgICAgICdD
b25uZWN0aW9uJzogJ1VwZ3JhZGUnLAorICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6
IF9URVNUX0tFWTIsCisgICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1w
bGUnLAorICAgICAgICAgICAgJ1VwZ3JhZGUnOiAnTm9uV2ViU29ja2V0JywKKyAgICAgICAgICAg
ICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAorICAgICAgICAgICAgJ09yaWdpbic6
ICdodHRwOi8vZXhhbXBsZS5jb20nLAorICAgICAgICB9LAorICAgICAgICBfVEVTVF9LRVkzKSwK
KyAgICAoICAjIEVtcHR5IFdlYlNvY2tldC1Qcm90b2NvbAorICAgICAgICA4MCwKKyAgICAgICAg
J0dFVCcsCisgICAgICAgICcvZGVtbycsCisgICAgICAgIHsKKyAgICAgICAgICAgICdIb3N0Jzog
J2V4YW1wbGUuY29tJywKKyAgICAgICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAorICAg
ICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCisgICAgICAgICAgICAn
U2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICcnLAorICAgICAgICAgICAgJ1VwZ3JhZGUnOiAnV2Vi
U29ja2V0JywKKyAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAor
ICAgICAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAorICAgICAgICB9LAor
ICAgICAgICBfVEVTVF9LRVkzKSwKKyAgICAoICAjIFdyb25nIHBvcnQgbnVtYmVyIGZvcm1hdAor
ICAgICAgICA4MCwKKyAgICAgICAgJ0dFVCcsCisgICAgICAgICcvZGVtbycsCisgICAgICAgIHsK
KyAgICAgICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tOjB4NTAnLAorICAgICAgICAgICAgJ0Nv
bm5lY3Rpb24nOiAnVXBncmFkZScsCisgICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzog
X1RFU1RfS0VZMiwKKyAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzogJ3NhbXBs
ZScsCisgICAgICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQnLAorICAgICAgICAgICAgJ1Nl
Yy1XZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCisgICAgICAgICAgICAnT3JpZ2luJzogJ2h0
dHA6Ly9leGFtcGxlLmNvbScsCisgICAgICAgIH0sCisgICAgICAgIF9URVNUX0tFWTMpLAorICAg
ICggICMgSGVhZGVyL2Nvbm5lY3Rpb24gcG9ydCBtaXNtYXRjaAorICAgICAgICA4MDgwLAorICAg
ICAgICAnR0VUJywKKyAgICAgICAgJy9kZW1vJywKKyAgICAgICAgeworICAgICAgICAgICAgJ0hv
c3QnOiAnZXhhbXBsZS5jb20nLAorICAgICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScs
CisgICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RFU1RfS0VZMiwKKyAgICAgICAg
ICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzogJ3NhbXBsZScsCisgICAgICAgICAgICAnVXBn
cmFkZSc6ICdXZWJTb2NrZXQnLAorICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9U
RVNUX0tFWTEsCisgICAgICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScsCisg
ICAgICAgIH0sCisgICAgICAgIF9URVNUX0tFWTMpLAorICAgICggICMgSWxsZWdhbCBXZWJTb2Nr
ZXQtUHJvdG9jb2wKKyAgICAgICAgODAsCisgICAgICAgICdHRVQnLAorICAgICAgICAnL2RlbW8n
LAorICAgICAgICB7CisgICAgICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCisgICAgICAg
ICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKKyAgICAgICAgICAgICdTZWMtV2ViU29ja2V0
LUtleTInOiBfVEVTVF9LRVkyLAorICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wn
OiAnaWxsZWdhbFx4MDlwcm90b2NvbCcsCisgICAgICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2Nr
ZXQnLAorICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCisgICAg
ICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScsCisgICAgICAgIH0sCisgICAg
ICAgIF9URVNUX0tFWTMpLAorKQorCisKK2RlZiBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYp
OgorICAgIGRhdGEgPSAnJworICAgIGlmIGxlbihyZXF1ZXN0X2RlZikgPiA0OgorICAgICAgICBk
YXRhID0gcmVxdWVzdF9kZWZbNF0KKyAgICBjb25uID0gbW9jay5Nb2NrQ29ubihkYXRhKQorICAg
IGNvbm4ubG9jYWxfYWRkciA9ICgnMC4wLjAuMCcsIHJlcXVlc3RfZGVmWzBdKQorICAgIHJldHVy
biBtb2NrLk1vY2tSZXF1ZXN0KAorICAgICAgICBtZXRob2Q9cmVxdWVzdF9kZWZbMV0sCisgICAg
ICAgIHVyaT1yZXF1ZXN0X2RlZlsyXSwKKyAgICAgICAgaGVhZGVyc19pbj1yZXF1ZXN0X2RlZlsz
XSwKKyAgICAgICAgY29ubmVjdGlvbj1jb25uKQorCisKK2RlZiBfY3JlYXRlX2dldF9tZW1vcml6
ZWRfbGluZXMobGluZXMpOgorICAgICIiIkNyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMg
dGhlIGdpdmVuIHN0cmluZy4iIiIKKworICAgIGRlZiBnZXRfbWVtb3JpemVkX2xpbmVzKCk6Cisg
ICAgICAgIHJldHVybiBsaW5lcworICAgIHJldHVybiBnZXRfbWVtb3JpemVkX2xpbmVzCisKKwor
ZGVmIF9jcmVhdGVfcmVxdWVzdHNfd2l0aF9saW5lcyhyZXF1ZXN0X2xpbmVzX3NldCk6CisgICAg
cmVxdWVzdHMgPSBbXQorICAgIGZvciBsaW5lcyBpbiByZXF1ZXN0X2xpbmVzX3NldDoKKyAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNUKQorICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24uZ2V0X21lbW9yaXplZF9saW5lcyA9IF9jcmVhdGVfZ2V0X21lbW9yaXpl
ZF9saW5lcygKKyAgICAgICAgICAgICAgICBsaW5lcykKKyAgICAgICAgcmVxdWVzdHMuYXBwZW5k
KHJlcXVlc3QpCisgICAgcmV0dXJuIHJlcXVlc3RzCisKKworY2xhc3MgSHlCaTAwSGFuZHNoYWtl
clRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0X2Rl
ZmF1bHRfcG9ydChzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09P
RF9SRVFVRVNUKQorICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2Nr
Lk1vY2tEaXNwYXRjaGVyKCkpCisgICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChfR09PRF9SRVNQT05TRV9ERUZBVUxUX1BPUlQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvZGVtbycsIHJlcXVlc3Qud3NfcmVzb3VyY2UpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2h0dHA6Ly9leGFtcGxlLmNvbScsIHJlcXVlc3Qud3Nf
b3JpZ2luKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCd3czovL2V4YW1wbGUuY29tL2RlbW8n
LCByZXF1ZXN0LndzX2xvY2F0aW9uKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdzYW1wbGUn
LCByZXF1ZXN0LndzX3Byb3RvY29sKQorCisgICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0X2NhcGl0
YWxpemVkX2hlYWRlcl92YWx1ZXMoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3Jl
cXVlc3QoX0dPT0RfUkVRVUVTVF9DQVBJVEFMSVpFRF9IRUFERVJfVkFMVUVTKQorICAgICAgICBo
YW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCisg
ICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChfR09PRF9SRVNQT05TRV9ERUZBVUxUX1BPUlQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQorCisgICAgZGVmIHRlc3RfZ29vZF9y
ZXF1ZXN0X2Nhc2VfbWl4ZWRfaGVhZGVyX25hbWVzKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1RfQ0FTRV9NSVhFRF9IRUFERVJfTkFNRVMpCisg
ICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rpc3BhdGNo
ZXIoKSkKKyAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKF9HT09EX1JFU1BPTlNFX0RFRkFVTFRfUE9SVCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCisKKyAgICBkZWYgdGVz
dF9nb29kX3JlcXVlc3Rfc2VjdXJlX2RlZmF1bHRfcG9ydChzZWxmKToKKyAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNUKQorICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ubG9jYWxfYWRkciA9ICgnMC4wLjAuMCcsIDQ0MykKKyAgICAgICAgcmVxdWVzdC5pc19o
dHRwc18gPSBUcnVlCisgICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIG1v
Y2suTW9ja0Rpc3BhdGNoZXIoKSkKKyAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9HT09EX1JFU1BPTlNFX1NFQ1VSRSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3NhbXBsZScsIHJlcXVlc3Qud3NfcHJvdG9jb2wpCisKKyAg
ICBkZWYgdGVzdF9nb29kX3JlcXVlc3Rfbm9uZGVmYXVsdF9wb3J0KHNlbGYpOgorICAgICAgICBy
ZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1RfTk9OREVGQVVMVF9QT1JUKQor
ICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQorICAgICAg
ICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX0dP
T0RfUkVTUE9OU0VfTk9OREVGQVVMVF9QT1JULAorICAgICAgICAgICAgICAgICAgICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnc2FtcGxlJywgcmVxdWVzdC53c19wcm90b2NvbCkKKworICAgIGRlZiB0ZXN0X2dvb2RfcmVx
dWVzdF9zZWN1cmVfbm9uX2RlZmF1bHRfcG9ydChzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9j
cmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNUX05PTkRFRkFVTFRfUE9SVCkKKyAgICAgICAgcmVx
dWVzdC5pc19odHRwc18gPSBUcnVlCisgICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJl
cXVlc3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkKKyAgICAgICAgaGFuZHNoYWtlci5kb19oYW5k
c2hha2UoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9HT09EX1JFU1BPTlNFX1NFQ1VSRV9O
T05ERUYsCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0
ZW5fZGF0YSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdzYW1wbGUnLCByZXF1ZXN0Lndz
X3Byb3RvY29sKQorCisgICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0X2RlZmF1bHRfbm9fcHJvdG9j
b2woc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoX0dPT0RfUkVRVUVT
VF9OT19QUk9UT0NPTCkKKyAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVzdCwg
bW9jay5Nb2NrRGlzcGF0Y2hlcigpKQorICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX0dPT0RfUkVTUE9OU0VfTk9fUFJPVE9DT0wsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgp
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHJlcXVlc3Qud3NfcHJvdG9jb2wpCisK
KyAgICBkZWYgdGVzdF9nb29kX3JlcXVlc3Rfb3B0aW9uYWxfaGVhZGVycyhzZWxmKToKKyAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNUX1dJVEhfT1BUSU9OQUxf
SEVBREVSUykKKyAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9jay5N
b2NrRGlzcGF0Y2hlcigpKQorICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0FWYWx1ZScsCisgICAgICAgICAgICAgICAgICAgICAgICAg
cmVxdWVzdC5oZWFkZXJzX2luWydBS2V5J10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJycs
CisgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzX2luWydFbXB0eVZhbHVl
J10pCisKKyAgICBkZWYgdGVzdF9nb29kX3JlcXVlc3Rfd2l0aF9ub25wcmludGFibGVfa2V5KHNl
bGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1RfV0lU
SF9OT05QUklOVEFCTEVfS0VZKQorICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1
ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCisgICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNo
YWtlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfR09PRF9SRVNQT05TRV9XSVRIX05PTlBS
SU5UQUJMRV9LRVksCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LndyaXR0ZW5fZGF0YSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdzYW1wbGUnLCByZXF1
ZXN0LndzX3Byb3RvY29sKQorCisgICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0X3dpdGhfcXVlcnlf
cGFydChzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFV
RVNUX1dJVEhfUVVFUllfUEFSVCkKKyAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVx
dWVzdCwgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQorICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRz
aGFrZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX0dPT0RfUkVTUE9OU0VfV0lUSF9RVUVS
WV9QQVJULAorICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0
dGVuX2RhdGEoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnd3M6Ly9leGFtcGxlLmNvbS9k
ZW1vP2U9bWMyJywgcmVxdWVzdC53c19sb2NhdGlvbikKKworICAgIGRlZiB0ZXN0X2JhZF9yZXF1
ZXN0cyhzZWxmKToKKyAgICAgICAgZm9yIHJlcXVlc3QgaW4gbWFwKF9jcmVhdGVfcmVxdWVzdCwg
X0JBRF9SRVFVRVNUUyk6CisgICAgICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1
ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNl
cyhIYW5kc2hha2VFeGNlcHRpb24sIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKQorCisKK2NsYXNz
IEh5QmkwMFZhbGlkYXRlU3VicHJvdG9jb2xUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBk
ZWYgdGVzdF92YWxpZGF0ZV9zdWJwcm90b2NvbChzZWxmKToKKyAgICAgICAgIyBzaG91bGQgc3Vj
Y2VlZC4KKyAgICAgICAgX3ZhbGlkYXRlX3N1YnByb3RvY29sKCdzYW1wbGUnKQorICAgICAgICBf
dmFsaWRhdGVfc3VicHJvdG9jb2woJ1NhbXBsZScpCisgICAgICAgIF92YWxpZGF0ZV9zdWJwcm90
b2NvbCgnc2FtcGxlXHg3ZXByb3RvY29sJykKKyAgICAgICAgX3ZhbGlkYXRlX3N1YnByb3RvY29s
KCdzYW1wbGVceDIwcHJvdG9jb2wnKQorCisgICAgICAgICMgc2hvdWxkIGZhaWwuCisgICAgICAg
IHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgX3ZhbGlkYXRlX3N1YnByb3RvY29sLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICBfdmFsaWRhdGVfc3VicHJvdG9jb2wsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICdzYW1wbGVceDE5cHJvdG9jb2wnKQorICAgICAgICBzZWxmLmFzc2Vy
dFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIF92
YWxpZGF0ZV9zdWJwcm90b2NvbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NhbXBsZVx4
N2Zwcm90b2NvbCcpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlv
biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZhbGlkYXRlX3N1YnByb3RvY29sLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAjICJKYXBhbiIgaW4gSmFwYW5lc2UKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgdSdcdTY1ZTVcdTY3MmMnKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21h
aW5fXyc6CisgICAgdW5pdHRlc3QubWFpbigpCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9odHRwX2hlYWRlcl91dGlsLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rl
c3RfaHR0cF9oZWFkZXJfdXRpbC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzZkYzU3YzM3MzEwNzFmZTI5MDE5
MTllMzNmMjRjMWI1NTlmNjA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfaHR0
cF9oZWFkZXJfdXRpbC5weQpAQCAtMCwwICsxLDkwIEBACisjIS91c3IvYmluL2VudiBweXRob24K
KyMKKyMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRp
b24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisKKyIiIlRlc3RzIGZvciBodHRwX2hlYWRlcl91dGlsIG1v
ZHVsZS4iIiIKKworCitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1w
b3J0IGh0dHBfaGVhZGVyX3V0aWwKKworCitjbGFzcyBVbml0VGVzdCh1bml0dGVzdC5UZXN0Q2Fz
ZSk6CisgICAgIiIiQSB1bml0dGVzdCBmb3IgaHR0cF9oZWFkZXJfdXRpbCBtb2R1bGUuIiIiCisK
KyAgICBkZWYgdGVzdF9wYXJzZV9yZWxhdGl2ZV91cmkoc2VsZik6CisgICAgICAgIGhvc3QsIHBv
cnQsIHJlc291cmNlID0gaHR0cF9oZWFkZXJfdXRpbC5wYXJzZV91cmkoJy93cy90ZXN0JykKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBob3N0KQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKE5vbmUsIHBvcnQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy93cy90ZXN0JywgcmVz
b3VyY2UpCisKKyAgICBkZWYgdGVzdF9wYXJzZV9hYnNvbHV0ZV91cmkoc2VsZik6CisgICAgICAg
IGhvc3QsIHBvcnQsIHJlc291cmNlID0gaHR0cF9oZWFkZXJfdXRpbC5wYXJzZV91cmkoCisgICAg
ICAgICAgICAnd3M6Ly9sb2NhbGhvc3Q6MTAwODAvd3MvdGVzdCcpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ2xvY2FsaG9zdCcsIGhvc3QpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTAw
ODAsIHBvcnQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy93cy90ZXN0JywgcmVzb3VyY2Up
CisKKyAgICAgICAgaG9zdCwgcG9ydCwgcmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBhcnNl
X3VyaSgKKyAgICAgICAgICAgICd3czovL2V4YW1wbGUuY29tL3dzL3Rlc3QnKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdleGFtcGxlLmNvbScsIGhvc3QpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoODAsIHBvcnQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy93cy90ZXN0JywgcmVz
b3VyY2UpCisKKyAgICAgICAgaG9zdCwgcG9ydCwgcmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGls
LnBhcnNlX3VyaSgKKyAgICAgICAgICAgICd3c3M6Ly9leGFtcGxlLmNvbS8nKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdleGFtcGxlLmNvbScsIGhvc3QpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoNDQzLCBwb3J0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvJywgcmVzb3VyY2Up
CisKKyAgICAgICAgaG9zdCwgcG9ydCwgcmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBhcnNl
X3VyaSgKKyAgICAgICAgICAgICd3czovL2V4YW1wbGUuY29tOjgwODAnKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdleGFtcGxlLmNvbScsIGhvc3QpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoODA4MCwgcG9ydCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnLycsIHJlc291cmNlKQor
CisgICAgZGVmIHRlc3RfcGFyc2VfaW52YWxpZF91cmkoc2VsZik6CisgICAgICAgIGhvc3QsIHBv
cnQsIHJlc291cmNlID0gaHR0cF9oZWFkZXJfdXRpbC5wYXJzZV91cmkoJ3dzOi8vLycpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcmVzb3VyY2UpCisKKyAgICAgICAgaG9zdCwgcG9y
dCwgcmVzb3VyY2UgPSBodHRwX2hlYWRlcl91dGlsLnBhcnNlX3VyaSgnd3M6Ly9sb2NhbGhvc3Q6
JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCByZXNvdXJjZSkKKworICAgICAgICBo
b3N0LCBwb3J0LCByZXNvdXJjZSA9IGh0dHBfaGVhZGVyX3V0aWwucGFyc2VfdXJpKCd3czovL2xv
Y2FsaG9zdDovd3MnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHJlc291cmNlKQor
CisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgdW5pdHRlc3QubWFpbigpCisKKwor
IyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9tZW1vcml6aW5n
ZmlsZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X21lbW9yaXppbmdmaWxlLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhm
MWI4ZWVmNDMzNzhhOWIwMDYyNWYyMjBjOTdmZTIyZjc0MGE4ZjcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3Rlc3QvdGVzdF9tZW1vcml6aW5nZmlsZS5weQpAQCAtMCwwICsxLDEwNCBAQAorIyEv
dXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgorIyBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBt
ZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisj
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCisiIiJUZXN0cyBmb3Ig
bWVtb3JpemluZ2ZpbGUgbW9kdWxlLiIiIgorCisKK2ltcG9ydCBTdHJpbmdJTworaW1wb3J0IHVu
aXR0ZXN0CisKK2ltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0
ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgorCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQg
bWVtb3JpemluZ2ZpbGUKKworCitjbGFzcyBVdGlsVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Cisg
ICAgIiIiQSB1bml0dGVzdCBmb3IgbWVtb3JpemluZ2ZpbGUgbW9kdWxlLiIiIgorCisgICAgZGVm
IGNoZWNrKHNlbGYsIG1lbW9yaXppbmdfZmlsZSwgbnVtX3JlYWQsIGV4cGVjdGVkX2xpc3QpOgor
ICAgICAgICBmb3IgdW51c2VkIGluIHJhbmdlKG51bV9yZWFkKToKKyAgICAgICAgICAgIG1lbW9y
aXppbmdfZmlsZS5yZWFkbGluZSgpCisgICAgICAgIGFjdHVhbF9saXN0ID0gbWVtb3JpemluZ19m
aWxlLmdldF9tZW1vcml6ZWRfbGluZXMoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihl
eHBlY3RlZF9saXN0KSwgbGVuKGFjdHVhbF9saXN0KSkKKyAgICAgICAgZm9yIGV4cGVjdGVkLCBh
Y3R1YWwgaW4gemlwKGV4cGVjdGVkX2xpc3QsIGFjdHVhbF9saXN0KToKKyAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIGFjdHVhbCkKKworICAgIGRlZiBjaGVja193aXRoX3Np
emUoc2VsZiwgbWVtb3JpemluZ19maWxlLCByZWFkX3NpemUsIGV4cGVjdGVkX2xpc3QpOgorICAg
ICAgICByZWFkX2xpc3QgPSBbXQorICAgICAgICByZWFkX2xpbmUgPSAnJworICAgICAgICB3aGls
ZSBUcnVlOgorICAgICAgICAgICAgbGluZSA9IG1lbW9yaXppbmdfZmlsZS5yZWFkbGluZShyZWFk
X3NpemUpCisgICAgICAgICAgICBsaW5lX2xlbmd0aCA9IGxlbihsaW5lKQorICAgICAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKGxpbmVfbGVuZ3RoIDw9IHJlYWRfc2l6ZSkKKyAgICAgICAgICAgIGlm
IGxpbmVfbGVuZ3RoID09IDA6CisgICAgICAgICAgICAgICAgaWYgcmVhZF9saW5lICE9ICcnOgor
ICAgICAgICAgICAgICAgICAgICByZWFkX2xpc3QuYXBwZW5kKHJlYWRfbGluZSkKKyAgICAgICAg
ICAgICAgICBicmVhaworICAgICAgICAgICAgcmVhZF9saW5lICs9IGxpbmUKKyAgICAgICAgICAg
IGlmIGxpbmVbbGluZV9sZW5ndGggLSAxXSA9PSAnXG4nOgorICAgICAgICAgICAgICAgIHJlYWRf
bGlzdC5hcHBlbmQocmVhZF9saW5lKQorICAgICAgICAgICAgICAgIHJlYWRfbGluZSA9ICcnCisg
ICAgICAgIGFjdHVhbF9saXN0ID0gbWVtb3JpemluZ19maWxlLmdldF9tZW1vcml6ZWRfbGluZXMo
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihleHBlY3RlZF9saXN0KSwgbGVuKGFjdHVh
bF9saXN0KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZXhwZWN0ZWRfbGlzdCksIGxl
bihyZWFkX2xpc3QpKQorICAgICAgICBmb3IgZXhwZWN0ZWQsIGFjdHVhbCwgcmVhZCBpbiB6aXAo
ZXhwZWN0ZWRfbGlzdCwgYWN0dWFsX2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZWFkX2xpc3QpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChl
eHBlY3RlZCwgYWN0dWFsKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwg
cmVhZCkKKworICAgIGRlZiB0ZXN0X2dldF9tZW1vcml6ZWRfbGluZXMoc2VsZik6CisgICAgICAg
IG1lbW9yaXppbmdfZmlsZSA9IG1lbW9yaXppbmdmaWxlLk1lbW9yaXppbmdGaWxlKFN0cmluZ0lP
LlN0cmluZ0lPKAorICAgICAgICAgICAgICAgICdIZWxsb1xuV29ybGRcbldlbGNvbWUnKSkKKyAg
ICAgICAgc2VsZi5jaGVjayhtZW1vcml6aW5nX2ZpbGUsIDMsIFsnSGVsbG9cbicsICdXb3JsZFxu
JywgJ1dlbGNvbWUnXSkKKworICAgIGRlZiB0ZXN0X2dldF9tZW1vcml6ZWRfbGluZXNfbGltaXRf
bWVtb3JpemVkX2xpbmVzKHNlbGYpOgorICAgICAgICBtZW1vcml6aW5nX2ZpbGUgPSBtZW1vcml6
aW5nZmlsZS5NZW1vcml6aW5nRmlsZShTdHJpbmdJTy5TdHJpbmdJTygKKyAgICAgICAgICAgICAg
ICAnSGVsbG9cbldvcmxkXG5XZWxjb21lJyksIDIpCisgICAgICAgIHNlbGYuY2hlY2sobWVtb3Jp
emluZ19maWxlLCAzLCBbJ0hlbGxvXG4nLCAnV29ybGRcbiddKQorCisgICAgZGVmIHRlc3RfZ2V0
X21lbW9yaXplZF9saW5lc19lbXB0eV9maWxlKHNlbGYpOgorICAgICAgICBtZW1vcml6aW5nX2Zp
bGUgPSBtZW1vcml6aW5nZmlsZS5NZW1vcml6aW5nRmlsZShTdHJpbmdJTy5TdHJpbmdJTygKKyAg
ICAgICAgICAgICAgICAnJykpCisgICAgICAgIHNlbGYuY2hlY2sobWVtb3JpemluZ19maWxlLCAx
MCwgW10pCisKKyAgICBkZWYgdGVzdF9nZXRfbWVtb3JpemVkX2xpbmVzX3dpdGhfc2l6ZShzZWxm
KToKKyAgICAgICAgZm9yIHNpemUgaW4gcmFuZ2UoMSwgMTApOgorICAgICAgICAgICAgbWVtb3Jp
emluZ19maWxlID0gbWVtb3JpemluZ2ZpbGUuTWVtb3JpemluZ0ZpbGUoU3RyaW5nSU8uU3RyaW5n
SU8oCisgICAgICAgICAgICAgICAgJ0hlbGxvXG5Xb3JsZFxuV2VsY29tZScpKQorICAgICAgICAg
ICAgc2VsZi5jaGVja193aXRoX3NpemUobWVtb3JpemluZ19maWxlLCBzaXplLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgWydIZWxsb1xuJywgJ1dvcmxkXG4nLCAnV2VsY29tZSdd
KQorCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHVuaXR0ZXN0Lm1haW4oKQorCisK
KyMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfbW9jay5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvdGVzdC90ZXN0X21vY2sucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2RjMjNhNzNkOGZiMWEwN2FlYjNl
NWFlOTQwMmNjODZiOGZjYzM2NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X21v
Y2sucHkKQEAgLTAsMCArMSwxNDUgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5
cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
IyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisKKworIiIiVGVzdHMgZm9yIG1vY2sgbW9kdWxlLiIiIgorCisKK2ltcG9ydCBR
dWV1ZQoraW1wb3J0IHRocmVhZGluZworaW1wb3J0IHVuaXR0ZXN0CisKK2ltcG9ydCBzZXRfc3lz
X3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxl
LgorCitmcm9tIHRlc3QgaW1wb3J0IG1vY2sKKworCitjbGFzcyBNb2NrQ29ublRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgorICAgICIiIkEgdW5pdHRlc3QgZm9yIE1vY2tDb25uIGNsYXNzLiIiIgor
CisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLl9jb25uID0gbW9jay5Nb2NrQ29u
bignQUJDXHJcbkRFRkdcclxuXHJcbkhJSksnKQorCisgICAgZGVmIHRlc3RfcmVhZGxpbmUoc2Vs
Zik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0FCQ1xyXG4nLCBzZWxmLl9jb25uLnJlYWRs
aW5lKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0RFRkdcclxuJywgc2VsZi5fY29ubi5y
ZWFkbGluZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdcclxuJywgc2VsZi5fY29ubi5y
ZWFkbGluZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdISUpLJywgc2VsZi5fY29ubi5y
ZWFkbGluZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLCBzZWxmLl9jb25uLnJlYWRs
aW5lKCkpCisKKyAgICBkZWYgdGVzdF9yZWFkKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdBQkNcclxuRCcsIHNlbGYuX2Nvbm4ucmVhZCg2KSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnRUZHXHJcblxyXG5ISScsIHNlbGYuX2Nvbm4ucmVhZCg5KSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnSksnLCBzZWxmLl9jb25uLnJlYWQoMTApKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCcnLCBzZWxmLl9jb25uLnJlYWQoMTApKQorCisgICAgZGVmIHRlc3RfcmVhZF9hbmRf
cmVhZGxpbmUoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0FCQ1xyXG5EJywgc2Vs
Zi5fY29ubi5yZWFkKDYpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdFRkdcclxuJywgc2Vs
Zi5fY29ubi5yZWFkbGluZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdcclxuSElKSycs
IHNlbGYuX2Nvbm4ucmVhZCg5KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywgc2VsZi5f
Y29ubi5yZWFkbGluZSgpKQorCisgICAgZGVmIHRlc3Rfd3JpdGUoc2VsZik6CisgICAgICAgIHNl
bGYuX2Nvbm4ud3JpdGUoJ0hlbGxvXHJcbicpCisgICAgICAgIHNlbGYuX2Nvbm4ud3JpdGUoJ1dv
cmxkXHJcbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvXHJcbldvcmxkXHJcbics
IHNlbGYuX2Nvbm4ud3JpdHRlbl9kYXRhKCkpCisKKworY2xhc3MgTW9ja0Jsb2NraW5nQ29ublRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICIiIkEgdW5pdHRlc3QgZm9yIE1vY2tCbG9ja2lu
Z0Nvbm4gY2xhc3MuIiIiCisKKyAgICBkZWYgdGVzdF9yZWFkKHNlbGYpOgorICAgICAgICAiIiJU
ZXN0cyB0aGF0IGRhdGEgcHV0IHRvIE1vY2tCbG9ja2luZ0Nvbm4gYnkgcHV0X2J5dGVzIG1ldGhv
ZCBjYW4gYmUKKyAgICAgICAgcmVhZCBmcm9tIGl0LgorICAgICAgICAiIiIKKworICAgICAgICBj
bGFzcyBMaW5lUmVhZGVyKHRocmVhZGluZy5UaHJlYWQpOgorICAgICAgICAgICAgIiIiQSB0ZXN0
IGNsYXNzIHRoYXQgbGF1bmNoZXMgYSB0aHJlYWQsIGNhbGxzIHJlYWRsaW5lIG9uIHRoZQorICAg
ICAgICAgICAgc3BlY2lmaWVkIGNvbm4gcmVwZWF0ZWRseSBhbmQgcHV0cyB0aGUgcmVhZCBkYXRh
IHRvIHRoZSBzcGVjaWZpZWQKKyAgICAgICAgICAgIHF1ZXVlLgorICAgICAgICAgICAgIiIiCisK
KyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25uLCBxdWV1ZSk6CisgICAgICAgICAg
ICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhzZWxmKQorICAgICAgICAgICAgICAgIHNl
bGYuX3F1ZXVlID0gcXVldWUKKyAgICAgICAgICAgICAgICBzZWxmLl9jb25uID0gY29ubgorICAg
ICAgICAgICAgICAgIHNlbGYuc2V0RGFlbW9uKFRydWUpCisgICAgICAgICAgICAgICAgc2VsZi5z
dGFydCgpCisKKyAgICAgICAgICAgIGRlZiBydW4oc2VsZik6CisgICAgICAgICAgICAgICAgd2hp
bGUgVHJ1ZToKKyAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHNlbGYuX2Nvbm4ucmVhZGxpbmUo
KQorICAgICAgICAgICAgICAgICAgICBzZWxmLl9xdWV1ZS5wdXQoZGF0YSkKKworICAgICAgICBj
b25uID0gbW9jay5Nb2NrQmxvY2tpbmdDb25uKCkKKyAgICAgICAgcXVldWUgPSBRdWV1ZS5RdWV1
ZSgpCisgICAgICAgIHJlYWRlciA9IExpbmVSZWFkZXIoY29ubiwgcXVldWUpCisgICAgICAgIHNl
bGYuZmFpbFVubGVzcyhxdWV1ZS5lbXB0eSgpKQorICAgICAgICBjb25uLnB1dF9ieXRlcygnRm9v
IGJhclxyXG4nKQorICAgICAgICByZWFkID0gcXVldWUuZ2V0KCkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnRm9vIGJhclxyXG4nLCByZWFkKQorCisKK2NsYXNzIE1vY2tUYWJsZVRlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgorICAgICIiIkEgdW5pdHRlc3QgZm9yIE1vY2tUYWJsZSBjbGFzcy4i
IiIKKworICAgIGRlZiB0ZXN0X2NyZWF0ZV9mcm9tX2RpY3Qoc2VsZik6CisgICAgICAgIHRhYmxl
ID0gbW9jay5Nb2NrVGFibGUoeydLZXknOiAnVmFsdWUnfSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnVmFsdWUnLCB0YWJsZS5nZXQoJ0tFWScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdWYWx1ZScsIHRhYmxlWydrZXknXSkKKworICAgIGRlZiB0ZXN0X2NyZWF0ZV9mcm9tX2xpc3Qo
c2VsZik6CisgICAgICAgIHRhYmxlID0gbW9jay5Nb2NrVGFibGUoWygnS2V5JywgJ1ZhbHVlJyld
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1ZScsIHRhYmxlLmdldCgnS0VZJykpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGVbJ2tleSddKQorCisgICAgZGVm
IHRlc3RfY3JlYXRlX2Zyb21fdHVwbGUoc2VsZik6CisgICAgICAgIHRhYmxlID0gbW9jay5Nb2Nr
VGFibGUoKCgnS2V5JywgJ1ZhbHVlJyksKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnVmFs
dWUnLCB0YWJsZS5nZXQoJ0tFWScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1ZScs
IHRhYmxlWydrZXknXSkKKworICAgIGRlZiB0ZXN0X3NldF9hbmRfZ2V0KHNlbGYpOgorICAgICAg
ICB0YWJsZSA9IG1vY2suTW9ja1RhYmxlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25l
LCB0YWJsZS5nZXQoJ0tleScpKQorICAgICAgICB0YWJsZVsnS2V5J10gPSAnVmFsdWUnCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGUuZ2V0KCdLZXknKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJsZS5nZXQoJ2tleScpKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdWYWx1ZScsIHRhYmxlLmdldCgnS0VZJykpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGVbJ0tleSddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdWYWx1ZScsIHRhYmxlWydrZXknXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnVmFsdWUn
LCB0YWJsZVsnS0VZJ10pCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICB1bml0
dGVzdC5tYWluKCkKKworCisjIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVz
dC90ZXN0X21zZ3V0aWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9tc2d1dGlsLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjlkYmJiNWQ4ZDRiOWFjMjNlOWM4NzdiYmNlZGI5MjljZTA5MDhjZjEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3Rlc3QvdGVzdF9tc2d1dGlsLnB5CkBAIC0wLDAgKzEsMTM0NiBAQAorIyEvdXNy
L2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgorIyBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6
CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCisiIiJUZXN0cyBmb3IgbXNn
dXRpbCBtb2R1bGUuIiIiCisKKworaW1wb3J0IGFycmF5CitpbXBvcnQgUXVldWUKK2ltcG9ydCBy
YW5kb20KK2ltcG9ydCBzdHJ1Y3QKK2ltcG9ydCB1bml0dGVzdAoraW1wb3J0IHpsaWIKKworaW1w
b3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNv
Y2tldCBtb2R1bGUuCisKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KK2Zyb20g
bW9kX3B5d2Vic29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0IERlZmxhdGVGcmFtZUV4dGVuc2lvblBy
b2Nlc3NvcgorZnJvbSBtb2RfcHl3ZWJzb2NrZXQuZXh0ZW5zaW9ucyBpbXBvcnQgUGVyTWVzc2Fn
ZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IKK2Zyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBt
c2d1dGlsCitmcm9tIG1vZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0IEludmFsaWRVVEY4RXhj
ZXB0aW9uCitmcm9tIG1vZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbQorZnJvbSBt
b2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBTdHJlYW1IaXhpZTc1Citmcm9tIG1vZF9weXdl
YnNvY2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbU9wdGlvbnMKK2Zyb20gbW9kX3B5d2Vic29ja2V0
IGltcG9ydCB1dGlsCitmcm9tIHRlc3QgaW1wb3J0IG1vY2sKKworCisjIFdlIHVzZSBvbmUgZml4
ZWQgbm9uY2UgZm9yIHRlc3RpbmcgaW5zdGVhZCBvZiBjcnlwdG9ncmFwaGljYWxseSBzZWN1cmUg
UFJORy4KK19NQVNLSU5HX05PTkNFID0gJ0FCQ0QnCisKKworZGVmIF9tYXNrX2h5YmkoZnJhbWUp
OgorICAgIGZyYW1lX2tleSA9IG1hcChvcmQsIF9NQVNLSU5HX05PTkNFKQorICAgIGZyYW1lX2tl
eV9sZW4gPSBsZW4oZnJhbWVfa2V5KQorICAgIHJlc3VsdCA9IGFycmF5LmFycmF5KCdCJykKKyAg
ICByZXN1bHQuZnJvbXN0cmluZyhmcmFtZSkKKyAgICBjb3VudCA9IDAKKyAgICBmb3IgaSBpbiB4
cmFuZ2UobGVuKHJlc3VsdCkpOgorICAgICAgICByZXN1bHRbaV0gXj0gZnJhbWVfa2V5W2NvdW50
XQorICAgICAgICBjb3VudCA9IChjb3VudCArIDEpICUgZnJhbWVfa2V5X2xlbgorICAgIHJldHVy
biBfTUFTS0lOR19OT05DRSArIHJlc3VsdC50b3N0cmluZygpCisKKworZGVmIF9pbnN0YWxsX2V4
dGVuc2lvbl9wcm9jZXNzb3IocHJvY2Vzc29yLCByZXF1ZXN0LCBzdHJlYW1fb3B0aW9ucyk6Cisg
ICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCisgICAgaWYg
cmVzcG9uc2UgaXMgbm90IE5vbmU6CisgICAgICAgIHByb2Nlc3Nvci5zZXR1cF9zdHJlYW1fb3B0
aW9ucyhzdHJlYW1fb3B0aW9ucykKKyAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vz
c29ycy5hcHBlbmQocHJvY2Vzc29yKQorCisKK2RlZiBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdk
YXRhKAorICAgICAgICByZWFkX2RhdGEsCisgICAgICAgIGRlZmxhdGVfZnJhbWVfcmVxdWVzdD1O
b25lLAorICAgICAgICBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1Ob25lKToKKyAgICByZXEg
PSBtb2NrLk1vY2tSZXF1ZXN0KGNvbm5lY3Rpb249bW9jay5Nb2NrQ29ubignJy5qb2luKHJlYWRf
ZGF0YSkpKQorICAgIHJlcS53c192ZXJzaW9uID0gY29tbW9uLlZFUlNJT05fSFlCSV9MQVRFU1QK
KyAgICByZXEud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMgPSBbXQorCisgICAgcHJvY2Vzc29yID0g
Tm9uZQorICAgIGlmIGRlZmxhdGVfZnJhbWVfcmVxdWVzdCBpcyBub3QgTm9uZToKKyAgICAgICAg
cHJvY2Vzc29yID0gRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKGRlZmxhdGVfZnJhbWVf
cmVxdWVzdCkKKyAgICBlbGlmIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0IGlzIG5vdCBOb25l
OgorICAgICAgICBwcm9jZXNzb3IgPSBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3Nv
cigKKyAgICAgICAgICAgICAgICBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdCkKKworICAgIHN0
cmVhbV9vcHRpb25zID0gU3RyZWFtT3B0aW9ucygpCisgICAgaWYgcHJvY2Vzc29yIGlzIG5vdCBO
b25lOgorICAgICAgICBfaW5zdGFsbF9leHRlbnNpb25fcHJvY2Vzc29yKHByb2Nlc3NvciwgcmVx
LCBzdHJlYW1fb3B0aW9ucykKKyAgICByZXEud3Nfc3RyZWFtID0gU3RyZWFtKHJlcSwgc3RyZWFt
X29wdGlvbnMpCisKKyAgICByZXR1cm4gcmVxCisKKworZGVmIF9jcmVhdGVfcmVxdWVzdCgqZnJh
bWVzKToKKyAgICAiIiJDcmVhdGVzIE1vY2tSZXF1ZXN0IHVzaW5nIGRhdGEgZ2l2ZW4gYXMgZnJh
bWVzLgorCisgICAgZnJhbWVzIHdpbGwgYmUgcmV0dXJuZWQgb24gY2FsbGluZyByZXF1ZXN0LmNv
bm5lY3Rpb24ucmVhZCgpIHdoZXJlIHJlcXVlc3QKKyAgICBpcyBNb2NrUmVxdWVzdCByZXR1cm5l
ZCBieSB0aGlzIGZ1bmN0aW9uLgorICAgICIiIgorCisgICAgcmVhZF9kYXRhID0gW10KKyAgICBm
b3IgKGhlYWRlciwgYm9keSkgaW4gZnJhbWVzOgorICAgICAgICByZWFkX2RhdGEuYXBwZW5kKGhl
YWRlciArIF9tYXNrX2h5YmkoYm9keSkpCisKKyAgICByZXR1cm4gX2NyZWF0ZV9yZXF1ZXN0X2Zy
b21fcmF3ZGF0YShyZWFkX2RhdGEpCisKKworZGVmIF9jcmVhdGVfYmxvY2tpbmdfcmVxdWVzdCgp
OgorICAgICIiIkNyZWF0ZXMgTW9ja1JlcXVlc3QuCisKKyAgICBEYXRhIHdyaXR0ZW4gdG8gYSBN
b2NrUmVxdWVzdCBjYW4gYmUgcmVhZCBvdXQgYnkgY2FsbGluZworICAgIHJlcXVlc3QuY29ubmVj
dGlvbi53cml0dGVuX2RhdGEoKS4KKyAgICAiIiIKKworICAgIHJlcSA9IG1vY2suTW9ja1JlcXVl
c3QoY29ubmVjdGlvbj1tb2NrLk1vY2tCbG9ja2luZ0Nvbm4oKSkKKyAgICByZXEud3NfdmVyc2lv
biA9IGNvbW1vbi5WRVJTSU9OX0hZQklfTEFURVNUCisgICAgc3RyZWFtX29wdGlvbnMgPSBTdHJl
YW1PcHRpb25zKCkKKyAgICByZXEud3Nfc3RyZWFtID0gU3RyZWFtKHJlcSwgc3RyZWFtX29wdGlv
bnMpCisgICAgcmV0dXJuIHJlcQorCisKK2RlZiBfY3JlYXRlX3JlcXVlc3RfaGl4aWU3NShyZWFk
X2RhdGE9JycpOgorICAgIHJlcSA9IG1vY2suTW9ja1JlcXVlc3QoY29ubmVjdGlvbj1tb2NrLk1v
Y2tDb25uKHJlYWRfZGF0YSkpCisgICAgcmVxLndzX3N0cmVhbSA9IFN0cmVhbUhpeGllNzUocmVx
KQorICAgIHJldHVybiByZXEKKworCitkZWYgX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0X2hpeGll
NzUoKToKKyAgICByZXEgPSBtb2NrLk1vY2tSZXF1ZXN0KGNvbm5lY3Rpb249bW9jay5Nb2NrQmxv
Y2tpbmdDb25uKCkpCisgICAgcmVxLndzX3N0cmVhbSA9IFN0cmVhbUhpeGllNzUocmVxKQorICAg
IHJldHVybiByZXEKKworCitjbGFzcyBCYXNpY01lc3NhZ2VUZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKKyAgICAiIiJCYXNpYyB0ZXN0cyBmb3IgU3RyZWFtLiIiIgorCisgICAgZGVmIHRlc3Rfc2Vu
ZF9tZXNzYWdlKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKKyAg
ICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnXHg4MVx4MDVIZWxsbycsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVu
X2RhdGEoKSkKKworICAgICAgICBwYXlsb2FkID0gJ2EnICogMTI1CisgICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX3JlcXVlc3QoKQorICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0
LCBwYXlsb2FkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDgxXHg3ZCcgKyBwYXlsb2Fk
LAorICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2Rh
dGEoKSkKKworICAgIGRlZiB0ZXN0X3NlbmRfbWVkaXVtX21lc3NhZ2Uoc2VsZik6CisgICAgICAg
IHBheWxvYWQgPSAnYScgKiAxMjYKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgp
CisgICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsIHBheWxvYWQpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODFceDdlXHgwMFx4N2UnICsgcGF5bG9hZCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCisKKyAg
ICAgICAgcGF5bG9hZCA9ICdhJyAqICgoMSA8PCAxNikgLSAxKQorICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9yZXF1ZXN0KCkKKyAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwg
cGF5bG9hZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4MVx4N2VceGZmXHhmZicgKyBw
YXlsb2FkLAorICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0
dGVuX2RhdGEoKSkKKworICAgIGRlZiB0ZXN0X3NlbmRfbGFyZ2VfbWVzc2FnZShzZWxmKToKKyAg
ICAgICAgcGF5bG9hZCA9ICdhJyAqICgxIDw8IDE2KQorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0
ZV9yZXF1ZXN0KCkKKyAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgcGF5bG9h
ZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4MVx4N2ZceDAwXHgwMFx4MDBceDAwXHgw
MFx4MDFceDAwXHgwMCcgKyBwYXlsb2FkLAorICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKKworICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2Fn
ZV91bmljb2RlKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKKyAg
ICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgdSdcdTY1ZTUnKQorICAgICAgICAj
IFUrNjVlNSBpcyBlbmNvZGVkIGFzIGU2LDk3LGE1IGluIFVURi04CisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ1x4ODFceDAzXHhlNlx4OTdceGE1JywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCisKKyAgICBkZWYgdGVzdF9zZW5k
X21lc3NhZ2VfZnJhZ21lbnRzKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1
ZXN0KCkKKyAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJywgRmFs
c2UpCisgICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICcgJywgRmFsc2UpCisg
ICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdXb3JsZCcsIEZhbHNlKQorICAg
ICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnIScsIFRydWUpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ1x4MDFceDA1SGVsbG9ceDAwXHgwMSBceDAwXHgwNVdvcmxkXHg4MFx4
MDEhJywKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRl
bl9kYXRhKCkpCisKKyAgICBkZWYgdGVzdF9zZW5kX2ZyYWdtZW50c19pbW1lZGlhdGVfemVyb190
ZXJtaW5hdGlvbihzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgpCisg
ICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbyBXb3JsZCEnLCBGYWxz
ZSkKKyAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJycsIFRydWUpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MDFceDBjSGVsbG8gV29ybGQhXHg4MFx4MDAnLAorICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkK
KworICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZShzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfcmVxdWVzdCgKKyAgICAgICAgICAgICgnXHg4MVx4ODUnLCAnSGVsbG8nKSwgKCdc
eDgxXHg4NicsICdXb3JsZCEnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBt
c2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnV29ybGQhJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCisKKyAgICAgICAg
cGF5bG9hZCA9ICdhJyAqIDEyNQorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCgn
XHg4MVx4ZmQnLCBwYXlsb2FkKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXlsb2FkLCBt
c2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKKworICAgIGRlZiB0ZXN0X3JlY2VpdmVf
bWVkaXVtX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIHBheWxvYWQgPSAnYScgKiAxMjYKKyAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgoJ1x4ODFceGZlXHgwMFx4N2UnLCBwYXlsb2Fk
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXlsb2FkLCBtc2d1dGlsLnJlY2VpdmVfbWVz
c2FnZShyZXF1ZXN0KSkKKworICAgICAgICBwYXlsb2FkID0gJ2EnICogKCgxIDw8IDE2KSAtIDEp
CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdceDgxXHhmZVx4ZmZceGZmJywg
cGF5bG9hZCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF5bG9hZCwgbXNndXRpbC5yZWNl
aXZlX21lc3NhZ2UocmVxdWVzdCkpCisKKyAgICBkZWYgdGVzdF9yZWNlaXZlX2xhcmdlX21lc3Nh
Z2Uoc2VsZik6CisgICAgICAgIHBheWxvYWQgPSAnYScgKiAoMSA8PCAxNikKKyAgICAgICAgcmVx
dWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKKyAgICAgICAgICAgICgnXHg4MVx4ZmZceDAwXHgwMFx4
MDBceDAwXHgwMFx4MDFceDAwXHgwMCcsIHBheWxvYWQpKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHBheWxvYWQsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQorCisgICAgZGVm
IHRlc3RfcmVjZWl2ZV9sZW5ndGhfbm90X2VuY29kZWRfdXNpbmdfbWluaW1hbF9udW1iZXJfb2Zf
Ynl0ZXMoc2VsZik6CisgICAgICAgICMgTG9nIHdhcm5pbmcgb24gcmVjZWl2aW5nIGJhZCBwYXls
b2FkIGxlbmd0aCBmaWVsZCB0aGF0IGRvZXNuJ3QgdXNlCisgICAgICAgICMgbWluaW1hbCBudW1i
ZXIgb2YgYnl0ZXMgYnV0IGNvbnRpbnVlIHByb2Nlc3NpbmcuCisKKyAgICAgICAgcGF5bG9hZCA9
ICdhJworICAgICAgICAjIDEgYnl0ZSBjYW4gYmUgcmVwcmVzZW50ZWQgd2l0aG91dCBleHRlbmRl
ZCBwYXlsb2FkIGxlbmd0aCBmaWVsZC4KKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVz
dCgKKyAgICAgICAgICAgICgnXHg4MVx4ZmZceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgw
MScsIHBheWxvYWQpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBheWxvYWQsIG1zZ3V0aWwu
cmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQorCisgICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdl
X3VuaWNvZGUoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdceDgx
XHg4MycsICdceGU2XHg5Y1x4YWMnKSkKKyAgICAgICAgIyBVKzY3MmMgaXMgZW5jb2RlZCBhcyBl
Niw5YyxhYyBpbiBVVEYtOAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHUnXHU2NzJjJywgbXNn
dXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCisKKyAgICBkZWYgdGVzdF9yZWNlaXZlX21l
c3NhZ2VfZXJyb25lb3VzX3VuaWNvZGUoc2VsZik6CisgICAgICAgICMgXHg4MCBhbmQgXHg4MSBh
cmUgaW52YWxpZCBhcyBVVEYtOC4KKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgo
J1x4ODFceDgyJywgJ1x4ODBceDgxJykpCisgICAgICAgICMgSW52YWxpZCBjaGFyYWN0ZXJzIHNo
b3VsZCByYWlzZSBJbnZhbGlkVVRGOEV4Y2VwdGlvbgorICAgICAgICBzZWxmLmFzc2VydFJhaXNl
cyhJbnZhbGlkVVRGOEV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbXNndXRp
bC5yZWNlaXZlX21lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QpCisK
KyAgICBkZWYgdGVzdF9yZWNlaXZlX2ZyYWdtZW50cyhzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfcmVxdWVzdCgKKyAgICAgICAgICAgICgnXHgwMVx4ODUnLCAnSGVsbG8nKSwKKyAg
ICAgICAgICAgICgnXHgwMFx4ODEnLCAnICcpLAorICAgICAgICAgICAgKCdceDAwXHg4NScsICdX
b3JsZCcpLAorICAgICAgICAgICAgKCdceDgwXHg4MScsICchJykpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ0hlbGxvIFdvcmxkIScsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3Qp
KQorCisgICAgZGVmIHRlc3RfcmVjZWl2ZV9mcmFnbWVudHNfdW5pY29kZShzZWxmKToKKyAgICAg
ICAgIyBVVEYtOCBlbmNvZGVzIFUrNmYyMiBpbnRvIGU2YmNhMiBhbmQgVSs1YjU3IGludG8gZTVh
ZDk3LgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAorICAgICAgICAgICAgKCdc
eDAxXHg4MicsICdceGU2XHhiYycpLAorICAgICAgICAgICAgKCdceDAwXHg4MicsICdceGEyXHhl
NScpLAorICAgICAgICAgICAgKCdceDgwXHg4MicsICdceGFkXHg5NycpKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHUnXHU2ZjIyXHU1YjU3JywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVx
dWVzdCkpCisKKyAgICBkZWYgdGVzdF9yZWNlaXZlX2ZyYWdtZW50c19pbW1lZGlhdGVfemVyb190
ZXJtaW5hdGlvbihzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKKyAg
ICAgICAgICAgICgnXHgwMVx4OGMnLCAnSGVsbG8gV29ybGQhJyksICgnXHg4MFx4ODAnLCAnJykp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvIFdvcmxkIScsIG1zZ3V0aWwucmVjZWl2
ZV9tZXNzYWdlKHJlcXVlc3QpKQorCisgICAgZGVmIHRlc3RfcmVjZWl2ZV9mcmFnbWVudHNfZHVw
bGljYXRlX3N0YXJ0KHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAor
ICAgICAgICAgICAgKCdceDAxXHg4NScsICdIZWxsbycpLCAoJ1x4MDFceDg1JywgJ1dvcmxkJykp
CisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0aWwuSW52YWxpZEZyYW1lRXhjZXB0aW9u
LAorICAgICAgICAgICAgICAgICAgICAgICAgICBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCkKKworICAgIGRlZiB0ZXN0X3JlY2VpdmVf
ZnJhZ21lbnRzX2ludGVybWVkaWF0ZV9idXRfbm90X3N0YXJ0ZWQoc2VsZik6CisgICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdceDAwXHg4NScsICdIZWxsbycpKQorICAgICAgICBz
ZWxmLmFzc2VydFJhaXNlcyhtc2d1dGlsLkludmFsaWRGcmFtZUV4Y2VwdGlvbiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcXVlc3QpCisKKyAgICBkZWYgdGVzdF9yZWNlaXZlX2ZyYWdtZW50c19l
bmRfYnV0X25vdF9zdGFydGVkKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1
ZXN0KCgnXHg4MFx4ODUnLCAnSGVsbG8nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXNn
dXRpbC5JbnZhbGlkRnJhbWVFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1z
Z3V0aWwucmVjZWl2ZV9tZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0
KQorCisgICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX2Rpc2NhcmQoc2VsZik6CisgICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCisgICAgICAgICAgICAoJ1x4OGZceDg2JywgJ0lH
Tk9SRScpLCAoJ1x4ODFceDg1JywgJ0hlbGxvJyksCisgICAgICAgICAgICAoJ1x4OGZceDg5Jywg
J0RJU1JFR0FSRCcpLCAoJ1x4ODFceDg2JywgJ1dvcmxkIScpKQorICAgICAgICBzZWxmLmFzc2Vy
dFJhaXNlcyhtc2d1dGlsLlVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlLCByZXF1ZXN0KQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3Qp
KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtc2d1dGlsLlVuc3VwcG9ydGVkRnJhbWVFeGNl
cHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdl
LCByZXF1ZXN0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCEnLCBtc2d1dGlsLnJl
Y2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKKworICAgIGRlZiB0ZXN0X3JlY2VpdmVfY2xvc2Uoc2Vs
Zik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCisgICAgICAgICAgICAoJ1x4
ODhceDhhJywgc3RydWN0LnBhY2soJyFIJywgMTAwMCkgKyAnR29vZCBieWUnKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChOb25lLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxMDAwLCByZXF1ZXN0LndzX2Nsb3NlX2NvZGUpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0dvb2QgYnllJywgcmVxdWVzdC53c19jbG9zZV9yZWFz
b24pCisKKyAgICBkZWYgdGVzdF9zZW5kX2xvbmdlc3RfY2xvc2Uoc2VsZik6CisgICAgICAgIHJl
YXNvbiA9ICdhJyAqIDEyMworICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAorICAg
ICAgICAgICAgKCdceDg4XHhmZCcsCisgICAgICAgICAgICAgc3RydWN0LnBhY2soJyFIJywgY29t
bW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSkgKyByZWFzb24pKQorICAgICAgICByZXF1ZXN0Lndz
X3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKGNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHJlcXVlc3Qud3NfY2xvc2VfY29kZSwgY29tbW9uLlNUQVRVU19O
T1JNQUxfQ0xPU1VSRSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXF1ZXN0LndzX2Nsb3Nl
X3JlYXNvbiwgcmVhc29uKQorCisgICAgZGVmIHRlc3Rfc2VuZF9jbG9zZV90b29fbG9uZyhzZWxm
KToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgpCisgICAgICAgIHNlbGYuYXNz
ZXJ0UmFpc2VzKG1zZ3V0aWwuQmFkT3BlcmF0aW9uRXhjZXB0aW9uLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICBTdHJlYW0uY2xvc2VfY29ubmVjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVxdWVzdC53c19zdHJlYW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1v
bi5TVEFUVVNfTk9STUFMX0NMT1NVUkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdhJyAq
IDEyNCkKKworICAgIGRlZiB0ZXN0X3NlbmRfY2xvc2VfaW5jb25zaXN0ZW50X2NvZGVfYW5kX3Jl
YXNvbihzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgpCisgICAgICAg
ICMgcmVhc29uIHBhcmFtZXRlciBtdXN0IG5vdCBiZSBzcGVjaWZpZWQgd2hlbiBjb2RlIGlzIE5v
bmUuCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0aWwuQmFkT3BlcmF0aW9uRXhjZXB0
aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJlYW0uY2xvc2VfY29ubmVjdGlvbiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19zdHJlYW0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdhJykKKwor
ICAgIGRlZiB0ZXN0X3NlbmRfcGluZyhzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
cmVxdWVzdCgpCisgICAgICAgIG1zZ3V0aWwuc2VuZF9waW5nKHJlcXVlc3QsICdIZWxsbyBXb3Js
ZCEnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDg5XHgwY0hlbGxvIFdvcmxkIScsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgp
KQorCisgICAgZGVmIHRlc3Rfc2VuZF9sb25nZXN0X3Bpbmcoc2VsZik6CisgICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX3JlcXVlc3QoKQorICAgICAgICBtc2d1dGlsLnNlbmRfcGluZyhyZXF1ZXN0
LCAnYScgKiAxMjUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODlceDdkJyArICdhJyAq
IDEyNSwKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRl
bl9kYXRhKCkpCisKKyAgICBkZWYgdGVzdF9zZW5kX3BpbmdfdG9vX2xvbmcoc2VsZik6CisgICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNl
cyhtc2d1dGlsLkJhZE9wZXJhdGlvbkV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgbXNndXRpbC5zZW5kX3BpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICdhJyAqIDEyNikKKworICAgIGRlZiB0ZXN0X3Jl
Y2VpdmVfcGluZyhzZWxmKToKKyAgICAgICAgIiIiVGVzdHMgcmVjZWl2aW5nIGEgcGluZyBjb250
cm9sIGZyYW1lLiIiIgorCisgICAgICAgIGRlZiBoYW5kbGVyKHJlcXVlc3QsIG1lc3NhZ2UpOgor
ICAgICAgICAgICAgcmVxdWVzdC5jYWxsZWQgPSBUcnVlCisKKyAgICAgICAgIyBTdHJlYW0gYXV0
b21hdGljYWxseSByZXNwb25kIHRvIHBpbmcgd2l0aCBwb25nIHdpdGhvdXQgYW55IGFjdGlvbgor
ICAgICAgICAjIGJ5IGFwcGxpY2F0aW9uIGxheWVyLgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0
ZV9yZXF1ZXN0KAorICAgICAgICAgICAgKCdceDg5XHg4NScsICdIZWxsbycpLCAoJ1x4ODFceDg1
JywgJ1dvcmxkJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywgbXNndXRpbC5y
ZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4OGFc
eDA1SGVsbG8nLAorICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53
cml0dGVuX2RhdGEoKSkKKworICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAorICAg
ICAgICAgICAgKCdceDg5XHg4NScsICdIZWxsbycpLCAoJ1x4ODFceDg1JywgJ1dvcmxkJykpCisg
ICAgICAgIHJlcXVlc3Qub25fcGluZ19oYW5kbGVyID0gaGFuZGxlcgorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdXb3JsZCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQorICAg
ICAgICBzZWxmLmFzc2VydFRydWUocmVxdWVzdC5jYWxsZWQpCisKKyAgICBkZWYgdGVzdF9yZWNl
aXZlX2xvbmdlc3RfcGluZyhzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVz
dCgKKyAgICAgICAgICAgICgnXHg4OVx4ZmQnLCAnYScgKiAxMjUpLCAoJ1x4ODFceDg1JywgJ1dv
cmxkJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywgbXNndXRpbC5yZWNlaXZl
X21lc3NhZ2UocmVxdWVzdCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4OGFceDdkJyAr
ICdhJyAqIDEyNSwKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
d3JpdHRlbl9kYXRhKCkpCisKKyAgICBkZWYgdGVzdF9yZWNlaXZlX3BpbmdfdG9vX2xvbmcoc2Vs
Zik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdceDg5XHhmZVx4MDBceDdl
JywgJ2EnICogMTI2KSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5JbnZhbGlk
RnJhbWVFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ3V0aWwucmVjZWl2
ZV9tZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0KQorCisgICAgZGVm
IHRlc3RfcmVjZWl2ZV9wb25nKHNlbGYpOgorICAgICAgICAiIiJUZXN0cyByZWNlaXZpbmcgYSBw
b25nIGNvbnRyb2wgZnJhbWUuIiIiCisKKyAgICAgICAgZGVmIGhhbmRsZXIocmVxdWVzdCwgbWVz
c2FnZSk6CisgICAgICAgICAgICByZXF1ZXN0LmNhbGxlZCA9IFRydWUKKworICAgICAgICByZXF1
ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAorICAgICAgICAgICAgKCdceDhhXHg4NScsICdIZWxsbycp
LCAoJ1x4ODFceDg1JywgJ1dvcmxkJykpCisgICAgICAgIHJlcXVlc3Qub25fcG9uZ19oYW5kbGVy
ID0gaGFuZGxlcgorICAgICAgICBtc2d1dGlsLnNlbmRfcGluZyhyZXF1ZXN0LCAnSGVsbG8nKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDg5XHgwNUhlbGxvJywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCisgICAgICAgICMg
VmFsaWQgcG9uZyBpcyByZWNlaXZlZCwgYnV0IHJlY2VpdmVfbWVzc2FnZSB3b24ndCByZXR1cm4g
Zm9yIGl0LgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCcsIG1zZ3V0aWwucmVjZWl2
ZV9tZXNzYWdlKHJlcXVlc3QpKQorICAgICAgICAjIENoZWNrIHRoYXQgbm90aGluZyB3YXMgd3Jp
dHRlbiBhZnRlciByZWNlaXZlX21lc3NhZ2UgY2FsbC4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnXHg4OVx4MDVIZWxsbycsCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXF1ZXN0
LmNhbGxlZCkKKworICAgIGRlZiB0ZXN0X3JlY2VpdmVfdW5zb2xpY2l0ZWRfcG9uZyhzZWxmKToK
KyAgICAgICAgIyBVbnNvbGljaXRlZCBwb25nIGlzIGFsbG93ZWQgZnJvbSBIeUJpIDA3LgorICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAorICAgICAgICAgICAgKCdceDhhXHg4NScs
ICdIZWxsbycpLCAoJ1x4ODFceDg1JywgJ1dvcmxkJykpCisgICAgICAgIG1zZ3V0aWwucmVjZWl2
ZV9tZXNzYWdlKHJlcXVlc3QpCisKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgK
KyAgICAgICAgICAgICgnXHg4YVx4ODUnLCAnSGVsbG8nKSwgKCdceDgxXHg4NScsICdXb3JsZCcp
KQorICAgICAgICBtc2d1dGlsLnNlbmRfcGluZyhyZXF1ZXN0LCAnSnVtYm8nKQorICAgICAgICAj
IEJvZHkgbWlzbWF0Y2guCisgICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3Qp
CisKKyAgICBkZWYgdGVzdF9waW5nX2Nhbm5vdF9iZV9mcmFnbWVudGVkKHNlbGYpOgorICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCgnXHgwOVx4ODUnLCAnSGVsbG8nKSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5JbnZhbGlkRnJhbWVFeGNlcHRpb24sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXF1ZXN0KQorCisgICAgZGVmIHRlc3RfcGluZ193aXRoX3Rvb19s
b25nX3BheWxvYWQoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdc
eDg5XHhmZVx4MDFceDAwJywgJ2EnICogMjU2KSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMo
bXNndXRpbC5JbnZhbGlkRnJhbWVFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAg
IG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1
ZXN0KQorCisKK2NsYXNzIERlZmxhdGVGcmFtZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAg
ICIiIlRlc3RzIGZvciBjaGVja2luZyBkZWZsYXRlLWZyYW1lIGV4dGVuc2lvbi4iIiIKKworICAg
IGRlZiB0ZXN0X3NlbmRfbWVzc2FnZShzZWxmKToKKyAgICAgICAgY29tcHJlc3MgPSB6bGliLmNv
bXByZXNzb2JqKAorICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIu
REVGTEFURUQsIC16bGliLk1BWF9XQklUUykKKworICAgICAgICBleHRlbnNpb24gPSBjb21tb24u
RXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKKyAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCisgICAgICAgICAgICAn
JywgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0PWV4dGVuc2lvbikKKyAgICAgICAgbXNndXRpbC5zZW5k
X21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKKyAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2Uo
cmVxdWVzdCwgJ1dvcmxkJykKKworICAgICAgICBleHBlY3RlZCA9ICcnCisKKyAgICAgICAgY29t
cHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCisgICAgICAgIGNvbXBy
ZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCisgICAgICAg
IGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KKyAgICAgICAgZXhwZWN0
ZWQgKz0gJ1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF9oZWxsbykKKyAgICAgICAgZXhwZWN0ZWQg
Kz0gY29tcHJlc3NlZF9oZWxsbworCisgICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVz
cy5jb21wcmVzcygnV29ybGQnKQorICAgICAgICBjb21wcmVzc2VkX3dvcmxkICs9IGNvbXByZXNz
LmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQorICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29t
cHJlc3NlZF93b3JsZFs6LTRdCisgICAgICAgIGV4cGVjdGVkICs9ICdceGMxJWMnICUgbGVuKGNv
bXByZXNzZWRfd29ybGQpCisgICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfd29ybGQKKwor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3Jp
dHRlbl9kYXRhKCkpCisKKyAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2VfYmZpbmFsKHNlbGYpOgor
ICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZM
QVRFX0ZSQU1FX0VYVEVOU0lPTikKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9m
cm9tX3Jhd2RhdGEoCisgICAgICAgICAgICAnJywgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0PWV4dGVu
c2lvbikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoMSwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5z
aW9uX3Byb2Nlc3NvcnMpKQorICAgICAgICBkZWZsYXRlX2ZyYW1lX3Byb2Nlc3NvciA9IHJlcXVl
c3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNbMF0KKyAgICAgICAgZGVmbGF0ZV9mcmFtZV9wcm9j
ZXNzb3Iuc2V0X2JmaW5hbChUcnVlKQorICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1
ZXN0LCAnSGVsbG8nKQorICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnV29y
bGQnKQorCisgICAgICAgIGV4cGVjdGVkID0gJycKKworICAgICAgICBjb21wcmVzcyA9IHpsaWIu
Y29tcHJlc3NvYmooCisgICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxp
Yi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0g
Y29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKKyAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBj
b21wcmVzcy5mbHVzaCh6bGliLlpfRklOSVNIKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0g
Y29tcHJlc3NlZF9oZWxsbyArIGNocigwKQorICAgICAgICBleHBlY3RlZCArPSAnXHhjMSVjJyAl
IGxlbihjb21wcmVzc2VkX2hlbGxvKQorICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2hl
bGxvCisKKyAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAorICAgICAgICAgICAg
emxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklU
UykKKyAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzLmNvbXByZXNzKCdXb3JsZCcp
CisgICAgICAgIGNvbXByZXNzZWRfd29ybGQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX0ZJTklT
SCkKKyAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzZWRfd29ybGQgKyBjaHIoMCkK
KyAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF93b3JsZCkKKyAg
ICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF93b3JsZAorCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKKworICAg
IGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV9jb21wX2JpdChzZWxmKToKKyAgICAgICAgY29tcHJlc3Mg
PSB6bGliLmNvbXByZXNzb2JqKAorICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJ
T04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKKworICAgICAgICBleHRlbnNpb24g
PSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lP
TikKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCisgICAg
ICAgICAgICAnJywgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0PWV4dGVuc2lvbikKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoMSwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnMpKQor
ICAgICAgICBkZWZsYXRlX2ZyYW1lX3Byb2Nlc3NvciA9IHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3By
b2Nlc3NvcnNbMF0KKyAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxv
JykKKyAgICAgICAgZGVmbGF0ZV9mcmFtZV9wcm9jZXNzb3IuZGlzYWJsZV9vdXRnb2luZ19jb21w
cmVzc2lvbigpCisgICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycp
CisgICAgICAgIGRlZmxhdGVfZnJhbWVfcHJvY2Vzc29yLmVuYWJsZV9vdXRnb2luZ19jb21wcmVz
c2lvbigpCisgICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCisK
KyAgICAgICAgZXhwZWN0ZWQgPSAnJworCisgICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21w
cmVzcy5jb21wcmVzcygnSGVsbG8nKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXBy
ZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0g
Y29tcHJlc3NlZF9oZWxsb1s6LTRdCisgICAgICAgIGV4cGVjdGVkICs9ICdceGMxJWMnICUgbGVu
KGNvbXByZXNzZWRfaGVsbG8pCisgICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfaGVsbG8K
KworICAgICAgICBleHBlY3RlZCArPSAnXHg4MVx4MDVIZWxsbycKKworICAgICAgICBjb21wcmVz
c2VkXzJuZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCisgICAgICAgIGNvbXBy
ZXNzZWRfMm5kX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQorICAg
ICAgICBjb21wcmVzc2VkXzJuZF9oZWxsbyA9IGNvbXByZXNzZWRfMm5kX2hlbGxvWzotNF0KKyAg
ICAgICAgZXhwZWN0ZWQgKz0gJ1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF8ybmRfaGVsbG8pCisg
ICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfMm5kX2hlbGxvCisKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChleHBlY3RlZCwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQor
CisgICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX25vX2NvbnRleHRfdGFrZW92ZXJfcGFyYW1ldGVy
KHNlbGYpOgorICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCisgICAgICAgICAg
ICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dC
SVRTKQorCisgICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29t
bW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQorICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFt
ZXRlcignbm9fY29udGV4dF90YWtlb3ZlcicsIE5vbmUpCisgICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAorICAgICAgICAgICAgJycsIGRlZmxhdGVfZnJhbWVf
cmVxdWVzdD1leHRlbnNpb24pCisgICAgICAgIGZvciBpIGluIHhyYW5nZSgzKToKKyAgICAgICAg
ICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCisKKyAgICAgICAgY29t
cHJlc3NlZF9tZXNzYWdlID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKKyAgICAgICAgY29t
cHJlc3NlZF9tZXNzYWdlICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQorICAg
ICAgICBjb21wcmVzc2VkX21lc3NhZ2UgPSBjb21wcmVzc2VkX21lc3NhZ2VbOi00XQorICAgICAg
ICBleHBlY3RlZCA9ICdceGMxJWMnICUgbGVuKGNvbXByZXNzZWRfbWVzc2FnZSkKKyAgICAgICAg
ZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9tZXNzYWdlCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgKKyAgICAgICAgICAgIGV4cGVjdGVkICsgZXhwZWN0ZWQgKyBleHBlY3RlZCwgcmVxdWVzdC5j
b25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQorCisgICAgZGVmIHRlc3RfYmFkX3JlcXVlc3RfcGFy
YW1ldGVycyhzZWxmKToKKyAgICAgICAgIiIiVGVzdHMgdGhhdCBpZiB0aGVyZSdzIGFueXRoaW5n
IHdyb25nIHdpdGggZGVmbGF0ZS1mcmFtZSBleHRlbnNpb24KKyAgICAgICAgcmVxdWVzdCwgZGVm
bGF0ZS1mcmFtZSBpcyByZWplY3RlZC4KKyAgICAgICAgIiIiCisKKyAgICAgICAgZXh0ZW5zaW9u
ID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJ
T04pCisgICAgICAgICMgbWF4X3dpbmRvd19iaXRzIGxlc3MgdGhhbiA4IGlzIGlsbGVnYWwuCisg
ICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdtYXhfd2luZG93X2JpdHMnLCAnNycpCisg
ICAgICAgIHByb2Nlc3NvciA9IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihleHRlbnNp
b24pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcHJvY2Vzc29yLmdldF9leHRlbnNp
b25fcmVzcG9uc2UoKSkKKworICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFy
YW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKKyAgICAgICAgIyBtYXhfd2lu
ZG93X2JpdHMgZ3JlYXRlciB0aGFuIDE1IGlzIGlsbGVnYWwuCisgICAgICAgIGV4dGVuc2lvbi5h
ZGRfcGFyYW1ldGVyKCdtYXhfd2luZG93X2JpdHMnLCAnMTYnKQorICAgICAgICBwcm9jZXNzb3Ig
PSBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IoZXh0ZW5zaW9uKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKE5vbmUsIHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCisK
KyAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVG
TEFURV9GUkFNRV9FWFRFTlNJT04pCisgICAgICAgICMgTm9uIGludGVnZXIgbWF4X3dpbmRvd19i
aXRzIGlzIGlsbGVnYWwuCisgICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdtYXhfd2lu
ZG93X2JpdHMnLCAnZm9vYmFyJykKKyAgICAgICAgcHJvY2Vzc29yID0gRGVmbGF0ZUZyYW1lRXh0
ZW5zaW9uUHJvY2Vzc29yKGV4dGVuc2lvbikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25l
LCBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpKQorCisgICAgICAgIGV4dGVuc2lv
biA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5T
SU9OKQorICAgICAgICAjIG5vX2NvbnRleHRfdGFrZW92ZXIgbXVzdCBub3QgaGF2ZSBhbnkgdmFs
dWUuCisgICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdub19jb250ZXh0X3Rha2VvdmVy
JywgJ2Zvb2JhcicpCisgICAgICAgIHByb2Nlc3NvciA9IERlZmxhdGVGcmFtZUV4dGVuc2lvblBy
b2Nlc3NvcihleHRlbnNpb24pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcHJvY2Vz
c29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKSkKKworICAgIGRlZiB0ZXN0X3Jlc3BvbnNlX3Bh
cmFtZXRlcnMoc2VsZik6CisgICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJh
bWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQorICAgICAgICBwcm9jZXNzb3Ig
PSBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IoZXh0ZW5zaW9uKQorICAgICAgICBwcm9j
ZXNzb3Iuc2V0X3Jlc3BvbnNlX3dpbmRvd19iaXRzKDgpCisgICAgICAgIHJlc3BvbnNlID0gcHJv
Y2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQorICAgICAgICBzZWxmLmFzc2VydFRydWUo
cmVzcG9uc2UuaGFzX3BhcmFtZXRlcignbWF4X3dpbmRvd19iaXRzJykpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJzgnLCByZXNwb25zZS5nZXRfcGFyYW1ldGVyX3ZhbHVlKCdtYXhfd2luZG93
X2JpdHMnKSkKKworICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVy
KGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKKyAgICAgICAgcHJvY2Vzc29yID0gRGVm
bGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKGV4dGVuc2lvbikKKyAgICAgICAgcHJvY2Vzc29y
LnNldF9yZXNwb25zZV9ub19jb250ZXh0X3Rha2VvdmVyKFRydWUpCisgICAgICAgIHJlc3BvbnNl
ID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQorICAgICAgICBzZWxmLmFzc2Vy
dFRydWUocmVzcG9uc2UuaGFzX3BhcmFtZXRlcignbm9fY29udGV4dF90YWtlb3ZlcicpKQorICAg
ICAgICBzZWxmLmFzc2VydFRydWUoCisgICAgICAgICAgICByZXNwb25zZS5nZXRfcGFyYW1ldGVy
X3ZhbHVlKCdub19jb250ZXh0X3Rha2VvdmVyJykgaXMgTm9uZSkKKworICAgIGRlZiB0ZXN0X3Jl
Y2VpdmVfbWVzc2FnZShzZWxmKToKKyAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2Jq
KAorICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQs
IC16bGliLk1BWF9XQklUUykKKworICAgICAgICBkYXRhID0gJycKKworICAgICAgICBjb21wcmVz
c2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKKyAgICAgICAgY29tcHJlc3Nl
ZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKKyAgICAgICAgY29t
cHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQorICAgICAgICBkYXRhICs9ICdc
eGMxJWMnICUgKGxlbihjb21wcmVzc2VkX2hlbGxvKSB8IDB4ODApCisgICAgICAgIGRhdGEgKz0g
X21hc2tfaHliaShjb21wcmVzc2VkX2hlbGxvKQorCisgICAgICAgIGNvbXByZXNzZWRfd2Vic29j
a2V0ID0gY29tcHJlc3MuY29tcHJlc3MoJ1dlYlNvY2tldCcpCisgICAgICAgIGNvbXByZXNzZWRf
d2Vic29ja2V0ICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9GSU5JU0gpCisgICAgICAgIGNvbXBy
ZXNzZWRfd2Vic29ja2V0ICs9ICdceDAwJworICAgICAgICBkYXRhICs9ICdceGMxJWMnICUgKGxl
bihjb21wcmVzc2VkX3dlYnNvY2tldCkgfCAweDgwKQorICAgICAgICBkYXRhICs9IF9tYXNrX2h5
YmkoY29tcHJlc3NlZF93ZWJzb2NrZXQpCisKKyAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXBy
ZXNzb2JqKAorICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVG
TEFURUQsIC16bGliLk1BWF9XQklUUykKKworICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29t
cHJlc3MuY29tcHJlc3MoJ1dvcmxkJykKKyAgICAgICAgY29tcHJlc3NlZF93b3JsZCArPSBjb21w
cmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKKyAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9
IGNvbXByZXNzZWRfd29ybGRbOi00XQorICAgICAgICBkYXRhICs9ICdceGMxJWMnICUgKGxlbihj
b21wcmVzc2VkX3dvcmxkKSB8IDB4ODApCisgICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21w
cmVzc2VkX3dvcmxkKQorCisgICAgICAgICMgQ2xvc2UgZnJhbWUKKyAgICAgICAgZGF0YSArPSAn
XHg4OFx4OGEnICsgX21hc2tfaHliaShzdHJ1Y3QucGFjaygnIUgnLCAxMDAwKSArICdHb29kIGJ5
ZScpCisKKyAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21t
b24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3Jl
cXVlc3RfZnJvbV9yYXdkYXRhKAorICAgICAgICAgICAgZGF0YSwgZGVmbGF0ZV9mcmFtZV9yZXF1
ZXN0PWV4dGVuc2lvbikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtc2d1dGls
LnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV2Vi
U29ja2V0JywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ1dvcmxkJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCisK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShy
ZXF1ZXN0KSkKKworICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9jbGllbnRfdXNpbmdfc21h
bGxlcl93aW5kb3coc2VsZik6CisgICAgICAgICIiIlRlc3QgdGhhdCBmcmFtZXMgY29taW5nIGZy
b20gYSBjbGllbnQgd2hpY2ggaXMgdXNpbmcgc21hbGxlciB3aW5kb3cKKyAgICAgICAgc2l6ZSB0
aGF0IHRoZSBzZXJ2ZXIgYXJlIGNvcnJlY3RseSByZWNlaXZlZC4KKyAgICAgICAgIiIiCisKKyAg
ICAgICAgIyBVc2luZyB0aGUgc21hbGxlc3Qgd2luZG93IGJpdHMgb2YgOCBmb3IgZ2VuZXJhdGlu
ZyBpbnB1dCBmcmFtZXMuCisgICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKKyAg
ICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtOCkK
KworICAgICAgICBkYXRhID0gJycKKworICAgICAgICAjIFVzZSBhIGZyYW1lIHdob3NlIGNvbnRl
bnQgaXMgYmlnZ2VyIHRoYW4gdGhlIGNsaWVudHMnIERFRkxBVEUgd2luZG93CisgICAgICAgICMg
c2l6ZSBiZWZvcmUgY29tcHJlc3Npb24uIFRoZSBjb250ZW50IG1haW5seSBjb25zaXN0cyBvZiAn
YScgYnV0CisgICAgICAgICMgcmVwZXRpdGlvbiBvZiAnYicgaXMgcHV0IGF0IHRoZSBoZWFkIGFu
ZCB0YWlsIHNvIHRoYXQgaWYgdGhlIHdpbmRvdworICAgICAgICAjIHNpemUgaXMgYmlnLCB0aGUg
aGVhZCBpcyBiYWNrLXJlZmVyZW5jZWQgYnV0IGlmIHNtYWxsLCBub3QuCisgICAgICAgIHBheWxv
YWQgPSAnYicgKiA2NCArICdhJyAqIDEwMjQgKyAnYicgKiA2NAorICAgICAgICBjb21wcmVzc2Vk
X2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MocGF5bG9hZCkKKyAgICAgICAgY29tcHJlc3NlZF9o
ZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKKyAgICAgICAgY29tcHJl
c3NlZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQorICAgICAgICBkYXRhICs9ICdceGMx
JWMnICUgKGxlbihjb21wcmVzc2VkX2hlbGxvKSB8IDB4ODApCisgICAgICAgIGRhdGEgKz0gX21h
c2tfaHliaShjb21wcmVzc2VkX2hlbGxvKQorCisgICAgICAgICMgQ2xvc2UgZnJhbWUKKyAgICAg
ICAgZGF0YSArPSAnXHg4OFx4OGEnICsgX21hc2tfaHliaShzdHJ1Y3QucGFjaygnIUgnLCAxMDAw
KSArICdHb29kIGJ5ZScpCisKKyAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBh
cmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCisgICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAorICAgICAgICAgICAgZGF0YSwgZGVmbGF0
ZV9mcmFtZV9yZXF1ZXN0PWV4dGVuc2lvbikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXls
b2FkLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKKworICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKE5vbmUsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQorCisgICAg
ZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX2NvbXBfYml0KHNlbGYpOgorICAgICAgICBjb21wcmVz
cyA9IHpsaWIuY29tcHJlc3NvYmooCisgICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVT
U0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQorCisgICAgICAgIGRhdGEgPSAn
JworCisgICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8n
KQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5D
X0ZMVVNIKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRd
CisgICAgICAgIGRhdGEgKz0gJ1x4YzElYycgJSAobGVuKGNvbXByZXNzZWRfaGVsbG8pIHwgMHg4
MCkKKyAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfaGVsbG8pCisKKyAgICAg
ICAgZGF0YSArPSAnXHg4MVx4ODUnICsgX21hc2tfaHliaSgnSGVsbG8nKQorCisgICAgICAgIGNv
bXByZXNzID0gemxpYi5jb21wcmVzc29iaigKKyAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NP
TVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCisKKyAgICAgICAgY29t
cHJlc3NlZF8ybmRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQorICAgICAgICBj
b21wcmVzc2VkXzJuZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkK
KyAgICAgICAgY29tcHJlc3NlZF8ybmRfaGVsbG8gPSBjb21wcmVzc2VkXzJuZF9oZWxsb1s6LTRd
CisgICAgICAgIGRhdGEgKz0gJ1x4YzElYycgJSAobGVuKGNvbXByZXNzZWRfMm5kX2hlbGxvKSB8
IDB4ODApCisgICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkXzJuZF9oZWxsbykK
KworICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5E
RUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVz
dF9mcm9tX3Jhd2RhdGEoCisgICAgICAgICAgICBkYXRhLCBkZWZsYXRlX2ZyYW1lX3JlcXVlc3Q9
ZXh0ZW5zaW9uKQorICAgICAgICBmb3IgaSBpbiB4cmFuZ2UoMyk6CisgICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdIZWxsbycsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQor
CisgICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX3ZhcmlvdXNfYnR5cGUoc2VsZik6CisgICAg
ICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKKyAgICAgICAgICAgIHpsaWIuWl9ERUZB
VUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCisKKyAgICAg
ICAgZGF0YSA9ICcnCisKKyAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXBy
ZXNzKCdIZWxsbycpCisgICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2go
emxpYi5aX1NZTkNfRkxVU0gpCisgICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2Vk
X2hlbGxvWzotNF0KKyAgICAgICAgZGF0YSArPSAnXHhjMSVjJyAlIChsZW4oY29tcHJlc3NlZF9o
ZWxsbykgfCAweDgwKQorICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF9oZWxs
bykKKworICAgICAgICBjb21wcmVzc2VkX3dlYnNvY2tldCA9IGNvbXByZXNzLmNvbXByZXNzKCdX
ZWJTb2NrZXQnKQorICAgICAgICBjb21wcmVzc2VkX3dlYnNvY2tldCArPSBjb21wcmVzcy5mbHVz
aCh6bGliLlpfRklOSVNIKQorICAgICAgICBjb21wcmVzc2VkX3dlYnNvY2tldCArPSAnXHgwMCcK
KyAgICAgICAgZGF0YSArPSAnXHhjMSVjJyAlIChsZW4oY29tcHJlc3NlZF93ZWJzb2NrZXQpIHwg
MHg4MCkKKyAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfd2Vic29ja2V0KQor
CisgICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKKyAgICAgICAgICAgIHpsaWIu
Wl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCisK
KyAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzLmNvbXByZXNzKCdXb3JsZCcpCisg
ICAgICAgIGNvbXByZXNzZWRfd29ybGQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxV
U0gpCisgICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzc2VkX3dvcmxkWzotNF0KKyAg
ICAgICAgZGF0YSArPSAnXHhjMSVjJyAlIChsZW4oY29tcHJlc3NlZF93b3JsZCkgfCAweDgwKQor
ICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF93b3JsZCkKKworICAgICAgICAj
IENsb3NlIGZyYW1lCisgICAgICAgIGRhdGEgKz0gJ1x4ODhceDhhJyArIF9tYXNrX2h5Ymkoc3Ry
dWN0LnBhY2soJyFIJywgMTAwMCkgKyAnR29vZCBieWUnKQorCisgICAgICAgIGV4dGVuc2lvbiA9
IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9O
KQorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKKyAgICAg
ICAgICAgIGRhdGEsIGRlZmxhdGVfZnJhbWVfcmVxdWVzdD1leHRlbnNpb24pCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dlYlNvY2tldCcsIG1zZ3V0aWwucmVjZWl2ZV9t
ZXNzYWdlKHJlcXVlc3QpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCcsIG1zZ3V0
aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Tm9uZSwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCisKKworY2xhc3MgUGVyTWVz
c2FnZURlZmxhdGVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJUZXN0cyBmb3IgcGVy
bWVzc2FnZS1kZWZsYXRlIGV4dGVuc2lvbi4iIiIKKworICAgIGRlZiB0ZXN0X3Jlc3BvbnNlX3Bh
cmFtZXRlcnMoc2VsZik6CisgICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJh
bWV0ZXIoCisgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikK
KyAgICAgICAgZXh0ZW5zaW9uLmFkZF9wYXJhbWV0ZXIoJ3NlcnZlcl9ub19jb250ZXh0X3Rha2Vv
dmVyJywgTm9uZSkKKyAgICAgICAgcHJvY2Vzc29yID0gUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNp
b25Qcm9jZXNzb3IoZXh0ZW5zaW9uKQorICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRf
ZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKAorICAgICAgICAg
ICAgcmVzcG9uc2UuaGFzX3BhcmFtZXRlcignc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXInKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIE5vbmUsIHJlc3BvbnNlLmdl
dF9wYXJhbWV0ZXJfdmFsdWUoJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJykpCisKKyAgICAg
ICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKKyAgICAgICAgICAgIGNv
bW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQorICAgICAgICBleHRlbnNpb24uYWRk
X3BhcmFtZXRlcignY2xpZW50X21heF93aW5kb3dfYml0cycsIE5vbmUpCisgICAgICAgIHByb2Nl
c3NvciA9IFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKGV4dGVuc2lvbikKKwor
ICAgICAgICBwcm9jZXNzb3Iuc2V0X2NsaWVudF9tYXhfd2luZG93X2JpdHMoOCkKKyAgICAgICAg
cHJvY2Vzc29yLnNldF9jbGllbnRfbm9fY29udGV4dF90YWtlb3ZlcihUcnVlKQorICAgICAgICBy
ZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgICc4JywgcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcl92
YWx1ZSgnY2xpZW50X21heF93aW5kb3dfYml0cycpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUo
CisgICAgICAgICAgICByZXNwb25zZS5oYXNfcGFyYW1ldGVyKCdjbGllbnRfbm9fY29udGV4dF90
YWtlb3ZlcicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgTm9uZSwK
KyAgICAgICAgICAgIHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJfdmFsdWUoJ2NsaWVudF9ub19jb250
ZXh0X3Rha2VvdmVyJykpCisKKyAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2Uoc2VsZik6CisgICAg
ICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCisgICAgICAgICAgICAg
ICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCisgICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAorICAgICAgICAgICAgICAgICcnLCBwZXJt
ZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCisgICAgICAgIG1zZ3V0aWwuc2VuZF9t
ZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCisKKyAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXBy
ZXNzb2JqKAorICAgICAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGli
LkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCisgICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBj
b21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNv
bXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxv
ID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCisgICAgICAgIGV4cGVjdGVkID0gJ1x4YzElYycgJSBs
ZW4oY29tcHJlc3NlZF9oZWxsbykKKyAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9oZWxs
bworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24u
d3JpdHRlbl9kYXRhKCkpCisKKyAgICBkZWYgdGVzdF9zZW5kX2VtcHR5X21lc3NhZ2Uoc2VsZik6
CisgICAgICAgICIiIlRlc3QgdGhhdCBhbiBlbXB0eSBtZXNzYWdlIGlzIGNvbXByZXNzZWQgY29y
cmVjdGx5LiIiIgorCisgICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0
ZXIoCisgICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04p
CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAorICAgICAg
ICAgICAgICAgICcnLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCisKKyAg
ICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJycpCisKKyAgICAgICAgIyBQYXls
b2FkIGluIGJpbmFyeTogMGIwMDAwMDAwMAorICAgICAgICAjIEZyb20gTFNCLAorICAgICAgICAj
IC0gMSBiaXQgb2YgQkZJTkFMICgwKQorICAgICAgICAjIC0gMiBiaXRzIG9mIEJUWVBFIChubyBj
b21wcmVzc2lvbikKKyAgICAgICAgIyAtIDUgYml0cyBvZiBwYWRkaW5nCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ1x4YzFceDAxXHgwMCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQorCisgICAgZGVmIHRlc3Rfc2VuZF9tZXNz
YWdlX3dpdGhfbnVsbF9jaGFyYWN0ZXIoc2VsZik6CisgICAgICAgICIiIlRlc3QgdGhhdCBhIHNp
bXBsZSBwYXlsb2FkIChvbmUgbnVsbCkgaXMgZnJhbWVkIGNvcnJlY3RseS4iIiIKKworICAgICAg
ICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAorICAgICAgICAgICAgICAg
IGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQorICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKKyAgICAgICAgICAgICAgICAnJywgcGVybWVz
c2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQorCisgICAgICAgIG1zZ3V0aWwuc2VuZF9t
ZXNzYWdlKHJlcXVlc3QsICdceDAwJykKKworICAgICAgICAjIFBheWxvYWQgaW4gYmluYXJ5OiAw
YjAxMTAwMDEwIDBiMDAwMDAwMDAgMGIwMDAwMDAwMAorICAgICAgICAjIEZyb20gTFNCLAorICAg
ICAgICAjIC0gMSBiaXQgb2YgQkZJTkFMICgwKQorICAgICAgICAjIC0gMiBiaXRzIG9mIEJUWVBF
ICgwMSB0aGF0IG1lYW5zIGZpeGVkIEh1ZmZtYW4pCisgICAgICAgICMgLSA4IGJpdHMgb2YgdGhl
IGZpcnN0IGNvZGUgKDAwMTEwMDAwIHRoYXQgaXMgdGhlIGNvZGUgZm9yIHRoZSBsaXRlcmFsCisg
ICAgICAgICMgICBhbHBoYWJldCAweDAwKQorICAgICAgICAjIC0gNyBiaXRzIG9mIHRoZSBzZWNv
bmQgY29kZSAoMDAwMDAwMCB0aGF0IGlzIHRoZSBjb2RlIGZvciB0aGUKKyAgICAgICAgIyAgIGVu
ZC1vZi1ibG9jaykKKyAgICAgICAgIyAtIDEgYml0IG9mIEJGSU5BTCAoMCkKKyAgICAgICAgIyAt
IDIgYml0cyBvZiBCVFlQRSAobm8gY29tcHJlc3Npb24pCisgICAgICAgICMgLSAyIGJpdHMgb2Yg
cGFkZGluZworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceGMxXHgwM1x4NjJceDAwXHgwMCcs
CisgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0
YSgpKQorCisgICAgZGVmIHRlc3Rfc2VuZF90d29fbWVzc2FnZXMoc2VsZik6CisgICAgICAgIGV4
dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCisgICAgICAgICAgICAgICAgY29t
bW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCisgICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAorICAgICAgICAgICAgICAgICcnLCBwZXJtZXNzYWdl
X2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCisgICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdl
KHJlcXVlc3QsICdIZWxsbycpCisgICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3Qs
ICdXb3JsZCcpCisKKyAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAorICAgICAg
ICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxp
Yi5NQVhfV0JJVFMpCisKKyAgICAgICAgZXhwZWN0ZWQgPSAnJworCisgICAgICAgIGNvbXByZXNz
ZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQorICAgICAgICBjb21wcmVzc2Vk
X2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQorICAgICAgICBjb21w
cmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCisgICAgICAgIGV4cGVjdGVkICs9
ICdceGMxJWMnICUgbGVuKGNvbXByZXNzZWRfaGVsbG8pCisgICAgICAgIGV4cGVjdGVkICs9IGNv
bXByZXNzZWRfaGVsbG8KKworICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3MuY29t
cHJlc3MoJ1dvcmxkJykKKyAgICAgICAgY29tcHJlc3NlZF93b3JsZCArPSBjb21wcmVzcy5mbHVz
aCh6bGliLlpfU1lOQ19GTFVTSCkKKyAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNz
ZWRfd29ybGRbOi00XQorICAgICAgICBleHBlY3RlZCArPSAnXHhjMSVjJyAlIGxlbihjb21wcmVz
c2VkX3dvcmxkKQorICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX3dvcmxkCisKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5f
ZGF0YSgpKQorCisgICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX2ZyYWdtZW50ZWQoc2VsZik6Cisg
ICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCisgICAgICAgICAg
ICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCisgICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAorICAgICAgICAgICAgICAgICcnLCBw
ZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCisgICAgICAgIG1zZ3V0aWwuc2Vu
ZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycsIGVuZD1GYWxzZSkKKyAgICAgICAgbXNndXRpbC5z
ZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0dvb2RieWUnLCBlbmQ9RmFsc2UpCisgICAgICAgIG1zZ3V0
aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdXb3JsZCcpCisKKyAgICAgICAgY29tcHJlc3MgPSB6
bGliLmNvbXByZXNzb2JqKAorICAgICAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNT
SU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCisgICAgICAgIGNvbXByZXNzZWRf
aGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQorICAgICAgICBjb21wcmVzc2VkX2hl
bGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQorICAgICAgICBleHBlY3Rl
ZCA9ICdceDQxJWMnICUgbGVuKGNvbXByZXNzZWRfaGVsbG8pCisgICAgICAgIGV4cGVjdGVkICs9
IGNvbXByZXNzZWRfaGVsbG8KKyAgICAgICAgY29tcHJlc3NlZF9nb29kYnllID0gY29tcHJlc3Mu
Y29tcHJlc3MoJ0dvb2RieWUnKQorICAgICAgICBjb21wcmVzc2VkX2dvb2RieWUgKz0gY29tcHJl
c3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCisgICAgICAgIGV4cGVjdGVkICs9ICdceDAwJWMn
ICUgbGVuKGNvbXByZXNzZWRfZ29vZGJ5ZSkKKyAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3Nl
ZF9nb29kYnllCisgICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzcy5jb21wcmVzcygn
V29ybGQnKQorICAgICAgICBjb21wcmVzc2VkX3dvcmxkICs9IGNvbXByZXNzLmZsdXNoKHpsaWIu
Wl9TWU5DX0ZMVVNIKQorICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3NlZF93b3Js
ZFs6LTRdCisgICAgICAgIGV4cGVjdGVkICs9ICdceDgwJWMnICUgbGVuKGNvbXByZXNzZWRfd29y
bGQpCisgICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfd29ybGQKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChleHBlY3RlZCwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQor
CisgICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX2ZyYWdtZW50ZWRfZW1wdHlfZmlyc3RfZnJhbWUo
c2VsZik6CisgICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCisg
ICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCisgICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAorICAgICAgICAgICAg
ICAgICcnLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCisgICAgICAgIG1z
Z3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICcnLCBlbmQ9RmFsc2UpCisgICAgICAgIG1zZ3V0
aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCisKKyAgICAgICAgY29tcHJlc3MgPSB6
bGliLmNvbXByZXNzb2JqKAorICAgICAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNT
SU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCisgICAgICAgIGNvbXByZXNzZWRf
aGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnJykKKyAgICAgICAgY29tcHJlc3NlZF9oZWxsbyAr
PSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKKyAgICAgICAgZXhwZWN0ZWQgPSAn
XHg0MSVjJyAlIGxlbihjb21wcmVzc2VkX2hlbGxvKQorICAgICAgICBleHBlY3RlZCArPSBjb21w
cmVzc2VkX2hlbGxvCisgICAgICAgIGNvbXByZXNzZWRfZW1wdHkgPSBjb21wcmVzcy5jb21wcmVz
cygnSGVsbG8nKQorICAgICAgICBjb21wcmVzc2VkX2VtcHR5ICs9IGNvbXByZXNzLmZsdXNoKHps
aWIuWl9TWU5DX0ZMVVNIKQorICAgICAgICBjb21wcmVzc2VkX2VtcHR5ID0gY29tcHJlc3NlZF9l
bXB0eVs6LTRdCisgICAgICAgIGV4cGVjdGVkICs9ICdceDgwJWMnICUgbGVuKGNvbXByZXNzZWRf
ZW1wdHkpCisgICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfZW1wdHkKKyAgICAgICAgcHJp
bnQgJyVyJyAlIGV4cGVjdGVkCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJl
cXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKKworICAgIGRlZiB0ZXN0X3NlbmRfbWVz
c2FnZV9mcmFnbWVudGVkX2VtcHR5X2xhc3RfZnJhbWUoc2VsZik6CisgICAgICAgIGV4dGVuc2lv
biA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCisgICAgICAgICAgICAgICAgY29tbW9uLlBF
Uk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3Jl
cXVlc3RfZnJvbV9yYXdkYXRhKAorICAgICAgICAgICAgICAgICcnLCBwZXJtZXNzYWdlX2RlZmxh
dGVfcmVxdWVzdD1leHRlbnNpb24pCisgICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVl
c3QsICdIZWxsbycsIGVuZD1GYWxzZSkKKyAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVx
dWVzdCwgJycpCisKKyAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAorICAgICAg
ICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxp
Yi5NQVhfV0JJVFMpCisgICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVz
cygnSGVsbG8nKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHps
aWIuWl9TWU5DX0ZMVVNIKQorICAgICAgICBleHBlY3RlZCA9ICdceDQxJWMnICUgbGVuKGNvbXBy
ZXNzZWRfaGVsbG8pCisgICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfaGVsbG8KKyAgICAg
ICAgY29tcHJlc3NlZF9lbXB0eSA9IGNvbXByZXNzLmNvbXByZXNzKCcnKQorICAgICAgICBjb21w
cmVzc2VkX2VtcHR5ICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQorICAgICAg
ICBjb21wcmVzc2VkX2VtcHR5ID0gY29tcHJlc3NlZF9lbXB0eVs6LTRdCisgICAgICAgIGV4cGVj
dGVkICs9ICdceDgwJWMnICUgbGVuKGNvbXByZXNzZWRfZW1wdHkpCisgICAgICAgIGV4cGVjdGVk
ICs9IGNvbXByZXNzZWRfZW1wdHkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwg
cmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQorCisgICAgZGVmIHRlc3Rfc2VuZF9t
ZXNzYWdlX3VzaW5nX3NtYWxsX3dpbmRvdyhzZWxmKToKKyAgICAgICAgY29tbW9uX3BhcnQgPSAn
YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonCisgICAgICAgIHRlc3RfbWVzc2FnZSA9IGNvbW1v
bl9wYXJ0ICsgJy0nICogMzAwMDAgKyBjb21tb25fcGFydAorCisgICAgICAgIGV4dGVuc2lvbiA9
IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCisgICAgICAgICAgICAgICAgY29tbW9uLlBFUk1F
U1NBR0VfREVGTEFURV9FWFRFTlNJT04pCisgICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVy
KCdzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzJywgJzgnKQorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0
ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKKyAgICAgICAgICAgICAgICAnJywgcGVybWVzc2FnZV9k
ZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQorICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShy
ZXF1ZXN0LCB0ZXN0X21lc3NhZ2UpCisKKyAgICAgICAgZXhwZWN0ZWRfd2Vic29ja2V0X2hlYWRl
cl9zaXplID0gMgorICAgICAgICBleHBlY3RlZF93ZWJzb2NrZXRfcGF5bG9hZF9zaXplID0gOTEK
KworICAgICAgICBhY3R1YWxfZnJhbWUgPSByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRh
KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZF93ZWJzb2NrZXRfaGVhZGVyX3Np
emUgKworICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3dlYnNvY2tldF9wYXlsb2Fk
X3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKGFjdHVhbF9mcmFtZSkpCisgICAg
ICAgIGFjdHVhbF9oZWFkZXIgPSBhY3R1YWxfZnJhbWVbMDpleHBlY3RlZF93ZWJzb2NrZXRfaGVh
ZGVyX3NpemVdCisgICAgICAgIGFjdHVhbF9wYXlsb2FkID0gYWN0dWFsX2ZyYW1lW2V4cGVjdGVk
X3dlYnNvY2tldF9oZWFkZXJfc2l6ZTpdCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAg
ICAgICAgICAgICAgICAnXHhjMSVjJyAlIGV4cGVjdGVkX3dlYnNvY2tldF9wYXlsb2FkX3NpemUs
IGFjdHVhbF9oZWFkZXIpCisgICAgICAgIGRlY29tcHJlc3MgPSB6bGliLmRlY29tcHJlc3NvYmoo
LTgpCisgICAgICAgIGRlY29tcHJlc3NlZF9tZXNzYWdlID0gZGVjb21wcmVzcy5kZWNvbXByZXNz
KAorICAgICAgICAgICAgICAgIGFjdHVhbF9wYXlsb2FkICsgJ1x4MDBceDAwXHhmZlx4ZmYnKQor
ICAgICAgICBkZWNvbXByZXNzZWRfbWVzc2FnZSArPSBkZWNvbXByZXNzLmZsdXNoKCkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCh0ZXN0X21lc3NhZ2UsIGRlY29tcHJlc3NlZF9tZXNzYWdlKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihkZWNvbXByZXNzLnVudXNlZF9kYXRhKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBsZW4oZGVjb21wcmVzcy51bmNvbnN1bWVkX3Rh
aWwpKQorCisgICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX25vX2NvbnRleHRfdGFrZW92ZXJfcGFy
YW1ldGVyKHNlbGYpOgorICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1l
dGVyKAorICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9O
KQorICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFtZXRlcignc2VydmVyX25vX2NvbnRleHRfdGFr
ZW92ZXInLCBOb25lKQorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3
ZGF0YSgKKyAgICAgICAgICAgICAgICAnJywgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0
ZW5zaW9uKQorICAgICAgICBmb3IgaSBpbiB4cmFuZ2UoMyk6CisgICAgICAgICAgICBtc2d1dGls
LnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nLCBlbmQ9RmFsc2UpCisgICAgICAgICAgICBt
c2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nLCBlbmQ9VHJ1ZSkKKworICAgICAg
ICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCisgICAgICAgICAgICAgICAgemxpYi5aX0RF
RkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKKworICAg
ICAgICBmaXJzdF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCisgICAgICAgIGZp
cnN0X2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQorICAgICAgICBl
eHBlY3RlZCA9ICdceDQxJWMnICUgbGVuKGZpcnN0X2hlbGxvKQorICAgICAgICBleHBlY3RlZCAr
PSBmaXJzdF9oZWxsbworICAgICAgICBzZWNvbmRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygn
SGVsbG8nKQorICAgICAgICBzZWNvbmRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZ
TkNfRkxVU0gpCisgICAgICAgIHNlY29uZF9oZWxsbyA9IHNlY29uZF9oZWxsb1s6LTRdCisgICAg
ICAgIGV4cGVjdGVkICs9ICdceDgwJWMnICUgbGVuKHNlY29uZF9oZWxsbykKKyAgICAgICAgZXhw
ZWN0ZWQgKz0gc2Vjb25kX2hlbGxvCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAg
ICAgICAgICAgICBleHBlY3RlZCArIGV4cGVjdGVkICsgZXhwZWN0ZWQsCisgICAgICAgICAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQorCisgICAgZGVmIHRlc3Rfc2Vu
ZF9tZXNzYWdlX2ZyYWdtZW50ZWRfYmZpbmFsKHNlbGYpOgorICAgICAgICBleHRlbnNpb24gPSBj
b21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKAorICAgICAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNT
QUdFX0RFRkxBVEVfRVhURU5TSU9OKQorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0
X2Zyb21fcmF3ZGF0YSgKKyAgICAgICAgICAgICAgICAnJywgcGVybWVzc2FnZV9kZWZsYXRlX3Jl
cXVlc3Q9ZXh0ZW5zaW9uKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscygxLCBsZW4ocmVxdWVz
dC53c19leHRlbnNpb25fcHJvY2Vzc29ycykpCisgICAgICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9u
X3Byb2Nlc3NvcnNbMF0uc2V0X2JmaW5hbChUcnVlKQorICAgICAgICBtc2d1dGlsLnNlbmRfbWVz
c2FnZShyZXF1ZXN0LCAnSGVsbG8nLCBlbmQ9RmFsc2UpCisgICAgICAgIG1zZ3V0aWwuc2VuZF9t
ZXNzYWdlKHJlcXVlc3QsICdXb3JsZCcsIGVuZD1UcnVlKQorCisgICAgICAgIGV4cGVjdGVkID0g
JycKKworICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCisgICAgICAgICAgICB6
bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRT
KQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykK
KyAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfRklOSVNI
KQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsbyArIGNocigwKQor
ICAgICAgICBleHBlY3RlZCArPSAnXHg0MSVjJyAlIGxlbihjb21wcmVzc2VkX2hlbGxvKQorICAg
ICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2hlbGxvCisKKyAgICAgICAgY29tcHJlc3MgPSB6
bGliLmNvbXByZXNzb2JqKAorICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04s
IHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKKyAgICAgICAgY29tcHJlc3NlZF93b3Js
ZCA9IGNvbXByZXNzLmNvbXByZXNzKCdXb3JsZCcpCisgICAgICAgIGNvbXByZXNzZWRfd29ybGQg
Kz0gY29tcHJlc3MuZmx1c2goemxpYi5aX0ZJTklTSCkKKyAgICAgICAgY29tcHJlc3NlZF93b3Js
ZCA9IGNvbXByZXNzZWRfd29ybGQgKyBjaHIoMCkKKyAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4ODAl
YycgJSBsZW4oY29tcHJlc3NlZF93b3JsZCkKKyAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3Nl
ZF93b3JsZAorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29u
bmVjdGlvbi53cml0dGVuX2RhdGEoKSkKKworICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9k
ZWZsYXRlKHNlbGYpOgorICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCisgICAg
ICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIu
TUFYX1dCSVRTKQorCisgICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVz
cygnSGVsbG8nKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHps
aWIuWl9TWU5DX0ZMVVNIKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9o
ZWxsb1s6LTRdCisgICAgICAgIGRhdGEgPSAnXHhjMSVjJyAlIChsZW4oY29tcHJlc3NlZF9oZWxs
bykgfCAweDgwKQorICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF9oZWxsbykK
KworICAgICAgICAjIENsb3NlIGZyYW1lCisgICAgICAgIGRhdGEgKz0gJ1x4ODhceDhhJyArIF9t
YXNrX2h5Ymkoc3RydWN0LnBhY2soJyFIJywgMTAwMCkgKyAnR29vZCBieWUnKQorCisgICAgICAg
IGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCisgICAgICAgICAgICAgICAg
Y29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCisgICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAorICAgICAgICAgICAgICAgIGRhdGEsIHBlcm1l
c3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnSGVsbG8nLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKKworICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKE5vbmUsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQor
CisgICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX3JhbmRvbV9zZWN0aW9uKHNlbGYpOgorICAg
ICAgICAiIiJUZXN0IHRoYXQgYSBjb21wcmVzc2VkIG1lc3NhZ2UgZnJhZ21lbnRlZCBpbnRvIGxv
dHMgb2YgY2h1bmtzIGlzCisgICAgICAgIGNvcnJlY3RseSByZWNlaXZlZC4KKyAgICAgICAgIiIi
CisKKyAgICAgICAgcmFuZG9tLnNlZWQoYT0wKQorICAgICAgICBwYXlsb2FkID0gJycuam9pbigK
KyAgICAgICAgICAgIFtjaHIocmFuZG9tLnJhbmRpbnQoMCwgMjU1KSkgZm9yIGkgaW4geHJhbmdl
KDEwMDApXSkKKworICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCisgICAgICAg
ICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFY
X1dCSVRTKQorICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgPSBjb21wcmVzcy5jb21wcmVzcyhw
YXlsb2FkKQorICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgKz0gY29tcHJlc3MuZmx1c2goemxp
Yi5aX1NZTkNfRkxVU0gpCisgICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCA9IGNvbXByZXNzZWRf
cGF5bG9hZFs6LTRdCisKKyAgICAgICAgIyBGcmFnbWVudCB0aGUgY29tcHJlc3NlZCBwYXlsb2Fk
IGludG8gbG90cyBvZiBmcmFtZXMuCisgICAgICAgIGJ5dGVzX2NodW5rZWQgPSAwCisgICAgICAg
IGRhdGEgPSAnJworICAgICAgICBmcmFtZV9jb3VudCA9IDAKKworICAgICAgICBjaHVua19zaXpl
cyA9IFtdCisKKyAgICAgICAgd2hpbGUgYnl0ZXNfY2h1bmtlZCA8IGxlbihjb21wcmVzc2VkX3Bh
eWxvYWQpOgorICAgICAgICAgICAgIyBNYWtlIHN1cmUgdGhhdAorICAgICAgICAgICAgIyAtIHRo
ZSBsZW5ndGggb2YgY2h1bmtzIGFyZSBlcXVhbCBvciBsZXNzIHRoYW4gMTI1IHNvIHRoYXQgd2Ug
Y2FuCisgICAgICAgICAgICAjICAgdXNlIDEgb2N0ZXQgbGVuZ3RoIGhlYWRlciBmb3JtYXQgZm9y
IGFsbCBmcmFtZXMuCisgICAgICAgICAgICAjIC0gYXQgbGVhc3QgMTAgY2h1bmtzIGFyZSBjcmVh
dGVkLgorICAgICAgICAgICAgY2h1bmtfc2l6ZSA9IHJhbmRvbS5yYW5kaW50KAorICAgICAgICAg
ICAgICAgIDEsIG1pbigxMjUsCisgICAgICAgICAgICAgICAgICAgICAgIGxlbihjb21wcmVzc2Vk
X3BheWxvYWQpIC8gMTAsCisgICAgICAgICAgICAgICAgICAgICAgIGxlbihjb21wcmVzc2VkX3Bh
eWxvYWQpIC0gYnl0ZXNfY2h1bmtlZCkpCisgICAgICAgICAgICBjaHVua19zaXplcy5hcHBlbmQo
Y2h1bmtfc2l6ZSkKKyAgICAgICAgICAgIGNodW5rID0gY29tcHJlc3NlZF9wYXlsb2FkWworICAg
ICAgICAgICAgICAgIGJ5dGVzX2NodW5rZWQ6Ynl0ZXNfY2h1bmtlZCArIGNodW5rX3NpemVdCisg
ICAgICAgICAgICBieXRlc19jaHVua2VkICs9IGNodW5rX3NpemUKKworICAgICAgICAgICAgZmly
c3Rfb2N0ZXQgPSAweDAwCisgICAgICAgICAgICBpZiBsZW4oZGF0YSkgPT0gMDoKKyAgICAgICAg
ICAgICAgICBmaXJzdF9vY3RldCA9IGZpcnN0X29jdGV0IHwgMHg0MgorICAgICAgICAgICAgaWYg
Ynl0ZXNfY2h1bmtlZCA9PSBsZW4oY29tcHJlc3NlZF9wYXlsb2FkKToKKyAgICAgICAgICAgICAg
ICBmaXJzdF9vY3RldCA9IGZpcnN0X29jdGV0IHwgMHg4MAorCisgICAgICAgICAgICBkYXRhICs9
ICclYyVjJyAlIChmaXJzdF9vY3RldCwgY2h1bmtfc2l6ZSB8IDB4ODApCisgICAgICAgICAgICBk
YXRhICs9IF9tYXNrX2h5YmkoY2h1bmspCisKKyAgICAgICAgICAgIGZyYW1lX2NvdW50ICs9IDEK
KworICAgICAgICBwcmludCAiQ2h1bmsgc2l6ZXM6ICVyIiAlIGNodW5rX3NpemVzCisgICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShsZW4oY2h1bmtfc2l6ZXMpID4gMTApCisKKyAgICAgICAgIyBDbG9z
ZSBmcmFtZQorICAgICAgICBkYXRhICs9ICdceDg4XHg4YScgKyBfbWFza19oeWJpKHN0cnVjdC5w
YWNrKCchSCcsIDEwMDApICsgJ0dvb2QgYnllJykKKworICAgICAgICBleHRlbnNpb24gPSBjb21t
b24uRXh0ZW5zaW9uUGFyYW1ldGVyKAorICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVG
TEFURV9FWFRFTlNJT04pCisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9y
YXdkYXRhKAorICAgICAgICAgICAgZGF0YSwgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0
ZW5zaW9uKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBheWxvYWQsIG1zZ3V0aWwucmVjZWl2
ZV9tZXNzYWdlKHJlcXVlc3QpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbXNn
dXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCisKKyAgICBkZWYgdGVzdF9yZWNlaXZlX3R3
b19tZXNzYWdlcyhzZWxmKToKKyAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAor
ICAgICAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVE
LCAtemxpYi5NQVhfV0JJVFMpCisKKyAgICAgICAgZGF0YSA9ICcnCisKKyAgICAgICAgY29tcHJl
c3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsb1dlYlNvY2tldCcpCisgICAgICAg
IGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCisg
ICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KKyAgICAgICAg
c3BsaXRfcG9zaXRpb24gPSBsZW4oY29tcHJlc3NlZF9oZWxsbykgLyAyCisgICAgICAgIGRhdGEg
Kz0gJ1x4NDElYycgJSAoc3BsaXRfcG9zaXRpb24gfCAweDgwKQorICAgICAgICBkYXRhICs9IF9t
YXNrX2h5YmkoY29tcHJlc3NlZF9oZWxsb1s6c3BsaXRfcG9zaXRpb25dKQorCisgICAgICAgIGRh
dGEgKz0gJ1x4ODAlYycgJSAoKGxlbihjb21wcmVzc2VkX2hlbGxvKSAtIHNwbGl0X3Bvc2l0aW9u
KSB8IDB4ODApCisgICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkX2hlbGxvW3Nw
bGl0X3Bvc2l0aW9uOl0pCisKKyAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAor
ICAgICAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVE
LCAtemxpYi5NQVhfV0JJVFMpCisKKyAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNz
LmNvbXByZXNzKCdXb3JsZCcpCisgICAgICAgIGNvbXByZXNzZWRfd29ybGQgKz0gY29tcHJlc3Mu
Zmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCisgICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21w
cmVzc2VkX3dvcmxkWzotNF0KKyAgICAgICAgZGF0YSArPSAnXHhjMSVjJyAlIChsZW4oY29tcHJl
c3NlZF93b3JsZCkgfCAweDgwKQorICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3Nl
ZF93b3JsZCkKKworICAgICAgICAjIENsb3NlIGZyYW1lCisgICAgICAgIGRhdGEgKz0gJ1x4ODhc
eDhhJyArIF9tYXNrX2h5Ymkoc3RydWN0LnBhY2soJyFIJywgMTAwMCkgKyAnR29vZCBieWUnKQor
CisgICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCisgICAgICAg
ICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCisgICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAorICAgICAgICAgICAgICAgIGRh
dGEsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnSGVsbG9XZWJTb2NrZXQnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1
ZXN0KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQnLCBtc2d1dGlsLnJlY2VpdmVf
bWVzc2FnZShyZXF1ZXN0KSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIG1zZ3V0
aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQorCisgICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNz
YWdlX21peGVkX2J0eXBlKHNlbGYpOgorICAgICAgICAiIiJUZXN0IHRoYXQgYSBtZXNzYWdlIGNv
bXByZXNzZWQgdXNpbmcgbG90cyBvZiBERUZMQVRFIGJsb2NrcyB3aXRoCisgICAgICAgIHZhcmlv
dXMgZmx1c2ggbW9kZSBpcyBjb3JyZWN0bHkgcmVjZWl2ZWQuCisgICAgICAgICIiIgorCisgICAg
ICAgIHJhbmRvbS5zZWVkKGE9MCkKKyAgICAgICAgcGF5bG9hZCA9ICcnLmpvaW4oCisgICAgICAg
ICAgICBbY2hyKHJhbmRvbS5yYW5kaW50KDAsIDI1NSkpIGZvciBpIGluIHhyYW5nZSgxMDAwKV0p
CisKKyAgICAgICAgY29tcHJlc3MgPSBOb25lCisKKyAgICAgICAgIyBGcmFnbWVudCB0aGUgY29t
cHJlc3NlZCBwYXlsb2FkIGludG8gbG90cyBvZiBmcmFtZXMuCisgICAgICAgIGJ5dGVzX2NodW5r
ZWQgPSAwCisgICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCA9ICcnCisKKyAgICAgICAgY2h1bmtf
c2l6ZXMgPSBbXQorICAgICAgICBtZXRob2RzID0gW10KKyAgICAgICAgc3luY191c2VkID0gRmFs
c2UKKyAgICAgICAgZmluaXNoX3VzZWQgPSBGYWxzZQorCisgICAgICAgIHdoaWxlIGJ5dGVzX2No
dW5rZWQgPCBsZW4ocGF5bG9hZCk6CisgICAgICAgICAgICAjIE1ha2Ugc3VyZSBhdCBsZWFzdCAx
MCBjaHVua3MgYXJlIGNyZWF0ZWQuCisgICAgICAgICAgICBjaHVua19zaXplID0gcmFuZG9tLnJh
bmRpbnQoCisgICAgICAgICAgICAgICAgMSwgbWluKDEwMCwgbGVuKHBheWxvYWQpIC0gYnl0ZXNf
Y2h1bmtlZCkpCisgICAgICAgICAgICBjaHVua19zaXplcy5hcHBlbmQoY2h1bmtfc2l6ZSkKKyAg
ICAgICAgICAgIGNodW5rID0gcGF5bG9hZFtieXRlc19jaHVua2VkOmJ5dGVzX2NodW5rZWQgKyBj
aHVua19zaXplXQorCisgICAgICAgICAgICBieXRlc19jaHVua2VkICs9IGNodW5rX3NpemUKKwor
ICAgICAgICAgICAgaWYgY29tcHJlc3MgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBjb21wcmVz
cyA9IHpsaWIuY29tcHJlc3NvYmooCisgICAgICAgICAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxU
X0NPTVBSRVNTSU9OLAorICAgICAgICAgICAgICAgICAgICB6bGliLkRFRkxBVEVELAorICAgICAg
ICAgICAgICAgICAgICAtemxpYi5NQVhfV0JJVFMpCisKKyAgICAgICAgICAgIGlmIGJ5dGVzX2No
dW5rZWQgPT0gbGVuKHBheWxvYWQpOgorICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfcGF5bG9h
ZCArPSBjb21wcmVzcy5jb21wcmVzcyhjaHVuaykKKyAgICAgICAgICAgICAgICBjb21wcmVzc2Vk
X3BheWxvYWQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCisgICAgICAgICAg
ICAgICAgY29tcHJlc3NlZF9wYXlsb2FkID0gY29tcHJlc3NlZF9wYXlsb2FkWzotNF0KKyAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbWV0aG9kID0gcmFuZG9tLnJhbmRpbnQoMCwg
MSkKKyAgICAgICAgICAgICAgICBtZXRob2RzLmFwcGVuZChtZXRob2QpCisgICAgICAgICAgICAg
ICAgaWYgbWV0aG9kID09IDA6CisgICAgICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfcGF5bG9h
ZCArPSBjb21wcmVzcy5jb21wcmVzcyhjaHVuaykKKyAgICAgICAgICAgICAgICAgICAgY29tcHJl
c3NlZF9wYXlsb2FkICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQorICAgICAg
ICAgICAgICAgICAgICBzeW5jX3VzZWQgPSBUcnVlCisgICAgICAgICAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgICAgICAgICAgY29tcHJlc3NlZF9wYXlsb2FkICs9IGNvbXByZXNzLmNvbXByZXNz
KGNodW5rKQorICAgICAgICAgICAgICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgKz0gY29tcHJl
c3MuZmx1c2goemxpYi5aX0ZJTklTSCkKKyAgICAgICAgICAgICAgICAgICAgY29tcHJlc3MgPSBO
b25lCisgICAgICAgICAgICAgICAgICAgIGZpbmlzaF91c2VkID0gVHJ1ZQorCisgICAgICAgIHBy
aW50ICJDaHVuayBzaXplczogJXIiICUgY2h1bmtfc2l6ZXMKKyAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKGxlbihjaHVua19zaXplcykgPiAxMCkKKyAgICAgICAgcHJpbnQgIk1ldGhvZHM6ICVyIiAl
IG1ldGhvZHMKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHN5bmNfdXNlZCkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKGZpbmlzaF91c2VkKQorCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgxMjUg
PCBsZW4oY29tcHJlc3NlZF9wYXlsb2FkKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxlbihj
b21wcmVzc2VkX3BheWxvYWQpIDwgNjU1MzYpCisgICAgICAgIGRhdGEgPSAnXHhjMlx4ZmUnICsg
c3RydWN0LnBhY2soJyFIJywgbGVuKGNvbXByZXNzZWRfcGF5bG9hZCkpCisgICAgICAgIGRhdGEg
Kz0gX21hc2tfaHliaShjb21wcmVzc2VkX3BheWxvYWQpCisKKyAgICAgICAgIyBDbG9zZSBmcmFt
ZQorICAgICAgICBkYXRhICs9ICdceDg4XHg4YScgKyBfbWFza19oeWJpKHN0cnVjdC5wYWNrKCch
SCcsIDEwMDApICsgJ0dvb2QgYnllJykKKworICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0
ZW5zaW9uUGFyYW1ldGVyKAorICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9F
WFRFTlNJT04pCisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRh
KAorICAgICAgICAgICAgZGF0YSwgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9u
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBheWxvYWQsIG1zZ3V0aWwucmVjZWl2ZV9tZXNz
YWdlKHJlcXVlc3QpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbXNndXRpbC5y
ZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCisKKworY2xhc3MgTWVzc2FnZVRlc3RIaXhpZTc1KHVu
aXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJUZXN0cyBmb3IgZHJhZnQtaGl4aWUtdGhld2Vic29j
a2V0cHJvdG9jb2wtNzYgc3RyZWFtIGNsYXNzLiIiIgorCisgICAgZGVmIHRlc3Rfc2VuZF9tZXNz
YWdlKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2hpeGllNzUoKQor
ICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdceDAwSGVsbG9ceGZmJywgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0
ZW5fZGF0YSgpKQorCisgICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX3VuaWNvZGUoc2VsZik6Cisg
ICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfaGl4aWU3NSgpCisgICAgICAgIG1zZ3V0
aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsIHUnXHU2NWU1JykKKyAgICAgICAgIyBVKzY1ZTUgaXMg
ZW5jb2RlZCBhcyBlNiw5NyxhNSBpbiBVVEYtOAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdc
eDAwXHhlNlx4OTdceGE1XHhmZicsCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQorCisgICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdl
KHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2hpeGllNzUoJ1x4MDBI
ZWxsb1x4ZmZceDAwV29ybGQhXHhmZicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxv
JywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ1dvcmxkIScsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQorCisgICAg
ZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX3VuaWNvZGUoc2VsZik6CisgICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX3JlcXVlc3RfaGl4aWU3NSgnXHgwMFx4ZTZceDljXHhhY1x4ZmYnKQorICAgICAg
ICAjIFUrNjcyYyBpcyBlbmNvZGVkIGFzIGU2LDljLGFjIGluIFVURi04CisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwodSdcdTY3MmMnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkK
KworICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9lcnJvbmVvdXNfdW5pY29kZShzZWxmKToK
KyAgICAgICAgIyBceDgwIGFuZCBceDgxIGFyZSBpbnZhbGlkIGFzIFVURi04LgorICAgICAgICBy
ZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2hpeGllNzUoJ1x4MDBceDgwXHg4MVx4ZmYnKQorICAg
ICAgICAjIEludmFsaWQgY2hhcmFjdGVycyBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aAorICAgICAg
ICAjIFUrZmZmZCBSRVBMQUNFTUVOVCBDSEFSQUNURVIKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCh1J1x1ZmZmZFx1ZmZmZCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQorCisg
ICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX2Rpc2NhcmQoc2VsZik6CisgICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX3JlcXVlc3RfaGl4aWU3NSgnXHg4MFx4MDZJR05PUkVceDAwSGVsbG9ceGZm
JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1x4MDFESVNSRUdB
UkRceGZmXHgwMFdvcmxkIVx4ZmYnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycs
IG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdXb3JsZCEnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKKworCitjbGFz
cyBNZXNzYWdlUmVjZWl2ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJUZXN0cyB0
aGUgU3RyZWFtIGNsYXNzIHVzaW5nIE1lc3NhZ2VSZWNlaXZlci4iIiIKKworICAgIGRlZiB0ZXN0
X3F1ZXVlKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0
KCkKKyAgICAgICAgcmVjZWl2ZXIgPSBtc2d1dGlsLk1lc3NhZ2VSZWNlaXZlcihyZXF1ZXN0KQor
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcmVjZWl2ZXIucmVjZWl2ZV9ub3dhaXQo
KSkKKworICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKCdceDgxXHg4NicgKyBf
bWFza19oeWJpKCdIZWxsbyEnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8hJywg
cmVjZWl2ZXIucmVjZWl2ZSgpKQorCisgICAgZGVmIHRlc3Rfb25tZXNzYWdlKHNlbGYpOgorICAg
ICAgICBvbm1lc3NhZ2VfcXVldWUgPSBRdWV1ZS5RdWV1ZSgpCisKKyAgICAgICAgZGVmIG9ubWVz
c2FnZV9oYW5kbGVyKG1lc3NhZ2UpOgorICAgICAgICAgICAgb25tZXNzYWdlX3F1ZXVlLnB1dCht
ZXNzYWdlKQorCisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX2Jsb2NraW5nX3JlcXVlc3QoKQor
ICAgICAgICByZWNlaXZlciA9IG1zZ3V0aWwuTWVzc2FnZVJlY2VpdmVyKHJlcXVlc3QsIG9ubWVz
c2FnZV9oYW5kbGVyKQorCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoJ1x4
ODFceDg2JyArIF9tYXNrX2h5YmkoJ0hlbGxvIScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdIZWxsbyEnLCBvbm1lc3NhZ2VfcXVldWUuZ2V0KCkpCisKKworY2xhc3MgTWVzc2FnZVJlY2Vp
dmVySGl4aWU3NVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICIiIlRlc3RzIHRoZSBTdHJl
YW1IaXhpZTc1IGNsYXNzIHVzaW5nIE1lc3NhZ2VSZWNlaXZlci4iIiIKKworICAgIGRlZiB0ZXN0
X3F1ZXVlKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0
X2hpeGllNzUoKQorICAgICAgICByZWNlaXZlciA9IG1zZ3V0aWwuTWVzc2FnZVJlY2VpdmVyKHJl
cXVlc3QpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCByZWNlaXZlci5yZWNlaXZl
X25vd2FpdCgpKQorCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoJ1x4MDBI
ZWxsbyFceGZmJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8hJywgcmVjZWl2ZXIu
cmVjZWl2ZSgpKQorCisgICAgZGVmIHRlc3Rfb25tZXNzYWdlKHNlbGYpOgorICAgICAgICBvbm1l
c3NhZ2VfcXVldWUgPSBRdWV1ZS5RdWV1ZSgpCisKKyAgICAgICAgZGVmIG9ubWVzc2FnZV9oYW5k
bGVyKG1lc3NhZ2UpOgorICAgICAgICAgICAgb25tZXNzYWdlX3F1ZXVlLnB1dChtZXNzYWdlKQor
CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX2Jsb2NraW5nX3JlcXVlc3RfaGl4aWU3NSgpCisg
ICAgICAgIHJlY2VpdmVyID0gbXNndXRpbC5NZXNzYWdlUmVjZWl2ZXIocmVxdWVzdCwgb25tZXNz
YWdlX2hhbmRsZXIpCisKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygnXHgw
MEhlbGxvIVx4ZmYnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbyEnLCBvbm1lc3Nh
Z2VfcXVldWUuZ2V0KCkpCisKKworY2xhc3MgTWVzc2FnZVNlbmRlclRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgorICAgICIiIlRlc3RzIHRoZSBTdHJlYW0gY2xhc3MgdXNpbmcgTWVzc2FnZVNlbmRl
ci4iIiIKKworICAgIGRlZiB0ZXN0X3NlbmQoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX2Jsb2NraW5nX3JlcXVlc3QoKQorICAgICAgICBzZW5kZXIgPSBtc2d1dGlsLk1lc3NhZ2VT
ZW5kZXIocmVxdWVzdCkKKworICAgICAgICBzZW5kZXIuc2VuZCgnV29ybGQnKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdceDgxXHgwNVdvcmxkJywgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0
ZW5fZGF0YSgpKQorCisgICAgZGVmIHRlc3Rfc2VuZF9ub3dhaXQoc2VsZik6CisgICAgICAgICMg
VXNlIGEgcXVldWUgdG8gY2hlY2sgdGhlIGJ5dGVzIHdyaXR0ZW4gYnkgTWVzc2FnZVNlbmRlci4K
KyAgICAgICAgIyByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkgY2Fubm90IGJlIHVz
ZWQgaGVyZSBiZWNhdXNlCisgICAgICAgICMgTWVzc2FnZVNlbmRlciBydW5zIGluIGEgc2VwYXJh
dGUgdGhyZWFkLgorICAgICAgICBzZW5kX3F1ZXVlID0gUXVldWUuUXVldWUoKQorCisgICAgICAg
IGRlZiB3cml0ZShieXRlcyk6CisgICAgICAgICAgICBzZW5kX3F1ZXVlLnB1dChieXRlcykKKwor
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0KCkKKyAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLndyaXRlID0gd3JpdGUKKworICAgICAgICBzZW5kZXIgPSBtc2d1dGls
Lk1lc3NhZ2VTZW5kZXIocmVxdWVzdCkKKworICAgICAgICBzZW5kZXIuc2VuZF9ub3dhaXQoJ0hl
bGxvJykKKyAgICAgICAgc2VuZGVyLnNlbmRfbm93YWl0KCdXb3JsZCcpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ1x4ODFceDA1SGVsbG8nLCBzZW5kX3F1ZXVlLmdldCgpKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdceDgxXHgwNVdvcmxkJywgc2VuZF9xdWV1ZS5nZXQoKSkKKworCitj
bGFzcyBNZXNzYWdlU2VuZGVySGl4aWU3NVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICIi
IlRlc3RzIHRoZSBTdHJlYW1IaXhpZTc1IGNsYXNzIHVzaW5nIE1lc3NhZ2VTZW5kZXIuIiIiCisK
KyAgICBkZWYgdGVzdF9zZW5kKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9j
a2luZ19yZXF1ZXN0X2hpeGllNzUoKQorICAgICAgICBzZW5kZXIgPSBtc2d1dGlsLk1lc3NhZ2VT
ZW5kZXIocmVxdWVzdCkKKworICAgICAgICBzZW5kZXIuc2VuZCgnV29ybGQnKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCdceDAwV29ybGRceGZmJywgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0
ZW5fZGF0YSgpKQorCisgICAgZGVmIHRlc3Rfc2VuZF9ub3dhaXQoc2VsZik6CisgICAgICAgICMg
VXNlIGEgcXVldWUgdG8gY2hlY2sgdGhlIGJ5dGVzIHdyaXR0ZW4gYnkgTWVzc2FnZVNlbmRlci4K
KyAgICAgICAgIyByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkgY2Fubm90IGJlIHVz
ZWQgaGVyZSBiZWNhdXNlCisgICAgICAgICMgTWVzc2FnZVNlbmRlciBydW5zIGluIGEgc2VwYXJh
dGUgdGhyZWFkLgorICAgICAgICBzZW5kX3F1ZXVlID0gUXVldWUuUXVldWUoKQorCisgICAgICAg
IGRlZiB3cml0ZShieXRlcyk6CisgICAgICAgICAgICBzZW5kX3F1ZXVlLnB1dChieXRlcykKKwor
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0X2hpeGllNzUoKQorICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUgPSB3cml0ZQorCisgICAgICAgIHNlbmRlciA9
IG1zZ3V0aWwuTWVzc2FnZVNlbmRlcihyZXF1ZXN0KQorCisgICAgICAgIHNlbmRlci5zZW5kX25v
d2FpdCgnSGVsbG8nKQorICAgICAgICBzZW5kZXIuc2VuZF9ub3dhaXQoJ1dvcmxkJykKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgwMEhlbGxvXHhmZicsIHNlbmRfcXVldWUuZ2V0KCkpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MDBXb3JsZFx4ZmYnLCBzZW5kX3F1ZXVlLmdldCgp
KQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgdW5pdHRlc3QubWFpbigpCisK
KworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9tdXgucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3Rlc3QvdGVzdF9tdXgucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2NlNDVjZjZiM2ZlZTBjMGI5YTkx
NGQwYzI0Nzc3NWI2ZjI0OTlmYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X211
eC5weQpAQCAtMCwwICsxLDIwODggQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5
cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
IyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisKKworIiIiVGVzdHMgZm9yIG11eCBtb2R1bGUuIiIiCisKK2ltcG9ydCBRdWV1
ZQoraW1wb3J0IGNvcHkKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3B0cGFyc2UKK2ltcG9ydCBz
dHJ1Y3QKK2ltcG9ydCBzeXMKK2ltcG9ydCB1bml0dGVzdAoraW1wb3J0IHRpbWUKK2ltcG9ydCB6
bGliCisKK2ltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBt
b2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgorCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29t
bW9uCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgbXV4Citmcm9tIG1vZF9weXdlYnNvY2tl
dC5fc3RyZWFtX2Jhc2UgaW1wb3J0IENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uCitmcm9t
IG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IFVuc3VwcG9ydGVkRnJhbWVFeGNl
cHRpb24KK2Zyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgRnJhbWUKK2Zy
b20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgU3RyZWFtCitmcm9tIG1vZF9w
eXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IFN0cmVhbU9wdGlvbnMKK2Zyb20gbW9kX3B5
d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX2JpbmFyeV9mcmFtZQorZnJvbSBt
b2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfY2xvc2VfZnJhbWUKK2Zy
b20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX2Nsb3NpbmdfaGFu
ZHNoYWtlX2JvZHkKK2Zyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgcGFy
c2VfZnJhbWUKK2Zyb20gbW9kX3B5d2Vic29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0IE11eEV4dGVu
c2lvblByb2Nlc3NvcgorCisKK2ltcG9ydCBtb2NrCisKKworX1RFU1RfSEVBREVSUyA9IHsnSG9z
dCc6ICdzZXJ2ZXIuZXhhbXBsZS5jb20nLAorICAgICAgICAgICAgICAgICAnVXBncmFkZSc6ICd3
ZWJzb2NrZXQnLAorICAgICAgICAgICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKKyAg
ICAgICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5JzogJ2RHaGxJSE5oYlhCc1pTQnViMjVq
WlE9PScsCisgICAgICAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVZlcnNpb24nOiAnMTMnLAor
ICAgICAgICAgICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbSd9CisKKworY2xh
c3MgX091dGdvaW5nQ2hhbm5lbERhdGEob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZik6
CisgICAgICAgIHNlbGYubWVzc2FnZXMgPSBbXQorICAgICAgICBzZWxmLmNvbnRyb2xfbWVzc2Fn
ZXMgPSBbXQorCisgICAgICAgIHNlbGYuYnVpbGRlciA9IG11eC5fSW5uZXJNZXNzYWdlQnVpbGRl
cigpCisKK2NsYXNzIF9Nb2NrTXV4Q29ubmVjdGlvbihtb2NrLk1vY2tCbG9ja2luZ0Nvbm4pOgor
ICAgICIiIk1vY2sgY2xhc3Mgb2YgbW9kX3B5dGhvbiBjb25uZWN0aW9uIGZvciBtdXguIiIiCisK
KyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIG1vY2suTW9ja0Jsb2NraW5nQ29ubi5f
X2luaXRfXyhzZWxmKQorICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2NrcyA9IFtdCisgICAgICAg
IHNlbGYuX2NoYW5uZWxfZGF0YSA9IHt9CisKKyAgICAgICAgc2VsZi5fY3VycmVudF9vcGNvZGUg
PSBOb25lCisgICAgICAgIHNlbGYuX3BlbmRpbmdfZnJhZ21lbnRzID0gW10KKworICAgICAgICBz
ZWxmLnNlcnZlcl9jbG9zZV9jb2RlID0gTm9uZQorCisgICAgZGVmIHdyaXRlKHNlbGYsIGRhdGEp
OgorICAgICAgICAiIiJPdmVycmlkZSBNb2NrQmxvY2tpbmdDb25uLndyaXRlLiIiIgorCisgICAg
ICAgIHNlbGYuX2N1cnJlbnRfZGF0YSA9IGRhdGEKKyAgICAgICAgc2VsZi5fcG9zaXRpb24gPSAw
CisKKyAgICAgICAgZGVmIF9yZWNlaXZlX2J5dGVzKGxlbmd0aCk6CisgICAgICAgICAgICBpZiBz
ZWxmLl9wb3NpdGlvbiArIGxlbmd0aCA+IGxlbihzZWxmLl9jdXJyZW50X2RhdGEpOgorICAgICAg
ICAgICAgICAgIHJhaXNlIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uKAorICAgICAgICAg
ICAgICAgICAgICAnRmFpbGVkIHRvIHJlY2VpdmUgJWQgYnl0ZXMgZnJvbSBlbmNhcHN1bGF0ZWQg
JworICAgICAgICAgICAgICAgICAgICAnZnJhbWUnICUgbGVuZ3RoKQorICAgICAgICAgICAgZGF0
YSA9IHNlbGYuX2N1cnJlbnRfZGF0YVtzZWxmLl9wb3NpdGlvbjpzZWxmLl9wb3NpdGlvbitsZW5n
dGhdCisgICAgICAgICAgICBzZWxmLl9wb3NpdGlvbiArPSBsZW5ndGgKKyAgICAgICAgICAgIHJl
dHVybiBkYXRhCisKKyAgICAgICAgIyBQYXJzZSBwaHlzaWNhbCBmcmFtZXMgYW5kIGFzc2VtYmxl
IGEgbWVzc2FnZSBpZiB0aGUgbWVzc2FnZSBpcworICAgICAgICAjIGZyYWdtZW50ZWQuCisgICAg
ICAgIG9wY29kZSwgcGF5bG9hZCwgZmluLCByc3YxLCByc3YyLCByc3YzID0gKAorICAgICAgICAg
ICAgcGFyc2VfZnJhbWUoX3JlY2VpdmVfYnl0ZXMsIHVubWFza19yZWNlaXZlPUZhbHNlKSkKKwor
ICAgICAgICBzZWxmLl9wZW5kaW5nX2ZyYWdtZW50cy5hcHBlbmQocGF5bG9hZCkKKworICAgICAg
ICBpZiBzZWxmLl9jdXJyZW50X29wY29kZSBpcyBOb25lOgorICAgICAgICAgICAgaWYgb3Bjb2Rl
ID09IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OOgorICAgICAgICAgICAgICAgIHJhaXNlIEV4
Y2VwdGlvbignU2VuZGluZyBpbnZhbGlkIGNvbnRpbnVhdGlvbiBvcGNvZGUnKQorICAgICAgICAg
ICAgc2VsZi5fY3VycmVudF9vcGNvZGUgPSBvcGNvZGUKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIGlmIG9wY29kZSAhPSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTjoKKyAgICAgICAgICAg
ICAgICByYWlzZSBFeGNlcHRpb24oJ1NlbmRpbmcgaW52YWxpZCBvcGNvZGUgJWQnICUgb3Bjb2Rl
KQorICAgICAgICBpZiBub3QgZmluOgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgaW5u
ZXJfZnJhbWVfZGF0YSA9ICcnLmpvaW4oc2VsZi5fcGVuZGluZ19mcmFnbWVudHMpCisgICAgICAg
IHNlbGYuX3BlbmRpbmdfZnJhZ21lbnRzID0gW10KKyAgICAgICAgc2VsZi5fY3VycmVudF9vcGNv
ZGUgPSBOb25lCisKKyAgICAgICAgIyBIYW5kbGUgYSBjb250cm9sIG1lc3NhZ2Ugb24gdGhlIHBo
eXNpY2FsIGNoYW5uZWwuCisgICAgICAgICMgVE9ETyhiYXNoaSk6IFN1cHBvcnQgb3RoZXIgb3Bj
b2RlcyBpZiBuZWVkZWQuCisgICAgICAgIGlmIG9wY29kZSA9PSBjb21tb24uT1BDT0RFX0NMT1NF
OgorICAgICAgICAgICAgaWYgbGVuKHBheWxvYWQpID49IDI6CisgICAgICAgICAgICAgICAgc2Vs
Zi5zZXJ2ZXJfY2xvc2VfY29kZSA9IHN0cnVjdC51bnBhY2soJyFIJywgcGF5bG9hZFs6Ml0pWzBd
CisgICAgICAgICAgICBjbG9zZV9ib2R5ID0gY3JlYXRlX2Nsb3NpbmdfaGFuZHNoYWtlX2JvZHko
CisgICAgICAgICAgICAgICAgY29tbW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSwgJycpCisgICAg
ICAgICAgICBjbG9zZV9mcmFtZSA9IGNyZWF0ZV9jbG9zZV9mcmFtZShjbG9zZV9ib2R5LCBtYXNr
PVRydWUpCisgICAgICAgICAgICBzZWxmLnB1dF9ieXRlcyhjbG9zZV9mcmFtZSkKKyAgICAgICAg
ICAgIHJldHVybgorCisgICAgICAgICMgUGFyc2UgdGhlIHBheWxvYWQgb2YgdGhlIG1lc3NhZ2Ug
b24gcGh5c2ljYWwgY2hhbm5lbC4KKyAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxv
YWRQYXJzZXIoaW5uZXJfZnJhbWVfZGF0YSkKKyAgICAgICAgY2hhbm5lbF9pZCA9IHBhcnNlci5y
ZWFkX2NoYW5uZWxfaWQoKQorICAgICAgICBpZiBjaGFubmVsX2lkID09IG11eC5fQ09OVFJPTF9D
SEFOTkVMX0lEOgorICAgICAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3MuZXh0ZW5kKGxpc3Qo
cGFyc2VyLnJlYWRfY29udHJvbF9ibG9ja3MoKSkpCisgICAgICAgICAgICByZXR1cm4KKworICAg
ICAgICBpZiBub3QgY2hhbm5lbF9pZCBpbiBzZWxmLl9jaGFubmVsX2RhdGE6CisgICAgICAgICAg
ICBzZWxmLl9jaGFubmVsX2RhdGFbY2hhbm5lbF9pZF0gPSBfT3V0Z29pbmdDaGFubmVsRGF0YSgp
CisgICAgICAgIGNoYW5uZWxfZGF0YSA9IHNlbGYuX2NoYW5uZWxfZGF0YVtjaGFubmVsX2lkXQor
CisgICAgICAgICMgUGFyc2UgbG9naWNhbCBmcmFtZXMgYW5kIGFzc2VtYmxlIGFuIGlubmVyIChs
b2dpY2FsKSBtZXNzYWdlLgorICAgICAgICAoaW5uZXJfZmluLCBpbm5lcl9yc3YxLCBpbm5lcl9y
c3YyLCBpbm5lcl9yc3YzLCBpbm5lcl9vcGNvZGUsCisgICAgICAgICBpbm5lcl9wYXlsb2FkKSA9
IHBhcnNlci5yZWFkX2lubmVyX2ZyYW1lKCkKKyAgICAgICAgaW5uZXJfZnJhbWUgPSBGcmFtZShp
bm5lcl9maW4sIGlubmVyX3JzdjEsIGlubmVyX3JzdjIsIGlubmVyX3JzdjMsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW5uZXJfb3Bjb2RlLCBpbm5lcl9wYXlsb2FkKQorICAgICAgICBt
ZXNzYWdlID0gY2hhbm5lbF9kYXRhLmJ1aWxkZXIuYnVpbGQoaW5uZXJfZnJhbWUpCisgICAgICAg
IGlmIG1lc3NhZ2UgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIGlmICht
ZXNzYWdlLm9wY29kZSA9PSBjb21tb24uT1BDT0RFX1RFWFQgb3IKKyAgICAgICAgICAgIG1lc3Nh
Z2Uub3Bjb2RlID09IGNvbW1vbi5PUENPREVfQklOQVJZKToKKyAgICAgICAgICAgIGNoYW5uZWxf
ZGF0YS5tZXNzYWdlcy5hcHBlbmQobWVzc2FnZS5wYXlsb2FkKQorCisgICAgICAgICAgICBzZWxm
Lm9uX2RhdGFfbWVzc2FnZShtZXNzYWdlLnBheWxvYWQpCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICBjaGFubmVsX2RhdGEuY29udHJvbF9tZXNzYWdlcy5hcHBlbmQoCisgICAgICAgICAgICAg
ICAgeydvcGNvZGUnOiBtZXNzYWdlLm9wY29kZSwKKyAgICAgICAgICAgICAgICAgJ21lc3NhZ2Un
OiBtZXNzYWdlLnBheWxvYWR9KQorCisgICAgZGVmIG9uX2RhdGFfbWVzc2FnZShzZWxmLCBtZXNz
YWdlKToKKyAgICAgICAgcGFzcworCisgICAgZGVmIGdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tz
KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fY29udHJvbF9ibG9ja3MKKworICAgIGRlZiBn
ZXRfd3JpdHRlbl9tZXNzYWdlcyhzZWxmLCBjaGFubmVsX2lkKToKKyAgICAgICAgcmV0dXJuIHNl
bGYuX2NoYW5uZWxfZGF0YVtjaGFubmVsX2lkXS5tZXNzYWdlcworCisgICAgZGVmIGdldF93cml0
dGVuX2NvbnRyb2xfbWVzc2FnZXMoc2VsZiwgY2hhbm5lbF9pZCk6CisgICAgICAgIHJldHVybiBz
ZWxmLl9jaGFubmVsX2RhdGFbY2hhbm5lbF9pZF0uY29udHJvbF9tZXNzYWdlcworCisKK2NsYXNz
IF9GYWlsT25Xcml0ZUNvbm5lY3Rpb24oX01vY2tNdXhDb25uZWN0aW9uKToKKyAgICAiIiJTcGVj
aWNpYWxpemVkIHZlcnNpb24gb2YgX01vY2tNdXhDb25uZWN0aW9uLiBJdHMgd3JpdGUoKSBtZXRo
b2QgcmFpc2VzCisgICAgYW4gZXhjZXB0aW9uIGZvciB0ZXN0aW5nIHdoZW4gYSBkYXRhIG1lc3Nh
Z2UgaXMgd3JpdHRlbi4KKyAgICAiIiIKKworICAgIGRlZiBvbl9kYXRhX21lc3NhZ2Uoc2VsZiwg
bWVzc2FnZSk6CisgICAgICAgICIiIk92ZXJyaWRlIHRvIHJhaXNlIGFuIGV4Y2VwdGlvbi4iIiIK
KworICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ludGVudGlvbmFsIGZhaWx1cmUnKQorCisKK2Ns
YXNzIF9DaGFubmVsRXZlbnQob2JqZWN0KToKKyAgICAiIiJBIHN0cnVjdHVyZSB0aGF0IHJlY29y
ZHMgY2hhbm5lbCBldmVudHMuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAg
IHNlbGYucmVxdWVzdCA9IE5vbmUKKyAgICAgICAgc2VsZi5tZXNzYWdlcyA9IFtdCisgICAgICAg
IHNlbGYuZXhjZXB0aW9uID0gTm9uZQorICAgICAgICBzZWxmLmNsaWVudF9pbml0aWF0ZWRfY2xv
c2luZyA9IEZhbHNlCisKKworY2xhc3MgX011eE1vY2tEaXNwYXRjaGVyKG9iamVjdCk6CisgICAg
IiIiTW9jayBjbGFzcyBvZiBkaXNwYXRjaC5EaXNwYXRjaGVyIGZvciBtdXguIiIiCisKKyAgICBk
ZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHNlbGYuY2hhbm5lbF9ldmVudHMgPSB7fQorCisg
ICAgZGVmIGRvX2V4dHJhX2hhbmRzaGFrZShzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgaWYgcmVx
dWVzdC53c19yZXF1ZXN0ZWRfcHJvdG9jb2xzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmVx
dWVzdC53c19wcm90b2NvbCA9IHJlcXVlc3Qud3NfcmVxdWVzdGVkX3Byb3RvY29sc1swXQorCisg
ICAgZGVmIF9kb19lY2hvKHNlbGYsIHJlcXVlc3QsIGNoYW5uZWxfZXZlbnRzKToKKyAgICAgICAg
d2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIG1lc3NhZ2UgPSByZXF1ZXN0LndzX3N0cmVhbS5yZWNl
aXZlX21lc3NhZ2UoKQorICAgICAgICAgICAgaWYgbWVzc2FnZSA9PSBOb25lOgorICAgICAgICAg
ICAgICAgIGNoYW5uZWxfZXZlbnRzLmNsaWVudF9pbml0aWF0ZWRfY2xvc2luZyA9IFRydWUKKyAg
ICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIGlmIG1lc3NhZ2UgPT0gJ0dvb2RieWUn
OgorICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgY2hhbm5lbF9ldmVudHMubWVz
c2FnZXMuYXBwZW5kKG1lc3NhZ2UpCisgICAgICAgICAgICAjIGVjaG8gYmFjaworICAgICAgICAg
ICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdlKG1lc3NhZ2UpCisKKyAgICBkZWYgX2Rv
X3Bpbmcoc2VsZiwgcmVxdWVzdCwgY2hhbm5lbF9ldmVudHMpOgorICAgICAgICByZXF1ZXN0Lndz
X3N0cmVhbS5zZW5kX3BpbmcoJ1BpbmchJykKKworICAgIGRlZiBfZG9fcGluZ193aGlsZV9oZWxs
b193b3JsZChzZWxmLCByZXF1ZXN0LCBjaGFubmVsX2V2ZW50cyk6CisgICAgICAgIHJlcXVlc3Qu
d3Nfc3RyZWFtLnNlbmRfbWVzc2FnZSgnSGVsbG8gJywgZW5kPUZhbHNlKQorICAgICAgICByZXF1
ZXN0LndzX3N0cmVhbS5zZW5kX3BpbmcoJ1BpbmchJykKKyAgICAgICAgcmVxdWVzdC53c19zdHJl
YW0uc2VuZF9tZXNzYWdlKCdXb3JsZCEnLCBlbmQ9VHJ1ZSkKKworICAgIGRlZiBfZG9fdHdvX3Bp
bmdfd2hpbGVfaGVsbG9fd29ybGQoc2VsZiwgcmVxdWVzdCwgY2hhbm5lbF9ldmVudHMpOgorICAg
ICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UoJ0hlbGxvICcsIGVuZD1GYWxzZSkK
KyAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9waW5nKCdQaW5nIScpCisgICAgICAgIHJl
cXVlc3Qud3Nfc3RyZWFtLnNlbmRfcGluZygnUG9uZyEnKQorICAgICAgICByZXF1ZXN0LndzX3N0
cmVhbS5zZW5kX21lc3NhZ2UoJ1dvcmxkIScsIGVuZD1UcnVlKQorCisgICAgZGVmIHRyYW5zZmVy
X2RhdGEoc2VsZiwgcmVxdWVzdCk6CisgICAgICAgIHNlbGYuY2hhbm5lbF9ldmVudHNbcmVxdWVz
dC5jaGFubmVsX2lkXSA9IF9DaGFubmVsRXZlbnQoKQorICAgICAgICBzZWxmLmNoYW5uZWxfZXZl
bnRzW3JlcXVlc3QuY2hhbm5lbF9pZF0ucmVxdWVzdCA9IHJlcXVlc3QKKworICAgICAgICB0cnk6
CisgICAgICAgICAgICAjIE5vdGU6IG1vcmUgaGFuZGxlciB3aWxsIGJlIGFkZGVkLgorICAgICAg
ICAgICAgaWYgcmVxdWVzdC51cmkuZW5kc3dpdGgoJ2VjaG8nKToKKyAgICAgICAgICAgICAgICBz
ZWxmLl9kb19lY2hvKHJlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
LmNoYW5uZWxfZXZlbnRzW3JlcXVlc3QuY2hhbm5lbF9pZF0pCisgICAgICAgICAgICBlbGlmIHJl
cXVlc3QudXJpLmVuZHN3aXRoKCdwaW5nJyk6CisgICAgICAgICAgICAgICAgc2VsZi5fZG9fcGlu
ZyhyZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jaGFubmVsX2V2
ZW50c1tyZXF1ZXN0LmNoYW5uZWxfaWRdKQorICAgICAgICAgICAgZWxpZiByZXF1ZXN0LnVyaS5l
bmRzd2l0aCgndHdvX3Bpbmdfd2hpbGVfaGVsbG9fd29ybGQnKToKKyAgICAgICAgICAgICAgICBz
ZWxmLl9kb190d29fcGluZ193aGlsZV9oZWxsb193b3JsZCgKKyAgICAgICAgICAgICAgICAgICAg
cmVxdWVzdCwgc2VsZi5jaGFubmVsX2V2ZW50c1tyZXF1ZXN0LmNoYW5uZWxfaWRdKQorICAgICAg
ICAgICAgZWxpZiByZXF1ZXN0LnVyaS5lbmRzd2l0aCgncGluZ193aGlsZV9oZWxsb193b3JsZCcp
OgorICAgICAgICAgICAgICAgIHNlbGYuX2RvX3Bpbmdfd2hpbGVfaGVsbG9fd29ybGQoCisgICAg
ICAgICAgICAgICAgICAgIHJlcXVlc3QsIHNlbGYuY2hhbm5lbF9ldmVudHNbcmVxdWVzdC5jaGFu
bmVsX2lkXSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcignQ2Fubm90IGhhbmRsZSBwYXRoICVyJyAlIHJlcXVlc3QucGF0aCkKKyAgICAgICAgICAg
IGlmIG5vdCByZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgorICAgICAgICAgICAgICAgIHJlcXVl
c3Qud3Nfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oKQorICAgICAgICBleGNlcHQgQ29ubmVjdGlv
blRlcm1pbmF0ZWRFeGNlcHRpb24sIGU6CisgICAgICAgICAgICBzZWxmLmNoYW5uZWxfZXZlbnRz
W3JlcXVlc3QuY2hhbm5lbF9pZF0uZXhjZXB0aW9uID0gZQorICAgICAgICBleGNlcHQgRXhjZXB0
aW9uLCBlOgorICAgICAgICAgICAgc2VsZi5jaGFubmVsX2V2ZW50c1tyZXF1ZXN0LmNoYW5uZWxf
aWRdLmV4Y2VwdGlvbiA9IGUKKyAgICAgICAgICAgIHJhaXNlCisKKworZGVmIF9jcmVhdGVfbW9j
a19yZXF1ZXN0KGNvbm5lY3Rpb249Tm9uZSwgbG9naWNhbF9jaGFubmVsX2V4dGVuc2lvbnM9Tm9u
ZSk6CisgICAgaWYgY29ubmVjdGlvbiBpcyBOb25lOgorICAgICAgICBjb25uZWN0aW9uID0gX01v
Y2tNdXhDb25uZWN0aW9uKCkKKworICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0KHVyaT0n
L2VjaG8nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnNfaW49X1RFU1Rf
SEVBREVSUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uPWNvbm5l
Y3Rpb24pCisgICAgcmVxdWVzdC53c19zdHJlYW0gPSBTdHJlYW0ocmVxdWVzdCwgb3B0aW9ucz1T
dHJlYW1PcHRpb25zKCkpCisgICAgcmVxdWVzdC5tdXhfcHJvY2Vzc29yID0gTXV4RXh0ZW5zaW9u
UHJvY2Vzc29yKAorICAgICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5NVVhf
RVhURU5TSU9OKSkKKyAgICBpZiBsb2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucyBpcyBub3QgTm9u
ZToKKyAgICAgICAgcmVxdWVzdC5tdXhfcHJvY2Vzc29yLnNldF9leHRlbnNpb25zKGxvZ2ljYWxf
Y2hhbm5lbF9leHRlbnNpb25zKQorICAgIHJlcXVlc3QubXV4X3Byb2Nlc3Nvci5zZXRfcXVvdGEo
OCAqIDEwMjQpCisgICAgcmV0dXJuIHJlcXVlc3QKKworCitkZWYgX2NyZWF0ZV9hZGRfY2hhbm5l
bF9yZXF1ZXN0X2ZyYW1lKGNoYW5uZWxfaWQsIGVuY29kaW5nLCBlbmNvZGVkX2hhbmRzaGFrZSk6
CisgICAgIyBBbGxvdyBpbnZhbGlkIGVuY29kaW5nIGZvciB0ZXN0aW5nLgorICAgIGZpcnN0X2J5
dGUgPSAoKG11eC5fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNUIDw8IDUpIHwgZW5jb2Rp
bmcpCisgICAgcGF5bG9hZCA9IChjaHIoZmlyc3RfYnl0ZSkgKworICAgICAgICAgICAgICAgbXV4
Ll9lbmNvZGVfY2hhbm5lbF9pZChjaGFubmVsX2lkKSArCisgICAgICAgICAgICAgICBtdXguX2Vu
Y29kZV9udW1iZXIobGVuKGVuY29kZWRfaGFuZHNoYWtlKSkgKworICAgICAgICAgICAgICAgZW5j
b2RlZF9oYW5kc2hha2UpCisgICAgcmV0dXJuIGNyZWF0ZV9iaW5hcnlfZnJhbWUoCisgICAgICAg
IChtdXguX2VuY29kZV9jaGFubmVsX2lkKG11eC5fQ09OVFJPTF9DSEFOTkVMX0lEKSArIHBheWxv
YWQpLCBtYXNrPVRydWUpCisKKworZGVmIF9jcmVhdGVfZHJvcF9jaGFubmVsX2ZyYW1lKGNoYW5u
ZWxfaWQsIGNvZGU9Tm9uZSwgbWVzc2FnZT0nJyk6CisgICAgcGF5bG9hZCA9IG11eC5fY3JlYXRl
X2Ryb3BfY2hhbm5lbChjaGFubmVsX2lkLCBjb2RlLCBtZXNzYWdlKQorICAgIHJldHVybiBjcmVh
dGVfYmluYXJ5X2ZyYW1lKAorICAgICAgICAobXV4Ll9lbmNvZGVfY2hhbm5lbF9pZChtdXguX0NP
TlRST0xfQ0hBTk5FTF9JRCkgKyBwYXlsb2FkKSwgbWFzaz1UcnVlKQorCisKK2RlZiBfY3JlYXRl
X2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkLCByZXBsZW5pc2hlZF9xdW90YSk6CisgICAg
cGF5bG9hZCA9IG11eC5fY3JlYXRlX2Zsb3dfY29udHJvbChjaGFubmVsX2lkLCByZXBsZW5pc2hl
ZF9xdW90YSkKKyAgICByZXR1cm4gY3JlYXRlX2JpbmFyeV9mcmFtZSgKKyAgICAgICAgKG11eC5f
ZW5jb2RlX2NoYW5uZWxfaWQobXV4Ll9DT05UUk9MX0NIQU5ORUxfSUQpICsgcGF5bG9hZCksIG1h
c2s9VHJ1ZSkKKworCitkZWYgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQsIG1lc3Nh
Z2UsIG9wY29kZT1jb21tb24uT1BDT0RFX0JJTkFSWSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgZmluPVRydWUsIHJzdjE9RmFsc2UsIHJzdjI9RmFsc2UsIHJzdjM9RmFsc2UsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1hc2s9VHJ1ZSk6CisgICAgYml0cyA9IGNocigoZmluIDw8IDcp
IHwgKHJzdjEgPDwgNikgfCAocnN2MiA8PCA1KSB8IChyc3YzIDw8IDQpIHwgb3Bjb2RlKQorICAg
IHBheWxvYWQgPSBtdXguX2VuY29kZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQpICsgYml0cyArIG1l
c3NhZ2UKKyAgICByZXR1cm4gY3JlYXRlX2JpbmFyeV9mcmFtZShwYXlsb2FkLCBtYXNrPVRydWUp
CisKKworZGVmIF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nLCBleHRlbnNpb25z
PU5vbmUpOgorICAgIGhlYWRlcnMgPSAoCisgICAgICAgICdHRVQgJXMgSFRUUC8xLjFcclxuJwor
ICAgICAgICAnSG9zdDogc2VydmVyLmV4YW1wbGUuY29tXHJcbicKKyAgICAgICAgJ0Nvbm5lY3Rp
b246IFVwZ3JhZGVcclxuJworICAgICAgICAnT3JpZ2luOiBodHRwOi8vZXhhbXBsZS5jb21cclxu
JykgJSBwYXRoCisgICAgaWYgZXh0ZW5zaW9uczoKKyAgICAgICAgaGVhZGVycyArPSAnJXM6ICVz
JyAlICgKKyAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX0VYVEVOU0lPTlNfSEVBREVS
LCBleHRlbnNpb25zKQorICAgIHJldHVybiBoZWFkZXJzCisKKworY2xhc3MgTXV4VGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CisgICAgIiIiQSB1bml0dGVzdCBmb3IgbXV4IG1vZHVsZS4iIiIKKwor
ICAgIGRlZiB0ZXN0X2NoYW5uZWxfaWRfZGVjb2RlKHNlbGYpOgorICAgICAgICBkYXRhID0gJ1x4
MDBceDAxXHhiZlx4ZmZceGRmXHhmZlx4ZmZceGZmXHhmZlx4ZmZceGZmJworICAgICAgICBwYXJz
ZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQorICAgICAgICBjaGFubmVsX2lk
ID0gcGFyc2VyLnJlYWRfY2hhbm5lbF9pZCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwg
Y2hhbm5lbF9pZCkKKyAgICAgICAgY2hhbm5lbF9pZCA9IHBhcnNlci5yZWFkX2NoYW5uZWxfaWQo
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGNoYW5uZWxfaWQpCisgICAgICAgIGNoYW5u
ZWxfaWQgPSBwYXJzZXIucmVhZF9jaGFubmVsX2lkKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgyICoqIDE0IC0gMSwgY2hhbm5lbF9pZCkKKyAgICAgICAgY2hhbm5lbF9pZCA9IHBhcnNlci5y
ZWFkX2NoYW5uZWxfaWQoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIgKiogMjEgLSAxLCBj
aGFubmVsX2lkKQorICAgICAgICBjaGFubmVsX2lkID0gcGFyc2VyLnJlYWRfY2hhbm5lbF9pZCgp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiAqKiAyOSAtIDEsIGNoYW5uZWxfaWQpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGRhdGEpLCBwYXJzZXIuX3JlYWRfcG9zaXRpb24pCisK
KyAgICBkZWYgdGVzdF9jaGFubmVsX2lkX2VuY29kZShzZWxmKToKKyAgICAgICAgZW5jb2RlZCA9
IG11eC5fZW5jb2RlX2NoYW5uZWxfaWQoMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgw
MCcsIGVuY29kZWQpCisgICAgICAgIGVuY29kZWQgPSBtdXguX2VuY29kZV9jaGFubmVsX2lkKDIg
KiogMTQgLSAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceGJmXHhmZicsIGVuY29kZWQp
CisgICAgICAgIGVuY29kZWQgPSBtdXguX2VuY29kZV9jaGFubmVsX2lkKDIgKiogMTQpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4YzBAXHgwMCcsIGVuY29kZWQpCisgICAgICAgIGVuY29k
ZWQgPSBtdXguX2VuY29kZV9jaGFubmVsX2lkKDIgKiogMjEgLSAxKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdceGRmXHhmZlx4ZmYnLCBlbmNvZGVkKQorICAgICAgICBlbmNvZGVkID0gbXV4
Ll9lbmNvZGVfY2hhbm5lbF9pZCgyICoqIDIxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdc
eGUwIFx4MDBceDAwJywgZW5jb2RlZCkKKyAgICAgICAgZW5jb2RlZCA9IG11eC5fZW5jb2RlX2No
YW5uZWxfaWQoMiAqKiAyOSAtIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ZmZceGZm
XHhmZlx4ZmYnLCBlbmNvZGVkKQorICAgICAgICAjIGNoYW5uZWxfaWQgaXMgdG9vIGxhcmdlCisg
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIG11eC5fZW5jb2RlX2NoYW5uZWxfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
IDIgKiogMjkpCisKKyAgICBkZWYgdGVzdF9yZWFkX211bHRpcGxlX2NvbnRyb2xfYmxvY2tzKHNl
bGYpOgorICAgICAgICAjIFVzZSBBZGRDaGFubmVsUmVxdWVzdCBiZWNhdXNlIGl0IGNhbiBjb250
YWluIGFyYml0cmFyeSBsZW5ndGggb2YgZGF0YQorICAgICAgICBkYXRhID0gKCdceDAwXHgwMVx4
MDFhJworICAgICAgICAgICAgICAgICdceDAwXHgwMlx4N2QlcycKKyAgICAgICAgICAgICAgICAn
XHgwMFx4MDNceDdlXHhmZlx4ZmYlcycKKyAgICAgICAgICAgICAgICAnXHgwMFx4MDRceDdmXHgw
MFx4MDBceDAwXHgwMFx4MDBceDAxXHgwMFx4MDAlcycpICUgKAorICAgICAgICAgICAgJ2EnICog
MHg3ZCwgJ2InICogMHhmZmZmLCAnYycgKiAweDEwMDAwKQorICAgICAgICBwYXJzZXIgPSBtdXgu
X011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQorICAgICAgICBibG9ja3MgPSBsaXN0KHBhcnNl
ci5yZWFkX2NvbnRyb2xfYmxvY2tzKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNCwgbGVu
KGJsb2NrcykpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX01VWF9PUENPREVfQURE
X0NIQU5ORUxfUkVRVUVTVCwgYmxvY2tzWzBdLm9wY29kZSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgxLCBibG9ja3NbMF0uY2hhbm5lbF9pZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgx
LCBsZW4oYmxvY2tzWzBdLmVuY29kZWRfaGFuZHNoYWtlKSkKKworICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKG11eC5fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNULCBibG9ja3NbMV0ub3Bj
b2RlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGJsb2Nrc1sxXS5jaGFubmVsX2lkKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDB4N2QsIGxlbihibG9ja3NbMV0uZW5jb2RlZF9oYW5k
c2hha2UpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9NVVhfT1BDT0RFX0FERF9D
SEFOTkVMX1JFUVVFU1QsIGJsb2Nrc1syXS5vcGNvZGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoMywgYmxvY2tzWzJdLmNoYW5uZWxfaWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMHhm
ZmZmLCBsZW4oYmxvY2tzWzJdLmVuY29kZWRfaGFuZHNoYWtlKSkKKworICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKG11eC5fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNULCBibG9ja3NbM10u
b3Bjb2RlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDQsIGJsb2Nrc1szXS5jaGFubmVsX2lk
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDB4MTAwMDAsIGxlbihibG9ja3NbM10uZW5jb2Rl
ZF9oYW5kc2hha2UpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGRhdGEpLCBwYXJz
ZXIuX3JlYWRfcG9zaXRpb24pCisKKyAgICBkZWYgdGVzdF9yZWFkX2FkZF9jaGFubmVsX3JlcXVl
c3Qoc2VsZik6CisgICAgICAgIGRhdGEgPSAnXHgwMFx4MDFceDAxYScKKyAgICAgICAgcGFyc2Vy
ID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKKyAgICAgICAgYmxvY2tzID0gbGlz
dChwYXJzZXIucmVhZF9jb250cm9sX2Jsb2NrcygpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KG11eC5fTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNULCBibG9ja3NbMF0ub3Bjb2RlKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGJsb2Nrc1swXS5jaGFubmVsX2lkKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihibG9ja3NbMF0uZW5jb2RlZF9oYW5kc2hha2UpKQor
CisgICAgZGVmIHRlc3RfcmVhZF9kcm9wX2NoYW5uZWwoc2VsZik6CisgICAgICAgIGRhdGEgPSAn
XHg2MFx4MDFceDAwJworICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNl
cihkYXRhKQorICAgICAgICBibG9ja3MgPSBsaXN0KHBhcnNlci5yZWFkX2NvbnRyb2xfYmxvY2tz
KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKGJsb2NrcykpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoMSwgYmxvY2tzWzBdLmNoYW5uZWxfaWQpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwobXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCwgYmxvY2tzWzBdLm9wY29kZSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBibG9ja3NbMF0uZHJvcF9jb2RlKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihibG9ja3NbMF0uZHJvcF9tZXNzYWdlKSkKKwor
ICAgICAgICBkYXRhID0gJ1x4NjBceDAyXHgwOVx4MDNceGU4U3VjY2VzcycKKyAgICAgICAgcGFy
c2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKKyAgICAgICAgYmxvY2tzID0g
bGlzdChwYXJzZXIucmVhZF9jb250cm9sX2Jsb2NrcygpKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKDEsIGxlbihibG9ja3MpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGJsb2Nrc1sw
XS5jaGFubmVsX2lkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fTVVYX09QQ09ERV9E
Uk9QX0NIQU5ORUwsIGJsb2Nrc1swXS5vcGNvZGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
MTAwMCwgYmxvY2tzWzBdLmRyb3BfY29kZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnU3Vj
Y2VzcycsIGJsb2Nrc1swXS5kcm9wX21lc3NhZ2UpCisKKyAgICAgICAgIyBSZWFzb24gaXMgdG9v
IHNob3J0LgorICAgICAgICBkYXRhID0gJ1x4NjBceDAxXHgwMVx4MDAnCisgICAgICAgIHBhcnNl
ciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCisgICAgICAgIHNlbGYuYXNzZXJ0
UmFpc2VzKG11eC5QaHlzaWNhbENvbm5lY3Rpb25FcnJvciwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGFtYmRhOiBsaXN0KHBhcnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCkpKQorCisgICAg
ZGVmIHRlc3RfcmVhZF9mbG93X2NvbnRyb2woc2VsZik6CisgICAgICAgIGRhdGEgPSAnXHg0MFx4
MDFceDAyJworICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRh
KQorICAgICAgICBibG9ja3MgPSBsaXN0KHBhcnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCkpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKGJsb2NrcykpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoMSwgYmxvY2tzWzBdLmNoYW5uZWxfaWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwobXV4Ll9NVVhfT1BDT0RFX0ZMT1dfQ09OVFJPTCwgYmxvY2tzWzBdLm9wY29kZSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBibG9ja3NbMF0uc2VuZF9xdW90YSkKKworICAgIGRlZiB0
ZXN0X3JlYWRfbmV3X2NoYW5uZWxfc2xvdChzZWxmKToKKyAgICAgICAgZGF0YSA9ICdceDgwXHgw
MVx4MDJceDAyXHgwMycKKyAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJz
ZXIoZGF0YSkKKyAgICAgICAgIyBUT0RPKGJhc2hpKTogSW1wbGVtZW50CisgICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKG11eC5QaHlzaWNhbENvbm5lY3Rpb25FcnJvciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGFtYmRhOiBsaXN0KHBhcnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCkpKQor
CisgICAgZGVmIHRlc3RfcmVhZF9pbnZhbGlkX251bWJlcl9maWVsZF9pbl9jb250cm9sX2Jsb2Nr
KHNlbGYpOgorICAgICAgICAjIE5vIG51bWJlciBmaWVsZC4KKyAgICAgICAgZGF0YSA9ICcnCisg
ICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCisgICAgICAg
IHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHBhcnNlci5fcmVhZF9udW1iZXIpCisKKyAg
ICAgICAgIyBUaGUgbGFzdCB0d28gYnl0ZXMgYXJlIG1pc3NpbmcuCisgICAgICAgIGRhdGEgPSAn
XHg3ZScKKyAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkK
KyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcGFyc2VyLl9yZWFkX251bWJl
cikKKworICAgICAgICAjIE1pc3NpbmcgdGhlIGxhc3Qgb25lIGJ5dGUuCisgICAgICAgIGRhdGEg
PSAnXHg3Zlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMVx4MDAnCisgICAgICAgIHBhcnNlciA9IG11
eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2Vz
KFZhbHVlRXJyb3IsIHBhcnNlci5fcmVhZF9udW1iZXIpCisKKyAgICAgICAgIyBUaGUgbGVuZ3Ro
IG9mIG51bWJlciBmaWVsZCBpcyB0b28gbGFyZ2UuCisgICAgICAgIGRhdGEgPSAnXHg3Zlx4ZmZc
eGZmXHhmZlx4ZmZceGZmXHhmZlx4ZmZceGZmJworICAgICAgICBwYXJzZXIgPSBtdXguX011eEZy
YW1lUGF5bG9hZFBhcnNlcihkYXRhKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVy
cm9yLCBwYXJzZXIuX3JlYWRfbnVtYmVyKQorCisgICAgICAgICMgVGhlIG1zYiBvZiB0aGUgZmly
c3QgYnl0ZSBpcyBzZXQuCisgICAgICAgIGRhdGEgPSAnXHg4MCcKKyAgICAgICAgcGFyc2VyID0g
bXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlz
ZXMoVmFsdWVFcnJvciwgcGFyc2VyLl9yZWFkX251bWJlcikKKworICAgICAgICAjIFVzaW5nIDMg
Ynl0ZXMgZW5jb2RpbmcgZm9yIDEyNS4KKyAgICAgICAgZGF0YSA9ICdceDdlXHgwMFx4N2QnCisg
ICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCisgICAgICAg
IHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHBhcnNlci5fcmVhZF9udW1iZXIpCisKKyAg
ICAgICAgIyBVc2luZyA5IGJ5dGVzIGVuY29kaW5nIGZvciAweGZmZmYKKyAgICAgICAgZGF0YSA9
ICdceDdmXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHhmZlx4ZmYnCisgICAgICAgIHBhcnNlciA9
IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFp
c2VzKFZhbHVlRXJyb3IsIHBhcnNlci5fcmVhZF9udW1iZXIpCisKKyAgICBkZWYgdGVzdF9yZWFk
X2ludmFsaWRfc2l6ZV9hbmRfY29udGVudHMoc2VsZik6CisgICAgICAgICMgT25seSBjb250YWlu
IG51bWJlciBmaWVsZC4KKyAgICAgICAgZGF0YSA9ICdceDAxJworICAgICAgICBwYXJzZXIgPSBt
dXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNl
cyhtdXguUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhcnNlci5fcmVhZF9zaXplX2FuZF9jb250ZW50cykKKworICAgIGRlZiB0ZXN0X2NyZWF0ZV9h
ZGRfY2hhbm5lbF9yZXNwb25zZShzZWxmKToKKyAgICAgICAgZGF0YSA9IG11eC5fY3JlYXRlX2Fk
ZF9jaGFubmVsX3Jlc3BvbnNlKGNoYW5uZWxfaWQ9MSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPSdGb29CYXInLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc9MCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdGVk
PUZhbHNlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDIwXHgwMVx4MDZGb29CYXInLCBk
YXRhKQorCisgICAgICAgIGRhdGEgPSBtdXguX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXNwb25zZShj
aGFubmVsX2lkPTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBlbmNvZGVkX2hhbmRzaGFrZT0nSGVsbG8nLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc9MSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdGVkPVRydWUpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ1x4MzFceDAyXHgwNUhlbGxvJywgZGF0YSkKKworICAgIGRlZiB0ZXN0X2Ny
ZWF0ZV9kcm9wX2NoYW5uZWwoc2VsZik6CisgICAgICAgIGRhdGEgPSBtdXguX2NyZWF0ZV9kcm9w
X2NoYW5uZWwoY2hhbm5lbF9pZD0xKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDYwXHgw
MVx4MDAnLCBkYXRhKQorCisgICAgICAgIGRhdGEgPSBtdXguX2NyZWF0ZV9kcm9wX2NoYW5uZWwo
Y2hhbm5lbF9pZD0xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
ZGU9MjAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdl
PSdlcnJvcicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4NjBceDAxXHgwN1x4MDdceGQw
ZXJyb3InLCBkYXRhKQorCisgICAgICAgICMgcmVhc29uIG11c3QgYmUgZW1wdHkgaWYgY29kZSBp
cyBOb25lCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIG11eC5fY3JlYXRlX2Ryb3BfY2hhbm5lbCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgMSwgTm9uZSwgJ0Zvb0JhcicpCisKKyAgICBkZWYgdGVzdF9wYXJzZV9yZXF1
ZXN0X3RleHQoc2VsZik6CisgICAgICAgIHJlcXVlc3RfdGV4dCA9IF9jcmVhdGVfcmVxdWVzdF9o
ZWFkZXIoKQorICAgICAgICBjb21tYW5kLCBwYXRoLCB2ZXJzaW9uLCBoZWFkZXJzID0gbXV4Ll9w
YXJzZV9yZXF1ZXN0X3RleHQocmVxdWVzdF90ZXh0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdHRVQnLCBjb21tYW5kKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvZWNobycsIHBhdGgp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hUVFAvMS4xJywgdmVyc2lvbikKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgzLCBsZW4oaGVhZGVycykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ3NlcnZlci5leGFtcGxlLmNvbScsIGhlYWRlcnNbJ0hvc3QnXSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnaHR0cDovL2V4YW1wbGUuY29tJywgaGVhZGVyc1snT3JpZ2luJ10pCisKKwor
Y2xhc3MgTXV4SGFuZGxlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3Rf
YWRkX2NoYW5uZWwoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVz
dCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQorICAgICAgICBt
dXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQorICAgICAg
ICBtdXhfaGFuZGxlci5zdGFydCgpCisgICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Ns
b3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCisK
KyAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9
Jy9lY2hvJykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5u
ZWxfcmVxdWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwK
KyAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQorICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCisKKyAg
ICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9p
ZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXBsZW5pc2hlZF9xdW90YT02KQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KGZsb3dfY29udHJvbCkKKworICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVx
dWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQorICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0g
X2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAorICAgICAgICAgICAgY2hhbm5lbF9p
ZD0zLCBlbmNvZGluZz0wLAorICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9o
YW5kc2hha2UpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5u
ZWxfcmVxdWVzdCkKKworICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJv
bF9mcmFtZShjaGFubmVsX2lkPTMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCisgICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQorCisgICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoCisgICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5l
bF9pZD0yLCBtZXNzYWdlPSdIZWxsbycpKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKAorICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9Mywg
bWVzc2FnZT0nV29ybGQnKSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygK
KyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9
J0dvb2RieWUnKSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAg
ICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2Ri
eWUnKSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAg
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTMsIG1lc3NhZ2U9J0dvb2RieWUnKSkK
KworICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRp
bWVvdXQ9MikpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbXSwgZGlzcGF0Y2hlci5jaGFu
bmVsX2V2ZW50c1sxXS5tZXNzYWdlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxv
J10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVzc2FnZXMpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoWydXb3JsZCddLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzNdLm1lc3Nh
Z2VzKQorICAgICAgICAjIENoYW5uZWwgMgorICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29u
bmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KDEsIGxlbihtZXNzYWdlcykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywgbWVz
c2FnZXNbMF0pCisgICAgICAgICMgQ2hhbm5lbCAzCisgICAgICAgIG1lc3NhZ2VzID0gcmVxdWVz
dC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDMpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoMSwgbGVuKG1lc3NhZ2VzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQn
LCBtZXNzYWdlc1swXSkKKyAgICAgICAgY29udHJvbF9ibG9ja3MgPSByZXF1ZXN0LmNvbm5lY3Rp
b24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQorICAgICAgICAjIFRoZXJlIHNob3VsZCBi
ZSA4IGNvbnRyb2wgYmxvY2tzOgorICAgICAgICAjICAgLSAxIE5ld0NoYW5uZWxTbG90CisgICAg
ICAgICMgICAtIDIgQWRkQ2hhbm5lbFJlc3BvbnNlcyBmb3IgY2hhbm5lbCBpZCAyIGFuZCAzCisg
ICAgICAgICMgICAtIDYgRmxvd0NvbnRyb2xzIGZvciBjaGFubmVsIGlkIDEgKGluaXRpYWxpemUp
LCAnSGVsbG8nLCAnV29ybGQnLAorICAgICAgICAjICAgICBhbmQgMyAnR29vZGJ5ZSdzCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoOSwgbGVuKGNvbnRyb2xfYmxvY2tzKSkKKworICAgIGRlZiB0
ZXN0X3BoeXNpY2FsX2Nvbm5lY3Rpb25fd3JpdGVfZmFpbHVyZShzZWxmKToKKyAgICAgICAgIyBV
c2UgX0ZhaWxPbldyaXRlQ29ubmVjdGlvbi4KKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9j
a19yZXF1ZXN0KGNvbm5lY3Rpb249X0ZhaWxPbldyaXRlQ29ubmVjdGlvbigpKQorCisgICAgICAg
IGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQorICAgICAgICBtdXhfaGFuZGxlciA9
IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQorICAgICAgICBtdXhfaGFuZGxl
ci5zdGFydCgpCisKKyAgICAgICAgIyBMZXQgdGhlIHdvcmtlciBlY2hvIGJhY2sgJ0hlbGxvJy4g
SXQgY2F1c2VzIF9GYWlsT25Xcml0ZUNvbm5lY3Rpb24KKyAgICAgICAgIyByYWlzaW5nIGFuIGV4
Y2VwdGlvbi4KKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAg
ICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0hlbGxvJykp
CisKKyAgICAgICAgIyBMZXQgdGhlIHdvcmtlciBleGl0LiBUaGlzIHdpbGwgYmUgdW5uZWNlc3Nh
cnkgd2hlbgorICAgICAgICAjIF9Mb2dpY2FsQ29ubmVjdGlvbi53cml0ZSgpIGlzIGNoYW5nZWQg
dG8gdGhyb3cgYW4gZXhjZXB0aW9uIGlmCisgICAgICAgICMgd29rZSB1cCBieSBvbl93cml0ZXJf
ZG9uZS4KKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAg
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkK
KworICAgICAgICAjIEFsbCB0aHJlYWRzIHNob3VsZCBiZSBkb25lLgorICAgICAgICBzZWxmLmFz
c2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCisKKyAgICBk
ZWYgdGVzdF9zZW5kX2Jsb2NrZWQoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21v
Y2tfcmVxdWVzdCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQor
ICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVy
KQorICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCisKKyAgICAgICAgbXV4X2hhbmRsZXIuYWRk
X2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9S
X0NMSUVOVCkKKworICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9o
ZWFkZXIocGF0aD0nL2VjaG8nKQorICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0
ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAorICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBl
bmNvZGluZz0wLAorICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hh
a2UpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVx
dWVzdCkKKworICAgICAgICAjIE9uIHJlY2VpdmluZyB0aGlzICdIZWxsbycsIHRoZSBzZXJ2ZXIg
dHJpZXMgdG8gZWNobyBiYWNrICdIZWxsbycsCisgICAgICAgICMgYnV0IGl0IHdpbGwgYmUgYmxv
Y2tlZCBzaW5jZSB0aGVyZSdzIG5vIHNlbmQgcXVvdGEgYXZhaWxhYmxlIGZvciB0aGUKKyAgICAg
ICAgIyBjaGFubmVsIDIuCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisg
ICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdI
ZWxsbycpKQorCisgICAgICAgICMgV2FpdCB1bnRpbCB0aGUgd29ya2VyIGlzIGJsb2NrZWQgZHVl
IHRvIHNlbmQgcXVvdGEgc2hvcnRhZ2UuCisgICAgICAgIHRpbWUuc2xlZXAoMSkKKworICAgICAg
ICAjIENsb3NlIHRoZSBjaGFubmVsIDIuIFRoZSB3b3JrZXIgc2hvdWxkIGJlIG5vdGlmaWVkIG9m
IHRoZSBlbmQgb2YKKyAgICAgICAgIyB3cml0ZXIgdGhyZWFkIGFuZCBzdG9wIHdhaXRpbmcgZm9y
IHNlbmQgcXVvdGEgdG8gYmUgcmVwbGVuaXNoZWQuCisgICAgICAgIGRyb3BfY2hhbm5lbCA9IF9j
cmVhdGVfZHJvcF9jaGFubmVsX2ZyYW1lKGNoYW5uZWxfaWQ9MikKKworICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGRyb3BfY2hhbm5lbCkKKworICAgICAgICAjIE1ha2Ugc3Vy
ZSB0aGUgY2hhbm5lbCAxIGlzIGFsc28gY2xvc2VkLgorICAgICAgICBkcm9wX2NoYW5uZWwgPSBf
Y3JlYXRlX2Ryb3BfY2hhbm5lbF9mcmFtZShjaGFubmVsX2lkPTEpCisgICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoZHJvcF9jaGFubmVsKQorCisgICAgICAgICMgQWxsIHRocmVh
ZHMgc2hvdWxkIGJlIGRvbmUuCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53
YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKKworICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsX2Rl
bHRhX2VuY29kaW5nKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVl
c3QoKQorICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKKyAgICAgICAg
bXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKKyAgICAg
ICAgbXV4X2hhbmRsZXIuc3RhcnQoKQorICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9z
bG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQor
CisgICAgICAgIGRlbHRhID0gJ0dFVCAvZWNobyBIVFRQLzEuMVxyXG5cclxuJworICAgICAgICBh
ZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAor
ICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0xLCBlbmNvZGVkX2hhbmRzaGFrZT1k
ZWx0YSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9y
ZXF1ZXN0KQorCisgICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2Zy
YW1lKGNoYW5uZWxfaWQ9MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCisKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lk
PTIsIG1lc3NhZ2U9J0hlbGxvJykpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMoCisgICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNz
YWdlPSdHb29kYnllJykpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisg
ICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdH
b29kYnllJykpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50
aWxfZG9uZSh0aW1lb3V0PTIpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbydd
LCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1lc3NhZ2VzKQorICAgICAgICBtZXNzYWdl
cyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ0hlbGxvJywgbWVzc2FnZXNbMF0pCisKKyAgICBkZWYgdGVzdF9hZGRfY2hhbm5lbF9kZWx0
YV9lbmNvZGluZ19vdmVycmlkZShzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9j
a19yZXF1ZXN0KCkKKyAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCisg
ICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIp
CisgICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKKyAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2No
YW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NM
SUVOVCkKKworICAgICAgICAjIE92ZXJyaWRlIFNlYy1XZWJTb2NrZXQtUHJvdG9jb2wuCisgICAg
ICAgIGRlbHRhID0gKCdHRVQgL2VjaG8gSFRUUC8xLjFcclxuJworICAgICAgICAgICAgICAgICAn
U2VjLVdlYlNvY2tldC1Qcm90b2NvbDogeC1mb29cclxuJworICAgICAgICAgICAgICAgICAnXHJc
bicpCisgICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3Jl
cXVlc3RfZnJhbWUoCisgICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTEsIGVuY29k
ZWRfaGFuZHNoYWtlPWRlbHRhKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KGFkZF9jaGFubmVsX3JlcXVlc3QpCisKKyAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9m
bG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQorICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKKworICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAorICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2Zy
YW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG8nKSkKKyAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFu
bmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lk
PTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hh
bmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCisKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChbJ0hlbGxvJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVzc2FnZXMpCisg
ICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2Vz
KDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3NhZ2VzKSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtZXNzYWdlc1swXSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgneC1mb28nLAorICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoZXIuY2hh
bm5lbF9ldmVudHNbMl0ucmVxdWVzdC53c19wcm90b2NvbCkKKworICAgIGRlZiB0ZXN0X2FkZF9j
aGFubmVsX2RlbHRhX2FmdGVyX2lkZW50aXR5KHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9tb2NrX3JlcXVlc3QoKQorICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRj
aGVyKCkKKyAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlz
cGF0Y2hlcikKKyAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQorICAgICAgICBtdXhfaGFuZGxl
ci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9U
QV9GT1JfQ0xJRU5UKQorICAgICAgICAjIFNlYy1XZWJTb2NrZXQtUHJvdG9jb2wgaXMgZGlmZmVy
ZW50IGZyb20gY2xpZW50J3Mgb3BlbmluZyBoYW5kc2hha2UKKyAgICAgICAgIyBvZiB0aGUgcGh5
c2ljYWwgY29ubmVjdGlvbi4KKyAgICAgICAgIyBUT0RPKGJhc2hpKTogUmVtb3ZlIFVwZ3JhZGUs
IENvbm5lY3Rpb24sIFNlYy1XZWJTb2NrZXQtS2V5IGFuZAorICAgICAgICAjIFNlYy1XZWJTb2Nr
ZXQtVmVyc2lvbi4KKyAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSAoCisgICAgICAgICAgICAn
R0VUIC9lY2hvIEhUVFAvMS4xXHJcbicKKyAgICAgICAgICAgICdIb3N0OiBzZXJ2ZXIuZXhhbXBs
ZS5jb21cclxuJworICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6IHgtZm9vXHJc
bicKKyAgICAgICAgICAgICdDb25uZWN0aW9uOiBVcGdyYWRlXHJcbicKKyAgICAgICAgICAgICdP
cmlnaW46IGh0dHA6Ly9leGFtcGxlLmNvbVxyXG4nCisgICAgICAgICAgICAnXHJcbicpCisgICAg
ICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJh
bWUoCisgICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCisgICAgICAgICAgICBl
bmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKKyAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQorCisgICAgICAgIGZsb3dfY29u
dHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVv
dGE9NikKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wp
CisKKyAgICAgICAgZGVsdGEgPSAnR0VUIC9lY2hvIEhUVFAvMS4xXHJcblxyXG4nCisgICAgICAg
IGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUo
CisgICAgICAgICAgICBjaGFubmVsX2lkPTMsIGVuY29kaW5nPTEsIGVuY29kZWRfaGFuZHNoYWtl
PWRlbHRhKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVs
X3JlcXVlc3QpCisKKyAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xf
ZnJhbWUoY2hhbm5lbF9pZD0zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQorICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKKworICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKAorICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxf
aWQ9MiwgbWVzc2FnZT0nSGVsbG8nKSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTMsIG1l
c3NhZ2U9J1dvcmxkJykpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisg
ICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdH
b29kYnllJykpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAgICAg
ICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnll
JykpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAgICAgICAgICBf
Y3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0zLCBtZXNzYWdlPSdHb29kYnllJykpCisK
KyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1l
b3V0PTIpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW10sIGRpc3BhdGNoZXIuY2hhbm5l
bF9ldmVudHNbMV0ubWVzc2FnZXMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbydd
LCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1lc3NhZ2VzKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKFsnV29ybGQnXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1szXS5tZXNzYWdl
cykKKyAgICAgICAgIyBDaGFubmVsIDIKKyAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5l
Y3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgx
LCBsZW4obWVzc2FnZXMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1lc3Nh
Z2VzWzBdKQorICAgICAgICAjIENoYW5uZWwgMworICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3Qu
Y29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygzKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKDEsIGxlbihtZXNzYWdlcykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywg
bWVzc2FnZXNbMF0pCisgICAgICAgICMgSGFuZHNoYWtlIGJhc2Ugc2hvdWxkIGJlIHVwZGF0ZWQu
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICAneC1mb28nLAorICAgICAg
ICAgICAgbXV4X2hhbmRsZXIuX2hhbmRzaGFrZV9iYXNlLl9oZWFkZXJzWydTZWMtV2ViU29ja2V0
LVByb3RvY29sJ10pCisKKyAgICBkZWYgdGVzdF9hZGRfY2hhbm5lbF9kZWx0YV9yZW1vdmVfaGVh
ZGVyKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQorICAg
ICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKKyAgICAgICAgbXV4X2hhbmRs
ZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKKyAgICAgICAgbXV4X2hh
bmRsZXIuc3RhcnQoKQorICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXgu
X0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQorICAgICAgICAj
IE92ZXJyaWRlIGhhbmRzaGFrZSBkZWx0YSBiYXNlLgorICAgICAgICBlbmNvZGVkX2hhbmRzaGFr
ZSA9ICgKKyAgICAgICAgICAgICdHRVQgL2VjaG8gSFRUUC8xLjFcclxuJworICAgICAgICAgICAg
J0hvc3Q6IHNlcnZlci5leGFtcGxlLmNvbVxyXG4nCisgICAgICAgICAgICAnU2VjLVdlYlNvY2tl
dC1Qcm90b2NvbDogeC1mb29cclxuJworICAgICAgICAgICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVc
clxuJworICAgICAgICAgICAgJ09yaWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJcbicKKyAgICAg
ICAgICAgICdcclxuJykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRk
X2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rp
bmc9MCwKKyAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQor
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3Qp
CisKKyAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hh
bm5lbF9pZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXBsZW5pc2hlZF9xdW90YT02KQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKGZsb3dfY29udHJvbCkKKworICAgICAgICAjIFJlbW92ZSBTZWMtV2ViU29ja2V0LVBy
b3RvY29sIGhlYWRlci4KKyAgICAgICAgZGVsdGEgPSAoJ0dFVCAvZWNobyBIVFRQLzEuMVxyXG4n
CisgICAgICAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sOicKKyAgICAgICAgICAg
ICAgICAgJ1xyXG4nKQorICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRf
Y2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAorICAgICAgICAgICAgY2hhbm5lbF9pZD0zLCBlbmNvZGlu
Zz0xLCBlbmNvZGVkX2hhbmRzaGFrZT1kZWx0YSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQorCisgICAgICAgIGZsb3dfY29udHJvbCA9
IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikK
KyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCisKKyAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVf
bG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvJykpCisgICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxf
ZnJhbWUoY2hhbm5lbF9pZD0zLCBtZXNzYWdlPSdXb3JsZCcpKQorICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKAorICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNo
YW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKAorICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxf
aWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKAorICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9Mywg
bWVzc2FnZT0nR29vZGJ5ZScpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxl
ci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KFtdLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzFdLm1lc3NhZ2VzKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKFsnSGVsbG8nXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNz
YWdlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ1dvcmxkJ10sIGRpc3BhdGNoZXIuY2hh
bm5lbF9ldmVudHNbM10ubWVzc2FnZXMpCisgICAgICAgICMgQ2hhbm5lbCAyCisgICAgICAgIG1l
c3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3NhZ2VzKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnSGVsbG8nLCBtZXNzYWdlc1swXSkKKyAgICAgICAgIyBDaGFubmVsIDMKKyAgICAg
ICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMykK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdXb3JsZCcsIG1lc3NhZ2VzWzBdKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKAorICAgICAgICAgICAgJ3gtZm9vJywKKyAgICAgICAgICAgIGRpc3BhdGNoZXIuY2hhbm5l
bF9ldmVudHNbMl0ucmVxdWVzdC53c19wcm90b2NvbCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgKKyAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICBkaXNwYXRjaGVyLmNoYW5uZWxfZXZl
bnRzWzNdLnJlcXVlc3Qud3NfcHJvdG9jb2wpCisKKyAgICBkZWYgdGVzdF9hZGRfY2hhbm5lbF9k
ZWx0YV9lbmNvZGluZ19wZXJtZXNzYWdlX2RlZmxhdGUoc2VsZik6CisgICAgICAgICMgRW5hYmxl
IHBlcm1lc3NhZ2UgZGVmbGF0ZSBleHRlbnNpb24gb24gdGhlIGltcGxpY2l0bHkgb3BlbmVkIGNo
YW5uZWwuCisgICAgICAgIGV4dGVuc2lvbnMgPSBjb21tb24ucGFyc2VfZXh0ZW5zaW9ucygKKyAg
ICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OKQorICAgICAgICBy
ZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoCisgICAgICAgICAgICBsb2dpY2FsX2NoYW5u
ZWxfZXh0ZW5zaW9ucz1leHRlbnNpb25zKQorICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tE
aXNwYXRjaGVyKCkKKyAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVz
dCwgZGlzcGF0Y2hlcikKKyAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQorICAgICAgICBtdXhf
aGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxf
U0xPVFMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElB
TF9RVU9UQV9GT1JfQ0xJRU5UKQorCisgICAgICAgIGRlbHRhID0gJ0dFVCAvZWNobyBIVFRQLzEu
MVxyXG5cclxuJworICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hh
bm5lbF9yZXF1ZXN0X2ZyYW1lKAorICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0x
LCBlbmNvZGVkX2hhbmRzaGFrZT1kZWx0YSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQorCisgICAgICAgIGZsb3dfY29udHJvbCA9IF9j
cmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MjApCisg
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQorCisgICAg
ICAgICMgU2VuZCBjb21wcmVzc2VkICdIZWxsbycgb24gbG9naWNhbCBjaGFubmVsIDEgYW5kIDIu
CisgICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKKyAgICAgICAgICAgIHpsaWIu
Wl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCisg
ICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQorICAg
ICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNI
KQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCisKKyAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVf
bG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9Y29tcHJlc3NlZF9oZWxsbywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3YxPVRydWUpKQorICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAorICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2Zy
YW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT1jb21wcmVzc2VkX2hlbGxvLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJzdjE9VHJ1ZSkpCisKKyAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFu
bmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lk
PTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hh
bmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCisKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChbJ0hlbGxvJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMV0ubWVzc2FnZXMpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyddLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZl
bnRzWzJdLm1lc3NhZ2VzKQorICAgICAgICAjIFdyaXR0ZW4gJ0hlbGxvJ3Mgc2hvdWxkIGJlIGNv
bXByZXNzZWQuCisgICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0
dGVuX21lc3NhZ2VzKDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3NhZ2Vz
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21wcmVzc2VkX2hlbGxvLCBtZXNzYWdlc1sw
XSkKKyAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVz
c2FnZXMoMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbXByZXNzZWRfaGVsbG8sIG1lc3NhZ2VzWzBdKQorCisg
ICAgZGVmIHRlc3RfYWRkX2NoYW5uZWxfZGVsdGFfZW5jb2RpbmdfcmVtb3ZlX2V4dGVuc2lvbnMo
c2VsZik6CisgICAgICAgICMgRW5hYmxlIHBlcm1lc3NhZ2UgZGVmbGF0ZSBleHRlbnNpb24gb24g
dGhlIGltcGxpY2l0bHkgb3BlbmVkIGNoYW5uZWwuCisgICAgICAgIGV4dGVuc2lvbnMgPSBjb21t
b24ucGFyc2VfZXh0ZW5zaW9ucygKKyAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdFX0RFRkxB
VEVfRVhURU5TSU9OKQorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoCisg
ICAgICAgICAgICBsb2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucz1leHRlbnNpb25zKQorICAgICAg
ICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKKyAgICAgICAgbXV4X2hhbmRsZXIg
PSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKKyAgICAgICAgbXV4X2hhbmRs
ZXIuc3RhcnQoKQorICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lO
SVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQorCisgICAgICAgICMg
UmVtb3ZlIHBlcm1lc3NhZ2UgZGVmbGF0ZSBleHRlbnNpb24uCisgICAgICAgIGRlbHRhID0gKCdH
RVQgL2VjaG8gSFRUUC8xLjFcclxuJworICAgICAgICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1F
eHRlbnNpb25zOlxyXG4nCisgICAgICAgICAgICAgICAgICdcclxuJykKKyAgICAgICAgYWRkX2No
YW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKKyAgICAg
ICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MSwgZW5jb2RlZF9oYW5kc2hha2U9ZGVsdGEp
CisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVz
dCkKKworICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShj
aGFubmVsX2lkPTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTIwKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKGZsb3dfY29udHJvbCkKKworICAgICAgICAjIFNlbmQgY29tcHJlc3NlZCBtZXNz
YWdlIG9uIGxvZ2ljYWwgY2hhbm5lbCAyLiBUaGUgbWVzc2FnZSBzaG91bGQKKyAgICAgICAgIyBi
ZSByZWplY3RlZCAoc2luY2UgcnN2MSBpcyBzZXQpLgorICAgICAgICBjb21wcmVzcyA9IHpsaWIu
Y29tcHJlc3NvYmooCisgICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxp
Yi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0g
Y29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKKyAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBj
b21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKKyAgICAgICAgY29tcHJlc3NlZF9oZWxs
byA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKAorICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9Miwg
bWVzc2FnZT1jb21wcmVzc2VkX2hlbGxvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJzdjE9VHJ1ZSkpCisKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygK
KyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9
J0dvb2RieWUnKSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91
bnRpbF9kb25lKHRpbWVvdXQ9MikpCisKKyAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKKyAg
ICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRy
b2xfYmxvY2tzKCkKKyAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9E
Uk9QX0NIQU5ORUwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfTk9S
TUFMX0NMT1NVUkUsIGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoMiwgZHJvcF9jaGFubmVsLmNoYW5uZWxfaWQpCisgICAgICAgICMgVW5zdXBwb3J0ZWRG
cmFtZUV4Y2VwdGlvbiBzaG91bGQgYmUgcmFpc2VkIG9uIGxvZ2ljYWwgY2hhbm5lbCAyLgorICAg
ICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRz
WzJdLmV4Y2VwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5zdXBw
b3J0ZWRGcmFtZUV4Y2VwdGlvbikpCisKKyAgICBkZWYgdGVzdF9hZGRfY2hhbm5lbF9pbnZhbGlk
X2VuY29kaW5nKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3Qo
KQorICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKKyAgICAgICAgbXV4
X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKKyAgICAgICAg
bXV4X2hhbmRsZXIuc3RhcnQoKQorICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90
cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQorCisg
ICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScv
ZWNobycpCisgICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVs
X3JlcXVlc3RfZnJhbWUoCisgICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTMsCisg
ICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKKyAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQorCisgICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0y
KSkKKworICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAorICAgICAgICAgICAgYiBmb3IgYiBp
biByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQorICAgICAg
ICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9VTktOT1dOX1JFUVVFU1RfRU5DT0RJ
TkcsCisgICAgICAgICAgICAgICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VS
Uk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJf
Y2xvc2VfY29kZSkKKworICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsX2luY29tcGxldGVfaGFuZHNo
YWtlKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQorICAg
ICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKKyAgICAgICAgbXV4X2hhbmRs
ZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKKyAgICAgICAgbXV4X2hh
bmRsZXIuc3RhcnQoKQorICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXgu
X0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQorCisgICAgICAg
IGluY29tcGxldGVfZW5jb2RlZF9oYW5kc2hha2UgPSAnR0VUIC9lY2hvIEhUVFAvMS4xJworICAg
ICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2Zy
YW1lKAorICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAorICAgICAgICAgICAg
ZW5jb2RlZF9oYW5kc2hha2U9aW5jb21wbGV0ZV9lbmNvZGVkX2hhbmRzaGFrZSkKKyAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQorCisgICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAgICAgICAgICBfY3JlYXRlX2xv
Z2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCisKKyAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQor
CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgxIGluIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHMp
CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShub3QgMiBpbiBkaXNwYXRjaGVyLmNoYW5uZWxfZXZl
bnRzKQorCisgICAgZGVmIHRlc3RfYWRkX2NoYW5uZWxfZHVwbGljYXRlX2NoYW5uZWxfaWQoc2Vs
Zik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCisgICAgICAgIGRp
c3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQorICAgICAgICBtdXhfaGFuZGxlciA9IG11
eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQorICAgICAgICBtdXhfaGFuZGxlci5z
dGFydCgpCisgICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElB
TF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCisKKyAgICAgICAgZW5jb2Rl
ZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKKyAgICAg
ICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFt
ZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKKyAgICAgICAgICAgIGVu
Y29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQorICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCisKKyAgICAgICAgZW5jb2RlZF9o
YW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKKyAgICAgICAg
YWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgK
KyAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKKyAgICAgICAgICAgIGVuY29k
ZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCisKKyAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQorCisgICAgICAgIGRy
b3BfY2hhbm5lbCA9IG5leHQoCisgICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVj
dGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCisgICAgICAgICAgICBpZiBiLm9wY29k
ZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKG11eC5fRFJPUF9DT0RFX0NIQU5ORUxfQUxSRUFEWV9FWElTVFMsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SLAorICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJfY2xvc2VfY29kZSkKKworICAg
IGRlZiB0ZXN0X3JlY2VpdmVfZHJvcF9jaGFubmVsKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQorICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNw
YXRjaGVyKCkKKyAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwg
ZGlzcGF0Y2hlcikKKyAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQorICAgICAgICBtdXhfaGFu
ZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xP
VFMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9R
VU9UQV9GT1JfQ0xJRU5UKQorCisgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9y
ZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCisgICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3Qg
PSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCisgICAgICAgICAgICBjaGFubmVs
X2lkPTIsIGVuY29kaW5nPTAsCisgICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVk
X2hhbmRzaGFrZSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hh
bm5lbF9yZXF1ZXN0KQorCisgICAgICAgIGRyb3BfY2hhbm5lbCA9IF9jcmVhdGVfZHJvcF9jaGFu
bmVsX2ZyYW1lKGNoYW5uZWxfaWQ9MikKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcyhkcm9wX2NoYW5uZWwpCisKKyAgICAgICAgIyBUZXJtaW5hdGUgaW1wbGljaXRseSBvcGVu
ZWQgY2hhbm5lbC4KKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAg
ICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2Ri
eWUnKSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9k
b25lKHRpbWVvdXQ9MikpCisKKyAgICAgICAgZXhjZXB0aW9uID0gZGlzcGF0Y2hlci5jaGFubmVs
X2V2ZW50c1syXS5leGNlcHRpb24KKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4Y2VwdGlvbi5f
X2NsYXNzX18gPT0gQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24pCisKKyAgICBkZWYgdGVz
dF9yZWNlaXZlX3BpbmdfZnJhbWUoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21v
Y2tfcmVxdWVzdCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQor
ICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVy
KQorICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCisgICAgICAgIG11eF9oYW5kbGVyLmFkZF9j
aGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9D
TElFTlQpCisKKyAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVh
ZGVyKHBhdGg9Jy9lY2hvJykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVf
YWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5j
b2Rpbmc9MCwKKyAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtl
KQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVl
c3QpCisKKyAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUo
Y2hhbm5lbF9pZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0xMykKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCisKKyAgICAgICAgcGluZ19mcmFtZSA9IF9jcmVhdGVf
bG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbWVzc2FnZT0nSGVsbG8gV29ybGQhJywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9QSU5HKQorICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHBpbmdfZnJhbWUpCisKKyAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNh
bF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKKyAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFt
ZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKKworICAgICAgICBzZWxmLmFzc2Vy
dFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCisKKyAgICAgICAg
bWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdl
cygyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVfUE9ORywgbWVzc2Fn
ZXNbMF1bJ29wY29kZSddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbyBXb3JsZCEn
LCBtZXNzYWdlc1swXVsnbWVzc2FnZSddKQorCisgICAgZGVmIHRlc3RfcmVjZWl2ZV9mcmFnbWVu
dGVkX3Bpbmcoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgp
CisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQorICAgICAgICBtdXhf
aGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQorICAgICAgICBt
dXhfaGFuZGxlci5zdGFydCgpCisgICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3Rz
KG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCisKKyAg
ICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9l
Y2hvJykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxf
cmVxdWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKKyAg
ICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQorICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCisKKyAgICAg
ICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0y
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBs
ZW5pc2hlZF9xdW90YT0xMykKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhm
bG93X2NvbnRyb2wpCisKKyAgICAgICAgIyBTZW5kIGEgcGluZyB3aXRoIG1lc3NhZ2UgJ0hlbGxv
IHdvcmxkIScgaW4gdHdvIGZyYWdtZW50ZWQgZnJhbWVzLgorICAgICAgICBwaW5nX2ZyYW1lMSA9
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvICcsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1GYWxzZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfUElORykK
KyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nX2ZyYW1lMSkKKyAgICAg
ICAgcGluZ19mcmFtZTIgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdXb3JsZCEn
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49VHJ1ZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1v
bi5PUENPREVfQ09OVElOVUFUSU9OKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKHBpbmdfZnJhbWUyKQorCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
CisgICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdl
PSdHb29kYnllJykpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAg
ICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29k
YnllJykpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxf
ZG9uZSh0aW1lb3V0PTIpKQorCisgICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9u
LmdldF93cml0dGVuX2NvbnRyb2xfbWVzc2FnZXMoMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChjb21tb24uT1BDT0RFX1BPTkcsIG1lc3NhZ2VzWzBdWydvcGNvZGUnXSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnSGVsbG8gV29ybGQhJywgbWVzc2FnZXNbMF1bJ21lc3NhZ2UnXSkKKwor
ICAgIGRlZiB0ZXN0X3JlY2VpdmVfZnJhZ21lbnRlZF9waW5nX3doaWxlX3JlY2VpdmluZ19mcmFn
bWVudGVkX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVx
dWVzdCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQorICAgICAg
ICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQorICAg
ICAgICBtdXhfaGFuZGxlci5zdGFydCgpCisgICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVs
X3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQp
CisKKyAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBh
dGg9Jy9lY2hvJykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2No
YW5uZWxfcmVxdWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9
MCwKKyAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQorICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCisK
KyAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5l
bF9pZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXBsZW5pc2hlZF9xdW90YT0xOSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcyhmbG93X2NvbnRyb2wpCisKKyAgICAgICAgIyBTZW5kIGEgZnJhZ21lbnRlZCBmcmFtZSBv
ZiBtZXNzYWdlICdIZWxsbyAnLgorICAgICAgICBoZWxsbyA9IF9jcmVhdGVfbG9naWNhbF9mcmFt
ZShjaGFubmVsX2lkPTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1l
c3NhZ2U9J0hlbGxvICcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZp
bj1GYWxzZSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhoZWxsbykKKwor
ICAgICAgICAjIEJlZm9yZSBzZW5kaW5nIHRoZSBsYXN0IGZyYWdtZW50ZWQgZnJhbWUgb2YgdGhl
IG1lc3NhZ2UsIHNlbmQgYQorICAgICAgICAjIGZyYWdtZW50ZWQgcGluZy4KKyAgICAgICAgcGlu
ZzEgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdQaScsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZpbj1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfUElORykKKyAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nMSkKKyAgICAgICAgcGluZzIgPSBfY3JlYXRlX2xvZ2lj
YWxfZnJhbWUoY2hhbm5lbF9pZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBtZXNzYWdlPSduZyEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmaW49VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2Rl
PWNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKHBpbmcyKQorCisgICAgICAgICMgU2VuZCB0aGUgbGFzdCBmcmFnbWVudGVkIGZy
YW1lIG9mIHRoZSBtZXNzYWdlLgorICAgICAgICB3b3JsZCA9IF9jcmVhdGVfbG9naWNhbF9mcmFt
ZShjaGFubmVsX2lkPTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1l
c3NhZ2U9J1dvcmxkIScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZp
bj1UcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29t
bW9uLk9QQ09ERV9DT05USU5VQVRJT04pCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMod29ybGQpCisKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAg
ICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dv
b2RieWUnKSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAg
ICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUn
KSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25l
KHRpbWVvdXQ9MikpCisKKyAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0
X3dyaXR0ZW5fbWVzc2FnZXMoMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvIFdv
cmxkISddLCBtZXNzYWdlcykKKyAgICAgICAgY29udHJvbF9tZXNzYWdlcyA9IHJlcXVlc3QuY29u
bmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzKDIpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9QT05HLCBjb250cm9sX21lc3NhZ2VzWzBdWydvcGNvZGUn
XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnUGluZyEnLCBjb250cm9sX21lc3NhZ2VzWzBd
WydtZXNzYWdlJ10pCisKKyAgICBkZWYgdGVzdF9yZWNlaXZlX3R3b19waW5nX3doaWxlX3JlY2Vp
dmluZ19mcmFnbWVudGVkX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X21vY2tfcmVxdWVzdCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIo
KQorICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRj
aGVyKQorICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCisgICAgICAgIG11eF9oYW5kbGVyLmFk
ZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZP
Ul9DTElFTlQpCisKKyAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3Rf
aGVhZGVyKHBhdGg9Jy9lY2hvJykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVh
dGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9Miwg
ZW5jb2Rpbmc9MCwKKyAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNo
YWtlKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3Jl
cXVlc3QpCisKKyAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJh
bWUoY2hhbm5lbF9pZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0yNSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCisKKyAgICAgICAgIyBTZW5kIGEgZnJhZ21lbnRl
ZCBmcmFtZSBvZiBtZXNzYWdlICdIZWxsbyAnLgorICAgICAgICBoZWxsbyA9IF9jcmVhdGVfbG9n
aWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1lc3NhZ2U9J0hlbGxvICcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZpbj1GYWxzZSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyho
ZWxsbykKKworICAgICAgICAjIEJlZm9yZSBzZW5kaW5nIHRoZSBsYXN0IGZyYWdtZW50ZWQgZnJh
bWUgb2YgdGhlIG1lc3NhZ2UsIHNlbmQgYQorICAgICAgICAjIGZyYWdtZW50ZWQgcGluZyBhbmQg
YSBub24tZnJhZ21lbnRlZCBwaW5nLgorICAgICAgICBwaW5nMSA9IF9jcmVhdGVfbG9naWNhbF9m
cmFtZShjaGFubmVsX2lkPTIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1lc3NhZ2U9J1BpJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlu
PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29t
bW9uLk9QQ09ERV9QSU5HKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHBp
bmcxKQorICAgICAgICBwaW5nMiA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J25nIScsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9DT05USU5V
QVRJT04pCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMocGluZzIpCisgICAg
ICAgIHBpbmczID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nUG9uZyEnLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49VHJ1ZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfUElORykKKyAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nMykKKworICAgICAgICAjIFNlbmQgdGhl
IGxhc3QgZnJhZ21lbnRlZCBmcmFtZSBvZiB0aGUgbWVzc2FnZS4KKyAgICAgICAgd29ybGQgPSBf
Y3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtZXNzYWdlPSdXb3JsZCEnLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmaW49VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OKQorICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHdvcmxkKQorCisgICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoCisgICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5l
bF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5w
dXRfYnl0ZXMoCisgICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0y
LCBtZXNzYWdlPSdHb29kYnllJykpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5k
bGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQorCisgICAgICAgIG1lc3NhZ2VzID0gcmVx
dWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoWydIZWxsbyBXb3JsZCEnXSwgbWVzc2FnZXMpCisgICAgICAgIGNvbnRyb2xfbWVz
c2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcygy
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVfUE9ORywgY29udHJvbF9t
ZXNzYWdlc1swXVsnb3Bjb2RlJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1BpbmchJywg
Y29udHJvbF9tZXNzYWdlc1swXVsnbWVzc2FnZSddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGNvbW1vbi5PUENPREVfUE9ORywgY29udHJvbF9tZXNzYWdlc1sxXVsnb3Bjb2RlJ10pCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1BvbmchJywgY29udHJvbF9tZXNzYWdlc1sxXVsnbWVzc2Fn
ZSddKQorCisgICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX3doaWxlX3JlY2VpdmluZ19mcmFn
bWVudGVkX3Bpbmcoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVz
dCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQorICAgICAgICBt
dXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQorICAgICAg
ICBtdXhfaGFuZGxlci5zdGFydCgpCisgICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Ns
b3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCisK
KyAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9
Jy9lY2hvJykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5u
ZWxfcmVxdWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwK
KyAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQorICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCisKKyAg
ICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9p
ZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVw
bGVuaXNoZWRfcXVvdGE9MTkpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
Zmxvd19jb250cm9sKQorCisgICAgICAgICMgU2VuZCBhIGZyYWdtZW50ZWQgcGluZy4KKyAgICAg
ICAgcGluZzEgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdQaScsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfUElORykKKyAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nMSkKKworICAgICAgICAjIEJlZm9yZSBzZW5k
aW5nIHRoZSBsYXN0IGZyYWdtZW50ZWQgcGluZywgc2VuZCBhIG1lc3NhZ2UuCisgICAgICAgICMg
VGhlIGxvZ2ljYWwgY2hhbm5lbCAoMikgc2hvdWxkIGJlIGRyb3BwZWQuCisgICAgICAgIG1lc3Nh
Z2UgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvIHdvcmxkIScsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPVRydWUpCisgICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMobWVzc2FnZSkKKworICAgICAgICAjIFNlbmQgdGhlIGxh
c3QgZnJhZ21lbnRlZCBmcmFtZSBvZiB0aGUgbWVzc2FnZS4KKyAgICAgICAgcGluZzIgPSBfY3Jl
YXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtZXNzYWdlPSduZyEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmaW49VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OKQorICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKHBpbmcyKQorCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5w
dXRfYnl0ZXMoCisgICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0x
LCBtZXNzYWdlPSdHb29kYnllJykpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5k
bGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQorCisgICAgICAgIGRyb3BfY2hhbm5lbCA9
IG5leHQoCisgICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3Jp
dHRlbl9jb250cm9sX2Jsb2NrcygpCisgICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01V
WF9PUENPREVfRFJPUF9DSEFOTkVMKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGRyb3Bf
Y2hhbm5lbC5jaGFubmVsX2lkKQorICAgICAgICAjIE5vIG1lc3NhZ2Ugc2hvdWxkIGJlIHNlbnQg
b24gY2hhbm5lbCAyLgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3Nh
Z2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAyKQorICAgICAgICBzZWxmLmFzc2VydFJh
aXNlcyhLZXlFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLmdldF93cml0dGVuX2NvbnRyb2xfbWVzc2FnZXMsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIDIpCisKKyAgICBkZWYgdGVzdF9zZW5kX3Bpbmcoc2VsZik6CisgICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rp
c3BhdGNoZXIoKQorICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0
LCBkaXNwYXRjaGVyKQorICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCisgICAgICAgIG11eF9o
YW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9T
TE9UUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFM
X1FVT1RBX0ZPUl9DTElFTlQpCisKKyAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRl
X3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9waW5nJykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVz
dCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5u
ZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKKyAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29k
ZWRfaGFuZHNoYWtlKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9j
aGFubmVsX3JlcXVlc3QpCisKKyAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2Nv
bnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQorICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKKworICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKAorICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNo
YW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKKworICAgICAgICBtZXNz
YWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzKDIp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9QSU5HLCBtZXNzYWdlc1sw
XVsnb3Bjb2RlJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1BpbmchJywgbWVzc2FnZXNb
MF1bJ21lc3NhZ2UnXSkKKworICAgIGRlZiB0ZXN0X3NlbmRfZnJhZ21lbnRlZF9waW5nKHNlbGYp
OgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQorICAgICAgICBkaXNw
YXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKKyAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXgu
X011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKKyAgICAgICAgbXV4X2hhbmRsZXIuc3Rh
cnQoKQorICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxf
TlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQorCisgICAgICAgIGVuY29kZWRf
aGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvcGluZycpCisgICAgICAg
IGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUo
CisgICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCisgICAgICAgICAgICBlbmNv
ZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQorCisgICAgICAgICMgUmVwbGVuaXNo
IDMgYnl0ZXMuIFRoaXMgaXNuJ3QgZW5vdWdoIHRvIHNlbmQgdGhlIHdob2xlIHBpbmcgZnJhbWUK
KyAgICAgICAgIyBiZWNhdXNlIHRoZSBmcmFtZSB3aWxsIGhhdmUgNSBieXRlcyBtZXNzYWdlKCdQ
aW5nIScpLiBUaGUgZnJhbWUKKyAgICAgICAgIyBzaG91bGQgYmUgZnJhZ21lbnRlZC4KKyAgICAg
ICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0y
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBs
ZW5pc2hlZF9xdW90YT0zKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZs
b3dfY29udHJvbCkKKworICAgICAgICAjIFdhaXQgdW50aWwgdGhlIHdvcmtlciBpcyBibG9ja2Vk
IGR1ZSB0byBzZW5kIHF1b3RhIHNob3J0YWdlLgorICAgICAgICB0aW1lLnNsZWVwKDEpCisKKyAg
ICAgICAgIyBSZXBsZW5pc2ggcmVtYWluaW5nIDIgKyAxIGJ5dGVzIChpbmNsdWRpbmcgZXh0cmEg
Y29zdCkuCisgICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1l
KGNoYW5uZWxfaWQ9MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MykKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCisKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEs
IG1lc3NhZ2U9J0dvb2RieWUnKSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRs
ZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCisKKyAgICAgICAgbWVzc2FnZXMgPSByZXF1
ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcygyKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVfUElORywgbWVzc2FnZXNbMF1bJ29wY29kZSdd
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdQaW5nIScsIG1lc3NhZ2VzWzBdWydtZXNzYWdl
J10pCisKKyAgICBkZWYgdGVzdF9zZW5kX2ZyYWdtZW50ZWRfcGluZ193aGlsZV9zZW5kaW5nX2Zy
YWdtZW50ZWRfbWVzc2FnZShzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19y
ZXF1ZXN0KCkKKyAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCisgICAg
ICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCisg
ICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKKyAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5u
ZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVO
VCkKKworICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIo
CisgICAgICAgICAgICBwYXRoPScvcGluZ193aGlsZV9oZWxsb193b3JsZCcpCisgICAgICAgIGFk
ZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCisg
ICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCisgICAgICAgICAgICBlbmNvZGVk
X2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQorCisgICAgICAgICMgQXBwbGljYXRpb24g
d2lsbCBzZW5kOgorICAgICAgICAjIC0gdGV4dCBtZXNzYWdlICdIZWxsbyAnIHdpdGggZmluPTAK
KyAgICAgICAgIyAtIHBpbmcgd2l0aCAnUGluZyEnIG1lc3NhZ2UKKyAgICAgICAgIyAtIHRleHQg
bWVzc2FnZSAnV29ybGQhJyB3aXRoIGZpbj0xCisgICAgICAgICMgUmVwbGVuaXNoICg2ICsgMSkg
KyAoMiArIDEpIGJ5dGVzIHNvIHRoYXQgdGhlIHBpbmcgd2lsbCBiZQorICAgICAgICAjIGZyYWdt
ZW50ZWQgb24gdGhlIGxvZ2ljYWwgY2hhbm5lbC4KKyAgICAgICAgZmxvd19jb250cm9sID0gX2Ny
ZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0xMCkKKyAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCisKKyAgICAg
ICAgdGltZS5zbGVlcCgxKQorCisgICAgICAgICMgUmVwbGVuaXNoIHJlbWFpbmluZyAzICsgNiBi
eXRlcy4KKyAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUo
Y2hhbm5lbF9pZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXBsZW5pc2hlZF9xdW90YT05KQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKGZsb3dfY29udHJvbCkKKworICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKAorICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwg
bWVzc2FnZT0nR29vZGJ5ZScpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxl
ci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKKworICAgICAgICBtZXNzYWdlcyA9IHJlcXVl
c3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKFsnSGVsbG8gV29ybGQhJ10sIG1lc3NhZ2VzKQorICAgICAgICBjb250cm9sX21lc3Nh
Z2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfbWVzc2FnZXMoMikK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uT1BDT0RFX1BJTkcsIGNvbnRyb2xfbWVz
c2FnZXNbMF1bJ29wY29kZSddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdQaW5nIScsIGNv
bnRyb2xfbWVzc2FnZXNbMF1bJ21lc3NhZ2UnXSkKKworICAgIGRlZiB0ZXN0X3NlbmRfZnJhZ21l
bnRlZF90d29fcGluZ193aGlsZV9zZW5kaW5nX2ZyYWdtZW50ZWRfbWVzc2FnZShzZWxmKToKKyAg
ICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKKyAgICAgICAgZGlzcGF0Y2hl
ciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCisgICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhI
YW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCisgICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkK
KyAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJF
Ul9PRl9DSEFOTkVMX1NMT1RTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKKworICAgICAgICBlbmNvZGVkX2hhbmRz
aGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIoCisgICAgICAgICAgICBwYXRoPScvdHdvX3Bp
bmdfd2hpbGVfaGVsbG9fd29ybGQnKQorICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2Ny
ZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAorICAgICAgICAgICAgY2hhbm5lbF9pZD0y
LCBlbmNvZGluZz0wLAorICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5k
c2hha2UpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxf
cmVxdWVzdCkKKworICAgICAgICAjIEFwcGxpY2F0aW9uIHdpbGwgc2VuZDoKKyAgICAgICAgIyAt
IHRleHQgbWVzc2FnZSAnSGVsbG8gJyB3aXRoIGZpbj0wCisgICAgICAgICMgLSBwaW5nIHdpdGgg
J1BpbmchJyBtZXNzYWdlCisgICAgICAgICMgLSBwaW5nIHdpdGggJ1BvbmchJyBtZXNzYWdlCisg
ICAgICAgICMgLSB0ZXh0IG1lc3NhZ2UgJ1dvcmxkIScgd2l0aCBmaW49MQorICAgICAgICAjIFJl
cGxlbmlzaCAoNiArIDEpICsgKDIgKyAxKSBieXRlcyBzbyB0aGF0IHRoZSBmaXJzdCBwaW5nIHdp
bGwgYmUKKyAgICAgICAgIyBmcmFnbWVudGVkIG9uIHRoZSBsb2dpY2FsIGNoYW5uZWwuCisgICAg
ICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9
MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVw
bGVuaXNoZWRfcXVvdGE9MTApCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
Zmxvd19jb250cm9sKQorCisgICAgICAgIHRpbWUuc2xlZXAoMSkKKworICAgICAgICAjIFJlcGxl
bmlzaCByZW1haW5pbmcgMyArICg1ICsgMSkgKyA2IGJ5dGVzLiBUaGUgc2Vjb25kIHBpbmcgd29u
J3QKKyAgICAgICAgIyBiZSBmcmFnbWVudGVkIG9uIHRoZSBsb2dpY2FsIGNoYW5uZWwuCisgICAg
ICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9
MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVw
bGVuaXNoZWRfcXVvdGE9MTUpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
Zmxvd19jb250cm9sKQorCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisg
ICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdH
b29kYnllJykpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50
aWxfZG9uZSh0aW1lb3V0PTIpKQorCisgICAgICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0
aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydI
ZWxsbyBXb3JsZCEnXSwgbWVzc2FnZXMpCisgICAgICAgIGNvbnRyb2xfbWVzc2FnZXMgPSByZXF1
ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcygyKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVfUElORywgY29udHJvbF9tZXNzYWdlc1swXVsn
b3Bjb2RlJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1BpbmchJywgY29udHJvbF9tZXNz
YWdlc1swXVsnbWVzc2FnZSddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENP
REVfUElORywgY29udHJvbF9tZXNzYWdlc1sxXVsnb3Bjb2RlJ10pCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ1BvbmchJywgY29udHJvbF9tZXNzYWdlc1sxXVsnbWVzc2FnZSddKQorCisgICAg
ZGVmIHRlc3Rfc2VuZF9kcm9wX2NoYW5uZWwoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX21vY2tfcmVxdWVzdCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNo
ZXIoKQorICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNw
YXRjaGVyKQorICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCisKKyAgICAgICAgIyBEcm9wQ2hh
bm5lbCBmb3IgY2hhbm5lbCBpZCAxIHdoaWNoIGRvZXNuJ3QgaGF2ZSByZWFzb24uCisgICAgICAg
IGZyYW1lID0gY3JlYXRlX2JpbmFyeV9mcmFtZSgnXHgwMFx4NjBceDAxXHgwMCcsIG1hc2s9VHJ1
ZSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmcmFtZSkKKworICAgICAg
ICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9Mikp
CisKKyAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKKyAgICAgICAgICAgIGIgZm9yIGIgaW4g
cmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKKyAgICAgICAg
ICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfQUNLTk9XTEVER0VELAorICAgICAgICAg
ICAgICAgICAgICAgICAgIGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoMSwgZHJvcF9jaGFubmVsLmNoYW5uZWxfaWQpCisKKyAgICBkZWYgdGVzdF90d29f
Zmxvd19jb250cm9sKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVl
c3QoKQorICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKKyAgICAgICAg
bXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKKyAgICAg
ICAgbXV4X2hhbmRsZXIuc3RhcnQoKQorICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9z
bG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQor
CisgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRo
PScvZWNobycpCisgICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFu
bmVsX3JlcXVlc3RfZnJhbWUoCisgICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAs
CisgICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKKyAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQorCisg
ICAgICAgICMgUmVwbGVuaXNoIDUgYnl0ZXMuCisgICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVh
dGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NSkKKyAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCisKKyAgICAgICAg
IyBTZW5kIDEwIGJ5dGVzLiBUaGUgc2VydmVyIHdpbGwgdHJ5IGVjaG8gYmFjayAxMCBieXRlcy4K
KyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVh
dGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvV29ybGQnKSkKKwor
ICAgICAgICAjIFJlcGxlbmlzaCA1ICsgMSAocGVyLW1lc3NhZ2UgZXh0cmEgY29zdCkgYnl0ZXMu
CisgICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5u
ZWxfaWQ9MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcyhmbG93X2NvbnRyb2wpCisKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3Nh
Z2U9J0dvb2RieWUnKSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAg
ICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dv
b2RieWUnKSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRp
bF9kb25lKHRpbWVvdXQ9MikpCisKKyAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rp
b24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hl
bGxvV29ybGQnXSwgbWVzc2FnZXMpCisgICAgICAgIHJlY2VpdmVkX2Zsb3dfY29udHJvbHMgPSBb
CisgICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9j
b250cm9sX2Jsb2NrcygpCisgICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENP
REVfRkxPV19DT05UUk9MIGFuZCBiLmNoYW5uZWxfaWQgPT0gMl0KKyAgICAgICAgIyBSZXBsZW5p
c2htZW50IGZvciAnSGVsbG9Xb3JsZCcgKyAxCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTEs
IHJlY2VpdmVkX2Zsb3dfY29udHJvbHNbMF0uc2VuZF9xdW90YSkKKyAgICAgICAgIyBSZXBsZW5p
c2htZW50IGZvciAnR29vZGJ5ZScgKyAxCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoOCwgcmVj
ZWl2ZWRfZmxvd19jb250cm9sc1sxXS5zZW5kX3F1b3RhKQorCisgICAgZGVmIHRlc3Rfbm9fc2Vu
ZF9xdW90YV9vbl9zZXJ2ZXIoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tf
cmVxdWVzdCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQorICAg
ICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQor
ICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCisgICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFu
bmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElF
TlQpCisKKyAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVy
KHBhdGg9Jy9lY2hvJykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRk
X2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rp
bmc9MCwKKyAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQor
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3Qp
CisKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9j
cmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvV29ybGQnKSkK
KworICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAorICAgICAgICAgICAgX2Ny
ZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQorCisg
ICAgICAgICMgSnVzdCB3YWl0IGZvciAxIHNlYyBzbyB0aGF0IHRoZSBzZXJ2ZXIgYXR0ZW1wdHMg
dG8gZWNobyBiYWNrCisgICAgICAgICMgJ0hlbGxvV29ybGQnLgorICAgICAgICBzZWxmLmFzc2Vy
dEZhbHNlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTEpKQorCisgICAgICAg
ICMgTm8gbWVzc2FnZSBzaG91bGQgYmUgc2VudCBvbiBjaGFubmVsIDIuCisgICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKEtleUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIDIpCisKKyAgICBkZWYgdGVzdF9ub19zZW5kX3F1b3RhX29uX3NlcnZlcl9mb3JfcGVybWVz
c2FnZV9leHRyYV9jb3N0KHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3Jl
cXVlc3QoKQorICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKKyAgICAg
ICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKKyAg
ICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQorICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5l
bF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5U
KQorCisgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihw
YXRoPScvZWNobycpCisgICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9j
aGFubmVsX3JlcXVlc3RfZnJhbWUoCisgICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5n
PTAsCisgICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKKyAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQor
CisgICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5u
ZWxfaWQ9MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcyhmbG93X2NvbnRyb2wpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
CisgICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdl
PSdIZWxsbycpKQorICAgICAgICAjIFJlcGxlbmlzaCBvbmx5IGxlbignV29ybGQnKSBieXRlcy4K
KyAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5l
bF9pZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXBsZW5pc2hlZF9xdW90YT01KQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKGZsb3dfY29udHJvbCkKKyAgICAgICAgIyBTZXJ2ZXIgc2hvdWxkIG5vdCBjYWxsYmFjayBm
b3IgdGhpcyBtZXNzYWdlLgorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAor
ICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0n
V29ybGQnKSkKKworICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAorICAgICAg
ICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5
ZScpKQorCisgICAgICAgICMgSnVzdCB3YWl0IGZvciAxIHNlYyBzbyB0aGF0IHRoZSBzZXJ2ZXIg
YXR0ZW1wdHMgdG8gZWNobyBiYWNrCisgICAgICAgICMgJ1dvcmxkJy4KKyAgICAgICAgc2VsZi5h
c3NlcnRGYWxzZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0xKSkKKworICAg
ICAgICAjIE9ubHkgb25lIG1lc3NhZ2Ugc2hvdWxkIGJlIHNlbnQgb24gY2hhbm5lbCAyLgorICAg
ICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygy
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8nXSwgbWVzc2FnZXMpCisKKyAgICBk
ZWYgdGVzdF9xdW90YV92aW9sYXRpb25fYnlfY2xpZW50KHNlbGYpOgorICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQorICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tE
aXNwYXRjaGVyKCkKKyAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVz
dCwgZGlzcGF0Y2hlcikKKyAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQorICAgICAgICBtdXhf
aGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxf
U0xPVFMsIDApCisKKyAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3Rf
aGVhZGVyKHBhdGg9Jy9lY2hvJykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVh
dGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9Miwg
ZW5jb2Rpbmc9MCwKKyAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNo
YWtlKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3Jl
cXVlc3QpCisKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAg
ICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvV29y
bGQnKSkKKworICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAorICAgICAgICAg
ICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScp
KQorCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUo
dGltZW91dD0yKSkKKworICAgICAgICBjb250cm9sX2Jsb2NrcyA9IHJlcXVlc3QuY29ubmVjdGlv
bi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
NSwgbGVuKGNvbnRyb2xfYmxvY2tzKSkKKyAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKKyAg
ICAgICAgICAgIGIgZm9yIGIgaW4gY29udHJvbF9ibG9ja3MKKyAgICAgICAgICAgIGlmIGIub3Bj
b2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwobXV4Ll9EUk9QX0NPREVfU0VORF9RVU9UQV9WSU9MQVRJT04sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKKworICAgIGRlZiB0ZXN0X2NvbnN1
bWVfcXVvdGFfZW1wdHlfbWVzc2FnZShzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
bW9ja19yZXF1ZXN0KCkKKyAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigp
CisgICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNo
ZXIpCisgICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKKyAgICAgICAgIyBDbGllbnQgaGFzIDEg
Ynl0ZSBxdW90YS4KKyAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9J
TklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLCAxKQorCisgICAgICAgIGVuY29kZWRfaGFu
ZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCisgICAgICAgIGFk
ZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCisg
ICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCisgICAgICAgICAgICBlbmNvZGVk
X2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQorCisgICAgICAgIGZsb3dfY29udHJvbCA9
IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MikK
KyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCisgICAg
ICAgICMgU2VuZCBhbiBlbXB0eSBtZXNzYWdlLiBQeXdlYnNvY2tldCBhbHdheXMgcmVwbGVuaXNo
ZXMgMSBieXRlIHF1b3RhCisgICAgICAgICMgZm9yIGVtcHR5IG1lc3NhZ2UKKyAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9m
cmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9JycpKQorCisgICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoCisgICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5l
bF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCisgICAgICAgICMgVGhpcyBtZXNzYWdlIHZpb2xh
dGVzIHF1b3RhIG9uIGNoYW5uZWwgaWQgMi4KKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIs
IG1lc3NhZ2U9J0dvb2RieWUnKSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRs
ZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgxLCBsZW4oZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNzYWdlcykpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJycsIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVzc2Fn
ZXNbMF0pCisKKyAgICAgICAgcmVjZWl2ZWRfZmxvd19jb250cm9scyA9IFsKKyAgICAgICAgICAg
IGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tz
KCkKKyAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9GTE9XX0NPTlRS
T0wgYW5kIGIuY2hhbm5lbF9pZCA9PSAyXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxl
bihyZWNlaXZlZF9mbG93X2NvbnRyb2xzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBy
ZWNlaXZlZF9mbG93X2NvbnRyb2xzWzBdLnNlbmRfcXVvdGEpCisKKyAgICAgICAgZHJvcF9jaGFu
bmVsID0gbmV4dCgKKyAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdl
dF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKKyAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11
eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwg
ZHJvcF9jaGFubmVsLmNoYW5uZWxfaWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9E
Uk9QX0NPREVfU0VORF9RVU9UQV9WSU9MQVRJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKKworICAgIGRlZiB0ZXN0X2NvbnN1bWVfcXVvdGFfZnJh
Z21lbnRlZF9tZXNzYWdlKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3Jl
cXVlc3QoKQorICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKKyAgICAg
ICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKKyAg
ICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQorICAgICAgICAjIENsaWVudCBoYXMgbGVuKCdIZWxs
bycpICsgbGVuKCdHb29kYnllJykgKyAyIGJ5dGVzIHF1b3RhLgorICAgICAgICBtdXhfaGFuZGxl
ci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMs
IDE0KQorCisgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRl
cihwYXRoPScvZWNobycpCisgICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2Fk
ZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCisgICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29k
aW5nPTAsCisgICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkK
KyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0
KQorCisgICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNo
YW5uZWxfaWQ9MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcyhmbG93X2NvbnRyb2wpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMoCisgICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNz
YWdlPSdIZScsIGZpbj1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv
cGNvZGU9Y29tbW9uLk9QQ09ERV9URVhUKSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIs
IG1lc3NhZ2U9J2xsbycsIGZpbj1UcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG9wY29kZT1jb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTikpCisKKyAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFt
ZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKKyAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFu
bmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUo
bXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCisKKyAgICAgICAgbWVzc2Fn
ZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvJ10sIG1lc3NhZ2VzKQorCisgICAgZGVmIHRlc3RfZnJh
Z21lbnRlZF9jb250cm9sX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X21vY2tfcmVxdWVzdCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIo
KQorICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRj
aGVyKQorICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCisgICAgICAgIG11eF9oYW5kbGVyLmFk
ZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZP
Ul9DTElFTlQpCisKKyAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3Rf
aGVhZGVyKHBhdGg9Jy9waW5nJykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVh
dGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9Miwg
ZW5jb2Rpbmc9MCwKKyAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNo
YWtlKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3Jl
cXVlc3QpCisKKyAgICAgICAgIyBSZXBsZW5pc2ggdG90YWwgNiBieXRlcyBpbiAzIEZsb3dDb250
cm9scy4KKyAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUo
Y2hhbm5lbF9pZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0xKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKGZsb3dfY29udHJvbCkKKworICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRl
X2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTIpCisgICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQorCisgICAgICAgIGZs
b3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNo
ZWRfcXVvdGE9MykKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2Nv
bnRyb2wpCisKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAg
ICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUn
KSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25l
KHRpbWVvdXQ9MikpCisKKyAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0
X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcygyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNv
bW1vbi5PUENPREVfUElORywgbWVzc2FnZXNbMF1bJ29wY29kZSddKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdQaW5nIScsIG1lc3NhZ2VzWzBdWydtZXNzYWdlJ10pCisKKyAgICBkZWYgdGVz
dF9jaGFubmVsX3Nsb3RfdmlvbGF0aW9uX2J5X2NsaWVudChzZWxmKToKKyAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKKyAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2Nr
RGlzcGF0Y2hlcigpCisgICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVl
c3QsIGRpc3BhdGNoZXIpCisgICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKKyAgICAgICAgbXV4
X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMoc2xvdHM9MSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2VuZF9xdW90YT1tdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVO
VCkKKworICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIo
cGF0aD0nL2VjaG8nKQorICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRf
Y2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAorICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGlu
Zz0wLAorICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCisg
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkK
KyAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5l
bF9pZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXBsZW5pc2hlZF9xdW90YT02KQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKGZsb3dfY29udHJvbCkKKworICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KAorICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2Fn
ZT0nSGVsbG8nKSkKKworICAgICAgICAjIFRoaXMgcmVxdWVzdCBzaG91bGQgYmUgcmVqZWN0ZWQu
CisgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRo
PScvZWNobycpCisgICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFu
bmVsX3JlcXVlc3RfZnJhbWUoCisgICAgICAgICAgICBjaGFubmVsX2lkPTMsIGVuY29kaW5nPTAs
CisgICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKKyAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQorICAg
ICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lk
PTMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
cGxlbmlzaGVkX3F1b3RhPTYpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
Zmxvd19jb250cm9sKQorCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisg
ICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0zLCBtZXNzYWdlPSdI
ZWxsbycpKQorCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAgICAg
ICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnll
JykpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAgICAgICAgICBf
Y3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCisK
KyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1l
b3V0PTIpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW10sIGRpc3BhdGNoZXIuY2hhbm5l
bF9ldmVudHNbMV0ubWVzc2FnZXMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbydd
LCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1lc3NhZ2VzKQorICAgICAgICBzZWxmLmFz
c2VydEZhbHNlKGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHMuaGFzX2tleSgzKSkKKyAgICAgICAg
ZHJvcF9jaGFubmVsID0gbmV4dCgKKyAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25u
ZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKKyAgICAgICAgICAgIGlmIGIub3Bj
b2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoMywgZHJvcF9jaGFubmVsLmNoYW5uZWxfaWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwobXV4Ll9EUk9QX0NPREVfTkVXX0NIQU5ORUxfU0xPVF9WSU9MQVRJT04sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKKworICAgIGRlZiB0ZXN0X3F1
b3RhX292ZXJmbG93X2J5X2NsaWVudChzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
bW9ja19yZXF1ZXN0KCkKKyAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigp
CisgICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNo
ZXIpCisgICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKKyAgICAgICAgbXV4X2hhbmRsZXIuYWRk
X2NoYW5uZWxfc2xvdHMoc2xvdHM9MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VuZF9xdW90YT1tdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKKworICAgICAg
ICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2VjaG8n
KQorICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1
ZXN0X2ZyYW1lKAorICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAorICAgICAg
ICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCisgICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKKyAgICAgICAgIyBS
ZXBsZW5pc2ggMHg3RkZGRkZGRkZGRkZGRkZGIGJ5dGVzIHR3aWNlLgorICAgICAgICBmbG93X2Nv
bnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxf
aWQ9MiwKKyAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTB4N0ZGRkZGRkZGRkZGRkZGRikK
KyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCisgICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQorCisgICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAgICAgICAgICBfY3JlYXRlX2xvZ2lj
YWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCisKKyAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQorCisg
ICAgICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCisgICAgICAgICAgICBiIGZvciBiIGluIHJlcXVl
c3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCisgICAgICAgICAgICBp
ZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDIsIGRyb3BfY2hhbm5lbC5jaGFubmVsX2lkKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX1NFTkRfUVVPVEFfT1ZFUkZMT1csCisgICAgICAgICAg
ICAgICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKKworICAgIGRlZiB0ZXN0X2lu
dmFsaWRfZW5jYXBzdWxhdGVkX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX21vY2tfcmVxdWVzdCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNo
ZXIoKQorICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNw
YXRjaGVyKQorICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCisKKyAgICAgICAgZmlyc3RfYnl0
ZSA9IChtdXguX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVTVCA8PCA1KQorICAgICAgICBi
bG9jayA9IChjaHIoZmlyc3RfYnl0ZSkgKworICAgICAgICAgICAgICAgICBtdXguX2VuY29kZV9j
aGFubmVsX2lkKDEpICsKKyAgICAgICAgICAgICAgICAgbXV4Ll9lbmNvZGVfbnVtYmVyKDApKQor
ICAgICAgICBwYXlsb2FkID0gbXV4Ll9lbmNvZGVfY2hhbm5lbF9pZChtdXguX0NPTlRST0xfQ0hB
Tk5FTF9JRCkgKyBibG9jaworICAgICAgICB0ZXh0X2ZyYW1lID0gY3JlYXRlX2JpbmFyeV9mcmFt
ZShwYXlsb2FkLCBvcGNvZGU9Y29tbW9uLk9QQ09ERV9URVhULAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtYXNrPVRydWUpCisgICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXModGV4dF9mcmFtZSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4
X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCisKKyAgICAgICAgZHJvcF9jaGFu
bmVsID0gbmV4dCgKKyAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdl
dF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKKyAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11
eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4
Ll9EUk9QX0NPREVfSU5WQUxJRF9FTkNBUFNVTEFUSU5HX01FU1NBR0UsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SLAorICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJfY2xvc2VfY29kZSkKKworICAg
IGRlZiB0ZXN0X2NoYW5uZWxfaWRfdHJ1bmNhdGVkKHNlbGYpOgorICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQorICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNw
YXRjaGVyKCkKKyAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwg
ZGlzcGF0Y2hlcikKKyAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQorCisgICAgICAgICMgVGhl
IGxhc3QgYnl0ZSBvZiB0aGUgY2hhbm5lbCBpZCBpcyBtaXNzaW5nLgorICAgICAgICBmcmFtZSA9
IGNyZWF0ZV9iaW5hcnlfZnJhbWUoJ1x4ODAnLCBtYXNrPVRydWUpCisgICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoZnJhbWUpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11
eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQorCisgICAgICAgIGRyb3BfY2hh
bm5lbCA9IG5leHQoCisgICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5n
ZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCisgICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBt
dXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11
eC5fRFJPUF9DT0RFX0NIQU5ORUxfSURfVFJVTkNBVEVELAorICAgICAgICAgICAgICAgICAgICAg
ICAgIGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29t
bW9uLlNUQVRVU19JTlRFUk5BTF9FTkRQT0lOVF9FUlJPUiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24uc2VydmVyX2Nsb3NlX2NvZGUpCisKKyAgICBkZWYgdGVz
dF9pbm5lcl9mcmFtZV90cnVuY2F0ZWQoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X21vY2tfcmVxdWVzdCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIo
KQorICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRj
aGVyKQorICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCisKKyAgICAgICAgIyBKdXN0IGNvbnRh
aW4gY2hhbm5lbCBpZCAxLgorICAgICAgICBmcmFtZSA9IGNyZWF0ZV9iaW5hcnlfZnJhbWUoJ1x4
MDEnLCBtYXNrPVRydWUpCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZnJh
bWUpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9u
ZSh0aW1lb3V0PTIpKQorCisgICAgICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCisgICAgICAgICAg
ICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2Nr
cygpCisgICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFO
TkVMKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX0VOQ0FQU1VMQVRF
RF9GUkFNRV9JU19UUlVOQ0FURUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgZHJvcF9jaGFu
bmVsLmRyb3BfY29kZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uU1RBVFVTX0lO
VEVSTkFMX0VORFBPSU5UX0VSUk9SLAorICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5zZXJ2ZXJfY2xvc2VfY29kZSkKKworICAgIGRlZiB0ZXN0X3Vua25vd25fbXV4
X29wY29kZShzZWxmKToKKyAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkK
KyAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCisgICAgICAgIG11eF9o
YW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCisgICAgICAgIG11
eF9oYW5kbGVyLnN0YXJ0KCkKKworICAgICAgICAjIFVuZGVmaW5lZCBvcGNvZGUgNQorICAgICAg
ICBmcmFtZSA9IGNyZWF0ZV9iaW5hcnlfZnJhbWUoJ1x4MDBceGEwJywgbWFzaz1UcnVlKQorICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lKQorCisgICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKKworICAg
ICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAorICAgICAgICAgICAgYiBmb3IgYiBpbiByZXF1ZXN0
LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQorICAgICAgICAgICAgaWYg
Yi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9VTktOT1dOX01VWF9PUENPREUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SLAorICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJfY2xvc2VfY29kZSkKKwor
ICAgIGRlZiB0ZXN0X2ludmFsaWRfbXV4X2NvbnRyb2xfYmxvY2soc2VsZik6CisgICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4
TW9ja0Rpc3BhdGNoZXIoKQorICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihy
ZXF1ZXN0LCBkaXNwYXRjaGVyKQorICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCisKKyAgICAg
ICAgIyBEcm9wQ2hhbm5lbCBjb250YWlucyAxIGJ5dGUgcmVhc29uCisgICAgICAgIGZyYW1lID0g
Y3JlYXRlX2JpbmFyeV9mcmFtZSgnXHgwMFx4NjBceDAwXHgwMVx4MDAnLCBtYXNrPVRydWUpCisg
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZnJhbWUpCisKKyAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQorCisg
ICAgICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCisgICAgICAgICAgICBiIGZvciBiIGluIHJlcXVl
c3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCisgICAgICAgICAgICBp
ZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCisg
ICAgICAgICAgICAgICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SLAor
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJfY2xvc2Vf
Y29kZSkKKworICAgIGRlZiB0ZXN0X3Blcm1lc3NhZ2VfZGVmbGF0ZShzZWxmKToKKyAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKKyAgICAgICAgZGlzcGF0Y2hlciA9IF9N
dXhNb2NrRGlzcGF0Y2hlcigpCisgICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVy
KHJlcXVlc3QsIGRpc3BhdGNoZXIpCisgICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKKyAgICAg
ICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9D
SEFOTkVMX1NMT1RTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXgu
X0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKKworICAgICAgICAjIEVuYWJsZSBwZXJtZXNzYWdl
IGRlZmxhdGUgZXh0ZW5zaW9uIG9uIGxvZ2ljYWwgY2hhbm5lbCAyLgorICAgICAgICBleHRlbnNp
b25zID0gY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04KKyAgICAgICAgZW5jb2Rl
ZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbnM9
ZXh0ZW5zaW9ucykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2No
YW5uZWxfcmVxdWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9
MCwKKyAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQorICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCisK
KyAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5l
bF9pZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXBsZW5pc2hlZF9xdW90YT0yMCkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcyhmbG93X2NvbnRyb2wpCisKKyAgICAgICAgIyBTZW5kIGNvbXByZXNzZWQgJ0hlbGxvJyB0
d2ljZS4KKyAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAorICAgICAgICAgICAg
emxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklU
UykKKyAgICAgICAgY29tcHJlc3NlZF9oZWxsbzEgPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8n
KQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvMSArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lO
Q19GTFVTSCkKKyAgICAgICAgY29tcHJlc3NlZF9oZWxsbzEgPSBjb21wcmVzc2VkX2hlbGxvMVs6
LTRdCisgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAgICAgICAgICBf
Y3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPWNvbXByZXNzZWRfaGVs
bG8xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzdjE9VHJ1ZSkpCisgICAg
ICAgIGNvbXByZXNzZWRfaGVsbG8yID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKKyAgICAg
ICAgY29tcHJlc3NlZF9oZWxsbzIgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gp
CisgICAgICAgIGNvbXByZXNzZWRfaGVsbG8yID0gY29tcHJlc3NlZF9oZWxsbzJbOi00XQorICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAorICAgICAgICAgICAgX2NyZWF0ZV9s
b2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT1jb21wcmVzc2VkX2hlbGxvMiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3YxPVRydWUpKQorCisgICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxf
ZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCisgICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoCisgICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUo
Y2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCisKKyAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQorCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoWydIZWxsbycsICdIZWxsbyddLAorICAgICAgICAgICAgICAgICAgICAg
ICAgIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVzc2FnZXMpCisgICAgICAgICMgV3Jp
dHRlbiAnSGVsbG8ncyBzaG91bGQgYmUgY29tcHJlc3NlZC4KKyAgICAgICAgbWVzc2FnZXMgPSBy
ZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgyLCBsZW4obWVzc2FnZXMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNv
bXByZXNzZWRfaGVsbG8xLCBtZXNzYWdlc1swXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChj
b21wcmVzc2VkX2hlbGxvMiwgbWVzc2FnZXNbMV0pCisKKworICAgIGRlZiB0ZXN0X3Blcm1lc3Nh
Z2VfZGVmbGF0ZV9mcmFnbWVudGVkX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIGV4dGVuc2lvbnMg
PSBjb21tb24ucGFyc2VfZXh0ZW5zaW9ucygKKyAgICAgICAgICAgIGNvbW1vbi5QRVJNRVNTQUdF
X0RFRkxBVEVfRVhURU5TSU9OKQorICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVl
c3QoCisgICAgICAgICAgICBsb2dpY2FsX2NoYW5uZWxfZXh0ZW5zaW9ucz1leHRlbnNpb25zKQor
ICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKKyAgICAgICAgbXV4X2hh
bmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKKyAgICAgICAgbXV4
X2hhbmRsZXIuc3RhcnQoKQorICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyht
dXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQorCisgICAg
ICAgICMgU2VuZCBjb21wcmVzc2VkICdIZWxsb0hlbGxvSGVsbG8nIGFzIGZyYWdtZW50ZWQgbWVz
c2FnZS4KKyAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAorICAgICAgICAgICAg
emxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklU
UykKKyAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsb0hl
bGxvSGVsbG8nKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHps
aWIuWl9TWU5DX0ZMVVNIKQorICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9o
ZWxsb1s6LTRdCisKKyAgICAgICAgbSA9IGxlbihjb21wcmVzc2VkX2hlbGxvKSAvIDIKKyAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9n
aWNhbF9mcmFtZShjaGFubmVsX2lkPTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWVzc2FnZT1jb21wcmVzc2VkX2hlbGxvWzptXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmaW49RmFsc2UsIHJzdjE9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9URVhUKSkKKyAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT1j
b21wcmVzc2VkX2hlbGxvW206XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
aW49VHJ1ZSwgcnN2MT1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv
cGNvZGU9Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJT04pKQorCisgICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoCisgICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hh
bm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQorCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoWydIZWxsb0hlbGxvSGVsbG8nXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzFdLm1lc3NhZ2VzKQorICAgICAgICBtZXNzYWdl
cyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygxKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoY29tcHJlc3NlZF9oZWxsbywgbWVzc2FnZXNbMF0pCisKKyAgICBkZWYgdGVzdF9yZWNlaXZl
X2JhZF9mcmFnbWVudGVkX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X21vY2tfcmVxdWVzdCgpCisgICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIo
KQorICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRj
aGVyKQorICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCisgICAgICAgIG11eF9oYW5kbGVyLmFk
ZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZP
Ul9DTElFTlQpCisKKyAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3Rf
aGVhZGVyKHBhdGg9Jy9lY2hvJykKKyAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVh
dGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKKyAgICAgICAgICAgIGNoYW5uZWxfaWQ9Miwg
ZW5jb2Rpbmc9MCwKKyAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNo
YWtlKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3Jl
cXVlc3QpCisKKyAgICAgICAgIyBTZW5kIGEgZnJhbWUgd2l0aCBmaW49RmFsc2UsIGFuZCB0aGVu
IHNlbmQgYSBmcmFtZSB3aXRoCisgICAgICAgICMgb3Bjb2RlPVRFWFQgKG5vdCBDT05USU5VQVRJ
T04pLiBMb2dpY2FsIGNoYW5uZWwgMiBzaG91bGQgYmUgZHJvcHBlZC4KKyAgICAgICAgZnJhbWUx
ID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvICcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmaW49RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9URVhUKQorICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lMSkKKyAgICAgICAgZnJhbWUyID0gX2NyZWF0
ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1lc3NhZ2U9J1dvcmxkIScsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmaW49VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX1RFWFQpCisgICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoZnJhbWUyKQorCisgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2Ny
ZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCisgICAgICAgIGFkZF9jaGFubmVsX3Jl
cXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCisgICAgICAgICAgICBj
aGFubmVsX2lkPTMsIGVuY29kaW5nPTAsCisgICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1l
bmNvZGVkX2hhbmRzaGFrZSkKKyAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhh
ZGRfY2hhbm5lbF9yZXF1ZXN0KQorCisgICAgICAgICMgU2VuZCBhIGZyYW1lIHdpdGggb3Bjb2Rl
PUNPTlRJTlVBVElPTiB3aXRob3V0IGEgcHJlY2VkaW5nIGZyYW1lCisgICAgICAgICMgdGhlIGZp
biBvZiB3aGljaCBpcyBub3Qgc2V0LiBMb2dpY2FsIGNoYW5uZWwgMyBzaG91bGQgYmUgZHJvcHBl
ZC4KKyAgICAgICAgZnJhbWUzID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvJywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfQ09O
VElOVUFUSU9OKQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lMykK
KworICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0
aD0nL2VjaG8nKQorICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hh
bm5lbF9yZXF1ZXN0X2ZyYW1lKAorICAgICAgICAgICAgY2hhbm5lbF9pZD00LCBlbmNvZGluZz0w
LAorICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCisgICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKKwor
ICAgICAgICAjIFNlbmQgYSBmcmFtZSB3aXRoIG9wY29kZT1QSU5HIGFuZCBmaW49RmFsc2UsIGFu
ZCB0aGVuIHNlbmQgYSBmcmFtZQorICAgICAgICAjIHdpdGggb3Bjb2RlPVRFWFQgKG5vdCBDT05U
SU5VQVRJT04pLiBMb2dpY2FsIGNoYW5uZWwgNCBzaG91bGQgYmUKKyAgICAgICAgIyBkcm9wcGVk
LgorICAgICAgICBmcmFtZTQgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD00LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nUGluZycsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49RmFsc2UsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9QSU5H
KQorICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lNCkKKyAgICAgICAg
ZnJhbWU1ID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9NCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvJywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfVEVYVCkKKyAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmcmFtZTUpCisKKyAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcygKKyAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKKworICAgICAgICBzZWxmLmFzc2VydFRy
dWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCisKKyAgICAgICAgZHJv
cF9jaGFubmVscyA9IFsKKyAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9u
LmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKKyAgICAgICAgICAgIGlmIGIub3Bjb2RlID09
IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUxdCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
MywgbGVuKGRyb3BfY2hhbm5lbHMpKQorICAgICAgICBmb3IgZCBpbiBkcm9wX2NoYW5uZWxzOgor
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9CQURfRlJBR01FTlRB
VElPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZC5kcm9wX2NvZGUpCisKKworaWYg
X19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICB1bml0dGVzdC5tYWluKCkKKworCisjIHZpOnN0
cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X3N0cmVhbS5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
dGVzdC90ZXN0X3N0cmVhbS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MWFjZmViMDQ4ZDNiMjAzMmE3OTQ4Y2Zh
MmFkZWE3Y2U2NGY5NWFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rfc3RyZWFt
LnB5CkBAIC0wLDAgKzEsNzcgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmln
aHQgMjAxMSwgR29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKKworIiIiVGVzdHMgZm9yIHN0cmVhbSBtb2R1bGUuIiIiCisKKworaW1wb3J0IHVu
aXR0ZXN0CisKK2ltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0
ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgorCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQg
Y29tbW9uCitmcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgc3RyZWFtCisKKworY2xhc3MgU3Ry
ZWFtVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgIiIiQSB1bml0dGVzdCBmb3Igc3RyZWFt
IG1vZHVsZS4iIiIKKworICAgIGRlZiB0ZXN0X2NyZWF0ZV9oZWFkZXIoc2VsZik6CisgICAgICAg
ICMgbW9yZSwgcnN2MSwgLi4uLCByc3Y0IGFyZSBhbGwgdHJ1ZQorICAgICAgICBoZWFkZXIgPSBz
dHJlYW0uY3JlYXRlX2hlYWRlcihjb21tb24uT1BDT0RFX1RFWFQsIDEsIDEsIDEsIDEsIDEsIDEp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ZjFceDgxJywgaGVhZGVyKQorCisgICAgICAg
ICMgTWF4aW11bSBwYXlsb2FkIHNpemUKKyAgICAgICAgaGVhZGVyID0gc3RyZWFtLmNyZWF0ZV9o
ZWFkZXIoCisgICAgICAgICAgICBjb21tb24uT1BDT0RFX1RFWFQsICgxIDw8IDYzKSAtIDEsIDAs
IDAsIDAsIDAsIDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MDFceDdmXHg3Zlx4ZmZc
eGZmXHhmZlx4ZmZceGZmXHhmZlx4ZmYnLCBoZWFkZXIpCisKKyAgICAgICAgIyBJbnZhbGlkIG9w
Y29kZSAweDEwCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0cmVhbS5jcmVhdGVfaGVhZGVyLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAweDEwLCAwLCAwLCAwLCAwLCAwLCAwKQorCisgICAgICAgICMgSW52YWxpZCB2
YWx1ZSAweGYgcGFzc2VkIHRvIG1vcmUgcGFyYW1ldGVyCisgICAgICAgIHNlbGYuYXNzZXJ0UmFp
c2VzKFZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbS5jcmVhdGVf
aGVhZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tb24uT1BDT0RFX1RFWFQsIDAs
IDB4ZiwgMCwgMCwgMCwgMCkKKworICAgICAgICAjIFRvbyBsb25nIHBheWxvYWRfbGVuZ3RoCisg
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0cmVhbS5jcmVhdGVfaGVhZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBj
b21tb24uT1BDT0RFX1RFWFQsIDEgPDwgNjMsIDAsIDAsIDAsIDAsIDApCisKKworaWYgX19uYW1l
X18gPT0gJ19fbWFpbl9fJzoKKyAgICB1bml0dGVzdC5tYWluKCkKKworCisjIHZpOnN0cz00IHN3
PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X3N0cmVhbV9oaXhpZTc1LnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC90ZXN0L3Rlc3Rfc3RyZWFtX2hpeGllNzUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2E5YWM3MTMwYjczMDRl
YjkyZGJiYmMxNTMzYWE0MTU0NWUwMjQ2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90
ZXN0X3N0cmVhbV9oaXhpZTc1LnB5CkBAIC0wLDAgKzEsNTkgQEAKKyMhL3Vzci9iaW4vZW52IHB5
dGhvbgorIworIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3Ry
aWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKworIiIiVGVzdHMgZm9yIHN0cmVhbSBtb2R1bGUu
IiIiCisKKworaW1wb3J0IHVuaXR0ZXN0CisKK2ltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRl
IHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgorCitmcm9tIG1vZF9w
eXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbUhpeGllNzUKK2Zyb20gdGVzdC50ZXN0X21z
Z3V0aWwgaW1wb3J0IF9jcmVhdGVfcmVxdWVzdF9oaXhpZTc1CisKKworY2xhc3MgU3RyZWFtSGl4
aWU3NVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICIiIkEgdW5pdHRlc3QgZm9yIFN0cmVh
bUhpeGllNzUgY2xhc3MuIiIiCisKKyAgICBkZWYgdGVzdF9wYXlsb2FkX2xlbmd0aChzZWxmKToK
KyAgICAgICAgZm9yIGxlbmd0aCwgYnl0ZXMgaW4gKCgwLCAnXHgwMCcpLCAoMHg3ZiwgJ1x4N2Yn
KSwgKDB4ODAsICdceDgxXHgwMCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDB4
MTIzNCwgJ1x4ODBceGE0XHgzNCcpKToKKyAgICAgICAgICAgIHRlc3Rfc3RyZWFtID0gU3RyZWFt
SGl4aWU3NShfY3JlYXRlX3JlcXVlc3RfaGl4aWU3NShieXRlcykpCisgICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKAorICAgICAgICAgICAgICAgIGxlbmd0aCwgdGVzdF9zdHJlYW0uX3JlYWRf
cGF5bG9hZF9sZW5ndGhfaGl4aWU3NSgpKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6
CisgICAgdW5pdHRlc3QubWFpbigpCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3Rlc3QvdGVzdF91dGlsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfdXRpbC5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yMGY0YWIwNTk2NTJjNTg2OWVjMjA1YTEyOGRmOTM5MTRjYThjNzFlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfdXRpbC5weQpAQCAtMCwwICsxLDIwMCBAQAorIyEvdXNy
L2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgorIyBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6
CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCisiIiJUZXN0cyBmb3IgdXRp
bCBtb2R1bGUuIiIiCisKKworaW1wb3J0IG9zCitpbXBvcnQgcmFuZG9tCitpbXBvcnQgc3lzCitp
bXBvcnQgdW5pdHRlc3QKKworaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGgg
dG8gbG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCisKK2Zyb20gbW9kX3B5d2Vic29ja2V0
IGltcG9ydCB1dGlsCisKKworX1RFU1RfREFUQV9ESVIgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5z
cGxpdChfX2ZpbGVfXylbMF0sICd0ZXN0ZGF0YScpCisKKworY2xhc3MgVXRpbFRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgorICAgICIiIkEgdW5pdHRlc3QgZm9yIHV0aWwgbW9kdWxlLiIiIgorCisg
ICAgZGVmIHRlc3RfZ2V0X3N0YWNrX3RyYWNlKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdOb25lXG4nLCB1dGlsLmdldF9zdGFja190cmFjZSgpKQorICAgICAgICB0cnk6CisgICAg
ICAgICAgICBhID0gMSAvIDAgICMgSW50ZW50aW9uYWxseSByYWlzZSBleGNlcHRpb24uCisgICAg
ICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICB0cmFjZSA9IHV0aWwuZ2V0X3N0YWNr
X3RyYWNlKCkKKyAgICAgICAgICAgIHNlbGYuZmFpbFVubGVzcyh0cmFjZS5zdGFydHN3aXRoKCdU
cmFjZWJhY2snKSkKKyAgICAgICAgICAgIHNlbGYuZmFpbFVubGVzcyh0cmFjZS5maW5kKCdaZXJv
RGl2aXNpb25FcnJvcicpICE9IC0xKQorCisgICAgZGVmIHRlc3RfcHJlcGVuZF9tZXNzYWdlX3Rv
X2V4Y2VwdGlvbihzZWxmKToKKyAgICAgICAgZXhjID0gRXhjZXB0aW9uKCdXb3JsZCcpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywgc3RyKGV4YykpCisgICAgICAgIHV0aWwucHJl
cGVuZF9tZXNzYWdlX3RvX2V4Y2VwdGlvbignSGVsbG8gJywgZXhjKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdIZWxsbyBXb3JsZCcsIHN0cihleGMpKQorCisgICAgZGVmIHRlc3RfZ2V0X3Nj
cmlwdF9pbnRlcnAoc2VsZik6CisgICAgICAgIGN5Z3dpbl9wYXRoID0gJ2M6XFxjeWd3aW5cXGJp
bicKKyAgICAgICAgY3lnd2luX3BlcmwgPSBvcy5wYXRoLmpvaW4oY3lnd2luX3BhdGgsICdwZXJs
JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCB1dGlsLmdldF9zY3JpcHRfaW50ZXJw
KAorICAgICAgICAgICAgb3MucGF0aC5qb2luKF9URVNUX0RBVEFfRElSLCAnUkVBRE1FJykpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHV0aWwuZ2V0X3NjcmlwdF9pbnRlcnAoCisg
ICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfREFUQV9ESVIsICdSRUFETUUnKSwgY3lnd2lu
X3BhdGgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvdXNyL2Jpbi9wZXJsIC13VCcsIHV0
aWwuZ2V0X3NjcmlwdF9pbnRlcnAoCisgICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfREFU
QV9ESVIsICdoZWxsby5wbCcpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjeWd3aW5fcGVy
bCArICcgLXdUJywgdXRpbC5nZXRfc2NyaXB0X2ludGVycCgKKyAgICAgICAgICAgIG9zLnBhdGgu
am9pbihfVEVTVF9EQVRBX0RJUiwgJ2hlbGxvLnBsJyksIGN5Z3dpbl9wYXRoKSkKKworICAgIGRl
ZiB0ZXN0X2hleGlmeShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnNjEgN2EgNDEg
NWEgMzAgMzkgMjAgMDkgMGQgMGEgMDAgZmYnLAorICAgICAgICAgICAgICAgICAgICAgICAgIHV0
aWwuaGV4aWZ5KCdhekFaMDkgXHRcclxuXHgwMFx4ZmYnKSkKKworCitjbGFzcyBSZXBlYXRlZFhv
ck1hc2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICIiIkEgdW5pdHRlc3QgZm9yIFJl
cGVhdGVkWG9yTWFza2VyIGNsYXNzLiIiIgorCisgICAgZGVmIHRlc3RfbWFzayhzZWxmKToKKyAg
ICAgICAgIyBTYW1wbGUgaW5wdXQgZTYsOTcsYTUgaXMgVSs2NWU1IGluIFVURi04CisgICAgICAg
IG1hc2tlciA9IHV0aWwuUmVwZWF0ZWRYb3JNYXNrZXIoJ1x4ZmZceGZmXHhmZlx4ZmYnKQorICAg
ICAgICByZXN1bHQgPSBtYXNrZXIubWFzaygnXHhlNlx4OTdceGE1JykKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnXHgxOVx4NjhceDVhJywgcmVzdWx0KQorCisgICAgICAgIG1hc2tlciA9IHV0
aWwuUmVwZWF0ZWRYb3JNYXNrZXIoJ1x4MDBceDAwXHgwMFx4MDAnKQorICAgICAgICByZXN1bHQg
PSBtYXNrZXIubWFzaygnXHhlNlx4OTdceGE1JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
XHhlNlx4OTdceGE1JywgcmVzdWx0KQorCisgICAgICAgIG1hc2tlciA9IHV0aWwuUmVwZWF0ZWRY
b3JNYXNrZXIoJ1x4ZTZceDk3XHhhNVx4MjAnKQorICAgICAgICByZXN1bHQgPSBtYXNrZXIubWFz
aygnXHhlNlx4OTdceGE1JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgwMFx4MDBceDAw
JywgcmVzdWx0KQorCisgICAgZGVmIHRlc3RfbWFza190d2ljZShzZWxmKToKKyAgICAgICAgbWFz
a2VyID0gdXRpbC5SZXBlYXRlZFhvck1hc2tlcignXHgwMFx4N2ZceGZmXHgyMCcpCisgICAgICAg
ICMgbWFza1swXSwgbWFza1sxXSwgLi4uIHdpbGwgYmUgdXNlZC4KKyAgICAgICAgcmVzdWx0ID0g
bWFza2VyLm1hc2soJ1x4MDBceDAwXHgwMFx4MDBceDAwJykKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnXHgwMFx4N2ZceGZmXHgyMFx4MDAnLCByZXN1bHQpCisgICAgICAgICMgbWFza1syXSwg
bWFza1swXSwgLi4uIHdpbGwgYmUgdXNlZCBmb3IgdGhlIG5leHQgY2FsbC4KKyAgICAgICAgcmVz
dWx0ID0gbWFza2VyLm1hc2soJ1x4MDBceDAwXHgwMFx4MDBceDAwJykKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnXHg3Zlx4ZmZceDIwXHgwMFx4N2YnLCByZXN1bHQpCisKKyAgICBkZWYgdGVz
dF9tYXNrX2xhcmdlX2RhdGEoc2VsZik6CisgICAgICAgIG1hc2tlciA9IHV0aWwuUmVwZWF0ZWRY
b3JNYXNrZXIoJ21BU2snKQorICAgICAgICBvcmlnaW5hbCA9ICcnLmpvaW4oW2NocihpICUgMjU2
KSBmb3IgaSBpbiB4cmFuZ2UoMTAwMCldKQorICAgICAgICByZXN1bHQgPSBtYXNrZXIubWFzayhv
cmlnaW5hbCkKKyAgICAgICAgZXhwZWN0ZWQgPSAnJy5qb2luKAorICAgICAgICAgICAgICAgIFtj
aHIoKGkgJSAyNTYpIF4gb3JkKCdtQVNrJ1tpICUgNF0pKSBmb3IgaSBpbiB4cmFuZ2UoMTAwMCld
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXN1bHQpCisKKyAgICAgICAg
bWFza2VyID0gdXRpbC5SZXBlYXRlZFhvck1hc2tlcignTWFTaycpCisgICAgICAgIGZpcnN0X3Bh
cnQgPSAnVGhlIFdlYlNvY2tldCBQcm90b2NvbCBlbmFibGVzIHR3by13YXkgY29tbXVuaWNhdGlv
bi4nCisgICAgICAgIHJlc3VsdCA9IG1hc2tlci5tYXNrKGZpcnN0X3BhcnQpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICAgICAgJ1x4MTlcdDZLXHgxYVx4MDQxOCJceDAy
OFx4MGU5QVx4MDNceDE5Ilx4MTU8XHgwOCJccnNceDBlIycKKyAgICAgICAgICAgICAgICAnXHgw
MDFceDA3KFx4MTJzXHgxZjpceDBlflx4MWMsXHgxOHNceDA4Ilx4MGM+XHgxZSNceDA4MFxuOScK
KyAgICAgICAgICAgICAgICAnXHgwODxceDA1YycsCisgICAgICAgICAgICAgICAgcmVzdWx0KQor
ICAgICAgICBzZWNvbmRfcGFydCA9ICdJdCBoYXMgdHdvIHBhcnRzOiBhIGhhbmRzaGFrZSBhbmQg
dGhlIGRhdGEgdHJhbnNmZXIuJworICAgICAgICByZXN1bHQgPSBtYXNrZXIubWFzayhzZWNvbmRf
cGFydCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgICAgICAiKCdLJVx4
MDAgSzlceDE2PEs9XHgwMCFceDFmPltzXG5tXHQyXHgwNSlceDEyO1xuJlx4MDRzXG4jIgorICAg
ICAgICAgICAgICAgICJceDA1c1x4MWYlXHgwNHNceDBmLFx4MTUySzlceDEzMlx4MDU+XHgwNzZc
eDE5YyIsCisgICAgICAgICAgICAgICAgcmVzdWx0KQorCisKK2RlZiBnZXRfcmFuZG9tX3NlY3Rp
b24oc291cmNlLCBtaW5fbnVtX2NodW5rcyk6CisgICAgY2h1bmtzID0gW10KKyAgICBieXRlc19j
aHVua2VkID0gMAorCisgICAgd2hpbGUgYnl0ZXNfY2h1bmtlZCA8IGxlbihzb3VyY2UpOgorICAg
ICAgICBjaHVua19zaXplID0gcmFuZG9tLnJhbmRpbnQoCisgICAgICAgICAgICAxLAorICAgICAg
ICAgICAgbWluKGxlbihzb3VyY2UpIC8gbWluX251bV9jaHVua3MsIGxlbihzb3VyY2UpIC0gYnl0
ZXNfY2h1bmtlZCkpCisgICAgICAgIGNodW5rID0gc291cmNlW2J5dGVzX2NodW5rZWQ6Ynl0ZXNf
Y2h1bmtlZCArIGNodW5rX3NpemVdCisgICAgICAgIGNodW5rcy5hcHBlbmQoY2h1bmspCisgICAg
ICAgIGJ5dGVzX2NodW5rZWQgKz0gY2h1bmtfc2l6ZQorCisgICAgcmV0dXJuIGNodW5rcworCisK
K2NsYXNzIEluZmxhdGVyRGVmbGF0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJB
IHVuaXR0ZXN0IGZvciBfSW5mbGF0ZXIgYW5kIF9EZWZsYXRlciBjbGFzcy4iIiIKKworICAgIGRl
ZiB0ZXN0X2luZmxhdGVfZGVmbGF0ZV9kZWZhdWx0KHNlbGYpOgorICAgICAgICBpbnB1dCA9IGIn
aGVsbG8nICsgJy0nICogMzAwMDAgKyBiJ2hlbGxvJworICAgICAgICBpbmZsYXRlcjE1ID0gdXRp
bC5fSW5mbGF0ZXIoMTUpCisgICAgICAgIGRlZmxhdGVyMTUgPSB1dGlsLl9EZWZsYXRlcigxNSkK
KyAgICAgICAgaW5mbGF0ZXI4ID0gdXRpbC5fSW5mbGF0ZXIoOCkKKyAgICAgICAgZGVmbGF0ZXI4
ID0gdXRpbC5fRGVmbGF0ZXIoOCkKKworICAgICAgICBjb21wcmVzc2VkMTUgPSBkZWZsYXRlcjE1
LmNvbXByZXNzX2FuZF9maW5pc2goaW5wdXQpCisgICAgICAgIGNvbXByZXNzZWQ4ID0gZGVmbGF0
ZXI4LmNvbXByZXNzX2FuZF9maW5pc2goaW5wdXQpCisKKyAgICAgICAgaW5mbGF0ZXIxNS5hcHBl
bmQoY29tcHJlc3NlZDE1KQorICAgICAgICBpbmZsYXRlcjguYXBwZW5kKGNvbXByZXNzZWQ4KQor
CisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoY29tcHJlc3NlZDE1LCBjb21wcmVzc2VkOCkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnB1dCwgaW5mbGF0ZXIxNS5kZWNvbXByZXNzKC0x
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnB1dCwgaW5mbGF0ZXI4LmRlY29tcHJlc3Mo
LTEpKQorCisgICAgZGVmIHRlc3RfcmFuZG9tX3NlY3Rpb24oc2VsZik6CisgICAgICAgIHJhbmRv
bS5zZWVkKGE9MCkKKyAgICAgICAgc291cmNlID0gJycuam9pbigKKyAgICAgICAgICAgIFtjaHIo
cmFuZG9tLnJhbmRpbnQoMCwgMjU1KSkgZm9yIGkgaW4geHJhbmdlKDEwMCAqIDEwMjQpXSkKKwor
ICAgICAgICBjaHVua2VkX2lucHV0ID0gZ2V0X3JhbmRvbV9zZWN0aW9uKHNvdXJjZSwgMTApCisg
ICAgICAgIHByaW50ICJJbnB1dCBjaHVuayBzaXplczogJXIiICUgW2xlbihjKSBmb3IgYyBpbiBj
aHVua2VkX2lucHV0XQorCisgICAgICAgIGRlZmxhdGVyID0gdXRpbC5fRGVmbGF0ZXIoMTUpCisg
ICAgICAgIGNvbXByZXNzZWQgPSBbXQorICAgICAgICBmb3IgY2h1bmsgaW4gY2h1bmtlZF9pbnB1
dDoKKyAgICAgICAgICAgIGNvbXByZXNzZWQuYXBwZW5kKGRlZmxhdGVyLmNvbXByZXNzKGNodW5r
KSkKKyAgICAgICAgY29tcHJlc3NlZC5hcHBlbmQoZGVmbGF0ZXIuY29tcHJlc3NfYW5kX2Zpbmlz
aCgnJykpCisKKyAgICAgICAgY2h1bmtlZF9leHBlY3RhdGlvbiA9IGdldF9yYW5kb21fc2VjdGlv
bihzb3VyY2UsIDEwKQorICAgICAgICBwcmludCAoIkV4cGVjdGF0aW9uIGNodW5rIHNpemVzOiAl
ciIgJQorICAgICAgICAgICAgICAgW2xlbihjKSBmb3IgYyBpbiBjaHVua2VkX2V4cGVjdGF0aW9u
XSkKKworICAgICAgICBpbmZsYXRlciA9IHV0aWwuX0luZmxhdGVyKDE1KQorICAgICAgICBpbmZs
YXRlci5hcHBlbmQoJycuam9pbihjb21wcmVzc2VkKSkKKyAgICAgICAgZm9yIGNodW5rIGluIGNo
dW5rZWRfZXhwZWN0YXRpb246CisgICAgICAgICAgICBkZWNvbXByZXNzZWQgPSBpbmZsYXRlci5k
ZWNvbXByZXNzKGxlbihjaHVuaykpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNodW5r
LCBkZWNvbXByZXNzZWQpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJywgaW5mbGF0ZXIu
ZGVjb21wcmVzcygtMSkpCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICB1bml0
dGVzdC5tYWluKCkKKworCisjIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVz
dC90ZXN0ZGF0YS9SRUFETUUgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvUkVBRE1FCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmMwMDFhYTU1OTVjZGQxMzQwN2Y1NzI4ZWNkNTMyYTVkMTIyNjNlZmEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvUkVBRE1FCkBAIC0wLDAgKzEgQEAKK1Rlc3QgZGF0YSBk
aXJlY3RvcnkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9hYm9ydF9i
eV91c2VyX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9hYm9ydF9ieV91c2Vy
X3dzaC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zNjdmOTkzMGY3ODI0YzNhNTM1OTE0YTViMzc3OWY2YjZmYmEy
NDNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL2Fib3J0
X2J5X3VzZXJfd3NoLnB5CkBAIC0wLDAgKzEsNDIgQEAKKyMgQ29weXJpZ2h0IDIwMTEsIEdvb2ds
ZSBJbmMuCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMg
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKK2Zy
b20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBoYW5kc2hha2UKKworCitkZWYgd2ViX3NvY2tldF9k
b19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6CisgICAgcmFpc2UgaGFuZHNoYWtlLkFib3J0ZWRC
eVVzZXJFeGNlcHRpb24oImFib3J0IGZvciB0ZXN0IikKKworCitkZWYgd2ViX3NvY2tldF90cmFu
c2Zlcl9kYXRhKHJlcXVlc3QpOgorICAgIHJhaXNlIGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhj
ZXB0aW9uKCJhYm9ydCBmb3IgdGVzdCIpCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvYmxhbmtfd3NoLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0
L3Rlc3RkYXRhL2hhbmRsZXJzL2JsYW5rX3dzaC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Zjg3YzZhZjIzZGYw
OGVmZTM1NzVjYWUyMDhkZTUwMjJjYmFhNjYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0
L3Rlc3RkYXRhL2hhbmRsZXJzL2JsYW5rX3dzaC5weQpAQCAtMCwwICsxLDMxIEBACisjIENvcHly
aWdodCAyMDA5LCBHb29nbGUgSW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisj
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworCisjIGludGVudGlvbmFsbHkgbGVmdCBibGFuawpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL29yaWdpbl9jaGVja193c2gucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qv
dGVzdGRhdGEvaGFuZGxlcnMvb3JpZ2luX2NoZWNrX3dzaC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYzEzOWZh
MTc2Y2MzNDE3YmU5NmRlNzk4ZTZhODFlZDE0OWIxOTkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL29yaWdpbl9jaGVja193c2gucHkKQEAgLTAsMCArMSw0
MiBAQAorIyBDb3B5cmlnaHQgMjAwOSwgR29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1
dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKworZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNo
YWtlKHJlcXVlc3QpOgorICAgIGlmIHJlcXVlc3Qud3Nfb3JpZ2luID09ICdodHRwOi8vZXhhbXBs
ZS5jb20nOgorICAgICAgICByZXR1cm4KKyAgICByYWlzZSBWYWx1ZUVycm9yKCdVbmFjY2VwdGFi
bGUgb3JpZ2luOiAlcicgJSByZXF1ZXN0LndzX29yaWdpbikKKworCitkZWYgd2ViX3NvY2tldF90
cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgorICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZSgnb3Jp
Z2luX2NoZWNrX3dzaC5weSBpcyBjYWxsZWQgZm9yICVzLCAlcycgJQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAocmVxdWVzdC53c19yZXNvdXJjZSwgcmVxdWVzdC53c19wcm90b2NvbCkp
CisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEv
aGFuZGxlcnMvc3ViL2V4Y2VwdGlvbl9pbl90cmFuc2Zlcl93c2gucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVz
dGRhdGEvaGFuZGxlcnMvc3ViL2V4Y2VwdGlvbl9pbl90cmFuc2Zlcl93c2gucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjk4MmQwMjMxZWYwMGYwMmUwZDkwZGY2NzhlYjgwNGJhNDM4NjJkOQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvZXhjZXB0aW9uX2luX3RyYW5z
ZmVyX3dzaC5weQpAQCAtMCwwICsxLDQ0IEBACisjIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5j
LgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisj
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCisiIiJFeGNl
cHRpb24gaW4gd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKCkuCisiIiIKKworCitkZWYgd2ViX3Nv
Y2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6CisgICAgcGFzcworCisKK2RlZiB3ZWJf
c29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6CisgICAgcmFpc2UgRXhjZXB0aW9uKCdJbnRl
bnRpb25hbCBFeGNlcHRpb24gZm9yICVzLCAlcycgJQorICAgICAgICAgICAgICAgICAgICAocmVx
dWVzdC53c19yZXNvdXJjZSwgcmVxdWVzdC53c19wcm90b2NvbCkpCisKKworIyB2aTpzdHM9NCBz
dz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL25vX3dz
aF9hdF90aGVfZW5kLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9ub193c2hf
YXRfdGhlX2VuZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xN2U3YmUxODAyZTNjNjZjNjM4NDk4NzVlYTM1ZTI0
MDZhMzgxZTYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJz
L3N1Yi9ub193c2hfYXRfdGhlX2VuZC5weQpAQCAtMCwwICsxLDQ1IEBACisjIENvcHlyaWdodCAy
MDA5LCBHb29nbGUgSW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisj
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
IyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKworCisiIiJDb3JyZWN0IHNpZ25hdHVyZXMsIHdyb25nIGZpbGUgbmFtZS4KKyIiIgorCisK
K2RlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKKyAgICBwYXNzCisK
KworZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKKyAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ud3JpdGUoCisgICAgICAgICAgICAnc3ViL25vX3dzaF9hdF90aGVfZW5kLnB5IGlz
IGNhbGxlZCBmb3IgJXMsICVzJyAlCisgICAgICAgICAgICAocmVxdWVzdC53c19yZXNvdXJjZSwg
cmVxdWVzdC53c19wcm90b2NvbCkpCisKKworIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL25vbl9jYWxsYWJsZV93c2gucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL25vbl9jYWxsYWJsZV93c2gucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjYzNTJlYjRjYTIzODk1MjIzOWUzNTQyNzI4Y2UzYjM4ZDgzZGQ2YgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvbm9uX2NhbGxhYmxlX3dz
aC5weQpAQCAtMCwwICsxLDM5IEBACisjIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgorIyBB
bGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBt
ZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisj
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCisiIiJOb24tY2FsbGFi
bGUgaGFuZGxlcnMuCisiIiIKKworCit3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSA9IFRy
dWUKK3dlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YSA9IDEKKworCisjIHZpOnN0cz00IHN3PTQgZXQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvcGxhaW5fd3NoLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9wbGFpbl93c2gucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZGIzZmY2OTMwMjU2YmMxYjEzZTJjNGMyZDFjODQzYzRiN2M4MGFhNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvcGxhaW5fd3NoLnB5CkBAIC0w
LDAgKzEsNDAgQEAKKyMgQ29weXJpZ2h0IDIwMDksIEdvb2dsZSBJbmMuCisjIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMg
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBk
aXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisj
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisj
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisKK2RlZiB3ZWJfc29ja2V0X2RvX2V4dHJh
X2hhbmRzaGFrZShyZXF1ZXN0KToKKyAgICBwYXNzCisKKworZGVmIHdlYl9zb2NrZXRfdHJhbnNm
ZXJfZGF0YShyZXF1ZXN0KToKKyAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUoJ3N1Yi9wbGFp
bl93c2gucHkgaXMgY2FsbGVkIGZvciAlcywgJXMnICUKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHJlcXVlc3Qud3NfcmVzb3VyY2UsIHJlcXVlc3Qud3NfcHJvdG9jb2wpKQorCisKKyMg
dmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJz
L3N1Yi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvdzNj
LWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzU1MzM2ZDZmNTVlN2UwMGRlNjQzNWM2ZWExYjUwODQ1
N2FjYjBmMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9z
dWIvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMiBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rl
c3RkYXRhL2hhbmRsZXJzL3N1Yi9leGNlcHRpb25faW5fdHJhbnNmZXJfd3NoLnB5CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90
ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9ub193c2hfYXRfdGhlX2VuZC5weQorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVz
dC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvbm9uX2NhbGxhYmxlX3dzaC5weQorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90
ZXN0ZGF0YS9oYW5kbGVycy9zdWIvcGxhaW5fd3NoLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hh
bmRsZXJzL3N1Yi93cm9uZ19oYW5kc2hha2Vfc2lnX3dzaC5weQorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0
YS9oYW5kbGVycy9zdWIvd3JvbmdfdHJhbnNmZXJfc2lnX3dzaC5weQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93cm9uZ19oYW5kc2hha2Vfc2lnX3dzaC5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvd3JvbmdfaGFuZHNoYWtlX3NpZ193c2gu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmJmNjU5YmM5YWYwMWMxMDdlZjM1MDhiMmI1ZDAxNzNkY2Y1OTAwOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvd3Jvbmdf
aGFuZHNoYWtlX3NpZ193c2gucHkKQEAgLTAsMCArMSw0NSBAQAorIyBDb3B5cmlnaHQgMjAwOSwg
R29vZ2xlIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
KworIiIiV3Jvbmcgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2Ugc2lnbmF0dXJlLgorIiIi
CisKKworZGVmIG5vX3dlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgorICAg
IHBhc3MKKworCitkZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgorICAgIHJl
cXVlc3QuY29ubmVjdGlvbi53cml0ZSgKKyAgICAgICAgICAgICdzdWIvd3JvbmdfaGFuZHNoYWtl
X3NpZ193c2gucHkgaXMgY2FsbGVkIGZvciAlcywgJXMnICUKKyAgICAgICAgICAgICAocmVxdWVz
dC53c19yZXNvdXJjZSwgcmVxdWVzdC53c19wcm90b2NvbCkpCisKKworIyB2aTpzdHM9NCBzdz00
IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3dyb25nX3Ry
YW5zZmVyX3NpZ193c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3dyb25n
X3RyYW5zZmVyX3NpZ193c2gucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTBlMmU1NTA3OTRiN2I5OTBlMGI0NGIz
M2NmYzJkNGQxNTJlNmMwNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9o
YW5kbGVycy9zdWIvd3JvbmdfdHJhbnNmZXJfc2lnX3dzaC5weQpAQCAtMCwwICsxLDQ1IEBACisj
IENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgor
IyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKworCisiIiJXcm9uZyB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEoKSBz
aWduYXR1cmUuCisiIiIKKworCitkZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVx
dWVzdCk6CisgICAgcGFzcworCisKK2RlZiBub193ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVx
dWVzdCk6CisgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKAorICAgICAgICAgICAgJ3N1Yi93
cm9uZ190cmFuc2Zlcl9zaWdfd3NoLnB5IGlzIGNhbGxlZCBmb3IgJXMsICVzJyAlCisgICAgICAg
ICAgICAocmVxdWVzdC53c19yZXNvdXJjZSwgcmVxdWVzdC53c19wcm90b2NvbCkpCisKKworIyB2
aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvdzNjLWltcG9ydC5s
b2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTY0YzdjMjgyNTdmZGUzZmIwYmQ5NDE3NjhmODk4OGRjMWUyNDVhZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy93M2MtaW1wb3J0
LmxvZwpAQCAtMCwwICsxLDE5IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBp
bXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVz
dHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9u
IHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2Vi
S2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKwor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitO
b25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxl
cnMvYWJvcnRfYnlfdXNlcl93c2gucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvYmxh
bmtfd3NoLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL29yaWdpbl9jaGVja193c2gu
cHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
dGVzdC90ZXN0ZGF0YS93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDJhOGU1ZTBmNjBkNDI1
MTUyNTg4ZjM5YjA1MTRlMjU1NjBlMjMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rl
c3RkYXRhL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTcgQEAKK1RoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0
LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1v
dmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVz
dC90ZXN0ZGF0YS9SRUFETUUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvdGVzdC93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOWZmYWY4ZmI1ZmM0ZWJlNWFm
NTBmMWIwYTQ3M2EzM2Y4NWIyMDliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3czYy1p
bXBvcnQubG9nCkBAIC0wLDAgKzEsMzcgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9u
ZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9fX2luaXRfXy5w
eQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvdGVzdC9jbGllbnRfZm9yX3Rlc3RpbmcucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvZW5kdG9lbmRf
d2l0aF9leHRlcm5hbF9zZXJ2ZXIucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvbW9jay5weQorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9t
dXhfY2xpZW50X2Zvcl90ZXN0aW5nLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3J1bl9hbGwucHkKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rl
c3Qvc2V0X3N5c19wYXRoLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfZGlzcGF0Y2gucHkKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rl
c3QvdGVzdF9lbmR0b2VuZC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2V4dGVuc2lvbnMucHkKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3Rlc3QvdGVzdF9oYW5kc2hha2UucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaS5w
eQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvdGVzdC90ZXN0X2hhbmRzaGFrZV9oeWJpMDAucHkKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9o
dHRwX2hlYWRlcl91dGlsLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfbWVtb3JpemluZ2ZpbGUucHkKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvdGVzdF9tb2NrLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfbXNndXRpbC5weQorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
dGVzdC90ZXN0X211eC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X3N0cmVhbS5weQorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90
ZXN0X3N0cmVhbV9oaXhpZTc1LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfdXRpbC5weQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NWVmODhhMGNmNjBhZWYzMTU4Mzk1M2EyNzExNWE3ZmU2YmI3NmJmOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMiBAQAorVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20v
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9D
T05UUklCVVRJTkcKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L0xJQ0VOU0UKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L01BTklGRVNULmluCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9SRUFE
TUUKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L1JFQURNRS5tZAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc2V0dXAucHkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL2Nzcy9ib290
c3RyYXAtdGhlbWUubWluLmNzcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcnVubmVyL2Nzcy9ib290c3RyYXAtdGhlbWUubWluLmNzcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42MTM1OGIxM2QwNDU2OTRhNjk2M2M1MzM0ZWFiMjgzMWU1Mzk3OGFjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9ydW5uZXIvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzCkBAIC0wLDAgKzEsNSBAQAorLyoh
CisgKiBCb290c3RyYXAgdjMuMy41IChodHRwOi8vZ2V0Ym9vdHN0cmFwLmNvbSkKKyAqIENvcHly
aWdodCAyMDExLTIwMTUgVHdpdHRlciwgSW5jLgorICogTGljZW5zZWQgdW5kZXIgTUlUIChodHRw
czovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvYmxvYi9tYXN0ZXIvTElDRU5TRSkKKyAqLy5i
dG4tZGFuZ2VyLC5idG4tZGVmYXVsdCwuYnRuLWluZm8sLmJ0bi1wcmltYXJ5LC5idG4tc3VjY2Vz
cywuYnRuLXdhcm5pbmd7dGV4dC1zaGFkb3c6MCAtMXB4IDAgcmdiYSgwLDAsMCwuMik7LXdlYmtp
dC1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMTUpLDAgMXB4IDFw
eCByZ2JhKDAsMCwwLC4wNzUpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMCByZ2JhKDI1NSwyNTUs
MjU1LC4xNSksMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSl9LmJ0bi1kYW5nZXIuYWN0aXZlLC5i
dG4tZGFuZ2VyOmFjdGl2ZSwuYnRuLWRlZmF1bHQuYWN0aXZlLC5idG4tZGVmYXVsdDphY3RpdmUs
LmJ0bi1pbmZvLmFjdGl2ZSwuYnRuLWluZm86YWN0aXZlLC5idG4tcHJpbWFyeS5hY3RpdmUsLmJ0
bi1wcmltYXJ5OmFjdGl2ZSwuYnRuLXN1Y2Nlc3MuYWN0aXZlLC5idG4tc3VjY2VzczphY3RpdmUs
LmJ0bi13YXJuaW5nLmFjdGl2ZSwuYnRuLXdhcm5pbmc6YWN0aXZley13ZWJraXQtYm94LXNoYWRv
dzppbnNldCAwIDNweCA1cHggcmdiYSgwLDAsMCwuMTI1KTtib3gtc2hhZG93Omluc2V0IDAgM3B4
IDVweCByZ2JhKDAsMCwwLC4xMjUpfS5idG4tZGFuZ2VyLmRpc2FibGVkLC5idG4tZGFuZ2VyW2Rp
c2FibGVkXSwuYnRuLWRlZmF1bHQuZGlzYWJsZWQsLmJ0bi1kZWZhdWx0W2Rpc2FibGVkXSwuYnRu
LWluZm8uZGlzYWJsZWQsLmJ0bi1pbmZvW2Rpc2FibGVkXSwuYnRuLXByaW1hcnkuZGlzYWJsZWQs
LmJ0bi1wcmltYXJ5W2Rpc2FibGVkXSwuYnRuLXN1Y2Nlc3MuZGlzYWJsZWQsLmJ0bi1zdWNjZXNz
W2Rpc2FibGVkXSwuYnRuLXdhcm5pbmcuZGlzYWJsZWQsLmJ0bi13YXJuaW5nW2Rpc2FibGVkXSxm
aWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kYW5nZXIsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGVm
YXVsdCxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1pbmZvLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRu
LXByaW1hcnksZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tc3VjY2VzcyxmaWVsZHNldFtkaXNhYmxl
ZF0gLmJ0bi13YXJuaW5ney13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZX0u
YnRuLWRhbmdlciAuYmFkZ2UsLmJ0bi1kZWZhdWx0IC5iYWRnZSwuYnRuLWluZm8gLmJhZGdlLC5i
dG4tcHJpbWFyeSAuYmFkZ2UsLmJ0bi1zdWNjZXNzIC5iYWRnZSwuYnRuLXdhcm5pbmcgLmJhZGdl
e3RleHQtc2hhZG93Om5vbmV9LmJ0bi5hY3RpdmUsLmJ0bjphY3RpdmV7YmFja2dyb3VuZC1pbWFn
ZTpub25lfS5idG4tZGVmYXVsdHt0ZXh0LXNoYWRvdzowIDFweCAwICNmZmY7YmFja2dyb3VuZC1p
bWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsI2ZmZiAwLCNlMGUwZTAgMTAwJSk7YmFj
a2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCNmZmYgMCwjZTBlMGUwIDEwMCUp
O2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBi
b3R0b20sZnJvbSgjZmZmKSx0bygjZTBlMGUwKSk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3Jh
ZGllbnQodG8gYm90dG9tLCNmZmYgMCwjZTBlMGUwIDEwMCUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFn
ZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmZmZmZmZmJywg
ZW5kQ29sb3JzdHI9JyNmZmUwZTBlMCcsIEdyYWRpZW50VHlwZT0wKTtmaWx0ZXI6cHJvZ2lkOkRY
SW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KGVuYWJsZWQ9ZmFsc2UpO2JhY2tncm91
bmQtcmVwZWF0OnJlcGVhdC14O2JvcmRlci1jb2xvcjojZGJkYmRiO2JvcmRlci1jb2xvcjojY2Nj
fS5idG4tZGVmYXVsdDpmb2N1cywuYnRuLWRlZmF1bHQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjoj
ZTBlMGUwO2JhY2tncm91bmQtcG9zaXRpb246MCAtMTVweH0uYnRuLWRlZmF1bHQuYWN0aXZlLC5i
dG4tZGVmYXVsdDphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZTBlMGUwO2JvcmRlci1jb2xvcjoj
ZGJkYmRifS5idG4tZGVmYXVsdC5kaXNhYmxlZCwuYnRuLWRlZmF1bHQuZGlzYWJsZWQuYWN0aXZl
LC5idG4tZGVmYXVsdC5kaXNhYmxlZC5mb2N1cywuYnRuLWRlZmF1bHQuZGlzYWJsZWQ6YWN0aXZl
LC5idG4tZGVmYXVsdC5kaXNhYmxlZDpmb2N1cywuYnRuLWRlZmF1bHQuZGlzYWJsZWQ6aG92ZXIs
LmJ0bi1kZWZhdWx0W2Rpc2FibGVkXSwuYnRuLWRlZmF1bHRbZGlzYWJsZWRdLmFjdGl2ZSwuYnRu
LWRlZmF1bHRbZGlzYWJsZWRdLmZvY3VzLC5idG4tZGVmYXVsdFtkaXNhYmxlZF06YWN0aXZlLC5i
dG4tZGVmYXVsdFtkaXNhYmxlZF06Zm9jdXMsLmJ0bi1kZWZhdWx0W2Rpc2FibGVkXTpob3Zlcixm
aWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kZWZhdWx0LGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRl
ZmF1bHQuYWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRlZmF1bHQuZm9jdXMsZmllbGRz
ZXRbZGlzYWJsZWRdIC5idG4tZGVmYXVsdDphY3RpdmUsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4t
ZGVmYXVsdDpmb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kZWZhdWx0OmhvdmVye2JhY2tn
cm91bmQtY29sb3I6I2UwZTBlMDtiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LmJ0bi1wcmltYXJ5e2Jh
Y2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCMzMzdhYjcgMCwjMjY1
YTg4IDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwjMzM3YWI3
IDAsIzI2NWE4OCAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFy
LGxlZnQgdG9wLGxlZnQgYm90dG9tLGZyb20oIzMzN2FiNyksdG8oIzI2NWE4OCkpO2JhY2tncm91
bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwjMzM3YWI3IDAsIzI2NWE4OCAxMDAl
KTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0
Q29sb3JzdHI9JyNmZjMzN2FiNycsIGVuZENvbG9yc3RyPScjZmYyNjVhODgnLCBHcmFkaWVudFR5
cGU9MCk7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChl
bmFibGVkPWZhbHNlKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteDtib3JkZXItY29sb3I6IzI0
NTU4MH0uYnRuLXByaW1hcnk6Zm9jdXMsLmJ0bi1wcmltYXJ5OmhvdmVye2JhY2tncm91bmQtY29s
b3I6IzI2NWE4ODtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTE1cHh9LmJ0bi1wcmltYXJ5LmFjdGl2
ZSwuYnRuLXByaW1hcnk6YWN0aXZle2JhY2tncm91bmQtY29sb3I6IzI2NWE4ODtib3JkZXItY29s
b3I6IzI0NTU4MH0uYnRuLXByaW1hcnkuZGlzYWJsZWQsLmJ0bi1wcmltYXJ5LmRpc2FibGVkLmFj
dGl2ZSwuYnRuLXByaW1hcnkuZGlzYWJsZWQuZm9jdXMsLmJ0bi1wcmltYXJ5LmRpc2FibGVkOmFj
dGl2ZSwuYnRuLXByaW1hcnkuZGlzYWJsZWQ6Zm9jdXMsLmJ0bi1wcmltYXJ5LmRpc2FibGVkOmhv
dmVyLC5idG4tcHJpbWFyeVtkaXNhYmxlZF0sLmJ0bi1wcmltYXJ5W2Rpc2FibGVkXS5hY3RpdmUs
LmJ0bi1wcmltYXJ5W2Rpc2FibGVkXS5mb2N1cywuYnRuLXByaW1hcnlbZGlzYWJsZWRdOmFjdGl2
ZSwuYnRuLXByaW1hcnlbZGlzYWJsZWRdOmZvY3VzLC5idG4tcHJpbWFyeVtkaXNhYmxlZF06aG92
ZXIsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tcHJpbWFyeSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0
bi1wcmltYXJ5LmFjdGl2ZSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1wcmltYXJ5LmZvY3VzLGZp
ZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXByaW1hcnk6YWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAu
YnRuLXByaW1hcnk6Zm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tcHJpbWFyeTpob3Zlcnti
YWNrZ3JvdW5kLWNvbG9yOiMyNjVhODg7YmFja2dyb3VuZC1pbWFnZTpub25lfS5idG4tc3VjY2Vz
c3tiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjNWNiODVjIDAs
IzQxOTY0MSAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsIzVj
Yjg1YyAwLCM0MTk2NDEgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxp
bmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKCM1Y2I4NWMpLHRvKCM0MTk2NDEpKTtiYWNr
Z3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIzVjYjg1YyAwLCM0MTk2NDEg
MTAwJSk7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChz
dGFydENvbG9yc3RyPScjZmY1Y2I4NWMnLCBlbmRDb2xvcnN0cj0nI2ZmNDE5NjQxJywgR3JhZGll
bnRUeXBlPTApO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGll
bnQoZW5hYmxlZD1mYWxzZSk7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXg7Ym9yZGVyLWNvbG9y
OiMzZThmM2V9LmJ0bi1zdWNjZXNzOmZvY3VzLC5idG4tc3VjY2Vzczpob3ZlcntiYWNrZ3JvdW5k
LWNvbG9yOiM0MTk2NDE7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xNXB4fS5idG4tc3VjY2Vzcy5h
Y3RpdmUsLmJ0bi1zdWNjZXNzOmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiM0MTk2NDE7Ym9yZGVy
LWNvbG9yOiMzZThmM2V9LmJ0bi1zdWNjZXNzLmRpc2FibGVkLC5idG4tc3VjY2Vzcy5kaXNhYmxl
ZC5hY3RpdmUsLmJ0bi1zdWNjZXNzLmRpc2FibGVkLmZvY3VzLC5idG4tc3VjY2Vzcy5kaXNhYmxl
ZDphY3RpdmUsLmJ0bi1zdWNjZXNzLmRpc2FibGVkOmZvY3VzLC5idG4tc3VjY2Vzcy5kaXNhYmxl
ZDpob3ZlciwuYnRuLXN1Y2Nlc3NbZGlzYWJsZWRdLC5idG4tc3VjY2Vzc1tkaXNhYmxlZF0uYWN0
aXZlLC5idG4tc3VjY2Vzc1tkaXNhYmxlZF0uZm9jdXMsLmJ0bi1zdWNjZXNzW2Rpc2FibGVkXTph
Y3RpdmUsLmJ0bi1zdWNjZXNzW2Rpc2FibGVkXTpmb2N1cywuYnRuLXN1Y2Nlc3NbZGlzYWJsZWRd
OmhvdmVyLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXN1Y2Nlc3MsZmllbGRzZXRbZGlzYWJsZWRd
IC5idG4tc3VjY2Vzcy5hY3RpdmUsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tc3VjY2Vzcy5mb2N1
cyxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1zdWNjZXNzOmFjdGl2ZSxmaWVsZHNldFtkaXNhYmxl
ZF0gLmJ0bi1zdWNjZXNzOmZvY3VzLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXN1Y2Nlc3M6aG92
ZXJ7YmFja2dyb3VuZC1jb2xvcjojNDE5NjQxO2JhY2tncm91bmQtaW1hZ2U6bm9uZX0uYnRuLWlu
Zm97YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIzViYzBkZSAw
LCMyYWFiZDIgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCM1
YmMwZGUgMCwjMmFhYmQyIDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChs
aW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbSgjNWJjMGRlKSx0bygjMmFhYmQyKSk7YmFj
a2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCM1YmMwZGUgMCwjMmFhYmQy
IDEwMCUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQo
c3RhcnRDb2xvcnN0cj0nI2ZmNWJjMGRlJywgZW5kQ29sb3JzdHI9JyNmZjJhYWJkMicsIEdyYWRp
ZW50VHlwZT0wKTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRp
ZW50KGVuYWJsZWQ9ZmFsc2UpO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O2JvcmRlci1jb2xv
cjojMjhhNGM5fS5idG4taW5mbzpmb2N1cywuYnRuLWluZm86aG92ZXJ7YmFja2dyb3VuZC1jb2xv
cjojMmFhYmQyO2JhY2tncm91bmQtcG9zaXRpb246MCAtMTVweH0uYnRuLWluZm8uYWN0aXZlLC5i
dG4taW5mbzphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojMmFhYmQyO2JvcmRlci1jb2xvcjojMjhh
NGM5fS5idG4taW5mby5kaXNhYmxlZCwuYnRuLWluZm8uZGlzYWJsZWQuYWN0aXZlLC5idG4taW5m
by5kaXNhYmxlZC5mb2N1cywuYnRuLWluZm8uZGlzYWJsZWQ6YWN0aXZlLC5idG4taW5mby5kaXNh
YmxlZDpmb2N1cywuYnRuLWluZm8uZGlzYWJsZWQ6aG92ZXIsLmJ0bi1pbmZvW2Rpc2FibGVkXSwu
YnRuLWluZm9bZGlzYWJsZWRdLmFjdGl2ZSwuYnRuLWluZm9bZGlzYWJsZWRdLmZvY3VzLC5idG4t
aW5mb1tkaXNhYmxlZF06YWN0aXZlLC5idG4taW5mb1tkaXNhYmxlZF06Zm9jdXMsLmJ0bi1pbmZv
W2Rpc2FibGVkXTpob3ZlcixmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1pbmZvLGZpZWxkc2V0W2Rp
c2FibGVkXSAuYnRuLWluZm8uYWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWluZm8uZm9j
dXMsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4taW5mbzphY3RpdmUsZmllbGRzZXRbZGlzYWJsZWRd
IC5idG4taW5mbzpmb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1pbmZvOmhvdmVye2JhY2tn
cm91bmQtY29sb3I6IzJhYWJkMjtiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LmJ0bi13YXJuaW5ne2Jh
Y2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCNmMGFkNGUgMCwjZWI5
MzE2IDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwjZjBhZDRl
IDAsI2ViOTMxNiAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFy
LGxlZnQgdG9wLGxlZnQgYm90dG9tLGZyb20oI2YwYWQ0ZSksdG8oI2ViOTMxNikpO2JhY2tncm91
bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwjZjBhZDRlIDAsI2ViOTMxNiAxMDAl
KTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0
Q29sb3JzdHI9JyNmZmYwYWQ0ZScsIGVuZENvbG9yc3RyPScjZmZlYjkzMTYnLCBHcmFkaWVudFR5
cGU9MCk7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChl
bmFibGVkPWZhbHNlKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteDtib3JkZXItY29sb3I6I2Uz
OGQxM30uYnRuLXdhcm5pbmc6Zm9jdXMsLmJ0bi13YXJuaW5nOmhvdmVye2JhY2tncm91bmQtY29s
b3I6I2ViOTMxNjtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTE1cHh9LmJ0bi13YXJuaW5nLmFjdGl2
ZSwuYnRuLXdhcm5pbmc6YWN0aXZle2JhY2tncm91bmQtY29sb3I6I2ViOTMxNjtib3JkZXItY29s
b3I6I2UzOGQxM30uYnRuLXdhcm5pbmcuZGlzYWJsZWQsLmJ0bi13YXJuaW5nLmRpc2FibGVkLmFj
dGl2ZSwuYnRuLXdhcm5pbmcuZGlzYWJsZWQuZm9jdXMsLmJ0bi13YXJuaW5nLmRpc2FibGVkOmFj
dGl2ZSwuYnRuLXdhcm5pbmcuZGlzYWJsZWQ6Zm9jdXMsLmJ0bi13YXJuaW5nLmRpc2FibGVkOmhv
dmVyLC5idG4td2FybmluZ1tkaXNhYmxlZF0sLmJ0bi13YXJuaW5nW2Rpc2FibGVkXS5hY3RpdmUs
LmJ0bi13YXJuaW5nW2Rpc2FibGVkXS5mb2N1cywuYnRuLXdhcm5pbmdbZGlzYWJsZWRdOmFjdGl2
ZSwuYnRuLXdhcm5pbmdbZGlzYWJsZWRdOmZvY3VzLC5idG4td2FybmluZ1tkaXNhYmxlZF06aG92
ZXIsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4td2FybmluZyxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0
bi13YXJuaW5nLmFjdGl2ZSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi13YXJuaW5nLmZvY3VzLGZp
ZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXdhcm5pbmc6YWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAu
YnRuLXdhcm5pbmc6Zm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4td2FybmluZzpob3Zlcnti
YWNrZ3JvdW5kLWNvbG9yOiNlYjkzMTY7YmFja2dyb3VuZC1pbWFnZTpub25lfS5idG4tZGFuZ2Vy
e2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCNkOTUzNGYgMCwj
YzEyZTJhIDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwjZDk1
MzRmIDAsI2MxMmUyYSAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGlu
ZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGZyb20oI2Q5NTM0ZiksdG8oI2MxMmUyYSkpO2JhY2tn
cm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwjZDk1MzRmIDAsI2MxMmUyYSAx
MDAlKTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0
YXJ0Q29sb3JzdHI9JyNmZmQ5NTM0ZicsIGVuZENvbG9yc3RyPScjZmZjMTJlMmEnLCBHcmFkaWVu
dFR5cGU9MCk7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVu
dChlbmFibGVkPWZhbHNlKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteDtib3JkZXItY29sb3I6
I2I5MmMyOH0uYnRuLWRhbmdlcjpmb2N1cywuYnRuLWRhbmdlcjpob3ZlcntiYWNrZ3JvdW5kLWNv
bG9yOiNjMTJlMmE7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xNXB4fS5idG4tZGFuZ2VyLmFjdGl2
ZSwuYnRuLWRhbmdlcjphY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojYzEyZTJhO2JvcmRlci1jb2xv
cjojYjkyYzI4fS5idG4tZGFuZ2VyLmRpc2FibGVkLC5idG4tZGFuZ2VyLmRpc2FibGVkLmFjdGl2
ZSwuYnRuLWRhbmdlci5kaXNhYmxlZC5mb2N1cywuYnRuLWRhbmdlci5kaXNhYmxlZDphY3RpdmUs
LmJ0bi1kYW5nZXIuZGlzYWJsZWQ6Zm9jdXMsLmJ0bi1kYW5nZXIuZGlzYWJsZWQ6aG92ZXIsLmJ0
bi1kYW5nZXJbZGlzYWJsZWRdLC5idG4tZGFuZ2VyW2Rpc2FibGVkXS5hY3RpdmUsLmJ0bi1kYW5n
ZXJbZGlzYWJsZWRdLmZvY3VzLC5idG4tZGFuZ2VyW2Rpc2FibGVkXTphY3RpdmUsLmJ0bi1kYW5n
ZXJbZGlzYWJsZWRdOmZvY3VzLC5idG4tZGFuZ2VyW2Rpc2FibGVkXTpob3ZlcixmaWVsZHNldFtk
aXNhYmxlZF0gLmJ0bi1kYW5nZXIsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGFuZ2VyLmFjdGl2
ZSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kYW5nZXIuZm9jdXMsZmllbGRzZXRbZGlzYWJsZWRd
IC5idG4tZGFuZ2VyOmFjdGl2ZSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kYW5nZXI6Zm9jdXMs
ZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tZGFuZ2VyOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2Mx
MmUyYTtiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LmltZy10aHVtYm5haWwsLnRodW1ibmFpbHstd2Vi
a2l0LWJveC1zaGFkb3c6MCAxcHggMnB4IHJnYmEoMCwwLDAsLjA3NSk7Ym94LXNoYWRvdzowIDFw
eCAycHggcmdiYSgwLDAsMCwuMDc1KX0uZHJvcGRvd24tbWVudT5saT5hOmZvY3VzLC5kcm9wZG93
bi1tZW51PmxpPmE6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZThlOGU4O2JhY2tncm91bmQtaW1h
Z2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCNmNWY1ZjUgMCwjZThlOGU4IDEwMCUpO2Jh
Y2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwjZjVmNWY1IDAsI2U4ZThlOCAx
MDAlKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxl
ZnQgYm90dG9tLGZyb20oI2Y1ZjVmNSksdG8oI2U4ZThlOCkpO2JhY2tncm91bmQtaW1hZ2U6bGlu
ZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwjZjVmNWY1IDAsI2U4ZThlOCAxMDAlKTtmaWx0ZXI6cHJv
Z2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNm
ZmY1ZjVmNScsIGVuZENvbG9yc3RyPScjZmZlOGU4ZTgnLCBHcmFkaWVudFR5cGU9MCk7YmFja2dy
b3VuZC1yZXBlYXQ6cmVwZWF0LXh9LmRyb3Bkb3duLW1lbnU+LmFjdGl2ZT5hLC5kcm9wZG93bi1t
ZW51Pi5hY3RpdmU+YTpmb2N1cywuZHJvcGRvd24tbWVudT4uYWN0aXZlPmE6aG92ZXJ7YmFja2dy
b3VuZC1jb2xvcjojMmU2ZGE0O2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGll
bnQodG9wLCMzMzdhYjcgMCwjMmU2ZGE0IDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFy
LWdyYWRpZW50KHRvcCwjMzM3YWI3IDAsIzJlNmRhNCAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi13
ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGZyb20oIzMzN2FiNyks
dG8oIzJlNmRhNCkpO2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwj
MzM3YWI3IDAsIzJlNmRhNCAxMDAlKTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWlj
cm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNmZjMzN2FiNycsIGVuZENvbG9yc3RyPScj
ZmYyZTZkYTQnLCBHcmFkaWVudFR5cGU9MCk7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXh9Lm5h
dmJhci1kZWZhdWx0e2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9w
LCNmZmYgMCwjZjhmOGY4IDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50
KHRvcCwjZmZmIDAsI2Y4ZjhmOCAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGll
bnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGZyb20oI2ZmZiksdG8oI2Y4ZjhmOCkpO2Jh
Y2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwjZmZmIDAsI2Y4ZjhmOCAx
MDAlKTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0
YXJ0Q29sb3JzdHI9JyNmZmZmZmZmZicsIGVuZENvbG9yc3RyPScjZmZmOGY4ZjgnLCBHcmFkaWVu
dFR5cGU9MCk7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVu
dChlbmFibGVkPWZhbHNlKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteDtib3JkZXItcmFkaXVz
OjRweDstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LC4x
NSksMCAxcHggNXB4IHJnYmEoMCwwLDAsLjA3NSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAwIHJn
YmEoMjU1LDI1NSwyNTUsLjE1KSwwIDFweCA1cHggcmdiYSgwLDAsMCwuMDc1KX0ubmF2YmFyLWRl
ZmF1bHQgLm5hdmJhci1uYXY+LmFjdGl2ZT5hLC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdj4u
b3Blbj5he2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCNkYmRi
ZGIgMCwjZTJlMmUyIDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRv
cCwjZGJkYmRiIDAsI2UyZTJlMiAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGll
bnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGZyb20oI2RiZGJkYiksdG8oI2UyZTJlMikp
O2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwjZGJkYmRiIDAsI2Uy
ZTJlMiAxMDAlKTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRp
ZW50KHN0YXJ0Q29sb3JzdHI9JyNmZmRiZGJkYicsIGVuZENvbG9yc3RyPScjZmZlMmUyZTInLCBH
cmFkaWVudFR5cGU9MCk7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXg7LXdlYmtpdC1ib3gtc2hh
ZG93Omluc2V0IDAgM3B4IDlweCByZ2JhKDAsMCwwLC4wNzUpO2JveC1zaGFkb3c6aW5zZXQgMCAz
cHggOXB4IHJnYmEoMCwwLDAsLjA3NSl9Lm5hdmJhci1icmFuZCwubmF2YmFyLW5hdj5saT5he3Rl
eHQtc2hhZG93OjAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMjUpfS5uYXZiYXItaW52ZXJzZXti
YWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjM2MzYzNjIDAsIzIy
MiAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsIzNjM2MzYyAw
LCMyMjIgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0
IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKCMzYzNjM2MpLHRvKCMyMjIpKTtiYWNrZ3JvdW5kLWltYWdl
OmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIzNjM2MzYyAwLCMyMjIgMTAwJSk7ZmlsdGVyOnBy
b2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScj
ZmYzYzNjM2MnLCBlbmRDb2xvcnN0cj0nI2ZmMjIyMjIyJywgR3JhZGllbnRUeXBlPTApO2ZpbHRl
cjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoZW5hYmxlZD1mYWxz
ZSk7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXg7Ym9yZGVyLXJhZGl1czo0cHh9Lm5hdmJhci1p
bnZlcnNlIC5uYXZiYXItbmF2Pi5hY3RpdmU+YSwubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXY+
Lm9wZW4+YXtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjMDgw
ODA4IDAsIzBmMGYwZiAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0
b3AsIzA4MDgwOCAwLCMwZjBmMGYgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRp
ZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKCMwODA4MDgpLHRvKCMwZjBmMGYp
KTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIzA4MDgwOCAwLCMw
ZjBmMGYgMTAwJSk7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFk
aWVudChzdGFydENvbG9yc3RyPScjZmYwODA4MDgnLCBlbmRDb2xvcnN0cj0nI2ZmMGYwZjBmJywg
R3JhZGllbnRUeXBlPTApO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14Oy13ZWJraXQtYm94LXNo
YWRvdzppbnNldCAwIDNweCA5cHggcmdiYSgwLDAsMCwuMjUpO2JveC1zaGFkb3c6aW5zZXQgMCAz
cHggOXB4IHJnYmEoMCwwLDAsLjI1KX0ubmF2YmFyLWludmVyc2UgLm5hdmJhci1icmFuZCwubmF2
YmFyLWludmVyc2UgLm5hdmJhci1uYXY+bGk+YXt0ZXh0LXNoYWRvdzowIC0xcHggMCByZ2JhKDAs
MCwwLC4yNSl9Lm5hdmJhci1maXhlZC1ib3R0b20sLm5hdmJhci1maXhlZC10b3AsLm5hdmJhci1z
dGF0aWMtdG9we2JvcmRlci1yYWRpdXM6MH1AbWVkaWEgKG1heC13aWR0aDo3NjdweCl7Lm5hdmJh
ciAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT4uYWN0aXZlPmEsLm5hdmJhciAubmF2
YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT4uYWN0aXZlPmE6Zm9jdXMsLm5hdmJhciAubmF2
YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT4uYWN0aXZlPmE6aG92ZXJ7Y29sb3I6I2ZmZjti
YWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjMzM3YWI3IDAsIzJl
NmRhNCAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsIzMzN2Fi
NyAwLCMyZTZkYTQgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVh
cixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKCMzMzdhYjcpLHRvKCMyZTZkYTQpKTtiYWNrZ3Jv
dW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIzMzN2FiNyAwLCMyZTZkYTQgMTAw
JSk7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFy
dENvbG9yc3RyPScjZmYzMzdhYjcnLCBlbmRDb2xvcnN0cj0nI2ZmMmU2ZGE0JywgR3JhZGllbnRU
eXBlPTApO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14fX0uYWxlcnR7dGV4dC1zaGFkb3c6MCAx
cHggMCByZ2JhKDI1NSwyNTUsMjU1LC4yKTstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHgg
MCByZ2JhKDI1NSwyNTUsMjU1LC4yNSksMCAxcHggMnB4IHJnYmEoMCwwLDAsLjA1KTtib3gtc2hh
ZG93Omluc2V0IDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMjUpLDAgMXB4IDJweCByZ2JhKDAs
MCwwLC4wNSl9LmFsZXJ0LXN1Y2Nlc3N7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1n
cmFkaWVudCh0b3AsI2RmZjBkOCAwLCNjOGU1YmMgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotby1s
aW5lYXItZ3JhZGllbnQodG9wLCNkZmYwZDggMCwjYzhlNWJjIDEwMCUpO2JhY2tncm91bmQtaW1h
Z2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbSgjZGZm
MGQ4KSx0bygjYzhlNWJjKSk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90
dG9tLCNkZmYwZDggMCwjYzhlNWJjIDEwMCUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9y
bS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmZGZmMGQ4JywgZW5kQ29sb3Jz
dHI9JyNmZmM4ZTViYycsIEdyYWRpZW50VHlwZT0wKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQt
eDtib3JkZXItY29sb3I6I2IyZGJhMX0uYWxlcnQtaW5mb3tiYWNrZ3JvdW5kLWltYWdlOi13ZWJr
aXQtbGluZWFyLWdyYWRpZW50KHRvcCwjZDllZGY3IDAsI2I5ZGVmMCAxMDAlKTtiYWNrZ3JvdW5k
LWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsI2Q5ZWRmNyAwLCNiOWRlZjAgMTAwJSk7YmFj
a2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRv
bSxmcm9tKCNkOWVkZjcpLHRvKCNiOWRlZjApKTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFk
aWVudCh0byBib3R0b20sI2Q5ZWRmNyAwLCNiOWRlZjAgMTAwJSk7ZmlsdGVyOnByb2dpZDpEWElt
YWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZmZkOWVkZjcn
LCBlbmRDb2xvcnN0cj0nI2ZmYjlkZWYwJywgR3JhZGllbnRUeXBlPTApO2JhY2tncm91bmQtcmVw
ZWF0OnJlcGVhdC14O2JvcmRlci1jb2xvcjojOWFjZmVhfS5hbGVydC13YXJuaW5ne2JhY2tncm91
bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCNmY2Y4ZTMgMCwjZjhlZmMwIDEw
MCUpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwjZmNmOGUzIDAsI2Y4
ZWZjMCAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQg
dG9wLGxlZnQgYm90dG9tLGZyb20oI2ZjZjhlMyksdG8oI2Y4ZWZjMCkpO2JhY2tncm91bmQtaW1h
Z2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwjZmNmOGUzIDAsI2Y4ZWZjMCAxMDAlKTtmaWx0
ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3Jz
dHI9JyNmZmZjZjhlMycsIGVuZENvbG9yc3RyPScjZmZmOGVmYzAnLCBHcmFkaWVudFR5cGU9MCk7
YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXg7Ym9yZGVyLWNvbG9yOiNmNWU3OWV9LmFsZXJ0LWRh
bmdlcntiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjZjJkZWRl
IDAsI2U3YzNjMyAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3As
I2YyZGVkZSAwLCNlN2MzYzMgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50
KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKCNmMmRlZGUpLHRvKCNlN2MzYzMpKTti
YWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sI2YyZGVkZSAwLCNlN2Mz
YzMgMTAwJSk7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVu
dChzdGFydENvbG9yc3RyPScjZmZmMmRlZGUnLCBlbmRDb2xvcnN0cj0nI2ZmZTdjM2MzJywgR3Jh
ZGllbnRUeXBlPTApO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O2JvcmRlci1jb2xvcjojZGNh
N2E3fS5wcm9ncmVzc3tiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRv
cCwjZWJlYmViIDAsI2Y1ZjVmNSAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFk
aWVudCh0b3AsI2ViZWJlYiAwLCNmNWY1ZjUgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0
LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKCNlYmViZWIpLHRvKCNm
NWY1ZjUpKTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sI2ViZWJl
YiAwLCNmNWY1ZjUgMTAwJSk7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29m
dC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZmZlYmViZWInLCBlbmRDb2xvcnN0cj0nI2ZmZjVm
NWY1JywgR3JhZGllbnRUeXBlPTApO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14fS5wcm9ncmVz
cy1iYXJ7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIzMzN2Fi
NyAwLCMyODYwOTAgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9w
LCMzMzdhYjcgMCwjMjg2MDkwIDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVu
dChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbSgjMzM3YWI3KSx0bygjMjg2MDkwKSk7
YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCMzMzdhYjcgMCwjMjg2
MDkwIDEwMCUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGll
bnQoc3RhcnRDb2xvcnN0cj0nI2ZmMzM3YWI3JywgZW5kQ29sb3JzdHI9JyNmZjI4NjA5MCcsIEdy
YWRpZW50VHlwZT0wKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteH0ucHJvZ3Jlc3MtYmFyLXN1
Y2Nlc3N7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIzVjYjg1
YyAwLCM0NDlkNDQgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9w
LCM1Y2I4NWMgMCwjNDQ5ZDQ0IDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVu
dChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbSgjNWNiODVjKSx0bygjNDQ5ZDQ0KSk7
YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCM1Y2I4NWMgMCwjNDQ5
ZDQ0IDEwMCUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGll
bnQoc3RhcnRDb2xvcnN0cj0nI2ZmNWNiODVjJywgZW5kQ29sb3JzdHI9JyNmZjQ0OWQ0NCcsIEdy
YWRpZW50VHlwZT0wKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteH0ucHJvZ3Jlc3MtYmFyLWlu
Zm97YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIzViYzBkZSAw
LCMzMWIwZDUgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCM1
YmMwZGUgMCwjMzFiMGQ1IDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChs
aW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbSgjNWJjMGRlKSx0bygjMzFiMGQ1KSk7YmFj
a2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCM1YmMwZGUgMCwjMzFiMGQ1
IDEwMCUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQo
c3RhcnRDb2xvcnN0cj0nI2ZmNWJjMGRlJywgZW5kQ29sb3JzdHI9JyNmZjMxYjBkNScsIEdyYWRp
ZW50VHlwZT0wKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteH0ucHJvZ3Jlc3MtYmFyLXdhcm5p
bmd7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsI2YwYWQ0ZSAw
LCNlYzk3MWYgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCNm
MGFkNGUgMCwjZWM5NzFmIDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChs
aW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbSgjZjBhZDRlKSx0bygjZWM5NzFmKSk7YmFj
a2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCNmMGFkNGUgMCwjZWM5NzFm
IDEwMCUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQo
c3RhcnRDb2xvcnN0cj0nI2ZmZjBhZDRlJywgZW5kQ29sb3JzdHI9JyNmZmVjOTcxZicsIEdyYWRp
ZW50VHlwZT0wKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteH0ucHJvZ3Jlc3MtYmFyLWRhbmdl
cntiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjZDk1MzRmIDAs
I2M5MzAyYyAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsI2Q5
NTM0ZiAwLCNjOTMwMmMgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxp
bmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKCNkOTUzNGYpLHRvKCNjOTMwMmMpKTtiYWNr
Z3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sI2Q5NTM0ZiAwLCNjOTMwMmMg
MTAwJSk7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChz
dGFydENvbG9yc3RyPScjZmZkOTUzNGYnLCBlbmRDb2xvcnN0cj0nI2ZmYzkzMDJjJywgR3JhZGll
bnRUeXBlPTApO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14fS5wcm9ncmVzcy1iYXItc3RyaXBl
ZHtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLHJnYmEoMjU1
LDI1NSwyNTUsLjE1KSAyNSUsdHJhbnNwYXJlbnQgMjUlLHRyYW5zcGFyZW50IDUwJSxyZ2JhKDI1
NSwyNTUsMjU1LC4xNSkgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA3NSUsdHJhbnNwYXJlbnQg
NzUlLHRyYW5zcGFyZW50KTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCg0NWRl
ZyxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLHRyYW5zcGFyZW50IDI1JSx0cmFuc3BhcmVudCA1
MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUlLHRy
YW5zcGFyZW50IDc1JSx0cmFuc3BhcmVudCk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGll
bnQoNDVkZWcscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDI1JSx0cmFuc3BhcmVudCAyNSUsdHJhbnNw
YXJlbnQgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUp
IDc1JSx0cmFuc3BhcmVudCA3NSUsdHJhbnNwYXJlbnQpfS5saXN0LWdyb3Vwe2JvcmRlci1yYWRp
dXM6NHB4Oy13ZWJraXQtYm94LXNoYWRvdzowIDFweCAycHggcmdiYSgwLDAsMCwuMDc1KTtib3gt
c2hhZG93OjAgMXB4IDJweCByZ2JhKDAsMCwwLC4wNzUpfS5saXN0LWdyb3VwLWl0ZW0uYWN0aXZl
LC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzLC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmhv
dmVye3RleHQtc2hhZG93OjAgLTFweCAwICMyODYwOTA7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0
LWxpbmVhci1ncmFkaWVudCh0b3AsIzMzN2FiNyAwLCMyYjY2OWEgMTAwJSk7YmFja2dyb3VuZC1p
bWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCMzMzdhYjcgMCwjMmI2NjlhIDEwMCUpO2JhY2tn
cm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20s
ZnJvbSgjMzM3YWI3KSx0bygjMmI2NjlhKSk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGll
bnQodG8gYm90dG9tLCMzMzdhYjcgMCwjMmI2NjlhIDEwMCUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFn
ZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmMzM3YWI3Jywg
ZW5kQ29sb3JzdHI9JyNmZjJiNjY5YScsIEdyYWRpZW50VHlwZT0wKTtiYWNrZ3JvdW5kLXJlcGVh
dDpyZXBlYXQteDtib3JkZXItY29sb3I6IzJiNjY5YX0ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSAu
YmFkZ2UsLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6Zm9jdXMgLmJhZGdlLC5saXN0LWdyb3VwLWl0
ZW0uYWN0aXZlOmhvdmVyIC5iYWRnZXt0ZXh0LXNoYWRvdzpub25lfS5wYW5lbHstd2Via2l0LWJv
eC1zaGFkb3c6MCAxcHggMnB4IHJnYmEoMCwwLDAsLjA1KTtib3gtc2hhZG93OjAgMXB4IDJweCBy
Z2JhKDAsMCwwLC4wNSl9LnBhbmVsLWRlZmF1bHQ+LnBhbmVsLWhlYWRpbmd7YmFja2dyb3VuZC1p
bWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsI2Y1ZjVmNSAwLCNlOGU4ZTggMTAwJSk7
YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQodG9wLCNmNWY1ZjUgMCwjZThlOGU4
IDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3As
bGVmdCBib3R0b20sZnJvbSgjZjVmNWY1KSx0bygjZThlOGU4KSk7YmFja2dyb3VuZC1pbWFnZTps
aW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCNmNWY1ZjUgMCwjZThlOGU4IDEwMCUpO2ZpbHRlcjpw
cm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0n
I2ZmZjVmNWY1JywgZW5kQ29sb3JzdHI9JyNmZmU4ZThlOCcsIEdyYWRpZW50VHlwZT0wKTtiYWNr
Z3JvdW5kLXJlcGVhdDpyZXBlYXQteH0ucGFuZWwtcHJpbWFyeT4ucGFuZWwtaGVhZGluZ3tiYWNr
Z3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjMzM3YWI3IDAsIzJlNmRh
NCAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0b3AsIzMzN2FiNyAw
LCMyZTZkYTQgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRpZW50KGxpbmVhcixs
ZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKCMzMzdhYjcpLHRvKCMyZTZkYTQpKTtiYWNrZ3JvdW5k
LWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIzMzN2FiNyAwLCMyZTZkYTQgMTAwJSk7
ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudChzdGFydENv
bG9yc3RyPScjZmYzMzdhYjcnLCBlbmRDb2xvcnN0cj0nI2ZmMmU2ZGE0JywgR3JhZGllbnRUeXBl
PTApO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14fS5wYW5lbC1zdWNjZXNzPi5wYW5lbC1oZWFk
aW5ne2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCNkZmYwZDgg
MCwjZDBlOWM2IDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwj
ZGZmMGQ4IDAsI2QwZTljNiAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtZ3JhZGllbnQo
bGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGZyb20oI2RmZjBkOCksdG8oI2QwZTljNikpO2Jh
Y2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwjZGZmMGQ4IDAsI2QwZTlj
NiAxMDAlKTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50
KHN0YXJ0Q29sb3JzdHI9JyNmZmRmZjBkOCcsIGVuZENvbG9yc3RyPScjZmZkMGU5YzYnLCBHcmFk
aWVudFR5cGU9MCk7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXh9LnBhbmVsLWluZm8+LnBhbmVs
LWhlYWRpbmd7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsI2Q5
ZWRmNyAwLCNjNGUzZjMgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQo
dG9wLCNkOWVkZjcgMCwjYzRlM2YzIDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFk
aWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbSgjZDllZGY3KSx0bygjYzRlM2Yz
KSk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCNkOWVkZjcgMCwj
YzRlM2YzIDEwMCUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3Jh
ZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmZDllZGY3JywgZW5kQ29sb3JzdHI9JyNmZmM0ZTNmMycs
IEdyYWRpZW50VHlwZT0wKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQteH0ucGFuZWwtd2Fybmlu
Zz4ucGFuZWwtaGVhZGluZ3tiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50
KHRvcCwjZmNmOGUzIDAsI2ZhZjJjYyAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1n
cmFkaWVudCh0b3AsI2ZjZjhlMyAwLCNmYWYyY2MgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotd2Vi
a2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKCNmY2Y4ZTMpLHRv
KCNmYWYyY2MpKTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sI2Zj
ZjhlMyAwLCNmYWYyY2MgMTAwJSk7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jv
c29mdC5ncmFkaWVudChzdGFydENvbG9yc3RyPScjZmZmY2Y4ZTMnLCBlbmRDb2xvcnN0cj0nI2Zm
ZmFmMmNjJywgR3JhZGllbnRUeXBlPTApO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14fS5wYW5l
bC1kYW5nZXI+LnBhbmVsLWhlYWRpbmd7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1n
cmFkaWVudCh0b3AsI2YyZGVkZSAwLCNlYmNjY2MgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotby1s
aW5lYXItZ3JhZGllbnQodG9wLCNmMmRlZGUgMCwjZWJjY2NjIDEwMCUpO2JhY2tncm91bmQtaW1h
Z2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbSgjZjJk
ZWRlKSx0bygjZWJjY2NjKSk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gYm90
dG9tLCNmMmRlZGUgMCwjZWJjY2NjIDEwMCUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9y
bS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmZjJkZWRlJywgZW5kQ29sb3Jz
dHI9JyNmZmViY2NjYycsIEdyYWRpZW50VHlwZT0wKTtiYWNrZ3JvdW5kLXJlcGVhdDpyZXBlYXQt
eH0ud2VsbHtiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjZThl
OGU4IDAsI2Y1ZjVmNSAxMDAlKTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVudCh0
b3AsI2U4ZThlOCAwLCNmNWY1ZjUgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWdyYWRp
ZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxmcm9tKCNlOGU4ZTgpLHRvKCNmNWY1ZjUp
KTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sI2U4ZThlOCAwLCNm
NWY1ZjUgMTAwJSk7ZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFk
aWVudChzdGFydENvbG9yc3RyPScjZmZlOGU4ZTgnLCBlbmRDb2xvcnN0cj0nI2ZmZjVmNWY1Jywg
R3JhZGllbnRUeXBlPTApO2JhY2tncm91bmQtcmVwZWF0OnJlcGVhdC14O2JvcmRlci1jb2xvcjoj
ZGNkY2RjOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAzcHggcmdiYSgwLDAsMCwuMDUp
LDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAzcHgg
cmdiYSgwLDAsMCwuMDUpLDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMSl9ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvY3NzL2Jvb3RzdHJhcC5taW4uY3NzIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvY3Nz
L2Jvb3RzdHJhcC5taW4uY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2NWM2NmIxYmEyOTdlZWIzYjU5NzZiNzFj
NjRjNzM2YjQxYmI3NjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9jc3MvYm9vdHN0cmFwLm1pbi5jc3MK
QEAgLTAsMCArMSw1IEBACisvKiEKKyAqIEJvb3RzdHJhcCB2My4zLjUgKGh0dHA6Ly9nZXRib290
c3RyYXAuY29tKQorICogQ29weXJpZ2h0IDIwMTEtMjAxNSBUd2l0dGVyLCBJbmMuCisgKiBMaWNl
bnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9ibG9iL21h
c3Rlci9MSUNFTlNFKQorICovLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2Ug
fCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL2h0bWx7Zm9udC1mYW1pbHk6c2Fu
cy1zZXJpZjstd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6MTAwJTstbXMtdGV4dC1zaXplLWFkanVz
dDoxMDAlfWJvZHl7bWFyZ2luOjB9YXJ0aWNsZSxhc2lkZSxkZXRhaWxzLGZpZ2NhcHRpb24sZmln
dXJlLGZvb3RlcixoZWFkZXIsaGdyb3VwLG1haW4sbWVudSxuYXYsc2VjdGlvbixzdW1tYXJ5e2Rp
c3BsYXk6YmxvY2t9YXVkaW8sY2FudmFzLHByb2dyZXNzLHZpZGVve2Rpc3BsYXk6aW5saW5lLWJs
b2NrO3ZlcnRpY2FsLWFsaWduOmJhc2VsaW5lfWF1ZGlvOm5vdChbY29udHJvbHNdKXtkaXNwbGF5
Om5vbmU7aGVpZ2h0OjB9W2hpZGRlbl0sdGVtcGxhdGV7ZGlzcGxheTpub25lfWF7YmFja2dyb3Vu
ZC1jb2xvcjp0cmFuc3BhcmVudH1hOmFjdGl2ZSxhOmhvdmVye291dGxpbmU6MH1hYmJyW3RpdGxl
XXtib3JkZXItYm90dG9tOjFweCBkb3R0ZWR9YixzdHJvbmd7Zm9udC13ZWlnaHQ6NzAwfWRmbntm
b250LXN0eWxlOml0YWxpY31oMXttYXJnaW46LjY3ZW0gMDtmb250LXNpemU6MmVtfW1hcmt7Y29s
b3I6IzAwMDtiYWNrZ3JvdW5kOiNmZjB9c21hbGx7Zm9udC1zaXplOjgwJX1zdWIsc3Vwe3Bvc2l0
aW9uOnJlbGF0aXZlO2ZvbnQtc2l6ZTo3NSU7bGluZS1oZWlnaHQ6MDt2ZXJ0aWNhbC1hbGlnbjpi
YXNlbGluZX1zdXB7dG9wOi0uNWVtfXN1Yntib3R0b206LS4yNWVtfWltZ3tib3JkZXI6MH1zdmc6
bm90KDpyb290KXtvdmVyZmxvdzpoaWRkZW59ZmlndXJle21hcmdpbjoxZW0gNDBweH1ocntoZWln
aHQ6MDstd2Via2l0LWJveC1zaXppbmc6Y29udGVudC1ib3g7LW1vei1ib3gtc2l6aW5nOmNvbnRl
bnQtYm94O2JveC1zaXppbmc6Y29udGVudC1ib3h9cHJle292ZXJmbG93OmF1dG99Y29kZSxrYmQs
cHJlLHNhbXB7Zm9udC1mYW1pbHk6bW9ub3NwYWNlLG1vbm9zcGFjZTtmb250LXNpemU6MWVtfWJ1
dHRvbixpbnB1dCxvcHRncm91cCxzZWxlY3QsdGV4dGFyZWF7bWFyZ2luOjA7Zm9udDppbmhlcml0
O2NvbG9yOmluaGVyaXR9YnV0dG9ue292ZXJmbG93OnZpc2libGV9YnV0dG9uLHNlbGVjdHt0ZXh0
LXRyYW5zZm9ybTpub25lfWJ1dHRvbixodG1sIGlucHV0W3R5cGU9YnV0dG9uXSxpbnB1dFt0eXBl
PXJlc2V0XSxpbnB1dFt0eXBlPXN1Ym1pdF17LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbjtjdXJz
b3I6cG9pbnRlcn1idXR0b25bZGlzYWJsZWRdLGh0bWwgaW5wdXRbZGlzYWJsZWRde2N1cnNvcjpk
ZWZhdWx0fWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixpbnB1dDo6LW1vei1mb2N1cy1pbm5lcntw
YWRkaW5nOjA7Ym9yZGVyOjB9aW5wdXR7bGluZS1oZWlnaHQ6bm9ybWFsfWlucHV0W3R5cGU9Y2hl
Y2tib3hdLGlucHV0W3R5cGU9cmFkaW9dey13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94Oy1t
b3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjB9
aW5wdXRbdHlwZT1udW1iZXJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLGlucHV0W3R5cGU9
bnVtYmVyXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbntoZWlnaHQ6YXV0b31pbnB1dFt0eXBl
PXNlYXJjaF17LXdlYmtpdC1ib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy1tb3otYm94LXNpemluZzpj
b250ZW50LWJveDtib3gtc2l6aW5nOmNvbnRlbnQtYm94Oy13ZWJraXQtYXBwZWFyYW5jZTp0ZXh0
ZmllbGR9aW5wdXRbdHlwZT1zZWFyY2hdOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLGlu
cHV0W3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbnstd2Via2l0LWFwcGVh
cmFuY2U6bm9uZX1maWVsZHNldHtwYWRkaW5nOi4zNWVtIC42MjVlbSAuNzVlbTttYXJnaW46MCAy
cHg7Ym9yZGVyOjFweCBzb2xpZCBzaWx2ZXJ9bGVnZW5ke3BhZGRpbmc6MDtib3JkZXI6MH10ZXh0
YXJlYXtvdmVyZmxvdzphdXRvfW9wdGdyb3Vwe2ZvbnQtd2VpZ2h0OjcwMH10YWJsZXtib3JkZXIt
c3BhY2luZzowO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZX10ZCx0aHtwYWRkaW5nOjB9LyohIFNv
dXJjZTogaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0
ZXIvc3JjL2Nzcy9tYWluLmNzcyAqL0BtZWRpYSBwcmludHsqLDphZnRlciw6YmVmb3Jle2NvbG9y
OiMwMDAhaW1wb3J0YW50O3RleHQtc2hhZG93Om5vbmUhaW1wb3J0YW50O2JhY2tncm91bmQ6MCAw
IWltcG9ydGFudDstd2Via2l0LWJveC1zaGFkb3c6bm9uZSFpbXBvcnRhbnQ7Ym94LXNoYWRvdzpu
b25lIWltcG9ydGFudH1hLGE6dmlzaXRlZHt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfWFbaHJl
Zl06YWZ0ZXJ7Y29udGVudDoiICgiIGF0dHIoaHJlZikgIikifWFiYnJbdGl0bGVdOmFmdGVye2Nv
bnRlbnQ6IiAoIiBhdHRyKHRpdGxlKSAiKSJ9YVtocmVmXj0iamF2YXNjcmlwdDoiXTphZnRlcixh
W2hyZWZePSIjIl06YWZ0ZXJ7Y29udGVudDoiIn1ibG9ja3F1b3RlLHByZXtib3JkZXI6MXB4IHNv
bGlkICM5OTk7cGFnZS1icmVhay1pbnNpZGU6YXZvaWR9dGhlYWR7ZGlzcGxheTp0YWJsZS1oZWFk
ZXItZ3JvdXB9aW1nLHRye3BhZ2UtYnJlYWstaW5zaWRlOmF2b2lkfWltZ3ttYXgtd2lkdGg6MTAw
JSFpbXBvcnRhbnR9aDIsaDMscHtvcnBoYW5zOjM7d2lkb3dzOjN9aDIsaDN7cGFnZS1icmVhay1h
ZnRlcjphdm9pZH0ubmF2YmFye2Rpc3BsYXk6bm9uZX0uYnRuPi5jYXJldCwuZHJvcHVwPi5idG4+
LmNhcmV0e2JvcmRlci10b3AtY29sb3I6IzAwMCFpbXBvcnRhbnR9LmxhYmVse2JvcmRlcjoxcHgg
c29saWQgIzAwMH0udGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlIWltcG9ydGFudH0udGFi
bGUgdGQsLnRhYmxlIHRoe2JhY2tncm91bmQtY29sb3I6I2ZmZiFpbXBvcnRhbnR9LnRhYmxlLWJv
cmRlcmVkIHRkLC50YWJsZS1ib3JkZXJlZCB0aHtib3JkZXI6MXB4IHNvbGlkICNkZGQhaW1wb3J0
YW50fX1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OidHbHlwaGljb25zIEhhbGZsaW5ncyc7c3JjOnVy
bCguLi9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLmVvdCk7c3JjOnVybCguLi9m
b250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLmVvdD8jaWVmaXgpIGZvcm1hdCgnZW1i
ZWRkZWQtb3BlbnR5cGUnKSx1cmwoLi4vZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxh
ci53b2ZmMikgZm9ybWF0KCd3b2ZmMicpLHVybCguLi9mb250cy9nbHlwaGljb25zLWhhbGZsaW5n
cy1yZWd1bGFyLndvZmYpIGZvcm1hdCgnd29mZicpLHVybCguLi9mb250cy9nbHlwaGljb25zLWhh
bGZsaW5ncy1yZWd1bGFyLnR0ZikgZm9ybWF0KCd0cnVldHlwZScpLHVybCguLi9mb250cy9nbHlw
aGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLnN2ZyNnbHlwaGljb25zX2hhbGZsaW5nc3JlZ3VsYXIp
IGZvcm1hdCgnc3ZnJyl9LmdseXBoaWNvbntwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MXB4O2Rpc3Bs
YXk6aW5saW5lLWJsb2NrO2ZvbnQtZmFtaWx5OidHbHlwaGljb25zIEhhbGZsaW5ncyc7Zm9udC1z
dHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjE7LXdlYmtpdC1mb250LXNt
b290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGV9Lmds
eXBoaWNvbi1hc3RlcmlzazpiZWZvcmV7Y29udGVudDoiXDJhIn0uZ2x5cGhpY29uLXBsdXM6YmVm
b3Jle2NvbnRlbnQ6IlwyYiJ9LmdseXBoaWNvbi1ldXI6YmVmb3JlLC5nbHlwaGljb24tZXVybzpi
ZWZvcmV7Y29udGVudDoiXDIwYWMifS5nbHlwaGljb24tbWludXM6YmVmb3Jle2NvbnRlbnQ6Ilwy
MjEyIn0uZ2x5cGhpY29uLWNsb3VkOmJlZm9yZXtjb250ZW50OiJcMjYwMSJ9LmdseXBoaWNvbi1l
bnZlbG9wZTpiZWZvcmV7Y29udGVudDoiXDI3MDkifS5nbHlwaGljb24tcGVuY2lsOmJlZm9yZXtj
b250ZW50OiJcMjcwZiJ9LmdseXBoaWNvbi1nbGFzczpiZWZvcmV7Y29udGVudDoiXGUwMDEifS5n
bHlwaGljb24tbXVzaWM6YmVmb3Jle2NvbnRlbnQ6IlxlMDAyIn0uZ2x5cGhpY29uLXNlYXJjaDpi
ZWZvcmV7Y29udGVudDoiXGUwMDMifS5nbHlwaGljb24taGVhcnQ6YmVmb3Jle2NvbnRlbnQ6Ilxl
MDA1In0uZ2x5cGhpY29uLXN0YXI6YmVmb3Jle2NvbnRlbnQ6IlxlMDA2In0uZ2x5cGhpY29uLXN0
YXItZW1wdHk6YmVmb3Jle2NvbnRlbnQ6IlxlMDA3In0uZ2x5cGhpY29uLXVzZXI6YmVmb3Jle2Nv
bnRlbnQ6IlxlMDA4In0uZ2x5cGhpY29uLWZpbG06YmVmb3Jle2NvbnRlbnQ6IlxlMDA5In0uZ2x5
cGhpY29uLXRoLWxhcmdlOmJlZm9yZXtjb250ZW50OiJcZTAxMCJ9LmdseXBoaWNvbi10aDpiZWZv
cmV7Y29udGVudDoiXGUwMTEifS5nbHlwaGljb24tdGgtbGlzdDpiZWZvcmV7Y29udGVudDoiXGUw
MTIifS5nbHlwaGljb24tb2s6YmVmb3Jle2NvbnRlbnQ6IlxlMDEzIn0uZ2x5cGhpY29uLXJlbW92
ZTpiZWZvcmV7Y29udGVudDoiXGUwMTQifS5nbHlwaGljb24tem9vbS1pbjpiZWZvcmV7Y29udGVu
dDoiXGUwMTUifS5nbHlwaGljb24tem9vbS1vdXQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDE2In0uZ2x5
cGhpY29uLW9mZjpiZWZvcmV7Y29udGVudDoiXGUwMTcifS5nbHlwaGljb24tc2lnbmFsOmJlZm9y
ZXtjb250ZW50OiJcZTAxOCJ9LmdseXBoaWNvbi1jb2c6YmVmb3Jle2NvbnRlbnQ6IlxlMDE5In0u
Z2x5cGhpY29uLXRyYXNoOmJlZm9yZXtjb250ZW50OiJcZTAyMCJ9LmdseXBoaWNvbi1ob21lOmJl
Zm9yZXtjb250ZW50OiJcZTAyMSJ9LmdseXBoaWNvbi1maWxlOmJlZm9yZXtjb250ZW50OiJcZTAy
MiJ9LmdseXBoaWNvbi10aW1lOmJlZm9yZXtjb250ZW50OiJcZTAyMyJ9LmdseXBoaWNvbi1yb2Fk
OmJlZm9yZXtjb250ZW50OiJcZTAyNCJ9LmdseXBoaWNvbi1kb3dubG9hZC1hbHQ6YmVmb3Jle2Nv
bnRlbnQ6IlxlMDI1In0uZ2x5cGhpY29uLWRvd25sb2FkOmJlZm9yZXtjb250ZW50OiJcZTAyNiJ9
LmdseXBoaWNvbi11cGxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDI3In0uZ2x5cGhpY29uLWluYm94
OmJlZm9yZXtjb250ZW50OiJcZTAyOCJ9LmdseXBoaWNvbi1wbGF5LWNpcmNsZTpiZWZvcmV7Y29u
dGVudDoiXGUwMjkifS5nbHlwaGljb24tcmVwZWF0OmJlZm9yZXtjb250ZW50OiJcZTAzMCJ9Lmds
eXBoaWNvbi1yZWZyZXNoOmJlZm9yZXtjb250ZW50OiJcZTAzMSJ9LmdseXBoaWNvbi1saXN0LWFs
dDpiZWZvcmV7Y29udGVudDoiXGUwMzIifS5nbHlwaGljb24tbG9jazpiZWZvcmV7Y29udGVudDoi
XGUwMzMifS5nbHlwaGljb24tZmxhZzpiZWZvcmV7Y29udGVudDoiXGUwMzQifS5nbHlwaGljb24t
aGVhZHBob25lczpiZWZvcmV7Y29udGVudDoiXGUwMzUifS5nbHlwaGljb24tdm9sdW1lLW9mZjpi
ZWZvcmV7Y29udGVudDoiXGUwMzYifS5nbHlwaGljb24tdm9sdW1lLWRvd246YmVmb3Jle2NvbnRl
bnQ6IlxlMDM3In0uZ2x5cGhpY29uLXZvbHVtZS11cDpiZWZvcmV7Y29udGVudDoiXGUwMzgifS5n
bHlwaGljb24tcXJjb2RlOmJlZm9yZXtjb250ZW50OiJcZTAzOSJ9LmdseXBoaWNvbi1iYXJjb2Rl
OmJlZm9yZXtjb250ZW50OiJcZTA0MCJ9LmdseXBoaWNvbi10YWc6YmVmb3Jle2NvbnRlbnQ6Ilxl
MDQxIn0uZ2x5cGhpY29uLXRhZ3M6YmVmb3Jle2NvbnRlbnQ6IlxlMDQyIn0uZ2x5cGhpY29uLWJv
b2s6YmVmb3Jle2NvbnRlbnQ6IlxlMDQzIn0uZ2x5cGhpY29uLWJvb2ttYXJrOmJlZm9yZXtjb250
ZW50OiJcZTA0NCJ9LmdseXBoaWNvbi1wcmludDpiZWZvcmV7Y29udGVudDoiXGUwNDUifS5nbHlw
aGljb24tY2FtZXJhOmJlZm9yZXtjb250ZW50OiJcZTA0NiJ9LmdseXBoaWNvbi1mb250OmJlZm9y
ZXtjb250ZW50OiJcZTA0NyJ9LmdseXBoaWNvbi1ib2xkOmJlZm9yZXtjb250ZW50OiJcZTA0OCJ9
LmdseXBoaWNvbi1pdGFsaWM6YmVmb3Jle2NvbnRlbnQ6IlxlMDQ5In0uZ2x5cGhpY29uLXRleHQt
aGVpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTA1MCJ9LmdseXBoaWNvbi10ZXh0LXdpZHRoOmJlZm9y
ZXtjb250ZW50OiJcZTA1MSJ9LmdseXBoaWNvbi1hbGlnbi1sZWZ0OmJlZm9yZXtjb250ZW50OiJc
ZTA1MiJ9LmdseXBoaWNvbi1hbGlnbi1jZW50ZXI6YmVmb3Jle2NvbnRlbnQ6IlxlMDUzIn0uZ2x5
cGhpY29uLWFsaWduLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTA1NCJ9LmdseXBoaWNvbi1hbGln
bi1qdXN0aWZ5OmJlZm9yZXtjb250ZW50OiJcZTA1NSJ9LmdseXBoaWNvbi1saXN0OmJlZm9yZXtj
b250ZW50OiJcZTA1NiJ9LmdseXBoaWNvbi1pbmRlbnQtbGVmdDpiZWZvcmV7Y29udGVudDoiXGUw
NTcifS5nbHlwaGljb24taW5kZW50LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTA1OCJ9LmdseXBo
aWNvbi1mYWNldGltZS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGUwNTkifS5nbHlwaGljb24tcGlj
dHVyZTpiZWZvcmV7Y29udGVudDoiXGUwNjAifS5nbHlwaGljb24tbWFwLW1hcmtlcjpiZWZvcmV7
Y29udGVudDoiXGUwNjIifS5nbHlwaGljb24tYWRqdXN0OmJlZm9yZXtjb250ZW50OiJcZTA2MyJ9
LmdseXBoaWNvbi10aW50OmJlZm9yZXtjb250ZW50OiJcZTA2NCJ9LmdseXBoaWNvbi1lZGl0OmJl
Zm9yZXtjb250ZW50OiJcZTA2NSJ9LmdseXBoaWNvbi1zaGFyZTpiZWZvcmV7Y29udGVudDoiXGUw
NjYifS5nbHlwaGljb24tY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxlMDY3In0uZ2x5cGhpY29uLW1v
dmU6YmVmb3Jle2NvbnRlbnQ6IlxlMDY4In0uZ2x5cGhpY29uLXN0ZXAtYmFja3dhcmQ6YmVmb3Jl
e2NvbnRlbnQ6IlxlMDY5In0uZ2x5cGhpY29uLWZhc3QtYmFja3dhcmQ6YmVmb3Jle2NvbnRlbnQ6
IlxlMDcwIn0uZ2x5cGhpY29uLWJhY2t3YXJkOmJlZm9yZXtjb250ZW50OiJcZTA3MSJ9LmdseXBo
aWNvbi1wbGF5OmJlZm9yZXtjb250ZW50OiJcZTA3MiJ9LmdseXBoaWNvbi1wYXVzZTpiZWZvcmV7
Y29udGVudDoiXGUwNzMifS5nbHlwaGljb24tc3RvcDpiZWZvcmV7Y29udGVudDoiXGUwNzQifS5n
bHlwaGljb24tZm9yd2FyZDpiZWZvcmV7Y29udGVudDoiXGUwNzUifS5nbHlwaGljb24tZmFzdC1m
b3J3YXJkOmJlZm9yZXtjb250ZW50OiJcZTA3NiJ9LmdseXBoaWNvbi1zdGVwLWZvcndhcmQ6YmVm
b3Jle2NvbnRlbnQ6IlxlMDc3In0uZ2x5cGhpY29uLWVqZWN0OmJlZm9yZXtjb250ZW50OiJcZTA3
OCJ9LmdseXBoaWNvbi1jaGV2cm9uLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDc5In0uZ2x5cGhp
Y29uLWNoZXZyb24tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDgwIn0uZ2x5cGhpY29uLXBsdXMt
c2lnbjpiZWZvcmV7Y29udGVudDoiXGUwODEifS5nbHlwaGljb24tbWludXMtc2lnbjpiZWZvcmV7
Y29udGVudDoiXGUwODIifS5nbHlwaGljb24tcmVtb3ZlLXNpZ246YmVmb3Jle2NvbnRlbnQ6Ilxl
MDgzIn0uZ2x5cGhpY29uLW9rLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxlMDg0In0uZ2x5cGhpY29u
LXF1ZXN0aW9uLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxlMDg1In0uZ2x5cGhpY29uLWluZm8tc2ln
bjpiZWZvcmV7Y29udGVudDoiXGUwODYifS5nbHlwaGljb24tc2NyZWVuc2hvdDpiZWZvcmV7Y29u
dGVudDoiXGUwODcifS5nbHlwaGljb24tcmVtb3ZlLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGUw
ODgifS5nbHlwaGljb24tb2stY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZTA4OSJ9LmdseXBoaWNv
bi1iYW4tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZTA5MCJ9LmdseXBoaWNvbi1hcnJvdy1sZWZ0
OmJlZm9yZXtjb250ZW50OiJcZTA5MSJ9LmdseXBoaWNvbi1hcnJvdy1yaWdodDpiZWZvcmV7Y29u
dGVudDoiXGUwOTIifS5nbHlwaGljb24tYXJyb3ctdXA6YmVmb3Jle2NvbnRlbnQ6IlxlMDkzIn0u
Z2x5cGhpY29uLWFycm93LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxlMDk0In0uZ2x5cGhpY29uLXNo
YXJlLWFsdDpiZWZvcmV7Y29udGVudDoiXGUwOTUifS5nbHlwaGljb24tcmVzaXplLWZ1bGw6YmVm
b3Jle2NvbnRlbnQ6IlxlMDk2In0uZ2x5cGhpY29uLXJlc2l6ZS1zbWFsbDpiZWZvcmV7Y29udGVu
dDoiXGUwOTcifS5nbHlwaGljb24tZXhjbGFtYXRpb24tc2lnbjpiZWZvcmV7Y29udGVudDoiXGUx
MDEifS5nbHlwaGljb24tZ2lmdDpiZWZvcmV7Y29udGVudDoiXGUxMDIifS5nbHlwaGljb24tbGVh
ZjpiZWZvcmV7Y29udGVudDoiXGUxMDMifS5nbHlwaGljb24tZmlyZTpiZWZvcmV7Y29udGVudDoi
XGUxMDQifS5nbHlwaGljb24tZXllLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxlMTA1In0uZ2x5cGhp
Y29uLWV5ZS1jbG9zZTpiZWZvcmV7Y29udGVudDoiXGUxMDYifS5nbHlwaGljb24td2FybmluZy1z
aWduOmJlZm9yZXtjb250ZW50OiJcZTEwNyJ9LmdseXBoaWNvbi1wbGFuZTpiZWZvcmV7Y29udGVu
dDoiXGUxMDgifS5nbHlwaGljb24tY2FsZW5kYXI6YmVmb3Jle2NvbnRlbnQ6IlxlMTA5In0uZ2x5
cGhpY29uLXJhbmRvbTpiZWZvcmV7Y29udGVudDoiXGUxMTAifS5nbHlwaGljb24tY29tbWVudDpi
ZWZvcmV7Y29udGVudDoiXGUxMTEifS5nbHlwaGljb24tbWFnbmV0OmJlZm9yZXtjb250ZW50OiJc
ZTExMiJ9LmdseXBoaWNvbi1jaGV2cm9uLXVwOmJlZm9yZXtjb250ZW50OiJcZTExMyJ9LmdseXBo
aWNvbi1jaGV2cm9uLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxlMTE0In0uZ2x5cGhpY29uLXJldHdl
ZXQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTE1In0uZ2x5cGhpY29uLXNob3BwaW5nLWNhcnQ6YmVmb3Jl
e2NvbnRlbnQ6IlxlMTE2In0uZ2x5cGhpY29uLWZvbGRlci1jbG9zZTpiZWZvcmV7Y29udGVudDoi
XGUxMTcifS5nbHlwaGljb24tZm9sZGVyLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxlMTE4In0uZ2x5
cGhpY29uLXJlc2l6ZS12ZXJ0aWNhbDpiZWZvcmV7Y29udGVudDoiXGUxMTkifS5nbHlwaGljb24t
cmVzaXplLWhvcml6b250YWw6YmVmb3Jle2NvbnRlbnQ6IlxlMTIwIn0uZ2x5cGhpY29uLWhkZDpi
ZWZvcmV7Y29udGVudDoiXGUxMjEifS5nbHlwaGljb24tYnVsbGhvcm46YmVmb3Jle2NvbnRlbnQ6
IlxlMTIyIn0uZ2x5cGhpY29uLWJlbGw6YmVmb3Jle2NvbnRlbnQ6IlxlMTIzIn0uZ2x5cGhpY29u
LWNlcnRpZmljYXRlOmJlZm9yZXtjb250ZW50OiJcZTEyNCJ9LmdseXBoaWNvbi10aHVtYnMtdXA6
YmVmb3Jle2NvbnRlbnQ6IlxlMTI1In0uZ2x5cGhpY29uLXRodW1icy1kb3duOmJlZm9yZXtjb250
ZW50OiJcZTEyNiJ9LmdseXBoaWNvbi1oYW5kLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTEyNyJ9
LmdseXBoaWNvbi1oYW5kLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTI4In0uZ2x5cGhpY29uLWhh
bmQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxlMTI5In0uZ2x5cGhpY29uLWhhbmQtZG93bjpiZWZvcmV7
Y29udGVudDoiXGUxMzAifS5nbHlwaGljb24tY2lyY2xlLWFycm93LXJpZ2h0OmJlZm9yZXtjb250
ZW50OiJcZTEzMSJ9LmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctbGVmdDpiZWZvcmV7Y29udGVudDoi
XGUxMzIifS5nbHlwaGljb24tY2lyY2xlLWFycm93LXVwOmJlZm9yZXtjb250ZW50OiJcZTEzMyJ9
LmdseXBoaWNvbi1jaXJjbGUtYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDoiXGUxMzQifS5nbHlw
aGljb24tZ2xvYmU6YmVmb3Jle2NvbnRlbnQ6IlxlMTM1In0uZ2x5cGhpY29uLXdyZW5jaDpiZWZv
cmV7Y29udGVudDoiXGUxMzYifS5nbHlwaGljb24tdGFza3M6YmVmb3Jle2NvbnRlbnQ6IlxlMTM3
In0uZ2x5cGhpY29uLWZpbHRlcjpiZWZvcmV7Y29udGVudDoiXGUxMzgifS5nbHlwaGljb24tYnJp
ZWZjYXNlOmJlZm9yZXtjb250ZW50OiJcZTEzOSJ9LmdseXBoaWNvbi1mdWxsc2NyZWVuOmJlZm9y
ZXtjb250ZW50OiJcZTE0MCJ9LmdseXBoaWNvbi1kYXNoYm9hcmQ6YmVmb3Jle2NvbnRlbnQ6Ilxl
MTQxIn0uZ2x5cGhpY29uLXBhcGVyY2xpcDpiZWZvcmV7Y29udGVudDoiXGUxNDIifS5nbHlwaGlj
b24taGVhcnQtZW1wdHk6YmVmb3Jle2NvbnRlbnQ6IlxlMTQzIn0uZ2x5cGhpY29uLWxpbms6YmVm
b3Jle2NvbnRlbnQ6IlxlMTQ0In0uZ2x5cGhpY29uLXBob25lOmJlZm9yZXtjb250ZW50OiJcZTE0
NSJ9LmdseXBoaWNvbi1wdXNocGluOmJlZm9yZXtjb250ZW50OiJcZTE0NiJ9LmdseXBoaWNvbi11
c2Q6YmVmb3Jle2NvbnRlbnQ6IlxlMTQ4In0uZ2x5cGhpY29uLWdicDpiZWZvcmV7Y29udGVudDoi
XGUxNDkifS5nbHlwaGljb24tc29ydDpiZWZvcmV7Y29udGVudDoiXGUxNTAifS5nbHlwaGljb24t
c29ydC1ieS1hbHBoYWJldDpiZWZvcmV7Y29udGVudDoiXGUxNTEifS5nbHlwaGljb24tc29ydC1i
eS1hbHBoYWJldC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTUyIn0uZ2x5cGhpY29uLXNvcnQtYnkt
b3JkZXI6YmVmb3Jle2NvbnRlbnQ6IlxlMTUzIn0uZ2x5cGhpY29uLXNvcnQtYnktb3JkZXItYWx0
OmJlZm9yZXtjb250ZW50OiJcZTE1NCJ9LmdseXBoaWNvbi1zb3J0LWJ5LWF0dHJpYnV0ZXM6YmVm
b3Jle2NvbnRlbnQ6IlxlMTU1In0uZ2x5cGhpY29uLXNvcnQtYnktYXR0cmlidXRlcy1hbHQ6YmVm
b3Jle2NvbnRlbnQ6IlxlMTU2In0uZ2x5cGhpY29uLXVuY2hlY2tlZDpiZWZvcmV7Y29udGVudDoi
XGUxNTcifS5nbHlwaGljb24tZXhwYW5kOmJlZm9yZXtjb250ZW50OiJcZTE1OCJ9LmdseXBoaWNv
bi1jb2xsYXBzZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZTE1OSJ9LmdseXBoaWNvbi1jb2xsYXBz
ZS11cDpiZWZvcmV7Y29udGVudDoiXGUxNjAifS5nbHlwaGljb24tbG9nLWluOmJlZm9yZXtjb250
ZW50OiJcZTE2MSJ9LmdseXBoaWNvbi1mbGFzaDpiZWZvcmV7Y29udGVudDoiXGUxNjIifS5nbHlw
aGljb24tbG9nLW91dDpiZWZvcmV7Y29udGVudDoiXGUxNjMifS5nbHlwaGljb24tbmV3LXdpbmRv
dzpiZWZvcmV7Y29udGVudDoiXGUxNjQifS5nbHlwaGljb24tcmVjb3JkOmJlZm9yZXtjb250ZW50
OiJcZTE2NSJ9LmdseXBoaWNvbi1zYXZlOmJlZm9yZXtjb250ZW50OiJcZTE2NiJ9LmdseXBoaWNv
bi1vcGVuOmJlZm9yZXtjb250ZW50OiJcZTE2NyJ9LmdseXBoaWNvbi1zYXZlZDpiZWZvcmV7Y29u
dGVudDoiXGUxNjgifS5nbHlwaGljb24taW1wb3J0OmJlZm9yZXtjb250ZW50OiJcZTE2OSJ9Lmds
eXBoaWNvbi1leHBvcnQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTcwIn0uZ2x5cGhpY29uLXNlbmQ6YmVm
b3Jle2NvbnRlbnQ6IlxlMTcxIn0uZ2x5cGhpY29uLWZsb3BweS1kaXNrOmJlZm9yZXtjb250ZW50
OiJcZTE3MiJ9LmdseXBoaWNvbi1mbG9wcHktc2F2ZWQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTczIn0u
Z2x5cGhpY29uLWZsb3BweS1yZW1vdmU6YmVmb3Jle2NvbnRlbnQ6IlxlMTc0In0uZ2x5cGhpY29u
LWZsb3BweS1zYXZlOmJlZm9yZXtjb250ZW50OiJcZTE3NSJ9LmdseXBoaWNvbi1mbG9wcHktb3Bl
bjpiZWZvcmV7Y29udGVudDoiXGUxNzYifS5nbHlwaGljb24tY3JlZGl0LWNhcmQ6YmVmb3Jle2Nv
bnRlbnQ6IlxlMTc3In0uZ2x5cGhpY29uLXRyYW5zZmVyOmJlZm9yZXtjb250ZW50OiJcZTE3OCJ9
LmdseXBoaWNvbi1jdXRsZXJ5OmJlZm9yZXtjb250ZW50OiJcZTE3OSJ9LmdseXBoaWNvbi1oZWFk
ZXI6YmVmb3Jle2NvbnRlbnQ6IlxlMTgwIn0uZ2x5cGhpY29uLWNvbXByZXNzZWQ6YmVmb3Jle2Nv
bnRlbnQ6IlxlMTgxIn0uZ2x5cGhpY29uLWVhcnBob25lOmJlZm9yZXtjb250ZW50OiJcZTE4MiJ9
LmdseXBoaWNvbi1waG9uZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTgzIn0uZ2x5cGhpY29uLXRv
d2VyOmJlZm9yZXtjb250ZW50OiJcZTE4NCJ9LmdseXBoaWNvbi1zdGF0czpiZWZvcmV7Y29udGVu
dDoiXGUxODUifS5nbHlwaGljb24tc2QtdmlkZW86YmVmb3Jle2NvbnRlbnQ6IlxlMTg2In0uZ2x5
cGhpY29uLWhkLXZpZGVvOmJlZm9yZXtjb250ZW50OiJcZTE4NyJ9LmdseXBoaWNvbi1zdWJ0aXRs
ZXM6YmVmb3Jle2NvbnRlbnQ6IlxlMTg4In0uZ2x5cGhpY29uLXNvdW5kLXN0ZXJlbzpiZWZvcmV7
Y29udGVudDoiXGUxODkifS5nbHlwaGljb24tc291bmQtZG9sYnk6YmVmb3Jle2NvbnRlbnQ6Ilxl
MTkwIn0uZ2x5cGhpY29uLXNvdW5kLTUtMTpiZWZvcmV7Y29udGVudDoiXGUxOTEifS5nbHlwaGlj
b24tc291bmQtNi0xOmJlZm9yZXtjb250ZW50OiJcZTE5MiJ9LmdseXBoaWNvbi1zb3VuZC03LTE6
YmVmb3Jle2NvbnRlbnQ6IlxlMTkzIn0uZ2x5cGhpY29uLWNvcHlyaWdodC1tYXJrOmJlZm9yZXtj
b250ZW50OiJcZTE5NCJ9LmdseXBoaWNvbi1yZWdpc3RyYXRpb24tbWFyazpiZWZvcmV7Y29udGVu
dDoiXGUxOTUifS5nbHlwaGljb24tY2xvdWQtZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxlMTk3
In0uZ2x5cGhpY29uLWNsb3VkLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGUxOTgifS5nbHlwaGlj
b24tdHJlZS1jb25pZmVyOmJlZm9yZXtjb250ZW50OiJcZTE5OSJ9LmdseXBoaWNvbi10cmVlLWRl
Y2lkdW91czpiZWZvcmV7Y29udGVudDoiXGUyMDAifS5nbHlwaGljb24tY2Q6YmVmb3Jle2NvbnRl
bnQ6IlxlMjAxIn0uZ2x5cGhpY29uLXNhdmUtZmlsZTpiZWZvcmV7Y29udGVudDoiXGUyMDIifS5n
bHlwaGljb24tb3Blbi1maWxlOmJlZm9yZXtjb250ZW50OiJcZTIwMyJ9LmdseXBoaWNvbi1sZXZl
bC11cDpiZWZvcmV7Y29udGVudDoiXGUyMDQifS5nbHlwaGljb24tY29weTpiZWZvcmV7Y29udGVu
dDoiXGUyMDUifS5nbHlwaGljb24tcGFzdGU6YmVmb3Jle2NvbnRlbnQ6IlxlMjA2In0uZ2x5cGhp
Y29uLWFsZXJ0OmJlZm9yZXtjb250ZW50OiJcZTIwOSJ9LmdseXBoaWNvbi1lcXVhbGl6ZXI6YmVm
b3Jle2NvbnRlbnQ6IlxlMjEwIn0uZ2x5cGhpY29uLWtpbmc6YmVmb3Jle2NvbnRlbnQ6IlxlMjEx
In0uZ2x5cGhpY29uLXF1ZWVuOmJlZm9yZXtjb250ZW50OiJcZTIxMiJ9LmdseXBoaWNvbi1wYXdu
OmJlZm9yZXtjb250ZW50OiJcZTIxMyJ9LmdseXBoaWNvbi1iaXNob3A6YmVmb3Jle2NvbnRlbnQ6
IlxlMjE0In0uZ2x5cGhpY29uLWtuaWdodDpiZWZvcmV7Y29udGVudDoiXGUyMTUifS5nbHlwaGlj
b24tYmFieS1mb3JtdWxhOmJlZm9yZXtjb250ZW50OiJcZTIxNiJ9LmdseXBoaWNvbi10ZW50OmJl
Zm9yZXtjb250ZW50OiJcMjZmYSJ9LmdseXBoaWNvbi1ibGFja2JvYXJkOmJlZm9yZXtjb250ZW50
OiJcZTIxOCJ9LmdseXBoaWNvbi1iZWQ6YmVmb3Jle2NvbnRlbnQ6IlxlMjE5In0uZ2x5cGhpY29u
LWFwcGxlOmJlZm9yZXtjb250ZW50OiJcZjhmZiJ9LmdseXBoaWNvbi1lcmFzZTpiZWZvcmV7Y29u
dGVudDoiXGUyMjEifS5nbHlwaGljb24taG91cmdsYXNzOmJlZm9yZXtjb250ZW50OiJcMjMxYiJ9
LmdseXBoaWNvbi1sYW1wOmJlZm9yZXtjb250ZW50OiJcZTIyMyJ9LmdseXBoaWNvbi1kdXBsaWNh
dGU6YmVmb3Jle2NvbnRlbnQ6IlxlMjI0In0uZ2x5cGhpY29uLXBpZ2d5LWJhbms6YmVmb3Jle2Nv
bnRlbnQ6IlxlMjI1In0uZ2x5cGhpY29uLXNjaXNzb3JzOmJlZm9yZXtjb250ZW50OiJcZTIyNiJ9
LmdseXBoaWNvbi1iaXRjb2luOmJlZm9yZXtjb250ZW50OiJcZTIyNyJ9LmdseXBoaWNvbi1idGM6
YmVmb3Jle2NvbnRlbnQ6IlxlMjI3In0uZ2x5cGhpY29uLXhidDpiZWZvcmV7Y29udGVudDoiXGUy
MjcifS5nbHlwaGljb24teWVuOmJlZm9yZXtjb250ZW50OiJcMDBhNSJ9LmdseXBoaWNvbi1qcHk6
YmVmb3Jle2NvbnRlbnQ6IlwwMGE1In0uZ2x5cGhpY29uLXJ1YmxlOmJlZm9yZXtjb250ZW50OiJc
MjBiZCJ9LmdseXBoaWNvbi1ydWI6YmVmb3Jle2NvbnRlbnQ6IlwyMGJkIn0uZ2x5cGhpY29uLXNj
YWxlOmJlZm9yZXtjb250ZW50OiJcZTIzMCJ9LmdseXBoaWNvbi1pY2UtbG9sbHk6YmVmb3Jle2Nv
bnRlbnQ6IlxlMjMxIn0uZ2x5cGhpY29uLWljZS1sb2xseS10YXN0ZWQ6YmVmb3Jle2NvbnRlbnQ6
IlxlMjMyIn0uZ2x5cGhpY29uLWVkdWNhdGlvbjpiZWZvcmV7Y29udGVudDoiXGUyMzMifS5nbHlw
aGljb24tb3B0aW9uLWhvcml6b250YWw6YmVmb3Jle2NvbnRlbnQ6IlxlMjM0In0uZ2x5cGhpY29u
LW9wdGlvbi12ZXJ0aWNhbDpiZWZvcmV7Y29udGVudDoiXGUyMzUifS5nbHlwaGljb24tbWVudS1o
YW1idXJnZXI6YmVmb3Jle2NvbnRlbnQ6IlxlMjM2In0uZ2x5cGhpY29uLW1vZGFsLXdpbmRvdzpi
ZWZvcmV7Y29udGVudDoiXGUyMzcifS5nbHlwaGljb24tb2lsOmJlZm9yZXtjb250ZW50OiJcZTIz
OCJ9LmdseXBoaWNvbi1ncmFpbjpiZWZvcmV7Y29udGVudDoiXGUyMzkifS5nbHlwaGljb24tc3Vu
Z2xhc3NlczpiZWZvcmV7Y29udGVudDoiXGUyNDAifS5nbHlwaGljb24tdGV4dC1zaXplOmJlZm9y
ZXtjb250ZW50OiJcZTI0MSJ9LmdseXBoaWNvbi10ZXh0LWNvbG9yOmJlZm9yZXtjb250ZW50OiJc
ZTI0MiJ9LmdseXBoaWNvbi10ZXh0LWJhY2tncm91bmQ6YmVmb3Jle2NvbnRlbnQ6IlxlMjQzIn0u
Z2x5cGhpY29uLW9iamVjdC1hbGlnbi10b3A6YmVmb3Jle2NvbnRlbnQ6IlxlMjQ0In0uZ2x5cGhp
Y29uLW9iamVjdC1hbGlnbi1ib3R0b206YmVmb3Jle2NvbnRlbnQ6IlxlMjQ1In0uZ2x5cGhpY29u
LW9iamVjdC1hbGlnbi1ob3Jpem9udGFsOmJlZm9yZXtjb250ZW50OiJcZTI0NiJ9LmdseXBoaWNv
bi1vYmplY3QtYWxpZ24tbGVmdDpiZWZvcmV7Y29udGVudDoiXGUyNDcifS5nbHlwaGljb24tb2Jq
ZWN0LWFsaWduLXZlcnRpY2FsOmJlZm9yZXtjb250ZW50OiJcZTI0OCJ9LmdseXBoaWNvbi1vYmpl
Y3QtYWxpZ24tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMjQ5In0uZ2x5cGhpY29uLXRyaWFuZ2xl
LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTI1MCJ9LmdseXBoaWNvbi10cmlhbmdsZS1sZWZ0OmJl
Zm9yZXtjb250ZW50OiJcZTI1MSJ9LmdseXBoaWNvbi10cmlhbmdsZS1ib3R0b206YmVmb3Jle2Nv
bnRlbnQ6IlxlMjUyIn0uZ2x5cGhpY29uLXRyaWFuZ2xlLXRvcDpiZWZvcmV7Y29udGVudDoiXGUy
NTMifS5nbHlwaGljb24tY29uc29sZTpiZWZvcmV7Y29udGVudDoiXGUyNTQifS5nbHlwaGljb24t
c3VwZXJzY3JpcHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMjU1In0uZ2x5cGhpY29uLXN1YnNjcmlwdDpi
ZWZvcmV7Y29udGVudDoiXGUyNTYifS5nbHlwaGljb24tbWVudS1sZWZ0OmJlZm9yZXtjb250ZW50
OiJcZTI1NyJ9LmdseXBoaWNvbi1tZW51LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZTI1OCJ9Lmds
eXBoaWNvbi1tZW51LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxlMjU5In0uZ2x5cGhpY29uLW1lbnUt
dXA6YmVmb3Jle2NvbnRlbnQ6IlxlMjYwIn0qey13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94
Oy1tb3otYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH06YWZ0ZXIs
OmJlZm9yZXstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9y
ZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9aHRtbHtmb250LXNpemU6MTBweDstd2Via2l0
LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKX1ib2R5e2ZvbnQtZmFtaWx5OiJIZWx2
ZXRpY2EgTmV1ZSIsSGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7bGlu
ZS1oZWlnaHQ6MS40Mjg1NzE0Mztjb2xvcjojMzMzO2JhY2tncm91bmQtY29sb3I6I2ZmZn1idXR0
b24saW5wdXQsc2VsZWN0LHRleHRhcmVhe2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOmlu
aGVyaXQ7bGluZS1oZWlnaHQ6aW5oZXJpdH1he2NvbG9yOiMzMzdhYjc7dGV4dC1kZWNvcmF0aW9u
Om5vbmV9YTpmb2N1cyxhOmhvdmVye2NvbG9yOiMyMzUyN2M7dGV4dC1kZWNvcmF0aW9uOnVuZGVy
bGluZX1hOmZvY3Vze291dGxpbmU6dGhpbiBkb3R0ZWQ7b3V0bGluZTo1cHggYXV0byAtd2Via2l0
LWZvY3VzLXJpbmctY29sb3I7b3V0bGluZS1vZmZzZXQ6LTJweH1maWd1cmV7bWFyZ2luOjB9aW1n
e3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uY2Fyb3VzZWwtaW5uZXI+Lml0ZW0+YT5pbWcsLmNhcm91
c2VsLWlubmVyPi5pdGVtPmltZywuaW1nLXJlc3BvbnNpdmUsLnRodW1ibmFpbCBhPmltZywudGh1
bWJuYWlsPmltZ3tkaXNwbGF5OmJsb2NrO21heC13aWR0aDoxMDAlO2hlaWdodDphdXRvfS5pbWct
cm91bmRlZHtib3JkZXItcmFkaXVzOjZweH0uaW1nLXRodW1ibmFpbHtkaXNwbGF5OmlubGluZS1i
bG9jazttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6YXV0bztwYWRkaW5nOjRweDtsaW5lLWhlaWdodDox
LjQyODU3MTQzO2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNkZGQ7Ym9y
ZGVyLXJhZGl1czo0cHg7LXdlYmtpdC10cmFuc2l0aW9uOmFsbCAuMnMgZWFzZS1pbi1vdXQ7LW8t
dHJhbnNpdGlvbjphbGwgLjJzIGVhc2UtaW4tb3V0O3RyYW5zaXRpb246YWxsIC4ycyBlYXNlLWlu
LW91dH0uaW1nLWNpcmNsZXtib3JkZXItcmFkaXVzOjUwJX1ocnttYXJnaW4tdG9wOjIwcHg7bWFy
Z2luLWJvdHRvbToyMHB4O2JvcmRlcjowO2JvcmRlci10b3A6MXB4IHNvbGlkICNlZWV9LnNyLW9u
bHl7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O2hlaWdodDoxcHg7cGFkZGluZzowO21hcmdp
bjotMXB4O292ZXJmbG93OmhpZGRlbjtjbGlwOnJlY3QoMCwwLDAsMCk7Ym9yZGVyOjB9LnNyLW9u
bHktZm9jdXNhYmxlOmFjdGl2ZSwuc3Itb25seS1mb2N1c2FibGU6Zm9jdXN7cG9zaXRpb246c3Rh
dGljO3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87bWFyZ2luOjA7b3ZlcmZsb3c6dmlzaWJsZTtjbGlw
OmF1dG99W3JvbGU9YnV0dG9uXXtjdXJzb3I6cG9pbnRlcn0uaDEsLmgyLC5oMywuaDQsLmg1LC5o
NixoMSxoMixoMyxoNCxoNSxoNntmb250LWZhbWlseTppbmhlcml0O2ZvbnQtd2VpZ2h0OjUwMDts
aW5lLWhlaWdodDoxLjE7Y29sb3I6aW5oZXJpdH0uaDEgLnNtYWxsLC5oMSBzbWFsbCwuaDIgLnNt
YWxsLC5oMiBzbWFsbCwuaDMgLnNtYWxsLC5oMyBzbWFsbCwuaDQgLnNtYWxsLC5oNCBzbWFsbCwu
aDUgLnNtYWxsLC5oNSBzbWFsbCwuaDYgLnNtYWxsLC5oNiBzbWFsbCxoMSAuc21hbGwsaDEgc21h
bGwsaDIgLnNtYWxsLGgyIHNtYWxsLGgzIC5zbWFsbCxoMyBzbWFsbCxoNCAuc21hbGwsaDQgc21h
bGwsaDUgLnNtYWxsLGg1IHNtYWxsLGg2IC5zbWFsbCxoNiBzbWFsbHtmb250LXdlaWdodDo0MDA7
bGluZS1oZWlnaHQ6MTtjb2xvcjojNzc3fS5oMSwuaDIsLmgzLGgxLGgyLGgze21hcmdpbi10b3A6
MjBweDttYXJnaW4tYm90dG9tOjEwcHh9LmgxIC5zbWFsbCwuaDEgc21hbGwsLmgyIC5zbWFsbCwu
aDIgc21hbGwsLmgzIC5zbWFsbCwuaDMgc21hbGwsaDEgLnNtYWxsLGgxIHNtYWxsLGgyIC5zbWFs
bCxoMiBzbWFsbCxoMyAuc21hbGwsaDMgc21hbGx7Zm9udC1zaXplOjY1JX0uaDQsLmg1LC5oNixo
NCxoNSxoNnttYXJnaW4tdG9wOjEwcHg7bWFyZ2luLWJvdHRvbToxMHB4fS5oNCAuc21hbGwsLmg0
IHNtYWxsLC5oNSAuc21hbGwsLmg1IHNtYWxsLC5oNiAuc21hbGwsLmg2IHNtYWxsLGg0IC5zbWFs
bCxoNCBzbWFsbCxoNSAuc21hbGwsaDUgc21hbGwsaDYgLnNtYWxsLGg2IHNtYWxse2ZvbnQtc2l6
ZTo3NSV9LmgxLGgxe2ZvbnQtc2l6ZTozNnB4fS5oMixoMntmb250LXNpemU6MzBweH0uaDMsaDN7
Zm9udC1zaXplOjI0cHh9Lmg0LGg0e2ZvbnQtc2l6ZToxOHB4fS5oNSxoNXtmb250LXNpemU6MTRw
eH0uaDYsaDZ7Zm9udC1zaXplOjEycHh9cHttYXJnaW46MCAwIDEwcHh9LmxlYWR7bWFyZ2luLWJv
dHRvbToyMHB4O2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjMwMDtsaW5lLWhlaWdodDoxLjR9
QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5sZWFke2ZvbnQtc2l6ZToyMXB4fX0uc21hbGwsc21h
bGx7Zm9udC1zaXplOjg1JX0ubWFyayxtYXJre3BhZGRpbmc6LjJlbTtiYWNrZ3JvdW5kLWNvbG9y
OiNmY2Y4ZTN9LnRleHQtbGVmdHt0ZXh0LWFsaWduOmxlZnR9LnRleHQtcmlnaHR7dGV4dC1hbGln
bjpyaWdodH0udGV4dC1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LnRleHQtanVzdGlmeXt0ZXh0
LWFsaWduOmp1c3RpZnl9LnRleHQtbm93cmFwe3doaXRlLXNwYWNlOm5vd3JhcH0udGV4dC1sb3dl
cmNhc2V7dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlfS50ZXh0LXVwcGVyY2FzZXt0ZXh0LXRyYW5z
Zm9ybTp1cHBlcmNhc2V9LnRleHQtY2FwaXRhbGl6ZXt0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXpl
fS50ZXh0LW11dGVke2NvbG9yOiM3Nzd9LnRleHQtcHJpbWFyeXtjb2xvcjojMzM3YWI3fWEudGV4
dC1wcmltYXJ5OmZvY3VzLGEudGV4dC1wcmltYXJ5OmhvdmVye2NvbG9yOiMyODYwOTB9LnRleHQt
c3VjY2Vzc3tjb2xvcjojM2M3NjNkfWEudGV4dC1zdWNjZXNzOmZvY3VzLGEudGV4dC1zdWNjZXNz
OmhvdmVye2NvbG9yOiMyYjU0MmN9LnRleHQtaW5mb3tjb2xvcjojMzE3MDhmfWEudGV4dC1pbmZv
OmZvY3VzLGEudGV4dC1pbmZvOmhvdmVye2NvbG9yOiMyNDUyNjl9LnRleHQtd2FybmluZ3tjb2xv
cjojOGE2ZDNifWEudGV4dC13YXJuaW5nOmZvY3VzLGEudGV4dC13YXJuaW5nOmhvdmVye2NvbG9y
OiM2NjUxMmN9LnRleHQtZGFuZ2Vye2NvbG9yOiNhOTQ0NDJ9YS50ZXh0LWRhbmdlcjpmb2N1cyxh
LnRleHQtZGFuZ2VyOmhvdmVye2NvbG9yOiM4NDM1MzR9LmJnLXByaW1hcnl7Y29sb3I6I2ZmZjti
YWNrZ3JvdW5kLWNvbG9yOiMzMzdhYjd9YS5iZy1wcmltYXJ5OmZvY3VzLGEuYmctcHJpbWFyeTpo
b3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMyODYwOTB9LmJnLXN1Y2Nlc3N7YmFja2dyb3VuZC1jb2xv
cjojZGZmMGQ4fWEuYmctc3VjY2Vzczpmb2N1cyxhLmJnLXN1Y2Nlc3M6aG92ZXJ7YmFja2dyb3Vu
ZC1jb2xvcjojYzFlMmIzfS5iZy1pbmZve2JhY2tncm91bmQtY29sb3I6I2Q5ZWRmN31hLmJnLWlu
Zm86Zm9jdXMsYS5iZy1pbmZvOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2FmZDllZX0uYmctd2Fy
bmluZ3tiYWNrZ3JvdW5kLWNvbG9yOiNmY2Y4ZTN9YS5iZy13YXJuaW5nOmZvY3VzLGEuYmctd2Fy
bmluZzpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmN2VjYjV9LmJnLWRhbmdlcntiYWNrZ3JvdW5k
LWNvbG9yOiNmMmRlZGV9YS5iZy1kYW5nZXI6Zm9jdXMsYS5iZy1kYW5nZXI6aG92ZXJ7YmFja2dy
b3VuZC1jb2xvcjojZTRiOWI5fS5wYWdlLWhlYWRlcntwYWRkaW5nLWJvdHRvbTo5cHg7bWFyZ2lu
OjQwcHggMCAyMHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNlZWV9b2wsdWx7bWFyZ2luLXRv
cDowO21hcmdpbi1ib3R0b206MTBweH1vbCBvbCxvbCB1bCx1bCBvbCx1bCB1bHttYXJnaW4tYm90
dG9tOjB9Lmxpc3QtdW5zdHlsZWR7cGFkZGluZy1sZWZ0OjA7bGlzdC1zdHlsZTpub25lfS5saXN0
LWlubGluZXtwYWRkaW5nLWxlZnQ6MDttYXJnaW4tbGVmdDotNXB4O2xpc3Qtc3R5bGU6bm9uZX0u
bGlzdC1pbmxpbmU+bGl7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZy1yaWdodDo1cHg7cGFk
ZGluZy1sZWZ0OjVweH1kbHttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbToyMHB4fWRkLGR0e2xp
bmUtaGVpZ2h0OjEuNDI4NTcxNDN9ZHR7Zm9udC13ZWlnaHQ6NzAwfWRke21hcmdpbi1sZWZ0OjB9
QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5kbC1ob3Jpem9udGFsIGR0e2Zsb2F0OmxlZnQ7d2lk
dGg6MTYwcHg7b3ZlcmZsb3c6aGlkZGVuO2NsZWFyOmxlZnQ7dGV4dC1hbGlnbjpyaWdodDt0ZXh0
LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uZGwtaG9yaXpvbnRhbCBkZHtt
YXJnaW4tbGVmdDoxODBweH19YWJicltkYXRhLW9yaWdpbmFsLXRpdGxlXSxhYmJyW3RpdGxlXXtj
dXJzb3I6aGVscDtib3JkZXItYm90dG9tOjFweCBkb3R0ZWQgIzc3N30uaW5pdGlhbGlzbXtmb250
LXNpemU6OTAlO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX1ibG9ja3F1b3Rle3BhZGRpbmc6MTBw
eCAyMHB4O21hcmdpbjowIDAgMjBweDtmb250LXNpemU6MTcuNXB4O2JvcmRlci1sZWZ0OjVweCBz
b2xpZCAjZWVlfWJsb2NrcXVvdGUgb2w6bGFzdC1jaGlsZCxibG9ja3F1b3RlIHA6bGFzdC1jaGls
ZCxibG9ja3F1b3RlIHVsOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfWJsb2NrcXVvdGUgLnNt
YWxsLGJsb2NrcXVvdGUgZm9vdGVyLGJsb2NrcXVvdGUgc21hbGx7ZGlzcGxheTpibG9jaztmb250
LXNpemU6ODAlO2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7Y29sb3I6Izc3N31ibG9ja3F1b3RlIC5z
bWFsbDpiZWZvcmUsYmxvY2txdW90ZSBmb290ZXI6YmVmb3JlLGJsb2NrcXVvdGUgc21hbGw6YmVm
b3Jle2NvbnRlbnQ6J1wyMDE0IFwwMEEwJ30uYmxvY2txdW90ZS1yZXZlcnNlLGJsb2NrcXVvdGUu
cHVsbC1yaWdodHtwYWRkaW5nLXJpZ2h0OjE1cHg7cGFkZGluZy1sZWZ0OjA7dGV4dC1hbGlnbjpy
aWdodDtib3JkZXItcmlnaHQ6NXB4IHNvbGlkICNlZWU7Ym9yZGVyLWxlZnQ6MH0uYmxvY2txdW90
ZS1yZXZlcnNlIC5zbWFsbDpiZWZvcmUsLmJsb2NrcXVvdGUtcmV2ZXJzZSBmb290ZXI6YmVmb3Jl
LC5ibG9ja3F1b3RlLXJldmVyc2Ugc21hbGw6YmVmb3JlLGJsb2NrcXVvdGUucHVsbC1yaWdodCAu
c21hbGw6YmVmb3JlLGJsb2NrcXVvdGUucHVsbC1yaWdodCBmb290ZXI6YmVmb3JlLGJsb2NrcXVv
dGUucHVsbC1yaWdodCBzbWFsbDpiZWZvcmV7Y29udGVudDonJ30uYmxvY2txdW90ZS1yZXZlcnNl
IC5zbWFsbDphZnRlciwuYmxvY2txdW90ZS1yZXZlcnNlIGZvb3RlcjphZnRlciwuYmxvY2txdW90
ZS1yZXZlcnNlIHNtYWxsOmFmdGVyLGJsb2NrcXVvdGUucHVsbC1yaWdodCAuc21hbGw6YWZ0ZXIs
YmxvY2txdW90ZS5wdWxsLXJpZ2h0IGZvb3RlcjphZnRlcixibG9ja3F1b3RlLnB1bGwtcmlnaHQg
c21hbGw6YWZ0ZXJ7Y29udGVudDonXDAwQTAgXDIwMTQnfWFkZHJlc3N7bWFyZ2luLWJvdHRvbToy
MHB4O2ZvbnQtc3R5bGU6bm9ybWFsO2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDN9Y29kZSxrYmQscHJl
LHNhbXB7Zm9udC1mYW1pbHk6TWVubG8sTW9uYWNvLENvbnNvbGFzLCJDb3VyaWVyIE5ldyIsbW9u
b3NwYWNlfWNvZGV7cGFkZGluZzoycHggNHB4O2ZvbnQtc2l6ZTo5MCU7Y29sb3I6I2M3MjU0ZTti
YWNrZ3JvdW5kLWNvbG9yOiNmOWYyZjQ7Ym9yZGVyLXJhZGl1czo0cHh9a2Jke3BhZGRpbmc6MnB4
IDRweDtmb250LXNpemU6OTAlO2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMzMzO2JvcmRl
ci1yYWRpdXM6M3B4Oy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIC0xcHggMCByZ2JhKDAsMCww
LC4yNSk7Ym94LXNoYWRvdzppbnNldCAwIC0xcHggMCByZ2JhKDAsMCwwLC4yNSl9a2JkIGtiZHtw
YWRkaW5nOjA7Zm9udC1zaXplOjEwMCU7Zm9udC13ZWlnaHQ6NzAwOy13ZWJraXQtYm94LXNoYWRv
dzpub25lO2JveC1zaGFkb3c6bm9uZX1wcmV7ZGlzcGxheTpibG9jaztwYWRkaW5nOjkuNXB4O21h
cmdpbjowIDAgMTBweDtmb250LXNpemU6MTNweDtsaW5lLWhlaWdodDoxLjQyODU3MTQzO2NvbG9y
OiMzMzM7d29yZC1icmVhazpicmVhay1hbGw7d29yZC13cmFwOmJyZWFrLXdvcmQ7YmFja2dyb3Vu
ZC1jb2xvcjojZjVmNWY1O2JvcmRlcjoxcHggc29saWQgI2NjYztib3JkZXItcmFkaXVzOjRweH1w
cmUgY29kZXtwYWRkaW5nOjA7Zm9udC1zaXplOmluaGVyaXQ7Y29sb3I6aW5oZXJpdDt3aGl0ZS1z
cGFjZTpwcmUtd3JhcDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6
MH0ucHJlLXNjcm9sbGFibGV7bWF4LWhlaWdodDozNDBweDtvdmVyZmxvdy15OnNjcm9sbH0uY29u
dGFpbmVye3BhZGRpbmctcmlnaHQ6MTVweDtwYWRkaW5nLWxlZnQ6MTVweDttYXJnaW4tcmlnaHQ6
YXV0bzttYXJnaW4tbGVmdDphdXRvfUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsuY29udGFpbmVy
e3dpZHRoOjc1MHB4fX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7LmNvbnRhaW5lcnt3aWR0aDo5
NzBweH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsuY29udGFpbmVye3dpZHRoOjExNzBweH19
LmNvbnRhaW5lci1mbHVpZHtwYWRkaW5nLXJpZ2h0OjE1cHg7cGFkZGluZy1sZWZ0OjE1cHg7bWFy
Z2luLXJpZ2h0OmF1dG87bWFyZ2luLWxlZnQ6YXV0b30ucm93e21hcmdpbi1yaWdodDotMTVweDtt
YXJnaW4tbGVmdDotMTVweH0uY29sLWxnLTEsLmNvbC1sZy0xMCwuY29sLWxnLTExLC5jb2wtbGct
MTIsLmNvbC1sZy0yLC5jb2wtbGctMywuY29sLWxnLTQsLmNvbC1sZy01LC5jb2wtbGctNiwuY29s
LWxnLTcsLmNvbC1sZy04LC5jb2wtbGctOSwuY29sLW1kLTEsLmNvbC1tZC0xMCwuY29sLW1kLTEx
LC5jb2wtbWQtMTIsLmNvbC1tZC0yLC5jb2wtbWQtMywuY29sLW1kLTQsLmNvbC1tZC01LC5jb2wt
bWQtNiwuY29sLW1kLTcsLmNvbC1tZC04LC5jb2wtbWQtOSwuY29sLXNtLTEsLmNvbC1zbS0xMCwu
Y29sLXNtLTExLC5jb2wtc20tMTIsLmNvbC1zbS0yLC5jb2wtc20tMywuY29sLXNtLTQsLmNvbC1z
bS01LC5jb2wtc20tNiwuY29sLXNtLTcsLmNvbC1zbS04LC5jb2wtc20tOSwuY29sLXhzLTEsLmNv
bC14cy0xMCwuY29sLXhzLTExLC5jb2wteHMtMTIsLmNvbC14cy0yLC5jb2wteHMtMywuY29sLXhz
LTQsLmNvbC14cy01LC5jb2wteHMtNiwuY29sLXhzLTcsLmNvbC14cy04LC5jb2wteHMtOXtwb3Np
dGlvbjpyZWxhdGl2ZTttaW4taGVpZ2h0OjFweDtwYWRkaW5nLXJpZ2h0OjE1cHg7cGFkZGluZy1s
ZWZ0OjE1cHh9LmNvbC14cy0xLC5jb2wteHMtMTAsLmNvbC14cy0xMSwuY29sLXhzLTEyLC5jb2wt
eHMtMiwuY29sLXhzLTMsLmNvbC14cy00LC5jb2wteHMtNSwuY29sLXhzLTYsLmNvbC14cy03LC5j
b2wteHMtOCwuY29sLXhzLTl7ZmxvYXQ6bGVmdH0uY29sLXhzLTEye3dpZHRoOjEwMCV9LmNvbC14
cy0xMXt3aWR0aDo5MS42NjY2NjY2NyV9LmNvbC14cy0xMHt3aWR0aDo4My4zMzMzMzMzMyV9LmNv
bC14cy05e3dpZHRoOjc1JX0uY29sLXhzLTh7d2lkdGg6NjYuNjY2NjY2NjclfS5jb2wteHMtN3t3
aWR0aDo1OC4zMzMzMzMzMyV9LmNvbC14cy02e3dpZHRoOjUwJX0uY29sLXhzLTV7d2lkdGg6NDEu
NjY2NjY2NjclfS5jb2wteHMtNHt3aWR0aDozMy4zMzMzMzMzMyV9LmNvbC14cy0ze3dpZHRoOjI1
JX0uY29sLXhzLTJ7d2lkdGg6MTYuNjY2NjY2NjclfS5jb2wteHMtMXt3aWR0aDo4LjMzMzMzMzMz
JX0uY29sLXhzLXB1bGwtMTJ7cmlnaHQ6MTAwJX0uY29sLXhzLXB1bGwtMTF7cmlnaHQ6OTEuNjY2
NjY2NjclfS5jb2wteHMtcHVsbC0xMHtyaWdodDo4My4zMzMzMzMzMyV9LmNvbC14cy1wdWxsLTl7
cmlnaHQ6NzUlfS5jb2wteHMtcHVsbC04e3JpZ2h0OjY2LjY2NjY2NjY3JX0uY29sLXhzLXB1bGwt
N3tyaWdodDo1OC4zMzMzMzMzMyV9LmNvbC14cy1wdWxsLTZ7cmlnaHQ6NTAlfS5jb2wteHMtcHVs
bC01e3JpZ2h0OjQxLjY2NjY2NjY3JX0uY29sLXhzLXB1bGwtNHtyaWdodDozMy4zMzMzMzMzMyV9
LmNvbC14cy1wdWxsLTN7cmlnaHQ6MjUlfS5jb2wteHMtcHVsbC0ye3JpZ2h0OjE2LjY2NjY2NjY3
JX0uY29sLXhzLXB1bGwtMXtyaWdodDo4LjMzMzMzMzMzJX0uY29sLXhzLXB1bGwtMHtyaWdodDph
dXRvfS5jb2wteHMtcHVzaC0xMntsZWZ0OjEwMCV9LmNvbC14cy1wdXNoLTExe2xlZnQ6OTEuNjY2
NjY2NjclfS5jb2wteHMtcHVzaC0xMHtsZWZ0OjgzLjMzMzMzMzMzJX0uY29sLXhzLXB1c2gtOXts
ZWZ0Ojc1JX0uY29sLXhzLXB1c2gtOHtsZWZ0OjY2LjY2NjY2NjY3JX0uY29sLXhzLXB1c2gtN3ts
ZWZ0OjU4LjMzMzMzMzMzJX0uY29sLXhzLXB1c2gtNntsZWZ0OjUwJX0uY29sLXhzLXB1c2gtNXts
ZWZ0OjQxLjY2NjY2NjY3JX0uY29sLXhzLXB1c2gtNHtsZWZ0OjMzLjMzMzMzMzMzJX0uY29sLXhz
LXB1c2gtM3tsZWZ0OjI1JX0uY29sLXhzLXB1c2gtMntsZWZ0OjE2LjY2NjY2NjY3JX0uY29sLXhz
LXB1c2gtMXtsZWZ0OjguMzMzMzMzMzMlfS5jb2wteHMtcHVzaC0we2xlZnQ6YXV0b30uY29sLXhz
LW9mZnNldC0xMnttYXJnaW4tbGVmdDoxMDAlfS5jb2wteHMtb2Zmc2V0LTExe21hcmdpbi1sZWZ0
OjkxLjY2NjY2NjY3JX0uY29sLXhzLW9mZnNldC0xMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzMyV9
LmNvbC14cy1vZmZzZXQtOXttYXJnaW4tbGVmdDo3NSV9LmNvbC14cy1vZmZzZXQtOHttYXJnaW4t
bGVmdDo2Ni42NjY2NjY2NyV9LmNvbC14cy1vZmZzZXQtN3ttYXJnaW4tbGVmdDo1OC4zMzMzMzMz
MyV9LmNvbC14cy1vZmZzZXQtNnttYXJnaW4tbGVmdDo1MCV9LmNvbC14cy1vZmZzZXQtNXttYXJn
aW4tbGVmdDo0MS42NjY2NjY2NyV9LmNvbC14cy1vZmZzZXQtNHttYXJnaW4tbGVmdDozMy4zMzMz
MzMzMyV9LmNvbC14cy1vZmZzZXQtM3ttYXJnaW4tbGVmdDoyNSV9LmNvbC14cy1vZmZzZXQtMntt
YXJnaW4tbGVmdDoxNi42NjY2NjY2NyV9LmNvbC14cy1vZmZzZXQtMXttYXJnaW4tbGVmdDo4LjMz
MzMzMzMzJX0uY29sLXhzLW9mZnNldC0we21hcmdpbi1sZWZ0OjB9QG1lZGlhIChtaW4td2lkdGg6
NzY4cHgpey5jb2wtc20tMSwuY29sLXNtLTEwLC5jb2wtc20tMTEsLmNvbC1zbS0xMiwuY29sLXNt
LTIsLmNvbC1zbS0zLC5jb2wtc20tNCwuY29sLXNtLTUsLmNvbC1zbS02LC5jb2wtc20tNywuY29s
LXNtLTgsLmNvbC1zbS05e2Zsb2F0OmxlZnR9LmNvbC1zbS0xMnt3aWR0aDoxMDAlfS5jb2wtc20t
MTF7d2lkdGg6OTEuNjY2NjY2NjclfS5jb2wtc20tMTB7d2lkdGg6ODMuMzMzMzMzMzMlfS5jb2wt
c20tOXt3aWR0aDo3NSV9LmNvbC1zbS04e3dpZHRoOjY2LjY2NjY2NjY3JX0uY29sLXNtLTd7d2lk
dGg6NTguMzMzMzMzMzMlfS5jb2wtc20tNnt3aWR0aDo1MCV9LmNvbC1zbS01e3dpZHRoOjQxLjY2
NjY2NjY3JX0uY29sLXNtLTR7d2lkdGg6MzMuMzMzMzMzMzMlfS5jb2wtc20tM3t3aWR0aDoyNSV9
LmNvbC1zbS0ye3dpZHRoOjE2LjY2NjY2NjY3JX0uY29sLXNtLTF7d2lkdGg6OC4zMzMzMzMzMyV9
LmNvbC1zbS1wdWxsLTEye3JpZ2h0OjEwMCV9LmNvbC1zbS1wdWxsLTExe3JpZ2h0OjkxLjY2NjY2
NjY3JX0uY29sLXNtLXB1bGwtMTB7cmlnaHQ6ODMuMzMzMzMzMzMlfS5jb2wtc20tcHVsbC05e3Jp
Z2h0Ojc1JX0uY29sLXNtLXB1bGwtOHtyaWdodDo2Ni42NjY2NjY2NyV9LmNvbC1zbS1wdWxsLTd7
cmlnaHQ6NTguMzMzMzMzMzMlfS5jb2wtc20tcHVsbC02e3JpZ2h0OjUwJX0uY29sLXNtLXB1bGwt
NXtyaWdodDo0MS42NjY2NjY2NyV9LmNvbC1zbS1wdWxsLTR7cmlnaHQ6MzMuMzMzMzMzMzMlfS5j
b2wtc20tcHVsbC0ze3JpZ2h0OjI1JX0uY29sLXNtLXB1bGwtMntyaWdodDoxNi42NjY2NjY2NyV9
LmNvbC1zbS1wdWxsLTF7cmlnaHQ6OC4zMzMzMzMzMyV9LmNvbC1zbS1wdWxsLTB7cmlnaHQ6YXV0
b30uY29sLXNtLXB1c2gtMTJ7bGVmdDoxMDAlfS5jb2wtc20tcHVzaC0xMXtsZWZ0OjkxLjY2NjY2
NjY3JX0uY29sLXNtLXB1c2gtMTB7bGVmdDo4My4zMzMzMzMzMyV9LmNvbC1zbS1wdXNoLTl7bGVm
dDo3NSV9LmNvbC1zbS1wdXNoLTh7bGVmdDo2Ni42NjY2NjY2NyV9LmNvbC1zbS1wdXNoLTd7bGVm
dDo1OC4zMzMzMzMzMyV9LmNvbC1zbS1wdXNoLTZ7bGVmdDo1MCV9LmNvbC1zbS1wdXNoLTV7bGVm
dDo0MS42NjY2NjY2NyV9LmNvbC1zbS1wdXNoLTR7bGVmdDozMy4zMzMzMzMzMyV9LmNvbC1zbS1w
dXNoLTN7bGVmdDoyNSV9LmNvbC1zbS1wdXNoLTJ7bGVmdDoxNi42NjY2NjY2NyV9LmNvbC1zbS1w
dXNoLTF7bGVmdDo4LjMzMzMzMzMzJX0uY29sLXNtLXB1c2gtMHtsZWZ0OmF1dG99LmNvbC1zbS1v
ZmZzZXQtMTJ7bWFyZ2luLWxlZnQ6MTAwJX0uY29sLXNtLW9mZnNldC0xMXttYXJnaW4tbGVmdDo5
MS42NjY2NjY2NyV9LmNvbC1zbS1vZmZzZXQtMTB7bWFyZ2luLWxlZnQ6ODMuMzMzMzMzMzMlfS5j
b2wtc20tb2Zmc2V0LTl7bWFyZ2luLWxlZnQ6NzUlfS5jb2wtc20tb2Zmc2V0LTh7bWFyZ2luLWxl
ZnQ6NjYuNjY2NjY2NjclfS5jb2wtc20tb2Zmc2V0LTd7bWFyZ2luLWxlZnQ6NTguMzMzMzMzMzMl
fS5jb2wtc20tb2Zmc2V0LTZ7bWFyZ2luLWxlZnQ6NTAlfS5jb2wtc20tb2Zmc2V0LTV7bWFyZ2lu
LWxlZnQ6NDEuNjY2NjY2NjclfS5jb2wtc20tb2Zmc2V0LTR7bWFyZ2luLWxlZnQ6MzMuMzMzMzMz
MzMlfS5jb2wtc20tb2Zmc2V0LTN7bWFyZ2luLWxlZnQ6MjUlfS5jb2wtc20tb2Zmc2V0LTJ7bWFy
Z2luLWxlZnQ6MTYuNjY2NjY2NjclfS5jb2wtc20tb2Zmc2V0LTF7bWFyZ2luLWxlZnQ6OC4zMzMz
MzMzMyV9LmNvbC1zbS1vZmZzZXQtMHttYXJnaW4tbGVmdDowfX1AbWVkaWEgKG1pbi13aWR0aDo5
OTJweCl7LmNvbC1tZC0xLC5jb2wtbWQtMTAsLmNvbC1tZC0xMSwuY29sLW1kLTEyLC5jb2wtbWQt
MiwuY29sLW1kLTMsLmNvbC1tZC00LC5jb2wtbWQtNSwuY29sLW1kLTYsLmNvbC1tZC03LC5jb2wt
bWQtOCwuY29sLW1kLTl7ZmxvYXQ6bGVmdH0uY29sLW1kLTEye3dpZHRoOjEwMCV9LmNvbC1tZC0x
MXt3aWR0aDo5MS42NjY2NjY2NyV9LmNvbC1tZC0xMHt3aWR0aDo4My4zMzMzMzMzMyV9LmNvbC1t
ZC05e3dpZHRoOjc1JX0uY29sLW1kLTh7d2lkdGg6NjYuNjY2NjY2NjclfS5jb2wtbWQtN3t3aWR0
aDo1OC4zMzMzMzMzMyV9LmNvbC1tZC02e3dpZHRoOjUwJX0uY29sLW1kLTV7d2lkdGg6NDEuNjY2
NjY2NjclfS5jb2wtbWQtNHt3aWR0aDozMy4zMzMzMzMzMyV9LmNvbC1tZC0ze3dpZHRoOjI1JX0u
Y29sLW1kLTJ7d2lkdGg6MTYuNjY2NjY2NjclfS5jb2wtbWQtMXt3aWR0aDo4LjMzMzMzMzMzJX0u
Y29sLW1kLXB1bGwtMTJ7cmlnaHQ6MTAwJX0uY29sLW1kLXB1bGwtMTF7cmlnaHQ6OTEuNjY2NjY2
NjclfS5jb2wtbWQtcHVsbC0xMHtyaWdodDo4My4zMzMzMzMzMyV9LmNvbC1tZC1wdWxsLTl7cmln
aHQ6NzUlfS5jb2wtbWQtcHVsbC04e3JpZ2h0OjY2LjY2NjY2NjY3JX0uY29sLW1kLXB1bGwtN3ty
aWdodDo1OC4zMzMzMzMzMyV9LmNvbC1tZC1wdWxsLTZ7cmlnaHQ6NTAlfS5jb2wtbWQtcHVsbC01
e3JpZ2h0OjQxLjY2NjY2NjY3JX0uY29sLW1kLXB1bGwtNHtyaWdodDozMy4zMzMzMzMzMyV9LmNv
bC1tZC1wdWxsLTN7cmlnaHQ6MjUlfS5jb2wtbWQtcHVsbC0ye3JpZ2h0OjE2LjY2NjY2NjY3JX0u
Y29sLW1kLXB1bGwtMXtyaWdodDo4LjMzMzMzMzMzJX0uY29sLW1kLXB1bGwtMHtyaWdodDphdXRv
fS5jb2wtbWQtcHVzaC0xMntsZWZ0OjEwMCV9LmNvbC1tZC1wdXNoLTExe2xlZnQ6OTEuNjY2NjY2
NjclfS5jb2wtbWQtcHVzaC0xMHtsZWZ0OjgzLjMzMzMzMzMzJX0uY29sLW1kLXB1c2gtOXtsZWZ0
Ojc1JX0uY29sLW1kLXB1c2gtOHtsZWZ0OjY2LjY2NjY2NjY3JX0uY29sLW1kLXB1c2gtN3tsZWZ0
OjU4LjMzMzMzMzMzJX0uY29sLW1kLXB1c2gtNntsZWZ0OjUwJX0uY29sLW1kLXB1c2gtNXtsZWZ0
OjQxLjY2NjY2NjY3JX0uY29sLW1kLXB1c2gtNHtsZWZ0OjMzLjMzMzMzMzMzJX0uY29sLW1kLXB1
c2gtM3tsZWZ0OjI1JX0uY29sLW1kLXB1c2gtMntsZWZ0OjE2LjY2NjY2NjY3JX0uY29sLW1kLXB1
c2gtMXtsZWZ0OjguMzMzMzMzMzMlfS5jb2wtbWQtcHVzaC0we2xlZnQ6YXV0b30uY29sLW1kLW9m
ZnNldC0xMnttYXJnaW4tbGVmdDoxMDAlfS5jb2wtbWQtb2Zmc2V0LTExe21hcmdpbi1sZWZ0Ojkx
LjY2NjY2NjY3JX0uY29sLW1kLW9mZnNldC0xMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzMyV9LmNv
bC1tZC1vZmZzZXQtOXttYXJnaW4tbGVmdDo3NSV9LmNvbC1tZC1vZmZzZXQtOHttYXJnaW4tbGVm
dDo2Ni42NjY2NjY2NyV9LmNvbC1tZC1vZmZzZXQtN3ttYXJnaW4tbGVmdDo1OC4zMzMzMzMzMyV9
LmNvbC1tZC1vZmZzZXQtNnttYXJnaW4tbGVmdDo1MCV9LmNvbC1tZC1vZmZzZXQtNXttYXJnaW4t
bGVmdDo0MS42NjY2NjY2NyV9LmNvbC1tZC1vZmZzZXQtNHttYXJnaW4tbGVmdDozMy4zMzMzMzMz
MyV9LmNvbC1tZC1vZmZzZXQtM3ttYXJnaW4tbGVmdDoyNSV9LmNvbC1tZC1vZmZzZXQtMnttYXJn
aW4tbGVmdDoxNi42NjY2NjY2NyV9LmNvbC1tZC1vZmZzZXQtMXttYXJnaW4tbGVmdDo4LjMzMzMz
MzMzJX0uY29sLW1kLW9mZnNldC0we21hcmdpbi1sZWZ0OjB9fUBtZWRpYSAobWluLXdpZHRoOjEy
MDBweCl7LmNvbC1sZy0xLC5jb2wtbGctMTAsLmNvbC1sZy0xMSwuY29sLWxnLTEyLC5jb2wtbGct
MiwuY29sLWxnLTMsLmNvbC1sZy00LC5jb2wtbGctNSwuY29sLWxnLTYsLmNvbC1sZy03LC5jb2wt
bGctOCwuY29sLWxnLTl7ZmxvYXQ6bGVmdH0uY29sLWxnLTEye3dpZHRoOjEwMCV9LmNvbC1sZy0x
MXt3aWR0aDo5MS42NjY2NjY2NyV9LmNvbC1sZy0xMHt3aWR0aDo4My4zMzMzMzMzMyV9LmNvbC1s
Zy05e3dpZHRoOjc1JX0uY29sLWxnLTh7d2lkdGg6NjYuNjY2NjY2NjclfS5jb2wtbGctN3t3aWR0
aDo1OC4zMzMzMzMzMyV9LmNvbC1sZy02e3dpZHRoOjUwJX0uY29sLWxnLTV7d2lkdGg6NDEuNjY2
NjY2NjclfS5jb2wtbGctNHt3aWR0aDozMy4zMzMzMzMzMyV9LmNvbC1sZy0ze3dpZHRoOjI1JX0u
Y29sLWxnLTJ7d2lkdGg6MTYuNjY2NjY2NjclfS5jb2wtbGctMXt3aWR0aDo4LjMzMzMzMzMzJX0u
Y29sLWxnLXB1bGwtMTJ7cmlnaHQ6MTAwJX0uY29sLWxnLXB1bGwtMTF7cmlnaHQ6OTEuNjY2NjY2
NjclfS5jb2wtbGctcHVsbC0xMHtyaWdodDo4My4zMzMzMzMzMyV9LmNvbC1sZy1wdWxsLTl7cmln
aHQ6NzUlfS5jb2wtbGctcHVsbC04e3JpZ2h0OjY2LjY2NjY2NjY3JX0uY29sLWxnLXB1bGwtN3ty
aWdodDo1OC4zMzMzMzMzMyV9LmNvbC1sZy1wdWxsLTZ7cmlnaHQ6NTAlfS5jb2wtbGctcHVsbC01
e3JpZ2h0OjQxLjY2NjY2NjY3JX0uY29sLWxnLXB1bGwtNHtyaWdodDozMy4zMzMzMzMzMyV9LmNv
bC1sZy1wdWxsLTN7cmlnaHQ6MjUlfS5jb2wtbGctcHVsbC0ye3JpZ2h0OjE2LjY2NjY2NjY3JX0u
Y29sLWxnLXB1bGwtMXtyaWdodDo4LjMzMzMzMzMzJX0uY29sLWxnLXB1bGwtMHtyaWdodDphdXRv
fS5jb2wtbGctcHVzaC0xMntsZWZ0OjEwMCV9LmNvbC1sZy1wdXNoLTExe2xlZnQ6OTEuNjY2NjY2
NjclfS5jb2wtbGctcHVzaC0xMHtsZWZ0OjgzLjMzMzMzMzMzJX0uY29sLWxnLXB1c2gtOXtsZWZ0
Ojc1JX0uY29sLWxnLXB1c2gtOHtsZWZ0OjY2LjY2NjY2NjY3JX0uY29sLWxnLXB1c2gtN3tsZWZ0
OjU4LjMzMzMzMzMzJX0uY29sLWxnLXB1c2gtNntsZWZ0OjUwJX0uY29sLWxnLXB1c2gtNXtsZWZ0
OjQxLjY2NjY2NjY3JX0uY29sLWxnLXB1c2gtNHtsZWZ0OjMzLjMzMzMzMzMzJX0uY29sLWxnLXB1
c2gtM3tsZWZ0OjI1JX0uY29sLWxnLXB1c2gtMntsZWZ0OjE2LjY2NjY2NjY3JX0uY29sLWxnLXB1
c2gtMXtsZWZ0OjguMzMzMzMzMzMlfS5jb2wtbGctcHVzaC0we2xlZnQ6YXV0b30uY29sLWxnLW9m
ZnNldC0xMnttYXJnaW4tbGVmdDoxMDAlfS5jb2wtbGctb2Zmc2V0LTExe21hcmdpbi1sZWZ0Ojkx
LjY2NjY2NjY3JX0uY29sLWxnLW9mZnNldC0xMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzMyV9LmNv
bC1sZy1vZmZzZXQtOXttYXJnaW4tbGVmdDo3NSV9LmNvbC1sZy1vZmZzZXQtOHttYXJnaW4tbGVm
dDo2Ni42NjY2NjY2NyV9LmNvbC1sZy1vZmZzZXQtN3ttYXJnaW4tbGVmdDo1OC4zMzMzMzMzMyV9
LmNvbC1sZy1vZmZzZXQtNnttYXJnaW4tbGVmdDo1MCV9LmNvbC1sZy1vZmZzZXQtNXttYXJnaW4t
bGVmdDo0MS42NjY2NjY2NyV9LmNvbC1sZy1vZmZzZXQtNHttYXJnaW4tbGVmdDozMy4zMzMzMzMz
MyV9LmNvbC1sZy1vZmZzZXQtM3ttYXJnaW4tbGVmdDoyNSV9LmNvbC1sZy1vZmZzZXQtMnttYXJn
aW4tbGVmdDoxNi42NjY2NjY2NyV9LmNvbC1sZy1vZmZzZXQtMXttYXJnaW4tbGVmdDo4LjMzMzMz
MzMzJX0uY29sLWxnLW9mZnNldC0we21hcmdpbi1sZWZ0OjB9fXRhYmxle2JhY2tncm91bmQtY29s
b3I6dHJhbnNwYXJlbnR9Y2FwdGlvbntwYWRkaW5nLXRvcDo4cHg7cGFkZGluZy1ib3R0b206OHB4
O2NvbG9yOiM3Nzc7dGV4dC1hbGlnbjpsZWZ0fXRoe3RleHQtYWxpZ246bGVmdH0udGFibGV7d2lk
dGg6MTAwJTttYXgtd2lkdGg6MTAwJTttYXJnaW4tYm90dG9tOjIwcHh9LnRhYmxlPnRib2R5PnRy
PnRkLC50YWJsZT50Ym9keT50cj50aCwudGFibGU+dGZvb3Q+dHI+dGQsLnRhYmxlPnRmb290PnRy
PnRoLC50YWJsZT50aGVhZD50cj50ZCwudGFibGU+dGhlYWQ+dHI+dGh7cGFkZGluZzo4cHg7bGlu
ZS1oZWlnaHQ6MS40Mjg1NzE0Mzt2ZXJ0aWNhbC1hbGlnbjp0b3A7Ym9yZGVyLXRvcDoxcHggc29s
aWQgI2RkZH0udGFibGU+dGhlYWQ+dHI+dGh7dmVydGljYWwtYWxpZ246Ym90dG9tO2JvcmRlci1i
b3R0b206MnB4IHNvbGlkICNkZGR9LnRhYmxlPmNhcHRpb24rdGhlYWQ+dHI6Zmlyc3QtY2hpbGQ+
dGQsLnRhYmxlPmNhcHRpb24rdGhlYWQ+dHI6Zmlyc3QtY2hpbGQ+dGgsLnRhYmxlPmNvbGdyb3Vw
K3RoZWFkPnRyOmZpcnN0LWNoaWxkPnRkLC50YWJsZT5jb2xncm91cCt0aGVhZD50cjpmaXJzdC1j
aGlsZD50aCwudGFibGU+dGhlYWQ6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQ+dGQsLnRhYmxl
PnRoZWFkOmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkPnRoe2JvcmRlci10b3A6MH0udGFibGU+
dGJvZHkrdGJvZHl7Ym9yZGVyLXRvcDoycHggc29saWQgI2RkZH0udGFibGUgLnRhYmxle2JhY2tn
cm91bmQtY29sb3I6I2ZmZn0udGFibGUtY29uZGVuc2VkPnRib2R5PnRyPnRkLC50YWJsZS1jb25k
ZW5zZWQ+dGJvZHk+dHI+dGgsLnRhYmxlLWNvbmRlbnNlZD50Zm9vdD50cj50ZCwudGFibGUtY29u
ZGVuc2VkPnRmb290PnRyPnRoLC50YWJsZS1jb25kZW5zZWQ+dGhlYWQ+dHI+dGQsLnRhYmxlLWNv
bmRlbnNlZD50aGVhZD50cj50aHtwYWRkaW5nOjVweH0udGFibGUtYm9yZGVyZWR7Ym9yZGVyOjFw
eCBzb2xpZCAjZGRkfS50YWJsZS1ib3JkZXJlZD50Ym9keT50cj50ZCwudGFibGUtYm9yZGVyZWQ+
dGJvZHk+dHI+dGgsLnRhYmxlLWJvcmRlcmVkPnRmb290PnRyPnRkLC50YWJsZS1ib3JkZXJlZD50
Zm9vdD50cj50aCwudGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI+dGQsLnRhYmxlLWJvcmRlcmVkPnRo
ZWFkPnRyPnRoe2JvcmRlcjoxcHggc29saWQgI2RkZH0udGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI+
dGQsLnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyPnRoe2JvcmRlci1ib3R0b20td2lkdGg6MnB4fS50
YWJsZS1zdHJpcGVkPnRib2R5PnRyOm50aC1vZi10eXBlKG9kZCl7YmFja2dyb3VuZC1jb2xvcjoj
ZjlmOWY5fS50YWJsZS1ob3Zlcj50Ym9keT50cjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1
ZjV9dGFibGUgY29sW2NsYXNzKj1jb2wtXXtwb3NpdGlvbjpzdGF0aWM7ZGlzcGxheTp0YWJsZS1j
b2x1bW47ZmxvYXQ6bm9uZX10YWJsZSB0ZFtjbGFzcyo9Y29sLV0sdGFibGUgdGhbY2xhc3MqPWNv
bC1de3Bvc2l0aW9uOnN0YXRpYztkaXNwbGF5OnRhYmxlLWNlbGw7ZmxvYXQ6bm9uZX0udGFibGU+
dGJvZHk+dHIuYWN0aXZlPnRkLC50YWJsZT50Ym9keT50ci5hY3RpdmU+dGgsLnRhYmxlPnRib2R5
PnRyPnRkLmFjdGl2ZSwudGFibGU+dGJvZHk+dHI+dGguYWN0aXZlLC50YWJsZT50Zm9vdD50ci5h
Y3RpdmU+dGQsLnRhYmxlPnRmb290PnRyLmFjdGl2ZT50aCwudGFibGU+dGZvb3Q+dHI+dGQuYWN0
aXZlLC50YWJsZT50Zm9vdD50cj50aC5hY3RpdmUsLnRhYmxlPnRoZWFkPnRyLmFjdGl2ZT50ZCwu
dGFibGU+dGhlYWQ+dHIuYWN0aXZlPnRoLC50YWJsZT50aGVhZD50cj50ZC5hY3RpdmUsLnRhYmxl
PnRoZWFkPnRyPnRoLmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjV9LnRhYmxlLWhvdmVy
PnRib2R5PnRyLmFjdGl2ZTpob3Zlcj50ZCwudGFibGUtaG92ZXI+dGJvZHk+dHIuYWN0aXZlOmhv
dmVyPnRoLC50YWJsZS1ob3Zlcj50Ym9keT50cjpob3Zlcj4uYWN0aXZlLC50YWJsZS1ob3Zlcj50
Ym9keT50cj50ZC5hY3RpdmU6aG92ZXIsLnRhYmxlLWhvdmVyPnRib2R5PnRyPnRoLmFjdGl2ZTpo
b3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTh9LnRhYmxlPnRib2R5PnRyLnN1Y2Nlc3M+dGQs
LnRhYmxlPnRib2R5PnRyLnN1Y2Nlc3M+dGgsLnRhYmxlPnRib2R5PnRyPnRkLnN1Y2Nlc3MsLnRh
YmxlPnRib2R5PnRyPnRoLnN1Y2Nlc3MsLnRhYmxlPnRmb290PnRyLnN1Y2Nlc3M+dGQsLnRhYmxl
PnRmb290PnRyLnN1Y2Nlc3M+dGgsLnRhYmxlPnRmb290PnRyPnRkLnN1Y2Nlc3MsLnRhYmxlPnRm
b290PnRyPnRoLnN1Y2Nlc3MsLnRhYmxlPnRoZWFkPnRyLnN1Y2Nlc3M+dGQsLnRhYmxlPnRoZWFk
PnRyLnN1Y2Nlc3M+dGgsLnRhYmxlPnRoZWFkPnRyPnRkLnN1Y2Nlc3MsLnRhYmxlPnRoZWFkPnRy
PnRoLnN1Y2Nlc3N7YmFja2dyb3VuZC1jb2xvcjojZGZmMGQ4fS50YWJsZS1ob3Zlcj50Ym9keT50
ci5zdWNjZXNzOmhvdmVyPnRkLC50YWJsZS1ob3Zlcj50Ym9keT50ci5zdWNjZXNzOmhvdmVyPnRo
LC50YWJsZS1ob3Zlcj50Ym9keT50cjpob3Zlcj4uc3VjY2VzcywudGFibGUtaG92ZXI+dGJvZHk+
dHI+dGQuc3VjY2Vzczpob3ZlciwudGFibGUtaG92ZXI+dGJvZHk+dHI+dGguc3VjY2Vzczpob3Zl
cntiYWNrZ3JvdW5kLWNvbG9yOiNkMGU5YzZ9LnRhYmxlPnRib2R5PnRyLmluZm8+dGQsLnRhYmxl
PnRib2R5PnRyLmluZm8+dGgsLnRhYmxlPnRib2R5PnRyPnRkLmluZm8sLnRhYmxlPnRib2R5PnRy
PnRoLmluZm8sLnRhYmxlPnRmb290PnRyLmluZm8+dGQsLnRhYmxlPnRmb290PnRyLmluZm8+dGgs
LnRhYmxlPnRmb290PnRyPnRkLmluZm8sLnRhYmxlPnRmb290PnRyPnRoLmluZm8sLnRhYmxlPnRo
ZWFkPnRyLmluZm8+dGQsLnRhYmxlPnRoZWFkPnRyLmluZm8+dGgsLnRhYmxlPnRoZWFkPnRyPnRk
LmluZm8sLnRhYmxlPnRoZWFkPnRyPnRoLmluZm97YmFja2dyb3VuZC1jb2xvcjojZDllZGY3fS50
YWJsZS1ob3Zlcj50Ym9keT50ci5pbmZvOmhvdmVyPnRkLC50YWJsZS1ob3Zlcj50Ym9keT50ci5p
bmZvOmhvdmVyPnRoLC50YWJsZS1ob3Zlcj50Ym9keT50cjpob3Zlcj4uaW5mbywudGFibGUtaG92
ZXI+dGJvZHk+dHI+dGQuaW5mbzpob3ZlciwudGFibGUtaG92ZXI+dGJvZHk+dHI+dGguaW5mbzpo
b3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNjNGUzZjN9LnRhYmxlPnRib2R5PnRyLndhcm5pbmc+dGQs
LnRhYmxlPnRib2R5PnRyLndhcm5pbmc+dGgsLnRhYmxlPnRib2R5PnRyPnRkLndhcm5pbmcsLnRh
YmxlPnRib2R5PnRyPnRoLndhcm5pbmcsLnRhYmxlPnRmb290PnRyLndhcm5pbmc+dGQsLnRhYmxl
PnRmb290PnRyLndhcm5pbmc+dGgsLnRhYmxlPnRmb290PnRyPnRkLndhcm5pbmcsLnRhYmxlPnRm
b290PnRyPnRoLndhcm5pbmcsLnRhYmxlPnRoZWFkPnRyLndhcm5pbmc+dGQsLnRhYmxlPnRoZWFk
PnRyLndhcm5pbmc+dGgsLnRhYmxlPnRoZWFkPnRyPnRkLndhcm5pbmcsLnRhYmxlPnRoZWFkPnRy
PnRoLndhcm5pbmd7YmFja2dyb3VuZC1jb2xvcjojZmNmOGUzfS50YWJsZS1ob3Zlcj50Ym9keT50
ci53YXJuaW5nOmhvdmVyPnRkLC50YWJsZS1ob3Zlcj50Ym9keT50ci53YXJuaW5nOmhvdmVyPnRo
LC50YWJsZS1ob3Zlcj50Ym9keT50cjpob3Zlcj4ud2FybmluZywudGFibGUtaG92ZXI+dGJvZHk+
dHI+dGQud2FybmluZzpob3ZlciwudGFibGUtaG92ZXI+dGJvZHk+dHI+dGgud2FybmluZzpob3Zl
cntiYWNrZ3JvdW5kLWNvbG9yOiNmYWYyY2N9LnRhYmxlPnRib2R5PnRyLmRhbmdlcj50ZCwudGFi
bGU+dGJvZHk+dHIuZGFuZ2VyPnRoLC50YWJsZT50Ym9keT50cj50ZC5kYW5nZXIsLnRhYmxlPnRi
b2R5PnRyPnRoLmRhbmdlciwudGFibGU+dGZvb3Q+dHIuZGFuZ2VyPnRkLC50YWJsZT50Zm9vdD50
ci5kYW5nZXI+dGgsLnRhYmxlPnRmb290PnRyPnRkLmRhbmdlciwudGFibGU+dGZvb3Q+dHI+dGgu
ZGFuZ2VyLC50YWJsZT50aGVhZD50ci5kYW5nZXI+dGQsLnRhYmxlPnRoZWFkPnRyLmRhbmdlcj50
aCwudGFibGU+dGhlYWQ+dHI+dGQuZGFuZ2VyLC50YWJsZT50aGVhZD50cj50aC5kYW5nZXJ7YmFj
a2dyb3VuZC1jb2xvcjojZjJkZWRlfS50YWJsZS1ob3Zlcj50Ym9keT50ci5kYW5nZXI6aG92ZXI+
dGQsLnRhYmxlLWhvdmVyPnRib2R5PnRyLmRhbmdlcjpob3Zlcj50aCwudGFibGUtaG92ZXI+dGJv
ZHk+dHI6aG92ZXI+LmRhbmdlciwudGFibGUtaG92ZXI+dGJvZHk+dHI+dGQuZGFuZ2VyOmhvdmVy
LC50YWJsZS1ob3Zlcj50Ym9keT50cj50aC5kYW5nZXI6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjoj
ZWJjY2NjfS50YWJsZS1yZXNwb25zaXZle21pbi1oZWlnaHQ6LjAxJTtvdmVyZmxvdy14OmF1dG99
QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo3NjdweCl7LnRhYmxlLXJlc3BvbnNpdmV7d2lk
dGg6MTAwJTttYXJnaW4tYm90dG9tOjE1cHg7b3ZlcmZsb3cteTpoaWRkZW47LW1zLW92ZXJmbG93
LXN0eWxlOi1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtib3JkZXI6MXB4IHNvbGlkICNkZGR9LnRh
YmxlLXJlc3BvbnNpdmU+LnRhYmxle21hcmdpbi1ib3R0b206MH0udGFibGUtcmVzcG9uc2l2ZT4u
dGFibGU+dGJvZHk+dHI+dGQsLnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlPnRib2R5PnRyPnRoLC50
YWJsZS1yZXNwb25zaXZlPi50YWJsZT50Zm9vdD50cj50ZCwudGFibGUtcmVzcG9uc2l2ZT4udGFi
bGU+dGZvb3Q+dHI+dGgsLnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlPnRoZWFkPnRyPnRkLC50YWJs
ZS1yZXNwb25zaXZlPi50YWJsZT50aGVhZD50cj50aHt3aGl0ZS1zcGFjZTpub3dyYXB9LnRhYmxl
LXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVke2JvcmRlcjowfS50YWJsZS1yZXNwb25zaXZlPi50
YWJsZS1ib3JkZXJlZD50Ym9keT50cj50ZDpmaXJzdC1jaGlsZCwudGFibGUtcmVzcG9uc2l2ZT4u
dGFibGUtYm9yZGVyZWQ+dGJvZHk+dHI+dGg6Zmlyc3QtY2hpbGQsLnRhYmxlLXJlc3BvbnNpdmU+
LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyPnRkOmZpcnN0LWNoaWxkLC50YWJsZS1yZXNwb25zaXZl
Pi50YWJsZS1ib3JkZXJlZD50Zm9vdD50cj50aDpmaXJzdC1jaGlsZCwudGFibGUtcmVzcG9uc2l2
ZT4udGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI+dGQ6Zmlyc3QtY2hpbGQsLnRhYmxlLXJlc3BvbnNp
dmU+LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyPnRoOmZpcnN0LWNoaWxke2JvcmRlci1sZWZ0OjB9
LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyPnRkOmxhc3QtY2hpbGQs
LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyPnRoOmxhc3QtY2hpbGQs
LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyPnRkOmxhc3QtY2hpbGQs
LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyPnRoOmxhc3QtY2hpbGQs
LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyPnRkOmxhc3QtY2hpbGQs
LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyPnRoOmxhc3QtY2hpbGR7
Ym9yZGVyLXJpZ2h0OjB9LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRy
Omxhc3QtY2hpbGQ+dGQsLnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRy
Omxhc3QtY2hpbGQ+dGgsLnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRy
Omxhc3QtY2hpbGQ+dGQsLnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRy
Omxhc3QtY2hpbGQ+dGh7Ym9yZGVyLWJvdHRvbTowfX1maWVsZHNldHttaW4td2lkdGg6MDtwYWRk
aW5nOjA7bWFyZ2luOjA7Ym9yZGVyOjB9bGVnZW5ke2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtw
YWRkaW5nOjA7bWFyZ2luLWJvdHRvbToyMHB4O2ZvbnQtc2l6ZToyMXB4O2xpbmUtaGVpZ2h0Omlu
aGVyaXQ7Y29sb3I6IzMzMztib3JkZXI6MDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1
fWxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO21heC13aWR0aDoxMDAlO21hcmdpbi1ib3R0b206
NXB4O2ZvbnQtd2VpZ2h0OjcwMH1pbnB1dFt0eXBlPXNlYXJjaF17LXdlYmtpdC1ib3gtc2l6aW5n
OmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXIt
Ym94fWlucHV0W3R5cGU9Y2hlY2tib3hdLGlucHV0W3R5cGU9cmFkaW9de21hcmdpbjo0cHggMCAw
O21hcmdpbi10b3A6MXB4XDk7bGluZS1oZWlnaHQ6bm9ybWFsfWlucHV0W3R5cGU9ZmlsZV17ZGlz
cGxheTpibG9ja31pbnB1dFt0eXBlPXJhbmdlXXtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCV9c2Vs
ZWN0W211bHRpcGxlXSxzZWxlY3Rbc2l6ZV17aGVpZ2h0OmF1dG99aW5wdXRbdHlwZT1maWxlXTpm
b2N1cyxpbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1cyxpbnB1dFt0eXBlPXJhZGlvXTpmb2N1c3tv
dXRsaW5lOnRoaW4gZG90dGVkO291dGxpbmU6NXB4IGF1dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNv
bG9yO291dGxpbmUtb2Zmc2V0Oi0ycHh9b3V0cHV0e2Rpc3BsYXk6YmxvY2s7cGFkZGluZy10b3A6
N3B4O2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7Y29sb3I6IzU1NX0uZm9y
bS1jb250cm9se2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MzRweDtwYWRkaW5nOjZw
eCAxMnB4O2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7Y29sb3I6IzU1NTti
YWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlcjoxcHggc29s
aWQgI2NjYztib3JkZXItcmFkaXVzOjRweDstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHgg
MXB4IHJnYmEoMCwwLDAsLjA3NSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAs
MCwuMDc1KTstd2Via2l0LXRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMs
LXdlYmtpdC1ib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7LW8tdHJhbnNpdGlvbjpib3JkZXIt
Y29sb3IgZWFzZS1pbi1vdXQgLjE1cyxib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7dHJhbnNp
dGlvbjpib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cyxib3gtc2hhZG93IGVhc2UtaW4tb3V0
IC4xNXN9LmZvcm0tY29udHJvbDpmb2N1c3tib3JkZXItY29sb3I6IzY2YWZlOTtvdXRsaW5lOjA7
LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpLDAgMCA4
cHggcmdiYSgxMDIsMTc1LDIzMywuNik7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgw
LDAsMCwuMDc1KSwwIDAgOHB4IHJnYmEoMTAyLDE3NSwyMzMsLjYpfS5mb3JtLWNvbnRyb2w6Oi1t
b3otcGxhY2Vob2xkZXJ7Y29sb3I6Izk5OTtvcGFjaXR5OjF9LmZvcm0tY29udHJvbDotbXMtaW5w
dXQtcGxhY2Vob2xkZXJ7Y29sb3I6Izk5OX0uZm9ybS1jb250cm9sOjotd2Via2l0LWlucHV0LXBs
YWNlaG9sZGVye2NvbG9yOiM5OTl9LmZvcm0tY29udHJvbFtkaXNhYmxlZF0sLmZvcm0tY29udHJv
bFtyZWFkb25seV0sZmllbGRzZXRbZGlzYWJsZWRdIC5mb3JtLWNvbnRyb2x7YmFja2dyb3VuZC1j
b2xvcjojZWVlO29wYWNpdHk6MX0uZm9ybS1jb250cm9sW2Rpc2FibGVkXSxmaWVsZHNldFtkaXNh
YmxlZF0gLmZvcm0tY29udHJvbHtjdXJzb3I6bm90LWFsbG93ZWR9dGV4dGFyZWEuZm9ybS1jb250
cm9se2hlaWdodDphdXRvfWlucHV0W3R5cGU9c2VhcmNoXXstd2Via2l0LWFwcGVhcmFuY2U6bm9u
ZX1AbWVkaWEgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOjApe2lu
cHV0W3R5cGU9ZGF0ZV0uZm9ybS1jb250cm9sLGlucHV0W3R5cGU9dGltZV0uZm9ybS1jb250cm9s
LGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxdLmZvcm0tY29udHJvbCxpbnB1dFt0eXBlPW1vbnRo
XS5mb3JtLWNvbnRyb2x7bGluZS1oZWlnaHQ6MzRweH0uaW5wdXQtZ3JvdXAtc20gaW5wdXRbdHlw
ZT1kYXRlXSwuaW5wdXQtZ3JvdXAtc20gaW5wdXRbdHlwZT10aW1lXSwuaW5wdXQtZ3JvdXAtc20g
aW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF0sLmlucHV0LWdyb3VwLXNtIGlucHV0W3R5cGU9bW9u
dGhdLGlucHV0W3R5cGU9ZGF0ZV0uaW5wdXQtc20saW5wdXRbdHlwZT10aW1lXS5pbnB1dC1zbSxp
bnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXS5pbnB1dC1zbSxpbnB1dFt0eXBlPW1vbnRoXS5pbnB1
dC1zbXtsaW5lLWhlaWdodDozMHB4fS5pbnB1dC1ncm91cC1sZyBpbnB1dFt0eXBlPWRhdGVdLC5p
bnB1dC1ncm91cC1sZyBpbnB1dFt0eXBlPXRpbWVdLC5pbnB1dC1ncm91cC1sZyBpbnB1dFt0eXBl
PWRhdGV0aW1lLWxvY2FsXSwuaW5wdXQtZ3JvdXAtbGcgaW5wdXRbdHlwZT1tb250aF0saW5wdXRb
dHlwZT1kYXRlXS5pbnB1dC1sZyxpbnB1dFt0eXBlPXRpbWVdLmlucHV0LWxnLGlucHV0W3R5cGU9
ZGF0ZXRpbWUtbG9jYWxdLmlucHV0LWxnLGlucHV0W3R5cGU9bW9udGhdLmlucHV0LWxne2xpbmUt
aGVpZ2h0OjQ2cHh9fS5mb3JtLWdyb3Vwe21hcmdpbi1ib3R0b206MTVweH0uY2hlY2tib3gsLnJh
ZGlve3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXRvcDoxMHB4O21hcmdp
bi1ib3R0b206MTBweH0uY2hlY2tib3ggbGFiZWwsLnJhZGlvIGxhYmVse21pbi1oZWlnaHQ6MjBw
eDtwYWRkaW5nLWxlZnQ6MjBweDttYXJnaW4tYm90dG9tOjA7Zm9udC13ZWlnaHQ6NDAwO2N1cnNv
cjpwb2ludGVyfS5jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSwuY2hlY2tib3gtaW5saW5l
IGlucHV0W3R5cGU9Y2hlY2tib3hdLC5yYWRpbyBpbnB1dFt0eXBlPXJhZGlvXSwucmFkaW8taW5s
aW5lIGlucHV0W3R5cGU9cmFkaW9de3Bvc2l0aW9uOmFic29sdXRlO21hcmdpbi10b3A6NHB4XDk7
bWFyZ2luLWxlZnQ6LTIwcHh9LmNoZWNrYm94Ky5jaGVja2JveCwucmFkaW8rLnJhZGlve21hcmdp
bi10b3A6LTVweH0uY2hlY2tib3gtaW5saW5lLC5yYWRpby1pbmxpbmV7cG9zaXRpb246cmVsYXRp
dmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZy1sZWZ0OjIwcHg7bWFyZ2luLWJvdHRvbTow
O2ZvbnQtd2VpZ2h0OjQwMDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Y3Vyc29yOnBvaW50ZXJ9LmNo
ZWNrYm94LWlubGluZSsuY2hlY2tib3gtaW5saW5lLC5yYWRpby1pbmxpbmUrLnJhZGlvLWlubGlu
ZXttYXJnaW4tdG9wOjA7bWFyZ2luLWxlZnQ6MTBweH1maWVsZHNldFtkaXNhYmxlZF0gaW5wdXRb
dHlwZT1jaGVja2JveF0sZmllbGRzZXRbZGlzYWJsZWRdIGlucHV0W3R5cGU9cmFkaW9dLGlucHV0
W3R5cGU9Y2hlY2tib3hdLmRpc2FibGVkLGlucHV0W3R5cGU9Y2hlY2tib3hdW2Rpc2FibGVkXSxp
bnB1dFt0eXBlPXJhZGlvXS5kaXNhYmxlZCxpbnB1dFt0eXBlPXJhZGlvXVtkaXNhYmxlZF17Y3Vy
c29yOm5vdC1hbGxvd2VkfS5jaGVja2JveC1pbmxpbmUuZGlzYWJsZWQsLnJhZGlvLWlubGluZS5k
aXNhYmxlZCxmaWVsZHNldFtkaXNhYmxlZF0gLmNoZWNrYm94LWlubGluZSxmaWVsZHNldFtkaXNh
YmxlZF0gLnJhZGlvLWlubGluZXtjdXJzb3I6bm90LWFsbG93ZWR9LmNoZWNrYm94LmRpc2FibGVk
IGxhYmVsLC5yYWRpby5kaXNhYmxlZCBsYWJlbCxmaWVsZHNldFtkaXNhYmxlZF0gLmNoZWNrYm94
IGxhYmVsLGZpZWxkc2V0W2Rpc2FibGVkXSAucmFkaW8gbGFiZWx7Y3Vyc29yOm5vdC1hbGxvd2Vk
fS5mb3JtLWNvbnRyb2wtc3RhdGlje21pbi1oZWlnaHQ6MzRweDtwYWRkaW5nLXRvcDo3cHg7cGFk
ZGluZy1ib3R0b206N3B4O21hcmdpbi1ib3R0b206MH0uZm9ybS1jb250cm9sLXN0YXRpYy5pbnB1
dC1sZywuZm9ybS1jb250cm9sLXN0YXRpYy5pbnB1dC1zbXtwYWRkaW5nLXJpZ2h0OjA7cGFkZGlu
Zy1sZWZ0OjB9LmlucHV0LXNte2hlaWdodDozMHB4O3BhZGRpbmc6NXB4IDEwcHg7Zm9udC1zaXpl
OjEycHg7bGluZS1oZWlnaHQ6MS41O2JvcmRlci1yYWRpdXM6M3B4fXNlbGVjdC5pbnB1dC1zbXto
ZWlnaHQ6MzBweDtsaW5lLWhlaWdodDozMHB4fXNlbGVjdFttdWx0aXBsZV0uaW5wdXQtc20sdGV4
dGFyZWEuaW5wdXQtc217aGVpZ2h0OmF1dG99LmZvcm0tZ3JvdXAtc20gLmZvcm0tY29udHJvbHto
ZWlnaHQ6MzBweDtwYWRkaW5nOjVweCAxMHB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjEu
NTtib3JkZXItcmFkaXVzOjNweH0uZm9ybS1ncm91cC1zbSBzZWxlY3QuZm9ybS1jb250cm9se2hl
aWdodDozMHB4O2xpbmUtaGVpZ2h0OjMwcHh9LmZvcm0tZ3JvdXAtc20gc2VsZWN0W211bHRpcGxl
XS5mb3JtLWNvbnRyb2wsLmZvcm0tZ3JvdXAtc20gdGV4dGFyZWEuZm9ybS1jb250cm9se2hlaWdo
dDphdXRvfS5mb3JtLWdyb3VwLXNtIC5mb3JtLWNvbnRyb2wtc3RhdGlje2hlaWdodDozMHB4O21p
bi1oZWlnaHQ6MzJweDtwYWRkaW5nOjZweCAxMHB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0
OjEuNX0uaW5wdXQtbGd7aGVpZ2h0OjQ2cHg7cGFkZGluZzoxMHB4IDE2cHg7Zm9udC1zaXplOjE4
cHg7bGluZS1oZWlnaHQ6MS4zMzMzMzMzO2JvcmRlci1yYWRpdXM6NnB4fXNlbGVjdC5pbnB1dC1s
Z3toZWlnaHQ6NDZweDtsaW5lLWhlaWdodDo0NnB4fXNlbGVjdFttdWx0aXBsZV0uaW5wdXQtbGcs
dGV4dGFyZWEuaW5wdXQtbGd7aGVpZ2h0OmF1dG99LmZvcm0tZ3JvdXAtbGcgLmZvcm0tY29udHJv
bHtoZWlnaHQ6NDZweDtwYWRkaW5nOjEwcHggMTZweDtmb250LXNpemU6MThweDtsaW5lLWhlaWdo
dDoxLjMzMzMzMzM7Ym9yZGVyLXJhZGl1czo2cHh9LmZvcm0tZ3JvdXAtbGcgc2VsZWN0LmZvcm0t
Y29udHJvbHtoZWlnaHQ6NDZweDtsaW5lLWhlaWdodDo0NnB4fS5mb3JtLWdyb3VwLWxnIHNlbGVj
dFttdWx0aXBsZV0uZm9ybS1jb250cm9sLC5mb3JtLWdyb3VwLWxnIHRleHRhcmVhLmZvcm0tY29u
dHJvbHtoZWlnaHQ6YXV0b30uZm9ybS1ncm91cC1sZyAuZm9ybS1jb250cm9sLXN0YXRpY3toZWln
aHQ6NDZweDttaW4taGVpZ2h0OjM4cHg7cGFkZGluZzoxMXB4IDE2cHg7Zm9udC1zaXplOjE4cHg7
bGluZS1oZWlnaHQ6MS4zMzMzMzMzfS5oYXMtZmVlZGJhY2t7cG9zaXRpb246cmVsYXRpdmV9Lmhh
cy1mZWVkYmFjayAuZm9ybS1jb250cm9se3BhZGRpbmctcmlnaHQ6NDIuNXB4fS5mb3JtLWNvbnRy
b2wtZmVlZGJhY2t7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDt6LWluZGV4OjI7ZGlz
cGxheTpibG9jazt3aWR0aDozNHB4O2hlaWdodDozNHB4O2xpbmUtaGVpZ2h0OjM0cHg7dGV4dC1h
bGlnbjpjZW50ZXI7cG9pbnRlci1ldmVudHM6bm9uZX0uZm9ybS1ncm91cC1sZyAuZm9ybS1jb250
cm9sKy5mb3JtLWNvbnRyb2wtZmVlZGJhY2ssLmlucHV0LWdyb3VwLWxnKy5mb3JtLWNvbnRyb2wt
ZmVlZGJhY2ssLmlucHV0LWxnKy5mb3JtLWNvbnRyb2wtZmVlZGJhY2t7d2lkdGg6NDZweDtoZWln
aHQ6NDZweDtsaW5lLWhlaWdodDo0NnB4fS5mb3JtLWdyb3VwLXNtIC5mb3JtLWNvbnRyb2wrLmZv
cm0tY29udHJvbC1mZWVkYmFjaywuaW5wdXQtZ3JvdXAtc20rLmZvcm0tY29udHJvbC1mZWVkYmFj
aywuaW5wdXQtc20rLmZvcm0tY29udHJvbC1mZWVkYmFja3t3aWR0aDozMHB4O2hlaWdodDozMHB4
O2xpbmUtaGVpZ2h0OjMwcHh9Lmhhcy1zdWNjZXNzIC5jaGVja2JveCwuaGFzLXN1Y2Nlc3MgLmNo
ZWNrYm94LWlubGluZSwuaGFzLXN1Y2Nlc3MgLmNvbnRyb2wtbGFiZWwsLmhhcy1zdWNjZXNzIC5o
ZWxwLWJsb2NrLC5oYXMtc3VjY2VzcyAucmFkaW8sLmhhcy1zdWNjZXNzIC5yYWRpby1pbmxpbmUs
Lmhhcy1zdWNjZXNzLmNoZWNrYm94IGxhYmVsLC5oYXMtc3VjY2Vzcy5jaGVja2JveC1pbmxpbmUg
bGFiZWwsLmhhcy1zdWNjZXNzLnJhZGlvIGxhYmVsLC5oYXMtc3VjY2Vzcy5yYWRpby1pbmxpbmUg
bGFiZWx7Y29sb3I6IzNjNzYzZH0uaGFzLXN1Y2Nlc3MgLmZvcm0tY29udHJvbHtib3JkZXItY29s
b3I6IzNjNzYzZDstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAs
LjA3NSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KX0uaGFzLXN1
Y2Nlc3MgLmZvcm0tY29udHJvbDpmb2N1c3tib3JkZXItY29sb3I6IzJiNTQyYzstd2Via2l0LWJv
eC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSksMCAwIDZweCAjNjdiMTY4
O2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSksMCAwIDZweCAjNjdi
MTY4fS5oYXMtc3VjY2VzcyAuaW5wdXQtZ3JvdXAtYWRkb257Y29sb3I6IzNjNzYzZDtiYWNrZ3Jv
dW5kLWNvbG9yOiNkZmYwZDg7Ym9yZGVyLWNvbG9yOiMzYzc2M2R9Lmhhcy1zdWNjZXNzIC5mb3Jt
LWNvbnRyb2wtZmVlZGJhY2t7Y29sb3I6IzNjNzYzZH0uaGFzLXdhcm5pbmcgLmNoZWNrYm94LC5o
YXMtd2FybmluZyAuY2hlY2tib3gtaW5saW5lLC5oYXMtd2FybmluZyAuY29udHJvbC1sYWJlbCwu
aGFzLXdhcm5pbmcgLmhlbHAtYmxvY2ssLmhhcy13YXJuaW5nIC5yYWRpbywuaGFzLXdhcm5pbmcg
LnJhZGlvLWlubGluZSwuaGFzLXdhcm5pbmcuY2hlY2tib3ggbGFiZWwsLmhhcy13YXJuaW5nLmNo
ZWNrYm94LWlubGluZSBsYWJlbCwuaGFzLXdhcm5pbmcucmFkaW8gbGFiZWwsLmhhcy13YXJuaW5n
LnJhZGlvLWlubGluZSBsYWJlbHtjb2xvcjojOGE2ZDNifS5oYXMtd2FybmluZyAuZm9ybS1jb250
cm9se2JvcmRlci1jb2xvcjojOGE2ZDNiOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAx
cHggcmdiYSgwLDAsMCwuMDc1KTtib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCww
LC4wNzUpfS5oYXMtd2FybmluZyAuZm9ybS1jb250cm9sOmZvY3Vze2JvcmRlci1jb2xvcjojNjY1
MTJjOy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KSww
IDAgNnB4ICNjMGExNmI7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1
KSwwIDAgNnB4ICNjMGExNmJ9Lmhhcy13YXJuaW5nIC5pbnB1dC1ncm91cC1hZGRvbntjb2xvcjoj
OGE2ZDNiO2JhY2tncm91bmQtY29sb3I6I2ZjZjhlMztib3JkZXItY29sb3I6IzhhNmQzYn0uaGFz
LXdhcm5pbmcgLmZvcm0tY29udHJvbC1mZWVkYmFja3tjb2xvcjojOGE2ZDNifS5oYXMtZXJyb3Ig
LmNoZWNrYm94LC5oYXMtZXJyb3IgLmNoZWNrYm94LWlubGluZSwuaGFzLWVycm9yIC5jb250cm9s
LWxhYmVsLC5oYXMtZXJyb3IgLmhlbHAtYmxvY2ssLmhhcy1lcnJvciAucmFkaW8sLmhhcy1lcnJv
ciAucmFkaW8taW5saW5lLC5oYXMtZXJyb3IuY2hlY2tib3ggbGFiZWwsLmhhcy1lcnJvci5jaGVj
a2JveC1pbmxpbmUgbGFiZWwsLmhhcy1lcnJvci5yYWRpbyBsYWJlbCwuaGFzLWVycm9yLnJhZGlv
LWlubGluZSBsYWJlbHtjb2xvcjojYTk0NDQyfS5oYXMtZXJyb3IgLmZvcm0tY29udHJvbHtib3Jk
ZXItY29sb3I6I2E5NDQ0Mjstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEo
MCwwLDAsLjA3NSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDc1KX0u
aGFzLWVycm9yIC5mb3JtLWNvbnRyb2w6Zm9jdXN7Ym9yZGVyLWNvbG9yOiM4NDM1MzQ7LXdlYmtp
dC1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpLDAgMCA2cHggI2Nl
ODQ4Mztib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNzUpLDAgMCA2cHgg
I2NlODQ4M30uaGFzLWVycm9yIC5pbnB1dC1ncm91cC1hZGRvbntjb2xvcjojYTk0NDQyO2JhY2tn
cm91bmQtY29sb3I6I2YyZGVkZTtib3JkZXItY29sb3I6I2E5NDQ0Mn0uaGFzLWVycm9yIC5mb3Jt
LWNvbnRyb2wtZmVlZGJhY2t7Y29sb3I6I2E5NDQ0Mn0uaGFzLWZlZWRiYWNrIGxhYmVsfi5mb3Jt
LWNvbnRyb2wtZmVlZGJhY2t7dG9wOjI1cHh9Lmhhcy1mZWVkYmFjayBsYWJlbC5zci1vbmx5fi5m
b3JtLWNvbnRyb2wtZmVlZGJhY2t7dG9wOjB9LmhlbHAtYmxvY2t7ZGlzcGxheTpibG9jazttYXJn
aW4tdG9wOjVweDttYXJnaW4tYm90dG9tOjEwcHg7Y29sb3I6IzczNzM3M31AbWVkaWEgKG1pbi13
aWR0aDo3NjhweCl7LmZvcm0taW5saW5lIC5mb3JtLWdyb3Vwe2Rpc3BsYXk6aW5saW5lLWJsb2Nr
O21hcmdpbi1ib3R0b206MDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmZvcm0taW5saW5lIC5mb3Jt
LWNvbnRyb2x7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6YXV0bzt2ZXJ0aWNhbC1hbGlnbjpt
aWRkbGV9LmZvcm0taW5saW5lIC5mb3JtLWNvbnRyb2wtc3RhdGlje2Rpc3BsYXk6aW5saW5lLWJs
b2NrfS5mb3JtLWlubGluZSAuaW5wdXQtZ3JvdXB7ZGlzcGxheTppbmxpbmUtdGFibGU7dmVydGlj
YWwtYWxpZ246bWlkZGxlfS5mb3JtLWlubGluZSAuaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbCwu
Zm9ybS1pbmxpbmUgLmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1hZGRvbiwuZm9ybS1pbmxpbmUg
LmlucHV0LWdyb3VwIC5pbnB1dC1ncm91cC1idG57d2lkdGg6YXV0b30uZm9ybS1pbmxpbmUgLmlu
cHV0LWdyb3VwPi5mb3JtLWNvbnRyb2x7d2lkdGg6MTAwJX0uZm9ybS1pbmxpbmUgLmNvbnRyb2wt
bGFiZWx7bWFyZ2luLWJvdHRvbTowO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uZm9ybS1pbmxpbmUg
LmNoZWNrYm94LC5mb3JtLWlubGluZSAucmFkaW97ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2lu
LXRvcDowO21hcmdpbi1ib3R0b206MDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmZvcm0taW5saW5l
IC5jaGVja2JveCBsYWJlbCwuZm9ybS1pbmxpbmUgLnJhZGlvIGxhYmVse3BhZGRpbmctbGVmdDow
fS5mb3JtLWlubGluZSAuY2hlY2tib3ggaW5wdXRbdHlwZT1jaGVja2JveF0sLmZvcm0taW5saW5l
IC5yYWRpbyBpbnB1dFt0eXBlPXJhZGlvXXtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW4tbGVmdDow
fS5mb3JtLWlubGluZSAuaGFzLWZlZWRiYWNrIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2t7dG9wOjB9
fS5mb3JtLWhvcml6b250YWwgLmNoZWNrYm94LC5mb3JtLWhvcml6b250YWwgLmNoZWNrYm94LWlu
bGluZSwuZm9ybS1ob3Jpem9udGFsIC5yYWRpbywuZm9ybS1ob3Jpem9udGFsIC5yYWRpby1pbmxp
bmV7cGFkZGluZy10b3A6N3B4O21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjB9LmZvcm0taG9y
aXpvbnRhbCAuY2hlY2tib3gsLmZvcm0taG9yaXpvbnRhbCAucmFkaW97bWluLWhlaWdodDoyN3B4
fS5mb3JtLWhvcml6b250YWwgLmZvcm0tZ3JvdXB7bWFyZ2luLXJpZ2h0Oi0xNXB4O21hcmdpbi1s
ZWZ0Oi0xNXB4fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsuZm9ybS1ob3Jpem9udGFsIC5jb250
cm9sLWxhYmVse3BhZGRpbmctdG9wOjdweDttYXJnaW4tYm90dG9tOjA7dGV4dC1hbGlnbjpyaWdo
dH19LmZvcm0taG9yaXpvbnRhbCAuaGFzLWZlZWRiYWNrIC5mb3JtLWNvbnRyb2wtZmVlZGJhY2t7
cmlnaHQ6MTVweH1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmZvcm0taG9yaXpvbnRhbCAuZm9y
bS1ncm91cC1sZyAuY29udHJvbC1sYWJlbHtwYWRkaW5nLXRvcDoxNC4zM3B4O2ZvbnQtc2l6ZTox
OHB4fX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmZvcm0taG9yaXpvbnRhbCAuZm9ybS1ncm91
cC1zbSAuY29udHJvbC1sYWJlbHtwYWRkaW5nLXRvcDo2cHg7Zm9udC1zaXplOjEycHh9fS5idG57
ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZzo2cHggMTJweDttYXJnaW4tYm90dG9tOjA7Zm9u
dC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7dGV4dC1h
bGlnbjpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTstbXMt
dG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbjt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uO2N1cnNv
cjpwb2ludGVyOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7
LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtiYWNrZ3JvdW5kLWltYWdlOm5v
bmU7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjRweH0uYnRuLmFj
dGl2ZS5mb2N1cywuYnRuLmFjdGl2ZTpmb2N1cywuYnRuLmZvY3VzLC5idG46YWN0aXZlLmZvY3Vz
LC5idG46YWN0aXZlOmZvY3VzLC5idG46Zm9jdXN7b3V0bGluZTp0aGluIGRvdHRlZDtvdXRsaW5l
OjVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcjtvdXRsaW5lLW9mZnNldDotMnB4fS5i
dG4uZm9jdXMsLmJ0bjpmb2N1cywuYnRuOmhvdmVye2NvbG9yOiMzMzM7dGV4dC1kZWNvcmF0aW9u
Om5vbmV9LmJ0bi5hY3RpdmUsLmJ0bjphY3RpdmV7YmFja2dyb3VuZC1pbWFnZTpub25lO291dGxp
bmU6MDstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAzcHggNXB4IHJnYmEoMCwwLDAsLjEyNSk7
Ym94LXNoYWRvdzppbnNldCAwIDNweCA1cHggcmdiYSgwLDAsMCwuMTI1KX0uYnRuLmRpc2FibGVk
LC5idG5bZGlzYWJsZWRdLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRue2N1cnNvcjpub3QtYWxsb3dl
ZDtmaWx0ZXI6YWxwaGEob3BhY2l0eT02NSk7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNo
YWRvdzpub25lO29wYWNpdHk6LjY1fWEuYnRuLmRpc2FibGVkLGZpZWxkc2V0W2Rpc2FibGVkXSBh
LmJ0bntwb2ludGVyLWV2ZW50czpub25lfS5idG4tZGVmYXVsdHtjb2xvcjojMzMzO2JhY2tncm91
bmQtY29sb3I6I2ZmZjtib3JkZXItY29sb3I6I2NjY30uYnRuLWRlZmF1bHQuZm9jdXMsLmJ0bi1k
ZWZhdWx0OmZvY3Vze2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjojZTZlNmU2O2JvcmRlci1j
b2xvcjojOGM4YzhjfS5idG4tZGVmYXVsdDpob3Zlcntjb2xvcjojMzMzO2JhY2tncm91bmQtY29s
b3I6I2U2ZTZlNjtib3JkZXItY29sb3I6I2FkYWRhZH0uYnRuLWRlZmF1bHQuYWN0aXZlLC5idG4t
ZGVmYXVsdDphY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tZGVmYXVsdHtjb2xvcjoj
MzMzO2JhY2tncm91bmQtY29sb3I6I2U2ZTZlNjtib3JkZXItY29sb3I6I2FkYWRhZH0uYnRuLWRl
ZmF1bHQuYWN0aXZlLmZvY3VzLC5idG4tZGVmYXVsdC5hY3RpdmU6Zm9jdXMsLmJ0bi1kZWZhdWx0
LmFjdGl2ZTpob3ZlciwuYnRuLWRlZmF1bHQ6YWN0aXZlLmZvY3VzLC5idG4tZGVmYXVsdDphY3Rp
dmU6Zm9jdXMsLmJ0bi1kZWZhdWx0OmFjdGl2ZTpob3Zlciwub3Blbj4uZHJvcGRvd24tdG9nZ2xl
LmJ0bi1kZWZhdWx0LmZvY3VzLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLWRlZmF1bHQ6Zm9j
dXMsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tZGVmYXVsdDpob3Zlcntjb2xvcjojMzMzO2Jh
Y2tncm91bmQtY29sb3I6I2Q0ZDRkNDtib3JkZXItY29sb3I6IzhjOGM4Y30uYnRuLWRlZmF1bHQu
YWN0aXZlLC5idG4tZGVmYXVsdDphY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4tZGVm
YXVsdHtiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LmJ0bi1kZWZhdWx0LmRpc2FibGVkLC5idG4tZGVm
YXVsdC5kaXNhYmxlZC5hY3RpdmUsLmJ0bi1kZWZhdWx0LmRpc2FibGVkLmZvY3VzLC5idG4tZGVm
YXVsdC5kaXNhYmxlZDphY3RpdmUsLmJ0bi1kZWZhdWx0LmRpc2FibGVkOmZvY3VzLC5idG4tZGVm
YXVsdC5kaXNhYmxlZDpob3ZlciwuYnRuLWRlZmF1bHRbZGlzYWJsZWRdLC5idG4tZGVmYXVsdFtk
aXNhYmxlZF0uYWN0aXZlLC5idG4tZGVmYXVsdFtkaXNhYmxlZF0uZm9jdXMsLmJ0bi1kZWZhdWx0
W2Rpc2FibGVkXTphY3RpdmUsLmJ0bi1kZWZhdWx0W2Rpc2FibGVkXTpmb2N1cywuYnRuLWRlZmF1
bHRbZGlzYWJsZWRdOmhvdmVyLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRlZmF1bHQsZmllbGRz
ZXRbZGlzYWJsZWRdIC5idG4tZGVmYXVsdC5hY3RpdmUsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4t
ZGVmYXVsdC5mb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kZWZhdWx0OmFjdGl2ZSxmaWVs
ZHNldFtkaXNhYmxlZF0gLmJ0bi1kZWZhdWx0OmZvY3VzLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRu
LWRlZmF1bHQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjojY2NjfS5i
dG4tZGVmYXVsdCAuYmFkZ2V7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMzMzN9LmJ0bi1w
cmltYXJ5e2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMzM3YWI3O2JvcmRlci1jb2xvcjoj
MmU2ZGE0fS5idG4tcHJpbWFyeS5mb2N1cywuYnRuLXByaW1hcnk6Zm9jdXN7Y29sb3I6I2ZmZjti
YWNrZ3JvdW5kLWNvbG9yOiMyODYwOTA7Ym9yZGVyLWNvbG9yOiMxMjJiNDB9LmJ0bi1wcmltYXJ5
OmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMjg2MDkwO2JvcmRlci1jb2xvcjoj
MjA0ZDc0fS5idG4tcHJpbWFyeS5hY3RpdmUsLmJ0bi1wcmltYXJ5OmFjdGl2ZSwub3Blbj4uZHJv
cGRvd24tdG9nZ2xlLmJ0bi1wcmltYXJ5e2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMjg2
MDkwO2JvcmRlci1jb2xvcjojMjA0ZDc0fS5idG4tcHJpbWFyeS5hY3RpdmUuZm9jdXMsLmJ0bi1w
cmltYXJ5LmFjdGl2ZTpmb2N1cywuYnRuLXByaW1hcnkuYWN0aXZlOmhvdmVyLC5idG4tcHJpbWFy
eTphY3RpdmUuZm9jdXMsLmJ0bi1wcmltYXJ5OmFjdGl2ZTpmb2N1cywuYnRuLXByaW1hcnk6YWN0
aXZlOmhvdmVyLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLXByaW1hcnkuZm9jdXMsLm9wZW4+
LmRyb3Bkb3duLXRvZ2dsZS5idG4tcHJpbWFyeTpmb2N1cywub3Blbj4uZHJvcGRvd24tdG9nZ2xl
LmJ0bi1wcmltYXJ5OmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMjA0ZDc0O2Jv
cmRlci1jb2xvcjojMTIyYjQwfS5idG4tcHJpbWFyeS5hY3RpdmUsLmJ0bi1wcmltYXJ5OmFjdGl2
ZSwub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1wcmltYXJ5e2JhY2tncm91bmQtaW1hZ2U6bm9u
ZX0uYnRuLXByaW1hcnkuZGlzYWJsZWQsLmJ0bi1wcmltYXJ5LmRpc2FibGVkLmFjdGl2ZSwuYnRu
LXByaW1hcnkuZGlzYWJsZWQuZm9jdXMsLmJ0bi1wcmltYXJ5LmRpc2FibGVkOmFjdGl2ZSwuYnRu
LXByaW1hcnkuZGlzYWJsZWQ6Zm9jdXMsLmJ0bi1wcmltYXJ5LmRpc2FibGVkOmhvdmVyLC5idG4t
cHJpbWFyeVtkaXNhYmxlZF0sLmJ0bi1wcmltYXJ5W2Rpc2FibGVkXS5hY3RpdmUsLmJ0bi1wcmlt
YXJ5W2Rpc2FibGVkXS5mb2N1cywuYnRuLXByaW1hcnlbZGlzYWJsZWRdOmFjdGl2ZSwuYnRuLXBy
aW1hcnlbZGlzYWJsZWRdOmZvY3VzLC5idG4tcHJpbWFyeVtkaXNhYmxlZF06aG92ZXIsZmllbGRz
ZXRbZGlzYWJsZWRdIC5idG4tcHJpbWFyeSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1wcmltYXJ5
LmFjdGl2ZSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1wcmltYXJ5LmZvY3VzLGZpZWxkc2V0W2Rp
c2FibGVkXSAuYnRuLXByaW1hcnk6YWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXByaW1h
cnk6Zm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tcHJpbWFyeTpob3ZlcntiYWNrZ3JvdW5k
LWNvbG9yOiMzMzdhYjc7Ym9yZGVyLWNvbG9yOiMyZTZkYTR9LmJ0bi1wcmltYXJ5IC5iYWRnZXtj
b2xvcjojMzM3YWI3O2JhY2tncm91bmQtY29sb3I6I2ZmZn0uYnRuLXN1Y2Nlc3N7Y29sb3I6I2Zm
ZjtiYWNrZ3JvdW5kLWNvbG9yOiM1Y2I4NWM7Ym9yZGVyLWNvbG9yOiM0Y2FlNGN9LmJ0bi1zdWNj
ZXNzLmZvY3VzLC5idG4tc3VjY2Vzczpmb2N1c3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6
IzQ0OWQ0NDtib3JkZXItY29sb3I6IzI1NTYyNX0uYnRuLXN1Y2Nlc3M6aG92ZXJ7Y29sb3I6I2Zm
ZjtiYWNrZ3JvdW5kLWNvbG9yOiM0NDlkNDQ7Ym9yZGVyLWNvbG9yOiMzOTg0Mzl9LmJ0bi1zdWNj
ZXNzLmFjdGl2ZSwuYnRuLXN1Y2Nlc3M6YWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRu
LXN1Y2Nlc3N7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiM0NDlkNDQ7Ym9yZGVyLWNvbG9y
OiMzOTg0Mzl9LmJ0bi1zdWNjZXNzLmFjdGl2ZS5mb2N1cywuYnRuLXN1Y2Nlc3MuYWN0aXZlOmZv
Y3VzLC5idG4tc3VjY2Vzcy5hY3RpdmU6aG92ZXIsLmJ0bi1zdWNjZXNzOmFjdGl2ZS5mb2N1cywu
YnRuLXN1Y2Nlc3M6YWN0aXZlOmZvY3VzLC5idG4tc3VjY2VzczphY3RpdmU6aG92ZXIsLm9wZW4+
LmRyb3Bkb3duLXRvZ2dsZS5idG4tc3VjY2Vzcy5mb2N1cywub3Blbj4uZHJvcGRvd24tdG9nZ2xl
LmJ0bi1zdWNjZXNzOmZvY3VzLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLXN1Y2Nlc3M6aG92
ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMzOTg0Mzk7Ym9yZGVyLWNvbG9yOiMyNTU2
MjV9LmJ0bi1zdWNjZXNzLmFjdGl2ZSwuYnRuLXN1Y2Nlc3M6YWN0aXZlLC5vcGVuPi5kcm9wZG93
bi10b2dnbGUuYnRuLXN1Y2Nlc3N7YmFja2dyb3VuZC1pbWFnZTpub25lfS5idG4tc3VjY2Vzcy5k
aXNhYmxlZCwuYnRuLXN1Y2Nlc3MuZGlzYWJsZWQuYWN0aXZlLC5idG4tc3VjY2Vzcy5kaXNhYmxl
ZC5mb2N1cywuYnRuLXN1Y2Nlc3MuZGlzYWJsZWQ6YWN0aXZlLC5idG4tc3VjY2Vzcy5kaXNhYmxl
ZDpmb2N1cywuYnRuLXN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsLmJ0bi1zdWNjZXNzW2Rpc2FibGVk
XSwuYnRuLXN1Y2Nlc3NbZGlzYWJsZWRdLmFjdGl2ZSwuYnRuLXN1Y2Nlc3NbZGlzYWJsZWRdLmZv
Y3VzLC5idG4tc3VjY2Vzc1tkaXNhYmxlZF06YWN0aXZlLC5idG4tc3VjY2Vzc1tkaXNhYmxlZF06
Zm9jdXMsLmJ0bi1zdWNjZXNzW2Rpc2FibGVkXTpob3ZlcixmaWVsZHNldFtkaXNhYmxlZF0gLmJ0
bi1zdWNjZXNzLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXN1Y2Nlc3MuYWN0aXZlLGZpZWxkc2V0
W2Rpc2FibGVkXSAuYnRuLXN1Y2Nlc3MuZm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tc3Vj
Y2VzczphY3RpdmUsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tc3VjY2Vzczpmb2N1cyxmaWVsZHNl
dFtkaXNhYmxlZF0gLmJ0bi1zdWNjZXNzOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzVjYjg1Yzti
b3JkZXItY29sb3I6IzRjYWU0Y30uYnRuLXN1Y2Nlc3MgLmJhZGdle2NvbG9yOiM1Y2I4NWM7YmFj
a2dyb3VuZC1jb2xvcjojZmZmfS5idG4taW5mb3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6
IzViYzBkZTtib3JkZXItY29sb3I6IzQ2YjhkYX0uYnRuLWluZm8uZm9jdXMsLmJ0bi1pbmZvOmZv
Y3Vze2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMzFiMGQ1O2JvcmRlci1jb2xvcjojMWI2
ZDg1fS5idG4taW5mbzpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzMxYjBkNTti
b3JkZXItY29sb3I6IzI2OWFiY30uYnRuLWluZm8uYWN0aXZlLC5idG4taW5mbzphY3RpdmUsLm9w
ZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4taW5mb3tjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6
IzMxYjBkNTtib3JkZXItY29sb3I6IzI2OWFiY30uYnRuLWluZm8uYWN0aXZlLmZvY3VzLC5idG4t
aW5mby5hY3RpdmU6Zm9jdXMsLmJ0bi1pbmZvLmFjdGl2ZTpob3ZlciwuYnRuLWluZm86YWN0aXZl
LmZvY3VzLC5idG4taW5mbzphY3RpdmU6Zm9jdXMsLmJ0bi1pbmZvOmFjdGl2ZTpob3Zlciwub3Bl
bj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi1pbmZvLmZvY3VzLC5vcGVuPi5kcm9wZG93bi10b2dnbGUu
YnRuLWluZm86Zm9jdXMsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4taW5mbzpob3Zlcntjb2xv
cjojZmZmO2JhY2tncm91bmQtY29sb3I6IzI2OWFiYztib3JkZXItY29sb3I6IzFiNmQ4NX0uYnRu
LWluZm8uYWN0aXZlLC5idG4taW5mbzphY3RpdmUsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4t
aW5mb3tiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LmJ0bi1pbmZvLmRpc2FibGVkLC5idG4taW5mby5k
aXNhYmxlZC5hY3RpdmUsLmJ0bi1pbmZvLmRpc2FibGVkLmZvY3VzLC5idG4taW5mby5kaXNhYmxl
ZDphY3RpdmUsLmJ0bi1pbmZvLmRpc2FibGVkOmZvY3VzLC5idG4taW5mby5kaXNhYmxlZDpob3Zl
ciwuYnRuLWluZm9bZGlzYWJsZWRdLC5idG4taW5mb1tkaXNhYmxlZF0uYWN0aXZlLC5idG4taW5m
b1tkaXNhYmxlZF0uZm9jdXMsLmJ0bi1pbmZvW2Rpc2FibGVkXTphY3RpdmUsLmJ0bi1pbmZvW2Rp
c2FibGVkXTpmb2N1cywuYnRuLWluZm9bZGlzYWJsZWRdOmhvdmVyLGZpZWxkc2V0W2Rpc2FibGVk
XSAuYnRuLWluZm8sZmllbGRzZXRbZGlzYWJsZWRdIC5idG4taW5mby5hY3RpdmUsZmllbGRzZXRb
ZGlzYWJsZWRdIC5idG4taW5mby5mb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1pbmZvOmFj
dGl2ZSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1pbmZvOmZvY3VzLGZpZWxkc2V0W2Rpc2FibGVk
XSAuYnRuLWluZm86aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojNWJjMGRlO2JvcmRlci1jb2xvcjoj
NDZiOGRhfS5idG4taW5mbyAuYmFkZ2V7Y29sb3I6IzViYzBkZTtiYWNrZ3JvdW5kLWNvbG9yOiNm
ZmZ9LmJ0bi13YXJuaW5ne2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojZjBhZDRlO2JvcmRl
ci1jb2xvcjojZWVhMjM2fS5idG4td2FybmluZy5mb2N1cywuYnRuLXdhcm5pbmc6Zm9jdXN7Y29s
b3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiNlYzk3MWY7Ym9yZGVyLWNvbG9yOiM5ODVmMGR9LmJ0
bi13YXJuaW5nOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojZWM5NzFmO2JvcmRl
ci1jb2xvcjojZDU4NTEyfS5idG4td2FybmluZy5hY3RpdmUsLmJ0bi13YXJuaW5nOmFjdGl2ZSwu
b3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi13YXJuaW5ne2NvbG9yOiNmZmY7YmFja2dyb3VuZC1j
b2xvcjojZWM5NzFmO2JvcmRlci1jb2xvcjojZDU4NTEyfS5idG4td2FybmluZy5hY3RpdmUuZm9j
dXMsLmJ0bi13YXJuaW5nLmFjdGl2ZTpmb2N1cywuYnRuLXdhcm5pbmcuYWN0aXZlOmhvdmVyLC5i
dG4td2FybmluZzphY3RpdmUuZm9jdXMsLmJ0bi13YXJuaW5nOmFjdGl2ZTpmb2N1cywuYnRuLXdh
cm5pbmc6YWN0aXZlOmhvdmVyLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLXdhcm5pbmcuZm9j
dXMsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4td2FybmluZzpmb2N1cywub3Blbj4uZHJvcGRv
d24tdG9nZ2xlLmJ0bi13YXJuaW5nOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjoj
ZDU4NTEyO2JvcmRlci1jb2xvcjojOTg1ZjBkfS5idG4td2FybmluZy5hY3RpdmUsLmJ0bi13YXJu
aW5nOmFjdGl2ZSwub3Blbj4uZHJvcGRvd24tdG9nZ2xlLmJ0bi13YXJuaW5ne2JhY2tncm91bmQt
aW1hZ2U6bm9uZX0uYnRuLXdhcm5pbmcuZGlzYWJsZWQsLmJ0bi13YXJuaW5nLmRpc2FibGVkLmFj
dGl2ZSwuYnRuLXdhcm5pbmcuZGlzYWJsZWQuZm9jdXMsLmJ0bi13YXJuaW5nLmRpc2FibGVkOmFj
dGl2ZSwuYnRuLXdhcm5pbmcuZGlzYWJsZWQ6Zm9jdXMsLmJ0bi13YXJuaW5nLmRpc2FibGVkOmhv
dmVyLC5idG4td2FybmluZ1tkaXNhYmxlZF0sLmJ0bi13YXJuaW5nW2Rpc2FibGVkXS5hY3RpdmUs
LmJ0bi13YXJuaW5nW2Rpc2FibGVkXS5mb2N1cywuYnRuLXdhcm5pbmdbZGlzYWJsZWRdOmFjdGl2
ZSwuYnRuLXdhcm5pbmdbZGlzYWJsZWRdOmZvY3VzLC5idG4td2FybmluZ1tkaXNhYmxlZF06aG92
ZXIsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4td2FybmluZyxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0
bi13YXJuaW5nLmFjdGl2ZSxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi13YXJuaW5nLmZvY3VzLGZp
ZWxkc2V0W2Rpc2FibGVkXSAuYnRuLXdhcm5pbmc6YWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAu
YnRuLXdhcm5pbmc6Zm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4td2FybmluZzpob3Zlcnti
YWNrZ3JvdW5kLWNvbG9yOiNmMGFkNGU7Ym9yZGVyLWNvbG9yOiNlZWEyMzZ9LmJ0bi13YXJuaW5n
IC5iYWRnZXtjb2xvcjojZjBhZDRlO2JhY2tncm91bmQtY29sb3I6I2ZmZn0uYnRuLWRhbmdlcntj
b2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6I2Q5NTM0Zjtib3JkZXItY29sb3I6I2Q0M2YzYX0u
YnRuLWRhbmdlci5mb2N1cywuYnRuLWRhbmdlcjpmb2N1c3tjb2xvcjojZmZmO2JhY2tncm91bmQt
Y29sb3I6I2M5MzAyYztib3JkZXItY29sb3I6Izc2MWMxOX0uYnRuLWRhbmdlcjpob3Zlcntjb2xv
cjojZmZmO2JhY2tncm91bmQtY29sb3I6I2M5MzAyYztib3JkZXItY29sb3I6I2FjMjkyNX0uYnRu
LWRhbmdlci5hY3RpdmUsLmJ0bi1kYW5nZXI6YWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUu
YnRuLWRhbmdlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6I2M5MzAyYztib3JkZXItY29s
b3I6I2FjMjkyNX0uYnRuLWRhbmdlci5hY3RpdmUuZm9jdXMsLmJ0bi1kYW5nZXIuYWN0aXZlOmZv
Y3VzLC5idG4tZGFuZ2VyLmFjdGl2ZTpob3ZlciwuYnRuLWRhbmdlcjphY3RpdmUuZm9jdXMsLmJ0
bi1kYW5nZXI6YWN0aXZlOmZvY3VzLC5idG4tZGFuZ2VyOmFjdGl2ZTpob3Zlciwub3Blbj4uZHJv
cGRvd24tdG9nZ2xlLmJ0bi1kYW5nZXIuZm9jdXMsLm9wZW4+LmRyb3Bkb3duLXRvZ2dsZS5idG4t
ZGFuZ2VyOmZvY3VzLC5vcGVuPi5kcm9wZG93bi10b2dnbGUuYnRuLWRhbmdlcjpob3Zlcntjb2xv
cjojZmZmO2JhY2tncm91bmQtY29sb3I6I2FjMjkyNTtib3JkZXItY29sb3I6Izc2MWMxOX0uYnRu
LWRhbmdlci5hY3RpdmUsLmJ0bi1kYW5nZXI6YWN0aXZlLC5vcGVuPi5kcm9wZG93bi10b2dnbGUu
YnRuLWRhbmdlcntiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LmJ0bi1kYW5nZXIuZGlzYWJsZWQsLmJ0
bi1kYW5nZXIuZGlzYWJsZWQuYWN0aXZlLC5idG4tZGFuZ2VyLmRpc2FibGVkLmZvY3VzLC5idG4t
ZGFuZ2VyLmRpc2FibGVkOmFjdGl2ZSwuYnRuLWRhbmdlci5kaXNhYmxlZDpmb2N1cywuYnRuLWRh
bmdlci5kaXNhYmxlZDpob3ZlciwuYnRuLWRhbmdlcltkaXNhYmxlZF0sLmJ0bi1kYW5nZXJbZGlz
YWJsZWRdLmFjdGl2ZSwuYnRuLWRhbmdlcltkaXNhYmxlZF0uZm9jdXMsLmJ0bi1kYW5nZXJbZGlz
YWJsZWRdOmFjdGl2ZSwuYnRuLWRhbmdlcltkaXNhYmxlZF06Zm9jdXMsLmJ0bi1kYW5nZXJbZGlz
YWJsZWRdOmhvdmVyLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRhbmdlcixmaWVsZHNldFtkaXNh
YmxlZF0gLmJ0bi1kYW5nZXIuYWN0aXZlLGZpZWxkc2V0W2Rpc2FibGVkXSAuYnRuLWRhbmdlci5m
b2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kYW5nZXI6YWN0aXZlLGZpZWxkc2V0W2Rpc2Fi
bGVkXSAuYnRuLWRhbmdlcjpmb2N1cyxmaWVsZHNldFtkaXNhYmxlZF0gLmJ0bi1kYW5nZXI6aG92
ZXJ7YmFja2dyb3VuZC1jb2xvcjojZDk1MzRmO2JvcmRlci1jb2xvcjojZDQzZjNhfS5idG4tZGFu
Z2VyIC5iYWRnZXtjb2xvcjojZDk1MzRmO2JhY2tncm91bmQtY29sb3I6I2ZmZn0uYnRuLWxpbmt7
Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiMzMzdhYjc7Ym9yZGVyLXJhZGl1czowfS5idG4tbGluaywu
YnRuLWxpbmsuYWN0aXZlLC5idG4tbGluazphY3RpdmUsLmJ0bi1saW5rW2Rpc2FibGVkXSxmaWVs
ZHNldFtkaXNhYmxlZF0gLmJ0bi1saW5re2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7LXdl
YmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lfS5idG4tbGluaywuYnRuLWxpbms6
YWN0aXZlLC5idG4tbGluazpmb2N1cywuYnRuLWxpbms6aG92ZXJ7Ym9yZGVyLWNvbG9yOnRyYW5z
cGFyZW50fS5idG4tbGluazpmb2N1cywuYnRuLWxpbms6aG92ZXJ7Y29sb3I6IzIzNTI3Yzt0ZXh0
LWRlY29yYXRpb246dW5kZXJsaW5lO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmJ0bi1s
aW5rW2Rpc2FibGVkXTpmb2N1cywuYnRuLWxpbmtbZGlzYWJsZWRdOmhvdmVyLGZpZWxkc2V0W2Rp
c2FibGVkXSAuYnRuLWxpbms6Zm9jdXMsZmllbGRzZXRbZGlzYWJsZWRdIC5idG4tbGluazpob3Zl
cntjb2xvcjojNzc3O3RleHQtZGVjb3JhdGlvbjpub25lfS5idG4tZ3JvdXAtbGc+LmJ0biwuYnRu
LWxne3BhZGRpbmc6MTBweCAxNnB4O2ZvbnQtc2l6ZToxOHB4O2xpbmUtaGVpZ2h0OjEuMzMzMzMz
Mztib3JkZXItcmFkaXVzOjZweH0uYnRuLWdyb3VwLXNtPi5idG4sLmJ0bi1zbXtwYWRkaW5nOjVw
eCAxMHB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjEuNTtib3JkZXItcmFkaXVzOjNweH0u
YnRuLWdyb3VwLXhzPi5idG4sLmJ0bi14c3twYWRkaW5nOjFweCA1cHg7Zm9udC1zaXplOjEycHg7
bGluZS1oZWlnaHQ6MS41O2JvcmRlci1yYWRpdXM6M3B4fS5idG4tYmxvY2t7ZGlzcGxheTpibG9j
azt3aWR0aDoxMDAlfS5idG4tYmxvY2srLmJ0bi1ibG9ja3ttYXJnaW4tdG9wOjVweH1pbnB1dFt0
eXBlPWJ1dHRvbl0uYnRuLWJsb2NrLGlucHV0W3R5cGU9cmVzZXRdLmJ0bi1ibG9jayxpbnB1dFt0
eXBlPXN1Ym1pdF0uYnRuLWJsb2Nre3dpZHRoOjEwMCV9LmZhZGV7b3BhY2l0eTowOy13ZWJraXQt
dHJhbnNpdGlvbjpvcGFjaXR5IC4xNXMgbGluZWFyOy1vLXRyYW5zaXRpb246b3BhY2l0eSAuMTVz
IGxpbmVhcjt0cmFuc2l0aW9uOm9wYWNpdHkgLjE1cyBsaW5lYXJ9LmZhZGUuaW57b3BhY2l0eTox
fS5jb2xsYXBzZXtkaXNwbGF5Om5vbmV9LmNvbGxhcHNlLmlue2Rpc3BsYXk6YmxvY2t9dHIuY29s
bGFwc2UuaW57ZGlzcGxheTp0YWJsZS1yb3d9dGJvZHkuY29sbGFwc2UuaW57ZGlzcGxheTp0YWJs
ZS1yb3ctZ3JvdXB9LmNvbGxhcHNpbmd7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjA7b3ZlcmZs
b3c6aGlkZGVuOy13ZWJraXQtdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZTstby10cmFu
c2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmVh
c2U7LXdlYmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOi4zNXM7LW8tdHJhbnNpdGlvbi1kdXJhdGlv
bjouMzVzO3RyYW5zaXRpb24tZHVyYXRpb246LjM1czstd2Via2l0LXRyYW5zaXRpb24tcHJvcGVy
dHk6aGVpZ2h0LHZpc2liaWxpdHk7LW8tdHJhbnNpdGlvbi1wcm9wZXJ0eTpoZWlnaHQsdmlzaWJp
bGl0eTt0cmFuc2l0aW9uLXByb3BlcnR5OmhlaWdodCx2aXNpYmlsaXR5fS5jYXJldHtkaXNwbGF5
OmlubGluZS1ibG9jazt3aWR0aDowO2hlaWdodDowO21hcmdpbi1sZWZ0OjJweDt2ZXJ0aWNhbC1h
bGlnbjptaWRkbGU7Ym9yZGVyLXRvcDo0cHggZGFzaGVkO2JvcmRlci10b3A6NHB4IHNvbGlkXDk7
Ym9yZGVyLXJpZ2h0OjRweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItbGVmdDo0cHggc29saWQg
dHJhbnNwYXJlbnR9LmRyb3Bkb3duLC5kcm9wdXB7cG9zaXRpb246cmVsYXRpdmV9LmRyb3Bkb3du
LXRvZ2dsZTpmb2N1c3tvdXRsaW5lOjB9LmRyb3Bkb3duLW1lbnV7cG9zaXRpb246YWJzb2x1dGU7
dG9wOjEwMCU7bGVmdDowO3otaW5kZXg6MTAwMDtkaXNwbGF5Om5vbmU7ZmxvYXQ6bGVmdDttaW4t
d2lkdGg6MTYwcHg7cGFkZGluZzo1cHggMDttYXJnaW46MnB4IDAgMDtmb250LXNpemU6MTRweDt0
ZXh0LWFsaWduOmxlZnQ7bGlzdC1zdHlsZTpub25lO2JhY2tncm91bmQtY29sb3I6I2ZmZjstd2Vi
a2l0LWJhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJveDtiYWNrZ3JvdW5kLWNsaXA6cGFkZGluZy1i
b3g7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JvcmRlcjoxcHggc29saWQgcmdiYSgwLDAsMCwuMTUp
O2JvcmRlci1yYWRpdXM6NHB4Oy13ZWJraXQtYm94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCww
LDAsLjE3NSk7Ym94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCwwLDAsLjE3NSl9LmRyb3Bkb3du
LW1lbnUucHVsbC1yaWdodHtyaWdodDowO2xlZnQ6YXV0b30uZHJvcGRvd24tbWVudSAuZGl2aWRl
cntoZWlnaHQ6MXB4O21hcmdpbjo5cHggMDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZC1jb2xv
cjojZTVlNWU1fS5kcm9wZG93bi1tZW51PmxpPmF7ZGlzcGxheTpibG9jaztwYWRkaW5nOjNweCAy
MHB4O2NsZWFyOmJvdGg7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7Y29s
b3I6IzMzMzt3aGl0ZS1zcGFjZTpub3dyYXB9LmRyb3Bkb3duLW1lbnU+bGk+YTpmb2N1cywuZHJv
cGRvd24tbWVudT5saT5hOmhvdmVye2NvbG9yOiMyNjI2MjY7dGV4dC1kZWNvcmF0aW9uOm5vbmU7
YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1fS5kcm9wZG93bi1tZW51Pi5hY3RpdmU+YSwuZHJvcGRv
d24tbWVudT4uYWN0aXZlPmE6Zm9jdXMsLmRyb3Bkb3duLW1lbnU+LmFjdGl2ZT5hOmhvdmVye2Nv
bG9yOiNmZmY7dGV4dC1kZWNvcmF0aW9uOm5vbmU7YmFja2dyb3VuZC1jb2xvcjojMzM3YWI3O291
dGxpbmU6MH0uZHJvcGRvd24tbWVudT4uZGlzYWJsZWQ+YSwuZHJvcGRvd24tbWVudT4uZGlzYWJs
ZWQ+YTpmb2N1cywuZHJvcGRvd24tbWVudT4uZGlzYWJsZWQ+YTpob3Zlcntjb2xvcjojNzc3fS5k
cm9wZG93bi1tZW51Pi5kaXNhYmxlZD5hOmZvY3VzLC5kcm9wZG93bi1tZW51Pi5kaXNhYmxlZD5h
OmhvdmVye3RleHQtZGVjb3JhdGlvbjpub25lO2N1cnNvcjpub3QtYWxsb3dlZDtiYWNrZ3JvdW5k
LWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtaW1hZ2U6bm9uZTtmaWx0ZXI6cHJvZ2lkOkRY
SW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KGVuYWJsZWQ9ZmFsc2UpfS5vcGVuPi5k
cm9wZG93bi1tZW51e2Rpc3BsYXk6YmxvY2t9Lm9wZW4+YXtvdXRsaW5lOjB9LmRyb3Bkb3duLW1l
bnUtcmlnaHR7cmlnaHQ6MDtsZWZ0OmF1dG99LmRyb3Bkb3duLW1lbnUtbGVmdHtyaWdodDphdXRv
O2xlZnQ6MH0uZHJvcGRvd24taGVhZGVye2Rpc3BsYXk6YmxvY2s7cGFkZGluZzozcHggMjBweDtm
b250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxLjQyODU3MTQzO2NvbG9yOiM3Nzc7d2hpdGUtc3Bh
Y2U6bm93cmFwfS5kcm9wZG93bi1iYWNrZHJvcHtwb3NpdGlvbjpmaXhlZDt0b3A6MDtyaWdodDow
O2JvdHRvbTowO2xlZnQ6MDt6LWluZGV4Ojk5MH0ucHVsbC1yaWdodD4uZHJvcGRvd24tbWVudXty
aWdodDowO2xlZnQ6YXV0b30uZHJvcHVwIC5jYXJldCwubmF2YmFyLWZpeGVkLWJvdHRvbSAuZHJv
cGRvd24gLmNhcmV0e2NvbnRlbnQ6IiI7Ym9yZGVyLXRvcDowO2JvcmRlci1ib3R0b206NHB4IGRh
c2hlZDtib3JkZXItYm90dG9tOjRweCBzb2xpZFw5fS5kcm9wdXAgLmRyb3Bkb3duLW1lbnUsLm5h
dmJhci1maXhlZC1ib3R0b20gLmRyb3Bkb3duIC5kcm9wZG93bi1tZW51e3RvcDphdXRvO2JvdHRv
bToxMDAlO21hcmdpbi1ib3R0b206MnB4fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsubmF2YmFy
LXJpZ2h0IC5kcm9wZG93bi1tZW51e3JpZ2h0OjA7bGVmdDphdXRvfS5uYXZiYXItcmlnaHQgLmRy
b3Bkb3duLW1lbnUtbGVmdHtyaWdodDphdXRvO2xlZnQ6MH19LmJ0bi1ncm91cCwuYnRuLWdyb3Vw
LXZlcnRpY2Fse3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2Fs
LWFsaWduOm1pZGRsZX0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4sLmJ0bi1ncm91cD4uYnRue3Bv
c2l0aW9uOnJlbGF0aXZlO2Zsb2F0OmxlZnR9LmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuLmFjdGl2
ZSwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG46YWN0aXZlLC5idG4tZ3JvdXAtdmVydGljYWw+LmJ0
bjpmb2N1cywuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG46aG92ZXIsLmJ0bi1ncm91cD4uYnRuLmFj
dGl2ZSwuYnRuLWdyb3VwPi5idG46YWN0aXZlLC5idG4tZ3JvdXA+LmJ0bjpmb2N1cywuYnRuLWdy
b3VwPi5idG46aG92ZXJ7ei1pbmRleDoyfS5idG4tZ3JvdXAgLmJ0bisuYnRuLC5idG4tZ3JvdXAg
LmJ0bisuYnRuLWdyb3VwLC5idG4tZ3JvdXAgLmJ0bi1ncm91cCsuYnRuLC5idG4tZ3JvdXAgLmJ0
bi1ncm91cCsuYnRuLWdyb3Vwe21hcmdpbi1sZWZ0Oi0xcHh9LmJ0bi10b29sYmFye21hcmdpbi1s
ZWZ0Oi01cHh9LmJ0bi10b29sYmFyIC5idG4sLmJ0bi10b29sYmFyIC5idG4tZ3JvdXAsLmJ0bi10
b29sYmFyIC5pbnB1dC1ncm91cHtmbG9hdDpsZWZ0fS5idG4tdG9vbGJhcj4uYnRuLC5idG4tdG9v
bGJhcj4uYnRuLWdyb3VwLC5idG4tdG9vbGJhcj4uaW5wdXQtZ3JvdXB7bWFyZ2luLWxlZnQ6NXB4
fS5idG4tZ3JvdXA+LmJ0bjpub3QoOmZpcnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpOm5vdCgu
ZHJvcGRvd24tdG9nZ2xlKXtib3JkZXItcmFkaXVzOjB9LmJ0bi1ncm91cD4uYnRuOmZpcnN0LWNo
aWxke21hcmdpbi1sZWZ0OjB9LmJ0bi1ncm91cD4uYnRuOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1j
aGlsZCk6bm90KC5kcm9wZG93bi10b2dnbGUpe2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7Ym9y
ZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MH0uYnRuLWdyb3VwPi5idG46bGFzdC1jaGlsZDpub3Qo
OmZpcnN0LWNoaWxkKSwuYnRuLWdyb3VwPi5kcm9wZG93bi10b2dnbGU6bm90KDpmaXJzdC1jaGls
ZCl7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0u
YnRuLWdyb3VwPi5idG4tZ3JvdXB7ZmxvYXQ6bGVmdH0uYnRuLWdyb3VwPi5idG4tZ3JvdXA6bm90
KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKT4uYnRue2JvcmRlci1yYWRpdXM6MH0uYnRu
LWdyb3VwPi5idG4tZ3JvdXA6Zmlyc3QtY2hpbGQ6bm90KDpsYXN0LWNoaWxkKT4uYnRuOmxhc3Qt
Y2hpbGQsLmJ0bi1ncm91cD4uYnRuLWdyb3VwOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCk+
LmRyb3Bkb3duLXRvZ2dsZXtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20t
cmlnaHQtcmFkaXVzOjB9LmJ0bi1ncm91cD4uYnRuLWdyb3VwOmxhc3QtY2hpbGQ6bm90KDpmaXJz
dC1jaGlsZCk+LmJ0bjpmaXJzdC1jaGlsZHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVy
LWJvdHRvbS1sZWZ0LXJhZGl1czowfS5idG4tZ3JvdXAgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmUs
LmJ0bi1ncm91cC5vcGVuIC5kcm9wZG93bi10b2dnbGV7b3V0bGluZTowfS5idG4tZ3JvdXA+LmJ0
bisuZHJvcGRvd24tdG9nZ2xle3BhZGRpbmctcmlnaHQ6OHB4O3BhZGRpbmctbGVmdDo4cHh9LmJ0
bi1ncm91cD4uYnRuLWxnKy5kcm9wZG93bi10b2dnbGV7cGFkZGluZy1yaWdodDoxMnB4O3BhZGRp
bmctbGVmdDoxMnB4fS5idG4tZ3JvdXAub3BlbiAuZHJvcGRvd24tdG9nZ2xley13ZWJraXQtYm94
LXNoYWRvdzppbnNldCAwIDNweCA1cHggcmdiYSgwLDAsMCwuMTI1KTtib3gtc2hhZG93Omluc2V0
IDAgM3B4IDVweCByZ2JhKDAsMCwwLC4xMjUpfS5idG4tZ3JvdXAub3BlbiAuZHJvcGRvd24tdG9n
Z2xlLmJ0bi1saW5rey13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZX0uYnRu
IC5jYXJldHttYXJnaW4tbGVmdDowfS5idG4tbGcgLmNhcmV0e2JvcmRlci13aWR0aDo1cHggNXB4
IDA7Ym9yZGVyLWJvdHRvbS13aWR0aDowfS5kcm9wdXAgLmJ0bi1sZyAuY2FyZXR7Ym9yZGVyLXdp
ZHRoOjAgNXB4IDVweH0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4sLmJ0bi1ncm91cC12ZXJ0aWNh
bD4uYnRuLWdyb3VwLC5idG4tZ3JvdXAtdmVydGljYWw+LmJ0bi1ncm91cD4uYnRue2Rpc3BsYXk6
YmxvY2s7ZmxvYXQ6bm9uZTt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlfS5idG4tZ3JvdXAtdmVy
dGljYWw+LmJ0bi1ncm91cD4uYnRue2Zsb2F0Om5vbmV9LmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRu
Ky5idG4sLmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuKy5idG4tZ3JvdXAsLmJ0bi1ncm91cC12ZXJ0
aWNhbD4uYnRuLWdyb3VwKy5idG4sLmJ0bi1ncm91cC12ZXJ0aWNhbD4uYnRuLWdyb3VwKy5idG4t
Z3JvdXB7bWFyZ2luLXRvcDotMXB4O21hcmdpbi1sZWZ0OjB9LmJ0bi1ncm91cC12ZXJ0aWNhbD4u
YnRuOm5vdCg6Zmlyc3QtY2hpbGQpOm5vdCg6bGFzdC1jaGlsZCl7Ym9yZGVyLXJhZGl1czowfS5i
dG4tZ3JvdXAtdmVydGljYWw+LmJ0bjpmaXJzdC1jaGlsZDpub3QoOmxhc3QtY2hpbGQpe2JvcmRl
ci10b3AtcmlnaHQtcmFkaXVzOjRweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO2JvcmRl
ci1ib3R0b20tbGVmdC1yYWRpdXM6MH0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG46bGFzdC1jaGls
ZDpub3QoOmZpcnN0LWNoaWxkKXtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLXRvcC1y
aWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjRweH0uYnRuLWdyb3VwLXZl
cnRpY2FsPi5idG4tZ3JvdXA6bm90KDpmaXJzdC1jaGlsZCk6bm90KDpsYXN0LWNoaWxkKT4uYnRu
e2JvcmRlci1yYWRpdXM6MH0uYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXA6Zmlyc3QtY2hp
bGQ6bm90KDpsYXN0LWNoaWxkKT4uYnRuOmxhc3QtY2hpbGQsLmJ0bi1ncm91cC12ZXJ0aWNhbD4u
YnRuLWdyb3VwOmZpcnN0LWNoaWxkOm5vdCg6bGFzdC1jaGlsZCk+LmRyb3Bkb3duLXRvZ2dsZXti
b3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0u
YnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXA6bGFzdC1jaGlsZDpub3QoOmZpcnN0LWNoaWxk
KT4uYnRuOmZpcnN0LWNoaWxke2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLXJp
Z2h0LXJhZGl1czowfS5idG4tZ3JvdXAtanVzdGlmaWVke2Rpc3BsYXk6dGFibGU7d2lkdGg6MTAw
JTt0YWJsZS1sYXlvdXQ6Zml4ZWQ7Ym9yZGVyLWNvbGxhcHNlOnNlcGFyYXRlfS5idG4tZ3JvdXAt
anVzdGlmaWVkPi5idG4sLmJ0bi1ncm91cC1qdXN0aWZpZWQ+LmJ0bi1ncm91cHtkaXNwbGF5OnRh
YmxlLWNlbGw7ZmxvYXQ6bm9uZTt3aWR0aDoxJX0uYnRuLWdyb3VwLWp1c3RpZmllZD4uYnRuLWdy
b3VwIC5idG57d2lkdGg6MTAwJX0uYnRuLWdyb3VwLWp1c3RpZmllZD4uYnRuLWdyb3VwIC5kcm9w
ZG93bi1tZW51e2xlZnQ6YXV0b31bZGF0YS10b2dnbGU9YnV0dG9uc10+LmJ0biBpbnB1dFt0eXBl
PWNoZWNrYm94XSxbZGF0YS10b2dnbGU9YnV0dG9uc10+LmJ0biBpbnB1dFt0eXBlPXJhZGlvXSxb
ZGF0YS10b2dnbGU9YnV0dG9uc10+LmJ0bi1ncm91cD4uYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hd
LFtkYXRhLXRvZ2dsZT1idXR0b25zXT4uYnRuLWdyb3VwPi5idG4gaW5wdXRbdHlwZT1yYWRpb117
cG9zaXRpb246YWJzb2x1dGU7Y2xpcDpyZWN0KDAsMCwwLDApO3BvaW50ZXItZXZlbnRzOm5vbmV9
LmlucHV0LWdyb3Vwe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6dGFibGU7Ym9yZGVyLWNvbGxh
cHNlOnNlcGFyYXRlfS5pbnB1dC1ncm91cFtjbGFzcyo9Y29sLV17ZmxvYXQ6bm9uZTtwYWRkaW5n
LXJpZ2h0OjA7cGFkZGluZy1sZWZ0OjB9LmlucHV0LWdyb3VwIC5mb3JtLWNvbnRyb2x7cG9zaXRp
b246cmVsYXRpdmU7ei1pbmRleDoyO2Zsb2F0OmxlZnQ7d2lkdGg6MTAwJTttYXJnaW4tYm90dG9t
OjB9LmlucHV0LWdyb3VwLWxnPi5mb3JtLWNvbnRyb2wsLmlucHV0LWdyb3VwLWxnPi5pbnB1dC1n
cm91cC1hZGRvbiwuaW5wdXQtZ3JvdXAtbGc+LmlucHV0LWdyb3VwLWJ0bj4uYnRue2hlaWdodDo0
NnB4O3BhZGRpbmc6MTBweCAxNnB4O2ZvbnQtc2l6ZToxOHB4O2xpbmUtaGVpZ2h0OjEuMzMzMzMz
Mztib3JkZXItcmFkaXVzOjZweH1zZWxlY3QuaW5wdXQtZ3JvdXAtbGc+LmZvcm0tY29udHJvbCxz
ZWxlY3QuaW5wdXQtZ3JvdXAtbGc+LmlucHV0LWdyb3VwLWFkZG9uLHNlbGVjdC5pbnB1dC1ncm91
cC1sZz4uaW5wdXQtZ3JvdXAtYnRuPi5idG57aGVpZ2h0OjQ2cHg7bGluZS1oZWlnaHQ6NDZweH1z
ZWxlY3RbbXVsdGlwbGVdLmlucHV0LWdyb3VwLWxnPi5mb3JtLWNvbnRyb2wsc2VsZWN0W211bHRp
cGxlXS5pbnB1dC1ncm91cC1sZz4uaW5wdXQtZ3JvdXAtYWRkb24sc2VsZWN0W211bHRpcGxlXS5p
bnB1dC1ncm91cC1sZz4uaW5wdXQtZ3JvdXAtYnRuPi5idG4sdGV4dGFyZWEuaW5wdXQtZ3JvdXAt
bGc+LmZvcm0tY29udHJvbCx0ZXh0YXJlYS5pbnB1dC1ncm91cC1sZz4uaW5wdXQtZ3JvdXAtYWRk
b24sdGV4dGFyZWEuaW5wdXQtZ3JvdXAtbGc+LmlucHV0LWdyb3VwLWJ0bj4uYnRue2hlaWdodDph
dXRvfS5pbnB1dC1ncm91cC1zbT4uZm9ybS1jb250cm9sLC5pbnB1dC1ncm91cC1zbT4uaW5wdXQt
Z3JvdXAtYWRkb24sLmlucHV0LWdyb3VwLXNtPi5pbnB1dC1ncm91cC1idG4+LmJ0bntoZWlnaHQ6
MzBweDtwYWRkaW5nOjVweCAxMHB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjEuNTtib3Jk
ZXItcmFkaXVzOjNweH1zZWxlY3QuaW5wdXQtZ3JvdXAtc20+LmZvcm0tY29udHJvbCxzZWxlY3Qu
aW5wdXQtZ3JvdXAtc20+LmlucHV0LWdyb3VwLWFkZG9uLHNlbGVjdC5pbnB1dC1ncm91cC1zbT4u
aW5wdXQtZ3JvdXAtYnRuPi5idG57aGVpZ2h0OjMwcHg7bGluZS1oZWlnaHQ6MzBweH1zZWxlY3Rb
bXVsdGlwbGVdLmlucHV0LWdyb3VwLXNtPi5mb3JtLWNvbnRyb2wsc2VsZWN0W211bHRpcGxlXS5p
bnB1dC1ncm91cC1zbT4uaW5wdXQtZ3JvdXAtYWRkb24sc2VsZWN0W211bHRpcGxlXS5pbnB1dC1n
cm91cC1zbT4uaW5wdXQtZ3JvdXAtYnRuPi5idG4sdGV4dGFyZWEuaW5wdXQtZ3JvdXAtc20+LmZv
cm0tY29udHJvbCx0ZXh0YXJlYS5pbnB1dC1ncm91cC1zbT4uaW5wdXQtZ3JvdXAtYWRkb24sdGV4
dGFyZWEuaW5wdXQtZ3JvdXAtc20+LmlucHV0LWdyb3VwLWJ0bj4uYnRue2hlaWdodDphdXRvfS5p
bnB1dC1ncm91cCAuZm9ybS1jb250cm9sLC5pbnB1dC1ncm91cC1hZGRvbiwuaW5wdXQtZ3JvdXAt
YnRue2Rpc3BsYXk6dGFibGUtY2VsbH0uaW5wdXQtZ3JvdXAgLmZvcm0tY29udHJvbDpub3QoOmZp
cnN0LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpLC5pbnB1dC1ncm91cC1hZGRvbjpub3QoOmZpcnN0
LWNoaWxkKTpub3QoOmxhc3QtY2hpbGQpLC5pbnB1dC1ncm91cC1idG46bm90KDpmaXJzdC1jaGls
ZCk6bm90KDpsYXN0LWNoaWxkKXtib3JkZXItcmFkaXVzOjB9LmlucHV0LWdyb3VwLWFkZG9uLC5p
bnB1dC1ncm91cC1idG57d2lkdGg6MSU7d2hpdGUtc3BhY2U6bm93cmFwO3ZlcnRpY2FsLWFsaWdu
Om1pZGRsZX0uaW5wdXQtZ3JvdXAtYWRkb257cGFkZGluZzo2cHggMTJweDtmb250LXNpemU6MTRw
eDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MTtjb2xvcjojNTU1O3RleHQtYWxpZ246Y2Vu
dGVyO2JhY2tncm91bmQtY29sb3I6I2VlZTtib3JkZXI6MXB4IHNvbGlkICNjY2M7Ym9yZGVyLXJh
ZGl1czo0cHh9LmlucHV0LWdyb3VwLWFkZG9uLmlucHV0LXNte3BhZGRpbmc6NXB4IDEwcHg7Zm9u
dC1zaXplOjEycHg7Ym9yZGVyLXJhZGl1czozcHh9LmlucHV0LWdyb3VwLWFkZG9uLmlucHV0LWxn
e3BhZGRpbmc6MTBweCAxNnB4O2ZvbnQtc2l6ZToxOHB4O2JvcmRlci1yYWRpdXM6NnB4fS5pbnB1
dC1ncm91cC1hZGRvbiBpbnB1dFt0eXBlPWNoZWNrYm94XSwuaW5wdXQtZ3JvdXAtYWRkb24gaW5w
dXRbdHlwZT1yYWRpb117bWFyZ2luLXRvcDowfS5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOmZp
cnN0LWNoaWxkLC5pbnB1dC1ncm91cC1hZGRvbjpmaXJzdC1jaGlsZCwuaW5wdXQtZ3JvdXAtYnRu
OmZpcnN0LWNoaWxkPi5idG4sLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZD4uYnRuLWdyb3Vw
Pi5idG4sLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZD4uZHJvcGRvd24tdG9nZ2xlLC5pbnB1
dC1ncm91cC1idG46bGFzdC1jaGlsZD4uYnRuLWdyb3VwOm5vdCg6bGFzdC1jaGlsZCk+LmJ0biwu
aW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQ+LmJ0bjpub3QoOmxhc3QtY2hpbGQpOm5vdCguZHJv
cGRvd24tdG9nZ2xlKXtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmln
aHQtcmFkaXVzOjB9LmlucHV0LWdyb3VwLWFkZG9uOmZpcnN0LWNoaWxke2JvcmRlci1yaWdodDow
fS5pbnB1dC1ncm91cCAuZm9ybS1jb250cm9sOmxhc3QtY2hpbGQsLmlucHV0LWdyb3VwLWFkZG9u
Omxhc3QtY2hpbGQsLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZD4uYnRuLWdyb3VwOm5vdCg6
Zmlyc3QtY2hpbGQpPi5idG4sLmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZD4uYnRuOm5vdCg6
Zmlyc3QtY2hpbGQpLC5pbnB1dC1ncm91cC1idG46bGFzdC1jaGlsZD4uYnRuLC5pbnB1dC1ncm91
cC1idG46bGFzdC1jaGlsZD4uYnRuLWdyb3VwPi5idG4sLmlucHV0LWdyb3VwLWJ0bjpsYXN0LWNo
aWxkPi5kcm9wZG93bi10b2dnbGV7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0
b20tbGVmdC1yYWRpdXM6MH0uaW5wdXQtZ3JvdXAtYWRkb246bGFzdC1jaGlsZHtib3JkZXItbGVm
dDowfS5pbnB1dC1ncm91cC1idG57cG9zaXRpb246cmVsYXRpdmU7Zm9udC1zaXplOjA7d2hpdGUt
c3BhY2U6bm93cmFwfS5pbnB1dC1ncm91cC1idG4+LmJ0bntwb3NpdGlvbjpyZWxhdGl2ZX0uaW5w
dXQtZ3JvdXAtYnRuPi5idG4rLmJ0bnttYXJnaW4tbGVmdDotMXB4fS5pbnB1dC1ncm91cC1idG4+
LmJ0bjphY3RpdmUsLmlucHV0LWdyb3VwLWJ0bj4uYnRuOmZvY3VzLC5pbnB1dC1ncm91cC1idG4+
LmJ0bjpob3Zlcnt6LWluZGV4OjJ9LmlucHV0LWdyb3VwLWJ0bjpmaXJzdC1jaGlsZD4uYnRuLC5p
bnB1dC1ncm91cC1idG46Zmlyc3QtY2hpbGQ+LmJ0bi1ncm91cHttYXJnaW4tcmlnaHQ6LTFweH0u
aW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hpbGQ+LmJ0biwuaW5wdXQtZ3JvdXAtYnRuOmxhc3QtY2hp
bGQ+LmJ0bi1ncm91cHt6LWluZGV4OjI7bWFyZ2luLWxlZnQ6LTFweH0ubmF2e3BhZGRpbmctbGVm
dDowO21hcmdpbi1ib3R0b206MDtsaXN0LXN0eWxlOm5vbmV9Lm5hdj5saXtwb3NpdGlvbjpyZWxh
dGl2ZTtkaXNwbGF5OmJsb2NrfS5uYXY+bGk+YXtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmJs
b2NrO3BhZGRpbmc6MTBweCAxNXB4fS5uYXY+bGk+YTpmb2N1cywubmF2PmxpPmE6aG92ZXJ7dGV4
dC1kZWNvcmF0aW9uOm5vbmU7YmFja2dyb3VuZC1jb2xvcjojZWVlfS5uYXY+bGkuZGlzYWJsZWQ+
YXtjb2xvcjojNzc3fS5uYXY+bGkuZGlzYWJsZWQ+YTpmb2N1cywubmF2PmxpLmRpc2FibGVkPmE6
aG92ZXJ7Y29sb3I6Izc3Nzt0ZXh0LWRlY29yYXRpb246bm9uZTtjdXJzb3I6bm90LWFsbG93ZWQ7
YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ubmF2IC5vcGVuPmEsLm5hdiAub3Blbj5hOmZv
Y3VzLC5uYXYgLm9wZW4+YTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7Ym9yZGVyLWNvbG9y
OiMzMzdhYjd9Lm5hdiAubmF2LWRpdmlkZXJ7aGVpZ2h0OjFweDttYXJnaW46OXB4IDA7b3ZlcmZs
b3c6aGlkZGVuO2JhY2tncm91bmQtY29sb3I6I2U1ZTVlNX0ubmF2PmxpPmE+aW1ne21heC13aWR0
aDpub25lfS5uYXYtdGFic3tib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkfS5uYXYtdGFicz5s
aXtmbG9hdDpsZWZ0O21hcmdpbi1ib3R0b206LTFweH0ubmF2LXRhYnM+bGk+YXttYXJnaW4tcmln
aHQ6MnB4O2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVu
dDtib3JkZXItcmFkaXVzOjRweCA0cHggMCAwfS5uYXYtdGFicz5saT5hOmhvdmVye2JvcmRlci1j
b2xvcjojZWVlICNlZWUgI2RkZH0ubmF2LXRhYnM+bGkuYWN0aXZlPmEsLm5hdi10YWJzPmxpLmFj
dGl2ZT5hOmZvY3VzLC5uYXYtdGFicz5saS5hY3RpdmU+YTpob3Zlcntjb2xvcjojNTU1O2N1cnNv
cjpkZWZhdWx0O2JhY2tncm91bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNkZGQ7Ym9y
ZGVyLWJvdHRvbS1jb2xvcjp0cmFuc3BhcmVudH0ubmF2LXRhYnMubmF2LWp1c3RpZmllZHt3aWR0
aDoxMDAlO2JvcmRlci1ib3R0b206MH0ubmF2LXRhYnMubmF2LWp1c3RpZmllZD5saXtmbG9hdDpu
b25lfS5uYXYtdGFicy5uYXYtanVzdGlmaWVkPmxpPmF7bWFyZ2luLWJvdHRvbTo1cHg7dGV4dC1h
bGlnbjpjZW50ZXJ9Lm5hdi10YWJzLm5hdi1qdXN0aWZpZWQ+LmRyb3Bkb3duIC5kcm9wZG93bi1t
ZW51e3RvcDphdXRvO2xlZnQ6YXV0b31AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7Lm5hdi10YWJz
Lm5hdi1qdXN0aWZpZWQ+bGl7ZGlzcGxheTp0YWJsZS1jZWxsO3dpZHRoOjElfS5uYXYtdGFicy5u
YXYtanVzdGlmaWVkPmxpPmF7bWFyZ2luLWJvdHRvbTowfX0ubmF2LXRhYnMubmF2LWp1c3RpZmll
ZD5saT5he21hcmdpbi1yaWdodDowO2JvcmRlci1yYWRpdXM6NHB4fS5uYXYtdGFicy5uYXYtanVz
dGlmaWVkPi5hY3RpdmU+YSwubmF2LXRhYnMubmF2LWp1c3RpZmllZD4uYWN0aXZlPmE6Zm9jdXMs
Lm5hdi10YWJzLm5hdi1qdXN0aWZpZWQ+LmFjdGl2ZT5hOmhvdmVye2JvcmRlcjoxcHggc29saWQg
I2RkZH1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7Lm5hdi10YWJzLm5hdi1qdXN0aWZpZWQ+bGk+
YXtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkO2JvcmRlci1yYWRpdXM6NHB4IDRweCAwIDB9
Lm5hdi10YWJzLm5hdi1qdXN0aWZpZWQ+LmFjdGl2ZT5hLC5uYXYtdGFicy5uYXYtanVzdGlmaWVk
Pi5hY3RpdmU+YTpmb2N1cywubmF2LXRhYnMubmF2LWp1c3RpZmllZD4uYWN0aXZlPmE6aG92ZXJ7
Ym9yZGVyLWJvdHRvbS1jb2xvcjojZmZmfX0ubmF2LXBpbGxzPmxpe2Zsb2F0OmxlZnR9Lm5hdi1w
aWxscz5saT5he2JvcmRlci1yYWRpdXM6NHB4fS5uYXYtcGlsbHM+bGkrbGl7bWFyZ2luLWxlZnQ6
MnB4fS5uYXYtcGlsbHM+bGkuYWN0aXZlPmEsLm5hdi1waWxscz5saS5hY3RpdmU+YTpmb2N1cywu
bmF2LXBpbGxzPmxpLmFjdGl2ZT5hOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjoj
MzM3YWI3fS5uYXYtc3RhY2tlZD5saXtmbG9hdDpub25lfS5uYXYtc3RhY2tlZD5saStsaXttYXJn
aW4tdG9wOjJweDttYXJnaW4tbGVmdDowfS5uYXYtanVzdGlmaWVke3dpZHRoOjEwMCV9Lm5hdi1q
dXN0aWZpZWQ+bGl7ZmxvYXQ6bm9uZX0ubmF2LWp1c3RpZmllZD5saT5he21hcmdpbi1ib3R0b206
NXB4O3RleHQtYWxpZ246Y2VudGVyfS5uYXYtanVzdGlmaWVkPi5kcm9wZG93biAuZHJvcGRvd24t
bWVudXt0b3A6YXV0bztsZWZ0OmF1dG99QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXYtanVz
dGlmaWVkPmxpe2Rpc3BsYXk6dGFibGUtY2VsbDt3aWR0aDoxJX0ubmF2LWp1c3RpZmllZD5saT5h
e21hcmdpbi1ib3R0b206MH19Lm5hdi10YWJzLWp1c3RpZmllZHtib3JkZXItYm90dG9tOjB9Lm5h
di10YWJzLWp1c3RpZmllZD5saT5he21hcmdpbi1yaWdodDowO2JvcmRlci1yYWRpdXM6NHB4fS5u
YXYtdGFicy1qdXN0aWZpZWQ+LmFjdGl2ZT5hLC5uYXYtdGFicy1qdXN0aWZpZWQ+LmFjdGl2ZT5h
OmZvY3VzLC5uYXYtdGFicy1qdXN0aWZpZWQ+LmFjdGl2ZT5hOmhvdmVye2JvcmRlcjoxcHggc29s
aWQgI2RkZH1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7Lm5hdi10YWJzLWp1c3RpZmllZD5saT5h
e2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZGQ7Ym9yZGVyLXJhZGl1czo0cHggNHB4IDAgMH0u
bmF2LXRhYnMtanVzdGlmaWVkPi5hY3RpdmU+YSwubmF2LXRhYnMtanVzdGlmaWVkPi5hY3RpdmU+
YTpmb2N1cywubmF2LXRhYnMtanVzdGlmaWVkPi5hY3RpdmU+YTpob3Zlcntib3JkZXItYm90dG9t
LWNvbG9yOiNmZmZ9fS50YWItY29udGVudD4udGFiLXBhbmV7ZGlzcGxheTpub25lfS50YWItY29u
dGVudD4uYWN0aXZle2Rpc3BsYXk6YmxvY2t9Lm5hdi10YWJzIC5kcm9wZG93bi1tZW51e21hcmdp
bi10b3A6LTFweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLXRvcC1yaWdodC1yYWRp
dXM6MH0ubmF2YmFye3Bvc2l0aW9uOnJlbGF0aXZlO21pbi1oZWlnaHQ6NTBweDttYXJnaW4tYm90
dG9tOjIwcHg7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudH1AbWVkaWEgKG1pbi13aWR0aDo3
NjhweCl7Lm5hdmJhcntib3JkZXItcmFkaXVzOjRweH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgp
ey5uYXZiYXItaGVhZGVye2Zsb2F0OmxlZnR9fS5uYXZiYXItY29sbGFwc2V7cGFkZGluZy1yaWdo
dDoxNXB4O3BhZGRpbmctbGVmdDoxNXB4O292ZXJmbG93LXg6dmlzaWJsZTstd2Via2l0LW92ZXJm
bG93LXNjcm9sbGluZzp0b3VjaDtib3JkZXItdG9wOjFweCBzb2xpZCB0cmFuc3BhcmVudDstd2Vi
a2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LC4xKTtib3gtc2hh
ZG93Omluc2V0IDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMSl9Lm5hdmJhci1jb2xsYXBzZS5p
bntvdmVyZmxvdy15OmF1dG99QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXZiYXItY29sbGFw
c2V7d2lkdGg6YXV0bztib3JkZXItdG9wOjA7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNo
YWRvdzpub25lfS5uYXZiYXItY29sbGFwc2UuY29sbGFwc2V7ZGlzcGxheTpibG9jayFpbXBvcnRh
bnQ7aGVpZ2h0OmF1dG8haW1wb3J0YW50O3BhZGRpbmctYm90dG9tOjA7b3ZlcmZsb3c6dmlzaWJs
ZSFpbXBvcnRhbnR9Lm5hdmJhci1jb2xsYXBzZS5pbntvdmVyZmxvdy15OnZpc2libGV9Lm5hdmJh
ci1maXhlZC1ib3R0b20gLm5hdmJhci1jb2xsYXBzZSwubmF2YmFyLWZpeGVkLXRvcCAubmF2YmFy
LWNvbGxhcHNlLC5uYXZiYXItc3RhdGljLXRvcCAubmF2YmFyLWNvbGxhcHNle3BhZGRpbmctcmln
aHQ6MDtwYWRkaW5nLWxlZnQ6MH19Lm5hdmJhci1maXhlZC1ib3R0b20gLm5hdmJhci1jb2xsYXBz
ZSwubmF2YmFyLWZpeGVkLXRvcCAubmF2YmFyLWNvbGxhcHNle21heC1oZWlnaHQ6MzQwcHh9QG1l
ZGlhIChtYXgtZGV2aWNlLXdpZHRoOjQ4MHB4KSBhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7
Lm5hdmJhci1maXhlZC1ib3R0b20gLm5hdmJhci1jb2xsYXBzZSwubmF2YmFyLWZpeGVkLXRvcCAu
bmF2YmFyLWNvbGxhcHNle21heC1oZWlnaHQ6MjAwcHh9fS5jb250YWluZXItZmx1aWQ+Lm5hdmJh
ci1jb2xsYXBzZSwuY29udGFpbmVyLWZsdWlkPi5uYXZiYXItaGVhZGVyLC5jb250YWluZXI+Lm5h
dmJhci1jb2xsYXBzZSwuY29udGFpbmVyPi5uYXZiYXItaGVhZGVye21hcmdpbi1yaWdodDotMTVw
eDttYXJnaW4tbGVmdDotMTVweH1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmNvbnRhaW5lci1m
bHVpZD4ubmF2YmFyLWNvbGxhcHNlLC5jb250YWluZXItZmx1aWQ+Lm5hdmJhci1oZWFkZXIsLmNv
bnRhaW5lcj4ubmF2YmFyLWNvbGxhcHNlLC5jb250YWluZXI+Lm5hdmJhci1oZWFkZXJ7bWFyZ2lu
LXJpZ2h0OjA7bWFyZ2luLWxlZnQ6MH19Lm5hdmJhci1zdGF0aWMtdG9we3otaW5kZXg6MTAwMDti
b3JkZXItd2lkdGg6MCAwIDFweH1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7Lm5hdmJhci1zdGF0
aWMtdG9we2JvcmRlci1yYWRpdXM6MH19Lm5hdmJhci1maXhlZC1ib3R0b20sLm5hdmJhci1maXhl
ZC10b3B7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MDtsZWZ0OjA7ei1pbmRleDoxMDMwfUBtZWRpYSAo
bWluLXdpZHRoOjc2OHB4KXsubmF2YmFyLWZpeGVkLWJvdHRvbSwubmF2YmFyLWZpeGVkLXRvcHti
b3JkZXItcmFkaXVzOjB9fS5uYXZiYXItZml4ZWQtdG9we3RvcDowO2JvcmRlci13aWR0aDowIDAg
MXB4fS5uYXZiYXItZml4ZWQtYm90dG9te2JvdHRvbTowO21hcmdpbi1ib3R0b206MDtib3JkZXIt
d2lkdGg6MXB4IDAgMH0ubmF2YmFyLWJyYW5ke2Zsb2F0OmxlZnQ7aGVpZ2h0OjUwcHg7cGFkZGlu
ZzoxNXB4IDE1cHg7Zm9udC1zaXplOjE4cHg7bGluZS1oZWlnaHQ6MjBweH0ubmF2YmFyLWJyYW5k
OmZvY3VzLC5uYXZiYXItYnJhbmQ6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Lm5hdmJhci1i
cmFuZD5pbWd7ZGlzcGxheTpibG9ja31AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7Lm5hdmJhcj4u
Y29udGFpbmVyIC5uYXZiYXItYnJhbmQsLm5hdmJhcj4uY29udGFpbmVyLWZsdWlkIC5uYXZiYXIt
YnJhbmR7bWFyZ2luLWxlZnQ6LTE1cHh9fS5uYXZiYXItdG9nZ2xle3Bvc2l0aW9uOnJlbGF0aXZl
O2Zsb2F0OnJpZ2h0O3BhZGRpbmc6OXB4IDEwcHg7bWFyZ2luLXRvcDo4cHg7bWFyZ2luLXJpZ2h0
OjE1cHg7bWFyZ2luLWJvdHRvbTo4cHg7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNr
Z3JvdW5kLWltYWdlOm5vbmU7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFk
aXVzOjRweH0ubmF2YmFyLXRvZ2dsZTpmb2N1c3tvdXRsaW5lOjB9Lm5hdmJhci10b2dnbGUgLmlj
b24tYmFye2Rpc3BsYXk6YmxvY2s7d2lkdGg6MjJweDtoZWlnaHQ6MnB4O2JvcmRlci1yYWRpdXM6
MXB4fS5uYXZiYXItdG9nZ2xlIC5pY29uLWJhcisuaWNvbi1iYXJ7bWFyZ2luLXRvcDo0cHh9QG1l
ZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXZiYXItdG9nZ2xle2Rpc3BsYXk6bm9uZX19Lm5hdmJh
ci1uYXZ7bWFyZ2luOjcuNXB4IC0xNXB4fS5uYXZiYXItbmF2PmxpPmF7cGFkZGluZy10b3A6MTBw
eDtwYWRkaW5nLWJvdHRvbToxMHB4O2xpbmUtaGVpZ2h0OjIwcHh9QG1lZGlhIChtYXgtd2lkdGg6
NzY3cHgpey5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51e3Bvc2l0aW9uOnN0YXRpYztm
bG9hdDpub25lO3dpZHRoOmF1dG87bWFyZ2luLXRvcDowO2JhY2tncm91bmQtY29sb3I6dHJhbnNw
YXJlbnQ7Ym9yZGVyOjA7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lfS5u
YXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1oZWFkZXIsLm5hdmJhci1u
YXYgLm9wZW4gLmRyb3Bkb3duLW1lbnU+bGk+YXtwYWRkaW5nOjVweCAxNXB4IDVweCAyNXB4fS5u
YXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51PmxpPmF7bGluZS1oZWlnaHQ6MjBweH0ubmF2
YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT5saT5hOmZvY3VzLC5uYXZiYXItbmF2IC5vcGVu
IC5kcm9wZG93bi1tZW51PmxpPmE6aG92ZXJ7YmFja2dyb3VuZC1pbWFnZTpub25lfX1AbWVkaWEg
KG1pbi13aWR0aDo3NjhweCl7Lm5hdmJhci1uYXZ7ZmxvYXQ6bGVmdDttYXJnaW46MH0ubmF2YmFy
LW5hdj5saXtmbG9hdDpsZWZ0fS5uYXZiYXItbmF2PmxpPmF7cGFkZGluZy10b3A6MTVweDtwYWRk
aW5nLWJvdHRvbToxNXB4fX0ubmF2YmFyLWZvcm17cGFkZGluZzoxMHB4IDE1cHg7bWFyZ2luLXRv
cDo4cHg7bWFyZ2luLXJpZ2h0Oi0xNXB4O21hcmdpbi1ib3R0b206OHB4O21hcmdpbi1sZWZ0Oi0x
NXB4O2JvcmRlci10b3A6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206MXB4IHNv
bGlkIHRyYW5zcGFyZW50Oy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAwIHJnYmEoMjU1
LDI1NSwyNTUsLjEpLDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuMSk7Ym94LXNoYWRvdzppbnNl
dCAwIDFweCAwIHJnYmEoMjU1LDI1NSwyNTUsLjEpLDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwu
MSl9QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXZiYXItZm9ybSAuZm9ybS1ncm91cHtkaXNw
bGF5OmlubGluZS1ibG9jazttYXJnaW4tYm90dG9tOjA7dmVydGljYWwtYWxpZ246bWlkZGxlfS5u
YXZiYXItZm9ybSAuZm9ybS1jb250cm9se2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOmF1dG87
dmVydGljYWwtYWxpZ246bWlkZGxlfS5uYXZiYXItZm9ybSAuZm9ybS1jb250cm9sLXN0YXRpY3tk
aXNwbGF5OmlubGluZS1ibG9ja30ubmF2YmFyLWZvcm0gLmlucHV0LWdyb3Vwe2Rpc3BsYXk6aW5s
aW5lLXRhYmxlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0ubmF2YmFyLWZvcm0gLmlucHV0LWdyb3Vw
IC5mb3JtLWNvbnRyb2wsLm5hdmJhci1mb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYWRk
b24sLm5hdmJhci1mb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtYnRue3dpZHRoOmF1dG99
Lm5hdmJhci1mb3JtIC5pbnB1dC1ncm91cD4uZm9ybS1jb250cm9se3dpZHRoOjEwMCV9Lm5hdmJh
ci1mb3JtIC5jb250cm9sLWxhYmVse21hcmdpbi1ib3R0b206MDt2ZXJ0aWNhbC1hbGlnbjptaWRk
bGV9Lm5hdmJhci1mb3JtIC5jaGVja2JveCwubmF2YmFyLWZvcm0gLnJhZGlve2Rpc3BsYXk6aW5s
aW5lLWJsb2NrO21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjA7dmVydGljYWwtYWxpZ246bWlk
ZGxlfS5uYXZiYXItZm9ybSAuY2hlY2tib3ggbGFiZWwsLm5hdmJhci1mb3JtIC5yYWRpbyBsYWJl
bHtwYWRkaW5nLWxlZnQ6MH0ubmF2YmFyLWZvcm0gLmNoZWNrYm94IGlucHV0W3R5cGU9Y2hlY2ti
b3hdLC5uYXZiYXItZm9ybSAucmFkaW8gaW5wdXRbdHlwZT1yYWRpb117cG9zaXRpb246cmVsYXRp
dmU7bWFyZ2luLWxlZnQ6MH0ubmF2YmFyLWZvcm0gLmhhcy1mZWVkYmFjayAuZm9ybS1jb250cm9s
LWZlZWRiYWNre3RvcDowfX1AbWVkaWEgKG1heC13aWR0aDo3NjdweCl7Lm5hdmJhci1mb3JtIC5m
b3JtLWdyb3Vwe21hcmdpbi1ib3R0b206NXB4fS5uYXZiYXItZm9ybSAuZm9ybS1ncm91cDpsYXN0
LWNoaWxke21hcmdpbi1ib3R0b206MH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5uYXZiYXIt
Zm9ybXt3aWR0aDphdXRvO3BhZGRpbmctdG9wOjA7cGFkZGluZy1ib3R0b206MDttYXJnaW4tcmln
aHQ6MDttYXJnaW4tbGVmdDowO2JvcmRlcjowOy13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1z
aGFkb3c6bm9uZX19Lm5hdmJhci1uYXY+bGk+LmRyb3Bkb3duLW1lbnV7bWFyZ2luLXRvcDowO2Jv
cmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfS5uYXZiYXIt
Zml4ZWQtYm90dG9tIC5uYXZiYXItbmF2PmxpPi5kcm9wZG93bi1tZW51e21hcmdpbi1ib3R0b206
MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjRweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo0cHg7
Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9
Lm5hdmJhci1idG57bWFyZ2luLXRvcDo4cHg7bWFyZ2luLWJvdHRvbTo4cHh9Lm5hdmJhci1idG4u
YnRuLXNte21hcmdpbi10b3A6MTBweDttYXJnaW4tYm90dG9tOjEwcHh9Lm5hdmJhci1idG4uYnRu
LXhze21hcmdpbi10b3A6MTRweDttYXJnaW4tYm90dG9tOjE0cHh9Lm5hdmJhci10ZXh0e21hcmdp
bi10b3A6MTVweDttYXJnaW4tYm90dG9tOjE1cHh9QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5u
YXZiYXItdGV4dHtmbG9hdDpsZWZ0O21hcmdpbi1yaWdodDoxNXB4O21hcmdpbi1sZWZ0OjE1cHh9
fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsubmF2YmFyLWxlZnR7ZmxvYXQ6bGVmdCFpbXBvcnRh
bnR9Lm5hdmJhci1yaWdodHtmbG9hdDpyaWdodCFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0Oi0xNXB4
fS5uYXZiYXItcmlnaHR+Lm5hdmJhci1yaWdodHttYXJnaW4tcmlnaHQ6MH19Lm5hdmJhci1kZWZh
dWx0e2JhY2tncm91bmQtY29sb3I6I2Y4ZjhmODtib3JkZXItY29sb3I6I2U3ZTdlN30ubmF2YmFy
LWRlZmF1bHQgLm5hdmJhci1icmFuZHtjb2xvcjojNzc3fS5uYXZiYXItZGVmYXVsdCAubmF2YmFy
LWJyYW5kOmZvY3VzLC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWJyYW5kOmhvdmVye2NvbG9yOiM1
ZTVlNWU7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ubmF2YmFyLWRlZmF1bHQgLm5hdmJh
ci10ZXh0e2NvbG9yOiM3Nzd9Lm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2PmxpPmF7Y29sb3I6
Izc3N30ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXY+bGk+YTpmb2N1cywubmF2YmFyLWRlZmF1
bHQgLm5hdmJhci1uYXY+bGk+YTpob3Zlcntjb2xvcjojMzMzO2JhY2tncm91bmQtY29sb3I6dHJh
bnNwYXJlbnR9Lm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2Pi5hY3RpdmU+YSwubmF2YmFyLWRl
ZmF1bHQgLm5hdmJhci1uYXY+LmFjdGl2ZT5hOmZvY3VzLC5uYXZiYXItZGVmYXVsdCAubmF2YmFy
LW5hdj4uYWN0aXZlPmE6aG92ZXJ7Y29sb3I6IzU1NTtiYWNrZ3JvdW5kLWNvbG9yOiNlN2U3ZTd9
Lm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2Pi5kaXNhYmxlZD5hLC5uYXZiYXItZGVmYXVsdCAu
bmF2YmFyLW5hdj4uZGlzYWJsZWQ+YTpmb2N1cywubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXY+
LmRpc2FibGVkPmE6aG92ZXJ7Y29sb3I6I2NjYztiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50
fS5uYXZiYXItZGVmYXVsdCAubmF2YmFyLXRvZ2dsZXtib3JkZXItY29sb3I6I2RkZH0ubmF2YmFy
LWRlZmF1bHQgLm5hdmJhci10b2dnbGU6Zm9jdXMsLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItdG9n
Z2xlOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2RkZH0ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci10
b2dnbGUgLmljb24tYmFye2JhY2tncm91bmQtY29sb3I6Izg4OH0ubmF2YmFyLWRlZmF1bHQgLm5h
dmJhci1jb2xsYXBzZSwubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1mb3Jte2JvcmRlci1jb2xvcjoj
ZTdlN2U3fS5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdj4ub3Blbj5hLC5uYXZiYXItZGVmYXVs
dCAubmF2YmFyLW5hdj4ub3Blbj5hOmZvY3VzLC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdj4u
b3Blbj5hOmhvdmVye2NvbG9yOiM1NTU7YmFja2dyb3VuZC1jb2xvcjojZTdlN2U3fUBtZWRpYSAo
bWF4LXdpZHRoOjc2N3B4KXsubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bk
b3duLW1lbnU+bGk+YXtjb2xvcjojNzc3fS5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3Bl
biAuZHJvcGRvd24tbWVudT5saT5hOmZvY3VzLC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAu
b3BlbiAuZHJvcGRvd24tbWVudT5saT5hOmhvdmVye2NvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xv
cjp0cmFuc3BhcmVudH0ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3du
LW1lbnU+LmFjdGl2ZT5hLC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRv
d24tbWVudT4uYWN0aXZlPmE6Zm9jdXMsLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVu
IC5kcm9wZG93bi1tZW51Pi5hY3RpdmU+YTpob3Zlcntjb2xvcjojNTU1O2JhY2tncm91bmQtY29s
b3I6I2U3ZTdlN30ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1l
bnU+LmRpc2FibGVkPmEsLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93
bi1tZW51Pi5kaXNhYmxlZD5hOmZvY3VzLC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiAub3Bl
biAuZHJvcGRvd24tbWVudT4uZGlzYWJsZWQ+YTpob3Zlcntjb2xvcjojY2NjO2JhY2tncm91bmQt
Y29sb3I6dHJhbnNwYXJlbnR9fS5uYXZiYXItZGVmYXVsdCAubmF2YmFyLWxpbmt7Y29sb3I6Izc3
N30ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1saW5rOmhvdmVye2NvbG9yOiMzMzN9Lm5hdmJhci1k
ZWZhdWx0IC5idG4tbGlua3tjb2xvcjojNzc3fS5uYXZiYXItZGVmYXVsdCAuYnRuLWxpbms6Zm9j
dXMsLm5hdmJhci1kZWZhdWx0IC5idG4tbGluazpob3Zlcntjb2xvcjojMzMzfS5uYXZiYXItZGVm
YXVsdCAuYnRuLWxpbmtbZGlzYWJsZWRdOmZvY3VzLC5uYXZiYXItZGVmYXVsdCAuYnRuLWxpbmtb
ZGlzYWJsZWRdOmhvdmVyLGZpZWxkc2V0W2Rpc2FibGVkXSAubmF2YmFyLWRlZmF1bHQgLmJ0bi1s
aW5rOmZvY3VzLGZpZWxkc2V0W2Rpc2FibGVkXSAubmF2YmFyLWRlZmF1bHQgLmJ0bi1saW5rOmhv
dmVye2NvbG9yOiNjY2N9Lm5hdmJhci1pbnZlcnNle2JhY2tncm91bmQtY29sb3I6IzIyMjtib3Jk
ZXItY29sb3I6IzA4MDgwOH0ubmF2YmFyLWludmVyc2UgLm5hdmJhci1icmFuZHtjb2xvcjojOWQ5
ZDlkfS5uYXZiYXItaW52ZXJzZSAubmF2YmFyLWJyYW5kOmZvY3VzLC5uYXZiYXItaW52ZXJzZSAu
bmF2YmFyLWJyYW5kOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVu
dH0ubmF2YmFyLWludmVyc2UgLm5hdmJhci10ZXh0e2NvbG9yOiM5ZDlkOWR9Lm5hdmJhci1pbnZl
cnNlIC5uYXZiYXItbmF2PmxpPmF7Y29sb3I6IzlkOWQ5ZH0ubmF2YmFyLWludmVyc2UgLm5hdmJh
ci1uYXY+bGk+YTpmb2N1cywubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXY+bGk+YTpob3Zlcntj
b2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9Lm5hdmJhci1pbnZlcnNlIC5u
YXZiYXItbmF2Pi5hY3RpdmU+YSwubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXY+LmFjdGl2ZT5h
OmZvY3VzLC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdj4uYWN0aXZlPmE6aG92ZXJ7Y29sb3I6
I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMwODA4MDh9Lm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2
Pi5kaXNhYmxlZD5hLC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdj4uZGlzYWJsZWQ+YTpmb2N1
cywubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXY+LmRpc2FibGVkPmE6aG92ZXJ7Y29sb3I6IzQ0
NDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5uYXZiYXItaW52ZXJzZSAubmF2YmFyLXRv
Z2dsZXtib3JkZXItY29sb3I6IzMzM30ubmF2YmFyLWludmVyc2UgLm5hdmJhci10b2dnbGU6Zm9j
dXMsLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItdG9nZ2xlOmhvdmVye2JhY2tncm91bmQtY29sb3I6
IzMzM30ubmF2YmFyLWludmVyc2UgLm5hdmJhci10b2dnbGUgLmljb24tYmFye2JhY2tncm91bmQt
Y29sb3I6I2ZmZn0ubmF2YmFyLWludmVyc2UgLm5hdmJhci1jb2xsYXBzZSwubmF2YmFyLWludmVy
c2UgLm5hdmJhci1mb3Jte2JvcmRlci1jb2xvcjojMTAxMDEwfS5uYXZiYXItaW52ZXJzZSAubmF2
YmFyLW5hdj4ub3Blbj5hLC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdj4ub3Blbj5hOmZvY3Vz
LC5uYXZiYXItaW52ZXJzZSAubmF2YmFyLW5hdj4ub3Blbj5hOmhvdmVye2NvbG9yOiNmZmY7YmFj
a2dyb3VuZC1jb2xvcjojMDgwODA4fUBtZWRpYSAobWF4LXdpZHRoOjc2N3B4KXsubmF2YmFyLWlu
dmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnU+LmRyb3Bkb3duLWhlYWRlcnti
b3JkZXItY29sb3I6IzA4MDgwOH0ubmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRy
b3Bkb3duLW1lbnUgLmRpdmlkZXJ7YmFja2dyb3VuZC1jb2xvcjojMDgwODA4fS5uYXZiYXItaW52
ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT5saT5he2NvbG9yOiM5ZDlkOWR9
Lm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51PmxpPmE6Zm9j
dXMsLm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51PmxpPmE6
aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fS5uYXZiYXItaW52
ZXJzZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT4uYWN0aXZlPmEsLm5hdmJhci1p
bnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51Pi5hY3RpdmU+YTpmb2N1cywu
bmF2YmFyLWludmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnU+LmFjdGl2ZT5h
OmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMDgwODA4fS5uYXZiYXItaW52ZXJz
ZSAubmF2YmFyLW5hdiAub3BlbiAuZHJvcGRvd24tbWVudT4uZGlzYWJsZWQ+YSwubmF2YmFyLWlu
dmVyc2UgLm5hdmJhci1uYXYgLm9wZW4gLmRyb3Bkb3duLW1lbnU+LmRpc2FibGVkPmE6Zm9jdXMs
Lm5hdmJhci1pbnZlcnNlIC5uYXZiYXItbmF2IC5vcGVuIC5kcm9wZG93bi1tZW51Pi5kaXNhYmxl
ZD5hOmhvdmVye2NvbG9yOiM0NDQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH19Lm5hdmJh
ci1pbnZlcnNlIC5uYXZiYXItbGlua3tjb2xvcjojOWQ5ZDlkfS5uYXZiYXItaW52ZXJzZSAubmF2
YmFyLWxpbms6aG92ZXJ7Y29sb3I6I2ZmZn0ubmF2YmFyLWludmVyc2UgLmJ0bi1saW5re2NvbG9y
OiM5ZDlkOWR9Lm5hdmJhci1pbnZlcnNlIC5idG4tbGluazpmb2N1cywubmF2YmFyLWludmVyc2Ug
LmJ0bi1saW5rOmhvdmVye2NvbG9yOiNmZmZ9Lm5hdmJhci1pbnZlcnNlIC5idG4tbGlua1tkaXNh
YmxlZF06Zm9jdXMsLm5hdmJhci1pbnZlcnNlIC5idG4tbGlua1tkaXNhYmxlZF06aG92ZXIsZmll
bGRzZXRbZGlzYWJsZWRdIC5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbms6Zm9jdXMsZmllbGRzZXRb
ZGlzYWJsZWRdIC5uYXZiYXItaW52ZXJzZSAuYnRuLWxpbms6aG92ZXJ7Y29sb3I6IzQ0NH0uYnJl
YWRjcnVtYntwYWRkaW5nOjhweCAxNXB4O21hcmdpbi1ib3R0b206MjBweDtsaXN0LXN0eWxlOm5v
bmU7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2JvcmRlci1yYWRpdXM6NHB4fS5icmVhZGNydW1i
Pmxpe2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5icmVhZGNydW1iPmxpK2xpOmJlZm9yZXtwYWRkaW5n
OjAgNXB4O2NvbG9yOiNjY2M7Y29udGVudDoiL1wwMGEwIn0uYnJlYWRjcnVtYj4uYWN0aXZle2Nv
bG9yOiM3Nzd9LnBhZ2luYXRpb257ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZy1sZWZ0OjA7
bWFyZ2luOjIwcHggMDtib3JkZXItcmFkaXVzOjRweH0ucGFnaW5hdGlvbj5saXtkaXNwbGF5Omlu
bGluZX0ucGFnaW5hdGlvbj5saT5hLC5wYWdpbmF0aW9uPmxpPnNwYW57cG9zaXRpb246cmVsYXRp
dmU7ZmxvYXQ6bGVmdDtwYWRkaW5nOjZweCAxMnB4O21hcmdpbi1sZWZ0Oi0xcHg7bGluZS1oZWln
aHQ6MS40Mjg1NzE0Mztjb2xvcjojMzM3YWI3O3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91
bmQtY29sb3I6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICNkZGR9LnBhZ2luYXRpb24+bGk6Zmlyc3Qt
Y2hpbGQ+YSwucGFnaW5hdGlvbj5saTpmaXJzdC1jaGlsZD5zcGFue21hcmdpbi1sZWZ0OjA7Ym9y
ZGVyLXRvcC1sZWZ0LXJhZGl1czo0cHg7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo0cHh9LnBh
Z2luYXRpb24+bGk6bGFzdC1jaGlsZD5hLC5wYWdpbmF0aW9uPmxpOmxhc3QtY2hpbGQ+c3Bhbnti
b3JkZXItdG9wLXJpZ2h0LXJhZGl1czo0cHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NHB4
fS5wYWdpbmF0aW9uPmxpPmE6Zm9jdXMsLnBhZ2luYXRpb24+bGk+YTpob3ZlciwucGFnaW5hdGlv
bj5saT5zcGFuOmZvY3VzLC5wYWdpbmF0aW9uPmxpPnNwYW46aG92ZXJ7ei1pbmRleDozO2NvbG9y
OiMyMzUyN2M7YmFja2dyb3VuZC1jb2xvcjojZWVlO2JvcmRlci1jb2xvcjojZGRkfS5wYWdpbmF0
aW9uPi5hY3RpdmU+YSwucGFnaW5hdGlvbj4uYWN0aXZlPmE6Zm9jdXMsLnBhZ2luYXRpb24+LmFj
dGl2ZT5hOmhvdmVyLC5wYWdpbmF0aW9uPi5hY3RpdmU+c3BhbiwucGFnaW5hdGlvbj4uYWN0aXZl
PnNwYW46Zm9jdXMsLnBhZ2luYXRpb24+LmFjdGl2ZT5zcGFuOmhvdmVye3otaW5kZXg6Mjtjb2xv
cjojZmZmO2N1cnNvcjpkZWZhdWx0O2JhY2tncm91bmQtY29sb3I6IzMzN2FiNztib3JkZXItY29s
b3I6IzMzN2FiN30ucGFnaW5hdGlvbj4uZGlzYWJsZWQ+YSwucGFnaW5hdGlvbj4uZGlzYWJsZWQ+
YTpmb2N1cywucGFnaW5hdGlvbj4uZGlzYWJsZWQ+YTpob3ZlciwucGFnaW5hdGlvbj4uZGlzYWJs
ZWQ+c3BhbiwucGFnaW5hdGlvbj4uZGlzYWJsZWQ+c3Bhbjpmb2N1cywucGFnaW5hdGlvbj4uZGlz
YWJsZWQ+c3Bhbjpob3Zlcntjb2xvcjojNzc3O2N1cnNvcjpub3QtYWxsb3dlZDtiYWNrZ3JvdW5k
LWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiNkZGR9LnBhZ2luYXRpb24tbGc+bGk+YSwucGFnaW5h
dGlvbi1sZz5saT5zcGFue3BhZGRpbmc6MTBweCAxNnB4O2ZvbnQtc2l6ZToxOHB4O2xpbmUtaGVp
Z2h0OjEuMzMzMzMzM30ucGFnaW5hdGlvbi1sZz5saTpmaXJzdC1jaGlsZD5hLC5wYWdpbmF0aW9u
LWxnPmxpOmZpcnN0LWNoaWxkPnNwYW57Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7Ym9yZGVy
LWJvdHRvbS1sZWZ0LXJhZGl1czo2cHh9LnBhZ2luYXRpb24tbGc+bGk6bGFzdC1jaGlsZD5hLC5w
YWdpbmF0aW9uLWxnPmxpOmxhc3QtY2hpbGQ+c3Bhbntib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2
cHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NnB4fS5wYWdpbmF0aW9uLXNtPmxpPmEsLnBh
Z2luYXRpb24tc20+bGk+c3BhbntwYWRkaW5nOjVweCAxMHB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUt
aGVpZ2h0OjEuNX0ucGFnaW5hdGlvbi1zbT5saTpmaXJzdC1jaGlsZD5hLC5wYWdpbmF0aW9uLXNt
PmxpOmZpcnN0LWNoaWxkPnNwYW57Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7Ym9yZGVyLWJv
dHRvbS1sZWZ0LXJhZGl1czozcHh9LnBhZ2luYXRpb24tc20+bGk6bGFzdC1jaGlsZD5hLC5wYWdp
bmF0aW9uLXNtPmxpOmxhc3QtY2hpbGQ+c3Bhbntib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHg7
Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6M3B4fS5wYWdlcntwYWRkaW5nLWxlZnQ6MDttYXJn
aW46MjBweCAwO3RleHQtYWxpZ246Y2VudGVyO2xpc3Qtc3R5bGU6bm9uZX0ucGFnZXIgbGl7ZGlz
cGxheTppbmxpbmV9LnBhZ2VyIGxpPmEsLnBhZ2VyIGxpPnNwYW57ZGlzcGxheTppbmxpbmUtYmxv
Y2s7cGFkZGluZzo1cHggMTRweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyOjFweCBzb2xp
ZCAjZGRkO2JvcmRlci1yYWRpdXM6MTVweH0ucGFnZXIgbGk+YTpmb2N1cywucGFnZXIgbGk+YTpo
b3Zlcnt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNlZWV9LnBhZ2VyIC5u
ZXh0PmEsLnBhZ2VyIC5uZXh0PnNwYW57ZmxvYXQ6cmlnaHR9LnBhZ2VyIC5wcmV2aW91cz5hLC5w
YWdlciAucHJldmlvdXM+c3BhbntmbG9hdDpsZWZ0fS5wYWdlciAuZGlzYWJsZWQ+YSwucGFnZXIg
LmRpc2FibGVkPmE6Zm9jdXMsLnBhZ2VyIC5kaXNhYmxlZD5hOmhvdmVyLC5wYWdlciAuZGlzYWJs
ZWQ+c3Bhbntjb2xvcjojNzc3O2N1cnNvcjpub3QtYWxsb3dlZDtiYWNrZ3JvdW5kLWNvbG9yOiNm
ZmZ9LmxhYmVse2Rpc3BsYXk6aW5saW5lO3BhZGRpbmc6LjJlbSAuNmVtIC4zZW07Zm9udC1zaXpl
Ojc1JTtmb250LXdlaWdodDo3MDA7bGluZS1oZWlnaHQ6MTtjb2xvcjojZmZmO3RleHQtYWxpZ246
Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTtib3JkZXIt
cmFkaXVzOi4yNWVtfWEubGFiZWw6Zm9jdXMsYS5sYWJlbDpob3Zlcntjb2xvcjojZmZmO3RleHQt
ZGVjb3JhdGlvbjpub25lO2N1cnNvcjpwb2ludGVyfS5sYWJlbDplbXB0eXtkaXNwbGF5Om5vbmV9
LmJ0biAubGFiZWx7cG9zaXRpb246cmVsYXRpdmU7dG9wOi0xcHh9LmxhYmVsLWRlZmF1bHR7YmFj
a2dyb3VuZC1jb2xvcjojNzc3fS5sYWJlbC1kZWZhdWx0W2hyZWZdOmZvY3VzLC5sYWJlbC1kZWZh
dWx0W2hyZWZdOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzVlNWU1ZX0ubGFiZWwtcHJpbWFyeXti
YWNrZ3JvdW5kLWNvbG9yOiMzMzdhYjd9LmxhYmVsLXByaW1hcnlbaHJlZl06Zm9jdXMsLmxhYmVs
LXByaW1hcnlbaHJlZl06aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMjg2MDkwfS5sYWJlbC1zdWNj
ZXNze2JhY2tncm91bmQtY29sb3I6IzVjYjg1Y30ubGFiZWwtc3VjY2Vzc1tocmVmXTpmb2N1cywu
bGFiZWwtc3VjY2Vzc1tocmVmXTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiM0NDlkNDR9LmxhYmVs
LWluZm97YmFja2dyb3VuZC1jb2xvcjojNWJjMGRlfS5sYWJlbC1pbmZvW2hyZWZdOmZvY3VzLC5s
YWJlbC1pbmZvW2hyZWZdOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzMxYjBkNX0ubGFiZWwtd2Fy
bmluZ3tiYWNrZ3JvdW5kLWNvbG9yOiNmMGFkNGV9LmxhYmVsLXdhcm5pbmdbaHJlZl06Zm9jdXMs
LmxhYmVsLXdhcm5pbmdbaHJlZl06aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZWM5NzFmfS5sYWJl
bC1kYW5nZXJ7YmFja2dyb3VuZC1jb2xvcjojZDk1MzRmfS5sYWJlbC1kYW5nZXJbaHJlZl06Zm9j
dXMsLmxhYmVsLWRhbmdlcltocmVmXTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNjOTMwMmN9LmJh
ZGdle2Rpc3BsYXk6aW5saW5lLWJsb2NrO21pbi13aWR0aDoxMHB4O3BhZGRpbmc6M3B4IDdweDtm
b250LXNpemU6MTJweDtmb250LXdlaWdodDo3MDA7bGluZS1oZWlnaHQ6MTtjb2xvcjojZmZmO3Rl
eHQtYWxpZ246Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7
YmFja2dyb3VuZC1jb2xvcjojNzc3O2JvcmRlci1yYWRpdXM6MTBweH0uYmFkZ2U6ZW1wdHl7ZGlz
cGxheTpub25lfS5idG4gLmJhZGdle3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMXB4fS5idG4tZ3Jv
dXAteHM+LmJ0biAuYmFkZ2UsLmJ0bi14cyAuYmFkZ2V7dG9wOjA7cGFkZGluZzoxcHggNXB4fWEu
YmFkZ2U6Zm9jdXMsYS5iYWRnZTpob3Zlcntjb2xvcjojZmZmO3RleHQtZGVjb3JhdGlvbjpub25l
O2N1cnNvcjpwb2ludGVyfS5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlPi5iYWRnZSwubmF2LXBpbGxz
Pi5hY3RpdmU+YT4uYmFkZ2V7Y29sb3I6IzMzN2FiNztiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9Lmxp
c3QtZ3JvdXAtaXRlbT4uYmFkZ2V7ZmxvYXQ6cmlnaHR9Lmxpc3QtZ3JvdXAtaXRlbT4uYmFkZ2Ur
LmJhZGdle21hcmdpbi1yaWdodDo1cHh9Lm5hdi1waWxscz5saT5hPi5iYWRnZXttYXJnaW4tbGVm
dDozcHh9Lmp1bWJvdHJvbntwYWRkaW5nLXRvcDozMHB4O3BhZGRpbmctYm90dG9tOjMwcHg7bWFy
Z2luLWJvdHRvbTozMHB4O2NvbG9yOmluaGVyaXQ7YmFja2dyb3VuZC1jb2xvcjojZWVlfS5qdW1i
b3Ryb24gLmgxLC5qdW1ib3Ryb24gaDF7Y29sb3I6aW5oZXJpdH0uanVtYm90cm9uIHB7bWFyZ2lu
LWJvdHRvbToxNXB4O2ZvbnQtc2l6ZToyMXB4O2ZvbnQtd2VpZ2h0OjIwMH0uanVtYm90cm9uPmhy
e2JvcmRlci10b3AtY29sb3I6I2Q1ZDVkNX0uY29udGFpbmVyIC5qdW1ib3Ryb24sLmNvbnRhaW5l
ci1mbHVpZCAuanVtYm90cm9ue2JvcmRlci1yYWRpdXM6NnB4fS5qdW1ib3Ryb24gLmNvbnRhaW5l
cnttYXgtd2lkdGg6MTAwJX1AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjc2OHB4KXsuanVt
Ym90cm9ue3BhZGRpbmctdG9wOjQ4cHg7cGFkZGluZy1ib3R0b206NDhweH0uY29udGFpbmVyIC5q
dW1ib3Ryb24sLmNvbnRhaW5lci1mbHVpZCAuanVtYm90cm9ue3BhZGRpbmctcmlnaHQ6NjBweDtw
YWRkaW5nLWxlZnQ6NjBweH0uanVtYm90cm9uIC5oMSwuanVtYm90cm9uIGgxe2ZvbnQtc2l6ZTo2
M3B4fX0udGh1bWJuYWlse2Rpc3BsYXk6YmxvY2s7cGFkZGluZzo0cHg7bWFyZ2luLWJvdHRvbToy
MHB4O2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjox
cHggc29saWQgI2RkZDtib3JkZXItcmFkaXVzOjRweDstd2Via2l0LXRyYW5zaXRpb246Ym9yZGVy
IC4ycyBlYXNlLWluLW91dDstby10cmFuc2l0aW9uOmJvcmRlciAuMnMgZWFzZS1pbi1vdXQ7dHJh
bnNpdGlvbjpib3JkZXIgLjJzIGVhc2UtaW4tb3V0fS50aHVtYm5haWwgYT5pbWcsLnRodW1ibmFp
bD5pbWd7bWFyZ2luLXJpZ2h0OmF1dG87bWFyZ2luLWxlZnQ6YXV0b31hLnRodW1ibmFpbC5hY3Rp
dmUsYS50aHVtYm5haWw6Zm9jdXMsYS50aHVtYm5haWw6aG92ZXJ7Ym9yZGVyLWNvbG9yOiMzMzdh
Yjd9LnRodW1ibmFpbCAuY2FwdGlvbntwYWRkaW5nOjlweDtjb2xvcjojMzMzfS5hbGVydHtwYWRk
aW5nOjE1cHg7bWFyZ2luLWJvdHRvbToyMHB4O2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7
Ym9yZGVyLXJhZGl1czo0cHh9LmFsZXJ0IGg0e21hcmdpbi10b3A6MDtjb2xvcjppbmhlcml0fS5h
bGVydCAuYWxlcnQtbGlua3tmb250LXdlaWdodDo3MDB9LmFsZXJ0PnAsLmFsZXJ0PnVse21hcmdp
bi1ib3R0b206MH0uYWxlcnQ+cCtwe21hcmdpbi10b3A6NXB4fS5hbGVydC1kaXNtaXNzYWJsZSwu
YWxlcnQtZGlzbWlzc2libGV7cGFkZGluZy1yaWdodDozNXB4fS5hbGVydC1kaXNtaXNzYWJsZSAu
Y2xvc2UsLmFsZXJ0LWRpc21pc3NpYmxlIC5jbG9zZXtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTJw
eDtyaWdodDotMjFweDtjb2xvcjppbmhlcml0fS5hbGVydC1zdWNjZXNze2NvbG9yOiMzYzc2M2Q7
YmFja2dyb3VuZC1jb2xvcjojZGZmMGQ4O2JvcmRlci1jb2xvcjojZDZlOWM2fS5hbGVydC1zdWNj
ZXNzIGhye2JvcmRlci10b3AtY29sb3I6I2M5ZTJiM30uYWxlcnQtc3VjY2VzcyAuYWxlcnQtbGlu
a3tjb2xvcjojMmI1NDJjfS5hbGVydC1pbmZve2NvbG9yOiMzMTcwOGY7YmFja2dyb3VuZC1jb2xv
cjojZDllZGY3O2JvcmRlci1jb2xvcjojYmNlOGYxfS5hbGVydC1pbmZvIGhye2JvcmRlci10b3At
Y29sb3I6I2E2ZTFlY30uYWxlcnQtaW5mbyAuYWxlcnQtbGlua3tjb2xvcjojMjQ1MjY5fS5hbGVy
dC13YXJuaW5ne2NvbG9yOiM4YTZkM2I7YmFja2dyb3VuZC1jb2xvcjojZmNmOGUzO2JvcmRlci1j
b2xvcjojZmFlYmNjfS5hbGVydC13YXJuaW5nIGhye2JvcmRlci10b3AtY29sb3I6I2Y3ZTFiNX0u
YWxlcnQtd2FybmluZyAuYWxlcnQtbGlua3tjb2xvcjojNjY1MTJjfS5hbGVydC1kYW5nZXJ7Y29s
b3I6I2E5NDQ0MjtiYWNrZ3JvdW5kLWNvbG9yOiNmMmRlZGU7Ym9yZGVyLWNvbG9yOiNlYmNjZDF9
LmFsZXJ0LWRhbmdlciBocntib3JkZXItdG9wLWNvbG9yOiNlNGI5YzB9LmFsZXJ0LWRhbmdlciAu
YWxlcnQtbGlua3tjb2xvcjojODQzNTM0fUAtd2Via2l0LWtleWZyYW1lcyBwcm9ncmVzcy1iYXIt
c3RyaXBlc3tmcm9te2JhY2tncm91bmQtcG9zaXRpb246NDBweCAwfXRve2JhY2tncm91bmQtcG9z
aXRpb246MCAwfX1ALW8ta2V5ZnJhbWVzIHByb2dyZXNzLWJhci1zdHJpcGVze2Zyb217YmFja2dy
b3VuZC1wb3NpdGlvbjo0MHB4IDB9dG97YmFja2dyb3VuZC1wb3NpdGlvbjowIDB9fUBrZXlmcmFt
ZXMgcHJvZ3Jlc3MtYmFyLXN0cmlwZXN7ZnJvbXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjQwcHggMH10
b3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMH19LnByb2dyZXNze2hlaWdodDoyMHB4O21hcmdpbi1i
b3R0b206MjBweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1O2JvcmRl
ci1yYWRpdXM6NHB4Oy13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAycHggcmdiYSgwLDAs
MCwuMSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAycHggcmdiYSgwLDAsMCwuMSl9LnByb2dyZXNz
LWJhcntmbG9hdDpsZWZ0O3dpZHRoOjA7aGVpZ2h0OjEwMCU7Zm9udC1zaXplOjEycHg7bGluZS1o
ZWlnaHQ6MjBweDtjb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQtY29sb3I6
IzMzN2FiNzstd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAtMXB4IDAgcmdiYSgwLDAsMCwuMTUp
O2JveC1zaGFkb3c6aW5zZXQgMCAtMXB4IDAgcmdiYSgwLDAsMCwuMTUpOy13ZWJraXQtdHJhbnNp
dGlvbjp3aWR0aCAuNnMgZWFzZTstby10cmFuc2l0aW9uOndpZHRoIC42cyBlYXNlO3RyYW5zaXRp
b246d2lkdGggLjZzIGVhc2V9LnByb2dyZXNzLWJhci1zdHJpcGVkLC5wcm9ncmVzcy1zdHJpcGVk
IC5wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCg0
NWRlZyxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLHRyYW5zcGFyZW50IDI1JSx0cmFuc3BhcmVu
dCA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUl
LHRyYW5zcGFyZW50IDc1JSx0cmFuc3BhcmVudCk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXIt
Z3JhZGllbnQoNDVkZWcscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDI1JSx0cmFuc3BhcmVudCAyNSUs
dHJhbnNwYXJlbnQgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA1MCUscmdiYSgyNTUsMjU1LDI1
NSwuMTUpIDc1JSx0cmFuc3BhcmVudCA3NSUsdHJhbnNwYXJlbnQpO2JhY2tncm91bmQtaW1hZ2U6
bGluZWFyLWdyYWRpZW50KDQ1ZGVnLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSAyNSUsdHJhbnNwYXJl
bnQgMjUlLHRyYW5zcGFyZW50IDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLHJnYmEoMjU1
LDI1NSwyNTUsLjE1KSA3NSUsdHJhbnNwYXJlbnQgNzUlLHRyYW5zcGFyZW50KTstd2Via2l0LWJh
Y2tncm91bmQtc2l6ZTo0MHB4IDQwcHg7YmFja2dyb3VuZC1zaXplOjQwcHggNDBweH0ucHJvZ3Jl
c3MtYmFyLmFjdGl2ZSwucHJvZ3Jlc3MuYWN0aXZlIC5wcm9ncmVzcy1iYXJ7LXdlYmtpdC1hbmlt
YXRpb246cHJvZ3Jlc3MtYmFyLXN0cmlwZXMgMnMgbGluZWFyIGluZmluaXRlOy1vLWFuaW1hdGlv
bjpwcm9ncmVzcy1iYXItc3RyaXBlcyAycyBsaW5lYXIgaW5maW5pdGU7YW5pbWF0aW9uOnByb2dy
ZXNzLWJhci1zdHJpcGVzIDJzIGxpbmVhciBpbmZpbml0ZX0ucHJvZ3Jlc3MtYmFyLXN1Y2Nlc3N7
YmFja2dyb3VuZC1jb2xvcjojNWNiODVjfS5wcm9ncmVzcy1zdHJpcGVkIC5wcm9ncmVzcy1iYXIt
c3VjY2Vzc3tiYWNrZ3JvdW5kLWltYWdlOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KDQ1ZGVnLHJn
YmEoMjU1LDI1NSwyNTUsLjE1KSAyNSUsdHJhbnNwYXJlbnQgMjUlLHRyYW5zcGFyZW50IDUwJSxy
Z2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA3NSUsdHJhbnNw
YXJlbnQgNzUlLHRyYW5zcGFyZW50KTtiYWNrZ3JvdW5kLWltYWdlOi1vLWxpbmVhci1ncmFkaWVu
dCg0NWRlZyxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLHRyYW5zcGFyZW50IDI1JSx0cmFuc3Bh
cmVudCA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkg
NzUlLHRyYW5zcGFyZW50IDc1JSx0cmFuc3BhcmVudCk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXIt
Z3JhZGllbnQoNDVkZWcscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDI1JSx0cmFuc3BhcmVudCAyNSUs
dHJhbnNwYXJlbnQgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA1MCUscmdiYSgyNTUsMjU1LDI1
NSwuMTUpIDc1JSx0cmFuc3BhcmVudCA3NSUsdHJhbnNwYXJlbnQpfS5wcm9ncmVzcy1iYXItaW5m
b3tiYWNrZ3JvdW5kLWNvbG9yOiM1YmMwZGV9LnByb2dyZXNzLXN0cmlwZWQgLnByb2dyZXNzLWJh
ci1pbmZve2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQoNDVkZWcscmdi
YSgyNTUsMjU1LDI1NSwuMTUpIDI1JSx0cmFuc3BhcmVudCAyNSUsdHJhbnNwYXJlbnQgNTAlLHJn
YmEoMjU1LDI1NSwyNTUsLjE1KSA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDc1JSx0cmFuc3Bh
cmVudCA3NSUsdHJhbnNwYXJlbnQpO2JhY2tncm91bmQtaW1hZ2U6LW8tbGluZWFyLWdyYWRpZW50
KDQ1ZGVnLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSAyNSUsdHJhbnNwYXJlbnQgMjUlLHRyYW5zcGFy
ZW50IDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA3
NSUsdHJhbnNwYXJlbnQgNzUlLHRyYW5zcGFyZW50KTtiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1n
cmFkaWVudCg0NWRlZyxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLHRyYW5zcGFyZW50IDI1JSx0
cmFuc3BhcmVudCA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSxyZ2JhKDI1NSwyNTUsMjU1
LC4xNSkgNzUlLHRyYW5zcGFyZW50IDc1JSx0cmFuc3BhcmVudCl9LnByb2dyZXNzLWJhci13YXJu
aW5ne2JhY2tncm91bmQtY29sb3I6I2YwYWQ0ZX0ucHJvZ3Jlc3Mtc3RyaXBlZCAucHJvZ3Jlc3Mt
YmFyLXdhcm5pbmd7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCg0NWRl
ZyxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLHRyYW5zcGFyZW50IDI1JSx0cmFuc3BhcmVudCA1
MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUlLHRy
YW5zcGFyZW50IDc1JSx0cmFuc3BhcmVudCk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3Jh
ZGllbnQoNDVkZWcscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDI1JSx0cmFuc3BhcmVudCAyNSUsdHJh
bnNwYXJlbnQgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA1MCUscmdiYSgyNTUsMjU1LDI1NSwu
MTUpIDc1JSx0cmFuc3BhcmVudCA3NSUsdHJhbnNwYXJlbnQpO2JhY2tncm91bmQtaW1hZ2U6bGlu
ZWFyLWdyYWRpZW50KDQ1ZGVnLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSAyNSUsdHJhbnNwYXJlbnQg
MjUlLHRyYW5zcGFyZW50IDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLHJnYmEoMjU1LDI1
NSwyNTUsLjE1KSA3NSUsdHJhbnNwYXJlbnQgNzUlLHRyYW5zcGFyZW50KX0ucHJvZ3Jlc3MtYmFy
LWRhbmdlcntiYWNrZ3JvdW5kLWNvbG9yOiNkOTUzNGZ9LnByb2dyZXNzLXN0cmlwZWQgLnByb2dy
ZXNzLWJhci1kYW5nZXJ7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCg0
NWRlZyxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgMjUlLHRyYW5zcGFyZW50IDI1JSx0cmFuc3BhcmVu
dCA1MCUscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNzUl
LHRyYW5zcGFyZW50IDc1JSx0cmFuc3BhcmVudCk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXIt
Z3JhZGllbnQoNDVkZWcscmdiYSgyNTUsMjU1LDI1NSwuMTUpIDI1JSx0cmFuc3BhcmVudCAyNSUs
dHJhbnNwYXJlbnQgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSA1MCUscmdiYSgyNTUsMjU1LDI1
NSwuMTUpIDc1JSx0cmFuc3BhcmVudCA3NSUsdHJhbnNwYXJlbnQpO2JhY2tncm91bmQtaW1hZ2U6
bGluZWFyLWdyYWRpZW50KDQ1ZGVnLHJnYmEoMjU1LDI1NSwyNTUsLjE1KSAyNSUsdHJhbnNwYXJl
bnQgMjUlLHRyYW5zcGFyZW50IDUwJSxyZ2JhKDI1NSwyNTUsMjU1LC4xNSkgNTAlLHJnYmEoMjU1
LDI1NSwyNTUsLjE1KSA3NSUsdHJhbnNwYXJlbnQgNzUlLHRyYW5zcGFyZW50KX0ubWVkaWF7bWFy
Z2luLXRvcDoxNXB4fS5tZWRpYTpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjB9Lm1lZGlhLC5tZWRp
YS1ib2R5e292ZXJmbG93OmhpZGRlbjt6b29tOjF9Lm1lZGlhLWJvZHl7d2lkdGg6MTAwMDBweH0u
bWVkaWEtb2JqZWN0e2Rpc3BsYXk6YmxvY2t9Lm1lZGlhLW9iamVjdC5pbWctdGh1bWJuYWlse21h
eC13aWR0aDpub25lfS5tZWRpYS1yaWdodCwubWVkaWE+LnB1bGwtcmlnaHR7cGFkZGluZy1sZWZ0
OjEwcHh9Lm1lZGlhLWxlZnQsLm1lZGlhPi5wdWxsLWxlZnR7cGFkZGluZy1yaWdodDoxMHB4fS5t
ZWRpYS1ib2R5LC5tZWRpYS1sZWZ0LC5tZWRpYS1yaWdodHtkaXNwbGF5OnRhYmxlLWNlbGw7dmVy
dGljYWwtYWxpZ246dG9wfS5tZWRpYS1taWRkbGV7dmVydGljYWwtYWxpZ246bWlkZGxlfS5tZWRp
YS1ib3R0b217dmVydGljYWwtYWxpZ246Ym90dG9tfS5tZWRpYS1oZWFkaW5ne21hcmdpbi10b3A6
MDttYXJnaW4tYm90dG9tOjVweH0ubWVkaWEtbGlzdHtwYWRkaW5nLWxlZnQ6MDtsaXN0LXN0eWxl
Om5vbmV9Lmxpc3QtZ3JvdXB7cGFkZGluZy1sZWZ0OjA7bWFyZ2luLWJvdHRvbToyMHB4fS5saXN0
LWdyb3VwLWl0ZW17cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztwYWRkaW5nOjEwcHgg
MTVweDttYXJnaW4tYm90dG9tOi0xcHg7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjoxcHgg
c29saWQgI2RkZH0ubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxke2JvcmRlci10b3AtbGVmdC1y
YWRpdXM6NHB4O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjRweH0ubGlzdC1ncm91cC1pdGVtOmxh
c3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjRweDti
b3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjRweH1hLmxpc3QtZ3JvdXAtaXRlbSxidXR0b24ubGlz
dC1ncm91cC1pdGVte2NvbG9yOiM1NTV9YS5saXN0LWdyb3VwLWl0ZW0gLmxpc3QtZ3JvdXAtaXRl
bS1oZWFkaW5nLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0gLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5n
e2NvbG9yOiMzMzN9YS5saXN0LWdyb3VwLWl0ZW06Zm9jdXMsYS5saXN0LWdyb3VwLWl0ZW06aG92
ZXIsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbTpmb2N1cyxidXR0b24ubGlzdC1ncm91cC1pdGVtOmhv
dmVye2NvbG9yOiM1NTU7dGV4dC1kZWNvcmF0aW9uOm5vbmU7YmFja2dyb3VuZC1jb2xvcjojZjVm
NWY1fWJ1dHRvbi5saXN0LWdyb3VwLWl0ZW17d2lkdGg6MTAwJTt0ZXh0LWFsaWduOmxlZnR9Lmxp
c3QtZ3JvdXAtaXRlbS5kaXNhYmxlZCwubGlzdC1ncm91cC1pdGVtLmRpc2FibGVkOmZvY3VzLC5s
aXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQ6aG92ZXJ7Y29sb3I6Izc3NztjdXJzb3I6bm90LWFsbG93
ZWQ7YmFja2dyb3VuZC1jb2xvcjojZWVlfS5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQgLmxpc3Qt
Z3JvdXAtaXRlbS1oZWFkaW5nLC5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQ6Zm9jdXMgLmxpc3Qt
Z3JvdXAtaXRlbS1oZWFkaW5nLC5saXN0LWdyb3VwLWl0ZW0uZGlzYWJsZWQ6aG92ZXIgLmxpc3Qt
Z3JvdXAtaXRlbS1oZWFkaW5ne2NvbG9yOmluaGVyaXR9Lmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxl
ZCAubGlzdC1ncm91cC1pdGVtLXRleHQsLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZDpmb2N1cyAu
bGlzdC1ncm91cC1pdGVtLXRleHQsLmxpc3QtZ3JvdXAtaXRlbS5kaXNhYmxlZDpob3ZlciAubGlz
dC1ncm91cC1pdGVtLXRleHR7Y29sb3I6Izc3N30ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSwubGlz
dC1ncm91cC1pdGVtLmFjdGl2ZTpmb2N1cywubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpob3Zlcnt6
LWluZGV4OjI7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMzMzdhYjc7Ym9yZGVyLWNvbG9y
OiMzMzdhYjd9Lmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5n
LC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZz4uc21hbGws
Lmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmUgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nPnNtYWxsLC5s
aXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZywubGlz
dC1ncm91cC1pdGVtLmFjdGl2ZTpmb2N1cyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmc+LnNtYWxs
LC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmZvY3VzIC5saXN0LWdyb3VwLWl0ZW0taGVhZGluZz5z
bWFsbCwubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpob3ZlciAubGlzdC1ncm91cC1pdGVtLWhlYWRp
bmcsLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6aG92ZXIgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5n
Pi5zbWFsbCwubGlzdC1ncm91cC1pdGVtLmFjdGl2ZTpob3ZlciAubGlzdC1ncm91cC1pdGVtLWhl
YWRpbmc+c21hbGx7Y29sb3I6aW5oZXJpdH0ubGlzdC1ncm91cC1pdGVtLmFjdGl2ZSAubGlzdC1n
cm91cC1pdGVtLXRleHQsLmxpc3QtZ3JvdXAtaXRlbS5hY3RpdmU6Zm9jdXMgLmxpc3QtZ3JvdXAt
aXRlbS10ZXh0LC5saXN0LWdyb3VwLWl0ZW0uYWN0aXZlOmhvdmVyIC5saXN0LWdyb3VwLWl0ZW0t
dGV4dHtjb2xvcjojYzdkZGVmfS5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzc3tjb2xvcjojM2M3NjNk
O2JhY2tncm91bmQtY29sb3I6I2RmZjBkOH1hLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLGJ1dHRv
bi5saXN0LWdyb3VwLWl0ZW0tc3VjY2Vzc3tjb2xvcjojM2M3NjNkfWEubGlzdC1ncm91cC1pdGVt
LXN1Y2Nlc3MgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5nLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0t
c3VjY2VzcyAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmd7Y29sb3I6aW5oZXJpdH1hLmxpc3QtZ3Jv
dXAtaXRlbS1zdWNjZXNzOmZvY3VzLGEubGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3M6aG92ZXIsYnV0
dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzOmZvY3VzLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0t
c3VjY2Vzczpob3Zlcntjb2xvcjojM2M3NjNkO2JhY2tncm91bmQtY29sb3I6I2QwZTljNn1hLmxp
c3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZSxhLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFj
dGl2ZTpmb2N1cyxhLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZTpob3ZlcixidXR0b24u
bGlzdC1ncm91cC1pdGVtLXN1Y2Nlc3MuYWN0aXZlLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tc3Vj
Y2Vzcy5hY3RpdmU6Zm9jdXMsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1zdWNjZXNzLmFjdGl2ZTpo
b3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6IzNjNzYzZDtib3JkZXItY29sb3I6IzNj
NzYzZH0ubGlzdC1ncm91cC1pdGVtLWluZm97Y29sb3I6IzMxNzA4ZjtiYWNrZ3JvdW5kLWNvbG9y
OiNkOWVkZjd9YS5saXN0LWdyb3VwLWl0ZW0taW5mbyxidXR0b24ubGlzdC1ncm91cC1pdGVtLWlu
Zm97Y29sb3I6IzMxNzA4Zn1hLmxpc3QtZ3JvdXAtaXRlbS1pbmZvIC5saXN0LWdyb3VwLWl0ZW0t
aGVhZGluZyxidXR0b24ubGlzdC1ncm91cC1pdGVtLWluZm8gLmxpc3QtZ3JvdXAtaXRlbS1oZWFk
aW5ne2NvbG9yOmluaGVyaXR9YS5saXN0LWdyb3VwLWl0ZW0taW5mbzpmb2N1cyxhLmxpc3QtZ3Jv
dXAtaXRlbS1pbmZvOmhvdmVyLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mbzpmb2N1cyxidXR0
b24ubGlzdC1ncm91cC1pdGVtLWluZm86aG92ZXJ7Y29sb3I6IzMxNzA4ZjtiYWNrZ3JvdW5kLWNv
bG9yOiNjNGUzZjN9YS5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmUsYS5saXN0LWdyb3VwLWl0
ZW0taW5mby5hY3RpdmU6Zm9jdXMsYS5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmU6aG92ZXIs
YnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1pbmZvLmFjdGl2ZSxidXR0b24ubGlzdC1ncm91cC1pdGVt
LWluZm8uYWN0aXZlOmZvY3VzLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0taW5mby5hY3RpdmU6aG92
ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOiMzMTcwOGY7Ym9yZGVyLWNvbG9yOiMzMTcw
OGZ9Lmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5ne2NvbG9yOiM4YTZkM2I7YmFja2dyb3VuZC1jb2xv
cjojZmNmOGUzfWEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcsYnV0dG9uLmxpc3QtZ3JvdXAtaXRl
bS13YXJuaW5ne2NvbG9yOiM4YTZkM2J9YS5saXN0LWdyb3VwLWl0ZW0td2FybmluZyAubGlzdC1n
cm91cC1pdGVtLWhlYWRpbmcsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nIC5saXN0LWdy
b3VwLWl0ZW0taGVhZGluZ3tjb2xvcjppbmhlcml0fWEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmc6
Zm9jdXMsYS5saXN0LWdyb3VwLWl0ZW0td2FybmluZzpob3ZlcixidXR0b24ubGlzdC1ncm91cC1p
dGVtLXdhcm5pbmc6Zm9jdXMsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nOmhvdmVye2Nv
bG9yOiM4YTZkM2I7YmFja2dyb3VuZC1jb2xvcjojZmFmMmNjfWEubGlzdC1ncm91cC1pdGVtLXdh
cm5pbmcuYWN0aXZlLGEubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlOmZvY3VzLGEubGlz
dC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlOmhvdmVyLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0t
d2FybmluZy5hY3RpdmUsYnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS13YXJuaW5nLmFjdGl2ZTpmb2N1
cyxidXR0b24ubGlzdC1ncm91cC1pdGVtLXdhcm5pbmcuYWN0aXZlOmhvdmVye2NvbG9yOiNmZmY7
YmFja2dyb3VuZC1jb2xvcjojOGE2ZDNiO2JvcmRlci1jb2xvcjojOGE2ZDNifS5saXN0LWdyb3Vw
LWl0ZW0tZGFuZ2Vye2NvbG9yOiNhOTQ0NDI7YmFja2dyb3VuZC1jb2xvcjojZjJkZWRlfWEubGlz
dC1ncm91cC1pdGVtLWRhbmdlcixidXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlcntjb2xvcjoj
YTk0NDQyfWEubGlzdC1ncm91cC1pdGVtLWRhbmdlciAubGlzdC1ncm91cC1pdGVtLWhlYWRpbmcs
YnV0dG9uLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIgLmxpc3QtZ3JvdXAtaXRlbS1oZWFkaW5ne2Nv
bG9yOmluaGVyaXR9YS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyOmZvY3VzLGEubGlzdC1ncm91cC1p
dGVtLWRhbmdlcjpob3ZlcixidXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlcjpmb2N1cyxidXR0
b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlcjpob3Zlcntjb2xvcjojYTk0NDQyO2JhY2tncm91bmQt
Y29sb3I6I2ViY2NjY31hLmxpc3QtZ3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlLGEubGlzdC1ncm91
cC1pdGVtLWRhbmdlci5hY3RpdmU6Zm9jdXMsYS5saXN0LWdyb3VwLWl0ZW0tZGFuZ2VyLmFjdGl2
ZTpob3ZlcixidXR0b24ubGlzdC1ncm91cC1pdGVtLWRhbmdlci5hY3RpdmUsYnV0dG9uLmxpc3Qt
Z3JvdXAtaXRlbS1kYW5nZXIuYWN0aXZlOmZvY3VzLGJ1dHRvbi5saXN0LWdyb3VwLWl0ZW0tZGFu
Z2VyLmFjdGl2ZTpob3Zlcntjb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6I2E5NDQ0Mjtib3Jk
ZXItY29sb3I6I2E5NDQ0Mn0ubGlzdC1ncm91cC1pdGVtLWhlYWRpbmd7bWFyZ2luLXRvcDowO21h
cmdpbi1ib3R0b206NXB4fS5saXN0LWdyb3VwLWl0ZW0tdGV4dHttYXJnaW4tYm90dG9tOjA7bGlu
ZS1oZWlnaHQ6MS4zfS5wYW5lbHttYXJnaW4tYm90dG9tOjIwcHg7YmFja2dyb3VuZC1jb2xvcjoj
ZmZmO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czo0cHg7LXdlYmtp
dC1ib3gtc2hhZG93OjAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNSk7Ym94LXNoYWRvdzowIDFweCAx
cHggcmdiYSgwLDAsMCwuMDUpfS5wYW5lbC1ib2R5e3BhZGRpbmc6MTVweH0ucGFuZWwtaGVhZGlu
Z3twYWRkaW5nOjEwcHggMTVweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCB0cmFuc3BhcmVudDti
b3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHh9LnBh
bmVsLWhlYWRpbmc+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6aW5oZXJpdH0ucGFu
ZWwtdGl0bGV7bWFyZ2luLXRvcDowO21hcmdpbi1ib3R0b206MDtmb250LXNpemU6MTZweDtjb2xv
cjppbmhlcml0fS5wYW5lbC10aXRsZT4uc21hbGwsLnBhbmVsLXRpdGxlPi5zbWFsbD5hLC5wYW5l
bC10aXRsZT5hLC5wYW5lbC10aXRsZT5zbWFsbCwucGFuZWwtdGl0bGU+c21hbGw+YXtjb2xvcjpp
bmhlcml0fS5wYW5lbC1mb290ZXJ7cGFkZGluZzoxMHB4IDE1cHg7YmFja2dyb3VuZC1jb2xvcjoj
ZjVmNWY1O2JvcmRlci10b3A6MXB4IHNvbGlkICNkZGQ7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRp
dXM6M3B4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6M3B4fS5wYW5lbD4ubGlzdC1ncm91cCwu
cGFuZWw+LnBhbmVsLWNvbGxhcHNlPi5saXN0LWdyb3Vwe21hcmdpbi1ib3R0b206MH0ucGFuZWw+
Lmxpc3QtZ3JvdXAgLmxpc3QtZ3JvdXAtaXRlbSwucGFuZWw+LnBhbmVsLWNvbGxhcHNlPi5saXN0
LWdyb3VwIC5saXN0LWdyb3VwLWl0ZW17Ym9yZGVyLXdpZHRoOjFweCAwO2JvcmRlci1yYWRpdXM6
MH0ucGFuZWw+Lmxpc3QtZ3JvdXA6Zmlyc3QtY2hpbGQgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1j
aGlsZCwucGFuZWw+LnBhbmVsLWNvbGxhcHNlPi5saXN0LWdyb3VwOmZpcnN0LWNoaWxkIC5saXN0
LWdyb3VwLWl0ZW06Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcDowO2JvcmRlci10b3AtbGVmdC1yYWRp
dXM6M3B4O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjNweH0ucGFuZWw+Lmxpc3QtZ3JvdXA6bGFz
dC1jaGlsZCAubGlzdC1ncm91cC1pdGVtOmxhc3QtY2hpbGQsLnBhbmVsPi5wYW5lbC1jb2xsYXBz
ZT4ubGlzdC1ncm91cDpsYXN0LWNoaWxkIC5saXN0LWdyb3VwLWl0ZW06bGFzdC1jaGlsZHtib3Jk
ZXItYm90dG9tOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6M3B4O2JvcmRlci1ib3R0b20t
bGVmdC1yYWRpdXM6M3B4fS5wYW5lbD4ucGFuZWwtaGVhZGluZysucGFuZWwtY29sbGFwc2U+Lmxp
c3QtZ3JvdXAgLmxpc3QtZ3JvdXAtaXRlbTpmaXJzdC1jaGlsZHtib3JkZXItdG9wLWxlZnQtcmFk
aXVzOjA7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MH0ucGFuZWwtaGVhZGluZysubGlzdC1ncm91
cCAubGlzdC1ncm91cC1pdGVtOmZpcnN0LWNoaWxke2JvcmRlci10b3Atd2lkdGg6MH0ubGlzdC1n
cm91cCsucGFuZWwtZm9vdGVye2JvcmRlci10b3Atd2lkdGg6MH0ucGFuZWw+LnBhbmVsLWNvbGxh
cHNlPi50YWJsZSwucGFuZWw+LnRhYmxlLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZT4udGFibGV7
bWFyZ2luLWJvdHRvbTowfS5wYW5lbD4ucGFuZWwtY29sbGFwc2U+LnRhYmxlIGNhcHRpb24sLnBh
bmVsPi50YWJsZSBjYXB0aW9uLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZT4udGFibGUgY2FwdGlv
bntwYWRkaW5nLXJpZ2h0OjE1cHg7cGFkZGluZy1sZWZ0OjE1cHh9LnBhbmVsPi50YWJsZS1yZXNw
b25zaXZlOmZpcnN0LWNoaWxkPi50YWJsZTpmaXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlOmZpcnN0
LWNoaWxke2JvcmRlci10b3AtbGVmdC1yYWRpdXM6M3B4O2JvcmRlci10b3AtcmlnaHQtcmFkaXVz
OjNweH0ucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQ+LnRhYmxlOmZpcnN0LWNo
aWxkPnRib2R5OmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGUtcmVzcG9u
c2l2ZTpmaXJzdC1jaGlsZD4udGFibGU6Zmlyc3QtY2hpbGQ+dGhlYWQ6Zmlyc3QtY2hpbGQ+dHI6
Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZTpmaXJzdC1jaGlsZD50Ym9keTpmaXJzdC1jaGlsZD50
cjpmaXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlOmZpcnN0LWNoaWxkPnRoZWFkOmZpcnN0LWNoaWxk
PnRyOmZpcnN0LWNoaWxke2JvcmRlci10b3AtbGVmdC1yYWRpdXM6M3B4O2JvcmRlci10b3Atcmln
aHQtcmFkaXVzOjNweH0ucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQ+LnRhYmxl
OmZpcnN0LWNoaWxkPnRib2R5OmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkIHRkOmZpcnN0LWNo
aWxkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZD4udGFibGU6Zmlyc3QtY2hp
bGQ+dGJvZHk6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQsLnBhbmVs
Pi50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkPi50YWJsZTpmaXJzdC1jaGlsZD50aGVhZDpm
aXJzdC1jaGlsZD50cjpmaXJzdC1jaGlsZCB0ZDpmaXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJl
c3BvbnNpdmU6Zmlyc3QtY2hpbGQ+LnRhYmxlOmZpcnN0LWNoaWxkPnRoZWFkOmZpcnN0LWNoaWxk
PnRyOmZpcnN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGU6Zmlyc3QtY2hpbGQ+
dGJvZHk6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsLnBhbmVsPi50
YWJsZTpmaXJzdC1jaGlsZD50Ym9keTpmaXJzdC1jaGlsZD50cjpmaXJzdC1jaGlsZCB0aDpmaXJz
dC1jaGlsZCwucGFuZWw+LnRhYmxlOmZpcnN0LWNoaWxkPnRoZWFkOmZpcnN0LWNoaWxkPnRyOmZp
cnN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGU6Zmlyc3QtY2hpbGQ+dGhlYWQ6
Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcC1sZWZ0
LXJhZGl1czozcHh9LnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmZpcnN0LWNoaWxkPi50YWJsZTpm
aXJzdC1jaGlsZD50Ym9keTpmaXJzdC1jaGlsZD50cjpmaXJzdC1jaGlsZCB0ZDpsYXN0LWNoaWxk
LC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZTpmaXJzdC1jaGlsZD4udGFibGU6Zmlyc3QtY2hpbGQ+
dGJvZHk6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCwucGFuZWw+LnRh
YmxlLXJlc3BvbnNpdmU6Zmlyc3QtY2hpbGQ+LnRhYmxlOmZpcnN0LWNoaWxkPnRoZWFkOmZpcnN0
LWNoaWxkPnRyOmZpcnN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25z
aXZlOmZpcnN0LWNoaWxkPi50YWJsZTpmaXJzdC1jaGlsZD50aGVhZDpmaXJzdC1jaGlsZD50cjpm
aXJzdC1jaGlsZCB0aDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGU6Zmlyc3QtY2hpbGQ+dGJvZHk6
Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlOmZp
cnN0LWNoaWxkPnRib2R5OmZpcnN0LWNoaWxkPnRyOmZpcnN0LWNoaWxkIHRoOmxhc3QtY2hpbGQs
LnBhbmVsPi50YWJsZTpmaXJzdC1jaGlsZD50aGVhZDpmaXJzdC1jaGlsZD50cjpmaXJzdC1jaGls
ZCB0ZDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGU6Zmlyc3QtY2hpbGQ+dGhlYWQ6Zmlyc3QtY2hp
bGQ+dHI6Zmlyc3QtY2hpbGQgdGg6bGFzdC1jaGlsZHtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czoz
cHh9LnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQ+LnRhYmxlOmxhc3QtY2hpbGQs
LnBhbmVsPi50YWJsZTpsYXN0LWNoaWxke2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjNweDti
b3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjNweH0ucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6bGFz
dC1jaGlsZD4udGFibGU6bGFzdC1jaGlsZD50Ym9keTpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQs
LnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQ+LnRhYmxlOmxhc3QtY2hpbGQ+dGZv
b3Q6bGFzdC1jaGlsZD50cjpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGU6bGFzdC1jaGlsZD50Ym9k
eTpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZTpsYXN0LWNoaWxkPnRmb290
Omxhc3QtY2hpbGQ+dHI6bGFzdC1jaGlsZHtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czozcHg7
Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czozcHh9LnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmxh
c3QtY2hpbGQ+LnRhYmxlOmxhc3QtY2hpbGQ+dGJvZHk6bGFzdC1jaGlsZD50cjpsYXN0LWNoaWxk
IHRkOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZTpsYXN0LWNoaWxkPi50YWJs
ZTpsYXN0LWNoaWxkPnRib2R5Omxhc3QtY2hpbGQ+dHI6bGFzdC1jaGlsZCB0aDpmaXJzdC1jaGls
ZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU6bGFzdC1jaGlsZD4udGFibGU6bGFzdC1jaGlsZD50
Zm9vdDpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJs
ZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQ+LnRhYmxlOmxhc3QtY2hpbGQ+dGZvb3Q6bGFzdC1jaGls
ZD50cjpsYXN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGU6bGFzdC1jaGlsZD50
Ym9keTpsYXN0LWNoaWxkPnRyOmxhc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJs
ZTpsYXN0LWNoaWxkPnRib2R5Omxhc3QtY2hpbGQ+dHI6bGFzdC1jaGlsZCB0aDpmaXJzdC1jaGls
ZCwucGFuZWw+LnRhYmxlOmxhc3QtY2hpbGQ+dGZvb3Q6bGFzdC1jaGlsZD50cjpsYXN0LWNoaWxk
IHRkOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGU6bGFzdC1jaGlsZD50Zm9vdDpsYXN0LWNoaWxk
PnRyOmxhc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGR7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czoz
cHh9LnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQ+LnRhYmxlOmxhc3QtY2hpbGQ+
dGJvZHk6bGFzdC1jaGlsZD50cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJs
ZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQ+LnRhYmxlOmxhc3QtY2hpbGQ+dGJvZHk6bGFzdC1jaGls
ZD50cjpsYXN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmxh
c3QtY2hpbGQ+LnRhYmxlOmxhc3QtY2hpbGQ+dGZvb3Q6bGFzdC1jaGlsZD50cjpsYXN0LWNoaWxk
IHRkOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlOmxhc3QtY2hpbGQ+LnRhYmxl
Omxhc3QtY2hpbGQ+dGZvb3Q6bGFzdC1jaGlsZD50cjpsYXN0LWNoaWxkIHRoOmxhc3QtY2hpbGQs
LnBhbmVsPi50YWJsZTpsYXN0LWNoaWxkPnRib2R5Omxhc3QtY2hpbGQ+dHI6bGFzdC1jaGlsZCB0
ZDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGU6bGFzdC1jaGlsZD50Ym9keTpsYXN0LWNoaWxkPnRy
Omxhc3QtY2hpbGQgdGg6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlOmxhc3QtY2hpbGQ+dGZvb3Q6
bGFzdC1jaGlsZD50cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZTpsYXN0
LWNoaWxkPnRmb290Omxhc3QtY2hpbGQ+dHI6bGFzdC1jaGlsZCB0aDpsYXN0LWNoaWxke2JvcmRl
ci1ib3R0b20tcmlnaHQtcmFkaXVzOjNweH0ucGFuZWw+LnBhbmVsLWJvZHkrLnRhYmxlLC5wYW5l
bD4ucGFuZWwtYm9keSsudGFibGUtcmVzcG9uc2l2ZSwucGFuZWw+LnRhYmxlKy5wYW5lbC1ib2R5
LC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZSsucGFuZWwtYm9keXtib3JkZXItdG9wOjFweCBzb2xp
ZCAjZGRkfS5wYW5lbD4udGFibGU+dGJvZHk6Zmlyc3QtY2hpbGQ+dHI6Zmlyc3QtY2hpbGQgdGQs
LnBhbmVsPi50YWJsZT50Ym9keTpmaXJzdC1jaGlsZD50cjpmaXJzdC1jaGlsZCB0aHtib3JkZXIt
dG9wOjB9LnBhbmVsPi50YWJsZS1ib3JkZXJlZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU+LnRh
YmxlLWJvcmRlcmVke2JvcmRlcjowfS5wYW5lbD4udGFibGUtYm9yZGVyZWQ+dGJvZHk+dHI+dGQ6
Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1ib3JkZXJlZD50Ym9keT50cj50aDpmaXJzdC1jaGls
ZCwucGFuZWw+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyPnRkOmZpcnN0LWNoaWxkLC5wYW5lbD4u
dGFibGUtYm9yZGVyZWQ+dGZvb3Q+dHI+dGg6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1ib3Jk
ZXJlZD50aGVhZD50cj50ZDpmaXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlLWJvcmRlcmVkPnRoZWFk
PnRyPnRoOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9yZGVy
ZWQ+dGJvZHk+dHI+dGQ6Zmlyc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlPi50YWJs
ZS1ib3JkZXJlZD50Ym9keT50cj50aDpmaXJzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNp
dmU+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyPnRkOmZpcnN0LWNoaWxkLC5wYW5lbD4udGFibGUt
cmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGZvb3Q+dHI+dGg6Zmlyc3QtY2hpbGQsLnBhbmVs
Pi50YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZD50aGVhZD50cj50ZDpmaXJzdC1jaGls
ZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyPnRoOmZp
cnN0LWNoaWxke2JvcmRlci1sZWZ0OjB9LnBhbmVsPi50YWJsZS1ib3JkZXJlZD50Ym9keT50cj50
ZDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGUtYm9yZGVyZWQ+dGJvZHk+dHI+dGg6bGFzdC1jaGls
ZCwucGFuZWw+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyPnRkOmxhc3QtY2hpbGQsLnBhbmVsPi50
YWJsZS1ib3JkZXJlZD50Zm9vdD50cj50aDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGUtYm9yZGVy
ZWQ+dGhlYWQ+dHI+dGQ6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRy
PnRoOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZD50
Ym9keT50cj50ZDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGUtcmVzcG9uc2l2ZT4udGFibGUtYm9y
ZGVyZWQ+dGJvZHk+dHI+dGg6bGFzdC1jaGlsZCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU+LnRh
YmxlLWJvcmRlcmVkPnRmb290PnRyPnRkOmxhc3QtY2hpbGQsLnBhbmVsPi50YWJsZS1yZXNwb25z
aXZlPi50YWJsZS1ib3JkZXJlZD50Zm9vdD50cj50aDpsYXN0LWNoaWxkLC5wYW5lbD4udGFibGUt
cmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI+dGQ6bGFzdC1jaGlsZCwucGFuZWw+
LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyPnRoOmxhc3QtY2hpbGR7
Ym9yZGVyLXJpZ2h0OjB9LnBhbmVsPi50YWJsZS1ib3JkZXJlZD50Ym9keT50cjpmaXJzdC1jaGls
ZD50ZCwucGFuZWw+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyOmZpcnN0LWNoaWxkPnRoLC5wYW5l
bD4udGFibGUtYm9yZGVyZWQ+dGhlYWQ+dHI6Zmlyc3QtY2hpbGQ+dGQsLnBhbmVsPi50YWJsZS1i
b3JkZXJlZD50aGVhZD50cjpmaXJzdC1jaGlsZD50aCwucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU+
LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyOmZpcnN0LWNoaWxkPnRkLC5wYW5lbD4udGFibGUtcmVz
cG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGJvZHk+dHI6Zmlyc3QtY2hpbGQ+dGgsLnBhbmVsPi50
YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZD50aGVhZD50cjpmaXJzdC1jaGlsZD50ZCwu
cGFuZWw+LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRoZWFkPnRyOmZpcnN0LWNo
aWxkPnRoe2JvcmRlci1ib3R0b206MH0ucGFuZWw+LnRhYmxlLWJvcmRlcmVkPnRib2R5PnRyOmxh
c3QtY2hpbGQ+dGQsLnBhbmVsPi50YWJsZS1ib3JkZXJlZD50Ym9keT50cjpsYXN0LWNoaWxkPnRo
LC5wYW5lbD4udGFibGUtYm9yZGVyZWQ+dGZvb3Q+dHI6bGFzdC1jaGlsZD50ZCwucGFuZWw+LnRh
YmxlLWJvcmRlcmVkPnRmb290PnRyOmxhc3QtY2hpbGQ+dGgsLnBhbmVsPi50YWJsZS1yZXNwb25z
aXZlPi50YWJsZS1ib3JkZXJlZD50Ym9keT50cjpsYXN0LWNoaWxkPnRkLC5wYW5lbD4udGFibGUt
cmVzcG9uc2l2ZT4udGFibGUtYm9yZGVyZWQ+dGJvZHk+dHI6bGFzdC1jaGlsZD50aCwucGFuZWw+
LnRhYmxlLXJlc3BvbnNpdmU+LnRhYmxlLWJvcmRlcmVkPnRmb290PnRyOmxhc3QtY2hpbGQ+dGQs
LnBhbmVsPi50YWJsZS1yZXNwb25zaXZlPi50YWJsZS1ib3JkZXJlZD50Zm9vdD50cjpsYXN0LWNo
aWxkPnRoe2JvcmRlci1ib3R0b206MH0ucGFuZWw+LnRhYmxlLXJlc3BvbnNpdmV7bWFyZ2luLWJv
dHRvbTowO2JvcmRlcjowfS5wYW5lbC1ncm91cHttYXJnaW4tYm90dG9tOjIwcHh9LnBhbmVsLWdy
b3VwIC5wYW5lbHttYXJnaW4tYm90dG9tOjA7Ym9yZGVyLXJhZGl1czo0cHh9LnBhbmVsLWdyb3Vw
IC5wYW5lbCsucGFuZWx7bWFyZ2luLXRvcDo1cHh9LnBhbmVsLWdyb3VwIC5wYW5lbC1oZWFkaW5n
e2JvcmRlci1ib3R0b206MH0ucGFuZWwtZ3JvdXAgLnBhbmVsLWhlYWRpbmcrLnBhbmVsLWNvbGxh
cHNlPi5saXN0LWdyb3VwLC5wYW5lbC1ncm91cCAucGFuZWwtaGVhZGluZysucGFuZWwtY29sbGFw
c2U+LnBhbmVsLWJvZHl7Ym9yZGVyLXRvcDoxcHggc29saWQgI2RkZH0ucGFuZWwtZ3JvdXAgLnBh
bmVsLWZvb3Rlcntib3JkZXItdG9wOjB9LnBhbmVsLWdyb3VwIC5wYW5lbC1mb290ZXIrLnBhbmVs
LWNvbGxhcHNlIC5wYW5lbC1ib2R5e2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZGR9LnBhbmVs
LWRlZmF1bHR7Ym9yZGVyLWNvbG9yOiNkZGR9LnBhbmVsLWRlZmF1bHQ+LnBhbmVsLWhlYWRpbmd7
Y29sb3I6IzMzMztiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7Ym9yZGVyLWNvbG9yOiNkZGR9LnBh
bmVsLWRlZmF1bHQ+LnBhbmVsLWhlYWRpbmcrLnBhbmVsLWNvbGxhcHNlPi5wYW5lbC1ib2R5e2Jv
cmRlci10b3AtY29sb3I6I2RkZH0ucGFuZWwtZGVmYXVsdD4ucGFuZWwtaGVhZGluZyAuYmFkZ2V7
Y29sb3I6I2Y1ZjVmNTtiYWNrZ3JvdW5kLWNvbG9yOiMzMzN9LnBhbmVsLWRlZmF1bHQ+LnBhbmVs
LWZvb3RlcisucGFuZWwtY29sbGFwc2U+LnBhbmVsLWJvZHl7Ym9yZGVyLWJvdHRvbS1jb2xvcjoj
ZGRkfS5wYW5lbC1wcmltYXJ5e2JvcmRlci1jb2xvcjojMzM3YWI3fS5wYW5lbC1wcmltYXJ5Pi5w
YW5lbC1oZWFkaW5ne2NvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjojMzM3YWI3O2JvcmRlci1j
b2xvcjojMzM3YWI3fS5wYW5lbC1wcmltYXJ5Pi5wYW5lbC1oZWFkaW5nKy5wYW5lbC1jb2xsYXBz
ZT4ucGFuZWwtYm9keXtib3JkZXItdG9wLWNvbG9yOiMzMzdhYjd9LnBhbmVsLXByaW1hcnk+LnBh
bmVsLWhlYWRpbmcgLmJhZGdle2NvbG9yOiMzMzdhYjc7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5w
YW5lbC1wcmltYXJ5Pi5wYW5lbC1mb290ZXIrLnBhbmVsLWNvbGxhcHNlPi5wYW5lbC1ib2R5e2Jv
cmRlci1ib3R0b20tY29sb3I6IzMzN2FiN30ucGFuZWwtc3VjY2Vzc3tib3JkZXItY29sb3I6I2Q2
ZTljNn0ucGFuZWwtc3VjY2Vzcz4ucGFuZWwtaGVhZGluZ3tjb2xvcjojM2M3NjNkO2JhY2tncm91
bmQtY29sb3I6I2RmZjBkODtib3JkZXItY29sb3I6I2Q2ZTljNn0ucGFuZWwtc3VjY2Vzcz4ucGFu
ZWwtaGVhZGluZysucGFuZWwtY29sbGFwc2U+LnBhbmVsLWJvZHl7Ym9yZGVyLXRvcC1jb2xvcjoj
ZDZlOWM2fS5wYW5lbC1zdWNjZXNzPi5wYW5lbC1oZWFkaW5nIC5iYWRnZXtjb2xvcjojZGZmMGQ4
O2JhY2tncm91bmQtY29sb3I6IzNjNzYzZH0ucGFuZWwtc3VjY2Vzcz4ucGFuZWwtZm9vdGVyKy5w
YW5lbC1jb2xsYXBzZT4ucGFuZWwtYm9keXtib3JkZXItYm90dG9tLWNvbG9yOiNkNmU5YzZ9LnBh
bmVsLWluZm97Ym9yZGVyLWNvbG9yOiNiY2U4ZjF9LnBhbmVsLWluZm8+LnBhbmVsLWhlYWRpbmd7
Y29sb3I6IzMxNzA4ZjtiYWNrZ3JvdW5kLWNvbG9yOiNkOWVkZjc7Ym9yZGVyLWNvbG9yOiNiY2U4
ZjF9LnBhbmVsLWluZm8+LnBhbmVsLWhlYWRpbmcrLnBhbmVsLWNvbGxhcHNlPi5wYW5lbC1ib2R5
e2JvcmRlci10b3AtY29sb3I6I2JjZThmMX0ucGFuZWwtaW5mbz4ucGFuZWwtaGVhZGluZyAuYmFk
Z2V7Y29sb3I6I2Q5ZWRmNztiYWNrZ3JvdW5kLWNvbG9yOiMzMTcwOGZ9LnBhbmVsLWluZm8+LnBh
bmVsLWZvb3RlcisucGFuZWwtY29sbGFwc2U+LnBhbmVsLWJvZHl7Ym9yZGVyLWJvdHRvbS1jb2xv
cjojYmNlOGYxfS5wYW5lbC13YXJuaW5ne2JvcmRlci1jb2xvcjojZmFlYmNjfS5wYW5lbC13YXJu
aW5nPi5wYW5lbC1oZWFkaW5ne2NvbG9yOiM4YTZkM2I7YmFja2dyb3VuZC1jb2xvcjojZmNmOGUz
O2JvcmRlci1jb2xvcjojZmFlYmNjfS5wYW5lbC13YXJuaW5nPi5wYW5lbC1oZWFkaW5nKy5wYW5l
bC1jb2xsYXBzZT4ucGFuZWwtYm9keXtib3JkZXItdG9wLWNvbG9yOiNmYWViY2N9LnBhbmVsLXdh
cm5pbmc+LnBhbmVsLWhlYWRpbmcgLmJhZGdle2NvbG9yOiNmY2Y4ZTM7YmFja2dyb3VuZC1jb2xv
cjojOGE2ZDNifS5wYW5lbC13YXJuaW5nPi5wYW5lbC1mb290ZXIrLnBhbmVsLWNvbGxhcHNlPi5w
YW5lbC1ib2R5e2JvcmRlci1ib3R0b20tY29sb3I6I2ZhZWJjY30ucGFuZWwtZGFuZ2Vye2JvcmRl
ci1jb2xvcjojZWJjY2QxfS5wYW5lbC1kYW5nZXI+LnBhbmVsLWhlYWRpbmd7Y29sb3I6I2E5NDQ0
MjtiYWNrZ3JvdW5kLWNvbG9yOiNmMmRlZGU7Ym9yZGVyLWNvbG9yOiNlYmNjZDF9LnBhbmVsLWRh
bmdlcj4ucGFuZWwtaGVhZGluZysucGFuZWwtY29sbGFwc2U+LnBhbmVsLWJvZHl7Ym9yZGVyLXRv
cC1jb2xvcjojZWJjY2QxfS5wYW5lbC1kYW5nZXI+LnBhbmVsLWhlYWRpbmcgLmJhZGdle2NvbG9y
OiNmMmRlZGU7YmFja2dyb3VuZC1jb2xvcjojYTk0NDQyfS5wYW5lbC1kYW5nZXI+LnBhbmVsLWZv
b3RlcisucGFuZWwtY29sbGFwc2U+LnBhbmVsLWJvZHl7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZWJj
Y2QxfS5lbWJlZC1yZXNwb25zaXZle3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7aGVp
Z2h0OjA7cGFkZGluZzowO292ZXJmbG93OmhpZGRlbn0uZW1iZWQtcmVzcG9uc2l2ZSAuZW1iZWQt
cmVzcG9uc2l2ZS1pdGVtLC5lbWJlZC1yZXNwb25zaXZlIGVtYmVkLC5lbWJlZC1yZXNwb25zaXZl
IGlmcmFtZSwuZW1iZWQtcmVzcG9uc2l2ZSBvYmplY3QsLmVtYmVkLXJlc3BvbnNpdmUgdmlkZW97
cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7bGVmdDowO3dpZHRoOjEwMCU7aGVpZ2h0
OjEwMCU7Ym9yZGVyOjB9LmVtYmVkLXJlc3BvbnNpdmUtMTZieTl7cGFkZGluZy1ib3R0b206NTYu
MjUlfS5lbWJlZC1yZXNwb25zaXZlLTRieTN7cGFkZGluZy1ib3R0b206NzUlfS53ZWxse21pbi1o
ZWlnaHQ6MjBweDtwYWRkaW5nOjE5cHg7bWFyZ2luLWJvdHRvbToyMHB4O2JhY2tncm91bmQtY29s
b3I6I2Y1ZjVmNTtib3JkZXI6MXB4IHNvbGlkICNlM2UzZTM7Ym9yZGVyLXJhZGl1czo0cHg7LXdl
YmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCByZ2JhKDAsMCwwLC4wNSk7Ym94LXNoYWRv
dzppbnNldCAwIDFweCAxcHggcmdiYSgwLDAsMCwuMDUpfS53ZWxsIGJsb2NrcXVvdGV7Ym9yZGVy
LWNvbG9yOiNkZGQ7Ym9yZGVyLWNvbG9yOnJnYmEoMCwwLDAsLjE1KX0ud2VsbC1sZ3twYWRkaW5n
OjI0cHg7Ym9yZGVyLXJhZGl1czo2cHh9LndlbGwtc217cGFkZGluZzo5cHg7Ym9yZGVyLXJhZGl1
czozcHh9LmNsb3Nle2Zsb2F0OnJpZ2h0O2ZvbnQtc2l6ZToyMXB4O2ZvbnQtd2VpZ2h0OjcwMDts
aW5lLWhlaWdodDoxO2NvbG9yOiMwMDA7dGV4dC1zaGFkb3c6MCAxcHggMCAjZmZmO2ZpbHRlcjph
bHBoYShvcGFjaXR5PTIwKTtvcGFjaXR5Oi4yfS5jbG9zZTpmb2N1cywuY2xvc2U6aG92ZXJ7Y29s
b3I6IzAwMDt0ZXh0LWRlY29yYXRpb246bm9uZTtjdXJzb3I6cG9pbnRlcjtmaWx0ZXI6YWxwaGEo
b3BhY2l0eT01MCk7b3BhY2l0eTouNX1idXR0b24uY2xvc2V7LXdlYmtpdC1hcHBlYXJhbmNlOm5v
bmU7cGFkZGluZzowO2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQ6MCAwO2JvcmRlcjowfS5tb2Rh
bC1vcGVue292ZXJmbG93OmhpZGRlbn0ubW9kYWx7cG9zaXRpb246Zml4ZWQ7dG9wOjA7cmlnaHQ6
MDtib3R0b206MDtsZWZ0OjA7ei1pbmRleDoxMDUwO2Rpc3BsYXk6bm9uZTtvdmVyZmxvdzpoaWRk
ZW47LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7b3V0bGluZTowfS5tb2RhbC5mYWRl
IC5tb2RhbC1kaWFsb2d7LXdlYmtpdC10cmFuc2l0aW9uOi13ZWJraXQtdHJhbnNmb3JtIC4zcyBl
YXNlLW91dDstby10cmFuc2l0aW9uOi1vLXRyYW5zZm9ybSAuM3MgZWFzZS1vdXQ7dHJhbnNpdGlv
bjp0cmFuc2Zvcm0gLjNzIGVhc2Utb3V0Oy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgwLC0y
NSUpOy1tcy10cmFuc2Zvcm06dHJhbnNsYXRlKDAsLTI1JSk7LW8tdHJhbnNmb3JtOnRyYW5zbGF0
ZSgwLC0yNSUpO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCwtMjUlKX0ubW9kYWwuaW4gLm1vZGFsLWRp
YWxvZ3std2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwwKTstbXMtdHJhbnNmb3JtOnRyYW5z
bGF0ZSgwLDApOy1vLXRyYW5zZm9ybTp0cmFuc2xhdGUoMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRl
KDAsMCl9Lm1vZGFsLW9wZW4gLm1vZGFse292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6YXV0
b30ubW9kYWwtZGlhbG9ne3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOmF1dG87bWFyZ2luOjEwcHh9
Lm1vZGFsLWNvbnRlbnR7cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZC1jb2xvcjojZmZmOy13
ZWJraXQtYmFja2dyb3VuZC1jbGlwOnBhZGRpbmctYm94O2JhY2tncm91bmQtY2xpcDpwYWRkaW5n
LWJveDtib3JkZXI6MXB4IHNvbGlkICM5OTk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4y
KTtib3JkZXItcmFkaXVzOjZweDtvdXRsaW5lOjA7LXdlYmtpdC1ib3gtc2hhZG93OjAgM3B4IDlw
eCByZ2JhKDAsMCwwLC41KTtib3gtc2hhZG93OjAgM3B4IDlweCByZ2JhKDAsMCwwLC41KX0ubW9k
YWwtYmFja2Ryb3B7cG9zaXRpb246Zml4ZWQ7dG9wOjA7cmlnaHQ6MDtib3R0b206MDtsZWZ0OjA7
ei1pbmRleDoxMDQwO2JhY2tncm91bmQtY29sb3I6IzAwMH0ubW9kYWwtYmFja2Ryb3AuZmFkZXtm
aWx0ZXI6YWxwaGEob3BhY2l0eT0wKTtvcGFjaXR5OjB9Lm1vZGFsLWJhY2tkcm9wLmlue2ZpbHRl
cjphbHBoYShvcGFjaXR5PTUwKTtvcGFjaXR5Oi41fS5tb2RhbC1oZWFkZXJ7bWluLWhlaWdodDox
Ni40M3B4O3BhZGRpbmc6MTVweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1fS5tb2Rh
bC1oZWFkZXIgLmNsb3Nle21hcmdpbi10b3A6LTJweH0ubW9kYWwtdGl0bGV7bWFyZ2luOjA7bGlu
ZS1oZWlnaHQ6MS40Mjg1NzE0M30ubW9kYWwtYm9keXtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5n
OjE1cHh9Lm1vZGFsLWZvb3RlcntwYWRkaW5nOjE1cHg7dGV4dC1hbGlnbjpyaWdodDtib3JkZXIt
dG9wOjFweCBzb2xpZCAjZTVlNWU1fS5tb2RhbC1mb290ZXIgLmJ0bisuYnRue21hcmdpbi1ib3R0
b206MDttYXJnaW4tbGVmdDo1cHh9Lm1vZGFsLWZvb3RlciAuYnRuLWdyb3VwIC5idG4rLmJ0bntt
YXJnaW4tbGVmdDotMXB4fS5tb2RhbC1mb290ZXIgLmJ0bi1ibG9jaysuYnRuLWJsb2Nre21hcmdp
bi1sZWZ0OjB9Lm1vZGFsLXNjcm9sbGJhci1tZWFzdXJle3Bvc2l0aW9uOmFic29sdXRlO3RvcDot
OTk5OXB4O3dpZHRoOjUwcHg7aGVpZ2h0OjUwcHg7b3ZlcmZsb3c6c2Nyb2xsfUBtZWRpYSAobWlu
LXdpZHRoOjc2OHB4KXsubW9kYWwtZGlhbG9ne3dpZHRoOjYwMHB4O21hcmdpbjozMHB4IGF1dG99
Lm1vZGFsLWNvbnRlbnR7LXdlYmtpdC1ib3gtc2hhZG93OjAgNXB4IDE1cHggcmdiYSgwLDAsMCwu
NSk7Ym94LXNoYWRvdzowIDVweCAxNXB4IHJnYmEoMCwwLDAsLjUpfS5tb2RhbC1zbXt3aWR0aDoz
MDBweH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpey5tb2RhbC1sZ3t3aWR0aDo5MDBweH19LnRv
b2x0aXB7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDcwO2Rpc3BsYXk6YmxvY2s7Zm9udC1m
YW1pbHk6IkhlbHZldGljYSBOZXVlIixIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZjtmb250LXNp
emU6MTJweDtmb250LXN0eWxlOm5vcm1hbDtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS40
Mjg1NzE0Mzt0ZXh0LWFsaWduOmxlZnQ7dGV4dC1hbGlnbjpzdGFydDt0ZXh0LWRlY29yYXRpb246
bm9uZTt0ZXh0LXNoYWRvdzpub25lO3RleHQtdHJhbnNmb3JtOm5vbmU7bGV0dGVyLXNwYWNpbmc6
bm9ybWFsO3dvcmQtYnJlYWs6bm9ybWFsO3dvcmQtc3BhY2luZzpub3JtYWw7d29yZC13cmFwOm5v
cm1hbDt3aGl0ZS1zcGFjZTpub3JtYWw7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MCk7b3BhY2l0eTow
O2xpbmUtYnJlYWs6YXV0b30udG9vbHRpcC5pbntmaWx0ZXI6YWxwaGEob3BhY2l0eT05MCk7b3Bh
Y2l0eTouOX0udG9vbHRpcC50b3B7cGFkZGluZzo1cHggMDttYXJnaW4tdG9wOi0zcHh9LnRvb2x0
aXAucmlnaHR7cGFkZGluZzowIDVweDttYXJnaW4tbGVmdDozcHh9LnRvb2x0aXAuYm90dG9te3Bh
ZGRpbmc6NXB4IDA7bWFyZ2luLXRvcDozcHh9LnRvb2x0aXAubGVmdHtwYWRkaW5nOjAgNXB4O21h
cmdpbi1sZWZ0Oi0zcHh9LnRvb2x0aXAtaW5uZXJ7bWF4LXdpZHRoOjIwMHB4O3BhZGRpbmc6M3B4
IDhweDtjb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQtY29sb3I6IzAwMDti
b3JkZXItcmFkaXVzOjRweH0udG9vbHRpcC1hcnJvd3twb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDow
O2hlaWdodDowO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItc3R5bGU6c29saWR9LnRv
b2x0aXAudG9wIC50b29sdGlwLWFycm93e2JvdHRvbTowO2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi01
cHg7Ym9yZGVyLXdpZHRoOjVweCA1cHggMDtib3JkZXItdG9wLWNvbG9yOiMwMDB9LnRvb2x0aXAu
dG9wLWxlZnQgLnRvb2x0aXAtYXJyb3d7cmlnaHQ6NXB4O2JvdHRvbTowO21hcmdpbi1ib3R0b206
LTVweDtib3JkZXItd2lkdGg6NXB4IDVweCAwO2JvcmRlci10b3AtY29sb3I6IzAwMH0udG9vbHRp
cC50b3AtcmlnaHQgLnRvb2x0aXAtYXJyb3d7Ym90dG9tOjA7bGVmdDo1cHg7bWFyZ2luLWJvdHRv
bTotNXB4O2JvcmRlci13aWR0aDo1cHggNXB4IDA7Ym9yZGVyLXRvcC1jb2xvcjojMDAwfS50b29s
dGlwLnJpZ2h0IC50b29sdGlwLWFycm93e3RvcDo1MCU7bGVmdDowO21hcmdpbi10b3A6LTVweDti
b3JkZXItd2lkdGg6NXB4IDVweCA1cHggMDtib3JkZXItcmlnaHQtY29sb3I6IzAwMH0udG9vbHRp
cC5sZWZ0IC50b29sdGlwLWFycm93e3RvcDo1MCU7cmlnaHQ6MDttYXJnaW4tdG9wOi01cHg7Ym9y
ZGVyLXdpZHRoOjVweCAwIDVweCA1cHg7Ym9yZGVyLWxlZnQtY29sb3I6IzAwMH0udG9vbHRpcC5i
b3R0b20gLnRvb2x0aXAtYXJyb3d7dG9wOjA7bGVmdDo1MCU7bWFyZ2luLWxlZnQ6LTVweDtib3Jk
ZXItd2lkdGg6MCA1cHggNXB4O2JvcmRlci1ib3R0b20tY29sb3I6IzAwMH0udG9vbHRpcC5ib3R0
b20tbGVmdCAudG9vbHRpcC1hcnJvd3t0b3A6MDtyaWdodDo1cHg7bWFyZ2luLXRvcDotNXB4O2Jv
cmRlci13aWR0aDowIDVweCA1cHg7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMDAwfS50b29sdGlwLmJv
dHRvbS1yaWdodCAudG9vbHRpcC1hcnJvd3t0b3A6MDtsZWZ0OjVweDttYXJnaW4tdG9wOi01cHg7
Ym9yZGVyLXdpZHRoOjAgNXB4IDVweDtib3JkZXItYm90dG9tLWNvbG9yOiMwMDB9LnBvcG92ZXJ7
cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3otaW5kZXg6MTA2MDtkaXNwbGF5Om5vbmU7
bWF4LXdpZHRoOjI3NnB4O3BhZGRpbmc6MXB4O2ZvbnQtZmFtaWx5OiJIZWx2ZXRpY2EgTmV1ZSIs
SGVsdmV0aWNhLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE0cHg7Zm9udC1zdHlsZTpub3Jt
YWw7Zm9udC13ZWlnaHQ6NDAwO2xpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7dGV4dC1hbGlnbjpsZWZ0
O3RleHQtYWxpZ246c3RhcnQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dGV4dC1zaGFkb3c6bm9uZTt0
ZXh0LXRyYW5zZm9ybTpub25lO2xldHRlci1zcGFjaW5nOm5vcm1hbDt3b3JkLWJyZWFrOm5vcm1h
bDt3b3JkLXNwYWNpbmc6bm9ybWFsO3dvcmQtd3JhcDpub3JtYWw7d2hpdGUtc3BhY2U6bm9ybWFs
O2JhY2tncm91bmQtY29sb3I6I2ZmZjstd2Via2l0LWJhY2tncm91bmQtY2xpcDpwYWRkaW5nLWJv
eDtiYWNrZ3JvdW5kLWNsaXA6cGFkZGluZy1ib3g7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JvcmRl
cjoxcHggc29saWQgcmdiYSgwLDAsMCwuMik7Ym9yZGVyLXJhZGl1czo2cHg7LXdlYmtpdC1ib3gt
c2hhZG93OjAgNXB4IDEwcHggcmdiYSgwLDAsMCwuMik7Ym94LXNoYWRvdzowIDVweCAxMHB4IHJn
YmEoMCwwLDAsLjIpO2xpbmUtYnJlYWs6YXV0b30ucG9wb3Zlci50b3B7bWFyZ2luLXRvcDotMTBw
eH0ucG9wb3Zlci5yaWdodHttYXJnaW4tbGVmdDoxMHB4fS5wb3BvdmVyLmJvdHRvbXttYXJnaW4t
dG9wOjEwcHh9LnBvcG92ZXIubGVmdHttYXJnaW4tbGVmdDotMTBweH0ucG9wb3Zlci10aXRsZXtw
YWRkaW5nOjhweCAxNHB4O21hcmdpbjowO2ZvbnQtc2l6ZToxNHB4O2JhY2tncm91bmQtY29sb3I6
I2Y3ZjdmNztib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWJlYmViO2JvcmRlci1yYWRpdXM6NXB4
IDVweCAwIDB9LnBvcG92ZXItY29udGVudHtwYWRkaW5nOjlweCAxNHB4fS5wb3BvdmVyPi5hcnJv
dywucG9wb3Zlcj4uYXJyb3c6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jazt3
aWR0aDowO2hlaWdodDowO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItc3R5bGU6c29s
aWR9LnBvcG92ZXI+LmFycm93e2JvcmRlci13aWR0aDoxMXB4fS5wb3BvdmVyPi5hcnJvdzphZnRl
cntjb250ZW50OiIiO2JvcmRlci13aWR0aDoxMHB4fS5wb3BvdmVyLnRvcD4uYXJyb3d7Ym90dG9t
Oi0xMXB4O2xlZnQ6NTAlO21hcmdpbi1sZWZ0Oi0xMXB4O2JvcmRlci10b3AtY29sb3I6Izk5OTti
b3JkZXItdG9wLWNvbG9yOnJnYmEoMCwwLDAsLjI1KTtib3JkZXItYm90dG9tLXdpZHRoOjB9LnBv
cG92ZXIudG9wPi5hcnJvdzphZnRlcntib3R0b206MXB4O21hcmdpbi1sZWZ0Oi0xMHB4O2NvbnRl
bnQ6IiAiO2JvcmRlci10b3AtY29sb3I6I2ZmZjtib3JkZXItYm90dG9tLXdpZHRoOjB9LnBvcG92
ZXIucmlnaHQ+LmFycm93e3RvcDo1MCU7bGVmdDotMTFweDttYXJnaW4tdG9wOi0xMXB4O2JvcmRl
ci1yaWdodC1jb2xvcjojOTk5O2JvcmRlci1yaWdodC1jb2xvcjpyZ2JhKDAsMCwwLC4yNSk7Ym9y
ZGVyLWxlZnQtd2lkdGg6MH0ucG9wb3Zlci5yaWdodD4uYXJyb3c6YWZ0ZXJ7Ym90dG9tOi0xMHB4
O2xlZnQ6MXB4O2NvbnRlbnQ6IiAiO2JvcmRlci1yaWdodC1jb2xvcjojZmZmO2JvcmRlci1sZWZ0
LXdpZHRoOjB9LnBvcG92ZXIuYm90dG9tPi5hcnJvd3t0b3A6LTExcHg7bGVmdDo1MCU7bWFyZ2lu
LWxlZnQ6LTExcHg7Ym9yZGVyLXRvcC13aWR0aDowO2JvcmRlci1ib3R0b20tY29sb3I6Izk5OTti
b3JkZXItYm90dG9tLWNvbG9yOnJnYmEoMCwwLDAsLjI1KX0ucG9wb3Zlci5ib3R0b20+LmFycm93
OmFmdGVye3RvcDoxcHg7bWFyZ2luLWxlZnQ6LTEwcHg7Y29udGVudDoiICI7Ym9yZGVyLXRvcC13
aWR0aDowO2JvcmRlci1ib3R0b20tY29sb3I6I2ZmZn0ucG9wb3Zlci5sZWZ0Pi5hcnJvd3t0b3A6
NTAlO3JpZ2h0Oi0xMXB4O21hcmdpbi10b3A6LTExcHg7Ym9yZGVyLXJpZ2h0LXdpZHRoOjA7Ym9y
ZGVyLWxlZnQtY29sb3I6Izk5OTtib3JkZXItbGVmdC1jb2xvcjpyZ2JhKDAsMCwwLC4yNSl9LnBv
cG92ZXIubGVmdD4uYXJyb3c6YWZ0ZXJ7cmlnaHQ6MXB4O2JvdHRvbTotMTBweDtjb250ZW50OiIg
Ijtib3JkZXItcmlnaHQtd2lkdGg6MDtib3JkZXItbGVmdC1jb2xvcjojZmZmfS5jYXJvdXNlbHtw
b3NpdGlvbjpyZWxhdGl2ZX0uY2Fyb3VzZWwtaW5uZXJ7cG9zaXRpb246cmVsYXRpdmU7d2lkdGg6
MTAwJTtvdmVyZmxvdzpoaWRkZW59LmNhcm91c2VsLWlubmVyPi5pdGVte3Bvc2l0aW9uOnJlbGF0
aXZlO2Rpc3BsYXk6bm9uZTstd2Via2l0LXRyYW5zaXRpb246LjZzIGVhc2UtaW4tb3V0IGxlZnQ7
LW8tdHJhbnNpdGlvbjouNnMgZWFzZS1pbi1vdXQgbGVmdDt0cmFuc2l0aW9uOi42cyBlYXNlLWlu
LW91dCBsZWZ0fS5jYXJvdXNlbC1pbm5lcj4uaXRlbT5hPmltZywuY2Fyb3VzZWwtaW5uZXI+Lml0
ZW0+aW1ne2xpbmUtaGVpZ2h0OjF9QG1lZGlhIGFsbCBhbmQgKHRyYW5zZm9ybS0zZCksKC13ZWJr
aXQtdHJhbnNmb3JtLTNkKXsuY2Fyb3VzZWwtaW5uZXI+Lml0ZW17LXdlYmtpdC10cmFuc2l0aW9u
Oi13ZWJraXQtdHJhbnNmb3JtIC42cyBlYXNlLWluLW91dDstby10cmFuc2l0aW9uOi1vLXRyYW5z
Zm9ybSAuNnMgZWFzZS1pbi1vdXQ7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjZzIGVhc2UtaW4tb3V0
Oy13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47YmFja2ZhY2UtdmlzaWJpbGl0eTpo
aWRkZW47LXdlYmtpdC1wZXJzcGVjdGl2ZToxMDAwcHg7cGVyc3BlY3RpdmU6MTAwMHB4fS5jYXJv
dXNlbC1pbm5lcj4uaXRlbS5hY3RpdmUucmlnaHQsLmNhcm91c2VsLWlubmVyPi5pdGVtLm5leHR7
bGVmdDowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDEwMCUsMCwwKTt0cmFuc2Zvcm06
dHJhbnNsYXRlM2QoMTAwJSwwLDApfS5jYXJvdXNlbC1pbm5lcj4uaXRlbS5hY3RpdmUubGVmdCwu
Y2Fyb3VzZWwtaW5uZXI+Lml0ZW0ucHJldntsZWZ0OjA7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNs
YXRlM2QoLTEwMCUsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoLTEwMCUsMCwwKX0uY2Fyb3Vz
ZWwtaW5uZXI+Lml0ZW0uYWN0aXZlLC5jYXJvdXNlbC1pbm5lcj4uaXRlbS5uZXh0LmxlZnQsLmNh
cm91c2VsLWlubmVyPi5pdGVtLnByZXYucmlnaHR7bGVmdDowOy13ZWJraXQtdHJhbnNmb3JtOnRy
YW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApfX0uY2Fyb3VzZWwt
aW5uZXI+LmFjdGl2ZSwuY2Fyb3VzZWwtaW5uZXI+Lm5leHQsLmNhcm91c2VsLWlubmVyPi5wcmV2
e2Rpc3BsYXk6YmxvY2t9LmNhcm91c2VsLWlubmVyPi5hY3RpdmV7bGVmdDowfS5jYXJvdXNlbC1p
bm5lcj4ubmV4dCwuY2Fyb3VzZWwtaW5uZXI+LnByZXZ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7
d2lkdGg6MTAwJX0uY2Fyb3VzZWwtaW5uZXI+Lm5leHR7bGVmdDoxMDAlfS5jYXJvdXNlbC1pbm5l
cj4ucHJldntsZWZ0Oi0xMDAlfS5jYXJvdXNlbC1pbm5lcj4ubmV4dC5sZWZ0LC5jYXJvdXNlbC1p
bm5lcj4ucHJldi5yaWdodHtsZWZ0OjB9LmNhcm91c2VsLWlubmVyPi5hY3RpdmUubGVmdHtsZWZ0
Oi0xMDAlfS5jYXJvdXNlbC1pbm5lcj4uYWN0aXZlLnJpZ2h0e2xlZnQ6MTAwJX0uY2Fyb3VzZWwt
Y29udHJvbHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtsZWZ0OjA7d2lkdGg6MTUl
O2ZvbnQtc2l6ZToyMHB4O2NvbG9yOiNmZmY7dGV4dC1hbGlnbjpjZW50ZXI7dGV4dC1zaGFkb3c6
MCAxcHggMnB4IHJnYmEoMCwwLDAsLjYpO2ZpbHRlcjphbHBoYShvcGFjaXR5PTUwKTtvcGFjaXR5
Oi41fS5jYXJvdXNlbC1jb250cm9sLmxlZnR7YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVh
ci1ncmFkaWVudChsZWZ0LHJnYmEoMCwwLDAsLjUpIDAscmdiYSgwLDAsMCwuMDAwMSkgMTAwJSk7
YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXItZ3JhZGllbnQobGVmdCxyZ2JhKDAsMCwwLC41KSAw
LHJnYmEoMCwwLDAsLjAwMDEpIDEwMCUpO2JhY2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVu
dChsaW5lYXIsbGVmdCB0b3AscmlnaHQgdG9wLGZyb20ocmdiYSgwLDAsMCwuNSkpLHRvKHJnYmEo
MCwwLDAsLjAwMDEpKSk7YmFja2dyb3VuZC1pbWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQs
cmdiYSgwLDAsMCwuNSkgMCxyZ2JhKDAsMCwwLC4wMDAxKSAxMDAlKTtmaWx0ZXI6cHJvZ2lkOkRY
SW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyM4MDAwMDAw
MCcsIGVuZENvbG9yc3RyPScjMDAwMDAwMDAnLCBHcmFkaWVudFR5cGU9MSk7YmFja2dyb3VuZC1y
ZXBlYXQ6cmVwZWF0LXh9LmNhcm91c2VsLWNvbnRyb2wucmlnaHR7cmlnaHQ6MDtsZWZ0OmF1dG87
YmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudChsZWZ0LHJnYmEoMCwwLDAs
LjAwMDEpIDAscmdiYSgwLDAsMCwuNSkgMTAwJSk7YmFja2dyb3VuZC1pbWFnZTotby1saW5lYXIt
Z3JhZGllbnQobGVmdCxyZ2JhKDAsMCwwLC4wMDAxKSAwLHJnYmEoMCwwLDAsLjUpIDEwMCUpO2Jh
Y2tncm91bmQtaW1hZ2U6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AscmlnaHQgdG9w
LGZyb20ocmdiYSgwLDAsMCwuMDAwMSkpLHRvKHJnYmEoMCwwLDAsLjUpKSk7YmFja2dyb3VuZC1p
bWFnZTpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQscmdiYSgwLDAsMCwuMDAwMSkgMCxyZ2JhKDAs
MCwwLC41KSAxMDAlKTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0Lmdy
YWRpZW50KHN0YXJ0Q29sb3JzdHI9JyMwMDAwMDAwMCcsIGVuZENvbG9yc3RyPScjODAwMDAwMDAn
LCBHcmFkaWVudFR5cGU9MSk7YmFja2dyb3VuZC1yZXBlYXQ6cmVwZWF0LXh9LmNhcm91c2VsLWNv
bnRyb2w6Zm9jdXMsLmNhcm91c2VsLWNvbnRyb2w6aG92ZXJ7Y29sb3I6I2ZmZjt0ZXh0LWRlY29y
YXRpb246bm9uZTtmaWx0ZXI6YWxwaGEob3BhY2l0eT05MCk7b3V0bGluZTowO29wYWNpdHk6Ljl9
LmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQsLmNhcm91c2VsLWNvbnRy
b2wgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0LC5jYXJvdXNlbC1jb250cm9sIC5pY29uLW5leHQs
LmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3ot
aW5kZXg6NTtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tdG9wOi0xMHB4fS5jYXJvdXNlbC1j
b250cm9sIC5nbHlwaGljb24tY2hldnJvbi1sZWZ0LC5jYXJvdXNlbC1jb250cm9sIC5pY29uLXBy
ZXZ7bGVmdDo1MCU7bWFyZ2luLWxlZnQ6LTEwcHh9LmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNv
bi1jaGV2cm9uLXJpZ2h0LC5jYXJvdXNlbC1jb250cm9sIC5pY29uLW5leHR7cmlnaHQ6NTAlO21h
cmdpbi1yaWdodDotMTBweH0uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1uZXh0LC5jYXJvdXNlbC1j
b250cm9sIC5pY29uLXByZXZ7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDtmb250LWZhbWlseTpzZXJp
ZjtsaW5lLWhlaWdodDoxfS5jYXJvdXNlbC1jb250cm9sIC5pY29uLXByZXY6YmVmb3Jle2NvbnRl
bnQ6J1wyMDM5J30uY2Fyb3VzZWwtY29udHJvbCAuaWNvbi1uZXh0OmJlZm9yZXtjb250ZW50Oidc
MjAzYSd9LmNhcm91c2VsLWluZGljYXRvcnN7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjEwcHg7
bGVmdDo1MCU7ei1pbmRleDoxNTt3aWR0aDo2MCU7cGFkZGluZy1sZWZ0OjA7bWFyZ2luLWxlZnQ6
LTMwJTt0ZXh0LWFsaWduOmNlbnRlcjtsaXN0LXN0eWxlOm5vbmV9LmNhcm91c2VsLWluZGljYXRv
cnMgbGl7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTBweDtoZWlnaHQ6MTBweDttYXJnaW46
MXB4O3RleHQtaW5kZW50Oi05OTlweDtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiMw
MDBcOTtiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMCk7Ym9yZGVyOjFweCBzb2xpZCAjZmZm
O2JvcmRlci1yYWRpdXM6MTBweH0uY2Fyb3VzZWwtaW5kaWNhdG9ycyAuYWN0aXZle3dpZHRoOjEy
cHg7aGVpZ2h0OjEycHg7bWFyZ2luOjA7YmFja2dyb3VuZC1jb2xvcjojZmZmfS5jYXJvdXNlbC1j
YXB0aW9ue3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjE1JTtib3R0b206MjBweDtsZWZ0OjE1JTt6
LWluZGV4OjEwO3BhZGRpbmctdG9wOjIwcHg7cGFkZGluZy1ib3R0b206MjBweDtjb2xvcjojZmZm
O3RleHQtYWxpZ246Y2VudGVyO3RleHQtc2hhZG93OjAgMXB4IDJweCByZ2JhKDAsMCwwLC42KX0u
Y2Fyb3VzZWwtY2FwdGlvbiAuYnRue3RleHQtc2hhZG93Om5vbmV9QG1lZGlhIHNjcmVlbiBhbmQg
KG1pbi13aWR0aDo3NjhweCl7LmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLWxl
ZnQsLmNhcm91c2VsLWNvbnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLXJpZ2h0LC5jYXJvdXNlbC1j
b250cm9sIC5pY29uLW5leHQsLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJldnt3aWR0aDozMHB4
O2hlaWdodDozMHB4O21hcmdpbi10b3A6LTE1cHg7Zm9udC1zaXplOjMwcHh9LmNhcm91c2VsLWNv
bnRyb2wgLmdseXBoaWNvbi1jaGV2cm9uLWxlZnQsLmNhcm91c2VsLWNvbnRyb2wgLmljb24tcHJl
dnttYXJnaW4tbGVmdDotMTVweH0uY2Fyb3VzZWwtY29udHJvbCAuZ2x5cGhpY29uLWNoZXZyb24t
cmlnaHQsLmNhcm91c2VsLWNvbnRyb2wgLmljb24tbmV4dHttYXJnaW4tcmlnaHQ6LTE1cHh9LmNh
cm91c2VsLWNhcHRpb257cmlnaHQ6MjAlO2xlZnQ6MjAlO3BhZGRpbmctYm90dG9tOjMwcHh9LmNh
cm91c2VsLWluZGljYXRvcnN7Ym90dG9tOjIwcHh9fS5idG4tZ3JvdXAtdmVydGljYWw+LmJ0bi1n
cm91cDphZnRlciwuYnRuLWdyb3VwLXZlcnRpY2FsPi5idG4tZ3JvdXA6YmVmb3JlLC5idG4tdG9v
bGJhcjphZnRlciwuYnRuLXRvb2xiYXI6YmVmb3JlLC5jbGVhcmZpeDphZnRlciwuY2xlYXJmaXg6
YmVmb3JlLC5jb250YWluZXItZmx1aWQ6YWZ0ZXIsLmNvbnRhaW5lci1mbHVpZDpiZWZvcmUsLmNv
bnRhaW5lcjphZnRlciwuY29udGFpbmVyOmJlZm9yZSwuZGwtaG9yaXpvbnRhbCBkZDphZnRlciwu
ZGwtaG9yaXpvbnRhbCBkZDpiZWZvcmUsLmZvcm0taG9yaXpvbnRhbCAuZm9ybS1ncm91cDphZnRl
ciwuZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwOmJlZm9yZSwubW9kYWwtZm9vdGVyOmFmdGVy
LC5tb2RhbC1mb290ZXI6YmVmb3JlLC5uYXY6YWZ0ZXIsLm5hdjpiZWZvcmUsLm5hdmJhci1jb2xs
YXBzZTphZnRlciwubmF2YmFyLWNvbGxhcHNlOmJlZm9yZSwubmF2YmFyLWhlYWRlcjphZnRlciwu
bmF2YmFyLWhlYWRlcjpiZWZvcmUsLm5hdmJhcjphZnRlciwubmF2YmFyOmJlZm9yZSwucGFnZXI6
YWZ0ZXIsLnBhZ2VyOmJlZm9yZSwucGFuZWwtYm9keTphZnRlciwucGFuZWwtYm9keTpiZWZvcmUs
LnJvdzphZnRlciwucm93OmJlZm9yZXtkaXNwbGF5OnRhYmxlO2NvbnRlbnQ6IiAifS5idG4tZ3Jv
dXAtdmVydGljYWw+LmJ0bi1ncm91cDphZnRlciwuYnRuLXRvb2xiYXI6YWZ0ZXIsLmNsZWFyZml4
OmFmdGVyLC5jb250YWluZXItZmx1aWQ6YWZ0ZXIsLmNvbnRhaW5lcjphZnRlciwuZGwtaG9yaXpv
bnRhbCBkZDphZnRlciwuZm9ybS1ob3Jpem9udGFsIC5mb3JtLWdyb3VwOmFmdGVyLC5tb2RhbC1m
b290ZXI6YWZ0ZXIsLm5hdjphZnRlciwubmF2YmFyLWNvbGxhcHNlOmFmdGVyLC5uYXZiYXItaGVh
ZGVyOmFmdGVyLC5uYXZiYXI6YWZ0ZXIsLnBhZ2VyOmFmdGVyLC5wYW5lbC1ib2R5OmFmdGVyLC5y
b3c6YWZ0ZXJ7Y2xlYXI6Ym90aH0uY2VudGVyLWJsb2Nre2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXJp
Z2h0OmF1dG87bWFyZ2luLWxlZnQ6YXV0b30ucHVsbC1yaWdodHtmbG9hdDpyaWdodCFpbXBvcnRh
bnR9LnB1bGwtbGVmdHtmbG9hdDpsZWZ0IWltcG9ydGFudH0uaGlkZXtkaXNwbGF5Om5vbmUhaW1w
b3J0YW50fS5zaG93e2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5pbnZpc2libGV7dmlzaWJpbGl0
eTpoaWRkZW59LnRleHQtaGlkZXtmb250OjAvMCBhO2NvbG9yOnRyYW5zcGFyZW50O3RleHQtc2hh
ZG93Om5vbmU7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6MH0uaGlkZGVue2Rp
c3BsYXk6bm9uZSFpbXBvcnRhbnR9LmFmZml4e3Bvc2l0aW9uOmZpeGVkfUAtbXMtdmlld3BvcnR7
d2lkdGg6ZGV2aWNlLXdpZHRofS52aXNpYmxlLWxnLC52aXNpYmxlLW1kLC52aXNpYmxlLXNtLC52
aXNpYmxlLXhze2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LnZpc2libGUtbGctYmxvY2ssLnZpc2li
bGUtbGctaW5saW5lLC52aXNpYmxlLWxnLWlubGluZS1ibG9jaywudmlzaWJsZS1tZC1ibG9jaywu
dmlzaWJsZS1tZC1pbmxpbmUsLnZpc2libGUtbWQtaW5saW5lLWJsb2NrLC52aXNpYmxlLXNtLWJs
b2NrLC52aXNpYmxlLXNtLWlubGluZSwudmlzaWJsZS1zbS1pbmxpbmUtYmxvY2ssLnZpc2libGUt
eHMtYmxvY2ssLnZpc2libGUteHMtaW5saW5lLC52aXNpYmxlLXhzLWlubGluZS1ibG9ja3tkaXNw
bGF5Om5vbmUhaW1wb3J0YW50fUBtZWRpYSAobWF4LXdpZHRoOjc2N3B4KXsudmlzaWJsZS14c3tk
aXNwbGF5OmJsb2NrIWltcG9ydGFudH10YWJsZS52aXNpYmxlLXhze2Rpc3BsYXk6dGFibGUhaW1w
b3J0YW50fXRyLnZpc2libGUteHN7ZGlzcGxheTp0YWJsZS1yb3chaW1wb3J0YW50fXRkLnZpc2li
bGUteHMsdGgudmlzaWJsZS14c3tkaXNwbGF5OnRhYmxlLWNlbGwhaW1wb3J0YW50fX1AbWVkaWEg
KG1heC13aWR0aDo3NjdweCl7LnZpc2libGUteHMtYmxvY2t7ZGlzcGxheTpibG9jayFpbXBvcnRh
bnR9fUBtZWRpYSAobWF4LXdpZHRoOjc2N3B4KXsudmlzaWJsZS14cy1pbmxpbmV7ZGlzcGxheTpp
bmxpbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1heC13aWR0aDo3NjdweCl7LnZpc2libGUteHMtaW5s
aW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lk
dGg6NzY4cHgpIGFuZCAobWF4LXdpZHRoOjk5MXB4KXsudmlzaWJsZS1zbXtkaXNwbGF5OmJsb2Nr
IWltcG9ydGFudH10YWJsZS52aXNpYmxlLXNte2Rpc3BsYXk6dGFibGUhaW1wb3J0YW50fXRyLnZp
c2libGUtc217ZGlzcGxheTp0YWJsZS1yb3chaW1wb3J0YW50fXRkLnZpc2libGUtc20sdGgudmlz
aWJsZS1zbXtkaXNwbGF5OnRhYmxlLWNlbGwhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo3
NjhweCkgYW5kIChtYXgtd2lkdGg6OTkxcHgpey52aXNpYmxlLXNtLWJsb2Nre2Rpc3BsYXk6Ymxv
Y2shaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCkgYW5kIChtYXgtd2lkdGg6OTkx
cHgpey52aXNpYmxlLXNtLWlubGluZXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9fUBtZWRpYSAo
bWluLXdpZHRoOjc2OHB4KSBhbmQgKG1heC13aWR0aDo5OTFweCl7LnZpc2libGUtc20taW5saW5l
LWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6
OTkycHgpIGFuZCAobWF4LXdpZHRoOjExOTlweCl7LnZpc2libGUtbWR7ZGlzcGxheTpibG9jayFp
bXBvcnRhbnR9dGFibGUudmlzaWJsZS1tZHtkaXNwbGF5OnRhYmxlIWltcG9ydGFudH10ci52aXNp
YmxlLW1ke2Rpc3BsYXk6dGFibGUtcm93IWltcG9ydGFudH10ZC52aXNpYmxlLW1kLHRoLnZpc2li
bGUtbWR7ZGlzcGxheTp0YWJsZS1jZWxsIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6OTky
cHgpIGFuZCAobWF4LXdpZHRoOjExOTlweCl7LnZpc2libGUtbWQtYmxvY2t7ZGlzcGxheTpibG9j
ayFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KSBhbmQgKG1heC13aWR0aDoxMTk5
cHgpey52aXNpYmxlLW1kLWlubGluZXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9fUBtZWRpYSAo
bWluLXdpZHRoOjk5MnB4KSBhbmQgKG1heC13aWR0aDoxMTk5cHgpey52aXNpYmxlLW1kLWlubGlu
ZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRo
OjEyMDBweCl7LnZpc2libGUtbGd7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9dGFibGUudmlzaWJs
ZS1sZ3tkaXNwbGF5OnRhYmxlIWltcG9ydGFudH10ci52aXNpYmxlLWxne2Rpc3BsYXk6dGFibGUt
cm93IWltcG9ydGFudH10ZC52aXNpYmxlLWxnLHRoLnZpc2libGUtbGd7ZGlzcGxheTp0YWJsZS1j
ZWxsIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsudmlzaWJsZS1sZy1ibG9j
a3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsudmlz
aWJsZS1sZy1pbmxpbmV7ZGlzcGxheTppbmxpbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0
aDoxMjAwcHgpey52aXNpYmxlLWxnLWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayFp
bXBvcnRhbnR9fUBtZWRpYSAobWF4LXdpZHRoOjc2N3B4KXsuaGlkZGVuLXhze2Rpc3BsYXk6bm9u
ZSFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KSBhbmQgKG1heC13aWR0aDo5OTFw
eCl7LmhpZGRlbi1zbXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo5
OTJweCkgYW5kIChtYXgtd2lkdGg6MTE5OXB4KXsuaGlkZGVuLW1ke2Rpc3BsYXk6bm9uZSFpbXBv
cnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7LmhpZGRlbi1sZ3tkaXNwbGF5Om5vbmUh
aW1wb3J0YW50fX0udmlzaWJsZS1wcmludHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fUBtZWRpYSBw
cmludHsudmlzaWJsZS1wcmludHtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH10YWJsZS52aXNpYmxl
LXByaW50e2Rpc3BsYXk6dGFibGUhaW1wb3J0YW50fXRyLnZpc2libGUtcHJpbnR7ZGlzcGxheTp0
YWJsZS1yb3chaW1wb3J0YW50fXRkLnZpc2libGUtcHJpbnQsdGgudmlzaWJsZS1wcmludHtkaXNw
bGF5OnRhYmxlLWNlbGwhaW1wb3J0YW50fX0udmlzaWJsZS1wcmludC1ibG9ja3tkaXNwbGF5Om5v
bmUhaW1wb3J0YW50fUBtZWRpYSBwcmludHsudmlzaWJsZS1wcmludC1ibG9ja3tkaXNwbGF5OmJs
b2NrIWltcG9ydGFudH19LnZpc2libGUtcHJpbnQtaW5saW5le2Rpc3BsYXk6bm9uZSFpbXBvcnRh
bnR9QG1lZGlhIHByaW50ey52aXNpYmxlLXByaW50LWlubGluZXtkaXNwbGF5OmlubGluZSFpbXBv
cnRhbnR9fS52aXNpYmxlLXByaW50LWlubGluZS1ibG9ja3tkaXNwbGF5Om5vbmUhaW1wb3J0YW50
fUBtZWRpYSBwcmludHsudmlzaWJsZS1wcmludC1pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUt
YmxvY2shaW1wb3J0YW50fX1AbWVkaWEgcHJpbnR7LmhpZGRlbi1wcmludHtkaXNwbGF5Om5vbmUh
aW1wb3J0YW50fX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9jc3Mv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3J1bm5lci9jc3MvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzVmM2Q0N2U5
Y2I3YjQxNWRlYWQ3ZmQxYjgzZTNlOWMyZWRmOTYxNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL2Nzcy93
M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
K05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9jc3MvYm9vdHN0cmFwLXRo
ZW1lLm1pbi5jc3MKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3J1bm5lci9jc3MvYm9vdHN0cmFwLm1pbi5jc3MKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL2ZvbnRzL2ds
eXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIuZW90IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvZm9udHMvZ2x5cGhpY29ucy1oYWxmbGlu
Z3MtcmVndWxhci5lb3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGE0Y2E4NjVkNjdlODZmOTYxYmM2ZTJlZjAwYmZm
YTRlMzRiYjllZApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjAzMzUKemNtYSVpUmE5THUqWF9h
R0lYTHRIMlh9WE9jWHhNfTs+QkdLP2s+Z01pQFVvK2FmZWMlJj0kWV96SShAaUFNVlJkCnpNell0
TW5WSEdoYChiQmdCcllsZDBHMldVMFIxbisweylaV3sjeWU4UHloJU47MiktX2BoUzRgZEhqUl9v
OHM/Mwp6JUtyIWFBQT1TazE1Z0MkMGFPOTkwNkJtSktuMCktJjtXcWBkMWU0ZGZjM3YoMlhGQDEw
NmhObktuSko7dHAzP3YKenw0PWk0YCM7MTdwIzJZVnxKUH48YVFWanIwb1ZZezBNPnQqNEl1RE9e
Rks9ZSt4eCQkP0xWZGB6fmFBckBCaXQrCno0Qit8NDZhWUI9UStEe0xgNSV0O0tkdHxhWndfR3BY
TDA/dkBCJXBnZDNedUk9S2NTa0lxM2hISHZrfjZBQGwjZAp6REh3b3ZDeEZXdnohZDtzR1FeJn1o
QENMcSgzIU1WYUZoU3lMIXJnKiZkOEYlWF8maE1MYFFZQlRpUlp9aT1OOEMKemZYfG0yU0NtJDJC
Xj9YS0o9M1BPUzx4WE5Ce3AyWFhLK193TU9HVlpuQlpWaTVlfTZZfDYmPHlRKVUldF8/SSl8Cnok
VXhHUEkzZjxnYnpEY1M9dXZkKkYtaEo0OEAqQn5yUSVhJGNlJDJXKmgybXxDTCpFelF5c0pHKDIx
IS00ODZwaQp6OU9wKDJFfkwtfShlTzc/YG9RUGghdlNtVyhOU0g9LSkpWktMfjsyeFkldkJiVz59
cjFzVk05TmoqbDVxYDUjUyUKelF9RkReenkxUGoqeFVHT200OypDO2w4MG9rdE8/fiVTZFg4SF44
QEBpZEJGV3lPSU5Tcl8heG97UkVXUmxYZ3d8CnozLShoNVhjSGFFZFBLenl5Mi1QK1Jsam40bFI/
SWVsRU90V0xpQz9fOUZXJnhAa3B1UnRmc24qLVFMUzRFPEZ6KQp6RzlsZCNCbmg7KlJiaz9FUjkh
VGEpRnFyUzdAQzR7RUFzfkEhViVESz5vTnt7cTB1OHB0X15oRF8hVik7RHtoZW4Kei1YcFZ+NVFl
UVRZVElsMStCXjVyNzJgITdGUlFRJEpoNzQ9R20qT2thSW9OVUM8dip8KEUoOEFqKkx2RU17MUM/
Cnp5WnsjQz8/NVFVJmlCZSZaTnhxR1lBP1VubUZnPXdndlBaJDMpTHNaPGIrNHA0emJqOV44VT04
NURrJitudFZIcgp6LXIld3NPRk0xSi0peF5qPUlNRHhATSgzRG0tS058WlhWT0JsS213JE9GcXl1
KExsaDhFMyVZflkxWm9uIXwlYGgKek1jU1BrXnR5cnV5S3Mob2tXZWdRcjdGVUdXYkVJaCV6RiFT
I24+NyF3azdyUlpWdVZLNnVybnBAfVFEcEJ+OSpTCnprVldnOEx5WHo4LSU1Mz5HWGIkJSpIMChi
cWtVSU5gT3o4Zz1ic2U/YkF1bUM4YDVYcUErKF95e2ZWXmooMSRCWgp6YSpAbUooJj9EbDJrOzh0
V31PNk9hYXZKRXwxN3UjMXQ+TV4wIUBTREpjMiljTFpMYG03IS0pNzRDUVVYb2tzTSoKejltfFNq
aH1AZG0tVG5jODw3NyZUZmpUPERCbk1+dU9aYmRwbiYzblRlRzcmdUIySnVFXyFvP3RSa05PelAz
Jj1BCnpFRHVUckd0NyVnd1M2ZUhCMlp4dWlPKX5IJDE2bWxiUGdYOGA2NWt5QV8wcTlKZXc2UTE/
b0tORm0zNihOZURiVAp6eW9BWnVGcyRnalQ3UytxOWcmPUg8QDR9YTNOWWJjJUh1YzUpR3U4fntQ
TFhlMTF5IWY0YER4WStHVTckPE9QZ0kKektBJkgyVGVoT31YVVh5ZjZYTFdFKSEmMnx0Vz9xdTYp
RFVqWEgmbExpaDwyY2prWEd5R15LYkBGfXtGTmBPN19BCnpoYSM8ITZ2MlZ8ODV3bVU9MC0+Nkh7
MylrWE1NNzc0YEQhZUEwfCg8dXBFZkp3dztvRkdLUjlUS2BCLVhGSERpSgp6Z2Zvdks4WUN9P250
Py15SjMmVjl5RXcyR1Rjc3hTYWckdyl6eHQjbEhibyZhTnIpeXo9dDtnR0AtOTlXVygjMyYKem91
YVVlWSRqYSlgR3p6X2labG4+UnVRekBpUU8oNC03bFh8YUsqTWBZPWYlUntfJjw8WkNwZ2VzYyEz
byU+KkE/CnpCKEFaVWw2Slhnel45YzlxN1pXfkxwbmNwdjFJXjZPNG1HWEAzUF5RKT9qQmd4KGYj
UkRfNHkwcTVhQ19iZUdHPgp6biVSYkV5X3ZkeGBzTD98SnZsZ3l4YWwtfVhNXkZEUVlwfEV1aXU9
JThvKD13aWMrWFNpbUo0KEFkbjNgUUg2XkQKelF9SEBvQk57fFpnXjJ1fEA4Y35oN0t2JkhDeD8/
eHleSiQze0Iwe1hubHJUaERhb1FxalhqWEhpI2IhS0lqQTcoCnokaFQ7QWhfVlAmaikoWjYmKHhu
O0tGM3JIc0ZeQSNpbD8kKXE0UHAjc2x5P3wlT21vUkd8TWlOVzMrKT8zV2Q5PQp6Z2JVanpUTFgr
IUcmb1lqOVA7am5IbVQ5MXFLUHp4a2pAPnJzcWl8PU01JFBmclJDWSVFNyR7eExEWkZ0WWNDJWsK
em9ycExqJFQ2NWROK0hWQD15UmxLU1M4V35TTXhGa0sxflUtWFcyQERYY0dgNC1WKXp8NjA1dUQ0
UXtNUDEwZkQ1CnpjIVQjKW41NykpelhYZmc9ZHduWnVEX2BEQ0pjM2NIRTZIdUEoPjM2b19uZXFn
b0YwcFJLMGVFY357ckQ4JVBmaAp6QGR0RTZvdmthektqM2ZkeykqJnRCMFlBXjFkXl4/Mm9lTnlC
N3UoUCtPNCRAbENOY34lbWI1aVApZExHTXx6O3gKekVrUllNX15VYGclczVqPFBeK25PT1R5OF5p
TmgrMjFId1BtITR0RFpYeUJfbXtFX19BN1RUJCsrYWZGJnokJWQ1CnpkYkpmRCU9SDZ7WWZ+Y1Y/
K1J6eF5STXBkTnM7UmJlZ2Y2NUsjSkNGcz9BanxQcC1fS1NoO2laKWAmZDVLRjhzQQp6U1RLMX1i
RTI9KHNPRX1yQEV1SkQ1YHhPRXJ5RCUxOEc/eE07b218TTUtRiEjJnxZKTEjMT0tSCRFOEw5bGR+
KnAKemA9ez18WmZQQnFkWS17KCRKWUBLTlUzKjJVM2o7TkJ8R0V3ZyZ5VHBfPGBmRysyI15ERUNF
JWYoJj5pSD04UTJoCnpsUyVCZEM2RGFZRVdpMFVOaG5jKnpGVCRmVmA0X1ZNTlV+bkg7cShMZD8h
I2xJdm0pSztXXzRDKGwzKzRUWj1RSQp6RCVzaUIlY1krWTd2TUZNX0tBZz9zeG0oXm5Kc01JVj92
fHZBUzhsO3pvdHYkI01sLVkhbjd8WDVZNUMpPVRpR1oKelErPSg5JWxrMCZMJmhEdHdSRD1VYTZ3
UWVTe2cybXZ3Yz5efDQkb3QtMkhpYHopfFYkTnttTkFFWkMzZ3dfOCV6CnpxKEwzQmN3cjJnaW42
MjxDRkU2Km03WD0zOEpZdjBgUistMWFGU2JFJT82KEZIPmRYTThjRy1ELWF1RDdIYXlMegp6Skky
fG09OCRGP0tvPnZAUDR7KFc1Zz19LWIkJXRKZ2Z5d3BgNiZBOTZ8Wnh7OU47MUBfPmh0bzdUUWYz
RUlNbSsKekpgO0BANHljWG5ITT58aUo/RlhrV0djOFl1R3ZpTyZMKl5hamQrdnlMSXhBQVR7aXNB
RFFRTTVTO1lQK2pBWXA3CnozRTFObTFIRGQlU1hpYGBOUipzbzdYaWR2UlBqI0JNN0FgU3tjVSVW
SVNRT2hyTUxyMDg7TjM2QVlnOX00ME1sIwp6VSlHVXhReShEMSVQYEBgSERhWG4mJW04YGhPdX5f
MmFgJVB7djd3MjtLVU5obGwpTih5NHdEI3AjeysoJHVMT0IKeiFYO0s9c2NpMWVyUm0xPVFjeCNq
YShyPUU4Kjg5Uk5IOGBDN1Q0fCN1VlJjPUthZn0wWHcpPjhnMCg0SCFackteCnpoLUtmKFYjTlFj
TVU3OW9uOWJrP2BVN2VJe051LUNkYm9MWUgtN2xKSXw3VkNvYjI4NzIkcC0+M24pLUo+TnxiJQp6
SW4zdnpLZXR+bnZIQj1iUDZyRFJWfCYmNExMfVM3YGl1Mm9rJnI4ZWN3fnlVUk91bD80NFZTVjM7
PFBQV1p+NSEKel98OWdaWXNhO3VQRmYxTVpWVWdURDRGazNGRDhSTithK1ZJdlFrWHEyV2lFb2g5
LUQ1cnEyK35rWXdGQnlGSDBWCnptSEJnd3QyPVVtI0hxS0lFOF5xKkhPa3pTYjMjSUpxTUFlK2o4
PyVIK0prTms5eGxtTldUP2ZtRno3P2VSI0wyUgp6cCgkTEhSJCl2MUsyYCRIcFpvVVojV3FQMy10
NkMpTXBBdHNUMWNjMilDVWZIIyFveVhvPG5vRCNiIVNsWCVEJlgKemh1V2pWcXdAZlhxPFJaYTE1
JCZMIXtBS3JISUpGWWAmalh2Nz9zQWhhVV9kc2UmbypSTkIoaXAoJD1+PHYjKih+Cno/bG1HKzB+
QGlnQX5lcn0qeTYjUEE2SS0hazteJGZBZyMlbj56N3FTUVdsK3leY1g9JGp+TzxCcT9JWVl0dCpB
dgp6cmAoUlRWZHphZ214P1NybH45OzdQemszP2FiS0cyUn1XSXc8Wj19JFdJWn1fIzBGbFUzMSZj
cCEhaVN9NzlCJCEKekg8T1Y5VTtJeTNjczApdT5RO29+MCtfKTVXRFJGMF5KYnVEX3VtcjRNbiRF
UEV5Qi1fZTxwUTNIMDEwJWdkZ1E5CnpIMDtzWE97dTFiTk1rWGY0fGUma0lZV3tRdmpaPm9nXjEq
UCNVaX1kQ0RINi1HbmRYZ2kkWFYyU05IZSNISFFvVQp6YDJme2tUKn5ZLUd0eWR9SSN2PSpQYlNo
SnpwNGhnYUs+Y3IrKzsyR1NHcjdeMmdBXzNIMUY7PTxsOSRgXmtudGUKenBRXjtDQWZVYzhKZEUy
Smd1PXtSc2BiTUN2bSNyX1czLW1SaVpqWD1RSkBUKjBVVnolaGV5fD4wNkJ7TDRAZlRzCnpEP0Yh
dmJfNTFIbnpiM0JKbFlpSTRxWjVmRHR8Q2FLWC1OJjJhUF9EVlhgYkgqRk45M2NWKjNmUHZvY2l6
fGRGRgp6RElAXzs7NGAqajl5VzdwbW5YakU8ZyoqfTRTcCEqPVJ+TkthMkgoVSp0d1dDeTZiZmNZ
YlkzSSVWKGMhMnxyezcKelkzMTx9VGNTTWEpTkRMYXp8PXU7Qk9OLU1jSSZsUyRCfTlRaW83O2Qr
JXt2a3hJY0JgTyZCeWY9Xk9ES1h9dlhFCnpGeyYkbThSRTM3P1hOTVBWaW9vWTAyT2IzX2JgZkQ+
d3FlQEJFUXcqNUtjbCQ9ekp4Q28kfSQ1PjBhVTgqVVhpcgp6bG82dnVIU244MU09cnotTXx0WXVr
U2E3STJNJCNRLTdgOCYyLStVdlcyNUA4Z09mMVZTUn0zUmRWRnJ8LSZ9NFQKemt5MHVgWHVRYyUw
I2I9TEpXdTVobSZjYkIkWms8SHdiKD4yRmVZRH52LUNjOTJ1fCVzSTxlfklLc0BQQVBCRldiCnps
UipDc2luUWQkMXgrRDloRnwwK2F3clcwOE1nPlVoLTY8IXRUYHxARUd9VFFZN2FnKXc9Z2ArZzUk
TGVERU9sKgp6aFowZihMeVlYeHBfPEhUcjkxJDFRS3NMaDQyUjAhWFNLNEpEVUd+WT13NUp1MlA9
cmgzakF7RChDZkRydHQ2YnEKeiEhNjdmVkM7OF4rZyVhczg7fmhGIXZ5en1nJTZrIy0oYXNoOT82
Oy0pc31IV2pCfVozJj9keG1Rc2dfaD41ZEpSCnpaMylnP29HV2UtSDYoRGw1RSlrMilIYWw/JDlS
NzNGTTlgbGBxQl48XmY0a3VjZSZ8VCl5Q297Xj1fYWBUWSpjJAp6UlJoXzI4NGpKakxvVyRXanZf
QG4kOExiWHVXMHBadztnYC0zJFhVSEQwTWUhcGJkRDh6JDMrTF5LS1lPYWJGZGwKelpXOCZKOHlS
V2ZqTGg/ZTdRSkVrZ2w8JlF3RG5aMl5Xd2dCSDB7QWp4SV5AUSk1MW5sR1JWZ2o4al5qTDAle0w1
Cnpnfk4mUXliWDAobGRhYW90P314NCV2dVZlVGJaOTZmcGcqayhfcD9hK0lGR24hWVV1Uzt+X1ow
Q0x5R0ZlUT1vdwp6aFN9XjVSNGRMZnU5UUBNRnc3YzVfVGdgJW1xJFhGODFZWFNGRH5ydD1FNm98
bFZCUW1IcE1HKCo8KU0oRSg0ZioKemlmUyg7WWplbnI/fnkqbD5GMjB6USVtY2lsaVU0NWYtd3pu
Slpkdyh0Uzd0Nj4wMDQqMiNYM0VqM3BjbzNmaWBhCno/fGdNX2NrVlF4WipEIW5UZVU8Q3RDKyll
V243Q3AtI0h1VmB6QCt+WCpoPEtBXz4rfGdiZFBFaighcktVWHUpfAp6a0xxVUdhblpxbjI1RWs/
UEhhOSU0V3wlQWRfPEFmNDJefFhaQlBAVi0oLVB7QXpPdGM9a3tSZkUwbEFIbmREM3cKekNvcko1
dz4yQUpeQzRac0soOUFXP2Q/ZmVfeTU0aiNjZUNYNyVaTW1TYHt4PV8wZmNDamIwTD5VX0Q+NWY0
a055CnpIUVFnNUA0YVlWKTZncFRudmB6MDZNNWF9dzc9OVp4cGBiY24maShFT0FQV2ohP1ooMk8/
XkRFU25HZlJER2NzMQp6P0l2Sip7TEtvbmw3I3JvYmNGY0BPSjx+X05ydDEmdkBlUGUjd0VGS014
ZlRBIUF3Sm0yfm45SEc4UTM/WVItWXoKejlRbTNreHxjNDg7KTZLeW9vPzxgIXxAQHh3cH51I29m
dVFtPmlwNGJMdk9fOFcpOXsycGhxSTd7V1I5TkxnSjVTCnpITzhoWHRKKENZKW1VRyZvKGdHbyEz
UWshPSNYVVMxM08mb3t2d2VCSjRvMXk8fiMmNV4kczY5RUNWOXhNfT0rMgp6MyFOSlc4JVFgZl9K
YSluZXhFclg1IVZCQFY9VExWZ2hTRWpSdDV2ZEo4enVSZzBSK1k+KFdiKjdFRCllcyNSNzwKenl5
PGhmLUF+O2Z6RV9WaHp5X2xKSl9oUzVDX0ZuLVlzOCY0YDkwfVYoVTZBZGNYO2FodjBWMHxEJCVH
VlRvfSVkCnolYFhxMTFOQF8rUVRFRkM4a3FeXnE8XiRxSGJ6e2BwWFJ5TVYhXnJ4KD8qRGV0Zygl
P2xKLSVHTnhEKlVQWSk4VAp6e3p3cFZTTzFDWjR8dyp1UlEobzBUWChHbkNyU2E2eEI5V1pUVFZT
K1dGIzA8PWdRJiNBcEJxa2h0bG45KEFJQDMKelBhQm0rQzc+aj5hej1tfTFYUStFN1pAS0c9Q3N8
eyErRWVqUV9CLTdfWl9ZPFhmLXVWdl8oUFRTMlN3PVE0fDsmCnpndSR2NWk8e1FISHRaPClPfHpf
bjBUb3d+UiMjanFHKUtvPjtrRVR4VlZKT2F5RnpyJnNjRHUjUnpzZFQ3P1pEKAp6anQkR2lQcU1R
RE4jI2pOQShVdUhNZ2pvcHFFO3BrVVRlcCszWWhHMkchQm5LP35YI3Y8cHB6MUdvcFZoVmt+aUoK
ejkpSn1iV1IyTjRNY1BEOGNBalIpKGVzJWlDMTV7TnZEayp1cl8+KEhoe0crdzNwdTVhQkYrNSQp
SHEpOyM5Q2JHCnpzRTdVaEt3dmc7dypWKDBLN2t2Z25tNUNYdDJvTUsjeSEmZHFXNl5DT2BvLTlo
O3JwZThzWEBNN3ZkTkhyU0kpeQp6OUtsdlMrQCstYEN6bFMzaH1QKVZiSm4pTU4mMXJaSkRnc1I9
RjJGSFpNcGQmUzFWUktpOzdXOz18WGB2YGl3cjsKejY9e3cleChCaiheKGE8JT83UEIqUyV9PnNm
dH1VISFxZHNjc1FnVEAzWDVXaWhtTEJ4dVM3PzEkQFN2dkozPDx8Cnp0fVkleXFIX1cmNiFfKG5h
LWpyI1p2N1cqQ3UjYzZIcXIkb3tlTVRIbUlXZmN1SStyc1hjMXgkaWJjKXxseHNgfAp6XmxoUXAm
XmJeQlRMKHhFSSE2azhieG9tLUQ4Q30rNl9hJWA/Q1lqU3VGY0VoNUoxJllgWi02RGotSWAlKClu
JDkKemcqYjwmWnNeeGRDe3AyYWJ+fWZ4aXVvYnI3WFQ3cEllZkRxK0IwUy1lKiNOY3Z9eExKaXt7
eVBXdSk/RXN5dTA7CnoxcXNLX0ZBRWctQyskcDBjcCp4Z3MxczRidGtNJjNscXFlUVJwRDJlb21k
KE9QMFFAKmUmWGFzMzhhbWg1XmJvQwp6T3ckKHBudk4kNE1kb1FfdSphJUVHVSMzNCFMOGg7aENx
MnF1PnZtYWBkckA2T0okdVIqVXkwfHYrOShxI3t2VUUKei02I1dKbjlLPUQxYnw9M3o5dDJ0bHlp
czwzMzJCZUg3cit6WUB+Yj1eV0E1eXU8ZlBtN1JqQmJidXFyY1hIVkt2Cnp3K25QTW09S3pHOCkt
ZEs8eiQwUHQ2VWk4e1QwenN1eURafUJgT3t4S0UmSXZadHA2KnVwMncpSkBnWD9TOU9xeQp6Q1M1
YDZKJmt4PTVqJiQqSl52KEY7QChXQz83NFAmIWtzNFlkITw5KCpOJWdEWCZCYygzKXRMZ3ZUO09Z
PTFfN18Kemo3MGQtNkR9Mk9GJDZ0aD8kMHo3d1gwcDd1KztDPWombENnaD9ye0QmcnAjTmNDJDE/
TVpfZEp1fVNzcWtVP1RLCno9cUV8dDxtNH5nezNQM3QtVkprUmJ9fTtQcEdrTXlrJTx0MEFGXmEm
LTZ5YnUqSHVgbE5wZE00V2NlelpUeGJgNQp6LVhEOVlqbikzNEFqfSFOJE4zO3F5OFpoOzleRnFe
YCRfU1ZeZmBCJlhGLXQqNHc8O1hIP3Q/MGVscTg8QThBbXAKekpCJW08bFdIOTFiRHQqekl1e3cy
ZWd8elQtTnROZSRURmUwSC1eJTtNfUA7cVIofG02Xnc3Nk9VVUY8IWJrWU1jCnpeU2owemBDJj52
U01peVU9SDk3U1E3UEo9eERxOF41aEAhNXMpN053SUMoXjljfVVxRktoPlhuRlB1fCtMQFA7Uwp6
M3NTQSFgRz4rR2NGfUFebmZsfG5fMlA9b2kjMD5BJEJwaEpvXm5pViQzOXE+akJuNz15RzNqb2RG
Q3wwLSlDJFIKekBBdnNQYXd6UmNkSStOQCMrWENVaEUtYlY2UihmYjAjTDg8e2taby1iQkYwZF9l
YjI9T3ElQ1J5fE0lQkdCbVRpCnoqKHZGPW1EcWZCKUZmYnIxV09iTDVydGFYWG43aCR2TUlNeWQh
IUUhKTVGZXt5SGF7WktIcEd3UTlKLUBjUSRPWAp6OEJ1eCY2V0olfHpGK2pKWiYoZy0mdX5RVi1Z
X35xP0RKPiMzfjlXaUJlSVVfdWgpZWJ7YntWVW5fSzlrRmZZWEwKeiNXPzVMOHo7WHJBP0tjJnVh
MzVIaV91aFdnaGw5KWgqKUp9JXdHK1hubnAyWk9sKll0SzNWUXhVTWZCTSt6PkUyCnplSWAhdEJE
aWpqWFl4bExFWnU8T0BPPTUpY2ZpZFNTaHQ2JUlCYHFSXlNSaSU+N3RfVDx+IW1SMHtvPjZXKkVq
cgp6NnY4el5HJFchZERxKl55JFdieWhJKXh9LXM+dGRrMDxDYzNpb08xcEp7ZlA2WShGJHRyUlQy
KmowXm11QHhpcHMKeik4eWZwc0p8R1pwQSo4bT9XKTVPQUtzNDg2dWJoYCM4JXtIWlE3aCk5JXxA
PCkxZ3xeVjlTe1VkM2kmbTVrO3J5Cno1JGlzdGl2RGB+S3hAfCExaiUySGVkSzk8PGAhZHk0diZm
TmpBTTFDJDRzV2NLTEBaZXk/IWRHPDRXTzZ3eyZ9NQp6Z0tIRTR7TiVkSFFwNXY3M0xiOWZjeCRr
fHlRel9uZiY8RTRDZjhFc0lNMXVWdlBVJmpNdjFqb2Bybm5iPnstO0EKejkxVT9rNlJnKiVUKlUp
VXZfUDxtWUp+SWpaS2g/ST9ucj9TP29RZ3Z4I3RlWC1tQ0olZjRoYj5QX300amhKNnx+CnopJEJ9
bTQoZGBZdENCY3JWYno/Y1FHb3xOaE1LKEBPbkdzVTc8Sm0+T0FLZ1VCPG50d1AwfHh0SSNJUjNy
aFJVbQp6Qn1sUkclSHFnfDhePkpMaD9FQE9PQHNmVUc4TWBgb1FiY0RnREtFeV50NiFBaEVASHFn
U0c8M1F7TkQ3dEghRzEKelFGQ1pnbD1Za3hyfjBwZHEpYG4yeTN+WTBjdmtPNWkhQ0xUQWM2OC05
Y09NaTJjMjlCVGNnIVc1PVh6SFI2OHRUCnpIJW80dyRCPz5ZRjBBcTB3KlFARElmfFV5amFqY3hP
MmAhQXZ7cDtzMiN6X1hmcCp7JDJmTT42NX5icnxyQ3loWAp6Y3JOQHI0IXd+M2ltbGotZWV3N3Fx
OGQmdnRZblNBVDkmfCZZJj1+fXpGNT0tNWF0QEdyMXM2fmBlQmt7bkpoK0AKeiMoPXhFST5jNnhY
VSh1Y1MqYV8hd3dAV1l2bz9+QDNkQmpxQVVIfmg5bVc1cSFSIyk7OGw8a3UhJWpTITlZNi1vCnpg
dU9Xb0omPiU4K29KbmIrLXlkcXYpTEhRSlNnWT1wJXtAfkZrKFY2PW97PDVmVj4pZlBXT3lYU298
Rz9HPSp+Pgp6P3o+PCkoU3NAPHJlIWpfNDM/Q2Q5LWR+MFNUeTtJa3FlfiEpPmxFfHZVLTJ2aE9S
eENNPkBMRXg0T3sha216STUKekZVT3VPWF5CSEFTaiUjRkFUcVMoRm5xUFRwXnxTcTtlZzN3S3ZJ
elVKJUZOcG9DWWBeT1B2KF4+Jmp7ViNSRnpFCnpAM1kpYkEoNG1faWFTYEomZ0codl4pSnRoO1ck
aUVTQ2VDQkExI0IoTjYzVntkZ2dvSiVSUW59Yz5hQF4lZ2F6Sgp6SSRTaGc1PE4yMnQybElsOytl
KUhmTytoTjwkKCZfdWdAPnlWcGNwbkpPT1dZXmRCVUk9M2lDPiNhMXAyTlFzfGIKemdaSHVrUjlI
d1Y4U2dweyMrak43WkIzREk2PG05OT07M2ZrTntzbUFYRkpzcV5NfDB2QUVCcEZ5X28wVT12RD90
Cno/em1FOF99Wm1EaXUwQ1lLZiE/NmpHbWl1WGpmX2hQPDJmczhJUCk0JX5pMVc3OTc0MyNuTlNK
Jj5+aElIdkAmJQp6PSQ/SzJnek07eEM/Szw5TjB8LUJNU2s0YkxJKXVCKiF1Z2ZZMHFQM1IleTVP
PyZ7WGZ6b2pmYnc/empeUCtfO2UKelJWbT4mR3NOKT1IPFB5JV9faTFeN3x0T3h1RSYhYWZfb3Nf
SzhLYzdeNEdxS3dNbnVYP2h2P3dsK3ZpTVRZSHkxCno/WHpjKFBGPEl8dXZgQzhsLT84d2s4akdL
O2RSIXpiYHk1JTY/dFhsWHJxUGtfNjJrNzJraSg8KFlOdU9Uck5qIQp6Mns5I2xLI3VtMV91cHVa
Yz0hI0VmZSlAJkV0QEZxaUVidDYkSXBGaGxDaUgxR3A2Vk1KKDFyK2k2U3Y7aG9iIzwKekJXSEpE
XmdUayhfXyRNc1RqfUc0XlFBUktnQWReNFc2fmNZRnZoQW1pbztKJiVLfS0zTiUyVWhIUntibWU/
PF9WCno8M099bEMjdkpeKikrXz1kNGQrR1FLZ2tVekJiSX5oMUQ4IzJ9ZUxOYmI8Vzt2Y2RRM2RC
bFhrNHFkKjVQODVrXgp6XjxkYHpAfW5oJT5CSCswQkh4Sm8mY2t1TDh3MD1fd35xNlJ7Z2h4ZU1t
c0RoOzlAbiVWRkVgWnglcFFnbEM9QTQKem1KRnhJZ053cVApOF5iI1J3QkdQK2VJO3dpfXtePGpV
VDYpPnBZTVR0UTRoMjFrNURMI0c/VFo0VkNqcnFIbFh4Cno1R1d5eTEpTSs5SW0qSDFOYiEqcDFt
aUNkTUhFcz5eITBLblBYNjA7Rnp0TEp3Tn03dmg7RT58N2leYVNLd1pQcAp6Ym1jQDtae24ofClj
YXhybDE8Q0ZwaHpwWTtQfUpXOVYmWVklVn1iY3BMZzdCeyY7ITBXa3UmM0ZoKWJAK1dQaDMKeiV1
eXJWMHZNMlIpJisrKU5VPlo5NFlEVFMkbWlmYFRDPkIjbTRTIyRsP3VSZVM+MUB2IVRSanYkdmde
b3NGaW9wCnozRWMxeUJ4fF9ETTh8JEIrZ2R0MitXbzg+VlNpT1pNa3tLeGJzRVRFcVhyTWU0M2J6
M0o7azJ8YmsxfFZmV319Tgp6aUJSeHNFMFZTU09mfWklXmdZMEZGTWxkd0JIdDc4RWpXP0hzYFRp
SClzMFdYI0UoVk1VPiF4KHBSTkVsMD8oJWQKeigwOSF8YzNKOWcreGkmKU1LTnIlTHp+VmFjQygl
Z0tXb1lASUQ2Xz5hPihFPW1WbXVxckt0SDVkJGR9eFgmTmVECno1Uml1QlhvOWBPe3hMPitWLTQ5
bVJjKDNrVCs+cU5QODE0WGMmRj02az9NJUB0Nk5PYkBAX1hgZDNodEk+fHpHTgp6JnozZCQ3XlRW
O2NWK2V5SEN6QitweU56MWF0YllYM2daZmlTakhCPDBFaHYmTSk3eHh6bEp1MzJASW9zeDU/cWQK
ei03S2EjV1M5KzFwcn02YiVkMnotWlQrRnpwZmA2M2Z5KWpUYi18eTM5aFgtV0ZLVGk3a25eKzQo
O1FKSSVsIXBLCnplMkwhN3IrYWQwUGZEMmJzYXI2WGdEPlhXSnh3d29IQ09SZjlyMFZFSU1fPEJX
TkQ8cEVJNT1RYVMpZ0dGfUAxUgp6bkh8diFaJig1IS05cGVqTnkrZyhoOCQ2JDFZX19MYHoqT3ZG
MmlxZE84Yylqcz1QY2xtSDtELUNubT8qZl4+cU0KekN6dz0wQDhhQjhUVnt0anpFNXp2UiYwTVI+
c29geHF+ckhTTEJ1SSltUyFEaDF7Q0l+KX5OYl4/XlJAR2IqMEExCno9Jk1uTSVQRypxbXJLQmpw
OFpJWVNAREZETndlNVd3PTJlNjV2c3s3PHAlS3RIRjJGM0JsaXIpWjw1Yj07JXB1bgp6S3J4dyNz
SiU4M3NvR1ZgdGJLQUxHY2ZoWFA4LVpXVGk0e28pbVZCdXZXIUJ1eUpgS1BMRjQzOV88JSUjYkE3
USYKenA3MlQ5LTw4S19tVCR2OSYpenp4TEVNcUJ0K1R6NUo9YkIxVzFPdHUyVkY4VnBsPmUwP091
KnhCez9BOVAkaXt5CnpNfDR4SjMpJSFHJThke3UtQUM1Jj4pMD8zRWVNZ2xuNFl1dDFgSX5zLUNs
Kn5HKlJpMWs+NX1KWTI5NTsmcHFALQp6I0xtXjRIcCRWeilYPzJ5XnNXQDsqQ2x5Ry0lZ0JVfExC
QjIrYkckelglWWNySSRjU2EkJFNkejJFQkREaVgkIUkKentfLSklSTNlKWhDM0tPQnFOVXBUT3NQ
dFJlVlYzR0R8P3NEemxFPGNaQipHe1lkdWU/ZXpMR057NmJGTWJtVy1yCnp3KVEqdm8rZm9RTHBG
YzskTH5SeGtDR3VJWWBCaFFEWU91JWR6VUxmVG5JR2xJKHM0d0JEcHsmRzFZTjBIdll0fQp6Q3BG
c0Rpb1JsWThNZUJLOVdtaTdkbS1mKVhCTEliJW51NlB2ezZJXzdVVDBBVEhCfFdBY257VENgUHhV
ZVdWLSoKemhkSzk8YlB7bVB2YCRnU2RMI3piViFMV3picTRwTm4yfXkmaXlgb2dhWT9BIUM1cmA4
SmNwMDxadykzRUVOLX5SCnpMTFc7KVk2KyZKc1ZpUTQjISh5cDZhPD5ZO2xzVj5VWUVXZl81OGgp
dCpSTjBKa3JHdTBwOXA4THtzX1JQd3ZUUgp6WFI5KWVKTipSTk1PXlJaYlpPWEdOZGllV2dWU3Mm
eHZxVEl2fTF4PnZDRHRFazZfV1dBVlh1P051N3NSRXYhO1UKemglS01nZEF9dTcyYFh6Nnsxbng4
dWRAM3dlNSQ5Xz54I2YyQ2l9QGh7MSRGaCZ9Mzx0YmszOH4mclVhPDUpMF5GCnpeUWI7RlMqbzxT
Z3VLZUBYJmExTFZ4flghVU13YlRSKWF3YDlvaVEqZmBkKX1gTFBSUjhiZEc/Mm1MND5DaUZ7ZAp6
K31nakVIYlUtNSswNnZpJmxicWNWVTRkS3lNXzJsZ2tvKjxSZUFDclJkSj4yTFUkQDU4TTlFUjA+
QDglOHtRYEgKek1ecG1mS3AqISlZa0xpfFAoR1QlSGAtXj1FbXJFVWhRNEk/dXh7KGdiOENmczNZ
Oz0kciE0LU8lMnluMTAoNnNSCnpVNng8d2NTbFIzPVh5Pm1vXiZfJFNuZkNFYlRlbUxQU1QzIyV6
M0ohNVl9cG97aWhaaWNnPzZfQURmVWN6P28xfQp6bUp4Q3pobk5Ufm8hPXZobVJURVhHUTRPVCRa
dmhyNXs1TWlkajJ5LXB9b0dWcVJGd1FpTnhwIzItKnNqRjZmc0YKelY2WDxHS0BGIXdlUFVVOzd4
VDU+aGhzU0w+d1IhUW1MYFFjQlBlRXBvZj4pMUxOa1pFYEFMK0c1KUA2cUM+cVIhCno4Kyl7YWt4
a2k/a2FGZlg2aX1wWHBfYFhsY2s5NH5TLT85KnE9UXFMMno9STRCQFp2aUA0P3lKaG8zUUlkTkk4
bAp6IzRRS0dkPCkyOzZWeTtYI2UqeF9nUCpoSFd5RkZncXVrT0pIN25kUVVLcnkhN3MrfVM+fEZQ
P1ZUM0RsSzFxUVEKems9b0ElclA8RGkjfTAkYT9oUUtAXmpOQzIre3tuT2F7MS1KdUdOLXV7YDlW
Ty0reXd1NkFmbjUhKyl2SW56fXshCnpCbDAoeD9SKCV6Qj4lQHUzUSlCSDxyfF5QYWEyTVBFPUZG
bzN6Kng0QzwmUCY8PjI7KUxpJm9MMyNNKnIkIXtJaAp6QVNNPSgjVkNvYm8xQmhSIypAZE8qflBY
KSNnTjk8MGw7ck5SS0c0fHAhXk5vY3dASXk+LX5aSj8wVCNDcVN4RCsKemV2aj9tQEh9ODlUVDJM
PDZIc0MjQkIoP31EeWtWSzlrKjElRn59Tjl5NEthZGVCKVJ2SnE7QDNwbVFudGpSdXlwCnpkK2JI
Mncjfn4/Z25ObD5jQk13eDVAdlVDc2x+NGsqXn5yNGFSIUVPUkFqVzAycjFlR1c8fS12SWwzQkN3
VlVFdwp6aCh4YnBqPmg/ITtNNGdEeFZ9OF5pbC1VcjtyMzRTX2BMZUQjdlhhLUpLa0BgQjslIT1t
fUlMZm82R0M8ZFp2Tz8KelM3KFFaUEwrcEJFOCk7aUg0UEtqVmFfKnk2WnQyZz5SUC12bndHTXZT
MVRDd0woZndQYy1Ub31PMWN5VjNLPzR4Cnp7X3s8Rmd7ZEAjcmpCNX1BRWc8Xj1xRVFScElBOTdI
TXh1eGA0cDFWUEMyQ0B6MmZhcXNUT2wkMi18KzhraCZhMwp6YnJkXklGUCkkY282NzJ0VXs4O2Vy
QDs3TFpxbSN8WEV1cilhK191fnJuVkVUclQ8RTQkRUgzWF5UdU9yVEMlVEUKemNAYl4jZVRDe2Er
aylffVhAX3VnRjAkanpXN1RHYnR0fU5HPi08cG0qO3NFdmtJNzZkSDV1aXZQdXkrM1RZQ2lGCnp3
WlFeQkRvcW9xc0c+MipqWn16T2R7aG0oWiUxYWZpOUxQY1hVdERTZj9DOUVoM0k4MGx0LTZ1Yz0m
fnFgRnVXKQp6S0hEdkZYZmVnU2o4TGN4RCN6VXVGPGxaRHdGMmNkOE1xaUg9bit9JEY0PFV2VUtn
dDBWTyZ2YUl3aiFNUzd1aEcKekFDUTVRR1ohZkVGQytlVzByamFANXZ8YSF6ZjN6aE5oNU1SazEp
SyRKfkRLeHFtZXspLXgqPlBZdWdnSXtadkk1CnpqfFRKUHBYJiRjVFNwdWZaMjN1WWw+bSM0VXZh
LSVOPDEwd1RJMU1hdn4pLT1wK2ZvKGo2UlJ4ensqIVo5VS0pQwp6OT5GZylnZiYtP0xyVlZ5QChf
d3g+JW5ifiNmV3ZNalo8SzJ5aHRWN1QodHBQP2FudXNCLXRyZiVOTX55VGBqalQKelhaSXU8JERH
bXB7dldRfXtUP35EPDhiaTZEYDUhbzlNTEZYKGF6b2Q2aWFoR3U/fCVyN1lYcF8yNWNlITw3SSt6
CnpkcntfMGpsaWBPcU8ocVFsRTZjUmo2WkBpSTA5el5pLUZMSmZAM2tsd2ZOPW1jS1EkQmdFY0h5
VCZhNlFrVVJgUgp6VTg3e1ZgWFZlQnsxRVAwOG5FOWdFTF9BT1RhIURYdXo0S2IkKG1RQytQeHQ0
Znhhc1V0b0YmYEFkKTB1RGBfbDUKekspZ1NIMGFtRDkkfFBTWXd0ZmluLTFnckZVWVJLZlBCYGVC
cGVQNHR5YH5II0pCOFRubnp3Wmh4Nnp4X2RnYkZjCnpeeyRMVGNmSG5nOFpNUEE/bFRqSHVCcz5+
M3NuSUU0UGpZYyU2KiNeSEQ+KmhgQE09Tm8oOGdFTz90R0c7REdMIQp6SWtuTjZWVklwTGVwZDcl
XjlrUFE9QG1+JCNHYGQmMjJ1QmQ3TmB4aVA3bmR+OCV6TDh6WTckNkhKWHVDP2UoWVUKem98Wmhm
RmxYV2tofThgYU5PVEV1aWNOU304MF8pYklgRlUpZX1HdylIKD5TR1pjQUIySWpKJWYoeGpTMEQz
ZyRmCnpwS1d2RTZDfUk5NWdFNXVjc0dKdyFJKF51QFFxMm0hfWI2MkpDMnxwTyUpeVBITShpXmE0
aEw2cyFedWhTWURRKAp6czYtU1UrMy0zdyRLb1ZOe2xSPUheaFZTUCM8bVRqdCZ3KzUkKGN0QVVG
eEladXJRSWlGY3A7TTglMktfPUp2P18Kej5FblJmQ05vb1M5JW9QX2JyaStzSHFMd3BOIUo7Z0Ij
SGJDVCp3UCRrUE1XZnA+M3MkIUY+Qkcwbkl9KHRPQmNTCnpgO3xhfmdaTEY0MyNoI1MjaDlLPGJ2
Uy0/NDM5LT9yT3Y/ekJacU1vRE8pOG0ofVFXRUN1dHJrZmE/KklzQFQ8Twp6XyZqZkFpRkxfIWol
dFR9S0Y5R01IanZnLT8oc0R9ZT0mdG0/clZ6WTA/ZGojJDxvOThhQkV5I3NHV2xAZUNRJjwKenVY
XzJwTEdpKjhGNnNOIS1NJGQ1SFRYdUhIN348bXJyJnE7RUtwaS05LXI0PWNhZFNzdWdBPG1fJG5q
KTx4VmR1CnpncXMmMW0wYHw7K0pFMGxtUWtTezJaQzteZ2tteCYkKzdgT3RndTBVWmlIZn4pMDti
ZyhjbEp+UjF1QjlNV0BEQwp6U0BpRHNzJnNMRmhPITd7emhjc0J6anMrQFR0Nzt0WSlPZyE5OHRB
REkkWVhNdldnbSNHOCpoZ3htTmE5ZkkqOTYKekFaO2BvcWFgKXNUYSZqYERlX2B0WVlecnZmP2Fs
ekJkTioxWih8T3E/Xkk7VVV+NUdKczJScFZPOV9FaGYwZnAkCnpjZ0BUMD9AT3YyVjhtdHNUdSpj
ez9eakEhNVQhNFFjYllaQSZ1bHxIR19LXnAyKHt9ezxnPVF5SUE2ejV0PGQlWQp6cG84SWNpe2sk
dEtePFMqJmkjYlMxdD9PeFhAWFlWQWAhP2ZPbEA0akxLYTJucTh3OUhpMWBaWFQ8ezFfPFFaTUwK
elJFQGI5NXRJd284cT4teE5XNjJ0ZFBzRDZtI0swaU0/ViZHYllhTCtUdjFSN1gpZ2p+I1NtVWI3
OHFMbmxxb1BeCnpTZWBna0lQQHpvak0wJkdPPWhAfFUxQnJqX0E1Kz9DS15WbD9xZ2pFKT1Nb3xN
YW58Z2NrWXZgcGtiU05vS0shbAp6SXsxMCNrYlI5e3AldVJKNHd4PDJNdE1JPm9yME4jY1A8JihX
Ul8oTlJ6ck5PYlE2RTRWdFV6Yz9mSD9RYFNtVGUKemU5dk95Sn5YWjFvMys5VVB3MFlsZ0pFSXdM
JWdCeGFRTz10akVxRHh1QDhxPlA8X1JyWCNHeUFoNyp3PWUhJXpNCnp2bW0rWDQ+LXslM2taPkw+
YD5BOWUoT2VeVzgqOGltRUtqdnJYfkI5Wj9tRjRwZGdBVzBHY3FROEs/UFdiT3RsaQp6NnYxd1hS
Y2pVTT9Va05TaVJ2fi1sRyZuPGUtLXJhdVE5I05DMT1GUCp4dlhmNjJ5WmUtKGcxPUVsWCFsalA+
PTYKeiQtWHRpPiFBWmBINEI3dnJQNj8+MHs3VXJ5d0Iydj5LY0VfcFc0TElPJkUxWDh6LT08RjBQ
ZnNsVyYhNklWNSshCnpxV3FxcUU/WClCNVl9YiY8d2EyS0E5SlRYR2U8RzB1Z0JAWTs8ZWpJa2d6
dExOTTE5dXQ2fHNiX0hEOGhEIzlJUgp6dVoxUnBIdnhgR25uJjw4T15JR2NAVmdiSVFmJFIqeEpG
MksyR3drQlEqZmhlTzQ/TD1BfSZWYGxIbnRfYn4xUUkKei05cnxMZSNfZU9wYjlUKDdQVHJhI1Vt
fCYtXjlrJTcqZW82djchUDN4RnpkPGxwMkEodHFBdSlFPUF+TjhpTUBICno8dShJUCljTnRJO0My
ZCRQRX5VP00kPG08djF4WWlab3BMVDxgPFoqNHhNIzItcDRnOEw4NSlhaEBlO1NASE5BfAp6PU9s
OE51cmxHX2pCTygocjxnaWUxVkN3czY7aEtwKldJTSpZeWJHKG1hPko8cUZiXzVwen02TD8lVW5S
dHZFTXQKeiRwalp0Kys8KSh0ZHtrbVU9dG5zbExuXndreT5MI1IzQ3xZTm5Na2MhKjYwYk1Idm5I
PGBpbEVHJXtKJkZlKiUrCnpqVFpHJHk2OzEkTD5gcVJfc3B9d1Y8aFRzZ09mVjtRd3VWdzdlfGs4
Y0J8OU5mO245SGJmP0hISVFQLWZFJHBWMQp6I0prTl4tfCRYdl9IZUlsbGtkTUdfSCk7bVVQVSkz
ekc3JkNOUCFpRGg+ITgzbE5yXntzMDhWMWZZJH1SdERCa18Kell7UEtxSVJQKEUrbmpsSj47LU5l
OURURTlZYy03VyMhN2U3RjNZVnRPZzJ5SyMmTTwpdyM0SypjKGJuXkZuSEdpCnpPTzUzcDFjZXwx
OGBpc1JpUHkyKUNwJmNYV0NNZXdTN1UoPDM/ZnIkNjwyZlAoVkFrb09rP01uO242Y3k2ZW9FTgp6
Y1ROUiotSWxvTlIzdjUjcVRrS34mUTkyIWhmPEhnOzUqZmVHYVFXOSM1aH4ldj5mQG10NT9VPmZR
KShzbjk/a1oKem9FTEg9QCZvLW09IWBRdFZQKjQhWnEzTUkqQyljKjE2OU9AQTZ7U3cxQnJVNzdi
WDw3KW8rQj1PS09UM01fcVV1CnopRyUxdipEdyQzIXtXVFdlfTJvfmQqVzd9e2l0dm9ocUshekk0
SE5rIU5BTEFtcldja21TVW1Oc1dDM316NTg5SQp6PyhQaD9UMHN4KlQ1UDVlT3YlTVliUnpVSik2
S24hQEBTdGRhYXZBXnVwPkJ1I3YoVkglbmxNNWlOZ1khWVVyTWkKemVfRnstdEF+Sz9aKz5EX1pg
ZWFgK3goSTx2fWB5alNKQGY+NVM0cjxoP14wI1g9JVdhbHxtZT16UW82JVdze1psCno9fSstdTh8
Y1NDSiFUQF9VWUg8JSRZWDxUUmpnJFpsPCREUnZXJCFqRXJAKDtjbDgldHY1TDBNJGRxdV9jRWAx
Nwp6TUk5dT5jISQmMkcjeFppNSFQK29kOFRVMzYkLVUrMmxVeihHKV5NPWApWEhDdWJ9cCs/czxe
TiVVTTR2VkxYIVcKejMhMF47MlhUNWNyb2s2aDE9e3ZVWjZobVE0TjIwemA+NW1mTn1XNGkyYWgk
S2djblBQcEVzXygjO1F7KTI3ZjwoCnoqeTJpZmxxYHFCLU9KWHUoOHdAUj0pLT4tYTZ8NGJOeE5N
bmZ0PzIwSGt1Q3kkNiRMMDlrZClHKVc0Tz05Qk18ewp6MG5qeW5PbnlOYVRWckZBUmImP1d6KUtP
MGM9YWVJcm1KR2RqMlQyMVUqZHs9ciYlV0dCX2ZCfSFDcmRxJSQhaDYKelRZSFpVOTFQWl91Nn5F
KmdUeTNYQSNKVjdXMVFGNnNqTjtAaExFe25DWDA3UUhUcHZIMTVQYUckLSFiZk5PI2QjCnpMPFV9
YFFuPnoteVEmdFNZIURAS3sxc1BDcXkoWG9wV0tLRF5TdShYMHlBZHRyQVBid3ZiOzBLendmQmlU
V0t8UQp6PUB+ZDBePDNNX2hTUiZDZT9BV30xNk44aVJSWXJuSkQ4QjhHIWt+N0BHUW9JPCMzMm1U
LXpSdFkyQ3BGMmYoWEEKek1VNkNrSEAwRU4xVU5AakJ4aEJhbzBZNzt0e2pjMWU0YSswZkI2Tjdi
MnlQbyg4QUBAMmhhQm5hc0FmJW5KQ2pICnpxbGAhcUo5emJva0EkQStMaSREXj1yJSprOTI4JVcw
YSNvPGdzJmB4M0Btcyo0M1J+Nil5bnVMKnFFVHhjNTROdgp6XnBCalJnQVErQGJLd2A1O21RfGta
Q2cwR3dAS1FlKTglRVZHazFsSjxmNF9vTzJidWQ5NkY8QXV9UCt5OXBaNV8KemFkdUBaO09NVHhA
WH1TbV9Ka3dpWjQyfH1WPEtUVWd3c0xYOXpeNEpmIVdjLVg5RlJzNkRqSk0/NDJAO3pfZUM1CnpV
SjIxKG93aG5pKE15X3JZRE5NSWY+S3tveWktJWkjKHtxIWkwKVdKMShhRkpnWSokZ257OEk9KFd3
MDRxSTF7SAp6eWUwaSpNcmB+dXF8aCoxeWooS2I2bHR3XktAMGE8eWU4WChvUnFEZGV+eWFuNllZ
eXUtRm4yUksjWF81Sz1QcHEKei1ycGpPVHJgSTRPSjtXKD5tJihFbUlgI2hSKjBjdDgje0J+M0JT
ejg4KzNCemc0azgxKl44JUtFIyowMlFSKlVLCnoyTS1eSkZ1I3ordXgpR2o5LVlwbjdJeyRvUSlv
TDFgbCZ8blRvTms0VGFtYl5oUlMpbnVvWklFakhPdEZxZmhheQp6WlVUYW4xalhWV2hOclRZQSRV
bExsMio1dzREZGtCYFpmZnNAO35jWT0yNnV5ano/MlQ5YlZpJjJzUnBjSlFFY30KenN3PHhsXkts
TjV7Q2RKR2dkaDNZZkt+fmJmQGk2K2Exa2Axbl9MMF5yZiYhO3R2KlBYU0ZfJitRakZ6TVYreip7
CnozejxBKHZmLUlFVi1FQzwtbGt7WHA/fUZoZFgxVEE2NVgyZkRmeXkqN1BmQHFScGdGflhXNEZ3
Wk5mJj5xKitQLQp6RE5eQ21lRHclc18xKyV9SW00OSshI09qWjtqKFEqaGZrI0JtfXZjaXh0TFVr
LWw+cUBgQlY3cHBPckcyVyNaJSYKelcoKX4yYyp3YmdXbEcmfXVWazxVMCRZP2JlVHN2VGJTTnFZ
UENEOTd0Qk5DIS04fmU1Nz9ZVXJsQngqWkxLbntnCnpjQlB3YCU4c15TdTVDK2IjR01FVHt2XyNw
cSgjaHFLTlhXOHV4SnIhbVdjSV48YDdVUjxJV0V9RVp7NDNhIU95KQp6JHdfV0M5eGl9dj5VTkQ7
TEV5QD8jQ3t9NzdOfldZenopP0F6QEJAU3l4RiZRZndnUlZPT24lMGF5ZTc1JiZ9PlMKenpYYyRE
MntENXNLenA/a1peYURuYCpuRiszfGZ8ZShvJE0jeVIpc180VEh3dSYzdmkqSlB3T0JSKSU5fGNR
XilnCno0WEhDRkVzS1l7dzFLQHo9QUlBdlBLbDN+dGJfXlVJaEJ3bUJEbGAwMH5mcT1TeiZ4aDw+
UEEyaEpDSCFoR3dVVwp6U2d0cHJmMipMJGptRTtJPHs0RihHZ25jJVlBWGZyPVNxaHVkblNLZ2Jn
VX51bjJae1lJUntaVSY8STN4IV5faVQKemQ2SjR1O0ZuQC1XeWV4UTM/VjwoVXNldHQzQysrdksp
YHV4JE1hWlM3VUc8XyRPPTxlJmM3WDhuJFJlVWB3WThxCno/bmBPO15ObS1BVGhSMHhqYmopZzAh
d2VZT2JITS1CRSlBKzt6e2JrUyZNPjY/M09VY1NMQWFZQGVXYGVFZ3B0Nwp6bFVsSGVtKlI9O1Q/
UEA4NytlaT1LKmkpYyhgTTdyZ1lwfjsxdjNVQXJvVDB6bzJiMUo+JChFNzJlN3dKUkpeaisKemZ3
YXtsUH10PEMqcndVZ29WZDVMVm5FbjVFTTFrc193YlpZM3ZGU3M9I3wzY3dAOX1Qa2ZxM0FGN2g3
YVIjc0M4Cnp4c0VzfE1zT3pKNVh1eVJmSzMjQTl9VW4ycVlER1QzeD5lV1YyQ2F0KHRgR1JwfEZ2
UGgrcV9mcURyRGJtX01ndgp6ZTExdGNEaH5aeHcrI254Mih4e0hlPys+Qjh9NyFWYHNhcm1WRGU2
eyQkczVgQUQpTkYhKilMa3hoZTg2WEA4WUoKelVLajVYeW5DNVRraGA5MzNtaUUyWGVJcnE8TWlG
cFFGMm5WfEs3bHpMfDh2P00lOVRxOU4jJD80fUZMNldnK19RCnomNyE/YWBhM1BSXlZwcGNlOyFu
KDI9SD9XJGVvaTBJP3hxZGFhM2NeKy1gd2pQRX49UWtIWGx8eyN2dFhASlc/aQp6QjVKTlJUMmIt
X1QmWGlUMHFicnE2UUhSfXpHXlA1TnFHWEp0O296NzF8e0smRGhNOUlyYEg+IzJETVheazdRTFoK
ekx8MUREU0NzYDxpM1Y1OEVeMEp8UiMxJH1PVTAlazB4Mj0rcjlxbUd5cDtvSFlNYE5GKTFqaCls
NzJIZHpyb20+CnpQfmI4d2dFY19BPHhieWEpVmQhUz18Z3todChDTTwtUVQybkNqTkMhTjxJS05n
JEdEQE5sJiQrOEI8dyNnciZ2fQp6VHw2eCUpKmMmTjJmVDA4WTN9WDx1NkVaflBGMHVxXitua35W
fUN0fEZZTXpDSlN4MFYrO2debTttXkUhN3BlRVQKelklUXM3a0Y2RmFzP2ZEaEMkRStadHoxS3sp
dXBkQnR9Z0pkeTRXaCR1fXtnYj1KJjJGLXpxK3s1OEo3fWNDTyotCnp1OEZMISg2Nj8hdWhQcFlZ
cXc5Pkt1T2tTNjg9a0pKY0MhPHlmKUktJXBoTTFBbXtKdzZWJkFWY0s5Z2V1IV87Mwp6Tnp0WkN2
PkxFaHYoamMqUEpjK0pESkVabnRjOVhuRGVvbl5SMUtTOFZ5cEVLVlM9IUY/NF9HKEtUTkUzeXd3
MSYKejw8NEZzbSMoVyYtRUV8JGVwIzhSMntLWEBeOW4rKW5iUl9DdUt1MmB5LT9qJl9FdCNxTCtf
SjQ7dE49MldBSj9fCno+R0F3YTFMZDJgcnpfSnstTitoVUVgN0Q/JHZBQ0J7VSsjRGY0cks3SFky
I3xIN2FkM2BncXVDZGhBTTVgNjQmXgp6bWwmTit7O3Q4KkFAc1VSRk5kKDI4PXhfeWBaUGlabVoq
SlR3RUAxNGZYZkR8aDZHTDUpam1HQm4mRDBMPVZmQG0KekNmc3ZoVmE/ITIqUVhia3lYUkhNbDxa
Q0h7aj9GK3pQR3EmaEVnU1omPSh3YkBVY0xzPnZJUFZJPW08emJ3KHwzCnpoIX5JXkVEdURiVTxI
JT55VVlmRmZgS3Z4O0hOTmcrfm5mTG5uaXF7VTMyQX4yYCUxVnp8d21URXMyZSQpV1NSegp6KXVs
MVRZOztXQVFsKXotS2RnMmNOYDhJbntebElZME8pa1FeSTJTb1FXZn5GPipNSnAhcFZtIVRCOXkt
dEM4el4Kem87YkNRP3tqJTZwNmBJO0hrOHQhU1lyKEJBJj48WUpQbiFWZnZfMWJjaT59RHJHeDxS
a35WKE9Yel5zfiVsXjFMCnpOczVGfDFESm9TOVg9clZeRWl7VWhJN1NhPmcyVVlnZ1Z8WmsjYE9n
NyVARlFBUHZpaWpHb3huM3VCbjAxMFQwOAp6USFuRjxZYkVVPlp0UH58aGpTTWQhKDErcCpFeiFe
IXQtfWA1ITxHV2BOM3c5e29wQjtMITA8MHspez1RZjAhc2QKemRKWjIxUF57bC1EOVZ5UVMpPk97
LVImKkdCJDZwNDFKa2hPI1UjPGxKNHdLVGRqc1pweVZqbllCam1DM1kxQWJiCnpMfStfPXFeVlRL
Rnh8cVdDe3FvOUMhfUNOc2ltQXtSTUktR2A/ST5me3VOaiM2NnhHTCQjZHp+PXRTa3BUJTRpMQp6
Z2prUUtpRWE8VjhWJk9aZm5UZStITExOOWJ2YiVQNShxWkQ2dGg0UTRwc1pTMGcpJF5KQ1ZubHIy
PTE9Ql5wbnoKekhrRWpvSyE8P2c2LWxnKkM8flFfSk49ViN2RGpBRVAtd0ZhTUhWVmFJd19McEB1
Zzx2XkhQX2pBYEg9R3skRVFgCnoyP01zdGxSMmRzWDVaNVMtRzRgb1dSajh1Pm50OChIKU83LSs4
WlNvQSk3Xkp2amJLUC1ORjUjc2k4MzhGRVRSOQp6ez5GfWFFdHl8QXhDRj9fOUsyYSFQQ0Qme21M
SWFMbn5yWTlQa1ZsVHskJmpXLV45TChEWlBqYiEzISg/NmdQPHAKelNuSERsSnxFaXspK21pLXpB
OFFTe1VsZGkqVHtmdmp+MWY7O35UQkQ1JjB0Y1kjcUArU0tSNDw+IW9ScHRiQG4rCnpqO1NqMUV6
UCZyVEh8ZHNVRjVUI2NHcm82RzRBUjJvWVA0QTZDJCRIWnNNaGItfU1nVkp8OURmOW5yN2xKen12
bAp6MTQ4TXBuaDk7PT5pKTJCdkAtfG0pYiZ2UVUmTU1kMGhrQCgzT09nXiZiZm1QRF81WUtJO2gx
R2dubVV5S012TlMKeipEbEBqRkVle0dnUVlWODJRNWx9VUBZI1ImaTU2ZXMhZk8jS0Z+Nj5tOF5q
NV9WWWkkYUwzTUl1ckREPWlWIVkjCnp3KUMkS3F6c1d3Nm1sIV9ia0I1OCtQbnIpajcyeUoxOWRa
O1FwZUNAPVlzcWM2fm0xWGx4Sn10PVk/I0E5b3ZaUAp6NCpzJmlvP0tTQj01WF9NcTBRciFuWi05
N1Bje3A4Pk5OMmh3NkwxJD98Kndkd0UoKXVAR1YrOGNSbVZ1NGl8bkYKejJZQ2lhYHtIJmR6WCtA
K0Z+ejN9JjJIWn5BJEojKDNyaXpRVThIZUd2ZUhMTz8+WE9pcT1QI3tGYD5pbyZ8fSN9CnorcVFK
YiMkPWI4Ymc9UHMhPGU9KlExTmd0Y1JQRGp2KHNrVntMV0RiMnFNJUAwamtBZFJ8WVhVMCl9Si1W
WihWTwp6dnt4N2I9cmxnQEx6ISsjcExGe1RkSSUyNXI7UDNfdExmfmE8MW1+ZFd1Xik5WHwhLTA2
NjBWd05jfHhVI152Z2UKekBeKDkramdJTCtlUUlKUkkkZjRCdmYmb0UhM1RsaWoyVytkRnJKbFVG
fUpMd2hDTW58JjB0MCZRaUFac2ZYR0d7CnpqVmdZQkhsUlJZREEkcnE2M1BQKzU+e3Y1OERLIVoj
RVdCeitMNEFEOXpwJXwpaT54VGYzZXswK35eMSYxbzYjSwp6d3IzWlJEYSFoSlBmVXxlQjdsbTZx
ZU5EaSklfG9xPSRydFNqaGlpOW02XldaSHtzdD05ZlEjZGhyNTJzRUtjRFYKeil7VSg0Qy1HIyox
QjRUSkdqcGBDSz8tUElFQ1MmemxgeSFGWHF0TihYPXFFYSpnQnEzXlRGbX1DcGohPFp7Y3YjCno7
cDV0UUklJFokMjBPbFF2aWFGMEpFbERnI35TVV5YfmBsX3BZJXZBU1oweG45UzBZdyQydTNpZ1Ax
bFhlbEMlWgp6MipOb2YqRzVJcEpgTEFRZnJhMmJyXl9TYFUrZCRffDZ8SHdDSTNGVmNGUW09OURm
UGF3QEI0WTh7ZFQweStrNEUKemxnVk9KQWRVM3g+bkx1Ylg3VikkQD9BP0FVMEh5RGl8KV4jZDtv
UD9tJk9CfE00fipecyFCQ197QFI9RHFWeWApCnpeaXozakZLXndBSGJuZD9AO3I2RmRGWnhtSEE9
Q0pZPjlOWTdgdlcyYUA4XzN5PCZERnBnQmtXQFRgPWVGSzhvTwp6VCh5I2VTfWxyT2BaQmZjUGFL
PiQ5dTI9K19NdGcxSjsyeUJONF41fUQ4WEV4MFdkR2NpM1BRa3sxVWFCPFVFPHAKejhEYHFJO0Bg
WmNPQFJXZz5nQ0xqQThKJmwkUU0pMThDUml+VDtTNTRaSChAWG9+JFpGJkpzP34hfCVEfFpYe0pq
CnoqcGMtTDNQfiNXa1ZmIVA1MUR4UV5LfUNERD1ZP2hOQT87PXZwcUpJQjtFOGc8R3J4flhCMG1q
NWpWQ1lGdnozbQp6b3pEYT5HTXY0Pz58Plpie3puWFJMKj8pUWtffH0yaj9UKDxFJnc4OWhLb2lT
WFpQSS1saDl1QkV+bkJgJSo4WSMKejAqTWI3ezcwa2VsdWw4cShpP0QzOGtRO14pQkdJVCNLOzJH
YzBPLSktPVI4WGhDRC1mUnZqIUtJJn4hbkItdFJHCno2JWtSaHAtKGEzOHluJWZ4eHwzfTIoOTxX
TSMzcCtQRzdGem5EUCZrU1hZNGxhITE4S3lmNT1aZSlJN3UhYmRKKAp6dT81YndEcTB5Zi1VPSMy
QHd9JXkmJEhMUGw2JCMoOC1lS3VLQEdzTHRqeWxeejNjcyU9fH5OOUZnOEBIaz8wc08KekZjSD9s
byFeb0omN0woP2xmQzlVMVhzZGEzVjFSQik2KV9jUVU+U2VFaWYzd212WjAhMEJLV1IqJiNNLUBX
ZStuCnpkIVktRF8pJUJQPCshekhNLVdnTUEtPHxFMjZPKjUjViZ3Ri1IPzdLe2JpMHQhSmFAPCNU
MTFwYHo3a1I5YkxeSQp6eGlYfGJna0BnRztVfmUzI1Z3ZmQ+YlcrRyNlOzA0eClJMHM0QSZWZ0ko
Rmp1XzBUfGNZPmZ2S15mfituI00pLUkKektBP0AwQntQQDMzRi0qRFNfXkVUTDBYY2FPSVJkRFc1
VjRCX3pZYE5kP00jNz5vZUchWl42QmEtZENre0o7bHN5CnppaVNVaHlPKz5ze0M3KURuc2AyUmYq
allgZ0hrbVU1Z1JhMk1MQUtqVFp1MG1BTyNvQXV0I3ZFellGX0MhP3xNRwp6UWJ8UlllSVRyRG5n
fl5LOXlSQCQ9VHUpcEI2PzU1Z3RBcns1fkVQVGoqcG5YZVI+WiVtOzZHTUUwX1RFKDQtcncKek1F
M0U4ZkBpcVdsZ3Q9fVU5RE1CY3BBMyViOXFiRnxFfjVNOU5XZDsqZ2hiciVUSCkmXik1IXlDJVha
YHY/d0pUCnpyMHpVRXtnXitYdFV3KFU8Q0VTJigzPGRiLW1zJCN4UnlvJml8aUxVbndmTyFHQmM2
MiUzP0Q4ajJsPmt3WEkwQwp6e09rcyFqWlMxUF5DMiZtJSlkVHVSQ2w2Nk1KOU9Tdm87aU9ra0Aq
NDlfZlM0VUsyc0lnfSRvTjVgVClXVl9qfiQKeiMqeTsoX2hXMnx0b1ExV0N4UTYtdkNyLT82KjNp
JENCP1QoSXkoVXU0QntKam4zRnM1KUhZS2l3bjw3VU12QWhNCnp0bH5jaWIpaypqM3dsMC0maz5E
dSkpbENJJCFZTDNMcFk/ST5nKWx6Rl9pUyY7WXJFTmNGOTxwR1BhcmVhS1FfdQp6azs5cWFaNVhg
V1p9OTJVe1dMIVEzTUNwXz97biFZZCZscjEpQm9oJWd8WHhpMVNhUzRqP3l7LVhzRE0/UUMmWkcK
ejFDIU1PIU4/aU5KJUNNdFArWl5sYmw5ZGBHZkxtZ2lhMVBvKjxnMSkwcWE/NCNOVWszN3BQV3dH
S2FvUHhhR0tFCnpsQz1YUjAmP1RDNF9Qdm9adUMpLXQ8ckxHUlRRJGlQYDVoYXkkNUhvcVJvX05h
fFBucmB0VSNISGMwN3w7NzRIagp6IXFtO1ZXVUBHKklUKHhDTGhoYWs4UjI2RT8lUFMwWnZCdUEq
VUsyTk1nTGEtbG4haDB5KW4zJF5wejJgdDgtdlcKel8kblRLS1hlek9qT3c0ODAwNisqbndtRkpP
MWAjJmZkR1dDaXFrRDdzYXNVZno7X3BWTUJjUndIezF9UURgfndECnozZntwfUR8PWkkbmVGTUZ5
UkZwKGEzPU11N2txRTk1bXFMX3VySEN5aVBRKXU1NVZnSUQlYH1sYGUoOz1lbk80Swp6TyVtaW4j
UGQpNGNeSGE3Zy03M35VflkqUmV9d0BHLXYpPzxOKHBse2cra24kXnotPlJIJWdqPlgrVTxsNXtS
I2kKemVSYl96KUR0SENoaktoelNYZGQyaEp1RlZ4LSE/VVo8e0J2JkY9fn5TbWZ4OGM5MVZGU3dN
Y1khcn5nUWg7XzRKCnpPVVg1KXcxOTBBKUF+SWkobW0kV2RqejcrQCFaYncpeWA7cUZDI29ubWRN
TipTY2ImSU1ReDA8NGxPYVZzOGM0Ngp6IUlNR0lNLXZpJjJXdStVJlFRI1N0a0IyN2YqO1M5V1Iz
KX5MWks1X1hFI3ZaXlZWYXU2OVpUKk9FPk50cE83Y1cKej15OWJ0PCF0Ul8xTntVVjYoeHgqakow
SStQeyNoS0wqa3doMSFFel5ZeX5vPiVVSFVtMTRiJUt2Qj5mbWtUPWJfCnppZ2QpeEJnSzIje2gz
Mz1icWw0Szs7ODN6a1V+VUIxMmpkTjI4K050I1deUFdmKFNzVD1sWndOWFlBWHdIOHArRAp6MlQt
d0QxYDZWfXhgSkpVNSlnP2x7S2ZiWTNVe0sqamtGOV87ISZwT2o3YjdiPDRPNWcyWGJFZm1fZzsj
TGRwO2kKekQ8SEF5ZkpEXnQhY3N+V0NTSk9aSyMzUlZQR3N1cDg4Q2A3UmYzPWNBcV42JlQ3ZnMl
TzYzcj9YRX55aTEhbUE3CnpuYTt7SjlRa3cxLTNVTUEwd0QlfSVuIS1ZIVhqOT0raVdxZmZ6KVFy
Nz4tKlFSPzF4PlVYJmxFQXs3d31qaVlDSwp6dTAwTkE9I0BGPHZnO21iRHArdTJDbWBecEI5RCRT
dUY/MSpldn50USpnKFZBaG9tby1uSClUQ2NwKzgqLVlnNiEKekxpe2Y0bnhYe2Qye0xTWWEzZTI2
KENvY1dpXnlnZW1ya2hTVVJJOTgyKCErMDV6WFFsITRRUCZPITtQQ3QrczFaCnpXUl9QeFVpMyZZ
aXh3NU04bkNIa0RnNl89ZitoazxObk45TCtjTUBiPSNkZ0dwSEspQDhvM1R1OGx6YnFvX2NlcAp6
ZmtyelJ3PGQwSURxNUhBdHZGQ2xVXz1YPyR2X2E/S089WW9oMzZ1ME94WiRTIStXVVE+bUJgQ0Vn
T1BHTD4qbSoKejZMIUBkcUp6RkQoNDBKRS1xb0I5QzBIRkwzfDR0T0o5MXBQVlpGaHc3ZXU7Unow
fXckc2gmWE56I1hPcTJUdklyCnppe345azdMN003TCMhTX5jcmNgSTZXNSlyJGFHM31wVjdwaiU7
RWBsRVAtS1cmdj93IUx9bn1tYTM1YjtTflE3dQp6V242UUQxVzR2P2J2JGw7IUJ4PWdiT3VGKVFK
aWVOX00kbldORzQ5MzlhN2R7MH43Qmo8KCNPNyhwdyZfZjFIaV8KejskJGYzKEskK2xhUS1zc1Y5
cmNaN3NVeEg/aChPRHhNcHU4YH5xMFJAM1Y8NVpVUjdOMEI+WDdpXmsxUDExKz5jCnowI3szY1U3
ME0lZj9lT3pXZStNTnhANGA8SihEdy13QFlVKWlHaEk9RyVjQWp2ajkraEt0fnNtbnomK09lQHIh
PAp6VjY/Tzt0bHppaHo2LUpOSElOQnVRNWZEdz5PNktmTkV9Pi0lQXkqZ09QYGolbmxUI2oycXBq
IzxaRi0/QyppZzUKems4c14rPSQ9N0Y2OVM+TzNVclVnNF5pZD5veTNrVCprUXBeWEEmeDlNN1Fi
Y1Erdjt3MDVPR2VfenZ9QFJVM3FpCnokWjRaPFFMcX1VMEtxSzhsQShIdlVnP18+QmNoQmNWYSRm
bzFERk59WU9UODBiVFR3RFNRZGNIblYrZ2l5RC1MdAp6S20mcVp5YyU5Q1RNJVBLb04lZ3tYZ3NQ
c05NfWtPMH0mND5Kd1dkeWE9OSk1QXNofl4wKHVWPk1eeVNpYkdDd3oKejUkUE4rTWwlcDxkKDx1
S1l+dyY7YWB3bzw8PiQ+SkpeI3g2dExzMEtHeUx1cE8mTSQ0NGt2IUArUDR0UHYtKFEpCnpuVyFz
LUImJTxYMXJ1dHV6O2ghSU16djBzdT1FYH00Y01VS1FZLURrWGR+ck1Wdz9pR18kfjtqek0/ZEVS
UDVwWAp6QFkjP2N2ekVsJTM1ZmhLbVVzMCkwU3FtdTNBa2VEVk1rQEM2aG9pSDk3RzVgMF47RiZp
THhldCNHQDQtZFg+azgKenA5N09YTkAjd3dvZy0jNmw2RH4lTTg2c25kfDMpYSs0T0tyKHUkNnJs
ZTMyRzI0IyN9Pk5XJmtqN1RPczNWWEpMCno8Tnl2ckF+SiVwWF8hMlRhWiVNbjRuTykpMFQ1PmM0
K0A3SyVoPHxAREVGQC0pe2ZEb1VeaWFERmYzMn10JF5sQQp6cGwraUx8SjJNK2c5aSNee1FQfFBR
aTw7ZTBTPyl4YkIxZzFfYDw+WSkqdyNQJnl9SSFjMjFVcTNMYzxYaUxyZW8KekNpKE4oRFJOLUNH
Tj1GX3Rxc0Eqeyt0K1Z5QGlQRWhzY1M1XmRVSE1UKVZ5b0o4bGY4TUspej5QY0g7NGJxSTBGCnpH
JVpRc3d0dWRyM3Izd310UWBAS1hCXlp4TUdGZG1pZHlJfFc0M0EjLTMkKDZOMiVoaW4qPFUjYFZz
d3wzSyplKgp6K1hxOHBKd21PVUQwRDxJKiptMERaX0V6emF6NWw+NElzU0lHNVIzeEx2MG8tT0c/
T0hAQ14qakhTTWR8KW1ePWsKejhxIVVGMkt7TmQ5UyE1dFghUzVeMChnMTgrblkjdnkzeyh0UkU2
QFA0P3plSzw+VE0pa21HZF9WUG5RQTdrUlhmCnprJH4pVGxIK2dPbjdtPWoydmJLWEItITw/M3cz
eEZgTTNBRnkmPz49OUlJX3FhUjdGYnYoTXM9UEMjMiN3YHcjVwp6PXJqNCRTcWc0MzFaZkk7UDgx
Rj0lMmFBSyYxTU1DX3lMeHVXOVBNdFNoYkBPJSlSOX5JWTJONEhqSlVYbXdYSGwKej1KN3FoNWUh
bnxpMjNsSjNBb3JpJHFqYnFZK0BQR0dVUGJqNm1OIyQ5dTQyLWtXdjFISylYZio3ZHU0ekkmQXA7
CnorVy1aVWZoPVdYV1ZiRD56IXlUOTAmS3R2QGA/UCtebGp6d20qPEVPU1EhWWtPaVZvPEJle2ox
aGA9a31TJTQoTQp6ZUZMJj82fmQjZ2QrRzcweERxTEZAal9HMzN6NmtDcjNReFlOX1E/fnQzPXo+
UH5HbiUpTz9nQjxBREg1NThINFMKekU1Y0wrYDBiIW9TcClDeUdfVz41NnJjMms4KnlxWjxoZ1VA
bkg7N3tSQTcldlZqdnQkQ153TTA5dCZ9YXBuM1VBCnohTDlAKk98IVlJIWhRPHJVMXZBKiNzXm9Z
KSErfUVKY0x6KGNeQDt3T0c2RTl2NyNwIzA0bV9CM0REIWlRNU57ZAp6akFSUklNJW4jPjRAN25Y
X0wpal8hNGJZdzI4MEEyczR6XjB7KT1SM3ZKejdReihOPjBqWGBJbCRNNUJiUWtfXj8Kem1iPTJE
d08pZ1F5Zy0+dDNKRCltQng7QilnSTZjTklmRWx3eGw1d0YlKyUrRk5nJFBGWGZ+JXViZVNLNkwy
OyprCnotWlN+bDU7K2wtd2w2e3c3RHlxfXstRlY+Tm42RTsyNG13QTYobilEaFR6b29YR1JpQFdR
RkxVbGMmJmlPPUleVAp6aXZ5d0pOYXdjXj1FPTBYRnFzVlJSMDEqPE1zMCtRdGUoODYyPSFwIUhm
d3dOeTNzbTNuaWcqM3VXUTYpTThuTncKejt6ciZjNFJIQGtPKyEhWldKY2VHS0kpYzU0bWRAbnZU
X294LUVeOUhGMSR5Qz1ONVJPYEl8eURMdVJMazV+bGQ9Cnphdn1NPDFaYUIpYDA4UkskYEJISWE5
WSNaa2F8dkp2TWg+Y088NUhFaWp8ZUVtVks4Zz9JZnNBSk5tcX5FZ1FmZgp6d1J2JVVXXnAmNnZ6
cGVtNkFWYUd0YzNRPkc1d2lSa3RQSzNlcD5KS1BiZCVOaVZuUXNUe05DJW9KTEwtcUohOC0KelAt
aClCd1J5VncmSCgtfiE8RkN7bVh3bDl0aTM5b2hFZjRySz85WEJxfkg+aDlGd0psS35UdClzfkdX
OT1OeyVICnprSGFocEteckhkVm5jQVd2IU15O1B5KiZPa3Y+QD1QajxeKlR5clJMenJ4VXBofSk9
Y25HSjkkM0l9aiRscj99PQp6ej0ydClqYXRuX15LQEI9SV9OUFM9I0sxQnRDcXFRbnNHTlRRZm10
NDl6WV5PcjNYTElrY05RKjlgRG17dG0rdGUKekd6ci1lOEZNSH4/a0k2QFZfcUliVzZgMkNFUXAq
R245ITRMU1pFV3Q4P0YtdT9UOUU4Xkl7aT0qZFArZ1kyfEhgCnpNR2RpS0NaSUojaTNwWjRzbHNg
b25SZD1lMFUlbiNDYWAke1dyQzRXVX5sd3hTPThOME5aejx1YDljS2lkKE5OPAp6RnNmWTdCU0VK
JEI8N0YqIzVtQXsmWnh9e2pwR0tUd09SdmN2UUIreSpzMUkjUGBpQ1Y/K3hHenI5YipMV1F2SX4K
enJoaHBjaCVRallwbFRqdFp8dU8xJW1sPyhOV3hiTU4wRzNZJDAxSW5HKW4tZm5nSUBoPTwkeSFY
NDVfeHpZWjw7Cno0fEVwblp1RDhXRyN0dysrMmRvVlBRd1k8VmZOT0NlPyV3WDk9UlMxQ1NOZT03
RUxBflVmUCglVmdAYjNJZUA0Pwp6V2dXNGR5PjYhMGs+MGxyNz0tV2dmYF9GPW9oK3xwQSg9JmRP
SFdZSEFlYG5wPld2KilmQDt+VjZpPDdzM21pamMKelo0QENgZ3pYSj95dCo9NmV3QmM+WGVRbn0+
VyFVZVB8fnRecD9iU3RuS3sjUzVkbFBieGQ5PnUjS3oxPmd2dHRLCnpkMz8mQzdBTFU4VFhDdSRh
KHBBP25vXkImdlJ8Nn5pan1zaXJwKnAoQEtRWl9JMjQlZVNZNUM8Y2oqPDV4Mk8oMQp6UTd6Tmcl
P0RtKT5KbTBBTnxaJkNMek9UZk43T0cjMEY9PiFGcVNrMzw9RGk0YHUxWjBJYjhzZWxPbHpJSW0z
aWQKemp3LV9OUVhffj1rSUIxT2RJaDR1RyY2KWEkdUFlUS0/QDVhTWtGeitVJT5mRVI+YzJDKSk2
dk0kcWBzNzQ9JEtnCno8WVEpTVNKTHpPUmxTQSo+aUJqY3ZiWjc1enp4Z29IcG9JRUNnOD1NMjRA
Zy1nYEdMLTM8I1dQcW9CMDVXSlBkbAp6ODc8cF4lN0g3T2V3a2lJPExxKy1RWUIkRD9Kcz5XMFB2
KDBvMXZCcTZeS3pNMUMoSWxNZGsmeSEyeGNgeFpCeTQKemJrKHRkJXZYSW00Yj19e3EldSViRnJD
eiUjeyVTfTViUGxpQn5venhMVipTRzM4YEBqSlFTQkNBYys7aUBlYDtOCnp0ME04eWlmdyFjeFQr
VGVMVTM5WERyQlNlI0doWSYpLVR8YjskUjlOPGgkcXdDOFFCSWQ0VmZVQktxPkdeQU08eAp6V3tx
WlMtRU5IcnNTZGY1Uy1vdURBWDlrKjAlNjc8UnBoeW4lX35rJms2T1AjamJHYj1wQSkwMkpFLWRT
YGIxTysKenIxPTtDNndGeWlJIVRxP0A8YndPcCRWUTY8fTI3YXpfJj9FZChld01mJTIwPF5afkYk
eSk7R20kMz5ISTJeTHE5CnpOKVZHfShNNWN1SWV8OEN6djg0PUIxcD9rTmhiJi0ra0NKfkNwQF5X
YmNSbFFOZ2crOFYxPWN0SldCWClrcTBmZAp6QWZGJkgwd1FpbTtEXlJOTHQqKTg+QmxidDM0Pl5a
bmlNaV45fHFuQiVFUztFIWtTUSFJSzhZPkExeD1tNzZ6cmUKeloyZyN7YUNfbCk7Qn1aYkdmM1kk
NVBmP0hhISMwdDM8NUZgRUQkcDwjcmwwZTVDRnRxYyEhT2k3TX5VSDdJOH4+CnpLY05VdTglfVp+
QmI/LUhLLTt4b0tDakw4Pl8mMGNMTzt7TVMmMyR2QXwpXyFLU24qcyV1ZzY5MGZkTGNyYUQ3LQpm
RCZ4OHRqRSRXYlhqcyZzblU4KXxeQjtzNnlUcHRjS0F6eCRRcDNLMAoKbGl0ZXJhbCAwCkhjbVY/
ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9ydW5uZXIvZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci5z
dmcgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1
bm5lci9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFyLnN2ZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
M2UyZGM3MzlkZDg1MWYyZDdkMjkxYmUwMzJlMzBiOTA5ZTNlOTVmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5u
ZXIvZm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci5zdmcKQEAgLTAsMCArMSwyMjkg
QEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhRE9DVFlQRSBzdmcg
UFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBo
aWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCIgPgorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMjAwMC9zdmciPgorPG1ldGFkYXRhPjwvbWV0YWRhdGE+Cis8ZGVmcz4KKzxmb250IGlkPSJn
bHlwaGljb25zX2hhbGZsaW5nc3JlZ3VsYXIiIGhvcml6LWFkdi14PSIxMjAwIiA+Cis8Zm9udC1m
YWNlIHVuaXRzLXBlci1lbT0iMTIwMCIgYXNjZW50PSI5NjAiIGRlc2NlbnQ9Ii0yNDAiIC8+Cis8
bWlzc2luZy1nbHlwaCBob3Jpei1hZHYteD0iNTAwIiAvPgorPGdseXBoIC8+Cis8Z2x5cGggLz4K
KzxnbHlwaCB1bmljb2RlPSImI3hkOyIgLz4KKzxnbHlwaCB1bmljb2RlPSIgIiAvPgorPGdseXBo
IHVuaWNvZGU9IioiIGQ9Ik0xMDAgNTAwdjIwMGgyNTlsLTE4MyAxODNsMTQxIDE0MWwxODMgLTE4
M3YyNTloMjAwdi0yNTlsMTgzIDE4M2wxNDEgLTE0MWwtMTgzIC0xODNoMjU5di0yMDBoLTI1OWwx
ODMgLTE4M2wtMTQxIC0xNDFsLTE4MyAxODN2LTI1OWgtMjAwdjI1OWwtMTgzIC0xODNsLTE0MSAx
NDFsMTgzIDE4M2gtMjU5eiIgLz4KKzxnbHlwaCB1bmljb2RlPSIrIiBkPSJNMCA0MDB2MzAwaDQw
MHY0MDBoMzAwdi00MDBoNDAwdi0zMDBoLTQwMHYtNDAwaC0zMDB2NDAwaC00MDB6IiAvPgorPGds
eXBoIHVuaWNvZGU9IiYjeGEwOyIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3gyMDAwOyIgaG9yaXot
YWR2LXg9IjY1MiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3gyMDAxOyIgaG9yaXotYWR2LXg9IjEz
MDQiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4MjAwMjsiIGhvcml6LWFkdi14PSI2NTIiIC8+Cis8
Z2x5cGggdW5pY29kZT0iJiN4MjAwMzsiIGhvcml6LWFkdi14PSIxMzA0IiAvPgorPGdseXBoIHVu
aWNvZGU9IiYjeDIwMDQ7IiBob3Jpei1hZHYteD0iNDM0IiAvPgorPGdseXBoIHVuaWNvZGU9IiYj
eDIwMDU7IiBob3Jpei1hZHYteD0iMzI2IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeDIwMDY7IiBo
b3Jpei1hZHYteD0iMjE3IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeDIwMDc7IiBob3Jpei1hZHYt
eD0iMjE3IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeDIwMDg7IiBob3Jpei1hZHYteD0iMTYzIiAv
PgorPGdseXBoIHVuaWNvZGU9IiYjeDIwMDk7IiBob3Jpei1hZHYteD0iMjYwIiAvPgorPGdseXBo
IHVuaWNvZGU9IiYjeDIwMGE7IiBob3Jpei1hZHYteD0iNzIiIC8+Cis8Z2x5cGggdW5pY29kZT0i
JiN4MjAyZjsiIGhvcml6LWFkdi14PSIyNjAiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4MjA1Zjsi
IGhvcml6LWFkdi14PSIzMjYiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4MjBhYzsiIGQ9Ik0xMDAg
NTAwbDEwMCAxMDBoMTEzcTAgNDcgNSAxMDBoLTIxOGwxMDAgMTAwaDEzNXEzNyAxNjcgMTEyIDI1
N3ExMTcgMTQxIDI5NyAxNDFxMjQyIDAgMzU0IC0xODlxNjAgLTEwMyA2NiAtMjA5aC0xODFxMCA1
NSAtMjUuNSA5OXQtNjMuNSA2OHQtNzUgMzYuNXQtNjcgMTIuNXEtMjQgMCAtNTIuNSAtMTB0LTYy
LjUgLTMydC02NS41IC02N3QtNTAuNSAtMTA3aDM3OWwtMTAwIC0xMDBoLTMwMHEtNiAtNDYgLTYg
LTEwMGg0MDZsLTEwMCAtMTAwIGgtMzAwcTkgLTc0IDMzIC0xMzJ0NTIuNSAtOTF0NjIgLTU0LjV0
NTkgLTI5dDQ2LjUgLTcuNXEyOSAwIDY2IDEzdDc1IDM3dDYzLjUgNjcuNXQyNS41IDk2LjVoMTc0
cS0zMSAtMTcyIC0xMjggLTI3OHEtMTA3IC0xMTcgLTI3NCAtMTE3cS0yMDUgMCAtMzI0IDE1OHEt
MzYgNDYgLTY5IDEzMS41dC00NSAyMDUuNWgtMjE3eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3gy
MjEyOyIgZD0iTTIwMCA0MDBoOTAwdjMwMGgtOTAwdi0zMDB6IiAvPgorPGdseXBoIHVuaWNvZGU9
IiYjeDI1ZmM7IiBob3Jpei1hZHYteD0iNTAwIiBkPSJNMCAweiIgLz4KKzxnbHlwaCB1bmljb2Rl
PSImI3gyNjAxOyIgZD0iTS0xNCA0OTRxMCAtODAgNTYuNSAtMTM3dDEzNS41IC01N2g3NTBxMTIw
IDAgMjA1IDg2LjV0ODUgMjA3LjV0LTg1IDIwN3QtMjA1IDg2cS00NiAwIC05MCAtMTRxLTQ0IDk3
IC0xMzQuNSAxNTYuNXQtMjAwLjUgNTkuNXEtMTUyIDAgLTI2MCAtMTA3LjV0LTEwOCAtMjYwLjVx
MCAtMjUgMiAtMzdxLTY2IC0xNCAtMTA4LjUgLTY3LjV0LTQyLjUgLTEyMi41eiIgLz4KKzxnbHlw
aCB1bmljb2RlPSImI3gyNzA5OyIgZD0iTTAgMTAwbDQwMCA0MDBsMjAwIC0yMDBsMjAwIDIwMGw0
MDAgLTQwMGgtMTIwMHpNMCAzMDB2NjAwbDMwMCAtMzAwek0wIDExMDBsNjAwIC02MDNsNjAwIDYw
M2gtMTIwMHpNOTAwIDYwMGwzMDAgMzAwdi02MDB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeDI3
MGY7IiBkPSJNLTEzIC0xM2wzMzMgMTEybC0yMjMgMjIzek0xODcgNDAzbDIxNCAtMjE0bDYxNCA2
MTRsLTIxNCAyMTR6TTg4NyAxMTAzbDIxNCAtMjE0bDk5IDkycTEzIDEzIDEzIDMyLjV0LTEzIDMz
LjVsLTE1MyAxNTNxLTE1IDEzIC0zMyAxM3QtMzMgLTEzeiIgLz4KKzxnbHlwaCB1bmljb2RlPSIm
I3hlMDAxOyIgZD0iTTAgMTIwMGgxMjAwbC01MDAgLTU1MHYtNTUwaDMwMHYtMTAwaC04MDB2MTAw
aDMwMHY1NTB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMDI7IiBkPSJNMTQgODRxMTggLTU1
IDg2IC03NS41dDE0NyA1LjVxNjUgMjEgMTA5IDY5dDQ0IDkwdjYwNmw2MDAgMTU1di01MjFxLTY0
IDE2IC0xMzggLTdxLTc5IC0yNiAtMTIyLjUgLTgzdC0yNS41IC0xMTFxMTggLTU1IDg2IC03NS41
dDE0NyA0LjVxNzAgMjMgMTExLjUgNjMuNXQ0MS41IDk1LjV2ODgxcTAgMTAgLTcgMTUuNXQtMTcg
Mi41bC03NTIgLTE5M3EtMTAgLTMgLTE3IC0xMi41dC03IC0xOS41di02ODlxLTY0IDE3IC0xMzgg
LTcgcS03OSAtMjUgLTEyMi41IC04MnQtMjUuNSAtMTEyeiIgLz4KKzxnbHlwaCB1bmljb2RlPSIm
I3hlMDAzOyIgZD0iTTIzIDY5M3EwIDIwMCAxNDIgMzQydDM0MiAxNDJ0MzQyIC0xNDJ0MTQyIC0z
NDJxMCAtMTQyIC03OCAtMjYxbDMwMCAtMzAwcTcgLTggNyAtMTh0LTcgLTE4bC0xMDkgLTEwOXEt
OCAtNyAtMTggLTd0LTE4IDdsLTMwMCAzMDBxLTExOSAtNzggLTI2MSAtNzhxLTIwMCAwIC0zNDIg
MTQydC0xNDIgMzQyek0xNzYgNjkzcTAgLTEzNiA5NyAtMjMzdDIzNCAtOTd0MjMzLjUgOTYuNXQ5
Ni41IDIzMy41dC05Ni41IDIzMy41dC0yMzMuNSA5Ni41IHQtMjM0IC05N3QtOTcgLTIzM3oiIC8+
Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAwNTsiIGQ9Ik0xMDAgNzg0cTAgNjQgMjggMTIzdDczIDEw
MC41dDEwNC41IDY0dDExOSAyMC41dDEyMCAtMzguNXQxMDQuNSAtMTA0LjVxNDggNjkgMTA5LjUg
MTA1dDEyMS41IDM4dDExOC41IC0yMC41dDEwMi41IC02NHQ3MSAtMTAwLjV0MjcgLTEyM3EwIC01
NyAtMzMuNSAtMTE3LjV0LTk0IC0xMjQuNXQtMTI2LjUgLTEyNy41dC0xNTAgLTE1Mi41dC0xNDYg
LTE3NHEtNjIgODUgLTE0NS41IDE3NHQtMTQ5LjUgMTUyLjV0LTEyNi41IDEyNy41IHQtOTQgMTI0
LjV0LTMzLjUgMTE3LjV6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMDY7IiBkPSJNLTcyIDgw
MGg0NzlsMTQ2IDQwMGgybDE0NiAtNDAwaDQ3MmwtMzgyIC0yNzhsMTQ1IC00NDlsLTM4NCAyNzVs
LTM4MiAtMjc1bDE0NiA0NDd6TTE2OCA3MWwyIDF6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUw
MDc7IiBkPSJNLTcyIDgwMGg0NzlsMTQ2IDQwMGgybDE0NiAtNDAwaDQ3MmwtMzgyIC0yNzhsMTQ1
IC00NDlsLTM4NCAyNzVsLTM4MiAtMjc1bDE0NiA0NDd6TTE2OCA3MWwyIDF6TTIzNyA3MDBsMTk2
IC0xNDJsLTczIC0yMjZsMTkyIDE0MGwxOTUgLTE0MWwtNzQgMjI5bDE5MyAxNDBoLTIzNWwtNzcg
MjExbC03OCAtMjExaC0yMzl6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMDg7IiBkPSJNMCAw
djE0M2w0MDAgMjU3djEwMHEtMzcgMCAtNjguNSA3NC41dC0zMS41IDEyNS41djIwMHEwIDEyNCA4
OCAyMTJ0MjEyIDg4dDIxMiAtODh0ODggLTIxMnYtMjAwcTAgLTUxIC0zMS41IC0xMjUuNXQtNjgu
NSAtNzQuNXYtMTAwbDQwMCAtMjU3di0xNDNoLTEyMDB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYj
eGUwMDk7IiBkPSJNMCAwdjExMDBoMTIwMHYtMTEwMGgtMTIwMHpNMTAwIDEwMGgxMDB2MTAwaC0x
MDB2LTEwMHpNMTAwIDMwMGgxMDB2MTAwaC0xMDB2LTEwMHpNMTAwIDUwMGgxMDB2MTAwaC0xMDB2
LTEwMHpNMTAwIDcwMGgxMDB2MTAwaC0xMDB2LTEwMHpNMTAwIDkwMGgxMDB2MTAwaC0xMDB2LTEw
MHpNMzAwIDEwMGg2MDB2NDAwaC02MDB2LTQwMHpNMzAwIDYwMGg2MDB2NDAwaC02MDB2LTQwMHpN
MTAwMCAxMDBoMTAwdjEwMGgtMTAwdi0xMDB6IE0xMDAwIDMwMGgxMDB2MTAwaC0xMDB2LTEwMHpN
MTAwMCA1MDBoMTAwdjEwMGgtMTAwdi0xMDB6TTEwMDAgNzAwaDEwMHYxMDBoLTEwMHYtMTAwek0x
MDAwIDkwMGgxMDB2MTAwaC0xMDB2LTEwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAxMDsi
IGQ9Ik0wIDUwdjQwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoNDAwcTIxIDAgMzUuNSAtMTQu
NXQxNC41IC0zNS41di00MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTQwMHEtMjEg
MCAtMzUuNSAxNC41dC0xNC41IDM1LjV6TTAgNjUwdjQwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0
LjVoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di00MDBxMCAtMjEgLTE0LjUgLTM1LjV0
LTM1LjUgLTE0LjVoLTQwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41ek02MDAgNTB2NDAw
cTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg0MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2
LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0
LTE0LjUgMzUuNXpNNjAwIDY1MHY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDQwMHEyMSAw
IDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwIHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQu
NWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXoiIC8+Cis8Z2x5cGggdW5pY29kZT0i
JiN4ZTAxMTsiIGQ9Ik0wIDUwdjIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoMjAwcTIxIDAg
MzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVo
LTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV6TTAgNDUwdjIwMHEwIDIxIDE0LjUgMzUu
NXQzNS41IDE0LjVoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0
LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41ek0w
IDg1MHYyMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQu
NSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1
LjUgMTQuNXQtMTQuNSAzNS41ek00MDAgNTB2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgy
MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTIwMHEwIC0yMSAtMTQuNSAtMzUuNSB0LTM1
LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV6TTQwMCA0NTB2MjAwcTAg
MjEgMTQuNSAzNS41dDM1LjUgMTQuNWgyMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTIw
MHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMjAwcS0yMSAwIC0zNS41IDE0LjV0LTE0
LjUgMzUuNXpNNDAwIDg1MHYyMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDIwMHEyMSAwIDM1
LjUgLTE0LjV0MTQuNSAtMzUuNSB2LTIwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgt
MjAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXpNODAwIDUwdjIwMHEwIDIxIDE0LjUgMzUu
NXQzNS41IDE0LjVoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0
LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV6TTgw
MCA0NTB2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgyMDAgcTIxIDAgMzUuNSAtMTQuNXQx
NC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAt
MzUuNSAxNC41dC0xNC41IDM1LjV6TTgwMCA4NTB2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQu
NWgyMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTIwMHEwIC0yMSAtMTQuNSAtMzUuNXQt
MzUuNSAtMTQuNWgtMjAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXoiIC8+Cis8Z2x5cGgg
dW5pY29kZT0iJiN4ZTAxMjsiIGQ9Ik0wIDUwdjIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVo
MjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1
LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV6TTAgNDUwcTAgLTIxIDE0
LjUgLTM1LjV0MzUuNSAtMTQuNWgyMDBxMjEgMCAzNS41IDE0LjV0MTQuNSAzNS41djIwMHEwIDIx
IC0xNC41IDM1LjV0LTM1LjUgMTQuNWgtMjAwcS0yMSAwIC0zNS41IC0xNC41IHQtMTQuNSAtMzUu
NXYtMjAwek0wIDg1MHYyMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDIwMHEyMSAwIDM1LjUg
LTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBx
LTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41ek00MDAgNTB2MjAwcTAgMjEgMTQuNSAzNS41dDM1
LjUgMTQuNWg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTIwMHEwIC0yMSAtMTQuNSAt
MzUuNSB0LTM1LjUgLTE0LjVoLTcwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV6TTQwMCA0
NTB2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUg
LTM1LjV2LTIwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNzAwcS0yMSAwIC0zNS41
IDE0LjV0LTE0LjUgMzUuNXpNNDAwIDg1MHYyMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDcw
MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNSB2LTIwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUu
NSAtMTQuNWgtNzAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXoiIC8+Cis8Z2x5cGggdW5p
Y29kZT0iJiN4ZTAxMzsiIGQ9Ik0yOSA0NTRsNDE5IC00MjBsODE4IDgyMGwtMjEyIDIxMmwtNjA3
IC02MDdsLTIwNiAyMDd6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMTQ7IiBkPSJNMTA2IDMx
OGwyODIgMjgybC0yODIgMjgybDIxMiAyMTJsMjgyIC0yODJsMjgyIDI4MmwyMTIgLTIxMmwtMjgy
IC0yODJsMjgyIC0yODJsLTIxMiAtMjEybC0yODIgMjgybC0yODIgLTI4MnoiIC8+Cis8Z2x5cGgg
dW5pY29kZT0iJiN4ZTAxNTsiIGQ9Ik0yMyA2OTNxMCAyMDAgMTQyIDM0MnQzNDIgMTQydDM0MiAt
MTQydDE0MiAtMzQycTAgLTE0MiAtNzggLTI2MWwzMDAgLTMwMHE3IC04IDcgLTE4dC03IC0xOGwt
MTA5IC0xMDlxLTggLTcgLTE4IC03dC0xOCA3bC0zMDAgMzAwcS0xMTkgLTc4IC0yNjEgLTc4cS0y
MDAgMCAtMzQyIDE0MnQtMTQyIDM0MnpNMTc2IDY5M3EwIC0xMzYgOTcgLTIzM3QyMzQgLTk3dDIz
My41IDk2LjV0OTYuNSAyMzMuNXQtOTYuNSAyMzMuNXQtMjMzLjUgOTYuNSB0LTIzNCAtOTd0LTk3
IC0yMzN6TTMwMCA2MDB2MjAwaDEwMHYxMDBoMjAwdi0xMDBoMTAwdi0yMDBoLTEwMHYtMTAwaC0y
MDB2MTAwaC0xMDB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMTY7IiBkPSJNMjMgNjk0cTAg
MjAwIDE0MiAzNDJ0MzQyIDE0MnQzNDIgLTE0MnQxNDIgLTM0MnEwIC0xNDEgLTc4IC0yNjJsMzAw
IC0yOTlxNyAtNyA3IC0xOHQtNyAtMThsLTEwOSAtMTA5cS04IC04IC0xOCAtOHQtMTggOGwtMzAw
IDMwMHEtMTE5IC03OCAtMjYxIC03OHEtMjAwIDAgLTM0MiAxNDJ0LTE0MiAzNDJ6TTE3NiA2OTRx
MCAtMTM2IDk3IC0yMzN0MjM0IC05N3QyMzMuNSA5N3Q5Ni41IDIzM3QtOTYuNSAyMzN0LTIzMy41
IDk3dC0yMzQgLTk3IHQtOTcgLTIzM3pNMzAwIDYwMWg0MDB2MjAwaC00MDB2LTIwMHoiIC8+Cis8
Z2x5cGggdW5pY29kZT0iJiN4ZTAxNzsiIGQ9Ik0yMyA2MDBxMCAxODMgMTA1IDMzMXQyNzIgMjEw
di0xNjZxLTEwMyAtNTUgLTE2NSAtMTU1dC02MiAtMjIwcTAgLTE3NyAxMjUgLTMwMnQzMDIgLTEy
NXQzMDIgMTI1dDEyNSAzMDJxMCAxMjAgLTYyIDIyMHQtMTY1IDE1NXYxNjZxMTY3IC02MiAyNzIg
LTIxMHQxMDUgLTMzMXEwIC0xMTggLTQ1LjUgLTIyNC41dC0xMjMgLTE4NHQtMTg0IC0xMjN0LTIy
NC41IC00NS41dC0yMjQuNSA0NS41dC0xODQgMTIzdC0xMjMgMTg0dC00NS41IDIyNC41IHpNNTAw
IDc1MHEwIC0yMSAxNC41IC0zNS41dDM1LjUgLTE0LjVoMTAwcTIxIDAgMzUuNSAxNC41dDE0LjUg
MzUuNXY0MDBxMCAyMSAtMTQuNSAzNS41dC0zNS41IDE0LjVoLTEwMHEtMjEgMCAtMzUuNSAtMTQu
NXQtMTQuNSAtMzUuNXYtNDAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDE4OyIgZD0iTTEw
MCAxaDIwMHYzMDBoLTIwMHYtMzAwek00MDAgMXY1MDBoMjAwdi01MDBoLTIwMHpNNzAwIDF2ODAw
aDIwMHYtODAwaC0yMDB6TTEwMDAgMXYxMjAwaDIwMHYtMTIwMGgtMjAweiIgLz4KKzxnbHlwaCB1
bmljb2RlPSImI3hlMDE5OyIgZD0iTTI2IDYwMXEwIC0zMyA2IC03NGwxNTEgLTM4bDIgLTZxMTQg
LTQ5IDM4IC05M2wzIC01bC04MCAtMTM0cTQ1IC01OSAxMDUgLTEwNWwxMzMgODFsNSAtM3E0NSAt
MjYgOTQgLTM5bDUgLTJsMzggLTE1MXE0MCAtNSA3NCAtNXEyNyAwIDc0IDVsMzggMTUxbDYgMnE0
NiAxMyA5MyAzOWw1IDNsMTM0IC04MXE1NiA0NCAxMDQgMTA1bC04MCAxMzRsMyA1cTI0IDQ0IDM5
IDkzbDEgNmwxNTIgMzhxNSA0MCA1IDc0cTAgMjggLTUgNzNsLTE1MiAzOCBsLTEgNnEtMTYgNTEg
LTM5IDkzbC0zIDVsODAgMTM0cS00NCA1OCAtMTA0IDEwNWwtMTM0IC04MWwtNSAzcS00NSAyNSAt
OTMgMzlsLTYgMWwtMzggMTUycS00MCA1IC03NCA1cS0yNyAwIC03NCAtNWwtMzggLTE1MmwtNSAt
MXEtNTAgLTE0IC05NCAtMzlsLTUgLTNsLTEzMyA4MXEtNTkgLTQ3IC0xMDUgLTEwNWw4MCAtMTM0
bC0zIC01cS0yNSAtNDcgLTM4IC05M2wtMiAtNmwtMTUxIC0zOHEtNiAtNDggLTYgLTczek0zODUg
NjAxIHEwIDg4IDYzIDE1MXQxNTIgNjN0MTUyIC02M3Q2MyAtMTUxcTAgLTg5IC02MyAtMTUydC0x
NTIgLTYzdC0xNTIgNjN0LTYzIDE1MnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyMDsiIGQ9
Ik0xMDAgMTAyNXY1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDI3NXYxMDBxMCA0MSAyOS41IDcw
LjV0NzAuNSAyOS41aDMwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtMTAwaDI3NXExMCAw
IDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTExIC03IC0xOHQtMTggLTdoLTEwNTBxLTExIDAg
LTE4IDd0LTcgMTh6TTIwMCAxMDB2ODAwaDkwMHYtODAwcTAgLTQxIC0yOS41IC03MXQtNzAuNSAt
MzBoLTcwMHEtNDEgMCAtNzAuNSAzMCB0LTI5LjUgNzF6TTMwMCAxMDBoMTAwdjcwMGgtMTAwdi03
MDB6TTUwMCAxMDBoMTAwdjcwMGgtMTAwdi03MDB6TTUwMCAxMTAwaDMwMHYxMDBoLTMwMHYtMTAw
ek03MDAgMTAwaDEwMHY3MDBoLTEwMHYtNzAwek05MDAgMTAwaDEwMHY3MDBoLTEwMHYtNzAweiIg
Lz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDIxOyIgZD0iTTEgNjAxbDY1NiA2NDRsNjQ0IC02NDRo
LTIwMHYtNjAwaC0zMDB2NDAwaC0zMDB2LTQwMGgtMzAwdjYwMGgtMjAweiIgLz4KKzxnbHlwaCB1
bmljb2RlPSImI3hlMDIyOyIgZD0iTTEwMCAyNXYxMTUwcTAgMTEgNyAxOHQxOCA3aDQ3NXYtNTAw
aDQwMHYtNjc1cTAgLTExIC03IC0xOHQtMTggLTdoLTg1MHEtMTEgMCAtMTggN3QtNyAxOHpNNzAw
IDgwMHYzMDBsMzAwIC0zMDBoLTMwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyMzsiIGQ9
Ik00IDYwMHEwIDE2MiA4MCAyOTl0MjE3IDIxN3QyOTkgODB0Mjk5IC04MHQyMTcgLTIxN3Q4MCAt
Mjk5dC04MCAtMjk5dC0yMTcgLTIxN3QtMjk5IC04MHQtMjk5IDgwdC0yMTcgMjE3dC04MCAyOTl6
TTE4NiA2MDBxMCAtMTcxIDEyMS41IC0yOTIuNXQyOTIuNSAtMTIxLjV0MjkyLjUgMTIxLjV0MTIx
LjUgMjkyLjV0LTEyMS41IDI5Mi41dC0yOTIuNSAxMjEuNXQtMjkyLjUgLTEyMS41dC0xMjEuNSAt
MjkyLjV6TTUwMCA1MDB2NDAwaDEwMCB2LTMwMGgyMDB2LTEwMGgtMzAweiIgLz4KKzxnbHlwaCB1
bmljb2RlPSImI3hlMDI0OyIgZD0iTS0xMDAgMGw0MzEgMTIwMGgyMDlsLTIxIC0zMDBoMTYybC0y
MCAzMDBoMjA4bDQzMSAtMTIwMGgtNTM4bC00MSA0MDBoLTI0MmwtNDAgLTQwMGgtNTM5ek00ODgg
NTAwaDIyNGwtMjcgMzAwaC0xNzB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMjU7IiBkPSJN
MCAwdjQwMGg0OTBsLTI5MCAzMDBoMjAwdjUwMGgzMDB2LTUwMGgyMDBsLTI5MCAtMzAwaDQ5MHYt
NDAwaC0xMTAwek04MTMgMjAwaDE3NXYxMDBoLTE3NXYtMTAweiIgLz4KKzxnbHlwaCB1bmljb2Rl
PSImI3hlMDI2OyIgZD0iTTEgNjAwcTAgMTIyIDQ3LjUgMjMzdDEyNy41IDE5MXQxOTEgMTI3LjV0
MjMzIDQ3LjV0MjMzIC00Ny41dDE5MSAtMTI3LjV0MTI3LjUgLTE5MXQ0Ny41IC0yMzN0LTQ3LjUg
LTIzM3QtMTI3LjUgLTE5MXQtMTkxIC0xMjcuNXQtMjMzIC00Ny41dC0yMzMgNDcuNXQtMTkxIDEy
Ny41dC0xMjcuNSAxOTF0LTQ3LjUgMjMzek0xODggNjAwcTAgLTE3MCAxMjEgLTI5MXQyOTEgLTEy
MXQyOTEgMTIxdDEyMSAyOTF0LTEyMSAyOTF0LTI5MSAxMjEgdC0yOTEgLTEyMXQtMTIxIC0yOTF6
TTM1MCA2MDBoMTUwdjMwMGgyMDB2LTMwMGgxNTBsLTI1MCAtMzAweiIgLz4KKzxnbHlwaCB1bmlj
b2RlPSImI3hlMDI3OyIgZD0iTTQgNjAwcTAgMTYyIDgwIDI5OXQyMTcgMjE3dDI5OSA4MHQyOTkg
LTgwdDIxNyAtMjE3dDgwIC0yOTl0LTgwIC0yOTl0LTIxNyAtMjE3dC0yOTkgLTgwdC0yOTkgODB0
LTIxNyAyMTd0LTgwIDI5OXpNMTg2IDYwMHEwIC0xNzEgMTIxLjUgLTI5Mi41dDI5Mi41IC0xMjEu
NXQyOTIuNSAxMjEuNXQxMjEuNSAyOTIuNXQtMTIxLjUgMjkyLjV0LTI5Mi41IDEyMS41dC0yOTIu
NSAtMTIxLjV0LTEyMS41IC0yOTIuNXpNMzUwIDYwMGwyNTAgMzAwIGwyNTAgLTMwMGgtMTUwdi0z
MDBoLTIwMHYzMDBoLTE1MHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAyODsiIGQ9Ik0wIDI1
djQ3NWwyMDAgNzAwaDgwMGwxOTkgLTcwMGwxIC00NzVxMCAtMTEgLTcgLTE4dC0xOCAtN2gtMTE1
MHEtMTEgMCAtMTggN3QtNyAxOHpNMjAwIDUwMGgyMDBsNTAgLTIwMGgzMDBsNTAgMjAwaDIwMGwt
OTcgNTAwaC02MDZ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMjk7IiBkPSJNNCA2MDBxMCAx
NjIgODAgMjk5dDIxNyAyMTd0Mjk5IDgwdDI5OSAtODB0MjE3IC0yMTd0ODAgLTI5OXQtODAgLTI5
OXQtMjE3IC0yMTd0LTI5OSAtODB0LTI5OSA4MHQtMjE3IDIxN3QtODAgMjk5ek0xODYgNjAwcTAg
LTE3MiAxMjEuNSAtMjkzdDI5Mi41IC0xMjF0MjkyLjUgMTIxdDEyMS41IDI5M3EwIDE3MSAtMTIx
LjUgMjkyLjV0LTI5Mi41IDEyMS41dC0yOTIuNSAtMTIxLjV0LTEyMS41IC0yOTIuNXpNNTAwIDM5
N3Y0MDEgbDI5NyAtMjAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDMwOyIgZD0iTTIzIDYw
MHEwIC0xMTggNDUuNSAtMjI0LjV0MTIzIC0xODR0MTg0IC0xMjN0MjI0LjUgLTQ1LjV0MjI0LjUg
NDUuNXQxODQgMTIzdDEyMyAxODR0NDUuNSAyMjQuNWgtMTUwcTAgLTE3NyAtMTI1IC0zMDJ0LTMw
MiAtMTI1dC0zMDIgMTI1dC0xMjUgMzAydDEyNSAzMDJ0MzAyIDEyNXExMzYgMCAyNDYgLTgxbC0x
NDYgLTE0Nmg0MDB2NDAwbC0xNDUgLTE0NXEtMTU3IDEyMiAtMzU1IDEyMnEtMTE4IDAgLTIyNC41
IC00NS41dC0xODQgLTEyMyB0LTEyMyAtMTg0dC00NS41IC0yMjQuNXoiIC8+Cis8Z2x5cGggdW5p
Y29kZT0iJiN4ZTAzMTsiIGQ9Ik0yMyA2MDBxMCAxMTggNDUuNSAyMjQuNXQxMjMgMTg0dDE4NCAx
MjN0MjI0LjUgNDUuNXExOTggMCAzNTUgLTEyMmwxNDUgMTQ1di00MDBoLTQwMGwxNDcgMTQ3cS0x
MTIgODAgLTI0NyA4MHEtMTc3IDAgLTMwMiAtMTI1dC0xMjUgLTMwMmgtMTUwek0xMDAgMHY0MDBo
NDAwbC0xNDcgLTE0N3ExMTIgLTgwIDI0NyAtODBxMTc3IDAgMzAyIDEyNXQxMjUgMzAyaDE1MHEw
IC0xMTggLTQ1LjUgLTIyNC41dC0xMjMgLTE4NHQtMTg0IC0xMjMgdC0yMjQuNSAtNDUuNXEtMTk4
IDAgLTM1NSAxMjJ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwMzI7IiBkPSJNMTAwIDBoMTEw
MHYxMjAwaC0xMTAwdi0xMjAwek0yMDAgMTAwdjkwMGg5MDB2LTkwMGgtOTAwek0zMDAgMjAwdjEw
MGgxMDB2LTEwMGgtMTAwek0zMDAgNDAwdjEwMGgxMDB2LTEwMGgtMTAwek0zMDAgNjAwdjEwMGgx
MDB2LTEwMGgtMTAwek0zMDAgODAwdjEwMGgxMDB2LTEwMGgtMTAwek01MDAgMjAwaDUwMHYxMDBo
LTUwMHYtMTAwek01MDAgNDAwdjEwMGg1MDB2LTEwMGgtNTAwek01MDAgNjAwdjEwMGg1MDB2LTEw
MGgtNTAweiBNNTAwIDgwMHYxMDBoNTAwdi0xMDBoLTUwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0i
JiN4ZTAzMzsiIGQ9Ik0wIDEwMHY2MDBxMCA0MSAyOS41IDcwLjV0NzAuNSAyOS41aDEwMHYyMDBx
MCA4MiA1OSAxNDF0MTQxIDU5aDMwMHE4MiAwIDE0MSAtNTl0NTkgLTE0MXYtMjAwaDEwMHE0MSAw
IDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtNjAwcTAgLTQxIC0yOS41IC03MC41dC03MC41IC0yOS41
aC05MDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41ek00MDAgODAwaDMwMHYxNTBxMCAyMSAt
MTQuNSAzNS41dC0zNS41IDE0LjVoLTIwMCBxLTIxIDAgLTM1LjUgLTE0LjV0LTE0LjUgLTM1LjV2
LTE1MHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAzNDsiIGQ9Ik0xMDAgMHYxMTAwaDEwMHYt
MTEwMGgtMTAwek0zMDAgNDAwcTYwIDYwIDEyNy41IDg0dDEyNy41IDE3LjV0MTIyIC0yM3QxMTkg
LTMwdDExMCAtMTF0MTAzIDQydDkxIDEyMC41djUwMHEtNDAgLTgxIC0xMDEuNSAtMTE1LjV0LTEy
Ny41IC0yOS41dC0xMzggMjV0LTEzOS41IDQwdC0xMjUuNSAyNXQtMTAzIC0yOS41dC02NSAtMTE1
LjV2LTUwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAzNTsiIGQ9Ik0wIDI3NXEwIC0xMSA3
IC0xOHQxOCAtN2g1MHExMSAwIDE4IDd0NyAxOHYzMDBxMCAxMjcgNzAuNSAyMzEuNXQxODQuNSAx
NjEuNXQyNDUgNTd0MjQ1IC01N3QxODQuNSAtMTYxLjV0NzAuNSAtMjMxLjV2LTMwMHEwIC0xMSA3
IC0xOHQxOCAtN2g1MHExMSAwIDE4IDd0NyAxOHYzMDBxMCAxMTYgLTQ5LjUgMjI3dC0xMzEgMTky
LjV0LTE5Mi41IDEzMXQtMjI3IDQ5LjV0LTIyNyAtNDkuNXQtMTkyLjUgLTEzMXQtMTMxIC0xOTIu
NSB0LTQ5LjUgLTIyN3YtMzAwek0yMDAgMjB2NDYwcTAgOCA2IDE0dDE0IDZoMTYwcTggMCAxNCAt
NnQ2IC0xNHYtNDYwcTAgLTggLTYgLTE0dC0xNCAtNmgtMTYwcS04IDAgLTE0IDZ0LTYgMTR6TTgw
MCAyMHY0NjBxMCA4IDYgMTR0MTQgNmgxNjBxOCAwIDE0IC02dDYgLTE0di00NjBxMCAtOCAtNiAt
MTR0LTE0IC02aC0xNjBxLTggMCAtMTQgNnQtNiAxNHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4
ZTAzNjsiIGQ9Ik0wIDQwMGgzMDBsMzAwIC0yMDB2ODAwbC0zMDAgLTIwMGgtMzAwdi00MDB6TTY4
OCA0NTlsMTQxIDE0MWwtMTQxIDE0MWw3MSA3MWwxNDEgLTE0MWwxNDEgMTQxbDcxIC03MWwtMTQx
IC0xNDFsMTQxIC0xNDFsLTcxIC03MWwtMTQxIDE0MWwtMTQxIC0xNDF6IiAvPgorPGdseXBoIHVu
aWNvZGU9IiYjeGUwMzc7IiBkPSJNMCA0MDBoMzAwbDMwMCAtMjAwdjgwMGwtMzAwIC0yMDBoLTMw
MHYtNDAwek03MDAgODU3bDY5IDUzcTExMSAtMTM1IDExMSAtMzEwcTAgLTE2OSAtMTA2IC0zMDJs
LTY3IDU0cTg2IDExMCA4NiAyNDhxMCAxNDYgLTkzIDI1N3oiIC8+Cis8Z2x5cGggdW5pY29kZT0i
JiN4ZTAzODsiIGQ9Ik0wIDQwMXY0MDBoMzAwbDMwMCAyMDB2LTgwMGwtMzAwIDIwMGgtMzAwek03
MDIgODU4bDY5IDUzcTExMSAtMTM1IDExMSAtMzEwcTAgLTE3MCAtMTA2IC0zMDNsLTY3IDU1cTg2
IDExMCA4NiAyNDhxMCAxNDUgLTkzIDI1N3pNODg5IDk1MWw3IC04cTEyMyAtMTUxIDEyMyAtMzQ0
cTAgLTE4OSAtMTE5IC0zMzlsLTcgLThsODEgLTY2bDYgOHExNDIgMTc4IDE0MiA0MDVxMCAyMzAg
LTE0NCA0MDhsLTYgOHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTAzOTsiIGQ9Ik0wIDBoNTAw
djUwMGgtMjAwdjEwMGgtMTAwdi0xMDBoLTIwMHYtNTAwek0wIDYwMGgxMDB2MTAwaDQwMHYxMDBo
MTAwdjEwMGgtMTAwdjMwMGgtNTAwdi02MDB6TTEwMCAxMDB2MzAwaDMwMHYtMzAwaC0zMDB6TTEw
MCA4MDB2MzAwaDMwMHYtMzAwaC0zMDB6TTIwMCAyMDB2MTAwaDEwMHYtMTAwaC0xMDB6TTIwMCA5
MDBoMTAwdjEwMGgtMTAwdi0xMDB6TTUwMCA1MDB2MTAwaDMwMHYtMzAwaDIwMHYtMTAwaC0xMDB2
LTEwMGgtMjAwdjEwMCBoLTEwMHYxMDBoMTAwdjIwMGgtMjAwek02MDAgMHYxMDBoMTAwdi0xMDBo
LTEwMHpNNjAwIDEwMDBoMTAwdi0zMDBoMjAwdi0zMDBoMzAwdjIwMGgtMjAwdjEwMGgyMDB2NTAw
aC02MDB2LTIwMHpNODAwIDgwMHYzMDBoMzAwdi0zMDBoLTMwMHpNOTAwIDB2MTAwaDMwMHYtMTAw
aC0zMDB6TTkwMCA5MDB2MTAwaDEwMHYtMTAwaC0xMDB6TTExMDAgMjAwdjEwMGgxMDB2LTEwMGgt
MTAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDQwOyIgZD0iTTAgMjAwaDEwMHYxMDAwaC0x
MDB2LTEwMDB6TTEwMCAwdjEwMGgzMDB2LTEwMGgtMzAwek0yMDAgMjAwdjEwMDBoMTAwdi0xMDAw
aC0xMDB6TTUwMCAwdjkxaDEwMHYtOTFoLTEwMHpNNTAwIDIwMHYxMDAwaDIwMHYtMTAwMGgtMjAw
ek03MDAgMHY5MWgxMDB2LTkxaC0xMDB6TTgwMCAyMDB2MTAwMGgxMDB2LTEwMDBoLTEwMHpNOTAw
IDB2OTFoMjAwdi05MWgtMjAwek0xMDAwIDIwMHYxMDAwaDIwMHYtMTAwMGgtMjAweiIgLz4KKzxn
bHlwaCB1bmljb2RlPSImI3hlMDQxOyIgZD0iTTAgNzAwbDEgNDc1cTAgMTAgNy41IDE3LjV0MTcu
NSA3LjVoNDc0bDcwMCAtNzAwbC01MDAgLTUwMHpNMTQ4IDk1M3EwIC00MiAyOSAtNzFxMzAgLTMw
IDcxLjUgLTMwdDcxLjUgMzBxMjkgMjkgMjkgNzF0LTI5IDcxcS0zMCAzMCAtNzEuNSAzMHQtNzEu
NSAtMzBxLTI5IC0yOSAtMjkgLTcxeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDQyOyIgZD0i
TTEgNzAwbDEgNDc1cTAgMTEgNyAxOHQxOCA3aDQ3NGw3MDAgLTcwMGwtNTAwIC01MDB6TTE0OCA5
NTNxMCAtNDIgMzAgLTcxcTI5IC0zMCA3MSAtMzB0NzEgMzBxMzAgMjkgMzAgNzF0LTMwIDcxcS0y
OSAzMCAtNzEgMzB0LTcxIC0zMHEtMzAgLTI5IC0zMCAtNzF6TTcwMSAxMjAwaDEwMGw3MDAgLTcw
MGwtNTAwIC01MDBsLTUwIDUwbDQ1MCA0NTB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwNDM7
IiBkPSJNMTAwIDB2MTAyNWwxNzUgMTc1aDkyNXYtMTAwMGwtMTAwIC0xMDB2MTAwMGgtNzUwbC0x
MDAgLTEwMGg3NTB2LTEwMDBoLTkwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTA0NDsiIGQ9
Ik0yMDAgMGw0NTAgNDQ0bDQ1MCAtNDQzdjExNTBxMCAyMCAtMTQuNSAzNXQtMzUuNSAxNWgtODAw
cS0yMSAwIC0zNS41IC0xNXQtMTQuNSAtMzV2LTExNTF6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYj
eGUwNDU7IiBkPSJNMCAxMDB2NzAwaDIwMGwxMDAgLTIwMGg2MDBsMTAwIDIwMGgyMDB2LTcwMGgt
MjAwdjIwMGgtODAwdi0yMDBoLTIwMHpNMjUzIDgyOWw0MCAtMTI0aDU5Mmw2MiAxMjRsLTk0IDM0
NnEtMiAxMSAtMTAgMTh0LTE4IDdoLTQ1MHEtMTAgMCAtMTggLTd0LTEwIC0xOHpNMjgxIDI0bDM4
IDE1MnEyIDEwIDExLjUgMTd0MTkuNSA3aDUwMHExMCAwIDE5LjUgLTd0MTEuNSAtMTdsMzggLTE1
MnEyIC0xMCAtMy41IC0xN3QtMTUuNSAtN2gtNjAwIHEtMTAgMCAtMTUuNSA3dC0zLjUgMTd6IiAv
PgorPGdseXBoIHVuaWNvZGU9IiYjeGUwNDY7IiBkPSJNMCAyMDBxMCAtNDEgMjkuNSAtNzAuNXQ3
MC41IC0yOS41aDEwMDBxNDEgMCA3MC41IDI5LjV0MjkuNSA3MC41djYwMHEwIDQxIC0yOS41IDcw
LjV0LTcwLjUgMjkuNWgtMTUwcS00IDggLTExLjUgMjEuNXQtMzMgNDh0LTUzIDYxdC02OSA0OHQt
ODMuNSAyMS41aC0yMDBxLTQxIDAgLTgyIC0yMC41dC03MCAtNTB0LTUyIC01OXQtMzQgLTUwLjVs
LTEyIC0yMGgtMTUwcS00MSAwIC03MC41IC0yOS41dC0yOS41IC03MC41di02MDB6IE0zNTYgNTAw
cTAgMTAwIDcyIDE3MnQxNzIgNzJ0MTcyIC03MnQ3MiAtMTcydC03MiAtMTcydC0xNzIgLTcydC0x
NzIgNzJ0LTcyIDE3MnpNNDk0IDUwMHEwIC00NCAzMSAtNzV0NzUgLTMxdDc1IDMxdDMxIDc1dC0z
MSA3NXQtNzUgMzF0LTc1IC0zMXQtMzEgLTc1ek05MDAgNzAwdjEwMGgxMDB2LTEwMGgtMTAweiIg
Lz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDQ3OyIgZD0iTTUzIDBoMzY1djY2cS00MSAwIC03MiAx
MXQtNDkgMzh0MSA3MWw5MiAyMzRoMzkxbDgyIC0yMjJxMTYgLTQ1IC01LjUgLTg4LjV0LTc0LjUg
LTQzLjV2LTY2aDQxN3Y2NnEtMzQgMSAtNzQgNDNxLTE4IDE5IC0zMyA0MnQtMjEgMzdsLTYgMTNs
LTM4NSA5OThoLTkzbC0zOTkgLTEwMDZxLTI0IC00OCAtNTIgLTc1cS0xMiAtMTIgLTMzIC0yNXQt
MzYgLTIwbC0xNSAtN3YtNjZ6TTQxNiA1MjFsMTc4IDQ1N2w0NiAtMTQwbDExNiAtMzE3aC0zNDAg
eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDQ4OyIgZD0iTTEwMCAwdjg5cTQxIDcgNzAuNSAz
Mi41dDI5LjUgNjUuNXY4MjdxMCAyOCAtMSAzOS41dC01LjUgMjZ0LTE1LjUgMjF0LTI5IDE0dC00
OSAxNC41djcxbDQ3MSAtMXExMjAgMCAyMTMgLTg4dDkzIC0yMjhxMCAtNTUgLTExLjUgLTEwMS41
dC0yOCAtNzR0LTMzLjUgLTQ3LjV0LTI4IC0yOGwtMTIgLTdxOCAtMyAyMS41IC05dDQ4IC0zMS41
dDYwLjUgLTU4dDQ3LjUgLTkxLjV0MjEuNSAtMTI5cTAgLTg0IC01OSAtMTU2LjV0LTE0MiAtMTEx
IHQtMTYyIC0zOC41aC01MDB6TTQwMCAyMDBoMTYxcTg5IDAgMTUzIDQ4LjV0NjQgMTMyLjVxMCA5
MCAtNjIuNSAxNTQuNXQtMTU2LjUgNjQuNWgtMTU5di00MDB6TTQwMCA3MDBoMTM5cTc2IDAgMTMw
IDYxLjV0NTQgMTM4LjVxMCA4MiAtODQgMTMwLjV0LTIzOSA0OC41di0zNzl6IiAvPgorPGdseXBo
IHVuaWNvZGU9IiYjeGUwNDk7IiBkPSJNMjAwIDB2NTdxNzcgNyAxMzQuNSA0MC41dDY1LjUgODAu
NWwxNzMgODQ5cTEwIDU2IC0xMCA3NHQtOTEgMzdxLTYgMSAtMTAuNSAyLjV0LTkuNSAyLjV2NTdo
NDI1bDIgLTU3cS0zMyAtOCAtNjIgLTI1LjV0LTQ2IC0zN3QtMjkuNSAtMzh0LTE3LjUgLTMwLjVs
LTUgLTEybC0xMjggLTgyNXEtMTAgLTUyIDE0IC04MnQ5NSAtMzZ2LTU3aC01MDB6IiAvPgorPGds
eXBoIHVuaWNvZGU9IiYjeGUwNTA7IiBkPSJNLTc1IDIwMGg3NXY4MDBoLTc1bDEyNSAxNjdsMTI1
IC0xNjdoLTc1di04MDBoNzVsLTEyNSAtMTY3ek0zMDAgOTAwdjMwMGgxNTBoNzAwaDE1MHYtMzAw
aC01MHEwIDI5IC04IDQ4LjV0LTE4LjUgMzB0LTMzLjUgMTV0LTM5LjUgNS41dC01MC41IDFoLTIw
MHYtODUwbDEwMCAtNTB2LTEwMGgtNDAwdjEwMGwxMDAgNTB2ODUwaC0yMDBxLTM0IDAgLTUwLjUg
LTF0LTQwIC01LjV0LTMzLjUgLTE1dC0xOC41IC0zMHQtOC41IC00OC41aC00OXogIiAvPgorPGds
eXBoIHVuaWNvZGU9IiYjeGUwNTE7IiBkPSJNMzMgNTFsMTY3IDEyNXYtNzVoODAwdjc1bDE2NyAt
MTI1bC0xNjcgLTEyNXY3NWgtODAwdi03NXpNMTAwIDkwMXYzMDBoMTUwaDcwMGgxNTB2LTMwMGgt
NTBxMCAyOSAtOCA0OC41dC0xOCAzMHQtMzMuNSAxNXQtNDAgNS41dC01MC41IDFoLTIwMHYtNjUw
bDEwMCAtNTB2LTEwMGgtNDAwdjEwMGwxMDAgNTB2NjUwaC0yMDBxLTM0IDAgLTUwLjUgLTF0LTM5
LjUgLTUuNXQtMzMuNSAtMTV0LTE4LjUgLTMwdC04IC00OC41aC01MHoiIC8+Cis8Z2x5cGggdW5p
Y29kZT0iJiN4ZTA1MjsiIGQ9Ik0wIDUwcTAgLTIwIDE0LjUgLTM1dDM1LjUgLTE1aDExMDBxMjEg
MCAzNS41IDE1dDE0LjUgMzV2MTAwcTAgMjEgLTE0LjUgMzUuNXQtMzUuNSAxNC41aC0xMTAwcS0y
MSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41di0xMDB6TTAgMzUwcTAgLTIwIDE0LjUgLTM1dDM1
LjUgLTE1aDgwMHEyMSAwIDM1LjUgMTV0MTQuNSAzNXYxMDBxMCAyMSAtMTQuNSAzNS41dC0zNS41
IDE0LjVoLTgwMHEtMjEgMCAtMzUuNSAtMTQuNXQtMTQuNSAtMzUuNSB2LTEwMHpNMCA2NTBxMCAt
MjAgMTQuNSAtMzV0MzUuNSAtMTVoMTAwMHEyMSAwIDM1LjUgMTV0MTQuNSAzNXYxMDBxMCAyMSAt
MTQuNSAzNS41dC0zNS41IDE0LjVoLTEwMDBxLTIxIDAgLTM1LjUgLTE0LjV0LTE0LjUgLTM1LjV2
LTEwMHpNMCA5NTBxMCAtMjAgMTQuNSAtMzV0MzUuNSAtMTVoNjAwcTIxIDAgMzUuNSAxNXQxNC41
IDM1djEwMHEwIDIxIC0xNC41IDM1LjV0LTM1LjUgMTQuNWgtNjAwcS0yMSAwIC0zNS41IC0xNC41
IHQtMTQuNSAtMzUuNXYtMTAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDUzOyIgZD0iTTAg
NTBxMCAtMjAgMTQuNSAtMzV0MzUuNSAtMTVoMTEwMHEyMSAwIDM1LjUgMTV0MTQuNSAzNXYxMDBx
MCAyMSAtMTQuNSAzNS41dC0zNS41IDE0LjVoLTExMDBxLTIxIDAgLTM1LjUgLTE0LjV0LTE0LjUg
LTM1LjV2LTEwMHpNMCA2NTBxMCAtMjAgMTQuNSAtMzV0MzUuNSAtMTVoMTEwMHEyMSAwIDM1LjUg
MTV0MTQuNSAzNXYxMDBxMCAyMSAtMTQuNSAzNS41dC0zNS41IDE0LjVoLTExMDBxLTIxIDAgLTM1
LjUgLTE0LjV0LTE0LjUgLTM1LjUgdi0xMDB6TTIwMCAzNTBxMCAtMjAgMTQuNSAtMzV0MzUuNSAt
MTVoNzAwcTIxIDAgMzUuNSAxNXQxNC41IDM1djEwMHEwIDIxIC0xNC41IDM1LjV0LTM1LjUgMTQu
NWgtNzAwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41di0xMDB6TTIwMCA5NTBxMCAtMjAg
MTQuNSAtMzV0MzUuNSAtMTVoNzAwcTIxIDAgMzUuNSAxNXQxNC41IDM1djEwMHEwIDIxIC0xNC41
IDM1LjV0LTM1LjUgMTQuNWgtNzAwcS0yMSAwIC0zNS41IC0xNC41IHQtMTQuNSAtMzUuNXYtMTAw
eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDU0OyIgZD0iTTAgNTB2MTAwcTAgMjEgMTQuNSAz
NS41dDM1LjUgMTQuNWgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjAg
LTE0LjUgLTM1dC0zNS41IC0xNWgtMTEwMHEtMjEgMCAtMzUuNSAxNXQtMTQuNSAzNXpNMTAwIDY1
MHYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDEwMDBxMjEgMCAzNS41IC0xNC41dDE0LjUg
LTM1LjV2LTEwMHEwIC0yMCAtMTQuNSAtMzV0LTM1LjUgLTE1aC0xMDAwcS0yMSAwIC0zNS41IDE1
IHQtMTQuNSAzNXpNMzAwIDM1MHYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDgwMHEyMSAw
IDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIwIC0xNC41IC0zNXQtMzUuNSAtMTVoLTgw
MHEtMjEgMCAtMzUuNSAxNXQtMTQuNSAzNXpNNTAwIDk1MHYxMDBxMCAyMSAxNC41IDM1LjV0MzUu
NSAxNC41aDYwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIwIC0xNC41IC0z
NXQtMzUuNSAtMTVoLTYwMCBxLTIxIDAgLTM1LjUgMTV0LTE0LjUgMzV6IiAvPgorPGdseXBoIHVu
aWNvZGU9IiYjeGUwNTU7IiBkPSJNMCA1MHYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDEx
MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMCAtMTQuNSAtMzV0LTM1LjUg
LTE1aC0xMTAwcS0yMSAwIC0zNS41IDE1dC0xNC41IDM1ek0wIDM1MHYxMDBxMCAyMSAxNC41IDM1
LjV0MzUuNSAxNC41aDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMCAt
MTQuNSAtMzV0LTM1LjUgLTE1aC0xMTAwcS0yMSAwIC0zNS41IDE1IHQtMTQuNSAzNXpNMCA2NTB2
MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0z
NS41di0xMDBxMCAtMjAgLTE0LjUgLTM1dC0zNS41IC0xNWgtMTEwMHEtMjEgMCAtMzUuNSAxNXQt
MTQuNSAzNXpNMCA5NTB2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgxMTAwcTIxIDAgMzUu
NSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjAgLTE0LjUgLTM1dC0zNS41IC0xNWgtMTEwMCBx
LTIxIDAgLTM1LjUgMTV0LTE0LjUgMzV6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwNTY7IiBk
PSJNMCA1MHYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDEwMHEyMSAwIDM1LjUgLTE0LjV0
MTQuNSAtMzUuNXYtMTAwcTAgLTIwIC0xNC41IC0zNXQtMzUuNSAtMTVoLTEwMHEtMjEgMCAtMzUu
NSAxNXQtMTQuNSAzNXpNMCAzNTB2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgxMDBxMjEg
MCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMCAtMTQuNSAtMzV0LTM1LjUgLTE1aC0x
MDBxLTIxIDAgLTM1LjUgMTUgdC0xNC41IDM1ek0wIDY1MHYxMDBxMCAyMSAxNC41IDM1LjV0MzUu
NSAxNC41aDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIwIC0xNC41IC0z
NXQtMzUuNSAtMTVoLTEwMHEtMjEgMCAtMzUuNSAxNXQtMTQuNSAzNXpNMCA5NTB2MTAwcTAgMjEg
MTQuNSAzNS41dDM1LjUgMTQuNWgxMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEw
IC0yMCAtMTQuNSAtMzV0LTM1LjUgLTE1aC0xMDBxLTIxIDAgLTM1LjUgMTUgdC0xNC41IDM1ek0z
MDAgNTB2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg4MDBxMjEgMCAzNS41IC0xNC41dDE0
LjUgLTM1LjV2LTEwMHEwIC0yMCAtMTQuNSAtMzV0LTM1LjUgLTE1aC04MDBxLTIxIDAgLTM1LjUg
MTV0LTE0LjUgMzV6TTMwMCAzNTB2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg4MDBxMjEg
MCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMCAtMTQuNSAtMzV0LTM1LjUgLTE1aC04
MDAgcS0yMSAwIC0zNS41IDE1dC0xNC41IDM1ek0zMDAgNjUwdjEwMHEwIDIxIDE0LjUgMzUuNXQz
NS41IDE0LjVoODAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjAgLTE0LjUg
LTM1dC0zNS41IC0xNWgtODAwcS0yMSAwIC0zNS41IDE1dC0xNC41IDM1ek0zMDAgOTUwdjEwMHEw
IDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoODAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0x
MDBxMCAtMjAgLTE0LjUgLTM1dC0zNS41IC0xNSBoLTgwMHEtMjEgMCAtMzUuNSAxNXQtMTQuNSAz
NXoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTA1NzsiIGQ9Ik0tMTAxIDUwMHYxMDBoMjAxdjc1
bDE2NiAtMTI1bC0xNjYgLTEyNXY3NWgtMjAxek0zMDAgMGgxMDB2MTEwMGgtMTAwdi0xMTAwek01
MDAgNTBxMCAtMjAgMTQuNSAtMzV0MzUuNSAtMTVoNjAwcTIwIDAgMzUgMTV0MTUgMzV2MTAwcTAg
MjEgLTE1IDM1LjV0LTM1IDE0LjVoLTYwMHEtMjEgMCAtMzUuNSAtMTQuNXQtMTQuNSAtMzUuNXYt
MTAwek01MDAgMzUwcTAgLTIwIDE0LjUgLTM1dDM1LjUgLTE1aDMwMHEyMCAwIDM1IDE1dDE1IDM1
IHYxMDBxMCAyMSAtMTUgMzUuNXQtMzUgMTQuNWgtMzAwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41
IC0zNS41di0xMDB6TTUwMCA2NTBxMCAtMjAgMTQuNSAtMzV0MzUuNSAtMTVoNTAwcTIwIDAgMzUg
MTV0MTUgMzV2MTAwcTAgMjEgLTE1IDM1LjV0LTM1IDE0LjVoLTUwMHEtMjEgMCAtMzUuNSAtMTQu
NXQtMTQuNSAtMzUuNXYtMTAwek01MDAgOTUwcTAgLTIwIDE0LjUgLTM1dDM1LjUgLTE1aDEwMHEy
MCAwIDM1IDE1dDE1IDM1djEwMCBxMCAyMSAtMTUgMzUuNXQtMzUgMTQuNWgtMTAwcS0yMSAwIC0z
NS41IC0xNC41dC0xNC41IC0zNS41di0xMDB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwNTg7
IiBkPSJNMSA1MHEwIC0yMCAxNC41IC0zNXQzNS41IC0xNWg2MDBxMjAgMCAzNSAxNXQxNSAzNXYx
MDBxMCAyMSAtMTUgMzUuNXQtMzUgMTQuNWgtNjAwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0z
NS41di0xMDB6TTEgMzUwcTAgLTIwIDE0LjUgLTM1dDM1LjUgLTE1aDMwMHEyMCAwIDM1IDE1dDE1
IDM1djEwMHEwIDIxIC0xNSAzNS41dC0zNSAxNC41aC0zMDBxLTIxIDAgLTM1LjUgLTE0LjV0LTE0
LjUgLTM1LjV2LTEwMHpNMSA2NTAgcTAgLTIwIDE0LjUgLTM1dDM1LjUgLTE1aDUwMHEyMCAwIDM1
IDE1dDE1IDM1djEwMHEwIDIxIC0xNSAzNS41dC0zNSAxNC41aC01MDBxLTIxIDAgLTM1LjUgLTE0
LjV0LTE0LjUgLTM1LjV2LTEwMHpNMSA5NTBxMCAtMjAgMTQuNSAtMzV0MzUuNSAtMTVoMTAwcTIw
IDAgMzUgMTV0MTUgMzV2MTAwcTAgMjEgLTE1IDM1LjV0LTM1IDE0LjVoLTEwMHEtMjEgMCAtMzUu
NSAtMTQuNXQtMTQuNSAtMzUuNXYtMTAwek04MDEgMHYxMTAwaDEwMHYtMTEwMCBoLTEwMHpNOTM0
IDU1MGwxNjcgLTEyNXY3NWgyMDB2MTAwaC0yMDB2NzV6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYj
eGUwNTk7IiBkPSJNMCAyNzV2NjUwcTAgMzEgMjIgNTN0NTMgMjJoNzUwcTMxIDAgNTMgLTIydDIy
IC01M3YtNjUwcTAgLTMxIC0yMiAtNTN0LTUzIC0yMmgtNzUwcS0zMSAwIC01MyAyMnQtMjIgNTN6
TTkwMCA2MDBsMzAwIDMwMHYtNjAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDYwOyIgZD0i
TTAgNDR2MTAxMnEwIDE4IDEzIDMxdDMxIDEzaDExMTJxMTkgMCAzMS41IC0xM3QxMi41IC0zMXYt
MTAxMnEwIC0xOCAtMTIuNSAtMzF0LTMxLjUgLTEzaC0xMTEycS0xOCAwIC0zMSAxM3QtMTMgMzF6
TTEwMCAyNjNsMjQ3IDE4MmwyOTggLTEzMWwtNzQgMTU2bDI5MyAzMThsMjM2IC0yODh2NTAwaC0x
MDAwdi03Mzd6TTIwOCA3NTBxMCA1NiAzOSA5NXQ5NSAzOXQ5NSAtMzl0MzkgLTk1dC0zOSAtOTV0
LTk1IC0zOXQtOTUgMzl0LTM5IDk1eiAiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTA2MjsiIGQ9
Ik0xNDggNzQ1cTAgMTI0IDYwLjUgMjMxLjV0MTY1IDE3MnQyMjYuNSA2NC41cTEyMyAwIDIyNyAt
NjN0MTY0LjUgLTE2OS41dDYwLjUgLTIyOS41dC03MyAtMjcycS03MyAtMTE0IC0xNjYuNSAtMjM3
dC0xNTAuNSAtMTg5bC01NyAtNjZxLTEwIDkgLTI3IDI2dC02Ni41IDcwLjV0LTk2IDEwOXQtMTA0
IDEzNS41dC0xMDAuNSAxNTVxLTYzIDEzOSAtNjMgMjYyek0zNDIgNzcycTAgLTEwNyA3NS41IC0x
ODIuNXQxODEuNSAtNzUuNSBxMTA3IDAgMTgyLjUgNzUuNXQ3NS41IDE4Mi41dC03NS41IDE4MnQt
MTgyLjUgNzV0LTE4MiAtNzUuNXQtNzUgLTE4MS41eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hl
MDYzOyIgZD0iTTEgNjAwcTAgMTIyIDQ3LjUgMjMzdDEyNy41IDE5MXQxOTEgMTI3LjV0MjMzIDQ3
LjV0MjMzIC00Ny41dDE5MSAtMTI3LjV0MTI3LjUgLTE5MXQ0Ny41IC0yMzN0LTQ3LjUgLTIzM3Qt
MTI3LjUgLTE5MXQtMTkxIC0xMjcuNXQtMjMzIC00Ny41dC0yMzMgNDcuNXQtMTkxIDEyNy41dC0x
MjcuNSAxOTF0LTQ3LjUgMjMzek0xNzMgNjAwcTAgLTE3NyAxMjUuNSAtMzAydDMwMS41IC0xMjV2
ODU0cS0xNzYgMCAtMzAxLjUgLTEyNSB0LTEyNS41IC0zMDJ6IiAvPgorPGdseXBoIHVuaWNvZGU9
IiYjeGUwNjQ7IiBkPSJNMTE3IDQwNnEwIDk0IDM0IDE4NnQ4OC41IDE3Mi41dDExMiAxNTl0MTE1
IDE3N3Q4Ny41IDE5NC41cTIxIC03MSA1Ny41IC0xNDIuNXQ3NiAtMTMwLjV0ODMgLTExOC41dDgy
IC0xMTd0NzAgLTExNnQ1MCAtMTI1LjV0MTguNSAtMTM2cTAgLTg5IC0zOSAtMTY1LjV0LTEwMiAt
MTI2LjV0LTE0MCAtNzkuNXQtMTU2IC0zMy41cS0xMTQgNiAtMjExLjUgNTN0LTE2MS41IDEzOXQt
NjQgMjEwek0yNDMgNDE0cTE0IC04MiA1OS41IC0xMzYgdDEzNi41IC04MGwxNiA5OHEtNyA2IC0x
OCAxN3QtMzQgNDh0LTMzIDc3cS0xNSA3MyAtMTQgMTQzLjV0MTAgMTIyLjVsOSA1MXEtOTIgLTEx
MCAtMTE5LjUgLTE4NXQtMTIuNSAtMTU2eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDY1OyIg
ZD0iTTAgNDAwdjMwMHEwIDE2NSAxMTcuNSAyODIuNXQyODIuNSAxMTcuNXEzNjYgLTYgMzk3IC0x
NGwtMTg2IC0xODZoLTMxMXEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtNTAwcTAgLTQx
IDI5LjUgLTcwLjV0NzAuNSAtMjkuNWg1MDBxNDEgMCA3MC41IDI5LjV0MjkuNSA3MC41djEyNWwy
MDAgMjAwdi0yMjVxMCAtMTY1IC0xMTcuNSAtMjgyLjV0LTI4Mi41IC0xMTcuNWgtMzAwcS0xNjUg
MCAtMjgyLjUgMTE3LjUgdC0xMTcuNSAyODIuNXpNNDM2IDM0MWwxNjEgNTBsNDEyIDQxMmwtMTE0
IDExM2wtNDA1IC00MDV6TTk5NSAxMDE1bDExMyAtMTEzbDExMyAxMTNsLTIxIDg1bC05MiAyOHoi
IC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTA2NjsiIGQ9Ik0wIDQwMHYzMDBxMCAxNjUgMTE3LjUg
MjgyLjV0MjgyLjUgMTE3LjVoMjYxbDIgLTgwcS0xMzMgLTMyIC0yMTggLTEyMGgtMTQ1cS00MSAw
IC03MC41IC0yOS41dC0yOS41IC03MC41di01MDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41
aDUwMHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjVsMjAwIDE1M3YtNTNxMCAtMTY1IC0xMTcuNSAt
MjgyLjV0LTI4Mi41IC0xMTcuNWgtMzAwcS0xNjUgMCAtMjgyLjUgMTE3LjV0LTExNy41IDI4Mi41
IHpNNDIzIDUyNHEzMCAzOCA4MS41IDY0dDEwMyAzNS41dDk5IDE0dDc3LjUgMy41bDI5IC0xdi0y
MDlsMzYwIDMyNGwtMzU5IDMxOHYtMjE2cS03IDAgLTE5IC0xdC00OCAtOHQtNjkuNSAtMTguNXQt
NzYuNSAtMzd0LTc2LjUgLTU5dC02MiAtODh0LTM5LjUgLTEyMS41eiIgLz4KKzxnbHlwaCB1bmlj
b2RlPSImI3hlMDY3OyIgZD0iTTAgNDAwdjMwMHEwIDE2NSAxMTcuNSAyODIuNXQyODIuNSAxMTcu
NWgzMDBxNjEgMCAxMjcgLTIzbC0xNzggLTE3N2gtMzQ5cS00MSAwIC03MC41IC0yOS41dC0yOS41
IC03MC41di01MDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDUwMHE0MSAwIDcwLjUgMjku
NXQyOS41IDcwLjV2NjlsMjAwIDIwMHYtMTY5cTAgLTE2NSAtMTE3LjUgLTI4Mi41dC0yODIuNSAt
MTE3LjVoLTMwMHEtMTY1IDAgLTI4Mi41IDExNy41IHQtMTE3LjUgMjgyLjV6TTM0MiA2MzJsMjgz
IC0yODRsNTY3IDU2N2wtMTM3IDEzN2wtNDMwIC00MzFsLTE0NiAxNDd6IiAvPgorPGdseXBoIHVu
aWNvZGU9IiYjeGUwNjg7IiBkPSJNMCA2MDNsMzAwIDI5NnYtMTk4aDIwMHYyMDBoLTIwMGwzMDAg
MzAwbDI5NSAtMzAwaC0xOTV2LTIwMGgyMDB2MTk4bDMwMCAtMjk2bC0zMDAgLTMwMHYxOThoLTIw
MHYtMjAwaDE5NWwtMjk1IC0zMDBsLTMwMCAzMDBoMjAwdjIwMGgtMjAwdi0xOTh6IiAvPgorPGds
eXBoIHVuaWNvZGU9IiYjeGUwNjk7IiBkPSJNMjAwIDUwdjEwMDBxMCAyMSAxNC41IDM1LjV0MzUu
NSAxNC41aDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDM3bDUwMCA0ODd2LTExMDBs
LTUwMCA0ODh2LTQzOHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwcS0yMSAwIC0z
NS41IDE0LjV0LTE0LjUgMzUuNXoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTA3MDsiIGQ9Ik0w
IDUwdjEwMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQu
NSAtMzUuNXYtNDM3bDUwMCA0ODd2LTQ4N2w1MDAgNDg3di0xMTAwbC01MDAgNDg4di00ODhsLTUw
MCA0ODh2LTQzOHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwcS0yMSAwIC0zNS41
IDE0LjV0LTE0LjUgMzUuNXoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTA3MTsiIGQ9Ik0xMzYg
NTUwbDU2NCA1NTB2LTQ4N2w1MDAgNDg3di0xMTAwbC01MDAgNDg4di00ODh6IiAvPgorPGdseXBo
IHVuaWNvZGU9IiYjeGUwNzI7IiBkPSJNMjAwIDBsOTAwIDU1MGwtOTAwIDU1MHYtMTEwMHoiIC8+
Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTA3MzsiIGQ9Ik0yMDAgMTUwcTAgLTIxIDE0LjUgLTM1LjV0
MzUuNSAtMTQuNWgyMDBxMjEgMCAzNS41IDE0LjV0MTQuNSAzNS41djgwMHEwIDIxIC0xNC41IDM1
LjV0LTM1LjUgMTQuNWgtMjAwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41di04MDB6TTYw
MCAxNTBxMCAtMjEgMTQuNSAtMzUuNXQzNS41IC0xNC41aDIwMHEyMSAwIDM1LjUgMTQuNXQxNC41
IDM1LjV2ODAwcTAgMjEgLTE0LjUgMzUuNXQtMzUuNSAxNC41aC0yMDAgcS0yMSAwIC0zNS41IC0x
NC41dC0xNC41IC0zNS41di04MDB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwNzQ7IiBkPSJN
MjAwIDE1MHEwIC0yMCAxNC41IC0zNXQzNS41IC0xNWg4MDBxMjEgMCAzNS41IDE1dDE0LjUgMzV2
ODAwcTAgMjEgLTE0LjUgMzUuNXQtMzUuNSAxNC41aC04MDBxLTIxIDAgLTM1LjUgLTE0LjV0LTE0
LjUgLTM1LjV2LTgwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTA3NTsiIGQ9Ik0wIDB2MTEw
MGw1MDAgLTQ4N3Y0ODdsNTY0IC01NTBsLTU2NCAtNTUwdjQ4OHoiIC8+Cis8Z2x5cGggdW5pY29k
ZT0iJiN4ZTA3NjsiIGQ9Ik0wIDB2MTEwMGw1MDAgLTQ4N3Y0ODdsNTAwIC00ODd2NDM3cTAgMjEg
MTQuNSAzNS41dDM1LjUgMTQuNWgxMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMDBx
MCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41
IDM1LjV2NDM4bC01MDAgLTQ4OHY0ODh6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwNzc7IiBk
PSJNMzAwIDB2MTEwMGw1MDAgLTQ4N3Y0MzdxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDEwMHEy
MSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAt
MTQuNWgtMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0Mzh6IiAvPgorPGdseXBoIHVu
aWNvZGU9IiYjeGUwNzg7IiBkPSJNMTAwIDI1MHYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41
aDEwMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQt
MzUuNSAtMTQuNWgtMTAwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV6TTEwMCA1MDBoMTEw
MGwtNTUwIDU2NHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTA3OTsiIGQ9Ik0xODUgNTk5bDU5
MiAtNTkybDI0MCAyNDBsLTM1MyAzNTNsMzUzIDM1M2wtMjQwIDI0MHoiIC8+Cis8Z2x5cGggdW5p
Y29kZT0iJiN4ZTA4MDsiIGQ9Ik0yNzIgMTk0bDM1MyAzNTNsLTM1MyAzNTNsMjQxIDI0MGw1NzIg
LTU3MWwyMSAtMjJsLTEgLTF2LTFsLTU5MiAtNTkxeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hl
MDgxOyIgZD0iTTMgNjAwcTAgMTYyIDgwIDI5OS41dDIxNy41IDIxNy41dDI5OS41IDgwdDI5OS41
IC04MHQyMTcuNSAtMjE3LjV0ODAgLTI5OS41dC04MCAtMjk5LjV0LTIxNy41IC0yMTcuNXQtMjk5
LjUgLTgwdC0yOTkuNSA4MHQtMjE3LjUgMjE3LjV0LTgwIDI5OS41ek0zMDAgNTAwaDIwMHYtMjAw
aDIwMHYyMDBoMjAwdjIwMGgtMjAwdjIwMGgtMjAwdi0yMDBoLTIwMHYtMjAweiIgLz4KKzxnbHlw
aCB1bmljb2RlPSImI3hlMDgyOyIgZD0iTTMgNjAwcTAgMTYyIDgwIDI5OS41dDIxNy41IDIxNy41
dDI5OS41IDgwdDI5OS41IC04MHQyMTcuNSAtMjE3LjV0ODAgLTI5OS41dC04MCAtMjk5LjV0LTIx
Ny41IC0yMTcuNXQtMjk5LjUgLTgwdC0yOTkuNSA4MHQtMjE3LjUgMjE3LjV0LTgwIDI5OS41ek0z
MDAgNTAwaDYwMHYyMDBoLTYwMHYtMjAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDgzOyIg
ZD0iTTMgNjAwcTAgMTYyIDgwIDI5OS41dDIxNy41IDIxNy41dDI5OS41IDgwdDI5OS41IC04MHQy
MTcuNSAtMjE3LjV0ODAgLTI5OS41dC04MCAtMjk5LjV0LTIxNy41IC0yMTcuNXQtMjk5LjUgLTgw
dC0yOTkuNSA4MHQtMjE3LjUgMjE3LjV0LTgwIDI5OS41ek0yNDYgNDU5bDIxMyAtMjEzbDE0MSAx
NDJsMTQxIC0xNDJsMjEzIDIxM2wtMTQyIDE0MWwxNDIgMTQxbC0yMTMgMjEybC0xNDEgLTE0MWwt
MTQxIDE0MmwtMjEyIC0yMTNsMTQxIC0xNDEgeiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDg0
OyIgZD0iTTMgNjAwcTAgMTYyIDgwIDI5OS41dDIxNy41IDIxNy41dDI5OS41IDgwdDI5OS41IC04
MHQyMTcuNSAtMjE3LjV0ODAgLTI5OS41dC04MCAtMjk5LjV0LTIxNy41IC0yMTcuNXQtMjk5LjUg
LTgwdC0yOTkuNSA4MHQtMjE3LjUgMjE3LjV0LTgwIDI5OS41ek0yNzAgNTUxbDI3NiAtMjc3bDQx
MSA0MTFsLTE3NSAxNzRsLTIzNiAtMjM2bC0xMDIgMTAyeiIgLz4KKzxnbHlwaCB1bmljb2RlPSIm
I3hlMDg1OyIgZD0iTTMgNjAwcTAgMTYyIDgwIDI5OS41dDIxNy41IDIxNy41dDI5OS41IDgwdDI5
OS41IC04MHQyMTcuNSAtMjE3LjV0ODAgLTI5OS41dC04MCAtMjk5LjV0LTIxNy41IC0yMTcuNXQt
Mjk5LjUgLTgwdC0yOTkuNSA4MHQtMjE3LjUgMjE3LjV0LTgwIDI5OS41ek0zNjQgNzAwaDE0M3E0
IDAgMTEuNSAtMXQxMSAtMXQ2LjUgM3QzIDl0MSAxMXQzLjUgOC41dDMuNSA2dDUuNSA0dDYuNSAy
LjV0OSAxLjV0OSAwLjVoMTEuNWgxMi41IHExOSAwIDMwIC0xMHQxMSAtMjZxMCAtMjIgLTQgLTI4
dC0yNyAtMjJxLTUgLTEgLTEyLjUgLTN0LTI3IC0xMy41dC0zNCAtMjd0LTI2LjUgLTQ2dC0xMSAt
NjguNWgyMDBxNSAzIDE0IDh0MzEuNSAyNS41dDM5LjUgNDUuNXQzMSA2OXQxNCA5NHEwIDUxIC0x
Ny41IDg5dC00MiA1OHQtNTguNSAzMnQtNTguNSAxNXQtNTEuNSAzcS01MCAwIC05MC41IC0xMnQt
NzUgLTM4LjV0LTUzLjUgLTc0LjV0LTE5IC0xMTR6TTUwMCAzMDBoMjAwdjEwMGgtMjAwIHYtMTAw
eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDg2OyIgZD0iTTMgNjAwcTAgMTYyIDgwIDI5OS41
dDIxNy41IDIxNy41dDI5OS41IDgwdDI5OS41IC04MHQyMTcuNSAtMjE3LjV0ODAgLTI5OS41dC04
MCAtMjk5LjV0LTIxNy41IC0yMTcuNXQtMjk5LjUgLTgwdC0yOTkuNSA4MHQtMjE3LjUgMjE3LjV0
LTgwIDI5OS41ek00MDAgMzAwaDQwMHYxMDBoLTEwMHYzMDBoLTMwMHYtMTAwaDEwMHYtMjAwaC0x
MDB2LTEwMHpNNTAwIDgwMGgyMDB2MTAwaC0yMDB2LTEwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0i
JiN4ZTA4NzsiIGQ9Ik0wIDUwMHYyMDBoMTk1cTMxIDEyNSA5OC41IDE5OS41dDIwNi41IDEwMC41
djIwMGgyMDB2LTIwMHE1NCAtMjAgMTEzIC02MHQxMTIuNSAtMTA1LjV0NzEuNSAtMTM0LjVoMjAz
di0yMDBoLTIwM3EtMjUgLTEwMiAtMTE2LjUgLTE4NnQtMTgwLjUgLTExN3YtMTk3aC0yMDB2MTk3
cS0xNDAgMjcgLTIwOCAxMDIuNXQtOTggMjAwLjVoLTE5NHpNMjkwIDUwMHEyNCAtNzMgNzkuNSAt
MTI3LjV0MTMwLjUgLTc4LjV2MjA2aDIwMHYtMjA2IHExNDkgNDggMjAxIDIwNmgtMjAxdjIwMGgy
MDBxLTI1IDc0IC03NS41IDEyN3QtMTI0LjUgNzd2LTIwNGgtMjAwdjIwM3EtNzUgLTIzIC0xMzAg
LTc3dC03OSAtMTI2aDIwOXYtMjAwaC0yMTB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwODg7
IiBkPSJNNCA2MDBxMCAxNjIgODAgMjk5dDIxNyAyMTd0Mjk5IDgwdDI5OSAtODB0MjE3IC0yMTd0
ODAgLTI5OXQtODAgLTI5OXQtMjE3IC0yMTd0LTI5OSAtODB0LTI5OSA4MHQtMjE3IDIxN3QtODAg
Mjk5ek0xODYgNjAwcTAgLTE3MSAxMjEuNSAtMjkyLjV0MjkyLjUgLTEyMS41dDI5Mi41IDEyMS41
dDEyMS41IDI5Mi41dC0xMjEuNSAyOTIuNXQtMjkyLjUgMTIxLjV0LTI5Mi41IC0xMjEuNXQtMTIx
LjUgLTI5Mi41ek0zNTYgNDY1bDEzNSAxMzUgbC0xMzUgMTM1bDEwOSAxMDlsMTM1IC0xMzVsMTM1
IDEzNWwxMDkgLTEwOWwtMTM1IC0xMzVsMTM1IC0xMzVsLTEwOSAtMTA5bC0xMzUgMTM1bC0xMzUg
LTEzNXoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTA4OTsiIGQ9Ik00IDYwMHEwIDE2MiA4MCAy
OTl0MjE3IDIxN3QyOTkgODB0Mjk5IC04MHQyMTcgLTIxN3Q4MCAtMjk5dC04MCAtMjk5dC0yMTcg
LTIxN3QtMjk5IC04MHQtMjk5IDgwdC0yMTcgMjE3dC04MCAyOTl6TTE4NiA2MDBxMCAtMTcxIDEy
MS41IC0yOTIuNXQyOTIuNSAtMTIxLjV0MjkyLjUgMTIxLjV0MTIxLjUgMjkyLjV0LTEyMS41IDI5
Mi41dC0yOTIuNSAxMjEuNXQtMjkyLjUgLTEyMS41dC0xMjEuNSAtMjkyLjV6TTMyMiA1MzdsMTQx
IDE0MSBsODcgLTg3bDIwNCAyMDVsMTQyIC0xNDJsLTM0NiAtMzQ1eiIgLz4KKzxnbHlwaCB1bmlj
b2RlPSImI3hlMDkwOyIgZD0iTTQgNjAwcTAgMTYyIDgwIDI5OXQyMTcgMjE3dDI5OSA4MHQyOTkg
LTgwdDIxNyAtMjE3dDgwIC0yOTl0LTgwIC0yOTl0LTIxNyAtMjE3dC0yOTkgLTgwdC0yOTkgODB0
LTIxNyAyMTd0LTgwIDI5OXpNMTg2IDYwMHEwIC0xMTUgNjIgLTIxNWw1NjggNTY3cS0xMDAgNjIg
LTIxNiA2MnEtMTcxIDAgLTI5Mi41IC0xMjEuNXQtMTIxLjUgLTI5Mi41ek0zOTEgMjQ1cTk3IC01
OSAyMDkgLTU5cTE3MSAwIDI5Mi41IDEyMS41dDEyMS41IDI5Mi41IHEwIDExMiAtNTkgMjA5eiIg
Lz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDkxOyIgZD0iTTAgNTQ3bDYwMCA0NTN2LTMwMGg2MDB2
LTMwMGgtNjAwdi0zMDF6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUwOTI7IiBkPSJNMCA0MDB2
MzAwaDYwMHYzMDBsNjAwIC00NTNsLTYwMCAtNDQ4djMwMWgtNjAweiIgLz4KKzxnbHlwaCB1bmlj
b2RlPSImI3hlMDkzOyIgZD0iTTIwNCA2MDBsNDUwIDYwMGw0NDQgLTYwMGgtMjk4di02MDBoLTMw
MHY2MDBoLTI5NnoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTA5NDsiIGQ9Ik0xMDQgNjAwaDI5
NnY2MDBoMzAwdi02MDBoMjk4bC00NDkgLTYwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTA5
NTsiIGQ9Ik0wIDIwMHE2IDEzMiA0MSAyMzguNXQxMDMuNSAxOTN0MTg0IDEzOHQyNzEuNSA1OS41
djI3MWw2MDAgLTQ1M2wtNjAwIC00NDh2MzAxcS05NSAtMiAtMTgzIC0yMHQtMTcwIC01MnQtMTQ3
IC05Mi41dC0xMDAgLTEzNS41eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMDk2OyIgZD0iTTAg
MHY0MDBsMTI5IC0xMjlsMjk0IDI5NGwxNDIgLTE0MmwtMjk0IC0yOTRsMTI5IC0xMjloLTQwMHpN
NjM1IDc3N2wxNDIgLTE0MmwyOTQgMjk0bDEyOSAtMTI5djQwMGgtNDAwbDEyOSAtMTI5eiIgLz4K
KzxnbHlwaCB1bmljb2RlPSImI3hlMDk3OyIgZD0iTTM0IDE3NmwyOTUgMjk1bC0xMjkgMTI5aDQw
MHYtNDAwbC0xMjkgMTMwbC0yOTUgLTI5NXpNNjAwIDYwMHY0MDBsMTI5IC0xMjlsMjk1IDI5NWwx
NDIgLTE0MWwtMjk1IC0yOTVsMTI5IC0xMzBoLTQwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4
ZTEwMTsiIGQ9Ik0yMyA2MDBxMCAxMTggNDUuNSAyMjQuNXQxMjMgMTg0dDE4NCAxMjN0MjI0LjUg
NDUuNXQyMjQuNSAtNDUuNXQxODQgLTEyM3QxMjMgLTE4NHQ0NS41IC0yMjQuNXQtNDUuNSAtMjI0
LjV0LTEyMyAtMTg0dC0xODQgLTEyM3QtMjI0LjUgLTQ1LjV0LTIyNC41IDQ1LjV0LTE4NCAxMjN0
LTEyMyAxODR0LTQ1LjUgMjI0LjV6TTQ1NiA4NTFsNTggLTMwMnE0IC0yMCAyMS41IC0zNC41dDM3
LjUgLTE0LjVoNTRxMjAgMCAzNy41IDE0LjUgdDIxLjUgMzQuNWw1OCAzMDJxNCAyMCAtOCAzNC41
dC0zMiAxNC41aC0yMDdxLTIxIDAgLTMzIC0xNC41dC04IC0zNC41ek01MDAgMzAwaDIwMHYxMDBo
LTIwMHYtMTAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTAyOyIgZD0iTTAgODAwaDEwMHYt
MjAwaDQwMHYzMDBoMjAwdi0zMDBoNDAwdjIwMGgxMDB2MTAwaC0xMTFxMSAxIDEgNi41dC0xLjUg
MTV0LTMuNSAxNy41bC0zNCAxNzJxLTExIDM5IC00MS41IDYzdC02OS41IDI0cS0zMiAwIC02MSAt
MTdsLTIzOSAtMTQ0cS0yMiAtMTMgLTQwIC0zNXEtMTkgMjQgLTQwIDM2bC0yMzggMTQ0cS0zMyAx
OCAtNjIgMThxLTM5IDAgLTY5LjUgLTIzdC00MC41IC02MWwtMzUgLTE3N3EtMiAtOCAtMyAtMTh0
LTEgLTE1di02IGgtMTExdi0xMDB6TTEwMCAwaDQwMHY0MDBoLTQwMHYtNDAwek0yMDAgOTAwcS0z
IDAgMTQgNDh0MzYgOTZsMTggNDdsMjEzIC0xOTFoLTI4MXpNNzAwIDB2NDAwaDQwMHYtNDAwaC00
MDB6TTczMSA5MDBsMjAyIDE5N3E1IC0xMiAxMiAtMzIuNXQyMyAtNjR0MjUgLTcydDcgLTI4LjVo
LTI2OXoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTEwMzsiIGQ9Ik0wIC0yMnYxNDNsMjE2IDE5
M3EtOSA1MyAtMTMgODN0LTUuNSA5NHQ5IDExM3QzOC41IDExNHQ3NCAxMjRxNDcgNjAgOTkuNSAx
MDIuNXQxMDMgNjh0MTI3LjUgNDh0MTQ1LjUgMzcuNXQxODQuNSA0My41dDIyMCA1OC41cTAgLTE4
OSAtMjIgLTM0M3QtNTkgLTI1OHQtODkgLTE4MS41dC0xMDguNSAtMTIwdC0xMjIgLTY4dC0xMjUu
NSAtMzB0LTEyMS41IC0xLjV0LTEwNy41IDEyLjV0LTg3LjUgMTd0LTU2LjUgNy41bC05OSAtNTV6
IE0yMzguNSAzMDAuNXExOS41IC02LjUgODYuNSA3Ni41cTU1IDY2IDM2NyAyMzRxNzAgMzggMTE4
LjUgNjkuNXQxMDIgNzl0OTkgMTExLjV0ODYuNSAxNDhxMjIgNTAgMjQgNjB0LTYgMTlxLTcgNSAt
MTcgNXQtMjYuNSAtMTQuNXQtMzMuNSAtMzkuNXEtMzUgLTUxIC0xMTMuNSAtMTA4LjV0LTEzOS41
IC04OS41bC02MSAtMzJxLTM2OSAtMTk3IC00NTggLTQwMXEtNDggLTExMSAtMjguNSAtMTE3LjV6
IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUxMDQ7IiBkPSJNMTExIDQwOHEwIC0zMyA1IC02M3E5
IC01NiA0NCAtMTE5LjV0MTA1IC0xMDguNXEzMSAtMjEgNjQgLTE2dDYyIDIzLjV0NTcgNDkuNXQ0
OCA2MS41dDM1IDYwLjVxMzIgNjYgMzkgMTg0LjV0LTEzIDE1Ny41cTc5IC04MCAxMjIgLTE2NHQy
NiAtMTg0cS01IC0zMyAtMjAuNSAtNjkuNXQtMzcuNSAtODAuNXEtMTAgLTE5IC0xNC41IC0yOXQt
MTIgLTI2dC05IC0yMy41dC0zIC0xOXQyLjUgLTE1LjV0MTEgLTkuNXQxOS41IC01dDMwLjUgMi41
IHQ0MiA4cTU3IDIwIDkxIDM0dDg3LjUgNDQuNXQ4NyA2NHQ2NS41IDg4LjV0NDcgMTIycTM4IDE3
MiAtNDQuNSAzNDEuNXQtMjQ2LjUgMjc4LjVxMjIgLTQ0IDQzIC0xMjlxMzkgLTE1OSAtMzIgLTE1
NHEtMTUgMiAtMzMgOXEtNzkgMzMgLTEyMC41IDEwMHQtNDQgMTc1LjV0NDguNSAyNTcuNXEtMTMg
LTggLTM0IC0yMy41dC03Mi41IC02Ni41dC04OC41IC0xMDUuNXQtNjAgLTEzOHQtOCAtMTY2LjVx
MiAtMTIgOCAtNDEuNXQ4IC00M3Q2IC0zOS41IHQzLjUgLTM5LjV0LTEgLTMzLjV0LTYgLTMxLjV0
LTEzLjUgLTI0dC0yMSAtMjAuNXQtMzEgLTEycS0zOCAtMTAgLTY3IDEzdC00MC41IDYxLjV0LTE1
IDgxLjV0MTAuNSA3NXEtNTIgLTQ2IC04My41IC0xMDF0LTM5IC0xMDd0LTcuNSAtODV6IiAvPgor
PGdseXBoIHVuaWNvZGU9IiYjeGUxMDU7IiBkPSJNLTYxIDYwMGwyNiA0MHE2IDEwIDIwIDMwdDQ5
IDYzLjV0NzQuNSA4NS41dDk3IDkwdDExNi41IDgzLjV0MTMyLjUgNTl0MTQ1LjUgMjMuNXQxNDUu
NSAtMjMuNXQxMzIuNSAtNTl0MTE2LjUgLTgzLjV0OTcgLTkwdDc0LjUgLTg1LjV0NDkgLTYzLjV0
MjAgLTMwbDI2IC00MGwtMjYgLTQwcS02IC0xMCAtMjAgLTMwdC00OSAtNjMuNXQtNzQuNSAtODUu
NXQtOTcgLTkwdC0xMTYuNSAtODMuNXQtMTMyLjUgLTU5dC0xNDUuNSAtMjMuNSB0LTE0NS41IDIz
LjV0LTEzMi41IDU5dC0xMTYuNSA4My41dC05NyA5MHQtNzQuNSA4NS41dC00OSA2My41dC0yMCAz
MHpNMTIwIDYwMHE3IC0xMCA0MC41IC01OHQ1NiAtNzguNXQ2OCAtNzcuNXQ4Ny41IC03NXQxMDMg
LTQ5LjV0MTI1IC0yMS41dDEyMy41IDIwdDEwMC41IDQ1LjV0ODUuNSA3MS41dDY2LjUgNzUuNXQ1
OCA4MS41dDQ3IDY2cS0xIDEgLTI4LjUgMzcuNXQtNDIgNTV0LTQzLjUgNTN0LTU3LjUgNjMuNXQt
NTguNSA1NCBxNDkgLTc0IDQ5IC0xNjNxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4dC0yMTIgODh0
LTg4IDIxMnEwIDg1IDQ2IDE1OHEtMTAyIC04NyAtMjI2IC0yNTh6TTM3NyA2NTZxNDkgLTEyNCAx
NTQgLTE5MWwxMDUgMTA1cS0zNyAyNCAtNzUgNzJ0LTU3IDg0bC0yMCAzNnoiIC8+Cis8Z2x5cGgg
dW5pY29kZT0iJiN4ZTEwNjsiIGQ9Ik0tNjEgNjAwbDI2IDQwcTYgMTAgMjAgMzB0NDkgNjMuNXQ3
NC41IDg1LjV0OTcgOTB0MTE2LjUgODMuNXQxMzIuNSA1OXQxNDUuNSAyMy41cTYxIDAgMTIxIC0x
N2wzNyAxNDJoMTQ4bC0zMTQgLTEyMDBoLTE0OGwzNyAxNDNxLTgyIDIxIC0xNjUgNzEuNXQtMTQw
IDEwMnQtMTA5LjUgMTEydC03MiA4OC41dC0yOS41IDQzek0xMjAgNjAwcTIxMCAtMjgyIDM5MyAt
MzM2bDM3IDE0MXEtMTA3IDE4IC0xNzguNSAxMDEuNXQtNzEuNSAxOTMuNSBxMCA4NSA0NiAxNThx
LTEwMiAtODcgLTIyNiAtMjU4ek0zNzcgNjU2cTQ5IC0xMjQgMTU0IC0xOTFsNDcgNDdsMjMgODdx
LTMwIDI4IC01OSA2OXQtNDQgNjhsLTE0IDI2ek03ODAgMTYxbDM4IDE0NXEyMiAxNSA0NC41IDM0
dDQ2IDQ0dDQwLjUgNDR0NDEgNTAuNXQzMy41IDQzLjV0MzMgNDR0MjQuNSAzNHEtOTcgMTI3IC0x
NDAgMTc1bDM5IDE0NnE2NyAtNTQgMTMxLjUgLTEyNS41dDg3LjUgLTEwMy41dDM2IC01MmwyNiAt
NDBsLTI2IC00MCBxLTcgLTEyIC0yNS41IC0zOHQtNjMuNSAtNzkuNXQtOTUuNSAtMTAyLjV0LTEy
NCAtMTAwdC0xNDYuNSAtNzl6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUxMDc7IiBkPSJNLTk3
LjUgMzRxMTMuNSAtMzQgNTAuNSAtMzRoMTI5NHEzNyAwIDUwLjUgMzUuNXQtNy41IDY3LjVsLTY0
MiAxMDU2cS0yMCAzNCAtNDggMzYuNXQtNDggLTI5LjVsLTY0MiAtMTA2NnEtMjEgLTMyIC03LjUg
LTY2ek0xNTUgMjAwbDQ0NSA3MjNsNDQ1IC03MjNoLTM0NXYxMDBoLTIwMHYtMTAwaC0zNDV6TTUw
MCA2MDBsMTAwIC0zMDBsMTAwIDMwMHYxMDBoLTIwMHYtMTAweiIgLz4KKzxnbHlwaCB1bmljb2Rl
PSImI3hlMTA4OyIgZD0iTTEwMCAyNjJ2NDFxMCAyMCAxMSA0NC41dDI2IDM4LjVsMzYzIDMyNXYz
MzlxMCA2MiA0NCAxMDZ0MTA2IDQ0dDEwNiAtNDR0NDQgLTEwNnYtMzM5bDM2MyAtMzI1cTE1IC0x
NCAyNiAtMzguNXQxMSAtNDQuNXYtNDFxMCAtMjAgLTEyIC0yNi41dC0yOSA1LjVsLTM1OSAyNDl2
LTI2M3ExMDAgLTkxIDEwMCAtMTEzdi02NHEwIC0yMCAtMTMgLTI4LjV0LTMyIDAuNWwtOTQgNzho
LTIyMmwtOTQgLTc4cS0xOSAtOSAtMzIgLTAuNXQtMTMgMjguNSB2NjRxMCAyMiAxMDAgMTEzdjI2
M2wtMzU5IC0yNDlxLTE3IC0xMiAtMjkgLTUuNXQtMTIgMjYuNXoiIC8+Cis8Z2x5cGggdW5pY29k
ZT0iJiN4ZTEwOTsiIGQ9Ik0wIDUwcTAgLTIwIDE0LjUgLTM1dDM1LjUgLTE1aDEwMDBxMjEgMCAz
NS41IDE1dDE0LjUgMzV2NzUwaC0xMTAwdi03NTB6TTAgOTAwaDExMDB2MTUwcTAgMjEgLTE0LjUg
MzUuNXQtMzUuNSAxNC41aC0xNTB2MTAwaC0xMDB2LTEwMGgtNTAwdjEwMGgtMTAwdi0xMDBoLTE1
MHEtMjEgMCAtMzUuNSAtMTQuNXQtMTQuNSAtMzUuNXYtMTUwek0xMDAgMTAwdjEwMGgxMDB2LTEw
MGgtMTAwek0xMDAgMzAwdjEwMGgxMDB2LTEwMGgtMTAweiBNMTAwIDUwMHYxMDBoMTAwdi0xMDBo
LTEwMHpNMzAwIDEwMHYxMDBoMTAwdi0xMDBoLTEwMHpNMzAwIDMwMHYxMDBoMTAwdi0xMDBoLTEw
MHpNMzAwIDUwMHYxMDBoMTAwdi0xMDBoLTEwMHpNNTAwIDEwMHYxMDBoMTAwdi0xMDBoLTEwMHpN
NTAwIDMwMHYxMDBoMTAwdi0xMDBoLTEwMHpNNTAwIDUwMHYxMDBoMTAwdi0xMDBoLTEwMHpNNzAw
IDEwMHYxMDBoMTAwdi0xMDBoLTEwMHpNNzAwIDMwMHYxMDBoMTAwdi0xMDBoLTEwMHpNNzAwIDUw
MCB2MTAwaDEwMHYtMTAwaC0xMDB6TTkwMCAxMDB2MTAwaDEwMHYtMTAwaC0xMDB6TTkwMCAzMDB2
MTAwaDEwMHYtMTAwaC0xMDB6TTkwMCA1MDB2MTAwaDEwMHYtMTAwaC0xMDB6IiAvPgorPGdseXBo
IHVuaWNvZGU9IiYjeGUxMTA7IiBkPSJNMCAyMDB2MjAwaDI1OWw2MDAgNjAwaDI0MXYxOThsMzAw
IC0yOTVsLTMwMCAtMzAwdjE5N2gtMTU5bC02MDAgLTYwMGgtMzQxek0wIDgwMGgyNTlsMTIyIC0x
MjJsMTQxIDE0MmwtMTgxIDE4MGgtMzQxdi0yMDB6TTY3OCAzODFsMTQxIDE0MmwxMjIgLTEyM2gx
NTl2MTk4bDMwMCAtMjk1bC0zMDAgLTMwMHYxOTdoLTI0MXoiIC8+Cis8Z2x5cGggdW5pY29kZT0i
JiN4ZTExMTsiIGQ9Ik0wIDQwMHY2MDBxMCA0MSAyOS41IDcwLjV0NzAuNSAyOS41aDEwMDBxNDEg
MCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTYwMHEwIC00MSAtMjkuNSAtNzAuNXQtNzAuNSAtMjku
NWgtNTk2bC0zMDQgLTMwMHYzMDBoLTEwMHEtNDEgMCAtNzAuNSAyOS41dC0yOS41IDcwLjV6IiAv
PgorPGdseXBoIHVuaWNvZGU9IiYjeGUxMTI7IiBkPSJNMTAwIDYwMHYyMDBoMzAwdi0yNTBxMCAt
MTEzIDYgLTE0NXExNyAtOTIgMTAyIC0xMTdxMzkgLTExIDkyIC0xMXEzNyAwIDY2LjUgNS41dDUw
IDE1LjV0MzYgMjR0MjQgMzEuNXQxNCAzNy41dDcgNDJ0Mi41IDQ1dDAgNDd2MjV2MjUwaDMwMHYt
MjAwcTAgLTQyIC0zIC04M3QtMTUgLTEwNHQtMzEuNSAtMTE2dC01OCAtMTA5LjV0LTg5IC05Ni41
dC0xMjkgLTY1LjV0LTE3NC41IC0yNS41dC0xNzQuNSAyNS41dC0xMjkgNjUuNXQtODkgOTYuNSB0
LTU4IDEwOS41dC0zMS41IDExNnQtMTUgMTA0dC0zIDgzek0xMDAgOTAwdjMwMGgzMDB2LTMwMGgt
MzAwek04MDAgOTAwdjMwMGgzMDB2LTMwMGgtMzAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hl
MTEzOyIgZD0iTS0zMCA0MTFsMjI3IC0yMjdsMzUyIDM1M2wzNTMgLTM1M2wyMjYgMjI3bC01Nzgg
NTc5eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTE0OyIgZD0iTTcwIDc5N2w1ODAgLTU3OWw1
NzggNTc5bC0yMjYgMjI3bC0zNTMgLTM1M2wtMzUyIDM1M3oiIC8+Cis8Z2x5cGggdW5pY29kZT0i
JiN4ZTExNTsiIGQ9Ik0tMTk4IDcwMGwyOTkgMjgzbDMwMCAtMjgzaC0yMDN2LTQwMGgzODVsMjE1
IC0yMDBoLTgwMHY2MDBoLTE5NnpNNDAyIDEwMDBsMjE1IC0yMDBoMzgxdi00MDBoLTE5OGwyOTkg
LTI4M2wyOTkgMjgzaC0yMDB2NjAwaC03OTZ6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUxMTY7
IiBkPSJNMTggOTM5cS01IDI0IDEwIDQycTE0IDE5IDM5IDE5aDg5NmwzOCAxNjJxNSAxNyAxOC41
IDI3LjV0MzAuNSAxMC41aDk0cTIwIDAgMzUgLTE0LjV0MTUgLTM1LjV0LTE1IC0zNS41dC0zNSAt
MTQuNWgtNTRsLTIwMSAtOTYxcS0yIC00IC02IC0xMC41dC0xOSAtMTcuNXQtMzMgLTExaC0zMXYt
NTBxMCAtMjAgLTE0LjUgLTM1dC0zNS41IC0xNXQtMzUuNSAxNXQtMTQuNSAzNXY1MGgtMzAwdi01
MHEwIC0yMCAtMTQuNSAtMzV0LTM1LjUgLTE1IHQtMzUuNSAxNXQtMTQuNSAzNXY1MGgtNTBxLTIx
IDAgLTM1LjUgMTV0LTE0LjUgMzVxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDUzNWw0OCAyMDBo
LTYzM3EtMzIgMCAtNTQuNSAyMXQtMjcuNSA0M3oiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTEx
NzsiIGQ9Ik0wIDB2ODAwaDEyMDB2LTgwMGgtMTIwMHpNMCA5MDB2MTAwaDIwMHEwIDQxIDI5LjUg
NzAuNXQ3MC41IDI5LjVoMzAwcTQxIDAgNzAuNSAtMjkuNXQyOS41IC03MC41aDUwMHYtMTAwaC0x
MjAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTE4OyIgZD0iTTEgMGwzMDAgNzAwaDEyMDBs
LTMwMCAtNzAwaC0xMjAwek0xIDQwMHY2MDBoMjAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNWgz
MDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjVoNTAwdi0yMDBoLTEwMDB6IiAvPgorPGdseXBo
IHVuaWNvZGU9IiYjeGUxMTk7IiBkPSJNMzAyIDMwMGgxOTh2NjAwaC0xOThsMjk4IDMwMGwyOTgg
LTMwMGgtMTk4di02MDBoMTk4bC0yOTggLTMwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTEy
MDsiIGQ9Ik0wIDYwMGwzMDAgMjk4di0xOThoNjAwdjE5OGwzMDAgLTI5OGwtMzAwIC0yOTd2MTk3
aC02MDB2LTE5N3oiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTEyMTsiIGQ9Ik0wIDEwMHYxMDBx
MCA0MSAyOS41IDcwLjV0NzAuNSAyOS41aDEwMDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2
LTEwMHEwIC00MSAtMjkuNSAtNzAuNXQtNzAuNSAtMjkuNWgtMTAwMHEtNDEgMCAtNzAuNSAyOS41
dC0yOS41IDcwLjV6TTMxIDQwMGwxNzIgNzM5cTUgMjIgMjMgNDEuNXQzOCAxOS41aDY3MnExOSAw
IDM3LjUgLTIyLjV0MjMuNSAtNDUuNWwxNzIgLTczMmgtMTEzOHpNODAwIDEwMGgxMDB2MTAwaC0x
MDB2LTEwMHogTTEwMDAgMTAwaDEwMHYxMDBoLTEwMHYtMTAweiIgLz4KKzxnbHlwaCB1bmljb2Rl
PSImI3hlMTIyOyIgZD0iTS0xMDEgNjAwdjUwcTAgMjQgMjUgNDl0NTAgMzhsMjUgMTN2LTI1MGwt
MTEgNS41dC0yNCAxNHQtMzAgMjEuNXQtMjQgMjcuNXQtMTEgMzEuNXpNMTAwIDUwMHYyNTB2OHY4
djd0MC41IDd0MS41IDUuNXQyIDV0MyA0dDQuNSAzLjV0NiAxLjV0Ny41IDAuNWgyMDBsNjc1IDI1
MHYtODUwbC02NzUgMjAwaC0zOGw0NyAtMjc2cTIgLTEyIC0zIC0xNy41dC0xMSAtNnQtMjEgLTAu
NWgtOGgtODNxLTIwIDAgLTM0LjUgMTR0LTE4LjUgMzUgcS01NSAzMzcgLTU1IDM1MXpNMTEwMCAy
MDB2ODUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXEyMCAwIDM1IC0xNC41dDE1IC0zNS41di04
NTBxMCAtMjAgLTE1IC0zNXQtMzUgLTE1cS0yMSAwIC0zNS41IDE1dC0xNC41IDM1eiIgLz4KKzxn
bHlwaCB1bmljb2RlPSImI3hlMTIzOyIgZD0iTTc0IDM1MHEwIDIxIDEzLjUgMzUuNXQzMy41IDE0
LjVoMThsMTE3IDE3M2w2MyAzMjdxMTUgNzcgNzYgMTQwdDE0NCA4M2wtMTggMzJxLTYgMTkgMyAz
MnQyOSAxM2g5NHEyMCAwIDI5IC0xMC41dDMgLTI5LjVxLTE4IC0zNiAtMTggLTM3cTgzIC0xOSAx
NDQgLTgyLjV0NzYgLTE0MC41bDYzIC0zMjdsMTE4IC0xNzNoMTdxMjAgMCAzMy41IC0xNC41dDEz
LjUgLTM1LjVxMCAtMjAgLTEzIC00MHQtMzEgLTI3cS04IC0zIC0yMyAtOC41IHQtNjUgLTIwdC0x
MDMgLTI1dC0xMzIuNSAtMTkuNXQtMTU4LjUgLTlxLTEyNSAwIC0yNDUuNSAyMC41dC0xNzguNSA0
MC41bC01OCAyMHEtMTggNyAtMzEgMjcuNXQtMTMgNDAuNXpNNDk3IDExMHExMiAtNDkgNDAgLTc5
LjV0NjMgLTMwLjV0NjMgMzAuNXQzOSA3OS41cS00OCAtNiAtMTAyIC02dC0xMDMgNnoiIC8+Cis8
Z2x5cGggdW5pY29kZT0iJiN4ZTEyNDsiIGQ9Ik0yMSA0NDVsMjMzIC00NWwtNzggLTIyNGwyMjQg
NzhsNDUgLTIzM2wxNTUgMTc5bDE1NSAtMTc5bDQ1IDIzM2wyMjQgLTc4bC03OCAyMjRsMjM0IDQ1
bC0xODAgMTU1bDE4MCAxNTZsLTIzNCA0NGw3OCAyMjVsLTIyNCAtNzhsLTQ1IDIzM2wtMTU1IC0x
ODBsLTE1NSAxODBsLTQ1IC0yMzNsLTIyNCA3OGw3OCAtMjI1bC0yMzMgLTQ0bDE3OSAtMTU2eiIg
Lz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTI1OyIgZD0iTTAgMjAwaDIwMHY2MDBoLTIwMHYtNjAw
ek0zMDAgMjc1cTAgLTc1IDEwMCAtNzVoNjFxMTI0IC0xMDAgMTM5IC0xMDBoMjUwcTQ2IDAgODMg
NTdsMjM4IDM0NHEyOSAzMSAyOSA3NHYxMDBxMCA0NCAtMzAuNSA4NC41dC02OS41IDQwLjVoLTMy
OHEyOCAxMTggMjggMTI1djE1MHEwIDQ0IC0zMC41IDg0LjV0LTY5LjUgNDAuNWgtNTBxLTI3IDAg
LTUxIC0yMHQtMzggLTQ4bC05NiAtMTk4bC0xNDUgLTE5NnEtMjAgLTI2IC0yMCAtNjN2LTQwMHog
TTQwMCAzMDB2Mzc1bDE1MCAyMTNsMTAwIDIxMmg1MHYtMTc1bC01MCAtMjI1aDQ1MHYtMTI1bC0y
NTAgLTM3NWgtMjE0bC0xMzYgMTAwaC0xMDB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUxMjY7
IiBkPSJNMCA0MDB2NjAwaDIwMHYtNjAwaC0yMDB6TTMwMCA1MjV2NDAwcTAgNzUgMTAwIDc1aDYx
cTEyNCAxMDAgMTM5IDEwMGgyNTBxNDYgMCA4MyAtNTdsMjM4IC0zNDRxMjkgLTMxIDI5IC03NHYt
MTAwcTAgLTQ0IC0zMC41IC04NC41dC02OS41IC00MC41aC0zMjhxMjggLTExOCAyOCAtMTI1di0x
NTBxMCAtNDQgLTMwLjUgLTg0LjV0LTY5LjUgLTQwLjVoLTUwcS0yNyAwIC01MSAyMHQtMzggNDhs
LTk2IDE5OGwtMTQ1IDE5NiBxLTIwIDI2IC0yMCA2M3pNNDAwIDUyNWwxNTAgLTIxMmwxMDAgLTIx
M2g1MHYxNzVsLTUwIDIyNWg0NTB2MTI1bC0yNTAgMzc1aC0yMTRsLTEzNiAtMTAwaC0xMDB2LTM3
NXoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTEyNzsiIGQ9Ik04IDIwMHY2MDBoMjAwdi02MDBo
LTIwMHpNMzA4IDI3NXY1MjVxMCAxNyAxNCAzNS41dDI4IDI4LjVsMTQgOWwzNjIgMjMwcTE0IDYg
MjUgNnExNyAwIDI5IC0xMmwxMDkgLTExMnExNCAtMTQgMTQgLTM0cTAgLTE4IC0xMSAtMzJsLTg1
IC0xMjFoMzAycTg1IDAgMTM4LjUgLTM4dDUzLjUgLTExMHQtNTQuNSAtMTExdC0xMzguNSAtMzlo
LTEwN2wtMTMwIC0zMzlxLTcgLTIyIC0yMC41IC00MS41dC0yOC41IC0xOS41aC0zNDEgcS03IDAg
LTkwIDgxdC04MyA5NHpNNDA4IDI4OWwxMDAgLTg5aDI5M2wxMzEgMzM5cTYgMjEgMTkuNSA0MXQy
OC41IDIwaDIwM3ExNiAwIDI1IDE1dDkgMzZxMCAyMCAtOSAzNC41dC0yNSAxNC41aC00NTdoLTYu
NWgtNy41dC02LjUgMC41dC02IDF0LTUgMS41dC01LjUgMi41dC00IDR0LTQgNS41cS01IDEyIC01
IDIwcTAgMTQgMTAgMjdsMTQ3IDE4M2wtODYgODNsLTMzOSAtMjM2di01MDN6IiAvPgorPGdseXBo
IHVuaWNvZGU9IiYjeGUxMjg7IiBkPSJNLTEwMSA2NTFxMCA3MiA1NCAxMTB0MTM5IDM4bDMwMiAt
MWwtODUgMTIxcS0xMSAxNiAtMTEgMzJxMCAyMSAxNCAzNGwxMDkgMTEzcTEzIDEyIDI5IDEycTEx
IDAgMjUgLTZsMzY1IC0yMzBxNyAtNCAxNyAtMTAuNXQyNi41IC0yNnQxNi41IC0zNi41di01MjZx
MCAtMTMgLTg2IC05My41dC05NCAtODAuNWgtMzQxcS0xNiAwIC0yOS41IDIwdC0xOS41IDQxbC0x
MzAgMzM5aC0xMDdxLTg0IDAgLTEzOSAzOXQtNTUgMTExek0tMSA2MDFoMjIyIHExNSAwIDI4LjUg
LTIwLjV0MTkuNSAtNDAuNWwxMzEgLTMzOWgyOTNsMTA3IDg5djUwMmwtMzQzIDIzN2wtODcgLTgz
bDE0NSAtMTg0cTEwIC0xMSAxMCAtMjZxMCAtMTEgLTUgLTIwcS0xIC0zIC0zLjUgLTUuNWwtNCAt
NHQtNSAtMi41dC01LjUgLTEuNXQtNi41IC0xdC02LjUgLTAuNWgtNy41aC02LjVoLTQ3NnYtMTAw
ek0xMDAwIDIwMXY2MDBoMjAwdi02MDBoLTIwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTEy
OTsiIGQ9Ik05NyA3MTlsMjMwIC0zNjNxNCAtNiAxMC41IC0xNS41dDI2IC0yNXQzNi41IC0xNS41
aDUyNXExMyAwIDk0IDgzdDgxIDkwdjM0MnEwIDE1IC0yMCAyOC41dC00MSAxOS41bC0zMzkgMTMx
djEwNnEwIDg0IC0zOSAxMzl0LTExMSA1NXQtMTEwIC01My41dC0zOCAtMTM4LjV2LTMwMmwtMTIx
IDg0cS0xNSAxMiAtMzMuNSAxMS41dC0zMi41IC0xMy41bC0xMTIgLTExMHEtMjIgLTIyIC02IC01
M3pNMTcyIDczOWw4MyA4NmwxODMgLTE0NiBxMjIgLTE4IDQ3IC01cTMgMSA1LjUgMy41bDQgNHQy
LjUgNXQxLjUgNS41dDEgNi41dDAuNSA2LjV2Ny41djYuNXY0NTZxMCAyMiAyNSAzMXQ1MCAtMC41
dDI1IC0zMC41di0yMDJxMCAtMTYgMjAgLTI5LjV0NDEgLTE5LjVsMzM5IC0xMzB2LTI5NGwtODkg
LTEwMGgtNTAzek00MDAgMHYyMDBoNjAwdi0yMDBoLTYwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0i
JiN4ZTEzMDsiIGQ9Ik0yIDU4NXEtMTYgLTMxIDYgLTUzbDExMiAtMTEwcTEzIC0xMyAzMiAtMTMu
NXQzNCAxMC41bDEyMSA4NXEwIC01MSAtMC41IC0xNTMuNXQtMC41IC0xNDguNXEwIC04NCAzOC41
IC0xMzh0MTEwLjUgLTU0dDExMSA1NXQzOSAxMzl2MTA2bDMzOSAxMzFxMjAgNiA0MC41IDE5LjV0
MjAuNSAyOC41djM0MnEwIDcgLTgxIDkwdC05NCA4M2gtNTI1cS0xNyAwIC0zNS41IC0xNHQtMjgu
NSAtMjhsLTEwIC0xNXpNNzcgNTY1bDIzNiAzMzloNTAzIGw4OSAtMTAwdi0yOTRsLTM0MCAtMTMw
cS0yMCAtNiAtNDAgLTIwdC0yMCAtMjl2LTIwMnEwIC0yMiAtMjUgLTMxdC01MCAwdC0yNSAzMXY0
NTZ2MTQuNXQtMS41IDExLjV0LTUgMTJ0LTkuNSA3cS0yNCAxMyAtNDYgLTVsLTE4NCAtMTQ2ek0z
MDUgMTEwNHYyMDBoNjAwdi0yMDBoLTYwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTEzMTsi
IGQ9Ik01IDU5N3EwIDEyMiA0Ny41IDIzMi41dDEyNy41IDE5MC41dDE5MC41IDEyNy41dDIzMi41
IDQ3LjVxMTYyIDAgMjk5LjUgLTgwdDIxNy41IC0yMTh0ODAgLTMwMHQtODAgLTI5OS41dC0yMTcu
NSAtMjE3LjV0LTI5OS41IC04MHQtMzAwIDgwdC0yMTggMjE3LjV0LTgwIDI5OS41ek0yOTggNzAx
bDIgLTIwMWgzMDBsLTIgLTE5NGw0MDIgMjk0bC00MDIgMjk4di0xOTdoLTMwMHoiIC8+Cis8Z2x5
cGggdW5pY29kZT0iJiN4ZTEzMjsiIGQ9Ik0wIDU5N3EwIDEyMiA0Ny41IDIzMi41dDEyNy41IDE5
MC41dDE5MC41IDEyNy41dDIzMS41IDQ3LjVxMTIyIDAgMjMyLjUgLTQ3LjV0MTkwLjUgLTEyNy41
dDEyNy41IC0xOTAuNXQ0Ny41IC0yMzIuNXEwIC0xNjIgLTgwIC0yOTkuNXQtMjE4IC0yMTcuNXQt
MzAwIC04MHQtMjk5LjUgODB0LTIxNy41IDIxNy41dC04MCAyOTkuNXpNMjAwIDYwMGw0MDIgLTI5
NGwtMiAxOTRoMzAwbDIgMjAxaC0zMDB2MTk3eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTMz
OyIgZD0iTTUgNTk3cTAgMTIyIDQ3LjUgMjMyLjV0MTI3LjUgMTkwLjV0MTkwLjUgMTI3LjV0MjMy
LjUgNDcuNXExNjIgMCAyOTkuNSAtODB0MjE3LjUgLTIxOHQ4MCAtMzAwdC04MCAtMjk5LjV0LTIx
Ny41IC0yMTcuNXQtMjk5LjUgLTgwdC0zMDAgODB0LTIxOCAyMTcuNXQtODAgMjk5LjV6TTMwMCA2
MDBoMjAwdi0zMDBoMjAwdjMwMGgyMDBsLTMwMCA0MDB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYj
eGUxMzQ7IiBkPSJNNSA1OTdxMCAxMjIgNDcuNSAyMzIuNXQxMjcuNSAxOTAuNXQxOTAuNSAxMjcu
NXQyMzIuNSA0Ny41cTE2MiAwIDI5OS41IC04MHQyMTcuNSAtMjE4dDgwIC0zMDB0LTgwIC0yOTku
NXQtMjE3LjUgLTIxNy41dC0yOTkuNSAtODB0LTMwMCA4MHQtMjE4IDIxNy41dC04MCAyOTkuNXpN
MzAwIDYwMGwzMDAgLTQwMGwzMDAgNDAwaC0yMDB2MzAwaC0yMDB2LTMwMGgtMjAweiIgLz4KKzxn
bHlwaCB1bmljb2RlPSImI3hlMTM1OyIgZD0iTTUgNTk3cTAgMTIyIDQ3LjUgMjMyLjV0MTI3LjUg
MTkwLjV0MTkwLjUgMTI3LjV0MjMyLjUgNDcuNXExMjEgMCAyMzEuNSAtNDcuNXQxOTAuNSAtMTI3
LjV0MTI3LjUgLTE5MC41dDQ3LjUgLTIzMi41cTAgLTE2MiAtODAgLTI5OS41dC0yMTcuNSAtMjE3
LjV0LTI5OS41IC04MHQtMzAwIDgwdC0yMTggMjE3LjV0LTgwIDI5OS41ek0yNTQgNzgwcS04IC0z
MyA1LjUgLTkyLjV0Ny41IC04Ny41cTAgLTkgMTcgLTQ0dDE2IC02MCBxMTIgMCAyMyAtNS41dDIz
IC0xNXQyMCAtMTMuNXEyNCAtMTIgMTA4IC00MnEyMiAtOCA1MyAtMzEuNXQ1OS41IC0zOC41dDU3
LjUgLTExcTggLTE4IC0xNSAtNTV0LTIwIC01N3E0MiAtNzEgODcgLTgwcTAgLTYgLTMgLTE1LjV0
LTMuNSAtMTQuNXQ0LjUgLTE3cTEwNCAtMyAyMjEgMTEycTMwIDI5IDQ3IDQ3dDM0LjUgNDl0MjAu
NSA2MnEtMTQgOSAtMzcgOS41dC0zNiA3LjVxLTE0IDcgLTQ5IDE1dC01MiAxOXEtOSAwIC0zOS41
IC0wLjUgdC00Ni41IC0xLjV0LTM5IC02LjV0LTM5IC0xNi41cS01MCAtMzUgLTY2IC0xMnEtNCAy
IC0zLjUgMjUuNXQwLjUgMjUuNXEtNiAxMyAtMjYuNSAxN3QtMjQuNSA3cTIgMjIgLTIgNDF0LTE2
LjUgMjh0LTM4LjUgLTIwcS0yMyAtMjUgLTQyIDRxLTE5IDI4IC04IDU4cTYgMTYgMjIgMjJxNiAt
MSAyNiAtMS41dDMzLjUgLTR0MTkuNSAtMTMuNXExMiAtMTkgMzIgLTM3LjV0MzQgLTI3LjVsMTQg
LThxMCAzIDkuNSAzOS41dDUuNSA1Ny41IHEtNCAyMyAxNC41IDQ0LjV0MjIuNSAzMS41cTUgMTQg
MTAgMzV0OC41IDMxdDE1LjUgMjIuNXQzNCAyMS41cS02IDE4IDEwIDM3cTggMCAyMy41IC0xLjV0
MjQuNSAtMS41dDIwLjUgNC41dDIwLjUgMTUuNXEtMTAgMjMgLTMwLjUgNDIuNXQtMzggMzB0LTQ5
IDI2LjV0LTQzLjUgMjNxMTEgMzkgMiA0NHEzMSAtMTMgNTggLTE0LjV0MzkgMy41bDExIDRxNyAz
NiAtMTYuNSA1My41dC02NC41IDI4LjV0LTU2IDIzcS0xOSAtMyAtMzcgMCBxLTE1IC0xMiAtMzYu
NSAtMjF0LTM0LjUgLTEydC00NCAtOHQtMzkgLTZxLTE1IC0zIC00NS41IDAuNXQtNDUuNSAtMi41
cS0yMSAtNyAtNTIgLTI2LjV0LTM0IC0zNC41cS0zIC0xMSA2LjUgLTIyLjV0OC41IC0xOC41cS0z
IC0zNCAtMjcuNSAtOTAuNXQtMjkuNSAtNzkuNXpNNTE4IDkxNnEzIDEyIDE2IDMwdDE2IDI1cTEw
IC0xMCAxOC41IC0xMHQxNCA2dDE0LjUgMTQuNXQxNiAxMi41cTAgLTI0IDE3IC02Ni41dDE3IC00
My41IHEtOSAyIC0zMSA1dC0zNiA1dC0zMiA4dC0zMCAxNHpNNjkyIDEwMDNoMWgtMXoiIC8+Cis8
Z2x5cGggdW5pY29kZT0iJiN4ZTEzNjsiIGQ9Ik0wIDE2NC41cTAgMjEuNSAxNSAzNy41bDYwMCA1
OTlxLTMzIDEwMSA2IDIwMS41dDEzNSAxNTQuNXExNjQgOTIgMzA2IC05bC0yNTkgLTEzOGwxNDUg
LTIzMmwyNTEgMTI2cTEzIC0xNzUgLTE1MSAtMjY3cS0xMjMgLTcwIC0yNTMgLTIzbC01OTYgLTU5
NnEtMTUgLTE2IC0zNi41IC0xNnQtMzYuNSAxNmwtMTExIDExMHEtMTUgMTUgLTE1IDM2LjV6IiAv
PgorPGdseXBoIHVuaWNvZGU9IiYjeGUxMzc7IiBob3Jpei1hZHYteD0iMTIyMCIgZD0iTTAgMTk2
djEwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjVoMTAwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAt
NzAuNXYtMTAwcTAgLTQxIC0yOS41IC03MC41dC03MC41IC0yOS41aC0xMDAwcS00MSAwIC03MC41
IDI5LjV0LTI5LjUgNzAuNXpNMCA1OTZ2MTAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNWgxMDAw
cTQxIDAgNzAuNSAtMjkuNXQyOS41IC03MC41di0xMDBxMCAtNDEgLTI5LjUgLTcwLjV0LTcwLjUg
LTI5LjVoLTEwMDAgcS00MSAwIC03MC41IDI5LjV0LTI5LjUgNzAuNXpNMCA5OTZ2MTAwcTAgNDEg
MjkuNSA3MC41dDcwLjUgMjkuNWgxMDAwcTQxIDAgNzAuNSAtMjkuNXQyOS41IC03MC41di0xMDBx
MCAtNDEgLTI5LjUgLTcwLjV0LTcwLjUgLTI5LjVoLTEwMDBxLTQxIDAgLTcwLjUgMjkuNXQtMjku
NSA3MC41ek02MDAgNTk2aDUwMHYxMDBoLTUwMHYtMTAwek04MDAgMTk2aDMwMHYxMDBoLTMwMHYt
MTAwek05MDAgOTk2aDIwMHYxMDBoLTIwMHYtMTAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hl
MTM4OyIgZD0iTTEwMCAxMTAwdjEwMGgxMDAwdi0xMDBoLTEwMDB6TTE1MCAxMDAwaDkwMGwtMzUw
IC01MDB2LTMwMGwtMjAwIC0yMDB2NTAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTM5OyIg
ZD0iTTAgMjAwdjIwMGgxMjAwdi0yMDBxMCAtNDEgLTI5LjUgLTcwLjV0LTcwLjUgLTI5LjVoLTEw
MDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41ek0wIDUwMHY0MDBxMCA0MSAyOS41IDcwLjV0
NzAuNSAyOS41aDMwMHYxMDBxMCA0MSAyOS41IDcwLjV0NzAuNSAyOS41aDIwMHE0MSAwIDcwLjUg
LTI5LjV0MjkuNSAtNzAuNXYtMTAwaDMwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtNDAw
aC01MDB2MTAwaC0yMDB2LTEwMGgtNTAweiBNNTAwIDEwMDBoMjAwdjEwMGgtMjAwdi0xMDB6IiAv
PgorPGdseXBoIHVuaWNvZGU9IiYjeGUxNDA7IiBkPSJNMCAwdjQwMGwxMjkgLTEyOWwyMDAgMjAw
bDE0MiAtMTQybC0yMDAgLTIwMGwxMjkgLTEyOWgtNDAwek0wIDgwMGwxMjkgMTI5bDIwMCAtMjAw
bDE0MiAxNDJsLTIwMCAyMDBsMTI5IDEyOWgtNDAwdi00MDB6TTcyOSAzMjlsMTQyIDE0MmwyMDAg
LTIwMGwxMjkgMTI5di00MDBoLTQwMGwxMjkgMTI5ek03MjkgODcxbDIwMCAyMDBsLTEyOSAxMjlo
NDAwdi00MDBsLTEyOSAxMjlsLTIwMCAtMjAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTQx
OyIgZD0iTTAgNTk2cTAgMTYyIDgwIDI5OXQyMTcgMjE3dDI5OSA4MHQyOTkgLTgwdDIxNyAtMjE3
dDgwIC0yOTl0LTgwIC0yOTl0LTIxNyAtMjE3dC0yOTkgLTgwdC0yOTkgODB0LTIxNyAyMTd0LTgw
IDI5OXpNMTgyIDU5NnEwIC0xNzIgMTIxLjUgLTI5M3QyOTIuNSAtMTIxdDI5Mi41IDEyMXQxMjEu
NSAyOTNxMCAxNzEgLTEyMS41IDI5Mi41dC0yOTIuNSAxMjEuNXQtMjkyLjUgLTEyMS41dC0xMjEu
NSAtMjkyLjV6TTI5MSA2NTUgcTAgMjMgMTUuNSAzOC41dDM4LjUgMTUuNXQzOSAtMTZ0MTYgLTM4
cTAgLTIzIC0xNiAtMzl0LTM5IC0xNnEtMjIgMCAtMzggMTZ0LTE2IDM5ek00MDAgODUwcTAgMjIg
MTYgMzguNXQzOSAxNi41cTIyIDAgMzggLTE2dDE2IC0zOXQtMTYgLTM5dC0zOCAtMTZxLTIzIDAg
LTM5IDE2LjV0LTE2IDM4LjV6TTUxNCA2MDlxMCAzMiAyMC41IDU2LjV0NTEuNSAyOS41bDEyMiAx
MjZsMSAxcS05IDE0IC05IDI4cTAgMjIgMTYgMzguNXQzOSAxNi41IHEyMiAwIDM4IC0xNnQxNiAt
Mzl0LTE2IC0zOXQtMzggLTE2cS0xNCAwIC0yOSAxMGwtNTUgLTE0NXExNyAtMjIgMTcgLTUxcTAg
LTM2IC0yNS41IC02MS41dC02MS41IC0yNS41dC02MS41IDI1LjV0LTI1LjUgNjEuNXpNODAwIDY1
NXEwIDIyIDE2IDM4dDM5IDE2dDM4LjUgLTE1LjV0MTUuNSAtMzguNXQtMTYgLTM5dC0zOCAtMTZx
LTIzIDAgLTM5IDE2dC0xNiAzOXoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE0MjsiIGQ9Ik0t
NDAgMzc1cS0xMyAtOTUgMzUgLTE3M3EzNSAtNTcgOTQgLTg5dDEyOSAtMzJxNjMgMCAxMTkgMjhx
MzMgMTYgNjUgNDAuNXQ1Mi41IDQ1LjV0NTkuNSA2NHE0MCA0NCA1NyA2MWwzOTQgMzk0cTM1IDM1
IDQ3IDg0dC0zIDk2cS0yNyA4NyAtMTE3IDEwNHEtMjAgMiAtMjkgMnEtNDYgMCAtNzguNSAtMTYu
NXQtNjcuNSAtNTEuNWwtMzg5IC0zOTZsLTcgLTdsNjkgLTY3bDM3NyAzNzNxMjAgMjIgMzkgMzhx
MjMgMjMgNTAgMjMgcTM4IDAgNTMgLTM2cTE2IC0zOSAtMjAgLTc1bC01NDcgLTU0N3EtNTIgLTUy
IC0xMjUgLTUycS01NSAwIC0xMDAgMzN0LTU0IDk2cS01IDM1IDIuNSA2NnQzMS41IDYzdDQyIDUw
dDU2IDU0cTI0IDIxIDQ0IDQxbDM0OCAzNDhxNTIgNTIgODIuNSA3OS41dDg0IDU0dDEwNy41IDI2
LjVxMjUgMCA0OCAtNHE5NSAtMTcgMTU0IC05NC41dDUxIC0xNzUuNXEtNyAtMTAxIC05OCAtMTky
bC0yNTIgLTI0OWwtMjUzIC0yNTZsNyAtN2w2OSAtNjAgbDUxNyA1MTFxNjcgNjcgOTUgMTU3dDEx
IDE4M3EtMTYgODcgLTY3IDE1NHQtMTMwIDEwM3EtNjkgMzMgLTE1MiAzM3EtMTA3IDAgLTE5NyAt
NTVxLTQwIC0yNCAtMTExIC05NWwtNTEyIC01MTJxLTY4IC02OCAtODEgLTE2M3oiIC8+Cis8Z2x5
cGggdW5pY29kZT0iJiN4ZTE0MzsiIGQ9Ik04MCA3ODRxMCAxMzEgOTguNSAyMjkuNXQyMzAuNSA5
OC41cTE0MyAwIDI0MSAtMTI5cTEwMyAxMjkgMjQ2IDEyOXExMjkgMCAyMjYgLTk4LjV0OTcgLTIy
OS41cTAgLTQ2IC0xNy41IC05MXQtNjEgLTk5dC03NyAtODkuNXQtMTA0LjUgLTEwNS41cS0xOTcg
LTE5MSAtMjkzIC0zMjJsLTE3IC0yM2wtMTYgMjNxLTQzIDU4IC0xMDAgMTIyLjV0LTkyIDk5LjV0
LTEwMSAxMDBxLTcxIDcwIC0xMDQuNSAxMDUuNXQtNzcgODkuNXQtNjEgOTkgdC0xNy41IDkxek0y
NTAgNzg0cTAgLTI3IDMwLjUgLTcwdDYxLjUgLTc1LjV0OTUgLTk0LjVsMjIgLTIycTkzIC05MCAx
OTAgLTIwMXE4MiA5MiAxOTUgMjAzbDEyIDEycTY0IDYyIDk3LjUgOTd0NjQuNSA3OXQzMSA3MnEw
IDcxIC00OCAxMTkuNXQtMTA1IDQ4LjVxLTc0IDAgLTEzMiAtODNsLTExOCAtMTcxbC0xMTQgMTc0
cS01MSA4MCAtMTIzIDgwcS02MCAwIC0xMDkuNSAtNDkuNXQtNDkuNSAtMTE4LjV6IiAvPgorPGds
eXBoIHVuaWNvZGU9IiYjeGUxNDQ7IiBkPSJNNTcgMzUzcTAgLTk1IDY2IC0xNTlsMTQxIC0xNDJx
NjggLTY2IDE1OSAtNjZxOTMgMCAxNTkgNjZsMjgzIDI4M3E2NiA2NiA2NiAxNTl0LTY2IDE1OWwt
MTQxIDE0MXEtOCA5IC0xOSAxN2wtMTA1IC0xMDVsMjEyIC0yMTJsLTM4OSAtMzg5bC0yNDcgMjQ4
bDk1IDk1bC0xOCAxOHEtNDYgNDUgLTc1IDEwMWwtNTUgLTU1cS02NiAtNjYgLTY2IC0xNTl6TTI2
OSA3MDZxMCAtOTMgNjYgLTE1OWwxNDEgLTE0MXE3IC03IDE5IC0xN2wxMDUgMTA1IGwtMjEyIDIx
MmwzODkgMzg5bDI0NyAtMjQ3bC05NSAtOTZsMTggLTE3cTQ3IC00OSA3NyAtMTAwbDI5IDI5cTM1
IDM1IDYyLjUgODh0MjcuNSA5NnEwIDkzIC02NiAxNTlsLTE0MSAxNDFxLTY2IDY2IC0xNTkgNjZx
LTk1IDAgLTE1OSAtNjZsLTI4MyAtMjgzcS02NiAtNjQgLTY2IC0xNTl6IiAvPgorPGdseXBoIHVu
aWNvZGU9IiYjeGUxNDU7IiBkPSJNMjAwIDEwMHY5NTNxMCAyMSAzMCA0NnQ4MSA0OHQxMjkgMzh0
MTYzIDE1dDE2MiAtMTV0MTI3IC0zOHQ3OSAtNDh0MjkgLTQ2di05NTNxMCAtNDEgLTI5LjUgLTcw
LjV0LTcwLjUgLTI5LjVoLTYwMHEtNDEgMCAtNzAuNSAyOS41dC0yOS41IDcwLjV6TTMwMCAzMDBo
NjAwdjcwMGgtNjAwdi03MDB6TTQ5NiAxNTBxMCAtNDMgMzAuNSAtNzMuNXQ3My41IC0zMC41dDcz
LjUgMzAuNXQzMC41IDczLjV0LTMwLjUgNzMuNXQtNzMuNSAzMC41IHQtNzMuNSAtMzAuNXQtMzAu
NSAtNzMuNXoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE0NjsiIGQ9Ik0wIDBsMzAzIDM4MGwy
MDcgMjA4bC0yMTAgMjEyaDMwMGwyNjcgMjc5bC0zNSAzNnEtMTUgMTQgLTE1IDM1dDE1IDM1cTE0
IDE1IDM1IDE1dDM1IC0xNWwyODMgLTI4MnExNSAtMTUgMTUgLTM2dC0xNSAtMzVxLTE0IC0xNSAt
MzUgLTE1dC0zNSAxNWwtMzYgMzVsLTI3OSAtMjY3di0zMDBsLTIxMiAyMTBsLTIwOCAtMjA3eiIg
Lz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTQ4OyIgZD0iTTI5NSA0MzNoMTM5cTUgLTc3IDQ4LjUg
LTEyNi41dDExNy41IC02NC41djMzNXEtNiAxIC0xNS41IDR0LTExLjUgM3EtNDYgMTQgLTc5IDI2
LjV0LTcyIDM2dC02Mi41IDUydC00MCA3Mi41dC0xNi41IDk5cTAgOTIgNDQgMTU5LjV0MTA5IDEw
MXQxNDQgNDAuNXY3OGgxMDB2LTc5cTM4IC00IDcyLjUgLTEzLjV0NzUuNSAtMzEuNXQ3MSAtNTMu
NXQ1MS41IC04NHQyNC41IC0xMTguNWgtMTU5cS04IDcyIC0zNSAxMDkuNXQtMTAxIDUwLjUgdi0z
MDdsNjQgLTE0cTM0IC03IDY0IC0xNi41dDcwIC0zMS41dDY3LjUgLTUydDQ3LjUgLTgwLjV0MjAg
LTExMi41cTAgLTEzOSAtODkgLTIyNHQtMjQ0IC05NnYtNzdoLTEwMHY3OHEtMTUyIDE3IC0yMzcg
MTA0cS00MCA0MCAtNTIuNSA5My41dC0xNS41IDEzOS41ek00NjYgODg5cTAgLTI5IDggLTUxdDE2
LjUgLTM0dDI5LjUgLTIyLjV0MzEgLTEzLjV0MzggLTEwcTcgLTIgMTEgLTN2Mjc0cS02MSAtOCAt
OTcuNSAtMzcuNXQtMzYuNSAtMTAyLjUgek03MDAgMjM3cTE3MCAxOCAxNzAgMTUxcTAgNjQgLTQ0
IDk5LjV0LTEyNiA2MC41di0zMTF6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUxNDk7IiBkPSJN
MTAwIDYwMHYxMDBoMTY2cS0yNCA0OSAtNDQgMTA0cS0xMCAyNiAtMTQuNSA1NS41dC0zIDcyLjV0
MjUgOTB0NjguNSA4N3E5NyA4OCAyNjMgODhxMTI5IDAgMjMwIC04OXQxMDEgLTIwOGgtMTUzcTAg
NTIgLTM0IDg5LjV0LTc0IDUxLjV0LTc2IDE0cS0zNyAwIC03OSAtMTQuNXQtNjIgLTM1LjVxLTQx
IC00NCAtNDEgLTEwMXEwIC0yOCAxNi41IC02OS41dDI4IC02Mi41dDQxLjUgLTcyaDI0MXYtMTAw
aC0xOTdxOCAtNTAgLTIuNSAtMTE1IHQtMzEuNSAtOTRxLTQxIC01OSAtOTkgLTExM3EzNSAxMSA4
NCAxOHQ3MCA3cTMzIDEgMTAzIC0xNnQxMDMgLTE3cTc2IDAgMTM2IDMwbDUwIC0xNDdxLTQxIC0y
NSAtODAuNSAtMzYuNXQtNTkgLTEzdC02MS41IC0xLjVxLTIzIDAgLTEyOCAzM3QtMTU1IDI5cS0z
OSAtNCAtODIgLTE3dC02NiAtMjVsLTI0IC0xMWwtNTUgMTQ1bDE2LjUgMTF0MTUuNSAxMHQxMy41
IDkuNXQxNC41IDEydDE0LjUgMTR0MTcuNSAxOC41cTQ4IDU1IDU0IDEyNi41IHQtMzAgMTQyLjVo
LTIyMXoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE1MDsiIGQ9Ik0yIDMwMGwyOTggLTMwMGwy
OTggMzAwaC0xOTh2OTAwaC0yMDB2LTkwMGgtMTk4ek02MDIgOTAwbDI5OCAzMDBsMjk4IC0zMDBo
LTE5OHYtOTAwaC0yMDB2OTAwaC0xOTh6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUxNTE7IiBk
PSJNMiAzMDBoMTk4djkwMGgyMDB2LTkwMGgxOThsLTI5OCAtMzAwek03MDAgMHYyMDBoMTAwdi0x
MDBoMjAwdi0xMDBoLTMwMHpNNzAwIDQwMHYxMDBoMzAwdi0yMDBoLTk5di0xMDBoLTEwMHYxMDBo
OTl2MTAwaC0yMDB6TTcwMCA3MDB2NTAwaDMwMHYtNTAwaC0xMDB2MTAwaC0xMDB2LTEwMGgtMTAw
ek04MDEgOTAwaDEwMHYyMDBoLTEwMHYtMjAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTUy
OyIgZD0iTTIgMzAwaDE5OHY5MDBoMjAwdi05MDBoMTk4bC0yOTggLTMwMHpNNzAwIDB2NTAwaDMw
MHYtNTAwaC0xMDB2MTAwaC0xMDB2LTEwMGgtMTAwek03MDAgNzAwdjIwMGgxMDB2LTEwMGgyMDB2
LTEwMGgtMzAwek03MDAgMTEwMHYxMDBoMzAwdi0yMDBoLTk5di0xMDBoLTEwMHYxMDBoOTl2MTAw
aC0yMDB6TTgwMSAyMDBoMTAwdjIwMGgtMTAwdi0yMDB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYj
eGUxNTM7IiBkPSJNMiAzMDBsMjk4IC0zMDBsMjk4IDMwMGgtMTk4djkwMGgtMjAwdi05MDBoLTE5
OHpNODAwIDEwMHY0MDBoMzAwdi01MDBoLTEwMHYxMDBoLTIwMHpNODAwIDExMDB2MTAwaDIwMHYt
NTAwaC0xMDB2NDAwaC0xMDB6TTkwMSAyMDBoMTAwdjIwMGgtMTAwdi0yMDB6IiAvPgorPGdseXBo
IHVuaWNvZGU9IiYjeGUxNTQ7IiBkPSJNMiAzMDBsMjk4IC0zMDBsMjk4IDMwMGgtMTk4djkwMGgt
MjAwdi05MDBoLTE5OHpNODAwIDQwMHYxMDBoMjAwdi01MDBoLTEwMHY0MDBoLTEwMHpNODAwIDgw
MHY0MDBoMzAwdi01MDBoLTEwMHYxMDBoLTIwMHpNOTAxIDkwMGgxMDB2MjAwaC0xMDB2LTIwMHoi
IC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE1NTsiIGQ9Ik0yIDMwMGwyOTggLTMwMGwyOTggMzAw
aC0xOTh2OTAwaC0yMDB2LTkwMGgtMTk4ek03MDAgMTAwdjIwMGg1MDB2LTIwMGgtNTAwek03MDAg
NDAwdjIwMGg0MDB2LTIwMGgtNDAwek03MDAgNzAwdjIwMGgzMDB2LTIwMGgtMzAwek03MDAgMTAw
MHYyMDBoMjAwdi0yMDBoLTIwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE1NjsiIGQ9Ik0y
IDMwMGwyOTggLTMwMGwyOTggMzAwaC0xOTh2OTAwaC0yMDB2LTkwMGgtMTk4ek03MDAgMTAwdjIw
MGgyMDB2LTIwMGgtMjAwek03MDAgNDAwdjIwMGgzMDB2LTIwMGgtMzAwek03MDAgNzAwdjIwMGg0
MDB2LTIwMGgtNDAwek03MDAgMTAwMHYyMDBoNTAwdi0yMDBoLTUwMHoiIC8+Cis8Z2x5cGggdW5p
Y29kZT0iJiN4ZTE1NzsiIGQ9Ik0wIDQwMHYzMDBxMCAxNjUgMTE3LjUgMjgyLjV0MjgyLjUgMTE3
LjVoMzAwcTE2MiAwIDI4MSAtMTE4LjV0MTE5IC0yODEuNXYtMzAwcTAgLTE2NSAtMTE4LjUgLTI4
Mi41dC0yODEuNSAtMTE3LjVoLTMwMHEtMTY1IDAgLTI4Mi41IDExNy41dC0xMTcuNSAyODIuNXpN
MjAwIDMwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNTAwcTQxIDAgNzAuNSAyOS41dDI5
LjUgNzAuNXY1MDBxMCA0MSAtMjkuNSA3MC41dC03MC41IDI5LjUgaC01MDBxLTQxIDAgLTcwLjUg
LTI5LjV0LTI5LjUgLTcwLjV2LTUwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE1ODsiIGQ9
Ik0wIDQwMHYzMDBxMCAxNjMgMTE5IDI4MS41dDI4MSAxMTguNWgzMDBxMTY1IDAgMjgyLjUgLTEx
Ny41dDExNy41IC0yODIuNXYtMzAwcTAgLTE2NSAtMTE3LjUgLTI4Mi41dC0yODIuNSAtMTE3LjVo
LTMwMHEtMTYzIDAgLTI4MS41IDExNy41dC0xMTguNSAyODIuNXpNMjAwIDMwMHEwIC00MSAyOS41
IC03MC41dDcwLjUgLTI5LjVoNTAwcTQxIDAgNzAuNSAyOS41dDI5LjUgNzAuNXY1MDBxMCA0MSAt
MjkuNSA3MC41dC03MC41IDI5LjUgaC01MDBxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2
LTUwMHpNNDAwIDMwMGwzMzMgMjUwbC0zMzMgMjUwdi01MDB6IiAvPgorPGdseXBoIHVuaWNvZGU9
IiYjeGUxNTk7IiBkPSJNMCA0MDB2MzAwcTAgMTYzIDExNy41IDI4MS41dDI4Mi41IDExOC41aDMw
MHExNjMgMCAyODEuNSAtMTE5dDExOC41IC0yODF2LTMwMHEwIC0xNjUgLTExNy41IC0yODIuNXQt
MjgyLjUgLTExNy41aC0zMDBxLTE2NSAwIC0yODIuNSAxMTcuNXQtMTE3LjUgMjgyLjV6TTIwMCAz
MDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDUwMHE0MSAwIDcwLjUgMjkuNXQyOS41IDcw
LjV2NTAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41IGgtNTAwcS00MSAwIC03MC41IC0yOS41
dC0yOS41IC03MC41di01MDB6TTMwMCA3MDBsMjUwIC0zMzNsMjUwIDMzM2gtNTAweiIgLz4KKzxn
bHlwaCB1bmljb2RlPSImI3hlMTYwOyIgZD0iTTAgNDAwdjMwMHEwIDE2NSAxMTcuNSAyODIuNXQy
ODIuNSAxMTcuNWgzMDBxMTY1IDAgMjgyLjUgLTExNy41dDExNy41IC0yODIuNXYtMzAwcTAgLTE2
MiAtMTE4LjUgLTI4MXQtMjgxLjUgLTExOWgtMzAwcS0xNjUgMCAtMjgyLjUgMTE4LjV0LTExNy41
IDI4MS41ek0yMDAgMzAwcTAgLTQxIDI5LjUgLTcwLjV0NzAuNSAtMjkuNWg1MDBxNDEgMCA3MC41
IDI5LjV0MjkuNSA3MC41djUwMHEwIDQxIC0yOS41IDcwLjV0LTcwLjUgMjkuNSBoLTUwMHEtNDEg
MCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtNTAwek0zMDAgNDAwaDUwMGwtMjUwIDMzM3oiIC8+
Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE2MTsiIGQ9Ik0wIDQwMHYzMDBoMzAwdjIwMGw0MDAgLTM1
MGwtNDAwIC0zNTB2MjAwaC0zMDB6TTUwMCAwdjIwMGg1MDBxNDEgMCA3MC41IDI5LjV0MjkuNSA3
MC41djUwMHEwIDQxIC0yOS41IDcwLjV0LTcwLjUgMjkuNWgtNTAwdjIwMGg0MDBxMTY1IDAgMjgy
LjUgLTExNy41dDExNy41IC0yODIuNXYtMzAwcTAgLTE2NSAtMTE3LjUgLTI4Mi41dC0yODIuNSAt
MTE3LjVoLTQwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE2MjsiIGQ9Ik0yMTcgNTE5cTgg
LTE5IDMxIC0xOWgzMDJxLTE1NSAtNDM4IC0xNjAgLTQ1OHEtNSAtMjEgNCAtMzJsOSAtOGg5cTE0
IDAgMjYgMTVxMTEgMTMgMjc0LjUgMzIxLjV0MjY0LjUgMzA4LjVxMTQgMTkgNSAzNnEtOCAxNyAt
MzEgMTdsLTMwMSAtMXExIDQgNzggMjE5LjV0NzkgMjI3LjVxMiAxNSAtNSAyN2wtOSA5aC05cS0x
NSAwIC0yNSAtMTZxLTQgLTYgLTk4IC0xMTEuNXQtMjI4LjUgLTI1N3QtMjA5LjUgLTIzNy41cS0x
NiAtMTkgLTYgLTQxIHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE2MzsiIGQ9Ik0wIDQwMHEw
IC0xNjUgMTE3LjUgLTI4Mi41dDI4Mi41IC0xMTcuNWgzMDBxNDcgMCAxMDAgMTV2MTg1aC01MDBx
LTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djUwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjVo
NTAwdjE4NXEtMTQgNCAtMTE0IDcuNXQtMTkzIDUuNWwtOTMgMnEtMTY1IDAgLTI4Mi41IC0xMTcu
NXQtMTE3LjUgLTI4Mi41di0zMDB6TTYwMCA0MDB2MzAwaDMwMHYyMDBsNDAwIC0zNTBsLTQwMCAt
MzUwdjIwMGgtMzAweiAiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE2NDsiIGQ9Ik0wIDQwMHEw
IC0xNjUgMTE3LjUgLTI4Mi41dDI4Mi41IC0xMTcuNWgzMDBxMTYzIDAgMjgxLjUgMTE3LjV0MTE4
LjUgMjgyLjV2OThsLTc4IDczbC0xMjIgLTEyM3YtMTQ4cTAgLTQxIC0yOS41IC03MC41dC03MC41
IC0yOS41aC01MDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djUwMHEwIDQxIDI5LjUgNzAu
NXQ3MC41IDI5LjVoMTU2bDExOCAxMjJsLTc0IDc4aC0xMDBxLTE2NSAwIC0yODIuNSAtMTE3LjV0
LTExNy41IC0yODIuNSB2LTMwMHpNNDk2IDcwOWwzNTMgMzQybC0xNDkgMTQ5aDUwMHYtNTAwbC0x
NDkgMTQ5bC0zNDIgLTM1M3oiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE2NTsiIGQ9Ik00IDYw
MHEwIDE2MiA4MCAyOTl0MjE3IDIxN3QyOTkgODB0Mjk5IC04MHQyMTcgLTIxN3Q4MCAtMjk5dC04
MCAtMjk5dC0yMTcgLTIxN3QtMjk5IC04MHQtMjk5IDgwdC0yMTcgMjE3dC04MCAyOTl6TTE4NiA2
MDBxMCAtMTcxIDEyMS41IC0yOTIuNXQyOTIuNSAtMTIxLjV0MjkyLjUgMTIxLjV0MTIxLjUgMjky
LjV0LTEyMS41IDI5Mi41dC0yOTIuNSAxMjEuNXQtMjkyLjUgLTEyMS41dC0xMjEuNSAtMjkyLjV6
TTQwNiA2MDAgcTAgODAgNTcgMTM3dDEzNyA1N3QxMzcgLTU3dDU3IC0xMzd0LTU3IC0xMzd0LTEz
NyAtNTd0LTEzNyA1N3QtNTcgMTM3eiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTY2OyIgZD0i
TTAgMHYyNzVxMCAxMSA3IDE4dDE4IDdoMTA0OHExMSAwIDE5IC03LjV0OCAtMTcuNXYtMjc1aC0x
MTAwek0xMDAgODAwbDQ0NSAtNTAwbDQ1MCA1MDBoLTI5NXY0MDBoLTMwMHYtNDAwaC0zMDB6TTkw
MCAxNTBoMTAwdjUwaC0xMDB2LTUweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTY3OyIgZD0i
TTAgMHYyNzVxMCAxMSA3IDE4dDE4IDdoMTA0OHExMSAwIDE5IC03LjV0OCAtMTcuNXYtMjc1aC0x
MTAwek0xMDAgNzAwaDMwMHYtMzAwaDMwMHYzMDBoMjk1bC00NDUgNTAwek05MDAgMTUwaDEwMHY1
MGgtMTAwdi01MHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE2ODsiIGQ9Ik0wIDB2Mjc1cTAg
MTEgNyAxOHQxOCA3aDEwNDhxMTEgMCAxOSAtNy41dDggLTE3LjV2LTI3NWgtMTEwMHpNMTAwIDcw
NWwzMDUgLTMwNWw1OTYgNTk2bC0xNTQgMTU1bC00NDIgLTQ0MmwtMTUwIDE1MXpNOTAwIDE1MGgx
MDB2NTBoLTEwMHYtNTB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUxNjk7IiBkPSJNMCAwdjI3
NXEwIDExIDcgMTh0MTggN2gxMDQ4cTExIDAgMTkgLTcuNXQ4IC0xNy41di0yNzVoLTExMDB6TTEw
MCA5ODhsOTcgLTk4bDIxMiAyMTNsLTk3IDk3ek0yMDAgNDAwbDY5NyAxbDMgNjk5bC0yNTAgLTIz
OWwtMTQ5IDE0OWwtMjEyIC0yMTJsMTQ5IC0xNDl6TTkwMCAxNTBoMTAwdjUwaC0xMDB2LTUweiIg
Lz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTcwOyIgZD0iTTAgMHYyNzVxMCAxMSA3IDE4dDE4IDdo
MTA0OHExMSAwIDE5IC03LjV0OCAtMTcuNXYtMjc1aC0xMTAwek0yMDAgNjEybDIxMiAtMjEybDk4
IDk3bC0yMTMgMjEyek0zMDAgMTIwMGwyMzkgLTI1MGwtMTQ5IC0xNDlsMjEyIC0yMTJsMTQ5IDE0
OGwyNDkgLTIzN2wtMSA2OTd6TTkwMCAxNTBoMTAwdjUwaC0xMDB2LTUweiIgLz4KKzxnbHlwaCB1
bmljb2RlPSImI3hlMTcxOyIgZD0iTTIzIDQxNWwxMTc3IDc4NHYtMTA3OWwtNDc1IDI3MmwtMzEw
IC0zOTN2NDE2aC0zOTJ6TTQ5NCAyMTBsNjcyIDkzOGwtNjcyIC03MTJ2LTIyNnoiIC8+Cis8Z2x5
cGggdW5pY29kZT0iJiN4ZTE3MjsiIGQ9Ik0wIDE1MHYxMDAwcTAgMjAgMTQuNSAzNXQzNS41IDE1
aDI1MHYtMzAwaDUwMHYzMDBoMTAwbDIwMCAtMjAwdi04NTBxMCAtMjEgLTE1IC0zNS41dC0zNSAt
MTQuNWgtMTUwdjQwMGgtNzAwdi00MDBoLTE1MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV6
TTYwMCAxMDAwaDEwMHYyMDBoLTEwMHYtMjAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTcz
OyIgZD0iTTAgMTUwdjEwMDBxMCAyMCAxNC41IDM1dDM1LjUgMTVoMjUwdi0zMDBoNTAwdjMwMGgx
MDBsMjAwIC0yMDB2LTIxOGwtMjc2IC0yNzVsLTEyMCAxMjBsLTEyNiAtMTI3aC0zNzh2LTQwMGgt
MTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXpNNTgxIDMwNmwxMjMgMTIzbDEyMCAtMTIw
bDM1MyAzNTJsMTIzIC0xMjNsLTQ3NSAtNDc2ek02MDAgMTAwMGgxMDB2MjAwaC0xMDB2LTIwMHoi
IC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE3NDsiIGQ9Ik0wIDE1MHYxMDAwcTAgMjAgMTQuNSAz
NXQzNS41IDE1aDI1MHYtMzAwaDUwMHYzMDBoMTAwbDIwMCAtMjAwdi0yNjlsLTEwMyAtMTAzbC0x
NzAgMTcwbC0yOTggLTI5OGgtMzI5di00MDBoLTE1MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1
LjV6TTYwMCAxMDAwaDEwMHYyMDBoLTEwMHYtMjAwek03MDAgMTMzbDE3MCAxNzBsLTE3MCAxNzBs
MTI3IDEyN2wxNzAgLTE3MGwxNzAgMTcwbDEyNyAtMTI4bC0xNzAgLTE2OWwxNzAgLTE3MCBsLTEy
NyAtMTI3bC0xNzAgMTcwbC0xNzAgLTE3MHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE3NTsi
IGQ9Ik0wIDE1MHYxMDAwcTAgMjAgMTQuNSAzNXQzNS41IDE1aDI1MHYtMzAwaDUwMHYzMDBoMTAw
bDIwMCAtMjAwdi0zMDBoLTQwMHYtMjAwaC01MDB2LTQwMGgtMTUwcS0yMSAwIC0zNS41IDE0LjV0
LTE0LjUgMzUuNXpNNjAwIDMwMGwzMDAgLTMwMGwzMDAgMzAwaC0yMDB2MzAwaC0yMDB2LTMwMGgt
MjAwek02MDAgMTAwMHYyMDBoMTAwdi0yMDBoLTEwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4
ZTE3NjsiIGQ9Ik0wIDE1MHYxMDAwcTAgMjAgMTQuNSAzNXQzNS41IDE1aDI1MHYtMzAwaDUwMHYz
MDBoMTAwbDIwMCAtMjAwdi00MDJsLTIwMCAyMDBsLTI5OCAtMjk4aC00MDJ2LTQwMGgtMTUwcS0y
MSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXpNNjAwIDMwMGgyMDB2LTMwMGgyMDB2MzAwaDIwMGwt
MzAwIDMwMHpNNjAwIDEwMDB2MjAwaDEwMHYtMjAwaC0xMDB6IiAvPgorPGdseXBoIHVuaWNvZGU9
IiYjeGUxNzc7IiBkPSJNMCAyNTBxMCAtMjEgMTQuNSAtMzUuNXQzNS41IC0xNC41aDExMDBxMjEg
MCAzNS41IDE0LjV0MTQuNSAzNS41djU1MGgtMTIwMHYtNTUwek0wIDkwMGgxMjAwdjE1MHEwIDIx
IC0xNC41IDM1LjV0LTM1LjUgMTQuNWgtMTEwMHEtMjEgMCAtMzUuNSAtMTQuNXQtMTQuNSAtMzUu
NXYtMTUwek0xMDAgMzAwdjIwMGg0MDB2LTIwMGgtNDAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSIm
I3hlMTc4OyIgZD0iTTAgNDAwbDMwMCAyOTh2LTE5OGg0MDB2LTIwMGgtNDAwdi0xOTh6TTEwMCA4
MDB2MjAwaDEwMHYtMjAwaC0xMDB6TTMwMCA4MDB2MjAwaDEwMHYtMjAwaC0xMDB6TTUwMCA4MDB2
MjAwaDQwMHYxOThsMzAwIC0yOThsLTMwMCAtMjk4djE5OGgtNDAwek04MDAgMzAwdjIwMGgxMDB2
LTIwMGgtMTAwek0xMDAwIDMwMGgxMDB2MjAwaC0xMDB2LTIwMHoiIC8+Cis8Z2x5cGggdW5pY29k
ZT0iJiN4ZTE3OTsiIGQ9Ik0xMDAgNzAwdjQwMGw1MCAxMDBsNTAgLTEwMHYtMzAwaDEwMHYzMDBs
NTAgMTAwbDUwIC0xMDB2LTMwMGgxMDB2MzAwbDUwIDEwMGw1MCAtMTAwdi00MDBsLTEwMCAtMjAz
di00NDdxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41
dC0xNC41IDM1LjV2NDQ3ek04MDAgNTk3cTAgLTI5IDEwLjUgLTU1LjV0MjUgLTQzdDI5IC0yOC41
dDI1LjUgLTE4bDEwIC01di0zOTdxMCAtMjEgMTQuNSAtMzUuNSB0MzUuNSAtMTQuNWgyMDBxMjEg
MCAzNS41IDE0LjV0MTQuNSAzNS41djExMDZxMCAzMSAtMTggNDAuNXQtNDQgLTcuNWwtMjc2IC0x
MTZxLTI1IC0xNyAtNDMuNSAtNTEuNXQtMTguNSAtNjUuNXYtMzU5eiIgLz4KKzxnbHlwaCB1bmlj
b2RlPSImI3hlMTgwOyIgZD0iTTEwMCAwaDQwMHY1NnEtNzUgMCAtODcuNSA2dC0xMi41IDQ0djM5
NGg1MDB2LTM5NHEwIC0zOCAtMTIuNSAtNDR0LTg3LjUgLTZ2LTU2aDQwMHY1NnEtNCAwIC0xMSAw
LjV0LTI0IDN0LTMwIDd0LTI0IDE1dC0xMSAyNC41djg4OHEwIDIyIDI1IDM0LjV0NTAgMTMuNWwy
NSAydjU2aC00MDB2LTU2cTc1IDAgODcuNSAtNnQxMi41IC00NHYtMzk0aC01MDB2Mzk0cTAgMzgg
MTIuNSA0NHQ4Ny41IDZ2NTZoLTQwMHYtNTZxNCAwIDExIC0wLjUgdDI0IC0zdDMwIC03dDI0IC0x
NXQxMSAtMjQuNXYtODg4cTAgLTIyIC0yNSAtMzQuNXQtNTAgLTEzLjVsLTI1IC0ydi01NnoiIC8+
Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE4MTsiIGQ9Ik0wIDMwMHEwIC00MSAyOS41IC03MC41dDcw
LjUgLTI5LjVoMzAwcTQxIDAgNzAuNSAyOS41dDI5LjUgNzAuNXY1MDBxMCA0MSAtMjkuNSA3MC41
dC03MC41IDI5LjVoLTMwMHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtNTAwek0xMDAg
MTAwaDQwMGwyMDAgMjAwaDEwNWwyOTUgOTh2LTI5OGgtNDI1bC0xMDAgLTEwMGgtMzc1ek0xMDAg
MzAwdjIwMGgzMDB2LTIwMGgtMzAwek0xMDAgNjAwdjIwMGgzMDB2LTIwMGgtMzAweiBNMTAwIDEw
MDBoNDAwbDIwMCAtMjAwdi05OGwyOTUgOThoMTA1djIwMGgtNDI1bC0xMDAgMTAwaC0zNzV6TTcw
MCA0MDJ2MTYzbDQwMCAxMzN2LTE2M3oiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE4MjsiIGQ9
Ik0xNi41IDk3NC41cTAuNSAtMjEuNSAxNiAtOTB0NDYuNSAtMTQwdDEwNCAtMTc3LjV0MTc1IC0y
MDhxMTAzIC0xMDMgMjA3LjUgLTE3NnQxODAgLTEwMy41dDEzNyAtNDd0OTIuNSAtMTYuNWwzMSAx
bDE2MyAxNjJxMTcgMTggMTMuNSA0MXQtMjIuNSAzN2wtMTkyIDEzNnEtMTkgMTQgLTQ1IDEydC00
MiAtMTlsLTExOCAtMTE4cS0xNDIgMTAxIC0yNjggMjI3dC0yMjcgMjY4bDExOCAxMThxMTcgMTcg
MjAgNDEuNXQtMTEgNDQuNSBsLTEzOSAxOTRxLTE0IDE5IC0zNi41IDIydC00MC41IC0xNGwtMTYy
IC0xNjJxLTEgLTExIC0wLjUgLTMyLjV6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUxODM7IiBk
PSJNMCA1MHYyMTJxMCAyMCAxMC41IDQ1LjV0MjQuNSAzOS41bDM2NSAzMDN2NTBxMCA0IDEgMTAu
NXQxMiAyMi41dDMwIDI4LjV0NjAgMjN0OTcgMTAuNXQ5NyAtMTB0NjAgLTIzLjV0MzAgLTI3LjV0
MTIgLTI0bDEgLTEwdi01MGwzNjUgLTMwM3ExNCAtMTQgMjQuNSAtMzkuNXQxMC41IC00NS41di0y
MTJxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTExMDBxLTIwIDAgLTM1IDE0LjV0LTE1
IDM1LjV6TTAgNzEyIHEwIC0yMSAxNC41IC0zMy41dDM0LjUgLTguNWwyMDIgMzNxMjAgNCAzNC41
IDIxdDE0LjUgMzh2MTQ2cTE0MSAyNCAzMDAgMjR0MzAwIC0yNHYtMTQ2cTAgLTIxIDE0LjUgLTM4
dDM0LjUgLTIxbDIwMiAtMzNxMjAgLTQgMzQuNSA4LjV0MTQuNSAzMy41djIwMHEtNiA4IC0xOSAy
MC41dC02MyA0NXQtMTEyIDU3dC0xNzEgNDV0LTIzNSAyMC41cS05MiAwIC0xNzUgLTEwLjV0LTE0
MS41IC0yN3QtMTA4LjUgLTM2LjV0LTgxLjUgLTQwIHQtNTMuNSAtMzYuNXQtMzEgLTI3LjVsLTkg
LTEwdi0yMDB6IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUxODQ7IiBkPSJNMTAwIDB2MTAwaDEx
MDB2LTEwMGgtMTEwMHpNMTc1IDIwMGg5NTBsLTEyNSAxNTB2MjUwbDEwMCAxMDB2NDAwaC0xMDB2
LTIwMGgtMTAwdjIwMGgtMjAwdi0yMDBoLTEwMHYyMDBoLTIwMHYtMjAwaC0xMDB2MjAwaC0xMDB2
LTQwMGwxMDAgLTEwMHYtMjUweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTg1OyIgZD0iTTEw
MCAwaDMwMHY0MDBxMCA0MSAtMjkuNSA3MC41dC03MC41IDI5LjVoLTEwMHEtNDEgMCAtNzAuNSAt
MjkuNXQtMjkuNSAtNzAuNXYtNDAwek01MDAgMHYxMDAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjku
NWgxMDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTEwMDBoLTMwMHpNOTAwIDB2NzAwcTAg
NDEgMjkuNSA3MC41dDcwLjUgMjkuNWgxMDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTcw
MGgtMzAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTg2OyIgZD0iTS0xMDAgMzAwdjUwMHEw
IDEyNCA4OCAyMTJ0MjEyIDg4aDcwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJ2LTUwMHEwIC0xMjQg
LTg4IC0yMTJ0LTIxMiAtODhoLTcwMHEtMTI0IDAgLTIxMiA4OHQtODggMjEyek0xMDAgMjAwaDkw
MHY3MDBoLTkwMHYtNzAwek0yMDAgMzAwaDMwMHYzMDBoLTIwMHYxMDBoMjAwdjEwMGgtMzAwdi0z
MDBoMjAwdi0xMDBoLTIwMHYtMTAwek02MDAgMzAwaDIwMHYxMDBoMTAwdjMwMGgtMTAwdjEwMGgt
MjAwdi01MDAgek03MDAgNDAwdjMwMGgxMDB2LTMwMGgtMTAweiIgLz4KKzxnbHlwaCB1bmljb2Rl
PSImI3hlMTg3OyIgZD0iTS0xMDAgMzAwdjUwMHEwIDEyNCA4OCAyMTJ0MjEyIDg4aDcwMHExMjQg
MCAyMTIgLTg4dDg4IC0yMTJ2LTUwMHEwIC0xMjQgLTg4IC0yMTJ0LTIxMiAtODhoLTcwMHEtMTI0
IDAgLTIxMiA4OHQtODggMjEyek0xMDAgMjAwaDkwMHY3MDBoLTkwMHYtNzAwek0yMDAgMzAwaDEw
MHYyMDBoMTAwdi0yMDBoMTAwdjUwMGgtMTAwdi0yMDBoLTEwMHYyMDBoLTEwMHYtNTAwek02MDAg
MzAwaDIwMHYxMDBoMTAwdjMwMGgtMTAwdjEwMGgtMjAwdi01MDAgek03MDAgNDAwdjMwMGgxMDB2
LTMwMGgtMTAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTg4OyIgZD0iTS0xMDAgMzAwdjUw
MHEwIDEyNCA4OCAyMTJ0MjEyIDg4aDcwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJ2LTUwMHEwIC0x
MjQgLTg4IC0yMTJ0LTIxMiAtODhoLTcwMHEtMTI0IDAgLTIxMiA4OHQtODggMjEyek0xMDAgMjAw
aDkwMHY3MDBoLTkwMHYtNzAwek0yMDAgMzAwaDMwMHYxMDBoLTIwMHYzMDBoMjAwdjEwMGgtMzAw
di01MDB6TTYwMCAzMDBoMzAwdjEwMGgtMjAwdjMwMGgyMDB2MTAwaC0zMDB2LTUwMHoiIC8+Cis8
Z2x5cGggdW5pY29kZT0iJiN4ZTE4OTsiIGQ9Ik0tMTAwIDMwMHY1MDBxMCAxMjQgODggMjEydDIx
MiA4OGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIg
LTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnpNMTAwIDIwMGg5MDB2NzAwaC05MDB2LTcw
MHpNMjAwIDU1MGwzMDAgLTE1MHYzMDB6TTYwMCA0MDBsMzAwIDE1MGwtMzAwIDE1MHYtMzAweiIg
Lz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTkwOyIgZD0iTS0xMDAgMzAwdjUwMHEwIDEyNCA4OCAy
MTJ0MjEyIDg4aDcwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJ2LTUwMHEwIC0xMjQgLTg4IC0yMTJ0
LTIxMiAtODhoLTcwMHEtMTI0IDAgLTIxMiA4OHQtODggMjEyek0xMDAgMjAwaDkwMHY3MDBoLTkw
MHYtNzAwek0yMDAgMzAwdjUwMGg3MDB2LTUwMGgtNzAwek0zMDAgNDAwaDEzMHE0MSAwIDY4IDQy
dDI3IDEwN3QtMjguNSAxMDh0LTY2LjUgNDNoLTEzMHYtMzAwek01NzUgNTQ5IHEwIC02NSAyNyAt
MTA3dDY4IC00MmgxMzB2MzAwaC0xMzBxLTM4IDAgLTY2LjUgLTQzdC0yOC41IC0xMDh6IiAvPgor
PGdseXBoIHVuaWNvZGU9IiYjeGUxOTE7IiBkPSJNLTEwMCAzMDB2NTAwcTAgMTI0IDg4IDIxMnQy
MTIgODhoNzAwcTEyNCAwIDIxMiAtODh0ODggLTIxMnYtNTAwcTAgLTEyNCAtODggLTIxMnQtMjEy
IC04OGgtNzAwcS0xMjQgMCAtMjEyIDg4dC04OCAyMTJ6TTEwMCAyMDBoOTAwdjcwMGgtOTAwdi03
MDB6TTIwMCAzMDBoMzAwdjMwMGgtMjAwdjEwMGgyMDB2MTAwaC0zMDB2LTMwMGgyMDB2LTEwMGgt
MjAwdi0xMDB6TTYwMSAzMDBoMTAwdjEwMGgtMTAwdi0xMDB6TTcwMCA3MDBoMTAwIHYtNDAwaDEw
MHY1MDBoLTIwMHYtMTAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTkyOyIgZD0iTS0xMDAg
MzAwdjUwMHEwIDEyNCA4OCAyMTJ0MjEyIDg4aDcwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJ2LTUw
MHEwIC0xMjQgLTg4IC0yMTJ0LTIxMiAtODhoLTcwMHEtMTI0IDAgLTIxMiA4OHQtODggMjEyek0x
MDAgMjAwaDkwMHY3MDBoLTkwMHYtNzAwek0yMDAgMzAwaDMwMHY0MDBoLTIwMHYxMDBoLTEwMHYt
NTAwek0zMDEgNDAwdjIwMGgxMDB2LTIwMGgtMTAwek02MDEgMzAwaDEwMHYxMDBoLTEwMHYtMTAw
ek03MDAgNzAwaDEwMCB2LTQwMGgxMDB2NTAwaC0yMDB2LTEwMHoiIC8+Cis8Z2x5cGggdW5pY29k
ZT0iJiN4ZTE5MzsiIGQ9Ik0tMTAwIDMwMHY1MDBxMCAxMjQgODggMjEydDIxMiA4OGg3MDBxMTI0
IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEy
NCAwIC0yMTIgODh0LTg4IDIxMnpNMTAwIDIwMGg5MDB2NzAwaC05MDB2LTcwMHpNMjAwIDcwMHYx
MDBoMzAwdi0zMDBoLTk5di0xMDBoLTEwMHYxMDBoOTl2MjAwaC0yMDB6TTIwMSAzMDB2MTAwaDEw
MHYtMTAwaC0xMDB6TTYwMSAzMDB2MTAwaDEwMHYtMTAwaC0xMDB6IE03MDAgNzAwdjEwMGgyMDB2
LTUwMGgtMTAwdjQwMGgtMTAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTk0OyIgZD0iTTQg
NjAwcTAgMTYyIDgwIDI5OXQyMTcgMjE3dDI5OSA4MHQyOTkgLTgwdDIxNyAtMjE3dDgwIC0yOTl0
LTgwIC0yOTl0LTIxNyAtMjE3dC0yOTkgLTgwdC0yOTkgODB0LTIxNyAyMTd0LTgwIDI5OXpNMTg2
IDYwMHEwIC0xNzEgMTIxLjUgLTI5Mi41dDI5Mi41IC0xMjEuNXQyOTIuNSAxMjEuNXQxMjEuNSAy
OTIuNXQtMTIxLjUgMjkyLjV0LTI5Mi41IDEyMS41dC0yOTIuNSAtMTIxLjV0LTEyMS41IC0yOTIu
NXpNNDAwIDUwMHYyMDAgbDEwMCAxMDBoMzAwdi0xMDBoLTMwMHYtMjAwaDMwMHYtMTAwaC0zMDB6
IiAvPgorPGdseXBoIHVuaWNvZGU9IiYjeGUxOTU7IiBkPSJNMCA2MDBxMCAxNjIgODAgMjk5dDIx
NyAyMTd0Mjk5IDgwdDI5OSAtODB0MjE3IC0yMTd0ODAgLTI5OXQtODAgLTI5OXQtMjE3IC0yMTd0
LTI5OSAtODB0LTI5OSA4MHQtMjE3IDIxN3QtODAgMjk5ek0xODIgNjAwcTAgLTE3MSAxMjEuNSAt
MjkyLjV0MjkyLjUgLTEyMS41dDI5Mi41IDEyMS41dDEyMS41IDI5Mi41dC0xMjEuNSAyOTIuNXQt
MjkyLjUgMTIxLjV0LTI5Mi41IC0xMjEuNXQtMTIxLjUgLTI5Mi41ek00MDAgNDAwdjQwMGgzMDAg
bDEwMCAtMTAwdi0xMDBoLTEwMHYxMDBoLTIwMHYtMTAwaDIwMHYtMTAwaC0yMDB2LTEwMGgtMTAw
ek03MDAgNDAwdjEwMGgxMDB2LTEwMGgtMTAweiIgLz4KKzxnbHlwaCB1bmljb2RlPSImI3hlMTk3
OyIgZD0iTS0xNCA0OTRxMCAtODAgNTYuNSAtMTM3dDEzNS41IC01N2gyMjJ2MzAwaDQwMHYtMzAw
aDEyOHExMjAgMCAyMDUgODYuNXQ4NSAyMDcuNXQtODUgMjA3dC0yMDUgODZxLTQ2IDAgLTkwIC0x
NHEtNDQgOTcgLTEzNC41IDE1Ni41dC0yMDAuNSA1OS41cS0xNTIgMCAtMjYwIC0xMDcuNXQtMTA4
IC0yNjAuNXEwIC0yNSAyIC0zN3EtNjYgLTE0IC0xMDguNSAtNjcuNXQtNDIuNSAtMTIyLjV6TTMw
MCAyMDBoMjAwdjMwMGgyMDB2LTMwMGgyMDAgbC0zMDAgLTMwMHoiIC8+Cis8Z2x5cGggdW5pY29k
ZT0iJiN4ZTE5ODsiIGQ9Ik0tMTQgNDk0cTAgLTgwIDU2LjUgLTEzN3QxMzUuNSAtNTdoOGw0MTQg
NDE0bDQwMyAtNDAzcTk0IDI2IDE1NC41IDEwNC41dDYwLjUgMTc4LjVxMCAxMjAgLTg1IDIwNi41
dC0yMDUgODYuNXEtNDYgMCAtOTAgLTE0cS00NCA5NyAtMTM0LjUgMTU2LjV0LTIwMC41IDU5LjVx
LTE1MiAwIC0yNjAgLTEwNy41dC0xMDggLTI2MC41cTAgLTI1IDIgLTM3cS02NiAtMTQgLTEwOC41
IC02Ny41dC00Mi41IC0xMjIuNXpNMzAwIDIwMGwzMDAgMzAwIGwzMDAgLTMwMGgtMjAwdi0zMDBo
LTIwMHYzMDBoLTIwMHoiIC8+Cis8Z2x5cGggdW5pY29kZT0iJiN4ZTE5OTsiIGQ9Ik0xMDAgMjAw
aDQwMHYtMTU1bC03NSAtNDVoMzUwbC03NSA0NXYxNTVoNDAwbC0yNzAgMzAwaDE3MGwtMjcwIDMw
MGgxNzBsLTMwMCAzMzNsLTMwMCAtMzMzaDE3MGwtMjcwIC0zMDBoMTcweiIgLz4KKzxnbHlwaCB1
bmljb2RlPSImI3hlMjAwOyIgZD0iTTEyMSA3MDBxMCAtNTMgMjguNSAtOTd0NzUuNSAtNjVxLTQg
LTE2IC00IC0zOHEwIC03NCA1Mi41IC0xMjYuNXQxMjYuNSAtNTIuNXE1NiAwIDEwMCAzMHYtMzA2
bC03NSAtNDVoMzUwbC03NSA0NXYzMDZxNDYgLTMwIDEwMCAtMzBxNzQgMCAxMjYuNSA1Mi41dDUy
LjUgMTI2LjVxMCAyNCAtOSA1NXE1MCAzMiA3OS41IDgzdDI5LjUgMTEycTAgOTAgLTYxLjUgMTU1
LjV0LTE1MC41IDcxLjVxLTI2IDg5IC05OS41IDE0NS41IHQtMTY3LjUgNTYuNXEtMTE2IDAgLTE5
Ny41IC04MS41dC04MS41IC0xOTcuNXEwIC00IDEgLTExLjV0MSAtMTEuNXEtMTQgMiAtMjMgMnEt
NzQgMCAtMTI2LjUgLTUyLjV0LTUyLjUgLTEyNi41eiIgLz4KKzwvZm9udD4KKzwvZGVmcz48L3N2
Zz4gClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvZm9udHMvZ2x5cGhp
Y29ucy1oYWxmbGluZ3MtcmVndWxhci50dGYgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1y
ZWd1bGFyLnR0ZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42N2ZhMDBiZjgzODAxZDJmYTU2ODU0NmI5ODJjODBkMjdm
NmVmNzRlCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA0MTI4MAp6Y21jJHsyYj4kI3dMZDwwWDRK
S2tNcz1Jb1k5KCNndUMlLUl4fiFMVkA1WGdhd0x6d3RWb0ZSaSY0Qjw7WXp6cXwKejFRSHcpekBk
YTAqQFBzSXlxQSFgNkdAYjZvV09lX2JfJFAjQClHYlhHMlpkLWQrdW5mWkFrdlYtezxwUlRoY1VY
Cno/bWhTMWJJPHZuRzZFOT5MQlgzV2M7P1Bzd2Q5aTNGYUFYa1NVcnhgJnpuN0dGMDxse3pAfWg3
d3JwaTRkKktzewp6WnBaISpfU2NfKCpAbiN2fDY9PEJfUDszejsjS0V3eGg1dHdOcTZHTStIbEBf
IVI4QXVUZSZ+OzFvcGRlZSZkQjMKenVIS0J9OXppZmFPeUA3V14hZmBUa3o1QDZVbG9NQXIoZCpq
THFSLW1ORWR7QTQmaSs3TUwxeTMlNUZpfVJnTHx8CnppIVF0N3k2PTVZKkBedz5fYE1eU1VVQn0w
P3Q5aU82QDxAclFYNE1ZYU5UQjZXX3R3VGI4cTRMKnlTNTgraiF2Rgp6MmozTmhgPmxjP1pRWHB1
KXpeRyQ/JkI4PSFzcFFrPitQR2IrUEdQTHp0dH1ZVSZlVyU8SnlocVRgPV9RaVpgKU8KentXYXI3
KURlQz48SSRoZT1URHUlX2wtfG0yUzRNJjk8PmFPITlFalMkNGxtV3hTZjAoK2E7STtTI3BYJCE/
ODFyCnpQeGUoSUR9cWBBUE0hUjNeYGY7KWcjbkBKY1leZlk8RGl3UFRHKXkhY31wdGFpMTlyTWQt
U1J8JmFxM2VNXzFKZwp6R0Z5KCU8QGdtN1FDcH1JVm5WQzFDdVdhalYmfSU1WnR5MExyQzhkUWJ7
fj1zKiQma2xZQ2hDPVh1K1glaHQ/bXUKel98V3gtP21xT3VWY1glRiFfOX5MNCRuUWo7UEFTYDdh
elg8QFpFPitLbTZlRGd5WUJZZCZWIWU7MWA3eGV2dXRBCno5cjdIQzlxSyRaYUEtTXhAd2BLdTU4
WmxiKkl7PHBiMnhVbV5ZRm1vYEc9UHVVVm5KPTthZDt5SXtYMHRNUnhxWgp6antwQW4+Jkd1Uldj
bHN5ZjRsIzs3cmkwOVVpKjZSSFRQQHdTV1Q9dD04WlhIPTlteVk4YSkjSUFvXzBmS2NhYEQKeipG
fj8yVUsraDF4O31idGJYfDAxYlYrbnhedDkrZWd2UXxpYDV5eD5qUWxKVUAkPlc9fEEmKF82dm0l
P3MtWWRaCno7USF9T1YoYlpqbTtyejEtI3RRO19gajtxclY3NEE+ZitAPz5jVERTUjNTMDVTfmEm
MCV+OzJlLUx4KXRLeE12Owp6PlVOZDIjYT5zUHQ/akRWd3JJdUJvVyMwI3lER0leVHBkI2ZtSmh8
JWZwelZ3Kyh1dUdDKm41QHtpZCRHdGA2ND8KejRjRVE5dH1ZUSpPfDMpZislNDwpaUZORG5kIzFM
a3YoOUsmJjIzcih5OTstWi1GNFBrYipnfSR2OXhLOHtMc01ZCnpBIzBtZ2lTPWRMUmE7eF5DYzRR
RkBjU2BVTi1qdm1SNWBVITZfeVdlLT8pODRqNWVtISNwQ1Bodyk0RmUjdmF8IQp6Wm5WeCo9WldK
Y2o8KG5AY3oydl92NWFiSUohPmN5bzBwaW87Z1otO3RaPCgzNkxlaF8tNUl4elpJOHt7SzZnVzYK
emR1KTR4LSE3cEZEfjhrb1QjNWVDWlBrSHx3MWUtc18/PjFQdGQ3VSlWaDZXXzRFV0xsdn42e3pa
RD0xWmJHSWQ4CnoyUC0jRSNEKjVGdGMkQmAtT3pTKVhoQzlvQkRRX09fUVZFaTMzWjN3c1haUFYx
fX15fHAkXmM3Y1R4dz8oOFMhdAp6aEQrOXU/K0phPypNPzRQem12JGV1I25ocFFEZSk4cnFfS0pY
WiZzWmdhSX0lSUxIPSMoPDdXT0BPUWQrSENpNnEKenpHNWhHOSRLRm10aXVPTzQxKTNsRH41X2ZP
cWd+NFYzRVpiS0dmTHhZUiQlYS1jdE54cGlSWTUmO0BWcCNFXzd3CnprVC03M3drR1VjQippZXZF
SkJDSWd2fDchTUhiKTlZRyV7RlBjS1IkSFUmK2ghek1haHczd3gxKH5GRmI9YWpnVAp6JXFmV2BI
bFYtdG0lbTd7Vn4zZ2BrKHAyczNpNHVrdUBEaigxeSN0WFJYTFRGUlkjVm8pZnZAeVAmSCokWiZ8
ZnUKendIbnFjYmF3ZkE7Xn0teSR0bjRlQl80PX1FTkxhN1NrbjBkbGIreDRkPGljbT5CQSROTTx5
TjZoeHVqSEM7YWpJCnpJKXNIbihKbHpCYmFNOzh4aFkjQGcxdlIkMEYhTDNPbSR7ZGAkMUxBczx5
SCFYTnh2Rm93OFlNdHdwPHlIdG05fgp6UmpjQnl0Nl8yVSlBK31CdXtPMyMtPmVAUCt0TjMpVUEp
Z0dgN2BwQGd9a3N1UF9yNGVzYSROeihvWiNZKm15aFEKenlkQlozWVJhaGZJbmBXTllxTSR+cWRM
bVBmUCpkIWMmS0dsR0hSWjt0ZjghaHF1SCQ1O0wrTXl0TG4rQjljOSY+CnopJXNZZyl7c31jcy07
aERTQmoyVXd5Jj5gc0Y9QG49TSh1e1pAeEV8NEZ5QXE/aFl+MDsxVnJ5T1dZajVUU1UlZgp6YF5C
RHwqPHd5S3Emcng7UGBKfGNkZzBGR3FFR0M5ZkFlKG5iR2dMfUJoYEpnWFpxTlUxXnN9VD9aJiZV
dnV7PXwKejVNSD1BX3gwJDhPOzQxc1o1KHY2QlpXKik7ZlhWTGVDTlZUQDxXfDl7PGJzdjNtdl9N
aDFVJFd4QCRZdl9CPyZiCnpDJSlBMilPRFFDTl5GPEJTYlBFZTw+a0J9bTY8QU1HP092JUFadG13
e24lQ19Da0B9b1FiNX42N3hzXzgmKVZiewp6PDxvP0s1RVdEQHFxQG8lR299VkpTX25VKCooQWxR
SWg0TT4mTXdJeCUqQ180LUtqKV9yR3E2SiVtSUpNI2F2ZXwKejZXX2I7JHRTUHRYbHJ9IV4zVlRU
OTkrJWJUWWw5dT8/M0lAYVA2LWl0Wn0rRjtafiR1Nmw0YFZEYE90bXY5MWR9CnpFUjwoUyNiIzMy
dGBkNmo7ZDBpZDl9dEpjQSZoPW9mZXp9TU9NTEloQE1HZWN4fDZqSEA1UyMoJDNIbSFmJjNsJAp6
SkQ2USYoaEA5NXVzNmRpLWBreUdzUm0wR1RrX2o4NHZINVhUeXlhSnM7VVJ3anFhKz16ZGhZSmE4
Xn4/XjxXazUKelUqVHN9UnQxfW82Tio/e1QyKUl+bGB4SSQ4UCQ0Rm1DOGxRTn1NQl56Xz9iNEht
em5idTdlWC1pOEJTJHNWQTw7CnpEbUN1ZEEmXm9YZXRyMSRMUDFRP0A0RXltPUY3OD85Nn5DPl44
S3R3TmgmRmVpLWp0Qy02QE83I1I1MkhtSypPewp6YnthWkF1eUVPMHVsS0hIYjYyfFQheWRafWA9
N3FOeGkreEFNTGclQjtzNWMzWU9tX2VIYGp6dCZyNFVAOW4kd0MKenBNN3xsUWU4dFVkKzdLKEAo
PCgoMSlvcVN0UF9lKkA+KjRJTWgldEt4KHNeNSljVENkNHl1OCY4dHs7OFApKFF2CnpWRTNBVTtA
dX5TOSZjbClQYzxwdmRfbldORmE+T1ZZRGlIJWVRS1J8OX1fR2xvYlQtTmRlRVZPLUA8fV5IIzBZ
Kwp6OFE1TCkxWV5DUFI0bH5tIUR7dE9TKTBYam5ibUxBNF92I21edk1eUV9qfSpkLSgmQzZJc0Zm
JW8hOUNJYVBsJlgKemd8I2dlRlYrOUA7YGVYYGhKP0BhQV5CTih3b242KFdOS3xqNiVHPGx5MkBJ
ZSFQNEZSVnVYZThDSTxYMiQ8aVNnCnpya3J1QHdiIT9HLWd3PDdoSShnUmZCV0E0e3dIcH5ld080
SipzYCkrVU5DI2tlN1N3KW1WdihPWkBzMHNkVWYlWgp6VGR4UExqKDx+X0MqT347dytsfE5STlI7
SSNoSzU+ZHtUWnNgfFcrPWVlQm96d3RNd2tePTxja1BMeUk/REUoUVYKeiQkYXt8PnxnTVN3bmBJ
ekJNNXozdCVDVUZWbl94UGcpJistWn1ObStfa31GXlAmJUpUVFRaO3N0UkYxKz8pTWpkCnpAOWla
XlBqV31gbndgSjwlI0peUD05ajxaYml5MHY2U051Mzt+dikya2ViMXxkJFlrWF5QM1heN0dTJVFH
dThpOQp6WEN+Uk1kbClPK3BEUyV1KXZjeDZ7UlJFX0ope0wyLShTcXZCP25lMkE2QW4oJGJmezlo
UV4pMmo4S0lsRV4xWmYKenZRYH5+cHROTXZoTWEwR3RCcU9Ka3heNFEpbWNgWHZaXzB5dyZZWSNT
IzhVenpLcShEUX5oUE5HZlZ4Q1dPR0NnCnpyZ3Jtamwqe3w5UExJRGFsdlFPOWlLdTxIRGtWVT4p
biZDRj8qPjxmdnVkb291ZCU3RWxUTzd2U3t6cDxvNz1sKwp6UzFNfmdCJCU4STImVVMpekNQOGhY
IVQoZFArZmV6PmBDPEdDY2I9LWZ8I1hvSHQ5SEJDI3hVc0ZPMj57K3pqdksKenVOT3YtVld9Tnwz
Q1U2anIoO2AzRld7dSlaP3E9NkxCb3ROUXkzSkFBYWJrUG1JREVhV1p7ZkRvcypeO3lmTUooCnpm
aSh4flY+UkFBU2A1PD5MfkFhcVE/bEE9b05zIVI/cHtkVFVfaWxgI3Y0Kks3fiUyej58QFN7ITNC
WUVJR31IKQp6X3B4bnBYI0Mjej9kO2VeVmV6dFlKSHlgQHc9PzA0ME9eVDh0ezA1LWVWSzVzYUR7
TS1hMVlqTVA2Y2lIckM8YXcKelFnO0UyNndZWGl3X0BMNClARU9Xe3F+R0ApQFFLYVNrX2tFbyZ8
TXc1cF5eVkZgVyZ9KkY+S2x0ckw9SlVeJXc/CnolRyYlUGB0KWUpYWN1TGcqdUo9fFUzWFZEdEtH
e2ZNe3s4c0dpRjA4WWUqP1FBSEJ+JD1LU1JFfEQpSDMxMEA9UQp6UUBwV1ZyIyFfXmVCQWwkPTxs
K31QUFRkTXpmTnteK19mS2owWT8tXy1pK30janEjY2FrQXR0bDxLMkF2RlYzbTsKeldweUA8cyhL
Y1VzayNheXhfLWlsaEU2ZX0rSj0qbG88RTRlPzhUc19GcXIxUjxrNitrcG4xViVBTGE+LSk8XkFz
CnpKaGpDYVh0OylGKUJETXskSjJhbFhoLVMlQGY0LUNFLVc8MkA1P08mczlAPHl2dmluIU1hbXUr
e187PVElbGNWVAp6SD97IVpGeVJ2NjVfenNYUzgodl9ALWBOLUZeaTJ8IWZOJDU1M3BLUmRxOTdh
enV9e1E7eXpDNlooXjtRcGN8eHgKej1PPF9mUHp3P3tIQyRIWCo8eVd8KVNVVmhHQGZ1aFpIQS1K
dVBnZFAoPlZQaDElVmFHcz4hayUlTkNPPHgtXi08Cnp3XkIqa094NUZDJHgkdCU4U152K0V1JHl+
QStyMF9xQHNISilFYTBWQXk0ZiV0c35AeCo1VD5YIXE3aFUzOHB8Ygp6b3ZUeGR7dStqX2VZRVom
TDd3TFZ4ai1WMj09biVKV054OFVEM21AJThgME8lTVROb2A/WV9ZRXM7RkBHMWxtPDcKejZCfGRG
aWVgbVhpKSZXVGshRHBOOUBvcHN5NDc9fVRoJktDUj1iazBqRDIqXk5LYXchUm4pODwqWHlyWmcz
IWFQCnpCV2wpKiU9MDJUIyZ0eUBCdEhvS3AkQEQ0OUR4aStKSiN0b3pBam5ITUpWWVFNR0s1TSkj
QX5kNzs5Zy09PTlNKwp6QytzTFBuS1kqYmdBfVQrUG9VdnNBYSM1NTBjZiorc0RlRytzZFBgITNr
XitkPW4kRFBmdzcoJDZGQnNYQ29iSDIKemwlMDJVPnhFREo7Pj9GJGVkcERPJlNidnsyTVJRa0BG
b3NEJnpreGwmekcqI2p2bSNuRTlEPlcqTUklfDdGPm1rCnpuVWsoRW1McGdiMSVXez5YYF5+ZnIl
OzVrKFcrVVV4ZzFrSDhDNTw9VDBKXnBNSkY2RWxhMjFVJWJMUWFPJiU2RAp6Z0s8M2F1Szs3RHQl
UlgzRil+UWw1IzMzYUh4dmF4bGNHPjcpWEJUJC1OSFFLYm0yVUspYSZKQ2J4fXNgMUAlXk4Kej5k
aH4hXkY3KVUremt1Yk8zLVAoS3NNQTJ1PkJIY3BGNUUyQlVXaGlZQmQ9Y21mQ1cjeWs+eXtxYl5l
Uk4lOGE/CnpJQHt+alQyQ1d9X3hZbkBGdj17IVAoQnBJVy1kRVo/NDhMJXo0PiYkN24/b1o4OE1Z
JWBCZDdIUEdLfEE7MTxucAp6bU5ye0w3QmU8WXEhYjRIPTd2PFFgMm8+WUVpR0BLZXV0Xk8lYW0k
cnNMUTB4OVUwVDdyZ1Njc3NAPzRLQ2UhRGMKekNuUE96b0JrPE5kI0JtQiFqeD9ALTcmM1d4bH5n
bks0NH1TLWR3eUh8SFhDaj05SWFzJkdlfmg5ajhtUklBdDxECnpBWGUyJXI/PGBjbCZQKFl6Rmdt
KUdVci1NcFBISUVVOC0+ektrdXJNUFJ+c0pscXU2O1BJY0F7LUYpLVZ4fD9yPwp6YGR8P1gkQilh
WiRxJjdNT2FzamVjTUhXaFg7Rj1eX0IqPz9TbUBLNFZvU0MrMlgmI1kzPkF9PDNSZkdCWEVOTXcK
emc/VjNsa1hEXldrQ3d5YDAxOWEkJjlzPG87dH5xRGdXQlpMQWRsMmVYc0k1cDN0UjEzd1kjaVZX
c0JXaWJXeWh0Cno3aj02YCZ4QkFVSyFBZk53NVdgKEVhUjNOQUprNG1LX2djMztZSTJ1ZWJUR293
bG0rZlg0Y2pganJyX3VtKmN9WAp6OWo9ME9gP1RpYSswRTBTTF8pPzhwQmQ2ZFc/OCR0Jl4mRWdH
cnBIfnhMbjZCQysySU9LRH05ZFZSKkxxMHhhVlgKel9aeXB9YmBmXlpPYWJ7ZnV3JllVQjIrUXg+
KT9Dbj1lQzJTdDZSQ0FPO299aCk9WEIyU0g+citqaUgoUjl9ezxwCnp4MG16LV5pTnpULWFmb19j
clZFamFmdFl4MW1JaGM2RH5tIThpWFFAQzRlYTRkZjFXWGE/IzkpVX1oXk1nM3AqdQp6VHFobCsy
dmI8Vzx6V0JEY0RXcUt6VjJ7fEwjKFl2elMtZkBveF45TmR5PCM+UEJLOyZXY2d8Tlh7PlFSQFcz
e0sKelk7YnAzXl5eSHA0RWdDY3AjYTdPN0tWKGUyRSEwN3NLVGd1RyhXfl4/NGxaNjYhT3NJIz1J
d15RUyg8cFBUM2B3Cno0Pkw8c0xmRW0lWm5BWCsmRnt2Wk1YMik3REljOU9Hc1RHPVQ1N3pGRzE9
PTg8eWZQKVYmM3tsTihBSVIlKiRwbwp6QDE4eVNkLUBDZGQlK0xibmghcUVwUFVEZ0BzMDUoX1Vz
WVEpdH4lO1A3bXVLPT5aVXZZKXwtKk9uJVVtPzU+V0EKemw/NTBMSiUmWEViQmNmbUh9ek96PSFe
O2FsUDZQPVJ0YzdxQFE9bCVneWhSZmkyezR9PVlkRTRLViMxaHp1RWtMCnpRYGUhb0N4SiEpS21u
WFdZcnpvJV91OzVOYmFkbU1LPH1WUnZ7dnAwNk5LP3c3XjFRJFRqPHNAJUBqeVlmT0o/SAp6PTxi
P0RoTktkMGtXXkkpPFNSJFRVfkA2VERiWFRlbHwyZGVYWjtQNXBaWGl2SXtmVWoxVSEpbDEjQGpL
Nik/YD0KelNKP05AcVVSd1kwYFMkYWw2LXRGbj1yNlpLQ250elJTZXw7JTRFR3EzIW9KKzF6O3A7
SEh6WmhVblA0KFRzTnAhCnopSlVIaUBhfWgtZF9oYGMxdWYpTHl3NVNLT3tsR2BzNlkmfDVzQCFO
WS1BKVFGNzczRT93JlZ9eXNfdDg8S3dMTgp6KntiKjcqUG1YI3lSYGMjOCtRV2RNTnhuSGVMQW82
PT9iUXUkZ3tQPWg3cTJ2dXFaVHhRNUdlWTA1JmNSK3pNYVQKelElfUhgYC12fU01JTtPcGlXPXhz
YWZGeU4kYX5AZ2NSdDY9N0o9KFFDdWQyaTRpaDx7b1FmeHg5WC0xSClMZn5iCnpON0lra2g0Xyt+
bFZiYHIyYihMPjFSTSE3NjxyY0JJUXxUYzFkTU1SUjVfV3N4SzdyaV9+TGEwSjMjZ0o8d0VnJQp6
UDZGcntgJlJ+OHg2Uj15bTluZllUaVApRVhidC19bDNhUWM2UTh8X1cla0dmOFV9ISUlcElYMjx+
PmRHOGNzdkIKeiE4dUJ+VDJNfUxmLXRocEUoTTdSakFfZ1g2JTFqMkJCNlgwZUkkbU5aOHthMUs0
NFE+XldAM1BfRzg0S2VoTzIyCnpKRy18OCZKOSZgcmd+d2VLcmwxSmtDSVZxJmB1Y2w3O0RIWXdA
MCVaeWMkNn0/S0ZUVSsyOz97Jj1BYGNFZkF6Tgp6VSFqcF9nM1MtYDE4VDZNQDwjaDNBXzIkPXpk
NHJqNVhmd2FEO0JLaXp6WnUlKChhQEJtIUp7ZGJAX2Q0KlMla1MKejg1KXVKNkg9YVZkSjl3flhq
R0B1bkgkYzBoPnZGbzw0SFE2TX5Ea0kydHxlRkpteSFoVG50OE9qdDZUbyRBTVh5CnolRWMtWjlq
TDtqWEtEamlWKnUhUWo0ND1LKSlNSDlodHdGd2l8SnBaSlp+e00/OWZmKCljI3RwWDB1WWFmPkE2
bAp6YVZ7UWdiZSlNbmJXI2xhTWY0YEcjUGpIbElVcCU8M2x5MiZvKmQ+UnBtT1RubVkyVkh1ZkYt
U29BMTwpRT9+UigKej1XZ1MkSTdFdXk0Um0oLVFIXz0rYHNCdzF0YT1jc29NKnx1Rzh4Qk9FfndV
d1RBZEA1MTxuOUNDRXlzcXBhRWNsCnpWaT9QKjVIcztDdHVjKWBMUGU3aGdEYFFkMmE3PGROWkVr
enp+djJNaXhkVlowWGVMZ3dBPzNRWHIjeHpkfDI+agp6dXlgUVpXNHNLXjIqQ1RINXROOHo7TWp7
JEN4WWRUPD08SFBoeGdMOCMmJV5jbERzQjsyPVc/Myp7Wl9HQVopJTcKekJYJkAmRWYtQy1HLXhL
MClVX1UzPkh3MSNVM0dOTzFzI1NJQVZHYEtzd1RUa1dNKn1DNXZEWTQld1chcXAtVCtQCnpqaUhg
SGBQajA4d1hOOH42X0kwR3B9OWJjYkV+LV40bUQzSnQ9T188TUZ8U2JVTU1RIUE5c15KJmlSZVRm
LW89JQp6KmxveUkqVHxEVjVINFVsQCtXfFZTVkRkTUVGJCleeXk5WFZsRyVjOFBydmlKdHlmKUFY
bH1ha19GWj5nYkIzUVYKekhAMGhmWEh+cTt3Q3I/dDxuJWZBclk4SEcoQDh7ZWNRd1pSMGRSR2Zh
R0ckVFB8T2ZAYGczWmt0b0hKODR1ZWRDCno2PGRaQHU/RW5sd1hDKiF2QEV1IW1ET247JjRhQl9T
KF5wYyZiRVJeUERpKk5HIW5FXzJEOClSQCViZzxaWVMwewp6SD51KnZzMT8pQ1ZpQlBCcXgmNXF7
NkdPOEMjXndIMC1jaFJfRldEcmJVWGdRJXp4T3lIXyFqZDgqamJ3bUdldFoKej5tSTk8emxsUior
c3A/az4wb1dRe1FSbmBldHdJN3p9VU02VSU+YVM4R2U9aG43KldVKUJDdD5KYFJGVmw4MjxYCnpm
R2MzaUR7KyV6aVpqPj9GZDwrU3F5ZjRjUWVSWWU/M2ckNUFPMDM4Uj8/cHUqfmZ7SS07eUAtLSpV
c2wjNFJlPAp6TDBYSGtrWVBCRFVyKio/Vl80RiNNbi1AOGcqakpUR0haP1R0OT9DcEtLciNoZE4x
RjgtXmxvVlRSdTx2QUdGVTYKejN9aWFAVE08ZWVmJX1QbW82dFV9bFZFV3ppcVl8NXdifHpoaEsl
SyVLQDlEKXhxSnBjIStWJWlsNUYoO3UjeTZCCnpPVFpOYiVMb1A+Xl8xUG0rajVUTyMlbkY3bnxK
T3F2d1A5NVZ+MHhZNipUUDBKTXghcnpxZjNDO0N0V01aNV5+MAp6ZkIkQ0RJKk8wMGtTWXFleGQh
Y3diNXdrJEZibFRkQjRIVjAyOFV+JXZ0ZipRJWY7cmRJVjNZYEdzU2Y0ViM3Y3cKekNmaz9MdjQp
SCRuc0hTRTNWOWFZKUxpcWk3WTgxP2ZiaD1jV1ZDM2UyKEU7XkEoMi15WX5ZPCRXWkxBKVk3Z0Uk
CnpUOEU9bVpRK3AxSyheU3lhaDhxLUtyWVBUcm4+LWMkJTk8OD1WTjxYU3hZVVhQbWlgM2xwTV5l
JWdWKlI4Rk5YTgp6b3NOcS0hJnNVOGYkRXk+blA3NClwVHZVUilJNWI7b214WDNERDNsMztkV3w1
RGF1byk1b1F6ZDQla2U9biU/fk0KejgzVkpwRnpKZGJpNWBNbWF5QFlaKCslT3NBUnZMbzFTQz1p
Zng4PXMzfChYI2cjZF5YS3lPP3ZMMVojcT9aYjs1CnpBLWZ5K2RPPiRgRXNHM3N7THdKZDhVOUR3
V29kWFhlYkNfMj1fQUcmRDgyalg1THJxMzBnfFdVMy1uOTtxQ3lFPAp6MT9lcVBjV3twKigyYTJz
MzI1b3xMU2M5fEF3NDVsSHUrVWZUdShMfCk9eUZQKlZFYCRtOTs9UG84PVl9UiF9YU0KejtXUlc1
MjlobUtzNys3XiVCbH0wM1B1aVlJTV5sQypuO0krWENWSEdHNmB3VEwoVTl+eHZ4KkZnUzYpRTQ5
cVElCnpDO3tKbkFQdEl6WHRsdi0wR35hVFB1ZlMlRTQxTSZOMncmZV8yRl9YQmhwKlBzIUx+e2RE
NzN5eWYpVE5pPXBkVAp6TlBAendCYyUpTEEoUjxSYWp4cm1mJHxndXZ4RG47aWpTO2Q4eCNEWVU+
NUd5R2B5YDA3VmhpZjMkVztaOWdlSncKemd5e2BLQE5hZkViVW1sXmAmSHBjQnVzQyhGT1R5d3tS
WkA8YF9AMnkxOEtzWUx6cUV5YkpkVU9WQXl1SktZOUUjCnp5OG5MTUtTKE42WElDOX1mPXB+ZEdE
cWtzZ1RoJjkkZ2hrVzs7eTB0T3JTZm4+X3V2bCEhQFolRCgmTVdqWGxMeAp6NyZOaU5lYEVOKjtQ
V0VBN3Y/bjlGbmR8R1BjV3pMNUpnNE4wXko5KjI3PHl7V1VgNlYzOSVOPy1Kc3tobUJPPnEKejdZ
b0RRZzd9YHlvO185IzdBemQmcD82Rkc1UXBfcmdCQnk4MlNDVDVMWW82Nl85QTtSOTV7OTs1TjBw
dmJMNS0tCnprcUVeKGpqVmZRIS1lM2JnTkhYc3cxYjVOJU1tdUNvcU1QJHY7d2dvTVR5NTtqOVFT
O1l0Ukw3Q3hTOG5mZXshNgp6WXk9aUVMOTxyeS0jKHsxLTJmNjM8MClLPyRLO0wmZHtGMm14Y2t2
RWl2JC1vMHFhb348bDI0LT5IeSVmVn4yWDAKeiNPM3x4aCN0RyVafSo2VURiWihWTjk7Wl5CfDda
R2QranNebjZ0QT5DR29ZYlRpRkAzbVZKMko9anw/K28hLXpsCno4ODBJfkFTQCg+Y0pSZCZKUUBN
JGEmdHkpaG5mYkBEaDQ5VWRsNC1jcWEyQCVYMypFRE1AeXFPdHp8OFR1MCR+bQp6WUU3VGtubnN1
NmptYTJ3Tm8jTSRVYkc9VzdOSHRmdzJtJGFHQHAwQnFveV9rRkMhXk5NcyRPTFFGaDIheitJeDcK
ek0+ei10cCNlYj97WHZSO1hkdlpwVEM/O1BwKXxXP2NQX3VPclBSRClZS096UTg9NnZLUzgzTy1s
RFU3VnpraTU8CnpJJj44JlAxZD9PSiswVVlfQF8wKTZ2ajJYU2QxPn1LTD9ebTZuWiVDSnF3JC0w
V1g5NTVaNG5hN2V5eVljY3Z5WAp6Mm95ODQoNEt9NEhqfjllN3pQOSZxITRVXndKcmZtKFokQDFg
OWkpUGMzRT9PcXdnJHM9TCUxMjVCcVhNbFEme0UKej4kalkoVXMreDZZO244VXJlZW82Z1RkYW1L
ZmxxdzdMaWFiejdBS0ZeeVY+ZFhQdlZhZSkpZjh1WTUtVEs2bm11CnpMaSNARFlZWX0pbSN8U04j
KSMrUVcjYmNKTTtNPSR2ZjlQMXAoK25KakVAcGYqTGF5MHQybVl8ajFIYGNXYkJ7PAp6WDYyKWw/
NyUxbUYpKzw+WX1FSXVFZWR3a0UmfjZkQmxifEpNMGJhaj9sQlIxTmgxLUZAeVFadHZLdlRHP0or
aEkKeiZ7MEtPdXJiUGhiPXxpXkBkayR6Z3pqJExeN3lqU20pRzVUKD5hZlBkaHctdUE2alMwSEEm
T3pMKlhqN1dnYiZNCnpsUnJEKFdWSn1uKy1ZMHB1RFcrZ1h+VXtCWlkkaWxXV0Alc0E+O3QmckV+
Pz95PD9TO0t0Sks4ZyYxJj0qUEJFWAp6N2Z3Yn5eUylqaGY7N04rbSppJVdJVCM5Km1SeE9wI0A7
bH5ZJXtVMWlTZWxvSDczKW9fUmV7SW1SVDk7XmVLJSMKekNjJmQmT3s5fWY9ZHBrN29eSXt+Rjcj
WGw3cVZkdiskPEY5aHw8d2FROFdjPCFFdTc/b3V1MUcwbD0kdmE3Mm09CnpZNklPU3N9cipZSXNo
VSVmSGY0V3hnKTA8Q1NFYUlPPHhQdztjR3gzWGwoLWVqWDkmKUF6SnxvbEs2XlooV2lKMQp6cj1y
UmpmOzg1aWQ/PXloRVdvX3QqdWlNREc5PzZkJVBUTlJyTkUqXmkqQzlKdWNOIWc3anxib2ZzU31Y
c2kxRXoKemxwNWswelhFMFFpNkBSN2RPfHYlbWYzSlJVPXhwaEp6RlNicjReenJrUGReK3E3WG0r
NGYhNihLazZAI1VNdXhpCnpFT1FmZWUwU3w9eDcrQTBnM0E4a1BLS2V8Pj1VZ3ZoSXlgZXM8OShP
bHlSe2owdVIqJGgtQHtnS3o3JTEqKiVrPwp6bE9ZUmFwTEJ8QCREYzVJUzFgS24meTAxd0JqQ3Zx
UnEmRjJJQDxOJkUhMV4hYCQqVGh5clo+ZCUlM1YkMVEyO1MKemA3LWQyP3VQXk5WelJfTyspd1hQ
ak5XTXQhUy04eHlQRHBgQSRsTCkzKU97fDc0QzU8ZWROflAoXmk7NVNRb2c1CnptYlY/NCVZXjtP
PU8/eXh0bGd6a3g/NHdeJGN+SXw+WUdQNSN+blJNZHM3dlo1Jjh3WihyXnZ7dTBmMi1qMHw5Wgp6
aXA4a0pUYWFJUXl4LVYyaXVQQil0JmlDcy0+YnJTdlpHc0w8M1c4Szh3QTdVZz9AO2FqJkFDMmpj
JCVSYHFCTHwKemRTdndPPE5FYit7XylBQCRNQF4rKzBLcU9wQUNHPkNkcGUmZCVwSUsmNHJRcGty
a0QzTHJlak40bHhEakMxTUlOCnpiZ091TCFLRk9EcHBkMUorP3BkRiZOVURkd35+JWZedSMqSkNi
Ql5nSGNjVWA9UWg0fVBMM1V6OU5GPTRgKHgwRgp6ITRzMmRePk89U1BSQF9zQkRgZ2NYYTFoO2V9
TC04Yzc0cFNqMmt5KGxOPCt7JFlxcm9ucmZ9a0Ixe0QkNzJ7U3IKemcyMXBlYzdXPU81WSQ4Skkr
XkV1MSVhX2dRazQ2X0NXKFc7TCRwbEBffUtXJDxCeVloTG88aF9KYyUjM2ZaSiRXCnpLZnQlU1JN
NUY9eEtOUF9GYmhjej5yUX00WiZyPjAjUU1sQlZuczdGMEU4WmxsZytjeFUqSzUtU2Y4ayk+Y0J5
RAp6UispRlZ2biY2OSoqOWBNYChXTHtCNCs8c3xEOyRVe3NocVZrTD1KYGNSemZTS3M3T1MpMXR5
Nmp4VXlFNn1TJGUKeklfKjRpNW1TdDtLUzJGMzZrdlY5dCl8JiVHKEF1Y1dGWGNZe08jPFQ5RUp3
VnI3YkdIN2owe2M0dHR8KigoTiRVCnplZDJiJHpYazZNN0FnaHFqQFUwVyZxSWlrZ1o7dUk8Ylgo
enhOO2Rtb1ZmY0tfS2N0dUtwXz9QNEBGZGpZdFNNRQp6RSswa24wYl8+WmZ8ZUNNejV2IzRNMmVf
PigmZjFtYXR6dj4keExZbSt9MnlzPFpIZTFrZ3VsM191KmJ8WlEqfWQKeiVSLWlYPVVEWm5PRSlp
RnkxN2p7OztwVXE5Jl9VVC1FVnlJVmItcjcwJFQ3Qkk9MipiYHk2N0E+ayloR2huN0MwCnooZ1RQ
a3E4dkpjd2owczQxamJxb2hnQldvVWJISGkrOFU7fFQ3K3RAWDg7eXd4b217X3h6XnF4ciZHakIr
ezc/ewp6PylzbkthTzJPZVUkRWV4YHVnayo9YndGYj4mekQpeE1iNDw0OzxWcnslUHk0Wm9CIV98
R3hqS3t+akUpSEVnPEsKeiYhU0s3PTRUIXRvb2RYIzc3IUx4KzZOY3tIYSVlITBBcGQ9OHtSY1Mq
ZjdrMVdpXzh0WChHOE9PeXQ/cXtQM2RmCnpCUUZ9YWo9WW42WGdRQH1xVSZ0UWhwSVorVmBoVzFM
UnkxMWVGQ3s7emNzbXFBb00lfC1JbnFaMWRrKGh6Qys5LQp6bU4oeGFyYyglTmFJc0khelU9QyZC
WV8zVyktSVd1VHpjfnRtUjxHelRXQHhxZDhXcV8/NkE4PG85KFBUK2tNVkEKenp4PjZRKjNZfFYl
ZTdhMzshfF9oSnlANn5vNnFePyVffWFnSjxsOW0qdEIzcmNrYzR0bjh5YWN5KEN8Unl0MjVFCno2
NG5hRVRHQjlxJGlPUT0xRDU2a1dfWHV+OG97I0dNQVUkSFhgZVk5QT02T31EcTZJRzJ4Mjh5YVVn
OENKWTsyRwp6dFJhISl3QmhxWGhPLTg/YD4zTG1ONlpDT3A7UilEYlR4RF8hYF48M1Ree3xte3Q2
ans+PENjd3c7JDZGSm9ZeCoKenw3R15AUnIpNk93PTFzPG9KQnpVVntlPFMtLWVPc3EkX1ZLOWUo
V1h3PWM9RWhwKXNufDlqPD90THNUZDhOUnl2CnpBKjFUeUw3cmRmOEt3PDxIKS1JZjk3flpzYU0z
ZjBpfnc1I3VJZVFEK341SFYyRXZWQ0xDc2MreHM+ZUZXSFVaZgp6bV5qQU40dylfRnJtNkkkWFFW
NXZVeThEVGpSaEs5Q1VuTG0tbSZgTCQoP3kzYV5aI05NI0FoT3tYdDloezg/KmUKel4lKkB7OXZk
M3ooU3RxYzVSMGJ9V3g/M2I7ViRxMHdkZX12Vz9lU2N1ZjZEMzc9OTB8fEooKmJ6aiUqMCM+Vj9I
Cno9SngwSzhUYXM4QjJtSUdDfUtVMUB2QDwjYCt+NmY+Nm9sJnV7ZVNGNzIkUD8oWHhwTSFiOUtN
VygqZWZ1VDFYVAp6OGRmTGZANzducSNZVXFQKG5oKjhyfVE9SSgrPlIpYnBHX3VrYDBMJCk9VWtP
WmpNbSY2NW5DJiFGcSYhVzVhVFoKemNxPjE9QjUqX3pCdXY1aG4jWWV4WHkhNjROSElaR0F4SmIp
KEZEdiMwUFFTKkgzQ3JeX14+Z2N1MFZgJTBJTUx5CnpFM3gkVklUfjh9eld5NVUmNjBRfllrSnVA
XjBOTUd7bExxSkA0JUhXNk85ZX5fSUErTjJQencwSz9oPCtBUi1MZgp6cUNKSENWUW19clU/N2VJ
RilybFF6IzxJZ2ZtflU5QldvQkpgWGNycDBBSnRJN2gqTiRfck0kMThBI0Y+O1R9U3wKemtERFUw
Jn5lLWE2M0ZOXk4xS2VgK3lMJWp7ND8lVXhlP3YhI0dDMGdsXmElJS1qb1M8anBgfT5OPEloMCFk
Tm5kCnpjSHVAbzxKYSNKeVhpTHBQTmx8dldyUXg9ZX0mbHY+aGk9SHgoZXErVTsrUyZgRmFAQDFQ
RSRVUHo8bUxRKVAwMQp6ODtDUiMzT1lWYG13VT1pKWFva3RoU1FNJEtLKGpiUHhSfkRuIT5NKmVR
N3I+X3JAOyY5XlR8OGpITVlYbDdTa1QKeiNgaFV+cWhOdCVONXQ7b0FJcG9XITwzPUktWkZTfSsh
KjE5ej1KPjxNd25DMWxGJEhXZl5fc1Y2bUN2SSllc0R2Cno2TUU+XzVxNHh1a3RKMSY/dHNeR3E/
SH14Q01XeGJqelBseEQ5UWtfTD4wY0hgKForR3pWcV5vRVFmKE9jZnpmMwp6bDZ4VkhXYjk3LUpg
P1VpVl5vME9PTz4wclBVRWZVR15FZ3dEbnNsJSQkbXJWJF48aF9VT2ZFelFBMENFPnpQfloKeiMk
NVQ5VjNHYk5lfnJpSkdLQWl5emE9akppfmIxUEBFMzlJdT0qRmEwYkE1SiYrJVcjRTk3Zylubn5K
Tm9gb3l7Cno5QXEyeE5CJH5LNTNwaE5NU2toPE9GX25sSEZPXkJtNV4pd2pRb3MxYzx2eU5kX2Js
UFFyMml+IWFUdUJKdDZYZQp6Z2FrIUM/NCFzQk5Ic3dWUD8jKFFpMTNBSWU4aUZ1ays1ODtnbkxI
WCErZW1sS0V4fSVpK0g3WD89SkJfOV99IUQKemFMKm9nSXpLJDJVMmY8UVZ7dTg7RTshQ2QrZU5X
S0sjKGFtc0FAdkhvT1p9QmktMDlZIztVMD9jczRwRzFYUGozCnp7RGZ2djs+QWZDYnQwe0B5aUZC
LSlnVG1zVjRQVnMzJlMwcTkkSzx4WUROX18hJH4pWEJOWG1YTGArJmpsTisofQp6KWczIXQtTUpJ
KjJYPnMkbVpwKDJJNnJheDZrJFN9alFCWENPOzlXPFo5PSVyTlNuQXJkQlMqc3ZuPVYhdD1ZdTwK
ej80ZjdoeCF7REIrXilhUDl7VHpfN1o3ZDBNV2NLKTE+ViQ0SWQlSFY+VTZGUDA2Qit4LUVEOWMz
fXd1PE5MaF4tCnp1cTxmU2tNPjFxeUBfe1l6M0VVOGY3Q1F9OGZVTmNiUjRFKFJPNT07TFJueCVy
QE1tYD9RVFVnMUhZVV5TNDB5KQp6ZWVFfCpnPGVaUnJ4dXFTJUpzYFZ6eiEpPih1ZWhHYXR+aipN
fE5BeHFEaSNMRjQtc2ZnNFU0OW9lbyNDbEY4Zk4KelBAbXxVLUJwKThlTk81d3RhMjF2SDshTSQ4
cXdedVRUQnctaSM8Vzdoc21NbmpGZTw9JkpKYUJpPF8jPSlqakw9Cno0dklNJnFZcnM8cjtUdGxX
KlFiYFdYZDlsQ3M/TGZCVnpDaHc1eGVaWlJiMjNCPD1YYj8mamdlTDtAaChuPHdpUwp6YUBgRWE8
QjFLdzh3TD9WMSRPfmpBQih4RmhJamQ1cCRKRDBfcnBiYkxYP214eEB6SkN7eFU+Z0MpJjltcHAj
VUcKenFOJT1fQENgJnxUT3cofkhAWXk2S0J5NDs4V0o1REs3M3k2QSpNX2RDQGQlM3IhdTcmWD0+
KVNodGlXbmB+QDV0Cno1aXhgZ3hSP2NBVHRMYDRzTio9PW59PmZFeUV1cWJ4eG58TWNZZUNteUpl
STJNP2IyMGVxSEdeY1NZNyRVJExsawp6ZkE9ZTtudkR4ZmkhUUpKSWVmUF8tQ3RXT2BJbW9rUFUo
V1pAdDBuemQqRyU4bXNTN2RDIUpwXkV4ZUBxJDNGXlAKekk9XkpfPi1icEQ9dmQ1R0MycjBMcjho
ITVBekVsJmxpXjEoUSN8SSZQbzk1NDh4NC0qYVJDIUthV3UrclQtM3Y8CnpMY2JRPWRGTiMjfDJk
MHwjJndQbC1+NnxjT0s+ZnBiTDBDXmIzen0raG9ASGhLI3swcGVLNndJI2A8NzVIXiluYQp6dXw3
YXR1flc1dih+aC0yLWw7ISslNypLUzljIy13XihSaGZiNnVzKVYwXkdZRn17JTtZT0ZYRXVMISNI
PGp8Mj0KekoyITxYQjZjbF5haUJIRlJmcWtGYlZyfllxWXk3MjVBVyh1cFV+PWxhWjJIdXIjPmll
KiE8SzcoPFYyWD9aM0pwCno9S0RWd2V0KzVyUGk/T0ZWZyV1UWojSFJ7Slc8Ull4bm5DRG9oRipW
KmFGJUJlRjJlSzNNQ0lDZT1vc2FBfV8hRwp6T0dDI1Ffazk3MipTUFBHVnBXdWI0bFQqfUs1NiRy
P3gqUGt0ZXlDazJ8dEY4d0dqUndHd0hITykmVTl4JDFxfkIKejVMT008UWpANzJ0UCltRDRmISM5
NXc2PlZNbXFFR1Vka3o/LT88M0ZgcHVFd0ZefktYbWVZfm4hUDJGfDY5aVMyCnpla0lOPlZvaGpF
aSQycTY4QmMlND8rQyliYUBgdjZOZV8lXllQdzRAJiVPSVU5O1dgRXRBMkdgPkdvSGp4ek5obwp6
TWxaejEqYEY5TVlzYHBtUTREUjdzamlJWHVJUDluaEpRWjFsejhZaW1mRVNtZSVzcVNTP1ZAQEdi
K01WNG9FZ1MKemY/ZGUyMXxjRXVseWB6SVhiQkE2eEJePk87bEkrcihzWXNqOHJ5cHRPWWhXUXlH
X0xyZWUqV2BITC1fJkVXSmEyCnpaNXQlQjVtV2dmYlQtTzhVQjxQeFNRKll2Zl9WWH5SM2EtdEJ2
P3V3Qk9ub3wxd35FTnpgfWRaPGdBazhXYTl5ewp6TkkqezhYdEBkX1gzSlFmI15WO3U3aCRCZmxm
TXE4akc0c3ROTXhsRVY5Q31AbEB0RDZlP3AhclNObmUmc1AyVUgKensjXy0pKCliWVA+YzgtWiEr
ekYqX3UtY3khQCZeVD9vZmQtdjxSSS1IJiZRI3BfbkV+LWp5VGdEMHkkTzc8Y2k/CnozX3ooLW5Q
Q1JuLWAkMUMyOFl3dkduSllURjN0cklFclp8fnY8cl5yNDVLVzJxKno8OU53ZGxnZ3Y1ezQyQXR0
Kgp6cGQ9N0xTXztjWUM8PVRSdHRWRzdObztWO05YTnFlOFQ5JUJANVJJRThUTiFJVVYtIVEldDtN
Q0AyZCNLKllFa0UKeiRyYlk9dD1YXjszKFZvT0tBckFWYzJ4emRveDhqcERiNEQpR2hRe3wkb2tJ
QXp0RVB4Uy1TbHRYWSpTNERGeHk5CnpwQW99TnhrRml1QUdiUH5udUU0TUErVENFPWNZZ3BVPiZT
NntpZUtNYmpoZmRWQ2ZDIWR6MFlUZXVsNlMhJmZhXgp6ZXI+WiNmaGlyQ2kjTEFaP3piKiNUWEBs
eHBTPHFJdnNTdiNfb2lwJSpfNjIoSGw1aVZsJnV5JlZ2Vzh5Vn1eZHUKenk1SyRFPnpSSipkRTJI
PFUhN31AXmhMZy18TStKUXQ8S3JaSzZuMD5zK0VJI1EhfiVLYnllMUhHbGdxJVNJMSY2CnpWZnIk
fTZGQkFCQF96cztOZyNAQzBvUCpabCtgJk5aOTBaeEF6c3R4ZlBKUitMUD4qQV5DTHcrNmZfemVW
TDw0aAp6JVM0YnxtK3pQSnk8JDJUM1p+KW43NHkoPUI5Y3FDbX0jM2BWWTFEZzh5JWNGck82JDBg
SW9JeE93cGotPTlWT0AKenRFTGc5QTIhVnphSGsmb1lBfSRWPWtfakpZMDZjI1QpNDJxRWpuY0BW
LThRUEgjSWU2YWRwcFIteGBjZXh1cmN8CnpQeGpBPDQ4RUlRelBBdXgoQnx7VSsjIyFqJCEzNTNq
OUhoQGRZWX1ndFpucnBDWH1HfilOQSkhcVplSEUjN2dKMQp6eTYoRUJQPm5+bmNQdj5HPiRuXnU9
bEopOW84KSlwOThqPkNoK1Vme1A9cE48amkoeW5yMU8hT2R7RTdvd0ZNd1QKejl4QzV9LUJ3ZDta
RW91Nj1XJCt1UWw9ezI9TE15KXFvO3B4OXZBdTtMfn1NYExTbUIzK3xYZjQ9T2Q7cEM8NzNhCnpe
dUM1dlBqfXZvOFgwKkNPcWZ3P3VBalQ/Pk1mdCRfMVBefkZQbUYkdUFPfH5BPEx9eEdnc1lrPiRO
TV53YXNfMQp6ZTBYWUtxKVl1QHdjfjwyeC1QeXJ4IUM2eWhubm43WWdldEdtJndkcXppS1VaQ2h5
elYmcDJtRllnNnY1WCYxVEoKemc1O2QzSDRFMkslS1BkQ1lwPm9xPipESjVqZzIlLUs/PyEyUD1R
NUtNOGojcW14WkY2Vy0ze3RnQmdralJlTml7CnpKPngoQl5FWDFFKXZtZmJUJm5aQ0NlNmtFPTJF
TV5pfT56KzQhNl9TeTNmUGtZeHNMRGV7YmFQTnFSNWhFUn5XOwp6bXw+dEhVSyVtZCRvTjlxVzFz
NWk2UHxaQ3Qye05lam1lSjY5fi1kYWtqcCpjVWBLfktQfEx1Skx+OUQ0JmFuZyQKeklQV0YwUnRQ
KjNHNkpDPXhCP2txYEdgbVpCOTlWJHsqMzkjJio/OUpGMWgwSXQxZUY0QU5zfWYkeFppZ3FHbSNv
CnpzY3NpKk4oSXw5NFZ9SVcrdDhZeGJ6NFZPWkxLQUYjPlVUJWt6M2pNO3FyUnw4IXg8bWlufmRG
dnYtSTBpT1VVJgp6WDRjbFBzSCtgKjskQyt1bzA/ZllBbH1rPlUrK0J3ey0hMnBfb25tNkZwLVhi
M0J1OUtiOSVneDZHRG9eOGZpNHkKekxZNmV0PVlVY05EQz4mNHF7KUA2M2s9YHZwVyt8QmBNPW5B
Km12fE4kbClgNF9QbSVKWWNSej1KWGpFYUlveXQ1CnpIKVBSM2RuUz1mQG1jfF9nRFM+eHpDZ2pG
NmRjYD5RSWxOR0xhfWpWaSROWUc4TFVQV0xeNFFHNVJ7ezt3U3Y9dwp6Mm4qMXs1d2dpXzVvYHZO
V1kzViNIJjVzVDtUJFomRDVwNGBSQ3NRMmg5eFghczxWKCtPeSpQfWgjO0R3dHdVXisKeko2TnNn
NDtFXkQ9ZSUpX3VlUDgrczhsbV52JWt5NT1DR0NoTHFxLWdHeHxUZHk4Ty1sRChCenl6bnZLekBH
R3taCnpPS3BtT0FiMkxUe0xNK0xHNSZhZGolYHZFaENFaTIoVT89QDlqd0tnS1l8YXpoJkV6akM8
K0xNSzlERjFxYTJBJAp6fDN8azBHYSp2byF+T0UmWn4oUHdvQ1YtamglZnd6S2tqPUgteTY5UWh8
ZlpkOHZsPj09SWAxZmB4UChLYipTeFEKek4yV3B6PHxMSUJMZXhHeWkje0g3Vzk4KX5zNCZaamFZ
bVhPRypLK3w0clFPRSVGRlg4SmgwTVdWfFI4VDZkJXxxCnpwYF9xNG5FSHIqNGpLRGNBY3lgK1ZI
dUFNQDcxNFQoaFdQRikxTUxfLSpMa3VibnZlTFBLUkQ1MW9iNlMqPjJkbQp6ZkI2MkxIeVFfcy0p
TXt8WDJUMHopVHBpa0d7aX5IPjJXQzJNRTRqJnV1TihzVDVSfWZ7YnpfKlYhSjNIJSFyPlMKelpr
fFJvMDg4YG5QbEI3PGg0bGc9KyNyP1V6UDltSDRJNT5HMStvPEtnSksoaV8qKzRaNHZ3WCFzMy07
JTsqZE89Cno3dmMqK1J8cXcyJVc0Xkx4a0xeO05GSn1FTVdQXkFoPVN1dCE5O2lxVm1MIWspY2Vp
cFpjMU04eUcjKH1CanVRMgp6cW5lZX4+N0x9WT1CVk87amc5XjRecGNIVntPJVZ3RT1nQ0xwX2Y4
VzdLY2hsdVoqMmw8OGIpdjZIUlIkKXIkM0sKenNiJDVAbXQ0NiNtc0BgMkJ7IzJOWWx5UCtCSiMy
MHpaMVNHVW5JUmpUOWJxe19CQE9Ib34+c2FlbURIaj80alFpCnpUPXNpJDdTVmRIQFZma0NuUUs+
WTZoTjw+RTZ4QE5mMlRqOT9+JWc4LXd8ajFvPEtQSVA0VzB0cDx2bnE/OV9eUgp6KUZoQkBQOXAq
ayM9PSE9TFNTUz5JKzJRUVlgRE5BNjM+N1BMNCg0SmZPWHwlKjI+eWAjQlRjKUQqMWZ3U0xgTyoK
elohSUJpdmArc2NGR1UwZDlrcj9jMnNaJUtkOSlGKnpLbkRgWGhDeUBWZ3JwPU8tXmtDP0xFanU7
TCpZNGQ7dn1jCnpIWCsjcjZ7KyF7M2V6NFRpJTA7WT47b3VFVEJzZ3ZZdi1lcUxVRX0kNmVQa34z
MXlYQlZrX2UtRGp5LU50VFVoIQp6VnRKKkA7OWczNU8+WDRXLWtMSmlEZCFMfS0xfn1YamQtS3Nt
TjI1T1RFYmFeVlp+N0FAU1UtQ2xrYC16Kll+SXIKeiEwfUA8PCpGY2B5OzxXdTt0enlORWtSQ0Nk
Z0ZYOUtgUzJAMFZrNi1qeDxAYG0oaCR3cXlRKzAjeHBgXjAmeiY+Cno1MEBpM2dlU1pucTJ5S1Ji
fGF6SF8tKUswI1EjIWBoekRiM0FsOGBaJGE7anVrQkMmRmxhZTd1OXY0ZjE+X1FrOAp6V0F9KUk4
ITYzays/fGU5USpQUEYpRlBtUHVAM09xSGpJeEFuaCgjNzwmflhhTzJEKjU0SlFNWmxhYkpmMzR0
c3wKeiZJQ0RwP2Q2d1EzdX00I1cmSSM9SVBvcnxnfjdsMCokbktfWlRRVzRvP1MldHM2RTM9TFRS
Sm5XWllkN0NrY2UkCnpfUippZlB3XmtzZkEhSyFMfURUY1UlJVh0ZFghJVBmMzFfYXMyMkRmNHxZ
THs1LTFNdEAjOExWP2JWSDdjU3dzTQp6KiUwTiQpU2AmXjxyIUt3MCgkdUxvKmM/bDJpMjhBbj9n
UXY4YktIKU1yNntsPmdIK0RyJWpFMWFnUSUpZFJvN1MKeml8djlqV1JPeTl3Zk9zQng7LUA5JGl3
Sy1XQ2AmZ015IyNfdk1MWCZoZ1ZnRFJ8aHJNJXBSPTtaT2loc1h7YG0wCnpNYV93QEkjT2Y2djxS
KjFrVjhHd3JHQz5pKWMjNSlkX2x4P0hqck5fRXordHhsOEBBbytMKjFXa3pFYjchQjxjVgp6UGN+
V1BsSzdTM3Z5dEwlY2UraXxOYEZ8K09LKmgoI1BkYHpBWH1aU3N5WnJLMD5TdnxxdEtgQXZQQ2s5
P0M3enQKem0tS2c+NHB0dnZyfFo5eVImY2soKllQY35oWmxuVzdsMSFuUVNHUndsMH00TTNxLVU9
YjBreCV2JkNpfVF7OX1UCnp5dHdYK1FGXkYzaGhEV0lmKjR8eVRxMWVvR3YocElyYiVsdDJWZ2so
TFpiakVXLUEkVHJVKTZIPTd4b0plKHh0ewp6eF5Hek5IR0JRJWAwPjgtMktVU0Bpb2RTYlltRjJ4
ZDFUcDVmMU50alRnI3FzUE1KSCEoUm5GNUNsRyN5JjBCSl8KektqeTBxXyFebi1tTD5ZUG88WXg+
RVJySn1ASFlHWG1nYXgmbmxZbWJoeXB7ZE48ZTtDZXdnJHZVVFRXNmV0Pm8zCnpBSy01TUxrZHZm
UGZIS0FLbEQpaHB7ME1genlIcjgra2VgfXpKbyk1K1A5Q05lekApTShtKENyfEVIeWcrbU5uSQp6
WWMhMkg8d1oyVzw2TWd8aGlHZCROSXJBO205PTBLU2tGKTZPaiElZUthRyl4NDM7KUg1bmltKDt3
Pm1pZkpDWDgKekVFaG0yTE1mM1o9VmY4V1JgPTE0PGFeOzZZNWtrXkd0JHwqUFNeVC17ZXw1cTdR
fGpXZGhqbCslRUtRbEQpaDBUCnpYbHRTRV5ldlglWktwVFl6eDsjUnE8JU5NX1NGTj05PT1KeG85
bCRzJkpvIX4/TF5LN3tOKzN7N0hGQEtxaGJKOQp6SEcjfnRFRVQoO25pcXpEOUsoKEVRd0h4TU5o
amdhc0p3fWh1fWlmQTZyLTBaQVBoeG9ReVczeE0hcyZkUzhjX3IKeihtXjc7MXFATEdJUmR4b0cp
Q01JTFB8MUVqTzhFMTwqM2sqazc1ZEA8Ml9Rc2w3T284YWVhcnpPUTZuOFkhP1dpCnpAMTBENTFG
eGQ8Pnt7eClnIVFrMHhUViM2ajd9NC03YnUjaGtyI2kxd1RCMzhBU3hfZD9CZER2VHxDdigkZFF9
ZQp6X2pjYSpWbWw4VFpsNGI2TFA+SiU9PV5AQ1FzPHxQQXdqRWFNMyluTllPfHROX2kyNyQ4TzZ9
Xyg+U2BFMlp9K3kKejxDIWRwOEk1Y0tPMzh4c0Y7K0IyYVN7MVk5SjI7QXFHO3wheWhXdD1tbVhO
WVhfS3s3czdIZUVCYCR+Snl2KmZUCnole28/WnhAXl5eWkkoSz57Kj5pJCpafDItbihOI0BAXzQt
LUo8bEFuT3xyPGNYdElCSGpzNlU9JUhCbXttNkVqRQp6LVpWUW15Wm0wKV5eMTJjKXQ/RWJBRlcl
KlJ0QjBQMGVfZT1ROEd6UnRFPWt5bUcyUGtBayNMMnp0PHFEaGtQaVkKejlzRWs1OVN8dDIqSGI5
SkxZPGx8UFR9SFVOKns+Pl8pQFR4UCVaKjVmKUgoa2hLN1ptN3pjIypkI0dAUEleQSV2CnpxIyY5
MVRiJVdCR3BBamNYcVRkPlc1QWMxR3pHTHtZMnZFUkUpaGJ8V1JMPjEzejw7bnUyTmtoNEpRaTEt
eXlAfQp6Y19uRn5MXnE0ZSlCPHUrNEI1c0BpQkp5TFdtTylCaShMbDE8WX13XmwmOCtUWlBQMEk4
fTImdUNzfWZuezxYRkQKeitEKiZeZzR0dlQoO0tCZm1CZC1RN1BJUjtvPFAtPVBWPHtgUmF6Ti16
dnwwUDBrKlF4P0FNPUokTnV9Pm1FVXhACno5WDFkUVN8QStmcGZGN3syXnNJdVN4cWlqRVdMO2Nv
Rl4zWEd9b3FKUEVFX0cwYm1NTCYjYyVTQWlKeDFEIygrPQp6MFQxYj1STF9yYW11N09aYyE5WlNF
K2t6ZHRfdVJCNCN9WS17X2tgVz5fTT84PUBqNUVHaHxzMWh8K1kqNChPI3gKejYlM2dhT1BxNFpI
dD9wNFJhSzhSMUB2Y0A/cGwxa0pMJWRTSmFnc3EhNVg5RyooYE54b289JU5QNXI1VXp1NmFrCnor
YGByblgpYWxIYEtIelNGSUc4TykjWDlRbil8I31xY21iQWczXjlTZ3ckVjBlMCE8bCF3PzAjXmUh
cX5oa15BPwp6cCRhLVpNaCUhZ1VpbFJIZGFkUFJEXkl+YG9yMGJ0JV4xbjJsJjFvT1kkfCUqTzE/
PWFSQzNMWU9ja3w/ZGhSbnYKelZSRnVkJE91cmIkcWJne2NAVVQlMXBaMEJjdH1DSE5EP1dqOSVW
WEttMn1GQE5Sdm5UI20hWUlfd3tWYXVCQnxICnp6eG1PcztTVnFhPnxjMD97bShsNlgrUD8xTmZ2
VztAU0ZGYz5rRmQ2JWQ0MVViKnxqOD5lOTxzVHwkJEl0KzZ+Xwp6P3tlJGdGeldqMitzeVV1OXxw
Yk5BUypkNjk7O080eS0mUTdjVSZhQjlyTlRWKUJfMSUlbmZ9NyRTbX0/Tl8tamcKejBGUk9FdDlq
ciQoMEM+fFlWLSp7MnUraDAoNHcoJFFjaWZLeW9MeEI5UUNYTXJnUWlGPTd2V3tlU0dpaVZNITZ7
Cno2VDQ1cFR3SHlfWn15ektNfUxQTCp6aV5SbkVqTyhTJkZzMVJQbXViZypKSng+UEBMd1d8KUVx
eFM9Ki1BfHVvVwp6SDdxRVVMR3VIVnExc2JIMXI9LSs2NkRCSUNxSVY1diglfW9CdnQkbjNDQE94
ND11V1d7R0NoZUs1N3o+ZWNtQTYKelY1MzJnPjk0PXwzaDh3ZFkxQ2gjayVFPk9zbkFDQjlhKENY
PXNTZ3NTdG5lPVdUbHpsdTJ5WlI3WCZnOU9ZbH5XCnomPFdMbUBzRktJQyM8ODBASHY0PGglaDVO
WkV+QklSTjZFYTZvXjRIO3VnbT5EPT92MWFII1dVZm4qPmUxe1VjVwp6SUwzOUxAazVFPTJkWVBM
a3x2VEAxcVN4eWZxYVkje0VwYSVAK2cwSzVZNio+O1J+b0JaJj0hWihVKWJeJnQjYlQKejVWdntf
NWp6QWJWcV9vMmd6fVQ2aS04P2QyMyMoYTQ/Y25FM3MreHZgeUY/RzRrQX56MUokZipOT2V2LTxI
OVd1CnpldGA/JldpM0U4Z1Bwejg9Z3djZm1haDRYR0dNYXt7LUkwbipzK3RvRyghRFJwNzVFMjdK
dHghbWB6eUQ1aXVWbQp6ajF5VCZCJFB5ZWErQ3hfNkBrckEyRmFWKzMjMUYlYENjRyV6Pn1sTUZU
an5SUH59dmZUOytMV0lRNkQhI15jSmcKeklnTjZyPGBpTWd4UX5rX2U/Rk1Tbj9EJW5rbiVaQigo
Q3l3cGZIWWlfV2FGU1hLckI1VjcwWStSanxKPVowKFIqCnorUmU7IyhJK0FlM0NZel88KGpNNVgy
ZCE/UyZzfXJOKjFqKHdJUUYrVmZMN3Q+ZGVrMm0mKyYxTiFldCNSMHF1LQp6WXQkUkUqXyN0SG9l
bz5IKlhnaWlSPTltJGNXWjZHKWpoKTw9JDlucUVPandTcytIYEQhKXN9PHdiZUkxJTEpUkUKelkr
ZH0/ZGZWSUBoZmo3IXRlSkBIVUZlPyZhTmgyZXRgMFokTV5VPVk7JkN3MTtZZnRVajk2dXJmKz1z
ZkNSYHUhCnptPklMIWVNeHUoNzZkfUFjMnxxUCNeJmAmSGIqRU9oKntGNkQjO2BfQ1cxfiRhKGN+
bjI1TVEtWmIhKHthT0lXRwp6TXZMOTQka25UdlhxS0psKCl0OFRReE1eJnhDNDw8IWdMQEZBYm9H
aDZ2eyhNTjczNGIzP2g3bjshRD9tYipEYWoKej99dEBpeT5aKnspOXpPSDc1Qjd5I0kraz09ezst
WF9QMV8rX049Kj87aW8rdztPSjFWaDRxa3FQamc9dFJZKWFsCno0bUJvRlNFOVNEPURCcVlDdShQ
ejQxRyl8PSRCSmFYI2p2RT0wNXlDSnFOWH1LQXd9bllnIWgyeGJAYVUpKklFagp6QiVjc3d7QUFQ
Wjwxenw+cXNBJG1oUCt3aGprOzU5IXdOPDg4fjZNbWNrPjVoaFRnWU13aDNHbEtwXnN7TnJ2RSEK
elZeazgpKmZSMzlEbFMhSXBkJEkldSZWYDRwZ0wyT01uO1BoaVZxK2E3SjBBNzdEfjc0a0N4PWNL
b3FHVzVFWCNJCnotPFdNZGM2dzQrJmstRDgwe0cydmp4PmVwMjJkPyZXUGt6eWIwMVYyYy0yOTcx
OEVqZU87Ny13N3hHNCM2MCkycgp6YHo9QUlzO0xVMG41QWBCJnxGdz8paEhUZUtxO2ghOGR4MCtR
IT9HY3FAbzVXSCQ5KyRtYTttbm5UJXRDR052Xm4KemtDUEEkNVJVKEchPGcrdDBXWjNzS3E7TmpP
T0ozSE01YSEwVFojT2xlclFKe2skR1BEODBzX1JSbVY3WURiUXZ0CnpBd1pMYCU/UDIpRTZCNzNT
Z0U4ZngwUUM1JG0/bytoXzYtbE81ez83cW1MaCNWKktPU2dUX2htUDIoRXxwOT1DYAp6ZDlVRVc4
WGJqPUp9NHt9ZW8/OHxqXzc5fjxxTEJ0VGNnZkZha1B4dSRMa1Z3WE55Z29XPSpHb1c+Xl5yTFIm
SH0KeipiOHl1bUJqVHBRcko7eEJXME5Te2JqWV4hfkdgbiVscT40WEliSSg8a20pPipUSmhxS1At
aVdQRWxPfXlOajNBCnooRTFeTHdmNT1JZkFUT0xwMGx9cWE+akB7aWNwfW5NUXwhNGxXVVpIRSQh
MyRYfHVAKSFjaH43bU8oKismYVBAVQp6Ui10UkclMUBBRV9sVWwzPTtlMzxaR35XcWgjV058Qkxy
JSsjYykkNGpmNFEkPSUqO0BefSVKKWojdy1kVCFMM0QKejc3VlJ1al40bSojKldKa0o3PDI1TVBl
T01vUWtwSCNNKW5APCU4fXQmaXxuOzlfeHNHSkp3fm9uWW1tKytPZ2tACnpucExebmllUVh4MUda
dHVlPVNVdHpZUk5rOE1HXmtjTDNCMkQtUDE2N28mekRTKVFUIzRUNkBZbjFoKnBZRTBTaAp6YU0j
d01IWnFtTCh5fT5qTTN9TU08ZyZDWCFKOSQ7KS0qWWdFZSFsdHNiNm9RdmZWZ2J4cjdTenp8VG8p
V3xZeDQKenVwcj9wa2clKy13bGxHMT8jd0NpZiMhNlIhblAtPi1GMFg5WjVeajJeY3lYNiohNnky
czRuSTlHIUZsIWRxTXNUCnpvNXxoVG41eT0odiR8KCY+YTdXI3lUeGliXlZxT3VqJWI9U01lJHMp
WXxoRn1YRWU+ejEkT1lDbS1ZP1JkJTlYJAp6K3ZyISUlZEF6emN0WEYlR0srbTg9bXxCWj1AJG9R
Q2koeyY4dzIhdmA1c3ckPSk4Pyp7X1ZKNm5hKztTK0pFLWkKelBjX0UjKSVZPmA2Q3NPeDw/cVd3
bX5sUEclXillPCZUJCtJdXlUK09OeyYlWWoxVmVsNE9BP24xJX5AUiQ+S0tSCnphWm5ZXnRENS0y
UHNTSUFxYk5AU1dQITZjamFBckIlWGx5WigteEpRVjdiQ1MmcT0lZHJRN2QwQDR8YS1kb2koZwp6
KjFWVjJFMXVTPzxfXnhBd0tubk9qUSlZKComOXx8PV5VOFZ6ckp0YilHYiUjPTEpSWdAX2gyOCtp
clg1bE8xUFYKekkmYmQzZEA+WjhkZlZMNz1GWXFIakU9ZkJyfVlRVnhaPG9Vb2MoaSQ+Z1IxKGBQ
QTIhcEt0VzlAQSYpandlbWxzCnpQRjQ9K2p2byFkNyZCaDw5LSlrPWZSQXl1bkU0M142QDtLZEpw
cV9abH44Q2I1ciNScVdBPlM2NTM7KCEhNXZufAp6I1J2Mm98TDB0OU0+cyF0VX5xQFVkR1BedTJs
Z3xPYTNWanJXQU47QTJsUEo8dkpLfUI+PlEtOGUweSsqJX1VPy0Kei0qZGd+UX1UbU1KeyNZJV5L
WSRKeF5tJmZDOU9DeklIPjx8Zlo4a1pKWmg+UE5FS0FWNmJIe2V0cT9yMHN1Nll2CnpNMjdNY0Fk
V0NIKiFMUCRVdzghI0VeMEVvezdXNXo2Tl9kT29JUnV2MTZTYlgrKHhXbylMRHBvRTFDSkY9QCZm
dwp6PFFFRTQ0Yzd7YTZBYlZEIUhoTENXfj9ibC13ST9xQjlWQDQ7TWhEIT83eGFIOUQ5dlUlc0BM
eVBjWTxsXjtsRikKek8tNGhaRiVyeyZfVG1gaD90RWBIZ3AmNmJRWENqJEd8VCstN2ZAKigzQWZ3
VDskbjZEcWYhNlVmdUZJaEtSZHVlCnpqWDNJZD51PFgwQmNjRDdlJjgyQjYocDd4eXMqNndCYlI7
I0puO18qbCN2Ukw0eDl4Mio8IW0pdDUhUTkyflptVgp6TFpZbVVjTiFoQHFNajJ8WFkmRiVTbklN
dGF1OFNJKGJgeVJRVDkleVAoVD0qeyVBa25AQE5CS2FmcHQzJURKeUEKellqZVFyUyZBK2FgX3dp
Q2RFUmhAdn0zb3FQbzFXRzFFRX4kc29kQUVkTVJSJSZ+V0l1M2dTO1g1V05XJWxwK1A/CnpQeSN8
aDJ+ajQjbmNAWDA+RH1qI05aPk01YWBGKzlnWT0we283T0hnYF4xakhySjRCOXdxPUZYb0U2aHNy
QU1zMgp6M2tNcGVGVjhtPkExWnUpYnlMaz1rSjkzPXg1elVWe1ExZUQ2LS0tbHpNQ3kkVyozVTA0
Jn4zZmJDelo0R1RHTlEKel5Xd3F6aT5tYXAlaT9SQnpPbnopUGRiKD9Sbnw2YjUrbVdaPlZWay1L
KkRSQ0hyKHBIVl8rVTBmcT0wcjJwMzQ3CnpMcm5FN1ZUVkFON3dpVjhDPXU+V00yVUdIZTt8bURL
TT0me3M/WmN9cUNRQE96QTs7QD1HNzBZQlhBZzdJUjBnIQp6ZEt5VFpOMDFjaEIxRmsqSUZ0NT9R
d0M+fCZ+Kz0lSWlqKGF0e207U3lsTlkwK2t6IWNZYldEVVBfI0JJYS08MzYKemgrZCMybW56N29y
e1dUVGl5PWBjMVQlPGozcWJsX24kc2J3aSQ8MEpxemVMUUFkVS08U05yV1lEYnYyO0AhTmoqCno7
T3ltJSR5TlU1Y3FzRE1tI2wkNl5WR3o3ZiVzP1FpPkdJc20hKEBtenNSUTdnc1N1QWZGMHJEd29Z
ZHclNS0kKQp6WXAxT19yKWo4b1pURikzYUc8VFBlcX5GcGtsaHhaKShnQy1BQGJScGtUZlhFd05B
JnF2ZGRpTVEwKTE4PTBUPCsKeitESEM2PH1tM3BoPCtwZzFqVVQwUEFWb3NNOX5+RDIzMEZKUnQ/
K0ZDWHhqeGF2dXVwPDtvfWIwI2VhNCE9ckwrCnp0OF9iZ193ZjY/ek5pX2BWRiZfIVlZLWw8KVB5
bWtBfEAzZzJCZF5TcldpUVhpeCpAdGRLRzN0MShfPmB4cHk9aQp6IVdmfiM4KGJ2N1koPEVCI0U8
Y35JKHBDbWgzSGo8QEl9YWN7PlQ/cGFZMkhNUiEwVHFmbUp3YXZlfHVKUFhMKz0KekdVYWUxWjwj
Nz4wMVFVUSV6ZGc9IUl9VzBteX12TzMhX1FfUEs1ekFZO2k8dTF5SCNOZGFoOWozQn5QclFLVVJu
CnpOYiUob2BIKiZAXzdMcHdeOSR6XypqLUB3azFXWSFUWTFxfUl0elVta18xe2dkQHJSNUc7dSs5
QiUxNm9APncqQwp6b2hsRDtPY0gkc1MlQUFoYXNxJjxMdmNHVVFXNXRzbkUpMWEjdk1ScyFNX1Nz
bXZWV3l8MF8lYzA4eEEoJmMwZl4KejB8Y1BiTTVzbkprcExFaDAxV14hX28yY0tXZ0JTcTIpK2FH
aSMkd3RvV2BoOD17OzM/bm4wQ3QpRjJ3NXFaTnt6CnpLU205TTB3QClPTGszbGpaM1dzVWF+YEJ4
YypHLUthTEp+VGBsVnpONVVLKH5hSGMzJHhreS02REt4UUI5OVNWTgp6WU07LWVwbDg3UjtUVDNx
Nj9fRzhnakE4cSFGeHsrPkVJUGBfNndxOT0yYXFHaCY5JHNOWkNaa0R0SEYoN2BnP3sKekNRR1py
LU5lZm5HaDxBdE0+TVhgJkBxJiNeTWpJcWN1KWlaaE50Y1crSng0X1NCKiQrRlIhb2RyU2N4PWxu
Wk1rCnpgcnNoIVlNK21mNGgyUT9Db1o4NlV9RVpuIWRhTzIhR3xoNzxOQU8mLUhDbGI7VHA4d1Y5
QG1WSmBsbSUzVmI5Kwp6YGFsKk1VPldANVR1RG5McFF7elMjdCFfQ01xJmxHKXpBVHlNblU4LXhE
bCsjcnomcnxgKFYtSEBYP1k0Q1opMkkKenlzOWxpO3hJQC1OTUhWZDZ3UUgmd0dYNT52UkZuNGp2
Mis+cn5FUyk3IWZCKElISHlyPC01MlFUT200bWxFejtECnotYGVYeWQpPlVmNUhKdXZjRF8jN3ow
X1dOQE1HR0dpZjd+NkpsYkFyNlIxaXBLRWsmUTl2TiNZSEpqKVFOZUQoKwp6NEJ0NCMhblRhJT9n
Q1JGVis+e2gkNXg0WiRydUJBaGA0eURDPSgtMjs5RDdxNTMxeWtROXxSUkA0ZnBLTjtmNlgKekpk
I2gxJXRnWjg5KCZ0M0AlQ3dTKUhyOUA8WVI0VjVQKUpMI0Z4dipOXjJsc0MlMS1WVyhaPElxZnw+
bHQ0OVgwCno3RE1qciRHNmJlJmZhXkorQ24rOFV3TDt6QlRIPEZ6Sz5lXm0zTkpkKzNfdmFva3gh
biokbHRtMjxgc2lfVk5UQAp6cXJHVlEkRzEwQk45bnd5RXQ9NVkwX3cyeCoxcT5CNXF4fVczK1R2
X3xKJTB5IT9jWXspWWclNHA0ZTcpZ2c0ZTgKekphfWEwNyEhYkJtbCE7V1RHZjxhU1BRP3s9eUo/
cUFJY28/Zi18dlZLcGo5ZDN4Wmw4Ti01T0YpSGhOSUxSQSExCno7eHkjfTVrUTFTUVg4PmxKbGg2
fkFFcFEzQWNIYTRFQH1ARXY3fG89enpDLWQmYTkrTlc0eEwwOGllJmhgQWF+SQp6NWIqPGpnc092
S052ITd7WTJaTHdrWCo3Zzs2b29GeyUjV0chQ1Z9KzlRPn4rVF9AeSMjVUBPPi1oNDBPYFdtMlgK
ejJeUkJmKSk0RD4kWWlxRlklWnEqUml8N3dZZUBla2ArX0sxWSZOJURlbkowV2t3PiluXm85T18h
fEpYUUZHbEotCnpMdCFfaytpQ05kZjJzZGBqZ1I8fCZ0Kj14WVJxTCtsTExjdEhPNUxnKl8zTDg3
IVNtQ0tyQipkaGNVSUdQdGs8ZAp6WVUhRDQ2cSVAY1Alc00oSCFgdkZKd1U5QyhncHlSR1lEVzBG
clpaa0dOSkwhXmNWQF8/MS15JF9TdWlVTylDPUAKekl2fVJ8VEwlNVVDMGooMUNlYTlHRD44QHRg
ZThndmE4OyQ5ej0qS14pU19Way05fkxRTTlkSnQybWh3I2ZKeWRUCnpieGtCMVliMzF+YGF1R080
ZyREJiZUMGVyJSNZUzg5Qm1zLWlCRFQjSHhUTVplTCZQaW4mSzZjSlpxcGJvMGlAJQp6bDJRSGVt
VzJpNiN2e0cqZXM8KTN7WWlyKiZSY05mPVNDUnhoTlcqbVdAQnNhKlBadzRrNj0hWCYmUjB+JmZx
eS0Kej1tJUk2IUVqaVNOUDxGaUtgQXNjaT5SYW9FWVhfTHkzI3o/MUA2ZV9rek1JPjE5bkV3UCly
PHspJDw2IU41cm1qCnpWd1VBZGp0LW8qeWhQanlgN1Z7cEBTJl5yVHlAbyskQHdtJCNvPWA/b3hX
PEU5SFc+ZTR8RzNOaHZ6bEA7V09nUwp6OHZjKysqdiZ9ZHZxRTNzUHA5KHxmRT9zMjBpMEx9NDVM
fFA2Slp4QzZ6dD0yJGtoKGR2MSZ4c3pEU3tzUjR0UT0KeiVldzlReUhicCo1KSslQ0xLWDR0aCNW
Y2NmOXNfQ0djd3ZnX1U2Y0AhOVNqI0s2LWFKZV5eP2QjWmN7VDxuQWNVCnoydUBeMks3NGIreT5D
SV4+M0wpJGVLI307XjVsVTgoQ0FRQzZNYXtCLXhjYitrKnEkeD89VjlyYmlHU2xeI3koSQp6WnQ7
JEJIfipnZ1EqcVRwYHJIU0dyKURkJFNmcGR4SUEmWG9tPmA0bEs7R2EkcWBQQyUyMDdWLXtNSkZi
YnA8MEIKekJ8OW9UcUB8PH1maXxKPjRjS3NDISlFYlkoJFZgNSt8UGI4KSZ9WHsmd0YoUGYoXnhn
YGNJdEV0NGBMQTVoX2U+CnoyTz91WmdeeV9wQjdndWdKSHxDLT53KXVMbUZSQU5XMkVtQF8mX1dp
Kmw+V29qck0pK1VHWkJWeyl2d1ZKeD50Tgp6PGRDMCo9NFlpbTQqPVV4dDVKeW9uTlF8MilqNWFx
ZnV3ck1gOVh+ZmA5VkZZfDhTWU9YTHZuKE1EbCQyM2lJZ0sKenZPUSgjJD5BeClUTzw+YTt8Pn5B
N1VtTHhSdTRRdkxOU3hkdUZ4fCNULWw7b3AqXiNWSnU4cCp0O2luO09+NkJCCnpnRntNRUR4RGps
V2twKk1INEAxM0coLXh4RSpJazI+Nz1iVXFeUkhGeileNX5EZE9LZkpSOS1NdSFJWXtyTUxWTQp6
RShESyM5aTxHd3tiQXxDNjZnSlh7Iyp2Q09kMXZqMWt6e0dMTnstcjglOU9aJW9XKHQ8ezhpeDch
PjN7TlM+Z1gKekFwKG56a1d0YGVUJSFXVz8mVkVOQjl8fTNzNUVZK1ZmczdRLUs+OSNTfmxtIz4p
M2BIXzJsOTRFcXE7bl9xdG9xCnpLbio5Py0tdipYQ29BeT4hMSt4cygyfTBwbWpGZGFZR1c5VUwz
LTNBcyN3eVBsQColITtCbnkyMms+ZDc4NWNmQAp6YmhZT3oxUyZsRjxTaXJyJEIzbld6JVN5JmB0
VmhMez9AUDJnYDt3VikpNm5LLUtCZ0AySkt2JmJ9bGskJXBOaWsKemthX3w8TzE0cj9sdERmPkQ5
byNROGpjKmtLJSRJM3JXUVN0JTktVUxVQGVzPkBqKU92djZeY3tWMnZOTFZ8ZzQkCnpYTD13Zl58
SW9IQ05wJHwmWU57Nz87YSEkNno8WUVFYFN7bDNPfmgjNW1hQG1SWjlHNyRpbEhjb3EzV3pvdmIl
dAp6MjZfeUQoZjt2YE1fTC1pY18ydWduOGFCX196KUohJHo3LW5sO1B7Zz5PUl9xNXtCcTwtVXNn
T00/QmBaIU1VOHkKempgamxpVjU1RFluaDEqXypOOVVsPU1HUzAzMzNNRnBifU4jYCo2OWU4V2pY
I2ZnazB1IXpse3hONXchZHwzVUpCCnpCNFNlaElgbCFaMGdjTW93fj9ucDMpVFhnNUUxJU80fEAr
T25odzxhZlEmKmVlcjJveXYpUUBiTn0yPmMpNit4Qwp6N0ZKPFNCblJBY2AkVXNyZkNvWE1lWDww
djBATXJtZlZ9PHl4cjJtfWx1eEp9OGJnR0hZOSsyUCFmZ1d4Qz93Y3sKenpxbnBSeUNgO19GZjx7
OFM8byVBIUR4IyVUTDkzQS17dX1ZMDUkci1tJGBvcmVLZFRYSDE/RjJqV2AjJGtSa2d6Cnp4akY9
XzdOfUFQI3k3d1BuPG9UdDBhM2N9KXUzYFlZJUBEZjBCR3FsIzNMVE1Pd24rYUhfS0A0ajNsMSs1
SmdkeQp6QWRpN1ZzU299blNWVE5se19fZVZ5aWxPUyZiSiREXj49RUxoKF9OOStaXmxXPT08ZyQ+
OEheVXY0MUlxZCphbioKemxZVFlyJH02SGk8ci14VUAoMnVFbHJaa2FARWptUTIxaWh6SSl9PlFN
Ylk2UmBAQVZydGdjVHxyYTRnS1RGbExuCnpWQW0hSmJ+VlN5RCNHS0JOT3xLPUozXylxTHgpNSZa
emZzays7S3spQVo8cV4wX1dZUmA/WUlQNExlZV4yIytZSAp6Tk0xenI+WUVxVT0rMnImYHNSQCVR
PUJRYlVFaComUE1OfD93dCEyekU/QzNGRExBWmVWY1NPIUFHP2JWZ1h7MkQKenY1fjcwZmdPWEwr
PTJNfUF9VDhMQkQydDIye1klWkszK2U7SyQobkRfe2RCM2ZNbHRMWVckQz0pTUdWUDVMMV4rCnpR
b1pJOzgkS1FpO0RJKUFmZDQmNyljWW14RlNPR0dhUVJ8I1Q/fTFqWjI+ezJoRERGQEttdW1eVnQk
TWlEJnVPeQp6cGg0Wl5eWW53YnZTUllARHhHJjtzVzNlRUR8ZFZhYzhve3gkZEFhNnBlS1NDUDxs
a2xBc1UxZEswIWRoP1pBRjEKemVBdnhBRVpUcUgxc0RHT2ZnN1hJdVA3R1pjWVdRU0VqeTJHK0Bo
RldwTFZyLUFDPjtsZGlPbUNGMVlaJThGQldnCnp4NUlVcE9JRWdRSmhwUi0oJmN+QVhJMzYxKHM4
P2xeOHV9SW5NIT5uaC1MVkpEUUBxeWo1Yks/bT1rS1I3UV4kJgp6KUZ4JExzeVJFcmlBSkZiZEFP
N01CfEp8RHdWKjJiUUtadkBrPkxfIUdneG1kZ3kxIX1yVnpmP0EqMVlyPn1DTjMKekIjT2IqaXA/
dWhzRDhwT2IzeHBFeFpmV01gK3cqVT9fbThxXz1kVCp1PVZ3dSZ3Qmg1Z18mKE9UbFJvST1WRjx4
CnpUb3RQY2AwTUtKX05ATU1TSSRyNns9fXlPSEY4e1QyOzVnKWVQNXNmbj5CJXd3ZFM8MD0wTG91
RGVrYjMmUkB6aQp6czJUT1lRfHxZOyVEczQyTT82akNZfmpsb2VKUDs7Si15PyZeb15TIUJTeHl1
PDlSP2Q/RURYfHt0RCYqY21KcXQKekNIdSpFQ2J9UDlleW5VTFJaRDB4UCYmU2xhczdiaSg4eHBa
IyFCNGVGbVdnVkEpdFVzNUtUWkNMaV9gOTEkPjhkCno5djtGI3BPb2k3cFRvMGhKV2NkMERjJU9z
bjR8cEp6NEkkcmppRVBfLUdlfXNRTEtqaUBqIzljOztTaT9La1gwMQp6NT18eyF3Z00tYGVyK3Qo
THtYfVUqZEpBRTRaRHE4WkFkOyZBVV8kM1J2PS01czNvbDEyTFZANXd+OC1OelVBPWoKenR0emph
IzJLRHlRR3NxbU5iSXZDYmNPRTNKN3NJXkhHfis2O3g8SDkocDM2PylUZiQldFdTSyZGeFVWcDw0
NSgwCnopKHUpWVBTcXB5XzZRPko9OztOY0ooNEdrUTYwM2sqKFp6OzlfY2M5Z2ViJEVNcmZadXoj
a3E3QWNPREspPkQ8VQp6UTtpTnZsMztXd3d+e19qSVZ2UWZDfVF4JEcydCFlP1dlSnIqIUNkaSh1
cit7NG03IyN5dy0pJGNLKD5JTzR8Y0wKent2NCFKd0I0aXQyMFVxdChXVm9kc3oxNyQ0KTNOP2Yw
TzBgKWZgSSQxMjhhNCVtV3lYQEN6bGZSSDhBLUFONWx+CnoxUihaQytmTVY7aTE/QDZ0VDx9VWQm
bXQkX3lMflZQPzxOemJBVjFkR3E1bHdkSEtkeENleU1HSkBoMktBLT48JQp6K31vR2gyOUlnO3dy
IX5zaGsqTSpSJjg2ZVg0QCglbktnTmlDd1JXPVh4fVA1TEVoX1ZQYnpJaV9TKXppazBZRmQKel5y
dytJLWpIaGcycmltMSRMVFNLbT1oPUlpQGAoU2BGamlHSnBqPUM1aV58ZFpgNl88RlJ6VE9yIT1D
SUNpaUNpCnp4UXRQcl92VSRqcHRjXlJ7OzJxKChWeXIyKXdPa34pfG1SfTlecUxVeGQ1ZDtlTj14
NjglYjIxcUJFJUlnWk9VfQp6U0crVWV5TlVndzlJaG1nZ05NZllnSi09b0coKVJHNSZfdGNuK3dF
XnNHQUZlS0FqeXdycDhOWEpVOSVHIUtnNEcKenYwfHZhdU8/SXZFZmJnX2VnVVd6Xz5yRHlsO3Jp
XkRWaGNPOW5GKzxOY298TnVwYmxoJGtVKnRGbGY8ISVGe1VjCnopQyluTFNHPD1YNXFVSkJJbTE8
Uyhqa1clXkl1NndGbkdOdGpXX0RRTCQhdTZXZTc+YExMeGhBSlRAMW0rekxlWQp6MGg+Yjwyem9A
WSR8eXBJYiNvTTxxeG5jWjkhMlFyU3dPWEBZNG5gazwmKmZzeyh2bmJhdHpNYHEqNjJoUFZyRWkK
entneF5LWFZ8NjNzXk5pcEw2cWB6RCYqQmVSZm0mMihveVFrISlCeV5ydm1UNzc0WldSYm4yJSZA
Jnk2JWw0S0BnCno/fkxiSSMtSjFJOFI7JFJhUVNsLXhDbHJSVl8ldUowOVlxPDdeUDNAdmModXIo
VE8xbEw1K0NgNmpwMXBsI0xSPwp6YHpTZEdoPmNPZkNuNSlSNyk4NDk0MjRFSzltKHlMSVlBb1k2
QHV7UlVmPzsocD14OXRQQHZjdFFOfkJuam9fS14KejVyKClAZ2pKcCFSSHExIXREek5+bCVtM15O
JUk5VlNkMmdEcFUyLW57Oz5SX2Q+VTRnbX5hKTNhMDNTSl57Nz04CnpzUkJuTFdxRV5Da1kkRk1N
VEs7WWRTJm9wNlppd2gqSlErYzdYdS14KlJNckxSclNJXihIdzkqWGxgXis7MTQ/OAp6QylrYXJF
PnxoMiokXjxFM0BDQlE0RTJUVD47bUBaUTVlWENifT1NdztVOUJkeCRGKEw+KD1YQGVEYj1Fd3ps
VWsKenxOTzdUIVBSVWtgaVN2PVp+NmFlP1BgT2Z5M1gpQCo5OEYpUTR0WG8qQUdERCErck9BMGZ7
SjVnVHp3WE02bEslCnpCN3pEUyE0RGRuclk1bn04Zig/MENLXnFuWCVuaiF0K0IqOUhjZjJEd3ZP
b30qMGxOUGJleFJpa0JzZCZYe1kwNAp6cHdHR1lTO2ZTRHtLKVF9ZWN5QkxJblF+fC1SSXVEX3VP
O2R2KTI2UTlLQ1RRVyRBYEBvKjkjenZhMFZYbFZZeDEKelpudz8hYERkZD8ySHBERW0oN3crIygm
aX5JMmt4R0preldYZ1JVOWRqem5CQitrP21rbkJmZWJmRTVYe1V2QDMmCnp5My02Q2FwcEZ7KnM7
SF9IU0BXfmpZbUlZaVRUZlAqMFFOfng4blo3MD5LQzRMS2shNSNnOSV8QHRZZW5TJVRaTAp6ejhp
PGwyaiZ9amVzNXZuVVE+ZzQ7dWYzbCs2Nip+LUZ4dyRnQXIleHFzYDB8SlUrcHNvNG55ckZ5PCVF
WlVjdDQKem5DXlRHUm1XYjk/fXw9JHdeVCg2T2Y1eUJzK0w0dyQte00teU93a3diZnFMI3dZYmcl
WWUlSn5TRzhwS1RgVmpWCnpVdl43WCMmfVFEajc1KmQqRkFLdyg+PWBYWUI2bXZxNVFARThgflpu
Uns5VFhKbnFLdmROVmxAXkxpY0dVKTtZaAp6P2dQeGlGPCN7RGRtQ3NkN25qbGh4Y3l6K19qY1J8
SGoqaDRkbVdIb1lsPVl8NUhQI1ppTXpJJGxLNDMoMSRXQyoKemlLMmdJSUVjNzgmZ1ZNUFkoclU3
LVg3NUc/IWhRTTh3O01JOVpiX3RIeVF6WGBnQCZsTjhLP3kjdiN2Mjx+OHxRCnojPiNaYzhqckdl
SiNKdl5nS287MUd7a00pJGJzY3pjRSN9VENTI2NCQ0F3dSg1SVNyJS1aY0FQZnQpYTQrVz9JSQp6
eSt9OVpWYDtrP1VwRjh2d2s/TD1qY3JEYzEjVU88eCRRYiViQHhhcl5nO2gybkVhLWx1QEorKmZW
NV9XU2JRUk0KenZvQihDdG1vNEkyRXpmUW9BJC1GOEhzclI3MDYxK1YjcEVQamByYWBfRXVpSSZC
aGxQPURGVzBwTVd4RVVvMXMlCnpBO2ZXO2srRVI4JilOQUs5VEgta1o7Y2YtQlAxfip1bzJ1SF87
I3xHWl5Kbmh2JWo0JF54QHN7WUJaenIlfjF+Nwp6KnVVQDJ3PChEOz9oUzBpYWc0cWE9aU91LWBm
cVJYJTNQX0QkS3xrR2xzO0Y7d2EwYkFiJHc5NXB6MSoleVZ1NHcKeiM+M31OZGAwfH4hUFNGJTI0
NzNxbyM7KWhQdSFpOWx2SShfb3BnUTMxNERLVXh0ZCYtKyV0NlMoRGckUHJ4ZDV1CnpyKSo3bWY3
cVc9dDVkc0VGQXEte287IVReaF9uJilCaTxkRUs1fjBuYSN9OyQ9fjIwKGNCVkleemRPMm1ecD9A
cgp6RzlucTlHdFExRjdfKD4wQ3oofjVuPSgmalVlNWU1RD1ve0xIOXU9aCl+VCQmV18+KDFXJGRE
e2hzSXRYPU50RVcKemM1MyQ0PzJwRCpqKD5qcVl2WnFZO3l1JG1tN1hAdzQkcUFWRDxfPHJJQlZr
aE5zbWxBSGFUdGImZEZERShzSF9VCnpfVGArJnh0X1p5dz4kVDI/ek95PnlwPyR1ciRuWVNQVSlR
Km50RXdrK3E5NEpvQVhjUC16PXlvKmkoNDZATT0rMAp6KGF4ZnEofkc/cy1jeT5aa0xYKnoxWWZW
ZS1vR1B8OEYoUys0bUpoUGhTRWNlTG5wJlk7cmo1QUBGJFUpJGpOOSUKenZeTSY1Xmlwdn5Ac2k+
IyNnfEo4Tjsqc2FRYVpEPXglQi1SNipGRWNPRCZzUWNCYnQ1Sj5Ha3NvI35vY0tsNWJ5CnojUGFV
KXp0N3F7PnREMEdYYUJSSnc0JU9aemtUKzQ1Nyg1b2p+TVZvNWE2Z207TlNxaXNkKXt2UFYqYyQo
KWdzbgp6Nl8+ZDIqdzkqdW40PTR4bDVlOCFMY2lASD5Wd1IrSCs0NjkySyVWVFNzTnVwSj5DaypH
M3A2Y3hfbjRJNSZCSykKekwjKVpKUk8tcGwxSnAtQ3VjZHo4Tl9XTDxfXnN1Mj9jQV9vTCh6KVdV
MkI/S21iSkhhNmZKOVMjaS00OCUtUWIzCnpsfGMqRV49ITV9YWgzMmdnM3QwfCNIPTQkMUdhaUZi
QVBHVDIwMEo7KkYhaD9TRGAxKzFNZX1iQGl4fk1GQHoyfgp6dyVxRSM+USFyemRwVkFWQkZ0ODsj
dEg7QUlFJndsVEVBJGBoaUBHWlZvT29GMzg0a31EXk8rdUB+P21nYF8qPFcKemlqclIybUo7aUop
Vj5ocU83NHBGUyl7XkdWZzBgcmNzXkNgMGxPVT91Jn58VTJMby1ZdjBMRi1jLXp1dTxtfCorCnor
YX57ZHc5K1kyZyF4TmVTbF4xNHRwY1hXKH1lYiF3bGBwcDdoeDI9MkAmamZBST8+R3YtZnx1XjZ0
T1gtQlVNTQp6PTNSdlN5JkF2cjh2T24odzdMVlMje08xMiRMRW59QXpJdmtfTF9aU1NteH1MYHxT
OF9lKStKRUpsSVBTSk9lTmMKekVYS1lGQWpSUWgwN3MoeiFwZEZ0QlUyfGY7UUt1c3IhRnhiWG9w
JVU3JCpgWkBvO3tYQWM+TUJMaj09fTtuTDZhCno/R0JkXyo1NUZ4SDRVQXI+M0JleEEhOCZ7dlNj
aH5gPGZYQzkoWGpHRDNmSGU8WTNaazleNjdzI2pza3F0QzIkVgp6NG99QSFUZHtfX1VqaD04NVQ/
M0NCI0lUU09RYU0ldlNwWkdJOCh9SG1kd1RrbHtyIT1VJT5oT1VhNjlLUVo0dCUKemUybHhVa3VT
KnRgTGNYUD91V3lrZztGYlp2UGl4dml7KSN3TD5ARkFkWmE7P3AtWD9jR3wzNyRyZmlYd3ZQeEQ8
Cnp0RiVlR3RkV09ndCNuQUl0ZHNTIUt7aVU0ZHxlKXZQNFckU003fUFIJUN9XipKY2o/MkN1RUMh
VGV7XnR2UUBxLQp6K3ZHe3ZGNWczVSlifXdeYyRlJiFye3JuKmYkV2lJPFhQRChge1glWDF8Tns7
PCVqWnU5RiMteXFXbm1IRUhCQisKel87Pm49OUZlMVBPbnhkb2F2YWxkZWtMZDc3Mkp2WlR6Y2hJ
SVc1MUNHWl4pN1IoPmgzJCo8JmZjfCo/MHVqTXliCnorenZ+PiVKMWEmYXNnZSE3dilYKTE2Q3E8
T1d1fUNAPCtLV0A1SX11Ql58dTN0O09zMFJ5ZVpVWW9yZWVsPWdQUwp6ZVRANGwxQyY5XjVNYEok
TEsmcWpjY2liPGstPHYkb09OczQ/TVNlNHdrPDxtcj9SbHVESFFoRm5kZismYlYlQz4Kek5aU1pW
eUsrZG9hITkqIU5We0BLOCl1R0o/WiFhYl8+amE9Ozs3dmlxIVVreHJeSGpARGUtKjdeQVhRU0pS
azlWCnojUGJvKU0/ND8jZThscSsmcmR1KkAlK1R8NlZGZFBLa0B2O15BcGNjSlV7VVEjMHdCRksp
ZTkpMD5sZHRGRj9FaQp6QGRDc1A1SENvKUFufTY0M2xjOSN5ZGQjeyMwd0hITlczOE5MY3xMWkNx
JGVPYVlEb2k1aHB+UDVPRzRwMkBAd3cKenlUWmZeNkU5ND5GITkyfjNsbEYpeWZFPTEjRVRGd0xj
OXBeQkUqWGpGRzlRc0BnbF5GNUhDdStERGs0aWl4TXdOCnp5ZVJSYSNFVXczTzVRN1p1aklYWW9w
TVY0RUJVWUZ6bW9xLXt3dypmPGlDPnRPOHpWUHVqSWR5fDRSTlZgTEU9Xgp6bEspRW5FQlVZRnpt
b3Ete3d3KmY8aUM+dE84elZQdWpJZHl8NFJOVmBIdit0JjNSJnVsSylFbkVCVVlGem1vcS0Kent3
dypmPGlDPnRPOHpWUHVqSVh3X2UkTz9kOVVPPnkjRnxNa29RWDdEfHhUdnlee0F6LVlhPnBBJV9v
Mnt3dypmCno8aUM+dE84elZQdWpJZHl8NFJOVmBMRT1ebEspRW5WQChMaFVoLWViZTxsQnd7OCNj
eyQkdXNQbUhiIW9VJigoWgp6fENSaCNAP1hoK0NJNk5EJEdtWEk0KVJ+Z2U8bEFsI2B+eXE5QklA
IWpffmkoRUIjT08kZGxIKm9gam0oPDA5TVoKcGojdEwjKkd9azN0KChgQXdnQWViYj5uKkNeQjMz
Rl5genpGK0MmeXl0dnpPMHt8MSVCNnhzaikKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cnVubmVyL2ZvbnRzL2dseXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIud29mZiBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL2ZvbnRzL2ds
eXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIud29mZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzU0MTgyYWE1ZDRk
MWFiM2M5MTcxOTc2YjYxNWMxZGNiMWRjMTg3CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyMzMy
MAp6Y21ZJjxWe2omMnZ+X0lUbiVFUUR3cnl2VU9sJig3K3FQfW53ciVUKUAjWHopKXZkYXhZU2xo
I15+VUtzZkJKT3EKemM5ajxzMHxFeTY4UU5HdCRwNl9xZiZiekUmSHdLWjZIfTF8MHN7OD9RU3R1
NkFKelVfYVM+Nm1BMSg4VDZhMFYoCno3enprWFVZVVhFTjkrOUkhYXAhREZPZCMxd2xUQj0wc3tH
PXpfPnJ3TEZ5SmQtUHB5NjJuWSFEemckck5BQyNiPgp6V19JUV9LTnsoZVUpXyhOc2Q2SmppTWdU
VVBifUUjfE1+I3xBKD5tZG9CZTNKS3RPVkVLdFRVXjJuZCpvRWxkcWYKemZQaj1QZkJhWn16eUBO
WkBuIUtOMHMkISN7cVg8bGtpc3k1QXpJaXR4JjNIN0tRKypQWUNRSiFBeEIlPTh2cHBJCnpERXcj
QEtXSnIlUUlvU1Zibzs1UmB0Y0xAVXB4XkE3O3hAaUxtTntkQWhuLWR6eVV3Jl5qZlMqeVJ4JSZi
T0hpVwp6Jjs4KjdLZXJPcENSU2B8PVYxQzF0RmArUk5CPHZjP2BoQ25PXnRybXRjfj07QV53OSNq
bmVVdDFeeGxoQnlheEEKemV8ODJBPE5ranZHYC11cHY0TSQhITdpdX5HejV9P2twV28wdyFrRkZA
b3lqP18pPWhhQWZXJVFuXn5HPF9WJGtWCnpfRD5FdGBUUDQ1IXc1MGM4IXtUTDEwUkFHKWRuaXUq
enJSXkxUcm59Tyt0UmIweGR+MEUmPkgoJDBiclNHSippWAp6OGJVQXM8ZH0tJW1tVi1jOG9zZXZt
azZJJTVVQzd2aDAtYnkpYUA3JnkmP2szPFo5d1RnVClVfCpsS3NWQVFfck0KeismeFhQZ204Pygm
JipzRDRTR3JVNlZ9RFVeVjxGRCtXYlZnQ0w7LUQrOHtPTlAzeHxiKEs/Wn1GcVF5REE4bEVLCnpm
eGNSKExPVCp6Y1dCWXdlcUNpJXQ8aDJ2PWRINGsjYSYtYWM0O2dUIz1rJSNwZjFoeHxIVSNWZ2VW
K29BQykwNAp6Njw/IUVXan0qKjIwM1JUPSM1QHdtNzdQRmVJWCN1PD9vTHVoen40PmxwaEV6bVRI
aVdCNzJgYW5MdjRWdUVZfl8KemF9V1ZadV56VDtSLX55JlR+QllTaUo+MDBeT35ncGw5cSR6SEkl
WT5MaHNyLU1hT3JiJXklcXwoNDJwWDw0YmNlCnomJVMoRUlZR3h9cTh+QDRwWCpFS2RTP2g9U0km
dEV2YEdHTTgpQVNjTDA7VX1icm4xMHY7fnAyOzFOT24yVW0kVwp6KlU9aSVWdXdCUnpAWjExcUty
KHFnTzh2ciomWDV7PzEyZGR7NipsYFlwYD9rM01EY2loJXFJK2chcVYybjYxTHsKelMtODB5OUgt
Tm1yTmBzU1VDKnAkbHV0LXdgP255Yipnb1lYbmlfemYzb2tDQkF7enJDd1hEcV4kRFFCNVU/RFEq
Cno2MW8yWDlyNDt5QSE1c05gKWY2cGU5ZThwZ3VIKGNLNSUwLXZNZjk8YXpVUkZnQkBxc085JFJ5
UHFqfVZ6NkM3cAp6ODhJPnpyV1d0aF5Be185d1htSDBuVyR9d285aGZATXQmVio1bTJfVzBaYWN7
QndsKjNOMFd9N0Q2VjVtT3xBYlQKek1lUGU3YjVkMXFudFdPQikyKGtmSDMrMWhAYHFkPFA7LVlQ
S3RMbyVue09jPHItZXM7R084R2FMUWNTZztYSytMCnpgempROGx8VUtwbCQ3RT0yeCk+Q2okNyU/
V3NgNkM9RTt6P3ZCbUZ5KFp1VT4/WktBamRLbkVfJDNpeVpIbHAlXwp6NzctRnRlR1MyeD43cz09
UkM9RWdOYzIwcGl9QjVaWVA/PCo7WW4kN00pPDc7PD45bGpjfFFAfXExSEFYQT4/WFgKenstPD1G
WVUqOFl4X2JtUG4qZXF8KDZ9I1M9S1Z7YHxCWipYbiNCU0VPeFQwbjwyJTNVSmdsTTxsZHFtKXB7
R3ZrCnp6bnVkSDB7O0Y2TFVkZDI+VmhgRkp4VClOKl9vNm0oOGlIMGglPUZ7Q3paYVo4ajNkXnh7
S1QwYlJDX19eNzlrbwp6PXRyK2NBX3toQmdib3ArZ3J9cFRqZGg0bFI5T0dKWUlEe2YtaDdUZEZW
c1RZckopc1ZMKUBgTmVzfG1SSlNDQlEKejF2WTtEe2NUUz1NSzxNbTxHSiZgJT9tZnRfIzVzT1ps
JktZdmJSdD1YYmRoSEpsbVQ9bitmTzNyZ3BOZmJ9VyZECnokR1VnR3Z+THQybWxsO0w4QDBmUWdr
cEdPbG9vS3N8RDkmVmBEQkxzanZCJSFUMEZ8SW0lXy1qRml0NVdSKEZEPwp6cSp8JCZ8SDIlODVe
RlJ7ZU8qcHNBYEx1MENVYkZqU1dwJX5kcHNDR0ReZ1RTVFI3TkNTcUxOQSYpYWtHM2V5UXkKejYx
fktSRDlARH1KdlJYYTVBaWtrdTlZUyN2KTBkOzw+dShXeSV8ZX5JeX5RSWk/S0pFQn5vWEtIYkVS
Yk1TV2J9CnpaJDRvTG82UTchSlk3RSZuU245OXNhZGFsM1BNVn57NTQ4Pk1wQUhZMkgxVGBaY21G
OyU3cCpHZEApWjJYJFYlVgp6JDFiWVVgYTd7Ti0mOGIoN0VLeGFEXyN7MnlOSSZ7dDNyeWdMSVFo
OGkld2R0UV5BNFFXUHdAQVVrSVpqU3R5UnkKenQ2Z2ZWUH0keHokd300VE8hfjkxMGdXYz91anJ8
SWAlcnhvKn5aUkpqMCl8YzJrZjB0YjxKJGIjNWY9NGM4MXgoCnpaJTcpRTs4TWthN1JIPGpnb2Y4
bE1hRSZ7RzhSZW5oIWt1K2hWNWh4dWNhP1VIYms3OTJ8Nykqcnt8ZnBHdlhEQAp6cjlpUUkqekt1
Pkh9akxpKj9oNyNhfXIjM1VjSWglPVJxKzlPeTx9OWdPWTJ2eSRAS31peFRpby00WD1NMUA5cUkK
el49SyFxej1oP2JvYzchRG4mTzwha2lPcSN2NUcjPm88SmBYdmhNeUJEOFZ5e2FPPE8+aVpxKmFC
aDRoNyprWGhPCno+cGNYay0+MERTTHBgSDhnQXlgOWltajNSclR3WU1MbiV+YXgyUjt5NnokUyNi
dj9kWGgkbiFme0klfEY2Q1V6SAp6TmdsSnImaVgoT2RoT3xNLXppamlvckxSaWtMITRiJnY8LUk7
Y2IyVSo5QWhKcWc2S20wfENAM1VQaTNWdUllSEIKekU8VkFyZXtkYk1PIWc+dkpra15kNzY4Vjst
VTw5bjM5PGZTNFohJU9FNlAqKXd8Y2Z+eiZOSjlxPk9FendIZWJWCnpeITs9b2hWTXsrU0ttTm1j
KGZIdU9hak9nKWVaZzRnUDlaP18wcl81QyZ3ZDxfaHhvb18rPDQ4a3daSntZM2tkagp6LWV1Unhi
TnRTNE9Sb1VEd34qMHtkP1lieWJWZipaJmozZjBEZnxwNnd0Z30jKXt6NjB2SElWRFl5dlhZaXF0
PEUKenY0Mm50UkR8ZzY7UXJpQzxnclRGcDVCKUxxZDN8OTgqVkpyJHJTVDZqMWI4WE55RjVgcGBj
VldKZHgjUmtBIzNlCnpLfmZJMEx2MzRxOX4yXmZ0R1JwVXp0MnxfQ3Noc18hI1dze20lZC18UHF+
ZUdmeE0yLXROT1lReEEpeWJvJnRQcgp6eX1EKn40bShGWSQjcUJoe0psVnxoY1Zrbi1AKDNxY1p7
LT1SNUVNK1NaJlBWSTshYWAheHF6Jmhwe0I4PXdyZTQKemcxPnc1ZkxzdElAO3dQaCtCZDVsZFc/
fCNBSlhEQ2ZSJWVVWWV3XzsmKCtnNi09VGhDP1MzPjh3Nz8/OGNZQHJ4CnpYQU5SV0JPQUNiQTZj
Q19sNCthRiEmTlNLTW1qPEY1MFRlTV4xMT0wJEliT2d1V3grUnk+bUs0UFpvRjdVRyVDNQp6ZilY
JWNMQyY7Pl4kTmRVaGk+fU9hZU9oLTAzUXQ+YztyQk1sOEZYbGg2dSMrVDspYU5RQU03aVltOU13
UUF3USQKemF1Tj9pWEMtPnhmRnw5QT5ZbjNyZk9rVnBtKzgmej9MbXRVY1pURUNkVlA2QEs4TmA9
TlZuJXd2Z1lUP3d2KH5ACnpSUWkxc3lEbl93K2lBdzYqQjJqX0MjKjRPYT0zPj5Ic3hMRnpmYy1s
cUhpQldQc0c9dl9ScWZuYV80djY9WHhEagp6Yld2WD1iQ2o0amY+LW1HTGEpXnFUKXlFTU4qQU9h
Nn1ZPXo1cl5XIzUrZUIqPU5NWUZMbHhwfGw7VW1rcnlrbW0Kej4xUGJAPWQ3Wk1YaC1wPEB2TlRE
eyVDJSR5JVlZTi1WVEQpNSU+NVF2UVA8SXtiZnVOSiEyZ2I2bH5jXmxgcndNCnpHQD00bVdUajM5
XnxmK0paSk1fQ0BOO3EzLXlHa2smbmRJY1c4KWxxdHxxKGJQXmppZ0c4NzVeKm07Ym01UyhFKAp6
JHNjcT9sKTtmRzZJOHxKXlhhT1Uqa296Uyl+WkV4NiYlYmA7JlMkP04hNkE2VzBZcl5gJkhCbl48
bG1vOE52PW8Kek1KZHQwXnRhNkcrZDhXcCliP35LXlBrZUxAYEYwUSVJRCMzYU1WTlVyS0Z3cHQr
WkVJYyRXNjVNZmIpPEpZNW01Cno5aFFeYHohUm9tMDtwQ09jV085PmxwTFlKUlM8Tzw5X35JMEZ7
SzFraXhlRik5WGxQSWVDeGd0MmQ3cmAtbmJaagp6VilmX1VwdlJTdjxWS3A4VjtJfUw3TTheKlcq
Ry0yT35ne2BAeWt8e0twVyNzQCo8ZmVCb3w7aWVARHlAaF5+bjkKemNYbWs4YEVlanNiKFBEXkIr
S1B7ZiFebUtsMiomMzd8SW1YbmZTP1VRc21oMmYkMHpoMyZwbyU/fkpzcDBWdWM8CnpZJmEoTUhm
eCFtYHV8TmM2N2Y8VGJaMnIjdj9hRjF3WlNnYGtxVnlRNzNDfXhFXkEyQGx9YiN1bys3NGBhO3km
ZQp6eXB9bjhXYSN5PVlIRUItcmQyUlVEXnFxTFVQJHdRVTlWM1JTYGJqMChnTlEyVCQmRjZ5cXI8
bl8hKCF8MjMqMEcKejdnX3pDRl9VJng5XmNjIUIzaWRUQzlOdz17ZUpPfHxOZWVAaSZZVH0kbDhz
SHtNd2x8endrVnFKRnA+bXVsYz9KCnp1Ym9+IzZnfE1JUyN0TV55PzB+Q2BqVTIjYSNUJFZFR1c7
NkhaSEZXTEVkNkM2Z2ZoVHc2SHc1NlE4KlYrflZXTgp6NEFMIU5kRjY/UXhhVXBzUipaVGhaMjJC
ckcoKzUtVWQ4amB8OG5eP0hQWjcqTUgkWS1HZFRFeV88fUlwJVVIYCUKekNfeWJrdXZaVGAoKjUt
N3pUU2d0MXktQVhfPTRWcXtfeTFQS3x0PW44SnN6OE5geF4xUiNMKEhmKFNaKFJ9ZXQ9CnoyMD1L
MGBpIXtHVEJ7fkkzJEhaIWZaN1BFMEszbWdybE9qXj1ITGptbHpCe1EhSU5qVTJgNEpodmtWQXJo
V0kzZwp6MkJGRFJNTnVzeCkwUUs+bi17X0JQTGtPKnRIPHQ2RHooRENWd3socFdnNCRVNm1qV15N
PyFiKUs+P31+Yl4qdDIKekx8QjhAM2EjaXQxR3pGTEc+LWpudENwbm8xVEYwT01zLTMmSUNQZ0Ft
JGF3S3s/XzAlKFc/Vz18M1ltPDJCMzk5Cno2P3NPdj1vZEZlRnEtNFpIfmRLfSpBI1cwSV9GJWhP
Y3kzQihCPShvUzlOP3JaSzZSKXU4U0ZnWWw2NyVqJFZ6bgp6VDJjb20pRztrNWVqPjUmZihsZEFq
ZjtEUTYhNWhPU257Q3szQEhHZ0o8WSN9U0Q9R2tPaHhUWVJSJldaZ1RRaHgKekhfZD1WVDw/dCpO
Kz5meUhIYkN3YjtKV0lObCl0X0BAS21NSCtiazhRYHRVJmZSQm5RKCMpNE5TYWR4RE9aSSh3Cnpk
RFZgSVpIVGV2e2wzZXxZSk9qRykhKntRZDNCYmMtb0s+VzJMYlJ7O2Amcjd2PXV1WU59USFqP2JS
NnFRZjYlWgp6RHxVXkhhUD1EdXcmPDleNHdjSFBNYFZvMGQ4Iz9jd2R1dnQpVyFDWTJ9U3pCQnNC
VkRtU15xTnEpQyQ0ei13IXYKenV8fUdETlUobkNxR1A/bTJuR2g+c283WSMyajxzO29NRCl4enZ6
Q0BvQUVnXklrRS1IKWFJQWRQRSZkZGJSe0t2Cnp6P1A0THM5UkVQZj9fblAzWTM3dXR0JHhrSzFt
T0clVGNZd1JMLTgkZ0VKWHVCJnp7VXE8fD9IQm82S0soV2o/Sgp6bjc/bHBPKCg/ZUBvcXoxTD9I
RTFWNDR0R0FKO1JsYipHNzMoLWd2WipRVlZ9KXNEZVlrdHojT0x1Y0hqQ2FgaXoKemojR3tYQWhX
QGpxRGtvKShfKnUxJnYxUWdoRnx3LSEqQjcxbX1wbTBDOW83VGhzPzw0R3pVQ3prRU90Y0ZkKE4p
CnpSLU5LfVdhZkZNRHxZbjlVTkxRUSNwP0JlVXRXSFNJZWF6V3YlU25AcXU5dmZjKCVqazs3YTY3
ZzZ9MnYrM3tOOwp6SSM5VTZkciF8VTE/dkMzbWN3eng1MUUtNyY3MV9zVGM2PHUqJkl2NSZTNXMw
QTNrakNlWTRxRSZaKVAtOVRvRFkKekBfOXRBIVJwTD9qPEwhR0tTbjZWOCl7cElTXmpGPXJsbXpN
bFdGXzRrcGsrUlJ8WjIoUEtfUS0meWhXKigxQVlyCnp6RHVtKnRmZ0I3SGEkPXxBQ2hqI0lWVlBq
MWA0LXpFYVlBJjE0XzR+ZGhUQyFUeyo5PGRiI0ZjaT5TQUY7VUQzbAp6VFdUSmxBUUI0WG9XRHo9
cSVWbitqRVkjQXdUQDlBNTI7dUIqVz5YamU/Zj1gXnMyREorc308d0UpO084dHRLQVYKelZWZGkw
RSV6PUVIOyM0NEVXM1Y3WUdzZUgwU1UzYj1jIXBTVjFKMlgoKjR4ZT1rbkNNaXVWTWhGKWFSVW02
Nl5CCno8X3EhZm57fH4pUzd1RUg7Sm9XT0oyTXJrcHc2enlpKDNYSnF0QkVvYUVydkhJWXB9SCpq
YCgzTnJ3Jn5gbD42Ygp6WkhjdE8tLXZKcyh2QTZ1MkQhQ35NTVYlWkZfT1dLRVJxWSpMN2JufnB1
PmVtblh+fTt3PnhLc3grSG1sTW9kRCoKelJlN2p4dlNgVHI2dUh6X09gIXx5bGQrVnlLMEZRZCRp
Y29KJjZJNUpfQ0B0WWx7IUdNPndnOGV6Ql5zTUZHe1NQCnorfnRPPThETXw2OD4+OGtMe3ZMYSs5
c3RaVkUyJl5xKGo8YT1QPU1JVVFsPH42cXMzV2hrIVUpOEJhTTdvI3ZXZgp6SElkalV3fkM2QDBX
MHIqbi1+fHlyaTt7fXQ/a3dsYWlwIWEpZWlLTzh4O0coSjFCZE1ecWtGbXsoY1MmQFpKZUUKenhl
NnNMbSFFYDt5TmVufF4/YSV8Rk8mQlFEO1pIQ0l1cmF1USVsR0AkX1QrUWkqfUB7KWx3Z1hYOVMw
bCM0TD1ECnpEMGw4Z1dNKlFSWHghY3lvYDQ3R09GQk5wRElYbnlJbzgwUk1EWCsjI0tabGhfNn0q
b1lzPCNsTXtfRWAqJmF8MAp6OT9JSC1TYUVUPiZXcmltbHhBREcxMj5oM2wkKU08cVNMU0M3K2R5
biEjXjU+bm5vR35GK1E5JXUmX1JZTldWLVMKenU4WmlqMVQzdWRPN3lGKyt5N3FLOD9AUXk7aiY+
ZDI5Z0JyKD1DWjRsS0dacV4/MyNhalMxQ2tkWDd+QkY+Mys+CnpZWlZHI3FwbXpgVD9sNX1xQGpZ
ZTR9JnRBdUMqe2MtP0p5bmJ3WSpSMHdjKztob3RSITFDQnNIRVZ9SHtwRVZfUQp6UWJze3ZAI3BF
c0k8LWd8eGgjclFKZVhIfWRpYE58a05xakwkVUV+M1NvNTxGQD80cTVNYiFuTDdAbEdgJn4mTVUK
enVsSXBFdEdjJWwpdHpuQnk3STFhSSRzdV5IYXlpWT5aMGJzbC1VVHh0QnZxPUp8Z3UrUlA8Ylo3
bUJHUSMlU04zCnpnan4hJiZ0dnZaR3V8clRBMERSc1Y4VFFVLWtQJmZ3YVUhMFU3ayQ7dk51ZWFk
PFZVKHBTWEBub2pFWD5FcmQ4bwp6cSVDdSkxQ1BCejdBPUVFekFVUnxZQz1JVTklaHZ0LU01cyR2
UH15WWJyUzhfeEVmbkRGQ0l+ayZ7ej88IUcxIUUKekteaVpRZStiSGZgNyFJSFhRODNySmQjMX01
KX4lY18mK3V4SU5ONEJLM3tKZld1ZXpZcy1YTVJId29CRD53JGx4CnprSGwkJD5sNnc5RTw9JWgm
bX1wMERjVStmR1BNYGQoJGlHbytTM2ZKaGF5cGNJRTJ5VXs1SDwwSENnb0ZLe0dMZQp6Q1ZEK1A5
ZV9ldFhfSDlfdDZ4Yz9jPz43QHBiO1RPZjxkbX04JV9uSEopYEkoRn1jISRPRFRLOXVaaWxiTncy
dV8KemViOEMqSHlHTU5CZXlAM1FVcmUpYDk0K2BXN3EoekxiSEA3KylYLXtUJCE9cCRLPjYlciYy
b05EYFZMNjgyWUBICnpvOWNzfHZAJD9CWmJtOztUZUkmMWF8aERqcnlnaGVgTEFISFl0Umg9VmBH
OzgmaEg9dV9SKFkxcHYlbj1MSF4zXgp6Rmt2SXM+Vn4zYVBeMmM5Ymp0JEhJISZLSXNIRjs8NkdH
VjwmY3MzJmgmITcmRl8wVEpyVypWXkZgP2g0ejRiOVAKeilzaHJWT0lxO2duQnRQRTh4eXxjP0Ir
NVFoZTl2PUF7cTAkXzhpP2duPlUtIzNjTWhkRFYjcilnZyRqQlNIdXdrCnprfWdyeWF3VDUpSHxp
OGdQMUNXMHRHcjNzS1Z2U0g9QzttS1ltRXhpJjwjbEtRYnhiVmZoNzJwY1E3b1J2WEIlPQp6ajFP
WHpCb3owbnFTd2UpP2RVRXxOMGRBYEptMCgoPSZrJHBgPGhSfTRlaVBzd28kOWFQeXhMTzRpfiFn
PW1uVHgKekU+TDFjKT0+TW8qYX1MSnh+Kz47MnRjalNoK0cxcGc1WTZQT31wajgrO0Q8aSUoRXBk
akRIelZhNV5QKEghYVJOCnpERzlhSjs7V09pT0d6QjhYKU5mOGhSVXxJT2pjU0RSbi0yail6XmMt
T3pMc1dkPkxYYzRMYS1renhpe2RQU2lKNwp6ODxHT0l7aX5SRjFCcGRDdFRzOyNTfkZCYSFZN0A9
MXtkKFdaTUpJR15EKFVKeF9aK1Z2K2NON1ZWSUFKTTM4RmAKeiZ3IWhkQ2w4Zyt3ejlOcG5CPkpD
PnB5Y2lfdGB4c0kzXyp6RCRXITxoZFc2JFE5VWEtenlvMjVJJkZybEh1e3xfCnpZcCMwY2x2SDJL
cy1PeT9MeCFufUU3am9OKVF+MGNEfSF9V3Jidjxydl9hWDx5JVchJjElOD19Vnd8KD8/K3shPAp6
R0dwQkVeTWR0Y3BBPjxqcWNvQT05OT4qJDw0dFhWUHxMeWQ7TEFJeyg/aDJDdyVkREBfO2xILWpI
ZTlTK2kqNEUKejRtbSs9eXhQMztmam1SY00rdGo1V0skUS05XyghdyY0P1p1e34rdj1vfG88RkB7
d0R4eyFHXnRtVm1rT1Y1dU9CCnpoJFFnQUZENENlRG4+YHZ2S2VZX20mdXc+aVVPaHJuKTN3cyZf
NnZ4SHBNK2hDWXh9b3NDYzBZLVR5cTB6PGhaWAp6ZnBDUS17OE92R3Bad2NXXmYpfUxvKz5fSEg/
bHc5cz1RTSstUXtnUXh+Rm9jSzlqITghbXRiTlgmekJSMFh0JGwKenZFcnlhJFhOSkBtMkJAaWU0
NShaKDE5P1MwfGpARWVqPXp3MGdFPz9ZVmx3cDRMU2w3VkhVSG9vfExyYUZmMDBXCnpuYnc8fWVA
STxIYnc7KTtXN1VDYkRnTSZ3SUdrKiRFYDA4STg+VXplcyhmdX1uPHtWZFNOb3xUYCk3YXhuSjJF
Mwp6R04tSz55d2pOX3F2cVNZUyszKFRpZnR9QWMrVGh+Vil3fiNGMTNqO0R+JGlVRV4/enlybTdS
O0shRlZBZndmNCsKemdFZTUjcTY1JjJfQDJQOVhpMEBJektLPGtBciE8RFBqUT14Rk9hTE4tcnJ0
UjdnYzNSS3t+Zmhqd2RmSCZjc0tqCnphWmUxTTR8YjYxNm9HaHxQbEsheWxxU2JWKyVCa1VmaDZM
TVFCUERIZWRXMVJQUk5CczZiQm9hLWI7TjYre21iUwp6ISRORCFabWdGV21vfWhUZnh2aW5FfGd7
QVVgfjhRMHphKz1aOGMwbj07emlqYTxFdmprQD84ME00cnJUI1pRUk8KenJCeT9WZ0RAWmprJVhR
YjVVMj5CJE1yPXQ3N3pqRHdecnkqYEx+aSUzaGp2XjZsfT9nTVRqbm1IUE55UkQhUkU/CnpWemVD
PmdrRnVXPlY1UHxtcyY1R1Q0T0BOTS1taEN4K2EhZjApTFFzREFzeyFpKGNFOU92OGo5T3R+UyRT
WF5UdQp6YnZ2QH5jZW45ZkUzWUk+cjJ+fFl5UVZuV3BaLVh+bV5NNk9FJExgbSZNR2BHPTMzWDhE
cHJZbEJndnJBak4+IykKemY3RjV9VE99T2QjaSVQdnIwOEh4QjFMfEY3TG1zO3Z0O156YExZb0Ve
SEFsY00kKjgwTiFfTmNAWjBDKT56MzchCnpCKjhwQyY3cyMwYiRMKGZiNnp6Yl97aHh5eitfaVlv
bmtRTG58TV5yNDhvT2xYWHQ+ZTd7ekZvMDN3TGhjeExAPgp6cnV4bVpEO1pNNVU/M1JSN25pYGJy
I3sjKUg4NyNLQEZCYkU3ITs9LVl9Yys4IWgzZDVKRXhsejJKYXRRSis/ckgKekVpVUdxQzBqYW9X
PihFdm5oYEhePz5DfEU/O3dkTT43eSE4RDRkVmtDPCt8VDB6UD9MTlpUNCMkVDIyazVtNTA8Cnp6
b0FMTnBaODRZbz1XRWlLXms7ZyMjeT5ucSo3MyVScUpGSk9YJVB7U2luKVVTVjY5bHdndGAtUURK
akN7SWdOZgp6Qlc0YCpzaU5CPUY1aHxGcEhjfW1ZOSZIfWpHdnZsWCF8fn5kSWNfSmA/OyhXc1Np
YyhqVT4zOWlxU3xRN3UhREEKelkma0ElR0BjZHNRdl5GV2dRK054I0E7KHs3dEk+Jm5pZ1MxTjBU
YHh6K21nNkBfe3pUJTtFJVAoYGBqJmJzRVROCnpzKHEoYldGOEtJMU1fZVk2UyUzfTRJLXBiZ0pn
REwyRVlJelA8TSgrY184T053VlFTOTQ+cChLZCg0X0NxV0kwTgp6dDh0X2tiK0gyJmgjNGtUJCNx
PkFjJVoyYmpAME4rTzt5QHNXdiQ4aFU5WnZAcCN1VDdzUH57a0c2ODIwLUt+amMKenp4K3pBVys9
Q0VpJWt1ZmtZenJBWGkxaEZnNUReOFZmV0pTUXh+MXk+eH4wYkJWJDMzJkZZYGEwODdtK2lAQHIj
Cnp2fkwoUHBoT2dpbVdtODF3TF5sWGs5NihlSyQjVT1oUX1wdTwtU3JiQFgpUnpFSzRAdlZMOWN3
TkJ2JkQ3YFAwQAp6cVZAJjcrVDE5YHlWfW9jPm8xUiVkTFBIT3RneWtma1EkbUJLZVpVKj09NT1P
O3tgdDdSVmAmbk9GdXM1SFdhQHsKelhiaHgrVFp4UnY9KEtvfERaZT43VGpoZ2d2eG4yZWQwdW1y
WVNsOGNxMV5oMUdMeHZ+T3ZpJGxkP3x5SFdRYkwwCnohSXZoNXMmVFB6MEteJVZmRTA1JW1KcVFL
cz9BJUh1JVh0QF4+QW9hJEw2fGZwPD5HOyslPnNsZVBQRW5SX3lSTAp6ajt5YzBsQ3lvUCRJY3xn
I2JYKG88JDAwbnNnKiFTMzNhR0hNeChGTDFJWkttbTIoMzspOHY8VVlCKzU9UDZ3c2cKelNuaUYm
I2ZQdDJMe1hzRy1mUVRUXyMkaXZQcF90XihhaEtkKFJoKDhPdXxUbVVuR0pmSFU8ZzBLb0FedD57
QkVoCnpxKzB9O18zZFluTylnJjhybjJwfkVzZ2gmNWl5NH1UY2BzI2woTlFWUCpCYC1zKFRzZ2Il
PUUqeCFgdk5Kay1gawp6K2ZtKDdRY2FlXzA9emxqPDB+MkYpc31hN3RrblRUYGNkb18pZzs5QENY
Nn1TeCh0WjxMe184ZV9JWEUmOGUyNlYKejtDTFModF5UKWlNKjNRKitfVUJNbSFMJXwjLUpaKSE4
VD83cVoxZmQpOSU+LXZCWGg5ZVZgLUNebDN1VF8ma2tfCnp5IVFHcj9pOXFtR2FKYDAzYFZUS14p
ZVlkNDNwRCM2IU53SnIwQj16alF6NXBEVkl4cVBzcGZHeGM1MjdjS3VOfQp6TSswMnR6dz8oKE9q
ZnNoMG1oKSFFc0U4eXokQEIqenY1TEN7QH5EU1dpZV9DS3RkXyUzJE13OGEoKXAoSUREfGcKekVg
YUdqU1htYEJnZ1h8UzBJejg9RFF3V3E3WT5uSD1sMmdGNiZnSFk5PTR7VUApKiY+YTVMZyRpNnJg
TyFIfWRECnpXO1ZMcj9jQElTVFp6LVhedy1yKU5zSnoqN0lrKjRMeTBpIUJxe1pkO3JGP204ZmtP
MU9NQD5XVyVqJkd2I3ZgJAp6UW1aJGtMZUlCU2NyMzhKYkBsJWNfUFF8O3hCfkg3cWg/amFvb2ZR
eGwhTW91JGRpdlRmcFdfNXR7anQ1bjZyUEsKeiF2UnFnOHY/TmNgTV5lNmxNKEAyISFOQSZCbkt1
bjF2VmpjMXo5WUp2MDZvRVVGPUc7VXRFWiVhU2FzMXo4LU8yCno5QkMjeHpzekQ/MWJGIW15SE9Y
dzU9QT05bzktQExobSFoMFlaLXxAQThAWSgrX1otREs1YU57JHAxPmN1bXAydAp6RDVZPCRvREd2
Y0dIJkBJJj1gX0AmejklbE1fI19XOGl5WEphPCZgWWRuO34jYnJYKlB3Ti1qJTNoPGZCPmYwNWQK
ejRFJT5Cajl0X2MtaUdEVEolcDVvTWUlZ1Z6dmM2YmRgUFRiOWNRRn4kcT1iQTc4N1ZqUGkwNENo
aWBpPlc8K3tHCnpWJkZSQTdLUHVyXlcmdyFJc2VNT2FJe2k+UlV9Ym5XUXdsJEJRQS17Tjd9LXQ0
PS1LVmshdmJYUX16THRLS35WYgp6aH1OaStIU344VGppQWhDNVNQJX01KSsrdDFOYF9gXk8qJTte
UF5gUmojS1k9PFUxPDRpUmZnY0MkR259QU1iMU0Kek4/czZQVCMjY0g2aUlsc0pUZH42e3dNYSN6
PkcxJXoqTUF5U0YmTWlVSH53SiZCRFVea1hjUUg2JTkheGJ6cVJBCnoqQztGVCF0dENtTExtR0FW
VTk1RW45MGRfKHFYNX4lZmFgcHN0eH1LNGNxYER8TDRXVU18Xj9wWElEU003antfYAp6M0czfkZi
KzVZRmN0YV9fbUF6UCt2cVlNMShXJUA4KWQhKmR6LSl0ZkB0TVdwIXJuKnxUMHg5RHdRbWdge35I
Rl4KeigmezA2TF9+eCRWTylRZ1khfXhTaXo5THxtWDxGO3hsdGhDRDdhfjFhQEdzM2N5UG57Z3JR
eEJ5ZzFHT1hkY35nCnpDJnROSGJhKnE0e3UrYUVoNChWYyRyclhXQXdSaXdmXzJnbm82PDkhdWZ3
cGRDZkxEfVU8aG8tdXs2OUlpVDVLQQp6OCRBejVmYkB3YlVnTiZDWSMkXnhOdFhheDdmbSpRfDAq
WSlnRk9MRFk0RGZXUnkjU04pNThVP3p1KEVKb0A/IWsKemBnfm0mPXtFMGlrSHktdD0+KGdyZWR0
elM/dDNjeV9Sam1USVUodTVkQiRQdytiXkNMeEtvIUthbC1xbDU3PGJ8CnojeiRpT3oqcT4rcCNK
SjN6ZypfIUxoI0NUUWxoTFphU2RVcGlyJHk5PzdjSF5EezVTRno0RTQjUn1+Y1pmOVk3bQp6bzs5
Q20mTVYpQz4lcCshYnYtKk0rJFdKVlQ7fDx3LUB6SHpKPlJxUlBjaG9RXzdCYkstfHlXTS08fkZl
Y3BGWTwKeiorViV5cUJFTkBUdVd8VnZQS3h1O3d6bjZQRSN2THgoXm0yTnBsMF89UmAoZntlRSM+
QGhoTz1DfU1OYnhXV192Cno+aSo/NTZwNXBvSXQpJSRgVChGPkZidndtX3U3MmZJansqJi1Ralls
KEVHJn0meDJYQ3AtfGdtJjZMTncoKl5+cgp6KDtlXjcpcXskSENzeWRQKGxuWntDTUZvWndgRGkq
TzB0ZW95ZXVPVVNUcDFxVnMqYFo5PDIxO0VlQWUybnN2Tn4KelJDNipzJDNjZ0h4ODA3fVRkRiFL
LUowaUdOXlNPe3c+UVo7JlkkazNLZz82aiRZSEZHeFFnKmF7JX0tYXE0eHF5CnomakJ5d09IMDco
SCFYJU4pKjlrKnBvdUxnLXUpfCpmUComYlNFeGdxN2I1NnZ0cyVwWktjJCEwV3opa1Rye25eYwp6
SDB+MWRGUCF1PDNoOHtIWSRMdDUwaWQlJGpxTkA4azh7VkFMbFN6MlVWaGBhLSNSIz56SFhTTk5S
fHs3ZTlwTj4KejdUWDVLU3Ejd0ZtVk8tMXhvKT5ITil2UiNSbG52OyZ9JVI3NVheS1Q5eEV7P218
Pml6X0JILTlPO2wwK1pQbDw9CnpnYXRlU0gjRHkmOGNMIVotc1Q1aHEoRDxeRm9xWUBtVXpsPUMt
eCQ8VCsoY2Z3dHZ1aVhqS3woTkgwWG45QXxfOAp6TkBRJGN0THlrfFZuVHFKPE5LdyNoeDhpeD1D
YFpRPXlgU04xN0NubmNWVUlhOHcoakUhTG9Nbzh9KGs5REhRSEkKei1nJmZiNEt3RFREZGkxI3p4
OWojJXFeYDYqPW9yaTh9VktGOCQwUzJiYFI9fWZ3NiliPUQtdn08b1VKdGN4QVheCno1eWJ7Y2p7
PUwxSWZJMCV4NX48KnUjJTRueVJFNzRBS2hrTmIqSzElQj5qPj95N252QWV4dlh3WiNNc0hncUJa
cAp6YXRiTjRWX0gzSy1MMnZVQCtFR0FUSW02QXBgR1U3bG5BVnw2Z2A4Qyg2MXkqekRlbCUyfVZO
QXkxfmBibFBITj0KenV+YlBzekRaSTxMYkZOcDxYSyE4NU94NlhJZWU5dXlmXiRkJjgyMUdtRmQ7
ISM1dSFLQWNKfS1HdkxWbntSdHp0Cno0empkVDZ1Z1Nfe0FzfWdfRXJMNWY8UEFfeEdTJmhOMWc4
QnB3VG9KUmF0eWc5eD4qTnc8Vyk9aFBtV2BZZ0pEYAp6PUIrOGotP3NHK1RocXFfdm8zXkg4Q0cp
WG4jcVVhUTtmeWFWMD4hUCZxdnR6dnBBQCZ0R2RKdTtESW4xakxkWDsKeil0YHhad1BJYFRkQj9z
K250fUo3MW1VfWhhd3dFYlBuWCRPTDgtNW5PNXpIdSVrVD9NSVc9Klhqa0ItSDtwMT5pCnpjVnVQ
eihHJkJQP0QwOVJ6bS1QSDVzSjtuNXxqUUVlbiooQVd5ITklOCVGcm9iVDJ5ej9kJjFyMktTUyY0
PlU8Ngp6SWAhY2RtOWRDMUhxbnxSPit4WCZCP3x+M2hkNXpoKTEzIW1mVnNMY3pkWUYwWl5pTHxv
Wj1NJTBjOGBoMGp7O2gKeiUxaGtQKn4wNmo3K3JJQGVBOyNIVjVfM3lQVlNLcF4qVjJlUF9TZmdx
ZzN1LSolP1IwTFAzUnlUWWg8fXokNzRUCnptO3V9S1EkaVAoTGFySXA7Km1+bF9pTlpVPi1mfkAr
fiE+U0dNdjh4RilxczJZJGJ9eW1tSnArKjUxK2trPWNqTAp6bXJSUXBud2Job0dqXjl+dCg1Tigo
P3g7QWNzJH45ekFuV3BDXkNzZmJMMlBQSF9KQio7M1JyPjU+Z3lwZEt1fUAKel91XiF6VS1vTSlB
flJ2PndAXlFlPUE+dDhJdl5JNShfaEx8QyowOTk0RHp0amUxLXRQMy1FaX0jeiVqUERkdHs4Cnp5
an5OUUQtTmFUSnAjaXc7JGVXXmI3MVc/VURAczVCemd5SHdaQDF2WFJJQih0XkpjNlJfRHYpSHN8
Rjhxb0x0dQp6a0MkNktQYzNhWTReWntwZi1ZOCtBaEh3QmZFfVdZRjwzMzRWbyFsfUFYYiV0clZg
QUM4IVQ2TXk+eFJ2ayNwbTMKekhITStKWD0xK1JMbmdOO2stM0lRPCNBNU1KN0RCMj0+XkxxRDxs
X2dffiRsdVpOOV42M3Ejc2NkSzBAZik5SU93CnpBJih6dyUqOHlhQlNMJnVMbWpBczhLd2tpU0k2
eGw9MzQxakM5NztSMUAxUVZWfkQodlpOeXk4WGwmaD9ZPztFIQp6OVoxRGwzfDBJV0UoS3t1b25r
WjFMY1FLKUckdjhKOCN8Rjc+YjEla2MjUTVBNiVkJT5JTjtVSUs0bi1gMj5Ee3EKejZqSE19IzB+
ei0lMyFLOUBZIythTjBOPDBuVjchfVlqZG1hKmxpez15WkNhPEZgLTVOTlMmPTAjfEVSWHd7R3lf
Cnplb1pHUjwoSUpKXm5BOCUmSj47SDFNY1Q1e0dXQ1hlP0ZgK3s4SVp5NWxqPHkrNUoxIS16I0Ir
dTI7I01OPlFRUwp6clRGcnFFbDVMUTZ5JXdOaDtgNFNyNUo5UkZmYUg5TmEhP24tTTxrfEFmK0Vi
aVo3UUE/MnhzUGhEXnF6MXo1eCoKek8yP2JzKnJQeVlnd0olP1NYdjV2MmJBZXhfdDQoaEpybz9s
KFQoKEp2IWBlRzkwIyZWMDRaMjk2Vkx6fTUhJXA9CnpeKEdFSUs2VitIKkd4MXNRLU5NVkZzZnwl
MVFtb3VkeWFNV3VvSzV4U2phc1V4aWBKVDx7OTwzV14wRzxUfWJ+RQp6YDcqRClyKDF+Y3E2bkky
SyhgV2ZXPUNvTDMoQnxyKnhvcSZHZEs8VVA1OGBvUmJ+dE8rcXxed15HQHhwKFJZancKeiVUK35e
RENWMiozK1FWO0lDXyptPyF6KDMwakdYO0pHOTEzI3NWMjNqISFESHNBRzMkLUBoPz83S1VCMEY/
KURUCnpMPCpALUV3PkZEJSQyVms0KHx0YmM9Z31QNTJfUmdOU1djbjN0KUkzMzNnQ2thMHFfRG9Y
QyRFRXx1P2xhKTNIaQp6Xk9xc2wlOEZ8aCFXPENDMWNaaXxkVllOZGdlNmk+Znh0QTMmfUUwS09n
KSV9KCo7OHA3SlB+b0lyN3h+cXI1WlMKenR9LWVHI0Q7fGtiLXFfYT1Zd01rZSFTRmxUVVhJSUl5
aGdCckByMSRgTT12NTczekdVWiZaO292QiNUKzlCTTBuCnpyN0Q1M0dWO2NNUG5pdHdANn5sI1hM
Z0QtcjF8bjR5P2JPIVVjRWMocWM3KE1DS3IwPTZqIT5HZnU3VU9TTX1Xcgp6cnhydlFNQl55Ukdi
dTJ7M09McmpQPTZgPlZgbks7e1lBdTIkYEI4RlBGJDdnWnEyWmF3dHdSVjBrSyFMZXVISnoKekJS
dVIybkc4TCZUNyZzRihCbUZeOS1gSyVsLWE2QnhuUWhFc1NDY012QGNhYDdDK058OH5eKWBOWTZS
Pjkmdi1GCnpyU3Q5YW0zKTcoKTxGQTJYTmw0KEA+YUdrSXA9NkpGfCQzSTBgPXZnUzJ9Vz5KPmdJ
ZTBMYSlgbFo8RHQkZ218Wgp6Y210a302Z1I7MVZIaDVLJkg5amdeTXUxe1M0NmhmeTszKEs0YU98
MWlSKXJkU2Q7QGFXdVNCOXxKfDxjOXpNUHMKelFRfUApWCpSWmpwRE9lNko3Mk9sPDZLKFREd29R
OVlZPE07RzZUMUNmPU9lb1ZBJD15bCotNzg4RSZHVDxydVlPCnpyZEtDTUszKEhxdmxaa3E0RVZ6
fWU0IXZLVVoqPXp4eVUhVmpfdEwlYVQ0e3c/QUclPDY3UCM2YWtDU2g2Tj4xUAp6e2w7dWRjfVFt
SU0oN0RgKHdabD9MYn1pPVc5KHJWZH1jYU1tM1lYQDJeWEVlNyY2b3Y+U0FfVWwhWUF2XnREWWUK
eipSfUtLO24zV3woRGdUa3NIRnAzQDZ0LWZCdk5JKVlyamdNWV5KSypLOVN6UDxPVUJUNEtTZXc4
eUxlJDVXKnFBCnpwO0NYez8rYi07dmQwfDA3STY9TDk0VUNzZU9nYVRXWEhZO295aHxxZk9AVV8k
fUBhNDJLeipsMSVeP2EyNSloUgp6KCEhdSgkQlpxbWI0ZGJPIWl0Y15pcilaa3ZGUjZmJWlgMX45
bUNyQzNnOCFeX2FudVpyV1NXMXs+O09LZjNyVlQKelpJUngldFd0T0VGa1grTGFOaCppM2t4cGhu
XiRvNkFSez8pVmY9NDh3SkYjaG1KQUx7ND0lXlBIdlI1e3N+SVB7Cnp3QEs1U3VIJn1fYjxQPzQ1
O00ldk18V0tJdG1XJGkqI0xJeDtUfFRJIWZvZzlvOWRmbU5Md3o/X3VrIWY5b0pVPQp6a0FTeTxv
Sitqflc/Yklzey1gSV9VIURvZkd3cWhuJVR7YmJBWjt7U1Q2JUI5KGBuTSF4Y3M1dGgtU2NjKm9x
aVIKeihkcFclJEwmJnFqQSMrTnRRP3JEPTM8MWhVR3w9KThxblQyd1QyK0kwcmFUa1ZUayZ0Iz4j
d2FETkBEcioxIzs4CnpqMz5MYHp5Mm1qIXltZ3BrbzttVVpzRjklK2RpQHE2Jl5KSSZDTk18Mi1X
IVplcXg9QEpDV3d+TmEmXlhyK2NCeAp6RH5aX3JoUW44SmVRZXpnbH5fJUVIWTx9REhoTWVsUTJX
PjM4TX0qZ141Q3Q0K2hOeVljLVBRcktZZEtnNUxISEgKejVXN2M0c0ZeO35KNX5NcGVsO3Mxd2cm
TkErc1pZdz15Yj0rb29jZ3hAcGRzQT1rN2s7UyZeMFllMlBLVitqQT1KCnola3Y4IXM7TD4lTClz
Yn56NUpEYFgtS2tNSjVkMX5mZkNIcHliekhQdXU4V2toOWk7MUFLTUFVMXM7WkNsV2dNbAp6OVBg
MHRDbSVOeEtKKyZNT2srMGRGZClzeXg8K0RFREJPQzFHP3R3Q0BUbUpQQFBmKygqd2o9O0cjMGlR
WkooaUoKemhHLXhBM0d8NSpSQH1lQCM3aGhfKlBRMEpfS2EjaGNjflErOG1iXygkNTdBMlpeaWtP
dCMhdmZAUEF8azM/MUU1CnpeVVokJkErS3FaQU1oMGBPQD9memdXZU0lZENWb1ElfH4qQ0ZPaCs/
R0x1PXo4Y3MwRG9pJj1SKldwelM0N2F1eAp6SGJhJiRqUnQtZ0ZiNChMQEQjdUdqbU18YyQrK1ZD
dFFDcUZVYXM9S0tXNmxxbH1iZUlpfUF5K3hJXkx0S2NAMGwKemRrUSNvLXooKVpOKnI/e3gqPDxK
VzRsfUNwVFc5UV9OKnRlPXY7QFIzfn5XOXt5dD1ASEh9WCt8OXBubFhMeEx6CnopXno8MXRWcFc5
ZT5LcWxvT208czdfLSNPekBaRH5hMjg0Jk51JEImVGpNSVp7TE45KS0rPE44O3UpYzY1dW8lYgp6
VUlPeV4yRHtFRHAyXmt0VHdjTWNDYSFhTWI1QC0mJF5NOFQlLUNeQlh3Uj0/e2dadCM4NkJRcHl2
JGc1R0VrN24Kel50aT94OEtiLUFZMlQrbStrQnxXeTAldXtJcDVneGA5Tyl2UGpqQjQkcHxveCp9
ME4yT0pNJE5Tajg+YlQ1dyZWCnp3YmpuM2EkUShFbmZycCQyajRwX2VoYX5Nb0omfSZpVVd4U1oh
OHFfUDk3d1drSWBSR1dhTDFSb25LfFVha15QOwp6e3c4NkYjYXRadXl+fUpxe2VqVTxXQGY/WlE5
QW5OUm9NfDEwTWArP2M7N0B5P1lkIzhXXyhaUzszekk4c2xhKEwKejVZMXNxSTJIZitJK2ItNFJI
SWcpYnEqJT9PbEhzPytIYUFOSGMpI2V0eCkzQy1CUlBYNFM1fnxnWmhZR2goWkZ1CnpIaiZVX0d8
Q0FNdXdXI1E7RzxZO150dGU7QTNKLTlJMHFmZEooKjttZWd5bE89STNCLWJuemxFckJ2ZVJfNHNJ
Ygp6WWtpN34kRnl1JndTM0JjWmRpNn0+ZGtkcHIpZlM7LSlEJmhee207a1J2JnEwUCZnWT5fV25f
dDtXU25JZVFgZWIKeiUjKW1FKn5YWCg0aT5eRXd2RjJgJnd0Yz40OW5TYHFtTDVyVnpfQHVQbz9z
KT5kVyNwKnNiNWVOUSRxbUI1ZkU3CnpJS0VrKnw5SCZZIX0tRDw/ciMtSDtybi1QPjRUJkJJOXJI
fFlReFpISXVnWSFXUUZXaXlRbj9uOWszO1BMOClVPAp6I0EkflYzaWFlNnooOGUobyUqSno2eC15
akxBM0c+akBjRER7OFRRRmFAfiRVUXpsO0BiSmNvSCU9M35XNnxEUXMKejxle0sxbHl1ZGVeKihh
Rjtvand2SkV3bVBwe3JCQD9CWStIbVRfdkRqeiNkeGgkcCR5RyRNKyg9JkxZbj9KKlVwCnpfLU4p
QUowaGMySGFoK3tuNEtlZ2dGbHR7P2VvLTllT21JTClaYTFrPDM8UUY7c3tmM2E9QnZaWiVQVFBY
clE/RQp6Y0dkQTJ2djd2ayhnZjFqeUFCQWRJPFkpfD4oSFdzK0R2NGs3ZChVe15ea35pT0EmRkV5
RUhtP292e1FHU0pyPn4Kek5CdSF0RFpLeVp7fWc1Y2oqSSpCU3lwdTdiSHVJQj4xc0p7Sk5QNzE3
QEAxcj43WTRyMjMpYlVmb0ZSbV4pOSopCnpDcDl1fGdRP2R7bEE+K0Q3UUNTci09c3l0cCFSQ21s
ZWZkUGJJM28/PCokV0dRQlhrcCFDbWlme2MqTCpBR2cmYgp6PzdEV2R4K1picUs2JndoPXc3VWJZ
Zkp2SCU2VTB6eUEtO310N0NCcT8oJWRxM3RoNmJGbDcpUExZSTR4Vkw7SUkKenlIeG8/NCRIck1g
UDY/OFR2bHwyNFgtdDU0bl9pLWgwLW4wU2wyN2ZEWlpMOEhwQUVjUXI2KnlWSENifk43RTI3Cnpt
Sz1jQ2g+cEQ2V1RXO2lrZ2t2Z2lNN1JPQ2Z9UUMzY1QoQkgkb0d1LTB0XjhQZ1o2TVg/ej04THow
bmU0VDReVgp6LXRoQWN5aVBNaCYjenUzSl9FUyRGQmtPfiRTdU10LXMhdUA0OEA1N0g/KiRlOFB3
YmkyWXJwM0NRR3RSOEAheWoKelVrODw/MTxLNmUqeT1OazYtPnZreXkjZERyMHNmXkQ2d29kN2o1
WWxmNndgd0NtdmNVeU5efHc/ZHlVRF9LTDMxCnpFflYxPkohMmUpemBFI3h3TiY3ZDA9RFlhMkRC
NnBRNCR3ajtAOGFTTUA0QVpBe3ZqcjNxeEFIcXJZPTdUMWA5NAp6X3I3OzZ4e1BYbzloZG5KIU44
e3RCTTl1YUtFOD1LTi1UX249UChyT3JhfVZpKWBqMnYlZ0laezcrZzN8bEF0aioKekJ9fWE0c3R0
M35hKk5FTnlxUFI1Yyglbmpna3pSNnY0SiZSQTUzUk5felhSajFWUldhQG5nPGshUWFAbTZmRmFg
CnpZenlaa2pwQjZKPm5NTUN2TFp2UUArc319PVU/UHxETHhlZW08KE51djdwNjNObGtBNyFDRTEw
RDN3TyQhQU53OQp6T2JYWGBZTD1SNiUyVGVHZDE/eHJMSyRWRXdQYHFON0hQbG9gTU19ZEszSV9I
OU16dTtXfSQpJUpJTkVHVXBGOTAKejxndkI3RSh6ck9aeGNQIzZ7VVh+YHlwJmk7TlE5UiVlNHV0
aW5lTG50OGJQYW92Vmx7VTw/NFdeO1F0RDBxNng0CnppQD4jfW1UT0xCMTdTV2hMfVpNUkdUYUZn
bVVgMk80Zyg+O0BrcHJsRipDcClrcHkzOChpPn4xNCRSM3M/Nl4/Mwp6KEhnVlFGb3Y0ak03UVdx
YWRwaGAqdm0kYUlJWEpOTmN5fG0yJEd8bnRCZ2IhR3dXQzQ4aU16dER8bz0oPjsxNXEKenskJTNP
eXZtOUBPYDRKb0I2NGNKNklGJVhVKjtCaXVvSlcoWiNqXlVIJGwjOUhSe01tN0doU1VwLWY5VGJT
KD4rCno9VEJoRUxqYmVKVyNLRSUtdHIzWmhgbmR7Klp8MU8wRmAoTVRDZjUlRzJIZlJBYUlyMFNt
dk8pVGI1eEFSYClJUwp6REpRKl9hVF9Qa25hQlMzQHszSTdtYXkmTyt6bTgoeV9lYTArJUcyTTVO
LSpBN1RGeTNFdl9wUGhoajkzXmh5MnAKenNmflNUc2NnMFZIdjYpLXN1SkpfSHZmaFlRckNfWm4j
T1BLbk9USng8WDJeb3RXJmArIU5uR2YzYVN0M3lwfDU0CnoreVFQZiohc3MyUShLcHQ/WEF6X2Rq
Nn1PP34/VD0hc2peNSgtQSg4eDQhQmYrVl9MNlBoWHY8akIzYXgqN25qQgp6KFpOKWZOPyhAaE8m
MktSVn54XiVFNzBZSzwjTFFMUzNkKDBJOWVPSnlRMXV5ZUdAQChXYl5uO1FWfXh4P0VZTy0KemR5
OSQoMzlkVUkzKDZ2JjI2eElOb0FsI1Z5T3gmTDNhRjVXMnl1azFYcXotWDlpMjt4aShncW8pZD8r
Nzlxbj58Cnp0JGJlZjFFMnYyNHVBXkNvWDt1dmJOciM8XjskQm4lIzFWIz1JQjJHOS1lNzxZQG1M
cyVEd1VDKS1IeCtCT2B7Ygp6aE0kTCl2TFByZD5scWc0OWppMH5pP3VTdHFPTk87JWZhK15SZUNM
M1JaamlvQG5Yb15nMW5OUGJ3cDFITlFWJD4KejFAZ1RmWnlGKTg3JGw2fiU1eXhKbkVRK2llOStH
JTtmLX0mPzZIYk9lKGtQSXp6RSRpcVhgdmZvazQmYWlgVy1kCnp3Qzk5V0R7UUJ0PTZNWFZEO0Q5
NjIjWFg/aSEzaWhJc2hJZ3txPmZYZ0FNeXM9QGtMa1MlOWQrbWZ3ZEAjX0N+fgp6V0tANSNuZ0F5
UDhXT3MlQDdNLXRWalFHPXtgT0lUIzZPP35VU01WfUFxej5oI14hd0ZiIXgkQWs1ZVlgZ3dfSWwK
eitUKShYekkkMTBuSXhsejBZUTJ2NGJoRHVnYlNRX3lAcz4+ckhwMStTdmkyQC10U3NxbHBJenpQ
VHlVSjQmNldnCno4dCUqI3c+KHowVWlNWFFFTFhjdHNaOX5rNXdDT3dIVnAkOEU7PTExUEhBdEEz
Oz8/WUR3Q3V8ak8wI1lBJnUkWQp6SDVyOFdobD1lYilBaERxY0I/ZVRzNX44TT90Rnsxezh+TnZr
dkFBcXYxWHBFQFc4V0FpNE5sU0w8MmV5bipnTTwKemA5SHw5X0l8VF5te0owITNiM2BMemNpRkF0
ZDJMUnU3cypzX0pzYjAhN1MrUzdhSmMqbHQ7YCpnQS1mS084QXJZCnpoQT9WUjcpamFSWDs2blVA
bnw4VGY/JXttQk0zdFp7eHI4fGRtXktacFNQfUYqSz5eeTErYyMqTl94KlBuUVY0agp6SFhYczZD
KV9vVik9N1Q4d1JnfSM3eSQqT3h6aXxXeEFDajN0YCRnK0hxb2I7Xmh9ejBNWU5PKikqKVclVFAy
S14KejgrRTlBem9GZ2wrKkd8NEZJbG9XVnAkVEchJjZtR0hBUiYrO05UaDVKXnA2eTZ7NW5sdENr
SnJXUXxvVTZxVypoCnpQZk9ZJHFaVHA7YShBJW40ZmRkVmRKeWlCPTchTVJeIzElTDZBdzlkeztq
Y3hZRyFxSnFlMnBNclZ5VmhnX0FXSAp6Q2FWQjU1RiVLS2E1XkEpbG1NVFBHPXgoaGgzMiZVKlNB
JHhETXlkM3taUHhpemkhUVN6NUspKjgyO1dHQmFUYXkKekhEZVdVOE1Fe3JuTFRPQHE4VS14VyhP
ZTRTVDV6KXcpeW9XP1h9JFcrPE43VjY5Pn5pLXlJWEFxN1Rfb2x0MDMjCnpHMkd1fWVtbF48MSZo
YT1xSWo9YG5DZz5XbV8wK0N3ZDZvUypMUmtRa1NnQXc7Z3ZwTEtXYDNub1BgRDE9cjUoYAp6UHo+
YkF0QDw1XyUqYmdUUCNJZ2hZIVhKPU5GSjk4ekR0QChLXip9QiR0cyFQWmpZcHZxJXRxNWtZS0xj
SkByKWgKenBqR2VXZ3Nwakc8R2FmRExfR1BeOG81S30lUFo8VnpMN2xUNUhOVDFlJDRDbCkqcDYq
IWQrS0FybipxVSZ+NT88Cno9MTNkVytOKDFRUm8rNDxzUDY5R1REfDx9cDFGRjgzczwjRTxMRyFO
Y3chM1loPE18ZU9yWEdxdFlsJCFgdVJIbwp6enxQd2ZTJHR6VEM5S1FsR31fKW87Mmp5TjdMKzJo
e3BCSXNPMkIzeTIjekBeIWojIWB2YS1VZmdQN0ZTNWxYNnwKemtUYzRBUElqNG87blFfZSQkUUA2
MGtrTWdUaGwyS1V3QTtLdE04M3M7THVtanVHPXpjMFExSUArR3FfQ2t2eSgmCnpaKilWKGUoYW4/
N3I5IWFUMj4kfVU1STM7RSh3RnUtVCp0dEJqOTlua1ZTSnkwNEIqPjNNPk09NENKQld7Vyt3cgp6
bW84TGJtP2RWRSNpakw+PDtuOWRDdHwjT2R8OUhGRjQjfVk8MnJWfSlJS2Vqc35xNGBNV2xRTmM0
MUtqcCRyO0YKekFVWThkREhtY3toTEYlPUtpaytqMVd7V0VaUDRhYUUwVF85RzJrMyk1MEorbjRA
IUZ+OzZNbSMzfnpBMiEodU5XCnpEPzN+OSFrNUV6PGJFSktvfHNoZz1IVl9Nem1MMlJoRXNHPXdx
ciVeKDdUWWtDcHp9fnoxfn1tWTBpbFVBPHdlUwp6KW9MLXQrT3B7fShzaGJrK2lJP1BTJEVqenVS
T0RKLTx3aX5xX19RWjQxMVFuenxDd2luQndYQGhUVyVhMik/V0MKekliRnUqekE1QEVIelNnTGl7
JX0jTFNadDtOKmxUc2ZUKE15MlB2MzBoKyk5aD98VFZsNFE3ZnxRMDhxSnVvMnVYCnpsJHRhXjNM
P2RzTmRATl5ZeXZFTjZ3SCF4RjE7NVNOfjFpUzJ1ZT1YOUUhZm5obWlSSnU4KjxaJHd4Slg/dlBs
eAp6cU9AO0dgazdIU2hWX2RyWFhqQT0zaWxjQFpDKiNiQkBUPHZRSSFNWjFrYlg9SU5PNVlrN1Ak
WmVLeXZIYCFYOFQKekk2PShQRE57Mm13djchIVh5XiVRWENLTG53XiQwKmUpM2ZFKH5DXlQ2NWQm
Wlg3SHBgJDtqMHU5NzBCPnUkKlA7CnowWi01Y0YmXmUyWlQ9Rzc7SDIoVTY9RExfZ0lee31TTmo/
ZGc4fF5TeHQwcGBjcV5qd1ZNOzchWGptOGQ0fU5zJgp6S2NkI2twZUMmWXJWUFU/XjYzPChQPntV
aSs2anA7Z0ZEaG1eMXBlY3UzQzhiK2tSX1RkeXtJTVdLQj8xZm16SkEKelJyV2JpMmlBV0pmYE9X
WDUqTWdwPm43K01ucVYrOE0mRFBFbVBhP0glWko3XnpCSXFvaDk/KlUza0NjaHozVDwoCnp7bz1E
cGhCWlBzKSZPJit4TDx9UFRyU1V3QEJCSkYtamBKN0JAZ28qVClMTy1qezBaWnBQU3F9K2ZTRWc0
QH0xTAp6Wjh8QjhqZ2IyZ3lIaDJQb3B3e35FZGhOI3BrMW0oMCN5Z2NhOEY0ZiFpMkBCcnpyfit0
IVUpc0VNRSF5RCg3Y30Kekg8cF55JGBeRG8lZVhGTGdRPklNYEM1U240T0h1UGZBU1N3XktFS3s1
RyZaS1QtdWRoUXx5SXJ2YDAybjJuRUU2CnpKYWFqPWNZdGt4RHAlKnZuO3Y3IW13IyhFUkhVSTgm
JT9Yd1dXd2Q8S3BEayh6T1J5OFYqdkpHZEo0bjl4NmNLdwp6ZmQqTENGKVRfYlFzRVpeZylMT0FD
X35jJl8oUFZpdzdATngzT0Vwe2V5PTt2VmhlKT1gfmZrVDcyQ0cycTlEY3kKejhMfjlRYXY/VHBY
dVcxNGdSRT9vNV4rUzdpbyNkRUFSfTBgNjVwQ3tXVlZpU0RZVk0lbiY8UUxmZ3I7QjZvKXJ2CnpU
SWI2fWhMUHM3I09HcX1zfiV9QiNjVjlsR1J4KTtSZGs2Z3g3dCZpbHAkaWxneXYwTEJAQ3U5S3ZI
ZE90OFdOVQp6UktFKUptZmZpXmtaMX5FO09LM2RqV0leRnBqY35adzhIOUFLaGc3SG1+I0UrN3Nj
MDRZdkB6I1lWRTJ2cmAlMGgKejAjLWkwTnQrRCp5d0RCU3dkUjBacWA0dF5KZ3hQZlJSbTgzVHVY
V3llNCVKWDtqJTlBcn0pY0c3MjlSNWJ1OGUjCnp5Rlh5OVNndDVrM20xR0hRaHZycUJTZWJ2M0I4
dVhMT1dgblFEUjV3bmRwPXNvRG5+cG5WWiozWT1SNU1pbnEtPQp6ZTtMPFlVO0tIT0BvJSVHQiFg
cF50dG9gdi1kKTBoXlh1SWl7Pl4/Si0/QEEqOWt3LWN2ZDJ7OFhKVCR9OEgkITUKeihDUjcwSWpv
YUM+RER+U2R2YnE4KEdXJEFiJlFWcTxhK2J+dzk5az05Jn02TEZUMypLTUVQMDFRP3sjKm5+cj9D
Cnp2dC0rck4zM1MjKDFCM3k8UFB0PVd1M284SFE9X3dwOU1XODVIR2YlSD8pdmZGYzBganMqVT5z
PjVxTS1zJihwTQp6UHFxZTlSRmo7a1ljLTh3P15WK1YlN3t1NTRrYDdWZT8raGgrcn5gb1JuS1hW
QjNwX1h7Yi1TUCp9SHRae0chUEEKellKSCZEUE40Xy1MSTBRcT9Yb01oTVVEdmMjfjFINXo5aFJk
bXghQTttOF4/Nm1+WS0jYjFobFA8KUVxOFU+P1U/Cnpickd+dG9qRWx7ZjN+fEM/eHs1TmFhT1VP
Sjt5SjJoT3o7YDQ7enxPZ0JHSHJwZEI+X0YzPDhXSSolT0haTWQzagp6eTJvUk16Wil4aylmeV5G
M0wwUjIwaGcwcGFaJHJkR3tJfCEpSCV8QlclbjRPQ25GSk97QDVobEtFdEB7WkYpYm8Kem0zJl9Q
NjJsQFRvWjl2c1psN3JxZ1l8aiZKPU19MGFDWG8kUVdKYHVWamhCKCp1UytIXlVETX05PGRSa0Ru
bGMqCnpuQU07bUdUT31BbzFVWXwzeSZVQmd3P19hcDlzb1grJU9Cb01NYjg4TitZPGRIUypucihJ
ITswUU84KExpc0IkVgp6PCF7QD88LTwrOz4oRVI0K0pwVyZROUJueTRtKj9ZUX5MfDVASVpyP3h3
VmRhbiQ3YSU5e2d2N25ST2RhaUBgMTQKekcrLV58Wn0pNF9PdEV+SSNhRX5BUzAoTEN0TlhVKCE/
Q3s4cExXWUQkJEBUVjJIc0Rsam9WSlopQn02OSQ5KT81CnppTnk9Ul9ZdjVhXjs8cllhRzdCRTA5
P1F6NjU3VGkyYztJMkZTNWEpa1YycG9EVkZ7Z25wfWlvaXFIQEZoSCZsbwp6Tmg3bkUjS1B6KExJ
Tk5sQEVxWEZKQ1RLZUVgfF8maURacTVON35ad0x5aX1ZRGRyTkhYfT9TaEs+VEhMcHhOTE8Kenl7
cTJNVFImamtmQWNZO2QzfThyak5HM0N5aS00R1lsR3pKa29PWHRXb0tke0A7TnsmVGRuQE0/WX1C
VzdVWGAqCnpHTE10MSl8QkM0NX47TzxpR3t1RFlOZCtSN3pseVJpb08wLUd6TEZqSmghXypGcmF8
Y2xvKnxec3VMRWoqckohRgp6a0lpJF9ONzFkNW5IUWBVWmMrTCpGfXQzWipDY3dhdDtCfHBQfGA0
OF9leGF2LUF9O3JncC1ZeEp9YlMmcE4pPD4KellFYllTWjJ7fit5dilRbGtBVmc/TV9walotIUdD
cGpxbj56TWF5ZFElKmx5RTBgPTJFXzFvPjEhc0ozODBpX015CnpCfSkhS044dk5MXnNSKldidlho
anRgdiFUSWxqWmwrbmQqcl9Lc2E/ZTM9WFFmMU8tYVIyO216Zzx7MkJpeHpqNgp6IUFzSE4/aGI9
JWFoS3c1I2JMMUdGZ1FnRWdCTiRWTDBoQ2EjcGQjI2F+fCV4X3dEM01AQDIxWTxzfm80VEdATGkK
ekt2dnVaUm1DYHQ2aTdmU140PXtjbHNfejt1eysyUXJqWV5RTWVGS3pOdVk1ViRFXk9yMX1fJk80
dSo9MFJoSU1qCnpQZmExbylXU0lwMlIpU3JJZFJIflQlRk9VeCpnSmtAdUE3RHFUWHt8PE4rNzEj
QmNLJFdXUk9TdiQmJS1VOG1nIQp6YENgaWQyR2tjWWtOa0FRS2BWfld4UilJIzl3XyFzNSomeG1q
S1NKMVFaYGxpYnJ0Q3U3ZiZmNSoyc28kKyNCZjIKejRlO0pLVzR1ZVFiZVhBSC1qMDxyXiEyX19i
WGF9a1opXzNPcm9TQ1VebH1fPyE+VjkrM3tZdnpCY1RYWWY8NSNmCnp3QG5heldqXz0lPUgoPk8y
UVN5QFA9dThgezhgX2JrfXg7IVAlPkktamxxb1NjdUd9PVl1YT1vQmwrI0lDRn5GKwp6blNAJDZ5
enheNHZ3NVIkbis0R2VwQFBZck94ZntVIWIjMFNXMFd8fjBDZGBwZzxSdm80Kk94emFZZVAwPkgr
ZDkKejxDVDBpZU4mPkhGMll9cnElb1Y2O0llV3xue0pfVTBkT2NTRGBBV2ghRF5kRFlDYipjOF5s
YWRseDZlOHY9N31VCnpwR0NKLURFcml2REs3TzlQTFlaIUtXJGZoYEJsN0doa2UpX0EyXmZCX21Q
MyRAZHRWT3U0UGREO0o5XiVwdCNyNwp6OWFVQ1NGQE1BQThmNjl+Km1zbXA7Z29tUk1zYkV5SXVp
cjltUlQ7bVM3QCMyVT4pNFlxJVdPb1RMNSZoVUx5OEsKej5rRG5NWHwzZm4tUk51dygwU2VuKjhk
dElZK0N6PjVVN0leNlZYZU97MmpMZGQkcT48PlhsJjFWdTBwN2ZzJjF8CnokUGJJSmB6ZFl6RUl+
bSE3JiMlRyV0WCZoNSp9TipzbH5eVXFhUj5uaGs8bHJ7aFRIWFo+TkJTOEFaTX13aD1aWAp6cmp2
OylgfHclX3kyI3FaQUlkX1lzZGRWK3dKMipkdTwkVys1dCZGVUZaa3tyRWkzbnRyJlNVbnR8JTFD
PUpkNV8KemVfPHlhblg2QHoxNDdMSEt4QGpAVG53SzdheW51UllEOHthMzNTZjFEJGExSE9qbG1F
RUJUc09vK1loXnxLb14lCnojejIwTWdYS0x8MXUjeXxacHNlaCtCUDlzTlpsYjszeXZAfkBPdjB7
PkNGNHU5emVNZG1UK2VycVR3d3lqcVJNUwp6WG15S19hNkQhI085bT5SK3E1dSpxKUZ+NEYmaXE7
aUt1ajdZRGpnPWdSIUswTUAzcCZjSSsjYT5kbzdiYytFRmYKenB9e2hBQXJLajtYJVNIWjZEOVJ6
NGB8U1NtYWh2I1ZBR3kxMWNYYVgpTXQ7ZDhNMSZ9MXwtaEF2WlZOaVhBNm88Cno2Y2Z5NSFKTDtR
Qmx0fVJ1Km9BTUxzfnxGWTVgZ2E3MlRQekljOXRaRnBVfjM3a2RlbS0qfWs5KEoqUElwSkpeSgp6
c1NVKWkrWXNPZXN5fld5JXQldzZ6TXF6KF9xQztAQHY+XnZJSnV5cVhoeFV9aXJrTkhSe1ZsY1pI
eV9KLV97YCEKensoaXtaXmBvPys7LVR9TkgzX2Vpa149QDduSnsmS0g+TkM+STgkK2QwNkVzMWh8
UHFvXm97MTspXn1fRVcofDU3Cnp5SmorNTMqeSltNmU1Rn5BUiM/SWFfTzt0MCtjQ2ZAXztscWQ5
QD5jV00lJGNOa2Jnc0RaN0NwYE9zbUJ2NWE8VQp6amhee2FHSVVvNGkteSEwVD0xZzN3OSRpQjhD
VjI2MUYwRyVsZz49VFFBREEwXj8/bC1mTzFeaj1mcXptdj4kSWsKenNGPCtiJSZCKnBrIUhYOVdp
Zm5hdXtFbj5TPCsqKndlI2crdElxKytDIWZGc2hsQElaJV9BUyZqJXlOa2o9dyNqCnpWMXpMND5C
Q0J2PzhtIV9BOHZVNXdfK2pSSkFVYSpLJFNoPT51O28pQCVnWm0oSGwjPj5IOXlBPVZEPHBAcjFS
ZAp6PmVXV2B6ZXJsfSYtMWljeX4lQ3MyV1JaVDFKaUs7KVNVWlE+VndxP0hJWiM0eXs3JWBIdEB1
VTktMm1UP1U4bXoKekM5NE9YeS1jfWRmWVlaQFRuSyE3T25Zd1VuVSM9UylrLVRqMVB5e1lfKmc+
ISRpZ1VuXzhIZz9ZZGBZQVp8PGhoCnprfk49OGg/MV9wcio2RTRkOVRVPnpPKUVUOyt4WSlDRHwm
NE04aFNHSjVyd2xMb3pOKWB4SmtwaG1UV2hua0g3Ugp6cHxHTj84PGJuQnA7KWFoa1ZzY2JDUjc7
UU0hdF9sRThrelhsPXtNR2lvIyhVWnMwI31TY1hoWUQmdkR3N3lBSHkKejsxV2w2bCVuQlN4SDNX
Yjsyak5QITVAc0xpYUt9fk0mRlB2VGdwd156Zj9wMkY8dGNOIWgyVDxzWHY2Ql9gfWNrCnpxfHV3
dTlwS1N0O3MrajNPbGFOVStvMl5UOSkpdU9sNXQ9WTFaYlQ8VUBrRUZZaWN4OFV4ekM8cFhlcHpW
YUl9KQp6KW57SkRXWXBlJGJwPjZ0U2w7S2RYMk9vUUdoUllCeE1OWVhATXBTbjVEN0Z9RFNQZjEq
cWBJYiMqYTRKZ0BxSGgKemA3cXlWa0thTUNjUmVtV05ZNjUxYUh2aSlEPHZLcWt2d2wxcDxtZVNp
Jih+LT0pekZIQElEUWFJN1Z0Q2BoWm9aCnpxOyYreG94ZTRFYmpOT0R3JkhFOENSeVY2UUNUd0Qm
UlhZe2ZfcSN7aFdHO3l2byV9JFlMOEJSQTBoMW81S0sqTwp6WEQzcmpkPnQ7TiEqMG5SSCVndjNj
c3Y3PT97Pk8qfDJyTXp6dEo0RkM1M2lIaH5JMjRTKlpOOHUzQjQ1cVRPMmsKelYjYSU8YUNHUSNX
YW58N2s/KlVKfElXP2JCRlN9IV58YDEkZ1R1THwoX0pPRGEtfGNYTUpIKWFucmUyKHVFdXF5Cnok
e2sjV3M4PH0/NW1qfGQtRiljVkdgUXA4LX4zN1RKOEJ8TWlDSSZwXnVaVD87aElnb1UxQEZNJVlB
PjItaGlvPwp6SUZFSW9oZjhFWVdSRHYwUUlLNlhkUnY5SkQrdD4rLTQ/ZUheJjA4SExzKEVhSWp9
PnVmZFBHLSZGS2BveChoUCkKelNYKlpxYm9zXj9telQ3YGtVPTJSKF9zRnRvIztlMS1qUyEze3dN
azJPTWNvSj5+NnpJayVtdlQtSmg3S3ZidCRCCno4fHJPP0peZzJYcl5IM017VnVgUDwpbCp8VnIq
RTFYPCskamBwOGtndDZTY01iTjk1MnhqbWR6YztgVXU8UUhmNAp6bH4rVFghMWAwP3VjVmNRJklS
QVFxPX1LbSFtUzlPbEJxQDBWV1RQd3hFYXZSYCNiZ1YhMFNjdkU+Qm1VMTl6SDEKemRRbTw3KXdl
JX0hcnV1dFpTNXdtZDtieD9FSjQxNnQqejhNaXszSnIhITlJdDtfVzNVJCZjfVc/Mk51cGZQQWJ6
CnphRXZTPnRGPTshSzVBb34td0x7YEFhS1dgMnZYOVchdik7KzM8diFfcUg0OylOVn5gO2VgKjNM
V1A+TmUlVWNWeAp6YjtMPWxtKSVyWXRBPXheY3dhQGZeSXNtR19mSEJNRiF5TENKK0JGT0hSPjdz
dEpkKT89Tnh6JTxsUGBGPDdGNmkKemwoSG85dj1zNkkyYSZYZjA8cVZqYyVtb1NqVipfOyY/anlV
K2BaQj44aVAtVmU2ZVNaRH50eyVHfEh2aHBXaio7CnphMz1+b3YmSHlDbUQydlckTittVUUkMTAk
RzMmNk0/UVkmaVJeb2A+Vmh8bHc9WUN4T09FP3dgWEAoVTw5WTd+Ngp6KUZjcSE8YFlPVWtgUCoj
ZTE3QXp2bnU2T25qZjI7aVlzbGwhdCFgQ2JuZ2tHT0FhQ15tNF5SVygoZCtTLW4pTH4KelRNIW1h
dUt6UT83NCpoX1MxPHZtcj5ANilBXzJ8fVJtSGo4I0EmfnZWKlZnQFcqWTxeUV8yJShaREBoZGxL
eUNlCnpsKXhldEo4IXBaI31xZjtDaj4qaU5xKj4zMHF4P2V1SW9LWVY4dVNyYlZ1WDtLQn5VblEj
S3ZHTCt3YEJOY1NTMQp6O1V+MnsxVH12S0RPaD9HalpxQV5AOFArT0VzaD17cVZZbVEkdlkmNGpZ
cD1JcE5HR2VzcjthQld4Nm80MUpvU1EKeih9Qkg0Y3YyP3NCfj9CRm02O0UxYnZrN2FDI24qUCVP
aT9kRzVMXjEtaGxtNShQJnIyK2NuRyshe19YVmA7TDg8CnpsfHApUGVkeV5kM2dsNFpxe2VnJTto
c04mPHlCLXFQJSpKRHgtZFlRdl9jKi0peVFwfE9+c2FAQUBxZDgwPlZXMQp6KllqanBnZ013WS18
fjNBZHI4aldeY2xAT3Z7NHhNdkhIUDtkSGxXe1VAXnV1SX1CIyF6RUJUK29lYmFkbXU7KFQKem8/
STVSRUdeemNLTEI/dENeJnpeaiRfbCQyTHU+ZGpVTFFhKCN7KGs4QzBAamNIQFk1cGxRQz5YU2Ra
UjwlMkZuCnpDMUNuWTk/eDF6SUBpPExRQG0/UVJhRkNnOGJINzFyNz5edUZ1WDV1TXRMYXEhIyU/
P1RrUVIySSFpZkk7eH1qOAp6ZnJgQlBeUTZzQTh2RHV9eUlUcUJlYDlqbihzNHArVUBYQWk0WVhH
d1QhfmVqNktfJSFGbylVMUZKeDU/SVg3cz8Kem5JfHomJH49JCRUK0xOR3dATFk5KEs2fFM/UiU7
SzkoMkAhc2xKUHhtSlFXRy0qQ3BQSSFER2tmblRNMz1VYEBrCnpvKk43KmtvR3J3YHBsaTRecEpw
amdTTUxGVm0mfT4hYVNNNGNQbjdoenNMMTRRa0s+VUsoRVcqcT1UfkI+Nkcycgp6M2tjMFBVPUdt
Zl9pMSFeJEl3WTtYc1pjKnozOXVRWmQxVDA/M3Z7WEt8alIjVHdAaW5vdWRIcnp3IX44eGBaVUwK
elA+OW1oYjRHSjk1JDdsMzVVU1kwZEsqUn1KUjR1PnlzSGRUVGFWe3JgcSUqTjRndjd9RHA4UE1N
RDh9dmU7VT48Cnp6PzV0QWoqSnA+PElOJVlkQjhAY20zanhYOSptcHBJU3J+ZDt0azJ7X3tJQj8o
XyVKNCtpd1BXTFc3QEpfVkFZTAp6emRKK1p0ZU40RE57aV9WbGJoSy1QcGU9VCYrcisxaHg1cXhs
KHxXP3NCTVF3PWg3c2V3eWFSSSh7KF9lU2s0PDsKemBCaH1HdX0pUSs3d0E8Y0J5Z1QkTkVQYmwj
P0EzVV5GazlLM2w8cTRIUmxqYXlFZ0EqI05rcmJoJWdVM2hOJGVtCnpQdWNPRzZvSGxCbk5yMXd6
REZ4S193aDN9XnI5NTtqPGZYJCpxa3tIJTZiZXVyMH1LP0olOTMjRVojSHNVVWxtWAp6Q3ZNQzBj
UlZDJjc9QTFzVyljX1dabGhYaWl7Q1V3RXJqTTJgVDg/amYxPHNIPVR4PmUxKTdEbSM1fF4rdUlR
KVIKelg2MnwrfEpeal9oI099O3pFUzY2P2ZhZHA1SUtyLT8ydG13PUBwSGZBVGNwKWlNNlJmaHc/
cV5oRjtnJUI+Tmd5Cnppbzs4dSQqT0I3YFI7TFo4akdoWis/Z2JOdShzWXM8aGh8Ym1iWXtLO04q
a0w8T2QlOCV9dT1JRjY5WCNNVjtxTAp6K1FVSUZwT1o5PWtmY2xRVzZFOV9Ce09tXmU1RDBpLXV4
VmclLVUrUGokK2A4MSpJIzlHTUV1eDxXOUNzbmxEMWsKem43JWVuRUhIKkEmfkkzN1VDPGVuMWZB
fWYpYiprJFFZez97eyZpNCVfUEpzTXE5bjR+ezByQzFDR25IVVBudXVLCnppd3wwTT0lS2ZXRFNw
c2lnU2NGeSEwUEJxPFl1WXBBYzdsOzNHKF9mUzE8fStUYD5jTHhaPGJ0JUJYR3Z1KVNtRwp6blgy
bztYK2Eld2E5RzcoezZCdktpe3IhKks9aGw3TVZfPnYkRykjdGhNaFdsZlhXMlEkV19ySihRIU5E
WEgwK3gKelE8IWpROzg4fkgzNEJjKGQyVystUUdPWnwjRkNRKmw+M3MtPnJQVXk9SlkzVmZ5fCR1
TXoodVBXfUBnMGhObHYkCno4aWpBbiF6VnlabTZZfVozZE9oM0QjRFVAeERGR1JlTEBWI2t1PVFa
TWFvXlFUJkRBSXkhOTxSUEB+OFUrJSlAcQp6Vmt3SjRMTHdWPVJMRHE5X3sqciRfRnpkR2dLM1ct
aD1xbVckNjVHeUtFbTU9dD54U3leVVAtYFNXJiF0WVM3SkcKekZ1SzZtLTYtMFZTcC0rPlgyO21h
WFF7NElsdmNBMjs3UDgqblNlZ252fFA7bmYkRjlOdmJoTT8qO2E2bylTXkdiCnooI3FqTi0qUEIk
bHd+JnNGVTt8RGVMUDFKYncoJTNAZiRRaWYlMn5PO2BYLVpXelRFKCprUCtqJXMwPDIpR2N7bwp6
WkstYWZocytTRFQhOEluYTR6Z2lBcDkqKyRfN0g3KWNURUtKVzgrZV5nSkt4TXokNmN5cEdZXjg5
ZnN8SGF6S2kKejluM3B+K0hSfEAkX3lNT2E5c1VuRjt7MUspdW9GajVKbFN7TztMRSp7Ykh1c1Vk
STNUZkBIOF5RVHFpa0FvZyV+CnpLcGRXQGdiJnU0aTE3PTh7fDl5RXNZTH5OQ25VYjMjSnFAUXAj
N3poaWt+PzdVME9QLTxfYzd5aUhpdXckYGc1aAp6NERrK1c0flNvamo9cDt9bHVUdUw2TGcrNkY+
OWl8WVJ0I1g4Y3VvKGVVcms+Wj5+O2FKN1pFYUNuV0FgTWRCYykKemY8aE5ORH59dSpvMlhkKUly
aXwwSDlzd2JgTGJTV24yY0RTaDBnQStvJT5jYyZaM1RPJnYlQGdGbDVeaWpxO0JeCnp2ejhSTigy
bDZZOTFXOWcoPk1yWkNoRDJGXyYjckN2fiE8ZjQ1SlQ2TX1PSGtVTl5XVlhUSlZee1ZgcjNDOWww
KAp6cjNhXzFfMmFlbFdhbzV5c2BxWlckU2wlX3BVPT8wLU5KUzNBcERhYF5MRzs9ej50X1k8IW9n
NV5zRnpnPXlfOUwKejRRKnBvNmlMe3xpSEw8R0c5LXpyKSVWIU1tJGI7ZTJVPm1YSzJkbjtTZnBg
S2lSKmI0dHtmalFmM1ElYHIjNjJFCnpqNVNKeD42RmgpclZwYG8yJjshTVIhRHVCSV9xMXdLckJW
d2V2LXx2QFVmVDtBaktwKXJDUihJXmsqamdEZWcoKAp6ZEljP1c0bnkjbHZDY19Xck53TWpSfHpK
Tk5NTHJzbylUJXxGRnhjNHBTWGllWUorSm9iOWAwUkpCOypIIWIwRzcKenlqY0p1bH1BVFhnUlFE
QFl1cWNATnhgM29UOF5HS1Q3WTJ3QjFeSn5pPzA1SlN+fHs1Z3YwTyFuWTg7amhxMGlZCnpWUG9O
RG8hPDA7VVpnUXs5N0g3TzgkN3JfZn0kR3lDKjJhZChDYjVPX1NzUzZlMnhsYkNGSUAxNjltS2Fj
TkJLZgp6bmNPPyNEMG0+Wj9LSFUjMFR5ckhVUUxYZD9JPUU2TGAqPE56e1IpJlZefFNAbFpvNl5u
LWVSaiV4N1h3bGUmKlQKentPRWZKYWQ9PUtUc1MpRE5MQ0B5WSkmb3BCUDJjIzZgMXxkaGtzQWle
UUFDalZgSFBVXjNKVFhxaDlDU2tOcnN7CnpiUExrfjN3clRqUmlpWCZqc0VAI1IzWWVGRUw3QCY1
cjdBVDdfU3hYYU8mfU9xbzFkcThHM3tRTHxtVmxgIzF9SAp6X2kxWSZUfU4rakM0Oyo2RjQ7UyVZ
aEVma2JGQ282WT9wRWRsa2JGWW51YXR2e1AjWD5qeTRmPCFMVF9CV0FPZ3QKenIpWHk3WVYtaXBS
MkEpPSZfKHdCaVliWDNjX29fWCRNdyo9MDBZIWA+KGhyQVZJZWFsR3JgJk5xT2JnQ1BzYVYkCno4
OzA1IVZfXjRCSUQheEdTTVZfKyRjbkdFXiomSHZWYHdObVlXYV80QnsyKyk4b2FrVFp1bUh6Kysx
QWlVdj52Mgp6I25GPipMI0MrIzYpKlZscmpqU0hMVGNiTTQxKyVuSjk/MUR7XmROeGpHKXQ4azBg
bmNXSXVAT01eWHlucWZIMEcKej1Xd0dgTWQ5fE5IMGUpWTd1fTx5TH12VEdRNVl3bnhlYURiKSl9
YX5nRT58TldpMW1oXiVCSlNXJk5kNHlHN0whCnpBQHV9I29ncD9OaDRBcldWTyVreXJ9bG9oJEgx
fG56UV9SV3ooRWZZSHZDQ3E0PXF1Til6KEdkJXNOWjFxUkZHdgp6XmhjPjxQZlZGZXZjO0JXQkNy
Jl45Wi1AU008Y1k2PkJuR2BxclQrfD40VXcpZlhEY1ghNURIWk41TTRvPHFoc08Kekx6ZE1DSlh7
K3xCeFc7d0I8ZFIyWEVocjZMenBUfDApQyRiVVcyU0k7R2dwe24tMSZlaT1AQSZFYGN2V3Y0cGNr
CnpocTRUUGopIUg5WDkybkwmSGFYSkFTYU5naF9ZekBoPWU1Tm4yQ3J9KyluSUE8WGQ4TE8oOUdu
ZTQlbnpIQEVNdQp6cDAzP2NFTkg9eD1sSjE3OC0jaWM3dChWVWFuPkhoOSohUTdDcWN2akx9QTFf
KUp4UFZSMjV1MispcD9pXmxTfDQKempRekIhYmQ4RXkke3drRHNtdHRjUjJLcGwjQ1N3XyU2Tn0t
b14mP3lGRGFMKVJWa3xzcDMxKnNueG1VVG4rclgxCnp1TFhgI1c9KlpgdCV8TF9qJiFCKnI7NT1y
UVpMY3AkITtuS2crOVVtbHx5cXhHZUMxal5GX2xhNU44SDVRPndkYgp6MnAxV1pjZDV1b1RjP2lr
WVUzX29FZFopPXdZRGx7RG1eUHNIVHtidyVMfmVhUjNLOGNHTH0pX3ZKVkpyTVFhNkQKek5tcH41
Z09BJmYjLX0mUkFDKStqVH5hcVcxNmRKSiE8ezFTQlJ3TkM8QXZoQU5Fa159eGwoeGF0O1FeSmZF
YG14Cno8N2A4WWFleiRVdSlremk1PThKc2hIVWd+dn4xPTJDSm18SiplM2c/NHEmYU51fD9xMlAj
KioyQWg5Oz82aW96UAp6MWlNcXI+LStAcyMwSjB4cGM4VSooe2V2P2VjR1BpeU19eSt7TFBJXlB6
P0ppM2E4IzVlZm4/YihLV2MtZkJVfF4Kem56Tz5jNHgpY3FDO3JRbSlNdkY7Vj93MjBrfGQ5YTQ9
O2dDTEZqSX5GQWtJWGVnQ0tyNGxHNz9yYkxTPUxuQHxMCnozJEwpPj1GamU2eExsIys3TnE9LVMp
TVR3LUFFc2FvdE85Uj98YE56T31PekxCKGVke001SVl2K1ptRTIpLXlqbgp6MjtMZE5CNmwyMDFu
bn1Vc2I3OFhQdnN2KD1hIW9Pdj1NdCVHKnowU1pkUCpJN2QwUVV4UURLTy1UfjRHPXp0QWMKekBC
NS1WdWBaZyp0dGZOYlJwJk5pWj9ealYrXjxVbTQ1SDA1Z1okKm42fF5DdGEqMkdZXjV6ajB7Y1hy
enVBeExyCnojK009a1ZPdEBpVzVgRDBMJjsmQi1yOUJBYnJoNENSP1pnKGhmR0QkUDZkOV4yO156
SHJDO083cUNOKVppcGxNKgp6d1ZUVzJyQ1FpJV8lVXlQRGJITmRDOEBzQXdEWG56LUcmdlAoeGQ1
JVUzZX4qLTNLbURvaipHNXNyS1lTJmBhR1MKel5+bG5MOGNDKkFWY01ncUJ4dCsyTjV0Z25Xellf
PCYqe09TPzhDdjg3WWwwUTQ0dVk3YHZRUj9WPVlydmtgdXd1CnpeeTVhVSEodVdGbyl6OGYrdmw/
RWxvOCZqdTVxM3pIbEE+cDxwRnhhWG1yRnM5PE5SZCtEcXh5YUkhbHFBIWVaKQp6OD9+USV1Tklm
elVhZjN3eW9uOEFWKTYyUlpSWHpJIT1WIVdnYG9TMSt3cj9TNko3X1AjOGUtQGdSckc9JDwhOVEK
enUqQE4+S3RoQ0toXnYqaW1BOFI2IypNQXRoWEtxSypDMzxfcm8rITMmfHNWM1ZPI3FmeDM1PH5z
RiN3Vm0jd1hyCnp2N25kRnViMC1NbStQc1FkODFjfHh0eUdeb1RhPit7YCRVVlVyd3ooIWI5Xioq
UDc+UnpGeF8zVEs7O3ZUdEttJAp6R0l9eVZAUXVncE9hNGxQQGsrd1JPMVJpY1Q9ejs7OzdaYW5B
T3J5cjlTLT5ONWZCZG5nd1g8R084fTlVZko3KUQKejZkdz57cih9YzdfISo1Q2tmQT5nIzQ2e2Bv
Q0FkVz04ZnYtTyQxRXQ3KT9TMElKVHVZYn1jd3xHJnJFe2I9I2xuCnpjSjFxUzRDPGhNJmZCdWl5
RmxrMTljUVQ1Knx5NXJ1SmhUQiRyJl89YXtCfTJ0fnVxN0l3alB0VXxYU0oqUkVoawp6elgwbE12
TXBuPllpK1dsWkRJKnVlfShMRk4jdF5jYiQmXkNlZyNpO2lBIX5iVDZqclhjIWd3b05vYWI3eHBo
Z2cKemIlaHt0aTcjPTUtaDI3M19pRmd3amB3Z1h5OCFoSElDMTNGc1RuMm17cWRYI2VhalV9PFVH
WmBGOz1AVjxoMFF2Cno7QGR0cjsjIV5KN1ZpN21DYUlARl9GS0kzc2Q8OF9lTWJvdXJCNiZ+Q2R1
bSpnKUpKZXlAUDtGPCNQfHB0JFkydQp6dnx1Y0E7Sm1lWD9lJD5ZVyE0a0lUUXZXTz90VDtWZjhn
KHh7fnhUVThNbU1PJWVyU3g/Q1A2IVNPMC01e3UkazQKekNmNDxoeCt+UXUrVyYmOUNRanc4bnJv
RyheSXJCTUUlfmJ8bWdOXkYzRWV7YG1ofXh3JU1LXn13YEJnYy1IUnA7CnpeKHstUTR5UEAqMkxG
T3ZDalVFdm0qZFYjOSpASyFSOXBTRT4jTlZfezxSYHFhQFNQUGE8R307fDJ9UVYtT1U3Zwp6UTJu
MSYtZFlZamw2WGpaRGZ3Pl8/RUNySkZ9NFVnT3paYEkrP1pGZzlVY3x8aEVJU34xaXd8JllrLUdP
KU5oYlEKbVg0UnRzPExFMWIye2N8OEFeSD94V0w2X1JlSn15KktmYlhWMllQaklhUV8xbV84QzxH
CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9mb250cy93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVu
bmVyL2ZvbnRzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4MzI3YmJjOGQ1MmZkZTA0ODU0
NGUyMDBlMmU1YWVjNTc0NDFhNjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9mb250cy93M2MtaW1wb3J0
LmxvZwpAQCAtMCwwICsxLDIwIEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBp
bXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVz
dHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9u
IHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2Vi
S2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKwor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitO
b25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9mb250cy9nbHlwaGljb25zLWhhbGZsaW5n
cy1yZWd1bGFyLmVvdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcnVubmVyL2ZvbnRzL2dseXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIuc3ZnCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIv
Zm9udHMvZ2x5cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci50dGYKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9mb250cy9nbHlwaGljb25z
LWhhbGZsaW5ncy1yZWd1bGFyLndvZmYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL2luZGV4Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9pbmRleC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjVkZmMxZGNmMzZlNjQ3YmJiODY1ZmFhYzE0ZjcxMjFjZTUwNmI3ZTEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3J1bm5lci9pbmRleC5odG1sCkBAIC0wLDAgKzEsMjIxIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sIGxhbmc9ZW4+Cis8bWV0YSBjaGFyc2V0PVVURi04PgorPHRpdGxlPldl
YiB0ZXN0czwvdGl0bGU+Cis8bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9J2Nzcy9ib290c3Ry
YXAubWluLmNzcyc+Cis8bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9J2Nzcy9ib290c3RyYXAt
dGhlbWUubWluLmNzcyc+Cis8bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9J3J1bm5lci5jc3Mn
PgorPHNjcmlwdCBzcmM9Jy9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMnPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9J3J1bm5lci5qcyc+PC9zY3JpcHQ+CisKKworPGhlYWRlciBjbGFzcz0ibmF2
YmFyIG5hdmJhci1pbnZlcnNlIG5hdmJhci1maXhlZC10b3AiPgorICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgIDxkaXYgY2xhc3M9Im5hdmJhci1oZWFkZXIiPgorICAgICAgPGEgY2xhc3M9
Im5hdmJhci1icmFuZCIgaHJlZj0iIyI+CisgICAgICAgIDxpbWcgc3JjPSdsb2dvLnN2Zycgd2lk
dGg9JzUwJyBoZWlnaHQ9JzUwJyBhbHQ9J0xvZ28gZm9yIHRoZSBXUFQgUnVubmVyJz4KKyAgICAg
ICAgV2ViIFBsYXRmb3JtIFRlc3RzIFJ1bm5lcgorICAgICAgPC9hPgorICAgIDwvZGl2PgorICA8
L2Rpdj4KKzwvaGVhZGVyPgorCis8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICA8ZGl2IGlkPSJ0
ZXN0Q29udHJvbCIgY2xhc3M9InBhbmVsIHBhbmVsLWRlZmF1bHQiPgorICAgIDxkaXYgY2xhc3M9
InBhbmVsLWJvZHkiPgorICAgICAgPGZvcm0gaWQ9J29wdGlvbnMnIGNsYXNzPSdob3Jpem9udGFs
LWZvcm0nIG9uc3VibWl0PSdyZXR1cm4gZmFsc2U7Jz4KKworICAgICAgICA8ZGl2IGNsYXNzPSJm
b3JtLWdyb3VwIj4KKyAgICAgICAgICA8bGFiZWwgY2xhc3M9ImNvbC1zbS0zIGNvbnRyb2wtbGFi
ZWwiPlRlc3QgdHlwZXMgdG8gaW5jbHVkZTwvbGFiZWw+CisgICAgICAgICAgPGRpdiBjbGFzcz0i
Y29sLXNtLTkiPgorICAgICAgICAgICAgPGxhYmVsPgorICAgICAgICAgICAgICA8aW5wdXQgdHlw
ZT1jaGVja2JveCBjaGVja2VkIHZhbHVlPSJ0ZXN0aGFybmVzcyIgaWQ9J3RoJyBjbGFzcz0ndGVz
dC10eXBlJz4KKyAgICAgICAgICAgICAgSmF2YVNjcmlwdCB0ZXN0cworICAgICAgICAgICAgPC9s
YWJlbD4KKyAgICAgICAgICAgIDxsYWJlbD4KKyAgICAgICAgICAgICAgPGlucHV0IHR5cGU9Y2hl
Y2tib3ggY2hlY2tlZCB2YWx1ZT0icmVmdGVzdCIgaWQ9J3JlZicgY2xhc3M9J3Rlc3QtdHlwZSc+
CisgICAgICAgICAgICAgIFJlZnRlc3RzCisgICAgICAgICAgICA8L2xhYmVsPgorICAgICAgICAg
ICAgPGxhYmVsPgorICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1jaGVja2JveCBjaGVja2VkIHZh
bHVlPSJtYW51YWwiIGlkPSdtYW4nIGNsYXNzPSd0ZXN0LXR5cGUnPgorICAgICAgICAgICAgICBN
YW51YWwgdGVzdHMKKyAgICAgICAgICAgIDwvbGFiZWw+CisgICAgICAgICAgPC9kaXY+CisgICAg
ICAgIDwvZGl2PgorCisgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgorICAgICAgICAg
IDxsYWJlbCBmb3I9InBhdGgiIGNsYXNzPSJjb2wtc20tMyBjb250cm9sLWxhYmVsIj5SdW4gdGVz
dHMgdW5kZXIgcGF0aDwvbGFiZWw+CisgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLXNtLTkiPgor
ICAgICAgICAgICAgPGlucHV0IHZhbHVlPSIvIiBpZD0ncGF0aCcgY2xhc3M9J3BhdGggZm9ybS1j
b250cm9sJyBkaXNhYmxlZD4KKyAgICAgICAgICAgIDxsYWJlbD4KKyAgICAgICAgICAgICAgPGlu
cHV0IHR5cGU9Y2hlY2tib3ggaWQ9J3VzZV9yZWdleCc+CisgICAgICAgICAgICAgIFVzZSByZWd1
bGFyIGV4cHJlc3Npb24KKyAgICAgICAgICAgIDwvbGFiZWw+CisgICAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDwvZGl2PgorCisgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgorICAgICAg
ICAgIDxsYWJlbCBmb3I9InRpbWVvdXRfbXVsdGlwbGllciIgY2xhc3M9ImNvbC1zbS0zIGNvbnRy
b2wtbGFiZWwiPlRpbWVvdXQgbXVsdGlwbGllcjwvbGFiZWw+CisgICAgICAgICAgPGRpdiBjbGFz
cz0iY29sLXNtLTkiPgorICAgICAgICAgICAgPGlucHV0IHR5cGU9bnVtYmVyIHZhbHVlPSIxIiBp
ZD0ndGltZW91dF9tdWx0aXBsaWVyJyBjbGFzcz0ndGltZW91dF9tdWx0aXBsaWVyIGZvcm0tY29u
dHJvbCc+CisgICAgICAgICAgPC9kaXY+CisgICAgICAgIDwvZGl2PgorCisgICAgICAgIDxkaXYg
Y2xhc3M9ImZvcm0tZ3JvdXAiPgorICAgICAgICAgIDxsYWJlbCBjbGFzcz0iY29sLXNtLTMgY29u
dHJvbC1sYWJlbCI+RGVidWcgb3B0aW9uczwvbGFiZWw+CisgICAgICAgICAgPGRpdiBjbGFzcz0i
Y29sLXNtLTkiPgorICAgICAgICAgICAgPGxhYmVsPgorICAgICAgICAgICAgICA8aW5wdXQgdHlw
ZT1jaGVja2JveCBpZD0ncmVuZGVyJyB2YWx1ZT0ncmVuZGVyJyBjbGFzcz0ncmVuZGVyJz4KKyAg
ICAgICAgICAgICAgU2hvdyBvdXRwdXQKKyAgICAgICAgICAgIDwvbGFiZWw+CisgICAgICAgICAg
ICA8bGFiZWw+CisgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPWNoZWNrYm94IGlkPSdkdW1waXQn
PgorICAgICAgICAgICAgICBEdW1wIEpTT04KKyAgICAgICAgICAgIDwvbGFiZWw+CisgICAgICAg
ICAgPC9kaXY+CisgICAgICAgIDwvZGl2PgorCisgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3Jv
dXAiPgorICAgICAgICAgIDxsYWJlbCBjbGFzcz0iY29sLXNtLTMgY29udHJvbC1sYWJlbCI+Q291
bnQgb2YgbWF0Y2hpbmcgdGVzdHM8L2xhYmVsPgorICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1z
bS05IiBpZD0idGVzdGNvdW50Ij4KKyAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisK
KyAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CisgICAgICAgICAgPGRpdiBjbGFzcz0i
Y29sLXNtLW9mZnNldC0zIGNvbC1zbS05Ij4KKyAgICAgICAgICAgIDxidXR0b24gdHlwZT0ic3Vi
bWl0IiBjbGFzcz0iYnRuIGJ0bi1zdWNjZXNzIHRvZ2dsZVN0YXJ0IiBkaXNhYmxlZD5TdGFydDwv
YnV0dG9uPgorICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSdzdWJtaXQnIGNsYXNzPSJidG4gYnRu
LWluZm8gdG9nZ2xlUGF1c2UiIGRpc2FibGVkPlBhdXNlPC9idXR0b24+CisgICAgICAgICAgPC9k
aXY+CisgICAgICAgIDwvZGl2PgorICAgICAgPC9mb3JtPgorICAgIDwvZGl2PgorICA8L2Rpdj4K
KworICA8ZGl2IGNsYXNzPSJpbnN0cnVjdGlvbnMiPgorICAgIDxwPgorICAgICAgVG8gcnVuIGEg
c2V0IG9mCisgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9ibG9iL21hc3Rlci9SRUFETUUubWQiPndlYi1wbGF0Zm9ybS10ZXN0czwvYT4KKyAg
ICAgIHRlc3RzLCBzcGVjaWZ5IGEgcGF0aCB2YWx1ZSBpbiB0aGUgPGI+UnVuIHRlc3RzIHVuZGVy
IHBhdGg8L2I+IGZpZWxkIGFib3ZlLiBFeGFtcGxlIHBhdGhzOgorICAgIDwvcD4KKyAgICA8dWw+
CisgICAgICA8bGk+PGNvZGU+LzwvY29kZT4gLSBydW5zIGFsbCBvZiB0aGUgdGVzdHMgZnJvbSB0
aGUgcm9vdCBkb3duPC9saT4KKyAgICAgIDxsaT48Y29kZT4vd2Vic29ja2V0czwvY29kZT4gLSBy
dW5zIGFsbCBvZiB0aGUKKyAgICAgICAgICA8YSBocmVmPSJodHRwOi8vdzNjLXRlc3Qub3JnL3dl
YnNvY2tldHMvIj53ZWJzb2NrZXRzPC9hPiB0ZXN0czwvbGk+CisgICAgICA8bGk+PGNvZGU+L3dl
YnNvY2tldHMvY29uc3RydWN0b3I8L2NvZGU+IC0gcnVucyBhbGwgb2YgdGhlCisgICAgICAgICAg
PGEgaHJlZj0iaHR0cDovL3czYy10ZXN0Lm9yZy93ZWJzb2NrZXRzL2NvbnN0cnVjdG9yLyI+d2Vi
c29ja2V0cy9jb25zdHJ1Y3RvcjwvYT4gdGVzdHM8L2xpPgorICAgICAgPGxpPjxjb2RlPi9odG1s
L3N5bnRheC9wYXJzaW5nPC9jb2RlPiAtIHJ1bnMgYWxsIG9mIHRoZQorICAgICAgICAgIDxhIGhy
ZWY9Imh0dHA6Ly93M2MtdGVzdC5vcmcvaHRtbC9zeW50YXgvcGFyc2luZy8iPmh0bWwvc3ludGF4
L3BhcnNpbmc8L2E+IHRlc3RzPC9saT4KKyAgICA8L3VsPgorICAgIDxwPgorICAgICAgTXVsdGlw
bGUgdGVzdCBwYXRocyBjYW4gYmUgc3BlY2lmaWVkIGJ5IHNlcGFyYXRpbmcgdGhlbSB3aXRoIGNv
bW1hIG9yIHdoaXRlc3BhY2UuIEZvciBleGFtcGxlLAorICAgICAgPGNvZGU+L2pzLCAvaHRtbDwv
Y29kZT4gd2lsbCBydW4gdGhlIDxhIGhyZWY9Imh0dHA6Ly93M2MtdGVzdC5vcmcvanMvIj5qczwv
YT4gPGVtPmFuZDwvZW0+IDxhIGhyZWY9Imh0dHA6Ly93M2MtdGVzdC5vcmcvaHRtbC8iPmh0bWw8
L2E+CisgICAgICB0ZXN0cy4KKyAgICA8L3A+CisgICAgPHA+CisgICAgICA8YSBocmVmPSJodHRw
Oi8vd3d3Lnczc2Nob29scy5jb20vanNyZWYvanNyZWZfb2JqX3JlZ2V4cC5hc3AiIHRhcmdldD0i
X2JsYW5rIj5KYXZhc2NyaXB0IHJlZ3VsYXIgZXhwcmVzc2lvbnM8L2E+IGFyZSBhbHNvIHN1cHBv
cnRlZCBmb3IgZmlsdGVyaW5nLiBXaGVuIHRoZSBvcHRpb24gaXMgY2hlY2tlZCwKKyAgICAgIG9u
bHkgYSB0ZXN0IHBhdGggbWF0Y2hpbmcgdGhlIHJlZ2V4IHBhdHRlcm4gd2lsbCBydW4uIEZvciBl
eGFtcGxlLCB5b3UgY2FuIHNwZWNpZnkgPGNvZGU+Xi9qcy98Xi9odG1sLzwvY29kZT4KKyAgICAg
IHRvIHJ1biB0aGUgPGEgaHJlZj0iaHR0cDovL3czYy10ZXN0Lm9yZy9qcy8iPmpzPC9hPiA8ZW0+
YW5kPC9lbT4gPGEgaHJlZj0iaHR0cDovL3czYy10ZXN0Lm9yZy9odG1sLyI+aHRtbDwvYT4KKyAg
ICAgIHRlc3RzLgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgIElmIHRoZSB0ZXN0IHJ1bm5lciBp
cyBydW4gb25saW5lLCB0aGUgc2V0IG9mIHRlc3RzIGF2YWlsYWJsZSB0byBydW4gY2FuIGJlIGZv
dW5kIGluIHRoZQorICAgICAgPGEgaHJlZj0iaHR0cDovL3czYy10ZXN0Lm9yZy8iPnczYy10ZXN0
Lm9yZzwvYT4gdGVzdCByZXBvc2l0b3J5LgorICAgIDwvcD4KKyAgICA8cD4KKyAgICAgIFRlc3Rz
IHdpbGwgcnVuIGluIGEgbmV3IHdpbmRvdy4gRm9yIHJlZnRlc3RzIGFuZCBtYW51YWwgdGVzdHMg
aXTigJlzIGJlc3QKKyAgICAgIHRvIHB1dCB0aGF0IHdpbmRvdyBzaWRlLWJ5LXNpZGUgd2l0aCB0
aGlzIG9uZS4KKyAgICA8L3A+CisgIDwvZGl2PgorCisgIDxkaXYgaWQ9Im91dHB1dCI+CisgICAg
PGRpdiBjbGFzcz0ic3VtbWFyeSBjbGVhcmZpeCI+CisgICAgICA8aDQ+UHJvZ3Jlc3M8L2g0Pgor
ICAgICAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MiPgorICAgICAgICA8ZGl2IGNsYXNzPSJwcm9ncmVz
cy1iYXIiIHJvbGU9InByb2dyZXNzYmFyIgorICAgICAgICAgICAgIGFyaWEtdmFsdWVub3c9IjAi
IGFyaWEtdmFsdWVtaW49IjAiIGFyaWEtdmFsdWVtYXg9IjAiIHN0eWxlPSJ3aWR0aDogMCI+Cisg
ICAgICAgICAgMCUKKyAgICAgICAgPC9kaXY+CisgICAgICA8L2Rpdj4KKyAgICAgIDxkaXYgaWQ9
ImN1cnJlbnRfdGVzdCI+CisgICAgICAgIDxsYWJlbD5DdXJyZW50IHRlc3Q6PC9sYWJlbD48YT48
L2E+CisgICAgICA8L2Rpdj4KKyAgICAgIDx0YWJsZSBjbGFzcz0ndGFibGUnPgorICAgICAgICA8
dGhlYWQ+CisgICAgICAgICAgPHRyPgorICAgICAgICAgICAgPHRoPjwvdGg+CisgICAgICAgICAg
ICA8dGg+UGFzc2VkPC90aD4KKyAgICAgICAgICAgIDx0aD5GYWlsZWQ8L3RoPgorICAgICAgICAg
ICAgPHRoPlRpbWVvdXRzPC90aD4KKyAgICAgICAgICAgIDx0aD5FcnJvcnM8L3RoPgorICAgICAg
ICAgICAgPHRoPk5vdCBSdW48L3RoPgorICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGhlYWQ+
CisgICAgICAgIDx0Ym9keT4KKyAgICAgICAgICA8dHI+CisgICAgICAgICAgICA8dGQ+PC90ZD4K
KyAgICAgICAgICAgIDx0ZCBjbGFzcz0nUEFTUyc+MDwvdGQ+CisgICAgICAgICAgICA8dGQgY2xh
c3M9J0ZBSUwnPjA8L3RkPgorICAgICAgICAgICAgPHRkIGNsYXNzPSdUSU1FT1VUJz4wPC90ZD4K
KyAgICAgICAgICAgIDx0ZCBjbGFzcz0nRVJST1InPjA8L3RkPgorICAgICAgICAgICAgPHRkIGNs
YXNzPSdOT1RSVU4nPjA8L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgICAgIDx0cj4KKyAg
ICAgICAgICAgIDx0ZD4KKyAgICAgICAgICAgICAgPGxhYmVsPgorICAgICAgICAgICAgICAgIERp
c3BsYXk6CisgICAgICAgICAgICAgIDwvbGFiZWw+CisgICAgICAgICAgICAgIDwvdGQ+CisgICAg
ICAgICAgICA8dGQ+PGlucHV0IHR5cGU9Y2hlY2tib3ggY2xhc3M9InJlc3VsdC1kaXNwbGF5LWZp
bHRlciIgdmFsdWU9IlBBU1MiIGNoZWNrZWQ+PC90ZD4KKyAgICAgICAgICAgIDx0ZD48aW5wdXQg
dHlwZT1jaGVja2JveCBjbGFzcz0icmVzdWx0LWRpc3BsYXktZmlsdGVyIiB2YWx1ZT0iRkFJTCIg
Y2hlY2tlZD48L3RkPgorICAgICAgICAgICAgPHRkPjxpbnB1dCB0eXBlPWNoZWNrYm94IGNsYXNz
PSJyZXN1bHQtZGlzcGxheS1maWx0ZXIiIHZhbHVlPSJUSU1FT1VUIiBjaGVja2VkPjwvdGQ+Cisg
ICAgICAgICAgICA8dGQ+PGlucHV0IHR5cGU9Y2hlY2tib3ggY2xhc3M9InJlc3VsdC1kaXNwbGF5
LWZpbHRlciIgdmFsdWU9IkVSUk9SIiBjaGVja2VkPjwvdGQ+CisgICAgICAgICAgICA8dGQ+PGlu
cHV0IHR5cGU9Y2hlY2tib3ggY2xhc3M9InJlc3VsdC1kaXNwbGF5LWZpbHRlciIgdmFsdWU9Ik5P
VFJVTiIgY2hlY2tlZD48L3RkPgorICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGJvZHk+Cisg
ICAgICA8L3RhYmxlPgorICAgICAgPGEgY2xhc3M9Impzb25SZXN1bHRzIGJ0biBidG4tcHJpbWFy
eSBwdWxsLXJpZ2h0Ij5Eb3dubG9hZCBKU09OIHJlc3VsdHM8L2E+CisgICAgPC9kaXY+CisKKyAg
ICA8ZGl2IGNsYXNzPSJyZXN1bHRzIj4KKyAgICAgIDxkaXYgaWQ9Im1hbnVhbFVJIj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0ncGFuZWwgcGFuZWwtcHJpbWFyeSc+CisgICAgICAgICAgPGRpdiBjbGFz
cz0ncGFuZWwtaGVhZGluZyc+CisgICAgICAgICAgICA8aDQgY2xhc3M9J3BhbmVsLXRpdGxlJz5N
YW51YWwgVGVzdGluZzwvaDQ+CisgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgPGRpdiBjbGFz
cz0icGFuZWwtYm9keSByZWZ0ZXN0VUkiPgorICAgICAgICAgICAgPHA+CisgICAgICAgICAgICAg
IFRoZSBjdXJyZW50IHRlc3QgcmVxdWlyZXMgbWFudWFsIHJlc3VsdCBtYXJraW5nLgorICAgICAg
ICAgICAgICBUZXN0IGFuZCByZWYgc2hvdWxkIGNvbXBhcmUgPHN0cm9uZyBjbGFzcz0icmVmVHlw
ZSB0ZXh0LXByaW1hcnkiPjwvc3Ryb25nPgorICAgICAgICAgICAgPC9wPgorICAgICAgICAgICAg
PHA+CisgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4taW5mbyB0ZXN0Ij5TaG93
IFRlc3Q8L2J1dHRvbj4KKyAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1pbmZv
IHJlZiI+U2hvdyBSZWZlcmVuY2U8L2J1dHRvbj4KKyAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9
InJlZnRlc3RXYXJuIj48L3NwYW4+CisgICAgICAgICAgICA8L3A+CisgICAgICAgICAgPC9kaXY+
CisgICAgICAgICAgPGRpdiBjbGFzcz0icGFuZWwtZm9vdGVyIj4KKyAgICAgICAgICAgIFRoZSB0
ZXN0IGhhczoKKyAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4tc3VjY2VzcyBwYXNz
Ij5QYXNzZWQ8L2J1dHRvbj4KKyAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImJ0biBidG4taW5m
byBza2lwIj5Ob3QgUnVuPC9idXR0b24+CisgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJidG4g
YnRuLWRhbmdlciBmYWlsIj5GYWlsZWQ8L2J1dHRvbj4KKyAgICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgPC9kaXY+CisgICAgICA8L2Rpdj4KKworICAgICAgPGhyPgorICAgICAgPGg0PkRldGFpbHM8
L2g0PgorICAgICAgPHRhYmxlIGNsYXNzPSd0YWJsZSc+CisgICAgICAgIDx0aGVhZD4KKyAgICAg
ICAgICA8dHI+CisgICAgICAgICAgICA8dGg+VGVzdAorICAgICAgICAgICAgPHRoPlN0YXR1cwor
ICAgICAgICAgICAgPHRoPk1lc3NhZ2UKKyAgICAgICAgICAgIDx0aD5TdWJ0ZXN0IFBhc3MgUmF0
ZQorICAgICAgICAgIDwvdHI+CisgICAgICAgIDwvdGhlYWQ+CisgICAgICAgIDx0Ym9keT48L3Ri
b2R5PgorICAgICAgPC90YWJsZT4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+CisKKzwvZGl2PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9ydW5uZXIvbG9nby5zdmcgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3J1bm5lci9sb2dvLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YTI1Nzc2YjZmNGM3YTZm
OWMwNzk5NjM3MWIwMjZmMjRkMzE0NmNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvbG9nby5zdmcKQEAg
LTAsMCArMSw4IEBACis8c3ZnIHdpZHRoPSI0NTNweCIgaGVpZ2h0PSI0NTNweCIgdmlld0JveD0i
MCAwIDQ1MyA0NTMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CisgIDxjaXJj
bGUgc3Ryb2tlPSIjZWQ1NTY1IiBzdHJva2Utd2lkdGg9IjIwIiBmaWxsPSIjZmZmIiBjeD0iMjI2
LjUiIGN5PSIyMjYuNSIgcj0iMjEzLjUiPjwvY2lyY2xlPgorICA8ZyB0cmFuc2Zvcm09InRyYW5z
bGF0ZSgxNjAgMjUwKSI+CisgICAgPGcgdHJhbnNmb3JtPSJtYXRyaXgoMi4yNSAwIDAgLTIuMjUg
MCAwKSI+CisgICAgICA8cGF0aCBkPSJtMCAwYzAuMjUyLTAuMzMzIDAuNTA4LTAuNjU5IDAuNzY2
LTAuOTc0LTEuMjY5LTMuNzY0LTIuMzY4LTcuNzQ5LTMuNDQ3LTExLjM4My0wLjE2Ni0wLjA1My0w
LjMyOS0wLjExNi0wLjQ4Ni0wLjE5NC04LjU3MiA4LjIxMS0yLjA1NiAxMS4zNjQgMy4xNjcgMTIu
NTUxbTU5LjgwOSA0NS41N2MyLjg5OSAyMC4xMTgtMTAuMDg0IDM4LjYzNS0yOSA0MS4zNjItMTgu
OTE1IDIuNzI2LTM2LjYwMS0xMS4zNzEtMzkuNS0zMS40ODktMi40MTgtMTYuNzc0IDYuMjEyLTMy
LjQyNyAyMC4xMTItMzguNzVsLTAuMDUgMC4wMTQtMC4zMjMtMi4yNDJjMC4yMTktMC4wNDkgMC40
MjctMC4wOSAwLjY0LTAuMTM0LTAuMTIyLTAuMDI3LTAuMjQ1LTAuMDUzLTAuMzY1LTAuMDg2bC0w
LjAwNCAwLjAxM3MtMC4wNDItMC4wMTctMC4xMDYtMC4wNDJjLTAuNDY1LTAuMTM3LTAuOTE1LTAu
MzE5LTEuMzQ5LTAuNTQ0LTMuNTAyLTEuNDI0LTEyLjI4NS01LjA5NS0xNC4yODctNi44NjcgMCAw
IDAuOTI3LTEuNjY1IDIuMjU0LTMuNzA0LTE3LjMzNS0yLjQyMS02LjUyMi0xNS42My0zLjE3Ni0x
OS4yNi0wLjAxNS0wLjI5NiAwLjAwNC0wLjU5MiAwLjAzOS0wLjg4OC0yLjU2Mi0xLjY3Ny01Ljc3
Mi00LjE5NS03Ljc3Mi03LjI5IDAgMCAwLjU1Mi0wLjE4MiAxLjQ1OC0wLjUzNnYtMC4wMDFsMC4w
MTYtMC4wMDVjMS4xODItMC40NjMgMi45Ni0xLjIxOSA0LjkxNC0yLjI0OC0zLjAwNC0xMy41NTct
Ny41NDItOS42NzctMTAuNTg5LTQuNjgzIDAuNzQ1IDIuMjMyIDAuNzQxIDQuMjMtMC4yMDIgNS4z
OTMtMC42NiAwLjgxMS0xLjY4MSAxLjEwMS0yLjg4OSAwLjkzMS0wLjA4NyAwLjIyMi0wLjEzNSAw
LjM0OS0wLjEzNSAwLjM0OWwtMC4xMDgtMC4zOTdjLTAuMDU3LTAuMDEtMC4xMTUtMC4wMjEtMC4x
NzMtMC4wMzQgMC4wMDUgMC4wMDMgMC4wMDggMC4wMDUgMC4wMTMgMC4wMDggMCAwLTAuMDMyLTAu
MDA4LTAuMDc4LTAuMDIxLTAuNTA4LTAuMTE2LTEuMDQyLTAuMzA2LTEuNTkzLTAuNTY2LTIuNzU5
LTEuMTU4LTguMDIzLTQuMjQ4LTguNjM5LTExLjA4OC0wLjIwOC0xLjA1Ni0wLjIxMi0yLjAxNSAw
LjAwMi0yLjgxMiAwLjAwMS0wLjAxNCAwLjAwMS0wLjAyNiAwLjAwMy0wLjA0IDAgMCAwLjUyNy00
LjU2MSA0LjI4OC0xLjg5NGwtMC4wMDIgMC4wMDNjMS44NjEgMC41MzYgNC4wMzQgMi4wMDMgNS45
ODkgNC4yMjYgMC42NjQgMC43NTUgMS4yNTYgMS41NDUgMS43NjggMi4zNDMgOC41MzctMTYuNzY4
IDE0Ljk3NCAzLjQwOSAxNS44MSA2LjIzIDIuMzA5LTEuNTM4IDQuNTI4LTMuNDI1IDYuMDE5LTUu
NjQgMCAwIDEuMTgyIDMuNDU4IDMuOTQyIDYuMzEyIDUuOTg0LTguOTU2IDEzLjM3NC0xMC40NjUg
MTMuMzc0LTEwLjQ2NWwzLjgwMiA2LjE1MmMxMS4zMjgtNS41NjkgNy4zODItMTAuMzg1IDIuNzEz
LTEzLjI1My0xLjc1NyAxLjE5OC0zLjQyOCAxLjQ4NS00LjUzNyAwLjU1LTAuNzc1LTAuNjUzLTEu
MTY2LTEuODA3LTEuMi0zLjI0Ni0wLjE5OS0wLjA2OS0wLjMxMi0wLjEwNi0wLjMxMi0wLjEwNmww
LjMxNi0wLjE4NWMwLjAwMS0wLjA2OSAwLjAwMi0wLjEzOSAwLjAwNC0wLjIxLTAuMDAyIDAuMDA2
LTAuMDA0IDAuMDEyLTAuMDA2IDAuMDE5IDAgMCAwLjAwMy0wLjA0NCAwLjAwNy0wLjExMiAwLjAy
NC0wLjYwNCAwLjEwNC0xLjI0NyAwLjIzOS0xLjkyIDAuNTY0LTMuMzk1IDIuMzc4LTEwLjAxOSA4
LjAxMy0xMS43NDEgMC44NTEtMC4zOTYgMS42NTItMC41NDIgMi4zNDktMC40MDcgMC4wMTIgMCAw
LjAyMy0wLjAwMyAwLjAzNS0wLjAwMyAwIDAgMy44OTEtMC4wNDggMi4yMSA0Ljc0NWwtMC4wMDQt
MC4wMDRjLTAuMTc2IDIuMjU4LTEuMDg2IDUuMDE1LTIuNjU5IDcuNjI4LTAuNTM1IDAuODg4LTEu
MTA5IDEuNjk1LTEuNzAxIDIuNDEzIDE2LjM3NCA4LjA5NS0zLjE1IDE5LjU2Ny0zLjE1NiAxOS41
N2wyLjA2MiAzLjMzNi00LjU4NCAxLjAyOGMtMC41MTYgMC4xMTYtMS40NDYgMC40NTgtMi42Mzkg
MC45NDkgMC42MS0wLjExNiAxLjIxOC0wLjIyNSAxLjgyMS0wLjMyMiAwLjIyMSAwLjYxNSAwLjQz
MiAxLjI0OSAwLjYzMSAxLjkxOCAxLjcxNSA1Ljc2NiAyLjM0IDEyLjU3NyAxLjgwMyAxOC43Nmwx
LjU0NC0zLjYwMXMwLjY1NSAwLjQwNCAxLjYxMiAwLjgyN2wtMC4wODgtMC4xNjdjMy44MzItMjYu
OTA2IDE0LjYzMS0xMC42NjYgMTcuNDA3LTUuOTI0IDEuNDQ1IDAuMTI1IDIuODE5IDEuMjcgMy40
NDggMy4wNzQgMC44NjQgMi40NzUgMC4wMDIgNS4yNDItMS45MjYgNi4xODMtMS45MjcgMC45NDIt
NC4xODgtMC4zMDEtNS4wNS0yLjc3NC0wLjUzMy0xLjUyNC0wLjQwNi0zLjE1OCAwLjIxOC00LjQx
LTYuNjctMTMuMDQ0LTEwLjM2LTEuMDE2LTExLjY0NyA0LjgxIDAuNjY5IDAuMTQzIDEuMzU1IDAu
MjEgMS45OTggMC4xMzUgMCAwLTQuMTg1IDExLjIzNC0xMS43NDMgMTUuNjE4LTAuMDk3IDAuMTM2
LTAuMTkyIDAuMjc1LTAuMjkxIDAuNDA1LTAuMDU2LTAuMDE3LTAuMTE2LTAuMDI5LTAuMTc0LTAu
MDQ0bDAuMzQ1IDIuODMyYzAuNTY3IDAuMDQ2IDAuODcxIDAuMDk5IDAuODcxIDAuMDk5bDAuMDIx
IDAuMTQ2LTAuNjUgMC4xODFjMTguNTcyLTIuMTU4IDM1Ljc0NCAxMS43OTcgMzguNTk3IDMxLjU5
MyIgZmlsbD0iI2VkNTU2NSIvPgorICAgIDwvZz4KKyAgPC9nPgorPC9zdmc+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5l
ci9yZXBvcnQuY3NzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9ydW5uZXIvcmVwb3J0LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzI1ZjllMWJkYjA2MGMxNGQz
MWZiYjAwYjMxNTM1NzkzMjdlZWY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvcmVwb3J0LmNzcwpAQCAt
MCwwICsxLDQzIEBACit0YWJsZSB7CisgICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsKK30K
KwordGJvZHkgeworICAgIGJvcmRlci10b3A6IHRoaW4gc29saWQ7CisgICAgYm9yZGVyLWJvdHRv
bTogdGhpbiBzb2xpZDsKK30KKworLnN0YXR1cyB7CisgICAgZm9udC12YXJpYW50OnNtYWxsLWNh
cHM7CisgICAgY29sb3I6d2hpdGU7CisgICAgdGV4dC1hbGlnbjpjZW50ZXI7CisgICAgZm9udC12
YXJpYW50OnNtYWxsLWNhcHM7Cit9CisKKy5QQVNTLCAuT0sgeworICAgIGJhY2tncm91bmQtY29s
b3I6Z3JlZW47Cit9CisKKy5GQUlMIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOnJlZDsKK30KKwor
LkVSUk9SLCAuTk9UUlVOLCAuTk9ORSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjpibGFjazsKK30K
KworLlRJTUVPVVQgeworICAgIGJhY2tncm91bmQtY29sb3I6Ymx1ZTsKK30KKwordGQgeworICAg
IHBhZGRpbmc6MC4yNWVtOworfQorCit0ci50ZXN0IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiNk
ZGQ7Cit9CisKK3RyLnN1YnRlc3QgeworICAgIGJhY2tncm91bmQtY29sb3I6I2VlZTsKK30KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcnVubmVyL3JlcG9ydC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcnVubmVyL3JlcG9ydC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NTJkZjA4YjgwNTk4
OWM4NDA4ZWMwZTVlOTBjMDY1MmM3MzRhNTYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvcmVwb3J0LnB5
CkBAIC0wLDAgKzEsMzA5IEBACisjIGZsYWtlODogbm9xYQorCitmcm9tIF9fZnV0dXJlX18gaW1w
b3J0IHByaW50X2Z1bmN0aW9uCisKK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IGpzb24KK2ltcG9y
dCBzeXMKK2Zyb20gY2dpIGltcG9ydCBlc2NhcGUKK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRl
ZmF1bHRkaWN0CisKK2ltcG9ydCB0eXBlcworCisKK2RlZiBodG1sX2VzY2FwZShpdGVtLCBlc2Nh
cGVfcXVvdGU9RmFsc2UpOgorICAgIGlmIGlzaW5zdGFuY2UoaXRlbSwgdHlwZXMuU3RyaW5nVHlw
ZXMpOgorICAgICAgICBydiA9IGVzY2FwZShpdGVtKQorICAgICAgICBpZiBlc2NhcGVfcXVvdGU6
CisgICAgICAgICAgICBydiA9IHJ2LnJlcGxhY2UoJyInLCAiJnF1b3Q7IikKKyAgICAgICAgcmV0
dXJuIHJ2CisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIGl0ZW0KKworCitjbGFzcyBSYXcob2Jq
ZWN0KToKKyAgICAiIiJTaW1wbGUgd3JhcHBlciBhcm91bmQgYSBzdHJpbmcgdG8gc3RvcCBpdCBi
ZWluZyBlc2NhcGVkIGJ5IGh0bWxfZXNjYXBlIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHZh
bHVlKToKKyAgICAgICAgc2VsZi52YWx1ZSA9IHZhbHVlCisKKyAgICBkZWYgX191bmljb2RlX18o
c2VsZik6CisgICAgICAgIHJldHVybiB1bmljb2RlKHNlbGYudmFsdWUpCisKKworY2xhc3MgTm9k
ZShvYmplY3QpOgorICAgICIiIk5vZGUgc3RydWN0dXJlIHVzZWQgd2hlbiBidWlsZGluZyBIVE1M
IiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIGF0dHJzLCBjaGlsZHJlbik6CisgICAg
ICAgICNOZWVkIGxpc3Qgb2Ygdm9pZCBlbGVtZW50cworICAgICAgICBzZWxmLm5hbWUgPSBuYW1l
CisgICAgICAgIHNlbGYuYXR0cnMgPSBhdHRycworICAgICAgICBzZWxmLmNoaWxkcmVuID0gY2hp
bGRyZW4KKworICAgIGRlZiBfX3VuaWNvZGVfXyhzZWxmKToKKyAgICAgICAgaWYgc2VsZi5hdHRy
czoKKyAgICAgICAgICAgICNOZWVkIHRvIGVzY2FwZQorICAgICAgICAgICAgYXR0cnNfdW5pY29k
ZSA9ICIgIiArICIgIi5qb2luKCIlcz1cIiVzXCIiICUgKGh0bWxfZXNjYXBlKGtleSksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHRt
bF9lc2NhcGUodmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXNjYXBlX3F1b3RlPVRydWUpKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIHNl
bGYuYXR0cnMuaXRlcml0ZW1zKCkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhdHRyc191
bmljb2RlID0gIiIKKyAgICAgICAgcmV0dXJuICI8JXMlcz4lczwvJXM+XG4iICUgKHNlbGYubmFt
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzX3VuaWNvZGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIi5qb2luKHVuaWNvZGUoaHRtbF9l
c2NhcGUoaXRlbSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZvciBpdGVtIGluIHNlbGYuY2hpbGRyZW4pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5uYW1lKQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHJl
dHVybiB1bmljb2RlKHNlbGYpLmVuY29kZSgidXRmOCIpCisKKworY2xhc3MgUm9vdE5vZGUob2Jq
ZWN0KToKKyAgICAiIiJTcGVjaWFsIE5vZGUgcmVwcmVzZW50aW5nIHRoZSBkb2N1bWVudCByb290
IiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICpjaGlsZHJlbik6CisgICAgICAgIHNlbGYuY2hp
bGRyZW4gPSBbIjwhRE9DVFlQRSBodG1sPiJdICsgbGlzdChjaGlsZHJlbikKKworICAgIGRlZiBf
X3VuaWNvZGVfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICIiLmpvaW4odW5pY29kZShpdGVtKSBm
b3IgaXRlbSBpbiBzZWxmLmNoaWxkcmVuKQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAg
ICAgIHJldHVybiB1bmljb2RlKHNlbGYpLmVuY29kZSgidXRmOCIpCisKKworZGVmIGZsYXR0ZW4o
aXRlcmFibGUpOgorICAgICIiIkZsYXR0ZW4gYSBsaXN0IG9mIGxpc3RzIGJ5IG9uZSBsZXZlbCBz
byB0aGF0CisgICAgWzEsWyJhYmMiXSwgImRlZiIsWzIsIFszXV1dCisgICAgYmVjb21lcworICAg
IFsxLCAiYWJjIiwgImRlZiIsIDIsIFszXV0iIiIKKyAgICBydiA9IFtdCisgICAgZm9yIGl0ZW0g
aW4gaXRlcmFibGU6CisgICAgICAgIGlmIGhhc2F0dHIoaXRlbSwgIl9faXRlcl9fIikgYW5kIG5v
dCBpc2luc3RhbmNlKGl0ZW0sIHR5cGVzLlN0cmluZ1R5cGVzKToKKyAgICAgICAgICAgIHJ2LmV4
dGVuZChpdGVtKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcnYuYXBwZW5kKGl0ZW0pCisg
ICAgcmV0dXJuIHJ2CisKKworY2xhc3MgSFRNTChvYmplY3QpOgorICAgICIiIlNpbXBsZSBIVE1M
IHRlbXBsYXRpbmcgc3lzdGVtLiBBbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIGNhbiBjcmVhdGUK
KyAgICBlbGVtZW50IG5vZGVzIGJ5IGNhbGxpbmcgbWV0aG9kcyB3aXRoIHRoZSBzYW1lIG5hbWUg
YXMgdGhlIGVsZW1lbnQsCisgICAgcGFzc2luZyBpbiBjaGlsZHJlbiBhcyBwb3NpdGlvbmFsIGFy
Z3VtZW50cyBvciBhcyBhIGxpc3QsIGFuZCBhdHRyaWJ1dGVzCisgICAgYXMga2V5d29yZCBhcmd1
bWVudHMsIHdpdGggXyByZXBsYWNpbmcgLSBhbmQgdHJhaWxpbmcgXyBmb3IgcHl0aG9uIGtleXdv
cmRzCisKKyAgICBlLmcuCisKKyAgICBoID0gSFRNTCgpCisgICAgcHJpbnQoaC5odG1sKAorICAg
ICAgICBodG1sLmhlYWQoKSwKKyAgICAgICAgaHRtbC5ib2R5KFtodG1sLmgxKCJIZWxsbyBXb3Js
ZCEiKV0sIGNsYXNzXz0iYm9keS1jbGFzcyIpCisgICAgKSkKKyAgICBXb3VsZCBnaXZlCisgICAg
PCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5IGNsYXNzPSJib2R5LWNsYXNz
Ij48aDE+SGVsbG8gV29ybGQhPC9oMT48L2JvZHk+PC9odG1sPiIiIgorICAgIGRlZiBfX2dldGF0
dHJfXyhzZWxmLCBuYW1lKToKKyAgICAgICAgZGVmIG1ha2VfaHRtbChzZWxmLCAqY29udGVudCwg
KiphdHRycyk6CisgICAgICAgICAgICBmb3IgYXR0cl9uYW1lIGluIGF0dHJzLmtleXMoKToKKyAg
ICAgICAgICAgICAgICBpZiAiXyIgaW4gYXR0cl9uYW1lOgorICAgICAgICAgICAgICAgICAgICBu
ZXdfbmFtZSA9IGF0dHJfbmFtZS5yZXBsYWNlKCJfIiwgIi0iKQorICAgICAgICAgICAgICAgICAg
ICBpZiBuZXdfbmFtZS5lbmRzd2l0aCgiLSIpOgorICAgICAgICAgICAgICAgICAgICAgICAgbmV3
X25hbWUgPSBuZXdfbmFtZVs6LTFdCisgICAgICAgICAgICAgICAgICAgIGF0dHJzW25ld19uYW1l
XSA9IGF0dHJzLnBvcChhdHRyX25hbWUpCisgICAgICAgICAgICByZXR1cm4gTm9kZShuYW1lLCBh
dHRycywgZmxhdHRlbihjb250ZW50KSkKKworICAgICAgICBtZXRob2QgPSB0eXBlcy5NZXRob2RU
eXBlKG1ha2VfaHRtbCwgc2VsZiwgSFRNTCkKKyAgICAgICAgc2V0YXR0cihzZWxmLCBuYW1lLCBt
ZXRob2QpCisgICAgICAgIHJldHVybiBtZXRob2QKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCAq
Y2hpbGRyZW4pOgorICAgICAgICByZXR1cm4gUm9vdE5vZGUoKmZsYXR0ZW4oY2hpbGRyZW4pKQor
CisKK2ggPSBIVE1MKCkKKworCitjbGFzcyBUZXN0UmVzdWx0KG9iamVjdCk6CisgICAgIiIiU2lt
cGxlIGhvbGRlciBmb3IgdGhlIHJlc3VsdHMgb2YgYSBzaW5nbGUgdGVzdCBpbiBhIHNpbmdsZSBV
QSIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0KToKKyAgICAgICAgc2VsZi50ZXN0ID0g
dGVzdAorICAgICAgICBzZWxmLnJlc3VsdHMgPSB7fQorCisgICAgZGVmIF9fY21wX18oc2VsZiwg
b3RoZXIpOgorICAgICAgICByZXR1cm4gc2VsZi50ZXN0ID09IG90aGVyLnRlc3QKKworICAgIGRl
ZiBfX2hhc2hfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGhhc2goc2VsZi50ZXN0KQorCisKK2Rl
ZiBsb2FkX2RhdGEoYXJncyk6CisgICAgIiIiTG9hZCBkYXRhIHRyZWF0aW5nIGFyZ3MgYXMgYSBs
aXN0IG9mIFVBIG5hbWUsIGZpbGVuYW1lIHBhaXJzIiIiCisgICAgcGFpcnMgPSBbXQorICAgIGZv
ciBpIGluIHhyYW5nZSgwLCBsZW4oYXJncyksIDIpOgorICAgICAgICBwYWlycy5hcHBlbmQoYXJn
c1tpOmkrMl0pCisKKyAgICBydiA9IHt9CisgICAgZm9yIFVBLCBmaWxlbmFtZSBpbiBwYWlyczoK
KyAgICAgICAgd2l0aCBvcGVuKGZpbGVuYW1lKSBhcyBmOgorICAgICAgICAgICAgcnZbVUFdID0g
anNvbi5sb2FkKGYpCisKKyAgICByZXR1cm4gcnYKKworCitkZWYgdGVzdF9pZChpZCk6CisgICAg
IiIiQ29udmVydCBhIHRlc3QgaWQgaW4gSlNPTiBpbnRvIGFuIGltbXV0YWJsZSBvYmplY3QgdGhh
dAorICAgIGNhbiBiZSB1c2VkIGFzIGEgZGljdGlvbmFyeSBrZXkiIiIKKyAgICBpZiBpc2luc3Rh
bmNlKGlkLCBsaXN0KToKKyAgICAgICAgcmV0dXJuIHR1cGxlKGlkKQorICAgIGVsc2U6CisgICAg
ICAgIHJldHVybiBpZAorCisKK2RlZiBhbGxfdGVzdHMoZGF0YSk6CisgICAgdGVzdHMgPSBkZWZh
dWx0ZGljdChzZXQpCisgICAgZm9yIFVBLCByZXN1bHRzIGluIGRhdGEuaXRlcml0ZW1zKCk6Cisg
ICAgICAgIGZvciByZXN1bHQgaW4gcmVzdWx0c1sicmVzdWx0cyJdOgorICAgICAgICAgICAgaWQg
PSB0ZXN0X2lkKHJlc3VsdFsidGVzdCJdKQorICAgICAgICAgICAgdGVzdHNbaWRdIHw9IHNldChz
dWJ0ZXN0WyJuYW1lIl0gZm9yIHN1YnRlc3QgaW4gcmVzdWx0WyJzdWJ0ZXN0cyJdKQorICAgIHJl
dHVybiB0ZXN0cworCisKK2RlZiBncm91cF9yZXN1bHRzKGRhdGEpOgorICAgICIiIlByb2R1Y2Ug
YSBsaXN0IG9mIFVBcyBhbmQgYSBkaWN0aW9uYXJ5IG1hcHBpbmcgc3BlY2lmaWMgdGVzdHMgdG8g
dGhlaXIKKyAgICBzdGF0dXMgaW4gYWxsIFVBcyBlLmcuCisgICAgWyJVQTEiLCAiVUEyIl0sIHsi
dGVzdF9pZCI6eyJoYXJuZXNzIjp7IlVBMSI6IChzdGF0dXMxLCBtZXNzYWdlMSksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVBMiI6IChzdGF0dXMyLCBtZXNz
YWdlMil9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdHMiOnsic3Vi
dGVzdDEiOiAiVUExIjogKHN0YXR1czEtMSwgbWVzc2FnZTEtMSksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJVQTIiOiAoc3RhdHVzMi0x
LCBtZXNzYWdlMi0xKX19fQorICAgIFN0YXR1cyBhbmQgbWVzc2FnZSBhcmUgTm9uZSBpZiB0aGUg
dGVzdCBkaWRuJ3QgcnVuIGluIGEgcGFydGljdWxhciBVQS4KKyAgICBNZXNzYWdlIGlzIE5vbmUg
aWYgdGhlIHRlc3QgZGlkbid0IHByb2R1Y2UgYSBtZXNzYWdlIiIiCisgICAgdGVzdHMgPSBhbGxf
dGVzdHMoZGF0YSkKKworICAgIFVBcyA9IGRhdGEua2V5cygpCisKKyAgICBkZWYgcmVzdWx0KCk6
CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAiaGFybmVzcyI6IGRpY3QoKFVBLCAoTm9u
ZSwgTm9uZSkpIGZvciBVQSBpbiBVQXMpLAorICAgICAgICAgICAgInN1YnRlc3RzIjogTm9uZSAg
IyBpbml0IHRoaXMgbGF0ZXIKKyAgICAgICAgfQorCisgICAgcmVzdWx0c19ieV90ZXN0ID0gZGVm
YXVsdGRpY3QocmVzdWx0KQorCisgICAgZm9yIFVBLCByZXN1bHRzIGluIGRhdGEuaXRlcml0ZW1z
KCk6CisgICAgICAgIGZvciB0ZXN0X2RhdGEgaW4gcmVzdWx0c1sicmVzdWx0cyJdOgorICAgICAg
ICAgICAgaWQgPSB0ZXN0X2lkKHRlc3RfZGF0YVsidGVzdCJdKQorICAgICAgICAgICAgcmVzdWx0
ID0gcmVzdWx0c19ieV90ZXN0W2lkXQorCisgICAgICAgICAgICBpZiByZXN1bHRbInN1YnRlc3Rz
Il0gaXMgTm9uZToKKyAgICAgICAgICAgICAgICByZXN1bHRbInN1YnRlc3RzIl0gPSBkaWN0KAor
ICAgICAgICAgICAgICAgICAgICAobmFtZSwgZGljdCgoVUEsIChOb25lLCBOb25lKSkgZm9yIFVB
IGluIFVBcykpIGZvciBuYW1lIGluIHRlc3RzW2lkXQorICAgICAgICAgICAgICAgICkKKworICAg
ICAgICAgICAgcmVzdWx0WyJoYXJuZXNzIl1bVUFdID0gKHRlc3RfZGF0YVsic3RhdHVzIl0sIHRl
c3RfZGF0YVsibWVzc2FnZSJdKQorICAgICAgICAgICAgZm9yIHN1YnRlc3QgaW4gdGVzdF9kYXRh
WyJzdWJ0ZXN0cyJdOgorICAgICAgICAgICAgICAgIHJlc3VsdFsic3VidGVzdHMiXVtzdWJ0ZXN0
WyJuYW1lIl1dW1VBXSA9IChzdWJ0ZXN0WyJzdGF0dXMiXSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VidGVzdFsibWVzc2FnZSJd
KQorCisgICAgcmV0dXJuIFVBcywgcmVzdWx0c19ieV90ZXN0CisKKworZGVmIHN0YXR1c19jZWxs
KHN0YXR1cywgbWVzc2FnZT1Ob25lKToKKyAgICAiIiJQcm9kdWNlIGEgdGFibGUgY2VsbCBzaG93
aW5nIHRoZSBzdGF0dXMgb2YgYSB0ZXN0IiIiCisgICAgc3RhdHVzID0gc3RhdHVzIGlmIHN0YXR1
cyBpcyBub3QgTm9uZSBlbHNlICJOT05FIgorICAgIGt3YXJncyA9IHt9CisgICAgaWYgbWVzc2Fn
ZToKKyAgICAgICAga3dhcmdzWyJ0aXRsZSJdID0gbWVzc2FnZQorICAgIHN0YXR1c190ZXh0ID0g
c3RhdHVzLnRpdGxlKCkKKyAgICByZXR1cm4gaC50ZChzdGF0dXNfdGV4dCwgY2xhc3NfPSJzdGF0
dXMgIiArIHN0YXR1cywKKyAgICAgICAgICAgICAgICAqKmt3YXJncykKKworCitkZWYgdGVzdF9s
aW5rKHRlc3RfaWQsIHN1YnRlc3Q9Tm9uZSk6CisgICAgIiIiUHJvZHVjZSBhbiA8YT4gZWxlbWVu
dCBsaW5raW5nIHRvIGEgdGVzdCIiIgorICAgIGlmIGlzaW5zdGFuY2UodGVzdF9pZCwgdHlwZXMu
U3RyaW5nVHlwZXMpOgorICAgICAgICBydiA9IFtoLmEodGVzdF9pZCwgaHJlZj10ZXN0X2lkKV0K
KyAgICBlbHNlOgorICAgICAgICBydiA9IFtoLmEodGVzdF9pZFswXSwgaHJlZj10ZXN0X2lkWzBd
KSwKKyAgICAgICAgICAgICAgIiAlcyAiICUgdGVzdF9pZFsxXSwKKyAgICAgICAgICAgICAgaC5h
KHRlc3RfaWRbMl0sIGhyZWY9dGVzdF9pZFsyXSldCisgICAgaWYgc3VidGVzdCBpcyBub3QgTm9u
ZToKKyAgICAgICAgcnYuYXBwZW5kKCIgWyVzXSIgJSBzdWJ0ZXN0KQorICAgIHJldHVybiBydgor
CisKK2RlZiBzdW1tYXJ5KFVBcywgcmVzdWx0c19ieV90ZXN0KToKKyAgICAiIiJSZW5kZXIgdGhl
IGltcGxlbWVudGF0aW9uIHJlcG9ydCBzdW1tYXJ5IiIiCisgICAgbm90X3Bhc3NpbmcgPSBbXQor
ICAgIGZvciB0ZXN0LCByZXN1bHRzIGluIHJlc3VsdHNfYnlfdGVzdC5pdGVyaXRlbXMoKToKKyAg
ICAgICAgaWYgbm90IGFueShpdGVtWzBdIGluICgiUEFTUyIsICJPSyIpIGZvciBpdGVtIGluIHJl
c3VsdHNbImhhcm5lc3MiXS52YWx1ZXMoKSk6CisgICAgICAgICAgICBub3RfcGFzc2luZy5hcHBl
bmQoKHRlc3QsIE5vbmUpKQorICAgICAgICBmb3Igc3VidGVzdF9uYW1lLCBzdWJ0ZXN0X3Jlc3Vs
dHMgaW4gcmVzdWx0c1sic3VidGVzdHMiXS5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgIGlmIG5v
dCBhbnkoaXRlbVswXSA9PSAiUEFTUyIgZm9yIGl0ZW0gaW4gc3VidGVzdF9yZXN1bHRzLnZhbHVl
cygpKToKKyAgICAgICAgICAgICAgICBub3RfcGFzc2luZy5hcHBlbmQoKHRlc3QsIHN1YnRlc3Rf
bmFtZSkpCisgICAgaWYgbm90X3Bhc3Npbmc6CisgICAgICAgIHJ2ID0gWworICAgICAgICAgICAg
aC5wKCJUaGUgZm9sbG93aW5nIHRlc3RzIGZhaWxlZCB0byBwYXNzIGluIGFsbCBVQXM6IiksCisg
ICAgICAgICAgICBoLnVsKFtoLmxpKHRlc3RfbGluayh0ZXN0LCBzdWJ0ZXN0KSkKKyAgICAgICAg
ICAgICAgICAgIGZvciB0ZXN0LCBzdWJ0ZXN0IGluIG5vdF9wYXNzaW5nXSkKKyAgICAgICAgXQor
ICAgIGVsc2U6CisgICAgICAgIHJ2ID0gIkFsbCB0ZXN0cyBwYXNzZWQgaW4gYXQgbGVhc3Qgb25l
IFVBIgorICAgIHJldHVybiBydgorCisKK2RlZiByZXN1bHRfcm93cyhVQXMsIHRlc3QsIHJlc3Vs
dCk6CisgICAgIiIiUmVuZGVyIHRoZSByZXN1bHRzIGZvciBlYWNoIHRlc3QgcnVuIiIiCisgICAg
eWllbGQgaC50cigKKyAgICAgICAgaC50ZCgKKyAgICAgICAgICAgIHRlc3RfbGluayh0ZXN0KSwK
KyAgICAgICAgICAgIHJvd3NwYW49KDEgKyBsZW4ocmVzdWx0WyJzdWJ0ZXN0cyJdKSkKKyAgICAg
ICAgKSwKKyAgICAgICAgaC50ZCgpLAorICAgICAgICBbc3RhdHVzX2NlbGwoc3RhdHVzLCBtZXNz
YWdlKQorICAgICAgICAgZm9yIFVBLCAoc3RhdHVzLCBtZXNzYWdlKSBpbiBzb3J0ZWQocmVzdWx0
WyJoYXJuZXNzIl0uaXRlbXMoKSldLAorICAgICAgICBjbGFzc189InRlc3QiCisgICAgKQorCisg
ICAgZm9yIG5hbWUsIHN1YnRlc3RfcmVzdWx0IGluIHNvcnRlZChyZXN1bHRbInN1YnRlc3RzIl0u
aXRlcml0ZW1zKCkpOgorICAgICAgICB5aWVsZCBoLnRyKAorICAgICAgICAgICAgaC50ZChuYW1l
KSwKKyAgICAgICAgICAgIFtzdGF0dXNfY2VsbChzdGF0dXMsIG1lc3NhZ2UpCisgICAgICAgICAg
ICAgZm9yIFVBLCAoc3RhdHVzLCBtZXNzYWdlKSBpbiBzb3J0ZWQoc3VidGVzdF9yZXN1bHQuaXRl
bXMoKSldLAorICAgICAgICAgICAgY2xhc3NfPSJzdWJ0ZXN0IgorICAgICAgICApCisKKworZGVm
IHJlc3VsdF9ib2RpZXMoVUFzLCByZXN1bHRzX2J5X3Rlc3QpOgorICAgIHJldHVybiBbaC50Ym9k
eShyZXN1bHRfcm93cyhVQXMsIHRlc3QsIHJlc3VsdCkpCisgICAgICAgICAgICBmb3IgdGVzdCwg
cmVzdWx0IGluIHNvcnRlZChyZXN1bHRzX2J5X3Rlc3QuaXRlcml0ZW1zKCkpXQorCisKK2RlZiBn
ZW5lcmF0ZV9odG1sKFVBcywgcmVzdWx0c19ieV90ZXN0KToKKyAgICAiIiJHZW5lcmF0ZSBhbGwg
dGhlIEhUTUwgb3V0cHV0IiIiCisgICAgcmV0dXJuIGgoaC5odG1sKAorICAgICAgICBoLmhlYWQo
CisgICAgICAgICAgICBoLm1ldGEoY2hhcnNldD0idXRmOCIpLAorICAgICAgICAgICAgaC50aXRs
ZSgiSW1wbGVtZW50YXRpb24gUmVwb3J0IiksCisgICAgICAgICAgICBoLmxpbmsoaHJlZj0icmVw
b3J0LmNzcyIsIHJlbD0ic3R5bGVzaGVldCIpKSwKKyAgICAgICAgaC5ib2R5KAorICAgICAgICAg
ICAgaC5oMSgiSW1wbGVtZW50YXRpb24gUmVwb3J0IiksCisgICAgICAgICAgICBoLmgyKCJTdW1t
YXJ5IiksCisgICAgICAgICAgICBzdW1tYXJ5KFVBcywgcmVzdWx0c19ieV90ZXN0KSwKKyAgICAg
ICAgICAgIGguaDIoIkZ1bGwgUmVzdWx0cyIpLAorICAgICAgICAgICAgaC50YWJsZSgKKyAgICAg
ICAgICAgICAgICBoLnRoZWFkKAorICAgICAgICAgICAgICAgICAgICBoLnRyKAorICAgICAgICAg
ICAgICAgICAgICAgICAgaC50aCgiVGVzdCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgaC50
aCgiU3VidGVzdCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgW2gudGgoVUEpIGZvciBVQSBp
biBzb3J0ZWQoVUFzKV0pKSwKKyAgICAgICAgICAgICAgICByZXN1bHRfYm9kaWVzKFVBcywgcmVz
dWx0c19ieV90ZXN0KSkpKSkKKworCitkZWYgbWFpbihmaWxlbmFtZXMpOgorICAgIGRhdGEgPSBs
b2FkX2RhdGEoZmlsZW5hbWVzKQorICAgIFVBcywgcmVzdWx0c19ieV90ZXN0ID0gZ3JvdXBfcmVz
dWx0cyhkYXRhKQorICAgIHJldHVybiBnZW5lcmF0ZV9odG1sKFVBcywgcmVzdWx0c19ieV90ZXN0
KQorCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgaWYgbm90IHN5cy5hcmd2WzE6
XToKKyAgICAgICAgcHJpbnQoIiIiUGxlYXNlIHN1cHBseSBhIGxpc3Qgb2YgVUEgbmFtZSwgZmls
ZW5hbWUgcGFpcnMgZS5nLgorCitweXRob24gcmVwb3J0LnB5IEZpcmVmb3ggZmlyZWZveC5qc29u
IENocm9tZSBjaHJvbWUuanNvbiBJRSBpbnRlcm5ldF9leHBsb3Jlci5qc29uIiIiKQorICAgIHBy
aW50KG1haW4oc3lzLmFyZ3ZbMTpdKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3J1bm5lci5jc3MgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9ydW5uZXIu
Y3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg1NDYwMTc3ZWExNTFhYmQzZWVmYTg0OTg2NjA3NzU1YzkyZWZlOTMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3J1bm5lci9ydW5uZXIuY3NzCkBAIC0wLDAgKzEsMjE3IEBACisKK2h0bWwg
eworICAgIG1hcmdpbjogMCA4cHg7Cit9CisKK2JvZHkgeworICAgIG1hcmdpbjogMDsKK30KKwor
aHRtbC5kb25lIHsKKyAgICBib3JkZXI6IDJweCBzb2xpZCAjMzJjZDMyOworICAgIG1hcmdpbjog
M3B4OworICAgIHBhZGRpbmc6IDNweDsKK30KKworaHRtbDpub3QoLmRvbmUpIHsKKyAgICBoZWln
aHQ6IDEwMCU7Cit9CisKK2h0bWw6bm90KC5kb25lKSBib2R5IHsKKyAgICBoZWlnaHQ6IDEwMCU7
Cit9CisKK2h0bWw6bm90KC5kb25lKSAjd3JhcHBlciB7CisgICAgaGVpZ2h0OiAxMDAlOworICAg
IG1hcmdpbi10b3A6IC0xLjVlbTsKKyAgICBwYWRkaW5nLXRvcDogMS41ZW07CisgICAgLW1vei1i
b3gtc2l6aW5nOiBib3JkZXItYm94OworICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJv
eDsKKyAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OworfQorCitzZWN0aW9uIHsKKyAgICBkaXNw
bGF5OiBibG9jazsKKyAgICBib3JkZXI6IHRoaW4gc29saWQgYmxhY2s7CisgICAgcGFkZGluZzog
MC41ZW0gMDsKK30KKworc2VjdGlvbiBoMSB7CisgICAgbWFyZ2luOiAwOworICAgIGZvbnQtc2l6
ZTogMWVtOworfQorCitodG1sLmRvbmUgc2VjdGlvbiBoMSB7CisgICAgdGV4dC1hbGlnbjogY2Vu
dGVyOworfQorCitzZWN0aW9uIG9sIHsKKyAgICBwYWRkaW5nOiAwOworICAgIG1hcmdpbjogMDsK
KyAgICBsaXN0LXN0eWxlLXBvc2l0aW9uOiBpbnNpZGU7Cit9CisKK2h0bWwuZG9uZSBzZWN0aW9u
IG9sIHsKKyAgICAtbW96LWNvbHVtbi1jb3VudDogMzsKKyAgICAtd2Via2l0LWNvbHVtbi1jb3Vu
dDogMzsKKyAgICBjb2x1bW4tY291bnQ6IDM7Cit9CisKK3NlY3Rpb24gbGkgeworICAgIHBhZGRp
bmc6IDAuMWVtIDAuNWVtOworfQorCitzZWN0aW9uIGxpLnBhc3M6bnRoLWNoaWxkKG9kZCkgIHsK
KyAgICBiYWNrZ3JvdW5kOiAjZTVmZmU1OworfQorc2VjdGlvbiBsaS5wYXNzOm50aC1jaGlsZChl
dmVuKSB7CisgICAgYmFja2dyb3VuZDogI2RlZjhkZTsKK30KKworc2VjdGlvbiBsaS5mYWlsOm50
aC1jaGlsZChvZGQpICB7CisgICAgYmFja2dyb3VuZDogI2ZmZTVlNTsKK30KKworc2VjdGlvbiBs
aS5mYWlsOm50aC1jaGlsZChldmVuKSB7CisgICAgYmFja2dyb3VuZDogI2Y4ZGVkZTsKK30KKwor
c2VjdGlvbiBwIHsKKyAgICBtYXJnaW46IDA7Cit9CisKK2h0bWw6bm90KC5kb25lKSBzZWN0aW9u
IHsKKyAgICBib3JkZXItdG9wOiBub25lOworfQorCitodG1sLmRvbmUgc2VjdGlvbiArIHNlY3Rp
b24geworICAgIGJvcmRlci10b3A6IG5vbmU7Cit9CisKKyNtYW51YWxVSSB7CisgICAgcG9zaXRp
b246IGZpeGVkOworICAgIHotaW5kZXg6IDIwMDA7CisgICAgdG9wOiAtMjBweDsKKyAgICBsZWZ0
OiAwOworICAgIHJpZ2h0OiAwOworICAgIGRpc3BsYXk6IGJsb2NrOworICAgIHBhZGRpbmc6IDQw
cHg7CisgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDIwMCwgMCwgMC41KTsKK30KKworI2N1cnJl
bnRfdGVzdCB7CisgIHZpc2liaWxpdHk6IGhpZGRlbjsKK30KKworI2N1cnJlbnRfdGVzdCBhIHsK
KyAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICBtYXJnaW4tbGVmdDogMWVtOworfQorCisjY3Vy
cmVudF90ZXN0IC5tYXRjaCB7CisgIGJhY2tncm91bmQtY29sb3I6ICNCREYxRkY7Cit9CisKKyNt
YW51YWxVSSAucGFuZWwgeworICAgIG1heC13aWR0aDogODAwcHg7CisgICAgbWFyZ2luOiBhdXRv
OworICAgIGJveC1zaGFkb3c6IDJweCAycHggMTBweCAjNjY2OworfQorCitib2R5ID4gcCB7Cisg
ICAgdGV4dC1hbGlnbjogY2VudGVyOworfQorCitib2R5ID4gcCA+IHRleHRhcmVhIHsKKyAgICB3
aWR0aDogOTAlOworICAgIGhlaWdodDogMjBlbTsKK30KKworYm9keSB7CisgICAgcGFkZGluZy10
b3A6IDcwcHg7Cit9CisKKy5jb250YWluZXIgeworICAgIG1heC13aWR0aDogODAwcHg7Cit9CisK
Ky5uYXZiYXItYnJhbmQgPiBpbWcgeworICAgIGRpc3BsYXk6IGlubGluZTsKK30KKworLm5hdmJh
ci1pbnZlcnNlIC5uYXZiYXItYnJhbmQgeworICAgIGNvbG9yOiAjZmZmOworfQorCisuZm9ybS1n
cm91cCB7CisgICAgY2xlYXI6Ym90aDsKK30KKworLmhvcml6b250YWwtZm9ybSAuZm9ybS1ncm91
cCB7CisgICAgcGFkZGluZzogNnB4OworfQorCitoZWFkZXIubmF2YmFyLWludmVyc2UgeworICAg
IGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIHJnYig3LCA2MiwgMTI4KSAw
cHgsIHJnYigwLCA0NSwgODApIDEwMCUpOworfQorCit1bC5lcnJvciwgdWwud2FybmluZyB7Cisg
ICAgcGFkZGluZzogICAgMDsKK30KKwordGQuUEFTUyB7CisgICAgY29sb3I6ICAjNDhjZmFkOwor
fQorCit0ZC5GQUlMIHsKKyAgICBjb2xvcjogICNlZDU1NjU7Cit9CisKK3RkLlRJTUVPVVQgewor
ICAgIGNvbG9yOiAgI2Y2YmI0MjsKK30KKwordGQuTk9UUlVOIHsKKyAgICBjb2xvcjogICMwMGM7
Cit9CisKK3RkLkVSUk9SIHsKKyAgICBjb2xvcjogI2RhNDQ1MzsKKyAgICBmb250LXdlaWdodDog
Ym9sZDsKK30KKy5zdG9wcGVkIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGll
bnQodG8gYm90dG9tLCAjZmMwMDAwIDAsICM3NzAwMDAgMTAwJSk7Cit9CisKKy5jb2wtc20tOSBs
YWJlbCB7CisgICAgbWFyZ2luLXJpZ2h0OiAyMHB4OworfQorCisuaW5zdHJ1Y3Rpb25zIHsKKyAg
cGFkZGluZy1sZWZ0OiA4cHg7CisgIHBhZGRpbmctcmlnaHQ6IDhweDsKK30KKworQGtleWZyYW1l
cyBhbGVydF91cGRhdGluZyB7CisgIGZyb20geworICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVy
aXQ7CisgIH0KKyAgdG8geworICAgIGJhY2tncm91bmQtY29sb3I6ICNmNmJiNDI7CisgIH0KK30K
KworLmxvYWRpbmctbWFuaWZlc3QgeworICBiYWNrZ3JvdW5kLWltYWdlOiBub25lOworICBjb2xv
cjogIzMzMzsKKyAgYW5pbWF0aW9uLWR1cmF0aW9uOiAxLjVzOworICBhbmltYXRpb24tbmFtZTog
YWxlcnRfdXBkYXRpbmc7CisgIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IGluZmluaXRlOwor
ICBhbmltYXRpb24tZGlyZWN0aW9uOiBhbHRlcm5hdGU7Cit9CisKKy5yZWZ0ZXN0V2FybiB7Cisg
ICAgY29sb3I6IHllbGxvdzsKKyAgICBiYWNrZ3JvdW5kOiBibGFjazsKKyAgICBwYWRkaW5nOiA4
cHg7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3J1bm5lci9ydW5uZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9ydW5uZXIuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWYw
YjZhNDQ5ZDY4NjE2ODQ2OWRmY2I4NTFiMzA5MTIxMjQzODdhNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVy
L3J1bm5lci5qcwpAQCAtMCwwICsxLDkxNiBAQAorLypqc2hpbnQgbm9uZXc6IGZhbHNlICovCiso
ZnVuY3Rpb24oKSB7CisidXNlIHN0cmljdCI7Cit2YXIgcnVubmVyOwordmFyIHRlc3RoYXJuZXNz
X3Byb3BlcnRpZXMgPSB7b3V0cHV0OmZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGltZW91dF9tdWx0aXBsaWVyOjF9OworCitmdW5jdGlvbiBNYW5pZmVzdChwYXRoKSB7Cisg
ICAgdGhpcy5kYXRhID0gbnVsbDsKKyAgICB0aGlzLnBhdGggPSBwYXRoOworICAgIHRoaXMubnVt
X3Rlc3RzID0gbnVsbDsKK30KKworTWFuaWZlc3QucHJvdG90eXBlID0geworICAgIGxvYWQ6IGZ1
bmN0aW9uKGxvYWRlZF9jYWxsYmFjaykgeworICAgICAgICB0aGlzLmdlbmVyYXRlKGxvYWRlZF9j
YWxsYmFjayk7CisgICAgfSwKKworICAgIGRvX2xvYWQ6IGZ1bmN0aW9uKGxvYWRlZF9jYWxsYmFj
aykgeworICAgICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgICAgIHho
ci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICh4aHIu
cmVhZHlTdGF0ZSAhPT0gNCkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGlmICghKHhoci5zdGF0dXMgPT09IDIwMCB8fCB4aHIuc3RhdHVzID09
PSAwKSkgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTWFuaWZlc3QgIiArIHRo
aXMucGF0aCArICIgZmFpbGVkIHRvIGxvYWQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IHRoaXMuZGF0YSA9IEpTT04ucGFyc2UoeGhyLnJlc3BvbnNlVGV4dCk7CisgICAgICAgICAgICBs
b2FkZWRfY2FsbGJhY2soKTsKKyAgICAgICAgfS5iaW5kKHRoaXMpOworICAgICAgICB4aHIub3Bl
bigiR0VUIiwgdGhpcy5wYXRoKTsKKyAgICAgICAgeGhyLnNlbmQobnVsbCk7CisgICAgfSwKKwor
ICAgIGdlbmVyYXRlOiBmdW5jdGlvbihsb2FkZWRfY2FsbGJhY2spIHsKKyAgICAgICAgdmFyIHho
ciA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgICAgICB4aHIub25yZWFkeXN0YXRlY2hhbmdl
ID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZiAoeGhyLnJlYWR5U3RhdGUgIT09IDQpIHsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAo
ISh4aHIuc3RhdHVzID09PSAyMDAgfHwgeGhyLnN0YXR1cyA9PT0gMCkpIHsKKyAgICAgICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIk1hbmlmZXN0IGdlbmVyYXRpb24gZmFpbGVkIik7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICB0aGlzLmRvX2xvYWQobG9hZGVkX2NhbGxiYWNrKTsKKyAg
ICAgICAgfS5iaW5kKHRoaXMpOworICAgICAgICB4aHIub3BlbigiUE9TVCIsICJ1cGRhdGVfbWFu
aWZlc3QucHkiKTsKKyAgICAgICAgeGhyLnNlbmQobnVsbCk7CisgICAgfSwKKworICAgIGJ5X3R5
cGU6ZnVuY3Rpb24odHlwZSkgeworICAgICAgICB2YXIgcmV0ID0gW10gOworICAgICAgICBpZiAo
dGhpcy5kYXRhLml0ZW1zLmhhc093blByb3BlcnR5KHR5cGUpKSB7CisgICAgICAgICAgICBmb3Ig
KHZhciBwcm9wZXJ0eU5hbWUgaW4gdGhpcy5kYXRhLml0ZW1zW3R5cGVdKSB7CisgICAgICAgICAg
ICAgICAgdmFyIGFyciA9IHRoaXMuZGF0YS5pdGVtc1t0eXBlXVtwcm9wZXJ0eU5hbWVdWzBdOwor
ICAgICAgICAgICAgICAgIHZhciBpdGVtID0gYXJyW2Fyci5sZW5ndGggLSAxXTsKKyAgICAgICAg
ICAgICAgICBpdGVtLnBhdGggPSBwcm9wZXJ0eU5hbWU7CisgICAgICAgICAgICAgICAgaWYgKCdz
dHJpbmcnID09PSB0eXBlb2YgYXJyWzBdKSB7CisgICAgICAgICAgICAgICAgICAgIGl0ZW0udXJs
ID0gYXJyWzBdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoQXJyYXku
aXNBcnJheShhcnJbMV0pKSB7CisgICAgICAgICAgICAgICAgICAgIGl0ZW0ucmVmZXJlbmNlcyA9
IGFyclsxXTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0LnB1c2goaXRl
bSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJldCA7CisgICAg
fQorfTsKKworZnVuY3Rpb24gTWFuaWZlc3RJdGVyYXRvcihtYW5pZmVzdCwgcGF0aCwgdGVzdF90
eXBlcywgdXNlX3JlZ2V4KSB7CisgICAgdGhpcy5tYW5pZmVzdCA9IG1hbmlmZXN0OworICAgIHRo
aXMucGF0aHMgPSBudWxsOworICAgIHRoaXMucmVnZXhfcGF0dGVybiA9IG51bGw7CisgICAgdGhp
cy50ZXN0X3R5cGVzID0gdGVzdF90eXBlczsKKyAgICB0aGlzLnRlc3RfdHlwZXNfaW5kZXggPSAt
MTsKKyAgICB0aGlzLnRlc3RfbGlzdCA9IG51bGw7CisgICAgdGhpcy50ZXN0X2luZGV4ID0gbnVs
bDsKKworICAgIGlmICh1c2VfcmVnZXgpIHsKKyAgICAgICAgdGhpcy5yZWdleF9wYXR0ZXJuID0g
cGF0aDsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBTcGxpdCBwYXRocyBieSBlaXRoZXIgYSBj
b21tYSBvciB3aGl0ZXNwYWNlLCBhbmQgaWdub3JlIGVtcHR5IHN1Yi1zdHJpbmdzLgorICAgICAg
ICB0aGlzLnBhdGhzID0gcGF0aC5zcGxpdCgvWyxcc10rLykuZmlsdGVyKGZ1bmN0aW9uKHMpIHsg
cmV0dXJuIHMubGVuZ3RoID4gMDsgfSk7CisgICAgfQorfQorCitNYW5pZmVzdEl0ZXJhdG9yLnBy
b3RvdHlwZSA9IHsKKyAgICBuZXh0OiBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIG1hbmlmZXN0
X2l0ZW0gPSBudWxsOworCisgICAgICAgIGlmICh0aGlzLnRlc3RfdHlwZXMubGVuZ3RoID09PSAw
KSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorCisgICAgICAgIHdoaWxl
ICghbWFuaWZlc3RfaXRlbSkgeworICAgICAgICAgICAgd2hpbGUgKHRoaXMudGVzdF9saXN0ID09
PSBudWxsIHx8IHRoaXMudGVzdF9pbmRleCA+PSB0aGlzLnRlc3RfbGlzdC5sZW5ndGgpIHsKKyAg
ICAgICAgICAgICAgICB0aGlzLnRlc3RfdHlwZXNfaW5kZXgrKzsKKyAgICAgICAgICAgICAgICBp
ZiAodGhpcy50ZXN0X3R5cGVzX2luZGV4ID49IHRoaXMudGVzdF90eXBlcy5sZW5ndGgpIHsKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIHRoaXMudGVzdF9pbmRleCA9IDA7CisgICAgICAgICAgICAgICAgdGhpcy50ZXN0
X2xpc3QgPSB0aGlzLm1hbmlmZXN0LmJ5X3R5cGUodGhpcy50ZXN0X3R5cGVzW3RoaXMudGVzdF90
eXBlc19pbmRleF0pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBtYW5pZmVzdF9pdGVt
ID0gdGhpcy50ZXN0X2xpc3RbdGhpcy50ZXN0X2luZGV4KytdOworICAgICAgICAgICAgd2hpbGUg
KG1hbmlmZXN0X2l0ZW0gJiYgIXRoaXMubWF0Y2hlcyhtYW5pZmVzdF9pdGVtKSkgeworICAgICAg
ICAgICAgICAgIG1hbmlmZXN0X2l0ZW0gPSB0aGlzLnRlc3RfbGlzdFt0aGlzLnRlc3RfaW5kZXgr
K107CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobWFuaWZlc3RfaXRlbSkgeworICAg
ICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvX3Rlc3QobWFuaWZlc3RfaXRlbSk7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICB9LAorCisgICAgLy8gQ2FsY3VsYXRlIHRoZSBsb2NhdGlv
biBvZiBhIG1hdGNoIHdpdGhpbiBhIHByb3ZpZGVkIFVSTC4KKyAgICAvLworICAgIC8vIEBwYXJh
bSB7c3RyaW5nfSB1cmwgLSBWYWxpZCBVUkwKKyAgICAvLworICAgIC8vIEByZXR1cm5zIHtudWxs
fG9iamVjdH0gLSBudWxsIGlmIHRoZSBVUkwgZG9lcyBub3Qgc2F0aXNmeSB0aGUgaXRlcmF0b3In
cworICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJpbmcgY3JpdGVyaWEuIE90
aGVyd2lzZSwgYW4gb2JqZWN0IHdpdGgKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAg
dGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOgorICAgIC8vCisgICAgLy8gICAgICAgICAgICAgICAg
ICAgICAgICAgIC0gaW5kZXggLSB0aGUgemVyby1pbmRleGVkIG9mZnNldCBvZiB0aGUgc3RhcnQK
KyAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIHRoZSBtYXRjaAor
ICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAtIHdpZHRoIC0gdGhlIHRvdGFsIG51bWJl
ciBvZiBtYXRjaGluZworICAgIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2hhcmFjdGVycworICAgIG1hdGNoX2xvY2F0aW9uOiBmdW5jdGlvbih1cmwpIHsKKyAgICAgICAg
dmFyIG1hdGNoOworCisgICAgICAgIGlmICh0aGlzLnJlZ2V4X3BhdHRlcm4pIHsKKyAgICAgICAg
ICAgbWF0Y2ggPSB1cmwubWF0Y2godGhpcy5yZWdleF9wYXR0ZXJuKTsKKworICAgICAgICAgICBp
ZiAoIW1hdGNoKSB7CisgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICB9CisK
KyAgICAgICAgICAgcmV0dXJuIHsgaW5kZXg6IG1hdGNoLmluZGV4LCB3aWR0aDogbWF0Y2hbMF0u
bGVuZ3RoIH07CisgICAgICAgIH0KKworICAgICAgICB0aGlzLnBhdGhzLnNvbWUoZnVuY3Rpb24o
cGF0aCkgeworICAgICAgICAgICAgaWYgKHVybC5pbmRleE9mKHBhdGgpID09PSAwKSB7CisgICAg
ICAgICAgICAgICAgbWF0Y2ggPSBwYXRoOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9KTsKKwor
ICAgICAgICBpZiAoIW1hdGNoKSB7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAg
fQorCisgICAgICAgIHJldHVybiB7IGluZGV4OiAwLCB3aWR0aDogbWF0Y2gubGVuZ3RoIH07Cisg
ICAgfSwKKworICAgIG1hdGNoZXM6IGZ1bmN0aW9uKG1hbmlmZXN0X2l0ZW0pIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMubWF0Y2hfbG9jYXRpb24obWFuaWZlc3RfaXRlbS51cmwpICE9PSBudWxsOwor
ICAgIH0sCisKKyAgICB0b190ZXN0OiBmdW5jdGlvbihtYW5pZmVzdF9pdGVtKSB7CisgICAgICAg
IHZhciB0ZXN0ID0geworICAgICAgICAgICAgdHlwZTogdGhpcy50ZXN0X3R5cGVzW3RoaXMudGVz
dF90eXBlc19pbmRleF0sCisgICAgICAgICAgICB1cmw6IG1hbmlmZXN0X2l0ZW0udXJsCisgICAg
ICAgIH07CisgICAgICAgIGlmIChtYW5pZmVzdF9pdGVtLmhhc093blByb3BlcnR5KCJyZWZlcmVu
Y2VzIikpIHsKKyAgICAgICAgICAgIHRlc3QucmVmX2xlbmd0aCA9IG1hbmlmZXN0X2l0ZW0ucmVm
ZXJlbmNlcy5sZW5ndGg7CisgICAgICAgICAgICB0ZXN0LnJlZl90eXBlID0gbWFuaWZlc3RfaXRl
bS5yZWZlcmVuY2VzWzBdWzFdOworICAgICAgICAgICAgdGVzdC5yZWZfdXJsID0gbWFuaWZlc3Rf
aXRlbS5yZWZlcmVuY2VzWzBdWzBdOworICAgICAgICB9CisgICAgICAgIHJldHVybiB0ZXN0Owor
ICAgIH0sCisKKyAgICBjb3VudDogZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB0aGlzLnRl
c3RfdHlwZXMucmVkdWNlKGZ1bmN0aW9uKHByZXYsIGN1cnJlbnQpIHsKKyAgICAgICAgICAgIHZh
ciBtYXRjaGVzID0gdGhpcy5tYW5pZmVzdC5ieV90eXBlKGN1cnJlbnQpLmZpbHRlcihmdW5jdGlv
bih4KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWF0Y2hlcyh4KTsKKyAgICAgICAg
ICAgIH0uYmluZCh0aGlzKSk7CisgICAgICAgICAgICByZXR1cm4gcHJldiArIG1hdGNoZXMubGVu
Z3RoOworICAgICAgICB9LmJpbmQodGhpcyksIDApOworICAgIH0KK307CisKK2Z1bmN0aW9uIFZp
c3VhbE91dHB1dChlbGVtLCBydW5uZXIpIHsKKyAgICB0aGlzLmVsZW0gPSBlbGVtOworICAgIHRo
aXMucnVubmVyID0gcnVubmVyOworICAgIHRoaXMucmVzdWx0c190YWJsZSA9IG51bGw7CisgICAg
dGhpcy5zZWN0aW9uX3dyYXBwZXIgPSBudWxsOworICAgIHRoaXMucmVzdWx0c190YWJsZSA9IHRo
aXMuZWxlbS5xdWVyeVNlbGVjdG9yKCIucmVzdWx0cyA+IHRhYmxlIik7CisgICAgdGhpcy5zZWN0
aW9uID0gbnVsbDsKKyAgICB0aGlzLnByb2dyZXNzID0gdGhpcy5lbGVtLnF1ZXJ5U2VsZWN0b3Io
Ii5zdW1tYXJ5IC5wcm9ncmVzcyIpOworICAgIHRoaXMubWV0ZXIgPSB0aGlzLnByb2dyZXNzLnF1
ZXJ5U2VsZWN0b3IoIi5wcm9ncmVzcy1iYXIiKTsKKyAgICB0aGlzLnJlc3VsdF9jb3VudCA9IG51
bGw7CisgICAgdGhpcy5qc29uX3Jlc3VsdHNfYXJlYSA9IHRoaXMuZWxlbS5xdWVyeVNlbGVjdG9y
KCJ0ZXh0YXJlYSIpOworICAgIHRoaXMuaW5zdHJ1Y3Rpb25zID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigiLmluc3RydWN0aW9ucyIpOworCisgICAgdGhpcy5lbGVtLnN0eWxlLmRpc3BsYXkgPSAi
bm9uZSI7CisgICAgdGhpcy5ydW5uZXIubWFuaWZlc3Rfd2FpdF9jYWxsYmFja3MucHVzaCh0aGlz
Lm9uX21hbmlmZXN0X3dhaXQuYmluZCh0aGlzKSk7CisgICAgdGhpcy5ydW5uZXIuc3RhcnRfY2Fs
bGJhY2tzLnB1c2godGhpcy5vbl9zdGFydC5iaW5kKHRoaXMpKTsKKyAgICB0aGlzLnJ1bm5lci5y
ZXN1bHRfY2FsbGJhY2tzLnB1c2godGhpcy5vbl9yZXN1bHQuYmluZCh0aGlzKSk7CisgICAgdGhp
cy5ydW5uZXIuZG9uZV9jYWxsYmFja3MucHVzaCh0aGlzLm9uX2RvbmUuYmluZCh0aGlzKSk7CisK
KyAgICB0aGlzLmRpc3BsYXlfZmlsdGVyX3N0YXRlID0ge307CisKKyAgICB2YXIgdmlzdWFsX291
dHB1dCA9IHRoaXM7CisgICAgdmFyIGRpc3BsYXlfZmlsdGVyX2lucHV0cyA9IHRoaXMuZWxlbS5x
dWVyeVNlbGVjdG9yQWxsKCIucmVzdWx0LWRpc3BsYXktZmlsdGVyIik7CisgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBkaXNwbGF5X2ZpbHRlcl9pbnB1dHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAg
dmFyIGRpc3BsYXlfZmlsdGVyX2lucHV0ID0gZGlzcGxheV9maWx0ZXJfaW5wdXRzW2ldOworICAg
ICAgICB0aGlzLmRpc3BsYXlfZmlsdGVyX3N0YXRlW2Rpc3BsYXlfZmlsdGVyX2lucHV0LnZhbHVl
XSA9IGRpc3BsYXlfZmlsdGVyX2lucHV0LmNoZWNrZWQ7CisgICAgICAgIGRpc3BsYXlfZmlsdGVy
X2lucHV0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ICAgIHZpc3VhbF9vdXRwdXQuYXBwbHlfZGlzcGxheV9maWx0ZXIoZS50YXJnZXQudmFsdWUsIGUu
dGFyZ2V0LmNoZWNrZWQpOworICAgICAgICB9KQorICAgIH0KK30KKworVmlzdWFsT3V0cHV0LnBy
b3RvdHlwZSA9IHsKKyAgICBjbGVhcjogZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMucmVzdWx0
X2NvdW50ID0geyJQQVNTIjowLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRkFJTCI6
MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVSUk9SIjowLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiVElNRU9VVCI6MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIk5PVFJVTiI6MH07CisgICAgICAgIGZvciAodmFyIHAgaW4gdGhpcy5yZXN1bHRfY291bnQp
IHsKKyAgICAgICAgICAgIGlmICh0aGlzLnJlc3VsdF9jb3VudC5oYXNPd25Qcm9wZXJ0eShwKSkg
eworICAgICAgICAgICAgICAgIHRoaXMuZWxlbS5xdWVyeVNlbGVjdG9yKCJ0ZC4iICsgcCkudGV4
dENvbnRlbnQgPSAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICh0aGlz
Lmpzb25fcmVzdWx0c19hcmVhKSB7CisgICAgICAgICAgICB0aGlzLmpzb25fcmVzdWx0c19hcmVh
LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5qc29uX3Jlc3VsdHNfYXJlYSk7CisgICAgICAg
IH0KKyAgICAgICAgdGhpcy5tZXRlci5zdHlsZS53aWR0aCA9ICcwcHgnOworICAgICAgICB0aGlz
Lm1ldGVyLnRleHRDb250ZW50ID0gJzAlJzsKKyAgICAgICAgdGhpcy5tZXRlci5jbGFzc0xpc3Qu
cmVtb3ZlKCJzdG9wcGVkIiwgImxvYWRpbmctbWFuaWZlc3QiKTsKKyAgICAgICAgdGhpcy5lbGVt
LnF1ZXJ5U2VsZWN0b3IoIi5qc29uUmVzdWx0cyIpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7Cisg
ICAgICAgIHRoaXMucmVzdWx0c190YWJsZS5yZW1vdmVDaGlsZCh0aGlzLnJlc3VsdHNfdGFibGUu
dEJvZGllc1swXSk7CisgICAgICAgIHRoaXMucmVzdWx0c190YWJsZS5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJ0Ym9keSIpKTsKKyAgICB9LAorCisgICAgb25fbWFuaWZlc3Rf
d2FpdDogZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMuY2xlYXIoKTsKKyAgICAgICAgdGhpcy5p
bnN0cnVjdGlvbnMuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKKyAgICAgICAgdGhpcy5lbGVtLnN0
eWxlLmRpc3BsYXkgPSAiYmxvY2siOworICAgICAgICB0aGlzLnN0ZWFkeV9zdGF0dXMoImxvYWRp
bmctbWFuaWZlc3QiKTsKKyAgICB9LAorCisgICAgb25fc3RhcnQ6IGZ1bmN0aW9uKCkgeworICAg
ICAgICB0aGlzLmNsZWFyKCk7CisgICAgICAgIHRoaXMuaW5zdHJ1Y3Rpb25zLnN0eWxlLmRpc3Bs
YXkgPSAibm9uZSI7CisgICAgICAgIHRoaXMuZWxlbS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsK
KyAgICAgICAgdGhpcy5tZXRlci5jbGFzc0xpc3QuYWRkKCJwcm9ncmVzcy1zdHJpcGVkIiwgImFj
dGl2ZSIpOworICAgIH0sCisKKyAgICBvbl9yZXN1bHQ6IGZ1bmN0aW9uKHRlc3QsIHN0YXR1cywg
bWVzc2FnZSwgc3VidGVzdHMpIHsKKyAgICAgICAgdmFyIHJvdyA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoInRyIik7CisKKyAgICAgICAgdmFyIHN1YnRlc3RfcGFzc19jb3VudCA9IHN1YnRlc3Rz
LnJlZHVjZShmdW5jdGlvbihwcmV2LCBjdXJyZW50KSB7CisgICAgICAgICAgICByZXR1cm4gKGN1
cnJlbnQuc3RhdHVzID09PSAiUEFTUyIpID8gcHJldiArIDEgOiBwcmV2OworICAgICAgICB9LCAw
KTsKKworICAgICAgICB2YXIgc3VidGVzdF9ub3RydW5fY291bnQgPSBzdWJ0ZXN0cy5yZWR1Y2Uo
ZnVuY3Rpb24ocHJldiwgY3VycmVudCkgeworICAgICAgICAgICAgcmV0dXJuIChjdXJyZW50LnN0
YXR1cyA9PT0gIk5PVFJVTiIpID8gcHJldiArMSA6IHByZXY7CisgICAgICAgIH0sIDApOworCisg
ICAgICAgIHZhciBzdWJ0ZXN0c19jb3VudCA9IHN1YnRlc3RzLmxlbmd0aDsKKworICAgICAgICB2
YXIgdGVzdF9zdGF0dXM7CisgICAgICAgIGlmIChzdWJ0ZXN0X3Bhc3NfY291bnQgPT09IHN1YnRl
c3RzX2NvdW50ICYmCisgICAgICAgICAgICAoc3RhdHVzID09ICJPSyIgfHwgc3RhdHVzID09ICJQ
QVNTIikpIHsKKyAgICAgICAgICAgIHRlc3Rfc3RhdHVzID0gIlBBU1MiOworICAgICAgICB9IGVs
c2UgaWYgKCghc3VidGVzdHNfY291bnQgJiYgc3RhdHVzID09PSAiTk9UUlVOIikgfHwKKyAgICAg
ICAgICAgIChzdWJ0ZXN0c19jb3VudCAmJiAoc3VidGVzdF9ub3RydW5fY291bnQgPT0gc3VidGVz
dHNfY291bnQpICkgKSB7CisgICAgICAgICAgICB0ZXN0X3N0YXR1cyA9ICJOT1RSVU4iOworICAg
ICAgICB9IGVsc2UgaWYgKHN1YnRlc3RzX2NvdW50ID4gMCAmJiBzdGF0dXMgPT09ICJPSyIpIHsK
KyAgICAgICAgICAgIHRlc3Rfc3RhdHVzID0gIkZBSUwiOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgdGVzdF9zdGF0dXMgPSBzdGF0dXM7CisgICAgICAgIH0KKworICAgICAgICBzdWJ0
ZXN0cy5mb3JFYWNoKGZ1bmN0aW9uKHN1YnRlc3QpIHsKKyAgICAgICAgICAgIGlmICh0aGlzLnJl
c3VsdF9jb3VudC5oYXNPd25Qcm9wZXJ0eShzdWJ0ZXN0LnN0YXR1cykpIHsKKyAgICAgICAgICAg
ICAgICB0aGlzLnJlc3VsdF9jb3VudFtzdWJ0ZXN0LnN0YXR1c10gKz0gMTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfS5iaW5kKHRoaXMpKTsKKyAgICAgICAgaWYgKHRoaXMucmVzdWx0X2NvdW50
Lmhhc093blByb3BlcnR5KHN0YXR1cykpIHsKKyAgICAgICAgICAgIHRoaXMucmVzdWx0X2NvdW50
W3N0YXR1c10gKz0gMTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBuYW1lX25vZGUgPSByb3cu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGQiKSk7CisgICAgICAgIG5hbWVf
bm9kZS5hcHBlbmRDaGlsZCh0aGlzLnRlc3RfbmFtZV9ub2RlKHRlc3QpKTsKKworICAgICAgICB2
YXIgc3RhdHVzX25vZGUgPSByb3cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
dGQiKSk7CisgICAgICAgIHN0YXR1c19ub2RlLnRleHRDb250ZW50ID0gdGVzdF9zdGF0dXM7Cisg
ICAgICAgIHN0YXR1c19ub2RlLmNsYXNzTmFtZSA9IHRlc3Rfc3RhdHVzOworCisgICAgICAgIHZh
ciBtZXNzYWdlX25vZGUgPSByb3cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
dGQiKSk7CisgICAgICAgIG1lc3NhZ2Vfbm9kZS50ZXh0Q29udGVudCA9IG1lc3NhZ2UgfHwgIiI7
CisKKyAgICAgICAgdmFyIHN1YnRlc3RzX25vZGUgPSByb3cuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgidGQiKSk7CisgICAgICAgIGlmIChzdWJ0ZXN0c19jb3VudCkgeworICAg
ICAgICAgICAgc3VidGVzdHNfbm9kZS50ZXh0Q29udGVudCA9IHN1YnRlc3RfcGFzc19jb3VudCAr
ICIvIiArIHN1YnRlc3RzX2NvdW50OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYg
KHN0YXR1cyA9PSAiUEFTUyIpIHsKKyAgICAgICAgICAgICAgICBzdWJ0ZXN0c19ub2RlLnRleHRD
b250ZW50ID0gIjEvMSI7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHN1
YnRlc3RzX25vZGUudGV4dENvbnRlbnQgPSAiMC8xIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorCisgICAgICAgIHZhciBzdGF0dXNfYXJyID0gWyJQQVNTIiwgIkZBSUwiLCAiRVJST1IiLCAi
VElNRU9VVCIsICJOT1RSVU4iXTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzdGF0dXNf
YXJyLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB0aGlzLmVsZW0ucXVlcnlTZWxlY3Rvcigi
dGQuIiArIHN0YXR1c19hcnJbaV0pLnRleHRDb250ZW50ID0gdGhpcy5yZXN1bHRfY291bnRbc3Rh
dHVzX2FycltpXV07CisgICAgICAgIH0KKworICAgICAgICB0aGlzLmFwcGx5X2Rpc3BsYXlfZmls
dGVyX3RvX3Jlc3VsdF9yb3cocm93LCB0aGlzLmRpc3BsYXlfZmlsdGVyX3N0YXRlW3Rlc3Rfc3Rh
dHVzXSk7CisgICAgICAgIHRoaXMucmVzdWx0c190YWJsZS50Qm9kaWVzWzBdLmFwcGVuZENoaWxk
KHJvdyk7CisgICAgICAgIHRoaXMudXBkYXRlX21ldGVyKHRoaXMucnVubmVyLnByb2dyZXNzKCks
IHRoaXMucnVubmVyLnJlc3VsdHMuY291bnQoKSwgdGhpcy5ydW5uZXIudGVzdF9jb3VudCgpKTsK
KyAgICB9LAorCisgICAgc3RlYWR5X3N0YXR1czogZnVuY3Rpb24oc3RhdHVzTmFtZSkgeworICAg
ICAgICB2YXIgc3RhdHVzVGV4dHMgPSB7CisgICAgICAgICAgICBkb25lOiAiRG9uZSEiLAorICAg
ICAgICAgICAgc3RvcHBlZDogIlN0b3BwZWQiLAorICAgICAgICAgICAgImxvYWRpbmctbWFuaWZl
c3QiOiAiVXBkYXRpbmcgYW5kIGxvYWRpbmcgdGVzdCBtYW5pZmVzdDsgdGhpcyBtYXkgdGFrZSBz
ZXZlcmFsIG1pbnV0ZXMuIgorICAgICAgICB9OworICAgICAgICB2YXIgdGV4dENvbnRlbnQgPSBz
dGF0dXNUZXh0c1tzdGF0dXNOYW1lXTsKKworICAgICAgICB0aGlzLm1ldGVyLnNldEF0dHJpYnV0
ZSgiYXJpYS12YWx1ZW5vdyIsIHRoaXMubWV0ZXIuZ2V0QXR0cmlidXRlKCJhcmlhLXZhbHVlbWF4
IikpOworICAgICAgICB0aGlzLm1ldGVyLnN0eWxlLndpZHRoID0gIjEwMCUiOworICAgICAgICB0
aGlzLm1ldGVyLnRleHRDb250ZW50ID0gdGV4dENvbnRlbnQ7CisgICAgICAgIHRoaXMubWV0ZXIu
Y2xhc3NMaXN0LnJlbW92ZSgicHJvZ3Jlc3Mtc3RyaXBlZCIsICJhY3RpdmUiLCAic3RvcHBlZCIs
ICJsb2FkaW5nLW1hbmlmZXN0Iik7CisgICAgICAgIHRoaXMubWV0ZXIuY2xhc3NMaXN0LmFkZChz
dGF0dXNOYW1lKTsKKyAgICAgICAgdGhpcy5ydW5uZXIuZGlzcGxheV9jdXJyZW50X3Rlc3QobnVs
bCk7CisgICAgfSwKKworICAgIG9uX2RvbmU6IGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLnN0
ZWFkeV9zdGF0dXModGhpcy5ydW5uZXIuc3RvcF9mbGFnID8gInN0b3BwZWQiIDogImRvbmUiKTsK
KyAgICAgICAgLy9hZGQgdGhlIGpzb24gc2VyaWFsaXphdGlvbiBvZiB0aGUgcmVzdWx0cworICAg
ICAgICB2YXIgYSA9IHRoaXMuZWxlbS5xdWVyeVNlbGVjdG9yKCIuanNvblJlc3VsdHMiKTsKKyAg
ICAgICAgdmFyIGpzb24gPSB0aGlzLnJ1bm5lci5yZXN1bHRzLnRvX2pzb24oKTsKKworICAgICAg
ICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImR1bXBpdCIpLmNoZWNrZWQpIHsKKyAgICAg
ICAgICAgIHRoaXMuanNvbl9yZXN1bHRzX2FyZWEgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2Fs
bCh0aGlzLmVsZW0ucXVlcnlTZWxlY3RvckFsbCgidGV4dGFyZWEiKSk7CisgICAgICAgICAgICBm
b3IodmFyIGkgPSAwLHQgPSB0aGlzLmpzb25fcmVzdWx0c19hcmVhLmxlbmd0aDsgaSA8IHQ7IGkr
Kyl7CisgICAgICAgICAgICAgICAgdGhpcy5lbGVtLnJlbW92ZUNoaWxkKHRoaXMuanNvbl9yZXN1
bHRzX2FyZWFbaV0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy5qc29uX3Jlc3Vs
dHNfYXJlYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIik7CisgICAgICAgICAg
ICB0aGlzLmpzb25fcmVzdWx0c19hcmVhLnN0eWxlLndpZHRoID0gIjEwMCUiOworICAgICAgICAg
ICAgdGhpcy5qc29uX3Jlc3VsdHNfYXJlYS5zZXRBdHRyaWJ1dGUoInJvd3MiLCAiNTAiKTsKKyAg
ICAgICAgICAgIHRoaXMuZWxlbS5hcHBlbmRDaGlsZCh0aGlzLmpzb25fcmVzdWx0c19hcmVhKTsK
KyAgICAgICAgICAgIHRoaXMuanNvbl9yZXN1bHRzX2FyZWEudGV4dENvbnRlbnQgPSBqc29uOwor
ICAgICAgICB9CisgICAgICAgIHZhciBibG9iID0gbmV3IEJsb2IoW2pzb25dLCB7IHR5cGU6ICJh
cHBsaWNhdGlvbi9qc29uIiB9KTsKKyAgICAgICAgYS5ocmVmID0gd2luZG93LlVSTC5jcmVhdGVP
YmplY3RVUkwoYmxvYik7CisgICAgICAgIGEuZG93bmxvYWQgPSAicnVubmVyLXJlc3VsdHMuanNv
biI7CisgICAgICAgIGEudGV4dENvbnRlbnQgPSAiRG93bmxvYWQgSlNPTiByZXN1bHRzIjsKKyAg
ICAgICAgaWYgKCFhLmdldEF0dHJpYnV0ZSgiZG93bmxvYWQiKSkgYS50ZXh0Q29udGVudCArPSAi
IChyaWdodC1jbGljayBhbmQgc2F2ZSBhcyB0byBkb3dubG9hZCkiOworICAgICAgICBhLnN0eWxl
LmRpc3BsYXkgPSAiaW5saW5lIjsKKyAgICB9LAorCisgICAgdGVzdF9uYW1lX25vZGU6IGZ1bmN0
aW9uKHRlc3QpIHsKKyAgICAgICAgaWYgKCF0ZXN0Lmhhc093blByb3BlcnR5KCJyZWZfdXJsIikp
IHsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLmxpbmsodGVzdC51cmwpOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJz
cGFuIik7CisgICAgICAgICAgICB3cmFwcGVyLmFwcGVuZENoaWxkKHRoaXMubGluayh0ZXN0LnVy
bCkpOworICAgICAgICAgICAgd3JhcHBlci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZSgiICIgKyB0ZXN0LnJlZl90eXBlICsgIiAiKSk7CisgICAgICAgICAgICB3cmFwcGVyLmFw
cGVuZENoaWxkKHRoaXMubGluayh0ZXN0LnJlZl91cmwpKTsKKyAgICAgICAgICAgIHJldHVybiB3
cmFwcGVyOworICAgICAgICB9CisgICAgfSwKKworICAgIGxpbms6IGZ1bmN0aW9uKGhyZWYpIHsK
KyAgICAgICAgdmFyIGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7CisgICAgICAg
IGxpbmsuaHJlZiA9IHRoaXMucnVubmVyLnNlcnZlciArIGhyZWY7CisgICAgICAgIGxpbmsudGV4
dENvbnRlbnQgPSBocmVmOworICAgICAgICByZXR1cm4gbGluazsKKyAgICB9LAorCisgICAgdXBk
YXRlX21ldGVyOiBmdW5jdGlvbihwcm9ncmVzcywgY291bnQsIHRvdGFsKSB7CisgICAgICAgIHRo
aXMubWV0ZXIuc2V0QXR0cmlidXRlKCJhcmlhLXZhbHVlbm93IiwgY291bnQpOworICAgICAgICB0
aGlzLm1ldGVyLnNldEF0dHJpYnV0ZSgiYXJpYS12YWx1ZW1heCIsIHRvdGFsKTsKKyAgICAgICAg
dGhpcy5tZXRlci50ZXh0Q29udGVudCA9IHRoaXMubWV0ZXIuc3R5bGUud2lkdGggPSAocHJvZ3Jl
c3MgKiAxMDApLnRvRml4ZWQoMSkgKyAiJSI7CisgICAgfSwKKworICAgIGFwcGx5X2Rpc3BsYXlf
ZmlsdGVyOiBmdW5jdGlvbih0ZXN0X3N0YXR1cywgZGlzcGxheV9zdGF0ZSkgeworICAgICAgICB0
aGlzLmRpc3BsYXlfZmlsdGVyX3N0YXRlW3Rlc3Rfc3RhdHVzXSA9IGRpc3BsYXlfc3RhdGU7Cisg
ICAgICAgIHZhciByZXN1bHRfY2VsbHMgPSB0aGlzLmVsZW0ucXVlcnlTZWxlY3RvckFsbCgiLnJl
c3VsdHMgPiB0YWJsZSB0ciB0ZC4iICsgdGVzdF9zdGF0dXMpOworICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IHJlc3VsdF9jZWxscy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdGhpcy5h
cHBseV9kaXNwbGF5X2ZpbHRlcl90b19yZXN1bHRfcm93KHJlc3VsdF9jZWxsc1tpXS5wYXJlbnRO
b2RlLCBkaXNwbGF5X3N0YXRlKQorICAgICAgICB9CisgICAgfSwKKworICAgIGFwcGx5X2Rpc3Bs
YXlfZmlsdGVyX3RvX3Jlc3VsdF9yb3c6IGZ1bmN0aW9uKHJlc3VsdF9yb3csIGRpc3BsYXlfc3Rh
dGUpIHsKKyAgICAgICAgcmVzdWx0X3Jvdy5zdHlsZS5kaXNwbGF5ID0gZGlzcGxheV9zdGF0ZSA/
ICIiIDogIm5vbmUiOworICAgIH0KK307CisKK2Z1bmN0aW9uIE1hbnVhbFVJKGVsZW0sIHJ1bm5l
cikgeworICAgIHRoaXMuZWxlbSA9IGVsZW07CisgICAgdGhpcy5ydW5uZXIgPSBydW5uZXI7Cisg
ICAgdGhpcy5wYXNzX2J1dHRvbiA9IHRoaXMuZWxlbS5xdWVyeVNlbGVjdG9yKCJidXR0b24ucGFz
cyIpOworICAgIHRoaXMuZmFpbF9idXR0b24gPSB0aGlzLmVsZW0ucXVlcnlTZWxlY3RvcigiYnV0
dG9uLmZhaWwiKTsKKyAgICB0aGlzLnNraXBfYnV0dG9uID0gdGhpcy5lbGVtLnF1ZXJ5U2VsZWN0
b3IoImJ1dHRvbi5za2lwIik7CisgICAgdGhpcy5yZWZfYnV0dG9ucyA9IHRoaXMuZWxlbS5xdWVy
eVNlbGVjdG9yKCIucmVmdGVzdFVJIik7CisgICAgdGhpcy5yZWZfdHlwZSA9IHRoaXMucmVmX2J1
dHRvbnMucXVlcnlTZWxlY3RvcigiLnJlZlR5cGUiKTsKKyAgICB0aGlzLnJlZl93YXJuaW5nID0g
dGhpcy5lbGVtLnF1ZXJ5U2VsZWN0b3IoIi5yZWZ0ZXN0V2FybiIpOworICAgIHRoaXMudGVzdF9i
dXR0b24gPSB0aGlzLnJlZl9idXR0b25zLnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbi50ZXN0Iik7Cisg
ICAgdGhpcy5yZWZfYnV0dG9uID0gdGhpcy5yZWZfYnV0dG9ucy5xdWVyeVNlbGVjdG9yKCJidXR0
b24ucmVmIik7CisKKyAgICB0aGlzLmhpZGUoKTsKKworICAgIHRoaXMucnVubmVyLnRlc3Rfc3Rh
cnRfY2FsbGJhY2tzLnB1c2godGhpcy5vbl90ZXN0X3N0YXJ0LmJpbmQodGhpcykpOworICAgIHRo
aXMucnVubmVyLnRlc3RfcGF1c2VfY2FsbGJhY2tzLnB1c2godGhpcy5oaWRlLmJpbmQodGhpcykp
OworICAgIHRoaXMucnVubmVyLmRvbmVfY2FsbGJhY2tzLnB1c2godGhpcy5vbl9kb25lLmJpbmQo
dGhpcykpOworCisgICAgdGhpcy5wYXNzX2J1dHRvbi5vbmNsaWNrID0gZnVuY3Rpb24oKSB7Cisg
ICAgICAgIHRoaXMuZGlzYWJsZV9idXR0b25zKCk7CisgICAgICAgIHRoaXMucnVubmVyLm9uX3Jl
c3VsdCgiUEFTUyIsICIiLCBbXSk7CisgICAgfS5iaW5kKHRoaXMpOworCisgICAgdGhpcy5za2lw
X2J1dHRvbi5vbmNsaWNrID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMuZGlzYWJsZV9idXR0
b25zKCk7CisgICAgICAgIHRoaXMucnVubmVyLm9uX3Jlc3VsdCgiTk9UUlVOIiwgIiIsIFtdKTsK
KyAgICB9LmJpbmQodGhpcyk7CisKKyAgICB0aGlzLmZhaWxfYnV0dG9uLm9uY2xpY2sgPSBmdW5j
dGlvbigpIHsKKyAgICAgICAgdGhpcy5kaXNhYmxlX2J1dHRvbnMoKTsKKyAgICAgICAgdGhpcy5y
dW5uZXIub25fcmVzdWx0KCJGQUlMIiwgIiIsIFtdKTsKKyAgICB9LmJpbmQodGhpcyk7Cit9CisK
K01hbnVhbFVJLnByb3RvdHlwZSA9IHsKKyAgICBzaG93OiBmdW5jdGlvbigpIHsKKyAgICAgICAg
dGhpcy5lbGVtLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOworICAgICAgICBzZXRUaW1lb3V0KHRo
aXMuZW5hYmxlX2J1dHRvbnMuYmluZCh0aGlzKSwgMjAwKTsKKyAgICB9LAorCisgICAgaGlkZTog
ZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMuZWxlbS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwor
ICAgIH0sCisKKyAgICBzaG93X3JlZjogZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMucmVmX2J1
dHRvbnMuc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CisgICAgICAgIHRoaXMudGVzdF9idXR0b24u
b25jbGljayA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGhpcy5ydW5uZXIubG9hZCh0aGlz
LnJ1bm5lci5jdXJyZW50X3Rlc3QudXJsKTsKKyAgICAgICAgfS5iaW5kKHRoaXMpOworICAgICAg
ICB0aGlzLnJlZl9idXR0b24ub25jbGljayA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGhp
cy5ydW5uZXIubG9hZCh0aGlzLnJ1bm5lci5jdXJyZW50X3Rlc3QucmVmX3VybCk7CisgICAgICAg
IH0uYmluZCh0aGlzKTsKKyAgICB9LAorCisgICAgaGlkZV9yZWY6IGZ1bmN0aW9uKCkgeworICAg
ICAgICB0aGlzLnJlZl9idXR0b25zLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisgICAgfSwKKwor
ICAgIGRpc2FibGVfYnV0dG9uczogZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMucGFzc19idXR0
b24uZGlzYWJsZWQgPSB0cnVlOworICAgICAgICB0aGlzLmZhaWxfYnV0dG9uLmRpc2FibGVkID0g
dHJ1ZTsKKyAgICB9LAorCisgICAgZW5hYmxlX2J1dHRvbnM6IGZ1bmN0aW9uKCkgeworICAgICAg
ICB0aGlzLnBhc3NfYnV0dG9uLmRpc2FibGVkID0gZmFsc2U7CisgICAgICAgIHRoaXMuZmFpbF9i
dXR0b24uZGlzYWJsZWQgPSBmYWxzZTsKKyAgICB9LAorCisgICAgb25fdGVzdF9zdGFydDogZnVu
Y3Rpb24odGVzdCkgeworICAgICAgICBpZiAodGVzdC50eXBlID09ICJtYW51YWwiIHx8IHRlc3Qu
dHlwZSA9PSAicmVmdGVzdCIpIHsKKyAgICAgICAgICAgIHRoaXMuc2hvdygpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgdGhpcy5oaWRlKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KHRlc3QudHlwZSA9PSAicmVmdGVzdCIpIHsKKyAgICAgICAgICAgIHRoaXMuc2hvd19yZWYoKTsK
KyAgICAgICAgICAgIHRoaXMucmVmX3R5cGUudGV4dENvbnRlbnQgPSB0ZXN0LnJlZl90eXBlID09
PSAiPT0iID8gImVxdWFsIiA6ICJ1bmVxdWFsIjsKKyAgICAgICAgICAgIGlmICh0ZXN0LnJlZl9s
ZW5ndGggPiAxKSB7CisgICAgICAgICAgICAgICAgdGhpcy5yZWZfd2FybmluZy50ZXh0Q29udGVu
dCA9ICJXQVJOSU5HOiBvbmx5IHByZXNlbnRpbmcgZmlyc3Qgb2YgIiArIHRlc3QucmVmX2xlbmd0
aCArICIgcmVmZXJlbmNlcyI7CisgICAgICAgICAgICAgICAgdGhpcy5yZWZfd2FybmluZy5zdHls
ZS5kaXNwbGF5ID0gImlubGluZSI7CisgICAgICAgICAgICB9ICBlbHNlIHsKKyAgICAgICAgICAg
ICAgICB0aGlzLnJlZl93YXJuaW5nLnRleHRDb250ZW50ID0gIiI7CisgICAgICAgICAgICAgICAg
dGhpcy5yZWZfd2FybmluZy5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOworICAgICAgICAgICAgfQor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGhpcy5oaWRlX3JlZigpOworICAgICAgICB9
CisgICAgfSwKKworICAgIG9uX2RvbmU6IGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLmhpZGUo
KTsKKyAgICB9Cit9OworCitmdW5jdGlvbiBUZXN0Q29udHJvbChlbGVtLCBydW5uZXIpIHsKKyAg
ICB0aGlzLmVsZW0gPSBlbGVtOworICAgIHRoaXMucGF0aF9pbnB1dCA9IHRoaXMuZWxlbS5xdWVy
eVNlbGVjdG9yKCIucGF0aCIpOworICAgIHRoaXMucGF0aF9pbnB1dC5hZGRFdmVudExpc3RlbmVy
KCJjaGFuZ2UiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgdGhpcy5zZXRfY291bnRzKCk7CisgICAg
fS5iaW5kKHRoaXMpLCBmYWxzZSk7CisgICAgdGhpcy51c2VfcmVnZXhfaW5wdXQgPSB0aGlzLmVs
ZW0ucXVlcnlTZWxlY3RvcigiI3VzZV9yZWdleCIpOworICAgIHRoaXMudXNlX3JlZ2V4X2lucHV0
LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLnNl
dF9jb3VudHMoKTsKKyAgICB9LmJpbmQodGhpcyksIGZhbHNlKTsKKyAgICB0aGlzLnBhdXNlX2J1
dHRvbiA9IHRoaXMuZWxlbS5xdWVyeVNlbGVjdG9yKCJidXR0b24udG9nZ2xlUGF1c2UiKTsKKyAg
ICB0aGlzLnN0YXJ0X2J1dHRvbiA9IHRoaXMuZWxlbS5xdWVyeVNlbGVjdG9yKCJidXR0b24udG9n
Z2xlU3RhcnQiKTsKKyAgICB0aGlzLnR5cGVfY2hlY2tib3hlcyA9IEFycmF5LnByb3RvdHlwZS5z
bGljZS5jYWxsKAorICAgICAgICB0aGlzLmVsZW0ucXVlcnlTZWxlY3RvckFsbCgiaW5wdXRbdHlw
ZT1jaGVja2JveF0udGVzdC10eXBlIikpOworICAgIHRoaXMudHlwZV9jaGVja2JveGVzLmZvckVh
Y2goZnVuY3Rpb24oZWxlbSkgeworICAgICAgICBlbGVtLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5n
ZSIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGhpcy5zZXRfY291bnRzKCk7CisgICAgICAg
IH0uYmluZCh0aGlzKSwKKyAgICAgICAgZmFsc2UpOworICAgICAgICBlbGVtLmFkZEV2ZW50TGlz
dGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0aGlzLnN0YXJ0X2J1dHRv
bi5kaXNhYmxlZCA9IHRoaXMuZ2V0X3Rlc3RfdHlwZXMoKS5sZW5ndGggPCAxOworICAgICAgICB9
LmJpbmQodGhpcyksCisgICAgICAgIGZhbHNlKTsKKyAgICB9LmJpbmQodGhpcykpOworCisgICAg
dGhpcy50aW1lb3V0X2lucHV0ID0gdGhpcy5lbGVtLnF1ZXJ5U2VsZWN0b3IoIi50aW1lb3V0X211
bHRpcGxpZXIiKTsKKyAgICB0aGlzLnJlbmRlcl9jaGVja2JveCA9IHRoaXMuZWxlbS5xdWVyeVNl
bGVjdG9yKCIucmVuZGVyIik7CisgICAgdGhpcy50ZXN0Y291bnRfYXJlYSA9IHRoaXMuZWxlbS5x
dWVyeVNlbGVjdG9yKCIjdGVzdGNvdW50Iik7CisgICAgdGhpcy5ydW5uZXIgPSBydW5uZXI7Cisg
ICAgdGhpcy5ydW5uZXIuZG9uZV9jYWxsYmFja3MucHVzaCh0aGlzLm9uX2RvbmUuYmluZCh0aGlz
KSk7CisgICAgdGhpcy5zZXRfc3RhcnQoKTsKKyAgICB0aGlzLnNldF9jb3VudHMoKTsKK30KKwor
VGVzdENvbnRyb2wucHJvdG90eXBlID0geworICAgIHNldF9zdGFydDogZnVuY3Rpb24oKSB7Cisg
ICAgICAgIHRoaXMuc3RhcnRfYnV0dG9uLmRpc2FibGVkID0gdGhpcy5nZXRfdGVzdF90eXBlcygp
Lmxlbmd0aCA8IDE7CisgICAgICAgIHRoaXMucGF1c2VfYnV0dG9uLmRpc2FibGVkID0gdHJ1ZTsK
KyAgICAgICAgdGhpcy5zdGFydF9idXR0b24udGV4dENvbnRlbnQgPSAiU3RhcnQiOworICAgICAg
ICB0aGlzLnBhdGhfaW5wdXQuZGlzYWJsZWQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy50eXBlX2No
ZWNrYm94ZXMuZm9yRWFjaChmdW5jdGlvbihlbGVtKSB7CisgICAgICAgICAgICBlbGVtLmRpc2Fi
bGVkID0gZmFsc2U7CisgICAgICAgIH0pOworICAgICAgICB0aGlzLnN0YXJ0X2J1dHRvbi5vbmNs
aWNrID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB2YXIgcGF0aCA9IHRoaXMuZ2V0X3BhdGgo
KTsKKyAgICAgICAgICAgIHZhciB0ZXN0X3R5cGVzID0gdGhpcy5nZXRfdGVzdF90eXBlcygpOwor
ICAgICAgICAgICAgdmFyIHNldHRpbmdzID0gdGhpcy5nZXRfdGVzdGhhcm5lc3Nfc2V0dGluZ3Mo
KTsKKyAgICAgICAgICAgIHZhciB1c2VfcmVnZXggPSB0aGlzLmdldF91c2VfcmVnZXgoKTsKKyAg
ICAgICAgICAgIHRoaXMucnVubmVyLnN0YXJ0KHBhdGgsIHRlc3RfdHlwZXMsIHNldHRpbmdzLCB1
c2VfcmVnZXgpOworICAgICAgICAgICAgdGhpcy5zZXRfc3RvcCgpOworICAgICAgICAgICAgdGhp
cy5zZXRfcGF1c2UoKTsKKyAgICAgICAgfS5iaW5kKHRoaXMpOworICAgIH0sCisKKyAgICBzZXRf
c3RvcDogZnVuY3Rpb24oKSB7CisgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJ1bm5lci50aW1l
b3V0KTsKKyAgICAgICAgdGhpcy5wYXVzZV9idXR0b24uZGlzYWJsZWQgPSBmYWxzZTsKKyAgICAg
ICAgdGhpcy5zdGFydF9idXR0b24udGV4dENvbnRlbnQgPSAiU3RvcCI7CisgICAgICAgIHRoaXMu
cGF0aF9pbnB1dC5kaXNhYmxlZCA9IHRydWU7CisgICAgICAgIHRoaXMudHlwZV9jaGVja2JveGVz
LmZvckVhY2goZnVuY3Rpb24oZWxlbSkgeworICAgICAgICAgICAgZWxlbS5kaXNhYmxlZCA9IHRy
dWU7CisgICAgICAgIH0pOworICAgICAgICB0aGlzLnN0YXJ0X2J1dHRvbi5vbmNsaWNrID0gZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICB0aGlzLnJ1bm5lci5zdG9wX2ZsYWcgPSB0cnVlOworICAg
ICAgICAgICAgdGhpcy5ydW5uZXIuZG9uZSgpOworICAgICAgICB9LmJpbmQodGhpcyk7CisgICAg
fSwKKworICAgIHNldF9wYXVzZTogZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMucGF1c2VfYnV0
dG9uLnRleHRDb250ZW50ID0gIlBhdXNlIjsKKyAgICAgICAgdGhpcy5wYXVzZV9idXR0b24ub25j
bGljayA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGhpcy5ydW5uZXIucGF1c2UoKTsKKyAg
ICAgICAgICAgIHRoaXMuc2V0X3Jlc3VtZSgpOworICAgICAgICB9LmJpbmQodGhpcyk7CisgICAg
fSwKKworICAgIHNldF9yZXN1bWU6IGZ1bmN0aW9uKCkgeworICAgICAgICB0aGlzLnBhdXNlX2J1
dHRvbi50ZXh0Q29udGVudCA9ICJSZXN1bWUiOworICAgICAgICB0aGlzLnBhdXNlX2J1dHRvbi5v
bmNsaWNrID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0aGlzLnJ1bm5lci51bnBhdXNlKCk7
CisgICAgICAgICAgICB0aGlzLnNldF9wYXVzZSgpOworICAgICAgICB9LmJpbmQodGhpcyk7CisK
KyAgICB9LAorCisgICAgc2V0X2NvdW50czogZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh0aGlz
LnJ1bm5lci5tYW5pZmVzdF9sb2FkaW5nKSB7CisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgIHRoaXMuc2V0X2NvdW50cygpOworICAgICAgICAgICAg
fS5iaW5kKHRoaXMpLCAxMDAwKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
ICAgICB2YXIgcGF0aCA9IHRoaXMuZ2V0X3BhdGgoKTsKKyAgICAgICAgdmFyIHRlc3RfdHlwZXMg
PSB0aGlzLmdldF90ZXN0X3R5cGVzKCk7CisgICAgICAgIHZhciB1c2VfcmVnZXggPSB0aGlzLmdl
dF91c2VfcmVnZXgoKTsKKyAgICAgICAgdmFyIGl0ZXJhdG9yID0gbmV3IE1hbmlmZXN0SXRlcmF0
b3IodGhpcy5ydW5uZXIubWFuaWZlc3QsIHBhdGgsIHRlc3RfdHlwZXMsIHVzZV9yZWdleCk7Cisg
ICAgICAgIHZhciBjb3VudCA9IGl0ZXJhdG9yLmNvdW50KCk7CisgICAgICAgIHRoaXMudGVzdGNv
dW50X2FyZWEudGV4dENvbnRlbnQgPSBjb3VudDsKKyAgICB9LAorCisgICAgZ2V0X3BhdGg6IGZ1
bmN0aW9uKCkgeworICAgICAgICByZXR1cm4gdGhpcy5wYXRoX2lucHV0LnZhbHVlOworICAgIH0s
CisKKyAgICBnZXRfdGVzdF90eXBlczogZnVuY3Rpb24oKSB7CisgICAgICAgIHJldHVybiB0aGlz
LnR5cGVfY2hlY2tib3hlcy5maWx0ZXIoZnVuY3Rpb24oZWxlbSkgeworICAgICAgICAgICAgcmV0
dXJuIGVsZW0uY2hlY2tlZDsKKyAgICAgICAgfSkubWFwKGZ1bmN0aW9uKGVsZW0pIHsKKyAgICAg
ICAgICAgIHJldHVybiBlbGVtLnZhbHVlOworICAgICAgICB9KTsKKyAgICB9LAorCisgICAgZ2V0
X3Rlc3RoYXJuZXNzX3NldHRpbmdzOiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHt0aW1l
b3V0X211bHRpcGxpZXI6IHBhcnNlRmxvYXQodGhpcy50aW1lb3V0X2lucHV0LnZhbHVlKSwKKyAg
ICAgICAgICAgICAgICBvdXRwdXQ6IHRoaXMucmVuZGVyX2NoZWNrYm94LmNoZWNrZWR9OworICAg
IH0sCisKKyAgICBnZXRfdXNlX3JlZ2V4OiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIHRo
aXMudXNlX3JlZ2V4X2lucHV0LmNoZWNrZWQ7CisgICAgfSwKKworICAgIG9uX2RvbmU6IGZ1bmN0
aW9uKCkgeworICAgICAgICB0aGlzLnNldF9wYXVzZSgpOworICAgICAgICB0aGlzLnNldF9zdGFy
dCgpOworICAgIH0KK307CisKK2Z1bmN0aW9uIFJlc3VsdHMocnVubmVyKSB7CisgICAgdGhpcy50
ZXN0X3Jlc3VsdHMgPSBudWxsOworICAgIHRoaXMucnVubmVyID0gcnVubmVyOworCisgICAgdGhp
cy5ydW5uZXIuc3RhcnRfY2FsbGJhY2tzLnB1c2godGhpcy5vbl9zdGFydC5iaW5kKHRoaXMpKTsK
K30KKworUmVzdWx0cy5wcm90b3R5cGUgPSB7CisgICAgb25fc3RhcnQ6IGZ1bmN0aW9uKCkgewor
ICAgICAgICB0aGlzLnRlc3RfcmVzdWx0cyA9IFtdOworICAgIH0sCisKKyAgICBzZXQ6IGZ1bmN0
aW9uKHRlc3QsIHN0YXR1cywgbWVzc2FnZSwgc3VidGVzdHMpIHsKKyAgICAgICAgdGhpcy50ZXN0
X3Jlc3VsdHMucHVzaCh7InRlc3QiOnRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJzdWJ0ZXN0cyI6c3VidGVzdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJzdGF0dXMiOnN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1lc3Nh
Z2UiOm1lc3NhZ2V9KTsKKyAgICB9LAorCisgICAgY291bnQ6IGZ1bmN0aW9uKCkgeworICAgICAg
ICByZXR1cm4gdGhpcy50ZXN0X3Jlc3VsdHMubGVuZ3RoOworICAgIH0sCisKKyAgICB0b19qc29u
OiBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGRhdGEgPSB7CisgICAgICAgICAgICAicmVzdWx0
cyI6IHRoaXMudGVzdF9yZXN1bHRzLm1hcChmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAg
ICAgICB2YXIgcnYgPSB7InRlc3QiOihyZXN1bHQudGVzdC5oYXNPd25Qcm9wZXJ0eSgicmVmX3Vy
bCIpID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVzdWx0LnRlc3QudXJs
LCByZXN1bHQudGVzdC5yZWZfdHlwZSwgcmVzdWx0LnRlc3QucmVmX3VybF0gOgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC50ZXN0LnVybCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICJzdWJ0ZXN0cyI6cmVzdWx0LnN1YnRlc3RzLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAic3RhdHVzIjpyZXN1bHQuc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAibWVzc2FnZSI6cmVzdWx0Lm1lc3NhZ2V9OworICAgICAgICAgICAgICAgIHJldHVybiBy
djsKKyAgICAgICAgICAgIH0pCisgICAgICAgIH07CisgICAgICAgIHJldHVybiBKU09OLnN0cmlu
Z2lmeShkYXRhLCBudWxsLCAyKTsKKyAgICB9Cit9OworCitmdW5jdGlvbiBSdW5uZXIobWFuaWZl
c3RfcGF0aCkgeworICAgIHRoaXMuc2VydmVyID0gZ2V0X2hvc3RfaW5mbygpLkhUVFBfT1JJR0lO
OworICAgIHRoaXMuaHR0cHNfc2VydmVyID0gZ2V0X2hvc3RfaW5mbygpLkhUVFBTX09SSUdJTjsK
KyAgICB0aGlzLm1hbmlmZXN0ID0gbmV3IE1hbmlmZXN0KG1hbmlmZXN0X3BhdGgpOworICAgIHRo
aXMucGF0aCA9IG51bGw7CisgICAgdGhpcy50ZXN0X3R5cGVzID0gbnVsbDsKKyAgICB0aGlzLm1h
bmlmZXN0X2l0ZXJhdG9yID0gbnVsbDsKKworICAgIHRoaXMudGVzdF93aW5kb3cgPSBudWxsOwor
ICAgIHRoaXMudGVzdF9kaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY3VycmVudF90ZXN0
Jyk7CisgICAgdGhpcy50ZXN0X3VybCA9IHRoaXMudGVzdF9kaXYuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoJ2EnKVswXTsKKyAgICB0aGlzLmN1cnJlbnRfdGVzdCA9IG51bGw7CisgICAgdGhpcy50aW1l
b3V0ID0gbnVsbDsKKyAgICB0aGlzLm51bV90ZXN0cyA9IG51bGw7CisgICAgdGhpcy5wYXVzZV9m
bGFnID0gZmFsc2U7CisgICAgdGhpcy5zdG9wX2ZsYWcgPSBmYWxzZTsKKyAgICB0aGlzLmRvbmVf
ZmxhZyA9IGZhbHNlOworCisgICAgdGhpcy5tYW5pZmVzdF93YWl0X2NhbGxiYWNrcyA9IFtdOwor
ICAgIHRoaXMuc3RhcnRfY2FsbGJhY2tzID0gW107CisgICAgdGhpcy50ZXN0X3N0YXJ0X2NhbGxi
YWNrcyA9IFtdOworICAgIHRoaXMudGVzdF9wYXVzZV9jYWxsYmFja3MgPSBbXTsKKyAgICB0aGlz
LnJlc3VsdF9jYWxsYmFja3MgPSBbXTsKKyAgICB0aGlzLmRvbmVfY2FsbGJhY2tzID0gW107CisK
KyAgICB0aGlzLnJlc3VsdHMgPSBuZXcgUmVzdWx0cyh0aGlzKTsKKworICAgIHRoaXMuc3RhcnRf
YWZ0ZXJfbWFuaWZlc3RfbG9hZCA9IGZhbHNlOworICAgIHRoaXMubWFuaWZlc3RfbG9hZGluZyA9
IHRydWU7CisgICAgdGhpcy5tYW5pZmVzdC5sb2FkKHRoaXMubWFuaWZlc3RfbG9hZGVkLmJpbmQo
dGhpcykpOworfQorCitSdW5uZXIucHJvdG90eXBlID0geworICAgIHRlc3RfdGltZW91dDogMjAw
MDAsIC8vbXMKKworICAgIGN1cnJlbnRUZXN0OiBmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJu
IHRoaXMubWFuaWZlc3RbdGhpcy5tVGVzdENvdW50XTsKKyAgICB9LAorCisgICAgZW5zdXJlX3Rl
c3Rfd2luZG93OiBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKCF0aGlzLnRlc3Rfd2luZG93IHx8
IHRoaXMudGVzdF93aW5kb3cubG9jYXRpb24gPT09IG51bGwpIHsKKyAgICAgICAgICB0aGlzLnRl
c3Rfd2luZG93ID0gd2luZG93Lm9wZW4oImFib3V0OmJsYW5rIiwgODAwLCA2MDApOworICAgICAg
ICB9CisgICAgfSwKKworICAgIG1hbmlmZXN0X2xvYWRlZDogZnVuY3Rpb24oKSB7CisgICAgICAg
IHRoaXMubWFuaWZlc3RfbG9hZGluZyA9IGZhbHNlOworICAgICAgICBpZiAodGhpcy5zdGFydF9h
ZnRlcl9tYW5pZmVzdF9sb2FkKSB7CisgICAgICAgICAgICB0aGlzLmRvX3N0YXJ0KCk7CisgICAg
ICAgIH0KKyAgICB9LAorCisgICAgc3RhcnQ6IGZ1bmN0aW9uKHBhdGgsIHRlc3RfdHlwZXMsIHRl
c3RoYXJuZXNzX3NldHRpbmdzLCB1c2VfcmVnZXgpIHsKKyAgICAgICAgdGhpcy5wYXVzZV9mbGFn
ID0gZmFsc2U7CisgICAgICAgIHRoaXMuc3RvcF9mbGFnID0gZmFsc2U7CisgICAgICAgIHRoaXMu
ZG9uZV9mbGFnID0gZmFsc2U7CisgICAgICAgIHRoaXMucGF0aCA9IHBhdGg7CisgICAgICAgIHRo
aXMudXNlX3JlZ2V4ID0gdXNlX3JlZ2V4OworICAgICAgICB0aGlzLnRlc3RfdHlwZXMgPSB0ZXN0
X3R5cGVzOworICAgICAgICB3aW5kb3cudGVzdGhhcm5lc3NfcHJvcGVydGllcyA9IHRlc3RoYXJu
ZXNzX3NldHRpbmdzOworICAgICAgICB0aGlzLm1hbmlmZXN0X2l0ZXJhdG9yID0gbmV3IE1hbmlm
ZXN0SXRlcmF0b3IodGhpcy5tYW5pZmVzdCwgdGhpcy5wYXRoLCB0aGlzLnRlc3RfdHlwZXMsIHRo
aXMudXNlX3JlZ2V4KTsKKyAgICAgICAgdGhpcy5udW1fdGVzdHMgPSBudWxsOworCisgICAgICAg
IHRoaXMuZW5zdXJlX3Rlc3Rfd2luZG93KCk7CisgICAgICAgIGlmICh0aGlzLm1hbmlmZXN0LmRh
dGEgPT09IG51bGwpIHsKKyAgICAgICAgICAgIHRoaXMud2FpdF9mb3JfbWFuaWZlc3QoKTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuZG9fc3RhcnQoKTsKKyAgICAgICAgfQor
ICAgIH0sCisKKyAgICB3YWl0X2Zvcl9tYW5pZmVzdDogZnVuY3Rpb24oKSB7CisgICAgICAgIHRo
aXMuc3RhcnRfYWZ0ZXJfbWFuaWZlc3RfbG9hZCA9IHRydWU7CisgICAgICAgIHRoaXMubWFuaWZl
c3Rfd2FpdF9jYWxsYmFja3MuZm9yRWFjaChmdW5jdGlvbihjYWxsYmFjaykgeworICAgICAgICAg
ICAgY2FsbGJhY2soKTsKKyAgICAgICAgfSk7CisgICAgfSwKKworICAgIGRvX3N0YXJ0OiBmdW5j
dGlvbigpIHsKKyAgICAgICAgaWYgKHRoaXMubWFuaWZlc3RfaXRlcmF0b3IuY291bnQoKSA+IDAp
IHsKKyAgICAgICAgICAgIHRoaXMuc3RhcnRfY2FsbGJhY2tzLmZvckVhY2goZnVuY3Rpb24oY2Fs
bGJhY2spIHsKKyAgICAgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB0aGlzLnJ1bl9uZXh0X3Rlc3QoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIHZhciB0ZXN0cyA9ICJ0ZXN0cyI7CisgICAgICAgICAgICBpZiAodGhpcy50ZXN0X3R5
cGVzLmxlbmd0aCA8IDMpIHsKKyAgICAgICAgICAgICAgICB0ZXN0cyA9IHRoaXMudGVzdF90eXBl
cy5qb2luKCIgdGVzdHMgb3IgIikgKyAiIHRlc3RzIjsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIHZhciBtZXNzYWdlID0gIk5vICIgKyB0ZXN0cyArICIgZm91bmQgaW4gdGhpcyBwYXRoLiIK
KyAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5wYXRoIikuc2V0Q3VzdG9tVmFs
aWRpdHkobWVzc2FnZSk7CisgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgfQorICAg
IH0sCisKKyAgICBwYXVzZTogZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMucGF1c2VfZmxhZyA9
IHRydWU7CisgICAgICAgIHRoaXMudGVzdF9wYXVzZV9jYWxsYmFja3MuZm9yRWFjaChmdW5jdGlv
bihjYWxsYmFjaykgeworICAgICAgICAgICAgY2FsbGJhY2sodGhpcy5jdXJyZW50X3Rlc3QpOwor
ICAgICAgICB9LmJpbmQodGhpcykpOworICAgIH0sCisKKyAgICB1bnBhdXNlOiBmdW5jdGlvbigp
IHsKKyAgICAgICAgdGhpcy5wYXVzZV9mbGFnID0gZmFsc2U7CisgICAgICAgIHRoaXMucnVuX25l
eHRfdGVzdCgpOworICAgIH0sCisKKyAgICBvbl9yZXN1bHQ6IGZ1bmN0aW9uKHN0YXR1cywgbWVz
c2FnZSwgc3VidGVzdHMpIHsKKyAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dCk7Cisg
ICAgICAgIHRoaXMucmVzdWx0cy5zZXQodGhpcy5jdXJyZW50X3Rlc3QsIHN0YXR1cywgbWVzc2Fn
ZSwgc3VidGVzdHMpOworICAgICAgICB0aGlzLnJlc3VsdF9jYWxsYmFja3MuZm9yRWFjaChmdW5j
dGlvbihjYWxsYmFjaykgeworICAgICAgICAgICAgY2FsbGJhY2sodGhpcy5jdXJyZW50X3Rlc3Qs
IHN0YXR1cywgbWVzc2FnZSwgc3VidGVzdHMpOworICAgICAgICB9LmJpbmQodGhpcykpOworICAg
ICAgICB0aGlzLnJ1bl9uZXh0X3Rlc3QoKTsKKyAgICB9LAorCisgICAgb25fdGltZW91dDogZnVu
Y3Rpb24oKSB7CisgICAgICAgIHRoaXMub25fcmVzdWx0KCJUSU1FT1VUIiwgIiIsIFtdKTsKKyAg
ICB9LAorCisgICAgZG9uZTogZnVuY3Rpb24oKSB7CisgICAgICAgIHRoaXMuZG9uZV9mbGFnID0g
dHJ1ZTsKKyAgICAgICAgaWYgKHRoaXMudGVzdF93aW5kb3cpIHsKKyAgICAgICAgICAgIHRoaXMu
dGVzdF93aW5kb3cuY2xvc2UoKTsKKyAgICAgICAgICAgIHRoaXMudGVzdF93aW5kb3cgPSB1bmRl
ZmluZWQ7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5kb25lX2NhbGxiYWNrcy5mb3JFYWNoKGZ1
bmN0aW9uKGNhbGxiYWNrKSB7CisgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICB9KTsK
KyAgICB9LAorCisgICAgcnVuX25leHRfdGVzdDogZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh0
aGlzLnBhdXNlX2ZsYWcpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAg
ICB2YXIgbmV4dF90ZXN0ID0gdGhpcy5tYW5pZmVzdF9pdGVyYXRvci5uZXh0KCk7CisgICAgICAg
IGlmIChuZXh0X3Rlc3QgPT09IG51bGx8fHRoaXMuZG9uZV9mbGFnKSB7CisgICAgICAgICAgICB0
aGlzLmRvbmUoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHRo
aXMuY3VycmVudF90ZXN0ID0gbmV4dF90ZXN0OworCisgICAgICAgIGlmIChuZXh0X3Rlc3QudHlw
ZSA9PT0gInRlc3RoYXJuZXNzIikgeworICAgICAgICAgICAgdGhpcy50aW1lb3V0ID0gc2V0VGlt
ZW91dCh0aGlzLm9uX3RpbWVvdXQuYmluZCh0aGlzKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGhpcy50ZXN0X3RpbWVvdXQgKiB3aW5kb3cudGVzdGhhcm5lc3NfcHJv
cGVydGllcy50aW1lb3V0X211bHRpcGxpZXIpOworICAgICAgICB9CisgICAgICAgIHRoaXMuZGlz
cGxheV9jdXJyZW50X3Rlc3QodGhpcy5jdXJyZW50X3Rlc3QudXJsKTsKKyAgICAgICAgdGhpcy5s
b2FkKHRoaXMuY3VycmVudF90ZXN0LnVybCk7CisKKyAgICAgICAgdGhpcy50ZXN0X3N0YXJ0X2Nh
bGxiYWNrcy5mb3JFYWNoKGZ1bmN0aW9uKGNhbGxiYWNrKSB7CisgICAgICAgICAgICBjYWxsYmFj
ayh0aGlzLmN1cnJlbnRfdGVzdCk7CisgICAgICAgIH0uYmluZCh0aGlzKSk7CisgICAgfSwKKwor
ICAgIGRpc3BsYXlfY3VycmVudF90ZXN0OiBmdW5jdGlvbih1cmwpIHsKKyAgICAgICAgdmFyIG1h
dGNoX2xvY2F0aW9uLCBpbmRleCwgd2lkdGg7CisKKyAgICAgICAgaWYgKHVybCA9PT0gbnVsbCkg
eworICAgICAgICAgICAgdGhpcy50ZXN0X2Rpdi5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7
CisgICAgICAgICAgICB0aGlzLnRlc3RfdXJsLnJlbW92ZUF0dHJpYnV0ZSgiaHJlZiIpOworICAg
ICAgICAgICAgdGhpcy50ZXN0X3VybC50ZXh0Q29udGVudCA9ICIiOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgbWF0Y2hfbG9jYXRpb24gPSB0aGlzLm1hbmlmZXN0
X2l0ZXJhdG9yLm1hdGNoX2xvY2F0aW9uKHVybCk7CisgICAgICAgIGluZGV4ID0gbWF0Y2hfbG9j
YXRpb24uaW5kZXg7CisgICAgICAgIHdpZHRoID0gbWF0Y2hfbG9jYXRpb24ud2lkdGg7CisKKyAg
ICAgICAgdGhpcy50ZXN0X3VybC5zZXRBdHRyaWJ1dGUoImhyZWYiLCB1cmwpOworICAgICAgICB0
aGlzLnRlc3RfdXJsLmlubmVySFRNTCA9IHVybC5zdWJzdHJpbmcoMCwgaW5kZXgpICsKKyAgICAg
ICAgICAgICI8c3BhbiBjbGFzcz0nbWF0Y2gnPiIgKworICAgICAgICAgICAgdXJsLnN1YnN0cmlu
ZyhpbmRleCwgaW5kZXggKyB3aWR0aCkgKworICAgICAgICAgICAgIjwvc3Bhbj4iICsKKyAgICAg
ICAgICAgIHVybC5zdWJzdHJpbmcoaW5kZXggKyB3aWR0aCk7CisgICAgICAgIHRoaXMudGVzdF9k
aXYuc3R5bGUudmlzaWJpbGl0eSA9ICJ2aXNpYmxlIjsKKyAgICB9LAorCisgICAgbG9hZDogZnVu
Y3Rpb24ocGF0aCkgeworICAgICAgICB0aGlzLmVuc3VyZV90ZXN0X3dpbmRvdygpOworICAgICAg
ICBpZiAocGF0aC5tYXRjaCgvXC5odHRwc1wuLykpCisgICAgICAgICAgdGhpcy50ZXN0X3dpbmRv
dy5sb2NhdGlvbi5ocmVmID0gdGhpcy5odHRwc19zZXJ2ZXIgKyBwYXRoOworICAgICAgICBlbHNl
CisgICAgICAgICAgdGhpcy50ZXN0X3dpbmRvdy5sb2NhdGlvbi5ocmVmID0gdGhpcy5zZXJ2ZXIg
KyBwYXRoOworICAgIH0sCisKKyAgICBwcm9ncmVzczogZnVuY3Rpb24oKSB7CisgICAgICAgIHJl
dHVybiB0aGlzLnJlc3VsdHMuY291bnQoKSAvIHRoaXMudGVzdF9jb3VudCgpOworICAgIH0sCisK
KyAgICB0ZXN0X2NvdW50OiBmdW5jdGlvbigpIHsKKyAgICAgICAgaWYgKHRoaXMubnVtX3Rlc3Rz
ID09PSBudWxsKSB7CisgICAgICAgICAgICB0aGlzLm51bV90ZXN0cyA9IHRoaXMubWFuaWZlc3Rf
aXRlcmF0b3IuY291bnQoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdGhpcy5udW1fdGVz
dHM7CisgICAgfSwKKworICAgIG9uX2NvbXBsZXRlOiBmdW5jdGlvbih0ZXN0cywgc3RhdHVzKSB7
CisgICAgICB2YXIgaGFybmVzc19zdGF0dXNfbWFwID0gezA6Ik9LIiwgMToiRVJST1IiLCAyOiJU
SU1FT1VUIiwgMzoiTk9UUlVOIn07CisgICAgICB2YXIgc3VidGVzdF9zdGF0dXNfbWFwID0gezA6
IlBBU1MiLCAxOiJGQUlMIiwgMjoiVElNRU9VVCIsIDM6Ik5PVFJVTiJ9OworCisgICAgICAvLyB0
aGlzIHVnbHkgaGFjayBpcyBiZWNhdXNlIElFIHJlYWxseSBpbnNpc3RzIG9uIGhvbGRpbmcgb24g
dG8gdGhlIG9iamVjdHMgaXQgY3JlYXRlcyBpbgorICAgICAgLy8gb3RoZXIgd2luZG93cywgYW5k
IG9uIGxvc2luZyB0cmFjayBvZiB0aGVtIHdoZW4gdGhlIHdpbmRvdyBnZXRzIGNsb3NlZAorICAg
ICAgdmFyIHN1YnRlc3RfcmVzdWx0cyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoCisgICAg
ICAgICAgdGVzdHMubWFwKGZ1bmN0aW9uICh0ZXN0KSB7CisgICAgICAgICAgICAgIHJldHVybiB7
bmFtZTogdGVzdC5uYW1lLAorICAgICAgICAgICAgICAgICAgICAgIHN0YXR1czogc3VidGVzdF9z
dGF0dXNfbWFwW3Rlc3Quc3RhdHVzXSwKKyAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiB0
ZXN0Lm1lc3NhZ2V9OworICAgICAgICAgIH0pCisgICAgICApKTsKKworICAgICAgcnVubmVyLm9u
X3Jlc3VsdChoYXJuZXNzX3N0YXR1c19tYXBbc3RhdHVzLnN0YXR1c10sCisgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXR1cy5tZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICBzdWJ0ZXN0
X3Jlc3VsdHMpOworICAgIH0KK307CisKKworZnVuY3Rpb24gcGFyc2VPcHRpb25zKCkgeworICAg
IHZhciBvcHRpb25zID0geworICAgICAgICB0ZXN0X3R5cGVzOiBbInRlc3RoYXJuZXNzIiwgInJl
ZnRlc3QiLCAibWFudWFsIl0KKyAgICB9OworCisgICAgdmFyIG9wdGlvbnN0cmluZ3MgPSBsb2Nh
dGlvbi5zZWFyY2guc3Vic3RyaW5nKDEpLnNwbGl0KCImIik7CisgICAgZm9yICh2YXIgaSA9IDAs
IGlsID0gb3B0aW9uc3RyaW5ncy5sZW5ndGg7IGkgPCBpbDsgKytpKSB7CisgICAgICAgIHZhciBv
cHQgPSBvcHRpb25zdHJpbmdzW2ldOworICAgICAgICAvL1RPRE86IGZpeCB0aGlzIGZvciBjb21w
bGV4LXZhbHVlZCBvcHRpb25zCisgICAgICAgIG9wdGlvbnNbb3B0LnN1YnN0cmluZygwLCBvcHQu
aW5kZXhPZigiPSIpKV0gPQorICAgICAgICAgICAgb3B0LnN1YnN0cmluZyhvcHQuaW5kZXhPZigi
PSIpICsgMSk7CisgICAgfQorICAgIHJldHVybiBvcHRpb25zOworfQorCitmdW5jdGlvbiBzZXR1
cCgpIHsKKyAgICB2YXIgb3B0aW9ucyA9IHBhcnNlT3B0aW9ucygpOworCisgICAgaWYgKG9wdGlv
bnMucGF0aCkgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGF0aCcpLnZhbHVl
ID0gb3B0aW9ucy5wYXRoOworICAgIH0KKworICAgIHJ1bm5lciA9IG5ldyBSdW5uZXIoIi9NQU5J
RkVTVC5qc29uIiwgb3B0aW9ucyk7CisgICAgdmFyIHRlc3RfY29udHJvbCA9IG5ldyBUZXN0Q29u
dHJvbChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdENvbnRyb2wiKSwgcnVubmVyKTsKKyAg
ICBuZXcgTWFudWFsVUkoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hbnVhbFVJIiksIHJ1bm5l
cik7CisgICAgbmV3IFZpc3VhbE91dHB1dChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0
IiksIHJ1bm5lcik7CisKKyAgICBpZiAob3B0aW9ucy5hdXRvcnVuID09PSAiMSIpIHsKKyAgICAg
ICAgcnVubmVyLnN0YXJ0KHRlc3RfY29udHJvbC5nZXRfcGF0aCgpLAorICAgICAgICAgICAgICAg
ICAgICAgdGVzdF9jb250cm9sLmdldF90ZXN0X3R5cGVzKCksCisgICAgICAgICAgICAgICAgICAg
ICB0ZXN0X2NvbnRyb2wuZ2V0X3Rlc3RoYXJuZXNzX3NldHRpbmdzKCksCisgICAgICAgICAgICAg
ICAgICAgICB0ZXN0X2NvbnRyb2wuZ2V0X3VzZV9yZWdleCgpKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24o
ZSkgeworICAgICAgaWYgKGUuZGF0YS50eXBlID09PSAiY29tcGxldGUiKQorICAgICAgICBydW5u
ZXIub25fY29tcGxldGUoZS5kYXRhLnRlc3RzLCBlLmRhdGEuc3RhdHVzKTsKKyAgICB9KTsKK30K
Kword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCBzZXR1cCwgZmFs
c2UpOworfSkoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3VwZGF0ZV9tYW5pZmVzdC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3VwZGF0ZV9tYW5p
ZmVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wYjJjOGEyNmY4ZjEzZWJmMjljZDZlOTM0YWZkNjE0ZWQ1ZjZk
NGI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvdXBkYXRlX21hbmlmZXN0LnB5CkBAIC0wLDAgKzEsMjgg
QEAKK2ltcG9ydCBpbXAKK2ltcG9ydCBqc29uCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworaGVy
ZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKK2xvY2FscGF0aHMgPSBpbXAubG9hZF9zb3Vy
Y2UoImxvY2FscGF0aHMiLCBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsIG9zLnBh
cmRpciwgImxvY2FscGF0aHMucHkiKSkpCisKK3Jvb3QgPSBsb2NhbHBhdGhzLnJlcG9fcm9vdAor
Citmcm9tIG1hbmlmZXN0IGltcG9ydCBtYW5pZmVzdCwgdXBkYXRlCisKK2RlZiBtYWluKHJlcXVl
c3QsIHJlc3BvbnNlKToKKyAgICBwYXRoID0gb3MucGF0aC5qb2luKHJvb3QsICJNQU5JRkVTVC5q
c29uIikKKworICAgIG1hbmlmZXN0X2ZpbGUgPSBOb25lCisgICAgdHJ5OgorICAgICAgICBtYW5p
ZmVzdF9maWxlID0gbWFuaWZlc3QubG9hZChyb290LCBwYXRoKQorICAgIGV4Y2VwdCBtYW5pZmVz
dC5NYW5pZmVzdFZlcnNpb25NaXNtYXRjaDoKKyAgICAgICAgcGFzcworICAgIGlmIG1hbmlmZXN0
X2ZpbGUgaXMgTm9uZToKKyAgICAgICAgbWFuaWZlc3RfZmlsZSA9IG1hbmlmZXN0Lk1hbmlmZXN0
KCIvIikKKworICAgIHVwZGF0ZS51cGRhdGUocm9vdCwgbWFuaWZlc3RfZmlsZSkKKworICAgIG1h
bmlmZXN0LndyaXRlKG1hbmlmZXN0X2ZpbGUsIHBhdGgpCisKKyAgICByZXR1cm4gWygiQ29udGVu
dC1UeXBlIiwgImFwcGxpY2F0aW9uL2pzb24iKV0sIGpzb24uZHVtcHMoeyJ1cmwiOiAiL01BTklG
RVNULmpzb24ifSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvdzNjLWltcG9ydC5sb2cK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDUxZWUyOWU2NzE0MWY3MDJhMjNmNzdkNzYxOTRhZWY3N2JlYjFlNwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcnVubmVyL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjMgQEAKK1RoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRo
dWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVy
L2luZGV4Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3J1bm5lci9sb2dvLnN2ZworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3JlcG9ydC5jc3MKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9yZXBvcnQucHkKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9ydW5uZXIu
Y3NzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9y
dW5uZXIvcnVubmVyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9ydW5uZXIvdXBkYXRlX21hbmlmZXN0LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvaWQycGF0
aC5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
c2NyaXB0cy9pZDJwYXRoLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5YjhkNjQ0YmM1MzNiZDQ4MDRlOWE0Nzg0
OWQ3ZjgwYzQ2ZGVjYTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvaWQycGF0aC5qcwpAQCAtMCwwICsx
LDEyIEBACisKK3ZhciBmcyA9IHJlcXVpcmUoImZzIikKKywgICBwdGggPSByZXF1aXJlKCJwYXRo
IikKKywgICBpZCA9IHByb2Nlc3MuYXJndlsyXQorOworCitpZiAoIWlkKSB7CisgICAgY29uc29s
ZS5sb2coIk1pc3NpbmcgSUQiKTsKKyAgICBwcm9jZXNzLmV4aXQoMSk7Cit9CisKK2NvbnNvbGUu
bG9nKEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHB0aC5qb2luKF9fZGlybmFtZSwgImlkMnBh
dGguanNvbiIpLCAidXRmOCIpKVtpZF0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL2lkMnBhdGguanNvbiBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy9p
ZDJwYXRoLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDkxYmQ4Njk0YzU3ZWM4YjNkZTZiOGIyMTdlNDAwMDIz
ZTc4NWE0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy9pZDJwYXRoLmpzb24KQEAgLTAsMCArMSw4MjIg
QEAKK3sKKyAgICAiaW50cm9kdWN0aW9uIjogIm1pY3JvZGF0YS9pbnRyb2R1Y3Rpb24iLAorICAg
ICJiYWNrZ3JvdW5kIjogImh0bWwvaW50cm9kdWN0aW9uL2JhY2tncm91bmQiLAorICAgICJhdWRp
ZW5jZSI6ICJodG1sL2ludHJvZHVjdGlvbi9hdWRpZW5jZSIsCisgICAgInNjb3BlIjogImh0bWwv
aW50cm9kdWN0aW9uL3Njb3BlIiwKKyAgICAiaGlzdG9yeS0wIjogImh0bWwvaW50cm9kdWN0aW9u
L2hpc3RvcnktMCIsCisgICAgImRlc2lnbi1ub3RlcyI6ICJodG1sL2ludHJvZHVjdGlvbi9kZXNp
Z24tbm90ZXMiLAorICAgICJzZXJpYWxpemFiaWxpdHktb2Ytc2NyaXB0LWV4ZWN1dGlvbiI6ICJo
dG1sL2ludHJvZHVjdGlvbi9kZXNpZ24tbm90ZXMvc2VyaWFsaXphYmlsaXR5LW9mLXNjcmlwdC1l
eGVjdXRpb24iLAorICAgICJjb21wbGlhbmNlLXdpdGgtb3RoZXItc3BlY2lmaWNhdGlvbnMiOiAi
aHRtbC9pbnRyb2R1Y3Rpb24vZGVzaWduLW5vdGVzL2NvbXBsaWFuY2Utd2l0aC1vdGhlci1zcGVj
aWZpY2F0aW9ucyIsCisgICAgImh0bWwtdnMteGh0bWwiOiAiaHRtbC9pbnRyb2R1Y3Rpb24vaHRt
bC12cy14aHRtbCIsCisgICAgInN0cnVjdHVyZS1vZi10aGlzLXNwZWNpZmljYXRpb24iOiAiaHRt
bC9pbnRyb2R1Y3Rpb24vc3RydWN0dXJlLW9mLXRoaXMtc3BlY2lmaWNhdGlvbiIsCisgICAgImhv
dy10by1yZWFkLXRoaXMtc3BlY2lmaWNhdGlvbiI6ICJodG1sL2ludHJvZHVjdGlvbi9zdHJ1Y3R1
cmUtb2YtdGhpcy1zcGVjaWZpY2F0aW9uL2hvdy10by1yZWFkLXRoaXMtc3BlY2lmaWNhdGlvbiIs
CisgICAgInR5cG9ncmFwaGljLWNvbnZlbnRpb25zIjogImh0bWwvaW50cm9kdWN0aW9uL3N0cnVj
dHVyZS1vZi10aGlzLXNwZWNpZmljYXRpb24vdHlwb2dyYXBoaWMtY29udmVudGlvbnMiLAorICAg
ICJmaW5nZXJwcmludCI6ICJodG1sL2ludHJvZHVjdGlvbi9maW5nZXJwcmludCIsCisgICAgImEt
cXVpY2staW50cm9kdWN0aW9uLXRvLWh0bWwiOiAiaHRtbC9pbnRyb2R1Y3Rpb24vYS1xdWljay1p
bnRyb2R1Y3Rpb24tdG8taHRtbCIsCisgICAgIndyaXRpbmctc2VjdXJlLWFwcGxpY2F0aW9ucy13
aXRoLWh0bWwiOiAiaHRtbC9pbnRyb2R1Y3Rpb24vYS1xdWljay1pbnRyb2R1Y3Rpb24tdG8taHRt
bC93cml0aW5nLXNlY3VyZS1hcHBsaWNhdGlvbnMtd2l0aC1odG1sIiwKKyAgICAiY29tbW9uLXBp
dGZhbGxzLXRvLWF2b2lkLXdoZW4tdXNpbmctdGhlLXNjcmlwdGluZy1hcGlzIjogImh0bWwvaW50
cm9kdWN0aW9uL2EtcXVpY2staW50cm9kdWN0aW9uLXRvLWh0bWwvY29tbW9uLXBpdGZhbGxzLXRv
LWF2b2lkLXdoZW4tdXNpbmctdGhlLXNjcmlwdGluZy1hcGlzIiwKKyAgICAiY29uZm9ybWFuY2Ut
cmVxdWlyZW1lbnRzLWZvci1hdXRob3JzIjogImh0bWwvaW50cm9kdWN0aW9uL2NvbmZvcm1hbmNl
LXJlcXVpcmVtZW50cy1mb3ItYXV0aG9ycyIsCisgICAgInByZXNlbnRhdGlvbmFsLW1hcmt1cCI6
ICJodG1sL2ludHJvZHVjdGlvbi9jb25mb3JtYW5jZS1yZXF1aXJlbWVudHMtZm9yLWF1dGhvcnMv
cHJlc2VudGF0aW9uYWwtbWFya3VwIiwKKyAgICAic3ludGF4LWVycm9ycyI6ICJodG1sL2ludHJv
ZHVjdGlvbi9jb25mb3JtYW5jZS1yZXF1aXJlbWVudHMtZm9yLWF1dGhvcnMvc3ludGF4LWVycm9y
cyIsCisgICAgInJlc3RyaWN0aW9ucy1vbi1jb250ZW50LW1vZGVscy1hbmQtb24tYXR0cmlidXRl
LXZhbHVlcyI6ICJodG1sL2ludHJvZHVjdGlvbi9jb25mb3JtYW5jZS1yZXF1aXJlbWVudHMtZm9y
LWF1dGhvcnMvcmVzdHJpY3Rpb25zLW9uLWNvbnRlbnQtbW9kZWxzLWFuZC1vbi1hdHRyaWJ1dGUt
dmFsdWVzIiwKKyAgICAic3VnZ2VzdGVkLXJlYWRpbmciOiAiaHRtbC9pbnRyb2R1Y3Rpb24vc3Vn
Z2VzdGVkLXJlYWRpbmciLAorICAgICJpbmZyYXN0cnVjdHVyZSI6ICJodG1sL2luZnJhc3RydWN0
dXJlIiwKKyAgICAidGVybWlub2xvZ3kiOiAibWljcm9kYXRhL3Rlcm1pbm9sb2d5IiwKKyAgICAi
cmVzb3VyY2VzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvdGVybWlub2xvZ3kvcmVzb3VyY2VzIiwK
KyAgICAieG1sIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvdGVybWlub2xvZ3kveG1sIiwKKyAgICAi
ZG9tLXRyZWVzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvdGVybWlub2xvZ3kvZG9tLXRyZWVzIiwK
KyAgICAic2NyaXB0aW5nLTAiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS90ZXJtaW5vbG9neS9zY3Jp
cHRpbmctMCIsCisgICAgInBsdWdpbnMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS90ZXJtaW5vbG9n
eS9wbHVnaW5zIiwKKyAgICAiY2hhcmFjdGVyLWVuY29kaW5ncyI6ICJodG1sL2luZnJhc3RydWN0
dXJlL3Rlcm1pbm9sb2d5L2NoYXJhY3Rlci1lbmNvZGluZ3MiLAorICAgICJjb25mb3JtYW5jZS1y
ZXF1aXJlbWVudHMiOiAibWljcm9kYXRhL2NvbmZvcm1hbmNlLXJlcXVpcmVtZW50cyIsCisgICAg
ImNvbmZvcm1hbmNlLWNsYXNzZXMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb25mb3JtYW5jZS1y
ZXF1aXJlbWVudHMvY29uZm9ybWFuY2UtY2xhc3NlcyIsCisgICAgImRlcGVuZGVuY2llcyI6ICJt
aWNyb2RhdGEvZGVwZW5kZW5jaWVzIiwKKyAgICAiZXh0ZW5zaWJpbGl0eSI6ICJodG1sL2luZnJh
c3RydWN0dXJlL2NvbmZvcm1hbmNlLXJlcXVpcmVtZW50cy9leHRlbnNpYmlsaXR5IiwKKyAgICAi
Y2FzZS1zZW5zaXRpdml0eS1hbmQtc3RyaW5nLWNvbXBhcmlzb24iOiAiaHRtbC9pbmZyYXN0cnVj
dHVyZS9jYXNlLXNlbnNpdGl2aXR5LWFuZC1zdHJpbmctY29tcGFyaXNvbiIsCisgICAgInV0Zi04
IjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvdXRmLTgiLAorICAgICJjb21tb24tbWljcm9zeW50YXhl
cyI6ICJodG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1taWNyb3N5bnRheGVzIiwKKyAgICAiY29t
bW9uLXBhcnNlci1pZGlvbXMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50
YXhlcy9jb21tb24tcGFyc2VyLWlkaW9tcyIsCisgICAgImJvb2xlYW4tYXR0cmlidXRlcyI6ICJo
dG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1taWNyb3N5bnRheGVzL2Jvb2xlYW4tYXR0cmlidXRl
cyIsCisgICAgImtleXdvcmRzLWFuZC1lbnVtZXJhdGVkLWF0dHJpYnV0ZXMiOiAiaHRtbC9pbmZy
YXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50YXhlcy9rZXl3b3Jkcy1hbmQtZW51bWVyYXRlZC1h
dHRyaWJ1dGVzIiwKKyAgICAibnVtYmVycyI6ICJodG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1t
aWNyb3N5bnRheGVzL251bWJlcnMiLAorICAgICJzaWduZWQtaW50ZWdlcnMiOiAiaHRtbC9pbmZy
YXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50YXhlcy9udW1iZXJzIiwKKyAgICAibm9uLW5lZ2F0
aXZlLWludGVnZXJzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9uLW1pY3Jvc3ludGF4ZXMv
bnVtYmVycyIsCisgICAgImZsb2F0aW5nLXBvaW50LW51bWJlcnMiOiAiaHRtbC9pbmZyYXN0cnVj
dHVyZS9jb21tb24tbWljcm9zeW50YXhlcy9udW1iZXJzIiwKKyAgICAicGVyY2VudGFnZXMtYW5k
LWRpbWVuc2lvbnMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50YXhlcy9u
dW1iZXJzIiwKKyAgICAibGlzdHMtb2YtaW50ZWdlcnMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9j
b21tb24tbWljcm9zeW50YXhlcy9udW1iZXJzIiwKKyAgICAibGlzdHMtb2YtZGltZW5zaW9ucyI6
ICJodG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1taWNyb3N5bnRheGVzL251bWJlcnMiLAorICAg
ICJkYXRlcy1hbmQtdGltZXMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50
YXhlcy9kYXRlcy1hbmQtdGltZXMiLAorICAgICJtb250aHMiOiAiaHRtbC9pbmZyYXN0cnVjdHVy
ZS9jb21tb24tbWljcm9zeW50YXhlcy9kYXRlcy1hbmQtdGltZXMiLAorICAgICJkYXRlcyI6ICJo
dG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1taWNyb3N5bnRheGVzL2RhdGVzLWFuZC10aW1lcyIs
CisgICAgInllYXJsZXNzLWRhdGVzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9uLW1pY3Jv
c3ludGF4ZXMvZGF0ZXMtYW5kLXRpbWVzIiwKKyAgICAidGltZXMiOiAiaHRtbC9pbmZyYXN0cnVj
dHVyZS9jb21tb24tbWljcm9zeW50YXhlcy9kYXRlcy1hbmQtdGltZXMiLAorICAgICJsb2NhbC1k
YXRlcy1hbmQtdGltZXMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50YXhl
cy9kYXRlcy1hbmQtdGltZXMiLAorICAgICJ0aW1lLXpvbmVzIjogImh0bWwvaW5mcmFzdHJ1Y3R1
cmUvY29tbW9uLW1pY3Jvc3ludGF4ZXMvZGF0ZXMtYW5kLXRpbWVzIiwKKyAgICAiZ2xvYmFsLWRh
dGVzLWFuZC10aW1lcyI6ICJodG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1taWNyb3N5bnRheGVz
L2RhdGVzLWFuZC10aW1lcyIsCisgICAgIndlZWtzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvY29t
bW9uLW1pY3Jvc3ludGF4ZXMvZGF0ZXMtYW5kLXRpbWVzIiwKKyAgICAiZHVyYXRpb25zIjogImh0
bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9uLW1pY3Jvc3ludGF4ZXMvZGF0ZXMtYW5kLXRpbWVzIiwK
KyAgICAidmFndWVyLW1vbWVudHMtaW4tdGltZSI6ICJodG1sL2luZnJhc3RydWN0dXJlL2NvbW1v
bi1taWNyb3N5bnRheGVzL2RhdGVzLWFuZC10aW1lcyIsCisgICAgImNvbG9ycyI6ICJodG1sL2lu
ZnJhc3RydWN0dXJlL2NvbW1vbi1taWNyb3N5bnRheGVzL2NvbG9ycyIsCisgICAgInNwYWNlLXNl
cGFyYXRlZC10b2tlbnMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50YXhl
cy9zcGFjZS1zZXBhcmF0ZWQtdG9rZW5zIiwKKyAgICAiY29tbWEtc2VwYXJhdGVkLXRva2VucyI6
ICJodG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1taWNyb3N5bnRheGVzL2NvbW1hLXNlcGFyYXRl
ZC10b2tlbnMiLAorICAgICJzeW50YXgtcmVmZXJlbmNlcyI6ICJodG1sL2luZnJhc3RydWN0dXJl
L2NvbW1vbi1taWNyb3N5bnRheGVzL3N5bnRheC1yZWZlcmVuY2VzIiwKKyAgICAibXEiOiAiaHRt
bC9pbmZyYXN0cnVjdHVyZS9jb21tb24tbWljcm9zeW50YXhlcy9tcSIsCisgICAgInVybHMiOiAi
aHRtbC9pbmZyYXN0cnVjdHVyZS91cmxzIiwKKyAgICAidGVybWlub2xvZ3ktMCI6ICJodG1sL2lu
ZnJhc3RydWN0dXJlL3VybHMvdGVybWlub2xvZ3ktMCIsCisgICAgInBhcnNpbmctdXJscyI6ICJo
dG1sL2luZnJhc3RydWN0dXJlL3VybHMvcGFyc2luZy11cmxzIiwKKyAgICAiYmFzZS11cmxzIjog
Imh0bWwvaW5mcmFzdHJ1Y3R1cmUvdXJscy9iYXNlLXVybHMiLAorICAgICJyZXNvbHZpbmctdXJs
cyI6ICJodG1sL2luZnJhc3RydWN0dXJlL3VybHMvcmVzb2x2aW5nLXVybHMiLAorICAgICJ1cmwt
bWFuaXB1bGF0aW9uLWFuZC1jcmVhdGlvbiI6ICJodG1sL2luZnJhc3RydWN0dXJlL3VybHMvdXJs
LW1hbmlwdWxhdGlvbi1hbmQtY3JlYXRpb24iLAorICAgICJkeW5hbWljLWNoYW5nZXMtdG8tYmFz
ZS11cmxzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvdXJscy9keW5hbWljLWNoYW5nZXMtdG8tYmFz
ZS11cmxzIiwKKyAgICAiaW50ZXJmYWNlcy1mb3ItdXJsLW1hbmlwdWxhdGlvbiI6ICJodG1sL2lu
ZnJhc3RydWN0dXJlL3VybHMvaW50ZXJmYWNlcy1mb3ItdXJsLW1hbmlwdWxhdGlvbiIsCisgICAg
ImZldGNoaW5nLXJlc291cmNlcyI6ICJodG1sL2luZnJhc3RydWN0dXJlL2ZldGNoaW5nLXJlc291
cmNlcyIsCisgICAgInRlcm1pbm9sb2d5LTEiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9mZXRjaGlu
Zy1yZXNvdXJjZXMvdGVybWlub2xvZ3ktMSIsCisgICAgInByb2Nlc3NpbmctbW9kZWwiOiAiaHRt
bC9pbmZyYXN0cnVjdHVyZS9mZXRjaGluZy1yZXNvdXJjZXMvcHJvY2Vzc2luZy1tb2RlbCIsCisg
ICAgImVuY3J5cHRlZC1odHRwLWFuZC1yZWxhdGVkLXNlY3VyaXR5LWNvbmNlcm5zIjogImh0bWwv
aW5mcmFzdHJ1Y3R1cmUvZmV0Y2hpbmctcmVzb3VyY2VzL2VuY3J5cHRlZC1odHRwLWFuZC1yZWxh
dGVkLXNlY3VyaXR5LWNvbmNlcm5zIiwKKyAgICAiY29udGVudC10eXBlLXNuaWZmaW5nIjogImh0
bWwvaW5mcmFzdHJ1Y3R1cmUvZmV0Y2hpbmctcmVzb3VyY2VzL2NvbnRlbnQtdHlwZS1zbmlmZmlu
ZyIsCisgICAgImV4dHJhY3RpbmctY2hhcmFjdGVyLWVuY29kaW5ncy1mcm9tLW1ldGEtZWxlbWVu
dHMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9mZXRjaGluZy1yZXNvdXJjZXMvZXh0cmFjdGluZy1j
aGFyYWN0ZXItZW5jb2RpbmdzLWZyb20tbWV0YS1lbGVtZW50cyIsCisgICAgImNvcnMtc2V0dGlu
Z3MtYXR0cmlidXRlcyI6ICJodG1sL2luZnJhc3RydWN0dXJlL2ZldGNoaW5nLXJlc291cmNlcy9j
b3JzLXNldHRpbmdzLWF0dHJpYnV0ZXMiLAorICAgICJjb3JzLWVuYWJsZWQtZmV0Y2giOiAiaHRt
bC9pbmZyYXN0cnVjdHVyZS9mZXRjaGluZy1yZXNvdXJjZXMvY29ycy1lbmFibGVkLWZldGNoIiwK
KyAgICAiY29tbW9uLWRvbS1pbnRlcmZhY2VzIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUvY29tbW9u
LWRvbS1pbnRlcmZhY2VzIiwKKyAgICAicmVmbGVjdGluZy1jb250ZW50LWF0dHJpYnV0ZXMtaW4t
aWRsLWF0dHJpYnV0ZXMiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tZG9tLWludGVyZmFj
ZXMvcmVmbGVjdGluZy1jb250ZW50LWF0dHJpYnV0ZXMtaW4taWRsLWF0dHJpYnV0ZXMiLAorICAg
ICJjb2xsZWN0aW9ucyI6ICJodG1sL2luZnJhc3RydWN0dXJlL2NvbW1vbi1kb20taW50ZXJmYWNl
cy9jb2xsZWN0aW9ucyIsCisgICAgImh0bWxhbGxjb2xsZWN0aW9uIjogImh0bWwvaW5mcmFzdHJ1
Y3R1cmUvY29tbW9uLWRvbS1pbnRlcmZhY2VzL2NvbGxlY3Rpb25zIiwKKyAgICAiaHRtbGZvcm1j
b250cm9sc2NvbGxlY3Rpb24iOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tZG9tLWludGVy
ZmFjZXMvY29sbGVjdGlvbnMiLAorICAgICJodG1sb3B0aW9uc2NvbGxlY3Rpb24iOiAiaHRtbC9p
bmZyYXN0cnVjdHVyZS9jb21tb24tZG9tLWludGVyZmFjZXMvY29sbGVjdGlvbnMiLAorICAgICJk
b21zdHJpbmdtYXAiOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tZG9tLWludGVyZmFjZXMv
ZG9tc3RyaW5nbWFwIiwKKyAgICAidHJhbnNmZXJhYmxlLW9iamVjdHMiOiAiaHRtbC9pbmZyYXN0
cnVjdHVyZS9jb21tb24tZG9tLWludGVyZmFjZXMvdHJhbnNmZXJhYmxlLW9iamVjdHMiLAorICAg
ICJzYWZlLXBhc3Npbmctb2Ytc3RydWN0dXJlZC1kYXRhIjogImh0bWwvaW5mcmFzdHJ1Y3R1cmUv
Y29tbW9uLWRvbS1pbnRlcmZhY2VzL3NhZmUtcGFzc2luZy1vZi1zdHJ1Y3R1cmVkLWRhdGEiLAor
ICAgICJnYXJiYWdlLWNvbGxlY3Rpb24iOiAiaHRtbC9pbmZyYXN0cnVjdHVyZS9jb21tb24tZG9t
LWludGVyZmFjZXMvZ2FyYmFnZS1jb2xsZWN0aW9uIiwKKyAgICAibmFtZXNwYWNlcyI6ICJodG1s
L2luZnJhc3RydWN0dXJlL25hbWVzcGFjZXMiLAorICAgICJkb20iOiAiaHRtbC9kb20iLAorICAg
ICJkb2N1bWVudHMiOiAiaHRtbC9kb20vZG9jdW1lbnRzIiwKKyAgICAidGhlLWRvY3VtZW50LW9i
amVjdCI6ICJodG1sL2RvbS9kb2N1bWVudHMvdGhlLWRvY3VtZW50LW9iamVjdCIsCisgICAgInNl
Y3VyaXR5LWRvY3VtZW50IjogImh0bWwvZG9tL2RvY3VtZW50cy9zZWN1cml0eS1kb2N1bWVudCIs
CisgICAgInJlc291cmNlLW1ldGFkYXRhLW1hbmFnZW1lbnQiOiAiaHRtbC9kb20vZG9jdW1lbnRz
L3Jlc291cmNlLW1ldGFkYXRhLW1hbmFnZW1lbnQiLAorICAgICJkb20tdHJlZS1hY2Nlc3NvcnMi
OiAiaHRtbC9kb20vZG9jdW1lbnRzL2RvbS10cmVlLWFjY2Vzc29ycyIsCisgICAgImxvYWRpbmct
eG1sLWRvY3VtZW50cyI6ICJodG1sL2RvbS9kb2N1bWVudHMvbG9hZGluZy14bWwtZG9jdW1lbnRz
IiwKKyAgICAiZWxlbWVudHMiOiAiaHRtbC9kb20vZWxlbWVudHMiLAorICAgICJzZW1hbnRpY3Mt
MCI6ICJodG1sL2RvbS9lbGVtZW50cy9zZW1hbnRpY3MtMCIsCisgICAgImVsZW1lbnRzLWluLXRo
ZS1kb20iOiAiaHRtbC9kb20vZWxlbWVudHMvZWxlbWVudHMtaW4tdGhlLWRvbSIsCisgICAgImds
b2JhbC1hdHRyaWJ1dGVzIjogImh0bWwvZG9tL2VsZW1lbnRzL2dsb2JhbC1hdHRyaWJ1dGVzIiwK
KyAgICAidGhlLWlkLWF0dHJpYnV0ZSI6ICJodG1sL2RvbS9lbGVtZW50cy9nbG9iYWwtYXR0cmli
dXRlcyIsCisgICAgInRoZS10aXRsZS1hdHRyaWJ1dGUiOiAiaHRtbC9kb20vZWxlbWVudHMvZ2xv
YmFsLWF0dHJpYnV0ZXMiLAorICAgICJ0aGUtbGFuZy1hbmQteG1sOmxhbmctYXR0cmlidXRlcyI6
ICJodG1sL2RvbS9lbGVtZW50cy9nbG9iYWwtYXR0cmlidXRlcyIsCisgICAgInRoZS10cmFuc2xh
dGUtYXR0cmlidXRlIjogImh0bWwvZG9tL2VsZW1lbnRzL2dsb2JhbC1hdHRyaWJ1dGVzIiwKKyAg
ICAidGhlLXhtbDpiYXNlLWF0dHJpYnV0ZS0oeG1sLW9ubHkpIjogImh0bWwvZG9tL2VsZW1lbnRz
L2dsb2JhbC1hdHRyaWJ1dGVzIiwKKyAgICAidGhlLWRpci1hdHRyaWJ1dGUiOiAiaHRtbC9kb20v
ZWxlbWVudHMvZ2xvYmFsLWF0dHJpYnV0ZXMiLAorICAgICJjbGFzc2VzIjogImh0bWwvZG9tL2Vs
ZW1lbnRzL2dsb2JhbC1hdHRyaWJ1dGVzIiwKKyAgICAidGhlLXN0eWxlLWF0dHJpYnV0ZSI6ICJo
dG1sL2RvbS9lbGVtZW50cy9nbG9iYWwtYXR0cmlidXRlcyIsCisgICAgImVtYmVkZGluZy1jdXN0
b20tbm9uLXZpc2libGUtZGF0YS13aXRoLXRoZS1kYXRhLSotYXR0cmlidXRlcyI6ICJodG1sL2Rv
bS9lbGVtZW50cy9nbG9iYWwtYXR0cmlidXRlcyIsCisgICAgImVsZW1lbnQtZGVmaW5pdGlvbnMi
OiAiaHRtbC9kb20vZWxlbWVudHMvZWxlbWVudC1kZWZpbml0aW9ucyIsCisgICAgImF0dHJpYnV0
ZXMiOiAiaHRtbC9kb20vZWxlbWVudHMvZWxlbWVudC1kZWZpbml0aW9ucyIsCisgICAgImNvbnRl
bnQtbW9kZWxzIjogImh0bWwvZG9tL2VsZW1lbnRzL2NvbnRlbnQtbW9kZWxzIiwKKyAgICAia2lu
ZHMtb2YtY29udGVudCI6ICJodG1sL2RvbS9lbGVtZW50cy9jb250ZW50LW1vZGVscyIsCisgICAg
Im1ldGFkYXRhLWNvbnRlbnQiOiAiaHRtbC9kb20vZWxlbWVudHMvY29udGVudC1tb2RlbHMiLAor
ICAgICJmbG93LWNvbnRlbnQiOiAiaHRtbC9kb20vZWxlbWVudHMvY29udGVudC1tb2RlbHMiLAor
ICAgICJzZWN0aW9uaW5nLWNvbnRlbnQiOiAiaHRtbC9kb20vZWxlbWVudHMvY29udGVudC1tb2Rl
bHMiLAorICAgICJoZWFkaW5nLWNvbnRlbnQiOiAiaHRtbC9kb20vZWxlbWVudHMvY29udGVudC1t
b2RlbHMiLAorICAgICJwaHJhc2luZy1jb250ZW50IjogImh0bWwvZG9tL2VsZW1lbnRzL2NvbnRl
bnQtbW9kZWxzIiwKKyAgICAiZW1iZWRkZWQtY29udGVudCI6ICJodG1sL2RvbS9lbGVtZW50cy9j
b250ZW50LW1vZGVscyIsCisgICAgImludGVyYWN0aXZlLWNvbnRlbnQiOiAiaHRtbC9kb20vZWxl
bWVudHMvY29udGVudC1tb2RlbHMiLAorICAgICJwYWxwYWJsZS1jb250ZW50IjogImh0bWwvZG9t
L2VsZW1lbnRzL2NvbnRlbnQtbW9kZWxzIiwKKyAgICAidHJhbnNwYXJlbnQtY29udGVudC1tb2Rl
bHMiOiAiaHRtbC9kb20vZWxlbWVudHMvY29udGVudC1tb2RlbHMiLAorICAgICJwYXJhZ3JhcGhz
IjogImh0bWwvZG9tL2VsZW1lbnRzL2NvbnRlbnQtbW9kZWxzIiwKKyAgICAicmVxdWlyZW1lbnRz
LXJlbGF0aW5nLXRvLWJpZGlyZWN0aW9uYWwtYWxnb3JpdGhtLWZvcm1hdHRpbmctY2hhcmFjdGVy
cyI6ICJodG1sL2RvbS9lbGVtZW50cy9yZXF1aXJlbWVudHMtcmVsYXRpbmctdG8tYmlkaXJlY3Rp
b25hbC1hbGdvcml0aG0tZm9ybWF0dGluZy1jaGFyYWN0ZXJzIiwKKyAgICAid2FpLWFyaWEiOiAi
aHRtbC9kb20vZWxlbWVudHMvd2FpLWFyaWEiLAorICAgICJhcmlhLXJvbGUtYXR0cmlidXRlIjog
Imh0bWwvZG9tL2VsZW1lbnRzL3dhaS1hcmlhIiwKKyAgICAic3RhdGUtYW5kLXByb3BlcnR5LWF0
dHJpYnV0ZXMiOiAiaHRtbC9kb20vZWxlbWVudHMvd2FpLWFyaWEiLAorICAgICJzZWMtc3Ryb25n
LW5hdGl2ZS1zZW1hbnRpY3MiOiAiaHRtbC9kb20vZWxlbWVudHMvd2FpLWFyaWEiLAorICAgICJz
ZWMtaW1wbGljaXQtYXJpYS1zZW1hbnRpY3MiOiAiaHRtbC9kb20vZWxlbWVudHMvd2FpLWFyaWEi
LAorICAgICJpbnRlcmFjdGlvbnMtd2l0aC14cGF0aC1hbmQteHNsdCI6ICJodG1sL2RvbS9pbnRl
cmFjdGlvbnMtd2l0aC14cGF0aC1hbmQteHNsdCIsCisgICAgImR5bmFtaWMtbWFya3VwLWluc2Vy
dGlvbiI6ICJodG1sL2RvbS9keW5hbWljLW1hcmt1cC1pbnNlcnRpb24iLAorICAgICJvcGVuaW5n
LXRoZS1pbnB1dC1zdHJlYW0iOiAiaHRtbC9kb20vZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uL29w
ZW5pbmctdGhlLWlucHV0LXN0cmVhbSIsCisgICAgImNsb3NpbmctdGhlLWlucHV0LXN0cmVhbSI6
ICJodG1sL2RvbS9keW5hbWljLW1hcmt1cC1pbnNlcnRpb24vY2xvc2luZy10aGUtaW5wdXQtc3Ry
ZWFtIiwKKyAgICAiZG9jdW1lbnQud3JpdGUoKSI6ICJodG1sL2RvbS9keW5hbWljLW1hcmt1cC1p
bnNlcnRpb24vZG9jdW1lbnQtd3JpdGUiLAorICAgICJkb2N1bWVudC53cml0ZWxuKCkiOiAiaHRt
bC9kb20vZHluYW1pYy1tYXJrdXAtaW5zZXJ0aW9uL2RvY3VtZW50LXdyaXRlbG4iLAorICAgICJz
ZW1hbnRpY3MiOiAiaHRtbC9zZW1hbnRpY3MiLAorICAgICJ0aGUtcm9vdC1lbGVtZW50IjogImh0
bWwvc2VtYW50aWNzL3RoZS1yb290LWVsZW1lbnQiLAorICAgICJ0aGUtaHRtbC1lbGVtZW50Ijog
Imh0bWwvc2VtYW50aWNzL3RoZS1yb290LWVsZW1lbnQvdGhlLWh0bWwtZWxlbWVudCIsCisgICAg
ImRvY3VtZW50LW1ldGFkYXRhIjogImh0bWwvc2VtYW50aWNzL2RvY3VtZW50LW1ldGFkYXRhIiwK
KyAgICAidGhlLWhlYWQtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9kb2N1bWVudC1tZXRhZGF0
YS90aGUtaGVhZC1lbGVtZW50IiwKKyAgICAidGhlLXRpdGxlLWVsZW1lbnQiOiAiaHRtbC9zZW1h
bnRpY3MvZG9jdW1lbnQtbWV0YWRhdGEvdGhlLXRpdGxlLWVsZW1lbnQiLAorICAgICJ0aGUtYmFz
ZS1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2RvY3VtZW50LW1ldGFkYXRhL3RoZS1iYXNlLWVs
ZW1lbnQiLAorICAgICJ0aGUtbGluay1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2RvY3VtZW50
LW1ldGFkYXRhL3RoZS1saW5rLWVsZW1lbnQiLAorICAgICJ0aGUtbWV0YS1lbGVtZW50IjogImh0
bWwvc2VtYW50aWNzL2RvY3VtZW50LW1ldGFkYXRhL3RoZS1tZXRhLWVsZW1lbnQiLAorICAgICJz
dGFuZGFyZC1tZXRhZGF0YS1uYW1lcyI6ICJodG1sL3NlbWFudGljcy9kb2N1bWVudC1tZXRhZGF0
YS90aGUtbWV0YS1lbGVtZW50IiwKKyAgICAib3RoZXItbWV0YWRhdGEtbmFtZXMiOiAiaHRtbC9z
ZW1hbnRpY3MvZG9jdW1lbnQtbWV0YWRhdGEvdGhlLW1ldGEtZWxlbWVudCIsCisgICAgInByYWdt
YS1kaXJlY3RpdmVzIjogImh0bWwvc2VtYW50aWNzL2RvY3VtZW50LW1ldGFkYXRhL3RoZS1tZXRh
LWVsZW1lbnQiLAorICAgICJvdGhlci1wcmFnbWEtZGlyZWN0aXZlcyI6ICJodG1sL3NlbWFudGlj
cy9kb2N1bWVudC1tZXRhZGF0YS90aGUtbWV0YS1lbGVtZW50IiwKKyAgICAiY2hhcnNldCI6ICJo
dG1sL3NlbWFudGljcy9kb2N1bWVudC1tZXRhZGF0YS90aGUtbWV0YS1lbGVtZW50IiwKKyAgICAi
dGhlLXN0eWxlLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZG9jdW1lbnQtbWV0YWRhdGEvdGhl
LXN0eWxlLWVsZW1lbnQiLAorICAgICJzdHlsaW5nIjogImh0bWwvc2VtYW50aWNzL2RvY3VtZW50
LW1ldGFkYXRhL3N0eWxpbmciLAorICAgICJzY3JpcHRpbmctMSI6ICJodG1sL3NlbWFudGljcy9z
Y3JpcHRpbmctMSIsCisgICAgInRoZS1zY3JpcHQtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9z
Y3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQiLAorICAgICJzY3JpcHRpbmdMYW5ndWFnZXMi
OiAiaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50IiwKKyAgICAi
cmVzdHJpY3Rpb25zLWZvci1jb250ZW50cy1vZi1zY3JpcHQtZWxlbWVudHMiOiAiaHRtbC9zZW1h
bnRpY3Mvc2NyaXB0aW5nLTEvdGhlLXNjcmlwdC1lbGVtZW50IiwKKyAgICAiaW5saW5lLWRvY3Vt
ZW50YXRpb24tZm9yLWV4dGVybmFsLXNjcmlwdHMiOiAiaHRtbC9zZW1hbnRpY3Mvc2NyaXB0aW5n
LTEvdGhlLXNjcmlwdC1lbGVtZW50IiwKKyAgICAic2NyaXB0VGFnWFNMVCI6ICJodG1sL3NlbWFu
dGljcy9zY3JpcHRpbmctMS90aGUtc2NyaXB0LWVsZW1lbnQiLAorICAgICJ0aGUtbm9zY3JpcHQt
ZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9zY3JpcHRpbmctMS90aGUtbm9zY3JpcHQtZWxlbWVu
dCIsCisgICAgInNlY3Rpb25zIjogImh0bWwvc2VtYW50aWNzL3NlY3Rpb25zIiwKKyAgICAidGhl
LWJvZHktZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9zZWN0aW9ucy90aGUtYm9keS1lbGVtZW50
IiwKKyAgICAidGhlLWFydGljbGUtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9zZWN0aW9ucy90
aGUtYXJ0aWNsZS1lbGVtZW50IiwKKyAgICAidGhlLXNlY3Rpb24tZWxlbWVudCI6ICJodG1sL3Nl
bWFudGljcy9zZWN0aW9ucy90aGUtc2VjdGlvbi1lbGVtZW50IiwKKyAgICAidGhlLW5hdi1lbGVt
ZW50IjogImh0bWwvc2VtYW50aWNzL3NlY3Rpb25zL3RoZS1uYXYtZWxlbWVudCIsCisgICAgInRo
ZS1hc2lkZS1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3NlY3Rpb25zL3RoZS1hc2lkZS1lbGVt
ZW50IiwKKyAgICAidGhlLWgxLC1oMiwtaDMsLWg0LC1oNSwtYW5kLWg2LWVsZW1lbnRzIjogImh0
bWwvc2VtYW50aWNzL3NlY3Rpb25zL3RoZS1oMS1oMi1oMy1oNC1oNS1hbmQtaDYtZWxlbWVudHMi
LAorICAgICJ0aGUtaGdyb3VwLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3Mvc2VjdGlvbnMvdGhl
LWhncm91cC1lbGVtZW50IiwKKyAgICAidGhlLWhlYWRlci1lbGVtZW50IjogImh0bWwvc2VtYW50
aWNzL3NlY3Rpb25zL3RoZS1oZWFkZXItZWxlbWVudCIsCisgICAgInRoZS1mb290ZXItZWxlbWVu
dCI6ICJodG1sL3NlbWFudGljcy9zZWN0aW9ucy90aGUtZm9vdGVyLWVsZW1lbnQiLAorICAgICJ0
aGUtYWRkcmVzcy1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3NlY3Rpb25zL3RoZS1hZGRyZXNz
LWVsZW1lbnQiLAorICAgICJoZWFkaW5ncy1hbmQtc2VjdGlvbnMiOiAiaHRtbC9zZW1hbnRpY3Mv
c2VjdGlvbnMvaGVhZGluZ3MtYW5kLXNlY3Rpb25zIiwKKyAgICAib3V0bGluZXMiOiAiaHRtbC9z
ZW1hbnRpY3Mvc2VjdGlvbnMvaGVhZGluZ3MtYW5kLXNlY3Rpb25zIiwKKyAgICAidXNhZ2Utc3Vt
bWFyeS0wIjogImh0bWwvc2VtYW50aWNzL3NlY3Rpb25zL3VzYWdlLXN1bW1hcnktMCIsCisgICAg
Imdyb3VwaW5nLWNvbnRlbnQiOiAiaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVudCIsCisg
ICAgInRoZS1wLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVudC90aGUt
cC1lbGVtZW50IiwKKyAgICAidGhlLWhyLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZ3JvdXBp
bmctY29udGVudC90aGUtaHItZWxlbWVudCIsCisgICAgInRoZS1wcmUtZWxlbWVudCI6ICJodG1s
L3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1wcmUtZWxlbWVudCIsCisgICAgInRoZS1i
bG9ja3F1b3RlLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVudC90aGUt
YmxvY2txdW90ZS1lbGVtZW50IiwKKyAgICAidGhlLW9sLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRp
Y3MvZ3JvdXBpbmctY29udGVudC90aGUtb2wtZWxlbWVudCIsCisgICAgInRoZS11bC1lbGVtZW50
IjogImh0bWwvc2VtYW50aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhlLXVsLWVsZW1lbnQiLAorICAg
ICJ0aGUtbGktZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1s
aS1lbGVtZW50IiwKKyAgICAidGhlLWRsLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZ3JvdXBp
bmctY29udGVudC90aGUtZGwtZWxlbWVudCIsCisgICAgInRoZS1kdC1lbGVtZW50IjogImh0bWwv
c2VtYW50aWNzL2dyb3VwaW5nLWNvbnRlbnQvdGhlLWR0LWVsZW1lbnQiLAorICAgICJ0aGUtZGQt
ZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1kZC1lbGVtZW50
IiwKKyAgICAidGhlLWZpZ3VyZS1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2dyb3VwaW5nLWNv
bnRlbnQvdGhlLWZpZ3VyZS1lbGVtZW50IiwKKyAgICAidGhlLWZpZ2NhcHRpb24tZWxlbWVudCI6
ICJodG1sL3NlbWFudGljcy9ncm91cGluZy1jb250ZW50L3RoZS1maWdjYXB0aW9uLWVsZW1lbnQi
LAorICAgICJ0aGUtZGl2LWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZ3JvdXBpbmctY29udGVu
dC90aGUtZGl2LWVsZW1lbnQiLAorICAgICJ0ZXh0LWxldmVsLXNlbWFudGljcyI6ICJodG1sL3Nl
bWFudGljcy90ZXh0LWxldmVsLXNlbWFudGljcyIsCisgICAgInRoZS1hLWVsZW1lbnQiOiAiaHRt
bC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLWEtZWxlbWVudCIsCisgICAgInRo
ZS1lbS1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1l
bS1lbGVtZW50IiwKKyAgICAidGhlLXN0cm9uZy1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3Rl
eHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1zdHJvbmctZWxlbWVudCIsCisgICAgInRoZS1zbWFsbC1l
bGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1zbWFsbC1l
bGVtZW50IiwKKyAgICAidGhlLXMtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy90ZXh0LWxldmVs
LXNlbWFudGljcy90aGUtcy1lbGVtZW50IiwKKyAgICAidGhlLWNpdGUtZWxlbWVudCI6ICJodG1s
L3NlbWFudGljcy90ZXh0LWxldmVsLXNlbWFudGljcy90aGUtY2l0ZS1lbGVtZW50IiwKKyAgICAi
dGhlLXEtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy90ZXh0LWxldmVsLXNlbWFudGljcy90aGUt
cS1lbGVtZW50IiwKKyAgICAidGhlLWRmbi1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RleHQt
bGV2ZWwtc2VtYW50aWNzL3RoZS1kZm4tZWxlbWVudCIsCisgICAgInRoZS1hYmJyLWVsZW1lbnQi
OiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLWFiYnItZWxlbWVudCIs
CisgICAgInRoZS10aW1lLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1h
bnRpY3MvdGhlLXRpbWUtZWxlbWVudCIsCisgICAgInRoZS1jb2RlLWVsZW1lbnQiOiAiaHRtbC9z
ZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLWNvZGUtZWxlbWVudCIsCisgICAgInRo
ZS12YXItZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy90ZXh0LWxldmVsLXNlbWFudGljcy90aGUt
dmFyLWVsZW1lbnQiLAorICAgICJ0aGUtc2FtcC1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3Rl
eHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1zYW1wLWVsZW1lbnQiLAorICAgICJ0aGUta2JkLWVsZW1l
bnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLWtiZC1lbGVtZW50
IiwKKyAgICAidGhlLXN1Yi1hbmQtc3VwLWVsZW1lbnRzIjogImh0bWwvc2VtYW50aWNzL3RleHQt
bGV2ZWwtc2VtYW50aWNzL3RoZS1zdWItYW5kLXN1cC1lbGVtZW50cyIsCisgICAgInRoZS1pLWVs
ZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLWktZWxlbWVu
dCIsCisgICAgInRoZS1iLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1h
bnRpY3MvdGhlLWItZWxlbWVudCIsCisgICAgInRoZS11LWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRp
Y3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLXUtZWxlbWVudCIsCisgICAgInRoZS1tYXJrLWVs
ZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhlLW1hcmstZWxl
bWVudCIsCisgICAgInRoZS1ydWJ5LWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZl
bC1zZW1hbnRpY3MvdGhlLXJ1YnktZWxlbWVudCIsCisgICAgInRoZS1ydC1lbGVtZW50IjogImh0
bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1ydC1lbGVtZW50IiwKKyAgICAi
dGhlLXJwLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3MvdGhl
LXJwLWVsZW1lbnQiLAorICAgICJ0aGUtYmRpLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4
dC1sZXZlbC1zZW1hbnRpY3MvdGhlLWJkaS1lbGVtZW50IiwKKyAgICAidGhlLWJkby1lbGVtZW50
IjogImh0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1iZG8tZWxlbWVudCIs
CisgICAgInRoZS1zcGFuLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1h
bnRpY3MvdGhlLXNwYW4tZWxlbWVudCIsCisgICAgInRoZS1ici1lbGVtZW50IjogImh0bWwvc2Vt
YW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS1ici1lbGVtZW50IiwKKyAgICAidGhlLXdi
ci1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNzL3RoZS13YnIt
ZWxlbWVudCIsCisgICAgInVzYWdlLXN1bW1hcnkiOiAiaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZl
bC1zZW1hbnRpY3MvdXNhZ2Utc3VtbWFyeSIsCisgICAgImVkaXRzIjogImh0bWwvc2VtYW50aWNz
L2VkaXRzIiwKKyAgICAidGhlLWlucy1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2VkaXRzL3Ro
ZS1pbnMtZWxlbWVudCIsCisgICAgInRoZS1kZWwtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9l
ZGl0cy90aGUtZGVsLWVsZW1lbnQiLAorICAgICJhdHRyaWJ1dGVzLWNvbW1vbi10by1pbnMtYW5k
LWRlbC1lbGVtZW50cyI6ICJodG1sL3NlbWFudGljcy9lZGl0cy9hdHRyaWJ1dGVzLWNvbW1vbi10
by1pbnMtYW5kLWRlbC1lbGVtZW50cyIsCisgICAgImVkaXRzLWFuZC1wYXJhZ3JhcGhzIjogImh0
bWwvc2VtYW50aWNzL2VkaXRzL2VkaXRzLWFuZC1wYXJhZ3JhcGhzIiwKKyAgICAiZWRpdHMtYW5k
LWxpc3RzIjogImh0bWwvc2VtYW50aWNzL2VkaXRzL2VkaXRzLWFuZC1saXN0cyIsCisgICAgImVk
aXRzLWFuZC10YWJsZXMiOiAiaHRtbC9zZW1hbnRpY3MvZWRpdHMvZWRpdHMtYW5kLXRhYmxlcyIs
CisgICAgImVtYmVkZGVkLWNvbnRlbnQtMCI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50LTAiLAorICAgICJ0aGUtaW1nLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC0wL3RoZS1pbWctZWxlbWVudCIsCisgICAgImFsdCI6ICJodG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50LTAvdGhlLWltZy1lbGVtZW50IiwKKyAgICAiZ2VuZXJhbC1ndWlkZWxp
bmVzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC90aGUtaW1nLWVsZW1lbnQi
LAorICAgICJhLWxpbmstb3ItYnV0dG9uLWNvbnRhaW5pbmctbm90aGluZy1idXQtdGhlLWltYWdl
IjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC90aGUtaW1nLWVsZW1lbnQiLAor
ICAgICJhLXBocmFzZS1vci1wYXJhZ3JhcGgtd2l0aC1hbi1hbHRlcm5hdGl2ZS1ncmFwaGljYWwt
cmVwcmVzZW50YXRpb246LWNoYXJ0cywtZGlhZ3JhbXMsLWdyYXBocywtbWFwcywtaWxsdXN0cmF0
aW9ucyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvdGhlLWltZy1lbGVtZW50
IiwKKyAgICAiYS1zaG9ydC1waHJhc2Utb3ItbGFiZWwtd2l0aC1hbi1hbHRlcm5hdGl2ZS1ncmFw
aGljYWwtcmVwcmVzZW50YXRpb246LWljb25zLC1sb2dvcyI6ICJodG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50LTAvdGhlLWltZy1lbGVtZW50IiwKKyAgICAidGV4dC10aGF0LWhhcy1iZWVu
LXJlbmRlcmVkLXRvLWEtZ3JhcGhpYy1mb3ItdHlwb2dyYXBoaWNhbC1lZmZlY3QiOiAiaHRtbC9z
ZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1pbWctZWxlbWVudCIsCisgICAgImEtZ3Jh
cGhpY2FsLXJlcHJlc2VudGF0aW9uLW9mLXNvbWUtb2YtdGhlLXN1cnJvdW5kaW5nLXRleHQiOiAi
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1pbWctZWxlbWVudCIsCisgICAg
ImEtcHVyZWx5LWRlY29yYXRpdmUtaW1hZ2UtdGhhdC1kb2Vzbid0LWFkZC1hbnktaW5mb3JtYXRp
b24iOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1pbWctZWxlbWVudCIs
CisgICAgImEtZ3JvdXAtb2YtaW1hZ2VzLXRoYXQtZm9ybS1hLXNpbmdsZS1sYXJnZXItcGljdHVy
ZS13aXRoLW5vLWxpbmtzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC90aGUt
aW1nLWVsZW1lbnQiLAorICAgICJhLWdyb3VwLW9mLWltYWdlcy10aGF0LWZvcm0tYS1zaW5nbGUt
bGFyZ2VyLXBpY3R1cmUtd2l0aC1saW5rcyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50LTAvdGhlLWltZy1lbGVtZW50IiwKKyAgICAiYS1rZXktcGFydC1vZi10aGUtY29udGVudCI6
ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvdGhlLWltZy1lbGVtZW50IiwKKyAg
ICAiYW4taW1hZ2Utbm90LWludGVuZGVkLWZvci10aGUtdXNlciI6ICJodG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50LTAvdGhlLWltZy1lbGVtZW50IiwKKyAgICAiZ3VpZGFuY2UtZm9yLW1h
cmt1cC1nZW5lcmF0b3JzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC90aGUt
aW1nLWVsZW1lbnQiLAorICAgICJndWlkYW5jZS1mb3ItY29uZm9ybWFuY2UtY2hlY2tlcnMiOiAi
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1pbWctZWxlbWVudCIsCisgICAg
InRoZS1pZnJhbWUtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAv
dGhlLWlmcmFtZS1lbGVtZW50IiwKKyAgICAidGhlLWVtYmVkLWVsZW1lbnQiOiAiaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1lbWJlZC1lbGVtZW50IiwKKyAgICAidGhlLW9i
amVjdC1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC90aGUtb2Jq
ZWN0LWVsZW1lbnQiLAorICAgICJ0aGUtcGFyYW0tZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50LTAvdGhlLXBhcmFtLWVsZW1lbnQiLAorICAgICJ0aGUtdmlkZW8tZWxl
bWVudCI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvdGhlLXZpZGVvLWVsZW1l
bnQiLAorICAgICJ0aGUtYXVkaW8tZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1j
b250ZW50LTAvdGhlLWF1ZGlvLWVsZW1lbnQiLAorICAgICJ0aGUtc291cmNlLWVsZW1lbnQiOiAi
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1zb3VyY2UtZWxlbWVudCIsCisg
ICAgInRoZS10cmFjay1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQt
MC90aGUtdHJhY2stZWxlbWVudCIsCisgICAgIm1lZGlhLWVsZW1lbnRzIjogImh0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCisgICAgImVycm9yLWNvZGVz
IjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCisg
ICAgImxvY2F0aW9uLW9mLXRoZS1tZWRpYS1yZXNvdXJjZSI6ICJodG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50LTAvbWVkaWEtZWxlbWVudHMiLAorICAgICJtaW1lLXR5cGVzIjogImh0bWwv
c2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCisgICAgIm5ldHdv
cmstc3RhdGVzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVt
ZW50cyIsCisgICAgImxvYWRpbmctdGhlLW1lZGlhLXJlc291cmNlIjogImh0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCisgICAgIm9mZnNldHMtaW50by10
aGUtbWVkaWEtcmVzb3VyY2UiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21l
ZGlhLWVsZW1lbnRzIiwKKyAgICAicmVhZHktc3RhdGVzIjogImh0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCisgICAgInBsYXlpbmctdGhlLW1lZGlhLXJl
c291cmNlIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50
cyIsCisgICAgInNlZWtpbmciOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21l
ZGlhLWVsZW1lbnRzIiwKKyAgICAibWVkaWEtcmVzb3VyY2VzLXdpdGgtbXVsdGlwbGUtbWVkaWEt
dHJhY2tzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50
cyIsCisgICAgImF1ZGlvdHJhY2tsaXN0LWFuZC12aWRlb3RyYWNrbGlzdC1vYmplY3RzIjogImh0
bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIsCisgICAgInNl
bGVjdGluZy1zcGVjaWZpYy1hdWRpby1hbmQtdmlkZW8tdHJhY2tzLWRlY2xhcmF0aXZlbHkiOiAi
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21lZGlhLWVsZW1lbnRzIiwKKyAgICAi
c3luY2hyb25pc2luZy1tdWx0aXBsZS1tZWRpYS1lbGVtZW50cyI6ICJodG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50LTAvbWVkaWEtZWxlbWVudHMiLAorICAgICJpbnRyb2R1Y3Rpb24tMCI6
ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvbWVkaWEtZWxlbWVudHMiLAorICAg
ICJtZWRpYS1jb250cm9sbGVycyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAv
bWVkaWEtZWxlbWVudHMiLAorICAgICJhc3NpZ25pbmctYS1tZWRpYS1jb250cm9sbGVyLWRlY2xh
cmF0aXZlbHkiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21lZGlhLWVsZW1l
bnRzIiwKKyAgICAidGltZWQtdGV4dC10cmFja3MiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQt
Y29udGVudC0wL21lZGlhLWVsZW1lbnRzIiwKKyAgICAidGV4dC10cmFjay1tb2RlbCI6ICJodG1s
L3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvbWVkaWEtZWxlbWVudHMiLAorICAgICJzb3Vy
Y2luZy1pbi1iYW5kLXRleHQtdHJhY2tzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRl
bnQtMC9tZWRpYS1lbGVtZW50cyIsCisgICAgInNvdXJjaW5nLW91dC1vZi1iYW5kLXRleHQtdHJh
Y2tzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1lbGVtZW50cyIs
CisgICAgImd1aWRlbGluZXMtZm9yLWV4cG9zaW5nLWN1ZXMtaW4tdmFyaW91cy1mb3JtYXRzLWFz
LXRleHQtdHJhY2stY3VlcyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvbWVk
aWEtZWxlbWVudHMiLAorICAgICJ0ZXh0LXRyYWNrLWFwaSI6ICJodG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50LTAvbWVkaWEtZWxlbWVudHMiLAorICAgICJ0ZXh0LXRyYWNrcy1kZXNjcmli
aW5nLWNoYXB0ZXJzIjogImh0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQtMC9tZWRpYS1l
bGVtZW50cyIsCisgICAgImN1ZS1ldmVudHMiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29u
dGVudC0wL21lZGlhLWVsZW1lbnRzIiwKKyAgICAidXNlci1pbnRlcmZhY2UiOiAiaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21lZGlhLWVsZW1lbnRzIiwKKyAgICAidGltZS1yYW5n
ZXMiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21lZGlhLWVsZW1lbnRzIiwK
KyAgICAiZXZlbnQtZGVmaW5pdGlvbnMiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC0wL21lZGlhLWVsZW1lbnRzIiwKKyAgICAibWVkaWFldmVudHMiOiAiaHRtbC9zZW1hbnRpY3Mv
ZW1iZWRkZWQtY29udGVudC0wL21lZGlhLWVsZW1lbnRzIiwKKyAgICAic2VjdXJpdHktYW5kLXBy
aXZhY3ktY29uc2lkZXJhdGlvbnMiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0w
L21lZGlhLWVsZW1lbnRzIiwKKyAgICAiYmVzdC1wcmFjdGljZXMtZm9yLWF1dGhvcnMtdXNpbmct
bWVkaWEtZWxlbWVudHMiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL21lZGlh
LWVsZW1lbnRzIiwKKyAgICAiYmVzdC1wcmFjdGljZXMtZm9yLWltcGxlbWVudG9ycy1vZi1tZWRp
YS1lbGVtZW50cyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvbWVkaWEtZWxl
bWVudHMiLAorICAgICJ0aGUtY2FudmFzLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC0wL3RoZS1jYW52YXMtZWxlbWVudCIsCisgICAgImNvbG9yLXNwYWNlcy1hbmQt
Y29sb3ItY29ycmVjdGlvbiI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAvdGhl
LWNhbnZhcy1lbGVtZW50IiwKKyAgICAic2VjdXJpdHktd2l0aC1jYW52YXMtZWxlbWVudHMiOiAi
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL3RoZS1jYW52YXMtZWxlbWVudCIsCisg
ICAgInRoZS1tYXAtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50LTAv
dGhlLW1hcC1lbGVtZW50IiwKKyAgICAidGhlLWFyZWEtZWxlbWVudCI6ICJodG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50LTAvdGhlLWFyZWEtZWxlbWVudCIsCisgICAgImltYWdlLW1hcHMi
OiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL2ltYWdlLW1hcHMiLAorICAgICJh
dXRob3JpbmciOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC0wL2ltYWdlLW1hcHMi
LAorICAgICJwcm9jZXNzaW5nLW1vZGVsLTAiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29u
dGVudC0wL2ltYWdlLW1hcHMiLAorICAgICJtYXRobWwiOiAiaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC0wL21hdGhtbCIsCisgICAgInN2ZyI6ICJodG1sL3NlbWFudGljcy9lbWJlZGRl
ZC1jb250ZW50LTAvc3ZnIiwKKyAgICAiZGltZW5zaW9uLWF0dHJpYnV0ZXMiOiAiaHRtbC9zZW1h
bnRpY3MvZW1iZWRkZWQtY29udGVudC0wL2RpbWVuc2lvbi1hdHRyaWJ1dGVzIiwKKyAgICAidGFi
dWxhci1kYXRhIjogImh0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YSIsCisgICAgInRoZS10YWJs
ZS1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGFibGUtZWxlbWVu
dCIsCisgICAgInRhYmxlLWRlc2NyaXB0aW9ucy10ZWNobmlxdWVzIjogImh0bWwvc2VtYW50aWNz
L3RhYnVsYXItZGF0YS90aGUtdGFibGUtZWxlbWVudCIsCisgICAgInRhYmxlLWxheW91dC10ZWNo
bmlxdWVzIjogImh0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGFibGUtZWxlbWVudCIs
CisgICAgInRoZS1jYXB0aW9uLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRh
L3RoZS1jYXB0aW9uLWVsZW1lbnQiLAorICAgICJ0aGUtY29sZ3JvdXAtZWxlbWVudCI6ICJodG1s
L3NlbWFudGljcy90YWJ1bGFyLWRhdGEvdGhlLWNvbGdyb3VwLWVsZW1lbnQiLAorICAgICJ0aGUt
Y29sLWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRhL3RoZS1jb2wtZWxlbWVu
dCIsCisgICAgInRoZS10Ym9keS1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0
YS90aGUtdGJvZHktZWxlbWVudCIsCisgICAgInRoZS10aGVhZC1lbGVtZW50IjogImh0bWwvc2Vt
YW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGhlYWQtZWxlbWVudCIsCisgICAgInRoZS10Zm9vdC1l
bGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGZvb3QtZWxlbWVudCIs
CisgICAgInRoZS10ci1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS90aGUt
dHItZWxlbWVudCIsCisgICAgInRoZS10ZC1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL3RhYnVs
YXItZGF0YS90aGUtdGQtZWxlbWVudCIsCisgICAgInRoZS10aC1lbGVtZW50IjogImh0bWwvc2Vt
YW50aWNzL3RhYnVsYXItZGF0YS90aGUtdGgtZWxlbWVudCIsCisgICAgImF0dHJpYnV0ZXMtY29t
bW9uLXRvLXRkLWFuZC10aC1lbGVtZW50cyI6ICJodG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEv
YXR0cmlidXRlcy1jb21tb24tdG8tdGQtYW5kLXRoLWVsZW1lbnRzIiwKKyAgICAicHJvY2Vzc2lu
Zy1tb2RlbC0xIjogImh0bWwvc2VtYW50aWNzL3RhYnVsYXItZGF0YS9wcm9jZXNzaW5nLW1vZGVs
LTEiLAorICAgICJmb3JtaW5nLWEtdGFibGUiOiAiaHRtbC9zZW1hbnRpY3MvdGFidWxhci1kYXRh
L3Byb2Nlc3NpbmctbW9kZWwtMSIsCisgICAgImhlYWRlci1hbmQtZGF0YS1jZWxsLXNlbWFudGlj
cyI6ICJodG1sL3NlbWFudGljcy90YWJ1bGFyLWRhdGEvcHJvY2Vzc2luZy1tb2RlbC0xIiwKKyAg
ICAiZXhhbXBsZXMiOiAiY2FudmFzMmQvZXhhbXBsZXMiLAorICAgICJmb3JtcyI6ICJodG1sL3Nl
bWFudGljcy9mb3JtcyIsCisgICAgImludHJvZHVjdGlvbi0xIjogImh0bWwvc2VtYW50aWNzL2Zv
cm1zL2ludHJvZHVjdGlvbi0xIiwKKyAgICAid3JpdGluZy1hLWZvcm0ncy11c2VyLWludGVyZmFj
ZSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy9pbnRyb2R1Y3Rpb24tMSIsCisgICAgImltcGxlbWVu
dGluZy10aGUtc2VydmVyLXNpZGUtcHJvY2Vzc2luZy1mb3ItYS1mb3JtIjogImh0bWwvc2VtYW50
aWNzL2Zvcm1zL2ludHJvZHVjdGlvbi0xIiwKKyAgICAiY29uZmlndXJpbmctYS1mb3JtLXRvLWNv
bW11bmljYXRlLXdpdGgtYS1zZXJ2ZXIiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvaW50cm9kdWN0
aW9uLTEiLAorICAgICJjbGllbnQtc2lkZS1mb3JtLXZhbGlkYXRpb24iOiAiaHRtbC9zZW1hbnRp
Y3MvZm9ybXMvaW50cm9kdWN0aW9uLTEiLAorICAgICJlbmFibGluZy1jbGllbnQtc2lkZS1hdXRv
bWF0aWMtZmlsbGluZy1vZi1mb3JtLWNvbnRyb2xzIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2lu
dHJvZHVjdGlvbi0xIiwKKyAgICAiaW1wcm92aW5nLXRoZS11c2VyLWV4cGVyaWVuY2Utb24tbW9i
aWxlLWRldmljZXMiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvaW50cm9kdWN0aW9uLTEiLAorICAg
ICJ0aGUtZGlmZmVyZW5jZS1iZXR3ZWVuLXRoZS1maWVsZC10eXBlLC10aGUtYXV0b2ZpbGwtZmll
bGQtbmFtZSwtYW5kLXRoZS1pbnB1dC1tb2RhbGl0eSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy9p
bnRyb2R1Y3Rpb24tMSIsCisgICAgImlucHV0LWF1dGhvci1ub3RlcyI6ICJodG1sL3NlbWFudGlj
cy9mb3Jtcy9pbnRyb2R1Y3Rpb24tMSIsCisgICAgImNhdGVnb3JpZXMiOiAiaHRtbC9zZW1hbnRp
Y3MvZm9ybXMvY2F0ZWdvcmllcyIsCisgICAgInRoZS1mb3JtLWVsZW1lbnQiOiAiaHRtbC9zZW1h
bnRpY3MvZm9ybXMvdGhlLWZvcm0tZWxlbWVudCIsCisgICAgInRoZS1maWVsZHNldC1lbGVtZW50
IjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1maWVsZHNldC1lbGVtZW50IiwKKyAgICAidGhl
LWxlZ2VuZC1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1sZWdlbmQtZWxlbWVu
dCIsCisgICAgInRoZS1sYWJlbC1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1s
YWJlbC1lbGVtZW50IiwKKyAgICAidGhlLWlucHV0LWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3Mv
Zm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAorICAgICJzdGF0ZXMtb2YtdGhlLXR5cGUtYXR0cmli
dXRlIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50IiwKKyAgICAiaGlk
ZGVuLXN0YXRlLSh0eXBlPWhpZGRlbikiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0
LWVsZW1lbnQiLAorICAgICJ0ZXh0LSh0eXBlPXRleHQpLXN0YXRlLWFuZC1zZWFyY2gtc3RhdGUt
KHR5cGU9c2VhcmNoKSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIs
CisgICAgInRlbGVwaG9uZS1zdGF0ZS0odHlwZT10ZWwpIjogImh0bWwvc2VtYW50aWNzL2Zvcm1z
L3RoZS1pbnB1dC1lbGVtZW50IiwKKyAgICAidXJsLXN0YXRlLSh0eXBlPXVybCkiOiAiaHRtbC9z
ZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAorICAgICJlLW1haWwtc3RhdGUtKHR5
cGU9ZW1haWwpIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50IiwKKyAg
ICAicGFzc3dvcmQtc3RhdGUtKHR5cGU9cGFzc3dvcmQpIjogImh0bWwvc2VtYW50aWNzL2Zvcm1z
L3RoZS1pbnB1dC1lbGVtZW50IiwKKyAgICAiZGF0ZS1hbmQtdGltZS1zdGF0ZS0odHlwZT1kYXRl
dGltZSkiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAorICAgICJk
YXRlLXN0YXRlLSh0eXBlPWRhdGUpIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1l
bGVtZW50IiwKKyAgICAibW9udGgtc3RhdGUtKHR5cGU9bW9udGgpIjogImh0bWwvc2VtYW50aWNz
L2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50IiwKKyAgICAid2Vlay1zdGF0ZS0odHlwZT13ZWVrKSI6
ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCisgICAgInRpbWUtc3Rh
dGUtKHR5cGU9dGltZSkiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQi
LAorICAgICJsb2NhbC1kYXRlLWFuZC10aW1lLXN0YXRlLSh0eXBlPWRhdGV0aW1lLWxvY2FsKSI6
ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCisgICAgIm51bWJlci1z
dGF0ZS0odHlwZT1udW1iZXIpIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVt
ZW50IiwKKyAgICAicmFuZ2Utc3RhdGUtKHR5cGU9cmFuZ2UpIjogImh0bWwvc2VtYW50aWNzL2Zv
cm1zL3RoZS1pbnB1dC1lbGVtZW50IiwKKyAgICAiY29sb3Itc3RhdGUtKHR5cGU9Y29sb3IpIjog
Imh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50IiwKKyAgICAiY2hlY2tib3gt
c3RhdGUtKHR5cGU9Y2hlY2tib3gpIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1l
bGVtZW50IiwKKyAgICAicmFkaW8tYnV0dG9uLXN0YXRlLSh0eXBlPXJhZGlvKSI6ICJodG1sL3Nl
bWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCisgICAgImZpbGUtdXBsb2FkLXN0YXRl
LSh0eXBlPWZpbGUpIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50IiwK
KyAgICAic3VibWl0LWJ1dHRvbi1zdGF0ZS0odHlwZT1zdWJtaXQpIjogImh0bWwvc2VtYW50aWNz
L2Zvcm1zL3RoZS1pbnB1dC1lbGVtZW50IiwKKyAgICAiaW1hZ2UtYnV0dG9uLXN0YXRlLSh0eXBl
PWltYWdlKSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCisgICAg
InJlc2V0LWJ1dHRvbi1zdGF0ZS0odHlwZT1yZXNldCkiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMv
dGhlLWlucHV0LWVsZW1lbnQiLAorICAgICJidXR0b24tc3RhdGUtKHR5cGU9YnV0dG9uKSI6ICJo
dG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCisgICAgImlucHV0LWltcGwt
bm90ZXMiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAorICAgICJj
b21tb24taW5wdXQtZWxlbWVudC1hdHRyaWJ1dGVzIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3Ro
ZS1pbnB1dC1lbGVtZW50IiwKKyAgICAidGhlLW1heGxlbmd0aC1hdHRyaWJ1dGUiOiAiaHRtbC9z
ZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAorICAgICJ0aGUtc2l6ZS1hdHRyaWJ1
dGUiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAorICAgICJ0aGUt
cmVhZG9ubHktYXR0cmlidXRlIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1pbnB1dC1lbGVt
ZW50IiwKKyAgICAidGhlLXJlcXVpcmVkLWF0dHJpYnV0ZSI6ICJodG1sL3NlbWFudGljcy9mb3Jt
cy90aGUtaW5wdXQtZWxlbWVudCIsCisgICAgInRoZS1tdWx0aXBsZS1hdHRyaWJ1dGUiOiAiaHRt
bC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAorICAgICJ0aGUtcGF0dGVybi1h
dHRyaWJ1dGUiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQiLAorICAg
ICJ0aGUtbWluLWFuZC1tYXgtYXR0cmlidXRlcyI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUt
aW5wdXQtZWxlbWVudCIsCisgICAgInRoZS1zdGVwLWF0dHJpYnV0ZSI6ICJodG1sL3NlbWFudGlj
cy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCisgICAgInRoZS1saXN0LWF0dHJpYnV0ZSI6ICJo
dG1sL3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCisgICAgInRoZS1wbGFjZWhv
bGRlci1hdHRyaWJ1dGUiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWlucHV0LWVsZW1lbnQi
LAorICAgICJjb21tb24taW5wdXQtZWxlbWVudC1hcGlzIjogImh0bWwvc2VtYW50aWNzL2Zvcm1z
L3RoZS1pbnB1dC1lbGVtZW50IiwKKyAgICAiY29tbW9uLWV2ZW50LWJlaGF2aW9ycyI6ICJodG1s
L3NlbWFudGljcy9mb3Jtcy90aGUtaW5wdXQtZWxlbWVudCIsCisgICAgInRoZS1idXR0b24tZWxl
bWVudCI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtYnV0dG9uLWVsZW1lbnQiLAorICAgICJ0
aGUtc2VsZWN0LWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLXNlbGVjdC1lbGVt
ZW50IiwKKyAgICAidGhlLWRhdGFsaXN0LWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMv
dGhlLWRhdGFsaXN0LWVsZW1lbnQiLAorICAgICJ0aGUtb3B0Z3JvdXAtZWxlbWVudCI6ICJodG1s
L3NlbWFudGljcy9mb3Jtcy90aGUtb3B0Z3JvdXAtZWxlbWVudCIsCisgICAgInRoZS1vcHRpb24t
ZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtb3B0aW9uLWVsZW1lbnQiLAorICAg
ICJ0aGUtdGV4dGFyZWEtZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtdGV4dGFy
ZWEtZWxlbWVudCIsCisgICAgInRoZS1rZXlnZW4tZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9m
b3Jtcy90aGUta2V5Z2VuLWVsZW1lbnQiLAorICAgICJ0aGUtb3V0cHV0LWVsZW1lbnQiOiAiaHRt
bC9zZW1hbnRpY3MvZm9ybXMvdGhlLW91dHB1dC1lbGVtZW50IiwKKyAgICAidGhlLXByb2dyZXNz
LWVsZW1lbnQiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLXByb2dyZXNzLWVsZW1lbnQiLAor
ICAgICJ0aGUtbWV0ZXItZWxlbWVudCI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90aGUtbWV0ZXIt
ZWxlbWVudCIsCisgICAgImZvcm0tY29udHJvbC1pbmZyYXN0cnVjdHVyZSI6ICJodG1sL3NlbWFu
dGljcy9mb3Jtcy9mb3JtLWNvbnRyb2wtaW5mcmFzdHJ1Y3R1cmUiLAorICAgICJhLWZvcm0tY29u
dHJvbCdzLXZhbHVlIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2Zvcm0tY29udHJvbC1pbmZyYXN0
cnVjdHVyZSIsCisgICAgIm11dGFiaWxpdHkiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvZm9ybS1j
b250cm9sLWluZnJhc3RydWN0dXJlIiwKKyAgICAiYXNzb2NpYXRpb24tb2YtY29udHJvbHMtYW5k
LWZvcm1zIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2Zvcm0tY29udHJvbC1pbmZyYXN0cnVjdHVy
ZSIsCisgICAgImF0dHJpYnV0ZXMtY29tbW9uLXRvLWZvcm0tY29udHJvbHMiOiAiaHRtbC9zZW1h
bnRpY3MvZm9ybXMvYXR0cmlidXRlcy1jb21tb24tdG8tZm9ybS1jb250cm9scyIsCisgICAgIm5h
bWluZy1mb3JtLWNvbnRyb2xzOi10aGUtbmFtZS1hdHRyaWJ1dGUiOiAiaHRtbC9zZW1hbnRpY3Mv
Zm9ybXMvYXR0cmlidXRlcy1jb21tb24tdG8tZm9ybS1jb250cm9scyIsCisgICAgInN1Ym1pdHRp
bmctZWxlbWVudC1kaXJlY3Rpb25hbGl0eTotdGhlLWRpcm5hbWUtYXR0cmlidXRlIjogImh0bWwv
c2VtYW50aWNzL2Zvcm1zL2F0dHJpYnV0ZXMtY29tbW9uLXRvLWZvcm0tY29udHJvbHMiLAorICAg
ICJsaW1pdGluZy11c2VyLWlucHV0LWxlbmd0aDotdGhlLW1heGxlbmd0aC1hdHRyaWJ1dGUiOiAi
aHRtbC9zZW1hbnRpY3MvZm9ybXMvYXR0cmlidXRlcy1jb21tb24tdG8tZm9ybS1jb250cm9scyIs
CisgICAgImVuYWJsaW5nLWFuZC1kaXNhYmxpbmctZm9ybS1jb250cm9sczotdGhlLWRpc2FibGVk
LWF0dHJpYnV0ZSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy9hdHRyaWJ1dGVzLWNvbW1vbi10by1m
b3JtLWNvbnRyb2xzIiwKKyAgICAiZm9ybS1zdWJtaXNzaW9uIjogImh0bWwvc2VtYW50aWNzL2Zv
cm1zL2F0dHJpYnV0ZXMtY29tbW9uLXRvLWZvcm0tY29udHJvbHMiLAorICAgICJhdXRvZm9jdXNp
bmctYS1mb3JtLWNvbnRyb2w6LXRoZS1hdXRvZm9jdXMtYXR0cmlidXRlIjogImh0bWwvc2VtYW50
aWNzL2Zvcm1zL2F0dHJpYnV0ZXMtY29tbW9uLXRvLWZvcm0tY29udHJvbHMiLAorICAgICJpbnB1
dC1tb2RhbGl0aWVzOi10aGUtaW5wdXRtb2RlLWF0dHJpYnV0ZSI6ICJodG1sL3NlbWFudGljcy9m
b3Jtcy9hdHRyaWJ1dGVzLWNvbW1vbi10by1mb3JtLWNvbnRyb2xzIiwKKyAgICAiYXV0b2ZpbGxp
bmctZm9ybS1jb250cm9sczotdGhlLWF1dG9jb21wbGV0ZS1hdHRyaWJ1dGUiOiAiaHRtbC9zZW1h
bnRpY3MvZm9ybXMvYXR0cmlidXRlcy1jb21tb24tdG8tZm9ybS1jb250cm9scyIsCisgICAgInRl
eHRGaWVsZFNlbGVjdGlvbiI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rp
b24iLAorICAgICJjb25zdHJhaW50cyI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy9jb25zdHJhaW50
cyIsCisgICAgImRlZmluaXRpb25zIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2NvbnN0cmFpbnRz
IiwKKyAgICAiY29uc3RyYWludC12YWxpZGF0aW9uIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2Nv
bnN0cmFpbnRzIiwKKyAgICAidGhlLWNvbnN0cmFpbnQtdmFsaWRhdGlvbi1hcGkiOiAiaHRtbC9z
ZW1hbnRpY3MvZm9ybXMvY29uc3RyYWludHMiLAorICAgICJzZWN1cml0eS1mb3JtcyI6ICJodG1s
L3NlbWFudGljcy9mb3Jtcy9jb25zdHJhaW50cyIsCisgICAgImZvcm0tc3VibWlzc2lvbi0wIjog
Imh0bWwvc2VtYW50aWNzL2Zvcm1zL2Zvcm0tc3VibWlzc2lvbi0wIiwKKyAgICAiaW50cm9kdWN0
aW9uLTIiOiAiaHRtbC9zZW1hbnRpY3MvZm9ybXMvZm9ybS1zdWJtaXNzaW9uLTAiLAorICAgICJp
bXBsaWNpdC1zdWJtaXNzaW9uIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2Zvcm0tc3VibWlzc2lv
bi0wIiwKKyAgICAiZm9ybS1zdWJtaXNzaW9uLWFsZ29yaXRobSI6ICJodG1sL3NlbWFudGljcy9m
b3Jtcy9mb3JtLXN1Ym1pc3Npb24tMCIsCisgICAgImNvbnN0cnVjdGluZy1mb3JtLWRhdGEtc2V0
IjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2Zvcm0tc3VibWlzc2lvbi0wIiwKKyAgICAidXJsLWVu
Y29kZWQtZm9ybS1kYXRhIjogImh0bWwvc2VtYW50aWNzL2Zvcm1zL2Zvcm0tc3VibWlzc2lvbi0w
IiwKKyAgICAibXVsdGlwYXJ0LWZvcm0tZGF0YSI6ICJodG1sL3NlbWFudGljcy9mb3Jtcy9mb3Jt
LXN1Ym1pc3Npb24tMCIsCisgICAgInBsYWluLXRleHQtZm9ybS1kYXRhIjogImh0bWwvc2VtYW50
aWNzL2Zvcm1zL2Zvcm0tc3VibWlzc2lvbi0wIiwKKyAgICAicmVzZXR0aW5nLWEtZm9ybSI6ICJo
dG1sL3NlbWFudGljcy9mb3Jtcy9yZXNldHRpbmctYS1mb3JtIiwKKyAgICAiaW50ZXJhY3RpdmUt
ZWxlbWVudHMiOiAiaHRtbC9zZW1hbnRpY3MvaW50ZXJhY3RpdmUtZWxlbWVudHMiLAorICAgICJ0
aGUtZGV0YWlscy1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRz
L3RoZS1kZXRhaWxzLWVsZW1lbnQiLAorICAgICJ0aGUtc3VtbWFyeS1lbGVtZW50IjogImh0bWwv
c2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL3RoZS1zdW1tYXJ5LWVsZW1lbnQiLAorICAg
ICJ0aGUtY29tbWFuZC1lbGVtZW50IjogImh0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1l
bnRzL3RoZS1jb21tYW5kLWVsZW1lbnQiLAorICAgICJ0aGUtbWVudS1lbGVtZW50IjogImh0bWwv
c2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL3RoZS1tZW51LWVsZW1lbnQiLAorICAgICJt
ZW51cy1pbnRybyI6ICJodG1sL3NlbWFudGljcy9pbnRlcmFjdGl2ZS1lbGVtZW50cy90aGUtbWVu
dS1lbGVtZW50IiwKKyAgICAiYnVpbGRpbmctbWVudXMtYW5kLXRvb2xiYXJzIjogImh0bWwvc2Vt
YW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL3RoZS1tZW51LWVsZW1lbnQiLAorICAgICJjb250
ZXh0LW1lbnVzIjogImh0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL3RoZS1tZW51
LWVsZW1lbnQiLAorICAgICJ0b29sYmFycyI6ICJodG1sL3NlbWFudGljcy9pbnRlcmFjdGl2ZS1l
bGVtZW50cy90aGUtbWVudS1lbGVtZW50IiwKKyAgICAiY29tbWFuZHMiOiAiaHRtbC9zZW1hbnRp
Y3MvaW50ZXJhY3RpdmUtZWxlbWVudHMvY29tbWFuZHMiLAorICAgICJ1c2luZy10aGUtYS1lbGVt
ZW50LXRvLWRlZmluZS1hLWNvbW1hbmQiOiAiaHRtbC9zZW1hbnRpY3MvaW50ZXJhY3RpdmUtZWxl
bWVudHMvY29tbWFuZHMiLAorICAgICJ1c2luZy10aGUtYnV0dG9uLWVsZW1lbnQtdG8tZGVmaW5l
LWEtY29tbWFuZCI6ICJodG1sL3NlbWFudGljcy9pbnRlcmFjdGl2ZS1lbGVtZW50cy9jb21tYW5k
cyIsCisgICAgInVzaW5nLXRoZS1pbnB1dC1lbGVtZW50LXRvLWRlZmluZS1hLWNvbW1hbmQiOiAi
aHRtbC9zZW1hbnRpY3MvaW50ZXJhY3RpdmUtZWxlbWVudHMvY29tbWFuZHMiLAorICAgICJ1c2lu
Zy10aGUtb3B0aW9uLWVsZW1lbnQtdG8tZGVmaW5lLWEtY29tbWFuZCI6ICJodG1sL3NlbWFudGlj
cy9pbnRlcmFjdGl2ZS1lbGVtZW50cy9jb21tYW5kcyIsCisgICAgInVzaW5nLXRoZS1jb21tYW5k
LWVsZW1lbnQtdG8tZGVmaW5lLWEtY29tbWFuZCI6ICJodG1sL3NlbWFudGljcy9pbnRlcmFjdGl2
ZS1lbGVtZW50cy9jb21tYW5kcyIsCisgICAgInVzaW5nLXRoZS1jb21tYW5kLWF0dHJpYnV0ZS1v
bi1jb21tYW5kLWVsZW1lbnRzLXRvLWRlZmluZS1hLWNvbW1hbmQtaW5kaXJlY3RseSI6ICJodG1s
L3NlbWFudGljcy9pbnRlcmFjdGl2ZS1lbGVtZW50cy9jb21tYW5kcyIsCisgICAgInVzaW5nLXRo
ZS1hY2Nlc3NrZXktYXR0cmlidXRlLW9uLWEtbGFiZWwtZWxlbWVudC10by1kZWZpbmUtYS1jb21t
YW5kIjogImh0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL2NvbW1hbmRzIiwKKyAg
ICAidXNpbmctdGhlLWFjY2Vzc2tleS1hdHRyaWJ1dGUtb24tYS1sZWdlbmQtZWxlbWVudC10by1k
ZWZpbmUtYS1jb21tYW5kIjogImh0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL2Nv
bW1hbmRzIiwKKyAgICAidXNpbmctdGhlLWFjY2Vzc2tleS1hdHRyaWJ1dGUtdG8tZGVmaW5lLWEt
Y29tbWFuZC1vbi1vdGhlci1lbGVtZW50cyI6ICJodG1sL3NlbWFudGljcy9pbnRlcmFjdGl2ZS1l
bGVtZW50cy9jb21tYW5kcyIsCisgICAgInRoZS1kaWFsb2ctZWxlbWVudCI6ICJodG1sL3NlbWFu
dGljcy9pbnRlcmFjdGl2ZS1lbGVtZW50cy90aGUtZGlhbG9nLWVsZW1lbnQiLAorICAgICJhbmNo
b3ItcG9pbnRzIjogImh0bWwvc2VtYW50aWNzL2ludGVyYWN0aXZlLWVsZW1lbnRzL3RoZS1kaWFs
b2ctZWxlbWVudCIsCisgICAgImxpbmtzIjogImh0bWwvc2VtYW50aWNzL2xpbmtzIiwKKyAgICAi
aW50cm9kdWN0aW9uLTMiOiAiaHRtbC9zZW1hbnRpY3MvbGlua3MvaW50cm9kdWN0aW9uLTMiLAor
ICAgICJsaW5rcy1jcmVhdGVkLWJ5LWEtYW5kLWFyZWEtZWxlbWVudHMiOiAiaHRtbC9zZW1hbnRp
Y3MvbGlua3MvbGlua3MtY3JlYXRlZC1ieS1hLWFuZC1hcmVhLWVsZW1lbnRzIiwKKyAgICAiZm9s
bG93aW5nLWh5cGVybGlua3MiOiAiaHRtbC9zZW1hbnRpY3MvbGlua3MvZm9sbG93aW5nLWh5cGVy
bGlua3MiLAorICAgICJkb3dubG9hZGluZy1yZXNvdXJjZXMiOiAiaHRtbC9zZW1hbnRpY3MvbGlu
a3MvZG93bmxvYWRpbmctcmVzb3VyY2VzIiwKKyAgICAiaHlwZXJsaW5rLWF1ZGl0aW5nIjogImh0
bWwvc2VtYW50aWNzL2xpbmtzL2Rvd25sb2FkaW5nLXJlc291cmNlcyIsCisgICAgImxpbmtUeXBl
cyI6ICJodG1sL3NlbWFudGljcy9saW5rcy9saW5rdHlwZXMiLAorICAgICJyZWwtYWx0ZXJuYXRl
IjogImh0bWwvc2VtYW50aWNzL2xpbmtzL2xpbmt0eXBlcyIsCisgICAgImxpbmstdHlwZS1hdXRo
b3IiOiAiaHRtbC9zZW1hbnRpY3MvbGlua3MvbGlua3R5cGVzIiwKKyAgICAibGluay10eXBlLWJv
b2ttYXJrIjogImh0bWwvc2VtYW50aWNzL2xpbmtzL2xpbmt0eXBlcyIsCisgICAgImxpbmstdHlw
ZS1oZWxwIjogImh0bWwvc2VtYW50aWNzL2xpbmtzL2xpbmt0eXBlcyIsCisgICAgInJlbC1pY29u
IjogImh0bWwvc2VtYW50aWNzL2xpbmtzL2xpbmt0eXBlcyIsCisgICAgImxpbmstdHlwZS1saWNl
bnNlIjogImh0bWwvc2VtYW50aWNzL2xpbmtzL2xpbmt0eXBlcyIsCisgICAgImxpbmstdHlwZS1u
b2ZvbGxvdyI6ICJodG1sL3NlbWFudGljcy9saW5rcy9saW5rdHlwZXMiLAorICAgICJsaW5rLXR5
cGUtbm9yZWZlcnJlciI6ICJodG1sL3NlbWFudGljcy9saW5rcy9saW5rdHlwZXMiLAorICAgICJs
aW5rLXR5cGUtcHJlZmV0Y2giOiAiaHRtbC9zZW1hbnRpY3MvbGlua3MvbGlua3R5cGVzIiwKKyAg
ICAibGluay10eXBlLXNlYXJjaCI6ICJodG1sL3NlbWFudGljcy9saW5rcy9saW5rdHlwZXMiLAor
ICAgICJsaW5rLXR5cGUtc3R5bGVzaGVldCI6ICJodG1sL3NlbWFudGljcy9saW5rcy9saW5rdHlw
ZXMiLAorICAgICJsaW5rLXR5cGUtdGFnIjogImh0bWwvc2VtYW50aWNzL2xpbmtzL2xpbmt0eXBl
cyIsCisgICAgInNlcXVlbnRpYWwtbGluay10eXBlcyI6ICJodG1sL3NlbWFudGljcy9saW5rcy9s
aW5rdHlwZXMiLAorICAgICJsaW5rLXR5cGUtbmV4dCI6ICJodG1sL3NlbWFudGljcy9saW5rcy9s
aW5rdHlwZXMiLAorICAgICJsaW5rLXR5cGUtcHJldiI6ICJodG1sL3NlbWFudGljcy9saW5rcy9s
aW5rdHlwZXMiLAorICAgICJvdGhlci1saW5rLXR5cGVzIjogImh0bWwvc2VtYW50aWNzL2xpbmtz
L2xpbmt0eXBlcyIsCisgICAgImNvbW1vbi1pZGlvbXMiOiAiaHRtbC9zZW1hbnRpY3MvY29tbW9u
LWlkaW9tcyIsCisgICAgInRoZS1tYWluLXBhcnQtb2YtdGhlLWNvbnRlbnQiOiAiaHRtbC9zZW1h
bnRpY3MvY29tbW9uLWlkaW9tcy90aGUtbWFpbi1wYXJ0LW9mLXRoZS1jb250ZW50IiwKKyAgICAi
cmVsLXVwIjogImh0bWwvc2VtYW50aWNzL2NvbW1vbi1pZGlvbXMvcmVsLXVwIiwKKyAgICAidGFn
LWNsb3VkcyI6ICJodG1sL3NlbWFudGljcy9jb21tb24taWRpb21zL3RhZy1jbG91ZHMiLAorICAg
ICJjb252ZXJzYXRpb25zIjogImh0bWwvc2VtYW50aWNzL2NvbW1vbi1pZGlvbXMvY29udmVyc2F0
aW9ucyIsCisgICAgImZvb3Rub3RlcyI6ICJodG1sL3NlbWFudGljcy9jb21tb24taWRpb21zL2Zv
b3Rub3RlcyIsCisgICAgImRpc2FibGVkLWVsZW1lbnRzIjogImh0bWwvc2VtYW50aWNzL2Rpc2Fi
bGVkLWVsZW1lbnRzIiwKKyAgICAic2VsZWN0b3JzIjogImh0bWwvc2VtYW50aWNzL3NlbGVjdG9y
cyIsCisgICAgImNhc2Utc2Vuc2l0aXZpdHkiOiAiaHRtbC9zZW1hbnRpY3Mvc2VsZWN0b3JzL2Nh
c2Utc2Vuc2l0aXZpdHkiLAorICAgICJwc2V1ZG8tY2xhc3NlcyI6ICJodG1sL3NlbWFudGljcy9z
ZWxlY3RvcnMvcHNldWRvLWNsYXNzZXMiLAorICAgICJicm93c2VycyI6ICJodG1sL2Jyb3dzZXJz
IiwKKyAgICAid2luZG93cyI6ICJodG1sL2Jyb3dzZXJzL3dpbmRvd3MiLAorICAgICJuZXN0ZWQt
YnJvd3NpbmctY29udGV4dHMiOiAiaHRtbC9icm93c2Vycy93aW5kb3dzL25lc3RlZC1icm93c2lu
Zy1jb250ZXh0cyIsCisgICAgIm5hdmlnYXRpbmctbmVzdGVkLWJyb3dzaW5nLWNvbnRleHRzLWlu
LXRoZS1kb20iOiAiaHRtbC9icm93c2Vycy93aW5kb3dzL25lc3RlZC1icm93c2luZy1jb250ZXh0
cyIsCisgICAgImF1eGlsaWFyeS1icm93c2luZy1jb250ZXh0cyI6ICJodG1sL2Jyb3dzZXJzL3dp
bmRvd3MvYXV4aWxpYXJ5LWJyb3dzaW5nLWNvbnRleHRzIiwKKyAgICAibmF2aWdhdGluZy1hdXhp
bGlhcnktYnJvd3NpbmctY29udGV4dHMtaW4tdGhlLWRvbSI6ICJodG1sL2Jyb3dzZXJzL3dpbmRv
d3MvYXV4aWxpYXJ5LWJyb3dzaW5nLWNvbnRleHRzIiwKKyAgICAic2Vjb25kYXJ5LWJyb3dzaW5n
LWNvbnRleHRzIjogImh0bWwvYnJvd3NlcnMvd2luZG93cy9zZWNvbmRhcnktYnJvd3NpbmctY29u
dGV4dHMiLAorICAgICJzZWN1cml0eS1uYXYiOiAiaHRtbC9icm93c2Vycy93aW5kb3dzL3NlY3Vy
aXR5LW5hdiIsCisgICAgImdyb3VwaW5ncy1vZi1icm93c2luZy1jb250ZXh0cyI6ICJodG1sL2Jy
b3dzZXJzL3dpbmRvd3MvZ3JvdXBpbmdzLW9mLWJyb3dzaW5nLWNvbnRleHRzIiwKKyAgICAiYnJv
d3NpbmctY29udGV4dC1uYW1lcyI6ICJodG1sL2Jyb3dzZXJzL3dpbmRvd3MvYnJvd3NpbmctY29u
dGV4dC1uYW1lcyIsCisgICAgInRoZS13aW5kb3ctb2JqZWN0IjogImh0bWwvYnJvd3NlcnMvdGhl
LXdpbmRvdy1vYmplY3QiLAorICAgICJzZWN1cml0eS13aW5kb3ciOiAiaHRtbC9icm93c2Vycy90
aGUtd2luZG93LW9iamVjdC9zZWN1cml0eS13aW5kb3ciLAorICAgICJhcGlzLWZvci1jcmVhdGlu
Zy1hbmQtbmF2aWdhdGluZy1icm93c2luZy1jb250ZXh0cy1ieS1uYW1lIjogImh0bWwvYnJvd3Nl
cnMvdGhlLXdpbmRvdy1vYmplY3QvYXBpcy1mb3ItY3JlYXRpbmctYW5kLW5hdmlnYXRpbmctYnJv
d3NpbmctY29udGV4dHMtYnktbmFtZSIsCisgICAgImFjY2Vzc2luZy1vdGhlci1icm93c2luZy1j
b250ZXh0cyI6ICJodG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L2FjY2Vzc2luZy1vdGhl
ci1icm93c2luZy1jb250ZXh0cyIsCisgICAgIm5hbWVkLWFjY2Vzcy1vbi10aGUtd2luZG93LW9i
amVjdCI6ICJodG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L25hbWVkLWFjY2Vzcy1vbi10
aGUtd2luZG93LW9iamVjdCIsCisgICAgImdhcmJhZ2UtY29sbGVjdGlvbi1hbmQtYnJvd3Npbmct
Y29udGV4dHMiOiAiaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC9nYXJiYWdlLWNvbGxl
Y3Rpb24tYW5kLWJyb3dzaW5nLWNvbnRleHRzIiwKKyAgICAiY2xvc2luZy1icm93c2luZy1jb250
ZXh0cyI6ICJodG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L2Nsb3NpbmctYnJvd3Npbmct
Y29udGV4dHMiLAorICAgICJicm93c2VyLWludGVyZmFjZS1lbGVtZW50cyI6ICJodG1sL2Jyb3dz
ZXJzL3RoZS13aW5kb3ctb2JqZWN0L2Jyb3dzZXItaW50ZXJmYWNlLWVsZW1lbnRzIiwKKyAgICAi
dGhlLXdpbmRvd3Byb3h5LW9iamVjdCI6ICJodG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0
L3RoZS13aW5kb3dwcm94eS1vYmplY3QiLAorICAgICJvcmlnaW4iOiAiaHRtbC9icm93c2Vycy9v
cmlnaW4iLAorICAgICJyZWxheGluZy10aGUtc2FtZS1vcmlnaW4tcmVzdHJpY3Rpb24iOiAiaHRt
bC9icm93c2Vycy9vcmlnaW4vcmVsYXhpbmctdGhlLXNhbWUtb3JpZ2luLXJlc3RyaWN0aW9uIiwK
KyAgICAic2FuZGJveGluZyI6ICJodG1sL2Jyb3dzZXJzL3NhbmRib3hpbmciLAorICAgICJoaXN0
b3J5IjogImh0bWwvYnJvd3NlcnMvaGlzdG9yeSIsCisgICAgInRoZS1zZXNzaW9uLWhpc3Rvcnkt
b2YtYnJvd3NpbmctY29udGV4dHMiOiAiaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1zZXNzaW9u
LWhpc3Rvcnktb2YtYnJvd3NpbmctY29udGV4dHMiLAorICAgICJ0aGUtaGlzdG9yeS1pbnRlcmZh
Y2UiOiAiaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1oaXN0b3J5LWludGVyZmFjZSIsCisgICAg
InRoZS1sb2NhdGlvbi1pbnRlcmZhY2UiOiAiaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1sb2Nh
dGlvbi1pbnRlcmZhY2UiLAorICAgICJzZWN1cml0eS1sb2NhdGlvbiI6ICJodG1sL2Jyb3dzZXJz
L2hpc3RvcnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZSIsCisgICAgImhpc3Rvcnktbm90ZXMiOiAi
aHRtbC9icm93c2Vycy9oaXN0b3J5L2hpc3Rvcnktbm90ZXMiLAorICAgICJicm93c2luZy10aGUt
d2ViIjogImh0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYiIsCisgICAgIm5hdmlnYXRpbmct
YWNyb3NzLWRvY3VtZW50cyI6ICJodG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvbmF2aWdh
dGluZy1hY3Jvc3MtZG9jdW1lbnRzIiwKKyAgICAicmVhZC1odG1sIjogImh0bWwvYnJvd3NlcnMv
YnJvd3NpbmctdGhlLXdlYi9yZWFkLWh0bWwiLAorICAgICJyZWFkLXhtbCI6ICJodG1sL2Jyb3dz
ZXJzL2Jyb3dzaW5nLXRoZS13ZWIvcmVhZC14bWwiLAorICAgICJyZWFkLXRleHQiOiAiaHRtbC9i
cm93c2Vycy9icm93c2luZy10aGUtd2ViL3JlYWQtdGV4dCIsCisgICAgInJlYWQtbXVsdGlwYXJ0
LXgtbWl4ZWQtcmVwbGFjZSI6ICJodG1sL2Jyb3dzZXJzL2Jyb3dzaW5nLXRoZS13ZWIvcmVhZC1t
dWx0aXBhcnQteC1taXhlZC1yZXBsYWNlIiwKKyAgICAicmVhZC1tZWRpYSI6ICJodG1sL2Jyb3dz
ZXJzL2Jyb3dzaW5nLXRoZS13ZWIvcmVhZC1tZWRpYSIsCisgICAgInJlYWQtcGx1Z2luIjogImh0
bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9yZWFkLXBsdWdpbiIsCisgICAgInJlYWQtdWEt
aW5saW5lIjogImh0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9yZWFkLXVhLWlubGluZSIs
CisgICAgInNjcm9sbC10by1mcmFnaWQiOiAiaHRtbC9icm93c2Vycy9icm93c2luZy10aGUtd2Vi
L3Njcm9sbC10by1mcmFnaWQiLAorICAgICJoaXN0b3J5LXRyYXZlcnNhbCI6ICJodG1sL2Jyb3dz
ZXJzL2Jyb3dzaW5nLXRoZS13ZWIvaGlzdG9yeS10cmF2ZXJzYWwiLAorICAgICJldmVudC1kZWZp
bml0aW9ucy0wIjogImh0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi9oaXN0b3J5LXRyYXZl
cnNhbCIsCisgICAgInVubG9hZGluZy1kb2N1bWVudHMiOiAiaHRtbC9icm93c2Vycy9icm93c2lu
Zy10aGUtd2ViL3VubG9hZGluZy1kb2N1bWVudHMiLAorICAgICJldmVudC1kZWZpbml0aW9uIjog
Imh0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhlLXdlYi91bmxvYWRpbmctZG9jdW1lbnRzIiwKKyAg
ICAiYWJvcnRpbmctYS1kb2N1bWVudC1sb2FkIjogImh0bWwvYnJvd3NlcnMvYnJvd3NpbmctdGhl
LXdlYi9hYm9ydGluZy1hLWRvY3VtZW50LWxvYWQiLAorICAgICJvZmZsaW5lIjogImh0bWwvYnJv
d3NlcnMvb2ZmbGluZSIsCisgICAgImludHJvZHVjdGlvbi00IjogImh0bWwvYnJvd3NlcnMvb2Zm
bGluZS9pbnRyb2R1Y3Rpb24tNCIsCisgICAgInN1cHBvcnRpbmctb2ZmbGluZS1jYWNoaW5nLWZv
ci1sZWdhY3ktYXBwbGljYXRpb25zIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9pbnRyb2R1Y3Rp
b24tNCIsCisgICAgImFwcGNhY2hlZXZlbnRzIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9pbnRy
b2R1Y3Rpb24tNCIsCisgICAgImFwcGNhY2hlIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9hcHBj
YWNoZSIsCisgICAgIm1hbmlmZXN0cyI6ICJodG1sL2Jyb3dzZXJzL29mZmxpbmUvbWFuaWZlc3Rz
IiwKKyAgICAic29tZS1zYW1wbGUtbWFuaWZlc3RzIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9t
YW5pZmVzdHMiLAorICAgICJ3cml0aW5nLWNhY2hlLW1hbmlmZXN0cyI6ICJodG1sL2Jyb3dzZXJz
L29mZmxpbmUvbWFuaWZlc3RzIiwKKyAgICAicGFyc2luZy1jYWNoZS1tYW5pZmVzdHMiOiAiaHRt
bC9icm93c2Vycy9vZmZsaW5lL21hbmlmZXN0cyIsCisgICAgImRvd25sb2FkaW5nLW9yLXVwZGF0
aW5nLWFuLWFwcGxpY2F0aW9uLWNhY2hlIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9kb3dubG9h
ZGluZy1vci11cGRhdGluZy1hbi1hcHBsaWNhdGlvbi1jYWNoZSIsCisgICAgInRoZS1hcHBsaWNh
dGlvbi1jYWNoZS1zZWxlY3Rpb24tYWxnb3JpdGhtIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS90
aGUtYXBwbGljYXRpb24tY2FjaGUtc2VsZWN0aW9uLWFsZ29yaXRobSIsCisgICAgImNoYW5nZXNU
b05ldHdvcmtpbmdNb2RlbCI6ICJodG1sL2Jyb3dzZXJzL29mZmxpbmUvY2hhbmdlc3RvbmV0d29y
a2luZ21vZGVsIiwKKyAgICAiZXhwaXJpbmctYXBwbGljYXRpb24tY2FjaGVzIjogImh0bWwvYnJv
d3NlcnMvb2ZmbGluZS9leHBpcmluZy1hcHBsaWNhdGlvbi1jYWNoZXMiLAorICAgICJkaXNrLXNw
YWNlIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9kaXNrLXNwYWNlIiwKKyAgICAiYXBwbGljYXRp
b24tY2FjaGUtYXBpIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9hcHBsaWNhdGlvbi1jYWNoZS1h
cGkiLAorICAgICJicm93c2VyLXN0YXRlIjogImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9icm93c2Vy
LXN0YXRlIiwKKyAgICAid2ViYXBwYXBpcyI6ICJodG1sL3dlYmFwcGFwaXMiLAorICAgICJzY3Jp
cHRpbmciOiAiaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZyIsCisgICAgImludHJvZHVjdGlvbi01
IjogImh0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvaW50cm9kdWN0aW9uLTUiLAorICAgICJlbmFi
bGluZy1hbmQtZGlzYWJsaW5nLXNjcmlwdGluZyI6ICJodG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5n
L2VuYWJsaW5nLWFuZC1kaXNhYmxpbmctc2NyaXB0aW5nIiwKKyAgICAicHJvY2Vzc2luZy1tb2Rl
bC0yIjogImh0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcHJvY2Vzc2luZy1tb2RlbC0yIiwKKyAg
ICAiZGVmaW5pdGlvbnMtMCI6ICJodG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL3Byb2Nlc3Npbmct
bW9kZWwtMiIsCisgICAgImNhbGxpbmctc2NyaXB0cyI6ICJodG1sL3dlYmFwcGFwaXMvc2NyaXB0
aW5nL3Byb2Nlc3NpbmctbW9kZWwtMiIsCisgICAgImNyZWF0aW5nLXNjcmlwdHMiOiAiaHRtbC93
ZWJhcHBhcGlzL3NjcmlwdGluZy9wcm9jZXNzaW5nLW1vZGVsLTIiLAorICAgICJraWxsaW5nLXNj
cmlwdHMiOiAiaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9wcm9jZXNzaW5nLW1vZGVsLTIiLAor
ICAgICJydW50aW1lLXNjcmlwdC1lcnJvcnMiOiAiaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9w
cm9jZXNzaW5nLW1vZGVsLTIiLAorICAgICJydW50aW1lLXNjcmlwdC1lcnJvcnMtaW4tZG9jdW1l
bnRzIjogImh0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvcHJvY2Vzc2luZy1tb2RlbC0yIiwKKyAg
ICAiZXZlbnQtbG9vcHMiOiAiaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9ldmVudC1sb29wcyIs
CisgICAgImRlZmluaXRpb25zLTEiOiAiaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9ldmVudC1s
b29wcyIsCisgICAgInByb2Nlc3NpbmctbW9kZWwtMyI6ICJodG1sL3dlYmFwcGFwaXMvc2NyaXB0
aW5nL2V2ZW50LWxvb3BzIiwKKyAgICAiZ2VuZXJpYy10YXNrLXNvdXJjZXMiOiAiaHRtbC93ZWJh
cHBhcGlzL3NjcmlwdGluZy9ldmVudC1sb29wcyIsCisgICAgImphdmFzY3JpcHQtcHJvdG9jb2wi
OiAiaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGluZy9qYXZhc2NyaXB0LXByb3RvY29sIiwKKyAgICAi
ZXZlbnRzIjogImh0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvZXZlbnRzIiwKKyAgICAiZXZlbnQt
aGFuZGxlci1hdHRyaWJ1dGVzIjogImh0bWwvd2ViYXBwYXBpcy9zY3JpcHRpbmcvZXZlbnRzIiwK
KyAgICAiZXZlbnQtaGFuZGxlcnMtb24tZWxlbWVudHMsLWRvY3VtZW50LW9iamVjdHMsLWFuZC13
aW5kb3ctb2JqZWN0cyI6ICJodG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL2V2ZW50cyIsCisgICAg
ImV2ZW50LWZpcmluZyI6ICJodG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL2V2ZW50cyIsCisgICAg
ImV2ZW50cy1hbmQtdGhlLXdpbmRvdy1vYmplY3QiOiAiaHRtbC93ZWJhcHBhcGlzL3NjcmlwdGlu
Zy9ldmVudHMiLAorICAgICJhdG9iIjogImh0bWwvd2ViYXBwYXBpcy9hdG9iIiwKKyAgICAidGlt
ZXJzIjogImh0bWwvd2ViYXBwYXBpcy90aW1lcnMiLAorICAgICJ1c2VyLXByb21wdHMiOiAiaHRt
bC93ZWJhcHBhcGlzL3VzZXItcHJvbXB0cyIsCisgICAgInNpbXBsZS1kaWFsb2dzIjogImh0bWwv
d2ViYXBwYXBpcy91c2VyLXByb21wdHMvc2ltcGxlLWRpYWxvZ3MiLAorICAgICJwcmludGluZyI6
ICJodG1sL3dlYmFwcGFwaXMvdXNlci1wcm9tcHRzL3ByaW50aW5nIiwKKyAgICAiZGlhbG9ncy1p
bXBsZW1lbnRlZC11c2luZy1zZXBhcmF0ZS1kb2N1bWVudHMiOiAiaHRtbC93ZWJhcHBhcGlzL3Vz
ZXItcHJvbXB0cy9kaWFsb2dzLWltcGxlbWVudGVkLXVzaW5nLXNlcGFyYXRlLWRvY3VtZW50cyIs
CisgICAgInN5c3RlbS1zdGF0ZS1hbmQtY2FwYWJpbGl0aWVzIjogImh0bWwvd2ViYXBwYXBpcy9z
eXN0ZW0tc3RhdGUtYW5kLWNhcGFiaWxpdGllcyIsCisgICAgInRoZS1uYXZpZ2F0b3Itb2JqZWN0
IjogImh0bWwvd2ViYXBwYXBpcy9zeXN0ZW0tc3RhdGUtYW5kLWNhcGFiaWxpdGllcy90aGUtbmF2
aWdhdG9yLW9iamVjdCIsCisgICAgImNsaWVudC1pZGVudGlmaWNhdGlvbiI6ICJodG1sL3dlYmFw
cGFwaXMvc3lzdGVtLXN0YXRlLWFuZC1jYXBhYmlsaXRpZXMvdGhlLW5hdmlnYXRvci1vYmplY3Qi
LAorICAgICJjdXN0b20taGFuZGxlcnMiOiAiaHRtbC93ZWJhcHBhcGlzL3N5c3RlbS1zdGF0ZS1h
bmQtY2FwYWJpbGl0aWVzL3RoZS1uYXZpZ2F0b3Itb2JqZWN0IiwKKyAgICAic2VjdXJpdHktYW5k
LXByaXZhY3kiOiAiaHRtbC93ZWJhcHBhcGlzL3N5c3RlbS1zdGF0ZS1hbmQtY2FwYWJpbGl0aWVz
L3RoZS1uYXZpZ2F0b3Itb2JqZWN0IiwKKyAgICAic2FtcGxlLWhhbmRsZXItaW1wbCI6ICJodG1s
L3dlYmFwcGFwaXMvc3lzdGVtLXN0YXRlLWFuZC1jYXBhYmlsaXRpZXMvdGhlLW5hdmlnYXRvci1v
YmplY3QiLAorICAgICJtYW51YWxseS1yZWxlYXNpbmctdGhlLXN0b3JhZ2UtbXV0ZXgiOiAiaHRt
bC93ZWJhcHBhcGlzL3N5c3RlbS1zdGF0ZS1hbmQtY2FwYWJpbGl0aWVzL3RoZS1uYXZpZ2F0b3It
b2JqZWN0IiwKKyAgICAidGhlLWV4dGVybmFsLWludGVyZmFjZSI6ICJodG1sL3dlYmFwcGFwaXMv
c3lzdGVtLXN0YXRlLWFuZC1jYXBhYmlsaXRpZXMvdGhlLWV4dGVybmFsLWludGVyZmFjZSIsCisg
ICAgImVkaXRpbmciOiAiaHRtbC9lZGl0aW5nIiwKKyAgICAidGhlLWhpZGRlbi1hdHRyaWJ1dGUi
OiAiaHRtbC9lZGl0aW5nL3RoZS1oaWRkZW4tYXR0cmlidXRlIiwKKyAgICAiaW5lcnQtc3VidHJl
ZXMiOiAiaHRtbC9lZGl0aW5nL2luZXJ0LXN1YnRyZWVzIiwKKyAgICAidGhlLWluZXJ0LWF0dHJp
YnV0ZSI6ICJodG1sL2VkaXRpbmcvaW5lcnQtc3VidHJlZXMvdGhlLWluZXJ0LWF0dHJpYnV0ZSIs
CisgICAgImFjdGl2YXRpb24iOiAiaHRtbC9lZGl0aW5nL2FjdGl2YXRpb24iLAorICAgICJmb2N1
cyI6ICJodG1sL2VkaXRpbmcvZm9jdXMiLAorICAgICJzZXF1ZW50aWFsLWZvY3VzLW5hdmlnYXRp
b24tYW5kLXRoZS10YWJpbmRleC1hdHRyaWJ1dGUiOiAiaHRtbC9lZGl0aW5nL2ZvY3VzL3NlcXVl
bnRpYWwtZm9jdXMtbmF2aWdhdGlvbi1hbmQtdGhlLXRhYmluZGV4LWF0dHJpYnV0ZSIsCisgICAg
ImZvY3VzLW1hbmFnZW1lbnQiOiAiaHRtbC9lZGl0aW5nL2ZvY3VzL2ZvY3VzLW1hbmFnZW1lbnQi
LAorICAgICJkb2N1bWVudC1sZXZlbC1mb2N1cy1hcGlzIjogImh0bWwvZWRpdGluZy9mb2N1cy9k
b2N1bWVudC1sZXZlbC1mb2N1cy1hcGlzIiwKKyAgICAiZWxlbWVudC1sZXZlbC1mb2N1cy1hcGlz
IjogImh0bWwvZWRpdGluZy9mb2N1cy9lbGVtZW50LWxldmVsLWZvY3VzLWFwaXMiLAorICAgICJh
c3NpZ25pbmcta2V5Ym9hcmQtc2hvcnRjdXRzIjogImh0bWwvZWRpdGluZy9hc3NpZ25pbmcta2V5
Ym9hcmQtc2hvcnRjdXRzIiwKKyAgICAiaW50cm9kdWN0aW9uLTYiOiAiaHRtbC9lZGl0aW5nL2Fz
c2lnbmluZy1rZXlib2FyZC1zaG9ydGN1dHMvaW50cm9kdWN0aW9uLTYiLAorICAgICJ0aGUtYWNj
ZXNza2V5LWF0dHJpYnV0ZSI6ICJodG1sL2VkaXRpbmcvYXNzaWduaW5nLWtleWJvYXJkLXNob3J0
Y3V0cy90aGUtYWNjZXNza2V5LWF0dHJpYnV0ZSIsCisgICAgInByb2Nlc3NpbmctbW9kZWwtNCI6
ICJodG1sL2VkaXRpbmcvYXNzaWduaW5nLWtleWJvYXJkLXNob3J0Y3V0cy9wcm9jZXNzaW5nLW1v
ZGVsLTQiLAorICAgICJlZGl0aW5nLTAiOiAiaHRtbC9lZGl0aW5nL2VkaXRpbmctMCIsCisgICAg
ImNvbnRlbnRlZGl0YWJsZSI6ICJodG1sL2VkaXRpbmcvZWRpdGluZy0wL2NvbnRlbnRlZGl0YWJs
ZSIsCisgICAgIm1ha2luZy1lbnRpcmUtZG9jdW1lbnRzLWVkaXRhYmxlOi10aGUtZGVzaWdubW9k
ZS1pZGwtYXR0cmlidXRlIjogImh0bWwvZWRpdGluZy9lZGl0aW5nLTAvbWFraW5nLWVudGlyZS1k
b2N1bWVudHMtZWRpdGFibGUtdGhlLWRlc2lnbm1vZGUtaWRsLWF0dHJpYnV0ZSIsCisgICAgImJl
c3QtcHJhY3RpY2VzLWZvci1pbi1wYWdlLWVkaXRvcnMiOiAiaHRtbC9lZGl0aW5nL2VkaXRpbmct
MC9iZXN0LXByYWN0aWNlcy1mb3ItaW4tcGFnZS1lZGl0b3JzIiwKKyAgICAiZWRpdGluZy1hcGlz
IjogImh0bWwvZWRpdGluZy9lZGl0aW5nLTAvZWRpdGluZy1hcGlzIiwKKyAgICAic3BlbGxpbmct
YW5kLWdyYW1tYXItY2hlY2tpbmciOiAiaHRtbC9lZGl0aW5nL2VkaXRpbmctMC9zcGVsbGluZy1h
bmQtZ3JhbW1hci1jaGVja2luZyIsCisgICAgImRuZCI6ICJodG1sL2VkaXRpbmcvZG5kIiwKKyAg
ICAiaW50cm9kdWN0aW9uLTciOiAiaHRtbC9lZGl0aW5nL2RuZC9pbnRyb2R1Y3Rpb24tNyIsCisg
ICAgInRoZS1kcmFnLWRhdGEtc3RvcmUiOiAiaHRtbC9lZGl0aW5nL2RuZC90aGUtZHJhZy1kYXRh
LXN0b3JlIiwKKyAgICAidGhlLWRhdGF0cmFuc2Zlci1pbnRlcmZhY2UiOiAiaHRtbC9lZGl0aW5n
L2RuZC90aGUtZGF0YXRyYW5zZmVyLWludGVyZmFjZSIsCisgICAgInRoZS1kYXRhdHJhbnNmZXJp
dGVtbGlzdC1pbnRlcmZhY2UiOiAiaHRtbC9lZGl0aW5nL2RuZC90aGUtZGF0YXRyYW5zZmVyLWlu
dGVyZmFjZSIsCisgICAgInRoZS1kYXRhdHJhbnNmZXJpdGVtLWludGVyZmFjZSI6ICJodG1sL2Vk
aXRpbmcvZG5kL3RoZS1kYXRhdHJhbnNmZXItaW50ZXJmYWNlIiwKKyAgICAidGhlLWRyYWdldmVu
dC1pbnRlcmZhY2UiOiAiaHRtbC9lZGl0aW5nL2RuZC90aGUtZHJhZ2V2ZW50LWludGVyZmFjZSIs
CisgICAgImRyYWctYW5kLWRyb3AtcHJvY2Vzc2luZy1tb2RlbCI6ICJodG1sL2VkaXRpbmcvZG5k
L2RyYWctYW5kLWRyb3AtcHJvY2Vzc2luZy1tb2RlbCIsCisgICAgImRuZGV2ZW50cyI6ICJodG1s
L2VkaXRpbmcvZG5kL2RuZGV2ZW50cyIsCisgICAgInRoZS1kcmFnZ2FibGUtYXR0cmlidXRlIjog
Imh0bWwvZWRpdGluZy9kbmQvdGhlLWRyYWdnYWJsZS1hdHRyaWJ1dGUiLAorICAgICJ0aGUtZHJv
cHpvbmUtYXR0cmlidXRlIjogImh0bWwvZWRpdGluZy9kbmQvdGhlLWRyb3B6b25lLWF0dHJpYnV0
ZSIsCisgICAgInNlY3VyaXR5LXJpc2tzLWluLXRoZS1kcmFnLWFuZC1kcm9wLW1vZGVsIjogImh0
bWwvZWRpdGluZy9kbmQvc2VjdXJpdHktcmlza3MtaW4tdGhlLWRyYWctYW5kLWRyb3AtbW9kZWwi
LAorICAgICJzeW50YXgiOiAiaHRtbC9zeW50YXgiLAorICAgICJ3cml0aW5nIjogImh0bWwvc3lu
dGF4L3dyaXRpbmciLAorICAgICJ0aGUtZG9jdHlwZSI6ICJodG1sL3N5bnRheC93cml0aW5nL3Ro
ZS1kb2N0eXBlIiwKKyAgICAiZWxlbWVudHMtMCI6ICJodG1sL3N5bnRheC93cml0aW5nL2VsZW1l
bnRzLTAiLAorICAgICJzdGFydC10YWdzIjogImh0bWwvc3ludGF4L3dyaXRpbmcvZWxlbWVudHMt
MCIsCisgICAgImVuZC10YWdzIjogImh0bWwvc3ludGF4L3dyaXRpbmcvZWxlbWVudHMtMCIsCisg
ICAgImF0dHJpYnV0ZXMtMCI6ICJodG1sL3N5bnRheC93cml0aW5nL2VsZW1lbnRzLTAiLAorICAg
ICJvcHRpb25hbC10YWdzIjogImh0bWwvc3ludGF4L3dyaXRpbmcvZWxlbWVudHMtMCIsCisgICAg
ImVsZW1lbnQtcmVzdHJpY3Rpb25zIjogImh0bWwvc3ludGF4L3dyaXRpbmcvZWxlbWVudHMtMCIs
CisgICAgImNkYXRhLXJjZGF0YS1yZXN0cmljdGlvbnMiOiAiaHRtbC9zeW50YXgvd3JpdGluZy9l
bGVtZW50cy0wIiwKKyAgICAidGV4dCI6ICJodG1sL3N5bnRheC93cml0aW5nL3RleHQiLAorICAg
ICJuZXdsaW5lcyI6ICJodG1sL3N5bnRheC93cml0aW5nL3RleHQiLAorICAgICJjaGFyYWN0ZXIt
cmVmZXJlbmNlcyI6ICJodG1sL3N5bnRheC93cml0aW5nL2NoYXJhY3Rlci1yZWZlcmVuY2VzIiwK
KyAgICAiY2RhdGEtc2VjdGlvbnMiOiAiaHRtbC9zeW50YXgvd3JpdGluZy9jZGF0YS1zZWN0aW9u
cyIsCisgICAgImNvbW1lbnRzIjogImh0bWwvc3ludGF4L3dyaXRpbmcvY29tbWVudHMiLAorICAg
ICJwYXJzaW5nIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJvdmVydmlldy1vZi10aGUt
cGFyc2luZy1tb2RlbCI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAidGhlLWlucHV0LWJ5
dGUtc3RyZWFtIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJkZXRlcm1pbmluZy10aGUt
Y2hhcmFjdGVyLWVuY29kaW5nIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJjaGFyYWN0
ZXItZW5jb2RpbmdzLTAiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgImNoYW5naW5nLXRo
ZS1lbmNvZGluZy13aGlsZS1wYXJzaW5nIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJw
cmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW0iOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisg
ICAgInBhcnNlLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJ0aGUtaW5zZXJ0
aW9uLW1vZGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInRoZS1zdGFjay1vZi1vcGVu
LWVsZW1lbnRzIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJ0aGUtbGlzdC1vZi1hY3Rp
dmUtZm9ybWF0dGluZy1lbGVtZW50cyI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAidGhl
LWVsZW1lbnQtcG9pbnRlcnMiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgIm90aGVyLXBh
cnNpbmctc3RhdGUtZmxhZ3MiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInRva2VuaXph
dGlvbiI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAiZGF0YS1zdGF0ZSI6ICJodG1sL3N5
bnRheC9wYXJzaW5nIiwKKyAgICAiY2hhcmFjdGVyLXJlZmVyZW5jZS1pbi1kYXRhLXN0YXRlIjog
Imh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJyY2RhdGEtc3RhdGUiOiAiaHRtbC9zeW50YXgv
cGFyc2luZyIsCisgICAgImNoYXJhY3Rlci1yZWZlcmVuY2UtaW4tcmNkYXRhLXN0YXRlIjogImh0
bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJyYXd0ZXh0LXN0YXRlIjogImh0bWwvc3ludGF4L3Bh
cnNpbmciLAorICAgICJzY3JpcHQtZGF0YS1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwK
KyAgICAicGxhaW50ZXh0LXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJ0YWct
b3Blbi1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAiZW5kLXRhZy1vcGVuLXN0
YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJ0YWctbmFtZS1zdGF0ZSI6ICJodG1s
L3N5bnRheC9wYXJzaW5nIiwKKyAgICAicmNkYXRhLWxlc3MtdGhhbi1zaWduLXN0YXRlIjogImh0
bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJyY2RhdGEtZW5kLXRhZy1vcGVuLXN0YXRlIjogImh0
bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJyY2RhdGEtZW5kLXRhZy1uYW1lLXN0YXRlIjogImh0
bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJyYXd0ZXh0LWxlc3MtdGhhbi1zaWduLXN0YXRlIjog
Imh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJyYXd0ZXh0LWVuZC10YWctb3Blbi1zdGF0ZSI6
ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAicmF3dGV4dC1lbmQtdGFnLW5hbWUtc3RhdGUi
OiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInNjcmlwdC1kYXRhLWxlc3MtdGhhbi1zaWdu
LXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJzY3JpcHQtZGF0YS1lbmQtdGFn
LW9wZW4tc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInNjcmlwdC1kYXRhLWVu
ZC10YWctbmFtZS1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAic2NyaXB0LWRh
dGEtZXNjYXBlLXN0YXJ0LXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJzY3Jp
cHQtZGF0YS1lc2NhcGUtc3RhcnQtZGFzaC1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwK
KyAgICAic2NyaXB0LWRhdGEtZXNjYXBlZC1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwK
KyAgICAic2NyaXB0LWRhdGEtZXNjYXBlZC1kYXNoLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNp
bmciLAorICAgICJzY3JpcHQtZGF0YS1lc2NhcGVkLWRhc2gtZGFzaC1zdGF0ZSI6ICJodG1sL3N5
bnRheC9wYXJzaW5nIiwKKyAgICAic2NyaXB0LWRhdGEtZXNjYXBlZC1sZXNzLXRoYW4tc2lnbi1z
dGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAic2NyaXB0LWRhdGEtZXNjYXBlZC1l
bmQtdGFnLW9wZW4tc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInNjcmlwdC1k
YXRhLWVzY2FwZWQtZW5kLXRhZy1uYW1lLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAor
ICAgICJzY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlLXN0YXJ0LXN0YXRlIjogImh0bWwvc3ludGF4
L3BhcnNpbmciLAorICAgICJzY3JpcHQtZGF0YS1kb3VibGUtZXNjYXBlZC1zdGF0ZSI6ICJodG1s
L3N5bnRheC9wYXJzaW5nIiwKKyAgICAic2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZWQtZGFzaC1z
dGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAic2NyaXB0LWRhdGEtZG91YmxlLWVz
Y2FwZWQtZGFzaC1kYXNoLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJzY3Jp
cHQtZGF0YS1kb3VibGUtZXNjYXBlZC1sZXNzLXRoYW4tc2lnbi1zdGF0ZSI6ICJodG1sL3N5bnRh
eC9wYXJzaW5nIiwKKyAgICAic2NyaXB0LWRhdGEtZG91YmxlLWVzY2FwZS1lbmQtc3RhdGUiOiAi
aHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgImJlZm9yZS1hdHRyaWJ1dGUtbmFtZS1zdGF0ZSI6
ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAiYXR0cmlidXRlLW5hbWUtc3RhdGUiOiAiaHRt
bC9zeW50YXgvcGFyc2luZyIsCisgICAgImFmdGVyLWF0dHJpYnV0ZS1uYW1lLXN0YXRlIjogImh0
bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJiZWZvcmUtYXR0cmlidXRlLXZhbHVlLXN0YXRlIjog
Imh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJhdHRyaWJ1dGUtdmFsdWUtKGRvdWJsZS1xdW90
ZWQpLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJhdHRyaWJ1dGUtdmFsdWUt
KHNpbmdsZS1xdW90ZWQpLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJhdHRy
aWJ1dGUtdmFsdWUtKHVucXVvdGVkKS1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAg
ICAiY2hhcmFjdGVyLXJlZmVyZW5jZS1pbi1hdHRyaWJ1dGUtdmFsdWUtc3RhdGUiOiAiaHRtbC9z
eW50YXgvcGFyc2luZyIsCisgICAgImFmdGVyLWF0dHJpYnV0ZS12YWx1ZS0ocXVvdGVkKS1zdGF0
ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAic2VsZi1jbG9zaW5nLXN0YXJ0LXRhZy1z
dGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAiYm9ndXMtY29tbWVudC1zdGF0ZSI6
ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAibWFya3VwLWRlY2xhcmF0aW9uLW9wZW4tc3Rh
dGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgImNvbW1lbnQtc3RhcnQtc3RhdGUiOiAi
aHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgImNvbW1lbnQtc3RhcnQtZGFzaC1zdGF0ZSI6ICJo
dG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAiY29tbWVudC1zdGF0ZSI6ICJodG1sL3N5bnRheC9w
YXJzaW5nIiwKKyAgICAiY29tbWVudC1lbmQtZGFzaC1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJz
aW5nIiwKKyAgICAiY29tbWVudC1lbmQtc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisg
ICAgImNvbW1lbnQtZW5kLWJhbmctc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAg
ImRvY3R5cGUtc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgImJlZm9yZS1kb2N0
eXBlLW5hbWUtc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgImRvY3R5cGUtbmFt
ZS1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAiYWZ0ZXItZG9jdHlwZS1uYW1l
LXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJhZnRlci1kb2N0eXBlLXB1Ymxp
Yy1rZXl3b3JkLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJiZWZvcmUtZG9j
dHlwZS1wdWJsaWMtaWRlbnRpZmllci1zdGF0ZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAg
ICAiZG9jdHlwZS1wdWJsaWMtaWRlbnRpZmllci0oZG91YmxlLXF1b3RlZCktc3RhdGUiOiAiaHRt
bC9zeW50YXgvcGFyc2luZyIsCisgICAgImRvY3R5cGUtcHVibGljLWlkZW50aWZpZXItKHNpbmds
ZS1xdW90ZWQpLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJhZnRlci1kb2N0
eXBlLXB1YmxpYy1pZGVudGlmaWVyLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAg
ICJiZXR3ZWVuLWRvY3R5cGUtcHVibGljLWFuZC1zeXN0ZW0taWRlbnRpZmllcnMtc3RhdGUiOiAi
aHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgImFmdGVyLWRvY3R5cGUtc3lzdGVtLWtleXdvcmQt
c3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgImJlZm9yZS1kb2N0eXBlLXN5c3Rl
bS1pZGVudGlmaWVyLXN0YXRlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJkb2N0eXBl
LXN5c3RlbS1pZGVudGlmaWVyLShkb3VibGUtcXVvdGVkKS1zdGF0ZSI6ICJodG1sL3N5bnRheC9w
YXJzaW5nIiwKKyAgICAiZG9jdHlwZS1zeXN0ZW0taWRlbnRpZmllci0oc2luZ2xlLXF1b3RlZCkt
c3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgImFmdGVyLWRvY3R5cGUtc3lzdGVt
LWlkZW50aWZpZXItc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgImJvZ3VzLWRv
Y3R5cGUtc3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgImNkYXRhLXNlY3Rpb24t
c3RhdGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInRva2VuaXppbmctY2hhcmFjdGVy
LXJlZmVyZW5jZXMiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInRyZWUtY29uc3RydWN0
aW9uIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJjcmVhdGluZy1hbmQtaW5zZXJ0aW5n
LWVsZW1lbnRzIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJjbG9zaW5nLWVsZW1lbnRz
LXRoYXQtaGF2ZS1pbXBsaWVkLWVuZC10YWdzIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAg
ICJmb3N0ZXItcGFyZW50aW5nIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJwYXJzaW5n
LW1haW4taW5odG1sIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJ0aGUtaW5pdGlhbC1p
bnNlcnRpb24tbW9kZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAidGhlLWJlZm9yZS1o
dG1sLWluc2VydGlvbi1tb2RlIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJ0aGUtYmVm
b3JlLWhlYWQtaW5zZXJ0aW9uLW1vZGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInBh
cnNpbmctbWFpbi1pbmhlYWQiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInBhcnNpbmct
bWFpbi1pbmhlYWRub3NjcmlwdCI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAidGhlLWFm
dGVyLWhlYWQtaW5zZXJ0aW9uLW1vZGUiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInBh
cnNpbmctbWFpbi1pbmJvZHkiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInBhcnNpbmct
bWFpbi1pbmNkYXRhIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJwYXJzaW5nLW1haW4t
aW50YWJsZSI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAicGFyc2luZy1tYWluLWludGFi
bGV0ZXh0IjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJwYXJzaW5nLW1haW4taW5jYXB0
aW9uIjogImh0bWwvc3ludGF4L3BhcnNpbmciLAorICAgICJwYXJzaW5nLW1haW4taW5jb2xncm91
cCI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwKKyAgICAicGFyc2luZy1tYWluLWludGJvZHkiOiAi
aHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInBhcnNpbmctbWFpbi1pbnRyIjogImh0bWwvc3lu
dGF4L3BhcnNpbmciLAorICAgICJwYXJzaW5nLW1haW4taW50ZCI6ICJodG1sL3N5bnRheC9wYXJz
aW5nIiwKKyAgICAicGFyc2luZy1tYWluLWluc2VsZWN0IjogImh0bWwvc3ludGF4L3BhcnNpbmci
LAorICAgICJwYXJzaW5nLW1haW4taW5zZWxlY3RpbnRhYmxlIjogImh0bWwvc3ludGF4L3BhcnNp
bmciLAorICAgICJwYXJzaW5nLW1haW4tYWZ0ZXJib2R5IjogImh0bWwvc3ludGF4L3BhcnNpbmci
LAorICAgICJwYXJzaW5nLW1haW4taW5mcmFtZXNldCI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwK
KyAgICAicGFyc2luZy1tYWluLWFmdGVyZnJhbWVzZXQiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIs
CisgICAgInRoZS1hZnRlci1hZnRlci1ib2R5LWluc2VydGlvbi1tb2RlIjogImh0bWwvc3ludGF4
L3BhcnNpbmciLAorICAgICJ0aGUtYWZ0ZXItYWZ0ZXItZnJhbWVzZXQtaW5zZXJ0aW9uLW1vZGUi
OiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInBhcnNpbmctbWFpbi1pbmZvcmVpZ24iOiAi
aHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInRoZS1lbmQiOiAiaHRtbC9zeW50YXgvcGFyc2lu
ZyIsCisgICAgImNvZXJjaW5nLWFuLWh0bWwtZG9tLWludG8tYW4taW5mb3NldCI6ICJodG1sL3N5
bnRheC9wYXJzaW5nIiwKKyAgICAiYW4taW50cm9kdWN0aW9uLXRvLWVycm9yLWhhbmRsaW5nLWFu
ZC1zdHJhbmdlLWNhc2VzLWluLXRoZS1wYXJzZXIiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisg
ICAgIm1pc25lc3RlZC10YWdzOi1iLWktL2ItL2kiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisg
ICAgIm1pc25lc3RlZC10YWdzOi1iLXAtL2ItL3AiOiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisg
ICAgInVuZXhwZWN0ZWQtbWFya3VwLWluLXRhYmxlcyI6ICJodG1sL3N5bnRheC9wYXJzaW5nIiwK
KyAgICAic2NyaXB0cy10aGF0LW1vZGlmeS10aGUtcGFnZS1hcy1pdC1pcy1iZWluZy1wYXJzZWQi
OiAiaHRtbC9zeW50YXgvcGFyc2luZyIsCisgICAgInRoZS1leGVjdXRpb24tb2Ytc2NyaXB0cy10
aGF0LWFyZS1tb3ZpbmctYWNyb3NzLW11bHRpcGxlLWRvY3VtZW50cyI6ICJodG1sL3N5bnRheC9w
YXJzaW5nIiwKKyAgICAidW5jbG9zZWQtZm9ybWF0dGluZy1lbGVtZW50cyI6ICJodG1sL3N5bnRh
eC9wYXJzaW5nIiwKKyAgICAic2VyaWFsaXppbmctaHRtbC1mcmFnbWVudHMiOiAiaHRtbC9zeW50
YXgvc2VyaWFsaXppbmctaHRtbC1mcmFnbWVudHMiLAorICAgICJwYXJzaW5nLWh0bWwtZnJhZ21l
bnRzIjogImh0bWwvc3ludGF4L3BhcnNpbmctaHRtbC1mcmFnbWVudHMiLAorICAgICJuYW1lZC1j
aGFyYWN0ZXItcmVmZXJlbmNlcyI6ICJodG1sL3N5bnRheC9uYW1lZC1jaGFyYWN0ZXItcmVmZXJl
bmNlcyIsCisgICAgInRoZS14aHRtbC1zeW50YXgiOiAiaHRtbC90aGUteGh0bWwtc3ludGF4IiwK
KyAgICAid3JpdGluZy14aHRtbC1kb2N1bWVudHMiOiAiaHRtbC90aGUteGh0bWwtc3ludGF4L3dy
aXRpbmcteGh0bWwtZG9jdW1lbnRzIiwKKyAgICAicGFyc2luZy14aHRtbC1kb2N1bWVudHMiOiAi
aHRtbC90aGUteGh0bWwtc3ludGF4L3BhcnNpbmcteGh0bWwtZG9jdW1lbnRzIiwKKyAgICAic2Vy
aWFsaXppbmcteGh0bWwtZnJhZ21lbnRzIjogImh0bWwvdGhlLXhodG1sLXN5bnRheC9zZXJpYWxp
emluZy14aHRtbC1mcmFnbWVudHMiLAorICAgICJwYXJzaW5nLXhodG1sLWZyYWdtZW50cyI6ICJo
dG1sL3RoZS14aHRtbC1zeW50YXgvcGFyc2luZy14aHRtbC1mcmFnbWVudHMiLAorICAgICJyZW5k
ZXJpbmciOiAiaHRtbC9yZW5kZXJpbmciLAorICAgICJpbnRyb2R1Y3Rpb24tOCI6ICJodG1sL3Jl
bmRlcmluZy9pbnRyb2R1Y3Rpb24tOCIsCisgICAgInRoZS1jc3MtdXNlci1hZ2VudC1zdHlsZS1z
aGVldC1hbmQtcHJlc2VudGF0aW9uYWwtaGludHMiOiAiaHRtbC9yZW5kZXJpbmcvdGhlLWNzcy11
c2VyLWFnZW50LXN0eWxlLXNoZWV0LWFuZC1wcmVzZW50YXRpb25hbC1oaW50cyIsCisgICAgIm5v
bi1yZXBsYWNlZC1lbGVtZW50cyI6ICJodG1sL3JlbmRlcmluZy9ub24tcmVwbGFjZWQtZWxlbWVu
dHMiLAorICAgICJoaWRkZW4tZWxlbWVudHMiOiAiaHRtbC9yZW5kZXJpbmcvbm9uLXJlcGxhY2Vk
LWVsZW1lbnRzL2hpZGRlbi1lbGVtZW50cyIsCisgICAgInRoZS1wYWdlIjogImh0bWwvcmVuZGVy
aW5nL25vbi1yZXBsYWNlZC1lbGVtZW50cy90aGUtcGFnZSIsCisgICAgImZsb3ctY29udGVudC0w
IjogImh0bWwvcmVuZGVyaW5nL25vbi1yZXBsYWNlZC1lbGVtZW50cy9mbG93LWNvbnRlbnQtMCIs
CisgICAgInBocmFzaW5nLWNvbnRlbnQtMCI6ICJodG1sL3JlbmRlcmluZy9ub24tcmVwbGFjZWQt
ZWxlbWVudHMvcGhyYXNpbmctY29udGVudC0wIiwKKyAgICAiYmlkaXJlY3Rpb25hbC10ZXh0Ijog
Imh0bWwvcmVuZGVyaW5nL25vbi1yZXBsYWNlZC1lbGVtZW50cy9iaWRpcmVjdGlvbmFsLXRleHQi
LAorICAgICJxdW90ZXMiOiAiaHRtbC9yZW5kZXJpbmcvbm9uLXJlcGxhY2VkLWVsZW1lbnRzL3F1
b3RlcyIsCisgICAgInNlY3Rpb25zLWFuZC1oZWFkaW5ncyI6ICJodG1sL3JlbmRlcmluZy9ub24t
cmVwbGFjZWQtZWxlbWVudHMvc2VjdGlvbnMtYW5kLWhlYWRpbmdzIiwKKyAgICAibGlzdHMiOiAi
aHRtbC9yZW5kZXJpbmcvbm9uLXJlcGxhY2VkLWVsZW1lbnRzL2xpc3RzIiwKKyAgICAidGFibGVz
IjogImh0bWwvcmVuZGVyaW5nL25vbi1yZXBsYWNlZC1lbGVtZW50cy90YWJsZXMiLAorICAgICJm
b3JtLWNvbnRyb2xzIjogImh0bWwvcmVuZGVyaW5nL25vbi1yZXBsYWNlZC1lbGVtZW50cy9mb3Jt
LWNvbnRyb2xzIiwKKyAgICAidGhlLWhyLWVsZW1lbnQtMCI6ICJodG1sL3JlbmRlcmluZy9ub24t
cmVwbGFjZWQtZWxlbWVudHMvdGhlLWhyLWVsZW1lbnQtMCIsCisgICAgInRoZS1maWVsZHNldC1l
bGVtZW50LTAiOiAiaHRtbC9yZW5kZXJpbmcvbm9uLXJlcGxhY2VkLWVsZW1lbnRzL3RoZS1maWVs
ZHNldC1lbGVtZW50LTAiLAorICAgICJyZXBsYWNlZC1lbGVtZW50cyI6ICJodG1sL3JlbmRlcmlu
Zy9yZXBsYWNlZC1lbGVtZW50cyIsCisgICAgImVtYmVkZGVkLWNvbnRlbnQtMSI6ICJodG1sL3Jl
bmRlcmluZy9yZXBsYWNlZC1lbGVtZW50cy9lbWJlZGRlZC1jb250ZW50LTEiLAorICAgICJpbWFn
ZXMiOiAiaHRtbC9yZW5kZXJpbmcvcmVwbGFjZWQtZWxlbWVudHMvaW1hZ2VzIiwKKyAgICAiYXR0
cmlidXRlcy1mb3ItZW1iZWRkZWQtY29udGVudC1hbmQtaW1hZ2VzIjogImh0bWwvcmVuZGVyaW5n
L3JlcGxhY2VkLWVsZW1lbnRzL2F0dHJpYnV0ZXMtZm9yLWVtYmVkZGVkLWNvbnRlbnQtYW5kLWlt
YWdlcyIsCisgICAgImltYWdlLW1hcHMtMCI6ICJodG1sL3JlbmRlcmluZy9yZXBsYWNlZC1lbGVt
ZW50cy9pbWFnZS1tYXBzLTAiLAorICAgICJ0b29sYmFycy0wIjogImh0bWwvcmVuZGVyaW5nL3Jl
cGxhY2VkLWVsZW1lbnRzL3Rvb2xiYXJzLTAiLAorICAgICJiaW5kaW5ncyI6ICJodG1sL3JlbmRl
cmluZy9iaW5kaW5ncyIsCisgICAgImludHJvZHVjdGlvbi05IjogImh0bWwvcmVuZGVyaW5nL2Jp
bmRpbmdzL2ludHJvZHVjdGlvbi05IiwKKyAgICAidGhlLWJ1dHRvbi1lbGVtZW50LTAiOiAiaHRt
bC9yZW5kZXJpbmcvYmluZGluZ3MvdGhlLWJ1dHRvbi1lbGVtZW50LTAiLAorICAgICJ0aGUtZGV0
YWlscy1lbGVtZW50LTAiOiAiaHRtbC9yZW5kZXJpbmcvYmluZGluZ3MvdGhlLWRldGFpbHMtZWxl
bWVudC0wIiwKKyAgICAidGhlLWlucHV0LWVsZW1lbnQtYXMtYS10ZXh0LWVudHJ5LXdpZGdldCI6
ICJodG1sL3JlbmRlcmluZy9iaW5kaW5ncy90aGUtaW5wdXQtZWxlbWVudC1hcy1hLXRleHQtZW50
cnktd2lkZ2V0IiwKKyAgICAidGhlLWlucHV0LWVsZW1lbnQtYXMtZG9tYWluLXNwZWNpZmljLXdp
ZGdldHMiOiAiaHRtbC9yZW5kZXJpbmcvYmluZGluZ3MvdGhlLWlucHV0LWVsZW1lbnQtYXMtZG9t
YWluLXNwZWNpZmljLXdpZGdldHMiLAorICAgICJ0aGUtaW5wdXQtZWxlbWVudC1hcy1hLXJhbmdl
LWNvbnRyb2wiOiAiaHRtbC9yZW5kZXJpbmcvYmluZGluZ3MvdGhlLWlucHV0LWVsZW1lbnQtYXMt
YS1yYW5nZS1jb250cm9sIiwKKyAgICAidGhlLWlucHV0LWVsZW1lbnQtYXMtYS1jb2xvci13ZWxs
IjogImh0bWwvcmVuZGVyaW5nL2JpbmRpbmdzL3RoZS1pbnB1dC1lbGVtZW50LWFzLWEtY29sb3It
d2VsbCIsCisgICAgInRoZS1pbnB1dC1lbGVtZW50LWFzLWEtY2hlY2tib3gtYW5kLXJhZGlvLWJ1
dHRvbi13aWRnZXRzIjogImh0bWwvcmVuZGVyaW5nL2JpbmRpbmdzL3RoZS1pbnB1dC1lbGVtZW50
LWFzLWEtY2hlY2tib3gtYW5kLXJhZGlvLWJ1dHRvbi13aWRnZXRzIiwKKyAgICAidGhlLWlucHV0
LWVsZW1lbnQtYXMtYS1maWxlLXVwbG9hZC1jb250cm9sIjogImh0bWwvcmVuZGVyaW5nL2JpbmRp
bmdzL3RoZS1pbnB1dC1lbGVtZW50LWFzLWEtZmlsZS11cGxvYWQtY29udHJvbCIsCisgICAgInRo
ZS1pbnB1dC1lbGVtZW50LWFzLWEtYnV0dG9uIjogImh0bWwvcmVuZGVyaW5nL2JpbmRpbmdzL3Ro
ZS1pbnB1dC1lbGVtZW50LWFzLWEtYnV0dG9uIiwKKyAgICAidGhlLW1hcnF1ZWUtZWxlbWVudCI6
ICJodG1sL3JlbmRlcmluZy9iaW5kaW5ncy90aGUtbWFycXVlZS1lbGVtZW50IiwKKyAgICAidGhl
LW1ldGVyLWVsZW1lbnQtMCI6ICJodG1sL3JlbmRlcmluZy9iaW5kaW5ncy90aGUtbWV0ZXItZWxl
bWVudC0wIiwKKyAgICAidGhlLXByb2dyZXNzLWVsZW1lbnQtMCI6ICJodG1sL3JlbmRlcmluZy9i
aW5kaW5ncy90aGUtcHJvZ3Jlc3MtZWxlbWVudC0wIiwKKyAgICAidGhlLXNlbGVjdC1lbGVtZW50
LTAiOiAiaHRtbC9yZW5kZXJpbmcvYmluZGluZ3MvdGhlLXNlbGVjdC1lbGVtZW50LTAiLAorICAg
ICJ0aGUtdGV4dGFyZWEtZWxlbWVudC0wIjogImh0bWwvcmVuZGVyaW5nL2JpbmRpbmdzL3RoZS10
ZXh0YXJlYS1lbGVtZW50LTAiLAorICAgICJ0aGUta2V5Z2VuLWVsZW1lbnQtMCI6ICJodG1sL3Jl
bmRlcmluZy9iaW5kaW5ncy90aGUta2V5Z2VuLWVsZW1lbnQtMCIsCisgICAgImZyYW1lcy1hbmQt
ZnJhbWVzZXRzIjogImh0bWwvcmVuZGVyaW5nL2ZyYW1lcy1hbmQtZnJhbWVzZXRzIiwKKyAgICAi
aW50ZXJhY3RpdmUtbWVkaWEiOiAiaHRtbC9yZW5kZXJpbmcvaW50ZXJhY3RpdmUtbWVkaWEiLAor
ICAgICJsaW5rcywtZm9ybXMsLWFuZC1uYXZpZ2F0aW9uIjogImh0bWwvcmVuZGVyaW5nL2ludGVy
YWN0aXZlLW1lZGlhL2xpbmtzLWZvcm1zLWFuZC1uYXZpZ2F0aW9uIiwKKyAgICAidGhlLXRpdGxl
LWF0dHJpYnV0ZS0wIjogImh0bWwvcmVuZGVyaW5nL2ludGVyYWN0aXZlLW1lZGlhL3RoZS10aXRs
ZS1hdHRyaWJ1dGUtMCIsCisgICAgImVkaXRpbmctaG9zdHMiOiAiaHRtbC9yZW5kZXJpbmcvaW50
ZXJhY3RpdmUtbWVkaWEvZWRpdGluZy1ob3N0cyIsCisgICAgInRleHQtcmVuZGVyZWQtaW4tbmF0
aXZlLXVzZXItaW50ZXJmYWNlcyI6ICJodG1sL3JlbmRlcmluZy9pbnRlcmFjdGl2ZS1tZWRpYS90
ZXh0LXJlbmRlcmVkLWluLW5hdGl2ZS11c2VyLWludGVyZmFjZXMiLAorICAgICJwcmludC1tZWRp
YSI6ICJodG1sL3JlbmRlcmluZy9wcmludC1tZWRpYSIsCisgICAgInVuc3R5bGVkLXhtbC1kb2N1
bWVudHMiOiAiaHRtbC9yZW5kZXJpbmcvdW5zdHlsZWQteG1sLWRvY3VtZW50cyIsCisgICAgIm9i
c29sZXRlIjogImh0bWwvb2Jzb2xldGUiLAorICAgICJvYnNvbGV0ZS1idXQtY29uZm9ybWluZy1m
ZWF0dXJlcyI6ICJodG1sL29ic29sZXRlL29ic29sZXRlLWJ1dC1jb25mb3JtaW5nLWZlYXR1cmVz
IiwKKyAgICAid2FybmluZ3MtZm9yLW9ic29sZXRlLWJ1dC1jb25mb3JtaW5nLWZlYXR1cmVzIjog
Imh0bWwvb2Jzb2xldGUvb2Jzb2xldGUtYnV0LWNvbmZvcm1pbmctZmVhdHVyZXMvd2FybmluZ3Mt
Zm9yLW9ic29sZXRlLWJ1dC1jb25mb3JtaW5nLWZlYXR1cmVzIiwKKyAgICAibm9uLWNvbmZvcm1p
bmctZmVhdHVyZXMiOiAiaHRtbC9vYnNvbGV0ZS9ub24tY29uZm9ybWluZy1mZWF0dXJlcyIsCisg
ICAgInJlcXVpcmVtZW50cy1mb3ItaW1wbGVtZW50YXRpb25zIjogImh0bWwvb2Jzb2xldGUvcmVx
dWlyZW1lbnRzLWZvci1pbXBsZW1lbnRhdGlvbnMiLAorICAgICJ0aGUtYXBwbGV0LWVsZW1lbnQi
OiAiaHRtbC9vYnNvbGV0ZS9yZXF1aXJlbWVudHMtZm9yLWltcGxlbWVudGF0aW9ucy90aGUtYXBw
bGV0LWVsZW1lbnQiLAorICAgICJ0aGUtbWFycXVlZS1lbGVtZW50LTAiOiAiaHRtbC9vYnNvbGV0
ZS9yZXF1aXJlbWVudHMtZm9yLWltcGxlbWVudGF0aW9ucy90aGUtbWFycXVlZS1lbGVtZW50LTAi
LAorICAgICJmcmFtZXMiOiAiaHRtbC9vYnNvbGV0ZS9yZXF1aXJlbWVudHMtZm9yLWltcGxlbWVu
dGF0aW9ucy9mcmFtZXMiLAorICAgICJvdGhlci1lbGVtZW50cywtYXR0cmlidXRlcy1hbmQtYXBp
cyI6ICJodG1sL29ic29sZXRlL3JlcXVpcmVtZW50cy1mb3ItaW1wbGVtZW50YXRpb25zL290aGVy
LWVsZW1lbnRzLWF0dHJpYnV0ZXMtYW5kLWFwaXMiLAorICAgICJpYW5hIjogIm1pY3JvZGF0YS9p
YW5hIiwKKyAgICAidGV4dC9odG1sIjogImh0bWwvaWFuYS90ZXh0LWh0bWwiLAorICAgICJtdWx0
aXBhcnQveC1taXhlZC1yZXBsYWNlIjogImh0bWwvaWFuYS9tdWx0aXBhcnQteC1taXhlZC1yZXBs
YWNlIiwKKyAgICAiYXBwbGljYXRpb24veGh0bWwreG1sIjogImh0bWwvaWFuYS9hcHBsaWNhdGlv
bi14aHRtbC14bWwiLAorICAgICJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiOiAi
aHRtbC9pYW5hL2FwcGxpY2F0aW9uLXgtd3d3LWZvcm0tdXJsZW5jb2RlZCIsCisgICAgInRleHQv
Y2FjaGUtbWFuaWZlc3QiOiAiaHRtbC9pYW5hL3RleHQtY2FjaGUtbWFuaWZlc3QiLAorICAgICJw
aW5nLXRvIjogImh0bWwvaWFuYS9waW5nLXRvIiwKKyAgICAid2ViKy1zY2hlbWUtcHJlZml4Ijog
Imh0bWwvaWFuYS93ZWItc2NoZW1lLXByZWZpeCIsCisgICAgInRoZS1jYW52YXMtc3RhdGUiOiAi
Y2FudmFzMmQvdGhlLWNhbnZhcy1zdGF0ZSIsCisgICAgImRyYXdpbmdzdHlsZS1vYmplY3RzIjog
ImNhbnZhczJkL2RyYXdpbmdzdHlsZS1vYmplY3RzIiwKKyAgICAibGluZS1zdHlsZXMiOiAiY2Fu
dmFzMmQvbGluZS1zdHlsZXMiLAorICAgICJ0ZXh0LXN0eWxlcyI6ICJjYW52YXMyZC90ZXh0LXN0
eWxlcyIsCisgICAgImJ1aWxkaW5nLXBhdGhzIjogImNhbnZhczJkL2J1aWxkaW5nLXBhdGhzIiwK
KyAgICAicGF0aC1vYmplY3RzIjogImNhbnZhczJkL3BhdGgtb2JqZWN0cyIsCisgICAgInRyYW5z
Zm9ybWF0aW9ucyI6ICJjYW52YXMyZC90cmFuc2Zvcm1hdGlvbnMiLAorICAgICJmaWxsLWFuZC1z
dHJva2Utc3R5bGVzIjogImNhbnZhczJkL2ZpbGwtYW5kLXN0cm9rZS1zdHlsZXMiLAorICAgICJk
cmF3aW5nLXJlY3RhbmdsZXMtdG8tdGhlLWNhbnZhcyI6ICJjYW52YXMyZC9kcmF3aW5nLXJlY3Rh
bmdsZXMtdG8tdGhlLWNhbnZhcyIsCisgICAgImRyYXdpbmctdGV4dC10by10aGUtY2FudmFzIjog
ImNhbnZhczJkL2RyYXdpbmctdGV4dC10by10aGUtY2FudmFzIiwKKyAgICAiZHJhd2luZy1wYXRo
cy10by10aGUtY2FudmFzIjogImNhbnZhczJkL2RyYXdpbmctcGF0aHMtdG8tdGhlLWNhbnZhcyIs
CisgICAgImRyYXdpbmctaW1hZ2VzLXRvLXRoZS1jYW52YXMiOiAiY2FudmFzMmQvZHJhd2luZy1p
bWFnZXMtdG8tdGhlLWNhbnZhcyIsCisgICAgImhpdC1yZWdpb25zIjogImNhbnZhczJkL2hpdC1y
ZWdpb25zIiwKKyAgICAicGl4ZWwtbWFuaXB1bGF0aW9uIjogImNhbnZhczJkL3BpeGVsLW1hbmlw
dWxhdGlvbiIsCisgICAgImNvbXBvc2l0aW5nIjogImNhbnZhczJkL2NvbXBvc2l0aW5nIiwKKyAg
ICAic2hhZG93cyI6ICJjYW52YXMyZC9zaGFkb3dzIiwKKyAgICAiZHJhd2luZy1tb2RlbCI6ICJj
YW52YXMyZC9kcmF3aW5nLW1vZGVsIiwKKyAgICAiYmVzdC1wcmFjdGljZXMiOiAiY2FudmFzMmQv
YmVzdC1wcmFjdGljZXMiLAorICAgICJvdmVydmlldyI6ICJtaWNyb2RhdGEvaW50cm9kdWN0aW9u
L292ZXJ2aWV3IiwKKyAgICAidGhlLWJhc2ljLXN5bnRheCI6ICJtaWNyb2RhdGEvaW50cm9kdWN0
aW9uL3RoZS1iYXNpYy1zeW50YXgiLAorICAgICJ0eXBlZC1pdGVtcyI6ICJtaWNyb2RhdGEvaW50
cm9kdWN0aW9uL3R5cGVkLWl0ZW1zIiwKKyAgICAiZ2xvYmFsLWlkZW50aWZpZXJzLWZvci1pdGVt
cyI6ICJtaWNyb2RhdGEvaW50cm9kdWN0aW9uL2dsb2JhbC1pZGVudGlmaWVycy1mb3ItaXRlbXMi
LAorICAgICJzZWxlY3RpbmctbmFtZXMtd2hlbi1kZWZpbmluZy12b2NhYnVsYXJpZXMiOiAibWlj
cm9kYXRhL2ludHJvZHVjdGlvbi9zZWxlY3RpbmctbmFtZXMtd2hlbi1kZWZpbmluZy12b2NhYnVs
YXJpZXMiLAorICAgICJ1c2luZy10aGUtbWljcm9kYXRhLWRvbS1hcGkiOiAibWljcm9kYXRhL2lu
dHJvZHVjdGlvbi91c2luZy10aGUtbWljcm9kYXRhLWRvbS1hcGkiLAorICAgICJlbmNvZGluZy1t
aWNyb2RhdGEiOiAibWljcm9kYXRhL2VuY29kaW5nLW1pY3JvZGF0YSIsCisgICAgInRoZS1taWNy
b2RhdGEtbW9kZWwiOiAibWljcm9kYXRhL2VuY29kaW5nLW1pY3JvZGF0YS90aGUtbWljcm9kYXRh
LW1vZGVsIiwKKyAgICAiaXRlbXMiOiAibWljcm9kYXRhL2VuY29kaW5nLW1pY3JvZGF0YS9pdGVt
cyIsCisgICAgIm5hbWVzOi10aGUtaXRlbXByb3AtYXR0cmlidXRlIjogIm1pY3JvZGF0YS9lbmNv
ZGluZy1taWNyb2RhdGEvbmFtZXMtdGhlLWl0ZW1wcm9wLWF0dHJpYnV0ZSIsCisgICAgInZhbHVl
cyI6ICJtaWNyb2RhdGEvZW5jb2RpbmctbWljcm9kYXRhL3ZhbHVlcyIsCisgICAgImFzc29jaWF0
aW5nLW5hbWVzLXdpdGgtaXRlbXMiOiAibWljcm9kYXRhL2VuY29kaW5nLW1pY3JvZGF0YS9hc3Nv
Y2lhdGluZy1uYW1lcy13aXRoLWl0ZW1zIiwKKyAgICAibWljcm9kYXRhLWFuZC1vdGhlci1uYW1l
c3BhY2VzIjogIm1pY3JvZGF0YS9lbmNvZGluZy1taWNyb2RhdGEvbWljcm9kYXRhLWFuZC1vdGhl
ci1uYW1lc3BhY2VzIiwKKyAgICAibWljcm9kYXRhLWRvbS1hcGkiOiAibWljcm9kYXRhL21pY3Jv
ZGF0YS1kb20tYXBpIiwKKyAgICAiaHRtbHByb3BlcnRpZXNjb2xsZWN0aW9uIjogIm1pY3JvZGF0
YS9taWNyb2RhdGEtZG9tLWFwaS9odG1scHJvcGVydGllc2NvbGxlY3Rpb24iLAorICAgICJjb252
ZXJ0aW5nLWh0bWwtdG8tb3RoZXItZm9ybWF0cyI6ICJtaWNyb2RhdGEvY29udmVydGluZy1odG1s
LXRvLW90aGVyLWZvcm1hdHMiLAorICAgICJqc29uIjogIm1pY3JvZGF0YS9jb252ZXJ0aW5nLWh0
bWwtdG8tb3RoZXItZm9ybWF0cy9qc29uIgorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvc2NyaXB0cy9tYW5pZmVzdC5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy9tYW5pZmVzdC5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYmQ1
NTY4MjU5MDA5OGE5ZDI0MzQxZjJiODE5ZmQ2ZDk3ZTdhYWY5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRz
L21hbmlmZXN0LmpzCkBAIC0wLDAgKzEsMTQwIEBACisvLyBncmFiIHRlc3QgbWV0YWRhdGEgZnJv
bSBhIHRlc3QgZmlsZQorZnVuY3Rpb24gX19yZXN1bHRfaGFuZGxlcigpIHsKKworICAgIGZ1bmN0
aW9uIF9fZ2V0X21ldGFkYXRhKCkgeworCXZhciBvYmogPSBuZXcgT2JqZWN0KCk7CisJdmFyIGF1
dGhvciA9IFtdOworCXZhciBhc3NlcnQgPSBbXTsKKwl2YXIgaGVscCA9IFtdOworCXZhciBtYXRj
aCA9IFtdOworCXZhciBtaXNtYXRjaCA9IFtdOworCXZhciBmbGFncyA9IFtdOworCXZhciBub2Rl
czsKKworCW5vZGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tyZWw9ImF1dGhv
ciJdJyk7CisJZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykgeworCSAgICB2
YXIgaHJlZiA9IG5vZGVzW2ldLmdldEF0dHJpYnV0ZSgiaHJlZiIpOworCSAgICB2YXIgdGl0bGUg
PSBub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoInRpdGxlIik7CisJICAgIHZhciBzID0gdGl0bGU7CisJ
ICAgIGlmIChocmVmICE9IG51bGwpIHsKKwkJcyArPSAiIDwiICsgaHJlZiArICI+IjsKKwkgICAg
fQorCSAgICBhdXRob3IucHVzaChzKTsKKwl9CisJaWYgKG5vZGVzLmxlbmd0aCA+IDApIG9iai5h
dXRob3IgPSBhdXRob3I7CisJbm9kZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdtZXRh
W25hbWU9ImFzc2VydCJdJyk7CisJZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkr
KykgeworCSAgICBhc3NlcnQucHVzaChub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoImNvbnRlbnQiKSk7
CisJfQorCWlmIChub2Rlcy5sZW5ndGggPiAwKSBvYmouYXNzZXJ0ID0gYXNzZXJ0OworCW5vZGVz
ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tyZWw9ImhlbHAiXScpOworCWZvciAo
dmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKKwkgICAgaGVscC5wdXNoKG5vZGVz
W2ldLmdldEF0dHJpYnV0ZSgiaHJlZiIpKTsKKwl9CisJaWYgKG5vZGVzLmxlbmd0aCA+IDApIG9i
ai5oZWxwID0gaGVscDsKKwlub2RlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpbmtb
cmVsPSJtYXRjaCJdJyk7CisJZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykg
eworCSAgICBtYXRjaC5wdXNoKG5vZGVzW2ldLmdldEF0dHJpYnV0ZSgiaHJlZiIpKTsKKwl9CisJ
aWYgKG5vZGVzLmxlbmd0aCA+IDApIG9iai5tYXRjaCA9IG1hdGNoOworCW5vZGVzID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tyZWw9Im1pc21hdGNoIl0nKTsKKwlmb3IgKHZhciBp
ID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7CisJICAgIG1pc21hdGNoLnB1c2gobm9kZXNb
aV0uZ2V0QXR0cmlidXRlKCJocmVmIikpOworCX0KKwlpZiAobm9kZXMubGVuZ3RoID4gMCkgb2Jq
Lm1hdGNoID0gbWlzbWF0Y2g7CisJbm9kZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdt
ZXRhW25hbWU9ImZsYWdzIl0nKTsKKwlmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsg
aSsrKSB7CisJICAgIGZsYWdzLnB1c2gobm9kZXNbaV0uZ2V0QXR0cmlidXRlKCJjb250ZW50Iikp
OworCX0KKwlpZiAobm9kZXMubGVuZ3RoID4gMCkgb2JqLmZsYWdzID0gZmxhZ3M7CisKKwlyZXR1
cm4gb2JqOworICAgIH0KKworICAgIHZhciBtZXRhID0gX19nZXRfbWV0YWRhdGEoKTsKKyAgICB2
YXIgbm9kZXM7CisKKyAgICBmdW5jdGlvbiBjb3B5KG9iaiwgcHJvcCwgYXJyKSB7CisJaWYgKHR5
cGVvZiBhcnIgIT09ICJ1bmRlZmluZWQiKSB7CisJICAgIHZhciBhID0gW107CisJICAgIGZvciAo
dmFyIGkgPSAwOyBpPGFyci5sZW5ndGg7aSsrKSB7CisJCWFbaV0gPSBhcnJbaV07CisJICAgIH0J
CisJICAgIG9ialtwcm9wXSA9IGE7CisJfQorICAgIH0KKworCisgICAgdmFyIHJldCA9IG5ldyBP
YmplY3QoKTsKKyAgICByZXQubG9jYXRpb24gPSBkb2N1bWVudC5sb2NhdGlvbi5ocmVmOworICAg
IHJldC50eXBlICA9ICJtYW51YWwiOyAgICAKKyAgICByZXQudGVzdHMgPSBuZXcgT2JqZWN0KCk7
CisKKyAgICB2YXIgbm9kZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMkPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIl0nKTsKKyAgICBpZiAobm9kZSAhPT0gbnVsbCkgewor
CXJldC50eXBlID0gInNjcmlwdCI7CisgICAgfQorCisgICAgaWYgKHJldC50eXBlID09PSAic2Ny
aXB0IikgeworCWlmICh0eXBlb2YgbWV0YWRhdGFfZ2VuZXJhdG9yID09PSAidW5kZWZpbmVkIgor
CSAgICB8fCBPYmplY3Qua2V5cyhtZXRhZGF0YV9nZW5lcmF0b3IuY3VycmVudE1ldGFkYXRhKS5s
ZW5ndGggPT09IDApCisJICAgIHJldHVybiAiV1JBUFBFUjpUUllfQUdBSU4iOworCWVsc2Ugewor
CSAgICBmb3IgKHZhciBrZXkgaW4gbWV0YWRhdGFfZ2VuZXJhdG9yLmN1cnJlbnRNZXRhZGF0YSkg
eworCQl2YXIgb2JqID0gbWV0YWRhdGFfZ2VuZXJhdG9yLmN1cnJlbnRNZXRhZGF0YVtrZXldOwor
CQl2YXIgbmV3dGVzdCA9IG5ldyBPYmplY3QoKTsKKwkJcmV0LnRlc3RzW2tleV09IG5ld3Rlc3Q7
CisJCWlmICh0eXBlb2Ygb2JqLmhlbHAgPT09ICJ1bmRlZmluZWQiKSB7CisJCSAgICBjb3B5KG5l
d3Rlc3QsICJoZWxwIiwgbWV0YS5oZWxwKTsKKwkJfSBlbHNlIGlmICh0eXBlb2Ygb2JqLmhlbHAg
PT09ICJzdHJpbmciKSB7CisJCSAgICBuZXd0ZXN0LmhlbHAgPSBbIG9iai5oZWxwIF07CSAgCisJ
CX0KKwkJaWYgKHR5cGVvZiBvYmouYXV0aG9yID09PSAidW5kZWZpbmVkIikgeworCQkgICAgY29w
eShuZXd0ZXN0LCAiYXV0aG9yIiwgbWV0YS5hdXRob3IpOworCQl9IGVsc2UgaWYgKHR5cGVvZiBv
YmouYXV0aG9yID09PSAic3RyaW5nIikgeworCQkgICAgbmV3dGVzdC5hdXRob3IgPSBbIG9iai5h
dXRob3IgXTsJICAKKwkJfQorCQlpZiAodHlwZW9mIG9iai5hc3NlcnQgPT09ICJ1bmRlZmluZWQi
KSB7CisJCSAgICBjb3B5KG5ld3Rlc3QsICJhc3NlcnQiLCBtZXRhLmFzc2VydCk7CisJCX0gZWxz
ZSBpZiAodHlwZW9mIG9iai5hc3NlcnQgPT09ICJzdHJpbmciKSB7CisJCSAgICBuZXd0ZXN0LmFz
c2VydCA9IFsgb2JqLmFzc2VydCBdOwkgIAorCQl9CisJCWNvcHkobmV3dGVzdCwgIm1hdGNoIiwg
bWV0YS5tYXRjaCk7CisJCWNvcHkobmV3dGVzdCwgIm1pc21hdGNoIiwgbWV0YS5taXNtYXRjaCk7
CisJCWNvcHkobmV3dGVzdCwgImZsYWdzIiwgbWV0YS5mbGFncyk7CisJICAgIH0KKwkgICAgcmV0
dXJuIHJldDsKKwl9CisgICAgfSBlbHNlIHsKKwl2YXIgbmV3dGVzdCA9IG1ldGE7CisJcmV0LnRl
c3RzW2RvY3VtZW50LnRpdGxlXT0gbmV3dGVzdDsJCisKKwlpZiAodHlwZW9mIG5ld3Rlc3QubWF0
Y2ggIT09ICJ1bmRlZmluZWQiCisJICAgIHx8IHR5cGVvZiBuZXd0ZXN0Lm1pc21hdGNoICE9PSAi
dW5kZWZpbmVkIikgeworCSAgICByZXQudHlwZSA9ICJyZWZ0ZXN0IjsKKwl9CisKKwlyZXR1cm4g
cmV0OworICAgIH0KKworfQorCitmdW5jdGlvbiBfX2dpdmVfdXAoKSB7CisgICAgdmFyIHJldCA9
IG5ldyBPYmplY3QoKTsKKyAgICByZXQubG9jYXRpb24gPSBkb2N1bWVudC5sb2NhdGlvbi5ocmVm
OworICAgIHJldC50eXBlICA9ICJtYW51YWwiOyAgICAKKyAgICByZXQudGVzdHMgPSBuZXcgT2Jq
ZWN0KCk7CisKKyAgICB2YXIgbm9kZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtz
cmMkPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIl0nKTsKKyAgICBpZiAobm9kZSAhPT0gbnVs
bCkgeworCXJldC50eXBlID0gInNjcmlwdCI7CisgICAgfSBlbHNlIGlmICh0eXBlb2YgbmV3dGVz
dC5tYXRjaCAhPT0gInVuZGVmaW5lZCIKKwkgICAgICAgfHwgdHlwZW9mIG5ld3Rlc3QubWlzbWF0
Y2ggIT09ICJ1bmRlZmluZWQiKSB7CisJcmV0LnR5cGUgPSAicmVmdGVzdCI7CisgICAgfQorCisg
ICAgdmFyIG5ld3Rlc3QgPSBfX2dldF9tZXRhZGF0YSgpOworICAgIHJldC50ZXN0c1tkb2N1bWVu
dC50aXRsZV09IG5ld3Rlc3Q7CQorICAgIAorICAgIHJldHVybiByZXQ7Cit9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Njcmlw
dHMvcGFja2FnZS5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9zY3JpcHRzL3BhY2thZ2UuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NjE4ZjY2OTFmNWZm
MmVlMWEzZGY2ZTA4ZWMzOGIyM2NjMjk0ZmNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL3BhY2thZ2Uu
anNvbgpAQCAtMCwwICsxLDExIEBACit7CisgICAgIm5hbWUiOiAgICAgImNvbnZlcnQiCissICAg
InZlcnNpb24iOiAgIjAuMC4xIgorLCAgICJwcml2YXRlIjogIHRydWUKKywgICAiZGVwZW5kZW5j
aWVzIjogeworICAgICAgICAibWtkaXJwIjogICAgICAgIioiCisgICAgLCAgICJ3cmVuY2giOiAg
ICAgICAiKiIKKyAgICAsICAgInVuZGVyc2NvcmUiOiAgICIqIgorICAgICwgICAianNkb20iOiAg
ICAgICAgIioiCisgICAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL3RvYy5qcyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy90b2MuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTIwZDRiZTAzOWZkMWFmOTAzZjEyOGYxYzMwOGMwOTEyZTIwY2QzYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvc2NyaXB0cy90b2MuanMKQEAgLTAsMCArMSwxMDcgQEAKKy8vIGdyYWIgdGhlIHRhYmxlIG9m
IGNvbnRlbnRzIGZpbGxlZCB3aXRoIGFsbCB0aGUgYW5jaG9ycworZnVuY3Rpb24gX19yZXN1bHRf
aGFuZGxlcigpIHsKKyAgICBmdW5jdGlvbiBnZXRNYXAoKSB7CisJdmFyIHRvY19lbGVtZW50ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnRzIikubmV4dEVsZW1lbnRTaWJsaW5nOwor
CisJZnVuY3Rpb24gZ2V0U2VjdGlvbigpIHsKKwkgICAgZnVuY3Rpb24gZ2V0SWRzKG5vZGUpIHsK
KwkJdmFyIGEgPSBbXTsKKwkgICAgCisJCXZhciBub2RlcyA9IG5vZGUucXVlcnlTZWxlY3RvckFs
bCgnKltpZF0nKTsKKwkJZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykgewor
CQkgICAgYS5wdXNoKG5vZGVzW2ldLmdldEF0dHJpYnV0ZSgiaWQiKSk7CisJCX0KKwkJcmV0dXJu
IGE7CisJICAgIH0KKwkKKwkgICAgZnVuY3Rpb24gZ2V0VE9DSWRzKCkgeworCQl2YXIgYSA9IFtd
OworCSAgICAKKwkJdmFyIG5vZGVzID0gdG9jX2VsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGkn
KTsKKwkJZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykgeworCQkgICAgdmFy
IGhyZWYgPSBub2Rlc1tpXS5maXJzdEVsZW1lbnRDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKTsK
KwkJICAgIGEucHVzaChocmVmLnN1YnN0cmluZygxKSk7CisJCX0KKwkJcmV0dXJuIGE7CisJICAg
IH0KKworCSAgICB2YXIgb2JqID0gbmV3IE9iamVjdCgpOworCSAgICB2YXIgaWRzID0gZ2V0SWRz
KGRvY3VtZW50KTsKKwkgICAgdmFyIHRvYyA9IGdldFRPQ0lkcygpOworICAgIAorCSAgICBmb3Ig
KHZhciBpID0gMTsgaSA8IHRvYy5sZW5ndGg7IGkrKykgeworCQl2YXIga2V5MSA9IHRvY1tpLTFd
OworCQl2YXIga2V5MiA9IHRvY1tpXTsKKwkJdmFyIG1hcCA9IFtdOworCisJCXZhciBpbmRleDEg
PSBpZHMuaW5kZXhPZihrZXkxKTsKKwkJdmFyIGluZGV4MiA9IGlkcy5pbmRleE9mKGtleTIpOwor
CisJCWlmICgoaW5kZXgyLWluZGV4MSkgPiAxKSB7CisJCSAgICBmb3IgKHZhciBqID0gaW5kZXgx
KzE7IGogPCBpbmRleDI7aisrKSB7CisJCQltYXAucHVzaChpZHNbal0pOworCQkgICAgfQorCQl9
CisKKwkJb2JqW2tleTFdID0gbWFwOworCSAgICB9CisJICAgIHsKKwkJdmFyIGtleSA9IHRvY1t0
b2MubGVuZ3RoLTFdOworCQl2YXIgaW5kZXggPSBpZHMuaW5kZXhPZihrZXkpOworCQl2YXIgbWFw
ID0gW107CisKKwkJZm9yICh2YXIgaiA9IGluZGV4KzE7IGogPCBpZHMubGVuZ3RoO2orKykgewor
CQkgICAgbWFwLnB1c2goaWRzW2pdKTsKKwkJfQorCQlvYmpba2V5XSA9IG1hcDsKKwkgICAgfQor
ICAgIAorCSAgICByZXR1cm4gb2JqOworCX0KKworCWZ1bmN0aW9uIHNlY3Rpb24oaWQpIHsKKwkg
ICAgdGhpcy5pZCA9IGlkOworCX0KKwlmdW5jdGlvbiBhZGRTdWJTZWN0aW9uKHNlY3Rpb24sIHN1
YikgeworCSAgICBpZiAodHlwZW9mIHNlY3Rpb24uc2VjdGlvbnMgPT09ICJ1bmRlZmluZWQiKSB7
CisJCXNlY3Rpb24uc2VjdGlvbnMgPSBbXTsKKwkgICAgfQorCSAgICBzZWN0aW9uLnNlY3Rpb25z
LnB1c2goc3ViKTsKKwl9CisKKwlmdW5jdGlvbiBsaShlbCwgbWFwKSB7CisJICAgIHZhciBvYmog
PSBuZXcgc2VjdGlvbihlbC5maXJzdEVsZW1lbnRDaGlsZC5nZXRBdHRyaWJ1dGUoImhyZWYiKS5z
dWJzdHJpbmcoMSkpOworCSAgICBvYmoudGl0bGUgPSBlbC5maXJzdEVsZW1lbnRDaGlsZC50ZXh0
Q29udGVudDsKKwkgICAgdmFyIGNoaWxkID0gZWwuZmlyc3RFbGVtZW50Q2hpbGQ7CisKKwkgICAg
dmFyIG0gPSBtYXBbb2JqLmlkXTsKKwkgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtLmxlbmd0aDsg
aSsrKSAgewkgICAgCisJCXZhciBzdWIgPSBuZXcgc2VjdGlvbihtW2ldKTsgCisJCWFkZFN1YlNl
Y3Rpb24ob2JqLCBzdWIpOworCSAgICB9CisJICAgIHdoaWxlIChjaGlsZCAhPT0gbnVsbCkgewor
CQlpZiAoY2hpbGQubm9kZU5hbWUgPT09ICJPTCIpIG9sKGNoaWxkLCBvYmosIG1hcCk7CisJCWNo
aWxkID0gY2hpbGQubmV4dEVsZW1lbnRTaWJsaW5nOworCSAgICB9CisJICAgIHJldHVybiBvYmo7
CisJfQorCisJZnVuY3Rpb24gb2woZWwsIHNlY3Rpb24sIG1hcCkgeworCSAgICB2YXIgY2hpbGQg
PSBlbC5maXJzdEVsZW1lbnRDaGlsZDsKKwkgICAgd2hpbGUgKGNoaWxkICE9PSBudWxsKSB7CisJ
CWFkZFN1YlNlY3Rpb24oc2VjdGlvbiwgbGkoY2hpbGQsIG1hcCkpOworCQljaGlsZCA9IGNoaWxk
Lm5leHRFbGVtZW50U2libGluZzsKKwkgICAgfQorCX0KKworCXZhciBtYXAgPSBnZXRTZWN0aW9u
KCk7CisJdmFyIG1haW4gPSBuZXcgc2VjdGlvbigiX19fbWFpbl9fXyIpOworCW1haW4udGl0bGUg
PSBkb2N1bWVudC50aXRsZTsKKworCW9sKHRvY19lbGVtZW50LCBtYWluLCBtYXApOworCisJcmV0
dXJuIG1haW47CisgICAgfQorCisgICAgcmV0dXJuIGdldE1hcCgpOworfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRz
L3VwZGF0ZS1kaXJlY3Rvcnktc3RydWN0dXJlLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL3VwZGF0ZS1kaXJlY3Rvcnktc3RydWN0
dXJlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjdkNzNkOTNhYzk2YjE5ZmVhM2QwZjc4ZDYxZGYxNTA1YjhhMDZl
M2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvdXBkYXRlLWRpcmVjdG9yeS1zdHJ1Y3R1cmUuanMKQEAg
LTAsMCArMSwxMDYgQEAKKworLy8gY29udmVydCBmcm9tIG9sZC1zdHlsZSB0ZXN0IHN0cnVjdHVy
ZSB0byBuZXcgc3R5bGUKKwordmFyIGZzID0gcmVxdWlyZSgiZnMiKQorLCAgIHB0aCA9IHJlcXVp
cmUoInBhdGgiKQorLCAgIGpzZG9tID0gcmVxdWlyZSgianNkb20iKQorLCAgIG1rZGlycCA9IHJl
cXVpcmUoIm1rZGlycCIpLnN5bmMKKywgICB0ZXN0RGlyID0gcHRoLmpvaW4oX19kaXJuYW1lLCAi
Li4vLi4iKQorLCAgIE1BWF9ERVBUSCA9IDMKKywgICBpZDJwYXRoID0ge30KKywgICBsaW1pdERl
cHRoID0geworICAgICAgICBwYXJzaW5nOiAgICB0cnVlCisgICAgfQorOworCit2YXIgc2VjdGlv
bnMgPSB7CisgICAgaHRtbDogICAgICAgImh0dHA6Ly93d3cudzMub3JnL2h0bWwvd2cvZHJhZnRz
L2h0bWwvbWFzdGVyL092ZXJ2aWV3Lmh0bWwiCissICAgY2FudmFzMmQ6ICAgImh0dHA6Ly93d3cu
dzMub3JnL2h0bWwvd2cvZHJhZnRzLzJkY29udGV4dC9odG1sNV9jYW52YXMvT3ZlcnZpZXcuaHRt
bCIKKywgICBtaWNyb2RhdGE6ICAiaHR0cDovL3d3dy53My5vcmcvaHRtbC93Zy9kcmFmdHMvbWlj
cm9kYXRhL21hc3Rlci9PdmVydmlldy5odG1sIgorfTsKKworZnVuY3Rpb24gd2Fsa1RyZWUgKCQs
ICRlbCwgbGlzdCkgeworICAgICRlbC5maW5kKCI+IGxpIikuZWFjaChmdW5jdGlvbiAoKSB7Cisg
ICAgICAgIHZhciAkbGkgPSAkKHRoaXMpCisgICAgICAgICwgICAkYSA9ICRsaS5maW5kKCI+IGEi
KS5maXJzdCgpCisgICAgICAgIDsKKyAgICAgICAgLy8gc2tpcCBzZWN0aW9ucyB0aGF0IGRvbid0
IGhhdmUgYSBudW1iZXIKKyAgICAgICAgaWYgKCEvXlxzKlxkKy8udGVzdCgkYS50ZXh0KCkpKSBy
ZXR1cm47CisgICAgICAgIHZhciBocmVmID0gJGEuYXR0cigiaHJlZiIpLnJlcGxhY2UoL14uKiMv
LCAiIikKKyAgICAgICAgLCAgIGRlZiA9IHsKKyAgICAgICAgICAgICAgICBpZDogaHJlZi50b0xv
d2VyQ2FzZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvW15hLXowLTlcLV0v
ZywgIi0iKQorICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoL1wtezIsfS9nLCAiLSIp
CisgICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvKD86XlwtfFwtJCkvZywgIiIpCisg
ICAgICAgICAgICAsICAgb3JpZ2luYWxfaWQ6IGhyZWYKKyAgICAgICAgICAgIH0KKyAgICAgICAg
LCAgICRvbCA9ICRsaS5maW5kKCI+IG9sIikuZmlyc3QoKQorICAgICAgICA7CisgICAgICAgIGlm
ICgkb2wubGVuZ3RoKSB7CisgICAgICAgICAgICBkZWYuY2hpbGRyZW4gPSBbXTsKKyAgICAgICAg
ICAgIHdhbGtUcmVlKCQsICRvbCwgZGVmLmNoaWxkcmVuKTsKKyAgICAgICAgfQorICAgICAgICBs
aXN0LnB1c2goZGVmKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gZXh0cmFjdFNlY3Rpb25zIChz
ZWMsIHNlY0Rpciwgc3BlYywgY2IpIHsKKyAgICBqc2RvbS5lbnYoCisgICAgICAgIHNwZWMKKyAg
ICAsICAgZnVuY3Rpb24gKGVyciwgd2luZG93KSB7CisgICAgICAgICAgICBpZiAoZXJyKSByZXR1
cm4gY2IoZXJyKTsKKyAgICAgICAgICAgIGpzZG9tLmpRdWVyeWlmeSh3aW5kb3csICJodHRwczov
L2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjguMy9qcXVlcnkubWluLmpz
IiwgZnVuY3Rpb24gKHdpbmRvdywgJCkgeworICAgICAgICAgICAgICAgIGlmICghJCkgcmV0dXJu
IGNiKCIkIHdhcyBub3QgZGVmaW5lZCIpOworICAgICAgICAgICAgICAgIHZhciAkcm9vdCA9ICQo
ImJvZHkgPiBvbC50b2MiKS5maXJzdCgpCisgICAgICAgICAgICAgICAgLCAgIHRyZWUgPSBbXQor
ICAgICAgICAgICAgICAgIDsKKyAgICAgICAgICAgICAgICB3YWxrVHJlZSgkLCAkcm9vdCwgdHJl
ZSk7CisgICAgICAgICAgICAgICAgY2IobnVsbCwgdHJlZSwgc2VjLCBzZWNEaXIpOworICAgICAg
ICAgICAgfQorICAgICAgICApOworICAgIH0pOworfQorCitmdW5jdGlvbiBtYWtlSUQyUGF0aCAo
YmFzZSwgdHJlZSkgeworICAgIGZvciAodmFyIGkgPSAwLCBuID0gdHJlZS5sZW5ndGg7IGkgPCBu
OyBpKyspIHsKKyAgICAgICAgdmFyIHNlYyA9IHRyZWVbaV07CisgICAgICAgIGlkMnBhdGhbc2Vj
Lm9yaWdpbmFsX2lkXSA9IGJhc2U7CisgICAgICAgIGlmIChzZWMuY2hpbGRyZW4gJiYgc2VjLmNo
aWxkcmVuLmxlbmd0aCkgbWFrZUlEMlBhdGgoYmFzZSwgc2VjLmNoaWxkcmVuKTsKKyAgICB9Cit9
CisKK2Z1bmN0aW9uIG1ha2VEaXJzIChiYXNlLCB0cmVlLCBkZXB0aCkgeworICAgIGNvbnNvbGUu
bG9nKCJNYWtpbmcgIiArIGJhc2UgKyAiIGF0IGRlcHRoICIgKyBkZXB0aCk7CisgICAgZm9yICh2
YXIgaSA9IDAsIG4gPSB0cmVlLmxlbmd0aDsgaSA8IG47IGkrKykgeworICAgICAgICB2YXIgc2Vj
ID0gdHJlZVtpXQorICAgICAgICAsICAgcGF0aCA9IHB0aC5qb2luKGJhc2UsIHNlYy5pZCkKKyAg
ICAgICAgOworICAgICAgICBta2RpcnAocGF0aCk7CisgICAgICAgIGZzLndyaXRlRmlsZVN5bmMo
cHRoLmpvaW4ocGF0aCwgIi5naXRrZWVwIiksICIiLCAidXRmOCIpOworICAgICAgICBpZDJwYXRo
W3NlYy5vcmlnaW5hbF9pZF0gPSBwYXRoOworICAgICAgICBpZiAoc2VjLmlkICE9PSBzZWMub3Jp
Z2luYWxfaWQpIHsKKyAgICAgICAgICAgIGZzLndyaXRlRmlsZVN5bmMocHRoLmpvaW4ocGF0aCwg
Im9yaWdpbmFsLWlkLmpzb24iKSwgSlNPTi5zdHJpbmdpZnkoeyBvcmlnaW5hbF9pZDogc2VjLm9y
aWdpbmFsX2lkfSksICJ1dGY4Iik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNlYy5jaGlsZHJl
biAmJiBzZWMuY2hpbGRyZW4ubGVuZ3RoKSB7CisgICAgICAgICAgICBpZiAoZGVwdGggPT09IE1B
WF9ERVBUSCB8fCBsaW1pdERlcHRoW3NlYy5pZF0pIHsKKyAgICAgICAgICAgICAgICBmcy53cml0
ZUZpbGVTeW5jKHB0aC5qb2luKHBhdGgsICJjb250YWlucy5qc29uIiksIEpTT04uc3RyaW5naWZ5
KHNlYy5jaGlsZHJlbiwgbnVsbCwgNCksICJ1dGY4Iik7CisgICAgICAgICAgICAgICAgbWFrZUlE
MlBhdGgocGF0aCwgc2VjLmNoaWxkcmVuKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVs
c2UgeworICAgICAgICAgICAgICAgIG1ha2VEaXJzKHBhdGgsIHNlYy5jaGlsZHJlbiwgZGVwdGgg
KyAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworZm9yICh2YXIgc2Vj
IGluIHNlY3Rpb25zKSB7CisgICAgdmFyIHNlY0RpciA9IHB0aC5qb2luKHRlc3REaXIsIHNlYyk7
CisgICAgbWtkaXJwKHNlY0Rpcik7CisgICAgY29uc29sZS5sb2coIkxhdW5jaGluZyBleHRyYWN0
aW9uIGZvciAiICsgc2VjKTsKKyAgICBleHRyYWN0U2VjdGlvbnMoc2VjLCBzZWNEaXIsIHNlY3Rp
b25zW3NlY10sIGZ1bmN0aW9uIChlcnIsIHRvYywgc2VjLCBzZWNEaXIpIHsKKyAgICAgICAgaWYg
KGVycikgcmV0dXJuIGNvbnNvbGUubG9nKCJFUlJPUjogIiArIGVycik7CisgICAgICAgIG1ha2VE
aXJzKHNlY0RpciwgdG9jLCAxKTsKKyAgICAgICAgZm9yICh2YXIgayBpbiBpZDJwYXRoKSBpZDJw
YXRoW2tdID0gaWQycGF0aFtrXS5yZXBsYWNlKHRlc3REaXIgKyAiLyIsICIiKTsKKyAgICAgICAg
ZnMud3JpdGVGaWxlU3luYyhwdGguam9pbihfX2Rpcm5hbWUsICJpZDJwYXRoLmpzb24iKSwgSlNP
Ti5zdHJpbmdpZnkoaWQycGF0aCwgbnVsbCwgNCksICJ1dGY4Iik7CisgICAgfSk7Cit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3NjcmlwdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTMy
NjU3M2U5ODU3YTNjNDE0MDRlYWQyZjg1NzE5NDM2NWI3ZTBhYQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0
cy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDIyIEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvaWQycGF0aC5qcwor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0
cy9pZDJwYXRoLmpzb24KKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3NjcmlwdHMvbWFuaWZlc3QuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvcGFja2FnZS5qc29uCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL3RvYy5qcwor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0
cy91cGRhdGUtZGlyZWN0b3J5LXN0cnVjdHVyZS5qcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS9zZXJ2ZS5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvc2Vy
dmUucHkKaW5kZXggODg2NTUzYmRlODZiOWQ5ZjY2ZDJmMTI5YTk1OTVhMDU3Y2M2MjFlOS4uMzg4
MTQwYjJhODM3ZWRhYjFjYTMwYTM3YTE0MzhkNzEyMjIxMzgwOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS9zZXJ2ZS5w
eQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3NlcnZlL3NlcnZlLnB5CkBAIC0xNyw3ICsxNyw3IEBAIGltcG9ydCB1dWlkCiBmcm9tIGNvbGxl
Y3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdCwgT3JkZXJlZERpY3QKIGZyb20gbXVsdGlwcm9jZXNz
aW5nIGltcG9ydCBQcm9jZXNzLCBFdmVudAogCi1mcm9tIC4ubG9jYWxwYXRocyBpbXBvcnQgcmVw
b19yb290Citmcm9tIGxvY2FscGF0aHMgaW1wb3J0IHJlcG9fcm9vdAogCiBpbXBvcnQgc3NsdXRp
bHMKIGZyb20gbWFuaWZlc3Quc291cmNlZmlsZSBpbXBvcnQgcmVhZF9zY3JpcHRfbWV0YWRhdGEs
IGpzX21ldGFfcmUKQEAgLTIwMyw2ICsyMDMsOCBAQCBzdWJkb21haW5zID0gW3Uid3d3IiwKICAg
ICAgICAgICAgICAgdSLlpKnmsJfjga7oia/jgYTml6UiLAogICAgICAgICAgICAgICB1IsOpbMOo
dmUiXQogCitub3Rfc3ViZG9tYWlucyA9IFt1Im5vbmV4aXN0ZW50LW9yaWdpbiJdCisKIGNsYXNz
IFJvdXRlc0J1aWxkZXIob2JqZWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAg
IHNlbGYuZm9yYmlkZGVuX292ZXJyaWRlID0gWygiR0VUIiwgIi90b29scy9ydW5uZXIvKiIsIGhh
bmRsZXJzLmZpbGVfaGFuZGxlciksCkBAIC0yMTQsMTQgKzIxNiwxNCBAQCBjbGFzcyBSb3V0ZXNC
dWlsZGVyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICgiKiIsICJ7c3BlY30v
dG9vbHMvKiIsIGhhbmRsZXJzLkVycm9ySGFuZGxlcig0MDQpKSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKCIqIiwgIi9zZXJ2ZS5weSIsIGhhbmRsZXJzLkVycm9ySGFuZGxlcig0MDQpKV0K
IAotICAgICAgICBzZWxmLnN0YXRpYyA9IFtdCisgICAgICAgIHNlbGYuZXh0cmEgPSBbXQogCiAg
ICAgICAgIHNlbGYubW91bnRwb2ludF9yb3V0ZXMgPSBPcmRlcmVkRGljdCgpCiAKICAgICAgICAg
c2VsZi5hZGRfbW91bnRfcG9pbnQoIi8iLCBOb25lKQogCiAgICAgZGVmIGdldF9yb3V0ZXMoc2Vs
Zik6Ci0gICAgICAgIHJvdXRlcyA9IHNlbGYuZm9yYmlkZGVuX292ZXJyaWRlICsgc2VsZi5mb3Ji
aWRkZW4gKyBzZWxmLnN0YXRpYworICAgICAgICByb3V0ZXMgPSBzZWxmLmZvcmJpZGRlbl9vdmVy
cmlkZSArIHNlbGYuZm9yYmlkZGVuICsgc2VsZi5leHRyYQogICAgICAgICAjIFVzaW5nIHJldmVy
c2VkIGhlcmUgbWVhbnMgdGhhdCBtb3VudCBwb2ludHMgdGhhdCBhcmUgYWRkZWQgbGF0ZXIKICAg
ICAgICAgIyBnZXQgaGlnaGVyIHByaW9yaXR5LiBUaGlzIG1ha2VzIHNlbnNlIHNpbmNlIC8gaXMg
dHlwaWNhbGx5IGFkZGVkCiAgICAgICAgICMgZmlyc3QuCkBAIC0yMjksOSArMjMxLDE0IEBAIGNs
YXNzIFJvdXRlc0J1aWxkZXIob2JqZWN0KToKICAgICAgICAgICAgIHJvdXRlcy5leHRlbmQoaXRl
bSkKICAgICAgICAgcmV0dXJuIHJvdXRlcwogCi0gICAgZGVmIGFkZF9zdGF0aWMoc2VsZiwgcGF0
aCwgZm9ybWF0X2FyZ3MsIGNvbnRlbnRfdHlwZSwgcm91dGUpOgotICAgICAgICBoYW5kbGVyID0g
aGFuZGxlcnMuU3RhdGljSGFuZGxlcihwYXRoLCBmb3JtYXRfYXJncywgY29udGVudF90eXBlKQot
ICAgICAgICBzZWxmLnN0YXRpYy5hcHBlbmQoKGIiR0VUIiwgc3RyKHJvdXRlKSwgaGFuZGxlcikp
CisgICAgZGVmIGFkZF9oYW5kbGVyKHNlbGYsIG1ldGhvZCwgcm91dGUsIGhhbmRsZXIpOgorICAg
ICAgICBzZWxmLmV4dHJhLmFwcGVuZCgoc3RyKG1ldGhvZCksIHN0cihyb3V0ZSksIGhhbmRsZXIp
KQorCisgICAgZGVmIGFkZF9zdGF0aWMoc2VsZiwgcGF0aCwgZm9ybWF0X2FyZ3MsIGNvbnRlbnRf
dHlwZSwgcm91dGUsIGhlYWRlcnM9Tm9uZSk6CisgICAgICAgIGlmIGhlYWRlcnMgaXMgTm9uZToK
KyAgICAgICAgICAgIGhlYWRlcnMgPSB7fQorICAgICAgICBoYW5kbGVyID0gaGFuZGxlcnMuU3Rh
dGljSGFuZGxlcihwYXRoLCBmb3JtYXRfYXJncywgY29udGVudF90eXBlLCAqKmhlYWRlcnMpCisg
ICAgICAgIHNlbGYuYWRkX2hhbmRsZXIoYiJHRVQiLCBzdHIocm91dGUpLCBoYW5kbGVyKQogCiAg
ICAgZGVmIGFkZF9tb3VudF9wb2ludChzZWxmLCB1cmxfYmFzZSwgcGF0aCk6CiAgICAgICAgIHVy
bF9iYXNlID0gIi8lcy8iICUgdXJsX2Jhc2Uuc3RyaXAoIi8iKSBpZiB1cmxfYmFzZSAhPSAiLyIg
ZWxzZSAiLyIKQEAgLTM4MCwyNCArMzg3LDI0IEBAIGNsYXNzIFNlcnZlclByb2Mob2JqZWN0KToK
ICAgICAgICAgc2VsZi5kYWVtb24gPSBOb25lCiAgICAgICAgIHNlbGYuc3RvcCA9IEV2ZW50KCkK
IAotICAgIGRlZiBzdGFydChzZWxmLCBpbml0X2Z1bmMsIGhvc3QsIHBvcnQsIHBhdGhzLCByb3V0
ZXMsIGJpbmRfaG9zdG5hbWUsIGV4dGVybmFsX2NvbmZpZywKKyAgICBkZWYgc3RhcnQoc2VsZiwg
aW5pdF9mdW5jLCBob3N0LCBwb3J0LCBwYXRocywgcm91dGVzLCBiaW5kX2FkZHJlc3MsIGNvbmZp
ZywKICAgICAgICAgICAgICAgc3NsX2NvbmZpZywgKiprd2FyZ3MpOgogICAgICAgICBzZWxmLnBy
b2MgPSBQcm9jZXNzKHRhcmdldD1zZWxmLmNyZWF0ZV9kYWVtb24sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXJncz0oaW5pdF9mdW5jLCBob3N0LCBwb3J0LCBwYXRocywgcm91dGVzLCBi
aW5kX2hvc3RuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVybmFs
X2NvbmZpZywgc3NsX2NvbmZpZyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz0o
aW5pdF9mdW5jLCBob3N0LCBwb3J0LCBwYXRocywgcm91dGVzLCBiaW5kX2FkZHJlc3MsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLCBzc2xfY29uZmlnKSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3M9a3dhcmdzKQogICAgICAgICBzZWxmLnByb2Mu
ZGFlbW9uID0gVHJ1ZQogICAgICAgICBzZWxmLnByb2Muc3RhcnQoKQogCi0gICAgZGVmIGNyZWF0
ZV9kYWVtb24oc2VsZiwgaW5pdF9mdW5jLCBob3N0LCBwb3J0LCBwYXRocywgcm91dGVzLCBiaW5k
X2hvc3RuYW1lLAotICAgICAgICAgICAgICAgICAgICAgIGV4dGVybmFsX2NvbmZpZywgc3NsX2Nv
bmZpZywgKiprd2FyZ3MpOgorICAgIGRlZiBjcmVhdGVfZGFlbW9uKHNlbGYsIGluaXRfZnVuYywg
aG9zdCwgcG9ydCwgcGF0aHMsIHJvdXRlcywgYmluZF9hZGRyZXNzLAorICAgICAgICAgICAgICAg
ICAgICAgIGNvbmZpZywgc3NsX2NvbmZpZywgKiprd2FyZ3MpOgogICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICBzZWxmLmRhZW1vbiA9IGluaXRfZnVuYyhob3N0LCBwb3J0LCBwYXRocywgcm91dGVz
LCBiaW5kX2hvc3RuYW1lLCBleHRlcm5hbF9jb25maWcsCisgICAgICAgICAgICBzZWxmLmRhZW1v
biA9IGluaXRfZnVuYyhob3N0LCBwb3J0LCBwYXRocywgcm91dGVzLCBiaW5kX2FkZHJlc3MsIGNv
bmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNzbF9jb25maWcsICoq
a3dhcmdzKQogICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yOgogICAgICAgICAgICAgcHJpbnQo
IlNvY2tldCBlcnJvciBvbiBwb3J0ICVzIiAlIHBvcnQsIGZpbGU9c3lzLnN0ZGVycikKICAgICAg
ICAgICAgIHJhaXNlCi0gICAgICAgIGV4Y2VwdDoKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoK
ICAgICAgICAgICAgIHByaW50KHRyYWNlYmFjay5mb3JtYXRfZXhjKCksIGZpbGU9c3lzLnN0ZGVy
cikKICAgICAgICAgICAgIHJhaXNlCiAKQEAgLTQwOCw3ICs0MTUsNyBAQCBjbGFzcyBTZXJ2ZXJQ
cm9jKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RvcC53YWl0KCkKICAgICAg
ICAgICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CiAgICAgICAgICAgICAgICAgICAg
IHBhc3MKLSAgICAgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246
CiAgICAgICAgICAgICAgICAgcHJpbnQodHJhY2ViYWNrLmZvcm1hdF9leGMoKSwgZmlsZT1zeXMu
c3RkZXJyKQogICAgICAgICAgICAgICAgIHJhaXNlCiAKQEAgLTQyNSwxMiArNDMyLDEyIEBAIGNs
YXNzIFNlcnZlclByb2Mob2JqZWN0KToKICAgICAgICAgcmV0dXJuIHNlbGYucHJvYy5pc19hbGl2
ZSgpCiAKIAotZGVmIGNoZWNrX3N1YmRvbWFpbnMoaG9zdCwgcGF0aHMsIGJpbmRfaG9zdG5hbWUs
IHNzbF9jb25maWcsIGFsaWFzZXMpOgorZGVmIGNoZWNrX3N1YmRvbWFpbnMoaG9zdCwgcGF0aHMs
IGJpbmRfYWRkcmVzcywgc3NsX2NvbmZpZywgYWxpYXNlcyk6CiAgICAgcG9ydCA9IGdldF9wb3J0
KCkKICAgICBzdWJkb21haW5zID0gZ2V0X3N1YmRvbWFpbnMoaG9zdCkKIAogICAgIHdyYXBwZXIg
PSBTZXJ2ZXJQcm9jKCkKLSAgICB3cmFwcGVyLnN0YXJ0KHN0YXJ0X2h0dHBfc2VydmVyLCBob3N0
LCBwb3J0LCBwYXRocywgYnVpbGRfcm91dGVzKGFsaWFzZXMpLCBiaW5kX2hvc3RuYW1lLAorICAg
IHdyYXBwZXIuc3RhcnQoc3RhcnRfaHR0cF9zZXJ2ZXIsIGhvc3QsIHBvcnQsIHBhdGhzLCBidWls
ZF9yb3V0ZXMoYWxpYXNlcyksIGJpbmRfYWRkcmVzcywKICAgICAgICAgICAgICAgICAgIE5vbmUs
IHNzbF9jb25maWcpCiAKICAgICBjb25uZWN0ZWQgPSBGYWxzZQpAQCAtNDQzLDcgKzQ1MCw4IEBA
IGRlZiBjaGVja19zdWJkb21haW5zKGhvc3QsIHBhdGhzLCBiaW5kX2hvc3RuYW1lLCBzc2xfY29u
ZmlnLCBhbGlhc2VzKToKICAgICAgICAgICAgIHRpbWUuc2xlZXAoMSkKIAogICAgIGlmIG5vdCBj
b25uZWN0ZWQ6Ci0gICAgICAgIGxvZ2dlci5jcml0aWNhbCgiRmFpbGVkIHRvIGNvbm5lY3QgdG8g
dGVzdCBzZXJ2ZXIgb24gaHR0cDovLyVzOiVzIFlvdSBtYXkgbmVlZCB0byBlZGl0IC9ldGMvaG9z
dHMgb3Igc2ltaWxhciIgJSAoaG9zdCwgcG9ydCkpCisgICAgICAgIGxvZ2dlci5jcml0aWNhbCgi
RmFpbGVkIHRvIGNvbm5lY3QgdG8gdGVzdCBzZXJ2ZXIgb24gaHR0cDovLyVzOiVzLiAiCisgICAg
ICAgICAgICAgICAgICAgICAgICAiWW91IG1heSBuZWVkIHRvIGVkaXQgL2V0Yy9ob3N0cyBvciBz
aW1pbGFyLCBzZWUgUkVBRE1FLm1kLiIgJSAoaG9zdCwgcG9ydCkpCiAgICAgICAgIHN5cy5leGl0
KDEpCiAKICAgICBmb3Igc3ViZG9tYWluLCAocHVueWNvZGUsIGhvc3QpIGluIHN1YmRvbWFpbnMu
aXRlcml0ZW1zKCk6CkBAIC00NTEsNyArNDU5LDggQEAgZGVmIGNoZWNrX3N1YmRvbWFpbnMoaG9z
dCwgcGF0aHMsIGJpbmRfaG9zdG5hbWUsIHNzbF9jb25maWcsIGFsaWFzZXMpOgogICAgICAgICB0
cnk6CiAgICAgICAgICAgICB1cmxsaWIyLnVybG9wZW4oImh0dHA6Ly8lczolZC8iICUgKGRvbWFp
biwgcG9ydCkpCiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgIGxv
Z2dlci5jcml0aWNhbCgiRmFpbGVkIHByb2JpbmcgZG9tYWluICVzLiBZb3UgbWF5IG5lZWQgdG8g
ZWRpdCAvZXRjL2hvc3RzIG9yIHNpbWlsYXIuIiAlIGRvbWFpbikKKyAgICAgICAgICAgIGxvZ2dl
ci5jcml0aWNhbCgiRmFpbGVkIHByb2JpbmcgZG9tYWluICVzLiAiCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIllvdSBtYXkgbmVlZCB0byBlZGl0IC9ldGMvaG9zdHMgb3Igc2ltaWxhciwg
c2VlIFJFQURNRS5tZC4iICUgZG9tYWluKQogICAgICAgICAgICAgc3lzLmV4aXQoMSkKIAogICAg
IHdyYXBwZXIud2FpdCgpCkBAIC00NjMsNyArNDcyLDI1IEBAIGRlZiBnZXRfc3ViZG9tYWlucyho
b3N0KToKICAgICAgICAgICAgIGZvciBzdWJkb21haW4gaW4gc3ViZG9tYWluc30KIAogCi1kZWYg
c3RhcnRfc2VydmVycyhob3N0LCBwb3J0cywgcGF0aHMsIHJvdXRlcywgYmluZF9ob3N0bmFtZSwg
ZXh0ZXJuYWxfY29uZmlnLCBzc2xfY29uZmlnLAorZGVmIGdldF9ub3Rfc3ViZG9tYWlucyhob3N0
KToKKyAgICAjVGhpcyBhc3N1bWVzIHRoYXQgdGhlIHRsZCBpcyBhc2NpaS1vbmx5IG9yIGFscmVh
ZHkgaW4gcHVueWNvZGUKKyAgICByZXR1cm4ge3N1YmRvbWFpbjogKHN1YmRvbWFpbi5lbmNvZGUo
ImlkbmEiKSwgaG9zdCkKKyAgICAgICAgICAgIGZvciBzdWJkb21haW4gaW4gbm90X3N1YmRvbWFp
bnN9CisKKworZGVmIG1ha2VfaG9zdHNfZmlsZShjb25maWcsIGhvc3QpOgorICAgIHJ2ID0gW10K
KworICAgIGZvciBkb21haW4gaW4gY29uZmlnWyJkb21haW5zIl0udmFsdWVzKCk6CisgICAgICAg
IHJ2LmFwcGVuZCgiJXNcdCVzXG4iICUgKGhvc3QsIGRvbWFpbikpCisKKyAgICBmb3Igbm90X2Rv
bWFpbiBpbiBjb25maWcuZ2V0KCJub3RfZG9tYWlucyIsIHt9KS52YWx1ZXMoKToKKyAgICAgICAg
cnYuYXBwZW5kKCIwLjAuMC4wXHQlc1xuIiAlIG5vdF9kb21haW4pCisKKyAgICByZXR1cm4gIiIu
am9pbihydikKKworCitkZWYgc3RhcnRfc2VydmVycyhob3N0LCBwb3J0cywgcGF0aHMsIHJvdXRl
cywgYmluZF9hZGRyZXNzLCBjb25maWcsIHNzbF9jb25maWcsCiAgICAgICAgICAgICAgICAgICAq
Kmt3YXJncyk6CiAgICAgc2VydmVycyA9IGRlZmF1bHRkaWN0KGxpc3QpCiAgICAgZm9yIHNjaGVt
ZSwgcG9ydHMgaW4gcG9ydHMuaXRlcml0ZW1zKCk6CkBAIC00NzgsMzcgKzUwNSwzNyBAQCBkZWYg
c3RhcnRfc2VydmVycyhob3N0LCBwb3J0cywgcGF0aHMsIHJvdXRlcywgYmluZF9ob3N0bmFtZSwg
ZXh0ZXJuYWxfY29uZmlnLCBzcwogICAgICAgICAgICAgICAgICAgICAgICAgICJ3c3MiOnN0YXJ0
X3dzc19zZXJ2ZXJ9W3NjaGVtZV0KIAogICAgICAgICAgICAgc2VydmVyX3Byb2MgPSBTZXJ2ZXJQ
cm9jKCkKLSAgICAgICAgICAgIHNlcnZlcl9wcm9jLnN0YXJ0KGluaXRfZnVuYywgaG9zdCwgcG9y
dCwgcGF0aHMsIHJvdXRlcywgYmluZF9ob3N0bmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGV4dGVybmFsX2NvbmZpZywgc3NsX2NvbmZpZywgKiprd2FyZ3MpCisgICAgICAgICAg
ICBzZXJ2ZXJfcHJvYy5zdGFydChpbml0X2Z1bmMsIGhvc3QsIHBvcnQsIHBhdGhzLCByb3V0ZXMs
IGJpbmRfYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZywgc3Ns
X2NvbmZpZywgKiprd2FyZ3MpCiAgICAgICAgICAgICBzZXJ2ZXJzW3NjaGVtZV0uYXBwZW5kKChw
b3J0LCBzZXJ2ZXJfcHJvYykpCiAKICAgICByZXR1cm4gc2VydmVycwogCiAKLWRlZiBzdGFydF9o
dHRwX3NlcnZlcihob3N0LCBwb3J0LCBwYXRocywgcm91dGVzLCBiaW5kX2hvc3RuYW1lLCBleHRl
cm5hbF9jb25maWcsIHNzbF9jb25maWcsCitkZWYgc3RhcnRfaHR0cF9zZXJ2ZXIoaG9zdCwgcG9y
dCwgcGF0aHMsIHJvdXRlcywgYmluZF9hZGRyZXNzLCBjb25maWcsIHNzbF9jb25maWcsCiAgICAg
ICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgogICAgIHJldHVybiB3cHRzZXJ2ZS5XZWJUZXN0
SHR0cGQoaG9zdD1ob3N0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydD1w
b3J0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jX3Jvb3Q9cGF0aHNbImRv
Y19yb290Il0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXM9cm91dGVz
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV3cml0ZXM9cmV3cml0ZXMsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5kX2hvc3RuYW1lPWJpbmRfaG9zdG5h
bWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9ZXh0ZXJuYWxfY29u
ZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluZF9hZGRyZXNzPWJpbmRf
YWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZz1jb25maWcs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2Vfc3NsPUZhbHNlLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9Tm9uZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNlcnRpZmljYXRlPU5vbmUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsYXRlbmN5PWt3YXJncy5nZXQoImxhdGVuY3kiKSkKIAogCi1kZWYgc3Rh
cnRfaHR0cHNfc2VydmVyKGhvc3QsIHBvcnQsIHBhdGhzLCByb3V0ZXMsIGJpbmRfaG9zdG5hbWUs
IGV4dGVybmFsX2NvbmZpZywgc3NsX2NvbmZpZywKK2RlZiBzdGFydF9odHRwc19zZXJ2ZXIoaG9z
dCwgcG9ydCwgcGF0aHMsIHJvdXRlcywgYmluZF9hZGRyZXNzLCBjb25maWcsIHNzbF9jb25maWcs
CiAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKICAgICByZXR1cm4gd3B0c2VydmUu
V2ViVGVzdEh0dHBkKGhvc3Q9aG9zdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBvcnQ9cG9ydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY19yb290PXBh
dGhzWyJkb2Nfcm9vdCJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVz
PXJvdXRlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJld3JpdGVzPXJld3Jp
dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluZF9ob3N0bmFtZT1iaW5k
X2hvc3RuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPWV4dGVy
bmFsX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmRfYWRkcmVz
cz1iaW5kX2FkZHJlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9
Y29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlX3NzbD1UcnVlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5X2ZpbGU9c3NsX2NvbmZpZ1sia2V5
X3BhdGgiXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRpZmljYXRlPXNz
bF9jb25maWdbImNlcnRfcGF0aCJdLApAQCAtNTE3LDcgKzU0NCw3IEBAIGRlZiBzdGFydF9odHRw
c19zZXJ2ZXIoaG9zdCwgcG9ydCwgcGF0aHMsIHJvdXRlcywgYmluZF9ob3N0bmFtZSwgZXh0ZXJu
YWxfY29uZmlnCiAKIAogY2xhc3MgV2ViU29ja2V0RGFlbW9uKG9iamVjdCk6Ci0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGhvc3QsIHBvcnQsIGRvY19yb290LCBoYW5kbGVyc19yb290LCBsb2dfbGV2
ZWwsIGJpbmRfaG9zdG5hbWUsCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QsIHBvcnQsIGRv
Y19yb290LCBoYW5kbGVyc19yb290LCBsb2dfbGV2ZWwsIGJpbmRfYWRkcmVzcywKICAgICAgICAg
ICAgICAgICAgc3NsX2NvbmZpZyk6CiAgICAgICAgIHNlbGYuaG9zdCA9IGhvc3QKICAgICAgICAg
Y21kX2FyZ3MgPSBbIi1wIiwgcG9ydCwKQEAgLTU0Miw3ICs1NjksNyBAQCBjbGFzcyBXZWJTb2Nr
ZXREYWVtb24ob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1jZXJ0aWZpY2F0
ZSIsIHNzbF9jb25maWdbImNlcnRfcGF0aCJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICIt
LXRscy1tb2R1bGUiLCB0bHNfbW9kdWxlXQogCi0gICAgICAgIGlmIChiaW5kX2hvc3RuYW1lKToK
KyAgICAgICAgaWYgKGJpbmRfYWRkcmVzcyk6CiAgICAgICAgICAgICBjbWRfYXJncyA9IFsiLUgi
LCBob3N0XSArIGNtZF9hcmdzCiAgICAgICAgIG9wdHMsIGFyZ3MgPSBweXdlYnNvY2tldC5fcGFy
c2VfYXJnc19hbmRfY29uZmlnKGNtZF9hcmdzKQogICAgICAgICBvcHRzLmNnaV9kaXJlY3Rvcmll
cyA9IFtdCkBAIC01ODEsMjUgKzYwOCwyNSBAQCBjbGFzcyBXZWJTb2NrZXREYWVtb24ob2JqZWN0
KToKICAgICAgICAgc2VsZi5zZXJ2ZXIgPSBOb25lCiAKIAotZGVmIHN0YXJ0X3dzX3NlcnZlciho
b3N0LCBwb3J0LCBwYXRocywgcm91dGVzLCBiaW5kX2hvc3RuYW1lLCBleHRlcm5hbF9jb25maWcs
IHNzbF9jb25maWcsCitkZWYgc3RhcnRfd3Nfc2VydmVyKGhvc3QsIHBvcnQsIHBhdGhzLCByb3V0
ZXMsIGJpbmRfYWRkcmVzcywgY29uZmlnLCBzc2xfY29uZmlnLAogICAgICAgICAgICAgICAgICAg
ICAqKmt3YXJncyk6CiAgICAgcmV0dXJuIFdlYlNvY2tldERhZW1vbihob3N0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RyKHBvcnQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVwb19yb290LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aHNbIndzX2RvY19yb290
Il0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVidWciLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYmluZF9ob3N0bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGJp
bmRfYWRkcmVzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNzbF9jb25maWcgPSBOb25l
KQogCiAKLWRlZiBzdGFydF93c3Nfc2VydmVyKGhvc3QsIHBvcnQsIHBhdGhzLCByb3V0ZXMsIGJp
bmRfaG9zdG5hbWUsIGV4dGVybmFsX2NvbmZpZywgc3NsX2NvbmZpZywKK2RlZiBzdGFydF93c3Nf
c2VydmVyKGhvc3QsIHBvcnQsIHBhdGhzLCByb3V0ZXMsIGJpbmRfYWRkcmVzcywgY29uZmlnLCBz
c2xfY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgogICAgIHJldHVybiBX
ZWJTb2NrZXREYWVtb24oaG9zdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihwb3J0
KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9fcm9vdCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhdGhzWyJ3c19kb2Nfcm9vdCJdLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImRlYnVnIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmRfaG9zdG5hbWUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5kX2FkZHJlc3MsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzc2xfY29uZmlnKQogCiAKQEAgLTYxOSw4ICs2NDYsMTUgQEAgZGVmIGdl
dF9wb3J0cyhjb25maWcsIHNzbF9lbnZpcm9ubWVudCk6CiAKIAogZGVmIG5vcm1hbGlzZV9jb25m
aWcoY29uZmlnLCBwb3J0cyk6Ci0gICAgaG9zdCA9IGNvbmZpZ1siZXh0ZXJuYWxfaG9zdCJdIGlm
IGNvbmZpZ1siZXh0ZXJuYWxfaG9zdCJdIGVsc2UgY29uZmlnWyJob3N0Il0KKyAgICBpZiAiaG9z
dCIgaW4gY29uZmlnOgorICAgICAgICBsb2dnZXIud2FybmluZygiaG9zdCBpbiBjb25maWcgaXMg
ZGVwcmVjYXRlZDsgdXNlIGJyb3dzZXJfaG9zdCBpbnN0ZWFkIikKKyAgICAgICAgaG9zdCA9IGNv
bmZpZ1siaG9zdCJdCisgICAgZWxzZToKKyAgICAgICAgaG9zdCA9IGNvbmZpZ1siYnJvd3Nlcl9o
b3N0Il0KKwogICAgIGRvbWFpbnMgPSBnZXRfc3ViZG9tYWlucyhob3N0KQorICAgIG5vdF9kb21h
aW5zID0gZ2V0X25vdF9zdWJkb21haW5zKGhvc3QpCisKICAgICBwb3J0c18gPSB7fQogICAgIGZv
ciBzY2hlbWUsIHBvcnRzX3VzZWQgaW4gcG9ydHMuaXRlcml0ZW1zKCk6CiAgICAgICAgIHBvcnRz
X1tzY2hlbWVdID0gcG9ydHNfdXNlZApAQCAtNjI4LDQzICs2NjIsNTMgQEAgZGVmIG5vcm1hbGlz
ZV9jb25maWcoY29uZmlnLCBwb3J0cyk6CiAgICAgZm9yIGtleSwgdmFsdWUgaW4gZG9tYWlucy5p
dGVyaXRlbXMoKToKICAgICAgICAgZG9tYWluc1trZXldID0gIi4iLmpvaW4odmFsdWUpCiAKKyAg
ICBmb3Iga2V5LCB2YWx1ZSBpbiBub3RfZG9tYWlucy5pdGVyaXRlbXMoKToKKyAgICAgICAgbm90
X2RvbWFpbnNba2V5XSA9ICIuIi5qb2luKHZhbHVlKQorCiAgICAgZG9tYWluc1siIl0gPSBob3N0
CiAKLSAgICBwb3J0c18gPSB7fQotICAgIGZvciBzY2hlbWUsIHBvcnRzX3VzZWQgaW4gcG9ydHMu
aXRlcml0ZW1zKCk6Ci0gICAgICAgIHBvcnRzX1tzY2hlbWVdID0gcG9ydHNfdXNlZAorICAgIGlm
ICJiaW5kX2hvc3RuYW1lIiBpbiBjb25maWc6CisgICAgICAgIGxvZ2dlci53YXJuaW5nKCJiaW5k
X2hvc3RuYW1lIGluIGNvbmZpZyBpcyBkZXByZWNhdGVkOyB1c2UgYmluZF9hZGRyZXNzIGluc3Rl
YWQiKQorICAgICAgICBiaW5kX2FkZHJlc3MgPSBjb25maWdbImJpbmRfaG9zdG5hbWUiXQorICAg
IGVsc2U6CisgICAgICAgIGJpbmRfYWRkcmVzcyA9IGNvbmZpZ1siYmluZF9hZGRyZXNzIl0KIAot
ICAgIHJldHVybiB7Imhvc3QiOiBob3N0LAotICAgICAgICAgICAgImRvbWFpbnMiOiBkb21haW5z
LAotICAgICAgICAgICAgInBvcnRzIjogcG9ydHNffQorICAgICMgbWFrZSBhIChzaGFsbG93KSBj
b3B5IG9mIHRoZSBjb25maWcgYW5kIHVwZGF0ZSB0aGF0LCBzbyB0aGF0IHRoZQorICAgICMgbm9y
bWFsaXplZCBjb25maWcgY2FuIGJlIHVzZWQgaW4gcGxhY2Ugb2YgdGhlIG9yaWdpbmFsIG9uZS4K
KyAgICBjb25maWdfID0gY29uZmlnLmNvcHkoKQorICAgIGNvbmZpZ19bImRvbWFpbnMiXSA9IGRv
bWFpbnMKKyAgICBjb25maWdfWyJub3RfZG9tYWlucyJdID0gbm90X2RvbWFpbnMKKyAgICBjb25m
aWdfWyJwb3J0cyJdID0gcG9ydHNfCisgICAgY29uZmlnX1siYmluZF9hZGRyZXNzIl0gPSBiaW5k
X2FkZHJlc3MKKyAgICBpZiBjb25maWcuZ2V0KCJzZXJ2ZXJfaG9zdCIsIE5vbmUpIGlzIE5vbmU6
CisgICAgICAgIGNvbmZpZ19bInNlcnZlcl9ob3N0Il0gPSBob3N0CisgICAgcmV0dXJuIGNvbmZp
Z18KIAogCi1kZWYgZ2V0X3NzbF9jb25maWcoY29uZmlnLCBleHRlcm5hbF9kb21haW5zLCBzc2xf
ZW52aXJvbm1lbnQpOgorZGVmIGdldF9wYXRocyhjb25maWcpOgorICAgIHJldHVybiB7ImRvY19y
b290IjogY29uZmlnWyJkb2Nfcm9vdCJdLAorICAgICAgICAgICAgIndzX2RvY19yb290IjogY29u
ZmlnWyJ3c19kb2Nfcm9vdCJdfQorCisKK2RlZiBnZXRfc3NsX2NvbmZpZyhjb25maWcsIHNzbF9l
bnZpcm9ubWVudCk6CisgICAgZXh0ZXJuYWxfZG9tYWlucyA9IGNvbmZpZ1siZG9tYWlucyJdLnZh
bHVlcygpCiAgICAga2V5X3BhdGgsIGNlcnRfcGF0aCA9IHNzbF9lbnZpcm9ubWVudC5ob3N0X2Nl
cnRfcGF0aChleHRlcm5hbF9kb21haW5zKQogICAgIHJldHVybiB7ImtleV9wYXRoIjoga2V5X3Bh
dGgsCiAgICAgICAgICAgICAiY2VydF9wYXRoIjogY2VydF9wYXRoLAogICAgICAgICAgICAgImVu
Y3J5cHRfYWZ0ZXJfY29ubmVjdCI6IGNvbmZpZ1sic3NsIl1bImVuY3J5cHRfYWZ0ZXJfY29ubmVj
dCJdfQogCisKIGRlZiBzdGFydChjb25maWcsIHNzbF9lbnZpcm9ubWVudCwgcm91dGVzLCAqKmt3
YXJncyk6Ci0gICAgaG9zdCA9IGNvbmZpZ1siaG9zdCJdCi0gICAgZG9tYWlucyA9IGdldF9zdWJk
b21haW5zKGhvc3QpCisgICAgaG9zdCA9IGNvbmZpZ1sic2VydmVyX2hvc3QiXQogICAgIHBvcnRz
ID0gZ2V0X3BvcnRzKGNvbmZpZywgc3NsX2Vudmlyb25tZW50KQotICAgIGJpbmRfaG9zdG5hbWUg
PSBjb25maWdbImJpbmRfaG9zdG5hbWUiXQorICAgIHBhdGhzID0gZ2V0X3BhdGhzKGNvbmZpZykK
KyAgICBiaW5kX2FkZHJlc3MgPSBjb25maWdbImJpbmRfYWRkcmVzcyJdCisgICAgc3NsX2NvbmZp
ZyA9IGdldF9zc2xfY29uZmlnKGNvbmZpZywgc3NsX2Vudmlyb25tZW50KQogCi0gICAgcGF0aHMg
PSB7ImRvY19yb290IjogY29uZmlnWyJkb2Nfcm9vdCJdLAotICAgICAgICAgICAgICJ3c19kb2Nf
cm9vdCI6IGNvbmZpZ1sid3NfZG9jX3Jvb3QiXX0KLQotICAgIGV4dGVybmFsX2NvbmZpZyA9IG5v
cm1hbGlzZV9jb25maWcoY29uZmlnLCBwb3J0cykKLQotICAgIHNzbF9jb25maWcgPSBnZXRfc3Ns
X2NvbmZpZyhjb25maWcsIGV4dGVybmFsX2NvbmZpZ1siZG9tYWlucyJdLnZhbHVlcygpLCBzc2xf
ZW52aXJvbm1lbnQpCi0KLSAgICBpZiBjb25maWdbImNoZWNrX3N1YmRvbWFpbnMiXToKLSAgICAg
ICAgY2hlY2tfc3ViZG9tYWlucyhob3N0LCBwYXRocywgYmluZF9ob3N0bmFtZSwgc3NsX2NvbmZp
ZywgY29uZmlnWyJhbGlhc2VzIl0pCi0KLSAgICBzZXJ2ZXJzID0gc3RhcnRfc2VydmVycyhob3N0
LCBwb3J0cywgcGF0aHMsIHJvdXRlcywgYmluZF9ob3N0bmFtZSwgZXh0ZXJuYWxfY29uZmlnLAor
ICAgIHNlcnZlcnMgPSBzdGFydF9zZXJ2ZXJzKGhvc3QsIHBvcnRzLCBwYXRocywgcm91dGVzLCBi
aW5kX2FkZHJlc3MsIGNvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzc2xfY29u
ZmlnLCAqKmt3YXJncykKIAotICAgIHJldHVybiBleHRlcm5hbF9jb25maWcsIHNlcnZlcnMKKyAg
ICByZXR1cm4gc2VydmVycwogCiAKIGRlZiBpdGVyX3Byb2NzKHNlcnZlcnMpOgpAQCAtNzc1LDEz
ICs4MTksMjMgQEAgZGVmIHJ1bigqKmt3YXJncyk6CiAKICAgICBzZXR1cF9sb2dnZXIoY29uZmln
WyJsb2dfbGV2ZWwiXSkKIAotICAgIHN0YXNoX2FkZHJlc3MgPSBOb25lCi0gICAgaWYgY29uZmln
WyJiaW5kX2hvc3RuYW1lIl06Ci0gICAgICAgIHN0YXNoX2FkZHJlc3MgPSAoY29uZmlnWyJob3N0
Il0sIGdldF9wb3J0KCkpCisgICAgd2l0aCBnZXRfc3NsX2Vudmlyb25tZW50KGNvbmZpZykgYXMg
c3NsX2VudjoKKyAgICAgICAgcG9ydHMgPSBnZXRfcG9ydHMoY29uZmlnLCBzc2xfZW52KQorICAg
ICAgICBjb25maWcgPSBub3JtYWxpc2VfY29uZmlnKGNvbmZpZywgcG9ydHMpCisgICAgICAgIGhv
c3QgPSBjb25maWdbImJyb3dzZXJfaG9zdCJdCisgICAgICAgIGJpbmRfYWRkcmVzcyA9IGNvbmZp
Z1siYmluZF9hZGRyZXNzIl0KKworICAgICAgICBpZiBjb25maWdbImNoZWNrX3N1YmRvbWFpbnMi
XToKKyAgICAgICAgICAgIHBhdGhzID0gZ2V0X3BhdGhzKGNvbmZpZykKKyAgICAgICAgICAgIHNz
bF9jb25maWcgPSBnZXRfc3NsX2NvbmZpZyhjb25maWcsIHNzbF9lbnYpCisgICAgICAgICAgICBj
aGVja19zdWJkb21haW5zKGhvc3QsIHBhdGhzLCBiaW5kX2FkZHJlc3MsIHNzbF9jb25maWcsIGNv
bmZpZ1siYWxpYXNlcyJdKQorCisgICAgICAgIHN0YXNoX2FkZHJlc3MgPSBOb25lCisgICAgICAg
IGlmIGJpbmRfYWRkcmVzczoKKyAgICAgICAgICAgIHN0YXNoX2FkZHJlc3MgPSAoaG9zdCwgZ2V0
X3BvcnQoKSkKIAotICAgIHdpdGggc3Rhc2guU3Rhc2hTZXJ2ZXIoc3Rhc2hfYWRkcmVzcywgYXV0
aGtleT1zdHIodXVpZC51dWlkNCgpKSk6Ci0gICAgICAgIHdpdGggZ2V0X3NzbF9lbnZpcm9ubWVu
dChjb25maWcpIGFzIHNzbF9lbnY6Ci0gICAgICAgICAgICBjb25maWdfLCBzZXJ2ZXJzID0gc3Rh
cnQoY29uZmlnLCBzc2xfZW52LCBidWlsZF9yb3V0ZXMoY29uZmlnWyJhbGlhc2VzIl0pLCAqKmt3
YXJncykKKyAgICAgICAgd2l0aCBzdGFzaC5TdGFzaFNlcnZlcihzdGFzaF9hZGRyZXNzLCBhdXRo
a2V5PXN0cih1dWlkLnV1aWQ0KCkpKToKKyAgICAgICAgICAgIHNlcnZlcnMgPSBzdGFydChjb25m
aWcsIHNzbF9lbnYsIGJ1aWxkX3JvdXRlcyhjb25maWdbImFsaWFzZXMiXSksICoqa3dhcmdzKQog
CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgd2hpbGUgYW55KGl0ZW0uaXNfYWxp
dmUoKSBmb3IgaXRlbSBpbiBpdGVyX3Byb2NzKHNlcnZlcnMpKToKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvdGVzdF9z
ZXJ2ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvc2VydmUvdGVzdF9zZXJ2ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzM3NjAxNTNlOTg3YWI4MWRmZDQ3
MGY4OGU3NzljZGZiZGRkZDc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS90ZXN0X3NlcnZlLnB5CkBAIC0w
LDAgKzEsMTIgQEAKK2Zyb20gLiBpbXBvcnQgc2VydmUKKworZGVmIHRlc3RfbWFrZV9ob3N0c19m
aWxlKCk6CisgICAgaG9zdHMgPSBzZXJ2ZS5tYWtlX2hvc3RzX2ZpbGUoeworICAgICAgICAiZG9t
YWlucyI6IHsid3d3IjogInd3dy5mb28uYmFyLnRlc3QiLCAid3d3MSI6ICJ3d3cxLmZvby5iYXIu
dGVzdCJ9LAorICAgICAgICAibm90X2RvbWFpbnMiOiB7ImFhYSI6ICJhYWEuZm9vLmJhci50ZXN0
IiwgImJiYiI6ICJiYmIuZm9vLmJhci50ZXN0In0KKyAgICB9LCAiMTI3LjEuMS4xIikKKyAgICBs
aW5lcyA9IGhvc3RzLnNwbGl0KCJcbiIpCisgICAgYXNzZXJ0ICIxMjcuMS4xLjFcdHd3dy5mb28u
YmFyLnRlc3QiIGluIGxpbmVzCisgICAgYXNzZXJ0ICIxMjcuMS4xLjFcdHd3dzEuZm9vLmJhci50
ZXN0IiBpbiBsaW5lcworICAgIGFzc2VydCAiMC4wLjAuMFx0YWFhLmZvby5iYXIudGVzdCIgaW4g
bGluZXMKKyAgICBhc3NlcnQgIjAuMC4wLjBcdGJiYi5mb28uYmFyLnRlc3QiIGluIGxpbmVzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3NlcnZlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS93M2MtaW1wb3J0LmxvZwppbmRleCBiN2RlMjU1ZDBh
YzAyODJmNjliYmVkMGI2NWEzZDRmNDJhNzAwM2I3Li5lNzI4MjYwOGViNTJiZWY5ZDJkNWYxMDRh
NWU5YWIyYzE2YzlkZWMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvdzNjLWltcG9y
dC5sb2cKQEAgLTE3LDMgKzE3LDQgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL19faW5pdF9fLnB5CiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS9jb21t
YW5kcy5qc29uCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9zZXJ2ZS9zZXJ2ZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvc2VydmUvdGVzdF9zZXJ2ZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zaXgvZG9jdW1lbnRhdGlv
bi9pbmRleC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3NpeC9kb2N1bWVudGF0aW9uL2luZGV4LnJzdAppbmRleCA3ODUxNDIxYTkwZWFmNWQ1
ZDkwMTg2MTAzOTFhZTFkMWI1YWVjZjM2Li45ODI3ZTY2OTViNTkzMWU1NTE0NGM4NTg3NmI3ZDZm
MjU1Y2YzNDQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3NpeC9kb2N1bWVudGF0aW9uL2luZGV4LnJzdAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC9kb2N1bWVudGF0
aW9uL2luZGV4LnJzdApAQCAtMTA0LDcgKzEwNCw3IEBAIEhlcmUncyBleGFtcGxlIHVzYWdlIG9m
IHRoZSBtb2R1bGU6OgogT2JqZWN0IG1vZGVsIGNvbXBhdGliaWxpdHkKID4+Pj4+Pj4+Pj4+Pj4+
Pj4+Pj4+Pj4+Pj4+CiAKLVB5dGhvbiAzIHJlbmFtZWQgdGhlIGF0dHJpYnV0ZXMgb2Ygc2V2ZXJh
bCBpbnRlcHJldGVyIGRhdGEgc3RydWN0dXJlcy4gIFRoZQorUHl0aG9uIDMgcmVuYW1lZCB0aGUg
YXR0cmlidXRlcyBvZiBzZXZlcmFsIGludGVycHJldGVyIGRhdGEgc3RydWN0dXJlcy4gIFRoZQog
Zm9sbG93aW5nIGFjY2Vzc29ycyBhcmUgYXZhaWxhYmxlLiAgTm90ZSB0aGF0IHRoZSByZWNvbW1l
bmRlZCB3YXkgdG8gaW5zcGVjdAogZnVuY3Rpb25zIGFuZCBtZXRob2RzIGlzIHRoZSBzdGRsaWIg
Om1vZDpgcHkzOmluc3BlY3RgIG1vZHVsZS4KIApAQCAtNDU5LDcgKzQ1OSw3IEBAIEZvciB0aGUg
bW9zdCBwYXJ0LCA6bW9kOmBzaXgubW92ZXNgIGFsaWFzZXMgYXJlIHRoZSBuYW1lcyBvZiB0aGUg
bW9kdWxlcyBpbgogUHl0aG9uIDMuICBXaGVuIHRoZSBuZXcgUHl0aG9uIDMgbmFtZSBpcyBhIHBh
Y2thZ2UsIHRoZSBjb21wb25lbnRzIG9mIHRoZSBuYW1lCiBhcmUgc2VwYXJhdGVkIGJ5IHVuZGVy
c2NvcmVzLiAgRm9yIGV4YW1wbGUsIGBgaHRtbC5wYXJzZXJgYCBiZWNvbWVzCiBgYGh0bWxfcGFy
c2VyYGAuICBJbiBzb21lIGNhc2VzIHdoZXJlIHNldmVyYWwgbW9kdWxlcyBoYXZlIGJlZW4gY29t
YmluZWQsIHRoZQotUHl0aG9uIDIgbmFtZSBpcyByZXRhaW5lZC4gIFRoaXMgaXMgc28gdGhlIGFw
cHJvcGlhdGUgbW9kdWxlcyBjYW4gYmUgZm91bmQgd2hlbgorUHl0aG9uIDIgbmFtZSBpcyByZXRh
aW5lZC4gIFRoaXMgaXMgc28gdGhlIGFwcHJvcHJpYXRlIG1vZHVsZXMgY2FuIGJlIGZvdW5kIHdo
ZW4KIHJ1bm5pbmcgb24gUHl0aG9uIDIuICBGb3IgZXhhbXBsZSwgYGBCYXNlSFRUUFNlcnZlcmBg
IHdoaWNoIGlzIGluCiBgYGh0dHAuc2VydmVyYGAgaW4gUHl0aG9uIDMgaXMgYWxpYXNlZCBhcyBg
YEJhc2VIVFRQU2VydmVyYGAuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvYmFzZS5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvYmFzZS5weQpp
bmRleCBlNzhlMTM4NWM3YmUwODMwMWFiZGY3N2UwNDY3OWFlYTZmMGY5OGE4Li4yMzdhZTVmMjNj
Y2YxZmE5OGNkMzk2YWY4ODY5YjI3NGZjOWUzNDY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NzbHV0aWxzL2Jhc2UucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zc2x1
dGlscy9iYXNlLnB5CkBAIC0xLDkgKzEsMyBAQAotZGVmIGdldF9sb2dnZXIobmFtZT0ic3NsIik6
Ci0gICAgbG9nZ2VyID0gc3RydWN0dXJlZC5nZXRfZGVmYXVsdF9sb2dnZXIobmFtZSkKLSAgICBp
ZiBsb2dnZXIgaXMgTm9uZToKLSAgICAgICAgbG9nZ2VyID0gc3RydWN0dXJlZC5zdHJ1Y3R1cmVk
bG9nLlN0cnVjdHVyZWRMb2dnZXIobmFtZSkKLSAgICByZXR1cm4gbG9nZ2VyCi0KIGNsYXNzIE5v
U1NMRW52aXJvbm1lbnQob2JqZWN0KToKICAgICBzc2xfZW5hYmxlZCA9IEZhbHNlCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYXR0cnMvQVVUSE9SUy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL0FVVEhPUlMucnN0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjczZWFlMjE1NGQ1YjFmYjEyZTY4ZDRjNjhhMjNhZWRlZmJjYWE4NWUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL0FVVEhPUlMucnN0CkBAIC0wLDAgKzEsMTEgQEAKK0Ny
ZWRpdHMKKz09PT09PT0KKworYGBhdHRyc2BgIGlzIHdyaXR0ZW4gYW5kIG1haW50YWluZWQgYnkg
YEh5bmVrIFNjaGxhd2FjayA8aHR0cHM6Ly9oeW5lay5tZS8+YF8uCisKK1RoZSBkZXZlbG9wbWVu
dCBpcyBraW5kbHkgc3VwcG9ydGVkIGJ5IGBWYXJpb21lZGlhIEFHIDxodHRwczovL3d3dy52YXJp
b21lZGlhLmRlLz5gXy4KKworQSBmdWxsIGxpc3Qgb2YgY29udHJpYnV0b3JzIGNhbiBiZSBmb3Vu
ZCBpbiBgR2l0SHViJ3Mgb3ZlcnZpZXcgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMv
YXR0cnMvZ3JhcGhzL2NvbnRyaWJ1dG9ycz5gXy4KKworSXTigJlzIHRoZSBzcGlyaXR1YWwgc3Vj
Y2Vzc29yIG9mIGBjaGFyYWN0ZXJpc3RpYyA8aHR0cHM6Ly9jaGFyYWN0ZXJpc3RpYy5yZWFkdGhl
ZG9jcy5pby8+YF8gYW5kIGFzcGlyZXMgdG8gZml4IHNvbWUgb2YgaXQgY2x1bmtpbmVzcyBhbmQg
dW5mb3J0dW5hdGUgZGVjaXNpb25zLgorQm90aCB3ZXJlIGluc3BpcmVkIGJ5IFR3aXN0ZWTigJlz
IGBGYW5jeUVxTWl4aW4gPGh0dHBzOi8vdHdpc3RlZG1hdHJpeC5jb20vZG9jdW1lbnRzL2N1cnJl
bnQvYXBpL3R3aXN0ZWQucHl0aG9uLnV0aWwuRmFuY3lFcU1peGluLmh0bWw+YF8gYnV0IGJvdGgg
YXJlIGltcGxlbWVudGVkIHVzaW5nIGNsYXNzIGRlY29yYXRvcnMgYmVjYXVzZSBgc3ViLWNsYXNz
aW5nIGlzIGJhZCBmb3IgeW91IDxodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTNNTlZQ
OS1oZ2xjPmBfLCBt4oCZa2F5PwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9DSEFOR0VMT0cucnN0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9hdHRycy9DSEFOR0VMT0cucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1Y2Q0NTkxMzU3MDQxNGYz
YTFjZmY2MmJiNmRiM2M0YTBhNDNkMjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL0NI
QU5HRUxPRy5yc3QKQEAgLTAsMCArMSwzMjYgQEAKK0NoYW5nZWxvZworPT09PT09PT09CisKK1Zl
cnNpb25zIGZvbGxvdyBgQ2FsVmVyIDxodHRwOi8vY2FsdmVyLm9yZz5gXyB3aXRoIGEgc3RyaWN0
IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHBvbGljeS4KK1RoZSB0aGlyZCBkaWdpdCBpcyBvbmx5
IGZvciByZWdyZXNzaW9ucy4KKworQ2hhbmdlcyBmb3IgdGhlIHVwY29taW5nIHJlbGVhc2UgY2Fu
IGJlIGZvdW5kIGluIHRoZSBgImNoYW5nZWxvZy5kIiBkaXJlY3RvcnkgPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRob24tYXR0cnMvYXR0cnMvdHJlZS9tYXN0ZXIvY2hhbmdlbG9nLmQ+YF8gaW4gb3Vy
IHJlcG9zaXRvcnkuCisKKy4uCisgICBEbyAqTk9UKiBhZGQgY2hhbmdlbG9nIGVudHJpZXMgaGVy
ZSEKKworICAgVGhpcyBjaGFuZ2Vsb2cgaXMgbWFuYWdlZCBieSB0b3duY3JpZXIgYW5kIGlzIGNv
bXBpbGVkIGF0IHJlbGVhc2UgdGltZS4KKworICAgU2VlIGh0dHA6Ly93d3cuYXR0cnMub3JnL2Vu
L2xhdGVzdC9jb250cmlidXRpbmcuaHRtbCNjaGFuZ2Vsb2cgZm9yIGRldGFpbHMuIiIiICAjIG5v
cWEKKworLi4gdG93bmNyaWVyIHJlbGVhc2Ugbm90ZXMgc3RhcnQKKworCisxNy4zLjAgKDIwMTct
MTEtMDgpCistLS0tLS0tLS0tLS0tLS0tLS0tCisKK0JhY2t3YXJkLWluY29tcGF0aWJsZSBDaGFu
Z2VzCiteXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgorCistIEF0dHJpYnV0ZXMgYXJlIG5v
dCBkZWZpbmVkIG9uIHRoZSBjbGFzcyBib2R5IGFueW1vcmUuCisKKyAgVGhpcyBtZWFucyB0aGF0
IGlmIHlvdSBkZWZpbmUgYSBjbGFzcyBgYENgYCB3aXRoIGFuIGF0dHJpYnV0ZSBgYHhgYCwgdGhl
IGNsYXNzIHdpbGwgKm5vdCogaGF2ZSBhbiBhdHRyaWJ1dGUgYGB4YGAgZm9yIGludHJvc3BlY3Rp
b24gYW55bW9yZS4KKyAgSW5zdGVhZCBvZiBgYEMueGBgLCB1c2UgYGBhdHRyLmZpZWxkcyhDKS54
YGAgb3IgbG9vayBhdCBgYEMuX19hdHRyc19hdHRyc19fYGAuCisgIFRoZSBvbGQgYmVoYXZpb3Ig
aGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDE2LjEuCisgIChgIzI1MyA8aHR0cHM6
Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9pc3N1ZXMvMjUzPmBfKQorCisKK0NoYW5n
ZXMKK15eXl5eXl4KKworLSBgYHN1cGVyKClgYCBhbmQgYGBfX2NsYXNzX19gYCBub3cgd29yayBv
biBQeXRob24gMyB3aGVuIGBgc2xvdHM9VHJ1ZWBgLgorICAoYCMxMDIgPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRob24tYXR0cnMvYXR0cnMvaXNzdWVzLzEwMj5gXywgYCMyMjYgPGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvaXNzdWVzLzIyNj5gXywgYCMyNjkgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvaXNzdWVzLzI2OT5gXywgYCMyNzAgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvaXNzdWVzLzI3MD5gXywgYCMyNzIgPGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvaXNzdWVzLzI3Mj5gXykKKy0gQWRk
ZWQgYGB0eXBlYGAgYXJndW1lbnQgdG8gYGBhdHRyLmliKClgYCBhbmQgY29ycmVzcG9uZGluZyBg
YHR5cGVgYCBhdHRyaWJ1dGUgdG8gYGBhdHRyLkF0dHJpYnV0ZWBgLgorCisgIFRoaXMgY2hhbmdl
IHBhdmVzIHRoZSB3YXkgZm9yIGF1dG9tYXRpYyB0eXBlIGNoZWNraW5nIGFuZCBzZXJpYWxpemF0
aW9uICh0aG91Z2ggYXMgb2YgdGhpcyByZWxlYXNlIGBgYXR0cnNgYCBkb2VzIG5vdCBtYWtlIHVz
ZSBvZiBpdCkuCisgIEluIFB5dGhvbiAzLjYgb3IgaGlnaGVyLCB0aGUgdmFsdWUgb2YgYGBhdHRy
LkF0dHJpYnV0ZS50eXBlYGAgY2FuIGFsdGVybmF0ZWx5IGJlIHNldCB1c2luZyB2YXJpYWJsZSB0
eXBlIGFubm90YXRpb25zCisgIChzZWUgYFBFUCA1MjYgPGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcv
ZGV2L3BlcHMvcGVwLTA1MjYvPmBfKS4gKGAjMTUxIDxodHRwczovL2dpdGh1Yi5jb20vcHl0aG9u
LWF0dHJzL2F0dHJzL2lzc3Vlcy8xNTE+YF8sIGAjMjE0IDxodHRwczovL2dpdGh1Yi5jb20vcHl0
aG9uLWF0dHJzL2F0dHJzL2lzc3Vlcy8yMTQ+YF8sIGAjMjE1IDxodHRwczovL2dpdGh1Yi5jb20v
cHl0aG9uLWF0dHJzL2F0dHJzL2lzc3Vlcy8yMTU+YF8sIGAjMjM5IDxodHRwczovL2dpdGh1Yi5j
b20vcHl0aG9uLWF0dHJzL2F0dHJzL2lzc3Vlcy8yMzk+YF8pCistIFRoZSBjb21iaW5hdGlvbiBv
ZiBgYHN0cj1UcnVlYGAgYW5kIGBgc2xvdHM9VHJ1ZWBgIG5vdyB3b3JrcyBvbiBQeXRob24gMi4K
KyAgKGAjMTk4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWF0dHJzL2F0dHJzL2lzc3Vlcy8x
OTg+YF8pCistIGBgYXR0ci5GYWN0b3J5YGAgaXMgaGFzaGFibGUgYWdhaW4uIChgIzIwNAorICA8
aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9pc3N1ZXMvMjA0PmBfKQorLSBT
dWJjbGFzc2VzIG5vdyBjYW4gb3ZlcndyaXRlIGF0dHJpYnV0ZSBkZWZpbml0aW9ucyBvZiB0aGVp
ciBzdXBlcmNsYXNzLgorCisgIFRoYXQgbWVhbnMgdGhhdCB5b3UgY2FuIC0tIGZvciBleGFtcGxl
IC0tIGNoYW5nZSB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgYW4gYXR0cmlidXRlIGJ5IHJlZGVmaW5p
bmcgaXQuCisgIChgIzIyMSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9p
c3N1ZXMvMjIxPmBfLCBgIzIyOSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRy
cy9pc3N1ZXMvMjI5PmBfKQorLSBBZGRlZCBuZXcgb3B0aW9uIGBgYXV0b19hdHRyaWJzYGAgdG8g
YGBAYXR0ci5zYGAgdGhhdCBhbGxvd3MgdG8gY29sbGVjdCBhbm5vdGF0ZWQgZmllbGRzIHdpdGhv
dXQgc2V0dGluZyB0aGVtIHRvIGBgYXR0ci5pYigpYGAuCisKKyAgU2V0dGluZyBhIGZpZWxkIHRv
IGFuIGBgYXR0ci5pYigpYGAgaXMgc3RpbGwgcG9zc2libGUgdG8gc3VwcGx5IG9wdGlvbnMgbGlr
ZSB2YWxpZGF0b3JzLgorICBTZXR0aW5nIGl0IHRvIGFueSBvdGhlciB2YWx1ZSBpcyB0cmVhdGVk
IGxpa2UgaXQgd2FzIHBhc3NlZCBhcyBgYGF0dHIuaWIoZGVmYXVsdD12YWx1ZSlgYCAtLSBwYXNz
aW5nIGFuIGluc3RhbmNlIG9mIGBgYXR0ci5GYWN0b3J5YGAgYWxzbyB3b3JrcyBhcyBleHBlY3Rl
ZC4KKyAgKGAjMjYyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWF0dHJzL2F0dHJzL2lzc3Vl
cy8yNjI+YF8sIGAjMjc3IDxodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWF0dHJzL2F0dHJzL2lz
c3Vlcy8yNzc+YF8pCistIEluc3RhbmNlcyBvZiBjbGFzc2VzIGNyZWF0ZWQgdXNpbmcgYGBhdHRy
Lm1ha2VfY2xhc3MoKWBgIGNhbiBub3cgYmUgcGlja2xlZC4KKyAgKGAjMjgyIDxodHRwczovL2dp
dGh1Yi5jb20vcHl0aG9uLWF0dHJzL2F0dHJzL2lzc3Vlcy8yODI+YF8pCisKKworLS0tLQorCisK
KzE3LjIuMCAoMjAxNy0wNS0yNCkKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKworCitDaGFuZ2VzOgor
Xl5eXl5eXl4KKworLSBWYWxpZGF0b3JzIGFyZSBoYXNoYWJsZSBhZ2Fpbi4KKyAgTm90ZSB0aGF0
IHZhbGlkYXRvcnMgbWF5IGJlY29tZSBmcm96ZW4gaW4gdGhlIGZ1dHVyZSwgcGVuZGluZyBhdmFp
bGFiaWxpdHkgb2Ygbm8tb3ZlcmhlYWQgZnJvemVuIGNsYXNzZXMuCisgIGAjMTkyIDxodHRwczov
L2dpdGh1Yi5jb20vcHl0aG9uLWF0dHJzL2F0dHJzL2lzc3Vlcy8xOTI+YF8KKworCistLS0tCisK
KworMTcuMS4wICgyMDE3LTA1LTE2KQorLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUbyBlbmNvdXJh
Z2UgbW9yZSBwYXJ0aWNpcGF0aW9uLCB0aGUgcHJvamVjdCBoYXMgYWxzbyBiZWVuIG1vdmVkIGlu
dG8gYSBgZGVkaWNhdGVkIEdpdEh1YiBvcmdhbml6YXRpb24gPGh0dHBzOi8vZ2l0aHViLmNvbS9w
eXRob24tYXR0cnMvPmBfIGFuZCBldmVyeW9uZSBpcyBtb3N0IHdlbGNvbWUgdG8gam9pbiEKKwor
YGBhdHRyc2BgIGFsc28gaGFzIGEgbG9nbyBub3chCisKKy4uIGltYWdlOjogaHR0cDovL3d3dy5h
dHRycy5vcmcvZW4vbGF0ZXN0L19zdGF0aWMvYXR0cnNfbG9nby5wbmcKKyAgIDphbHQ6IGF0dHJz
IGxvZ28KKworCitCYWNrd2FyZC1pbmNvbXBhdGlibGUgQ2hhbmdlczoKK15eXl5eXl5eXl5eXl5e
Xl5eXl5eXl5eXl5eXl5eXgorCistIGBgYXR0cnNgYCB3aWxsIHNldCB0aGUgYGBfX2hhc2hfXygp
YGAgbWV0aG9kIHRvIGBgTm9uZWBgIGJ5IGRlZmF1bHQgbm93LgorICBUaGUgd2F5IGhhc2hlcyB3
ZXJlIGhhbmRsZWQgYmVmb3JlIHdhcyBpbiBjb25mbGljdCB3aXRoIGBQeXRob24ncyBzcGVjaWZp
Y2F0aW9uIDxodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL3JlZmVyZW5jZS9kYXRhbW9kZWwuaHRt
bCNvYmplY3QuX19oYXNoX18+YF8uCisgIFRoaXMgKm1heSogYnJlYWsgc29tZSBzb2Z0d2FyZSBh
bHRob3VnaCB0aGlzIGJyZWFrYWdlIGlzIG1vc3QgbGlrZWx5IGp1c3Qgc3VyZmFjaW5nIG9mIGxh
dGVudCBidWdzLgorICBZb3UgY2FuIGFsd2F5cyBtYWtlIGBgYXR0cnNgYCBjcmVhdGUgdGhlIGBg
X19oYXNoX18oKWBgIG1ldGhvZCB1c2luZyBgYEBhdHRyLnMoaGFzaD1UcnVlKWBgLgorICBTZWUg
YCMxMzZgXyBmb3IgdGhlIHJhdGlvbmFsZSBvZiB0aGlzIGNoYW5nZS4KKworICAuLiB3YXJuaW5n
OjoKKworICAgIFBsZWFzZSAqZG8gbm90KiB1cGdyYWRlIGJsaW5kbHkgYW5kICpkbyogdGVzdCB5
b3VyIHNvZnR3YXJlIQorICAgICpFc3BlY2lhbGx5KiBpZiB5b3UgdXNlIGluc3RhbmNlcyBhcyBk
aWN0IGtleXMgb3IgcHV0IHRoZW0gaW50byBzZXRzIQorCistIENvcnJlc3BvbmRpbmdseSwgYGBh
dHRyLmliYGAncyBgYGhhc2hgYCBhcmd1bWVudCBpcyBgYE5vbmVgYCBieSBkZWZhdWx0IHRvbyBh
bmQgbWlycm9ycyB0aGUgYGBjbXBgYCBhcmd1bWVudCBhcyBpdCBzaG91bGQuCisKKworRGVwcmVj
YXRpb25zOgorXl5eXl5eXl5eXl5eXgorCistIGBgYXR0ci5hc3NvYygpYGAgaXMgbm93IGRlcHJl
Y2F0ZWQgaW4gZmF2b3Igb2YgYGBhdHRyLmV2b2x2ZSgpYGAgYW5kIHdpbGwgc3RvcCB3b3JraW5n
IGluIDIwMTguCisKKworQ2hhbmdlczoKK15eXl5eXl5eCisKKy0gRml4IGRlZmF1bHQgaGFzaGlu
ZyBiZWhhdmlvci4KKyAgTm93ICpoYXNoKiBtaXJyb3JzIHRoZSB2YWx1ZSBvZiAqY21wKiBhbmQg
Y2xhc3NlcyBhcmUgdW5oYXNoYWJsZSBieSBkZWZhdWx0LgorICBgIzEzNmBfCisgIGAjMTQyIDxo
dHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWF0dHJzL2F0dHJzL2lzc3Vlcy8xNDI+YF8KKy0gQWRk
ZWQgYGBhdHRyLmV2b2x2ZSgpYGAgdGhhdCwgZ2l2ZW4gYW4gaW5zdGFuY2Ugb2YgYW4gYGBhdHRy
c2BgIGNsYXNzIGFuZCBmaWVsZCBjaGFuZ2VzIGFzIGtleXdvcmQgYXJndW1lbnRzLCB3aWxsIGlu
c3RhbnRpYXRlIGEgY29weSBvZiB0aGUgZ2l2ZW4gaW5zdGFuY2Ugd2l0aCB0aGUgY2hhbmdlcyBh
cHBsaWVkLgorICBgYGV2b2x2ZSgpYGAgcmVwbGFjZXMgYGBhc3NvYygpYGAsIHdoaWNoIGlzIG5v
dyBkZXByZWNhdGVkLgorICBgYGV2b2x2ZSgpYGAgaXMgc2lnbmlmaWNhbnRseSBmYXN0ZXIgdGhh
biBgYGFzc29jKClgYCwgYW5kIHJlcXVpcmVzIHRoZSBjbGFzcyBoYXZlIGFuIGluaXRpYWxpemVy
IHRoYXQgY2FuIHRha2UgdGhlIGZpZWxkIHZhbHVlcyBhcyBrZXl3b3JkIGFyZ3VtZW50cyAobGlr
ZSBgYGF0dHJzYGAgaXRzZWxmIGNhbiBnZW5lcmF0ZSkuCisgIGAjMTE2IDxodHRwczovL2dpdGh1
Yi5jb20vcHl0aG9uLWF0dHJzL2F0dHJzL2lzc3Vlcy8xMTY+YF8KKyAgYCMxMjQgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvcHVsbC8xMjQ+YF8KKyAgYCMxMzUgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvcHVsbC8xMzU+YF8KKy0gYGBGcm96ZW5J
bnN0YW5jZUVycm9yYGAgaXMgbm93IHJhaXNlZCB3aGVuIHRyeWluZyB0byBkZWxldGUgYW4gYXR0
cmlidXRlIGZyb20gYSBmcm96ZW4gY2xhc3MuCisgIGAjMTE4IDxodHRwczovL2dpdGh1Yi5jb20v
cHl0aG9uLWF0dHJzL2F0dHJzL3B1bGwvMTE4PmBfCistIEZyb3plbi1uZXNzIG9mIGNsYXNzZXMg
aXMgbm93IGluaGVyaXRlZC4KKyAgYCMxMjggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24tYXR0
cnMvYXR0cnMvcHVsbC8xMjg+YF8KKy0gYGBfX2F0dHJzX3Bvc3RfaW5pdF9fKClgYCBpcyBub3cg
cnVuIGlmIHZhbGlkYXRpb24gaXMgZGlzYWJsZWQuCisgIGAjMTMwIDxodHRwczovL2dpdGh1Yi5j
b20vcHl0aG9uLWF0dHJzL2F0dHJzL3B1bGwvMTMwPmBfCistIEFkZGVkIGBgYXR0ci52YWxpZGF0
b3JzLmluXyhvcHRpb25zKWBgIHRoYXQsIGdpdmVuIHRoZSBhbGxvd2VkIGBvcHRpb25zYCwgY2hl
Y2tzIHdoZXRoZXIgdGhlIGF0dHJpYnV0ZSB2YWx1ZSBpcyBpbiBpdC4KKyAgVGhpcyBjYW4gYmUg
dXNlZCB0byBjaGVjayBjb25zdGFudHMsIGVudW1zLCBtYXBwaW5ncywgZXRjLgorICBgIzE4MSA8
aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9wdWxsLzE4MT5gXworLSBBZGRl
ZCBgYGF0dHIudmFsaWRhdG9ycy5hbmRfKClgYCB0aGF0IGNvbXBvc2VzIG11bHRpcGxlIHZhbGlk
YXRvcnMgaW50byBvbmUuCisgIGAjMTYxIDxodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWF0dHJz
L2F0dHJzL2lzc3Vlcy8xNjE+YF8KKy0gRm9yIGNvbnZlbmllbmNlLCB0aGUgYGB2YWxpZGF0b3Jg
YCBhcmd1bWVudCBvZiBgYEBhdHRyLnNgYCBub3cgY2FuIHRha2UgYSBgYGxpc3RgYCBvZiB2YWxp
ZGF0b3JzIHRoYXQgYXJlIHdyYXBwZWQgdXNpbmcgYGBhbmRfKClgYC4KKyAgYCMxMzggPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvaXNzdWVzLzEzOD5gXworLSBBY2NvcmRp
bmdseSwgYGBhdHRyLnZhbGlkYXRvcnMub3B0aW9uYWwoKWBgIG5vdyBjYW4gdGFrZSBhIGBgbGlz
dGBgIG9mIHZhbGlkYXRvcnMgdG9vLgorICBgIzE2MSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhv
bi1hdHRycy9hdHRycy9pc3N1ZXMvMTYxPmBfCistIFZhbGlkYXRvcnMgY2FuIG5vdyBiZSBkZWZp
bmVkIGNvbnZlbmllbnRseSBpbmxpbmUgYnkgdXNpbmcgdGhlIGF0dHJpYnV0ZSBhcyBhIGRlY29y
YXRvci4KKyAgQ2hlY2sgb3V0IHRoZSBgZXhhbXBsZXMgPGh0dHA6Ly93d3cuYXR0cnMub3JnL2Vu
L3N0YWJsZS9leGFtcGxlcy5odG1sI3ZhbGlkYXRvcnM+YF8gdG8gc2VlIGl0IGluIGFjdGlvbiEK
KyAgYCMxNDMgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvaXNzdWVzLzE0
Mz5gXworLSBgYGF0dHIuRmFjdG9yeSgpYGAgbm93IGhhcyBhIGBgdGFrZXNfc2VsZmBgIGFyZ3Vt
ZW50IHRoYXQgbWFrZXMgdGhlIGluaXRpYWxpemVyIHRvIHBhc3MgdGhlIHBhcnRpYWxseSBpbml0
aWFsaXplZCBpbnN0YW5jZSBpbnRvIHRoZSBmYWN0b3J5LgorICBJbiBvdGhlciB3b3JkcyB5b3Ug
Y2FuIGRlZmluZSBhdHRyaWJ1dGUgZGVmYXVsdHMgYmFzZWQgb24gb3RoZXIgYXR0cmlidXRlcy4K
KyAgYCMxNjVgXworICBgIzE4OSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRy
cy9pc3N1ZXMvMTg5PmBfCistIERlZmF1bHQgZmFjdG9yaWVzIGNhbiBub3cgYWxzbyBiZSBkZWZp
bmVkIGlubGluZSB1c2luZyBkZWNvcmF0b3JzLgorICBUaGV5IGFyZSAqYWx3YXlzKiBwYXNzZWQg
dGhlIHBhcnRpYWxseSBpbml0aWFsaXplZCBpbnN0YW5jZS4KKyAgYCMxNjVgXworLSBDb252ZXJz
aW9uIGNhbiBub3cgYmUgbWFkZSBvcHRpb25hbCB1c2luZyBgYGF0dHIuY29udmVydGVycy5vcHRp
b25hbCgpYGAuCisgIGAjMTA1IDxodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWF0dHJzL2F0dHJz
L2lzc3Vlcy8xMDU+YF8KKyAgYCMxNzMgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMv
YXR0cnMvcHVsbC8xNzM+YF8KKy0gYGBhdHRyLm1ha2VfY2xhc3MoKWBgIG5vdyBhY2NlcHRzIHRo
ZSBrZXl3b3JkIGFyZ3VtZW50IGBgYmFzZXNgYCB3aGljaCBhbGxvd3MgZm9yIHN1YmNsYXNzaW5n
LgorICBgIzE1MiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9wdWxsLzE1
Mj5gXworLSBNZXRhY2xhc3NlcyBhcmUgbm93IHByZXNlcnZlZCB3aXRoIGBgc2xvdHM9VHJ1ZWBg
LgorICBgIzE1NSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9wdWxsLzE1
NT5gXworCisuLiBfYCMxMzZgOiBodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWF0dHJzL2F0dHJz
L2lzc3Vlcy8xMzYKKy4uIF9gIzE2NWA6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMv
YXR0cnMvaXNzdWVzLzE2NQorCisKKy0tLS0KKworCisxNi4zLjAgKDIwMTYtMTEtMjQpCistLS0t
LS0tLS0tLS0tLS0tLS0tCisKK0NoYW5nZXM6CiteXl5eXl5eXgorCistIEF0dHJpYnV0ZXMgbm93
IGNhbiBoYXZlIHVzZXItZGVmaW5lZCBtZXRhZGF0YSB3aGljaCBncmVhdGx5IGltcHJvdmVzIGBg
YXR0cnNgYCdzIGV4dGVuc2liaWxpdHkuCisgIGAjOTYgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRo
b24tYXR0cnMvYXR0cnMvcHVsbC85Nj5gXworLSBBbGxvdyBmb3IgYSBgYF9fYXR0cnNfcG9zdF9p
bml0X18oKWBgIG1ldGhvZCB0aGF0IC0tIGlmIGRlZmluZWQgLS0gd2lsbCBnZXQgY2FsbGVkIGF0
IHRoZSBlbmQgb2YgdGhlIGBgYXR0cnNgYC1nZW5lcmF0ZWQgYGBfX2luaXRfXygpYGAgbWV0aG9k
LgorICBgIzExMSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9wdWxsLzEx
MT5gXworLSBBZGRlZCBgYEBhdHRyLnMoc3RyPVRydWUpYGAgdGhhdCB3aWxsIG9wdGlvbmFsbHkg
Y3JlYXRlIGEgYGBfX3N0cl9fKClgYCBtZXRob2QgdGhhdCBpcyBpZGVudGljYWwgdG8gYGBfX3Jl
cHJfXygpYGAuCisgIFRoaXMgaXMgbWFpbmx5IHVzZWZ1bCB3aXRoIGBgRXhjZXB0aW9uYGBcIHMg
YW5kIG90aGVyIGNsYXNzZXMgdGhhdCByZWx5IG9uIGEgdXNlZnVsIGBgX19zdHJfXygpYGAgaW1w
bGVtZW50YXRpb24gYnV0IG92ZXJ3cml0ZSB0aGUgZGVmYXVsdCBvbmUgdGhyb3VnaCBhIHBvb3Ig
b3duIG9uZS4KKyAgRGVmYXVsdCBQeXRob24gY2xhc3MgYmVoYXZpb3IgaXMgdG8gdXNlIGBgX19y
ZXByX18oKWBgIGFzIGBgX19zdHJfXygpYGAgYW55d2F5cy4KKworICBJZiB5b3UgdHJpZWQgdXNp
bmcgYGBhdHRyc2BgIHdpdGggYGBFeGNlcHRpb25gYFwgcyBhbmQgd2VyZSBwdXp6bGVkIGJ5IHRo
ZSB0cmFjZWJhY2tzOiB0aGlzIG9wdGlvbiBpcyBmb3IgeW91LgorLSBgYF9fbmFtZV9fYGAgaXMg
bm90IG92ZXJ3cml0dGVuIHdpdGggYGBfX3F1YWxuYW1lX19gYCBmb3IgYGBhdHRyLnMoc2xvdHM9
VHJ1ZSlgYCBjbGFzc2VzIGFueW1vcmUuCisgIGAjOTkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRo
b24tYXR0cnMvYXR0cnMvaXNzdWVzLzk5PmBfCisKKworLS0tLQorCisKKzE2LjIuMCAoMjAxNi0w
OS0xNykKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKworQ2hhbmdlczoKK15eXl5eXl5eCisKKy0gQWRk
ZWQgYGBhdHRyLmFzdHVwbGUoKWBgIHRoYXQgLS0gc2ltaWxhcmx5IHRvIGBgYXR0ci5hc2RpY3Qo
KWBgIC0tIHJldHVybnMgdGhlIGluc3RhbmNlIGFzIGEgdHVwbGUuCisgIGAjNzcgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvaXNzdWVzLzc3PmBfCistIENvbnZlcnRzIG5v
dyB3b3JrIHdpdGggZnJvemVuIGNsYXNzZXMuCisgIGAjNzYgPGh0dHBzOi8vZ2l0aHViLmNvbS9w
eXRob24tYXR0cnMvYXR0cnMvaXNzdWVzLzc2PmBfCistIEluc3RhbnRpYXRpb24gb2YgYGBhdHRy
c2BgIGNsYXNzZXMgd2l0aCBjb252ZXJ0ZXJzIGlzIG5vdyBzaWduaWZpY2FudGx5IGZhc3Rlci4K
KyAgYCM4MCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9wdWxsLzgwPmBf
CistIFBpY2tsaW5nIG5vdyB3b3JrcyB3aXRoIGBgX19zbG90c19fYGAgY2xhc3Nlcy4KKyAgYCM4
MSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9pc3N1ZXMvODE+YF8KKy0g
YGBhdHRyLmFzc29jKClgYCBub3cgd29ya3Mgd2l0aCBgYF9fc2xvdHNfX2BgIGNsYXNzZXMuCisg
IGAjODQgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvaXNzdWVzLzg0PmBf
CistIFRoZSB0dXBsZSByZXR1cm5lZCBieSBgYGF0dHIuZmllbGRzKClgYCBub3cgYWxzbyBhbGxv
d3MgdG8gYWNjZXNzIHRoZSBgYEF0dHJpYnV0ZWBgIGluc3RhbmNlcyBieSBuYW1lLgorICBZZXMs
IHdlJ3ZlIHN1YmNsYXNzZWQgYGB0dXBsZWBgIHNvIHlvdSBkb24ndCBoYXZlIHRvIQorICBUaGVy
ZWZvcmUgYGBhdHRyLmZpZWxkcyhDKS54YGAgaXMgZXF1aXZhbGVudCB0byB0aGUgZGVwcmVjYXRl
ZCBgYEMueGBgIGFuZCB3b3JrcyB3aXRoIGBgX19zbG90c19fYGAgY2xhc3Nlcy4KKyAgYCM4OCA8
aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9pc3N1ZXMvODg+YF8KKworCist
LS0tCisKKworMTYuMS4wICgyMDE2LTA4LTMwKQorLS0tLS0tLS0tLS0tLS0tLS0tLQorCitCYWNr
d2FyZC1pbmNvbXBhdGlibGUgQ2hhbmdlczoKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e
XgorCistIEFsbCBpbnN0YW5jZXMgd2hlcmUgZnVuY3Rpb24gYXJndW1lbnRzIHdlcmUgY2FsbGVk
IGBgY2xgYCBoYXZlIGJlZW4gY2hhbmdlZCB0byB0aGUgbW9yZSBQeXRob25pYyBgYGNsc2BgLgor
ICBTaW5jZSBpdCB3YXMgYWx3YXlzIHRoZSBmaXJzdCBhcmd1bWVudCwgaXQncyBkb3VidGZ1bCBh
bnlvbmUgZXZlciBjYWxsZWQgdGhvc2UgZnVuY3Rpb24gd2l0aCBpbiB0aGUga2V5d29yZCBmb3Jt
LgorICBJZiBzbywgc29ycnkgZm9yIGFueSBicmVha2FnZSBidXQgdGhlcmUncyBubyBwcmFjdGlj
YWwgZGVwcmVjYXRpb24gcGF0aCB0byBzb2x2ZSB0aGlzIHVnbHkgd2FydC4KKworCitEZXByZWNh
dGlvbnM6CiteXl5eXl5eXl5eXl5eCisKKy0gQWNjZXNzaW5nIGBgQXR0cmlidXRlYGAgaW5zdGFu
Y2VzIG9uIGNsYXNzIG9iamVjdHMgaXMgbm93IGRlcHJlY2F0ZWQgYW5kIHdpbGwgc3RvcCB3b3Jr
aW5nIGluIDIwMTcuCisgIElmIHlvdSBuZWVkIGludHJvc3BlY3Rpb24gcGxlYXNlIHVzZSB0aGUg
YGBfX2F0dHJzX2F0dHJzX19gYCBhdHRyaWJ1dGUgb3IgdGhlIGBgYXR0ci5maWVsZHMoKWBgIGZ1
bmN0aW9uIHRoYXQgY2FycnkgdGhlbSB0b28uCisgIEluIHRoZSBmdXR1cmUsIHRoZSBhdHRyaWJ1
dGVzIHRoYXQgYXJlIGRlZmluZWQgb24gdGhlIGNsYXNzIGJvZHkgYW5kIGFyZSB1c3VhbGx5IG92
ZXJ3cml0dGVuIGluIHlvdXIgYGBfX2luaXRfX2BgIG1ldGhvZCBhcmUgc2ltcGx5IHJlbW92ZWQg
YWZ0ZXIgYGBAYXR0ci5zYGAgaGFzIGJlZW4gYXBwbGllZC4KKworICBUaGlzIHdpbGwgcmVtb3Zl
IHRoZSBjb25mdXNpbmcgZXJyb3IgbWVzc2FnZSBpZiB5b3Ugd3JpdGUgeW91ciBvd24gYGBfX2lu
aXRfX2BgIGFuZCBmb3JnZXQgdG8gaW5pdGlhbGl6ZSBzb21lIGF0dHJpYnV0ZS4KKyAgSW5zdGVh
ZCB5b3Ugd2lsbCBnZXQgYSBzdHJhaWdodGZvcndhcmQgYGBBdHRyaWJ1dGVFcnJvcmBgLgorICBJ
biBvdGhlciB3b3JkczogZGVjb3JhdGVkIGNsYXNzZXMgd2lsbCB3b3JrIG1vcmUgbGlrZSBwbGFp
biBQeXRob24gY2xhc3NlcyB3aGljaCB3YXMgYWx3YXlzIGBgYXR0cnNgYCdzIGdvYWwuCistIFRo
ZSBzZXJpb3VzIGJ1c2luZXNzIGFsaWFzZXMgYGBhdHRyLmF0dHJpYnV0ZXNgYCBhbmQgYGBhdHRy
LmF0dHJgYCBoYXZlIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvciBvZiBgYGF0dHIuYXR0cnNgYCBh
bmQgYGBhdHRyLmF0dHJpYmBgIHdoaWNoIGFyZSBtdWNoIG1vcmUgY29uc2lzdGVudCBhbmQgZnJh
bmtseSBvYnZpb3VzIGluIGhpbmRzaWdodC4KKyAgVGhleSB3aWxsIGJlIHB1cmdlZCBmcm9tIGRv
Y3VtZW50YXRpb24gaW1tZWRpYXRlbHkgYnV0IHRoZXJlIGFyZSBubyBwbGFucyB0byBhY3R1YWxs
eSByZW1vdmUgdGhlbS4KKworCitDaGFuZ2VzOgorXl5eXl5eXl4KKworLSBgYGF0dHIuYXNkaWN0
KClgYFwgJ3MgYGBkaWN0X2ZhY3RvcnlgYCBhcmd1bWVudHMgaXMgbm93IHByb3BhZ2F0ZWQgb24g
cmVjdXJzaW9uLgorICBgIzQ1IDxodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWF0dHJzL2F0dHJz
L2lzc3Vlcy80NT5gXworLSBgYGF0dHIuYXNkaWN0KClgYCwgYGBhdHRyLmhhcygpYGAgYW5kIGBg
YXR0ci5maWVsZHMoKWBgIGFyZSBzaWduaWZpY2FudGx5IGZhc3Rlci4KKyAgYCM0OCA8aHR0cHM6
Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9pc3N1ZXMvNDg+YF8KKyAgYCM1MSA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9pc3N1ZXMvNTE+YF8KKy0gQWRkIGBg
YXR0ci5hdHRyc2BgIGFuZCBgYGF0dHIuYXR0cmliYGAgYXMgYSBtb3JlIGNvbnNpc3RlbnQgYWxp
YXNlcyBmb3IgYGBhdHRyLnNgYCBhbmQgYGBhdHRyLmliYGAuCistIEFkZCBgYGZyb3plbmBgIG9w
dGlvbiB0byBgYGF0dHIuc2BgIHRoYXQgd2lsbCBtYWtlIGluc3RhbmNlcyBiZXN0LWVmZm9ydCBp
bW11dGFibGUuCisgIGAjNjAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMv
aXNzdWVzLzYwPmBfCistIGBgYXR0ci5hc2RpY3QoKWBgIG5vdyB0YWtlcyBgYHJldGFpbl9jb2xs
ZWN0aW9uX3R5cGVzYGAgYXMgYW4gYXJndW1lbnQuCisgIElmIGBgVHJ1ZWBgLCBpdCBkb2VzIG5v
dCBjb252ZXJ0IGF0dHJpYnV0ZXMgb2YgdHlwZSBgYHR1cGxlYGAgb3IgYGBzZXRgYCB0byBgYGxp
c3RgYC4KKyAgYCM2OSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9pc3N1
ZXMvNjk+YF8KKworCistLS0tCisKKworMTYuMC4wICgyMDE2LTA1LTIzKQorLS0tLS0tLS0tLS0t
LS0tLS0tLQorCitCYWNrd2FyZC1pbmNvbXBhdGlibGUgQ2hhbmdlczoKK15eXl5eXl5eXl5eXl5e
Xl5eXl5eXl5eXl5eXl5eXgorCistIFB5dGhvbiAzLjMgYW5kIDIuNiBhcmVuJ3Qgc3VwcG9ydGVk
IGFueW1vcmUuCisgIFRoZXkgbWF5IHdvcmsgYnkgY2hhbmNlIGJ1dCBhbnkgZWZmb3J0IHRvIGtl
ZXAgdGhlbSB3b3JraW5nIGhhcyBjZWFzZWQuCisKKyAgVGhlIGxhc3QgUHl0aG9uIDIuNiByZWxl
YXNlIHdhcyBvbiBPY3RvYmVyIDI5LCAyMDEzIGFuZCBpc24ndCBzdXBwb3J0ZWQgYnkgdGhlIENQ
eXRob24gY29yZSB0ZWFtIGFueW1vcmUuCisgIE1ham9yIFB5dGhvbiBwYWNrYWdlcyBsaWtlIERq
YW5nbyBhbmQgVHdpc3RlZCBkcm9wcGVkIFB5dGhvbiAyLjYgYSB3aGlsZSBhZ28gYWxyZWFkeS4K
KworICBQeXRob24gMy4zIG5ldmVyIGhhZCBhIHNpZ25pZmljYW50IHVzZXIgYmFzZSBhbmQgd2Fz
bid0IHBhcnQgb2YgYW55IGRpc3RyaWJ1dGlvbidzIExUUyByZWxlYXNlLgorCitDaGFuZ2VzOgor
Xl5eXl5eXl4KKworLSBgYF9fc2xvdHNfX2BgIGhhdmUgYXJyaXZlZCEKKyAgQ2xhc3NlcyBub3cg
Y2FuIGF1dG9tYXRpY2FsbHkgYmUgYHNsb3RzIDxodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL3Jl
ZmVyZW5jZS9kYXRhbW9kZWwuaHRtbCNzbG90cz5gXy1zdHlsZSAoYW5kIHNhdmUgeW91ciBwcmVj
aW91cyBtZW1vcnkpIGp1c3QgYnkgcGFzc2luZyBgYHNsb3RzPVRydWVgYC4KKyAgYCMzNSA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9pc3N1ZXMvMzU+YF8KKy0gQWxsb3cg
dGhlIGNhc2Ugb2YgaW5pdGlhbGl6aW5nIGF0dHJpYnV0ZXMgdGhhdCBhcmUgc2V0IHRvIGBgaW5p
dD1GYWxzZWBgLgorICBUaGlzIGFsbG93cyBmb3IgY2xlYW4gaW5pdGlhbGl6ZXIgcGFyYW1ldGVy
IGxpc3RzIHdoaWxlIGJlaW5nIGFibGUgdG8gaW5pdGlhbGl6ZSBhdHRyaWJ1dGVzIHRvIGRlZmF1
bHQgdmFsdWVzLgorICBgIzMyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWF0dHJzL2F0dHJz
L2lzc3Vlcy8zMj5gXworLSBgYGF0dHIuYXNkaWN0KClgYCBjYW4gbm93IHByb2R1Y2UgYXJiaXRy
YXJ5IG1hcHBpbmdzIGluc3RlYWQgb2YgUHl0aG9uIGBgZGljdGBgXCBzIHdoZW4gcHJvdmlkZWQg
d2l0aCBhIGBgZGljdF9mYWN0b3J5YGAgYXJndW1lbnQuCisgIGAjNDAgPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRob24tYXR0cnMvYXR0cnMvaXNzdWVzLzQwPmBfCistIE11bHRpcGxlIHBlcmZvcm1h
bmNlIGltcHJvdmVtZW50cy4KKworCistLS0tCisKKworMTUuMi4wICgyMDE1LTEyLTA4KQorLS0t
LS0tLS0tLS0tLS0tLS0tLQorCitDaGFuZ2VzOgorXl5eXl5eXl4KKworLSBBZGRlZCBhIGBgY29u
dmVydGBgIGFyZ3VtZW50IHRvIGBgYXR0ci5pYmBgLCB3aGljaCBhbGxvd3Mgc3BlY2lmeWluZyBh
IGZ1bmN0aW9uIHRvIHJ1biBvbiBhcmd1bWVudHMuCisgIFRoaXMgYWxsb3dzIGZvciBzaW1wbGUg
dHlwZSBjb252ZXJzaW9ucywgZS5nLiB3aXRoIGBgYXR0ci5pYihjb252ZXJ0PWludClgYC4KKyAg
YCMyNiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9pc3N1ZXMvMjY+YF8K
Ky0gU3BlZWQgdXAgb2JqZWN0IGNyZWF0aW9uIHdoZW4gYXR0cmlidXRlIHZhbGlkYXRvcnMgYXJl
IHVzZWQuCisgIGAjMjggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvaXNz
dWVzLzI4PmBfCisKKworLS0tLQorCisKKzE1LjEuMCAoMjAxNS0wOC0yMCkKKy0tLS0tLS0tLS0t
LS0tLS0tLS0KKworQ2hhbmdlczoKK15eXl5eXl5eCisKKy0gQWRkZWQgYGBhdHRyLnZhbGlkYXRv
cnMub3B0aW9uYWwoKWBgIHRoYXQgd3JhcHMgb3RoZXIgdmFsaWRhdG9ycyBhbGxvd2luZyBhdHRy
aWJ1dGVzIHRvIGJlIGBgTm9uZWBgLgorICBgIzE2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0aG9u
LWF0dHJzL2F0dHJzL2lzc3Vlcy8xNj5gXworLSBNdWx0aS1sZXZlbCBpbmhlcml0YW5jZSBub3cg
d29ya3MuCisgIGAjMjQgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvaXNz
dWVzLzI0PmBfCistIGBgX19yZXByX18oKWBgIG5vdyB3b3JrcyB3aXRoIG5vbi1yZWRlY29yYXRl
ZCBzdWJjbGFzc2VzLgorICBgIzIwIDxodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWF0dHJzL2F0
dHJzL2lzc3Vlcy8yMD5gXworCisKKy0tLS0KKworCisxNS4wLjAgKDIwMTUtMDQtMTUpCistLS0t
LS0tLS0tLS0tLS0tLS0tCisKK0NoYW5nZXM6CiteXl5eXl5eXgorCitJbml0aWFsIHJlbGVhc2Uu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL0NPREVfT0ZfQ09ORFVDVC5yc3QgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJz
L0NPREVfT0ZfQ09ORFVDVC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGY0YjhlZTljZDkyZTlkNDg5N2YxMDY4
MmIyN2JjOTBjZTlhNDI4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvQ09ERV9PRl9D
T05EVUNULnJzdApAQCAtMCwwICsxLDU1IEBACitDb250cmlidXRvciBDb3ZlbmFudCBDb2RlIG9m
IENvbmR1Y3QKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitPdXIgUGxl
ZGdlCistLS0tLS0tLS0tCisKK0luIHRoZSBpbnRlcmVzdCBvZiBmb3N0ZXJpbmcgYW4gb3BlbiBh
bmQgd2VsY29taW5nIGVudmlyb25tZW50LCB3ZSBhcyBjb250cmlidXRvcnMgYW5kIG1haW50YWlu
ZXJzIHBsZWRnZSB0byBtYWtlIHBhcnRpY2lwYXRpb24gaW4gb3VyIHByb2plY3QgYW5kIG91ciBj
b21tdW5pdHkgYSBoYXJhc3NtZW50LWZyZWUgZXhwZXJpZW5jZSBmb3IgZXZlcnlvbmUsIHJlZ2Fy
ZGxlc3Mgb2YgYWdlLCBib2R5IHNpemUsIGRpc2FiaWxpdHksIGV0aG5pY2l0eSwgZ2VuZGVyIGlk
ZW50aXR5IGFuZCBleHByZXNzaW9uLCBsZXZlbCBvZiBleHBlcmllbmNlLCBuYXRpb25hbGl0eSwg
cGVyc29uYWwgYXBwZWFyYW5jZSwgcmFjZSwgcmVsaWdpb24sIG9yIHNleHVhbCBpZGVudGl0eSBh
bmQgb3JpZW50YXRpb24uCisKK091ciBTdGFuZGFyZHMKKy0tLS0tLS0tLS0tLS0KKworRXhhbXBs
ZXMgb2YgYmVoYXZpb3IgdGhhdCBjb250cmlidXRlcyB0byBjcmVhdGluZyBhIHBvc2l0aXZlIGVu
dmlyb25tZW50IGluY2x1ZGU6CisKKyogVXNpbmcgd2VsY29taW5nIGFuZCBpbmNsdXNpdmUgbGFu
Z3VhZ2UKKyogQmVpbmcgcmVzcGVjdGZ1bCBvZiBkaWZmZXJpbmcgdmlld3BvaW50cyBhbmQgZXhw
ZXJpZW5jZXMKKyogR3JhY2VmdWxseSBhY2NlcHRpbmcgY29uc3RydWN0aXZlIGNyaXRpY2lzbQor
KiBGb2N1c2luZyBvbiB3aGF0IGlzIGJlc3QgZm9yIHRoZSBjb21tdW5pdHkKKyogU2hvd2luZyBl
bXBhdGh5IHRvd2FyZHMgb3RoZXIgY29tbXVuaXR5IG1lbWJlcnMKKworRXhhbXBsZXMgb2YgdW5h
Y2NlcHRhYmxlIGJlaGF2aW9yIGJ5IHBhcnRpY2lwYW50cyBpbmNsdWRlOgorCisqIFRoZSB1c2Ug
b2Ygc2V4dWFsaXplZCBsYW5ndWFnZSBvciBpbWFnZXJ5IGFuZCB1bndlbGNvbWUgc2V4dWFsIGF0
dGVudGlvbiBvciBhZHZhbmNlcworKiBUcm9sbGluZywgaW5zdWx0aW5nL2Rlcm9nYXRvcnkgY29t
bWVudHMsIGFuZCBwZXJzb25hbCBvciBwb2xpdGljYWwgYXR0YWNrcworKiBQdWJsaWMgb3IgcHJp
dmF0ZSBoYXJhc3NtZW50CisqIFB1Ymxpc2hpbmcgb3RoZXJzJyBwcml2YXRlIGluZm9ybWF0aW9u
LCBzdWNoIGFzIGEgcGh5c2ljYWwgb3IgZWxlY3Ryb25pYyBhZGRyZXNzLCB3aXRob3V0IGV4cGxp
Y2l0IHBlcm1pc3Npb24KKyogT3RoZXIgY29uZHVjdCB3aGljaCBjb3VsZCByZWFzb25hYmx5IGJl
IGNvbnNpZGVyZWQgaW5hcHByb3ByaWF0ZSBpbiBhIHByb2Zlc3Npb25hbCBzZXR0aW5nCisKK091
ciBSZXNwb25zaWJpbGl0aWVzCistLS0tLS0tLS0tLS0tLS0tLS0tLQorCitQcm9qZWN0IG1haW50
YWluZXJzIGFyZSByZXNwb25zaWJsZSBmb3IgY2xhcmlmeWluZyB0aGUgc3RhbmRhcmRzIG9mIGFj
Y2VwdGFibGUgYmVoYXZpb3IgYW5kIGFyZSBleHBlY3RlZCB0byB0YWtlIGFwcHJvcHJpYXRlIGFu
ZCBmYWlyIGNvcnJlY3RpdmUgYWN0aW9uIGluIHJlc3BvbnNlIHRvIGFueSBpbnN0YW5jZXMgb2Yg
dW5hY2NlcHRhYmxlIGJlaGF2aW9yLgorCitQcm9qZWN0IG1haW50YWluZXJzIGhhdmUgdGhlIHJp
Z2h0IGFuZCByZXNwb25zaWJpbGl0eSB0byByZW1vdmUsIGVkaXQsIG9yIHJlamVjdCBjb21tZW50
cywgY29tbWl0cywgY29kZSwgd2lraSBlZGl0cywgaXNzdWVzLCBhbmQgb3RoZXIgY29udHJpYnV0
aW9ucyB0aGF0IGFyZSBub3QgYWxpZ25lZCB0byB0aGlzIENvZGUgb2YgQ29uZHVjdCwgb3IgdG8g
YmFuIHRlbXBvcmFyaWx5IG9yIHBlcm1hbmVudGx5IGFueSBjb250cmlidXRvciBmb3Igb3RoZXIg
YmVoYXZpb3JzIHRoYXQgdGhleSBkZWVtIGluYXBwcm9wcmlhdGUsIHRocmVhdGVuaW5nLCBvZmZl
bnNpdmUsIG9yIGhhcm1mdWwuCisKK1Njb3BlCistLS0tLQorCitUaGlzIENvZGUgb2YgQ29uZHVj
dCBhcHBsaWVzIGJvdGggd2l0aGluIHByb2plY3Qgc3BhY2VzIGFuZCBpbiBwdWJsaWMgc3BhY2Vz
IHdoZW4gYW4gaW5kaXZpZHVhbCBpcyByZXByZXNlbnRpbmcgdGhlIHByb2plY3Qgb3IgaXRzIGNv
bW11bml0eS4KK0V4YW1wbGVzIG9mIHJlcHJlc2VudGluZyBhIHByb2plY3Qgb3IgY29tbXVuaXR5
IGluY2x1ZGUgdXNpbmcgYW4gb2ZmaWNpYWwgcHJvamVjdCBlLW1haWwgYWRkcmVzcywgcG9zdGlu
ZyB2aWEgYW4gb2ZmaWNpYWwgc29jaWFsIG1lZGlhIGFjY291bnQsIG9yIGFjdGluZyBhcyBhbiBh
cHBvaW50ZWQgcmVwcmVzZW50YXRpdmUgYXQgYW4gb25saW5lIG9yIG9mZmxpbmUgZXZlbnQuCitS
ZXByZXNlbnRhdGlvbiBvZiBhIHByb2plY3QgbWF5IGJlIGZ1cnRoZXIgZGVmaW5lZCBhbmQgY2xh
cmlmaWVkIGJ5IHByb2plY3QgbWFpbnRhaW5lcnMuCisKK0VuZm9yY2VtZW50CistLS0tLS0tLS0t
LQorCitJbnN0YW5jZXMgb2YgYWJ1c2l2ZSwgaGFyYXNzaW5nLCBvciBvdGhlcndpc2UgdW5hY2Nl
cHRhYmxlIGJlaGF2aW9yIG1heSBiZSByZXBvcnRlZCBieSBjb250YWN0aW5nIHRoZSBwcm9qZWN0
IHRlYW0gYXQgaHNAb3guY3guCitBbGwgY29tcGxhaW50cyB3aWxsIGJlIHJldmlld2VkIGFuZCBp
bnZlc3RpZ2F0ZWQgYW5kIHdpbGwgcmVzdWx0IGluIGEgcmVzcG9uc2UgdGhhdCBpcyBkZWVtZWQg
bmVjZXNzYXJ5IGFuZCBhcHByb3ByaWF0ZSB0byB0aGUgY2lyY3Vtc3RhbmNlcy4KK1RoZSBwcm9q
ZWN0IHRlYW0gaXMgb2JsaWdhdGVkIHRvIG1haW50YWluIGNvbmZpZGVudGlhbGl0eSB3aXRoIHJl
Z2FyZCB0byB0aGUgcmVwb3J0ZXIgb2YgYW4gaW5jaWRlbnQuCitGdXJ0aGVyIGRldGFpbHMgb2Yg
c3BlY2lmaWMgZW5mb3JjZW1lbnQgcG9saWNpZXMgbWF5IGJlIHBvc3RlZCBzZXBhcmF0ZWx5Lgor
CitQcm9qZWN0IG1haW50YWluZXJzIHdobyBkbyBub3QgZm9sbG93IG9yIGVuZm9yY2UgdGhlIENv
ZGUgb2YgQ29uZHVjdCBpbiBnb29kIGZhaXRoIG1heSBmYWNlIHRlbXBvcmFyeSBvciBwZXJtYW5l
bnQgcmVwZXJjdXNzaW9ucyBhcyBkZXRlcm1pbmVkIGJ5IG90aGVyIG1lbWJlcnMgb2YgdGhlIHBy
b2plY3QncyBsZWFkZXJzaGlwLgorCitBdHRyaWJ1dGlvbgorLS0tLS0tLS0tLS0KKworVGhpcyBD
b2RlIG9mIENvbmR1Y3QgaXMgYWRhcHRlZCBmcm9tIHRoZSBgQ29udHJpYnV0b3IgQ292ZW5hbnQg
PGh0dHA6Ly9jb250cmlidXRvci1jb3ZlbmFudC5vcmc+YF8sIHZlcnNpb24gMS40LCBhdmFpbGFi
bGUgYXQgaHR0cDovL2NvbnRyaWJ1dG9yLWNvdmVuYW50Lm9yZy92ZXJzaW9uLzEvNC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYXR0cnMvQ09OVFJJQlVUSU5HLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvQ09OVFJJQlVU
SU5HLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45ODIyZjg5MjZhODc3ZjA3NTEwN2I2MWViMWVhY2ZlNDNmOTEy
MDQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9DT05UUklCVVRJTkcucnN0CkBAIC0w
LDAgKzEsMjIwIEBACitIb3cgVG8gQ29udHJpYnV0ZQorPT09PT09PT09PT09PT09PT0KKworRmly
c3Qgb2ZmLCB0aGFuayB5b3UgZm9yIGNvbnNpZGVyaW5nIGNvbnRyaWJ1dGluZyB0byBgYGF0dHJz
YGAhCitJdCdzIHBlb3BsZSBsaWtlICp5b3UqIHdobyBtYWtlIGl0IGlzIHN1Y2ggYSBncmVhdCB0
b29sIGZvciBldmVyeW9uZS4KKworVGhpcyBkb2N1bWVudCBpcyBtYWlubHkgdG8gaGVscCB5b3Ug
dG8gZ2V0IHN0YXJ0ZWQgYnkgY29kaWZ5aW5nIHRyaWJhbCBrbm93bGVkZ2UgYW5kIGV4cGVjdGF0
aW9ucyBhbmQgbWFrZSBpdCBtb3JlIGFjY2Vzc2libGUgdG8gZXZlcnlvbmUuCitCdXQgZG9uJ3Qg
YmUgYWZyYWlkIHRvIG9wZW4gaGFsZi1maW5pc2hlZCBQUnMgYW5kIGFzayBxdWVzdGlvbnMgaWYg
c29tZXRoaW5nIGlzIHVuY2xlYXIhCisKKworU3VwcG9ydAorLS0tLS0tLQorCitJbiBjYXNlIHlv
dSdkIGxpa2UgdG8gaGVscCBvdXQgYnV0IGRvbid0IHdhbnQgdG8gZGVhbCB3aXRoIEdpdEh1Yiwg
dGhlcmUncyBhIGdyZWF0IG9wcG9ydHVuaXR5OgoraGVscCB5b3VyIGZlbGxvdyBkZXZlbG9wZXJz
IG9uIGBTdGFja092ZXJmbG93IDxodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy90
YWdnZWQvcHl0aG9uLWF0dHJzPmBfIQorCitUaGUgb2ZmaWNhbCB0YWcgaXMgYGBweXRob24tYXR0
cnNgYCBhbmQgaGVscGluZyBvdXQgaW4gc3VwcG9ydCBmcmVlcyB1cyB1cCBmb3IgaW1wcm92aW5n
IGBgYXR0cnNgYCBpbnN0ZWFkIQorCisKK1dvcmtmbG93CistLS0tLS0tLQorCistIE5vIGNvbnRy
aWJ1dGlvbiBpcyB0b28gc21hbGwhCisgIFBsZWFzZSBzdWJtaXQgYXMgbWFueSBmaXhlcyBmb3Ig
dHlwb3MgYW5kIGdyYW1tYXIgYmxvb3BlcnMgYXMgeW91IGNhbiEKKy0gVHJ5IHRvIGxpbWl0IGVh
Y2ggcHVsbCByZXF1ZXN0IHRvICpvbmUqIGNoYW5nZSBvbmx5LgorLSAqQWx3YXlzKiBhZGQgdGVz
dHMgYW5kIGRvY3MgZm9yIHlvdXIgY29kZS4KKyAgVGhpcyBpcyBhIGhhcmQgcnVsZTsgcGF0Y2hl
cyB3aXRoIG1pc3NpbmcgdGVzdHMgb3IgZG9jdW1lbnRhdGlvbiBjYW4ndCBiZSBtZXJnZWQuCist
IE1ha2Ugc3VyZSB5b3VyIGNoYW5nZXMgcGFzcyBvdXIgQ0lfLgorICBZb3Ugd29uJ3QgZ2V0IGFu
eSBmZWVkYmFjayB1bnRpbCBpdCdzIGdyZWVuIHVubGVzcyB5b3UgYXNrIGZvciBpdC4KKy0gT25j
ZSB5b3UndmUgYWRkcmVzc2VkIHJldmlldyBmZWVkYmFjaywgbWFrZSBzdXJlIHRvIGJ1bXAgdGhl
IHB1bGwgcmVxdWVzdCB3aXRoIGEgc2hvcnQgbm90ZSwgc28gd2Uga25vdyB5b3UncmUgZG9uZS4K
Ky0gRG9u4oCZdCBicmVhayBgYmFja3dhcmQgY29tcGF0aWJpbGl0eWBfLgorCisKK0NvZGUKKy0t
LS0KKworLSBPYmV5IGBQRVAgOGBfIGFuZCBgUEVQIDI1N2BfLgorICBXZSB1c2UgdGhlIGBgIiIi
YGBcIC1vbi1zZXBhcmF0ZS1saW5lcyBzdHlsZSBmb3IgZG9jc3RyaW5nczoKKworICAuLiBjb2Rl
LWJsb2NrOjogcHl0aG9uCisKKyAgICAgZGVmIGZ1bmMoeCk6CisgICAgICAgICAiIiIKKyAgICAg
ICAgIERvIHNvbWV0aGluZy4KKworICAgICAgICAgOnBhcmFtIHN0ciB4OiBBIHZlcnkgaW1wb3J0
YW50IHBhcmFtZXRlci4KKworICAgICAgICAgOnJ0eXBlOiBzdHIKKyAgICAgICAgICIiIgorLSBJ
ZiB5b3UgYWRkIG9yIGNoYW5nZSBwdWJsaWMgQVBJcywgdGFnIHRoZSBkb2NzdHJpbmcgdXNpbmcg
YGAuLiAgdmVyc2lvbmFkZGVkOjogMTYuMC4wIFdIQVRgYCBvciBgYC4uICB2ZXJzaW9uY2hhbmdl
ZDo6IDE2LjIuMCBXSEFUYGAuCistIFByZWZlciBkb3VibGUgcXVvdGVzIChgYCJgYCkgb3ZlciBz
aW5nbGUgcXVvdGVzIChgYCdgYCkgdW5sZXNzIHRoZSBzdHJpbmcgY29udGFpbnMgZG91YmxlIHF1
b3RlcyBpdHNlbGYuCisKKworVGVzdHMKKy0tLS0tCisKKy0gV3JpdGUgeW91ciBhc3NlcnRzIGFz
IGBgZXhwZWN0ZWQgPT0gYWN0dWFsYGAgdG8gbGluZSB0aGVtIHVwIG5pY2VseToKKworICAuLiBj
b2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAgeCA9IGYoKQorCisgICAgIGFzc2VydCA0MiA9PSB4
LnNvbWVfYXR0cmlidXRlCisgICAgIGFzc2VydCAiZm9vIiA9PSB4Ll9hX3ByaXZhdGVfYXR0cmli
dXRlCisKKy0gVG8gcnVuIHRoZSB0ZXN0IHN1aXRlLCBhbGwgeW91IG5lZWQgaXMgYSByZWNlbnQg
dG94Xy4KKyAgSXQgd2lsbCBlbnN1cmUgdGhlIHRlc3Qgc3VpdGUgcnVucyB3aXRoIGFsbCBkZXBl
bmRlbmNpZXMgYWdhaW5zdCBhbGwgUHl0aG9uIHZlcnNpb25zIGp1c3QgYXMgaXQgd2lsbCBvbiBU
cmF2aXMgQ0kuCisgIElmIHlvdSBsYWNrIHNvbWUgUHl0aG9uIHZlcnNpb25zLCB5b3UgY2FuIGNh
biBhbHdheXMgbGltaXQgdGhlIGVudmlyb25tZW50cyBsaWtlIGBgdG94IC1lIHB5MjcscHkzNWBg
IChpbiB0aGF0IGNhc2UgeW91IG1heSB3YW50IHRvIGxvb2sgaW50byBweWVudl8sIHdoaWNoIG1h
a2VzIGl0IHZlcnkgZWFzeSB0byBpbnN0YWxsIG1hbnkgZGlmZmVyZW50IFB5dGhvbiB2ZXJzaW9u
cyBpbiBwYXJhbGxlbCkuCistIFdyaXRlIGBnb29kIHRlc3QgZG9jc3RyaW5nc2BfLgorLSBUbyBl
bnN1cmUgbmV3IGZlYXR1cmVzIHdvcmsgd2VsbCB3aXRoIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0s
IHRoZXkgc2hvdWxkIGJlIGFsc28gYWRkZWQgdG8gb3VyIGBIeXBvdGhlc2lzYF8gdGVzdGluZyBz
dHJhdGVneSB3aGljaCB5b3UgZmluZCBpbiBgYHRlc3RzL3V0aWwucHlgYC4KKworCitEb2N1bWVu
dGF0aW9uCistLS0tLS0tLS0tLS0tCisKKy0gVXNlIGBzZW1hbnRpYyBuZXdsaW5lc2BfIGluIHJl
U3RydWN0dXJlZFRleHRfIGZpbGVzIChmaWxlcyBlbmRpbmcgaW4gYGAucnN0YGApOgorCisgIC4u
IGNvZGUtYmxvY2s6OiByc3QKKworICAgICBUaGlzIGlzIGEgc2VudGVuY2UuCisgICAgIFRoaXMg
aXMgYW5vdGhlciBzZW50ZW5jZS4KKworLSBJZiB5b3Ugc3RhcnQgYSBuZXcgc2VjdGlvbiwgYWRk
IHR3byBibGFuayBsaW5lcyBiZWZvcmUgYW5kIG9uZSBibGFuayBsaW5lIGFmdGVyIHRoZSBoZWFk
ZXIgZXhjZXB0IGlmIHR3byBoZWFkZXJzIGZvbGxvdyBpbW1lZGlhdGVseSBhZnRlciBlYWNoIG90
aGVyOgorCisgIC4uIGNvZGUtYmxvY2s6OiByc3QKKworICAgICBMYXN0IGxpbmUgb2YgcHJldmlv
dXMgc2VjdGlvbi4KKworCisgICAgIEhlYWRlciBvZiBOZXcgVG9wIFNlY3Rpb24KKyAgICAgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgIEhlYWRlciBvZiBOZXcgU2VjdGlvbgorICAg
ICBeXl5eXl5eXl5eXl5eXl5eXl5eXl4KKworICAgICBGaXJzdCBsaW5lIG9mIG5ldyBzZWN0aW9u
LgorLSBJZiB5b3UgYWRkIGEgbmV3IGZlYXR1cmUsIGRlbW9uc3RyYXRlIGl0cyBhd2Vzb21lbmVz
cyBpbiB0aGUgYGV4YW1wbGVzIHBhZ2VgXyEKKworCitDaGFuZ2Vsb2cKK15eXl5eXl5eXgorCitJ
ZiB5b3VyIGNoYW5nZSBpcyBub3Rld29ydGh5LCB0aGVyZSBuZWVkcyB0byBiZSBhIGNoYW5nZWxv
ZyBlbnRyeSwgc28gb3VyIHVzZXJzIGNhbiBsZWFybiBhYm91dCBpdCEKKworVG8gYXZvaWQgbWVy
Z2UgY29uZmxpY3RzLCB3ZSB1c2UgdGhlIHRvd25jcmllcl8gcGFja2FnZSB0byBtYW5hZ2Ugb3Vy
IGNoYW5nZWxvZy4KK2BgdG93bmNyaWVyYGAgdXNlcyBpbmRlcGVuZGVudCBmaWxlcyBmb3IgZWFj
aCBwdWxsIHJlcXVlc3QgLS0gc28gY2FsbGVkICpuZXdzIGZyYWdtZW50cyogLS0gaW5zdGVhZCBv
ZiBvbmUgbW9ub2xpdGhpYyBjaGFuZ2Vsb2cgZmlsZS4KK09uIHJlbGVhc2UgdGhvc2UgbmV3cyBm
cmFnbWVudHMgYXJlIGNvbXBpbGVkIGludG8gb3VyIGBgQ0hBTkdFTE9HLnJzdGBgLgorCitZb3Ug
ZG9uJ3QgbmVlZCB0byBpbnN0YWxsIGBgdG93bmNyaWVyYGAgeW91cnNlbGYsIHlvdSBqdXN0IGhh
dmUgdG8gYWJpZGUgdG8gYSBmZXcgc2ltcGxlIHJ1bGVzOgorCistIEZvciBlYWNoIHB1bGwgcmVx
dWVzdCwgYWRkIGEgbmV3IGZpbGUgaW50byBgYGNoYW5nZWxvZy5kYGAgd2l0aCBhIGZpbGVuYW1l
IGFkaGVyaW5nIHRvIHRoZSBgYHByIy4oY2hhbmdlfGRlcHJlY2F0aW9ufGJyZWFraW5nKS5yc3Rg
YCBzY2hlbWE6CisgIEZvciBleGFtcGxlIGBgY2hhbmdlbG9nLmQvNDIuY2hhbmdlLnJzdGBgIGZv
ciBhIG5vbi1icmVha2luZyBjaGFuZ2UsIHRoYXQgaXMgcHJvcG9zZWQgaW4gcHVsbCByZXF1ZXN0
IG51bWJlciA0Mi4KKy0gQXMgd2l0aCBvdGhlciBkb2NzLCBwbGVhc2UgdXNlIGBzZW1hbnRpYyBu
ZXdsaW5lc2BfIHdpdGhpbiBuZXdzIGZyYWdtZW50cy4KKy0gV3JhcCBzeW1ib2xzIGxpa2UgbW9k
dWxlcywgZnVuY3Rpb25zLCBvciBjbGFzc2VzIGludG8gZG91YmxlIGJhY2t0aWNrcyBzbyB0aGV5
IGFyZSByZW5kZXJlZCBpbiBhIG1vbm9zcGFjZWQgZm9udC4KKy0gSWYgeW91IG1lbnRpb24gZnVu
Y3Rpb25zIG9yIG90aGVyIGNhbGxhYmxlcywgYWRkIHBhcmFudGhlc2VzIGF0IHRoZSBlbmQgb2Yg
dGhlaXIgbmFtZXM6IGBgYXR0ci5mdW5jKClgYCBvciBgYGF0dHIuQ2xhc3MubWV0aG9kKClgYC4K
KyAgVGhpcyBtYWtlcyB0aGUgY2hhbmdlbG9nIGEgbG90IG1vcmUgcmVhZGFibGUuCistIFByZWZl
ciBzaW1wbGUgcGFzdCBvciBjb25zdHJ1Y3Rpb25zIHdpdGggIm5vdyIuCisgIEZvciBleGFtcGxl
OgorCisgICsgQWRkZWQgYGBhdHRyLnZhbGlkYXRvcnMuZnVuYygpYGAuCisgICsgYGBhdHRyLmZ1
bmMoKWBgIG5vdyBkb2Vzbid0IGNyYXNoIHRoZSBMYXJnZSBIYWRyb24gQ29sbGlkZXIgYW55bW9y
ZS4KKy0gSWYgeW91IHdhbnQgdG8gcmVmZXJlbmNlIG11bHRpcGxlIGlzc3VlcywgY29weSB0aGUg
bmV3cyBmcmFnbWVudCB0byBhbm90aGVyIGZpbGVuYW1lLgorICBgYHRvd25jcmllcmBgIHdpbGwg
bWVyZ2UgYWxsIG5ld3MgZnJhZ21lbnRzIHdpdGggaWRlbnRpY2FsIGNvbnRlbnRzIGludG8gb25l
IGVudHJ5IHdpdGggbXVsdGlwbGUgbGlua3MgdG8gdGhlIHJlc3BlY3RpdmUgcHVsbCByZXF1ZXN0
cy4KKworRXhhbXBsZSBlbnRyaWVzOgorCisgIC4uIGNvZGUtYmxvY2s6OiByc3QKKworICAgICBB
ZGRlZCBgYGF0dHIudmFsaWRhdG9ycy5mdW5jKClgYC4KKyAgICAgVGhlIGZlYXR1cmUgcmVhbGx5
ICppcyogYXdlc29tZS4KKworb3I6CisKKyAgLi4gY29kZS1ibG9jazo6IHJzdAorCisgICAgIGBg
YXR0ci5mdW5jKClgYCBub3cgZG9lc24ndCBjcmFzaCB0aGUgTGFyZ2UgSGFkcm9uIENvbGxpZGVy
IGFueW1vcmUuCisgICAgIFRoZSBidWcgcmVhbGx5ICp3YXMqIG5hc3R5LgorCistLS0tCisKK2Bg
dG94IC1lIGNoYW5nZWxvZ2BgIHdpbGwgcmVuZGVyIHRoZSBjdXJyZW50IGNoYW5nZWxvZyB0byB0
aGUgdGVybWluYWwgaWYgeW91IGhhdmUgYW55IGRvdWJ0cy4KKworCitMb2NhbCBEZXZlbG9wbWVu
dCBFbnZpcm9ubWVudAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworWW91IGNhbiAo
YW5kIHNob3VsZCkgcnVuIG91ciB0ZXN0IHN1aXRlIHVzaW5nIHRveF8uCitIb3dldmVyIHlvdeKA
mWxsIHByb2JhYmx5IHdhbnQgYSBtb3JlIHRyYWRpdGlvbmFsIGVudmlyb25tZW50IHRvby4KK1dl
IGhpZ2hseSByZWNvbW1lbmQgdG8gZGV2ZWxvcCB1c2luZyB0aGUgbGF0ZXN0IFB5dGhvbiAzIHJl
bGVhc2UgYmVjYXVzZSBgYGF0dHJzYGAgdHJpZXMgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgbW9kZXJu
IGZlYXR1cmVzIHdoZW5ldmVyIHBvc3NpYmxlLgorCitGaXJzdCBjcmVhdGUgYSBgdmlydHVhbCBl
bnZpcm9ubWVudCA8aHR0cHM6Ly92aXJ0dWFsZW52LnB5cGEuaW8vPmBfLgorSXTigJlzIG91dCBv
ZiBzY29wZSBmb3IgdGhpcyBkb2N1bWVudCB0byBsaXN0IGFsbCB0aGUgd2F5cyB0byBtYW5hZ2Ug
dmlydHVhbCBlbnZpcm9ubWVudHMgaW4gUHl0aG9uIGJ1dCBpZiB5b3UgZG9u4oCZdCBoYXZlIGFs
cmVhZHkgYSBwZXQgd2F5LCB0YWtlIHNvbWUgdGltZSB0byBsb29rIGF0IHRvb2xzIGxpa2UgYHBl
dyA8aHR0cHM6Ly9naXRodWIuY29tL2JlcmRhcmlvL3Bldz5gXywgYHZpcnR1YWxmaXNoIDxodHRw
Oi8vdmlydHVhbGZpc2gucmVhZHRoZWRvY3MuaW8vPmBfLCBhbmQgYHZpcnR1YWxlbnZ3cmFwcGVy
IDxodHRwOi8vdmlydHVhbGVudndyYXBwZXIucmVhZHRoZWRvY3MuaW8vPmBfLgorCitOZXh0IGdl
dCBhbiB1cCB0byBkYXRlIGNoZWNrb3V0IG9mIHRoZSBgYGF0dHJzYGAgcmVwb3NpdG9yeToKKwor
Li4gY29kZS1ibG9jazo6IGJhc2gKKworICAgIGdpdCBjaGVja291dCBnaXRAZ2l0aHViLmNvbTpw
eXRob24tYXR0cnMvYXR0cnMuZ2l0CisKK0NoYW5nZSBpbnRvIHRoZSBuZXdseSBjcmVhdGVkIGRp
cmVjdG9yeSBhbmQgKiphZnRlciBhY3RpdmF0aW5nIHlvdXIgdmlydHVhbCBlbnZpcm9ubWVudCoq
IGluc3RhbGwgYW4gZWRpdGFibGUgdmVyc2lvbiBvZiBgYGF0dHJzYGA6CisKKy4uIGNvZGUtYmxv
Y2s6OiBiYXNoCisKKyAgICBjZCBhdHRycworICAgIHBpcCBpbnN0YWxsIC1lIC4KKworSWYgeW91
IHJ1biB0aGUgdmlydHVhbCBlbnZpcm9ubWVudOKAmXMgUHl0aG9uIGFuZCB0cnkgdG8gYGBpbXBv
cnQgYXR0cmBgIGl0IHNob3VsZCB3b3JrIQorCitUbyBydW4gdGhlIHRlc3Qgc3VpdGUsIHlvdSds
bCBuZWVkIG91ciBkZXZlbG9wbWVudCBkZXBlbmRlbmNpZXMgd2hpY2ggY2FuIGJlIGluc3RhbGxl
ZCB1c2luZworCisuLiBjb2RlLWJsb2NrOjogYmFzaAorCisgICAgcGlwIGluc3RhbGwgLXIgZGV2
LXJlcXVpcmVtZW50cy50eHQKKworQXQgdGhpcyBwb2ludAorCisuLiBjb2RlLWJsb2NrOjogYmFz
aAorCisgICBweXRob24gLW0gcHl0ZXN0CisKK3Nob3VsZCB3b3JrIGFuZCBwYXNzIQorCisKK0dv
dmVybmFuY2UKKy0tLS0tLS0tLS0KKworYGBhdHRyc2BgIGlzIG1haW50YWluZWQgYnkgYHRlYW0g
b2Ygdm9sdW50ZWVyc2BfIHRoYXQgaXMgYWx3YXlzIG9wZW4gZm9yIG5ldyBtZW1iZXJzIHRoYXQg
c2hhcmUgb3VyIHZpc2lvbiBvZiBhIGZhc3QsIGxlYW4sIGFuZCBtYWdpYy1mcmVlIGxpYnJhcnkg
dGhhdCBlbXBvd2VycyBwcm9ncmFtbWVycyB0byB3cml0ZSBiZXR0ZXIgY29kZSB3aXRoIGxlc3Mg
ZWZmb3J0LgorSWYgeW91J2QgbGlrZSB0byBqb2luLCBqdXN0IGdldCBhIHB1bGwgcmVxdWVzdCBt
ZXJnZWQgYW5kIGFzayB0byBiZSBhZGRlZCBpbiB0aGUgdmVyeSBzYW1lIHB1bGwgcmVxdWVzdCEK
KworKipUaGUgc2ltcGxlIHJ1bGUgaXMgdGhhdCBldmVyeW9uZSBpcyB3ZWxjb21lIHRvIHJldmll
dy9tZXJnZSBwdWxsIHJlcXVlc3RzIG9mIG90aGVycyBidXQgbm9ib2R5IGlzIGFsbG93ZWQgdG8g
bWVyZ2UgdGhlaXIgb3duIGNvZGUuKioKKworYEh5bmVrIFNjaGxhd2Fja2BfIGFjdHMgcmVsdWN0
YW50bHkgYXMgdGhlIEJERkxfIGFuZCBoYXMgdGhlIGZpbmFsIHNheSBvdmVyIGRlc2lnbiBkZWNp
c2lvbnMuCisKKworKioqKgorCitQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgcHJvamVjdCBpcyByZWxl
YXNlZCB3aXRoIGEgQ29udHJpYnV0b3IgYENvZGUgb2YgQ29uZHVjdGBfLgorQnkgcGFydGljaXBh
dGluZyBpbiB0aGlzIHByb2plY3QgeW91IGFncmVlIHRvIGFiaWRlIGJ5IGl0cyB0ZXJtcy4KK1Bs
ZWFzZSByZXBvcnQgYW55IGhhcm0gdG8gYEh5bmVrIFNjaGxhd2Fja2BfIGluIGFueSB3YXkgeW91
IGZpbmQgYXBwcm9wcmlhdGUuCisKK1RoYW5rIHlvdSBmb3IgY29uc2lkZXJpbmcgY29udHJpYnV0
aW5nIHRvIGBgYXR0cnNgYCEKKworCisuLiBfYEh5bmVrIFNjaGxhd2Fja2A6IGh0dHBzOi8vaHlu
ZWsubWUvYWJvdXQvCisuLiBfYFBFUCA4YDogaHR0cHM6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVw
cy9wZXAtMDAwOC8KKy4uIF9gUEVQIDI1N2A6IGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3Bl
cHMvcGVwLTAyNTcvCisuLiBfYGdvb2QgdGVzdCBkb2NzdHJpbmdzYDogaHR0cHM6Ly9qbWwuaW8v
cGFnZXMvdGVzdC1kb2NzdHJpbmdzLmh0bWwKKy4uIF9gQ29kZSBvZiBDb25kdWN0YDogaHR0cHM6
Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9ibG9iL21hc3Rlci9DT0RFX09GX0NPTkRV
Q1QucnN0CisuLiBfY2hhbmdlbG9nOiBodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uLWF0dHJzL2F0
dHJzL2Jsb2IvbWFzdGVyL0NIQU5HRUxPRy5yc3QKKy4uIF9gYmFja3dhcmQgY29tcGF0aWJpbGl0
eWA6IGh0dHA6Ly93d3cuYXR0cnMub3JnL2VuL2xhdGVzdC9iYWNrd2FyZC1jb21wYXRpYmlsaXR5
Lmh0bWwKKy4uIF90b3g6IGh0dHBzOi8vdG94LnJlYWR0aGVkb2NzLmlvLworLi4gX3B5ZW52OiBo
dHRwczovL2dpdGh1Yi5jb20vcHllbnYvcHllbnYKKy4uIF9yZVN0cnVjdHVyZWRUZXh0OiBodHRw
Oi8vd3d3LnNwaGlueC1kb2Mub3JnL2VuL3N0YWJsZS9yZXN0Lmh0bWwKKy4uIF9zZW1hbnRpYyBu
ZXdsaW5lczogaHR0cDovL3Job2Rlc21pbGwub3JnL2JyYW5kb24vMjAxMi9vbmUtc2VudGVuY2Ut
cGVyLWxpbmUvCisuLiBfZXhhbXBsZXMgcGFnZTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1h
dHRycy9hdHRycy9ibG9iL21hc3Rlci9kb2NzL2V4YW1wbGVzLnJzdAorLi4gX0h5cG90aGVzaXM6
IGh0dHBzOi8vaHlwb3RoZXNpcy5yZWFkdGhlZG9jcy5pby8KKy4uIF9DSTogaHR0cHM6Ly90cmF2
aXMtY2kub3JnL3B5dGhvbi1hdHRycy9hdHRycy8KKy4uIF9gdGVhbSBvZiB2b2x1bnRlZXJzYDog
aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycworLi4gX0JERkw6IGh0dHBzOi8vZW4ud2lr
aXBlZGlhLm9yZy93aWtpL0JlbmV2b2xlbnRfZGljdGF0b3JfZm9yX2xpZmUKKy4uIF90b3duY3Jp
ZXI6IGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC90b3duY3JpZXIKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YXR0cnMvTElDRU5TRSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvTElDRU5TRQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YWUzZGY5MzA5
NzZiZDAxZDM0MDQxYjFjN2NlZWI0YjMyYWFjZThjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
dHRycy9MSUNFTlNFCkBAIC0wLDAgKzEsMjEgQEAKK1RoZSBNSVQgTGljZW5zZSAoTUlUKQorCitD
b3B5cmlnaHQgKGMpIDIwMTUgSHluZWsgU2NobGF3YWNrCisKK1Blcm1pc3Npb24gaXMgaGVyZWJ5
IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkK
K29mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhl
ICJTb2Z0d2FyZSIpLCB0byBkZWFsCitpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlv
biwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCit0byB1c2UsIGNvcHks
IG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBz
ZWxsCitjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hv
bSB0aGUgU29mdHdhcmUgaXMKK2Z1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnM6CisKK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlz
IHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbAorY29waWVzIG9yIHN1
YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKworVEhFIFNPRlRXQVJFIElTIFBS
T1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IK
K0lNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZLAorRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5P
TklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCitBVVRIT1JTIE9SIENPUFlSSUdI
VCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCitMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lT
RSwgQVJJU0lORyBGUk9NLAorT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdB
UkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKK1NPRlRXQVJFLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9hdHRycy9NQU5JRkVTVC5pbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvTUFOSUZFU1QuaW4KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDNhOTQ4ZWYyYzRhNGE0MjAwZDVhYjJkYWVjNDYyZTI5NjIwMWNhYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvTUFOSUZFU1QuaW4KQEAgLTAsMCArMSwxOSBAQAoraW5j
bHVkZSBMSUNFTlNFICoucnN0ICoudG9tbAorCisjIERvbid0IHBhY2thZ2UgR2l0SHViLXNwZWNp
ZmljIGZpbGVzLgorZXhjbHVkZSAqLm1kIC50cmF2aXMueW1sCisKKyMgVGVzdHMKK2luY2x1ZGUg
dG94LmluaSAuY292ZXJhZ2VyYyBjb25mdGVzdC5weSBkZXYtcmVxdWlyZW1lbnRzLnR4dCBkb2Nz
LXJlcXVpcmVtZW50cy50eHQKK3JlY3Vyc2l2ZS1pbmNsdWRlIHRlc3RzICoucHkKKworIyBEb2N1
bWVudGF0aW9uCitpbmNsdWRlIGRvY3MvTWFrZWZpbGUgZG9jcy9kb2N1dGlscy5jb25mCityZWN1
cnNpdmUtaW5jbHVkZSBkb2NzICoucG5nCityZWN1cnNpdmUtaW5jbHVkZSBkb2NzICouc3ZnCity
ZWN1cnNpdmUtaW5jbHVkZSBkb2NzICoucHkKK3JlY3Vyc2l2ZS1pbmNsdWRlIGRvY3MgKi5yc3QK
K3BydW5lIGRvY3MvX2J1aWxkCisKKyMgQ2hhbmdlbG9nIG5ld3MgZnJhZ21lbnRzIC0tIGlzIGVt
cHR5IG9uIHJlbGVhc2VzLgorcHJ1bmUgY2hhbmdlbG9nLmQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0
cnMvUFVMTF9SRVFVRVNUX1RFTVBMQVRFLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9QVUxMX1JFUVVFU1RfVEVN
UExBVEUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMzRjNDY4ZTZhZTU0MzUxNzhjN2RjOTFiZjYzZDhiM2Q1MjU1
MDU1NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvUFVMTF9SRVFVRVNUX1RFTVBMQVRF
Lm1kCkBAIC0wLDAgKzEsMTIgQEAKKyMgUHVsbCBSZXF1ZXN0IENoZWNrIExpc3QKKworVGhpcyBp
cyBqdXN0IGEgcmVtaW5kZXIgYWJvdXQgdGhlIG1vc3QgY29tbW9uIG1pc3Rha2VzLiAgUGxlYXNl
IG1ha2Ugc3VyZSB0aGF0IHlvdSB0aWNrIGFsbCAqYXBwcm9wcmlhdGUqIGJveGVzLiAgQnV0IHBs
ZWFzZSByZWFkIG91ciBbY29udHJpYnV0aW9uIGd1aWRlXShodHRwOi8vd3d3LmF0dHJzLm9yZy9l
bi9sYXRlc3QvY29udHJpYnV0aW5nLmh0bWwpIGF0IGxlYXN0IG9uY2UsIGl0IHdpbGwgc2F2ZSB5
b3UgdW5uZWNlc3NhcnkgcmV2aWV3IGN5Y2xlcyEKKworLSBbIF0gQWRkZWQgKip0ZXN0cyoqIGZv
ciBjaGFuZ2VkIGNvZGUuCistIFsgXSBOZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHRvIG91
ciBbSHlwb3RoZXNpcyB0ZXN0aW5nIHN0cmF0ZWd5XShodHRwczovL2dpdGh1Yi5jb20vcHl0aG9u
LWF0dHJzL2F0dHJzL2Jsb2IvbWFzdGVyL3Rlc3RzL3V0aWxzLnB5KS4KKy0gWyBdIFVwZGF0ZWQg
Kipkb2N1bWVudGF0aW9uKiogZm9yIGNoYW5nZWQgY29kZS4KKy0gWyBdIERvY3VtZW50YXRpb24g
aW4gYC5yc3RgIGZpbGVzIGlzIHdyaXR0ZW4gdXNpbmcgW3NlbWFudGljIG5ld2xpbmVzXShodHRw
Oi8vcmhvZGVzbWlsbC5vcmcvYnJhbmRvbi8yMDEyL29uZS1zZW50ZW5jZS1wZXItbGluZS8pLgor
LSBbIF0gQ2hhbmdlZC9hZGRlZCBjbGFzc2VzL21ldGhvZHMvZnVuY3Rpb25zIGhhdmUgYXBwcm9w
cmlhdGUgYHZlcnNpb25hZGRlZGAsIGB2ZXJzaW9uY2hhbmdlZGAsIG9yIGBkZXByZWNhdGVkYCBb
ZGlyZWN0aXZlc10oaHR0cDovL3d3dy5zcGhpbngtZG9jLm9yZy9lbi9zdGFibGUvbWFya3VwL3Bh
cmEuaHRtbCNkaXJlY3RpdmUtdmVyc2lvbmFkZGVkKS4KKy0gWyBdIENoYW5nZXMgKGFuZCBwb3Nz
aWJsZSBkZXByZWNhdGlvbnMpIGhhdmUgbmV3cyBmcmFnbWVudHMgaW4gW2BjaGFuZ2Vsb2cuZGBd
KGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvYmxvYi9tYXN0ZXIvY2hhbmdl
bG9nLmQpLgorCitJZiB5b3UgaGF2ZSAqYW55KiBxdWVzdGlvbnMgdG8gKmFueSogb2YgdGhlIHBv
aW50cyBhYm92ZSwganVzdCAqKnN1Ym1pdCBhbmQgYXNrKiohICBUaGlzIGNoZWNrbGlzdCBpcyBo
ZXJlIHRvICpoZWxwKiB5b3UsIG5vdCB0byBkZXRlciB5b3UgZnJvbSBjb250cmlidXRpbmchCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2F0dHJzL1JFQURNRS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL1JFQURNRS5yc3QK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODRkNmFhNzY1MzExN2EwOTNjYTNkMTkxZDEzM2I0OGM2NTcyZDc2MgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvUkVBRE1FLnJzdApAQCAtMCwwICsxLDEyOSBAQAor
Li4gaW1hZ2U6OiBodHRwOi8vd3d3LmF0dHJzLm9yZy9lbi9sYXRlc3QvX3N0YXRpYy9hdHRyc19s
b2dvLnBuZworICAgOmFsdDogYXR0cnMgTG9nbworCis9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorYGBhdHRyc2BgOiBDbGFzc2VzIFdpdGhvdXQgQm9pbGVycGxhdGUKKz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGltYWdlOjogaHR0cHM6
Ly9yZWFkdGhlZG9jcy5vcmcvcHJvamVjdHMvYXR0cnMvYmFkZ2UvP3ZlcnNpb249c3RhYmxlCisg
ICA6dGFyZ2V0OiBodHRwOi8vd3d3LmF0dHJzLm9yZy9lbi9zdGFibGUvP2JhZGdlPXN0YWJsZQor
ICAgOmFsdDogRG9jdW1lbnRhdGlvbiBTdGF0dXMKKworLi4gaW1hZ2U6OiBodHRwczovL3RyYXZp
cy1jaS5vcmcvcHl0aG9uLWF0dHJzL2F0dHJzLnN2Zz9icmFuY2g9bWFzdGVyCisgICA6dGFyZ2V0
OiBodHRwczovL3RyYXZpcy1jaS5vcmcvcHl0aG9uLWF0dHJzL2F0dHJzCisgICA6YWx0OiBDSSBT
dGF0dXMKKworLi4gaW1hZ2U6OiBodHRwczovL2NvZGVjb3YuaW8vZ2l0aHViL3B5dGhvbi1hdHRy
cy9hdHRycy9icmFuY2gvbWFzdGVyL2dyYXBoL2JhZGdlLnN2ZworICAgOnRhcmdldDogaHR0cHM6
Ly9jb2RlY292LmlvL2dpdGh1Yi9weXRob24tYXR0cnMvYXR0cnMKKyAgIDphbHQ6IFRlc3QgQ292
ZXJhZ2UKKworLi4gdGVhc2VyLWJlZ2luCisKK2BgYXR0cnNgYCBpcyB0aGUgUHl0aG9uIHBhY2th
Z2UgdGhhdCB3aWxsIGJyaW5nIGJhY2sgdGhlICoqam95Kiogb2YgKip3cml0aW5nIGNsYXNzZXMq
KiBieSByZWxpZXZpbmcgeW91IGZyb20gdGhlIGRydWRnZXJ5IG9mIGltcGxlbWVudGluZyBvYmpl
Y3QgcHJvdG9jb2xzIChha2EgYGR1bmRlciA8aHR0cHM6Ly9uZWRiYXRjaGVsZGVyLmNvbS9ibG9n
LzIwMDYwNS9kdW5kZXIuaHRtbD5gXyBtZXRob2RzKS4KKworSXRzIG1haW4gZ29hbCBpcyB0byBo
ZWxwIHlvdSB0byB3cml0ZSAqKmNvbmNpc2UqKiBhbmQgKipjb3JyZWN0Kiogc29mdHdhcmUgd2l0
aG91dCBzbG93aW5nIGRvd24geW91ciBjb2RlLgorCisuLiAtc3BpZWwtZW5kLQorCitGb3IgdGhh
dCwgaXQgZ2l2ZXMgeW91IGEgY2xhc3MgZGVjb3JhdG9yIGFuZCBhIHdheSB0byBkZWNsYXJhdGl2
ZWx5IGRlZmluZSB0aGUgYXR0cmlidXRlcyBvbiB0aGF0IGNsYXNzOgorCisuLiAtY29kZS1iZWdp
bi0KKworLi4gY29kZS1ibG9jazo6IHB5Y29uCisKKyAgID4+PiBpbXBvcnQgYXR0cgorICAgCisg
ICA+Pj4gQGF0dHIucworICAgLi4uIGNsYXNzIFNvbWVDbGFzcyhvYmplY3QpOgorICAgLi4uICAg
ICBhX251bWJlciA9IGF0dHIuaWIoZGVmYXVsdD00MikKKyAgIC4uLiAgICAgbGlzdF9vZl9udW1i
ZXJzID0gYXR0ci5pYihkZWZhdWx0PWF0dHIuRmFjdG9yeShsaXN0KSkKKyAgIC4uLgorICAgLi4u
ICAgICBkZWYgaGFyZF9tYXRoKHNlbGYsIGFub3RoZXJfbnVtYmVyKToKKyAgIC4uLiAgICAgICAg
IHJldHVybiBzZWxmLmFfbnVtYmVyICsgc3VtKHNlbGYubGlzdF9vZl9udW1iZXJzKSAqIGFub3Ro
ZXJfbnVtYmVyCisgICAKKyAgIAorICAgPj4+IHNjID0gU29tZUNsYXNzKDEsIFsxLCAyLCAzXSkK
KyAgID4+PiBzYworICAgU29tZUNsYXNzKGFfbnVtYmVyPTEsIGxpc3Rfb2ZfbnVtYmVycz1bMSwg
MiwgM10pCisgICAKKyAgID4+PiBzYy5oYXJkX21hdGgoMykKKyAgIDE5CisgICA+Pj4gc2MgPT0g
U29tZUNsYXNzKDEsIFsxLCAyLCAzXSkKKyAgIFRydWUKKyAgID4+PiBzYyAhPSBTb21lQ2xhc3Mo
MiwgWzMsIDIsIDFdKQorICAgVHJ1ZQorICAgCisgICA+Pj4gYXR0ci5hc2RpY3Qoc2MpCisgICB7
J2FfbnVtYmVyJzogMSwgJ2xpc3Rfb2ZfbnVtYmVycyc6IFsxLCAyLCAzXX0KKyAgIAorICAgPj4+
IFNvbWVDbGFzcygpCisgICBTb21lQ2xhc3MoYV9udW1iZXI9NDIsIGxpc3Rfb2ZfbnVtYmVycz1b
XSkKKyAgIAorICAgPj4+IEMgPSBhdHRyLm1ha2VfY2xhc3MoIkMiLCBbImEiLCAiYiJdKQorICAg
Pj4+IEMoImZvbyIsICJiYXIiKQorICAgQyhhPSdmb28nLCBiPSdiYXInKQorCisKK0FmdGVyICpk
ZWNsYXJpbmcqIHlvdXIgYXR0cmlidXRlcyBgYGF0dHJzYGAgZ2l2ZXMgeW91OgorCistIGEgY29u
Y2lzZSBhbmQgZXhwbGljaXQgb3ZlcnZpZXcgb2YgdGhlIGNsYXNzJ3MgYXR0cmlidXRlcywKKy0g
YSBuaWNlIGh1bWFuLXJlYWRhYmxlIGBgX19yZXByX19gYCwKKy0gYSBjb21wbGV0ZSBzZXQgb2Yg
Y29tcGFyaXNvbiBtZXRob2RzLAorLSBhbiBpbml0aWFsaXplciwKKy0gYW5kIG11Y2ggbW9yZSwK
KworKndpdGhvdXQqIHdyaXRpbmcgZHVsbCBib2lsZXJwbGF0ZSBjb2RlIGFnYWluIGFuZCBhZ2Fp
biBhbmQgKndpdGhvdXQqIHJ1bnRpbWUgcGVyZm9ybWFuY2UgcGVuYWx0aWVzLgorCitUaGlzIGdp
dmVzIHlvdSB0aGUgcG93ZXIgdG8gdXNlIGFjdHVhbCBjbGFzc2VzIHdpdGggYWN0dWFsIHR5cGVz
IGluIHlvdXIgY29kZSBpbnN0ZWFkIG9mIGNvbmZ1c2luZyBgYHR1cGxlYGBcIHMgb3IgYGNvbmZ1
c2luZ2x5IGJlaGF2aW5nIDxodHRwOi8vd3d3LmF0dHJzLm9yZy9lbi9zdGFibGUvd2h5Lmh0bWwj
bmFtZWR0dXBsZXM+YF8gYGBuYW1lZHR1cGxlYGBcIHMuCitXaGljaCBpbiB0dXJuIGVuY291cmFn
ZXMgeW91IHRvIHdyaXRlICpzbWFsbCBjbGFzc2VzKiB0aGF0IGRvIGBvbmUgdGhpbmcgd2VsbCA8
aHR0cHM6Ly93d3cuZGVzdHJveWFsbHNvZnR3YXJlLmNvbS90YWxrcy9ib3VuZGFyaWVzPmBfLgor
TmV2ZXIgYWdhaW4gdmlvbGF0ZSB0aGUgYHNpbmdsZSByZXNwb25zaWJpbGl0eSBwcmluY2lwbGUg
PGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1NpbmdsZV9yZXNwb25zaWJpbGl0eV9wcmlu
Y2lwbGU+YF8ganVzdCBiZWNhdXNlIGltcGxlbWVudGluZyBgYF9faW5pdF9fYGAgZXQgYWwgaXMg
YSBwYWluZnVsIGRyYWcuCisKKworLi4gLXRlc3RpbW9uaWFscy0KKworVGVzdGltb25pYWxzCis9
PT09PT09PT09PT0KKworKipBbWJlciBIYXdraWUgQnJvd24qKiwgVHdpc3RlZCBSZWxlYXNlIE1h
bmFnZXIgYW5kIENvbXB1dGVyIE93bDoKKworICBXcml0aW5nIGEgZnVsbHktZnVuY3Rpb25hbCBj
bGFzcyB1c2luZyBhdHRycyB0YWtlcyBtZSBsZXNzIHRpbWUgdGhhbiB3cml0aW5nIHRoaXMgdGVz
dGltb25pYWwuCisKKworKipHbHlwaCBMZWZrb3dpdHoqKiwgY3JlYXRvciBvZiBgVHdpc3RlZCA8
aHR0cHM6Ly90d2lzdGVkbWF0cml4LmNvbS8+YF8sIGBBdXRvbWF0IDxodHRwczovL3B5cGkucHl0
aG9uLm9yZy9weXBpL0F1dG9tYXQ+YF8sIGFuZCBvdGhlciBvcGVuIHNvdXJjZSBzb2Z0d2FyZSwg
aW4gYFRoZSBPbmUgUHl0aG9uIExpYnJhcnkgRXZlcnlvbmUgTmVlZHMgPGh0dHBzOi8vZ2x5cGgu
dHdpc3RlZG1hdHJpeC5jb20vMjAxNi8wOC9hdHRycy5odG1sPmBfOgorCisgIEnigJltIGxvb2tp
bmcgZm9yd2FyZCB0byBpcyBiZWluZyBhYmxlIHRvIHByb2dyYW0gaW4gUHl0aG9uLXdpdGgtYXR0
cnMgZXZlcnl3aGVyZS4KKyAgSXQgZXhlcnRzIGEgc3VidGxlLCBidXQgcG9zaXRpdmUsIGRlc2ln
biBpbmZsdWVuY2UgaW4gYWxsIHRoZSBjb2RlYmFzZXMgSeKAmXZlIHNlZSBpdCB1c2VkIGluLgor
CisKKyoqS2VubmV0aCBSZWl0eioqLCBhdXRob3Igb2YgYHJlcXVlc3RzIDxodHRwOi8vd3d3LnB5
dGhvbi1yZXF1ZXN0cy5vcmcvPmBfLCBQeXRob24gT3ZlcmxvcmQgYXQgSGVyb2t1LCBgb24gcGFw
ZXIgbm8gbGVzcyA8aHR0cHM6Ly90d2l0dGVyLmNvbS9oeW5lay9zdGF0dXMvODY2ODE3ODc3NjUw
NzUxNDg4PmBfOgorCisgIGF0dHJz4oCUY2xhc3NlcyBmb3IgaHVtYW5zLiAgSSBsaWtlIGl0Lgor
CisKKyoqxYF1a2FzeiBMYW5nYSoqLCBwcm9saWZpYyBDUHl0aG9uIGNvcmUgZGV2ZWxvcGVyIGFu
ZCBQcm9kdWN0aW9uIEVuZ2luZWVyIGF0IEZhY2Vib29rOgorCisgIEknbSBpbmNyZWFzaW5nbHkg
ZGlnZ2luZyB5b3VyIGF0dHIub2NpdHkuIEdvb2Qgam9iIQorCisKKy4uIC1lbmQtCisKKy4uIC1w
cm9qZWN0LWluZm9ybWF0aW9uLQorCitHZXR0aW5nIEhlbHAKKz09PT09PT09PT09PQorCitQbGVh
c2UgdXNlIHRoZSBgYHB5dGhvbi1hdHRyc2BgIHRhZyBvbiBgU3RhY2tPdmVyZmxvdyA8aHR0cHM6
Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvdGFnZ2VkL3B5dGhvbi1hdHRycz5gXyB0byBn
ZXQgaGVscC4KKworQW5zd2VyaW5nIHF1ZXN0aW9ucyBvZiB5b3VyIGZlbGxvdyBkZXZlbG9wZXJz
IGlzIGFsc28gZ3JlYXQgd2F5IHRvIGhlbHAgdGhlIHByb2plY3QhCisKKworUHJvamVjdCBJbmZv
cm1hdGlvbgorPT09PT09PT09PT09PT09PT09PQorCitgYGF0dHJzYGAgaXMgcmVsZWFzZWQgdW5k
ZXIgdGhlIGBNSVQgPGh0dHBzOi8vY2hvb3NlYWxpY2Vuc2UuY29tL2xpY2Vuc2VzL21pdC8+YF8g
bGljZW5zZSwKK2l0cyBkb2N1bWVudGF0aW9uIGxpdmVzIGF0IGBSZWFkIHRoZSBEb2NzIDxodHRw
Oi8vd3d3LmF0dHJzLm9yZy8+YF8sCit0aGUgY29kZSBvbiBgR2l0SHViIDxodHRwczovL2dpdGh1
Yi5jb20vcHl0aG9uLWF0dHJzL2F0dHJzPmBfLAorYW5kIHRoZSBsYXRlc3QgcmVsZWFzZSBvbiBg
UHlQSSA8aHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L2F0dHJzLz5gXy4KK0l04oCZcyByaWdvcm91
c2x5IHRlc3RlZCBvbiBQeXRob24gMi43LCAzLjQrLCBhbmQgUHlQeS4KKworSWYgeW91J2QgbGlr
ZSB0byBjb250cmlidXRlIHlvdSdyZSBtb3N0IHdlbGNvbWUgYW5kIHdlJ3ZlIHdyaXR0ZW4gYGEg
bGl0dGxlIGd1aWRlIDxodHRwOi8vd3d3LmF0dHJzLm9yZy9lbi9sYXRlc3QvY29udHJpYnV0aW5n
Lmh0bWw+YF8gdG8gZ2V0IHlvdSBzdGFydGVkIQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFu
Z2Vsb2cuZC8yNjEuY2hhbmdlLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMjYxLmNoYW5n
ZS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjg2N2Y2NmRkMjM1Nzg0Y2ZkOWRjOTc4NmE2ZGRhOWU3MjI3NjU1
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMjYxLmNoYW5nZS5y
c3QKQEAgLTAsMCArMSw0IEBACitHZW5lcmF0ZWQgYGBfX2hhc2hfX2BgIG1ldGhvZHMgbm93IGhh
c2ggdGhlIGNsYXNzIHR5cGUgYWxvbmcgd2l0aCB0aGUgYXR0cmlidXRlIHZhbHVlcy4KK1VudGls
IG5vdyB0aGUgaGFzaGVzIG9mIHR3byBjbGFzc2VzIHdpdGggdGhlIHNhbWUgdmFsdWVzIHdlcmUg
aWRlbnRpY2FsIHdoaWNoIHdhcyBhIGJ1Zy4KKworVGhlIGdlbmVyYXRlZCBtZXRob2QgaXMgYWxz
byAqbXVjaCogZmFzdGVyIG5vdy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQv
Mjg0LmNoYW5nZS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kLzI4NC5jaGFuZ2UucnN0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjI2NjU5OWRhYWJlYjE2ODdhZTQwNWViNGFmYzUyOTU3ZDQ0YThmOWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kLzI4NC5jaGFuZ2UucnN0CkBAIC0w
LDAgKzEsMiBAQAorYGBjdHlwZXNgYCBpcyBvcHRpb25hbCBub3cgaG93ZXZlciBpZiBpdCdzIG1p
c3NpbmcsIGEgYmFyZSBgYHN1cGVyKClgYCB3aWxsIG5vdCB3b3JrIGluIHNsb3RzIGNsYXNzZXMu
CitUaGlzIHNob3VsZCBvbmx5IGhhcHBlbiBpbiBzcGVjaWFsIGVudmlyb25tZW50cyBsaWtlIEdv
b2dsZSBBcHAgRW5naW5lLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8yODUu
Y2hhbmdlLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMjg1LmNoYW5nZS5yc3QKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzNmYmI3OTdkNGY3MzllNDI3YjIxODNhMGRiYjA3NTM4NGFmMGI2MQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMjg1LmNoYW5nZS5yc3QKQEAgLTAsMCAr
MSwyIEBACitUaGUgYXR0cmlidXRlIHJlZGVmaW5pdGlvbiBmZWF0dXJlIGludHJvZHVjZWQgaW4g
MTcuMy4wIG5vdyB0YWtlcyBpbnRvIGFjY291bnQgaWYgYW4gYXR0cmlidXRlIGlzIHJlZGVmaW5l
ZCB2aWEgbXVsdGlwbGUgaW5oZXJpdGFuY2UuCitJbiB0aGF0IGNhc2UsIHRoZSBkZWZpbml0aW9u
IHRoYXQgaXMgY2xvc2VyIHRvIHRoZSBiYXNlIG9mIHRoZSBjbGFzcyBoaWVyYXJjaHkgd2lucy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMjg2LmNoYW5nZS5yc3QgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2F0dHJzL2NoYW5nZWxvZy5kLzI4Ni5jaGFuZ2UucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2NjU5OWRhYWJl
YjE2ODdhZTQwNWViNGFmYzUyOTU3ZDQ0YThmOWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0
dHJzL2NoYW5nZWxvZy5kLzI4Ni5jaGFuZ2UucnN0CkBAIC0wLDAgKzEsMiBAQAorYGBjdHlwZXNg
YCBpcyBvcHRpb25hbCBub3cgaG93ZXZlciBpZiBpdCdzIG1pc3NpbmcsIGEgYmFyZSBgYHN1cGVy
KClgYCB3aWxsIG5vdCB3b3JrIGluIHNsb3RzIGNsYXNzZXMuCitUaGlzIHNob3VsZCBvbmx5IGhh
cHBlbiBpbiBzcGVjaWFsIGVudmlyb25tZW50cyBsaWtlIEdvb2dsZSBBcHAgRW5naW5lLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8yODcuY2hhbmdlLnJzdCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0
cnMvY2hhbmdlbG9nLmQvMjg3LmNoYW5nZS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzNmYmI3OTdkNGY3Mzll
NDI3YjIxODNhMGRiYjA3NTM4NGFmMGI2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMv
Y2hhbmdlbG9nLmQvMjg3LmNoYW5nZS5yc3QKQEAgLTAsMCArMSwyIEBACitUaGUgYXR0cmlidXRl
IHJlZGVmaW5pdGlvbiBmZWF0dXJlIGludHJvZHVjZWQgaW4gMTcuMy4wIG5vdyB0YWtlcyBpbnRv
IGFjY291bnQgaWYgYW4gYXR0cmlidXRlIGlzIHJlZGVmaW5lZCB2aWEgbXVsdGlwbGUgaW5oZXJp
dGFuY2UuCitJbiB0aGF0IGNhc2UsIHRoZSBkZWZpbml0aW9uIHRoYXQgaXMgY2xvc2VyIHRvIHRo
ZSBiYXNlIG9mIHRoZSBjbGFzcyBoaWVyYXJjaHkgd2lucy4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0
cnMvY2hhbmdlbG9nLmQvMjkxLmNoYW5nZS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kLzI5
MS5jaGFuZ2UucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkNTQzOGYxZGJlZTU5ZDM0MGNjODYzZWNlNDQ5MjI3
NzMxNzY0YzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kLzI5MS5j
aGFuZ2UucnN0CkBAIC0wLDAgKzEgQEAKK1N1YmNsYXNzZXMgb2YgYGBhdXRvX2F0dHJpYnM9VHJ1
ZWBgIGNhbiBiZSBlbXB0eSBub3cuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5k
LzI5Mi5jaGFuZ2UucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8yOTIuY2hhbmdlLnJzdApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wZDU0MzhmMWRiZWU1OWQzNDBjYzg2M2VjZTQ0OTIyNzczMTc2NGM2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8yOTIuY2hhbmdlLnJzdApAQCAt
MCwwICsxIEBACitTdWJjbGFzc2VzIG9mIGBgYXV0b19hdHRyaWJzPVRydWVgYCBjYW4gYmUgZW1w
dHkgbm93LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8yOTUuY2hhbmdlLnJz
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMjk1LmNoYW5nZS5yc3QKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjg2
N2Y2NmRkMjM1Nzg0Y2ZkOWRjOTc4NmE2ZGRhOWU3MjI3NjU1ZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMjk1LmNoYW5nZS5yc3QKQEAgLTAsMCArMSw0IEBACitH
ZW5lcmF0ZWQgYGBfX2hhc2hfX2BgIG1ldGhvZHMgbm93IGhhc2ggdGhlIGNsYXNzIHR5cGUgYWxv
bmcgd2l0aCB0aGUgYXR0cmlidXRlIHZhbHVlcy4KK1VudGlsIG5vdyB0aGUgaGFzaGVzIG9mIHR3
byBjbGFzc2VzIHdpdGggdGhlIHNhbWUgdmFsdWVzIHdlcmUgaWRlbnRpY2FsIHdoaWNoIHdhcyBh
IGJ1Zy4KKworVGhlIGdlbmVyYXRlZCBtZXRob2QgaXMgYWxzbyAqbXVjaCogZmFzdGVyIG5vdy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMjk2LmNoYW5nZS5yc3QgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2F0dHJzL2NoYW5nZWxvZy5kLzI5Ni5jaGFuZ2UucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4NjdmNjZkZDIz
NTc4NGNmZDlkYzk3ODZhNmRkYTllNzIyNzY1NWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0
dHJzL2NoYW5nZWxvZy5kLzI5Ni5jaGFuZ2UucnN0CkBAIC0wLDAgKzEsNCBAQAorR2VuZXJhdGVk
IGBgX19oYXNoX19gYCBtZXRob2RzIG5vdyBoYXNoIHRoZSBjbGFzcyB0eXBlIGFsb25nIHdpdGgg
dGhlIGF0dHJpYnV0ZSB2YWx1ZXMuCitVbnRpbCBub3cgdGhlIGhhc2hlcyBvZiB0d28gY2xhc3Nl
cyB3aXRoIHRoZSBzYW1lIHZhbHVlcyB3ZXJlIGlkZW50aWNhbCB3aGljaCB3YXMgYSBidWcuCisK
K1RoZSBnZW5lcmF0ZWQgbWV0aG9kIGlzIGFsc28gKm11Y2gqIGZhc3RlciBub3cuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9j
aGFuZ2Vsb2cuZC93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDc4ODFlYzlhYjVhMThjNDk2
ZTQzNjVmZTJhMDc3OTRkMDI3YjI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFu
Z2Vsb2cuZC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDI1IEBACitUaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0
dHJzL2NoYW5nZWxvZy5kLzI2MS5jaGFuZ2UucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8y
ODQuY2hhbmdlLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMjg1LmNoYW5nZS5yc3QKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2F0dHJzL2NoYW5nZWxvZy5kLzI4Ni5jaGFuZ2UucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vs
b2cuZC8yODcuY2hhbmdlLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMjkxLmNoYW5nZS5y
c3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kLzI5Mi5jaGFuZ2UucnN0CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9j
aGFuZ2Vsb2cuZC8yOTUuY2hhbmdlLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMjk2LmNo
YW5nZS5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY29uZnRlc3QucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJz
L2NvbmZ0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkNGQ2NTI1YjQ1ZGI2ODNjOTI1NWYzNDI1MWM2ZDA2
ZTQ0YzE3MDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NvbmZ0ZXN0LnB5CkBAIC0w
LDAgKzEsMjggQEAKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZp
c2lvbiwgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IHN5cworCitpbXBvcnQgcHl0ZXN0CisKKwor
QHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIikKK2RlZiBDKCk6CisgICAgIiIiCisgICAg
UmV0dXJuIGEgc2ltcGxlIGJ1dCBmdWxseSBmZWF0dXJlZCBhdHRycyBjbGFzcyB3aXRoIGFuIHgg
YW5kIGEgeSBhdHRyaWJ1dGUuCisgICAgIiIiCisgICAgaW1wb3J0IGF0dHIKKworICAgIEBhdHRy
LnMKKyAgICBjbGFzcyBDKG9iamVjdCk6CisgICAgICAgIHggPSBhdHRyLmliKCkKKyAgICAgICAg
eSA9IGF0dHIuaWIoKQorCisgICAgcmV0dXJuIEMKKworCitjb2xsZWN0X2lnbm9yZSA9IFtdCitp
ZiBzeXMudmVyc2lvbl9pbmZvWzoyXSA8ICgzLCA2KToKKyAgICBjb2xsZWN0X2lnbm9yZS5leHRl
bmQoWworICAgICAgICAidGVzdHMvdGVzdF9hbm5vdGF0aW9ucy5weSIsCisgICAgICAgICJ0ZXN0
cy90ZXN0X2luaXRfc3ViY2xhc3MucHkiLAorICAgIF0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJz
L2Rldi1yZXF1aXJlbWVudHMudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kZXYtcmVxdWlyZW1lbnRzLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iYmQ2YjkyMDFlMGQxN2MyZjQ3M2I5OGRhMjNmYzBmMjQzOWJmMDgyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kZXYtcmVxdWlyZW1lbnRzLnR4dApAQCAtMCwwICsx
LDYgQEAKK2NvdmVyYWdlCitoeXBvdGhlc2lzCitweW1wbGVyCitweXRlc3QKK3NpeAorem9wZS5p
bnRlcmZhY2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy1yZXF1aXJlbWVudHMudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9hdHRycy9kb2NzLXJlcXVpcmVtZW50cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzQ3M2UxZTQzMjQz
NTFlOWU5ZGFjZjUzMDVmMGZmMTM5MDUxYTQzZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0
cnMvZG9jcy1yZXF1aXJlbWVudHMudHh0CkBAIC0wLDAgKzEsMyBAQAorLWUgLgorc3BoaW54Cit6
b3BlLmludGVyZmFjZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL01ha2VmaWxlIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9hdHRycy9kb2NzL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxNDM4OTFkYWY4ODQ5M2IxMWUzNDZl
OGRlZjcxOWRmNDk5ZWVjOWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvTWFr
ZWZpbGUKQEAgLTAsMCArMSwxNzcgQEAKKyMgTWFrZWZpbGUgZm9yIFNwaGlueCBkb2N1bWVudGF0
aW9uCisjCisKKyMgWW91IGNhbiBzZXQgdGhlc2UgdmFyaWFibGVzIGZyb20gdGhlIGNvbW1hbmQg
bGluZS4KK1NQSElOWE9QVFMgICAgPQorU1BISU5YQlVJTEQgICA9IHNwaGlueC1idWlsZAorUEFQ
RVIgICAgICAgICA9CitCVUlMRERJUiAgICAgID0gX2J1aWxkCisKKyMgVXNlci1mcmllbmRseSBj
aGVjayBmb3Igc3BoaW54LWJ1aWxkCitpZmVxICgkKHNoZWxsIHdoaWNoICQoU1BISU5YQlVJTEQp
ID4vZGV2L251bGwgMj4mMTsgZWNobyAkJD8pLCAxKQorJChlcnJvciBUaGUgJyQoU1BISU5YQlVJ
TEQpJyBjb21tYW5kIHdhcyBub3QgZm91bmQuIE1ha2Ugc3VyZSB5b3UgaGF2ZSBTcGhpbnggaW5z
dGFsbGVkLCB0aGVuIHNldCB0aGUgU1BISU5YQlVJTEQgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8g
cG9pbnQgdG8gdGhlIGZ1bGwgcGF0aCBvZiB0aGUgJyQoU1BISU5YQlVJTEQpJyBleGVjdXRhYmxl
LiBBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gYWRkIHRoZSBkaXJlY3Rvcnkgd2l0aCB0aGUgZXhlY3V0
YWJsZSB0byB5b3VyIFBBVEguIElmIHlvdSBkb24ndCBoYXZlIFNwaGlueCBpbnN0YWxsZWQsIGdy
YWIgaXQgZnJvbSBodHRwOi8vc3BoaW54LWRvYy5vcmcvKQorZW5kaWYKKworIyBJbnRlcm5hbCB2
YXJpYWJsZXMuCitQQVBFUk9QVF9hNCAgICAgPSAtRCBsYXRleF9wYXBlcl9zaXplPWE0CitQQVBF
Uk9QVF9sZXR0ZXIgPSAtRCBsYXRleF9wYXBlcl9zaXplPWxldHRlcgorQUxMU1BISU5YT1BUUyAg
ID0gLWQgJChCVUlMRERJUikvZG9jdHJlZXMgJChQQVBFUk9QVF8kKFBBUEVSKSkgJChTUEhJTlhP
UFRTKSAuCisjIHRoZSBpMThuIGJ1aWxkZXIgY2Fubm90IHNoYXJlIHRoZSBlbnZpcm9ubWVudCBh
bmQgZG9jdHJlZXMgd2l0aCB0aGUgb3RoZXJzCitJMThOU1BISU5YT1BUUyAgPSAkKFBBUEVST1BU
XyQoUEFQRVIpKSAkKFNQSElOWE9QVFMpIC4KKworLlBIT05ZOiBoZWxwIGNsZWFuIGh0bWwgZGly
aHRtbCBzaW5nbGVodG1sIHBpY2tsZSBqc29uIGh0bWxoZWxwIHF0aGVscCBkZXZoZWxwIGVwdWIg
bGF0ZXggbGF0ZXhwZGYgdGV4dCBtYW4gY2hhbmdlcyBsaW5rY2hlY2sgZG9jdGVzdCBnZXR0ZXh0
CisKK2hlbHA6CisJQGVjaG8gIlBsZWFzZSB1c2UgXGBtYWtlIDx0YXJnZXQ+JyB3aGVyZSA8dGFy
Z2V0PiBpcyBvbmUgb2YiCisJQGVjaG8gIiAgaHRtbCAgICAgICB0byBtYWtlIHN0YW5kYWxvbmUg
SFRNTCBmaWxlcyIKKwlAZWNobyAiICBkaXJodG1sICAgIHRvIG1ha2UgSFRNTCBmaWxlcyBuYW1l
ZCBpbmRleC5odG1sIGluIGRpcmVjdG9yaWVzIgorCUBlY2hvICIgIHNpbmdsZWh0bWwgdG8gbWFr
ZSBhIHNpbmdsZSBsYXJnZSBIVE1MIGZpbGUiCisJQGVjaG8gIiAgcGlja2xlICAgICB0byBtYWtl
IHBpY2tsZSBmaWxlcyIKKwlAZWNobyAiICBqc29uICAgICAgIHRvIG1ha2UgSlNPTiBmaWxlcyIK
KwlAZWNobyAiICBodG1saGVscCAgIHRvIG1ha2UgSFRNTCBmaWxlcyBhbmQgYSBIVE1MIGhlbHAg
cHJvamVjdCIKKwlAZWNobyAiICBxdGhlbHAgICAgIHRvIG1ha2UgSFRNTCBmaWxlcyBhbmQgYSBx
dGhlbHAgcHJvamVjdCIKKwlAZWNobyAiICBkZXZoZWxwICAgIHRvIG1ha2UgSFRNTCBmaWxlcyBh
bmQgYSBEZXZoZWxwIHByb2plY3QiCisJQGVjaG8gIiAgZXB1YiAgICAgICB0byBtYWtlIGFuIGVw
dWIiCisJQGVjaG8gIiAgbGF0ZXggICAgICB0byBtYWtlIExhVGVYIGZpbGVzLCB5b3UgY2FuIHNl
dCBQQVBFUj1hNCBvciBQQVBFUj1sZXR0ZXIiCisJQGVjaG8gIiAgbGF0ZXhwZGYgICB0byBtYWtl
IExhVGVYIGZpbGVzIGFuZCBydW4gdGhlbSB0aHJvdWdoIHBkZmxhdGV4IgorCUBlY2hvICIgIGxh
dGV4cGRmamEgdG8gbWFrZSBMYVRlWCBmaWxlcyBhbmQgcnVuIHRoZW0gdGhyb3VnaCBwbGF0ZXgv
ZHZpcGRmbXgiCisJQGVjaG8gIiAgdGV4dCAgICAgICB0byBtYWtlIHRleHQgZmlsZXMiCisJQGVj
aG8gIiAgbWFuICAgICAgICB0byBtYWtlIG1hbnVhbCBwYWdlcyIKKwlAZWNobyAiICB0ZXhpbmZv
ICAgIHRvIG1ha2UgVGV4aW5mbyBmaWxlcyIKKwlAZWNobyAiICBpbmZvICAgICAgIHRvIG1ha2Ug
VGV4aW5mbyBmaWxlcyBhbmQgcnVuIHRoZW0gdGhyb3VnaCBtYWtlaW5mbyIKKwlAZWNobyAiICBn
ZXR0ZXh0ICAgIHRvIG1ha2UgUE8gbWVzc2FnZSBjYXRhbG9ncyIKKwlAZWNobyAiICBjaGFuZ2Vz
ICAgIHRvIG1ha2UgYW4gb3ZlcnZpZXcgb2YgYWxsIGNoYW5nZWQvYWRkZWQvZGVwcmVjYXRlZCBp
dGVtcyIKKwlAZWNobyAiICB4bWwgICAgICAgIHRvIG1ha2UgRG9jdXRpbHMtbmF0aXZlIFhNTCBm
aWxlcyIKKwlAZWNobyAiICBwc2V1ZG94bWwgIHRvIG1ha2UgcHNldWRveG1sLVhNTCBmaWxlcyBm
b3IgZGlzcGxheSBwdXJwb3NlcyIKKwlAZWNobyAiICBsaW5rY2hlY2sgIHRvIGNoZWNrIGFsbCBl
eHRlcm5hbCBsaW5rcyBmb3IgaW50ZWdyaXR5IgorCUBlY2hvICIgIGRvY3Rlc3QgICAgdG8gcnVu
IGFsbCBkb2N0ZXN0cyBlbWJlZGRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiAoaWYgZW5hYmxlZCki
CisKK2NsZWFuOgorCXJtIC1yZiAkKEJVSUxERElSKS8qCisKK2h0bWw6CisJJChTUEhJTlhCVUlM
RCkgLWIgaHRtbCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2h0bWwKKwlAZWNobworCUBl
Y2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIEhUTUwgcGFnZXMgYXJlIGluICQoQlVJTERESVIpL2h0
bWwuIgorCitkaXJodG1sOgorCSQoU1BISU5YQlVJTEQpIC1iIGRpcmh0bWwgJChBTExTUEhJTlhP
UFRTKSAkKEJVSUxERElSKS9kaXJodG1sCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQu
IFRoZSBIVE1MIHBhZ2VzIGFyZSBpbiAkKEJVSUxERElSKS9kaXJodG1sLiIKKworc2luZ2xlaHRt
bDoKKwkkKFNQSElOWEJVSUxEKSAtYiBzaW5nbGVodG1sICQoQUxMU1BISU5YT1BUUykgJChCVUlM
RERJUikvc2luZ2xlaHRtbAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgSFRN
TCBwYWdlIGlzIGluICQoQlVJTERESVIpL3NpbmdsZWh0bWwuIgorCitwaWNrbGU6CisJJChTUEhJ
TlhCVUlMRCkgLWIgcGlja2xlICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvcGlja2xlCisJ
QGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHByb2Nlc3MgdGhlIHBp
Y2tsZSBmaWxlcy4iCisKK2pzb246CisJJChTUEhJTlhCVUlMRCkgLWIganNvbiAkKEFMTFNQSElO
WE9QVFMpICQoQlVJTERESVIpL2pzb24KKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsg
bm93IHlvdSBjYW4gcHJvY2VzcyB0aGUgSlNPTiBmaWxlcy4iCisKK2h0bWxoZWxwOgorCSQoU1BI
SU5YQlVJTEQpIC1iIGh0bWxoZWxwICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvaHRtbGhl
bHAKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcnVuIEhUTUwg
SGVscCBXb3Jrc2hvcCB3aXRoIHRoZSIgXAorCSAgICAgICIuaGhwIHByb2plY3QgZmlsZSBpbiAk
KEJVSUxERElSKS9odG1saGVscC4iCisKK3F0aGVscDoKKwkkKFNQSElOWEJVSUxEKSAtYiBxdGhl
bHAgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9xdGhlbHAKKwlAZWNobworCUBlY2hvICJC
dWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcnVuICJxY29sbGVjdGlvbmdlbmVyYXRvciIgd2l0
aCB0aGUiIFwKKwkgICAgICAiLnFoY3AgcHJvamVjdCBmaWxlIGluICQoQlVJTERESVIpL3F0aGVs
cCwgbGlrZSB0aGlzOiIKKwlAZWNobyAiIyBxY29sbGVjdGlvbmdlbmVyYXRvciAkKEJVSUxERElS
KS9xdGhlbHAvYXR0cnMucWhjcCIKKwlAZWNobyAiVG8gdmlldyB0aGUgaGVscCBmaWxlOiIKKwlA
ZWNobyAiIyBhc3Npc3RhbnQgLWNvbGxlY3Rpb25GaWxlICQoQlVJTERESVIpL3F0aGVscC9hdHRy
cy5xaGMiCisKK2RldmhlbHA6CisJJChTUEhJTlhCVUlMRCkgLWIgZGV2aGVscCAkKEFMTFNQSElO
WE9QVFMpICQoQlVJTERESVIpL2RldmhlbHAKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hl
ZC4iCisJQGVjaG8gIlRvIHZpZXcgdGhlIGhlbHAgZmlsZToiCisJQGVjaG8gIiMgbWtkaXIgLXAg
JCRIT01FLy5sb2NhbC9zaGFyZS9kZXZoZWxwL2F0dHJzIgorCUBlY2hvICIjIGxuIC1zICQoQlVJ
TERESVIpL2RldmhlbHAgJCRIT01FLy5sb2NhbC9zaGFyZS9kZXZoZWxwL2F0dHJzIgorCUBlY2hv
ICIjIGRldmhlbHAiCisKK2VwdWI6CisJJChTUEhJTlhCVUlMRCkgLWIgZXB1YiAkKEFMTFNQSElO
WE9QVFMpICQoQlVJTERESVIpL2VwdWIKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4g
VGhlIGVwdWIgZmlsZSBpcyBpbiAkKEJVSUxERElSKS9lcHViLiIKKworbGF0ZXg6CisJJChTUEhJ
TlhCVUlMRCkgLWIgbGF0ZXggJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9sYXRleAorCUBl
Y2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkOyB0aGUgTGFUZVggZmlsZXMgYXJlIGluICQoQlVJ
TERESVIpL2xhdGV4LiIKKwlAZWNobyAiUnVuIFxgbWFrZScgaW4gdGhhdCBkaXJlY3RvcnkgdG8g
cnVuIHRoZXNlIHRocm91Z2ggKHBkZilsYXRleCIgXAorCSAgICAgICIodXNlIFxgbWFrZSBsYXRl
eHBkZicgaGVyZSB0byBkbyB0aGF0IGF1dG9tYXRpY2FsbHkpLiIKKworbGF0ZXhwZGY6CisJJChT
UEhJTlhCVUlMRCkgLWIgbGF0ZXggJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9sYXRleAor
CUBlY2hvICJSdW5uaW5nIExhVGVYIGZpbGVzIHRocm91Z2ggcGRmbGF0ZXguLi4iCisJJChNQUtF
KSAtQyAkKEJVSUxERElSKS9sYXRleCBhbGwtcGRmCisJQGVjaG8gInBkZmxhdGV4IGZpbmlzaGVk
OyB0aGUgUERGIGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS9sYXRleC4iCisKK2xhdGV4cGRmamE6
CisJJChTUEhJTlhCVUlMRCkgLWIgbGF0ZXggJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9s
YXRleAorCUBlY2hvICJSdW5uaW5nIExhVGVYIGZpbGVzIHRocm91Z2ggcGxhdGV4IGFuZCBkdmlw
ZGZteC4uLiIKKwkkKE1BS0UpIC1DICQoQlVJTERESVIpL2xhdGV4IGFsbC1wZGYtamEKKwlAZWNo
byAicGRmbGF0ZXggZmluaXNoZWQ7IHRoZSBQREYgZmlsZXMgYXJlIGluICQoQlVJTERESVIpL2xh
dGV4LiIKKwordGV4dDoKKwkkKFNQSElOWEJVSUxEKSAtYiB0ZXh0ICQoQUxMU1BISU5YT1BUUykg
JChCVUlMRERJUikvdGV4dAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgdGV4
dCBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvdGV4dC4iCisKK21hbjoKKwkkKFNQSElOWEJVSUxE
KSAtYiBtYW4gJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9tYW4KKwlAZWNobworCUBlY2hv
ICJCdWlsZCBmaW5pc2hlZC4gVGhlIG1hbnVhbCBwYWdlcyBhcmUgaW4gJChCVUlMRERJUikvbWFu
LiIKKwordGV4aW5mbzoKKwkkKFNQSElOWEJVSUxEKSAtYiB0ZXhpbmZvICQoQUxMU1BISU5YT1BU
UykgJChCVUlMRERJUikvdGV4aW5mbworCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBU
aGUgVGV4aW5mbyBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvdGV4aW5mby4iCisJQGVjaG8gIlJ1
biBcYG1ha2UnIGluIHRoYXQgZGlyZWN0b3J5IHRvIHJ1biB0aGVzZSB0aHJvdWdoIG1ha2VpbmZv
IiBcCisJICAgICAgIih1c2UgXGBtYWtlIGluZm8nIGhlcmUgdG8gZG8gdGhhdCBhdXRvbWF0aWNh
bGx5KS4iCisKK2luZm86CisJJChTUEhJTlhCVUlMRCkgLWIgdGV4aW5mbyAkKEFMTFNQSElOWE9Q
VFMpICQoQlVJTERESVIpL3RleGluZm8KKwlAZWNobyAiUnVubmluZyBUZXhpbmZvIGZpbGVzIHRo
cm91Z2ggbWFrZWluZm8uLi4iCisJbWFrZSAtQyAkKEJVSUxERElSKS90ZXhpbmZvIGluZm8KKwlA
ZWNobyAibWFrZWluZm8gZmluaXNoZWQ7IHRoZSBJbmZvIGZpbGVzIGFyZSBpbiAkKEJVSUxERElS
KS90ZXhpbmZvLiIKKworZ2V0dGV4dDoKKwkkKFNQSElOWEJVSUxEKSAtYiBnZXR0ZXh0ICQoSTE4
TlNQSElOWE9QVFMpICQoQlVJTERESVIpL2xvY2FsZQorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZp
bmlzaGVkLiBUaGUgbWVzc2FnZSBjYXRhbG9ncyBhcmUgaW4gJChCVUlMRERJUikvbG9jYWxlLiIK
KworY2hhbmdlczoKKwkkKFNQSElOWEJVSUxEKSAtYiBjaGFuZ2VzICQoQUxMU1BISU5YT1BUUykg
JChCVUlMRERJUikvY2hhbmdlcworCUBlY2hvCisJQGVjaG8gIlRoZSBvdmVydmlldyBmaWxlIGlz
IGluICQoQlVJTERESVIpL2NoYW5nZXMuIgorCitsaW5rY2hlY2s6CisJJChTUEhJTlhCVUlMRCkg
LWIgbGlua2NoZWNrICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvbGlua2NoZWNrCisJQGVj
aG8KKwlAZWNobyAiTGluayBjaGVjayBjb21wbGV0ZTsgbG9vayBmb3IgYW55IGVycm9ycyBpbiB0
aGUgYWJvdmUgb3V0cHV0ICIgXAorCSAgICAgICJvciBpbiAkKEJVSUxERElSKS9saW5rY2hlY2sv
b3V0cHV0LnR4dC4iCisKK2RvY3Rlc3Q6CisJJChTUEhJTlhCVUlMRCkgLWIgZG9jdGVzdCAkKEFM
TFNQSElOWE9QVFMpICQoQlVJTERESVIpL2RvY3Rlc3QKKwlAZWNobyAiVGVzdGluZyBvZiBkb2N0
ZXN0cyBpbiB0aGUgc291cmNlcyBmaW5pc2hlZCwgbG9vayBhdCB0aGUgIiBcCisJICAgICAgInJl
c3VsdHMgaW4gJChCVUlMRERJUikvZG9jdGVzdC9vdXRwdXQudHh0LiIKKworeG1sOgorCSQoU1BI
SU5YQlVJTEQpIC1iIHhtbCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3htbAorCUBlY2hv
CisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgWE1MIGZpbGVzIGFyZSBpbiAkKEJVSUxERElS
KS94bWwuIgorCitwc2V1ZG94bWw6CisJJChTUEhJTlhCVUlMRCkgLWIgcHNldWRveG1sICQoQUxM
U1BISU5YT1BUUykgJChCVUlMRERJUikvcHNldWRveG1sCisJQGVjaG8KKwlAZWNobyAiQnVpbGQg
ZmluaXNoZWQuIFRoZSBwc2V1ZG8tWE1MIGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS9wc2V1ZG94
bWwuIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL19zdGF0aWMvYXR0cnNfbG9nby5wbmcg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2F0dHJzL2RvY3MvX3N0YXRpYy9hdHRyc19sb2dvLnBuZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMWI2
ZTZmZTNmOTllODdkN2U3MDY1ZDUzYzBmZDZjYTExZjBhNjIxCkdJVCBiaW5hcnkgcGF0Y2gKbGl0
ZXJhbCA3NjM5CnpjbVpgO2N7RWdpK2BkRFdZfXVFUlduYEJ5YzNCKFNXTlJYWT84WktYJFVYXzdB
e3NKYEZmeCpARVpMY1VzNCV1aAp6KitvTTM/Mll4a3ozPD1lSj9HOW5fcztpeCZiXj1RY3xPbEsq
fi1HMG1GWVlhMDA2OX1DVTdLcHRwZDtJalAmNGQKek9xJilmY3NVYm5VfjBfPjkjTT8kTiNPbjJL
JEFQYzBLbkd5P31US152UndjbDNXT05tNCFJZUMzSkcld0AmTGxaCnohc05adHpRSnhUZmdiViFM
N3V0bVNJK34kTVFjO0l6ViFxQVQzJSQ3cGwkZW0+O1VlWSZ3UURtPGZlRT1VMnkxUwp6aldHI31w
QmJJcTdtT2heYDlQejk2Z3kxLTxxUSZXKS0tJSMtKyRKQlhgV0w1dSUwaFJiPGokclI8SDVRY3pu
RCkKempiaXF3b0AqU0pwUHo+KD5WQzMrIWYxdl51YnA/OzA3VztIeVo3c1FkMXhyPVJgYVdrI2lG
Izw7Q31xfT5VeGM1Cnp8OW02NiFGZipVY3s9aXVKJHkkQUJNS2ROPDQtKVJfcyN4OExESH4yPUsw
bm8mU1lPO1JmVDEpbjZzPD5JPW8lJgp6STFYMzFhPS15TlJtLWhabEgkdzczYio3SEF8Zk5qWGxa
RlQ9Pk89VytTb35NS3FVaFNfU1BIdChBVn1kPUAjVXsKelU2RDk+O0xTOG1KUlhXT0wqR0N8YkNR
VS1rPnVaeCRWWm84UDhNKWUtfnVxfEBSaypOa208c3wkUkw4QUktNDJ4CnpAVlN7cGZIZmtUN1cz
d1BzU35wKCtOXn1xakIrJSkjRjxDRmlwcDdkZX0yTUFWZmE4bDtYeXBvTjRTTm0ofC0lRwp6aERF
TUZONDdCbW9YTVJOKjtFWmNjWGZIJFpiZV8xSVdGK21UfEU9JmVBPlc9a0lpTEpDKDwxTHhIYn0q
aCtNOGEKekswZU5SZF8wXjB0YEk0PXVTYXVXVUk/a2xxR2FSJl9WbE40WHF1Xz8lZzlPRm5mUlYm
O1A9d2ZvJTJ0Kys4QWM0CnpNR284K3d6SHxkUXROaWdhPGpGQ1lgPmRnWGZnaXE5Vl53YFZ8X1de
TkppM3EkUDxeXnkxS2l5Vkg/dzJrb15eYgp6IVl6OFV0M3FqS01mVl9zWXU5ZkExanJMYngpfXNU
SXNhXmZsalllR1I+KERZRWFxa2teTz5wITs3Xy1hdCVIYlEKeklJVmFsIWNiQnxmKnlqdT4zUVFJ
Zm45cWtCJS09TVhjKEAoTVFAXi1KQyU0S0QtVlE3N28pNHsrM1ByRTB4JH5PCnomQzhjTlNZb1B6
Rzg0P3p7VFpMYnEzTn50WiZYSkgkdjEkQjxTKl9FblNkajBMOWQ2czBPfVNYNjVsWVNAWUx6TQp6
JGlHaiNwcz80bnpZUj5VfEo7aU97dFZzT0pEWEZ2NjI+KzMqe2I2TzdQcytFWlV1KGtzQThDezY/
TldRcFZJMGcKektheGtjand0czxCS1deXiVrPmBFMH5ANz1eM2I+US1kMjFEXkEpc2s/QXhzQDln
NEU8c2BXP1p6NSR4UT87fWZ9Cnp6blB0R1Z3Vllzekoxciswfioxbz1PVlBMdnR8YyVfRiYhcm8t
cF9WRHgjXldJY3tmZj9eSzB0STsmP1JSKXpGdwp6PDhAd0k3TFFFZVFKSiZ7NFlNWUZ8Tml8N1k/
fkdTdHR2ZiUtRk0rOzhnOE50LVNYUlVobEx+aFZeYH5hYXFIPEIKens/Skc8bjNMaV9NNjFuLWRX
PDxkbSRmNlgyMi12emkmcW9McmdvaTJ4Njd4U0k0b0k8cmtqTHQ0bj55dj9aMTVYCnp3bjZWcmkk
MWI5aWtwMC1hKENwNG9ERmcxeno2dDJYSTFmIytHZ2tlUiZCUVNCZUFUXipaJmdkU1NOV0FAPmBV
VQp6TnAyQSZhUk9XYjVzUiNNU0hqJjtUUWkySHVUaTdnY3NXS21oaSlRITR6Yjh7ZGB0LSshTUIh
MiNheEVQZSN4cXsKejMkPn1ONG1AaSk+aH5KIU1EdkhPTD16czg9ZmVNXnZAbmVwWHF1WWRwdUhr
cEplfTk9LWV3PTVLZ24pISFRI2Z5CnpfO3UtZF5eRyRyXjRlMG1RWjR5Tz56ND54SU9fSHtycikl
U2pHe3U2YD5qTXVWKzY8bHRgKX44MzEtP044bjM/Vwp6VTMtcVMwUkJHciZNQz16ZkZue25wRWZ4
YDA9ZUdpbXFhfDFpMDZNPiEmMiR4I24zezFqd21MKXp3Tmc+SXkhbzwKekJ0ckk5YENsbmE3Zis2
c1hJQmModDtvbm9iVnh8WjhKS35CXz4xbWErfUJgdG5Qd2ItYGlrNHtVRld2dWQmQU9GCnpRflBt
fVgtfVY7UlhRfFExMmZ8P0tRY3lFNzB0S0x0O2p1KyY1N3Ywa29JfWJBZ0shWT9ZZUxRT3FIPjY4
S19YMgp6bFgoMENFekNabCQkUilMVjk3WiZBfUp9XkY3VjlnUkd8MkJTMVEqfkJ4fWR0cHREcVlL
Ny0tPUwhSVArST1Qaj8KemhAUDEmcVJsaU1kWEViaCVVaERGWk9KNXhIWjdyPyt1enhkPnMjRjNh
OWUxJDUpfTZ9RVVmKytpOyV1PURlPEQ0CnpNbyVXd1BEeFI1bExhR20/aldxVS1pIzlFY0paKChu
VFgjO05iQn5IVl5iKXhfJE9HVCk1IWZ9PTlAUWYyMl9qNQp6TTA3PE50XlZMS3hhNEJWQl9TY1Ba
dWw7eDdkVk1lJTJMPzJobWBYZ09iUiVrek1fUW1sJnVeJTBlezspUWRGUF4KemBUOU11QyQ/OFph
YTBKamlIQjRUOVE0N3E1NWUhWEo9YF5KWUhsN19VUmpDTXpfZGpkbEBlSy1Eb0AyWnFGK3gzCnpW
RzllZTIkVHx6eWhDPykjS3s8Kk0mcV5GeFVydjAzfndLWks0VT55LVRwTVVgR29oflBhMlhLakU0
Xlo/WSgwRQp6U3BqX1Zia0whbihkVnxAWkdrU2kqZlM+KlolbXM+WSVgLWA4Ykc2dWFLZl9wd2V1
YD08PkUoflcoKXljKVBnekQKemRwZklrSzckLTMrfHNSaD8qKVV1b08rSld4SmE/WHhmeHI0X25V
bmRyPVooSE1WNSFRP2MyYilQdFZIc0hoJD0pCnorITVrSl9Te2V4Y0U8ekdxbytUdGlUIUVTVzJe
VFcmSSM+a0dJYHdmJlBuRzMlcVc2RFVfazQ8UjdWaT4wTSQ2dAp6ZjRJTSk4fjMkUiREPl5nNl9l
fG9iS1JXTTt1UkhqZ2FEI3pkZHpfVUZnMkRASHlzTVB1X0d3YWlJVTBAPHUhZmwKentaM2dtZX0x
PEdXMTx0d3hwUWU7THpqVlNwdkAzSWFTUDA8QT8zY1JYMSp7TmladnpDVTFfV2s4ekY/YjVTQV57
CnpEOU09fENIa2AwfE5XWUhyM2dWNiN4bURFIzxNMGVTb1F1enNVSG5ITG0pM0UwUUJYYD5Pclpz
a0V6KD4lTjI9NAp6cUAobkY1cGFJQ145fC1zczV0clBWc0NYXj5kP2ZYXjBPXzNeZUZAODslLShF
WiNFVSRUZkh9SXBLNFNuWUJgJEcKej9ILTN+Jk98YjdROyh7K2t+Xj0xcG0kbXw5clRUZkJidUdH
QHFmI1ZMQSMhVmMmOHhNK2BkWW1Qazloc3VnKW9ZCnokUERXKT98K2k2P3tCWXUrdk8kUEBNYGVC
YzIlZ0lvNzU1KUlRJkh2KDFIa303Sy01Xkl3XiZ3JDEhJVQ5SGIoaAp6e1VMNTt7RllEN28mPjdX
Vk14MigzVVFuZDIzSC1tX0l8bChUMEgoUUJrWXZ6REFHc2VLWGk5byE3UHkjT3lxMCMKemJWazJf
NTU9dlNZYl4kbnM+QD9LNnNFPUVOOWl9WFBSekdrKXt4eERobCUjQG1ZVUcpPXtycSNROEE7ezxe
SV92CnpxRTlQVjB6P1Rfe31sfWs+aCFkSnR9WnYweHkxJDxiUVRMeCF1ZzNxPnFTQGQpYUJ6SlR6
VUkkMV9YWGw9c154Jgp6OSZEU0lqQSFEaCpGMjkxNHtwVEFwQSNBJkE4QitiSUtKSn1mZ1c1KWda
fnw/NFkyPW08U2pMU25WWUV0KDBOR3MKel9+QilQLUJieD4kckNheHhVSSlIVGRYQEphUDZBKCNe
QilLNFR8eXgrU2hrUWdyRWdea2tPaW1iOXl0b1hTYmZXCnp1NTBiY3I7T2RRc1FDd0BpN3I9Mzxj
JUdJSG1YdmIlZV5seDVgYHxTZGo/QlN3NFYwMXYkTU9aY3VZflEkUW90Ngp6U2hyXmhjUlZQfFEm
Z19xcVQkfnJhNnA2WlUtSkZqUmlScEFEWlFTQmo4TyFlJiRfPDdDa3R5dU9MVE8hQHl0VVMKeip0
VU9iWWIpQn4hVWpleS0tVmxXKiZ5akl2Wm4tJGJqeUUjXk9yek4xYiheJjQ4eGtBQVV9VVlTPFoh
QG4tQjB3CnpDdG5gNWQyWihkbiRjZU1PSX17e25NbX1iITxPY25NJSQ2eW1CcEtpPV9ZdXdfeT1j
bjQ0YTNQKlN2TWR7Wi1HZQp6S2l+Jks/cncrQDRyaWh0NEFObFFkciZwUHZZdDE9TXA2Z2dzUkYp
N1BWT3NUMFc8YzRyTjBedlllfno4PTdJZWkKemMqJW48UUIoe2dpNENlNVBuYkJNQjEmX1V5YEgy
VSgtP200TERrdnJWSDA3PV8/KDxeekdueGVeKn5EWmJzYj1hCnptY299VWZhVjA2VytMQE56T3BE
ITs9e2JXZW9MaXo9ak5vaEFibCpAbSFFJEh2dXlteHhSdmZ0QEBFKjFKUjhBMAp6QiZHYSVEPldA
bW14aVNIOEJRQjAqb0NjeE8mUFNebWJgTzUxOWJLNT9DZD8lJD5XSUw4X2VWKlVXKVFhSGdTeEEK
endkKkQ0IzxSMkhFKVgxKkMoI3xzJGV3dyEtdmh4e3g+OVpFb0NXKmsla1V6fnlWN3phQk8/amgz
T2hQeytlantDCnpGd01FOyR5ODdfRWBhfnkjZnchQUR4SnhSNkVlQm9vdD5TIVU5UnRXZkxHbn5M
Q3kzRzRDZzh4VE8mNHFjMENFQgp6azsxdCpeKCRiKT9xc1ByMW5CMkhPdzNiTkFEV3VGM3w2SERQ
X31acCpEdUt7Kk08TXxQSmwrdkwhen1LQEVxdyMKekIzc0luRyZWX3B8TmY8UmJhYTQoJkZGayt6
a1BDZ2RpdSotNj9TempyMCleRU4+QW81VSV1PUUha21UTl56JnR9CnpGQlIzKSFISjByRSg+QWI+
e0Y1S0xzUzNTTjkoKi1OWTFWQiFeNlhYeFkjVkdJeDhTPjV5I20mWCRkfHxVfmhLewp6NUlfVlg4
OD1aQjwjeXxUdVpPYTZ7N0JZTV5BblQkZ3E4Qmw0TlNzU2ZuZGR+WVVAeG1STmhsJk1ybkQ0KGA2
QnsKekVuSlRRKDd9SXJmdlg/TVZOY1cyIWc3ZT1eKytGUE9teGslYzBaWlZLNUd+REA7RHdfOzlj
S0NHP2pTNEN0SXhaCnpgMExyZEp4MCtGTTlSfFVnUjNWcHFNYlp8Sm1nTygqLWJKTHJ8V207eVZG
MmhUZz5xUlBZeUJxUTQ7dmlYUUZvdQp6KTNrZHYzcj9SUmQmTyFwb0xeOXxCQGNIaFNpJll4QUpq
T1JfM2A3IU0+UStnck5mSGViWT9iOGZ1dD08I3pmKnAKek1XWH1TQlIyTF9iVSkqPGBjVW0qMyN7
OCskO2FLQEo8USZJO3UhUT0ya0BPcWJRPDY3UERidzlSeXVAM0Z4TUF7CnpjMW56bWoxWTtEbmhg
cip2IW4wYlc+ZSRSQEVsP1JidGNrM0FPJH5ERzM+NnZudDNQVDA1a3p4UHs8bTU2byg3VAp6K08q
OSo8NlBKdnE2TFV0ZUM7NHchajs8TVZOIzQ3bil7cX5oMVduWCY4U0VjdG5eUitfQF8ta3Fydn1v
RVN1SGoKenplfnBrKFBIfUdBIWxKdVUlfEhNcmhQWE1TISU3RSt2Zjs0KkMyZ2g5RVBDI1RPR0hR
bUNRWFN7KUppcUVObmRQCnoyTGU5ZlQkMUM4MClDZjB7eUR6YVRFJTFGcHNUMk9QaSE+PV87QjJM
dGx2d0tRX2tHbDB9MDFQZXR2JE1jalpyQQp6JXg0O2ZlczJDPE5ubFQtTmdDQkhwb2tDQFBVRWxW
XnNxfGg1MWRLfVg1aVV9RU5RdEpmQ0JJRlRrMCZGKUZfPW0KelR1dVRBTTVzMSRYXldOQW5lfVUq
JFFETHhwVFgyPkhSLXg8Xndxa0QqPm1HQHNtWjBTQyF8WiMyMnUrKXZZIVhvCno0P1orNW0/NVha
SWlNLSklJE49MytxWEluejI8OX5nU2lkI0lZIX1IVDNSRUpLbV9KdTB8NUBARnhHN2RlMUdlTAp6
Y35KYChxKlQrQTxUcGF3UT8/cUp6QiM8OUVoO2srVyMjcXRZT1olfmxAUHIlYU4/TDxnQ3kxQlZJ
PFRwJlVIOVAKejV2dXUtRUQzU1gqMH1pMGh5cGdyRC1uQmE3UERgcEt4ISpnZ3J8SHRCdnxIT0dY
IURMUzB7ZllmZ0xvIWs7ZzNaCnppVG9zPGVHUVBuZyR0NHRROUBoPiszKm1OK2BlXzteWEdFe2hz
NXVQZztuKj0yWXA/PyR1UmhkeWF1bUxOK0tYaQp6WiRMSEFJQDZGdVU/ckt6cklWOHIyPX05QXZW
VSFnVDJ5R0UpbypiXkZUXjN5KSF+c1VVJShsMTZyNkZCOCtLfFgKeno1Qj5hMCM9bl40SS0lPnJT
X0dRZjFCYHBRNlYzMnF7R3A4TjA2MDJhV2dMezBvaH19RChvd2JUZmFzJSVSNVpeCnolX2FXfTBe
M2tCLT08UShaPitDcEJeYkRyd08qKjkoXz5udm1vTFU1SmR8Kzk3TVQkZDVtXmdDamIlOGhsRCg2
Qgp6IXJ8M0VObmpPOXhKVypGP1ZZM0xhd1hfdVdfP1hmQExsRWV0KG13Zzw0eUJKcDJiLUphfChq
PV5+UzYyN3UzKVcKekRrPl93RyNEUDhaWXhlYDZHaD1FMTByKiY9fG1JQ3EqKytWWCVKRkVAJE0p
XkxldX1VcVQxKzR5Rmc0d1FDb1hKCnomVnVpQ3AzYj89UHw7NFVZJGBwcGlDKFlGSUokcXE1Tzh1
P1U9V09yOWBmMT1waD53bUt8NTJGTCkyeXthUXx9SAp6LVFCRyNQU0U0d0JsVyZgQCM1NXhYZUxI
RDZASF5eQ3srNW8wVShpYGpQQXduWDAqJU4+Y0x8bkdxak1gNGNkR3AKelZmTFkpKXl5QUtRJlV3
QFpRVEs7QzxDfXlhcGlTc0hUSSN5SUJad2VxRWs9YlgyeylrUnVVY0wkKGRzN3VBfF4mCnp4R1N2
MWNHNCtfTkxAcUhaOWElJTwoUWhpN25eemU/eVljcEpHKUFUY2dsSiQxejFod3ZMP3FkMlBSOXox
RU40Ygp6Qml4SmkyMlJ4Vj9od2IpeVdMfU1tdlh7PkVaX2VlK1MlOW1OZFNtdjVCb1RPUChufWUk
YjZZSiZHR3NZQFZzfF4KektgSjBEWjJ1MVZzSzNDJldnJCU8YVQ4ZnU/WEU8WGZNKTFGZDV0fmpL
eEY+WTlIZmpJY1FXIW91S0lLRU0/bUR7CnprRW9mOTtPWDYha3QhaFlaWmJpUjt8fCR4ZGAhfER4
V1gpSUF5eGJkQHw1I043SCRITmxPelA9OFgzQ2lJKFB3Mwp6NGFTPSRtcEhHbXZhITdpUm0+a35Y
WlUjZl9PWFBkPFl9OGpBIyVBPUJtbn1UUEpBUkBsek1mLSlZVHZHJFZsRVcKemdLZVhzPEw3NFJ4
UHdLfm1fI01BSEhjVXtHeCY4fWN3WHpYSitIPlpnVHVvckYrdl5CITNGdzFFVSpuTzFBWnhxCnoy
I3s5S0F4YUdtbDVFSD1ETWAxKz9aYyRHP3wraSE4TXwjZHw0bihWUGZDWGY0JStmU0d2dWxwfEVE
U3wpUFRRXgp6aVMmTktRUnclTllaTFgwbz0lcXRgQktGKFdlJkxwTmwmdD1tT1l0Vkx0d0ZfKkB7
V1IrNWBYMGUwJXs4QWdCez0KempIU2o3NiU3T2dOd3JePnd5X0JmRDtgYzt5dDUldVYjdmtPYGNk
SSZNekFkeTt8WThaaj5eX3N0dXNlbFRWRyRWCnoqYGdqOTArcjRTbSpLVF5xQGQ9JWZ1ezMzMjFv
OGVMMGhZWmdAcnxFJkM5ZTk2THN1NFk/QnYlcUZZWjEqamxPdgp6SHkma3F0ZCgxcG9NKzFOaTAm
KG0hKXxHX2J4RT54R3poRCgoNkYme1hrNHlOYHxTRkRCWFVkX2xWUl92YG5hajcKek5oamI9UkB0
WStnOUF0VUtrPiY1eiZ9YUliLUA/MWxXRmJQcCVBbjVSKm01YEhWQCN7dlgoQXckJGFBK2wlMCNt
CnpNfTBTTVIrO2ZLSEcoKEtydX5HMVdCWSQoM3hWZkNgJTFTOURwJmFhcVlqLXNMdDBZS1RQPWtn
K3lNcT9BbWdlRQp6K2VSZnBrdGVKNGxKbjhpXllANnBlKSl+bmhlUERtK3w5PTU+fGRSM2ooZilO
cyEkb3YxPnh8cUFBVTQ5OVl5MWQKend2QEp+ZUl9bE1wN1dpLWB9ITlPPGtSWihiZHN4cldve3Ym
ZCp8ZFlUQ09YYlo+eio/I3REUSZ0aEheRDtuMzdxCnpUeUd3MkZeTEwjYTJvdG8rNSpTNFBeZ1NB
ekxWVDg2fUlDQG9CRzUxNjZleD5McHg8NkVjbTlVPVZGdHxyM2BpaAp6SmhRVV4/MjV9bUhvSmtz
d21RYyUrMlR8aGVrcEZJRD1hSzVQZjY1ZzMqK1BDWiRsckt4KDcrYy19WFgxZkJiYzYKej1laDgp
UGZqUm5AS1N7KEFWUFE+PmFidjFleyhpUiNXIXtCJEEod09PfERHck9WR2NuOzM1cVV8TSRZbCtK
R3hiCnpjS3VnWjNjUldYd2N1VGsyNGU9UVJBPjUyP25rM31JV3Z6c3pBbnxxPH55N1BBdStfJl4o
UEB7cDFpdDxvZ0hWZwp6WDxQSiYlfmNDUDNrVjNAOD9YT05COVI3KXY2aSRDUWotcHQ2NUBFMDtp
PDFGT0dTVTJoY3UxRCpKPl44QShMZFgKejhxTSFCN1BpQWFxNjhaWSY9NHhEPERTZ2B4dmdUa1M1
Wjsle25gSFMpLWdJfkR9JHU4TzBmfD16NVNfejhyOFJ4CnpRZm01e1M5S0wmQCQ2T3plWipQcnY+
JWM8c3lhdVcyIVhzYSVaSmU+QUJCTF55UVllY2FYMTQ1TDtEeDkkMnF6cQp6SjtvY211STN9Vlgh
WXt0bTB1ZTd5YzF8P29aS156QChoNygqRH57T0E+KTBMamYkUlpRKiVOOzVeMWFPdE49TngKekBj
OF4qYHlKX2QzaTs/Uj5ja1peTj1ERHI9MzlWejlCbGk4LUtDKTktMUteTVNwKTsjOWY+SVFKby1K
WHMmcXcqCnpNUU9YbVYpM29NXm42JGxqdnJIJl50JnBhb3J2OHNabUpDSEQtUnNNQFMpLW5PJlZi
aUg3KmtXPUdXeHl2XkBIZgp6RTt9Y1E3WHJJUVBTQj9STzdTQERKUzlMK0N0cjh7ZWw4bjNyVk89
bHlPcSNWWUF3QDQtZTl2VEBWM1klLXIwcDEKekNmRlJpYlNUaFk/OW56eEcpfTQtJFVNR01Cb0I7
TXM/Si1ibzRDSW1pM1lgaWF7c3I+UkJ0fkdGI1Q2K008fU5uCno7YWs1fVdHfE5remFVM1VwKX1m
MU8tNSVrWCUrdkB1V1UxWiZ9SGBwYjllfWNqRDdxdXd+YylIcyZobSFDI1lsVwp6cSR8WDtnVlln
a1gxMkglZGBzTmdXeUIqXkdmIXh7JGdNKmBoaXp1QXNXTzFteityJUYzdSZPeUd0RjxheU1mNDQK
ej9UI0BGVXZ6MVlUcDFvN1IocT5+VVJ6c3h3ekkkZyF4Vm57JWNeNDgqZSo2VUhZTGZHJV9jN09E
UXoqPGpvX34pCnpuWTNOX15gMF9LX012QE45Um8/STtCVmVKUkBQbT5NNWchPll+X1AtJntMZGtm
JT9uND0rZz5BOXQtKiFaR1J8OQp6X1Y5KDhgczdQYzhNclJ4WDZsc3N6a1NjTCtIKCUyVis3Q1M3
N3ZgS2RwQX0oSTNNYjRENjx3UUdMdWx8cEh3cSkKejY1S2cwYHlFRiRuMyZ1USNWZHY1dWolQ0ht
JGdWKnpHfWZJO3BOKGR1NFNmWm5iWFpaR2YrTiVBMGB9WiYwVU9qCnpPN29KJCQ1PyY3KyNCU2Zx
SVFtVl4xdTZTdEpBR28zPFUheGt0VD5TPUVubSFEN0JBWlBSITFaLX1OZ2VvQmgrQwp6UiFkcHt1
ZTFZYUZ1NjhtbHFqYCFfd0owOD17bT0rTHFrTEtpJCEwZjFGM1VXWEUtI1oxM3Q5MjkmNnx4Pj9S
d3MKemQwWVdteXgmNT82NVNfWEwzQj12UVBJU2QkPTkhNmdILVR0K0UtXy03VUV5eiNTNFZRdChh
VztPNndebT18cDQhCnpiQSMjZSRBYEg1SV4lakglIzVIZmBvfTc+PnJ+VklDb0BPQ3NtWi1WOUVl
aDFlOXNqQmxhUjJtZF4lNjMyR1pQPQp6UHRMN3cqWiFBWGNFeGtRNlJ2dD5LZFczPm5le3RXdkpJ
YVlBTWR8TGVHYjxmaXRYZCFBJk47ZENtNEtOKkp5TkQKelooKWt3dnpiNnVTUyMmWUJsQFRfK1JJ
XzB1YXVlJEQ5UjtFO3o/ZnBQPV5BOEtxaEZBaWYxKXpTTUxYTnhSJTRLCnpkYWE5Uk5VRSFoU1ZU
e21jYUQ+aSVCcmlzRHgkT2t0b1dseFY8VHJeU15ePH1xMXlhZ1FHKUwqSkZ+Zzt1RFJNOAp6bGp1
KjJgQ1RoVlhvP3AxOz41JjZ2fD4tRlVBZnttTX40RTxzaGtnfmAqcUVMYS1ULUMzV3YyJl87dmN9
SClsOW4KenJ3Zy1IJXAqdDVuLVFmSkNERz1oQCVCI1lCY3Faal5DPTkreDBTb1ZIbWswaUBHOX1N
bUxSZjY0YWx9ZVh3TWdlCnozTG5sKXgpXldabllyXklSYmppKXFRXj4jYHxYRnduc2VJdDd9STlv
S1Q/NVBjVnh7aEVTZ2ZuQ24lSH08QF5DQgp6TSgwTl57TzlgamJxLXN6U2h3YHltSFQwSG59NSRv
JUEzQDxUXl5PIV49TWJ1Qzk9Um5CdzteOTs9ZHJJT1dZIV4KejhvfiNMfDNvdHQ0e1AlclQ9cTUq
MX5wKEZiZCkyNER3bzFzdWZ0dGJBeElsJk15WH1RYyExPG1mSX1SKGdyb2pVCnpQRUxOfTVeMFoo
IT0wQT5jT2ZYRmdpPzY+aUJadU5RfFd2T0xPJChwUyNHQXw1OU58VEVpWTRveEl0MWVwcWMhSgp6
bVBDKGdRLTlmTyR+Xis/KD5ANG4rcnEyZ2B7YGcjIUlMP3Z2WERZRkAxRWZIJDhZIX50YCtzMDB1
fClSUktpXm8KejI4PXZQWFcjPyM5azxBMHRrTy1ec1EwUktyRl51Mzt4TVBQR3FILVcqSHx+SEB6
enpeS24oNjI0TGA0ZTswP3EpCno0d3ZMNWtkbHRRIzMyckdBZCZleEcodERMM2F6OUJnZi0lTkhx
ckswTStKYDVjU0t7SzskaVA5JihuNTZfJUh0Mgp6QXt2VyhHI0o4LUZEbTNIUj1+e3Ume0ZyaXJg
X3F4Mmc1TWZPWGY7alBOPTQqKDZ7ZUUxMTw/MmBhMlNwM3Y7cWQKemJSajJtTnlJa3ttJEs+fT9h
UT1gY3UzSi1ZJHNQVCZ0UntRYG42X1BkOXJiNlRjY0I7R2Z7NzY4N3k7Jk9GbWs/CnpZfDlIRlB3
JmU5XyNqc3s5Xz9EPHJ8VEZmakpRMnpHYiZMNzAlS001Yk1aaj9mYTJseU9qI318b2hGKGBOb19O
Rwp6KDtiaGBVM3J8PS1JbDtFVCh1X3pnMGpnXmg7YWdZQFhzaHk+NSZmNj57bl4ydU8yUXU2KGkp
fCZaO1lOWG1temQKek0oNF5ydz8jeUU/ZTxZeUB7MTw5ekAzKUpJPD5LZG4zJkQ/JFBXejtxNytI
JE9KZTl+TiQ3T35fUTFDIT1wIzlSCnp7Kk1OQ3RIdj9tOUh8d2tkPyhrdCVQPUBUdUV7dSkyVEY8
JFJ0M3RqMlQ4ZiQpUyhOQlYjSktsRD9GfGxUYUVWVQp6NXVDRmptN0pMK0E1OCF7a2w0KD5oVE1G
OEJYKElmczxrby1hfnYoYHNWMmpKUVh6Yn1tKXQ2S0tCfmRBOzZFdnUKejY/eFFqSCg1KUBCa2tU
YlRpY093bFNAR3J0cUxvMj58dFpXcmh0PSpJUzZEUClpMUpKNV4rX2Nnbzs0aVEzNVV2CnpgMUBu
dDsxTlE0ITxhZm4tO2IpWClyJEEzeiVCaEBNM2cjMG0rTCg0PD80QmBjZGRRNjMlcFdkbk9uP1dK
UDhAMgp6eGBEODAydShpJjMkUXxuYHwtXy0xSDJxVm9HMmw7ZyV7VDN5ISllaiYxJShTPCtGPG53
JjQ3Ym5oOFNHQlgoJUEKenRKSnFIMmw5M3VmN2lZU3tSfV9HNElZQlVRUSpVI3tHWnNQbHgpbztV
UiklJUt1R2tGeCF4U0dEO3gmM3ZjKGVkCno/NE5KMlI5YGlNS1cwaVdhMDIodVR1eDdwI1ZIciR0
b0AzJSlHQDRadG91Uzh4Z3t4eW11cEF+clNzND1yZnY9JQpzVmxEMEFvckMoZDladERZR1dgNUdV
MCpEJVBQfTdRUnxqYEF4Q3NsRzhkfF9CNFY+ZnQyV0FMfDB7e1IzCgpsaXRlcmFsIDAKSGNtVj9k
MDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvX3N0YXRpYy9hdHRyc19sb2dvLnN2
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYXR0cnMvZG9jcy9fc3RhdGljL2F0dHJzX2xvZ28uc3ZnCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFi
YjNlNGI3MjczNjIwZDYwNDJjODFkNGUyMGYxNmI2YWVlYmFkNTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2F0dHJzL2RvY3MvX3N0YXRpYy9hdHRyc19sb2dvLnN2ZwpAQCAtMCwwICsxIEBACis8
P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz48IURP
Q1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3Lncz
Lm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgd2lkdGg9IjEwMCUiIGhl
aWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDE0MiAxMTgiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2Rk
O2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1p
dDoxLjQxNDIxOyI+PHJlY3QgaWQ9IkFydEJvYXJkMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjE0MS41
NzgiIGhlaWdodD0iMTE3LjYzOCIgc3R5bGU9ImZpbGw6bm9uZTsiLz48cGF0aCBkPSJNMzIuNTUs
ODIuNTE2Yy0wLjE5MSw0LjAyNyAtMC44MzIsOC41MDMgLTEuNzkzLDEzLjIzOGMtMS4wMjMsNC43
OTMgLTIuMzAxLDkuMjY5IC0zLjgzNiwxMy4yMzRjLTMuMzI0LDEuMjE1IC03LjAzNSwxLjkyMiAt
MTAuODA4LDEuOTIyYy0zLjc3LDAgLTcuMTYxLC0wLjcwNyAtOS45NzMsLTEuOTIyYzAsMCAtMC4z
ODcsLTMuMTMzIDAuNjM3LC03Ljg2M2MxLjAyMywtNC43OTcgMi42ODcsLTcuOTMgMi42ODcsLTcu
OTNjMy4zMjQsLTEuMjE1IDcuMDk4LC0xLjkxOCAxMC44NzEsLTEuOTE4YzEuODU2LDAgMy42NDUs
MC4xOTIgNS4zMDksMC41MTJjMC40NDUsLTIuNjg4IDAuODMyLC01LjMwOSAwLjgzMiwtNS4zMDlj
MCwwIC0yLjQ5NiwtMC43MDMgLTQuOTg4LC0wLjcwM2MtNC44NjQsMCAtOS40NjUsMS4wODYgLTEx
LjQ1LDEuNjY0YzAuNTc5LC0xLjcyNiAxLjA5LC0zLjMyOCAxLjcyNywtNC45MjVjMy4zMjgsLTEu
MTUzIDcuMDM1LC0xLjg1NiAxMC44MDksLTEuODU2YzMuNzczLDAgNy4xNiwwLjcwMyA5Ljk3Niwx
Ljg1NlptLTE1LjM0OCwyMy4yNzdjMi43NSwwIDUuMzA5LC0wLjcwMyA1LjMwOSwtMC43MDNjMCww
IDEuMzQsLTQuNjY4IDIuMTA5LC03Ljk5NmMtMS4xNTIsLTAuMzE3IC0zLjEzMiwtMC43MDQgLTUu
MzcxLC0wLjcwNGMtMi40OTYsMCAtNS40MzcsMC43MDQgLTUuNDM3LDAuNzA0YzAsMCAtMC43MDMs
MS42NjQgLTEuMjE1LDQuMDMxYy0wLjUxMiwyLjMwMSAtMC40NDUsMy45NjUgLTAuNDQ1LDMuOTY1
YzAsMCAyLjU1NCwwLjcwMyA1LjA1LDAuNzAzWm0zMi42NzYsMGMyLjgxMywwIDUuNjI5LC0wLjUx
MiA3Ljg2NywtMS4wMjRjLTAuNzY5LDEuOTgxIC0xLjY2NCwzLjc3NCAtMi42MjEsNS41Yy0yLjA0
NywwLjM4MyAtNC4xNiwwLjY0MSAtNi4zMzIsMC42NDFjLTMuNzczLDAgLTcuMDk3LC0wLjcwNyAt
OS45MTQsLTEuOTIyYzAuMTI5LC0zLjk2NSAwLjc3LC04LjQ0MSAxLjc5MywtMTMuMjM0bDEuOTE4
LC05LjA4MmwtNi40NjEsMGMwLjcwNywtMS43ODkgMS40NzMsLTMuNDUzIDIuNDk2LC01LjA1MWw1
LjA1MSwwbDEuMzQ0LC02LjMzMmMxLjkxOCwtMC43MDMgMy45NjUsLTEuMjE1IDYuMDc0LC0xLjUz
NWwtMS42Niw3Ljg2N2wxMS4xMjUsMGMtMC43MDMsMS43ODkgLTEuNTM1LDMuNTE2IC0yLjQ5Miw1
LjA1MWwtOS43MjMsMGwtMS45MTgsOS4wODJjLTAuNzAzLDMuMjYyIC0xLjQ2OSw5LjMzNiAtMS40
NjksOS4zMzZjMCwwIDIuNDkzLDAuNzAzIDQuOTIyLDAuNzAzWm0yNy40OTYsMGMyLjgxNywwIDUu
NjI5LC0wLjUxMiA3Ljg2NywtMS4wMjRjLTAuNzY1LDEuOTgxIC0xLjY2NCwzLjc3NCAtMi42MjEs
NS41Yy0yLjA0NiwwLjM4MyAtNC4xNTYsMC42NDEgLTYuMzMyLDAuNjQxYy0zLjc3MywwIC03LjA5
NywtMC43MDcgLTkuOTEsLTEuOTIyYzAuMTI1LC0zLjk2NSAwLjc2NiwtOC40NDEgMS43ODksLTEz
LjIzNGwxLjkxOCwtOS4wODJsLTYuNDU3LDBjMC43MDMsLTEuNzg5IDEuNDY5LC0zLjQ1MyAyLjQ5
MiwtNS4wNTFsNS4wNTUsMGwxLjM0LC02LjMzMmMxLjkxOCwtMC43MDMgMy45NjUsLTEuMjE1IDYu
MDc0LC0xLjUzNWwtMS42Niw3Ljg2N2wxMS4xMjUsMGMtMC43MDMsMS43ODkgLTEuNTM1LDMuNTE2
IC0yLjQ5Miw1LjA1MWwtOS43MTksMGwtMS45MjIsOS4wODJjLTAuNzAzLDMuMjYyIC0xLjQ2OSw5
LjMzNiAtMS40NjksOS4zMzZjMCwwIDIuNDkzLDAuNzAzIDQuOTIyLDAuNzAzWm0yOC4xMzcsLTI1
LjEzM2MxLjk4NCwwIDMuODQsMC4xOTEgNS42MjksMC41NzhjLTAuNzAzLDEuNzI3IC0xLjQ2OSwz
LjMyNCAtMi4zNjcsNC44NmMtMS40MDYsLTAuMTkyIC0yLjgxMywtMC4zMjEgLTQuMzQ4LC0wLjMy
MWMtMi40OTIsMCAtNS4yNDIsMC43MDMgLTUuMjQyLDAuNzAzYzAsMCAtMS44NTYsNi4wNzUgLTIu
NDk2LDkuMjc0bC0zLjA2NywxNC41MTVsLTUuODIsMGwzLjA3LC0xNC41MTVjMC45NTcsLTQuNzM1
IDIuMzAxLC05LjIxMSAzLjgzNiwtMTMuMjM4YzMuMzI1LC0xLjE1MyA3LjAzNSwtMS44NTYgMTAu
ODA1LC0xLjg1NlptMjguNzE1LDEzLjYyMWMwLDAgMC40NDUsMi42MjEgLTAuNTc0LDcuMzU2Yy0x
LjAyNCw0Ljc5NiAtMi41NTksNy4zNTEgLTIuNTU5LDcuMzUxYy0zLjMyOCwxLjIxNSAtNy4wMzUs
MS45MjIgLTEwLjgwOSwxLjkyMmMtMy43NzMsMCAtNy4xNiwtMC43MDcgLTkuOTc2LC0xLjkyMmMw
LDAgLTAuMzgzLC0xLjcyNiAwLjEyOSwtNC45ODhjMS40MDYsMC4zODcgNi40NTcsMS43OTMgMTAu
OTMzLDEuNzkzYzIuNDk3LDAgNS4zNzUsLTAuNzAzIDUuMzc1LC0wLjcwM2MwLDAgMC43MDQsLTEu
MTUzIDEuMTQ5LC0zLjQ1M2MwLjUxMiwtMi4zMDUgMC4zMiwtMy40NTQgMC4zMiwtMy40NTRjMCww
IC0yLjU1OCwtMC43MDMgLTUuMDUxLC0wLjcwM2MtMy45MDIsMCAtNy4yMjYsLTAuNjQgLTEwLjAz
OSwtMS44NTVjMCwwIC0wLjM4NiwtMi44NzkgMC4zODMsLTYuNTI0YzAuNzY2LC0zLjcwNyAyLjQz
LC02LjU4NSAyLjQzLC02LjU4NWMzLjMyNCwtMS4xNTMgNy4wMzUsLTEuODU2IDEwLjgwOCwtMS44
NTZjMy43NywwIDcuMTYxLDAuNzAzIDkuOTczLDEuODU2YzAsMC4xMjggMC4zODcsMi4wNDYgLTAu
MDYyLDUuMTc5Yy0xLjUzNiwtMC40NDkgLTcuMTY1LC0xLjkxOCAtMTEsLTEuOTE4Yy0yLjQ5Myww
IC01LjM3MiwwLjcwMyAtNS4zNzIsMC43MDNjMCwwIC0wLjY0LDEuMDI0IC0wLjk1NywyLjYyMWMt
MC4zMiwxLjU5OCAtMC4xOTUsMi42MjIgLTAuMTk1LDIuNjIyYzAsMCAyLjQ5NiwwLjY0IDUuMTE3
LDAuNzAzYzMuNzc0LDAgNy4xNjQsMC42NCA5Ljk3NywxLjg1NVoiIHN0eWxlPSJmaWxsOiMyMjI7
ZmlsbC1ydWxlOm5vbnplcm87Ii8+PHBhdGggZD0iTTc5LjEyLDQ0LjUzOWMwLC0wLjkxNCAtMC4w
NjYsLTEuODA1IC0wLjE5NSwtMi42OGwyLjgzMiwtMS42ODdsLTAuMDU4LC0wLjI2NmMtMC40MzQs
LTIuMDA0IC0xLjE0NSwtMy45MDIgLTIuMDg2LC01LjY2bC0wLjEzNywtMC4yNTRsLTMuMTU2LDAu
NzIzYy0wLjc2NiwtMS4yMzUgLTEuNjc2LC0yLjM3NSAtMi43MDMsLTMuMzk1bDEuMjg1LC0zLjAx
MmwtMC4yLC0wLjE3NWMtMS41LC0xLjI5MyAtMy4xNjgsLTIuMzkxIC00Ljk3NiwtMy4yNDZsLTAu
MjU0LC0wLjExOGwtMi4xMzcsMi40NDJjLTEuMzg2LC0wLjU1MSAtMi44NTUsLTAuOTM0IC00LjM4
NiwtMS4xMzdsLTAuNzI3LC0zLjE3NmwtMC4yNzcsLTAuMDE1Yy0wLjQ3NywtMC4wMzUgLTAuOTY1
LC0wLjA1OSAtMS40NTcsLTAuMDU5Yy0xLjUyLDAgLTMsMC4xNiAtNC40MywwLjQ1N2wtMC4yNzcs
MC4wNTFsLTAuMjkzLDMuMjVjLTEuNDY1LDAuNDEgLTIuODY0LDAuOTk2IC00LjE2NCwxLjczbC0y
LjQzOCwtMi4xMzJsLTAuMjM4LDAuMTU2Yy0xLjY3MiwxLjA5IC0zLjE4OCwyLjQwMiAtNC40OTYs
My44OTRsLTAuMTgsMC4yMDdsMS42ODQsMi44MjFjLTAuODYsMS4xMjUgLTEuNjAyLDIuMzYzIC0y
LjE4OCwzLjY3NWwtMy4yMTksLTAuMjg5bC0wLjA5MywwLjI2NmMtMC43MDcsMS44NjMgLTEuMTU3
LDMuODUyIC0xLjMxMyw1LjkxOGwtMC4wMjMsMC4yNjZsMy4wMzUsMS4yOTZjLTAuMDA0LDAuMDQ3
IC0wLjAwNCwwLjA5OCAtMC4wMDQsMC4xNDljMCwxLjI4OSAwLjEzNywyLjU1NSAwLjM4NywzLjc2
NmwtMi43ODIsMS42NTZsMC4wNzEsMC4yNzNjMC41NSwyLjAyOCAxLjM3OSwzLjkyNiAyLjQ1Myw1
LjY3MmwwLjE0LDAuMjI3bDMuMjIzLC0wLjczMWMwLjcwMywwLjk3MyAxLjQ5NiwxLjg4MyAyLjM3
MSwyLjcwM2wtMS4yNzcsMi45OTNsMC4yMTEsMC4xNzljMS42MDksMS4zMjggMy40MSwyLjQzNCA1
LjM1OSwzLjI1OGwwLjI0MiwwLjEwNWwyLjE3NiwtMi40OGMxLjA1OSwwLjM2NyAyLjE3NiwwLjY0
MSAzLjMxMywwLjgwOWwwLjcyNiwzLjE4N2wwLjI4MSwwLjAyYzAuNTYzLDAuMDQ3IDEuMTQ5LDAu
MDc4IDEuNzQzLDAuMDc4YzEuNTU0LDAgMy4wNywtMC4xNjggNC41MzUsLTAuNDgxbDAuMjczLC0w
LjA1OGwwLjI5MywtMy4yNTRjMS4xMTMsLTAuMzE3IDIuMTgsLTAuNzM4IDMuMjAzLC0xLjI0Mmwy
LjQ3NywyLjE2NGwwLjIzNCwtMC4xMzdjMS44MTMsLTEuMDcgMy40NDksLTIuMzkxIDQuODc1LC0z
LjkxOGwwLjE5NiwtMC4yMDNsLTEuNjY1LC0yLjc4OWMwLjc3NCwtMC45MzggMS40NSwtMS45NjUg
Mi4wMjgsLTMuMDQ3bDMuMjkzLDAuMjk3bDAuMTA1LC0wLjI1YzAuODIxLC0xLjg0IDEuMzkxLC0z
LjgzNiAxLjY3MiwtNS45MjJsMC4wMzUsLTAuMjg1bC0yLjk3NiwtMS4yN2MwLjAzMSwtMC40Mjkg
MC4wNTQsLTAuODcxIDAuMDU0LC0xLjMyWm0tMTIuOTIxLDBjMCwzLjE1NiAtMi41NTUsNS43MTEg
LTUuNzExLDUuNzE1Yy0zLjE2MSwtMC4wMDQgLTUuNzExLC0yLjU1OSAtNS43MTUsLTUuNzE1YzAu
MDA0LC0zLjE1MiAyLjU1NCwtNS43MDMgNS43MTUsLTUuNzE1YzMuMTU2LDAuMDEyIDUuNzExLDIu
NTYzIDUuNzExLDUuNzE1WiIgc3R5bGU9ImZpbGw6IzIyMjtmaWxsLXJ1bGU6bm9uemVybzsiLz48
cGF0aCBkPSJNMTAzLjUxOSwxNS41bC0wLjA2NywtMC4yNDJsLTIuMjUzLC0wLjAxMmMtMC4zMTcs
LTAuOTM0IC0wLjc0NywtMS44MzIgLTEuMjU4LC0yLjY2NGwxLjM1MSwtMS44NDRsLTAuMTM2LC0w
LjE5MWMtMC44MDksLTEuMTIxIC0xLjc3OCwtMi4xMzMgLTIuODY4LC0zLjAwNGwtMC4xOTUsLTAu
MTU2bC0xLjg0LDEuMzE2Yy0wLjgzMiwtMC41NzggLTEuNzUsLTEuMDU5IC0yLjcyMiwtMS40Mzds
MC4wMTEsLTIuMjY2bC0wLjIzLC0wLjA3NGMtMC4zMjgsLTAuMDk4IC0wLjY0OSwtMC4xOTIgLTAu
OTkyLC0wLjI3NGMtMS4wMjgsLTAuMjQyIC0yLjA2MywtMC4zNjcgLTMuMDg2LC0wLjQwMmwtMC4y
NSwtMC4wMDRsLTAuNzE1LDIuMTZjLTEuMDI4LDAuMDQ3IC0yLjA0NywwLjIxNSAtMy4wMjQsMC40
OTZsLTEuMzA4LC0xLjg0bC0wLjIzOCwwLjA5Yy0xLjMxNywwLjQ2OSAtMi41NTksMS4xMjEgLTMu
NjkyLDEuOTM0bC0wLjE5NSwwLjE0bDAuNjk1LDIuMThjLTAuNzQyLDAuNjE3IC0xLjQyMiwxLjMx
MyAtMi4wMTYsMi4wOWwtMi4xNCwtMC43MTFsLTAuMTM3LDAuMjExYy0wLjc3MywxLjE1NiAtMS40
MDIsMi40MzQgLTEuODQ0LDMuODE2bC0wLjA2NiwwLjIyM2wxLjg1MiwxLjM2M2MtMC4wMTIsMC4w
MiAtMC4wMTYsMC4wNDMgLTAuMDIsMC4wNTljLTAuMjA3LDAuODY3IC0wLjMxMiwxLjcyNiAtMC4z
NCwyLjU3OGwtMi4xNTYsMC42ODRsMC4wMTIsMC4yNDZjMC4wNTQsMS40NjggMC4zMDgsMi45MDIg
MC43NjEsNC4yNjFsMC4wNzUsMC4yMjdsMi4zMDgsMC4wMTJjMC4zMTMsMC43NSAwLjY5MiwxLjQ2
NSAxLjEzNywyLjE0OGwtMS4zNDgsMS44MjhsMC4xNDksMC4xOTZjMC44ODYsMS4xNiAxLjkyOSwy
LjIwNyAzLjEyOSwzLjA3NGwwLjE5MSwwLjE0bDEuODY3LC0xLjMzNWMwLjY0MSwwLjQwMiAxLjMy
OCwwLjc1IDIuMDQ3LDEuMDM5bC0wLjAxNiwyLjI4MWwwLjIzMSwwLjA3NGMwLjM4NywwLjEyMSAw
Ljc3NywwLjIzNCAxLjE4LDAuMzMyYzEuMDYyLDAuMjQ2IDIuMTIxLDAuMzc5IDMuMTY4LDAuNDAy
bDAuMjQyLDAuMDA0bDAuNzE4LC0yLjE2NGMwLjc4MiwtMC4wMzUgMS41NDcsLTAuMTQ0IDIuMjk3
LC0wLjMxNmwxLjMzNiwxLjg2M2wwLjIzMSwtMC4wNzRjMS4zOTgsLTAuNDMgMi43MywtMS4wNzQg
My45NDUsLTEuODg3bDAuMjAzLC0wLjEzN2wtMC42NzksLTIuMTZjMC42NDgsLTAuNTA0IDEuMjU3
LC0xLjA2NiAxLjgwNCwtMS42ODdsMi4xODQsMC43MjZsMC4xNDQsLTAuMTkxYzAuODYsLTEuMTE3
IDEuNTY3LC0yLjM4NyAyLjA5LC0zLjc2MmwwLjA5LC0wLjIzOGwtMS44MTYsLTEuMzM2YzAuMDg2
LC0wLjI3NyAwLjE2LC0wLjU1OSAwLjIzLC0wLjg0YzAuMTQxLC0wLjYxMyAwLjIzOCwtMS4yMTkg
MC4yOTMsLTEuODJsMi4xOTEsLTAuNjk1bDAsLTAuMjM5YzAsLTAuMDg2IDAuMDA4LC0wLjE3MiAw
LjAwOCwtMC4yNjFjLTAuMDA0LC0xLjM0IC0wLjE4MywtMi42NjEgLTAuNTIzLC0zLjkzWm0tMTAu
NzY2LDMuOTQxYzAsMC4zMDEgLTAuMDMxLDAuNjAyIC0wLjEwMSwwLjkwM2MtMC40MywxLjggLTIu
MDMyLDMuMDE1IC0zLjgwNSwzLjAxNWMtMC4zMDEsMCAtMC41OTgsLTAuMDM1IC0wLjg5OCwtMC4x
MDljLTEuODA1LC0wLjQxNCAtMy4wMTIsLTIuMDI0IC0zLjAxMiwtMy43OTdjMCwtMC4yOTcgMC4w
MzEsLTAuNTk0IDAuMDk3LC0wLjg5OGMwLjQyMiwtMS44MDEgMi4wMzIsLTMuMDE2IDMuODA5LC0z
LjAxNmMwLjI4OSwwIDAuNTk0LDAuMDMxIDAuODk4LDAuMTA1YzEuNzkzLDAuNDE4IDMuMDEyLDIu
MDMyIDMuMDEyLDMuNzk3WiIgc3R5bGU9ImZpbGw6IzIyMjtmaWxsLXJ1bGU6bm9uemVybzsiLz48
L3N2Zz4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJz
L2RvY3MvX3N0YXRpYy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9fc3RhdGljL3cz
Yy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3NTAwMjIwYjg3MjJkN2U3Y2IwOWQwOTc2MGRhYTIx
Y2NiNjFiY2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvX3N0YXRpYy93M2Mt
aW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvX3N0
YXRpYy9hdHRyc19sb2dvLnBuZworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9fc3RhdGljL2F0dHJzX2xvZ28u
c3ZnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvYXBpLnJzdCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9j
cy9hcGkucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyYWNiNzQwMGY0Njk0N2I0Njk2YmM0MmY4MWIxMDFjZjE0
ZjQ5NDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvYXBpLnJzdApAQCAtMCww
ICsxLDQyOCBAQAorLi4gX2FwaToKKworQVBJIFJlZmVyZW5jZQorPT09PT09PT09PT09PQorCisu
LiBjdXJyZW50bW9kdWxlOjogYXR0cgorCitgYGF0dHJzYGAgd29ya3MgYnkgZGVjb3JhdGluZyBh
IGNsYXNzIHVzaW5nIDpmdW5jOmBhdHRyLnNgIGFuZCB0aGVuIG9wdGlvbmFsbHkgZGVmaW5pbmcg
YXR0cmlidXRlcyBvbiB0aGUgY2xhc3MgdXNpbmcgOmZ1bmM6YGF0dHIuaWJgLgorCisuLiBub3Rl
OjoKKworICAgV2hlbiB0aGlzIGRvY3VtZW50YXRpb24gc3BlYWtzIGFib3V0ICJgYGF0dHJzYGAg
YXR0cmlidXRlcyIgaXQgbWVhbnMgdGhvc2UgYXR0cmlidXRlcyB0aGF0IGFyZSBkZWZpbmVkIHVz
aW5nIDpmdW5jOmBhdHRyLmliYCBpbiB0aGUgY2xhc3MgYm9keS4KKworV2hhdCBmb2xsb3dzIGlz
IHRoZSBBUEkgZXhwbGFuYXRpb24sIGlmIHlvdSdkIGxpa2UgYSBtb3JlIGhhbmRzLW9uIGludHJv
ZHVjdGlvbiwgaGF2ZSBhIGxvb2sgYXQgOmRvYzpgZXhhbXBsZXNgLgorCisKKworQ29yZQorLS0t
LQorCisuLiBhdXRvZnVuY3Rpb246OiBhdHRyLnModGhlc2U9Tm9uZSwgcmVwcl9ucz1Ob25lLCBy
ZXByPVRydWUsIGNtcD1UcnVlLCBoYXNoPU5vbmUsIGluaXQ9VHJ1ZSwgc2xvdHM9RmFsc2UsIGZy
b3plbj1GYWxzZSwgc3RyPUZhbHNlKQorCisgICAuLiBub3RlOjoKKworICAgICAgYGBhdHRyc2Bg
IGFsc28gY29tZXMgd2l0aCBhIHNlcmlvdXMgYnVzaW5lc3MgYWxpYXMgYGBhdHRyLmF0dHJzYGAu
CisKKyAgIEZvciBleGFtcGxlOgorCisgICAuLiBkb2N0ZXN0OjoKKworICAgICAgPj4+IGltcG9y
dCBhdHRyCisgICAgICA+Pj4gQGF0dHIucworICAgICAgLi4uIGNsYXNzIEMob2JqZWN0KToKKyAg
ICAgIC4uLiAgICAgX3ByaXZhdGUgPSBhdHRyLmliKCkKKyAgICAgID4+PiBDKHByaXZhdGU9NDIp
CisgICAgICBDKF9wcml2YXRlPTQyKQorICAgICAgPj4+IGNsYXNzIEQob2JqZWN0KToKKyAgICAg
IC4uLiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHgpOgorICAgICAgLi4uICAgICAgICAgc2VsZi54
ID0geAorICAgICAgPj4+IEQoMSkKKyAgICAgIDxEIG9iamVjdCBhdCAuLi4+CisgICAgICA+Pj4g
RCA9IGF0dHIucyh0aGVzZT17IngiOiBhdHRyLmliKCl9LCBpbml0PUZhbHNlKShEKQorICAgICAg
Pj4+IEQoMSkKKyAgICAgIEQoeD0xKQorCisKKy4uIGF1dG9mdW5jdGlvbjo6IGF0dHIuaWIKKwor
ICAgLi4gbm90ZTo6CisKKyAgICAgIGBgYXR0cnNgYCBhbHNvIGNvbWVzIHdpdGggYSBzZXJpb3Vz
IGJ1c2luZXNzIGFsaWFzIGBgYXR0ci5hdHRyaWJgYC4KKworICAgVGhlIG9iamVjdCByZXR1cm5l
ZCBieSA6ZnVuYzpgYXR0ci5pYmAgYWxzbyBhbGxvd3MgZm9yIHNldHRpbmcgdGhlIGRlZmF1bHQg
YW5kIHRoZSB2YWxpZGF0b3IgdXNpbmcgZGVjb3JhdG9yczoKKworICAgLi4gZG9jdGVzdDo6CisK
KyAgICAgID4+PiBAYXR0ci5zCisgICAgICAuLi4gY2xhc3MgQyhvYmplY3QpOgorICAgICAgLi4u
ICAgICB4ID0gYXR0ci5pYigpCisgICAgICAuLi4gICAgIHkgPSBhdHRyLmliKCkKKyAgICAgIC4u
LiAgICAgQHgudmFsaWRhdG9yCisgICAgICAuLi4gICAgIGRlZiBuYW1lX2Nhbl9iZV9hbnl0aGlu
ZyhzZWxmLCBhdHRyaWJ1dGUsIHZhbHVlKToKKyAgICAgIC4uLiAgICAgICAgIGlmIHZhbHVlIDwg
MDoKKyAgICAgIC4uLiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ4IG11c3QgYmUgcG9z
aXRpdmUiKQorICAgICAgLi4uICAgICBAeS5kZWZhdWx0CisgICAgICAuLi4gICAgIGRlZiBuYW1l
X2RvZXNfbm90X21hdHRlcihzZWxmKToKKyAgICAgIC4uLiAgICAgICAgIHJldHVybiBzZWxmLngg
KyAxCisgICAgICA+Pj4gQygxKQorICAgICAgQyh4PTEsIHk9MikKKyAgICAgID4+PiBDKC0xKQor
ICAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAgIC4uLgor
ICAgICAgVmFsdWVFcnJvcjogeCBtdXN0IGJlIHBvc2l0aXZlCisKKy4uIGF1dG9jbGFzczo6IGF0
dHIuQXR0cmlidXRlCisKKyAgIEluc3RhbmNlcyBvZiB0aGlzIGNsYXNzIGFyZSBmcmVxdWVudGx5
IHVzZWQgZm9yIGludHJvc3BlY3Rpb24gcHVycG9zZXMgbGlrZToKKworICAgLSA6ZnVuYzpgZmll
bGRzYCByZXR1cm5zIGEgdHVwbGUgb2YgdGhlbS4KKyAgIC0gVmFsaWRhdG9ycyBnZXQgdGhlbSBw
YXNzZWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50LgorCisgICAuLiB3YXJuaW5nOjoKKworICAgICAg
IFlvdSBzaG91bGQgbmV2ZXIgaW5zdGFudGlhdGUgdGhpcyBjbGFzcyB5b3Vyc2VsZiEKKworICAg
Li4gZG9jdGVzdDo6CisKKyAgICAgID4+PiBpbXBvcnQgYXR0cgorICAgICAgPj4+IEBhdHRyLnMK
KyAgICAgIC4uLiBjbGFzcyBDKG9iamVjdCk6CisgICAgICAuLi4gICAgIHggPSBhdHRyLmliKCkK
KyAgICAgID4+PiBhdHRyLmZpZWxkcyhDKS54CisgICAgICBBdHRyaWJ1dGUobmFtZT0neCcsIGRl
ZmF1bHQ9Tk9USElORywgdmFsaWRhdG9yPU5vbmUsIHJlcHI9VHJ1ZSwgY21wPVRydWUsIGhhc2g9
Tm9uZSwgaW5pdD1UcnVlLCBjb252ZXJ0PU5vbmUsIG1ldGFkYXRhPW1hcHBpbmdwcm94eSh7fSks
IHR5cGU9Tm9uZSkKKworCisuLiBhdXRvZnVuY3Rpb246OiBhdHRyLm1ha2VfY2xhc3MKKworICAg
VGhpcyBpcyBoYW5keSBpZiB5b3Ugd2FudCB0byBwcm9ncmFtbWF0aWNhbGx5IGNyZWF0ZSBjbGFz
c2VzLgorCisgICBGb3IgZXhhbXBsZToKKworICAgLi4gZG9jdGVzdDo6CisKKyAgICAgID4+PiBD
MSA9IGF0dHIubWFrZV9jbGFzcygiQzEiLCBbIngiLCAieSJdKQorICAgICAgPj4+IEMxKDEsIDIp
CisgICAgICBDMSh4PTEsIHk9MikKKyAgICAgID4+PiBDMiA9IGF0dHIubWFrZV9jbGFzcygiQzIi
LCB7IngiOiBhdHRyLmliKGRlZmF1bHQ9NDIpLAorICAgICAgLi4uICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAieSI6IGF0dHIuaWIoZGVmYXVsdD1hdHRyLkZhY3RvcnkobGlzdCkpfSkKKyAg
ICAgID4+PiBDMigpCisgICAgICBDMih4PTQyLCB5PVtdKQorCisKKy4uIGF1dG9jbGFzczo6IGF0
dHIuRmFjdG9yeQorCisgICBGb3IgZXhhbXBsZToKKworICAgLi4gZG9jdGVzdDo6CisKKyAgICAg
ID4+PiBAYXR0ci5zCisgICAgICAuLi4gY2xhc3MgQyhvYmplY3QpOgorICAgICAgLi4uICAgICB4
ID0gYXR0ci5pYihkZWZhdWx0PWF0dHIuRmFjdG9yeShsaXN0KSkKKyAgICAgIC4uLiAgICAgeSA9
IGF0dHIuaWIoZGVmYXVsdD1hdHRyLkZhY3RvcnkoCisgICAgICAuLi4gICAgICAgICBsYW1iZGEg
c2VsZjogc2V0KHNlbGYueCksCisgICAgICAuLi4gICAgICAgICB0YWtlc19zZWxmPVRydWUpCisg
ICAgICAuLi4gICAgICkKKyAgICAgID4+PiBDKCkKKyAgICAgIEMoeD1bXSwgeT1zZXQoKSkKKyAg
ICAgID4+PiBDKFsxLCAyLCAzXSkKKyAgICAgIEMoeD1bMSwgMiwgM10sIHk9ezEsIDIsIDN9KQor
CisKKy4uIGF1dG9leGNlcHRpb246OiBhdHRyLmV4Y2VwdGlvbnMuRnJvemVuSW5zdGFuY2VFcnJv
cgorLi4gYXV0b2V4Y2VwdGlvbjo6IGF0dHIuZXhjZXB0aW9ucy5BdHRyc0F0dHJpYnV0ZU5vdEZv
dW5kRXJyb3IKKy4uIGF1dG9leGNlcHRpb246OiBhdHRyLmV4Y2VwdGlvbnMuTm90QW5BdHRyc0Ns
YXNzRXJyb3IKKy4uIGF1dG9leGNlcHRpb246OiBhdHRyLmV4Y2VwdGlvbnMuRGVmYXVsdEFscmVh
ZHlTZXRFcnJvcgorLi4gYXV0b2V4Y2VwdGlvbjo6IGF0dHIuZXhjZXB0aW9ucy5VbmFubm90YXRl
ZEF0dHJpYnV0ZUVycm9yCisKKyAgIEZvciBleGFtcGxlOjoKKworICAgICAgIEBhdHRyLnMoYXV0
b19hdHRyaWJzPVRydWUpCisgICAgICAgY2xhc3MgQzoKKyAgICAgICAgICAgeDogaW50CisgICAg
ICAgICAgIHkgPSBhdHRyLmliKCkKKworCitJbmZsdWVuY2luZyBJbml0aWFsaXphdGlvbgorKysr
KysrKysrKysrKysrKysrKysrKysrKysKKworR2VuZXJhbGx5IHNwZWFraW5nLCBpdCdzIGJlc3Qg
dG8ga2VlcCBsb2dpYyBvdXQgb2YgeW91ciBgYF9faW5pdF9fYGAuCitUaGUgbW9tZW50IHlvdSBu
ZWVkIGEgZmluZXIgY29udHJvbCBvdmVyIGhvdyB5b3VyIGNsYXNzIGlzIGluc3RhbnRpYXRlZCwg
aXQncyB1c3VhbGx5IGJlc3QgdG8gdXNlIGEgY2xhc3NtZXRob2QgZmFjdG9yeSBvciB0byBhcHBs
eSB0aGUgYGJ1aWxkZXIgcGF0dGVybiA8aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQnVp
bGRlcl9wYXR0ZXJuPmBfLgorCitIb3dldmVyLCBzb21ldGltZXMgeW91IG5lZWQgdG8gZG8gdGhh
dCBvbmUgcXVpY2sgdGhpbmcgYWZ0ZXIgeW91ciBjbGFzcyBpcyBpbml0aWFsaXplZC4KK0FuZCBm
b3IgdGhhdCBgYGF0dHJzYGAgb2ZmZXJzIHRoZSBgYF9fYXR0cnNfcG9zdF9pbml0X19gYCBob29r
IHRoYXQgaXMgYXV0b21hdGljYWxseSBkZXRlY3RlZCBhbmQgcnVuIGFmdGVyIGBgYXR0cnNgYCBp
cyBkb25lIGluaXRpYWxpemluZyB5b3VyIGluc3RhbmNlOgorCisuLiBkb2N0ZXN0OjoKKworICAg
Pj4+IEBhdHRyLnMKKyAgIC4uLiBjbGFzcyBDKG9iamVjdCk6CisgICAuLi4gICAgIHggPSBhdHRy
LmliKCkKKyAgIC4uLiAgICAgeSA9IGF0dHIuaWIoaW5pdD1GYWxzZSkKKyAgIC4uLiAgICAgZGVm
IF9fYXR0cnNfcG9zdF9pbml0X18oc2VsZik6CisgICAuLi4gICAgICAgICBzZWxmLnkgPSBzZWxm
LnggKyAxCisgICA+Pj4gQygxKQorICAgQyh4PTEsIHk9MikKKworUGxlYXNlIG5vdGUgdGhhdCB5
b3UgY2FuJ3QgZGlyZWN0bHkgc2V0IGF0dHJpYnV0ZXMgb24gZnJvemVuIGNsYXNzZXM6CisKKy4u
IGRvY3Rlc3Q6OgorCisgICA+Pj4gQGF0dHIucyhmcm96ZW49VHJ1ZSkKKyAgIC4uLiBjbGFzcyBG
cm96ZW5Ccm9rZW4ob2JqZWN0KToKKyAgIC4uLiAgICAgeCA9IGF0dHIuaWIoKQorICAgLi4uICAg
ICB5ID0gYXR0ci5pYihpbml0PUZhbHNlKQorICAgLi4uICAgICBkZWYgX19hdHRyc19wb3N0X2lu
aXRfXyhzZWxmKToKKyAgIC4uLiAgICAgICAgIHNlbGYueSA9IHNlbGYueCArIDEKKyAgID4+PiBG
cm96ZW5Ccm9rZW4oMSkKKyAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAg
ICAgIC4uLgorICAgYXR0ci5leGNlcHRpb25zLkZyb3plbkluc3RhbmNlRXJyb3I6IGNhbid0IHNl
dCBhdHRyaWJ1dGUKKworSWYgeW91IG5lZWQgdG8gc2V0IGF0dHJpYnV0ZXMgb24gYSBmcm96ZW4g
Y2xhc3MsIHlvdSdsbCBoYXZlIHRvIHJlc29ydCB0byB0aGUgOnJlZjpgc2FtZSB0cmljayA8aG93
LWZyb3plbj5gIGFzIGBgYXR0cnNgYCBhbmQgdXNlIDptZXRoOmBvYmplY3QuX19zZXRhdHRyX19g
OgorCisuLiBkb2N0ZXN0OjoKKworICAgPj4+IEBhdHRyLnMoZnJvemVuPVRydWUpCisgICAuLi4g
Y2xhc3MgRnJvemVuKG9iamVjdCk6CisgICAuLi4gICAgIHggPSBhdHRyLmliKCkKKyAgIC4uLiAg
ICAgeSA9IGF0dHIuaWIoaW5pdD1GYWxzZSkKKyAgIC4uLiAgICAgZGVmIF9fYXR0cnNfcG9zdF9p
bml0X18oc2VsZik6CisgICAuLi4gICAgICAgICBvYmplY3QuX19zZXRhdHRyX18oc2VsZiwgInki
LCBzZWxmLnggKyAxKQorICAgPj4+IEZyb3plbigxKQorICAgRnJvemVuKHg9MSwgeT0yKQorCisK
Ky4uIF9oZWxwZXJzOgorCitIZWxwZXJzCistLS0tLS0tCisKK2BgYXR0cnNgYCBjb21lcyB3aXRo
IGEgYnVuY2ggb2YgaGVscGVyIG1ldGhvZHMgdGhhdCBtYWtlIHdvcmtpbmcgd2l0aCBpdCBlYXNp
ZXI6CisKKy4uIGF1dG9mdW5jdGlvbjo6IGF0dHIuZmllbGRzCisKKyAgIEZvciBleGFtcGxlOgor
CisgICAuLiBkb2N0ZXN0OjoKKworICAgICAgPj4+IEBhdHRyLnMKKyAgICAgIC4uLiBjbGFzcyBD
KG9iamVjdCk6CisgICAgICAuLi4gICAgIHggPSBhdHRyLmliKCkKKyAgICAgIC4uLiAgICAgeSA9
IGF0dHIuaWIoKQorICAgICAgPj4+IGF0dHIuZmllbGRzKEMpCisgICAgICAoQXR0cmlidXRlKG5h
bWU9J3gnLCBkZWZhdWx0PU5PVEhJTkcsIHZhbGlkYXRvcj1Ob25lLCByZXByPVRydWUsIGNtcD1U
cnVlLCBoYXNoPU5vbmUsIGluaXQ9VHJ1ZSwgY29udmVydD1Ob25lLCBtZXRhZGF0YT1tYXBwaW5n
cHJveHkoe30pLCB0eXBlPU5vbmUpLCBBdHRyaWJ1dGUobmFtZT0neScsIGRlZmF1bHQ9Tk9USElO
RywgdmFsaWRhdG9yPU5vbmUsIHJlcHI9VHJ1ZSwgY21wPVRydWUsIGhhc2g9Tm9uZSwgaW5pdD1U
cnVlLCBjb252ZXJ0PU5vbmUsIG1ldGFkYXRhPW1hcHBpbmdwcm94eSh7fSksIHR5cGU9Tm9uZSkp
CisgICAgICA+Pj4gYXR0ci5maWVsZHMoQylbMV0KKyAgICAgIEF0dHJpYnV0ZShuYW1lPSd5Jywg
ZGVmYXVsdD1OT1RISU5HLCB2YWxpZGF0b3I9Tm9uZSwgcmVwcj1UcnVlLCBjbXA9VHJ1ZSwgaGFz
aD1Ob25lLCBpbml0PVRydWUsIGNvbnZlcnQ9Tm9uZSwgbWV0YWRhdGE9bWFwcGluZ3Byb3h5KHt9
KSwgdHlwZT1Ob25lKQorICAgICAgPj4+IGF0dHIuZmllbGRzKEMpLnkgaXMgYXR0ci5maWVsZHMo
QylbMV0KKyAgICAgIFRydWUKKworCisuLiBhdXRvZnVuY3Rpb246OiBhdHRyLmhhcworCisgICBG
b3IgZXhhbXBsZToKKworICAgLi4gZG9jdGVzdDo6CisKKyAgICAgID4+PiBAYXR0ci5zCisgICAg
ICAuLi4gY2xhc3MgQyhvYmplY3QpOgorICAgICAgLi4uICAgICBwYXNzCisgICAgICA+Pj4gYXR0
ci5oYXMoQykKKyAgICAgIFRydWUKKyAgICAgID4+PiBhdHRyLmhhcyhvYmplY3QpCisgICAgICBG
YWxzZQorCisKKy4uIGF1dG9mdW5jdGlvbjo6IGF0dHIuYXNkaWN0CisKKyAgIEZvciBleGFtcGxl
OgorCisgICAuLiBkb2N0ZXN0OjoKKworICAgICAgPj4+IEBhdHRyLnMKKyAgICAgIC4uLiBjbGFz
cyBDKG9iamVjdCk6CisgICAgICAuLi4gICAgIHggPSBhdHRyLmliKCkKKyAgICAgIC4uLiAgICAg
eSA9IGF0dHIuaWIoKQorICAgICAgPj4+IGF0dHIuYXNkaWN0KEMoMSwgQygyLCAzKSkpCisgICAg
ICB7J3gnOiAxLCAneSc6IHsneCc6IDIsICd5JzogM319CisKKworLi4gYXV0b2Z1bmN0aW9uOjog
YXR0ci5hc3R1cGxlCisKKyAgIEZvciBleGFtcGxlOgorCisgICAuLiBkb2N0ZXN0OjoKKworICAg
ICAgPj4+IEBhdHRyLnMKKyAgICAgIC4uLiBjbGFzcyBDKG9iamVjdCk6CisgICAgICAuLi4gICAg
IHggPSBhdHRyLmliKCkKKyAgICAgIC4uLiAgICAgeSA9IGF0dHIuaWIoKQorICAgICAgPj4+IGF0
dHIuYXN0dXBsZShDKDEsMikpCisgICAgICAoMSwgMikKKworYGBhdHRyc2BgIGluY2x1ZGVzIHNv
bWUgaGFuZHkgaGVscGVycyBmb3IgZmlsdGVyaW5nOgorCisuLiBhdXRvZnVuY3Rpb246OiBhdHRy
LmZpbHRlcnMuaW5jbHVkZQorCisuLiBhdXRvZnVuY3Rpb246OiBhdHRyLmZpbHRlcnMuZXhjbHVk
ZQorCitTZWUgOnJlZjpgYXNkaWN0YCBmb3IgZXhhbXBsZXMuCisKKy4uIGF1dG9mdW5jdGlvbjo6
IGF0dHIuZXZvbHZlCisKKyAgIEZvciBleGFtcGxlOgorCisgICAuLiBkb2N0ZXN0OjoKKworICAg
ICAgPj4+IEBhdHRyLnMKKyAgICAgIC4uLiBjbGFzcyBDKG9iamVjdCk6CisgICAgICAuLi4gICAg
IHggPSBhdHRyLmliKCkKKyAgICAgIC4uLiAgICAgeSA9IGF0dHIuaWIoKQorICAgICAgPj4+IGkx
ID0gQygxLCAyKQorICAgICAgPj4+IGkxCisgICAgICBDKHg9MSwgeT0yKQorICAgICAgPj4+IGky
ID0gYXR0ci5ldm9sdmUoaTEsIHk9MykKKyAgICAgID4+PiBpMgorICAgICAgQyh4PTEsIHk9MykK
KyAgICAgID4+PiBpMSA9PSBpMgorICAgICAgRmFsc2UKKworICAgYGBldm9sdmVgYCBjcmVhdGVz
IGEgbmV3IGluc3RhbmNlIHVzaW5nIGBgX19pbml0X19gYC4KKyAgIFRoaXMgZmFjdCBoYXMgc2V2
ZXJhbCBpbXBsaWNhdGlvbnM6CisKKyAgICogcHJpdmF0ZSBhdHRyaWJ1dGVzIHNob3VsZCBiZSBz
cGVjaWZpZWQgd2l0aG91dCB0aGUgbGVhZGluZyB1bmRlcnNjb3JlLCBqdXN0IGxpa2UgaW4gYGBf
X2luaXRfX2BgLgorICAgKiBhdHRyaWJ1dGVzIHdpdGggYGBpbml0PUZhbHNlYGAgY2FuJ3QgYmUg
c2V0IHdpdGggYGBldm9sdmVgYC4KKyAgICogdGhlIHVzdWFsIGBgX19pbml0X19gYCB2YWxpZGF0
b3JzIHdpbGwgdmFsaWRhdGUgdGhlIG5ldyB2YWx1ZXMuCisKKy4uIGF1dG9mdW5jdGlvbjo6IHZh
bGlkYXRlCisKKyAgIEZvciBleGFtcGxlOgorCisgICAuLiBkb2N0ZXN0OjoKKworICAgICAgPj4+
IEBhdHRyLnMKKyAgICAgIC4uLiBjbGFzcyBDKG9iamVjdCk6CisgICAgICAuLi4gICAgIHggPSBh
dHRyLmliKHZhbGlkYXRvcj1hdHRyLnZhbGlkYXRvcnMuaW5zdGFuY2Vfb2YoaW50KSkKKyAgICAg
ID4+PiBpID0gQygxKQorICAgICAgPj4+IGkueCA9ICIxIgorICAgICAgPj4+IGF0dHIudmFsaWRh
dGUoaSkKKyAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAg
IC4uLgorICAgICAgVHlwZUVycm9yOiAoIid4JyBtdXN0IGJlIDx0eXBlICdpbnQnPiAoZ290ICcx
JyB0aGF0IGlzIGEgPHR5cGUgJ3N0cic+KS4iLCBBdHRyaWJ1dGUobmFtZT0neCcsIGRlZmF1bHQ9
Tk9USElORywgdmFsaWRhdG9yPTxpbnN0YW5jZV9vZiB2YWxpZGF0b3IgZm9yIHR5cGUgPHR5cGUg
J2ludCc+PiwgcmVwcj1UcnVlLCBjbXA9VHJ1ZSwgaGFzaD1Ob25lLCBpbml0PVRydWUsIHR5cGU9
Tm9uZSksIDx0eXBlICdpbnQnPiwgJzEnKQorCisKK1ZhbGlkYXRvcnMgY2FuIGJlIGdsb2JhbGx5
IGRpc2FibGVkIGlmIHlvdSB3YW50IHRvIHJ1biB0aGVtIG9ubHkgaW4gZGV2ZWxvcG1lbnQgYW5k
IHRlc3RzIGJ1dCBub3QgaW4gcHJvZHVjdGlvbiBiZWNhdXNlIHlvdSBmZWFyIHRoZWlyIHBlcmZv
cm1hbmNlIGltcGFjdDoKKworLi4gYXV0b2Z1bmN0aW9uOjogc2V0X3J1bl92YWxpZGF0b3JzCisK
Ky4uIGF1dG9mdW5jdGlvbjo6IGdldF9ydW5fdmFsaWRhdG9ycworCisKKy4uIF9hcGlfdmFsaWRh
dG9yczoKKworVmFsaWRhdG9ycworLS0tLS0tLS0tLQorCitgYGF0dHJzYGAgY29tZXMgd2l0aCBz
b21lIGNvbW1vbiB2YWxpZGF0b3JzIGluIHRoZSBgYGF0dHJzLnZhbGlkYXRvcnNgYCBtb2R1bGU6
CisKKworLi4gYXV0b2Z1bmN0aW9uOjogYXR0ci52YWxpZGF0b3JzLmluc3RhbmNlX29mCisKKwor
ICAgRm9yIGV4YW1wbGU6CisKKyAgIC4uIGRvY3Rlc3Q6OgorCisgICAgICA+Pj4gQGF0dHIucwor
ICAgICAgLi4uIGNsYXNzIEMob2JqZWN0KToKKyAgICAgIC4uLiAgICAgeCA9IGF0dHIuaWIodmFs
aWRhdG9yPWF0dHIudmFsaWRhdG9ycy5pbnN0YW5jZV9vZihpbnQpKQorICAgICAgPj4+IEMoNDIp
CisgICAgICBDKHg9NDIpCisgICAgICA+Pj4gQygiNDIiKQorICAgICAgVHJhY2ViYWNrIChtb3N0
IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAgLi4uCisgICAgICBUeXBlRXJyb3I6ICgiJ3gn
IG11c3QgYmUgPHR5cGUgJ2ludCc+IChnb3QgJzQyJyB0aGF0IGlzIGEgPHR5cGUgJ3N0cic+KS4i
LCBBdHRyaWJ1dGUobmFtZT0neCcsIGRlZmF1bHQ9Tk9USElORywgdmFsaWRhdG9yPTxpbnN0YW5j
ZV9vZiB2YWxpZGF0b3IgZm9yIHR5cGUgPHR5cGUgJ2ludCc+PiwgdHlwZT1Ob25lKSwgPHR5cGUg
J2ludCc+LCAnNDInKQorICAgICAgPj4+IEMoTm9uZSkKKyAgICAgIFRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgIC4uLgorICAgICAgVHlwZUVycm9yOiAoIid4JyBt
dXN0IGJlIDx0eXBlICdpbnQnPiAoZ290IE5vbmUgdGhhdCBpcyBhIDx0eXBlICdOb25lVHlwZSc+
KS4iLCBBdHRyaWJ1dGUobmFtZT0neCcsIGRlZmF1bHQ9Tk9USElORywgdmFsaWRhdG9yPTxpbnN0
YW5jZV9vZiB2YWxpZGF0b3IgZm9yIHR5cGUgPHR5cGUgJ2ludCc+PiwgcmVwcj1UcnVlLCBjbXA9
VHJ1ZSwgaGFzaD1Ob25lLCBpbml0PVRydWUsIHR5cGU9Tm9uZSksIDx0eXBlICdpbnQnPiwgTm9u
ZSkKKworLi4gYXV0b2Z1bmN0aW9uOjogYXR0ci52YWxpZGF0b3JzLmluXworCisgICBGb3IgZXhh
bXBsZToKKworICAgLi4gZG9jdGVzdDo6CisKKyAgICAgICA+Pj4gaW1wb3J0IGVudW0KKyAgICAg
ICA+Pj4gY2xhc3MgU3RhdGUoZW51bS5FbnVtKToKKyAgICAgICAuLi4gICAgIE9OID0gIm9uIgor
ICAgICAgIC4uLiAgICAgT0ZGID0gIm9mZiIKKyAgICAgICA+Pj4gQGF0dHIucworICAgICAgIC4u
LiBjbGFzcyBDKG9iamVjdCk6CisgICAgICAgLi4uICAgICBzdGF0ZSA9IGF0dHIuaWIodmFsaWRh
dG9yPWF0dHIudmFsaWRhdG9ycy5pbl8oU3RhdGUpKQorICAgICAgIC4uLiAgICAgdmFsID0gYXR0
ci5pYih2YWxpZGF0b3I9YXR0ci52YWxpZGF0b3JzLmluXyhbMSwgMiwgM10pKQorICAgICAgID4+
PiBDKFN0YXRlLk9OLCAxKQorICAgICAgIEMoc3RhdGU9PFN0YXRlLk9OOiAnb24nPiwgdmFsPTEp
CisgICAgICAgPj4+IEMoIm9uIiwgMSkKKyAgICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNh
bGwgbGFzdCk6CisgICAgICAgICAgLi4uCisgICAgICAgVmFsdWVFcnJvcjogJ3N0YXRlJyBtdXN0
IGJlIGluIDxlbnVtICdTdGF0ZSc+IChnb3QgJ29uJykKKyAgICAgICA+Pj4gQyhTdGF0ZS5PTiwg
NCkKKyAgICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAgICAg
Li4uCisgICAgICAgVmFsdWVFcnJvcjogJ3ZhbCcgbXVzdCBiZSBpbiBbMSwgMiwgM10gKGdvdCA0
KQorCisuLiBhdXRvZnVuY3Rpb246OiBhdHRyLnZhbGlkYXRvcnMucHJvdmlkZXMKKworLi4gYXV0
b2Z1bmN0aW9uOjogYXR0ci52YWxpZGF0b3JzLmFuZF8KKworICAgRm9yIGNvbnZlbmllbmNlLCBp
dCdzIGFsc28gcG9zc2libGUgdG8gcGFzcyBhIGxpc3QgdG8gOmZ1bmM6YGF0dHIuaWJgJ3MgdmFs
aWRhdG9yIGFyZ3VtZW50LgorCisgICBUaHVzIHRoZSBmb2xsb3dpbmcgdHdvIHN0YXRlbWVudHMg
YXJlIGVxdWl2YWxlbnQ6OgorCisgICAgICB4ID0gYXR0ci5pYih2YWxpZGF0b3I9YXR0ci52YWxp
ZGF0b3JzLmFuZF8odjEsIHYyLCB2MykpCisgICAgICB4ID0gYXR0ci5pYih2YWxpZGF0b3I9W3Yx
LCB2MiwgdjNdKQorCisuLiBhdXRvZnVuY3Rpb246OiBhdHRyLnZhbGlkYXRvcnMub3B0aW9uYWwK
KworICAgRm9yIGV4YW1wbGU6CisKKyAgIC4uIGRvY3Rlc3Q6OgorCisgICAgICA+Pj4gQGF0dHIu
cworICAgICAgLi4uIGNsYXNzIEMob2JqZWN0KToKKyAgICAgIC4uLiAgICAgeCA9IGF0dHIuaWIo
dmFsaWRhdG9yPWF0dHIudmFsaWRhdG9ycy5vcHRpb25hbChhdHRyLnZhbGlkYXRvcnMuaW5zdGFu
Y2Vfb2YoaW50KSkpCisgICAgICA+Pj4gQyg0MikKKyAgICAgIEMoeD00MikKKyAgICAgID4+PiBD
KCI0MiIpCisgICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAg
ICAuLi4KKyAgICAgIFR5cGVFcnJvcjogKCIneCcgbXVzdCBiZSA8dHlwZSAnaW50Jz4gKGdvdCAn
NDInIHRoYXQgaXMgYSA8dHlwZSAnc3RyJz4pLiIsIEF0dHJpYnV0ZShuYW1lPSd4JywgZGVmYXVs
dD1OT1RISU5HLCB2YWxpZGF0b3I9PGluc3RhbmNlX29mIHZhbGlkYXRvciBmb3IgdHlwZSA8dHlw
ZSAnaW50Jz4+LCB0eXBlPU5vbmUpLCA8dHlwZSAnaW50Jz4sICc0MicpCisgICAgICA+Pj4gQyhO
b25lKQorICAgICAgQyh4PU5vbmUpCisKKworQ29udmVydGVycworLS0tLS0tLS0tLQorCisuLiBh
dXRvZnVuY3Rpb246OiBhdHRyLmNvbnZlcnRlcnMub3B0aW9uYWwKKworICAgRm9yIGV4YW1wbGU6
CisKKyAgIC4uIGRvY3Rlc3Q6OgorCisgICAgICA+Pj4gQGF0dHIucworICAgICAgLi4uIGNsYXNz
IEMob2JqZWN0KToKKyAgICAgIC4uLiAgICAgeCA9IGF0dHIuaWIoY29udmVydD1hdHRyLmNvbnZl
cnRlcnMub3B0aW9uYWwoaW50KSkKKyAgICAgID4+PiBDKE5vbmUpCisgICAgICBDKHg9Tm9uZSkK
KyAgICAgID4+PiBDKDQyKQorICAgICAgQyh4PTQyKQorCisKK0RlcHJlY2F0ZWQgQVBJcworLS0t
LS0tLS0tLS0tLS0tCisKK1RoZSBzZXJpb3VzIGJ1c2luZXNzIGFsaWFzZXMgdXNlZCB0byBiZSBj
YWxsZWQgYGBhdHRyLmF0dHJpYnV0ZXNgYCBhbmQgYGBhdHRyLmF0dHJgYC4KK1RoZXJlIGFyZSBu
byBwbGFucyB0byByZW1vdmUgdGhlbSBidXQgdGhleSBzaG91bGRuJ3QgYmUgdXNlZCBpbiBuZXcg
Y29kZS4KKworLi4gYXV0b2Z1bmN0aW9uOjogYXNzb2MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMv
ZG9jcy9iYWNrd2FyZC1jb21wYXRpYmlsaXR5LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9iYWNrd2Fy
ZC1jb21wYXRpYmlsaXR5LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MjU1OWY4ZDQ1MDc5OTdiMzgxNjk4MzVk
NTFlMmY4ZWZhNGI0OWVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2JhY2t3
YXJkLWNvbXBhdGliaWxpdHkucnN0CkBAIC0wLDAgKzEsMTkgQEAKK0JhY2t3YXJkIENvbXBhdGli
aWxpdHkKKz09PT09PT09PT09PT09PT09PT09PT0KKworLi4gY3VycmVudG1vZHVsZTo6IGF0dHIK
KworYGBhdHRyc2BgIGhhcyBhIHZlcnkgc3Ryb25nIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgcG9s
aWN5IHRoYXQgaXMgaW5zcGlyZWQgYnkgdGhlIHBvbGljeSBvZiB0aGUgYFR3aXN0ZWQgZnJhbWV3
b3JrIDxodHRwczovL3R3aXN0ZWRtYXRyaXguY29tL3RyYWMvd2lraS9Db21wYXRpYmlsaXR5UG9s
aWN5PmBfLgorCitQdXQgc2ltcGx5LCB5b3Ugc2hvdWxkbid0IGV2ZXIgYmUgYWZyYWlkIHRvIHVw
Z3JhZGUgYGBhdHRyc2BgIGlmIHlvdSdyZSBvbmx5IHVzaW5nIGl0cyBwdWJsaWMgQVBJcy4KK0lm
IHRoZXJlIHdpbGwgZXZlciBiZSBhIG5lZWQgdG8gYnJlYWsgY29tcGF0aWJpbGl0eSwgaXQgd2ls
bCBiZSBhbm5vdW5jZWQgaW4gdGhlIDpkb2M6YGNoYW5nZWxvZ2AgYW5kIHJhaXNlIGEgYGBEZXBy
ZWNhdGlvbldhcm5pbmdgYCBmb3IgYSB5ZWFyIChpZiBwb3NzaWJsZSkgYmVmb3JlIGl0J3MgZmlu
YWxseSByZWFsbHkgYnJva2VuLgorCisKKy4uIF9leGVtcHRpb246CisKKy4uIHdhcm5pbmc6Ogor
CisgICBUaGUgc3RydWN0dXJlIG9mIHRoZSA6Y2xhc3M6YGF0dHIuQXR0cmlidXRlYCBjbGFzcyBp
cyBleGVtcHQgZnJvbSB0aGlzIHJ1bGUuCisgICBJdCAqd2lsbCogY2hhbmdlIGluIHRoZSBmdXR1
cmUsIGJ1dCBzaW5jZSBpdCBzaG91bGQgYmUgY29uc2lkZXJlZCByZWFkLW9ubHksIHRoYXQgc2hv
dWxkbid0IG1hdHRlci4KKworICAgSG93ZXZlciBpZiB5b3UgaW50ZW5kIHRvIGJ1aWxkIGV4dGVu
c2lvbnMgb24gdG9wIG9mIGBgYXR0cnNgYCB5b3UgaGF2ZSB0byBhbnRpY2lwYXRlIHRoYXQuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvY2hhbmdlbG9nLnJzdCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9j
cy9jaGFuZ2Vsb2cucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2NWIwNTIxZDBjMmNkYmZlNDkzZDE5NzY1YjA0
ZDVjMTE5ZmE3ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvY2hhbmdlbG9n
LnJzdApAQCAtMCwwICsxIEBACisuLiBpbmNsdWRlOjogLi4vQ0hBTkdFTE9HLnJzdApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2NvbmYucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvY29uZi5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xY2RiMDdjMWY3OThlOTA4NGY0NzM1NDhjMzE4NDA2MjhlYmIyNTFkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2NvbmYucHkKQEAgLTAsMCArMSwxNTUgQEAK
KyMgLSotIGNvZGluZzogdXRmLTggLSotCisKK2ltcG9ydCBjb2RlY3MKK2ltcG9ydCBvcworaW1w
b3J0IHJlCisKKworZGVmIHJlYWQoKnBhcnRzKToKKyAgICAiIiIKKyAgICBCdWlsZCBhbiBhYnNv
bHV0ZSBwYXRoIGZyb20gKnBhcnRzKiBhbmQgYW5kIHJldHVybiB0aGUgY29udGVudHMgb2YgdGhl
CisgICAgcmVzdWx0aW5nIGZpbGUuICBBc3N1bWUgVVRGLTggZW5jb2RpbmcuCisgICAgIiIiCisg
ICAgaGVyZSA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pKQorICAg
IHdpdGggY29kZWNzLm9wZW4ob3MucGF0aC5qb2luKGhlcmUsICpwYXJ0cyksICJyYiIsICJ1dGYt
OCIpIGFzIGY6CisgICAgICAgIHJldHVybiBmLnJlYWQoKQorCisKK2RlZiBmaW5kX3ZlcnNpb24o
KmZpbGVfcGF0aHMpOgorICAgICIiIgorICAgIEJ1aWxkIGEgcGF0aCBmcm9tICpmaWxlX3BhdGhz
KiBhbmQgc2VhcmNoIGZvciBhIGBgX192ZXJzaW9uX19gYAorICAgIHN0cmluZyBpbnNpZGUuCisg
ICAgIiIiCisgICAgdmVyc2lvbl9maWxlID0gcmVhZCgqZmlsZV9wYXRocykKKyAgICB2ZXJzaW9u
X21hdGNoID0gcmUuc2VhcmNoKHIiXl9fdmVyc2lvbl9fID0gWydcIl0oW14nXCJdKilbJ1wiXSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uX2ZpbGUsIHJlLk0pCisgICAg
aWYgdmVyc2lvbl9tYXRjaDoKKyAgICAgICAgcmV0dXJuIHZlcnNpb25fbWF0Y2guZ3JvdXAoMSkK
KyAgICByYWlzZSBSdW50aW1lRXJyb3IoIlVuYWJsZSB0byBmaW5kIHZlcnNpb24gc3RyaW5nLiIp
CisKKworIyAtLSBHZW5lcmFsIGNvbmZpZ3VyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgQWRkIGFueSBTcGhpbnggZXh0ZW5zaW9uIG1v
ZHVsZSBuYW1lcyBoZXJlLCBhcyBzdHJpbmdzLiBUaGV5IGNhbiBiZQorIyBleHRlbnNpb25zIGNv
bWluZyB3aXRoIFNwaGlueCAobmFtZWQgJ3NwaGlueC5leHQuKicpIG9yIHlvdXIgY3VzdG9tCisj
IG9uZXMuCitleHRlbnNpb25zID0gWworICAgICdzcGhpbnguZXh0LmF1dG9kb2MnLAorICAgICdz
cGhpbnguZXh0LmRvY3Rlc3QnLAorICAgICdzcGhpbnguZXh0LmludGVyc3BoaW54JywKKyAgICAn
c3BoaW54LmV4dC50b2RvJywKK10KKworCisjIEFkZCBhbnkgcGF0aHMgdGhhdCBjb250YWluIHRl
bXBsYXRlcyBoZXJlLCByZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeS4KK3RlbXBsYXRlc19wYXRo
ID0gWydfdGVtcGxhdGVzJ10KKworIyBUaGUgc3VmZml4IG9mIHNvdXJjZSBmaWxlbmFtZXMuCitz
b3VyY2Vfc3VmZml4ID0gJy5yc3QnCisKKyMgVGhlIG1hc3RlciB0b2N0cmVlIGRvY3VtZW50Lgor
bWFzdGVyX2RvYyA9ICdpbmRleCcKKworIyBHZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBw
cm9qZWN0LgorcHJvamVjdCA9IHUnYXR0cnMnCitjb3B5cmlnaHQgPSB1JzIwMTUsIEh5bmVrIFNj
aGxhd2FjaycKKworIyBUaGUgdmVyc2lvbiBpbmZvIGZvciB0aGUgcHJvamVjdCB5b3UncmUgZG9j
dW1lbnRpbmcsIGFjdHMgYXMgcmVwbGFjZW1lbnQgZm9yCisjIHx2ZXJzaW9ufCBhbmQgfHJlbGVh
c2V8LCBhbHNvIHVzZWQgaW4gdmFyaW91cyBvdGhlciBwbGFjZXMgdGhyb3VnaG91dCB0aGUKKyMg
YnVpbHQgZG9jdW1lbnRzLgorIworIyBUaGUgc2hvcnQgWC5ZIHZlcnNpb24uCityZWxlYXNlID0g
ZmluZF92ZXJzaW9uKCIuLi9zcmMvYXR0ci9fX2luaXRfXy5weSIpCit2ZXJzaW9uID0gcmVsZWFz
ZS5yc3BsaXQodSIuIiwgMSlbMF0KKyMgVGhlIGZ1bGwgdmVyc2lvbiwgaW5jbHVkaW5nIGFscGhh
L2JldGEvcmMgdGFncy4KKworIyBMaXN0IG9mIHBhdHRlcm5zLCByZWxhdGl2ZSB0byBzb3VyY2Ug
ZGlyZWN0b3J5LCB0aGF0IG1hdGNoIGZpbGVzIGFuZAorIyBkaXJlY3RvcmllcyB0byBpZ25vcmUg
d2hlbiBsb29raW5nIGZvciBzb3VyY2UgZmlsZXMuCitleGNsdWRlX3BhdHRlcm5zID0gWydfYnVp
bGQnXQorCisjIElmIHRydWUsICcoKScgd2lsbCBiZSBhcHBlbmRlZCB0byA6ZnVuYzogZXRjLiBj
cm9zcy1yZWZlcmVuY2UgdGV4dC4KK2FkZF9mdW5jdGlvbl9wYXJlbnRoZXNlcyA9IFRydWUKKwor
IyBUaGUgbmFtZSBvZiB0aGUgUHlnbWVudHMgKHN5bnRheCBoaWdobGlnaHRpbmcpIHN0eWxlIHRv
IHVzZS4KK3B5Z21lbnRzX3N0eWxlID0gJ3NwaGlueCcKKworIyAtLSBPcHRpb25zIGZvciBIVE1M
IG91dHB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
KyMgVGhlIHRoZW1lIHRvIHVzZSBmb3IgSFRNTCBhbmQgSFRNTCBIZWxwIHBhZ2VzLiAgU2VlIHRo
ZSBkb2N1bWVudGF0aW9uIGZvcgorIyBhIGxpc3Qgb2YgYnVpbHRpbiB0aGVtZXMuCisKK2h0bWxf
dGhlbWUgPSAiYWxhYmFzdGVyIgoraHRtbF90aGVtZV9vcHRpb25zID0geworICAgICJmb250X2Zh
bWlseSI6ICciQXZlbmlyIE5leHQiLCBDYWxpYnJpLCAiUFQgU2FucyIsIHNhbnMtc2VyaWYnLAor
ICAgICJoZWFkX2ZvbnRfZmFtaWx5IjogJyJBdmVuaXIgTmV4dCIsIENhbGlicmksICJQVCBTYW5z
Iiwgc2Fucy1zZXJpZicsCisgICAgImZvbnRfc2l6ZSI6ICIxOHB4IiwKKyAgICAicGFnZV93aWR0
aCI6ICI5ODBweCIsCit9CisKKyMgVGhlIG5hbWUgb2YgYW4gaW1hZ2UgZmlsZSAocmVsYXRpdmUg
dG8gdGhpcyBkaXJlY3RvcnkpIHRvIHBsYWNlIGF0IHRoZSB0b3AKKyMgb2YgdGhlIHNpZGViYXIu
CitodG1sX2xvZ28gPSAiX3N0YXRpYy9hdHRyc19sb2dvLnN2ZyIKKworIyBUaGUgbmFtZSBvZiBh
biBpbWFnZSBmaWxlICh3aXRoaW4gdGhlIHN0YXRpYyBwYXRoKSB0byB1c2UgYXMgZmF2aWNvbiBv
ZiB0aGUKKyMgZG9jcy4gIFRoaXMgZmlsZSBzaG91bGQgYmUgYSBXaW5kb3dzIGljb24gZmlsZSAo
LmljbykgYmVpbmcgMTZ4MTYgb3IgMzJ4MzIKKyMgcGl4ZWxzIGxhcmdlLgorIyBodG1sX2Zhdmlj
b24gPSBOb25lCisKKyMgQWRkIGFueSBwYXRocyB0aGF0IGNvbnRhaW4gY3VzdG9tIHN0YXRpYyBm
aWxlcyAoc3VjaCBhcyBzdHlsZSBzaGVldHMpIGhlcmUsCisjIHJlbGF0aXZlIHRvIHRoaXMgZGly
ZWN0b3J5LiBUaGV5IGFyZSBjb3BpZWQgYWZ0ZXIgdGhlIGJ1aWx0aW4gc3RhdGljIGZpbGVzLAor
IyBzbyBhIGZpbGUgbmFtZWQgImRlZmF1bHQuY3NzIiB3aWxsIG92ZXJ3cml0ZSB0aGUgYnVpbHRp
biAiZGVmYXVsdC5jc3MiLgoraHRtbF9zdGF0aWNfcGF0aCA9IFsnX3N0YXRpYyddCisKKyMgSWYg
ZmFsc2UsIG5vIG1vZHVsZSBpbmRleCBpcyBnZW5lcmF0ZWQuCitodG1sX2RvbWFpbl9pbmRpY2Vz
ID0gVHJ1ZQorCisjIElmIGZhbHNlLCBubyBpbmRleCBpcyBnZW5lcmF0ZWQuCitodG1sX3VzZV9p
bmRleCA9IFRydWUKKworIyBJZiB0cnVlLCB0aGUgaW5kZXggaXMgc3BsaXQgaW50byBpbmRpdmlk
dWFsIHBhZ2VzIGZvciBlYWNoIGxldHRlci4KK2h0bWxfc3BsaXRfaW5kZXggPSBGYWxzZQorCisj
IElmIHRydWUsIGxpbmtzIHRvIHRoZSByZVNUIHNvdXJjZXMgYXJlIGFkZGVkIHRvIHRoZSBwYWdl
cy4KK2h0bWxfc2hvd19zb3VyY2VsaW5rID0gRmFsc2UKKworIyBJZiB0cnVlLCAiQ3JlYXRlZCB1
c2luZyBTcGhpbngiIGlzIHNob3duIGluIHRoZSBIVE1MIGZvb3Rlci4gRGVmYXVsdCBpcyBUcnVl
LgoraHRtbF9zaG93X3NwaGlueCA9IFRydWUKKworIyBJZiB0cnVlLCAiKEMpIENvcHlyaWdodCAu
Li4iIGlzIHNob3duIGluIHRoZSBIVE1MIGZvb3Rlci4gRGVmYXVsdCBpcyBUcnVlLgoraHRtbF9z
aG93X2NvcHlyaWdodCA9IFRydWUKKworIyBJZiB0cnVlLCBhbiBPcGVuU2VhcmNoIGRlc2NyaXB0
aW9uIGZpbGUgd2lsbCBiZSBvdXRwdXQsIGFuZCBhbGwgcGFnZXMgd2lsbAorIyBjb250YWluIGEg
PGxpbms+IHRhZyByZWZlcnJpbmcgdG8gaXQuICBUaGUgdmFsdWUgb2YgdGhpcyBvcHRpb24gbXVz
dCBiZSB0aGUKKyMgYmFzZSBVUkwgZnJvbSB3aGljaCB0aGUgZmluaXNoZWQgSFRNTCBpcyBzZXJ2
ZWQuCisjIGh0bWxfdXNlX29wZW5zZWFyY2ggPSAnJworCisjIE91dHB1dCBmaWxlIGJhc2UgbmFt
ZSBmb3IgSFRNTCBoZWxwIGJ1aWxkZXIuCitodG1saGVscF9iYXNlbmFtZSA9ICdhdHRyc2RvYycK
KworIyAtLSBPcHRpb25zIGZvciBtYW51YWwgcGFnZSBvdXRwdXQgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgT25lIGVudHJ5IHBlciBtYW51YWwgcGFnZS4gTGlz
dCBvZiB0dXBsZXMKKyMgKHNvdXJjZSBzdGFydCBmaWxlLCBuYW1lLCBkZXNjcmlwdGlvbiwgYXV0
aG9ycywgbWFudWFsIHNlY3Rpb24pLgorbWFuX3BhZ2VzID0gWworICAgICgnaW5kZXgnLCAnYXR0
cnMnLCB1J2F0dHJzIERvY3VtZW50YXRpb24nLAorICAgICBbdSdIeW5layBTY2hsYXdhY2snXSwg
MSkKK10KKworCisjIC0tIE9wdGlvbnMgZm9yIFRleGluZm8gb3V0cHV0IC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBHcm91cGluZyB0aGUgZG9jdW1lbnQg
dHJlZSBpbnRvIFRleGluZm8gZmlsZXMuIExpc3Qgb2YgdHVwbGVzCisjIChzb3VyY2Ugc3RhcnQg
ZmlsZSwgdGFyZ2V0IG5hbWUsIHRpdGxlLCBhdXRob3IsCisjICBkaXIgbWVudSBlbnRyeSwgZGVz
Y3JpcHRpb24sIGNhdGVnb3J5KQordGV4aW5mb19kb2N1bWVudHMgPSBbCisgICAgKCdpbmRleCcs
ICdhdHRycycsIHUnYXR0cnMgRG9jdW1lbnRhdGlvbicsCisgICAgIHUnSHluZWsgU2NobGF3YWNr
JywgJ2F0dHJzJywgJ09uZSBsaW5lIGRlc2NyaXB0aW9uIG9mIHByb2plY3QuJywKKyAgICAgJ01p
c2NlbGxhbmVvdXMnKSwKK10KKworaW50ZXJzcGhpbnhfbWFwcGluZyA9IHsKKyAgICAiaHR0cHM6
Ly9kb2NzLnB5dGhvbi5vcmcvMyI6IE5vbmUsCit9CisKKyMgQWxsb3cgbm9uLWxvY2FsIFVSSXMg
c28gd2UgY2FuIGhhdmUgaW1hZ2VzIGluIENIQU5HRUxPRyBldGMuCitzdXBwcmVzc193YXJuaW5n
cyA9IFsnaW1hZ2Uubm9ubG9jYWxfdXJpJ10KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9j
b250cmlidXRpbmcucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2NvbnRyaWJ1dGluZy5yc3QKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMWQ1MTljMzgxNTFhYjcyMjc1ZWU4MWE3NWQ0MTIwYzNlOWQ1YTViYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9jb250cmlidXRpbmcucnN0CkBAIC0wLDAgKzEsNSBA
QAorLi4gX2NvbnRyaWJ1dGluZzoKKworLi4gaW5jbHVkZTo6IC4uL0NPTlRSSUJVVElORy5yc3QK
KworLi4gaW5jbHVkZTo6IC4uL0NPREVfT0ZfQ09ORFVDVC5yc3QKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YXR0cnMvZG9jcy9kb2N1dGlscy5jb25mIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2RvY3V0aWxzLmNvbmYK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZGI4Y2E4MmM3NDdjZWRlMDI3YzAxYjNlOTM3NWQwNmQzOTU0MTQ5ZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9kb2N1dGlscy5jb25mCkBAIC0wLDAgKzEs
MyBAQAorW3BhcnNlcnNdCitbcmVzdHJ1Y3R1cmVkdGV4dCBwYXJzZXJdCitzbWFydF9xdW90ZXM9
eWVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvZXhhbXBsZXMucnN0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRy
cy9kb2NzL2V4YW1wbGVzLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDMyZThmY2I1MzkzNWU2ZTk0Y2UwZjRl
NDRhODI5MjZjMDhjZmY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2V4YW1w
bGVzLnJzdApAQCAtMCwwICsxLDcwNSBAQAorLi4gX2V4YW1wbGVzOgorCitgYGF0dHJzYGAgYnkg
RXhhbXBsZQorPT09PT09PT09PT09PT09PT09PT0KKworCitCYXNpY3MKKy0tLS0tLQorCitUaGUg
c2ltcGxlc3QgcG9zc2libGUgdXNhZ2UgaXM6CisKKy4uIGRvY3Rlc3Q6OgorCisgICA+Pj4gaW1w
b3J0IGF0dHIKKyAgID4+PiBAYXR0ci5zCisgICAuLi4gY2xhc3MgRW1wdHkob2JqZWN0KToKKyAg
IC4uLiAgICAgcGFzcworICAgPj4+IEVtcHR5KCkKKyAgIEVtcHR5KCkKKyAgID4+PiBFbXB0eSgp
ID09IEVtcHR5KCkKKyAgIFRydWUKKyAgID4+PiBFbXB0eSgpIGlzIEVtcHR5KCkKKyAgIEZhbHNl
CisKK1NvIGluIG90aGVyIHdvcmRzOiBgYGF0dHJzYGAgaXMgdXNlZnVsIGV2ZW4gd2l0aG91dCBh
Y3R1YWwgYXR0cmlidXRlcyEKKworQnV0IHlvdSdsbCB1c3VhbGx5IHdhbnQgc29tZSBkYXRhIG9u
IHlvdXIgY2xhc3Nlcywgc28gbGV0J3MgYWRkIHNvbWU6CisKKy4uIGRvY3Rlc3Q6OgorCisgICA+
Pj4gQGF0dHIucworICAgLi4uIGNsYXNzIENvb3JkaW5hdGVzKG9iamVjdCk6CisgICAuLi4gICAg
IHggPSBhdHRyLmliKCkKKyAgIC4uLiAgICAgeSA9IGF0dHIuaWIoKQorCitCeSBkZWZhdWx0LCBh
bGwgZmVhdHVyZXMgYXJlIGFkZGVkLCBzbyB5b3UgaW1tZWRpYXRlbHkgaGF2ZSBhIGZ1bGx5IGZ1
bmN0aW9uYWwgZGF0YSBjbGFzcyB3aXRoIGEgbmljZSBgYHJlcHJgYCBzdHJpbmcgYW5kIGNvbXBh
cmlzb24gbWV0aG9kcy4KKworLi4gZG9jdGVzdDo6CisKKyAgID4+PiBjMSA9IENvb3JkaW5hdGVz
KDEsIDIpCisgICA+Pj4gYzEKKyAgIENvb3JkaW5hdGVzKHg9MSwgeT0yKQorICAgPj4+IGMyID0g
Q29vcmRpbmF0ZXMoeD0yLCB5PTEpCisgICA+Pj4gYzIKKyAgIENvb3JkaW5hdGVzKHg9MiwgeT0x
KQorICAgPj4+IGMxID09IGMyCisgICBGYWxzZQorCitBcyBzaG93biwgdGhlIGdlbmVyYXRlZCBg
YF9faW5pdF9fYGAgbWV0aG9kIGFsbG93cyBmb3IgYm90aCBwb3NpdGlvbmFsIGFuZCBrZXl3b3Jk
IGFyZ3VtZW50cy4KKworSWYgcGxheWZ1bCBuYW1pbmcgdHVybnMgeW91IG9mZiwgYGBhdHRyc2Bg
IGNvbWVzIHdpdGggc2VyaW91cyBidXNpbmVzcyBhbGlhc2VzOgorCisuLiBkb2N0ZXN0OjoKKwor
ICAgPj4+IGZyb20gYXR0ciBpbXBvcnQgYXR0cnMsIGF0dHJpYgorICAgPj4+IEBhdHRycworICAg
Li4uIGNsYXNzIFNlcmlvdXNDb29yZGluYXRlcyhvYmplY3QpOgorICAgLi4uICAgICB4ID0gYXR0
cmliKCkKKyAgIC4uLiAgICAgeSA9IGF0dHJpYigpCisgICA+Pj4gU2VyaW91c0Nvb3JkaW5hdGVz
KDEsIDIpCisgICBTZXJpb3VzQ29vcmRpbmF0ZXMoeD0xLCB5PTIpCisgICA+Pj4gYXR0ci5maWVs
ZHMoQ29vcmRpbmF0ZXMpID09IGF0dHIuZmllbGRzKFNlcmlvdXNDb29yZGluYXRlcykKKyAgIFRy
dWUKKworRm9yIHByaXZhdGUgYXR0cmlidXRlcywgYGBhdHRyc2BgIHdpbGwgc3RyaXAgdGhlIGxl
YWRpbmcgdW5kZXJzY29yZXMgZm9yIGtleXdvcmQgYXJndW1lbnRzOgorCisuLiBkb2N0ZXN0OjoK
KworICAgPj4+IEBhdHRyLnMKKyAgIC4uLiBjbGFzcyBDKG9iamVjdCk6CisgICAuLi4gICAgIF94
ID0gYXR0ci5pYigpCisgICA+Pj4gQyh4PTEpCisgICBDKF94PTEpCisKK0lmIHlvdSB3YW50IHRv
IGluaXRpYWxpemUgeW91ciBwcml2YXRlIGF0dHJpYnV0ZXMgeW91cnNlbGYsIHlvdSBjYW4gZG8g
dGhhdCB0b286CisKKy4uIGRvY3Rlc3Q6OgorCisgICA+Pj4gQGF0dHIucworICAgLi4uIGNsYXNz
IEMob2JqZWN0KToKKyAgIC4uLiAgICAgX3ggPSBhdHRyLmliKGluaXQ9RmFsc2UsIGRlZmF1bHQ9
NDIpCisgICA+Pj4gQygpCisgICBDKF94PTQyKQorICAgPj4+IEMoMjMpCisgICBUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAuLi4KKyAgIFR5cGVFcnJvcjogX19pbml0
X18oKSB0YWtlcyBleGFjdGx5IDEgYXJndW1lbnQgKDIgZ2l2ZW4pCisKK0FuIGFkZGl0aW9uYWwg
d2F5IG9mIGRlZmluaW5nIGF0dHJpYnV0ZXMgaXMgc3VwcG9ydGVkIHRvby4KK1RoaXMgaXMgdXNl
ZnVsIGluIHRpbWVzIHdoZW4geW91IHdhbnQgdG8gZW5oYW5jZSBjbGFzc2VzIHRoYXQgYXJlIG5v
dCB5b3VycyAobmljZSBgYF9fcmVwcl9fYGAgZm9yIERqYW5nbyBtb2RlbHMgYW55b25lPyk6CisK
Ky4uIGRvY3Rlc3Q6OgorCisgICA+Pj4gY2xhc3MgU29tZXRoaW5nRnJvbVNvbWVvbmVFbHNlKG9i
amVjdCk6CisgICAuLi4gICAgIGRlZiBfX2luaXRfXyhzZWxmLCB4KToKKyAgIC4uLiAgICAgICAg
IHNlbGYueCA9IHgKKyAgID4+PiBTb21ldGhpbmdGcm9tU29tZW9uZUVsc2UgPSBhdHRyLnMoCisg
ICAuLi4gICAgIHRoZXNlPXsKKyAgIC4uLiAgICAgICAgICJ4IjogYXR0ci5pYigpCisgICAuLi4g
ICAgIH0sIGluaXQ9RmFsc2UpKFNvbWV0aGluZ0Zyb21Tb21lb25lRWxzZSkKKyAgID4+PiBTb21l
dGhpbmdGcm9tU29tZW9uZUVsc2UoMSkKKyAgIFNvbWV0aGluZ0Zyb21Tb21lb25lRWxzZSh4PTEp
CisKKworYFN1YmNsYXNzaW5nIGlzIGJhZCBmb3IgeW91IDxodHRwczovL3d3dy55b3V0dWJlLmNv
bS93YXRjaD92PTNNTlZQOS1oZ2xjPmBfLCBidXQgYGBhdHRyc2BgIHdpbGwgc3RpbGwgZG8gd2hh
dCB5b3UnZCBob3BlIGZvcjoKKworLi4gZG9jdGVzdDo6CisKKyAgID4+PiBAYXR0ci5zCisgICAu
Li4gY2xhc3MgQShvYmplY3QpOgorICAgLi4uICAgICBhID0gYXR0ci5pYigpCisgICAuLi4gICAg
IGRlZiBnZXRfYShzZWxmKToKKyAgIC4uLiAgICAgICAgIHJldHVybiBzZWxmLmEKKyAgID4+PiBA
YXR0ci5zCisgICAuLi4gY2xhc3MgQihvYmplY3QpOgorICAgLi4uICAgICBiID0gYXR0ci5pYigp
CisgICA+Pj4gQGF0dHIucworICAgLi4uIGNsYXNzIEMoQiwgQSk6CisgICAuLi4gICAgIGMgPSBh
dHRyLmliKCkKKyAgID4+PiBpID0gQygxLCAyLCAzKQorICAgPj4+IGkKKyAgIEMoYT0xLCBiPTIs
IGM9MykKKyAgID4+PiBpID09IEMoMSwgMiwgMykKKyAgIFRydWUKKyAgID4+PiBpLmdldF9hKCkK
KyAgIDEKKworVGhlIG9yZGVyIG9mIHRoZSBhdHRyaWJ1dGVzIGlzIGRlZmluZWQgYnkgdGhlIGBN
Uk8gPGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvZG93bmxvYWQvcmVsZWFzZXMvMi4zL21yby8+YF8u
CisKK0luIFB5dGhvbiAzLCBjbGFzc2VzIGRlZmluZWQgd2l0aGluIG90aGVyIGNsYXNzZXMgYXJl
IGBkZXRlY3RlZCA8aHR0cHM6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAtMzE1NS8+YF8g
YW5kIHJlZmxlY3RlZCBpbiB0aGUgYGBfX3JlcHJfX2BgLgorSW4gUHl0aG9uIDIgdGhvdWdoLCBp
dCdzIGltcG9zc2libGUuCitUaGVyZWZvcmUgYGBAYXR0ci5zYGAgY29tZXMgd2l0aCB0aGUgYGBy
ZXByX25zYGAgb3B0aW9uIHRvIHNldCBpdCBtYW51YWxseToKKworLi4gZG9jdGVzdDo6CisKKyAg
ID4+PiBAYXR0ci5zCisgICAuLi4gY2xhc3MgQyhvYmplY3QpOgorICAgLi4uICAgICBAYXR0ci5z
KHJlcHJfbnM9IkMiKQorICAgLi4uICAgICBjbGFzcyBEKG9iamVjdCk6CisgICAuLi4gICAgICAg
ICBwYXNzCisgICA+Pj4gQy5EKCkKKyAgIEMuRCgpCisKK2BgcmVwcl9uc2BgIHdvcmtzIG9uIGJv
dGggUHl0aG9uIDIgYW5kIDMuCitPbiBQeXRob24gMyBpdCBvdmVycmlkZXMgdGhlIGltcGxpY2l0
IGRldGVjdGlvbi4KKworCisuLiBfYXNkaWN0OgorCitDb252ZXJ0aW5nIHRvIENvbGxlY3Rpb25z
IFR5cGVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1doZW4geW91IGhhdmUg
YSBjbGFzcyB3aXRoIGRhdGEsIGl0IG9mdGVuIGlzIHZlcnkgY29udmVuaWVudCB0byB0cmFuc2Zv
cm0gdGhhdCBjbGFzcyBpbnRvIGEgOmNsYXNzOmBkaWN0YCAoZm9yIGV4YW1wbGUgaWYgeW91IHdh
bnQgdG8gc2VyaWFsaXplIGl0IHRvIEpTT04pOgorCisuLiBkb2N0ZXN0OjoKKworICAgPj4+IGF0
dHIuYXNkaWN0KENvb3JkaW5hdGVzKHg9MSwgeT0yKSkKKyAgIHsneCc6IDEsICd5JzogMn0KKwor
U29tZSBmaWVsZHMgY2Fubm90IG9yIHNob3VsZCBub3QgYmUgdHJhbnNmb3JtZWQuCitGb3IgdGhh
dCwgOmZ1bmM6YGF0dHIuYXNkaWN0YCBvZmZlcnMgYSBjYWxsYmFjayB0aGF0IGRlY2lkZXMgd2hl
dGhlciBhbiBhdHRyaWJ1dGUgc2hvdWxkIGJlIGluY2x1ZGVkOgorCisuLiBkb2N0ZXN0OjoKKwor
ICAgPj4+IEBhdHRyLnMKKyAgIC4uLiBjbGFzcyBVc2VyTGlzdChvYmplY3QpOgorICAgLi4uICAg
ICB1c2VycyA9IGF0dHIuaWIoKQorICAgPj4+IEBhdHRyLnMKKyAgIC4uLiBjbGFzcyBVc2VyKG9i
amVjdCk6CisgICAuLi4gICAgIGVtYWlsID0gYXR0ci5pYigpCisgICAuLi4gICAgIHBhc3N3b3Jk
ID0gYXR0ci5pYigpCisgICA+Pj4gYXR0ci5hc2RpY3QoVXNlckxpc3QoW1VzZXIoImphbmVAZG9l
LmludmFsaWQiLCAiczMza3JlZCIpLAorICAgLi4uICAgICAgICAgICAgICAgICAgICAgICBVc2Vy
KCJqb2VAZG9lLmludmFsaWQiLCAicDRzc3cwcmQiKV0pLAorICAgLi4uICAgICAgICAgICAgIGZp
bHRlcj1sYW1iZGEgYXR0ciwgdmFsdWU6IGF0dHIubmFtZSAhPSAicGFzc3dvcmQiKQorICAgeyd1
c2Vycyc6IFt7J2VtYWlsJzogJ2phbmVAZG9lLmludmFsaWQnfSwgeydlbWFpbCc6ICdqb2VAZG9l
LmludmFsaWQnfV19CisKK0ZvciB0aGUgY29tbW9uIGNhc2Ugd2hlcmUgeW91IHdhbnQgdG8gOmZ1
bmM6YGluY2x1ZGUgPGF0dHIuZmlsdGVycy5pbmNsdWRlPmAgb3IgOmZ1bmM6YGV4Y2x1ZGUgPGF0
dHIuZmlsdGVycy5leGNsdWRlPmAgY2VydGFpbiB0eXBlcyBvciBhdHRyaWJ1dGVzLCBgYGF0dHJz
YGAgc2hpcHMgd2l0aCBhIGZldyBoZWxwZXJzOgorCisuLiBkb2N0ZXN0OjoKKworICAgPj4+IEBh
dHRyLnMKKyAgIC4uLiBjbGFzcyBVc2VyKG9iamVjdCk6CisgICAuLi4gICAgIGxvZ2luID0gYXR0
ci5pYigpCisgICAuLi4gICAgIHBhc3N3b3JkID0gYXR0ci5pYigpCisgICAuLi4gICAgIGlkID0g
YXR0ci5pYigpCisgICA+Pj4gYXR0ci5hc2RpY3QoCisgICAuLi4gICAgIFVzZXIoImphbmUiLCAi
czMza3JlZCIsIDQyKSwKKyAgIC4uLiAgICAgZmlsdGVyPWF0dHIuZmlsdGVycy5leGNsdWRlKGF0
dHIuZmllbGRzKFVzZXIpLnBhc3N3b3JkLCBpbnQpKQorICAgeydsb2dpbic6ICdqYW5lJ30KKyAg
ID4+PiBAYXR0ci5zCisgICAuLi4gY2xhc3MgQyhvYmplY3QpOgorICAgLi4uICAgICB4ID0gYXR0
ci5pYigpCisgICAuLi4gICAgIHkgPSBhdHRyLmliKCkKKyAgIC4uLiAgICAgeiA9IGF0dHIuaWIo
KQorICAgPj4+IGF0dHIuYXNkaWN0KEMoImZvbyIsICIyIiwgMyksCisgICAuLi4gICAgICAgICAg
ICAgZmlsdGVyPWF0dHIuZmlsdGVycy5pbmNsdWRlKGludCwgYXR0ci5maWVsZHMoQykueCkpCisg
ICB7J3gnOiAnZm9vJywgJ3onOiAzfQorCitPdGhlciB0aW1lcywgYWxsIHlvdSB3YW50IGlzIGEg
dHVwbGUgYW5kIGBgYXR0cnNgYCB3b24ndCBsZXQgeW91IGRvd246CisKKy4uIGRvY3Rlc3Q6Ogor
CisgICA+Pj4gaW1wb3J0IHNxbGl0ZTMKKyAgID4+PiBpbXBvcnQgYXR0cgorICAgPj4+IEBhdHRy
LnMKKyAgIC4uLiBjbGFzcyBGb286CisgICAuLi4gICAgYSA9IGF0dHIuaWIoKQorICAgLi4uICAg
IGIgPSBhdHRyLmliKCkKKyAgID4+PiBmb28gPSBGb28oMiwgMykKKyAgID4+PiB3aXRoIHNxbGl0
ZTMuY29ubmVjdCgiOm1lbW9yeToiKSBhcyBjb25uOgorICAgLi4uICAgIGMgPSBjb25uLmN1cnNv
cigpCisgICAuLi4gICAgYy5leGVjdXRlKCJDUkVBVEUgVEFCTEUgZm9vICh4IElOVEVHRVIgUFJJ
TUFSWSBLRVkgQVNDLCB5KSIpICNkb2N0ZXN0OiArRUxMSVBTSVMKKyAgIC4uLiAgICBjLmV4ZWN1
dGUoIklOU0VSVCBJTlRPIGZvbyBWQUxVRVMgKD8sID8pIiwgYXR0ci5hc3R1cGxlKGZvbykpICNk
b2N0ZXN0OiArRUxMSVBTSVMKKyAgIC4uLiAgICBmb28yID0gRm9vKCpjLmV4ZWN1dGUoIlNFTEVD
VCB4LCB5IEZST00gZm9vIikuZmV0Y2hvbmUoKSkKKyAgIDxzcWxpdGUzLkN1cnNvciBvYmplY3Qg
YXQgLi4uPgorICAgPHNxbGl0ZTMuQ3Vyc29yIG9iamVjdCBhdCAuLi4+CisgICA+Pj4gZm9vID09
IGZvbzIKKyAgIFRydWUKKworCisKKworRGVmYXVsdHMKKy0tLS0tLS0tCisKK1NvbWV0aW1lcyB5
b3Ugd2FudCB0byBoYXZlIGRlZmF1bHQgdmFsdWVzIGZvciB5b3VyIGluaXRpYWxpemVyLgorQW5k
IHNvbWV0aW1lcyB5b3UgZXZlbiB3YW50IG11dGFibGUgb2JqZWN0cyBhcyBkZWZhdWx0IHZhbHVl
cyAoZXZlciB1c2VkIGFjY2lkZW50YWxseSBgYGRlZiBmKGFyZz1bXSlgYD8pLgorYGBhdHRyc2Bg
IGhhcyB5b3UgY292ZXJlZCBpbiBib3RoIGNhc2VzOgorCisuLiBkb2N0ZXN0OjoKKworICAgPj4+
IGltcG9ydCBjb2xsZWN0aW9ucworICAgPj4+IEBhdHRyLnMKKyAgIC4uLiBjbGFzcyBDb25uZWN0
aW9uKG9iamVjdCk6CisgICAuLi4gICAgIHNvY2tldCA9IGF0dHIuaWIoKQorICAgLi4uICAgICBA
Y2xhc3NtZXRob2QKKyAgIC4uLiAgICAgZGVmIGNvbm5lY3QoY2xzLCBkYl9zdHJpbmcpOgorICAg
Li4uICAgICAgICAjIC4uLiBjb25uZWN0IHNvbWVob3cgdG8gZGJfc3RyaW5nIC4uLgorICAgLi4u
ICAgICAgICByZXR1cm4gY2xzKHNvY2tldD00MikKKyAgID4+PiBAYXR0ci5zCisgICAuLi4gY2xh
c3MgQ29ubmVjdGlvblBvb2wob2JqZWN0KToKKyAgIC4uLiAgICAgZGJfc3RyaW5nID0gYXR0ci5p
YigpCisgICAuLi4gICAgIHBvb2wgPSBhdHRyLmliKGRlZmF1bHQ9YXR0ci5GYWN0b3J5KGNvbGxl
Y3Rpb25zLmRlcXVlKSkKKyAgIC4uLiAgICAgZGVidWcgPSBhdHRyLmliKGRlZmF1bHQ9RmFsc2Up
CisgICAuLi4gICAgIGRlZiBnZXRfY29ubmVjdGlvbihzZWxmKToKKyAgIC4uLiAgICAgICAgIHRy
eToKKyAgIC4uLiAgICAgICAgICAgICByZXR1cm4gc2VsZi5wb29sLnBvcCgpCisgICAuLi4gICAg
ICAgICBleGNlcHQgSW5kZXhFcnJvcjoKKyAgIC4uLiAgICAgICAgICAgICBpZiBzZWxmLmRlYnVn
OgorICAgLi4uICAgICAgICAgICAgICAgICBwcmludCgiTmV3IGNvbm5lY3Rpb24hIikKKyAgIC4u
LiAgICAgICAgICAgICByZXR1cm4gQ29ubmVjdGlvbi5jb25uZWN0KHNlbGYuZGJfc3RyaW5nKQor
ICAgLi4uICAgICBkZWYgZnJlZV9jb25uZWN0aW9uKHNlbGYsIGNvbm4pOgorICAgLi4uICAgICAg
ICAgaWYgc2VsZi5kZWJ1ZzoKKyAgIC4uLiAgICAgICAgICAgICBwcmludCgiQ29ubmVjdGlvbiBy
ZXR1cm5lZCEiKQorICAgLi4uICAgICAgICAgc2VsZi5wb29sLmFwcGVuZGxlZnQoY29ubikKKyAg
IC4uLgorICAgPj4+IGNwID0gQ29ubmVjdGlvblBvb2woInBvc3RncmVzOi8vbG9jYWxob3N0IikK
KyAgID4+PiBjcAorICAgQ29ubmVjdGlvblBvb2woZGJfc3RyaW5nPSdwb3N0Z3JlczovL2xvY2Fs
aG9zdCcsIHBvb2w9ZGVxdWUoW10pLCBkZWJ1Zz1GYWxzZSkKKyAgID4+PiBjb25uID0gY3AuZ2V0
X2Nvbm5lY3Rpb24oKQorICAgPj4+IGNvbm4KKyAgIENvbm5lY3Rpb24oc29ja2V0PTQyKQorICAg
Pj4+IGNwLmZyZWVfY29ubmVjdGlvbihjb25uKQorICAgPj4+IGNwCisgICBDb25uZWN0aW9uUG9v
bChkYl9zdHJpbmc9J3Bvc3RncmVzOi8vbG9jYWxob3N0JywgcG9vbD1kZXF1ZShbQ29ubmVjdGlv
bihzb2NrZXQ9NDIpXSksIGRlYnVnPUZhbHNlKQorCitNb3JlIGluZm9ybWF0aW9uIG9uIHdoeSBj
bGFzcyBtZXRob2RzIGZvciBjb25zdHJ1Y3Rpbmcgb2JqZWN0cyBhcmUgYXdlc29tZSBjYW4gYmUg
Zm91bmQgaW4gdGhpcyBpbnNpZ2h0ZnVsIGBibG9nIHBvc3QgPGh0dHA6Ly9hcy55bmNocm9uby51
cy8yMDE0LzEyL2FzeW5jaHJvbm91cy1vYmplY3QtaW5pdGlhbGl6YXRpb24uaHRtbD5gXy4KKwor
RGVmYXVsdCBmYWN0b3JpZXMgY2FuIGFsc28gYmUgc2V0IHVzaW5nIGEgZGVjb3JhdG9yLgorVGhl
IG1ldGhvZCByZWNlaXZlcyB0aGUgcGFydGlhbGx5IGluaXRpYWxpemVkIGluc3RhbmNlIHdoaWNo
IGVuYWJsZXMgeW91IHRvIGJhc2UgYSBkZWZhdWx0IHZhbHVlIG9uIG90aGVyIGF0dHJpYnV0ZXM6
CisKKy4uIGRvY3Rlc3Q6OgorCisgICA+Pj4gQGF0dHIucworICAgLi4uIGNsYXNzIEMob2JqZWN0
KToKKyAgIC4uLiAgICAgeCA9IGF0dHIuaWIoZGVmYXVsdD0xKQorICAgLi4uICAgICB5ID0gYXR0
ci5pYigpCisgICAuLi4gICAgIEB5LmRlZmF1bHQKKyAgIC4uLiAgICAgZGVmIG5hbWVfZG9lc19u
b3RfbWF0dGVyKHNlbGYpOgorICAgLi4uICAgICAgICAgcmV0dXJuIHNlbGYueCArIDEKKyAgID4+
PiBDKCkKKyAgIEMoeD0xLCB5PTIpCisKKworLi4gX2V4YW1wbGVzX3ZhbGlkYXRvcnM6CisKK1Zh
bGlkYXRvcnMKKy0tLS0tLS0tLS0KKworQWx0aG91Z2ggeW91ciBpbml0aWFsaXplcnMgc2hvdWxk
IGRvIGFzIGxpdHRsZSBhcyBwb3NzaWJsZSAoaWRlYWxseToganVzdCBpbml0aWFsaXplIHlvdXIg
aW5zdGFuY2UgYWNjb3JkaW5nIHRvIHRoZSBhcmd1bWVudHMhKSwgaXQgY2FuIGNvbWUgaW4gaGFu
ZHkgdG8gZG8gc29tZSBraW5kIG9mIHZhbGlkYXRpb24gb24gdGhlIGFyZ3VtZW50cy4KKworYGBh
dHRyc2BgIG9mZmVycyB0d28gd2F5cyB0byBkZWZpbmUgdmFsaWRhdG9ycyBmb3IgZWFjaCBhdHRy
aWJ1dGUgYW5kIGl0J3MgdXAgdG8geW91IHRvIGNob29zZSB3aGljaCBvbmUgc3VpdGVzIGJldHRl
ciB5b3VyIHN0eWxlIGFuZCBwcm9qZWN0LgorCisKK0RlY29yYXRvcgorfn5+fn5+fn5+CisKK1Ro
ZSBtb3JlIHN0cmFpZ2h0Zm9yd2FyZCB3YXkgaXMgYnkgdXNpbmcgdGhlIGF0dHJpYnV0ZSdzIGBg
dmFsaWRhdG9yYGAgbWV0aG9kIGFzIGEgZGVjb3JhdG9yLgorVGhlIG1ldGhvZCBoYXMgdG8gYWNj
ZXB0IHRocmVlIGFyZ3VtZW50czoKKworIy4gdGhlICppbnN0YW5jZSogdGhhdCdzIGJlaW5nIHZh
bGlkYXRlZCAoYWthIGBgc2VsZmBgKSwKKyMuIHRoZSAqYXR0cmlidXRlKiB0aGF0IGl0J3MgdmFs
aWRhdGluZywgYW5kIGZpbmFsbHkKKyMuIHRoZSAqdmFsdWUqIHRoYXQgaXMgcGFzc2VkIGZvciBp
dC4KKworSWYgdGhlIHZhbHVlIGRvZXMgbm90IHBhc3MgdGhlIHZhbGlkYXRvcidzIHN0YW5kYXJk
cywgaXQganVzdCByYWlzZXMgYW4gYXBwcm9wcmlhdGUgZXhjZXB0aW9uLgorCisuLiBkb2N0ZXN0
OjoKKworICAgPj4+IEBhdHRyLnMKKyAgIC4uLiBjbGFzcyBDKG9iamVjdCk6CisgICAuLi4gICAg
IHggPSBhdHRyLmliKCkKKyAgIC4uLiAgICAgQHgudmFsaWRhdG9yCisgICAuLi4gICAgIGRlZiBj
aGVjayhzZWxmLCBhdHRyaWJ1dGUsIHZhbHVlKToKKyAgIC4uLiAgICAgICAgIGlmIHZhbHVlID4g
NDI6CisgICAuLi4gICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigieCBtdXN0IGJlIHNtYWxs
ZXIgb3IgZXF1YWwgdG8gNDIiKQorICAgPj4+IEMoNDIpCisgICBDKHg9NDIpCisgICA+Pj4gQyg0
MykKKyAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgIC4uLgorICAg
VmFsdWVFcnJvcjogeCBtdXN0IGJlIHNtYWxsZXIgb3IgZXF1YWwgdG8gNDIKKworCitDYWxsYWJs
ZXMKK35+fn5+fn5+fgorCitJZiB5b3Ugd2FudCB0byByZS11c2UgeW91ciB2YWxpZGF0b3JzLCB5
b3Ugc2hvdWxkIGhhdmUgYSBsb29rIGF0IHRoZSBgYHZhbGlkYXRvcmBgIGFyZ3VtZW50IHRvIDpm
dW5jOmBhdHRyLmliKClgLgorCitJdCB0YWtlcyBlaXRoZXIgYSBjYWxsYWJsZSBvciBhIGxpc3Qg
b2YgY2FsbGFibGVzICh1c3VhbGx5IGZ1bmN0aW9ucykgYW5kIHRyZWF0cyB0aGVtIGFzIHZhbGlk
YXRvcnMgdGhhdCByZWNlaXZlIHRoZSBzYW1lIGFyZ3VtZW50cyBhcyB3aXRoIHRoZSBkZWNvcmF0
b3IgYXBwcm9hY2guCisKK1NpbmNlIHRoZSB2YWxpZGF0b3JzIHJ1bnMgKmFmdGVyKiB0aGUgaW5z
dGFuY2UgaXMgaW5pdGlhbGl6ZWQsIHlvdSBjYW4gcmVmZXIgdG8gb3RoZXIgYXR0cmlidXRlcyB3
aGlsZSB2YWxpZGF0aW5nOgorCisuLiBkb2N0ZXN0OjoKKworICAgPj4+IGRlZiB4X3NtYWxsZXJf
dGhhbl95KGluc3RhbmNlLCBhdHRyaWJ1dGUsIHZhbHVlKToKKyAgIC4uLiAgICAgaWYgdmFsdWUg
Pj0gaW5zdGFuY2UueToKKyAgIC4uLiAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIid4JyBoYXMg
dG8gYmUgc21hbGxlciB0aGFuICd5JyEiKQorICAgPj4+IEBhdHRyLnMKKyAgIC4uLiBjbGFzcyBD
KG9iamVjdCk6CisgICAuLi4gICAgIHggPSBhdHRyLmliKHZhbGlkYXRvcj1bYXR0ci52YWxpZGF0
b3JzLmluc3RhbmNlX29mKGludCksCisgICAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
eF9zbWFsbGVyX3RoYW5feV0pCisgICAuLi4gICAgIHkgPSBhdHRyLmliKCkKKyAgID4+PiBDKHg9
MywgeT00KQorICAgQyh4PTMsIHk9NCkKKyAgID4+PiBDKHg9NCwgeT0zKQorICAgVHJhY2ViYWNr
IChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgLi4uCisgICBWYWx1ZUVycm9yOiAneCcg
aGFzIHRvIGJlIHNtYWxsZXIgdGhhbiAneSchCisKK1RoaXMgZXhhbXBsZSBhbHNvIHNob3dzIG9m
IHNvbWUgc3ludGFjdGljIHN1Z2FyIGZvciB1c2luZyB0aGUgOmZ1bmM6YGF0dHIudmFsaWRhdG9y
cy5hbmRfYCB2YWxpZGF0b3I6IGlmIHlvdSBwYXNzIGEgbGlzdCwgYWxsIHZhbGlkYXRvcnMgaGF2
ZSB0byBwYXNzLgorCitgYGF0dHJzYGAgd29uJ3QgaW50ZXJjZXB0IHlvdXIgY2hhbmdlcyB0byB0
aG9zZSBhdHRyaWJ1dGVzIGJ1dCB5b3UgY2FuIGFsd2F5cyBjYWxsIDpmdW5jOmBhdHRyLnZhbGlk
YXRlYCBvbiBhbnkgaW5zdGFuY2UgdG8gdmVyaWZ5IHRoYXQgaXQncyBzdGlsbCB2YWxpZDoKKwor
Li4gZG9jdGVzdDo6CisKKyAgID4+PiBpID0gQyg0LCA1KQorICAgPj4+IGkueCA9IDUgICMgd29y
a3MsIG5vIG1hZ2ljIGhlcmUKKyAgID4+PiBhdHRyLnZhbGlkYXRlKGkpCisgICBUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAuLi4KKyAgIFZhbHVlRXJyb3I6ICd4JyBo
YXMgdG8gYmUgc21hbGxlciB0aGFuICd5JyEKKworYGBhdHRyc2BgIHNoaXBzIHdpdGggYSBidW5j
aCBvZiB2YWxpZGF0b3JzLCBtYWtlIHN1cmUgdG8gOnJlZjpgY2hlY2sgdGhlbSBvdXQgPGFwaV92
YWxpZGF0b3JzPmAgYmVmb3JlIHdyaXRpbmcgeW91ciBvd246CisKKy4uIGRvY3Rlc3Q6OgorCisg
ICA+Pj4gQGF0dHIucworICAgLi4uIGNsYXNzIEMob2JqZWN0KToKKyAgIC4uLiAgICAgeCA9IGF0
dHIuaWIodmFsaWRhdG9yPWF0dHIudmFsaWRhdG9ycy5pbnN0YW5jZV9vZihpbnQpKQorICAgPj4+
IEMoNDIpCisgICBDKHg9NDIpCisgICA+Pj4gQygiNDIiKQorICAgVHJhY2ViYWNrIChtb3N0IHJl
Y2VudCBjYWxsIGxhc3QpOgorICAgICAgLi4uCisgICBUeXBlRXJyb3I6ICgiJ3gnIG11c3QgYmUg
PHR5cGUgJ2ludCc+IChnb3QgJzQyJyB0aGF0IGlzIGEgPHR5cGUgJ3N0cic+KS4iLCBBdHRyaWJ1
dGUobmFtZT0neCcsIGRlZmF1bHQ9Tk9USElORywgZmFjdG9yeT1OT1RISU5HLCB2YWxpZGF0b3I9
PGluc3RhbmNlX29mIHZhbGlkYXRvciBmb3IgdHlwZSA8dHlwZSAnaW50Jz4+LCB0eXBlPU5vbmUp
LCA8dHlwZSAnaW50Jz4sICc0MicpCisKK09mIGNvdXJzZSB5b3UgY2FuIG1peCBhbmQgbWF0Y2gg
dGhlIHR3byBhcHByb2FjaGVzIGF0IHlvdXIgY29udmVuaWVuY2U6CisKKy4uIGRvY3Rlc3Q6Ogor
CisgICA+Pj4gQGF0dHIucworICAgLi4uIGNsYXNzIEMob2JqZWN0KToKKyAgIC4uLiAgICAgeCA9
IGF0dHIuaWIodmFsaWRhdG9yPWF0dHIudmFsaWRhdG9ycy5pbnN0YW5jZV9vZihpbnQpKQorICAg
Li4uICAgICBAeC52YWxpZGF0b3IKKyAgIC4uLiAgICAgZGVmIGZpdHNfYnl0ZShzZWxmLCBhdHRy
aWJ1dGUsIHZhbHVlKToKKyAgIC4uLiAgICAgICAgIGlmIG5vdCAwIDwgdmFsdWUgPCAyNTY6Cisg
ICAuLi4gICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidmFsdWUgb3V0IG9mIGJvdW5kcyIp
CisgICA+Pj4gQygxMjgpCisgICBDKHg9MTI4KQorICAgPj4+IEMoIjEyOCIpCisgICBUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAuLi4KKyAgIFR5cGVFcnJvcjogKCIn
eCcgbXVzdCBiZSA8Y2xhc3MgJ2ludCc+IChnb3QgJzEyOCcgdGhhdCBpcyBhIDxjbGFzcyAnc3Ry
Jz4pLiIsIEF0dHJpYnV0ZShuYW1lPSd4JywgZGVmYXVsdD1OT1RISU5HLCB2YWxpZGF0b3I9Wzxp
bnN0YW5jZV9vZiB2YWxpZGF0b3IgZm9yIHR5cGUgPGNsYXNzICdpbnQnPj4sIDxmdW5jdGlvbiBm
aXRzX2J5dGUgYXQgMHgxMGZkN2EwZDA+XSwgcmVwcj1UcnVlLCBjbXA9VHJ1ZSwgaGFzaD1UcnVl
LCBpbml0PVRydWUsIGNvbnZlcnQ9Tm9uZSwgbWV0YWRhdGE9bWFwcGluZ3Byb3h5KHt9KSwgdHlw
ZT1Ob25lKSwgPGNsYXNzICdpbnQnPiwgJzEyOCcpCisgICA+Pj4gQygyNTYpCisgICBUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAuLi4KKyAgIFZhbHVlRXJyb3I6IHZh
bHVlIG91dCBvZiBib3VuZHMKKworQW5kIGZpbmFsbHkgeW91IGNhbiBkaXNhYmxlIHZhbGlkYXRv
cnMgZ2xvYmFsbHk6CisKKyAgID4+PiBhdHRyLnNldF9ydW5fdmFsaWRhdG9ycyhGYWxzZSkKKyAg
ID4+PiBDKCIxMjgiKQorICAgQyh4PScxMjgnKQorICAgPj4+IGF0dHIuc2V0X3J1bl92YWxpZGF0
b3JzKFRydWUpCisgICA+Pj4gQygiMTI4IikKKyAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2Fs
bCBsYXN0KToKKyAgICAgIC4uLgorICAgVHlwZUVycm9yOiAoIid4JyBtdXN0IGJlIDxjbGFzcyAn
aW50Jz4gKGdvdCAnMTI4JyB0aGF0IGlzIGEgPGNsYXNzICdzdHInPikuIiwgQXR0cmlidXRlKG5h
bWU9J3gnLCBkZWZhdWx0PU5PVEhJTkcsIHZhbGlkYXRvcj1bPGluc3RhbmNlX29mIHZhbGlkYXRv
ciBmb3IgdHlwZSA8Y2xhc3MgJ2ludCc+PiwgPGZ1bmN0aW9uIGZpdHNfYnl0ZSBhdCAweDEwZmQ3
YTBkMD5dLCByZXByPVRydWUsIGNtcD1UcnVlLCBoYXNoPVRydWUsIGluaXQ9VHJ1ZSwgY29udmVy
dD1Ob25lLCBtZXRhZGF0YT1tYXBwaW5ncHJveHkoe30pLCB0eXBlPU5vbmUpLCA8Y2xhc3MgJ2lu
dCc+LCAnMTI4JykKKworCitDb252ZXJzaW9uCistLS0tLS0tLS0tCisKK0F0dHJpYnV0ZXMgY2Fu
IGhhdmUgYSBgYGNvbnZlcnRgYCBmdW5jdGlvbiBzcGVjaWZpZWQsIHdoaWNoIHdpbGwgYmUgY2Fs
bGVkIHdpdGggdGhlIGF0dHJpYnV0ZSdzIHBhc3NlZC1pbiB2YWx1ZSB0byBnZXQgYSBuZXcgdmFs
dWUgdG8gdXNlLgorVGhpcyBjYW4gYmUgdXNlZnVsIGZvciBkb2luZyB0eXBlLWNvbnZlcnNpb25z
IG9uIHZhbHVlcyB0aGF0IHlvdSBkb24ndCB3YW50IHRvIGZvcmNlIHlvdXIgY2FsbGVycyB0byBk
by4KKworLi4gZG9jdGVzdDo6CisKKyAgICA+Pj4gQGF0dHIucworICAgIC4uLiBjbGFzcyBDKG9i
amVjdCk6CisgICAgLi4uICAgICB4ID0gYXR0ci5pYihjb252ZXJ0PWludCkKKyAgICA+Pj4gbyA9
IEMoIjEiKQorICAgID4+PiBvLngKKyAgICAxCisKK0NvbnZlcnRlcnMgYXJlIHJ1biAqYmVmb3Jl
KiB2YWxpZGF0b3JzLCBzbyB5b3UgY2FuIHVzZSB2YWxpZGF0b3JzIHRvIGNoZWNrIHRoZSBmaW5h
bCBmb3JtIG9mIHRoZSB2YWx1ZS4KKworLi4gZG9jdGVzdDo6CisKKyAgICA+Pj4gZGVmIHZhbGlk
YXRlX3goaW5zdGFuY2UsIGF0dHJpYnV0ZSwgdmFsdWUpOgorICAgIC4uLiAgICAgaWYgdmFsdWUg
PCAwOgorICAgIC4uLiAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInggbXVzdCBiZSBiZSBhdCBs
ZWFzdCAwLiIpCisgICAgPj4+IEBhdHRyLnMKKyAgICAuLi4gY2xhc3MgQyhvYmplY3QpOgorICAg
IC4uLiAgICAgeCA9IGF0dHIuaWIoY29udmVydD1pbnQsIHZhbGlkYXRvcj12YWxpZGF0ZV94KQor
ICAgID4+PiBvID0gQygiMCIpCisgICAgPj4+IG8ueAorICAgIDAKKyAgICA+Pj4gQygiLTEiKQor
ICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgLi4uCisgICAg
VmFsdWVFcnJvcjogeCBtdXN0IGJlIGJlIGF0IGxlYXN0IDAuCisKKworLi4gX21ldGFkYXRhOgor
CitNZXRhZGF0YQorLS0tLS0tLS0KKworQWxsIGBgYXR0cnNgYCBhdHRyaWJ1dGVzIG1heSBpbmNs
dWRlIGFyYml0cmFyeSBtZXRhZGF0YSBpbiB0aGUgZm9ybSBvZiBhIHJlYWQtb25seSBkaWN0aW9u
YXJ5LgorCisuLiBkb2N0ZXN0OjoKKworICAgID4+PiBAYXR0ci5zCisgICAgLi4uIGNsYXNzIEMo
b2JqZWN0KToKKyAgICAuLi4gICAgeCA9IGF0dHIuaWIobWV0YWRhdGE9eydteV9tZXRhZGF0YSc6
IDF9KQorICAgID4+PiBhdHRyLmZpZWxkcyhDKS54Lm1ldGFkYXRhCisgICAgbWFwcGluZ3Byb3h5
KHsnbXlfbWV0YWRhdGEnOiAxfSkKKyAgICA+Pj4gYXR0ci5maWVsZHMoQykueC5tZXRhZGF0YVsn
bXlfbWV0YWRhdGEnXQorICAgIDEKKworTWV0YWRhdGEgaXMgbm90IHVzZWQgYnkgYGBhdHRyc2Bg
LCBhbmQgaXMgbWVhbnQgdG8gZW5hYmxlIHJpY2ggZnVuY3Rpb25hbGl0eSBpbiB0aGlyZC1wYXJ0
eSBsaWJyYXJpZXMuCitUaGUgbWV0YWRhdGEgZGljdGlvbmFyeSBmb2xsb3dzIHRoZSBub3JtYWwg
ZGljdGlvbmFyeSBydWxlczoga2V5cyBuZWVkIHRvIGJlIGhhc2hhYmxlLCBhbmQgYm90aCBrZXlz
IGFuZCB2YWx1ZXMgYXJlIHJlY29tbWVuZGVkIHRvIGJlIGltbXV0YWJsZS4KKworSWYgeW91J3Jl
IHRoZSBhdXRob3Igb2YgYSB0aGlyZC1wYXJ0eSBsaWJyYXJ5IHdpdGggYGBhdHRyc2BgIGludGVn
cmF0aW9uLCBwbGVhc2Ugc2VlIDpyZWY6YEV4dGVuZGluZyBNZXRhZGF0YSA8ZXh0ZW5kaW5nX21l
dGFkYXRhPmAuCisKKworVHlwZXMKKy0tLS0tCisKK2BgYXR0cnNgYCBhbHNvIGFsbG93cyB5b3Ug
dG8gYXNzb2NpYXRlIGEgdHlwZSB3aXRoIGFuIGF0dHJpYnV0ZSB1c2luZyBlaXRoZXIgdGhlICp0
eXBlKiBhcmd1bWVudCB0byA6ZnVuYzpgYXR0ci5pYmAgb3IgLS0gYXMgb2YgUHl0aG9uIDMuNiAt
LSB1c2luZyBgUEVQIDUyNiA8aHR0cHM6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAtMDUy
Ni8+YF8tYW5ub3RhdGlvbnM6CisKKworLi4gZG9jdGVzdDo6CisKKyAgID4+PiBAYXR0ci5zCisg
ICAuLi4gY2xhc3MgQzoKKyAgIC4uLiAgICAgeCA9IGF0dHIuaWIodHlwZT1pbnQpCisgICAuLi4g
ICAgIHk6IGludCA9IGF0dHIuaWIoKQorICAgPj4+IGF0dHIuZmllbGRzKEMpLngudHlwZQorICAg
PGNsYXNzICdpbnQnPgorICAgPj4+IGF0dHIuZmllbGRzKEMpLnkudHlwZQorICAgPGNsYXNzICdp
bnQnPgorCitJZiB5b3UgZG9uJ3QgbWluZCBhbm5vdGF0aW5nICphbGwqIGF0dHJpYnV0ZXMsIHlv
dSBjYW4gZXZlbiBkcm9wIHRoZSA6ZnVuYzpgYXR0ci5pYmAgYW5kIGFzc2lnbiBkZWZhdWx0IHZh
bHVlcyBpbnN0ZWFkOgorCisuLiBkb2N0ZXN0OjoKKworICAgPj4+IGltcG9ydCB0eXBpbmcKKyAg
ID4+PiBAYXR0ci5zKGF1dG9fYXR0cmlicz1UcnVlKQorICAgLi4uIGNsYXNzIEF1dG9DOgorICAg
Li4uICAgICBjbHNfdmFyOiB0eXBpbmcuQ2xhc3NWYXJbaW50XSA9IDUgICMgdGhpcyBvbmUgaXMg
aWdub3JlZAorICAgLi4uICAgICBsOiB0eXBpbmcuTGlzdFtpbnRdID0gYXR0ci5GYWN0b3J5KGxp
c3QpCisgICAuLi4gICAgIHg6IGludCA9IDEKKyAgIC4uLiAgICAgZm9vOiBzdHIgPSBhdHRyLmli
KAorICAgLi4uICAgICAgICAgIGRlZmF1bHQ9ImV2ZXJ5IGF0dHJpYiBuZWVkcyBhIHR5cGUgaWYg
YXV0b19hdHRyaWJzPVRydWUiCisgICAuLi4gICAgICkKKyAgIC4uLiAgICAgYmFyOiB0eXBpbmcu
QW55ID0gTm9uZQorICAgPj4+IGF0dHIuZmllbGRzKEF1dG9DKS5sLnR5cGUKKyAgIHR5cGluZy5M
aXN0W2ludF0KKyAgID4+PiBhdHRyLmZpZWxkcyhBdXRvQykueC50eXBlCisgICA8Y2xhc3MgJ2lu
dCc+CisgICA+Pj4gYXR0ci5maWVsZHMoQXV0b0MpLmZvby50eXBlCisgICA8Y2xhc3MgJ3N0cic+
CisgICA+Pj4gYXR0ci5maWVsZHMoQXV0b0MpLmJhci50eXBlCisgICB0eXBpbmcuQW55CisgICA+
Pj4gQXV0b0MoKQorICAgQXV0b0MobD1bXSwgeD0xLCBmb289J2V2ZXJ5IGF0dHJpYiBuZWVkcyBh
IHR5cGUgaWYgYXV0b19hdHRyaWJzPVRydWUnLCBiYXI9Tm9uZSkKKyAgID4+PiBBdXRvQy5jbHNf
dmFyCisgICA1CisKKworLi4gd2FybmluZzo6CisKKyAgIGBgYXR0cnNgYCBpdHNlbGYgZG9lc24n
dCBoYXZlIGFueSBmZWF0dXJlcyB0aGF0IHdvcmsgb24gdG9wIG9mIHR5cGUgbWV0YWRhdGEgKnll
dCouCisgICBIb3dldmVyIGl0J3MgdXNlZnVsIGZvciB3cml0aW5nIHlvdXIgb3duIHZhbGlkYXRv
cnMgb3Igc2VyaWFsaXphdGlvbiBmcmFtZXdvcmtzLgorCisKKy4uIF9zbG90czoKKworU2xvdHMK
Ky0tLS0tCisKK0J5IGRlZmF1bHQsIGluc3RhbmNlcyBvZiBjbGFzc2VzIGhhdmUgYSBkaWN0aW9u
YXJ5IGZvciBhdHRyaWJ1dGUgc3RvcmFnZS4KK1RoaXMgd2FzdGVzIHNwYWNlIGZvciBvYmplY3Rz
IGhhdmluZyB2ZXJ5IGZldyBkYXRhIGF0dHJpYnV0ZXMuCitUaGUgc3BhY2UgY29uc3VtcHRpb24g
Y2FuIGJlY29tZSBzaWduaWZpY2FudCB3aGVuIGNyZWF0aW5nIGxhcmdlIG51bWJlcnMgb2YgaW5z
dGFuY2VzLgorCitOb3JtYWwgUHl0aG9uIGNsYXNzZXMgY2FuIGF2b2lkIHVzaW5nIGEgc2VwYXJh
dGUgZGljdGlvbmFyeSBmb3IgZWFjaCBpbnN0YW5jZSBvZiBhIGNsYXNzIGJ5IGBkZWZpbmluZyA8
aHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy9yZWZlcmVuY2UvZGF0YW1vZGVsLmh0bWwjc2xvdHM+
YF8gYGBfX3Nsb3RzX19gYC4KK0ZvciBgYGF0dHJzYGAgY2xhc3NlcyBpdCdzIGVub3VnaCB0byBz
ZXQgYGBzbG90cz1UcnVlYGA6CisKKy4uIGRvY3Rlc3Q6OgorCisgICA+Pj4gQGF0dHIucyhzbG90
cz1UcnVlKQorICAgLi4uIGNsYXNzIENvb3JkaW5hdGVzKG9iamVjdCk6CisgICAuLi4gICAgIHgg
PSBhdHRyLmliKCkKKyAgIC4uLiAgICAgeSA9IGF0dHIuaWIoKQorCisKKy4uIG5vdGU6OgorCisg
ICAgYGBhdHRyc2BgIHNsb3QgY2xhc3NlcyBjYW4gaW5oZXJpdCBmcm9tIG90aGVyIGNsYXNzZXMg
anVzdCBsaWtlIG5vbi1zbG90IGNsYXNzZXMsIGJ1dCBzb21lIG9mIHRoZSBiZW5lZml0cyBvZiBz
bG90IGNsYXNzZXMgYXJlIGxvc3QgaWYgeW91IGRvIHRoYXQuCisgICAgSWYgeW91IG11c3QgaW5o
ZXJpdCBmcm9tIG90aGVyIGNsYXNzZXMsIHRyeSB0byBpbmhlcml0IG9ubHkgZnJvbSBvdGhlciBz
bG90IGNsYXNzZXMuCisKK1Nsb3QgY2xhc3NlcyBhcmUgYSBsaXR0bGUgZGlmZmVyZW50IHRoYW4g
b3JkaW5hcnksIGRpY3Rpb25hcnktYmFja2VkIGNsYXNzZXM6CisKKy0gQXNzaWduaW5nIHRvIGEg
bm9uLWV4aXN0ZW50IGF0dHJpYnV0ZSBvZiBhbiBpbnN0YW5jZSB3aWxsIHJlc3VsdCBpbiBhbiBg
YEF0dHJpYnV0ZUVycm9yYGAgYmVpbmcgcmFpc2VkLgorICBEZXBlbmRpbmcgb24geW91ciBuZWVk
cywgdGhpcyBtaWdodCBiZSBhIGdvb2QgdGhpbmcgc2luY2UgaXQgd2lsbCBsZXQgeW91IGNhdGNo
IHR5cG9zIGVhcmx5LgorICBUaGlzIGlzIG5vdCB0aGUgY2FzZSBpZiB5b3VyIGNsYXNzIGluaGVy
aXRzIGZyb20gYW55IG5vbi1zbG90IGNsYXNzZXMuCisKKyAgLi4gZG9jdGVzdDo6CisKKyAgICAg
Pj4+IEBhdHRyLnMoc2xvdHM9VHJ1ZSkKKyAgICAgLi4uIGNsYXNzIENvb3JkaW5hdGVzKG9iamVj
dCk6CisgICAgIC4uLiAgICAgeCA9IGF0dHIuaWIoKQorICAgICAuLi4gICAgIHkgPSBhdHRyLmli
KCkKKyAgICAgLi4uCisgICAgID4+PiBjID0gQ29vcmRpbmF0ZXMoeD0xLCB5PTIpCisgICAgID4+
PiBjLnogPSAzCisgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAg
ICAgIC4uLgorICAgICBBdHRyaWJ1dGVFcnJvcjogJ0Nvb3JkaW5hdGVzJyBvYmplY3QgaGFzIG5v
IGF0dHJpYnV0ZSAneicKKworLSBTaW5jZSBub24tc2xvdCBjbGFzc2VzIGNhbm5vdCBiZSB0dXJu
ZWQgaW50byBzbG90IGNsYXNzZXMgYWZ0ZXIgdGhleSBoYXZlIGJlZW4gY3JlYXRlZCwgYGBhdHRy
LnMoc2xvdHM9VHJ1ZSlgYCB3aWxsICpyZXBsYWNlKiB0aGUgY2xhc3MgaXQgaXMgYXBwbGllZCB0
byB3aXRoIGEgY29weS4KKyAgSW4gYWxtb3N0IGFsbCBjYXNlcyB0aGlzIGlzbid0IGEgcHJvYmxl
bSwgYnV0IHdlIG1lbnRpb24gaXQgZm9yIHRoZSBzYWtlIG9mIGNvbXBsZXRlbmVzcy4KKworICAq
IE9uZSBub3RhYmxlIHByb2JsZW0gaXMgdGhhdCBjZXJ0YWluIG1ldGFjbGFzcyBmZWF0dXJlcyBs
aWtlIGBgX19pbml0X3N1YmNsYXNzX19gYCBkbyBub3Qgd29yayB3aXRoIHNsb3QgY2xhc3Nlcy4K
KworLSBVc2luZyA6bW9kOmBwaWNrbGVgIHdpdGggc2xvdCBjbGFzc2VzIHJlcXVpcmVzIHBpY2ts
ZSBwcm90b2NvbCAyIG9yIGdyZWF0ZXIuCisgIFB5dGhvbiAyIHVzZXMgcHJvdG9jb2wgMCBieSBk
ZWZhdWx0IHNvIHRoZSBwcm90b2NvbCBuZWVkcyB0byBiZSBzcGVjaWZpZWQuCisgIFB5dGhvbiAz
IHVzZXMgcHJvdG9jb2wgMyBieSBkZWZhdWx0LgorICBZb3UgY2FuIHN1cHBvcnQgcHJvdG9jb2wg
MCBhbmQgMSBieSBpbXBsZW1lbnRpbmcgOm1ldGg6YF9fZ2V0c3RhdGVfXyA8b2JqZWN0Ll9fZ2V0
c3RhdGVfXz5gIGFuZCA6bWV0aDpgX19zZXRzdGF0ZV9fIDxvYmplY3QuX19zZXRzdGF0ZV9fPmAg
bWV0aG9kcyB5b3Vyc2VsZi4KKyAgVGhvc2UgbWV0aG9kcyBhcmUgY3JlYXRlZCBmb3IgZnJvemVu
IHNsb3QgY2xhc3NlcyBiZWNhdXNlIHRoZXkgd29uJ3QgcGlja2xlIG90aGVyd2lzZS4KKyAgYFRo
aW5rIHR3aWNlIDxodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTdLbmZHRGFqRFF3PmBf
IGJlZm9yZSB1c2luZyA6bW9kOmBwaWNrbGVgIHRob3VnaC4KKworLSBBcyBhbHdheXMgd2l0aCBz
bG90IGNsYXNzZXMsIHlvdSBtdXN0IHNwZWNpZnkgYSBgYF9fd2Vha3JlZl9fYGAgc2xvdCBpZiB5
b3Ugd2lzaCBmb3IgdGhlIGNsYXNzIHRvIGJlIHdlYWstcmVmZXJlbmNlYWJsZS4KKyAgSGVyZSdz
IGhvdyBpdCBsb29rcyB1c2luZyBgYGF0dHJzYGA6CisKKyAgLi4gZG9jdGVzdDo6CisKKyAgICA+
Pj4gaW1wb3J0IHdlYWtyZWYKKyAgICA+Pj4gQGF0dHIucyhzbG90cz1UcnVlKQorICAgIC4uLiBj
bGFzcyBDKG9iamVjdCk6CisgICAgLi4uICAgICBfX3dlYWtyZWZfXyA9IGF0dHIuaWIoaW5pdD1G
YWxzZSwgaGFzaD1GYWxzZSwgcmVwcj1GYWxzZSwgY21wPUZhbHNlKQorICAgIC4uLiAgICAgeCA9
IGF0dHIuaWIoKQorICAgID4+PiBjID0gQygxKQorICAgID4+PiB3ZWFrcmVmLnJlZihjKQorICAg
IDx3ZWFrcmVmIGF0IDB4Li4uOyB0byAnQycgYXQgMHguLi4+CisKK0FsbCBpbiBhbGwsIHNldHRp
bmcgYGBzbG90cz1UcnVlYGAgaXMgdXN1YWxseSBhIHZlcnkgZ29vZCBpZGVhLgorCisKK0ltbXV0
YWJpbGl0eQorLS0tLS0tLS0tLS0tCisKK1NvbWV0aW1lcyB5b3UgaGF2ZSBpbnN0YW5jZXMgdGhh
dCBzaG91bGRuJ3QgYmUgY2hhbmdlZCBhZnRlciBpbnN0YW50aWF0aW9uLgorSW1tdXRhYmlsaXR5
IGlzIGVzcGVjaWFsbHkgcG9wdWxhciBpbiBmdW5jdGlvbmFsIHByb2dyYW1taW5nIGFuZCBpcyBn
ZW5lcmFsbHkgYSB2ZXJ5IGdvb2QgdGhpbmcuCitJZiB5b3UnZCBsaWtlIHRvIGVuZm9yY2UgaXQs
IGBgYXR0cnNgYCB3aWxsIHRyeSB0byBoZWxwOgorCisuLiBkb2N0ZXN0OjoKKworICAgPj4+IEBh
dHRyLnMoZnJvemVuPVRydWUpCisgICAuLi4gY2xhc3MgQyhvYmplY3QpOgorICAgLi4uICAgICB4
ID0gYXR0ci5pYigpCisgICA+Pj4gaSA9IEMoMSkKKyAgID4+PiBpLnggPSAyCisgICBUcmFjZWJh
Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAuLi4KKyAgIGF0dHIuZXhjZXB0aW9u
cy5Gcm96ZW5JbnN0YW5jZUVycm9yOiBjYW4ndCBzZXQgYXR0cmlidXRlCisgICA+Pj4gaS54Cisg
ICAxCisKK1BsZWFzZSBub3RlIHRoYXQgdHJ1ZSBpbW11dGFiaWxpdHkgaXMgaW1wb3NzaWJsZSBp
biBQeXRob24gYnV0IGl0IHdpbGwgOnJlZjpgZ2V0IDxob3ctZnJvemVuPmAgeW91IDk5JSB0aGVy
ZS4KK0J5IHRoZW1zZWx2ZXMsIGltbXV0YWJsZSBjbGFzc2VzIGFyZSB1c2VmdWwgZm9yIGxvbmct
bGl2ZWQgb2JqZWN0cyB0aGF0IHNob3VsZCBuZXZlciBjaGFuZ2U7IGxpa2UgY29uZmlndXJhdGlv
bnMgZm9yIGV4YW1wbGUuCisKK0luIG9yZGVyIHRvIHVzZSB0aGVtIGluIHJlZ3VsYXIgcHJvZ3Jh
bSBmbG93LCB5b3UnbGwgbmVlZCBhIHdheSB0byBlYXNpbHkgY3JlYXRlIG5ldyBpbnN0YW5jZXMg
d2l0aCBjaGFuZ2VkIGF0dHJpYnV0ZXMuCitJbiBDbG9qdXJlIHRoYXQgZnVuY3Rpb24gaXMgY2Fs
bGVkIGBhc3NvYyA8aHR0cHM6Ly9jbG9qdXJlZG9jcy5vcmcvY2xvanVyZS5jb3JlL2Fzc29jPmBf
IGFuZCBgYGF0dHJzYGAgc2hhbWVsZXNzbHkgaW1pdGF0ZXMgaXQ6IDpmdW5jOmBhdHRyLmV2b2x2
ZWA6CisKKy4uIGRvY3Rlc3Q6OgorCisgICA+Pj4gQGF0dHIucyhmcm96ZW49VHJ1ZSkKKyAgIC4u
LiBjbGFzcyBDKG9iamVjdCk6CisgICAuLi4gICAgIHggPSBhdHRyLmliKCkKKyAgIC4uLiAgICAg
eSA9IGF0dHIuaWIoKQorICAgPj4+IGkxID0gQygxLCAyKQorICAgPj4+IGkxCisgICBDKHg9MSwg
eT0yKQorICAgPj4+IGkyID0gYXR0ci5ldm9sdmUoaTEsIHk9MykKKyAgID4+PiBpMgorICAgQyh4
PTEsIHk9MykKKyAgID4+PiBpMSA9PSBpMgorICAgRmFsc2UKKworCitPdGhlciBHb29kaWVzCist
LS0tLS0tLS0tLS0tCisKK1NvbWV0aW1lcyB5b3UgbWF5IHdhbnQgdG8gY3JlYXRlIGEgY2xhc3Mg
cHJvZ3JhbW1hdGljYWxseS4KK2BgYXR0cnNgYCB3b24ndCBsZXQgeW91IGRvd24gYW5kIGdpdmVz
IHlvdSA6ZnVuYzpgYXR0ci5tYWtlX2NsYXNzYCA6CisKKy4uIGRvY3Rlc3Q6OgorCisgICA+Pj4g
QGF0dHIucworICAgLi4uIGNsYXNzIEMxKG9iamVjdCk6CisgICAuLi4gICAgIHggPSBhdHRyLmli
KCkKKyAgIC4uLiAgICAgeSA9IGF0dHIuaWIoKQorICAgPj4+IEMyID0gYXR0ci5tYWtlX2NsYXNz
KCJDMiIsIFsieCIsICJ5Il0pCisgICA+Pj4gYXR0ci5maWVsZHMoQzEpID09IGF0dHIuZmllbGRz
KEMyKQorICAgVHJ1ZQorCitZb3UgY2FuIHN0aWxsIGhhdmUgcG93ZXIgb3ZlciB0aGUgYXR0cmli
dXRlcyBpZiB5b3UgcGFzcyBhIGRpY3Rpb25hcnkgb2YgbmFtZTogYGBhdHRyLmliYGAgbWFwcGlu
Z3MgYW5kIGNhbiBwYXNzIGFyZ3VtZW50cyB0byBgYEBhdHRyLnNgYDoKKworLi4gZG9jdGVzdDo6
CisKKyAgID4+PiBDID0gYXR0ci5tYWtlX2NsYXNzKCJDIiwgeyJ4IjogYXR0ci5pYihkZWZhdWx0
PTQyKSwKKyAgIC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ5IjogYXR0ci5pYihkZWZh
dWx0PWF0dHIuRmFjdG9yeShsaXN0KSl9LAorICAgLi4uICAgICAgICAgICAgICAgICAgICAgcmVw
cj1GYWxzZSkKKyAgID4+PiBpID0gQygpCisgICA+Pj4gaSAgIyBubyByZXByIGFkZGVkIQorICAg
PF9fbWFpbl9fLkMgb2JqZWN0IGF0IC4uLj4KKyAgID4+PiBpLngKKyAgIDQyCisgICA+Pj4gaS55
CisgICBbXQorCitJZiB5b3UgbmVlZCB0byBkeW5hbWljYWxseSBtYWtlIGEgY2xhc3Mgd2l0aCA6
ZnVuYzpgYXR0ci5tYWtlX2NsYXNzYCBhbmQgaXQgbmVlZHMgdG8gYmUgYSBzdWJjbGFzcyBvZiBz
b21ldGhpbmcgZWxzZSB0aGFuIGBgb2JqZWN0YGAsIHVzZSB0aGUgYGBiYXNlc2BgIGFyZ3VtZW50
OgorCisuLiBkb2N0ZXN0OjoKKworICA+Pj4gY2xhc3MgRChvYmplY3QpOgorICAuLi4gICAgZGVm
IF9fZXFfXyhzZWxmLCBvdGhlcik6CisgIC4uLiAgICAgICAgcmV0dXJuIFRydWUgICMgYXJiaXRy
YXJ5IGV4YW1wbGUKKyAgPj4+IEMgPSBhdHRyLm1ha2VfY2xhc3MoIkMiLCB7fSwgYmFzZXM9KEQs
KSwgY21wPUZhbHNlKQorICA+Pj4gaXNpbnN0YW5jZShDKCksIEQpCisgIFRydWUKKworU29tZXRp
bWVzLCB5b3Ugd2FudCB0byBoYXZlIHlvdXIgY2xhc3MncyBgYF9faW5pdF9fYGAgbWV0aG9kIGRv
IG1vcmUgdGhhbiBqdXN0Cit0aGUgaW5pdGlhbGl6YXRpb24sIHZhbGlkYXRpb24sIGV0Yy4gdGhh
dCBnZXRzIGRvbmUgZm9yIHlvdSBhdXRvbWF0aWNhbGx5IHdoZW4KK3VzaW5nIGBgQGF0dHIuc2Bg
LgorVG8gZG8gdGhpcywganVzdCBkZWZpbmUgYSBgYF9fYXR0cnNfcG9zdF9pbml0X19gYCBtZXRo
b2QgaW4geW91ciBjbGFzcy4KK0l0IHdpbGwgZ2V0IGNhbGxlZCBhdCB0aGUgZW5kIG9mIHRoZSBn
ZW5lcmF0ZWQgYGBfX2luaXRfX2BgIG1ldGhvZC4KKworLi4gZG9jdGVzdDo6CisKKyAgID4+PiBA
YXR0ci5zCisgICAuLi4gY2xhc3MgQyhvYmplY3QpOgorICAgLi4uICAgICB4ID0gYXR0ci5pYigp
CisgICAuLi4gICAgIHkgPSBhdHRyLmliKCkKKyAgIC4uLiAgICAgeiA9IGF0dHIuaWIoaW5pdD1G
YWxzZSkKKyAgIC4uLgorICAgLi4uICAgICBkZWYgX19hdHRyc19wb3N0X2luaXRfXyhzZWxmKToK
KyAgIC4uLiAgICAgICAgIHNlbGYueiA9IHNlbGYueCArIHNlbGYueQorICAgPj4+IG9iaiA9IEMo
eD0xLCB5PTIpCisgICA+Pj4gb2JqCisgICBDKHg9MSwgeT0yLCB6PTMpCisKK0ZpbmFsbHksIHlv
dSBjYW4gZXhjbHVkZSBzaW5nbGUgYXR0cmlidXRlcyBmcm9tIGNlcnRhaW4gbWV0aG9kczoKKwor
Li4gZG9jdGVzdDo6CisKKyAgID4+PiBAYXR0ci5zCisgICAuLi4gY2xhc3MgQyhvYmplY3QpOgor
ICAgLi4uICAgICB1c2VyID0gYXR0ci5pYigpCisgICAuLi4gICAgIHBhc3N3b3JkID0gYXR0ci5p
YihyZXByPUZhbHNlKQorICAgPj4+IEMoIm1lIiwgInMza3IzdCIpCisgICBDKHVzZXI9J21lJykK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9leHRlbmRpbmcucnN0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9k
b2NzL2V4dGVuZGluZy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQ2MGVlOWI4YzBmNGMxYzA4YTRiMjc3ODMy
YzUzYWY4MDg5Mzk3MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9leHRlbmRp
bmcucnN0CkBAIC0wLDAgKzEsMTEyIEBACisuLiBfZXh0ZW5kaW5nOgorCitFeHRlbmRpbmcKKz09
PT09PT09PQorCitFYWNoIGBgYXR0cnNgYC1kZWNvcmF0ZWQgY2xhc3MgaGFzIGEgYGBfX2F0dHJz
X2F0dHJzX19gYCBjbGFzcyBhdHRyaWJ1dGUuCitJdCBpcyBhIHR1cGxlIG9mIDpjbGFzczpgYXR0
ci5BdHRyaWJ1dGVgIGNhcnJ5aW5nIG1ldGEtZGF0YSBhYm91dCBlYWNoIGF0dHJpYnV0ZS4KKwor
U28gaXQgaXMgZmFpcmx5IHNpbXBsZSB0byBidWlsZCB5b3VyIG93biBkZWNvcmF0b3JzIG9uIHRv
cCBvZiBgYGF0dHJzYGA6CisKKy4uIGRvY3Rlc3Q6OgorCisgICA+Pj4gaW1wb3J0IGF0dHIKKyAg
ID4+PiBkZWYgcHJpbnRfYXR0cnMoY2xzKToKKyAgIC4uLiAgICAgcHJpbnQoY2xzLl9fYXR0cnNf
YXR0cnNfXykKKyAgID4+PiBAcHJpbnRfYXR0cnMKKyAgIC4uLiBAYXR0ci5zCisgICAuLi4gY2xh
c3MgQyhvYmplY3QpOgorICAgLi4uICAgICBhID0gYXR0ci5pYigpCisgICAoQXR0cmlidXRlKG5h
bWU9J2EnLCBkZWZhdWx0PU5PVEhJTkcsIHZhbGlkYXRvcj1Ob25lLCByZXByPVRydWUsIGNtcD1U
cnVlLCBoYXNoPU5vbmUsIGluaXQ9VHJ1ZSwgY29udmVydD1Ob25lLCBtZXRhZGF0YT1tYXBwaW5n
cHJveHkoe30pLCB0eXBlPU5vbmUpLCkKKworCisuLiB3YXJuaW5nOjoKKworICAgVGhlIDpmdW5j
OmBhdHRyLnNgIGRlY29yYXRvciAqKm11c3QqKiBiZSBhcHBsaWVkIGZpcnN0IGJlY2F1c2UgaXQg
cHV0cyBgYF9fYXR0cnNfYXR0cnNfX2BgIGluIHBsYWNlIQorICAgVGhhdCBtZWFucyB0aGF0IGlz
IGhhcyB0byBjb21lICphZnRlciogeW91ciBkZWNvcmF0b3IgYmVjYXVzZTo6CisKKyAgICAgIEBh
CisgICAgICBAYgorICAgICAgZGVmIGYoKToKKyAgICAgICAgIHBhc3MKKworICAgaXMganVzdCBg
c3ludGFjdGljIHN1Z2FyIDxodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TeW50YWN0aWNf
c3VnYXI+YF8gZm9yOjoKKworICAgICAgZGVmIG9yaWdpbmFsX2YoKToKKyAgICAgICAgIHBhc3MK
KworICAgICAgZiA9IGEoYihvcmlnaW5hbF9mKSkKKworCitXcmFwcGluZyB0aGUgRGVjb3JhdG9y
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0EgbW9yZSBlbGVnYW50IHdheSBjYW4gYmUgdG8g
d3JhcCBgYGF0dHJzYGAgYWx0b2dldGhlciBhbmQgYnVpbGQgYSBjbGFzcyBgRFNMIDxodHRwczov
L2VuLndpa2lwZWRpYS5vcmcvd2lraS9Eb21haW4tc3BlY2lmaWNfbGFuZ3VhZ2U+YF8gb24gdG9w
IG9mIGl0LgorCitBbiBleGFtcGxlIGZvciB0aGF0IGlzIHRoZSBwYWNrYWdlIGBlbnZpcm9uX2Nv
bmZpZyA8aHR0cHM6Ly9naXRodWIuY29tL2h5bmVrL2Vudmlyb25fY29uZmlnPmBfIHRoYXQgdXNl
cyBgYGF0dHJzYGAgdW5kZXIgdGhlIGhvb2QgdG8gZGVmaW5lIGVudmlyb25tZW50LWJhc2VkIGNv
bmZpZ3VyYXRpb25zIGRlY2xhcmF0aXZlbHkgd2l0aG91dCBleHBvc2luZyBgYGF0dHJzYGAgQVBJ
cyBhdCBhbGwuCisKKworVHlwZXMKKy0tLS0tCisKK2BgYXR0cnNgYCBvZmZlcnMgdHdvIHdheXMg
b2YgYXR0YWNoaW5nIHR5cGUgaW5mb3JtYXRpb24gdG8gYXR0cmlidXRlczoKKworLSBgUEVQIDUy
NiA8aHR0cHM6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAtMDUyNi8+YF8gYW5ub3RhdGlv
bnMgb24gUHl0aG9uIDMuNiBhbmQgbGF0ZXIsCistIGFuZCB0aGUgKnR5cGUqIGFyZ3VtZW50IHRv
IDpmdW5jOmBhdHRyLmliYC4KKworVGhpcyBpbmZvcm1hdGlvbiBpcyBhdmFpbGFibGUgdG8geW91
OgorCisuLiBkb2N0ZXN0OjoKKworICAgPj4+IGltcG9ydCBhdHRyCisgICA+Pj4gQGF0dHIucwor
ICAgLi4uIGNsYXNzIEMob2JqZWN0KToKKyAgIC4uLiAgICAgeDogaW50ID0gYXR0ci5pYigpCisg
ICAuLi4gICAgIHkgPSBhdHRyLmliKHR5cGU9c3RyKQorICAgPj4+IGF0dHIuZmllbGRzKEMpLngu
dHlwZQorICAgPGNsYXNzICdpbnQnPgorICAgPj4+IGF0dHIuZmllbGRzKEMpLnkudHlwZQorICAg
PGNsYXNzICdzdHInPgorCitDdXJyZW50bHksIGBgYXR0cnNgYCBkb2Vzbid0IGRvIGFueXRoaW5n
IHdpdGggdGhpcyBpbmZvcm1hdGlvbiBidXQgaXQncyB2ZXJ5IHVzZWZ1bCBpZiB5b3UnZCBsaWtl
IHRvIHdyaXRlIHlvdXIgb3duIHZhbGlkYXRvcnMgb3Igc2VyaWFsaXplcnMhCisKKworLi4gX2V4
dGVuZGluZ19tZXRhZGF0YToKKworTWV0YWRhdGEKKy0tLS0tLS0tCisKK0lmIHlvdSdyZSB0aGUg
YXV0aG9yIG9mIGEgdGhpcmQtcGFydHkgbGlicmFyeSB3aXRoIGBgYXR0cnNgYCBpbnRlZ3JhdGlv
biwgeW91IG1heSB3YW50IHRvIHRha2UgYWR2YW50YWdlIG9mIGF0dHJpYnV0ZSBtZXRhZGF0YS4K
KworSGVyZSBhcmUgc29tZSB0aXBzIGZvciBlZmZlY3RpdmUgdXNlIG9mIG1ldGFkYXRhOgorCist
IFRyeSBtYWtpbmcgeW91ciBtZXRhZGF0YSBrZXlzIGFuZCB2YWx1ZXMgaW1tdXRhYmxlLgorICBU
aGlzIGtlZXBzIHRoZSBlbnRpcmUgYGBBdHRyaWJ1dGVgYCBpbnN0YW5jZXMgaW1tdXRhYmxlIHRv
by4KKworLSBUbyBhdm9pZCBtZXRhZGF0YSBrZXkgY29sbGlzaW9ucywgY29uc2lkZXIgZXhwb3Np
bmcgeW91ciBtZXRhZGF0YSBrZXlzIGZyb20geW91ciBtb2R1bGVzLjo6CisKKyAgICBmcm9tIG15
bGliIGltcG9ydCBNWV9NRVRBREFUQV9LRVkKKworICAgIEBhdHRyLnMKKyAgICBjbGFzcyBDKG9i
amVjdCk6CisgICAgICB4ID0gYXR0ci5pYihtZXRhZGF0YT17TVlfTUVUQURBVEFfS0VZOiAxfSkK
KworICBNZXRhZGF0YSBzaG91bGQgYmUgY29tcG9zYWJsZSwgc28gY29uc2lkZXIgc3VwcG9ydGlu
ZyB0aGlzIGFwcHJvYWNoIGV2ZW4gaWYgeW91IGRlY2lkZSBpbXBsZW1lbnRpbmcgeW91ciBtZXRh
ZGF0YSBpbiBvbmUgb2YgdGhlIGZvbGxvd2luZyB3YXlzLgorCistIEV4cG9zZSBgYGF0dHIuaWJg
YCB3cmFwcGVycyBmb3IgeW91ciBzcGVjaWZpYyBtZXRhZGF0YS4KKyAgVGhpcyBpcyBhIG1vcmUg
Z3JhY2VmdWwgYXBwcm9hY2ggaWYgeW91ciB1c2VycyBkb24ndCByZXF1aXJlIG1ldGFkYXRhIGZy
b20gb3RoZXIgbGlicmFyaWVzLgorCisgIC4uIGRvY3Rlc3Q6OgorCisgICAgPj4+IE1ZX1RZUEVf
TUVUQURBVEEgPSAnX19teV90eXBlX21ldGFkYXRhJworICAgID4+PgorICAgID4+PiBkZWYgdHlw
ZWQoY2xzLCBkZWZhdWx0PWF0dHIuTk9USElORywgdmFsaWRhdG9yPU5vbmUsIHJlcHI9VHJ1ZSwg
Y21wPVRydWUsIGhhc2g9Tm9uZSwgaW5pdD1UcnVlLCBjb252ZXJ0PU5vbmUsIG1ldGFkYXRhPXt9
KToKKyAgICAuLi4gICAgIG1ldGFkYXRhID0gZGljdCgpIGlmIG5vdCBtZXRhZGF0YSBlbHNlIG1l
dGFkYXRhCisgICAgLi4uICAgICBtZXRhZGF0YVtNWV9UWVBFX01FVEFEQVRBXSA9IGNscworICAg
IC4uLiAgICAgcmV0dXJuIGF0dHIuaWIoZGVmYXVsdCwgdmFsaWRhdG9yLCByZXByLCBjbXAsIGhh
c2gsIGluaXQsIGNvbnZlcnQsIG1ldGFkYXRhKQorICAgID4+PgorICAgID4+PiBAYXR0ci5zCisg
ICAgLi4uIGNsYXNzIEMob2JqZWN0KToKKyAgICAuLi4gICAgIHggPSB0eXBlZChpbnQsIGRlZmF1
bHQ9MSwgaW5pdD1GYWxzZSkKKyAgICA+Pj4gYXR0ci5maWVsZHMoQykueC5tZXRhZGF0YVtNWV9U
WVBFX01FVEFEQVRBXQorICAgIDxjbGFzcyAnaW50Jz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMv
ZG9jcy9ob3ctZG9lcy1pdC13b3JrLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9ob3ctZG9lcy1pdC13
b3JrLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jMjBiZWNkMWY3ODY5NDFjYzJiYzBhNzBmOThhMjFlYmExZjQ1
OTA2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2hvdy1kb2VzLWl0LXdvcmsu
cnN0CkBAIC0wLDAgKzEsNzkgQEAKKy4uIF9ob3c6CisKK0hvdyBEb2VzIEl0IFdvcms/Cis9PT09
PT09PT09PT09PT09PQorCisKK0JvaWxlcnBsYXRlCistLS0tLS0tLS0tLQorCitgYGF0dHJzYGAg
Y2VydGFpbmx5IGlzbid0IHRoZSBmaXJzdCBsaWJyYXJ5IHRoYXQgYWltcyB0byBzaW1wbGlmeSBj
bGFzcyBkZWZpbml0aW9uIGluIFB5dGhvbi4KK0J1dCBpdHMgKipkZWNsYXJhdGl2ZSoqIGFwcHJv
YWNoIGNvbWJpbmVkIHdpdGggKipubyBydW50aW1lIG92ZXJoZWFkKiogbGV0cyBpdCBzdGFuZCBv
dXQuCisKK09uY2UgeW91IGFwcGx5IHRoZSBgYEBhdHRyLnNgYCBkZWNvcmF0b3IgdG8gYSBjbGFz
cywgYGBhdHRyc2BgIHNlYXJjaGVzIHRoZSBjbGFzcyBvYmplY3QgZm9yIGluc3RhbmNlcyBvZiBg
YGF0dHIuaWJgYFwgcy4KK0ludGVybmFsbHkgdGhleSdyZSBhIHJlcHJlc2VudGF0aW9uIG9mIHRo
ZSBkYXRhIHBhc3NlZCBpbnRvIGBgYXR0ci5pYmBgIGFsb25nIHdpdGggYSBjb3VudGVyIHRvIHBy
ZXNlcnZlIHRoZSBvcmRlciBvZiB0aGUgYXR0cmlidXRlcy4KKworSW4gb3JkZXIgdG8gZW5zdXJl
IHRoYXQgc3ViLWNsYXNzaW5nIHdvcmtzIGFzIHlvdSdkIGV4cGVjdCBpdCB0byB3b3JrLCBgYGF0
dHJzYGAgYWxzbyB3YWxrcyB0aGUgY2xhc3MgaGllcmFyY2h5IGFuZCBjb2xsZWN0cyB0aGUgYXR0
cmlidXRlcyBvZiBhbGwgc3VwZXItY2xhc3Nlcy4KK1BsZWFzZSBub3RlIHRoYXQgYGBhdHRyc2Bg
IGRvZXMgKm5vdCogY2FsbCBgYHN1cGVyKClgYCAqZXZlciouCitJdCB3aWxsIHdyaXRlIGR1bmRl
ciBtZXRob2RzIHRvIHdvcmsgb24gKmFsbCogb2YgdGhvc2UgYXR0cmlidXRlcyB3aGljaCBhbHNv
IGhhcyBwZXJmb3JtYW5jZSBiZW5lZml0cyBkdWUgdG8gZmV3ZXIgZnVuY3Rpb24gY2FsbHMuCisK
K09uY2UgYGBhdHRyc2BgIGtub3dzIHdoYXQgYXR0cmlidXRlcyBpdCBoYXMgdG8gd29yayBvbiwg
aXQgd3JpdGVzIHRoZSByZXF1ZXN0ZWQgZHVuZGVyIG1ldGhvZHMgYW5kIC0tIGRlcGVuZGluZyBv
biB3aGV0aGVyIHlvdSB3aXNoIHRvIGhhdmUgYGBfX3Nsb3RzX19gYCAtLSBjcmVhdGVzIGEgbmV3
IGNsYXNzIGZvciB5b3UgKGBgc2xvdHM9VHJ1ZWBgKSBvciBhdHRhY2hlcyB0aGVtIHRvIHRoZSBv
cmlnaW5hbCBjbGFzcyAoYGBzbG90cz1GYWxzZWBgKS4KK1doaWxlIGNyZWF0aW5nIG5ldyBjbGFz
c2VzIGlzIG1vcmUgZWxlZ2FudCwgd2UndmUgcnVuIGludG8gc2V2ZXJhbCBlZGdlIGNhc2VzIHN1
cnJvdW5kaW5nIG1ldGFjbGFzc2VzIHRoYXQgbWFrZSBpdCBpbXBvc3NpYmxlIHRvIGdvIHRoaXMg
cm91dGUgdW5jb25kaXRpb25hbGx5LgorCitUbyBiZSB2ZXJ5IGNsZWFyOiBpZiB5b3UgZGVmaW5l
IGEgY2xhc3Mgd2l0aCBhIHNpbmdsZSBhdHRyaWJ1dGUgIHdpdGhvdXQgYSBkZWZhdWx0IHZhbHVl
LCB0aGUgZ2VuZXJhdGVkIGBgX19pbml0X19gYCB3aWxsIGxvb2sgKmV4YWN0bHkqIGhvdyB5b3Un
ZCBleHBlY3Q6CisKKy4uIGRvY3Rlc3Q6OgorCisgICA+Pj4gaW1wb3J0IGF0dHIsIGluc3BlY3QK
KyAgID4+PiBAYXR0ci5zCisgICAuLi4gY2xhc3MgQyhvYmplY3QpOgorICAgLi4uICAgICB4ID0g
YXR0ci5pYigpCisgICA+Pj4gcHJpbnQoaW5zcGVjdC5nZXRzb3VyY2UoQy5fX2luaXRfXykpCisg
ICBkZWYgX19pbml0X18oc2VsZiwgeCk6CisgICAgICAgc2VsZi54ID0geAorICAgPEJMQU5LTElO
RT4KKworTm8gbWFnaWMsIG5vIG1ldGEgcHJvZ3JhbW1pbmcsIG5vIGV4cGVuc2l2ZSBpbnRyb3Nw
ZWN0aW9uIGF0IHJ1bnRpbWUuCisKKyoqKioKKworRXZlcnl0aGluZyB1bnRpbCB0aGlzIHBvaW50
IGhhcHBlbnMgZXhhY3RseSAqb25jZSogd2hlbiB0aGUgY2xhc3MgaXMgZGVmaW5lZC4KK0FzIHNv
b24gYXMgYSBjbGFzcyBpcyBkb25lLCBpdCdzIGRvbmUuCitBbmQgaXQncyBqdXN0IGEgcmVndWxh
ciBQeXRob24gY2xhc3MgbGlrZSBhbnkgb3RoZXIsIGV4Y2VwdCBmb3IgYSBzaW5nbGUgYGBfX2F0
dHJzX2F0dHJzX19gYCBhdHRyaWJ1dGUgdGhhdCBjYW4gYmUgdXNlZCBmb3IgaW50cm9zcGVjdGlv
biBvciBmb3Igd3JpdGluZyB5b3VyIG93biB0b29scyBhbmQgZGVjb3JhdG9ycyBvbiB0b3Agb2Yg
YGBhdHRyc2BgIChsaWtlIDpmdW5jOmBhdHRyLmFzZGljdGApLgorCitBbmQgb25jZSB5b3Ugc3Rh
cnQgaW5zdGFudGlhdGluZyB5b3VyIGNsYXNzZXMsIGBgYXR0cnNgYCBpcyBvdXQgb2YgeW91ciB3
YXkgY29tcGxldGVseS4KKworVGhpcyAqKnN0YXRpYyoqIGFwcHJvYWNoIHdhcyB2ZXJ5IG11Y2gg
YSBkZXNpZ24gZ29hbCBvZiBgYGF0dHJzYGAgYW5kIHdoYXQgSSBzdHJvbmdseSBiZWxpZXZlIG1h
a2VzIGl0IGRpc3RpbmN0LgorCisKKy4uIF9ob3ctZnJvemVuOgorCitJbW11dGFiaWxpdHkKKy0t
LS0tLS0tLS0tLQorCitJbiBvcmRlciB0byBnaXZlIHlvdSBpbW11dGFiaWxpdHksIGBgYXR0cnNg
YCB3aWxsIGF0dGFjaCBhIGBgX19zZXRhdHRyX19gYCBtZXRob2QgdG8geW91ciBjbGFzcyB0aGF0
IHJhaXNlcyBhIDpleGM6YGF0dHIuZXhjZXB0aW9ucy5Gcm96ZW5JbnN0YW5jZUVycm9yYCB3aGVu
ZXZlciBhbnlvbmUgdHJpZXMgdG8gc2V0IGFuIGF0dHJpYnV0ZS4KKworVG8gY2lyY3VtdmVudCB0
aGF0IG91cnNlbHZlcyBpbiBgYF9faW5pdF9fYGAsIGBgYXR0cnNgYCB1c2VzIChhbiBhZ2dyZXNz
aXZlbHkgY2FjaGVkKSA6bWV0aDpgb2JqZWN0Ll9fc2V0YXR0cl9fYCB0byBzZXQgeW91ciBhdHRy
aWJ1dGVzLgorVGhpcyBpcyAoc3RpbGwpIHNsb3dlciB0aGFuIGEgcGxhaW4gYXNzaWdubWVudDoK
KworLi4gY29kZS1ibG9jazo6IG5vbmUKKworICAkIHB5cGVyZiB0aW1laXQgLS1yaWdvcm91cyBc
CisgICAgICAgIC1zICJpbXBvcnQgYXR0cjsgQyA9IGF0dHIubWFrZV9jbGFzcygnQycsIFsneCcs
ICd5JywgJ3onXSwgc2xvdHM9VHJ1ZSkiIFwKKyAgICAgICAgIkMoMSwgMiwgMykiCisgIC4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKyAgTWVkaWFuICstIHN0ZCBkZXY6
IDM3OCBucyArLSAxMiBucworCisgICQgcHlwZXJmIHRpbWVpdCAtLXJpZ29yb3VzIFwKKyAgICAg
ICAgLXMgImltcG9ydCBhdHRyOyBDID0gYXR0ci5tYWtlX2NsYXNzKCdDJywgWyd4JywgJ3knLCAn
eiddLCBzbG90cz1UcnVlLCBmcm96ZW49VHJ1ZSkiIFwKKyAgICAgICAgIkMoMSwgMiwgMykiCisg
IC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKyAgTWVkaWFuICstIHN0
ZCBkZXY6IDY3NiBucyArLSAxNiBucworCitTbyBvbiBhIHN0YW5kYXJkIG5vdGVib29rIHRoZSBk
aWZmZXJlbmNlIGlzIGFib3V0IDMwMCBuYW5vc2Vjb25kcyAoMSBzZWNvbmQgaXMgMSwwMDAsMDAw
LDAwMCBuYW5vc2Vjb25kcykuCitJdCdzIGNlcnRhaW5seSBzb21ldGhpbmcgeW91J2xsIGZlZWwg
aW4gYSBob3QgbG9vcCBidXQgc2hvdWxkbid0IG1hdHRlciBpbiBub3JtYWwgY29kZS4KK1BpY2sg
d2hhdCdzIG1vcmUgaW1wb3J0YW50IHRvIHlvdS4KKworKioqKgorCitPbmNlIGNvbnN0cnVjdGVk
LCBmcm96ZW4gaW5zdGFuY2VzIGRvbid0IGRpZmZlciBpbiBhbnkgd2F5IGZyb20gcmVndWxhciBv
bmVzIGV4Y2VwdCB0aGF0IHlvdSBjYW5ub3QgY2hhbmdlIGl0cyBhdHRyaWJ1dGVzLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2luZGV4LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9pbmRleC5y
c3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYmIyNGNkNzczZmI5MzM5OTRlMTJmOGMyODcyZTM0YjM4Y2JmMWMwMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9pbmRleC5yc3QKQEAgLTAsMCArMSw4
MCBAQAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK2BgYXR0cnNgYDog
Q2xhc3NlcyBXaXRob3V0IEJvaWxlcnBsYXRlCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQorCitSZWxlYXNlIHZcIHxyZWxlYXNlfCAoOmRvYzpgV2hhdCdzIG5ldz8gPGNo
YW5nZWxvZz5gKS4KKworLi4gaW5jbHVkZTo6IC4uL1JFQURNRS5yc3QKKyAgIDpzdGFydC1hZnRl
cjogdGVhc2VyLWJlZ2luCisgICA6ZW5kLWJlZm9yZTogLXNwaWVsLWVuZC0KKworCitHZXR0aW5n
IFN0YXJ0ZWQKKz09PT09PT09PT09PT09PQorCitgYGF0dHJzYGAgaXMgYSBQeXRob24tb25seSBw
YWNrYWdlIGBob3N0ZWQgb24gUHlQSSA8aHR0cHM6Ly9weXBpLm9yZy9wcm9qZWN0L2F0dHJzLz5g
Xy4KK1RoZSByZWNvbW1lbmRlZCBpbnN0YWxsYXRpb24gbWV0aG9kIGlzIGBwaXAgPGh0dHBzOi8v
cGlwLnB5cGEuaW8vZW4vc3RhYmxlLz5gXy1pbnN0YWxsaW5nIGludG8gYSBgdmlydHVhbGVudiA8
aHR0cHM6Ly9oeW5lay5tZS9hcnRpY2xlcy92aXJ0dWFsZW52LWxpdmVzLz5gXzoKKworLi4gY29k
ZS1ibG9jazo6IGNvbnNvbGUKKworICAgJCBwaXAgaW5zdGFsbCBhdHRycworCitUaGUgbmV4dCB0
aHJlZSBzdGVwcyBzaG91bGQgYnJpbmcgeW91IHVwIGFuZCBydW5uaW5nIGluIG5vIHRpbWU6CisK
Ky0gOmRvYzpgb3ZlcnZpZXdgIHdpbGwgc2hvdyB5b3UgYSBzaW1wbGUgZXhhbXBsZSBvZiBgYGF0
dHJzYGAgaW4gYWN0aW9uIGFuZCBpbnRyb2R1Y2UgeW91IHRvIGl0cyBwaGlsb3NvcGh5LgorICBB
ZnRlcndhcmRzLCB5b3UgY2FuIHN0YXJ0IHdyaXRpbmcgeW91ciBvd24gY2xhc3NlcywgdW5kZXJz
dGFuZCB3aGF0IGRyaXZlcyBgYGF0dHJzYGAncyBkZXNpZ24sIGFuZCBrbm93IHdoYXQgYGBAYXR0
ci5zYGAgYW5kIGBgYXR0ci5pYigpYGAgc3RhbmQgZm9yLgorLSA6ZG9jOmBleGFtcGxlc2Agd2ls
bCBnaXZlIHlvdSBhIGNvbXByZWhlbnNpdmUgdG91ciBvZiBgYGF0dHJzYGAncyBmZWF0dXJlcy4K
KyAgQWZ0ZXIgcmVhZGluZywgeW91IHdpbGwga25vdyBhYm91dCBvdXIgYWR2YW5jZWQgZmVhdHVy
ZXMgYW5kIGhvdyB0byB1c2UgdGhlbS4KKy0gRmluYWxseSA6ZG9jOmB3aHlgIGdpdmVzIHlvdSBh
IHJ1bmRvd24gb2YgcG90ZW50aWFsIGFsdGVybmF0aXZlcyBhbmQgd2h5IHdlIHRoaW5rIGBgYXR0
cnNgYCBpcyBzdXBlcmlvci4KKyAgWWVzLCB3ZSd2ZSBoZWFyZCBhYm91dCBgYG5hbWVkdHVwbGVg
YFwgcyEKKworCitJZiB5b3UgbmVlZCBhbnkgaGVscCB3aGlsZSBnZXR0aW5nIHN0YXJ0ZWQsIGZl
ZWwgZnJlZSB0byB1c2UgdGhlIGBgcHl0aG9uLWF0dHJzYGAgdGFnIG9uIGBTdGFja092ZXJmbG93
IDxodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy90YWdnZWQvcHl0aG9uLWF0dHJz
PmBfIGFuZCBzb21lb25lIHdpbGwgc3VyZWx5IGhlbHAgeW91IG91dCEKKworCitEYXktdG8tRGF5
IFVzYWdlCis9PT09PT09PT09PT09PT09CisKKy0gT25jZSB5b3UncmUgY29tZm9ydGFibGUgd2l0
aCB0aGUgY29uY2VwdHMsIG91ciA6ZG9jOmBhcGlgIGNvbnRhaW5zIGFsbCBpbmZvcm1hdGlvbiB5
b3UgbmVlZCB0byB1c2UgYGBhdHRyc2BgIHRvIGl0cyBmdWxsZXN0LgorLSBgYGF0dHJzYGAgaXMg
YnVpbHQgZm9yIGV4dGVuc2lvbiBmcm9tIHRoZSBncm91bmQgdXAuCisgIDpkb2M6YGV4dGVuZGlu
Z2Agd2lsbCBzaG93IHlvdSB0aGUgYWZmb3JkYW5jZXMgaXQgb2ZmZXJzIGFuZCBob3cgdG8gbWFr
ZSBpdCBhIGJ1aWxkaW5nIGJsb2NrIG9mIHlvdXIgb3duIHByb2plY3RzLgorCisKKy4uIGluY2x1
ZGU6OiAuLi9SRUFETUUucnN0CisgICA6c3RhcnQtYWZ0ZXI6IC10ZXN0aW1vbmlhbHMtCisgICA6
ZW5kLWJlZm9yZTogLWVuZC0KKworLi4gaW5jbHVkZTo6IC4uL1JFQURNRS5yc3QKKyAgIDpzdGFy
dC1hZnRlcjogLXByb2plY3QtaW5mb3JtYXRpb24tCisKKy4uIHRvY3RyZWU6OgorICAgOm1heGRl
cHRoOiAxCisKKyAgIGxpY2Vuc2UKKyAgIGJhY2t3YXJkLWNvbXBhdGliaWxpdHkKKyAgIGNvbnRy
aWJ1dGluZworICAgY2hhbmdlbG9nCisKKworLS0tLQorCisKK0Z1bGwgVGFibGUgb2YgQ29udGVu
dHMKKz09PT09PT09PT09PT09PT09PT09PT0KKworLi4gdG9jdHJlZTo6CisgICA6bWF4ZGVwdGg6
IDIKKworICAgb3ZlcnZpZXcKKyAgIHdoeQorICAgZXhhbXBsZXMKKyAgIGFwaQorICAgZXh0ZW5k
aW5nCisgICBob3ctZG9lcy1pdC13b3JrCisKKworSW5kaWNlcyBhbmQgdGFibGVzCis9PT09PT09
PT09PT09PT09PT0KKworKiA6cmVmOmBnZW5pbmRleGAKKyogOnJlZjpgc2VhcmNoYApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2xpY2Vuc2UucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2xpY2Vu
c2UucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmNlZjVmMzkzOTkzYzYzY2U2MjJlZWVhZDgwOWM2NDZkYzA1ZWY3
MzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvbGljZW5zZS5yc3QKQEAgLTAs
MCArMSw4IEBACis9PT09PT09PT09PT09PT09PT09CitMaWNlbnNlIGFuZCBDcmVkaXRzCis9PT09
PT09PT09PT09PT09PT09CisKK2BgYXR0cnNgYCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgYE1JVCA8
aHR0cHM6Ly9jaG9vc2VhbGljZW5zZS5jb20vbGljZW5zZXMvbWl0Lz5gXyBsaWNlbnNlLgorVGhl
IGZ1bGwgbGljZW5zZSB0ZXh0IGNhbiBiZSBhbHNvIGZvdW5kIGluIHRoZSBgc291cmNlIGNvZGUg
cmVwb3NpdG9yeSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9ibG9iL21h
c3Rlci9MSUNFTlNFPmBfLgorCisuLiBpbmNsdWRlOjogLi4vQVVUSE9SUy5yc3QKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYXR0cnMvZG9jcy9vdmVydmlldy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3Mvb3ZlcnZp
ZXcucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQ3YjAyMmZmMzJlYjBhY2VlMWUwYTcyZmExMGI3MzRmOGY1MmVi
YzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3Mvb3ZlcnZpZXcucnN0CkBAIC0w
LDAgKzEsODcgQEAKKz09PT09PT09CitPdmVydmlldworPT09PT09PT0KKworSW4gb3JkZXIgdG8g
ZnVsZmlsbCBpdHMgYW1iaXRpb3VzIGdvYWwgb2YgYnJpbmdpbmcgYmFjayB0aGUgam95IHRvIHdy
aXRpbmcgY2xhc3NlcywgaXQgZ2l2ZXMgeW91IGEgY2xhc3MgZGVjb3JhdG9yIGFuZCBhIHdheSB0
byBkZWNsYXJhdGl2ZWx5IGRlZmluZSB0aGUgYXR0cmlidXRlcyBvbiB0aGF0IGNsYXNzOgorCisu
LiBpbmNsdWRlOjogLi4vUkVBRE1FLnJzdAorICAgOnN0YXJ0LWFmdGVyOiAtY29kZS1iZWdpbi0K
KyAgIDplbmQtYmVmb3JlOiAtdGVzdGltb25pYWxzLQorCisKKy4uIF9waGlsb3NvcGh5OgorCitQ
aGlsb3NvcGh5Cis9PT09PT09PT09CisKKyoqSXQncyBhYm91dCByZWd1bGFyIGNsYXNzZXMuKioK
KyAgIGBgYXR0cnNgYCBpcyBmb3IgY3JlYXRpbmcgd2VsbC1iZWhhdmVkIGNsYXNzZXMgd2l0aCBh
IHR5cGUsIGF0dHJpYnV0ZXMsIG1ldGhvZHMsIGFuZCBldmVyeXRoaW5nIHRoYXQgY29tZXMgd2l0
aCBhIGNsYXNzLgorICAgSXQgY2FuIGJlIHVzZWQgZm9yIGRhdGEtb25seSBjb250YWluZXJzIGxp
a2UgYGBuYW1lZHR1cGxlYGBcIHMgb3IgYGB0eXBlcy5TaW1wbGVOYW1lc3BhY2VgYCBidXQgdGhl
eSdyZSBqdXN0IGEgc3ViLWdlbnJlIG9mIHdoYXQgYGBhdHRyc2BgIGlzIGdvb2QgZm9yLgorCisq
KlRoZSBjbGFzcyBiZWxvbmdzIHRvIHRoZSB1c2Vycy4qKgorICAgWW91IGRlZmluZSBhIGNsYXNz
IGFuZCBgYGF0dHJzYGAgYWRkcyBzdGF0aWMgbWV0aG9kcyB0byB0aGF0IGNsYXNzIGJhc2VkIG9u
IHRoZSBhdHRyaWJ1dGVzIHlvdSBkZWNsYXJlLgorICAgVGhlIGVuZC4KKyAgIEl0IGRvZXNuJ3Qg
YWRkIG1ldGFjbGFzc2VzLgorICAgSXQgZG9lc24ndCBhZGQgY2xhc3NlcyB5b3UndmUgbmV2ZXIg
aGVhcmQgb2YgdG8geW91ciBpbmhlcml0YW5jZSB0cmVlLgorICAgQW4gYGBhdHRyc2BgIGNsYXNz
IGluIHJ1bnRpbWUgaXMgaW5kaXN0aWd1aXNoYWJsZSBmcm9tIGEgcmVndWxhciBjbGFzczogYmVj
YXVzZSBpdCAqaXMqIGEgcmVndWxhciBjbGFzcyB3aXRoIGEgZmV3IGJvaWxlcnBsYXRlLXkgbWV0
aG9kcyBhdHRhY2hlZC4KKworKipCZSBsaWdodCBvbiBBUEkgaW1wYWN0LioqCisgICBBcyBjb252
ZW5pZW50IGFzIGl0IHNlZW1zIGF0IGZpcnN0LCBgYGF0dHJzYGAgd2lsbCAqbm90KiB0YWNrIG9u
IGFueSBtZXRob2RzIHRvIHlvdXIgY2xhc3NlcyBzYXZlIHRoZSBkdW5kZXIgb25lcy4KKyAgIEhl
bmNlIGFsbCB0aGUgdXNlZnVsIDpyZWY6YHRvb2xzIDxoZWxwZXJzPmAgdGhhdCBjb21lIHdpdGgg
YGBhdHRyc2BgIGxpdmUgaW4gZnVuY3Rpb25zIHRoYXQgb3BlcmF0ZSBvbiB0b3Agb2YgaW5zdGFu
Y2VzLgorICAgU2luY2UgdGhleSB0YWtlIGFuIGBgYXR0cnNgYCBpbnN0YW5jZSBhcyB0aGVpciBm
aXJzdCBhcmd1bWVudCwgeW91IGNhbiBhdHRhY2ggdGhlbSB0byB5b3VyIGNsYXNzZXMgd2l0aCBv
bmUgbGluZSBvZiBjb2RlLgorCisqKlBlcmZvcm1hbmNlIG1hdHRlcnMuKioKKyAgIGBgYXR0cnNg
YCBydW50aW1lIGltcGFjdCBpcyB2ZXJ5IGNsb3NlIHRvIHplcm8gYmVjYXVzZSBhbGwgdGhlIHdv
cmsgaXMgZG9uZSB3aGVuIHRoZSBjbGFzcyBpcyBkZWZpbmVkLgorICAgT25jZSB5b3UncmUgaW5z
dGFudGlhdGluZyBpdCwgYGBhdHRyc2BgIGlzIG91dCBvZiB0aGUgcGljdHVyZSBjb21wbGV0ZWx5
LgorCisqKk5vIHN1cnByaXNlcy4qKgorICAgYGBhdHRyc2BgIGNyZWF0ZXMgY2xhc3NlcyB0aGF0
IGFyZ3VhYmx5IHdvcmsgdGhlIHdheSBhIFB5dGhvbiBiZWdpbm5lciB3b3VsZCByZWFzb25hYmx5
IGV4cGVjdCB0aGVtIHRvIHdvcmsuCisgICBJdCBkb2Vzbid0IHRyeSB0byBndWVzcyB3aGF0IHlv
dSBtZWFuIGJlY2F1c2UgZXhwbGljaXQgaXMgYmV0dGVyIHRoYW4gaW1wbGljaXQuCisgICBJdCBk
b2Vzbid0IHRyeSB0byBiZSBjbGV2ZXIgYmVjYXVzZSBzb2Z0d2FyZSBzaG91bGRuJ3QgYmUgY2xl
dmVyLgorCitDaGVjayBvdXQgOmRvYzpgaG93LWRvZXMtaXQtd29ya2AgaWYgeW91J2QgbGlrZSB0
byBrbm93IGhvdyBpdCBhY2hpZXZlcyBhbGwgb2YgdGhlIGFib3ZlLgorCisKK1doYXQgYGBhdHRy
c2BgIElzIE5vdAorPT09PT09PT09PT09PT09PT09PT09CisKK2BgYXR0cnNgYCBkb2VzICpub3Qq
IGludmVudCBzb21lIGtpbmQgb2YgbWFnaWMgc3lzdGVtIHRoYXQgcHVsbHMgY2xhc3NlcyBvdXQg
b2YgaXRzIGhhdCB1c2luZyBtZXRhIGNsYXNzZXMsIHJ1bnRpbWUgaW50cm9zcGVjdGlvbiwgYW5k
IHNoYWt5IGludGVyZGVwZW5kZW5jaWVzLgorCitBbGwgYGBhdHRyc2BgIGRvZXMgaXM6CisKKzEu
IHRha2UgeW91ciBkZWNsYXJhdGlvbiwKKzIuIHdyaXRlIGR1bmRlciBtZXRob2RzIGJhc2VkIG9u
IHRoYXQgaW5mb3JtYXRpb24sCiszLiBhbmQgYXR0YWNoIHRoZW0gdG8geW91ciBjbGFzcy4KKwor
SXQgZG9lcyAqbm90aGluZyogZHluYW1pYyBhdCBydW50aW1lLCBoZW5jZSB6ZXJvIHJ1bnRpbWUg
b3ZlcmhlYWQuCitJdCdzIHN0aWxsICp5b3VyKiBjbGFzcy4KK0RvIHdpdGggaXQgYXMgeW91IHBs
ZWFzZS4KKworCitPbiB0aGUgYGBhdHRyLnNgYCBhbmQgYGBhdHRyLmliYGAgTmFtZXMKKz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitUaGUgYGBhdHRyLnNgYCBkZWNv
cmF0b3IgYW5kIHRoZSBgYGF0dHIuaWJgYCBmdW5jdGlvbiBhcmVuJ3QgYW55IG9ic2N1cmUgYWJi
cmV2aWF0aW9ucy4KK1RoZXkgYXJlIGEgKmNvbmNpc2UqIGFuZCBoaWdobHkgKnJlYWRhYmxlKiB3
YXkgdG8gd3JpdGUgYGBhdHRyc2BgIGFuZCBgYGF0dHJpYmBgIHdpdGggYW4gKmV4cGxpY2l0IG5h
bWVzcGFjZSouCisKK0F0IGZpcnN0LCBzb21lIHBlb3BsZSBoYXZlIGEgbmVnYXRpdmUgZ3V0IHJl
YWN0aW9uIHRvIHRoYXQ7IHJlc2VtYmxpbmcgdGhlIHJlYWN0aW9ucyB0byBQeXRob24ncyBzaWdu
aWZpY2FudCB3aGl0ZXNwYWNlLgorQW5kIGFzIHdpdGggdGhhdCwgb25jZSBvbmUgZ2V0cyB1c2Vk
IHRvIGl0LCB0aGUgcmVhZGFiaWxpdHkgYW5kIGV4cGxpY2l0bmVzcyBvZiB0aGF0IEFQSSBwcmV2
YWlscyBhbmQgZGVsaWdodHMuCisKK0ZvciB0aG9zZSB3aG8gY2FuJ3Qgc3dhbGxvdyB0aGF0IEFQ
SSBhdCBhbGwsIGBgYXR0cnNgYCBjb21lcyB3aXRoIHNlcmlvdXMgYnVzaW5lc3MgYWxpYXNlczog
YGBhdHRyLmF0dHJzYGAgYW5kIGBgYXR0ci5hdHRyaWJgYC4KKworVGhlcmVmb3JlLCB0aGUgZm9s
bG93aW5nIGNsYXNzIGRlZmluaXRpb24gaXMgaWRlbnRpY2FsIHRvIHRoZSBwcmV2aW91cyBvbmU6
CisKKy4uIGRvY3Rlc3Q6OgorCisgICA+Pj4gZnJvbSBhdHRyIGltcG9ydCBhdHRycywgYXR0cmli
LCBGYWN0b3J5CisgICA+Pj4gQGF0dHJzCisgICAuLi4gY2xhc3MgU29tZUNsYXNzKG9iamVjdCk6
CisgICAuLi4gICAgIGFfbnVtYmVyID0gYXR0cmliKGRlZmF1bHQ9NDIpCisgICAuLi4gICAgIGxp
c3Rfb2ZfbnVtYmVycyA9IGF0dHJpYihkZWZhdWx0PUZhY3RvcnkobGlzdCkpCisgICAuLi4KKyAg
IC4uLiAgICAgZGVmIGhhcmRfbWF0aChzZWxmLCBhbm90aGVyX251bWJlcik6CisgICAuLi4gICAg
ICAgICByZXR1cm4gc2VsZi5hX251bWJlciArIHN1bShzZWxmLmxpc3Rfb2ZfbnVtYmVycykgKiBh
bm90aGVyX251bWJlcgorICAgPj4+IFNvbWVDbGFzcygxLCBbMSwgMiwgM10pCisgICBTb21lQ2xh
c3MoYV9udW1iZXI9MSwgbGlzdF9vZl9udW1iZXJzPVsxLCAyLCAzXSkKKworVXNlIHdoaWNoZXZl
ciB2YXJpYW50IGZpdHMgeW91ciB0YXN0ZSBiZXR0ZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJz
L2RvY3MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvdzNjLWltcG9ydC5sb2cKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZmZiODdhZGQ4ZDY0ZjlkOTEzODM3ZmZkMzQ5YTRjODYzNWU4Mjk5NQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDMw
IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgor
CWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisK
K0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQ
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlz
dCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvTWFrZWZpbGUKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3Mv
YXBpLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9iYWNrd2FyZC1jb21wYXRpYmlsaXR5LnJzdAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvYXR0cnMvZG9jcy9jaGFuZ2Vsb2cucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2NvbmYucHkKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2F0dHJzL2RvY3MvY29udHJpYnV0aW5nLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9kb2N1dGls
cy5jb25mCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2V4YW1wbGVzLnJzdAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9l
eHRlbmRpbmcucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2hvdy1kb2VzLWl0LXdvcmsucnN0CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9hdHRycy9kb2NzL2luZGV4LnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9saWNlbnNlLnJzdAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvYXR0cnMvZG9jcy9vdmVydmlldy5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3Mvd2h5LnJzdApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL3doeS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3Mvd2h5LnJz
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45YzY0Y2I5M2M1NzFiYjc3MjEzYWZlMzc3MmFkZWQ5ZjUyMDdmOWI2Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL3doeS5yc3QKQEAgLTAsMCArMSwyNTEg
QEAKKy4uIF93aHk6CisKK1doeSBub3TigKYKKz09PT09PT09CisKKworSWYgeW91J2QgbGlrZSB0
aGlyZCBwYXJ0eSdzIGFjY291bnQgd2h5IGBgYXR0cnNgYCBpcyBncmVhdCwgaGF2ZSBhIGxvb2sg
YXQgR2x5cGgncyBgVGhlIE9uZSBQeXRob24gTGlicmFyeSBFdmVyeW9uZSBOZWVkcyA8aHR0cHM6
Ly9nbHlwaC50d2lzdGVkbWF0cml4LmNvbS8yMDE2LzA4L2F0dHJzLmh0bWw+YF8hCisKKwor4oCm
dHVwbGVzPworLS0tLS0tLS0KKworCitSZWFkYWJpbGl0eQorXl5eXl5eXl5eXl4KKworV2hhdCBt
YWtlcyBtb3JlIHNlbnNlIHdoaWxlIGRlYnVnZ2luZzo6CisKKyAgIFBvaW50KHg9MSwgeT0yKQor
Citvcjo6CisKKyAgICgxLCAyKQorCis/CisKK0xldCdzIGFkZCBldmVuIG1vcmUgYW1iaWd1aXR5
OjoKKworICAgQ3VzdG9tZXIoaWQ9NDIsIHJlc2VsbGVyPTIzLCBmaXJzdF9uYW1lPSJKYW5lIiwg
bGFzdF9uYW1lPSJKb2huIikKKworb3I6OgorCisgICAoNDIsIDIzLCAiSmFuZSIsICJKb2huIikK
KworPworCitXaHkgd291bGQgeW91IHdhbnQgdG8gd3JpdGUgYGBjdXN0b21lclsyXWBgIGluc3Rl
YWQgb2YgYGBjdXN0b21lci5maXJzdF9uYW1lYGA/CisKK0Rvbid0IGdldCBtZSBzdGFydGVkIHdo
ZW4geW91IGFkZCBuZXN0aW5nLgorSWYgeW91J3ZlIG5ldmVyIHJ1biBpbnRvIG15c3RlcmlvdXMg
dHVwbGVzIHlvdSBoYWQgbm8gaWRlYSB3aGF0IHRoZSBoZWxsIHRoZXkgbWVhbnQgd2hpbGUgZGVi
dWdnaW5nLCB5b3UncmUgbXVjaCBzbWFydGVyIHRoYW4geW91cnMgdHJ1bHkuCisKK1VzaW5nIHBy
b3BlciBjbGFzc2VzIHdpdGggbmFtZXMgYW5kIHR5cGVzIG1ha2VzIHByb2dyYW0gY29kZSBtdWNo
IG1vcmUgcmVhZGFibGUgYW5kIGNvbXByZWhlbnNpYmxlXy4KK0VzcGVjaWFsbHkgd2hlbiB0cnlp
bmcgdG8gZ3JvayBhIG5ldyBwaWVjZSBvZiBzb2Z0d2FyZSBvciByZXR1cm5pbmcgdG8gb2xkIGNv
ZGUgYWZ0ZXIgc2V2ZXJhbCBtb250aHMuCisKKy4uIF9jb21wcmVoZW5zaWJsZTogaHR0cHM6Ly9h
cnhpdi5vcmcvcGRmLzEzMDQuNTI1Ny5wZGYKKworCitFeHRlbmRhYmlsaXR5CiteXl5eXl5eXl5e
Xl5eCisKK0ltYWdpbmUgeW91IGhhdmUgYSBmdW5jdGlvbiB0aGF0IHRha2VzIG9yIHJldHVybnMg
YSB0dXBsZS4KK0VzcGVjaWFsbHkgaWYgeW91IHVzZSB0dXBsZSB1bnBhY2tpbmcgKGVnLiBgYHgs
IHkgPSBnZXRfcG9pbnQoKWBgKSwgYWRkaW5nIGFkZGl0aW9uYWwgZGF0YSBtZWFucyB0aGF0IHlv
dSBoYXZlIHRvIGNoYW5nZSB0aGUgaW52b2NhdGlvbiBvZiB0aGF0IGZ1bmN0aW9uICpldmVyeXdo
ZXJlKi4KKworQWRkaW5nIGFuIGF0dHJpYnV0ZSB0byBhIGNsYXNzIGNvbmNlcm5zIG9ubHkgdGhv
c2Ugd2hvIGFjdHVhbGx5IGNhcmUgYWJvdXQgdGhhdCBhdHRyaWJ1dGUuCisKKwor4oCmbmFtZWR0
dXBsZXM/CistLS0tLS0tLS0tLS0tCisKKzpmdW5jOmBjb2xsZWN0aW9ucy5uYW1lZHR1cGxlYFwg
cyBhcmUgdHVwbGVzIHdpdGggbmFtZXMsIG5vdCBjbGFzc2VzLiBbI2hpc3RvcnldXworU2luY2Ug
d3JpdGluZyBjbGFzc2VzIGlzIHRpcmVzb21lIGluIFB5dGhvbiwgZXZlcnkgbm93IGFuZCB0aGVu
IHNvbWVvbmUgZGlzY292ZXJzIGFsbCB0aGUgdHlwaW5nIHRoZXkgY291bGQgc2F2ZSBhbmQgZ2V0
cyByZWFsbHkgZXhjaXRlZC4KK0hvd2V2ZXIgdGhhdCBjb252ZW5pZW5jZSBjb21lcyBhdCBhIHBy
aWNlLgorCitUaGUgbW9zdCBvYnZpb3VzIGRpZmZlcmVuY2UgYmV0d2VlbiBgYG5hbWVkdHVwbGVg
YFwgcyBhbmQgYGBhdHRyc2BgLWJhc2VkIGNsYXNzZXMgaXMgdGhhdCB0aGUgbGF0dGVyIGFyZSB0
eXBlLXNlbnNpdGl2ZToKKworLi4gZG9jdGVzdDo6CisKKyAgID4+PiBpbXBvcnQgYXR0cgorICAg
Pj4+IEMxID0gYXR0ci5tYWtlX2NsYXNzKCJDMSIsIFsiYSJdKQorICAgPj4+IEMyID0gYXR0ci5t
YWtlX2NsYXNzKCJDMiIsIFsiYSJdKQorICAgPj4+IGkxID0gQzEoMSkKKyAgID4+PiBpMiA9IEMy
KDEpCisgICA+Pj4gaTEuYSA9PSBpMi5hCisgICBUcnVlCisgICA+Pj4gaTEgPT0gaTIKKyAgIEZh
bHNlCisKK+KApndoaWxlIGEgYGBuYW1lZHR1cGxlYGAgaXMgKmludGVudGlvbmFsbHkqIGBiZWhh
dmluZyBsaWtlIGEgdHVwbGVgXyB3aGljaCBtZWFucyB0aGUgdHlwZSBvZiBhIHR1cGxlIGlzICpp
Z25vcmVkKjoKKworLi4gZG9jdGVzdDo6CisKKyAgID4+PiBmcm9tIGNvbGxlY3Rpb25zIGltcG9y
dCBuYW1lZHR1cGxlCisgICA+Pj4gTlQxID0gbmFtZWR0dXBsZSgiTlQxIiwgImEiKQorICAgPj4+
IE5UMiA9IG5hbWVkdHVwbGUoIk5UMiIsICJiIikKKyAgID4+PiB0MSA9IE5UMSgxKQorICAgPj4+
IHQyID0gTlQyKDEpCisgICA+Pj4gdDEgPT0gdDIgPT0gKDEsKQorICAgVHJ1ZQorCitPdGhlciBv
ZnRlbiBzdXJwcmlzaW5nIGJlaGF2aW9ycyBpbmNsdWRlOgorCistIFNpbmNlIHRoZXkgYXJlIGEg
c3ViY2xhc3Mgb2YgdHVwbGVzLCBgYG5hbWVkdHVwbGVgYFwgcyBoYXZlIGEgbGVuZ3RoIGFuZCBh
cmUgYm90aCBpdGVyYWJsZSBhbmQgaW5kZXhhYmxlLgorICBUaGF0J3Mgbm90IHdoYXQgeW91J2Qg
ZXhwZWN0IGZyb20gYSBjbGFzcyBhbmQgaXMgbGlrZWx5IHRvIHNoYWRvdyBzdWJ0bGUgdHlwbyBi
dWdzLgorLSBJdGVyYWJpbGl0eSBhbHNvIGltcGxpZXMgdGhhdCBpdCdzIGVhc3kgdG8gYWNjaWRl
bnRhbGx5IHVucGFjayBhIGBgbmFtZWR0dXBsZWBgIHdoaWNoIGxlYWRzIHRvIGhhcmQtdG8tZmlu
ZCBidWdzLiBbI2l0ZXJdXworLSBgYG5hbWVkdHVwbGVgYFwgcyBoYXZlIHRoZWlyIG1ldGhvZHMg
Km9uIHlvdXIgaW5zdGFuY2VzKiB3aGV0aGVyIHlvdSBsaWtlIGl0IG9yIG5vdC4gWyNwb2xsdXRp
b25dXworLSBgYG5hbWVkdHVwbGVgYFwgcyBhcmUgKmFsd2F5cyogaW1tdXRhYmxlLgorICBOb3Qg
b25seSBkb2VzIHRoYXQgbWVhbiB0aGF0IHlvdSBjYW4ndCBkZWNpZGUgZm9yIHlvdXJzZWxmIHdo
ZXRoZXIgeW91ciBpbnN0YW5jZXMgc2hvdWxkIGJlIGltbXV0YWJsZSBvciBub3QsIGl0IGFsc28g
bWVhbnMgdGhhdCBpZiB5b3Ugd2FudCB0byBpbmZsdWVuY2UgeW91ciBjbGFzcycgaW5pdGlhbGl6
YXRpb24gKHZhbGlkYXRpb24/ICBkZWZhdWx0IHZhbHVlcz8pLCB5b3UgaGF2ZSB0byBpbXBsZW1l
bnQgOm1ldGg6YF9fbmV3X18oKSA8b2JqZWN0Ll9fbmV3X18+YCB3aGljaCBpcyBhIHBhcnRpY3Vs
YXJseSBoYWNreSBhbmQgZXJyb3ItcHJvbmUgcmVxdWlyZW1lbnQgZm9yIGEgdmVyeSBjb21tb24g
cHJvYmxlbS4gWyNpbW11dGFibGVdXworLSBUbyBhdHRhY2ggbWV0aG9kcyB0byBhIGBgbmFtZWR0
dXBsZWBgIHlvdSBoYXZlIHRvIHN1YmNsYXNzIGl0LgorICBBbmQgaWYgeW91IGZvbGxvdyB0aGUg
c3RhbmRhcmQgbGlicmFyeSBkb2N1bWVudGF0aW9uJ3MgcmVjb21tZW5kYXRpb24gb2Y6OgorCisg
ICAgY2xhc3MgUG9pbnQobmFtZWR0dXBsZSgnUG9pbnQnLCBbJ3gnLCAneSddKSk6CisgICAgICAg
ICMgLi4uCisKKyAgeW91IGVuZCB1cCB3aXRoIGEgY2xhc3MgdGhhdCBoYXMgKnR3byogYGBQb2lu
dGBgXCBzIGluIGl0cyA6YXR0cjpgX19tcm9fXyA8Y2xhc3MuX19tcm9fXz5gOiBgYFs8Y2xhc3Mg
J3BvaW50LlBvaW50Jz4sIDxjbGFzcyAncG9pbnQuUG9pbnQnPiwgPHR5cGUgJ3R1cGxlJz4sIDx0
eXBlICdvYmplY3QnPl1gYC4KKworICBUaGF0J3Mgbm90IG9ubHkgY29uZnVzaW5nLCBpdCBhbHNv
IGhhcyB2ZXJ5IHByYWN0aWNhbCBjb25zZXF1ZW5jZXM6CisgIGZvciBleGFtcGxlIGlmIHlvdSBj
cmVhdGUgZG9jdW1lbnRhdGlvbiB0aGF0IGluY2x1ZGVzIGNsYXNzIGhpZXJhcmNoaWVzIGxpa2Ug
YFNwaGlueCdzIGF1dG9kb2MgPGh0dHA6Ly93d3cuc3BoaW54LWRvYy5vcmcvZW4vc3RhYmxlL2V4
dC9hdXRvZG9jLmh0bWw+YF8gd2l0aCBgYHNob3ctaW5oZXJpdGFuY2VgYC4KKyAgQWdhaW46IGNv
bW1vbiBwcm9ibGVtLCBoYWNreSBzb2x1dGlvbiB3aXRoIGNvbmZ1c2luZyBmYWxsb3V0LgorCitB
bGwgdGhlc2UgdGhpbmdzIG1ha2UgYGBuYW1lZHR1cGxlYGBcIHMgYSBwYXJ0aWN1bGFybHkgcG9v
ciBjaG9pY2UgZm9yIHB1YmxpYyBBUElzIGJlY2F1c2UgYWxsIHlvdXIgb2JqZWN0cyBhcmUgaXJy
ZXZvY2FibHkgdGFpbnRlZC4KK1dpdGggYGBhdHRyc2BgIHlvdXIgdXNlcnMgd29uJ3Qgbm90aWNl
IGEgZGlmZmVyZW5jZSBiZWNhdXNlIGl0IGNyZWF0ZXMgcmVndWxhciwgd2VsbC1iZWhhdmVkIGNs
YXNzZXMuCisKKy4uIGFkbW9uaXRpb246OiBTdW1tYXJ5CisKKyAgSWYgeW91IHdhbnQgYSAqdHVw
bGUgd2l0aCBuYW1lcyosIGJ5IGFsbCBtZWFuczogZ28gZm9yIGEgYGBuYW1lZHR1cGxlYGAuIFsj
cGVyZl1fCisgIEJ1dCBpZiB5b3Ugd2FudCBhIGNsYXNzIHdpdGggbWV0aG9kcywgeW91J3JlIGRv
aW5nIHlvdXJzZWxmIGEgZGlzc2VydmljZSBieSByZWx5aW5nIG9uIGEgcGlsZSBvZiBoYWNrcyB0
aGF0IHJlcXVpcmVzIHlvdSB0byBlbXBsb3kgZXZlbiBtb3JlIGhhY2tzIGFzIHlvdXIgcmVxdWly
ZW1lbnRzIGV4cGFuZC4KKworICBPdGhlciB0aGFuIHRoYXQsIGBgYXR0cnNgYCBhbHNvIGFkZHMg
bmlmdHkgZmVhdHVyZXMgbGlrZSB2YWxpZGF0b3JzLCBjb252ZXJ0ZXJzLCBhbmQgKG11dGFibGUh
KSBkZWZhdWx0IHZhbHVlcy4KKworCisuLiBydWJyaWM6OiBGb290bm90ZXMKKworLi4gWyNoaXN0
b3J5XSBUaGUgd29yZCBpcyB0aGF0IGBgbmFtZWR0dXBsZWBgXCBzIHdlcmUgYWRkZWQgdG8gdGhl
IFB5dGhvbiBzdGFuZGFyZCBsaWJyYXJ5IGFzIGEgd2F5IHRvIG1ha2UgdHVwbGVzIGluIHJldHVy
biB2YWx1ZXMgbW9yZSByZWFkYWJsZS4KKyAgICAgICAgICAgICAgQW5kIGluZGVlZCB0aGF0IGlz
IHNvbWV0aGluZyB5b3Ugc2VlIHRocm91Z2hvdXQgdGhlIHN0YW5kYXJkIGxpYnJhcnkuCisKKyAg
ICAgICAgICAgICAgTG9va2luZyBhdCB3aGF0IHRoZSBtYWtlcnMgb2YgYGBuYW1lZHR1cGxlYGBc
IHMgdXNlIGl0IGZvciB0aGVtc2VsdmVzIGlzIGEgZ29vZCBndWlkZWxpbmUgZm9yIGRlY2lkaW5n
IG9uIHlvdXIgb3duIHVzZSBjYXNlcy4KKy4uIFsjcG9sbHV0aW9uXSBgYGF0dHJzYGAgb25seSBh
ZGRzIGEgc2luZ2xlIGF0dHJpYnV0ZTogYGBfX2F0dHJzX2F0dHJzX19gYCBmb3IgaW50cm9zcGVj
dGlvbi4KKyAgICAgICAgICAgICAgICBBbGwgaGVscGVycyBhcmUgZnVuY3Rpb25zIGluIHRoZSBg
YGF0dHJgYCBwYWNrYWdlLgorICAgICAgICAgICAgICAgIFNpbmNlIHRoZXkgdGFrZSB0aGUgaW5z
dGFuY2UgYXMgZmlyc3QgYXJndW1lbnQsIHlvdSBjYW4gZWFzaWx5IGF0dGFjaCB0aGVtIHRvIHlv
dXIgY2xhc3NlcyB1bmRlciBhIG5hbWUgb2YgeW91ciBvd24gY2hvaWNlLgorLi4gWyNpdGVyXSA6
ZnVuYzpgYXR0ci5hc3R1cGxlYCBjYW4gYmUgdXNlZCB0byBnZXQgdGhhdCBiZWhhdmlvciBpbiBg
YGF0dHJzYGAgb24gKmV4cGxpY2l0IGRlbWFuZCouCisuLiBbI2ltbXV0YWJsZV0gYGBhdHRyc2Bg
IG9mZmVycyAqb3B0aW9uYWwqIGltbXV0YWJpbGl0eSB0aHJvdWdoIHRoZSBgYGZyb3plbmBgIGtl
eXdvcmQuCisuLiBbI3BlcmZdIEFsdGhvdWdoIGBgYXR0cnNgYCB3b3VsZCBzZXJ2ZSB5b3UganVz
dCBhcyB3ZWxsIQorICAgICAgICAgICBTaW5jZSBib3RoIGVtcGxveSB0aGUgc2FtZSBtZXRob2Qg
b2Ygd3JpdGluZyBhbmQgY29tcGlsaW5nIFB5dGhvbiBjb2RlIGZvciB5b3UsIHRoZSBwZXJmb3Jt
YW5jZSBwZW5hbHR5IGlzIG5lZ2xpZ2libGUgYXQgd29yc3QgYW5kIGluIHNvbWUgY2FzZXMgYGBh
dHRyc2BgIGlzIGV2ZW4gZmFzdGVyIGlmIHlvdSB1c2UgYGBzbG90cz1UcnVlYGAgKHdoaWNoIGlz
IGdlbmVyYWxseSBhIGdvb2QgaWRlYSBhbnl3YXkpLgorCisuLiBfYmVoYXZpbmcgbGlrZSBhIHR1
cGxlOiBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL3R1dG9yaWFsL2RhdGFzdHJ1Y3R1cmVzLmh0
bWwjdHVwbGVzLWFuZC1zZXF1ZW5jZXMKKworCivigKZkaWN0cz8KKy0tLS0tLS0KKworRGljdGlv
bmFyaWVzIGFyZSBub3QgZm9yIGZpeGVkIGZpZWxkcy4KKworSWYgeW91IGhhdmUgYSBkaWN0LCBp
dCBtYXBzIHNvbWV0aGluZyB0byBzb21ldGhpbmcgZWxzZS4KK1lvdSBzaG91bGQgYmUgYWJsZSB0
byBhZGQgYW5kIHJlbW92ZSB2YWx1ZXMuCisKKworCitgYGF0dHJzYGAgbGV0cyB5b3UgYmUgc3Bl
Y2lmaWMgYWJvdXQgdGhvc2UgZXhwZWN0YXRpb25zOyBhIGRpY3Rpb25hcnkgZG9lcyBub3QuCitJ
dCBnaXZlcyB5b3UgYSBuYW1lZCBlbnRpdHkgKHRoZSBjbGFzcykgaW4geW91ciBjb2RlLCB3aGlj
aCBsZXRzIHlvdSBleHBsYWluIGluIG90aGVyIHBsYWNlcyB3aGV0aGVyIHlvdSB0YWtlIGEgcGFy
YW1ldGVyIG9mIHRoYXQgY2xhc3Mgb3IgcmV0dXJuIGEgdmFsdWUgb2YgdGhhdCBjbGFzcy4KKwor
SW4gb3RoZXIgd29yZHM6IGlmIHlvdXIgZGljdCBoYXMgYSBmaXhlZCBhbmQga25vd24gc2V0IG9m
IGtleXMsIGl0IGlzIGFuIG9iamVjdCwgbm90IGEgaGFzaC4KK1NvIGlmIHlvdSBuZXZlciBpdGVy
YXRlIG92ZXIgdGhlIGtleXMgb2YgYSBkaWN0LCB5b3Ugc2hvdWxkIHVzZSBhIHByb3BlciBjbGFz
cy4KKworCivigKZoYW5kLXdyaXR0ZW4gY2xhc3Nlcz8KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworV2hpbGUgd2UncmUgZmFucyBvZiBhbGwgdGhpbmdzIGFydGlzYW5hbCwgd3JpdGluZyB0aGUg
c2FtZSBuaW5lIG1ldGhvZHMgYWxsIG92ZXIgYWdhaW4gZG9lc24ndCBxdWFsaWZ5IGZvciBtZS4K
K0kgdXN1YWxseSBtYW5hZ2UgdG8gZ2V0IHNvbWUgdHlwb3MgaW5zaWRlIGFuZCB0aGVyZSdzIHNp
bXBseSBtb3JlIGNvZGUgdGhhdCBjYW4gYnJlYWsgYW5kIHRodXMgaGFzIHRvIGJlIHRlc3RlZC4K
KworVG8gYnJpbmcgaXQgaW50byBwZXJzcGVjdGl2ZSwgdGhlIGVxdWl2YWxlbnQgb2YKKworLi4g
ZG9jdGVzdDo6CisKKyAgID4+PiBAYXR0ci5zCisgICAuLi4gY2xhc3MgU21hcnRDbGFzcyhvYmpl
Y3QpOgorICAgLi4uICAgIGEgPSBhdHRyLmliKCkKKyAgIC4uLiAgICBiID0gYXR0ci5pYigpCisg
ICA+Pj4gU21hcnRDbGFzcygxLCAyKQorICAgU21hcnRDbGFzcyhhPTEsIGI9MikKKworaXMKKwor
Li4gZG9jdGVzdDo6CisKKyAgID4+PiBjbGFzcyBBcnRpc2FuYWxDbGFzcyhvYmplY3QpOgorICAg
Li4uICAgICBkZWYgX19pbml0X18oc2VsZiwgYSwgYik6CisgICAuLi4gICAgICAgICBzZWxmLmEg
PSBhCisgICAuLi4gICAgICAgICBzZWxmLmIgPSBiCisgICAuLi4KKyAgIC4uLiAgICAgZGVmIF9f
cmVwcl9fKHNlbGYpOgorICAgLi4uICAgICAgICAgcmV0dXJuICJBcnRpc2FuYWxDbGFzcyhhPXt9
LCBiPXt9KSIuZm9ybWF0KHNlbGYuYSwgc2VsZi5iKQorICAgLi4uCisgICAuLi4gICAgIGRlZiBf
X2VxX18oc2VsZiwgb3RoZXIpOgorICAgLi4uICAgICAgICAgaWYgb3RoZXIuX19jbGFzc19fIGlz
IHNlbGYuX19jbGFzc19fOgorICAgLi4uICAgICAgICAgICAgIHJldHVybiAoc2VsZi5hLCBzZWxm
LmIpID09IChvdGhlci5hLCBvdGhlci5iKQorICAgLi4uICAgICAgICAgZWxzZToKKyAgIC4uLiAg
ICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKyAgIC4uLgorICAgLi4uICAgICBkZWYg
X19uZV9fKHNlbGYsIG90aGVyKToKKyAgIC4uLiAgICAgICAgIHJlc3VsdCA9IHNlbGYuX19lcV9f
KG90aGVyKQorICAgLi4uICAgICAgICAgaWYgcmVzdWx0IGlzIE5vdEltcGxlbWVudGVkOgorICAg
Li4uICAgICAgICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorICAgLi4uICAgICAgICAgZWxz
ZToKKyAgIC4uLiAgICAgICAgICAgICByZXR1cm4gbm90IHJlc3VsdAorICAgLi4uCisgICAuLi4g
ICAgIGRlZiBfX2x0X18oc2VsZiwgb3RoZXIpOgorICAgLi4uICAgICAgICAgaWYgb3RoZXIuX19j
bGFzc19fIGlzIHNlbGYuX19jbGFzc19fOgorICAgLi4uICAgICAgICAgICAgIHJldHVybiAoc2Vs
Zi5hLCBzZWxmLmIpIDwgKG90aGVyLmEsIG90aGVyLmIpCisgICAuLi4gICAgICAgICBlbHNlOgor
ICAgLi4uICAgICAgICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorICAgLi4uCisgICAuLi4g
ICAgIGRlZiBfX2xlX18oc2VsZiwgb3RoZXIpOgorICAgLi4uICAgICAgICAgaWYgb3RoZXIuX19j
bGFzc19fIGlzIHNlbGYuX19jbGFzc19fOgorICAgLi4uICAgICAgICAgICAgIHJldHVybiAoc2Vs
Zi5hLCBzZWxmLmIpIDw9IChvdGhlci5hLCBvdGhlci5iKQorICAgLi4uICAgICAgICAgZWxzZToK
KyAgIC4uLiAgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKyAgIC4uLgorICAgLi4u
ICAgICBkZWYgX19ndF9fKHNlbGYsIG90aGVyKToKKyAgIC4uLiAgICAgICAgIGlmIG90aGVyLl9f
Y2xhc3NfXyBpcyBzZWxmLl9fY2xhc3NfXzoKKyAgIC4uLiAgICAgICAgICAgICByZXR1cm4gKHNl
bGYuYSwgc2VsZi5iKSA+IChvdGhlci5hLCBvdGhlci5iKQorICAgLi4uICAgICAgICAgZWxzZToK
KyAgIC4uLiAgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKyAgIC4uLgorICAgLi4u
ICAgICBkZWYgX19nZV9fKHNlbGYsIG90aGVyKToKKyAgIC4uLiAgICAgICAgIGlmIG90aGVyLl9f
Y2xhc3NfXyBpcyBzZWxmLl9fY2xhc3NfXzoKKyAgIC4uLiAgICAgICAgICAgICByZXR1cm4gKHNl
bGYuYSwgc2VsZi5iKSA+PSAob3RoZXIuYSwgb3RoZXIuYikKKyAgIC4uLiAgICAgICAgIGVsc2U6
CisgICAuLi4gICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisgICAuLi4KKyAgIC4u
LiAgICAgZGVmIF9faGFzaF9fKHNlbGYpOgorICAgLi4uICAgICAgICAgcmV0dXJuIGhhc2goKHNl
bGYuYSwgc2VsZi5iKSkKKyAgID4+PiBBcnRpc2FuYWxDbGFzcyhhPTEsIGI9MikKKyAgIEFydGlz
YW5hbENsYXNzKGE9MSwgYj0yKQorCit3aGljaCBpcyBxdWl0ZSBhIG1vdXRoZnVsIGFuZCBpdCBk
b2Vzbid0IGV2ZW4gdXNlIGFueSBvZiBgYGF0dHJzYGAncyBtb3JlIGFkdmFuY2VkIGZlYXR1cmVz
IGxpa2UgdmFsaWRhdG9ycyBvciBkZWZhdWx0cyB2YWx1ZXMuCitBbHNvOiBubyB0ZXN0cyB3aGF0
c29ldmVyLgorQW5kIHdobyB3aWxsIGd1YXJhbnRlZSB5b3UsIHRoYXQgeW91IGRvbid0IGFjY2lk
ZW50YWxseSBmbGlwIHRoZSBgYDxgYCBpbiB5b3VyIHRlbnRoIGltcGxlbWVudGF0aW9uIG9mIGBg
X19ndF9fYGA/CisKK0l0IGFsc28gc2hvdWxkIGJlIG5vdGVkIHRoYXQgYGBhdHRyc2BgIGlzIG5v
dCBhbiBhbGwtb3Itbm90aGluZyBzb2x1dGlvbi4KK1lvdSBjYW4gZnJlZWx5IGNob29zZSB3aGlj
aCBmZWF0dXJlcyB5b3Ugd2FudCBhbmQgZGlzYWJsZSB0aG9zZSB0aGF0IHlvdSB3YW50IG1vcmUg
Y29udHJvbCBvdmVyOgorCisuLiBkb2N0ZXN0OjoKKworICAgPj4+IEBhdHRyLnMocmVwcj1GYWxz
ZSkKKyAgIC4uLiBjbGFzcyBTbWFydENsYXNzKG9iamVjdCk6CisgICAuLi4gICAgYSA9IGF0dHIu
aWIoKQorICAgLi4uICAgIGIgPSBhdHRyLmliKCkKKyAgIC4uLgorICAgLi4uICAgIGRlZiBfX3Jl
cHJfXyhzZWxmKToKKyAgIC4uLiAgICAgICAgcmV0dXJuICI8U21hcnRDbGFzcyhhPSVkKT4iICUg
KHNlbGYuYSwpCisgICA+Pj4gU21hcnRDbGFzcygxLCAyKQorICAgPFNtYXJ0Q2xhc3MoYT0xKT4K
KworLi4gYWRtb25pdGlvbjo6IFN1bW1hcnkKKworICAgSWYgeW91IGRvbid0IGNhcmUgYW5kIGxp
a2UgdHlwaW5nLCB3ZSdyZSBub3QgZ29ubmEgc3RvcCB5b3UuCisKKyAgIEhvd2V2ZXIgaXQgdGFr
ZXMgYSBsb3Qgb2YgYmlhcyBhbmQgZGV0ZXJtaW5lZCByYXRpb25hbGl6YXRpb24gdG8gY2xhaW0g
dGhhdCBgYGF0dHJzYGAgcmFpc2VzIHRoZSBtZW50YWwgYnVyZGVuIG9uIGEgcHJvamVjdCBnaXZl
biBob3cgZGlmZmljdWx0IGl0IGlzIHRvIGZpbmQgdGhlIGltcG9ydGFudCBiaXRzIGluIGEgaGFu
ZC13cml0dGVuIGNsYXNzIGFuZCBob3cgYW5ub3lpbmcgaXQgaXMgdG8gZW5zdXJlIHlvdSd2ZSBj
b3B5LXBhc3RlZCB5b3VyIGNvZGUgY29ycmVjdGx5IG92ZXIgYWxsIHlvdXIgY2xhc3Nlcy4KKwor
ICAgSW4gYW55IGNhc2UsIGlmIHlvdSBldmVyIGdldCBzaWNrIG9mIHRoZSByZXBldGl0aXZlbmVz
cyBhbmQgZHJvd25pbmcgaW1wb3J0YW50IGNvZGUgaW4gYSBzZWEgb2YgYm9pbGVycGxhdGUsIGBg
YXR0cnNgYCB3aWxsIGJlIHdhaXRpbmcgZm9yIHlvdS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMv
cHlwcm9qZWN0LnRvbWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3B5cHJvamVjdC50b21sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBm
NjhhN2NiMGZjYzU2NGI4NTYzMmJhZDkzMWY1M2Q0ZGNmNmUwOWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2F0dHJzL3B5cHJvamVjdC50b21sCkBAIC0wLDAgKzEsMjYgQEAKK1t0b29sLnRvd25j
cmllcl0KKyAgICBwYWNrYWdlID0gImF0dHIiCisgICAgcGFja2FnZV9kaXIgPSAic3JjIgorICAg
IGZpbGVuYW1lID0gIkNIQU5HRUxPRy5yc3QiCisgICAgaXNzdWVfZm9ybWF0ID0gImAje2lzc3Vl
fSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9hdHRycy9pc3N1ZXMve2lzc3VlfT5g
XyIKKyAgICBkaXJlY3RvcnkgPSAiY2hhbmdlbG9nLmQiCisgICAgdGl0bGVfZm9ybWF0ID0gInt2
ZXJzaW9ufSAoe3Byb2plY3RfZGF0ZX0pIgorICAgIHVuZGVybGluZXMgPSBbIi0iLCAiXiJdCisK
KyAgICBbW3Rvb2wudG93bmNyaWVyLnNlY3Rpb25dXQorICAgICAgICBwYXRoID0gIiIKKworICAg
IFtbdG9vbC50b3duY3JpZXIudHlwZV1dCisgICAgICAgIGRpcmVjdG9yeSA9ICJicmVha2luZyIK
KyAgICAgICAgbmFtZSA9ICJCYWNrd2FyZC1pbmNvbXBhdGlibGUgQ2hhbmdlcyIKKyAgICAgICAg
c2hvd2NvbnRlbnQgPSB0cnVlCisKKyAgICBbW3Rvb2wudG93bmNyaWVyLnR5cGVdXQorICAgICAg
ICBkaXJlY3RvcnkgPSAiZGVwcmVjYXRpb24iCisgICAgICAgIG5hbWUgPSAiRGVwcmVjYXRpb25z
IgorICAgICAgICBzaG93Y29udGVudCA9IHRydWUKKworICAgIFtbdG9vbC50b3duY3JpZXIudHlw
ZV1dCisgICAgICAgIGRpcmVjdG9yeSA9ICJjaGFuZ2UiCisgICAgICAgIG5hbWUgPSAiQ2hhbmdl
cyIKKyAgICAgICAgc2hvd2NvbnRlbnQgPSB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Nl
dHVwLmNmZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYXR0cnMvc2V0dXAuY2ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkZGJiYWJjM2NkNzQ4
ZGE4MDgzMjY4MTUyMWM0NGE5OGMzMGQ1NTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJz
L3NldHVwLmNmZwpAQCAtMCwwICsxLDI2IEBACitbYmRpc3Rfd2hlZWxdCit1bml2ZXJzYWwgPSAx
CisKKworW21ldGFkYXRhXQorIyBlbnN1cmUgTElDRU5TRSBpcyBpbmNsdWRlZCBpbiB3aGVlbCBt
ZXRhZGF0YQorbGljZW5zZV9maWxlID0gTElDRU5TRQorCisKK1t0b29sOnB5dGVzdF0KK21pbnZl
cnNpb24gPSAzLjAKK3N0cmljdCA9IHRydWUKK2FkZG9wdHMgPSAtcmEKK3Rlc3RwYXRocyA9IHRl
c3RzCitmaWx0ZXJ3YXJuaW5ncyA9CisgICAgb25jZTo6V2FybmluZworCisKK1tpc29ydF0KK2F0
b21pYz10cnVlCitsaW5lc19hZnRlcl9pbXBvcnRzPTIKK2xpbmVzX2JldHdlZW5fdHlwZXM9MQor
bXVsdGlfbGluZV9vdXRwdXQ9NQorbm90X3NraXA9X19pbml0X18ucHkKKwora25vd25fZmlyc3Rf
cGFydHk9YXR0cgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9zZXR1cC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMv
c2V0dXAucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjMyZDNmNWVhYWE2MTdjYWI1ZTkwYzUzYzMzNjA3ZTZmNzUx
MWQxNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvc2V0dXAucHkKQEAgLTAsMCArMSw5
NSBAQAoraW1wb3J0IGNvZGVjcworaW1wb3J0IG9zCitpbXBvcnQgcmUKKworZnJvbSBzZXR1cHRv
b2xzIGltcG9ydCBmaW5kX3BhY2thZ2VzLCBzZXR1cAorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMKKworTkFNRSA9ICJhdHRycyIKK1BBQ0tBR0VTID0gZmluZF9wYWNrYWdlcyh3aGVyZT0ic3Jj
IikKK01FVEFfUEFUSCA9IG9zLnBhdGguam9pbigic3JjIiwgImF0dHIiLCAiX19pbml0X18ucHki
KQorS0VZV09SRFMgPSBbImNsYXNzIiwgImF0dHJpYnV0ZSIsICJib2lsZXJwbGF0ZSJdCitDTEFT
U0lGSUVSUyA9IFsKKyAgICAiRGV2ZWxvcG1lbnQgU3RhdHVzIDo6IDUgLSBQcm9kdWN0aW9uL1N0
YWJsZSIsCisgICAgIkludGVuZGVkIEF1ZGllbmNlIDo6IERldmVsb3BlcnMiLAorICAgICJOYXR1
cmFsIExhbmd1YWdlIDo6IEVuZ2xpc2giLAorICAgICJMaWNlbnNlIDo6IE9TSSBBcHByb3ZlZCA6
OiBNSVQgTGljZW5zZSIsCisgICAgIk9wZXJhdGluZyBTeXN0ZW0gOjogT1MgSW5kZXBlbmRlbnQi
LAorICAgICJQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24iLAorICAgICJQcm9ncmFtbWlu
ZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMiIsCisgICAgIlByb2dyYW1taW5nIExhbmd1YWdlIDo6
IFB5dGhvbiA6OiAyLjciLAorICAgICJQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjog
MyIsCisgICAgIlByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjQiLAorICAgICJQ
cm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy41IiwKKyAgICAiUHJvZ3JhbW1pbmcg
TGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuNiIsCisgICAgIlByb2dyYW1taW5nIExhbmd1YWdlIDo6
IFB5dGhvbiA6OiBJbXBsZW1lbnRhdGlvbiA6OiBDUHl0aG9uIiwKKyAgICAiUHJvZ3JhbW1pbmcg
TGFuZ3VhZ2UgOjogUHl0aG9uIDo6IEltcGxlbWVudGF0aW9uIDo6IFB5UHkiLAorICAgICJUb3Bp
YyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBMaWJyYXJpZXMgOjogUHl0aG9uIE1vZHVsZXMi
LAorXQorSU5TVEFMTF9SRVFVSVJFUyA9IFtdCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKwor
SEVSRSA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pKQorCisKK2Rl
ZiByZWFkKCpwYXJ0cyk6CisgICAgIiIiCisgICAgQnVpbGQgYW4gYWJzb2x1dGUgcGF0aCBmcm9t
ICpwYXJ0cyogYW5kIGFuZCByZXR1cm4gdGhlIGNvbnRlbnRzIG9mIHRoZQorICAgIHJlc3VsdGlu
ZyBmaWxlLiAgQXNzdW1lIFVURi04IGVuY29kaW5nLgorICAgICIiIgorICAgIHdpdGggY29kZWNz
Lm9wZW4ob3MucGF0aC5qb2luKEhFUkUsICpwYXJ0cyksICJyYiIsICJ1dGYtOCIpIGFzIGY6Cisg
ICAgICAgIHJldHVybiBmLnJlYWQoKQorCisKK01FVEFfRklMRSA9IHJlYWQoTUVUQV9QQVRIKQor
CisKK2RlZiBmaW5kX21ldGEobWV0YSk6CisgICAgIiIiCisgICAgRXh0cmFjdCBfXyptZXRhKl9f
IGZyb20gTUVUQV9GSUxFLgorICAgICIiIgorICAgIG1ldGFfbWF0Y2ggPSByZS5zZWFyY2goCisg
ICAgICAgIHIiXl9fe21ldGF9X18gPSBbJ1wiXShbXidcIl0qKVsnXCJdIi5mb3JtYXQobWV0YT1t
ZXRhKSwKKyAgICAgICAgTUVUQV9GSUxFLCByZS5NCisgICAgKQorICAgIGlmIG1ldGFfbWF0Y2g6
CisgICAgICAgIHJldHVybiBtZXRhX21hdGNoLmdyb3VwKDEpCisgICAgcmFpc2UgUnVudGltZUVy
cm9yKCJVbmFibGUgdG8gZmluZCBfX3ttZXRhfV9fIHN0cmluZy4iLmZvcm1hdChtZXRhPW1ldGEp
KQorCisKK1ZFUlNJT04gPSBmaW5kX21ldGEoInZlcnNpb24iKQorVVJJID0gZmluZF9tZXRhKCJ1
cmkiKQorTE9ORyA9ICgKKyAgICByZWFkKCJSRUFETUUucnN0IikgKyAiXG5cbiIgKworICAgICJS
ZWxlYXNlIEluZm9ybWF0aW9uXG4iICsKKyAgICAiPT09PT09PT09PT09PT09PT09PVxuXG4iICsK
KyAgICByZS5zZWFyY2goIihcZCsuXGQuXGQgXCguKj9cKVxuLio/KVxuXG5cbi0tLS1cblxuXG4i
LAorICAgICAgICAgICAgICByZWFkKCJDSEFOR0VMT0cucnN0IiksIHJlLlMpLmdyb3VwKDEpICsK
KyAgICAiXG5cbmBGdWxsIGNoYW5nZWxvZyAiICsKKyAgICAiPHt1cml9ZW4vc3RhYmxlL2NoYW5n
ZWxvZy5odG1sPmBfLlxuXG4iLmZvcm1hdCh1cmk9VVJJKSArCisgICAgcmVhZCgiQVVUSE9SUy5y
c3QiKQorKQorCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgc2V0dXAoCisgICAg
ICAgIG5hbWU9TkFNRSwKKyAgICAgICAgZGVzY3JpcHRpb249ZmluZF9tZXRhKCJkZXNjcmlwdGlv
biIpLAorICAgICAgICBsaWNlbnNlPWZpbmRfbWV0YSgibGljZW5zZSIpLAorICAgICAgICB1cmw9
VVJJLAorICAgICAgICB2ZXJzaW9uPVZFUlNJT04sCisgICAgICAgIGF1dGhvcj1maW5kX21ldGEo
ImF1dGhvciIpLAorICAgICAgICBhdXRob3JfZW1haWw9ZmluZF9tZXRhKCJlbWFpbCIpLAorICAg
ICAgICBtYWludGFpbmVyPWZpbmRfbWV0YSgiYXV0aG9yIiksCisgICAgICAgIG1haW50YWluZXJf
ZW1haWw9ZmluZF9tZXRhKCJlbWFpbCIpLAorICAgICAgICBrZXl3b3Jkcz1LRVlXT1JEUywKKyAg
ICAgICAgbG9uZ19kZXNjcmlwdGlvbj1MT05HLAorICAgICAgICBwYWNrYWdlcz1QQUNLQUdFUywK
KyAgICAgICAgcGFja2FnZV9kaXI9eyIiOiAic3JjIn0sCisgICAgICAgIHppcF9zYWZlPUZhbHNl
LAorICAgICAgICBjbGFzc2lmaWVycz1DTEFTU0lGSUVSUywKKyAgICAgICAgaW5zdGFsbF9yZXF1
aXJlcz1JTlNUQUxMX1JFUVVJUkVTLAorICAgICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvc3Jj
L2F0dHIvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL19faW5pdF9fLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjkyOWIxNzIxZmYxNmI1NTc3MGFlYzY2MjdhZTU2ZDc1ZTE1MmQ1ZmUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNTUg
QEAKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJp
bnRfZnVuY3Rpb24KKworZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHBhcnRpYWwKKworZnJvbSAuIGlt
cG9ydCBjb252ZXJ0ZXJzLCBleGNlcHRpb25zLCBmaWx0ZXJzLCB2YWxpZGF0b3JzCitmcm9tIC5f
Y29uZmlnIGltcG9ydCBnZXRfcnVuX3ZhbGlkYXRvcnMsIHNldF9ydW5fdmFsaWRhdG9ycworZnJv
bSAuX2Z1bmNzIGltcG9ydCBhc2RpY3QsIGFzc29jLCBhc3R1cGxlLCBldm9sdmUsIGhhcworZnJv
bSAuX21ha2UgaW1wb3J0ICgKKyAgICBOT1RISU5HLCBBdHRyaWJ1dGUsIEZhY3RvcnksIGF0dHJp
YiwgYXR0cnMsIGZpZWxkcywgbWFrZV9jbGFzcywgdmFsaWRhdGUKKykKKworCitfX3ZlcnNpb25f
XyA9ICIxNy40LjAuZGV2MCIKKworX190aXRsZV9fID0gImF0dHJzIgorX19kZXNjcmlwdGlvbl9f
ID0gIkNsYXNzZXMgV2l0aG91dCBCb2lsZXJwbGF0ZSIKK19fdXJpX18gPSAiaHR0cDovL3d3dy5h
dHRycy5vcmcvIgorX19kb2NfXyA9IF9fZGVzY3JpcHRpb25fXyArICIgPCIgKyBfX3VyaV9fICsg
Ij4iCisKK19fYXV0aG9yX18gPSAiSHluZWsgU2NobGF3YWNrIgorX19lbWFpbF9fID0gImhzQG94
LmN4IgorCitfX2xpY2Vuc2VfXyA9ICJNSVQiCitfX2NvcHlyaWdodF9fID0gIkNvcHlyaWdodCAo
YykgMjAxNSBIeW5layBTY2hsYXdhY2siCisKKworcyA9IGF0dHJpYnV0ZXMgPSBhdHRycworaWIg
PSBhdHRyID0gYXR0cmliCitkYXRhY2xhc3MgPSBwYXJ0aWFsKGF0dHJzLCBhdXRvX2F0dHJpYnM9
VHJ1ZSkgICMgaGFwcHkgRWFzdGVyIDspCisKK19fYWxsX18gPSBbCisgICAgIkF0dHJpYnV0ZSIs
CisgICAgIkZhY3RvcnkiLAorICAgICJOT1RISU5HIiwKKyAgICAiYXNkaWN0IiwKKyAgICAiYXNz
b2MiLAorICAgICJhc3R1cGxlIiwKKyAgICAiYXR0ciIsCisgICAgImF0dHJpYiIsCisgICAgImF0
dHJpYnV0ZXMiLAorICAgICJhdHRycyIsCisgICAgImNvbnZlcnRlcnMiLAorICAgICJldm9sdmUi
LAorICAgICJleGNlcHRpb25zIiwKKyAgICAiZmllbGRzIiwKKyAgICAiZmlsdGVycyIsCisgICAg
ImdldF9ydW5fdmFsaWRhdG9ycyIsCisgICAgImhhcyIsCisgICAgImliIiwKKyAgICAibWFrZV9j
bGFzcyIsCisgICAgInMiLAorICAgICJzZXRfcnVuX3ZhbGlkYXRvcnMiLAorICAgICJ2YWxpZGF0
ZSIsCisgICAgInZhbGlkYXRvcnMiLAorXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9zcmMvYXR0
ci9fY29tcGF0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9zcmMvYXR0ci9fY29tcGF0LnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhhNDkzNDFiMjVmNDkxMjk0ZTRhMjhiNzliYWE4MmQyODBhN2E0NjEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL19jb21wYXQucHkKQEAgLTAsMCArMSwxMzkgQEAKK2Zy
b20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVu
Y3Rpb24KKworaW1wb3J0IHBsYXRmb3JtCitpbXBvcnQgc3lzCitpbXBvcnQgdHlwZXMKK2ltcG9y
dCB3YXJuaW5ncworCisKK1BZMiA9IHN5cy52ZXJzaW9uX2luZm9bMF0gPT0gMgorUFlQWSA9IHBs
YXRmb3JtLnB5dGhvbl9pbXBsZW1lbnRhdGlvbigpID09ICJQeVB5IgorCisKK2lmIFBZMjoKKyAg
ICBmcm9tIFVzZXJEaWN0IGltcG9ydCBJdGVyYWJsZVVzZXJEaWN0CisKKyAgICAjIFdlICdidW5k
bGUnIGlzY2xhc3MgaW5zdGVhZCBvZiB1c2luZyBpbnNwZWN0IGFzIGltcG9ydGluZyBpbnNwZWN0
IGlzCisgICAgIyBmYWlybHkgZXhwZW5zaXZlIChvcmRlciBvZiAxMC0xNSBtcyBmb3IgYSBtb2Rl
cm4gbWFjaGluZSBpbiAyMDE2KQorICAgIGRlZiBpc2NsYXNzKGtsYXNzKToKKyAgICAgICAgcmV0
dXJuIGlzaW5zdGFuY2Uoa2xhc3MsICh0eXBlLCB0eXBlcy5DbGFzc1R5cGUpKQorCisgICAgIyBU
WVBFIGlzIHVzZWQgaW4gZXhjZXB0aW9ucywgcmVwcihpbnQpIGlzIGRpZmZlcmVudCBvbiBQeXRo
b24gMiBhbmQgMy4KKyAgICBUWVBFID0gInR5cGUiCisKKyAgICBkZWYgaXRlcml0ZW1zKGQpOgor
ICAgICAgICByZXR1cm4gZC5pdGVyaXRlbXMoKQorCisgICAgIyBQeXRob24gMiBpcyBiZXJlZnQg
b2YgYSByZWFkLW9ubHkgZGljdCBwcm94eSwgc28gd2UgbWFrZSBvbmUhCisgICAgY2xhc3MgUmVh
ZE9ubHlEaWN0KEl0ZXJhYmxlVXNlckRpY3QpOgorICAgICAgICAiIiIKKyAgICAgICAgQmVzdC1l
ZmZvcnQgcmVhZC1vbmx5IGRpY3Qgd3JhcHBlci4KKyAgICAgICAgIiIiCisKKyAgICAgICAgZGVm
IF9fc2V0aXRlbV9fKHNlbGYsIGtleSwgdmFsKToKKyAgICAgICAgICAgICMgV2UgZ2VudGx5IHBy
ZXRlbmQgd2UncmUgYSBQeXRob24gMyBtYXBwaW5ncHJveHkuCisgICAgICAgICAgICByYWlzZSBU
eXBlRXJyb3IoIidtYXBwaW5ncHJveHknIG9iamVjdCBkb2VzIG5vdCBzdXBwb3J0IGl0ZW0gIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhc3NpZ25tZW50IikKKworICAgICAgICBkZWYg
dXBkYXRlKHNlbGYsIF8pOgorICAgICAgICAgICAgIyBXZSBnZW50bHkgcHJldGVuZCB3ZSdyZSBh
IFB5dGhvbiAzIG1hcHBpbmdwcm94eS4KKyAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9y
KCInbWFwcGluZ3Byb3h5JyBvYmplY3QgaGFzIG5vIGF0dHJpYnV0ZSAiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiJ3VwZGF0ZSciKQorCisgICAgICAgIGRlZiBfX2RlbGl0ZW1f
XyhzZWxmLCBfKToKKyAgICAgICAgICAgICMgV2UgZ2VudGx5IHByZXRlbmQgd2UncmUgYSBQeXRo
b24gMyBtYXBwaW5ncHJveHkuCisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIidtYXBwaW5n
cHJveHknIG9iamVjdCBkb2VzIG5vdCBzdXBwb3J0IGl0ZW0gIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJkZWxldGlvbiIpCisKKyAgICAgICAgZGVmIGNsZWFyKHNlbGYpOgorICAgICAg
ICAgICAgIyBXZSBnZW50bHkgcHJldGVuZCB3ZSdyZSBhIFB5dGhvbiAzIG1hcHBpbmdwcm94eS4K
KyAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKCInbWFwcGluZ3Byb3h5JyBvYmplY3Qg
aGFzIG5vIGF0dHJpYnV0ZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJ2Ns
ZWFyJyIpCisKKyAgICAgICAgZGVmIHBvcChzZWxmLCBrZXksIGRlZmF1bHQ9Tm9uZSk6CisgICAg
ICAgICAgICAjIFdlIGdlbnRseSBwcmV0ZW5kIHdlJ3JlIGEgUHl0aG9uIDMgbWFwcGluZ3Byb3h5
LgorICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoIidtYXBwaW5ncHJveHknIG9iamVj
dCBoYXMgbm8gYXR0cmlidXRlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIn
cG9wJyIpCisKKyAgICAgICAgZGVmIHBvcGl0ZW0oc2VsZik6CisgICAgICAgICAgICAjIFdlIGdl
bnRseSBwcmV0ZW5kIHdlJ3JlIGEgUHl0aG9uIDMgbWFwcGluZ3Byb3h5LgorICAgICAgICAgICAg
cmFpc2UgQXR0cmlidXRlRXJyb3IoIidtYXBwaW5ncHJveHknIG9iamVjdCBoYXMgbm8gYXR0cmli
dXRlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIncG9waXRlbSciKQorCisg
ICAgICAgIGRlZiBzZXRkZWZhdWx0KHNlbGYsIGtleSwgZGVmYXVsdD1Ob25lKToKKyAgICAgICAg
ICAgICMgV2UgZ2VudGx5IHByZXRlbmQgd2UncmUgYSBQeXRob24gMyBtYXBwaW5ncHJveHkuCisg
ICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigiJ21hcHBpbmdwcm94eScgb2JqZWN0IGhh
cyBubyBhdHRyaWJ1dGUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIidzZXRk
ZWZhdWx0JyIpCisKKyAgICAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICAgICAgIyBP
dmVycmlkZSB0byBiZSBpZGVudGljYWwgdG8gdGhlIFB5dGhvbiAzIHZlcnNpb24uCisgICAgICAg
ICAgICByZXR1cm4gIm1hcHBpbmdwcm94eSgiICsgcmVwcihzZWxmLmRhdGEpICsgIikiCisKKyAg
ICBkZWYgbWV0YWRhdGFfcHJveHkoZCk6CisgICAgICAgIHJlcyA9IFJlYWRPbmx5RGljdCgpCisg
ICAgICAgIHJlcy5kYXRhLnVwZGF0ZShkKSAgIyBXZSBibG9ja2VkIHVwZGF0ZSwgc28gd2UgaGF2
ZSB0byBkbyBpdCBsaWtlIHRoaXMuCisgICAgICAgIHJldHVybiByZXMKKworZWxzZToKKyAgICBk
ZWYgaXNjbGFzcyhrbGFzcyk6CisgICAgICAgIHJldHVybiBpc2luc3RhbmNlKGtsYXNzLCB0eXBl
KQorCisgICAgVFlQRSA9ICJjbGFzcyIKKworICAgIGRlZiBpdGVyaXRlbXMoZCk6CisgICAgICAg
IHJldHVybiBkLml0ZW1zKCkKKworICAgIGRlZiBtZXRhZGF0YV9wcm94eShkKToKKyAgICAgICAg
cmV0dXJuIHR5cGVzLk1hcHBpbmdQcm94eVR5cGUoZGljdChkKSkKKworCitkZWYgaW1wb3J0X2N0
eXBlcygpOiAgIyBwcmFnbWE6IG5vY292ZXIKKyAgICAiIiIKKyAgICBNb3ZlZCBpbnRvIGEgZnVu
Y3Rpb24gZm9yIHRlc3RhYmlsaXR5LgorICAgICIiIgorICAgIHRyeToKKyAgICAgICAgaW1wb3J0
IGN0eXBlcworICAgICAgICByZXR1cm4gY3R5cGVzCisgICAgZXhjZXB0IEltcG9ydEVycm9yOgor
ICAgICAgICByZXR1cm4gTm9uZQorCisKK2lmIG5vdCBQWTI6CisgICAgZGVmIGp1c3Rfd2Fybigq
YXJncywgKiprdyk6CisgICAgICAgICIiIgorICAgICAgICBXZSBvbmx5IHdhcm4gb24gUHl0aG9u
IDMgYmVjYXVzZSB3ZSBhcmUgbm90IGF3YXJlIG9mIGFueSBjb25jcmV0ZQorICAgICAgICBjb25z
ZXF1ZW5jZXMgb2Ygbm90IHNldHRpbmcgdGhlIGNlbGwgb24gUHl0aG9uIDIuCisgICAgICAgICIi
IgorICAgICAgICB3YXJuaW5ncy53YXJuKAorICAgICAgICAgICAgIk1pc3NpbmcgY3R5cGVzLiAg
U29tZSBmZWF0dXJlcyBsaWtlIGJhcmUgc3VwZXIoKSBvciBhY2Nlc3NpbmcgIgorICAgICAgICAg
ICAgIl9fY2xhc3NfXyB3aWxsIG5vdCB3b3JrIHdpdGggc2xvdHMgY2xhc3Nlcy4iLAorICAgICAg
ICAgICAgUnVudGltZVdhcm5pbmcsCisgICAgICAgICAgICBzdGFja2xldmVsPTIsCisgICAgICAg
ICkKK2Vsc2U6CisgICAgZGVmIGp1c3Rfd2FybigqYXJncywgKiprdyk6ICAjIHByYWdtYTogbm9j
b3ZlcgorICAgICAgICAiIiIKKyAgICAgICAgV2Ugb25seSB3YXJuIG9uIFB5dGhvbiAzIGJlY2F1
c2Ugd2UgYXJlIG5vdCBhd2FyZSBvZiBhbnkgY29uY3JldGUKKyAgICAgICAgY29uc2VxdWVuY2Vz
IG9mIG5vdCBzZXR0aW5nIHRoZSBjZWxsIG9uIFB5dGhvbiAyLgorICAgICAgICAiIiIKKworCitk
ZWYgbWFrZV9zZXRfY2xvc3VyZV9jZWxsKCk6CisgICAgIiIiCisgICAgTW92ZWQgaW50byBhIGZ1
bmN0aW9uIGZvciB0ZXN0YWJpbGl0eS4KKyAgICAiIiIKKyAgICBpZiBQWVBZOiAgIyBwcmFnbWE6
IG5vIGNvdmVyCisgICAgICAgIGRlZiBzZXRfY2xvc3VyZV9jZWxsKGNlbGwsIHZhbHVlKToKKyAg
ICAgICAgICAgIGNlbGwuX19zZXRzdGF0ZV9fKCh2YWx1ZSwpKQorICAgIGVsc2U6CisgICAgICAg
IGN0eXBlcyA9IGltcG9ydF9jdHlwZXMoKQorICAgICAgICBpZiBjdHlwZXMgaXMgbm90IE5vbmU6
CisgICAgICAgICAgICBzZXRfY2xvc3VyZV9jZWxsID0gY3R5cGVzLnB5dGhvbmFwaS5QeUNlbGxf
U2V0CisgICAgICAgICAgICBzZXRfY2xvc3VyZV9jZWxsLmFyZ3R5cGVzID0gKGN0eXBlcy5weV9v
YmplY3QsIGN0eXBlcy5weV9vYmplY3QpCisgICAgICAgICAgICBzZXRfY2xvc3VyZV9jZWxsLnJl
c3R5cGUgPSBjdHlwZXMuY19pbnQKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNldF9jbG9z
dXJlX2NlbGwgPSBqdXN0X3dhcm4KKyAgICByZXR1cm4gc2V0X2Nsb3N1cmVfY2VsbAorCisKK3Nl
dF9jbG9zdXJlX2NlbGwgPSBtYWtlX3NldF9jbG9zdXJlX2NlbGwoKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9hdHRycy9zcmMvYXR0ci9fY29uZmlnLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9zcmMvYXR0ci9fY29uZmln
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjhlYzkyMDk2MmQxYjQwMTMzNTkyN2RiODM3Y2MxM2NjYTFlOTlhZTgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL19jb25maWcucHkKQEAgLTAs
MCArMSwyMyBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlz
aW9uLCBwcmludF9mdW5jdGlvbgorCisKK19fYWxsX18gPSBbInNldF9ydW5fdmFsaWRhdG9ycyIs
ICJnZXRfcnVuX3ZhbGlkYXRvcnMiXQorCitfcnVuX3ZhbGlkYXRvcnMgPSBUcnVlCisKKworZGVm
IHNldF9ydW5fdmFsaWRhdG9ycyhydW4pOgorICAgICIiIgorICAgIFNldCB3aGV0aGVyIG9yIG5v
dCB2YWxpZGF0b3JzIGFyZSBydW4uICBCeSBkZWZhdWx0LCB0aGV5IGFyZSBydW4uCisgICAgIiIi
CisgICAgaWYgbm90IGlzaW5zdGFuY2UocnVuLCBib29sKToKKyAgICAgICAgcmFpc2UgVHlwZUVy
cm9yKCIncnVuJyBtdXN0IGJlIGJvb2wuIikKKyAgICBnbG9iYWwgX3J1bl92YWxpZGF0b3JzCisg
ICAgX3J1bl92YWxpZGF0b3JzID0gcnVuCisKKworZGVmIGdldF9ydW5fdmFsaWRhdG9ycygpOgor
ICAgICIiIgorICAgIFJldHVybiB3aGV0aGVyIG9yIG5vdCB2YWxpZGF0b3JzIGFyZSBydW4uCisg
ICAgIiIiCisgICAgcmV0dXJuIF9ydW5fdmFsaWRhdG9ycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRy
cy9zcmMvYXR0ci9fZnVuY3MucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL19mdW5jcy5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43OTgwNDNhZjNmODg5YmM1N2E0ZGIyYTJkYTE3MTAzZGI0MmZjZGFlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9hdHRycy9zcmMvYXR0ci9fZnVuY3MucHkKQEAgLTAsMCArMSwyMTIg
QEAKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJp
bnRfZnVuY3Rpb24KKworaW1wb3J0IGNvcHkKKworZnJvbSAuX2NvbXBhdCBpbXBvcnQgaXRlcml0
ZW1zCitmcm9tIC5fbWFrZSBpbXBvcnQgTk9USElORywgX29ial9zZXRhdHRyLCBmaWVsZHMKK2Zy
b20gLmV4Y2VwdGlvbnMgaW1wb3J0IEF0dHJzQXR0cmlidXRlTm90Rm91bmRFcnJvcgorCisKK2Rl
ZiBhc2RpY3QoaW5zdCwgcmVjdXJzZT1UcnVlLCBmaWx0ZXI9Tm9uZSwgZGljdF9mYWN0b3J5PWRp
Y3QsCisgICAgICAgICAgIHJldGFpbl9jb2xsZWN0aW9uX3R5cGVzPUZhbHNlKToKKyAgICAiIiIK
KyAgICBSZXR1cm4gdGhlIGBgYXR0cnNgYCBhdHRyaWJ1dGUgdmFsdWVzIG9mICppbnN0KiBhcyBh
IGRpY3QuCisKKyAgICBPcHRpb25hbGx5IHJlY3Vyc2UgaW50byBvdGhlciBgYGF0dHJzYGAtZGVj
b3JhdGVkIGNsYXNzZXMuCisKKyAgICA6cGFyYW0gaW5zdDogSW5zdGFuY2Ugb2YgYW4gYGBhdHRy
c2BgLWRlY29yYXRlZCBjbGFzcy4KKyAgICA6cGFyYW0gYm9vbCByZWN1cnNlOiBSZWN1cnNlIGlu
dG8gY2xhc3NlcyB0aGF0IGFyZSBhbHNvCisgICAgICAgIGBgYXR0cnNgYC1kZWNvcmF0ZWQuCisg
ICAgOnBhcmFtIGNhbGxhYmxlIGZpbHRlcjogQSBjYWxsYWJsZSB3aG9zZSByZXR1cm4gY29kZSBk
ZXRlcm1pbmVzIHdoZXRoZXIgYW4KKyAgICAgICAgYXR0cmlidXRlIG9yIGVsZW1lbnQgaXMgaW5j
bHVkZWQgKGBgVHJ1ZWBgKSBvciBkcm9wcGVkIChgYEZhbHNlYGApLiAgSXMKKyAgICAgICAgY2Fs
bGVkIHdpdGggdGhlIDpjbGFzczpgYXR0ci5BdHRyaWJ1dGVgIGFzIHRoZSBmaXJzdCBhcmd1bWVu
dCBhbmQgdGhlCisgICAgICAgIHZhbHVlIGFzIHRoZSBzZWNvbmQgYXJndW1lbnQuCisgICAgOnBh
cmFtIGNhbGxhYmxlIGRpY3RfZmFjdG9yeTogQSBjYWxsYWJsZSB0byBwcm9kdWNlIGRpY3Rpb25h
cmllcyBmcm9tLiAgRm9yCisgICAgICAgIGV4YW1wbGUsIHRvIHByb2R1Y2Ugb3JkZXJlZCBkaWN0
aW9uYXJpZXMgaW5zdGVhZCBvZiBub3JtYWwgUHl0aG9uCisgICAgICAgIGRpY3Rpb25hcmllcywg
cGFzcyBpbiBgYGNvbGxlY3Rpb25zLk9yZGVyZWREaWN0YGAuCisgICAgOnBhcmFtIGJvb2wgcmV0
YWluX2NvbGxlY3Rpb25fdHlwZXM6IERvIG5vdCBjb252ZXJ0IHRvIGBgbGlzdGBgIHdoZW4KKyAg
ICAgICAgZW5jb3VudGVyaW5nIGFuIGF0dHJpYnV0ZSB3aG9zZSB0eXBlIGlzIGBgdHVwbGVgYCBv
ciBgYHNldGBgLiAgT25seQorICAgICAgICBtZWFuaW5nZnVsIGlmIGBgcmVjdXJzZWBgIGlzIGBg
VHJ1ZWBgLgorCisgICAgOnJ0eXBlOiByZXR1cm4gdHlwZSBvZiAqZGljdF9mYWN0b3J5KgorCisg
ICAgOnJhaXNlIGF0dHIuZXhjZXB0aW9ucy5Ob3RBbkF0dHJzQ2xhc3NFcnJvcjogSWYgKmNscyog
aXMgbm90IGFuIGBgYXR0cnNgYAorICAgICAgICBjbGFzcy4KKworICAgIC4uICB2ZXJzaW9uYWRk
ZWQ6OiAxNi4wLjAgKmRpY3RfZmFjdG9yeSoKKyAgICAuLiAgdmVyc2lvbmFkZGVkOjogMTYuMS4w
ICpyZXRhaW5fY29sbGVjdGlvbl90eXBlcyoKKyAgICAiIiIKKyAgICBhdHRycyA9IGZpZWxkcyhp
bnN0Ll9fY2xhc3NfXykKKyAgICBydiA9IGRpY3RfZmFjdG9yeSgpCisgICAgZm9yIGEgaW4gYXR0
cnM6CisgICAgICAgIHYgPSBnZXRhdHRyKGluc3QsIGEubmFtZSkKKyAgICAgICAgaWYgZmlsdGVy
IGlzIG5vdCBOb25lIGFuZCBub3QgZmlsdGVyKGEsIHYpOgorICAgICAgICAgICAgY29udGludWUK
KyAgICAgICAgaWYgcmVjdXJzZSBpcyBUcnVlOgorICAgICAgICAgICAgaWYgaGFzKHYuX19jbGFz
c19fKToKKyAgICAgICAgICAgICAgICBydlthLm5hbWVdID0gYXNkaWN0KHYsIHJlY3Vyc2U9VHJ1
ZSwgZmlsdGVyPWZpbHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRp
Y3RfZmFjdG9yeT1kaWN0X2ZhY3RvcnkpCisgICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2Uodiwg
KHR1cGxlLCBsaXN0LCBzZXQpKToKKyAgICAgICAgICAgICAgICBjZiA9IHYuX19jbGFzc19fIGlm
IHJldGFpbl9jb2xsZWN0aW9uX3R5cGVzIGlzIFRydWUgZWxzZSBsaXN0CisgICAgICAgICAgICAg
ICAgcnZbYS5uYW1lXSA9IGNmKFsKKyAgICAgICAgICAgICAgICAgICAgYXNkaWN0KGksIHJlY3Vy
c2U9VHJ1ZSwgZmlsdGVyPWZpbHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpY3Rf
ZmFjdG9yeT1kaWN0X2ZhY3RvcnkpCisgICAgICAgICAgICAgICAgICAgIGlmIGhhcyhpLl9fY2xh
c3NfXykgZWxzZSBpCisgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIHYKKyAgICAgICAgICAg
ICAgICBdKQorICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHYsIGRpY3QpOgorICAgICAgICAg
ICAgICAgIGRmID0gZGljdF9mYWN0b3J5CisgICAgICAgICAgICAgICAgcnZbYS5uYW1lXSA9IGRm
KCgKKyAgICAgICAgICAgICAgICAgICAgYXNkaWN0KGtrLCBkaWN0X2ZhY3Rvcnk9ZGYpIGlmIGhh
cyhray5fX2NsYXNzX18pIGVsc2Uga2ssCisgICAgICAgICAgICAgICAgICAgIGFzZGljdCh2diwg
ZGljdF9mYWN0b3J5PWRmKSBpZiBoYXModnYuX19jbGFzc19fKSBlbHNlIHZ2KQorICAgICAgICAg
ICAgICAgICAgICBmb3Iga2ssIHZ2IGluIGl0ZXJpdGVtcyh2KSkKKyAgICAgICAgICAgIGVsc2U6
CisgICAgICAgICAgICAgICAgcnZbYS5uYW1lXSA9IHYKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIHJ2W2EubmFtZV0gPSB2CisgICAgcmV0dXJuIHJ2CisKKworZGVmIGFzdHVwbGUoaW5zdCwg
cmVjdXJzZT1UcnVlLCBmaWx0ZXI9Tm9uZSwgdHVwbGVfZmFjdG9yeT10dXBsZSwKKyAgICAgICAg
ICAgIHJldGFpbl9jb2xsZWN0aW9uX3R5cGVzPUZhbHNlKToKKyAgICAiIiIKKyAgICBSZXR1cm4g
dGhlIGBgYXR0cnNgYCBhdHRyaWJ1dGUgdmFsdWVzIG9mICppbnN0KiBhcyBhIHR1cGxlLgorCisg
ICAgT3B0aW9uYWxseSByZWN1cnNlIGludG8gb3RoZXIgYGBhdHRyc2BgLWRlY29yYXRlZCBjbGFz
c2VzLgorCisgICAgOnBhcmFtIGluc3Q6IEluc3RhbmNlIG9mIGFuIGBgYXR0cnNgYC1kZWNvcmF0
ZWQgY2xhc3MuCisgICAgOnBhcmFtIGJvb2wgcmVjdXJzZTogUmVjdXJzZSBpbnRvIGNsYXNzZXMg
dGhhdCBhcmUgYWxzbworICAgICAgICBgYGF0dHJzYGAtZGVjb3JhdGVkLgorICAgIDpwYXJhbSBj
YWxsYWJsZSBmaWx0ZXI6IEEgY2FsbGFibGUgd2hvc2UgcmV0dXJuIGNvZGUgZGV0ZXJtaW5lcyB3
aGV0aGVyIGFuCisgICAgICAgIGF0dHJpYnV0ZSBvciBlbGVtZW50IGlzIGluY2x1ZGVkIChgYFRy
dWVgYCkgb3IgZHJvcHBlZCAoYGBGYWxzZWBgKS4gIElzCisgICAgICAgIGNhbGxlZCB3aXRoIHRo
ZSA6Y2xhc3M6YGF0dHIuQXR0cmlidXRlYCBhcyB0aGUgZmlyc3QgYXJndW1lbnQgYW5kIHRoZQor
ICAgICAgICB2YWx1ZSBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50LgorICAgIDpwYXJhbSBjYWxsYWJs
ZSB0dXBsZV9mYWN0b3J5OiBBIGNhbGxhYmxlIHRvIHByb2R1Y2UgdHVwbGVzIGZyb20uICBGb3IK
KyAgICAgICAgZXhhbXBsZSwgdG8gcHJvZHVjZSBsaXN0cyBpbnN0ZWFkIG9mIHR1cGxlcy4KKyAg
ICA6cGFyYW0gYm9vbCByZXRhaW5fY29sbGVjdGlvbl90eXBlczogRG8gbm90IGNvbnZlcnQgdG8g
YGBsaXN0YGAKKyAgICAgICAgb3IgYGBkaWN0YGAgd2hlbiBlbmNvdW50ZXJpbmcgYW4gYXR0cmli
dXRlIHdoaWNoIHR5cGUgaXMKKyAgICAgICAgYGB0dXBsZWBgLCBgYGRpY3RgYCBvciBgYHNldGBg
LiAgT25seSBtZWFuaW5nZnVsIGlmIGBgcmVjdXJzZWBgIGlzCisgICAgICAgIGBgVHJ1ZWBgLgor
CisgICAgOnJ0eXBlOiByZXR1cm4gdHlwZSBvZiAqdHVwbGVfZmFjdG9yeSoKKworICAgIDpyYWlz
ZSBhdHRyLmV4Y2VwdGlvbnMuTm90QW5BdHRyc0NsYXNzRXJyb3I6IElmICpjbHMqIGlzIG5vdCBh
biBgYGF0dHJzYGAKKyAgICAgICAgY2xhc3MuCisKKyAgICAuLiAgdmVyc2lvbmFkZGVkOjogMTYu
Mi4wCisgICAgIiIiCisgICAgYXR0cnMgPSBmaWVsZHMoaW5zdC5fX2NsYXNzX18pCisgICAgcnYg
PSBbXQorICAgIHJldGFpbiA9IHJldGFpbl9jb2xsZWN0aW9uX3R5cGVzICAjIFZlcnkgbG9uZy4g
Oi8KKyAgICBmb3IgYSBpbiBhdHRyczoKKyAgICAgICAgdiA9IGdldGF0dHIoaW5zdCwgYS5uYW1l
KQorICAgICAgICBpZiBmaWx0ZXIgaXMgbm90IE5vbmUgYW5kIG5vdCBmaWx0ZXIoYSwgdik6Cisg
ICAgICAgICAgICBjb250aW51ZQorICAgICAgICBpZiByZWN1cnNlIGlzIFRydWU6CisgICAgICAg
ICAgICBpZiBoYXModi5fX2NsYXNzX18pOgorICAgICAgICAgICAgICAgIHJ2LmFwcGVuZChhc3R1
cGxlKHYsIHJlY3Vyc2U9VHJ1ZSwgZmlsdGVyPWZpbHRlciwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0dXBsZV9mYWN0b3J5PXR1cGxlX2ZhY3RvcnksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0YWluX2NvbGxlY3Rpb25fdHlwZXM9cmV0YWluKSkKKyAg
ICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZSh2LCAodHVwbGUsIGxpc3QsIHNldCkpOgorICAgICAg
ICAgICAgICAgIGNmID0gdi5fX2NsYXNzX18gaWYgcmV0YWluIGlzIFRydWUgZWxzZSBsaXN0Cisg
ICAgICAgICAgICAgICAgcnYuYXBwZW5kKGNmKFsKKyAgICAgICAgICAgICAgICAgICAgYXN0dXBs
ZShqLCByZWN1cnNlPVRydWUsIGZpbHRlcj1maWx0ZXIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdHVwbGVfZmFjdG9yeT10dXBsZV9mYWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldGFpbl9jb2xsZWN0aW9uX3R5cGVzPXJldGFpbikKKyAgICAgICAgICAgICAgICAg
ICAgaWYgaGFzKGouX19jbGFzc19fKSBlbHNlIGoKKyAgICAgICAgICAgICAgICAgICAgZm9yIGog
aW4gdgorICAgICAgICAgICAgICAgIF0pKQorICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHYs
IGRpY3QpOgorICAgICAgICAgICAgICAgIGRmID0gdi5fX2NsYXNzX18gaWYgcmV0YWluIGlzIFRy
dWUgZWxzZSBkaWN0CisgICAgICAgICAgICAgICAgcnYuYXBwZW5kKGRmKAorICAgICAgICAgICAg
ICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzdHVwbGUoCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtrLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0dXBsZV9mYWN0b3J5PXR1cGxlX2ZhY3RvcnksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldGFpbl9jb2xsZWN0aW9uX3R5cGVzPXJldGFpbgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICkgaWYgaGFzKGtrLl9fY2xhc3NfXykgZWxzZSBraywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhc3R1cGxlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2diwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHVwbGVfZmFjdG9yeT10
dXBsZV9mYWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXRhaW5fY29s
bGVjdGlvbl90eXBlcz1yZXRhaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApIGlmIGhh
cyh2di5fX2NsYXNzX18pIGVsc2UgdnYKKyAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZvciBraywgdnYgaW4gaXRlcml0ZW1zKHYpKSkKKyAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcnYuYXBwZW5kKHYpCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICBydi5hcHBlbmQodikKKyAgICByZXR1cm4gcnYgaWYgdHVwbGVfZmFjdG9yeSBp
cyBsaXN0IGVsc2UgdHVwbGVfZmFjdG9yeShydikKKworCitkZWYgaGFzKGNscyk6CisgICAgIiIi
CisgICAgQ2hlY2sgd2hldGhlciAqY2xzKiBpcyBhIGNsYXNzIHdpdGggYGBhdHRyc2BgIGF0dHJp
YnV0ZXMuCisKKyAgICA6cGFyYW0gdHlwZSBjbHM6IENsYXNzIHRvIGludHJvc3BlY3QuCisgICAg
OnJhaXNlIFR5cGVFcnJvcjogSWYgKmNscyogaXMgbm90IGEgY2xhc3MuCisKKyAgICA6cnR5cGU6
IDpjbGFzczpgYm9vbGAKKyAgICAiIiIKKyAgICByZXR1cm4gZ2V0YXR0cihjbHMsICJfX2F0dHJz
X2F0dHJzX18iLCBOb25lKSBpcyBub3QgTm9uZQorCisKK2RlZiBhc3NvYyhpbnN0LCAqKmNoYW5n
ZXMpOgorICAgICIiIgorICAgIENvcHkgKmluc3QqIGFuZCBhcHBseSAqY2hhbmdlcyouCisKKyAg
ICA6cGFyYW0gaW5zdDogSW5zdGFuY2Ugb2YgYSBjbGFzcyB3aXRoIGBgYXR0cnNgYCBhdHRyaWJ1
dGVzLgorICAgIDpwYXJhbSBjaGFuZ2VzOiBLZXl3b3JkIGNoYW5nZXMgaW4gdGhlIG5ldyBjb3B5
LgorCisgICAgOnJldHVybjogQSBjb3B5IG9mIGluc3Qgd2l0aCAqY2hhbmdlcyogaW5jb3Jwb3Jh
dGVkLgorCisgICAgOnJhaXNlIGF0dHIuZXhjZXB0aW9ucy5BdHRyc0F0dHJpYnV0ZU5vdEZvdW5k
RXJyb3I6IElmICphdHRyX25hbWUqIGNvdWxkbid0CisgICAgICAgIGJlIGZvdW5kIG9uICpjbHMq
LgorICAgIDpyYWlzZSBhdHRyLmV4Y2VwdGlvbnMuTm90QW5BdHRyc0NsYXNzRXJyb3I6IElmICpj
bHMqIGlzIG5vdCBhbiBgYGF0dHJzYGAKKyAgICAgICAgY2xhc3MuCisKKyAgICAuLiAgZGVwcmVj
YXRlZDo6IDE3LjEuMAorICAgICAgICBVc2UgOmZ1bmM6YGV2b2x2ZWAgaW5zdGVhZC4KKyAgICAi
IiIKKyAgICBpbXBvcnQgd2FybmluZ3MKKyAgICB3YXJuaW5ncy53YXJuKCJhc3NvYyBpcyBkZXBy
ZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgYWZ0ZXIgMjAxOC8wMS4iLAorICAgICAgICAgICAg
ICAgICAgRGVwcmVjYXRpb25XYXJuaW5nLCBzdGFja2xldmVsPTIpCisgICAgbmV3ID0gY29weS5j
b3B5KGluc3QpCisgICAgYXR0cnMgPSBmaWVsZHMoaW5zdC5fX2NsYXNzX18pCisgICAgZm9yIGss
IHYgaW4gaXRlcml0ZW1zKGNoYW5nZXMpOgorICAgICAgICBhID0gZ2V0YXR0cihhdHRycywgaywg
Tk9USElORykKKyAgICAgICAgaWYgYSBpcyBOT1RISU5HOgorICAgICAgICAgICAgcmFpc2UgQXR0
cnNBdHRyaWJ1dGVOb3RGb3VuZEVycm9yKAorICAgICAgICAgICAgICAgICJ7a30gaXMgbm90IGFu
IGF0dHJzIGF0dHJpYnV0ZSBvbiB7Y2x9LiIKKyAgICAgICAgICAgICAgICAuZm9ybWF0KGs9aywg
Y2w9bmV3Ll9fY2xhc3NfXykKKyAgICAgICAgICAgICkKKyAgICAgICAgX29ial9zZXRhdHRyKG5l
dywgaywgdikKKyAgICByZXR1cm4gbmV3CisKKworZGVmIGV2b2x2ZShpbnN0LCAqKmNoYW5nZXMp
OgorICAgICIiIgorICAgIENyZWF0ZSBhIG5ldyBpbnN0YW5jZSwgYmFzZWQgb24gKmluc3QqIHdp
dGggKmNoYW5nZXMqIGFwcGxpZWQuCisKKyAgICA6cGFyYW0gaW5zdDogSW5zdGFuY2Ugb2YgYSBj
bGFzcyB3aXRoIGBgYXR0cnNgYCBhdHRyaWJ1dGVzLgorICAgIDpwYXJhbSBjaGFuZ2VzOiBLZXl3
b3JkIGNoYW5nZXMgaW4gdGhlIG5ldyBjb3B5LgorCisgICAgOnJldHVybjogQSBjb3B5IG9mIGlu
c3Qgd2l0aCAqY2hhbmdlcyogaW5jb3Jwb3JhdGVkLgorCisgICAgOnJhaXNlIFR5cGVFcnJvcjog
SWYgKmF0dHJfbmFtZSogY291bGRuJ3QgYmUgZm91bmQgaW4gdGhlIGNsYXNzCisgICAgICAgIGBg
X19pbml0X19gYC4KKyAgICA6cmFpc2UgYXR0ci5leGNlcHRpb25zLk5vdEFuQXR0cnNDbGFzc0Vy
cm9yOiBJZiAqY2xzKiBpcyBub3QgYW4gYGBhdHRyc2BgCisgICAgICAgIGNsYXNzLgorCisgICAg
Li4gIHZlcnNpb25hZGRlZDo6IDE3LjEuMAorICAgICIiIgorICAgIGNscyA9IGluc3QuX19jbGFz
c19fCisgICAgYXR0cnMgPSBmaWVsZHMoY2xzKQorICAgIGZvciBhIGluIGF0dHJzOgorICAgICAg
ICBpZiBub3QgYS5pbml0OgorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgYXR0cl9uYW1l
ID0gYS5uYW1lICAjIFRvIGRlYWwgd2l0aCBwcml2YXRlIGF0dHJpYnV0ZXMuCisgICAgICAgIGlu
aXRfbmFtZSA9IGF0dHJfbmFtZSBpZiBhdHRyX25hbWVbMF0gIT0gIl8iIGVsc2UgYXR0cl9uYW1l
WzE6XQorICAgICAgICBpZiBpbml0X25hbWUgbm90IGluIGNoYW5nZXM6CisgICAgICAgICAgICBj
aGFuZ2VzW2luaXRfbmFtZV0gPSBnZXRhdHRyKGluc3QsIGF0dHJfbmFtZSkKKyAgICByZXR1cm4g
Y2xzKCoqY2hhbmdlcykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvc3JjL2F0dHIvX21ha2UucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2F0dHJzL3NyYy9hdHRyL19tYWtlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxYzVmOTRjZTM4Mjgx
NzcxMmEzOTcyNDRlMzk2ZGNlN2VlYjg3ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJz
L3NyYy9hdHRyL19tYWtlLnB5CkBAIC0wLDAgKzEsMTM5NSBAQAorZnJvbSBfX2Z1dHVyZV9fIGlt
cG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQg
aGFzaGxpYgoraW1wb3J0IGxpbmVjYWNoZQoraW1wb3J0IHN5cworCitmcm9tIG9wZXJhdG9yIGlt
cG9ydCBpdGVtZ2V0dGVyCisKK2Zyb20gLiBpbXBvcnQgX2NvbmZpZworZnJvbSAuX2NvbXBhdCBp
bXBvcnQgUFkyLCBpc2NsYXNzLCBpdGVyaXRlbXMsIG1ldGFkYXRhX3Byb3h5LCBzZXRfY2xvc3Vy
ZV9jZWxsCitmcm9tIC5leGNlcHRpb25zIGltcG9ydCAoCisgICAgRGVmYXVsdEFscmVhZHlTZXRF
cnJvciwgRnJvemVuSW5zdGFuY2VFcnJvciwgTm90QW5BdHRyc0NsYXNzRXJyb3IsCisgICAgVW5h
bm5vdGF0ZWRBdHRyaWJ1dGVFcnJvcgorKQorCisKKyMgVGhpcyBpcyB1c2VkIGF0IGxlYXN0IHR3
aWNlLCBzbyBjYWNoZSBpdCBoZXJlLgorX29ial9zZXRhdHRyID0gb2JqZWN0Ll9fc2V0YXR0cl9f
CitfaW5pdF9jb252ZXJ0X3BhdCA9ICJfX2F0dHJfY29udmVydF97fSIKK19pbml0X2ZhY3Rvcnlf
cGF0ID0gIl9fYXR0cl9mYWN0b3J5X3t9IgorX3R1cGxlX3Byb3BlcnR5X3BhdCA9ICIgICAge2F0
dHJfbmFtZX0gPSBwcm9wZXJ0eShpdGVtZ2V0dGVyKHtpbmRleH0pKSIKK19lbXB0eV9tZXRhZGF0
YV9zaW5nbGV0b24gPSBtZXRhZGF0YV9wcm94eSh7fSkKKworCitjbGFzcyBfTm90aGluZyhvYmpl
Y3QpOgorICAgICIiIgorICAgIFNlbnRpbmVsIGNsYXNzIHRvIGluZGljYXRlIHRoZSBsYWNrIG9m
IGEgdmFsdWUgd2hlbiBgYE5vbmVgYCBpcyBhbWJpZ3VvdXMuCisKKyAgICBBbGwgaW5zdGFuY2Vz
IG9mIGBfTm90aGluZ2AgYXJlIGVxdWFsLgorICAgICIiIgorICAgIGRlZiBfX2NvcHlfXyhzZWxm
KToKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBfX2RlZXBjb3B5X18oc2VsZiwgXyk6
CisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAg
ICAgICAgcmV0dXJuIG90aGVyLl9fY2xhc3NfXyA9PSBfTm90aGluZworCisgICAgZGVmIF9fbmVf
XyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBub3Qgc2VsZiA9PSBvdGhlcgorCisgICAg
ZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gIk5PVEhJTkciCisKKyAgICBkZWYg
X19oYXNoX18oc2VsZik6CisgICAgICAgIHJldHVybiAweGRlYWRiZWVmCisKKworTk9USElORyA9
IF9Ob3RoaW5nKCkKKyIiIgorU2VudGluZWwgdG8gaW5kaWNhdGUgdGhlIGxhY2sgb2YgYSB2YWx1
ZSB3aGVuIGBgTm9uZWBgIGlzIGFtYmlndW91cy4KKyIiIgorCisKK2RlZiBhdHRyaWIoZGVmYXVs
dD1OT1RISU5HLCB2YWxpZGF0b3I9Tm9uZSwKKyAgICAgICAgICAgcmVwcj1UcnVlLCBjbXA9VHJ1
ZSwgaGFzaD1Ob25lLCBpbml0PVRydWUsCisgICAgICAgICAgIGNvbnZlcnQ9Tm9uZSwgbWV0YWRh
dGE9e30sIHR5cGU9Tm9uZSk6CisgICAgIiIiCisgICAgQ3JlYXRlIGEgbmV3IGF0dHJpYnV0ZSBv
biBhIGNsYXNzLgorCisgICAgLi4gIHdhcm5pbmc6OgorCisgICAgICAgIERvZXMgKm5vdCogZG8g
YW55dGhpbmcgdW5sZXNzIHRoZSBjbGFzcyBpcyBhbHNvIGRlY29yYXRlZCB3aXRoCisgICAgICAg
IDpmdW5jOmBhdHRyLnNgIQorCisgICAgOnBhcmFtIGRlZmF1bHQ6IEEgdmFsdWUgdGhhdCBpcyB1
c2VkIGlmIGFuIGBgYXR0cnNgYC1nZW5lcmF0ZWQgYGBfX2luaXRfX2BgCisgICAgICAgIGlzIHVz
ZWQgYW5kIG5vIHZhbHVlIGlzIHBhc3NlZCB3aGlsZSBpbnN0YW50aWF0aW5nIG9yIHRoZSBhdHRy
aWJ1dGUgaXMKKyAgICAgICAgZXhjbHVkZWQgdXNpbmcgYGBpbml0PUZhbHNlYGAuCisKKyAgICAg
ICAgSWYgdGhlIHZhbHVlIGlzIGFuIGluc3RhbmNlIG9mIDpjbGFzczpgRmFjdG9yeWAsIGl0cyBj
YWxsYWJsZSB3aWxsIGJlCisgICAgICAgIHVzZWQgdG8gY29uc3RydWN0IGEgbmV3IHZhbHVlICh1
c2VmdWwgZm9yIG11dGFibGUgZGF0YSB0eXBlcyBsaWtlIGxpc3RzCisgICAgICAgIG9yIGRpY3Rz
KS4KKworICAgICAgICBJZiBhIGRlZmF1bHQgaXMgbm90IHNldCAob3Igc2V0IG1hbnVhbGx5IHRv
IGBgYXR0ci5OT1RISU5HYGApLCBhIHZhbHVlCisgICAgICAgICptdXN0KiBiZSBzdXBwbGllZCB3
aGVuIGluc3RhbnRpYXRpbmc7IG90aGVyd2lzZSBhIDpleGM6YFR5cGVFcnJvcmAKKyAgICAgICAg
d2lsbCBiZSByYWlzZWQuCisKKyAgICAgICAgVGhlIGRlZmF1bHQgY2FuIGFsc28gYmUgc2V0IHVz
aW5nIGRlY29yYXRvciBub3RhdGlvbiBhcyBzaG93biBiZWxvdy4KKworICAgIDp0eXBlIGRlZmF1
bHQ6IEFueSB2YWx1ZS4KKworICAgIDpwYXJhbSB2YWxpZGF0b3I6IDpmdW5jOmBjYWxsYWJsZWAg
dGhhdCBpcyBjYWxsZWQgYnkgYGBhdHRyc2BgLWdlbmVyYXRlZAorICAgICAgICBgYF9faW5pdF9f
YGAgbWV0aG9kcyBhZnRlciB0aGUgaW5zdGFuY2UgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuICBUaGV5
CisgICAgICAgIHJlY2VpdmUgdGhlIGluaXRpYWxpemVkIGluc3RhbmNlLCB0aGUgOmNsYXNzOmBB
dHRyaWJ1dGVgLCBhbmQgdGhlCisgICAgICAgIHBhc3NlZCB2YWx1ZS4KKworICAgICAgICBUaGUg
cmV0dXJuIHZhbHVlIGlzICpub3QqIGluc3BlY3RlZCBzbyB0aGUgdmFsaWRhdG9yIGhhcyB0byB0
aHJvdyBhbgorICAgICAgICBleGNlcHRpb24gaXRzZWxmLgorCisgICAgICAgIElmIGEgYGBsaXN0
YGAgaXMgcGFzc2VkLCBpdHMgaXRlbXMgYXJlIHRyZWF0ZWQgYXMgdmFsaWRhdG9ycyBhbmQgbXVz
dAorICAgICAgICBhbGwgcGFzcy4KKworICAgICAgICBWYWxpZGF0b3JzIGNhbiBiZSBnbG9iYWxs
eSBkaXNhYmxlZCBhbmQgcmUtZW5hYmxlZCB1c2luZworICAgICAgICA6ZnVuYzpgZ2V0X3J1bl92
YWxpZGF0b3JzYC4KKworICAgICAgICBUaGUgdmFsaWRhdG9yIGNhbiBhbHNvIGJlIHNldCB1c2lu
ZyBkZWNvcmF0b3Igbm90YXRpb24gYXMgc2hvd24gYmVsb3cuCisKKyAgICA6dHlwZSB2YWxpZGF0
b3I6IGBgY2FsbGFibGVgYCBvciBhIGBgbGlzdGBgIG9mIGBgY2FsbGFibGVgYFwgcy4KKworICAg
IDpwYXJhbSBib29sIHJlcHI6IEluY2x1ZGUgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGdlbmVyYXRl
ZCBgYF9fcmVwcl9fYGAKKyAgICAgICAgbWV0aG9kLgorICAgIDpwYXJhbSBib29sIGNtcDogSW5j
bHVkZSB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgZ2VuZXJhdGVkIGNvbXBhcmlzb24gbWV0aG9kcwor
ICAgICAgICAoYGBfX2VxX19gYCBldCBhbCkuCisgICAgOnBhcmFtIGhhc2g6IEluY2x1ZGUgdGhp
cyBhdHRyaWJ1dGUgaW4gdGhlIGdlbmVyYXRlZCBgYF9faGFzaF9fYGAKKyAgICAgICAgbWV0aG9k
LiAgSWYgYGBOb25lYGAgKGRlZmF1bHQpLCBtaXJyb3IgKmNtcConcyB2YWx1ZS4gIFRoaXMgaXMg
dGhlCisgICAgICAgIGNvcnJlY3QgYmVoYXZpb3IgYWNjb3JkaW5nIHRoZSBQeXRob24gc3BlYy4g
IFNldHRpbmcgdGhpcyB2YWx1ZSB0bworICAgICAgICBhbnl0aGluZyBlbHNlIHRoYW4gYGBOb25l
YGAgaXMgKmRpc2NvdXJhZ2VkKi4KKyAgICA6dHlwZSBoYXNoOiBgYGJvb2xgYCBvciBgYE5vbmVg
YAorICAgIDpwYXJhbSBib29sIGluaXQ6IEluY2x1ZGUgdGhpcyBhdHRyaWJ1dGUgaW4gdGhlIGdl
bmVyYXRlZCBgYF9faW5pdF9fYGAKKyAgICAgICAgbWV0aG9kLiAgSXQgaXMgcG9zc2libGUgdG8g
c2V0IHRoaXMgdG8gYGBGYWxzZWBgIGFuZCBzZXQgYSBkZWZhdWx0CisgICAgICAgIHZhbHVlLiAg
SW4gdGhhdCBjYXNlIHRoaXMgYXR0cmlidXRlZCBpcyB1bmNvbmRpdGlvbmFsbHkgaW5pdGlhbGl6
ZWQKKyAgICAgICAgd2l0aCB0aGUgc3BlY2lmaWVkIGRlZmF1bHQgdmFsdWUgb3IgZmFjdG9yeS4K
KyAgICA6cGFyYW0gY2FsbGFibGUgY29udmVydDogOmZ1bmM6YGNhbGxhYmxlYCB0aGF0IGlzIGNh
bGxlZCBieQorICAgICAgICBgYGF0dHJzYGAtZ2VuZXJhdGVkIGBgX19pbml0X19gYCBtZXRob2Rz
IHRvIGNvbnZlcnQgYXR0cmlidXRlJ3MgdmFsdWUKKyAgICAgICAgdG8gdGhlIGRlc2lyZWQgZm9y
bWF0LiAgSXQgaXMgZ2l2ZW4gdGhlIHBhc3NlZC1pbiB2YWx1ZSwgYW5kIHRoZQorICAgICAgICBy
ZXR1cm5lZCB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMgdGhlIG5ldyB2YWx1ZSBvZiB0aGUgYXR0cmli
dXRlLiAgVGhlCisgICAgICAgIHZhbHVlIGlzIGNvbnZlcnRlZCBiZWZvcmUgYmVpbmcgcGFzc2Vk
IHRvIHRoZSB2YWxpZGF0b3IsIGlmIGFueS4KKyAgICA6cGFyYW0gbWV0YWRhdGE6IEFuIGFyYml0
cmFyeSBtYXBwaW5nLCB0byBiZSB1c2VkIGJ5IHRoaXJkLXBhcnR5CisgICAgICAgIGNvbXBvbmVu
dHMuICBTZWUgOnJlZjpgZXh0ZW5kaW5nX21ldGFkYXRhYC4KKyAgICA6cGFyYW0gdHlwZTogVGhl
IHR5cGUgb2YgdGhlIGF0dHJpYnV0ZS4gIEluIFB5dGhvbiAzLjYgb3IgZ3JlYXRlciwgdGhlCisg
ICAgICAgIHByZWZlcnJlZCBtZXRob2QgdG8gc3BlY2lmeSB0aGUgdHlwZSBpcyB1c2luZyBhIHZh
cmlhYmxlIGFubm90YXRpb24KKyAgICAgICAgKHNlZSBgUEVQIDUyNiA8aHR0cHM6Ly93d3cucHl0
aG9uLm9yZy9kZXYvcGVwcy9wZXAtMDUyNi8+YF8pLgorICAgICAgICBUaGlzIGFyZ3VtZW50IGlz
IHByb3ZpZGVkIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorICAgICAgICBSZWdhcmRsZXNz
IG9mIHRoZSBhcHByb2FjaCB1c2VkLCB0aGUgdHlwZSB3aWxsIGJlIHN0b3JlZCBvbgorICAgICAg
ICBgYEF0dHJpYnV0ZS50eXBlYGAuCisKKyAgICAuLiAgdmVyc2lvbmNoYW5nZWQ6OiAxNy4xLjAg
KnZhbGlkYXRvciogY2FuIGJlIGEgYGBsaXN0YGAgbm93LgorICAgIC4uICB2ZXJzaW9uY2hhbmdl
ZDo6IDE3LjEuMAorICAgICAgICAqaGFzaCogaXMgYGBOb25lYGAgYW5kIHRoZXJlZm9yZSBtaXJy
b3JzICpjbXAqIGJ5IGRlZmF1bHQuCisgICAgLi4gIHZlcnNpb25hZGRlZDo6IDE3LjMuMCAqdHlw
ZSoKKyAgICAiIiIKKyAgICBpZiBoYXNoIGlzIG5vdCBOb25lIGFuZCBoYXNoIGlzIG5vdCBUcnVl
IGFuZCBoYXNoIGlzIG5vdCBGYWxzZToKKyAgICAgICAgcmFpc2UgVHlwZUVycm9yKAorICAgICAg
ICAgICAgIkludmFsaWQgdmFsdWUgZm9yIGhhc2guICBNdXN0IGJlIFRydWUsIEZhbHNlLCBvciBO
b25lLiIKKyAgICAgICAgKQorICAgIHJldHVybiBfQ291bnRpbmdBdHRyKAorICAgICAgICBkZWZh
dWx0PWRlZmF1bHQsCisgICAgICAgIHZhbGlkYXRvcj12YWxpZGF0b3IsCisgICAgICAgIHJlcHI9
cmVwciwKKyAgICAgICAgY21wPWNtcCwKKyAgICAgICAgaGFzaD1oYXNoLAorICAgICAgICBpbml0
PWluaXQsCisgICAgICAgIGNvbnZlcnQ9Y29udmVydCwKKyAgICAgICAgbWV0YWRhdGE9bWV0YWRh
dGEsCisgICAgICAgIHR5cGU9dHlwZSwKKyAgICApCisKKworZGVmIF9tYWtlX2F0dHJfdHVwbGVf
Y2xhc3MoY2xzX25hbWUsIGF0dHJfbmFtZXMpOgorICAgICIiIgorICAgIENyZWF0ZSBhIHR1cGxl
IHN1YmNsYXNzIHRvIGhvbGQgYEF0dHJpYnV0ZWBzIGZvciBhbiBgYXR0cnNgIGNsYXNzLgorCisg
ICAgVGhlIHN1YmNsYXNzIGlzIGEgYmFyZSB0dXBsZSB3aXRoIHByb3BlcnRpZXMgZm9yIG5hbWVz
LgorCisgICAgY2xhc3MgTXlDbGFzc0F0dHJpYnV0ZXModHVwbGUpOgorICAgICAgICBfX3Nsb3Rz
X18gPSAoKQorICAgICAgICB4ID0gcHJvcGVydHkoaXRlbWdldHRlcigwKSkKKyAgICAiIiIKKyAg
ICBhdHRyX2NsYXNzX25hbWUgPSAie31BdHRyaWJ1dGVzIi5mb3JtYXQoY2xzX25hbWUpCisgICAg
YXR0cl9jbGFzc190ZW1wbGF0ZSA9IFsKKyAgICAgICAgImNsYXNzIHt9KHR1cGxlKToiLmZvcm1h
dChhdHRyX2NsYXNzX25hbWUpLAorICAgICAgICAiICAgIF9fc2xvdHNfXyA9ICgpIiwKKyAgICBd
CisgICAgaWYgYXR0cl9uYW1lczoKKyAgICAgICAgZm9yIGksIGF0dHJfbmFtZSBpbiBlbnVtZXJh
dGUoYXR0cl9uYW1lcyk6CisgICAgICAgICAgICBhdHRyX2NsYXNzX3RlbXBsYXRlLmFwcGVuZChf
dHVwbGVfcHJvcGVydHlfcGF0LmZvcm1hdCgKKyAgICAgICAgICAgICAgICBpbmRleD1pLAorICAg
ICAgICAgICAgICAgIGF0dHJfbmFtZT1hdHRyX25hbWUsCisgICAgICAgICAgICApKQorICAgIGVs
c2U6CisgICAgICAgIGF0dHJfY2xhc3NfdGVtcGxhdGUuYXBwZW5kKCIgICAgcGFzcyIpCisgICAg
Z2xvYnMgPSB7Iml0ZW1nZXR0ZXIiOiBpdGVtZ2V0dGVyfQorICAgIGV2YWwoY29tcGlsZSgiXG4i
LmpvaW4oYXR0cl9jbGFzc190ZW1wbGF0ZSksICIiLCAiZXhlYyIpLCBnbG9icykKKyAgICByZXR1
cm4gZ2xvYnNbYXR0cl9jbGFzc19uYW1lXQorCisKKyMgVHVwbGUgY2xhc3MgZm9yIGV4dHJhY3Rl
ZCBhdHRyaWJ1dGVzIGZyb20gYSBjbGFzcyBkZWZpbml0aW9uLgorIyBgc3VwZXJfYXR0cnNgIGlz
IGEgc3Vic2V0IG9mIGBhdHRyc2AuCitfQXR0cmlidXRlcyA9IF9tYWtlX2F0dHJfdHVwbGVfY2xh
c3MoIl9BdHRyaWJ1dGVzIiwgWworICAgICJhdHRycyIsICAgICAgICAjIGFsbCBhdHRyaWJ1dGVz
IHRvIGJ1aWxkIGR1bmRlciBtZXRob2RzIGZvcgorICAgICJzdXBlcl9hdHRycyIsICAjIGF0dHJp
YnV0ZXMgdGhhdCBoYXZlIGJlZW4gaW5oZXJpdGVkIGZyb20gc3VwZXIgY2xhc3NlcworXSkKKwor
CitkZWYgX2lzX2NsYXNzX3Zhcihhbm5vdCk6CisgICAgIiIiCisgICAgQ2hlY2sgd2hldGhlciAq
YW5ub3QqIGlzIGEgdHlwaW5nLkNsYXNzVmFyLgorCisgICAgVGhlIGltcGxlbWVudGF0aW9uIGlz
IGdyb3NzIGJ1dCBpbXBvcnRpbmcgYHR5cGluZ2AgaXMgc2xvdyBhbmQgdGhlcmUgYXJlCisgICAg
ZGlzY3Vzc2lvbnMgdG8gcmVtb3ZlIGl0IGZyb20gdGhlIHN0ZGxpYiBhbGx0b2dldGhlci4KKyAg
ICAiIiIKKyAgICByZXR1cm4gc3RyKGFubm90KS5zdGFydHN3aXRoKCJ0eXBpbmcuQ2xhc3NWYXIi
KQorCisKK2RlZiBfZ2V0X2Fubm90YXRpb25zKGNscyk6CisgICAgIiIiCisgICAgR2V0IGFubm90
YXRpb25zIGZvciAqY2xzKi4KKyAgICAiIiIKKyAgICBhbm5zID0gZ2V0YXR0cihjbHMsICJfX2Fu
bm90YXRpb25zX18iLCBOb25lKQorICAgIGlmIGFubnMgaXMgTm9uZToKKyAgICAgICAgcmV0dXJu
IHt9CisKKyAgICAjIFZlcmlmeSB0aGF0IHRoZSBhbm5vdGF0aW9ucyBhcmVuJ3QgbWVyZWx5IGlu
aGVyaXRlZC4KKyAgICBmb3Igc3VwZXJfY2xzIGluIGNscy5fX21yb19fWzE6XToKKyAgICAgICAg
aWYgYW5ucyBpcyBnZXRhdHRyKHN1cGVyX2NscywgIl9fYW5ub3RhdGlvbnNfXyIsIE5vbmUpOgor
ICAgICAgICAgICAgcmV0dXJuIHt9CisKKyAgICByZXR1cm4gYW5ucworCisKK2RlZiBfdHJhbnNm
b3JtX2F0dHJzKGNscywgdGhlc2UsIGF1dG9fYXR0cmlicyk6CisgICAgIiIiCisgICAgVHJhbnNm
b3JtIGFsbCBgX0NvdW50aW5nQXR0cmBzIG9uIGEgY2xhc3MgaW50byBgQXR0cmlidXRlYHMuCisK
KyAgICBJZiAqdGhlc2UqIGlzIHBhc3NlZCwgdXNlIHRoYXQgYW5kIGRvbid0IGxvb2sgZm9yIHRo
ZW0gb24gdGhlIGNsYXNzLgorCisgICAgUmV0dXJuIGFuIGBfQXR0cmlidXRlc2AuCisgICAgIiIi
CisgICAgY2QgPSBjbHMuX19kaWN0X18KKyAgICBhbm5zID0gX2dldF9hbm5vdGF0aW9ucyhjbHMp
CisKKyAgICBpZiB0aGVzZSBpcyBub3QgTm9uZToKKyAgICAgICAgY2FfbGlzdCA9IHNvcnRlZCgo
CisgICAgICAgICAgICAobmFtZSwgY2EpCisgICAgICAgICAgICBmb3IgbmFtZSwgY2EKKyAgICAg
ICAgICAgIGluIGl0ZXJpdGVtcyh0aGVzZSkKKyAgICAgICAgKSwga2V5PWxhbWJkYSBlOiBlWzFd
LmNvdW50ZXIpCisgICAgZWxpZiBhdXRvX2F0dHJpYnMgaXMgVHJ1ZToKKyAgICAgICAgY2FfbmFt
ZXMgPSB7CisgICAgICAgICAgICBuYW1lCisgICAgICAgICAgICBmb3IgbmFtZSwgYXR0cgorICAg
ICAgICAgICAgaW4gY2QuaXRlbXMoKQorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShhdHRyLCBf
Q291bnRpbmdBdHRyKQorICAgICAgICB9CisgICAgICAgIGNhX2xpc3QgPSBbXQorICAgICAgICBh
bm5vdF9uYW1lcyA9IHNldCgpCisgICAgICAgIGZvciBhdHRyX25hbWUsIHR5cGUgaW4gYW5ucy5p
dGVtcygpOgorICAgICAgICAgICAgaWYgX2lzX2NsYXNzX3Zhcih0eXBlKToKKyAgICAgICAgICAg
ICAgICBjb250aW51ZQorICAgICAgICAgICAgYW5ub3RfbmFtZXMuYWRkKGF0dHJfbmFtZSkKKyAg
ICAgICAgICAgIGEgPSBjZC5nZXQoYXR0cl9uYW1lLCBOT1RISU5HKQorICAgICAgICAgICAgaWYg
bm90IGlzaW5zdGFuY2UoYSwgX0NvdW50aW5nQXR0cik6CisgICAgICAgICAgICAgICAgaWYgYSBp
cyBOT1RISU5HOgorICAgICAgICAgICAgICAgICAgICBhID0gYXR0cmliKCkKKyAgICAgICAgICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBhID0gYXR0cmliKGRlZmF1bHQ9YSkKKyAg
ICAgICAgICAgIGNhX2xpc3QuYXBwZW5kKChhdHRyX25hbWUsIGEpKQorCisgICAgICAgIHVuYW5u
b3RhdGVkID0gY2FfbmFtZXMgLSBhbm5vdF9uYW1lcworICAgICAgICBpZiBsZW4odW5hbm5vdGF0
ZWQpID4gMDoKKyAgICAgICAgICAgIHJhaXNlIFVuYW5ub3RhdGVkQXR0cmlidXRlRXJyb3IoCisg
ICAgICAgICAgICAgICAgIlRoZSBmb2xsb3dpbmcgYGF0dHIuaWJgcyBsYWNrIGEgdHlwZSBhbm5v
dGF0aW9uOiAiICsKKyAgICAgICAgICAgICAgICAiLCAiLmpvaW4oc29ydGVkKAorICAgICAgICAg
ICAgICAgICAgICB1bmFubm90YXRlZCwKKyAgICAgICAgICAgICAgICAgICAga2V5PWxhbWJkYSBu
OiBjZC5nZXQobikuY291bnRlcgorICAgICAgICAgICAgICAgICkpICsgIi4iCisgICAgICAgICAg
ICApCisgICAgZWxzZToKKyAgICAgICAgY2FfbGlzdCA9IHNvcnRlZCgoCisgICAgICAgICAgICAo
bmFtZSwgYXR0cikKKyAgICAgICAgICAgIGZvciBuYW1lLCBhdHRyCisgICAgICAgICAgICBpbiBj
ZC5pdGVtcygpCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGF0dHIsIF9Db3VudGluZ0F0dHIp
CisgICAgICAgICksIGtleT1sYW1iZGEgZTogZVsxXS5jb3VudGVyKQorCisgICAgbm9uX3N1cGVy
X2F0dHJzID0gWworICAgICAgICBBdHRyaWJ1dGUuZnJvbV9jb3VudGluZ19hdHRyKAorICAgICAg
ICAgICAgbmFtZT1hdHRyX25hbWUsCisgICAgICAgICAgICBjYT1jYSwKKyAgICAgICAgICAgIHR5
cGU9YW5ucy5nZXQoYXR0cl9uYW1lKSwKKyAgICAgICAgKQorICAgICAgICBmb3IgYXR0cl9uYW1l
LCBjYQorICAgICAgICBpbiBjYV9saXN0CisgICAgXQorCisgICAgIyBXYWxrICpkb3duKiB0aGUg
TVJPIGZvciBhdHRyaWJ1dGVzLiAgV2hpbGUgZG9pbmcgc28sIHdlIGNvbGxlY3QgdGhlIG5hbWVz
CisgICAgIyBvZiBhdHRyaWJ1dGVzIHdlJ3ZlIHNlZW4gaW4gYHRha2VfYXR0cl9uYW1lc2AgYW5k
IGlnbm9yZSB0aGVpcgorICAgICMgcmVkZWZpbml0aW9ucyBkZWVwZXIgaW4gdGhlIGhpZXJhcmNo
eS4KKyAgICBzdXBlcl9hdHRycyA9IFtdCisgICAgdGFrZW5fYXR0cl9uYW1lcyA9IHthLm5hbWU6
IGEgZm9yIGEgaW4gbm9uX3N1cGVyX2F0dHJzfQorICAgIGZvciBzdXBlcl9jbHMgaW4gY2xzLl9f
bXJvX19bMTotMV06CisgICAgICAgIHN1Yl9hdHRycyA9IGdldGF0dHIoc3VwZXJfY2xzLCAiX19h
dHRyc19hdHRyc19fIiwgTm9uZSkKKyAgICAgICAgaWYgc3ViX2F0dHJzIGlzIG5vdCBOb25lOgor
ICAgICAgICAgICAgIyBXZSBpdGVyYXRlIG92ZXIgc3ViX2F0dHJzIGJhY2t3YXJkcyBzbyB3ZSBj
YW4gcmV2ZXJzZSB0aGUgd2hvbGUKKyAgICAgICAgICAgICMgbGlzdCBpbiB0aGUgZW5kIGFuZCBn
ZXQgYWxsIGF0dHJpYnV0ZXMgaW4gdGhlIG9yZGVyIHRoZXkgaGF2ZQorICAgICAgICAgICAgIyBi
ZWVuIGRlZmluZWQuCisgICAgICAgICAgICBmb3IgYSBpbiByZXZlcnNlZChzdWJfYXR0cnMpOgor
ICAgICAgICAgICAgICAgIHByZXZfYSA9IHRha2VuX2F0dHJfbmFtZXMuZ2V0KGEubmFtZSkKKyAg
ICAgICAgICAgICAgICBpZiBwcmV2X2EgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgc3Vw
ZXJfYXR0cnMuYXBwZW5kKGEpCisgICAgICAgICAgICAgICAgICAgIHRha2VuX2F0dHJfbmFtZXNb
YS5uYW1lXSA9IGEKKyAgICAgICAgICAgICAgICBlbGlmIHByZXZfYSA9PSBhOgorICAgICAgICAg
ICAgICAgICAgICAjIFRoaXMgaGFwcGVucyB0aHJ1IG11bHRpcGxlIGluaGVyaXRhbmNlLiAgV2Ug
ZG9uJ3Qgd2FudAorICAgICAgICAgICAgICAgICAgICAjIHRvIGZhdm9yIGF0dHJpYnV0ZXMgdGhh
dCBhcmUgZnVydGhlciBkb3duIGluIHRoZSB0cmVlCisgICAgICAgICAgICAgICAgICAgICMgc28g
d2UgbW92ZSB0aGVtIHRvIHRoZSBiYWNrLgorICAgICAgICAgICAgICAgICAgICBzdXBlcl9hdHRy
cy5yZW1vdmUoYSkKKyAgICAgICAgICAgICAgICAgICAgc3VwZXJfYXR0cnMuYXBwZW5kKGEpCisK
KyAgICAjIE5vdyByZXZlcnNlIHRoZSBsaXN0LCBzdWNoIHRoYXQgdGhlIGF0dHJpYnV0ZXMgYXJl
IHNvcnRlZCBieSAqZGVzY2VuZGluZyoKKyAgICAjIGFnZS4gIElPVzogdGhlIG9sZGVzdCBhdHRy
aWJ1dGUgZGVmaW5pdGlvbiBpcyBhdCB0aGUgaGVhZCBvZiB0aGUgbGlzdC4KKyAgICBzdXBlcl9h
dHRycy5yZXZlcnNlKCkKKworICAgIGF0dHJfbmFtZXMgPSBbYS5uYW1lIGZvciBhIGluIHN1cGVy
X2F0dHJzICsgbm9uX3N1cGVyX2F0dHJzXQorCisgICAgQXR0cnNDbGFzcyA9IF9tYWtlX2F0dHJf
dHVwbGVfY2xhc3MoY2xzLl9fbmFtZV9fLCBhdHRyX25hbWVzKQorCisgICAgYXR0cnMgPSBBdHRy
c0NsYXNzKAorICAgICAgICBzdXBlcl9hdHRycyArIFsKKyAgICAgICAgICAgIEF0dHJpYnV0ZS5m
cm9tX2NvdW50aW5nX2F0dHIoCisgICAgICAgICAgICAgICAgbmFtZT1hdHRyX25hbWUsCisgICAg
ICAgICAgICAgICAgY2E9Y2EsCisgICAgICAgICAgICAgICAgdHlwZT1hbm5zLmdldChhdHRyX25h
bWUpCisgICAgICAgICAgICApCisgICAgICAgICAgICBmb3IgYXR0cl9uYW1lLCBjYQorICAgICAg
ICAgICAgaW4gY2FfbGlzdAorICAgICAgICBdCisgICAgKQorCisgICAgaGFkX2RlZmF1bHQgPSBG
YWxzZQorICAgIGZvciBhIGluIGF0dHJzOgorICAgICAgICBpZiBoYWRfZGVmYXVsdCBpcyBUcnVl
IGFuZCBhLmRlZmF1bHQgaXMgTk9USElORyBhbmQgYS5pbml0IGlzIFRydWU6CisgICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAgICJObyBtYW5kYXRvcnkgYXR0cmli
dXRlcyBhbGxvd2VkIGFmdGVyIGFuIGF0dHJpYnV0ZSB3aXRoIGEgIgorICAgICAgICAgICAgICAg
ICJkZWZhdWx0IHZhbHVlIG9yIGZhY3RvcnkuICBBdHRyaWJ1dGUgaW4gcXVlc3Rpb246IHthIXJ9
IgorICAgICAgICAgICAgICAgIC5mb3JtYXQoYT1hKQorICAgICAgICAgICAgKQorICAgICAgICBl
bGlmIGhhZF9kZWZhdWx0IGlzIEZhbHNlIGFuZCBcCisgICAgICAgICAgICAgICAgYS5kZWZhdWx0
IGlzIG5vdCBOT1RISU5HIGFuZCBcCisgICAgICAgICAgICAgICAgYS5pbml0IGlzIG5vdCBGYWxz
ZToKKyAgICAgICAgICAgIGhhZF9kZWZhdWx0ID0gVHJ1ZQorCisgICAgcmV0dXJuIF9BdHRyaWJ1
dGVzKChhdHRycywgc3VwZXJfYXR0cnMpKQorCisKK2RlZiBfZnJvemVuX3NldGF0dHJzKHNlbGYs
IG5hbWUsIHZhbHVlKToKKyAgICAiIiIKKyAgICBBdHRhY2hlZCB0byBmcm96ZW4gY2xhc3NlcyBh
cyBfX3NldGF0dHJfXy4KKyAgICAiIiIKKyAgICByYWlzZSBGcm96ZW5JbnN0YW5jZUVycm9yKCkK
KworCitkZWYgX2Zyb3plbl9kZWxhdHRycyhzZWxmLCBuYW1lKToKKyAgICAiIiIKKyAgICBBdHRh
Y2hlZCB0byBmcm96ZW4gY2xhc3NlcyBhcyBfX2RlbGF0dHJfXy4KKyAgICAiIiIKKyAgICByYWlz
ZSBGcm96ZW5JbnN0YW5jZUVycm9yKCkKKworCitjbGFzcyBfQ2xhc3NCdWlsZGVyKG9iamVjdCk6
CisgICAgIiIiCisgICAgSXRlcmF0aXZlbHkgYnVpbGQgKm9uZSogY2xhc3MuCisgICAgIiIiCisg
ICAgX19zbG90c19fID0gKAorICAgICAgICAiX2NscyIsICJfY2xzX2RpY3QiLCAiX2F0dHJzIiwg
Il9zdXBlcl9uYW1lcyIsICJfYXR0cl9uYW1lcyIsICJfc2xvdHMiLAorICAgICAgICAiX2Zyb3pl
biIsICJfaGFzX3Bvc3RfaW5pdCIsCisgICAgKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNs
cywgdGhlc2UsIHNsb3RzLCBmcm96ZW4sIGF1dG9fYXR0cmlicyk6CisgICAgICAgIGF0dHJzLCBz
dXBlcl9hdHRycyA9IF90cmFuc2Zvcm1fYXR0cnMoY2xzLCB0aGVzZSwgYXV0b19hdHRyaWJzKQor
CisgICAgICAgIHNlbGYuX2NscyA9IGNscworICAgICAgICBzZWxmLl9jbHNfZGljdCA9IGRpY3Qo
Y2xzLl9fZGljdF9fKSBpZiBzbG90cyBlbHNlIHt9CisgICAgICAgIHNlbGYuX2F0dHJzID0gYXR0
cnMKKyAgICAgICAgc2VsZi5fc3VwZXJfbmFtZXMgPSBzZXQoYS5uYW1lIGZvciBhIGluIHN1cGVy
X2F0dHJzKQorICAgICAgICBzZWxmLl9hdHRyX25hbWVzID0gdHVwbGUoYS5uYW1lIGZvciBhIGlu
IGF0dHJzKQorICAgICAgICBzZWxmLl9zbG90cyA9IHNsb3RzCisgICAgICAgIHNlbGYuX2Zyb3pl
biA9IGZyb3plbiBvciBfaGFzX2Zyb3plbl9zdXBlcmNsYXNzKGNscykKKyAgICAgICAgc2VsZi5f
aGFzX3Bvc3RfaW5pdCA9IGJvb2woZ2V0YXR0cihjbHMsICJfX2F0dHJzX3Bvc3RfaW5pdF9fIiwg
RmFsc2UpKQorCisgICAgICAgIHNlbGYuX2Nsc19kaWN0WyJfX2F0dHJzX2F0dHJzX18iXSA9IHNl
bGYuX2F0dHJzCisKKyAgICAgICAgaWYgZnJvemVuOgorICAgICAgICAgICAgc2VsZi5fY2xzX2Rp
Y3RbIl9fc2V0YXR0cl9fIl0gPSBfZnJvemVuX3NldGF0dHJzCisgICAgICAgICAgICBzZWxmLl9j
bHNfZGljdFsiX19kZWxhdHRyX18iXSA9IF9mcm96ZW5fZGVsYXR0cnMKKworICAgIGRlZiBfX3Jl
cHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICI8X0NsYXNzQnVpbGRlcihjbHM9e2Nsc30pPiIu
Zm9ybWF0KGNscz1zZWxmLl9jbHMuX19uYW1lX18pCisKKyAgICBkZWYgYnVpbGRfY2xhc3Moc2Vs
Zik6CisgICAgICAgICIiIgorICAgICAgICBGaW5hbGl6ZSBjbGFzcyBiYXNlZCBvbiB0aGUgYWNj
dW11bGF0ZWQgY29uZmlndXJhdGlvbi4KKworICAgICAgICBCdWlsZGVyIGNhbm5vdCBiZSB1c2Vk
IGFueW1vcmUgYWZ0ZXIgY2FsbGluZyB0aGlzIG1ldGhvZC4KKyAgICAgICAgIiIiCisgICAgICAg
IGlmIHNlbGYuX3Nsb3RzIGlzIFRydWU6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fY3JlYXRl
X3Nsb3RzX2NsYXNzKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9w
YXRjaF9vcmlnaW5hbF9jbGFzcygpCisKKyAgICBkZWYgX3BhdGNoX29yaWdpbmFsX2NsYXNzKHNl
bGYpOgorICAgICAgICAiIiIKKyAgICAgICAgQXBwbHkgYWNjdW11bGF0ZWQgbWV0aG9kcyBhbmQg
cmV0dXJuIHRoZSBjbGFzcy4KKyAgICAgICAgIiIiCisgICAgICAgIGNscyA9IHNlbGYuX2Nscwor
ICAgICAgICBzdXBlcl9uYW1lcyA9IHNlbGYuX3N1cGVyX25hbWVzCisKKyAgICAgICAgIyBDbGVh
biBjbGFzcyBvZiBhdHRyaWJ1dGUgZGVmaW5pdGlvbnMgKGBhdHRyLmliKClgcykuCisgICAgICAg
IGZvciBuYW1lIGluIHNlbGYuX2F0dHJfbmFtZXM6CisgICAgICAgICAgICBpZiBuYW1lIG5vdCBp
biBzdXBlcl9uYW1lcyBhbmQgXAorICAgICAgICAgICAgICAgICAgICBnZXRhdHRyKGNscywgbmFt
ZSwgTm9uZSkgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgZGVsYXR0cihjbHMsIG5hbWUp
CisKKyAgICAgICAgIyBBdHRhY2ggb3VyIGR1bmRlciBtZXRob2RzLgorICAgICAgICBmb3IgbmFt
ZSwgdmFsdWUgaW4gc2VsZi5fY2xzX2RpY3QuaXRlbXMoKToKKyAgICAgICAgICAgIHNldGF0dHIo
Y2xzLCBuYW1lLCB2YWx1ZSkKKworICAgICAgICByZXR1cm4gY2xzCisKKyAgICBkZWYgX2NyZWF0
ZV9zbG90c19jbGFzcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIEJ1aWxkIGFuZCByZXR1
cm4gYSBuZXcgY2xhc3Mgd2l0aCBhIGBfX3Nsb3RzX19gIGF0dHJpYnV0ZS4KKyAgICAgICAgIiIi
CisgICAgICAgIHN1cGVyX25hbWVzID0gc2VsZi5fc3VwZXJfbmFtZXMKKyAgICAgICAgY2QgPSB7
CisgICAgICAgICAgICBrOiB2CisgICAgICAgICAgICBmb3IgaywgdiBpbiBpdGVyaXRlbXMoc2Vs
Zi5fY2xzX2RpY3QpCisgICAgICAgICAgICBpZiBrIG5vdCBpbiB0dXBsZShzZWxmLl9hdHRyX25h
bWVzKSArICgiX19kaWN0X18iLCkKKyAgICAgICAgfQorCisgICAgICAgICMgV2Ugb25seSBhZGQg
dGhlIG5hbWVzIG9mIGF0dHJpYnV0ZXMgdGhhdCBhcmVuJ3QgaW5oZXJpdGVkLgorICAgICAgICAj
IFNldHRpbmdzIF9fc2xvdHNfXyB0byBpbmhlcml0ZWQgYXR0cmlidXRlcyB3YXN0ZXMgbWVtb3J5
LgorICAgICAgICBjZFsiX19zbG90c19fIl0gPSB0dXBsZSgKKyAgICAgICAgICAgIG5hbWUKKyAg
ICAgICAgICAgIGZvciBuYW1lIGluIHNlbGYuX2F0dHJfbmFtZXMKKyAgICAgICAgICAgIGlmIG5h
bWUgbm90IGluIHN1cGVyX25hbWVzCisgICAgICAgICkKKworICAgICAgICBxdWFsbmFtZSA9IGdl
dGF0dHIoc2VsZi5fY2xzLCAiX19xdWFsbmFtZV9fIiwgTm9uZSkKKyAgICAgICAgaWYgcXVhbG5h
bWUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBjZFsiX19xdWFsbmFtZV9fIl0gPSBxdWFsbmFt
ZQorCisgICAgICAgIGF0dHJfbmFtZXMgPSB0dXBsZShzZWxmLl9hdHRyX25hbWVzKQorCisgICAg
ICAgIGRlZiBzbG90c19nZXRzdGF0ZShzZWxmKToKKyAgICAgICAgICAgICIiIgorICAgICAgICAg
ICAgQXV0b21hdGljYWxseSBjcmVhdGVkIGJ5IGF0dHJzLgorICAgICAgICAgICAgIiIiCisgICAg
ICAgICAgICByZXR1cm4gdHVwbGUoZ2V0YXR0cihzZWxmLCBuYW1lKSBmb3IgbmFtZSBpbiBhdHRy
X25hbWVzKQorCisgICAgICAgIGRlZiBzbG90c19zZXRzdGF0ZShzZWxmLCBzdGF0ZSk6CisgICAg
ICAgICAgICAiIiIKKyAgICAgICAgICAgIEF1dG9tYXRpY2FsbHkgY3JlYXRlZCBieSBhdHRycy4K
KyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgX19ib3VuZF9zZXRhdHRyID0gX29ial9zZXRh
dHRyLl9fZ2V0X18oc2VsZiwgQXR0cmlidXRlKQorICAgICAgICAgICAgZm9yIG5hbWUsIHZhbHVl
IGluIHppcChhdHRyX25hbWVzLCBzdGF0ZSk6CisgICAgICAgICAgICAgICAgX19ib3VuZF9zZXRh
dHRyKG5hbWUsIHZhbHVlKQorCisgICAgICAgICMgc2xvdHMgYW5kIGZyb3plbiByZXF1aXJlIF9f
Z2V0c3RhdGVfXy9fX3NldHN0YXRlX18gdG8gd29yaworICAgICAgICBjZFsiX19nZXRzdGF0ZV9f
Il0gPSBzbG90c19nZXRzdGF0ZQorICAgICAgICBjZFsiX19zZXRzdGF0ZV9fIl0gPSBzbG90c19z
ZXRzdGF0ZQorCisgICAgICAgICMgQ3JlYXRlIG5ldyBjbGFzcyBiYXNlZCBvbiBvbGQgY2xhc3Mg
YW5kIG91ciBtZXRob2RzLgorICAgICAgICBjbHMgPSB0eXBlKHNlbGYuX2NscykoCisgICAgICAg
ICAgICBzZWxmLl9jbHMuX19uYW1lX18sCisgICAgICAgICAgICBzZWxmLl9jbHMuX19iYXNlc19f
LAorICAgICAgICAgICAgY2QsCisgICAgICAgICkKKworICAgICAgICAjIFRoZSBmb2xsb3dpbmcg
aXMgYSBmaXggZm9yCisgICAgICAgICMgaHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi1hdHRycy9h
dHRycy9pc3N1ZXMvMTAyLiAgT24gUHl0aG9uIDMsCisgICAgICAgICMgaWYgYSBtZXRob2QgbWVu
dGlvbnMgYF9fY2xhc3NfX2Agb3IgdXNlcyB0aGUgbm8tYXJnIHN1cGVyKCksIHRoZQorICAgICAg
ICAjIGNvbXBpbGVyIHdpbGwgYmFrZSBhIHJlZmVyZW5jZSB0byB0aGUgY2xhc3MgaW4gdGhlIG1l
dGhvZCBpdHNlbGYKKyAgICAgICAgIyBhcyBgbWV0aG9kLl9fY2xvc3VyZV9fYC4gIFNpbmNlIHdl
IHJlcGxhY2UgdGhlIGNsYXNzIHdpdGggYQorICAgICAgICAjIGNsb25lLCB3ZSByZXdyaXRlIHRo
ZXNlIHJlZmVyZW5jZXMgc28gaXQga2VlcHMgd29ya2luZy4KKyAgICAgICAgZm9yIGl0ZW0gaW4g
Y2xzLl9fZGljdF9fLnZhbHVlcygpOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShpdGVtLCAo
Y2xhc3NtZXRob2QsIHN0YXRpY21ldGhvZCkpOgorICAgICAgICAgICAgICAgICMgQ2xhc3MtIGFu
ZCBzdGF0aWNtZXRob2RzIGhpZGUgdGhlaXIgZnVuY3Rpb25zIGluc2lkZS4KKyAgICAgICAgICAg
ICAgICAjIFRoZXNlIG1pZ2h0IG5lZWQgdG8gYmUgcmV3cml0dGVuIGFzIHdlbGwuCisgICAgICAg
ICAgICAgICAgY2xvc3VyZV9jZWxscyA9IGdldGF0dHIoaXRlbS5fX2Z1bmNfXywgIl9fY2xvc3Vy
ZV9fIiwgTm9uZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgY2xvc3VyZV9j
ZWxscyA9IGdldGF0dHIoaXRlbSwgIl9fY2xvc3VyZV9fIiwgTm9uZSkKKworICAgICAgICAgICAg
aWYgbm90IGNsb3N1cmVfY2VsbHM6ICAjIENhdGNoIE5vbmUgb3IgdGhlIGVtcHR5IGxpc3QuCisg
ICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGZvciBjZWxsIGluIGNsb3N1cmVf
Y2VsbHM6CisgICAgICAgICAgICAgICAgaWYgY2VsbC5jZWxsX2NvbnRlbnRzIGlzIHNlbGYuX2Ns
czoKKyAgICAgICAgICAgICAgICAgICAgc2V0X2Nsb3N1cmVfY2VsbChjZWxsLCBjbHMpCisKKyAg
ICAgICAgcmV0dXJuIGNscworCisgICAgZGVmIGFkZF9yZXByKHNlbGYsIG5zKToKKyAgICAgICAg
c2VsZi5fY2xzX2RpY3RbIl9fcmVwcl9fIl0gPSBfbWFrZV9yZXByKHNlbGYuX2F0dHJzLCBucz1u
cykKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBhZGRfc3RyKHNlbGYpOgorICAgICAg
ICByZXByXyA9IHNlbGYuX2Nsc19kaWN0LmdldCgiX19yZXByX18iKQorICAgICAgICBpZiByZXBy
XyBpcyBOb25lOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAg
ICAiX19zdHJfXyBjYW4gb25seSBiZSBnZW5lcmF0ZWQgaWYgYSBfX3JlcHJfXyBleGlzdHMuIgor
ICAgICAgICAgICAgKQorCisgICAgICAgIHNlbGYuX2Nsc19kaWN0WyJfX3N0cl9fIl0gPSByZXBy
XworICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIG1ha2VfdW5oYXNoYWJsZShzZWxmKToK
KyAgICAgICAgc2VsZi5fY2xzX2RpY3RbIl9faGFzaF9fIl0gPSBOb25lCisgICAgICAgIHJldHVy
biBzZWxmCisKKyAgICBkZWYgYWRkX2hhc2goc2VsZik6CisgICAgICAgIHNlbGYuX2Nsc19kaWN0
WyJfX2hhc2hfXyJdID0gX21ha2VfaGFzaChzZWxmLl9hdHRycykKKyAgICAgICAgcmV0dXJuIHNl
bGYKKworICAgIGRlZiBhZGRfaW5pdChzZWxmKToKKyAgICAgICAgc2VsZi5fY2xzX2RpY3RbIl9f
aW5pdF9fIl0gPSBfbWFrZV9pbml0KAorICAgICAgICAgICAgc2VsZi5fYXR0cnMsCisgICAgICAg
ICAgICBzZWxmLl9oYXNfcG9zdF9pbml0LAorICAgICAgICAgICAgc2VsZi5fZnJvemVuLAorICAg
ICAgICApCisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgYWRkX2NtcChzZWxmKToKKyAg
ICAgICAgY2QgPSBzZWxmLl9jbHNfZGljdAorCisgICAgICAgIGNkWyJfX2VxX18iXSwgY2RbIl9f
bmVfXyJdLCBjZFsiX19sdF9fIl0sIGNkWyJfX2xlX18iXSwgY2RbIl9fZ3RfXyJdLCBcCisgICAg
ICAgICAgICBjZFsiX19nZV9fIl0gPSBfbWFrZV9jbXAoc2VsZi5fYXR0cnMpCisKKyAgICAgICAg
cmV0dXJuIHNlbGYKKworCitkZWYgYXR0cnMobWF5YmVfY2xzPU5vbmUsIHRoZXNlPU5vbmUsIHJl
cHJfbnM9Tm9uZSwKKyAgICAgICAgICByZXByPVRydWUsIGNtcD1UcnVlLCBoYXNoPU5vbmUsIGlu
aXQ9VHJ1ZSwKKyAgICAgICAgICBzbG90cz1GYWxzZSwgZnJvemVuPUZhbHNlLCBzdHI9RmFsc2Us
IGF1dG9fYXR0cmlicz1GYWxzZSk6CisgICAgciIiIgorICAgIEEgY2xhc3MgZGVjb3JhdG9yIHRo
YXQgYWRkcyBgZHVuZGVyCisgICAgPGh0dHBzOi8vd2lraS5weXRob24ub3JnL21vaW4vRHVuZGVy
QWxpYXM+YF9cIC1tZXRob2RzIGFjY29yZGluZyB0byB0aGUKKyAgICBzcGVjaWZpZWQgYXR0cmli
dXRlcyB1c2luZyA6ZnVuYzpgYXR0ci5pYmAgb3IgdGhlICp0aGVzZSogYXJndW1lbnQuCisKKyAg
ICA6cGFyYW0gdGhlc2U6IEEgZGljdGlvbmFyeSBvZiBuYW1lIHRvIDpmdW5jOmBhdHRyLmliYCBt
YXBwaW5ncy4gIFRoaXMgaXMKKyAgICAgICAgdXNlZnVsIHRvIGF2b2lkIHRoZSBkZWZpbml0aW9u
IG9mIHlvdXIgYXR0cmlidXRlcyB3aXRoaW4gdGhlIGNsYXNzIGJvZHkKKyAgICAgICAgYmVjYXVz
ZSB5b3UgY2FuJ3QgKGUuZy4gaWYgeW91IHdhbnQgdG8gYWRkIGBgX19yZXByX19gYCBtZXRob2Rz
IHRvCisgICAgICAgIERqYW5nbyBtb2RlbHMpIG9yIGRvbid0IHdhbnQgdG8uCisKKyAgICAgICAg
SWYgKnRoZXNlKiBpcyBub3QgYGBOb25lYGAsIGBgYXR0cnNgYCB3aWxsICpub3QqIHNlYXJjaCB0
aGUgY2xhc3MgYm9keQorICAgICAgICBmb3IgYXR0cmlidXRlcy4KKworICAgIDp0eXBlIHRoZXNl
OiA6Y2xhc3M6YGRpY3RgIG9mIDpjbGFzczpgc3RyYCB0byA6ZnVuYzpgYXR0ci5pYmAKKworICAg
IDpwYXJhbSBzdHIgcmVwcl9uczogV2hlbiB1c2luZyBuZXN0ZWQgY2xhc3NlcywgdGhlcmUncyBu
byB3YXkgaW4gUHl0aG9uIDIKKyAgICAgICAgdG8gYXV0b21hdGljYWxseSBkZXRlY3QgdGhhdC4g
IFRoZXJlZm9yZSBpdCdzIHBvc3NpYmxlIHRvIHNldCB0aGUKKyAgICAgICAgbmFtZXNwYWNlIGV4
cGxpY2l0bHkgZm9yIGEgbW9yZSBtZWFuaW5nZnVsIGBgcmVwcmBgIG91dHB1dC4KKyAgICA6cGFy
YW0gYm9vbCByZXByOiBDcmVhdGUgYSBgYF9fcmVwcl9fYGAgbWV0aG9kIHdpdGggYSBodW1hbiBy
ZWFkYWJsZQorICAgICAgICByZXByZXNlbnRhdGlvbiBvZiBgYGF0dHJzYGAgYXR0cmlidXRlcy4u
CisgICAgOnBhcmFtIGJvb2wgc3RyOiBDcmVhdGUgYSBgYF9fc3RyX19gYCBtZXRob2QgdGhhdCBp
cyBpZGVudGljYWwgdG8KKyAgICAgICAgYGBfX3JlcHJfX2BgLiAgVGhpcyBpcyB1c3VhbGx5IG5v
dCBuZWNlc3NhcnkgZXhjZXB0IGZvcgorICAgICAgICA6Y2xhc3M6YEV4Y2VwdGlvbmBcIHMuCisg
ICAgOnBhcmFtIGJvb2wgY21wOiBDcmVhdGUgYGBfX2VxX19gYCwgYGBfX25lX19gYCwgYGBfX2x0
X19gYCwgYGBfX2xlX19gYCwKKyAgICAgICAgYGBfX2d0X19gYCwgYW5kIGBgX19nZV9fYGAgbWV0
aG9kcyB0aGF0IGNvbXBhcmUgdGhlIGNsYXNzIGFzIGlmIGl0IHdlcmUKKyAgICAgICAgYSB0dXBs
ZSBvZiBpdHMgYGBhdHRyc2BgIGF0dHJpYnV0ZXMuICBCdXQgdGhlIGF0dHJpYnV0ZXMgYXJlICpv
bmx5KgorICAgICAgICBjb21wYXJlZCwgaWYgdGhlIHR5cGUgb2YgYm90aCBjbGFzc2VzIGlzICpp
ZGVudGljYWwqIQorICAgIDpwYXJhbSBoYXNoOiBJZiBgYE5vbmVgYCAoZGVmYXVsdCksIHRoZSBg
YF9faGFzaF9fYGAgbWV0aG9kIGlzIGdlbmVyYXRlZAorICAgICAgICBhY2NvcmRpbmcgaG93ICpj
bXAqIGFuZCAqZnJvemVuKiBhcmUgc2V0LgorCisgICAgICAgIDEuIElmICpib3RoKiBhcmUgVHJ1
ZSwgYGBhdHRyc2BgIHdpbGwgZ2VuZXJhdGUgYSBgYF9faGFzaF9fYGAgZm9yIHlvdS4KKyAgICAg
ICAgMi4gSWYgKmNtcCogaXMgVHJ1ZSBhbmQgKmZyb3plbiogaXMgRmFsc2UsIGBgX19oYXNoX19g
YCB3aWxsIGJlIHNldCB0bworICAgICAgICAgICBOb25lLCBtYXJraW5nIGl0IHVuaGFzaGFibGUg
KHdoaWNoIGl0IGlzKS4KKyAgICAgICAgMy4gSWYgKmNtcCogaXMgRmFsc2UsIGBgX19oYXNoX19g
YCB3aWxsIGJlIGxlZnQgdW50b3VjaGVkIG1lYW5pbmcgdGhlCisgICAgICAgICAgIGBgX19oYXNo
X19gYCBtZXRob2Qgb2YgdGhlIHN1cGVyY2xhc3Mgd2lsbCBiZSB1c2VkIChpZiBzdXBlcmNsYXNz
IGlzCisgICAgICAgICAgIGBgb2JqZWN0YGAsIHRoaXMgbWVhbnMgaXQgd2lsbCBmYWxsIGJhY2sg
dG8gaWQtYmFzZWQgaGFzaGluZy4pLgorCisgICAgICAgIEFsdGhvdWdoIG5vdCByZWNvbW1lbmRl
ZCwgeW91IGNhbiBkZWNpZGUgZm9yIHlvdXJzZWxmIGFuZCBmb3JjZQorICAgICAgICBgYGF0dHJz
YGAgdG8gY3JlYXRlIG9uZSAoZS5nLiBpZiB0aGUgY2xhc3MgaXMgaW1tdXRhYmxlIGV2ZW4gdGhv
dWdoIHlvdQorICAgICAgICBkaWRuJ3QgZnJlZXplIGl0IHByb2dyYW1tYXRpY2FsbHkpIGJ5IHBh
c3NpbmcgYGBUcnVlYGAgb3Igbm90LiAgQm90aCBvZgorICAgICAgICB0aGVzZSBjYXNlcyBhcmUg
cmF0aGVyIHNwZWNpYWwgYW5kIHNob3VsZCBiZSB1c2VkIGNhcmVmdWxseS4KKworICAgICAgICBT
ZWUgdGhlIGBQeXRob24gZG9jdW1lbnRhdGlvbiBcCisgICAgICAgIDxodHRwczovL2RvY3MucHl0
aG9uLm9yZy8zL3JlZmVyZW5jZS9kYXRhbW9kZWwuaHRtbCNvYmplY3QuX19oYXNoX18+YF8KKyAg
ICAgICAgYW5kIHRoZSBgR2l0SHViIGlzc3VlIHRoYXQgbGVkIHRvIHRoZSBkZWZhdWx0IGJlaGF2
aW9yIFwKKyAgICAgICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24tYXR0cnMvYXR0cnMvaXNz
dWVzLzEzNj5gXyBmb3IgbW9yZSBkZXRhaWxzLgorICAgIDp0eXBlIGhhc2g6IGBgYm9vbGBgIG9y
IGBgTm9uZWBgCisgICAgOnBhcmFtIGJvb2wgaW5pdDogQ3JlYXRlIGEgYGBfX2luaXRfX2BgIG1l
dGhvZCB0aGF0IGluaXRpYWxpemVzIHRoZQorICAgICAgICBgYGF0dHJzYGAgYXR0cmlidXRlcy4g
IExlYWRpbmcgdW5kZXJzY29yZXMgYXJlIHN0cmlwcGVkIGZvciB0aGUKKyAgICAgICAgYXJndW1l
bnQgbmFtZS4gIElmIGEgYGBfX2F0dHJzX3Bvc3RfaW5pdF9fYGAgbWV0aG9kIGV4aXN0cyBvbiB0
aGUKKyAgICAgICAgY2xhc3MsIGl0IHdpbGwgYmUgY2FsbGVkIGFmdGVyIHRoZSBjbGFzcyBpcyBm
dWxseSBpbml0aWFsaXplZC4KKyAgICA6cGFyYW0gYm9vbCBzbG90czogQ3JlYXRlIGEgc2xvdHNf
LXN0eWxlIGNsYXNzIHRoYXQncyBtb3JlCisgICAgICAgIG1lbW9yeS1lZmZpY2llbnQuICBTZWUg
OnJlZjpgc2xvdHNgIGZvciBmdXJ0aGVyIHJhbWlmaWNhdGlvbnMuCisgICAgOnBhcmFtIGJvb2wg
ZnJvemVuOiBNYWtlIGluc3RhbmNlcyBpbW11dGFibGUgYWZ0ZXIgaW5pdGlhbGl6YXRpb24uICBJ
ZgorICAgICAgICBzb21lb25lIGF0dGVtcHRzIHRvIG1vZGlmeSBhIGZyb3plbiBpbnN0YW5jZSwK
KyAgICAgICAgOmV4YzpgYXR0ci5leGNlcHRpb25zLkZyb3plbkluc3RhbmNlRXJyb3JgIGlzIHJh
aXNlZC4KKworICAgICAgICBQbGVhc2Ugbm90ZToKKworICAgICAgICAgICAgMS4gVGhpcyBpcyBh
Y2hpZXZlZCBieSBpbnN0YWxsaW5nIGEgY3VzdG9tIGBgX19zZXRhdHRyX19gYCBtZXRob2QKKyAg
ICAgICAgICAgICAgIG9uIHlvdXIgY2xhc3Mgc28geW91IGNhbid0IGltcGxlbWVudCBhbiBvd24g
b25lLgorCisgICAgICAgICAgICAyLiBUcnVlIGltbXV0YWJpbGl0eSBpcyBpbXBvc3NpYmxlIGlu
IFB5dGhvbi4KKworICAgICAgICAgICAgMy4gVGhpcyAqZG9lcyogaGF2ZSBhIG1pbm9yIGEgcnVu
dGltZSBwZXJmb3JtYW5jZSA6cmVmOmBpbXBhY3QKKyAgICAgICAgICAgICAgIDxob3ctZnJvemVu
PmAgd2hlbiBpbml0aWFsaXppbmcgbmV3IGluc3RhbmNlcy4gIEluIG90aGVyIHdvcmRzOgorICAg
ICAgICAgICAgICAgYGBfX2luaXRfX2BgIGlzIHNsaWdodGx5IHNsb3dlciB3aXRoIGBgZnJvemVu
PVRydWVgYC4KKworICAgICAgICAgICAgNC4gSWYgYSBjbGFzcyBpcyBmcm96ZW4sIHlvdSBjYW5u
b3QgbW9kaWZ5IGBgc2VsZmBgIGluCisgICAgICAgICAgICAgICBgYF9fYXR0cnNfcG9zdF9pbml0
X19gYCBvciBhIHNlbGYtd3JpdHRlbiBgYF9faW5pdF9fYGAuIFlvdSBjYW4KKyAgICAgICAgICAg
ICAgIGNpcmN1bXZlbnQgdGhhdCBsaW1pdGF0aW9uIGJ5IHVzaW5nCisgICAgICAgICAgICAgICBg
YG9iamVjdC5fX3NldGF0dHJfXyhzZWxmLCAiYXR0cmlidXRlX25hbWUiLCB2YWx1ZSlgYC4KKwor
ICAgICAgICAuLiAgX3Nsb3RzOiBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL3JlZmVyZW5jZS9k
YXRhbW9kZWwuaHRtbCNzbG90cworICAgIDpwYXJhbSBib29sIGF1dG9fYXR0cmliczogSWYgVHJ1
ZSwgY29sbGVjdCBgUEVQIDUyNmBfLWFubm90YXRlZCBhdHRyaWJ1dGVzCisgICAgICAgIChQeXRo
b24gMy42IGFuZCBsYXRlciBvbmx5KSBmcm9tIHRoZSBjbGFzcyBib2R5LgorCisgICAgICAgIElu
IHRoaXMgY2FzZSwgeW91ICoqbXVzdCoqIGFubm90YXRlIGV2ZXJ5IGZpZWxkLiAgSWYgYGBhdHRy
c2BgCisgICAgICAgIGVuY291bnRlcnMgYSBmaWVsZCB0aGF0IGlzIHNldCB0byBhbiA6ZnVuYzpg
YXR0ci5pYmAgYnV0IGxhY2tzIGEgdHlwZQorICAgICAgICBhbm5vdGF0aW9uLCBhbiA6ZXhjOmBh
dHRyLmV4Y2VwdGlvbnMuVW5hbm5vdGF0ZWRBdHRyaWJ1dGVFcnJvcmAgaXMKKyAgICAgICAgcmFp
c2VkLiAgVXNlIGBgZmllbGRfbmFtZTogdHlwaW5nLkFueSA9IGF0dHIuaWIoLi4uKWBgIGlmIHlv
dSBkb24ndAorICAgICAgICB3YW50IHRvIHNldCBhIHR5cGUuCisKKyAgICAgICAgSWYgeW91IGFz
c2lnbiBhIHZhbHVlIHRvIHRob3NlIGF0dHJpYnV0ZXMgKGUuZy4gYGB4OiBpbnQgPSA0MmBgKSwg
dGhhdAorICAgICAgICB2YWx1ZSBiZWNvbWVzIHRoZSBkZWZhdWx0IHZhbHVlIGxpa2UgaWYgaXQg
d2VyZSBwYXNzZWQgdXNpbmcKKyAgICAgICAgYGBhdHRyLmliKGRlZmF1bHQ9NDIpYGAuICBQYXNz
aW5nIGFuIGluc3RhbmNlIG9mIDpjbGFzczpgRmFjdG9yeWAgYWxzbworICAgICAgICB3b3JrcyBh
cyBleHBlY3RlZC4KKworICAgICAgICBBdHRyaWJ1dGVzIGFubm90YXRlZCBhcyA6ZGF0YTpgdHlw
aW5nLkNsYXNzVmFyYCBhcmUgKippZ25vcmVkKiouCisKKyAgICAgICAgLi4gX2BQRVAgNTI2YDog
aHR0cHM6Ly93d3cucHl0aG9uLm9yZy9kZXYvcGVwcy9wZXAtMDUyNi8KKworICAgIC4uICB2ZXJz
aW9uYWRkZWQ6OiAxNi4wLjAgKnNsb3RzKgorICAgIC4uICB2ZXJzaW9uYWRkZWQ6OiAxNi4xLjAg
KmZyb3plbioKKyAgICAuLiAgdmVyc2lvbmFkZGVkOjogMTYuMy4wICpzdHIqLCBhbmQgc3VwcG9y
dCBmb3IgYGBfX2F0dHJzX3Bvc3RfaW5pdF9fYGAuCisgICAgLi4gIHZlcnNpb25jaGFuZ2VkOjoK
KyAgICAgICAgICAgIDE3LjEuMCAqaGFzaCogc3VwcG9ydHMgYGBOb25lYGAgYXMgdmFsdWUgd2hp
Y2ggaXMgYWxzbyB0aGUgZGVmYXVsdAorICAgICAgICAgICAgbm93LgorICAgIC4uIHZlcnNpb25h
ZGRlZDo6IDE3LjMuMCAqYXV0b19hdHRyaWJzKgorICAgICIiIgorICAgIGRlZiB3cmFwKGNscyk6
CisgICAgICAgIGlmIGdldGF0dHIoY2xzLCAiX19jbGFzc19fIiwgTm9uZSkgaXMgTm9uZToKKyAg
ICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiYXR0cnMgb25seSB3b3JrcyB3aXRoIG5ldy1zdHls
ZSBjbGFzc2VzLiIpCisKKyAgICAgICAgYnVpbGRlciA9IF9DbGFzc0J1aWxkZXIoY2xzLCB0aGVz
ZSwgc2xvdHMsIGZyb3plbiwgYXV0b19hdHRyaWJzKQorCisgICAgICAgIGlmIHJlcHIgaXMgVHJ1
ZToKKyAgICAgICAgICAgIGJ1aWxkZXIuYWRkX3JlcHIocmVwcl9ucykKKyAgICAgICAgaWYgc3Ry
IGlzIFRydWU6CisgICAgICAgICAgICBidWlsZGVyLmFkZF9zdHIoKQorICAgICAgICBpZiBjbXAg
aXMgVHJ1ZToKKyAgICAgICAgICAgIGJ1aWxkZXIuYWRkX2NtcCgpCisKKyAgICAgICAgaWYgaGFz
aCBpcyBub3QgVHJ1ZSBhbmQgaGFzaCBpcyBub3QgRmFsc2UgYW5kIGhhc2ggaXMgbm90IE5vbmU6
CisgICAgICAgICAgICAjIENhbid0IHVzZSBgaGFzaCBpbmAgYmVjYXVzZSAxID09IFRydWUgZm9y
IGV4YW1wbGUuCisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoCisgICAgICAgICAgICAgICAg
IkludmFsaWQgdmFsdWUgZm9yIGhhc2guICBNdXN0IGJlIFRydWUsIEZhbHNlLCBvciBOb25lLiIK
KyAgICAgICAgICAgICkKKyAgICAgICAgZWxpZiBoYXNoIGlzIEZhbHNlIG9yIChoYXNoIGlzIE5v
bmUgYW5kIGNtcCBpcyBGYWxzZSk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGVsaWYgaGFz
aCBpcyBUcnVlIG9yIChoYXNoIGlzIE5vbmUgYW5kIGNtcCBpcyBUcnVlIGFuZCBmcm96ZW4gaXMg
VHJ1ZSk6CisgICAgICAgICAgICBidWlsZGVyLmFkZF9oYXNoKCkKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIGJ1aWxkZXIubWFrZV91bmhhc2hhYmxlKCkKKworICAgICAgICBpZiBpbml0IGlz
IFRydWU6CisgICAgICAgICAgICBidWlsZGVyLmFkZF9pbml0KCkKKworICAgICAgICByZXR1cm4g
YnVpbGRlci5idWlsZF9jbGFzcygpCisKKyAgICAjIG1heWJlX2NscydzIHR5cGUgZGVwZW5kcyBv
biB0aGUgdXNhZ2Ugb2YgdGhlIGRlY29yYXRvci4gIEl0J3MgYSBjbGFzcworICAgICMgaWYgaXQn
cyB1c2VkIGFzIGBAYXR0cnNgIGJ1dCBgYE5vbmVgYCBpZiB1c2VkIGFzIGBAYXR0cnMoKWAuCisg
ICAgaWYgbWF5YmVfY2xzIGlzIE5vbmU6CisgICAgICAgIHJldHVybiB3cmFwCisgICAgZWxzZToK
KyAgICAgICAgcmV0dXJuIHdyYXAobWF5YmVfY2xzKQorCisKK19hdHRycyA9IGF0dHJzCisiIiIK
K0ludGVybmFsIGFsaWFzIHNvIHdlIGNhbiB1c2UgaXQgaW4gZnVuY3Rpb25zIHRoYXQgdGFrZSBh
biBhcmd1bWVudCBjYWxsZWQKKyphdHRycyouCisiIiIKKworCitpZiBQWTI6CisgICAgZGVmIF9o
YXNfZnJvemVuX3N1cGVyY2xhc3MoY2xzKToKKyAgICAgICAgIiIiCisgICAgICAgIENoZWNrIHdo
ZXRoZXIgKmNscyogaGFzIGEgZnJvemVuIGFuY2VzdG9yIGJ5IGxvb2tpbmcgYXQgaXRzCisgICAg
ICAgIF9fc2V0YXR0cl9fLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuICgKKyAgICAgICAg
ICAgIGdldGF0dHIoCisgICAgICAgICAgICAgICAgY2xzLl9fc2V0YXR0cl9fLCAiX19tb2R1bGVf
XyIsIE5vbmUKKyAgICAgICAgICAgICkgPT0gX2Zyb3plbl9zZXRhdHRycy5fX21vZHVsZV9fIGFu
ZAorICAgICAgICAgICAgY2xzLl9fc2V0YXR0cl9fLl9fbmFtZV9fID09IF9mcm96ZW5fc2V0YXR0
cnMuX19uYW1lX18KKyAgICAgICAgKQorZWxzZToKKyAgICBkZWYgX2hhc19mcm96ZW5fc3VwZXJj
bGFzcyhjbHMpOgorICAgICAgICAiIiIKKyAgICAgICAgQ2hlY2sgd2hldGhlciAqY2xzKiBoYXMg
YSBmcm96ZW4gYW5jZXN0b3IgYnkgbG9va2luZyBhdCBpdHMKKyAgICAgICAgX19zZXRhdHRyX18u
CisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gY2xzLl9fc2V0YXR0cl9fID09IF9mcm96ZW5f
c2V0YXR0cnMKKworCitkZWYgX2F0dHJzX3RvX3R1cGxlKG9iaiwgYXR0cnMpOgorICAgICIiIgor
ICAgIENyZWF0ZSBhIHR1cGxlIG9mIGFsbCB2YWx1ZXMgb2YgKm9iaioncyAqYXR0cnMqLgorICAg
ICIiIgorICAgIHJldHVybiB0dXBsZShnZXRhdHRyKG9iaiwgYS5uYW1lKSBmb3IgYSBpbiBhdHRy
cykKKworCitkZWYgX21ha2VfaGFzaChhdHRycyk6CisgICAgYXR0cnMgPSB0dXBsZSgKKyAgICAg
ICAgYQorICAgICAgICBmb3IgYSBpbiBhdHRycworICAgICAgICBpZiBhLmhhc2ggaXMgVHJ1ZSBv
ciAoYS5oYXNoIGlzIE5vbmUgYW5kIGEuY21wIGlzIFRydWUpCisgICAgKQorCisgICAgIyBXZSBj
YWNoZSB0aGUgZ2VuZXJhdGVkIGluaXQgbWV0aG9kcyBmb3IgdGhlIHNhbWUga2luZHMgb2YgYXR0
cmlidXRlcy4KKyAgICBzaGExID0gaGFzaGxpYi5zaGExKCkKKyAgICBzaGExLnVwZGF0ZShyZXBy
KGF0dHJzKS5lbmNvZGUoInV0Zi04IikpCisgICAgdW5pcXVlX2ZpbGVuYW1lID0gIjxhdHRycyBn
ZW5lcmF0ZWQgaGFzaCAlcz4iICUgKHNoYTEuaGV4ZGlnZXN0KCksKQorICAgIHR5cGVfaGFzaCA9
IGhhc2godW5pcXVlX2ZpbGVuYW1lKQorICAgIGxpbmVzID0gWworICAgICAgICAiZGVmIF9faGFz
aF9fKHNlbGYpOiIsCisgICAgICAgICIgICAgcmV0dXJuIGhhc2goKCIsCisgICAgICAgICIgICAg
ICAgICVkLCIgJSAodHlwZV9oYXNoLCksCisgICAgXQorICAgIGZvciBhIGluIGF0dHJzOgorICAg
ICAgICBsaW5lcy5hcHBlbmQoIiAgICAgICAgc2VsZi4lcywiICUgKGEubmFtZSkpCisKKyAgICBs
aW5lcy5hcHBlbmQoIiAgICApKSIpCisKKyAgICBzY3JpcHQgPSAiXG4iLmpvaW4obGluZXMpCisg
ICAgZ2xvYnMgPSB7fQorICAgIGxvY3MgPSB7fQorICAgIGJ5dGVjb2RlID0gY29tcGlsZShzY3Jp
cHQsIHVuaXF1ZV9maWxlbmFtZSwgImV4ZWMiKQorICAgIGV2YWwoYnl0ZWNvZGUsIGdsb2JzLCBs
b2NzKQorCisgICAgIyBJbiBvcmRlciBvZiBkZWJ1Z2dlcnMgbGlrZSBQREIgYmVpbmcgYWJsZSB0
byBzdGVwIHRocm91Z2ggdGhlIGNvZGUsCisgICAgIyB3ZSBhZGQgYSBmYWtlIGxpbmVjYWNoZSBl
bnRyeS4KKyAgICBsaW5lY2FjaGUuY2FjaGVbdW5pcXVlX2ZpbGVuYW1lXSA9ICgKKyAgICAgICAg
bGVuKHNjcmlwdCksCisgICAgICAgIE5vbmUsCisgICAgICAgIHNjcmlwdC5zcGxpdGxpbmVzKFRy
dWUpLAorICAgICAgICB1bmlxdWVfZmlsZW5hbWUsCisgICAgKQorCisgICAgcmV0dXJuIGxvY3Nb
Il9faGFzaF9fIl0KKworCitkZWYgX2FkZF9oYXNoKGNscywgYXR0cnMpOgorICAgICIiIgorICAg
IEFkZCBhIGhhc2ggbWV0aG9kIHRvICpjbHMqLgorICAgICIiIgorICAgIGNscy5fX2hhc2hfXyA9
IF9tYWtlX2hhc2goYXR0cnMpCisgICAgcmV0dXJuIGNscworCisKK2RlZiBfbWFrZV9jbXAoYXR0
cnMpOgorICAgIGF0dHJzID0gW2EgZm9yIGEgaW4gYXR0cnMgaWYgYS5jbXBdCisKKyAgICBkZWYg
YXR0cnNfdG9fdHVwbGUob2JqKToKKyAgICAgICAgIiIiCisgICAgICAgIFNhdmUgdXMgc29tZSB0
eXBpbmcuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gX2F0dHJzX3RvX3R1cGxlKG9iaiwg
YXR0cnMpCisKKyAgICBkZWYgZXEoc2VsZiwgb3RoZXIpOgorICAgICAgICAiIiIKKyAgICAgICAg
QXV0b21hdGljYWxseSBjcmVhdGVkIGJ5IGF0dHJzLgorICAgICAgICAiIiIKKyAgICAgICAgaWYg
b3RoZXIuX19jbGFzc19fIGlzIHNlbGYuX19jbGFzc19fOgorICAgICAgICAgICAgcmV0dXJuIGF0
dHJzX3RvX3R1cGxlKHNlbGYpID09IGF0dHJzX3RvX3R1cGxlKG90aGVyKQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisKKyAgICBkZWYgbmUoc2VsZiwg
b3RoZXIpOgorICAgICAgICAiIiIKKyAgICAgICAgQXV0b21hdGljYWxseSBjcmVhdGVkIGJ5IGF0
dHJzLgorICAgICAgICAiIiIKKyAgICAgICAgcmVzdWx0ID0gZXEoc2VsZiwgb3RoZXIpCisgICAg
ICAgIGlmIHJlc3VsdCBpcyBOb3RJbXBsZW1lbnRlZDoKKyAgICAgICAgICAgIHJldHVybiBOb3RJ
bXBsZW1lbnRlZAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIG5vdCByZXN1bHQK
KworICAgIGRlZiBsdChzZWxmLCBvdGhlcik6CisgICAgICAgICIiIgorICAgICAgICBBdXRvbWF0
aWNhbGx5IGNyZWF0ZWQgYnkgYXR0cnMuCisgICAgICAgICIiIgorICAgICAgICBpZiBpc2luc3Rh
bmNlKG90aGVyLCBzZWxmLl9fY2xhc3NfXyk6CisgICAgICAgICAgICByZXR1cm4gYXR0cnNfdG9f
dHVwbGUoc2VsZikgPCBhdHRyc190b190dXBsZShvdGhlcikKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorCisgICAgZGVmIGxlKHNlbGYsIG90aGVyKToK
KyAgICAgICAgIiIiCisgICAgICAgIEF1dG9tYXRpY2FsbHkgY3JlYXRlZCBieSBhdHRycy4KKyAg
ICAgICAgIiIiCisgICAgICAgIGlmIGlzaW5zdGFuY2Uob3RoZXIsIHNlbGYuX19jbGFzc19fKToK
KyAgICAgICAgICAgIHJldHVybiBhdHRyc190b190dXBsZShzZWxmKSA8PSBhdHRyc190b190dXBs
ZShvdGhlcikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRl
ZAorCisgICAgZGVmIGd0KHNlbGYsIG90aGVyKToKKyAgICAgICAgIiIiCisgICAgICAgIEF1dG9t
YXRpY2FsbHkgY3JlYXRlZCBieSBhdHRycy4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIGlzaW5z
dGFuY2Uob3RoZXIsIHNlbGYuX19jbGFzc19fKToKKyAgICAgICAgICAgIHJldHVybiBhdHRyc190
b190dXBsZShzZWxmKSA+IGF0dHJzX3RvX3R1cGxlKG90aGVyKQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisKKyAgICBkZWYgZ2Uoc2VsZiwgb3RoZXIp
OgorICAgICAgICAiIiIKKyAgICAgICAgQXV0b21hdGljYWxseSBjcmVhdGVkIGJ5IGF0dHJzLgor
ICAgICAgICAiIiIKKyAgICAgICAgaWYgaXNpbnN0YW5jZShvdGhlciwgc2VsZi5fX2NsYXNzX18p
OgorICAgICAgICAgICAgcmV0dXJuIGF0dHJzX3RvX3R1cGxlKHNlbGYpID49IGF0dHJzX3RvX3R1
cGxlKG90aGVyKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVu
dGVkCisKKyAgICByZXR1cm4gZXEsIG5lLCBsdCwgbGUsIGd0LCBnZQorCisKK2RlZiBfYWRkX2Nt
cChjbHMsIGF0dHJzPU5vbmUpOgorICAgICIiIgorICAgIEFkZCBjb21wYXJpc29uIG1ldGhvZHMg
dG8gKmNscyouCisgICAgIiIiCisgICAgaWYgYXR0cnMgaXMgTm9uZToKKyAgICAgICAgYXR0cnMg
PSBjbHMuX19hdHRyc19hdHRyc19fCisKKyAgICBjbHMuX19lcV9fLCBjbHMuX19uZV9fLCBjbHMu
X19sdF9fLCBjbHMuX19sZV9fLCBjbHMuX19ndF9fLCBjbHMuX19nZV9fID0gXAorICAgICAgICBf
bWFrZV9jbXAoYXR0cnMpCisKKyAgICByZXR1cm4gY2xzCisKKworZGVmIF9tYWtlX3JlcHIoYXR0
cnMsIG5zKToKKyAgICAiIiIKKyAgICBNYWtlIGEgcmVwciBtZXRob2QgZm9yICphdHRyX25hbWVz
KiBhZGRpbmcgKm5zKiB0byB0aGUgZnVsbCBuYW1lLgorICAgICIiIgorICAgIGF0dHJfbmFtZXMg
PSB0dXBsZSgKKyAgICAgICAgYS5uYW1lCisgICAgICAgIGZvciBhIGluIGF0dHJzCisgICAgICAg
IGlmIGEucmVwcgorICAgICkKKworICAgIGRlZiByZXByXyhzZWxmKToKKyAgICAgICAgIiIiCisg
ICAgICAgIEF1dG9tYXRpY2FsbHkgY3JlYXRlZCBieSBhdHRycy4KKyAgICAgICAgIiIiCisgICAg
ICAgIHJlYWxfY2xzID0gc2VsZi5fX2NsYXNzX18KKyAgICAgICAgaWYgbnMgaXMgTm9uZToKKyAg
ICAgICAgICAgIHF1YWxuYW1lID0gZ2V0YXR0cihyZWFsX2NscywgIl9fcXVhbG5hbWVfXyIsIE5v
bmUpCisgICAgICAgICAgICBpZiBxdWFsbmFtZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAg
ICBjbGFzc19uYW1lID0gcXVhbG5hbWUucnNwbGl0KCI+LiIsIDEpWy0xXQorICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICBjbGFzc19uYW1lID0gcmVhbF9jbHMuX19uYW1lX18KKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIGNsYXNzX25hbWUgPSBucyArICIuIiArIHJlYWxfY2xz
Ll9fbmFtZV9fCisKKyAgICAgICAgcmV0dXJuICJ7MH0oezF9KSIuZm9ybWF0KAorICAgICAgICAg
ICAgY2xhc3NfbmFtZSwKKyAgICAgICAgICAgICIsICIuam9pbigKKyAgICAgICAgICAgICAgICBu
YW1lICsgIj0iICsgcmVwcihnZXRhdHRyKHNlbGYsIG5hbWUpKQorICAgICAgICAgICAgICAgIGZv
ciBuYW1lIGluIGF0dHJfbmFtZXMKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorICAgIHJldHVy
biByZXByXworCisKK2RlZiBfYWRkX3JlcHIoY2xzLCBucz1Ob25lLCBhdHRycz1Ob25lKToKKyAg
ICAiIiIKKyAgICBBZGQgYSByZXByIG1ldGhvZCB0byAqY2xzKi4KKyAgICAiIiIKKyAgICBpZiBh
dHRycyBpcyBOb25lOgorICAgICAgICBhdHRycyA9IGNscy5fX2F0dHJzX2F0dHJzX18KKworICAg
IHJlcHJfID0gX21ha2VfcmVwcihhdHRycywgbnMpCisgICAgY2xzLl9fcmVwcl9fID0gcmVwcl8K
KyAgICByZXR1cm4gY2xzCisKKworZGVmIF9tYWtlX2luaXQoYXR0cnMsIHBvc3RfaW5pdCwgZnJv
emVuKToKKyAgICBhdHRycyA9IFsKKyAgICAgICAgYQorICAgICAgICBmb3IgYSBpbiBhdHRycwor
ICAgICAgICBpZiBhLmluaXQgb3IgYS5kZWZhdWx0IGlzIG5vdCBOT1RISU5HCisgICAgXQorCisg
ICAgIyBXZSBjYWNoZSB0aGUgZ2VuZXJhdGVkIGluaXQgbWV0aG9kcyBmb3IgdGhlIHNhbWUga2lu
ZHMgb2YgYXR0cmlidXRlcy4KKyAgICBzaGExID0gaGFzaGxpYi5zaGExKCkKKyAgICBzaGExLnVw
ZGF0ZShyZXByKGF0dHJzKS5lbmNvZGUoInV0Zi04IikpCisgICAgdW5pcXVlX2ZpbGVuYW1lID0g
IjxhdHRycyBnZW5lcmF0ZWQgaW5pdCB7MH0+Ii5mb3JtYXQoCisgICAgICAgIHNoYTEuaGV4ZGln
ZXN0KCkKKyAgICApCisKKyAgICBzY3JpcHQsIGdsb2JzID0gX2F0dHJzX3RvX2luaXRfc2NyaXB0
KAorICAgICAgICBhdHRycywKKyAgICAgICAgZnJvemVuLAorICAgICAgICBwb3N0X2luaXQsCisg
ICAgKQorICAgIGxvY3MgPSB7fQorICAgIGJ5dGVjb2RlID0gY29tcGlsZShzY3JpcHQsIHVuaXF1
ZV9maWxlbmFtZSwgImV4ZWMiKQorICAgIGF0dHJfZGljdCA9IGRpY3QoKGEubmFtZSwgYSkgZm9y
IGEgaW4gYXR0cnMpCisgICAgZ2xvYnMudXBkYXRlKHsKKyAgICAgICAgIk5PVEhJTkciOiBOT1RI
SU5HLAorICAgICAgICAiYXR0cl9kaWN0IjogYXR0cl9kaWN0LAorICAgIH0pCisgICAgaWYgZnJv
emVuIGlzIFRydWU6CisgICAgICAgICMgU2F2ZSB0aGUgbG9va3VwIG92ZXJoZWFkIGluIF9faW5p
dF9fIGlmIHdlIG5lZWQgdG8gY2lyY3VtdmVudAorICAgICAgICAjIGltbXV0YWJpbGl0eS4KKyAg
ICAgICAgZ2xvYnNbIl9jYWNoZWRfc2V0YXR0ciJdID0gX29ial9zZXRhdHRyCisgICAgZXZhbChi
eXRlY29kZSwgZ2xvYnMsIGxvY3MpCisKKyAgICAjIEluIG9yZGVyIG9mIGRlYnVnZ2VycyBsaWtl
IFBEQiBiZWluZyBhYmxlIHRvIHN0ZXAgdGhyb3VnaCB0aGUgY29kZSwKKyAgICAjIHdlIGFkZCBh
IGZha2UgbGluZWNhY2hlIGVudHJ5LgorICAgIGxpbmVjYWNoZS5jYWNoZVt1bmlxdWVfZmlsZW5h
bWVdID0gKAorICAgICAgICBsZW4oc2NyaXB0KSwKKyAgICAgICAgTm9uZSwKKyAgICAgICAgc2Ny
aXB0LnNwbGl0bGluZXMoVHJ1ZSksCisgICAgICAgIHVuaXF1ZV9maWxlbmFtZSwKKyAgICApCisK
KyAgICByZXR1cm4gbG9jc1siX19pbml0X18iXQorCisKK2RlZiBfYWRkX2luaXQoY2xzLCBmcm96
ZW4pOgorICAgICIiIgorICAgIEFkZCBhIF9faW5pdF9fIG1ldGhvZCB0byAqY2xzKi4gIElmICpm
cm96ZW4qIGlzIFRydWUsIG1ha2UgaXQgaW1tdXRhYmxlLgorICAgICIiIgorICAgIGNscy5fX2lu
aXRfXyA9IF9tYWtlX2luaXQoCisgICAgICAgIGNscy5fX2F0dHJzX2F0dHJzX18sCisgICAgICAg
IGdldGF0dHIoY2xzLCAiX19hdHRyc19wb3N0X2luaXRfXyIsIEZhbHNlKSwKKyAgICAgICAgZnJv
emVuLAorICAgICkKKyAgICByZXR1cm4gY2xzCisKKworZGVmIGZpZWxkcyhjbHMpOgorICAgICIi
IgorICAgIFJldHVybnMgdGhlIHR1cGxlIG9mIGBgYXR0cnNgYCBhdHRyaWJ1dGVzIGZvciBhIGNs
YXNzLgorCisgICAgVGhlIHR1cGxlIGFsc28gYWxsb3dzIGFjY2Vzc2luZyB0aGUgZmllbGRzIGJ5
IHRoZWlyIG5hbWVzIChzZWUgYmVsb3cgZm9yCisgICAgZXhhbXBsZXMpLgorCisgICAgOnBhcmFt
IHR5cGUgY2xzOiBDbGFzcyB0byBpbnRyb3NwZWN0LgorCisgICAgOnJhaXNlIFR5cGVFcnJvcjog
SWYgKmNscyogaXMgbm90IGEgY2xhc3MuCisgICAgOnJhaXNlIGF0dHIuZXhjZXB0aW9ucy5Ob3RB
bkF0dHJzQ2xhc3NFcnJvcjogSWYgKmNscyogaXMgbm90IGFuIGBgYXR0cnNgYAorICAgICAgICBj
bGFzcy4KKworICAgIDpydHlwZTogdHVwbGUgKHdpdGggbmFtZSBhY2Nlc3NvcnMpIG9mIDpjbGFz
czpgYXR0ci5BdHRyaWJ1dGVgCisKKyAgICAuLiAgdmVyc2lvbmNoYW5nZWQ6OiAxNi4yLjAgUmV0
dXJuZWQgdHVwbGUgYWxsb3dzIGFjY2Vzc2luZyB0aGUgZmllbGRzCisgICAgICAgIGJ5IG5hbWUu
CisgICAgIiIiCisgICAgaWYgbm90IGlzY2xhc3MoY2xzKToKKyAgICAgICAgcmFpc2UgVHlwZUVy
cm9yKCJQYXNzZWQgb2JqZWN0IG11c3QgYmUgYSBjbGFzcy4iKQorICAgIGF0dHJzID0gZ2V0YXR0
cihjbHMsICJfX2F0dHJzX2F0dHJzX18iLCBOb25lKQorICAgIGlmIGF0dHJzIGlzIE5vbmU6Cisg
ICAgICAgIHJhaXNlIE5vdEFuQXR0cnNDbGFzc0Vycm9yKAorICAgICAgICAgICAgIntjbHMhcn0g
aXMgbm90IGFuIGF0dHJzLWRlY29yYXRlZCBjbGFzcy4iLmZvcm1hdChjbHM9Y2xzKQorICAgICAg
ICApCisgICAgcmV0dXJuIGF0dHJzCisKKworZGVmIHZhbGlkYXRlKGluc3QpOgorICAgICIiIgor
ICAgIFZhbGlkYXRlIGFsbCBhdHRyaWJ1dGVzIG9uICppbnN0KiB0aGF0IGhhdmUgYSB2YWxpZGF0
b3IuCisKKyAgICBMZWF2ZXMgYWxsIGV4Y2VwdGlvbnMgdGhyb3VnaC4KKworICAgIDpwYXJhbSBp
bnN0OiBJbnN0YW5jZSBvZiBhIGNsYXNzIHdpdGggYGBhdHRyc2BgIGF0dHJpYnV0ZXMuCisgICAg
IiIiCisgICAgaWYgX2NvbmZpZy5fcnVuX3ZhbGlkYXRvcnMgaXMgRmFsc2U6CisgICAgICAgIHJl
dHVybgorCisgICAgZm9yIGEgaW4gZmllbGRzKGluc3QuX19jbGFzc19fKToKKyAgICAgICAgdiA9
IGEudmFsaWRhdG9yCisgICAgICAgIGlmIHYgaXMgbm90IE5vbmU6CisgICAgICAgICAgICB2KGlu
c3QsIGEsIGdldGF0dHIoaW5zdCwgYS5uYW1lKSkKKworCitkZWYgX2F0dHJzX3RvX2luaXRfc2Ny
aXB0KGF0dHJzLCBmcm96ZW4sIHBvc3RfaW5pdCk6CisgICAgIiIiCisgICAgUmV0dXJuIGEgc2Ny
aXB0IG9mIGFuIGluaXRpYWxpemVyIGZvciAqYXR0cnMqIGFuZCBhIGRpY3Qgb2YgZ2xvYmFscy4K
KworICAgIFRoZSBnbG9iYWxzIGFyZSBleHBlY3RlZCBieSB0aGUgZ2VuZXJhdGVkIHNjcmlwdC4K
KworICAgICBJZiAqZnJvemVuKiBpcyBUcnVlLCB3ZSBjYW5ub3Qgc2V0IHRoZSBhdHRyaWJ1dGVz
IGRpcmVjdGx5IHNvIHdlIHVzZQorICAgIGEgY2FjaGVkIGBgb2JqZWN0Ll9fc2V0YXR0cl9fYGAu
CisgICAgIiIiCisgICAgbGluZXMgPSBbXQorICAgIGlmIGZyb3plbiBpcyBUcnVlOgorICAgICAg
ICBsaW5lcy5hcHBlbmQoCisgICAgICAgICAgICAjIENpcmN1bXZlbnQgdGhlIF9fc2V0YXR0cl9f
IGRlc2NyaXB0b3IgdG8gc2F2ZSBvbmUgbG9va3VwIHBlcgorICAgICAgICAgICAgIyBhc3NpZ25t
ZW50LgorICAgICAgICAgICAgIl9zZXRhdHRyID0gX2NhY2hlZF9zZXRhdHRyLl9fZ2V0X18oc2Vs
Ziwgc2VsZi5fX2NsYXNzX18pIgorICAgICAgICApCisKKyAgICAgICAgZGVmIGZtdF9zZXR0ZXIo
YXR0cl9uYW1lLCB2YWx1ZV92YXIpOgorICAgICAgICAgICAgcmV0dXJuICJfc2V0YXR0cignJShh
dHRyX25hbWUpcycsICUodmFsdWVfdmFyKXMpIiAlIHsKKyAgICAgICAgICAgICAgICAiYXR0cl9u
YW1lIjogYXR0cl9uYW1lLAorICAgICAgICAgICAgICAgICJ2YWx1ZV92YXIiOiB2YWx1ZV92YXIs
CisgICAgICAgICAgICB9CisKKyAgICAgICAgZGVmIGZtdF9zZXR0ZXJfd2l0aF9jb252ZXJ0ZXIo
YXR0cl9uYW1lLCB2YWx1ZV92YXIpOgorICAgICAgICAgICAgY29udl9uYW1lID0gX2luaXRfY29u
dmVydF9wYXQuZm9ybWF0KGF0dHJfbmFtZSkKKyAgICAgICAgICAgIHJldHVybiAiX3NldGF0dHIo
JyUoYXR0cl9uYW1lKXMnLCAlKGNvbnYpcyglKHZhbHVlX3ZhcilzKSkiICUgeworICAgICAgICAg
ICAgICAgICJhdHRyX25hbWUiOiBhdHRyX25hbWUsCisgICAgICAgICAgICAgICAgInZhbHVlX3Zh
ciI6IHZhbHVlX3ZhciwKKyAgICAgICAgICAgICAgICAiY29udiI6IGNvbnZfbmFtZSwKKyAgICAg
ICAgICAgIH0KKyAgICBlbHNlOgorICAgICAgICBkZWYgZm10X3NldHRlcihhdHRyX25hbWUsIHZh
bHVlKToKKyAgICAgICAgICAgIHJldHVybiAic2VsZi4lKGF0dHJfbmFtZSlzID0gJSh2YWx1ZSlz
IiAlIHsKKyAgICAgICAgICAgICAgICAiYXR0cl9uYW1lIjogYXR0cl9uYW1lLAorICAgICAgICAg
ICAgICAgICJ2YWx1ZSI6IHZhbHVlLAorICAgICAgICAgICAgfQorCisgICAgICAgIGRlZiBmbXRf
c2V0dGVyX3dpdGhfY29udmVydGVyKGF0dHJfbmFtZSwgdmFsdWVfdmFyKToKKyAgICAgICAgICAg
IGNvbnZfbmFtZSA9IF9pbml0X2NvbnZlcnRfcGF0LmZvcm1hdChhdHRyX25hbWUpCisgICAgICAg
ICAgICByZXR1cm4gInNlbGYuJShhdHRyX25hbWUpcyA9ICUoY29udilzKCUodmFsdWVfdmFyKXMp
IiAlIHsKKyAgICAgICAgICAgICAgICAiYXR0cl9uYW1lIjogYXR0cl9uYW1lLAorICAgICAgICAg
ICAgICAgICJ2YWx1ZV92YXIiOiB2YWx1ZV92YXIsCisgICAgICAgICAgICAgICAgImNvbnYiOiBj
b252X25hbWUsCisgICAgICAgICAgICB9CisKKyAgICBhcmdzID0gW10KKyAgICBhdHRyc190b192
YWxpZGF0ZSA9IFtdCisKKyAgICAjIFRoaXMgaXMgYSBkaWN0aW9uYXJ5IG9mIG5hbWVzIHRvIHZh
bGlkYXRvciBhbmQgY29udmVydGVyIGNhbGxhYmxlcy4KKyAgICAjIEluamVjdGluZyB0aGlzIGlu
dG8gX19pbml0X18gZ2xvYmFscyBsZXRzIHVzIGF2b2lkIGxvb2t1cHMuCisgICAgbmFtZXNfZm9y
X2dsb2JhbHMgPSB7fQorCisgICAgZm9yIGEgaW4gYXR0cnM6CisgICAgICAgIGlmIGEudmFsaWRh
dG9yOgorICAgICAgICAgICAgYXR0cnNfdG9fdmFsaWRhdGUuYXBwZW5kKGEpCisgICAgICAgIGF0
dHJfbmFtZSA9IGEubmFtZQorICAgICAgICBhcmdfbmFtZSA9IGEubmFtZS5sc3RyaXAoIl8iKQor
ICAgICAgICBoYXNfZmFjdG9yeSA9IGlzaW5zdGFuY2UoYS5kZWZhdWx0LCBGYWN0b3J5KQorICAg
ICAgICBpZiBoYXNfZmFjdG9yeSBhbmQgYS5kZWZhdWx0LnRha2VzX3NlbGY6CisgICAgICAgICAg
ICBtYXliZV9zZWxmID0gInNlbGYiCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBtYXliZV9z
ZWxmID0gIiIKKyAgICAgICAgaWYgYS5pbml0IGlzIEZhbHNlOgorICAgICAgICAgICAgaWYgaGFz
X2ZhY3Rvcnk6CisgICAgICAgICAgICAgICAgaW5pdF9mYWN0b3J5X25hbWUgPSBfaW5pdF9mYWN0
b3J5X3BhdC5mb3JtYXQoYS5uYW1lKQorICAgICAgICAgICAgICAgIGlmIGEuY29udmVydCBpcyBu
b3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKGZtdF9zZXR0ZXJfd2l0
aF9jb252ZXJ0ZXIoCisgICAgICAgICAgICAgICAgICAgICAgICBhdHRyX25hbWUsCisgICAgICAg
ICAgICAgICAgICAgICAgICBpbml0X2ZhY3RvcnlfbmFtZSArICIoezB9KSIuZm9ybWF0KG1heWJl
X3NlbGYpKSkKKyAgICAgICAgICAgICAgICAgICAgY29udl9uYW1lID0gX2luaXRfY29udmVydF9w
YXQuZm9ybWF0KGEubmFtZSkKKyAgICAgICAgICAgICAgICAgICAgbmFtZXNfZm9yX2dsb2JhbHNb
Y29udl9uYW1lXSA9IGEuY29udmVydAorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgICAgIGxpbmVzLmFwcGVuZChmbXRfc2V0dGVyKAorICAgICAgICAgICAgICAgICAgICAg
ICAgYXR0cl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgaW5pdF9mYWN0b3J5X25hbWUg
KyAiKHswfSkiLmZvcm1hdChtYXliZV9zZWxmKQorICAgICAgICAgICAgICAgICAgICApKQorICAg
ICAgICAgICAgICAgIG5hbWVzX2Zvcl9nbG9iYWxzW2luaXRfZmFjdG9yeV9uYW1lXSA9IGEuZGVm
YXVsdC5mYWN0b3J5CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIGEuY29u
dmVydCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKGZtdF9z
ZXR0ZXJfd2l0aF9jb252ZXJ0ZXIoCisgICAgICAgICAgICAgICAgICAgICAgICBhdHRyX25hbWUs
CisgICAgICAgICAgICAgICAgICAgICAgICAiYXR0cl9kaWN0Wyd7YXR0cl9uYW1lfSddLmRlZmF1
bHQiCisgICAgICAgICAgICAgICAgICAgICAgICAuZm9ybWF0KGF0dHJfbmFtZT1hdHRyX25hbWUp
CisgICAgICAgICAgICAgICAgICAgICkpCisgICAgICAgICAgICAgICAgICAgIGNvbnZfbmFtZSA9
IF9pbml0X2NvbnZlcnRfcGF0LmZvcm1hdChhLm5hbWUpCisgICAgICAgICAgICAgICAgICAgIG5h
bWVzX2Zvcl9nbG9iYWxzW2NvbnZfbmFtZV0gPSBhLmNvbnZlcnQKKyAgICAgICAgICAgICAgICBl
bHNlOgorICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoZm10X3NldHRlcigKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGF0dHJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJh
dHRyX2RpY3RbJ3thdHRyX25hbWV9J10uZGVmYXVsdCIKKyAgICAgICAgICAgICAgICAgICAgICAg
IC5mb3JtYXQoYXR0cl9uYW1lPWF0dHJfbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgKSkKKyAg
ICAgICAgZWxpZiBhLmRlZmF1bHQgaXMgbm90IE5PVEhJTkcgYW5kIG5vdCBoYXNfZmFjdG9yeToK
KyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKAorICAgICAgICAgICAgICAgICJ7YXJnX25hbWV9PWF0
dHJfZGljdFsne2F0dHJfbmFtZX0nXS5kZWZhdWx0Ii5mb3JtYXQoCisgICAgICAgICAgICAgICAg
ICAgIGFyZ19uYW1lPWFyZ19uYW1lLAorICAgICAgICAgICAgICAgICAgICBhdHRyX25hbWU9YXR0
cl9uYW1lLAorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIGlm
IGEuY29udmVydCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoZm10
X3NldHRlcl93aXRoX2NvbnZlcnRlcihhdHRyX25hbWUsIGFyZ19uYW1lKSkKKyAgICAgICAgICAg
ICAgICBuYW1lc19mb3JfZ2xvYmFsc1tfaW5pdF9jb252ZXJ0X3BhdC5mb3JtYXQoYS5uYW1lKV0g
PSBhLmNvbnZlcnQKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbGluZXMuYXBw
ZW5kKGZtdF9zZXR0ZXIoYXR0cl9uYW1lLCBhcmdfbmFtZSkpCisgICAgICAgIGVsaWYgaGFzX2Zh
Y3Rvcnk6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgie2FyZ19uYW1lfT1OT1RISU5HIi5mb3Jt
YXQoYXJnX25hbWU9YXJnX25hbWUpKQorICAgICAgICAgICAgbGluZXMuYXBwZW5kKCJpZiB7YXJn
X25hbWV9IGlzIG5vdCBOT1RISU5HOiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAuZm9ybWF0
KGFyZ19uYW1lPWFyZ19uYW1lKSkKKyAgICAgICAgICAgIGluaXRfZmFjdG9yeV9uYW1lID0gX2lu
aXRfZmFjdG9yeV9wYXQuZm9ybWF0KGEubmFtZSkKKyAgICAgICAgICAgIGlmIGEuY29udmVydCBp
cyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiAgICAiICsgZm10X3Nl
dHRlcl93aXRoX2NvbnZlcnRlcihhdHRyX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnX25hbWUpKQorICAgICAg
ICAgICAgICAgIGxpbmVzLmFwcGVuZCgiZWxzZToiKQorICAgICAgICAgICAgICAgIGxpbmVzLmFw
cGVuZCgiICAgICIgKyBmbXRfc2V0dGVyX3dpdGhfY29udmVydGVyKAorICAgICAgICAgICAgICAg
ICAgICBhdHRyX25hbWUsCisgICAgICAgICAgICAgICAgICAgIGluaXRfZmFjdG9yeV9uYW1lICsg
Iih7MH0pIi5mb3JtYXQobWF5YmVfc2VsZikKKyAgICAgICAgICAgICAgICApKQorICAgICAgICAg
ICAgICAgIG5hbWVzX2Zvcl9nbG9iYWxzW19pbml0X2NvbnZlcnRfcGF0LmZvcm1hdChhLm5hbWUp
XSA9IGEuY29udmVydAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBsaW5lcy5h
cHBlbmQoIiAgICAiICsgZm10X3NldHRlcihhdHRyX25hbWUsIGFyZ19uYW1lKSkKKyAgICAgICAg
ICAgICAgICBsaW5lcy5hcHBlbmQoImVsc2U6IikKKyAgICAgICAgICAgICAgICBsaW5lcy5hcHBl
bmQoIiAgICAiICsgZm10X3NldHRlcigKKyAgICAgICAgICAgICAgICAgICAgYXR0cl9uYW1lLAor
ICAgICAgICAgICAgICAgICAgICBpbml0X2ZhY3RvcnlfbmFtZSArICIoezB9KSIuZm9ybWF0KG1h
eWJlX3NlbGYpCisgICAgICAgICAgICAgICAgKSkKKyAgICAgICAgICAgIG5hbWVzX2Zvcl9nbG9i
YWxzW2luaXRfZmFjdG9yeV9uYW1lXSA9IGEuZGVmYXVsdC5mYWN0b3J5CisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBhcmdzLmFwcGVuZChhcmdfbmFtZSkKKyAgICAgICAgICAgIGlmIGEuY29u
dmVydCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoZm10X3NldHRl
cl93aXRoX2NvbnZlcnRlcihhdHRyX25hbWUsIGFyZ19uYW1lKSkKKyAgICAgICAgICAgICAgICBu
YW1lc19mb3JfZ2xvYmFsc1tfaW5pdF9jb252ZXJ0X3BhdC5mb3JtYXQoYS5uYW1lKV0gPSBhLmNv
bnZlcnQKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKGZt
dF9zZXR0ZXIoYXR0cl9uYW1lLCBhcmdfbmFtZSkpCisKKyAgICBpZiBhdHRyc190b192YWxpZGF0
ZTogICMgd2UgY2FuIHNraXAgdGhpcyBpZiB0aGVyZSBhcmUgbm8gdmFsaWRhdG9ycy4KKyAgICAg
ICAgbmFtZXNfZm9yX2dsb2JhbHNbIl9jb25maWciXSA9IF9jb25maWcKKyAgICAgICAgbGluZXMu
YXBwZW5kKCJpZiBfY29uZmlnLl9ydW5fdmFsaWRhdG9ycyBpcyBUcnVlOiIpCisgICAgICAgIGZv
ciBhIGluIGF0dHJzX3RvX3ZhbGlkYXRlOgorICAgICAgICAgICAgdmFsX25hbWUgPSAiX19hdHRy
X3ZhbGlkYXRvcl97fSIuZm9ybWF0KGEubmFtZSkKKyAgICAgICAgICAgIGF0dHJfbmFtZSA9ICJf
X2F0dHJfe30iLmZvcm1hdChhLm5hbWUpCisgICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiAgICB7
fShzZWxmLCB7fSwgc2VsZi57fSkiLmZvcm1hdCgKKyAgICAgICAgICAgICAgICB2YWxfbmFtZSwg
YXR0cl9uYW1lLCBhLm5hbWUpKQorICAgICAgICAgICAgbmFtZXNfZm9yX2dsb2JhbHNbdmFsX25h
bWVdID0gYS52YWxpZGF0b3IKKyAgICAgICAgICAgIG5hbWVzX2Zvcl9nbG9iYWxzW2F0dHJfbmFt
ZV0gPSBhCisgICAgaWYgcG9zdF9pbml0OgorICAgICAgICBsaW5lcy5hcHBlbmQoInNlbGYuX19h
dHRyc19wb3N0X2luaXRfXygpIikKKworICAgIHJldHVybiAiIiJcCitkZWYgX19pbml0X18oc2Vs
Ziwge2FyZ3N9KToKKyAgICB7bGluZXN9CisiIiIuZm9ybWF0KAorICAgICAgICBhcmdzPSIsICIu
am9pbihhcmdzKSwKKyAgICAgICAgbGluZXM9IlxuICAgICIuam9pbihsaW5lcykgaWYgbGluZXMg
ZWxzZSAicGFzcyIsCisgICAgKSwgbmFtZXNfZm9yX2dsb2JhbHMKKworCitjbGFzcyBBdHRyaWJ1
dGUob2JqZWN0KToKKyAgICAiIiIKKyAgICAqUmVhZC1vbmx5KiByZXByZXNlbnRhdGlvbiBvZiBh
biBhdHRyaWJ1dGUuCisKKyAgICA6YXR0cmlidXRlIG5hbWU6IFRoZSBuYW1lIG9mIHRoZSBhdHRy
aWJ1dGUuCisKKyAgICBQbHVzICphbGwqIGFyZ3VtZW50cyBvZiA6ZnVuYzpgYXR0ci5pYmAuCisg
ICAgIiIiCisgICAgX19zbG90c19fID0gKAorICAgICAgICAibmFtZSIsICJkZWZhdWx0IiwgInZh
bGlkYXRvciIsICJyZXByIiwgImNtcCIsICJoYXNoIiwgImluaXQiLAorICAgICAgICAiY29udmVy
dCIsICJtZXRhZGF0YSIsICJ0eXBlIgorICAgICkKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBu
YW1lLCBkZWZhdWx0LCB2YWxpZGF0b3IsIHJlcHIsIGNtcCwgaGFzaCwgaW5pdCwKKyAgICAgICAg
ICAgICAgICAgY29udmVydD1Ob25lLCBtZXRhZGF0YT1Ob25lLCB0eXBlPU5vbmUpOgorICAgICAg
ICAjIENhY2hlIHRoaXMgZGVzY3JpcHRvciBoZXJlIHRvIHNwZWVkIHRoaW5ncyB1cCBsYXRlci4K
KyAgICAgICAgYm91bmRfc2V0YXR0ciA9IF9vYmpfc2V0YXR0ci5fX2dldF9fKHNlbGYsIEF0dHJp
YnV0ZSkKKworICAgICAgICBib3VuZF9zZXRhdHRyKCJuYW1lIiwgbmFtZSkKKyAgICAgICAgYm91
bmRfc2V0YXR0cigiZGVmYXVsdCIsIGRlZmF1bHQpCisgICAgICAgIGJvdW5kX3NldGF0dHIoInZh
bGlkYXRvciIsIHZhbGlkYXRvcikKKyAgICAgICAgYm91bmRfc2V0YXR0cigicmVwciIsIHJlcHIp
CisgICAgICAgIGJvdW5kX3NldGF0dHIoImNtcCIsIGNtcCkKKyAgICAgICAgYm91bmRfc2V0YXR0
cigiaGFzaCIsIGhhc2gpCisgICAgICAgIGJvdW5kX3NldGF0dHIoImluaXQiLCBpbml0KQorICAg
ICAgICBib3VuZF9zZXRhdHRyKCJjb252ZXJ0IiwgY29udmVydCkKKyAgICAgICAgYm91bmRfc2V0
YXR0cigibWV0YWRhdGEiLCAobWV0YWRhdGFfcHJveHkobWV0YWRhdGEpIGlmIG1ldGFkYXRhCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgX2VtcHR5X21ldGFkYXRhX3Np
bmdsZXRvbikpCisgICAgICAgIGJvdW5kX3NldGF0dHIoInR5cGUiLCB0eXBlKQorCisgICAgZGVm
IF9fc2V0YXR0cl9fKHNlbGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgcmFpc2UgRnJvemVuSW5z
dGFuY2VFcnJvcigpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgZnJvbV9jb3VudGluZ19h
dHRyKGNscywgbmFtZSwgY2EsIHR5cGU9Tm9uZSk6CisgICAgICAgICMgdHlwZSBob2xkcyB0aGUg
YW5ub3RhdGVkIHZhbHVlLiBkZWFsIHdpdGggY29uZmxpY3RzOgorICAgICAgICBpZiB0eXBlIGlz
IE5vbmU6CisgICAgICAgICAgICB0eXBlID0gY2EudHlwZQorICAgICAgICBlbGlmIGNhLnR5cGUg
aXMgbm90IE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAg
ICAgICJUeXBlIGFubm90YXRpb24gYW5kIHR5cGUgYXJndW1lbnQgY2Fubm90IGJvdGggYmUgcHJl
c2VudCIKKyAgICAgICAgICAgICkKKyAgICAgICAgaW5zdF9kaWN0ID0geworICAgICAgICAgICAg
azogZ2V0YXR0cihjYSwgaykKKyAgICAgICAgICAgIGZvciBrCisgICAgICAgICAgICBpbiBBdHRy
aWJ1dGUuX19zbG90c19fCisgICAgICAgICAgICBpZiBrIG5vdCBpbiAoCisgICAgICAgICAgICAg
ICAgIm5hbWUiLCAidmFsaWRhdG9yIiwgImRlZmF1bHQiLCAidHlwZSIKKyAgICAgICAgICAgICkg
ICMgZXhjbHVkZSBtZXRob2RzCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNscyhuYW1lPW5h
bWUsIHZhbGlkYXRvcj1jYS5fdmFsaWRhdG9yLCBkZWZhdWx0PWNhLl9kZWZhdWx0LAorICAgICAg
ICAgICAgICAgICAgIHR5cGU9dHlwZSwgKippbnN0X2RpY3QpCisKKyAgICAjIERvbid0IHVzZSBf
YWRkX3BpY2tsZSBzaW5jZSBmaWVsZHMoQXR0cmlidXRlKSBkb2Vzbid0IHdvcmsKKyAgICBkZWYg
X19nZXRzdGF0ZV9fKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUGxheSBuaWNlIHdpdGgg
cGlja2xlLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHR1cGxlKGdldGF0dHIoc2VsZiwg
bmFtZSkgaWYgbmFtZSAhPSAibWV0YWRhdGEiCisgICAgICAgICAgICAgICAgICAgICBlbHNlIGRp
Y3Qoc2VsZi5tZXRhZGF0YSkKKyAgICAgICAgICAgICAgICAgICAgIGZvciBuYW1lIGluIHNlbGYu
X19zbG90c19fKQorCisgICAgZGVmIF9fc2V0c3RhdGVfXyhzZWxmLCBzdGF0ZSk6CisgICAgICAg
ICIiIgorICAgICAgICBQbGF5IG5pY2Ugd2l0aCBwaWNrbGUuCisgICAgICAgICIiIgorICAgICAg
ICBib3VuZF9zZXRhdHRyID0gX29ial9zZXRhdHRyLl9fZ2V0X18oc2VsZiwgQXR0cmlidXRlKQor
ICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gemlwKHNlbGYuX19zbG90c19fLCBzdGF0ZSk6Cisg
ICAgICAgICAgICBpZiBuYW1lICE9ICJtZXRhZGF0YSI6CisgICAgICAgICAgICAgICAgYm91bmRf
c2V0YXR0cihuYW1lLCB2YWx1ZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg
Ym91bmRfc2V0YXR0cihuYW1lLCBtZXRhZGF0YV9wcm94eSh2YWx1ZSkgaWYgdmFsdWUgZWxzZQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2VtcHR5X21ldGFkYXRhX3NpbmdsZXRvbikK
KworCitfYSA9IFtBdHRyaWJ1dGUobmFtZT1uYW1lLCBkZWZhdWx0PU5PVEhJTkcsIHZhbGlkYXRv
cj1Ob25lLAorICAgICAgICAgICAgICAgIHJlcHI9VHJ1ZSwgY21wPVRydWUsIGhhc2g9KG5hbWUg
IT0gIm1ldGFkYXRhIiksIGluaXQ9VHJ1ZSkKKyAgICAgIGZvciBuYW1lIGluIEF0dHJpYnV0ZS5f
X3Nsb3RzX19dCisKK0F0dHJpYnV0ZSA9IF9hZGRfaGFzaCgKKyAgICBfYWRkX2NtcChfYWRkX3Jl
cHIoQXR0cmlidXRlLCBhdHRycz1fYSksIGF0dHJzPV9hKSwKKyAgICBhdHRycz1bYSBmb3IgYSBp
biBfYSBpZiBhLmhhc2hdCispCisKKworY2xhc3MgX0NvdW50aW5nQXR0cihvYmplY3QpOgorICAg
ICIiIgorICAgIEludGVybWVkaWF0ZSByZXByZXNlbnRhdGlvbiBvZiBhdHRyaWJ1dGVzIHRoYXQg
dXNlcyBhIGNvdW50ZXIgdG8gcHJlc2VydmUKKyAgICB0aGUgb3JkZXIgaW4gd2hpY2ggdGhlIGF0
dHJpYnV0ZXMgaGF2ZSBiZWVuIGRlZmluZWQuCisKKyAgICAqSW50ZXJuYWwqIGRhdGEgc3RydWN0
dXJlIG9mIHRoZSBhdHRycyBsaWJyYXJ5LiAgUnVubmluZyBpbnRvIGlzIG1vc3QKKyAgICBsaWtl
bHkgdGhlIHJlc3VsdCBvZiBhIGJ1ZyBsaWtlIGEgZm9yZ290dGVuIGBAYXR0ci5zYCBkZWNvcmF0
b3IuCisgICAgIiIiCisgICAgX19zbG90c19fID0gKCJjb3VudGVyIiwgIl9kZWZhdWx0IiwgInJl
cHIiLCAiY21wIiwgImhhc2giLCAiaW5pdCIsCisgICAgICAgICAgICAgICAgICJtZXRhZGF0YSIs
ICJfdmFsaWRhdG9yIiwgImNvbnZlcnQiLCAidHlwZSIpCisgICAgX19hdHRyc19hdHRyc19fID0g
dHVwbGUoCisgICAgICAgIEF0dHJpYnV0ZShuYW1lPW5hbWUsIGRlZmF1bHQ9Tk9USElORywgdmFs
aWRhdG9yPU5vbmUsCisgICAgICAgICAgICAgICAgICByZXByPVRydWUsIGNtcD1UcnVlLCBoYXNo
PVRydWUsIGluaXQ9VHJ1ZSkKKyAgICAgICAgZm9yIG5hbWUKKyAgICAgICAgaW4gKCJjb3VudGVy
IiwgIl9kZWZhdWx0IiwgInJlcHIiLCAiY21wIiwgImhhc2giLCAiaW5pdCIsKQorICAgICkgKyAo
CisgICAgICAgIEF0dHJpYnV0ZShuYW1lPSJtZXRhZGF0YSIsIGRlZmF1bHQ9Tm9uZSwgdmFsaWRh
dG9yPU5vbmUsCisgICAgICAgICAgICAgICAgICByZXByPVRydWUsIGNtcD1UcnVlLCBoYXNoPUZh
bHNlLCBpbml0PVRydWUpLAorICAgICkKKyAgICBjbHNfY291bnRlciA9IDAKKworICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBkZWZhdWx0LCB2YWxpZGF0b3IsIHJlcHIsIGNtcCwgaGFzaCwgaW5pdCwg
Y29udmVydCwKKyAgICAgICAgICAgICAgICAgbWV0YWRhdGEsIHR5cGUpOgorICAgICAgICBfQ291
bnRpbmdBdHRyLmNsc19jb3VudGVyICs9IDEKKyAgICAgICAgc2VsZi5jb3VudGVyID0gX0NvdW50
aW5nQXR0ci5jbHNfY291bnRlcgorICAgICAgICBzZWxmLl9kZWZhdWx0ID0gZGVmYXVsdAorICAg
ICAgICAjIElmIHZhbGlkYXRvciBpcyBhIGxpc3QvdHVwbGUsIHdyYXAgaXQgdXNpbmcgaGVscGVy
IHZhbGlkYXRvci4KKyAgICAgICAgaWYgdmFsaWRhdG9yIGFuZCBpc2luc3RhbmNlKHZhbGlkYXRv
ciwgKGxpc3QsIHR1cGxlKSk6CisgICAgICAgICAgICBzZWxmLl92YWxpZGF0b3IgPSBhbmRfKCp2
YWxpZGF0b3IpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLl92YWxpZGF0b3IgPSB2
YWxpZGF0b3IKKyAgICAgICAgc2VsZi5yZXByID0gcmVwcgorICAgICAgICBzZWxmLmNtcCA9IGNt
cAorICAgICAgICBzZWxmLmhhc2ggPSBoYXNoCisgICAgICAgIHNlbGYuaW5pdCA9IGluaXQKKyAg
ICAgICAgc2VsZi5jb252ZXJ0ID0gY29udmVydAorICAgICAgICBzZWxmLm1ldGFkYXRhID0gbWV0
YWRhdGEKKyAgICAgICAgc2VsZi50eXBlID0gdHlwZQorCisgICAgZGVmIHZhbGlkYXRvcihzZWxm
LCBtZXRoKToKKyAgICAgICAgIiIiCisgICAgICAgIERlY29yYXRvciB0aGF0IGFkZHMgKm1ldGgq
IHRvIHRoZSBsaXN0IG9mIHZhbGlkYXRvcnMuCisKKyAgICAgICAgUmV0dXJucyAqbWV0aCogdW5j
aGFuZ2VkLgorCisgICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDE3LjEuMAorICAgICAgICAiIiIK
KyAgICAgICAgaWYgc2VsZi5fdmFsaWRhdG9yIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLl92
YWxpZGF0b3IgPSBtZXRoCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLl92YWxpZGF0
b3IgPSBhbmRfKHNlbGYuX3ZhbGlkYXRvciwgbWV0aCkKKyAgICAgICAgcmV0dXJuIG1ldGgKKwor
ICAgIGRlZiBkZWZhdWx0KHNlbGYsIG1ldGgpOgorICAgICAgICAiIiIKKyAgICAgICAgRGVjb3Jh
dG9yIHRoYXQgYWxsb3dzIHRvIHNldCB0aGUgZGVmYXVsdCBmb3IgYW4gYXR0cmlidXRlLgorCisg
ICAgICAgIFJldHVybnMgKm1ldGgqIHVuY2hhbmdlZC4KKworICAgICAgICA6cmFpc2VzIERlZmF1
bHRBbHJlYWR5U2V0RXJyb3I6IElmIGRlZmF1bHQgaGFzIGJlZW4gc2V0IGJlZm9yZS4KKworICAg
ICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAxNy4xLjAKKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNl
bGYuX2RlZmF1bHQgaXMgbm90IE5PVEhJTkc6CisgICAgICAgICAgICByYWlzZSBEZWZhdWx0QWxy
ZWFkeVNldEVycm9yKCkKKworICAgICAgICBzZWxmLl9kZWZhdWx0ID0gRmFjdG9yeShtZXRoLCB0
YWtlc19zZWxmPVRydWUpCisKKyAgICAgICAgcmV0dXJuIG1ldGgKKworCitfQ291bnRpbmdBdHRy
ID0gX2FkZF9jbXAoX2FkZF9yZXByKF9Db3VudGluZ0F0dHIpKQorCisKK0BhdHRycyhzbG90cz1U
cnVlLCBpbml0PUZhbHNlLCBoYXNoPVRydWUpCitjbGFzcyBGYWN0b3J5KG9iamVjdCk6CisgICAg
IiIiCisgICAgU3RvcmVzIGEgZmFjdG9yeSBjYWxsYWJsZS4KKworICAgIElmIHBhc3NlZCBhcyB0
aGUgZGVmYXVsdCB2YWx1ZSB0byA6ZnVuYzpgYXR0ci5pYmAsIHRoZSBmYWN0b3J5IGlzIHVzZWQg
dG8KKyAgICBnZW5lcmF0ZSBhIG5ldyB2YWx1ZS4KKworICAgIDpwYXJhbSBjYWxsYWJsZSBmYWN0
b3J5OiBBIGNhbGxhYmxlIHRoYXQgdGFrZXMgZWl0aGVyIG5vbmUgb3IgZXhhY3RseSBvbmUKKyAg
ICAgICAgbWFuZGF0b3J5IHBvc2l0aW9uYWwgYXJndW1lbnQgZGVwZW5kaW5nIG9uICp0YWtlc19z
ZWxmKi4KKyAgICA6cGFyYW0gYm9vbCB0YWtlc19zZWxmOiBQYXNzIHRoZSBwYXJ0aWFsbHkgaW5p
dGlhbGl6ZWQgaW5zdGFuY2UgdGhhdCBpcworICAgICAgICBiZWluZyBpbml0aWFsaXplZCBhcyBh
IHBvc2l0aW9uYWwgYXJndW1lbnQuCisKKyAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAxNy4xLjAgICp0
YWtlc19zZWxmKgorICAgICIiIgorICAgIGZhY3RvcnkgPSBhdHRyaWIoKQorICAgIHRha2VzX3Nl
bGYgPSBhdHRyaWIoKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZhY3RvcnksIHRha2VzX3Nl
bGY9RmFsc2UpOgorICAgICAgICAiIiIKKyAgICAgICAgYEZhY3RvcnlgIGlzIHBhcnQgb2YgdGhl
IGRlZmF1bHQgbWFjaGluZXJ5IHNvIGlmIHdlIHdhbnQgYSBkZWZhdWx0CisgICAgICAgIHZhbHVl
IGhlcmUsIHdlIGhhdmUgdG8gaW1wbGVtZW50IGl0IG91cnNlbHZlcy4KKyAgICAgICAgIiIiCisg
ICAgICAgIHNlbGYuZmFjdG9yeSA9IGZhY3RvcnkKKyAgICAgICAgc2VsZi50YWtlc19zZWxmID0g
dGFrZXNfc2VsZgorCisKK2RlZiBtYWtlX2NsYXNzKG5hbWUsIGF0dHJzLCBiYXNlcz0ob2JqZWN0
LCksICoqYXR0cmlidXRlc19hcmd1bWVudHMpOgorICAgICIiIgorICAgIEEgcXVpY2sgd2F5IHRv
IGNyZWF0ZSBhIG5ldyBjbGFzcyBjYWxsZWQgKm5hbWUqIHdpdGggKmF0dHJzKi4KKworICAgIDpw
YXJhbSBuYW1lOiBUaGUgbmFtZSBmb3IgdGhlIG5ldyBjbGFzcy4KKyAgICA6dHlwZSBuYW1lOiBz
dHIKKworICAgIDpwYXJhbSBhdHRyczogQSBsaXN0IG9mIG5hbWVzIG9yIGEgZGljdGlvbmFyeSBv
ZiBtYXBwaW5ncyBvZiBuYW1lcyB0bworICAgICAgICBhdHRyaWJ1dGVzLgorICAgIDp0eXBlIGF0
dHJzOiA6Y2xhc3M6YGxpc3RgIG9yIDpjbGFzczpgZGljdGAKKworICAgIDpwYXJhbSB0dXBsZSBi
YXNlczogQ2xhc3NlcyB0aGF0IHRoZSBuZXcgY2xhc3Mgd2lsbCBzdWJjbGFzcy4KKworICAgIDpw
YXJhbSBhdHRyaWJ1dGVzX2FyZ3VtZW50czogUGFzc2VkIHVubW9kaWZpZWQgdG8gOmZ1bmM6YGF0
dHIuc2AuCisKKyAgICA6cmV0dXJuOiBBIG5ldyBjbGFzcyB3aXRoICphdHRycyouCisgICAgOnJ0
eXBlOiB0eXBlCisKKyAgICAuLiAgdmVyc2lvbmFkZGVkOjogMTcuMS4wICpiYXNlcyoKKyAgICAi
IiIKKyAgICBpZiBpc2luc3RhbmNlKGF0dHJzLCBkaWN0KToKKyAgICAgICAgY2xzX2RpY3QgPSBh
dHRycworICAgIGVsaWYgaXNpbnN0YW5jZShhdHRycywgKGxpc3QsIHR1cGxlKSk6CisgICAgICAg
IGNsc19kaWN0ID0gZGljdCgoYSwgYXR0cmliKCkpIGZvciBhIGluIGF0dHJzKQorICAgIGVsc2U6
CisgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiYXR0cnMgYXJndW1lbnQgbXVzdCBiZSBhIGRpY3Qg
b3IgYSBsaXN0LiIpCisKKyAgICBwb3N0X2luaXQgPSBjbHNfZGljdC5wb3AoIl9fYXR0cnNfcG9z
dF9pbml0X18iLCBOb25lKQorICAgIHR5cGVfID0gdHlwZSgKKyAgICAgICAgbmFtZSwKKyAgICAg
ICAgYmFzZXMsCisgICAgICAgIHt9IGlmIHBvc3RfaW5pdCBpcyBOb25lIGVsc2UgeyJfX2F0dHJz
X3Bvc3RfaW5pdF9fIjogcG9zdF9pbml0fQorICAgICkKKyAgICAjIEZvciBwaWNrbGluZyB0byB3
b3JrLCB0aGUgX19tb2R1bGVfXyB2YXJpYWJsZSBuZWVkcyB0byBiZSBzZXQgdG8gdGhlCisgICAg
IyBmcmFtZSB3aGVyZSB0aGUgY2xhc3MgaXMgY3JlYXRlZC4gIEJ5cGFzcyB0aGlzIHN0ZXAgaW4g
ZW52aXJvbm1lbnRzIHdoZXJlCisgICAgIyBzeXMuX2dldGZyYW1lIGlzIG5vdCBkZWZpbmVkIChK
eXRob24gZm9yIGV4YW1wbGUpIG9yIHN5cy5fZ2V0ZnJhbWUgaXMgbm90CisgICAgIyBkZWZpbmVk
IGZvciBhcmd1bWVudHMgZ3JlYXRlciB0aGFuIDAgKElyb25QeXRob24pLgorICAgIHRyeToKKyAg
ICAgICAgdHlwZV8uX19tb2R1bGVfXyA9IHN5cy5fZ2V0ZnJhbWUoMSkuZl9nbG9iYWxzLmdldCgK
KyAgICAgICAgICAgICJfX25hbWVfXyIsICJfX21haW5fXyIsCisgICAgICAgICkKKyAgICBleGNl
cHQgKEF0dHJpYnV0ZUVycm9yLCBWYWx1ZUVycm9yKToKKyAgICAgICAgcGFzcworCisgICAgcmV0
dXJuIF9hdHRycyh0aGVzZT1jbHNfZGljdCwgKiphdHRyaWJ1dGVzX2FyZ3VtZW50cykodHlwZV8p
CisKKworIyBUaGVzZSBhcmUgcmVxdWlyZWQgYnkgd2l0aGluIHRoaXMgbW9kdWxlIHNvIHdlIGRl
ZmluZSB0aGVtIGhlcmUgYW5kIG1lcmVseQorIyBpbXBvcnQgaW50byAudmFsaWRhdG9ycy4KKwor
CitAYXR0cnMoc2xvdHM9VHJ1ZSwgaGFzaD1UcnVlKQorY2xhc3MgX0FuZFZhbGlkYXRvcihvYmpl
Y3QpOgorICAgICIiIgorICAgIENvbXBvc2UgbWFueSB2YWxpZGF0b3JzIHRvIGEgc2luZ2xlIG9u
ZS4KKyAgICAiIiIKKyAgICBfdmFsaWRhdG9ycyA9IGF0dHJpYigpCisKKyAgICBkZWYgX19jYWxs
X18oc2VsZiwgaW5zdCwgYXR0ciwgdmFsdWUpOgorICAgICAgICBmb3IgdiBpbiBzZWxmLl92YWxp
ZGF0b3JzOgorICAgICAgICAgICAgdihpbnN0LCBhdHRyLCB2YWx1ZSkKKworCitkZWYgYW5kXygq
dmFsaWRhdG9ycyk6CisgICAgIiIiCisgICAgQSB2YWxpZGF0b3IgdGhhdCBjb21wb3NlcyBtdWx0
aXBsZSB2YWxpZGF0b3JzIGludG8gb25lLgorCisgICAgV2hlbiBjYWxsZWQgb24gYSB2YWx1ZSwg
aXQgcnVucyBhbGwgd3JhcHBlZCB2YWxpZGF0b3JzLgorCisgICAgOnBhcmFtIHZhbGlkYXRvcnM6
IEFyYml0cmFyeSBudW1iZXIgb2YgdmFsaWRhdG9ycy4KKyAgICA6dHlwZSB2YWxpZGF0b3JzOiBj
YWxsYWJsZXMKKworICAgIC4uIHZlcnNpb25hZGRlZDo6IDE3LjEuMAorICAgICIiIgorICAgIHZh
bHMgPSBbXQorICAgIGZvciB2YWxpZGF0b3IgaW4gdmFsaWRhdG9yczoKKyAgICAgICAgdmFscy5l
eHRlbmQoCisgICAgICAgICAgICB2YWxpZGF0b3IuX3ZhbGlkYXRvcnMgaWYgaXNpbnN0YW5jZSh2
YWxpZGF0b3IsIF9BbmRWYWxpZGF0b3IpCisgICAgICAgICAgICBlbHNlIFt2YWxpZGF0b3JdCisg
ICAgICAgICkKKworICAgIHJldHVybiBfQW5kVmFsaWRhdG9yKHR1cGxlKHZhbHMpKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9hdHRycy9zcmMvYXR0ci9jb252ZXJ0ZXJzLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9zcmMv
YXR0ci9jb252ZXJ0ZXJzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiM2JhYzkyYmU1MjRhMjYwZWQ2MzEyYzlh
YzYzNjA1MDNhNjU4MTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL2Nv
bnZlcnRlcnMucHkKQEAgLTAsMCArMSwyNCBAQAorIiIiCitDb21tb25seSB1c2VmdWwgY29udmVy
dGVycy4KKyIiIgorCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2
aXNpb24sIHByaW50X2Z1bmN0aW9uCisKKworZGVmIG9wdGlvbmFsKGNvbnZlcnRlcik6CisgICAg
IiIiCisgICAgQSBjb252ZXJ0ZXIgdGhhdCBhbGxvd3MgYW4gYXR0cmlidXRlIHRvIGJlIG9wdGlv
bmFsLiBBbiBvcHRpb25hbCBhdHRyaWJ1dGUKKyAgICBpcyBvbmUgd2hpY2ggY2FuIGJlIHNldCB0
byBgYE5vbmVgYC4KKworICAgIDpwYXJhbSBjYWxsYWJsZSBjb252ZXJ0ZXI6IHRoZSBjb252ZXJ0
ZXIgdGhhdCBpcyB1c2VkIGZvciBub24tYGBOb25lYGAKKyAgICAgICAgdmFsdWVzLgorCisgICAg
Li4gIHZlcnNpb25hZGRlZDo6IDE3LjEuMAorICAgICIiIgorCisgICAgZGVmIG9wdGlvbmFsX2Nv
bnZlcnRlcih2YWwpOgorICAgICAgICBpZiB2YWwgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVy
biBOb25lCisgICAgICAgIHJldHVybiBjb252ZXJ0ZXIodmFsKQorCisgICAgcmV0dXJuIG9wdGlv
bmFsX2NvbnZlcnRlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9zcmMvYXR0ci9leGNlcHRpb25z
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9hdHRycy9zcmMvYXR0ci9leGNlcHRpb25zLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5NDlm
M2M5YzAxY2YzNzFhNWYzYmExNjM5YTdlODZmYmI5MjcyZTgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2F0dHJzL3NyYy9hdHRyL2V4Y2VwdGlvbnMucHkKQEAgLTAsMCArMSw0OCBAQAorZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlv
bgorCisKK2NsYXNzIEZyb3plbkluc3RhbmNlRXJyb3IoQXR0cmlidXRlRXJyb3IpOgorICAgICIi
IgorICAgIEEgZnJvemVuL2ltbXV0YWJsZSBpbnN0YW5jZSBoYXMgYmVlbiBhdHRlbXB0ZWQgdG8g
YmUgbW9kaWZpZWQuCisKKyAgICBJdCBtaXJyb3JzIHRoZSBiZWhhdmlvciBvZiBgYG5hbWVkdHVw
bGVzYGAgYnkgdXNpbmcgdGhlIHNhbWUgZXJyb3IgbWVzc2FnZQorICAgIGFuZCBzdWJjbGFzc2lu
ZyA6ZXhjOmBBdHRyaWJ1dGVFcnJvcmAuCisKKyAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAxNi4xLjAK
KyAgICAiIiIKKyAgICBtc2cgPSAiY2FuJ3Qgc2V0IGF0dHJpYnV0ZSIKKyAgICBhcmdzID0gW21z
Z10KKworCitjbGFzcyBBdHRyc0F0dHJpYnV0ZU5vdEZvdW5kRXJyb3IoVmFsdWVFcnJvcik6Cisg
ICAgIiIiCisgICAgQW4gYGBhdHRyc2BgIGZ1bmN0aW9uIGNvdWxkbid0IGZpbmQgYW4gYXR0cmli
dXRlIHRoYXQgdGhlIHVzZXIgYXNrZWQgZm9yLgorCisgICAgLi4gdmVyc2lvbmFkZGVkOjogMTYu
Mi4wCisgICAgIiIiCisKKworY2xhc3MgTm90QW5BdHRyc0NsYXNzRXJyb3IoVmFsdWVFcnJvcik6
CisgICAgIiIiCisgICAgQSBub24tYGBhdHRyc2BgIGNsYXNzIGhhcyBiZWVuIHBhc3NlZCBpbnRv
IGFuIGBgYXR0cnNgYCBmdW5jdGlvbi4KKworICAgIC4uIHZlcnNpb25hZGRlZDo6IDE2LjIuMAor
ICAgICIiIgorCisKK2NsYXNzIERlZmF1bHRBbHJlYWR5U2V0RXJyb3IoUnVudGltZUVycm9yKToK
KyAgICAiIiIKKyAgICBBIGRlZmF1bHQgaGFzIGJlZW4gc2V0IHVzaW5nIGBgYXR0ci5pYigpYGAg
YW5kIGlzIGF0dGVtcHRlZCB0byBiZSByZXNldAorICAgIHVzaW5nIHRoZSBkZWNvcmF0b3IuCisK
KyAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAxNy4xLjAKKyAgICAiIiIKKworCitjbGFzcyBVbmFubm90
YXRlZEF0dHJpYnV0ZUVycm9yKFJ1bnRpbWVFcnJvcik6CisgICAgIiIiCisgICAgQSBjbGFzcyB3
aXRoIGBgYXV0b19hdHRyaWJzPVRydWVgYCBoYXMgYW4gYGBhdHRyLmliKClgYCB3aXRob3V0IGEg
dHlwZQorICAgIGFubm90YXRpb24uCisKKyAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAxNy4zLjAKKyAg
ICAiIiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvc3JjL2F0dHIvZmlsdGVycy5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YXR0cnMvc3JjL2F0dHIvZmlsdGVycy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMWJhZDM1ZTM2M2Q3MDVjZGMx
MTU0OWIwY2NmNGRhODNkYTA4MjRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9zcmMv
YXR0ci9maWx0ZXJzLnB5CkBAIC0wLDAgKzEsNTIgQEAKKyIiIgorQ29tbW9ubHkgdXNlZnVsIGZp
bHRlcnMgZm9yIDpmdW5jOmBhdHRyLmFzZGljdGAuCisiIiIKKworZnJvbSBfX2Z1dHVyZV9fIGlt
cG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitmcm9tIC5f
Y29tcGF0IGltcG9ydCBpc2NsYXNzCitmcm9tIC5fbWFrZSBpbXBvcnQgQXR0cmlidXRlCisKKwor
ZGVmIF9zcGxpdF93aGF0KHdoYXQpOgorICAgICIiIgorICAgIFJldHVybnMgYSB0dXBsZSBvZiBg
ZnJvemVuc2V0YHMgb2YgY2xhc3NlcyBhbmQgYXR0cmlidXRlcy4KKyAgICAiIiIKKyAgICByZXR1
cm4gKAorICAgICAgICBmcm96ZW5zZXQoY2xzIGZvciBjbHMgaW4gd2hhdCBpZiBpc2NsYXNzKGNs
cykpLAorICAgICAgICBmcm96ZW5zZXQoY2xzIGZvciBjbHMgaW4gd2hhdCBpZiBpc2luc3RhbmNl
KGNscywgQXR0cmlidXRlKSksCisgICAgKQorCisKK2RlZiBpbmNsdWRlKCp3aGF0KToKKyAgICAi
IiIKKyAgICBXaGl0ZWxpc3QgKndoYXQqLgorCisgICAgOnBhcmFtIHdoYXQ6IFdoYXQgdG8gd2hp
dGVsaXN0LgorICAgIDp0eXBlIHdoYXQ6IDpjbGFzczpgbGlzdGAgb2YgOmNsYXNzOmB0eXBlYCBv
ciA6Y2xhc3M6YGF0dHIuQXR0cmlidXRlYFwgcworCisgICAgOnJ0eXBlOiA6Y2xhc3M6YGNhbGxh
YmxlYAorICAgICIiIgorICAgIGNscywgYXR0cnMgPSBfc3BsaXRfd2hhdCh3aGF0KQorCisgICAg
ZGVmIGluY2x1ZGVfKGF0dHJpYnV0ZSwgdmFsdWUpOgorICAgICAgICByZXR1cm4gdmFsdWUuX19j
bGFzc19fIGluIGNscyBvciBhdHRyaWJ1dGUgaW4gYXR0cnMKKworICAgIHJldHVybiBpbmNsdWRl
XworCisKK2RlZiBleGNsdWRlKCp3aGF0KToKKyAgICAiIiIKKyAgICBCbGFja2xpc3QgKndoYXQq
LgorCisgICAgOnBhcmFtIHdoYXQ6IFdoYXQgdG8gYmxhY2tsaXN0LgorICAgIDp0eXBlIHdoYXQ6
IDpjbGFzczpgbGlzdGAgb2YgY2xhc3NlcyBvciA6Y2xhc3M6YGF0dHIuQXR0cmlidXRlYFwgcy4K
KworICAgIDpydHlwZTogOmNsYXNzOmBjYWxsYWJsZWAKKyAgICAiIiIKKyAgICBjbHMsIGF0dHJz
ID0gX3NwbGl0X3doYXQod2hhdCkKKworICAgIGRlZiBleGNsdWRlXyhhdHRyaWJ1dGUsIHZhbHVl
KToKKyAgICAgICAgcmV0dXJuIHZhbHVlLl9fY2xhc3NfXyBub3QgaW4gY2xzIGFuZCBhdHRyaWJ1
dGUgbm90IGluIGF0dHJzCisKKyAgICByZXR1cm4gZXhjbHVkZV8KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YXR0cnMvc3JjL2F0dHIvdmFsaWRhdG9ycy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvc3JjL2F0dHIvdmFsaWRh
dG9ycy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mODg5MmZjZGZlNGVlZmU1NTUzY2QzNjE3YTQ3YTliOTc4Y2U1
NjJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9zcmMvYXR0ci92YWxpZGF0b3JzLnB5
CkBAIC0wLDAgKzEsMTY2IEBACisiIiIKK0NvbW1vbmx5IHVzZWZ1bCB2YWxpZGF0b3JzLgorIiIi
CisKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJp
bnRfZnVuY3Rpb24KKworZnJvbSAuX21ha2UgaW1wb3J0IF9BbmRWYWxpZGF0b3IsIGFuZF8sIGF0
dHJpYiwgYXR0cnMKKworCitfX2FsbF9fID0gWworICAgICJhbmRfIiwKKyAgICAiaW5fIiwKKyAg
ICAiaW5zdGFuY2Vfb2YiLAorICAgICJvcHRpb25hbCIsCisgICAgInByb3ZpZGVzIiwKK10KKwor
CitAYXR0cnMocmVwcj1GYWxzZSwgc2xvdHM9VHJ1ZSwgaGFzaD1UcnVlKQorY2xhc3MgX0luc3Rh
bmNlT2ZWYWxpZGF0b3Iob2JqZWN0KToKKyAgICB0eXBlID0gYXR0cmliKCkKKworICAgIGRlZiBf
X2NhbGxfXyhzZWxmLCBpbnN0LCBhdHRyLCB2YWx1ZSk6CisgICAgICAgICIiIgorICAgICAgICBX
ZSB1c2UgYSBjYWxsYWJsZSBjbGFzcyB0byBiZSBhYmxlIHRvIGNoYW5nZSB0aGUgYGBfX3JlcHJf
X2BgLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodmFsdWUsIHNlbGYu
dHlwZSk6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoCisgICAgICAgICAgICAgICAgIid7
bmFtZX0nIG11c3QgYmUge3R5cGUhcn0gKGdvdCB7dmFsdWUhcn0gdGhhdCBpcyBhICIKKyAgICAg
ICAgICAgICAgICAie2FjdHVhbCFyfSkuIgorICAgICAgICAgICAgICAgIC5mb3JtYXQobmFtZT1h
dHRyLm5hbWUsIHR5cGU9c2VsZi50eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgYWN0dWFs
PXZhbHVlLl9fY2xhc3NfXywgdmFsdWU9dmFsdWUpLAorICAgICAgICAgICAgICAgIGF0dHIsIHNl
bGYudHlwZSwgdmFsdWUsCisgICAgICAgICAgICApCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6
CisgICAgICAgIHJldHVybiAoCisgICAgICAgICAgICAiPGluc3RhbmNlX29mIHZhbGlkYXRvciBm
b3IgdHlwZSB7dHlwZSFyfT4iCisgICAgICAgICAgICAuZm9ybWF0KHR5cGU9c2VsZi50eXBlKQor
ICAgICAgICApCisKKworZGVmIGluc3RhbmNlX29mKHR5cGUpOgorICAgICIiIgorICAgIEEgdmFs
aWRhdG9yIHRoYXQgcmFpc2VzIGEgOmV4YzpgVHlwZUVycm9yYCBpZiB0aGUgaW5pdGlhbGl6ZXIg
aXMgY2FsbGVkCisgICAgd2l0aCBhIHdyb25nIHR5cGUgZm9yIHRoaXMgcGFydGljdWxhciBhdHRy
aWJ1dGUgKGNoZWNrcyBhcmUgcGVyZm9ybWVkIHVzaW5nCisgICAgOmZ1bmM6YGlzaW5zdGFuY2Vg
IHRoZXJlZm9yZSBpdCdzIGFsc28gdmFsaWQgdG8gcGFzcyBhIHR1cGxlIG9mIHR5cGVzKS4KKwor
ICAgIDpwYXJhbSB0eXBlOiBUaGUgdHlwZSB0byBjaGVjayBmb3IuCisgICAgOnR5cGUgdHlwZTog
dHlwZSBvciB0dXBsZSBvZiB0eXBlcworCisgICAgOnJhaXNlcyBUeXBlRXJyb3I6IFdpdGggYSBo
dW1hbiByZWFkYWJsZSBlcnJvciBtZXNzYWdlLCB0aGUgYXR0cmlidXRlCisgICAgICAgIChvZiB0
eXBlIDpjbGFzczpgYXR0ci5BdHRyaWJ1dGVgKSwgdGhlIGV4cGVjdGVkIHR5cGUsIGFuZCB0aGUg
dmFsdWUgaXQKKyAgICAgICAgZ290LgorICAgICIiIgorICAgIHJldHVybiBfSW5zdGFuY2VPZlZh
bGlkYXRvcih0eXBlKQorCisKK0BhdHRycyhyZXByPUZhbHNlLCBzbG90cz1UcnVlLCBoYXNoPVRy
dWUpCitjbGFzcyBfUHJvdmlkZXNWYWxpZGF0b3Iob2JqZWN0KToKKyAgICBpbnRlcmZhY2UgPSBh
dHRyaWIoKQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGluc3QsIGF0dHIsIHZhbHVlKToKKyAg
ICAgICAgIiIiCisgICAgICAgIFdlIHVzZSBhIGNhbGxhYmxlIGNsYXNzIHRvIGJlIGFibGUgdG8g
Y2hhbmdlIHRoZSBgYF9fcmVwcl9fYGAuCisgICAgICAgICIiIgorICAgICAgICBpZiBub3Qgc2Vs
Zi5pbnRlcmZhY2UucHJvdmlkZWRCeSh2YWx1ZSk6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJy
b3IoCisgICAgICAgICAgICAgICAgIid7bmFtZX0nIG11c3QgcHJvdmlkZSB7aW50ZXJmYWNlIXJ9
IHdoaWNoIHt2YWx1ZSFyfSAiCisgICAgICAgICAgICAgICAgImRvZXNuJ3QuIgorICAgICAgICAg
ICAgICAgIC5mb3JtYXQobmFtZT1hdHRyLm5hbWUsIGludGVyZmFjZT1zZWxmLmludGVyZmFjZSwg
dmFsdWU9dmFsdWUpLAorICAgICAgICAgICAgICAgIGF0dHIsIHNlbGYuaW50ZXJmYWNlLCB2YWx1
ZSwKKyAgICAgICAgICAgICkKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0
dXJuICgKKyAgICAgICAgICAgICI8cHJvdmlkZXMgdmFsaWRhdG9yIGZvciBpbnRlcmZhY2Uge2lu
dGVyZmFjZSFyfT4iCisgICAgICAgICAgICAuZm9ybWF0KGludGVyZmFjZT1zZWxmLmludGVyZmFj
ZSkKKyAgICAgICAgKQorCisKK2RlZiBwcm92aWRlcyhpbnRlcmZhY2UpOgorICAgICIiIgorICAg
IEEgdmFsaWRhdG9yIHRoYXQgcmFpc2VzIGEgOmV4YzpgVHlwZUVycm9yYCBpZiB0aGUgaW5pdGlh
bGl6ZXIgaXMgY2FsbGVkCisgICAgd2l0aCBhbiBvYmplY3QgdGhhdCBkb2VzIG5vdCBwcm92aWRl
IHRoZSByZXF1ZXN0ZWQgKmludGVyZmFjZSogKGNoZWNrcyBhcmUKKyAgICBwZXJmb3JtZWQgdXNp
bmcgYGBpbnRlcmZhY2UucHJvdmlkZWRCeSh2YWx1ZSlgYCAoc2VlIGB6b3BlLmludGVyZmFjZQor
ICAgIDxodHRwczovL3pvcGVpbnRlcmZhY2UucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0Lz5gXyku
CisKKyAgICA6cGFyYW0gem9wZS5pbnRlcmZhY2UuSW50ZXJmYWNlIGludGVyZmFjZTogVGhlIGlu
dGVyZmFjZSB0byBjaGVjayBmb3IuCisKKyAgICA6cmFpc2VzIFR5cGVFcnJvcjogV2l0aCBhIGh1
bWFuIHJlYWRhYmxlIGVycm9yIG1lc3NhZ2UsIHRoZSBhdHRyaWJ1dGUKKyAgICAgICAgKG9mIHR5
cGUgOmNsYXNzOmBhdHRyLkF0dHJpYnV0ZWApLCB0aGUgZXhwZWN0ZWQgaW50ZXJmYWNlLCBhbmQg
dGhlCisgICAgICAgIHZhbHVlIGl0IGdvdC4KKyAgICAiIiIKKyAgICByZXR1cm4gX1Byb3ZpZGVz
VmFsaWRhdG9yKGludGVyZmFjZSkKKworCitAYXR0cnMocmVwcj1GYWxzZSwgc2xvdHM9VHJ1ZSwg
aGFzaD1UcnVlKQorY2xhc3MgX09wdGlvbmFsVmFsaWRhdG9yKG9iamVjdCk6CisgICAgdmFsaWRh
dG9yID0gYXR0cmliKCkKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBpbnN0LCBhdHRyLCB2YWx1
ZSk6CisgICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4KKworICAg
ICAgICBzZWxmLnZhbGlkYXRvcihpbnN0LCBhdHRyLCB2YWx1ZSkKKworICAgIGRlZiBfX3JlcHJf
XyhzZWxmKToKKyAgICAgICAgcmV0dXJuICgKKyAgICAgICAgICAgICI8b3B0aW9uYWwgdmFsaWRh
dG9yIGZvciB7d2hhdH0gb3IgTm9uZT4iCisgICAgICAgICAgICAuZm9ybWF0KHdoYXQ9cmVwcihz
ZWxmLnZhbGlkYXRvcikpCisgICAgICAgICkKKworCitkZWYgb3B0aW9uYWwodmFsaWRhdG9yKToK
KyAgICAiIiIKKyAgICBBIHZhbGlkYXRvciB0aGF0IG1ha2VzIGFuIGF0dHJpYnV0ZSBvcHRpb25h
bC4gIEFuIG9wdGlvbmFsIGF0dHJpYnV0ZSBpcyBvbmUKKyAgICB3aGljaCBjYW4gYmUgc2V0IHRv
IGBgTm9uZWBgIGluIGFkZGl0aW9uIHRvIHNhdGlzZnlpbmcgdGhlIHJlcXVpcmVtZW50cyBvZgor
ICAgIHRoZSBzdWItdmFsaWRhdG9yLgorCisgICAgOnBhcmFtIHZhbGlkYXRvcjogQSB2YWxpZGF0
b3IgKG9yIGEgbGlzdCBvZiB2YWxpZGF0b3JzKSB0aGF0IGlzIHVzZWQgZm9yCisgICAgICAgIG5v
bi1gYE5vbmVgYCB2YWx1ZXMuCisgICAgOnR5cGUgdmFsaWRhdG9yOiBjYWxsYWJsZSBvciA6Y2xh
c3M6YGxpc3RgIG9mIGNhbGxhYmxlcy4KKworICAgIC4uIHZlcnNpb25hZGRlZDo6IDE1LjEuMAor
ICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMTcuMS4wICp2YWxpZGF0b3IqIGNhbiBiZSBhIGxpc3Qg
b2YgdmFsaWRhdG9ycy4KKyAgICAiIiIKKyAgICBpZiBpc2luc3RhbmNlKHZhbGlkYXRvciwgbGlz
dCk6CisgICAgICAgIHJldHVybiBfT3B0aW9uYWxWYWxpZGF0b3IoX0FuZFZhbGlkYXRvcih2YWxp
ZGF0b3IpKQorICAgIHJldHVybiBfT3B0aW9uYWxWYWxpZGF0b3IodmFsaWRhdG9yKQorCisKK0Bh
dHRycyhyZXByPUZhbHNlLCBzbG90cz1UcnVlLCBoYXNoPVRydWUpCitjbGFzcyBfSW5WYWxpZGF0
b3Iob2JqZWN0KToKKyAgICBvcHRpb25zID0gYXR0cmliKCkKKworICAgIGRlZiBfX2NhbGxfXyhz
ZWxmLCBpbnN0LCBhdHRyLCB2YWx1ZSk6CisgICAgICAgIGlmIHZhbHVlIG5vdCBpbiBzZWxmLm9w
dGlvbnM6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAgICIn
e25hbWV9JyBtdXN0IGJlIGluIHtvcHRpb25zIXJ9IChnb3Qge3ZhbHVlIXJ9KSIKKyAgICAgICAg
ICAgICAgICAuZm9ybWF0KG5hbWU9YXR0ci5uYW1lLCBvcHRpb25zPXNlbGYub3B0aW9ucywgdmFs
dWU9dmFsdWUpCisgICAgICAgICAgICApCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAg
ICAgIHJldHVybiAoCisgICAgICAgICAgICAiPGluXyB2YWxpZGF0b3Igd2l0aCBvcHRpb25zIHtv
cHRpb25zIXJ9PiIKKyAgICAgICAgICAgIC5mb3JtYXQob3B0aW9ucz1zZWxmLm9wdGlvbnMpCisg
ICAgICAgICkKKworCitkZWYgaW5fKG9wdGlvbnMpOgorICAgICIiIgorICAgIEEgdmFsaWRhdG9y
IHRoYXQgcmFpc2VzIGEgOmV4YzpgVmFsdWVFcnJvcmAgaWYgdGhlIGluaXRpYWxpemVyIGlzIGNh
bGxlZAorICAgIHdpdGggYSB2YWx1ZSB0aGF0IGRvZXMgbm90IGJlbG9uZyBpbiB0aGUgb3B0aW9u
cyBwcm92aWRlZC4gIFRoZSBjaGVjayBpcworICAgIHBlcmZvcm1lZCB1c2luZyBgYHZhbHVlIGlu
IG9wdGlvbnNgYC4KKworICAgIDpwYXJhbSBvcHRpb25zOiBBbGxvd2VkIG9wdGlvbnMuCisgICAg
OnR5cGUgb3B0aW9uczogbGlzdCwgdHVwbGUsIDpjbGFzczpgZW51bS5FbnVtYCwgLi4uCisKKyAg
ICA6cmFpc2VzIFZhbHVlRXJyb3I6IFdpdGggYSBodW1hbiByZWFkYWJsZSBlcnJvciBtZXNzYWdl
LCB0aGUgYXR0cmlidXRlIChvZgorICAgICAgIHR5cGUgOmNsYXNzOmBhdHRyLkF0dHJpYnV0ZWAp
LCB0aGUgZXhwZWN0ZWQgb3B0aW9ucywgYW5kIHRoZSB2YWx1ZSBpdAorICAgICAgIGdvdC4KKwor
ICAgIC4uIHZlcnNpb25hZGRlZDo6IDE3LjEuMAorICAgICIiIgorICAgIHJldHVybiBfSW5WYWxp
ZGF0b3Iob3B0aW9ucykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvc3JjL2F0dHIvdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVk
NTI1ZDJiNTk2MWFjZDczNDA1NDM5MzM5YzU0M2E0OTZhZWQ1Y2MKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2F0dHJzL3NyYy9hdHRyL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjUgQEAKK1Ro
ZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBv
c2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJ
bnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6
Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xz
L1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9U
IG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRp
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZp
bGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYXR0cnMvc3JjL2F0dHIvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9h
dHRyL19jb21wYXQucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL19jb25maWcucHkKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0
dHJzL3NyYy9hdHRyL19mdW5jcy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvc3JjL2F0dHIvX21ha2UucHkKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2F0dHJzL3NyYy9hdHRyL2NvbnZlcnRlcnMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL2V4
Y2VwdGlvbnMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL2ZpbHRlcnMucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJz
L3NyYy9hdHRyL3ZhbGlkYXRvcnMucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVzdHMvX19p
bml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2ODM0
YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2F0dHJzL3Rlc3RzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEgQEAKKyMgVGhpcyBmaWxlIGlz
IHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVz
LgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVz
dHMvdGVzdF9hbm5vdGF0aW9ucy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVzdHMvdGVzdF9hbm5vdGF0aW9u
cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42MDJmMjFiZDVlNmVhNzk5ZDFlNDgwNTgxZWI5MTJjZTlhM2MyZTA5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0X2Fubm90YXRpb25zLnB5
CkBAIC0wLDAgKzEsMTU2IEBACisiIiIKK1Rlc3RzIGZvciBQRVAtNTI2IHR5cGUgYW5ub3RhdGlv
bnMuCisKK1B5dGhvbiAzLjYrIG9ubHkuCisiIiIKKworaW1wb3J0IHR5cGVzCitpbXBvcnQgdHlw
aW5nCisKK2ltcG9ydCBweXRlc3QKKworaW1wb3J0IGF0dHIKKworZnJvbSBhdHRyLmV4Y2VwdGlv
bnMgaW1wb3J0IFVuYW5ub3RhdGVkQXR0cmlidXRlRXJyb3IKKworCitjbGFzcyBUZXN0QW5ub3Rh
dGlvbnM6CisgICAgIiIiCisgICAgVGVzdHMgZm9yIHR5cGVzIGRlcml2ZWQgZnJvbSB2YXJpYWJs
ZSBhbm5vdGF0aW9ucyAoUEVQLTUyNikuCisgICAgIiIiCisKKyAgICBkZWYgdGVzdF9iYXNpY19h
bm5vdGF0aW9ucyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFNldHMgdGhlIGBBdHRyaWJ1
dGUudHlwZWAgYXR0ciBmcm9tIGJhc2ljIHR5cGUgYW5ub3RhdGlvbnMuCisgICAgICAgICIiIgor
ICAgICAgICBAYXR0ci5zCisgICAgICAgIGNsYXNzIEM6CisgICAgICAgICAgICB4OiBpbnQgPSBh
dHRyLmliKCkKKyAgICAgICAgICAgIHkgPSBhdHRyLmliKHR5cGU9c3RyKQorICAgICAgICAgICAg
eiA9IGF0dHIuaWIoKQorCisgICAgICAgIGFzc2VydCBpbnQgaXMgYXR0ci5maWVsZHMoQykueC50
eXBlCisgICAgICAgIGFzc2VydCBzdHIgaXMgYXR0ci5maWVsZHMoQykueS50eXBlCisgICAgICAg
IGFzc2VydCBOb25lIGlzIGF0dHIuZmllbGRzKEMpLnoudHlwZQorCisgICAgZGVmIHRlc3RfY2F0
Y2hlc19iYXNpY190eXBlX2NvbmZsaWN0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUmFp
c2VzIFZhbHVlRXJyb3IgaWYgdHlwZSBpcyBzcGVjaWZpZWQgYm90aCB3YXlzLgorICAgICAgICAi
IiIKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpIGFzIGU6CisgICAgICAg
ICAgICBAYXR0ci5zCisgICAgICAgICAgICBjbGFzcyBDOgorICAgICAgICAgICAgICAgIHg6IGlu
dCA9IGF0dHIuaWIodHlwZT1pbnQpCisKKyAgICAgICAgYXNzZXJ0ICgKKyAgICAgICAgICAgICJU
eXBlIGFubm90YXRpb24gYW5kIHR5cGUgYXJndW1lbnQgY2Fubm90IGJvdGggYmUgcHJlc2VudCIs
CisgICAgICAgICkgPT0gZS52YWx1ZS5hcmdzCisKKyAgICBkZWYgdGVzdF90eXBpbmdfYW5ub3Rh
dGlvbnMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBTZXRzIHRoZSBgQXR0cmlidXRlLnR5
cGVgIGF0dHIgZnJvbSB0eXBpbmcgYW5ub3RhdGlvbnMuCisgICAgICAgICIiIgorICAgICAgICBA
YXR0ci5zCisgICAgICAgIGNsYXNzIEM6CisgICAgICAgICAgICB4OiB0eXBpbmcuTGlzdFtpbnRd
ID0gYXR0ci5pYigpCisgICAgICAgICAgICB5ID0gYXR0ci5pYih0eXBlPXR5cGluZy5PcHRpb25h
bFtzdHJdKQorCisgICAgICAgIGFzc2VydCB0eXBpbmcuTGlzdFtpbnRdIGlzIGF0dHIuZmllbGRz
KEMpLngudHlwZQorICAgICAgICBhc3NlcnQgdHlwaW5nLk9wdGlvbmFsW3N0cl0gaXMgYXR0ci5m
aWVsZHMoQykueS50eXBlCisKKyAgICBkZWYgdGVzdF9vbmx5X2F0dHJzX2Fubm90YXRpb25zX2Nv
bGxlY3RlZChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIEFubm90YXRpb25zIHRoYXQgYXJl
bid0IHNldCB0byBhbiBhdHRyLmliIGFyZSBpZ25vcmVkLgorICAgICAgICAiIiIKKyAgICAgICAg
QGF0dHIucworICAgICAgICBjbGFzcyBDOgorICAgICAgICAgICAgeDogdHlwaW5nLkxpc3RbaW50
XSA9IGF0dHIuaWIoKQorICAgICAgICAgICAgeTogaW50CisKKyAgICAgICAgYXNzZXJ0IDEgPT0g
bGVuKGF0dHIuZmllbGRzKEMpKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJzbG90
cyIsIFtUcnVlLCBGYWxzZV0pCisgICAgZGVmIHRlc3RfYXV0b19hdHRyaWJzKHNlbGYsIHNsb3Rz
KToKKyAgICAgICAgIiIiCisgICAgICAgIElmICphdXRvX2F0dHJpYnMqIGlzIFRydWUsIGJhcmUg
YW5ub3RhdGlvbnMgYXJlIGNvbGxlY3RlZCB0b28uCisgICAgICAgIERlZmF1bHRzIHdvcmsgYW5k
IGNsYXNzIHZhcmlhYmxlcyBhcmUgaWdub3JlZC4KKyAgICAgICAgIiIiCisgICAgICAgIEBhdHRy
LnMoYXV0b19hdHRyaWJzPVRydWUsIHNsb3RzPXNsb3RzKQorICAgICAgICBjbGFzcyBDOgorICAg
ICAgICAgICAgY2xzX3ZhcjogdHlwaW5nLkNsYXNzVmFyW2ludF0gPSAyMworICAgICAgICAgICAg
YTogaW50CisgICAgICAgICAgICB4OiB0eXBpbmcuTGlzdFtpbnRdID0gYXR0ci5GYWN0b3J5KGxp
c3QpCisgICAgICAgICAgICB5OiBpbnQgPSAyCisgICAgICAgICAgICB6OiBpbnQgPSBhdHRyLmli
KGRlZmF1bHQ9MykKKyAgICAgICAgICAgIGZvbzogdHlwaW5nLkFueSA9IE5vbmUKKworICAgICAg
ICBpID0gQyg0MikKKyAgICAgICAgYXNzZXJ0ICJDKGE9NDIsIHg9W10sIHk9Miwgej0zLCBmb289
Tm9uZSkiID09IHJlcHIoaSkKKworICAgICAgICBhdHRyX25hbWVzID0gc2V0KGEubmFtZSBmb3Ig
YSBpbiBDLl9fYXR0cnNfYXR0cnNfXykKKyAgICAgICAgYXNzZXJ0ICJhIiBpbiBhdHRyX25hbWVz
ICAjIGp1c3QgZG91YmxlIGNoZWNrIHRoYXQgdGhlIHNldCB3b3JrcworICAgICAgICBhc3NlcnQg
ImNsc192YXIiIG5vdCBpbiBhdHRyX25hbWVzCisKKyAgICAgICAgYXNzZXJ0IGludCA9PSBhdHRy
LmZpZWxkcyhDKS5hLnR5cGUKKworICAgICAgICBhc3NlcnQgYXR0ci5GYWN0b3J5KGxpc3QpID09
IGF0dHIuZmllbGRzKEMpLnguZGVmYXVsdAorICAgICAgICBhc3NlcnQgdHlwaW5nLkxpc3RbaW50
XSA9PSBhdHRyLmZpZWxkcyhDKS54LnR5cGUKKworICAgICAgICBhc3NlcnQgaW50ID09IGF0dHIu
ZmllbGRzKEMpLnkudHlwZQorICAgICAgICBhc3NlcnQgMiA9PSBhdHRyLmZpZWxkcyhDKS55LmRl
ZmF1bHQKKworICAgICAgICBhc3NlcnQgaW50ID09IGF0dHIuZmllbGRzKEMpLnoudHlwZQorCisg
ICAgICAgIGFzc2VydCB0eXBpbmcuQW55ID09IGF0dHIuZmllbGRzKEMpLmZvby50eXBlCisKKyAg
ICAgICAgIyBDbGFzcyBib2R5IGlzIGNsZWFuLgorICAgICAgICBpZiBzbG90cyBpcyBGYWxzZToK
KyAgICAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhBdHRyaWJ1dGVFcnJvcik6CisgICAgICAg
ICAgICAgICAgQy55CisKKyAgICAgICAgICAgIGFzc2VydCAyID09IGkueQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoQy55LCB0eXBlcy5NZW1iZXJEZXNjcmlw
dG9yVHlwZSkKKworICAgICAgICAgICAgaS55ID0gMjMKKyAgICAgICAgICAgIGFzc2VydCAyMyA9
PSBpLnkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgic2xvdHMiLCBbVHJ1ZSwgRmFs
c2VdKQorICAgIGRlZiB0ZXN0X2F1dG9fYXR0cmlic191bmFubm90YXRlZChzZWxmLCBzbG90cyk6
CisgICAgICAgICIiIgorICAgICAgICBVbmFubm90YXRlZCBgYXR0ci5pYmBzIHJhaXNlIGFuIGVy
cm9yLgorICAgICAgICAiIiIKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFVuYW5ub3RhdGVk
QXR0cmlidXRlRXJyb3IpIGFzIGU6CisgICAgICAgICAgICBAYXR0ci5zKHNsb3RzPXNsb3RzLCBh
dXRvX2F0dHJpYnM9VHJ1ZSkKKyAgICAgICAgICAgIGNsYXNzIEM6CisgICAgICAgICAgICAgICAg
diA9IGF0dHIuaWIoKQorICAgICAgICAgICAgICAgIHg6IGludAorICAgICAgICAgICAgICAgIHkg
PSBhdHRyLmliKCkKKyAgICAgICAgICAgICAgICB6OiBzdHIKKworICAgICAgICBhc3NlcnQgKAor
ICAgICAgICAgICAgIlRoZSBmb2xsb3dpbmcgYGF0dHIuaWJgcyBsYWNrIGEgdHlwZSBhbm5vdGF0
aW9uOiB2LCB5LiIsCisgICAgICAgICkgPT0gZS52YWx1ZS5hcmdzCisKKyAgICBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoInNsb3RzIiwgW1RydWUsIEZhbHNlXSkKKyAgICBkZWYgdGVzdF9hdXRv
X2F0dHJpYnNfc3ViY2xhc3Npbmcoc2VsZiwgc2xvdHMpOgorICAgICAgICAiIiIKKyAgICAgICAg
QXR0cmlidXRlcyBmcm9tIHN1cGVyIGNsYXNzZXMgYXJlIGluaGVyaXRlZCwgaXQgZG9lc24ndCBt
YXR0ZXIgaWYgdGhlCisgICAgICAgIHN1YmNsYXNzIGhhcyBhbm5vdGF0aW9ucyBvciBub3QuCisK
KyAgICAgICAgUmVmICMyOTEKKyAgICAgICAgIiIiCisgICAgICAgIEBhdHRyLnMoc2xvdHM9c2xv
dHMsIGF1dG9fYXR0cmlicz1UcnVlKQorICAgICAgICBjbGFzcyBBOgorICAgICAgICAgICAgYTog
aW50ID0gMQorCisgICAgICAgIEBhdHRyLnMoc2xvdHM9c2xvdHMsIGF1dG9fYXR0cmlicz1UcnVl
KQorICAgICAgICBjbGFzcyBCKEEpOgorICAgICAgICAgICAgYjogaW50ID0gMgorCisgICAgICAg
IEBhdHRyLnMoc2xvdHM9c2xvdHMsIGF1dG9fYXR0cmlicz1UcnVlKQorICAgICAgICBjbGFzcyBD
KEEpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIGFzc2VydCAiQihhPTEsIGI9MikiID09
IHJlcHIoQigpKQorICAgICAgICBhc3NlcnQgIkMoYT0xKSIgPT0gcmVwcihDKCkpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3RfY29uZmlnLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90
ZXN0X2NvbmZpZy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yODdiZTAzYTU5NzkzYmZmOTQ1N2I2M2UyMmRkNWE4
Njg0YTNjZGE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0X2NvbmZp
Zy5weQpAQCAtMCwwICsxLDQzIEBACisiIiIKK1Rlc3RzIGZvciBgYXR0ci5fY29uZmlnYC4KKyIi
IgorCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHBy
aW50X2Z1bmN0aW9uCisKK2ltcG9ydCBweXRlc3QKKworZnJvbSBhdHRyIGltcG9ydCBfY29uZmln
CisKKworY2xhc3MgVGVzdENvbmZpZyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X2RlZmF1bHQoc2Vs
Zik6CisgICAgICAgICIiIgorICAgICAgICBSdW4gdmFsaWRhdG9ycyBieSBkZWZhdWx0LgorICAg
ICAgICAiIiIKKyAgICAgICAgYXNzZXJ0IFRydWUgaXMgX2NvbmZpZy5fcnVuX3ZhbGlkYXRvcnMK
KworICAgIGRlZiB0ZXN0X3NldF9ydW5fdmFsaWRhdG9ycyhzZWxmKToKKyAgICAgICAgIiIiCisg
ICAgICAgIFNldHMgYF9ydW5fdmFsaWRhdG9yc2AuCisgICAgICAgICIiIgorICAgICAgICBfY29u
ZmlnLnNldF9ydW5fdmFsaWRhdG9ycyhGYWxzZSkKKyAgICAgICAgYXNzZXJ0IEZhbHNlIGlzIF9j
b25maWcuX3J1bl92YWxpZGF0b3JzCisgICAgICAgIF9jb25maWcuc2V0X3J1bl92YWxpZGF0b3Jz
KFRydWUpCisgICAgICAgIGFzc2VydCBUcnVlIGlzIF9jb25maWcuX3J1bl92YWxpZGF0b3JzCisK
KyAgICBkZWYgdGVzdF9nZXRfcnVuX3ZhbGlkYXRvcnMoc2VsZik6CisgICAgICAgICIiIgorICAg
ICAgICBSZXR1cm5zIGBfcnVuX3ZhbGlkYXRvcnNgLgorICAgICAgICAiIiIKKyAgICAgICAgX2Nv
bmZpZy5fcnVuX3ZhbGlkYXRvcnMgPSBGYWxzZQorICAgICAgICBhc3NlcnQgX2NvbmZpZy5fcnVu
X3ZhbGlkYXRvcnMgaXMgX2NvbmZpZy5nZXRfcnVuX3ZhbGlkYXRvcnMoKQorICAgICAgICBfY29u
ZmlnLl9ydW5fdmFsaWRhdG9ycyA9IFRydWUKKyAgICAgICAgYXNzZXJ0IF9jb25maWcuX3J1bl92
YWxpZGF0b3JzIGlzIF9jb25maWcuZ2V0X3J1bl92YWxpZGF0b3JzKCkKKworICAgIGRlZiB0ZXN0
X3dyb25nX3R5cGUoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBQYXNzaW5nIGFueXRoaW5n
IGVsc2UgdGhhbiBhIGJvb2xlYW4gcmFpc2VzIFR5cGVFcnJvci4KKyAgICAgICAgIiIiCisgICAg
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3IpIGFzIGU6CisgICAgICAgICAgICBfY29u
ZmlnLnNldF9ydW5fdmFsaWRhdG9ycygiRmFsc2UiKQorICAgICAgICBhc3NlcnQgIidydW4nIG11
c3QgYmUgYm9vbC4iID09IGUudmFsdWUuYXJnc1swXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90
ZXN0cy90ZXN0X2NvbnZlcnRlcnMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3RfY29udmVydGVy
cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kYWYzOWQ4YWNlMDJhMjg1NWI3NTZiMzdkYmYyZWE4ZjZkYTQxODY0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0X2NvbnZlcnRlcnMucHkK
QEAgLTAsMCArMSwzNiBAQAorIiIiCitUZXN0cyBmb3IgYGF0dHIuY29udmVydGVyc2AuCisiIiIK
KworZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKKworaW1wb3J0IHB5dGVz
dAorCitmcm9tIGF0dHIuY29udmVydGVycyBpbXBvcnQgb3B0aW9uYWwKKworCitjbGFzcyBUZXN0
T3B0aW9uYWwob2JqZWN0KToKKyAgICAiIiIKKyAgICBUZXN0cyBmb3IgYG9wdGlvbmFsYC4KKyAg
ICAiIiIKKyAgICBkZWYgdGVzdF9zdWNjZXNzX3dpdGhfdHlwZShzZWxmKToKKyAgICAgICAgIiIi
CisgICAgICAgIFdyYXBwZWQgY29udmVydGVyIGlzIHVzZWQgYXMgdXN1YWwgaWYgdmFsdWUgaXMg
bm90IE5vbmUuCisgICAgICAgICIiIgorICAgICAgICBjID0gb3B0aW9uYWwoaW50KQorICAgICAg
ICBhc3NlcnQgYygiNDIiKSA9PSA0MgorCisgICAgZGVmIHRlc3Rfc3VjY2Vzc193aXRoX25vbmUo
c2VsZik6CisgICAgICAgICIiIgorICAgICAgICBOb3RoaW5nIGhhcHBlbnMgaWYgTm9uZS4KKyAg
ICAgICAgIiIiCisgICAgICAgIGMgPSBvcHRpb25hbChpbnQpCisgICAgICAgIGFzc2VydCBjKE5v
bmUpIGlzIE5vbmUKKworICAgIGRlZiB0ZXN0X2ZhaWwoc2VsZik6CisgICAgICAgICIiIgorICAg
ICAgICBQcm9wYWdhdGVzIHRoZSB1bmRlcmx5aW5nIGNvbnZlcnNpb24gZXJyb3Igd2hlbiBjb252
ZXJzaW9uIGZhaWxzLgorICAgICAgICAiIiIKKyAgICAgICAgYyA9IG9wdGlvbmFsKGludCkKKyAg
ICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgYygibm90
X2FuX2ludCIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3RfZGFya19tYWdpYy5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYXR0cnMvdGVzdHMvdGVzdF9kYXJrX21hZ2ljLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjNjY2
NWNmNWZlMTA5NTNkNmU4NzlhZTY0MjgyZWE4MmUwZTM4YzQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2F0dHJzL3Rlc3RzL3Rlc3RfZGFya19tYWdpYy5weQpAQCAtMCwwICsxLDM4MiBAQAorIiIi
CitFbmQtdG8tZW5kIHRlc3RzLgorIiIiCisKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1
dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IHBpY2tsZQorCitp
bXBvcnQgcHl0ZXN0CitpbXBvcnQgc2l4CisKK2Zyb20gaHlwb3RoZXNpcyBpbXBvcnQgZ2l2ZW4K
K2Zyb20gaHlwb3RoZXNpcy5zdHJhdGVnaWVzIGltcG9ydCBib29sZWFucworCitpbXBvcnQgYXR0
cgorCitmcm9tIGF0dHIuX2NvbXBhdCBpbXBvcnQgVFlQRQorZnJvbSBhdHRyLl9tYWtlIGltcG9y
dCBOT1RISU5HLCBBdHRyaWJ1dGUKK2Zyb20gYXR0ci5leGNlcHRpb25zIGltcG9ydCBGcm96ZW5J
bnN0YW5jZUVycm9yCisKKworQGF0dHIucworY2xhc3MgQzEob2JqZWN0KToKKyAgICB4ID0gYXR0
ci5pYih2YWxpZGF0b3I9YXR0ci52YWxpZGF0b3JzLmluc3RhbmNlX29mKGludCkpCisgICAgeSA9
IGF0dHIuaWIoKQorCisKK0BhdHRyLnMoc2xvdHM9VHJ1ZSkKK2NsYXNzIEMxU2xvdHMob2JqZWN0
KToKKyAgICB4ID0gYXR0ci5pYih2YWxpZGF0b3I9YXR0ci52YWxpZGF0b3JzLmluc3RhbmNlX29m
KGludCkpCisgICAgeSA9IGF0dHIuaWIoKQorCisKK2ZvbyA9IE5vbmUKKworCitAYXR0ci5zKCkK
K2NsYXNzIEMyKG9iamVjdCk6CisgICAgeCA9IGF0dHIuaWIoZGVmYXVsdD1mb28pCisgICAgeSA9
IGF0dHIuaWIoZGVmYXVsdD1hdHRyLkZhY3RvcnkobGlzdCkpCisKKworQGF0dHIucyhzbG90cz1U
cnVlKQorY2xhc3MgQzJTbG90cyhvYmplY3QpOgorICAgIHggPSBhdHRyLmliKGRlZmF1bHQ9Zm9v
KQorICAgIHkgPSBhdHRyLmliKGRlZmF1bHQ9YXR0ci5GYWN0b3J5KGxpc3QpKQorCisKK0BhdHRy
LnMKK2NsYXNzIFN1cGVyKG9iamVjdCk6CisgICAgeCA9IGF0dHIuaWIoKQorCisgICAgZGVmIG1l
dGgoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLngKKworCitAYXR0ci5zKHNsb3RzPVRydWUp
CitjbGFzcyBTdXBlclNsb3RzKG9iamVjdCk6CisgICAgeCA9IGF0dHIuaWIoKQorCisgICAgZGVm
IG1ldGgoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLngKKworCitAYXR0ci5zCitjbGFzcyBT
dWIoU3VwZXIpOgorICAgIHkgPSBhdHRyLmliKCkKKworCitAYXR0ci5zKHNsb3RzPVRydWUpCitj
bGFzcyBTdWJTbG90cyhTdXBlclNsb3RzKToKKyAgICB5ID0gYXR0ci5pYigpCisKKworQGF0dHIu
cyhmcm96ZW49VHJ1ZSwgc2xvdHM9VHJ1ZSkKK2NsYXNzIEZyb3plbihvYmplY3QpOgorICAgIHgg
PSBhdHRyLmliKCkKKworCitAYXR0ci5zCitjbGFzcyBTdWJGcm96ZW4oRnJvemVuKToKKyAgICB5
ID0gYXR0ci5pYigpCisKKworQGF0dHIucyhmcm96ZW49VHJ1ZSwgc2xvdHM9RmFsc2UpCitjbGFz
cyBGcm96ZW5Ob1Nsb3RzKG9iamVjdCk6CisgICAgeCA9IGF0dHIuaWIoKQorCisKK2NsYXNzIE1l
dGEodHlwZSk6CisgICAgcGFzcworCisKK0BhdHRyLnMKK0BzaXguYWRkX21ldGFjbGFzcyhNZXRh
KQorY2xhc3MgV2l0aE1ldGEob2JqZWN0KToKKyAgICBwYXNzCisKKworQGF0dHIucyhzbG90cz1U
cnVlKQorQHNpeC5hZGRfbWV0YWNsYXNzKE1ldGEpCitjbGFzcyBXaXRoTWV0YVNsb3RzKG9iamVj
dCk6CisgICAgcGFzcworCisKK0Zyb21NYWtlQ2xhc3MgPSBhdHRyLm1ha2VfY2xhc3MoIkZyb21N
YWtlQ2xhc3MiLCBbIngiXSkKKworCitjbGFzcyBUZXN0RGFya01hZ2ljKG9iamVjdCk6CisgICAg
IiIiCisgICAgSW50ZWdyYXRpb24gdGVzdHMuCisgICAgIiIiCisgICAgQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCJjbHMiLCBbQzIsIEMyU2xvdHNdKQorICAgIGRlZiB0ZXN0X2ZpZWxkcyhzZWxm
LCBjbHMpOgorICAgICAgICAiIiIKKyAgICAgICAgYGF0dHIuZmllbGRzYCB3b3Jrcy4KKyAgICAg
ICAgIiIiCisgICAgICAgIGFzc2VydCAoCisgICAgICAgICAgICBBdHRyaWJ1dGUobmFtZT0ieCIs
IGRlZmF1bHQ9Zm9vLCB2YWxpZGF0b3I9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICByZXBy
PVRydWUsIGNtcD1UcnVlLCBoYXNoPU5vbmUsIGluaXQ9VHJ1ZSksCisgICAgICAgICAgICBBdHRy
aWJ1dGUobmFtZT0ieSIsIGRlZmF1bHQ9YXR0ci5GYWN0b3J5KGxpc3QpLCB2YWxpZGF0b3I9Tm9u
ZSwKKyAgICAgICAgICAgICAgICAgICAgICByZXByPVRydWUsIGNtcD1UcnVlLCBoYXNoPU5vbmUs
IGluaXQ9VHJ1ZSksCisgICAgICAgICkgPT0gYXR0ci5maWVsZHMoY2xzKQorCisgICAgQHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplKCJjbHMiLCBbQzEsIEMxU2xvdHNdKQorICAgIGRlZiB0ZXN0X2Fz
ZGljdChzZWxmLCBjbHMpOgorICAgICAgICAiIiIKKyAgICAgICAgYGF0dHIuYXNkaWN0YCB3b3Jr
cy4KKyAgICAgICAgIiIiCisgICAgICAgIGFzc2VydCB7CisgICAgICAgICAgICAieCI6IDEsCisg
ICAgICAgICAgICAieSI6IDIsCisgICAgICAgIH0gPT0gYXR0ci5hc2RpY3QoY2xzKHg9MSwgeT0y
KSkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiY2xzIiwgW0MxLCBDMVNsb3RzXSkK
KyAgICBkZWYgdGVzdF92YWxpZGF0b3Ioc2VsZiwgY2xzKToKKyAgICAgICAgIiIiCisgICAgICAg
IGBpbnN0YW5jZV9vZmAgcmFpc2VzIGBUeXBlRXJyb3JgIG9uIHR5cGUgbWlzbWF0Y2guCisgICAg
ICAgICIiIgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yKSBhcyBlOgorICAg
ICAgICAgICAgY2xzKCIxIiwgMikKKworICAgICAgICAjIFVzaW5nIEMxIGV4cGxpY2l0bHksIHNp
bmNlIHNsb3QgY2xhc3NlcyBkb24ndCBzdXBwb3J0IHRoaXMuCisgICAgICAgIGFzc2VydCAoCisg
ICAgICAgICAgICAiJ3gnIG11c3QgYmUgPHt0eXBlfSAnaW50Jz4gKGdvdCAnMScgdGhhdCBpcyBh
IDx7dHlwZX0gIgorICAgICAgICAgICAgIidzdHInPikuIi5mb3JtYXQodHlwZT1UWVBFKSwKKyAg
ICAgICAgICAgIGF0dHIuZmllbGRzKEMxKS54LCBpbnQsICIxIiwKKyAgICAgICAgKSA9PSBlLnZh
bHVlLmFyZ3MKKworICAgIEBnaXZlbihib29sZWFucygpKQorICAgIGRlZiB0ZXN0X3JlbmFtaW5n
KHNlbGYsIHNsb3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFByaXZhdGUgbWVtYmVycyBhcmUg
cmVuYW1lZCBidXQgb25seSBpbiBgX19pbml0X19gLgorICAgICAgICAiIiIKKyAgICAgICAgQGF0
dHIucyhzbG90cz1zbG90cykKKyAgICAgICAgY2xhc3MgQzMob2JqZWN0KToKKyAgICAgICAgICAg
IF94ID0gYXR0ci5pYigpCisKKyAgICAgICAgYXNzZXJ0ICJDMyhfeD0xKSIgPT0gcmVwcihDMyh4
PTEpKQorCisgICAgQGdpdmVuKGJvb2xlYW5zKCksIGJvb2xlYW5zKCkpCisgICAgZGVmIHRlc3Rf
cHJvZ3JhbW1hdGljKHNlbGYsIHNsb3RzLCBmcm96ZW4pOgorICAgICAgICAiIiIKKyAgICAgICAg
YGF0dHIubWFrZV9jbGFzc2Agd29ya3MuCisgICAgICAgICIiIgorICAgICAgICBQQyA9IGF0dHIu
bWFrZV9jbGFzcygiUEMiLCBbImEiLCAiYiJdLCBzbG90cz1zbG90cywgZnJvemVuPWZyb3plbikK
KyAgICAgICAgYXNzZXJ0ICgKKyAgICAgICAgICAgIEF0dHJpYnV0ZShuYW1lPSJhIiwgZGVmYXVs
dD1OT1RISU5HLCB2YWxpZGF0b3I9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICByZXByPVRy
dWUsIGNtcD1UcnVlLCBoYXNoPU5vbmUsIGluaXQ9VHJ1ZSksCisgICAgICAgICAgICBBdHRyaWJ1
dGUobmFtZT0iYiIsIGRlZmF1bHQ9Tk9USElORywgdmFsaWRhdG9yPU5vbmUsCisgICAgICAgICAg
ICAgICAgICAgICAgcmVwcj1UcnVlLCBjbXA9VHJ1ZSwgaGFzaD1Ob25lLCBpbml0PVRydWUpLAor
ICAgICAgICApID09IGF0dHIuZmllbGRzKFBDKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCJjbHMiLCBbU3ViLCBTdWJTbG90c10pCisgICAgZGVmIHRlc3Rfc3ViY2xhc3Npbmdfd2l0
aF9leHRyYV9hdHRycyhzZWxmLCBjbHMpOgorICAgICAgICAiIiIKKyAgICAgICAgU3ViLWNsYXNz
aW5nICh3aGVyZSB0aGUgc3ViY2xhc3MgaGFzIGV4dHJhIGF0dHJzKSBkb2VzIHdoYXQgeW91J2Qg
aG9wZQorICAgICAgICBmb3IuCisgICAgICAgICIiIgorICAgICAgICBvYmogPSBvYmplY3QoKQor
ICAgICAgICBpID0gY2xzKHg9b2JqLCB5PTIpCisgICAgICAgIGFzc2VydCBpLnggaXMgaS5tZXRo
KCkgaXMgb2JqCisgICAgICAgIGFzc2VydCBpLnkgPT0gMgorICAgICAgICBpZiBjbHMgaXMgU3Vi
OgorICAgICAgICAgICAgYXNzZXJ0ICJTdWIoeD17b2JqfSwgeT0yKSIuZm9ybWF0KG9iaj1vYmop
ID09IHJlcHIoaSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCAiU3ViU2xvdHMo
eD17b2JqfSwgeT0yKSIuZm9ybWF0KG9iaj1vYmopID09IHJlcHIoaSkKKworICAgIEBweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgiYmFzZSIsIFtTdXBlciwgU3VwZXJTbG90c10pCisgICAgZGVmIHRl
c3Rfc3ViY2xhc3Nfd2l0aG91dF9leHRyYV9hdHRycyhzZWxmLCBiYXNlKToKKyAgICAgICAgIiIi
CisgICAgICAgIFN1Yi1jbGFzc2luZyAod2hlcmUgdGhlIHN1YmNsYXNzIGRvZXMgbm90IGhhdmUg
ZXh0cmEgYXR0cnMpIHN0aWxsCisgICAgICAgIGJlaGF2ZXMgdGhlIHNhbWUgYXMgYSBzdWJjbGFz
cyB3aXRoIGV4dHJhIGF0dHJzLgorICAgICAgICAiIiIKKyAgICAgICAgY2xhc3MgU3ViMihiYXNl
KToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBvYmogPSBvYmplY3QoKQorICAgICAgICBp
ID0gU3ViMih4PW9iaikKKyAgICAgICAgYXNzZXJ0IGkueCBpcyBpLm1ldGgoKSBpcyBvYmoKKyAg
ICAgICAgYXNzZXJ0ICJTdWIyKHg9e29ian0pIi5mb3JtYXQob2JqPW9iaikgPT0gcmVwcihpKQor
CisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJmcm96ZW5fY2xhc3MiLCBbCisgICAgICAg
IEZyb3plbiwgICMgaGFzIHNsb3RzPVRydWUKKyAgICAgICAgYXR0ci5tYWtlX2NsYXNzKCJGcm96
ZW5Ub28iLCBbIngiXSwgc2xvdHM9RmFsc2UsIGZyb3plbj1UcnVlKSwKKyAgICBdKQorICAgIGRl
ZiB0ZXN0X2Zyb3plbl9pbnN0YW5jZShzZWxmLCBmcm96ZW5fY2xhc3MpOgorICAgICAgICAiIiIK
KyAgICAgICAgRnJvemVuIGluc3RhbmNlcyBjYW4ndCBiZSBtb2RpZmllZCAoZWFzaWx5KS4KKyAg
ICAgICAgIiIiCisgICAgICAgIGZyb3plbiA9IGZyb3plbl9jbGFzcygxKQorCisgICAgICAgIHdp
dGggcHl0ZXN0LnJhaXNlcyhGcm96ZW5JbnN0YW5jZUVycm9yKSBhcyBlOgorICAgICAgICAgICAg
ZnJvemVuLnggPSAyCisKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKEZyb3plbkluc3RhbmNl
RXJyb3IpIGFzIGU6CisgICAgICAgICAgICBkZWwgZnJvemVuLngKKworICAgICAgICBhc3NlcnQg
ZS52YWx1ZS5hcmdzWzBdID09ICJjYW4ndCBzZXQgYXR0cmlidXRlIgorICAgICAgICBhc3NlcnQg
MSA9PSBmcm96ZW4ueAorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJjbHMiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbQzEsIEMxU2xvdHMsIEMyLCBDMlNsb3RzLCBTdXBl
ciwgU3VwZXJTbG90cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN1YiwgU3ViU2xv
dHMsIEZyb3plbiwgRnJvemVuTm9TbG90cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEZyb21NYWtlQ2xhc3NdKQorICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgicHJvdG9jb2wi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZSgyLCBwaWNrbGUuSElHSEVTVF9Q
Uk9UT0NPTCArIDEpKQorICAgIGRlZiB0ZXN0X3BpY2tsZV9hdHRyaWJ1dGVzKHNlbGYsIGNscywg
cHJvdG9jb2wpOgorICAgICAgICAiIiIKKyAgICAgICAgUGlja2xpbmcvdW4tcGlja2xpbmcgb2Yg
QXR0cmlidXRlIGluc3RhbmNlcyB3b3Jrcy4KKyAgICAgICAgIiIiCisgICAgICAgIGZvciBhdHRy
aWJ1dGUgaW4gYXR0ci5maWVsZHMoY2xzKToKKyAgICAgICAgICAgIGFzc2VydCBhdHRyaWJ1dGUg
PT0gcGlja2xlLmxvYWRzKHBpY2tsZS5kdW1wcyhhdHRyaWJ1dGUsIHByb3RvY29sKSkKKworICAg
IEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiY2xzIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW0MxLCBDMVNsb3RzLCBDMiwgQzJTbG90cywgU3VwZXIsIFN1cGVyU2xvdHMsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBTdWIsIFN1YlNsb3RzLCBGcm96ZW4sIEZyb3plbk5v
U2xvdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGcm9tTWFrZUNsYXNzXSkKKyAg
ICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInByb3RvY29sIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmFuZ2UoMiwgcGlja2xlLkhJR0hFU1RfUFJPVE9DT0wgKyAxKSkKKyAgICBk
ZWYgdGVzdF9waWNrbGVfb2JqZWN0KHNlbGYsIGNscywgcHJvdG9jb2wpOgorICAgICAgICAiIiIK
KyAgICAgICAgUGlja2xlIG9iamVjdCBzZXJpYWxpemF0aW9uIHdvcmtzIG9uIGFsbCBraW5kcyBv
ZiBhdHRycyBjbGFzc2VzLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgbGVuKGF0dHIuZmllbGRz
KGNscykpID09IDI6CisgICAgICAgICAgICBvYmogPSBjbHMoMTIzLCA0NTYpCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICBvYmogPSBjbHMoMTIzKQorICAgICAgICBhc3NlcnQgcmVwcihvYmop
ID09IHJlcHIocGlja2xlLmxvYWRzKHBpY2tsZS5kdW1wcyhvYmosIHByb3RvY29sKSkpCisKKyAg
ICBkZWYgdGVzdF9zdWJjbGFzc2luZ19mcm96ZW5fZ2l2ZXNfZnJvemVuKHNlbGYpOgorICAgICAg
ICAiIiIKKyAgICAgICAgVGhlIGZyb3plbi1uZXNzIG9mIGNsYXNzZXMgaXMgaW5oZXJpdGVkLiAg
U3ViY2xhc3NlcyBvZiBmcm96ZW4gY2xhc3NlcworICAgICAgICBhcmUgYWxzbyBmcm96ZW4gYW5k
IGNhbiBiZSBpbnN0YW50aWF0ZWQuCisgICAgICAgICIiIgorICAgICAgICBpID0gU3ViRnJvemVu
KCJmb28iLCAiYmFyIikKKworICAgICAgICBhc3NlcnQgaS54ID09ICJmb28iCisgICAgICAgIGFz
c2VydCBpLnkgPT0gImJhciIKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiY2xzIiwg
W1dpdGhNZXRhLCBXaXRoTWV0YVNsb3RzXSkKKyAgICBkZWYgdGVzdF9tZXRhY2xhc3NfcHJlc2Vy
dmVkKHNlbGYsIGNscyk6CisgICAgICAgICIiIgorICAgICAgICBNZXRhY2xhc3MgZGF0YSBpcyBw
cmVzZXJ2ZWQuCisgICAgICAgICIiIgorICAgICAgICBhc3NlcnQgTWV0YSA9PSB0eXBlKGNscykK
KworICAgIGRlZiB0ZXN0X2RlZmF1bHRfZGVjb3JhdG9yKHNlbGYpOgorICAgICAgICAiIiIKKyAg
ICAgICAgRGVmYXVsdCBkZWNvcmF0b3Igc2V0cyB0aGUgZGVmYXVsdCBhbmQgdGhlIHJlc3BlY3Rp
dmUgbWV0aG9kIGdldHMKKyAgICAgICAgY2FsbGVkLgorICAgICAgICAiIiIKKyAgICAgICAgQGF0
dHIucworICAgICAgICBjbGFzcyBDKG9iamVjdCk6CisgICAgICAgICAgICB4ID0gYXR0ci5pYihk
ZWZhdWx0PTEpCisgICAgICAgICAgICB5ID0gYXR0ci5pYigpCisKKyAgICAgICAgICAgIEB5LmRl
ZmF1bHQKKyAgICAgICAgICAgIGRlZiBjb21wdXRlKHNlbGYpOgorICAgICAgICAgICAgICAgIHJl
dHVybiBzZWxmLnggKyAxCisKKyAgICAgICAgYXNzZXJ0IEMoMSwgMikgPT0gQygpCisKKyAgICBA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInNsb3RzIiwgW1RydWUsIEZhbHNlXSkKKyAgICBAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoImZyb3plbiIsIFtUcnVlLCBGYWxzZV0pCisgICAgZGVmIHRl
c3RfYXR0cmliX292ZXJ3cml0ZShzZWxmLCBzbG90cywgZnJvemVuKToKKyAgICAgICAgIiIiCisg
ICAgICAgIFN1YmNsYXNzZXMgY2FuIG92ZXJ3cml0ZSBhdHRyaWJ1dGVzIG9mIHRoZWlyIHN1cGVy
Y2xhc3MuCisgICAgICAgICIiIgorICAgICAgICBAYXR0ci5zKHNsb3RzPXNsb3RzLCBmcm96ZW49
ZnJvemVuKQorICAgICAgICBjbGFzcyBTdWJPdmVyd3JpdGUoU3VwZXIpOgorICAgICAgICAgICAg
eCA9IGF0dHIuaWIoZGVmYXVsdD1hdHRyLkZhY3RvcnkobGlzdCkpCisKKyAgICAgICAgYXNzZXJ0
IFN1Yk92ZXJ3cml0ZShbXSkgPT0gU3ViT3ZlcndyaXRlKCkKKworICAgIGRlZiB0ZXN0X2RpY3Rf
cGF0Y2hfY2xhc3Moc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBkaWN0LWNsYXNzZXMgYXJl
IG5ldmVyIHJlcGxhY2VkLgorICAgICAgICAiIiIKKyAgICAgICAgY2xhc3MgQyhvYmplY3QpOgor
ICAgICAgICAgICAgeCA9IGF0dHIuaWIoKQorCisgICAgICAgIENfbmV3ID0gYXR0ci5zKEMpCisK
KyAgICAgICAgYXNzZXJ0IENfbmV3IGlzIEMKKworICAgIGRlZiB0ZXN0X2hhc2hfYnlfaWQoc2Vs
Zik6CisgICAgICAgICIiIgorICAgICAgICBXaXRoIGRpY3QgY2xhc3NlcywgaGFzaGluZyBieSBJ
RCBpcyBhY3RpdmUgZm9yIGhhc2g9RmFsc2UgZXZlbiBvbgorICAgICAgICBQeXRob24gMy4gIFRo
aXMgaXMgaW5jb3JyZWN0IGJlaGF2aW9yIGJ1dCB3ZSBoYXZlIHRvIHJldGFpbiBpdCBmb3IKKyAg
ICAgICAgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KKyAgICAgICAgIiIiCisgICAgICAgIEBhdHRy
LnMoaGFzaD1GYWxzZSkKKyAgICAgICAgY2xhc3MgSGFzaEJ5SURCYWNrd2FyZENvbXBhdChvYmpl
Y3QpOgorICAgICAgICAgICAgeCA9IGF0dHIuaWIoKQorCisgICAgICAgIGFzc2VydCAoCisgICAg
ICAgICAgICBoYXNoKEhhc2hCeUlEQmFja3dhcmRDb21wYXQoMSkpICE9IGhhc2goSGFzaEJ5SURC
YWNrd2FyZENvbXBhdCgxKSkKKyAgICAgICAgKQorCisgICAgICAgIEBhdHRyLnMoaGFzaD1GYWxz
ZSwgY21wPUZhbHNlKQorICAgICAgICBjbGFzcyBIYXNoQnlJRChvYmplY3QpOgorICAgICAgICAg
ICAgeCA9IGF0dHIuaWIoKQorCisgICAgICAgIGFzc2VydCBoYXNoKEhhc2hCeUlEKDEpKSAhPSBo
YXNoKEhhc2hCeUlEKDEpKQorCisgICAgICAgIEBhdHRyLnMoaGFzaD1UcnVlKQorICAgICAgICBj
bGFzcyBIYXNoQnlWYWx1ZXMob2JqZWN0KToKKyAgICAgICAgICAgIHggPSBhdHRyLmliKCkKKwor
ICAgICAgICBhc3NlcnQgaGFzaChIYXNoQnlWYWx1ZXMoMSkpID09IGhhc2goSGFzaEJ5VmFsdWVz
KDEpKQorCisgICAgZGVmIHRlc3RfaGFuZGxlc19kaWZmZXJlbnRfZGVmYXVsdHMoc2VsZik6Cisg
ICAgICAgICIiIgorICAgICAgICBVbmhhc2hhYmxlIGRlZmF1bHRzICsgc3ViY2xhc3NpbmcgdmFs
dWVzIHdvcmsuCisgICAgICAgICIiIgorICAgICAgICBAYXR0ci5zCisgICAgICAgIGNsYXNzIFVu
aGFzaGFibGUob2JqZWN0KToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBAYXR0ci5zCisg
ICAgICAgIGNsYXNzIEMob2JqZWN0KToKKyAgICAgICAgICAgIHggPSBhdHRyLmliKGRlZmF1bHQ9
VW5oYXNoYWJsZSgpKQorCisgICAgICAgIEBhdHRyLnMKKyAgICAgICAgY2xhc3MgRChDKToKKyAg
ICAgICAgICAgIHBhc3MKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgic2xvdHMiLCBb
VHJ1ZSwgRmFsc2VdKQorICAgIGRlZiB0ZXN0X2hhc2hfZmFsc2VfY21wX2ZhbHNlKHNlbGYsIHNs
b3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIGhhc2g9RmFsc2UgYW5kIGNtcD1GYWxzZSBtYWtl
IGEgY2xhc3MgaGFzaGFibGUgYnkgSUQuCisgICAgICAgICIiIgorICAgICAgICBAYXR0ci5zKGhh
c2g9RmFsc2UsIGNtcD1GYWxzZSwgc2xvdHM9c2xvdHMpCisgICAgICAgIGNsYXNzIEMob2JqZWN0
KToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBhc3NlcnQgaGFzaChDKCkpICE9IGhhc2go
QygpKQorCisgICAgZGVmIHRlc3Rfb3ZlcndyaXRlX3N1cGVyKHNlbGYpOgorICAgICAgICAiIiIK
KyAgICAgICAgU3VwZXIgY2xhc3NlcyBjYW4gb3ZlcndyaXRlIGVhY2ggb3RoZXIgYW5kIHRoZSBh
dHRyaWJ1dGVzIGFyZSBhZGRlZAorICAgICAgICBpbiB0aGUgb3JkZXIgdGhleSBhcmUgZGVmaW5l
ZC4KKyAgICAgICAgIiIiCisgICAgICAgIEBhdHRyLnMKKyAgICAgICAgY2xhc3MgQyhvYmplY3Qp
OgorICAgICAgICAgICAgYyA9IGF0dHIuaWIoZGVmYXVsdD0xMDApCisgICAgICAgICAgICB4ID0g
YXR0ci5pYihkZWZhdWx0PTEpCisgICAgICAgICAgICBiID0gYXR0ci5pYihkZWZhdWx0PTIzKQor
CisgICAgICAgIEBhdHRyLnMKKyAgICAgICAgY2xhc3MgRChDKToKKyAgICAgICAgICAgIGEgPSBh
dHRyLmliKGRlZmF1bHQ9NDIpCisgICAgICAgICAgICB4ID0gYXR0ci5pYihkZWZhdWx0PTIpCisg
ICAgICAgICAgICBkID0gYXR0ci5pYihkZWZhdWx0PTMuMTQpCisKKyAgICAgICAgQGF0dHIucwor
ICAgICAgICBjbGFzcyBFKEQpOgorICAgICAgICAgICAgeSA9IGF0dHIuaWIoZGVmYXVsdD0zKQor
ICAgICAgICAgICAgeiA9IGF0dHIuaWIoZGVmYXVsdD00KQorCisgICAgICAgIGFzc2VydCAiRShj
PTEwMCwgYj0yMywgYT00MiwgeD0yLCBkPTMuMTQsIHk9Mywgej00KSIgPT0gcmVwcihFKCkpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3RfZHVuZGVycy5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMv
dGVzdHMvdGVzdF9kdW5kZXJzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1MWZhYmEyZmZjNGZmNGY5MjA3ZmE0
NDFkZTdmZDRiZWJhMjIyMGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rl
c3RfZHVuZGVycy5weQpAQCAtMCwwICsxLDUwMiBAQAorIiIiCitUZXN0cyBmb3IgZHVuZGVyIG1l
dGhvZHMgZnJvbSBgYXR0cmliLl9tYWtlYC4KKyIiIgorCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0
IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCisKK2ltcG9ydCBjb3B5
CisKK2ltcG9ydCBweXRlc3QKKworZnJvbSBoeXBvdGhlc2lzIGltcG9ydCBnaXZlbgorZnJvbSBo
eXBvdGhlc2lzLnN0cmF0ZWdpZXMgaW1wb3J0IGJvb2xlYW5zCisKK2ltcG9ydCBhdHRyCisKK2Zy
b20gYXR0ci5fbWFrZSBpbXBvcnQgKAorICAgIE5PVEhJTkcsIEZhY3RvcnksIF9hZGRfaW5pdCwg
X2FkZF9yZXByLCBfTm90aGluZywgZmllbGRzLCBtYWtlX2NsYXNzCispCitmcm9tIGF0dHIudmFs
aWRhdG9ycyBpbXBvcnQgaW5zdGFuY2Vfb2YKKworZnJvbSAudXRpbHMgaW1wb3J0IHNpbXBsZV9h
dHRyLCBzaW1wbGVfY2xhc3MKKworCitDbXBDID0gc2ltcGxlX2NsYXNzKGNtcD1UcnVlKQorQ21w
Q1Nsb3RzID0gc2ltcGxlX2NsYXNzKGNtcD1UcnVlLCBzbG90cz1UcnVlKQorUmVwckMgPSBzaW1w
bGVfY2xhc3MocmVwcj1UcnVlKQorUmVwckNTbG90cyA9IHNpbXBsZV9jbGFzcyhyZXByPVRydWUs
IHNsb3RzPVRydWUpCisKKyMgSGFzaEMgaXMgaGFzaGFibGUgYnkgZXhwbGljaXQgZGVmaW5pdGlv
biB3aGlsZSBIYXNoQ1Nsb3RzIGlzIGhhc2hhYmxlCisjIGltcGxpY2l0bHkuCitIYXNoQyA9IHNp
bXBsZV9jbGFzcyhoYXNoPVRydWUpCitIYXNoQ1Nsb3RzID0gc2ltcGxlX2NsYXNzKGhhc2g9Tm9u
ZSwgY21wPVRydWUsIGZyb3plbj1UcnVlLCBzbG90cz1UcnVlKQorCisKK2NsYXNzIEluaXRDKG9i
amVjdCk6CisgICAgX19hdHRyc19hdHRyc19fID0gW3NpbXBsZV9hdHRyKCJhIiksIHNpbXBsZV9h
dHRyKCJiIildCisKKworSW5pdEMgPSBfYWRkX2luaXQoSW5pdEMsIEZhbHNlKQorCisKK2NsYXNz
IFRlc3RBZGRDbXAob2JqZWN0KToKKyAgICAiIiIKKyAgICBUZXN0cyBmb3IgYF9hZGRfY21wYC4K
KyAgICAiIiIKKyAgICBAZ2l2ZW4oYm9vbGVhbnMoKSkKKyAgICBkZWYgdGVzdF9jbXAoc2VsZiwg
c2xvdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgSWYgYGNtcGAgaXMgRmFsc2UsIGlnbm9yZSB0
aGF0IGF0dHJpYnV0ZS4KKyAgICAgICAgIiIiCisgICAgICAgIEMgPSBtYWtlX2NsYXNzKCJDIiwg
eworICAgICAgICAgICAgImEiOiBhdHRyLmliKGNtcD1GYWxzZSksCisgICAgICAgICAgICAiYiI6
IGF0dHIuaWIoKQorICAgICAgICB9LCBzbG90cz1zbG90cykKKworICAgICAgICBhc3NlcnQgQygx
LCAyKSA9PSBDKDIsIDIpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImNscyIsIFtD
bXBDLCBDbXBDU2xvdHNdKQorICAgIGRlZiB0ZXN0X2VxdWFsKHNlbGYsIGNscyk6CisgICAgICAg
ICIiIgorICAgICAgICBFcXVhbCBvYmplY3RzIGFyZSBkZXRlY3RlZCBhcyBlcXVhbC4KKyAgICAg
ICAgIiIiCisgICAgICAgIGFzc2VydCBjbHMoMSwgMikgPT0gY2xzKDEsIDIpCisgICAgICAgIGFz
c2VydCBub3QgKGNscygxLCAyKSAhPSBjbHMoMSwgMikpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoImNscyIsIFtDbXBDLCBDbXBDU2xvdHNdKQorICAgIGRlZiB0ZXN0X3VuZXF1YWxf
c2FtZV9jbGFzcyhzZWxmLCBjbHMpOgorICAgICAgICAiIiIKKyAgICAgICAgVW5lcXVhbCBvYmpl
Y3RzIG9mIGNvcnJlY3QgdHlwZSBhcmUgZGV0ZWN0ZWQgYXMgdW5lcXVhbC4KKyAgICAgICAgIiIi
CisgICAgICAgIGFzc2VydCBjbHMoMSwgMikgIT0gY2xzKDIsIDEpCisgICAgICAgIGFzc2VydCBu
b3QgKGNscygxLCAyKSA9PSBjbHMoMiwgMSkpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoImNscyIsIFtDbXBDLCBDbXBDU2xvdHNdKQorICAgIGRlZiB0ZXN0X3VuZXF1YWxfZGlmZmVy
ZW50X2NsYXNzKHNlbGYsIGNscyk6CisgICAgICAgICIiIgorICAgICAgICBVbmVxdWFsIG9iamVj
dHMgb2YgZGlmZmVyZW50IHR5cGUgYXJlIGRldGVjdGVkIGV2ZW4gaWYgdGhlaXIgYXR0cmlidXRl
cworICAgICAgICBtYXRjaC4KKyAgICAgICAgIiIiCisgICAgICAgIGNsYXNzIE5vdENtcEMob2Jq
ZWN0KToKKyAgICAgICAgICAgIGEgPSAxCisgICAgICAgICAgICBiID0gMgorICAgICAgICBhc3Nl
cnQgY2xzKDEsIDIpICE9IE5vdENtcEMoKQorICAgICAgICBhc3NlcnQgbm90IChjbHMoMSwgMikg
PT0gTm90Q21wQygpKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJjbHMiLCBbQ21w
QywgQ21wQ1Nsb3RzXSkKKyAgICBkZWYgdGVzdF9sdChzZWxmLCBjbHMpOgorICAgICAgICAiIiIK
KyAgICAgICAgX19sdF9fIGNvbXBhcmVzIG9iamVjdHMgYXMgdHVwbGVzIG9mIGF0dHJpYnV0ZSB2
YWx1ZXMuCisgICAgICAgICIiIgorICAgICAgICBmb3IgYSwgYiBpbiBbCisgICAgICAgICAgICAo
KDEsIDIpLCAgKDIsIDEpKSwKKyAgICAgICAgICAgICgoMSwgMiksICAoMSwgMykpLAorICAgICAg
ICAgICAgKCgiYSIsICJiIiksICgiYiIsICJhIikpLAorICAgICAgICBdOgorICAgICAgICAgICAg
YXNzZXJ0IGNscygqYSkgPCBjbHMoKmIpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
ImNscyIsIFtDbXBDLCBDbXBDU2xvdHNdKQorICAgIGRlZiB0ZXN0X2x0X3Vub3JkYWJsZShzZWxm
LCBjbHMpOgorICAgICAgICAiIiIKKyAgICAgICAgX19sdF9fIHJldHVybnMgTm90SW1wbGVtZW50
ZWQgaWYgY2xhc3NlcyBkaWZmZXIuCisgICAgICAgICIiIgorICAgICAgICBhc3NlcnQgTm90SW1w
bGVtZW50ZWQgPT0gKGNscygxLCAyKS5fX2x0X18oNDIpKQorCisgICAgQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCJjbHMiLCBbQ21wQywgQ21wQ1Nsb3RzXSkKKyAgICBkZWYgdGVzdF9sZShzZWxm
LCBjbHMpOgorICAgICAgICAiIiIKKyAgICAgICAgX19sZV9fIGNvbXBhcmVzIG9iamVjdHMgYXMg
dHVwbGVzIG9mIGF0dHJpYnV0ZSB2YWx1ZXMuCisgICAgICAgICIiIgorICAgICAgICBmb3IgYSwg
YiBpbiBbCisgICAgICAgICAgICAoKDEsIDIpLCAgKDIsIDEpKSwKKyAgICAgICAgICAgICgoMSwg
MiksICAoMSwgMykpLAorICAgICAgICAgICAgKCgxLCAxKSwgICgxLCAxKSksCisgICAgICAgICAg
ICAoKCJhIiwgImIiKSwgKCJiIiwgImEiKSksCisgICAgICAgICAgICAoKCJhIiwgImIiKSwgKCJh
IiwgImIiKSksCisgICAgICAgIF06CisgICAgICAgICAgICBhc3NlcnQgY2xzKCphKSA8PSBjbHMo
KmIpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImNscyIsIFtDbXBDLCBDbXBDU2xv
dHNdKQorICAgIGRlZiB0ZXN0X2xlX3Vub3JkYWJsZShzZWxmLCBjbHMpOgorICAgICAgICAiIiIK
KyAgICAgICAgX19sZV9fIHJldHVybnMgTm90SW1wbGVtZW50ZWQgaWYgY2xhc3NlcyBkaWZmZXIu
CisgICAgICAgICIiIgorICAgICAgICBhc3NlcnQgTm90SW1wbGVtZW50ZWQgPT0gKGNscygxLCAy
KS5fX2xlX18oNDIpKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJjbHMiLCBbQ21w
QywgQ21wQ1Nsb3RzXSkKKyAgICBkZWYgdGVzdF9ndChzZWxmLCBjbHMpOgorICAgICAgICAiIiIK
KyAgICAgICAgX19ndF9fIGNvbXBhcmVzIG9iamVjdHMgYXMgdHVwbGVzIG9mIGF0dHJpYnV0ZSB2
YWx1ZXMuCisgICAgICAgICIiIgorICAgICAgICBmb3IgYSwgYiBpbiBbCisgICAgICAgICAgICAo
KDIsIDEpLCAoMSwgMikpLAorICAgICAgICAgICAgKCgxLCAzKSwgKDEsIDIpKSwKKyAgICAgICAg
ICAgICgoImIiLCAiYSIpLCAoImEiLCAiYiIpKSwKKyAgICAgICAgXToKKyAgICAgICAgICAgIGFz
c2VydCBjbHMoKmEpID4gY2xzKCpiKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJj
bHMiLCBbQ21wQywgQ21wQ1Nsb3RzXSkKKyAgICBkZWYgdGVzdF9ndF91bm9yZGFibGUoc2VsZiwg
Y2xzKToKKyAgICAgICAgIiIiCisgICAgICAgIF9fZ3RfXyByZXR1cm5zIE5vdEltcGxlbWVudGVk
IGlmIGNsYXNzZXMgZGlmZmVyLgorICAgICAgICAiIiIKKyAgICAgICAgYXNzZXJ0IE5vdEltcGxl
bWVudGVkID09IChjbHMoMSwgMikuX19ndF9fKDQyKSkKKworICAgIEBweXRlc3QubWFyay5wYXJh
bWV0cml6ZSgiY2xzIiwgW0NtcEMsIENtcENTbG90c10pCisgICAgZGVmIHRlc3RfZ2Uoc2VsZiwg
Y2xzKToKKyAgICAgICAgIiIiCisgICAgICAgIF9fZ2VfXyBjb21wYXJlcyBvYmplY3RzIGFzIHR1
cGxlcyBvZiBhdHRyaWJ1dGUgdmFsdWVzLgorICAgICAgICAiIiIKKyAgICAgICAgZm9yIGEsIGIg
aW4gWworICAgICAgICAgICAgKCgyLCAxKSwgKDEsIDIpKSwKKyAgICAgICAgICAgICgoMSwgMyks
ICgxLCAyKSksCisgICAgICAgICAgICAoKDEsIDEpLCAoMSwgMSkpLAorICAgICAgICAgICAgKCgi
YiIsICJhIiksICgiYSIsICJiIikpLAorICAgICAgICAgICAgKCgiYSIsICJiIiksICgiYSIsICJi
IikpLAorICAgICAgICBdOgorICAgICAgICAgICAgYXNzZXJ0IGNscygqYSkgPj0gY2xzKCpiKQor
CisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJjbHMiLCBbQ21wQywgQ21wQ1Nsb3RzXSkK
KyAgICBkZWYgdGVzdF9nZV91bm9yZGFibGUoc2VsZiwgY2xzKToKKyAgICAgICAgIiIiCisgICAg
ICAgIF9fZ2VfXyByZXR1cm5zIE5vdEltcGxlbWVudGVkIGlmIGNsYXNzZXMgZGlmZmVyLgorICAg
ICAgICAiIiIKKyAgICAgICAgYXNzZXJ0IE5vdEltcGxlbWVudGVkID09IChjbHMoMSwgMikuX19n
ZV9fKDQyKSkKKworCitjbGFzcyBUZXN0QWRkUmVwcihvYmplY3QpOgorICAgICIiIgorICAgIFRl
c3RzIGZvciBgX2FkZF9yZXByYC4KKyAgICAiIiIKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoInNsb3RzIiwgW1RydWUsIEZhbHNlXSkKKyAgICBkZWYgdGVzdF9yZXByKHNlbGYsIHNsb3Rz
KToKKyAgICAgICAgIiIiCisgICAgICAgIElmIGByZXByYCBpcyBGYWxzZSwgaWdub3JlIHRoYXQg
YXR0cmlidXRlLgorICAgICAgICAiIiIKKyAgICAgICAgQyA9IG1ha2VfY2xhc3MoIkMiLCB7Cisg
ICAgICAgICAgICAiYSI6IGF0dHIuaWIocmVwcj1GYWxzZSksCisgICAgICAgICAgICAiYiI6IGF0
dHIuaWIoKQorICAgICAgICB9LCBzbG90cz1zbG90cykKKworICAgICAgICBhc3NlcnQgIkMoYj0y
KSIgPT0gcmVwcihDKDEsIDIpKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJjbHMi
LCBbUmVwckMsIFJlcHJDU2xvdHNdKQorICAgIGRlZiB0ZXN0X3JlcHJfd29ya3Moc2VsZiwgY2xz
KToKKyAgICAgICAgIiIiCisgICAgICAgIHJlcHIgcmV0dXJucyBhIHNlbnNpYmxlIHZhbHVlLgor
ICAgICAgICAiIiIKKyAgICAgICAgYXNzZXJ0ICJDKGE9MSwgYj0yKSIgPT0gcmVwcihjbHMoMSwg
MikpCisKKyAgICBkZWYgdGVzdF91bmRlcnNjb3JlcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAg
ICAgIHJlcHIgZG9lcyBub3Qgc3RyaXAgdW5kZXJzY29yZXMuCisgICAgICAgICIiIgorICAgICAg
ICBjbGFzcyBDKG9iamVjdCk6CisgICAgICAgICAgICBfX2F0dHJzX2F0dHJzX18gPSBbc2ltcGxl
X2F0dHIoIl94IildCisKKyAgICAgICAgQyA9IF9hZGRfcmVwcihDKQorICAgICAgICBpID0gQygp
CisgICAgICAgIGkuX3ggPSA0MgorCisgICAgICAgIGFzc2VydCAiQyhfeD00MikiID09IHJlcHIo
aSkKKworICAgIEBnaXZlbihhZGRfc3RyPWJvb2xlYW5zKCksIHNsb3RzPWJvb2xlYW5zKCkpCisg
ICAgZGVmIHRlc3Rfc3RyKHNlbGYsIGFkZF9zdHIsIHNsb3RzKToKKyAgICAgICAgIiIiCisgICAg
ICAgIElmIHN0ciBpcyBUcnVlLCBpdCByZXR1cm5zIHRoZSBzYW1lIGFzIHJlcHIuCisKKyAgICAg
ICAgVGhpcyBvbmx5IG1ha2VzIHNlbnNlIHdoZW4gc3ViY2xhc3NpbmcgYSBjbGFzcyB3aXRoIGFu
IHBvb3IgX19zdHJfXworICAgICAgICAobGlrZSBFeGNlcHRpb25zKS4KKyAgICAgICAgIiIiCisg
ICAgICAgIEBhdHRyLnMoc3RyPWFkZF9zdHIsIHNsb3RzPXNsb3RzKQorICAgICAgICBjbGFzcyBF
cnJvcihFeGNlcHRpb24pOgorICAgICAgICAgICAgeCA9IGF0dHIuaWIoKQorCisgICAgICAgIGUg
PSBFcnJvcig0MikKKworICAgICAgICBhc3NlcnQgKHN0cihlKSA9PSByZXByKGUpKSBpcyBhZGRf
c3RyCisKKyAgICBkZWYgdGVzdF9zdHJfbm9fcmVwcihzZWxmKToKKyAgICAgICAgIiIiCisgICAg
ICAgIFJhaXNlcyBhIFZhbHVlRXJyb3IgaWYgcmVwcj1GYWxzZSBhbmQgc3RyPVRydWUuCisgICAg
ICAgICIiIgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcikgYXMgZToKKyAg
ICAgICAgICAgIHNpbXBsZV9jbGFzcyhyZXByPUZhbHNlLCBzdHI9VHJ1ZSkKKworICAgICAgICBh
c3NlcnQgKAorICAgICAgICAgICAgIl9fc3RyX18gY2FuIG9ubHkgYmUgZ2VuZXJhdGVkIGlmIGEg
X19yZXByX18gZXhpc3RzLiIKKyAgICAgICAgKSA9PSBlLnZhbHVlLmFyZ3NbMF0KKworCitjbGFz
cyBUZXN0QWRkSGFzaChvYmplY3QpOgorICAgICIiIgorICAgIFRlc3RzIGZvciBgX2FkZF9oYXNo
YC4KKyAgICAiIiIKKyAgICBkZWYgdGVzdF9lbmZvcmNlc190eXBlKHNlbGYpOgorICAgICAgICAi
IiIKKyAgICAgICAgVGhlIGBoYXNoYCBhcmd1bWVudCB0byBib3RoIGF0dHJzIGFuZCBhdHRyaWIg
bXVzdCBiZSBOb25lLCBUcnVlLCBvcgorICAgICAgICBGYWxzZS4KKyAgICAgICAgIiIiCisgICAg
ICAgIGV4Y19hcmdzID0gKCJJbnZhbGlkIHZhbHVlIGZvciBoYXNoLiAgTXVzdCBiZSBUcnVlLCBG
YWxzZSwgb3IgTm9uZS4iLCkKKworICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9y
KSBhcyBlOgorICAgICAgICAgICAgbWFrZV9jbGFzcygiQyIsIHt9LCBoYXNoPTEpLAorCisgICAg
ICAgIGFzc2VydCBleGNfYXJncyA9PSBlLnZhbHVlLmFyZ3MKKworICAgICAgICB3aXRoIHB5dGVz
dC5yYWlzZXMoVHlwZUVycm9yKSBhcyBlOgorICAgICAgICAgICAgbWFrZV9jbGFzcygiQyIsIHsi
YSI6IGF0dHIuaWIoaGFzaD0xKX0pLAorCisgICAgICAgIGFzc2VydCBleGNfYXJncyA9PSBlLnZh
bHVlLmFyZ3MKKworICAgIEBnaXZlbihib29sZWFucygpKQorICAgIGRlZiB0ZXN0X2hhc2hfYXR0
cmlidXRlKHNlbGYsIHNsb3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIElmIGBoYXNoYCBpcyBG
YWxzZSBvbiBhbiBhdHRyaWJ1dGUsIGlnbm9yZSB0aGF0IGF0dHJpYnV0ZS4KKyAgICAgICAgIiIi
CisgICAgICAgIEMgPSBtYWtlX2NsYXNzKCJDIiwgeyJhIjogYXR0ci5pYihoYXNoPUZhbHNlKSwg
ImIiOiBhdHRyLmliKCl9LAorICAgICAgICAgICAgICAgICAgICAgICBzbG90cz1zbG90cywgaGFz
aD1UcnVlKQorCisgICAgICAgIGFzc2VydCBoYXNoKEMoMSwgMikpID09IGhhc2goQygyLCAyKSkK
KworICAgIEBnaXZlbihib29sZWFucygpKQorICAgIGRlZiB0ZXN0X2hhc2hfYXR0cmlidXRlX21p
cnJvcnNfY21wKHNlbGYsIGNtcCk6CisgICAgICAgICIiIgorICAgICAgICBJZiBgaGFzaGAgaXMg
Tm9uZSwgdGhlIGhhc2ggZ2VuZXJhdGlvbiBtaXJyb3JzIGBjbXBgLgorICAgICAgICAiIiIKKyAg
ICAgICAgQyA9IG1ha2VfY2xhc3MoIkMiLCB7ImEiOiBhdHRyLmliKGNtcD1jbXApfSwgY21wPVRy
dWUsIGZyb3plbj1UcnVlKQorCisgICAgICAgIGlmIGNtcDoKKyAgICAgICAgICAgIGFzc2VydCBD
KDEpICE9IEMoMikKKyAgICAgICAgICAgIGFzc2VydCBoYXNoKEMoMSkpICE9IGhhc2goQygyKSkK
KyAgICAgICAgICAgIGFzc2VydCBoYXNoKEMoMSkpID09IGhhc2goQygxKSkKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIGFzc2VydCBDKDEpID09IEMoMikKKyAgICAgICAgICAgIGFzc2VydCBo
YXNoKEMoMSkpID09IGhhc2goQygyKSkKKworICAgIEBnaXZlbihib29sZWFucygpKQorICAgIGRl
ZiB0ZXN0X2hhc2hfbWlycm9yc19jbXAoc2VsZiwgY21wKToKKyAgICAgICAgIiIiCisgICAgICAg
IElmIGBoYXNoYCBpcyBOb25lLCB0aGUgaGFzaCBnZW5lcmF0aW9uIG1pcnJvcnMgYGNtcGAuCisg
ICAgICAgICIiIgorICAgICAgICBDID0gbWFrZV9jbGFzcygiQyIsIHsiYSI6IGF0dHIuaWIoKX0s
IGNtcD1jbXAsIGZyb3plbj1UcnVlKQorCisgICAgICAgIGkgPSBDKDEpCisKKyAgICAgICAgYXNz
ZXJ0IGkgPT0gaQorICAgICAgICBhc3NlcnQgaGFzaChpKSA9PSBoYXNoKGkpCisKKyAgICAgICAg
aWYgY21wOgorICAgICAgICAgICAgYXNzZXJ0IEMoMSkgPT0gQygxKQorICAgICAgICAgICAgYXNz
ZXJ0IGhhc2goQygxKSkgPT0gaGFzaChDKDEpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
YXNzZXJ0IEMoMSkgIT0gQygxKQorICAgICAgICAgICAgYXNzZXJ0IGhhc2goQygxKSkgIT0gaGFz
aChDKDEpKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJjbHMiLCBbSGFzaEMsIEhh
c2hDU2xvdHNdKQorICAgIGRlZiB0ZXN0X2hhc2hfd29ya3Moc2VsZiwgY2xzKToKKyAgICAgICAg
IiIiCisgICAgICAgIF9faGFzaF9fIHJldHVybnMgZGlmZmVyZW50IGhhc2hlcyBmb3IgZGlmZmVy
ZW50IHZhbHVlcy4KKyAgICAgICAgIiIiCisgICAgICAgIGFzc2VydCBoYXNoKGNscygxLCAyKSkg
IT0gaGFzaChjbHMoMSwgMSkpCisKKyAgICBkZWYgdGVzdF9oYXNoX2RlZmF1bHQoc2VsZik6Cisg
ICAgICAgICIiIgorICAgICAgICBDbGFzc2VzIGFyZSBub3QgaGFzaGFibGUgYnkgZGVmYXVsdC4K
KyAgICAgICAgIiIiCisgICAgICAgIEMgPSBtYWtlX2NsYXNzKCJDIiwge30pCisKKyAgICAgICAg
d2l0aCBweXRlc3QucmFpc2VzKFR5cGVFcnJvcikgYXMgZToKKyAgICAgICAgICAgIGhhc2goQygp
KQorCisgICAgICAgIGFzc2VydCBlLnZhbHVlLmFyZ3NbMF0gaW4gKAorICAgICAgICAgICAgIidD
JyBvYmplY3RzIGFyZSB1bmhhc2hhYmxlIiwgICMgUHlQeQorICAgICAgICAgICAgInVuaGFzaGFi
bGUgdHlwZTogJ0MnIiwgICMgQ1B5dGhvbgorICAgICAgICApCisKKworY2xhc3MgVGVzdEFkZElu
aXQob2JqZWN0KToKKyAgICAiIiIKKyAgICBUZXN0cyBmb3IgYF9hZGRfaW5pdGAuCisgICAgIiIi
CisgICAgQGdpdmVuKGJvb2xlYW5zKCksIGJvb2xlYW5zKCkpCisgICAgZGVmIHRlc3RfaW5pdChz
ZWxmLCBzbG90cywgZnJvemVuKToKKyAgICAgICAgIiIiCisgICAgICAgIElmIGBpbml0YCBpcyBG
YWxzZSwgaWdub3JlIHRoYXQgYXR0cmlidXRlLgorICAgICAgICAiIiIKKyAgICAgICAgQyA9IG1h
a2VfY2xhc3MoIkMiLCB7ImEiOiBhdHRyLmliKGluaXQ9RmFsc2UpLCAiYiI6IGF0dHIuaWIoKX0s
CisgICAgICAgICAgICAgICAgICAgICAgIHNsb3RzPXNsb3RzLCBmcm96ZW49ZnJvemVuKQorICAg
ICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yKSBhcyBlOgorICAgICAgICAgICAgQyhh
PTEsIGI9MikKKworICAgICAgICBhc3NlcnQgKAorICAgICAgICAgICAgIl9faW5pdF9fKCkgZ290
IGFuIHVuZXhwZWN0ZWQga2V5d29yZCBhcmd1bWVudCAnYSciID09CisgICAgICAgICAgICBlLnZh
bHVlLmFyZ3NbMF0KKyAgICAgICAgKQorCisgICAgQGdpdmVuKGJvb2xlYW5zKCksIGJvb2xlYW5z
KCkpCisgICAgZGVmIHRlc3Rfbm9faW5pdF9kZWZhdWx0KHNlbGYsIHNsb3RzLCBmcm96ZW4pOgor
ICAgICAgICAiIiIKKyAgICAgICAgSWYgYGluaXRgIGlzIEZhbHNlIGJ1dCBhIEZhY3RvcnkgaXMg
c3BlY2lmaWVkLCBkb24ndCBhbGxvdyBwYXNzaW5nIHRoYXQKKyAgICAgICAgYXJndW1lbnQgYnV0
IGluaXRpYWxpemUgaXQgYW55d2F5LgorICAgICAgICAiIiIKKyAgICAgICAgQyA9IG1ha2VfY2xh
c3MoIkMiLCB7CisgICAgICAgICAgICAiX2EiOiBhdHRyLmliKGluaXQ9RmFsc2UsIGRlZmF1bHQ9
NDIpLAorICAgICAgICAgICAgIl9iIjogYXR0ci5pYihpbml0PUZhbHNlLCBkZWZhdWx0PUZhY3Rv
cnkobGlzdCkpLAorICAgICAgICAgICAgImMiOiBhdHRyLmliKCkKKyAgICAgICAgfSwgc2xvdHM9
c2xvdHMsIGZyb3plbj1mcm96ZW4pCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUeXBlRXJy
b3IpOgorICAgICAgICAgICAgQyhhPTEsIGM9MikKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2Vz
KFR5cGVFcnJvcik6CisgICAgICAgICAgICBDKGI9MSwgYz0yKQorCisgICAgICAgIGkgPSBDKDIz
KQorICAgICAgICBhc3NlcnQgKDQyLCBbXSwgMjMpID09IChpLl9hLCBpLl9iLCBpLmMpCisKKyAg
ICBAZ2l2ZW4oYm9vbGVhbnMoKSwgYm9vbGVhbnMoKSkKKyAgICBkZWYgdGVzdF9ub19pbml0X29y
ZGVyKHNlbGYsIHNsb3RzLCBmcm96ZW4pOgorICAgICAgICAiIiIKKyAgICAgICAgSWYgYW4gYXR0
cmlidXRlIGlzIGBpbml0PUZhbHNlYCwgaXQncyBsZWdhbCB0byBjb21lIGFmdGVyIGEgbWFuZGF0
b3J5CisgICAgICAgIGF0dHJpYnV0ZS4KKyAgICAgICAgIiIiCisgICAgICAgIG1ha2VfY2xhc3Mo
IkMiLCB7CisgICAgICAgICAgICAiYSI6IGF0dHIuaWIoZGVmYXVsdD1GYWN0b3J5KGxpc3QpKSwK
KyAgICAgICAgICAgICJiIjogYXR0ci5pYihpbml0PUZhbHNlKSwKKyAgICAgICAgfSwgc2xvdHM9
c2xvdHMsIGZyb3plbj1mcm96ZW4pCisKKyAgICBkZWYgdGVzdF9zZXRzX2F0dHJpYnV0ZXMoc2Vs
Zik6CisgICAgICAgICIiIgorICAgICAgICBUaGUgYXR0cmlidXRlcyBhcmUgaW5pdGlhbGl6ZWQg
dXNpbmcgdGhlIHBhc3NlZCBrZXl3b3Jkcy4KKyAgICAgICAgIiIiCisgICAgICAgIG9iaiA9IElu
aXRDKGE9MSwgYj0yKQorICAgICAgICBhc3NlcnQgMSA9PSBvYmouYQorICAgICAgICBhc3NlcnQg
MiA9PSBvYmouYgorCisgICAgZGVmIHRlc3RfZGVmYXVsdChzZWxmKToKKyAgICAgICAgIiIiCisg
ICAgICAgIElmIGEgZGVmYXVsdCB2YWx1ZSBpcyBwcmVzZW50LCBpdCdzIHVzZWQgYXMgZmFsbGJh
Y2suCisgICAgICAgICIiIgorICAgICAgICBjbGFzcyBDKG9iamVjdCk6CisgICAgICAgICAgICBf
X2F0dHJzX2F0dHJzX18gPSBbCisgICAgICAgICAgICAgICAgc2ltcGxlX2F0dHIobmFtZT0iYSIs
IGRlZmF1bHQ9MiksCisgICAgICAgICAgICAgICAgc2ltcGxlX2F0dHIobmFtZT0iYiIsIGRlZmF1
bHQ9ImhhbGxvIiksCisgICAgICAgICAgICAgICAgc2ltcGxlX2F0dHIobmFtZT0iYyIsIGRlZmF1
bHQ9Tm9uZSksCisgICAgICAgICAgICBdCisKKyAgICAgICAgQyA9IF9hZGRfaW5pdChDLCBGYWxz
ZSkKKyAgICAgICAgaSA9IEMoKQorICAgICAgICBhc3NlcnQgMiA9PSBpLmEKKyAgICAgICAgYXNz
ZXJ0ICJoYWxsbyIgPT0gaS5iCisgICAgICAgIGFzc2VydCBOb25lIGlzIGkuYworCisgICAgZGVm
IHRlc3RfZmFjdG9yeShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIElmIGEgZGVmYXVsdCBm
YWN0b3J5IGlzIHByZXNlbnQsIGl0J3MgdXNlZCBhcyBmYWxsYmFjay4KKyAgICAgICAgIiIiCisg
ICAgICAgIGNsYXNzIEQob2JqZWN0KToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBjbGFz
cyBDKG9iamVjdCk6CisgICAgICAgICAgICBfX2F0dHJzX2F0dHJzX18gPSBbCisgICAgICAgICAg
ICAgICAgc2ltcGxlX2F0dHIobmFtZT0iYSIsIGRlZmF1bHQ9RmFjdG9yeShsaXN0KSksCisgICAg
ICAgICAgICAgICAgc2ltcGxlX2F0dHIobmFtZT0iYiIsIGRlZmF1bHQ9RmFjdG9yeShEKSksCisg
ICAgICAgICAgICBdCisgICAgICAgIEMgPSBfYWRkX2luaXQoQywgRmFsc2UpCisgICAgICAgIGkg
PSBDKCkKKworICAgICAgICBhc3NlcnQgW10gPT0gaS5hCisgICAgICAgIGFzc2VydCBpc2luc3Rh
bmNlKGkuYiwgRCkKKworICAgIGRlZiB0ZXN0X3ZhbGlkYXRvcihzZWxmKToKKyAgICAgICAgIiIi
CisgICAgICAgIElmIGEgdmFsaWRhdG9yIGlzIHBhc3NlZCwgY2FsbCBpdCB3aXRoIHRoZSBwcmVs
aW1pbmFyeSBpbnN0YW5jZSwgdGhlCisgICAgICAgIEF0dHJpYnV0ZSwgYW5kIHRoZSBhcmd1bWVu
dC4KKyAgICAgICAgIiIiCisgICAgICAgIGNsYXNzIFZFeGNlcHRpb24oRXhjZXB0aW9uKToKKyAg
ICAgICAgICAgIHBhc3MKKworICAgICAgICBkZWYgcmFpc2VyKCphcmdzKToKKyAgICAgICAgICAg
IHJhaXNlIFZFeGNlcHRpb24oKmFyZ3MpCisKKyAgICAgICAgQyA9IG1ha2VfY2xhc3MoIkMiLCB7
ImEiOiBhdHRyLmliKCJhIiwgdmFsaWRhdG9yPXJhaXNlcil9KQorICAgICAgICB3aXRoIHB5dGVz
dC5yYWlzZXMoVkV4Y2VwdGlvbikgYXMgZToKKyAgICAgICAgICAgIEMoNDIpCisKKyAgICAgICAg
YXNzZXJ0IChmaWVsZHMoQykuYSwgNDIsKSA9PSBlLnZhbHVlLmFyZ3NbMTpdCisgICAgICAgIGFz
c2VydCBpc2luc3RhbmNlKGUudmFsdWUuYXJnc1swXSwgQykKKworICAgIGRlZiB0ZXN0X3ZhbGlk
YXRvcl9zbG90cyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIElmIGEgdmFsaWRhdG9yIGlz
IHBhc3NlZCwgY2FsbCBpdCB3aXRoIHRoZSBwcmVsaW1pbmFyeSBpbnN0YW5jZSwgdGhlCisgICAg
ICAgIEF0dHJpYnV0ZSwgYW5kIHRoZSBhcmd1bWVudC4KKyAgICAgICAgIiIiCisgICAgICAgIGNs
YXNzIFZFeGNlcHRpb24oRXhjZXB0aW9uKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBk
ZWYgcmFpc2VyKCphcmdzKToKKyAgICAgICAgICAgIHJhaXNlIFZFeGNlcHRpb24oKmFyZ3MpCisK
KyAgICAgICAgQyA9IG1ha2VfY2xhc3MoIkMiLCB7ImEiOiBhdHRyLmliKCJhIiwgdmFsaWRhdG9y
PXJhaXNlcil9LCBzbG90cz1UcnVlKQorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVkV4Y2Vw
dGlvbikgYXMgZToKKyAgICAgICAgICAgIEMoNDIpCisKKyAgICAgICAgYXNzZXJ0IChmaWVsZHMo
QylbMF0sIDQyLCkgPT0gZS52YWx1ZS5hcmdzWzE6XQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5j
ZShlLnZhbHVlLmFyZ3NbMF0sIEMpCisKKyAgICBAZ2l2ZW4oYm9vbGVhbnMoKSkKKyAgICBkZWYg
dGVzdF92YWxpZGF0b3Jfb3RoZXJzKHNlbGYsIHNsb3RzKToKKyAgICAgICAgIiIiCisgICAgICAg
IERvZXMgbm90IGludGVyZmVyZSB3aGVuIHNldHRpbmcgbm9uLWF0dHJzIGF0dHJpYnV0ZXMuCisg
ICAgICAgICIiIgorICAgICAgICBDID0gbWFrZV9jbGFzcygiQyIsIHsKKyAgICAgICAgICAgICJh
IjogYXR0ci5pYigiYSIsIHZhbGlkYXRvcj1pbnN0YW5jZV9vZihpbnQpKQorICAgICAgICB9LCBz
bG90cz1zbG90cykKKyAgICAgICAgaSA9IEMoMSkKKworICAgICAgICBhc3NlcnQgMSA9PSBpLmEK
KworICAgICAgICBpZiBub3Qgc2xvdHM6CisgICAgICAgICAgICBpLmIgPSAiZm9vIgorICAgICAg
ICAgICAgYXNzZXJ0ICJmb28iID09IGkuYgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgd2l0
aCBweXRlc3QucmFpc2VzKEF0dHJpYnV0ZUVycm9yKToKKyAgICAgICAgICAgICAgICBpLmIgPSAi
Zm9vIgorCisgICAgZGVmIHRlc3RfdW5kZXJzY29yZXMoc2VsZik6CisgICAgICAgICIiIgorICAg
ICAgICBUaGUgYXJndW1lbnQgbmFtZXMgaW4gYF9faW5pdF9fYCBhcmUgd2l0aG91dCBsZWFkaW5n
IGFuZCB0cmFpbGluZworICAgICAgICB1bmRlcnNjb3Jlcy4KKyAgICAgICAgIiIiCisgICAgICAg
IGNsYXNzIEMob2JqZWN0KToKKyAgICAgICAgICAgIF9fYXR0cnNfYXR0cnNfXyA9IFtzaW1wbGVf
YXR0cigiX3ByaXZhdGUiKV0KKworICAgICAgICBDID0gX2FkZF9pbml0KEMsIEZhbHNlKQorICAg
ICAgICBpID0gQyhwcml2YXRlPTQyKQorICAgICAgICBhc3NlcnQgNDIgPT0gaS5fcHJpdmF0ZQor
CisKK2NsYXNzIFRlc3ROb3RoaW5nKG9iamVjdCk6CisgICAgIiIiCisgICAgVGVzdHMgZm9yIGBf
Tm90aGluZ2AuCisgICAgIiIiCisgICAgZGVmIHRlc3RfY29weShzZWxmKToKKyAgICAgICAgIiIi
CisgICAgICAgIF9fY29weV9fIHJldHVybnMgdGhlIHNhbWUgb2JqZWN0LgorICAgICAgICAiIiIK
KyAgICAgICAgbiA9IF9Ob3RoaW5nKCkKKyAgICAgICAgYXNzZXJ0IG4gaXMgY29weS5jb3B5KG4p
CisKKyAgICBkZWYgdGVzdF9kZWVwY29weShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIF9f
ZGVlcGNvcHlfXyByZXR1cm5zIHRoZSBzYW1lIG9iamVjdC4KKyAgICAgICAgIiIiCisgICAgICAg
IG4gPSBfTm90aGluZygpCisgICAgICAgIGFzc2VydCBuIGlzIGNvcHkuZGVlcGNvcHkobikKKwor
ICAgIGRlZiB0ZXN0X2VxKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgQWxsIGluc3RhbmNl
cyBhcmUgZXF1YWwuCisgICAgICAgICIiIgorICAgICAgICBhc3NlcnQgX05vdGhpbmcoKSA9PSBf
Tm90aGluZygpID09IE5PVEhJTkcKKyAgICAgICAgYXNzZXJ0IG5vdCAoX05vdGhpbmcoKSAhPSBf
Tm90aGluZygpKQorICAgICAgICBhc3NlcnQgMSAhPSBfTm90aGluZygpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2F0dHJzL3Rlc3RzL3Rlc3RfZmlsdGVycy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVzdHMvdGVzdF9m
aWx0ZXJzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmN2RkNjk0OTI1MjQ5Mzk3OTdmOGY2ZWYyZTU3NDhmMDM2
MDI5YWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3RfZmlsdGVycy5w
eQpAQCAtMCwwICsxLDk0IEBACisiIiIKK1Rlc3RzIGZvciBgYXR0ci5maWx0ZXJzYC4KKyIiIgor
Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50
X2Z1bmN0aW9uCisKK2ltcG9ydCBweXRlc3QKKworaW1wb3J0IGF0dHIKKworZnJvbSBhdHRyIGlt
cG9ydCBmaWVsZHMKK2Zyb20gYXR0ci5maWx0ZXJzIGltcG9ydCBfc3BsaXRfd2hhdCwgZXhjbHVk
ZSwgaW5jbHVkZQorCisKK0BhdHRyLnMKK2NsYXNzIEMob2JqZWN0KToKKyAgICBhID0gYXR0ci5p
YigpCisgICAgYiA9IGF0dHIuaWIoKQorCisKK2NsYXNzIFRlc3RTcGxpdFdoYXQob2JqZWN0KToK
KyAgICAiIiIKKyAgICBUZXN0cyBmb3IgYF9zcGxpdF93aGF0YC4KKyAgICAiIiIKKyAgICBkZWYg
dGVzdF9zcGxpdHMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBTcGxpdHMgY29ycmVjdGx5
LgorICAgICAgICAiIiIKKyAgICAgICAgYXNzZXJ0ICgKKyAgICAgICAgICAgIGZyb3plbnNldCgo
aW50LCBzdHIpKSwKKyAgICAgICAgICAgIGZyb3plbnNldCgoZmllbGRzKEMpLmEsKSksCisgICAg
ICAgICkgPT0gX3NwbGl0X3doYXQoKHN0ciwgZmllbGRzKEMpLmEsIGludCwpKQorCisKK2NsYXNz
IFRlc3RJbmNsdWRlKG9iamVjdCk6CisgICAgIiIiCisgICAgVGVzdHMgZm9yIGBpbmNsdWRlYC4K
KyAgICAiIiIKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImluY2wsdmFsdWUiLCBbCisg
ICAgICAgICgoaW50LCksIDQyKSwKKyAgICAgICAgKChzdHIsKSwgImhlbGxvIiksCisgICAgICAg
ICgoc3RyLCBmaWVsZHMoQykuYSksIDQyKSwKKyAgICAgICAgKChzdHIsIGZpZWxkcyhDKS5iKSwg
ImhlbGxvIiksCisgICAgXSkKKyAgICBkZWYgdGVzdF9hbGxvdyhzZWxmLCBpbmNsLCB2YWx1ZSk6
CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4gVHJ1ZSBpZiBhIGNsYXNzIG9yIGF0dHJpYnV0
ZSBpcyB3aGl0ZWxpc3RlZC4KKyAgICAgICAgIiIiCisgICAgICAgIGkgPSBpbmNsdWRlKCppbmNs
KQorICAgICAgICBhc3NlcnQgaShmaWVsZHMoQykuYSwgdmFsdWUpIGlzIFRydWUKKworICAgIEBw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSgiaW5jbCx2YWx1ZSIsIFsKKyAgICAgICAgKChzdHIsKSwg
NDIpLAorICAgICAgICAoKGludCwpLCAiaGVsbG8iKSwKKyAgICAgICAgKChzdHIsIGZpZWxkcyhD
KS5iKSwgNDIpLAorICAgICAgICAoKGludCwgZmllbGRzKEMpLmIpLCAiaGVsbG8iKSwKKyAgICBd
KQorICAgIGRlZiB0ZXN0X2Ryb3BfY2xhc3Moc2VsZiwgaW5jbCwgdmFsdWUpOgorICAgICAgICAi
IiIKKyAgICAgICAgUmV0dXJuIEZhbHNlIG9uIG5vbi13aGl0ZWxpc3RlZCBjbGFzc2VzIGFuZCBh
dHRyaWJ1dGVzLgorICAgICAgICAiIiIKKyAgICAgICAgaSA9IGluY2x1ZGUoKmluY2wpCisgICAg
ICAgIGFzc2VydCBpKGZpZWxkcyhDKS5hLCB2YWx1ZSkgaXMgRmFsc2UKKworCitjbGFzcyBUZXN0
RXhjbHVkZShvYmplY3QpOgorICAgICIiIgorICAgIFRlc3RzIGZvciBgZXhjbHVkZWAuCisgICAg
IiIiCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJleGNsLHZhbHVlIiwgWworICAgICAg
ICAoKHN0ciwpLCA0MiksCisgICAgICAgICgoaW50LCksICJoZWxsbyIpLAorICAgICAgICAoKHN0
ciwgZmllbGRzKEMpLmIpLCA0MiksCisgICAgICAgICgoaW50LCBmaWVsZHMoQykuYiksICJoZWxs
byIpLAorICAgIF0pCisgICAgZGVmIHRlc3RfYWxsb3coc2VsZiwgZXhjbCwgdmFsdWUpOgorICAg
ICAgICAiIiIKKyAgICAgICAgUmV0dXJuIFRydWUgaWYgY2xhc3Mgb3IgYXR0cmlidXRlIGlzIG5v
dCBibGFja2xpc3RlZC4KKyAgICAgICAgIiIiCisgICAgICAgIGUgPSBleGNsdWRlKCpleGNsKQor
ICAgICAgICBhc3NlcnQgZShmaWVsZHMoQykuYSwgdmFsdWUpIGlzIFRydWUKKworICAgIEBweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgiZXhjbCx2YWx1ZSIsIFsKKyAgICAgICAgKChpbnQsKSwgNDIp
LAorICAgICAgICAoKHN0ciwpLCAiaGVsbG8iKSwKKyAgICAgICAgKChzdHIsIGZpZWxkcyhDKS5h
KSwgNDIpLAorICAgICAgICAoKHN0ciwgZmllbGRzKEMpLmIpLCAiaGVsbG8iKSwKKyAgICBdKQor
ICAgIGRlZiB0ZXN0X2Ryb3BfY2xhc3Moc2VsZiwgZXhjbCwgdmFsdWUpOgorICAgICAgICAiIiIK
KyAgICAgICAgUmV0dXJuIFRydWUgb24gbm9uLWJsYWNrbGlzdGVkIGNsYXNzZXMgYW5kIGF0dHJp
YnV0ZXMuCisgICAgICAgICIiIgorICAgICAgICBlID0gZXhjbHVkZSgqZXhjbCkKKyAgICAgICAg
YXNzZXJ0IGUoZmllbGRzKEMpLmEsIHZhbHVlKSBpcyBGYWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
dHRycy90ZXN0cy90ZXN0X2Z1bmNzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0X2Z1bmNzLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjAxNjc4MjM4MThlZWZlZmU1OTBhN2EwMjFhNTkyNzE0ODQzMmUyYjgKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3RfZnVuY3MucHkKQEAgLTAsMCAr
MSw1MjcgQEAKKyIiIgorVGVzdHMgZm9yIGBhdHRyLl9mdW5jc2AuCisiIiIKKworZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgor
Citmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBNYXBwaW5nLCBPcmRlcmVkRGljdCwgU2VxdWVuY2UK
KworaW1wb3J0IHB5dGVzdAorCitmcm9tIGh5cG90aGVzaXMgaW1wb3J0IHN0cmF0ZWdpZXMgYXMg
c3QKK2Zyb20gaHlwb3RoZXNpcyBpbXBvcnQgSGVhbHRoQ2hlY2ssIGFzc3VtZSwgZ2l2ZW4sIHNl
dHRpbmdzCisKK2ltcG9ydCBhdHRyCisKK2Zyb20gYXR0ciBpbXBvcnQgYXNkaWN0LCBhc3NvYywg
YXN0dXBsZSwgZXZvbHZlLCBmaWVsZHMsIGhhcworZnJvbSBhdHRyLl9jb21wYXQgaW1wb3J0IFRZ
UEUKK2Zyb20gYXR0ci5leGNlcHRpb25zIGltcG9ydCBBdHRyc0F0dHJpYnV0ZU5vdEZvdW5kRXJy
b3IKK2Zyb20gYXR0ci52YWxpZGF0b3JzIGltcG9ydCBpbnN0YW5jZV9vZgorCitmcm9tIC51dGls
cyBpbXBvcnQgbmVzdGVkX2NsYXNzZXMsIHNpbXBsZV9jbGFzc2VzCisKKworTUFQUElOR19UWVBF
UyA9IChkaWN0LCBPcmRlcmVkRGljdCkKK1NFUVVFTkNFX1RZUEVTID0gKGxpc3QsIHR1cGxlKQor
CisKK2NsYXNzIFRlc3RBc0RpY3Qob2JqZWN0KToKKyAgICAiIiIKKyAgICBUZXN0cyBmb3IgYGFz
ZGljdGAuCisgICAgIiIiCisgICAgQGdpdmVuKHN0LnNhbXBsZWRfZnJvbShNQVBQSU5HX1RZUEVT
KSkKKyAgICBkZWYgdGVzdF9zaGFsbG93KHNlbGYsIEMsIGRpY3RfZmFjdG9yeSk6CisgICAgICAg
ICIiIgorICAgICAgICBTaGFsbG93IGFzZGljdCByZXR1cm5zIGNvcnJlY3QgZGljdC4KKyAgICAg
ICAgIiIiCisgICAgICAgIGFzc2VydCB7CisgICAgICAgICAgICAieCI6IDEsCisgICAgICAgICAg
ICAieSI6IDIsCisgICAgICAgIH0gPT0gYXNkaWN0KEMoeD0xLCB5PTIpLCBGYWxzZSwgZGljdF9m
YWN0b3J5PWRpY3RfZmFjdG9yeSkKKworICAgIEBnaXZlbihzdC5zYW1wbGVkX2Zyb20oTUFQUElO
R19UWVBFUykpCisgICAgZGVmIHRlc3RfcmVjdXJzZShzZWxmLCBDLCBkaWN0X2NsYXNzKToKKyAg
ICAgICAgIiIiCisgICAgICAgIERlZXAgYXNkaWN0IHJldHVybnMgY29ycmVjdCBkaWN0LgorICAg
ICAgICAiIiIKKyAgICAgICAgYXNzZXJ0IHsKKyAgICAgICAgICAgICJ4IjogeyJ4IjogMSwgInki
OiAyfSwKKyAgICAgICAgICAgICJ5IjogeyJ4IjogMywgInkiOiA0fSwKKyAgICAgICAgfSA9PSBh
c2RpY3QoQygKKyAgICAgICAgICAgIEMoMSwgMiksCisgICAgICAgICAgICBDKDMsIDQpLAorICAg
ICAgICApLCBkaWN0X2ZhY3Rvcnk9ZGljdF9jbGFzcykKKworICAgIEBnaXZlbihuZXN0ZWRfY2xh
c3Nlcywgc3Quc2FtcGxlZF9mcm9tKE1BUFBJTkdfVFlQRVMpKQorICAgIEBzZXR0aW5ncyhzdXBw
cmVzc19oZWFsdGhfY2hlY2s9W0hlYWx0aENoZWNrLnRvb19zbG93XSkKKyAgICBkZWYgdGVzdF9y
ZWN1cnNlX3Byb3BlcnR5KHNlbGYsIGNscywgZGljdF9jbGFzcyk6CisgICAgICAgICIiIgorICAg
ICAgICBQcm9wZXJ0eSB0ZXN0cyBmb3IgcmVjdXJzaXZlIGFzZGljdC4KKyAgICAgICAgIiIiCisg
ICAgICAgIG9iaiA9IGNscygpCisgICAgICAgIG9ial9kaWN0ID0gYXNkaWN0KG9iaiwgZGljdF9m
YWN0b3J5PWRpY3RfY2xhc3MpCisKKyAgICAgICAgZGVmIGFzc2VydF9wcm9wZXJfZGljdF9jbGFz
cyhvYmosIG9ial9kaWN0KToKKyAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG9ial9kaWN0
LCBkaWN0X2NsYXNzKQorCisgICAgICAgICAgICBmb3IgZmllbGQgaW4gZmllbGRzKG9iai5fX2Ns
YXNzX18pOgorICAgICAgICAgICAgICAgIGZpZWxkX3ZhbCA9IGdldGF0dHIob2JqLCBmaWVsZC5u
YW1lKQorICAgICAgICAgICAgICAgIGlmIGhhcyhmaWVsZF92YWwuX19jbGFzc19fKToKKyAgICAg
ICAgICAgICAgICAgICAgIyBUaGlzIGZpZWxkIGhvbGRzIGEgY2xhc3MsIHJlY3Vyc2UgdGhlIGFz
c2VydGlvbnMuCisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9wcm9wZXJfZGljdF9jbGFzcyhm
aWVsZF92YWwsIG9ial9kaWN0W2ZpZWxkLm5hbWVdKQorICAgICAgICAgICAgICAgIGVsaWYgaXNp
bnN0YW5jZShmaWVsZF92YWwsIFNlcXVlbmNlKToKKyAgICAgICAgICAgICAgICAgICAgZGljdF92
YWwgPSBvYmpfZGljdFtmaWVsZC5uYW1lXQorICAgICAgICAgICAgICAgICAgICBmb3IgaXRlbSwg
aXRlbV9kaWN0IGluIHppcChmaWVsZF92YWwsIGRpY3RfdmFsKToKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIGhhcyhpdGVtLl9fY2xhc3NfXyk6CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X3Byb3Blcl9kaWN0X2NsYXNzKGl0ZW0sIGl0ZW1fZGljdCkKKyAgICAgICAgICAg
ICAgICBlbGlmIGlzaW5zdGFuY2UoZmllbGRfdmFsLCBNYXBwaW5nKToKKyAgICAgICAgICAgICAg
ICAgICAgIyBUaGlzIGZpZWxkIGhvbGRzIGEgZGljdGlvbmFyeS4KKyAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0IGlzaW5zdGFuY2Uob2JqX2RpY3RbZmllbGQubmFtZV0sIGRpY3RfY2xhc3MpCisK
KyAgICAgICAgICAgICAgICAgICAgZm9yIGtleSwgdmFsIGluIGZpZWxkX3ZhbC5pdGVtcygpOgor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgaGFzKHZhbC5fX2NsYXNzX18pOgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFzc2VydF9wcm9wZXJfZGljdF9jbGFzcyh2YWwsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ial9kaWN0W2Zp
ZWxkLm5hbWVdW2tleV0pCisKKyAgICAgICAgYXNzZXJ0X3Byb3Blcl9kaWN0X2NsYXNzKG9iaiwg
b2JqX2RpY3QpCisKKyAgICBAZ2l2ZW4oc3Quc2FtcGxlZF9mcm9tKE1BUFBJTkdfVFlQRVMpKQor
ICAgIGRlZiB0ZXN0X2ZpbHRlcihzZWxmLCBDLCBkaWN0X2ZhY3RvcnkpOgorICAgICAgICAiIiIK
KyAgICAgICAgQXR0cmlidXRlcyB0aGF0IGFyZSBzdXBwb3NlZCB0byBiZSBza2lwcGVkIGFyZSBz
a2lwcGVkLgorICAgICAgICAiIiIKKyAgICAgICAgYXNzZXJ0IHsKKyAgICAgICAgICAgICJ4Ijog
eyJ4IjogMX0sCisgICAgICAgIH0gPT0gYXNkaWN0KEMoCisgICAgICAgICAgICBDKDEsIDIpLAor
ICAgICAgICAgICAgQygzLCA0KSwKKyAgICAgICAgKSwgZmlsdGVyPWxhbWJkYSBhLCB2OiBhLm5h
bWUgIT0gInkiLCBkaWN0X2ZhY3Rvcnk9ZGljdF9mYWN0b3J5KQorCisgICAgQGdpdmVuKGNvbnRh
aW5lcj1zdC5zYW1wbGVkX2Zyb20oU0VRVUVOQ0VfVFlQRVMpKQorICAgIGRlZiB0ZXN0X2xpc3Rz
X3R1cGxlcyhzZWxmLCBjb250YWluZXIsIEMpOgorICAgICAgICAiIiIKKyAgICAgICAgSWYgcmVj
dXJzZSBpcyBUcnVlLCBhbHNvIHJlY3Vyc2UgaW50byBsaXN0cy4KKyAgICAgICAgIiIiCisgICAg
ICAgIGFzc2VydCB7CisgICAgICAgICAgICAieCI6IDEsCisgICAgICAgICAgICAieSI6IFt7Ingi
OiAyLCAieSI6IDN9LCB7IngiOiA0LCAieSI6IDV9LCAiYSJdLAorICAgICAgICB9ID09IGFzZGlj
dChDKDEsIGNvbnRhaW5lcihbQygyLCAzKSwgQyg0LCA1KSwgImEiXSkpKQorCisgICAgQGdpdmVu
KGNvbnRhaW5lcj1zdC5zYW1wbGVkX2Zyb20oU0VRVUVOQ0VfVFlQRVMpKQorICAgIGRlZiB0ZXN0
X2xpc3RzX3R1cGxlc19yZXRhaW5fdHlwZShzZWxmLCBjb250YWluZXIsIEMpOgorICAgICAgICAi
IiIKKyAgICAgICAgSWYgcmVjdXJzZSBhbmQgcmV0YWluX2NvbGxlY3Rpb25fdHlwZXMgYXJlIFRy
dWUsIGFsc28gcmVjdXJzZQorICAgICAgICBpbnRvIGxpc3RzIGFuZCBkbyBub3QgY29udmVydCB0
aGVtIGludG8gbGlzdC4KKyAgICAgICAgIiIiCisgICAgICAgIGFzc2VydCB7CisgICAgICAgICAg
ICAieCI6IDEsCisgICAgICAgICAgICAieSI6IGNvbnRhaW5lcihbeyJ4IjogMiwgInkiOiAzfSwg
eyJ4IjogNCwgInkiOiA1fSwgImEiXSksCisgICAgICAgIH0gPT0gYXNkaWN0KEMoMSwgY29udGFp
bmVyKFtDKDIsIDMpLCBDKDQsIDUpLCAiYSJdKSksCisgICAgICAgICAgICAgICAgICAgIHJldGFp
bl9jb2xsZWN0aW9uX3R5cGVzPVRydWUpCisKKyAgICBAZ2l2ZW4oc3Quc2FtcGxlZF9mcm9tKE1B
UFBJTkdfVFlQRVMpKQorICAgIGRlZiB0ZXN0X2RpY3RzKHNlbGYsIEMsIGRpY3RfZmFjdG9yeSk6
CisgICAgICAgICIiIgorICAgICAgICBJZiByZWN1cnNlIGlzIFRydWUsIGFsc28gcmVjdXJzZSBp
bnRvIGRpY3RzLgorICAgICAgICAiIiIKKyAgICAgICAgcmVzID0gYXNkaWN0KEMoMSwgeyJhIjog
Qyg0LCA1KX0pLCBkaWN0X2ZhY3Rvcnk9ZGljdF9mYWN0b3J5KQorICAgICAgICBhc3NlcnQgewor
ICAgICAgICAgICAgIngiOiAxLAorICAgICAgICAgICAgInkiOiB7ImEiOiB7IngiOiA0LCAieSI6
IDV9fSwKKyAgICAgICAgfSA9PSByZXMKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzLCBk
aWN0X2ZhY3RvcnkpCisKKyAgICBAZ2l2ZW4oc2ltcGxlX2NsYXNzZXMocHJpdmF0ZV9hdHRycz1G
YWxzZSksIHN0LnNhbXBsZWRfZnJvbShNQVBQSU5HX1RZUEVTKSkKKyAgICBkZWYgdGVzdF9yb3Vu
ZHRyaXAoc2VsZiwgY2xzLCBkaWN0X2NsYXNzKToKKyAgICAgICAgIiIiCisgICAgICAgIFRlc3Qg
ZHVtcGluZyB0byBkaWN0cyBhbmQgYmFjayBmb3IgSHlwb3RoZXNpcy1nZW5lcmF0ZWQgY2xhc3Nl
cy4KKworICAgICAgICBQcml2YXRlIGF0dHJpYnV0ZXMgZG9uJ3Qgcm91bmQtdHJpcCAodGhlIGF0
dHJpYnV0ZSBuYW1lIGlzIGRpZmZlcmVudAorICAgICAgICB0aGFuIHRoZSBpbml0aWFsaXplciBh
cmd1bWVudCkuCisgICAgICAgICIiIgorICAgICAgICBpbnN0YW5jZSA9IGNscygpCisgICAgICAg
IGRpY3RfaW5zdGFuY2UgPSBhc2RpY3QoaW5zdGFuY2UsIGRpY3RfZmFjdG9yeT1kaWN0X2NsYXNz
KQorCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGRpY3RfaW5zdGFuY2UsIGRpY3RfY2xhc3Mp
CisKKyAgICAgICAgcm91bmR0cmlwX2luc3RhbmNlID0gY2xzKCoqZGljdF9pbnN0YW5jZSkKKwor
ICAgICAgICBhc3NlcnQgaW5zdGFuY2UgPT0gcm91bmR0cmlwX2luc3RhbmNlCisKKyAgICBAZ2l2
ZW4oc2ltcGxlX2NsYXNzZXMoKSkKKyAgICBkZWYgdGVzdF9hc2RpY3RfcHJlc2VydmVfb3JkZXIo
c2VsZiwgY2xzKToKKyAgICAgICAgIiIiCisgICAgICAgIEZpZWxkIG9yZGVyIHNob3VsZCBiZSBw
cmVzZXJ2ZWQgd2hlbiBkdW1waW5nIHRvIE9yZGVyZWREaWN0cy4KKyAgICAgICAgIiIiCisgICAg
ICAgIGluc3RhbmNlID0gY2xzKCkKKyAgICAgICAgZGljdF9pbnN0YW5jZSA9IGFzZGljdChpbnN0
YW5jZSwgZGljdF9mYWN0b3J5PU9yZGVyZWREaWN0KQorCisgICAgICAgIGFzc2VydCBbYS5uYW1l
IGZvciBhIGluIGZpZWxkcyhjbHMpXSA9PSBsaXN0KGRpY3RfaW5zdGFuY2Uua2V5cygpKQorCisK
K2NsYXNzIFRlc3RBc1R1cGxlKG9iamVjdCk6CisgICAgIiIiCisgICAgVGVzdHMgZm9yIGBhc3R1
cGxlYC4KKyAgICAiIiIKKyAgICBAZ2l2ZW4oc3Quc2FtcGxlZF9mcm9tKFNFUVVFTkNFX1RZUEVT
KSkKKyAgICBkZWYgdGVzdF9zaGFsbG93KHNlbGYsIEMsIHR1cGxlX2ZhY3RvcnkpOgorICAgICAg
ICAiIiIKKyAgICAgICAgU2hhbGxvdyBhc3R1cGxlIHJldHVybnMgY29ycmVjdCBkaWN0LgorICAg
ICAgICAiIiIKKyAgICAgICAgYXNzZXJ0ICh0dXBsZV9mYWN0b3J5KFsxLCAyXSkgPT0KKyAgICAg
ICAgICAgICAgICBhc3R1cGxlKEMoeD0xLCB5PTIpLCBGYWxzZSwgdHVwbGVfZmFjdG9yeT10dXBs
ZV9mYWN0b3J5KSkKKworICAgIEBnaXZlbihzdC5zYW1wbGVkX2Zyb20oU0VRVUVOQ0VfVFlQRVMp
KQorICAgIGRlZiB0ZXN0X3JlY3Vyc2Uoc2VsZiwgQywgdHVwbGVfZmFjdG9yeSk6CisgICAgICAg
ICIiIgorICAgICAgICBEZWVwIGFzdHVwbGUgcmV0dXJucyBjb3JyZWN0IHR1cGxlLgorICAgICAg
ICAiIiIKKyAgICAgICAgYXNzZXJ0ICh0dXBsZV9mYWN0b3J5KFt0dXBsZV9mYWN0b3J5KFsxLCAy
XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0dXBsZV9mYWN0b3J5KFszLCA0XSld
KQorICAgICAgICAgICAgICAgID09IGFzdHVwbGUoQygKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBDKDEsIDIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEMoMywgNCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHR1
cGxlX2ZhY3Rvcnk9dHVwbGVfZmFjdG9yeSkpCisKKyAgICBAZ2l2ZW4obmVzdGVkX2NsYXNzZXMs
IHN0LnNhbXBsZWRfZnJvbShTRVFVRU5DRV9UWVBFUykpCisgICAgQHNldHRpbmdzKHN1cHByZXNz
X2hlYWx0aF9jaGVjaz1bSGVhbHRoQ2hlY2sudG9vX3Nsb3ddKQorICAgIGRlZiB0ZXN0X3JlY3Vy
c2VfcHJvcGVydHkoc2VsZiwgY2xzLCB0dXBsZV9jbGFzcyk6CisgICAgICAgICIiIgorICAgICAg
ICBQcm9wZXJ0eSB0ZXN0cyBmb3IgcmVjdXJzaXZlIGFzdHVwbGUuCisgICAgICAgICIiIgorICAg
ICAgICBvYmogPSBjbHMoKQorICAgICAgICBvYmpfdHVwbGUgPSBhc3R1cGxlKG9iaiwgdHVwbGVf
ZmFjdG9yeT10dXBsZV9jbGFzcykKKworICAgICAgICBkZWYgYXNzZXJ0X3Byb3Blcl90dXBsZV9j
bGFzcyhvYmosIG9ial90dXBsZSk6CisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShvYmpf
dHVwbGUsIHR1cGxlX2NsYXNzKQorICAgICAgICAgICAgZm9yIGluZGV4LCBmaWVsZCBpbiBlbnVt
ZXJhdGUoZmllbGRzKG9iai5fX2NsYXNzX18pKToKKyAgICAgICAgICAgICAgICBmaWVsZF92YWwg
PSBnZXRhdHRyKG9iaiwgZmllbGQubmFtZSkKKyAgICAgICAgICAgICAgICBpZiBoYXMoZmllbGRf
dmFsLl9fY2xhc3NfXyk6CisgICAgICAgICAgICAgICAgICAgICMgVGhpcyBmaWVsZCBob2xkcyBh
IGNsYXNzLCByZWN1cnNlIHRoZSBhc3NlcnRpb25zLgorICAgICAgICAgICAgICAgICAgICBhc3Nl
cnRfcHJvcGVyX3R1cGxlX2NsYXNzKGZpZWxkX3ZhbCwgb2JqX3R1cGxlW2luZGV4XSkKKworICAg
ICAgICBhc3NlcnRfcHJvcGVyX3R1cGxlX2NsYXNzKG9iaiwgb2JqX3R1cGxlKQorCisgICAgQGdp
dmVuKG5lc3RlZF9jbGFzc2VzLCBzdC5zYW1wbGVkX2Zyb20oU0VRVUVOQ0VfVFlQRVMpKQorICAg
IEBzZXR0aW5ncyhzdXBwcmVzc19oZWFsdGhfY2hlY2s9W0hlYWx0aENoZWNrLnRvb19zbG93XSkK
KyAgICBkZWYgdGVzdF9yZWN1cnNlX3JldGFpbihzZWxmLCBjbHMsIHR1cGxlX2NsYXNzKToKKyAg
ICAgICAgIiIiCisgICAgICAgIFByb3BlcnR5IHRlc3RzIGZvciBhc3NlcnRpbmcgY29sbGVjdGlv
biB0eXBlcyBhcmUgcmV0YWluZWQuCisgICAgICAgICIiIgorICAgICAgICBvYmogPSBjbHMoKQor
ICAgICAgICBvYmpfdHVwbGUgPSBhc3R1cGxlKG9iaiwgdHVwbGVfZmFjdG9yeT10dXBsZV9jbGFz
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXRhaW5fY29sbGVjdGlvbl90eXBlcz1U
cnVlKQorCisgICAgICAgIGRlZiBhc3NlcnRfcHJvcGVyX2NvbF9jbGFzcyhvYmosIG9ial90dXBs
ZSk6CisgICAgICAgICAgICAjIEl0ZXJhdGUgb3ZlciBhbGwgYXR0cmlidXRlcywgYW5kIGlmIHRo
ZXkgYXJlIGxpc3RzIG9yIG1hcHBpbmdzCisgICAgICAgICAgICAjIGluIHRoZSBvcmlnaW5hbCwg
YXNzZXJ0IHRoZXkgYXJlIHRoZSBzYW1lIGNsYXNzIGluIHRoZSBkdW1wZWQuCisgICAgICAgICAg
ICBmb3IgaW5kZXgsIGZpZWxkIGluIGVudW1lcmF0ZShmaWVsZHMob2JqLl9fY2xhc3NfXykpOgor
ICAgICAgICAgICAgICAgIGZpZWxkX3ZhbCA9IGdldGF0dHIob2JqLCBmaWVsZC5uYW1lKQorICAg
ICAgICAgICAgICAgIGlmIGhhcyhmaWVsZF92YWwuX19jbGFzc19fKToKKyAgICAgICAgICAgICAg
ICAgICAgIyBUaGlzIGZpZWxkIGhvbGRzIGEgY2xhc3MsIHJlY3Vyc2UgdGhlIGFzc2VydGlvbnMu
CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9wcm9wZXJfY29sX2NsYXNzKGZpZWxkX3ZhbCwg
b2JqX3R1cGxlW2luZGV4XSkKKyAgICAgICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoZmllbGRf
dmFsLCAobGlzdCwgdHVwbGUpKToKKyAgICAgICAgICAgICAgICAgICAgIyBUaGlzIGZpZWxkIGhv
bGRzIGEgc2VxdWVuY2Ugb2Ygc29tZXRoaW5nLgorICAgICAgICAgICAgICAgICAgICBleHBlY3Rl
ZF90eXBlID0gdHlwZShvYmpfdHVwbGVbaW5kZXhdKQorICAgICAgICAgICAgICAgICAgICBhc3Nl
cnQgdHlwZShmaWVsZF92YWwpIGlzIGV4cGVjdGVkX3R5cGUgICMgbm9xYTogRTcyMQorICAgICAg
ICAgICAgICAgICAgICBmb3Igb2JqX2UsIG9ial90dXBsZV9lIGluIHppcChmaWVsZF92YWwsIG9i
al90dXBsZVtpbmRleF0pOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgaGFzKG9ial9lLl9f
Y2xhc3NfXyk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3Byb3Blcl9jb2xf
Y2xhc3Mob2JqX2UsIG9ial90dXBsZV9lKQorICAgICAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5j
ZShmaWVsZF92YWwsIGRpY3QpOgorICAgICAgICAgICAgICAgICAgICBvcmlnID0gZmllbGRfdmFs
CisgICAgICAgICAgICAgICAgICAgIHR1cGxlZCA9IG9ial90dXBsZVtpbmRleF0KKyAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0IHR5cGUob3JpZykgaXMgdHlwZSh0dXBsZWQpICAjIG5vcWE6IEU3
MjEKKyAgICAgICAgICAgICAgICAgICAgZm9yIG9ial9lLCBvYmpfdHVwbGVfZSBpbiB6aXAob3Jp
Zy5pdGVtcygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0dXBsZWQuaXRlbXMoKSk6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBoYXMob2Jq
X2VbMF0uX19jbGFzc19fKTogICMgRGljdCBrZXkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhc3NlcnRfcHJvcGVyX2NvbF9jbGFzcyhvYmpfZVswXSwgb2JqX3R1cGxlX2VbMF0pCisgICAg
ICAgICAgICAgICAgICAgICAgICBpZiBoYXMob2JqX2VbMV0uX19jbGFzc19fKTogICMgRGljdCB2
YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9wcm9wZXJfY29sX2NsYXNz
KG9ial9lWzFdLCBvYmpfdHVwbGVfZVsxXSkKKworICAgICAgICBhc3NlcnRfcHJvcGVyX2NvbF9j
bGFzcyhvYmosIG9ial90dXBsZSkKKworICAgIEBnaXZlbihzdC5zYW1wbGVkX2Zyb20oU0VRVUVO
Q0VfVFlQRVMpKQorICAgIGRlZiB0ZXN0X2ZpbHRlcihzZWxmLCBDLCB0dXBsZV9mYWN0b3J5KToK
KyAgICAgICAgIiIiCisgICAgICAgIEF0dHJpYnV0ZXMgdGhhdCBhcmUgc3VwcG9zZWQgdG8gYmUg
c2tpcHBlZCBhcmUgc2tpcHBlZC4KKyAgICAgICAgIiIiCisgICAgICAgIGFzc2VydCB0dXBsZV9m
YWN0b3J5KFt0dXBsZV9mYWN0b3J5KFsxLCBdKSwgXSkgPT0gYXN0dXBsZShDKAorICAgICAgICAg
ICAgQygxLCAyKSwKKyAgICAgICAgICAgIEMoMywgNCksCisgICAgICAgICksIGZpbHRlcj1sYW1i
ZGEgYSwgdjogYS5uYW1lICE9ICJ5IiwgdHVwbGVfZmFjdG9yeT10dXBsZV9mYWN0b3J5KQorCisg
ICAgQGdpdmVuKGNvbnRhaW5lcj1zdC5zYW1wbGVkX2Zyb20oU0VRVUVOQ0VfVFlQRVMpKQorICAg
IGRlZiB0ZXN0X2xpc3RzX3R1cGxlcyhzZWxmLCBjb250YWluZXIsIEMpOgorICAgICAgICAiIiIK
KyAgICAgICAgSWYgcmVjdXJzZSBpcyBUcnVlLCBhbHNvIHJlY3Vyc2UgaW50byBsaXN0cy4KKyAg
ICAgICAgIiIiCisgICAgICAgIGFzc2VydCAoKDEsIFsoMiwgMyksICg0LCA1KSwgImEiXSkKKyAg
ICAgICAgICAgICAgICA9PSBhc3R1cGxlKEMoMSwgY29udGFpbmVyKFtDKDIsIDMpLCBDKDQsIDUp
LCAiYSJdKSkpCisgICAgICAgICAgICAgICAgKQorCisgICAgQGdpdmVuKHN0LnNhbXBsZWRfZnJv
bShTRVFVRU5DRV9UWVBFUykpCisgICAgZGVmIHRlc3RfZGljdHMoc2VsZiwgQywgdHVwbGVfZmFj
dG9yeSk6CisgICAgICAgICIiIgorICAgICAgICBJZiByZWN1cnNlIGlzIFRydWUsIGFsc28gcmVj
dXJzZSBpbnRvIGRpY3RzLgorICAgICAgICAiIiIKKyAgICAgICAgcmVzID0gYXN0dXBsZShDKDEs
IHsiYSI6IEMoNCwgNSl9KSwgdHVwbGVfZmFjdG9yeT10dXBsZV9mYWN0b3J5KQorICAgICAgICBh
c3NlcnQgdHVwbGVfZmFjdG9yeShbMSwgeyJhIjogdHVwbGVfZmFjdG9yeShbNCwgNV0pfV0pID09
IHJlcworICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXMsIHR1cGxlX2ZhY3RvcnkpCisKKyAg
ICBAZ2l2ZW4oY29udGFpbmVyPXN0LnNhbXBsZWRfZnJvbShTRVFVRU5DRV9UWVBFUykpCisgICAg
ZGVmIHRlc3RfbGlzdHNfdHVwbGVzX3JldGFpbl90eXBlKHNlbGYsIGNvbnRhaW5lciwgQyk6Cisg
ICAgICAgICIiIgorICAgICAgICBJZiByZWN1cnNlIGFuZCByZXRhaW5fY29sbGVjdGlvbl90eXBl
cyBhcmUgVHJ1ZSwgYWxzbyByZWN1cnNlCisgICAgICAgIGludG8gbGlzdHMgYW5kIGRvIG5vdCBj
b252ZXJ0IHRoZW0gaW50byBsaXN0LgorICAgICAgICAiIiIKKyAgICAgICAgYXNzZXJ0ICgKKyAg
ICAgICAgICAgICgxLCBjb250YWluZXIoWygyLCAzKSwgKDQsIDUpLCAiYSJdKSkKKyAgICAgICAg
ICAgID09IGFzdHVwbGUoQygxLCBjb250YWluZXIoW0MoMiwgMyksIEMoNCwgNSksICJhIl0pKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgcmV0YWluX2NvbGxlY3Rpb25fdHlwZXM9VHJ1ZSkpCisK
KyAgICBAZ2l2ZW4oY29udGFpbmVyPXN0LnNhbXBsZWRfZnJvbShNQVBQSU5HX1RZUEVTKSkKKyAg
ICBkZWYgdGVzdF9kaWN0c19yZXRhaW5fdHlwZShzZWxmLCBjb250YWluZXIsIEMpOgorICAgICAg
ICAiIiIKKyAgICAgICAgSWYgcmVjdXJzZSBhbmQgcmV0YWluX2NvbGxlY3Rpb25fdHlwZXMgYXJl
IFRydWUsIGFsc28gcmVjdXJzZQorICAgICAgICBpbnRvIGxpc3RzIGFuZCBkbyBub3QgY29udmVy
dCB0aGVtIGludG8gbGlzdC4KKyAgICAgICAgIiIiCisgICAgICAgIGFzc2VydCAoCisgICAgICAg
ICAgICAoMSwgY29udGFpbmVyKHsiYSI6ICg0LCA1KX0pKQorICAgICAgICAgICAgPT0gYXN0dXBs
ZShDKDEsIGNvbnRhaW5lcih7ImEiOiBDKDQsIDUpfSkpLAorICAgICAgICAgICAgICAgICAgICAg
ICByZXRhaW5fY29sbGVjdGlvbl90eXBlcz1UcnVlKSkKKworICAgIEBnaXZlbihzaW1wbGVfY2xh
c3NlcygpLCBzdC5zYW1wbGVkX2Zyb20oU0VRVUVOQ0VfVFlQRVMpKQorICAgIGRlZiB0ZXN0X3Jv
dW5kdHJpcChzZWxmLCBjbHMsIHR1cGxlX2NsYXNzKToKKyAgICAgICAgIiIiCisgICAgICAgIFRl
c3QgZHVtcGluZyB0byB0dXBsZSBhbmQgYmFjayBmb3IgSHlwb3RoZXNpcy1nZW5lcmF0ZWQgY2xh
c3Nlcy4KKyAgICAgICAgIiIiCisgICAgICAgIGluc3RhbmNlID0gY2xzKCkKKyAgICAgICAgdHVw
bGVfaW5zdGFuY2UgPSBhc3R1cGxlKGluc3RhbmNlLCB0dXBsZV9mYWN0b3J5PXR1cGxlX2NsYXNz
KQorCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHR1cGxlX2luc3RhbmNlLCB0dXBsZV9jbGFz
cykKKworICAgICAgICByb3VuZHRyaXBfaW5zdGFuY2UgPSBjbHMoKnR1cGxlX2luc3RhbmNlKQor
CisgICAgICAgIGFzc2VydCBpbnN0YW5jZSA9PSByb3VuZHRyaXBfaW5zdGFuY2UKKworCitjbGFz
cyBUZXN0SGFzKG9iamVjdCk6CisgICAgIiIiCisgICAgVGVzdHMgZm9yIGBoYXNgLgorICAgICIi
IgorICAgIGRlZiB0ZXN0X3Bvc2l0aXZlKHNlbGYsIEMpOgorICAgICAgICAiIiIKKyAgICAgICAg
UmV0dXJucyBgVHJ1ZWAgb24gZGVjb3JhdGVkIGNsYXNzZXMuCisgICAgICAgICIiIgorICAgICAg
ICBhc3NlcnQgaGFzKEMpCisKKyAgICBkZWYgdGVzdF9wb3NpdGl2ZV9lbXB0eShzZWxmKToKKyAg
ICAgICAgIiIiCisgICAgICAgIFJldHVybnMgYFRydWVgIG9uIGRlY29yYXRlZCBjbGFzc2VzIGV2
ZW4gaWYgdGhlcmUgYXJlIG5vIGF0dHJpYnV0ZXMuCisgICAgICAgICIiIgorICAgICAgICBAYXR0
ci5zCisgICAgICAgIGNsYXNzIEQob2JqZWN0KToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAg
ICBhc3NlcnQgaGFzKEQpCisKKyAgICBkZWYgdGVzdF9uZWdhdGl2ZShzZWxmKToKKyAgICAgICAg
IiIiCisgICAgICAgIFJldHVybnMgYEZhbHNlYCBvbiBub24tZGVjb3JhdGVkIGNsYXNzZXMuCisg
ICAgICAgICIiIgorICAgICAgICBhc3NlcnQgbm90IGhhcyhvYmplY3QpCisKKworY2xhc3MgVGVz
dEFzc29jKG9iamVjdCk6CisgICAgIiIiCisgICAgVGVzdHMgZm9yIGBhc3NvY2AuCisgICAgIiIi
CisgICAgQGdpdmVuKHNsb3RzPXN0LmJvb2xlYW5zKCksIGZyb3plbj1zdC5ib29sZWFucygpKQor
ICAgIGRlZiB0ZXN0X2VtcHR5KHNlbGYsIHNsb3RzLCBmcm96ZW4pOgorICAgICAgICAiIiIKKyAg
ICAgICAgRW1wdHkgY2xhc3NlcyB3aXRob3V0IGNoYW5nZXMgZ2V0IGNvcGllZC4KKyAgICAgICAg
IiIiCisgICAgICAgIEBhdHRyLnMoc2xvdHM9c2xvdHMsIGZyb3plbj1mcm96ZW4pCisgICAgICAg
IGNsYXNzIEMob2JqZWN0KToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBpMSA9IEMoKQor
ICAgICAgICB3aXRoIHB5dGVzdC5kZXByZWNhdGVkX2NhbGwoKToKKyAgICAgICAgICAgIGkyID0g
YXNzb2MoaTEpCisKKyAgICAgICAgYXNzZXJ0IGkxIGlzIG5vdCBpMgorICAgICAgICBhc3NlcnQg
aTEgPT0gaTIKKworICAgIEBnaXZlbihzaW1wbGVfY2xhc3NlcygpKQorICAgIGRlZiB0ZXN0X25v
X2NoYW5nZXMoc2VsZiwgQyk6CisgICAgICAgICIiIgorICAgICAgICBObyBjaGFuZ2VzIG1lYW5z
IGEgdmVyYmF0aW0gY29weS4KKyAgICAgICAgIiIiCisgICAgICAgIGkxID0gQygpCisgICAgICAg
IHdpdGggcHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbCgpOgorICAgICAgICAgICAgaTIgPSBhc3NvYyhp
MSkKKworICAgICAgICBhc3NlcnQgaTEgaXMgbm90IGkyCisgICAgICAgIGFzc2VydCBpMSA9PSBp
MgorCisgICAgQGdpdmVuKHNpbXBsZV9jbGFzc2VzKCksIHN0LmRhdGEoKSkKKyAgICBkZWYgdGVz
dF9jaGFuZ2Uoc2VsZiwgQywgZGF0YSk6CisgICAgICAgICIiIgorICAgICAgICBDaGFuZ2VzIHdv
cmsuCisgICAgICAgICIiIgorICAgICAgICAjIFRha2UgdGhlIGZpcnN0IGF0dHJpYnV0ZSwgYW5k
IGNoYW5nZSBpdC4KKyAgICAgICAgYXNzdW1lKGZpZWxkcyhDKSkgICMgU2tpcCBjbGFzc2VzIHdp
dGggbm8gYXR0cmlidXRlcy4KKyAgICAgICAgZmllbGRfbmFtZXMgPSBbYS5uYW1lIGZvciBhIGlu
IGZpZWxkcyhDKV0KKyAgICAgICAgb3JpZ2luYWwgPSBDKCkKKyAgICAgICAgY2hvc2VuX25hbWVz
ID0gZGF0YS5kcmF3KHN0LnNldHMoc3Quc2FtcGxlZF9mcm9tKGZpZWxkX25hbWVzKSkpCisgICAg
ICAgIGNoYW5nZV9kaWN0ID0ge25hbWU6IGRhdGEuZHJhdyhzdC5pbnRlZ2VycygpKQorICAgICAg
ICAgICAgICAgICAgICAgICBmb3IgbmFtZSBpbiBjaG9zZW5fbmFtZXN9CisKKyAgICAgICAgd2l0
aCBweXRlc3QuZGVwcmVjYXRlZF9jYWxsKCk6CisgICAgICAgICAgICBjaGFuZ2VkID0gYXNzb2Mo
b3JpZ2luYWwsICoqY2hhbmdlX2RpY3QpCisKKyAgICAgICAgZm9yIGssIHYgaW4gY2hhbmdlX2Rp
Y3QuaXRlbXMoKToKKyAgICAgICAgICAgIGFzc2VydCBnZXRhdHRyKGNoYW5nZWQsIGspID09IHYK
KworICAgIEBnaXZlbihzaW1wbGVfY2xhc3NlcygpKQorICAgIGRlZiB0ZXN0X3Vua25vd24oc2Vs
ZiwgQyk6CisgICAgICAgICIiIgorICAgICAgICBXYW50aW5nIHRvIGNoYW5nZSBhbiB1bmtub3du
IGF0dHJpYnV0ZSByYWlzZXMgYW4KKyAgICAgICAgQXR0cnNBdHRyaWJ1dGVOb3RGb3VuZEVycm9y
LgorICAgICAgICAiIiIKKyAgICAgICAgIyBObyBnZW5lcmF0ZWQgY2xhc3Mgd2lsbCBoYXZlIGEg
Zm91ciBsZXR0ZXIgYXR0cmlidXRlLgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoQXR0cnNB
dHRyaWJ1dGVOb3RGb3VuZEVycm9yKSBhcyBlLCBcCisgICAgICAgICAgICAgICAgcHl0ZXN0LmRl
cHJlY2F0ZWRfY2FsbCgpOgorICAgICAgICAgICAgYXNzb2MoQygpLCBhYWFhPTIpCisKKyAgICAg
ICAgYXNzZXJ0ICgKKyAgICAgICAgICAgICJhYWFhIGlzIG5vdCBhbiBhdHRycyBhdHRyaWJ1dGUg
b24ge2NscyFyfS4iLmZvcm1hdChjbHM9QyksCisgICAgICAgICkgPT0gZS52YWx1ZS5hcmdzCisK
KyAgICBkZWYgdGVzdF9mcm96ZW4oc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXb3JrcyBv
biBmcm96ZW4gY2xhc3Nlcy4KKyAgICAgICAgIiIiCisgICAgICAgIEBhdHRyLnMoZnJvemVuPVRy
dWUpCisgICAgICAgIGNsYXNzIEMob2JqZWN0KToKKyAgICAgICAgICAgIHggPSBhdHRyLmliKCkK
KyAgICAgICAgICAgIHkgPSBhdHRyLmliKCkKKworICAgICAgICB3aXRoIHB5dGVzdC5kZXByZWNh
dGVkX2NhbGwoKToKKyAgICAgICAgICAgIGFzc2VydCBDKDMsIDIpID09IGFzc29jKEMoMSwgMiks
IHg9MykKKworICAgIGRlZiB0ZXN0X3dhcm5pbmcoc2VsZik6CisgICAgICAgICIiIgorICAgICAg
ICBEZXByZWNhdGlvbldhcm5pbmcgcG9pbnRzIHRvIHRoZSBjb3JyZWN0IGZpbGUuCisgICAgICAg
ICIiIgorICAgICAgICBAYXR0ci5zCisgICAgICAgIGNsYXNzIEMob2JqZWN0KToKKyAgICAgICAg
ICAgIHggPSBhdHRyLmliKCkKKworICAgICAgICB3aXRoIHB5dGVzdC53YXJucyhEZXByZWNhdGlv
bldhcm5pbmcpIGFzIHdpOgorICAgICAgICAgICAgYXNzZXJ0IEMoMikgPT0gYXNzb2MoQygxKSwg
eD0yKQorCisgICAgICAgIGFzc2VydCBfX2ZpbGVfXyA9PSB3aS5saXN0WzBdLmZpbGVuYW1lCisK
KworY2xhc3MgVGVzdEV2b2x2ZShvYmplY3QpOgorICAgICIiIgorICAgIFRlc3RzIGZvciBgZXZv
bHZlYC4KKyAgICAiIiIKKyAgICBAZ2l2ZW4oc2xvdHM9c3QuYm9vbGVhbnMoKSwgZnJvemVuPXN0
LmJvb2xlYW5zKCkpCisgICAgZGVmIHRlc3RfZW1wdHkoc2VsZiwgc2xvdHMsIGZyb3plbik6Cisg
ICAgICAgICIiIgorICAgICAgICBFbXB0eSBjbGFzc2VzIHdpdGhvdXQgY2hhbmdlcyBnZXQgY29w
aWVkLgorICAgICAgICAiIiIKKyAgICAgICAgQGF0dHIucyhzbG90cz1zbG90cywgZnJvemVuPWZy
b3plbikKKyAgICAgICAgY2xhc3MgQyhvYmplY3QpOgorICAgICAgICAgICAgcGFzcworCisgICAg
ICAgIGkxID0gQygpCisgICAgICAgIGkyID0gZXZvbHZlKGkxKQorCisgICAgICAgIGFzc2VydCBp
MSBpcyBub3QgaTIKKyAgICAgICAgYXNzZXJ0IGkxID09IGkyCisKKyAgICBAZ2l2ZW4oc2ltcGxl
X2NsYXNzZXMoKSkKKyAgICBkZWYgdGVzdF9ub19jaGFuZ2VzKHNlbGYsIEMpOgorICAgICAgICAi
IiIKKyAgICAgICAgTm8gY2hhbmdlcyBtZWFucyBhIHZlcmJhdGltIGNvcHkuCisgICAgICAgICIi
IgorICAgICAgICBpMSA9IEMoKQorICAgICAgICBpMiA9IGV2b2x2ZShpMSkKKworICAgICAgICBh
c3NlcnQgaTEgaXMgbm90IGkyCisgICAgICAgIGFzc2VydCBpMSA9PSBpMgorCisgICAgQGdpdmVu
KHNpbXBsZV9jbGFzc2VzKCksIHN0LmRhdGEoKSkKKyAgICBkZWYgdGVzdF9jaGFuZ2Uoc2VsZiwg
QywgZGF0YSk6CisgICAgICAgICIiIgorICAgICAgICBDaGFuZ2VzIHdvcmsuCisgICAgICAgICIi
IgorICAgICAgICAjIFRha2UgdGhlIGZpcnN0IGF0dHJpYnV0ZSwgYW5kIGNoYW5nZSBpdC4KKyAg
ICAgICAgYXNzdW1lKGZpZWxkcyhDKSkgICMgU2tpcCBjbGFzc2VzIHdpdGggbm8gYXR0cmlidXRl
cy4KKyAgICAgICAgZmllbGRfbmFtZXMgPSBbYS5uYW1lIGZvciBhIGluIGZpZWxkcyhDKV0KKyAg
ICAgICAgb3JpZ2luYWwgPSBDKCkKKyAgICAgICAgY2hvc2VuX25hbWVzID0gZGF0YS5kcmF3KHN0
LnNldHMoc3Quc2FtcGxlZF9mcm9tKGZpZWxkX25hbWVzKSkpCisgICAgICAgICMgV2UgcGF5IHNw
ZWNpYWwgYXR0ZW50aW9uIHRvIHByaXZhdGUgYXR0cmlidXRlcywgdGhleSBzaG91bGQgYmVoYXZl
CisgICAgICAgICMgbGlrZSBpbiBgX19pbml0X19gLgorICAgICAgICBjaGFuZ2VfZGljdCA9IHtu
YW1lLnJlcGxhY2UoJ18nLCAnJyk6IGRhdGEuZHJhdyhzdC5pbnRlZ2VycygpKQorICAgICAgICAg
ICAgICAgICAgICAgICBmb3IgbmFtZSBpbiBjaG9zZW5fbmFtZXN9CisgICAgICAgIGNoYW5nZWQg
PSBldm9sdmUob3JpZ2luYWwsICoqY2hhbmdlX2RpY3QpCisgICAgICAgIGZvciBuYW1lIGluIGNo
b3Nlbl9uYW1lczoKKyAgICAgICAgICAgIGFzc2VydCBnZXRhdHRyKGNoYW5nZWQsIG5hbWUpID09
IGNoYW5nZV9kaWN0W25hbWUucmVwbGFjZSgnXycsICcnKV0KKworICAgIEBnaXZlbihzaW1wbGVf
Y2xhc3NlcygpKQorICAgIGRlZiB0ZXN0X3Vua25vd24oc2VsZiwgQyk6CisgICAgICAgICIiIgor
ICAgICAgICBXYW50aW5nIHRvIGNoYW5nZSBhbiB1bmtub3duIGF0dHJpYnV0ZSByYWlzZXMgYW4K
KyAgICAgICAgQXR0cnNBdHRyaWJ1dGVOb3RGb3VuZEVycm9yLgorICAgICAgICAiIiIKKyAgICAg
ICAgIyBObyBnZW5lcmF0ZWQgY2xhc3Mgd2lsbCBoYXZlIGEgZm91ciBsZXR0ZXIgYXR0cmlidXRl
LgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yKSBhcyBlOgorICAgICAgICAg
ICAgZXZvbHZlKEMoKSwgYWFhYT0yKQorICAgICAgICBleHBlY3RlZCA9ICJfX2luaXRfXygpIGdv
dCBhbiB1bmV4cGVjdGVkIGtleXdvcmQgYXJndW1lbnQgJ2FhYWEnIgorICAgICAgICBhc3NlcnQg
KGV4cGVjdGVkLCkgPT0gZS52YWx1ZS5hcmdzCisKKyAgICBkZWYgdGVzdF92YWxpZGF0b3JfZmFp
bHVyZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFR5cGVFcnJvciBpc24ndCBzd2FsbG93
ZWQgd2hlbiB2YWxpZGF0aW9uIGZhaWxzIHdpdGhpbiBldm9sdmUuCisgICAgICAgICIiIgorICAg
ICAgICBAYXR0ci5zCisgICAgICAgIGNsYXNzIEMob2JqZWN0KToKKyAgICAgICAgICAgIGEgPSBh
dHRyLmliKHZhbGlkYXRvcj1pbnN0YW5jZV9vZihpbnQpKQorCisgICAgICAgIHdpdGggcHl0ZXN0
LnJhaXNlcyhUeXBlRXJyb3IpIGFzIGU6CisgICAgICAgICAgICBldm9sdmUoQyhhPTEpLCBhPSJz
b21lIHN0cmluZyIpCisgICAgICAgIG0gPSBlLnZhbHVlLmFyZ3NbMF0KKworICAgICAgICBhc3Nl
cnQgbS5zdGFydHN3aXRoKCInYScgbXVzdCBiZSA8e3R5cGV9ICdpbnQnPiIuZm9ybWF0KHR5cGU9
VFlQRSkpCisKKyAgICBkZWYgdGVzdF9wcml2YXRlKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAg
ICAgZXZvbHZlKCkgYWN0cyBhcyBgX19pbml0X19gIHdpdGggcmVnYXJkcyB0byBwcml2YXRlIGF0
dHJpYnV0ZXMuCisgICAgICAgICIiIgorICAgICAgICBAYXR0ci5zCisgICAgICAgIGNsYXNzIEMo
b2JqZWN0KToKKyAgICAgICAgICAgIF9hID0gYXR0ci5pYigpCisKKyAgICAgICAgYXNzZXJ0IGV2
b2x2ZShDKDEpLCBhPTIpLl9hID09IDIKKworICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVHlw
ZUVycm9yKToKKyAgICAgICAgICAgIGV2b2x2ZShDKDEpLCBfYT0yKQorCisgICAgICAgIHdpdGgg
cHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgZXZvbHZlKEMoMSksIGE9Mywg
X2E9MikKKworICAgIGRlZiB0ZXN0X25vbl9pbml0X2F0dHJzKHNlbGYpOgorICAgICAgICAiIiIK
KyAgICAgICAgZXZvbHZlKCkgaGFuZGxlcyBgaW5pdD1GYWxzZWAgYXR0cmlidXRlcy4KKyAgICAg
ICAgIiIiCisgICAgICAgIEBhdHRyLnMKKyAgICAgICAgY2xhc3MgQyhvYmplY3QpOgorICAgICAg
ICAgICAgYSA9IGF0dHIuaWIoKQorICAgICAgICAgICAgYiA9IGF0dHIuaWIoaW5pdD1GYWxzZSwg
ZGVmYXVsdD0wKQorCisgICAgICAgIGFzc2VydCBldm9sdmUoQygxKSwgYT0yKS5hID09IDIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYXR0cnMvdGVzdHMvdGVzdF9pbml0X3N1YmNsYXNzLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
dHRycy90ZXN0cy90ZXN0X2luaXRfc3ViY2xhc3MucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjY2MTMwZWRlNDcx
ZjY2YWYwM2ZmZDY4MmZiNjlmYzAwZGJlY2ZmMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0
cnMvdGVzdHMvdGVzdF9pbml0X3N1YmNsYXNzLnB5CkBAIC0wLDAgKzEsNDQgQEAKKyIiIgorVGVz
dHMgZm9yIGBfX2luaXRfc3ViY2xhc3NfX2AgcmVsYXRlZCB0ZXN0cy4KKworUHl0aG9uIDMuNisg
b25seS4KKyIiIgorCitpbXBvcnQgcHl0ZXN0CisKK2ltcG9ydCBhdHRyCisKKworQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCJzbG90cyIsIFtUcnVlLCBGYWxzZV0pCitkZWYgdGVzdF9pbml0X3N1
YmNsYXNzX3ZhbmlsbGEoc2xvdHMpOgorICAgICIiIgorICAgIGBzdXBlcigpLl9faW5pdF9zdWJj
bGFzc19fYCBjYW4gYmUgdXNlZCBpZiB0aGUgc3ViY2xhc3MgaXMgbm90IGFuIGF0dHJzCisgICAg
Y2xhc3MgYm90aCB3aXRoIGRpY3QgYW5kIHNsb3RzIGNsYXNzZXMuCisgICAgIiIiCisgICAgQGF0
dHIucyhzbG90cz1zbG90cykKKyAgICBjbGFzcyBCYXNlOgorICAgICAgICBkZWYgX19pbml0X3N1
YmNsYXNzX18oY2xzLCBwYXJhbSwgKiprdyk6CisgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9z
dWJjbGFzc19fKCoqa3cpCisgICAgICAgICAgICBjbHMucGFyYW0gPSBwYXJhbQorCisgICAgY2xh
c3MgVmFuaWxsYShCYXNlLCBwYXJhbT0iZm9vIik6CisgICAgICAgIHBhc3MKKworICAgIGFzc2Vy
dCAiZm9vIiA9PSBWYW5pbGxhKCkucGFyYW0KKworCitkZWYgdGVzdF9pbml0X3N1YmNsYXNzX2F0
dHJzKCk6CisgICAgIiIiCisgICAgYF9faW5pdF9zdWJjbGFzc19fYCB3b3JrcyB3aXRoIGF0dHJz
IGNsYXNzZXMgYXMgbG9uZyBhcyBzbG90cz1GYWxzZS4KKyAgICAiIiIKKyAgICBAYXR0ci5zKHNs
b3RzPUZhbHNlKQorICAgIGNsYXNzIEJhc2U6CisgICAgICAgIGRlZiBfX2luaXRfc3ViY2xhc3Nf
XyhjbHMsIHBhcmFtLCAqKmt3KToKKyAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X3N1YmNsYXNz
X18oKiprdykKKyAgICAgICAgICAgIGNscy5wYXJhbSA9IHBhcmFtCisKKyAgICBAYXR0ci5zCisg
ICAgY2xhc3MgQXR0cnMoQmFzZSwgcGFyYW09ImZvbyIpOgorICAgICAgICBwYXNzCisKKyAgICBh
c3NlcnQgImZvbyIgPT0gQXR0cnMoKS5wYXJhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0
cy90ZXN0X21ha2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3RfbWFrZS5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mOGM4MDIyOGFlODc4MmYwOGQ0NTQ0OTJmZmM5MzUyOTU2MmIzMDIwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0X21ha2UucHkKQEAgLTAsMCArMSw4NjYgQEAKKyIi
IgorVGVzdHMgZm9yIGBhdHRyLl9tYWtlYC4KKyIiIgorCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0
IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCisKK2ltcG9ydCBpbnNw
ZWN0CitpbXBvcnQgc3lzCisKK2Zyb20gb3BlcmF0b3IgaW1wb3J0IGF0dHJnZXR0ZXIKKworaW1w
b3J0IHB5dGVzdAorCitmcm9tIGh5cG90aGVzaXMgaW1wb3J0IGdpdmVuCitmcm9tIGh5cG90aGVz
aXMuc3RyYXRlZ2llcyBpbXBvcnQgYm9vbGVhbnMsIGludGVnZXJzLCBsaXN0cywgc2FtcGxlZF9m
cm9tLCB0ZXh0CisKK2ltcG9ydCBhdHRyCisKK2Zyb20gYXR0ciBpbXBvcnQgX2NvbmZpZworZnJv
bSBhdHRyLl9jb21wYXQgaW1wb3J0IFBZMgorZnJvbSBhdHRyLl9tYWtlIGltcG9ydCAoCisgICAg
QXR0cmlidXRlLCBGYWN0b3J5LCBfQW5kVmFsaWRhdG9yLCBfQXR0cmlidXRlcywgX0NsYXNzQnVp
bGRlciwKKyAgICBfQ291bnRpbmdBdHRyLCBfdHJhbnNmb3JtX2F0dHJzLCBhbmRfLCBmaWVsZHMs
IG1ha2VfY2xhc3MsIHZhbGlkYXRlCispCitmcm9tIGF0dHIuZXhjZXB0aW9ucyBpbXBvcnQgRGVm
YXVsdEFscmVhZHlTZXRFcnJvciwgTm90QW5BdHRyc0NsYXNzRXJyb3IKKworZnJvbSAudXRpbHMg
aW1wb3J0ICgKKyAgICBnZW5fYXR0cl9uYW1lcywgbGlzdF9vZl9hdHRycywgc2ltcGxlX2F0dHIs
IHNpbXBsZV9hdHRycywKKyAgICBzaW1wbGVfYXR0cnNfd2l0aG91dF9tZXRhZGF0YSwgc2ltcGxl
X2NsYXNzZXMKKykKKworCithdHRyc19zdCA9IHNpbXBsZV9hdHRycy5tYXAobGFtYmRhIGM6IEF0
dHJpYnV0ZS5mcm9tX2NvdW50aW5nX2F0dHIoIm5hbWUiLCBjKSkKKworCitjbGFzcyBUZXN0Q291
bnRpbmdBdHRyKG9iamVjdCk6CisgICAgIiIiCisgICAgVGVzdHMgZm9yIGBhdHRyYC4KKyAgICAi
IiIKKyAgICBkZWYgdGVzdF9yZXR1cm5zX0F0dHIoc2VsZik6CisgICAgICAgICIiIgorICAgICAg
ICBSZXR1cm5zIGFuIGluc3RhbmNlIG9mIF9Db3VudGluZ0F0dHIuCisgICAgICAgICIiIgorICAg
ICAgICBhID0gYXR0ci5pYigpCisKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoYSwgX0NvdW50
aW5nQXR0cikKKworICAgIGRlZiB0ZXN0X3ZhbGlkYXRvcnNfbGlzdHNfdG9fd3JhcHBlZF90dXBs
ZXMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBJZiBhIGxpc3QgaXMgcGFzc2VkIGFzIHZh
bGlkYXRvciwgaXQncyBqdXN0IGNvbnZlcnRlZCB0byBhIHR1cGxlLgorICAgICAgICAiIiIKKyAg
ICAgICAgZGVmIHYxKF8sIF9fKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBkZWYgdjIo
XywgX18pOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIGEgPSBhdHRyLmliKHZhbGlkYXRv
cj1bdjEsIHYyXSkKKworICAgICAgICBhc3NlcnQgX0FuZFZhbGlkYXRvcigodjEsIHYyLCkpID09
IGEuX3ZhbGlkYXRvcgorCisgICAgZGVmIHRlc3RfdmFsaWRhdG9yX2RlY29yYXRvcl9zaW5nbGUo
c2VsZik6CisgICAgICAgICIiIgorICAgICAgICBJZiBfQ291bnRpbmdBdHRyLnZhbGlkYXRvciBp
cyB1c2VkIGFzIGEgZGVjb3JhdG9yIGFuZCB0aGVyZSBpcyBubworICAgICAgICBkZWNvcmF0b3Ig
c2V0LCB0aGUgZGVjb3JhdGVkIG1ldGhvZCBpcyB1c2VkIGFzIHRoZSB2YWxpZGF0b3IuCisgICAg
ICAgICIiIgorICAgICAgICBhID0gYXR0ci5pYigpCisKKyAgICAgICAgQGEudmFsaWRhdG9yCisg
ICAgICAgIGRlZiB2KCk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgYXNzZXJ0IHYgPT0g
YS5fdmFsaWRhdG9yCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoIndyYXAiLCBbCisg
ICAgICAgIGxhbWJkYSB2OiB2LAorICAgICAgICBsYW1iZGEgdjogW3ZdLAorICAgICAgICBsYW1i
ZGEgdjogYW5kXyh2KQorCisgICAgXSkKKyAgICBkZWYgdGVzdF92YWxpZGF0b3JfZGVjb3JhdG9y
KHNlbGYsIHdyYXApOgorICAgICAgICAiIiIKKyAgICAgICAgSWYgX0NvdW50aW5nQXR0ci52YWxp
ZGF0b3IgaXMgdXNlZCBhcyBhIGRlY29yYXRvciBhbmQgdGhlcmUgaXMgYWxyZWFkeQorICAgICAg
ICBhIGRlY29yYXRvciBzZXQsIHRoZSBkZWNvcmF0b3JzIGFyZSBjb21wb3NlZCB1c2luZyBgYW5k
X2AuCisgICAgICAgICIiIgorICAgICAgICBkZWYgdihfLCBfXyk6CisgICAgICAgICAgICBwYXNz
CisKKyAgICAgICAgYSA9IGF0dHIuaWIodmFsaWRhdG9yPXdyYXAodikpCisKKyAgICAgICAgQGEu
dmFsaWRhdG9yCisgICAgICAgIGRlZiB2MihzZWxmLCBfLCBfXyk6CisgICAgICAgICAgICBwYXNz
CisKKyAgICAgICAgYXNzZXJ0IF9BbmRWYWxpZGF0b3IoKHYsIHYyLCkpID09IGEuX3ZhbGlkYXRv
cgorCisgICAgZGVmIHRlc3RfZGVmYXVsdF9kZWNvcmF0b3JfYWxyZWFkeV9zZXQoc2VsZik6Cisg
ICAgICAgICIiIgorICAgICAgICBSYWlzZSBEZWZhdWx0QWxyZWFkeVNldEVycm9yIGlmIHRoZSBk
ZWNvcmF0b3IgaXMgdXNlZCBhZnRlciBhIGRlZmF1bHQKKyAgICAgICAgaGFzIGJlZW4gc2V0Lgor
ICAgICAgICAiIiIKKyAgICAgICAgYSA9IGF0dHIuaWIoZGVmYXVsdD00MikKKworICAgICAgICB3
aXRoIHB5dGVzdC5yYWlzZXMoRGVmYXVsdEFscmVhZHlTZXRFcnJvcik6CisgICAgICAgICAgICBA
YS5kZWZhdWx0CisgICAgICAgICAgICBkZWYgZihzZWxmKToKKyAgICAgICAgICAgICAgICBwYXNz
CisKKyAgICBkZWYgdGVzdF9kZWZhdWx0X2RlY29yYXRvcl9zZXRzKHNlbGYpOgorICAgICAgICAi
IiIKKyAgICAgICAgRGVjb3JhdG9yIHdyYXBzIHRoZSBtZXRob2QgaW4gYSBGYWN0b3J5IHdpdGgg
cGFzc19zZWxmPVRydWUgYW5kIHNldHMKKyAgICAgICAgdGhlIGRlZmF1bHQuCisgICAgICAgICIi
IgorICAgICAgICBhID0gYXR0ci5pYigpCisKKyAgICAgICAgQGEuZGVmYXVsdAorICAgICAgICBk
ZWYgZihzZWxmKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBhc3NlcnQgRmFjdG9yeShm
LCBUcnVlKSA9PSBhLl9kZWZhdWx0CisKKworZGVmIG1ha2VfdGMoKToKKyAgICBjbGFzcyBUcmFu
c2Zvcm1DKG9iamVjdCk6CisgICAgICAgIHogPSBhdHRyLmliKCkKKyAgICAgICAgeSA9IGF0dHIu
aWIoKQorICAgICAgICB4ID0gYXR0ci5pYigpCisgICAgICAgIGEgPSA0MgorICAgIHJldHVybiBU
cmFuc2Zvcm1DCisKKworY2xhc3MgVGVzdFRyYW5zZm9ybUF0dHJzKG9iamVjdCk6CisgICAgIiIi
CisgICAgVGVzdHMgZm9yIGBfdHJhbnNmb3JtX2F0dHJzYC4KKyAgICAiIiIKKyAgICBkZWYgdGVz
dF9ub19tb2RpZmljYXRpb25zKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgRG9lc24ndCBh
dHRhY2ggX19hdHRyc19hdHRyc19fIHRvIHRoZSBjbGFzcyBhbnltb3JlLgorICAgICAgICAiIiIK
KyAgICAgICAgQyA9IG1ha2VfdGMoKQorICAgICAgICBfdHJhbnNmb3JtX2F0dHJzKEMsIE5vbmUs
IEZhbHNlKQorCisgICAgICAgIGFzc2VydCBOb25lIGlzIGdldGF0dHIoQywgIl9fYXR0cnNfYXR0
cnNfXyIsIE5vbmUpCisKKyAgICBkZWYgdGVzdF9ub3JtYWwoc2VsZik6CisgICAgICAgICIiIgor
ICAgICAgICBUcmFuc2Zvcm1zIGV2ZXJ5IGBfQ291bnRpbmdBdHRyYCBhbmQgbGVhdmVzIG90aGVy
cyAoYSkgYmUuCisgICAgICAgICIiIgorICAgICAgICBDID0gbWFrZV90YygpCisgICAgICAgIGF0
dHJzLCBfLCA9IF90cmFuc2Zvcm1fYXR0cnMoQywgTm9uZSwgRmFsc2UpCisKKyAgICAgICAgYXNz
ZXJ0IFsieiIsICJ5IiwgIngiXSA9PSBbYS5uYW1lIGZvciBhIGluIGF0dHJzXQorCisgICAgZGVm
IHRlc3RfZW1wdHkoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBObyBhdHRyaWJ1dGVzIHdv
cmtzIGFzIGV4cGVjdGVkLgorICAgICAgICAiIiIKKyAgICAgICAgQGF0dHIucworICAgICAgICBj
bGFzcyBDKG9iamVjdCk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgYXNzZXJ0IF9BdHRy
aWJ1dGVzKCgoKSwgW10pKSA9PSBfdHJhbnNmb3JtX2F0dHJzKEMsIE5vbmUsIEZhbHNlKQorCisg
ICAgZGVmIHRlc3RfdHJhbnNmb3Jtc190b19hdHRyaWJ1dGUoc2VsZik6CisgICAgICAgICIiIgor
ICAgICAgICBBbGwgYF9Db3VudGluZ0F0dHJgcyBhcmUgdHJhbnNmb3JtZWQgaW50byBgQXR0cmli
dXRlYHMuCisgICAgICAgICIiIgorICAgICAgICBDID0gbWFrZV90YygpCisgICAgICAgIGF0dHJz
LCBzdXBlcl9hdHRycyA9IF90cmFuc2Zvcm1fYXR0cnMoQywgTm9uZSwgRmFsc2UpCisKKyAgICAg
ICAgYXNzZXJ0IFtdID09IHN1cGVyX2F0dHJzCisgICAgICAgIGFzc2VydCAzID09IGxlbihhdHRy
cykKKyAgICAgICAgYXNzZXJ0IGFsbChpc2luc3RhbmNlKGEsIEF0dHJpYnV0ZSkgZm9yIGEgaW4g
YXR0cnMpCisKKyAgICBkZWYgdGVzdF9jb25mbGljdGluZ19kZWZhdWx0cyhzZWxmKToKKyAgICAg
ICAgIiIiCisgICAgICAgIFJhaXNlcyBgVmFsdWVFcnJvcmAgaWYgYXR0cmlidXRlcyB3aXRoIGRl
ZmF1bHRzIGFyZSBmb2xsb3dlZCBieQorICAgICAgICBtYW5kYXRvcnkgYXR0cmlidXRlcy4KKyAg
ICAgICAgIiIiCisgICAgICAgIGNsYXNzIEMob2JqZWN0KToKKyAgICAgICAgICAgIHggPSBhdHRy
LmliKGRlZmF1bHQ9Tm9uZSkKKyAgICAgICAgICAgIHkgPSBhdHRyLmliKCkKKworICAgICAgICB3
aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcikgYXMgZToKKyAgICAgICAgICAgIF90cmFuc2Zv
cm1fYXR0cnMoQywgTm9uZSwgRmFsc2UpCisgICAgICAgIGFzc2VydCAoCisgICAgICAgICAgICAi
Tm8gbWFuZGF0b3J5IGF0dHJpYnV0ZXMgYWxsb3dlZCBhZnRlciBhbiBhdHRyaWJ1dGUgd2l0aCBh
ICIKKyAgICAgICAgICAgICJkZWZhdWx0IHZhbHVlIG9yIGZhY3RvcnkuICBBdHRyaWJ1dGUgaW4g
cXVlc3Rpb246IEF0dHJpYnV0ZSIKKyAgICAgICAgICAgICIobmFtZT0neScsIGRlZmF1bHQ9Tk9U
SElORywgdmFsaWRhdG9yPU5vbmUsIHJlcHI9VHJ1ZSwgIgorICAgICAgICAgICAgImNtcD1UcnVl
LCBoYXNoPU5vbmUsIGluaXQ9VHJ1ZSwgY29udmVydD1Ob25lLCAiCisgICAgICAgICAgICAibWV0
YWRhdGE9bWFwcGluZ3Byb3h5KHt9KSwgdHlwZT1Ob25lKSIsCisgICAgICAgICkgPT0gZS52YWx1
ZS5hcmdzCisKKyAgICBkZWYgdGVzdF90aGVzZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAg
IElmIHRoZXNlIGlzIHBhc3NlZCwgdXNlIGl0IGFuZCBpZ25vcmUgYm9keSBhbmQgc3VwZXIgY2xh
c3Nlcy4KKyAgICAgICAgIiIiCisgICAgICAgIGNsYXNzIEJhc2Uob2JqZWN0KToKKyAgICAgICAg
ICAgIHogPSBhdHRyLmliKCkKKworICAgICAgICBjbGFzcyBDKEJhc2UpOgorICAgICAgICAgICAg
eSA9IGF0dHIuaWIoKQorCisgICAgICAgIGF0dHJzLCBzdXBlcl9hdHRycyA9IF90cmFuc2Zvcm1f
YXR0cnMoQywgeyJ4IjogYXR0ci5pYigpfSwgRmFsc2UpCisKKyAgICAgICAgYXNzZXJ0IFtdID09
IHN1cGVyX2F0dHJzCisgICAgICAgIGFzc2VydCAoCisgICAgICAgICAgICBzaW1wbGVfYXR0cigi
eCIpLAorICAgICAgICApID09IGF0dHJzCisKKyAgICBkZWYgdGVzdF9tdWx0aXBsZV9pbmhlcml0
YW5jZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIE9yZGVyIG9mIGF0dHJpYnV0ZXMgZG9l
c24ndCBnZXQgbWl4ZWQgdXAgYnkgbXVsdGlwbGUgaW5oZXJpdGFuY2UuCisKKyAgICAgICAgU2Vl
ICMyODUKKyAgICAgICAgIiIiCisgICAgICAgIEBhdHRyLnMKKyAgICAgICAgY2xhc3MgQShvYmpl
Y3QpOgorICAgICAgICAgICAgYTEgPSBhdHRyLmliKGRlZmF1bHQ9ImExIikKKyAgICAgICAgICAg
IGEyID0gYXR0ci5pYihkZWZhdWx0PSJhMiIpCisKKyAgICAgICAgQGF0dHIucworICAgICAgICBj
bGFzcyBCKEEpOgorICAgICAgICAgICAgYjEgPSBhdHRyLmliKGRlZmF1bHQ9ImIxIikKKyAgICAg
ICAgICAgIGIyID0gYXR0ci5pYihkZWZhdWx0PSJiMiIpCisKKyAgICAgICAgQGF0dHIucworICAg
ICAgICBjbGFzcyBDKEIsIEEpOgorICAgICAgICAgICAgYzEgPSBhdHRyLmliKGRlZmF1bHQ9ImMx
IikKKyAgICAgICAgICAgIGMyID0gYXR0ci5pYihkZWZhdWx0PSJjMiIpCisKKyAgICAgICAgQGF0
dHIucworICAgICAgICBjbGFzcyBEKEEpOgorICAgICAgICAgICAgZDEgPSBhdHRyLmliKGRlZmF1
bHQ9ImQxIikKKyAgICAgICAgICAgIGQyID0gYXR0ci5pYihkZWZhdWx0PSJkMiIpCisKKyAgICAg
ICAgQGF0dHIucworICAgICAgICBjbGFzcyBFKEQsIEMpOgorICAgICAgICAgICAgZTEgPSBhdHRy
LmliKGRlZmF1bHQ9ImUxIikKKyAgICAgICAgICAgIGUyID0gYXR0ci5pYihkZWZhdWx0PSJlMiIp
CisKKyAgICAgICAgYXNzZXJ0ICgKKyAgICAgICAgICAgICJFKGExPSdhMScsIGEyPSdhMicsIGIx
PSdiMScsIGIyPSdiMicsIGMxPSdjMScsIGMyPSdjMicsIGQxPSdkMScsICIKKyAgICAgICAgICAg
ICJkMj0nZDInLCBlMT0nZTEnLCBlMj0nZTInKSIKKyAgICAgICAgKSA9PSByZXByKEUoKSkKKwor
CitjbGFzcyBUZXN0QXR0cmlidXRlcyhvYmplY3QpOgorICAgICIiIgorICAgIFRlc3RzIGZvciB0
aGUgYGF0dHJzYC9gYXR0ci5zYCBjbGFzcyBkZWNvcmF0b3IuCisgICAgIiIiCisgICAgQHB5dGVz
dC5tYXJrLnNraXBpZihub3QgUFkyLCByZWFzb249Ik5vIG9sZC1zdHlsZSBjbGFzc2VzIGluIFB5
MyIpCisgICAgZGVmIHRlc3RfY2F0Y2hlc19vbGRfc3R5bGUoc2VsZik6CisgICAgICAgICIiIgor
ICAgICAgICBSYWlzZXMgVHlwZUVycm9yIG9uIG9sZC1zdHlsZSBjbGFzc2VzLgorICAgICAgICAi
IiIKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFR5cGVFcnJvcikgYXMgZToKKyAgICAgICAg
ICAgIEBhdHRyLnMKKyAgICAgICAgICAgIGNsYXNzIEM6CisgICAgICAgICAgICAgICAgcGFzcwor
CisgICAgICAgIGFzc2VydCAoImF0dHJzIG9ubHkgd29ya3Mgd2l0aCBuZXctc3R5bGUgY2xhc3Nl
cy4iLCkgPT0gZS52YWx1ZS5hcmdzCisKKyAgICBkZWYgdGVzdF9zZXRzX2F0dHJzKHNlbGYpOgor
ICAgICAgICAiIiIKKyAgICAgICAgU2V0cyB0aGUgYF9fYXR0cnNfYXR0cnNfX2AgY2xhc3MgYXR0
cmlidXRlIHdpdGggYSBsaXN0IG9mIGBBdHRyaWJ1dGVgcy4KKyAgICAgICAgIiIiCisgICAgICAg
IEBhdHRyLnMKKyAgICAgICAgY2xhc3MgQyhvYmplY3QpOgorICAgICAgICAgICAgeCA9IGF0dHIu
aWIoKQorCisgICAgICAgIGFzc2VydCAieCIgPT0gQy5fX2F0dHJzX2F0dHJzX19bMF0ubmFtZQor
ICAgICAgICBhc3NlcnQgYWxsKGlzaW5zdGFuY2UoYSwgQXR0cmlidXRlKSBmb3IgYSBpbiBDLl9f
YXR0cnNfYXR0cnNfXykKKworICAgIGRlZiB0ZXN0X2VtcHR5KHNlbGYpOgorICAgICAgICAiIiIK
KyAgICAgICAgTm8gYXR0cmlidXRlcywgbm8gcHJvYmxlbXMuCisgICAgICAgICIiIgorICAgICAg
ICBAYXR0ci5zCisgICAgICAgIGNsYXNzIEMzKG9iamVjdCk6CisgICAgICAgICAgICBwYXNzCisK
KyAgICAgICAgYXNzZXJ0ICJDMygpIiA9PSByZXByKEMzKCkpCisgICAgICAgIGFzc2VydCBDMygp
ID09IEMzKCkKKworICAgIEBnaXZlbihhdHRyPWF0dHJzX3N0LCBhdHRyX25hbWU9c2FtcGxlZF9m
cm9tKEF0dHJpYnV0ZS5fX3Nsb3RzX18pKQorICAgIGRlZiB0ZXN0X2ltbXV0YWJsZShzZWxmLCBh
dHRyLCBhdHRyX25hbWUpOgorICAgICAgICAiIiIKKyAgICAgICAgQXR0cmlidXRlIGluc3RhbmNl
cyBhcmUgaW1tdXRhYmxlLgorICAgICAgICAiIiIKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2Vz
KEF0dHJpYnV0ZUVycm9yKToKKyAgICAgICAgICAgIHNldGF0dHIoYXR0ciwgYXR0cl9uYW1lLCAx
KQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJtZXRob2RfbmFtZSIsIFsKKyAgICAg
ICAgIl9fcmVwcl9fIiwKKyAgICAgICAgIl9fZXFfXyIsCisgICAgICAgICJfX2hhc2hfXyIsCisg
ICAgICAgICJfX2luaXRfXyIsCisgICAgXSkKKyAgICBkZWYgdGVzdF9hZGRzX2FsbF9ieV9kZWZh
dWx0KHNlbGYsIG1ldGhvZF9uYW1lKToKKyAgICAgICAgIiIiCisgICAgICAgIElmIG5vIGZ1cnRo
ZXIgYXJndW1lbnRzIGFyZSBzdXBwbGllZCwgYWxsIGFkZF9YWFggZnVuY3Rpb25zIGV4Y2VwdAor
ICAgICAgICBhZGRfaGFzaCBhcmUgYXBwbGllZC4gIF9faGFzaF9fIGlzIHNldCB0byBOb25lLgor
ICAgICAgICAiIiIKKyAgICAgICAgIyBTZXQgdGhlIG1ldGhvZCBuYW1lIHRvIGEgc2VudGluZWwg
YW5kIGNoZWNrIHdoZXRoZXIgaXQgaGFzIGJlZW4KKyAgICAgICAgIyBvdmVyd3JpdHRlbiBhZnRl
cndhcmRzLgorICAgICAgICBzZW50aW5lbCA9IG9iamVjdCgpCisKKyAgICAgICAgY2xhc3MgQyhv
YmplY3QpOgorICAgICAgICAgICAgeCA9IGF0dHIuaWIoKQorCisgICAgICAgIHNldGF0dHIoQywg
bWV0aG9kX25hbWUsIHNlbnRpbmVsKQorCisgICAgICAgIEMgPSBhdHRyLnMoQykKKyAgICAgICAg
bWV0aCA9IGdldGF0dHIoQywgbWV0aG9kX25hbWUpCisKKyAgICAgICAgYXNzZXJ0IHNlbnRpbmVs
ICE9IG1ldGgKKyAgICAgICAgaWYgbWV0aG9kX25hbWUgPT0gIl9faGFzaF9fIjoKKyAgICAgICAg
ICAgIGFzc2VydCBtZXRoIGlzIE5vbmUKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgi
YXJnX25hbWUsIG1ldGhvZF9uYW1lIiwgWworICAgICAgICAoInJlcHIiLCAiX19yZXByX18iKSwK
KyAgICAgICAgKCJjbXAiLCAiX19lcV9fIiksCisgICAgICAgICgiaGFzaCIsICJfX2hhc2hfXyIp
LAorICAgICAgICAoImluaXQiLCAiX19pbml0X18iKSwKKyAgICBdKQorICAgIGRlZiB0ZXN0X3Jl
c3BlY3RzX2FkZF9hcmd1bWVudHMoc2VsZiwgYXJnX25hbWUsIG1ldGhvZF9uYW1lKToKKyAgICAg
ICAgIiIiCisgICAgICAgIElmIGEgY2VydGFpbiBgYWRkX1hYWGAgaXMgYEZhbHNlYCwgYF9fWFhY
X19gIGlzIG5vdCBhZGRlZCB0byB0aGUgY2xhc3MuCisgICAgICAgICIiIgorICAgICAgICAjIFNl
dCB0aGUgbWV0aG9kIG5hbWUgdG8gYSBzZW50aW5lbCBhbmQgY2hlY2sgd2hldGhlciBpdCBoYXMg
YmVlbgorICAgICAgICAjIG92ZXJ3cml0dGVuIGFmdGVyd2FyZHMuCisgICAgICAgIHNlbnRpbmVs
ID0gb2JqZWN0KCkKKworICAgICAgICBhbV9hcmdzID0geworICAgICAgICAgICAgInJlcHIiOiBU
cnVlLAorICAgICAgICAgICAgImNtcCI6IFRydWUsCisgICAgICAgICAgICAiaGFzaCI6IFRydWUs
CisgICAgICAgICAgICAiaW5pdCI6IFRydWUKKyAgICAgICAgfQorICAgICAgICBhbV9hcmdzW2Fy
Z19uYW1lXSA9IEZhbHNlCisKKyAgICAgICAgY2xhc3MgQyhvYmplY3QpOgorICAgICAgICAgICAg
eCA9IGF0dHIuaWIoKQorCisgICAgICAgIHNldGF0dHIoQywgbWV0aG9kX25hbWUsIHNlbnRpbmVs
KQorCisgICAgICAgIEMgPSBhdHRyLnMoKiphbV9hcmdzKShDKQorCisgICAgICAgIGFzc2VydCBz
ZW50aW5lbCA9PSBnZXRhdHRyKEMsIG1ldGhvZF9uYW1lKQorCisgICAgQHB5dGVzdC5tYXJrLnNr
aXBpZihQWTIsIHJlYXNvbj0iX19xdWFsbmFtZV9fIGlzIFBZMy1vbmx5LiIpCisgICAgQGdpdmVu
KHNsb3RzX291dGVyPWJvb2xlYW5zKCksIHNsb3RzX2lubmVyPWJvb2xlYW5zKCkpCisgICAgZGVm
IHRlc3RfcmVwcl9xdWFsbmFtZShzZWxmLCBzbG90c19vdXRlciwgc2xvdHNfaW5uZXIpOgorICAg
ICAgICAiIiIKKyAgICAgICAgT24gUHl0aG9uIDMsIHRoZSBuYW1lIGluIHJlcHIgaXMgdGhlIF9f
cXVhbG5hbWVfXy4KKyAgICAgICAgIiIiCisgICAgICAgIEBhdHRyLnMoc2xvdHM9c2xvdHNfb3V0
ZXIpCisgICAgICAgIGNsYXNzIEMob2JqZWN0KToKKyAgICAgICAgICAgIEBhdHRyLnMoc2xvdHM9
c2xvdHNfaW5uZXIpCisgICAgICAgICAgICBjbGFzcyBEKG9iamVjdCk6CisgICAgICAgICAgICAg
ICAgcGFzcworCisgICAgICAgIGFzc2VydCAiQy5EKCkiID09IHJlcHIoQy5EKCkpCisgICAgICAg
IGFzc2VydCAiR0MuRCgpIiA9PSByZXByKEdDLkQoKSkKKworICAgIEBnaXZlbihzbG90c19vdXRl
cj1ib29sZWFucygpLCBzbG90c19pbm5lcj1ib29sZWFucygpKQorICAgIGRlZiB0ZXN0X3JlcHJf
ZmFrZV9xdWFsbmFtZShzZWxmLCBzbG90c19vdXRlciwgc2xvdHNfaW5uZXIpOgorICAgICAgICAi
IiIKKyAgICAgICAgU2V0dGluZyByZXByX25zIG92ZXJyaWRlcyBhIHBvdGVudGlhbGx5IGd1ZXNz
ZWQgbmFtZXNwYWNlLgorICAgICAgICAiIiIKKyAgICAgICAgQGF0dHIucyhzbG90cz1zbG90c19v
dXRlcikKKyAgICAgICAgY2xhc3MgQyhvYmplY3QpOgorICAgICAgICAgICAgQGF0dHIucyhyZXBy
X25zPSJDIiwgc2xvdHM9c2xvdHNfaW5uZXIpCisgICAgICAgICAgICBjbGFzcyBEKG9iamVjdCk6
CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICBhc3NlcnQgIkMuRCgpIiA9PSByZXByKEMu
RCgpKQorCisgICAgQHB5dGVzdC5tYXJrLnNraXBpZihQWTIsIHJlYXNvbj0iX19xdWFsbmFtZV9f
IGlzIFBZMy1vbmx5LiIpCisgICAgQGdpdmVuKHNsb3RzX291dGVyPWJvb2xlYW5zKCksIHNsb3Rz
X2lubmVyPWJvb2xlYW5zKCkpCisgICAgZGVmIHRlc3RfbmFtZV9ub3Rfb3ZlcnJpZGRlbihzZWxm
LCBzbG90c19vdXRlciwgc2xvdHNfaW5uZXIpOgorICAgICAgICAiIiIKKyAgICAgICAgT24gUHl0
aG9uIDMsIF9fbmFtZV9fIGlzIGRpZmZlcmVudCBmcm9tIF9fcXVhbG5hbWVfXy4KKyAgICAgICAg
IiIiCisgICAgICAgIEBhdHRyLnMoc2xvdHM9c2xvdHNfb3V0ZXIpCisgICAgICAgIGNsYXNzIEMo
b2JqZWN0KToKKyAgICAgICAgICAgIEBhdHRyLnMoc2xvdHM9c2xvdHNfaW5uZXIpCisgICAgICAg
ICAgICBjbGFzcyBEKG9iamVjdCk6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgIGFz
c2VydCBDLkQuX19uYW1lX18gPT0gIkQiCisgICAgICAgIGFzc2VydCBDLkQuX19xdWFsbmFtZV9f
ID09IEMuX19xdWFsbmFtZV9fICsgIi5EIgorCisgICAgQGdpdmVuKHdpdGhfdmFsaWRhdGlvbj1i
b29sZWFucygpKQorICAgIGRlZiB0ZXN0X3Bvc3RfaW5pdChzZWxmLCB3aXRoX3ZhbGlkYXRpb24s
IG1vbmtleXBhdGNoKToKKyAgICAgICAgIiIiCisgICAgICAgIFZlcmlmeSB0aGF0IF9fYXR0cnNf
cG9zdF9pbml0X18gZ2V0cyBjYWxsZWQgaWYgZGVmaW5lZC4KKyAgICAgICAgIiIiCisgICAgICAg
IG1vbmtleXBhdGNoLnNldGF0dHIoX2NvbmZpZywgIl9ydW5fdmFsaWRhdG9ycyIsIHdpdGhfdmFs
aWRhdGlvbikKKworICAgICAgICBAYXR0ci5zCisgICAgICAgIGNsYXNzIEMob2JqZWN0KToKKyAg
ICAgICAgICAgIHggPSBhdHRyLmliKCkKKyAgICAgICAgICAgIHkgPSBhdHRyLmliKCkKKworICAg
ICAgICAgICAgZGVmIF9fYXR0cnNfcG9zdF9pbml0X18oc2VsZjIpOgorICAgICAgICAgICAgICAg
IHNlbGYyLnogPSBzZWxmMi54ICsgc2VsZjIueQorCisgICAgICAgIGMgPSBDKHg9MTAsIHk9MjAp
CisKKyAgICAgICAgYXNzZXJ0IDMwID09IGdldGF0dHIoYywgJ3onLCBOb25lKQorCisgICAgZGVm
IHRlc3RfdHlwZXMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBTZXRzIHRoZSBgQXR0cmli
dXRlLnR5cGVgIGF0dHIgZnJvbSB0eXBlIGFyZ3VtZW50LgorICAgICAgICAiIiIKKyAgICAgICAg
QGF0dHIucworICAgICAgICBjbGFzcyBDKG9iamVjdCk6CisgICAgICAgICAgICB4ID0gYXR0ci5p
Yih0eXBlPWludCkKKyAgICAgICAgICAgIHkgPSBhdHRyLmliKHR5cGU9c3RyKQorICAgICAgICAg
ICAgeiA9IGF0dHIuaWIoKQorCisgICAgICAgIGFzc2VydCBpbnQgaXMgZmllbGRzKEMpLngudHlw
ZQorICAgICAgICBhc3NlcnQgc3RyIGlzIGZpZWxkcyhDKS55LnR5cGUKKyAgICAgICAgYXNzZXJ0
IE5vbmUgaXMgZmllbGRzKEMpLnoudHlwZQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJzbG90cyIsIFtUcnVlLCBGYWxzZV0pCisgICAgZGVmIHRlc3RfY2xlYW5fY2xhc3Moc2VsZiwg
c2xvdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgQXR0cmlidXRlIGRlZmluaXRpb25zIGRvIG5v
dCBhcHBlYXIgb24gdGhlIGNsYXNzIGJvZHkgYWZ0ZXIgQGF0dHIucy4KKyAgICAgICAgIiIiCisg
ICAgICAgIEBhdHRyLnMoc2xvdHM9c2xvdHMpCisgICAgICAgIGNsYXNzIEMob2JqZWN0KToKKyAg
ICAgICAgICAgIHggPSBhdHRyLmliKCkKKworICAgICAgICB4ID0gZ2V0YXR0cihDLCAieCIsIE5v
bmUpCisKKyAgICAgICAgYXNzZXJ0IG5vdCBpc2luc3RhbmNlKHgsIF9Db3VudGluZ0F0dHIpCisK
KworQGF0dHIucworY2xhc3MgR0Mob2JqZWN0KToKKyAgICBAYXR0ci5zCisgICAgY2xhc3MgRChv
YmplY3QpOgorICAgICAgICBwYXNzCisKKworY2xhc3MgVGVzdE1ha2VDbGFzcyhvYmplY3QpOgor
ICAgICIiIgorICAgIFRlc3RzIGZvciBgbWFrZV9jbGFzc2AuCisgICAgIiIiCisgICAgQHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplKCJscyIsIFsKKyAgICAgICAgbGlzdCwKKyAgICAgICAgdHVwbGUK
KyAgICBdKQorICAgIGRlZiB0ZXN0X3NpbXBsZShzZWxmLCBscyk6CisgICAgICAgICIiIgorICAg
ICAgICBQYXNzaW5nIGEgbGlzdCBvZiBzdHJpbmdzIGNyZWF0ZXMgYXR0cmlidXRlcyB3aXRoIGRl
ZmF1bHQgYXJncy4KKyAgICAgICAgIiIiCisgICAgICAgIEMxID0gbWFrZV9jbGFzcygiQzEiLCBs
cyhbImEiLCAiYiJdKSkKKworICAgICAgICBAYXR0ci5zCisgICAgICAgIGNsYXNzIEMyKG9iamVj
dCk6CisgICAgICAgICAgICBhID0gYXR0ci5pYigpCisgICAgICAgICAgICBiID0gYXR0ci5pYigp
CisKKyAgICAgICAgYXNzZXJ0IEMxLl9fYXR0cnNfYXR0cnNfXyA9PSBDMi5fX2F0dHJzX2F0dHJz
X18KKworICAgIGRlZiB0ZXN0X2RpY3Qoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBQYXNz
aW5nIGEgZGljdCBvZiBuYW1lOiBfQ291bnRpbmdBdHRyIGNyZWF0ZXMgYW4gZXF1aXZhbGVudCBj
bGFzcy4KKyAgICAgICAgIiIiCisgICAgICAgIEMxID0gbWFrZV9jbGFzcygiQzEiLCB7CisgICAg
ICAgICAgICAiYSI6IGF0dHIuaWIoZGVmYXVsdD00MiksCisgICAgICAgICAgICAiYiI6IGF0dHIu
aWIoZGVmYXVsdD1Ob25lKSwKKyAgICAgICAgfSkKKworICAgICAgICBAYXR0ci5zCisgICAgICAg
IGNsYXNzIEMyKG9iamVjdCk6CisgICAgICAgICAgICBhID0gYXR0ci5pYihkZWZhdWx0PTQyKQor
ICAgICAgICAgICAgYiA9IGF0dHIuaWIoZGVmYXVsdD1Ob25lKQorCisgICAgICAgIGFzc2VydCBD
MS5fX2F0dHJzX2F0dHJzX18gPT0gQzIuX19hdHRyc19hdHRyc19fCisKKyAgICBkZWYgdGVzdF9h
dHRyX2FyZ3Moc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBhdHRyaWJ1dGVzX2FyZ3VtZW50
cyBhcmUgcGFzc2VkIHRvIGF0dHJpYnV0ZXMKKyAgICAgICAgIiIiCisgICAgICAgIEMgPSBtYWtl
X2NsYXNzKCJDIiwgWyJ4Il0sIHJlcHI9RmFsc2UpCisKKyAgICAgICAgYXNzZXJ0IHJlcHIoQygx
KSkuc3RhcnRzd2l0aCgiPHRlc3RzLnRlc3RfbWFrZS5DIG9iamVjdCBhdCAweCIpCisKKyAgICBk
ZWYgdGVzdF9jYXRjaGVzX3dyb25nX2F0dHJzX3R5cGUoc2VsZik6CisgICAgICAgICIiIgorICAg
ICAgICBSYWlzZSBgVHlwZUVycm9yYCBpZiBhbiBpbnZhbGlkIHR5cGUgZm9yIGF0dHJzIGlzIHBh
c3NlZC4KKyAgICAgICAgIiIiCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3Ip
IGFzIGU6CisgICAgICAgICAgICBtYWtlX2NsYXNzKCJDIiwgb2JqZWN0KCkpCisKKyAgICAgICAg
YXNzZXJ0ICgKKyAgICAgICAgICAgICJhdHRycyBhcmd1bWVudCBtdXN0IGJlIGEgZGljdCBvciBh
IGxpc3QuIiwKKyAgICAgICAgKSA9PSBlLnZhbHVlLmFyZ3MKKworICAgIGRlZiB0ZXN0X2Jhc2Vz
KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUGFyYW1ldGVyIGJhc2VzIGRlZmF1bHQgdG8g
KG9iamVjdCwpIGFuZCBzdWJjbGFzc2VzIGNvcnJlY3RseQorICAgICAgICAiIiIKKyAgICAgICAg
Y2xhc3MgRChvYmplY3QpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIGNscyA9IG1ha2Vf
Y2xhc3MoIkMiLCB7fSkKKworICAgICAgICBhc3NlcnQgY2xzLl9fbXJvX19bLTFdID09IG9iamVj
dAorCisgICAgICAgIGNscyA9IG1ha2VfY2xhc3MoIkMiLCB7fSwgYmFzZXM9KEQsKSkKKworICAg
ICAgICBhc3NlcnQgRCBpbiBjbHMuX19tcm9fXworICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShj
bHMoKSwgRCkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgic2xvdHMiLCBbVHJ1ZSwg
RmFsc2VdKQorICAgIGRlZiB0ZXN0X2NsZWFuX2NsYXNzKHNlbGYsIHNsb3RzKToKKyAgICAgICAg
IiIiCisgICAgICAgIEF0dHJpYnV0ZSBkZWZpbml0aW9ucyBkbyBub3QgYXBwZWFyIG9uIHRoZSBj
bGFzcyBib2R5LgorICAgICAgICAiIiIKKyAgICAgICAgQyA9IG1ha2VfY2xhc3MoIkMiLCBbIngi
XSwgc2xvdHM9c2xvdHMpCisKKyAgICAgICAgeCA9IGdldGF0dHIoQywgIngiLCBOb25lKQorCisg
ICAgICAgIGFzc2VydCBub3QgaXNpbnN0YW5jZSh4LCBfQ291bnRpbmdBdHRyKQorCisgICAgZGVm
IHRlc3RfbWlzc2luZ19zeXNfZ2V0ZnJhbWUoc2VsZiwgbW9ua2V5cGF0Y2gpOgorICAgICAgICAi
IiIKKyAgICAgICAgYG1ha2VfY2xhc3MoKWAgZG9lcyBub3QgZmFpbCB3aGVuIGBzeXMuX2dldGZy
YW1lKClgIGlzIG5vdCBhdmFpbGFibGUuCisgICAgICAgICIiIgorICAgICAgICBtb25rZXlwYXRj
aC5kZWxhdHRyKHN5cywgJ19nZXRmcmFtZScpCisgICAgICAgIEMgPSBtYWtlX2NsYXNzKCJDIiwg
WyJ4Il0pCisKKyAgICAgICAgYXNzZXJ0IDEgPT0gbGVuKEMuX19hdHRyc19hdHRyc19fKQorCisK
K2NsYXNzIFRlc3RGaWVsZHMob2JqZWN0KToKKyAgICAiIiIKKyAgICBUZXN0cyBmb3IgYGZpZWxk
c2AuCisgICAgIiIiCisgICAgZGVmIHRlc3RfaW5zdGFuY2Uoc2VsZiwgQyk6CisgICAgICAgICIi
IgorICAgICAgICBSYWlzZXMgYFR5cGVFcnJvcmAgb24gbm9uLWNsYXNzZXMuCisgICAgICAgICIi
IgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yKSBhcyBlOgorICAgICAgICAg
ICAgZmllbGRzKEMoMSwgMikpCisKKyAgICAgICAgYXNzZXJ0ICJQYXNzZWQgb2JqZWN0IG11c3Qg
YmUgYSBjbGFzcy4iID09IGUudmFsdWUuYXJnc1swXQorCisgICAgZGVmIHRlc3RfaGFuZGxlcl9u
b25fYXR0cnNfY2xhc3Moc2VsZiwgQyk6CisgICAgICAgICIiIgorICAgICAgICBSYWlzZXMgYFZh
bHVlRXJyb3JgIGlmIHBhc3NlZCBhIG5vbi1gYGF0dHJzYGAgaW5zdGFuY2UuCisgICAgICAgICIi
IgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTm90QW5BdHRyc0NsYXNzRXJyb3IpIGFzIGU6
CisgICAgICAgICAgICBmaWVsZHMob2JqZWN0KQorICAgICAgICBhc3NlcnQgKAorICAgICAgICAg
ICAgIntvIXJ9IGlzIG5vdCBhbiBhdHRycy1kZWNvcmF0ZWQgY2xhc3MuIi5mb3JtYXQobz1vYmpl
Y3QpCisgICAgICAgICkgPT0gZS52YWx1ZS5hcmdzWzBdCisKKyAgICBAZ2l2ZW4oc2ltcGxlX2Ns
YXNzZXMoKSkKKyAgICBkZWYgdGVzdF9maWVsZHMoc2VsZiwgQyk6CisgICAgICAgICIiIgorICAg
ICAgICBSZXR1cm5zIGEgbGlzdCBvZiBgQXR0cmlidXRlYGEuCisgICAgICAgICIiIgorICAgICAg
ICBhc3NlcnQgYWxsKGlzaW5zdGFuY2UoYSwgQXR0cmlidXRlKSBmb3IgYSBpbiBmaWVsZHMoQykp
CisKKyAgICBAZ2l2ZW4oc2ltcGxlX2NsYXNzZXMoKSkKKyAgICBkZWYgdGVzdF9maWVsZHNfcHJv
cGVydGllcyhzZWxmLCBDKToKKyAgICAgICAgIiIiCisgICAgICAgIEZpZWxkcyByZXR1cm5zIGEg
dHVwbGUgd2l0aCBwcm9wZXJ0aWVzLgorICAgICAgICAiIiIKKyAgICAgICAgZm9yIGF0dHJpYnV0
ZSBpbiBmaWVsZHMoQyk6CisgICAgICAgICAgICBhc3NlcnQgZ2V0YXR0cihmaWVsZHMoQyksIGF0
dHJpYnV0ZS5uYW1lKSBpcyBhdHRyaWJ1dGUKKworCitjbGFzcyBUZXN0Q29udmVydChvYmplY3Qp
OgorICAgICIiIgorICAgIFRlc3RzIGZvciBhdHRyaWJ1dGUgY29udmVyc2lvbi4KKyAgICAiIiIK
KyAgICBkZWYgdGVzdF9jb252ZXJ0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJu
IHZhbHVlIG9mIGNvbnZlcnQgaXMgdXNlZCBhcyB0aGUgYXR0cmlidXRlJ3MgdmFsdWUuCisgICAg
ICAgICIiIgorICAgICAgICBDID0gbWFrZV9jbGFzcygiQyIsIHsKKyAgICAgICAgICAgICJ4Ijog
YXR0ci5pYihjb252ZXJ0PWxhbWJkYSB2OiB2ICsgMSksCisgICAgICAgICAgICAieSI6IGF0dHIu
aWIoKSwKKyAgICAgICAgfSkKKyAgICAgICAgYyA9IEMoMSwgMikKKworICAgICAgICBhc3NlcnQg
Yy54ID09IDIKKyAgICAgICAgYXNzZXJ0IGMueSA9PSAyCisKKyAgICBAZ2l2ZW4oaW50ZWdlcnMo
KSwgYm9vbGVhbnMoKSkKKyAgICBkZWYgdGVzdF9jb252ZXJ0X3Byb3BlcnR5KHNlbGYsIHZhbCwg
aW5pdCk6CisgICAgICAgICIiIgorICAgICAgICBQcm9wZXJ0eSB0ZXN0cyBmb3IgYXR0cmlidXRl
cyB3aXRoIGNvbnZlcnQuCisgICAgICAgICIiIgorICAgICAgICBDID0gbWFrZV9jbGFzcygiQyIs
IHsKKyAgICAgICAgICAgICJ5IjogYXR0ci5pYigpLAorICAgICAgICAgICAgIngiOiBhdHRyLmli
KGluaXQ9aW5pdCwgZGVmYXVsdD12YWwsIGNvbnZlcnQ9bGFtYmRhIHY6IHYgKyAxKSwKKyAgICAg
ICAgfSkKKyAgICAgICAgYyA9IEMoMikKKworICAgICAgICBhc3NlcnQgYy54ID09IHZhbCArIDEK
KyAgICAgICAgYXNzZXJ0IGMueSA9PSAyCisKKyAgICBAZ2l2ZW4oaW50ZWdlcnMoKSwgYm9vbGVh
bnMoKSkKKyAgICBkZWYgdGVzdF9jb252ZXJ0X2ZhY3RvcnlfcHJvcGVydHkoc2VsZiwgdmFsLCBp
bml0KToKKyAgICAgICAgIiIiCisgICAgICAgIFByb3BlcnR5IHRlc3RzIGZvciBhdHRyaWJ1dGVz
IHdpdGggY29udmVydCwgYW5kIGEgZmFjdG9yeSBkZWZhdWx0LgorICAgICAgICAiIiIKKyAgICAg
ICAgQyA9IG1ha2VfY2xhc3MoIkMiLCB7CisgICAgICAgICAgICAieSI6IGF0dHIuaWIoKSwKKyAg
ICAgICAgICAgICJ4IjogYXR0ci5pYigKKyAgICAgICAgICAgICAgICBpbml0PWluaXQsCisgICAg
ICAgICAgICAgICAgZGVmYXVsdD1GYWN0b3J5KGxhbWJkYTogdmFsKSwKKyAgICAgICAgICAgICAg
ICBjb252ZXJ0PWxhbWJkYSB2OiB2ICsgMSksCisgICAgICAgIH0pCisgICAgICAgIGMgPSBDKDIp
CisKKyAgICAgICAgYXNzZXJ0IGMueCA9PSB2YWwgKyAxCisgICAgICAgIGFzc2VydCBjLnkgPT0g
MgorCisgICAgZGVmIHRlc3RfZmFjdG9yeV90YWtlc19zZWxmKHNlbGYpOgorICAgICAgICAiIiIK
KyAgICAgICAgSWYgdGFrZXNfc2VsZiBvbiBmYWN0b3JpZXMgaXMgVHJ1ZSwgc2VsZiBpcyBwYXNz
ZWQuCisgICAgICAgICIiIgorICAgICAgICBDID0gbWFrZV9jbGFzcygiQyIsIHsKKyAgICAgICAg
ICAgICJ4IjogYXR0ci5pYigKKyAgICAgICAgICAgICAgICBkZWZhdWx0PUZhY3RvcnkoKGxhbWJk
YSBzZWxmOiBzZWxmKSwgdGFrZXNfc2VsZj1UcnVlKQorICAgICAgICAgICAgKSwKKyAgICAgICAg
fSkKKworICAgICAgICBpID0gQygpCisKKyAgICAgICAgYXNzZXJ0IGkgaXMgaS54CisKKyAgICBk
ZWYgdGVzdF9mYWN0b3J5X2hhc2hhYmxlKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgRmFj
dG9yeSBpcyBoYXNoYWJsZS4KKyAgICAgICAgIiIiCisgICAgICAgIGFzc2VydCBoYXNoKEZhY3Rv
cnkoTm9uZSwgRmFsc2UpKSA9PSBoYXNoKEZhY3RvcnkoTm9uZSwgRmFsc2UpKQorCisgICAgZGVm
IHRlc3RfY29udmVydF9iZWZvcmVfdmFsaWRhdGUoc2VsZik6CisgICAgICAgICIiIgorICAgICAg
ICBWYWxpZGF0aW9uIGhhcHBlbnMgYWZ0ZXIgY29udmVyc2lvbi4KKyAgICAgICAgIiIiCisgICAg
ICAgIGRlZiB2YWxpZGF0b3IoaW5zdCwgYXR0ciwgdmFsKToKKyAgICAgICAgICAgIHJhaXNlIFJ1
bnRpbWVFcnJvcigiZm9vIikKKyAgICAgICAgQyA9IG1ha2VfY2xhc3MoCisgICAgICAgICAgICAi
QyIsIHsKKyAgICAgICAgICAgICAgICAieCI6IGF0dHIuaWIodmFsaWRhdG9yPXZhbGlkYXRvciwg
Y29udmVydD1sYW1iZGEgdjogMSAvIDApLAorICAgICAgICAgICAgICAgICJ5IjogYXR0ci5pYigp
LAorICAgICAgICAgICAgfSkKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFplcm9EaXZpc2lv
bkVycm9yKToKKyAgICAgICAgICAgIEMoMSwgMikKKworICAgIGRlZiB0ZXN0X2Zyb3plbihzZWxm
KToKKyAgICAgICAgIiIiCisgICAgICAgIENvbnZlcnRlcnMgY2lyY3VtdmVudCBpbW11dGFiaWxp
dHkuCisgICAgICAgICIiIgorICAgICAgICBDID0gbWFrZV9jbGFzcygiQyIsIHsKKyAgICAgICAg
ICAgICJ4IjogYXR0ci5pYihjb252ZXJ0PWxhbWJkYSB2OiBpbnQodikpLAorICAgICAgICB9LCBm
cm96ZW49VHJ1ZSkKKyAgICAgICAgQygiMSIpCisKKworY2xhc3MgVGVzdFZhbGlkYXRlKG9iamVj
dCk6CisgICAgIiIiCisgICAgVGVzdHMgZm9yIGB2YWxpZGF0ZWAuCisgICAgIiIiCisgICAgZGVm
IHRlc3Rfc3VjY2VzcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIElmIHRoZSB2YWxpZGF0
b3Igc3VjY2VlZHMsIG5vdGhpbmcgZ2V0cyByYWlzZWQuCisgICAgICAgICIiIgorICAgICAgICBD
ID0gbWFrZV9jbGFzcygiQyIsIHsKKyAgICAgICAgICAgICJ4IjogYXR0ci5pYih2YWxpZGF0b3I9
bGFtYmRhICphOiBOb25lKSwKKyAgICAgICAgICAgICJ5IjogYXR0ci5pYigpCisgICAgICAgIH0p
CisgICAgICAgIHZhbGlkYXRlKEMoMSwgMikpCisKKyAgICBkZWYgdGVzdF9wcm9wYWdhdGVzKHNl
bGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhlIGV4Y2VwdGlvbiBvZiB0aGUgdmFsaWRhdG9y
IGlzIGhhbmRlZCB0aHJvdWdoLgorICAgICAgICAiIiIKKyAgICAgICAgZGVmIHJhaXNlcihfLCBf
XywgdmFsdWUpOgorICAgICAgICAgICAgaWYgdmFsdWUgPT0gNDI6CisgICAgICAgICAgICAgICAg
cmFpc2UgRmxvYXRpbmdQb2ludEVycm9yCisKKyAgICAgICAgQyA9IG1ha2VfY2xhc3MoIkMiLCB7
IngiOiBhdHRyLmliKHZhbGlkYXRvcj1yYWlzZXIpfSkKKyAgICAgICAgaSA9IEMoMSkKKyAgICAg
ICAgaS54ID0gNDIKKworICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoRmxvYXRpbmdQb2ludEVy
cm9yKToKKyAgICAgICAgICAgIHZhbGlkYXRlKGkpCisKKyAgICBkZWYgdGVzdF9ydW5fdmFsaWRh
dG9ycyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFNldHRpbmcgYF9ydW5fdmFsaWRhdG9y
c2AgdG8gRmFsc2UgcHJldmVudHMgdmFsaWRhdG9ycyBmcm9tIHJ1bm5pbmcuCisgICAgICAgICIi
IgorICAgICAgICBfY29uZmlnLl9ydW5fdmFsaWRhdG9ycyA9IEZhbHNlCisgICAgICAgIG9iaiA9
IG9iamVjdCgpCisKKyAgICAgICAgZGVmIHJhaXNlcihfLCBfXywgX19fKToKKyAgICAgICAgICAg
IHJhaXNlIEV4Y2VwdGlvbihvYmopCisKKyAgICAgICAgQyA9IG1ha2VfY2xhc3MoIkMiLCB7Ingi
OiBhdHRyLmliKHZhbGlkYXRvcj1yYWlzZXIpfSkKKyAgICAgICAgYyA9IEMoMSkKKyAgICAgICAg
dmFsaWRhdGUoYykKKyAgICAgICAgYXNzZXJ0IDEgPT0gYy54CisgICAgICAgIF9jb25maWcuX3J1
bl92YWxpZGF0b3JzID0gVHJ1ZQorCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhFeGNlcHRp
b24pOgorICAgICAgICAgICAgdmFsaWRhdGUoYykKKworICAgICAgICB3aXRoIHB5dGVzdC5yYWlz
ZXMoRXhjZXB0aW9uKSBhcyBlOgorICAgICAgICAgICAgQygxKQorICAgICAgICBhc3NlcnQgKG9i
aiwpID09IGUudmFsdWUuYXJncworCisgICAgZGVmIHRlc3RfbXVsdGlwbGVfdmFsaWRhdG9ycyhz
ZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIElmIGEgbGlzdCBpcyBwYXNzZWQgYXMgYSB2YWxp
ZGF0b3IsIGFsbCBvZiBpdHMgaXRlbXMgYXJlIHRyZWF0ZWQgYXMgb25lCisgICAgICAgIGFuZCBt
dXN0IHBhc3MuCisgICAgICAgICIiIgorICAgICAgICBkZWYgdjEoXywgX18sIHZhbHVlKToKKyAg
ICAgICAgICAgIGlmIHZhbHVlID09IDIzOgorICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJv
cigib21nIikKKworICAgICAgICBkZWYgdjIoXywgX18sIHZhbHVlKToKKyAgICAgICAgICAgIGlm
IHZhbHVlID09IDQyOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm9tZyIpCisK
KyAgICAgICAgQyA9IG1ha2VfY2xhc3MoIkMiLCB7IngiOiBhdHRyLmliKHZhbGlkYXRvcj1bdjEs
IHYyXSl9KQorCisgICAgICAgIHZhbGlkYXRlKEMoMSkpCisKKyAgICAgICAgd2l0aCBweXRlc3Qu
cmFpc2VzKFR5cGVFcnJvcikgYXMgZToKKyAgICAgICAgICAgIEMoMjMpCisKKyAgICAgICAgYXNz
ZXJ0ICJvbWciID09IGUudmFsdWUuYXJnc1swXQorCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNl
cyhWYWx1ZUVycm9yKSBhcyBlOgorICAgICAgICAgICAgQyg0MikKKworICAgICAgICBhc3NlcnQg
Im9tZyIgPT0gZS52YWx1ZS5hcmdzWzBdCisKKyAgICBkZWYgdGVzdF9tdWx0aXBsZV9lbXB0eShz
ZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIEVtcHR5IGxpc3QvdHVwbGUgZm9yIHZhbGlkYXRv
ciBpcyB0aGUgc2FtZSBhcyBOb25lLgorICAgICAgICAiIiIKKyAgICAgICAgQzEgPSBtYWtlX2Ns
YXNzKCJDIiwgeyJ4IjogYXR0ci5pYih2YWxpZGF0b3I9W10pfSkKKyAgICAgICAgQzIgPSBtYWtl
X2NsYXNzKCJDIiwgeyJ4IjogYXR0ci5pYih2YWxpZGF0b3I9Tm9uZSl9KQorCisgICAgICAgIGFz
c2VydCBpbnNwZWN0LmdldHNvdXJjZShDMS5fX2luaXRfXykgPT0gaW5zcGVjdC5nZXRzb3VyY2Uo
QzIuX19pbml0X18pCisKKworIyBIeXBvdGhlc2lzIHNlZW1zIHRvIGNhY2hlIHZhbHVlcywgc28g
dGhlIGxpc3RzIG9mIGF0dHJpYnV0ZXMgY29tZSBvdXQKKyMgdW5zb3J0ZWQuCitzb3J0ZWRfbGlz
dHNfb2ZfYXR0cnMgPSBsaXN0X29mX2F0dHJzLm1hcCgKKyAgICBsYW1iZGEgbDogc29ydGVkKGws
IGtleT1hdHRyZ2V0dGVyKCJjb3VudGVyIikpKQorCisKK2NsYXNzIFRlc3RNZXRhZGF0YShvYmpl
Y3QpOgorICAgICIiIgorICAgIFRlc3RzIGZvciBtZXRhZGF0YSBoYW5kbGluZy4KKyAgICAiIiIK
KyAgICBAZ2l2ZW4oc29ydGVkX2xpc3RzX29mX2F0dHJzKQorICAgIGRlZiB0ZXN0X21ldGFkYXRh
X3ByZXNlbnQoc2VsZiwgbGlzdF9vZl9hdHRycyk6CisgICAgICAgICIiIgorICAgICAgICBBc3Nl
cnQgZGljdGlvbmFyaWVzIGFyZSBjb3BpZWQgYW5kIHByZXNlbnQuCisgICAgICAgICIiIgorICAg
ICAgICBDID0gbWFrZV9jbGFzcygiQyIsIGRpY3QoemlwKGdlbl9hdHRyX25hbWVzKCksIGxpc3Rf
b2ZfYXR0cnMpKSkKKworICAgICAgICBmb3IgaHlwX2F0dHIsIGNsYXNzX2F0dHIgaW4gemlwKGxp
c3Rfb2ZfYXR0cnMsIGZpZWxkcyhDKSk6CisgICAgICAgICAgICBpZiBoeXBfYXR0ci5tZXRhZGF0
YSBpcyBOb25lOgorICAgICAgICAgICAgICAgICMgVGhlIGRlZmF1bHQgaXMgYSBzaW5nbGV0b24g
ZW1wdHkgZGljdC4KKyAgICAgICAgICAgICAgICBhc3NlcnQgY2xhc3NfYXR0ci5tZXRhZGF0YSBp
cyBub3QgTm9uZQorICAgICAgICAgICAgICAgIGFzc2VydCBsZW4oY2xhc3NfYXR0ci5tZXRhZGF0
YSkgPT0gMAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBhc3NlcnQgaHlwX2F0
dHIubWV0YWRhdGEgPT0gY2xhc3NfYXR0ci5tZXRhZGF0YQorCisgICAgICAgICAgICAgICAgIyBP
bmNlIG1vcmUsIGp1c3QgdG8gYXNzZXJ0IGdldHRpbmcgaXRlbXMgYW5kIGl0ZXJhdGlvbi4KKyAg
ICAgICAgICAgICAgICBmb3IgayBpbiBjbGFzc19hdHRyLm1ldGFkYXRhOgorICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQgaHlwX2F0dHIubWV0YWRhdGFba10gPT0gY2xhc3NfYXR0ci5tZXRhZGF0
YVtrXQorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgKGh5cF9hdHRyLm1ldGFkYXRhLmdldChr
KSA9PQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzX2F0dHIubWV0YWRhdGEuZ2V0
KGspKQorCisgICAgQGdpdmVuKHNpbXBsZV9jbGFzc2VzKCksIHRleHQoKSkKKyAgICBkZWYgdGVz
dF9tZXRhZGF0YV9pbW11dGFiaWxpdHkoc2VsZiwgQywgc3RyaW5nKToKKyAgICAgICAgIiIiCisg
ICAgICAgIFRoZSBtZXRhZGF0YSBkaWN0IHNob3VsZCBiZSBiZXN0LWVmZm9ydCBpbW11dGFibGUu
CisgICAgICAgICIiIgorICAgICAgICBmb3IgYSBpbiBmaWVsZHMoQyk6CisgICAgICAgICAgICB3
aXRoIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgICAgICBhLm1ldGFkYXRh
W3N0cmluZ10gPSBzdHJpbmcKKyAgICAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhBdHRyaWJ1
dGVFcnJvcik6CisgICAgICAgICAgICAgICAgYS5tZXRhZGF0YS51cGRhdGUoe3N0cmluZzogc3Ry
aW5nfSkKKyAgICAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhBdHRyaWJ1dGVFcnJvcik6Cisg
ICAgICAgICAgICAgICAgYS5tZXRhZGF0YS5jbGVhcigpCisgICAgICAgICAgICB3aXRoIHB5dGVz
dC5yYWlzZXMoQXR0cmlidXRlRXJyb3IpOgorICAgICAgICAgICAgICAgIGEubWV0YWRhdGEuc2V0
ZGVmYXVsdChzdHJpbmcsIHN0cmluZykKKworICAgICAgICAgICAgZm9yIGsgaW4gYS5tZXRhZGF0
YToKKyAgICAgICAgICAgICAgICAjIEZvciBzb21lIHJlYXNvbiwgUHl0aG9uIDMncyBNYXBwaW5n
UHJveHlUeXBlIHRocm93cyBhbgorICAgICAgICAgICAgICAgICMgSW5kZXhFcnJvciBmb3IgZGVs
ZXRlcyBvbiBhIGxhcmdlIGludGVnZXIga2V5LgorICAgICAgICAgICAgICAgIHdpdGggcHl0ZXN0
LnJhaXNlcygoVHlwZUVycm9yLCBJbmRleEVycm9yKSk6CisgICAgICAgICAgICAgICAgICAgIGRl
bCBhLm1ldGFkYXRhW2tdCisgICAgICAgICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKEF0dHJp
YnV0ZUVycm9yKToKKyAgICAgICAgICAgICAgICAgICAgYS5tZXRhZGF0YS5wb3AoaykKKyAgICAg
ICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhBdHRyaWJ1dGVFcnJvcik6CisgICAgICAgICAgICAg
ICAgICAgIGEubWV0YWRhdGEucG9waXRlbSgpCisKKyAgICBAZ2l2ZW4obGlzdHMoc2ltcGxlX2F0
dHJzX3dpdGhvdXRfbWV0YWRhdGEsIG1pbl9zaXplPTIsIG1heF9zaXplPTUpKQorICAgIGRlZiB0
ZXN0X2VtcHR5X21ldGFkYXRhX3NpbmdsZXRvbihzZWxmLCBsaXN0X29mX2F0dHJzKToKKyAgICAg
ICAgIiIiCisgICAgICAgIEFsbCBlbXB0eSBtZXRhZGF0YSBhdHRyaWJ1dGVzIHNoYXJlIHRoZSBz
YW1lIGVtcHR5IG1ldGFkYXRhIGRpY3QuCisgICAgICAgICIiIgorICAgICAgICBDID0gbWFrZV9j
bGFzcygiQyIsIGRpY3QoemlwKGdlbl9hdHRyX25hbWVzKCksIGxpc3Rfb2ZfYXR0cnMpKSkKKyAg
ICAgICAgZm9yIGEgaW4gZmllbGRzKEMpWzE6XToKKyAgICAgICAgICAgIGFzc2VydCBhLm1ldGFk
YXRhIGlzIGZpZWxkcyhDKVswXS5tZXRhZGF0YQorCisKK2NsYXNzIFRlc3RDbGFzc0J1aWxkZXIo
b2JqZWN0KToKKyAgICAiIiIKKyAgICBUZXN0cyBmb3IgYF9DbGFzc0J1aWxkZXJgLgorICAgICIi
IgorICAgIGRlZiB0ZXN0X3JlcHJfc3RyKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVHJ5
aW5nIHRvIGFkZCBhIGBfX3N0cl9fYCB3aXRob3V0IGhhdmluZyBhIGBfX3JlcHJfX2AgcmFpc2Vz
IGEKKyAgICAgICAgVmFsdWVFcnJvci4KKyAgICAgICAgIiIiCisgICAgICAgIHdpdGggcHl0ZXN0
LnJhaXNlcyhWYWx1ZUVycm9yKSBhcyBlaToKKyAgICAgICAgICAgIG1ha2VfY2xhc3MoIkMiLCB7
fSwgcmVwcj1GYWxzZSwgc3RyPVRydWUpCisKKyAgICAgICAgYXNzZXJ0ICgKKyAgICAgICAgICAg
ICJfX3N0cl9fIGNhbiBvbmx5IGJlIGdlbmVyYXRlZCBpZiBhIF9fcmVwcl9fIGV4aXN0cy4iLAor
ICAgICAgICApID09IGVpLnZhbHVlLmFyZ3MKKworICAgIGRlZiB0ZXN0X3JlcHIoc2VsZik6Cisg
ICAgICAgICIiIgorICAgICAgICByZXByIG9mIGJ1aWxkZXIgaXRzZWxmIG1ha2VzIHNlbnNlLgor
ICAgICAgICAiIiIKKyAgICAgICAgY2xhc3MgQyhvYmplY3QpOgorICAgICAgICAgICAgcGFzcwor
CisgICAgICAgIGIgPSBfQ2xhc3NCdWlsZGVyKEMsIE5vbmUsIFRydWUsIFRydWUsIEZhbHNlKQor
CisgICAgICAgIGFzc2VydCAiPF9DbGFzc0J1aWxkZXIoY2xzPUMpPiIgPT0gcmVwcihiKQorCisg
ICAgZGVmIHRlc3RfcmV0dXJuc19zZWxmKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgQWxs
IG1ldGhvZHMgcmV0dXJuIHRoZSBidWlsZGVyIGZvciBjaGFpbmluZy4KKyAgICAgICAgIiIiCisg
ICAgICAgIGNsYXNzIEMob2JqZWN0KToKKyAgICAgICAgICAgIHggPSBhdHRyLmliKCkKKworICAg
ICAgICBiID0gX0NsYXNzQnVpbGRlcihDLCBOb25lLCBUcnVlLCBUcnVlLCBGYWxzZSkKKworICAg
ICAgICBjbHMgPSBiLmFkZF9jbXAoKS5hZGRfaGFzaCgpLmFkZF9pbml0KCkuYWRkX3JlcHIoIm5z
IikuYWRkX3N0cigpIFwKKyAgICAgICAgICAgIC5idWlsZF9jbGFzcygpCisKKyAgICAgICAgYXNz
ZXJ0ICJucy5DKHg9MSkiID09IHJlcHIoY2xzKDEpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90
ZXN0cy90ZXN0X3Nsb3RzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0X3Nsb3RzLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjUxNmE3OTdiNzU3MjBiZDJmYTgwYTE4YjgzOTY2MWYwYTU5MzI2MjQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3Rfc2xvdHMucHkKQEAgLTAsMCArMSw0MjMg
QEAKKyIiIgorVW5pdCB0ZXN0cyBmb3Igc2xvdC1yZWxhdGVkIGZ1bmN0aW9uYWxpdHkuCisiIiIK
KworaW1wb3J0IHB5dGVzdAorCitpbXBvcnQgYXR0cgorCitmcm9tIGF0dHIuX2NvbXBhdCBpbXBv
cnQgUFkyLCBQWVBZLCBqdXN0X3dhcm4sIG1ha2Vfc2V0X2Nsb3N1cmVfY2VsbAorCisKKyMgUHlt
cGxlciBkb2Vzbid0IHdvcmsgb24gUHlQeS4KK3RyeToKKyAgICBmcm9tIHB5bXBsZXIuYXNpemVv
ZiBpbXBvcnQgYXNpemVvZgorICAgIGhhc19weW1wbGVyID0gVHJ1ZQorZXhjZXB0IEJhc2VFeGNl
cHRpb246ICAjIFdvbid0IGJlIGFuIGltcG9ydCBlcnJvci4KKyAgICBoYXNfcHltcGxlciA9IEZh
bHNlCisKKworQGF0dHIucworY2xhc3MgQzEob2JqZWN0KToKKyAgICB4ID0gYXR0ci5pYih2YWxp
ZGF0b3I9YXR0ci52YWxpZGF0b3JzLmluc3RhbmNlX29mKGludCkpCisgICAgeSA9IGF0dHIuaWIo
KQorCisgICAgZGVmIG1ldGhvZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYueAorCisgICAg
QGNsYXNzbWV0aG9kCisgICAgZGVmIGNsYXNzbWV0aG9kKGNscyk6CisgICAgICAgIHJldHVybiAi
Y2xzbWV0aG9kIgorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBzdGF0aWNtZXRob2QoKToK
KyAgICAgICAgcmV0dXJuICJzdGF0aWNtZXRob2QiCisKKyAgICBpZiBub3QgUFkyOgorICAgICAg
ICBkZWYgbXlfY2xhc3Moc2VsZik6CisgICAgICAgICAgICByZXR1cm4gX19jbGFzc19fICAjIE5P
UUE6IEY4MjEKKworICAgICAgICBkZWYgbXlfc3VwZXIoc2VsZik6CisgICAgICAgICAgICAiIiJK
dXN0IHRvIHRlc3Qgb3V0IHRoZSBuby1hcmcgc3VwZXIuIiIiCisgICAgICAgICAgICByZXR1cm4g
c3VwZXIoKS5fX3JlcHJfXygpCisKKworQGF0dHIucyhzbG90cz1UcnVlLCBoYXNoPVRydWUpCitj
bGFzcyBDMVNsb3RzKG9iamVjdCk6CisgICAgeCA9IGF0dHIuaWIodmFsaWRhdG9yPWF0dHIudmFs
aWRhdG9ycy5pbnN0YW5jZV9vZihpbnQpKQorICAgIHkgPSBhdHRyLmliKCkKKworICAgIGRlZiBt
ZXRob2Qoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLngKKworICAgIEBjbGFzc21ldGhvZAor
ICAgIGRlZiBjbGFzc21ldGhvZChjbHMpOgorICAgICAgICByZXR1cm4gImNsc21ldGhvZCIKKwor
ICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgc3RhdGljbWV0aG9kKCk6CisgICAgICAgIHJldHVy
biAic3RhdGljbWV0aG9kIgorCisgICAgaWYgbm90IFBZMjoKKyAgICAgICAgZGVmIG15X2NsYXNz
KHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuIF9fY2xhc3NfXyAgIyBOT1FBOiBGODIxCisKKyAg
ICAgICAgZGVmIG15X3N1cGVyKHNlbGYpOgorICAgICAgICAgICAgIiIiSnVzdCB0byB0ZXN0IG91
dCB0aGUgbm8tYXJnIHN1cGVyLiIiIgorICAgICAgICAgICAgcmV0dXJuIHN1cGVyKCkuX19yZXBy
X18oKQorCisKK2RlZiB0ZXN0X3Nsb3RzX2JlaW5nX3VzZWQoKToKKyAgICAiIiIKKyAgICBUaGUg
Y2xhc3MgaXMgcmVhbGx5IHVzaW5nIF9fc2xvdHNfXy4KKyAgICAiIiIKKyAgICBub25fc2xvdF9p
bnN0YW5jZSA9IEMxKHg9MSwgeT0idGVzdCIpCisgICAgc2xvdF9pbnN0YW5jZSA9IEMxU2xvdHMo
eD0xLCB5PSJ0ZXN0IikKKworICAgIGFzc2VydCAiX19kaWN0X18iIG5vdCBpbiBkaXIoc2xvdF9p
bnN0YW5jZSkKKyAgICBhc3NlcnQgIl9fc2xvdHNfXyIgaW4gZGlyKHNsb3RfaW5zdGFuY2UpCisK
KyAgICBhc3NlcnQgIl9fZGljdF9fIiBpbiBkaXIobm9uX3Nsb3RfaW5zdGFuY2UpCisgICAgYXNz
ZXJ0ICJfX3Nsb3RzX18iIG5vdCBpbiBkaXIobm9uX3Nsb3RfaW5zdGFuY2UpCisKKyAgICBhc3Nl
cnQgc2V0KFsieCIsICJ5Il0pID09IHNldChzbG90X2luc3RhbmNlLl9fc2xvdHNfXykKKworICAg
IGlmIGhhc19weW1wbGVyOgorICAgICAgICBhc3NlcnQgYXNpemVvZihzbG90X2luc3RhbmNlKSA8
IGFzaXplb2Yobm9uX3Nsb3RfaW5zdGFuY2UpCisKKyAgICBub25fc2xvdF9pbnN0YW5jZS50ID0g
InRlc3QiCisgICAgd2l0aCBweXRlc3QucmFpc2VzKEF0dHJpYnV0ZUVycm9yKToKKyAgICAgICAg
c2xvdF9pbnN0YW5jZS50ID0gInRlc3QiCisKKyAgICBhc3NlcnQgMSA9PSBub25fc2xvdF9pbnN0
YW5jZS5tZXRob2QoKQorICAgIGFzc2VydCAxID09IHNsb3RfaW5zdGFuY2UubWV0aG9kKCkKKwor
ICAgIGFzc2VydCBhdHRyLmZpZWxkcyhDMVNsb3RzKSA9PSBhdHRyLmZpZWxkcyhDMSkKKyAgICBh
c3NlcnQgYXR0ci5hc2RpY3Qoc2xvdF9pbnN0YW5jZSkgPT0gYXR0ci5hc2RpY3Qobm9uX3Nsb3Rf
aW5zdGFuY2UpCisKKworZGVmIHRlc3RfYmFzaWNfYXR0cl9mdW5jcygpOgorICAgICIiIgorICAg
IENvbXBhcmlzb24sIGBfX2VxX19gLCBgX19oYXNoX19gLCBgX19yZXByX19gLCBgYXR0cnMuYXNk
aWN0YCB3b3JrLgorICAgICIiIgorICAgIGEgPSBDMVNsb3RzKHg9MSwgeT0yKQorICAgIGIgPSBD
MVNsb3RzKHg9MSwgeT0zKQorICAgIGFfID0gQzFTbG90cyh4PTEsIHk9MikKKworICAgICMgQ29t
cGFyaXNvbi4KKyAgICBhc3NlcnQgYiA+IGEKKworICAgIGFzc2VydCBhXyA9PSBhCisKKyAgICAj
IEhhc2hpbmcuCisgICAgaGFzaChiKSAgIyBKdXN0IHRvIGFzc2VydCBpdCBkb2Vzbid0IHJhaXNl
LgorCisgICAgIyBSZXByLgorICAgIGFzc2VydCAiQzFTbG90cyh4PTEsIHk9MikiID09IHJlcHIo
YSkKKworICAgIGFzc2VydCB7IngiOiAxLCAieSI6IDJ9ID09IGF0dHIuYXNkaWN0KGEpCisKKwor
ZGVmIHRlc3RfaW5oZXJpdGFuY2VfZnJvbV9ub25zbG90cygpOgorICAgICIiIgorICAgIEluaGVy
aXRhbmNlIGZyb20gYSBub24tc2xvdCBjbGFzcyB3b3Jrcy4KKworICAgIE5vdGUgdGhhdCBhIHNs
b3RzIGNsYXNzIGluaGVyaXRpbmcgZnJvbSBhbiBvcmRpbmFyeSBjbGFzcyBsb3NlcyBtb3N0IG9m
IHRoZQorICAgIGJlbmVmaXRzIG9mIHNsb3RzIGNsYXNzZXMsIGJ1dCBpdCBzaG91bGQgc3RpbGwg
d29yay4KKyAgICAiIiIKKyAgICBAYXR0ci5zKHNsb3RzPVRydWUsIGhhc2g9VHJ1ZSkKKyAgICBj
bGFzcyBDMlNsb3RzKEMxKToKKyAgICAgICAgeiA9IGF0dHIuaWIoKQorCisgICAgYzIgPSBDMlNs
b3RzKHg9MSwgeT0yLCB6PSJ0ZXN0IikKKworICAgIGFzc2VydCAxID09IGMyLngKKyAgICBhc3Nl
cnQgMiA9PSBjMi55CisgICAgYXNzZXJ0ICJ0ZXN0IiA9PSBjMi56CisKKyAgICBjMi50ID0gInRl
c3QiICAjIFRoaXMgd2lsbCB3b3JrLCB1c2luZyB0aGUgYmFzZSBjbGFzcy4KKworICAgIGFzc2Vy
dCAidGVzdCIgPT0gYzIudAorCisgICAgYXNzZXJ0IDEgPT0gYzIubWV0aG9kKCkKKyAgICBhc3Nl
cnQgImNsc21ldGhvZCIgPT0gYzIuY2xhc3NtZXRob2QoKQorICAgIGFzc2VydCAic3RhdGljbWV0
aG9kIiA9PSBjMi5zdGF0aWNtZXRob2QoKQorCisgICAgYXNzZXJ0IHNldChbInoiXSkgPT0gc2V0
KEMyU2xvdHMuX19zbG90c19fKQorCisgICAgYzMgPSBDMlNsb3RzKHg9MSwgeT0zLCB6PSJ0ZXN0
IikKKworICAgIGFzc2VydCBjMyA+IGMyCisKKyAgICBjMl8gPSBDMlNsb3RzKHg9MSwgeT0yLCB6
PSJ0ZXN0IikKKworICAgIGFzc2VydCBjMiA9PSBjMl8KKworICAgIGFzc2VydCAiQzJTbG90cyh4
PTEsIHk9Miwgej0ndGVzdCcpIiA9PSByZXByKGMyKQorCisgICAgaGFzaChjMikgICMgSnVzdCB0
byBhc3NlcnQgaXQgZG9lc24ndCByYWlzZS4KKworICAgIGFzc2VydCB7IngiOiAxLCAieSI6IDIs
ICJ6IjogInRlc3QifSA9PSBhdHRyLmFzZGljdChjMikKKworCitkZWYgdGVzdF9ub25zbG90c190
aGVzZSgpOgorICAgICIiIgorICAgIEVuaGFuY2luZyBhIG5vbi1zbG90cyBjbGFzcyB1c2luZyAn
dGhlc2UnIHdvcmtzLgorCisgICAgVGhpcyB3aWxsIGFjdHVhbGx5ICpyZXBsYWNlKiB0aGUgY2xh
c3Mgd2l0aCBhbm90aGVyIG9uZSwgdXNpbmcgc2xvdHMuCisgICAgIiIiCisgICAgY2xhc3MgU2lt
cGxlT3JkaW5hcnlDbGFzcyhvYmplY3QpOgorICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgeCwg
eSwgeik6CisgICAgICAgICAgICBzZWxmLnggPSB4CisgICAgICAgICAgICBzZWxmLnkgPSB5Cisg
ICAgICAgICAgICBzZWxmLnogPSB6CisKKyAgICAgICAgZGVmIG1ldGhvZChzZWxmKToKKyAgICAg
ICAgICAgIHJldHVybiBzZWxmLngKKworICAgICAgICBAY2xhc3NtZXRob2QKKyAgICAgICAgZGVm
IGNsYXNzbWV0aG9kKGNscyk6CisgICAgICAgICAgICByZXR1cm4gImNsc21ldGhvZCIKKworICAg
ICAgICBAc3RhdGljbWV0aG9kCisgICAgICAgIGRlZiBzdGF0aWNtZXRob2QoKToKKyAgICAgICAg
ICAgIHJldHVybiAic3RhdGljbWV0aG9kIgorCisgICAgQzJTbG90cyA9IGF0dHIucyh0aGVzZT17
IngiOiBhdHRyLmliKCksICJ5IjogYXR0ci5pYigpLCAieiI6IGF0dHIuaWIoKX0sCisgICAgICAg
ICAgICAgICAgICAgICBpbml0PUZhbHNlLCBzbG90cz1UcnVlLCBoYXNoPVRydWUpKFNpbXBsZU9y
ZGluYXJ5Q2xhc3MpCisKKyAgICBjMiA9IEMyU2xvdHMoeD0xLCB5PTIsIHo9InRlc3QiKQorICAg
IGFzc2VydCAxID09IGMyLngKKyAgICBhc3NlcnQgMiA9PSBjMi55CisgICAgYXNzZXJ0ICJ0ZXN0
IiA9PSBjMi56CisgICAgd2l0aCBweXRlc3QucmFpc2VzKEF0dHJpYnV0ZUVycm9yKToKKyAgICAg
ICAgYzIudCA9ICJ0ZXN0IiAgIyBXZSBoYXZlIHNsb3RzIG5vdy4KKworICAgIGFzc2VydCAxID09
IGMyLm1ldGhvZCgpCisgICAgYXNzZXJ0ICJjbHNtZXRob2QiID09IGMyLmNsYXNzbWV0aG9kKCkK
KyAgICBhc3NlcnQgInN0YXRpY21ldGhvZCIgPT0gYzIuc3RhdGljbWV0aG9kKCkKKworICAgIGFz
c2VydCBzZXQoWyJ4IiwgInkiLCAieiJdKSA9PSBzZXQoQzJTbG90cy5fX3Nsb3RzX18pCisKKyAg
ICBjMyA9IEMyU2xvdHMoeD0xLCB5PTMsIHo9InRlc3QiKQorICAgIGFzc2VydCBjMyA+IGMyCisg
ICAgYzJfID0gQzJTbG90cyh4PTEsIHk9Miwgej0idGVzdCIpCisgICAgYXNzZXJ0IGMyID09IGMy
XworCisgICAgYXNzZXJ0ICJTaW1wbGVPcmRpbmFyeUNsYXNzKHg9MSwgeT0yLCB6PSd0ZXN0Jyki
ID09IHJlcHIoYzIpCisKKyAgICBoYXNoKGMyKSAgIyBKdXN0IHRvIGFzc2VydCBpdCBkb2Vzbid0
IHJhaXNlLgorCisgICAgYXNzZXJ0IHsieCI6IDEsICJ5IjogMiwgInoiOiAidGVzdCJ9ID09IGF0
dHIuYXNkaWN0KGMyKQorCisKK2RlZiB0ZXN0X2luaGVyaXRhbmNlX2Zyb21fc2xvdHMoKToKKyAg
ICAiIiIKKyAgICBJbmhlcml0aW5nIGZyb20gYW4gYXR0ciBzbG90IGNsYXNzIHdvcmtzLgorICAg
ICIiIgorICAgIEBhdHRyLnMoc2xvdHM9VHJ1ZSwgaGFzaD1UcnVlKQorICAgIGNsYXNzIEMyU2xv
dHMoQzFTbG90cyk6CisgICAgICAgIHogPSBhdHRyLmliKCkKKworICAgIEBhdHRyLnMoc2xvdHM9
VHJ1ZSwgaGFzaD1UcnVlKQorICAgIGNsYXNzIEMyKEMxKToKKyAgICAgICAgeiA9IGF0dHIuaWIo
KQorCisgICAgYzIgPSBDMlNsb3RzKHg9MSwgeT0yLCB6PSJ0ZXN0IikKKyAgICBhc3NlcnQgMSA9
PSBjMi54CisgICAgYXNzZXJ0IDIgPT0gYzIueQorICAgIGFzc2VydCAidGVzdCIgPT0gYzIuegor
CisgICAgYXNzZXJ0IHNldChbInoiXSkgPT0gc2V0KEMyU2xvdHMuX19zbG90c19fKQorCisgICAg
YXNzZXJ0IDEgPT0gYzIubWV0aG9kKCkKKyAgICBhc3NlcnQgImNsc21ldGhvZCIgPT0gYzIuY2xh
c3NtZXRob2QoKQorICAgIGFzc2VydCAic3RhdGljbWV0aG9kIiA9PSBjMi5zdGF0aWNtZXRob2Qo
KQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKEF0dHJpYnV0ZUVycm9yKToKKyAgICAgICAgYzIu
dCA9ICJ0ZXN0IgorCisgICAgbm9uX3Nsb3RfaW5zdGFuY2UgPSBDMih4PTEsIHk9Miwgej0idGVz
dCIpCisgICAgaWYgaGFzX3B5bXBsZXI6CisgICAgICAgIGFzc2VydCBhc2l6ZW9mKGMyKSA8IGFz
aXplb2Yobm9uX3Nsb3RfaW5zdGFuY2UpCisKKyAgICBjMyA9IEMyU2xvdHMoeD0xLCB5PTMsIHo9
InRlc3QiKQorICAgIGFzc2VydCBjMyA+IGMyCisgICAgYzJfID0gQzJTbG90cyh4PTEsIHk9Miwg
ej0idGVzdCIpCisgICAgYXNzZXJ0IGMyID09IGMyXworCisgICAgYXNzZXJ0ICJDMlNsb3RzKHg9
MSwgeT0yLCB6PSd0ZXN0JykiID09IHJlcHIoYzIpCisKKyAgICBoYXNoKGMyKSAgIyBKdXN0IHRv
IGFzc2VydCBpdCBkb2Vzbid0IHJhaXNlLgorCisgICAgYXNzZXJ0IHsieCI6IDEsICJ5IjogMiwg
InoiOiAidGVzdCJ9ID09IGF0dHIuYXNkaWN0KGMyKQorCisKK2RlZiB0ZXN0X2JhcmVfaW5oZXJp
dGFuY2VfZnJvbV9zbG90cygpOgorICAgICIiIgorICAgIEluaGVyaXRpbmcgZnJvbSBhIGJhcmUg
YXR0ciBzbG90IGNsYXNzIHdvcmtzLgorICAgICIiIgorICAgIEBhdHRyLnMoaW5pdD1GYWxzZSwg
Y21wPUZhbHNlLCBoYXNoPUZhbHNlLCByZXByPUZhbHNlLCBzbG90cz1UcnVlKQorICAgIGNsYXNz
IEMxQmFyZVNsb3RzKG9iamVjdCk6CisgICAgICAgIHggPSBhdHRyLmliKHZhbGlkYXRvcj1hdHRy
LnZhbGlkYXRvcnMuaW5zdGFuY2Vfb2YoaW50KSkKKyAgICAgICAgeSA9IGF0dHIuaWIoKQorCisg
ICAgICAgIGRlZiBtZXRob2Qoc2VsZik6CisgICAgICAgICAgICByZXR1cm4gc2VsZi54CisKKyAg
ICAgICAgQGNsYXNzbWV0aG9kCisgICAgICAgIGRlZiBjbGFzc21ldGhvZChjbHMpOgorICAgICAg
ICAgICAgcmV0dXJuICJjbHNtZXRob2QiCisKKyAgICAgICAgQHN0YXRpY21ldGhvZAorICAgICAg
ICBkZWYgc3RhdGljbWV0aG9kKCk6CisgICAgICAgICAgICByZXR1cm4gInN0YXRpY21ldGhvZCIK
KworICAgIEBhdHRyLnMoaW5pdD1GYWxzZSwgY21wPUZhbHNlLCBoYXNoPUZhbHNlLCByZXByPUZh
bHNlKQorICAgIGNsYXNzIEMxQmFyZShvYmplY3QpOgorICAgICAgICB4ID0gYXR0ci5pYih2YWxp
ZGF0b3I9YXR0ci52YWxpZGF0b3JzLmluc3RhbmNlX29mKGludCkpCisgICAgICAgIHkgPSBhdHRy
LmliKCkKKworICAgICAgICBkZWYgbWV0aG9kKHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuIHNl
bGYueAorCisgICAgICAgIEBjbGFzc21ldGhvZAorICAgICAgICBkZWYgY2xhc3NtZXRob2QoY2xz
KToKKyAgICAgICAgICAgIHJldHVybiAiY2xzbWV0aG9kIgorCisgICAgICAgIEBzdGF0aWNtZXRo
b2QKKyAgICAgICAgZGVmIHN0YXRpY21ldGhvZCgpOgorICAgICAgICAgICAgcmV0dXJuICJzdGF0
aWNtZXRob2QiCisKKyAgICBAYXR0ci5zKHNsb3RzPVRydWUsIGhhc2g9VHJ1ZSkKKyAgICBjbGFz
cyBDMlNsb3RzKEMxQmFyZVNsb3RzKToKKyAgICAgICAgeiA9IGF0dHIuaWIoKQorCisgICAgQGF0
dHIucyhzbG90cz1UcnVlLCBoYXNoPVRydWUpCisgICAgY2xhc3MgQzIoQzFCYXJlKToKKyAgICAg
ICAgeiA9IGF0dHIuaWIoKQorCisgICAgYzIgPSBDMlNsb3RzKHg9MSwgeT0yLCB6PSJ0ZXN0IikK
KyAgICBhc3NlcnQgMSA9PSBjMi54CisgICAgYXNzZXJ0IDIgPT0gYzIueQorICAgIGFzc2VydCAi
dGVzdCIgPT0gYzIuegorCisgICAgYXNzZXJ0IDEgPT0gYzIubWV0aG9kKCkKKyAgICBhc3NlcnQg
ImNsc21ldGhvZCIgPT0gYzIuY2xhc3NtZXRob2QoKQorICAgIGFzc2VydCAic3RhdGljbWV0aG9k
IiA9PSBjMi5zdGF0aWNtZXRob2QoKQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKEF0dHJpYnV0
ZUVycm9yKToKKyAgICAgICAgYzIudCA9ICJ0ZXN0IgorCisgICAgbm9uX3Nsb3RfaW5zdGFuY2Ug
PSBDMih4PTEsIHk9Miwgej0idGVzdCIpCisgICAgaWYgaGFzX3B5bXBsZXI6CisgICAgICAgIGFz
c2VydCBhc2l6ZW9mKGMyKSA8IGFzaXplb2Yobm9uX3Nsb3RfaW5zdGFuY2UpCisKKyAgICBjMyA9
IEMyU2xvdHMoeD0xLCB5PTMsIHo9InRlc3QiKQorICAgIGFzc2VydCBjMyA+IGMyCisgICAgYzJf
ID0gQzJTbG90cyh4PTEsIHk9Miwgej0idGVzdCIpCisgICAgYXNzZXJ0IGMyID09IGMyXworCisg
ICAgYXNzZXJ0ICJDMlNsb3RzKHg9MSwgeT0yLCB6PSd0ZXN0JykiID09IHJlcHIoYzIpCisKKyAg
ICBoYXNoKGMyKSAgIyBKdXN0IHRvIGFzc2VydCBpdCBkb2Vzbid0IHJhaXNlLgorCisgICAgYXNz
ZXJ0IHsieCI6IDEsICJ5IjogMiwgInoiOiAidGVzdCJ9ID09IGF0dHIuYXNkaWN0KGMyKQorCisK
K0BweXRlc3QubWFyay5za2lwaWYoUFkyLCByZWFzb249ImNsb3N1cmUgY2VsbCByZXdyaXRpbmcg
aXMgUFkzLW9ubHkuIikKK2NsYXNzIFRlc3RDbG9zdXJlQ2VsbFJld3JpdGluZyhvYmplY3QpOgor
ICAgIGRlZiB0ZXN0X2Nsb3N1cmVfY2VsbF9yZXdyaXRpbmcoc2VsZik6CisgICAgICAgICIiIgor
ICAgICAgICBTbG90IGNsYXNzZXMgc3VwcG9ydCBwcm9wZXIgY2xvc3VyZSBjZWxsIHJld3JpdGlu
Zy4KKworICAgICAgICBUaGlzIGFmZmVjdHMgZmVhdHVyZXMgbGlrZSBgX19jbGFzc19fYCBhbmQg
dGhlIG5vLWFyZyBzdXBlcigpLgorICAgICAgICAiIiIKKyAgICAgICAgbm9uX3Nsb3RfaW5zdGFu
Y2UgPSBDMSh4PTEsIHk9InRlc3QiKQorICAgICAgICBzbG90X2luc3RhbmNlID0gQzFTbG90cyh4
PTEsIHk9InRlc3QiKQorCisgICAgICAgIGFzc2VydCBub25fc2xvdF9pbnN0YW5jZS5teV9jbGFz
cygpIGlzIEMxCisgICAgICAgIGFzc2VydCBzbG90X2luc3RhbmNlLm15X2NsYXNzKCkgaXMgQzFT
bG90cworCisgICAgICAgICMgSnVzdCBhc3NlcnQgdGhleSByZXR1cm4gc29tZXRoaW5nLCBhbmQg
bm90IGFuIGV4Y2VwdGlvbi4KKyAgICAgICAgYXNzZXJ0IG5vbl9zbG90X2luc3RhbmNlLm15X3N1
cGVyKCkKKyAgICAgICAgYXNzZXJ0IHNsb3RfaW5zdGFuY2UubXlfc3VwZXIoKQorCisgICAgZGVm
IHRlc3RfaW5oZXJpdGFuY2Uoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBTbG90IGNsYXNz
ZXMgc3VwcG9ydCBwcm9wZXIgY2xvc3VyZSBjZWxsIHJld3JpdGluZyB3aGVuIGluaGVyaXRpbmcu
CisKKyAgICAgICAgVGhpcyBhZmZlY3RzIGZlYXR1cmVzIGxpa2UgYF9fY2xhc3NfX2AgYW5kIHRo
ZSBuby1hcmcgc3VwZXIoKS4KKyAgICAgICAgIiIiCisgICAgICAgIEBhdHRyLnMKKyAgICAgICAg
Y2xhc3MgQzIoQzEpOgorICAgICAgICAgICAgZGVmIG15X3N1YmNsYXNzKHNlbGYpOgorICAgICAg
ICAgICAgICAgIHJldHVybiBfX2NsYXNzX18gICMgTk9RQTogRjgyMQorCisgICAgICAgIEBhdHRy
LnMKKyAgICAgICAgY2xhc3MgQzJTbG90cyhDMVNsb3RzKToKKyAgICAgICAgICAgIGRlZiBteV9z
dWJjbGFzcyhzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gX19jbGFzc19fICAjIE5PUUE6
IEY4MjEKKworICAgICAgICBub25fc2xvdF9pbnN0YW5jZSA9IEMyKHg9MSwgeT0idGVzdCIpCisg
ICAgICAgIHNsb3RfaW5zdGFuY2UgPSBDMlNsb3RzKHg9MSwgeT0idGVzdCIpCisKKyAgICAgICAg
YXNzZXJ0IG5vbl9zbG90X2luc3RhbmNlLm15X2NsYXNzKCkgaXMgQzEKKyAgICAgICAgYXNzZXJ0
IHNsb3RfaW5zdGFuY2UubXlfY2xhc3MoKSBpcyBDMVNsb3RzCisKKyAgICAgICAgIyBKdXN0IGFz
c2VydCB0aGV5IHJldHVybiBzb21ldGhpbmcsIGFuZCBub3QgYW4gZXhjZXB0aW9uLgorICAgICAg
ICBhc3NlcnQgbm9uX3Nsb3RfaW5zdGFuY2UubXlfc3VwZXIoKQorICAgICAgICBhc3NlcnQgc2xv
dF9pbnN0YW5jZS5teV9zdXBlcigpCisKKyAgICAgICAgYXNzZXJ0IG5vbl9zbG90X2luc3RhbmNl
Lm15X3N1YmNsYXNzKCkgaXMgQzIKKyAgICAgICAgYXNzZXJ0IHNsb3RfaW5zdGFuY2UubXlfc3Vi
Y2xhc3MoKSBpcyBDMlNsb3RzCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInNsb3Rz
IiwgW1RydWUsIEZhbHNlXSkKKyAgICBkZWYgdGVzdF9jbHNfc3RhdGljKHNlbGYsIHNsb3RzKToK
KyAgICAgICAgIiIiCisgICAgICAgIFNsb3QgY2xhc3NlcyBzdXBwb3J0IHByb3BlciBjbG9zdXJl
IGNlbGwgcmV3cml0aW5nIGZvciBjbGFzcy0gYW5kCisgICAgICAgIHN0YXRpYyBtZXRob2RzLgor
ICAgICAgICAiIiIKKyAgICAgICAgIyBQeXRob24gY2FuIHJldXNlIGNsb3N1cmUgY2VsbHMsIHNv
IHdlIGNyZWF0ZSBuZXcgY2xhc3NlcyBqdXN0IGZvcgorICAgICAgICAjIHRoaXMgdGVzdC4KKwor
ICAgICAgICBAYXR0ci5zKHNsb3RzPXNsb3RzKQorICAgICAgICBjbGFzcyBDOgorICAgICAgICAg
ICAgQGNsYXNzbWV0aG9kCisgICAgICAgICAgICBkZWYgY2xzbWV0aG9kKGNscyk6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIF9fY2xhc3NfXyAgIyBub3FhOiBGODIxCisKKyAgICAgICAgYXNzZXJ0
IEMuY2xzbWV0aG9kKCkgaXMgQworCisgICAgICAgIEBhdHRyLnMoc2xvdHM9c2xvdHMpCisgICAg
ICAgIGNsYXNzIEQ6CisgICAgICAgICAgICBAc3RhdGljbWV0aG9kCisgICAgICAgICAgICBkZWYg
c3RhdG1ldGhvZCgpOgorICAgICAgICAgICAgICAgIHJldHVybiBfX2NsYXNzX18gICMgbm9xYTog
RjgyMQorCisgICAgICAgIGFzc2VydCBELnN0YXRtZXRob2QoKSBpcyBECisKKyAgICBAcHl0ZXN0
Lm1hcmsuc2tpcGlmKAorICAgICAgICBQWVBZLAorICAgICAgICByZWFzb249ImN0eXBlcyBhcmUg
dXNlZCBvbmx5IG9uIENQeXRob24iCisgICAgKQorICAgIGRlZiB0ZXN0X21pc3NpbmdfY3R5cGVz
KHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgIiIiCisgICAgICAgIEtlZXBzIHdvcmtpbmcg
aWYgY3R5cGVzIGlzIG1pc3NpbmcuCisKKyAgICAgICAgQSB3YXJuaW5nIGlzIGVtaXR0ZWQgdGhh
dCBwb2ludHMgdG8gdGhlIGFjdHVhbCBjb2RlLgorICAgICAgICAiIiIKKyAgICAgICAgbW9ua2V5
cGF0Y2guc2V0YXR0cihhdHRyLl9jb21wYXQsICJpbXBvcnRfY3R5cGVzIiwgbGFtYmRhOiBOb25l
KQorICAgICAgICBmdW5jID0gbWFrZV9zZXRfY2xvc3VyZV9jZWxsKCkKKworICAgICAgICB3aXRo
IHB5dGVzdC53YXJucyhSdW50aW1lV2FybmluZykgYXMgd3I6CisgICAgICAgICAgICBmdW5jKCkK
KworICAgICAgICB3ID0gd3IucG9wKCkKKyAgICAgICAgYXNzZXJ0IF9fZmlsZV9fID09IHcuZmls
ZW5hbWUKKyAgICAgICAgYXNzZXJ0ICgKKyAgICAgICAgICAgICJNaXNzaW5nIGN0eXBlcy4gIFNv
bWUgZmVhdHVyZXMgbGlrZSBiYXJlIHN1cGVyKCkgb3IgYWNjZXNzaW5nICIKKyAgICAgICAgICAg
ICJfX2NsYXNzX18gd2lsbCBub3Qgd29yayB3aXRoIHNsb3RzIGNsYXNzZXMuIiwKKyAgICAgICAg
KSA9PSB3Lm1lc3NhZ2UuYXJncworCisgICAgICAgIGFzc2VydCBqdXN0X3dhcm4gaXMgZnVuYwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0X3ZhbGlkYXRvcnMucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0
dHJzL3Rlc3RzL3Rlc3RfdmFsaWRhdG9ycy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NzIyZGEyN2ZkYjM1OWI0
YWZhMzgwMzI5Zjk3YmQyMjYzM2QzY2E2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90
ZXN0cy90ZXN0X3ZhbGlkYXRvcnMucHkKQEAgLTAsMCArMSwyNjYgQEAKKyIiIgorVGVzdHMgZm9y
IGBhdHRyLnZhbGlkYXRvcnNgLgorIiIiCisKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1
dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IHB5dGVzdAoraW1w
b3J0IHpvcGUuaW50ZXJmYWNlCisKK2ltcG9ydCBhdHRyCisKK2Zyb20gYXR0ciBpbXBvcnQgdmFs
aWRhdG9ycyBhcyB2YWxpZGF0b3JfbW9kdWxlCitmcm9tIGF0dHIgaW1wb3J0IGhhcworZnJvbSBh
dHRyLl9jb21wYXQgaW1wb3J0IFRZUEUKK2Zyb20gYXR0ci52YWxpZGF0b3JzIGltcG9ydCBhbmRf
LCBpbl8sIGluc3RhbmNlX29mLCBvcHRpb25hbCwgcHJvdmlkZXMKKworZnJvbSAudXRpbHMgaW1w
b3J0IHNpbXBsZV9hdHRyCisKKworY2xhc3MgVGVzdEluc3RhbmNlT2Yob2JqZWN0KToKKyAgICAi
IiIKKyAgICBUZXN0cyBmb3IgYGluc3RhbmNlX29mYC4KKyAgICAiIiIKKyAgICBkZWYgdGVzdF9z
dWNjZXNzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgTm90aGluZyBoYXBwZW5zIGlmIHR5
cGVzIG1hdGNoLgorICAgICAgICAiIiIKKyAgICAgICAgdiA9IGluc3RhbmNlX29mKGludCkKKyAg
ICAgICAgdihOb25lLCBzaW1wbGVfYXR0cigidGVzdCIpLCA0MikKKworICAgIGRlZiB0ZXN0X3N1
YmNsYXNzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgU3ViY2xhc3NlcyBhcmUgYWNjZXB0
ZWQgdG9vLgorICAgICAgICAiIiIKKyAgICAgICAgdiA9IGluc3RhbmNlX29mKGludCkKKyAgICAg
ICAgIyB5ZXAsIGJvb2xzIGFyZSBhIHN1YmNsYXNzIG9mIGludCA6KAorICAgICAgICB2KE5vbmUs
IHNpbXBsZV9hdHRyKCJ0ZXN0IiksIFRydWUpCisKKyAgICBkZWYgdGVzdF9mYWlsKHNlbGYpOgor
ICAgICAgICAiIiIKKyAgICAgICAgUmFpc2VzIGBUeXBlRXJyb3JgIG9uIHdyb25nIHR5cGVzLgor
ICAgICAgICAiIiIKKyAgICAgICAgdiA9IGluc3RhbmNlX29mKGludCkKKyAgICAgICAgYSA9IHNp
bXBsZV9hdHRyKCJ0ZXN0IikKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFR5cGVFcnJvcikg
YXMgZToKKyAgICAgICAgICAgIHYoTm9uZSwgYSwgIjQyIikKKyAgICAgICAgYXNzZXJ0ICgKKyAg
ICAgICAgICAgICIndGVzdCcgbXVzdCBiZSA8e3R5cGV9ICdpbnQnPiAoZ290ICc0MicgdGhhdCBp
cyBhIDx7dHlwZX0gIgorICAgICAgICAgICAgIidzdHInPikuIi5mb3JtYXQodHlwZT1UWVBFKSwK
KyAgICAgICAgICAgIGEsIGludCwgIjQyIiwKKworICAgICAgICApID09IGUudmFsdWUuYXJncwor
CisgICAgZGVmIHRlc3RfcmVwcihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybmVk
IHZhbGlkYXRvciBoYXMgYSB1c2VmdWwgYF9fcmVwcl9fYC4KKyAgICAgICAgIiIiCisgICAgICAg
IHYgPSBpbnN0YW5jZV9vZihpbnQpCisgICAgICAgIGFzc2VydCAoCisgICAgICAgICAgICAiPGlu
c3RhbmNlX29mIHZhbGlkYXRvciBmb3IgdHlwZSA8e3R5cGV9ICdpbnQnPj4iCisgICAgICAgICAg
ICAuZm9ybWF0KHR5cGU9VFlQRSkKKyAgICAgICAgKSA9PSByZXByKHYpCisKKworZGVmIGFsd2F5
c19wYXNzKF8sIF9fLCBfX18pOgorICAgICIiIgorICAgIFRveSB2YWxpZGF0b3IgdGhhdCBhbHdh
eXMgcGFzc3Nlcy4KKyAgICAiIiIKKworCitkZWYgYWx3YXlzX2ZhaWwoXywgX18sIF9fXyk6Cisg
ICAgIiIiCisgICAgVG95IHZhbGlkYXRvciB0aGF0IGFsd2F5cyBmYWlscy4KKyAgICAiIiIKKyAg
ICAwLzAKKworCitjbGFzcyBUZXN0QW5kKG9iamVjdCk6CisgICAgZGVmIHRlc3Rfc3VjY2Vzcyhz
ZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFN1Y2NlZWRzIGlmIGFsbCB3cmFwcGVkIHZhbGlk
YXRvcnMgc3VjY2VlZC4KKyAgICAgICAgIiIiCisgICAgICAgIHYgPSBhbmRfKGluc3RhbmNlX29m
KGludCksIGFsd2F5c19wYXNzKQorCisgICAgICAgIHYoTm9uZSwgc2ltcGxlX2F0dHIoInRlc3Qi
KSwgNDIpCisKKyAgICBkZWYgdGVzdF9mYWlsKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAg
RmFpbHMgaWYgYW55IHdyYXBwZWQgdmFsaWRhdG9yIGZhaWxzLgorICAgICAgICAiIiIKKyAgICAg
ICAgdiA9IGFuZF8oaW5zdGFuY2Vfb2YoaW50KSwgYWx3YXlzX2ZhaWwpCisKKyAgICAgICAgd2l0
aCBweXRlc3QucmFpc2VzKFplcm9EaXZpc2lvbkVycm9yKToKKyAgICAgICAgICAgIHYoTm9uZSwg
c2ltcGxlX2F0dHIoInRlc3QiKSwgNDIpCisKKyAgICBkZWYgdGVzdF9zdWdhcihzZWxmKToKKyAg
ICAgICAgIiIiCisgICAgICAgIGBhbmRfKHYxLCB2MiwgdjMpYCBhbmQgYFt2MSwgdjIsIHYzXWAg
YXJlIGVxdWl2YWxlbnQuCisgICAgICAgICIiIgorICAgICAgICBAYXR0ci5zCisgICAgICAgIGNs
YXNzIEMob2JqZWN0KToKKyAgICAgICAgICAgIGExID0gYXR0ci5pYigiYTEiLCB2YWxpZGF0b3I9
YW5kXygKKyAgICAgICAgICAgICAgICBpbnN0YW5jZV9vZihpbnQpLAorICAgICAgICAgICAgKSkK
KyAgICAgICAgICAgIGEyID0gYXR0ci5pYigiYTIiLCB2YWxpZGF0b3I9WworICAgICAgICAgICAg
ICAgIGluc3RhbmNlX29mKGludCksCisgICAgICAgICAgICBdKQorCisgICAgICAgIGFzc2VydCBD
Ll9fYXR0cnNfYXR0cnNfX1swXS52YWxpZGF0b3IgPT0gQy5fX2F0dHJzX2F0dHJzX19bMV0udmFs
aWRhdG9yCisKKworY2xhc3MgSUZvbyh6b3BlLmludGVyZmFjZS5JbnRlcmZhY2UpOgorICAgICIi
IgorICAgIEFuIGludGVyZmFjZS4KKyAgICAiIiIKKyAgICBkZWYgZigpOgorICAgICAgICAiIiIK
KyAgICAgICAgQSBmdW5jdGlvbiBjYWxsZWQgZi4KKyAgICAgICAgIiIiCisKKworY2xhc3MgVGVz
dFByb3ZpZGVzKG9iamVjdCk6CisgICAgIiIiCisgICAgVGVzdHMgZm9yIGBwcm92aWRlc2AuCisg
ICAgIiIiCisgICAgZGVmIHRlc3Rfc3VjY2VzcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAg
IE5vdGhpbmcgaGFwcGVucyBpZiB2YWx1ZSBwcm92aWRlcyByZXF1ZXN0ZWQgaW50ZXJmYWNlLgor
ICAgICAgICAiIiIKKyAgICAgICAgQHpvcGUuaW50ZXJmYWNlLmltcGxlbWVudGVyKElGb28pCisg
ICAgICAgIGNsYXNzIEMob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBmKHNlbGYpOgorICAgICAg
ICAgICAgICAgIHBhc3MKKworICAgICAgICB2ID0gcHJvdmlkZXMoSUZvbykKKyAgICAgICAgdihO
b25lLCBzaW1wbGVfYXR0cigieCIpLCBDKCkpCisKKyAgICBkZWYgdGVzdF9mYWlsKHNlbGYpOgor
ICAgICAgICAiIiIKKyAgICAgICAgUmFpc2VzIGBUeXBlRXJyb3JgIGlmIGludGVyZmFjZXMgaXNu
J3QgcHJvdmlkZWQgYnkgdmFsdWUuCisgICAgICAgICIiIgorICAgICAgICB2YWx1ZSA9IG9iamVj
dCgpCisgICAgICAgIGEgPSBzaW1wbGVfYXR0cigieCIpCisKKyAgICAgICAgdiA9IHByb3ZpZGVz
KElGb28pCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhUeXBlRXJyb3IpIGFzIGU6CisgICAg
ICAgICAgICB2KE5vbmUsIGEsIHZhbHVlKQorICAgICAgICBhc3NlcnQgKAorICAgICAgICAgICAg
Iid4JyBtdXN0IHByb3ZpZGUge2ludGVyZmFjZSFyfSB3aGljaCB7dmFsdWUhcn0gZG9lc24ndC4i
CisgICAgICAgICAgICAuZm9ybWF0KGludGVyZmFjZT1JRm9vLCB2YWx1ZT12YWx1ZSksCisgICAg
ICAgICAgICBhLCBJRm9vLCB2YWx1ZSwKKyAgICAgICAgKSA9PSBlLnZhbHVlLmFyZ3MKKworICAg
IGRlZiB0ZXN0X3JlcHIoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5lZCB2YWxp
ZGF0b3IgaGFzIGEgdXNlZnVsIGBfX3JlcHJfX2AuCisgICAgICAgICIiIgorICAgICAgICB2ID0g
cHJvdmlkZXMoSUZvbykKKyAgICAgICAgYXNzZXJ0ICgKKyAgICAgICAgICAgICI8cHJvdmlkZXMg
dmFsaWRhdG9yIGZvciBpbnRlcmZhY2Uge2ludGVyZmFjZSFyfT4iCisgICAgICAgICAgICAuZm9y
bWF0KGludGVyZmFjZT1JRm9vKQorICAgICAgICApID09IHJlcHIodikKKworCitAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoInZhbGlkYXRvciIsIFsKKyAgICBpbnN0YW5jZV9vZihpbnQpLAorICAg
IFthbHdheXNfcGFzcywgaW5zdGFuY2Vfb2YoaW50KV0sCitdKQorY2xhc3MgVGVzdE9wdGlvbmFs
KG9iamVjdCk6CisgICAgIiIiCisgICAgVGVzdHMgZm9yIGBvcHRpb25hbGAuCisgICAgIiIiCisg
ICAgZGVmIHRlc3Rfc3VjY2VzcyhzZWxmLCB2YWxpZGF0b3IpOgorICAgICAgICAiIiIKKyAgICAg
ICAgTm90aGluZyBoYXBwZW5zIGlmIHZhbGlkYXRvciBzdWNjZWVkcy4KKyAgICAgICAgIiIiCisg
ICAgICAgIHYgPSBvcHRpb25hbCh2YWxpZGF0b3IpCisgICAgICAgIHYoTm9uZSwgc2ltcGxlX2F0
dHIoInRlc3QiKSwgNDIpCisKKyAgICBkZWYgdGVzdF9zdWNjZXNzX3dpdGhfbm9uZShzZWxmLCB2
YWxpZGF0b3IpOgorICAgICAgICAiIiIKKyAgICAgICAgTm90aGluZyBoYXBwZW5zIGlmIE5vbmUu
CisgICAgICAgICIiIgorICAgICAgICB2ID0gb3B0aW9uYWwodmFsaWRhdG9yKQorICAgICAgICB2
KE5vbmUsIHNpbXBsZV9hdHRyKCJ0ZXN0IiksIE5vbmUpCisKKyAgICBkZWYgdGVzdF9mYWlsKHNl
bGYsIHZhbGlkYXRvcik6CisgICAgICAgICIiIgorICAgICAgICBSYWlzZXMgYFR5cGVFcnJvcmAg
b24gd3JvbmcgdHlwZXMuCisgICAgICAgICIiIgorICAgICAgICB2ID0gb3B0aW9uYWwodmFsaWRh
dG9yKQorICAgICAgICBhID0gc2ltcGxlX2F0dHIoInRlc3QiKQorICAgICAgICB3aXRoIHB5dGVz
dC5yYWlzZXMoVHlwZUVycm9yKSBhcyBlOgorICAgICAgICAgICAgdihOb25lLCBhLCAiNDIiKQor
ICAgICAgICBhc3NlcnQgKAorICAgICAgICAgICAgIid0ZXN0JyBtdXN0IGJlIDx7dHlwZX0gJ2lu
dCc+IChnb3QgJzQyJyB0aGF0IGlzIGEgPHt0eXBlfSAiCisgICAgICAgICAgICAiJ3N0cic+KS4i
LmZvcm1hdCh0eXBlPVRZUEUpLAorICAgICAgICAgICAgYSwgaW50LCAiNDIiLAorCisgICAgICAg
ICkgPT0gZS52YWx1ZS5hcmdzCisKKyAgICBkZWYgdGVzdF9yZXByKHNlbGYsIHZhbGlkYXRvcik6
CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5lZCB2YWxpZGF0b3IgaGFzIGEgdXNlZnVsIGBf
X3JlcHJfX2AuCisgICAgICAgICIiIgorICAgICAgICB2ID0gb3B0aW9uYWwodmFsaWRhdG9yKQor
CisgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsaWRhdG9yLCBsaXN0KToKKyAgICAgICAgICAgIGFz
c2VydCAoCisgICAgICAgICAgICAgICAgKCI8b3B0aW9uYWwgdmFsaWRhdG9yIGZvciBfQW5kVmFs
aWRhdG9yKF92YWxpZGF0b3JzPVt7ZnVuY30sICIKKyAgICAgICAgICAgICAgICAgIjxpbnN0YW5j
ZV9vZiB2YWxpZGF0b3IgZm9yIHR5cGUgPHt0eXBlfSAnaW50Jz4+XSkgb3IgTm9uZT4iKQorICAg
ICAgICAgICAgICAgIC5mb3JtYXQoZnVuYz1yZXByKGFsd2F5c19wYXNzKSwgdHlwZT1UWVBFKQor
ICAgICAgICAgICAgKSA9PSByZXByKHYpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3Nl
cnQgKAorICAgICAgICAgICAgICAgICgiPG9wdGlvbmFsIHZhbGlkYXRvciBmb3IgPGluc3RhbmNl
X29mIHZhbGlkYXRvciBmb3IgdHlwZSAiCisgICAgICAgICAgICAgICAgICI8e3R5cGV9ICdpbnQn
Pj4gb3IgTm9uZT4iKQorICAgICAgICAgICAgICAgIC5mb3JtYXQodHlwZT1UWVBFKQorICAgICAg
ICAgICAgKSA9PSByZXByKHYpCisKKworY2xhc3MgVGVzdEluXyhvYmplY3QpOgorICAgICIiIgor
ICAgIFRlc3RzIGZvciBgaW5fYC4KKyAgICAiIiIKKyAgICBkZWYgdGVzdF9zdWNjZXNzX3dpdGhf
dmFsdWUoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBJZiB0aGUgdmFsdWUgaXMgaW4gb3Vy
IG9wdGlvbnMsIG5vdGhpbmcgaGFwcGVucy4KKyAgICAgICAgIiIiCisgICAgICAgIHYgPSBpbl8o
WzEsIDIsIDNdKQorICAgICAgICBhID0gc2ltcGxlX2F0dHIoInRlc3QiKQorICAgICAgICB2KDEs
IGEsIDMpCisKKyAgICBkZWYgdGVzdF9mYWlsKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAg
UmFpc2UgVmFsdWVFcnJvciBpZiB0aGUgdmFsdWUgaXMgb3V0c2lkZSBvdXIgb3B0aW9ucy4KKyAg
ICAgICAgIiIiCisgICAgICAgIHYgPSBpbl8oWzEsIDIsIDNdKQorICAgICAgICBhID0gc2ltcGxl
X2F0dHIoInRlc3QiKQorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcikgYXMg
ZToKKyAgICAgICAgICAgIHYoTm9uZSwgYSwgTm9uZSkKKyAgICAgICAgYXNzZXJ0ICgKKyAgICAg
ICAgICAgICIndGVzdCcgbXVzdCBiZSBpbiBbMSwgMiwgM10gKGdvdCBOb25lKSIsCisgICAgICAg
ICkgPT0gZS52YWx1ZS5hcmdzCisKKyAgICBkZWYgdGVzdF9yZXByKHNlbGYpOgorICAgICAgICAi
IiIKKyAgICAgICAgUmV0dXJuZWQgdmFsaWRhdG9yIGhhcyBhIHVzZWZ1bCBgX19yZXByX19gLgor
ICAgICAgICAiIiIKKyAgICAgICAgdiA9IGluXyhbMywgNCwgNV0pCisgICAgICAgIGFzc2VydCgK
KyAgICAgICAgICAgICgiPGluXyB2YWxpZGF0b3Igd2l0aCBvcHRpb25zIFszLCA0LCA1XT4iKQor
ICAgICAgICApID09IHJlcHIodikKKworCitkZWYgdGVzdF9oYXNoYWJpbGl0eSgpOgorICAgICIi
IgorICAgIFZhbGlkYXRvciBjbGFzc2VzIGFyZSBoYXNoYWJsZS4KKyAgICAiIiIKKyAgICBmb3Ig
b2JqX25hbWUgaW4gZGlyKHZhbGlkYXRvcl9tb2R1bGUpOgorICAgICAgICBvYmogPSBnZXRhdHRy
KHZhbGlkYXRvcl9tb2R1bGUsIG9ial9uYW1lKQorICAgICAgICBpZiBub3QgaGFzKG9iaik6Cisg
ICAgICAgICAgICBjb250aW51ZQorICAgICAgICBoYXNoX2Z1bmMgPSBnZXRhdHRyKG9iaiwgJ19f
aGFzaF9fJywgTm9uZSkKKyAgICAgICAgYXNzZXJ0IGhhc2hfZnVuYyBpcyBub3QgTm9uZQorICAg
ICAgICBhc3NlcnQgaGFzaF9mdW5jIGlzIG5vdCBvYmplY3QuX19oYXNoX18KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYXR0cnMvdGVzdHMvdXRpbHMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3V0aWxzLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM2YjYyNDk4MWU5YjczNjgyNGI3Mzk4MjI4MTk4N2I0N2IyMjRmZTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3V0aWxzLnB5CkBAIC0wLDAgKzEsMjM3IEBA
CisiIiIKK0NvbW1vbiBoZWxwZXIgZnVuY3Rpb25zIGZvciB0ZXN0cy4KKyIiIgorCitmcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9u
CisKK2ltcG9ydCBrZXl3b3JkCitpbXBvcnQgc3RyaW5nCisKK2Zyb20gY29sbGVjdGlvbnMgaW1w
b3J0IE9yZGVyZWREaWN0CisKK2Zyb20gaHlwb3RoZXNpcyBpbXBvcnQgc3RyYXRlZ2llcyBhcyBz
dAorCitpbXBvcnQgYXR0cgorCitmcm9tIGF0dHIgaW1wb3J0IEF0dHJpYnV0ZQorZnJvbSBhdHRy
Ll9tYWtlIGltcG9ydCBOT1RISU5HLCBtYWtlX2NsYXNzCisKKworZGVmIHNpbXBsZV9jbGFzcyhj
bXA9RmFsc2UsIHJlcHI9RmFsc2UsIGhhc2g9RmFsc2UsIHN0cj1GYWxzZSwgc2xvdHM9RmFsc2Us
CisgICAgICAgICAgICAgICAgIGZyb3plbj1GYWxzZSk6CisgICAgIiIiCisgICAgUmV0dXJuIGEg
bmV3IHNpbXBsZSBjbGFzcy4KKyAgICAiIiIKKyAgICByZXR1cm4gbWFrZV9jbGFzcygKKyAgICAg
ICAgIkMiLCBbImEiLCAiYiJdLAorICAgICAgICBjbXA9Y21wLCByZXByPXJlcHIsIGhhc2g9aGFz
aCwgaW5pdD1UcnVlLCBzbG90cz1zbG90cywgc3RyPXN0ciwKKyAgICAgICAgZnJvemVuPWZyb3pl
biwKKyAgICApCisKKworZGVmIHNpbXBsZV9hdHRyKG5hbWUsIGRlZmF1bHQ9Tk9USElORywgdmFs
aWRhdG9yPU5vbmUsIHJlcHI9VHJ1ZSwKKyAgICAgICAgICAgICAgICBjbXA9VHJ1ZSwgaGFzaD1O
b25lLCBpbml0PVRydWUpOgorICAgICIiIgorICAgIFJldHVybiBhbiBhdHRyaWJ1dGUgd2l0aCBh
IG5hbWUgYW5kIG5vIG90aGVyIGJlbGxzIGFuZCB3aGlzdGxlcy4KKyAgICAiIiIKKyAgICByZXR1
cm4gQXR0cmlidXRlKAorICAgICAgICBuYW1lPW5hbWUsIGRlZmF1bHQ9ZGVmYXVsdCwgdmFsaWRh
dG9yPXZhbGlkYXRvciwgcmVwcj1yZXByLAorICAgICAgICBjbXA9Y21wLCBoYXNoPWhhc2gsIGlu
aXQ9aW5pdAorICAgICkKKworCitjbGFzcyBUZXN0U2ltcGxlQ2xhc3Mob2JqZWN0KToKKyAgICAi
IiIKKyAgICBUZXN0cyBmb3IgdGhlIHRlc3RpbmcgaGVscGVyIGZ1bmN0aW9uIGBtYWtlX2NsYXNz
YC4KKyAgICAiIiIKKyAgICBkZWYgdGVzdF9yZXR1cm5zX2NsYXNzKHNlbGYpOgorICAgICAgICAi
IiIKKyAgICAgICAgUmV0dXJucyBhIGNsYXNzIG9iamVjdC4KKyAgICAgICAgIiIiCisgICAgICAg
IGFzc2VydCB0eXBlIGlzIHNpbXBsZV9jbGFzcygpLl9fY2xhc3NfXworCisgICAgZGVmIHJldHVy
bnNfZGlzdGluY3RfY2xhc3NlcyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIEVhY2ggY2Fs
bCByZXR1cm5zIGEgY29tcGxldGVseSBuZXcgY2xhc3MuCisgICAgICAgICIiIgorICAgICAgICBh
c3NlcnQgc2ltcGxlX2NsYXNzKCkgaXMgbm90IHNpbXBsZV9jbGFzcygpCisKKworZGVmIGdlbl9h
dHRyX25hbWVzKCk6CisgICAgIiIiCisgICAgR2VuZXJhdGUgbmFtZXMgZm9yIGF0dHJpYnV0ZXMs
ICdhJy4uLid6JywgdGhlbiAnYWEnLi4uJ3p6Jy4KKworICAgIH43MDIgZGlmZmVyZW50IGF0dHJp
YnV0ZSBuYW1lcyBzaG91bGQgYmUgZW5vdWdoIGluIHByYWN0aWNlLgorCisgICAgU29tZSBzaG9y
dCBzdHJpbmdzIChzdWNoIGFzICdhcycpIGFyZSBrZXl3b3Jkcywgc28gd2Ugc2tpcCB0aGVtLgor
ICAgICIiIgorICAgIGxjID0gc3RyaW5nLmFzY2lpX2xvd2VyY2FzZQorICAgIGZvciBjIGluIGxj
OgorICAgICAgICB5aWVsZCBjCisgICAgZm9yIG91dGVyIGluIGxjOgorICAgICAgICBmb3IgaW5u
ZXIgaW4gbGM6CisgICAgICAgICAgICByZXMgPSBvdXRlciArIGlubmVyCisgICAgICAgICAgICBp
ZiBrZXl3b3JkLmlza2V5d29yZChyZXMpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAg
ICAgICAgICB5aWVsZCBvdXRlciArIGlubmVyCisKKworZGVmIG1heWJlX3VuZGVyc2NvcmVfcHJl
Zml4KHNvdXJjZSk6CisgICAgIiIiCisgICAgQSBnZW5lcmF0b3IgdG8gc29tZXRpbWVzIHByZXBl
bmQgYW4gdW5kZXJzY29yZS4KKyAgICAiIiIKKyAgICB0b191bmRlcnNjb3JlID0gRmFsc2UKKyAg
ICBmb3IgdmFsIGluIHNvdXJjZToKKyAgICAgICAgeWllbGQgdmFsIGlmIG5vdCB0b191bmRlcnNj
b3JlIGVsc2UgJ18nICsgdmFsCisgICAgICAgIHRvX3VuZGVyc2NvcmUgPSBub3QgdG9fdW5kZXJz
Y29yZQorCisKK2RlZiBfY3JlYXRlX2h5cF9jbGFzcyhhdHRycyk6CisgICAgIiIiCisgICAgQSBo
ZWxwZXIgZnVuY3Rpb24gZm9yIEh5cG90aGVzaXMgdG8gZ2VuZXJhdGUgYXR0cnMgY2xhc3Nlcy4K
KyAgICAiIiIKKyAgICByZXR1cm4gbWFrZV9jbGFzcygKKyAgICAgICAgIkh5cENsYXNzIiwgZGlj
dCh6aXAoZ2VuX2F0dHJfbmFtZXMoKSwgYXR0cnMpKQorICAgICkKKworCitkZWYgX2NyZWF0ZV9o
eXBfbmVzdGVkX3N0cmF0ZWd5KHNpbXBsZV9jbGFzc19zdHJhdGVneSk6CisgICAgIiIiCisgICAg
Q3JlYXRlIGEgcmVjdXJzaXZlIGF0dHJzIGNsYXNzLgorCisgICAgR2l2ZW4gYSBzdHJhdGVneSBm
b3IgYnVpbGRpbmcgKHNpbXBsZXIpIGNsYXNzZXMsIGNyZWF0ZSBhbmQgcmV0dXJuCisgICAgYSBz
dHJhdGVneSBmb3IgYnVpbGRpbmcgY2xhc3NlcyB0aGF0IGhhdmUgYXMgYW4gYXR0cmlidXRlOiBl
aXRoZXIganVzdAorICAgIHRoZSBzaW1wbGVyIGNsYXNzLCBhIGxpc3Qgb2Ygc2ltcGxlciBjbGFz
c2VzLCBhIHR1cGxlIG9mIHNpbXBsZXIgY2xhc3NlcywKKyAgICBhbiBvcmRlcmVkIGRpY3Qgb3Ig
YSBkaWN0IG1hcHBpbmcgdGhlIHN0cmluZyAiY2xzIiB0byBhIHNpbXBsZXIgY2xhc3MuCisgICAg
IiIiCisgICAgIyBVc2UgYSB0dXBsZSBzdHJhdGVneSB0byBjb21iaW5lIHNpbXBsZSBhdHRyaWJ1
dGVzIGFuZCBhbiBhdHRyIGNsYXNzLgorICAgIGRlZiBqdXN0X2NsYXNzKHR1cCk6CisgICAgICAg
IGNvbWJpbmVkX2F0dHJzID0gbGlzdCh0dXBbMF0pCisgICAgICAgIGNvbWJpbmVkX2F0dHJzLmFw
cGVuZChhdHRyLmliKGRlZmF1bHQ9YXR0ci5GYWN0b3J5KHR1cFsxXSkpKQorICAgICAgICByZXR1
cm4gX2NyZWF0ZV9oeXBfY2xhc3MoY29tYmluZWRfYXR0cnMpCisKKyAgICBkZWYgbGlzdF9vZl9j
bGFzcyh0dXApOgorICAgICAgICBkZWZhdWx0ID0gYXR0ci5GYWN0b3J5KGxhbWJkYTogW3R1cFsx
XSgpXSkKKyAgICAgICAgY29tYmluZWRfYXR0cnMgPSBsaXN0KHR1cFswXSkKKyAgICAgICAgY29t
YmluZWRfYXR0cnMuYXBwZW5kKGF0dHIuaWIoZGVmYXVsdD1kZWZhdWx0KSkKKyAgICAgICAgcmV0
dXJuIF9jcmVhdGVfaHlwX2NsYXNzKGNvbWJpbmVkX2F0dHJzKQorCisgICAgZGVmIHR1cGxlX29m
X2NsYXNzKHR1cCk6CisgICAgICAgIGRlZmF1bHQgPSBhdHRyLkZhY3RvcnkobGFtYmRhOiAodHVw
WzFdKCksKSkKKyAgICAgICAgY29tYmluZWRfYXR0cnMgPSBsaXN0KHR1cFswXSkKKyAgICAgICAg
Y29tYmluZWRfYXR0cnMuYXBwZW5kKGF0dHIuaWIoZGVmYXVsdD1kZWZhdWx0KSkKKyAgICAgICAg
cmV0dXJuIF9jcmVhdGVfaHlwX2NsYXNzKGNvbWJpbmVkX2F0dHJzKQorCisgICAgZGVmIGRpY3Rf
b2ZfY2xhc3ModHVwKToKKyAgICAgICAgZGVmYXVsdCA9IGF0dHIuRmFjdG9yeShsYW1iZGE6IHsi
Y2xzIjogdHVwWzFdKCl9KQorICAgICAgICBjb21iaW5lZF9hdHRycyA9IGxpc3QodHVwWzBdKQor
ICAgICAgICBjb21iaW5lZF9hdHRycy5hcHBlbmQoYXR0ci5pYihkZWZhdWx0PWRlZmF1bHQpKQor
ICAgICAgICByZXR1cm4gX2NyZWF0ZV9oeXBfY2xhc3MoY29tYmluZWRfYXR0cnMpCisKKyAgICBk
ZWYgb3JkZXJlZGRpY3Rfb2ZfY2xhc3ModHVwKToKKyAgICAgICAgZGVmYXVsdCA9IGF0dHIuRmFj
dG9yeShsYW1iZGE6IE9yZGVyZWREaWN0KFsoImNscyIsIHR1cFsxXSgpKV0pKQorICAgICAgICBj
b21iaW5lZF9hdHRycyA9IGxpc3QodHVwWzBdKQorICAgICAgICBjb21iaW5lZF9hdHRycy5hcHBl
bmQoYXR0ci5pYihkZWZhdWx0PWRlZmF1bHQpKQorICAgICAgICByZXR1cm4gX2NyZWF0ZV9oeXBf
Y2xhc3MoY29tYmluZWRfYXR0cnMpCisKKyAgICAjIEEgc3RyYXRlZ3kgcHJvZHVjaW5nIHR1cGxl
cyBvZiB0aGUgZm9ybSAoW2xpc3Qgb2YgYXR0cmlidXRlc10sIDxnaXZlbgorICAgICMgY2xhc3Mg
c3RyYXRlZ3k+KS4KKyAgICBhdHRyc19hbmRfY2xhc3NlcyA9IHN0LnR1cGxlcyhsaXN0X29mX2F0
dHJzLCBzaW1wbGVfY2xhc3Nfc3RyYXRlZ3kpCisKKyAgICByZXR1cm4gc3Qub25lX29mKGF0dHJz
X2FuZF9jbGFzc2VzLm1hcChqdXN0X2NsYXNzKSwKKyAgICAgICAgICAgICAgICAgICAgIGF0dHJz
X2FuZF9jbGFzc2VzLm1hcChsaXN0X29mX2NsYXNzKSwKKyAgICAgICAgICAgICAgICAgICAgIGF0
dHJzX2FuZF9jbGFzc2VzLm1hcCh0dXBsZV9vZl9jbGFzcyksCisgICAgICAgICAgICAgICAgICAg
ICBhdHRyc19hbmRfY2xhc3Nlcy5tYXAoZGljdF9vZl9jbGFzcyksCisgICAgICAgICAgICAgICAg
ICAgICBhdHRyc19hbmRfY2xhc3Nlcy5tYXAob3JkZXJlZGRpY3Rfb2ZfY2xhc3MpKQorCisKK2Jh
cmVfYXR0cnMgPSBzdC5qdXN0KGF0dHIuaWIoZGVmYXVsdD1Ob25lKSkKK2ludF9hdHRycyA9IHN0
LmludGVnZXJzKCkubWFwKGxhbWJkYSBpOiBhdHRyLmliKGRlZmF1bHQ9aSkpCitzdHJfYXR0cnMg
PSBzdC50ZXh0KCkubWFwKGxhbWJkYSBzOiBhdHRyLmliKGRlZmF1bHQ9cykpCitmbG9hdF9hdHRy
cyA9IHN0LmZsb2F0cygpLm1hcChsYW1iZGEgZjogYXR0ci5pYihkZWZhdWx0PWYpKQorZGljdF9h
dHRycyA9IChzdC5kaWN0aW9uYXJpZXMoa2V5cz1zdC50ZXh0KCksIHZhbHVlcz1zdC5pbnRlZ2Vy
cygpKQorICAgICAgICAgICAgICAubWFwKGxhbWJkYSBkOiBhdHRyLmliKGRlZmF1bHQ9ZCkpKQor
CitzaW1wbGVfYXR0cnNfd2l0aG91dF9tZXRhZGF0YSA9IChiYXJlX2F0dHJzIHwgaW50X2F0dHJz
IHwgc3RyX2F0dHJzIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0X2F0
dHJzIHwgZGljdF9hdHRycykKKworCitAc3QuY29tcG9zaXRlCitkZWYgc2ltcGxlX2F0dHJzX3dp
dGhfbWV0YWRhdGEoZHJhdyk6CisgICAgIiIiCisgICAgQ3JlYXRlIGEgc2ltcGxlIGF0dHJpYnV0
ZSB3aXRoIGFyYml0cmFyeSBtZXRhZGF0YS4KKyAgICAiIiIKKyAgICBjX2F0dHIgPSBkcmF3KHNp
bXBsZV9hdHRycykKKyAgICBrZXlzID0gc3QuYm9vbGVhbnMoKSB8IHN0LmJpbmFyeSgpIHwgc3Qu
aW50ZWdlcnMoKSB8IHN0LnRleHQoKQorICAgIHZhbHMgPSBzdC5ib29sZWFucygpIHwgc3QuYmlu
YXJ5KCkgfCBzdC5pbnRlZ2VycygpIHwgc3QudGV4dCgpCisgICAgbWV0YWRhdGEgPSBkcmF3KHN0
LmRpY3Rpb25hcmllcyhrZXlzPWtleXMsIHZhbHVlcz12YWxzKSkKKworICAgIHJldHVybiBhdHRy
LmliKGNfYXR0ci5fZGVmYXVsdCwgY19hdHRyLl92YWxpZGF0b3IsIGNfYXR0ci5yZXByLAorICAg
ICAgICAgICAgICAgICAgIGNfYXR0ci5jbXAsIGNfYXR0ci5oYXNoLCBjX2F0dHIuaW5pdCwgY19h
dHRyLmNvbnZlcnQsCisgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEpCisKKworc2ltcGxlX2F0
dHJzID0gc2ltcGxlX2F0dHJzX3dpdGhvdXRfbWV0YWRhdGEgfCBzaW1wbGVfYXR0cnNfd2l0aF9t
ZXRhZGF0YSgpCisKKyMgUHl0aG9uIGZ1bmN0aW9ucyBzdXBwb3J0IHVwIHRvIDI1NSBhcmd1bWVu
dHMuCitsaXN0X29mX2F0dHJzID0gc3QubGlzdHMoc2ltcGxlX2F0dHJzLCBhdmVyYWdlX3NpemU9
MywgbWF4X3NpemU9OSkKKworCitAc3QuY29tcG9zaXRlCitkZWYgc2ltcGxlX2NsYXNzZXMoZHJh
dywgc2xvdHM9Tm9uZSwgZnJvemVuPU5vbmUsIHByaXZhdGVfYXR0cnM9Tm9uZSk6CisgICAgIiIi
CisgICAgQSBzdHJhdGVneSB0aGF0IGdlbmVyYXRlcyBjbGFzc2VzIHdpdGggZGVmYXVsdCBub24t
YXR0ciBhdHRyaWJ1dGVzLgorCisgICAgRm9yIGV4YW1wbGUsIHRoaXMgc3RyYXRlZ3kgbWlnaHQg
Z2VuZXJhdGUgYSBjbGFzcyBzdWNoIGFzOgorCisgICAgQGF0dHIucyhzbG90cz1UcnVlLCBmcm96
ZW49VHJ1ZSkKKyAgICBjbGFzcyBIeXBDbGFzczoKKyAgICAgICAgYSA9IGF0dHIuaWIoZGVmYXVs
dD0xKQorICAgICAgICBfYiA9IGF0dHIuaWIoZGVmYXVsdD1Ob25lKQorICAgICAgICBjID0gYXR0
ci5pYihkZWZhdWx0PSd0ZXh0JykKKyAgICAgICAgX2QgPSBhdHRyLmliKGRlZmF1bHQ9MS4wKQor
ICAgICAgICBjID0gYXR0ci5pYihkZWZhdWx0PXsndCc6IDF9KQorCisgICAgQnkgZGVmYXVsdCwg
YWxsIGNvbWJpbmF0aW9ucyBvZiBzbG90cyBhbmQgZnJvemVuIGNsYXNzZXMgd2lsbCBiZSBnZW5l
cmF0ZWQuCisgICAgSWYgYHNsb3RzPVRydWVgIGlzIHBhc3NlZCBpbiwgb25seSBzbG90cyBjbGFz
c2VzIHdpbGwgYmUgZ2VuZXJhdGVkLCBhbmQKKyAgICBpZiBgc2xvdHM9RmFsc2VgIGlzIHBhc3Nl
ZCBpbiwgbm8gc2xvdCBjbGFzc2VzIHdpbGwgYmUgZ2VuZXJhdGVkLiBUaGUgc2FtZQorICAgIGFw
cGxpZXMgdG8gYGZyb3plbmAuCisKKyAgICBCeSBkZWZhdWx0LCBzb21lIGF0dHJpYnV0ZXMgd2ls
bCBiZSBwcml2YXRlIChpLmUuIHByZWZpeGVkIHdpdGggYW4KKyAgICB1bmRlcnNjb3JlKS4gSWYg
YHByaXZhdGVfYXR0cnM9VHJ1ZWAgaXMgcGFzc2VkIGluLCBhbGwgYXR0cmlidXRlcyB3aWxsIGJl
CisgICAgcHJpdmF0ZSwgYW5kIGlmIGBwcml2YXRlX2F0dHJzPUZhbHNlYCwgbm8gYXR0cmlidXRl
cyB3aWxsIGJlIHByaXZhdGUuCisgICAgIiIiCisgICAgYXR0cnMgPSBkcmF3KGxpc3Rfb2ZfYXR0
cnMpCisgICAgZnJvemVuX2ZsYWcgPSBkcmF3KHN0LmJvb2xlYW5zKCkpIGlmIGZyb3plbiBpcyBO
b25lIGVsc2UgZnJvemVuCisgICAgc2xvdHNfZmxhZyA9IGRyYXcoc3QuYm9vbGVhbnMoKSkgaWYg
c2xvdHMgaXMgTm9uZSBlbHNlIHNsb3RzCisKKyAgICBpZiBwcml2YXRlX2F0dHJzIGlzIE5vbmU6
CisgICAgICAgIGF0dHJfbmFtZXMgPSBtYXliZV91bmRlcnNjb3JlX3ByZWZpeChnZW5fYXR0cl9u
YW1lcygpKQorICAgIGVsaWYgcHJpdmF0ZV9hdHRycyBpcyBUcnVlOgorICAgICAgICBhdHRyX25h
bWVzID0gKCdfJyArIG4gZm9yIG4gaW4gZ2VuX2F0dHJfbmFtZXMoKSkKKyAgICBlbGlmIHByaXZh
dGVfYXR0cnMgaXMgRmFsc2U6CisgICAgICAgIGF0dHJfbmFtZXMgPSBnZW5fYXR0cl9uYW1lcygp
CisKKyAgICBjbHNfZGljdCA9IGRpY3QoemlwKGF0dHJfbmFtZXMsIGF0dHJzKSkKKyAgICBwb3N0
X2luaXRfZmxhZyA9IGRyYXcoc3QuYm9vbGVhbnMoKSkKKyAgICBpZiBwb3N0X2luaXRfZmxhZzoK
KyAgICAgICAgZGVmIHBvc3RfaW5pdChzZWxmKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAg
Y2xzX2RpY3RbIl9fYXR0cnNfcG9zdF9pbml0X18iXSA9IHBvc3RfaW5pdAorCisgICAgcmV0dXJu
IG1ha2VfY2xhc3MoCisgICAgICAgICJIeXBDbGFzcyIsCisgICAgICAgIGNsc19kaWN0LAorICAg
ICAgICBzbG90cz1zbG90c19mbGFnLAorICAgICAgICBmcm96ZW49ZnJvemVuX2ZsYWcsCisgICAg
KQorCisKKyMgc3QucmVjdXJzaXZlIHdvcmtzIGJ5IHRha2luZyBhIGJhc2Ugc3RyYXRlZ3kgKGlu
IHRoaXMgY2FzZSwgc2ltcGxlX2NsYXNzZXMpCisjIGFuZCBhIHNwZWNpYWwgZnVuY3Rpb24uICBU
aGlzIGZ1bmN0aW9uIHJlY2VpdmVzIGEgc3RyYXRlZ3ksIGFuZCByZXR1cm5zCisjIGFub3RoZXIg
c3RyYXRlZ3kgKGJ1aWxkaW5nIG9uIHRvcCBvZiB0aGUgYmFzZSBzdHJhdGVneSkuCituZXN0ZWRf
Y2xhc3NlcyA9IHN0LnJlY3Vyc2l2ZSgKKyAgICBzaW1wbGVfY2xhc3NlcygpLAorICAgIF9jcmVh
dGVfaHlwX25lc3RlZF9zdHJhdGVneSwKKyAgICBtYXhfbGVhdmVzPTEwCispCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2F0dHJzL3Rlc3RzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy93M2Mt
aW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZWM5NzBkMDg3OTE5MDk5MzA2OWUzN2VlMWJkYTRkOTlm
OGNmNjBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy93M2MtaW1wb3J0Lmxv
ZwpAQCAtMCwwICsxLDI5IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25l
CitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL19faW5pdF9fLnB5
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0X2Fubm90YXRpb25zLnB5CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0
cy90ZXN0X2NvbmZpZy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVzdHMvdGVzdF9jb252ZXJ0ZXJzLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9hdHRycy90ZXN0cy90ZXN0X2RhcmtfbWFnaWMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rl
c3RfZHVuZGVycy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVzdHMvdGVzdF9maWx0ZXJzLnB5CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9h
dHRycy90ZXN0cy90ZXN0X2Z1bmNzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0X2luaXRfc3Vi
Y2xhc3MucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3RfbWFrZS5weQorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVz
dHMvdGVzdF9zbG90cy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVzdHMvdGVzdF92YWxpZGF0b3JzLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9hdHRycy90ZXN0cy91dGlscy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90b3guaW5p
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9hdHRycy90b3guaW5pCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwMmMzMzAxMDI1ZWNjZGEyNTc1NWE4
NDcxZTJiNGMyYTlhNDFhNzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3RveC5pbmkK
QEAgLTAsMCArMSw4MyBAQAorW3RveF0KK2Vudmxpc3QgPSBpc29ydCxweTI3LHB5MzQscHkzNSxw
eTM2LHB5cHkscHlweTMsZmxha2U4LG1hbmlmZXN0LGRvY3MscmVhZG1lLGNoYW5nZWxvZyxjb3Zl
cmFnZS1yZXBvcnQKKworCitbdGVzdGVudl0KKyMgUHJldmVudCByYW5kb20gc2V0dXB0b29scy9w
aXAgYnJlYWthZ2VzIGxpa2UKKyMgaHR0cHM6Ly9naXRodWIuY29tL3B5cGEvc2V0dXB0b29scy9p
c3N1ZXMvMTA0MiBmcm9tIGJyZWFraW5nIG91ciBidWlsZHMuCitzZXRlbnYgPQorICAgIFZJUlRV
QUxFTlZfTk9fRE9XTkxPQUQ9MQorZGVwcyA9IC1yZGV2LXJlcXVpcmVtZW50cy50eHQKK2NvbW1h
bmRzID0gcHl0aG9uIC1tIHB5dGVzdCB7cG9zYXJnc30KKworCitbdGVzdGVudjpweTI3XQorZGVw
cyA9IC1yZGV2LXJlcXVpcmVtZW50cy50eHQKK2NvbW1hbmRzID0gY292ZXJhZ2UgcnVuIC0tcGFy
YWxsZWwgLW0gcHl0ZXN0IHtwb3NhcmdzfQorCisKK1t0ZXN0ZW52OnB5MzZdCitkZXBzID0gLXJk
ZXYtcmVxdWlyZW1lbnRzLnR4dAorY29tbWFuZHMgPSBjb3ZlcmFnZSBydW4gLS1wYXJhbGxlbCAt
bSBweXRlc3Qge3Bvc2FyZ3N9CisKKworIyBVc2VzIGRlZmF1bHQgYmFzZXB5dGhvbiBvdGhlcndp
c2UgcmVwb3J0aW5nIGRvZXNuJ3Qgd29yayBvbiBUcmF2aXMgd2hlcmUKKyMgUHl0aG9uIDMuNiBp
cyBvbmx5IGF2YWlsYWJsZSBpbiAzLjYgam9icy4KK1t0ZXN0ZW52OmNvdmVyYWdlLXJlcG9ydF0K
K2RlcHMgPSBjb3ZlcmFnZQorc2tpcF9pbnN0YWxsID0gdHJ1ZQorY29tbWFuZHMgPQorICAgIGNv
dmVyYWdlIGNvbWJpbmUKKyAgICBjb3ZlcmFnZSByZXBvcnQKKworCitbdGVzdGVudjpmbGFrZThd
CitiYXNlcHl0aG9uID0gcHl0aG9uMy42CisjIE5lZWRzIGEgZnVsbCBpbnN0YWxsIHNvIGlzb3J0
IGNhbiBkZXRlcm1pbmUgb3duL2ZvcmVpZ24gaW1wb3J0cy4KK2RlcHMgPQorICAgIC1yZGV2LXJl
cXVpcmVtZW50cy50eHQKKyAgICBmbGFrZTgKKyAgICBmbGFrZTgtaXNvcnQKK2NvbW1hbmRzID0g
Zmxha2U4IHNyYyB0ZXN0cyBzZXR1cC5weSBjb25mdGVzdC5weSBkb2NzL2NvbmYucHkKKworCitb
dGVzdGVudjppc29ydF0KK2Jhc2VweXRob24gPSBweXRob24zLjYKKyMgTmVlZHMgYSBmdWxsIGlu
c3RhbGwgc28gaXNvcnQgY2FuIGRldGVybWluZSBvd24vZm9yZWlnbiBpbXBvcnRzLgorZGVwcyA9
CisgICAgLXJkZXYtcmVxdWlyZW1lbnRzLnR4dAorICAgIGlzb3J0Citjb21tYW5kcyA9CisgICAg
aXNvcnQgLS1yZWN1cnNpdmUgc2V0dXAucHkgY29uZnRlc3QucHkgc3JjIHRlc3RzCisKKworW3Rl
c3RlbnY6ZG9jc10KK2Jhc2VweXRob24gPSBweXRob24zLjYKK3NldGVudiA9CisgICAgUFlUSE9O
SEFTSFNFRUQgPSAwCitkZXBzID0gLXJkb2NzLXJlcXVpcmVtZW50cy50eHQKK2NvbW1hbmRzID0K
KyAgICBzcGhpbngtYnVpbGQgLVcgLWIgaHRtbCAtZCB7ZW52dG1wZGlyfS9kb2N0cmVlcyBkb2Nz
IGRvY3MvX2J1aWxkL2h0bWwKKyAgICBzcGhpbngtYnVpbGQgLVcgLWIgZG9jdGVzdCAtZCB7ZW52
dG1wZGlyfS9kb2N0cmVlcyBkb2NzIGRvY3MvX2J1aWxkL2h0bWwKKyAgICBweXRob24gLW0gZG9j
dGVzdCBSRUFETUUucnN0CisKKworW3Rlc3RlbnY6bWFuaWZlc3RdCitiYXNlcHl0aG9uID0gcHl0
aG9uMy42CitkZXBzID0gY2hlY2stbWFuaWZlc3QKK3NraXBfaW5zdGFsbCA9IHRydWUKK2NvbW1h
bmRzID0gY2hlY2stbWFuaWZlc3QKKworCitbdGVzdGVudjpyZWFkbWVdCitiYXNlcHl0aG9uID0g
cHl0aG9uMy42CitkZXBzID0gcmVhZG1lX3JlbmRlcmVyCitza2lwX2luc3RhbGwgPSB0cnVlCitj
b21tYW5kcyA9IHB5dGhvbiBzZXR1cC5weSBjaGVjayAtciAtcworCisKK1t0ZXN0ZW52OmNoYW5n
ZWxvZ10KK2Jhc2VweXRob24gPSBweXRob24zLjYKK2RlcHMgPSB0b3duY3JpZXIKK3NraXBfaW5z
dGFsbCA9IHRydWUKK2NvbW1hbmRzID0gdG93bmNyaWVyIC0tZHJhZnQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvYXR0cnMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3czYy1pbXBvcnQubG9nCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmEwNzBlOWQ0MzNhOGI2Y2EwMzgzNzRkZDMwMGU3NzJjMDZkOTg0MmEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2F0dHJzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMzEgQEAKK1Ro
ZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBv
c2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJ
bnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6
Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xz
L1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9U
IG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRp
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZp
bGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYXR0cnMvQVVUSE9SUy5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL0NIQU5HRUxPRy5yc3QK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2F0dHJzL0NPREVfT0ZfQ09ORFVDVC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL0NPTlRSSUJVVElO
Ry5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2F0dHJzL0xJQ0VOU0UKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL01BTklGRVNULmluCisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9hdHRycy9QVUxMX1JFUVVFU1RfVEVNUExBVEUubWQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL1JFQURNRS5yc3QK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2F0dHJzL2NvbmZ0ZXN0LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kZXYtcmVxdWlyZW1lbnRzLnR4
dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYXR0cnMvZG9jcy1yZXF1aXJlbWVudHMudHh0CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9weXByb2pl
Y3QudG9tbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYXR0cnMvc2V0dXAuY2ZnCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9zZXR1cC5weQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvYXR0cnMvdG94LmluaQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9DSEFOR0VMT0cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2Z1bmNzaWdzL0NIQU5HRUxPRwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNDJiMDE2YmI5OTRjYWExNDBiNDA2
MjM0OWQ5NmZhZTdhZmIzNmUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9DSEFO
R0VMT0cKQEAgLTAsMCArMSwyMDUgQEAKKzIwMTgtMDMtMjMgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBXUFQgdG9vbHMgdG8gYTFlYzMzMAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTM0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZml4LTE4MzkzNAor
CisgICAgICAgICogQ0hBTkdFTE9HOiBBZGRlZC4KKyAgICAgICAgKiBMSUNFTlNFOiBBZGRlZC4K
KyAgICAgICAgKiBNQU5JRkVTVC5pbjogQWRkZWQuCisgICAgICAgICogTWFrZWZpbGU6IEFkZGVk
LgorICAgICAgICAqIFJFQURNRS5yc3Q6IEFkZGVkLgorICAgICAgICAqIGRvY3MvTWFrZWZpbGU6
IEFkZGVkLgorICAgICAgICAqIGRvY3MvX3RlbXBsYXRlcy9wYWdlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGRvY3MvX3RlbXBsYXRlcy93M2MtaW1wb3J0LmxvZzogQ29waWVkIGZyb20gTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93M2MtaW1wb3J0Lmxv
Zy4KKyAgICAgICAgKiBkb2NzL2NvbmYucHk6IEFkZGVkLgorICAgICAgICAqIGRvY3MvaW5kZXgu
cnN0OiBBZGRlZC4KKyAgICAgICAgKiBkb2NzL3czYy1pbXBvcnQubG9nOiBDb3BpZWQgZnJvbSBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL3cz
Yy1pbXBvcnQubG9nLgorICAgICAgICAqIGZ1bmNzaWdzL19faW5pdF9fLnB5OiBBZGRlZC4KKyAg
ICAgICAgKGZvcm1hdGFubm90YXRpb24pOgorICAgICAgICAoX2dldF91c2VyX2RlZmluZWRfbWV0
aG9kKToKKyAgICAgICAgKHNpZ25hdHVyZSk6CisgICAgICAgIChfdm9pZCk6CisgICAgICAgIChf
ZW1wdHkpOgorICAgICAgICAoX1BhcmFtZXRlcktpbmQpOgorICAgICAgICAoX1BhcmFtZXRlcktp
bmQuX19uZXdfXyk6CisgICAgICAgIChfUGFyYW1ldGVyS2luZC5fX3N0cl9fKToKKyAgICAgICAg
KF9QYXJhbWV0ZXJLaW5kLl9fcmVwcl9fKToKKyAgICAgICAgKFBhcmFtZXRlcik6CisgICAgICAg
IChQYXJhbWV0ZXIuX19pbml0X18pOgorICAgICAgICAoUGFyYW1ldGVyLm5hbWUpOgorICAgICAg
ICAoUGFyYW1ldGVyLmRlZmF1bHQpOgorICAgICAgICAoUGFyYW1ldGVyLmFubm90YXRpb24pOgor
ICAgICAgICAoUGFyYW1ldGVyLmtpbmQpOgorICAgICAgICAoUGFyYW1ldGVyLnJlcGxhY2UpOgor
ICAgICAgICAoUGFyYW1ldGVyLl9fc3RyX18pOgorICAgICAgICAoUGFyYW1ldGVyLl9fcmVwcl9f
KToKKyAgICAgICAgKFBhcmFtZXRlci5fX2hhc2hfXyk6CisgICAgICAgIChQYXJhbWV0ZXIuX19l
cV9fKToKKyAgICAgICAgKFBhcmFtZXRlci5fX25lX18pOgorICAgICAgICAoQm91bmRBcmd1bWVu
dHMpOgorICAgICAgICAoQm91bmRBcmd1bWVudHMuX19pbml0X18pOgorICAgICAgICAoQm91bmRB
cmd1bWVudHMuc2lnbmF0dXJlKToKKyAgICAgICAgKEJvdW5kQXJndW1lbnRzLmFyZ3MpOgorICAg
ICAgICAoQm91bmRBcmd1bWVudHMua3dhcmdzKToKKyAgICAgICAgKEJvdW5kQXJndW1lbnRzLl9f
aGFzaF9fKToKKyAgICAgICAgKEJvdW5kQXJndW1lbnRzLl9fZXFfXyk6CisgICAgICAgIChCb3Vu
ZEFyZ3VtZW50cy5fX25lX18pOgorICAgICAgICAoU2lnbmF0dXJlKToKKyAgICAgICAgKFNpZ25h
dHVyZS5fX2luaXRfXyk6CisgICAgICAgIChTaWduYXR1cmUuZnJvbV9mdW5jdGlvbik6CisgICAg
ICAgIChTaWduYXR1cmUucGFyYW1ldGVycyk6CisgICAgICAgIChTaWduYXR1cmUucmV0dXJuX2Fu
bm90YXRpb24pOgorICAgICAgICAoU2lnbmF0dXJlLnJlcGxhY2UpOgorICAgICAgICAoU2lnbmF0
dXJlLl9faGFzaF9fKToKKyAgICAgICAgKFNpZ25hdHVyZS5fX2VxX18pOgorICAgICAgICAoU2ln
bmF0dXJlLl9fbmVfXyk6CisgICAgICAgIChTaWduYXR1cmUuX2JpbmQpOgorICAgICAgICAoU2ln
bmF0dXJlLmJpbmQpOgorICAgICAgICAoU2lnbmF0dXJlLmJpbmRfcGFydGlhbCk6CisgICAgICAg
IChTaWduYXR1cmUuX19zdHJfXyk6CisgICAgICAgICogZnVuY3NpZ3Mvb2RpY3QucHk6IEFkZGVk
LgorICAgICAgICAoT3JkZXJlZERpY3QpOgorICAgICAgICAoT3JkZXJlZERpY3QuX19pbml0X18p
OgorICAgICAgICAoT3JkZXJlZERpY3QuX19zZXRpdGVtX18pOgorICAgICAgICAoT3JkZXJlZERp
Y3QuX19kZWxpdGVtX18pOgorICAgICAgICAoT3JkZXJlZERpY3QuX19pdGVyX18pOgorICAgICAg
ICAoT3JkZXJlZERpY3QuX19yZXZlcnNlZF9fKToKKyAgICAgICAgKE9yZGVyZWREaWN0LmNsZWFy
KToKKyAgICAgICAgKE9yZGVyZWREaWN0LnBvcGl0ZW0pOgorICAgICAgICAoT3JkZXJlZERpY3Qu
a2V5cyk6CisgICAgICAgIChPcmRlcmVkRGljdC52YWx1ZXMpOgorICAgICAgICAoT3JkZXJlZERp
Y3QuaXRlbXMpOgorICAgICAgICAoT3JkZXJlZERpY3QuaXRlcmtleXMpOgorICAgICAgICAoT3Jk
ZXJlZERpY3QuaXRlcnZhbHVlcyk6CisgICAgICAgIChPcmRlcmVkRGljdC5pdGVyaXRlbXMpOgor
ICAgICAgICAoT3JkZXJlZERpY3QudXBkYXRlKToKKyAgICAgICAgKE9yZGVyZWREaWN0LnBvcCk6
CisgICAgICAgIChPcmRlcmVkRGljdC5zZXRkZWZhdWx0KToKKyAgICAgICAgKE9yZGVyZWREaWN0
Ll9fcmVwcl9fKToKKyAgICAgICAgKE9yZGVyZWREaWN0Ll9fcmVkdWNlX18pOgorICAgICAgICAo
T3JkZXJlZERpY3QuY29weSk6CisgICAgICAgIChPcmRlcmVkRGljdC5mcm9ta2V5cyk6CisgICAg
ICAgIChPcmRlcmVkRGljdC5fX2VxX18pOgorICAgICAgICAoT3JkZXJlZERpY3QuX19uZV9fKToK
KyAgICAgICAgKE9yZGVyZWREaWN0LnZpZXdrZXlzKToKKyAgICAgICAgKE9yZGVyZWREaWN0LnZp
ZXd2YWx1ZXMpOgorICAgICAgICAoT3JkZXJlZERpY3Qudmlld2l0ZW1zKToKKyAgICAgICAgKiBm
dW5jc2lncy92ZXJzaW9uLnB5OiBBZGRlZC4KKyAgICAgICAgKiBmdW5jc2lncy93M2MtaW1wb3J0
LmxvZzogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93M2MtaW1wb3J0LmxvZy4KKyAgICAgICAgKiByZXF1aXJlbWVudHMvZGV2ZWxv
cG1lbnQudHh0OiBBZGRlZC4KKyAgICAgICAgKiByZXF1aXJlbWVudHMvcHJvZHVjdGlvbi50eHQ6
IEFkZGVkLgorICAgICAgICAqIHJlcXVpcmVtZW50cy93M2MtaW1wb3J0LmxvZzogQ29waWVkIGZy
b20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93M2Mt
aW1wb3J0LmxvZy4KKyAgICAgICAgKiBzZXR1cC5jZmc6IEFkZGVkLgorICAgICAgICAqIHNldHVw
LnB5OiBBZGRlZC4KKyAgICAgICAgKGxvYWRfdmVyc2lvbik6CisgICAgICAgIChsb2FkX3JzdCk6
CisgICAgICAgICogdGVzdHMvX19pbml0X18ucHk6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL3Rl
c3RfZm9ybWF0YW5ub3RhdGlvbi5weTogQWRkZWQuCisgICAgICAgIChUZXN0Rm9ybWF0QW5ub3Rh
dGlvbik6CisgICAgICAgIChUZXN0Rm9ybWF0QW5ub3RhdGlvbi50ZXN0X3N0cmluZyk6CisgICAg
ICAgIChUZXN0Rm9ybWF0QW5ub3RhdGlvbi50ZXN0X2J1aWx0aW5fdHlwZSk6CisgICAgICAgIChU
ZXN0Rm9ybWF0QW5ub3RhdGlvbi50ZXN0X3VzZXJfdHlwZSk6CisgICAgICAgIChUZXN0Rm9ybWF0
QW5ub3RhdGlvbi50ZXN0X3VzZXJfdHlwZS5kdW1teSk6CisgICAgICAgICogdGVzdHMvdGVzdF9m
dW5jc2lncy5weTogQWRkZWQuCisgICAgICAgIChUZXN0RnVuY3Rpb25TaWduYXR1cmVzKToKKyAg
ICAgICAgKFRlc3RGdW5jdGlvblNpZ25hdHVyZXMuc2lnbmF0dXJlKToKKyAgICAgICAgKFRlc3RG
dW5jdGlvblNpZ25hdHVyZXMudGVzdF96ZXJvX2FyZ3VtZW50cyk6CisgICAgICAgIChUZXN0RnVu
Y3Rpb25TaWduYXR1cmVzLnRlc3RfemVyb19hcmd1bWVudHMudGVzdCk6CisgICAgICAgIChUZXN0
RnVuY3Rpb25TaWduYXR1cmVzLnRlc3Rfc2luZ2xlX3Bvc2l0aW9uYWxfYXJndW1lbnQpOgorICAg
ICAgICAoVGVzdEZ1bmN0aW9uU2lnbmF0dXJlcy50ZXN0X3NpbmdsZV9wb3NpdGlvbmFsX2FyZ3Vt
ZW50LnRlc3QpOgorICAgICAgICAoVGVzdEZ1bmN0aW9uU2lnbmF0dXJlcy50ZXN0X3NpbmdsZV9r
ZXl3b3JkX2FyZ3VtZW50KToKKyAgICAgICAgKFRlc3RGdW5jdGlvblNpZ25hdHVyZXMudGVzdF9z
aW5nbGVfa2V5d29yZF9hcmd1bWVudC50ZXN0KToKKyAgICAgICAgKFRlc3RGdW5jdGlvblNpZ25h
dHVyZXMudGVzdF92YXJfYXJncyk6CisgICAgICAgIChUZXN0RnVuY3Rpb25TaWduYXR1cmVzLnRl
c3RfdmFyX2FyZ3MudGVzdCk6CisgICAgICAgIChUZXN0RnVuY3Rpb25TaWduYXR1cmVzLnRlc3Rf
a2V5d29yZHNfYXJncyk6CisgICAgICAgIChUZXN0RnVuY3Rpb25TaWduYXR1cmVzLnRlc3Rfa2V5
d29yZHNfYXJncy50ZXN0KToKKyAgICAgICAgKFRlc3RGdW5jdGlvblNpZ25hdHVyZXMudGVzdF9t
dWx0aXBsZV9hcmd1bWVudHMpOgorICAgICAgICAoVGVzdEZ1bmN0aW9uU2lnbmF0dXJlcy50ZXN0
X211bHRpcGxlX2FyZ3VtZW50cy50ZXN0KToKKyAgICAgICAgKFRlc3RGdW5jdGlvblNpZ25hdHVy
ZXMudGVzdF9oYXNfdmVyc2lvbik6CisgICAgICAgIChUZXN0RnVuY3Rpb25TaWduYXR1cmVzLnRl
c3RfcmVhZG1lKToKKyAgICAgICAgKFRlc3RGdW5jdGlvblNpZ25hdHVyZXMudGVzdF91bmJvdW5k
X21ldGhvZCk6CisgICAgICAgIChUZXN0RnVuY3Rpb25TaWduYXR1cmVzLnRlc3RfdW5ib3VuZF9t
ZXRob2QuVGVzdCk6CisgICAgICAgIChUZXN0RnVuY3Rpb25TaWduYXR1cmVzLnRlc3RfdW5ib3Vu
ZF9tZXRob2QuVGVzdC5tZXRob2QpOgorICAgICAgICAoVGVzdEZ1bmN0aW9uU2lnbmF0dXJlcy50
ZXN0X3VuYm91bmRfbWV0aG9kLlRlc3QubWV0aG9kX3dpdGhfYXJncyk6CisgICAgICAgICogdGVz
dHMvdGVzdF9pbnNwZWN0LnB5OiBBZGRlZC4KKyAgICAgICAgKFRlc3RTaWduYXR1cmVPYmplY3Qp
OgorICAgICAgICAoVGVzdFNpZ25hdHVyZU9iamVjdC5zaWduYXR1cmUpOgorICAgICAgICAoVGVz
dFNpZ25hdHVyZU9iamVjdC5fX2luaXRfXyk6CisgICAgICAgICh0ZXN0X3NpZ25hdHVyZV9vYmpl
Y3QpOgorICAgICAgICAodGVzdF9zaWduYXR1cmVfb2JqZWN0LnRlc3QpOgorICAgICAgICAodGVz
dF9zaWduYXR1cmVfb25fd2FyZ3MpOgorICAgICAgICAodGVzdF9zaWduYXR1cmVfb25fd2FyZ3Mu
dGVzdCk6CisgICAgICAgICh0ZXN0X3NpZ25hdHVyZV9vbl93a3dvbmx5KToKKyAgICAgICAgKHRl
c3Rfc2lnbmF0dXJlX29uX3drd29ubHkudGVzdCk6CisgICAgICAgICh0ZXN0X3NpZ25hdHVyZV9v
bl9jb21wbGV4X2FyZ3MpOgorICAgICAgICAodGVzdF9zaWduYXR1cmVfb25fY29tcGxleF9hcmdz
LnRlc3QpOgorICAgICAgICAodGVzdF9zaWduYXR1cmVfb25fbWV0aG9kKToKKyAgICAgICAgKHRl
c3Rfc2lnbmF0dXJlX29uX21ldGhvZC5UZXN0KToKKyAgICAgICAgKHRlc3Rfc2lnbmF0dXJlX29u
X21ldGhvZC5UZXN0LmZvbyk6CisgICAgICAgICh0ZXN0X3NpZ25hdHVyZV9vbl9jbGFzc21ldGhv
ZCk6CisgICAgICAgICh0ZXN0X3NpZ25hdHVyZV9vbl9jbGFzc21ldGhvZC5UZXN0KToKKyAgICAg
ICAgKHRlc3Rfc2lnbmF0dXJlX29uX2NsYXNzbWV0aG9kLlRlc3QuZm9vKToKKyAgICAgICAgKHRl
c3Rfc2lnbmF0dXJlX29uX3N0YXRpY21ldGhvZCk6CisgICAgICAgICh0ZXN0X3NpZ25hdHVyZV9v
bl9zdGF0aWNtZXRob2QuVGVzdCk6CisgICAgICAgICh0ZXN0X3NpZ25hdHVyZV9vbl9zdGF0aWNt
ZXRob2QuVGVzdC5mb28pOgorICAgICAgICAodGVzdF9zaWduYXR1cmVfb25fcGFydGlhbCk6Cisg
ICAgICAgICh0ZXN0X3NpZ25hdHVyZV9vbl9wYXJ0aWFsLnRlc3QpOgorICAgICAgICAodGVzdF9z
aWduYXR1cmVfb25fcGFydGlhbC5mb28pOgorICAgICAgICAodGVzdF9zaWduYXR1cmVfb25fZGVj
b3JhdGVkKToKKyAgICAgICAgKHRlc3Rfc2lnbmF0dXJlX29uX2RlY29yYXRlZC5kZWNvcmF0b3Ip
OgorICAgICAgICAodGVzdF9zaWduYXR1cmVfb25fZGVjb3JhdGVkLmRlY29yYXRvci53cmFwcGVy
KToKKyAgICAgICAgKHRlc3Rfc2lnbmF0dXJlX29uX2RlY29yYXRlZC5Gb28pOgorICAgICAgICAo
dGVzdF9zaWduYXR1cmVfb25fZGVjb3JhdGVkLkZvby5iYXIpOgorICAgICAgICAodGVzdF9zaWdu
YXR1cmVfb25fZGVjb3JhdGVkLkZvby5fX2NhbGxfXyk6CisgICAgICAgICh0ZXN0X3NpZ25hdHVy
ZV9vbl9jbGFzcyk6CisgICAgICAgICh0ZXN0X3NpZ25hdHVyZV9vbl9jbGFzcy5DKToKKyAgICAg
ICAgKHRlc3Rfc2lnbmF0dXJlX29uX2NsYXNzLkMuX19pbml0X18pOgorICAgICAgICAodGVzdF9z
aWduYXR1cmVfb25fY2xhc3MuQ00pOgorICAgICAgICAodGVzdF9zaWduYXR1cmVfb25fY2xhc3Mu
Q00uX19jYWxsX18pOgorICAgICAgICAodGVzdF9zaWduYXR1cmVfb25fY2xhc3MuQ00uX19uZXdf
Xyk6CisgICAgICAgICh0ZXN0X3NpZ25hdHVyZV9vbl9jbGFzcy5DTU0pOgorICAgICAgICAodGVz
dF9zaWduYXR1cmVfb25fY2xhc3MuQ01NLl9fbmV3X18pOgorICAgICAgICAodGVzdF9zaWduYXR1
cmVfb25fY2xhc3MuQ01NLl9fY2FsbF9fKToKKyAgICAgICAgKHRlc3Rfc2lnbmF0dXJlX29uX2Ns
YXNzLkNNLl9faW5pdF9fKToKKyAgICAgICAgKHRlc3Rfc2lnbmF0dXJlX2VxdWFsaXR5KToKKyAg
ICAgICAgKHRlc3Rfc2lnbmF0dXJlX2VxdWFsaXR5LmZvbyk6CisgICAgICAgICh0ZXN0X3NpZ25h
dHVyZV9lcXVhbGl0eS5iYXIpOgorICAgICAgICAodGVzdF9zaWduYXR1cmVfZXF1YWxpdHkuc3Bh
bSk6CisgICAgICAgICh0ZXN0X3NpZ25hdHVyZV9zdHIpOgorICAgICAgICAodGVzdF9zaWduYXR1
cmVfc3RyLmZvbyk6CisgICAgICAgICh0ZXN0X3NpZ25hdHVyZV9zdHJfcG9zaXRpb25hbF9vbmx5
KToKKyAgICAgICAgKHRlc3Rfc2lnbmF0dXJlX3N0cl9wb3NpdGlvbmFsX29ubHkudGVzdCk6Cisg
ICAgICAgICh0ZXN0X3NpZ25hdHVyZV9yZXBsYWNlX2Fubm8pOgorICAgICAgICAodGVzdF9zaWdu
YXR1cmVfcmVwbGFjZV9hbm5vLnRlc3QpOgorICAgICAgICAodGVzdF9zaWduYXR1cmVfYmluZF9r
d29ubHkpOgorICAgICAgICAodGVzdF9zaWduYXR1cmVfYmluZF9rd29ubHkudGVzdCk6CisgICAg
ICAgICh0ZXN0X3NpZ25hdHVyZV9iaW5kX2FyZ3VtZW50cyk6CisgICAgICAgICh0ZXN0X3NpZ25h
dHVyZV9iaW5kX2FyZ3VtZW50cy50ZXN0KToKKyAgICAgICAgKHRlc3Rfc2lnbmF0dXJlX2JpbmRf
cG9zaXRpb25hbF9vbmx5KToKKyAgICAgICAgKHRlc3Rfc2lnbmF0dXJlX2JpbmRfcG9zaXRpb25h
bF9vbmx5LnRlc3QpOgorICAgICAgICAqIHRlc3RzL3czYy1pbXBvcnQubG9nOiBDb3BpZWQgZnJv
bSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3czYy1p
bXBvcnQubG9nLgorICAgICAgICAqIHczYy1pbXBvcnQubG9nOiBBZGRlZC4KKworQ2hhbmdlbG9n
CistLS0tLS0tLS0KKworMC40ICgyMDEzLTEyLTIwKQorYGBgYGBgYGBgYGBgYGBgYAorKiBGaXgg
dW5ib3VuZCBtZXRob2RzIGdldHRpbmcgdGhlaXIgZmlyc3QgcGFyYW1ldGVyIGN1cnJpZWQKKyog
UHVibGlzaCBQeXRob24gd2hlZWwgcGFja2FnZXMKKworMC4zICgyMDEzLTA1LTI5KQorYGBgYGBg
YGBgYGBgYGBgYAorKiBGaXggYW5ub3RhdGlvbiBmb3JtYXR0aW5nIG9mIGJ1aWx0aW4gdHlwZXMg
b24gUHl0aG9uIDIueAorCiswLjIgKDIwMTItMDEtMDcpCitgYGBgYGBgYGBgYGBgYGBgCisqIFB5
UHkgY29tcGF0YWJpbGl0eQorCiswLjEgKDIwMTItMDEtMDYpCitgYGBgYGBgYGBgYGBgYGBgCisq
IEluaXRpYWwgcmVsZWFzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9MSUNFTlNFIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9mdW5jc2lncy9MSUNFTlNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlNTYzZDZmYmQ0ZDQ2YWJiNDk0Y2IxMDk4
NjA2N2E5NWJjNGMxNWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL0xJQ0VOU0UK
QEAgLTAsMCArMSwxMyBAQAorQ29weXJpZ2h0IDIwMTMgQWFyb24gSWxlcworCitMaWNlbnNlZCB1
bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKK3lv
dSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGlj
ZW5zZS4KK1lvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgIGh0dHA6
Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCitVbmxlc3MgcmVxdWlyZWQg
YnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCitkaXN0
cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJB
U0lTLAorV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhl
ciBleHByZXNzIG9yIGltcGxpZWQuCitTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBs
YW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCitsaW1pdGF0aW9ucyB1bmRlciB0aGUg
TGljZW5zZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvTUFOSUZFU1QuaW4gYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1
bmNzaWdzL01BTklGRVNULmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwYWJiNDJmMDRhMTgwNDI2MzU1NjBlZDNh
NjU2YmViMjQ5MjhmYmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL01BTklGRVNU
LmluCkBAIC0wLDAgKzEsNyBAQAorcmVjdXJzaXZlLWluY2x1ZGUgZG9jcyAqCityZWN1cnNpdmUt
aW5jbHVkZSB0ZXN0cyAqLnB5CitpbmNsdWRlICoucHkKK2luY2x1ZGUgQ0hBTkdFTE9HCitpbmNs
dWRlIExJQ0VOU0UKK2luY2x1ZGUgTUFOSUZFU1QuaW4KK2luY2x1ZGUgUkVBRE1FLnJzdApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9mdW5jc2lncy9NYWtlZmlsZSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvTWFrZWZpbGUK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZTIzMjkyMzFiNTY0YjVhMTFiYjJiYzA2YTA5MGJmNDAxNzQyZGJkYgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvTWFrZWZpbGUKQEAgLTAsMCArMSwzOSBAQAor
U0hFTEwgOj0gL2Jpbi9iYXNoCisKK2RlcHM6CisJcGlwIGluc3RhbGwgLS11cGdyYWRlIFwKKwkg
ICAgICAgICAgICAtciByZXF1aXJlbWVudHMvZGV2ZWxvcG1lbnQudHh0IFwKKwkgICAgICAgICAg
ICAtciByZXF1aXJlbWVudHMvcHJvZHVjdGlvbi50eHQKKworc2Rpc3Q6CisJcHl0aG9uIHNldHVw
LnB5IHNkaXN0CisJcHl0aG9uIHNldHVwLnB5IGJkaXN0X3doZWVsCisKK3JlZ2lzdGVyOgorCXB5
dGhvbiBzZXR1cC5weSByZWdpc3RlcgorCXB5dGhvbiBzZXR1cC5weSBzZGlzdCB1cGxvYWQKKwlw
eXRob24gc2V0dXAucHkgYmRpc3Rfd2hlZWwgdXBsb2FkCisKK3NpdGU6CisJY2QgZG9jczsgbWFr
ZSBodG1sCisKK3Rlc3Q6CisJY292ZXJhZ2UgcnVuIHNldHVwLnB5IHRlc3QKKwordW5pdHRlc3Q6
CisJY292ZXJhZ2UgcnVuIC1tIHVuaXR0ZXN0IGRpc2NvdmVyCisKK2xpbnQ6CisJZmxha2U4IC0t
ZXhpdC16ZXJvIGZ1bmNzaWdzIHRlc3RzCisKK2NvdmVyYWdlOgorCWNvdmVyYWdlIHJlcG9ydCAt
LXNob3ctbWlzc2luZworCitjbGVhbjoKKwlweXRob24gc2V0dXAucHkgY2xlYW4gLS1hbGwKKwlm
aW5kIC4gLXR5cGUgZiAtbmFtZSAiKi5weWMiIC1leGVjIHJtICd7fScgKworCWZpbmQgLiAtdHlw
ZSBkIC1uYW1lICJfX3B5Y2FjaGVfXyIgLWV4ZWMgcm1kaXIgJ3t9JyArCisJcm0gLXJmICouZWdn
LWluZm8gLmNvdmVyYWdlCisJY2QgZG9jczsgbWFrZSBjbGVhbgorCitkb2NzOiBzaXRlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2Z1bmNzaWdzL1JFQURNRS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL1JFQURNRS5y
c3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjA0YjdiNDIyY2Y1MWI2NzU4NjcwM2YyYWUwOWViODZjMWNlNmJhOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvUkVBRE1FLnJzdApAQCAtMCwwICsxLDgz
IEBACitmdW5jc2lncworPT09PT09PT0KKworYGBmdW5jc2lnc2BgIGlzIGEgYmFja3BvcnQgb2Yg
dGhlIGBQRVAgMzYyYF8gZnVuY3Rpb24gc2lnbmF0dXJlIGZlYXR1cmVzIGZyb20KK1B5dGhvbiAz
LjMncyBgaW5zcGVjdGBfIG1vZHVsZS4gVGhlIGJhY2twb3J0IGlzIGNvbXBhdGlibGUgd2l0aCBQ
eXRob24gMi42LCAyLjcKK2FzIHdlbGwgYXMgMy4yIGFuZCB1cC4KKworfHB5cGlfdmVyc2lvbnwK
KworRG9jdW1lbnRhdGlvbgorLS0tLS0tLS0tLS0tLQorCitUaGUgcmVmZXJlbmNlIGRvY3VtZW50
YXRpb24gaXMgc3RhbmRhcmQgbGlicmFyeSBkb2N1bWVudGF0aW9uIGZvciB0aGUKK2BpbnNwZWN0
YF8gbW9kdWxlIGluIFB5dGhvbjMuIFRoaXMgZG9jdW1lbnRhdGlvbiBoYXMgYmVlbiBpbmNsdWRl
ZCBpbiB0aGUKK2BgZnVuY3NpZ3NgYCBwYWNrYWdlIGRvY3VtZW50YXRpb24gaG9zdGVkIG9uIGBS
ZWFkIFRoZSBEb2NzYF8uCisKK0V4YW1wbGUKKy0tLS0tLS0KKworVG8gb2J0YWluIGEgc2lnbmF0
dXJlIG9iamVjdCwgcGFzcyB0aGUgdGFyZ2V0IGZ1bmN0aW9uIHRvIHRoZQorYGBmdW5jc2lncy5z
aWduYXR1cmVgYCBmdW5jdGlvbi4gOjoKKworICAgID4+PiBmcm9tIGZ1bmNzaWdzIGltcG9ydCBz
aWduYXR1cmUKKyAgICA+Pj4gZGVmIGZvbyhhLCBiPU5vbmUsICphcmdzLCAqKmt3YXJncyk6Cisg
ICAgLi4uICAgICBwYXNzCisKKyAgICA+Pj4gc2lnID0gc2lnbmF0dXJlKGZvbykKKworRm9yIHRo
ZSBkZXRhaWxzIG9mIHRoZSBzaWduYXR1cmUgb2JqZWN0LCByZWZlciB0byB0aGUgZWl0aGVyIHRo
ZSBwYWNrYWdlIG9mCitzdGFuZGFyZCBsaWJyYXJ5IGRvY3VtZW50YXRpb24uCisKK0NvbXBhdGFi
aWxpdHkKKy0tLS0tLS0tLS0tLS0KKworVGhlIGBgZnVuY3NpZ3NgYCBiYWNrcG9ydCBoYXMgYmVl
biB0ZXN0ZWQgYWdhaW5zdDoKKworKiBDUHl0aG9uIDIuNgorKiBDUHl0aG9uIDIuNworKiBDUHl0
aG9uIDMuMgorKiBQeVB5IDEuOQorCitDb250aW51b3VzIGludGVncmF0aW9uIHRlc3RpbmcgaXMg
cHJvdmlkZWQgYnkgYFRyYXZpcyBDSWBfLgorCitVbmRlciBQeXRob24gMi54IHRoZXJlIGlzIGEg
Y29tcGF0YWJpbGl0eSBpc3N1ZSB3aGVuIGEgZnVuY3Rpb24gaXMgYXNzaWduZWQgdG8KK3RoZSBg
YF9fd3JhcHBlZF9fYGAgcHJvcGVydHkgb2YgYSBjbGFzcyBhZnRlciBpdCBoYXMgYmVlbiBjb25z
dHJ1Y3RlZC4KK1NpbWlsaWFyaWx5IHRoZXJlIHVuZGVyIFB5UHkgZGlyZWN0bHkgcGFzc2luZyB0
aGUgYGBfX2NhbGxfX2BgIG1ldGhvZCBvZiBhCitidWlsdGluIGlzIGFsc28gYSBjb21wYXRhYmls
aXR5IGlzc3Vlcy4gIE90aGVyd2lzZSB0aGUgZnVuY3Rpb25hbGl0eSBpcworYmVsaWV2ZWQgdG8g
YmUgdW5pZm9ybSBiZXR3ZWVuIGJvdGggUHl0aG9uMiBhbmQgUHl0aG9uMy4KKworSXNzdWVzCist
LS0tLS0KKworU291cmNlIGNvZGUgZm9yIGBgZnVuY3NpZ3NgYCBpcyBob3N0ZWQgb24gYEdpdEh1
YmBfLiBBbnkgYnVnIHJlcG9ydHMgb3IgZmVhdHVyZQorcmVxdWVzdHMgY2FuIGJlIG1hZGUgdXNp
bmcgR2l0SHViJ3MgYGlzc3VlcyBzeXN0ZW1gXy4gfGJ1aWxkX3N0YXR1c3wgfGNvdmVyYWdlfAor
CitDb3B5cmlnaHQKKy0tLS0tLS0tLQorCitUaGlzIGlzIGEgZGVyaXZlZCB3b3JrIG9mIENQeXRo
b24gdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBgUFNGIExpY2Vuc2UKK0FncmVlbWVudGBfLiBUaGUg
b3JpZ2luYWwgQ1B5dGhvbiBpbnNwZWN0IG1vZHVsZSwgaXRzIHVuaXQgdGVzdHMgYW5kCitkb2N1
bWVudGF0aW9uIGFyZSB0aGUgY29weXJpZ2h0IG9mIHRoZSBQeXRob24gU29mdHdhcmUgRm91bmRh
dGlvbi4gVGhlIGRlcml2ZWQKK3dvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIGBBcGFjaGUg
TGljZW5zZSBWZXJzaW9uIDIuMGBfLgorCisuLiBfQXBhY2hlIExpY2Vuc2UgVmVyc2lvbiAyLjA6
IGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9BcGFjaGUtMi4wCisuLiBfR2l0SHViOiBo
dHRwczovL2dpdGh1Yi5jb20vYWxpbGVzL2Z1bmNzaWdzCisuLiBfUFNGIExpY2Vuc2UgQWdyZWVt
ZW50OiBodHRwOi8vZG9jcy5weXRob24ub3JnLzMvbGljZW5zZS5odG1sI3Rlcm1zLWFuZC1jb25k
aXRpb25zLWZvci1hY2Nlc3Npbmctb3Itb3RoZXJ3aXNlLXVzaW5nLXB5dGhvbgorLi4gX1RyYXZp
cyBDSTogaHR0cDovL3RyYXZpcy1jaS5vcmcvCisuLiBfUmVhZCBUaGUgRG9jczogaHR0cDovL2Z1
bmNzaWdzLnJlYWR0aGVkb2NzLm9yZy8KKy4uIF9QRVAgMzYyOiBodHRwOi8vd3d3LnB5dGhvbi5v
cmcvZGV2L3BlcHMvcGVwLTAzNjIvCisuLiBfaW5zcGVjdDogaHR0cDovL2RvY3MucHl0aG9uLm9y
Zy8zL2xpYnJhcnkvaW5zcGVjdC5odG1sI2ludHJvc3BlY3RpbmctY2FsbGFibGVzLXdpdGgtdGhl
LXNpZ25hdHVyZS1vYmplY3QKKy4uIF9pc3N1ZXMgc3lzdGVtOiBodHRwczovL2dpdGh1Yi5jb20v
YWxpZXMvZnVuY3NpZ3MvaXNzdWVzCisKKy4uIHxidWlsZF9zdGF0dXN8IGltYWdlOjogaHR0cHM6
Ly9zZWN1cmUudHJhdmlzLWNpLm9yZy9hbGlsZXMvZnVuY3NpZ3MucG5nP2JyYW5jaD1tYXN0ZXIK
KyAgIDp0YXJnZXQ6IGh0dHA6Ly90cmF2aXMtY2kub3JnLyMhL2FsaWxlcy9mdW5jc2lncworICAg
OmFsdDogQ3VycmVudCBidWlsZCBzdGF0dXMKKworLi4gfGNvdmVyYWdlfCBpbWFnZTo6IGh0dHBz
Oi8vY292ZXJhbGxzLmlvL3JlcG9zL2FsaWxlcy9mdW5jc2lncy9iYWRnZS5wbmc/YnJhbmNoPW1h
c3RlcgorICAgOnRhcmdldDogaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vci9hbGlsZXMvZnVuY3NpZ3M/
YnJhbmNoPW1hc3RlcgorICAgOmFsdDogQ292ZXJhZ2Ugc3RhdHVzCisKKy4uIHxweXBpX3ZlcnNp
b258IGltYWdlOjogaHR0cHM6Ly9weXBpcC5pbi92L2Z1bmNzaWdzL2JhZGdlLnBuZworICAgOnRh
cmdldDogaHR0cHM6Ly9jcmF0ZS5pby9wYWNrYWdlcy9mdW5jc2lncy8KKyAgIDphbHQ6IExhdGVz
dCBQeVBJIHZlcnNpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZG9jcy9NYWtlZmlsZSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvZnVuY3NpZ3MvZG9jcy9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mN2FiM2QxNmI0MDU5OWI0
ZWZmMjU2NmRmNjVmNmMwY2U1MGVhMjVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2ln
cy9kb2NzL01ha2VmaWxlCkBAIC0wLDAgKzEsMTUzIEBACisjIE1ha2VmaWxlIGZvciBTcGhpbngg
ZG9jdW1lbnRhdGlvbgorIworCisjIFlvdSBjYW4gc2V0IHRoZXNlIHZhcmlhYmxlcyBmcm9tIHRo
ZSBjb21tYW5kIGxpbmUuCitTUEhJTlhPUFRTICAgID0KK1NQSElOWEJVSUxEICAgPSBzcGhpbngt
YnVpbGQKK1BBUEVSICAgICAgICAgPQorQlVJTERESVIgICAgICA9IF9idWlsZAorCisjIEludGVy
bmFsIHZhcmlhYmxlcy4KK1BBUEVST1BUX2E0ICAgICA9IC1EIGxhdGV4X3BhcGVyX3NpemU9YTQK
K1BBUEVST1BUX2xldHRlciA9IC1EIGxhdGV4X3BhcGVyX3NpemU9bGV0dGVyCitBTExTUEhJTlhP
UFRTICAgPSAtZCAkKEJVSUxERElSKS9kb2N0cmVlcyAkKFBBUEVST1BUXyQoUEFQRVIpKSAkKFNQ
SElOWE9QVFMpIC4KKyMgdGhlIGkxOG4gYnVpbGRlciBjYW5ub3Qgc2hhcmUgdGhlIGVudmlyb25t
ZW50IGFuZCBkb2N0cmVlcyB3aXRoIHRoZSBvdGhlcnMKK0kxOE5TUEhJTlhPUFRTICA9ICQoUEFQ
RVJPUFRfJChQQVBFUikpICQoU1BISU5YT1BUUykgLgorCisuUEhPTlk6IGhlbHAgY2xlYW4gaHRt
bCBkaXJodG1sIHNpbmdsZWh0bWwgcGlja2xlIGpzb24gaHRtbGhlbHAgcXRoZWxwIGRldmhlbHAg
ZXB1YiBsYXRleCBsYXRleHBkZiB0ZXh0IG1hbiBjaGFuZ2VzIGxpbmtjaGVjayBkb2N0ZXN0IGdl
dHRleHQKKworaGVscDoKKwlAZWNobyAiUGxlYXNlIHVzZSBcYG1ha2UgPHRhcmdldD4nIHdoZXJl
IDx0YXJnZXQ+IGlzIG9uZSBvZiIKKwlAZWNobyAiICBodG1sICAgICAgIHRvIG1ha2Ugc3RhbmRh
bG9uZSBIVE1MIGZpbGVzIgorCUBlY2hvICIgIGRpcmh0bWwgICAgdG8gbWFrZSBIVE1MIGZpbGVz
IG5hbWVkIGluZGV4Lmh0bWwgaW4gZGlyZWN0b3JpZXMiCisJQGVjaG8gIiAgc2luZ2xlaHRtbCB0
byBtYWtlIGEgc2luZ2xlIGxhcmdlIEhUTUwgZmlsZSIKKwlAZWNobyAiICBwaWNrbGUgICAgIHRv
IG1ha2UgcGlja2xlIGZpbGVzIgorCUBlY2hvICIgIGpzb24gICAgICAgdG8gbWFrZSBKU09OIGZp
bGVzIgorCUBlY2hvICIgIGh0bWxoZWxwICAgdG8gbWFrZSBIVE1MIGZpbGVzIGFuZCBhIEhUTUwg
aGVscCBwcm9qZWN0IgorCUBlY2hvICIgIHF0aGVscCAgICAgdG8gbWFrZSBIVE1MIGZpbGVzIGFu
ZCBhIHF0aGVscCBwcm9qZWN0IgorCUBlY2hvICIgIGRldmhlbHAgICAgdG8gbWFrZSBIVE1MIGZp
bGVzIGFuZCBhIERldmhlbHAgcHJvamVjdCIKKwlAZWNobyAiICBlcHViICAgICAgIHRvIG1ha2Ug
YW4gZXB1YiIKKwlAZWNobyAiICBsYXRleCAgICAgIHRvIG1ha2UgTGFUZVggZmlsZXMsIHlvdSBj
YW4gc2V0IFBBUEVSPWE0IG9yIFBBUEVSPWxldHRlciIKKwlAZWNobyAiICBsYXRleHBkZiAgIHRv
IG1ha2UgTGFUZVggZmlsZXMgYW5kIHJ1biB0aGVtIHRocm91Z2ggcGRmbGF0ZXgiCisJQGVjaG8g
IiAgdGV4dCAgICAgICB0byBtYWtlIHRleHQgZmlsZXMiCisJQGVjaG8gIiAgbWFuICAgICAgICB0
byBtYWtlIG1hbnVhbCBwYWdlcyIKKwlAZWNobyAiICB0ZXhpbmZvICAgIHRvIG1ha2UgVGV4aW5m
byBmaWxlcyIKKwlAZWNobyAiICBpbmZvICAgICAgIHRvIG1ha2UgVGV4aW5mbyBmaWxlcyBhbmQg
cnVuIHRoZW0gdGhyb3VnaCBtYWtlaW5mbyIKKwlAZWNobyAiICBnZXR0ZXh0ICAgIHRvIG1ha2Ug
UE8gbWVzc2FnZSBjYXRhbG9ncyIKKwlAZWNobyAiICBjaGFuZ2VzICAgIHRvIG1ha2UgYW4gb3Zl
cnZpZXcgb2YgYWxsIGNoYW5nZWQvYWRkZWQvZGVwcmVjYXRlZCBpdGVtcyIKKwlAZWNobyAiICBs
aW5rY2hlY2sgIHRvIGNoZWNrIGFsbCBleHRlcm5hbCBsaW5rcyBmb3IgaW50ZWdyaXR5IgorCUBl
Y2hvICIgIGRvY3Rlc3QgICAgdG8gcnVuIGFsbCBkb2N0ZXN0cyBlbWJlZGRlZCBpbiB0aGUgZG9j
dW1lbnRhdGlvbiAoaWYgZW5hYmxlZCkiCisKK2NsZWFuOgorCS1ybSAtcmYgJChCVUlMRERJUikK
KworaHRtbDoKKwkkKFNQSElOWEJVSUxEKSAtYiBodG1sICQoQUxMU1BISU5YT1BUUykgJChCVUlM
RERJUikvaHRtbAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgSFRNTCBwYWdl
cyBhcmUgaW4gJChCVUlMRERJUikvaHRtbC4iCisKK2Rpcmh0bWw6CisJJChTUEhJTlhCVUlMRCkg
LWIgZGlyaHRtbCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2Rpcmh0bWwKKwlAZWNobwor
CUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIEhUTUwgcGFnZXMgYXJlIGluICQoQlVJTERESVIp
L2Rpcmh0bWwuIgorCitzaW5nbGVodG1sOgorCSQoU1BISU5YQlVJTEQpIC1iIHNpbmdsZWh0bWwg
JChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9zaW5nbGVodG1sCisJQGVjaG8KKwlAZWNobyAi
QnVpbGQgZmluaXNoZWQuIFRoZSBIVE1MIHBhZ2UgaXMgaW4gJChCVUlMRERJUikvc2luZ2xlaHRt
bC4iCisKK3BpY2tsZToKKwkkKFNQSElOWEJVSUxEKSAtYiBwaWNrbGUgJChBTExTUEhJTlhPUFRT
KSAkKEJVSUxERElSKS9waWNrbGUKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgbm93
IHlvdSBjYW4gcHJvY2VzcyB0aGUgcGlja2xlIGZpbGVzLiIKKworanNvbjoKKwkkKFNQSElOWEJV
SUxEKSAtYiBqc29uICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvanNvbgorCUBlY2hvCisJ
QGVjaG8gIkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBwcm9jZXNzIHRoZSBKU09OIGZpbGVz
LiIKKworaHRtbGhlbHA6CisJJChTUEhJTlhCVUlMRCkgLWIgaHRtbGhlbHAgJChBTExTUEhJTlhP
UFRTKSAkKEJVSUxERElSKS9odG1saGVscAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVk
OyBub3cgeW91IGNhbiBydW4gSFRNTCBIZWxwIFdvcmtzaG9wIHdpdGggdGhlIiBcCisJICAgICAg
Ii5oaHAgcHJvamVjdCBmaWxlIGluICQoQlVJTERESVIpL2h0bWxoZWxwLiIKKworcXRoZWxwOgor
CSQoU1BISU5YQlVJTEQpIC1iIHF0aGVscCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3F0
aGVscAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBydW4gInFj
b2xsZWN0aW9uZ2VuZXJhdG9yIiB3aXRoIHRoZSIgXAorCSAgICAgICIucWhjcCBwcm9qZWN0IGZp
bGUgaW4gJChCVUlMRERJUikvcXRoZWxwLCBsaWtlIHRoaXM6IgorCUBlY2hvICIjIHFjb2xsZWN0
aW9uZ2VuZXJhdG9yICQoQlVJTERESVIpL3F0aGVscC9mdW5jc2lncy5xaGNwIgorCUBlY2hvICJU
byB2aWV3IHRoZSBoZWxwIGZpbGU6IgorCUBlY2hvICIjIGFzc2lzdGFudCAtY29sbGVjdGlvbkZp
bGUgJChCVUlMRERJUikvcXRoZWxwL2Z1bmNzaWdzLnFoYyIKKworZGV2aGVscDoKKwkkKFNQSElO
WEJVSUxEKSAtYiBkZXZoZWxwICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvZGV2aGVscAor
CUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiIKKwlAZWNobyAiVG8gdmlldyB0aGUgaGVs
cCBmaWxlOiIKKwlAZWNobyAiIyBta2RpciAtcCAkJEhPTUUvLmxvY2FsL3NoYXJlL2RldmhlbHAv
ZnVuY3NpZ3MiCisJQGVjaG8gIiMgbG4gLXMgJChCVUlMRERJUikvZGV2aGVscCAkJEhPTUUvLmxv
Y2FsL3NoYXJlL2RldmhlbHAvZnVuY3NpZ3MiCisJQGVjaG8gIiMgZGV2aGVscCIKKworZXB1YjoK
KwkkKFNQSElOWEJVSUxEKSAtYiBlcHViICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvZXB1
YgorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgZXB1YiBmaWxlIGlzIGluICQo
QlVJTERESVIpL2VwdWIuIgorCitsYXRleDoKKwkkKFNQSElOWEJVSUxEKSAtYiBsYXRleCAkKEFM
TFNQSElOWE9QVFMpICQoQlVJTERESVIpL2xhdGV4CisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmlu
aXNoZWQ7IHRoZSBMYVRlWCBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvbGF0ZXguIgorCUBlY2hv
ICJSdW4gXGBtYWtlJyBpbiB0aGF0IGRpcmVjdG9yeSB0byBydW4gdGhlc2UgdGhyb3VnaCAocGRm
KWxhdGV4IiBcCisJICAgICAgIih1c2UgXGBtYWtlIGxhdGV4cGRmJyBoZXJlIHRvIGRvIHRoYXQg
YXV0b21hdGljYWxseSkuIgorCitsYXRleHBkZjoKKwkkKFNQSElOWEJVSUxEKSAtYiBsYXRleCAk
KEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2xhdGV4CisJQGVjaG8gIlJ1bm5pbmcgTGFUZVgg
ZmlsZXMgdGhyb3VnaCBwZGZsYXRleC4uLiIKKwkkKE1BS0UpIC1DICQoQlVJTERESVIpL2xhdGV4
IGFsbC1wZGYKKwlAZWNobyAicGRmbGF0ZXggZmluaXNoZWQ7IHRoZSBQREYgZmlsZXMgYXJlIGlu
ICQoQlVJTERESVIpL2xhdGV4LiIKKwordGV4dDoKKwkkKFNQSElOWEJVSUxEKSAtYiB0ZXh0ICQo
QUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvdGV4dAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZp
bmlzaGVkLiBUaGUgdGV4dCBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvdGV4dC4iCisKK21hbjoK
KwkkKFNQSElOWEJVSUxEKSAtYiBtYW4gJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9tYW4K
KwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIG1hbnVhbCBwYWdlcyBhcmUgaW4g
JChCVUlMRERJUikvbWFuLiIKKwordGV4aW5mbzoKKwkkKFNQSElOWEJVSUxEKSAtYiB0ZXhpbmZv
ICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvdGV4aW5mbworCUBlY2hvCisJQGVjaG8gIkJ1
aWxkIGZpbmlzaGVkLiBUaGUgVGV4aW5mbyBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvdGV4aW5m
by4iCisJQGVjaG8gIlJ1biBcYG1ha2UnIGluIHRoYXQgZGlyZWN0b3J5IHRvIHJ1biB0aGVzZSB0
aHJvdWdoIG1ha2VpbmZvIiBcCisJICAgICAgIih1c2UgXGBtYWtlIGluZm8nIGhlcmUgdG8gZG8g
dGhhdCBhdXRvbWF0aWNhbGx5KS4iCisKK2luZm86CisJJChTUEhJTlhCVUlMRCkgLWIgdGV4aW5m
byAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3RleGluZm8KKwlAZWNobyAiUnVubmluZyBU
ZXhpbmZvIGZpbGVzIHRocm91Z2ggbWFrZWluZm8uLi4iCisJbWFrZSAtQyAkKEJVSUxERElSKS90
ZXhpbmZvIGluZm8KKwlAZWNobyAibWFrZWluZm8gZmluaXNoZWQ7IHRoZSBJbmZvIGZpbGVzIGFy
ZSBpbiAkKEJVSUxERElSKS90ZXhpbmZvLiIKKworZ2V0dGV4dDoKKwkkKFNQSElOWEJVSUxEKSAt
YiBnZXR0ZXh0ICQoSTE4TlNQSElOWE9QVFMpICQoQlVJTERESVIpL2xvY2FsZQorCUBlY2hvCisJ
QGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgbWVzc2FnZSBjYXRhbG9ncyBhcmUgaW4gJChCVUlM
RERJUikvbG9jYWxlLiIKKworY2hhbmdlczoKKwkkKFNQSElOWEJVSUxEKSAtYiBjaGFuZ2VzICQo
QUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvY2hhbmdlcworCUBlY2hvCisJQGVjaG8gIlRoZSBv
dmVydmlldyBmaWxlIGlzIGluICQoQlVJTERESVIpL2NoYW5nZXMuIgorCitsaW5rY2hlY2s6CisJ
JChTUEhJTlhCVUlMRCkgLWIgbGlua2NoZWNrICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikv
bGlua2NoZWNrCisJQGVjaG8KKwlAZWNobyAiTGluayBjaGVjayBjb21wbGV0ZTsgbG9vayBmb3Ig
YW55IGVycm9ycyBpbiB0aGUgYWJvdmUgb3V0cHV0ICIgXAorCSAgICAgICJvciBpbiAkKEJVSUxE
RElSKS9saW5rY2hlY2svb3V0cHV0LnR4dC4iCisKK2RvY3Rlc3Q6CisJJChTUEhJTlhCVUlMRCkg
LWIgZG9jdGVzdCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2RvY3Rlc3QKKwlAZWNobyAi
VGVzdGluZyBvZiBkb2N0ZXN0cyBpbiB0aGUgc291cmNlcyBmaW5pc2hlZCwgbG9vayBhdCB0aGUg
IiBcCisJICAgICAgInJlc3VsdHMgaW4gJChCVUlMRERJUikvZG9jdGVzdC9vdXRwdXQudHh0LiIK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZG9jcy9fdGVtcGxhdGVzL3BhZ2UuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvZnVuY3NpZ3MvZG9jcy9fdGVtcGxhdGVzL3BhZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZTFlMDBi
Y2FmYWYxMTA2YTc4Y2JiNzE4OGRhNTBlYzVjNWQ1ZTVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9mdW5jc2lncy9kb2NzL190ZW1wbGF0ZXMvcGFnZS5odG1sCkBAIC0wLDAgKzEsOSBAQAoreyUg
ZXh0ZW5kcyAiIXBhZ2UuaHRtbCIgJX0KK3slIGJsb2NrIGV4dHJhaGVhZCAlfQorICAgIDxhIGhy
ZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9hbGlsZXMvZnVuY3NpZ3MiPgorICAgICAgICA8aW1nIHN0
eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgcmlnaHQ6IDA7IGJvcmRlcjogMDsiCisg
ICAgICAgICAgICAgc3JjPSJodHRwczovL3MzLmFtYXpvbmF3cy5jb20vZ2l0aHViL3JpYmJvbnMv
Zm9ya21lX3JpZ2h0X3JlZF9hYTAwMDAucG5nIgorICAgICAgICAgICAgIGFsdD0iRm9yayBtZSBv
biBHaXRIdWIiPgorICAgIDwvYT4KKyAgICB7eyBzdXBlcigpIH19Cit7JSBlbmRibG9jayAlfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9kb2NzL190ZW1wbGF0ZXMvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2Z1bmNzaWdzL2RvY3MvX3RlbXBsYXRlcy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5mZjUwOWVkMWVlOWE2YzkzZmMxODRmMWM4ZjIzNDZmMmQ5ODY2YTg0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9mdW5jc2lncy9kb2NzL190ZW1wbGF0ZXMvdzNjLWltcG9ydC5sb2cKQEAgLTAs
MCArMSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9kb2NzL190ZW1wbGF0ZXMvcGFnZS5o
dG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2RvY3MvY29uZi5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3Np
Z3MvZG9jcy9jb25mLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2ZTQxOTRjYzA1YzZhMDI3NDVjN2FiOGEwOTM3
MTE2MmY3NWRjYTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2RvY3MvY29uZi5w
eQpAQCAtMCwwICsxLDI1MSBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMworIyAtKi0gY29kaW5n
OiB1dGYtOCAtKi0KKyMKKyMgZnVuY3NpZ3MgZG9jdW1lbnRhdGlvbiBidWlsZCBjb25maWd1cmF0
aW9uIGZpbGUsIGNyZWF0ZWQgYnkKKyMgc3BoaW54LXF1aWNrc3RhcnQgb24gRnJpIEFwciAyMCAy
MDoyNzo1MiAyMDEyLgorIworIyBUaGlzIGZpbGUgaXMgZXhlY2ZpbGUoKWQgd2l0aCB0aGUgY3Vy
cmVudCBkaXJlY3Rvcnkgc2V0IHRvIGl0cyBjb250YWluaW5nIGRpci4KKyMKKyMgTm90ZSB0aGF0
IG5vdCBhbGwgcG9zc2libGUgY29uZmlndXJhdGlvbiB2YWx1ZXMgYXJlIHByZXNlbnQgaW4gdGhp
cworIyBhdXRvZ2VuZXJhdGVkIGZpbGUuCisjCisjIEFsbCBjb25maWd1cmF0aW9uIHZhbHVlcyBo
YXZlIGEgZGVmYXVsdDsgdmFsdWVzIHRoYXQgYXJlIGNvbW1lbnRlZCBvdXQKKyMgc2VydmUgdG8g
c2hvdyB0aGUgZGVmYXVsdC4KKworaW1wb3J0IHN5cywgb3MKKworIyBJZiBleHRlbnNpb25zIChv
ciBtb2R1bGVzIHRvIGRvY3VtZW50IHdpdGggYXV0b2RvYykgYXJlIGluIGFub3RoZXIgZGlyZWN0
b3J5LAorIyBhZGQgdGhlc2UgZGlyZWN0b3JpZXMgdG8gc3lzLnBhdGggaGVyZS4gSWYgdGhlIGRp
cmVjdG9yeSBpcyByZWxhdGl2ZSB0byB0aGUKKyMgZG9jdW1lbnRhdGlvbiByb290LCB1c2Ugb3Mu
cGF0aC5hYnNwYXRoIHRvIG1ha2UgaXQgYWJzb2x1dGUsIGxpa2Ugc2hvd24gaGVyZS4KK3N5cy5w
YXRoLmluc2VydCgwLCBvcy5wYXRoLmFic3BhdGgoJy4uJykpCisKKyMgLS0gR2VuZXJhbCBjb25m
aWd1cmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKKyMgSWYgeW91ciBkb2N1bWVudGF0aW9uIG5lZWRzIGEgbWluaW1hbCBTcGhpbngg
dmVyc2lvbiwgc3RhdGUgaXQgaGVyZS4KKyNuZWVkc19zcGhpbnggPSAnMS4wJworCisjIEFkZCBh
bnkgU3BoaW54IGV4dGVuc2lvbiBtb2R1bGUgbmFtZXMgaGVyZSwgYXMgc3RyaW5ncy4gVGhleSBj
YW4gYmUgZXh0ZW5zaW9ucworIyBjb21pbmcgd2l0aCBTcGhpbnggKG5hbWVkICdzcGhpbnguZXh0
LionKSBvciB5b3VyIGN1c3RvbSBvbmVzLgorZXh0ZW5zaW9ucyA9IFsnc3BoaW54LmV4dC5hdXRv
ZG9jJywgJ3NwaGlueC5leHQuaW50ZXJzcGhpbngnLCAnc3BoaW54LmV4dC52aWV3Y29kZSddCisK
KyMgQWRkIGFueSBwYXRocyB0aGF0IGNvbnRhaW4gdGVtcGxhdGVzIGhlcmUsIHJlbGF0aXZlIHRv
IHRoaXMgZGlyZWN0b3J5LgordGVtcGxhdGVzX3BhdGggPSBbJ190ZW1wbGF0ZXMnXQorCisjIFRo
ZSBzdWZmaXggb2Ygc291cmNlIGZpbGVuYW1lcy4KK3NvdXJjZV9zdWZmaXggPSAnLnJzdCcKKwor
IyBUaGUgZW5jb2Rpbmcgb2Ygc291cmNlIGZpbGVzLgorI3NvdXJjZV9lbmNvZGluZyA9ICd1dGYt
OC1zaWcnCisKKyMgVGhlIG1hc3RlciB0b2N0cmVlIGRvY3VtZW50LgorbWFzdGVyX2RvYyA9ICdp
bmRleCcKKworIyBHZW5lcmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwcm9qZWN0LgorcHJvamVj
dCA9ICdmdW5jc2lncycKK2NvcHlyaWdodCA9ICcyMDEzLCBBYXJvbiBJbGVzJworCisjIFRoZSB2
ZXJzaW9uIGluZm8gZm9yIHRoZSBwcm9qZWN0IHlvdSdyZSBkb2N1bWVudGluZywgYWN0cyBhcyBy
ZXBsYWNlbWVudCBmb3IKKyMgfHZlcnNpb258IGFuZCB8cmVsZWFzZXwsIGFsc28gdXNlZCBpbiB2
YXJpb3VzIG90aGVyIHBsYWNlcyB0aHJvdWdob3V0IHRoZQorIyBidWlsdCBkb2N1bWVudHMuCisj
CisjIFRoZSBzaG9ydCBYLlkgdmVyc2lvbi4KK2Zyb20gZnVuY3NpZ3MgaW1wb3J0IF9fdmVyc2lv
bl9fCit2ZXJzaW9uID0gJy4nLmpvaW4oX192ZXJzaW9uX18uc3BsaXQoJy4nKVs6Ml0pCisjIFRo
ZSBmdWxsIHZlcnNpb24sIGluY2x1ZGluZyBhbHBoYS9iZXRhL3JjIHRhZ3MuCityZWxlYXNlID0g
X192ZXJzaW9uX18KKworIyBUaGUgbGFuZ3VhZ2UgZm9yIGNvbnRlbnQgYXV0b2dlbmVyYXRlZCBi
eSBTcGhpbnguIFJlZmVyIHRvIGRvY3VtZW50YXRpb24KKyMgZm9yIGEgbGlzdCBvZiBzdXBwb3J0
ZWQgbGFuZ3VhZ2VzLgorI2xhbmd1YWdlID0gTm9uZQorCisjIFRoZXJlIGFyZSB0d28gb3B0aW9u
cyBmb3IgcmVwbGFjaW5nIHx0b2RheXw6IGVpdGhlciwgeW91IHNldCB0b2RheSB0byBzb21lCisj
IG5vbi1mYWxzZSB2YWx1ZSwgdGhlbiBpdCBpcyB1c2VkOgorI3RvZGF5ID0gJycKKyMgRWxzZSwg
dG9kYXlfZm10IGlzIHVzZWQgYXMgdGhlIGZvcm1hdCBmb3IgYSBzdHJmdGltZSBjYWxsLgorI3Rv
ZGF5X2ZtdCA9ICclQiAlZCwgJVknCisKKyMgTGlzdCBvZiBwYXR0ZXJucywgcmVsYXRpdmUgdG8g
c291cmNlIGRpcmVjdG9yeSwgdGhhdCBtYXRjaCBmaWxlcyBhbmQKKyMgZGlyZWN0b3JpZXMgdG8g
aWdub3JlIHdoZW4gbG9va2luZyBmb3Igc291cmNlIGZpbGVzLgorZXhjbHVkZV9wYXR0ZXJucyA9
IFsnX2J1aWxkJ10KKworIyBUaGUgcmVTVCBkZWZhdWx0IHJvbGUgKHVzZWQgZm9yIHRoaXMgbWFy
a3VwOiBgdGV4dGApIHRvIHVzZSBmb3IgYWxsIGRvY3VtZW50cy4KKyNkZWZhdWx0X3JvbGUgPSBO
b25lCisKKyMgSWYgdHJ1ZSwgJygpJyB3aWxsIGJlIGFwcGVuZGVkIHRvIDpmdW5jOiBldGMuIGNy
b3NzLXJlZmVyZW5jZSB0ZXh0LgorI2FkZF9mdW5jdGlvbl9wYXJlbnRoZXNlcyA9IFRydWUKKwor
IyBJZiB0cnVlLCB0aGUgY3VycmVudCBtb2R1bGUgbmFtZSB3aWxsIGJlIHByZXBlbmRlZCB0byBh
bGwgZGVzY3JpcHRpb24KKyMgdW5pdCB0aXRsZXMgKHN1Y2ggYXMgLi4gZnVuY3Rpb246OikuCisj
YWRkX21vZHVsZV9uYW1lcyA9IFRydWUKKworIyBJZiB0cnVlLCBzZWN0aW9uYXV0aG9yIGFuZCBt
b2R1bGVhdXRob3IgZGlyZWN0aXZlcyB3aWxsIGJlIHNob3duIGluIHRoZQorIyBvdXRwdXQuIFRo
ZXkgYXJlIGlnbm9yZWQgYnkgZGVmYXVsdC4KKyNzaG93X2F1dGhvcnMgPSBGYWxzZQorCisjIFRo
ZSBuYW1lIG9mIHRoZSBQeWdtZW50cyAoc3ludGF4IGhpZ2hsaWdodGluZykgc3R5bGUgdG8gdXNl
LgorcHlnbWVudHNfc3R5bGUgPSAnc3BoaW54JworCisjIEEgbGlzdCBvZiBpZ25vcmVkIHByZWZp
eGVzIGZvciBtb2R1bGUgaW5kZXggc29ydGluZy4KKyNtb2RpbmRleF9jb21tb25fcHJlZml4ID0g
W10KKworCisjIC0tIE9wdGlvbnMgZm9yIEhUTUwgb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIFRoZSB0aGVtZSB0byB1c2UgZm9y
IEhUTUwgYW5kIEhUTUwgSGVscCBwYWdlcy4gIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IKKyMg
YSBsaXN0IG9mIGJ1aWx0aW4gdGhlbWVzLgoraHRtbF90aGVtZSA9ICdhZ29nbycKKworIyBUaGVt
ZSBvcHRpb25zIGFyZSB0aGVtZS1zcGVjaWZpYyBhbmQgY3VzdG9taXplIHRoZSBsb29rIGFuZCBm
ZWVsIG9mIGEgdGhlbWUKKyMgZnVydGhlci4gIEZvciBhIGxpc3Qgb2Ygb3B0aW9ucyBhdmFpbGFi
bGUgZm9yIGVhY2ggdGhlbWUsIHNlZSB0aGUKKyMgZG9jdW1lbnRhdGlvbi4KKyNodG1sX3RoZW1l
X29wdGlvbnMgPSB7fQorCisjIEFkZCBhbnkgcGF0aHMgdGhhdCBjb250YWluIGN1c3RvbSB0aGVt
ZXMgaGVyZSwgcmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuCisjaHRtbF90aGVtZV9wYXRoID0g
W10KKworIyBUaGUgbmFtZSBmb3IgdGhpcyBzZXQgb2YgU3BoaW54IGRvY3VtZW50cy4gIElmIE5v
bmUsIGl0IGRlZmF1bHRzIHRvCisjICI8cHJvamVjdD4gdjxyZWxlYXNlPiBkb2N1bWVudGF0aW9u
Ii4KKyNodG1sX3RpdGxlID0gTm9uZQorCisjIEEgc2hvcnRlciB0aXRsZSBmb3IgdGhlIG5hdmln
YXRpb24gYmFyLiAgRGVmYXVsdCBpcyB0aGUgc2FtZSBhcyBodG1sX3RpdGxlLgorI2h0bWxfc2hv
cnRfdGl0bGUgPSBOb25lCisKKyMgVGhlIG5hbWUgb2YgYW4gaW1hZ2UgZmlsZSAocmVsYXRpdmUg
dG8gdGhpcyBkaXJlY3RvcnkpIHRvIHBsYWNlIGF0IHRoZSB0b3AKKyMgb2YgdGhlIHNpZGViYXIu
CisjaHRtbF9sb2dvID0gTm9uZQorCisjIFRoZSBuYW1lIG9mIGFuIGltYWdlIGZpbGUgKHdpdGhp
biB0aGUgc3RhdGljIHBhdGgpIHRvIHVzZSBhcyBmYXZpY29uIG9mIHRoZQorIyBkb2NzLiAgVGhp
cyBmaWxlIHNob3VsZCBiZSBhIFdpbmRvd3MgaWNvbiBmaWxlICguaWNvKSBiZWluZyAxNngxNiBv
ciAzMngzMgorIyBwaXhlbHMgbGFyZ2UuCisjaHRtbF9mYXZpY29uID0gTm9uZQorCisjIEFkZCBh
bnkgcGF0aHMgdGhhdCBjb250YWluIGN1c3RvbSBzdGF0aWMgZmlsZXMgKHN1Y2ggYXMgc3R5bGUg
c2hlZXRzKSBoZXJlLAorIyByZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeS4gVGhleSBhcmUgY29w
aWVkIGFmdGVyIHRoZSBidWlsdGluIHN0YXRpYyBmaWxlcywKKyMgc28gYSBmaWxlIG5hbWVkICJk
ZWZhdWx0LmNzcyIgd2lsbCBvdmVyd3JpdGUgdGhlIGJ1aWx0aW4gImRlZmF1bHQuY3NzIi4KK2h0
bWxfc3RhdGljX3BhdGggPSBbXQorCisjIElmIG5vdCAnJywgYSAnTGFzdCB1cGRhdGVkIG9uOicg
dGltZXN0YW1wIGlzIGluc2VydGVkIGF0IGV2ZXJ5IHBhZ2UgYm90dG9tLAorIyB1c2luZyB0aGUg
Z2l2ZW4gc3RyZnRpbWUgZm9ybWF0LgorI2h0bWxfbGFzdF91cGRhdGVkX2ZtdCA9ICclYiAlZCwg
JVknCisKKyMgSWYgdHJ1ZSwgU21hcnR5UGFudHMgd2lsbCBiZSB1c2VkIHRvIGNvbnZlcnQgcXVv
dGVzIGFuZCBkYXNoZXMgdG8KKyMgdHlwb2dyYXBoaWNhbGx5IGNvcnJlY3QgZW50aXRpZXMuCisj
aHRtbF91c2Vfc21hcnR5cGFudHMgPSBUcnVlCisKKyMgQ3VzdG9tIHNpZGViYXIgdGVtcGxhdGVz
LCBtYXBzIGRvY3VtZW50IG5hbWVzIHRvIHRlbXBsYXRlIG5hbWVzLgorI2h0bWxfc2lkZWJhcnMg
PSB7fQorCisjIEFkZGl0aW9uYWwgdGVtcGxhdGVzIHRoYXQgc2hvdWxkIGJlIHJlbmRlcmVkIHRv
IHBhZ2VzLCBtYXBzIHBhZ2UgbmFtZXMgdG8KKyMgdGVtcGxhdGUgbmFtZXMuCisjaHRtbF9hZGRp
dGlvbmFsX3BhZ2VzID0ge30KKworIyBJZiBmYWxzZSwgbm8gbW9kdWxlIGluZGV4IGlzIGdlbmVy
YXRlZC4KKyNodG1sX2RvbWFpbl9pbmRpY2VzID0gVHJ1ZQorCisjIElmIGZhbHNlLCBubyBpbmRl
eCBpcyBnZW5lcmF0ZWQuCisjaHRtbF91c2VfaW5kZXggPSBUcnVlCisKKyMgSWYgdHJ1ZSwgdGhl
IGluZGV4IGlzIHNwbGl0IGludG8gaW5kaXZpZHVhbCBwYWdlcyBmb3IgZWFjaCBsZXR0ZXIuCisj
aHRtbF9zcGxpdF9pbmRleCA9IEZhbHNlCisKKyMgSWYgdHJ1ZSwgbGlua3MgdG8gdGhlIHJlU1Qg
c291cmNlcyBhcmUgYWRkZWQgdG8gdGhlIHBhZ2VzLgorI2h0bWxfc2hvd19zb3VyY2VsaW5rID0g
VHJ1ZQorCisjIElmIHRydWUsICJDcmVhdGVkIHVzaW5nIFNwaGlueCIgaXMgc2hvd24gaW4gdGhl
IEhUTUwgZm9vdGVyLiBEZWZhdWx0IGlzIFRydWUuCisjaHRtbF9zaG93X3NwaGlueCA9IFRydWUK
KworIyBJZiB0cnVlLCAiKEMpIENvcHlyaWdodCAuLi4iIGlzIHNob3duIGluIHRoZSBIVE1MIGZv
b3Rlci4gRGVmYXVsdCBpcyBUcnVlLgorI2h0bWxfc2hvd19jb3B5cmlnaHQgPSBUcnVlCisKKyMg
SWYgdHJ1ZSwgYW4gT3BlblNlYXJjaCBkZXNjcmlwdGlvbiBmaWxlIHdpbGwgYmUgb3V0cHV0LCBh
bmQgYWxsIHBhZ2VzIHdpbGwKKyMgY29udGFpbiBhIDxsaW5rPiB0YWcgcmVmZXJyaW5nIHRvIGl0
LiAgVGhlIHZhbHVlIG9mIHRoaXMgb3B0aW9uIG11c3QgYmUgdGhlCisjIGJhc2UgVVJMIGZyb20g
d2hpY2ggdGhlIGZpbmlzaGVkIEhUTUwgaXMgc2VydmVkLgorI2h0bWxfdXNlX29wZW5zZWFyY2gg
PSAnJworCisjIFRoaXMgaXMgdGhlIGZpbGUgbmFtZSBzdWZmaXggZm9yIEhUTUwgZmlsZXMgKGUu
Zy4gIi54aHRtbCIpLgorI2h0bWxfZmlsZV9zdWZmaXggPSBOb25lCisKKyMgT3V0cHV0IGZpbGUg
YmFzZSBuYW1lIGZvciBIVE1MIGhlbHAgYnVpbGRlci4KK2h0bWxoZWxwX2Jhc2VuYW1lID0gJ2Z1
bmNzaWdzZG9jJworCisKKyMgLS0gT3B0aW9ucyBmb3IgTGFUZVggb3V0cHV0IC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2xhdGV4X2VsZW1lbnRz
ID0geworIyBUaGUgcGFwZXIgc2l6ZSAoJ2xldHRlcnBhcGVyJyBvciAnYTRwYXBlcicpLgorIydw
YXBlcnNpemUnOiAnbGV0dGVycGFwZXInLAorCisjIFRoZSBmb250IHNpemUgKCcxMHB0JywgJzEx
cHQnIG9yICcxMnB0JykuCisjJ3BvaW50c2l6ZSc6ICcxMHB0JywKKworIyBBZGRpdGlvbmFsIHN0
dWZmIGZvciB0aGUgTGFUZVggcHJlYW1ibGUuCisjJ3ByZWFtYmxlJzogJycsCit9CisKKyMgR3Jv
dXBpbmcgdGhlIGRvY3VtZW50IHRyZWUgaW50byBMYVRlWCBmaWxlcy4gTGlzdCBvZiB0dXBsZXMK
KyMgKHNvdXJjZSBzdGFydCBmaWxlLCB0YXJnZXQgbmFtZSwgdGl0bGUsIGF1dGhvciwgZG9jdW1l
bnRjbGFzcyBbaG93dG8vbWFudWFsXSkuCitsYXRleF9kb2N1bWVudHMgPSBbCisgICgnaW5kZXgn
LCAnZnVuY3NpZ3MudGV4JywgJ2Z1bmNzaWdzIERvY3VtZW50YXRpb24nLAorICAgJ0Fhcm9uIEls
ZXMnLCAnbWFudWFsJyksCitdCisKKyMgVGhlIG5hbWUgb2YgYW4gaW1hZ2UgZmlsZSAocmVsYXRp
dmUgdG8gdGhpcyBkaXJlY3RvcnkpIHRvIHBsYWNlIGF0IHRoZSB0b3Agb2YKKyMgdGhlIHRpdGxl
IHBhZ2UuCisjbGF0ZXhfbG9nbyA9IE5vbmUKKworIyBGb3IgIm1hbnVhbCIgZG9jdW1lbnRzLCBp
ZiB0aGlzIGlzIHRydWUsIHRoZW4gdG9wbGV2ZWwgaGVhZGluZ3MgYXJlIHBhcnRzLAorIyBub3Qg
Y2hhcHRlcnMuCisjbGF0ZXhfdXNlX3BhcnRzID0gRmFsc2UKKworIyBJZiB0cnVlLCBzaG93IHBh
Z2UgcmVmZXJlbmNlcyBhZnRlciBpbnRlcm5hbCBsaW5rcy4KKyNsYXRleF9zaG93X3BhZ2VyZWZz
ID0gRmFsc2UKKworIyBJZiB0cnVlLCBzaG93IFVSTCBhZGRyZXNzZXMgYWZ0ZXIgZXh0ZXJuYWwg
bGlua3MuCisjbGF0ZXhfc2hvd191cmxzID0gRmFsc2UKKworIyBEb2N1bWVudHMgdG8gYXBwZW5k
IGFzIGFuIGFwcGVuZGl4IHRvIGFsbCBtYW51YWxzLgorI2xhdGV4X2FwcGVuZGljZXMgPSBbXQor
CisjIElmIGZhbHNlLCBubyBtb2R1bGUgaW5kZXggaXMgZ2VuZXJhdGVkLgorI2xhdGV4X2RvbWFp
bl9pbmRpY2VzID0gVHJ1ZQorCisKKyMgLS0gT3B0aW9ucyBmb3IgbWFudWFsIHBhZ2Ugb3V0cHV0
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgT25lIGVu
dHJ5IHBlciBtYW51YWwgcGFnZS4gTGlzdCBvZiB0dXBsZXMKKyMgKHNvdXJjZSBzdGFydCBmaWxl
LCBuYW1lLCBkZXNjcmlwdGlvbiwgYXV0aG9ycywgbWFudWFsIHNlY3Rpb24pLgorbWFuX3BhZ2Vz
ID0gWworICAgICgnaW5kZXgnLCAnZnVuY3NpZ3MnLCAnZnVuY3NpZ3MgRG9jdW1lbnRhdGlvbics
CisgICAgIFsnQWFyb24gSWxlcyddLCAxKQorXQorCisjIElmIHRydWUsIHNob3cgVVJMIGFkZHJl
c3NlcyBhZnRlciBleHRlcm5hbCBsaW5rcy4KKyNtYW5fc2hvd191cmxzID0gRmFsc2UKKworCisj
IC0tIE9wdGlvbnMgZm9yIFRleGluZm8gb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIEdyb3VwaW5nIHRoZSBkb2N1bWVudCB0cmVlIGlu
dG8gVGV4aW5mbyBmaWxlcy4gTGlzdCBvZiB0dXBsZXMKKyMgKHNvdXJjZSBzdGFydCBmaWxlLCB0
YXJnZXQgbmFtZSwgdGl0bGUsIGF1dGhvciwKKyMgIGRpciBtZW51IGVudHJ5LCBkZXNjcmlwdGlv
biwgY2F0ZWdvcnkpCit0ZXhpbmZvX2RvY3VtZW50cyA9IFsKKyAgKCdpbmRleCcsICdmdW5jc2ln
cycsICdmdW5jc2lncyBEb2N1bWVudGF0aW9uJywKKyAgICdBYXJvbiBJbGVzJywgJ2Z1bmNzaWdz
JywgJ09uZSBsaW5lIGRlc2NyaXB0aW9uIG9mIHByb2plY3QuJywKKyAgICdNaXNjZWxsYW5lb3Vz
JyksCitdCisKKyMgRG9jdW1lbnRzIHRvIGFwcGVuZCBhcyBhbiBhcHBlbmRpeCB0byBhbGwgbWFu
dWFscy4KKyN0ZXhpbmZvX2FwcGVuZGljZXMgPSBbXQorCisjIElmIGZhbHNlLCBubyBtb2R1bGUg
aW5kZXggaXMgZ2VuZXJhdGVkLgorI3RleGluZm9fZG9tYWluX2luZGljZXMgPSBUcnVlCisKKyMg
SG93IHRvIGRpc3BsYXkgVVJMIGFkZHJlc3NlczogJ2Zvb3Rub3RlJywgJ25vJywgb3IgJ2lubGlu
ZScuCisjdGV4aW5mb19zaG93X3VybHMgPSAnZm9vdG5vdGUnCisKKworIyBFeGFtcGxlIGNvbmZp
Z3VyYXRpb24gZm9yIGludGVyc3BoaW54OiByZWZlciB0byB0aGUgUHl0aG9uIHN0YW5kYXJkIGxp
YnJhcnkuCitpbnRlcnNwaGlueF9tYXBwaW5nID0geworICAgICAgICAncHl0aG9uMyc6ICgnaHR0
cDovL2RvY3MucHl0aG9uLm9yZy9weTNrJywgTm9uZSksCisgICAgICAgICdweXRob24nOiAoJ2h0
dHA6Ly9kb2NzLnB5dGhvbi5vcmcvJywgTm9uZSkKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3Np
Z3MvZG9jcy9pbmRleC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2RvY3MvaW5kZXgucnN0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjVkMGY0MmY5MzY4Yjc2ZDdlZjU4YmM5MDg3NDRkODcyNDNjMTQ4NTcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2RvY3MvaW5kZXgucnN0CkBAIC0wLDAgKzEsMzE1IEBACisu
LiBmdW5jc2lncyBkb2N1bWVudGF0aW9uIG1hc3RlciBmaWxlLCBjcmVhdGVkIGJ5CisgICBzcGhp
bngtcXVpY2tzdGFydCBvbiBGcmkgQXByIDIwIDIwOjI3OjUyIDIwMTIuCisgICBZb3UgY2FuIGFk
YXB0IHRoaXMgZmlsZSBjb21wbGV0ZWx5IHRvIHlvdXIgbGlraW5nLCBidXQgaXQgc2hvdWxkIGF0
IGxlYXN0CisgICBjb250YWluIHRoZSByb290IGB0b2N0cmVlYCBkaXJlY3RpdmUuCisKK0ludHJv
ZHVjaW5nIGZ1bmNzaWdzCis9PT09PT09PT09PT09PT09PT09PQorCitUaGUgRnVuY3NpZ3MgUGFj
a2FnZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworKmZ1bmNzaWdzKiBpcyBhIGJhY2twb3J0IG9m
IHRoZSBgUEVQIDM2MmBfIGZ1bmN0aW9uIHNpZ25hdHVyZSBmZWF0dXJlcyBmcm9tCitQeXRob24g
My4zJ3MgYGluc3BlY3RgXyBtb2R1bGUuIFRoZSBiYWNrcG9ydCBpcyBjb21wYXRpYmxlIHdpdGgg
UHl0aG9uIDIuNiwgMi43CithcyB3ZWxsIGFzIDMuMiBhbmQgdXAuCisKKy4uIF9QRVAgMzYyOiBo
dHRwOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvcGVwLTAzNjIvCisuLiBfaW5zcGVjdDogaHR0
cDovL2RvY3MucHl0aG9uLm9yZy8zL2xpYnJhcnkvaW5zcGVjdC5odG1sI2ludHJvc3BlY3Rpbmct
Y2FsbGFibGVzLXdpdGgtdGhlLXNpZ25hdHVyZS1vYmplY3QKKworQ29tcGF0YWJpbGl0eQorYGBg
YGBgYGBgYGBgYAorCitUaGUgKmZ1bmNzaWdzKiBiYWNrcG9ydCBoYXMgYmVlbiB0ZXN0ZWQgYWdh
aW5zdDoKKworKiBDUHl0aG9uIDIuNgorKiBDUHl0aG9uIDIuNworKiBDUHl0aG9uIDMuMgorKiBQ
eVB5IDEuOQorCitDb250aW51b3VzIGludGVncmF0aW9uIHRlc3RpbmcgaXMgcHJvdmlkZWQgYnkg
YFRyYXZpcyBDSWBfLgorCitVbmRlciBQeXRob24gMi54IHRoZXJlIGlzIGEgY29tcGF0YWJpbGl0
eSBpc3N1ZSB3aGVuIGEgZnVuY3Rpb24gaXMgYXNzaWduZWQgdG8KK3RoZSBgYF9fd3JhcHBlZF9f
YGAgcHJvcGVydHkgb2YgYSBjbGFzcyBhZnRlciBpdCBoYXMgYmVlbiBjb25zdHJ1Y3RlZC4KK1Np
bWlsaWFyaWx5IHRoZXJlIHVuZGVyIFB5UHkgZGlyZWN0bHkgcGFzc2luZyB0aGUgYGBfX2NhbGxf
X2BgIG1ldGhvZCBvZiBhCitidWlsdGluIGlzIGFsc28gYSBjb21wYXRhYmlsaXR5IGlzc3Vlcy4g
IE90aGVyd2lzZSB0aGUgZnVuY3Rpb25hbGl0eSBpcworYmVsaWV2ZWQgdG8gYmUgdW5pZm9ybSBi
ZXR3ZWVuIGJvdGggUHl0aG9uMiBhbmQgUHl0aG9uMy4KKworLi4gX1RyYXZpcyBDSTogaHR0cDov
L3RyYXZpcy1jaS5vcmcvCisKK0lzc3VlcworYGBgYGBgCisKK1NvdXJjZSBjb2RlIGZvciAqZnVu
Y3NpZ3MqIGlzIGhvc3RlZCBvbiBgR2l0SHViYF8uIEFueSBidWcgcmVwb3J0cyBvciBmZWF0dXJl
CityZXF1ZXN0cyBjYW4gYmUgbWFkZSB1c2luZyBHaXRIdWIncyBgaXNzdWVzIHN5c3RlbWBfLgor
CisuLiBfR2l0SHViOiBodHRwczovL2dpdGh1Yi5jb20vYWxpbGVzL2Z1bmNzaWdzCisuLiBfaXNz
dWVzIHN5c3RlbTogaHR0cHM6Ly9naXRodWIuY29tL2FsaWVzL2Z1bmNzaWdzL2lzc3VlcworCitJ
bnRyb3NwZWN0aW5nIGNhbGxhYmxlcyB3aXRoIHRoZSBTaWduYXR1cmUgb2JqZWN0CistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIG5vdGU6Ogor
CisgICBUaGlzIHNlY3Rpb24gb2YgZG9jdW1lbnRhdGlvbiBpcyBhIGRpcmVjdCByZXBvZHVjdGlv
biBvZiB0aGUgUHl0aG9uCisgICBzdGFuZGFyZCBsaWJyYXJ5IGRvY3VtZW50YXRpb24gZm9yIHRo
ZSBpbnNwZWN0IG1vZHVsZS4KKworVGhlIFNpZ25hdHVyZSBvYmplY3QgcmVwcmVzZW50cyB0aGUg
Y2FsbCBzaWduYXR1cmUgb2YgYSBjYWxsYWJsZSBvYmplY3QgYW5kIGl0cworcmV0dXJuIGFubm90
YXRpb24uICBUbyByZXRyaWV2ZSBhIFNpZ25hdHVyZSBvYmplY3QsIHVzZSB0aGUgOmZ1bmM6YHNp
Z25hdHVyZWAKK2Z1bmN0aW9uLgorCisuLiBmdW5jdGlvbjo6IHNpZ25hdHVyZShjYWxsYWJsZSkK
KworICAgUmV0dXJuIGEgOmNsYXNzOmBTaWduYXR1cmVgIG9iamVjdCBmb3IgdGhlIGdpdmVuIGBg
Y2FsbGFibGVgYDo6CisKKyAgICAgID4+PiBmcm9tIGluc3BlY3QgaW1wb3J0IHNpZ25hdHVyZQor
ICAgICAgPj4+IGRlZiBmb28oYSwgKiwgYjppbnQsICoqa3dhcmdzKToKKyAgICAgIC4uLiAgICAg
cGFzcworCisgICAgICA+Pj4gc2lnID0gc2lnbmF0dXJlKGZvbykKKworICAgICAgPj4+IHN0cihz
aWcpCisgICAgICAnKGEsICosIGI6aW50LCAqKmt3YXJncyknCisKKyAgICAgID4+PiBzdHIoc2ln
LnBhcmFtZXRlcnNbJ2InXSkKKyAgICAgICdiOmludCcKKworICAgICAgPj4+IHNpZy5wYXJhbWV0
ZXJzWydiJ10uYW5ub3RhdGlvbgorICAgICAgPGNsYXNzICdpbnQnPgorCisgICBBY2NlcHRzIGEg
d2lkZSByYW5nZSBvZiBweXRob24gY2FsbGFibGVzLCBmcm9tIHBsYWluIGZ1bmN0aW9ucyBhbmQg
Y2xhc3NlcyB0bworICAgOmZ1bmM6YGZ1bmN0b29scy5wYXJ0aWFsYCBvYmplY3RzLgorCisgICAu
LiBub3RlOjoKKworICAgICAgU29tZSBjYWxsYWJsZXMgbWF5IG5vdCBiZSBpbnRyb3NwZWN0YWJs
ZSBpbiBjZXJ0YWluIGltcGxlbWVudGF0aW9ucyBvZgorICAgICAgUHl0aG9uLiAgRm9yIGV4YW1w
bGUsIGluIENQeXRob24sIGJ1aWx0LWluIGZ1bmN0aW9ucyBkZWZpbmVkIGluIEMgcHJvdmlkZQor
ICAgICAgbm8gbWV0YWRhdGEgYWJvdXQgdGhlaXIgYXJndW1lbnRzLgorCisKKy4uIGNsYXNzOjog
U2lnbmF0dXJlCisKKyAgIEEgU2lnbmF0dXJlIG9iamVjdCByZXByZXNlbnRzIHRoZSBjYWxsIHNp
Z25hdHVyZSBvZiBhIGZ1bmN0aW9uIGFuZCBpdHMgcmV0dXJuCisgICBhbm5vdGF0aW9uLiAgRm9y
IGVhY2ggcGFyYW1ldGVyIGFjY2VwdGVkIGJ5IHRoZSBmdW5jdGlvbiBpdCBzdG9yZXMgYQorICAg
OmNsYXNzOmBQYXJhbWV0ZXJgIG9iamVjdCBpbiBpdHMgOmF0dHI6YHBhcmFtZXRlcnNgIGNvbGxl
Y3Rpb24uCisKKyAgIFNpZ25hdHVyZSBvYmplY3RzIGFyZSAqaW1tdXRhYmxlKi4gIFVzZSA6bWV0
aDpgU2lnbmF0dXJlLnJlcGxhY2VgIHRvIG1ha2UgYQorICAgbW9kaWZpZWQgY29weS4KKworICAg
Li4gYXR0cmlidXRlOjogU2lnbmF0dXJlLmVtcHR5CisKKyAgICAgIEEgc3BlY2lhbCBjbGFzcy1s
ZXZlbCBtYXJrZXIgdG8gc3BlY2lmeSBhYnNlbmNlIG9mIGEgcmV0dXJuIGFubm90YXRpb24uCisK
KyAgIC4uIGF0dHJpYnV0ZTo6IFNpZ25hdHVyZS5wYXJhbWV0ZXJzCisKKyAgICAgIEFuIG9yZGVy
ZWQgbWFwcGluZyBvZiBwYXJhbWV0ZXJzJyBuYW1lcyB0byB0aGUgY29ycmVzcG9uZGluZworICAg
ICAgOmNsYXNzOmBQYXJhbWV0ZXJgIG9iamVjdHMuCisKKyAgIC4uIGF0dHJpYnV0ZTo6IFNpZ25h
dHVyZS5yZXR1cm5fYW5ub3RhdGlvbgorCisgICAgICBUaGUgInJldHVybiIgYW5ub3RhdGlvbiBm
b3IgdGhlIGNhbGxhYmxlLiAgSWYgdGhlIGNhbGxhYmxlIGhhcyBubyAicmV0dXJuIgorICAgICAg
YW5ub3RhdGlvbiwgdGhpcyBhdHRyaWJ1dGUgaXMgc2V0IHRvIDphdHRyOmBTaWduYXR1cmUuZW1w
dHlgLgorCisgICAuLiBtZXRob2Q6OiBTaWduYXR1cmUuYmluZCgqYXJncywgKiprd2FyZ3MpCisK
KyAgICAgIENyZWF0ZSBhIG1hcHBpbmcgZnJvbSBwb3NpdGlvbmFsIGFuZCBrZXl3b3JkIGFyZ3Vt
ZW50cyB0byBwYXJhbWV0ZXJzLgorICAgICAgUmV0dXJucyA6Y2xhc3M6YEJvdW5kQXJndW1lbnRz
YCBpZiBgYCphcmdzYGAgYW5kIGBgKiprd2FyZ3NgYCBtYXRjaCB0aGUKKyAgICAgIHNpZ25hdHVy
ZSwgb3IgcmFpc2VzIGEgOmV4YzpgVHlwZUVycm9yYC4KKworICAgLi4gbWV0aG9kOjogU2lnbmF0
dXJlLmJpbmRfcGFydGlhbCgqYXJncywgKiprd2FyZ3MpCisKKyAgICAgIFdvcmtzIHRoZSBzYW1l
IHdheSBhcyA6bWV0aDpgU2lnbmF0dXJlLmJpbmRgLCBidXQgYWxsb3dzIHRoZSBvbWlzc2lvbiBv
ZgorICAgICAgc29tZSByZXF1aXJlZCBhcmd1bWVudHMgKG1pbWljcyA6ZnVuYzpgZnVuY3Rvb2xz
LnBhcnRpYWxgIGJlaGF2aW9yLikKKyAgICAgIFJldHVybnMgOmNsYXNzOmBCb3VuZEFyZ3VtZW50
c2AsIG9yIHJhaXNlcyBhIDpleGM6YFR5cGVFcnJvcmAgaWYgdGhlCisgICAgICBwYXNzZWQgYXJn
dW1lbnRzIGRvIG5vdCBtYXRjaCB0aGUgc2lnbmF0dXJlLgorCisgICAuLiBtZXRob2Q6OiBTaWdu
YXR1cmUucmVwbGFjZSgqWywgcGFyYW1ldGVyc11bLCByZXR1cm5fYW5ub3RhdGlvbl0pCisKKyAg
ICAgIENyZWF0ZSBhIG5ldyBTaWduYXR1cmUgaW5zdGFuY2UgYmFzZWQgb24gdGhlIGluc3RhbmNl
IHJlcGxhY2Ugd2FzIGludm9rZWQKKyAgICAgIG9uLiAgSXQgaXMgcG9zc2libGUgdG8gcGFzcyBk
aWZmZXJlbnQgYGBwYXJhbWV0ZXJzYGAgYW5kL29yCisgICAgICBgYHJldHVybl9hbm5vdGF0aW9u
YGAgdG8gb3ZlcnJpZGUgdGhlIGNvcnJlc3BvbmRpbmcgcHJvcGVydGllcyBvZiB0aGUgYmFzZQor
ICAgICAgc2lnbmF0dXJlLiAgVG8gcmVtb3ZlIHJldHVybl9hbm5vdGF0aW9uIGZyb20gdGhlIGNv
cGllZCBTaWduYXR1cmUsIHBhc3MgaW4KKyAgICAgIDphdHRyOmBTaWduYXR1cmUuZW1wdHlgLgor
CisgICAgICA6OgorCisgICAgICAgICA+Pj4gZGVmIHRlc3QoYSwgYik6CisgICAgICAgICAuLi4g
ICAgIHBhc3MKKyAgICAgICAgID4+PiBzaWcgPSBzaWduYXR1cmUodGVzdCkKKyAgICAgICAgID4+
PiBuZXdfc2lnID0gc2lnLnJlcGxhY2UocmV0dXJuX2Fubm90YXRpb249Im5ldyByZXR1cm4gYW5u
byIpCisgICAgICAgICA+Pj4gc3RyKG5ld19zaWcpCisgICAgICAgICAiKGEsIGIpIC0+ICduZXcg
cmV0dXJuIGFubm8nIgorCisKKy4uIGNsYXNzOjogUGFyYW1ldGVyCisKKyAgIFBhcmFtZXRlciBv
YmplY3RzIGFyZSAqaW1tdXRhYmxlKi4gIEluc3RlYWQgb2YgbW9kaWZ5aW5nIGEgUGFyYW1ldGVy
IG9iamVjdCwKKyAgIHlvdSBjYW4gdXNlIDptZXRoOmBQYXJhbWV0ZXIucmVwbGFjZWAgdG8gY3Jl
YXRlIGEgbW9kaWZpZWQgY29weS4KKworICAgLi4gYXR0cmlidXRlOjogUGFyYW1ldGVyLmVtcHR5
CisKKyAgICAgIEEgc3BlY2lhbCBjbGFzcy1sZXZlbCBtYXJrZXIgdG8gc3BlY2lmeSBhYnNlbmNl
IG9mIGRlZmF1bHQgdmFsdWVzIGFuZAorICAgICAgYW5ub3RhdGlvbnMuCisKKyAgIC4uIGF0dHJp
YnV0ZTo6IFBhcmFtZXRlci5uYW1lCisKKyAgICAgIFRoZSBuYW1lIG9mIHRoZSBwYXJhbWV0ZXIg
YXMgYSBzdHJpbmcuICBNdXN0IGJlIGEgdmFsaWQgcHl0aG9uIGlkZW50aWZpZXIKKyAgICAgIG5h
bWUgKHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBgYFBPU0lUSU9OQUxfT05MWWBgIHBhcmFtZXRlcnMs
IHdoaWNoIGNhbiBoYXZlCisgICAgICBpdCBzZXQgdG8gYGBOb25lYGApLgorCisgICAuLiBhdHRy
aWJ1dGU6OiBQYXJhbWV0ZXIuZGVmYXVsdAorCisgICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBmb3Ig
dGhlIHBhcmFtZXRlci4gIElmIHRoZSBwYXJhbWV0ZXIgaGFzIG5vIGRlZmF1bHQKKyAgICAgIHZh
bHVlLCB0aGlzIGF0dHJpYnV0ZSBpcyBzZXQgdG8gOmF0dHI6YFBhcmFtZXRlci5lbXB0eWAuCisK
KyAgIC4uIGF0dHJpYnV0ZTo6IFBhcmFtZXRlci5hbm5vdGF0aW9uCisKKyAgICAgIFRoZSBhbm5v
dGF0aW9uIGZvciB0aGUgcGFyYW1ldGVyLiAgSWYgdGhlIHBhcmFtZXRlciBoYXMgbm8gYW5ub3Rh
dGlvbiwKKyAgICAgIHRoaXMgYXR0cmlidXRlIGlzIHNldCB0byA6YXR0cjpgUGFyYW1ldGVyLmVt
cHR5YC4KKworICAgLi4gYXR0cmlidXRlOjogUGFyYW1ldGVyLmtpbmQKKworICAgICAgRGVzY3Jp
YmVzIGhvdyBhcmd1bWVudCB2YWx1ZXMgYXJlIGJvdW5kIHRvIHRoZSBwYXJhbWV0ZXIuICBQb3Nz
aWJsZSB2YWx1ZXMKKyAgICAgIChhY2Nlc3NpYmxlIHZpYSA6Y2xhc3M6YFBhcmFtZXRlcmAsIGxp
a2UgYGBQYXJhbWV0ZXIuS0VZV09SRF9PTkxZYGApOgorCisgICAgICArLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r
CisgICAgICB8ICAgIE5hbWUgICAgICAgICAgICAgICAgfCBNZWFuaW5nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICArPT09PT09PT09PT09PT09PT09PT09PT09
Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rCisgICAgICB8
ICpQT1NJVElPTkFMX09OTFkqICAgICAgfCBWYWx1ZSBtdXN0IGJlIHN1cHBsaWVkIGFzIGEgcG9z
aXRpb25hbCAgICAgICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBhcmd1bWVu
dC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICB8ICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBQeXRob24gaGFzIG5vIGV4
cGxpY2l0IHN5bnRheCBmb3IgZGVmaW5pbmcgICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAg
ICAgICAgfCBwb3NpdGlvbmFsLW9ubHkgcGFyYW1ldGVycywgYnV0IG1hbnkgYnVpbHQtaW58Cisg
ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBhbmQgZXh0ZW5zaW9uIG1vZHVsZSBmdW5j
dGlvbnMgKGVzcGVjaWFsbHkgICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCB0
aG9zZSB0aGF0IGFjY2VwdCBvbmx5IG9uZSBvciB0d28gcGFyYW1ldGVycyl8CisgICAgICB8ICAg
ICAgICAgICAgICAgICAgICAgICAgfCBhY2NlcHQgdGhlbS4gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8CisgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICAgICB8ICpQT1NJVElPTkFM
X09SX0tFWVdPUkQqfCBWYWx1ZSBtYXkgYmUgc3VwcGxpZWQgYXMgZWl0aGVyIGEga2V5d29yZCBv
ciB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBwb3NpdGlvbmFsIGFyZ3VtZW50
ICh0aGlzIGlzIHRoZSBzdGFuZGFyZCAgICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAg
ICAgfCBiaW5kaW5nIGJlaGF2aW91ciBmb3IgZnVuY3Rpb25zIGltcGxlbWVudGVkICB8CisgICAg
ICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBpbiBQeXRob24uKSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8CisgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICAgICB8ICpWQVJf
UE9TSVRJT05BTCogICAgICAgfCBBIHR1cGxlIG9mIHBvc2l0aW9uYWwgYXJndW1lbnRzIHRoYXQg
YXJlbid0ICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBib3VuZCB0byBhbnkg
b3RoZXIgcGFyYW1ldGVyLiBUaGlzICAgICAgICAgICB8CisgICAgICB8ICAgICAgICAgICAgICAg
ICAgICAgICAgfCBjb3JyZXNwb25kcyB0byBhIGBgKmFyZ3NgYCBwYXJhbWV0ZXIgaW4gYSAgICB8
CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBQeXRob24gZnVuY3Rpb24gZGVmaW5p
dGlvbi4gICAgICAgICAgICAgICAgICB8CisgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICAgICB8
ICpLRVlXT1JEX09OTFkqICAgICAgICAgfCBWYWx1ZSBtdXN0IGJlIHN1cHBsaWVkIGFzIGEga2V5
d29yZCBhcmd1bWVudC58CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBLZXl3b3Jk
IG9ubHkgcGFyYW1ldGVycyBhcmUgdGhvc2Ugd2hpY2ggICAgICB8CisgICAgICB8ICAgICAgICAg
ICAgICAgICAgICAgICAgfCBhcHBlYXIgYWZ0ZXIgYSBgYCpgYCBvciBgYCphcmdzYGAgZW50cnkg
aW4gYSB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBQeXRob24gZnVuY3Rpb24g
ZGVmaW5pdGlvbi4gICAgICAgICAgICAgICAgICB8CisgICAgICArLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisg
ICAgICB8ICpWQVJfS0VZV09SRCogICAgICAgICAgfCBBIGRpY3Qgb2Yga2V5d29yZCBhcmd1bWVu
dHMgdGhhdCBhcmVuJ3QgYm91bmR8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCB0
byBhbnkgb3RoZXIgcGFyYW1ldGVyLiBUaGlzIGNvcnJlc3BvbmRzIHRvIGF8CisgICAgICB8ICAg
ICAgICAgICAgICAgICAgICAgICAgfCBgYCoqa3dhcmdzYGAgcGFyYW1ldGVyIGluIGEgUHl0aG9u
IGZ1bmN0aW9uICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCBkZWZpbml0aW9u
LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICAgICArLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0rCisKKyAgICAgIEV4YW1wbGU6IHByaW50IGFsbCBrZXl3b3JkLW9ubHkgYXJndW1lbnRzIHdp
dGhvdXQgZGVmYXVsdCB2YWx1ZXM6OgorCisgICAgICAgICA+Pj4gZGVmIGZvbyhhLCBiLCAqLCBj
LCBkPTEwKToKKyAgICAgICAgIC4uLiAgICAgcGFzcworCisgICAgICAgICA+Pj4gc2lnID0gc2ln
bmF0dXJlKGZvbykKKyAgICAgICAgID4+PiBmb3IgcGFyYW0gaW4gc2lnLnBhcmFtZXRlcnMudmFs
dWVzKCk6CisgICAgICAgICAuLi4gICAgIGlmIChwYXJhbS5raW5kID09IHBhcmFtLktFWVdPUkRf
T05MWSBhbmQKKyAgICAgICAgIC4uLiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtLmRlZmF1
bHQgaXMgcGFyYW0uZW1wdHkpOgorICAgICAgICAgLi4uICAgICAgICAgcHJpbnQoJ1BhcmFtZXRl
cjonLCBwYXJhbSkKKyAgICAgICAgIFBhcmFtZXRlcjogYworCisgICAuLiBtZXRob2Q6OiBQYXJh
bWV0ZXIucmVwbGFjZSgqWywgbmFtZV1bLCBraW5kXVssIGRlZmF1bHRdWywgYW5ub3RhdGlvbl0p
CisKKyAgICAgIENyZWF0ZSBhIG5ldyBQYXJhbWV0ZXIgaW5zdGFuY2UgYmFzZWQgb24gdGhlIGlu
c3RhbmNlIHJlcGxhY2VkIHdhcyBpbnZva2VkCisgICAgICBvbi4gIFRvIG92ZXJyaWRlIGEgOmNs
YXNzOmBQYXJhbWV0ZXJgIGF0dHJpYnV0ZSwgcGFzcyB0aGUgY29ycmVzcG9uZGluZworICAgICAg
YXJndW1lbnQuICBUbyByZW1vdmUgYSBkZWZhdWx0IHZhbHVlIG9yL2FuZCBhbiBhbm5vdGF0aW9u
IGZyb20gYQorICAgICAgUGFyYW1ldGVyLCBwYXNzIDphdHRyOmBQYXJhbWV0ZXIuZW1wdHlgLgor
CisgICAgICA6OgorCisgICAgICAgICA+Pj4gZnJvbSBpbnNwZWN0IGltcG9ydCBQYXJhbWV0ZXIK
KyAgICAgICAgID4+PiBwYXJhbSA9IFBhcmFtZXRlcignZm9vJywgUGFyYW1ldGVyLktFWVdPUkRf
T05MWSwgZGVmYXVsdD00MikKKyAgICAgICAgID4+PiBzdHIocGFyYW0pCisgICAgICAgICAnZm9v
PTQyJworCisgICAgICAgICA+Pj4gc3RyKHBhcmFtLnJlcGxhY2UoKSkgIyBXaWxsIGNyZWF0ZSBh
IHNoYWxsb3cgY29weSBvZiAncGFyYW0nCisgICAgICAgICAnZm9vPTQyJworCisgICAgICAgICA+
Pj4gc3RyKHBhcmFtLnJlcGxhY2UoZGVmYXVsdD1QYXJhbWV0ZXIuZW1wdHksIGFubm90YXRpb249
J3NwYW0nKSkKKyAgICAgICAgICJmb286J3NwYW0nIgorCisKKy4uIGNsYXNzOjogQm91bmRBcmd1
bWVudHMKKworICAgUmVzdWx0IG9mIGEgOm1ldGg6YFNpZ25hdHVyZS5iaW5kYCBvciA6bWV0aDpg
U2lnbmF0dXJlLmJpbmRfcGFydGlhbGAgY2FsbC4KKyAgIEhvbGRzIHRoZSBtYXBwaW5nIG9mIGFy
Z3VtZW50cyB0byB0aGUgZnVuY3Rpb24ncyBwYXJhbWV0ZXJzLgorCisgICAuLiBhdHRyaWJ1dGU6
OiBCb3VuZEFyZ3VtZW50cy5hcmd1bWVudHMKKworICAgICAgQW4gb3JkZXJlZCwgbXV0YWJsZSBt
YXBwaW5nICg6Y2xhc3M6YGNvbGxlY3Rpb25zLk9yZGVyZWREaWN0YCkgb2YKKyAgICAgIHBhcmFt
ZXRlcnMnIG5hbWVzIHRvIGFyZ3VtZW50cycgdmFsdWVzLiAgQ29udGFpbnMgb25seSBleHBsaWNp
dGx5IGJvdW5kCisgICAgICBhcmd1bWVudHMuICBDaGFuZ2VzIGluIDphdHRyOmBhcmd1bWVudHNg
IHdpbGwgcmVmbGVjdCBpbiA6YXR0cjpgYXJnc2AgYW5kCisgICAgICA6YXR0cjpga3dhcmdzYC4K
KworICAgICAgU2hvdWxkIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCA6YXR0cjpgU2lnbmF0
dXJlLnBhcmFtZXRlcnNgIGZvciBhbnkKKyAgICAgIGFyZ3VtZW50IHByb2Nlc3NpbmcgcHVycG9z
ZXMuCisKKyAgICAgIC4uIG5vdGU6OgorCisgICAgICAgICBBcmd1bWVudHMgZm9yIHdoaWNoIDpt
ZXRoOmBTaWduYXR1cmUuYmluZGAgb3IKKyAgICAgICAgIDptZXRoOmBTaWduYXR1cmUuYmluZF9w
YXJ0aWFsYCByZWxpZWQgb24gYSBkZWZhdWx0IHZhbHVlIGFyZSBza2lwcGVkLgorICAgICAgICAg
SG93ZXZlciwgaWYgbmVlZGVkLCBpdCBpcyBlYXN5IHRvIGluY2x1ZGUgdGhlbS4KKworICAgICAg
OjoKKworICAgICAgICA+Pj4gZGVmIGZvbyhhLCBiPTEwKToKKyAgICAgICAgLi4uICAgICBwYXNz
CisKKyAgICAgICAgPj4+IHNpZyA9IHNpZ25hdHVyZShmb28pCisgICAgICAgID4+PiBiYSA9IHNp
Zy5iaW5kKDUpCisKKyAgICAgICAgPj4+IGJhLmFyZ3MsIGJhLmt3YXJncworICAgICAgICAoKDUs
KSwge30pCisKKyAgICAgICAgPj4+IGZvciBwYXJhbSBpbiBzaWcucGFyYW1ldGVycy52YWx1ZXMo
KToKKyAgICAgICAgLi4uICAgICBpZiBwYXJhbS5uYW1lIG5vdCBpbiBiYS5hcmd1bWVudHM6Cisg
ICAgICAgIC4uLiAgICAgICAgIGJhLmFyZ3VtZW50c1twYXJhbS5uYW1lXSA9IHBhcmFtLmRlZmF1
bHQKKworICAgICAgICA+Pj4gYmEuYXJncywgYmEua3dhcmdzCisgICAgICAgICgoNSwgMTApLCB7
fSkKKworCisgICAuLiBhdHRyaWJ1dGU6OiBCb3VuZEFyZ3VtZW50cy5hcmdzCisKKyAgICAgIEEg
dHVwbGUgb2YgcG9zaXRpb25hbCBhcmd1bWVudHMgdmFsdWVzLiAgRHluYW1pY2FsbHkgY29tcHV0
ZWQgZnJvbSB0aGUKKyAgICAgIDphdHRyOmBhcmd1bWVudHNgIGF0dHJpYnV0ZS4KKworICAgLi4g
YXR0cmlidXRlOjogQm91bmRBcmd1bWVudHMua3dhcmdzCisKKyAgICAgIEEgZGljdCBvZiBrZXl3
b3JkIGFyZ3VtZW50cyB2YWx1ZXMuICBEeW5hbWljYWxseSBjb21wdXRlZCBmcm9tIHRoZQorICAg
ICAgOmF0dHI6YGFyZ3VtZW50c2AgYXR0cmlidXRlLgorCisgICBUaGUgOmF0dHI6YGFyZ3NgIGFu
ZCA6YXR0cjpga3dhcmdzYCBwcm9wZXJ0aWVzIGNhbiBiZSB1c2VkIHRvIGludm9rZQorICAgZnVu
Y3Rpb25zOjoKKworICAgICAgZGVmIHRlc3QoYSwgKiwgYik6CisgICAgICAgICAuLi4KKworICAg
ICAgc2lnID0gc2lnbmF0dXJlKHRlc3QpCisgICAgICBiYSA9IHNpZy5iaW5kKDEwLCBiPTIwKQor
ICAgICAgdGVzdCgqYmEuYXJncywgKipiYS5rd2FyZ3MpCisKKworLi4gc2VlYWxzbzo6CisKKyAg
IDpwZXA6YDM2MmAgLSBGdW5jdGlvbiBTaWduYXR1cmUgT2JqZWN0LgorICAgICAgVGhlIGRldGFp
bGVkIHNwZWNpZmljYXRpb24sIGltcGxlbWVudGF0aW9uIGRldGFpbHMgYW5kIGV4YW1wbGVzLgor
CitDb3B5cmlnaHQKKy0tLS0tLS0tLQorCisqZnVuY3NpZ3MqIGlzIGEgZGVyaXZlZCB3b3JrIG9m
IENQeXRob24gdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBgUFNGIExpY2Vuc2UKK0FncmVlbWVudGBf
LiBUaGUgb3JpZ2luYWwgQ1B5dGhvbiBpbnNwZWN0IG1vZHVsZSwgaXRzIHVuaXQgdGVzdHMgYW5k
Citkb2N1bWVudGF0aW9uIGFyZSB0aGUgY29weXJpZ2h0IG9mIHRoZSBQeXRob24gU29mdHdhcmUg
Rm91bmRhdGlvbi4gVGhlIGRlcml2ZWQKK3dvcmsgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIGBB
cGFjaGUgTGljZW5zZSBWZXJzaW9uIDIuMGBfLgorCisuLiBfUFNGIExpY2Vuc2UgQWdyZWVtZW50
OiBodHRwOi8vZG9jcy5weXRob24ub3JnLzMvbGljZW5zZS5odG1sI3Rlcm1zLWFuZC1jb25kaXRp
b25zLWZvci1hY2Nlc3Npbmctb3Itb3RoZXJ3aXNlLXVzaW5nLXB5dGhvbgorLi4gX0FwYWNoZSBM
aWNlbnNlIFZlcnNpb24gMi4wOiBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQXBhY2hl
LTIuMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9kb2NzL3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9mdW5jc2lncy9kb2NzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwYTEyN2UzMDNmZmJk
ODljZGY4ZmY2Y2FjYmIyNTM2MDYxYzNmOTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNz
aWdzL2RvY3MvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOSBAQAorVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20v
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9m
dW5jc2lncy9kb2NzL01ha2VmaWxlCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9kb2NzL2NvbmYucHkKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Z1bmNzaWdzL2RvY3MvaW5kZXgucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2Z1bmNz
aWdzL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9mdW5jc2lncy9fX2luaXRfXy5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mZDJmNDdiMWQ0ZGY2ZWMyYWZmZTZmNjc4YTFhNTgzZGY5NTQzNWI1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9mdW5jc2lncy9fX2luaXRfXy5weQpAQCAtMCwwICsx
LDgxOCBAQAorIyBDb3B5cmlnaHQgMjAwMS0yMDEzIFB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBBbGwgUmlnaHRzIFJlc2VydmVkCisiIiJGdW5jdGlvbiBzaWduYXR1cmUgb2JqZWN0cyBmb3Ig
Y2FsbGFibGVzCisKK0JhY2sgcG9ydCBvZiBQeXRob24gMy4zJ3MgZnVuY3Rpb24gc2lnbmF0dXJl
IHRvb2xzIGZyb20gdGhlIGluc3BlY3QgbW9kdWxlLAorbW9kaWZpZWQgdG8gYmUgY29tcGF0aWJs
ZSB3aXRoIFB5dGhvbiAyLjYsIDIuNyBhbmQgMy4yKy4KKyIiIgorZnJvbSBfX2Z1dHVyZV9fIGlt
cG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgoraW1wb3J0IGl0
ZXJ0b29scworaW1wb3J0IGZ1bmN0b29scworaW1wb3J0IHJlCitpbXBvcnQgdHlwZXMKKwordHJ5
OgorICAgIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IE9yZGVyZWREaWN0CitleGNlcHQgSW1wb3J0
RXJyb3I6CisgICAgZnJvbSBmdW5jc2lncy5vZGljdCBpbXBvcnQgT3JkZXJlZERpY3QKKworZnJv
bSBmdW5jc2lncy52ZXJzaW9uIGltcG9ydCBfX3ZlcnNpb25fXworCitfX2FsbF9fID0gWydCb3Vu
ZEFyZ3VtZW50cycsICdQYXJhbWV0ZXInLCAnU2lnbmF0dXJlJywgJ3NpZ25hdHVyZSddCisKKwor
X1dyYXBwZXJEZXNjcmlwdG9yID0gdHlwZSh0eXBlLl9fY2FsbF9fKQorX01ldGhvZFdyYXBwZXIg
PSB0eXBlKGFsbC5fX2NhbGxfXykKKworX05vblVzZXJEZWZpbmVkQ2FsbGFibGVzID0gKF9XcmFw
cGVyRGVzY3JpcHRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTWV0aG9kV3JhcHBl
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlcy5CdWlsdGluRnVuY3Rpb25UeXBl
KQorCisKK2RlZiBmb3JtYXRhbm5vdGF0aW9uKGFubm90YXRpb24sIGJhc2VfbW9kdWxlPU5vbmUp
OgorICAgIGlmIGlzaW5zdGFuY2UoYW5ub3RhdGlvbiwgdHlwZSk6CisgICAgICAgIGlmIGFubm90
YXRpb24uX19tb2R1bGVfXyBpbiAoJ2J1aWx0aW5zJywgJ19fYnVpbHRpbl9fJywgYmFzZV9tb2R1
bGUpOgorICAgICAgICAgICAgcmV0dXJuIGFubm90YXRpb24uX19uYW1lX18KKyAgICAgICAgcmV0
dXJuIGFubm90YXRpb24uX19tb2R1bGVfXysnLicrYW5ub3RhdGlvbi5fX25hbWVfXworICAgIHJl
dHVybiByZXByKGFubm90YXRpb24pCisKKworZGVmIF9nZXRfdXNlcl9kZWZpbmVkX21ldGhvZChj
bHMsIG1ldGhvZF9uYW1lLCAqbmVzdGVkKToKKyAgICB0cnk6CisgICAgICAgIGlmIGNscyBpcyB0
eXBlOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIG1ldGggPSBnZXRhdHRyKGNscywgbWV0
aG9kX25hbWUpCisgICAgICAgIGZvciBuYW1lIGluIG5lc3RlZDoKKyAgICAgICAgICAgIG1ldGgg
PSBnZXRhdHRyKG1ldGgsIG5hbWUsIG1ldGgpCisgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgor
ICAgICAgICByZXR1cm4KKyAgICBlbHNlOgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShtZXRo
LCBfTm9uVXNlckRlZmluZWRDYWxsYWJsZXMpOgorICAgICAgICAgICAgIyBPbmNlICdfX3NpZ25h
dHVyZV9fJyB3aWxsIGJlIGFkZGVkIHRvICdDJy1sZXZlbAorICAgICAgICAgICAgIyBjYWxsYWJs
ZXMsIHRoaXMgY2hlY2sgd29uJ3QgYmUgbmVjZXNzYXJ5CisgICAgICAgICAgICByZXR1cm4gbWV0
aAorCisKK2RlZiBzaWduYXR1cmUob2JqKToKKyAgICAnJydHZXQgYSBzaWduYXR1cmUgb2JqZWN0
IGZvciB0aGUgcGFzc2VkIGNhbGxhYmxlLicnJworCisgICAgaWYgbm90IGNhbGxhYmxlKG9iaik6
CisgICAgICAgIHJhaXNlIFR5cGVFcnJvcignezAhcn0gaXMgbm90IGEgY2FsbGFibGUgb2JqZWN0
Jy5mb3JtYXQob2JqKSkKKworICAgIGlmIGlzaW5zdGFuY2Uob2JqLCB0eXBlcy5NZXRob2RUeXBl
KToKKyAgICAgICAgc2lnID0gc2lnbmF0dXJlKG9iai5fX2Z1bmNfXykKKyAgICAgICAgaWYgb2Jq
Ll9fc2VsZl9fIGlzIE5vbmU6CisgICAgICAgICAgICAjIFVuYm91bmQgbWV0aG9kOiB0aGUgZmly
c3QgcGFyYW1ldGVyIGJlY29tZXMgcG9zaXRpb25hbC1vbmx5CisgICAgICAgICAgICBpZiBzaWcu
cGFyYW1ldGVyczoKKyAgICAgICAgICAgICAgICBmaXJzdCA9IHNpZy5wYXJhbWV0ZXJzLnZhbHVl
cygpWzBdLnJlcGxhY2UoCisgICAgICAgICAgICAgICAgICAgIGtpbmQ9X1BPU0lUSU9OQUxfT05M
WSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc2lnLnJlcGxhY2UoCisgICAgICAgICAgICAgICAg
ICAgIHBhcmFtZXRlcnM9KGZpcnN0LCkgKyB0dXBsZShzaWcucGFyYW1ldGVycy52YWx1ZXMoKSlb
MTpdKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2lnCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAjIEluIHRoaXMgY2FzZSB3ZSBza2lwIHRoZSBmaXJzdCBw
YXJhbWV0ZXIgb2YgdGhlIHVuZGVybHlpbmcKKyAgICAgICAgICAgICMgZnVuY3Rpb24gKHVzdWFs
bHkgYHNlbGZgIG9yIGBjbHNgKS4KKyAgICAgICAgICAgIHJldHVybiBzaWcucmVwbGFjZShwYXJh
bWV0ZXJzPXR1cGxlKHNpZy5wYXJhbWV0ZXJzLnZhbHVlcygpKVsxOl0pCisKKyAgICB0cnk6Cisg
ICAgICAgIHNpZyA9IG9iai5fX3NpZ25hdHVyZV9fCisgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9y
OgorICAgICAgICBwYXNzCisgICAgZWxzZToKKyAgICAgICAgaWYgc2lnIGlzIG5vdCBOb25lOgor
ICAgICAgICAgICAgcmV0dXJuIHNpZworCisgICAgdHJ5OgorICAgICAgICAjIFdhcyB0aGlzIGZ1
bmN0aW9uIHdyYXBwZWQgYnkgYSBkZWNvcmF0b3I/CisgICAgICAgIHdyYXBwZWQgPSBvYmouX193
cmFwcGVkX18KKyAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgIHBhc3MKKyAgICBl
bHNlOgorICAgICAgICByZXR1cm4gc2lnbmF0dXJlKHdyYXBwZWQpCisKKyAgICBpZiBpc2luc3Rh
bmNlKG9iaiwgdHlwZXMuRnVuY3Rpb25UeXBlKToKKyAgICAgICAgcmV0dXJuIFNpZ25hdHVyZS5m
cm9tX2Z1bmN0aW9uKG9iaikKKworICAgIGlmIGlzaW5zdGFuY2Uob2JqLCBmdW5jdG9vbHMucGFy
dGlhbCk6CisgICAgICAgIHNpZyA9IHNpZ25hdHVyZShvYmouZnVuYykKKworICAgICAgICBuZXdf
cGFyYW1zID0gT3JkZXJlZERpY3Qoc2lnLnBhcmFtZXRlcnMuaXRlbXMoKSkKKworICAgICAgICBw
YXJ0aWFsX2FyZ3MgPSBvYmouYXJncyBvciAoKQorICAgICAgICBwYXJ0aWFsX2tleXdvcmRzID0g
b2JqLmtleXdvcmRzIG9yIHt9CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGJhID0gc2lnLmJp
bmRfcGFydGlhbCgqcGFydGlhbF9hcmdzLCAqKnBhcnRpYWxfa2V5d29yZHMpCisgICAgICAgIGV4
Y2VwdCBUeXBlRXJyb3IgYXMgZXg6CisgICAgICAgICAgICBtc2cgPSAncGFydGlhbCBvYmplY3Qg
ezAhcn0gaGFzIGluY29ycmVjdCBhcmd1bWVudHMnLmZvcm1hdChvYmopCisgICAgICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKG1zZykKKworICAgICAgICBmb3IgYXJnX25hbWUsIGFyZ192YWx1ZSBp
biBiYS5hcmd1bWVudHMuaXRlbXMoKToKKyAgICAgICAgICAgIHBhcmFtID0gbmV3X3BhcmFtc1th
cmdfbmFtZV0KKyAgICAgICAgICAgIGlmIGFyZ19uYW1lIGluIHBhcnRpYWxfa2V5d29yZHM6Cisg
ICAgICAgICAgICAgICAgIyBXZSBzZXQgYSBuZXcgZGVmYXVsdCB2YWx1ZSwgYmVjYXVzZSB0aGUg
Zm9sbG93aW5nIGNvZGUKKyAgICAgICAgICAgICAgICAjIGlzIGNvcnJlY3Q6CisgICAgICAgICAg
ICAgICAgIworICAgICAgICAgICAgICAgICMgICA+Pj4gZGVmIGZvbyhhKTogcHJpbnQoYSkKKyAg
ICAgICAgICAgICAgICAjICAgPj4+IHByaW50KHBhcnRpYWwocGFydGlhbChmb28sIGE9MTApLCBh
PTIwKSgpKQorICAgICAgICAgICAgICAgICMgICAyMAorICAgICAgICAgICAgICAgICMgICA+Pj4g
cHJpbnQocGFydGlhbChwYXJ0aWFsKGZvbywgYT0xMCksIGE9MjApKGE9MzApKQorICAgICAgICAg
ICAgICAgICMgICAzMAorICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAjIFNvLCB3
aXRoICdwYXJ0aWFsJyBvYmplY3RzLCBwYXNzaW5nIGEga2V5d29yZCBhcmd1bWVudCBpcworICAg
ICAgICAgICAgICAgICMgbGlrZSBzZXR0aW5nIGEgbmV3IGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBj
b3JyZXNwb25kaW5nCisgICAgICAgICAgICAgICAgIyBwYXJhbWV0ZXIKKyAgICAgICAgICAgICAg
ICAjCisgICAgICAgICAgICAgICAgIyBXZSBhbHNvIG1hcmsgdGhpcyBwYXJhbWV0ZXIgd2l0aCAn
X3BhcnRpYWxfa3dhcmcnCisgICAgICAgICAgICAgICAgIyBmbGFnLiAgTGF0ZXIsIGluICdfYmlu
ZCcsIHRoZSAnZGVmYXVsdCcgdmFsdWUgb2YgdGhpcworICAgICAgICAgICAgICAgICMgcGFyYW1l
dGVyIHdpbGwgYmUgYWRkZWQgdG8gJ2t3YXJncycsIHRvIHNpbXVsYXRlCisgICAgICAgICAgICAg
ICAgIyB0aGUgJ2Z1bmN0b29scy5wYXJ0aWFsJyByZWFsIGNhbGwuCisgICAgICAgICAgICAgICAg
bmV3X3BhcmFtc1thcmdfbmFtZV0gPSBwYXJhbS5yZXBsYWNlKGRlZmF1bHQ9YXJnX3ZhbHVlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfcGFy
dGlhbF9rd2FyZz1UcnVlKQorCisgICAgICAgICAgICBlbGlmIChwYXJhbS5raW5kIG5vdCBpbiAo
X1ZBUl9LRVlXT1JELCBfVkFSX1BPU0lUSU9OQUwpIGFuZAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG5vdCBwYXJhbS5fcGFydGlhbF9rd2FyZyk6CisgICAgICAgICAgICAgICAgbmV3X3Bh
cmFtcy5wb3AoYXJnX25hbWUpCisKKyAgICAgICAgcmV0dXJuIHNpZy5yZXBsYWNlKHBhcmFtZXRl
cnM9bmV3X3BhcmFtcy52YWx1ZXMoKSkKKworICAgIHNpZyA9IE5vbmUKKyAgICBpZiBpc2luc3Rh
bmNlKG9iaiwgdHlwZSk6CisgICAgICAgICMgb2JqIGlzIGEgY2xhc3Mgb3IgYSBtZXRhY2xhc3MK
KworICAgICAgICAjIEZpcnN0LCBsZXQncyBzZWUgaWYgaXQgaGFzIGFuIG92ZXJsb2FkZWQgX19j
YWxsX18gZGVmaW5lZAorICAgICAgICAjIGluIGl0cyBtZXRhY2xhc3MKKyAgICAgICAgY2FsbCA9
IF9nZXRfdXNlcl9kZWZpbmVkX21ldGhvZCh0eXBlKG9iaiksICdfX2NhbGxfXycpCisgICAgICAg
IGlmIGNhbGwgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzaWcgPSBzaWduYXR1cmUoY2FsbCkK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgTm93IHdlIGNoZWNrIGlmIHRoZSAnb2JqJyBj
bGFzcyBoYXMgYSAnX19uZXdfXycgbWV0aG9kCisgICAgICAgICAgICBuZXcgPSBfZ2V0X3VzZXJf
ZGVmaW5lZF9tZXRob2Qob2JqLCAnX19uZXdfXycpCisgICAgICAgICAgICBpZiBuZXcgaXMgbm90
IE5vbmU6CisgICAgICAgICAgICAgICAgc2lnID0gc2lnbmF0dXJlKG5ldykKKyAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgIyBGaW5hbGx5LCB3ZSBzaG91bGQgaGF2ZSBhdCBsZWFz
dCBfX2luaXRfXyBpbXBsZW1lbnRlZAorICAgICAgICAgICAgICAgIGluaXQgPSBfZ2V0X3VzZXJf
ZGVmaW5lZF9tZXRob2Qob2JqLCAnX19pbml0X18nKQorICAgICAgICAgICAgICAgIGlmIGluaXQg
aXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHNpZyA9IHNpZ25hdHVyZShpbml0KQor
ICAgIGVsaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBfTm9uVXNlckRlZmluZWRDYWxsYWJsZXMpOgor
ICAgICAgICAjIEFuIG9iamVjdCB3aXRoIF9fY2FsbF9fCisgICAgICAgICMgV2UgYWxzbyBjaGVj
ayB0aGF0IHRoZSAnb2JqJyBpcyBub3QgYW4gaW5zdGFuY2Ugb2YKKyAgICAgICAgIyBfV3JhcHBl
ckRlc2NyaXB0b3Igb3IgX01ldGhvZFdyYXBwZXIgdG8gYXZvaWQKKyAgICAgICAgIyBpbmZpbml0
ZSByZWN1cnNpb24gKGFuZCBldmVuIHBvdGVudGlhbCBzZWdmYXVsdCkKKyAgICAgICAgY2FsbCA9
IF9nZXRfdXNlcl9kZWZpbmVkX21ldGhvZCh0eXBlKG9iaiksICdfX2NhbGxfXycsICdpbV9mdW5j
JykKKyAgICAgICAgaWYgY2FsbCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNpZyA9IHNpZ25h
dHVyZShjYWxsKQorCisgICAgaWYgc2lnIGlzIG5vdCBOb25lOgorICAgICAgICAjIEZvciBjbGFz
c2VzIGFuZCBvYmplY3RzIHdlIHNraXAgdGhlIGZpcnN0IHBhcmFtZXRlciBvZiB0aGVpcgorICAg
ICAgICAjIF9fY2FsbF9fLCBfX25ld19fLCBvciBfX2luaXRfXyBtZXRob2RzCisgICAgICAgIHJl
dHVybiBzaWcucmVwbGFjZShwYXJhbWV0ZXJzPXR1cGxlKHNpZy5wYXJhbWV0ZXJzLnZhbHVlcygp
KVsxOl0pCisKKyAgICBpZiBpc2luc3RhbmNlKG9iaiwgdHlwZXMuQnVpbHRpbkZ1bmN0aW9uVHlw
ZSk6CisgICAgICAgICMgUmFpc2UgYSBuaWNlciBlcnJvciBtZXNzYWdlIGZvciBidWlsdGlucwor
ICAgICAgICBtc2cgPSAnbm8gc2lnbmF0dXJlIGZvdW5kIGZvciBidWlsdGluIGZ1bmN0aW9uIHsw
IXJ9Jy5mb3JtYXQob2JqKQorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKG1zZykKKworICAgIHJh
aXNlIFZhbHVlRXJyb3IoJ2NhbGxhYmxlIHswIXJ9IGlzIG5vdCBzdXBwb3J0ZWQgYnkgc2lnbmF0
dXJlJy5mb3JtYXQob2JqKSkKKworCitjbGFzcyBfdm9pZChvYmplY3QpOgorICAgICcnJ0EgcHJp
dmF0ZSBtYXJrZXIgLSB1c2VkIGluIFBhcmFtZXRlciAmIFNpZ25hdHVyZScnJworCisKK2NsYXNz
IF9lbXB0eShvYmplY3QpOgorICAgIHBhc3MKKworCitjbGFzcyBfUGFyYW1ldGVyS2luZChpbnQp
OgorICAgIGRlZiBfX25ld19fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIG9iaiA9
IGludC5fX25ld19fKHNlbGYsICphcmdzKQorICAgICAgICBvYmouX25hbWUgPSBrd2FyZ3NbJ25h
bWUnXQorICAgICAgICByZXR1cm4gb2JqCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAg
ICAgcmV0dXJuIHNlbGYuX25hbWUKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAg
cmV0dXJuICc8X1BhcmFtZXRlcktpbmQ6IHswIXJ9PicuZm9ybWF0KHNlbGYuX25hbWUpCisKKwor
X1BPU0lUSU9OQUxfT05MWSAgICAgICAgPSBfUGFyYW1ldGVyS2luZCgwLCBuYW1lPSdQT1NJVElP
TkFMX09OTFknKQorX1BPU0lUSU9OQUxfT1JfS0VZV09SRCAgPSBfUGFyYW1ldGVyS2luZCgxLCBu
YW1lPSdQT1NJVElPTkFMX09SX0tFWVdPUkQnKQorX1ZBUl9QT1NJVElPTkFMICAgICAgICAgPSBf
UGFyYW1ldGVyS2luZCgyLCBuYW1lPSdWQVJfUE9TSVRJT05BTCcpCitfS0VZV09SRF9PTkxZICAg
ICAgICAgICA9IF9QYXJhbWV0ZXJLaW5kKDMsIG5hbWU9J0tFWVdPUkRfT05MWScpCitfVkFSX0tF
WVdPUkQgICAgICAgICAgICA9IF9QYXJhbWV0ZXJLaW5kKDQsIG5hbWU9J1ZBUl9LRVlXT1JEJykK
KworCitjbGFzcyBQYXJhbWV0ZXIob2JqZWN0KToKKyAgICAnJydSZXByZXNlbnRzIGEgcGFyYW1l
dGVyIGluIGEgZnVuY3Rpb24gc2lnbmF0dXJlLgorCisgICAgSGFzIHRoZSBmb2xsb3dpbmcgcHVi
bGljIGF0dHJpYnV0ZXM6CisKKyAgICAqIG5hbWUgOiBzdHIKKyAgICAgICAgVGhlIG5hbWUgb2Yg
dGhlIHBhcmFtZXRlciBhcyBhIHN0cmluZy4KKyAgICAqIGRlZmF1bHQgOiBvYmplY3QKKyAgICAg
ICAgVGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBwYXJhbWV0ZXIgaWYgc3BlY2lmaWVkLiAgSWYg
dGhlCisgICAgICAgIHBhcmFtZXRlciBoYXMgbm8gZGVmYXVsdCB2YWx1ZSwgdGhpcyBhdHRyaWJ1
dGUgaXMgbm90IHNldC4KKyAgICAqIGFubm90YXRpb24KKyAgICAgICAgVGhlIGFubm90YXRpb24g
Zm9yIHRoZSBwYXJhbWV0ZXIgaWYgc3BlY2lmaWVkLiAgSWYgdGhlCisgICAgICAgIHBhcmFtZXRl
ciBoYXMgbm8gYW5ub3RhdGlvbiwgdGhpcyBhdHRyaWJ1dGUgaXMgbm90IHNldC4KKyAgICAqIGtp
bmQgOiBzdHIKKyAgICAgICAgRGVzY3JpYmVzIGhvdyBhcmd1bWVudCB2YWx1ZXMgYXJlIGJvdW5k
IHRvIHRoZSBwYXJhbWV0ZXIuCisgICAgICAgIFBvc3NpYmxlIHZhbHVlczogYFBhcmFtZXRlci5Q
T1NJVElPTkFMX09OTFlgLAorICAgICAgICBgUGFyYW1ldGVyLlBPU0lUSU9OQUxfT1JfS0VZV09S
RGAsIGBQYXJhbWV0ZXIuVkFSX1BPU0lUSU9OQUxgLAorICAgICAgICBgUGFyYW1ldGVyLktFWVdP
UkRfT05MWWAsIGBQYXJhbWV0ZXIuVkFSX0tFWVdPUkRgLgorICAgICcnJworCisgICAgX19zbG90
c19fID0gKCdfbmFtZScsICdfa2luZCcsICdfZGVmYXVsdCcsICdfYW5ub3RhdGlvbicsICdfcGFy
dGlhbF9rd2FyZycpCisKKyAgICBQT1NJVElPTkFMX09OTFkgICAgICAgICA9IF9QT1NJVElPTkFM
X09OTFkKKyAgICBQT1NJVElPTkFMX09SX0tFWVdPUkQgICA9IF9QT1NJVElPTkFMX09SX0tFWVdP
UkQKKyAgICBWQVJfUE9TSVRJT05BTCAgICAgICAgICA9IF9WQVJfUE9TSVRJT05BTAorICAgIEtF
WVdPUkRfT05MWSAgICAgICAgICAgID0gX0tFWVdPUkRfT05MWQorICAgIFZBUl9LRVlXT1JEICAg
ICAgICAgICAgID0gX1ZBUl9LRVlXT1JECisKKyAgICBlbXB0eSA9IF9lbXB0eQorCisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIG5hbWUsIGtpbmQsIGRlZmF1bHQ9X2VtcHR5LCBhbm5vdGF0aW9uPV9l
bXB0eSwKKyAgICAgICAgICAgICAgICAgX3BhcnRpYWxfa3dhcmc9RmFsc2UpOgorCisgICAgICAg
IGlmIGtpbmQgbm90IGluIChfUE9TSVRJT05BTF9PTkxZLCBfUE9TSVRJT05BTF9PUl9LRVlXT1JE
LAorICAgICAgICAgICAgICAgICAgICAgICAgX1ZBUl9QT1NJVElPTkFMLCBfS0VZV09SRF9PTkxZ
LCBfVkFSX0tFWVdPUkQpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaW52YWxpZCB2
YWx1ZSBmb3IgJ1BhcmFtZXRlci5raW5kJyBhdHRyaWJ1dGUiKQorICAgICAgICBzZWxmLl9raW5k
ID0ga2luZAorCisgICAgICAgIGlmIGRlZmF1bHQgaXMgbm90IF9lbXB0eToKKyAgICAgICAgICAg
IGlmIGtpbmQgaW4gKF9WQVJfUE9TSVRJT05BTCwgX1ZBUl9LRVlXT1JEKToKKyAgICAgICAgICAg
ICAgICBtc2cgPSAnezB9IHBhcmFtZXRlcnMgY2Fubm90IGhhdmUgZGVmYXVsdCB2YWx1ZXMnLmZv
cm1hdChraW5kKQorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IobXNnKQorICAgICAg
ICBzZWxmLl9kZWZhdWx0ID0gZGVmYXVsdAorICAgICAgICBzZWxmLl9hbm5vdGF0aW9uID0gYW5u
b3RhdGlvbgorCisgICAgICAgIGlmIG5hbWUgaXMgTm9uZToKKyAgICAgICAgICAgIGlmIGtpbmQg
IT0gX1BPU0lUSU9OQUxfT05MWToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJO
b25lIGlzIG5vdCBhIHZhbGlkIG5hbWUgZm9yIGEgIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIm5vbi1wb3NpdGlvbmFsLW9ubHkgcGFyYW1ldGVyIikKKyAgICAgICAgICAgIHNl
bGYuX25hbWUgPSBuYW1lCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBuYW1lID0gc3RyKG5h
bWUpCisgICAgICAgICAgICBpZiBraW5kICE9IF9QT1NJVElPTkFMX09OTFkgYW5kIG5vdCByZS5t
YXRjaChyJ1thLXpfXVx3KiQnLCBuYW1lLCByZS5JKToKKyAgICAgICAgICAgICAgICBtc2cgPSAn
ezAhcn0gaXMgbm90IGEgdmFsaWQgcGFyYW1ldGVyIG5hbWUnLmZvcm1hdChuYW1lKQorICAgICAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IobXNnKQorICAgICAgICAgICAgc2VsZi5fbmFtZSA9
IG5hbWUKKworICAgICAgICBzZWxmLl9wYXJ0aWFsX2t3YXJnID0gX3BhcnRpYWxfa3dhcmcKKwor
ICAgIEBwcm9wZXJ0eQorICAgIGRlZiBuYW1lKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5f
bmFtZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGRlZmF1bHQoc2VsZik6CisgICAgICAgIHJl
dHVybiBzZWxmLl9kZWZhdWx0CisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgYW5ub3RhdGlvbihz
ZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2Fubm90YXRpb24KKworICAgIEBwcm9wZXJ0eQor
ICAgIGRlZiBraW5kKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fa2luZAorCisgICAgZGVm
IHJlcGxhY2Uoc2VsZiwgbmFtZT1fdm9pZCwga2luZD1fdm9pZCwgYW5ub3RhdGlvbj1fdm9pZCwK
KyAgICAgICAgICAgICAgICBkZWZhdWx0PV92b2lkLCBfcGFydGlhbF9rd2FyZz1fdm9pZCk6Cisg
ICAgICAgICcnJ0NyZWF0ZXMgYSBjdXN0b21pemVkIGNvcHkgb2YgdGhlIFBhcmFtZXRlci4nJycK
KworICAgICAgICBpZiBuYW1lIGlzIF92b2lkOgorICAgICAgICAgICAgbmFtZSA9IHNlbGYuX25h
bWUKKworICAgICAgICBpZiBraW5kIGlzIF92b2lkOgorICAgICAgICAgICAga2luZCA9IHNlbGYu
X2tpbmQKKworICAgICAgICBpZiBhbm5vdGF0aW9uIGlzIF92b2lkOgorICAgICAgICAgICAgYW5u
b3RhdGlvbiA9IHNlbGYuX2Fubm90YXRpb24KKworICAgICAgICBpZiBkZWZhdWx0IGlzIF92b2lk
OgorICAgICAgICAgICAgZGVmYXVsdCA9IHNlbGYuX2RlZmF1bHQKKworICAgICAgICBpZiBfcGFy
dGlhbF9rd2FyZyBpcyBfdm9pZDoKKyAgICAgICAgICAgIF9wYXJ0aWFsX2t3YXJnID0gc2VsZi5f
cGFydGlhbF9rd2FyZworCisgICAgICAgIHJldHVybiB0eXBlKHNlbGYpKG5hbWUsIGtpbmQsIGRl
ZmF1bHQ9ZGVmYXVsdCwgYW5ub3RhdGlvbj1hbm5vdGF0aW9uLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICBfcGFydGlhbF9rd2FyZz1fcGFydGlhbF9rd2FyZykKKworICAgIGRlZiBfX3N0cl9f
KHNlbGYpOgorICAgICAgICBraW5kID0gc2VsZi5raW5kCisKKyAgICAgICAgZm9ybWF0dGVkID0g
c2VsZi5fbmFtZQorICAgICAgICBpZiBraW5kID09IF9QT1NJVElPTkFMX09OTFk6CisgICAgICAg
ICAgICBpZiBmb3JtYXR0ZWQgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBmb3JtYXR0ZWQgPSAn
JworICAgICAgICAgICAgZm9ybWF0dGVkID0gJzx7MH0+Jy5mb3JtYXQoZm9ybWF0dGVkKQorCisg
ICAgICAgICMgQWRkIGFubm90YXRpb24gYW5kIGRlZmF1bHQgdmFsdWUKKyAgICAgICAgaWYgc2Vs
Zi5fYW5ub3RhdGlvbiBpcyBub3QgX2VtcHR5OgorICAgICAgICAgICAgZm9ybWF0dGVkID0gJ3sw
fTp7MX0nLmZvcm1hdChmb3JtYXR0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmb3JtYXRhbm5vdGF0aW9uKHNlbGYuX2Fubm90YXRpb24pKQorCisgICAgICAgIGlm
IHNlbGYuX2RlZmF1bHQgaXMgbm90IF9lbXB0eToKKyAgICAgICAgICAgIGZvcm1hdHRlZCA9ICd7
MH09ezF9Jy5mb3JtYXQoZm9ybWF0dGVkLCByZXByKHNlbGYuX2RlZmF1bHQpKQorCisgICAgICAg
IGlmIGtpbmQgPT0gX1ZBUl9QT1NJVElPTkFMOgorICAgICAgICAgICAgZm9ybWF0dGVkID0gJyon
ICsgZm9ybWF0dGVkCisgICAgICAgIGVsaWYga2luZCA9PSBfVkFSX0tFWVdPUkQ6CisgICAgICAg
ICAgICBmb3JtYXR0ZWQgPSAnKionICsgZm9ybWF0dGVkCisKKyAgICAgICAgcmV0dXJuIGZvcm1h
dHRlZAorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gJzx7MH0gYXQg
ezE6I3h9IHsyIXJ9PicuZm9ybWF0KHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkKHNlbGYpLCBzZWxmLm5hbWUpCisK
KyAgICBkZWYgX19oYXNoX18oc2VsZik6CisgICAgICAgIG1zZyA9ICJ1bmhhc2hhYmxlIHR5cGU6
ICd7MH0nIi5mb3JtYXQoc2VsZi5fX2NsYXNzX18uX19uYW1lX18pCisgICAgICAgIHJhaXNlIFR5
cGVFcnJvcihtc2cpCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0
dXJuIChpc3N1YmNsYXNzKG90aGVyLl9fY2xhc3NfXywgUGFyYW1ldGVyKSBhbmQKKyAgICAgICAg
ICAgICAgICBzZWxmLl9uYW1lID09IG90aGVyLl9uYW1lIGFuZAorICAgICAgICAgICAgICAgIHNl
bGYuX2tpbmQgPT0gb3RoZXIuX2tpbmQgYW5kCisgICAgICAgICAgICAgICAgc2VsZi5fZGVmYXVs
dCA9PSBvdGhlci5fZGVmYXVsdCBhbmQKKyAgICAgICAgICAgICAgICBzZWxmLl9hbm5vdGF0aW9u
ID09IG90aGVyLl9hbm5vdGF0aW9uKQorCisgICAgZGVmIF9fbmVfXyhzZWxmLCBvdGhlcik6Cisg
ICAgICAgIHJldHVybiBub3Qgc2VsZi5fX2VxX18ob3RoZXIpCisKKworY2xhc3MgQm91bmRBcmd1
bWVudHMob2JqZWN0KToKKyAgICAnJydSZXN1bHQgb2YgYFNpZ25hdHVyZS5iaW5kYCBjYWxsLiAg
SG9sZHMgdGhlIG1hcHBpbmcgb2YgYXJndW1lbnRzCisgICAgdG8gdGhlIGZ1bmN0aW9uJ3MgcGFy
YW1ldGVycy4KKworICAgIEhhcyB0aGUgZm9sbG93aW5nIHB1YmxpYyBhdHRyaWJ1dGVzOgorCisg
ICAgKiBhcmd1bWVudHMgOiBPcmRlcmVkRGljdAorICAgICAgICBBbiBvcmRlcmVkIG11dGFibGUg
bWFwcGluZyBvZiBwYXJhbWV0ZXJzJyBuYW1lcyB0byBhcmd1bWVudHMnIHZhbHVlcy4KKyAgICAg
ICAgRG9lcyBub3QgY29udGFpbiBhcmd1bWVudHMnIGRlZmF1bHQgdmFsdWVzLgorICAgICogc2ln
bmF0dXJlIDogU2lnbmF0dXJlCisgICAgICAgIFRoZSBTaWduYXR1cmUgb2JqZWN0IHRoYXQgY3Jl
YXRlZCB0aGlzIGluc3RhbmNlLgorICAgICogYXJncyA6IHR1cGxlCisgICAgICAgIFR1cGxlIG9m
IHBvc2l0aW9uYWwgYXJndW1lbnRzIHZhbHVlcy4KKyAgICAqIGt3YXJncyA6IGRpY3QKKyAgICAg
ICAgRGljdCBvZiBrZXl3b3JkIGFyZ3VtZW50cyB2YWx1ZXMuCisgICAgJycnCisKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgc2lnbmF0dXJlLCBhcmd1bWVudHMpOgorICAgICAgICBzZWxmLmFyZ3Vt
ZW50cyA9IGFyZ3VtZW50cworICAgICAgICBzZWxmLl9zaWduYXR1cmUgPSBzaWduYXR1cmUKKwor
ICAgIEBwcm9wZXJ0eQorICAgIGRlZiBzaWduYXR1cmUoc2VsZik6CisgICAgICAgIHJldHVybiBz
ZWxmLl9zaWduYXR1cmUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBhcmdzKHNlbGYpOgorICAg
ICAgICBhcmdzID0gW10KKyAgICAgICAgZm9yIHBhcmFtX25hbWUsIHBhcmFtIGluIHNlbGYuX3Np
Z25hdHVyZS5wYXJhbWV0ZXJzLml0ZW1zKCk6CisgICAgICAgICAgICBpZiAocGFyYW0ua2luZCBp
biAoX1ZBUl9LRVlXT1JELCBfS0VZV09SRF9PTkxZKSBvcgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtLl9wYXJ0aWFsX2t3YXJnKToKKyAg
ICAgICAgICAgICAgICAjIEtleXdvcmQgYXJndW1lbnRzIG1hcHBlZCBieSAnZnVuY3Rvb2xzLnBh
cnRpYWwnCisgICAgICAgICAgICAgICAgIyAoUGFyYW1ldGVyLl9wYXJ0aWFsX2t3YXJnIGlzIFRy
dWUpIGFyZSBtYXBwZWQKKyAgICAgICAgICAgICAgICAjIGluICdCb3VuZEFyZ3VtZW50cy5rd2Fy
Z3MnLCBhbG9uZyB3aXRoIFZBUl9LRVlXT1JEICYKKyAgICAgICAgICAgICAgICAjIEtFWVdPUkRf
T05MWQorICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAg
ICAgICAgICBhcmcgPSBzZWxmLmFyZ3VtZW50c1twYXJhbV9uYW1lXQorICAgICAgICAgICAgZXhj
ZXB0IEtleUVycm9yOgorICAgICAgICAgICAgICAgICMgV2UncmUgZG9uZSBoZXJlLiBPdGhlciBh
cmd1bWVudHMKKyAgICAgICAgICAgICAgICAjIHdpbGwgYmUgbWFwcGVkIGluICdCb3VuZEFyZ3Vt
ZW50cy5rd2FyZ3MnCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICAgICAgaWYgcGFyYW0ua2luZCA9PSBfVkFSX1BPU0lUSU9OQUw6CisgICAgICAg
ICAgICAgICAgICAgICMgKmFyZ3MKKyAgICAgICAgICAgICAgICAgICAgYXJncy5leHRlbmQoYXJn
KQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICMgcGxhaW4gYXJn
dW1lbnQKKyAgICAgICAgICAgICAgICAgICAgYXJncy5hcHBlbmQoYXJnKQorCisgICAgICAgIHJl
dHVybiB0dXBsZShhcmdzKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGt3YXJncyhzZWxmKToK
KyAgICAgICAga3dhcmdzID0ge30KKyAgICAgICAga3dhcmdzX3N0YXJ0ZWQgPSBGYWxzZQorICAg
ICAgICBmb3IgcGFyYW1fbmFtZSwgcGFyYW0gaW4gc2VsZi5fc2lnbmF0dXJlLnBhcmFtZXRlcnMu
aXRlbXMoKToKKyAgICAgICAgICAgIGlmIG5vdCBrd2FyZ3Nfc3RhcnRlZDoKKyAgICAgICAgICAg
ICAgICBpZiAocGFyYW0ua2luZCBpbiAoX1ZBUl9LRVlXT1JELCBfS0VZV09SRF9PTkxZKSBvcgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW0uX3Bh
cnRpYWxfa3dhcmcpOgorICAgICAgICAgICAgICAgICAgICBrd2FyZ3Nfc3RhcnRlZCA9IFRydWUK
KyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBpZiBwYXJhbV9uYW1l
IG5vdCBpbiBzZWxmLmFyZ3VtZW50czoKKyAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc19z
dGFydGVkID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAg
ICAgICAgaWYgbm90IGt3YXJnc19zdGFydGVkOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisK
KyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBhcmcgPSBzZWxmLmFyZ3VtZW50c1tw
YXJhbV9uYW1lXQorICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgICAg
IHBhc3MKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaWYgcGFyYW0ua2luZCA9
PSBfVkFSX0tFWVdPUkQ6CisgICAgICAgICAgICAgICAgICAgICMgKiprd2FyZ3MKKyAgICAgICAg
ICAgICAgICAgICAga3dhcmdzLnVwZGF0ZShhcmcpCisgICAgICAgICAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgICAgICAgICAgIyBwbGFpbiBrZXl3b3JkIGFyZ3VtZW50CisgICAgICAgICAgICAg
ICAgICAgIGt3YXJnc1twYXJhbV9uYW1lXSA9IGFyZworCisgICAgICAgIHJldHVybiBrd2FyZ3MK
KworICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKKyAgICAgICAgbXNnID0gInVuaGFzaGFibGUgdHlw
ZTogJ3swfSciLmZvcm1hdChzZWxmLl9fY2xhc3NfXy5fX25hbWVfXykKKyAgICAgICAgcmFpc2Ug
VHlwZUVycm9yKG1zZykKKworICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgorICAgICAgICBy
ZXR1cm4gKGlzc3ViY2xhc3Mob3RoZXIuX19jbGFzc19fLCBCb3VuZEFyZ3VtZW50cykgYW5kCisg
ICAgICAgICAgICAgICAgc2VsZi5zaWduYXR1cmUgPT0gb3RoZXIuc2lnbmF0dXJlIGFuZAorICAg
ICAgICAgICAgICAgIHNlbGYuYXJndW1lbnRzID09IG90aGVyLmFyZ3VtZW50cykKKworICAgIGRl
ZiBfX25lX18oc2VsZiwgb3RoZXIpOgorICAgICAgICByZXR1cm4gbm90IHNlbGYuX19lcV9fKG90
aGVyKQorCisKK2NsYXNzIFNpZ25hdHVyZShvYmplY3QpOgorICAgICcnJ0EgU2lnbmF0dXJlIG9i
amVjdCByZXByZXNlbnRzIHRoZSBvdmVyYWxsIHNpZ25hdHVyZSBvZiBhIGZ1bmN0aW9uLgorICAg
IEl0IHN0b3JlcyBhIFBhcmFtZXRlciBvYmplY3QgZm9yIGVhY2ggcGFyYW1ldGVyIGFjY2VwdGVk
IGJ5IHRoZQorICAgIGZ1bmN0aW9uLCBhcyB3ZWxsIGFzIGluZm9ybWF0aW9uIHNwZWNpZmljIHRv
IHRoZSBmdW5jdGlvbiBpdHNlbGYuCisKKyAgICBBIFNpZ25hdHVyZSBvYmplY3QgaGFzIHRoZSBm
b2xsb3dpbmcgcHVibGljIGF0dHJpYnV0ZXMgYW5kIG1ldGhvZHM6CisKKyAgICAqIHBhcmFtZXRl
cnMgOiBPcmRlcmVkRGljdAorICAgICAgICBBbiBvcmRlcmVkIG1hcHBpbmcgb2YgcGFyYW1ldGVy
cycgbmFtZXMgdG8gdGhlIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgUGFyYW1ldGVyIG9iamVjdHMg
KGtleXdvcmQtb25seSBhcmd1bWVudHMgYXJlIGluIHRoZSBzYW1lIG9yZGVyCisgICAgICAgIGFz
IGxpc3RlZCBpbiBgY29kZS5jb192YXJuYW1lc2ApLgorICAgICogcmV0dXJuX2Fubm90YXRpb24g
OiBvYmplY3QKKyAgICAgICAgVGhlIGFubm90YXRpb24gZm9yIHRoZSByZXR1cm4gdHlwZSBvZiB0
aGUgZnVuY3Rpb24gaWYgc3BlY2lmaWVkLgorICAgICAgICBJZiB0aGUgZnVuY3Rpb24gaGFzIG5v
IGFubm90YXRpb24gZm9yIGl0cyByZXR1cm4gdHlwZSwgdGhpcworICAgICAgICBhdHRyaWJ1dGUg
aXMgbm90IHNldC4KKyAgICAqIGJpbmQoKmFyZ3MsICoqa3dhcmdzKSAtPiBCb3VuZEFyZ3VtZW50
cworICAgICAgICBDcmVhdGVzIGEgbWFwcGluZyBmcm9tIHBvc2l0aW9uYWwgYW5kIGtleXdvcmQg
YXJndW1lbnRzIHRvCisgICAgICAgIHBhcmFtZXRlcnMuCisgICAgKiBiaW5kX3BhcnRpYWwoKmFy
Z3MsICoqa3dhcmdzKSAtPiBCb3VuZEFyZ3VtZW50cworICAgICAgICBDcmVhdGVzIGEgcGFydGlh
bCBtYXBwaW5nIGZyb20gcG9zaXRpb25hbCBhbmQga2V5d29yZCBhcmd1bWVudHMKKyAgICAgICAg
dG8gcGFyYW1ldGVycyAoc2ltdWxhdGluZyAnZnVuY3Rvb2xzLnBhcnRpYWwnIGJlaGF2aW9yLikK
KyAgICAnJycKKworICAgIF9fc2xvdHNfXyA9ICgnX3JldHVybl9hbm5vdGF0aW9uJywgJ19wYXJh
bWV0ZXJzJykKKworICAgIF9wYXJhbWV0ZXJfY2xzID0gUGFyYW1ldGVyCisgICAgX2JvdW5kX2Fy
Z3VtZW50c19jbHMgPSBCb3VuZEFyZ3VtZW50cworCisgICAgZW1wdHkgPSBfZW1wdHkKKworICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBwYXJhbWV0ZXJzPU5vbmUsIHJldHVybl9hbm5vdGF0aW9uPV9l
bXB0eSwKKyAgICAgICAgICAgICAgICAgX192YWxpZGF0ZV9wYXJhbWV0ZXJzX189VHJ1ZSk6Cisg
ICAgICAgICcnJ0NvbnN0cnVjdHMgU2lnbmF0dXJlIGZyb20gdGhlIGdpdmVuIGxpc3Qgb2YgUGFy
YW1ldGVyCisgICAgICAgIG9iamVjdHMgYW5kICdyZXR1cm5fYW5ub3RhdGlvbicuICBBbGwgYXJn
dW1lbnRzIGFyZSBvcHRpb25hbC4KKyAgICAgICAgJycnCisKKyAgICAgICAgaWYgcGFyYW1ldGVy
cyBpcyBOb25lOgorICAgICAgICAgICAgcGFyYW1zID0gT3JkZXJlZERpY3QoKQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgaWYgX192YWxpZGF0ZV9wYXJhbWV0ZXJzX186CisgICAgICAgICAg
ICAgICAgcGFyYW1zID0gT3JkZXJlZERpY3QoKQorICAgICAgICAgICAgICAgIHRvcF9raW5kID0g
X1BPU0lUSU9OQUxfT05MWQorCisgICAgICAgICAgICAgICAgZm9yIGlkeCwgcGFyYW0gaW4gZW51
bWVyYXRlKHBhcmFtZXRlcnMpOgorICAgICAgICAgICAgICAgICAgICBraW5kID0gcGFyYW0ua2lu
ZAorICAgICAgICAgICAgICAgICAgICBpZiBraW5kIDwgdG9wX2tpbmQ6CisgICAgICAgICAgICAg
ICAgICAgICAgICBtc2cgPSAnd3JvbmcgcGFyYW1ldGVyIG9yZGVyOiB7MH0gYmVmb3JlIHsxfScK
KyAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IG1zZy5mb3JtYXQodG9wX2tpbmQsIHBhcmFt
LmtpbmQpCisgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKG1zZykKKyAg
ICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvcF9raW5k
ID0ga2luZAorCisgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBwYXJhbS5uYW1lCisgICAgICAg
ICAgICAgICAgICAgIGlmIG5hbWUgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgICAgIG5h
bWUgPSBzdHIoaWR4KQorICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW0gPSBwYXJhbS5yZXBs
YWNlKG5hbWU9bmFtZSkKKworICAgICAgICAgICAgICAgICAgICBpZiBuYW1lIGluIHBhcmFtczoK
KyAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9ICdkdXBsaWNhdGUgcGFyYW1ldGVyIG5hbWU6
IHswIXJ9Jy5mb3JtYXQobmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IobXNnKQorICAgICAgICAgICAgICAgICAgICBwYXJhbXNbbmFtZV0gPSBwYXJhbQorICAg
ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwYXJhbXMgPSBPcmRlcmVkRGljdCgoKHBh
cmFtLm5hbWUsIHBhcmFtKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZm9yIHBhcmFtIGluIHBhcmFtZXRlcnMpKQorCisgICAgICAgIHNlbGYuX3BhcmFt
ZXRlcnMgPSBwYXJhbXMKKyAgICAgICAgc2VsZi5fcmV0dXJuX2Fubm90YXRpb24gPSByZXR1cm5f
YW5ub3RhdGlvbgorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGZyb21fZnVuY3Rpb24oY2xz
LCBmdW5jKToKKyAgICAgICAgJycnQ29uc3RydWN0cyBTaWduYXR1cmUgZm9yIHRoZSBnaXZlbiBw
eXRob24gZnVuY3Rpb24nJycKKworICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShmdW5jLCB0eXBl
cy5GdW5jdGlvblR5cGUpOgorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCd7MCFyfSBpcyBu
b3QgYSBQeXRob24gZnVuY3Rpb24nLmZvcm1hdChmdW5jKSkKKworICAgICAgICBQYXJhbWV0ZXIg
PSBjbHMuX3BhcmFtZXRlcl9jbHMKKworICAgICAgICAjIFBhcmFtZXRlciBpbmZvcm1hdGlvbi4K
KyAgICAgICAgZnVuY19jb2RlID0gZnVuYy5fX2NvZGVfXworICAgICAgICBwb3NfY291bnQgPSBm
dW5jX2NvZGUuY29fYXJnY291bnQKKyAgICAgICAgYXJnX25hbWVzID0gZnVuY19jb2RlLmNvX3Zh
cm5hbWVzCisgICAgICAgIHBvc2l0aW9uYWwgPSB0dXBsZShhcmdfbmFtZXNbOnBvc19jb3VudF0p
CisgICAgICAgIGtleXdvcmRfb25seV9jb3VudCA9IGdldGF0dHIoZnVuY19jb2RlLCAnY29fa3dv
bmx5YXJnY291bnQnLCAwKQorICAgICAgICBrZXl3b3JkX29ubHkgPSBhcmdfbmFtZXNbcG9zX2Nv
dW50Oihwb3NfY291bnQgKyBrZXl3b3JkX29ubHlfY291bnQpXQorICAgICAgICBhbm5vdGF0aW9u
cyA9IGdldGF0dHIoZnVuYywgJ19fYW5ub3RhdGlvbnNfXycsIHt9KQorICAgICAgICBkZWZhdWx0
cyA9IGZ1bmMuX19kZWZhdWx0c19fCisgICAgICAgIGt3ZGVmYXVsdHMgPSBnZXRhdHRyKGZ1bmMs
ICdfX2t3ZGVmYXVsdHNfXycsIE5vbmUpCisKKyAgICAgICAgaWYgZGVmYXVsdHM6CisgICAgICAg
ICAgICBwb3NfZGVmYXVsdF9jb3VudCA9IGxlbihkZWZhdWx0cykKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIHBvc19kZWZhdWx0X2NvdW50ID0gMAorCisgICAgICAgIHBhcmFtZXRlcnMgPSBb
XQorCisgICAgICAgICMgTm9uLWtleXdvcmQtb25seSBwYXJhbWV0ZXJzIHcvbyBkZWZhdWx0cy4K
KyAgICAgICAgbm9uX2RlZmF1bHRfY291bnQgPSBwb3NfY291bnQgLSBwb3NfZGVmYXVsdF9jb3Vu
dAorICAgICAgICBmb3IgbmFtZSBpbiBwb3NpdGlvbmFsWzpub25fZGVmYXVsdF9jb3VudF06Cisg
ICAgICAgICAgICBhbm5vdGF0aW9uID0gYW5ub3RhdGlvbnMuZ2V0KG5hbWUsIF9lbXB0eSkKKyAg
ICAgICAgICAgIHBhcmFtZXRlcnMuYXBwZW5kKFBhcmFtZXRlcihuYW1lLCBhbm5vdGF0aW9uPWFu
bm90YXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZD1f
UE9TSVRJT05BTF9PUl9LRVlXT1JEKSkKKworICAgICAgICAjIC4uLiB3LyBkZWZhdWx0cy4KKyAg
ICAgICAgZm9yIG9mZnNldCwgbmFtZSBpbiBlbnVtZXJhdGUocG9zaXRpb25hbFtub25fZGVmYXVs
dF9jb3VudDpdKToKKyAgICAgICAgICAgIGFubm90YXRpb24gPSBhbm5vdGF0aW9ucy5nZXQobmFt
ZSwgX2VtcHR5KQorICAgICAgICAgICAgcGFyYW1ldGVycy5hcHBlbmQoUGFyYW1ldGVyKG5hbWUs
IGFubm90YXRpb249YW5ub3RhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBraW5kPV9QT1NJVElPTkFMX09SX0tFWVdPUkQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1kZWZhdWx0c1tvZmZzZXRdKSkKKworICAgICAg
ICAjICphcmdzCisgICAgICAgIGlmIGZ1bmNfY29kZS5jb19mbGFncyAmIDB4MDQ6CisgICAgICAg
ICAgICBuYW1lID0gYXJnX25hbWVzW3Bvc19jb3VudCArIGtleXdvcmRfb25seV9jb3VudF0KKyAg
ICAgICAgICAgIGFubm90YXRpb24gPSBhbm5vdGF0aW9ucy5nZXQobmFtZSwgX2VtcHR5KQorICAg
ICAgICAgICAgcGFyYW1ldGVycy5hcHBlbmQoUGFyYW1ldGVyKG5hbWUsIGFubm90YXRpb249YW5u
b3RhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kPV9W
QVJfUE9TSVRJT05BTCkpCisKKyAgICAgICAgIyBLZXl3b3JkLW9ubHkgcGFyYW1ldGVycy4KKyAg
ICAgICAgZm9yIG5hbWUgaW4ga2V5d29yZF9vbmx5OgorICAgICAgICAgICAgZGVmYXVsdCA9IF9l
bXB0eQorICAgICAgICAgICAgaWYga3dkZWZhdWx0cyBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
ICAgICBkZWZhdWx0ID0ga3dkZWZhdWx0cy5nZXQobmFtZSwgX2VtcHR5KQorCisgICAgICAgICAg
ICBhbm5vdGF0aW9uID0gYW5ub3RhdGlvbnMuZ2V0KG5hbWUsIF9lbXB0eSkKKyAgICAgICAgICAg
IHBhcmFtZXRlcnMuYXBwZW5kKFBhcmFtZXRlcihuYW1lLCBhbm5vdGF0aW9uPWFubm90YXRpb24s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZD1fS0VZV09SRF9P
TkxZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9ZGVm
YXVsdCkpCisgICAgICAgICMgKiprd2FyZ3MKKyAgICAgICAgaWYgZnVuY19jb2RlLmNvX2ZsYWdz
ICYgMHgwODoKKyAgICAgICAgICAgIGluZGV4ID0gcG9zX2NvdW50ICsga2V5d29yZF9vbmx5X2Nv
dW50CisgICAgICAgICAgICBpZiBmdW5jX2NvZGUuY29fZmxhZ3MgJiAweDA0OgorICAgICAgICAg
ICAgICAgIGluZGV4ICs9IDEKKworICAgICAgICAgICAgbmFtZSA9IGFyZ19uYW1lc1tpbmRleF0K
KyAgICAgICAgICAgIGFubm90YXRpb24gPSBhbm5vdGF0aW9ucy5nZXQobmFtZSwgX2VtcHR5KQor
ICAgICAgICAgICAgcGFyYW1ldGVycy5hcHBlbmQoUGFyYW1ldGVyKG5hbWUsIGFubm90YXRpb249
YW5ub3RhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5k
PV9WQVJfS0VZV09SRCkpCisKKyAgICAgICAgcmV0dXJuIGNscyhwYXJhbWV0ZXJzLAorICAgICAg
ICAgICAgICAgICAgIHJldHVybl9hbm5vdGF0aW9uPWFubm90YXRpb25zLmdldCgncmV0dXJuJywg
X2VtcHR5KSwKKyAgICAgICAgICAgICAgICAgICBfX3ZhbGlkYXRlX3BhcmFtZXRlcnNfXz1GYWxz
ZSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBwYXJhbWV0ZXJzKHNlbGYpOgorICAgICAgICB0
cnk6CisgICAgICAgICAgICByZXR1cm4gdHlwZXMuTWFwcGluZ1Byb3h5VHlwZShzZWxmLl9wYXJh
bWV0ZXJzKQorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICByZXR1
cm4gT3JkZXJlZERpY3Qoc2VsZi5fcGFyYW1ldGVycy5pdGVtcygpKQorCisgICAgQHByb3BlcnR5
CisgICAgZGVmIHJldHVybl9hbm5vdGF0aW9uKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5f
cmV0dXJuX2Fubm90YXRpb24KKworICAgIGRlZiByZXBsYWNlKHNlbGYsIHBhcmFtZXRlcnM9X3Zv
aWQsIHJldHVybl9hbm5vdGF0aW9uPV92b2lkKToKKyAgICAgICAgJycnQ3JlYXRlcyBhIGN1c3Rv
bWl6ZWQgY29weSBvZiB0aGUgU2lnbmF0dXJlLgorICAgICAgICBQYXNzICdwYXJhbWV0ZXJzJyBh
bmQvb3IgJ3JldHVybl9hbm5vdGF0aW9uJyBhcmd1bWVudHMKKyAgICAgICAgdG8gb3ZlcnJpZGUg
dGhlbSBpbiB0aGUgbmV3IGNvcHkuCisgICAgICAgICcnJworCisgICAgICAgIGlmIHBhcmFtZXRl
cnMgaXMgX3ZvaWQ6CisgICAgICAgICAgICBwYXJhbWV0ZXJzID0gc2VsZi5wYXJhbWV0ZXJzLnZh
bHVlcygpCisKKyAgICAgICAgaWYgcmV0dXJuX2Fubm90YXRpb24gaXMgX3ZvaWQ6CisgICAgICAg
ICAgICByZXR1cm5fYW5ub3RhdGlvbiA9IHNlbGYuX3JldHVybl9hbm5vdGF0aW9uCisKKyAgICAg
ICAgcmV0dXJuIHR5cGUoc2VsZikocGFyYW1ldGVycywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuX2Fubm90YXRpb249cmV0dXJuX2Fubm90YXRpb24pCisKKyAgICBkZWYgX19oYXNo
X18oc2VsZik6CisgICAgICAgIG1zZyA9ICJ1bmhhc2hhYmxlIHR5cGU6ICd7MH0nIi5mb3JtYXQo
c2VsZi5fX2NsYXNzX18uX19uYW1lX18pCisgICAgICAgIHJhaXNlIFR5cGVFcnJvcihtc2cpCisK
KyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgaWYgKG5vdCBpc3N1YmNsYXNz
KHR5cGUob3RoZXIpLCBTaWduYXR1cmUpIG9yCisgICAgICAgICAgICAgICAgICAgIHNlbGYucmV0
dXJuX2Fubm90YXRpb24gIT0gb3RoZXIucmV0dXJuX2Fubm90YXRpb24gb3IKKyAgICAgICAgICAg
ICAgICAgICAgbGVuKHNlbGYucGFyYW1ldGVycykgIT0gbGVuKG90aGVyLnBhcmFtZXRlcnMpKToK
KyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIG90aGVyX3Bvc2l0aW9ucyA9IGRp
Y3QoKHBhcmFtLCBpZHgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaWR4LCBwYXJh
bSBpbiBlbnVtZXJhdGUob3RoZXIucGFyYW1ldGVycy5rZXlzKCkpKQorCisgICAgICAgIGZvciBp
ZHgsIChwYXJhbV9uYW1lLCBwYXJhbSkgaW4gZW51bWVyYXRlKHNlbGYucGFyYW1ldGVycy5pdGVt
cygpKToKKyAgICAgICAgICAgIGlmIHBhcmFtLmtpbmQgPT0gX0tFWVdPUkRfT05MWToKKyAgICAg
ICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIG90aGVyX3BhcmFtID0gb3RoZXIu
cGFyYW1ldGVyc1twYXJhbV9uYW1lXQorICAgICAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICAgICAgaWYgcGFyYW0gIT0gb3RoZXJfcGFyYW06CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBvdGhlcl9pZHggPSBvdGhlcl9wb3NpdGlv
bnNbcGFyYW1fbmFtZV0KKyAgICAgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgICAgIGlmIChpZHggIT0gb3RoZXJfaWR4IG9yCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXJhbSAhPSBvdGhlci5wYXJhbWV0ZXJzW3BhcmFtX25hbWVdKToK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIHJldHVybiBU
cnVlCisKKyAgICBkZWYgX19uZV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIG5vdCBz
ZWxmLl9fZXFfXyhvdGhlcikKKworICAgIGRlZiBfYmluZChzZWxmLCBhcmdzLCBrd2FyZ3MsIHBh
cnRpYWw9RmFsc2UpOgorICAgICAgICAnJydQcml2YXRlIG1ldGhvZC4gIERvbid0IHVzZSBkaXJl
Y3RseS4nJycKKworICAgICAgICBhcmd1bWVudHMgPSBPcmRlcmVkRGljdCgpCisKKyAgICAgICAg
cGFyYW1ldGVycyA9IGl0ZXIoc2VsZi5wYXJhbWV0ZXJzLnZhbHVlcygpKQorICAgICAgICBwYXJh
bWV0ZXJzX2V4ID0gKCkKKyAgICAgICAgYXJnX3ZhbHMgPSBpdGVyKGFyZ3MpCisKKyAgICAgICAg
aWYgcGFydGlhbDoKKyAgICAgICAgICAgICMgU3VwcG9ydCBmb3IgYmluZGluZyBhcmd1bWVudHMg
dG8gJ2Z1bmN0b29scy5wYXJ0aWFsJyBvYmplY3RzLgorICAgICAgICAgICAgIyBTZWUgJ2Z1bmN0
b29scy5wYXJ0aWFsJyBjYXNlIGluICdzaWduYXR1cmUoKScgaW1wbGVtZW50YXRpb24KKyAgICAg
ICAgICAgICMgZm9yIGRldGFpbHMuCisgICAgICAgICAgICBmb3IgcGFyYW1fbmFtZSwgcGFyYW0g
aW4gc2VsZi5wYXJhbWV0ZXJzLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgaWYgKHBhcmFtLl9w
YXJ0aWFsX2t3YXJnIGFuZCBwYXJhbV9uYW1lIG5vdCBpbiBrd2FyZ3MpOgorICAgICAgICAgICAg
ICAgICAgICAjIFNpbXVsYXRpbmcgJ2Z1bmN0b29scy5wYXJ0aWFsJyBiZWhhdmlvcgorICAgICAg
ICAgICAgICAgICAgICBrd2FyZ3NbcGFyYW1fbmFtZV0gPSBwYXJhbS5kZWZhdWx0CisKKyAgICAg
ICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgICMgTGV0J3MgaXRlcmF0ZSB0aHJvdWdoIHRoZSBw
b3NpdGlvbmFsIGFyZ3VtZW50cyBhbmQgY29ycmVzcG9uZGluZworICAgICAgICAgICAgIyBwYXJh
bWV0ZXJzCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgYXJnX3ZhbCA9IG5leHQo
YXJnX3ZhbHMpCisgICAgICAgICAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbjoKKyAgICAgICAgICAg
ICAgICAjIE5vIG1vcmUgcG9zaXRpb25hbCBhcmd1bWVudHMKKyAgICAgICAgICAgICAgICB0cnk6
CisgICAgICAgICAgICAgICAgICAgIHBhcmFtID0gbmV4dChwYXJhbWV0ZXJzKQorICAgICAgICAg
ICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgorICAgICAgICAgICAgICAgICAgICAjIE5vIG1v
cmUgcGFyYW1ldGVycy4gVGhhdCdzIGl0LiBKdXN0IG5lZWQgdG8gY2hlY2sgdGhhdAorICAgICAg
ICAgICAgICAgICAgICAjIHdlIGhhdmUgbm8gYGt3YXJnc2AgYWZ0ZXIgdGhpcyB3aGlsZSBsb29w
CisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICAgICAgaWYgcGFyYW0ua2luZCA9PSBfVkFSX1BPU0lUSU9OQUw6CisgICAgICAg
ICAgICAgICAgICAgICAgICAjIFRoYXQncyBPSywganVzdCBlbXB0eSAqYXJncy4gIExldCdzIHN0
YXJ0IHBhcnNpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICMga3dhcmdzCisgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgICAgICBlbGlmIHBhcmFtLm5hbWUg
aW4ga3dhcmdzOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgcGFyYW0ua2luZCA9PSBfUE9T
SVRJT05BTF9PTkxZOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9ICd7YXJnIXJ9
IHBhcmFtZXRlciBpcyBwb3NpdGlvbmFsIG9ubHksICcgXAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdidXQgd2FzIHBhc3NlZCBhcyBhIGtleXdvcmQnCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbXNnID0gbXNnLmZvcm1hdChhcmc9cGFyYW0ubmFtZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IobXNnKQorICAgICAgICAgICAgICAg
ICAgICAgICAgcGFyYW1ldGVyc19leCA9IChwYXJhbSwpCisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhaworICAgICAgICAgICAgICAgICAgICBlbGlmIChwYXJhbS5raW5kID09IF9WQVJfS0VZ
V09SRCBvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFyYW0uZGVmYXVsdCBpcyBub3QgX2VtcHR5KToKKyAgICAgICAgICAgICAgICAgICAgICAgICMg
VGhhdCdzIGZpbmUgdG9vIC0gd2UgaGF2ZSBhIGRlZmF1bHQgdmFsdWUgZm9yIHRoaXMKKyAgICAg
ICAgICAgICAgICAgICAgICAgICMgcGFyYW1ldGVyLiAgU28sIGxldHMgc3RhcnQgcGFyc2luZyBg
a3dhcmdzYCwgc3RhcnRpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICMgd2l0aCB0aGUgY3Vy
cmVudCBwYXJhbWV0ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnNfZXggPSAo
cGFyYW0sKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHBhcnRpYWw6CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyc19leCA9IChwYXJhbSwpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gJ3thcmchcn0gcGFyYW1ldGVyIGxhY2tpbmcg
ZGVmYXVsdCB2YWx1ZScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBtc2cuZm9y
bWF0KGFyZz1wYXJhbS5uYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFR5
cGVFcnJvcihtc2cpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICMgV2UgaGF2
ZSBhIHBvc2l0aW9uYWwgYXJndW1lbnQgdG8gcHJvY2VzcworICAgICAgICAgICAgICAgIHRyeToK
KyAgICAgICAgICAgICAgICAgICAgcGFyYW0gPSBuZXh0KHBhcmFtZXRlcnMpCisgICAgICAgICAg
ICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFR5
cGVFcnJvcigndG9vIG1hbnkgcG9zaXRpb25hbCBhcmd1bWVudHMnKQorICAgICAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGlmIHBhcmFtLmtpbmQgaW4gKF9WQVJfS0VZV09S
RCwgX0tFWVdPUkRfT05MWSk6CisgICAgICAgICAgICAgICAgICAgICAgICAjIExvb2tzIGxpa2Ug
d2UgaGF2ZSBubyBwYXJhbWV0ZXIgZm9yIHRoaXMgcG9zaXRpb25hbAorICAgICAgICAgICAgICAg
ICAgICAgICAgIyBhcmd1bWVudAorICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVy
cm9yKCd0b28gbWFueSBwb3NpdGlvbmFsIGFyZ3VtZW50cycpCisKKyAgICAgICAgICAgICAgICAg
ICAgaWYgcGFyYW0ua2luZCA9PSBfVkFSX1BPU0lUSU9OQUw6CisgICAgICAgICAgICAgICAgICAg
ICAgICAjIFdlIGhhdmUgYW4gJyphcmdzJy1saWtlIGFyZ3VtZW50LCBsZXQncyBmaWxsIGl0IHdp
dGgKKyAgICAgICAgICAgICAgICAgICAgICAgICMgYWxsIHBvc2l0aW9uYWwgYXJndW1lbnRzIHdl
IGhhdmUgbGVmdCBhbmQgbW92ZSBvbiB0bworICAgICAgICAgICAgICAgICAgICAgICAgIyB0aGUg
bmV4dCBwaGFzZQorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzID0gW2FyZ192YWxdCisg
ICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuZXh0ZW5kKGFyZ192YWxzKQorICAgICAgICAg
ICAgICAgICAgICAgICAgYXJndW1lbnRzW3BhcmFtLm5hbWVdID0gdHVwbGUodmFsdWVzKQorICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKworICAgICAgICAgICAgICAgICAgICBpZiBwYXJh
bS5uYW1lIGluIGt3YXJnczoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJv
cignbXVsdGlwbGUgdmFsdWVzIGZvciBhcmd1bWVudCAnCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ3thcmchcn0nLmZvcm1hdChhcmc9cGFyYW0ubmFtZSkpCisKKyAg
ICAgICAgICAgICAgICAgICAgYXJndW1lbnRzW3BhcmFtLm5hbWVdID0gYXJnX3ZhbAorCisgICAg
ICAgICMgTm93LCB3ZSBpdGVyYXRlIHRocm91Z2ggdGhlIHJlbWFpbmluZyBwYXJhbWV0ZXJzIHRv
IHByb2Nlc3MKKyAgICAgICAgIyBrZXl3b3JkIGFyZ3VtZW50cworICAgICAgICBrd2FyZ3NfcGFy
YW0gPSBOb25lCisgICAgICAgIGZvciBwYXJhbSBpbiBpdGVydG9vbHMuY2hhaW4ocGFyYW1ldGVy
c19leCwgcGFyYW1ldGVycyk6CisgICAgICAgICAgICBpZiBwYXJhbS5raW5kID09IF9QT1NJVElP
TkFMX09OTFk6CisgICAgICAgICAgICAgICAgIyBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4gaW4g
Y2FzZSBvZiBhIHByb3Blcmx5IGJ1aWx0CisgICAgICAgICAgICAgICAgIyBTaWduYXR1cmUgb2Jq
ZWN0IChidXQgbGV0J3MgaGF2ZSB0aGlzIGNoZWNrIGhlcmUKKyAgICAgICAgICAgICAgICAjIHRv
IGVuc3VyZSBjb3JyZWN0IGJlaGF2aW91ciBqdXN0IGluIGNhc2UpCisgICAgICAgICAgICAgICAg
cmFpc2UgVHlwZUVycm9yKCd7YXJnIXJ9IHBhcmFtZXRlciBpcyBwb3NpdGlvbmFsIG9ubHksICcK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2J1dCB3YXMgcGFzc2VkIGFzIGEga2V5
d29yZCcuIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KGFyZz1wYXJh
bS5uYW1lKSkKKworICAgICAgICAgICAgaWYgcGFyYW0ua2luZCA9PSBfVkFSX0tFWVdPUkQ6Cisg
ICAgICAgICAgICAgICAgIyBNZW1vcml6ZSB0aGF0IHdlIGhhdmUgYSAnKiprd2FyZ3MnLWxpa2Ug
cGFyYW1ldGVyCisgICAgICAgICAgICAgICAga3dhcmdzX3BhcmFtID0gcGFyYW0KKyAgICAgICAg
ICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICBwYXJhbV9uYW1lID0gcGFyYW0ubmFtZQor
ICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGFyZ192YWwgPSBrd2FyZ3MucG9wKHBh
cmFtX25hbWUpCisgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAgICAg
IyBXZSBoYXZlIG5vIHZhbHVlIGZvciB0aGlzIHBhcmFtZXRlci4gIEl0J3MgZmluZSB0aG91Z2gs
CisgICAgICAgICAgICAgICAgIyBpZiBpdCBoYXMgYSBkZWZhdWx0IHZhbHVlLCBvciBpdCBpcyBh
biAnKmFyZ3MnLWxpa2UKKyAgICAgICAgICAgICAgICAjIHBhcmFtZXRlciwgbGVmdCBhbG9uZSBi
eSB0aGUgcHJvY2Vzc2luZyBvZiBwb3NpdGlvbmFsCisgICAgICAgICAgICAgICAgIyBhcmd1bWVu
dHMuCisgICAgICAgICAgICAgICAgaWYgKG5vdCBwYXJ0aWFsIGFuZCBwYXJhbS5raW5kICE9IF9W
QVJfUE9TSVRJT05BTCBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXJhbS5kZWZhdWx0IGlzIF9lbXB0eSk6CisgICAgICAgICAgICAgICAg
ICAgIHJhaXNlIFR5cGVFcnJvcigne2FyZyFyfSBwYXJhbWV0ZXIgbGFja2luZyBkZWZhdWx0IHZh
bHVlJy4gXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KGFyZz1w
YXJhbV9uYW1lKSkKKworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBhcmd1bWVu
dHNbcGFyYW1fbmFtZV0gPSBhcmdfdmFsCisKKyAgICAgICAgaWYga3dhcmdzOgorICAgICAgICAg
ICAgaWYga3dhcmdzX3BhcmFtIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICMgUHJvY2Vz
cyBvdXIgJyoqa3dhcmdzJy1saWtlIHBhcmFtZXRlcgorICAgICAgICAgICAgICAgIGFyZ3VtZW50
c1trd2FyZ3NfcGFyYW0ubmFtZV0gPSBrd2FyZ3MKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCd0b28gbWFueSBrZXl3b3JkIGFyZ3VtZW50cycpCisK
KyAgICAgICAgcmV0dXJuIHNlbGYuX2JvdW5kX2FyZ3VtZW50c19jbHMoc2VsZiwgYXJndW1lbnRz
KQorCisgICAgZGVmIGJpbmQoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgJycnR2V0
IGEgQm91bmRBcmd1bWVudHMgb2JqZWN0LCB0aGF0IG1hcHMgdGhlIHBhc3NlZCBgYXJnc2AKKyAg
ICAgICAgYW5kIGBrd2FyZ3NgIHRvIHRoZSBmdW5jdGlvbidzIHNpZ25hdHVyZS4gIFJhaXNlcyBg
VHlwZUVycm9yYAorICAgICAgICBpZiB0aGUgcGFzc2VkIGFyZ3VtZW50cyBjYW4gbm90IGJlIGJv
dW5kLgorICAgICAgICAnJycKKyAgICAgICAgcmV0dXJuIHNlbGYuX2JpbmQoYXJncywga3dhcmdz
KQorCisgICAgZGVmIGJpbmRfcGFydGlhbChzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAg
ICAnJydHZXQgYSBCb3VuZEFyZ3VtZW50cyBvYmplY3QsIHRoYXQgcGFydGlhbGx5IG1hcHMgdGhl
CisgICAgICAgIHBhc3NlZCBgYXJnc2AgYW5kIGBrd2FyZ3NgIHRvIHRoZSBmdW5jdGlvbidzIHNp
Z25hdHVyZS4KKyAgICAgICAgUmFpc2VzIGBUeXBlRXJyb3JgIGlmIHRoZSBwYXNzZWQgYXJndW1l
bnRzIGNhbiBub3QgYmUgYm91bmQuCisgICAgICAgICcnJworICAgICAgICByZXR1cm4gc2VsZi5f
YmluZChhcmdzLCBrd2FyZ3MsIHBhcnRpYWw9VHJ1ZSkKKworICAgIGRlZiBfX3N0cl9fKHNlbGYp
OgorICAgICAgICByZXN1bHQgPSBbXQorICAgICAgICByZW5kZXJfa3dfb25seV9zZXBhcmF0b3Ig
PSBUcnVlCisgICAgICAgIGZvciBpZHgsIHBhcmFtIGluIGVudW1lcmF0ZShzZWxmLnBhcmFtZXRl
cnMudmFsdWVzKCkpOgorICAgICAgICAgICAgZm9ybWF0dGVkID0gc3RyKHBhcmFtKQorCisgICAg
ICAgICAgICBraW5kID0gcGFyYW0ua2luZAorICAgICAgICAgICAgaWYga2luZCA9PSBfVkFSX1BP
U0lUSU9OQUw6CisgICAgICAgICAgICAgICAgIyBPSywgd2UgaGF2ZSBhbiAnKmFyZ3MnLWxpa2Ug
cGFyYW1ldGVyLCBzbyB3ZSB3b24ndCBuZWVkCisgICAgICAgICAgICAgICAgIyBhICcqJyB0byBz
ZXBhcmF0ZSBrZXl3b3JkLW9ubHkgYXJndW1lbnRzCisgICAgICAgICAgICAgICAgcmVuZGVyX2t3
X29ubHlfc2VwYXJhdG9yID0gRmFsc2UKKyAgICAgICAgICAgIGVsaWYga2luZCA9PSBfS0VZV09S
RF9PTkxZIGFuZCByZW5kZXJfa3dfb25seV9zZXBhcmF0b3I6CisgICAgICAgICAgICAgICAgIyBX
ZSBoYXZlIGEga2V5d29yZC1vbmx5IHBhcmFtZXRlciB0byByZW5kZXIgYW5kIHdlIGhhdmVuJ3QK
KyAgICAgICAgICAgICAgICAjIHJlbmRlcmVkIGFuICcqYXJncyctbGlrZSBwYXJhbWV0ZXIgYmVm
b3JlLCBzbyBhZGQgYSAnKicKKyAgICAgICAgICAgICAgICAjIHNlcGFyYXRvciB0byB0aGUgcGFy
YW1ldGVycyBsaXN0ICgiZm9vKGFyZzEsICosIGFyZzIpIiBjYXNlKQorICAgICAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQoJyonKQorICAgICAgICAgICAgICAgICMgVGhpcyBjb25kaXRpb24gc2hv
dWxkIGJlIG9ubHkgdHJpZ2dlcmVkIG9uY2UsIHNvCisgICAgICAgICAgICAgICAgIyByZXNldCB0
aGUgZmxhZworICAgICAgICAgICAgICAgIHJlbmRlcl9rd19vbmx5X3NlcGFyYXRvciA9IEZhbHNl
CisKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoZm9ybWF0dGVkKQorCisgICAgICAgIHJlbmRl
cmVkID0gJyh7MH0pJy5mb3JtYXQoJywgJy5qb2luKHJlc3VsdCkpCisKKyAgICAgICAgaWYgc2Vs
Zi5yZXR1cm5fYW5ub3RhdGlvbiBpcyBub3QgX2VtcHR5OgorICAgICAgICAgICAgYW5ubyA9IGZv
cm1hdGFubm90YXRpb24oc2VsZi5yZXR1cm5fYW5ub3RhdGlvbikKKyAgICAgICAgICAgIHJlbmRl
cmVkICs9ICcgLT4gezB9Jy5mb3JtYXQoYW5ubykKKworICAgICAgICByZXR1cm4gcmVuZGVyZWQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZnVuY3NpZ3Mvb2RpY3QucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNz
aWdzL2Z1bmNzaWdzL29kaWN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyMjFlOTcxYjM3OTRkZWU2ZTA3NzU2
NGU1YzZmODU0MzU3ZDIzNDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2Z1bmNz
aWdzL29kaWN0LnB5CkBAIC0wLDAgKzEsMjYxIEBACisjIEJhY2twb3J0IG9mIE9yZGVyZWREaWN0
KCkgY2xhc3MgdGhhdCBydW5zIG9uIFB5dGhvbiAyLjQsIDIuNSwgMi42LCAyLjcgYW5kIHB5cHku
CisjIFBhc3NlcyBQeXRob24yLjcncyB0ZXN0IHN1aXRlIGFuZCBpbmNvcnBvcmF0ZXMgYWxsIHRo
ZSBsYXRlc3QgdXBkYXRlcy4KKyMgQ29weXJpZ2h0IDIwMDkgUmF5bW9uZCBIZXR0aW5nZXIKKyMg
aHR0cDovL2NvZGUuYWN0aXZlc3RhdGUuY29tL3JlY2lwZXMvNTc2NjkzLworIk9yZGVyZWQgZGlj
dGlvbmFyeSIKKwordHJ5OgorICAgIGZyb20gdGhyZWFkIGltcG9ydCBnZXRfaWRlbnQgYXMgX2dl
dF9pZGVudAorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGZyb20gZHVtbXlfdGhyZWFkIGltcG9y
dCBnZXRfaWRlbnQgYXMgX2dldF9pZGVudAorCit0cnk6CisgICAgZnJvbSBfYWJjb2xsIGltcG9y
dCBLZXlzVmlldywgVmFsdWVzVmlldywgSXRlbXNWaWV3CitleGNlcHQgSW1wb3J0RXJyb3I6Cisg
ICAgcGFzcworCisKK2NsYXNzIE9yZGVyZWREaWN0KGRpY3QpOgorICAgICdEaWN0aW9uYXJ5IHRo
YXQgcmVtZW1iZXJzIGluc2VydGlvbiBvcmRlcicKKyAgICAjIEFuIGluaGVyaXRlZCBkaWN0IG1h
cHMga2V5cyB0byB2YWx1ZXMuCisgICAgIyBUaGUgaW5oZXJpdGVkIGRpY3QgcHJvdmlkZXMgX19n
ZXRpdGVtX18sIF9fbGVuX18sIF9fY29udGFpbnNfXywgYW5kIGdldC4KKyAgICAjIFRoZSByZW1h
aW5pbmcgbWV0aG9kcyBhcmUgb3JkZXItYXdhcmUuCisgICAgIyBCaWctTyBydW5uaW5nIHRpbWVz
IGZvciBhbGwgbWV0aG9kcyBhcmUgdGhlIHNhbWUgYXMgZm9yIHJlZ3VsYXIgZGljdGlvbmFyaWVz
LgorCisgICAgIyBUaGUgaW50ZXJuYWwgc2VsZi5fX21hcCBkaWN0aW9uYXJ5IG1hcHMga2V5cyB0
byBsaW5rcyBpbiBhIGRvdWJseSBsaW5rZWQgbGlzdC4KKyAgICAjIFRoZSBjaXJjdWxhciBkb3Vi
bHkgbGlua2VkIGxpc3Qgc3RhcnRzIGFuZCBlbmRzIHdpdGggYSBzZW50aW5lbCBlbGVtZW50Lgor
ICAgICMgVGhlIHNlbnRpbmVsIGVsZW1lbnQgbmV2ZXIgZ2V0cyBkZWxldGVkICh0aGlzIHNpbXBs
aWZpZXMgdGhlIGFsZ29yaXRobSkuCisgICAgIyBFYWNoIGxpbmsgaXMgc3RvcmVkIGFzIGEgbGlz
dCBvZiBsZW5ndGggdGhyZWU6ICBbUFJFViwgTkVYVCwgS0VZXS4KKworICAgIGRlZiBfX2luaXRf
XyhzZWxmLCAqYXJncywgKiprd2RzKToKKyAgICAgICAgJycnSW5pdGlhbGl6ZSBhbiBvcmRlcmVk
IGRpY3Rpb25hcnkuICBTaWduYXR1cmUgaXMgdGhlIHNhbWUgYXMgZm9yCisgICAgICAgIHJlZ3Vs
YXIgZGljdGlvbmFyaWVzLCBidXQga2V5d29yZCBhcmd1bWVudHMgYXJlIG5vdCByZWNvbW1lbmRl
ZAorICAgICAgICBiZWNhdXNlIHRoZWlyIGluc2VydGlvbiBvcmRlciBpcyBhcmJpdHJhcnkuCisK
KyAgICAgICAgJycnCisgICAgICAgIGlmIGxlbihhcmdzKSA+IDE6CisgICAgICAgICAgICByYWlz
ZSBUeXBlRXJyb3IoJ2V4cGVjdGVkIGF0IG1vc3QgMSBhcmd1bWVudHMsIGdvdCAlZCcgJSBsZW4o
YXJncykpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuX19yb290CisgICAgICAgIGV4
Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHNlbGYuX19yb290ID0gcm9vdCA9IFtd
ICAgICAgICAgICAgICAgICAgICAgIyBzZW50aW5lbCBub2RlCisgICAgICAgICAgICByb290Wzpd
ID0gW3Jvb3QsIHJvb3QsIE5vbmVdCisgICAgICAgICAgICBzZWxmLl9fbWFwID0ge30KKyAgICAg
ICAgc2VsZi5fX3VwZGF0ZSgqYXJncywgKiprd2RzKQorCisgICAgZGVmIF9fc2V0aXRlbV9fKHNl
bGYsIGtleSwgdmFsdWUsIGRpY3Rfc2V0aXRlbT1kaWN0Ll9fc2V0aXRlbV9fKToKKyAgICAgICAg
J29kLl9fc2V0aXRlbV9fKGksIHkpIDw9PT4gb2RbaV09eScKKyAgICAgICAgIyBTZXR0aW5nIGEg
bmV3IGl0ZW0gY3JlYXRlcyBhIG5ldyBsaW5rIHdoaWNoIGdvZXMgYXQgdGhlIGVuZCBvZiB0aGUg
bGlua2VkCisgICAgICAgICMgbGlzdCwgYW5kIHRoZSBpbmhlcml0ZWQgZGljdGlvbmFyeSBpcyB1
cGRhdGVkIHdpdGggdGhlIG5ldyBrZXkvdmFsdWUgcGFpci4KKyAgICAgICAgaWYga2V5IG5vdCBp
biBzZWxmOgorICAgICAgICAgICAgcm9vdCA9IHNlbGYuX19yb290CisgICAgICAgICAgICBsYXN0
ID0gcm9vdFswXQorICAgICAgICAgICAgbGFzdFsxXSA9IHJvb3RbMF0gPSBzZWxmLl9fbWFwW2tl
eV0gPSBbbGFzdCwgcm9vdCwga2V5XQorICAgICAgICBkaWN0X3NldGl0ZW0oc2VsZiwga2V5LCB2
YWx1ZSkKKworICAgIGRlZiBfX2RlbGl0ZW1fXyhzZWxmLCBrZXksIGRpY3RfZGVsaXRlbT1kaWN0
Ll9fZGVsaXRlbV9fKToKKyAgICAgICAgJ29kLl9fZGVsaXRlbV9fKHkpIDw9PT4gZGVsIG9kW3ld
JworICAgICAgICAjIERlbGV0aW5nIGFuIGV4aXN0aW5nIGl0ZW0gdXNlcyBzZWxmLl9fbWFwIHRv
IGZpbmQgdGhlIGxpbmsgd2hpY2ggaXMKKyAgICAgICAgIyB0aGVuIHJlbW92ZWQgYnkgdXBkYXRp
bmcgdGhlIGxpbmtzIGluIHRoZSBwcmVkZWNlc3NvciBhbmQgc3VjY2Vzc29yIG5vZGVzLgorICAg
ICAgICBkaWN0X2RlbGl0ZW0oc2VsZiwga2V5KQorICAgICAgICBsaW5rX3ByZXYsIGxpbmtfbmV4
dCwga2V5ID0gc2VsZi5fX21hcC5wb3Aoa2V5KQorICAgICAgICBsaW5rX3ByZXZbMV0gPSBsaW5r
X25leHQKKyAgICAgICAgbGlua19uZXh0WzBdID0gbGlua19wcmV2CisKKyAgICBkZWYgX19pdGVy
X18oc2VsZik6CisgICAgICAgICdvZC5fX2l0ZXJfXygpIDw9PT4gaXRlcihvZCknCisgICAgICAg
IHJvb3QgPSBzZWxmLl9fcm9vdAorICAgICAgICBjdXJyID0gcm9vdFsxXQorICAgICAgICB3aGls
ZSBjdXJyIGlzIG5vdCByb290OgorICAgICAgICAgICAgeWllbGQgY3VyclsyXQorICAgICAgICAg
ICAgY3VyciA9IGN1cnJbMV0KKworICAgIGRlZiBfX3JldmVyc2VkX18oc2VsZik6CisgICAgICAg
ICdvZC5fX3JldmVyc2VkX18oKSA8PT0+IHJldmVyc2VkKG9kKScKKyAgICAgICAgcm9vdCA9IHNl
bGYuX19yb290CisgICAgICAgIGN1cnIgPSByb290WzBdCisgICAgICAgIHdoaWxlIGN1cnIgaXMg
bm90IHJvb3Q6CisgICAgICAgICAgICB5aWVsZCBjdXJyWzJdCisgICAgICAgICAgICBjdXJyID0g
Y3VyclswXQorCisgICAgZGVmIGNsZWFyKHNlbGYpOgorICAgICAgICAnb2QuY2xlYXIoKSAtPiBO
b25lLiAgUmVtb3ZlIGFsbCBpdGVtcyBmcm9tIG9kLicKKyAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgZm9yIG5vZGUgaW4gc2VsZi5fX21hcC5pdGVydmFsdWVzKCk6CisgICAgICAgICAgICAgICAg
ZGVsIG5vZGVbOl0KKyAgICAgICAgICAgIHJvb3QgPSBzZWxmLl9fcm9vdAorICAgICAgICAgICAg
cm9vdFs6XSA9IFtyb290LCByb290LCBOb25lXQorICAgICAgICAgICAgc2VsZi5fX21hcC5jbGVh
cigpCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgZGljdC5jbGVhcihzZWxmKQorCisgICAgZGVmIHBvcGl0ZW0oc2VsZiwgbGFzdD1UcnVl
KToKKyAgICAgICAgJycnb2QucG9waXRlbSgpIC0+IChrLCB2KSwgcmV0dXJuIGFuZCByZW1vdmUg
YSAoa2V5LCB2YWx1ZSkgcGFpci4KKyAgICAgICAgUGFpcnMgYXJlIHJldHVybmVkIGluIExJRk8g
b3JkZXIgaWYgbGFzdCBpcyB0cnVlIG9yIEZJRk8gb3JkZXIgaWYgZmFsc2UuCisKKyAgICAgICAg
JycnCisgICAgICAgIGlmIG5vdCBzZWxmOgorICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IoJ2Rp
Y3Rpb25hcnkgaXMgZW1wdHknKQorICAgICAgICByb290ID0gc2VsZi5fX3Jvb3QKKyAgICAgICAg
aWYgbGFzdDoKKyAgICAgICAgICAgIGxpbmsgPSByb290WzBdCisgICAgICAgICAgICBsaW5rX3By
ZXYgPSBsaW5rWzBdCisgICAgICAgICAgICBsaW5rX3ByZXZbMV0gPSByb290CisgICAgICAgICAg
ICByb290WzBdID0gbGlua19wcmV2CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBsaW5rID0g
cm9vdFsxXQorICAgICAgICAgICAgbGlua19uZXh0ID0gbGlua1sxXQorICAgICAgICAgICAgcm9v
dFsxXSA9IGxpbmtfbmV4dAorICAgICAgICAgICAgbGlua19uZXh0WzBdID0gcm9vdAorICAgICAg
ICBrZXkgPSBsaW5rWzJdCisgICAgICAgIGRlbCBzZWxmLl9fbWFwW2tleV0KKyAgICAgICAgdmFs
dWUgPSBkaWN0LnBvcChzZWxmLCBrZXkpCisgICAgICAgIHJldHVybiBrZXksIHZhbHVlCisKKyAg
ICAjIC0tIHRoZSBmb2xsb3dpbmcgbWV0aG9kcyBkbyBub3QgZGVwZW5kIG9uIHRoZSBpbnRlcm5h
bCBzdHJ1Y3R1cmUgLS0KKworICAgIGRlZiBrZXlzKHNlbGYpOgorICAgICAgICAnb2Qua2V5cygp
IC0+IGxpc3Qgb2Yga2V5cyBpbiBvZCcKKyAgICAgICAgcmV0dXJuIGxpc3Qoc2VsZikKKworICAg
IGRlZiB2YWx1ZXMoc2VsZik6CisgICAgICAgICdvZC52YWx1ZXMoKSAtPiBsaXN0IG9mIHZhbHVl
cyBpbiBvZCcKKyAgICAgICAgcmV0dXJuIFtzZWxmW2tleV0gZm9yIGtleSBpbiBzZWxmXQorCisg
ICAgZGVmIGl0ZW1zKHNlbGYpOgorICAgICAgICAnb2QuaXRlbXMoKSAtPiBsaXN0IG9mIChrZXks
IHZhbHVlKSBwYWlycyBpbiBvZCcKKyAgICAgICAgcmV0dXJuIFsoa2V5LCBzZWxmW2tleV0pIGZv
ciBrZXkgaW4gc2VsZl0KKworICAgIGRlZiBpdGVya2V5cyhzZWxmKToKKyAgICAgICAgJ29kLml0
ZXJrZXlzKCkgLT4gYW4gaXRlcmF0b3Igb3ZlciB0aGUga2V5cyBpbiBvZCcKKyAgICAgICAgcmV0
dXJuIGl0ZXIoc2VsZikKKworICAgIGRlZiBpdGVydmFsdWVzKHNlbGYpOgorICAgICAgICAnb2Qu
aXRlcnZhbHVlcyAtPiBhbiBpdGVyYXRvciBvdmVyIHRoZSB2YWx1ZXMgaW4gb2QnCisgICAgICAg
IGZvciBrIGluIHNlbGY6CisgICAgICAgICAgICB5aWVsZCBzZWxmW2tdCisKKyAgICBkZWYgaXRl
cml0ZW1zKHNlbGYpOgorICAgICAgICAnb2QuaXRlcml0ZW1zIC0+IGFuIGl0ZXJhdG9yIG92ZXIg
dGhlIChrZXksIHZhbHVlKSBpdGVtcyBpbiBvZCcKKyAgICAgICAgZm9yIGsgaW4gc2VsZjoKKyAg
ICAgICAgICAgIHlpZWxkIChrLCBzZWxmW2tdKQorCisgICAgZGVmIHVwZGF0ZSgqYXJncywgKipr
d2RzKToKKyAgICAgICAgJycnb2QudXBkYXRlKEUsICoqRikgLT4gTm9uZS4gIFVwZGF0ZSBvZCBm
cm9tIGRpY3QvaXRlcmFibGUgRSBhbmQgRi4KKworICAgICAgICBJZiBFIGlzIGEgZGljdCBpbnN0
YW5jZSwgZG9lczogICAgICAgICAgIGZvciBrIGluIEU6IG9kW2tdID0gRVtrXQorICAgICAgICBJ
ZiBFIGhhcyBhIC5rZXlzKCkgbWV0aG9kLCBkb2VzOiAgICAgICAgIGZvciBrIGluIEUua2V5cygp
OiBvZFtrXSA9IEVba10KKyAgICAgICAgT3IgaWYgRSBpcyBhbiBpdGVyYWJsZSBvZiBpdGVtcywg
ZG9lczogICBmb3IgaywgdiBpbiBFOiBvZFtrXSA9IHYKKyAgICAgICAgSW4gZWl0aGVyIGNhc2Us
IHRoaXMgaXMgZm9sbG93ZWQgYnk6ICAgICBmb3IgaywgdiBpbiBGLml0ZW1zKCk6IG9kW2tdID0g
dgorCisgICAgICAgICcnJworICAgICAgICBpZiBsZW4oYXJncykgPiAyOgorICAgICAgICAgICAg
cmFpc2UgVHlwZUVycm9yKCd1cGRhdGUoKSB0YWtlcyBhdCBtb3N0IDIgcG9zaXRpb25hbCAnCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FyZ3VtZW50cyAoJWQgZ2l2ZW4pJyAlIChsZW4o
YXJncyksKSkKKyAgICAgICAgZWxpZiBub3QgYXJnczoKKyAgICAgICAgICAgIHJhaXNlIFR5cGVF
cnJvcigndXBkYXRlKCkgdGFrZXMgYXQgbGVhc3QgMSBhcmd1bWVudCAoMCBnaXZlbiknKQorICAg
ICAgICBzZWxmID0gYXJnc1swXQorICAgICAgICAjIE1ha2UgcHJvZ3Jlc3NpdmVseSB3ZWFrZXIg
YXNzdW1wdGlvbnMgYWJvdXQgIm90aGVyIgorICAgICAgICBvdGhlciA9ICgpCisgICAgICAgIGlm
IGxlbihhcmdzKSA9PSAyOgorICAgICAgICAgICAgb3RoZXIgPSBhcmdzWzFdCisgICAgICAgIGlm
IGlzaW5zdGFuY2Uob3RoZXIsIGRpY3QpOgorICAgICAgICAgICAgZm9yIGtleSBpbiBvdGhlcjoK
KyAgICAgICAgICAgICAgICBzZWxmW2tleV0gPSBvdGhlcltrZXldCisgICAgICAgIGVsaWYgaGFz
YXR0cihvdGhlciwgJ2tleXMnKToKKyAgICAgICAgICAgIGZvciBrZXkgaW4gb3RoZXIua2V5cygp
OgorICAgICAgICAgICAgICAgIHNlbGZba2V5XSA9IG90aGVyW2tleV0KKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIG90aGVyOgorICAgICAgICAgICAgICAgIHNl
bGZba2V5XSA9IHZhbHVlCisgICAgICAgIGZvciBrZXksIHZhbHVlIGluIGt3ZHMuaXRlbXMoKToK
KyAgICAgICAgICAgIHNlbGZba2V5XSA9IHZhbHVlCisKKyAgICBfX3VwZGF0ZSA9IHVwZGF0ZSAg
IyBsZXQgc3ViY2xhc3NlcyBvdmVycmlkZSB1cGRhdGUgd2l0aG91dCBicmVha2luZyBfX2luaXRf
XworCisgICAgX19tYXJrZXIgPSBvYmplY3QoKQorCisgICAgZGVmIHBvcChzZWxmLCBrZXksIGRl
ZmF1bHQ9X19tYXJrZXIpOgorICAgICAgICAnJydvZC5wb3Aoa1ssZF0pIC0+IHYsIHJlbW92ZSBz
cGVjaWZpZWQga2V5IGFuZCByZXR1cm4gdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUuCisgICAgICAg
IElmIGtleSBpcyBub3QgZm91bmQsIGQgaXMgcmV0dXJuZWQgaWYgZ2l2ZW4sIG90aGVyd2lzZSBL
ZXlFcnJvciBpcyByYWlzZWQuCisKKyAgICAgICAgJycnCisgICAgICAgIGlmIGtleSBpbiBzZWxm
OgorICAgICAgICAgICAgcmVzdWx0ID0gc2VsZltrZXldCisgICAgICAgICAgICBkZWwgc2VsZltr
ZXldCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0CisgICAgICAgIGlmIGRlZmF1bHQgaXMgc2Vs
Zi5fX21hcmtlcjoKKyAgICAgICAgICAgIHJhaXNlIEtleUVycm9yKGtleSkKKyAgICAgICAgcmV0
dXJuIGRlZmF1bHQKKworICAgIGRlZiBzZXRkZWZhdWx0KHNlbGYsIGtleSwgZGVmYXVsdD1Ob25l
KToKKyAgICAgICAgJ29kLnNldGRlZmF1bHQoa1ssZF0pIC0+IG9kLmdldChrLGQpLCBhbHNvIHNl
dCBvZFtrXT1kIGlmIGsgbm90IGluIG9kJworICAgICAgICBpZiBrZXkgaW4gc2VsZjoKKyAgICAg
ICAgICAgIHJldHVybiBzZWxmW2tleV0KKyAgICAgICAgc2VsZltrZXldID0gZGVmYXVsdAorICAg
ICAgICByZXR1cm4gZGVmYXVsdAorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYsIF9yZXByX3J1bm5p
bmc9e30pOgorICAgICAgICAnb2QuX19yZXByX18oKSA8PT0+IHJlcHIob2QpJworICAgICAgICBj
YWxsX2tleSA9IGlkKHNlbGYpLCBfZ2V0X2lkZW50KCkKKyAgICAgICAgaWYgY2FsbF9rZXkgaW4g
X3JlcHJfcnVubmluZzoKKyAgICAgICAgICAgIHJldHVybiAnLi4uJworICAgICAgICBfcmVwcl9y
dW5uaW5nW2NhbGxfa2V5XSA9IDEKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgbm90IHNl
bGY6CisgICAgICAgICAgICAgICAgcmV0dXJuICclcygpJyAlIChzZWxmLl9fY2xhc3NfXy5fX25h
bWVfXywpCisgICAgICAgICAgICByZXR1cm4gJyVzKCVyKScgJSAoc2VsZi5fX2NsYXNzX18uX19u
YW1lX18sIHNlbGYuaXRlbXMoKSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGRlbCBf
cmVwcl9ydW5uaW5nW2NhbGxfa2V5XQorCisgICAgZGVmIF9fcmVkdWNlX18oc2VsZik6CisgICAg
ICAgICdSZXR1cm4gc3RhdGUgaW5mb3JtYXRpb24gZm9yIHBpY2tsaW5nJworICAgICAgICBpdGVt
cyA9IFtbaywgc2VsZltrXV0gZm9yIGsgaW4gc2VsZl0KKyAgICAgICAgaW5zdF9kaWN0ID0gdmFy
cyhzZWxmKS5jb3B5KCkKKyAgICAgICAgZm9yIGsgaW4gdmFycyhPcmRlcmVkRGljdCgpKToKKyAg
ICAgICAgICAgIGluc3RfZGljdC5wb3AoaywgTm9uZSkKKyAgICAgICAgaWYgaW5zdF9kaWN0Ogor
ICAgICAgICAgICAgcmV0dXJuIChzZWxmLl9fY2xhc3NfXywgKGl0ZW1zLCksIGluc3RfZGljdCkK
KyAgICAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19fLCAoaXRlbXMsKQorCisgICAgZGVmIGNvcHko
c2VsZik6CisgICAgICAgICdvZC5jb3B5KCkgLT4gYSBzaGFsbG93IGNvcHkgb2Ygb2QnCisgICAg
ICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAg
ZGVmIGZyb21rZXlzKGNscywgaXRlcmFibGUsIHZhbHVlPU5vbmUpOgorICAgICAgICAnJydPRC5m
cm9ta2V5cyhTWywgdl0pIC0+IE5ldyBvcmRlcmVkIGRpY3Rpb25hcnkgd2l0aCBrZXlzIGZyb20g
UworICAgICAgICBhbmQgdmFsdWVzIGVxdWFsIHRvIHYgKHdoaWNoIGRlZmF1bHRzIHRvIE5vbmUp
LgorCisgICAgICAgICcnJworICAgICAgICBkID0gY2xzKCkKKyAgICAgICAgZm9yIGtleSBpbiBp
dGVyYWJsZToKKyAgICAgICAgICAgIGRba2V5XSA9IHZhbHVlCisgICAgICAgIHJldHVybiBkCisK
KyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgJycnb2QuX19lcV9fKHkpIDw9
PT4gb2Q9PXkuICBDb21wYXJpc29uIHRvIGFub3RoZXIgT0QgaXMgb3JkZXItc2Vuc2l0aXZlCisg
ICAgICAgIHdoaWxlIGNvbXBhcmlzb24gdG8gYSByZWd1bGFyIG1hcHBpbmcgaXMgb3JkZXItaW5z
ZW5zaXRpdmUuCisKKyAgICAgICAgJycnCisgICAgICAgIGlmIGlzaW5zdGFuY2Uob3RoZXIsIE9y
ZGVyZWREaWN0KToKKyAgICAgICAgICAgIHJldHVybiBsZW4oc2VsZik9PWxlbihvdGhlcikgYW5k
IHNlbGYuaXRlbXMoKSA9PSBvdGhlci5pdGVtcygpCisgICAgICAgIHJldHVybiBkaWN0Ll9fZXFf
XyhzZWxmLCBvdGhlcikKKworICAgIGRlZiBfX25lX18oc2VsZiwgb3RoZXIpOgorICAgICAgICBy
ZXR1cm4gbm90IHNlbGYgPT0gb3RoZXIKKworICAgICMgLS0gdGhlIGZvbGxvd2luZyBtZXRob2Rz
IGFyZSBvbmx5IHVzZWQgaW4gUHl0aG9uIDIuNyAtLQorCisgICAgZGVmIHZpZXdrZXlzKHNlbGYp
OgorICAgICAgICAib2Qudmlld2tleXMoKSAtPiBhIHNldC1saWtlIG9iamVjdCBwcm92aWRpbmcg
YSB2aWV3IG9uIG9kJ3Mga2V5cyIKKyAgICAgICAgcmV0dXJuIEtleXNWaWV3KHNlbGYpCisKKyAg
ICBkZWYgdmlld3ZhbHVlcyhzZWxmKToKKyAgICAgICAgIm9kLnZpZXd2YWx1ZXMoKSAtPiBhbiBv
YmplY3QgcHJvdmlkaW5nIGEgdmlldyBvbiBvZCdzIHZhbHVlcyIKKyAgICAgICAgcmV0dXJuIFZh
bHVlc1ZpZXcoc2VsZikKKworICAgIGRlZiB2aWV3aXRlbXMoc2VsZik6CisgICAgICAgICJvZC52
aWV3aXRlbXMoKSAtPiBhIHNldC1saWtlIG9iamVjdCBwcm92aWRpbmcgYSB2aWV3IG9uIG9kJ3Mg
aXRlbXMiCisgICAgICAgIHJldHVybiBJdGVtc1ZpZXcoc2VsZikKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
ZnVuY3NpZ3MvZnVuY3NpZ3MvdmVyc2lvbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZnVuY3NpZ3MvdmVy
c2lvbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44OTZhMzcwY2FkMTZjZjE4MzZjZTEzZjNiNTRkNDljMTkxZGY4
MjgxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9mdW5jc2lncy92ZXJzaW9uLnB5
CkBAIC0wLDAgKzEgQEAKK19fdmVyc2lvbl9fID0gIjAuNCIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVu
Y3NpZ3MvZnVuY3NpZ3MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2Z1bmNzaWdzL3cz
Yy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyNmEzMDZlMWU0ZWM0OWRjYTFiYTBkNDU0NWU1NDU5
MTEzOTNkNjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2Z1bmNzaWdzL3czYy1p
bXBvcnQubG9nCkBAIC0wLDAgKzEsMTkgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9u
ZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZnVuY3Np
Z3MvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2Z1bmNzaWdzL29kaWN0LnB5CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9m
dW5jc2lncy9mdW5jc2lncy92ZXJzaW9uLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3Jl
cXVpcmVtZW50cy9kZXZlbG9wbWVudC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3JlcXVpcmVtZW50cy9k
ZXZlbG9wbWVudC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWNhZmIwYTUyN2QzZTc5NmM3MDgwZjEwMDg1YjUz
N2E3MzAwZTk4NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvcmVxdWlyZW1lbnRz
L2RldmVsb3BtZW50LnR4dApAQCAtMCwwICsxLDYgQEAKK2NvdmVyYWdlCitjb3ZlcmFsbHMKK3Bp
cAorZmxha2U4CitzcGhpbngKK3doZWVsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3JlcXVp
cmVtZW50cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvcmVxdWlyZW1lbnRzL3czYy1p
bXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1NWZhNDc1NjdjM2I5OWFmYjcxMDI4NmQzMjkzNTM0YWM5
YTFkNGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3JlcXVpcmVtZW50cy93M2Mt
aW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3JlcXVp
cmVtZW50cy9kZXZlbG9wbWVudC50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3JlcXVpcmVtZW50cy9wcm9k
dWN0aW9uLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9zZXR1cC5jZmcgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1
bmNzaWdzL3NldHVwLmNmZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZTQwOTAwMTdhOWJlYzVkZTYwYTc0NWQxNzAw
N2E5ZTk1ZjMxYTQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9zZXR1cC5jZmcK
QEAgLTAsMCArMSwyIEBACitbd2hlZWxdCit1bml2ZXJzYWwgPSAxCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2Z1bmNzaWdzL3NldHVwLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9zZXR1cC5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
OGIwOTEyNjA0NTNjMTQ2MzhmNzBmY2U5ZjUwMmRkODJiYmU4YjNlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9mdW5jc2lncy9zZXR1cC5weQpAQCAtMCwwICsxLDU1IEBACisjIS91c3IvYmluL2Vu
diBweXRob24KK2Zyb20gc2V0dXB0b29scyBpbXBvcnQgc2V0dXAKK2ltcG9ydCByZQoraW1wb3J0
IHN5cworCitkZWYgbG9hZF92ZXJzaW9uKGZpbGVuYW1lPSdmdW5jc2lncy92ZXJzaW9uLnB5Jyk6
CisgICAgIlBhcnNlIGEgX192ZXJzaW9uX18gbnVtYmVyIGZyb20gYSBzb3VyY2UgZmlsZSIKKyAg
ICB3aXRoIG9wZW4oZmlsZW5hbWUpIGFzIHNvdXJjZToKKyAgICAgICAgdGV4dCA9IHNvdXJjZS5y
ZWFkKCkKKyAgICAgICAgbWF0Y2ggPSByZS5zZWFyY2gociJeX192ZXJzaW9uX18gPSBbJ1wiXShb
XidcIl0qKVsnXCJdIiwgdGV4dCkKKyAgICAgICAgaWYgbm90IG1hdGNoOgorICAgICAgICAgICAg
bXNnID0gIlVuYWJsZSB0byBmaW5kIHZlcnNpb24gbnVtYmVyIGluIHt9Ii5mb3JtYXQoZmlsZW5h
bWUpCisgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IobXNnKQorICAgICAgICB2ZXJzaW9u
ID0gbWF0Y2guZ3JvdXAoMSkKKyAgICAgICAgcmV0dXJuIHZlcnNpb24KKworZGVmIGxvYWRfcnN0
KGZpbGVuYW1lPSdkb2NzL3NvdXJjZS9ndWlkZV9jb250ZW50LnJzdCcpOgorICAgICJQdXJnZSBy
ZWZzIGRpcmVjdGl2ZXMgZnJvbSByZXN0cnVjdHVyZWQgdGV4dCIKKyAgICB3aXRoIG9wZW4oZmls
ZW5hbWUpIGFzIHNvdXJjZToKKyAgICAgICAgdGV4dCA9IHNvdXJjZS5yZWFkKCkKKyAgICAgICAg
ZG9jID0gcmUuc3ViKHInOlx3Kzpgfj8oW2EtekEtWi5fKCldKylgJywgcicqXDEqJywgdGV4dCkK
KyAgICAgICAgcmV0dXJuIGRvYworCitzZXR1cCgKKyAgICBuYW1lPSJmdW5jc2lncyIsCisgICAg
dmVyc2lvbj1sb2FkX3ZlcnNpb24oKSwKKyAgICBwYWNrYWdlcz1bJ2Z1bmNzaWdzJ10sCisgICAg
emlwX3NhZmU9RmFsc2UsCisgICAgYXV0aG9yPSJBYXJvbiBJbGVzIiwKKyAgICBhdXRob3JfZW1h
aWw9ImFhcm9uLmlsZXNAZ21haWwuY29tIiwKKyAgICB1cmw9Imh0dHA6Ly9mdW5jc2lncy5yZWFk
dGhlZG9jcy5vcmciLAorICAgIGRlc2NyaXB0aW9uPSJQeXRob24gZnVuY3Rpb24gc2lnbmF0dXJl
cyBmcm9tIFBFUDM2MiBmb3IgUHl0aG9uIDIuNiwgMi43IGFuZCAzLjIrIiwKKyAgICBsb25nX2Rl
c2NyaXB0aW9uPW9wZW4oJ1JFQURNRS5yc3QnKS5yZWFkKCksCisgICAgIyBsb25nX2Rlc2NyaXB0
aW9uPWxvYWRfcnN0KCksCisgICAgbGljZW5zZT0iQVNMIiwKKyAgICBpbnN0YWxsX3JlcXVpcmVz
ID0gW10sCisgICAgY2xhc3NpZmllcnMgPSBbCisgICAgICAgICdEZXZlbG9wbWVudCBTdGF0dXMg
OjogNCAtIEJldGEnLAorICAgICAgICAnSW50ZW5kZWQgQXVkaWVuY2UgOjogRGV2ZWxvcGVycycs
CisgICAgICAgICdMaWNlbnNlIDo6IE9TSSBBcHByb3ZlZCA6OiBBcGFjaGUgU29mdHdhcmUgTGlj
ZW5zZScsCisgICAgICAgICdPcGVyYXRpbmcgU3lzdGVtIDo6IE9TIEluZGVwZW5kZW50JywKKyAg
ICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbicsCisgICAgICAgICdQcm9ncmFt
bWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMicsCisgICAgICAgICdQcm9ncmFtbWluZyBMYW5n
dWFnZSA6OiBQeXRob24gOjogMi42JywKKyAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6
IFB5dGhvbiA6OiAyLjcnLAorICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9u
IDo6IDMnLAorICAgICAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDMuMics
CisgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy4zJywKKyAgICAg
ICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiBJbXBsZW1lbnRhdGlvbiA6OiBD
UHl0aG9uJywKKyAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiBJbXBs
ZW1lbnRhdGlvbiA6OiBQeVB5JywKKyAgICAgICAgJ1RvcGljIDo6IFNvZnR3YXJlIERldmVsb3Bt
ZW50IDo6IExpYnJhcmllcyA6OiBQeXRob24gTW9kdWxlcycKKyAgICBdLAorICAgIHRlc3RzX3Jl
cXVpcmUgPSBbXSBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID4gMiBlbHNlIFsndW5pdHRlc3QyJ10s
CisgICAgdGVzdF9zdWl0ZSA9ICJ0ZXN0cyIgaWYgc3lzLnZlcnNpb25faW5mb1swXSA+IDIgZWxz
ZSAndW5pdHRlc3QyLmNvbGxlY3RvcicKKykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvdGVz
dHMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3Rlc3RzL19faW5pdF9fLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3Rlc3RzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEgQEAKKyMg
VGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5
IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvZnVuY3NpZ3MvdGVzdHMvdGVzdF9mb3JtYXRhbm5vdGF0aW9uLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2ln
cy90ZXN0cy90ZXN0X2Zvcm1hdGFubm90YXRpb24ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmQ3YTg4NzNmODU1
Y2FlOGViZTI5M2U0NGU4ZTA1NzIxY2VlZjYwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVu
Y3NpZ3MvdGVzdHMvdGVzdF9mb3JtYXRhbm5vdGF0aW9uLnB5CkBAIC0wLDAgKzEsMjcgQEAKK3Ry
eToKKyAgICAjIHB5dGhvbiAyLngKKyAgICBpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0ZXN0Citl
eGNlcHQgSW1wb3J0RXJyb3I6CisgICAgIyBweXRob24gMy54CisgICAgaW1wb3J0IHVuaXR0ZXN0
CisKK2ltcG9ydCBmdW5jc2lncworCisKK2NsYXNzIFRlc3RGb3JtYXRBbm5vdGF0aW9uKHVuaXR0
ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9zdHJpbmcgKHNlbGYpOgorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGZ1bmNzaWdzLmZvcm1hdGFubm90YXRpb24oImFubm90YXRpb24iKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAiJ2Fubm90YXRpb24nIikKKworICAgIGRlZiB0ZXN0X2J1
aWx0aW5fdHlwZSAoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnVuY3NpZ3MuZm9y
bWF0YW5ub3RhdGlvbihpbnQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICJpbnQiKQorCisg
ICAgZGVmIHRlc3RfdXNlcl90eXBlIChzZWxmKToKKyAgICAgICAgY2xhc3MgZHVtbXkgKG9iamVj
dCk6IHBhc3MKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmdW5jc2lncy5mb3JtYXRhbm5vdGF0
aW9uKGR1bW15KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdHMudGVzdF9mb3JtYXRh
bm5vdGF0aW9uLmR1bW15IikKKworCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgIHVu
aXR0ZXN0LmJlZ2luKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvdGVzdHMvdGVzdF9mdW5j
c2lncy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvdGVzdHMvdGVzdF9mdW5jc2lncy5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lZWNjMGE4YTcwOTE5OGM2OTljZDE5NzczYWI0MjMyODAxN2IyYjZlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0cy90ZXN0X2Z1bmNzaWdzLnB5CkBAIC0wLDAgKzEsOTMg
QEAKK3RyeToKKyAgICAjIHB5dGhvbiAyLngKKyAgICBpbXBvcnQgdW5pdHRlc3QyIGFzIHVuaXR0
ZXN0CitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgIyBweXRob24gMy54CisgICAgaW1wb3J0IHVu
aXR0ZXN0CisKK2ltcG9ydCBkb2N0ZXN0CitpbXBvcnQgc3lzCisKK2ltcG9ydCBmdW5jc2lncyBh
cyBpbnNwZWN0CisKKworY2xhc3MgVGVzdEZ1bmN0aW9uU2lnbmF0dXJlcyh1bml0dGVzdC5UZXN0
Q2FzZSk6CisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHNpZ25hdHVyZShmdW5jKToKKyAg
ICAgICAgc2lnID0gaW5zcGVjdC5zaWduYXR1cmUoZnVuYykKKyAgICAgICAgcmV0dXJuICh0dXBs
ZSgocGFyYW0ubmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgKEVsbGlwc2lzIGlmIHBhcmFt
LmRlZmF1bHQgaXMgcGFyYW0uZW1wdHkgZWxzZSBwYXJhbS5kZWZhdWx0KSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgKEVsbGlwc2lzIGlmIHBhcmFtLmFubm90YXRpb24gaXMgcGFyYW0uZW1wdHkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZWxzZSBwYXJhbS5hbm5vdGF0aW9uKSwKKyAgICAgICAgICAgICAgICAgICAgICAgc3RyKHBhcmFt
LmtpbmQpLmxvd2VyKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Ig
cGFyYW0gaW4gc2lnLnBhcmFtZXRlcnMudmFsdWVzKCkpLAorICAgICAgICAgICAgICAgIChFbGxp
cHNpcyBpZiBzaWcucmV0dXJuX2Fubm90YXRpb24gaXMgc2lnLmVtcHR5CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ugc2lnLnJldHVybl9hbm5vdGF0aW9u
KSkKKworICAgIGRlZiB0ZXN0X3plcm9fYXJndW1lbnRzKHNlbGYpOgorICAgICAgICBkZWYgdGVz
dCgpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2ln
bmF0dXJlKHRlc3QpLAorICAgICAgICAgICAgICAgICgoKSwgRWxsaXBzaXMpKQorCisgICAgZGVm
IHRlc3Rfc2luZ2xlX3Bvc2l0aW9uYWxfYXJndW1lbnQoc2VsZik6CisgICAgICAgIGRlZiB0ZXN0
KGEpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2ln
bmF0dXJlKHRlc3QpLAorICAgICAgICAgICAgICAgICgoKCgnYScsIEVsbGlwc2lzLCBFbGxpcHNp
cywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpKSwpLCBFbGxpcHNpcykpCisKKyAgICBkZWYgdGVz
dF9zaW5nbGVfa2V5d29yZF9hcmd1bWVudChzZWxmKToKKyAgICAgICAgZGVmIHRlc3QoYT1Ob25l
KToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25h
dHVyZSh0ZXN0KSwKKyAgICAgICAgICAgICAgICAoKCgoJ2EnLCBOb25lLCBFbGxpcHNpcywgInBv
c2l0aW9uYWxfb3Jfa2V5d29yZCIpKSwpLCBFbGxpcHNpcykpCisKKyAgICBkZWYgdGVzdF92YXJf
YXJncyhzZWxmKToKKyAgICAgICAgZGVmIHRlc3QoKmFyZ3MpOgorICAgICAgICAgICAgcGFzcwor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKHRlc3QpLAorICAgICAgICAg
ICAgICAgICgoKCgnYXJncycsIEVsbGlwc2lzLCBFbGxpcHNpcywgInZhcl9wb3NpdGlvbmFsIikp
LCksIEVsbGlwc2lzKSkKKworICAgIGRlZiB0ZXN0X2tleXdvcmRzX2FyZ3Moc2VsZik6CisgICAg
ICAgIGRlZiB0ZXN0KCoqa3dhcmdzKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZSh0ZXN0KSwKKyAgICAgICAgICAgICAgICAoKCgoJ2t3
YXJncycsIEVsbGlwc2lzLCBFbGxpcHNpcywgInZhcl9rZXl3b3JkIikpLCksIEVsbGlwc2lzKSkK
KworICAgIGRlZiB0ZXN0X211bHRpcGxlX2FyZ3VtZW50cyhzZWxmKToKKyAgICAgICAgZGVmIHRl
c3QoYSwgYj1Ob25lLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAgcGFzcworICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKHRlc3QpLCAoKAorICAgICAgICAgICAg
KCdhJywgRWxsaXBzaXMsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAg
ICAgICAgICAoJ2InLCBOb25lLCBFbGxpcHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAor
ICAgICAgICAgICAgKCdhcmdzJywgRWxsaXBzaXMsIEVsbGlwc2lzLCAidmFyX3Bvc2l0aW9uYWwi
KSwKKyAgICAgICAgICAgICgna3dhcmdzJywgRWxsaXBzaXMsIEVsbGlwc2lzLCAidmFyX2tleXdv
cmQiKSwKKyAgICAgICAgICAgICksIEVsbGlwc2lzKSkKKworICAgIGRlZiB0ZXN0X2hhc192ZXJz
aW9uKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFRydWUoaW5zcGVjdC5fX3ZlcnNpb25fXykK
KworICAgIGRlZiB0ZXN0X3JlYWRtZShzZWxmKToKKyAgICAgICAgZG9jdGVzdC50ZXN0ZmlsZSgn
Li4vUkVBRE1FLnJzdCcpCisKKyAgICBkZWYgdGVzdF91bmJvdW5kX21ldGhvZChzZWxmKToKKyAg
ICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCk6CisgICAgICAgICAgICBzZWxmX2tpbmQg
PSAicG9zaXRpb25hbF9vbmx5IgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZl9raW5k
ID0gInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIKKyAgICAgICAgY2xhc3MgVGVzdChvYmplY3QpOgor
ICAgICAgICAgICAgZGVmIG1ldGhvZChzZWxmKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICAgICBkZWYgbWV0aG9kX3dpdGhfYXJncyhzZWxmLCBhKToKKyAgICAgICAgICAgICAgICBw
YXNzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUoVGVzdC5tZXRob2Qp
LAorICAgICAgICAgICAgICAgICgoKCgnc2VsZicsIEVsbGlwc2lzLCBFbGxpcHNpcywgc2VsZl9r
aW5kKSksKSwgRWxsaXBzaXMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0
dXJlKFRlc3QubWV0aG9kX3dpdGhfYXJncyksICgoCisgICAgICAgICAgICAgICAgKCdzZWxmJywg
RWxsaXBzaXMsIEVsbGlwc2lzLCBzZWxmX2tpbmQpLAorICAgICAgICAgICAgICAgICgnYScsIEVs
bGlwc2lzLCBFbGxpcHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAg
ICAgICksIEVsbGlwc2lzKSkKKworCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgIHVu
aXR0ZXN0LmJlZ2luKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvdGVzdHMvdGVzdF9pbnNw
ZWN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0cy90ZXN0X2luc3BlY3QucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzIzYzMyM2VhZmQ5ODYwMzEwNWJhMDU3ZWNlZjM0OTVmYTE2MmY2OQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvZnVuY3NpZ3MvdGVzdHMvdGVzdF9pbnNwZWN0LnB5CkBAIC0wLDAgKzEsMTAxOSBA
QAorIyBDb3B5cmlnaHQgMjAwMS0yMDEzIFB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBBbGwg
UmlnaHRzIFJlc2VydmVkCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwg
ZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitpbXBvcnQgY29sbGVjdGlvbnMKK2ltcG9ydCBzeXMK
KwordHJ5OgorICAgIGltcG9ydCB1bml0dGVzdDIgYXMgdW5pdHRlc3QKK2V4Y2VwdCBJbXBvcnRF
cnJvcjoKKyAgICBpbXBvcnQgdW5pdHRlc3QKKworaW1wb3J0IGZ1bmNzaWdzIGFzIGluc3BlY3QK
KworCitjbGFzcyBUZXN0U2lnbmF0dXJlT2JqZWN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBA
c3RhdGljbWV0aG9kCisgICAgZGVmIHNpZ25hdHVyZShmdW5jKToKKyAgICAgICAgc2lnID0gaW5z
cGVjdC5zaWduYXR1cmUoZnVuYykKKyAgICAgICAgcmV0dXJuICh0dXBsZSgocGFyYW0ubmFtZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgKEVsbGlwc2lzIGlmIHBhcmFtLmRlZmF1bHQgaXMgcGFy
YW0uZW1wdHkgZWxzZSBwYXJhbS5kZWZhdWx0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKEVs
bGlwc2lzIGlmIHBhcmFtLmFubm90YXRpb24gaXMgcGFyYW0uZW1wdHkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBwYXJhbS5hbm5v
dGF0aW9uKSwKKyAgICAgICAgICAgICAgICAgICAgICAgc3RyKHBhcmFtLmtpbmQpLmxvd2VyKCkp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgcGFyYW0gaW4gc2lnLnBh
cmFtZXRlcnMudmFsdWVzKCkpLAorICAgICAgICAgICAgICAgIChFbGxpcHNpcyBpZiBzaWcucmV0
dXJuX2Fubm90YXRpb24gaXMgc2lnLmVtcHR5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGVsc2Ugc2lnLnJldHVybl9hbm5vdGF0aW9uKSkKKworICAgIGRlZiBf
X2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICB1bml0dGVzdC5UZXN0Q2Fz
ZS5fX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpCisgICAgICAgIGlmIG5vdCBoYXNhdHRy
KHNlbGYsICdhc3NlcnRSYWlzZXNSZWdleCcpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlz
ZXNSZWdleCA9IHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXhwCisKKyAgICBpZiBzeXMudmVyc2lvbl9p
bmZvWzBdID4gMjoKKyAgICAgICAgZXhlYygiIiIKK2RlZiB0ZXN0X3NpZ25hdHVyZV9vYmplY3Qo
c2VsZik6CisgICAgUyA9IGluc3BlY3QuU2lnbmF0dXJlCisgICAgUCA9IGluc3BlY3QuUGFyYW1l
dGVyCisKKyAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihTKCkpLCAnKCknKQorCisgICAgZGVmIHRl
c3QocG8sIHBrLCAqYXJncywga28sICoqa3dhcmdzKToKKyAgICAgICAgcGFzcworICAgIHNpZyA9
IGluc3BlY3Quc2lnbmF0dXJlKHRlc3QpCisgICAgcG8gPSBzaWcucGFyYW1ldGVyc1sncG8nXS5y
ZXBsYWNlKGtpbmQ9UC5QT1NJVElPTkFMX09OTFkpCisgICAgcGsgPSBzaWcucGFyYW1ldGVyc1sn
cGsnXQorICAgIGFyZ3MgPSBzaWcucGFyYW1ldGVyc1snYXJncyddCisgICAga28gPSBzaWcucGFy
YW1ldGVyc1sna28nXQorICAgIGt3YXJncyA9IHNpZy5wYXJhbWV0ZXJzWydrd2FyZ3MnXQorCisg
ICAgUygocG8sIHBrLCBhcmdzLCBrbywga3dhcmdzKSkKKworICAgIHdpdGggc2VsZi5hc3NlcnRS
YWlzZXNSZWdleChWYWx1ZUVycm9yLCAnd3JvbmcgcGFyYW1ldGVyIG9yZGVyJyk6CisgICAgICAg
IFMoKHBrLCBwbywgYXJncywga28sIGt3YXJncykpCisKKyAgICB3aXRoIHNlbGYuYXNzZXJ0UmFp
c2VzUmVnZXgoVmFsdWVFcnJvciwgJ3dyb25nIHBhcmFtZXRlciBvcmRlcicpOgorICAgICAgICBT
KChwbywgYXJncywgcGssIGtvLCBrd2FyZ3MpKQorCisgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNl
c1JlZ2V4KFZhbHVlRXJyb3IsICd3cm9uZyBwYXJhbWV0ZXIgb3JkZXInKToKKyAgICAgICAgUygo
YXJncywgcG8sIHBrLCBrbywga3dhcmdzKSkKKworICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNS
ZWdleChWYWx1ZUVycm9yLCAnd3JvbmcgcGFyYW1ldGVyIG9yZGVyJyk6CisgICAgICAgIFMoKHBv
LCBwaywgYXJncywga3dhcmdzLCBrbykpCisKKyAgICBrd2FyZ3MyID0ga3dhcmdzLnJlcGxhY2Uo
bmFtZT0nYXJncycpCisgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFZhbHVlRXJyb3Is
ICdkdXBsaWNhdGUgcGFyYW1ldGVyIG5hbWUnKToKKyAgICAgICAgUygocG8sIHBrLCBhcmdzLCBr
d2FyZ3MyLCBrbykpCisiIiIpCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfaW1tdXRhYmlsaXR5
KHNlbGYpOgorICAgICAgICBkZWYgdGVzdChhKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAg
c2lnID0gaW5zcGVjdC5zaWduYXR1cmUodGVzdCkKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0
UmFpc2VzKEF0dHJpYnV0ZUVycm9yKToKKyAgICAgICAgICAgIHNpZy5mb28gPSAnYmFyJworCisg
ICAgICAgICMgUHl0aG9uMiBkb2VzIG5vdCBoYXZlIE1hcHBpbmdQcm94eVR5cGUgY2xhc3MKKyAg
ICAgICAgaWYgc3lzLnZlcnNpb25faW5mb1s6Ml0gPCAoMywgMyk6CisgICAgICAgICAgICByZXR1
cm4KKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcik6CisgICAgICAg
ICAgICBzaWcucGFyYW1ldGVyc1snYSddID0gTm9uZQorCisgICAgZGVmIHRlc3Rfc2lnbmF0dXJl
X29uX25vYXJnKHNlbGYpOgorICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAgcGFzcwor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKHRlc3QpLCAoKCksIEVsbGlw
c2lzKSkKKworICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPiAyOgorICAgICAgICBleGVjKCIi
IgorZGVmIHRlc3Rfc2lnbmF0dXJlX29uX3dhcmdzKHNlbGYpOgorICAgIGRlZiB0ZXN0KGEsIGI6
J2ZvbycpIC0+IDEyMzoKKyAgICAgICAgcGFzcworICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5z
aWduYXR1cmUodGVzdCksCisgICAgICAgICAgICAgICAgICAgICAoKCgnYScsIEVsbGlwc2lzLCBF
bGxpcHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAg
ICAoJ2InLCBFbGxpcHNpcywgJ2ZvbycsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSksCisgICAg
ICAgICAgICAgICAgICAgICAgMTIzKSkKKyIiIikKKworICAgIGlmIHN5cy52ZXJzaW9uX2luZm9b
MF0gPiAyOgorICAgICAgICBleGVjKCIiIgorZGVmIHRlc3Rfc2lnbmF0dXJlX29uX3drd29ubHko
c2VsZik6CisgICAgZGVmIHRlc3QoKiwgYTpmbG9hdCwgYjpzdHIpIC0+IGludDoKKyAgICAgICAg
cGFzcworICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUodGVzdCksCisgICAgICAg
ICAgICAgICAgICAgICAoKCgnYScsIEVsbGlwc2lzLCBmbG9hdCwgImtleXdvcmRfb25seSIpLAor
ICAgICAgICAgICAgICAgICAgICAgICAoJ2InLCBFbGxpcHNpcywgc3RyLCAia2V5d29yZF9vbmx5
IikpLAorICAgICAgICAgICAgICAgICAgICAgICBpbnQpKQorIiIiKQorCisgICAgaWYgc3lzLnZl
cnNpb25faW5mb1swXSA+IDI6CisgICAgICAgIGV4ZWMoIiIiCitkZWYgdGVzdF9zaWduYXR1cmVf
b25fY29tcGxleF9hcmdzKHNlbGYpOgorICAgIGRlZiB0ZXN0KGEsIGI6J2Zvbyc9MTAsICphcmdz
OidiYXInLCBzcGFtOidiYXonLCBoYW09MTIzLCAqKmt3YXJnczppbnQpOgorICAgICAgICBwYXNz
CisgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZSh0ZXN0KSwKKyAgICAgICAgICAg
ICAgICAgICAgICgoKCdhJywgRWxsaXBzaXMsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3
b3JkIiksCisgICAgICAgICAgICAgICAgICAgICAgICgnYicsIDEwLCAnZm9vJywgInBvc2l0aW9u
YWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAoJ2FyZ3MnLCBFbGxpcHNp
cywgJ2JhcicsICJ2YXJfcG9zaXRpb25hbCIpLAorICAgICAgICAgICAgICAgICAgICAgICAoJ3Nw
YW0nLCBFbGxpcHNpcywgJ2JheicsICJrZXl3b3JkX29ubHkiKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgKCdoYW0nLCAxMjMsIEVsbGlwc2lzLCAia2V5d29yZF9vbmx5IiksCisgICAgICAgICAg
ICAgICAgICAgICAgICgna3dhcmdzJywgRWxsaXBzaXMsIGludCwgInZhcl9rZXl3b3JkIikpLAor
ICAgICAgICAgICAgICAgICAgICAgIEVsbGlwc2lzKSkKKyIiIikKKworICAgIGRlZiB0ZXN0X3Np
Z25hdHVyZV9vbl9idWlsdGluX2Z1bmN0aW9uKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNz
ZXJ0UmFpc2VzUmVnZXgoVmFsdWVFcnJvciwgJ25vdCBzdXBwb3J0ZWQgYnkgc2lnbmF0dXJlJyk6
CisgICAgICAgICAgICBpbnNwZWN0LnNpZ25hdHVyZSh0eXBlKQorICAgICAgICB3aXRoIHNlbGYu
YXNzZXJ0UmFpc2VzUmVnZXgoVmFsdWVFcnJvciwgJ25vdCBzdXBwb3J0ZWQgYnkgc2lnbmF0dXJl
Jyk6CisgICAgICAgICAgICAjIHN1cHBvcnQgZm9yICd3cmFwcGVyX2Rlc2NyaXB0b3InCisgICAg
ICAgICAgICBpbnNwZWN0LnNpZ25hdHVyZSh0eXBlLl9fY2FsbF9fKQorICAgICAgICAgICAgaWYg
aGFzYXR0cihzeXMsICdweXB5X3ZlcnNpb25faW5mbycpOgorICAgICAgICAgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoJ25vdCBzdXBwb3J0ZWQgYnkgc2lnbmF0dXJlJykKKyAgICAgICAgd2l0aCBz
ZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFZhbHVlRXJyb3IsICdub3Qgc3VwcG9ydGVkIGJ5IHNpZ25h
dHVyZScpOgorICAgICAgICAgICAgIyBzdXBwb3J0IGZvciAnbWV0aG9kLXdyYXBwZXInCisgICAg
ICAgICAgICBpbnNwZWN0LnNpZ25hdHVyZShtaW4uX19jYWxsX18pCisgICAgICAgICAgICBpZiBo
YXNhdHRyKHN5cywgJ3B5cHlfdmVyc2lvbl9pbmZvJyk6CisgICAgICAgICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcignbm90IHN1cHBvcnRlZCBieSBzaWduYXR1cmUnKQorICAgICAgICB3aXRoIHNl
bGYuYXNzZXJ0UmFpc2VzUmVnZXgoVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnbm8gc2lnbmF0dXJlIGZvdW5kIGZvciBidWlsdGluIGZ1bmN0aW9uJyk6
CisgICAgICAgICAgICAjIHN1cHBvcnQgZm9yICdtZXRob2Qtd3JhcHBlcicKKyAgICAgICAgICAg
IGluc3BlY3Quc2lnbmF0dXJlKG1pbikKKworICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9vbl9ub25f
ZnVuY3Rpb24oc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBl
RXJyb3IsICdpcyBub3QgYSBjYWxsYWJsZSBvYmplY3QnKToKKyAgICAgICAgICAgIGluc3BlY3Qu
c2lnbmF0dXJlKDQyKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBl
RXJyb3IsICdpcyBub3QgYSBQeXRob24gZnVuY3Rpb24nKToKKyAgICAgICAgICAgIGluc3BlY3Qu
U2lnbmF0dXJlLmZyb21fZnVuY3Rpb24oNDIpCisKKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBd
ID4gMjoKKyAgICAgICAgZXhlYygiIiIKK2RlZiB0ZXN0X3NpZ25hdHVyZV9vbl9tZXRob2Qoc2Vs
Zik6CisgICAgY2xhc3MgVGVzdDoKKyAgICAgICAgZGVmIGZvbyhzZWxmLCBhcmcxLCBhcmcyPTEp
IC0+IGludDoKKyAgICAgICAgICAgIHBhc3MKKworICAgIG1ldGggPSBUZXN0KCkuZm9vCisKKyAg
ICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKG1ldGgpLAorICAgICAgICAgICAgICAg
ICAgICAgKCgoJ2FyZzEnLCBFbGxpcHNpcywgRWxsaXBzaXMsICJwb3NpdGlvbmFsX29yX2tleXdv
cmQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCdhcmcyJywgMSwgRWxsaXBzaXMsICJwb3Np
dGlvbmFsX29yX2tleXdvcmQiKSksCisgICAgICAgICAgICAgICAgICAgICAgaW50KSkKKyIiIikK
KworICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPiAyOgorICAgICAgICBleGVjKCIiIgorZGVm
IHRlc3Rfc2lnbmF0dXJlX29uX2NsYXNzbWV0aG9kKHNlbGYpOgorICAgIGNsYXNzIFRlc3Q6Cisg
ICAgICAgIEBjbGFzc21ldGhvZAorICAgICAgICBkZWYgZm9vKGNscywgYXJnMSwgKiwgYXJnMj0x
KToKKyAgICAgICAgICAgIHBhc3MKKworICAgIG1ldGggPSBUZXN0KCkuZm9vCisgICAgc2VsZi5h
c3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShtZXRoKSwKKyAgICAgICAgICAgICAgICAgICAgICgo
KCdhcmcxJywgRWxsaXBzaXMsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisg
ICAgICAgICAgICAgICAgICAgICAgICgnYXJnMicsIDEsIEVsbGlwc2lzLCAia2V5d29yZF9vbmx5
IikpLAorICAgICAgICAgICAgICAgICAgICAgIEVsbGlwc2lzKSkKKworICAgIG1ldGggPSBUZXN0
LmZvbworICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUobWV0aCksCisgICAgICAg
ICAgICAgICAgICAgICAoKCgnYXJnMScsIEVsbGlwc2lzLCBFbGxpcHNpcywgInBvc2l0aW9uYWxf
b3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAoJ2FyZzInLCAxLCBFbGxpcHNp
cywgImtleXdvcmRfb25seSIpKSwKKyAgICAgICAgICAgICAgICAgICAgICBFbGxpcHNpcykpCisi
IiIpCisKKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID4gMjoKKyAgICAgICAgZXhlYygiIiIK
K2RlZiB0ZXN0X3NpZ25hdHVyZV9vbl9zdGF0aWNtZXRob2Qoc2VsZik6CisgICAgY2xhc3MgVGVz
dDoKKyAgICAgICAgQHN0YXRpY21ldGhvZAorICAgICAgICBkZWYgZm9vKGNscywgKiwgYXJnKToK
KyAgICAgICAgICAgIHBhc3MKKworICAgIG1ldGggPSBUZXN0KCkuZm9vCisgICAgc2VsZi5hc3Nl
cnRFcXVhbChzZWxmLnNpZ25hdHVyZShtZXRoKSwKKyAgICAgICAgICAgICAgICAgICAgICgoKCdj
bHMnLCBFbGxpcHNpcywgRWxsaXBzaXMsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgKCdhcmcnLCBFbGxpcHNpcywgRWxsaXBzaXMsICJrZXl3b3JkX29u
bHkiKSksCisgICAgICAgICAgICAgICAgICAgICAgRWxsaXBzaXMpKQorCisgICAgbWV0aCA9IFRl
c3QuZm9vCisgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShtZXRoKSwKKyAgICAg
ICAgICAgICAgICAgICAgICgoKCdjbHMnLCBFbGxpcHNpcywgRWxsaXBzaXMsICJwb3NpdGlvbmFs
X29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCdhcmcnLCBFbGxpcHNpcywg
RWxsaXBzaXMsICJrZXl3b3JkX29ubHkiKSksCisgICAgICAgICAgICAgICAgICAgICAgRWxsaXBz
aXMpKQorIiIiKQorCisgICAgaWYgc3lzLnZlcnNpb25faW5mb1swXSA+IDI6CisgICAgICAgIGV4
ZWMoIiIiCitkZWYgdGVzdF9zaWduYXR1cmVfb25fcGFydGlhbChzZWxmKToKKyAgICBmcm9tIGZ1
bmN0b29scyBpbXBvcnQgcGFydGlhbAorCisgICAgZGVmIHRlc3QoKToKKyAgICAgICAgcGFzcwor
CisgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShwYXJ0aWFsKHRlc3QpKSwgKCgp
LCBFbGxpcHNpcykpCisKKyAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVmFsdWVFcnJv
ciwgImhhcyBpbmNvcnJlY3QgYXJndW1lbnRzIik6CisgICAgICAgIGluc3BlY3Quc2lnbmF0dXJl
KHBhcnRpYWwodGVzdCwgMSkpCisKKyAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVmFs
dWVFcnJvciwgImhhcyBpbmNvcnJlY3QgYXJndW1lbnRzIik6CisgICAgICAgIGluc3BlY3Quc2ln
bmF0dXJlKHBhcnRpYWwodGVzdCwgYT0xKSkKKworICAgIGRlZiB0ZXN0KGEsIGIsICosIGMsIGQp
OgorICAgICAgICBwYXNzCisKKyAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKHBh
cnRpYWwodGVzdCkpLAorICAgICAgICAgICAgICAgICAgICAgKCgoJ2EnLCBFbGxpcHNpcywgRWxs
aXBzaXMsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
KCdiJywgRWxsaXBzaXMsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAg
ICAgICAgICAgICAgICAgICAgICgnYycsIEVsbGlwc2lzLCBFbGxpcHNpcywgImtleXdvcmRfb25s
eSIpLAorICAgICAgICAgICAgICAgICAgICAgICAoJ2QnLCBFbGxpcHNpcywgRWxsaXBzaXMsICJr
ZXl3b3JkX29ubHkiKSksCisgICAgICAgICAgICAgICAgICAgICAgRWxsaXBzaXMpKQorCisgICAg
c2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShwYXJ0aWFsKHRlc3QsIDEpKSwKKyAgICAg
ICAgICAgICAgICAgICAgICgoKCdiJywgRWxsaXBzaXMsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9v
cl9rZXl3b3JkIiksCisgICAgICAgICAgICAgICAgICAgICAgICgnYycsIEVsbGlwc2lzLCBFbGxp
cHNpcywgImtleXdvcmRfb25seSIpLAorICAgICAgICAgICAgICAgICAgICAgICAoJ2QnLCBFbGxp
cHNpcywgRWxsaXBzaXMsICJrZXl3b3JkX29ubHkiKSksCisgICAgICAgICAgICAgICAgICAgICAg
RWxsaXBzaXMpKQorCisgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShwYXJ0aWFs
KHRlc3QsIDEsIGM9MikpLAorICAgICAgICAgICAgICAgICAgICAgKCgoJ2InLCBFbGxpcHNpcywg
RWxsaXBzaXMsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgKCdjJywgMiwgRWxsaXBzaXMsICJrZXl3b3JkX29ubHkiKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgKCdkJywgRWxsaXBzaXMsIEVsbGlwc2lzLCAia2V5d29yZF9vbmx5IikpLAorICAgICAg
ICAgICAgICAgICAgICAgIEVsbGlwc2lzKSkKKworICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5z
aWduYXR1cmUocGFydGlhbCh0ZXN0LCBiPTEsIGM9MikpLAorICAgICAgICAgICAgICAgICAgICAg
KCgoJ2EnLCBFbGxpcHNpcywgRWxsaXBzaXMsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgKCdiJywgMSwgRWxsaXBzaXMsICJwb3NpdGlvbmFsX29yX2tl
eXdvcmQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCdjJywgMiwgRWxsaXBzaXMsICJrZXl3
b3JkX29ubHkiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCdkJywgRWxsaXBzaXMsIEVsbGlw
c2lzLCAia2V5d29yZF9vbmx5IikpLAorICAgICAgICAgICAgICAgICAgICAgIEVsbGlwc2lzKSkK
KworICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUocGFydGlhbCh0ZXN0LCAwLCBi
PTEsIGM9MikpLAorICAgICAgICAgICAgICAgICAgICAgKCgoJ2InLCAxLCBFbGxpcHNpcywgInBv
c2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAoJ2MnLCAyLCBF
bGxpcHNpcywgImtleXdvcmRfb25seSIpLAorICAgICAgICAgICAgICAgICAgICAgICAoJ2QnLCBF
bGxpcHNpcywgRWxsaXBzaXMsICJrZXl3b3JkX29ubHkiKSwpLAorICAgICAgICAgICAgICAgICAg
ICAgIEVsbGlwc2lzKSkKKworICAgIGRlZiB0ZXN0KGEsICphcmdzLCBiLCAqKmt3YXJncyk6Cisg
ICAgICAgIHBhc3MKKworICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUocGFydGlh
bCh0ZXN0LCAxKSksCisgICAgICAgICAgICAgICAgICAgICAoKCgnYXJncycsIEVsbGlwc2lzLCBF
bGxpcHNpcywgInZhcl9wb3NpdGlvbmFsIiksCisgICAgICAgICAgICAgICAgICAgICAgICgnYics
IEVsbGlwc2lzLCBFbGxpcHNpcywgImtleXdvcmRfb25seSIpLAorICAgICAgICAgICAgICAgICAg
ICAgICAoJ2t3YXJncycsIEVsbGlwc2lzLCBFbGxpcHNpcywgInZhcl9rZXl3b3JkIikpLAorICAg
ICAgICAgICAgICAgICAgICAgIEVsbGlwc2lzKSkKKworICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2Vs
Zi5zaWduYXR1cmUocGFydGlhbCh0ZXN0LCAxLCAyLCAzKSksCisgICAgICAgICAgICAgICAgICAg
ICAoKCgnYXJncycsIEVsbGlwc2lzLCBFbGxpcHNpcywgInZhcl9wb3NpdGlvbmFsIiksCisgICAg
ICAgICAgICAgICAgICAgICAgICgnYicsIEVsbGlwc2lzLCBFbGxpcHNpcywgImtleXdvcmRfb25s
eSIpLAorICAgICAgICAgICAgICAgICAgICAgICAoJ2t3YXJncycsIEVsbGlwc2lzLCBFbGxpcHNp
cywgInZhcl9rZXl3b3JkIikpLAorICAgICAgICAgICAgICAgICAgICAgIEVsbGlwc2lzKSkKKwor
CisgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShwYXJ0aWFsKHRlc3QsIDEsIDIs
IDMsIHRlc3Q9VHJ1ZSkpLAorICAgICAgICAgICAgICAgICAgICAgKCgoJ2FyZ3MnLCBFbGxpcHNp
cywgRWxsaXBzaXMsICJ2YXJfcG9zaXRpb25hbCIpLAorICAgICAgICAgICAgICAgICAgICAgICAo
J2InLCBFbGxpcHNpcywgRWxsaXBzaXMsICJrZXl3b3JkX29ubHkiKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgKCdrd2FyZ3MnLCBFbGxpcHNpcywgRWxsaXBzaXMsICJ2YXJfa2V5d29yZCIpKSwK
KyAgICAgICAgICAgICAgICAgICAgICBFbGxpcHNpcykpCisKKyAgICBzZWxmLmFzc2VydEVxdWFs
KHNlbGYuc2lnbmF0dXJlKHBhcnRpYWwodGVzdCwgMSwgMiwgMywgdGVzdD0xLCBiPTApKSwKKyAg
ICAgICAgICAgICAgICAgICAgICgoKCdhcmdzJywgRWxsaXBzaXMsIEVsbGlwc2lzLCAidmFyX3Bv
c2l0aW9uYWwiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCdiJywgMCwgRWxsaXBzaXMsICJr
ZXl3b3JkX29ubHkiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCdrd2FyZ3MnLCBFbGxpcHNp
cywgRWxsaXBzaXMsICJ2YXJfa2V5d29yZCIpKSwKKyAgICAgICAgICAgICAgICAgICAgICBFbGxp
cHNpcykpCisKKyAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKHBhcnRpYWwodGVz
dCwgYj0wKSksCisgICAgICAgICAgICAgICAgICAgICAoKCgnYScsIEVsbGlwc2lzLCBFbGxpcHNp
cywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAoJ2Fy
Z3MnLCBFbGxpcHNpcywgRWxsaXBzaXMsICJ2YXJfcG9zaXRpb25hbCIpLAorICAgICAgICAgICAg
ICAgICAgICAgICAoJ2InLCAwLCBFbGxpcHNpcywgImtleXdvcmRfb25seSIpLAorICAgICAgICAg
ICAgICAgICAgICAgICAoJ2t3YXJncycsIEVsbGlwc2lzLCBFbGxpcHNpcywgInZhcl9rZXl3b3Jk
IikpLAorICAgICAgICAgICAgICAgICAgICAgIEVsbGlwc2lzKSkKKworICAgIHNlbGYuYXNzZXJ0
RXF1YWwoc2VsZi5zaWduYXR1cmUocGFydGlhbCh0ZXN0LCBiPTAsIHRlc3Q9MSkpLAorICAgICAg
ICAgICAgICAgICAgICAgKCgoJ2EnLCBFbGxpcHNpcywgRWxsaXBzaXMsICJwb3NpdGlvbmFsX29y
X2tleXdvcmQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCdhcmdzJywgRWxsaXBzaXMsIEVs
bGlwc2lzLCAidmFyX3Bvc2l0aW9uYWwiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCdiJywg
MCwgRWxsaXBzaXMsICJrZXl3b3JkX29ubHkiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCdr
d2FyZ3MnLCBFbGxpcHNpcywgRWxsaXBzaXMsICJ2YXJfa2V5d29yZCIpKSwKKyAgICAgICAgICAg
ICAgICAgICAgICBFbGxpcHNpcykpCisKKyAgICBkZWYgdGVzdChhLCBiLCBjOmludCkgLT4gNDI6
CisgICAgICAgIHBhc3MKKworICAgIHNpZyA9IHRlc3QuX19zaWduYXR1cmVfXyA9IGluc3BlY3Qu
c2lnbmF0dXJlKHRlc3QpCisKKyAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKHBh
cnRpYWwocGFydGlhbCh0ZXN0LCAxKSkpLAorICAgICAgICAgICAgICAgICAgICAgKCgoJ2InLCBF
bGxpcHNpcywgRWxsaXBzaXMsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgKCdjJywgRWxsaXBzaXMsIGludCwgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIp
KSwKKyAgICAgICAgICAgICAgICAgICAgICA0MikpCisKKyAgICBzZWxmLmFzc2VydEVxdWFsKHNl
bGYuc2lnbmF0dXJlKHBhcnRpYWwocGFydGlhbCh0ZXN0LCAxKSwgMikpLAorICAgICAgICAgICAg
ICAgICAgICAgKCgoJ2MnLCBFbGxpcHNpcywgaW50LCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiks
KSwKKyAgICAgICAgICAgICAgICAgICAgICA0MikpCisKKyAgICBwc2lnID0gaW5zcGVjdC5zaWdu
YXR1cmUocGFydGlhbChwYXJ0aWFsKHRlc3QsIDEpLCAyKSkKKworICAgIGRlZiBmb28oYSk6Cisg
ICAgICAgIHJldHVybiBhCisgICAgX2ZvbyA9IHBhcnRpYWwocGFydGlhbChmb28sIGE9MTApLCBh
PTIwKQorICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUoX2ZvbyksCisgICAgICAg
ICAgICAgICAgICAgICAoKCgnYScsIDIwLCBFbGxpcHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5d29y
ZCIpLCksCisgICAgICAgICAgICAgICAgICAgICAgRWxsaXBzaXMpKQorICAgICMgY2hlY2sgdGhh
dCB3ZSBkb24ndCBoYXZlIGFueSBzaWRlLWVmZmVjdHMgaW4gc2lnbmF0dXJlKCksCisgICAgIyBh
bmQgdGhlIHBhcnRpYWwgb2JqZWN0IGlzIHN0aWxsIGZ1bmN0aW9uaW5nCisgICAgc2VsZi5hc3Nl
cnRFcXVhbChfZm9vKCksIDIwKQorCisgICAgZGVmIGZvbyhhLCBiLCBjKToKKyAgICAgICAgcmV0
dXJuIGEsIGIsIGMKKyAgICBfZm9vID0gcGFydGlhbChwYXJ0aWFsKGZvbywgMSwgYj0yMCksIGI9
MzApCisgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShfZm9vKSwKKyAgICAgICAg
ICAgICAgICAgICAgICgoKCdiJywgMzAsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3b3Jk
IiksCisgICAgICAgICAgICAgICAgICAgICAgICgnYycsIEVsbGlwc2lzLCBFbGxpcHNpcywgInBv
c2l0aW9uYWxfb3Jfa2V5d29yZCIpKSwKKyAgICAgICAgICAgICAgICAgICAgICBFbGxpcHNpcykp
CisgICAgc2VsZi5hc3NlcnRFcXVhbChfZm9vKGM9MTApLCAoMSwgMzAsIDEwKSkKKyAgICBfZm9v
ID0gcGFydGlhbChfZm9vLCAyKSAjIG5vdyAnYicgaGFzIHR3byB2YWx1ZXMgLQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICMgcG9zaXRpb25hbCBhbmQga2V5d29yZAorICAgIHdpdGggc2Vs
Zi5hc3NlcnRSYWlzZXNSZWdleChWYWx1ZUVycm9yLCAiaGFzIGluY29ycmVjdCBhcmd1bWVudHMi
KToKKyAgICAgICAgaW5zcGVjdC5zaWduYXR1cmUoX2ZvbykKKworICAgIGRlZiBmb28oYSwgYiwg
YywgKiwgZCk6CisgICAgICAgIHJldHVybiBhLCBiLCBjLCBkCisgICAgX2ZvbyA9IHBhcnRpYWwo
cGFydGlhbChmb28sIGQ9MjAsIGM9MjApLCBiPTEwLCBkPTMwKQorICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc2VsZi5zaWduYXR1cmUoX2ZvbyksCisgICAgICAgICAgICAgICAgICAgICAoKCgnYScsIEVs
bGlwc2lzLCBFbGxpcHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAg
ICAgICAgICAgICAoJ2InLCAxMCwgRWxsaXBzaXMsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgKCdjJywgMjAsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9v
cl9rZXl3b3JkIiksCisgICAgICAgICAgICAgICAgICAgICAgICgnZCcsIDMwLCBFbGxpcHNpcywg
ImtleXdvcmRfb25seSIpKSwKKyAgICAgICAgICAgICAgICAgICAgICBFbGxpcHNpcykpCisgICAg
YmEgPSBpbnNwZWN0LnNpZ25hdHVyZShfZm9vKS5iaW5kKGE9MjAwLCBiPTExKQorICAgIHNlbGYu
YXNzZXJ0RXF1YWwoX2ZvbygqYmEuYXJncywgKipiYS5rd2FyZ3MpLCAoMjAwLCAxMSwgMjAsIDMw
KSkKKworICAgIGRlZiBmb28oYT0xLCBiPTIsIGM9Myk6CisgICAgICAgIHJldHVybiBhLCBiLCBj
CisgICAgX2ZvbyA9IHBhcnRpYWwoZm9vLCBhPTEwLCBjPTEzKQorICAgIGJhID0gaW5zcGVjdC5z
aWduYXR1cmUoX2ZvbykuYmluZCgxMSkKKyAgICBzZWxmLmFzc2VydEVxdWFsKF9mb28oKmJhLmFy
Z3MsICoqYmEua3dhcmdzKSwgKDExLCAyLCAxMykpCisgICAgYmEgPSBpbnNwZWN0LnNpZ25hdHVy
ZShfZm9vKS5iaW5kKDExLCAxMikKKyAgICBzZWxmLmFzc2VydEVxdWFsKF9mb28oKmJhLmFyZ3Ms
ICoqYmEua3dhcmdzKSwgKDExLCAxMiwgMTMpKQorICAgIGJhID0gaW5zcGVjdC5zaWduYXR1cmUo
X2ZvbykuYmluZCgxMSwgYj0xMikKKyAgICBzZWxmLmFzc2VydEVxdWFsKF9mb28oKmJhLmFyZ3Ms
ICoqYmEua3dhcmdzKSwgKDExLCAxMiwgMTMpKQorICAgIGJhID0gaW5zcGVjdC5zaWduYXR1cmUo
X2ZvbykuYmluZChiPTEyKQorICAgIHNlbGYuYXNzZXJ0RXF1YWwoX2ZvbygqYmEuYXJncywgKipi
YS5rd2FyZ3MpLCAoMTAsIDEyLCAxMykpCisgICAgX2ZvbyA9IHBhcnRpYWwoX2ZvbywgYj0xMCkK
KyAgICBiYSA9IGluc3BlY3Quc2lnbmF0dXJlKF9mb28pLmJpbmQoMTIsIDE0KQorICAgIHNlbGYu
YXNzZXJ0RXF1YWwoX2ZvbygqYmEuYXJncywgKipiYS5rd2FyZ3MpLCAoMTIsIDE0LCAxMykpCisi
IiIpCisKKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID4gMjoKKyAgICAgICAgZXhlYygiIiIK
K2RlZiB0ZXN0X3NpZ25hdHVyZV9vbl9kZWNvcmF0ZWQoc2VsZik6CisgICAgaW1wb3J0IGZ1bmN0
b29scworCisgICAgZGVmIGRlY29yYXRvcihmdW5jKToKKyAgICAgICAgQGZ1bmN0b29scy53cmFw
cyhmdW5jKQorICAgICAgICBkZWYgd3JhcHBlcigqYXJncywgKiprd2FyZ3MpIC0+IGludDoKKyAg
ICAgICAgICAgIHJldHVybiBmdW5jKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgcmV0dXJuIHdy
YXBwZXIKKworICAgIGNsYXNzIEZvbzoKKyAgICAgICAgQGRlY29yYXRvcgorICAgICAgICBkZWYg
YmFyKHNlbGYsIGEsIGIpOgorICAgICAgICAgICAgcGFzcworCisgICAgc2VsZi5hc3NlcnRFcXVh
bChzZWxmLnNpZ25hdHVyZShGb28uYmFyKSwKKyAgICAgICAgICAgICAgICAgICAgICgoKCdzZWxm
JywgRWxsaXBzaXMsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAgICAg
ICAgICAgICAgICAgICAgICgnYScsIEVsbGlwc2lzLCBFbGxpcHNpcywgInBvc2l0aW9uYWxfb3Jf
a2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAoJ2InLCBFbGxpcHNpcywgRWxsaXBz
aXMsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSksCisgICAgICAgICAgICAgICAgICAgICAgRWxs
aXBzaXMpKQorCisgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShGb28oKS5iYXIp
LAorICAgICAgICAgICAgICAgICAgICAgKCgoJ2EnLCBFbGxpcHNpcywgRWxsaXBzaXMsICJwb3Np
dGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCdiJywgRWxsaXBz
aXMsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIikpLAorICAgICAgICAgICAgICAg
ICAgICAgIEVsbGlwc2lzKSkKKworICAgICMgVGVzdCB0aGF0IHdlIGhhbmRsZSBtZXRob2Qgd3Jh
cHBlcnMgY29ycmVjdGx5CisgICAgZGVmIGRlY29yYXRvcihmdW5jKToKKyAgICAgICAgQGZ1bmN0
b29scy53cmFwcyhmdW5jKQorICAgICAgICBkZWYgd3JhcHBlcigqYXJncywgKiprd2FyZ3MpIC0+
IGludDoKKyAgICAgICAgICAgIHJldHVybiBmdW5jKDQyLCAqYXJncywgKiprd2FyZ3MpCisgICAg
ICAgIHNpZyA9IGluc3BlY3Quc2lnbmF0dXJlKGZ1bmMpCisgICAgICAgIG5ld19wYXJhbXMgPSB0
dXBsZShzaWcucGFyYW1ldGVycy52YWx1ZXMoKSlbMTpdCisgICAgICAgIHdyYXBwZXIuX19zaWdu
YXR1cmVfXyA9IHNpZy5yZXBsYWNlKHBhcmFtZXRlcnM9bmV3X3BhcmFtcykKKyAgICAgICAgcmV0
dXJuIHdyYXBwZXIKKworICAgIGNsYXNzIEZvbzoKKyAgICAgICAgQGRlY29yYXRvcgorICAgICAg
ICBkZWYgX19jYWxsX18oc2VsZiwgYSwgYik6CisgICAgICAgICAgICBwYXNzCisKKyAgICBzZWxm
LmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKEZvby5fX2NhbGxfXyksCisgICAgICAgICAgICAg
ICAgICAgICAoKCgnYScsIEVsbGlwc2lzLCBFbGxpcHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5d29y
ZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAoJ2InLCBFbGxpcHNpcywgRWxsaXBzaXMsICJw
b3NpdGlvbmFsX29yX2tleXdvcmQiKSksCisgICAgICAgICAgICAgICAgICAgICAgRWxsaXBzaXMp
KQorCisgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShGb28oKS5fX2NhbGxfXyks
CisgICAgICAgICAgICAgICAgICAgICAoKCgnYicsIEVsbGlwc2lzLCBFbGxpcHNpcywgInBvc2l0
aW9uYWxfb3Jfa2V5d29yZCIpLCksCisgICAgICAgICAgICAgICAgICAgICAgRWxsaXBzaXMpKQor
IiIiKQorCisgICAgaWYgc3lzLnZlcnNpb25faW5mb1swXSA+IDI6CisgICAgICAgIGV4ZWMoIiIi
CitkZWYgdGVzdF9zaWduYXR1cmVfb25fY2xhc3Moc2VsZik6CisgICAgY2xhc3MgQzoKKyAgICAg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGEpOgorICAgICAgICAgICAgcGFzcworCisgICAgc2VsZi5h
c3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShDKSwKKyAgICAgICAgICAgICAgICAgICAgICgoKCdh
JywgRWxsaXBzaXMsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksKSwKKyAgICAg
ICAgICAgICAgICAgICAgICBFbGxpcHNpcykpCisKKyAgICBjbGFzcyBDTSh0eXBlKToKKyAgICAg
ICAgZGVmIF9fY2FsbF9fKGNscywgYSk6CisgICAgICAgICAgICBwYXNzCisgICAgY2xhc3MgQyht
ZXRhY2xhc3M9Q00pOgorICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgYik6CisgICAgICAgICAg
ICBwYXNzCisKKyAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKEMpLAorICAgICAg
ICAgICAgICAgICAgICAgKCgoJ2EnLCBFbGxpcHNpcywgRWxsaXBzaXMsICJwb3NpdGlvbmFsX29y
X2tleXdvcmQiKSwpLAorICAgICAgICAgICAgICAgICAgICAgIEVsbGlwc2lzKSkKKworICAgIGNs
YXNzIENNKHR5cGUpOgorICAgICAgICBkZWYgX19uZXdfXyhtY2xzLCBuYW1lLCBiYXNlcywgZGN0
LCAqLCBmb289MSk6CisgICAgICAgICAgICByZXR1cm4gc3VwZXIoKS5fX25ld19fKG1jbHMsIG5h
bWUsIGJhc2VzLCBkY3QpCisgICAgY2xhc3MgQyhtZXRhY2xhc3M9Q00pOgorICAgICAgICBkZWYg
X19pbml0X18oc2VsZiwgYik6CisgICAgICAgICAgICBwYXNzCisKKyAgICBzZWxmLmFzc2VydEVx
dWFsKHNlbGYuc2lnbmF0dXJlKEMpLAorICAgICAgICAgICAgICAgICAgICAgKCgoJ2InLCBFbGxp
cHNpcywgRWxsaXBzaXMsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwpLAorICAgICAgICAgICAg
ICAgICAgICAgIEVsbGlwc2lzKSkKKworICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1
cmUoQ00pLAorICAgICAgICAgICAgICAgICAgICAgKCgoJ25hbWUnLCBFbGxpcHNpcywgRWxsaXBz
aXMsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCdi
YXNlcycsIEVsbGlwc2lzLCBFbGxpcHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAg
ICAgICAgICAgICAgICAgICAgICAoJ2RjdCcsIEVsbGlwc2lzLCBFbGxpcHNpcywgInBvc2l0aW9u
YWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAoJ2ZvbycsIDEsIEVsbGlw
c2lzLCAia2V5d29yZF9vbmx5IikpLAorICAgICAgICAgICAgICAgICAgICAgIEVsbGlwc2lzKSkK
KworICAgIGNsYXNzIENNTSh0eXBlKToKKyAgICAgICAgZGVmIF9fbmV3X18obWNscywgbmFtZSwg
YmFzZXMsIGRjdCwgKiwgZm9vPTEpOgorICAgICAgICAgICAgcmV0dXJuIHN1cGVyKCkuX19uZXdf
XyhtY2xzLCBuYW1lLCBiYXNlcywgZGN0KQorICAgICAgICBkZWYgX19jYWxsX18oY2xzLCBubSwg
YnMsIGR0KToKKyAgICAgICAgICAgIHJldHVybiB0eXBlKG5tLCBicywgZHQpCisgICAgY2xhc3Mg
Q00odHlwZSwgbWV0YWNsYXNzPUNNTSk6CisgICAgICAgIGRlZiBfX25ld19fKG1jbHMsIG5hbWUs
IGJhc2VzLCBkY3QsICosIGJhcj0yKToKKyAgICAgICAgICAgIHJldHVybiBzdXBlcigpLl9fbmV3
X18obWNscywgbmFtZSwgYmFzZXMsIGRjdCkKKyAgICBjbGFzcyBDKG1ldGFjbGFzcz1DTSk6Cisg
ICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBiKToKKyAgICAgICAgICAgIHBhc3MKKworICAgIHNl
bGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUoQ01NKSwKKyAgICAgICAgICAgICAgICAgICAg
ICgoKCduYW1lJywgRWxsaXBzaXMsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiks
CisgICAgICAgICAgICAgICAgICAgICAgICgnYmFzZXMnLCBFbGxpcHNpcywgRWxsaXBzaXMsICJw
b3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCdkY3QnLCBF
bGxpcHNpcywgRWxsaXBzaXMsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgKCdmb28nLCAxLCBFbGxpcHNpcywgImtleXdvcmRfb25seSIpKSwKKyAgICAg
ICAgICAgICAgICAgICAgICBFbGxpcHNpcykpCisKKyAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYu
c2lnbmF0dXJlKENNKSwKKyAgICAgICAgICAgICAgICAgICAgICgoKCdubScsIEVsbGlwc2lzLCBF
bGxpcHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAg
ICAoJ2JzJywgRWxsaXBzaXMsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisg
ICAgICAgICAgICAgICAgICAgICAgICgnZHQnLCBFbGxpcHNpcywgRWxsaXBzaXMsICJwb3NpdGlv
bmFsX29yX2tleXdvcmQiKSksCisgICAgICAgICAgICAgICAgICAgICAgRWxsaXBzaXMpKQorCisg
ICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShDKSwKKyAgICAgICAgICAgICAgICAg
ICAgICgoKCdiJywgRWxsaXBzaXMsIEVsbGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiks
KSwKKyAgICAgICAgICAgICAgICAgICAgICBFbGxpcHNpcykpCisKKyAgICBjbGFzcyBDTSh0eXBl
KToKKyAgICAgICAgZGVmIF9faW5pdF9fKGNscywgbmFtZSwgYmFzZXMsIGRjdCwgKiwgYmFyPTIp
OgorICAgICAgICAgICAgcmV0dXJuIHN1cGVyKCkuX19pbml0X18obmFtZSwgYmFzZXMsIGRjdCkK
KyAgICBjbGFzcyBDKG1ldGFjbGFzcz1DTSk6CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBi
KToKKyAgICAgICAgICAgIHBhc3MKKworICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1
cmUoQ00pLAorICAgICAgICAgICAgICAgICAgICAgKCgoJ25hbWUnLCBFbGxpcHNpcywgRWxsaXBz
aXMsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCdi
YXNlcycsIEVsbGlwc2lzLCBFbGxpcHNpcywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAg
ICAgICAgICAgICAgICAgICAgICAoJ2RjdCcsIEVsbGlwc2lzLCBFbGxpcHNpcywgInBvc2l0aW9u
YWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAoJ2JhcicsIDIsIEVsbGlw
c2lzLCAia2V5d29yZF9vbmx5IikpLAorICAgICAgICAgICAgICAgICAgICAgIEVsbGlwc2lzKSkK
KyIiIikKKworICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9vbl9jYWxsYWJsZV9vYmplY3RzKHNlbGYp
OgorICAgICAgICBjbGFzcyBGb28ob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBfX2NhbGxfXyhz
ZWxmLCBhKToKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChzZWxmLnNpZ25hdHVyZShGb28oKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgKCgoJ2En
LCBFbGxpcHNpcywgRWxsaXBzaXMsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICBFbGxpcHNpcykpCisKKyAgICAgICAgY2xhc3MgU3BhbShvYmpl
Y3QpOgorICAgICAgICAgICAgcGFzcworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVn
ZXgoVHlwZUVycm9yLCAiaXMgbm90IGEgY2FsbGFibGUgb2JqZWN0Iik6CisgICAgICAgICAgICBp
bnNwZWN0LnNpZ25hdHVyZShTcGFtKCkpCisKKyAgICAgICAgY2xhc3MgQmFyKFNwYW0sIEZvbyk6
CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25h
dHVyZShCYXIoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgKCgoJ2EnLCBFbGxpcHNpcywg
RWxsaXBzaXMsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICBFbGxpcHNpcykpCisKKyAgICAgICAgY2xhc3MgVG9GYWlsKG9iamVjdCk6CisgICAg
ICAgICAgICBfX2NhbGxfXyA9IHR5cGUKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1Jl
Z2V4KFZhbHVlRXJyb3IsICJub3Qgc3VwcG9ydGVkIGJ5IHNpZ25hdHVyZSIpOgorICAgICAgICAg
ICAgaW5zcGVjdC5zaWduYXR1cmUoVG9GYWlsKCkpCisKKyAgICAgICAgaWYgc3lzLnZlcnNpb25f
aW5mb1swXSA8IDM6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBjbGFzcyBXcmFwcGVk
KG9iamVjdCk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIFdyYXBwZWQuX193cmFwcGVkX18g
PSBsYW1iZGEgYTogTm9uZQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJl
KFdyYXBwZWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICgoKCdhJywgRWxsaXBzaXMsIEVs
bGlwc2lzLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgRWxsaXBzaXMpKQorCisgICAgZGVmIHRlc3Rfc2lnbmF0dXJlX29uX2xhbWJkYXMoc2Vs
Zik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUoKGxhbWJkYSBhPTEw
OiBhKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgKCgoJ2EnLCAxMCwgRWxsaXBzaXMsICJw
b3NpdGlvbmFsX29yX2tleXdvcmQiKSwpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBFbGxp
cHNpcykpCisKKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID4gMjoKKyAgICAgICAgZXhlYygi
IiIKK2RlZiB0ZXN0X3NpZ25hdHVyZV9lcXVhbGl0eShzZWxmKToKKyAgICBkZWYgZm9vKGEsICos
IGI6aW50KSAtPiBmbG9hdDogcGFzcworICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoaW5zcGVjdC5z
aWduYXR1cmUoZm9vKSwgNDIpCisKKyAgICBkZWYgYmFyKGEsICosIGI6aW50KSAtPiBmbG9hdDog
cGFzcworICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5zcGVjdC5zaWduYXR1cmUoZm9vKSwgaW5zcGVj
dC5zaWduYXR1cmUoYmFyKSkKKworICAgIGRlZiBiYXIoYSwgKiwgYjppbnQpIC0+IGludDogcGFz
cworICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoaW5zcGVjdC5zaWduYXR1cmUoZm9vKSwgaW5zcGVj
dC5zaWduYXR1cmUoYmFyKSkKKworICAgIGRlZiBiYXIoYSwgKiwgYjppbnQpOiBwYXNzCisgICAg
c2VsZi5hc3NlcnROb3RFcXVhbChpbnNwZWN0LnNpZ25hdHVyZShmb28pLCBpbnNwZWN0LnNpZ25h
dHVyZShiYXIpKQorCisgICAgZGVmIGJhcihhLCAqLCBiOmludD00MikgLT4gZmxvYXQ6IHBhc3MK
KyAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGluc3BlY3Quc2lnbmF0dXJlKGZvbyksIGluc3BlY3Qu
c2lnbmF0dXJlKGJhcikpCisKKyAgICBkZWYgYmFyKGEsICosIGMpIC0+IGZsb2F0OiBwYXNzCisg
ICAgc2VsZi5hc3NlcnROb3RFcXVhbChpbnNwZWN0LnNpZ25hdHVyZShmb28pLCBpbnNwZWN0LnNp
Z25hdHVyZShiYXIpKQorCisgICAgZGVmIGJhcihhLCBiOmludCkgLT4gZmxvYXQ6IHBhc3MKKyAg
ICBzZWxmLmFzc2VydE5vdEVxdWFsKGluc3BlY3Quc2lnbmF0dXJlKGZvbyksIGluc3BlY3Quc2ln
bmF0dXJlKGJhcikpCisgICAgZGVmIHNwYW0oYjppbnQsIGEpIC0+IGZsb2F0OiBwYXNzCisgICAg
c2VsZi5hc3NlcnROb3RFcXVhbChpbnNwZWN0LnNpZ25hdHVyZShzcGFtKSwgaW5zcGVjdC5zaWdu
YXR1cmUoYmFyKSkKKworICAgIGRlZiBmb28oKiwgYSwgYiwgYyk6IHBhc3MKKyAgICBkZWYgYmFy
KCosIGMsIGIsIGEpOiBwYXNzCisgICAgc2VsZi5hc3NlcnRFcXVhbChpbnNwZWN0LnNpZ25hdHVy
ZShmb28pLCBpbnNwZWN0LnNpZ25hdHVyZShiYXIpKQorCisgICAgZGVmIGZvbygqLCBhPTEsIGIs
IGMpOiBwYXNzCisgICAgZGVmIGJhcigqLCBjLCBiLCBhPTEpOiBwYXNzCisgICAgc2VsZi5hc3Nl
cnRFcXVhbChpbnNwZWN0LnNpZ25hdHVyZShmb28pLCBpbnNwZWN0LnNpZ25hdHVyZShiYXIpKQor
CisgICAgZGVmIGZvbyhwb3MsICosIGE9MSwgYiwgYyk6IHBhc3MKKyAgICBkZWYgYmFyKHBvcywg
KiwgYywgYiwgYT0xKTogcGFzcworICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5zcGVjdC5zaWduYXR1
cmUoZm9vKSwgaW5zcGVjdC5zaWduYXR1cmUoYmFyKSkKKworICAgIGRlZiBmb28ocG9zLCAqLCBh
LCBiLCBjKTogcGFzcworICAgIGRlZiBiYXIocG9zLCAqLCBjLCBiLCBhPTEpOiBwYXNzCisgICAg
c2VsZi5hc3NlcnROb3RFcXVhbChpbnNwZWN0LnNpZ25hdHVyZShmb28pLCBpbnNwZWN0LnNpZ25h
dHVyZShiYXIpKQorCisgICAgZGVmIGZvbyhwb3MsICphcmdzLCBhPTQyLCBiLCBjLCAqKmt3YXJn
czppbnQpOiBwYXNzCisgICAgZGVmIGJhcihwb3MsICphcmdzLCBjLCBiLCBhPTQyLCAqKmt3YXJn
czppbnQpOiBwYXNzCisgICAgc2VsZi5hc3NlcnRFcXVhbChpbnNwZWN0LnNpZ25hdHVyZShmb28p
LCBpbnNwZWN0LnNpZ25hdHVyZShiYXIpKQorIiIiKQorCisgICAgZGVmIHRlc3Rfc2lnbmF0dXJl
X3VuaGFzaGFibGUoc2VsZik6CisgICAgICAgIGRlZiBmb28oYSk6IHBhc3MKKyAgICAgICAgc2ln
ID0gaW5zcGVjdC5zaWduYXR1cmUoZm9vKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2Vz
UmVnZXgoVHlwZUVycm9yLCAndW5oYXNoYWJsZSB0eXBlJyk6CisgICAgICAgICAgICBoYXNoKHNp
ZykKKworCisgICAgaWYgc3lzLnZlcnNpb25faW5mb1swXSA+IDI6CisgICAgICAgIGV4ZWMoIiIi
CitkZWYgdGVzdF9zaWduYXR1cmVfc3RyKHNlbGYpOgorICAgIGRlZiBmb28oYTppbnQ9MSwgKiwg
YiwgYz1Ob25lLCAqKmt3YXJncykgLT4gNDI6CisgICAgICAgIHBhc3MKKyAgICBzZWxmLmFzc2Vy
dEVxdWFsKHN0cihpbnNwZWN0LnNpZ25hdHVyZShmb28pKSwKKyAgICAgICAgICAgICAgICAgICAg
ICcoYTppbnQ9MSwgKiwgYiwgYz1Ob25lLCAqKmt3YXJncykgLT4gNDInKQorCisgICAgZGVmIGZv
byhhOmludD0xLCAqYXJncywgYiwgYz1Ob25lLCAqKmt3YXJncykgLT4gNDI6CisgICAgICAgIHBh
c3MKKyAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihpbnNwZWN0LnNpZ25hdHVyZShmb28pKSwKKyAg
ICAgICAgICAgICAgICAgICAgICcoYTppbnQ9MSwgKmFyZ3MsIGIsIGM9Tm9uZSwgKiprd2FyZ3Mp
IC0+IDQyJykKKworICAgIGRlZiBmb28oKToKKyAgICAgICAgcGFzcworICAgIHNlbGYuYXNzZXJ0
RXF1YWwoc3RyKGluc3BlY3Quc2lnbmF0dXJlKGZvbykpLCAnKCknKQorIiIiKQorCisgICAgaWYg
c3lzLnZlcnNpb25faW5mb1swXSA+IDI6CisgICAgICAgIGV4ZWMoIiIiCitkZWYgdGVzdF9zaWdu
YXR1cmVfc3RyX3Bvc2l0aW9uYWxfb25seShzZWxmKToKKyAgICBQID0gaW5zcGVjdC5QYXJhbWV0
ZXIKKworICAgIGRlZiB0ZXN0KGFfcG8sICosIGIsICoqa3dhcmdzKToKKyAgICAgICAgcmV0dXJu
IGFfcG8sIGt3YXJncworCisgICAgc2lnID0gaW5zcGVjdC5zaWduYXR1cmUodGVzdCkKKyAgICBu
ZXdfcGFyYW1zID0gbGlzdChzaWcucGFyYW1ldGVycy52YWx1ZXMoKSkKKyAgICBuZXdfcGFyYW1z
WzBdID0gbmV3X3BhcmFtc1swXS5yZXBsYWNlKGtpbmQ9UC5QT1NJVElPTkFMX09OTFkpCisgICAg
dGVzdC5fX3NpZ25hdHVyZV9fID0gc2lnLnJlcGxhY2UocGFyYW1ldGVycz1uZXdfcGFyYW1zKQor
CisgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoaW5zcGVjdC5zaWduYXR1cmUodGVzdCkpLAorICAg
ICAgICAgICAgICAgICAgICAgJyg8YV9wbz4sICosIGIsICoqa3dhcmdzKScpCisKKyAgICBzaWcg
PSBpbnNwZWN0LnNpZ25hdHVyZSh0ZXN0KQorICAgIG5ld19wYXJhbXMgPSBsaXN0KHNpZy5wYXJh
bWV0ZXJzLnZhbHVlcygpKQorICAgIG5ld19wYXJhbXNbMF0gPSBuZXdfcGFyYW1zWzBdLnJlcGxh
Y2UobmFtZT1Ob25lKQorICAgIHRlc3QuX19zaWduYXR1cmVfXyA9IHNpZy5yZXBsYWNlKHBhcmFt
ZXRlcnM9bmV3X3BhcmFtcykKKyAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihpbnNwZWN0LnNpZ25h
dHVyZSh0ZXN0KSksCisgICAgICAgICAgICAgICAgICAgICAnKDwwPiwgKiwgYiwgKiprd2FyZ3Mp
JykKKyIiIikKKworICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPiAyOgorICAgICAgICBleGVj
KCIiIgorZGVmIHRlc3Rfc2lnbmF0dXJlX3JlcGxhY2VfYW5ubyhzZWxmKToKKyAgICBkZWYgdGVz
dCgpIC0+IDQyOgorICAgICAgICBwYXNzCisKKyAgICBzaWcgPSBpbnNwZWN0LnNpZ25hdHVyZSh0
ZXN0KQorICAgIHNpZyA9IHNpZy5yZXBsYWNlKHJldHVybl9hbm5vdGF0aW9uPU5vbmUpCisgICAg
c2VsZi5hc3NlcnRJcyhzaWcucmV0dXJuX2Fubm90YXRpb24sIE5vbmUpCisgICAgc2lnID0gc2ln
LnJlcGxhY2UocmV0dXJuX2Fubm90YXRpb249c2lnLmVtcHR5KQorICAgIHNlbGYuYXNzZXJ0SXMo
c2lnLnJldHVybl9hbm5vdGF0aW9uLCBzaWcuZW1wdHkpCisgICAgc2lnID0gc2lnLnJlcGxhY2Uo
cmV0dXJuX2Fubm90YXRpb249NDIpCisgICAgc2VsZi5hc3NlcnRFcXVhbChzaWcucmV0dXJuX2Fu
bm90YXRpb24sIDQyKQorICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2lnLCBpbnNwZWN0LnNpZ25hdHVy
ZSh0ZXN0KSkKKyIiIikKKworCitjbGFzcyBUZXN0UGFyYW1ldGVyT2JqZWN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAg
ICAgICB1bml0dGVzdC5UZXN0Q2FzZS5fX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpCisg
ICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYsICdhc3NlcnRSYWlzZXNSZWdleCcpOgorICAgICAg
ICAgICAgc2VsZi5hc3NlcnRSYWlzZXNSZWdleCA9IHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXhwCisK
KyAgICBkZWYgdGVzdF9zaWduYXR1cmVfcGFyYW1ldGVyX2tpbmRzKHNlbGYpOgorICAgICAgICBQ
ID0gaW5zcGVjdC5QYXJhbWV0ZXIKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFAuUE9TSVRJT05B
TF9PTkxZIDwgUC5QT1NJVElPTkFMX09SX0tFWVdPUkQgPCBcCisgICAgICAgICAgICAgICAgICAg
ICAgICBQLlZBUl9QT1NJVElPTkFMIDwgUC5LRVlXT1JEX09OTFkgPCBQLlZBUl9LRVlXT1JEKQor
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKFAuUE9TSVRJT05BTF9PTkxZKSwgJ1BPU0lU
SU9OQUxfT05MWScpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnUE9TSVRJT05BTF9PTkxZJyBp
biByZXByKFAuUE9TSVRJT05BTF9PTkxZKSkKKworICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9wYXJh
bWV0ZXJfb2JqZWN0KHNlbGYpOgorICAgICAgICBwID0gaW5zcGVjdC5QYXJhbWV0ZXIoJ2Zvbycs
IGRlZmF1bHQ9MTAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kPWluc3BlY3Qu
UGFyYW1ldGVyLlBPU0lUSU9OQUxfT05MWSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLm5h
bWUsICdmb28nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAuZGVmYXVsdCwgMTApCisgICAg
ICAgIHNlbGYuYXNzZXJ0SXMocC5hbm5vdGF0aW9uLCBwLmVtcHR5KQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHAua2luZCwgaW5zcGVjdC5QYXJhbWV0ZXIuUE9TSVRJT05BTF9PTkxZKQorCisg
ICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChWYWx1ZUVycm9yLCAnaW52YWxpZCB2
YWx1ZScpOgorICAgICAgICAgICAgaW5zcGVjdC5QYXJhbWV0ZXIoJ2ZvbycsIGRlZmF1bHQ9MTAs
IGtpbmQ9JzEyMycpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFZhbHVl
RXJyb3IsICdub3QgYSB2YWxpZCBwYXJhbWV0ZXIgbmFtZScpOgorICAgICAgICAgICAgaW5zcGVj
dC5QYXJhbWV0ZXIoJzEnLCBraW5kPWluc3BlY3QuUGFyYW1ldGVyLlZBUl9LRVlXT1JEKQorCisg
ICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChWYWx1ZUVycm9yLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdub24tcG9zaXRpb25hbC1vbmx5IHBhcmFtZXRl
cicpOgorICAgICAgICAgICAgaW5zcGVjdC5QYXJhbWV0ZXIoTm9uZSwga2luZD1pbnNwZWN0LlBh
cmFtZXRlci5WQVJfS0VZV09SRCkKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVn
ZXgoVmFsdWVFcnJvciwgJ2Nhbm5vdCBoYXZlIGRlZmF1bHQgdmFsdWVzJyk6CisgICAgICAgICAg
ICBpbnNwZWN0LlBhcmFtZXRlcignYScsIGRlZmF1bHQ9NDIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBraW5kPWluc3BlY3QuUGFyYW1ldGVyLlZBUl9LRVlXT1JEKQorCisgICAgICAg
IHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChWYWx1ZUVycm9yLCAnY2Fubm90IGhhdmUgZGVm
YXVsdCB2YWx1ZXMnKToKKyAgICAgICAgICAgIGluc3BlY3QuUGFyYW1ldGVyKCdhJywgZGVmYXVs
dD00MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ9aW5zcGVjdC5QYXJhbWV0
ZXIuVkFSX1BPU0lUSU9OQUwpCisKKyAgICAgICAgcCA9IGluc3BlY3QuUGFyYW1ldGVyKCdhJywg
ZGVmYXVsdD00MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ9aW5zcGVjdC5Q
YXJhbWV0ZXIuUE9TSVRJT05BTF9PUl9LRVlXT1JEKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0
UmFpc2VzUmVnZXgoVmFsdWVFcnJvciwgJ2Nhbm5vdCBoYXZlIGRlZmF1bHQgdmFsdWVzJyk6Cisg
ICAgICAgICAgICBwLnJlcGxhY2Uoa2luZD1pbnNwZWN0LlBhcmFtZXRlci5WQVJfUE9TSVRJT05B
TCkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUocmVwcihwKS5zdGFydHN3aXRoKCc8UGFyYW1l
dGVyJykpCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfcGFyYW1ldGVyX2VxdWFsaXR5KHNlbGYp
OgorICAgICAgICBQID0gaW5zcGVjdC5QYXJhbWV0ZXIKKyAgICAgICAgcCA9IFAoJ2ZvbycsIGRl
ZmF1bHQ9NDIsIGtpbmQ9aW5zcGVjdC5QYXJhbWV0ZXIuS0VZV09SRF9PTkxZKQorCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocCwgcCkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChwLCA0
MikKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAsIFAoJ2ZvbycsIGRlZmF1bHQ9NDIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kPWluc3BlY3QuUGFyYW1ldGVyLktFWVdP
UkRfT05MWSkpCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfcGFyYW1ldGVyX3VuaGFzaGFibGUo
c2VsZik6CisgICAgICAgIHAgPSBpbnNwZWN0LlBhcmFtZXRlcignZm9vJywgZGVmYXVsdD00MiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ9aW5zcGVjdC5QYXJhbWV0ZXIuS0VZ
V09SRF9PTkxZKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJy
b3IsICd1bmhhc2hhYmxlIHR5cGUnKToKKyAgICAgICAgICAgIGhhc2gocCkKKworICAgIGRlZiB0
ZXN0X3NpZ25hdHVyZV9wYXJhbWV0ZXJfcmVwbGFjZShzZWxmKToKKyAgICAgICAgcCA9IGluc3Bl
Y3QuUGFyYW1ldGVyKCdmb28nLCBkZWZhdWx0PTQyLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAga2luZD1pbnNwZWN0LlBhcmFtZXRlci5LRVlXT1JEX09OTFkpCisKKyAgICAgICAgc2Vs
Zi5hc3NlcnRJc05vdChwLCBwLnJlcGxhY2UoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChw
LCBwLnJlcGxhY2UoKSkKKworICAgICAgICBwMiA9IHAucmVwbGFjZShhbm5vdGF0aW9uPTEpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocDIuYW5ub3RhdGlvbiwgMSkKKyAgICAgICAgcDIgPSBw
Mi5yZXBsYWNlKGFubm90YXRpb249cDIuZW1wdHkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cCwgcDIpCisKKyAgICAgICAgcDIgPSBwMi5yZXBsYWNlKG5hbWU9J2JhcicpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocDIubmFtZSwgJ2JhcicpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1
YWwocDIsIHApCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFZhbHVlRXJy
b3IsICdub3QgYSB2YWxpZCBwYXJhbWV0ZXIgbmFtZScpOgorICAgICAgICAgICAgcDIgPSBwMi5y
ZXBsYWNlKG5hbWU9cDIuZW1wdHkpCisKKyAgICAgICAgcDIgPSBwMi5yZXBsYWNlKG5hbWU9J2Zv
bycsIGRlZmF1bHQ9Tm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhwMi5kZWZhdWx0LCBOb25l
KQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHAyLCBwKQorCisgICAgICAgIHAyID0gcDIu
cmVwbGFjZShuYW1lPSdmb28nLCBkZWZhdWx0PXAyLmVtcHR5KQorICAgICAgICBzZWxmLmFzc2Vy
dElzKHAyLmRlZmF1bHQsIHAyLmVtcHR5KQorCisKKyAgICAgICAgcDIgPSBwMi5yZXBsYWNlKGRl
ZmF1bHQ9NDIsIGtpbmQ9cDIuUE9TSVRJT05BTF9PUl9LRVlXT1JEKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHAyLmtpbmQsIHAyLlBPU0lUSU9OQUxfT1JfS0VZV09SRCkKKyAgICAgICAgc2Vs
Zi5hc3NlcnROb3RFcXVhbChwMiwgcCkKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2Vz
UmVnZXgoVmFsdWVFcnJvciwgJ2ludmFsaWQgdmFsdWUgZm9yJyk6CisgICAgICAgICAgICBwMiA9
IHAyLnJlcGxhY2Uoa2luZD1wMi5lbXB0eSkKKworICAgICAgICBwMiA9IHAyLnJlcGxhY2Uoa2lu
ZD1wMi5LRVlXT1JEX09OTFkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocDIsIHApCisKKyAg
ICBkZWYgdGVzdF9zaWduYXR1cmVfcGFyYW1ldGVyX3Bvc2l0aW9uYWxfb25seShzZWxmKToKKyAg
ICAgICAgcCA9IGluc3BlY3QuUGFyYW1ldGVyKE5vbmUsIGtpbmQ9aW5zcGVjdC5QYXJhbWV0ZXIu
UE9TSVRJT05BTF9PTkxZKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihwKSwgJzw+JykK
KworICAgICAgICBwID0gcC5yZXBsYWNlKG5hbWU9JzEnKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHN0cihwKSwgJzwxPicpCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfcGFyYW1ldGVyX2lt
bXV0YWJpbGl0eShzZWxmKToKKyAgICAgICAgcCA9IGluc3BlY3QuUGFyYW1ldGVyKE5vbmUsIGtp
bmQ9aW5zcGVjdC5QYXJhbWV0ZXIuUE9TSVRJT05BTF9PTkxZKQorCisgICAgICAgIHdpdGggc2Vs
Zi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IpOgorICAgICAgICAgICAgcC5mb28gPSAnYmFy
JworCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IpOgorICAg
ICAgICAgICAgcC5raW5kID0gMTIzCisKKworY2xhc3MgVGVzdFNpZ25hdHVyZUJpbmQodW5pdHRl
c3QuVGVzdENhc2UpOgorICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgY2FsbChmdW5jLCAqYXJn
cywgKiprd2FyZ3MpOgorICAgICAgICBzaWcgPSBpbnNwZWN0LnNpZ25hdHVyZShmdW5jKQorICAg
ICAgICBiYSA9IHNpZy5iaW5kKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgcmV0dXJuIGZ1bmMo
KmJhLmFyZ3MsICoqYmEua3dhcmdzKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAq
Kmt3YXJncyk6CisgICAgICAgIHVuaXR0ZXN0LlRlc3RDYXNlLl9faW5pdF9fKHNlbGYsICphcmdz
LCAqKmt3YXJncykKKyAgICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZiwgJ2Fzc2VydFJhaXNlc1Jl
Z2V4Jyk6CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4ID0gc2VsZi5hc3NlcnRS
YWlzZXNSZWdleHAKKworICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9iaW5kX2VtcHR5KHNlbGYpOgor
ICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAgcmV0dXJuIDQyCisKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCksIDQyKQorICAgICAgICB3aXRoIHNlbGYuYXNz
ZXJ0UmFpc2VzUmVnZXgoVHlwZUVycm9yLCAndG9vIG1hbnkgcG9zaXRpb25hbCBhcmd1bWVudHMn
KToKKyAgICAgICAgICAgIHNlbGYuY2FsbCh0ZXN0LCAxKQorICAgICAgICB3aXRoIHNlbGYuYXNz
ZXJ0UmFpc2VzUmVnZXgoVHlwZUVycm9yLCAndG9vIG1hbnkgcG9zaXRpb25hbCBhcmd1bWVudHMn
KToKKyAgICAgICAgICAgIHNlbGYuY2FsbCh0ZXN0LCAxLCBzcGFtPTEwKQorICAgICAgICB3aXRo
IHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVHlwZUVycm9yLCAndG9vIG1hbnkga2V5d29yZCBhcmd1
bWVudHMnKToKKyAgICAgICAgICAgIHNlbGYuY2FsbCh0ZXN0LCBzcGFtPTEpCisKKyAgICBkZWYg
dGVzdF9zaWduYXR1cmVfYmluZF92YXIoc2VsZik6CisgICAgICAgIGRlZiB0ZXN0KCphcmdzLCAq
Kmt3YXJncyk6CisgICAgICAgICAgICByZXR1cm4gYXJncywga3dhcmdzCisKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCksICgoKSwge30pKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCAxKSwgKCgxLCksIHt9KSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgMSwgMiksICgoMSwgMiksIHt9KSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgZm9vPSdiYXInKSwgKCgpLCB7J2Zvbyc6
ICdiYXInfSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jYWxsKHRlc3QsIDEsIGZv
bz0nYmFyJyksICgoMSwpLCB7J2Zvbyc6ICdiYXInfSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc2VsZi5jYWxsKHRlc3QsIGFyZ3M9MTApLCAoKCksIHsnYXJncyc6IDEwfSkpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jYWxsKHRlc3QsIDEsIDIsIGZvbz0nYmFyJyksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgKCgxLCAyKSwgeydmb28nOiAnYmFyJ30pKQorCisgICAgZGVm
IHRlc3Rfc2lnbmF0dXJlX2JpbmRfanVzdF9hcmdzKHNlbGYpOgorICAgICAgICBkZWYgdGVzdChh
LCBiLCBjKToKKyAgICAgICAgICAgIHJldHVybiBhLCBiLCBjCisKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzZWxmLmNhbGwodGVzdCwgMSwgMiwgMyksICgxLCAyLCAzKSkKKworICAgICAgICB3
aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVHlwZUVycm9yLCAndG9vIG1hbnkgcG9zaXRpb25h
bCBhcmd1bWVudHMnKToKKyAgICAgICAgICAgIHNlbGYuY2FsbCh0ZXN0LCAxLCAyLCAzLCA0KQor
CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsICInYicgcGFy
YW1ldGVyIGxhY2tpbmcgZGVmYXVsdCIpOgorICAgICAgICAgICAgc2VsZi5jYWxsKHRlc3QsIDEp
CisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwgIidhJyBw
YXJhbWV0ZXIgbGFja2luZyBkZWZhdWx0Iik6CisgICAgICAgICAgICBzZWxmLmNhbGwodGVzdCkK
KworICAgICAgICBkZWYgdGVzdChhLCBiLCBjPTEwKToKKyAgICAgICAgICAgIHJldHVybiBhLCBi
LCBjCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jYWxsKHRlc3QsIDEsIDIsIDMpLCAo
MSwgMiwgMykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jYWxsKHRlc3QsIDEsIDIp
LCAoMSwgMiwgMTApKQorCisgICAgICAgIGRlZiB0ZXN0KGE9MSwgYj0yLCBjPTMpOgorICAgICAg
ICAgICAgcmV0dXJuIGEsIGIsIGMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwo
dGVzdCwgYT0xMCwgYz0xMyksICgxMCwgMiwgMTMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHNlbGYuY2FsbCh0ZXN0LCBhPTEwKSwgKDEwLCAyLCAzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChzZWxmLmNhbGwodGVzdCwgYj0xMCksICgxLCAxMCwgMykpCisKKyAgICBkZWYgdGVzdF9z
aWduYXR1cmVfYmluZF92YXJhcmdzX29yZGVyKHNlbGYpOgorICAgICAgICBkZWYgdGVzdCgqYXJn
cyk6CisgICAgICAgICAgICByZXR1cm4gYXJncworCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
c2VsZi5jYWxsKHRlc3QpLCAoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwo
dGVzdCwgMSwgMiwgMyksICgxLCAyLCAzKSkKKworICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9iaW5k
X2FyZ3NfYW5kX3ZhcmFyZ3Moc2VsZik6CisgICAgICAgIGRlZiB0ZXN0KGEsIGIsIGM9MywgKmFy
Z3MpOgorICAgICAgICAgICAgcmV0dXJuIGEsIGIsIGMsIGFyZ3MKKworICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCAxLCAyLCAzLCA0LCA1KSwgKDEsIDIsIDMsICg0LCA1
KSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jYWxsKHRlc3QsIDEsIDIpLCAoMSwg
MiwgMywgKCkpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCBiPTEs
IGE9MiksICgyLCAxLCAzLCAoKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jYWxs
KHRlc3QsIDEsIGI9MiksICgxLCAyLCAzLCAoKSkpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2Vy
dFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAibXVsdGlwbGUgdmFsdWVzIGZvciBhcmd1bWVudCAnYyciKToKKyAgICAgICAgICAgIHNl
bGYuY2FsbCh0ZXN0LCAxLCAyLCAzLCBjPTQpCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfYmlu
ZF9qdXN0X2t3YXJncyhzZWxmKToKKyAgICAgICAgZGVmIHRlc3QoKiprd2FyZ3MpOgorICAgICAg
ICAgICAgcmV0dXJuIGt3YXJncworCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jYWxs
KHRlc3QpLCB7fSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgZm9v
PSdiYXInLCBzcGFtPSdoYW0nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICB7J2Zvbyc6ICdi
YXInLCAnc3BhbSc6ICdoYW0nfSkKKworICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9iaW5kX2FyZ3Nf
YW5kX2t3YXJncyhzZWxmKToKKyAgICAgICAgZGVmIHRlc3QoYSwgYiwgYz0zLCAqKmt3YXJncyk6
CisgICAgICAgICAgICByZXR1cm4gYSwgYiwgYywga3dhcmdzCisKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzZWxmLmNhbGwodGVzdCwgMSwgMiksICgxLCAyLCAzLCB7fSkpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoc2VsZi5jYWxsKHRlc3QsIDEsIDIsIGZvbz0nYmFyJywgc3BhbT0naGFt
JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgKDEsIDIsIDMsIHsnZm9vJzogJ2JhcicsICdz
cGFtJzogJ2hhbSd9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwg
Yj0yLCBhPTEsIGZvbz0nYmFyJywgc3BhbT0naGFtJyksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgKDEsIDIsIDMsIHsnZm9vJzogJ2JhcicsICdzcGFtJzogJ2hhbSd9KSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgYT0xLCBiPTIsIGZvbz0nYmFyJywgc3BhbT0n
aGFtJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgKDEsIDIsIDMsIHsnZm9vJzogJ2Jhcics
ICdzcGFtJzogJ2hhbSd9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVz
dCwgMSwgYj0yLCBmb289J2JhcicsIHNwYW09J2hhbScpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICgxLCAyLCAzLCB7J2Zvbyc6ICdiYXInLCAnc3BhbSc6ICdoYW0nfSkpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoc2VsZi5jYWxsKHRlc3QsIDEsIGI9MiwgYz00LCBmb289J2JhcicsIHNw
YW09J2hhbScpLAorICAgICAgICAgICAgICAgICAgICAgICAgICgxLCAyLCA0LCB7J2Zvbyc6ICdi
YXInLCAnc3BhbSc6ICdoYW0nfSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jYWxs
KHRlc3QsIDEsIDIsIDQsIGZvbz0nYmFyJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgKDEs
IDIsIDQsIHsnZm9vJzogJ2Jhcid9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNh
bGwodGVzdCwgYz01LCBhPTQsIGI9MyksCisgICAgICAgICAgICAgICAgICAgICAgICAgKDQsIDMs
IDUsIHt9KSkKKworICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPiAyOgorICAgICAgICBleGVj
KCIiIgorZGVmIHRlc3Rfc2lnbmF0dXJlX2JpbmRfa3dvbmx5KHNlbGYpOgorICAgIGRlZiB0ZXN0
KCosIGZvbyk6CisgICAgICAgIHJldHVybiBmb28KKyAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2Vz
UmVnZXgoVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RvbyBt
YW55IHBvc2l0aW9uYWwgYXJndW1lbnRzJyk6CisgICAgICAgIHNlbGYuY2FsbCh0ZXN0LCAxKQor
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jYWxsKHRlc3QsIGZvbz0xKSwgMSkKKworICAgIGRl
ZiB0ZXN0KGEsICosIGZvbz0xLCBiYXIpOgorICAgICAgICByZXR1cm4gZm9vCisgICAgd2l0aCBz
ZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICInYmFyJyBwYXJhbWV0ZXIgbGFja2luZyBkZWZhdWx0IHZhbHVlIik6CisgICAg
ICAgIHNlbGYuY2FsbCh0ZXN0LCAxKQorCisgICAgZGVmIHRlc3QoZm9vLCAqLCBiYXIpOgorICAg
ICAgICByZXR1cm4gZm9vLCBiYXIKKyAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0
LCAxLCBiYXI9MiksICgxLCAyKSkKKyAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0
LCBiYXI9MiwgZm9vPTEpLCAoMSwgMikpCisKKyAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVn
ZXgoVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RvbyBtYW55
IGtleXdvcmQgYXJndW1lbnRzJyk6CisgICAgICAgIHNlbGYuY2FsbCh0ZXN0LCBiYXI9MiwgZm9v
PTEsIHNwYW09MTApCisKKyAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVHlwZUVycm9y
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RvbyBtYW55IHBvc2l0aW9uYWwg
YXJndW1lbnRzJyk6CisgICAgICAgIHNlbGYuY2FsbCh0ZXN0LCAxLCAyKQorCisgICAgd2l0aCBz
ZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICd0b28gbWFueSBwb3NpdGlvbmFsIGFyZ3VtZW50cycpOgorICAgICAgICBzZWxm
LmNhbGwodGVzdCwgMSwgMiwgYmFyPTIpCisKKyAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVn
ZXgoVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RvbyBtYW55
IGtleXdvcmQgYXJndW1lbnRzJyk6CisgICAgICAgIHNlbGYuY2FsbCh0ZXN0LCAxLCBiYXI9Miwg
c3BhbT0naGFtJykKKworICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3Is
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJ2JhcicgcGFyYW1ldGVyIGxhY2tp
bmcgZGVmYXVsdCB2YWx1ZSIpOgorICAgICAgICBzZWxmLmNhbGwodGVzdCwgMSkKKworICAgIGRl
ZiB0ZXN0KGZvbywgKiwgYmFyLCAqKmJpbik6CisgICAgICAgIHJldHVybiBmb28sIGJhciwgYmlu
CisgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgMSwgYmFyPTIpLCAoMSwgMiwg
e30pKQorICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jYWxsKHRlc3QsIGZvbz0xLCBiYXI9Miks
ICgxLCAyLCB7fSkpCisgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgMSwgYmFy
PTIsIHNwYW09J2hhbScpLAorICAgICAgICAgICAgICAgICAgICAgKDEsIDIsIHsnc3BhbSc6ICdo
YW0nfSkpCisgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgc3BhbT0naGFtJywg
Zm9vPTEsIGJhcj0yKSwKKyAgICAgICAgICAgICAgICAgICAgICgxLCAyLCB7J3NwYW0nOiAnaGFt
J30pKQorICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiJ2ZvbycgcGFyYW1ldGVyIGxhY2tpbmcgZGVmYXVs
dCB2YWx1ZSIpOgorICAgICAgICBzZWxmLmNhbGwodGVzdCwgc3BhbT0naGFtJywgYmFyPTIpCisg
ICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgMSwgYmFyPTIsIGJpbj0xLCBzcGFt
PTEwKSwKKyAgICAgICAgICAgICAgICAgICAgICgxLCAyLCB7J2Jpbic6IDEsICdzcGFtJzogMTB9
KSkKKyIiIikKKyMKKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID4gMjoKKyAgICAgICAgZXhl
YygiIiIKK2RlZiB0ZXN0X3NpZ25hdHVyZV9iaW5kX2FyZ3VtZW50cyhzZWxmKToKKyAgICBkZWYg
dGVzdChhLCAqYXJncywgYiwgej0xMDAsICoqa3dhcmdzKToKKyAgICAgICAgcGFzcworICAgIHNp
ZyA9IGluc3BlY3Quc2lnbmF0dXJlKHRlc3QpCisgICAgYmEgPSBzaWcuYmluZCgxMCwgMjAsIGI9
MzAsIGM9NDAsIGFyZ3M9NTAsIGt3YXJncz02MCkKKyAgICAjIHdlIHdvbid0IGhhdmUgJ3onIGFy
Z3VtZW50IGluIHRoZSBib3VuZCBhcmd1bWVudHMgb2JqZWN0LCBhcyB3ZSBkaWRuJ3QKKyAgICAj
IHBhc3MgaXQgdG8gdGhlICdiaW5kJworICAgIHNlbGYuYXNzZXJ0RXF1YWwodHVwbGUoYmEuYXJn
dW1lbnRzLml0ZW1zKCkpLAorICAgICAgICAgICAgICAgICAgICAgKCgnYScsIDEwKSwgKCdhcmdz
JywgKDIwLCkpLCAoJ2InLCAzMCksCisgICAgICAgICAgICAgICAgICAgICAgKCdrd2FyZ3MnLCB7
J2MnOiA0MCwgJ2FyZ3MnOiA1MCwgJ2t3YXJncyc6IDYwfSkpKQorICAgIHNlbGYuYXNzZXJ0RXF1
YWwoYmEua3dhcmdzLAorICAgICAgICAgICAgICAgICAgICAgeydiJzogMzAsICdjJzogNDAsICdh
cmdzJzogNTAsICdrd2FyZ3MnOiA2MH0pCisgICAgc2VsZi5hc3NlcnRFcXVhbChiYS5hcmdzLCAo
MTAsIDIwKSkKKyIiIikKKyMKKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID4gMjoKKyAgICAg
ICAgZXhlYygiIiIKK2RlZiB0ZXN0X3NpZ25hdHVyZV9iaW5kX3Bvc2l0aW9uYWxfb25seShzZWxm
KToKKyAgICBQID0gaW5zcGVjdC5QYXJhbWV0ZXIKKworICAgIGRlZiB0ZXN0KGFfcG8sIGJfcG8s
IGNfcG89MywgZm9vPTQyLCAqLCBiYXI9NTAsICoqa3dhcmdzKToKKyAgICAgICAgcmV0dXJuIGFf
cG8sIGJfcG8sIGNfcG8sIGZvbywgYmFyLCBrd2FyZ3MKKworICAgIHNpZyA9IGluc3BlY3Quc2ln
bmF0dXJlKHRlc3QpCisgICAgbmV3X3BhcmFtcyA9IGNvbGxlY3Rpb25zLk9yZGVyZWREaWN0KHR1
cGxlKHNpZy5wYXJhbWV0ZXJzLml0ZW1zKCkpKQorICAgIGZvciBuYW1lIGluICgnYV9wbycsICdi
X3BvJywgJ2NfcG8nKToKKyAgICAgICAgbmV3X3BhcmFtc1tuYW1lXSA9IG5ld19wYXJhbXNbbmFt
ZV0ucmVwbGFjZShraW5kPVAuUE9TSVRJT05BTF9PTkxZKQorICAgIG5ld19zaWcgPSBzaWcucmVw
bGFjZShwYXJhbWV0ZXJzPW5ld19wYXJhbXMudmFsdWVzKCkpCisgICAgdGVzdC5fX3NpZ25hdHVy
ZV9fID0gbmV3X3NpZworCisgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgMSwg
MiwgNCwgNSwgYmFyPTYpLAorICAgICAgICAgICAgICAgICAgICAgKDEsIDIsIDQsIDUsIDYsIHt9
KSkKKworICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsICJwYXJhbWV0
ZXIgaXMgcG9zaXRpb25hbCBvbmx5Iik6CisgICAgICAgIHNlbGYuY2FsbCh0ZXN0LCAxLCAyLCBj
X3BvPTQpCisKKyAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVHlwZUVycm9yLCAicGFy
YW1ldGVyIGlzIHBvc2l0aW9uYWwgb25seSIpOgorICAgICAgICBzZWxmLmNhbGwodGVzdCwgYV9w
bz0xLCBiX3BvPTIpCisiIiIpCisKKworY2xhc3MgVGVzdEJvdW5kQXJndW1lbnRzKHVuaXR0ZXN0
LlRlc3RDYXNlKToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgor
ICAgICAgICB1bml0dGVzdC5UZXN0Q2FzZS5fX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3Mp
CisgICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYsICdhc3NlcnRSYWlzZXNSZWdleCcpOgorICAg
ICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXNSZWdleCA9IHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXhw
CisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfYm91bmRfYXJndW1lbnRzX3VuaGFzaGFibGUoc2Vs
Zik6CisgICAgICAgIGRlZiBmb28oYSk6IHBhc3MKKyAgICAgICAgYmEgPSBpbnNwZWN0LnNpZ25h
dHVyZShmb28pLmJpbmQoMSkKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgo
VHlwZUVycm9yLCAndW5oYXNoYWJsZSB0eXBlJyk6CisgICAgICAgICAgICBoYXNoKGJhKQorCisg
ICAgZGVmIHRlc3Rfc2lnbmF0dXJlX2JvdW5kX2FyZ3VtZW50c19lcXVhbGl0eShzZWxmKToKKyAg
ICAgICAgZGVmIGZvbyhhKTogcGFzcworICAgICAgICBiYSA9IGluc3BlY3Quc2lnbmF0dXJlKGZv
bykuYmluZCgxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJhLCBiYSkKKworICAgICAgICBi
YTIgPSBpbnNwZWN0LnNpZ25hdHVyZShmb28pLmJpbmQoMSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChiYSwgYmEyKQorCisgICAgICAgIGJhMyA9IGluc3BlY3Quc2lnbmF0dXJlKGZvbykuYmlu
ZCgyKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGJhLCBiYTMpCisgICAgICAgIGJhMy5h
cmd1bWVudHNbJ2EnXSA9IDEKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiYSwgYmEzKQorCisg
ICAgICAgIGRlZiBiYXIoYik6IHBhc3MKKyAgICAgICAgYmE0ID0gaW5zcGVjdC5zaWduYXR1cmUo
YmFyKS5iaW5kKDEpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoYmEsIGJhNCkKKworCitp
ZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgIHVuaXR0ZXN0LmJlZ2luKCkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvZnVuY3NpZ3MvdGVzdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3Rl
c3RzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwNmU5MTQ3MjE3Y2FmNmRjODE4YzVmNDg3
NzA2NDIyNTAyZDk3N2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3Rlc3RzL3cz
Yy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjAgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgor
Tm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvdGVz
dHMvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3Rlc3RzL3Rlc3RfZm9ybWF0YW5ub3RhdGlv
bi5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvZnVuY3NpZ3MvdGVzdHMvdGVzdF9mdW5jc2lncy5weQorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3Np
Z3MvdGVzdHMvdGVzdF9pbnNwZWN0LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDhm
MjdkMDQ1N2M2N2QzYmU3NmYzN2E4ODI3YWI0ZmMwMjdlMzFjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9mdW5jc2lncy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDIzIEBACitUaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
K0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHVi
LmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2Z1bmNzaWdzL0NIQU5HRUxPRworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvTElDRU5TRQorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVu
Y3NpZ3MvTUFOSUZFU1QuaW4KKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL01ha2VmaWxlCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2ln
cy9SRUFETUUucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9zZXR1cC5jZmcKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3Nl
dHVwLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9DSEFOR0VMT0cucnN0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVn
Z3kvQ0hBTkdFTE9HLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MWJmNTNmZGNjYjUzMmUwYTUwNGY1ODUxYTg4
MzU5ZGYzYmNkMzg0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvQ0hBTkdFTE9HLnJz
dApAQCAtMCwwICsxLDE1MiBAQAorMC42LjAKKy0tLS0tCistIEFkZCBDSSB0ZXN0aW5nIGZvciB0
aGUgZmVhdHVyZXMsIHJlbGVhc2UsIGFuZCBtYXN0ZXIKKyAgYnJhbmNoZXMgb2YgYGBweXRlc3Rg
YCAoUFIgYCM3OWBfKS4KKy0gRG9jdW1lbnQgcHVibGljIEFQSSBmb3IgYGBfUmVzdWx0YGAgb2Jq
ZWN0cyBwYXNzZWQgdG8gd3JhcHBlcnMKKyAgKFBSIGAjODVgXykuCistIERvY3VtZW50IGFuZCB0
ZXN0IGhvb2sgTElGTyBvcmRlcmluZyAoUFIgYCM4NWBfKS4KKy0gVHVybiB3YXJuaW5ncyBpbnRv
IGVycm9ycyBpbiB0ZXN0IHN1aXRlIChQUiBgIzg5YF8pLgorLSBEZXByZWNhdGUgYGBfUmVzdWx0
LnJlc3VsdGBgIChQUiBgIzg4YF8pLgorLSBDb252ZXJ0IGBgX011bHRpY2FsbGBgIHRvIGEgc2lt
cGxlIGZ1bmN0aW9uIGRpc3Rpbmd1aXNoaW5nIGl0IGZyb20KKyAgdGhlIGxlZ2FjeSB2ZXJzaW9u
IChQUiBgIzkwYF8pLgorLSBSZXNvbHZlIEU3NDEgZXJyb3JzIChQUiBgIzk2YF8pLgorLSBUZXN0
IGFuZCBidWcgZml4IGZvciB1bm1hcmtlZCBob29rIGNvbGxlY3Rpb24gKFBScyBgIzk3YF8gYW5k
CisgIGAjMTAyYF8pLgorLSBEcm9wIHN1cHBvcnQgZm9yIEVPTCBQeXRob24gMi42IGFuZCAzLjMg
KFBSIGAjMTAzYF8pLgorLSBGaXggYGBpbnNwZWN0YGAgYmFzZWQgYXJnIGludHJvc3BlY3Rpb24g
b24gcHkzLjYgKFBSIGAjOTRgXykuCisKKy4uIF8jNzk6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3BsdWdneS9wdWxsLzc5CisuLiBfIzg1OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9wbHVnZ3kvcHVsbC84NQorLi4gXyM4ODogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcGx1Z2d5L3B1bGwvODgKKy4uIF8jODk6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2
L3BsdWdneS9wdWxsLzg5CisuLiBfIzkwOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
bHVnZ3kvcHVsbC85MAorLi4gXyM5NDogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1
Z2d5L3B1bGwvOTQKKy4uIF8jOTY6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdn
eS9wdWxsLzk2CisuLiBfIzk3OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kv
cHVsbC85NworLi4gXyMxMDI6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9w
dWxsLzEwMgorLi4gXyMxMDM6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9w
dWxsLzEwMworCisKKzAuNS4yCistLS0tLQorLSBmaXggYnVnIHdoZXJlIGBgZmlyc3RyZXN1bHRg
YCB3cmFwcGVycyB3ZXJlIGJlaW5nIHNlbnQgYW4gaW5jb3JyZWN0bHkgY29uZmlndXJlZAorICBg
YF9SZXN1bHRgYCAoYSBsaXN0IHdhcyBzZXQgaW5zdGVhZCBvZiBhIHNpbmdsZSB2YWx1ZSkuIEFk
ZCB0ZXN0cyB0byBjaGVjayBmb3IKKyAgdGhpcyBhcyB3ZWxsIGFzIGBgX1Jlc3VsdC5mb3JjZV9y
ZXN1bHQoKWBgIGJlaGF2aW91ci4gVGhhbmtzIHRvIGBAdGdvb2RsZXRgXworICBmb3IgdGhlIFBS
IGAjNzJgXy4KKworLSBmaXggaW5jb3JyZWN0IGBgZ2V0YXR0cmBgICBvZiBgYERlcHJlY2F0aW9u
V2FybmluZ2BgIGZyb20gdGhlIGBgd2FybmluZ3NgYAorICBtb2R1bGUuIFRoYW5rcyB0byBgQG5p
Y29kZGVtdXNgXyBmb3IgdGhlIFBSIGAjNzdgXy4KKworLSBoaWRlIGBgcHl0ZXN0YGAgdHJhY2Vi
YWNrcyBpbiBjZXJ0YWluIGNvcmUgcm91dGluZXMuIFRoYW5rcyB0bworICBgQG5pY29kZGVtdXNg
XyBmb3IgdGhlIFBSIGAjODBgXy4KKworLi4gXyM3MjogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcGx1Z2d5L3B1bGwvNzIKKy4uIF8jNzc6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3BsdWdneS9wdWxsLzc3CisuLiBfIzgwOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9wbHVnZ3kvcHVsbC84MAorCisKKzAuNS4xCistLS0tLQorLSBmaXggYSBidWcgYW5kIGFkZCB0
ZXN0cyBmb3IgY2FzZSB3aGVyZSBgYGZpcnN0cmVzdWx0YGAgaG9va3MgcmV0dXJuCisgIGBgTm9u
ZWBgIHJlc3VsdHMuIFRoYW5rcyB0byBgQFJvbm55UGZhbm5zY2htaWR0YF8gYW5kIGBAdGdvb2Rs
ZXRgXworICBmb3IgdGhlIGlzc3VlIChgIzY4YF8pIGFuZCBQUiAoYCM2OWBfKSByZXNwZWN0aXZl
bHkuCisKKy4uIF8jNjk6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9wdWxs
LzY5CisuLiBfIzY4OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvaXNzdXNl
cy82OAorCisKKzAuNS4wCistLS0tLQorLSBmaXggYnVnIHdoZXJlIGNhbGxiYWNrcyBmb3IgaGlz
dG9yaWMgaG9va3Mgd291bGQgbm90IGJlIGNhbGxlZCBmb3IKKyAgYWxyZWFkeSByZWdpc3RlcmVk
IHBsdWdpbnMuICBUaGFua3MgYEB2b2Rpa2BfIGZvciB0aGUgUFIKKyAgYW5kIGBAaHBrNDJgXyBm
b3IgZnVydGhlciBmaXhlcy4KKworLSBmaXggYCMxN2BfIGJ5IGNvbnNpZGVyaW5nIG9ubHkgYWN0
dWFsIGZ1bmN0aW9ucyBmb3IgaG9va3MKKyAgdGhpcyByZW1vdmVzIHRoZSBhYmlsaXR5IHRvIHJl
Z2lzdGVyIGFyYml0cmFyeSBjYWxsYWJsZSBvYmplY3RzCisgIHdoaWNoIGF0IGZpcnN0IGdsYW5j
ZSBpcyBhIHJlYXNvbmFibGUgc2ltcGxpZmljYXRpb24sCisgIHRoYW5rcyBgQFJvbm55UGZhbm5z
Y2htaWR0YF8gZm9yIHJlcG9ydCBhbmQgcHIuCisKKy0gZml4IGAjMTlgXzogYWxsb3cgcmVnaXN0
ZXJpbmcgaG9va3NwZWNzIGZyb20gaW5zdGFuY2VzLiAgVGhlIFBSIGZyb20KKyAgYEB0Z29vZGxl
dGBfIGFsc28gbW9kZXJuaXplZCB0aGUgdmFybmFtZXMgaW1wbGVtZW50YXRpb24uCisKKy0gcmVz
b2x2ZSBgIzMyYF86IHNwbGl0IHVwIHRoZSB0ZXN0IHNldCBpbnRvIG11bHRpcGxlIG1vZHVsZXMu
CisgIFRoYW5rcyB0byBgQFJvbm55UGZhbm5zY2htaWR0YF8gZm9yIHRoZSBQUiBhbmQgYEB0Z29v
ZGxldGBfIGZvcgorICB0aGUgaW5pdGlhbCByZXF1ZXN0LgorCistIHJlc29sdmUgYCMxNGBfOiBh
ZGQgZnVsbCBzcGhpbnggZG9jcy4gVGhhbmtzIHRvIGBAdGdvb2RsZXRgXyBmb3IKKyAgUFIgYCMz
OWBfLgorCistIGFkZCBob29rIGNhbGwgbWlzbWF0Y2ggd2FybmluZ3MuIFRoYW5rcyB0byBgQHRn
b29kbGV0YF8gZm9yIHRoZQorICBQUiBgIzQyYF8uCisKKy0gcmVzb2x2ZSBgIzQ0YF86IG1vdmUg
dG8gbmV3LXN0eWxlIGNsYXNzZXMuIFRoYW5rcyB0byBgQE1pY2hhbFRIRURVREVgXworICBmb3Ig
UFIgYCM0NmBfLgorCistIGFkZCBiYXNlbGluZSBiZW5jaG1hcmtpbmcvc3BlZWQgdGVzdHMgdXNp
bmcgYGBweXRlc3QtYmVuY2htYXJrYGAKKyAgaW4gUFIgYCM1NGBfLiAgVGhhbmtzIHRvIGBAdGdv
b2RsZXRgXy4KKworLSB1cGRhdGUgdGhlIFJFQURNRSB0byBzaG93Y2FzZSB0aGUgQVBJLiBUaGFu
a3MgdG8gYEB0Z29vZGxldGBfIGZvciB0aGUKKyAgaXNzdWUgYW5kIFBSIGAjNTVgXy4KKworLSBk
ZXByZWNhdGUgYGBfX211bHRpY2FsbF9fYGAgYW5kIGFkZCBhIGZhc3RlciBjYWxsIGxvb3AgaW1w
bGVtZW50YXRpb24uCisgIFRoYW5rcyB0byBgQHRnb29kbGV0YF8gZm9yIFBSIGAjNThgXy4KKwor
LSByYWlzZSBhIGNvbXByZWhlbnNpYmxlIGVycm9yIHdoZW4gYSBgYGhvb2tpbXBsYGAgaXMgY2Fs
bGVkIHdpdGggcG9zaXRpb25hbAorICBhcmdzLiBUaGFua3MgdG8gYEBSb25ueVBmYW5uc2NobWlk
dGBfIGZvciB0aGUgaXNzdWUgYW5kIGBAdGdvb2RsZXRgXyBmb3IKKyAgUFIgYCM2MGBfLgorCist
IGZpeCB0aGUgYGBmaXJzdHJlc3VsdGBgIHRlc3QgbWFraW5nIGl0IG1vcmUgY29tcGxldGUKKyAg
YW5kIHJlbW92ZSBhIGR1cGxpY2F0ZSBvZiB0aGF0IHRlc3QuIFRoYW5rcyB0byBgQHRnb29kbGV0
YF8KKyAgZm9yIFBSIGAjNjJgXy4KKworLi4gXyM2MjogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcGx1Z2d5L3B1bGwvNjIKKy4uIF8jNjA6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3BsdWdneS9wdWxsLzYwCisuLiBfIzU4OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9wbHVnZ3kvcHVsbC81OAorLi4gXyM1NTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYv
cGx1Z2d5L3B1bGwvNTUKKy4uIF8jNTQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3Bs
dWdneS9wdWxsLzU0CisuLiBfIzQ2OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVn
Z3kvcHVsbC80NgorLi4gXyM0NDogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5
L2lzc3Vlcy80NAorLi4gXyM0MjogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5
L3B1bGwvNDIKKy4uIF8jMzk6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9w
dWxsLzM5CisuLiBfIzMyOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kvcHVs
bC8zMgorLi4gXyMxOTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5L2lzc3Vl
cy8xOQorLi4gXyMxNzogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5L2lzc3Vl
cy8xNworLi4gXyMxNDogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5L2lzc3Vl
cy8xNAorCisKKzAuNC4wCistLS0tLQorLSBhZGQgYGBoYXNfcGx1Z2luKG5hbWUpYGAgbWV0aG9k
IHRvIHBsdWdpbm1hbmFnZXIuICB0aGFua3MgYEBuaWNvZGRlbXVzYF8uCisKKy0gZml4IGAjMTFg
XzogbWFrZSBwbHVnaW4gcGFyc2luZyBtb3JlIHJlc2lsaWVudCBhZ2FpbnN0IGV4Y2VwdGlvbnMK
KyAgZnJvbSBgYF9fZ2V0YXR0cl9fYGAgZnVuY3Rpb25zLiBUaGFua3MgYEBuaWNvZGRlbXVzYF8u
CisKKy0gZml4IGlzc3VlIGAjNGBfOiBzcGVjaWZpYyBgYEhvb2tDYWxsRXJyb3JgYCBleGNlcHRp
b24gZm9yIHdoZW4gYSBob29rIGNhbGwKKyAgcHJvdmlkZXMgbm90IGVub3VnaCBhcmd1bWVudHMu
CisKKy0gYmV0dGVyIGVycm9yIG1lc3NhZ2Ugd2hlbiBsb2FkaW5nIHNldHVwdG9vbHMgZW50cnlw
b2ludHMgZmFpbHMKKyAgZHVlIHRvIGEgYGBWZXJzaW9uQ29uZmxpY3RgYC4gIFRoYW5rcyBgQGJs
dWV5ZWRgXy4KKworLi4gXyMxMTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5
L2lzc3Vlcy8xMQorLi4gXyM0OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9wbHVnZ3kv
aXNzdWVzLzQKKworCiswLjMuMQorLS0tLS0KKy0gYXZvaWQgdXNpbmcgZGVwcmVjYXRlZC1pbi1w
eXRob24zLjUgZ2V0YXJnc3BlYyBtZXRob2QuIFRoYW5rcworICBgQG1kYm9vbWBfLgorCisKKzAu
My4wCistLS0tLQoraW5pdGlhbCByZWxlYXNlCisKKy4uIGNvbnRyaWJ1dG9ycworLi4gX0BocGs0
MjogaHR0cHM6Ly9naXRodWIuY29tL2hwazQyCisuLiBfQHRnb29kbGV0OiBodHRwczovL2dpdGh1
Yi5jb20vdGdvb2RsZXQKKy4uIF9ATWljaGFsVEhFRFVERTogaHR0cHM6Ly9naXRodWIuY29tL01p
Y2hhbFRIRURVREUKKy4uIF9Adm9kaWs6IGh0dHBzOi8vZ2l0aHViLmNvbS92b2RpaworLi4gX0BS
b25ueVBmYW5uc2NobWlkdDogaHR0cHM6Ly9naXRodWIuY29tL1Jvbm55UGZhbm5zY2htaWR0Cisu
LiBfQGJsdWV5ZWQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9ibHVleWVkCisuLiBfQG5pY29kZGVtdXM6
IGh0dHBzOi8vZ2l0aHViLmNvbS9uaWNvZGRlbXVzCisuLiBfQG1kYm9vbTogaHR0cHM6Ly9naXRo
dWIuY29tL21kYm9vbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvTElDRU5TRSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1
Z2d5L0xJQ0VOU0UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTIxMDE3ZDA4NjZhZmM2MTc0YmNiZDkyMTRmYWRmZmQ4
MDA2ZjgzNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L0xJQ0VOU0UKQEAgLTAsMCAr
MSwyMiBAQAorVGhlIE1JVCBMaWNlbnNlIChNSVQpCisKK0NvcHlyaWdodCAoYykgMjAxNSBob2xn
ZXIga3Jla2VsIChyYXRoZXIgdXNlcyBiaXRidWNrZXQvaHBrNDIpIAorCitQZXJtaXNzaW9uIGlz
IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcg
YSBjb3B5CitvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls
ZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAoraW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVz
dHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwordG8gdXNl
LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBh
bmQvb3Igc2VsbAorY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25z
IHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCitmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8g
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorCitUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBh
bmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwKK2NvcGll
cyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisKK1RIRSBTT0ZUV0FS
RSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBS
RVNTIE9SCitJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKK0ZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorQVVUSE9SUyBPUiBD
T1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhF
UgorTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBP
VEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKK09VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhF
IFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCitTT0ZUV0FSRS4K
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvTUFOSUZFU1QuaW4gYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9NQU5J
RkVTVC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wY2Y4ZjNlMDg4N2MxNjE4NTVkMDk2ZDk2ODgwYzY1OTM0ZjFi
ZmJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvTUFOSUZFU1QuaW4KQEAgLTAsMCAr
MSw3IEBACitpbmNsdWRlIENIQU5HRUxPRworaW5jbHVkZSBSRUFETUUucnN0CitpbmNsdWRlIHNl
dHVwLnB5CitpbmNsdWRlIHRveC5pbmkKK2luY2x1ZGUgTElDRU5TRQorZ3JhZnQgdGVzdGluZwor
cmVjdXJzaXZlLWV4Y2x1ZGUgKiAqLnB5YyAqLnB5bwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kv
UkVBRE1FLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L1JFQURNRS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzYzNmI2ZWM2
NDI1MDIzMjBhZWNiNzM4NzQ2ZGM1Yzg4OTA4MmY0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cGx1Z2d5L1JFQURNRS5yc3QKQEAgLTAsMCArMSw4MCBAQAorcGx1Z2d5IC0gQSBtaW5pbWFsaXN0
IHByb2R1Y3Rpb24gcmVhZHkgcGx1Z2luIHN5c3RlbQorPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorfHB5cGl8IHxhbmFjb25kYXwgfHZlcnNpb25z
fCB8dHJhdmlzfCB8YXBwdmV5b3J8CisKKworVGhpcyBpcyB0aGUgY29yZSBmcmFtZXdvcmsgdXNl
ZCBieSB0aGUgYHB5dGVzdGBfLCBgdG94YF8sIGFuZCBgZGV2cGlgXyBwcm9qZWN0cy4KKworUGxl
YXNlIGByZWFkIHRoZSBkb2NzYF8gdG8gbGVhcm4gbW9yZSEKKworQSBkZWZpbml0aXZlIGV4YW1w
bGUKKyoqKioqKioqKioqKioqKioqKioqCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBp
bXBvcnQgcGx1Z2d5CisKKyAgICBob29rc3BlYyA9IHBsdWdneS5Ib29rc3BlY01hcmtlcigibXlw
cm9qZWN0IikKKyAgICBob29raW1wbCA9IHBsdWdneS5Ib29raW1wbE1hcmtlcigibXlwcm9qZWN0
IikKKworCisgICAgY2xhc3MgTXlTcGVjKG9iamVjdCk6CisgICAgICAgICIiIkEgaG9vayBzcGVj
aWZpY2F0aW9uIG5hbWVzcGFjZS4KKyAgICAgICAgIiIiCisgICAgICAgIEBob29rc3BlYworICAg
ICAgICBkZWYgbXlob29rKHNlbGYsIGFyZzEsIGFyZzIpOgorICAgICAgICAgICAgIiIiTXkgc3Bl
Y2lhbCBsaXR0bGUgaG9vayB0aGF0IHlvdSBjYW4gY3VzdG9taXplLgorICAgICAgICAgICAgIiIi
CisKKworICAgIGNsYXNzIFBsdWdpbl8xKG9iamVjdCk6CisgICAgICAgICIiIkEgaG9vayBpbXBs
ZW1lbnRhdGlvbiBuYW1lc3BhY2UuCisgICAgICAgICIiIgorICAgICAgICBAaG9va2ltcGwKKyAg
ICAgICAgZGVmIG15aG9vayhzZWxmLCBhcmcxLCBhcmcyKToKKyAgICAgICAgICAgIHByaW50KCJp
bnNpZGUgUGx1Z2luXzEubXlob29rKCkiKQorICAgICAgICAgICAgcmV0dXJuIGFyZzEgKyBhcmcy
CisKKworICAgIGNsYXNzIFBsdWdpbl8yKG9iamVjdCk6CisgICAgICAgICIiIkEgMm5kIGhvb2sg
aW1wbGVtZW50YXRpb24gbmFtZXNwYWNlLgorICAgICAgICAiIiIKKyAgICAgICAgQGhvb2tpbXBs
CisgICAgICAgIGRlZiBteWhvb2soc2VsZiwgYXJnMSwgYXJnMik6CisgICAgICAgICAgICBwcmlu
dCgiaW5zaWRlIFBsdWdpbl8yLm15aG9vaygpIikKKyAgICAgICAgICAgIHJldHVybiBhcmcxIC0g
YXJnMgorCisKKyAgICAjIGNyZWF0ZSBhIG1hbmFnZXIgYW5kIGFkZCB0aGUgc3BlYworICAgIHBt
ID0gcGx1Z2d5LlBsdWdpbk1hbmFnZXIoIm15cHJvamVjdCIpCisgICAgcG0uYWRkX2hvb2tzcGVj
cyhNeVNwZWMpCisKKyAgICAjIHJlZ2lzdGVyIHBsdWdpbnMKKyAgICBwbS5yZWdpc3RlcihQbHVn
aW5fMSgpKQorICAgIHBtLnJlZ2lzdGVyKFBsdWdpbl8yKCkpCisKKyAgICAjIGNhbGwgb3VyIGBt
eWhvb2tgIGhvb2sKKyAgICByZXN1bHRzID0gcG0uaG9vay5teWhvb2soYXJnMT0xLCBhcmcyPTIp
CisgICAgcHJpbnQocmVzdWx0cykKKworCisuLiBiYWRnZXMKKy4uIHxweXBpfCBpbWFnZTo6IGh0
dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS92L3BsdWdneS5zdmcKKyAgICA6dGFyZ2V0OiBodHRw
czovL3B5cGkucHl0aG9uLm9yZy9weXBpL3BsdWdneQorLi4gfHZlcnNpb25zfCBpbWFnZTo6IGh0
dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlwaS9weXZlcnNpb25zL3BsdWdneS5zdmcKKyAgICA6dGFy
Z2V0OiBodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL3BsdWdneQorLi4gfHRyYXZpc3wgaW1h
Z2U6OiBodHRwczovL2ltZy5zaGllbGRzLmlvL3RyYXZpcy9weXRlc3QtZGV2L3BsdWdneS9tYXN0
ZXIuc3ZnCisgICAgOnRhcmdldDogaHR0cHM6Ly90cmF2aXMtY2kub3JnL3B5dGVzdC1kZXYvcGx1
Z2d5CisuLiB8YXBwdmV5b3J8IGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9hcHB2ZXlv
ci9jaS9weXRlc3Rib3QvcGx1Z2d5L21hc3Rlci5zdmcKKyAgICA6dGFyZ2V0OiBodHRwczovL2Np
LmFwcHZleW9yLmNvbS9wcm9qZWN0L3B5dGVzdGJvdC9wbHVnZ3kKKy4uIHxhbmFjb25kYXwgaW1h
Z2U6OiBodHRwczovL2FuYWNvbmRhLm9yZy9jb25kYS1mb3JnZS9wbHVnZ3kvYmFkZ2VzL3ZlcnNp
b24uc3ZnCisgICAgOnRhcmdldDogaHR0cHM6Ly9hbmFjb25kYS5vcmcvY29uZGEtZm9yZ2UvcGx1
Z2d5CisKKy4uIGxpbmtzCisuLiBfcHl0ZXN0OgorICAgIGh0dHA6Ly9weXRlc3Qub3JnCisuLiBf
dG94OgorICAgIGh0dHBzOi8vdG94LnJlYWR0aGVkb2NzLm9yZworLi4gX2RldnBpOgorICAgIGh0
dHA6Ly9kb2MuZGV2cGkubmV0CisuLiBfcmVhZCB0aGUgZG9jczoKKyAgIGh0dHBzOi8vcGx1Z2d5
LnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2FwcHZl
eW9yLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGx1Z2d5L2FwcHZleW9yLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMzkwM2Y4YmZj
YzY3MWJiZTg2MGIxOTEzZmM1Y2NhMDZkYWI4ODVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
bHVnZ3kvYXBwdmV5b3IueW1sCkBAIC0wLDAgKzEsMzQgQEAKK2Vudmlyb25tZW50OgorICBtYXRy
aXg6CisgICMgbm90ZTogcGxlYXNlIHVzZSAidG94IC0tbGlzdGVudnMiIHRvIHBvcHVsYXRlIHRo
ZSBidWlsZCBtYXRyaXggYmVsb3cKKyAgLSBUT1hFTlY6ICJjaGVjayIKKyAgLSBUT1hFTlY6ICJk
b2NzIgorICAtIFRPWEVOVjogInB5MjctcHl0ZXN0cmVsZWFzZSIKKyAgLSBUT1hFTlY6ICJweTM0
LXB5dGVzdHJlbGVhc2UiCisgIC0gVE9YRU5WOiAicHkzNS1weXRlc3RyZWxlYXNlIgorICAtIFRP
WEVOVjogInB5MzYtcHl0ZXN0cmVsZWFzZSIKKyAgLSBUT1hFTlY6ICJweXB5LXB5dGVzdHJlbGVh
c2UiCisgIC0gVE9YRU5WOiAicHkyNy1weXRlc3RtYXN0ZXIiCisgIC0gVE9YRU5WOiAicHkyNy1w
eXRlc3RmZWF0dXJlcyIKKyAgLSBUT1hFTlY6ICJweTM2LXB5dGVzdG1hc3RlciIKKyAgLSBUT1hF
TlY6ICJweTM2LXB5dGVzdGZlYXR1cmVzIgorCitpbnN0YWxsOgorICAtIGVjaG8gSW5zdGFsbGVk
IFB5dGhvbnMKKyAgLSBkaXIgYzpcUHl0aG9uKgorCisgICMgaW5zdGFsbCBweXB5IHVzaW5nIGNo
b2NvIChyZWRpcmVjdCB0byBhIGZpbGUgYW5kIHdyaXRlIHRvIGNvbnNvbGUgaW4gY2FzZQorICAj
IGNob2NvIGluc3RhbGwgcmV0dXJucyBub24temVybywgYmVjYXVzZSBjaG9jbyBpbnN0YWxsIHB5
dGhvbi5weXB5IGlzIHRvbworICAjIG5vaXN5KQorICAjIHB5cHkgaXMgZGlzYWJsZWQgdW50aWwg
IzE5NjMgZ2V0cyBmaXhlZAorICAtIGNob2NvIGluc3RhbGwgcHl0aG9uLnB5cHkgPiBweXB5LWlu
c3QubG9nIDI+JjEgfHwgKHR5cGUgcHlweS1pbnN0LmxvZyAmIGV4aXQgL2IgMSkKKyAgLSBzZXQg
UEFUSD1DOlx0b29sc1xweXB5XHB5cHk7JVBBVEglICMgc28gdG94IGNhbiBmaW5kIHB5cHkKKyAg
LSBlY2hvIFB5UHkgaW5zdGFsbGVkCisgIC0gcHlweSAtLXZlcnNpb24KKworICAtIEM6XFB5dGhv
bjM1XHB5dGhvbiAtbSBwaXAgaW5zdGFsbCB0b3gKKworYnVpbGQ6IGZhbHNlICAjIE5vdCBhIEMj
IHByb2plY3QsIGJ1aWxkIHN0dWZmIGF0IHRoZSB0ZXN0IHN0ZXAgaW5zdGVhZC4KKwordGVzdF9z
Y3JpcHQ6CisgIC0gQzpcUHl0aG9uMzVccHl0aG9uIC1tIHRveApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
bHVnZ3kvZG9jcy9fc3RhdGljL2ltZy9wbHVnLnBuZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvX3N0YXRp
Yy9pbWcvcGx1Zy5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzMzOWY4YTYwOGQyNWZmN2JkYzY1MzFiNDI5MDkz
NWY1OGJhOTA3YQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgOTM1MAp6Y21lSHRYSCpwNV9HT1Yy
S0BqK2ZOTEkyU2piczRATGAxVFBXVj1DO01zbSl2JHNpJlVuPCV1QkJgQzRVcTlVUDUKemc1PDBP
az0qMXd3fFZMUioxV2FtKTJ4e2Yma3NtWlJrdj40ZChKKzQ/XjYrNG4paihGbT8kNiFxRWI7LSlQ
XjlVCnpWaEFGSiRqXllrajhLTHJnYTFnSzY7eVB7ITlPMnp2djNIeTA7d3E4KGVYJUk5PUVrJip7
YUBJd3w0KWxDRFhNbAp6fExVRmpBcyVXKSh2NyNGR3pCYV9vSE0qZndIT3VsZX5SNnFBYlpOMCFm
Tz0hbiZlKE1TfTszY145TkRkKjkydF8KelVFPG00LT9DZ2VkMGIxS0w3JXdZUTI1VnxxQEg9VTEj
d1VNaElreSkzVX5iT3B1Ryp2cEZla1ZuYDwwZytUaz5PCnp5PiR5LVRlKHdwbDVCbmFtcjhEKkJA
cllhaysobiRLQExHdiM4OTRzMH0tVD9ZK2VLSEArUFE4Z2V6YWFCbm5yLQp6bmk9Y1U4YkFJLXNz
eDgxVEBEdnxWbzI9aVMyOVF8IzJHR3lQajdVPGRzSlEtPn53I19KdCtseWV7XlhpYmk4ITwKenpf
RGdvMGF4dWd2MWk9a2JLcThjR0tPMy1fTGVOcz1jMD1sQlZwNnEoJHZ1S2VPQiMqdEp4YmlURX1t
Yzg0YXtgCnpmM3huKXlZJis1PGdwaGRUdjUhdEg9KnBye3ZjY1g2PFRvOUx3SiRGPnZtZCR2RUJq
UnM0Pi1kX19pSXJsQWNfYwp6Jjs1O31NQXRJXlQlNlErYmdDfmhhY2w4O2ZXeHp8eCpTWnpCfFVz
UjM5NSM2Q0dvZ1JrTTdRV1JJb1NTbFU/PjYKelo7VHRuIytNVyZDfnpqNT95TXF4Y312X0lYMilM
ezE9emdBdk4mdStsKShvb2VyLX48d3Z9byYmUjIkeHdXeTg8Cno4bXIkLUBUdmA9ZWtRJT1JUz4x
Xzx5cE5xekUrQyhNNXpScWFGVWFuXlpPJkAoKSNzbE8qNiVRUlAleH1wTm5RJgp6WEhFMGNXS3BJ
UHJDcnpmVVdMJjYqfkB9ZyR6Tml4ZCtmenFTc3xfe0FGZWNVRFokQ3FIOGMhbVM3emR9XklnUnEK
el9QQDshQjE4U14qSGlyTlVNT3ZBKj50YClZeC00SmVsQUxNPE5sd3k9Pjh1eSVedyFtQE9LLVl6
ez1DbSZjUlAoCnpfZEk4MUA4XzBTM20tVUB2ZTF3UTNQZjkhQDFub2BzTGBhaStJSlo3b3g5aGR4
OF5nQ1BqajE7Tit7OG9TWS1DVQp6UjwkX3VNUmkzKSheeX18KmlSQ2I+NXo5TFRBQXlvaDE3ZXdu
YW59Z2stRkV1X19ga3FEYmwpbVhLSD12clQxMnwKejF7NG0yd3RLUW5NbXJzeHVBJXd7I1cjRTxP
Vm5yQG5OZzN4czsleyErRV5pU042U2FpZU1tTEtwbTdfRDtqeiMrCnpxZWwjMXFMO3MhZXluM1JQ
ZG9PeklvX0IkTm1WcnBzWWEte1ZjenRVNlUlIUR8TktZWFVCeUNCZnh8MEdEM2dLewp6MkJHKiM4
NmJLM0sqQ2BZQT12JklwUXFRKzVNcSkxem4yamJfVyR2TTxScnRPOXZkR1ljeCtwaWlAVXA7aUFs
ekoKellVPWppenc8ejdHWnFPak1ZVlMlaSlKQDg3XmtHOW4wPGVIRklKaDBpIUdZRGg+fFp2U3Zw
LWE2LUx9TV9hcHlOCnpAOV4tb2dQbTEkTTh2dGkqXyt4M2dyRks0bVhJS3otPH5HcnRkMXRSNyZT
ITwkMnY/MG1SRDhiVWFgdD5DOCNGRAp6YWBgP1FzRT4/e24ycCFDaWFoJnZ6SGImUHJpRypLbDh9
Jjt4LUE8bXRnY0VUUjg9fU08Vj5XY3JMIT1ZQ1lOZ3sKejBhQXUzZDRLPUxHNTFNZDVmS3M3bil1
ailxTWAmdXR5fG1TLWk4TDZfQDxIcjUhdzBrPVVlZiF4VnNFU2oxPzZYCnpyTyYoQmwjSTI0KyZu
JmdgfSNHdzVLJHtwal5YQTJ3e3V0ejdWR3d6NSExaj9RUU88d0oheVRWZVVwPHklZ2Y2LQp6SUVa
Q2g+KzAqNHs3MVEyKzFkQU9jUVBNPyomNiQ5PV5EKkcrYGpCYzxtdXcocmwpUVo1dVQtZVpERENp
M35AJF8Kemg3PFBiXlhAS28leGtmVC1oQ3BzcnA5UShiRHFfRk5aIzwtUzI2PS1vO1ozMkJNdVha
Y1UqQlFlTXFSMTlRSH1VCnotTXdtbz9xJllXSlQpdWY1TnlFeklRO3pTNkFCek12YXBDRGhAVjdH
NW5xMjk2X3BIWU84V2wmVklNYkNpRGdJQQp6SiRtIz1MYDtsfVNDYSsoN3E0Yn11SyRydj0kU0F4
NC1XJmBsUzV9bFg2ODdkaEZ0fDdVUzk0NSlwTVAxYDRTaHIKekJaeHcxO0spQjxYUHRKfXl6JDJl
PzUrM05lWXQjbmVWdlhFSl5QU0VDYFZITFdVUn09K3Eje0pyPUd0JEMxOzh4CnpDdTVgS2opej1T
QWd4NGxTZGV5cHtOY2dffDUmdCVwQ05VPHBLe21uYV5YVE9sKHxGO0tYYWFucyU+U3c3Q0c3QQp6
PiRKYVYzQVBtZ2Y8RFUyK2p9TzIhTDFjQEh8IT02SEZTPnlPVDR4e1lMRENLbUpfUDR1Z181PGcw
eyRFPnw1TDAKenQpa3NGSlJoTFVVfm90WCN9ZENTMG5nPSVMM0sxU2d0X2FHKDk7fGwqRV9yP0do
QXQjM1prbVhNR0IlKENEbzdjCnpTISs2ci1+QVFzZF8paUp6TVI3VT8jKyhHRk9fdy1aNyt7NVRx
SCQ3RztsVVRYb09OUiZ2ZzRBbW5+PlJuV2lebgp6ZH01NktrNmliNSpwRmx8V0R3RF91ZH58SD40
fnBpUTRnMFFETWRlIXBlfSY3e1IpNl5rezFoNE49dTd4VmU/an0KelgxViNLPHwwSE1yTmNqSzxy
Iz4+ZkdzaHNfb34/MyspUlJ6QGxnJlUrfHc4Nl8+SUp2NSgqMFZeWWltIzQ5bTxfCno1UXl9U1JM
S1d+V05IZGJIUVFjI3VaflhBbXJtZFEoUSEkfHgkYj50T2JvNTF0IT1gKWBfVTtkR1YtcTxwUzRp
SAp6eiNDVXBKSXx8ZiNKbztTeWt1IS1tI0VCVFRFaklPbFE1MkhmfEtlS0o/fjEzQG17VWhmNWsz
bVM5OV5vNE5gcnEKem4xbj84M3dpO3dKXlU8UGJXMm8hM15QMU5TQEc/fG8hZno9PSYwJUdyK2Uk
c3tefU4ocEVVNjRpX3RDRiVmfUx5CnoqMCFSVG9AOEhre1o1X0hHQmxKX1VRdDE3MVN2Y049PHNH
N1V3R1pQJmNKUFQhcSUpZSp4PnFoemthYX18NWlWbQp6SDR5aUNXK3RvOXVxQE9XVHhAQShydWZG
PT1lZz9uSHtOQ3I0bX0yfVpkYzkycnJLalBiNyR3fVBPM3BYY0BzOTsKeldOVU0/SFFqeVVUMWcl
TE1hKz41PihmfmR0ZG9uMmk/WTV4ZE8teGJMTm5pJDk9RWtQaCFhaUNJNSpSU0teUkR9CnoyR0dJ
ezBaIVFybW9+ZEZMTndUfTxAOGQ9VXJOOz1QVkVvWT09NnJraXlONilTbU4qZEFNXkZ5Qis0XkRB
UTFTVAp6OHJPelVlSGI8VXIzRFpUckc3X1ZRVV9JS2dnTHlVWmdBNkxeUEc4VExkYHI5UmFrb0FZ
T242XlBpNVYqRSFTNn0KekhGdl96c1Y5ZH5fTV9kaHd8LVo/KCtaeDd5JiRfUVV1aSNTUzkyY1g2
RyRKR0F6NzRnVkske19nKTwyR05zWT81CnohX0pgV3kkO3R+TkUqOXZEanZFbjR6Nnk7dWFicUtF
Nzh2TFUyWDU4X2IxRWU8Xzs1OyQ8N1c9Tz1hNFFSKDY2SAp6KEhpamJALWtiVXNPS0l4bXJqVDZ8
OWxvaEwwejJ0IyFEM2okMzd1RSR+I3JrS0pudjY7cUs4ayh1RHA2TW9CN1cKemRQZXlEUzFkN2Qk
THJBbXN2dnFMQl8qPyNFPmBZSUoxKUFYI1J8RF57UHJ5WUxaSjklKz9WM2wqQnV7PndvPkpwCnpV
U1FPTkpKY1Uta01AcF5UNyF8YmtZSURTbXhoME4lOFUoVWskMnpUTm40PFU8Zyp6fWRfSEVlaEs+
ejw0VmFpPAp6bFg5OH4yWVZ1KTltbzVpSiZmSllwbWY+c0BuMl8rSnVzV1IzYENpK2JeQ3dielpz
YVg8YmU/fkFFZFdCbmd9WjMKemolI342STFCIWBKVy0jVHBBTE9gMmpIbzdxM2A0b3hFKmo3OWUo
YkU/UFhFSzg3VE8zNENnOUMxelZONEJjYF9ZCnp2MVcjPkV0bmc1TkpFM3tnR0tOOXFCZ015LXVr
OHwkNDVEODVVT1cpQ2htYzFQNXNpRVgpSXo3encrKHUxdllAYQp6UDtoOFFtOShQPkczOFBDO0Bi
MlY1b3V7RiFYUSFJdkltNyhxdDJzZ3dFSSowanJNZzxZZSpxLWBqVmdrN3dQNEUKem9YbHBeKTxD
TCNHSz5nUEtzcV48PTR+eDA+RGlALURYX3VgTnAqXk5qMVdabXg3O2JaZ3Q2PG8+OWhMKkVZY08x
CnpmYFduPE1rUDhgO14oJSk3cik0JT9MP0hKUGlYVjVHe2VtcngxIWJJbFMmenYlUFVqK3MzfkhV
Yn1oYkxLJl9PdQp6WVMxMVRFUD42KiQrPX1SUDZoNGU/QzxaIytPKmcqYHpUb2lTekF+cmNWKT1n
Nlh1PDZUfmM1OStnMHRtO3BMR2oKelh9PzEoO2dSdEdIKG5TQ1AxPFVWUVB9RUZ4NWU+bHBka29U
ey1qQlJkc0kmdCV3IyF5djlIbjNpdHZ1PDA1YU5fCnpoVnwoeT85NSR8Xmc3a2l4QFAqKkp5V2t3
Q3I9ajxKYTBQX08yLUxPaEspQEVLQDBfSnM7UX45UlZgRXMlOWJ+Ngp6P2FnUFQ1KjgpPDxIdl83
c2l+MzFhKH03MWclUEVUU3FFMjIxd0JyTjxTbU5+Sn1QajtmWE1qRjM8dWROTipGYHcKejc4YG1O
aGZhbXZSYUVmRlRsKllCZEFlczd3JD0kQXdebDVmbzhlX2g/czg2O2ttTk5JPStHWSY9aVklNF5P
fjA+CnohNkh9eXZSUXFXcGYxWXUqXkZUeVQzSzFDcXRfRigqIVdxUC13QmdJcyF5anNobT9aa2tG
fipkWlcmY0cyc34jdQp6S1IrOTg0UGVJUTlGI2RSaSNDQyFPNCN5OFlKUnJDdXNBeChgfnxKOHdE
RCRLOX5NK3NkfH09NyFINzRXdilGeVkKemJDN1dQTkowUG1uTzhDXkh4UXhPSnlCUyY/bX0mNXkm
eFNrMlYlTF4lKWFiWEhQfXVyLW1YQFZ7My0xKTF1P0xiCnokajRsb3RUY0d6PU18Xjs/KWQ5biVv
IT9QRGkjYnlhVT1zVDU9MWZ+NEhGV3Q4Kik0ejhBWG5pRkVyVDUkOzZ2fQp6OUZsQShPZX5gLXhF
bXRsejdwR2JJNGVaQiZ7ZVA0PS1MSClrRDttPHktSkBqbDRsPGNrZSQ/JXxLdUshPyQzNFgKekFz
KmNyS1dnN04/c0R4XzJuUk1hRURZSjFBfSU1JldlRXo4KS0lRiNTb1k8X1JAUi1wPExmfG07ZXdq
QXdFelB2CnozRkB2cyslZT9WO28yOWxTfFhlYjQ3dTlaYTk9XytwQVRyVSFqRiFRTzNnYyY2ZXVC
PEBSbmJfWnZMc3w2X3VXRQp6N1YwayMmd3BfR0IyZVl7PHlIR3NqZmJQUStzWVU+QVZNcmBxJHB4
MFg2RChJK1NOb1BFfEt3RXAtbCtXaldsPm0Kekh2ajNXb3V5YFp5KnlnZ2NiZ29ObkNuVXhoKWA1
OEdCVjFsdUM2WWVWPWt4UW1GJkJkVkMjXnJqaDxOPWUjcHFnCno2YzFgIXlVYzJ4SyR9QD9XRihR
aTtAal9lST1aP2w4WDhkQERkSzg+e2BAaFVzUGxDQ0xNN1IlQXZ3LWhfU14obgp6cXhlfHc5Vn5h
NlVXS3tBdV4kakR6QEhYWVJ1VGF+MEJSSHVEejY+c3h5dnB+TCZBT0JTRitOP3AyUk9wNitnPD0K
elJDKWU5Y1dKV0dnb2xTbUolST8pOyNyJWpgNDxPO2tMI1I9R0VANkN0YDs/OWxwdGd8ZCMwRSFV
dyZPLUoqZXZNCnpAQmd9JTRDMiNyZG5DS0h2eEQ+OThSekJYPGgtKj8yaGtgNWJXcUZQeEZLJnIx
Z1U9Qm5NejRZQkhUaH0xVk9aSQp6bFpGTm9rN08mVnMrPV9gcHx6LU04QjIqfXpaU3o2MFlmZnpw
NFhJZjJiMExzOyR6SWY9V24+RG0pRFUlNGN8STkKekhUOFUkOWl5VjdhbVZQTGc5PVliSl9LKzNI
OT8meG5VKH12cW5FcnR3V05lPmh7RCM/KSpnK0JMNzlQajU8bVllCnpFXmIpJkt+TS1xYFk2OGB3
QCM9JVhLX0ZQUUtKTUVNMj1CXkxOQV41YD57aCpSTWNMREJfdk9fQSZBOWhUIUtEYgp6S3pnNHdn
WEZSQ2VgK1M9ZDR8Y0xPZFVYRXE0dj1BWVooeUt4K2ROSz11OCp8ITBzREIqcGFzNTFUXz4xPVpT
VWwKeiU2ZTRodUwzRFl1SVI+aGswWWllczxgeElhO083OXFkYFFvRFA1R0dzOSYwZHtsNXZqJTxE
SlA+MFNXa05CVmlDCnpsNnlGc3Y2aF95ZzZ4RTZ8QUkwTFhVO3FsP3ZwM3pON0J5PVFpVGUqKF9l
WjFRcXwpV09jOH0zcShGa0lpZ2Z6JQp6Tk1wSnd1cSgoRj9ld1JBe0xxO3xFfWMkfC17amAkSU0t
KW91SyhWMnhFZS01JVZRYlkhViNjUF5odys5aEc4ZVUKenthe144USNqPyptXyh0d3s1dkBRNChS
Z1N0UVNsUFBNKjR5WDxBTWUmc2Q4cE97TD4hWlZJYDxAY3xfPTxEJTBICno1Nk0lc29Uai0tV0Fx
WUJCa3s1bEJ7RHR0Xzl4dSE5VmAkR1I2LWtjZyt3OEFOK0YzeFRiezl2UmIweF8pbT1vRAp6NlB0
TjJYWi1mWTxYRFNIcF5+dkNua1ctJEI4d3toQkVVSj54SihAUmYlcVpeSGQ5dl41bVgmO0tiKGt5
N1QlTEwKeiMzKT5QTDQxeiMxfChaMUo9a29rcD4rPFZVaXViUmRITSFOQXF2JU9gbXV5ZXJ7VGot
VnpjMFRUPVJ8OShmOUMmCnpHVlpyKWs8ZjBUN04xbHlCOFpraiUmQ3ZvIXFxcjNsbFopb0Q1ZTt3
WjZqSilkNExte2hURVFrd1Q3YmpeYj9MbAp6aC04VUxJUEstUG49TkZXY3RxeyZDWCowRUI9Rjwq
QDJ1TF9RLU9NUj1CVjV0OGF8Uj8lKkR2JjI4a017S0JmbF8KemNRfHZ3WTtpYHU/REMpUnRrZjxl
PCMrejRSN0k2ZXhzMzF2YVplTjhBJDkjZHNALTwlIShESXpGQDQwJFlMc2FeCnpGQz1mK013TWZs
PEllJEhmZEJ7Uk1ZPnd+VXNfbEg7UnB+U0VXcDdASG5KTjAwX1okWSE5WnoybktsbHI0QitSKgp6
S0kjbFpVWVZZb0lePShNNG5BV1BBbyhqVmt8KX0lU1drVmQpMVg4U1c9KSZ2ZDx6SGpOSyF9LT19
MDRqXz9XOUQKekJSa2otJFA8NmUrVWRqRi1FYTAtWmlMITUoTVFFYksmYWpnSz9KQlBoa3J8Pk9L
PlZHRG5EQiRra2d2RSFGV0x8CnpENmZRNUB8ZHhgdnRfZHFjMD1vZSpoXyomR2xNeHEmPGhhdWIo
NW1mR0NxS1l8TV9FO29ScVg/NEZWZUo2cUtLMgp6bkYldHVgSW4+TnsrRGImVFEqMXc8RmptTnZL
TjxkRlomdkYjUnBXalVxVWhzWDlqXjcmWj87Qj8/eWxufEkxYlYKemIwdj9mRz5kQ2pxI05CeUFV
QH0wJVF0dm08ZEM/MUk0S1JoenJWbHRgfWVEJExpKCp6SyQhK1NiLWZHYSVUNTZ1CnpJRzMke2VP
eGkzbVJ0eHpKckJefXlYay1JR2hGc084VkZeJUpXenhjXzxFOFpuMzxSZWxvSjFtPFUpQHZJWWpA
Pgp6VEpvdDk3dmxHbXcrfVNhck1YOGRaUjNpSVZLRDc4P0h4ZDRzSDBJZFBFNl97WEMlR18zSj9o
WWYzZ0ZUdVQkbigKemtUTSk8QG5PXjBCMUdCWGRzK1ZwKVV+X1BXdURpRlVELT97V2s2UmEoTUtz
fDdaaisxUld9PGJHfVBBRD1pUWo9CnpqTFhVNEc1aiNhbFlJTXR6bUkhQSQwaThaelBCK3lgemhl
NClPQXRmUlBSI0w3P0dtPTBCPXJFPGhVdipEQStxVAp6MjQ1Uz0lUVRFP196e2c9ZzRmLT1NeVJP
VStpdUJlWDxgVSE4dE1PQ182Kz0teHVyanhAZUJYOXZDI3hQez55SmwKektIKSV0RypEZDIkMHZE
Z2kpQHZNWkxGKmNya2F+TU91RXUmcXZxX3JeallCPzlBQ2JDPV5ZdjIyaHxjTjElO3B+CnppbUgo
akJoVElHRmVLMX5sfCZEJWxEe1g4aHF0JGgxUUByPmg2eG03NitwU1h3emFpSTVFY1k3SmA9KEY9
QyRgcQp6XzVFMnxmdnFOUEprckI8eWhheUxNdUxYNTB3VkZCPlNzWTRlKHMoX2dwWEFBan5kcy1R
fGc+MTxFfVlTVmp8UlMKejxFUFpRUmZhaFNxbTNDRElHRmtLekM7MzAtTXFmKWBiUUZXVnwte0JW
JDtffHVUUTJyOEdsV3VOIS1eZnEwcCRKCnpval92MUxaZmUkK29qdTImdSZUPURkMGwqdjVKWi1i
c0wpMWhqXlJAO09HM1RLRmdXNkBVOEN9U1MzMkBFd2xQbwp6aygzQXJneGZGQFNVaU1UU2g+Mm93
JUgkVk5IKGwrTkBrOVkzM0l0TGFkUzg9N00rKl5kWnxfOT80NF5yOSVeaUYKelAxaW1KYzJAKk1V
ZnZFNi17P2M+NXsybSp0fnYhcUlRLT4jWGQpZkY0ViYtZyF+MTw9UVpjTm1HMEhSNlZRMCV1Cno4
bnJ3Xk02Z3k/PHx6YzhpT0oycXpyOGE0eFl6Y1pzVzJgLUMrKkVWMT0wWmtWUUsxVGNCcCkkJmE+
PilgdUhWKQp6SVMtPmY9a2lrLUF9PDRDZEhBRHEqbiZzey1IN2BScW97Y2pWVz87R3VoSzxpV21n
dHVgREA7NURQcVlQQXl0ZE4Kej5se253V00+MENxSiQlWj1GWVNqVlBfc0hDUCsmYTckbH1gKCZz
bndUYSFnYThuJWw1clV6emMrVCFyalZlRFFiCnpOLU8xPiReSjZ3RD1KKUhuX1FkZV4tckhPLT4r
e1hqIV5JamRTQmVvMXQ9d3JiZW1ifVpgWDE0TUtmTiZwdTB+dAp6eUhDbGxsO2g5Zkd9JDlMQzJN
azkyWFA2QilBd0N5am9GRGI+aEFRc0VgeTtld2wxI3pNaUBhQVNUSVVFPj8yYkoKekA4OEdhVjZg
MHRvaHpOO2dPQilyNmVmWHZgPDxeIWtfY2s9c1A4fHdeUS1pYCYkRl5xR0IxMHVSUTdnSXU9eG1e
CnpMdHBQc21lUSE8S3FRfFpfM0c4NzNTKjNBeTJ2Q2o7d3Y+K0ZsPihGUEJfOFNOcjlaJUVjYXtC
RCVlZEhSYTcrWgp6T3lMRztOZjJZMSE5ZT9QYUdkTm45YF9UYiNJTEtYMyNKNmIpOHhzdko+ZyFo
Yis0VCRBRjloUF52QzBaUmIhdDgKekhOajJBYkA9d1QxMzF+UjFaTTVBWGFRVX5Bb0EtIW4qckJG
XzJpWTUyemlZd1YwNkNre0EjYXNTPG5XO1JOZXlhCnp5PEc4VHBlbSo4Xj9+RThMQWdhdCRENy11
ZyFpUyRQRDtvZEc4OSRoPWZhd1BPZ2o5MVVydk18QElEOFVOeiZJQgp6QmIyNDZLRDswWUROKHlw
cXhTYXUzKHAjOEQpT0lWciZ5UDd4SEJ7NkwzM1QpVjFJd3hQVURGJGtRNkFaMip1QUUKejUrZF91
QkFBNE9SUncrP0xPTGB5YmBxcTNrKHlkMHV4YlJiYmA3NEc+am9iX29oSHo7WFlhJSRRIzAhNy1V
Z35FCnomZzlBKzwlNn1CJiEhajlRfDYpKk1rdmphNFoxZlRBZ2NHflFWSUR+QEQ7IytnTzhfNUM5
P2xeWVpNb3kkNHR6OQp6YnMqMFEkfTF+V1o/V3heTX4lJXpgVjJiZzk+emI9eUw4Pilpcmo5fjF3
eHxue30+b2hlUWElK0dNYT5NM25GKysKejx7ZTItZmU3VURXfHApZ1h1ZW9tcTF2T3tKR2g3IVJL
QCVJVUlkIzc9PCY9I0t7IT9gUVNkUUFLampaaShhez1LCno8OVZHciNScnBNQnY1PHJLbEczeEZR
KSU2YyZ9a2UkSGhTLSE8aFRRP1g4UUM/aHY2dWNyJCFAYHZsYnd3YnhnTgp6QnF1IUh7VCh+Ql56
QDMxeCF1UGNAMmdaPHk0JkZ2XzVeOWM1LTlwQG11MGs5SDZHYSNCJH1aP3NhYkBMTEYzaTYKenF1
I1hYJnRTVn0hS3RGZEZMSzkweipoVHwqSVhyLW40Mi03R214dipVUjg/Zjl+e0t4bjRuajx4RkN4
JXZvXlpuCnotVShQPWopby1TZzx6bjc4WXJuQFkra0t8LU56PXAqSzQyYU8hY0pfRUV4fUdCLU1X
ZiptWE9RV1EzJihBWlY2fQp6M0UwV1ViLURKcndKVlFndDFtXzwmSX5wbFNOUDEhT2JSMD9wanw3
Vml8fX15NU5eMiY3JlJDNSR6aFpyZ2g1JSsKenQzS1hlMVAoRjh0XmZHM0s7diQrJjxyNnVHNnla
YHQtYHVybVNkcjZXcFEhdyhxfUV5PF52RTcpNEIpVFpAWl5eCnpXfndSMzNBbEwpb3RRZ1M5MUFZ
ZXdsKDJTWmdVLXMpeGdWfC1DaDMkQWZNUUlZM080aDQoPmtnTn45QzBaRENeKgp6VSVUNHk4MF5q
NS1UOz4kP3ElZ3Rtb3FKI2BzS0ApJUdURUpTI0VwJWFKZVJiZyZjUERaO0h2VkdoM0Vhe35TbyUK
el9DTmphdnZZRz5mYUFTTlVXe2s+azQyUSg0dHZNMFc8bHcxUm4jeDImJnsxU0BWeXpaZFNeZWp1
KkgjX3IzT3lxCnpUMC0wdUB0Nn02Slk7MTA5MUlPZTFhUjN9IU9WaXUpS0JqQFZBMitCdF9remVN
WUlOOGttWSteV3J3dTgzKkE2WAp6QCVRZEQ/QStjZkBqWW9TIzZ2VlUwJnpqMXA9VWY3dkthXigp
VCQmNWZeMHBpd2smfHFFcShmaFp+eyRgWjg8bjEKelIxWVVzYj48dGhlZi1Kcz5JdnVLS3ZDUSZH
TXxNTUJCJUg8M3dgZnJuJEVKdiVOPFQlYTJtQyhOYGA/RzVwRXY7CnpATz17fUNYRDtDcTJlQ3VY
ZVQ4SHZNSTJPaVNyciRaPWZKMVFpZ1dNQ2krYV5OTz98JnVzWiRqeHRnNGtCNyZmUAp6JkNuREF1
NFRMZFoxN3Q1KWtOUWU/WTQhIVRuI2pkNTZSIW8jSChoe2pKcj1KZkYpX2czfD9wKFpjRzxQJnxU
cEcKekJRaUpYXjF1KV5lNT57RDFgezN8Ukd5MlNSV3JZJDxzPVl2e0ZoSmZQUkpMMS1xa3cmV3dx
XkspJkJ+Kz9gRipBCnopPmEjIUQ7bnEhaWFUSGhZMm03JVRoaTlrXkUmT09CVjA0Pj1DekZEdHcp
U1pFVV5UaV4+Q3ZiWD05X191PXxxfAp6Zk5zMUZlezt2eVRKViZENmVrdjw5NW5Jd1pGY2loZGlR
VztKRjRfczJPfXlaQzU1U3ZgPzlGPm9IfkhYKC15KHEKenlGckFXS3VMK0AtPHRxcDteS3JSZlU0
aDBQWE9vJVRzSkNqYnZnRzwyayN0NFAwSH0oWUsqZTd0MUNiVlZ0dnF1CnowbDRTRmghUEI+ezZH
YGtmP1QrT1BKd1ljc1FGYGMwMCNtZkB8Y3cyYnhWNmpWWjZiMDAzKUJpbmhGfk4rNnJLcwp6ZiYr
YFhIUD9+TVN5V1YlZ0NrYzVWR0heTkVpUjFtY2leYj1MckZtUDA7NUxfdnw8KnRlWj5EcEtfQT9F
R1otWk0KejUoX2NeaUBvTmt0IXZvWTdKO0NuRzEzQiFZNj1TcmlgU3JDNkN6UylXbz9aZEVKbzEj
SGk+VjdLRzwyMnUtPmB1Cno0MTNWaElycXoxMGVKLXJnKSNrJCNeJFheeWxnZmw1WmN5PmRUJk97
SktRT3ZEMl9CflNKZ199UTZBdmRpVTxvbwp6dHpvJGpOKytAe21iPXR6JWN8eHFoTiszbjxBJHMo
dGokYXQ9OyFRYGtfVHRibzwrTDJ7TVokSTIja2wwR15zfkcKek9LMGNqc3tvP1U2YD5keThBKGZW
K1AmLW8lSilDRD1PI3MkaW9tQTwhaH4tRHtAZGEjXyYzZX18NCt+TnxMYEhpCndEVTZkdFAjVkVx
YDB2TE18TlIpXnxNdGZhMmA2V0ZjKzdqNWhvcks9aGVlUmVKeCNAOGcocmRrM3Q2Wk1VO3FGQgoK
bGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9fc3Rh
dGljL2ltZy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvX3N0YXRpYy9pbWcvdzNj
LWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTBhZjZkOTYyNGM5N2FlOTExYTVhOWE0MTJiNzg4ZmU0
MjgzOGM1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvX3N0YXRpYy9pbWcv
dzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0
b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5
IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwg
cmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRl
c3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlz
IGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9j
cy9fc3RhdGljL2ltZy9wbHVnLnBuZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9hcGlf
cmVmZXJlbmNlLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvYXBpX3JlZmVyZW5jZS5yc3QKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYWExNTEzNWFkM2RmMDRlMmI1OTQ4MzY3OGRjODQ2NGJiYWM2OGJlMgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvYXBpX3JlZmVyZW5jZS5yc3QKQEAgLTAsMCArMSwx
NCBAQAorQXBpIFJlZmVyZW5jZQorPT09PT09PT09PT09PQorCisuLiBhdXRvbW9kdWxlOjogcGx1
Z2d5CisgICAgOm1lbWJlcnM6CisgICAgOnVuZG9jLW1lbWJlcnM6CisgICAgOnNob3ctaW5oZXJp
dGFuY2U6CisKKworLi4gYXV0b21ldGhvZDo6IHBsdWdneS5fUmVzdWx0LmdldF9yZXN1bHQKKwor
Li4gYXV0b21ldGhvZDo6IHBsdWdneS5fUmVzdWx0LmZvcmNlX3Jlc3VsdAorCisuLiBhdXRvbWV0
aG9kOjogcGx1Z2d5Ll9Ib29rQ2FsbGVyLmNhbGxfZXh0cmEKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1
Z2d5L2RvY3MvY29uZi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvY29uZi5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
NDA2NTIxOGZkYTAzMWM2M2I0ZDk1ZmUxZWJiZmZmOGI4ZTM4OWY3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wbHVnZ3kvZG9jcy9jb25mLnB5CkBAIC0wLDAgKzEsNzEgQEAKKyMgLSotIGNvZGlu
ZzogdXRmLTggLSotCitpbXBvcnQgcGtnX3Jlc291cmNlcworCisKK2V4dGVuc2lvbnMgPSBbCisg
ICAgJ3NwaGlueC5leHQuYXV0b2RvYycsCisgICAgJ3NwaGlueC5leHQuZG9jdGVzdCcsCisgICAg
J3NwaGlueC5leHQuaW50ZXJzcGhpbngnLAorICAgICdzcGhpbnguZXh0LmNvdmVyYWdlJywKKyAg
ICAnc3BoaW54LmV4dC52aWV3Y29kZScsCitdCisKKyMgQWRkIGFueSBwYXRocyB0aGF0IGNvbnRh
aW4gdGVtcGxhdGVzIGhlcmUsIHJlbGF0aXZlIHRvIHRoaXMgZGlyZWN0b3J5LgordGVtcGxhdGVz
X3BhdGggPSBbJ190ZW1wbGF0ZXMnXQorCitzb3VyY2Vfc3VmZml4ID0gJy5yc3QnCisKKyMgVGhl
IG1hc3RlciB0b2N0cmVlIGRvY3VtZW50LgorbWFzdGVyX2RvYyA9ICdpbmRleCcKKworIyBHZW5l
cmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwcm9qZWN0LgorCitkaXN0ID0gcGtnX3Jlc291cmNl
cy5nZXRfZGlzdHJpYnV0aW9uKCdwbHVnZ3knKQorcHJvamVjdCA9IGRpc3QucHJvamVjdF9uYW1l
Citjb3B5cmlnaHQgPSB1JzIwMTYsIEhvbGdlciBLcmVrZWwnCithdXRob3IgPSAnSG9sZ2VyIEty
ZWtlbCcKKworcmVsZWFzZSA9IGRpc3QudmVyc2lvbgorIyBUaGUgc2hvcnQgWC5ZIHZlcnNpb24u
Cit2ZXJzaW9uID0gdScuJy5qb2luKGRpc3QudmVyc2lvbi5zcGxpdCgnLicpWzoyXSkKKworCits
YW5ndWFnZSA9IE5vbmUKKworcHlnbWVudHNfc3R5bGUgPSAnc3BoaW54JworaHRtbF9sb2dvID0g
J19zdGF0aWMvaW1nL3BsdWcucG5nJworaHRtbF90aGVtZSA9ICdhbGFiYXN0ZXInCitodG1sX3Ro
ZW1lX29wdGlvbnMgPSB7CisgICAgIyAnbG9nbyc6ICdpbWcvcGx1Zy5wbmcnLAorICAgICMgJ2xv
Z29fbmFtZSc6ICd0cnVlJywKKyAgICAnZGVzY3JpcHRpb24nOiAnVGhlIGBweXRlc3RgIHBsdWdp
biBzeXN0ZW0nLAorICAgICdnaXRodWJfdXNlcic6ICdweXRlc3QtZGV2JywKKyAgICAnZ2l0aHVi
X3JlcG8nOiAncGx1Z2d5JywKKyAgICAnZ2l0aHViX2J1dHRvbic6ICd0cnVlJywKKyAgICAnZ2l0
aHViX2Jhbm5lcic6ICd0cnVlJywKKyAgICAncGFnZV93aWR0aCc6ICcxMDgwcHgnLAorICAgICdm
aXhlZF9zaWRlYmFyJzogJ2ZhbHNlJywKK30KK2h0bWxfc3RhdGljX3BhdGggPSBbJ19zdGF0aWMn
XQorCisjIE9uZSBlbnRyeSBwZXIgbWFudWFsIHBhZ2UuIExpc3Qgb2YgdHVwbGVzCisjIChzb3Vy
Y2Ugc3RhcnQgZmlsZSwgbmFtZSwgZGVzY3JpcHRpb24sIGF1dGhvcnMsIG1hbnVhbCBzZWN0aW9u
KS4KK21hbl9wYWdlcyA9IFsKKyAgICAobWFzdGVyX2RvYywgJ3BsdWdneScsIHUncGx1Z2d5IERv
Y3VtZW50YXRpb24nLAorICAgICBbYXV0aG9yXSwgMSkKK10KKworCisjIC0tIE9wdGlvbnMgZm9y
IFRleGluZm8gb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworIyBHcm91cGluZyB0aGUgZG9jdW1lbnQgdHJlZSBpbnRvIFRleGluZm8gZmlsZXMuIExp
c3Qgb2YgdHVwbGVzCisjIChzb3VyY2Ugc3RhcnQgZmlsZSwgdGFyZ2V0IG5hbWUsIHRpdGxlLCBh
dXRob3IsCisjICBkaXIgbWVudSBlbnRyeSwgZGVzY3JpcHRpb24sIGNhdGVnb3J5KQordGV4aW5m
b19kb2N1bWVudHMgPSBbCisgICAgKG1hc3Rlcl9kb2MsICdwbHVnZ3knLCB1J3BsdWdneSBEb2N1
bWVudGF0aW9uJywKKyAgICAgYXV0aG9yLCAncGx1Z2d5JywgJ09uZSBsaW5lIGRlc2NyaXB0aW9u
IG9mIHByb2plY3QuJywKKyAgICAgJ01pc2NlbGxhbmVvdXMnKSwKK10KKworIyBFeGFtcGxlIGNv
bmZpZ3VyYXRpb24gZm9yIGludGVyc3BoaW54OiByZWZlciB0byB0aGUgUHl0aG9uIHN0YW5kYXJk
IGxpYnJhcnkuCitpbnRlcnNwaGlueF9tYXBwaW5nID0geydodHRwczovL2RvY3MucHl0aG9uLm9y
Zy8nOiBOb25lfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy9maXJzdGV4
YW1wbGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL2ZpcnN0ZXhhbXBsZS5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zY2VjN2NkMjE0NDc0M2NhMWFiZmJiMmE3Y2I4MjQ4YTQ0MWQyMjkxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxlcy9maXJzdGV4YW1wbGUucHkKQEAg
LTAsMCArMSw0NCBAQAoraW1wb3J0IHBsdWdneQorCitob29rc3BlYyA9IHBsdWdneS5Ib29rc3Bl
Y01hcmtlcigibXlwcm9qZWN0IikKK2hvb2tpbXBsID0gcGx1Z2d5Lkhvb2tpbXBsTWFya2VyKCJt
eXByb2plY3QiKQorCisKK2NsYXNzIE15U3BlYyhvYmplY3QpOgorICAgICIiIkEgaG9vayBzcGVj
aWZpY2F0aW9uIG5hbWVzcGFjZS4KKyAgICAiIiIKKyAgICBAaG9va3NwZWMKKyAgICBkZWYgbXlo
b29rKHNlbGYsIGFyZzEsIGFyZzIpOgorICAgICAgICAiIiJNeSBzcGVjaWFsIGxpdHRsZSBob29r
IHRoYXQgeW91IGNhbiBjdXN0b21pemUuCisgICAgICAgICIiIgorCisKK2NsYXNzIFBsdWdpbl8x
KG9iamVjdCk6CisgICAgIiIiQSBob29rIGltcGxlbWVudGF0aW9uIG5hbWVzcGFjZS4KKyAgICAi
IiIKKyAgICBAaG9va2ltcGwKKyAgICBkZWYgbXlob29rKHNlbGYsIGFyZzEsIGFyZzIpOgorICAg
ICAgICBwcmludCgiaW5zaWRlIFBsdWdpbl8xLm15aG9vaygpIikKKyAgICAgICAgcmV0dXJuIGFy
ZzEgKyBhcmcyCisKKworY2xhc3MgUGx1Z2luXzIob2JqZWN0KToKKyAgICAiIiJBIDJuZCBob29r
IGltcGxlbWVudGF0aW9uIG5hbWVzcGFjZS4KKyAgICAiIiIKKyAgICBAaG9va2ltcGwKKyAgICBk
ZWYgbXlob29rKHNlbGYsIGFyZzEsIGFyZzIpOgorICAgICAgICBwcmludCgiaW5zaWRlIFBsdWdp
bl8yLm15aG9vaygpIikKKyAgICAgICAgcmV0dXJuIGFyZzEgLSBhcmcyCisKKworIyBjcmVhdGUg
YSBtYW5hZ2VyIGFuZCBhZGQgdGhlIHNwZWMKK3BtID0gcGx1Z2d5LlBsdWdpbk1hbmFnZXIoIm15
cHJvamVjdCIpCitwbS5hZGRfaG9va3NwZWNzKE15U3BlYykKKworIyByZWdpc3RlciBwbHVnaW5z
CitwbS5yZWdpc3RlcihQbHVnaW5fMSgpKQorcG0ucmVnaXN0ZXIoUGx1Z2luXzIoKSkKKworIyBj
YWxsIG91ciBgbXlob29rYCBob29rCityZXN1bHRzID0gcG0uaG9vay5teWhvb2soYXJnMT0xLCBh
cmcyPTIpCitwcmludChyZXN1bHRzKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFt
cGxlcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvdzNjLWltcG9y
dC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzI4MjlhNTY4N2Y0MWVlZjFiYmQ2MjQ2YjNhNjQxNWQ4M2EwNzRl
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvdzNjLWltcG9y
dC5sb2cKQEAgLTAsMCArMSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisK
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgor
Tm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9leGFtcGxl
cy9maXJzdGV4YW1wbGUucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvaW5kZXgucnN0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wbHVnZ3kvZG9jcy9pbmRleC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI2NWExMDIzZmRkNTA1
MGRiZjUzNTI5YzE1MzJjMjE0Mjg5MDg4OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5
L2RvY3MvaW5kZXgucnN0CkBAIC0wLDAgKzEsNzA1IEBACitgYHBsdWdneWBgCis9PT09PT09PT09
CisKK1RoZSBgYHB5dGVzdGBgIHBsdWdpbiBzeXN0ZW0KKyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioKK2BgcGx1Z2d5YGAgaXMgdGhlIGNyeXN0YWxsaXplZCBjb3JlIG9mIGBwbHVnaW4gbWFu
YWdlbWVudCBhbmQgaG9vaworY2FsbGluZ2BfIGZvciBgcHl0ZXN0YF8uCisKK0luIGZhY3QsIGBg
cHl0ZXN0YGAgaXMgaXRzZWxmIGNvbXBvc2VkIGFzIGEgc2V0IG9mIGBgcGx1Z2d5YGAgcGx1Z2lu
cword2hpY2ggYXJlIGludm9rZWQgaW4gc2VxdWVuY2UgYWNjb3JkaW5nIHRvIGEgd2VsbCBkZWZp
bmVkIHNldCBvZiBwcm90b2NvbHMuCitTb21lIGAyMDArIHBsdWdpbnNgXyB1c2UgYGBwbHVnZ3lg
YCB0byBleHRlbmQgYW5kIGN1c3RvbWl6ZSBgYHB5dGVzdGBgJ3MgZGVmYXVsdCBiZWhhdmlvdXIu
CisKK0luIGVzc2VuY2UsIGBgcGx1Z2d5YGAgZW5hYmxlcyBmdW5jdGlvbiBgaG9va2luZ2BfIHNv
IHlvdSBjYW4gYnVpbGQgInBsdWdnYWJsZSIgc3lzdGVtcy4KKworSG93J3MgaXQgd29yaz8KKy0t
LS0tLS0tLS0tLS0tCitBIGBwbHVnaW5gIGlzIGEgYG5hbWVzcGFjZWBfIHdoaWNoIGRlZmluZXMg
aG9vayBmdW5jdGlvbnMuCisKK2BgcGx1Z2d5YGAgbWFuYWdlcyAqcGx1Z2lucyogYnkgcmVseWlu
ZyBvbjoKKworLSBhIGhvb2sgKnNwZWNpZmljYXRpb24qIC0gZGVmaW5lcyBhIGNhbGwgc2lnbmF0
dXJlCistIGEgc2V0IG9mIGhvb2sgKmltcGxlbWVudGF0aW9ucyogLSBha2EgYGNhbGxiYWNrc2Bf
CistIHRoZSBob29rICpjYWxsZXIqIC0gYSBjYWxsIGxvb3Agd2hpY2ggY29sbGVjdHMgcmVzdWx0
cworCit3aGVyZSBmb3IgZWFjaCByZWdpc3RlcmVkIGhvb2sgKnNwZWNpZmljYXRpb24qLCBhIGhv
b2sgKmNhbGwqIHdpbGwgaW52b2tlIHVwIHRvIGBgTmBgCityZWdpc3RlcmVkIGhvb2sgKmltcGxl
bWVudGF0aW9ucyouCisKK2BgcGx1Z2d5YGAgYWNjb21wbGlzaGVzIGFsbCB0aGlzIGJ5IGltcGxl
bWVudGluZyBhIGByZXF1ZXN0LXJlc3BvbnNlIHBhdHRlcm5gXyB1c2luZyAqZnVuY3Rpb24qCitz
dWJzY3JpcHRpb25zIGFuZCBjYW4gYmUgdGhvdWdodCBvZiBhbmQgdXNlZCBhcyBhIHJ1ZGltZW50
YXJ5IGJ1c2xlc3MgYHB1Ymxpc2gtc3Vic2NyaWJlYF8KK2V2ZW50IHN5c3RlbS4KKworYGBwbHVn
Z3lgYCdzIGFwcHJvYWNoIGlzIG1lYW50IHRvIGxldCBhIGRlc2lnbmVyIHRoaW5rIGNhcmVmdWx5
IGFib3V0IHdoaWNoIG9iamVjdHMgYXJlCitleHBsaWNpdGx5IG5lZWRlZCBieSBhbiBleHRlbnNp
b24gd3JpdGVyLiBUaGlzIGlzIGluIGNvbnRyYXN0IHRvIHN1YmNsYXNzLWJhc2VkIGV4dGVuc2lv
bgorc3lzdGVtcyB3aGljaCBtYXkgZXhwb3NlIHVuZWNlc3Nhcnkgc3RhdGUgYW5kIGJlaGF2aW91
ciBvciBlbmNvdXJhZ2UgYHRpZ2h0IGNvdXBsaW5nYF8KK2luIG92ZXJseWluZyBmcmFtZXdvcmtz
LgorCisKK0EgZmlyc3QgZXhhbXBsZQorLS0tLS0tLS0tLS0tLS0tCisKKy4uIGxpdGVyYWxpbmNs
dWRlOjogZXhhbXBsZXMvZmlyc3RleGFtcGxlLnB5CisKK1J1bm5pbmcgdGhpcyBkaXJlY3RseSBn
ZXRzIHVzOjoKKworICAgICQgcHl0aG9uIGRvY3MvZXhhbXBsZXMvZmlyc3RleGFtcGxlLnB5CisK
KyAgICBpbnNpZGUgUGx1Z2luXzIubXlob29rKCkKKyAgICBpbnNpZGUgUGx1Z2luXzEubXlob29r
KCkKKyAgICBbLTEsIDNdCisKK0ZvciBtb3JlIGRldGFpbHMgYW5kIGFkdmFuY2VkIHVzYWdlIHBs
ZWFzZSByZWFkIG9uLgorCisuLiBfZGVmaW5lOgorCitEZWZpbmluZyBhbmQgQ29sbGVjdGluZyBI
b29rcworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKK0EgKnBsdWdpbiogaXMgYSBuYW1l
c3BhY2UgdHlwZSAoY3VycmVudGx5IG9uZSBvZiBhIGBgY2xhc3NgYCBvciBtb2R1bGUpCit3aGlj
aCBkZWZpbmVzIGEgc2V0IG9mICpob29rKiBmdW5jdGlvbnMuCisKK0FzIG1lbnRpb25lZCBpbiA6
cmVmOmBtYW5hZ2VgLCBhbGwgKnBsdWdpbnMqIHdoaWNoIGRlZmluZSAqaG9va3MqCithcmUgbWFu
YWdlZCBieSBhbiBpbnN0YW5jZSBvZiBhIDpweTpjbGFzczpgcGx1Z2d5LlBsdWdpbk1hbmFnZXJg
IHdoaWNoCitkZWZpbmVzIHRoZSBwcmltYXJ5IGBgcGx1Z2d5YGAgQVBJLgorCitJbiBvcmRlciBm
b3IgYSBgYFBsdWdpbk1hbmFnZXJgYCB0byBkZXRlY3QgZnVuY3Rpb25zIGluIGEgbmFtZXNwYWNl
CitpbnRlbmRlZCB0byBiZSAqaG9va3MqLCB0aGV5IG11c3QgYmUgZGVjb3JhdGVkIHVzaW5nIHNw
ZWNpYWwgYGBwbHVnZ3lgYCAqbWFya3MqLgorCisuLiBfbWFya2luZ19ob29rczoKKworTWFya2lu
ZyBob29rcworLS0tLS0tLS0tLS0tLQorVGhlIDpweTpjbGFzczpgfnBsdWdneS5Ib29rc3BlY01h
cmtlcmAgYW5kIDpweTpjbGFzczpgfnBsdWdneS5Ib29raW1wbE1hcmtlcmAKK2RlY29yYXRvcnMg
YXJlIHVzZWQgdG8gKm1hcmsqIGZ1bmN0aW9ucyBmb3IgZGV0ZWN0aW9uIGJ5IGEgYGBQbHVnaW5N
YW5hZ2VyYGA6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGZyb20gcGx1Z2d5IGlt
cG9ydCBIb29rc3BlY01hcmtlciwgSG9va2ltcGxNYXJrZXIKKworICAgIGhvb2tzcGVjID0gSG9v
a3NwZWNNYXJrZXIoJ3Byb2plY3RfbmFtZScpCisgICAgaG9va2ltcGwgPSBIb29raW1wbE1hcmtl
cigncHJvamVjdF9uYW1lJykKKworCitFYWNoIGRlY29yYXRvciB0eXBlIHRha2VzIGEgc2luZ2xl
IGBgcHJvamVjdF9uYW1lYGAgc3RyaW5nIGFzIGl0cworbG9uZSBhcmd1bWVudCB0aGUgdmFsdWUg
b2Ygd2hpY2ggaXMgdXNlZCB0byBtYXJrIGhvb2tzIGZvciBkZXRlY3Rpb24gYnkKK2J5IGEgc2lt
aWxhcmx5IGNvbmZpZ3VyZWQgYGBQbHVnaW5NYW5hZ2VyYGAgaW5zdGFuY2UuCisKK1RoYXQgaXMs
IGEgKm1hcmsqIHR5cGUgY2FsbGVkIHdpdGggYGBwcm9qZWN0X25hbWVgYCByZXR1cm5zIGFuIG9i
amVjdCB3aGljaAorY2FuIGJlIHVzZWQgdG8gZGVjb3JhdGUgZnVuY3Rpb25zIHdoaWNoIHdpbGwg
dGhlbiBiZSBkZXRlY3RlZCBieSBhCitgYFBsdWdpbk1hbmFnZXJgYCB3aGljaCB3YXMgaW5zdGFu
dGlhdGVkIHdpdGggdGhlIHRoZSBzYW1lIGBgcHJvamVjdF9uYW1lYGAKK3ZhbHVlLgorCitGdXJ0
aGVybW9yZSwgZWFjaCAqaG9va2ltcGwqIG9yICpob29rc3BlYyogZGVjb3JhdG9yIGNhbiBjb25m
aWd1cmUgdGhlCit1bmRlcmx5aW5nIGNhbGwtdGltZSBiZWhhdmlvciBvZiBlYWNoICpob29rKiBv
YmplY3QgYnkgcHJvdmlkaW5nIHNwZWNpYWwKKypvcHRpb25zKiBwYXNzZWQgYXMga2V5d29yZCBh
cmd1bWVudHMuCisKKworLi4gbm90ZTo6CisgICAgVGhlIGZvbGxvd2luZyBzZWN0aW9ucyBjb3Jy
ZXNwb25kIHRvIHNpbWlsYXIgZG9jdW1lbnRhdGlvbiBpbgorICAgIGBgcHl0ZXN0YGAgZm9yIGBX
cml0aW5nIGhvb2sgZnVuY3Rpb25zYF8gYW5kIGNhbiBiZSB1c2VkCisgICAgYXMgYSBzdXBwbGVt
ZW50YXJ5IHJlc291cmNlLgorCisuLiBfaW1wbHM6CisKK0ltcGxlbWVudGF0aW9ucworLS0tLS0t
LS0tLS0tLS0tCitBIGhvb2sgKmltcGxlbWVudGF0aW9uKiAoKmhvb2tpbXBsKikgaXMganVzdCBh
IChjYWxsYmFjaykgZnVuY3Rpb24KK3doaWNoIGhhcyBiZWVuIGFwcHJvcHJpYXRlbHkgbWFya2Vk
LgorCisqaG9va2ltcGxzKiBhcmUgbG9hZGVkIGZyb20gYSBwbHVnaW4gdXNpbmcgdGhlCis6cHk6
bWV0aDpgfnBsdWdneS5QbHVnaW5NYW5hZ2VyLnJlZ2lzdGVyKClgIG1ldGhvZDoKKworLi4gY29k
ZS1ibG9jazo6IHB5dGhvbgorCisgICAgaW1wb3J0IHN5cworICAgIGZyb20gcGx1Z2d5IGltcG9y
dCBQbHVnaW5NYW5hZ2VyLCBIb29raW1wbE1hcmtlcgorCisgICAgaG9va2ltcGwgPSBIb29raW1w
bE1hcmtlcignbXlwcm9qZWN0JykKKworICAgIEBob29raW1wbAorICAgIGRlZiBzZXR1cF9wcm9q
ZWN0KGNvbmZpZywgYXJncyk6CisgICAgICAgICIiIlRoaXMgaG9vayBpcyB1c2VkIHRvIHByb2Nl
c3MgdGhlIGluaXRpYWwgY29uZmlnCisgICAgICAgIGFuZCBwb3NzaWJseSBpbnB1dCBhcmd1bWVu
dHMuCisgICAgICAgICIiIgorICAgICAgICBpZiBhcmdzOgorICAgICAgICAgICAgY29uZmlnLnBy
b2Nlc3NfYXJncyhhcmdzKQorCisgICAgICAgIHJldHVybiBjb25maWcKKworICAgIHBtID0gUGx1
Z2luTWFuYWdlcignbXlwcm9qZWN0JykKKworICAgICMgbG9hZCBhbGwgaG9va2ltcGxzIGZyb20g
dGhlIGxvY2FsIG1vZHVsZSdzIG5hbWVzcGFjZQorICAgIHBsdWdpbl9uYW1lID0gcG0ucmVnaXN0
ZXIoc3lzLm1vZHVsZXNbX19uYW1lX19dKQorCisuLiBfb3B0aW9uYWxob29rOgorCitPcHRpb25h
bCB2YWxpZGF0aW9uCiteXl5eXl5eXl5eXl5eXl5eXl5eCitOb3JtYWxseSBlYWNoICpob29raW1w
bCogc2hvdWxkIGJlIHZhbGlkYXRlZCBhIGFnYWluc3QgYSBjb3JyZXNwb25kaW5nCitob29rIDpy
ZWY6YHNwZWNpZmljYXRpb24gPHNwZWNzPmAuIElmIHlvdSB3YW50IHRvIG1ha2UgYW4gZXhjZXB0
aW9uCit0aGVuIHRoZSAqaG9va2ltcGwqIHNob3VsZCBiZSBtYXJrZWQgd2l0aCB0aGUgYGAib3B0
aW9uYWxob29rImBgIG9wdGlvbjoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgQGhv
b2tpbXBsKG9wdGlvbmFsaG9vaz1UcnVlKQorICAgIGRlZiBzZXR1cF9wcm9qZWN0KGNvbmZpZywg
YXJncyk6CisgICAgICAgICIiIlRoaXMgaG9vayBpcyB1c2VkIHRvIHByb2Nlc3MgdGhlIGluaXRp
YWwgY29uZmlnCisgICAgICAgIGFuZCBwb3NzaWJseSBpbnB1dCBhcmd1bWVudHMuCisgICAgICAg
ICIiIgorICAgICAgICBpZiBhcmdzOgorICAgICAgICAgICAgY29uZmlnLnByb2Nlc3NfYXJncyhh
cmdzKQorCisgICAgICAgIHJldHVybiBjb25maWcKKworQ2FsbCB0aW1lIG9yZGVyCiteXl5eXl5e
Xl5eXl5eXl4KK0J5IGRlZmF1bHQgaG9va3MgYXJlIDpyZWY6YGNhbGxlZCA8Y2FsbGluZz5gIGlu
IExJRk8gcmVnaXN0ZXJlZCBvcmRlciwgaG93ZXZlciwKK2EgKmhvb2tpbXBsKiBjYW4gaW5mbHVl
bmNlIGl0cyBjYWxsLXRpbWUgaW52b2NhdGlvbiBwb3NpdGlvbiB1c2luZyBzcGVjaWFsCithdHRy
aWJ1dGVzLiBJZiBtYXJrZWQgd2l0aCBhIGBgInRyeWZpcnN0ImBgIG9yIGBgInRyeWxhc3QiYGAg
b3B0aW9uIGl0Cit3aWxsIGJlIGV4ZWN1dGVkICpmaXJzdCogb3IgKmxhc3QqIHJlc3BlY3RpdmVs
eSBpbiB0aGUgaG9vayBjYWxsIGxvb3A6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAg
IGltcG9ydCBzeXMKKyAgICBmcm9tIHBsdWdneSBpbXBvcnQgUGx1Z2luTWFuYWdlciwgSG9va2lt
cGxNYXJrZXIKKworICAgIGhvb2tpbXBsID0gSG9va2ltcGxNYXJrZXIoJ215cHJvamVjdCcpCisK
KyAgICBAaG9va2ltcGwodHJ5bGFzdD1UcnVlKQorICAgIGRlZiBzZXR1cF9wcm9qZWN0KGNvbmZp
ZywgYXJncyk6CisgICAgICAgICIiIkRlZmF1bHQgaW1wbGVtZW50YXRpb24uCisgICAgICAgICIi
IgorICAgICAgICBpZiBhcmdzOgorICAgICAgICAgICAgY29uZmlnLnByb2Nlc3NfYXJncyhhcmdz
KQorCisgICAgICAgIHJldHVybiBjb25maWcKKworCisgICAgY2xhc3MgU29tZU90aGVyUGx1Z2lu
KG9iamVjdCk6CisgICAgICAgICIiIlNvbWUgb3RoZXIgcGx1Z2luIGRlZmluaW5nIHRoZSBzYW1l
IGhvb2suCisgICAgICAgICIiIgorICAgICAgICBAaG9va2ltcGwodHJ5Zmlyc3Q9VHJ1ZSkKKyAg
ICAgICAgZGVmIHNldHVwX3Byb2plY3QoY29uZmlnLCBhcmdzKToKKyAgICAgICAgICAgICIiIlJl
cG9ydCB3aGF0IGFyZ3Mgd2VyZSBwYXNzZWQgYmVmb3JlIGNhbGxpbmcKKyAgICAgICAgICAgIGRv
d25zdHJlYW0gaG9va3MuCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGlmIGFyZ3M6Cisg
ICAgICAgICAgICAgICAgcHJpbnQoIkdvdCBhcmdzOiB7fSIuZm9ybWF0KGFyZ3MpKQorCisgICAg
ICAgICAgICByZXR1cm4gY29uZmlnCisKKyAgICBwbSA9IFBsdWdpbk1hbmFnZXIoJ215cHJvamVj
dCcpCisKKyAgICAjIGxvYWQgZnJvbSB0aGUgbG9jYWwgbW9kdWxlJ3MgbmFtZXNwYWNlCisgICAg
cG0ucmVnaXN0ZXIoc3lzLm1vZHVsZXNbX19uYW1lX19dKQorICAgICMgbG9hZCBhIHBsdWdpbiBk
ZWZpbmVkIG9uIGEgY2xhc3MKKyAgICBwbS5yZWdpc3RlcihTb21lUGx1Z2luKCkpCisKK0ZvciBh
bm90aGVyIGV4YW1wbGUgc2VlIHRoZSBgaG9vayBmdW5jdGlvbiBvcmRlcmluZ2BfIHNlY3Rpb24g
b2YgdGhlCitgYHB5dGVzdGBgIGRvY3MuCisKKy4uIG5vdGU6OgorICAgIGBgdHJ5Zmlyc3RgYCBh
bmQgYGB0cnlsYXN0YGAgaG9va3MgYXJlIHN0aWxsIGludm9rZWQgaW4gTElGTyBvcmRlciB3aXRo
aW4KKyAgICBlYWNoIGNhdGVnb3J5LgorCitXcmFwcGVycworXl5eXl5eXl4KK0EgKmhvb2tpbXBs
KiBjYW4gYmUgbWFya2VkIHdpdGggYSBgYCJob29rd3JhcHBlciJgYCBvcHRpb24gd2hpY2ggaW5k
aWNhdGVzIHRoYXQKK3RoZSBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB0byAqd3JhcCogKG9yIHN1
cnJvdW5kKSBhbGwgb3RoZXIgbm9ybWFsICpob29raW1wbCoKK2NhbGxzLiBBICpob29rd3JhcHBl
ciogY2FuIHRodXMgZXhlY3V0ZSBzb21lIGNvZGUgYWhlYWQgYW5kIGFmdGVyIHRoZSBleGVjdXRp
b24KK29mIGFsbCBjb3JyZXNwb25kaW5nIG5vbi13cmFwcHBlciAqaG9va2ltcGxzKi4KKworTXVj
aCBpbiB0aGUgc2FtZSB3YXkgYXMgYSBgQGNvbnRleHRsaWIuY29udGV4dG1hbmFnZXJgXywgKmhv
b2t3cmFwcGVycyogbXVzdAorYmUgaW1wbGVtZW50ZWQgYXMgZ2VuZXJhdG9yIGZ1bmN0aW9uIHdp
dGggYSBzaW5nbGUgYGB5aWVsZGBgIGluIGl0cyBib2R5OgorCisKKy4uIGNvZGUtYmxvY2s6OiBw
eXRob24KKworICAgIEBob29raW1wbChob29rd3JhcHBlcj1UcnVlKQorICAgIGRlZiBzZXR1cF9w
cm9qZWN0KGNvbmZpZywgYXJncyk6CisgICAgICAgICIiIldyYXAgY2FsbHMgdG8gYGBzZXR1cF9w
cm9qZWN0KClgYCBpbXBsZW1lbnRhdGlvbnMgd2hpY2gKKyAgICAgICAgc2hvdWxkIHJldHVybiBq
c29uIGVuY29kZWQgY29uZmlnIG9wdGlvbnMuCisgICAgICAgICIiIgorICAgICAgICBpZiBjb25m
aWcuZGVidWc6CisgICAgICAgICAgICBwcmludCgiUHJlLWhvb2sgY29uZmlnIGlzIHt9Ii5mb3Jt
YXQoCisgICAgICAgICAgICAgICAgY29uZmlnLnRvanNvbigpKSkKKworICAgICAgICAjIGdldCBp
bml0aWFsIGRlZmF1bHQgY29uZmlnCisgICAgICAgIGRlZmF1bHRzID0gY29uZmlnLnRvanNvbigp
CisKKyAgICAgICAgIyBhbGwgY29ycmVzcG9uZGluZyBob29raW1wbHMgYXJlIGludm9rZWQgaGVy
ZQorICAgICAgICBvdXRjb21lID0geWllbGQKKworICAgICAgICBmb3IgaXRlbSBpbiBvdXRjb21l
LmdldF9yZXN1bHQoKToKKyAgICAgICAgICAgIHByaW50KCJKU09OIGNvbmZpZyBvdmVycmlkZSBp
cyB7fSIuZm9ybWF0KGl0ZW0pKQorCisgICAgICAgIGlmIGNvbmZpZy5kZWJ1ZzoKKyAgICAgICAg
ICAgIHByaW50KCJQb3N0LWhvb2sgY29uZmlnIGlzIHt9Ii5mb3JtYXQoCisgICAgICAgICAgICAg
ICAgY29uZmlnLnRvanNvbigpKSkKKworICAgICAgICBpZiBjb25maWcudXNlX2RlZmF1bHRzOgor
ICAgICAgICAgICAgb3V0Y29tZS5mb3JjZV9yZXN1bHQoZGVmYXVsdHMpCisKK1RoZSBnZW5lcmF0
b3IgaXMgYHNlbnRgXyBhIDpweTpjbGFzczpgcGx1Z2d5Ll9SZXN1bHRgIG9iamVjdCB3aGljaCBj
YW4KK2JlIGFzc2lnbmVkIGluIHRoZSBgYHlpZWxkYGAgZXhwcmVzc2lvbiBhbmQgdXNlZCB0byBv
dmVycmlkZSBvciBpbnNwZWN0Cit0aGUgZmluYWwgcmVzdWx0KHMpIHJldHVybmVkIGJhY2sgdG8g
dGhlIGNhbGxlciB1c2luZyB0aGUKKzpweTptZXRoOmB+cGx1Z2d5Ll9SZXN1bHQuZm9yY2VfcmVz
dWx0YCBvcgorOnB5Om1ldGg6YH5wbHVnZ3kuX1Jlc3VsdC5nZXRfcmVzdWx0YCBtZXRob2RzLgor
CisuLiBub3RlOjoKKyAgICBIb29rIHdyYXBwZXJzIGNhbiAqKm5vdCoqIHJldHVybiByZXN1bHRz
IChhcyBwZXIgZ2VuZXJhdG9yIGZ1bmN0aW9uCisgICAgc2VtYW50aWNzKTsgdGhleSBjYW4gb25s
eSBtb2RpZnkgdGhlbSB1c2luZyB0aGUgYGBfUmVzdWx0YGAgQVBJLgorCitBbHNvIHNlZSB0aGUg
YGhvb2t3cmFwcGVyYF8gc2VjdGlvbiBpbiB0aGUgYGBweXRlc3RgYCBkb2NzLgorCisuLiBfc3Bl
Y3M6CisKK1NwZWNpZmljYXRpb25zCistLS0tLS0tLS0tLS0tLQorQSBob29rICpzcGVjaWZpY2F0
aW9uKiAoKmhvb2tzcGVjKikgaXMgYSBkZWZpbml0aW9uIHVzZWQgdG8gdmFsaWRhdGUgZWFjaAor
Kmhvb2tpbXBsKiBlbnN1cmluZyB0aGF0IGFuIGV4dGVuc2lvbiB3cml0ZXIgaGFzIGNvcnJlY3Rs
eSBkZWZpbmVkIHRoZWlyCitjYWxsYmFjayBmdW5jdGlvbiAqaW1wbGVtZW50YXRpb24qIC4KKwor
Kmhvb2tzcGVjcyogYXJlIGRlZmluZWQgdXNpbmcgc2ltaWxhcmx5IG1hcmtlZCBmdW5jdGlvbnMg
aG93ZXZlciBvbmx5IHRoZQorZnVuY3Rpb24gKnNpZ25hdHVyZSogKGl0cyBuYW1lIGFuZCBuYW1l
cyBvZiBhbGwgaXRzIGFyZ3VtZW50cykgaXMgYW5hbHl6ZWQKK2FuZCBzdG9yZWQuIEFzIHN1Y2gs
IG9mdGVuIHlvdSB3aWxsIHNlZSBhICpob29rc3BlYyogZGVmaW5lZCB3aXRoIG9ubHkKK2EgZG9j
c3RyaW5nIGluIGl0cyBib2R5LgorCisqaG9va3NwZWNzKiBhcmUgbG9hZGVkIHVzaW5nIHRoZQor
OnB5Om1ldGg6YH5wbHVnZ3kuUGx1Z2luTWFuYWdlci5hZGRfaG9va3NwZWNzKClgIG1ldGhvZCBh
bmQgbm9ybWFsbHkKK3Nob3VsZCBiZSBhZGRlZCBiZWZvcmUgcmVnaXN0ZXJpbmcgY29ycmVzcG9u
ZGluZyAqaG9va2ltcGxzKjoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgaW1wb3J0
IHN5cworICAgIGZyb20gcGx1Z2d5IGltcG9ydCBQbHVnaW5NYW5hZ2VyLCBIb29rc3BlY01hcmtl
cgorCisgICAgaG9va3NwZWMgPSBIb29rc3BlY01hcmtlcignbXlwcm9qZWN0JykKKworICAgIEBo
b29rc3BlYworICAgIGRlZiBzZXR1cF9wcm9qZWN0KGNvbmZpZywgYXJncyk6CisgICAgICAgICIi
IlRoaXMgaG9vayBpcyB1c2VkIHRvIHByb2Nlc3MgdGhlIGluaXRhbCBjb25maWcgYW5kIGlucHV0
CisgICAgICAgIGFyZ3VtZW50cy4KKyAgICAgICAgIiIiCisKKyAgICBwbSA9IFBsdWdpbk1hbmFn
ZXIoJ215cHJvamVjdCcpCisKKyAgICAjIGxvYWQgZnJvbSB0aGUgbG9jYWwgbW9kdWxlJ3MgbmFt
ZXNwYWNlCisgICAgcG0uYWRkX2hvb2tzcGVjcyhzeXMubW9kdWxlc1tfX25hbWVfX10pCisKKwor
UmVnaXN0ZXJpbmcgYSAqaG9va2ltcGwqIHdoaWNoIGRvZXMgbm90IG1lZXQgdGhlIGNvbnN0cmFp
bnRzIG9mIGl0cworY29ycmVzcG9uZGluZyAqaG9va3NwZWMqIHdpbGwgcmVzdWx0IGluIGFuIGVy
cm9yLgorCitBICpob29rc3BlYyogY2FuIGFsc28gYmUgYWRkZWQgKiphZnRlcioqIHNvbWUgKmhv
b2tpbXBscyogaGF2ZSBiZWVuCityZWdpc3RlcmVkIGhvd2V2ZXIgdGhpcyBpcyBub3Qgbm9ybWFs
bHkgcmVjb21tZW5kZWQgYXMgaXQgcmVzdWx0cyBpbgorZGVsYXllZCBob29rIHZhbGlkYXRpb24u
CisKKy4uIG5vdGU6OgorICAgIFRoZSB0ZXJtICpob29rc3BlYyogY2FuIHNvbWV0aW1lcyByZWZl
ciB0byB0aGUgcGx1Z2luLW5hbWVzcGFjZQorICAgIHdoaWNoIGRlZmluZXMgYGBob29rc3BlY2Bg
IGRlY29yYXRlZCBmdW5jdGlvbnMgYXMgaW4gdGhlIGNhc2Ugb2YKKyAgICBgYHB5dGVzdGBgJ3Mg
YGhvb2tzcGVjIG1vZHVsZWBfCisKK0VuZm9yY2luZyBzcGVjIHZhbGlkYXRpb24KK15eXl5eXl5e
Xl5eXl5eXl5eXl5eXl5eXl4KK0J5IGRlZmF1bHQgdGhlcmUgaXMgbm8gc3RyaWN0IHJlcXVpcmVt
ZW50IHRoYXQgZWFjaCAqaG9va2ltcGwqIGhhcworYSBjb3JyZXNwb25kaW5nICpob29rc3BlYyou
IEhvd2V2ZXIsIGlmIHlvdSdkIGxpa2UgeW91IGVuZm9yY2UgdGhpcworYmVoYXZpb3IgeW91IGNh
biBydW4gYSBjaGVjayB3aXRoIHRoZQorOnB5Om1ldGg6YH5wbHVnZ3kuUGx1Z2luTWFuYWdlci5j
aGVja19wZW5kaW5nKClgIG1ldGhvZC4gSWYgeW91J2QgbGlrZQordG8gZW5mb3JjZSByZXF1aXNp
dGUgKmhvb2tzcGVjcyogYnV0IHdpdGggY2VydGFpbiBleGNlcHRpb25zIGZvciBzb21lIGhvb2tz
Cit0aGVuIG1ha2Ugc3VyZSB0byBtYXJrIHRob3NlIGhvb2tzIGFzIDpyZWY6YG9wdGlvbmFsIDxv
cHRpb25hbGhvb2s+YC4KKworT3B0LWluIGFyZ3VtZW50cworXl5eXl5eXl5eXl5eXl5eXgorVG8g
YWxsb3cgZm9yICpob29rc3BlY3MqIHRvIGV2b2x2ZSBvdmVyIHRoZSBsaWZldGltZSBvZiBhIHBy
b2plY3QsCisqaG9va2ltcGxzKiBjYW4gYWNjZXB0ICoqbGVzcyoqIGFyZ3VtZW50cyB0aGVuIGRl
ZmluZWQgaW4gdGhlIHNwZWMuCitUaGlzIGFsbG93cyBmb3IgZXh0ZW5kaW5nIGhvb2sgYXJndW1l
bnRzIChhbmQgdGh1cyBzZW1hbnRpY3MpIHdpdGhvdXQKK2JyZWFraW5nIGV4aXN0aW5nICpob29r
aW1wbHMqLgorCitJbiBvdGhlciB3b3JkcyB0aGlzIGlzIG9rOgorCisuLiBjb2RlLWJsb2NrOjog
cHl0aG9uCisKKyAgICBAaG9va3NwZWMKKyAgICBkZWYgbXlob29rKGNvbmZpZywgYXJncyk6Cisg
ICAgICAgIHBhc3MKKworICAgIEBob29raW1wbAorICAgIGRlZiBteWhvb2soYXJncyk6CisgICAg
ICAgIHByaW50KGFyZ3MpCisKKword2hlcmVhcyB0aGlzIGlzIG5vdDoKKworLi4gY29kZS1ibG9j
azo6IHB5dGhvbgorCisgICAgQGhvb2tzcGVjCisgICAgZGVmIG15aG9vayhjb25maWcsIGFyZ3Mp
OgorICAgICAgICBwYXNzCisKKyAgICBAaG9va2ltcGwKKyAgICBkZWYgbXlob29rKGNvbmZpZywg
YXJncywgZXh0cmFfYXJnKToKKyAgICAgICAgcHJpbnQoYXJncykKKworLi4gX2ZpcnN0cmVzdWx0
OgorCitGaXJzdCByZXN1bHQgb25seQorXl5eXl5eXl5eXl5eXl5eXl4KK0EgKmhvb2tzcGVjKiBj
YW4gYmUgbWFya2VkIHN1Y2ggdGhhdCB3aGVuIHRoZSAqaG9vayogaXMgY2FsbGVkIHRoZSBjYWxs
IGxvb3AKK3dpbGwgb25seSBpbnZva2UgdXAgdG8gdGhlIGZpcnN0ICpob29raW1wbCogd2hpY2gg
cmV0dXJucyBhIHJlc3VsdCBvdGhlcgordGhlbiBgYE5vbmVgYC4KKworLi4gY29kZS1ibG9jazo6
IHB5dGhvbgorCisgICAgQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCisgICAgZGVmIG15aG9v
ayhjb25maWcsIGFyZ3MpOgorICAgICAgICBwYXNzCisKK1RoaXMgY2FuIGJlIHVzZWZ1bCBmb3Ig
b3B0aW1pemluZyBhIGNhbGwgbG9vcCBmb3Igd2hpY2ggeW91IGFyZSBvbmx5CitpbnRlcmVzdGVk
IGluIGEgc2luZ2xlIGNvcmUgKmhvb2tpbXBsKi4gQW4gZXhhbXBsZSBpcyB0aGUKK2BweXRlc3Rf
Y21kbGluZV9tYWluYF8gY2VudHJhbCByb3V0aW5lIG9mIGBgcHl0ZXN0YGAuCisKK0Fsc28gc2Vl
IHRoZSBgZmlyc3QgcmVzdWx0YF8gc2VjdGlvbiBpbiB0aGUgYGBweXRlc3RgYCBkb2NzLgorCisu
LiBfaGlzdG9yaWM6CisKK0hpc3RvcmljIGhvb2tzCiteXl5eXl5eXl5eXl5eXgorWW91IGNhbiBt
YXJrIGEgKmhvb2tzcGVjKiBhcyBiZWluZyAqaGlzdG9yaWMqIG1lYW5pbmcgdGhhdCB0aGUgaG9v
aworY2FuIGJlIGNhbGxlZCB3aXRoIDpweTptZXRoOmB+cGx1Z2d5LlBsdWdpbk1hbmFnZXIuY2Fs
bF9oaXN0b3JpYygpYCAqKmJlZm9yZSoqCitoYXZpbmcgYmVlbiByZWdpc3RlcmVkOgorCisuLiBj
b2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBAaG9va3NwZWMoaGlzdG9yaWM9VHJ1ZSkKKyAgICBk
ZWYgbXlob29rKGNvbmZpZywgYXJncyk6CisgICAgICAgIHBhc3MKKworVGhlIGltcGxpY2F0aW9u
IGlzIHRoYXQgbGF0ZSByZWdpc3RlcmVkICpob29raW1wbHMqIHdpbGwgYmUgY2FsbGVkIGJhY2sK
K2ltbWVkaWF0ZWx5IGF0IHJlZ2lzdGVyIHRpbWUgYW5kICoqY2FuIG5vdCoqIHJldHVybiBhIHJl
c3VsdCB0byB0aGUgY2FsbGVyLioqCisKK1RoaXMgdHVybnMgb3V0IHRvIGJlIHBhcnRpY3VsYXJs
eSB1c2VmdWwgd2hlbiBkZWFsaW5nIHdpdGggbGF6eSBvcgorZHluYW1pY2FsbHkgbG9hZGVkIHBs
dWdpbnMuCisKK0ZvciBtb3JlIGluZm8gc2VlIDpyZWY6YGNhbGxfaGlzdG9yaWNgLgorCisKKy4u
IGxpbmtzCisuLiBfQGNvbnRleHRsaWIuY29udGV4dG1hbmFnZXI6CisgICAgaHR0cHM6Ly9kb2Nz
LnB5dGhvbi5vcmcvMy42L2xpYnJhcnkvY29udGV4dGxpYi5odG1sI2NvbnRleHRsaWIuY29udGV4
dG1hbmFnZXIKKy4uIF9weXRlc3RfY21kbGluZV9tYWluOgorICAgIGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9ibG9iL21hc3Rlci9fcHl0ZXN0L2hvb2tzcGVjLnB5I0w4MAor
Li4gX2hvb2tzcGVjIG1vZHVsZToKKyAgICBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvYmxvYi9tYXN0ZXIvX3B5dGVzdC9ob29rc3BlYy5weQorLi4gX1dyaXRpbmcgaG9vayBm
dW5jdGlvbnM6CisgICAgaHR0cDovL2RvYy5weXRlc3Qub3JnL2VuL2xhdGVzdC93cml0aW5nX3Bs
dWdpbnMuaHRtbCN3cml0aW5nLWhvb2stZnVuY3Rpb25zCisuLiBfaG9va3dyYXBwZXI6CisgICAg
aHR0cDovL2RvYy5weXRlc3Qub3JnL2VuL2xhdGVzdC93cml0aW5nX3BsdWdpbnMuaHRtbCNob29r
d3JhcHBlci1leGVjdXRpbmctYXJvdW5kLW90aGVyLWhvb2tzCisuLiBfaG9vayBmdW5jdGlvbiBv
cmRlcmluZzoKKyAgICBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L3dyaXRpbmdfcGx1
Z2lucy5odG1sI2hvb2stZnVuY3Rpb24tb3JkZXJpbmctY2FsbC1leGFtcGxlCisuLiBfZmlyc3Qg
cmVzdWx0OgorICAgIGh0dHA6Ly9kb2MucHl0ZXN0Lm9yZy9lbi9sYXRlc3Qvd3JpdGluZ19wbHVn
aW5zLmh0bWwjZmlyc3RyZXN1bHQtc3RvcC1hdC1maXJzdC1ub24tbm9uZS1yZXN1bHQKKy4uIF9z
ZW50OgorICAgIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvcmVmZXJlbmNlL2V4cHJlc3Npb25z
Lmh0bWwjZ2VuZXJhdG9yLnNlbmQKKworLi4gX21hbmFnZToKKworVGhlIFBsdWdpbiBSZWdpc3Ry
eQorKioqKioqKioqKioqKioqKioqKgorYGBwbHVnZ3lgYCBtYW5hZ2VzIHBsdWdpbnMgdXNpbmcg
aW5zdGFuY2VzIG9mIHRoZQorOnB5OmNsYXNzOmBwbHVnZ3kuUGx1Z2luTWFuYWdlcmAuCisKK0Eg
YGBQbHVnaW5NYW5hZ2VyYGAgaXMgaW5zdGFudGlhdGVkIHdpdGggYSBzaW5nbGUKK2Bgc3RyYGAg
YXJndW1lbnQsIHRoZSBgYHByb2plY3RfbmFtZWBgOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9u
CisKKyAgICBpbXBvcnQgcGx1Z2d5CisgICAgcG0gPSBwbHVnZ3kuUGx1Z2luTWFuYWdlcignbXlf
cHJvamVjdF9uYW1lJykKKworCitUaGUgYGBwcm9qZWN0X25hbWVgYCB2YWx1ZSBpcyB1c2VkIHdo
ZW4gYSBgYFBsdWdpbk1hbmFnZXJgYCBzY2FucyBmb3IgKmhvb2sqCitmdW5jdGlvbnMgOnJlZjpg
ZGVmaW5lZCBvbiBhIHBsdWdpbiA8ZGVmaW5lPmAuCitUaGlzIGFsbG93cyBmb3IgbXVsdGlwbGUK
K3BsdWdpbiBtYW5hZ2VycyBmcm9tIG11bHRpcGxlIHByb2plY3RzIHRvIGRlZmluZSBob29rcyBh
bG9uZ3NpZGUgZWFjaCBvdGhlci4KKworCitSZWdpc3RyYXRpb24KKy0tLS0tLS0tLS0tLQorRWFj
aCBgYFBsdWdpbk1hbmFnZXJgYCBtYWludGFpbnMgYSAqcGx1Z2luKiByZWdpc3RyeSB3aGVyZSBl
YWNoICpwbHVnaW4qCitjb250YWlucyBhIHNldCBvZiAqaG9va2ltcGwqIGRlZmluaXRpb25zLiBM
b2FkaW5nICpob29raW1wbCogYW5kICpob29rc3BlYyoKK2RlZmluaXRpb25zIHRvIHBvcHVsYXRl
IHRoZSByZWdpc3RyeSBpcyBkZXNjcmliZWQgaW4gZGV0YWlsIGluIHRoZSBzZWN0aW9uIG9uCis6
cmVmOmBkZWZpbmVgLgorCitJbiBzdW1tYXJ5LCB5b3UgcGFzcyBhIHBsdWdpbiBuYW1lc3BhY2Ug
b2JqZWN0IHRvIHRoZQorOnB5Om1ldGg6YH5wbHVnZ3kuUGx1Z2luTWFuYWdlci5yZWdpc3Rlcigp
YCBhbmQKKzpweTptZXRoOmB+cGx1Z2d5LlBsdWdpbk1hbmFnZXIuYWRkX2hvb2tzcGVjKClgIG1l
dGhvZHMgdG8gY29sbGVjdAoraG9vayAqaW1wbGVtZW50YXRpb25zKiBhbmQgKnNwZWNmaWNhdGlv
bnMqIGZyb20gKnBsdWdpbiogbmFtZXNwYWNlcyByZXNwZWN0aXZlbHkuCisKK1lvdSBjYW4gdW5y
ZWdpc3RlciBhbnkgKnBsdWdpbioncyBob29rcyB1c2luZworOnB5Om1ldGg6YH5wbHVnZ3kuUGx1
Z2luTWFuYWdlci51bnJlZ2lzdGVyKClgIGFuZCBjaGVjayBpZiBhIHBsdWdpbiBpcworcmVnaXN0
ZXJlZCBieSBwYXNzaW5nIGl0cyBuYW1lIHRvIHRoZQorOnB5Om1ldGg6YH5wbHVnZ3kuUGx1Z2lu
TWFuYWdlci5pc19yZWdpc3RlcmVkKClgIG1ldGhvZC4KKworTG9hZGluZyBgYHNldHVwdG9vbHNg
YCBlbnRyeSBwb2ludHMKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCitZb3Ug
Y2FuIGF1dG9tYXRpY2FsbHkgbG9hZCBwbHVnaW5zIHJlZ2lzdGVyZWQgdGhyb3VnaCBgc2V0dXB0
b29scyBlbnRyeSBwb2ludHNgXword2l0aCB0aGUgOnB5Om1ldGg6YH5wbHVnZ3kuUGx1Z2luTWFu
YWdlci5sb2FkX3NldHVwdG9vbHNfZW50cnlwb2ludHMoKWAKK21ldGhvZC4KKworQW4gZXhhbXBs
ZSB1c2Ugb2YgdGhpcyBpcyB0aGUgYHB5dGVzdCBlbnRyeSBwb2ludGBfLgorCisKK0Jsb2NraW5n
CistLS0tLS0tLQorWW91IGNhbiBibG9jayBhbnkgcGx1Z2luIGZyb20gYmVpbmcgcmVnaXN0ZXJl
ZCB1c2luZworOnB5Om1ldGg6YH5wbHVnZ3kuUGx1Z2luTWFuYWdlci5zZXRfYmxvY2tlZCgpYCBh
bmQgY2hlY2sgaWYgYSBnaXZlbgorKnBsdWdpbiogaXMgYmxvY2tlZCBieSBuYW1lIHVzaW5nIDpw
eTptZXRoOmB+cGx1Z2d5LlBsdWdpbk1hbmFnZXIuaXNfYmxvY2tlZCgpYC4KKworCitJbnNwZWN0
aW9uCistLS0tLS0tLS0tCitZb3UgY2FuIHVzZSBhIHZhcmlldHkgb2YgbWV0aG9kcyB0byBpbnNw
ZWN0IHRoZSBib3RoIHRoZSByZWdpc3RyeQorYW5kIHBhcnRpY3VsYXIgcGx1Z2lucyBpbiBpdDoK
KworLSA6cHk6bWV0aDpgfnBsdWdneS5QbHVnaW5NYW5hZ2VyLmxpc3RfbmFtZV9wbHVnaW4oKWAg
LQorICByZXR1cm4gYSBsaXN0IG9mIG5hbWUtcGx1Z2luIHBhaXJzCistIDpweTptZXRoOmB+cGx1
Z2d5LlBsdWdpbk1hbmFnZXIuZ2V0X3BsdWdpbnMoKWAgLSByZXRyaWV2ZSBhbGwgcGx1Z2lucwor
LSA6cHk6bWV0aDpgfnBsdWdneS5QbHVnaW5NYW5hZ2VyLmdldF9jYW5vbmljYWxfbmFtZSgpYC0g
Z2V0IGEgKnBsdWdpbioncworICBjYW5vbmljYWwgbmFtZSAodGhlIG5hbWUgaXQgd2FzIHJlZ2lz
dGVyZWQgd2l0aCkKKy0gOnB5Om1ldGg6YH5wbHVnZ3kuUGx1Z2luTWFuYWdlci5nZXRfcGx1Z2lu
KClgIC0gcmV0cmlldmUgYSBwbHVnaW4gYnkgaXRzCisgIGNhbm9uaWNhbCBuYW1lCisKKworUGFy
c2luZyBtYXJrIG9wdGlvbnMKK15eXl5eXl5eXl5eXl5eXl5eXl5eCitZb3UgY2FuIHJldHJpZXZl
IHRoZSAqb3B0aW9ucyogYXBwbGllZCB0byBhIHBhcnRpY3VsYXIKKypob29rc3BlYyogb3IgKmhv
b2tpbXBsKiBhcyBwZXIgOnJlZjpgbWFya2luZ19ob29rc2AgdXNpbmcgdGhlCis6cHk6bWV0aDpg
fnBsdWdneS5QbHVnaW5NYW5hZ2VyLnBhcnNlX2hvb2tzcGVjX29wdHMoKWAgYW5kCis6cHk6bWV0
aDpgfnBsdWdneS5QbHVnaW5NYW5hZ2VyLnBhcnNlX2hvb2tpbXBsX29wdHMoKWAgcmVzcGVjdGl2
ZWx5LgorCisuLiBsaW5rcworLi4gX3NldHVwdG9vbHMgZW50cnkgcG9pbnRzOgorICAgIGh0dHA6
Ly9zZXR1cHRvb2xzLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC9zZXR1cHRvb2xzLmh0bWwjZHlu
YW1pYy1kaXNjb3Zlcnktb2Ytc2VydmljZXMtYW5kLXBsdWdpbnMKKy4uIF9weXRlc3QgZW50cnkg
cG9pbnQ6CisgICAgaHR0cDovL2RvYy5weXRlc3Qub3JnL2VuL2xhdGVzdC93cml0aW5nX3BsdWdp
bnMuaHRtbCNzZXR1cHRvb2xzLWVudHJ5LXBvaW50cworCisKKy4uIF9jYWxsaW5nOgorCitDYWxs
aW5nIEhvb2tzCisqKioqKioqKioqKioqCitUaGUgY29yZSBmdW5jdGlvbmFsaXR5IG9mIGBgcGx1
Z2d5YGAgZW5hYmxlcyBhbiBleHRlbnNpb24gcHJvdmlkZXIKK3RvIG92ZXJyaWRlIGZ1bmN0aW9u
IGNhbGxzIG1hZGUgYXQgY2VydGFpbiBwb2ludHMgdGhyb3VnaG91dCBhIHByb2dyYW0uCisKK0Eg
cGFydGljdWxhciAqaG9vayogaXMgaW52b2tlZCBieSBjYWxsaW5nIGFuIGluc3RhbmNlIG9mCith
IDpweTpjbGFzczpgcGx1Z2d5Ll9Ib29rQ2FsbGVyYCB3aGljaCBpbiB0dXJuICpsb29wcyogdGhy
b3VnaCB0aGUKK2BgMTpOYGAgcmVnaXN0ZXJlZCAqaG9va2ltcGxzKiBhbmQgY2FsbHMgdGhlbSBp
biBzZXF1ZW5jZS4KKworRXZlcnkgOnB5OmNsYXNzOmBwbHVnZ3kuUGx1Z2luTWFuYWdlcmAgaGFz
IGEgYGBob29rYGAgYXR0cmlidXRlCit3aGljaCBpcyBhbiBpbnN0YW5jZSBvZiB0aGlzIDpweTpj
bGFzczpgcGx1Z2d5Ll9Ib29rUmVsYXlgLgorVGhlIGBgX0hvb2tSZWxheWBgIGl0c2VsZiBjb250
YWlucyByZWZlcmVuY2VzIChieSBob29rIG5hbWUpIHRvIGVhY2gKK3JlZ2lzdGVyZWQgKmhvb2tp
bXBsKidzIGBgX0hvb2tDYWxsZXJgYCBpbnN0YW5jZS4KKworTW9yZSBwcmFjdGljYWxseSB5b3Ug
Y2FsbCBhICpob29rKiBsaWtlIHNvOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBp
bXBvcnQgc3lzCisgICAgaW1wb3J0IHBsdWdneQorICAgIGltcG9ydCBteXBsdWdpbnNwZWMKKyAg
ICBpbXBvcnQgbXlwbHVnaW4KKyAgICBmcm9tIGNvbmZpZ3VyYXRpb24gaW1wb3J0IGNvbmZpZwor
CisgICAgcG0gPSBwbHVnZ3kuUGx1Z2luTWFuYWdlcigibXlwcm9qZWN0IikKKyAgICBwbS5hZGRf
aG9va3NwZWNzKG15cGx1Z2luc3BlYykKKyAgICBwbS5yZWdpc3RlcihteXBsdWdpbikKKworICAg
ICMgd2UgaW52b2tlIHRoZSBfSG9va0NhbGxlciBhbmQgdGh1cyBhbGwgdW5kZXJseWluZyBob29r
aW1wbHMKKyAgICByZXN1bHRfbGlzdCA9IHBtLmhvb2subXlob29rKGNvbmZpZz1jb25maWcsIGFy
Z3M9c3lzLmFyZ3YpCisKK05vdGUgdGhhdCB5b3UgKiptdXN0KiogY2FsbCBob29rcyB1c2luZyBr
ZXl3b3JkIGBhcmd1bWVudHNgXyBzeW50YXghCisKK0hvb2sgaW1wbGVtZW50YXRpb25zIGFyZSBj
YWxsZWQgaW4gTElGTyByZWdpc3RlcmVkIG9yZGVyOiAqdGhlIGxhc3QKK3JlZ2lzdGVyZWQgcGx1
Z2luJ3MgaG9va3MgYXJlIGNhbGxlZCBmaXJzdCouIEFzIGFuIGV4YW1wbGUsIHRoZSBiZWxvdwor
YXNzZXJ0aW9uIHNob3VsZCBub3QgZXJyb3I6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKwor
ICAgIGZyb20gcGx1Z2d5IGltcG9ydCBQbHVnaW5NYW5hZ2VyLCBIb29raW1wbE1hcmtlcgorCisg
ICAgaG9va2ltcGwgPSBIb29raW1wbE1hcmtlcignbXlwcm9qZWN0JykKKworICAgIGNsYXNzIFBs
dWdpbjEob2JqZWN0KToKKyAgICAgICAgZGVmIG15aG9vayhzZWxmLCBhcmdzKToKKyAgICAgICAg
ICAgICIiIkRlZmF1bHQgaW1wbGVtZW50YXRpb24uCisgICAgICAgICAgICAiIiIKKyAgICAgICAg
ICAgIHJldHVybiAxCisKKyAgICBjbGFzcyBQbHVnaW4yKG9iamVjdCk6CisgICAgICAgIGRlZiBt
eWhvb2soc2VsZiwgYXJncyk6CisgICAgICAgICAgICAiIiJEZWZhdWx0IGltcGxlbWVudGF0aW9u
LgorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICByZXR1cm4gMgorCisgICAgY2xhc3MgUGx1
Z2luMyhvYmplY3QpOgorICAgICAgICBkZWYgbXlob29rKHNlbGYsIGFyZ3MpOgorICAgICAgICAg
ICAgIiIiRGVmYXVsdCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgICAgICIiIgorICAgICAgICAg
ICAgcmV0dXJuIDMKKworICAgIHBtID0gUGx1Z2luTWFuYWdlcignbXlwcm9qZWN0JykKKyAgICBw
bS5yZWdpc3RlcihQbHVnaW4xKCkpCisgICAgcG0ucmVnaXN0ZXIoUGx1Z2luMigpKQorICAgIHBt
LnJlZ2lzdGVyKFBsdWdpbjMoKSkKKworICAgIGFzc2VydCBwbS5ob29rLm15aG9vayhhcmdzPSgp
KSA9PSBbMywgMiwgMV0KKworQ29sbGVjdGluZyByZXN1bHRzCistLS0tLS0tLS0tLS0tLS0tLS0K
K0J5IGRlZmF1bHQgY2FsbGluZyBhIGhvb2sgcmVzdWx0cyBpbiBhbGwgdW5kZXJseWluZyA6cmVm
OmBob29raW1wbHMKKzxpbXBscz5gIGZ1bmN0aW9ucyB0byBiZSBpbnZva2VkIGluIHNlcXVlbmNl
IHZpYSBhIGxvb3AuIEFueSBmdW5jdGlvbgord2hpY2ggcmV0dXJucyBhIHZhbHVlIG90aGVyIHRo
ZW4gYSBgYE5vbmVgYCByZXN1bHQgd2lsbCBoYXZlIHRoYXQgcmVzdWx0CithcHBlbmRlZCB0byBh
IDpweTpjbGFzczpgbGlzdGAgd2hpY2ggaXMgcmV0dXJuZWQgYnkgdGhlIGNhbGwuCisKK1RoZSBv
bmx5IGV4Y2VwdGlvbiB0byB0aGlzIGJlaGF2aW91ciBpcyBpZiB0aGUgaG9vayBoYXMgYmVlbiBt
YXJrZWQgdG8gcmV0dXJuCitpdHMgOnJlZjpgZmlyc3RyZXN1bHRgIGluIHdoaWNoIGNhc2Ugb25s
eSB0aGUgZmlyc3Qgc2luZ2xlIHZhbHVlICh3aGljaCBpcyBub3QKK2BgTm9uZWBgKSB3aWxsIGJl
IHJldHVybmVkLgorCisuLiBfY2FsbF9oaXN0b3JpYzoKKworSGlzdG9yaWMgY2FsbHMKKy0tLS0t
LS0tLS0tLS0tCitBICpoaXN0b3JpYyBjYWxsKiBhbGxvd3MgZm9yIGFsbCBuZXdseSByZWdpc3Rl
cmVkIGZ1bmN0aW9ucyB0byByZWNlaXZlIGFsbCBob29rCitjYWxscyB0aGF0IGhhcHBlbmVkIGJl
Zm9yZSB0aGVpciByZWdpc3RyYXRpb24uIFRoZSBpbXBsaWNhdGlvbiBpcyB0aGF0IHRoaXMgaXMK
K29ubHkgdXNlZnVsIGlmIHlvdSBleHBlY3QgdGhhdCBzb21lICpob29raW1wbHMqIG1heSBiZSBy
ZWdpc3RlcmVkICoqYWZ0ZXIqKiB0aGUKK2hvb2sgaXMgaW5pdGlhbGx5IGludm9rZWQuCisKK0hp
c3RvcmljIGhvb2tzIG11c3QgYmUgOnJlZjpgc3BlY2lhbGx5IG1hcmtlZCA8aGlzdG9yaWM+YCBh
bmQgY2FsbGVkCit1c2luZyB0aGUgOnB5Om1ldGg6YHBsdWdneS5fSG9va0NhbGxlci5jYWxsX2hp
c3RvcmljKClgIG1ldGhvZDoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgIyBjYWxs
IHdpdGggaGlzdG9yeTsgbm8gcmVzdWx0cyByZXR1cm5lZAorICAgIHBtLmhvb2subXlob29rLmNh
bGxfaGlzdG9yaWMoY29uZmlnPWNvbmZpZywgYXJncz1zeXMuYXJndikKKworICAgICMgLi4uIG1v
cmUgb2Ygb3VyIHByb2dyYW0gLi4uCisKKyAgICAjIGxhdGUgbG9hZGluZyBvZiBzb21lIHBsdWdp
bgorICAgIGltcG9ydCBteWxhdGVwbHVnaW4KKworICAgICMgaGlzdG9yaWMgY2FsbCBiYWNrIGlz
IGRvbmUgaGVyZQorICAgIHBtLnJlZ2lzdGVyKG15bGF0ZXBsdWdpbikKKworTm90ZSB0aGF0IGlm
IHlvdSBgYGNhbGxfaGlzdG9yaWMoKWBgIHRoZSBgYF9Ib29rQ2FsbGVyYGAgKGFuZCB0aHVzIHlv
dXIKK2NhbGxpbmcgY29kZSkgY2FuIG5vdCByZWNlaXZlIHJlc3VsdHMgYmFjayBmcm9tIHRoZSB1
bmRlcmx5aW5nICpob29raW1wbCoKK2Z1bmN0aW9ucy4KKworQ2FsbGluZyB3aXRoIGV4dHJhcwor
LS0tLS0tLS0tLS0tLS0tLS0tLQorWW91IGNhbiBjYWxsIGEgaG9vayB3aXRoIHRlbXBvcmFyaWx5
IHBhcnRpY2lwYXRpbmcgKmltcGxlbWVudGF0aW9uKiBmdW5jdGlvbnMKKyh0aGF0IGFyZW4ndCBp
biB0aGUgcmVnaXN0cnkpIHVzaW5nIHRoZQorOnB5Om1ldGg6YHBsdWdneS5fSG9va0NhbGxlci5j
YWxsX2V4dHJhKClgIG1ldGhvZC4KKworCitDYWxsaW5nIHdpdGggYSBzdWJzZXQgb2YgcmVnaXN0
ZXJlZCBwbHVnaW5zCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CitZb3UgY2FuIG1ha2UgYSBjYWxsIHVzaW5nIGEgc3Vic2V0IG9mIHBsdWdpbnMgYnkgYXNraW5n
IHRoZQorYGBQbHVnaW5NYW5hZ2VyYGAgZmlyc3QgZm9yIGEgYGBfSG9va0NhbGxlcmBgIHdpdGgg
dGhvc2UgcGx1Z2lucyByZW1vdmVkCit1c2luZyB0aGUgOnB5Om1ldGg6YHBsdWdneS5QbHVnaW5N
YW5hZ2VyLnN1YnNldF9ob29rX2NhbGxlcigpYCBtZXRob2QuCisKK1lvdSB0aGVuIGNhbiB1c2Ug
dGhhdCBgYF9Ib29rQ2FsbGVyYGAgdG8gbWFrZSBub3JtYWwsIGBgY2FsbF9oaXN0b3JpYygpYGAs
CitvciBgYGNhbGxfZXh0cmEoKWBgIGNhbGxzIGFzIG5lY2Vzc2FyeS4KKworCisuLiBsaW5rcwor
Li4gX2FyZ3VtZW50czoKKyAgICBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL2dsb3NzYXJ5Lmh0
bWwjdGVybS1hcmd1bWVudAorCisKK0J1aWx0LWluIHRyYWNpbmcKKyoqKioqKioqKioqKioqKioK
K2BgcGx1Z2d5YGAgY29tZXMgd2l0aCBzb21lIGJhdHRlcmllcyBpbmNsdWRlZCBob29rIHRyYWNp
bmcgZm9yIHlvdXIKK2RlYnVnZ2luZyBuZWVkcy4KKworCitDYWxsIHRyYWNpbmcKKy0tLS0tLS0t
LS0tLQorVG8gZW5hYmxlIHRyYWNpbmcgdXNlIHRoZQorOnB5Om1ldGg6YHBsdWdneS5QbHVnaW5N
YW5hZ2VyLmVuYWJsZV90cmFjaW5nKClgIG1ldGhvZCB3aGljaCByZXR1cm5zIGFuCit1bmRvIGZ1
bmN0aW9uIHRvIGRpc2FibGUgdGhlIGJlaGF2aW91ci4KKworLi4gY29kZS1ibG9jazo6IHB5dGhv
bgorCisgICAgcG0gPSBQbHVnaW5NYW5hZ2VyKCdteXByb2plY3QnKQorICAgICMgbWFnaWMgbGlu
ZSB0byBzZXQgYSB3cml0ZXIgZnVuY3Rpb24KKyAgICBwbS50cmFjZS5yb290LnNldHdyaXRlcihw
cmludCkKKyAgICB1bmRvID0gcG0uZW5hYmxlX3RyYWNpbmcoKQorCisKK0NhbGwgbW9uaXRvcmlu
ZworLS0tLS0tLS0tLS0tLS0tCitJbnN0ZWFkIG9mIHVzaW5nIHRoZSBidWlsdC1pbiB0cmFjaW5n
IG1lY2hhbmlzbSB5b3UgY2FuIGFsc28gYWRkIHlvdXIKK293biBgYGJlZm9yZWBgIGFuZCBgYGFm
dGVyYGAgbW9uaXRvcmluZyBmdW5jdGlvbnMgdXNpbmcKKzpweTpjbGFzczpgcGx1Z2d5LlBsdWdp
bk1hbmFnZXIuYWRkX2hvb2tjYWxsX21vbml0b3JpbmcoKWAuCisKK1RoZSBleHBlY3RlZCBzaWdu
YXR1cmUgYW5kIGRlZmF1bHQgaW1wbGVtZW50YXRpb25zIGZvciB0aGVzZSBmdW5jdGlvbnMgaXM6
CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGRlZiBiZWZvcmUoaG9va19uYW1lLCBt
ZXRob2RzLCBrd2FyZ3MpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgYWZ0ZXIob3V0Y29tZSwg
aG9va19uYW1lLCBtZXRob2RzLCBrd2FyZ3MpOgorICAgICAgICBwYXNzCisKK1B1YmxpYyBBUEkK
KyoqKioqKioqKioKK1BsZWFzZSBzZWUgdGhlIDpkb2M6YGFwaV9yZWZlcmVuY2VgLgorCitEZXZl
bG9wbWVudAorKioqKioqKioqKioKK0dyZWF0IGNhcmUgbXVzdCB0YWtlbiB3aGVuIGhhY2tpbmcg
b24gYGBwbHVnZ3lgYCBzaW5jZSBtdWx0aXBsZSBtYXR1cmUKK3Byb2plY3RzIHJlbHkgb24gaXQu
IE91ciBHaXRodWIgaW50ZWdyYXRlZCBDSSBwcm9jZXNzIHJ1bnMgdGhlIGZ1bGwKK2B0b3ggdGVz
dCBzdWl0ZWBfIG9uIGVhY2ggY29tbWl0IHNvIGJlIHN1cmUgeW91ciBjaGFuZ2VzIGNhbiBydW4g
b24KK2FsbCByZXF1aXJlZCBgUHl0aG9uIGludGVycHJldGVyc2BfIGFuZCBgYHB5dGVzdGBgIHZl
cnNpb25zLgorCitSZWxlYXNlIFBvbGljeQorKioqKioqKioqKioqKioKK1BsdWdneSB1c2VzIGBT
ZW1hbnRpYyBWZXJzaW9uaW5nYF8uIEJyZWFraW5nIGNoYW5nZXMgYXJlIG9ubHkgZm9yZXNlZW4g
Zm9yCitNYWpvciByZWxlYXNlcyAoaW5jcmVtZW50ZWQgWCBpbiAiWC5ZLloiKS4gIElmIHlvdSB3
YW50IHRvIHVzZSBgYHBsdWdneWBgCitpbiB5b3VyIHByb2plY3QgeW91IHNob3VsZCB0aHVzIHVz
ZSBhIGRlcGVuZGVuY3kgcmVzdHJpY3Rpb24gbGlrZQorYGAicGx1Z2d5Pj0wLjEuMCw8MS4wImBg
IHRvIGF2b2lkIHN1cnByaXNlcy4KKworCisuLiBoeXBlcmxpbmtzCisuLiBfcHl0ZXN0OgorICAg
IGh0dHA6Ly9weXRlc3Qub3JnCisuLiBfcmVxdWVzdC1yZXNwb25zZSBwYXR0ZXJuOgorICAgIGh0
dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1JlcXVlc3QlRTIlODAlOTNyZXNwb25zZQorLi4g
X3B1Ymxpc2gtc3Vic2NyaWJlOgorICAgIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1B1
Ymxpc2glRTIlODAlOTNzdWJzY3JpYmVfcGF0dGVybgorLi4gX2hvb2tpbmc6CisgICAgaHR0cHM6
Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSG9va2luZworLi4gX3BsdWdpbiBtYW5hZ2VtZW50IGFu
ZCBob29rIGNhbGxpbmc6CisgICAgaHR0cDovL2RvYy5weXRlc3Qub3JnL2VuL2xhdGVzdC93cml0
aW5nX3BsdWdpbnMuaHRtbAorLi4gX25hbWVzcGFjZToKKyAgICBodHRwczovL2RvY3MucHl0aG9u
Lm9yZy8zLjYvdHV0b3JpYWwvY2xhc3Nlcy5odG1sI3B5dGhvbi1zY29wZXMtYW5kLW5hbWVzcGFj
ZXMKKy4uIF9jYWxsYmFja3M6CisgICAgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQ2Fs
bGJhY2tfKGNvbXB1dGVyX3Byb2dyYW1taW5nKQorLi4gX3RveCB0ZXN0IHN1aXRlOgorICAgIGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS9ibG9iL21hc3Rlci90b3guaW5pCisu
LiBfU2VtYW50aWMgVmVyc2lvbmluZzoKKyAgICBodHRwOi8vc2VtdmVyLm9yZy8KKy4uIF90aWdo
dCBjb3VwbGluZzoKKyAgICBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Db3VwbGluZ18l
Mjhjb21wdXRlcl9wcm9ncmFtbWluZyUyOSNUeXBlc19vZl9jb3VwbGluZworLi4gX1B5dGhvbiBp
bnRlcnByZXRlcnM6CisgICAgaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcGx1Z2d5L2Js
b2IvbWFzdGVyL3RveC5pbmkjTDIKKy4uIF8yMDArIHBsdWdpbnM6CisgICAgaHR0cDovL3BsdWdp
bmNvbXBhdC5oZXJva3VhcHAuY29tLworCisKKy4uIEluZGljZXMgYW5kIHRhYmxlcworLi4gPT09
PT09PT09PT09PT09PT09CisuLiAqIDpyZWY6YGdlbmluZGV4YAorLi4gKiA6cmVmOmBtb2RpbmRl
eGAKKy4uICogOnJlZjpgc2VhcmNoYApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy93M2Mt
aW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZGMzZTZhMzNmMGQ4YTlkN2RjMWExODk5ODRhYTM1NTBiNGU3OWFjOQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGx1Z2d5L2RvY3MvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOSBAQAorVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0lu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczov
L2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmls
ZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9hcGlfcmVmZXJlbmNlLnJzdAorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2Rv
Y3MvY29uZi5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvaW5kZXgucnN0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BsdWdneS9wbHVnZ3kvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9wbHVnZ3kvX19pbml0X18u
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYWI1MTc1ZDk1NjYxNGIwMmYzZWU1YWE4YmM5MzMxODNlYjc1MTIzMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3BsdWdneS9fX2luaXRfXy5weQpAQCAtMCww
ICsxLDY4NCBAQAoraW1wb3J0IGluc3BlY3QKK2ltcG9ydCB3YXJuaW5ncworZnJvbSAuY2FsbGVy
cyBpbXBvcnQgX211bHRpY2FsbCwgSG9va0NhbGxFcnJvciwgX1Jlc3VsdCwgX2xlZ2FjeW11bHRp
Y2FsbAorCitfX3ZlcnNpb25fXyA9ICcwLjUuMy5kZXYnCisKK19fYWxsX18gPSBbIlBsdWdpbk1h
bmFnZXIiLCAiUGx1Z2luVmFsaWRhdGlvbkVycm9yIiwgIkhvb2tDYWxsRXJyb3IiLAorICAgICAg
ICAgICAiSG9va3NwZWNNYXJrZXIiLCAiSG9va2ltcGxNYXJrZXIiXQorCisKK2NsYXNzIFBsdWdp
blZhbGlkYXRpb25FcnJvcihFeGNlcHRpb24pOgorICAgICIiIiBwbHVnaW4gZmFpbGVkIHZhbGlk
YXRpb24uICIiIgorCisKK2NsYXNzIEhvb2tzcGVjTWFya2VyKG9iamVjdCk6CisgICAgIiIiIERl
Y29yYXRvciBoZWxwZXIgY2xhc3MgZm9yIG1hcmtpbmcgZnVuY3Rpb25zIGFzIGhvb2sgc3BlY2lm
aWNhdGlvbnMuCisKKyAgICBZb3UgY2FuIGluc3RhbnRpYXRlIGl0IHdpdGggYSBwcm9qZWN0X25h
bWUgdG8gZ2V0IGEgZGVjb3JhdG9yLgorICAgIENhbGxpbmcgUGx1Z2luTWFuYWdlci5hZGRfaG9v
a3NwZWNzIGxhdGVyIHdpbGwgZGlzY292ZXIgYWxsIG1hcmtlZCBmdW5jdGlvbnMKKyAgICBpZiB0
aGUgUGx1Z2luTWFuYWdlciB1c2VzIHRoZSBzYW1lIHByb2plY3RfbmFtZS4KKyAgICAiIiIKKwor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwcm9qZWN0X25hbWUpOgorICAgICAgICBzZWxmLnByb2pl
Y3RfbmFtZSA9IHByb2plY3RfbmFtZQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGZ1bmN0aW9u
PU5vbmUsIGZpcnN0cmVzdWx0PUZhbHNlLCBoaXN0b3JpYz1GYWxzZSk6CisgICAgICAgICIiIiBp
ZiBwYXNzZWQgYSBmdW5jdGlvbiwgZGlyZWN0bHkgc2V0cyBhdHRyaWJ1dGVzIG9uIHRoZSBmdW5j
dGlvbgorICAgICAgICB3aGljaCB3aWxsIG1ha2UgaXQgZGlzY292ZXJhYmxlIHRvIGFkZF9ob29r
c3BlY3MoKS4gIElmIHBhc3NlZCBubworICAgICAgICBmdW5jdGlvbiwgcmV0dXJucyBhIGRlY29y
YXRvciB3aGljaCBjYW4gYmUgYXBwbGllZCB0byBhIGZ1bmN0aW9uCisgICAgICAgIGxhdGVyIHVz
aW5nIHRoZSBhdHRyaWJ1dGVzIHN1cHBsaWVkLgorCisgICAgICAgIElmIGZpcnN0cmVzdWx0IGlz
IFRydWUgdGhlIDE6TiBob29rIGNhbGwgKE4gYmVpbmcgdGhlIG51bWJlciBvZiByZWdpc3RlcmVk
CisgICAgICAgIGhvb2sgaW1wbGVtZW50YXRpb24gZnVuY3Rpb25zKSB3aWxsIHN0b3AgYXQgSTw9
TiB3aGVuIHRoZSBJJ3RoIGZ1bmN0aW9uCisgICAgICAgIHJldHVybnMgYSBub24tTm9uZSByZXN1
bHQuCisKKyAgICAgICAgSWYgaGlzdG9yaWMgaXMgVHJ1ZSBjYWxscyB0byBhIGhvb2sgd2lsbCBi
ZSBtZW1vcml6ZWQgYW5kIHJlcGxheWVkCisgICAgICAgIG9uIGxhdGVyIHJlZ2lzdGVyZWQgcGx1
Z2lucy4KKworICAgICAgICAiIiIKKyAgICAgICAgZGVmIHNldGF0dHJfaG9va3NwZWNfb3B0cyhm
dW5jKToKKyAgICAgICAgICAgIGlmIGhpc3RvcmljIGFuZCBmaXJzdHJlc3VsdDoKKyAgICAgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJjYW5ub3QgaGF2ZSBhIGhpc3RvcmljIGZpcnN0cmVz
dWx0IGhvb2siKQorICAgICAgICAgICAgc2V0YXR0cihmdW5jLCBzZWxmLnByb2plY3RfbmFtZSAr
ICJfc3BlYyIsCisgICAgICAgICAgICAgICAgICAgIGRpY3QoZmlyc3RyZXN1bHQ9Zmlyc3RyZXN1
bHQsIGhpc3RvcmljPWhpc3RvcmljKSkKKyAgICAgICAgICAgIHJldHVybiBmdW5jCisKKyAgICAg
ICAgaWYgZnVuY3Rpb24gaXMgbm90IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gc2V0YXR0cl9o
b29rc3BlY19vcHRzKGZ1bmN0aW9uKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJu
IHNldGF0dHJfaG9va3NwZWNfb3B0cworCisKK2NsYXNzIEhvb2tpbXBsTWFya2VyKG9iamVjdCk6
CisgICAgIiIiIERlY29yYXRvciBoZWxwZXIgY2xhc3MgZm9yIG1hcmtpbmcgZnVuY3Rpb25zIGFz
IGhvb2sgaW1wbGVtZW50YXRpb25zLgorCisgICAgWW91IGNhbiBpbnN0YW50aWF0ZSB3aXRoIGEg
cHJvamVjdF9uYW1lIHRvIGdldCBhIGRlY29yYXRvci4KKyAgICBDYWxsaW5nIFBsdWdpbk1hbmFn
ZXIucmVnaXN0ZXIgbGF0ZXIgd2lsbCBkaXNjb3ZlciBhbGwgbWFya2VkIGZ1bmN0aW9ucworICAg
IGlmIHRoZSBQbHVnaW5NYW5hZ2VyIHVzZXMgdGhlIHNhbWUgcHJvamVjdF9uYW1lLgorICAgICIi
IgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwcm9qZWN0X25hbWUpOgorICAgICAgICBzZWxmLnBy
b2plY3RfbmFtZSA9IHByb2plY3RfbmFtZQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGZ1bmN0
aW9uPU5vbmUsIGhvb2t3cmFwcGVyPUZhbHNlLCBvcHRpb25hbGhvb2s9RmFsc2UsCisgICAgICAg
ICAgICAgICAgIHRyeWZpcnN0PUZhbHNlLCB0cnlsYXN0PUZhbHNlKToKKworICAgICAgICAiIiIg
aWYgcGFzc2VkIGEgZnVuY3Rpb24sIGRpcmVjdGx5IHNldHMgYXR0cmlidXRlcyBvbiB0aGUgZnVu
Y3Rpb24KKyAgICAgICAgd2hpY2ggd2lsbCBtYWtlIGl0IGRpc2NvdmVyYWJsZSB0byByZWdpc3Rl
cigpLiAgSWYgcGFzc2VkIG5vIGZ1bmN0aW9uLAorICAgICAgICByZXR1cm5zIGEgZGVjb3JhdG9y
IHdoaWNoIGNhbiBiZSBhcHBsaWVkIHRvIGEgZnVuY3Rpb24gbGF0ZXIgdXNpbmcKKyAgICAgICAg
dGhlIGF0dHJpYnV0ZXMgc3VwcGxpZWQuCisKKyAgICAgICAgSWYgb3B0aW9uYWxob29rIGlzIFRy
dWUgYSBtaXNzaW5nIG1hdGNoaW5nIGhvb2sgc3BlY2lmaWNhdGlvbiB3aWxsIG5vdCByZXN1bHQK
KyAgICAgICAgaW4gYW4gZXJyb3IgKGJ5IGRlZmF1bHQgaXQgaXMgYW4gZXJyb3IgaWYgbm8gbWF0
Y2hpbmcgc3BlYyBpcyBmb3VuZCkuCisKKyAgICAgICAgSWYgdHJ5Zmlyc3QgaXMgVHJ1ZSB0aGlz
IGhvb2sgaW1wbGVtZW50YXRpb24gd2lsbCBydW4gYXMgZWFybHkgYXMgcG9zc2libGUKKyAgICAg
ICAgaW4gdGhlIGNoYWluIG9mIE4gaG9vayBpbXBsZW1lbnRhdGlvbnMgZm9yIGEgc3BlY2ZpY2F0
aW9uLgorCisgICAgICAgIElmIHRyeWxhc3QgaXMgVHJ1ZSB0aGlzIGhvb2sgaW1wbGVtZW50YXRp
b24gd2lsbCBydW4gYXMgbGF0ZSBhcyBwb3NzaWJsZQorICAgICAgICBpbiB0aGUgY2hhaW4gb2Yg
TiBob29rIGltcGxlbWVudGF0aW9ucy4KKworICAgICAgICBJZiBob29rd3JhcHBlciBpcyBUcnVl
IHRoZSBob29rIGltcGxlbWVudGF0aW9ucyBuZWVkcyB0byBleGVjdXRlIGV4YWN0bHkKKyAgICAg
ICAgb25lICJ5aWVsZCIuICBUaGUgY29kZSBiZWZvcmUgdGhlIHlpZWxkIGlzIHJ1biBlYXJseSBi
ZWZvcmUgYW55IG5vbi1ob29rd3JhcHBlcgorICAgICAgICBmdW5jdGlvbiBpcyBydW4uICBUaGUg
Y29kZSBhZnRlciB0aGUgeWllbGQgaXMgcnVuIGFmdGVyIGFsbCBub24taG9va3dyYXBwZXIKKyAg
ICAgICAgZnVuY3Rpb24gaGF2ZSBydW4uICBUaGUgeWllbGQgcmVjZWl2ZXMgYSBgYF9SZXN1bHRg
YCBvYmplY3QgcmVwcmVzZW50aW5nCisgICAgICAgIHRoZSBleGNlcHRpb24gb3IgcmVzdWx0IG91
dGNvbWUgb2YgdGhlIGlubmVyIGNhbGxzIChpbmNsdWRpbmcgb3RoZXIgaG9va3dyYXBwZXIKKyAg
ICAgICAgY2FsbHMpLgorCisgICAgICAgICIiIgorICAgICAgICBkZWYgc2V0YXR0cl9ob29raW1w
bF9vcHRzKGZ1bmMpOgorICAgICAgICAgICAgc2V0YXR0cihmdW5jLCBzZWxmLnByb2plY3RfbmFt
ZSArICJfaW1wbCIsCisgICAgICAgICAgICAgICAgICAgIGRpY3QoaG9va3dyYXBwZXI9aG9va3dy
YXBwZXIsIG9wdGlvbmFsaG9vaz1vcHRpb25hbGhvb2ssCisgICAgICAgICAgICAgICAgICAgICAg
ICAgdHJ5Zmlyc3Q9dHJ5Zmlyc3QsIHRyeWxhc3Q9dHJ5bGFzdCkpCisgICAgICAgICAgICByZXR1
cm4gZnVuYworCisgICAgICAgIGlmIGZ1bmN0aW9uIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1
cm4gc2V0YXR0cl9ob29raW1wbF9vcHRzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1
cm4gc2V0YXR0cl9ob29raW1wbF9vcHRzKGZ1bmN0aW9uKQorCisKK2RlZiBub3JtYWxpemVfaG9v
a2ltcGxfb3B0cyhvcHRzKToKKyAgICBvcHRzLnNldGRlZmF1bHQoInRyeWZpcnN0IiwgRmFsc2Up
CisgICAgb3B0cy5zZXRkZWZhdWx0KCJ0cnlsYXN0IiwgRmFsc2UpCisgICAgb3B0cy5zZXRkZWZh
dWx0KCJob29rd3JhcHBlciIsIEZhbHNlKQorICAgIG9wdHMuc2V0ZGVmYXVsdCgib3B0aW9uYWxo
b29rIiwgRmFsc2UpCisKKworY2xhc3MgX1RhZ1RyYWNlcihvYmplY3QpOgorICAgIGRlZiBfX2lu
aXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5fdGFnMnByb2MgPSB7fQorICAgICAgICBzZWxmLndy
aXRlciA9IE5vbmUKKyAgICAgICAgc2VsZi5pbmRlbnQgPSAwCisKKyAgICBkZWYgZ2V0KHNlbGYs
IG5hbWUpOgorICAgICAgICByZXR1cm4gX1RhZ1RyYWNlclN1YihzZWxmLCAobmFtZSwpKQorCisg
ICAgZGVmIGZvcm1hdF9tZXNzYWdlKHNlbGYsIHRhZ3MsIGFyZ3MpOgorICAgICAgICBpZiBpc2lu
c3RhbmNlKGFyZ3NbLTFdLCBkaWN0KToKKyAgICAgICAgICAgIGV4dHJhID0gYXJnc1stMV0KKyAg
ICAgICAgICAgIGFyZ3MgPSBhcmdzWzotMV0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGV4
dHJhID0ge30KKworICAgICAgICBjb250ZW50ID0gIiAiLmpvaW4obWFwKHN0ciwgYXJncykpCisg
ICAgICAgIGluZGVudCA9ICIgICIgKiBzZWxmLmluZGVudAorCisgICAgICAgIGxpbmVzID0gWwor
ICAgICAgICAgICAgIiVzJXMgWyVzXVxuIiAlIChpbmRlbnQsIGNvbnRlbnQsICI6Ii5qb2luKHRh
Z3MpKQorICAgICAgICBdCisKKyAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIGV4dHJhLml0ZW1z
KCk6CisgICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiVzICAgICVzOiAlc1xuIiAlIChpbmRlbnQs
IG5hbWUsIHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGxpbmVzCisKKyAgICBkZWYgcHJvY2Vzc21l
c3NhZ2Uoc2VsZiwgdGFncywgYXJncyk6CisgICAgICAgIGlmIHNlbGYud3JpdGVyIGlzIG5vdCBO
b25lIGFuZCBhcmdzOgorICAgICAgICAgICAgbGluZXMgPSBzZWxmLmZvcm1hdF9tZXNzYWdlKHRh
Z3MsIGFyZ3MpCisgICAgICAgICAgICBzZWxmLndyaXRlcignJy5qb2luKGxpbmVzKSkKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5fdGFnMnByb2NbdGFnc10odGFncywgYXJncykKKyAg
ICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgcGFzcworCisgICAgZGVmIHNldHdy
aXRlcihzZWxmLCB3cml0ZXIpOgorICAgICAgICBzZWxmLndyaXRlciA9IHdyaXRlcgorCisgICAg
ZGVmIHNldHByb2Nlc3NvcihzZWxmLCB0YWdzLCBwcm9jZXNzb3IpOgorICAgICAgICBpZiBpc2lu
c3RhbmNlKHRhZ3MsIHN0cik6CisgICAgICAgICAgICB0YWdzID0gdHVwbGUodGFncy5zcGxpdCgi
OiIpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UodGFncywg
dHVwbGUpCisgICAgICAgIHNlbGYuX3RhZzJwcm9jW3RhZ3NdID0gcHJvY2Vzc29yCisKKworY2xh
c3MgX1RhZ1RyYWNlclN1YihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCByb290LCB0
YWdzKToKKyAgICAgICAgc2VsZi5yb290ID0gcm9vdAorICAgICAgICBzZWxmLnRhZ3MgPSB0YWdz
CisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgKmFyZ3MpOgorICAgICAgICBzZWxmLnJvb3QucHJv
Y2Vzc21lc3NhZ2Uoc2VsZi50YWdzLCBhcmdzKQorCisgICAgZGVmIHNldG15cHJvY2Vzc29yKHNl
bGYsIHByb2Nlc3Nvcik6CisgICAgICAgIHNlbGYucm9vdC5zZXRwcm9jZXNzb3Ioc2VsZi50YWdz
LCBwcm9jZXNzb3IpCisKKyAgICBkZWYgZ2V0KHNlbGYsIG5hbWUpOgorICAgICAgICByZXR1cm4g
c2VsZi5fX2NsYXNzX18oc2VsZi5yb290LCBzZWxmLnRhZ3MgKyAobmFtZSwpKQorCisKK2NsYXNz
IF9UcmFjZWRIb29rRXhlY3V0aW9uKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBs
dWdpbm1hbmFnZXIsIGJlZm9yZSwgYWZ0ZXIpOgorICAgICAgICBzZWxmLnBsdWdpbm1hbmFnZXIg
PSBwbHVnaW5tYW5hZ2VyCisgICAgICAgIHNlbGYuYmVmb3JlID0gYmVmb3JlCisgICAgICAgIHNl
bGYuYWZ0ZXIgPSBhZnRlcgorICAgICAgICBzZWxmLm9sZGNhbGwgPSBwbHVnaW5tYW5hZ2VyLl9p
bm5lcl9ob29rZXhlYworICAgICAgICBhc3NlcnQgbm90IGlzaW5zdGFuY2Uoc2VsZi5vbGRjYWxs
LCBfVHJhY2VkSG9va0V4ZWN1dGlvbikKKyAgICAgICAgc2VsZi5wbHVnaW5tYW5hZ2VyLl9pbm5l
cl9ob29rZXhlYyA9IHNlbGYKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBob29rLCBob29rX2lt
cGxzLCBrd2FyZ3MpOgorICAgICAgICBzZWxmLmJlZm9yZShob29rLm5hbWUsIGhvb2tfaW1wbHMs
IGt3YXJncykKKyAgICAgICAgb3V0Y29tZSA9IF9SZXN1bHQuZnJvbV9jYWxsKGxhbWJkYTogc2Vs
Zi5vbGRjYWxsKGhvb2ssIGhvb2tfaW1wbHMsIGt3YXJncykpCisgICAgICAgIHNlbGYuYWZ0ZXIo
b3V0Y29tZSwgaG9vay5uYW1lLCBob29rX2ltcGxzLCBrd2FyZ3MpCisgICAgICAgIHJldHVybiBv
dXRjb21lLmdldF9yZXN1bHQoKQorCisgICAgZGVmIHVuZG8oc2VsZik6CisgICAgICAgIHNlbGYu
cGx1Z2lubWFuYWdlci5faW5uZXJfaG9va2V4ZWMgPSBzZWxmLm9sZGNhbGwKKworCitjbGFzcyBQ
bHVnaW5NYW5hZ2VyKG9iamVjdCk6CisgICAgIiIiIENvcmUgUGx1Z2lubWFuYWdlciBjbGFzcyB3
aGljaCBtYW5hZ2VzIHJlZ2lzdHJhdGlvbgorICAgIG9mIHBsdWdpbiBvYmplY3RzIGFuZCAxOk4g
aG9vayBjYWxsaW5nLgorCisgICAgWW91IGNhbiByZWdpc3RlciBuZXcgaG9va3MgYnkgY2FsbGlu
ZyBgYGFkZF9ob29rc3BlYyhtb2R1bGVfb3JfY2xhc3MpYGAuCisgICAgWW91IGNhbiByZWdpc3Rl
ciBwbHVnaW4gb2JqZWN0cyAod2hpY2ggY29udGFpbiBob29rcykgYnkgY2FsbGluZworICAgIGBg
cmVnaXN0ZXIocGx1Z2luKWBgLiAgVGhlIFBsdWdpbm1hbmFnZXIgaXMgaW5pdGlhbGl6ZWQgd2l0
aCBhCisgICAgcHJlZml4IHRoYXQgaXMgc2VhcmNoZWQgZm9yIGluIHRoZSBuYW1lcyBvZiB0aGUg
ZGljdCBvZiByZWdpc3RlcmVkCisgICAgcGx1Z2luIG9iamVjdHMuICBBbiBvcHRpb25hbCBleGNs
dWRlZnVuYyBhbGxvd3MgdG8gYmxhY2tsaXN0IG5hbWVzIHdoaWNoCisgICAgYXJlIG5vdCBjb25z
aWRlcmVkIGFzIGhvb2tzIGRlc3BpdGUgYSBtYXRjaGluZyBwcmVmaXguCisKKyAgICBGb3IgZGVi
dWdnaW5nIHB1cnBvc2VzIHlvdSBjYW4gY2FsbCBgYGVuYWJsZV90cmFjaW5nKClgYAorICAgIHdo
aWNoIHdpbGwgc3Vic2VxdWVudGx5IHNlbmQgZGVidWcgaW5mb3JtYXRpb24gdG8gdGhlIHRyYWNl
IGhlbHBlci4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwcm9qZWN0X25hbWUs
IGltcGxwcmVmaXg9Tm9uZSk6CisgICAgICAgICIiIiBpZiBpbXBscHJlZml4IGlzIGdpdmVuIGlt
cGxlbWVudGF0aW9uIGZ1bmN0aW9ucworICAgICAgICB3aWxsIGJlIHJlY29nbml6ZWQgaWYgdGhl
aXIgbmFtZSBtYXRjaGVzIHRoZSBpbXBscHJlZml4LiAiIiIKKyAgICAgICAgc2VsZi5wcm9qZWN0
X25hbWUgPSBwcm9qZWN0X25hbWUKKyAgICAgICAgc2VsZi5fbmFtZTJwbHVnaW4gPSB7fQorICAg
ICAgICBzZWxmLl9wbHVnaW4yaG9va2NhbGxlcnMgPSB7fQorICAgICAgICBzZWxmLl9wbHVnaW5f
ZGlzdGluZm8gPSBbXQorICAgICAgICBzZWxmLnRyYWNlID0gX1RhZ1RyYWNlcigpLmdldCgicGx1
Z2lubWFuYWdlIikKKyAgICAgICAgc2VsZi5ob29rID0gX0hvb2tSZWxheShzZWxmLnRyYWNlLnJv
b3QuZ2V0KCJob29rIikpCisgICAgICAgIHNlbGYuX2ltcGxwcmVmaXggPSBpbXBscHJlZml4Cisg
ICAgICAgIHNlbGYuX2lubmVyX2hvb2tleGVjID0gbGFtYmRhIGhvb2ssIG1ldGhvZHMsIGt3YXJn
czogXAorICAgICAgICAgICAgaG9vay5tdWx0aWNhbGwoCisgICAgICAgICAgICAgICAgbWV0aG9k
cywga3dhcmdzLAorICAgICAgICAgICAgICAgIGZpcnN0cmVzdWx0PWhvb2suc3BlY19vcHRzLmdl
dCgnZmlyc3RyZXN1bHQnKSwKKyAgICAgICAgICAgICkKKworICAgIGRlZiBfaG9va2V4ZWMoc2Vs
ZiwgaG9vaywgbWV0aG9kcywga3dhcmdzKToKKyAgICAgICAgIyBjYWxsZWQgZnJvbSBhbGwgaG9v
a2NhbGxlciBpbnN0YW5jZXMuCisgICAgICAgICMgZW5hYmxlX3RyYWNpbmcgd2lsbCBzZXQgaXRz
IG93biB3cmFwcGluZyBmdW5jdGlvbiBhdCBzZWxmLl9pbm5lcl9ob29rZXhlYworICAgICAgICBy
ZXR1cm4gc2VsZi5faW5uZXJfaG9va2V4ZWMoaG9vaywgbWV0aG9kcywga3dhcmdzKQorCisgICAg
ZGVmIHJlZ2lzdGVyKHNlbGYsIHBsdWdpbiwgbmFtZT1Ob25lKToKKyAgICAgICAgIiIiIFJlZ2lz
dGVyIGEgcGx1Z2luIGFuZCByZXR1cm4gaXRzIGNhbm9uaWNhbCBuYW1lIG9yIE5vbmUgaWYgdGhl
IG5hbWUKKyAgICAgICAgaXMgYmxvY2tlZCBmcm9tIHJlZ2lzdGVyaW5nLiAgUmFpc2UgYSBWYWx1
ZUVycm9yIGlmIHRoZSBwbHVnaW4gaXMgYWxyZWFkeQorICAgICAgICByZWdpc3RlcmVkLiAiIiIK
KyAgICAgICAgcGx1Z2luX25hbWUgPSBuYW1lIG9yIHNlbGYuZ2V0X2Nhbm9uaWNhbF9uYW1lKHBs
dWdpbikKKworICAgICAgICBpZiBwbHVnaW5fbmFtZSBpbiBzZWxmLl9uYW1lMnBsdWdpbiBvciBw
bHVnaW4gaW4gc2VsZi5fcGx1Z2luMmhvb2tjYWxsZXJzOgorICAgICAgICAgICAgaWYgc2VsZi5f
bmFtZTJwbHVnaW4uZ2V0KHBsdWdpbl9uYW1lLCAtMSkgaXMgTm9uZToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gICMgYmxvY2tlZCBwbHVnaW4sIHJldHVybiBOb25lIHRvIGluZGljYXRlIG5vIHJl
Z2lzdHJhdGlvbgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiUGx1Z2luIGFscmVhZHkg
cmVnaXN0ZXJlZDogJXM9JXNcbiVzIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChw
bHVnaW5fbmFtZSwgcGx1Z2luLCBzZWxmLl9uYW1lMnBsdWdpbikpCisKKyAgICAgICAgIyBYWFgg
aWYgYW4gZXJyb3IgaGFwcGVucyB3ZSBzaG91bGQgbWFrZSBzdXJlIG5vIHN0YXRlIGhhcyBiZWVu
CisgICAgICAgICMgY2hhbmdlZCBhdCBwb2ludCBvZiByZXR1cm4KKyAgICAgICAgc2VsZi5fbmFt
ZTJwbHVnaW5bcGx1Z2luX25hbWVdID0gcGx1Z2luCisKKyAgICAgICAgIyByZWdpc3RlciBtYXRj
aGluZyBob29rIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgcGx1Z2luCisgICAgICAgIHNlbGYuX3Bs
dWdpbjJob29rY2FsbGVyc1twbHVnaW5dID0gaG9va2NhbGxlcnMgPSBbXQorICAgICAgICBmb3Ig
bmFtZSBpbiBkaXIocGx1Z2luKToKKyAgICAgICAgICAgIGhvb2tpbXBsX29wdHMgPSBzZWxmLnBh
cnNlX2hvb2tpbXBsX29wdHMocGx1Z2luLCBuYW1lKQorICAgICAgICAgICAgaWYgaG9va2ltcGxf
b3B0cyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBub3JtYWxpemVfaG9va2ltcGxfb3B0
cyhob29raW1wbF9vcHRzKQorICAgICAgICAgICAgICAgIG1ldGhvZCA9IGdldGF0dHIocGx1Z2lu
LCBuYW1lKQorICAgICAgICAgICAgICAgIGhvb2tpbXBsID0gSG9va0ltcGwocGx1Z2luLCBwbHVn
aW5fbmFtZSwgbWV0aG9kLCBob29raW1wbF9vcHRzKQorICAgICAgICAgICAgICAgIGhvb2sgPSBn
ZXRhdHRyKHNlbGYuaG9vaywgbmFtZSwgTm9uZSkKKyAgICAgICAgICAgICAgICBpZiBob29rIGlz
IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIGhvb2sgPSBfSG9va0NhbGxlcihuYW1lLCBzZWxm
Ll9ob29rZXhlYykKKyAgICAgICAgICAgICAgICAgICAgc2V0YXR0cihzZWxmLmhvb2ssIG5hbWUs
IGhvb2spCisgICAgICAgICAgICAgICAgZWxpZiBob29rLmhhc19zcGVjKCk6CisgICAgICAgICAg
ICAgICAgICAgIHNlbGYuX3ZlcmlmeV9ob29rKGhvb2ssIGhvb2tpbXBsKQorICAgICAgICAgICAg
ICAgICAgICBob29rLl9tYXliZV9hcHBseV9oaXN0b3J5KGhvb2tpbXBsKQorICAgICAgICAgICAg
ICAgIGhvb2suX2FkZF9ob29raW1wbChob29raW1wbCkKKyAgICAgICAgICAgICAgICBob29rY2Fs
bGVycy5hcHBlbmQoaG9vaykKKyAgICAgICAgcmV0dXJuIHBsdWdpbl9uYW1lCisKKyAgICBkZWYg
cGFyc2VfaG9va2ltcGxfb3B0cyhzZWxmLCBwbHVnaW4sIG5hbWUpOgorICAgICAgICBtZXRob2Qg
PSBnZXRhdHRyKHBsdWdpbiwgbmFtZSkKKyAgICAgICAgaWYgbm90IGluc3BlY3QuaXNyb3V0aW5l
KG1ldGhvZCk6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
cmVzID0gZ2V0YXR0cihtZXRob2QsIHNlbGYucHJvamVjdF9uYW1lICsgIl9pbXBsIiwgTm9uZSkK
KyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHJlcyA9IHt9CisgICAgICAg
IGlmIHJlcyBpcyBub3QgTm9uZSBhbmQgbm90IGlzaW5zdGFuY2UocmVzLCBkaWN0KToKKyAgICAg
ICAgICAgICMgZmFsc2UgcG9zaXRpdmUKKyAgICAgICAgICAgIHJlcyA9IE5vbmUKKyAgICAgICAg
ZWxpZiByZXMgaXMgTm9uZSBhbmQgc2VsZi5faW1wbHByZWZpeCBhbmQgbmFtZS5zdGFydHN3aXRo
KHNlbGYuX2ltcGxwcmVmaXgpOgorICAgICAgICAgICAgcmVzID0ge30KKyAgICAgICAgcmV0dXJu
IHJlcworCisgICAgZGVmIHVucmVnaXN0ZXIoc2VsZiwgcGx1Z2luPU5vbmUsIG5hbWU9Tm9uZSk6
CisgICAgICAgICIiIiB1bnJlZ2lzdGVyIGEgcGx1Z2luIG9iamVjdCBhbmQgYWxsIGl0cyBjb250
YWluZWQgaG9vayBpbXBsZW1lbnRhdGlvbnMKKyAgICAgICAgZnJvbSBpbnRlcm5hbCBkYXRhIHN0
cnVjdHVyZXMuICIiIgorICAgICAgICBpZiBuYW1lIGlzIE5vbmU6CisgICAgICAgICAgICBhc3Nl
cnQgcGx1Z2luIGlzIG5vdCBOb25lLCAib25lIG9mIG5hbWUgb3IgcGx1Z2luIG5lZWRzIHRvIGJl
IHNwZWNpZmllZCIKKyAgICAgICAgICAgIG5hbWUgPSBzZWxmLmdldF9uYW1lKHBsdWdpbikKKwor
ICAgICAgICBpZiBwbHVnaW4gaXMgTm9uZToKKyAgICAgICAgICAgIHBsdWdpbiA9IHNlbGYuZ2V0
X3BsdWdpbihuYW1lKQorCisgICAgICAgICMgaWYgc2VsZi5fbmFtZTJwbHVnaW5bbmFtZV0gPT0g
Tm9uZSByZWdpc3RyYXRpb24gd2FzIGJsb2NrZWQ6IGlnbm9yZQorICAgICAgICBpZiBzZWxmLl9u
YW1lMnBsdWdpbi5nZXQobmFtZSk6CisgICAgICAgICAgICBkZWwgc2VsZi5fbmFtZTJwbHVnaW5b
bmFtZV0KKworICAgICAgICBmb3IgaG9va2NhbGxlciBpbiBzZWxmLl9wbHVnaW4yaG9va2NhbGxl
cnMucG9wKHBsdWdpbiwgW10pOgorICAgICAgICAgICAgaG9va2NhbGxlci5fcmVtb3ZlX3BsdWdp
bihwbHVnaW4pCisKKyAgICAgICAgcmV0dXJuIHBsdWdpbgorCisgICAgZGVmIHNldF9ibG9ja2Vk
KHNlbGYsIG5hbWUpOgorICAgICAgICAiIiIgYmxvY2sgcmVnaXN0cmF0aW9ucyBvZiB0aGUgZ2l2
ZW4gbmFtZSwgdW5yZWdpc3RlciBpZiBhbHJlYWR5IHJlZ2lzdGVyZWQuICIiIgorICAgICAgICBz
ZWxmLnVucmVnaXN0ZXIobmFtZT1uYW1lKQorICAgICAgICBzZWxmLl9uYW1lMnBsdWdpbltuYW1l
XSA9IE5vbmUKKworICAgIGRlZiBpc19ibG9ja2VkKHNlbGYsIG5hbWUpOgorICAgICAgICAiIiIg
cmV0dXJuIFRydWUgaWYgdGhlIG5hbWUgYmxvZ3MgcmVnaXN0ZXJpbmcgcGx1Z2lucyBvZiB0aGF0
IG5hbWUuICIiIgorICAgICAgICByZXR1cm4gbmFtZSBpbiBzZWxmLl9uYW1lMnBsdWdpbiBhbmQg
c2VsZi5fbmFtZTJwbHVnaW5bbmFtZV0gaXMgTm9uZQorCisgICAgZGVmIGFkZF9ob29rc3BlY3Mo
c2VsZiwgbW9kdWxlX29yX2NsYXNzKToKKyAgICAgICAgIiIiIGFkZCBuZXcgaG9vayBzcGVjaWZp
Y2F0aW9ucyBkZWZpbmVkIGluIHRoZSBnaXZlbiBtb2R1bGVfb3JfY2xhc3MuCisgICAgICAgIEZ1
bmN0aW9ucyBhcmUgcmVjb2duaXplZCBpZiB0aGV5IGhhdmUgYmVlbiBkZWNvcmF0ZWQgYWNjb3Jk
aW5nbHkuICIiIgorICAgICAgICBuYW1lcyA9IFtdCisgICAgICAgIGZvciBuYW1lIGluIGRpciht
b2R1bGVfb3JfY2xhc3MpOgorICAgICAgICAgICAgc3BlY19vcHRzID0gc2VsZi5wYXJzZV9ob29r
c3BlY19vcHRzKG1vZHVsZV9vcl9jbGFzcywgbmFtZSkKKyAgICAgICAgICAgIGlmIHNwZWNfb3B0
cyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBoYyA9IGdldGF0dHIoc2VsZi5ob29rLCBu
YW1lLCBOb25lKQorICAgICAgICAgICAgICAgIGlmIGhjIGlzIE5vbmU6CisgICAgICAgICAgICAg
ICAgICAgIGhjID0gX0hvb2tDYWxsZXIobmFtZSwgc2VsZi5faG9va2V4ZWMsIG1vZHVsZV9vcl9j
bGFzcywgc3BlY19vcHRzKQorICAgICAgICAgICAgICAgICAgICBzZXRhdHRyKHNlbGYuaG9vaywg
bmFtZSwgaGMpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgIyBw
bHVnaW5zIHJlZ2lzdGVyZWQgdGhpcyBob29rIHdpdGhvdXQga25vd2luZyB0aGUgc3BlYworICAg
ICAgICAgICAgICAgICAgICBoYy5zZXRfc3BlY2lmaWNhdGlvbihtb2R1bGVfb3JfY2xhc3MsIHNw
ZWNfb3B0cykKKyAgICAgICAgICAgICAgICAgICAgZm9yIGhvb2tmdW5jdGlvbiBpbiAoaGMuX3dy
YXBwZXJzICsgaGMuX25vbndyYXBwZXJzKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu
X3ZlcmlmeV9ob29rKGhjLCBob29rZnVuY3Rpb24pCisgICAgICAgICAgICAgICAgbmFtZXMuYXBw
ZW5kKG5hbWUpCisKKyAgICAgICAgaWYgbm90IG5hbWVzOgorICAgICAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcigiZGlkIG5vdCBmaW5kIGFueSAlciBob29rcyBpbiAlciIgJQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoc2VsZi5wcm9qZWN0X25hbWUsIG1vZHVsZV9vcl9jbGFzcykpCisK
KyAgICBkZWYgcGFyc2VfaG9va3NwZWNfb3B0cyhzZWxmLCBtb2R1bGVfb3JfY2xhc3MsIG5hbWUp
OgorICAgICAgICBtZXRob2QgPSBnZXRhdHRyKG1vZHVsZV9vcl9jbGFzcywgbmFtZSkKKyAgICAg
ICAgcmV0dXJuIGdldGF0dHIobWV0aG9kLCBzZWxmLnByb2plY3RfbmFtZSArICJfc3BlYyIsIE5v
bmUpCisKKyAgICBkZWYgZ2V0X3BsdWdpbnMoc2VsZik6CisgICAgICAgICIiIiByZXR1cm4gdGhl
IHNldCBvZiByZWdpc3RlcmVkIHBsdWdpbnMuICIiIgorICAgICAgICByZXR1cm4gc2V0KHNlbGYu
X3BsdWdpbjJob29rY2FsbGVycykKKworICAgIGRlZiBpc19yZWdpc3RlcmVkKHNlbGYsIHBsdWdp
bik6CisgICAgICAgICIiIiBSZXR1cm4gVHJ1ZSBpZiB0aGUgcGx1Z2luIGlzIGFscmVhZHkgcmVn
aXN0ZXJlZC4gIiIiCisgICAgICAgIHJldHVybiBwbHVnaW4gaW4gc2VsZi5fcGx1Z2luMmhvb2tj
YWxsZXJzCisKKyAgICBkZWYgZ2V0X2Nhbm9uaWNhbF9uYW1lKHNlbGYsIHBsdWdpbik6CisgICAg
ICAgICIiIiBSZXR1cm4gY2Fub25pY2FsIG5hbWUgZm9yIGEgcGx1Z2luIG9iamVjdC4gTm90ZSB0
aGF0IGEgcGx1Z2luCisgICAgICAgIG1heSBiZSByZWdpc3RlcmVkIHVuZGVyIGEgZGlmZmVyZW50
IG5hbWUgd2hpY2ggd2FzIHNwZWNpZmllZAorICAgICAgICBieSB0aGUgY2FsbGVyIG9mIHJlZ2lz
dGVyKHBsdWdpbiwgbmFtZSkuIFRvIG9idGFpbiB0aGUgbmFtZQorICAgICAgICBvZiBhbiByZWdp
c3RlcmVkIHBsdWdpbiB1c2UgYGBnZXRfbmFtZShwbHVnaW4pYGAgaW5zdGVhZC4iIiIKKyAgICAg
ICAgcmV0dXJuIGdldGF0dHIocGx1Z2luLCAiX19uYW1lX18iLCBOb25lKSBvciBzdHIoaWQocGx1
Z2luKSkKKworICAgIGRlZiBnZXRfcGx1Z2luKHNlbGYsIG5hbWUpOgorICAgICAgICAiIiIgUmV0
dXJuIGEgcGx1Z2luIG9yIE5vbmUgZm9yIHRoZSBnaXZlbiBuYW1lLiAiIiIKKyAgICAgICAgcmV0
dXJuIHNlbGYuX25hbWUycGx1Z2luLmdldChuYW1lKQorCisgICAgZGVmIGhhc19wbHVnaW4oc2Vs
ZiwgbmFtZSk6CisgICAgICAgICIiIiBSZXR1cm4gVHJ1ZSBpZiBhIHBsdWdpbiB3aXRoIHRoZSBn
aXZlbiBuYW1lIGlzIHJlZ2lzdGVyZWQuICIiIgorICAgICAgICByZXR1cm4gc2VsZi5nZXRfcGx1
Z2luKG5hbWUpIGlzIG5vdCBOb25lCisKKyAgICBkZWYgZ2V0X25hbWUoc2VsZiwgcGx1Z2luKToK
KyAgICAgICAgIiIiIFJldHVybiBuYW1lIGZvciByZWdpc3RlcmVkIHBsdWdpbiBvciBOb25lIGlm
IG5vdCByZWdpc3RlcmVkLiAiIiIKKyAgICAgICAgZm9yIG5hbWUsIHZhbCBpbiBzZWxmLl9uYW1l
MnBsdWdpbi5pdGVtcygpOgorICAgICAgICAgICAgaWYgcGx1Z2luID09IHZhbDoKKyAgICAgICAg
ICAgICAgICByZXR1cm4gbmFtZQorCisgICAgZGVmIF92ZXJpZnlfaG9vayhzZWxmLCBob29rLCBo
b29raW1wbCk6CisgICAgICAgIGlmIGhvb2suaXNfaGlzdG9yaWMoKSBhbmQgaG9va2ltcGwuaG9v
a3dyYXBwZXI6CisgICAgICAgICAgICByYWlzZSBQbHVnaW5WYWxpZGF0aW9uRXJyb3IoCisgICAg
ICAgICAgICAgICAgIlBsdWdpbiAlclxuaG9vayAlclxuaGlzdG9yaWMgaW5jb21wYXRpYmxlIHRv
IGhvb2t3cmFwcGVyIiAlCisgICAgICAgICAgICAgICAgKGhvb2tpbXBsLnBsdWdpbl9uYW1lLCBo
b29rLm5hbWUpKQorCisgICAgICAgICMgcG9zaXRpb25hbCBhcmcgY2hlY2tpbmcKKyAgICAgICAg
bm90aW5zcGVjID0gc2V0KGhvb2tpbXBsLmFyZ25hbWVzKSAtIHNldChob29rLmFyZ25hbWVzKQor
ICAgICAgICBpZiBub3RpbnNwZWM6CisgICAgICAgICAgICByYWlzZSBQbHVnaW5WYWxpZGF0aW9u
RXJyb3IoCisgICAgICAgICAgICAgICAgIlBsdWdpbiAlciBmb3IgaG9vayAlclxuaG9va2ltcGwg
ZGVmaW5pdGlvbjogJXNcbiIKKyAgICAgICAgICAgICAgICAiQXJndW1lbnQocykgJXMgYXJlIGRl
Y2xhcmVkIGluIHRoZSBob29raW1wbCBidXQgIgorICAgICAgICAgICAgICAgICJjYW4gbm90IGJl
IGZvdW5kIGluIHRoZSBob29rc3BlYyIgJQorICAgICAgICAgICAgICAgIChob29raW1wbC5wbHVn
aW5fbmFtZSwgaG9vay5uYW1lLAorICAgICAgICAgICAgICAgICBfZm9ybWF0ZGVmKGhvb2tpbXBs
LmZ1bmN0aW9uKSwgbm90aW5zcGVjKQorICAgICAgICAgICAgKQorCisgICAgZGVmIGNoZWNrX3Bl
bmRpbmcoc2VsZik6CisgICAgICAgICIiIiBWZXJpZnkgdGhhdCBhbGwgaG9va3Mgd2hpY2ggaGF2
ZSBub3QgYmVlbiB2ZXJpZmllZCBhZ2FpbnN0CisgICAgICAgIGEgaG9vayBzcGVjaWZpY2F0aW9u
IGFyZSBvcHRpb25hbCwgb3RoZXJ3aXNlIHJhaXNlIFBsdWdpblZhbGlkYXRpb25FcnJvciIiIgor
ICAgICAgICBmb3IgbmFtZSBpbiBzZWxmLmhvb2suX19kaWN0X186CisgICAgICAgICAgICBpZiBu
YW1lWzBdICE9ICJfIjoKKyAgICAgICAgICAgICAgICBob29rID0gZ2V0YXR0cihzZWxmLmhvb2ss
IG5hbWUpCisgICAgICAgICAgICAgICAgaWYgbm90IGhvb2suaGFzX3NwZWMoKToKKyAgICAgICAg
ICAgICAgICAgICAgZm9yIGhvb2tpbXBsIGluIChob29rLl93cmFwcGVycyArIGhvb2suX25vbndy
YXBwZXJzKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBob29raW1wbC5vcHRpb25h
bGhvb2s6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgUGx1Z2luVmFsaWRhdGlv
bkVycm9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5rbm93biBob29rICVy
IGluIHBsdWdpbiAlciIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmFtZSwg
aG9va2ltcGwucGx1Z2luKSkKKworICAgIGRlZiBsb2FkX3NldHVwdG9vbHNfZW50cnlwb2ludHMo
c2VsZiwgZW50cnlwb2ludF9uYW1lKToKKyAgICAgICAgIiIiIExvYWQgbW9kdWxlcyBmcm9tIHF1
ZXJ5aW5nIHRoZSBzcGVjaWZpZWQgc2V0dXB0b29scyBlbnRyeXBvaW50IG5hbWUuCisgICAgICAg
IFJldHVybiB0aGUgbnVtYmVyIG9mIGxvYWRlZCBwbHVnaW5zLiAiIiIKKyAgICAgICAgZnJvbSBw
a2dfcmVzb3VyY2VzIGltcG9ydCAoaXRlcl9lbnRyeV9wb2ludHMsIERpc3RyaWJ1dGlvbk5vdEZv
dW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uQ29uZmxpY3Qp
CisgICAgICAgIGZvciBlcCBpbiBpdGVyX2VudHJ5X3BvaW50cyhlbnRyeXBvaW50X25hbWUpOgor
ICAgICAgICAgICAgIyBpcyB0aGUgcGx1Z2luIHJlZ2lzdGVyZWQgb3IgYmxvY2tlZD8KKyAgICAg
ICAgICAgIGlmIHNlbGYuZ2V0X3BsdWdpbihlcC5uYW1lKSBvciBzZWxmLmlzX2Jsb2NrZWQoZXAu
bmFtZSk6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIHRyeToKKyAgICAg
ICAgICAgICAgICBwbHVnaW4gPSBlcC5sb2FkKCkKKyAgICAgICAgICAgIGV4Y2VwdCBEaXN0cmli
dXRpb25Ob3RGb3VuZDoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgZXhj
ZXB0IFZlcnNpb25Db25mbGljdCBhcyBlOgorICAgICAgICAgICAgICAgIHJhaXNlIFBsdWdpblZh
bGlkYXRpb25FcnJvcigKKyAgICAgICAgICAgICAgICAgICAgIlBsdWdpbiAlciBjb3VsZCBub3Qg
YmUgbG9hZGVkOiAlcyEiICUgKGVwLm5hbWUsIGUpKQorICAgICAgICAgICAgc2VsZi5yZWdpc3Rl
cihwbHVnaW4sIG5hbWU9ZXAubmFtZSkKKyAgICAgICAgICAgIHNlbGYuX3BsdWdpbl9kaXN0aW5m
by5hcHBlbmQoKHBsdWdpbiwgZXAuZGlzdCkpCisgICAgICAgIHJldHVybiBsZW4oc2VsZi5fcGx1
Z2luX2Rpc3RpbmZvKQorCisgICAgZGVmIGxpc3RfcGx1Z2luX2Rpc3RpbmZvKHNlbGYpOgorICAg
ICAgICAiIiIgcmV0dXJuIGxpc3Qgb2YgZGlzdGluZm8vcGx1Z2luIHR1cGxlcyBmb3IgYWxsIHNl
dHVwdG9vbHMgcmVnaXN0ZXJlZAorICAgICAgICBwbHVnaW5zLiAiIiIKKyAgICAgICAgcmV0dXJu
IGxpc3Qoc2VsZi5fcGx1Z2luX2Rpc3RpbmZvKQorCisgICAgZGVmIGxpc3RfbmFtZV9wbHVnaW4o
c2VsZik6CisgICAgICAgICIiIiByZXR1cm4gbGlzdCBvZiBuYW1lL3BsdWdpbiBwYWlycy4gIiIi
CisgICAgICAgIHJldHVybiBsaXN0KHNlbGYuX25hbWUycGx1Z2luLml0ZW1zKCkpCisKKyAgICBk
ZWYgZ2V0X2hvb2tjYWxsZXJzKHNlbGYsIHBsdWdpbik6CisgICAgICAgICIiIiBnZXQgYWxsIGhv
b2sgY2FsbGVycyBmb3IgdGhlIHNwZWNpZmllZCBwbHVnaW4uICIiIgorICAgICAgICByZXR1cm4g
c2VsZi5fcGx1Z2luMmhvb2tjYWxsZXJzLmdldChwbHVnaW4pCisKKyAgICBkZWYgYWRkX2hvb2tj
YWxsX21vbml0b3Jpbmcoc2VsZiwgYmVmb3JlLCBhZnRlcik6CisgICAgICAgICIiIiBhZGQgYmVm
b3JlL2FmdGVyIHRyYWNpbmcgZnVuY3Rpb25zIGZvciBhbGwgaG9va3MKKyAgICAgICAgYW5kIHJl
dHVybiBhbiB1bmRvIGZ1bmN0aW9uIHdoaWNoLCB3aGVuIGNhbGxlZCwKKyAgICAgICAgd2lsbCBy
ZW1vdmUgdGhlIGFkZGVkIHRyYWNlcnMuCisKKyAgICAgICAgYGBiZWZvcmUoaG9va19uYW1lLCBo
b29rX2ltcGxzLCBrd2FyZ3MpYGAgd2lsbCBiZSBjYWxsZWQgYWhlYWQKKyAgICAgICAgb2YgYWxs
IGhvb2sgY2FsbHMgYW5kIHJlY2VpdmUgYSBob29rY2FsbGVyIGluc3RhbmNlLCBhIGxpc3QKKyAg
ICAgICAgb2YgSG9va0ltcGwgaW5zdGFuY2VzIGFuZCB0aGUga2V5d29yZCBhcmd1bWVudHMgZm9y
IHRoZSBob29rIGNhbGwuCisKKyAgICAgICAgYGBhZnRlcihvdXRjb21lLCBob29rX25hbWUsIGhv
b2tfaW1wbHMsIGt3YXJncylgYCByZWNlaXZlcyB0aGUKKyAgICAgICAgc2FtZSBhcmd1bWVudHMg
YXMgYGBiZWZvcmVgYCBidXQgYWxzbyBhIDpweTpjbGFzczpgX1Jlc3VsdGBgIG9iamVjdAorICAg
ICAgICB3aGljaCByZXByZXNlbnRzIHRoZSByZXN1bHQgb2YgdGhlIG92ZXJhbGwgaG9vayBjYWxs
LgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIF9UcmFjZWRIb29rRXhlY3V0aW9uKHNlbGYs
IGJlZm9yZSwgYWZ0ZXIpLnVuZG8KKworICAgIGRlZiBlbmFibGVfdHJhY2luZyhzZWxmKToKKyAg
ICAgICAgIiIiIGVuYWJsZSB0cmFjaW5nIG9mIGhvb2sgY2FsbHMgYW5kIHJldHVybiBhbiB1bmRv
IGZ1bmN0aW9uLiAiIiIKKyAgICAgICAgaG9va3RyYWNlID0gc2VsZi5ob29rLl90cmFjZQorCisg
ICAgICAgIGRlZiBiZWZvcmUoaG9va19uYW1lLCBtZXRob2RzLCBrd2FyZ3MpOgorICAgICAgICAg
ICAgaG9va3RyYWNlLnJvb3QuaW5kZW50ICs9IDEKKyAgICAgICAgICAgIGhvb2t0cmFjZShob29r
X25hbWUsIGt3YXJncykKKworICAgICAgICBkZWYgYWZ0ZXIob3V0Y29tZSwgaG9va19uYW1lLCBt
ZXRob2RzLCBrd2FyZ3MpOgorICAgICAgICAgICAgaWYgb3V0Y29tZS5leGNpbmZvIGlzIE5vbmU6
CisgICAgICAgICAgICAgICAgaG9va3RyYWNlKCJmaW5pc2giLCBob29rX25hbWUsICItLT4iLCBv
dXRjb21lLmdldF9yZXN1bHQoKSkKKyAgICAgICAgICAgIGhvb2t0cmFjZS5yb290LmluZGVudCAt
PSAxCisKKyAgICAgICAgcmV0dXJuIHNlbGYuYWRkX2hvb2tjYWxsX21vbml0b3JpbmcoYmVmb3Jl
LCBhZnRlcikKKworICAgIGRlZiBzdWJzZXRfaG9va19jYWxsZXIoc2VsZiwgbmFtZSwgcmVtb3Zl
X3BsdWdpbnMpOgorICAgICAgICAiIiIgUmV0dXJuIGEgbmV3IF9Ib29rQ2FsbGVyIGluc3RhbmNl
IGZvciB0aGUgbmFtZWQgbWV0aG9kCisgICAgICAgIHdoaWNoIG1hbmFnZXMgY2FsbHMgdG8gYWxs
IHJlZ2lzdGVyZWQgcGx1Z2lucyBleGNlcHQgdGhlCisgICAgICAgIG9uZXMgZnJvbSByZW1vdmVf
cGx1Z2lucy4gIiIiCisgICAgICAgIG9yaWcgPSBnZXRhdHRyKHNlbGYuaG9vaywgbmFtZSkKKyAg
ICAgICAgcGx1Z2luc190b19yZW1vdmUgPSBbcGx1ZyBmb3IgcGx1ZyBpbiByZW1vdmVfcGx1Z2lu
cyBpZiBoYXNhdHRyKHBsdWcsIG5hbWUpXQorICAgICAgICBpZiBwbHVnaW5zX3RvX3JlbW92ZToK
KyAgICAgICAgICAgIGhjID0gX0hvb2tDYWxsZXIob3JpZy5uYW1lLCBvcmlnLl9ob29rZXhlYywg
b3JpZy5fc3BlY21vZHVsZV9vcl9jbGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b3JpZy5zcGVjX29wdHMpCisgICAgICAgICAgICBmb3IgaG9va2ltcGwgaW4gKG9yaWcuX3dyYXBw
ZXJzICsgb3JpZy5fbm9ud3JhcHBlcnMpOgorICAgICAgICAgICAgICAgIHBsdWdpbiA9IGhvb2tp
bXBsLnBsdWdpbgorICAgICAgICAgICAgICAgIGlmIHBsdWdpbiBub3QgaW4gcGx1Z2luc190b19y
ZW1vdmU6CisgICAgICAgICAgICAgICAgICAgIGhjLl9hZGRfaG9va2ltcGwoaG9va2ltcGwpCisg
ICAgICAgICAgICAgICAgICAgICMgd2UgYWxzbyBrZWVwIHRyYWNrIG9mIHRoaXMgaG9vayBjYWxs
ZXIgc28gaXQKKyAgICAgICAgICAgICAgICAgICAgIyBnZXRzIHByb3Blcmx5IHJlbW92ZWQgb24g
cGx1Z2luIHVucmVnaXN0cmF0aW9uCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BsdWdpbjJo
b29rY2FsbGVycy5zZXRkZWZhdWx0KHBsdWdpbiwgW10pLmFwcGVuZChoYykKKyAgICAgICAgICAg
IHJldHVybiBoYworICAgICAgICByZXR1cm4gb3JpZworCisKK2RlZiB2YXJuYW1lcyhmdW5jKToK
KyAgICAiIiJSZXR1cm4gdHVwbGUgb2YgcG9zaXRpb25hbCBhbmQga2V5d3JvcmQgYXJndW1lbnQg
bmFtZXMgZm9yIGEgZnVuY3Rpb24sCisgICAgbWV0aG9kLCBjbGFzcyBvciBjYWxsYWJsZS4KKwor
ICAgIEluIGNhc2Ugb2YgYSBjbGFzcywgaXRzIGBgX19pbml0X19gYCBtZXRob2QgaXMgY29uc2lk
ZXJlZC4KKyAgICBGb3IgbWV0aG9kcyB0aGUgYGBzZWxmYGAgcGFyYW1ldGVyIGlzIG5vdCBpbmNs
dWRlZC4KKyAgICAiIiIKKyAgICBjYWNoZSA9IGdldGF0dHIoZnVuYywgIl9fZGljdF9fIiwge30p
CisgICAgdHJ5OgorICAgICAgICByZXR1cm4gY2FjaGVbIl92YXJuYW1lcyJdCisgICAgZXhjZXB0
IEtleUVycm9yOgorICAgICAgICBwYXNzCisKKyAgICBpZiBpbnNwZWN0LmlzY2xhc3MoZnVuYyk6
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZ1bmMgPSBmdW5jLl9faW5pdF9fCisgICAgICAg
IGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiAoKSwgKCkKKyAgICBl
bGlmIG5vdCBpbnNwZWN0Lmlzcm91dGluZShmdW5jKTogICMgY2FsbGFibGUgb2JqZWN0PworICAg
ICAgICB0cnk6CisgICAgICAgICAgICBmdW5jID0gZ2V0YXR0cihmdW5jLCAnX19jYWxsX18nLCBm
dW5jKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgcmV0dXJuICgpCisK
KyAgICB0cnk6ICAjIGZ1bmMgTVVTVCBiZSBhIGZ1bmN0aW9uIG9yIG1ldGhvZCBoZXJlIG9yIHdl
IHdvbid0IHBhcnNlIGFueSBhcmdzCisgICAgICAgIHNwZWMgPSBfZ2V0YXJnc3BlYyhmdW5jKQor
ICAgIGV4Y2VwdCBUeXBlRXJyb3I6CisgICAgICAgIHJldHVybiAoKSwgKCkKKworICAgIGFyZ3Ms
IGRlZmF1bHRzID0gdHVwbGUoc3BlYy5hcmdzKSwgc3BlYy5kZWZhdWx0cworICAgIGlmIGRlZmF1
bHRzOgorICAgICAgICBpbmRleCA9IC1sZW4oZGVmYXVsdHMpCisgICAgICAgIGFyZ3MsIGRlZmF1
bHRzID0gYXJnc1s6aW5kZXhdLCB0dXBsZShhcmdzW2luZGV4Ol0pCisgICAgZWxzZToKKyAgICAg
ICAgZGVmYXVsdHMgPSAoKQorCisgICAgIyBzdHJpcCBhbnkgaW1wbGljaXQgaW5zdGFuY2UgYXJn
CisgICAgaWYgYXJnczoKKyAgICAgICAgaWYgaW5zcGVjdC5pc21ldGhvZChmdW5jKSBvciAoCisg
ICAgICAgICAgICAnLicgaW4gZ2V0YXR0cihmdW5jLCAnX19xdWFsbmFtZV9fJywgKCkpIGFuZCBh
cmdzWzBdID09ICdzZWxmJworICAgICAgICApOgorICAgICAgICAgICAgYXJncyA9IGFyZ3NbMTpd
CisKKyAgICBhc3NlcnQgInNlbGYiIG5vdCBpbiBhcmdzICAjIGJlc3QgbmFtaW5nIHByYWN0aXNl
cyBjaGVjaz8KKyAgICB0cnk6CisgICAgICAgIGNhY2hlWyJfdmFybmFtZXMiXSA9IGFyZ3MsIGRl
ZmF1bHRzCisgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAgcGFzcworICAgIHJldHVybiBh
cmdzLCBkZWZhdWx0cworCisKK2NsYXNzIF9Ib29rUmVsYXkob2JqZWN0KToKKyAgICAiIiIgaG9v
ayBob2xkZXIgb2JqZWN0IGZvciBwZXJmb3JtaW5nIDE6TiBob29rIGNhbGxzIHdoZXJlIE4gaXMg
dGhlIG51bWJlcgorICAgIG9mIHJlZ2lzdGVyZWQgcGx1Z2lucy4KKworICAgICIiIgorCisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHRyYWNlKToKKyAgICAgICAgc2VsZi5fdHJhY2UgPSB0cmFjZQor
CisKK2NsYXNzIF9Ib29rQ2FsbGVyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5h
bWUsIGhvb2tfZXhlY3V0ZSwgc3BlY21vZHVsZV9vcl9jbGFzcz1Ob25lLAorICAgICAgICAgICAg
ICAgICBzcGVjX29wdHM9Tm9uZSk6CisgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKKyAgICAgICAg
c2VsZi5fd3JhcHBlcnMgPSBbXQorICAgICAgICBzZWxmLl9ub253cmFwcGVycyA9IFtdCisgICAg
ICAgIHNlbGYuX2hvb2tleGVjID0gaG9va19leGVjdXRlCisgICAgICAgIHNlbGYuX3NwZWNtb2R1
bGVfb3JfY2xhc3MgPSBOb25lCisgICAgICAgIHNlbGYuYXJnbmFtZXMgPSBOb25lCisgICAgICAg
IHNlbGYua3dhcmduYW1lcyA9IE5vbmUKKyAgICAgICAgc2VsZi5tdWx0aWNhbGwgPSBfbXVsdGlj
YWxsCisgICAgICAgIHNlbGYuc3BlY19vcHRzID0gc3BlY19vcHRzIG9yIHt9CisgICAgICAgIGlm
IHNwZWNtb2R1bGVfb3JfY2xhc3MgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLnNldF9z
cGVjaWZpY2F0aW9uKHNwZWNtb2R1bGVfb3JfY2xhc3MsIHNwZWNfb3B0cykKKworICAgIGRlZiBo
YXNfc3BlYyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3NwZWNtb2R1bGVfb3JfY2xhc3Mg
aXMgbm90IE5vbmUKKworICAgIGRlZiBzZXRfc3BlY2lmaWNhdGlvbihzZWxmLCBzcGVjbW9kdWxl
X29yX2NsYXNzLCBzcGVjX29wdHMpOgorICAgICAgICBhc3NlcnQgbm90IHNlbGYuaGFzX3NwZWMo
KQorICAgICAgICBzZWxmLl9zcGVjbW9kdWxlX29yX2NsYXNzID0gc3BlY21vZHVsZV9vcl9jbGFz
cworICAgICAgICBzcGVjZnVuYyA9IGdldGF0dHIoc3BlY21vZHVsZV9vcl9jbGFzcywgc2VsZi5u
YW1lKQorICAgICAgICAjIGdldCBzcGVjIGFyZyBzaWduYXR1cmUKKyAgICAgICAgYXJnbmFtZXMs
IHNlbGYua3dhcmduYW1lcyA9IHZhcm5hbWVzKHNwZWNmdW5jKQorICAgICAgICBzZWxmLmFyZ25h
bWVzID0gWyJfX211bHRpY2FsbF9fIl0gKyBsaXN0KGFyZ25hbWVzKQorICAgICAgICBzZWxmLnNw
ZWNfb3B0cy51cGRhdGUoc3BlY19vcHRzKQorICAgICAgICBpZiBzcGVjX29wdHMuZ2V0KCJoaXN0
b3JpYyIpOgorICAgICAgICAgICAgc2VsZi5fY2FsbF9oaXN0b3J5ID0gW10KKworICAgIGRlZiBp
c19oaXN0b3JpYyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGhhc2F0dHIoc2VsZiwgIl9jYWxsX2hp
c3RvcnkiKQorCisgICAgZGVmIF9yZW1vdmVfcGx1Z2luKHNlbGYsIHBsdWdpbik6CisgICAgICAg
IGRlZiByZW1vdmUod3JhcHBlcnMpOgorICAgICAgICAgICAgZm9yIGksIG1ldGhvZCBpbiBlbnVt
ZXJhdGUod3JhcHBlcnMpOgorICAgICAgICAgICAgICAgIGlmIG1ldGhvZC5wbHVnaW4gPT0gcGx1
Z2luOgorICAgICAgICAgICAgICAgICAgICBkZWwgd3JhcHBlcnNbaV0KKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgaWYgcmVtb3ZlKHNlbGYuX3dyYXBwZXJzKSBpcyBO
b25lOgorICAgICAgICAgICAgaWYgcmVtb3ZlKHNlbGYuX25vbndyYXBwZXJzKSBpcyBOb25lOgor
ICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInBsdWdpbiAlciBub3QgZm91bmQiICUg
KHBsdWdpbiwpKQorCisgICAgZGVmIF9hZGRfaG9va2ltcGwoc2VsZiwgaG9va2ltcGwpOgorICAg
ICAgICAiIiJBIGFuIGltcGxlbWVudGF0aW9uIHRvIHRoZSBjYWxsYmFjayBjaGFpbi4KKyAgICAg
ICAgIiIiCisgICAgICAgIGlmIGhvb2tpbXBsLmhvb2t3cmFwcGVyOgorICAgICAgICAgICAgbWV0
aG9kcyA9IHNlbGYuX3dyYXBwZXJzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBtZXRob2Rz
ID0gc2VsZi5fbm9ud3JhcHBlcnMKKworICAgICAgICBpZiBob29raW1wbC50cnlsYXN0OgorICAg
ICAgICAgICAgbWV0aG9kcy5pbnNlcnQoMCwgaG9va2ltcGwpCisgICAgICAgIGVsaWYgaG9va2lt
cGwudHJ5Zmlyc3Q6CisgICAgICAgICAgICBtZXRob2RzLmFwcGVuZChob29raW1wbCkKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgICMgZmluZCBsYXN0IG5vbi10cnlmaXJzdCBtZXRob2QKKyAg
ICAgICAgICAgIGkgPSBsZW4obWV0aG9kcykgLSAxCisgICAgICAgICAgICB3aGlsZSBpID49IDAg
YW5kIG1ldGhvZHNbaV0udHJ5Zmlyc3Q6CisgICAgICAgICAgICAgICAgaSAtPSAxCisgICAgICAg
ICAgICBtZXRob2RzLmluc2VydChpICsgMSwgaG9va2ltcGwpCisKKyAgICAgICAgaWYgJ19fbXVs
dGljYWxsX18nIGluIGhvb2tpbXBsLmFyZ25hbWVzOgorICAgICAgICAgICAgd2FybmluZ3Mud2Fy
bigKKyAgICAgICAgICAgICAgICAiU3VwcG9ydCBmb3IgX19tdWx0aWNhbGxfXyBpcyBub3cgZGVw
cmVjYXRlZCBhbmQgd2lsbCBiZSIKKyAgICAgICAgICAgICAgICAicmVtb3ZlZCBpbiBhbiB1cGNv
bWluZyByZWxlYXNlLiIsCisgICAgICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nCisgICAg
ICAgICAgICApCisgICAgICAgICAgICBzZWxmLm11bHRpY2FsbCA9IF9sZWdhY3ltdWx0aWNhbGwK
KworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICI8X0hvb2tDYWxsZXIg
JXI+IiAlIChzZWxmLm5hbWUsKQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsICphcmdzLCAqKmt3
YXJncyk6CisgICAgICAgIGlmIGFyZ3M6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoImhv
b2sgY2FsbGluZyBzdXBwb3J0cyBvbmx5IGtleXdvcmQgYXJndW1lbnRzIikKKyAgICAgICAgYXNz
ZXJ0IG5vdCBzZWxmLmlzX2hpc3RvcmljKCkKKyAgICAgICAgaWYgc2VsZi5hcmduYW1lczoKKyAg
ICAgICAgICAgIG5vdGluY2FsbCA9IHNldChzZWxmLmFyZ25hbWVzKSAtIHNldChbJ19fbXVsdGlj
YWxsX18nXSkgLSBzZXQoCisgICAgICAgICAgICAgICAga3dhcmdzLmtleXMoKSkKKyAgICAgICAg
ICAgIGlmIG5vdGluY2FsbDoKKyAgICAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKAorICAgICAg
ICAgICAgICAgICAgICAiQXJndW1lbnQocykge30gd2hpY2ggYXJlIGRlY2xhcmVkIGluIHRoZSBo
b29rc3BlYyAiCisgICAgICAgICAgICAgICAgICAgICJjYW4gbm90IGJlIGZvdW5kIGluIHRoaXMg
aG9vayBjYWxsIgorICAgICAgICAgICAgICAgICAgICAuZm9ybWF0KHR1cGxlKG5vdGluY2FsbCkp
LAorICAgICAgICAgICAgICAgICAgICBzdGFja2xldmVsPTIsCisgICAgICAgICAgICAgICAgKQor
ICAgICAgICByZXR1cm4gc2VsZi5faG9va2V4ZWMoc2VsZiwgc2VsZi5fbm9ud3JhcHBlcnMgKyBz
ZWxmLl93cmFwcGVycywga3dhcmdzKQorCisgICAgZGVmIGNhbGxfaGlzdG9yaWMoc2VsZiwgcHJv
Yz1Ob25lLCBrd2FyZ3M9Tm9uZSk6CisgICAgICAgICIiIiBjYWxsIHRoZSBob29rIHdpdGggZ2l2
ZW4gYGBrd2FyZ3NgYCBmb3IgYWxsIHJlZ2lzdGVyZWQgcGx1Z2lucyBhbmQKKyAgICAgICAgZm9y
IGFsbCBwbHVnaW5zIHdoaWNoIHdpbGwgYmUgcmVnaXN0ZXJlZCBhZnRlcndhcmRzLgorCisgICAg
ICAgIElmIGBgcHJvY2BgIGlzIG5vdCBOb25lIGl0IHdpbGwgYmUgY2FsbGVkIGZvciBmb3IgZWFj
aCBub24tTm9uZSByZXN1bHQKKyAgICAgICAgb2J0YWluZWQgZnJvbSBhIGhvb2sgaW1wbGVtZW50
YXRpb24uCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9jYWxsX2hpc3RvcnkuYXBwZW5kKChr
d2FyZ3Mgb3Ige30sIHByb2MpKQorICAgICAgICAjIGhpc3Rvcml6aW5nIGhvb2tzIGRvbid0IHJl
dHVybiByZXN1bHRzCisgICAgICAgIHJlcyA9IHNlbGYuX2hvb2tleGVjKHNlbGYsIHNlbGYuX25v
bndyYXBwZXJzICsgc2VsZi5fd3JhcHBlcnMsIGt3YXJncykKKyAgICAgICAgZm9yIHggaW4gcmVz
IG9yIFtdOgorICAgICAgICAgICAgcHJvYyh4KQorCisgICAgZGVmIGNhbGxfZXh0cmEoc2VsZiwg
bWV0aG9kcywga3dhcmdzKToKKyAgICAgICAgIiIiIENhbGwgdGhlIGhvb2sgd2l0aCBzb21lIGFk
ZGl0aW9uYWwgdGVtcG9yYXJpbHkgcGFydGljaXBhdGluZworICAgICAgICBtZXRob2RzIHVzaW5n
IHRoZSBzcGVjaWZpZWQga3dhcmdzIGFzIGNhbGwgcGFyYW1ldGVycy4gIiIiCisgICAgICAgIG9s
ZCA9IGxpc3Qoc2VsZi5fbm9ud3JhcHBlcnMpLCBsaXN0KHNlbGYuX3dyYXBwZXJzKQorICAgICAg
ICBmb3IgbWV0aG9kIGluIG1ldGhvZHM6CisgICAgICAgICAgICBvcHRzID0gZGljdChob29rd3Jh
cHBlcj1GYWxzZSwgdHJ5bGFzdD1GYWxzZSwgdHJ5Zmlyc3Q9RmFsc2UpCisgICAgICAgICAgICBo
b29raW1wbCA9IEhvb2tJbXBsKE5vbmUsICI8dGVtcD4iLCBtZXRob2QsIG9wdHMpCisgICAgICAg
ICAgICBzZWxmLl9hZGRfaG9va2ltcGwoaG9va2ltcGwpCisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIHJldHVybiBzZWxmKCoqa3dhcmdzKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAg
c2VsZi5fbm9ud3JhcHBlcnMsIHNlbGYuX3dyYXBwZXJzID0gb2xkCisKKyAgICBkZWYgX21heWJl
X2FwcGx5X2hpc3Rvcnkoc2VsZiwgbWV0aG9kKToKKyAgICAgICAgIiIiQXBwbHkgY2FsbCBoaXN0
b3J5IHRvIGEgbmV3IGhvb2tpbXBsIGlmIGl0IGlzIG1hcmtlZCBhcyBoaXN0b3JpYy4KKyAgICAg
ICAgIiIiCisgICAgICAgIGlmIHNlbGYuaXNfaGlzdG9yaWMoKToKKyAgICAgICAgICAgIGZvciBr
d2FyZ3MsIHByb2MgaW4gc2VsZi5fY2FsbF9oaXN0b3J5OgorICAgICAgICAgICAgICAgIHJlcyA9
IHNlbGYuX2hvb2tleGVjKHNlbGYsIFttZXRob2RdLCBrd2FyZ3MpCisgICAgICAgICAgICAgICAg
aWYgcmVzIGFuZCBwcm9jIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICBwcm9jKHJl
c1swXSkKKworCitjbGFzcyBIb29rSW1wbChvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBwbHVnaW4sIHBsdWdpbl9uYW1lLCBmdW5jdGlvbiwgaG9va19pbXBsX29wdHMpOgorICAgICAg
ICBzZWxmLmZ1bmN0aW9uID0gZnVuY3Rpb24KKyAgICAgICAgc2VsZi5hcmduYW1lcywgc2VsZi5r
d2FyZ25hbWVzID0gdmFybmFtZXMoc2VsZi5mdW5jdGlvbikKKyAgICAgICAgc2VsZi5wbHVnaW4g
PSBwbHVnaW4KKyAgICAgICAgc2VsZi5vcHRzID0gaG9va19pbXBsX29wdHMKKyAgICAgICAgc2Vs
Zi5wbHVnaW5fbmFtZSA9IHBsdWdpbl9uYW1lCisgICAgICAgIHNlbGYuX19kaWN0X18udXBkYXRl
KGhvb2tfaW1wbF9vcHRzKQorCisKK2lmIGhhc2F0dHIoaW5zcGVjdCwgJ2dldGZ1bGxhcmdzcGVj
Jyk6CisgICAgZGVmIF9nZXRhcmdzcGVjKGZ1bmMpOgorICAgICAgICByZXR1cm4gaW5zcGVjdC5n
ZXRmdWxsYXJnc3BlYyhmdW5jKQorZWxzZToKKyAgICBkZWYgX2dldGFyZ3NwZWMoZnVuYyk6Cisg
ICAgICAgIHJldHVybiBpbnNwZWN0LmdldGFyZ3NwZWMoZnVuYykKKworCitpZiBoYXNhdHRyKGlu
c3BlY3QsICdzaWduYXR1cmUnKToKKyAgICBkZWYgX2Zvcm1hdGRlZihmdW5jKToKKyAgICAgICAg
cmV0dXJuICIlcyVzIiAlICgKKyAgICAgICAgICAgIGZ1bmMuX19uYW1lX18sCisgICAgICAgICAg
ICBzdHIoaW5zcGVjdC5zaWduYXR1cmUoZnVuYykpCisgICAgICAgICkKK2Vsc2U6CisgICAgZGVm
IF9mb3JtYXRkZWYoZnVuYyk6CisgICAgICAgIHJldHVybiAiJXMlcyIgJSAoCisgICAgICAgICAg
ICBmdW5jLl9fbmFtZV9fLAorICAgICAgICAgICAgaW5zcGVjdC5mb3JtYXRhcmdzcGVjKCppbnNw
ZWN0LmdldGFyZ3NwZWMoZnVuYykpCisgICAgICAgICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5
L3BsdWdneS9jYWxsZXJzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvcGx1Z2d5L2NhbGxlcnMucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uM2ZmNjdiZWNmZmJjYjRjM2UwY2RjMmZlMWJkYjhiNjgzNGRiZDc2OQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGx1Z2d5L3BsdWdneS9jYWxsZXJzLnB5CkBAIC0wLDAgKzEsMjAxIEBA
CisnJycKK0NhbGwgbG9vcCBtYWNoaW5lcnkKKycnJworaW1wb3J0IHN5cworaW1wb3J0IHdhcm5p
bmdzCisKK19weTMgPSBzeXMudmVyc2lvbl9pbmZvID4gKDMsIDApCisKKworaWYgbm90IF9weTM6
CisgICAgZXhlYygiIiIKK2RlZiBfcmVyYWlzZShjbHMsIHZhbCwgdGIpOgorICAgIHJhaXNlIGNs
cywgdmFsLCB0YgorIiIiKQorCisKK2RlZiBfcmFpc2Vfd3JhcGZhaWwod3JhcF9jb250cm9sbGVy
LCBtc2cpOgorICAgIGNvID0gd3JhcF9jb250cm9sbGVyLmdpX2NvZGUKKyAgICByYWlzZSBSdW50
aW1lRXJyb3IoIndyYXBfY29udHJvbGxlciBhdCAlciAlczolZCAlcyIgJQorICAgICAgICAgICAg
ICAgICAgICAgICAoY28uY29fbmFtZSwgY28uY29fZmlsZW5hbWUsIGNvLmNvX2ZpcnN0bGluZW5v
LCBtc2cpKQorCisKK2NsYXNzIEhvb2tDYWxsRXJyb3IoRXhjZXB0aW9uKToKKyAgICAiIiIgSG9v
ayB3YXMgY2FsbGVkIHdyb25nbHkuICIiIgorCisKK2NsYXNzIF9SZXN1bHQob2JqZWN0KToKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgcmVzdWx0LCBleGNpbmZvKToKKyAgICAgICAgc2VsZi5fcmVz
dWx0ID0gcmVzdWx0CisgICAgICAgIHNlbGYuX2V4Y2luZm8gPSBleGNpbmZvCisKKyAgICBAcHJv
cGVydHkKKyAgICBkZWYgZXhjaW5mbyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2V4Y2lu
Zm8KKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiByZXN1bHQoc2VsZik6CisgICAgICAgICIiIkdl
dCB0aGUgcmVzdWx0KHMpIGZvciB0aGlzIGhvb2sgY2FsbCAoREVQUkVDQVRFRCBpbiBmYXZvciBv
ZiBgYGdldF9yZXN1bHQoKWBgKS4iIiIKKyAgICAgICAgbXNnID0gJ1VzZSBnZXRfcmVzdWx0KCkg
d2hpY2ggZm9yY2VzIGNvcnJlY3QgZXhjZXB0aW9uIGhhbmRsaW5nJworICAgICAgICB3YXJuaW5n
cy53YXJuKERlcHJlY2F0aW9uV2FybmluZyhtc2cpLCBzdGFja2xldmVsPTIpCisgICAgICAgIHJl
dHVybiBzZWxmLl9yZXN1bHQKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBmcm9tX2NhbGwo
Y2xzLCBmdW5jKToKKyAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgICAgIHJl
c3VsdCA9IGV4Y2luZm8gPSBOb25lCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJlc3VsdCA9
IGZ1bmMoKQorICAgICAgICBleGNlcHQgQmFzZUV4Y2VwdGlvbjoKKyAgICAgICAgICAgIGV4Y2lu
Zm8gPSBzeXMuZXhjX2luZm8oKQorCisgICAgICAgIHJldHVybiBjbHMocmVzdWx0LCBleGNpbmZv
KQorCisgICAgZGVmIGZvcmNlX3Jlc3VsdChzZWxmLCByZXN1bHQpOgorICAgICAgICAiIiJGb3Jj
ZSB0aGUgcmVzdWx0KHMpIHRvIGBgcmVzdWx0YGAuCisKKyAgICAgICAgSWYgdGhlIGhvb2sgd2Fz
IG1hcmtlZCBhcyBhIGBgZmlyc3RyZXN1bHRgYCBhIHNpbmdsZSB2YWx1ZSBzaG91bGQKKyAgICAg
ICAgYmUgc2V0IG90aGVyd2lzZSBzZXQgYSAobW9kaWZpZWQpIGxpc3Qgb2YgcmVzdWx0cy4gQW55
IGV4Y2VwdGlvbnMKKyAgICAgICAgZm91bmQgZHVyaW5nIGludm9jYXRpb24gd2lsbCBiZSBkZWxl
dGVkLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fcmVzdWx0ID0gcmVzdWx0CisgICAgICAg
IHNlbGYuX2V4Y2luZm8gPSBOb25lCisKKyAgICBkZWYgZ2V0X3Jlc3VsdChzZWxmKToKKyAgICAg
ICAgIiIiR2V0IHRoZSByZXN1bHQocykgZm9yIHRoaXMgaG9vayBjYWxsLgorCisgICAgICAgIElm
IHRoZSBob29rIHdhcyBtYXJrZWQgYXMgYSBgYGZpcnN0cmVzdWx0YGAgb25seSBhIHNpbmdsZSB2
YWx1ZQorICAgICAgICB3aWxsIGJlIHJldHVybmVkIG90aGVyd2lzZSBhIGxpc3Qgb2YgcmVzdWx0
cy4KKyAgICAgICAgIiIiCisgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAgICAg
ICBpZiBzZWxmLl9leGNpbmZvIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fcmVz
dWx0CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBleCA9IHNlbGYuX2V4Y2luZm8KKyAgICAg
ICAgICAgIGlmIF9weTM6CisgICAgICAgICAgICAgICAgcmFpc2UgZXhbMV0ud2l0aF90cmFjZWJh
Y2soZXhbMl0pCisgICAgICAgICAgICBfcmVyYWlzZSgqZXgpICAjIG5vcWEKKworCitkZWYgX3dy
YXBwZWRfY2FsbCh3cmFwX2NvbnRyb2xsZXIsIGZ1bmMpOgorICAgICIiIiBXcmFwIGNhbGxpbmcg
dG8gYSBmdW5jdGlvbiB3aXRoIGEgZ2VuZXJhdG9yIHdoaWNoIG5lZWRzIHRvIHlpZWxkCisgICAg
ZXhhY3RseSBvbmNlLiAgVGhlIHlpZWxkIHBvaW50IHdpbGwgdHJpZ2dlciBjYWxsaW5nIHRoZSB3
cmFwcGVkIGZ1bmN0aW9uCisgICAgYW5kIHJldHVybiBpdHMgYGBfUmVzdWx0YGAgdG8gdGhlIHlp
ZWxkIHBvaW50LiAgVGhlIGdlbmVyYXRvciB0aGVuIG5lZWRzCisgICAgdG8gZmluaXNoIChyYWlz
ZSBTdG9wSXRlcmF0aW9uKSBpbiBvcmRlciBmb3IgdGhlIHdyYXBwZWQgY2FsbCB0byBjb21wbGV0
ZS4KKyAgICAiIiIKKyAgICB0cnk6CisgICAgICAgIG5leHQod3JhcF9jb250cm9sbGVyKSAgICMg
Zmlyc3QgeWllbGQKKyAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbjoKKyAgICAgICAgX3JhaXNlX3dy
YXBmYWlsKHdyYXBfY29udHJvbGxlciwgImRpZCBub3QgeWllbGQiKQorICAgIGNhbGxfb3V0Y29t
ZSA9IF9SZXN1bHQuZnJvbV9jYWxsKGZ1bmMpCisgICAgdHJ5OgorICAgICAgICB3cmFwX2NvbnRy
b2xsZXIuc2VuZChjYWxsX291dGNvbWUpCisgICAgICAgIF9yYWlzZV93cmFwZmFpbCh3cmFwX2Nv
bnRyb2xsZXIsICJoYXMgc2Vjb25kIHlpZWxkIikKKyAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbjoK
KyAgICAgICAgcGFzcworICAgIHJldHVybiBjYWxsX291dGNvbWUuZ2V0X3Jlc3VsdCgpCisKKwor
Y2xhc3MgX0xlZ2FjeU11bHRpQ2FsbChvYmplY3QpOgorICAgICIiIiBleGVjdXRlIGEgY2FsbCBp
bnRvIG11bHRpcGxlIHB5dGhvbiBmdW5jdGlvbnMvbWV0aG9kcy4gIiIiCisKKyAgICAjIFhYWCBu
b3RlIHRoYXQgdGhlIF9fbXVsdGljYWxsX18gYXJndW1lbnQgaXMgc3VwcG9ydGVkIG9ubHkKKyAg
ICAjIGZvciBweXRlc3QgY29tcGF0aWJpbGl0eSByZWFzb25zLiAgSXQgd2FzIG5ldmVyIG9mZmlj
aWFsbHkKKyAgICAjIHN1cHBvcnRlZCB0aGVyZSBhbmQgaXMgZXhwbGljaXRlbHkgZGVwcmVjYXRl
ZCBzaW5jZSAyLjgKKyAgICAjIHNvIHdlIGNhbiByZW1vdmUgaXQgc29vbiwgYWxsb3dpbmcgdG8g
YXZvaWQgdGhlIGJlbG93IHJlY3Vyc2lvbgorICAgICMgaW4gZXhlY3V0ZSgpIGFuZCBzaW1wbGlm
eS9zcGVlZCB1cCB0aGUgZXhlY3V0ZSBsb29wLgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhv
b2tfaW1wbHMsIGt3YXJncywgZmlyc3RyZXN1bHQ9RmFsc2UpOgorICAgICAgICBzZWxmLmhvb2tf
aW1wbHMgPSBob29rX2ltcGxzCisgICAgICAgIHNlbGYuY2FsbGVyX2t3YXJncyA9IGt3YXJncyAg
IyBjb21lIGZyb20gX0hvb2tDYWxsZXIuX19jYWxsX18oKQorICAgICAgICBzZWxmLmNhbGxlcl9r
d2FyZ3NbIl9fbXVsdGljYWxsX18iXSA9IHNlbGYKKyAgICAgICAgc2VsZi5maXJzdHJlc3VsdCA9
IGZpcnN0cmVzdWx0CisKKyAgICBkZWYgZXhlY3V0ZShzZWxmKToKKyAgICAgICAgY2FsbGVyX2t3
YXJncyA9IHNlbGYuY2FsbGVyX2t3YXJncworICAgICAgICBzZWxmLnJlc3VsdHMgPSByZXN1bHRz
ID0gW10KKyAgICAgICAgZmlyc3RyZXN1bHQgPSBzZWxmLmZpcnN0cmVzdWx0CisKKyAgICAgICAg
d2hpbGUgc2VsZi5ob29rX2ltcGxzOgorICAgICAgICAgICAgaG9va19pbXBsID0gc2VsZi5ob29r
X2ltcGxzLnBvcCgpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgYXJncyA9IFtj
YWxsZXJfa3dhcmdzW2FyZ25hbWVdIGZvciBhcmduYW1lIGluIGhvb2tfaW1wbC5hcmduYW1lc10K
KyAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICBmb3IgYXJnbmFt
ZSBpbiBob29rX2ltcGwuYXJnbmFtZXM6CisgICAgICAgICAgICAgICAgICAgIGlmIGFyZ25hbWUg
bm90IGluIGNhbGxlcl9rd2FyZ3M6CisgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBIb29r
Q2FsbEVycm9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJob29rIGNhbGwgbXVzdCBw
cm92aWRlIGFyZ3VtZW50ICVyIiAlIChhcmduYW1lLCkpCisgICAgICAgICAgICBpZiBob29rX2lt
cGwuaG9va3dyYXBwZXI6CisgICAgICAgICAgICAgICAgcmV0dXJuIF93cmFwcGVkX2NhbGwoaG9v
a19pbXBsLmZ1bmN0aW9uKCphcmdzKSwgc2VsZi5leGVjdXRlKQorICAgICAgICAgICAgcmVzID0g
aG9va19pbXBsLmZ1bmN0aW9uKCphcmdzKQorICAgICAgICAgICAgaWYgcmVzIGlzIG5vdCBOb25l
OgorICAgICAgICAgICAgICAgIGlmIGZpcnN0cmVzdWx0OgorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVzCisgICAgICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQocmVzKQorCisgICAgICAg
IGlmIG5vdCBmaXJzdHJlc3VsdDoKKyAgICAgICAgICAgIHJldHVybiByZXN1bHRzCisKKyAgICBk
ZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHN0YXR1cyA9ICIlZCBtZXRocyIgJSAobGVuKHNl
bGYuaG9va19pbXBscyksKQorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJyZXN1bHRzIik6Cisg
ICAgICAgICAgICBzdGF0dXMgPSAoIiVkIHJlc3VsdHMsICIgJSBsZW4oc2VsZi5yZXN1bHRzKSkg
KyBzdGF0dXMKKyAgICAgICAgcmV0dXJuICI8X011bHRpQ2FsbCAlcywga3dhcmdzPSVyPiIgJSAo
c3RhdHVzLCBzZWxmLmNhbGxlcl9rd2FyZ3MpCisKKworZGVmIF9sZWdhY3ltdWx0aWNhbGwoaG9v
a19pbXBscywgY2FsbGVyX2t3YXJncywgZmlyc3RyZXN1bHQ9RmFsc2UpOgorICAgIHJldHVybiBf
TGVnYWN5TXVsdGlDYWxsKAorICAgICAgICBob29rX2ltcGxzLCBjYWxsZXJfa3dhcmdzLCBmaXJz
dHJlc3VsdD1maXJzdHJlc3VsdCkuZXhlY3V0ZSgpCisKKworZGVmIF9tdWx0aWNhbGwoaG9va19p
bXBscywgY2FsbGVyX2t3YXJncywgZmlyc3RyZXN1bHQ9RmFsc2UpOgorICAgICIiIkV4ZWN1dGUg
YSBjYWxsIGludG8gbXVsdGlwbGUgcHl0aG9uIGZ1bmN0aW9ucy9tZXRob2RzIGFuZCByZXR1cm4g
dGhlCisgICAgcmVzdWx0KHMpLgorCisgICAgYGBjYWxsZXJfa3dhcmdzYGAgY29tZXMgZnJvbSBf
SG9va0NhbGxlci5fX2NhbGxfXygpLgorICAgICIiIgorICAgIF9fdHJhY2ViYWNraGlkZV9fID0g
VHJ1ZQorICAgIHJlc3VsdHMgPSBbXQorICAgIGV4Y2luZm8gPSBOb25lCisgICAgdHJ5OiAgIyBy
dW4gaW1wbCBhbmQgd3JhcHBlciBzZXR1cCBmdW5jdGlvbnMgaW4gYSBsb29wCisgICAgICAgIHRl
YXJkb3ducyA9IFtdCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZvciBob29rX2ltcGwgaW4g
cmV2ZXJzZWQoaG9va19pbXBscyk6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAg
ICAgICAgICBhcmdzID0gW2NhbGxlcl9rd2FyZ3NbYXJnbmFtZV0gZm9yIGFyZ25hbWUgaW4gaG9v
a19pbXBsLmFyZ25hbWVzXQorICAgICAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAg
ICAgICAgICAgICAgICAgZm9yIGFyZ25hbWUgaW4gaG9va19pbXBsLmFyZ25hbWVzOgorICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgYXJnbmFtZSBub3QgaW4gY2FsbGVyX2t3YXJnczoKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBIb29rQ2FsbEVycm9yKAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiaG9vayBjYWxsIG11c3QgcHJvdmlkZSBhcmd1bWVudCAlciIg
JSAoYXJnbmFtZSwpKQorCisgICAgICAgICAgICAgICAgaWYgaG9va19pbXBsLmhvb2t3cmFwcGVy
OgorICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICBnZW4g
PSBob29rX2ltcGwuZnVuY3Rpb24oKmFyZ3MpCisgICAgICAgICAgICAgICAgICAgICAgICBuZXh0
KGdlbikgICAjIGZpcnN0IHlpZWxkCisgICAgICAgICAgICAgICAgICAgICAgICB0ZWFyZG93bnMu
YXBwZW5kKGdlbikKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246Cisg
ICAgICAgICAgICAgICAgICAgICAgICBfcmFpc2Vfd3JhcGZhaWwoZ2VuLCAiZGlkIG5vdCB5aWVs
ZCIpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcmVzID0gaG9v
a19pbXBsLmZ1bmN0aW9uKCphcmdzKQorICAgICAgICAgICAgICAgICAgICBpZiByZXMgaXMgbm90
IE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChyZXMpCisgICAg
ICAgICAgICAgICAgICAgICAgICBpZiBmaXJzdHJlc3VsdDogICMgaGFsdCBmdXJ0aGVyIGltcGwg
Y2FsbHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICBleGNlcHQg
QmFzZUV4Y2VwdGlvbjoKKyAgICAgICAgICAgIGV4Y2luZm8gPSBzeXMuZXhjX2luZm8oKQorICAg
IGZpbmFsbHk6CisgICAgICAgIGlmIGZpcnN0cmVzdWx0OiAgIyBmaXJzdCByZXN1bHQgaG9va3Mg
cmV0dXJuIGEgc2luZ2xlIHZhbHVlCisgICAgICAgICAgICBvdXRjb21lID0gX1Jlc3VsdChyZXN1
bHRzWzBdIGlmIHJlc3VsdHMgZWxzZSBOb25lLCBleGNpbmZvKQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgb3V0Y29tZSA9IF9SZXN1bHQocmVzdWx0cywgZXhjaW5mbykKKworICAgICAgICAj
IHJ1biBhbGwgd3JhcHBlciBwb3N0LXlpZWxkIGJsb2NrcworICAgICAgICBmb3IgZ2VuIGluIHJl
dmVyc2VkKHRlYXJkb3ducyk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZ2Vu
LnNlbmQob3V0Y29tZSkKKyAgICAgICAgICAgICAgICBfcmFpc2Vfd3JhcGZhaWwoZ2VuLCAiaGFz
IHNlY29uZCB5aWVsZCIpCisgICAgICAgICAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbjoKKyAgICAg
ICAgICAgICAgICBwYXNzCisKKyAgICAgICAgcmV0dXJuIG91dGNvbWUuZ2V0X3Jlc3VsdCgpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BsdWdneS9wbHVnZ3kvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdn
eS9wbHVnZ3kvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODI5OTBjZDg4NzI4YzkwMWRkOWI2
NjhjY2IyODczN2ViMTU3OWNlNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3BsdWdn
eS93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9w
bHVnZ3kvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9wbHVnZ3kvY2FsbGVycy5weQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wbHVnZ3kvc2V0dXAuY2ZnIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvc2V0dXAuY2ZnCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjdlNzI5Y2I0ZjI0YjFmNjM3MWU5YWY4NDBlM2MxNTQ4NWIzODk4YzAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BsdWdneS9zZXR1cC5jZmcKQEAgLTAsMCArMSw4IEBACitbYmRpc3Rf
d2hlZWxdCit1bml2ZXJzYWw9MQorCitbbWV0YWRhdGFdCitsaWNlbnNlX2ZpbGU9TElDRU5TRQor
CitbZGV2cGk6dXBsb2FkXQorZm9ybWF0cz1zZGlzdC50Z3osYmRpc3Rfd2hlZWwKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcGx1Z2d5L3NldHVwLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvc2V0dXAucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjdjMGY2OTcxMjBhZDRjYzA5Nzg3MmJkMDEwZmFkZDIwMTZkMmJlOQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGx1Z2d5L3NldHVwLnB5CkBAIC0wLDAgKzEsNTEgQEAKK2ltcG9ydCBvcwor
ZnJvbSBzZXR1cHRvb2xzIGltcG9ydCBzZXR1cAorCitjbGFzc2lmaWVycyA9IFsKKyAgICAnRGV2
ZWxvcG1lbnQgU3RhdHVzIDo6IDQgLSBCZXRhJywKKyAgICAnSW50ZW5kZWQgQXVkaWVuY2UgOjog
RGV2ZWxvcGVycycsCisgICAgJ0xpY2Vuc2UgOjogT1NJIEFwcHJvdmVkIDo6IE1JVCBMaWNlbnNl
JywKKyAgICAnT3BlcmF0aW5nIFN5c3RlbSA6OiBQT1NJWCcsCisgICAgJ09wZXJhdGluZyBTeXN0
ZW0gOjogTWljcm9zb2Z0IDo6IFdpbmRvd3MnLAorICAgICdPcGVyYXRpbmcgU3lzdGVtIDo6IE1h
Y09TIDo6IE1hY09TIFgnLAorICAgICdUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBU
ZXN0aW5nJywKKyAgICAnVG9waWMgOjogU29mdHdhcmUgRGV2ZWxvcG1lbnQgOjogTGlicmFyaWVz
JywKKyAgICAnVG9waWMgOjogVXRpbGl0aWVzJywKKyAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2Ug
OjogUHl0aG9uIDo6IEltcGxlbWVudGF0aW9uIDo6IENQeXRob24nLAorICAgICdQcm9ncmFtbWlu
ZyBMYW5ndWFnZSA6OiBQeXRob24gOjogSW1wbGVtZW50YXRpb24gOjogUHlQeSddICsgWworICAg
ICgnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6ICVzJyAlIHgpIGZvciB4IGluCisg
ICAgJzIgMi43IDMgMy40IDMuNSAzLjYnLnNwbGl0KCldCisKK3dpdGggb3BlbignUkVBRE1FLnJz
dCcpIGFzIGZkOgorICAgIGxvbmdfZGVzY3JpcHRpb24gPSBmZC5yZWFkKCkKKworCitkZWYgZ2V0
X3ZlcnNpb24oKToKKyAgICBwID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZSgKKyAgICAg
ICAgICAgICAgICAgICAgIG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykpLCAicGx1Z2d5L19faW5p
dF9fLnB5IikKKyAgICB3aXRoIG9wZW4ocCkgYXMgZjoKKyAgICAgICAgZm9yIGxpbmUgaW4gZi5y
ZWFkbGluZXMoKToKKyAgICAgICAgICAgIGlmICJfX3ZlcnNpb25fXyIgaW4gbGluZToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gbGluZS5zdHJpcCgpLnNwbGl0KCI9IilbLTFdLnN0cmlwKCIgJyIp
CisgICAgcmFpc2UgVmFsdWVFcnJvcigiY291bGQgbm90IHJlYWQgdmVyc2lvbiIpCisKKworZGVm
IG1haW4oKToKKyAgICBzZXR1cCgKKyAgICAgICAgbmFtZT0ncGx1Z2d5JywKKyAgICAgICAgZGVz
Y3JpcHRpb249J3BsdWdpbiBhbmQgaG9vayBjYWxsaW5nIG1lY2hhbmlzbXMgZm9yIHB5dGhvbics
CisgICAgICAgIGxvbmdfZGVzY3JpcHRpb249bG9uZ19kZXNjcmlwdGlvbiwKKyAgICAgICAgdmVy
c2lvbj1nZXRfdmVyc2lvbigpLAorICAgICAgICBsaWNlbnNlPSdNSVQgbGljZW5zZScsCisgICAg
ICAgIHBsYXRmb3Jtcz1bJ3VuaXgnLCAnbGludXgnLCAnb3N4JywgJ3dpbjMyJ10sCisgICAgICAg
IGF1dGhvcj0nSG9sZ2VyIEtyZWtlbCcsCisgICAgICAgIGF1dGhvcl9lbWFpbD0naG9sZ2VyQG1l
cmxpbnV4LmV1JywKKyAgICAgICAgdXJsPSdodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
bHVnZ3knLAorICAgICAgICBweXRob25fcmVxdWlyZXM9Jz49Mi43LCAhPTMuMC4qLCAhPTMuMS4q
LCAhPTMuMi4qLCAhPTMuMy4qJywKKyAgICAgICAgY2xhc3NpZmllcnM9Y2xhc3NpZmllcnMsCisg
ICAgICAgIHBhY2thZ2VzPVsncGx1Z2d5J10sCisgICAgKQorCisKK2lmIF9fbmFtZV9fID09ICdf
X21haW5fXyc6CisgICAgbWFpbigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL2Jl
bmNobWFyay5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvYmVuY2htYXJrLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjVhOTEzZTlkNDE4ZGZhMzlkZGQ5YTcyNmQ0N2ExNzU1ZmVhYjliOGQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL2JlbmNobWFyay5weQpAQCAtMCwwICsxLDU5IEBACisi
IiIKK0JlbmNobWFya2luZyBhbmQgcGVyZm9ybWFuY2UgdGVzdHMuCisiIiIKK2ltcG9ydCBweXRl
c3QKK2Zyb20gcGx1Z2d5IGltcG9ydCAoX211bHRpY2FsbCwgX2xlZ2FjeW11bHRpY2FsbCwgSG9v
a0ltcGwsIEhvb2tzcGVjTWFya2VyLAorICAgICAgICAgICAgICAgICAgICBIb29raW1wbE1hcmtl
cikKKworaG9va3NwZWMgPSBIb29rc3BlY01hcmtlcigiZXhhbXBsZSIpCitob29raW1wbCA9IEhv
b2tpbXBsTWFya2VyKCJleGFtcGxlIikKKworCitkZWYgTUMobWV0aG9kcywga3dhcmdzLCBjYWxs
ZXJ0eXBlLCBmaXJzdHJlc3VsdD1GYWxzZSk6CisgICAgaG9va2Z1bmNzID0gW10KKyAgICBmb3Ig
bWV0aG9kIGluIG1ldGhvZHM6CisgICAgICAgIGYgPSBIb29rSW1wbChOb25lLCAiPHRlbXA+Iiwg
bWV0aG9kLCBtZXRob2QuZXhhbXBsZV9pbXBsKQorICAgICAgICBob29rZnVuY3MuYXBwZW5kKGYp
CisgICAgcmV0dXJuIGNhbGxlcnR5cGUoaG9va2Z1bmNzLCBrd2FyZ3MsIHsiZmlyc3RyZXN1bHQi
OiBmaXJzdHJlc3VsdH0pCisKKworQGhvb2tpbXBsCitkZWYgaG9vayhhcmcxLCBhcmcyLCBhcmcz
KToKKyAgICByZXR1cm4gYXJnMSwgYXJnMiwgYXJnMworCisKK0Bob29raW1wbChob29rd3JhcHBl
cj1UcnVlKQorZGVmIHdyYXBwZXIoYXJnMSwgYXJnMiwgYXJnMyk6CisgICAgeWllbGQKKworCitA
cHl0ZXN0LmZpeHR1cmUoCisgICAgcGFyYW1zPVsxMCwgMTAwXSwKKyAgICBpZHM9Imhvb2tzPXt9
Ii5mb3JtYXQsCispCitkZWYgaG9va3MocmVxdWVzdCk6CisgICAgcmV0dXJuIFtob29rIGZvciBp
IGluIHJhbmdlKHJlcXVlc3QucGFyYW0pXQorCisKK0BweXRlc3QuZml4dHVyZSgKKyAgICBwYXJh
bXM9WzEwLCAxMDBdLAorICAgIGlkcz0id3JhcHBlcnM9e30iLmZvcm1hdCwKKykKK2RlZiB3cmFw
cGVycyhyZXF1ZXN0KToKKyAgICByZXR1cm4gW3dyYXBwZXIgZm9yIGkgaW4gcmFuZ2UocmVxdWVz
dC5wYXJhbSldCisKKworQHB5dGVzdC5maXh0dXJlKAorICAgIHBhcmFtcz1bX211bHRpY2FsbCwg
X2xlZ2FjeW11bHRpY2FsbF0sCisgICAgaWRzPWxhbWJkYSBpdGVtOiBpdGVtLl9fbmFtZV9fCisp
CitkZWYgY2FsbGVydHlwZShyZXF1ZXN0KToKKyAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisK
K2RlZiBpbm5lcl9leGVjKG1ldGhvZHMsIGNhbGxlcnR5cGUpOgorICAgIHJldHVybiBNQyhtZXRo
b2RzLCB7J2FyZzEnOiAxLCAnYXJnMic6IDIsICdhcmczJzogM30sIGNhbGxlcnR5cGUpCisKKwor
ZGVmIHRlc3RfaG9va19hbmRfd3JhcHBlcnNfc3BlZWQoYmVuY2htYXJrLCBob29rcywgd3JhcHBl
cnMsIGNhbGxlcnR5cGUpOgorICAgIGJlbmNobWFyayhpbm5lcl9leGVjLCBob29rcyArIHdyYXBw
ZXJzLCBjYWxsZXJ0eXBlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy9jb25mdGVz
dC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvY29uZnRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Q2MWEz
NDljODhjNjg3ZjMxMWIxMDA1Y2FkNWNjYjA0YjFiODk4NgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGx1Z2d5L3Rlc3RpbmcvY29uZnRlc3QucHkKQEAgLTAsMCArMSwzMCBAQAoraW1wb3J0IHB5
dGVzdAorCisKK0BweXRlc3QuZml4dHVyZSgKKyAgICBwYXJhbXM9WworICAgICAgICBsYW1iZGEg
c3BlYzogc3BlYywKKyAgICAgICAgbGFtYmRhIHNwZWM6IHNwZWMoKQorICAgIF0sCisgICAgaWRz
PVsKKyAgICAgICAgInNwZWMtaXMtY2xhc3MiLAorICAgICAgICAic3BlYy1pcy1pbnN0YW5jZSIK
KyAgICBdLAorKQorZGVmIGhlX3BtKHJlcXVlc3QsIHBtKToKKyAgICBmcm9tIHBsdWdneSBpbXBv
cnQgSG9va3NwZWNNYXJrZXIKKyAgICBob29rc3BlYyA9IEhvb2tzcGVjTWFya2VyKCJleGFtcGxl
IikKKworICAgIGNsYXNzIEhvb2tzKG9iamVjdCk6CisgICAgICAgIEBob29rc3BlYworICAgICAg
ICBkZWYgaGVfbWV0aG9kMShzZWxmLCBhcmcpOgorICAgICAgICAgICAgcmV0dXJuIGFyZyArIDEK
KworICAgIHBtLmFkZF9ob29rc3BlY3MocmVxdWVzdC5wYXJhbShIb29rcykpCisgICAgcmV0dXJu
IHBtCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgcG0oKToKKyAgICBmcm9tIHBsdWdneSBpbXBv
cnQgUGx1Z2luTWFuYWdlcgorICAgIHJldHVybiBQbHVnaW5NYW5hZ2VyKCJleGFtcGxlIikKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9kZXRhaWxzLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVn
Z3kvdGVzdGluZy90ZXN0X2RldGFpbHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmZhZDE5OGQ5NTg1ZDRjM2Ix
OWY1ZWYyMDUyZTc0M2VjZjRlOGU2NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rl
c3RpbmcvdGVzdF9kZXRhaWxzLnB5CkBAIC0wLDAgKzEsMTAzIEBACitpbXBvcnQgd2FybmluZ3MK
KworaW1wb3J0IHB5dGVzdAorCitmcm9tIHBsdWdneSBpbXBvcnQgUGx1Z2luTWFuYWdlciwgSG9v
a2ltcGxNYXJrZXIsIEhvb2tzcGVjTWFya2VyLCBfUmVzdWx0CisKK2hvb2tzcGVjID0gSG9va3Nw
ZWNNYXJrZXIoImV4YW1wbGUiKQoraG9va2ltcGwgPSBIb29raW1wbE1hcmtlcigiZXhhbXBsZSIp
CisKKworZGVmIHRlc3RfcGFyc2VfaG9va2ltcGxfb3ZlcnJpZGUoKToKKyAgICBjbGFzcyBNeVBs
dWdpbk1hbmFnZXIoUGx1Z2luTWFuYWdlcik6CisgICAgICAgIGRlZiBwYXJzZV9ob29raW1wbF9v
cHRzKHNlbGYsIG1vZHVsZV9vcl9jbGFzcywgbmFtZSk6CisgICAgICAgICAgICBvcHRzID0gUGx1
Z2luTWFuYWdlci5wYXJzZV9ob29raW1wbF9vcHRzKAorICAgICAgICAgICAgICAgIHNlbGYsIG1v
ZHVsZV9vcl9jbGFzcywgbmFtZSkKKyAgICAgICAgICAgIGlmIG9wdHMgaXMgTm9uZToKKyAgICAg
ICAgICAgICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgoIngxIik6CisgICAgICAgICAgICAgICAgICAg
IG9wdHMgPSB7fQorICAgICAgICAgICAgcmV0dXJuIG9wdHMKKworICAgIGNsYXNzIFBsdWdpbihv
YmplY3QpOgorICAgICAgICBkZWYgeDFtZXRoKHNlbGYpOgorICAgICAgICAgICAgcGFzcworCisg
ICAgICAgIEBob29raW1wbChob29rd3JhcHBlcj1UcnVlLCB0cnlmaXJzdD1UcnVlKQorICAgICAg
ICBkZWYgeDFtZXRoMihzZWxmKToKKyAgICAgICAgICAgIHBhc3MKKworICAgIGNsYXNzIFNwZWMo
b2JqZWN0KToKKyAgICAgICAgQGhvb2tzcGVjCisgICAgICAgIGRlZiB4MW1ldGgoc2VsZik6Cisg
ICAgICAgICAgICBwYXNzCisKKyAgICAgICAgQGhvb2tzcGVjCisgICAgICAgIGRlZiB4MW1ldGgy
KHNlbGYpOgorICAgICAgICAgICAgcGFzcworCisgICAgcG0gPSBNeVBsdWdpbk1hbmFnZXIoaG9v
a3NwZWMucHJvamVjdF9uYW1lKQorICAgIHBtLnJlZ2lzdGVyKFBsdWdpbigpKQorICAgIHBtLmFk
ZF9ob29rc3BlY3MoU3BlYykKKyAgICBhc3NlcnQgbm90IHBtLmhvb2sueDFtZXRoLl9ub253cmFw
cGVyc1swXS5ob29rd3JhcHBlcgorICAgIGFzc2VydCBub3QgcG0uaG9vay54MW1ldGguX25vbndy
YXBwZXJzWzBdLnRyeWZpcnN0CisgICAgYXNzZXJ0IG5vdCBwbS5ob29rLngxbWV0aC5fbm9ud3Jh
cHBlcnNbMF0udHJ5bGFzdAorICAgIGFzc2VydCBub3QgcG0uaG9vay54MW1ldGguX25vbndyYXBw
ZXJzWzBdLm9wdGlvbmFsaG9vaworCisgICAgYXNzZXJ0IHBtLmhvb2sueDFtZXRoMi5fd3JhcHBl
cnNbMF0udHJ5Zmlyc3QKKyAgICBhc3NlcnQgcG0uaG9vay54MW1ldGgyLl93cmFwcGVyc1swXS5o
b29rd3JhcHBlcgorCisKK2RlZiB0ZXN0X3BsdWdpbl9nZXRhdHRyX3JhaXNlc19lcnJvcnMoKToK
KyAgICAiIiJQbHVnZ3kgbXVzdCBiZSBhYmxlIHRvIGhhbmRsZSBwbHVnaW5zIHdoaWNoIHJhaXNl
IHdlaXJkIGV4Y2VwdGlvbnMKKyAgICB3aGVuIGdldGF0dHIoKSBnZXRzIGNhbGxlZCAoIzExKS4K
KyAgICAiIiIKKyAgICBjbGFzcyBEb250VG91Y2hNZShvYmplY3QpOgorICAgICAgICBkZWYgX19n
ZXRhdHRyX18oc2VsZiwgeCk6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ2NhbnQgdG91
Y2ggbWUnKQorCisgICAgY2xhc3MgTW9kdWxlKG9iamVjdCk6CisgICAgICAgIHBhc3MKKworICAg
IG1vZHVsZSA9IE1vZHVsZSgpCisgICAgbW9kdWxlLnggPSBEb250VG91Y2hNZSgpCisKKyAgICBw
bSA9IFBsdWdpbk1hbmFnZXIoaG9va3NwZWMucHJvamVjdF9uYW1lKQorICAgICMgcmVnaXN0ZXIo
KSB3b3VsZCByYWlzZSBhbiBlcnJvcgorICAgIHBtLnJlZ2lzdGVyKG1vZHVsZSwgJ2RvbnR0b3Vj
aCcpCisgICAgYXNzZXJ0IHBtLmdldF9wbHVnaW4oJ2RvbnR0b3VjaCcpIGlzIG1vZHVsZQorCisK
K2RlZiB0ZXN0X3dhcm5pbmdfb25fY2FsbF92c19ob29rc3BlY19hcmdfbWlzbWF0Y2goKToKKyAg
ICAiIiJWZXJpZnkgdGhhdCBpcyBhIGhvb2sgaXMgY2FsbGVkIHdpdGggbGVzcyBhcmd1bWVudHMg
dGhlbiBkZWZpbmVkIGluIHRoZQorICAgIHNwZWMgdGhhdCBhIHdhcm5pbmcgaXMgZW1pdHRlZC4K
KyAgICAiIiIKKyAgICBjbGFzcyBTcGVjOgorICAgICAgICBAaG9va3NwZWMKKyAgICAgICAgZGVm
IG15aG9vayhzZWxmLCBhcmcxLCBhcmcyKToKKyAgICAgICAgICAgIHBhc3MKKworICAgIGNsYXNz
IFBsdWdpbjoKKyAgICAgICAgQGhvb2tpbXBsCisgICAgICAgIGRlZiBteWhvb2soc2VsZiwgYXJn
MSk6CisgICAgICAgICAgICBwYXNzCisKKyAgICBwbSA9IFBsdWdpbk1hbmFnZXIoaG9va3NwZWMu
cHJvamVjdF9uYW1lKQorICAgIHBtLnJlZ2lzdGVyKFBsdWdpbigpKQorICAgIHBtLmFkZF9ob29r
c3BlY3MoU3BlYygpKQorCisgICAgd2l0aCB3YXJuaW5ncy5jYXRjaF93YXJuaW5ncyhyZWNvcmQ9
VHJ1ZSkgYXMgd2FybnM6CisgICAgICAgIHdhcm5pbmdzLnNpbXBsZWZpbHRlcignYWx3YXlzJykK
KworICAgICAgICAjIGNhbGxpbmcgc2hvdWxkIHRyaWdnZXIgYSB3YXJuaW5nCisgICAgICAgIHBt
Lmhvb2subXlob29rKGFyZzE9MSkKKworICAgICAgICBhc3NlcnQgbGVuKHdhcm5zKSA9PSAxCisg
ICAgICAgIHdhcm5pbmcgPSB3YXJuc1stMV0KKyAgICAgICAgYXNzZXJ0IGlzc3ViY2xhc3Mod2Fy
bmluZy5jYXRlZ29yeSwgV2FybmluZykKKyAgICAgICAgYXNzZXJ0ICJBcmd1bWVudChzKSAoJ2Fy
ZzInLCkiIGluIHN0cih3YXJuaW5nLm1lc3NhZ2UpCisKKworZGVmIHRlc3RfcmVzdWx0X2RlcHJl
Y2F0ZWQoKToKKyAgICByID0gX1Jlc3VsdCgxMCwgTm9uZSkKKyAgICB3aXRoIHB5dGVzdC5kZXBy
ZWNhdGVkX2NhbGwoKToKKyAgICAgICAgYXNzZXJ0IHIucmVzdWx0ID09IDEwCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rlc3RfaGVscGVycy5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3Rp
bmcvdGVzdF9oZWxwZXJzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxNzgwOTY4NDQ2NTA4M2U0ZDAwMTM0ZjIz
NzUxYmYwYzRjMmEzNDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rl
c3RfaGVscGVycy5weQpAQCAtMCwwICsxLDY4IEBACitmcm9tIHBsdWdneSBpbXBvcnQgX2Zvcm1h
dGRlZiwgdmFybmFtZXMKKworCitkZWYgdGVzdF92YXJuYW1lcygpOgorICAgIGRlZiBmKHgpOgor
ICAgICAgICBpID0gMyAgIyBub3FhCisKKyAgICBjbGFzcyBBKG9iamVjdCk6CisgICAgICAgIGRl
ZiBmKHNlbGYsIHkpOgorICAgICAgICAgICAgcGFzcworCisgICAgY2xhc3MgQihvYmplY3QpOgor
ICAgICAgICBkZWYgX19jYWxsX18oc2VsZiwgeik6CisgICAgICAgICAgICBwYXNzCisKKyAgICBh
c3NlcnQgdmFybmFtZXMoZikgPT0gKCgieCIsKSwgKCkpCisgICAgYXNzZXJ0IHZhcm5hbWVzKEEo
KS5mKSA9PSAoKCd5JywpLCAoKSkKKyAgICBhc3NlcnQgdmFybmFtZXMoQigpKSA9PSAoKCd6Jywp
LCAoKSkKKworCitkZWYgdGVzdF92YXJuYW1lc19kZWZhdWx0KCk6CisgICAgZGVmIGYoeCwgeT0z
KToKKyAgICAgICAgcGFzcworCisgICAgYXNzZXJ0IHZhcm5hbWVzKGYpID09ICgoIngiLCksICgi
eSIsKSkKKworCitkZWYgdGVzdF92YXJuYW1lc19jbGFzcygpOgorICAgIGNsYXNzIEMob2JqZWN0
KToKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHgpOgorICAgICAgICAgICAgcGFzcworCisg
ICAgY2xhc3MgRChvYmplY3QpOgorICAgICAgICBwYXNzCisKKyAgICBjbGFzcyBFKG9iamVjdCk6
CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCB4KToKKyAgICAgICAgICAgIHBhc3MKKworICAg
IGNsYXNzIEYob2JqZWN0KToKKyAgICAgICAgcGFzcworCisgICAgYXNzZXJ0IHZhcm5hbWVzKEMp
ID09ICgoIngiLCksICgpKQorICAgIGFzc2VydCB2YXJuYW1lcyhEKSA9PSAoKCksICgpKQorICAg
IGFzc2VydCB2YXJuYW1lcyhFKSA9PSAoKCJ4IiwpLCAoKSkKKyAgICBhc3NlcnQgdmFybmFtZXMo
RikgPT0gKCgpLCAoKSkKKworCitkZWYgdGVzdF9mb3JtYXRkZWYoKToKKyAgICBkZWYgZnVuY3Rp
b24xKCk6CisgICAgICAgIHBhc3MKKworICAgIGFzc2VydCBfZm9ybWF0ZGVmKGZ1bmN0aW9uMSkg
PT0gJ2Z1bmN0aW9uMSgpJworCisgICAgZGVmIGZ1bmN0aW9uMihhcmcxKToKKyAgICAgICAgcGFz
cworCisgICAgYXNzZXJ0IF9mb3JtYXRkZWYoZnVuY3Rpb24yKSA9PSAiZnVuY3Rpb24yKGFyZzEp
IgorCisgICAgZGVmIGZ1bmN0aW9uMyhhcmcxLCBhcmcyPSJxd2UiKToKKyAgICAgICAgcGFzcwor
CisgICAgYXNzZXJ0IF9mb3JtYXRkZWYoZnVuY3Rpb24zKSA9PSAiZnVuY3Rpb24zKGFyZzEsIGFy
ZzI9J3F3ZScpIgorCisgICAgZGVmIGZ1bmN0aW9uNChhcmcxLCAqYXJncywgKiprd2FyZ3MpOgor
ICAgICAgICBwYXNzCisKKyAgICBhc3NlcnQgX2Zvcm1hdGRlZihmdW5jdGlvbjQpID09ICJmdW5j
dGlvbjQoYXJnMSwgKmFyZ3MsICoqa3dhcmdzKSIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rl
c3RpbmcvdGVzdF9ob29rcmVsYXkucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rlc3RfaG9va3Jl
bGF5LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjVlNzgyMWJlZDhmOWQwZDNhMWI5OGNmZTljMDc3MjQxNjljNWM0
MWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rlc3RfaG9va3JlbGF5
LnB5CkBAIC0wLDAgKzEsMjEwIEBACitpbXBvcnQgcHl0ZXN0Citmcm9tIHBsdWdneSBpbXBvcnQg
UGx1Z2luVmFsaWRhdGlvbkVycm9yLCBIb29raW1wbE1hcmtlciwgSG9va3NwZWNNYXJrZXIKKwor
Citob29rc3BlYyA9IEhvb2tzcGVjTWFya2VyKCJleGFtcGxlIikKK2hvb2tpbXBsID0gSG9va2lt
cGxNYXJrZXIoImV4YW1wbGUiKQorCisKK2RlZiB0ZXN0X2hhcHB5cGF0aChwbSk6CisgICAgY2xh
c3MgQXBpKG9iamVjdCk6CisgICAgICAgIEBob29rc3BlYworICAgICAgICBkZWYgaGVsbG8oc2Vs
ZiwgYXJnKToKKyAgICAgICAgICAgICJhcGkgaG9vayAxIgorCisgICAgcG0uYWRkX2hvb2tzcGVj
cyhBcGkpCisgICAgaG9vayA9IHBtLmhvb2sKKyAgICBhc3NlcnQgaGFzYXR0cihob29rLCAnaGVs
bG8nKQorICAgIGFzc2VydCByZXByKGhvb2suaGVsbG8pLmZpbmQoImhlbGxvIikgIT0gLTEKKwor
ICAgIGNsYXNzIFBsdWdpbihvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVm
IGhlbGxvKHNlbGYsIGFyZyk6CisgICAgICAgICAgICByZXR1cm4gYXJnICsgMQorCisgICAgcGx1
Z2luID0gUGx1Z2luKCkKKyAgICBwbS5yZWdpc3RlcihwbHVnaW4pCisgICAgb3V0ID0gaG9vay5o
ZWxsbyhhcmc9MykKKyAgICBhc3NlcnQgb3V0ID09IFs0XQorICAgIGFzc2VydCBub3QgaGFzYXR0
cihob29rLCAnd29ybGQnKQorICAgIHBtLnVucmVnaXN0ZXIocGx1Z2luKQorICAgIGFzc2VydCBo
b29rLmhlbGxvKGFyZz0zKSA9PSBbXQorCisKK2RlZiB0ZXN0X2FyZ21pc21hdGNoKHBtKToKKyAg
ICBjbGFzcyBBcGkob2JqZWN0KToKKyAgICAgICAgQGhvb2tzcGVjCisgICAgICAgIGRlZiBoZWxs
byhzZWxmLCBhcmcpOgorICAgICAgICAgICAgImFwaSBob29rIDEiCisKKyAgICBwbS5hZGRfaG9v
a3NwZWNzKEFwaSkKKworICAgIGNsYXNzIFBsdWdpbihvYmplY3QpOgorICAgICAgICBAaG9va2lt
cGwKKyAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZ3dyb25nKToKKyAgICAgICAgICAgIHBhc3MK
KworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhQbHVnaW5WYWxpZGF0aW9uRXJyb3IpIGFzIGV4YzoK
KyAgICAgICAgcG0ucmVnaXN0ZXIoUGx1Z2luKCkpCisKKyAgICBhc3NlcnQgImFyZ3dyb25nIiBp
biBzdHIoZXhjLnZhbHVlKQorCisKK2RlZiB0ZXN0X29ubHlfa3dhcmdzKHBtKToKKyAgICBjbGFz
cyBBcGkob2JqZWN0KToKKyAgICAgICAgQGhvb2tzcGVjCisgICAgICAgIGRlZiBoZWxsbyhzZWxm
LCBhcmcpOgorICAgICAgICAgICAgImFwaSBob29rIDEiCisKKyAgICBwbS5hZGRfaG9va3NwZWNz
KEFwaSkKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yKSBhcyBleGM6CisgICAgICAg
IHBtLmhvb2suaGVsbG8oMykKKworICAgIGNvbXByZWhlbnNpYmxlID0gImhvb2sgY2FsbGluZyBz
dXBwb3J0cyBvbmx5IGtleXdvcmQgYXJndW1lbnRzIgorICAgIGFzc2VydCBjb21wcmVoZW5zaWJs
ZSBpbiBzdHIoZXhjLnZhbHVlKQorCisKK2RlZiB0ZXN0X2NhbGxfb3JkZXIocG0pOgorICAgIGNs
YXNzIEFwaShvYmplY3QpOgorICAgICAgICBAaG9va3NwZWMKKyAgICAgICAgZGVmIGhlbGxvKHNl
bGYsIGFyZyk6CisgICAgICAgICAgICAiYXBpIGhvb2sgMSIKKworICAgIHBtLmFkZF9ob29rc3Bl
Y3MoQXBpKQorCisgICAgY2xhc3MgUGx1Z2luMShvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwK
KyAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZyk6CisgICAgICAgICAgICByZXR1cm4gMQorCisg
ICAgY2xhc3MgUGx1Z2luMihvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVm
IGhlbGxvKHNlbGYsIGFyZyk6CisgICAgICAgICAgICByZXR1cm4gMgorCisgICAgY2xhc3MgUGx1
Z2luMyhvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVmIGhlbGxvKHNlbGYs
IGFyZyk6CisgICAgICAgICAgICByZXR1cm4gMworCisgICAgY2xhc3MgUGx1Z2luNChvYmplY3Qp
OgorICAgICAgICBAaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKKyAgICAgICAgZGVmIGhlbGxv
KHNlbGYsIGFyZyk6CisgICAgICAgICAgICBhc3NlcnQgYXJnID09IDAKKyAgICAgICAgICAgIG91
dGNvbWUgPSB5aWVsZAorICAgICAgICAgICAgYXNzZXJ0IG91dGNvbWUuZ2V0X3Jlc3VsdCgpID09
IFszLCAyLCAxXQorCisgICAgcG0ucmVnaXN0ZXIoUGx1Z2luMSgpKQorICAgIHBtLnJlZ2lzdGVy
KFBsdWdpbjIoKSkKKyAgICBwbS5yZWdpc3RlcihQbHVnaW4zKCkpCisgICAgcG0ucmVnaXN0ZXIo
UGx1Z2luNCgpKSAgIyBob29rd3JhcHBlciBzaG91bGQgZ2V0IHNhbWUgbGlzdCByZXN1bHQKKyAg
ICByZXMgPSBwbS5ob29rLmhlbGxvKGFyZz0wKQorICAgIGFzc2VydCByZXMgPT0gWzMsIDIsIDFd
CisKKworZGVmIHRlc3RfZmlyc3RyZXN1bHRfZGVmaW5pdGlvbihwbSk6CisgICAgY2xhc3MgQXBp
KG9iamVjdCk6CisgICAgICAgIEBob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQorICAgICAgICBk
ZWYgaGVsbG8oc2VsZiwgYXJnKToKKyAgICAgICAgICAgICJhcGkgaG9vayAxIgorCisgICAgcG0u
YWRkX2hvb2tzcGVjcyhBcGkpCisKKyAgICBjbGFzcyBQbHVnaW4xKG9iamVjdCk6CisgICAgICAg
IEBob29raW1wbAorICAgICAgICBkZWYgaGVsbG8oc2VsZiwgYXJnKToKKyAgICAgICAgICAgIHJl
dHVybiBhcmcgKyAxCisKKyAgICBjbGFzcyBQbHVnaW4yKG9iamVjdCk6CisgICAgICAgIEBob29r
aW1wbAorICAgICAgICBkZWYgaGVsbG8oc2VsZiwgYXJnKToKKyAgICAgICAgICAgIHJldHVybiBh
cmcgLSAxCisKKyAgICBjbGFzcyBQbHVnaW4zKG9iamVjdCk6CisgICAgICAgIEBob29raW1wbAor
ICAgICAgICBkZWYgaGVsbG8oc2VsZiwgYXJnKToKKyAgICAgICAgICAgIHJldHVybiBOb25lCisK
KyAgICBjbGFzcyBQbHVnaW40KG9iamVjdCk6CisgICAgICAgIEBob29raW1wbChob29rd3JhcHBl
cj1UcnVlKQorICAgICAgICBkZWYgaGVsbG8oc2VsZiwgYXJnKToKKyAgICAgICAgICAgIGFzc2Vy
dCBhcmcgPT0gMworICAgICAgICAgICAgb3V0Y29tZSA9IHlpZWxkCisgICAgICAgICAgICBhc3Nl
cnQgb3V0Y29tZS5nZXRfcmVzdWx0KCkgPT0gMgorCisgICAgcG0ucmVnaXN0ZXIoUGx1Z2luMSgp
KSAgIyBkaXNjYXJkZWQgLSBub3QgdGhlIGxhc3QgcmVnaXN0ZXJlZCBwbHVnaW4KKyAgICBwbS5y
ZWdpc3RlcihQbHVnaW4yKCkpICAjIHVzZWQgYXMgcmVzdWx0CisgICAgcG0ucmVnaXN0ZXIoUGx1
Z2luMygpKSAgIyBOb25lIHJlc3VsdCBpcyBpZ25vcmVkCisgICAgcG0ucmVnaXN0ZXIoUGx1Z2lu
NCgpKSAgIyBob29rd3JhcHBlciBzaG91bGQgZ2V0IHNhbWUgbm9uLWxpc3QgcmVzdWx0CisgICAg
cmVzID0gcG0uaG9vay5oZWxsbyhhcmc9MykKKyAgICBhc3NlcnQgcmVzID09IDIKKworCitkZWYg
dGVzdF9maXJzdHJlc3VsdF9mb3JjZV9yZXN1bHQocG0pOgorICAgICIiIlZlcmlmeSBmb3JjaW5n
IGEgcmVzdWx0IGluIGEgd3JhcHBlci4KKyAgICAiIiIKKyAgICBjbGFzcyBBcGkob2JqZWN0KToK
KyAgICAgICAgQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCisgICAgICAgIGRlZiBoZWxsbyhz
ZWxmLCBhcmcpOgorICAgICAgICAgICAgImFwaSBob29rIDEiCisKKyAgICBwbS5hZGRfaG9va3Nw
ZWNzKEFwaSkKKworICAgIGNsYXNzIFBsdWdpbjEob2JqZWN0KToKKyAgICAgICAgQGhvb2tpbXBs
CisgICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgorICAgICAgICAgICAgcmV0dXJuIGFyZyAr
IDEKKworICAgIGNsYXNzIFBsdWdpbjIob2JqZWN0KToKKyAgICAgICAgQGhvb2tpbXBsKGhvb2t3
cmFwcGVyPVRydWUpCisgICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgorICAgICAgICAgICAg
YXNzZXJ0IGFyZyA9PSAzCisgICAgICAgICAgICBvdXRjb21lID0geWllbGQKKyAgICAgICAgICAg
IGFzc2VydCBvdXRjb21lLmdldF9yZXN1bHQoKSA9PSA0CisgICAgICAgICAgICBvdXRjb21lLmZv
cmNlX3Jlc3VsdCgwKQorCisgICAgY2xhc3MgUGx1Z2luMyhvYmplY3QpOgorICAgICAgICBAaG9v
a2ltcGwKKyAgICAgICAgZGVmIGhlbGxvKHNlbGYsIGFyZyk6CisgICAgICAgICAgICByZXR1cm4g
Tm9uZQorCisgICAgcG0ucmVnaXN0ZXIoUGx1Z2luMSgpKQorICAgIHBtLnJlZ2lzdGVyKFBsdWdp
bjIoKSkgICMgd3JhcHBlcgorICAgIHBtLnJlZ2lzdGVyKFBsdWdpbjMoKSkgICMgaWdub3JlZCBz
aW5jZSByZXR1cm5zIE5vbmUKKyAgICByZXMgPSBwbS5ob29rLmhlbGxvKGFyZz0zKQorICAgIGFz
c2VydCByZXMgPT0gMCAgIyB0aGlzIHJlc3VsdCBpcyBmb3JjZWQgYW5kIG5vdCBhIGxpc3QKKwor
CitkZWYgdGVzdF9maXJzdHJlc3VsdF9yZXR1cm5zX25vbmUocG0pOgorICAgICIiIklmIE5vbmUg
cmVzdWx0cyBhcmUgcmV0dXJuZWQgYnkgdW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbnMgZW5zdXJl
CisgICAgdGhlIG11bHRpLWNhbGwgbG9vcCByZXR1cm5zIGEgTm9uZSB2YWx1ZS4KKyAgICAiIiIK
KyAgICBjbGFzcyBBcGkob2JqZWN0KToKKyAgICAgICAgQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRy
dWUpCisgICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgorICAgICAgICAgICAgImFwaSBob29r
IDEiCisKKyAgICBwbS5hZGRfaG9va3NwZWNzKEFwaSkKKworICAgIGNsYXNzIFBsdWdpbjEob2Jq
ZWN0KToKKyAgICAgICAgQGhvb2tpbXBsCisgICAgICAgIGRlZiBoZWxsbyhzZWxmLCBhcmcpOgor
ICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIHBtLnJlZ2lzdGVyKFBsdWdpbjEoKSkKKyAg
ICByZXMgPSBwbS5ob29rLmhlbGxvKGFyZz0zKQorICAgIGFzc2VydCByZXMgaXMgTm9uZQorCisK
K2RlZiB0ZXN0X2ZpcnN0cmVzdWx0X25vX3BsdWdpbihwbSk6CisgICAgIiIiSWYgbm8gaW1wbGVt
ZW50YXRpb25zL3BsdWdpbnMgaGF2ZSBiZWVuIHJlZ2lzdGVyZWQgZm9yIGEgZmlyc3RyZXN1bHQK
KyAgICBob29rIHRoZSBtdWx0aS1jYWxsIGxvb3Agc2hvdWxkIHJldHVybiBhIE5vbmUgdmFsdWUu
CisgICAgIiIiCisgICAgY2xhc3MgQXBpKG9iamVjdCk6CisgICAgICAgIEBob29rc3BlYyhmaXJz
dHJlc3VsdD1UcnVlKQorICAgICAgICBkZWYgaGVsbG8oc2VsZiwgYXJnKToKKyAgICAgICAgICAg
ICJhcGkgaG9vayAxIgorCisgICAgcG0uYWRkX2hvb2tzcGVjcyhBcGkpCisgICAgcmVzID0gcG0u
aG9vay5oZWxsbyhhcmc9MykKKyAgICBhc3NlcnQgcmVzIGlzIE5vbmUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9tZXRob2Rfb3JkZXJpbmcucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90
ZXN0aW5nL3Rlc3RfbWV0aG9kX29yZGVyaW5nLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1ODRhMGFlNWE4MjQ0
ZjFkMDYzZTczYjliMjM5NzI5OTNlNjExZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdn
eS90ZXN0aW5nL3Rlc3RfbWV0aG9kX29yZGVyaW5nLnB5CkBAIC0wLDAgKzEsMzIyIEBACitpbXBv
cnQgcHl0ZXN0CisKKworaW1wb3J0IHN5cworaW1wb3J0IHR5cGVzCisKK2Zyb20gcGx1Z2d5IGlt
cG9ydCBQbHVnaW5NYW5hZ2VyLCBIb29rSW1wbCwgSG9va2ltcGxNYXJrZXIsIEhvb2tzcGVjTWFy
a2VyCisKK2hvb2tzcGVjID0gSG9va3NwZWNNYXJrZXIoImV4YW1wbGUiKQoraG9va2ltcGwgPSBI
b29raW1wbE1hcmtlcigiZXhhbXBsZSIpCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgaGMocG0p
OgorICAgIGNsYXNzIEhvb2tzKG9iamVjdCk6CisgICAgICAgIEBob29rc3BlYworICAgICAgICBk
ZWYgaGVfbWV0aG9kMShzZWxmLCBhcmcpOgorICAgICAgICAgICAgcGFzcworICAgIHBtLmFkZF9o
b29rc3BlY3MoSG9va3MpCisgICAgcmV0dXJuIHBtLmhvb2suaGVfbWV0aG9kMQorCisKK0BweXRl
c3QuZml4dHVyZQorZGVmIGFkZG1ldGgoaGMpOgorICAgIGRlZiBhZGRtZXRoKHRyeWZpcnN0PUZh
bHNlLCB0cnlsYXN0PUZhbHNlLCBob29rd3JhcHBlcj1GYWxzZSk6CisgICAgICAgIGRlZiB3cmFw
KGZ1bmMpOgorICAgICAgICAgICAgaG9va2ltcGwodHJ5Zmlyc3Q9dHJ5Zmlyc3QsIHRyeWxhc3Q9
dHJ5bGFzdCwKKyAgICAgICAgICAgICAgICAgICAgIGhvb2t3cmFwcGVyPWhvb2t3cmFwcGVyKShm
dW5jKQorICAgICAgICAgICAgaGMuX2FkZF9ob29raW1wbChIb29rSW1wbChOb25lLCAiPHRlbXA+
IiwgZnVuYywgZnVuYy5leGFtcGxlX2ltcGwpKQorICAgICAgICAgICAgcmV0dXJuIGZ1bmMKKyAg
ICAgICAgcmV0dXJuIHdyYXAKKyAgICByZXR1cm4gYWRkbWV0aAorCisKK2RlZiBmdW5jcyhob29r
bWV0aG9kcyk6CisgICAgcmV0dXJuIFtob29rbWV0aG9kLmZ1bmN0aW9uIGZvciBob29rbWV0aG9k
IGluIGhvb2ttZXRob2RzXQorCisKK2RlZiB0ZXN0X2FkZGluZ19ub253cmFwcGVycyhoYywgYWRk
bWV0aCk6CisgICAgQGFkZG1ldGgoKQorICAgIGRlZiBoZV9tZXRob2QxKCk6CisgICAgICAgIHBh
c3MKKworICAgIEBhZGRtZXRoKCkKKyAgICBkZWYgaGVfbWV0aG9kMigpOgorICAgICAgICBwYXNz
CisKKyAgICBAYWRkbWV0aCgpCisgICAgZGVmIGhlX21ldGhvZDMoKToKKyAgICAgICAgcGFzcwor
ICAgIGFzc2VydCBmdW5jcyhoYy5fbm9ud3JhcHBlcnMpID09IFtoZV9tZXRob2QxLCBoZV9tZXRo
b2QyLCBoZV9tZXRob2QzXQorCisKK2RlZiB0ZXN0X2FkZGluZ19ub253cmFwcGVyc190cnlsYXN0
KGhjLCBhZGRtZXRoKToKKyAgICBAYWRkbWV0aCgpCisgICAgZGVmIGhlX21ldGhvZDFfbWlkZGxl
KCk6CisgICAgICAgIHBhc3MKKworICAgIEBhZGRtZXRoKHRyeWxhc3Q9VHJ1ZSkKKyAgICBkZWYg
aGVfbWV0aG9kMSgpOgorICAgICAgICBwYXNzCisKKyAgICBAYWRkbWV0aCgpCisgICAgZGVmIGhl
X21ldGhvZDFfYigpOgorICAgICAgICBwYXNzCisgICAgYXNzZXJ0IGZ1bmNzKGhjLl9ub253cmFw
cGVycykgPT0gW2hlX21ldGhvZDEsIGhlX21ldGhvZDFfbWlkZGxlLCBoZV9tZXRob2QxX2JdCisK
KworZGVmIHRlc3RfYWRkaW5nX25vbndyYXBwZXJzX3RyeWxhc3QzKGhjLCBhZGRtZXRoKToKKyAg
ICBAYWRkbWV0aCgpCisgICAgZGVmIGhlX21ldGhvZDFfYSgpOgorICAgICAgICBwYXNzCisKKyAg
ICBAYWRkbWV0aCh0cnlsYXN0PVRydWUpCisgICAgZGVmIGhlX21ldGhvZDFfYigpOgorICAgICAg
ICBwYXNzCisKKyAgICBAYWRkbWV0aCgpCisgICAgZGVmIGhlX21ldGhvZDFfYygpOgorICAgICAg
ICBwYXNzCisKKyAgICBAYWRkbWV0aCh0cnlsYXN0PVRydWUpCisgICAgZGVmIGhlX21ldGhvZDFf
ZCgpOgorICAgICAgICBwYXNzCisgICAgYXNzZXJ0IGZ1bmNzKGhjLl9ub253cmFwcGVycykgPT0g
XAorICAgICAgICBbaGVfbWV0aG9kMV9kLCBoZV9tZXRob2QxX2IsIGhlX21ldGhvZDFfYSwgaGVf
bWV0aG9kMV9jXQorCisKK2RlZiB0ZXN0X2FkZGluZ19ub253cmFwcGVyc190cnlsYXN0MihoYywg
YWRkbWV0aCk6CisgICAgQGFkZG1ldGgoKQorICAgIGRlZiBoZV9tZXRob2QxX21pZGRsZSgpOgor
ICAgICAgICBwYXNzCisKKyAgICBAYWRkbWV0aCgpCisgICAgZGVmIGhlX21ldGhvZDFfYigpOgor
ICAgICAgICBwYXNzCisKKyAgICBAYWRkbWV0aCh0cnlsYXN0PVRydWUpCisgICAgZGVmIGhlX21l
dGhvZDEoKToKKyAgICAgICAgcGFzcworICAgIGFzc2VydCBmdW5jcyhoYy5fbm9ud3JhcHBlcnMp
ID09IFwKKyAgICAgICAgW2hlX21ldGhvZDEsIGhlX21ldGhvZDFfbWlkZGxlLCBoZV9tZXRob2Qx
X2JdCisKKworZGVmIHRlc3RfYWRkaW5nX25vbndyYXBwZXJzX3RyeWZpcnN0KGhjLCBhZGRtZXRo
KToKKyAgICBAYWRkbWV0aCh0cnlmaXJzdD1UcnVlKQorICAgIGRlZiBoZV9tZXRob2QxKCk6Cisg
ICAgICAgIHBhc3MKKworICAgIEBhZGRtZXRoKCkKKyAgICBkZWYgaGVfbWV0aG9kMV9taWRkbGUo
KToKKyAgICAgICAgcGFzcworCisgICAgQGFkZG1ldGgoKQorICAgIGRlZiBoZV9tZXRob2QxX2Io
KToKKyAgICAgICAgcGFzcworICAgIGFzc2VydCBmdW5jcyhoYy5fbm9ud3JhcHBlcnMpID09IFsK
KyAgICAgICAgaGVfbWV0aG9kMV9taWRkbGUsIGhlX21ldGhvZDFfYiwgaGVfbWV0aG9kMV0KKwor
CitkZWYgdGVzdF9hZGRpbmdfd3JhcHBlcnNfb3JkZXJpbmcoaGMsIGFkZG1ldGgpOgorICAgIEBh
ZGRtZXRoKGhvb2t3cmFwcGVyPVRydWUpCisgICAgZGVmIGhlX21ldGhvZDEoKToKKyAgICAgICAg
cGFzcworCisgICAgQGFkZG1ldGgoKQorICAgIGRlZiBoZV9tZXRob2QxX21pZGRsZSgpOgorICAg
ICAgICBwYXNzCisKKyAgICBAYWRkbWV0aChob29rd3JhcHBlcj1UcnVlKQorICAgIGRlZiBoZV9t
ZXRob2QzKCk6CisgICAgICAgIHBhc3MKKworICAgIGFzc2VydCBmdW5jcyhoYy5fbm9ud3JhcHBl
cnMpID09IFtoZV9tZXRob2QxX21pZGRsZV0KKyAgICBhc3NlcnQgZnVuY3MoaGMuX3dyYXBwZXJz
KSA9PSBbaGVfbWV0aG9kMSwgaGVfbWV0aG9kM10KKworCitkZWYgdGVzdF9hZGRpbmdfd3JhcHBl
cnNfb3JkZXJpbmdfdHJ5Zmlyc3QoaGMsIGFkZG1ldGgpOgorICAgIEBhZGRtZXRoKGhvb2t3cmFw
cGVyPVRydWUsIHRyeWZpcnN0PVRydWUpCisgICAgZGVmIGhlX21ldGhvZDEoKToKKyAgICAgICAg
cGFzcworCisgICAgQGFkZG1ldGgoaG9va3dyYXBwZXI9VHJ1ZSkKKyAgICBkZWYgaGVfbWV0aG9k
MigpOgorICAgICAgICBwYXNzCisKKyAgICBhc3NlcnQgaGMuX25vbndyYXBwZXJzID09IFtdCisg
ICAgYXNzZXJ0IGZ1bmNzKGhjLl93cmFwcGVycykgPT0gW2hlX21ldGhvZDIsIGhlX21ldGhvZDFd
CisKKworZGVmIHRlc3RfaG9va3NwZWMocG0pOgorICAgIGNsYXNzIEhvb2tTcGVjKG9iamVjdCk6
CisgICAgICAgIEBob29rc3BlYygpCisgICAgICAgIGRlZiBoZV9teWhvb2sxKGFyZzEpOgorICAg
ICAgICAgICAgcGFzcworCisgICAgICAgIEBob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQorICAg
ICAgICBkZWYgaGVfbXlob29rMihhcmcxKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBA
aG9va3NwZWMoZmlyc3RyZXN1bHQ9RmFsc2UpCisgICAgICAgIGRlZiBoZV9teWhvb2szKGFyZzEp
OgorICAgICAgICAgICAgcGFzcworCisgICAgcG0uYWRkX2hvb2tzcGVjcyhIb29rU3BlYykKKyAg
ICBhc3NlcnQgbm90IHBtLmhvb2suaGVfbXlob29rMS5zcGVjX29wdHNbImZpcnN0cmVzdWx0Il0K
KyAgICBhc3NlcnQgcG0uaG9vay5oZV9teWhvb2syLnNwZWNfb3B0c1siZmlyc3RyZXN1bHQiXQor
ICAgIGFzc2VydCBub3QgcG0uaG9vay5oZV9teWhvb2szLnNwZWNfb3B0c1siZmlyc3RyZXN1bHQi
XQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnbmFtZScsIFsiaG9va3dyYXBwZXIiLCAi
b3B0aW9uYWxob29rIiwgInRyeWZpcnN0IiwgInRyeWxhc3QiXSkKK0BweXRlc3QubWFyay5wYXJh
bWV0cml6ZSgndmFsJywgW1RydWUsIEZhbHNlXSkKK2RlZiB0ZXN0X2hvb2tpbXBsKG5hbWUsIHZh
bCk6CisgICAgQGhvb2tpbXBsKCoqe25hbWU6IHZhbH0pCisgICAgZGVmIGhlX215aG9vazEoYXJn
MSk6CisgICAgICAgIHBhc3MKKyAgICBpZiB2YWw6CisgICAgICAgIGFzc2VydCBoZV9teWhvb2sx
LmV4YW1wbGVfaW1wbC5nZXQobmFtZSkKKyAgICBlbHNlOgorICAgICAgICBhc3NlcnQgbm90IGhh
c2F0dHIoaGVfbXlob29rMSwgbmFtZSkKKworCitkZWYgdGVzdF9sb2FkX3NldHVwdG9vbHNfaW5z
dGFudGlhdGlvbihtb25rZXlwYXRjaCwgcG0pOgorICAgIHBrZ19yZXNvdXJjZXMgPSBweXRlc3Qu
aW1wb3J0b3Jza2lwKCJwa2dfcmVzb3VyY2VzIikKKworICAgIGRlZiBteV9pdGVyKG5hbWUpOgor
ICAgICAgICBhc3NlcnQgbmFtZSA9PSAiaGVsbG8iCisKKyAgICAgICAgY2xhc3MgRW50cnlQb2lu
dChvYmplY3QpOgorICAgICAgICAgICAgbmFtZSA9ICJteW5hbWUiCisgICAgICAgICAgICBkaXN0
ID0gTm9uZQorCisgICAgICAgICAgICBkZWYgbG9hZChzZWxmKToKKyAgICAgICAgICAgICAgICBj
bGFzcyBQc2V1ZG9QbHVnaW4ob2JqZWN0KToKKyAgICAgICAgICAgICAgICAgICAgeCA9IDQyCisg
ICAgICAgICAgICAgICAgcmV0dXJuIFBzZXVkb1BsdWdpbigpCisKKyAgICAgICAgcmV0dXJuIGl0
ZXIoW0VudHJ5UG9pbnQoKV0pCisKKyAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHBrZ19yZXNvdXJj
ZXMsICdpdGVyX2VudHJ5X3BvaW50cycsIG15X2l0ZXIpCisgICAgbnVtID0gcG0ubG9hZF9zZXR1
cHRvb2xzX2VudHJ5cG9pbnRzKCJoZWxsbyIpCisgICAgYXNzZXJ0IG51bSA9PSAxCisgICAgcGx1
Z2luID0gcG0uZ2V0X3BsdWdpbigibXluYW1lIikKKyAgICBhc3NlcnQgcGx1Z2luLnggPT0gNDIK
KyAgICBhc3NlcnQgcG0ubGlzdF9wbHVnaW5fZGlzdGluZm8oKSA9PSBbKHBsdWdpbiwgTm9uZSld
CisKKworZGVmIHRlc3RfbG9hZF9zZXR1cHRvb2xzX25vdF9pbnN0YWxsZWQobW9ua2V5cGF0Y2gs
IHBtKToKKyAgICBtb25rZXlwYXRjaC5zZXRpdGVtKAorICAgICAgICBzeXMubW9kdWxlcywgJ3Br
Z19yZXNvdXJjZXMnLAorICAgICAgICB0eXBlcy5Nb2R1bGVUeXBlKCJwa2dfcmVzb3VyY2VzIikp
CisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoSW1wb3J0RXJyb3IpOgorICAgICAgICBwbS5sb2Fk
X3NldHVwdG9vbHNfZW50cnlwb2ludHMoInF3ZSIpCisKKworZGVmIHRlc3RfYWRkX3RyYWNlZnVu
Y3MoaGVfcG0pOgorICAgIG91dCA9IFtdCisKKyAgICBjbGFzcyBhcGkxKG9iamVjdCk6CisgICAg
ICAgIEBob29raW1wbAorICAgICAgICBkZWYgaGVfbWV0aG9kMShzZWxmKToKKyAgICAgICAgICAg
IG91dC5hcHBlbmQoImhlX21ldGhvZDEtYXBpMSIpCisKKyAgICBjbGFzcyBhcGkyKG9iamVjdCk6
CisgICAgICAgIEBob29raW1wbAorICAgICAgICBkZWYgaGVfbWV0aG9kMShzZWxmKToKKyAgICAg
ICAgICAgIG91dC5hcHBlbmQoImhlX21ldGhvZDEtYXBpMiIpCisKKyAgICBoZV9wbS5yZWdpc3Rl
cihhcGkxKCkpCisgICAgaGVfcG0ucmVnaXN0ZXIoYXBpMigpKQorCisgICAgZGVmIGJlZm9yZSho
b29rX25hbWUsIGhvb2tfaW1wbHMsIGt3YXJncyk6CisgICAgICAgIG91dC5hcHBlbmQoKGhvb2tf
bmFtZSwgbGlzdChob29rX2ltcGxzKSwga3dhcmdzKSkKKworICAgIGRlZiBhZnRlcihvdXRjb21l
LCBob29rX25hbWUsIGhvb2tfaW1wbHMsIGt3YXJncyk6CisgICAgICAgIG91dC5hcHBlbmQoKG91
dGNvbWUsIGhvb2tfbmFtZSwgbGlzdChob29rX2ltcGxzKSwga3dhcmdzKSkKKworICAgIHVuZG8g
PSBoZV9wbS5hZGRfaG9va2NhbGxfbW9uaXRvcmluZyhiZWZvcmUsIGFmdGVyKQorCisgICAgaGVf
cG0uaG9vay5oZV9tZXRob2QxKGFyZz0xKQorICAgIGFzc2VydCBsZW4ob3V0KSA9PSA0CisgICAg
YXNzZXJ0IG91dFswXVswXSA9PSAiaGVfbWV0aG9kMSIKKyAgICBhc3NlcnQgbGVuKG91dFswXVsx
XSkgPT0gMgorICAgIGFzc2VydCBpc2luc3RhbmNlKG91dFswXVsyXSwgZGljdCkKKyAgICBhc3Nl
cnQgb3V0WzFdID09ICJoZV9tZXRob2QxLWFwaTIiCisgICAgYXNzZXJ0IG91dFsyXSA9PSAiaGVf
bWV0aG9kMS1hcGkxIgorICAgIGFzc2VydCBsZW4ob3V0WzNdKSA9PSA0CisgICAgYXNzZXJ0IG91
dFszXVsxXSA9PSBvdXRbMF1bMF0KKworICAgIHVuZG8oKQorICAgIGhlX3BtLmhvb2suaGVfbWV0
aG9kMShhcmc9MSkKKyAgICBhc3NlcnQgbGVuKG91dCkgPT0gNCArIDIKKworCitkZWYgdGVzdF9o
b29rX3RyYWNpbmcoaGVfcG0pOgorICAgIHNhdmVpbmRlbnQgPSBbXQorCisgICAgY2xhc3MgYXBp
MShvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVmIGhlX21ldGhvZDEoc2Vs
Zik6CisgICAgICAgICAgICBzYXZlaW5kZW50LmFwcGVuZChoZV9wbS50cmFjZS5yb290LmluZGVu
dCkKKworICAgIGNsYXNzIGFwaTIob2JqZWN0KToKKyAgICAgICAgQGhvb2tpbXBsCisgICAgICAg
IGRlZiBoZV9tZXRob2QxKHNlbGYpOgorICAgICAgICAgICAgc2F2ZWluZGVudC5hcHBlbmQoaGVf
cG0udHJhY2Uucm9vdC5pbmRlbnQpCisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCkKKwor
ICAgIGhlX3BtLnJlZ2lzdGVyKGFwaTEoKSkKKyAgICBvdXQgPSBbXQorICAgIGhlX3BtLnRyYWNl
LnJvb3Quc2V0d3JpdGVyKG91dC5hcHBlbmQpCisgICAgdW5kbyA9IGhlX3BtLmVuYWJsZV90cmFj
aW5nKCkKKyAgICB0cnk6CisgICAgICAgIGluZGVudCA9IGhlX3BtLnRyYWNlLnJvb3QuaW5kZW50
CisgICAgICAgIGhlX3BtLmhvb2suaGVfbWV0aG9kMShhcmc9MSkKKyAgICAgICAgYXNzZXJ0IGlu
ZGVudCA9PSBoZV9wbS50cmFjZS5yb290LmluZGVudAorICAgICAgICBhc3NlcnQgbGVuKG91dCkg
PT0gMgorICAgICAgICBhc3NlcnQgJ2hlX21ldGhvZDEnIGluIG91dFswXQorICAgICAgICBhc3Nl
cnQgJ2ZpbmlzaCcgaW4gb3V0WzFdCisKKyAgICAgICAgb3V0WzpdID0gW10KKyAgICAgICAgaGVf
cG0ucmVnaXN0ZXIoYXBpMigpKQorCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVy
cm9yKToKKyAgICAgICAgICAgIGhlX3BtLmhvb2suaGVfbWV0aG9kMShhcmc9MSkKKyAgICAgICAg
YXNzZXJ0IGhlX3BtLnRyYWNlLnJvb3QuaW5kZW50ID09IGluZGVudAorICAgICAgICBhc3NlcnQg
c2F2ZWluZGVudFswXSA+IGluZGVudAorICAgIGZpbmFsbHk6CisgICAgICAgIHVuZG8oKQorCisK
K0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnaW5jbHVkZV9ob29rc3BlYycsIFtUcnVlLCBGYWxz
ZV0pCitkZWYgdGVzdF9wcmVmaXhfaG9va2ltcGwoaW5jbHVkZV9ob29rc3BlYyk6CisgICAgcG0g
PSBQbHVnaW5NYW5hZ2VyKGhvb2tzcGVjLnByb2plY3RfbmFtZSwgImhlbGxvXyIpCisKKyAgICBp
ZiBpbmNsdWRlX2hvb2tzcGVjOgorICAgICAgICBjbGFzcyBIb29rU3BlYyhvYmplY3QpOgorICAg
ICAgICAgICAgQGhvb2tzcGVjCisgICAgICAgICAgICBkZWYgaGVsbG9fbXlob29rKHNlbGYsIGFy
ZzEpOgorICAgICAgICAgICAgICAgICIiIiBhZGQgdG8gYXJnMSAiIiIKKworICAgICAgICBwbS5h
ZGRfaG9va3NwZWNzKEhvb2tTcGVjKQorCisgICAgY2xhc3MgUGx1Z2luKG9iamVjdCk6CisgICAg
ICAgIGRlZiBoZWxsb19teWhvb2soc2VsZiwgYXJnMSk6CisgICAgICAgICAgICByZXR1cm4gYXJn
MSArIDEKKworICAgIHBtLnJlZ2lzdGVyKFBsdWdpbigpKQorICAgIHBtLnJlZ2lzdGVyKFBsdWdp
bigpKQorICAgIHJlc3VsdHMgPSBwbS5ob29rLmhlbGxvX215aG9vayhhcmcxPTE3KQorICAgIGFz
c2VydCByZXN1bHRzID09IFsxOCwgMThdCisKKworZGVmIHRlc3RfcHJlZml4X2hvb2tpbXBsX2Rv
bnRtYXRjaF9tb2R1bGUoKToKKyAgICBwbSA9IFBsdWdpbk1hbmFnZXIoaG9va3NwZWMucHJvamVj
dF9uYW1lLCAiaGVsbG9fIikKKworICAgIGNsYXNzIEJhZFBsdWdpbihvYmplY3QpOgorICAgICAg
ICBoZWxsb19tb2R1bGUgPSBfX2ltcG9ydF9fKCdlbWFpbCcpCisKKyAgICBwbS5yZWdpc3RlcihC
YWRQbHVnaW4oKSkKKyAgICBwbS5jaGVja19wZW5kaW5nKCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1
Z2d5L3Rlc3RpbmcvdGVzdF9tdWx0aWNhbGwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rlc3Rf
bXVsdGljYWxsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2MGEyMDliNjY5MGU2MTM4ZTc3ZTg3Njg3N2QyOWEw
YjM2N2IzZTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rlc3RfbXVs
dGljYWxsLnB5CkBAIC0wLDAgKzEsMTk0IEBACitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gcGx1Z2d5
IGltcG9ydCBfbXVsdGljYWxsLCBfbGVnYWN5bXVsdGljYWxsLCBIb29rSW1wbCwgSG9va0NhbGxF
cnJvcgorZnJvbSBwbHVnZ3kuY2FsbGVycyBpbXBvcnQgX0xlZ2FjeU11bHRpQ2FsbAorZnJvbSBw
bHVnZ3kgaW1wb3J0IEhvb2tzcGVjTWFya2VyLCBIb29raW1wbE1hcmtlcgorCisKK2hvb2tzcGVj
ID0gSG9va3NwZWNNYXJrZXIoImV4YW1wbGUiKQoraG9va2ltcGwgPSBIb29raW1wbE1hcmtlcigi
ZXhhbXBsZSIpCisKKworZGVmIHRlc3RfdXNlc19jb3B5X29mX21ldGhvZHMoKToKKyAgICBvdXQg
PSBbbGFtYmRhOiA0Ml0KKyAgICBtYyA9IF9MZWdhY3lNdWx0aUNhbGwob3V0LCB7fSkKKyAgICBy
ZXByKG1jKQorICAgIG91dFs6XSA9IFtdCisgICAgcmVzID0gbWMuZXhlY3V0ZSgpCisgICAgcmV0
dXJuIHJlcyA9PSA0MgorCisKK2RlZiBNQyhtZXRob2RzLCBrd2FyZ3MsIGZpcnN0cmVzdWx0PUZh
bHNlKToKKyAgICBjYWxsZXIgPSBfbXVsdGljYWxsCisgICAgaG9va2Z1bmNzID0gW10KKyAgICBm
b3IgbWV0aG9kIGluIG1ldGhvZHM6CisgICAgICAgIGYgPSBIb29rSW1wbChOb25lLCAiPHRlbXA+
IiwgbWV0aG9kLCBtZXRob2QuZXhhbXBsZV9pbXBsKQorICAgICAgICBob29rZnVuY3MuYXBwZW5k
KGYpCisgICAgICAgIGlmICdfX211bHRpY2FsbF9fJyBpbiBmLmFyZ25hbWVzOgorICAgICAgICAg
ICAgY2FsbGVyID0gX2xlZ2FjeW11bHRpY2FsbAorICAgIHJldHVybiBjYWxsZXIoaG9va2Z1bmNz
LCBrd2FyZ3MsIGZpcnN0cmVzdWx0PWZpcnN0cmVzdWx0KQorCisKK2RlZiB0ZXN0X2NhbGxfcGFz
c2luZygpOgorICAgIGNsYXNzIFAxKG9iamVjdCk6CisgICAgICAgIEBob29raW1wbAorICAgICAg
ICBkZWYgbShzZWxmLCBfX211bHRpY2FsbF9fLCB4KToKKyAgICAgICAgICAgIGFzc2VydCBsZW4o
X19tdWx0aWNhbGxfXy5yZXN1bHRzKSA9PSAxCisgICAgICAgICAgICBhc3NlcnQgbm90IF9fbXVs
dGljYWxsX18uaG9va19pbXBscworICAgICAgICAgICAgcmV0dXJuIDE3CisKKyAgICBjbGFzcyBQ
MihvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVmIG0oc2VsZiwgX19tdWx0
aWNhbGxfXywgeCk6CisgICAgICAgICAgICBhc3NlcnQgX19tdWx0aWNhbGxfXy5yZXN1bHRzID09
IFtdCisgICAgICAgICAgICBhc3NlcnQgX19tdWx0aWNhbGxfXy5ob29rX2ltcGxzCisgICAgICAg
ICAgICByZXR1cm4gMjMKKworICAgIHAxID0gUDEoKQorICAgIHAyID0gUDIoKQorICAgIHJlc2xp
c3QgPSBNQyhbcDEubSwgcDIubV0sIHsieCI6IDIzfSkKKyAgICBhc3NlcnQgbGVuKHJlc2xpc3Qp
ID09IDIKKyAgICAjIGVuc3VyZSByZXZlcnNlZCBvcmRlcgorICAgIGFzc2VydCByZXNsaXN0ID09
IFsyMywgMTddCisKKworZGVmIHRlc3Rfa2V5d29yZF9hcmdzKCk6CisgICAgQGhvb2tpbXBsCisg
ICAgZGVmIGYoeCk6CisgICAgICAgIHJldHVybiB4ICsgMQorCisgICAgY2xhc3MgQShvYmplY3Qp
OgorICAgICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVmIGYoc2VsZiwgeCwgeSk6CisgICAgICAg
ICAgICByZXR1cm4geCArIHkKKworICAgIHJlc2xpc3QgPSBNQyhbZiwgQSgpLmZdLCBkaWN0KHg9
MjMsIHk9MjQpKQorICAgIGFzc2VydCByZXNsaXN0ID09IFsyNCArIDIzLCAyNF0KKworCitkZWYg
dGVzdF9rZXl3b3JkX2FyZ3Nfd2l0aF9kZWZhdWx0YXJncygpOgorICAgIEBob29raW1wbAorICAg
IGRlZiBmKHgsIHo9MSk6CisgICAgICAgIHJldHVybiB4ICsgegorICAgIHJlc2xpc3QgPSBNQyhb
Zl0sIGRpY3QoeD0yMywgeT0yNCkpCisgICAgYXNzZXJ0IHJlc2xpc3QgPT0gWzI0XQorCisKK2Rl
ZiB0ZXN0X3RhZ3NfY2FsbF9lcnJvcigpOgorICAgIEBob29raW1wbAorICAgIGRlZiBmKHgpOgor
ICAgICAgICByZXR1cm4geAorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhIb29rQ2FsbEVycm9yKToK
KyAgICAgICAgTUMoW2ZdLCB7fSkKKworCitkZWYgdGVzdF9jYWxsX3N1YmV4ZWN1dGUoKToKKyAg
ICBAaG9va2ltcGwKKyAgICBkZWYgbShfX211bHRpY2FsbF9fKToKKyAgICAgICAgc3VicmVzdWx0
ID0gX19tdWx0aWNhbGxfXy5leGVjdXRlKCkKKyAgICAgICAgcmV0dXJuIHN1YnJlc3VsdCArIDEK
KworICAgIEBob29raW1wbAorICAgIGRlZiBuKCk6CisgICAgICAgIHJldHVybiAxCisKKyAgICBy
ZXMgPSBNQyhbbiwgbV0sIHt9LCBmaXJzdHJlc3VsdD1UcnVlKQorICAgIGFzc2VydCByZXMgPT0g
MgorCisKK2RlZiB0ZXN0X2NhbGxfbm9uZV9pc19ub19yZXN1bHQoKToKKyAgICBAaG9va2ltcGwK
KyAgICBkZWYgbTEoKToKKyAgICAgICAgcmV0dXJuIDEKKworICAgIEBob29raW1wbAorICAgIGRl
ZiBtMigpOgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgcmVzID0gTUMoW20xLCBtMl0sIHt9
LCBmaXJzdHJlc3VsdD1UcnVlKQorICAgIGFzc2VydCByZXMgPT0gMQorICAgIHJlcyA9IE1DKFtt
MSwgbTJdLCB7fSwge30pCisgICAgYXNzZXJ0IHJlcyA9PSBbMV0KKworCitkZWYgdGVzdF9ob29r
d3JhcHBlcigpOgorICAgIG91dCA9IFtdCisKKyAgICBAaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1
ZSkKKyAgICBkZWYgbTEoKToKKyAgICAgICAgb3V0LmFwcGVuZCgibTEgaW5pdCIpCisgICAgICAg
IHlpZWxkIE5vbmUKKyAgICAgICAgb3V0LmFwcGVuZCgibTEgZmluaXNoIikKKworICAgIEBob29r
aW1wbAorICAgIGRlZiBtMigpOgorICAgICAgICBvdXQuYXBwZW5kKCJtMiIpCisgICAgICAgIHJl
dHVybiAyCisKKyAgICByZXMgPSBNQyhbbTIsIG0xXSwge30pCisgICAgYXNzZXJ0IHJlcyA9PSBb
Ml0KKyAgICBhc3NlcnQgb3V0ID09IFsibTEgaW5pdCIsICJtMiIsICJtMSBmaW5pc2giXQorICAg
IG91dFs6XSA9IFtdCisgICAgcmVzID0gTUMoW20yLCBtMV0sIHt9LCBmaXJzdHJlc3VsdD1UcnVl
KQorICAgIGFzc2VydCByZXMgPT0gMgorICAgIGFzc2VydCBvdXQgPT0gWyJtMSBpbml0IiwgIm0y
IiwgIm0xIGZpbmlzaCJdCisKKworZGVmIHRlc3RfaG9va3dyYXBwZXJfb3JkZXIoKToKKyAgICBv
dXQgPSBbXQorCisgICAgQGhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCisgICAgZGVmIG0xKCk6
CisgICAgICAgIG91dC5hcHBlbmQoIm0xIGluaXQiKQorICAgICAgICB5aWVsZCAxCisgICAgICAg
IG91dC5hcHBlbmQoIm0xIGZpbmlzaCIpCisKKyAgICBAaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1
ZSkKKyAgICBkZWYgbTIoKToKKyAgICAgICAgb3V0LmFwcGVuZCgibTIgaW5pdCIpCisgICAgICAg
IHlpZWxkIDIKKyAgICAgICAgb3V0LmFwcGVuZCgibTIgZmluaXNoIikKKworICAgIHJlcyA9IE1D
KFttMiwgbTFdLCB7fSkKKyAgICBhc3NlcnQgcmVzID09IFtdCisgICAgYXNzZXJ0IG91dCA9PSBb
Im0xIGluaXQiLCAibTIgaW5pdCIsICJtMiBmaW5pc2giLCAibTEgZmluaXNoIl0KKworCitkZWYg
dGVzdF9ob29rd3JhcHBlcl9ub3RfeWllbGQoKToKKyAgICBAaG9va2ltcGwoaG9va3dyYXBwZXI9
VHJ1ZSkKKyAgICBkZWYgbTEoKToKKyAgICAgICAgcGFzcworCisgICAgd2l0aCBweXRlc3QucmFp
c2VzKFR5cGVFcnJvcik6CisgICAgICAgIE1DKFttMV0sIHt9KQorCisKK2RlZiB0ZXN0X2hvb2t3
cmFwcGVyX3Rvb19tYW55X3lpZWxkKCk6CisgICAgQGhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUp
CisgICAgZGVmIG0xKCk6CisgICAgICAgIHlpZWxkIDEKKyAgICAgICAgeWllbGQgMgorCisgICAg
d2l0aCBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvcikgYXMgZXg6CisgICAgICAgIE1DKFttMV0s
IHt9KQorICAgIGFzc2VydCAibTEiIGluIHN0cihleC52YWx1ZSkKKyAgICBhc3NlcnQgKF9fZmls
ZV9fICsgJzonKSBpbiBzdHIoZXgudmFsdWUpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJleGMiLCBbVmFsdWVFcnJvciwgU3lzdGVtRXhpdF0pCitkZWYgdGVzdF9ob29rd3JhcHBlcl9l
eGNlcHRpb24oZXhjKToKKyAgICBvdXQgPSBbXQorCisgICAgQGhvb2tpbXBsKGhvb2t3cmFwcGVy
PVRydWUpCisgICAgZGVmIG0xKCk6CisgICAgICAgIG91dC5hcHBlbmQoIm0xIGluaXQiKQorICAg
ICAgICB5aWVsZCBOb25lCisgICAgICAgIG91dC5hcHBlbmQoIm0xIGZpbmlzaCIpCisKKyAgICBA
aG9va2ltcGwKKyAgICBkZWYgbTIoKToKKyAgICAgICAgcmFpc2UgZXhjCisKKyAgICB3aXRoIHB5
dGVzdC5yYWlzZXMoZXhjKToKKyAgICAgICAgTUMoW20yLCBtMV0sIHt9KQorICAgIGFzc2VydCBv
dXQgPT0gWyJtMSBpbml0IiwgIm0xIGZpbmlzaCJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90
ZXN0aW5nL3Rlc3RfcGx1Z2lubWFuYWdlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9w
bHVnaW5tYW5hZ2VyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyYzg2Y2M2NDQyNmIxMzY5ODBhODk4MTRiNTY4
ZWJkYjk2ZGI4OWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rlc3Rf
cGx1Z2lubWFuYWdlci5weQpAQCAtMCwwICsxLDM3NCBAQAoraW1wb3J0IHB5dGVzdAoraW1wb3J0
IHR5cGVzCisKK2Zyb20gcGx1Z2d5IGltcG9ydCAoUGx1Z2luVmFsaWRhdGlvbkVycm9yLAorICAg
ICAgICAgICAgICAgICAgICBIb29rQ2FsbEVycm9yLCBIb29raW1wbE1hcmtlciwgSG9va3NwZWNN
YXJrZXIpCisKKworaG9va3NwZWMgPSBIb29rc3BlY01hcmtlcigiZXhhbXBsZSIpCitob29raW1w
bCA9IEhvb2tpbXBsTWFya2VyKCJleGFtcGxlIikKKworCitkZWYgdGVzdF9wbHVnaW5fZG91Ymxl
X3JlZ2lzdGVyKHBtKToKKyAgICBwbS5yZWdpc3Rlcig0MiwgbmFtZT0iYWJjIikKKyAgICB3aXRo
IHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgIHBtLnJlZ2lzdGVyKDQyLCBuYW1l
PSJhYmMiKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgcG0u
cmVnaXN0ZXIoNDIsIG5hbWU9ImRlZiIpCisKKworZGVmIHRlc3RfcG0ocG0pOgorICAgIGNsYXNz
IEEob2JqZWN0KToKKyAgICAgICAgcGFzcworCisgICAgYTEsIGEyID0gQSgpLCBBKCkKKyAgICBw
bS5yZWdpc3RlcihhMSkKKyAgICBhc3NlcnQgcG0uaXNfcmVnaXN0ZXJlZChhMSkKKyAgICBwbS5y
ZWdpc3RlcihhMiwgImhlbGxvIikKKyAgICBhc3NlcnQgcG0uaXNfcmVnaXN0ZXJlZChhMikKKyAg
ICBvdXQgPSBwbS5nZXRfcGx1Z2lucygpCisgICAgYXNzZXJ0IGExIGluIG91dAorICAgIGFzc2Vy
dCBhMiBpbiBvdXQKKyAgICBhc3NlcnQgcG0uZ2V0X3BsdWdpbignaGVsbG8nKSA9PSBhMgorICAg
IGFzc2VydCBwbS51bnJlZ2lzdGVyKGExKSA9PSBhMQorICAgIGFzc2VydCBub3QgcG0uaXNfcmVn
aXN0ZXJlZChhMSkKKworICAgIG91dCA9IHBtLmxpc3RfbmFtZV9wbHVnaW4oKQorICAgIGFzc2Vy
dCBsZW4ob3V0KSA9PSAxCisgICAgYXNzZXJ0IG91dCA9PSBbKCJoZWxsbyIsIGEyKV0KKworCitk
ZWYgdGVzdF9oYXNfcGx1Z2luKHBtKToKKyAgICBjbGFzcyBBKG9iamVjdCk6CisgICAgICAgIHBh
c3MKKworICAgIGExID0gQSgpCisgICAgcG0ucmVnaXN0ZXIoYTEsICdoZWxsbycpCisgICAgYXNz
ZXJ0IHBtLmlzX3JlZ2lzdGVyZWQoYTEpCisgICAgYXNzZXJ0IHBtLmhhc19wbHVnaW4oJ2hlbGxv
JykKKworCitkZWYgdGVzdF9yZWdpc3Rlcl9keW5hbWljX2F0dHIoaGVfcG0pOgorICAgIGNsYXNz
IEEob2JqZWN0KToKKyAgICAgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIG5hbWUpOgorICAgICAg
ICAgICAgaWYgbmFtZVswXSAhPSAiXyI6CisgICAgICAgICAgICAgICAgcmV0dXJuIDQyCisgICAg
ICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigpCisKKyAgICBhID0gQSgpCisgICAgaGVfcG0u
cmVnaXN0ZXIoYSkKKyAgICBhc3NlcnQgbm90IGhlX3BtLmdldF9ob29rY2FsbGVycyhhKQorCisK
K2RlZiB0ZXN0X3BtX25hbWUocG0pOgorICAgIGNsYXNzIEEob2JqZWN0KToKKyAgICAgICAgcGFz
cworCisgICAgYTEgPSBBKCkKKyAgICBuYW1lID0gcG0ucmVnaXN0ZXIoYTEsIG5hbWU9ImhlbGxv
IikKKyAgICBhc3NlcnQgbmFtZSA9PSAiaGVsbG8iCisgICAgcG0udW5yZWdpc3RlcihhMSkKKyAg
ICBhc3NlcnQgcG0uZ2V0X3BsdWdpbihhMSkgaXMgTm9uZQorICAgIGFzc2VydCBub3QgcG0uaXNf
cmVnaXN0ZXJlZChhMSkKKyAgICBhc3NlcnQgbm90IHBtLmdldF9wbHVnaW5zKCkKKyAgICBuYW1l
MiA9IHBtLnJlZ2lzdGVyKGExLCBuYW1lPSJoZWxsbyIpCisgICAgYXNzZXJ0IG5hbWUyID09IG5h
bWUKKyAgICBwbS51bnJlZ2lzdGVyKG5hbWU9ImhlbGxvIikKKyAgICBhc3NlcnQgcG0uZ2V0X3Bs
dWdpbihhMSkgaXMgTm9uZQorICAgIGFzc2VydCBub3QgcG0uaXNfcmVnaXN0ZXJlZChhMSkKKyAg
ICBhc3NlcnQgbm90IHBtLmdldF9wbHVnaW5zKCkKKworCitkZWYgdGVzdF9zZXRfYmxvY2tlZChw
bSk6CisgICAgY2xhc3MgQShvYmplY3QpOgorICAgICAgICBwYXNzCisKKyAgICBhMSA9IEEoKQor
ICAgIG5hbWUgPSBwbS5yZWdpc3RlcihhMSkKKyAgICBhc3NlcnQgcG0uaXNfcmVnaXN0ZXJlZChh
MSkKKyAgICBhc3NlcnQgbm90IHBtLmlzX2Jsb2NrZWQobmFtZSkKKyAgICBwbS5zZXRfYmxvY2tl
ZChuYW1lKQorICAgIGFzc2VydCBwbS5pc19ibG9ja2VkKG5hbWUpCisgICAgYXNzZXJ0IG5vdCBw
bS5pc19yZWdpc3RlcmVkKGExKQorCisgICAgcG0uc2V0X2Jsb2NrZWQoInNvbWVuYW1lIikKKyAg
ICBhc3NlcnQgcG0uaXNfYmxvY2tlZCgic29tZW5hbWUiKQorICAgIGFzc2VydCBub3QgcG0ucmVn
aXN0ZXIoQSgpLCAic29tZW5hbWUiKQorICAgIHBtLnVucmVnaXN0ZXIobmFtZT0ic29tZW5hbWUi
KQorICAgIGFzc2VydCBwbS5pc19ibG9ja2VkKCJzb21lbmFtZSIpCisKKworZGVmIHRlc3RfcmVn
aXN0ZXJfbWlzbWF0Y2hfbWV0aG9kKGhlX3BtKToKKyAgICBjbGFzcyBoZWxsbyhvYmplY3QpOgor
ICAgICAgICBAaG9va2ltcGwKKyAgICAgICAgZGVmIGhlX21ldGhvZF9ub3RleGlzdHMoc2VsZik6
CisgICAgICAgICAgICBwYXNzCisKKyAgICBoZV9wbS5yZWdpc3RlcihoZWxsbygpKQorICAgIHdp
dGggcHl0ZXN0LnJhaXNlcyhQbHVnaW5WYWxpZGF0aW9uRXJyb3IpOgorICAgICAgICBoZV9wbS5j
aGVja19wZW5kaW5nKCkKKworCitkZWYgdGVzdF9yZWdpc3Rlcl9taXNtYXRjaF9hcmcoaGVfcG0p
OgorICAgIGNsYXNzIGhlbGxvKG9iamVjdCk6CisgICAgICAgIEBob29raW1wbAorICAgICAgICBk
ZWYgaGVfbWV0aG9kMShzZWxmLCBxbHdramUpOgorICAgICAgICAgICAgcGFzcworCisgICAgd2l0
aCBweXRlc3QucmFpc2VzKFBsdWdpblZhbGlkYXRpb25FcnJvcik6CisgICAgICAgIGhlX3BtLnJl
Z2lzdGVyKGhlbGxvKCkpCisKKworZGVmIHRlc3RfcmVnaXN0ZXIocG0pOgorICAgIGNsYXNzIE15
UGx1Z2luKG9iamVjdCk6CisgICAgICAgIHBhc3MKKyAgICBteSA9IE15UGx1Z2luKCkKKyAgICBw
bS5yZWdpc3RlcihteSkKKyAgICBhc3NlcnQgbXkgaW4gcG0uZ2V0X3BsdWdpbnMoKQorICAgIG15
MiA9IE15UGx1Z2luKCkKKyAgICBwbS5yZWdpc3RlcihteTIpCisgICAgYXNzZXJ0IHNldChbbXks
IG15Ml0pLmlzc3Vic2V0KHBtLmdldF9wbHVnaW5zKCkpCisKKyAgICBhc3NlcnQgcG0uaXNfcmVn
aXN0ZXJlZChteSkKKyAgICBhc3NlcnQgcG0uaXNfcmVnaXN0ZXJlZChteTIpCisgICAgcG0udW5y
ZWdpc3RlcihteSkKKyAgICBhc3NlcnQgbm90IHBtLmlzX3JlZ2lzdGVyZWQobXkpCisgICAgYXNz
ZXJ0IG15IG5vdCBpbiBwbS5nZXRfcGx1Z2lucygpCisKKworZGVmIHRlc3RfcmVnaXN0ZXJfdW5r
bm93bl9ob29rcyhwbSk6CisgICAgY2xhc3MgUGx1Z2luMShvYmplY3QpOgorICAgICAgICBAaG9v
a2ltcGwKKyAgICAgICAgZGVmIGhlX21ldGhvZDEoc2VsZiwgYXJnKToKKyAgICAgICAgICAgIHJl
dHVybiBhcmcgKyAxCisKKyAgICBwbmFtZSA9IHBtLnJlZ2lzdGVyKFBsdWdpbjEoKSkKKworICAg
IGNsYXNzIEhvb2tzKG9iamVjdCk6CisgICAgICAgIEBob29rc3BlYworICAgICAgICBkZWYgaGVf
bWV0aG9kMShzZWxmLCBhcmcpOgorICAgICAgICAgICAgcGFzcworCisgICAgcG0uYWRkX2hvb2tz
cGVjcyhIb29rcykKKyAgICAjIGFzc2VydCBub3QgcG0uX3VudmVyaWZpZWRfaG9va3MKKyAgICBh
c3NlcnQgcG0uaG9vay5oZV9tZXRob2QxKGFyZz0xKSA9PSBbMl0KKyAgICBhc3NlcnQgbGVuKHBt
LmdldF9ob29rY2FsbGVycyhwbS5nZXRfcGx1Z2luKHBuYW1lKSkpID09IDEKKworCitkZWYgdGVz
dF9yZWdpc3Rlcl9oaXN0b3JpYyhwbSk6CisgICAgY2xhc3MgSG9va3Mob2JqZWN0KToKKyAgICAg
ICAgQGhvb2tzcGVjKGhpc3RvcmljPVRydWUpCisgICAgICAgIGRlZiBoZV9tZXRob2QxKHNlbGYs
IGFyZyk6CisgICAgICAgICAgICBwYXNzCisgICAgcG0uYWRkX2hvb2tzcGVjcyhIb29rcykKKwor
ICAgIHBtLmhvb2suaGVfbWV0aG9kMS5jYWxsX2hpc3RvcmljKGt3YXJncz1kaWN0KGFyZz0xKSkK
KyAgICBvdXQgPSBbXQorCisgICAgY2xhc3MgUGx1Z2luKG9iamVjdCk6CisgICAgICAgIEBob29r
aW1wbAorICAgICAgICBkZWYgaGVfbWV0aG9kMShzZWxmLCBhcmcpOgorICAgICAgICAgICAgb3V0
LmFwcGVuZChhcmcpCisKKyAgICBwbS5yZWdpc3RlcihQbHVnaW4oKSkKKyAgICBhc3NlcnQgb3V0
ID09IFsxXQorCisgICAgY2xhc3MgUGx1Z2luMihvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwK
KyAgICAgICAgZGVmIGhlX21ldGhvZDEoc2VsZiwgYXJnKToKKyAgICAgICAgICAgIG91dC5hcHBl
bmQoYXJnICogMTApCisKKyAgICBwbS5yZWdpc3RlcihQbHVnaW4yKCkpCisgICAgYXNzZXJ0IG91
dCA9PSBbMSwgMTBdCisgICAgcG0uaG9vay5oZV9tZXRob2QxLmNhbGxfaGlzdG9yaWMoa3dhcmdz
PWRpY3QoYXJnPTEyKSkKKyAgICBhc3NlcnQgb3V0ID09IFsxLCAxMCwgMTIwLCAxMl0KKworCitk
ZWYgdGVzdF93aXRoX3Jlc3VsdF9tZW1vcml6ZWQocG0pOgorICAgIGNsYXNzIEhvb2tzKG9iamVj
dCk6CisgICAgICAgIEBob29rc3BlYyhoaXN0b3JpYz1UcnVlKQorICAgICAgICBkZWYgaGVfbWV0
aG9kMShzZWxmLCBhcmcpOgorICAgICAgICAgICAgcGFzcworICAgIHBtLmFkZF9ob29rc3BlY3Mo
SG9va3MpCisKKyAgICBoZV9tZXRob2QxID0gcG0uaG9vay5oZV9tZXRob2QxCisgICAgaGVfbWV0
aG9kMS5jYWxsX2hpc3RvcmljKGxhbWJkYSByZXM6IG91dC5hcHBlbmQocmVzKSwgZGljdChhcmc9
MSkpCisgICAgb3V0ID0gW10KKworICAgIGNsYXNzIFBsdWdpbihvYmplY3QpOgorICAgICAgICBA
aG9va2ltcGwKKyAgICAgICAgZGVmIGhlX21ldGhvZDEoc2VsZiwgYXJnKToKKyAgICAgICAgICAg
IHJldHVybiBhcmcgKiAxMAorCisgICAgcG0ucmVnaXN0ZXIoUGx1Z2luKCkpCisgICAgYXNzZXJ0
IG91dCA9PSBbMTBdCisKKworZGVmIHRlc3Rfd2l0aF9jYWxsYmFja3NfaW1tZWRpYXRlbHlfZXhl
Y3V0ZWQocG0pOgorICAgIGNsYXNzIEhvb2tzKG9iamVjdCk6CisgICAgICAgIEBob29rc3BlYyho
aXN0b3JpYz1UcnVlKQorICAgICAgICBkZWYgaGVfbWV0aG9kMShzZWxmLCBhcmcpOgorICAgICAg
ICAgICAgcGFzcworICAgIHBtLmFkZF9ob29rc3BlY3MoSG9va3MpCisKKyAgICBjbGFzcyBQbHVn
aW4xKG9iamVjdCk6CisgICAgICAgIEBob29raW1wbAorICAgICAgICBkZWYgaGVfbWV0aG9kMShz
ZWxmLCBhcmcpOgorICAgICAgICAgICAgcmV0dXJuIGFyZyAqIDEwCisKKyAgICBjbGFzcyBQbHVn
aW4yKG9iamVjdCk6CisgICAgICAgIEBob29raW1wbAorICAgICAgICBkZWYgaGVfbWV0aG9kMShz
ZWxmLCBhcmcpOgorICAgICAgICAgICAgcmV0dXJuIGFyZyAqIDIwCisKKyAgICBjbGFzcyBQbHVn
aW4zKG9iamVjdCk6CisgICAgICAgIEBob29raW1wbAorICAgICAgICBkZWYgaGVfbWV0aG9kMShz
ZWxmLCBhcmcpOgorICAgICAgICAgICAgcmV0dXJuIGFyZyAqIDMwCisKKyAgICBvdXQgPSBbXQor
ICAgIHBtLnJlZ2lzdGVyKFBsdWdpbjEoKSkKKyAgICBwbS5yZWdpc3RlcihQbHVnaW4yKCkpCisK
KyAgICBoZV9tZXRob2QxID0gcG0uaG9vay5oZV9tZXRob2QxCisgICAgaGVfbWV0aG9kMS5jYWxs
X2hpc3RvcmljKGxhbWJkYSByZXM6IG91dC5hcHBlbmQocmVzKSwgZGljdChhcmc9MSkpCisgICAg
YXNzZXJ0IG91dCA9PSBbMjAsIDEwXQorICAgIHBtLnJlZ2lzdGVyKFBsdWdpbjMoKSkKKyAgICBh
c3NlcnQgb3V0ID09IFsyMCwgMTAsIDMwXQorCisKK2RlZiB0ZXN0X3JlZ2lzdGVyX2hpc3Rvcmlj
X2luY29tcGF0X2hvb2t3cmFwcGVyKHBtKToKKyAgICBjbGFzcyBIb29rcyhvYmplY3QpOgorICAg
ICAgICBAaG9va3NwZWMoaGlzdG9yaWM9VHJ1ZSkKKyAgICAgICAgZGVmIGhlX21ldGhvZDEoc2Vs
ZiwgYXJnKToKKyAgICAgICAgICAgIHBhc3MKKworICAgIHBtLmFkZF9ob29rc3BlY3MoSG9va3Mp
CisKKyAgICBvdXQgPSBbXQorCisgICAgY2xhc3MgUGx1Z2luKG9iamVjdCk6CisgICAgICAgIEBo
b29raW1wbChob29rd3JhcHBlcj1UcnVlKQorICAgICAgICBkZWYgaGVfbWV0aG9kMShzZWxmLCBh
cmcpOgorICAgICAgICAgICAgb3V0LmFwcGVuZChhcmcpCisKKyAgICB3aXRoIHB5dGVzdC5yYWlz
ZXMoUGx1Z2luVmFsaWRhdGlvbkVycm9yKToKKyAgICAgICAgcG0ucmVnaXN0ZXIoUGx1Z2luKCkp
CisKKworZGVmIHRlc3RfY2FsbF9leHRyYShwbSk6CisgICAgY2xhc3MgSG9va3Mob2JqZWN0KToK
KyAgICAgICAgQGhvb2tzcGVjCisgICAgICAgIGRlZiBoZV9tZXRob2QxKHNlbGYsIGFyZyk6Cisg
ICAgICAgICAgICBwYXNzCisKKyAgICBwbS5hZGRfaG9va3NwZWNzKEhvb2tzKQorCisgICAgZGVm
IGhlX21ldGhvZDEoYXJnKToKKyAgICAgICAgcmV0dXJuIGFyZyAqIDEwCisKKyAgICBvdXQgPSBw
bS5ob29rLmhlX21ldGhvZDEuY2FsbF9leHRyYShbaGVfbWV0aG9kMV0sIGRpY3QoYXJnPTEpKQor
ICAgIGFzc2VydCBvdXQgPT0gWzEwXQorCisKK2RlZiB0ZXN0X2NhbGxfd2l0aF90b29fZmV3X2Fy
Z3MocG0pOgorICAgIGNsYXNzIEhvb2tzKG9iamVjdCk6CisgICAgICAgIEBob29rc3BlYworICAg
ICAgICBkZWYgaGVfbWV0aG9kMShzZWxmLCBhcmcpOgorICAgICAgICAgICAgcGFzcworCisgICAg
cG0uYWRkX2hvb2tzcGVjcyhIb29rcykKKworICAgIGNsYXNzIFBsdWdpbjEob2JqZWN0KToKKyAg
ICAgICAgQGhvb2tpbXBsCisgICAgICAgIGRlZiBoZV9tZXRob2QxKHNlbGYsIGFyZyk6CisgICAg
ICAgICAgICAwIC8gMAorICAgIHBtLnJlZ2lzdGVyKFBsdWdpbjEoKSkKKyAgICB3aXRoIHB5dGVz
dC5yYWlzZXMoSG9va0NhbGxFcnJvcik6CisgICAgICAgIHdpdGggcHl0ZXN0Lndhcm5zKFVzZXJX
YXJuaW5nKToKKyAgICAgICAgICAgIHBtLmhvb2suaGVfbWV0aG9kMSgpCisKKworZGVmIHRlc3Rf
c3Vic2V0X2hvb2tfY2FsbGVyKHBtKToKKyAgICBjbGFzcyBIb29rcyhvYmplY3QpOgorICAgICAg
ICBAaG9va3NwZWMKKyAgICAgICAgZGVmIGhlX21ldGhvZDEoc2VsZiwgYXJnKToKKyAgICAgICAg
ICAgIHBhc3MKKworICAgIHBtLmFkZF9ob29rc3BlY3MoSG9va3MpCisKKyAgICBvdXQgPSBbXQor
CisgICAgY2xhc3MgUGx1Z2luMShvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwKKyAgICAgICAg
ZGVmIGhlX21ldGhvZDEoc2VsZiwgYXJnKToKKyAgICAgICAgICAgIG91dC5hcHBlbmQoYXJnKQor
CisgICAgY2xhc3MgUGx1Z2luMihvYmplY3QpOgorICAgICAgICBAaG9va2ltcGwKKyAgICAgICAg
ZGVmIGhlX21ldGhvZDEoc2VsZiwgYXJnKToKKyAgICAgICAgICAgIG91dC5hcHBlbmQoYXJnICog
MTApCisKKyAgICBjbGFzcyBQbHVnaW5ObyhvYmplY3QpOgorICAgICAgICBwYXNzCisKKyAgICBw
bHVnaW4xLCBwbHVnaW4yLCBwbHVnaW4zID0gUGx1Z2luMSgpLCBQbHVnaW4yKCksIFBsdWdpbk5v
KCkKKyAgICBwbS5yZWdpc3RlcihwbHVnaW4xKQorICAgIHBtLnJlZ2lzdGVyKHBsdWdpbjIpCisg
ICAgcG0ucmVnaXN0ZXIocGx1Z2luMykKKyAgICBwbS5ob29rLmhlX21ldGhvZDEoYXJnPTEpCisg
ICAgYXNzZXJ0IG91dCA9PSBbMTAsIDFdCisgICAgb3V0WzpdID0gW10KKworICAgIGhjID0gcG0u
c3Vic2V0X2hvb2tfY2FsbGVyKCJoZV9tZXRob2QxIiwgW3BsdWdpbjFdKQorICAgIGhjKGFyZz0y
KQorICAgIGFzc2VydCBvdXQgPT0gWzIwXQorICAgIG91dFs6XSA9IFtdCisKKyAgICBoYyA9IHBt
LnN1YnNldF9ob29rX2NhbGxlcigiaGVfbWV0aG9kMSIsIFtwbHVnaW4yXSkKKyAgICBoYyhhcmc9
MikKKyAgICBhc3NlcnQgb3V0ID09IFsyXQorICAgIG91dFs6XSA9IFtdCisKKyAgICBwbS51bnJl
Z2lzdGVyKHBsdWdpbjEpCisgICAgaGMoYXJnPTIpCisgICAgYXNzZXJ0IG91dCA9PSBbXQorICAg
IG91dFs6XSA9IFtdCisKKyAgICBwbS5ob29rLmhlX21ldGhvZDEoYXJnPTEpCisgICAgYXNzZXJ0
IG91dCA9PSBbMTBdCisKKworZGVmIHRlc3RfbXVsdGljYWxsX2RlcHJlY2F0ZWQocG0pOgorICAg
IGNsYXNzIFAxKG9iamVjdCk6CisgICAgICAgIEBob29raW1wbAorICAgICAgICBkZWYgbShzZWxm
LCBfX211bHRpY2FsbF9fLCB4KToKKyAgICAgICAgICAgIHBhc3MKKworICAgIHB5dGVzdC5kZXBy
ZWNhdGVkX2NhbGwocG0ucmVnaXN0ZXIsIFAxKCkpCisKKworZGVmIHRlc3RfYWRkX2hvb2tzcGVj
c19ub2hvb2tzKHBtKToKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcik6CisgICAg
ICAgIHBtLmFkZF9ob29rc3BlY3MoMTApCisKKworZGVmIHRlc3RfcmVqZWN0X3ByZWZpeGVkX21v
ZHVsZShwbSk6CisgICAgIiIiVmVyaWZ5IHRoYXQgYSBtb2R1bGUgdHlwZSBhdHRyaWJ1dGUgdGhh
dCBjb250YWlucyB0aGUgcHJvamVjdAorICAgIHByZWZpeCBpbiBpdHMgbmFtZSAoaW4gdGhpcyBj
YXNlIGAnZXhhbXBsZV8qJ2AgaXNuJ3QgY29sbGVjdGVkCisgICAgd2hlbiByZWdpc3RlcmluZyBh
IG1vZHVsZSB3aGljaCBpbXBvcnRzIGl0LgorICAgICIiIgorICAgIHBtLl9pbXBscHJlZml4ID0g
J2V4YW1wbGUnCisgICAgY29uZnRlc3QgPSB0eXBlcy5Nb2R1bGVUeXBlKCJjb25mdGVzdCIpCisg
ICAgc3JjID0gKCIiIgorZGVmIGV4YW1wbGVfaG9vaygpOgorICAgIHBhc3MKKyIiIikKKyAgICBl
eGVjKHNyYywgY29uZnRlc3QuX19kaWN0X18pCisgICAgY29uZnRlc3QuZXhhbXBsZV9ibGFoID0g
dHlwZXMuTW9kdWxlVHlwZSgiZXhhbXBsZV9ibGFoIikKKyAgICBuYW1lID0gcG0ucmVnaXN0ZXIo
Y29uZnRlc3QpCisgICAgYXNzZXJ0IG5hbWUgPT0gJ2NvbmZ0ZXN0JworICAgIGFzc2VydCBnZXRh
dHRyKHBtLmhvb2ssICdleGFtcGxlX2JsYWgnLCBOb25lKSBpcyBOb25lCisgICAgYXNzZXJ0IGdl
dGF0dHIocG0uaG9vaywgJ2V4YW1wbGVfaG9vaycsIE5vbmUpICAjIGNvbmZ0ZXN0LmV4YW1wbGVf
aG9vayBzaG91bGQgYmUgY29sbGVjdGVkCisgICAgYXNzZXJ0IHBtLnBhcnNlX2hvb2tpbXBsX29w
dHMoY29uZnRlc3QsICdleGFtcGxlX2JsYWgnKSBpcyBOb25lCisgICAgYXNzZXJ0IHBtLnBhcnNl
X2hvb2tpbXBsX29wdHMoY29uZnRlc3QsICdleGFtcGxlX2hvb2snKSA9PSB7fQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X3RyYWNlci5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3Rp
bmcvdGVzdF90cmFjZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGEzZTE2Y2VjNDM2MzhjZDAzNjJiZDk0OWQ0
M2QyNTkwOWQ5NmVmOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVz
dF90cmFjZXIucHkKQEAgLTAsMCArMSw4OSBAQAorCitmcm9tIHBsdWdneSBpbXBvcnQgX1RhZ1Ry
YWNlcgorCisKK2RlZiB0ZXN0X3NpbXBsZSgpOgorICAgIHJvb3Rsb2dnZXIgPSBfVGFnVHJhY2Vy
KCkKKyAgICBsb2cgPSByb290bG9nZ2VyLmdldCgicHl0ZXN0IikKKyAgICBsb2coImhlbGxvIikK
KyAgICBvdXQgPSBbXQorICAgIHJvb3Rsb2dnZXIuc2V0d3JpdGVyKG91dC5hcHBlbmQpCisgICAg
bG9nKCJ3b3JsZCIpCisgICAgYXNzZXJ0IGxlbihvdXQpID09IDEKKyAgICBhc3NlcnQgb3V0WzBd
ID09ICJ3b3JsZCBbcHl0ZXN0XVxuIgorICAgIHN1YmxvZyA9IGxvZy5nZXQoImNvbGxlY3Rpb24i
KQorICAgIHN1YmxvZygiaGVsbG8iKQorICAgIGFzc2VydCBvdXRbMV0gPT0gImhlbGxvIFtweXRl
c3Q6Y29sbGVjdGlvbl1cbiIKKworCitkZWYgdGVzdF9pbmRlbnQoKToKKyAgICByb290bG9nZ2Vy
ID0gX1RhZ1RyYWNlcigpCisgICAgbG9nID0gcm9vdGxvZ2dlci5nZXQoIjEiKQorICAgIG91dCA9
IFtdCisgICAgbG9nLnJvb3Quc2V0d3JpdGVyKGxhbWJkYSBhcmc6IG91dC5hcHBlbmQoYXJnKSkK
KyAgICBsb2coImhlbGxvIikKKyAgICBsb2cucm9vdC5pbmRlbnQgKz0gMQorICAgIGxvZygibGlu
ZTEiKQorICAgIGxvZygibGluZTIiKQorICAgIGxvZy5yb290LmluZGVudCArPSAxCisgICAgbG9n
KCJsaW5lMyIpCisgICAgbG9nKCJsaW5lNCIpCisgICAgbG9nLnJvb3QuaW5kZW50IC09IDEKKyAg
ICBsb2coImxpbmU1IikKKyAgICBsb2cucm9vdC5pbmRlbnQgLT0gMQorICAgIGxvZygibGFzdCIp
CisgICAgYXNzZXJ0IGxlbihvdXQpID09IDcKKyAgICBuYW1lcyA9IFt4Wzp4LnJmaW5kKCcgWycp
XSBmb3IgeCBpbiBvdXRdCisgICAgYXNzZXJ0IG5hbWVzID09IFsKKyAgICAgICAgJ2hlbGxvJywg
JyAgbGluZTEnLCAnICBsaW5lMicsCisgICAgICAgICcgICAgbGluZTMnLCAnICAgIGxpbmU0Jywg
JyAgbGluZTUnLCAnbGFzdCddCisKKworZGVmIHRlc3RfcmVhZGFibGVfb3V0cHV0X2RpY3Rhcmdz
KCk6CisgICAgcm9vdGxvZ2dlciA9IF9UYWdUcmFjZXIoKQorCisgICAgb3V0ID0gcm9vdGxvZ2dl
ci5mb3JtYXRfbWVzc2FnZShbJ3Rlc3QnXSwgWzFdKQorICAgIGFzc2VydCBvdXQgPT0gWycxIFt0
ZXN0XVxuJ10KKworICAgIG91dDIgPSByb290bG9nZ2VyLmZvcm1hdF9tZXNzYWdlKFsndGVzdCdd
LCBbJ3Rlc3QnLCB7J2EnOiAxfV0pCisgICAgYXNzZXJ0IG91dDIgPT0gWworICAgICAgICAndGVz
dCBbdGVzdF1cbicsCisgICAgICAgICcgICAgYTogMVxuJworICAgIF0KKworCitkZWYgdGVzdF9z
ZXRwcm9jZXNzb3IoKToKKyAgICByb290bG9nZ2VyID0gX1RhZ1RyYWNlcigpCisgICAgbG9nID0g
cm9vdGxvZ2dlci5nZXQoIjEiKQorICAgIGxvZzIgPSBsb2cuZ2V0KCIyIikKKyAgICBhc3NlcnQg
bG9nMi50YWdzID09IHR1cGxlKCIxMiIpCisgICAgb3V0ID0gW10KKyAgICByb290bG9nZ2VyLnNl
dHByb2Nlc3Nvcih0dXBsZSgiMTIiKSwgbGFtYmRhICphcmdzOiBvdXQuYXBwZW5kKGFyZ3MpKQor
ICAgIGxvZygibm90IHNlZW4iKQorICAgIGxvZzIoInNlZW4iKQorICAgIGFzc2VydCBsZW4ob3V0
KSA9PSAxCisgICAgdGFncywgYXJncyA9IG91dFswXQorICAgIGFzc2VydCAiMSIgaW4gdGFncwor
ICAgIGFzc2VydCAiMiIgaW4gdGFncworICAgIGFzc2VydCBhcmdzID09ICgic2VlbiIsKQorICAg
IGwyID0gW10KKyAgICByb290bG9nZ2VyLnNldHByb2Nlc3NvcigiMToyIiwgbGFtYmRhICphcmdz
OiBsMi5hcHBlbmQoYXJncykpCisgICAgbG9nMigic2VlbiIpCisgICAgdGFncywgYXJncyA9IGwy
WzBdCisgICAgYXNzZXJ0IGFyZ3MgPT0gKCJzZWVuIiwpCisKKworZGVmIHRlc3Rfc2V0bXlwcm9j
ZXNzb3IoKToKKyAgICByb290bG9nZ2VyID0gX1RhZ1RyYWNlcigpCisgICAgbG9nID0gcm9vdGxv
Z2dlci5nZXQoIjEiKQorICAgIGxvZzIgPSBsb2cuZ2V0KCIyIikKKyAgICBvdXQgPSBbXQorICAg
IGxvZzIuc2V0bXlwcm9jZXNzb3IobGFtYmRhICphcmdzOiBvdXQuYXBwZW5kKGFyZ3MpKQorICAg
IGxvZygibm90IHNlZW4iKQorICAgIGFzc2VydCBub3Qgb3V0CisgICAgbG9nMig0MikKKyAgICBh
c3NlcnQgbGVuKG91dCkgPT0gMQorICAgIHRhZ3MsIGFyZ3MgPSBvdXRbMF0KKyAgICBhc3NlcnQg
IjEiIGluIHRhZ3MKKyAgICBhc3NlcnQgIjIiIGluIHRhZ3MKKyAgICBhc3NlcnQgYXJncyA9PSAo
NDIsKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcGx1Z2d5L3Rlc3RpbmcvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmRlZGNhZTJjMzIy
MGU0ZWU2M2EzNTg0MzE1MGQyYzkzYTBkNzMwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1
Z2d5L3Rlc3RpbmcvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyNSBAQAorVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitE
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5j
b20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wbHVnZ3kvdGVzdGluZy9iZW5jaG1hcmsucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL2NvbmZ0
ZXN0LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X2RldGFpbHMucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdn
eS90ZXN0aW5nL3Rlc3RfaGVscGVycy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9ob29r
cmVsYXkucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rlc3RfbWV0aG9kX29yZGVyaW5nLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X211bHRpY2FsbC5weQorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3Rp
bmcvdGVzdF9wbHVnaW5tYW5hZ2VyLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X3RyYWNl
ci5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdG94LmluaSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3RveC5p
bmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODlkNDRlMzUyZGJhNDJmNzI2MTFmMGVlY2UwNmY2MzM2ZWE5ODFlYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3RveC5pbmkKQEAgLTAsMCArMSw0NCBAQAor
W3RveF0KK2Vudmxpc3Q9Y2hlY2ssZG9jcyxweXsyNywzNCwzNSwzNixweX0tcHl0ZXN0cmVsZWFz
ZSxweXsyNywzNn0tcHl0ZXN0e21hc3RlcixmZWF0dXJlc30KKworW3Rlc3RlbnZdCitjb21tYW5k
cz1weS50ZXN0IHtwb3NhcmdzOnRlc3RpbmcvfQorc2V0ZW52PQorICBfUFlURVNUX1NFVFVQX1NL
SVBfUExVR0dZX0RFUD0xCitkZXBzPQorICBweXRlc3RyZWxlYXNlOiBweXRlc3QKKyAgcHl0ZXN0
bWFzdGVyOiBnaXQraHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0LmdpdEBtYXN0
ZXIKKyAgcHl0ZXN0ZmVhdHVyZXM6IGdpdCtodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QuZ2l0QGZlYXR1cmVzCisKK1t0ZXN0ZW52OmJlbmNobWFya10KK2NvbW1hbmRzPXB5LnRl
c3Qge3Bvc2FyZ3M6dGVzdGluZy9iZW5jaG1hcmsucHl9CitkZXBzPQorICBweXRlc3QKKyAgcHl0
ZXN0LWJlbmNobWFyaworCitbdGVzdGVudjpjaGVja10KK2RlcHMgPQorICBmbGFrZTgKKyAgcmVz
dHJ1Y3R1cmVkdGV4dF9saW50CisgIHB5Z21lbnRzCitjb21tYW5kcyA9CisgIGZsYWtlOCBwbHVn
Z3kucHkgc2V0dXAucHkgdGVzdGluZworICByc3QtbGludCBDSEFOR0VMT0cucnN0IFJFQURNRS5y
c3QKKworW3Rlc3RlbnY6ZG9jc10KK2RlcHMgPQorICBzcGhpbngKKyAgcHlnbWVudHMKK2NvbW1h
bmRzID0KKyAgc3BoaW54LWJ1aWxkIC1iIGh0bWwge3RveGluaWRpcn0vZG9jcyB7dG94aW5pZGly
fS9idWlsZC9odG1sLWRvY3MKKworW3B5dGVzdF0KK21pbnZlcnNpb249Mi4wCisjLS1weWFyZ3Mg
LS1kb2N0ZXN0LW1vZHVsZXMgLS1pZ25vcmU9LnRveAorYWRkb3B0cz0tcnhzWAorbm9yZWN1cnNl
ZGlycz0udG94IGphIC5oZyAuZW52KgorZmlsdGVyd2FybmluZ3MgPQorICBlcnJvcgorCitbZmxh
a2U4XQorbWF4LWxpbmUtbGVuZ3RoPTk5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcGx1Z2d5L3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjNTY3ZmFm
ZDlkZDEzMTA5YmVkZDkzNGU4ZGY2YTYwNTY0ODBjNWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BsdWdneS93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDI0IEBACitUaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Bs
dWdneS9DSEFOR0VMT0cucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvTElDRU5TRQorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L01B
TklGRVNULmluCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvUkVBRE1FLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2FwcHZleW9y
LnltbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcGx1Z2d5L3NldHVwLmNmZworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3NldHVwLnB5CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wbHVnZ3kvdG94LmluaQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9BVVRIT1JTIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9B
VVRIT1JTCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjhjMGNmOWI3MWIxNWQwNTFmMGQ5YTRmYWNkNDkwZWY1OGJjZTY2
ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L0FVVEhPUlMKQEAgLTAsMCArMSwyNCBAQAor
SG9sZ2VyIEtyZWtlbCwgaG9sZ2VyIGF0IG1lcmxpbnV4IGV1CitCZW5qYW1pbiBQZXRlcnNvbiwg
YmVuamFtaW4gYXQgcHl0aG9uIG9yZworUm9ubnkgUGZhbm5zY2htaWR0LCBSb25ueS5QZmFubnNj
aG1pZHQgYXQgZ214IGRlCitHdWlkbyBXZXNkb3JwLCBqb2hubnkgYXQgam9obm55ZGVicmlzIG5l
dCAKK1NhbXVlbGUgUGVkcm9uaSwgcGVkcm9uaXMgYXQgb3BlbmVuZCBzZSAKK0NhcmwgRnJpZWRy
aWNoIEJvbHosIGNmYm9seiBhdCBnbXggZGUKK0FybWluIFJpZ28sIGFyaWdvIGF0IHR1bmVzIG9y
ZyAKK01hY2llayBGaWphbGtvd3NraSwgZmlqYWwgYXQgZ2VuZXNpbGljbyBwbAorQnJpYW4gRG9y
c2V5LCBicmlhbmRvcnNleSBhdCBnbWFpbCBjb20gCitGbG9yaXMgQnJ1eW5vb2doZSwgZmx1YiBh
dCBkZXZvcmsgYmUKK21lcmxpbnV4IEdtYkgsIEdlcm1hbnksIG9mZmljZSBhdCBtZXJsaW51eCBl
dQorCitDb250cmlidXRvcnMgaW5jbHVkZTo6IAorCitSb3NzIExhd2xleQorUmFsZiBTY2htaXR0
CitDaHJpcyBMYW1iIAorSGFyYWxkIEFybWluIE1hc3NhCitNYXJ0aWpuIEZhYXNzZW4KK0lhbiBC
aWNraW5nIAorSmFuIEJhbHN0ZXIKK0dyaWcgR2hlb3JnaGl1CitCb2IgSXBwb2xpdG8KK0Nocmlz
dGlhbiBUaXNtZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvQ0hBTkdFTE9HIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9DSEFO
R0VMT0cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTljZDg0ODdjMGEyZGZkMzQzMzMzZTI2NTM1ZDVhMjEyYTRkYjll
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvQ0hBTkdFTE9HCkBAIC0wLDAgKzEsMjgxNiBA
QAorMjAxOC0wMy0yMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAg
ICAgVXBkYXRlIFdQVCB0b29scyB0byBhMWVjMzMwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM5MzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBmaXgtMTgzOTM0CisKKyAgICAgICAgKiBBVVRIT1JTOiBB
ZGRlZC4KKyAgICAgICAgKiBDSEFOR0VMT0c6IEFkZGVkLgorICAgICAgICAqIExJQ0VOU0U6IEFk
ZGVkLgorICAgICAgICAqIE1BTklGRVNULmluOiBBZGRlZC4KKyAgICAgICAgKiBSRUFETUUucnN0
OiBBZGRlZC4KKyAgICAgICAgKiBhcHB2ZXlvci55bWw6IEFkZGVkLgorICAgICAgICAqIGJlbmNo
L2xvY2FscGF0aC5weTogQWRkZWQuCisgICAgICAgIChMaXN0ZGlyKToKKyAgICAgICAgKExpc3Rk
aXIuc2V0dXApOgorICAgICAgICAoTGlzdGRpci5ydW4pOgorICAgICAgICAoTGlzdGRpcl9hcmcp
OgorICAgICAgICAoTGlzdGRpcl9hcmcucnVuKToKKyAgICAgICAgKEpvaW5fb25lYXJnKToKKyAg
ICAgICAgKEpvaW5fb25lYXJnLnJ1bik6CisgICAgICAgIChKb2luX211bHRpKToKKyAgICAgICAg
KEpvaW5fbXVsdGkucnVuKToKKyAgICAgICAgKENoZWNrKToKKyAgICAgICAgKENoZWNrLnJ1bik6
CisgICAgICAgIChDaGVja0Rpcik6CisgICAgICAgIChDaGVja0Rpci5ydW4pOgorICAgICAgICAo
Q2hlY2tEaXIyKToKKyAgICAgICAgKENoZWNrRGlyMi5ydW4pOgorICAgICAgICAoQ2hlY2tGaWxl
KToKKyAgICAgICAgKENoZWNrRmlsZS5ydW4pOgorICAgICAgICAqIGJlbmNoL3czYy1pbXBvcnQu
bG9nOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3czYy1pbXBvcnQubG9nLgorICAgICAgICAqIGNvbmZ0ZXN0LnB5OiBBZGRlZC4K
KyAgICAgICAgKHB5dGVzdF9hZGRvcHRpb24pOgorICAgICAgICAoc3NoaG9zdCk6CisgICAgICAg
IChnZXRleGVjdXRhYmxlKToKKyAgICAgICAgKGFueXB5dGhvbik6CisgICAgICAgICogZG9jL01h
a2VmaWxlOiBBZGRlZC4KKyAgICAgICAgKiBkb2MvX3RlbXBsYXRlcy9sYXlvdXQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZG9jL190ZW1wbGF0ZXMvdzNjLWltcG9ydC5sb2c6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdzNjLWlt
cG9ydC5sb2cuCisgICAgICAgICogZG9jL2Fubm91bmNlL3JlbGVhc2UtMC45LjAudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBkb2MvYW5ub3VuY2UvcmVsZWFzZS0wLjkuMi50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGRvYy9hbm5vdW5jZS9yZWxlYXNlLTEuMC4wLnR4dDogQWRkZWQuCisgICAgICAgICog
ZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4wLjEudHh0OiBBZGRlZC4KKyAgICAgICAgKiBkb2MvYW5u
b3VuY2UvcmVsZWFzZS0xLjAuMi50eHQ6IEFkZGVkLgorICAgICAgICAqIGRvYy9hbm5vdW5jZS9y
ZWxlYXNlLTEuMS4wLnR4dDogQWRkZWQuCisgICAgICAgICogZG9jL2Fubm91bmNlL3JlbGVhc2Ut
MS4xLjEudHh0OiBBZGRlZC4KKyAgICAgICAgKiBkb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjIuMC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGRvYy9hbm5vdW5jZS9yZWxlYXNlLTEuMi4xLnR4dDogQWRk
ZWQuCisgICAgICAgICogZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4zLjAudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBkb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjMuMS50eHQ6IEFkZGVkLgorICAgICAgICAq
IGRvYy9hbm5vdW5jZS9yZWxlYXNlLTEuMy4yLnR4dDogQWRkZWQuCisgICAgICAgICogZG9jL2Fu
bm91bmNlL3JlbGVhc2UtMS4zLjMudHh0OiBBZGRlZC4KKyAgICAgICAgKiBkb2MvYW5ub3VuY2Uv
cmVsZWFzZS0xLjMuNC50eHQ6IEFkZGVkLgorICAgICAgICAqIGRvYy9hbm5vdW5jZS9yZWxlYXNl
LTEuNC4wLnR4dDogQWRkZWQuCisgICAgICAgICogZG9jL2Fubm91bmNlL3JlbGVhc2UtMS40LjEu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBkb2MvYW5ub3VuY2UvcmVsZWFzZXMudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBkb2MvYW5ub3VuY2UvdzNjLWltcG9ydC5sb2c6IEFkZGVkLgorICAgICAgICAq
IGRvYy9jaGFuZ2Vsb2cudHh0OiBBZGRlZC4KKyAgICAgICAgKiBkb2MvY29kZS50eHQ6IEFkZGVk
LgorICAgICAgICAqIGRvYy9jb25mLnB5OiBBZGRlZC4KKyAgICAgICAgKiBkb2MvZG93bmxvYWQu
aHRtbDogQWRkZWQuCisgICAgICAgICogZG9jL2V4YW1wbGUvZ2VuaHRtbC5weTogQWRkZWQuCisg
ICAgICAgICogZG9jL2V4YW1wbGUvZ2VuaHRtbGNzcy5weTogQWRkZWQuCisgICAgICAgIChteSk6
CisgICAgICAgIChteS5ib2R5KToKKyAgICAgICAgKG15LmgyKToKKyAgICAgICAgKG15LnApOgor
ICAgICAgICAqIGRvYy9leGFtcGxlL2dlbnhtbC5weTogQWRkZWQuCisgICAgICAgIChucyk6Cisg
ICAgICAgICogZG9jL2V4YW1wbGUvdzNjLWltcG9ydC5sb2c6IENvcGllZCBmcm9tIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvdzNjLWltcG9y
dC5sb2cuCisgICAgICAgICogZG9jL2ZhcS50eHQ6IEFkZGVkLgorICAgICAgICAqIGRvYy9pbWcv
cHlsaWIucG5nOiBBZGRlZC4KKyAgICAgICAgKiBkb2MvaW1nL3czYy1pbXBvcnQubG9nOiBDb3Bp
ZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3czYy1pbXBvcnQubG9nLgorICAgICAgICAqIGRvYy9pbmRleC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGRvYy9pbnN0YWxsLnR4dDogQWRkZWQuCisgICAgICAgICogZG9jL2lvLnR4dDogQWRkZWQu
CisgICAgICAgICogZG9jL2xpbmtzLmluYzogQWRkZWQuCisgICAgICAgICogZG9jL2xvZy50eHQ6
IEFkZGVkLgorICAgICAgICAqIGRvYy9taXNjLnR4dDogQWRkZWQuCisgICAgICAgICogZG9jL3Bh
dGgudHh0OiBBZGRlZC4KKyAgICAgICAgKiBkb2Mvc3R5bGUuY3NzOiBBZGRlZC4KKyAgICAgICAg
KGJvZHksYm9keS5lZGl0b3IsYm9keS5ib2R5KToKKyAgICAgICAgKGEsIGEucmVmZXJlbmNlKToK
KyAgICAgICAgKGFbaHJlZl06aG92ZXIpOgorICAgICAgICAoaW1nKToKKyAgICAgICAgKHAsIGRp
di50ZXh0KToKKyAgICAgICAgKHAgYTphY3RpdmUpOgorICAgICAgICAocCBpbWcpOgorICAgICAg
ICAoaW1nLmlubGluZXBob3RvKToKKyAgICAgICAgKGhyKToKKyAgICAgICAgKHVsKToKKyAgICAg
ICAgKG9sKToKKyAgICAgICAgKHVsIGEsIG9sIGEpOgorICAgICAgICAoZGwpOgorICAgICAgICAo
ZGQpOgorICAgICAgICAoYmxvY2txdW90ZSk6CisgICAgICAgIChjb2RlKToKKyAgICAgICAgKHBy
ZSk6CisgICAgICAgICgubmV0c2NhcGU0KToKKyAgICAgICAgKHNwYW4ubWVudV9zZWxlY3RlZCk6
CisgICAgICAgIChhLm1lbnUpOgorICAgICAgICAoYS5tZW51W2hyZWZdOnZpc2l0ZWQsIGEubWVu
dVtocmVmXTpsaW5rKToKKyAgICAgICAgKGEubWVudVtocmVmXTpob3Zlcik6CisgICAgICAgIChk
aXYjcGFnZXRpdGxlKToKKyAgICAgICAgKGEud2lraWN1cnJlbnQpOgorICAgICAgICAodGFibGUu
Ym9keSk6CisgICAgICAgICh0ZC5wYWdlLWhlYWRlci1sZWZ0KToKKyAgICAgICAgKHRkLnBhZ2Ut
aGVhZGVyLXRvcCk6CisgICAgICAgICh0ZC5zaWRlYmFyKToKKyAgICAgICAgKHRkLnNpZGViYXIg
cC5jbGFzc2Jsb2NrKToKKyAgICAgICAgKHRkLnNpZGViYXIgcC51c2VyYmxvY2spOgorICAgICAg
ICAodGQuY29udGVudCk6CisgICAgICAgIChwLm9rLW1lc3NhZ2UpOgorICAgICAgICAocC5lcnJv
ci1tZXNzYWdlKToKKyAgICAgICAgKHA6Zmlyc3QtY2hpbGQpOgorICAgICAgICAodGFibGUuZm9y
bSk6CisgICAgICAgICh0YWJsZS5mb3JtIHRoKToKKyAgICAgICAgKHRhYmxlLmZvcm0gdGguaGVh
ZGVyKToKKyAgICAgICAgKHRhYmxlLmZvcm0gdGgucmVxdWlyZWQpOgorICAgICAgICAodGFibGUu
Zm9ybSB0ZCk6CisgICAgICAgICh0YWJsZS5mb3JtIHRkLm9wdGlvbmFsKToKKyAgICAgICAgKHRh
YmxlLmZvcm0gdGQuaHRtbCk6CisgICAgICAgICh0YWJsZS5saXN0KToKKyAgICAgICAgKHRhYmxl
Lmxpc3QgdGgpOgorICAgICAgICAodGFibGUubGlzdCB0aCBhW2hyZWZdOmhvdmVyKToKKyAgICAg
ICAgKHRhYmxlLmxpc3QgdGggYVtocmVmXTpsaW5rKToKKyAgICAgICAgKHRhYmxlLmxpc3QgdGgg
YVtocmVmXSk6CisgICAgICAgICh0YWJsZS5saXN0IHRoLmdyb3VwKToKKyAgICAgICAgKHRhYmxl
Lmxpc3QgdGQpOgorICAgICAgICAodGFibGUubGlzdCB0ci5ub3JtYWwgdGQpOgorICAgICAgICAo
dGFibGUubGlzdCB0ci5hbHQgdGQpOgorICAgICAgICAodGFibGUubGlzdCB0ZDpmaXJzdC1jaGls
ZCk6CisgICAgICAgICh0YWJsZS5saXN0IHRoOmZpcnN0LWNoaWxkKToKKyAgICAgICAgKHRhYmxl
Lmxpc3QgdHIubmF2aWdhdGlvbiB0aCk6CisgICAgICAgICh0YWJsZS5saXN0IHRyLm5hdmlnYXRp
b24gdGg6Zmlyc3QtY2hpbGQpOgorICAgICAgICAodGFibGUubWVzc2FnZXMpOgorICAgICAgICAo
dGFibGUubWVzc2FnZXMgdGguaGVhZGVyKToKKyAgICAgICAgKHRhYmxlLm1lc3NhZ2VzIHRoKToK
KyAgICAgICAgKHRhYmxlLm1lc3NhZ2VzIHRkKToKKyAgICAgICAgKHRhYmxlLm1lc3NhZ2VzIHRk
OmZpcnN0LWNoaWxkKToKKyAgICAgICAgKHRhYmxlLmZpbGVzKToKKyAgICAgICAgKHRhYmxlLmZp
bGVzIHRoLmhlYWRlcik6CisgICAgICAgICh0YWJsZS5maWxlcyB0aCk6CisgICAgICAgICh0YWJs
ZS5maWxlcyB0ZCk6CisgICAgICAgICh0YWJsZS5oaXN0b3J5KToKKyAgICAgICAgKHRhYmxlLmhp
c3RvcnkgdGguaGVhZGVyKToKKyAgICAgICAgKHRhYmxlLmhpc3RvcnkgdGgpOgorICAgICAgICAo
dGFibGUuaGlzdG9yeSB0ZCk6CisgICAgICAgICh0YWJsZS5jbGFzc2xpc3QpOgorICAgICAgICAo
dGFibGUuY2xhc3NsaXN0IHRoLmhlYWRlcik6CisgICAgICAgICh0YWJsZS5jbGFzc2xpc3QgdGgp
OgorICAgICAgICAodGFibGUuY2xhc3NoZWxwKToKKyAgICAgICAgKHRhYmxlLmNsYXNzaGVscCB0
aCk6CisgICAgICAgICh0YWJsZS5jbGFzc2hlbHAgdGQpOgorICAgICAgICAodGFibGUub3RoZXJp
bmZvKToKKyAgICAgICAgKHRhYmxlLm90aGVyaW5mbyB0aC5oZWFkZXIpOgorICAgICAgICAodGFi
bGUub3RoZXJpbmZvIHRoKToKKyAgICAgICAgKGlucHV0KToKKyAgICAgICAgKHNlbGVjdCk6Cisg
ICAgICAgIChhLm5vbmV4aXN0ZW50KToKKyAgICAgICAgKGEubm9uZXhpc3RlbnQ6dmlzaXRlZCk6
CisgICAgICAgIChhLmV4dGVybmFsKToKKyAgICAgICAgKGRpdi5kaWZmb2xkKToKKyAgICAgICAg
KGRpdi5kaWZmbmV3KToKKyAgICAgICAgKGRpdi5tZXNzYWdlKToKKyAgICAgICAgKHN0cm9uZy5o
aWdobGlnaHQpOgorICAgICAgICAodGFibGUubmF2aWJhcik6CisgICAgICAgICh0ZC5uYXZpYmFy
KToKKyAgICAgICAgKGEjdmVyc2lvbmluZm8pOgorICAgICAgICAoZGl2I3BhZ2VuYW1lKToKKyAg
ICAgICAgKGEud2lraWFjdGlvbiwgaW5wdXQud2lraWFjdGlvbik6CisgICAgICAgIChhLndpa2lh
Y3Rpb25baHJlZl06aG92ZXIpOgorICAgICAgICAoZGl2LmxlZ2VuZGl0ZW0pOgorICAgICAgICAo
c3Bhbi53aWtpdG9rZW4pOgorICAgICAgICAoZGl2I2NvbnRlbnRzcGFjZSBoMTpmaXJzdC1jaGls
ZCwgZGl2LmhlYWRpbmc6Zmlyc3QtY2hpbGQpOgorICAgICAgICAoZGl2I2NvbnRlbnRzcGFjZSBo
MjpmaXJzdC1jaGlsZCk6CisgICAgICAgIChkaXYuaGVhZGluZywgaDEpOgorICAgICAgICAoaDIp
OgorICAgICAgICAoaDEsIGgyLCBoMywgaDQsIGg1LCBoNik6CisgICAgICAgIChoMSk6CisgICAg
ICAgIChoMyk6CisgICAgICAgIChoNCk6CisgICAgICAgIChoNSk6CisgICAgICAgIChoMSBhKToK
KyAgICAgICAgKGRpdi5leGNlcHRpb24pOgorICAgICAgICAocHJlLmV4Y2VwdGlvbik6CisgICAg
ICAgIChkaXYuZGlyZW50cnkpOgorICAgICAgICAoZGl2LmZpbGVlbnRyeSk6CisgICAgICAgIChh
LmZpbGVlbnRyeSk6CisgICAgICAgIChzcGFuLmxlZnQpOgorICAgICAgICAoc3Bhbi5yaWdodCk6
CisgICAgICAgIChkaXYubmF2YmFyKToKKyAgICAgICAgKGRpdi5oaXN0b3J5IGEpOgorICAgICAg
ICAoZGl2Lndpa2lhY3Rpb250aXRsZSk6CisgICAgICAgIChkaXYuZG9jdW1lbnQpOgorICAgICAg
ICAoaDEudGl0bGUpOgorICAgICAgICAodGQudG9wbGlzdCk6CisgICAgICAgIChpbWcjcHlpbWcp
OgorICAgICAgICAoZGl2I25hdnNwYWNlKToKKyAgICAgICAgKGRpdiNlcnJvcmxpbmUpOgorICAg
ICAgICAoZGl2I2NvbnRlbnRzcGFjZSk6CisgICAgICAgIChkaXYjbWVudWJhcik6CisgICAgICAg
IChkaXYjdGl0bGUpOgorICAgICAgICAoZGl2I2RvY25hdmxpc3QpOgorICAgICAgICAoZGl2Lmxp
c3R0aXRsZSk6CisgICAgICAgIChkaXYuYWN0aW9uYm94IGgzKToKKyAgICAgICAgKGRpdi5hY3Rp
b25ib3ggYSk6CisgICAgICAgIChkaXYuYWN0aW9uYm94IGEuaGlzdG9yeSk6CisgICAgICAgIChk
aXYuYWN0aW9uYm94KToKKyAgICAgICAgKG9sLnNpbXBsZSwgdWwuc2ltcGxlKToKKyAgICAgICAg
KG9sLmFyYWJpYyk6CisgICAgICAgIChvbC5sb3dlcmFscGhhKToKKyAgICAgICAgKG9sLnVwcGVy
YWxwaGEpOgorICAgICAgICAob2wubG93ZXJyb21hbik6CisgICAgICAgIChvbC51cHBlcnJvbWFu
KToKKyAgICAgICAgKGRpdi5zZWN0aW9uKToKKyAgICAgICAgKiBkb2MvdzNjLWltcG9ydC5sb2c6
IEFkZGVkLgorICAgICAgICAqIGRvYy94bWwudHh0OiBBZGRlZC4KKyAgICAgICAgKiBweS9fX2lu
aXRfXy5weTogQWRkZWQuCisgICAgICAgICogcHkvX19tZXRhaW5mby5weTogQWRkZWQuCisgICAg
ICAgICogcHkvX2J1aWx0aW4ucHk6IEFkZGVkLgorICAgICAgICAocmV2ZXJzZWQpOgorICAgICAg
ICAocmV2ZXJzZWRfaXRlcmF0b3IpOgorICAgICAgICAocmV2ZXJzZWRfaXRlcmF0b3IuX19pbml0
X18pOgorICAgICAgICAocmV2ZXJzZWRfaXRlcmF0b3IuX19pdGVyX18pOgorICAgICAgICAocmV2
ZXJzZWRfaXRlcmF0b3IubmV4dCk6CisgICAgICAgIChyZXZlcnNlZF9pdGVyYXRvci5fX2xlbmd0
aF9oaW50X18pOgorICAgICAgICAoYW55KToKKyAgICAgICAgKGFsbCk6CisgICAgICAgIChzb3J0
ZWQpOgorICAgICAgICAoc29ydGVkLnVzZV9jbXApOgorICAgICAgICAoR2VuZXJhdG9yRXhpdCk6
CisgICAgICAgIChjYWxsYWJsZSk6CisgICAgICAgIChfdG90ZXh0KToKKyAgICAgICAgKF9pc2J5
dGVzKToKKyAgICAgICAgKF9pc3RleHQpOgorICAgICAgICAoX2dldGltc2VsZik6CisgICAgICAg
IChfZ2V0ZnVuY2RpY3QpOgorICAgICAgICAoX2dldGNvZGUpOgorICAgICAgICAoZXhlY2ZpbGUp
OgorICAgICAgICAocHJpbnRfKToKKyAgICAgICAgKGV4ZWNfKToKKyAgICAgICAgKF9yZXJhaXNl
KToKKyAgICAgICAgKGV4ZWMyKToKKyAgICAgICAgKiBweS9fY29kZS9fX2luaXRfXy5weTogQWRk
ZWQuCisgICAgICAgICogcHkvX2NvZGUvX2Fzc2VydGlvbm5ldy5weTogQWRkZWQuCisgICAgICAg
IChfaXNfYXN0X2V4cHIpOgorICAgICAgICAoX2lzX2FzdF9zdG10KToKKyAgICAgICAgKEZhaWx1
cmUpOgorICAgICAgICAoRmFpbHVyZS5fX2luaXRfXyk6CisgICAgICAgIChpbnRlcnByZXQpOgor
ICAgICAgICAocnVuKToKKyAgICAgICAgKGdldGZhaWx1cmUpOgorICAgICAgICAoRGVidWdJbnRl
cnByZXRlcik6CisgICAgICAgIChEZWJ1Z0ludGVycHJldGVyLl9faW5pdF9fKToKKyAgICAgICAg
KERlYnVnSW50ZXJwcmV0ZXIuZ2VuZXJpY192aXNpdCk6CisgICAgICAgIChEZWJ1Z0ludGVycHJl
dGVyLl9jb21waWxlKToKKyAgICAgICAgKERlYnVnSW50ZXJwcmV0ZXIudmlzaXRfRXhwcik6Cisg
ICAgICAgIChEZWJ1Z0ludGVycHJldGVyLnZpc2l0X01vZHVsZSk6CisgICAgICAgIChEZWJ1Z0lu
dGVycHJldGVyLnZpc2l0X05hbWUpOgorICAgICAgICAoRGVidWdJbnRlcnByZXRlci52aXNpdF9D
b21wYXJlKToKKyAgICAgICAgKERlYnVnSW50ZXJwcmV0ZXIudmlzaXRfQm9vbE9wKToKKyAgICAg
ICAgKERlYnVnSW50ZXJwcmV0ZXIudmlzaXRfVW5hcnlPcCk6CisgICAgICAgIChEZWJ1Z0ludGVy
cHJldGVyLnZpc2l0X0Jpbk9wKToKKyAgICAgICAgKERlYnVnSW50ZXJwcmV0ZXIudmlzaXRfQ2Fs
bCk6CisgICAgICAgIChEZWJ1Z0ludGVycHJldGVyLl9pc19idWlsdGluX25hbWUpOgorICAgICAg
ICAoRGVidWdJbnRlcnByZXRlci52aXNpdF9BdHRyaWJ1dGUpOgorICAgICAgICAoRGVidWdJbnRl
cnByZXRlci52aXNpdF9Bc3NlcnQpOgorICAgICAgICAoRGVidWdJbnRlcnByZXRlci52aXNpdF9B
c3NpZ24pOgorICAgICAgICAqIHB5L19jb2RlL19hc3NlcnRpb25vbGQucHk6IEFkZGVkLgorICAg
ICAgICAoRmFpbHVyZSk6CisgICAgICAgIChGYWlsdXJlLl9faW5pdF9fKToKKyAgICAgICAgKFZp
ZXcpOgorICAgICAgICAoVmlldy5fX25ld19fKToKKyAgICAgICAgKFZpZXcuX19nZXRhdHRyX18p
OgorICAgICAgICAoVmlldy5fX3ZpZXdrZXlfXyk6CisgICAgICAgIChWaWV3Ll9fbWF0Y2hrZXlf
Xyk6CisgICAgICAgIChWaWV3Ll9zZWxlY3RzdWJjbGFzcyk6CisgICAgICAgIChWaWV3Ll9fcmVw
cl9fKToKKyAgICAgICAgKGVudW1zdWJjbGFzc2VzKToKKyAgICAgICAgKGVudW1zdWJjbGFzc2Vz
LmluKToKKyAgICAgICAgKEludGVycHJldGFibGUpOgorICAgICAgICAoSW50ZXJwcmV0YWJsZS5p
c19idWlsdGluKToKKyAgICAgICAgKEludGVycHJldGFibGUuZXZhbCk6CisgICAgICAgIChJbnRl
cnByZXRhYmxlLnJ1bik6CisgICAgICAgIChJbnRlcnByZXRhYmxlLm5pY2VfZXhwbGFuYXRpb24p
OgorICAgICAgICAoTmFtZSk6CisgICAgICAgIChOYW1lLmlzX2xvY2FsKToKKyAgICAgICAgKE5h
bWUuaXNfZ2xvYmFsKToKKyAgICAgICAgKE5hbWUuaXNfYnVpbHRpbik6CisgICAgICAgIChOYW1l
LmV2YWwpOgorICAgICAgICAoQ29tcGFyZSk6CisgICAgICAgIChDb21wYXJlLmV2YWwpOgorICAg
ICAgICAoQW5kKToKKyAgICAgICAgKEFuZC5ldmFsKToKKyAgICAgICAgKE9yKToKKyAgICAgICAg
KE9yLmV2YWwpOgorICAgICAgICAoVW5hcnlBcml0aCk6CisgICAgICAgIChVbmFyeUFyaXRoLmV2
YWwpOgorICAgICAgICAoQmluYXJ5QXJpdGgpOgorICAgICAgICAoQmluYXJ5QXJpdGguZXZhbCk6
CisgICAgICAgIChDYWxsRnVuYyk6CisgICAgICAgIChDYWxsRnVuYy5pc19ib29sKToKKyAgICAg
ICAgKENhbGxGdW5jLmV2YWwpOgorICAgICAgICAoR2V0YXR0cik6CisgICAgICAgIChHZXRhdHRy
LmV2YWwpOgorICAgICAgICAoQXNzZXJ0KToKKyAgICAgICAgKEFzc2VydC5ydW4pOgorICAgICAg
ICAoQXNzaWduKToKKyAgICAgICAgKEFzc2lnbi5ydW4pOgorICAgICAgICAoRGlzY2FyZCk6Cisg
ICAgICAgIChEaXNjYXJkLnJ1bik6CisgICAgICAgIChTdG10KToKKyAgICAgICAgKFN0bXQucnVu
KToKKyAgICAgICAgKHJlcG9ydF9mYWlsdXJlKToKKyAgICAgICAgKGNoZWNrKToKKyAgICAgICAg
KGludGVycHJldCk6CisgICAgICAgIChnZXRtc2cpOgorICAgICAgICAoZ2V0ZmFpbHVyZSk6Cisg
ICAgICAgIChydW4pOgorICAgICAgICAoZik6CisgICAgICAgIChnKToKKyAgICAgICAgKGgpOgor
ICAgICAgICAqIHB5L19jb2RlL19weTJ0cmFjZWJhY2sucHk6IEFkZGVkLgorICAgICAgICAoZm9y
bWF0X2V4Y2VwdGlvbl9vbmx5KToKKyAgICAgICAgKF9mb3JtYXRfZmluYWxfZXhjX2xpbmUpOgor
ICAgICAgICAoX3NvbWVfc3RyKToKKyAgICAgICAgKiBweS9fY29kZS9hc3NlcnRpb24ucHk6IEFk
ZGVkLgorICAgICAgICAoX2Zvcm1hdF9leHBsYW5hdGlvbik6CisgICAgICAgIChBc3NlcnRpb25F
cnJvcik6CisgICAgICAgIChBc3NlcnRpb25FcnJvci5fX2luaXRfXyk6CisgICAgICAgICogcHkv
X2NvZGUvY29kZS5weTogQWRkZWQuCisgICAgICAgIChDb2RlKToKKyAgICAgICAgKENvZGUuX19p
bml0X18pOgorICAgICAgICAoQ29kZS5fX2VxX18pOgorICAgICAgICAoQ29kZS5fX25lX18pOgor
ICAgICAgICAoQ29kZS5wYXRoKToKKyAgICAgICAgKENvZGUuZnVsbHNvdXJjZSk6CisgICAgICAg
IChDb2RlLnNvdXJjZSk6CisgICAgICAgIChDb2RlLmdldGFyZ3MpOgorICAgICAgICAoRnJhbWUp
OgorICAgICAgICAoRnJhbWUuX19pbml0X18pOgorICAgICAgICAoRnJhbWUuc3RhdGVtZW50KToK
KyAgICAgICAgKEZyYW1lLmV2YWwpOgorICAgICAgICAoRnJhbWUuZXhlY18pOgorICAgICAgICAo
RnJhbWUucmVwcik6CisgICAgICAgIChGcmFtZS5pc190cnVlKToKKyAgICAgICAgKEZyYW1lLmdl
dGFyZ3MpOgorICAgICAgICAoVHJhY2ViYWNrRW50cnkpOgorICAgICAgICAoVHJhY2ViYWNrRW50
cnkuX19pbml0X18pOgorICAgICAgICAoVHJhY2ViYWNrRW50cnkuc2V0X3JlcHJfc3R5bGUpOgor
ICAgICAgICAoVHJhY2ViYWNrRW50cnkuZnJhbWUpOgorICAgICAgICAoVHJhY2ViYWNrRW50cnku
cmVsbGluZSk6CisgICAgICAgIChUcmFjZWJhY2tFbnRyeS5fX3JlcHJfXyk6CisgICAgICAgIChU
cmFjZWJhY2tFbnRyeS5zdGF0ZW1lbnQpOgorICAgICAgICAoVHJhY2ViYWNrRW50cnkucGF0aCk6
CisgICAgICAgIChUcmFjZWJhY2tFbnRyeS5nZXRsb2NhbHMpOgorICAgICAgICAoVHJhY2ViYWNr
RW50cnkucmVpbnRlcnByZXQpOgorICAgICAgICAoVHJhY2ViYWNrRW50cnkuZ2V0Zmlyc3RsaW5l
c291cmNlKToKKyAgICAgICAgKFRyYWNlYmFja0VudHJ5LmdldHNvdXJjZSk6CisgICAgICAgIChU
cmFjZWJhY2tFbnRyeS5pc2hpZGRlbik6CisgICAgICAgIChUcmFjZWJhY2tFbnRyeS5fX3N0cl9f
KToKKyAgICAgICAgKFRyYWNlYmFja0VudHJ5Lm5hbWUpOgorICAgICAgICAoVHJhY2ViYWNrKToK
KyAgICAgICAgKFRyYWNlYmFjay5fX2luaXRfXyk6CisgICAgICAgIChUcmFjZWJhY2suX19pbml0
X18uZik6CisgICAgICAgIChUcmFjZWJhY2suY3V0KToKKyAgICAgICAgKFRyYWNlYmFjay5fX2dl
dGl0ZW1fXyk6CisgICAgICAgIChUcmFjZWJhY2suZmlsdGVyKToKKyAgICAgICAgKFRyYWNlYmFj
ay5nZXRjcmFzaGVudHJ5KToKKyAgICAgICAgKFRyYWNlYmFjay5yZWN1cnNpb25pbmRleCk6Cisg
ICAgICAgIChFeGNlcHRpb25JbmZvKToKKyAgICAgICAgKEV4Y2VwdGlvbkluZm8uX19pbml0X18p
OgorICAgICAgICAoRXhjZXB0aW9uSW5mby5fX3JlcHJfXyk6CisgICAgICAgIChFeGNlcHRpb25J
bmZvLmV4Y29ubHkpOgorICAgICAgICAoRXhjZXB0aW9uSW5mby5lcnJpc2luc3RhbmNlKToKKyAg
ICAgICAgKEV4Y2VwdGlvbkluZm8uX2dldHJlcHJjcmFzaCk6CisgICAgICAgIChFeGNlcHRpb25J
bmZvLmdldHJlcHIpOgorICAgICAgICAoRXhjZXB0aW9uSW5mby5fX3N0cl9fKToKKyAgICAgICAg
KEV4Y2VwdGlvbkluZm8uX191bmljb2RlX18pOgorICAgICAgICAoRm9ybWF0dGVkRXhjaW5mbyk6
CisgICAgICAgIChGb3JtYXR0ZWRFeGNpbmZvLl9faW5pdF9fKToKKyAgICAgICAgKEZvcm1hdHRl
ZEV4Y2luZm8uX2dldGluZGVudCk6CisgICAgICAgIChGb3JtYXR0ZWRFeGNpbmZvLl9nZXRlbnRy
eXNvdXJjZSk6CisgICAgICAgIChGb3JtYXR0ZWRFeGNpbmZvLl9zYWZlcmVwcik6CisgICAgICAg
IChGb3JtYXR0ZWRFeGNpbmZvLnJlcHJfYXJncyk6CisgICAgICAgIChGb3JtYXR0ZWRFeGNpbmZv
LmdldF9zb3VyY2UpOgorICAgICAgICAoRm9ybWF0dGVkRXhjaW5mby5nZXRfZXhjb25seSk6Cisg
ICAgICAgIChGb3JtYXR0ZWRFeGNpbmZvLnJlcHJfbG9jYWxzKToKKyAgICAgICAgKEZvcm1hdHRl
ZEV4Y2luZm8ucmVwcl90cmFjZWJhY2tfZW50cnkpOgorICAgICAgICAoRm9ybWF0dGVkRXhjaW5m
by5fbWFrZXBhdGgpOgorICAgICAgICAoRm9ybWF0dGVkRXhjaW5mby5yZXByX3RyYWNlYmFjayk6
CisgICAgICAgIChGb3JtYXR0ZWRFeGNpbmZvLnJlcHJfZXhjaW5mbyk6CisgICAgICAgIChUZXJt
aW5hbFJlcHIpOgorICAgICAgICAoVGVybWluYWxSZXByLl9fc3RyX18pOgorICAgICAgICAoVGVy
bWluYWxSZXByLl9fdW5pY29kZV9fKToKKyAgICAgICAgKFRlcm1pbmFsUmVwci5fX3JlcHJfXyk6
CisgICAgICAgIChSZXByRXhjZXB0aW9uSW5mbyk6CisgICAgICAgIChSZXByRXhjZXB0aW9uSW5m
by5fX2luaXRfXyk6CisgICAgICAgIChSZXByRXhjZXB0aW9uSW5mby5hZGRzZWN0aW9uKToKKyAg
ICAgICAgKFJlcHJFeGNlcHRpb25JbmZvLnRvdGVybWluYWwpOgorICAgICAgICAoUmVwclRyYWNl
YmFjayk6CisgICAgICAgIChSZXByVHJhY2ViYWNrLl9faW5pdF9fKToKKyAgICAgICAgKFJlcHJU
cmFjZWJhY2sudG90ZXJtaW5hbCk6CisgICAgICAgIChSZXByVHJhY2ViYWNrTmF0aXZlKToKKyAg
ICAgICAgKFJlcHJUcmFjZWJhY2tOYXRpdmUuX19pbml0X18pOgorICAgICAgICAoUmVwckVudHJ5
TmF0aXZlKToKKyAgICAgICAgKFJlcHJFbnRyeU5hdGl2ZS5fX2luaXRfXyk6CisgICAgICAgIChS
ZXByRW50cnlOYXRpdmUudG90ZXJtaW5hbCk6CisgICAgICAgIChSZXByRW50cnkpOgorICAgICAg
ICAoUmVwckVudHJ5Ll9faW5pdF9fKToKKyAgICAgICAgKFJlcHJFbnRyeS50b3Rlcm1pbmFsKToK
KyAgICAgICAgKFJlcHJFbnRyeS5fX3N0cl9fKToKKyAgICAgICAgKFJlcHJGaWxlTG9jYXRpb24p
OgorICAgICAgICAoUmVwckZpbGVMb2NhdGlvbi5fX2luaXRfXyk6CisgICAgICAgIChSZXByRmls
ZUxvY2F0aW9uLnRvdGVybWluYWwpOgorICAgICAgICAoUmVwckxvY2Fscyk6CisgICAgICAgIChS
ZXByTG9jYWxzLl9faW5pdF9fKToKKyAgICAgICAgKFJlcHJMb2NhbHMudG90ZXJtaW5hbCk6Cisg
ICAgICAgIChSZXByRnVuY0FyZ3MpOgorICAgICAgICAoUmVwckZ1bmNBcmdzLl9faW5pdF9fKToK
KyAgICAgICAgKFJlcHJGdW5jQXJncy50b3Rlcm1pbmFsKToKKyAgICAgICAgKHBhdGNoX2J1aWx0
aW5zKToKKyAgICAgICAgKHVucGF0Y2hfYnVpbHRpbnMpOgorICAgICAgICAoZ2V0cmF3Y29kZSk6
CisgICAgICAgICogcHkvX2NvZGUvc291cmNlLnB5OiBBZGRlZC4KKyAgICAgICAgKFNvdXJjZSk6
CisgICAgICAgIChTb3VyY2UuX19pbml0X18pOgorICAgICAgICAoU291cmNlLl9fZXFfXyk6Cisg
ICAgICAgIChTb3VyY2UuX19nZXRpdGVtX18pOgorICAgICAgICAoU291cmNlLl9fbGVuX18pOgor
ICAgICAgICAoU291cmNlLl9fZ2V0c2xpY2VfXyk6CisgICAgICAgIChTb3VyY2Uuc3RyaXApOgor
ICAgICAgICAoU291cmNlLnB1dGFyb3VuZCk6CisgICAgICAgIChTb3VyY2UuaW5kZW50KToKKyAg
ICAgICAgKFNvdXJjZS5nZXRzdGF0ZW1lbnQpOgorICAgICAgICAoU291cmNlLmdldHN0YXRlbWVu
dHJhbmdlKToKKyAgICAgICAgKFNvdXJjZS5kZWluZGVudCk6CisgICAgICAgIChTb3VyY2UuaXNw
YXJzZWFibGUpOgorICAgICAgICAoU291cmNlLl9fc3RyX18pOgorICAgICAgICAoU291cmNlLmNv
bXBpbGUpOgorICAgICAgICAoY29tcGlsZV8pOgorICAgICAgICAoZ2V0ZnNsaW5lbm8pOgorICAg
ICAgICAoZmluZHNvdXJjZSk6CisgICAgICAgIChnZXRzb3VyY2UpOgorICAgICAgICAoZGVpbmRl
bnQpOgorICAgICAgICAoZGVpbmRlbnQucmVhZGxpbmVfZ2VuZXJhdG9yKToKKyAgICAgICAgKGdl
dF9zdGF0ZW1lbnRfc3RhcnRlbmQyKToKKyAgICAgICAgKGdldHN0YXRlbWVudHJhbmdlX2FzdCk6
CisgICAgICAgIChnZXRzdGF0ZW1lbnRyYW5nZV9vbGQpOgorICAgICAgICAoZ2V0c3RhdGVtZW50
cmFuZ2Vfb2xkLnh4eCk6CisgICAgICAgICogcHkvX2NvZGUvdzNjLWltcG9ydC5sb2c6IEFkZGVk
LgorICAgICAgICAqIHB5L19lcnJvci5weTogQWRkZWQuCisgICAgICAgIChFcnJvcik6CisgICAg
ICAgIChFcnJvci5fX3JlcHJfXyk6CisgICAgICAgIChFcnJvci5fX3N0cl9fKToKKyAgICAgICAg
KEVycm9yTWFrZXIpOgorICAgICAgICAoRXJyb3JNYWtlci5fX2dldGF0dHJfXyk6CisgICAgICAg
IChFcnJvck1ha2VyLl9nZXRlcnJub2NsYXNzKToKKyAgICAgICAgKEVycm9yTWFrZXIuY2hlY2tl
ZF9jYWxsKToKKyAgICAgICAgKiBweS9faW8vX19pbml0X18ucHk6IEFkZGVkLgorICAgICAgICAq
IHB5L19pby9jYXB0dXJlLnB5OiBBZGRlZC4KKyAgICAgICAgKFRleHRJTyk6CisgICAgICAgIChU
ZXh0SU8ud3JpdGUpOgorICAgICAgICAoQnl0ZXNJTyk6CisgICAgICAgIChCeXRlc0lPLndyaXRl
KToKKyAgICAgICAgKEZEQ2FwdHVyZSk6CisgICAgICAgIChGRENhcHR1cmUuX19pbml0X18pOgor
ICAgICAgICAoRkRDYXB0dXJlLnN0YXJ0KToKKyAgICAgICAgKEZEQ2FwdHVyZS5kb25lKToKKyAg
ICAgICAgKEZEQ2FwdHVyZS53cml0ZW9yZyk6CisgICAgICAgIChkdXBmaWxlKToKKyAgICAgICAg
KEVuY29kZWRGaWxlKToKKyAgICAgICAgKEVuY29kZWRGaWxlLl9faW5pdF9fKToKKyAgICAgICAg
KEVuY29kZWRGaWxlLndyaXRlKToKKyAgICAgICAgKEVuY29kZWRGaWxlLndyaXRlbGluZXMpOgor
ICAgICAgICAoRW5jb2RlZEZpbGUuX19nZXRhdHRyX18pOgorICAgICAgICAoQ2FwdHVyZSk6Cisg
ICAgICAgIChDYXB0dXJlLmNhbGwpOgorICAgICAgICAoQ2FwdHVyZS5yZXNldCk6CisgICAgICAg
IChDYXB0dXJlLnN1c3BlbmQpOgorICAgICAgICAoU3RkQ2FwdHVyZUZEKToKKyAgICAgICAgKFN0
ZENhcHR1cmVGRC5fX2luaXRfXyk6CisgICAgICAgIChTdGRDYXB0dXJlRkQuX3NhdmUpOgorICAg
ICAgICAoU3RkQ2FwdHVyZUZELnN0YXJ0YWxsKToKKyAgICAgICAgKFN0ZENhcHR1cmVGRC5yZXN1
bWUpOgorICAgICAgICAoU3RkQ2FwdHVyZUZELmRvbmUpOgorICAgICAgICAoU3RkQ2FwdHVyZUZE
LnJlYWRvdXRlcnIpOgorICAgICAgICAoU3RkQ2FwdHVyZUZELl9yZWFkc25hcHNob3QpOgorICAg
ICAgICAoU3RkQ2FwdHVyZSk6CisgICAgICAgIChTdGRDYXB0dXJlLl9faW5pdF9fKToKKyAgICAg
ICAgKFN0ZENhcHR1cmUuc3RhcnRhbGwpOgorICAgICAgICAoU3RkQ2FwdHVyZS5kb25lKToKKyAg
ICAgICAgKFN0ZENhcHR1cmUucmVzdW1lKToKKyAgICAgICAgKFN0ZENhcHR1cmUucmVhZG91dGVy
cik6CisgICAgICAgIChEb250UmVhZEZyb21JbnB1dCk6CisgICAgICAgIChEb250UmVhZEZyb21J
bnB1dC5yZWFkKToKKyAgICAgICAgKERvbnRSZWFkRnJvbUlucHV0LmZpbGVubyk6CisgICAgICAg
IChEb250UmVhZEZyb21JbnB1dC5pc2F0dHkpOgorICAgICAgICAoRG9udFJlYWRGcm9tSW5wdXQu
Y2xvc2UpOgorICAgICAgICAqIHB5L19pby9zYWZlcmVwci5weTogQWRkZWQuCisgICAgICAgIChT
YWZlUmVwcik6CisgICAgICAgIChTYWZlUmVwci5yZXByKToKKyAgICAgICAgKFNhZmVSZXByLnJl
cHJfdW5pY29kZSk6CisgICAgICAgIChTYWZlUmVwci5yZXByX3VuaWNvZGUucmVwcik6CisgICAg
ICAgIChTYWZlUmVwci5yZXByX2luc3RhbmNlKToKKyAgICAgICAgKFNhZmVSZXByLl9jYWxsaGVs
cGVyKToKKyAgICAgICAgKHNhZmVyZXByKToKKyAgICAgICAgKiBweS9faW8vdGVybWluYWx3cml0
ZXIucHk6IEFkZGVkLgorICAgICAgICAoX2dldGRpbWVuc2lvbnMpOgorICAgICAgICAoZ2V0X3Rl
cm1pbmFsX3dpZHRoKToKKyAgICAgICAgKGFuc2lfcHJpbnQpOgorICAgICAgICAoc2hvdWxkX2Rv
X21hcmt1cCk6CisgICAgICAgIChUZXJtaW5hbFdyaXRlcik6CisgICAgICAgIChUZXJtaW5hbFdy
aXRlci5fX2luaXRfXyk6CisgICAgICAgIChUZXJtaW5hbFdyaXRlci5mdWxsd2lkdGgpOgorICAg
ICAgICAoVGVybWluYWxXcml0ZXIuY2hhcnNfb25fY3VycmVudF9saW5lKToKKyAgICAgICAgKFRl
cm1pbmFsV3JpdGVyLl9lc2NhcGVkKToKKyAgICAgICAgKFRlcm1pbmFsV3JpdGVyLm1hcmt1cCk6
CisgICAgICAgIChUZXJtaW5hbFdyaXRlci5zZXApOgorICAgICAgICAoVGVybWluYWxXcml0ZXIu
d3JpdGUpOgorICAgICAgICAoVGVybWluYWxXcml0ZXIuX3VwZGF0ZV9jaGFyc19vbl9jdXJyZW50
X2xpbmUpOgorICAgICAgICAoVGVybWluYWxXcml0ZXIubGluZSk6CisgICAgICAgIChUZXJtaW5h
bFdyaXRlci5yZWxpbmUpOgorICAgICAgICAoVGVybWluYWxXcml0ZXIuX2NoZWNrZmlsbCk6Cisg
ICAgICAgIChXaW4zMkNvbnNvbGVXcml0ZXIpOgorICAgICAgICAoV2luMzJDb25zb2xlV3JpdGVy
LndyaXRlKToKKyAgICAgICAgKFdyaXRlRmlsZSk6CisgICAgICAgIChXcml0ZUZpbGUuX19pbml0
X18pOgorICAgICAgICAoV3JpdGVGaWxlLndyaXRlKToKKyAgICAgICAgKFdyaXRlRmlsZS5mbHVz
aCk6CisgICAgICAgIChDT09SRCk6CisgICAgICAgIChTTUFMTF9SRUNUKToKKyAgICAgICAgKENP
TlNPTEVfU0NSRUVOX0JVRkZFUl9JTkZPKToKKyAgICAgICAgKEdldFN0ZEhhbmRsZSk6CisgICAg
ICAgIChHZXRDb25zb2xlSW5mbyk6CisgICAgICAgICh3cml0ZV9vdXQpOgorICAgICAgICAqIHB5
L19pby93M2MtaW1wb3J0LmxvZzogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93M2MtaW1wb3J0LmxvZy4KKyAgICAgICAgKiBweS9f
bG9nL19faW5pdF9fLnB5OiBBZGRlZC4KKyAgICAgICAgKiBweS9fbG9nL2xvZy5weTogQWRkZWQu
CisgICAgICAgIChNZXNzYWdlKToKKyAgICAgICAgKE1lc3NhZ2UuX19pbml0X18pOgorICAgICAg
ICAoTWVzc2FnZS5jb250ZW50KToKKyAgICAgICAgKE1lc3NhZ2UucHJlZml4KToKKyAgICAgICAg
KE1lc3NhZ2UuX19zdHJfXyk6CisgICAgICAgIChQcm9kdWNlcik6CisgICAgICAgIChQcm9kdWNl
ci5fX2luaXRfXyk6CisgICAgICAgIChQcm9kdWNlci5fX3JlcHJfXyk6CisgICAgICAgIChQcm9k
dWNlci5fX2dldGF0dHJfXyk6CisgICAgICAgIChQcm9kdWNlci5fX2NhbGxfXyk6CisgICAgICAg
IChLZXl3b3JkTWFwcGVyKToKKyAgICAgICAgKEtleXdvcmRNYXBwZXIuX19pbml0X18pOgorICAg
ICAgICAoS2V5d29yZE1hcHBlci5nZXRzdGF0ZSk6CisgICAgICAgIChLZXl3b3JkTWFwcGVyLnNl
dHN0YXRlKToKKyAgICAgICAgKEtleXdvcmRNYXBwZXIuZ2V0Y29uc3VtZXIpOgorICAgICAgICAo
S2V5d29yZE1hcHBlci5zZXRjb25zdW1lcik6CisgICAgICAgIChkZWZhdWx0X2NvbnN1bWVyKToK
KyAgICAgICAgKHNldGNvbnN1bWVyKToKKyAgICAgICAgKHNldHN0YXRlKToKKyAgICAgICAgKGdl
dHN0YXRlKToKKyAgICAgICAgKEZpbGUpOgorICAgICAgICAoRmlsZS5fX2luaXRfXyk6CisgICAg
ICAgIChGaWxlLl9fY2FsbF9fKToKKyAgICAgICAgKFBhdGgpOgorICAgICAgICAoUGF0aC5fX2lu
aXRfXyk6CisgICAgICAgIChQYXRoLl9vcGVuZmlsZSk6CisgICAgICAgIChQYXRoLl9fY2FsbF9f
KToKKyAgICAgICAgKFNURE9VVCk6CisgICAgICAgIChTVERFUlIpOgorICAgICAgICAoU3lzbG9n
KToKKyAgICAgICAgKFN5c2xvZy5fX2luaXRfXyk6CisgICAgICAgIChTeXNsb2cuX19jYWxsX18p
OgorICAgICAgICAqIHB5L19sb2cvdzNjLWltcG9ydC5sb2c6IENvcGllZCBmcm9tIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvdzNjLWltcG9y
dC5sb2cuCisgICAgICAgICogcHkvX2xvZy93YXJuaW5nLnB5OiBBZGRlZC4KKyAgICAgICAgKERl
cHJlY2F0aW9uV2FybmluZyk6CisgICAgICAgIChEZXByZWNhdGlvbldhcm5pbmcuX19pbml0X18p
OgorICAgICAgICAoRGVwcmVjYXRpb25XYXJuaW5nLl9fcmVwcl9fKToKKyAgICAgICAgKERlcHJl
Y2F0aW9uV2FybmluZy5fX3N0cl9fKToKKyAgICAgICAgKF9hcGl3YXJuKToKKyAgICAgICAgKHdh
cm4pOgorICAgICAgICAqIHB5L19wYXRoL19faW5pdF9fLnB5OiBBZGRlZC4KKyAgICAgICAgKiBw
eS9fcGF0aC9jYWNoZXV0aWwucHk6IEFkZGVkLgorICAgICAgICAoQmFzaWNDYWNoZSk6CisgICAg
ICAgIChCYXNpY0NhY2hlLl9faW5pdF9fKToKKyAgICAgICAgKEJhc2ljQ2FjaGUuY2xlYXIpOgor
ICAgICAgICAoQmFzaWNDYWNoZS5fZ2V0ZW50cnkpOgorICAgICAgICAoQmFzaWNDYWNoZS5fcHV0
ZW50cnkpOgorICAgICAgICAoQmFzaWNDYWNoZS5kZWxlbnRyeSk6CisgICAgICAgIChCYXNpY0Nh
Y2hlLmdldG9yYnVpbGQpOgorICAgICAgICAoQmFzaWNDYWNoZS5fcHJ1bmVsb3dlc3R3ZWlnaHQp
OgorICAgICAgICAoQnVpbGRjb3N0QWNjZXNzQ2FjaGUpOgorICAgICAgICAoQnVpbGRjb3N0QWNj
ZXNzQ2FjaGUuX2J1aWxkKToKKyAgICAgICAgKFdlaWdodGVkQ291bnRpbmdFbnRyeSk6CisgICAg
ICAgIChXZWlnaHRlZENvdW50aW5nRW50cnkuX19pbml0X18pOgorICAgICAgICAoV2VpZ2h0ZWRD
b3VudGluZ0VudHJ5LnZhbHVlKToKKyAgICAgICAgKEFnaW5nQ2FjaGUpOgorICAgICAgICAoQWdp
bmdDYWNoZS5fX2luaXRfXyk6CisgICAgICAgIChBZ2luZ0NhY2hlLl9nZXRlbnRyeSk6CisgICAg
ICAgIChBZ2luZ0NhY2hlLl9idWlsZCk6CisgICAgICAgIChBZ2luZ0VudHJ5KToKKyAgICAgICAg
KEFnaW5nRW50cnkuX19pbml0X18pOgorICAgICAgICAoQWdpbmdFbnRyeS5pc2V4cGlyZWQpOgor
ICAgICAgICAqIHB5L19wYXRoL2NvbW1vbi5weTogQWRkZWQuCisgICAgICAgIChmc3BhdGgpOgor
ICAgICAgICAoQ2hlY2tlcnMpOgorICAgICAgICAoQ2hlY2tlcnMuX19pbml0X18pOgorICAgICAg
ICAoQ2hlY2tlcnMuZGlyKToKKyAgICAgICAgKENoZWNrZXJzLmZpbGUpOgorICAgICAgICAoQ2hl
Y2tlcnMuZG90ZmlsZSk6CisgICAgICAgIChDaGVja2Vycy5leHQpOgorICAgICAgICAoQ2hlY2tl
cnMuZXhpc3RzKToKKyAgICAgICAgKENoZWNrZXJzLmJhc2VuYW1lKToKKyAgICAgICAgKENoZWNr
ZXJzLmJhc2VzdGFydHMpOgorICAgICAgICAoQ2hlY2tlcnMucmVsdG8pOgorICAgICAgICAoQ2hl
Y2tlcnMuZm5tYXRjaCk6CisgICAgICAgIChDaGVja2Vycy5lbmRzd2l0aCk6CisgICAgICAgIChD
aGVja2Vycy5fZXZhbHVhdGUpOgorICAgICAgICAoTmV2ZXJSYWlzZWQpOgorICAgICAgICAoUGF0
aEJhc2UpOgorICAgICAgICAoUGF0aEJhc2UuX19kaXZfXyk6CisgICAgICAgIChQYXRoQmFzZS5i
YXNlbmFtZSk6CisgICAgICAgIChQYXRoQmFzZS5kaXJuYW1lKToKKyAgICAgICAgKFBhdGhCYXNl
LnB1cmViYXNlbmFtZSk6CisgICAgICAgIChQYXRoQmFzZS5leHQpOgorICAgICAgICAoUGF0aEJh
c2UuZGlycGF0aCk6CisgICAgICAgIChQYXRoQmFzZS5yZWFkX2JpbmFyeSk6CisgICAgICAgIChQ
YXRoQmFzZS5yZWFkX3RleHQpOgorICAgICAgICAoUGF0aEJhc2UucmVhZCk6CisgICAgICAgIChQ
YXRoQmFzZS5yZWFkbGluZXMpOgorICAgICAgICAobG9hZCk6CisgICAgICAgIChtb3ZlKToKKyAg
ICAgICAgKF9fcmVwcl9fKToKKyAgICAgICAgKGNoZWNrKToKKyAgICAgICAgKGZubWF0Y2gpOgor
ICAgICAgICAocmVsdG8pOgorICAgICAgICAoZW5zdXJlX2Rpcik6CisgICAgICAgIChiZXN0cmVs
cGF0aCk6CisgICAgICAgIChleGlzdHMpOgorICAgICAgICAoaXNkaXIpOgorICAgICAgICAoaXNm
aWxlKToKKyAgICAgICAgKHBhcnRzKToKKyAgICAgICAgKGNvbW1vbik6CisgICAgICAgIChfX2Fk
ZF9fKToKKyAgICAgICAgKF9fY21wX18pOgorICAgICAgICAoX19sdF9fKToKKyAgICAgICAgKHZp
c2l0KToKKyAgICAgICAgKF9zb3J0bGlzdCk6CisgICAgICAgIChzYW1lZmlsZSk6CisgICAgICAg
IChfX2ZzcGF0aF9fKToKKyAgICAgICAgKFZpc2l0b3IpOgorICAgICAgICAoVmlzaXRvci5fX2lu
aXRfXyk6CisgICAgICAgIChWaXNpdG9yLmdlbik6CisgICAgICAgIChGTk1hdGNoZXIpOgorICAg
ICAgICAoRk5NYXRjaGVyLl9faW5pdF9fKToKKyAgICAgICAgKEZOTWF0Y2hlci5fX2NhbGxfXyk6
CisgICAgICAgICogcHkvX3BhdGgvbG9jYWwucHk6IEFkZGVkLgorICAgICAgICAobWFwX2FzX2xp
c3QpOgorICAgICAgICAoU3RhdCk6CisgICAgICAgIChTdGF0Ll9fZ2V0YXR0cl9fKToKKyAgICAg
ICAgKFN0YXQuX19pbml0X18pOgorICAgICAgICAoU3RhdC5vd25lcik6CisgICAgICAgIChTdGF0
Lmdyb3VwKToKKyAgICAgICAgKFN0YXQuaXNkaXIpOgorICAgICAgICAoU3RhdC5pc2ZpbGUpOgor
ICAgICAgICAoU3RhdC5pc2xpbmspOgorICAgICAgICAoUG9zaXhQYXRoKToKKyAgICAgICAgKFBv
c2l4UGF0aC5jaG93bik6CisgICAgICAgIChQb3NpeFBhdGgucmVhZGxpbmspOgorICAgICAgICAo
UG9zaXhQYXRoLm1rbGlua3RvKToKKyAgICAgICAgKFBvc2l4UGF0aC5ta3N5bWxpbmt0byk6Cisg
ICAgICAgIChnZXR1c2VyaWQpOgorICAgICAgICAoZ2V0Z3JvdXBpZCk6CisgICAgICAgIChMb2Nh
bFBhdGgpOgorICAgICAgICAoTG9jYWxQYXRoLkltcG9ydE1pc21hdGNoRXJyb3IpOgorICAgICAg
ICAoTG9jYWxQYXRoLkNoZWNrZXJzKToKKyAgICAgICAgKExvY2FsUGF0aC5DaGVja2Vycy5fc3Rh
dCk6CisgICAgICAgIChMb2NhbFBhdGguQ2hlY2tlcnMuZGlyKToKKyAgICAgICAgKExvY2FsUGF0
aC5DaGVja2Vycy5maWxlKToKKyAgICAgICAgKExvY2FsUGF0aC5DaGVja2Vycy5leGlzdHMpOgor
ICAgICAgICAoTG9jYWxQYXRoLkNoZWNrZXJzLmxpbmspOgorICAgICAgICAoTG9jYWxQYXRoLl9f
aW5pdF9fKToKKyAgICAgICAgKExvY2FsUGF0aC5fX2hhc2hfXyk6CisgICAgICAgIChMb2NhbFBh
dGguX19lcV9fKToKKyAgICAgICAgKExvY2FsUGF0aC5fX25lX18pOgorICAgICAgICAoTG9jYWxQ
YXRoLl9fbHRfXyk6CisgICAgICAgIChMb2NhbFBhdGguX19ndF9fKToKKyAgICAgICAgKExvY2Fs
UGF0aC5zYW1lZmlsZSk6CisgICAgICAgIChMb2NhbFBhdGgucmVtb3ZlKToKKyAgICAgICAgKExv
Y2FsUGF0aC5jb21wdXRlaGFzaCk6CisgICAgICAgIChMb2NhbFBhdGgubmV3KToKKyAgICAgICAg
KExvY2FsUGF0aC5fZ2V0YnlzcGVjKToKKyAgICAgICAgKExvY2FsUGF0aC5kaXJwYXRoKToKKyAg
ICAgICAgKExvY2FsUGF0aC5qb2luKToKKyAgICAgICAgKExvY2FsUGF0aC5vcGVuKToKKyAgICAg
ICAgKExvY2FsUGF0aC5fZmFzdGpvaW4pOgorICAgICAgICAoTG9jYWxQYXRoLmlzbGluayk6Cisg
ICAgICAgIChMb2NhbFBhdGguY2hlY2spOgorICAgICAgICAoTG9jYWxQYXRoLmxpc3RkaXIpOgor
ICAgICAgICAoTG9jYWxQYXRoLnNpemUpOgorICAgICAgICAoTG9jYWxQYXRoLm10aW1lKToKKyAg
ICAgICAgKExvY2FsUGF0aC5jb3B5KToKKyAgICAgICAgKExvY2FsUGF0aC5jb3B5LnJlYyk6Cisg
ICAgICAgIChMb2NhbFBhdGgucmVuYW1lKToKKyAgICAgICAgKExvY2FsUGF0aC5kdW1wKToKKyAg
ICAgICAgKExvY2FsUGF0aC5ta2Rpcik6CisgICAgICAgIChMb2NhbFBhdGgud3JpdGVfYmluYXJ5
KToKKyAgICAgICAgKExvY2FsUGF0aC53cml0ZV90ZXh0KToKKyAgICAgICAgKExvY2FsUGF0aC53
cml0ZSk6CisgICAgICAgIChMb2NhbFBhdGguX2Vuc3VyZWRpcnMpOgorICAgICAgICAoTG9jYWxQ
YXRoLmVuc3VyZSk6CisgICAgICAgIChMb2NhbFBhdGguc3RhdCk6CisgICAgICAgIChMb2NhbFBh
dGgubHN0YXQpOgorICAgICAgICAoTG9jYWxQYXRoLnNldG10aW1lKToKKyAgICAgICAgKExvY2Fs
UGF0aC5jaGRpcik6CisgICAgICAgIChMb2NhbFBhdGguYXNfY3dkKToKKyAgICAgICAgKExvY2Fs
UGF0aC5yZWFscGF0aCk6CisgICAgICAgIChMb2NhbFBhdGguYXRpbWUpOgorICAgICAgICAoTG9j
YWxQYXRoLl9fcmVwcl9fKToKKyAgICAgICAgKExvY2FsUGF0aC5fX3N0cl9fKToKKyAgICAgICAg
KExvY2FsUGF0aC5jaG1vZCk6CisgICAgICAgIChMb2NhbFBhdGgucHlwa2dwYXRoKToKKyAgICAg
ICAgKExvY2FsUGF0aC5fZW5zdXJlc3lzcGF0aCk6CisgICAgICAgIChMb2NhbFBhdGgucHlpbXBv
cnQpOgorICAgICAgICAoTG9jYWxQYXRoLnN5c2V4ZWMpOgorICAgICAgICAoTG9jYWxQYXRoLnN5
c2ZpbmQpOgorICAgICAgICAoTG9jYWxQYXRoLl9nZXRob21lZGlyKToKKyAgICAgICAgKExvY2Fs
UGF0aC5nZXRfdGVtcHJvb3QpOgorICAgICAgICAoTG9jYWxQYXRoLm1rZHRlbXApOgorICAgICAg
ICAoTG9jYWxQYXRoLm1ha2VfbnVtYmVyZWRfZGlyKToKKyAgICAgICAgKExvY2FsUGF0aC5tYWtl
X251bWJlcmVkX2Rpci5wYXJzZV9udW0pOgorICAgICAgICAoTG9jYWxQYXRoLm1ha2VfbnVtYmVy
ZWRfZGlyLmNyZWF0ZV9sb2NrZmlsZSk6CisgICAgICAgIChMb2NhbFBhdGgubWFrZV9udW1iZXJl
ZF9kaXIuYXRleGl0X3JlbW92ZV9sb2NrZmlsZSk6CisgICAgICAgIChMb2NhbFBhdGgubWFrZV9u
dW1iZXJlZF9kaXIuYXRleGl0X3JlbW92ZV9sb2NrZmlsZS50cnlfcmVtb3ZlX2xvY2tmaWxlKToK
KyAgICAgICAgKExvY2FsUGF0aC5tYWtlX251bWJlcmVkX2Rpci5nZXRfbXRpbWUpOgorICAgICAg
ICAoTG9jYWxQYXRoLm1ha2VfbnVtYmVyZWRfZGlyLmlzX2dhcmJhZ2UpOgorICAgICAgICAoY29w
eW1vZGUpOgorICAgICAgICAoY29weXN0YXQpOgorICAgICAgICAoY29weWNodW5rZWQpOgorICAg
ICAgICAoaXNpbXBvcnRhYmxlKToKKyAgICAgICAgKiBweS9fcGF0aC9zdm51cmwucHk6IEFkZGVk
LgorICAgICAgICAoU3ZuQ29tbWFuZFBhdGgpOgorICAgICAgICAoU3ZuQ29tbWFuZFBhdGguX19u
ZXdfXyk6CisgICAgICAgIChTdm5Db21tYW5kUGF0aC5fX3JlcHJfXyk6CisgICAgICAgIChTdm5D
b21tYW5kUGF0aC5fc3Zud2l0aHJldik6CisgICAgICAgIChTdm5Db21tYW5kUGF0aC5fc3Zud3Jp
dGUpOgorICAgICAgICAoU3ZuQ29tbWFuZFBhdGguX3N2bmNtZGV4ZWNhdXRoKToKKyAgICAgICAg
KFN2bkNvbW1hbmRQYXRoLl9jbWRleGVjKToKKyAgICAgICAgKFN2bkNvbW1hbmRQYXRoLl9zdm5w
b3BlbmF1dGgpOgorICAgICAgICAoU3ZuQ29tbWFuZFBhdGguX3BvcGVuKToKKyAgICAgICAgKFN2
bkNvbW1hbmRQYXRoLl9lbmNvZGVkdXJsKToKKyAgICAgICAgKFN2bkNvbW1hbmRQYXRoLl9ub3Jl
dl9kZWxlbnRyeSk6CisgICAgICAgIChTdm5Db21tYW5kUGF0aC5vcGVuKToKKyAgICAgICAgKFN2
bkNvbW1hbmRQYXRoLmRpcnBhdGgpOgorICAgICAgICAoU3ZuQ29tbWFuZFBhdGgubWtkaXIpOgor
ICAgICAgICAoU3ZuQ29tbWFuZFBhdGguY29weSk6CisgICAgICAgIChTdm5Db21tYW5kUGF0aC5y
ZW5hbWUpOgorICAgICAgICAoU3ZuQ29tbWFuZFBhdGgucmVtb3ZlKToKKyAgICAgICAgKGV4cG9y
dCk6CisgICAgICAgIChlbnN1cmUpOgorICAgICAgICAoX3Byb3BnZXQpOgorICAgICAgICAoX3By
b3BsaXN0KToKKyAgICAgICAgKGluZm8pOgorICAgICAgICAoX2xpc3RkaXJfbmFtZWluZm8pOgor
ICAgICAgICAoX2xpc3RkaXJfbmFtZWluZm8uYnVpbGRlcik6CisgICAgICAgIChsaXN0ZGlyKToK
KyAgICAgICAgKGxvZyk6CisgICAgICAgIChJbmZvU3ZuQ29tbWFuZCk6CisgICAgICAgIChJbmZv
U3ZuQ29tbWFuZC5fX2luaXRfXyk6CisgICAgICAgIChJbmZvU3ZuQ29tbWFuZC5fX2VxX18pOgor
ICAgICAgICAocGFyc2VfdGltZV93aXRoX21pc3NpbmdfeWVhcik6CisgICAgICAgIChQYXRoRW50
cnkpOgorICAgICAgICAoUGF0aEVudHJ5Ll9faW5pdF9fKToKKyAgICAgICAgKiBweS9fcGF0aC9z
dm53Yy5weTogQWRkZWQuCisgICAgICAgIChjYWNoZSk6CisgICAgICAgIChSZXBvRW50cnkpOgor
ICAgICAgICAoUmVwb0VudHJ5Ll9faW5pdF9fKToKKyAgICAgICAgKFJlcG9FbnRyeS5fX3N0cl9f
KToKKyAgICAgICAgKFJlcG9DYWNoZSk6CisgICAgICAgIChSZXBvQ2FjaGUuX19pbml0X18pOgor
ICAgICAgICAoUmVwb0NhY2hlLmNsZWFyKToKKyAgICAgICAgKFJlcG9DYWNoZS5wdXQpOgorICAg
ICAgICAoUmVwb0NhY2hlLmdldCk6CisgICAgICAgIChfZ2V0c3ZudmVyc2lvbik6CisgICAgICAg
IChfZXNjYXBlX2hlbHBlcik6CisgICAgICAgIChfY2hlY2tfZm9yX2JhZF9jaGFycyk6CisgICAg
ICAgIChjaGVja2JhZGNoYXJzKToKKyAgICAgICAgKFN2blBhdGhCYXNlKToKKyAgICAgICAgKFN2
blBhdGhCYXNlLl9nZXR1cmwpOgorICAgICAgICAoU3ZuUGF0aEJhc2UuX19zdHJfXyk6CisgICAg
ICAgIChTdm5QYXRoQmFzZS5fX2hhc2hfXyk6CisgICAgICAgIChTdm5QYXRoQmFzZS5uZXcpOgor
ICAgICAgICAoU3ZuUGF0aEJhc2UuX2dldGJ5c3BlYyk6CisgICAgICAgIChTdm5QYXRoQmFzZS5f
X2VxX18pOgorICAgICAgICAoU3ZuUGF0aEJhc2UuX19uZV9fKToKKyAgICAgICAgKFN2blBhdGhC
YXNlLmpvaW4pOgorICAgICAgICAoU3ZuUGF0aEJhc2UucHJvcGdldCk6CisgICAgICAgIChTdm5Q
YXRoQmFzZS5wcm9wbGlzdCk6CisgICAgICAgIChTdm5QYXRoQmFzZS5zaXplKToKKyAgICAgICAg
KFN2blBhdGhCYXNlLm10aW1lKToKKyAgICAgICAgKFN2blBhdGhCYXNlLl9lc2NhcGUpOgorICAg
ICAgICAoU3ZuUGF0aEJhc2UuQ2hlY2tlcnMpOgorICAgICAgICAoU3ZuUGF0aEJhc2UuQ2hlY2tl
cnMuZGlyKToKKyAgICAgICAgKFN2blBhdGhCYXNlLkNoZWNrZXJzLl9saXN0ZGlyd29ya3MpOgor
ICAgICAgICAoU3ZuUGF0aEJhc2UuQ2hlY2tlcnMuZmlsZSk6CisgICAgICAgIChTdm5QYXRoQmFz
ZS5DaGVja2Vycy5leGlzdHMpOgorICAgICAgICAocGFyc2VfYXByX3RpbWUpOgorICAgICAgICAo
UHJvcExpc3REaWN0KToKKyAgICAgICAgKFByb3BMaXN0RGljdC5fX2luaXRfXyk6CisgICAgICAg
IChQcm9wTGlzdERpY3QuX19nZXRpdGVtX18pOgorICAgICAgICAoZml4bG9jYWxlKToKKyAgICAg
ICAgKF9jaGVja19wYXRoKToKKyAgICAgICAgKHBhdGhfdG9fZnNwYXRoKToKKyAgICAgICAgKHVy
bF9mcm9tX3BhdGgpOgorICAgICAgICAoU3ZuQXV0aCk6CisgICAgICAgIChTdm5BdXRoLl9faW5p
dF9fKToKKyAgICAgICAgKFN2bkF1dGgubWFrZWNtZG9wdGlvbnMpOgorICAgICAgICAoU3ZuQXV0
aC5fX3N0cl9fKToKKyAgICAgICAgKFN2bldDQ29tbWFuZFBhdGgpOgorICAgICAgICAoU3ZuV0ND
b21tYW5kUGF0aC5fX25ld19fKToKKyAgICAgICAgKFN2bldDQ29tbWFuZFBhdGguX19lcV9fKToK
KyAgICAgICAgKFN2bldDQ29tbWFuZFBhdGguX2dldHVybCk6CisgICAgICAgIChTdm5XQ0NvbW1h
bmRQYXRoLl9lc2NhcGUpOgorICAgICAgICAoU3ZuV0NDb21tYW5kUGF0aC5kdW1wKToKKyAgICAg
ICAgKFN2bldDQ29tbWFuZFBhdGguc3ZudXJsKToKKyAgICAgICAgKFN2bldDQ29tbWFuZFBhdGgu
X19yZXByX18pOgorICAgICAgICAoU3ZuV0NDb21tYW5kUGF0aC5fX3N0cl9fKToKKyAgICAgICAg
KFN2bldDQ29tbWFuZFBhdGguX21ha2VhdXRob3B0aW9ucyk6CisgICAgICAgIChTdm5XQ0NvbW1h
bmRQYXRoLl9hdXRoc3ZuKToKKyAgICAgICAgKFN2bldDQ29tbWFuZFBhdGguX3N2bik6CisgICAg
ICAgIChTdm5XQ0NvbW1hbmRQYXRoLnN3aXRjaCk6CisgICAgICAgIChTdm5XQ0NvbW1hbmRQYXRo
LmNoZWNrb3V0KToKKyAgICAgICAgKFN2bldDQ29tbWFuZFBhdGgudXBkYXRlKToKKyAgICAgICAg
KFN2bldDQ29tbWFuZFBhdGgud3JpdGUpOgorICAgICAgICAoU3ZuV0NDb21tYW5kUGF0aC5kaXJw
YXRoKToKKyAgICAgICAgKFN2bldDQ29tbWFuZFBhdGguX2Vuc3VyZWRpcnMpOgorICAgICAgICAo
U3ZuV0NDb21tYW5kUGF0aC5lbnN1cmUpOgorICAgICAgICAoU3ZuV0NDb21tYW5kUGF0aC5ta2Rp
cik6CisgICAgICAgIChTdm5XQ0NvbW1hbmRQYXRoLmFkZCk6CisgICAgICAgIChTdm5XQ0NvbW1h
bmRQYXRoLnJlbW92ZSk6CisgICAgICAgIChTdm5XQ0NvbW1hbmRQYXRoLmNvcHkpOgorICAgICAg
ICAoU3ZuV0NDb21tYW5kUGF0aC5yZW5hbWUpOgorICAgICAgICAoU3ZuV0NDb21tYW5kUGF0aC5s
b2NrKToKKyAgICAgICAgKFN2bldDQ29tbWFuZFBhdGgudW5sb2NrKToKKyAgICAgICAgKFN2bldD
Q29tbWFuZFBhdGguY2xlYW51cCk6CisgICAgICAgIChTdm5XQ0NvbW1hbmRQYXRoLnN0YXR1cyk6
CisgICAgICAgIChTdm5XQ0NvbW1hbmRQYXRoLmRpZmYpOgorICAgICAgICAoU3ZuV0NDb21tYW5k
UGF0aC5ibGFtZSk6CisgICAgICAgIChTdm5XQ0NvbW1hbmRQYXRoLmNvbW1pdCk6CisgICAgICAg
IChTdm5XQ0NvbW1hbmRQYXRoLnByb3BzZXQpOgorICAgICAgICAoU3ZuV0NDb21tYW5kUGF0aC5w
cm9wZ2V0KToKKyAgICAgICAgKFN2bldDQ29tbWFuZFBhdGgucHJvcGRlbCk6CisgICAgICAgIChT
dm5XQ0NvbW1hbmRQYXRoLnByb3BsaXN0KToKKyAgICAgICAgKHJldmVydCk6CisgICAgICAgIChu
ZXcpOgorICAgICAgICAoam9pbik6CisgICAgICAgIChpbmZvKToKKyAgICAgICAgKGxpc3RkaXIp
OgorICAgICAgICAobGlzdGRpci5ub3Rzdm4pOgorICAgICAgICAob3Blbik6CisgICAgICAgIChf
Z2V0YnlzcGVjKToKKyAgICAgICAgKENoZWNrZXJzKToKKyAgICAgICAgKENoZWNrZXJzLl9faW5p
dF9fKToKKyAgICAgICAgKENoZWNrZXJzLnZlcnNpb25lZCk6CisgICAgICAgIChsb2cpOgorICAg
ICAgICAoc2l6ZSk6CisgICAgICAgIChtdGltZSk6CisgICAgICAgIChfX2hhc2hfXyk6CisgICAg
ICAgIChXQ1N0YXR1cyk6CisgICAgICAgIChXQ1N0YXR1cy5fX2luaXRfXyk6CisgICAgICAgIChX
Q1N0YXR1cy5hbGxwYXRoKToKKyAgICAgICAgKFdDU3RhdHVzLmZyb21zdHJpbmcpOgorICAgICAg
ICAoWE1MV0NTdGF0dXMpOgorICAgICAgICAoWE1MV0NTdGF0dXMuZnJvbXN0cmluZyk6CisgICAg
ICAgIChJbmZvU3ZuV0NDb21tYW5kKToKKyAgICAgICAgKEluZm9Tdm5XQ0NvbW1hbmQuX19pbml0
X18pOgorICAgICAgICAoSW5mb1N2bldDQ29tbWFuZC5fX2VxX18pOgorICAgICAgICAocGFyc2Vf
d2NpbmZvdGltZSk6CisgICAgICAgIChtYWtlX3JlY3Vyc2l2ZV9wcm9wZGljdCk6CisgICAgICAg
IChpbXBvcnR4bWwpOgorICAgICAgICAoTG9nRW50cnkpOgorICAgICAgICAoTG9nRW50cnkuX19p
bml0X18pOgorICAgICAgICAoTG9nRW50cnkuX19yZXByX18pOgorICAgICAgICAqIHB5L19wYXRo
L3czYy1pbXBvcnQubG9nOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3czYy1pbXBvcnQubG9nLgorICAgICAgICAqIHB5L19wcm9j
ZXNzL19faW5pdF9fLnB5OiBBZGRlZC4KKyAgICAgICAgKiBweS9fcHJvY2Vzcy9jbWRleGVjLnB5
OiBBZGRlZC4KKyAgICAgICAgKGNtZGV4ZWMpOgorICAgICAgICAoRXhlY3V0aW9uRmFpbGVkKToK
KyAgICAgICAgKEV4ZWN1dGlvbkZhaWxlZC5fX2luaXRfXyk6CisgICAgICAgIChFeGVjdXRpb25G
YWlsZWQuX19zdHJfXyk6CisgICAgICAgICogcHkvX3Byb2Nlc3MvZm9ya2VkZnVuYy5weTogQWRk
ZWQuCisgICAgICAgIChnZXRfdW5idWZmZXJlZF9pbyk6CisgICAgICAgIChnZXRfdW5idWZmZXJl
ZF9pby5BdXRvRmx1c2gpOgorICAgICAgICAoZ2V0X3VuYnVmZmVyZWRfaW8uQXV0b0ZsdXNoLndy
aXRlKToKKyAgICAgICAgKGdldF91bmJ1ZmZlcmVkX2lvLkF1dG9GbHVzaC5fX2dldGF0dHJfXyk6
CisgICAgICAgIChGb3JrZWRGdW5jKToKKyAgICAgICAgKEZvcmtlZEZ1bmMuX19pbml0X18pOgor
ICAgICAgICAoRm9ya2VkRnVuYy5fY2hpbGQpOgorICAgICAgICAoRm9ya2VkRnVuYy53YWl0Zmlu
aXNoKToKKyAgICAgICAgKEZvcmtlZEZ1bmMuX3JlbW92ZXRlbXApOgorICAgICAgICAoRm9ya2Vk
RnVuYy5fX2RlbF9fKToKKyAgICAgICAgKFJlc3VsdCk6CisgICAgICAgIChSZXN1bHQuX19pbml0
X18pOgorICAgICAgICAqIHB5L19wcm9jZXNzL2tpbGxwcm9jLnB5OiBBZGRlZC4KKyAgICAgICAg
KGRva2lsbCk6CisgICAgICAgIChraWxsKToKKyAgICAgICAgKiBweS9fcHJvY2Vzcy93M2MtaW1w
b3J0LmxvZzogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9zZXJ2ZS93M2MtaW1wb3J0LmxvZy4KKyAgICAgICAgKiBweS9fc3RkLnB5
OiBBZGRlZC4KKyAgICAgICAgKFB5U3RkSXNEZXByZWNhdGVkV2FybmluZyk6CisgICAgICAgIChT
dGQpOgorICAgICAgICAoU3RkLl9faW5pdF9fKToKKyAgICAgICAgKFN0ZC5fX2dldGF0dHJfXyk6
CisgICAgICAgICogcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL19faW5pdF9fLnB5OiBBZGRlZC4KKyAg
ICAgICAgKiBweS9fdmVuZG9yZWRfcGFja2FnZXMvYXBpcGtnLTEuNC5kaXN0LWluZm8vREVTQ1JJ
UFRJT04ucnN0OiBBZGRlZC4KKyAgICAgICAgKiBweS9fdmVuZG9yZWRfcGFja2FnZXMvYXBpcGtn
LTEuNC5kaXN0LWluZm8vSU5TVEFMTEVSOiBBZGRlZC4KKyAgICAgICAgKiBweS9fdmVuZG9yZWRf
cGFja2FnZXMvYXBpcGtnLTEuNC5kaXN0LWluZm8vTUVUQURBVEE6IEFkZGVkLgorICAgICAgICAq
IHB5L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby9SRUNPUkQ6IEFkZGVk
LgorICAgICAgICAqIHB5L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby9X
SEVFTDogQWRkZWQuCisgICAgICAgICogcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2FwaXBrZy0xLjQu
ZGlzdC1pbmZvL21ldGFkYXRhLmpzb246IEFkZGVkLgorICAgICAgICAqIHB5L192ZW5kb3JlZF9w
YWNrYWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby90b3BfbGV2ZWwudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBweS9fdmVuZG9yZWRfcGFja2FnZXMvYXBpcGtnLTEuNC5kaXN0LWluZm8vdzNjLWltcG9y
dC5sb2c6IEFkZGVkLgorICAgICAgICAqIHB5L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlwa2cucHk6
IEFkZGVkLgorICAgICAgICAoX3B5X2Fic3BhdGgpOgorICAgICAgICAoZGlzdHJpYnV0aW9uX3Zl
cnNpb24pOgorICAgICAgICAoaW5pdHBrZyk6CisgICAgICAgIChpbXBvcnRvYmopOgorICAgICAg
ICAoQXBpTW9kdWxlKToKKyAgICAgICAgKEFwaU1vZHVsZS5fX2RvY2dldCk6CisgICAgICAgIChB
cGlNb2R1bGUuX19kb2NzZXQpOgorICAgICAgICAoQXBpTW9kdWxlLl9faW5pdF9fKToKKyAgICAg
ICAgKEFwaU1vZHVsZS5fX3JlcHJfXyk6CisgICAgICAgIChBcGlNb2R1bGUuX19tYWtlYXR0cik6
CisgICAgICAgIChBcGlNb2R1bGUuX19kaWN0X18pOgorICAgICAgICAoQWxpYXNNb2R1bGUpOgor
ICAgICAgICAoQWxpYXNNb2R1bGUuZ2V0bW9kKToKKyAgICAgICAgKEFsaWFzTW9kdWxlLkFsaWFz
TW9kdWxlKToKKyAgICAgICAgKEFsaWFzTW9kdWxlLkFsaWFzTW9kdWxlLl9fcmVwcl9fKToKKyAg
ICAgICAgKEFsaWFzTW9kdWxlLkFsaWFzTW9kdWxlLl9fZ2V0YXR0cmlidXRlX18pOgorICAgICAg
ICAoQWxpYXNNb2R1bGUuQWxpYXNNb2R1bGUuX19zZXRhdHRyX18pOgorICAgICAgICAoQWxpYXNN
b2R1bGUuQWxpYXNNb2R1bGUuX19kZWxhdHRyX18pOgorICAgICAgICAqIHB5L192ZW5kb3JlZF9w
YWNrYWdlcy9pbmljb25maWctMS4wLjAuZGlzdC1pbmZvL0RFU0NSSVBUSU9OLnJzdDogQWRkZWQu
CisgICAgICAgICogcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWlu
Zm8vSU5TVEFMTEVSOiBBZGRlZC4KKyAgICAgICAgKiBweS9fdmVuZG9yZWRfcGFja2FnZXMvaW5p
Y29uZmlnLTEuMC4wLmRpc3QtaW5mby9NRVRBREFUQTogQWRkZWQuCisgICAgICAgICogcHkvX3Zl
bmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vUkVDT1JEOiBBZGRlZC4K
KyAgICAgICAgKiBweS9fdmVuZG9yZWRfcGFja2FnZXMvaW5pY29uZmlnLTEuMC4wLmRpc3QtaW5m
by9XSEVFTDogQWRkZWQuCisgICAgICAgICogcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNvbmZp
Zy0xLjAuMC5kaXN0LWluZm8vbWV0YWRhdGEuanNvbjogQWRkZWQuCisgICAgICAgICogcHkvX3Zl
bmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vdG9wX2xldmVsLnR4dDog
QWRkZWQuCisgICAgICAgICogcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5k
aXN0LWluZm8vdzNjLWltcG9ydC5sb2c6IEFkZGVkLgorICAgICAgICAqIHB5L192ZW5kb3JlZF9w
YWNrYWdlcy9pbmljb25maWcucHk6IEFkZGVkLgorICAgICAgICAoUGFyc2VFcnJvcik6CisgICAg
ICAgIChQYXJzZUVycm9yLl9faW5pdF9fKToKKyAgICAgICAgKFBhcnNlRXJyb3IuX19zdHJfXyk6
CisgICAgICAgIChTZWN0aW9uV3JhcHBlcik6CisgICAgICAgIChTZWN0aW9uV3JhcHBlci5fX2lu
aXRfXyk6CisgICAgICAgIChTZWN0aW9uV3JhcHBlci5saW5lb2YpOgorICAgICAgICAoU2VjdGlv
bldyYXBwZXIuZ2V0KToKKyAgICAgICAgKFNlY3Rpb25XcmFwcGVyLl9fZ2V0aXRlbV9fKToKKyAg
ICAgICAgKFNlY3Rpb25XcmFwcGVyLl9faXRlcl9fKToKKyAgICAgICAgKFNlY3Rpb25XcmFwcGVy
Ll9faXRlcl9fLmxpbmVvZik6CisgICAgICAgIChTZWN0aW9uV3JhcHBlci5pdGVtcyk6CisgICAg
ICAgIChJbmlDb25maWcpOgorICAgICAgICAoSW5pQ29uZmlnLl9faW5pdF9fKToKKyAgICAgICAg
KEluaUNvbmZpZy5fcmFpc2UpOgorICAgICAgICAoSW5pQ29uZmlnLl9wYXJzZSk6CisgICAgICAg
IChJbmlDb25maWcuX3BhcnNlbGluZSk6CisgICAgICAgIChJbmlDb25maWcubGluZW9mKToKKyAg
ICAgICAgKEluaUNvbmZpZy5nZXQpOgorICAgICAgICAoSW5pQ29uZmlnLl9fZ2V0aXRlbV9fKToK
KyAgICAgICAgKEluaUNvbmZpZy5fX2l0ZXJfXyk6CisgICAgICAgIChJbmlDb25maWcuX19jb250
YWluc19fKToKKyAgICAgICAgKGlzY29tbWVudGxpbmUpOgorICAgICAgICAqIHB5L192ZW5kb3Jl
ZF9wYWNrYWdlcy93M2MtaW1wb3J0LmxvZzogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS93M2MtaW1wb3J0LmxvZy4KKyAg
ICAgICAgKiBweS9feG1sZ2VuLnB5OiBBZGRlZC4KKyAgICAgICAgKHUpOgorICAgICAgICAodW5p
Y29kZSk6CisgICAgICAgIChOYW1lc3BhY2VNZXRhY2xhc3MpOgorICAgICAgICAoTmFtZXNwYWNl
TWV0YWNsYXNzLl9fZ2V0YXR0cl9fKToKKyAgICAgICAgKE5hbWVzcGFjZU1ldGFjbGFzcy5fX2dl
dGF0dHJfXy5pcyk6CisgICAgICAgIChUYWcpOgorICAgICAgICAoVGFnLkF0dHIpOgorICAgICAg
ICAoVGFnLkF0dHIuX19pbml0X18pOgorICAgICAgICAoVGFnLl9faW5pdF9fKToKKyAgICAgICAg
KFRhZy5fX3VuaWNvZGVfXyk6CisgICAgICAgIChUYWcudW5pY29kZSk6CisgICAgICAgIChUYWcu
X19yZXByX18pOgorICAgICAgICAoSHRtbFRhZyk6CisgICAgICAgIChIdG1sVGFnLnVuaWNvZGUp
OgorICAgICAgICAoaHRtbCk6CisgICAgICAgIChodG1sLlN0eWxlKToKKyAgICAgICAgKGh0bWwu
U3R5bGUuX19pbml0X18pOgorICAgICAgICAocmF3KToKKyAgICAgICAgKHJhdy5fX2luaXRfXyk6
CisgICAgICAgIChTaW1wbGVVbmljb2RlVmlzaXRvcik6CisgICAgICAgIChTaW1wbGVVbmljb2Rl
VmlzaXRvci5fX2luaXRfXyk6CisgICAgICAgIChTaW1wbGVVbmljb2RlVmlzaXRvci52aXNpdCk6
CisgICAgICAgIChTaW1wbGVVbmljb2RlVmlzaXRvci52aXNpdC5pbik6CisgICAgICAgIChTaW1w
bGVVbmljb2RlVmlzaXRvci5fX29iamVjdCk6CisgICAgICAgIChTaW1wbGVVbmljb2RlVmlzaXRv
ci5yYXcpOgorICAgICAgICAoU2ltcGxlVW5pY29kZVZpc2l0b3IubGlzdCk6CisgICAgICAgIChT
aW1wbGVVbmljb2RlVmlzaXRvci5UYWcpOgorICAgICAgICAoU2ltcGxlVW5pY29kZVZpc2l0b3Iu
YXR0cmlidXRlcyk6CisgICAgICAgIChTaW1wbGVVbmljb2RlVmlzaXRvci5yZXByX2F0dHJpYnV0
ZSk6CisgICAgICAgIChTaW1wbGVVbmljb2RlVmlzaXRvci5nZXRzdHlsZSk6CisgICAgICAgIChT
aW1wbGVVbmljb2RlVmlzaXRvci5faXNzaW5nbGV0b24pOgorICAgICAgICAoU2ltcGxlVW5pY29k
ZVZpc2l0b3IuX2lzaW5saW5lKToKKyAgICAgICAgKEh0bWxWaXNpdG9yKToKKyAgICAgICAgKEh0
bWxWaXNpdG9yLnJlcHJfYXR0cmlidXRlKToKKyAgICAgICAgKEh0bWxWaXNpdG9yLl9pc3Npbmds
ZXRvbik6CisgICAgICAgIChIdG1sVmlzaXRvci5faXNpbmxpbmUpOgorICAgICAgICAoX2VzY2Fw
ZSk6CisgICAgICAgIChfZXNjYXBlLl9faW5pdF9fKToKKyAgICAgICAgKF9lc2NhcGUuX3JlcGxh
Y2VyKToKKyAgICAgICAgKF9lc2NhcGUuX19jYWxsX18pOgorICAgICAgICAqIHB5L3Rlc3QucHk6
IEFkZGVkLgorICAgICAgICAqIHB5L3czYy1pbXBvcnQubG9nOiBDb3BpZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL3czYy1pbXBv
cnQubG9nLgorICAgICAgICAqIHNldHVwLmNmZzogQWRkZWQuCisgICAgICAgICogc2V0dXAucHk6
IEFkZGVkLgorICAgICAgICAoZ2V0X3ZlcnNpb24pOgorICAgICAgICAobWFpbik6CisgICAgICAg
ICogdGFza3MvX19pbml0X18ucHk6IEFkZGVkLgorICAgICAgICAqIHRhc2tzL3ZlbmRvcmluZy5w
eTogQWRkZWQuCisgICAgICAgIChyZW1vdmVfbGlicyk6CisgICAgICAgICh1cGRhdGVfbGlicyk6
CisgICAgICAgICogdGFza3MvdzNjLWltcG9ydC5sb2c6IENvcGllZCBmcm9tIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdzNjLWltcG9ydC5sb2cuCisg
ICAgICAgICogdGVzdGluZy9jb2RlL3Rlc3RfYXNzZXJ0aW9uLnB5OiBBZGRlZC4KKyAgICAgICAg
KGV4dmFsdWUpOgorICAgICAgICAoZik6CisgICAgICAgICh0ZXN0X2Fzc2VydCk6CisgICAgICAg
ICh0ZXN0X2Fzc2VydF93aXRoaW5fZmluYWxseSk6CisgICAgICAgICh0ZXN0X2hlbGxvKToKKyAg
ICAgICAgKiB0ZXN0aW5nL2NvZGUvdGVzdF9jb2RlLnB5OiBBZGRlZC4KKyAgICAgICAgKHRlc3Rf
bmUpOgorICAgICAgICAodGVzdF9jb2RlX2dpdmVzX2JhY2tfbmFtZV9mb3Jfbm90X2V4aXN0aW5n
X2ZpbGUpOgorICAgICAgICAodGVzdF9jb2RlX3dpdGhfY2xhc3MpOgorICAgICAgICAodGVzdF9j
b2RlX3dpdGhfY2xhc3MuQSk6CisgICAgICAgICh4KToKKyAgICAgICAgKHRlc3RfY29kZV9mdWxs
c291cmNlKToKKyAgICAgICAgKHRlc3RfY29kZV9zb3VyY2UpOgorICAgICAgICAodGVzdF9jb2Rl
X3NvdXJjZS54KToKKyAgICAgICAgKHRlc3RfZnJhbWVfZ2V0c291cmNlbGluZW5vX215c2VsZik6
CisgICAgICAgICh0ZXN0X2ZyYW1lX2dldHNvdXJjZWxpbmVub19teXNlbGYuZnVuYyk6CisgICAg
ICAgICh0ZXN0X2dldHN0YXRlbWVudF9lbXB0eV9mdWxsc291cmNlKToKKyAgICAgICAgKHRlc3Rf
Z2V0c3RhdGVtZW50X2VtcHR5X2Z1bGxzb3VyY2UuZnVuYyk6CisgICAgICAgICh0ZXN0X2NvZGVf
ZnJvbV9mdW5jKToKKyAgICAgICAgKHRlc3RfYnVpbHRpbl9wYXRjaF91bnBhdGNoKToKKyAgICAg
ICAgKHRlc3RfYnVpbHRpbl9wYXRjaF91bnBhdGNoLm15Y29tcGlsZSk6CisgICAgICAgICh0ZXN0
X2J1aWx0aW5fcGF0Y2hfdW5wYXRjaC5TdWIpOgorICAgICAgICAodGVzdF91bmljb2RlX2hhbmRs
aW5nKToKKyAgICAgICAgKHRlc3RfdW5pY29kZV9oYW5kbGluZy5mKToKKyAgICAgICAgKHRlc3Rf
Y29kZV9nZXRhcmdzKToKKyAgICAgICAgKHRlc3RfY29kZV9nZXRhcmdzLmYxKToKKyAgICAgICAg
KHRlc3RfY29kZV9nZXRhcmdzLmYyKToKKyAgICAgICAgKHRlc3RfY29kZV9nZXRhcmdzLmYzKToK
KyAgICAgICAgKHRlc3RfY29kZV9nZXRhcmdzLmY0KToKKyAgICAgICAgKHRlc3RfZnJhbWVfZ2V0
YXJncyk6CisgICAgICAgICh0ZXN0X2ZyYW1lX2dldGFyZ3MuZjEpOgorICAgICAgICAodGVzdF9m
cmFtZV9nZXRhcmdzLmYyKToKKyAgICAgICAgKHRlc3RfZnJhbWVfZ2V0YXJncy5mMyk6CisgICAg
ICAgICh0ZXN0X2ZyYW1lX2dldGFyZ3MuZjQpOgorICAgICAgICAoVGVzdEV4Y2VwdGlvbkluZm8p
OgorICAgICAgICAoVGVzdEV4Y2VwdGlvbkluZm8udGVzdF9iYWRfZ2V0c291cmNlKToKKyAgICAg
ICAgKFRlc3RUcmFjZWJhY2tFbnRyeSk6CisgICAgICAgIChUZXN0VHJhY2ViYWNrRW50cnkudGVz
dF9nZXRzb3VyY2UpOgorICAgICAgICAqIHRlc3RpbmcvY29kZS90ZXN0X2V4Y2luZm8ucHk6IEFk
ZGVkLgorICAgICAgICAoVFdNb2NrKToKKyAgICAgICAgKFRXTW9jay5fX2luaXRfXyk6CisgICAg
ICAgIChUV01vY2suc2VwKToKKyAgICAgICAgKFRXTW9jay5saW5lKToKKyAgICAgICAgKFRXTW9j
ay5tYXJrdXApOgorICAgICAgICAodGVzdF9leGNpbmZvX3NpbXBsZSk6CisgICAgICAgICh0ZXN0
X2V4Y2luZm9fZ2V0c3RhdGVtZW50KToKKyAgICAgICAgKHRlc3RfZXhjaW5mb19nZXRzdGF0ZW1l
bnQuZyk6CisgICAgICAgICh0ZXN0X2V4Y2luZm9fZ2V0c3RhdGVtZW50LmYpOgorICAgICAgICAo
Zik6CisgICAgICAgIChnKToKKyAgICAgICAgKGgpOgorICAgICAgICAoVGVzdFRyYWNlYmFja19m
X2dfaCk6CisgICAgICAgIChUZXN0VHJhY2ViYWNrX2ZfZ19oLnNldHVwX21ldGhvZCk6CisgICAg
ICAgIChUZXN0VHJhY2ViYWNrX2ZfZ19oLnRlc3RfdHJhY2ViYWNrX2VudHJpZXMpOgorICAgICAg
ICAoVGVzdFRyYWNlYmFja19mX2dfaC50ZXN0X3RyYWNlYmFja19lbnRyeV9nZXRzb3VyY2UpOgor
ICAgICAgICAoVGVzdFRyYWNlYmFja19mX2dfaC50ZXN0X3RyYWNlYmFja19lbnRyeV9nZXRzb3Vy
Y2UuZik6CisgICAgICAgIChUZXN0VHJhY2ViYWNrX2ZfZ19oLnRlc3RfdHJhY2ViYWNrX2VudHJ5
X2dldHNvdXJjZV9pbl9jb25zdHJ1Y3QpOgorICAgICAgICAoVGVzdFRyYWNlYmFja19mX2dfaC50
ZXN0X3RyYWNlYmFja19lbnRyeV9nZXRzb3VyY2VfaW5fY29uc3RydWN0Lnh5eik6CisgICAgICAg
IChmdW5jMSk6CisgICAgICAgIChlbnRyeSk6CisgICAgICAgIChyZWMyKToKKyAgICAgICAgKHJl
YzEpOgorICAgICAgICAoc29tZWZ1bmMpOgorICAgICAgICAoaSk6CisgICAgICAgICogdGVzdGlu
Zy9jb2RlL3Rlc3Rfc291cmNlLnB5OiBBZGRlZC4KKyAgICAgICAgKHRlc3Rfc291cmNlX3N0cl9m
dW5jdGlvbik6CisgICAgICAgICh0ZXN0X3NvdXJjZV9wdXRhcm91bmQpOgorICAgICAgICAoZik6
CisgICAgICAgIChnKToKKyAgICAgICAgKHRlc3RfZGVpbmRlbnQpOgorICAgICAgICAodGVzdF9k
ZWluZGVudC5mKToKKyAgICAgICAgKGYuZyk6CisgICAgICAgIChBKToKKyAgICAgICAgKEEubWV0
aG9kKToKKyAgICAgICAgKHRlc3RfaWRlbV9jb21waWxlX2FuZF9nZXRzb3VyY2UpOgorICAgICAg
ICAodGVzdF9pZGVtX2NvbXBpbGVfYW5kX2dldHNvdXJjZS54KToKKyAgICAgICAgKHRlc3RfZmlu
ZHNvdXJjZV9mYWxsYmFjayk6CisgICAgICAgICh0ZXN0X2ZpbmRzb3VyY2VfZmFsbGJhY2sueCk6
CisgICAgICAgICh0ZXN0X2ZpbmRzb3VyY2UpOgorICAgICAgICAodGVzdF9maW5kc291cmNlLngp
OgorICAgICAgICAodGVzdF9jb21tZW50X2luX3N0YXRlbWVudCk6CisgICAgICAgICh0ZXN0X2Jv
ZHkpOgorICAgICAgICAodGVzdF9leGNlcHRfbGluZSk6CisgICAgICAgICh0ZXN0X2V4Y2VwdF9i
b2R5KToKKyAgICAgICAgKHRlc3RfZWxzZSk6CisgICAgICAgIChUZXN0VHJ5RmluYWxseSk6Cisg
ICAgICAgICh0ZXN0X2VsaWZfY2xhdXNlKToKKyAgICAgICAgKHRlc3RfZWxpZik6CisgICAgICAg
ICh0ZXN0X3NlbWljb2xvbik6CisgICAgICAgIChmdW5jKToKKyAgICAgICAgKFhYWF90ZXN0X2V4
cHJlc3Npb25fbXVsdGlsaW5lKToKKyAgICAgICAgKiB0ZXN0aW5nL2NvZGUvdzNjLWltcG9ydC5s
b2c6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdzNjLWltcG9ydC5sb2cuCisgICAgICAgICogdGVzdGluZy9jb25mdGVzdC5weTog
QWRkZWQuCisgICAgICAgICogdGVzdGluZy9pb18vX19pbml0X18ucHk6IEFkZGVkLgorICAgICAg
ICAqIHRlc3RpbmcvaW9fL3Rlc3RfY2FwdHVyZS5weTogQWRkZWQuCisgICAgICAgICh0b2J5dGVz
KToKKyAgICAgICAgKHRvdGV4dCk6CisgICAgICAgIChvc3dyaXRlYnl0ZXMpOgorICAgICAgICAo
VGVzdFRleHRJTyk6CisgICAgICAgIChUZXN0VGV4dElPLnRlc3RfdGV4dCk6CisgICAgICAgIChU
ZXN0VGV4dElPLnRlc3RfdW5pY29kZV9hbmRfc3RyX21peHR1cmUpOgorICAgICAgICAodGVzdF9i
eXRlc19pbyk6CisgICAgICAgICh0ZXN0X2RvbnRyZWFkZnJvbWlucHV0KToKKyAgICAgICAgKHB5
dGVzdF9mdW5jYXJnX190bXBmaWxlKToKKyAgICAgICAgKHRlc3RfZHVwZmlsZSk6CisgICAgICAg
ICh0ZXN0X2R1cGZpbGVfbm9fbW9kZSk6CisgICAgICAgICh0ZXN0X2R1cGZpbGVfbm9fbW9kZS5T
b21lRmlsZVdyYXBwZXIpOgorICAgICAgICAodGVzdF9kdXBmaWxlX25vX21vZGUuU29tZUZpbGVX
cmFwcGVyLmZpbGVubyk6CisgICAgICAgIChsc29mX2NoZWNrKToKKyAgICAgICAgKFRlc3RGRENh
cHR1cmUpOgorICAgICAgICAoVGVzdEZEQ2FwdHVyZS50ZXN0X25vdF9ub3cpOgorICAgICAgICAo
VGVzdEZEQ2FwdHVyZS50ZXN0X3NpbXBsZSk6CisgICAgICAgIChUZXN0RkRDYXB0dXJlLnRlc3Rf
c2ltcGxlX21hbnkpOgorICAgICAgICAoVGVzdEZEQ2FwdHVyZS50ZXN0X3NpbXBsZV9tYW55X2No
ZWNrX29wZW5fZmlsZXMpOgorICAgICAgICAoVGVzdEZEQ2FwdHVyZS50ZXN0X3NpbXBsZV9mYWls
X3NlY29uZF9zdGFydCk6CisgICAgICAgIChUZXN0RkRDYXB0dXJlLnRlc3Rfc3RkZXJyKToKKyAg
ICAgICAgKFRlc3RGRENhcHR1cmUudGVzdF9zdGRpbik6CisgICAgICAgIChUZXN0RkRDYXB0dXJl
LnRlc3Rfd3JpdGVvcmcpOgorICAgICAgICAoVGVzdFN0ZENhcHR1cmUpOgorICAgICAgICAoVGVz
dFN0ZENhcHR1cmUuZ2V0Y2FwdHVyZSk6CisgICAgICAgIChUZXN0U3RkQ2FwdHVyZS50ZXN0X2Nh
cHR1cmluZ19kb25lX3NpbXBsZSk6CisgICAgICAgIChUZXN0U3RkQ2FwdHVyZS50ZXN0X2NhcHR1
cmluZ19yZXNldF9zaW1wbGUpOgorICAgICAgICAoVGVzdFN0ZENhcHR1cmUudGVzdF9jYXB0dXJp
bmdfcmVhZG91dGVycik6CisgICAgICAgIChUZXN0U3RkQ2FwdHVyZS50ZXN0X2NhcHR1cmluZ19y
ZWFkb3V0ZXJyX3VuaWNvZGUpOgorICAgICAgICAoVGVzdFN0ZENhcHR1cmUudGVzdF9jYXB0dXJp
bmdfcmVhZG91dGVycl9kZWNvZGVfZXJyb3JfaGFuZGxpbmcpOgorICAgICAgICAoVGVzdFN0ZENh
cHR1cmUudGVzdF9jYXB0dXJpbmdfbWl4ZWQpOgorICAgICAgICAoVGVzdFN0ZENhcHR1cmUudGVz
dF9yZXNldF90d2ljZV9lcnJvcik6CisgICAgICAgIChUZXN0U3RkQ2FwdHVyZS50ZXN0X2NhcHR1
cmluZ19tb2RpZnlfc3lzb3V0ZXJyX2luX2JldHdlZW4pOgorICAgICAgICAoVGVzdFN0ZENhcHR1
cmUudGVzdF9jYXB0dXJpbmdfZXJyb3JfcmVjdXJzaXZlKToKKyAgICAgICAgKFRlc3RTdGRDYXB0
dXJlLnRlc3RfanVzdF9vdXRfY2FwdHVyZSk6CisgICAgICAgIChUZXN0U3RkQ2FwdHVyZS50ZXN0
X2p1c3RfZXJyX2NhcHR1cmUpOgorICAgICAgICAoVGVzdFN0ZENhcHR1cmUudGVzdF9zdGRpbl9y
ZXN0b3JlZCk6CisgICAgICAgIChUZXN0U3RkQ2FwdHVyZS50ZXN0X3N0ZGluX251bGxlZF9ieV9k
ZWZhdWx0KToKKyAgICAgICAgKFRlc3RTdGRDYXB0dXJlLnRlc3Rfc3VzcGVuZF9yZXN1bWUpOgor
ICAgICAgICAoVGVzdFN0ZENhcHR1cmVOb3ROb3cpOgorICAgICAgICAoVGVzdFN0ZENhcHR1cmVO
b3ROb3cuZ2V0Y2FwdHVyZSk6CisgICAgICAgIChUZXN0U3RkQ2FwdHVyZUZEKToKKyAgICAgICAg
KFRlc3RTdGRDYXB0dXJlRkQuZ2V0Y2FwdHVyZSk6CisgICAgICAgIChUZXN0U3RkQ2FwdHVyZUZE
LnRlc3RfaW50ZXJtaW5nbGluZyk6CisgICAgICAgIChUZXN0U3RkQ2FwdHVyZUZELnRlc3RfY2Fs
bGNhcHR1cmUpOgorICAgICAgICAoVGVzdFN0ZENhcHR1cmVGRC50ZXN0X2NhbGxjYXB0dXJlLmZ1
bmMpOgorICAgICAgICAoVGVzdFN0ZENhcHR1cmVGRC50ZXN0X21hbnkpOgorICAgICAgICAoVGVz
dFN0ZENhcHR1cmVGRC50ZXN0X21hbnkuZik6CisgICAgICAgIChUZXN0U3RkQ2FwdHVyZUZETm90
Tm93KToKKyAgICAgICAgKFRlc3RTdGRDYXB0dXJlRkROb3ROb3cuZ2V0Y2FwdHVyZSk6CisgICAg
ICAgICh0ZXN0X3N0ZGNhcHR1cmVfZmRfdG1wZmlsZSk6CisgICAgICAgIChUZXN0U3RkQ2FwdHVy
ZUZEaW52YWxpZEZEKToKKyAgICAgICAgKFRlc3RTdGRDYXB0dXJlRkRpbnZhbGlkRkQudGVzdF9z
dGRjYXB0dXJlX2ZkX2ludmFsaWRfZmQpOgorICAgICAgICAoVGVzdFN0ZENhcHR1cmVGRGludmFs
aWRGRC50ZXN0X3N0ZGNhcHR1cmVfZmRfaW52YWxpZF9mZC50ZXN0X3N0ZG91dCk6CisgICAgICAg
IChUZXN0U3RkQ2FwdHVyZUZEaW52YWxpZEZELnRlc3Rfc3RkY2FwdHVyZV9mZF9pbnZhbGlkX2Zk
LnRlc3Rfc3RkZXJyKToKKyAgICAgICAgKFRlc3RTdGRDYXB0dXJlRkRpbnZhbGlkRkQudGVzdF9z
dGRjYXB0dXJlX2ZkX2ludmFsaWRfZmQudGVzdF9zdGRpbik6CisgICAgICAgICogdGVzdGluZy9p
b18vdGVzdF9zYWZlcmVwci5weTogQWRkZWQuCisgICAgICAgIChUZXN0U2FmZVJlcHIpOgorICAg
ICAgICAoVGVzdFNhZmVSZXByLnRlc3Rfc2ltcGxlX3JlcHIpOgorICAgICAgICAoVGVzdFNhZmVS
ZXByLnRlc3RfbWF4c2l6ZSk6CisgICAgICAgIChUZXN0U2FmZVJlcHIudGVzdF9tYXhzaXplX2Vy
cm9yX29uX2luc3RhbmNlKToKKyAgICAgICAgKFRlc3RTYWZlUmVwci50ZXN0X21heHNpemVfZXJy
b3Jfb25faW5zdGFuY2UuQSk6CisgICAgICAgIChUZXN0U2FmZVJlcHIudGVzdF9tYXhzaXplX2Vy
cm9yX29uX2luc3RhbmNlLkEuX19yZXByX18pOgorICAgICAgICAoVGVzdFNhZmVSZXByLnRlc3Rf
ZXhjZXB0aW9ucyk6CisgICAgICAgIChUZXN0U2FmZVJlcHIudGVzdF9leGNlcHRpb25zLkJyb2tl
blJlcHIpOgorICAgICAgICAoVGVzdFNhZmVSZXByLnRlc3RfZXhjZXB0aW9ucy5Ccm9rZW5SZXBy
Ll9faW5pdF9fKToKKyAgICAgICAgKFRlc3RTYWZlUmVwci50ZXN0X2V4Y2VwdGlvbnMuQnJva2Vu
UmVwci5fX3JlcHJfXyk6CisgICAgICAgIChUZXN0U2FmZVJlcHIudGVzdF9leGNlcHRpb25zLkJy
b2tlblJlcHJFeGNlcHRpb24pOgorICAgICAgICAoVGVzdFNhZmVSZXByLnRlc3RfYmlnX3JlcHIp
OgorICAgICAgICAoVGVzdFNhZmVSZXByLnRlc3RfcmVwcl9vbl9uZXdzdHlsZSk6CisgICAgICAg
IChUZXN0U2FmZVJlcHIudGVzdF9yZXByX29uX25ld3N0eWxlLkZ1bmN0aW9uKToKKyAgICAgICAg
KFRlc3RTYWZlUmVwci50ZXN0X3JlcHJfb25fbmV3c3R5bGUuRnVuY3Rpb24uX19yZXByX18pOgor
ICAgICAgICAoVGVzdFNhZmVSZXByLnRlc3RfdW5pY29kZSk6CisgICAgICAgICh0ZXN0X3VuaWNv
ZGVfaGFuZGxpbmcpOgorICAgICAgICAodGVzdF91bmljb2RlX2hhbmRsaW5nLmYpOgorICAgICAg
ICAqIHRlc3RpbmcvaW9fL3Rlc3RfdGVybWluYWx3cml0ZXIucHk6IEFkZGVkLgorICAgICAgICAo
dGVzdF9nZXRfdGVybWluYWxfd2lkdGgpOgorICAgICAgICAodGVzdF9nZXRkaW1lbnNpb25zKToK
KyAgICAgICAgKHRlc3RfdGVybWluYWxfd2lkdGhfQ09MVU1OUyk6CisgICAgICAgICh0ZXN0X3Rl
cm1pbmFsd3JpdGVyX2RlZmF1bHR3aWR0aF84MCk6CisgICAgICAgICh0ZXN0X3Rlcm1pbmFsd3Jp
dGVyX2dldGRpbWVuc2lvbnNfYm9ndXMpOgorICAgICAgICAodGVzdF90ZXJtaW5hbHdyaXRlcl9n
ZXRkaW1lbnNpb25zX2VtYWNzKToKKyAgICAgICAgKHRlc3RfdGVybWluYWx3cml0ZXJfY29tcHV0
ZXNfd2lkdGgpOgorICAgICAgICAodGVzdF90ZXJtaW5hbHdyaXRlcl9kZWZhdWx0X2luc3RhbnRp
YXRpb24pOgorICAgICAgICAodGVzdF90ZXJtaW5hbHdyaXRlcl9kdW1iX3Rlcm1fbm9fbWFya3Vw
KToKKyAgICAgICAgKHRlc3RfdGVybWluYWx3cml0ZXJfZHVtYl90ZXJtX25vX21hcmt1cC5NeUZp
bGUpOgorICAgICAgICAodGVzdF90ZXJtaW5hbHdyaXRlcl9kdW1iX3Rlcm1fbm9fbWFya3VwLk15
RmlsZS5pc2F0dHkpOgorICAgICAgICAodGVzdF90ZXJtaW5hbHdyaXRlcl9maWxlX3VuaWNvZGUp
OgorICAgICAgICAodGVzdF91bmljb2RlX2VuY29kaW5nKToKKyAgICAgICAgKHRlc3RfdW5pY29k
ZV9vbl9maWxlX3dpdGhfYXNjaWlfZW5jb2RpbmcpOgorICAgICAgICAoVGVzdFRlcm1pbmFsV3Jp
dGVyKToKKyAgICAgICAgKFRlc3RUZXJtaW5hbFdyaXRlci5weXRlc3RfZ2VuZXJhdGVfdGVzdHMp
OgorICAgICAgICAoVGVzdFRlcm1pbmFsV3JpdGVyLnB5dGVzdF9mdW5jYXJnX190dyk6CisgICAg
ICAgIChUZXN0VGVybWluYWxXcml0ZXIucHl0ZXN0X2Z1bmNhcmdfX3R3LmdldGxpbmVzKToKKyAg
ICAgICAgKFRlc3RUZXJtaW5hbFdyaXRlci50ZXN0X2xpbmUpOgorICAgICAgICAoVGVzdFRlcm1p
bmFsV3JpdGVyLnRlc3RfbGluZV91bmljb2RlKToKKyAgICAgICAgKFRlc3RUZXJtaW5hbFdyaXRl
ci50ZXN0X3NlcF9ub190aXRsZSk6CisgICAgICAgIChUZXN0VGVybWluYWxXcml0ZXIudGVzdF9z
ZXBfd2l0aF90aXRsZSk6CisgICAgICAgIChUZXN0VGVybWluYWxXcml0ZXIudGVzdF9fZXNjYXBl
ZCk6CisgICAgICAgIChUZXN0VGVybWluYWxXcml0ZXIudGVzdF9tYXJrdXApOgorICAgICAgICAo
VGVzdFRlcm1pbmFsV3JpdGVyLnRlc3RfbGluZV93cml0ZV9tYXJrdXApOgorICAgICAgICAoVGVz
dFRlcm1pbmFsV3JpdGVyLnRlc3RfYXR0cl9mdWxsd2lkdGgpOgorICAgICAgICAoVGVzdFRlcm1p
bmFsV3JpdGVyLnRlc3RfcmVsaW5lKToKKyAgICAgICAgKHRlc3RfdGVybWluYWxfd2l0aF9jYWxs
YWJsZV93cml0ZV9hbmRfZmx1c2gpOgorICAgICAgICAodGVzdF90ZXJtaW5hbF93aXRoX2NhbGxh
YmxlX3dyaXRlX2FuZF9mbHVzaC5maWwpOgorICAgICAgICAodGVzdF9jaGFyc19vbl9jdXJyZW50
X2xpbmUpOgorICAgICAgICAodGVzdF9jaGFyc19vbl9jdXJyZW50X2xpbmUud3JpdGVfYW5kX2No
ZWNrKToKKyAgICAgICAgKHRlc3RfYXR0cl9oYXNtYXJrdXApOgorICAgICAgICAodGVzdF9hbnNp
X3ByaW50KToKKyAgICAgICAgKHRlc3Rfc2hvdWxkX2RvX21hcmt1cF9QWV9DT0xPUlNfZXFfMSk6
CisgICAgICAgICh0ZXN0X3Nob3VsZF9kb19tYXJrdXBfUFlfQ09MT1JTX2VxXzApOgorICAgICAg
ICAqIHRlc3RpbmcvaW9fL3czYy1pbXBvcnQubG9nOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL3czYy1pbXBvcnQubG9n
LgorICAgICAgICAqIHRlc3RpbmcvbG9nL19faW5pdF9fLnB5OiBBZGRlZC4KKyAgICAgICAgKiB0
ZXN0aW5nL2xvZy90ZXN0X2xvZy5weTogQWRkZWQuCisgICAgICAgIChzZXR1cF9tb2R1bGUpOgor
ICAgICAgICAodGVhcmRvd25fbW9kdWxlKToKKyAgICAgICAgKFRlc3RMb2dQcm9kdWNlcik6Cisg
ICAgICAgIChUZXN0TG9nUHJvZHVjZXIuc2V0dXBfbWV0aG9kKToKKyAgICAgICAgKFRlc3RMb2dQ
cm9kdWNlci50ZXN0X2dldHN0YXRlX3NldHN0YXRlKToKKyAgICAgICAgKFRlc3RMb2dQcm9kdWNl
ci50ZXN0X3Byb2R1Y2VyX3JlcHIpOgorICAgICAgICAoVGVzdExvZ1Byb2R1Y2VyLnRlc3RfcHJv
ZHVjZV9vbmVfa2V5d29yZCk6CisgICAgICAgIChUZXN0TG9nUHJvZHVjZXIudGVzdF9wcm9kdWNl
cl9jbGFzcyk6CisgICAgICAgIChUZXN0TG9nUHJvZHVjZXIudGVzdF9wcm9kdWNlcl9jYWNoaW5n
KToKKyAgICAgICAgKFRlc3RMb2dDb25zdW1lcik6CisgICAgICAgIChUZXN0TG9nQ29uc3VtZXIu
c2V0dXBfbWV0aG9kKToKKyAgICAgICAgKFRlc3RMb2dDb25zdW1lci50ZXN0X2xvZ19ub25lKToK
KyAgICAgICAgKFRlc3RMb2dDb25zdW1lci50ZXN0X2xvZ19kZWZhdWx0X3N0ZGVycik6CisgICAg
ICAgIChUZXN0TG9nQ29uc3VtZXIudGVzdF9zaW1wbGVfY29uc3VtZXJfbWF0Y2gpOgorICAgICAg
ICAoVGVzdExvZ0NvbnN1bWVyLnRlc3Rfc2ltcGxlX2NvbnN1bWVyX21hdGNoXzIpOgorICAgICAg
ICAoVGVzdExvZ0NvbnN1bWVyLnRlc3Rfbm9fYXV0b19wcm9kdWNlcik6CisgICAgICAgIChUZXN0
TG9nQ29uc3VtZXIudGVzdF9zZXRjb25zdW1lcl93aXRoX3Byb2R1Y2VyKToKKyAgICAgICAgKFRl
c3RMb2dDb25zdW1lci50ZXN0X211bHRpX2NvbnN1bWVyKToKKyAgICAgICAgKFRlc3RMb2dDb25z
dW1lci50ZXN0X2xvZ19zdGRlcnIpOgorICAgICAgICAoVGVzdExvZ0NvbnN1bWVyLnRlc3RfbG9n
X2ZpbGUpOgorICAgICAgICAoVGVzdExvZ0NvbnN1bWVyLnRlc3RfbG9nX2ZpbGVfYXBwZW5kX21v
ZGUpOgorICAgICAgICAoVGVzdExvZ0NvbnN1bWVyLnRlc3RfbG9nX2ZpbGVfZGVsYXllZF9jcmVh
dGUpOgorICAgICAgICAoVGVzdExvZ0NvbnN1bWVyLnRlc3Rfa2V5d29yZF9iYXNlZF9sb2dfZmls
ZXMpOgorICAgICAgICAoVGVzdExvZ0NvbnN1bWVyLm5vX3Rlc3RfbG9nX3N5c2xvZyk6CisgICAg
ICAgIChUZXN0TG9nQ29uc3VtZXIubm9fdGVzdF9sb2dfd2luZXZlbnQpOgorICAgICAgICAoVGVz
dExvZ0NvbnN1bWVyLm5vX3Rlc3RfbG9nX2VtYWlsKToKKyAgICAgICAgKiB0ZXN0aW5nL2xvZy90
ZXN0X3dhcm5pbmcucHk6IEFkZGVkLgorICAgICAgICAodGVzdF9mb3J3YXJkaW5nX3RvX3dhcm5p
bmdzX21vZHVsZSk6CisgICAgICAgICh0ZXN0X2FwaXdhcm5fZnVuY3Rpb25hbCk6CisgICAgICAg
ICh0ZXN0X3N0YWNrbGV2ZWwpOgorICAgICAgICAodGVzdF9zdGFja2xldmVsLmYpOgorICAgICAg
ICAodGVzdF9zdGFja2xldmVsX2luaXRwa2dfd2l0aF9yZXNvbHZlKToKKyAgICAgICAgKHRlc3Rf
c3RhY2tsZXZlbF9pbml0cGtnX3dpdGhfcmVzb2x2ZS5mKToKKyAgICAgICAgKHRlc3Rfc3RhY2ts
ZXZlbF9pbml0cGtnX3dpdGhfcmVzb2x2ZS5fX2dldGF0dHJfXyk6CisgICAgICAgICogdGVzdGlu
Zy9sb2cvdzNjLWltcG9ydC5sb2c6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvdzNjLWltcG9ydC5sb2cuCisgICAgICAg
ICogdGVzdGluZy9wYXRoL2NvbW1vbi5weTogQWRkZWQuCisgICAgICAgIChDb21tb25GU1Rlc3Rz
KToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF9jb25zdHJ1Y3Rvcl9lcXVhbGl0eSk6Cisg
ICAgICAgIChDb21tb25GU1Rlc3RzLnRlc3RfZXFfbm9uc3RyaW5nKToKKyAgICAgICAgKENvbW1v
bkZTVGVzdHMudGVzdF9uZXdfaWRlbnRpY2FsKToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVz
dF9qb2luKToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF9qb2luX25vcm1hbGl6ZWQpOgor
ICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X2pvaW5fbm9hcmdzKToKKyAgICAgICAgKENvbW1v
bkZTVGVzdHMudGVzdF9hZGRfc29tZXRoaW5nKToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVz
dF9wYXJ0cyk6CisgICAgICAgIChDb21tb25GU1Rlc3RzLnRlc3RfY29tbW9uKToKKyAgICAgICAg
KENvbW1vbkZTVGVzdHMudGVzdF9iYXNlbmFtZV9jaGVja3MpOgorICAgICAgICAoQ29tbW9uRlNU
ZXN0cy50ZXN0X2Jhc2VuYW1lKToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF9kaXJuYW1l
KToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF9kaXJwYXRoKToKKyAgICAgICAgKENvbW1v
bkZTVGVzdHMudGVzdF9kaXJwYXRoX3dpdGhfYXJncyk6CisgICAgICAgIChDb21tb25GU1Rlc3Rz
LnRlc3RfbmV3YmFzZW5hbWUpOgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X25vdF9leGlz
dHMpOgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X2V4aXN0cyk6CisgICAgICAgIChDb21t
b25GU1Rlc3RzLnRlc3RfZGlyKToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF9mbm1hdGNo
X2ZpbGUpOgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X3JlbHRvKToKKyAgICAgICAgKENv
bW1vbkZTVGVzdHMudGVzdF9iZXN0cmVscGF0aCk6CisgICAgICAgIChDb21tb25GU1Rlc3RzLnRl
c3RfcmVsdG9fbm90X3JlbGF0aXZlKToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF9saXN0
ZGlyKToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF9saXN0ZGlyX2ZubWF0Y2hzdHJpbmcp
OgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X2xpc3RkaXJfZmlsdGVyKToKKyAgICAgICAg
KENvbW1vbkZTVGVzdHMudGVzdF9saXN0ZGlyX3NvcnRlZCk6CisgICAgICAgIChDb21tb25GU1Rl
c3RzLnRlc3RfdmlzaXRfbm9maWx0ZXIpOgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X3Zp
c2l0X25vcmVjdXJzZSk6CisgICAgICAgIChDb21tb25GU1Rlc3RzLnRlc3RfdmlzaXRfZmlsdGVy
ZnVuY19pc19zdHJpbmcpOgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X3Zpc2l0X2lnbm9y
ZSk6CisgICAgICAgIChDb21tb25GU1Rlc3RzLnRlc3RfdmlzaXRfZW5kc3dpdGgpOgorICAgICAg
ICAoQ29tbW9uRlNUZXN0cy50ZXN0X2VuZHN3aXRoKToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMu
dGVzdF9jbXApOgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X3NpbXBsZV9yZWFkKToKKyAg
ICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF9qb2luX2Rpdl9vcGVyYXRvcik6CisgICAgICAgIChD
b21tb25GU1Rlc3RzLnRlc3RfZXh0KToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF9wdXJl
YmFzZW5hbWUpOgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X211bHRpcGxlX3BhcnRzKToK
KyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF9kb3R0ZWRfbmFtZV9leHQpOgorICAgICAgICAo
Q29tbW9uRlNUZXN0cy50ZXN0X25ld2V4dCk6CisgICAgICAgIChDb21tb25GU1Rlc3RzLnRlc3Rf
cmVhZGxpbmVzKToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF9yZWFkbGluZXNfbm9jcik6
CisgICAgICAgIChDb21tb25GU1Rlc3RzLnRlc3RfZmlsZSk6CisgICAgICAgIChDb21tb25GU1Rl
c3RzLnRlc3Rfbm90X2ZpbGUpOgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X25vbl9leGlz
dGVudCk6CisgICAgICAgIChDb21tb25GU1Rlc3RzLnRlc3Rfc2l6ZSk6CisgICAgICAgIChDb21t
b25GU1Rlc3RzLnRlc3RfbXRpbWUpOgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X3JlbHRv
X3dyb25nX3R5cGUpOgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X2xvYWQpOgorICAgICAg
ICAoQ29tbW9uRlNUZXN0cy50ZXN0X3Zpc2l0X2ZpbGVzb25seSk6CisgICAgICAgIChDb21tb25G
U1Rlc3RzLnRlc3RfdmlzaXRfbm9kb3RmaWxlcyk6CisgICAgICAgIChDb21tb25GU1Rlc3RzLnRl
c3RfdmlzaXRfYnJlYWR0aGZpcnN0KToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF92aXNp
dF9zb3J0KToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF9lbmRzd2l0aC5jaGspOgorICAg
ICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X2NvcHlfZmlsZSk6CisgICAgICAgIChDb21tb25GU1Rl
c3RzLnRlc3RfY29weV9kaXIpOgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X3JlbW92ZV9m
aWxlKToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF9yZW1vdmVfZGlyX3JlY3Vyc2l2ZV9i
eV9kZWZhdWx0KToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF9lbnN1cmVfZGlyKToKKyAg
ICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF9ta2Rpcl9hbmRfcmVtb3ZlKToKKyAgICAgICAgKENv
bW1vbkZTVGVzdHMudGVzdF9tb3ZlX2ZpbGUpOgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0
X21vdmVfZGlyKToKKyAgICAgICAgKENvbW1vbkZTVGVzdHMudGVzdF9mc3BhdGhfcHJvdG9jb2xf
bWF0Y2hfc3RycGF0aCk6CisgICAgICAgIChDb21tb25GU1Rlc3RzLnRlc3RfZnNwYXRoX2Z1bmNf
bWF0Y2hfc3RycGF0aCk6CisgICAgICAgIChDb21tb25GU1Rlc3RzLnRlc3RfZnNwYXRoX29wZW4p
OgorICAgICAgICAoQ29tbW9uRlNUZXN0cy50ZXN0X2ZzcGF0aF9mc2VuY29kZSk6CisgICAgICAg
IChzZXR1cHRlc3Rmcyk6CisgICAgICAgICogdGVzdGluZy9wYXRoL2NvbmZ0ZXN0LnB5OiBBZGRl
ZC4KKyAgICAgICAgKHB5dGVzdF9mdW5jYXJnX19yZXBvd2MxKToKKyAgICAgICAgKHB5dGVzdF9m
dW5jYXJnX19yZXBvd2MyKToKKyAgICAgICAgKGdldHN2bmJpbik6CisgICAgICAgIChnZXRyZXBv
d2MpOgorICAgICAgICAoc2F2ZV9yZXBvd2MpOgorICAgICAgICAocmVzdG9yZV9yZXBvd2MpOgor
ICAgICAgICAqIHRlc3RpbmcvcGF0aC9yZXBvdGVzdC5kdW1wOiBBZGRlZC4KKyAgICAgICAgKiB0
ZXN0aW5nL3BhdGgvc3ZudGVzdGJhc2UucHk6IEFkZGVkLgorICAgICAgICAoQ29tbW9uU3ZuVGVz
dHMpOgorICAgICAgICAoQ29tbW9uU3ZuVGVzdHMudGVzdF9wcm9wZ2V0KToKKyAgICAgICAgKENv
bW1vblN2blRlc3RzLnRlc3RfcHJvcGxpc3QpOgorICAgICAgICAoQ29tbW9uU3ZuVGVzdHMudGVz
dF9pbmZvKToKKyAgICAgICAgKENvbW1vblN2blRlc3RzLnRlc3RfbG9nX3NpbXBsZSk6CisgICAg
ICAgICogdGVzdGluZy9wYXRoL3Rlc3RfY2FjaGV1dGlsLnB5OiBBZGRlZC4KKyAgICAgICAgKEJh
c2ljQ2FjaGVBUElUZXN0KToKKyAgICAgICAgKEJhc2ljQ2FjaGVBUElUZXN0LnRlc3RfZ2V0b3Ji
dWlsZCk6CisgICAgICAgIChCYXNpY0NhY2hlQVBJVGVzdC50ZXN0X2NhY2hlX2dldF9rZXlfZXJy
b3IpOgorICAgICAgICAoQmFzaWNDYWNoZUFQSVRlc3QudGVzdF9kZWxlbnRyeV9ub25fcmFpc2lu
Zyk6CisgICAgICAgIChCYXNpY0NhY2hlQVBJVGVzdC50ZXN0X2RlbGVudHJ5X3JhaXNpbmcpOgor
ICAgICAgICAoQmFzaWNDYWNoZUFQSVRlc3QudGVzdF9jbGVhcik6CisgICAgICAgIChUZXN0QnVp
bGRjb3N0QWNjZXNzKToKKyAgICAgICAgKFRlc3RCdWlsZGNvc3RBY2Nlc3MudGVzdF9jYWNoZV93
b3Jrc19zb21ld2hhdF9zaW1wbGUpOgorICAgICAgICAoVGVzdEJ1aWxkY29zdEFjY2Vzcy50ZXN0
X2NhY2hlX3dvcmtzX3NvbWV3aGF0X3NpbXBsZS5jb3VudGVyKToKKyAgICAgICAgKFRlc3RBZ2lu
Zyk6CisgICAgICAgIChUZXN0QWdpbmcudGVzdF9jYWNoZV9ldmljdGlvbik6CisgICAgICAgICh0
ZXN0X3BydW5lX2xvd2VzdHdlaWdodCk6CisgICAgICAgICogdGVzdGluZy9wYXRoL3Rlc3RfbG9j
YWwucHk6IEFkZGVkLgorICAgICAgICAocGF0aDEpOgorICAgICAgICAoZmFrZV9mc3BhdGhfb2Jq
KToKKyAgICAgICAgKGZha2VfZnNwYXRoX29iai5GYWtlRlNQYXRoQ2xhc3MpOgorICAgICAgICAo
ZmFrZV9mc3BhdGhfb2JqLkZha2VGU1BhdGhDbGFzcy5fX2luaXRfXyk6CisgICAgICAgIChmYWtl
X2ZzcGF0aF9vYmouRmFrZUZTUGF0aENsYXNzLl9fZnNwYXRoX18pOgorICAgICAgICAoYmF0Y2hf
bWFrZV9udW1iZXJlZF9kaXJzKToKKyAgICAgICAgKFRlc3RMb2NhbFBhdGgpOgorICAgICAgICAo
VGVzdExvY2FsUGF0aC50ZXN0X2pvaW5fbm9ybXBhdGgpOgorICAgICAgICAoVGVzdExvY2FsUGF0
aC50ZXN0X2RpcnBhdGhfYWJzX25vX2Ficyk6CisgICAgICAgIChUZXN0TG9jYWxQYXRoLnRlc3Rf
Z2V0aGFzaCk6CisgICAgICAgIChUZXN0TG9jYWxQYXRoLnRlc3RfcmVtb3ZlX3JlbW92ZXNfcmVh
ZG9ubHlfZmlsZSk6CisgICAgICAgIChUZXN0TG9jYWxQYXRoLnRlc3RfcmVtb3ZlX3JlbW92ZXNf
cmVhZG9ubHlfZGlyKToKKyAgICAgICAgKFRlc3RMb2NhbFBhdGgudGVzdF9yZW1vdmVfcmVtb3Zl
c19kaXJfYW5kX3JlYWRvbmx5X2ZpbGUpOgorICAgICAgICAoVGVzdExvY2FsUGF0aC50ZXN0X3Jl
bW92ZV9yb3V0ZXNfaWdub3JlX2Vycm9ycyk6CisgICAgICAgIChUZXN0TG9jYWxQYXRoLnRlc3Rf
aW5pdGlhbGl6ZV9jdXJkaXIpOgorICAgICAgICAoVGVzdExvY2FsUGF0aC50ZXN0X2NoZGlyX2dv
bmUpOgorICAgICAgICAoVGVzdExvY2FsUGF0aC50ZXN0X2FzX2N3ZCk6CisgICAgICAgIChUZXN0
TG9jYWxQYXRoLnRlc3RfYXNfY3dkX2V4Y2VwdGlvbik6CisgICAgICAgIChUZXN0TG9jYWxQYXRo
LnRlc3RfaW5pdGlhbGl6ZV9yZWxkaXIpOgorICAgICAgICAoVGVzdExvY2FsUGF0aC50ZXN0X3Rp
bGRlX2V4cGFuc2lvbik6CisgICAgICAgIChUZXN0TG9jYWxQYXRoLnRlc3RfZXFfd2l0aF9zdHJp
bmdzKToKKyAgICAgICAgKFRlc3RMb2NhbFBhdGgudGVzdF9lcV93aXRoX25vbmUpOgorICAgICAg
ICAoVGVzdExvY2FsUGF0aC50ZXN0X2VxX25vbl9hc2NpaV91bmljb2RlKToKKyAgICAgICAgKFRl
c3RMb2NhbFBhdGgudGVzdF9ndF93aXRoX3N0cmluZ3MpOgorICAgICAgICAoVGVzdExvY2FsUGF0
aC50ZXN0X29wZW5fYW5kX2Vuc3VyZSk6CisgICAgICAgIChUZXN0TG9jYWxQYXRoLnRlc3Rfd3Jp
dGVfYW5kX2Vuc3VyZSk6CisgICAgICAgIChUZXN0TG9jYWxQYXRoLnRlc3RfZHVtcCk6CisgICAg
ICAgIChUZXN0TG9jYWxQYXRoLnRlc3Rfc2V0bXRpbWUpOgorICAgICAgICAoVGVzdExvY2FsUGF0
aC50ZXN0X25vcm1wYXRoKToKKyAgICAgICAgKFRlc3RMb2NhbFBhdGgudGVzdF9ta2R0ZW1wX2Ny
ZWF0aW9uKToKKyAgICAgICAgKFRlc3RMb2NhbFBhdGgudGVzdF90bXByb290KToKKyAgICAgICAg
KFRlc3RMb2NhbFBhdGgudGVzdF9jaGRpcik6CisgICAgICAgIChUZXN0TG9jYWxQYXRoLnRlc3Rf
ZW5zdXJlX2ZpbGVwYXRoX3dpdGhkaXIpOgorICAgICAgICAoVGVzdExvY2FsUGF0aC50ZXN0X2Vu
c3VyZV9maWxlcGF0aF93aXRob3V0ZGlyKToKKyAgICAgICAgKFRlc3RMb2NhbFBhdGgudGVzdF9l
bnN1cmVfZGlycGF0aCk6CisgICAgICAgIChUZXN0TG9jYWxQYXRoLnRlc3RfZW5zdXJlX25vbl9h
c2NpaV91bmljb2RlKToKKyAgICAgICAgKFRlc3RMb2NhbFBhdGgudGVzdF9pbml0X2Zyb21fcGF0
aCk6CisgICAgICAgIChUZXN0TG9jYWxQYXRoLnRlc3RfbG9uZ19maWxlbmFtZXMpOgorICAgICAg
ICAoVGVzdExvY2FsUGF0aC50ZXN0X3Zpc2l0X2RlcHRoX2ZpcnN0KToKKyAgICAgICAgKFRlc3RM
b2NhbFBhdGgudGVzdF92aXNpdF9yZWNfZm5tYXRjaCk6CisgICAgICAgIChUZXN0TG9jYWxQYXRo
LnRlc3RfZm5tYXRjaF9maWxlX2Fic3BhdGgpOgorICAgICAgICAoVGVzdExvY2FsUGF0aC50ZXN0
X3N5c2ZpbmQpOgorICAgICAgICAoVGVzdExvY2FsUGF0aC50ZXN0X2ZzcGF0aF9wcm90b2NvbF9v
dGhlcl9jbGFzcyk6CisgICAgICAgIChUZXN0TG9jYWxQYXRoLnRlc3RfbWFrZV9udW1iZXJlZF9k
aXJfbXVsdGlwcm9jZXNzX3NhZmUpOgorICAgICAgICAoVGVzdEV4ZWN1dGlvbk9uV2luZG93cyk6
CisgICAgICAgIChUZXN0RXhlY3V0aW9uT25XaW5kb3dzLnRlc3Rfc3lzZmluZF9iYXRfZXhlX2Jl
Zm9yZSk6CisgICAgICAgIChUZXN0RXhlY3V0aW9uKToKKyAgICAgICAgKFRlc3RFeGVjdXRpb24u
dGVzdF9zeXNmaW5kX25vX3Blcm1pc3Nvbl9pZ25vcmVkKToKKyAgICAgICAgKFRlc3RFeGVjdXRp
b24udGVzdF9zeXNmaW5kX2Fic29sdXRlKToKKyAgICAgICAgKFRlc3RFeGVjdXRpb24udGVzdF9z
eXNmaW5kX211bHRpcGxlKToKKyAgICAgICAgKFRlc3RFeGVjdXRpb24udGVzdF9zeXNleGVjKToK
KyAgICAgICAgKFRlc3RFeGVjdXRpb24udGVzdF9zeXNleGVjX2ZhaWxpbmcpOgorICAgICAgICAo
VGVzdEV4ZWN1dGlvbi50ZXN0X21ha2VfbnVtYmVyZWRfZGlyKToKKyAgICAgICAgKFRlc3RFeGVj
dXRpb24udGVzdF9tYWtlX251bWJlcmVkX2Rpcl9jYXNlX2luc2Vuc2l0aXZlKToKKyAgICAgICAg
KFRlc3RFeGVjdXRpb24udGVzdF9tYWtlX251bWJlcmVkX2Rpcl9jYXNlX3NlbnNpdGl2ZSk6Cisg
ICAgICAgIChUZXN0RXhlY3V0aW9uLnRlc3RfbWFrZV9udW1iZXJlZF9kaXJfTm90SW1wbGVtZW50
ZWRfRXJyb3IpOgorICAgICAgICAoVGVzdEV4ZWN1dGlvbi50ZXN0X21ha2VfbnVtYmVyZWRfZGly
X05vdEltcGxlbWVudGVkX0Vycm9yLm5vdGltcGwpOgorICAgICAgICAoVGVzdEV4ZWN1dGlvbi50
ZXN0X2xvY2tlZF9tYWtlX251bWJlcmVkX2Rpcik6CisgICAgICAgIChUZXN0RXhlY3V0aW9uLnRl
c3RfZXJyb3JfcHJlc2VydmF0aW9uKToKKyAgICAgICAgKFRlc3RJbXBvcnQpOgorICAgICAgICAo
VGVzdEltcG9ydC50ZXN0X3B5aW1wb3J0KToKKyAgICAgICAgKFRlc3RJbXBvcnQudGVzdF9weWlt
cG9ydF9yZW5hbWVkX2Rpcl9jcmVhdGVzX21pc21hdGNoKToKKyAgICAgICAgKFRlc3RJbXBvcnQu
dGVzdF9weWltcG9ydF9tZXNzeV9uYW1lKToKKyAgICAgICAgKFRlc3RJbXBvcnQudGVzdF9weWlt
cG9ydF9kaXIpOgorICAgICAgICAoVGVzdEltcG9ydC50ZXN0X3B5aW1wb3J0X2V4ZWNmaWxlX2Rp
ZmZlcmVudF9uYW1lKToKKyAgICAgICAgKFRlc3RJbXBvcnQudGVzdF9weWltcG9ydF9hKToKKyAg
ICAgICAgKFRlc3RJbXBvcnQudGVzdF9weWltcG9ydF9iKToKKyAgICAgICAgKFRlc3RJbXBvcnQu
dGVzdF9weWltcG9ydF9jKToKKyAgICAgICAgKFRlc3RJbXBvcnQudGVzdF9weWltcG9ydF9kKToK
KyAgICAgICAgKFRlc3RJbXBvcnQudGVzdF9weWltcG9ydF9hbmRfaW1wb3J0KToKKyAgICAgICAg
KFRlc3RJbXBvcnQudGVzdF9weWltcG9ydF9jaGVja19maWxlcGF0aF9jb25zaXN0ZW5jeSk6Cisg
ICAgICAgIChUZXN0SW1wb3J0LnRlc3RfaXNzdWUxMzFfcHlpbXBvcnRfb25fX2luaXRfXyk6Cisg
ICAgICAgIChUZXN0SW1wb3J0LnRlc3RfZW5zdXJlc3lzcGF0aF9hcHBlbmQpOgorICAgICAgICAo
dGVzdF9weXBrZ2Rpcik6CisgICAgICAgICh0ZXN0X3B5cGtnZGlyX3VuaW1wb3J0YWJsZSk6Cisg
ICAgICAgICh0ZXN0X2lzaW1wb3J0YWJsZSk6CisgICAgICAgICh0ZXN0X2hvbWVkaXJfZnJvbV9I
T01FKToKKyAgICAgICAgKHRlc3RfaG9tZWRpcl9ub3RfZXhpc3RzKToKKyAgICAgICAgKHRlc3Rf
c2FtZWZpbGUpOgorICAgICAgICAodGVzdF9saXN0ZGlyX3NpbmdsZV9hcmcpOgorICAgICAgICAo
dGVzdF9ta2R0ZW1wX3Jvb3RkaXIpOgorICAgICAgICAoVGVzdFdJTkxvY2FsUGF0aCk6CisgICAg
ICAgIChUZXN0V0lOTG9jYWxQYXRoLnRlc3Rfb3duZXJfZ3JvdXBfbm90X2ltcGxlbWVudGVkKToK
KyAgICAgICAgKFRlc3RXSU5Mb2NhbFBhdGgudGVzdF9jaG1vZF9zaW1wbGVfaW50KToKKyAgICAg
ICAgKFRlc3RXSU5Mb2NhbFBhdGgudGVzdF9wYXRoX2NvbXBhcmlzb25fbG93ZXJjYXNlX21peGVk
KToKKyAgICAgICAgKFRlc3RXSU5Mb2NhbFBhdGgudGVzdF9yZWx0b193aXRoX21peGVkX2Nhc2Up
OgorICAgICAgICAoVGVzdFdJTkxvY2FsUGF0aC50ZXN0X2FsbG93X3VuaXhfc3R5bGVfcGF0aHMp
OgorICAgICAgICAoVGVzdFdJTkxvY2FsUGF0aC50ZXN0X3N5c2ZpbmRfaW5fY3VycmVudGRpcik6
CisgICAgICAgIChUZXN0V0lOTG9jYWxQYXRoLnRlc3RfZm5tYXRjaF9maWxlX2Fic3BhdGhfcG9z
aXhfcGF0dGVybl9vbl93aW4zMik6CisgICAgICAgIChUZXN0UE9TSVhMb2NhbFBhdGgpOgorICAg
ICAgICAoVGVzdFBPU0lYTG9jYWxQYXRoLnRlc3RfaGFyZGxpbmspOgorICAgICAgICAoVGVzdFBP
U0lYTG9jYWxQYXRoLnRlc3Rfc3ltbGlua19hcmVfaWRlbnRpY2FsKToKKyAgICAgICAgKFRlc3RQ
T1NJWExvY2FsUGF0aC50ZXN0X3N5bWxpbmtfaXNmaWxlKToKKyAgICAgICAgKFRlc3RQT1NJWExv
Y2FsUGF0aC50ZXN0X3N5bWxpbmtfcmVsYXRpdmUpOgorICAgICAgICAoVGVzdFBPU0lYTG9jYWxQ
YXRoLnRlc3Rfc3ltbGlua19ub3RfZXhpc3RpbmcpOgorICAgICAgICAoVGVzdFBPU0lYTG9jYWxQ
YXRoLnRlc3RfcmVsdG9fd2l0aF9yb290KToKKyAgICAgICAgKFRlc3RQT1NJWExvY2FsUGF0aC50
ZXN0X3Zpc2l0X3JlY3Vyc2l2ZV9zeW1saW5rKToKKyAgICAgICAgKFRlc3RQT1NJWExvY2FsUGF0
aC50ZXN0X3N5bWxpbmtfaXNkaXIpOgorICAgICAgICAoVGVzdFBPU0lYTG9jYWxQYXRoLnRlc3Rf
c3ltbGlua19yZW1vdmUpOgorICAgICAgICAoVGVzdFBPU0lYTG9jYWxQYXRoLnRlc3RfcmVhbHBh
dGhfZmlsZSk6CisgICAgICAgIChUZXN0UE9TSVhMb2NhbFBhdGgudGVzdF9vd25lcik6CisgICAg
ICAgIChUZXN0UE9TSVhMb2NhbFBhdGgudGVzdF9zdGF0X2hlbHBlcnMpOgorICAgICAgICAoVGVz
dFBPU0lYTG9jYWxQYXRoLnRlc3Rfc3RhdF9ub25fcmFpc2luZyk6CisgICAgICAgIChUZXN0UE9T
SVhMb2NhbFBhdGgudGVzdF9hdGltZSk6CisgICAgICAgIChUZXN0UE9TSVhMb2NhbFBhdGgudGVz
dF9jb21tb25kaXIpOgorICAgICAgICAoVGVzdFBPU0lYTG9jYWxQYXRoLnRlc3RfY29tbW9uZGly
X25vY29tbW9uKToKKyAgICAgICAgKFRlc3RQT1NJWExvY2FsUGF0aC50ZXN0X2pvaW5fdG9fcm9v
dCk6CisgICAgICAgIChUZXN0UE9TSVhMb2NhbFBhdGgudGVzdF9qb2luX3Jvb3RfdG9fcm9vdF93
aXRoX25vX2Ficyk6CisgICAgICAgIChUZXN0UE9TSVhMb2NhbFBhdGgudGVzdF9jaG1vZF9zaW1w
bGVfaW50KToKKyAgICAgICAgKFRlc3RQT1NJWExvY2FsUGF0aC50ZXN0X2NobW9kX3JlY19pbnQp
OgorICAgICAgICAoVGVzdFBPU0lYTG9jYWxQYXRoLnRlc3RfY2htb2RfcmVjX2ludC5yZWNmaWx0
ZXIpOgorICAgICAgICAoVGVzdFBPU0lYTG9jYWxQYXRoLnRlc3RfY29weV9hcmNoaXZpbmcpOgor
ICAgICAgICAoVGVzdFBPU0lYTG9jYWxQYXRoLnRlc3RfY29weV9zdGF0X2ZpbGUpOgorICAgICAg
ICAoVGVzdFBPU0lYTG9jYWxQYXRoLnRlc3RfY29weV9zdGF0X2Rpcik6CisgICAgICAgIChUZXN0
UE9TSVhMb2NhbFBhdGgudGVzdF9jaG93bl9pZGVudGl0eSk6CisgICAgICAgIChUZXN0UE9TSVhM
b2NhbFBhdGgudGVzdF9jaG93bl9kYW5nbGluZ19saW5rKToKKyAgICAgICAgKFRlc3RQT1NJWExv
Y2FsUGF0aC50ZXN0X2Nob3duX2lkZW50aXR5X3JlY19tYXlmYWlsKToKKyAgICAgICAgKFRlc3RV
bmljb2RlUHkyUHkzKToKKyAgICAgICAgKFRlc3RVbmljb2RlUHkyUHkzLnRlc3Rfam9pbl9lbnN1
cmUpOgorICAgICAgICAoVGVzdFVuaWNvZGVQeTJQeTMudGVzdF9saXN0ZGlyKToKKyAgICAgICAg
KFRlc3RVbmljb2RlUHkyUHkzLnRlc3RfcmVhZF93cml0ZSk6CisgICAgICAgIChUZXN0QmluYXJ5
QW5kVGV4dE1ldGhvZHMpOgorICAgICAgICAoVGVzdEJpbmFyeUFuZFRleHRNZXRob2RzLnRlc3Rf
cmVhZF9iaW53cml0ZSk6CisgICAgICAgIChUZXN0QmluYXJ5QW5kVGV4dE1ldGhvZHMudGVzdF9y
ZWFkX3RleHR3cml0ZSk6CisgICAgICAgIChUZXN0QmluYXJ5QW5kVGV4dE1ldGhvZHMudGVzdF9k
ZWZhdWx0X2VuY29kaW5nKToKKyAgICAgICAgKiB0ZXN0aW5nL3BhdGgvdGVzdF9zdm5hdXRoLnB5
OiBBZGRlZC4KKyAgICAgICAgKG1ha2VfcmVwb19hdXRoKToKKyAgICAgICAgKHRlc3RfaW5mbyk6
CisgICAgICAgICh0ZXN0X2luZm8uZGlycGF0aCk6CisgICAgICAgICogdGVzdGluZy9wYXRoL3Rl
c3Rfc3ZudXJsLnB5OiBBZGRlZC4KKyAgICAgICAgKHB5dGVzdF9mdW5jYXJnX19wYXRoMSk6Cisg
ICAgICAgIChUZXN0U3ZuVVJMQ29tbWFuZFBhdGgpOgorICAgICAgICAoVGVzdFN2blVSTENvbW1h
bmRQYXRoLnRlc3RfbG9hZCk6CisgICAgICAgIChUZXN0U3ZuVVJMQ29tbWFuZFBhdGgudGVzdF9s
aXN0ZGlyKToKKyAgICAgICAgKFRlc3RTdm5VUkxDb21tYW5kUGF0aC50ZXN0X3Zpc2l0X2lnbm9y
ZSk6CisgICAgICAgIChUZXN0U3ZuVVJMQ29tbWFuZFBhdGgudGVzdF9zdm51cmxfbmVlZHNfYXJn
KToKKyAgICAgICAgKFRlc3RTdm5VUkxDb21tYW5kUGF0aC50ZXN0X3N2bnVybF9kb2VzX25vdF9h
Y2NlcHRfTm9uZV9laXRoZXIpOgorICAgICAgICAoVGVzdFN2blVSTENvbW1hbmRQYXRoLnRlc3Rf
c3ZudXJsX2NoYXJhY3RlcnNfc2ltcGxlKToKKyAgICAgICAgKFRlc3RTdm5VUkxDb21tYW5kUGF0
aC50ZXN0X3N2bnVybF9jaGFyYWN0ZXJzX2F0X3VzZXIpOgorICAgICAgICAoVGVzdFN2blVSTENv
bW1hbmRQYXRoLnRlc3Rfc3ZudXJsX2NoYXJhY3RlcnNfYXRfcGF0aCk6CisgICAgICAgIChUZXN0
U3ZuVVJMQ29tbWFuZFBhdGgudGVzdF9zdm51cmxfY2hhcmFjdGVyc19jb2xvbl9wb3J0KToKKyAg
ICAgICAgKFRlc3RTdm5VUkxDb21tYW5kUGF0aC50ZXN0X3N2bnVybF9jaGFyYWN0ZXJzX3RpbGRl
X2VuZCk6CisgICAgICAgIChUZXN0U3ZuVVJMQ29tbWFuZFBhdGgudGVzdF9zdm51cmxfY2hhcmFj
dGVyc19jb2xvbl9wYXRoKToKKyAgICAgICAgKFRlc3RTdm5VUkxDb21tYW5kUGF0aC50ZXN0X2V4
cG9ydCk6CisgICAgICAgIChUZXN0U3ZuSW5mb0NvbW1hbmQpOgorICAgICAgICAoVGVzdFN2bklu
Zm9Db21tYW5kLnRlc3Rfc3ZuXzFfMik6CisgICAgICAgIChUZXN0U3ZuSW5mb0NvbW1hbmQudGVz
dF9zdm5fMV8zKToKKyAgICAgICAgKFRlc3RTdm5JbmZvQ29tbWFuZC50ZXN0X3N2bl8xXzNfYik6
CisgICAgICAgICh0ZXN0X2JhZGNoYXJzKToKKyAgICAgICAgKiB0ZXN0aW5nL3BhdGgvdGVzdF9z
dm53Yy5weTogQWRkZWQuCisgICAgICAgICh0ZXN0X21ha2VfcmVwbyk6CisgICAgICAgIChweXRl
c3RfZnVuY2FyZ19fcGF0aDEpOgorICAgICAgICAoVGVzdFdDU3ZuQ29tbWFuZFBhdGgpOgorICAg
ICAgICAoVGVzdFdDU3ZuQ29tbWFuZFBhdGgudGVzdF9zdGF0dXNfYXR0cmlidXRlc19zaW1wbGUp
OgorICAgICAgICAoVGVzdFdDU3ZuQ29tbWFuZFBhdGgudGVzdF9zdGF0dXNfYXR0cmlidXRlc19z
aW1wbGUuYXNzZXJ0X25vY2hhbmdlKToKKyAgICAgICAgKFRlc3RXQ1N2bkNvbW1hbmRQYXRoLnRl
c3Rfc3RhdHVzX2FkZGVkKToKKyAgICAgICAgKFRlc3RXQ1N2bkNvbW1hbmRQYXRoLnRlc3Rfc3Rh
dHVzX2NoYW5nZSk6CisgICAgICAgIChUZXN0V0NTdm5Db21tYW5kUGF0aC50ZXN0X3N0YXR1c19h
ZGRlZF9vbmRpcmVjdG9yeSk6CisgICAgICAgIChUZXN0V0NTdm5Db21tYW5kUGF0aC50ZXN0X3N0
YXR1c191bmtub3duKToKKyAgICAgICAgKFRlc3RXQ1N2bkNvbW1hbmRQYXRoLnRlc3Rfc3RhdHVz
X3VuY2hhbmdlZCk6CisgICAgICAgIChUZXN0V0NTdm5Db21tYW5kUGF0aC50ZXN0X3N0YXR1c191
cGRhdGUpOgorICAgICAgICAoVGVzdFdDU3ZuQ29tbWFuZFBhdGgudGVzdF9zdGF0dXNfcmVwbGFj
ZWQpOgorICAgICAgICAoVGVzdFdDU3ZuQ29tbWFuZFBhdGgudGVzdF9zdGF0dXNfaWdub3JlZCk6
CisgICAgICAgIChUZXN0V0NTdm5Db21tYW5kUGF0aC50ZXN0X3N0YXR1c19jb25mbGljdCk6Cisg
ICAgICAgIChUZXN0V0NTdm5Db21tYW5kUGF0aC50ZXN0X3N0YXR1c19leHRlcm5hbCk6CisgICAg
ICAgIChUZXN0V0NTdm5Db21tYW5kUGF0aC50ZXN0X3N0YXR1c19kZWxldGVkKToKKyAgICAgICAg
KFRlc3RXQ1N2bkNvbW1hbmRQYXRoLnRlc3Rfc3RhdHVzX25vYXV0aG9yKToKKyAgICAgICAgKiB0
ZXN0aW5nL3BhdGgvdzNjLWltcG9ydC5sb2c6IEFkZGVkLgorICAgICAgICAqIHRlc3RpbmcvcHJv
Y2Vzcy9fX2luaXRfXy5weTogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9wcm9jZXNzL3Rlc3Rf
Y21kZXhlYy5weTogQWRkZWQuCisgICAgICAgIChleHZhbHVlKToKKyAgICAgICAgKFRlc3RfZXhl
Y19jbWQpOgorICAgICAgICAoVGVzdF9leGVjX2NtZC50ZXN0X3NpbXBsZSk6CisgICAgICAgIChU
ZXN0X2V4ZWNfY21kLnRlc3Rfc2ltcGxlX25ld2xpbmUpOgorICAgICAgICAoVGVzdF9leGVjX2Nt
ZC50ZXN0X3NpbXBsZV9lcnJvcik6CisgICAgICAgIChUZXN0X2V4ZWNfY21kLnRlc3Rfc2ltcGxl
X2Vycm9yX2V4YWN0X3N0YXR1cyk6CisgICAgICAgIChUZXN0X2V4ZWNfY21kLnRlc3RfZXJyKToK
KyAgICAgICAgKiB0ZXN0aW5nL3Byb2Nlc3MvdGVzdF9mb3JrZWRmdW5jLnB5OiBBZGRlZC4KKyAg
ICAgICAgKHRlc3Rfd2FpdGZpbmlzaF9yZW1vdmVzX3RlbXBkaXIpOgorICAgICAgICAodGVzdF90
ZW1wZGlyX2dldHNfZ2NfY29sbGVjdGVkKToKKyAgICAgICAgKHRlc3RfYmFzaWNfZm9ya2VkZnVu
Yyk6CisgICAgICAgICh0ZXN0X2V4aXRzdGF0dXMpOgorICAgICAgICAodGVzdF9leGl0c3RhdHVz
LmZ1bmMpOgorICAgICAgICAodGVzdF9leGVjcHRpb25faW5fZnVuYyk6CisgICAgICAgICh0ZXN0
X2V4ZWNwdGlvbl9pbl9mdW5jLmZ1bik6CisgICAgICAgICh0ZXN0X2ZvcmtlZGZ1bmNfb25fZmRz
KToKKyAgICAgICAgKHRlc3RfZm9ya2VkZnVuY19vbl9mZHNfb3V0cHV0KToKKyAgICAgICAgKHRl
c3RfZm9ya2VkZnVuY19vbl9zdGRvdXQpOgorICAgICAgICAodGVzdF9mb3JrZWRmdW5jX29uX3N0
ZG91dC5ib3hmMyk6CisgICAgICAgICh0ZXN0X2ZvcmtlZGZ1bmNfc2lnbmFsKToKKyAgICAgICAg
KHRlc3RfZm9ya2VkZnVuY19odWdlX2RhdGEpOgorICAgICAgICAodGVzdF9ib3hfc2VxKToKKyAg
ICAgICAgKHRlc3RfYm94X2luX2FfYm94KToKKyAgICAgICAgKHRlc3RfYm94X2luX2FfYm94LmJv
eGZ1bik6CisgICAgICAgICh0ZXN0X2tpbGxfZnVuY19mb3JrZWQpOgorICAgICAgICAodGVzdF9r
aWxsX2Z1bmNfZm9ya2VkLkEpOgorICAgICAgICAodGVzdF9raWxsX2Z1bmNfZm9ya2VkLmJveF9m
dW4pOgorICAgICAgICAodGVzdF9ob29rcyk6CisgICAgICAgICh0ZXN0X2hvb2tzLl9ib3hlZCk6
CisgICAgICAgICh0ZXN0X2hvb2tzLl9vbl9zdGFydCk6CisgICAgICAgICh0ZXN0X2hvb2tzLl9v
bl9leGl0KToKKyAgICAgICAgKGJveGYxKToKKyAgICAgICAgKGJveGYyKToKKyAgICAgICAgKGJv
eGYzKToKKyAgICAgICAgKGJveHNlZyk6CisgICAgICAgIChib3hodWdlKToKKyAgICAgICAgKiB0
ZXN0aW5nL3Byb2Nlc3MvdGVzdF9raWxscHJvYy5weTogQWRkZWQuCisgICAgICAgICh0ZXN0X2tp
bGwpOgorICAgICAgICAqIHRlc3RpbmcvcHJvY2Vzcy93M2MtaW1wb3J0LmxvZzogQ29waWVkIGZy
b20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93M2Mt
aW1wb3J0LmxvZy4KKyAgICAgICAgKiB0ZXN0aW5nL3Jvb3QvX19pbml0X18ucHk6IEFkZGVkLgor
ICAgICAgICAqIHRlc3Rpbmcvcm9vdC90ZXN0X2J1aWx0aW4ucHk6IEFkZGVkLgorICAgICAgICAo
dGVzdF9lbnVtZXJhdGUpOgorICAgICAgICAodGVzdF9hbnkpOgorICAgICAgICAodGVzdF9hbGwp
OgorICAgICAgICAodGVzdF9CYXNlRXhjZXB0aW9uKToKKyAgICAgICAgKHRlc3RfQmFzZUV4Y2Vw
dGlvbi5NeVJhbmRvbUNsYXNzKToKKyAgICAgICAgKHRlc3RfR2VuZXJhdG9yRXhpdCk6CisgICAg
ICAgICh0ZXN0X3JldmVyc2VkKToKKyAgICAgICAgKHRlc3Rfc2ltcGxlKToKKyAgICAgICAgKHRl
c3RfZnJvemVuc2V0KToKKyAgICAgICAgKHRlc3Rfc29ydGVkKToKKyAgICAgICAgKHRlc3Rfc29y
dGVkLnRlc3QpOgorICAgICAgICAodGVzdF9zb3J0ZWQudGVzdC5jb21wYXJlKToKKyAgICAgICAg
KHRlc3RfcHJpbnRfc2ltcGxlKToKKyAgICAgICAgKHRlc3RfcHJpbnRfc2ltcGxlLlgpOgorICAg
ICAgICAodGVzdF9wcmludF9zaW1wbGUuWC5fX3JlcHJfXyk6CisgICAgICAgICh0ZXN0X2V4ZWNm
aWxlKToKKyAgICAgICAgKHRlc3RfZXhlY2ZpbGUuZik6CisgICAgICAgICh0ZXN0X2V4ZWNmaWxl
LkEpOgorICAgICAgICAodGVzdF9nZXRmdW5jZGljdCk6CisgICAgICAgICh0ZXN0X2dldGZ1bmNk
aWN0LmYpOgorICAgICAgICAodGVzdF9jYWxsYWJsZSk6CisgICAgICAgICh0ZXN0X2NhbGxhYmxl
LkEpOgorICAgICAgICAodGVzdF90b3RleHQpOgorICAgICAgICAodGVzdF9ieXRlc190ZXh0KToK
KyAgICAgICAgKHRlc3RfdG90ZXh0X2JhZHV0ZjgpOgorICAgICAgICAodGVzdF9yZXJhaXNlKToK
KyAgICAgICAgKHRlc3RfZXhlYyk6CisgICAgICAgICh0ZXN0X3RyeWltcG9ydCk6CisgICAgICAg
ICh0ZXN0X2dldGNvZGUpOgorICAgICAgICAqIHRlc3Rpbmcvcm9vdC90ZXN0X2Vycm9yLnB5OiBB
ZGRlZC4KKyAgICAgICAgKHRlc3RfZXJyb3JfY2xhc3Nlcyk6CisgICAgICAgICh0ZXN0X2hhc19u
YW1lKToKKyAgICAgICAgKHRlc3RfcGlja2xhYmlsaXR5X2lzc3VlMSk6CisgICAgICAgICh0ZXN0
X3Vua25vd25fZXJyb3IpOgorICAgICAgICAodGVzdF9lcnJvcl9jb252ZXJzaW9uX0VOT1RESVIp
OgorICAgICAgICAodGVzdF9jaGVja2VkX2NhbGxfc3VwcG9ydHNfa3dhcmdzKToKKyAgICAgICAg
KENhc2UpOgorICAgICAgICAoQ2FzZS50ZXN0X2Fzc2VydFdhcm5zKToKKyAgICAgICAgKiB0ZXN0
aW5nL3Jvb3QvdGVzdF9weV9pbXBvcnRzLnB5OiBBZGRlZC4KKyAgICAgICAgKHRlc3RfZGlyKToK
KyAgICAgICAgKHRlc3RfdmlydHVhbF9tb2R1bGVfaWRlbnRpdHkpOgorICAgICAgICAodGVzdF9p
bXBvcnRhbGwpOgorICAgICAgICAodGVzdF9pbXBvcnRhbGwucmVjdXJzZSk6CisgICAgICAgIChj
aGVja19pbXBvcnQpOgorICAgICAgICAodGVzdF9zdGFyX2ltcG9ydCk6CisgICAgICAgICh0ZXN0
X2FsbF9yZXNvbHZlcyk6CisgICAgICAgICogdGVzdGluZy9yb290L3Rlc3Rfc3RkLnB5OiBBZGRl
ZC4KKyAgICAgICAgKHRlc3Rfb3MpOgorICAgICAgICAodGVzdF9pbXBvcnRfZXJyb3JfY29udmVy
dHNfdG9fYXR0cmlidXRlZXJyb3IpOgorICAgICAgICAodGVzdF9zdGRfZ2V0c19pdCk6CisgICAg
ICAgICogdGVzdGluZy9yb290L3Rlc3RfeG1sZ2VuLnB5OiBBZGRlZC4KKyAgICAgICAgKG5zKToK
KyAgICAgICAgKHRlc3RfZXNjYXBlKToKKyAgICAgICAgKHRlc3RfZXNjYXBlLkEpOgorICAgICAg
ICAodGVzdF9lc2NhcGUuQS5fX3VuaWNvZGVfXyk6CisgICAgICAgICh0ZXN0X2VzY2FwZS5BLl9f
c3RyX18pOgorICAgICAgICAodGVzdF90YWdfd2l0aF90ZXh0KToKKyAgICAgICAgKHRlc3RfY2xh
c3NfaWRlbnRpdHkpOgorICAgICAgICAodGVzdF90YWdfd2l0aF90ZXh0X2FuZF9hdHRyaWJ1dGVz
KToKKyAgICAgICAgKHRlc3RfdGFnX3dpdGhfc3ViY2xhc3NlZF9hdHRyX3NpbXBsZSk6CisgICAg
ICAgICh0ZXN0X3RhZ193aXRoX3N1YmNsYXNzZWRfYXR0cl9zaW1wbGUubXkpOgorICAgICAgICAo
dGVzdF90YWdfd2l0aF9zdWJjbGFzc2VkX2F0dHJfc2ltcGxlLm15LkF0dHIpOgorICAgICAgICAo
dGVzdF90YWdfd2l0aF9yYXdfYXR0cik6CisgICAgICAgICh0ZXN0X3RhZ19uZXN0ZWQpOgorICAg
ICAgICAodGVzdF9saXN0X25lc3RlZCk6CisgICAgICAgICh0ZXN0X3RhZ194bWxuYW1lKToKKyAg
ICAgICAgKHRlc3RfdGFnX3htbG5hbWUubXkpOgorICAgICAgICAodGVzdF90YWdfd2l0aF90ZXh0
X2VudGl0eSk6CisgICAgICAgICh0ZXN0X3RhZ193aXRoX3RleHRfYW5kX2F0dHJpYnV0ZXNfZW50
aXR5KToKKyAgICAgICAgKHRlc3RfcmF3KToKKyAgICAgICAgKHRlc3RfaHRtbF9uYW1lX3N0aWNr
eW5lc3MpOgorICAgICAgICAodGVzdF9odG1sX25hbWVfc3RpY2t5bmVzcy5teSk6CisgICAgICAg
ICh0ZXN0X3N0eWxlbmFtZXMpOgorICAgICAgICAodGVzdF9zdHlsZW5hbWVzLm15KToKKyAgICAg
ICAgKHRlc3Rfc3R5bGVuYW1lcy5teS5ib2R5KToKKyAgICAgICAgKHRlc3RfY2xhc3NfTm9uZSk6
CisgICAgICAgICh0ZXN0X2FsdGVybmF0aW5nX3N0eWxlKToKKyAgICAgICAgKHRlc3RfYWx0ZXJu
YXRpbmdfc3R5bGUubXkpOgorICAgICAgICAodGVzdF9hbHRlcm5hdGluZ19zdHlsZS5teS5saSk6
CisgICAgICAgICh0ZXN0X2FsdGVybmF0aW5nX3N0eWxlLm15LmxpLnN0eWxlKToKKyAgICAgICAg
KHRlc3Rfc2luZ2xldG9uKToKKyAgICAgICAgKHRlc3RfaW5saW5lKToKKyAgICAgICAgKHRlc3Rf
b2JqZWN0X3RhZ3MpOgorICAgICAgICAqIHRlc3Rpbmcvcm9vdC93M2MtaW1wb3J0LmxvZzogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9zZXJ2ZS93M2MtaW1wb3J0LmxvZy4KKyAgICAgICAgKiB0ZXN0aW5nL3czYy1pbXBvcnQubG9n
OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3czYy1pbXBvcnQubG9nLgorICAgICAgICAqIHRveC5pbmk6IEFkZGVkLgorICAgICAg
ICAqIHczYy1pbXBvcnQubG9nOiBBZGRlZC4KKworMS41LjIKKz09PT09CisKKy0gZml4ICMxNjks
ICMxNzA6IGVycm9yIGltcG9ydGluZyBweS5sb2cgb24gV2luZG93czogbm8gbW9kdWxlIG5hbWVk
IGBgc3lzbG9nYGAuCisKKzEuNS4xCis9PT09PQorCistIGZpeCAjMTY3IC0gcHJldmVudCBwaXAg
ZnJvbSBpbnN0YWxsaW5nIHB5IGluIHVuc3VwcG9ydGVkIFB5dGhvbiB2ZXJzaW9ucy4KKworMS41
LjAKKz09PT09CisKK05PVEU6ICoqdGhpcyByZWxlYXNlIGhhcyBiZWVuIHJlbW92ZWQgZnJvbSBQ
eVBJKiogZHVlIHRvIG1pc3NpbmcgcGFja2FnZQorbWV0YWRhdGEgd2hpY2ggY2F1c2VkIGEgbnVt
YmVyIG9mIHByb2JsZW1zIHRvIHB5MjYgYW5kIHB5MzMgdXNlcnMuCitUaGlzIGlzc3VlIHdhcyBm
aXhlZCBpbiB0aGUgMS41LjEgcmVsZWFzZS4KKworLSBweXRob24gMi42IGFuZCAzLjMgYXJlIG5v
IGxvbmdlciBzdXBwb3J0ZWQKKy0gZGVwcmVjYXRlIHB5LnN0ZCBhbmQgcmVtb3ZlIGFsbCBpbnRl
cm5hbCB1c2VzCistIGZpeCAjNzMgdHVybiBweS5lcnJvciBpbnRvIGFuIGFjdHVhbCBtb2R1bGUK
Ky0gcGF0aCBqb2luIHRvIC8gbm8gbG9uZ2VyIHByb2R1Y2VzIGxlYWRpbmcgZG91YmxlIHNsYXNo
ZXMKKy0gZml4ICM4MiAtIHJlbW92ZSB1bnN1cHBvcnRhYmxlIGFsaWFzZXMKKy0gZml4IHB5dGhv
bjM3IGNvbXBhdGliaWxpdHkgb2YgcGF0aC5zeXNmaW5kIG9uIHdpbmRvd3MgYnkgY29ycmVjdGx5
IHJlcGxhY2luZyB2YXJzCistIHR1cm4gaW5pY29uZmlnIGFuZCBhcGlwa2cgaW50byB2ZW5kb3Jl
ZCBwYWNrYWdlcyBhbmQgZWFzZSBkZS12ZW5kb3JpbmcgZm9yIGRpc3RyaWJ1dGlvbnMKKy0gZml4
ICM2OCByZW1vdmUgaW52YWxpZCBweS50ZXN0LmVuc3VyZXRlbXAgcmVmZXJlbmNlcworLSBmaXgg
IzI1IC0gZGVwcmVjYXRlIHBhdGgubGlzdGRpcihzb3J0PWNhbGxhYmxlKQorLSBhZGQgYGBUZXJt
aW5hbFdyaXRlci5jaGFyc19vbl9jdXJyZW50X2xpbmVgYCByZWFkLW9ubHkgcHJvcGVydHkgdGhh
dCB0cmFja3MgaG93IG1hbnkgY2hhcmFjdGVycworICBoYXZlIGJlZW4gd3JpdHRlbiB0byB0aGUg
Y3VycmVudCBsaW5lLgorCisxLjQuMzQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0gZml4IGlzc3VlMTE5IC8g
cHl0ZXN0IGlzc3VlNzA4IHdoZXJlIHRtcGRpciBtYXkgZmFpbCB0byBtYWtlIG51bWJlcmVkIGRp
cmVjdG9yaWVzCisgIHdoZW4gdGhlIGZpbGVzeXN0ZW0gaXMgY2FzZS1pbnNlbnNpdGl2ZS4KKwor
MS40LjMzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQorCistIGF2b2lkIGltcG9ydHMgaW4gY2FsbHMgdG8gcHkucGF0
aC5sb2NhbCgpLmZubWF0Y2goKS4gVGhhbmtzIEFuZHJlYXMgUGVsbWUgZm9yCisgIHRoZSBQUi4K
KworLSBmaXggaXNzdWUxMDY6IE5haXZlIHVuaWNvZGUgZW5jb2Rpbmcgd2hlbiBjYWxsaW5nIGZz
cGF0aCgpIGluIHB5dGhvbjIuIFRoYW5rcyBUaWFnbyBOb2JyZWdhIGZvciB0aGUgUFIuCisKKy0g
Zml4IGlzc3VlMTEwOiB1bml0dGVzdC5UZXN0Q2FzZS5hc3NlcnRXYXJucyBmYWlscyB3aXRoIHB5
IGltcG9ydGVkLgorCisxLjQuMzIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0gZml4IGlzc3VlNzA6IGFkZGVk
IGFiaWxpdHkgdG8gY29weSBhbGwgc3RhdCBpbmZvIGluIHB5LnBhdGgubG9jYWwuY29weS4KKwor
LSBtYWtlIFRlcm1pbmFsV3JpdGVyLmZ1bGx3aWR0aCBhIHByb3BlcnR5LiAgVGhpcyByZXN1bHRz
IGluIHRoZSBjb3JyZWN0CisgIHZhbHVlIHdoZW4gdGhlIHRlcm1pbmFsIGdldHMgcmVzaXplZC4K
KworLSB1cGRhdGUgc3VwcG9ydGVkIGh0bWwgdGFncyB0byBpbmNsdWRlIHJlY2VudCBhZGRpdGlv
bnMuCisgIFRoYW5rcyBEZW5pcyBBZm9uc28gZm9yIHRoZSBQUi4KKworLSBSZW1vdmUgaW50ZXJu
YWwgY29kZSBpbiBgYFNvdXJjZS5jb21waWxlYGAgbWVhbnQgdG8gc3VwcG9ydCBlYXJsaWVyIFB5
dGhvbiAzIHZlcnNpb25zIHRoYXQgcHJvZHVjZWQgdGhlIHNpZGUgZWZmZWN0CisgIG9mIGxlYXZp
bmcgYGBOb25lYGAgaW4gYGBzeXMubW9kdWxlc2BgIHdoZW4gY2FsbGVkIChzZWUgcHl0ZXN0LWRl
di9weXRlc3QjMjEwMykuCisgIFRoYW5rcyBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIFBSLgorCisx
LjQuMzEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CisKKy0gZml4IGxvY2FsKCkuY29weShkZXN0LCBtb2RlPVRydWUpIHRvIGFsc28gd29yaworICB3
aXRoIHVuaWNvZGUuCisKKy0gcGFzcyBiZXR0ZXIgZXJyb3IgbWVzc2FnZSB3aXRoIHN2biBFRVhJ
U1QgcGF0aHMKKworMS40LjMwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorCistIGZpeCBpc3N1ZTY4IGFuIGFzc2VydCB3aXRoIGEgIG11bHRpbGlu
ZSBsaXN0IGNvbXByZWhlbnNpb24gCisgIHdhcyBub3QgcmVwb3J0ZWQgY29ycmVjdGx5LiBUaGFu
a3MgSGVucmlrIEhlaWJ1ZXJnZXIuCisKKworMS40LjI5Cis9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistIGZpeCBpc3N1ZTU1OiByZXZlcnQgYSBj
aGFuZ2UgdG8gdGhlIHN0YXRlbWVudCBmaW5kaW5nIGFsZ29yaXRobQorICB3aGljaCBpcyB1c2Vk
IGJ5IHB5dGVzdCBmb3IgZ2VuZXJhdGluZyB0cmFjZWJhY2tzLgorICBUaGFua3MgRGFuaWVsIEhh
aGxlciBmb3IgaW5pdGlhbCBhbmFseXNpcy4KKworLSBmaXggcHl0ZXN0IGlzc3VlMjU0IGZvciB3
aGVuIHRyYWNlYmFjayByZW5kZXJpbmcgY2FuJ3QKKyAgZmluZCB2YWxpZCBzb3VyY2UgY29kZS4g
IFRoYW5rcyBJb25lbCBDcmlzdGlhbiBNYXJpZXMuCisKKworMS40LjI4Cis9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistIGZpeCBpc3N1ZTY0IC0t
IGRpcnBhdGggcmVncmVzc2lvbiB3aGVuICJhYnM9VHJ1ZSIgaXMgcGFzc2VkLgorICBUaGFua3Mg
R2lsbGVzIERhcnRpZ3VlbG9uZ3VlLgorCisxLjQuMjcKKz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0gZml4IGlzc3VlNTk6IHBvaW50IHRvIG5l
dyByZXBvIHNpdGUKKworLSBhbGxvdyBhIG5ldyBlbnN1cmVzeXNwYXRoPSJhcHBlbmQiIG1vZGUg
Zm9yIHB5LnBhdGgubG9jYWwucHlpbXBvcnQoKQorICBzbyB0aGF0IGEgbmVjY2Vzc2FyeSBpbXBv
cnQgcGF0aCBpcyBhcHBlbmRlZCBpbnN0ZWFkIG9mIHByZXBlbmRlZCB0bworICBzeXMucGF0aCAK
KworLSBzdHJpa2UgdW5kb2N1bWVudGVkLCB1bnRlc3RlZCBhcmd1bWVudCB0byBweS5wYXRoLmxv
Y2FsLnB5cGtncGF0aAorCistIHNwZWVkIHVwIHB5LnBhdGgubG9jYWwuZGlycGF0aCBieSBhIGZh
Y3RvciBvZiAxMAorCisxLjQuMjYKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CisKKy0gYXZvaWQgY2FsbGluZyBub3JtcGF0aCB0d2ljZSBpbiBweS5w
YXRoLmxvY2FsCisKKy0gcHkuYnVpbHRpbi5fcmVyYWlzZSBwcm9wZXJseSByZXJhaXNlcyB1bmRl
ciBQeXRob24zIG5vdy4KKworLSBmaXggaXNzdWU1MyAtIHJlbW92ZSBtb2R1bGUgaW5kZXgsIHRo
YW5rcyBqZW5pc3lzLgorCistIGFsbG93IHBvc2l4IHBhdGggc2VwYXJhdG9ycyB3aGVuICJmbm1h
dGNoIiBpcyBjYWxsZWQuCisgIFRoYW5rcyBDaHJpc3RpYW4gTG9uZyBmb3IgdGhlIGNvbXBsZXRl
IFBSLgorCisxLjQuMjUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CisKKy0gZml4IGlzc3VlNTI6IHZhZ3VlbHkgZml4IHB5MjUgY29tcGF0IG9mIHB5
LnBhdGgubG9jYWwgKGl0J3Mgbm90CisgIG9mZmljaWFsbHkgc3VwcG9ydGVkKSwgYWxzbyBmaXgg
ZG9jcworCistIGZpeCBweXRlc3QgaXNzdWUgNTg5OiB3aGVuIGNoZWNraW5nIGlmIHdlIGhhdmUg
YSByZWN1cnNpb24gZXJyb3IKKyAgY2hlY2sgZm9yIHRoZSBzcGVjaWZpYyAibWF4aW11bSByZWN1
cnNpb24gZGVwdGgiIHRleHQgb2YgdGhlIGV4Y2VwdGlvbi4KKworMS40LjI0Cis9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistIEZpeCByZXRyaWV2
aW5nIHNvdXJjZSB3aGVuIGFuIGVsc2U6IGxpbmUgaGFzIGFuIG90aGVyIHN0YXRlbWVudCBvbgor
ICB0aGUgc2FtZSBsaW5lLgorCistIGFkZCBsb2NhbHBhdGggcmVhZF90ZXh0L3dyaXRlX3RleHQv
cmVhZF9ieXRlcy93cml0ZV9ieXRlcyBtZXRob2RzCisgIGFzIHNob3J0Y3V0cyBhbmQgY2xlYXJl
ciBieXRlcy90ZXh0IGludGVyZmFjZXMgZm9yIHJlYWQvd3JpdGUuCisgIEFkYXB0ZWQgZnJvbSBh
IFBSIGZyb20gUGF1bCBNb29yZS4KKworCisxLjQuMjMKKz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0gdXNlIG5ld2VyIGFwaXBrZyB2ZXJzaW9u
IHdoaWNoIG1ha2VzIGF0dHJpYnV0ZSBhY2Nlc3Mgb24KKyAgYWxpYXMgbW9kdWxlcyByZXNvbHZl
IHRvIE5vbmUgcmF0aGVyIHRoYW4gYW4gSW1wb3J0RXJyb3IuCisgIFRoaXMgaGVscHMgd2l0aCBj
b2RlIHRoYXQgdXNlcyBpbnNwZWN0LmdldGZyYW1laW5mbygpCisgIG9uIHB5MzQgd2hpY2ggY2F1
c2VzIGEgY29tcGxldGUgd2FsayBvbiBzeXMubW9kdWxlcworICB0aHVzIHRyaWdnZXJpbmcgdGhl
IGFsaWFzIG1vZHVsZSB0byByZXNvbHZlIGFuZCBibG93aW5nCisgIHVwIHdpdGggSW1wb3J0RXJy
b3IuICBUaGUgbmVnYXRpdmUgc2lkZSBpcyB0aGF0IHNvbWV0aGluZworICBsaWtlICJweS50ZXN0
LlgiIHdpbGwgbm93IHJlc3VsdCBpbiBOb25lIGluc3RlYWQgb2YgImltcG9ydGVycm9yOiBweXRl
c3QiCisgIGlmIHB5dGVzdCBpcyBub3QgaW5zdGFsbGVkLiAgQnV0IHlvdSBzaG91bGRuJ3QgaW1w
b3J0ICJweS50ZXN0IiAKKyAgYW55d2F5IGFueW1vcmUuCisKKy0gYWRhcHQgb25lIHN2biB0ZXN0
IHRvIG9ubHkgY2hlY2sgZm9yIGFueSBleGNlcHRpb24gaW5zdGVhZCAKKyAgb2Ygc3BlY2lmaWMg
b25lcyBiZWNhdXNlIGRpZmZlcmVudCBzdm4gdmVyc2lvbnMgY2F1c2UgZGlmZmVyZW50CisgIGVy
cm9ycyBhbmQgd2UgZG9uJ3QgY2FyZS4KKworCisxLjQuMjIKKz09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0gcmVmYWN0b3IgY2xhc3MtbGV2ZWwg
cmVnaXN0cnkgb24gRm9ya2VkRnVuYyBjaGlsZCBzdGFydC9maW5pc2gKKyAgZXZlbnQgdG8gYmVj
b21lIGluc3RhbmNlIGJhc2VkIChpLmUuIHBhc3NlZCBpbnRvIHRoZSBjb25zdHJ1Y3RvcikKKwor
MS40LjIxCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQorCistIEZvcmtlZEZ1bmMgbm93IGhhcyBjbGFzcy1sZXZlbCByZWdpc3Rlcl9vbl9zdGFydC9v
bl9leGl0KCkKKyAgbWV0aG9kcyB0byBhbGxvdyBhZGRpbmcgaW5mb3JtYXRpb24gaW4gdGhlIGJv
eGVkIHByb2Nlc3MuCisgIFRoYW5rcyBNYXJjIFNjaGxhaWNoLgorCistIEZvcmtlZEZ1bmMgaW4g
dGhlIGNoaWxkIG9wZW5zIGluICJhdXRvLWZsdXNoIiBtb2RlIGZvcgorICBzdGRvdXQvc3RkZXJy
IHNvIHRoYXQgd2hlbiBhIHN1YnByb2Nlc3MgZGllcyB5b3UgY2FuIHNlZQorICBpdHMgb3V0cHV0
IGV2ZW4gaWYgaXQgZGlkbid0IGZsdXNoIGl0c2VsZi4KKworLSByZWZhY3RvciB0cmFjZWJhY2sg
Z2VuZXJhdGlvbiBpbiBsaWdodCBvZiBweXRlc3QgaXNzdWUgMzY0CisgIChzaG9ydGVuaW5nIHRy
YWNlYmFja3MpLiAgIHlvdSBjYW4gbm93IHNldCBhIG5ldyB0cmFjZWJhY2sgc3R5bGUgCisgIG9u
IGEgcGVyLWVudHJ5IGJhc2lzIHN1Y2ggdGhhdCBhIGNhbGxlciBjYW4gZm9yY2UgZW50cmllcyB0
byBiZSAKKyAgaXNwbGF5ZWQgYXMgc2hvcnQgb3IgbG9uZyBlbnRyaWVzLgorCistIHdpbjMyOiBw
eS5wYXRoLmxvY2FsLnN5c2ZpbmQobmFtZSkgd2lsbCBwcmVmZXJyYWJseSByZXR1cm4gZmlsZXMg
d2l0aAorICBleHRlbnNpb25zIHNvIHRoYXQgaWYgIlgiIGFuZCAiWC5iYXQiIG9yICJYLmV4ZSIg
aXMgb24gdGhlIFBBVEgsCisgIG9uZSBvZiB0aGUgbGF0dGVyIHR3byB3aWxsIGJlIHJldHVybmVk
LgorCisxLjQuMjAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CisKKy0gaWdub3JlIHVuaWNvZGUgZGVjb2RlIGVycm9ycyBpbiB4bWxlc2NhcGUuICBU
aGFua3MgQW5hdG9seSBCdWJlbmtvZmYuCisKKy0gb24gcHl0aG9uMiBtb2RpZnkgdHJhY2ViYWNr
LmZvcm1hdF9leGNlcHRpb25fb25seSB0byBtYXRjaCBweXRob24zIAorICBiZWhhdmlvdXIsIG5h
bWVseSB0cnlpbmcgdG8gcHJpbnQgdW5pY29kZSBmb3IgRXhjZXB0aW9uIGluc3RhbmNlcworCist
IHVzZSBhIHNhZmVyIHdheSBmb3Igc2VyaWFsaXppbmcgZXhjZXB0aW9uIHJlcG9ydHMgKGhlbHBz
IHRvIGZpeAorICBweXRlc3QgaXNzdWU0MTMpCisKK0NoYW5nZXMgYmV0d2VlbiAxLjQuMTggYW5k
IDEuNC4xOQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKworLSBtZXJnZSBpbiBhcGlwa2cgZml4ZXMKKworLSBzb21lIG1pY3JvLW9wdGltaXphdGlv
bnMgaW4gcHkvX2NvZGUvY29kZS5weSBmb3Igc3BlZWRpbmcKKyAgdXAgcHl0ZXN0IHJ1bnMuICBU
aGFua3MgQWxleCBHYXlub3IgZm9yIGluaXRpYXRpdmUuCisKKy0gY2hlY2sgUFlfQ09MT1JTPTEg
b3IgUFlfQ09MT1JTPTAgdG8gZm9yY2UgY29sb3Jpbmcvbm90LWNvbG9yaW5nCisgIGZvciBweS5p
by5UZXJtaW5hbFdyaXRlcigpIGluZGVwZW5kZW50bHkgZnJvbSBjYXBhYmlsaXRpZXMKKyAgb2Yg
dGhlIG91dHB1dCBmaWxlLiAgVGhhbmtzIE1hcmMgQWJyYW1vd2l0eiBmb3IgdGhlIFBSLgorCist
IHNvbWUgZml4ZXMgdG8gdW5pY29kZSBoYW5kbGluZyBpbiBhc3NlcnRpb24gaGFuZGxpbmcuCisg
IFRoYW5rcyBmb3IgdGhlIFBSIHRvIEZsb3JpcyBCcnV5bm9vZ2hlLiAgKFRoaXMgaGVscHMKKyAg
dG8gZml4IHB5dGVzdCBpc3N1ZSAzMTkpLgorCistIGRlcGVuZCBvbiBzZXR1cHRvb2xzIHByZXNl
bmNlLCByZW1vdmUgZGlzdHJpYnV0ZV9zZXR1cAorCitDaGFuZ2VzIGJldHdlZW4gMS40LjE3IGFu
ZCAxLjQuMTgKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CisKKy0gaW50cm9kdWNlIHBhdGguZW5zdXJlX2RpcigpIGFzIGEgc3lub255bSBmb3IgZW5z
dXJlKC4uLiwgZGlyPTEpCisKKy0gc29tZSB1bmljb2RlL3B5dGhvbjMgcmVsYXRlZCBmaXhlcyB3
cnQgdG8gcGF0aCBtYW5pcHVsYXRpb25zCisgIChpZiB5b3Ugc3RhcnQgcGFzc2luZyB1bmljb2Rl
IHBhcnRpY3VsYXIgaW4gcHkyIHlvdSBtaWdodCAKKyAgc3RpbGwgZ2V0IHByb2JsZW1zLCB0aG91
Z2gpCisKK0NoYW5nZXMgYmV0d2VlbiAxLjQuMTYgYW5kIDEuNC4xNworPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLSBtYWtlIHB5LmlvLlRlcm1p
bmFsV3JpdGVyKCkgcHJlZmVyIGNvbG9yYW1hIGlmIGl0IGlzIGF2YWlsYWJsZQorICBhbmQgYXZv
aWQgZW1wdHkgbGluZXMgd2hlbiBzZXBhcmF0b3ItbGluZXMgYXJlIHByaW50ZWQgYnkKKyAgYmVp
bmcgZGVmZW5zaXZlIGFuZCByZWR1Y2luZyB0aGUgd29ya2luZyB0ZXJtaW5hbHdpZHRoIGJ5IDEK
KworLSBpbnRyb2R1Y2Ugb3B0aW9uYWwgImV4cGFuZHVzZXIiIGFyZ3VtZW50IHRvIHB5LnBhdGgu
bG9jYWwKKyAgdG8gdGhhdCBsb2NhbCgifiIsIGV4cGFuZHVzZXI9VHJ1ZSkgZ2l2ZXMgdGhlIGhv
bWUKKyAgZGlyZWN0b3J5IG9mICJ1c2VyIi4KKworQ2hhbmdlcyBiZXR3ZWVuIDEuNC4xNSBhbmQg
MS40LjE2Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQorCistIGZpeCBpc3N1ZTM1IC0gZGVmaW5lIF9fZ3RfXyBvcmRlcmluZyBiZXR3ZWVuIGEgbG9j
YWwgcGF0aAorICBhbmQgc3RyaW5ncworCistIGZpeCBpc3N1ZTM2IC0gbWFrZSBjaGRpcigpIHdv
cmsgZXZlbiBpZiBvcy5nZXRjd2QoKSBmYWlscy4KKworLSBhZGQgcGF0aC5leGlzdHMvaXNkaXIv
aXNmaWxlL2lzbGluayBzaG9ydGN1dHMKKworLSBpbnRyb2R1Y2UgbG9jYWwgcGF0aC5hc19jd2Qo
KSBjb250ZXh0IG1hbmFnZXIuCisKKy0gaW50cm9kdWNlIHAud3JpdGUoZW5zdXJlPTEpIGFuZCBw
Lm9wZW4oZW5zdXJlPTEpCisgIHdoZXJlIGVuc3VyZSB0cmlnZ2VycyBjcmVhdGlvbiBvZiBuZWNj
ZXNzYXJ5IHBhcmVudAorICBkaXJzLgorCisKK0NoYW5nZXMgYmV0d2VlbiAxLjQuMTQgYW5kIDEu
NC4xNQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
KworLSBtYWpvcmx5IHNwZWVkIHVwIHNvbWUgY29tbW9uIGNhbGxpbmcgcGF0dGVybnMgd2l0aAor
ICBMb2NhbFBhdGgubGlzdGRpcigpL2pvaW4vY2hlY2svc3RhdCBmdW5jdGlvbnMgY29uc2lkZXJh
Ymx5LgorCistIGZpeCBhbiBlZGdlIGNhc2Ugd2l0aCBmbm1hdGNoIHdoZXJlIGEgZ2xvYiBzdHls
ZSBwYXR0ZXJuIGFwcGVhcmVkCisgIGluIGFuIGFic29sdXRlIHBhdGguCisKK0NoYW5nZXMgYmV0
d2VlbiAxLjQuMTMgYW5kIDEuNC4xNAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KKworLSBmaXggZHVwZmlsZSB0byB3b3JrIHdpdGggZmlsZXMgdGhh
dCBkb24ndAorICBjYXJyeSBhIG1vZGUuIFRoYW5rcyBKYXNvbiBSLiBDb29tYnMuCisKK0NoYW5n
ZXMgYmV0d2VlbiAxLjQuMTIgYW5kIDEuNC4xMworPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KKworLSBmaXggZ2V0dGluZyBzdGF0ZW1lbnRyYW5nZS9j
b21waWxpbmcgYSBmaWxlIGVuZGluZworICBpbiBhIGNvbW1lbnQgbGluZSB3aXRob3V0IG5ld2xp
bmUgKG9uIHB5dGhvbjIuNSkKKy0gZm9yIGxvY2FsIHBhdGhzIHlvdSBjYW4gcGFzcyAibW9kZT1U
cnVlIiB0byBhIGNvcHkoKQorICBpbiBvcmRlciB0byBjb3B5IHBlcm1pc3Npb24gYml0cyAodW5k
ZXJseWluZyBtZWNoYW5pc20KKyAgaXMgdXNpbmcgc2h1dGlsLmNvcHltb2RlKQorLSBhZGQgcGF0
aHMgYXJndW1lbnRzIHRvIHB5LnBhdGgubG9jYWwuc3lzZmluZCB0byByZXN0cmljdAorICBzZWFy
Y2ggdG8gdGhlIGRpcmV0b3JpZXMgaW4gdGhlIHBhdGguCistIGFkZCBpc2Rpci9pc2ZpbGUvaXNs
aW5rIHRvIHBhdGguc3RhdCgpIG9iamVjdHMgYWxsb3dpbmcgdG8gcGVyZm9ybQorICBtdWx0aXBs
ZSBjaGVja3Mgd2l0aG91dCBjYWxsaW5nIG91dCBtdWx0aXBsZSB0aW1lcworLSBkcm9wIHB5LnBh
dGgubG9jYWwuX19uZXdfXyBpbiBmYXZvdXIgb2YgYSBzaW1wbGVyIF9faW5pdF9fCistIGluaWNv
bmZpZzogYWxsb3cgIm5hbWU6dmFsdWUiIHNldHRpbmdzIGluIGNvbmZpZyBmaWxlcywgbm8gc3Bh
Y2UgYWZ0ZXIKKyAgIm5hbWUiIHJlcXVpcmVkCistIGZpeCBpc3N1ZSAyNyAtIE5hbWVFcnJvciBp
biB1bmxpa2VseSB1bnRlc3RlZCBjYXNlIG9mIHNhZmVyZXByCisKKworQ2hhbmdlcyBiZXR3ZWVu
IDEuNC4xMSBhbmQgMS40LjEyCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorCistIGZpeCBweXRob24yLjQgc3VwcG9ydCAtIGZvciBwcmUtQVNUIGlu
dGVycHJldGVycyByZS1pbnRyb2R1Y2UgCisgIG9sZCB3YXkgdG8gZmluZCBzdGF0ZW1lbnRzIGlu
IGV4Y2VwdGlvbnMgKGNsb3NlcyBweXRlc3QgaXNzdWUgMjA5KQorLSBhZGQgdG94LmluaSB0byBk
aXN0cmlidXRpb24KKy0gZml4IGlzc3VlMjMgLSBwcmludCAqLCoqIGFyZ3MgaW5mb3JtYXRpb24g
aW4gdHJhY2ViYWNrcywKKyAgdGhhbmtzIE1hbnVlbCBKYWNvYgorCisKK0NoYW5nZXMgYmV0d2Vl
biAxLjQuMTAgYW5kIDEuNC4xMQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KKworLSB1c2UgX2FzdCB0byBkZXRlcm1pbmUgc3RhdGVtZW50IHJhbmdl
cyB3aGVuIHByaW50aW5nIHRyYWNlYmFja3MgLQorICBhdm9pZGluZyBtdWx0aS1zZWNvbmQgZGVs
YXlzIG9uIHNvbWUgbGFyZ2UgdGVzdCBtb2R1bGVzCistIGZpeCBhbiBpbnRlcm5hbCB0ZXN0IHRv
IG5vdCB1c2UgY2xhc3MtZGVub3RlZCBweXRlc3RfZnVuY2FyZ19fCistIGZpeCBhIGRvYyBsaW5r
IHRvIGJ1ZyB0cmFja2VyCistIHRyeSB0byBtYWtlIHRlcm1pbmFsLndyaXRlKCkgcHJpbnRpbmcg
bW9yZSByb2J1c3QgYWdhaW5zdAorICB1bmljb2RlZW5jb2RlL2RlY29kZSBwcm9ibGVtcywgYW1l
bmQgYWNjb3JkaW5nIHRlc3QKKy0gaW50cm9kdWNlIHB5LmJ1aWx0aW4udGV4dCBhbmQgcHkuYnVp
bHRpbi5ieXRlcworICB0byBwb2ludCB0byByZXNwZWN0aXZlIHN0ci91bmljb2RlIChweTIpIGFu
ZCBieXRlcy9zdHIgKHB5MykgdHlwZXMKKy0gZml4IGVycm9yIGhhbmRsaW5nIG9uIHdpbjMyL3B5
MzMgZm9yIEVOT0RJUiAKKworQ2hhbmdlcyBiZXR3ZWVuIDEuNC45IGFuZCAxLjQuMTAKKz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0gdGVybWlu
YWx3cml0ZXI6IGRlZmF1bHQgdG8gZW5jb2RlIHRvIFVURjggaWYgbm8gZW5jb2RpbmcgaXMgZGVm
aW5lZAorICBvbiB0aGUgb3V0cHV0IHN0cmVhbQorLSBpc3N1ZTIyOiBpbXByb3ZlIGhldXJpc3Rp
YyBmb3IgZmluZGluZyB0aGUgc3RhdGVtZW50cmFuZ2UgaW4gZXhjZXB0aW9ucworCitDaGFuZ2Vz
IGJldHdlZW4gMS40LjggYW5kIDEuNC45Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQorCistIGZpeCBidWcgb2YgcGF0aC52aXNpdCgpIHdoaWNoIHdv
dWxkIG5vdCByZWNvZ25pemUgZ2xvYi1zdHlsZSBwYXR0ZXJucworICBmb3IgdGhlICJyZWMiIHJl
Y3Vyc2lvbiBhcmd1bWVudAorLSBjaGFuZ2VkIGluaWNvbmZpZyBwYXJzaW5nIHRvIGJldHRlciBj
b25mb3JtLCBub3cgdGhlIGNoYXJzICI7IgorICBhbmQgIiMiIG9ubHkgbWFyayBhIGNvbW1lbnQg
YXQgdGhlIHN0cmlwcGVkIHN0YXJ0IG9mIGEgbGluZQorLSBpbmNsdWRlIHJlY2VudCBhcGlwa2ct
MS4yCistIGNoYW5nZSBpbnRlcm5hbCB0ZXJtaW5hbHdyaXRlci5saW5lL3JlbGluZSBsb2dpYyB0
byBtb3JlIG5pY2VseQorICBzdXBwb3J0IGZpbGUgc3Bpbm5lcnMKKworQ2hhbmdlcyBiZXR3ZWVu
IDEuNC43IGFuZCAxLjQuOAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KKworLSBmaXggaXNzdWUgMTMgLSBjb3JyZWN0IGhhbmRsaW5nIG9mIHRoZSB0
YWcgbmFtZSBvYmplY3QgaW4geG1sZ2VuCistIGZpeCBpc3N1ZSAxNCAtIHN1cHBvcnQgcmF3IGF0
dHJpYnV0ZSB2YWx1ZXMgaW4geG1sZ2VuCistIGZpeCB3aW5kb3dzIHRlcm1pbmFsd3JpdGVyIHBy
aW50aW5nL3JlLWxpbmUgcHJvYmxlbQorLSB1cGRhdGUgZGlzdHJpYnV0ZV9zZXR1cC5weSB0byAw
LjYuMjcKKworQ2hhbmdlcyBiZXR3ZWVuIDEuNC42IGFuZCAxLjQuNworPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLSBmaXggaXNzdWUxMSAtIG93
biB0ZXN0IGZhaWx1cmUgd2l0aCBweXRob24zLjMgLyBUaGFua3MgQmVuamFtaW4gUGV0ZXJzb24K
Ky0gaGVscCBmaXggcHl0ZXN0IGlzc3VlIDEwMgorCitDaGFuZ2VzIGJldHdlZW4gMS40LjUgYW5k
IDEuNC42Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQorCistIGhlbHAgdG8gZml4IHB5dGVzdCBpc3N1ZTk5OiB1bmlmeSBvdXRwdXQgb2YgCisgIEV4
Y2VwdGlvbkluZm8uZ2V0cmVwcihzdHlsZT0ibmF0aXZlIikgd2l0aCAuLi4oc3R5bGU9Imxvbmci
KQorLSBmaXggaXNzdWU3OiBzb3VyY2UuZ2V0c3RhdGVtZW50cmFuZ2UoKSBub3cgcmFpc2VzIHBy
b3BlciBlcnJvcgorICBpZiBubyB2YWxpZCBzdGF0ZW1lbnQgY2FuIGJlIGZvdW5kCistIGZpeCBp
c3N1ZTg6IGZpeCBjb2RlIGFuZCB0ZXN0cyBvZiBzdm51cmwvc3Zud2MgdG8gd29yayBvbiBzdWJ2
ZXJzaW9uIDEuNyAtIAorICBub3RlIHRoYXQgcGF0aC5zdGF0dXModXBkYXRlcz0xKSB3aWxsIG5v
dCBwcm9wZXJseSB3b3JrIHN2bi0xNydzIHN0YXR1cyAKKyAgLS14bWwgb3V0cHV0IGlzIGJyb2tl
bi4KKy0gbWFrZSBzb3VyY2UuZ2V0c3RhdGVtZW50cmFuZ2UoKSBtb3JlIHJlc2lsZW50IGFib3V0
IG5vbi1weXRob24gY29kZSBmcmFtZXMKKyAgKGFzIHNlZW4gZnJvbSBqbmphMikKKy0gbWFrZSB0
cmFja2ViYWNrIHJlY3Vyc2lvbiBkZXRlY3Rpb24gbW9yZSByZXNpbGVudAorICBhYm91dCB0aGUg
ZXZhbCBtYWdpYyBvZiBhIGRlY29yYXRvciBsaWJyYXJ5CistIGluaWNvbmZpZzogYWRkIHN1cHBv
cnQgZm9yIDsgYXMgY29tbWVudCBzdGFydGVyCistIHByb3Blcmx5IGhhbmRsZSBsaXN0cyBpbiB4
bWxnZW4gb24gcHl0aG9uMworLSBub3JtYWxpemUgcHkuY29kZS5nZXRmc2xpbmVubyhvYmopIHRv
IGFsd2F5cyByZXR1cm4gYSAoc3RyaW5nLCBpbnQpIHR1cGxlCisgIGRlZmF1bHRpbmcgdG8gKCIi
LCAtMSkgcmVzcGVjdGl2ZWx5IGlmIG5vIHNvdXJjZSBjb2RlIGNhbiBiZSBmb3VuZCBmb3Igb2Jq
LgorCitDaGFuZ2VzIGJldHdlZW4gMS40LjQgYW5kIDEuNC41Cis9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistIGltcHJvdmUgc29tZSB1bmljb2Rl
IGhhbmRsaW5nIGluIHRlcm1pbmFsd3JpdGVyIGFuZCBjYXB0dXJpbmcKKyAgKHVzZWQgYnkgcHl0
ZXN0KQorCitDaGFuZ2VzIGJldHdlZW4gMS40LjMgYW5kIDEuNC40Cis9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistIGEgZmV3IGZpeGVzIGFuZCBh
c3NlcnRpb24gcmVsYXRlZCByZWZpbmVtZW50cyBmb3IgcHl0ZXN0LTIuMQorLSBndWFyZCBweS5j
b2RlLkNvZGUgYW5kIGdldGZzbGluZW5vIGFnYWluc3QgYm9ndXMgaW5wdXQKKyAgYW5kIG1ha2Ug
cHkuY29kZS5Db2RlIG9iamVjdHMgZm9yIG9iamVjdCBpbnN0YW5jZQorICBieSBsb29raW5nIHVw
IHRoZWlyIF9fY2FsbF9fIGZ1bmN0aW9uLgorLSBtYWtlIGV4Y2VwdGlvbiBwcmVzZW50YXRpb24g
cm9idXN0IGFnYWluc3QgaW52YWxpZCBjdXJyZW50IGN3ZAorCitDaGFuZ2VzIGJldHdlZW4gMS40
LjIgYW5kIDEuNC4zCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorCistIGZpeCB0ZXJtaW5hbCBjb2xvcmluZyBpc3N1ZSBmb3Igc2tpcHBlZCB0ZXN0
cyAodGhhbmtzIEFtYXVyeSkKKy0gZml4IGlzc3VlNCAtIGxhcmdlIGNhbGxzIHRvIGFuc2lfcHJp
bnQgKHRoYW5rcyBBbWF1cnkpCisKK0NoYW5nZXMgYmV0d2VlbiAxLjQuMSBhbmQgMS40LjIKKz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0gZml4
IChweXRlc3QpIGlzc3VlMjMgLSB0bXBkaXIgYXJndW1lbnQgbm93IHdvcmtzIG9uIFB5dGhvbjMu
MiBhbmQgV2luZG93c1hQCisgICh3aGljaCBhcHBhcmVudGx5IHN0YXJ0cyB0byBvZmZlciBvcy5z
eW1saW5rIG5vdykKKworLSBiZXR0ZXIgZXJyb3IgbWVzc2FnZSBmb3Igc3ludGF4IGVycm9ycyBm
cm9tIGNvbXBpbGVkIGNvZGUKKworLSBzbWFsbCBmaXggdG8gYmV0dGVyIGRlYWwgd2l0aCAodW4t
KWNvbG9yZWQgdGVybWluYWwgb3V0cHV0IG9uIHdpbmRvd3MKKworQ2hhbmdlcyBiZXR3ZWVuIDEu
NC4wIGFuZCAxLjQuMQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KKworLSBmaXggaXNzdWUxIC0gcHkuZXJyb3IuKiBjbGFzc2VzIHRvIGJlIHBpY2ts
ZWFibGUKKworLSBmaXggaXNzdWUyIC0gb24gd2luZG93czMyIHVzZSBQQVRIRVhUIGFzIHRoZSBs
aXN0IG9mIHBvdGVudGlhbAorICBleHRlbnNpb25zIHRvIGZpbmQgZmluZCBiaW5hcmllcyB3aXRo
IHB5LnBhdGgubG9jYWwuc3lzZmluZChjb21tYW5kbmFtZSkKKworLSBmaXggKHB5dGVzdC0pIGlz
c3VlMTAgYW5kIHJlZmluZSBhc3NlcnRpb24gcmVpbnRlcnByZXRhdGlvbgorICB0byBhdm9pZCBi
cmVha2luZyBpZiB0aGUgX19ub256ZXJvX18gb2YgYW4gb2JqZWN0IGZhaWxzCisKKy0gZml4IChw
eXRlc3QtKSBpc3N1ZTE3IHdoZXJlIHB5dGhvbjMgZG9lcyBub3QgbGlrZSAiaW1wb3J0ICoiCisg
IGxlYWRpbmcgdG8gbWlzcmVwcmVzZW50YXRpb24gb2YgaW1wb3J0LWVycm9ycyBpbiB0ZXN0IG1v
ZHVsZXMKKworLSBmaXggcHkuZXJyb3IuKiBhdHRyaWJ1dGUgcHlweSBhY2Nlc3MgaXNzdWUKKwor
LSBhbGxvdyBwYXRoLnNhbWVmaWxlKGFyZykgdG8gc3VjY2VlZCB3aGVuIGFyZyBpcyBhIHJlbGF0
aXZlIGZpbGVuYW1lCisKKy0gZml4IChweXRlc3QtKSBpc3N1ZTIwIHBhdGguc2FtZWZpbGUocmVs
cGF0aCkgd29ya3MgYXMgZXhwZWN0ZWQgbm93CisKKy0gZml4IChweXRlc3QtKSBpc3N1ZTggbGVu
KGxvbmdfbGlzdCkgbm93IHNob3dzIHRoZSBsZW5ndGggb2YgdGhlIGxpc3QKKworQ2hhbmdlcyBi
ZXR3ZWVuIDEuMy40IGFuZCAxLjQuMAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KKworLSBweS50ZXN0IHdhcyBtb3ZlZCB0byBhIHNlcGFyYXRlICJw
eXRlc3QiIHBhY2thZ2UuIFdoYXQgcmVtYWlucyBpcworICBhIHN0dWIgaG9vayB3aGljaCB3aWxs
IHByb3h5IGBgaW1wb3J0IHB5LnRlc3RgYCB0byBgYHB5dGVzdGBgLgorLSBhbGwgY29tbWFuZCBs
aW5lIHRvb2xzICgicHkuY2xlYW51cC9sb29rdXAvY291bnRsb2MvLi4uIiBtb3ZlZCAKKyAgdG8g
InB5Y21kIiBwYWNrYWdlKQorLSByZW1vdmVkIHRoZSBvbGQgYW5kIGRlcHJlY2F0ZWQgInB5Lm1h
Z2ljIiBuYW1lc3BhY2UKKy0gdXNlIGFwaXBrZy0xLjEgYW5kIG1ha2UgcHkuYXBpcGtnLmluaXRw
a2d8QXBpTW9kdWxlIGF2YWlsYWJsZQorLSBhZGQgcHkuaW5pY29uZmlnIG1vZHVsZSBmb3IgYnJh
aW4tZGVhZCBlYXN5IGluaS1jb25maWcgZmlsZSBwYXJzaW5nCistIGludHJvZHVjZSBweS5idWls
dGluLmFueSgpCistIHBhdGggb2JqZWN0cyBoYXZlIGEgLmRpcm5hbWUgYXR0cmlidXRlIG5vdyAo
ZXF1aXZhbGVudCB0bworICBvcy5wYXRoLmRpcm5hbWUocGF0aCkpCistIHBhdGgudmlzaXQoKSBh
Y2NlcHRzIGJyZWFkdGhmaXJzdCAoYmYpIGFuZCBzb3J0IG9wdGlvbnMKKy0gcmVtb3ZlIGRlcHJl
Y2F0ZWQgcHkuY29tcGF0IG5hbWVzcGFjZQorCitDaGFuZ2VzIGJldHdlZW4gMS4zLjMgYW5kIDEu
My40Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor
CistIGZpeCBpc3N1ZTExMTogaW1wcm92ZSBpbnN0YWxsIGRvY3VtZW50YXRpb24gZm9yIHdpbmRv
d3MKKy0gZml4IGlzc3VlMTE5OiBmaXggY3VzdG9tIGNvbGxlY3RhYmlsaXR5IG9mIF9faW5pdF9f
LnB5IGFzIGEgbW9kdWxlCistIGZpeCBpc3N1ZTExNjogLS1kb2N0ZXN0bW9kdWxlcyB3b3JrIHdp
dGggX19pbml0X18ucHkgZmlsZXMgYXMgd2VsbAorLSBmaXggaXNzdWUxMTU6IHVuaWZ5IGludGVy
bmFsIGV4Y2VwdGlvbiBwYXNzdGhyb3VnaC9jYXRjaGluZy9HZW5lcmF0b3JFeGl0CistIGZpeCBp
c3N1ZTExODogbmV3IC0tdGI9bmF0aXZlIGZvciBwcmVzZW50aW5nIGNweXRob24tc3RhbmRhcmQg
ZXhjZXB0aW9ucworCitDaGFuZ2VzIGJldHdlZW4gMS4zLjIgYW5kIDEuMy4zCis9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistIGZpeCBpc3N1ZTEx
MzogYXNzZXJ0aW9uIHJlcHJlc2VudGF0aW9uIHByb2JsZW0gd2l0aCB0cmlwbGUtcXVvdGVkIHN0
cmluZ3MKKyAgKGFuZCBwb3NzaWJseSBvdGhlciBjYXNlcykKKy0gbWFrZSBjb25mdGVzdCBsb2Fk
aW5nIGRldGVjdCB0aGF0IGEgY29uZnRlc3QgZmlsZSB3aXRoIHRoZSBzYW1lCisgIGNvbnRlbnQg
d2FzIGFscmVhZHkgbG9hZGVkLCBhdm9pZHMgc3VycHJpc2VzIGluIG5lc3RlZCBkaXJlY3Rvcnkg
c3RydWN0dXJlcworICB3aGljaCBjYW4gYmUgcHJvZHVjZWQgZS5nLiBieSBIdWRzb24uIEl0IHBy
b2JhYmx5IHJlbW92ZXMgdGhlIG5lZWQgdG8gdXNlCisgIC0tY29uZmN1dGRpciBpbiBtb3N0IGNh
c2VzLgorLSBmaXggdGVybWluYWwgY29sb3JpbmcgZm9yIHdpbjMyCisgICh0aGFua3MgTWljaGFl
bCBGb29yZCBmb3IgcmVwb3J0aW5nKQorLSBmaXggd2VpcmRuZXNzOiBtYWtlIHRlcm1pbmFsIHdp
ZHRoIGRldGVjdGlvbiB3b3JrIG9uIHN0ZG91dCBpbnN0ZWFkIG9mIHN0ZGluCisgICh0aGFua3Mg
QXJtaW4gUm9uYWNoZXIgZm9yIHJlcG9ydGluZykKKy0gcmVtb3ZlIHRyYWlsaW5nIHdoaXRlc3Bh
Y2UgaW4gYWxsIHB5L3RleHQgZGlzdHJpYnV0aW9uIGZpbGVzCisKK0NoYW5nZXMgYmV0d2VlbiAx
LjMuMSBhbmQgMS4zLjIKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CisKK05ldyBmZWF0dXJlcworKysrKysrKysrKysrKysrKysrCisKKy0gZml4IGlz
c3VlMTAzOiAgaW50cm9kdWNlIHB5LnRlc3QucmFpc2VzIGFzIGNvbnRleHQgbWFuYWdlciwgZXhh
bXBsZXM6OgorCisgICAgd2l0aCBweS50ZXN0LnJhaXNlcyhaZXJvRGl2aXNpb25FcnJvcik6Cisg
ICAgICAgIHggPSAwCisgICAgICAgIDEgLyB4CisKKyAgICB3aXRoIHB5LnRlc3QucmFpc2VzKFJ1
bnRpbWVFcnJvcikgYXMgZXhjaW5mbzoKKyAgICAgICAgY2FsbF9zb21ldGhpbmcoKQorCisgICAg
IyB5b3UgbWF5IGRvIGV4dHJhIGNoZWNrcyBvbiBleGNpbmZvLnZhbHVlfHR5cGV8dHJhY2ViYWNr
IGhlcmUKKworICAodGhhbmtzIFJvbm55IFBmYW5uc2NobWlkdCkKKworLSBGdW5jYXJnIGZhY3Rv
cmllcyBjYW4gbm93IGR5bmFtaWNhbGx5IGFwcGx5IGEgbWFya2VyIHRvIGEKKyAgdGVzdCBpbnZv
Y2F0aW9uLiAgVGhpcyBpcyBmb3IgZXhhbXBsZSB1c2VmdWwgaWYgYSBmYWN0b3J5CisgIHByb3Zp
ZGVzIHBhcmFtZXRlcnMgdG8gYSB0ZXN0IHdoaWNoIGFyZSBleHBlY3RlZC10by1mYWlsOjoKKwor
ICAgIGRlZiBweXRlc3RfZnVuY2FyZ19fYXJnKHJlcXVlc3QpOgorICAgICAgICByZXF1ZXN0LmFw
cGx5bWFya2VyKHB5LnRlc3QubWFyay54ZmFpbChyZWFzb249ImZsYWt5IGNvbmZpZyIpKQorICAg
ICAgICAuLi4KKworICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGFyZyk6CisgICAgICAgIC4uLgorCist
IGltcHJvdmVkIGVycm9yIHJlcG9ydGluZyBvbiBjb2xsZWN0aW9uIGFuZCBpbXBvcnQgZXJyb3Jz
LiBUaGlzIG1ha2VzCisgIHVzZSBvZiBhIG1vcmUgZ2VuZXJhbCBtZWNoYW5pc20sIG5hbWVseSB0
aGF0IGZvciBjdXN0b20gdGVzdCBpdGVtL2NvbGxlY3QKKyAgbm9kZXMgYGBub2RlLnJlcHJfZmFp
bHVyZShleGNpbmZvKWBgIGlzIG5vdyB1bmlmb3JtbHkgY2FsbGVkIHNvIHRoYXQgeW91IGNhbgor
ICBvdmVycmlkZSBpdCB0byByZXR1cm4gYSBzdHJpbmcgZXJyb3IgcmVwcmVzZW50YXRpb24gb2Yg
eW91ciBjaG9pY2UKKyAgd2hpY2ggaXMgZ29pbmcgdG8gYmUgcmVwb3J0ZWQgYXMgYSAocmVkKSBz
dHJpbmcuCisKKy0gaW50cm9kdWNlICctLWp1bml0cHJlZml4PVNUUicgb3B0aW9uIHRvIHByZXBl
bmQgYSBwcmVmaXgKKyAgdG8gYWxsIHJlcG9ydHMgaW4gdGhlIGp1bml0eG1sIGZpbGUuCisKK0J1
ZyBmaXhlcyAvIE1haW50ZW5hbmNlCisrKysrKysrKysrKysrKysrKysrKysrKysrKworCistIG1h
a2UgdGVzdHMgYW5kIHRoZSBgYHB5dGVzdF9yZWN3YXJuYGAgcGx1Z2luIGluIHBhcnRpY3VsYXIg
ZnVsbHkgY29tcGF0aWJsZQorICB0byBQeXRob24yLjcgKGlmIHlvdSB1c2UgdGhlIGBgcmVjd2Fy
bmBgIGZ1bmNhcmcgd2FybmluZ3Mgd2lsbCBiZSBlbmFibGVkIHNvIHRoYXQKKyAgeW91IGNhbiBw
cm9wZXJseSBjaGVjayBmb3IgdGhlaXIgZXhpc3RlbmNlIGluIGEgY3Jvc3MtcHl0aG9uIG1hbm5l
cikuCistIHJlZmluZSAtLXBkYjogaWdub3JlIHhmYWlsZWQgdGVzdHMsIHVuaWZ5IGl0cyBUQi1y
ZXBvcnRpbmcgYW5kCisgIGRvbid0IGRpc3BsYXkgZmFpbHVyZXMgYWdhaW4gYXQgdGhlIGVuZC4K
Ky0gZml4IGFzc2VydGlvbiBpbnRlcnByZXRhdGlvbiB3aXRoIHRoZSAqKiBvcGVyYXRvciAodGhh
bmtzIEJlbmphbWluIFBldGVyc29uKQorLSBmaXggaXNzdWUxMDUgYXNzaWdubWVudCBvbiB0aGUg
c2FtZSBsaW5lIGFzIGEgZmFpbGluZyBhc3NlcnRpb24gKHRoYW5rcyBCZW5qYW1pbiBQZXRlcnNv
bikKKy0gZml4IGlzc3VlMTA0IHByb3BlciBlc2NhcGluZyBmb3IgdGVzdCBuYW1lcyBpbiBqdW5p
dHhtbCBwbHVnaW4gKHRoYW5rcyBhbm9ueW1vdXMpCistIGZpeCBpc3N1ZTU3IC1mfC0tbG9vcG9u
ZmFpbCB0byB3b3JrIHdpdGggeHBhc3NpbmcgdGVzdHMgKHRoYW5rcyBSb25ueSkKKy0gZml4IGlz
c3VlOTIgY29sbGVjdG9ubHkgcmVwb3J0ZXIgYW5kIC0tcGFzdGViaW4gKHRoYW5rcyBCZW5qYW1p
biBQZXRlcnNvbikKKy0gZml4IHB5LmNvZGUuY29tcGlsZShzb3VyY2UpIHRvIGdlbmVyYXRlIHVu
aXF1ZSBmaWxlbmFtZXMKKy0gZml4IGFzc2VydGlvbiByZS1pbnRlcnAgcHJvYmxlbXMgb24gUHlQ
eSwgYnkgZGVmZXJpbmcgY29kZQorICBjb21waWxhdGlvbiB0byB0aGUgKG92ZXJyaWRhYmxlKSBG
cmFtZS5ldmFsIGNsYXNzLiAodGhhbmtzIEFtYXVyeSBGb3JnZW90KQorLSBmaXggcHkucGF0aC5s
b2NhbC5weWltcG9ydCgpIHRvIHdvcmsgd2l0aCBkaXJlY3RvcmllcworLSBzdHJlYW1saW5lIHB5
LnBhdGgubG9jYWwubWtkdGVtcCBpbXBsZW1lbnRhdGlvbiBhbmQgdXNhZ2UKKy0gZG9uJ3QgcHJp
bnQgZW1wdHkgbGluZXMgd2hlbiBzaG93aW5nIGp1bml0eG1sLWZpbGVuYW1lCistIGFkZCBvcHRp
b25hbCBib29sZWFuIGlnbm9yZV9lcnJvcnMgcGFyYW1ldGVyIHRvIHB5LnBhdGgubG9jYWwucmVt
b3ZlCistIGZpeCB0ZXJtaW5hbCB3cml0aW5nIG9uIHdpbjMyL3B5dGhvbjIuNAorLSBweS5wcm9j
ZXNzLmNtZGV4ZWMoKSBub3cgdHJpZXMgaGFyZGVyIHRvIHJldHVybiBwcm9wZXJseSBlbmNvZGVk
IHVuaWNvZGUgb2JqZWN0cworICBvbiBhbGwgcHl0aG9uIHZlcnNpb25zCistIGluc3RhbGwgcGxh
aW4gcHkudGVzdC9weS53aGljaCBzY3JpcHRzIGFsc28gZm9yIEp5dGhvbiwgdGhpcyBoZWxwcyB0
bworICBnZXQgY2Fub25pY2FsIHNjcmlwdCBwYXRocyBpbiB2aXJ0dWFsZW52IHNpdHVhdGlvbnMK
Ky0gbWFrZSBwYXRoLmJlc3RyZWxwYXRoKHBhdGgpIHJldHVybiAiLiIsIG5vdGUgdGhhdCB3aGVu
IGNhbGxpbmcKKyAgWC5iZXN0cmVscGF0aCB0aGUgYXNzdW1wdGlvbiBpcyB0aGF0IFggaXMgYSBk
aXJlY3RvcnkuCistIG1ha2UgaW5pdGlhbCBjb25mdGVzdCBkaXNjb3ZlcnkgaWdub3JlICItLSIg
cHJlZml4ZWQgYXJndW1lbnRzCistIGZpeCByZXN1bHRsb2cgcGx1Z2luIHdoZW4gdXNlZCBpbiBh
biBtdWx0aWNwdS9tdWx0aWhvc3QgeGRpc3Qgc2l0dWF0aW9uCisgICh0aGFua3MgSmFrdWIgR3Vz
dGFrKQorLSBwZXJmb3JtIGRpc3RyaWJ1dGVkIHRlc3RpbmcgcmVsYXRlZCByZXBvcnRpbmcgaW4g
dGhlIHhkaXN0LXBsdWdpbgorICByYXRoZXIgdGhhbiBoYXZpbmcgZGlzdC1yZWxhdGVkIGNvZGUg
aW4gdGhlIGdlbmVyaWMgcHkudGVzdAorICBkaXN0cmlidXRpb24KKy0gZml4IGhvbWVkaXIgZGV0
ZWN0aW9uIG9uIFdpbmRvd3MKKy0gc2hpcCBkaXN0cmlidXRlX3NldHVwLnB5IHZlcnNpb24gMC42
LjEzCisKK0NoYW5nZXMgYmV0d2VlbiAxLjMuMCBhbmQgMS4zLjEKKz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK05ldyBmZWF0dXJlcworKysrKysr
KysrKysrKysrKysrCisKKy0gaXNzdWU5MTogaW50cm9kdWNlIG5ldyBweS50ZXN0LnhmYWlsKHJl
YXNvbikgaGVscGVyCisgIHRvIGltcGVyYXRpdmVseSBtYXJrIGEgdGVzdCBhcyBleHBlY3RlZCB0
byBmYWlsLiBDYW4KKyAgYmUgdXNlZCBmcm9tIHdpdGhpbiBzZXR1cCBhbmQgdGVzdCBmdW5jdGlv
bnMuIFRoaXMgaXMKKyAgdXNlZnVsIGVzcGVjaWFsbHkgZm9yIHBhcmFtZXRyaXplZCB0ZXN0cyB3
aGVuIGNlcnRhaW4KKyAgY29uZmlndXJhdGlvbnMgYXJlIGV4cGVjdGVkLXRvLWZhaWwuICBJbiB0
aGlzIGNhc2UgdGhlCisgIGRlY2xhcmF0aXZlIGFwcHJvYWNoIHdpdGggdGhlIEBweS50ZXN0Lm1h
cmsueGZhaWwgY2Fubm90CisgIGJlIHVzZWQgYXMgaXQgd291bGQgbWFyayBhbGwgY29uZmlndXJh
dGlvbnMgYXMgeGZhaWwuCisKKy0gaXNzdWUxMDI6IGludHJvZHVjZSBuZXcgLS1tYXhmYWlsPU5V
TSBvcHRpb24gdG8gc3RvcAorICB0ZXN0IHJ1bnMgYWZ0ZXIgTlVNIGZhaWx1cmVzLiAgVGhpcyBp
cyBhIGdlbmVyYWxpemF0aW9uCisgIG9mIHRoZSAnLXgnIG9yICctLWV4aXRmaXJzdCcgb3B0aW9u
IHdoaWNoIGlzIG5vdyBlcXVpdmFsZW50CisgIHRvICctLW1heGZhaWw9MScuICBCb3RoICcteCcg
YW5kICctLW1heGZhaWwnIHdpbGwKKyAgbm93IGFsc28gcHJpbnQgYSBsaW5lIG5lYXIgdGhlIGVu
ZCBpbmRpY2F0aW5nIHRoZSBJbnRlcnJ1cHRpb24uCisKKy0gaXNzdWU4OTogYWxsb3cgcHkudGVz
dC5tYXJrIGRlY29yYXRvcnMgdG8gYmUgdXNlZCBvbiBjbGFzc2VzCisgIChjbGFzcyBkZWNvcmF0
b3JzIHdlcmUgaW50cm9kdWNlZCB3aXRoIHB5dGhvbjIuNikgYW5kCisgIGFsc28gYWxsb3cgdG8g
aGF2ZSBtdWx0aXBsZSBtYXJrZXJzIGFwcGxpZWQgYXQgY2xhc3MvbW9kdWxlIGxldmVsCisgIGJ5
IHNwZWNpZnlpbmcgYSBsaXN0LgorCistIGltcHJvdmUgYW5kIHJlZmluZSBsZXR0ZXIgcmVwb3J0
aW5nIGluIHRoZSBwcm9ncmVzcyBiYXI6CisgIC4gIHBhc3MKKyAgZiAgZmFpbGVkIHRlc3QKKyAg
cyAgc2tpcHBlZCB0ZXN0cyAocmVtaW5kZXI6IHVzZSBmb3IgZGVwZW5kZW5jeS9wbGF0Zm9ybSBt
aXNtYXRjaCBvbmx5KQorICB4ICB4ZmFpbGVkIHRlc3QgKHRlc3QgdGhhdCB3YXMgZXhwZWN0ZWQg
dG8gZmFpbCkKKyAgWCAgeHBhc3NlZCB0ZXN0ICh0ZXN0IHRoYXQgd2FzIGV4cGVjdGVkIHRvIGZh
aWwgYnV0IHBhc3NlZCkKKworICBZb3UgY2FuIHVzZSBhbnkgY29tYmluYXRpb24gb2YgJ2ZzeFgn
IHdpdGggdGhlICctcicgZXh0ZW5kZWQKKyAgcmVwb3J0aW5nIG9wdGlvbi4gVGhlIHhmYWlsL3hw
YXNzIHJlc3VsdHMgd2lsbCBzaG93IHVwIGFzCisgIHNraXBwZWQgdGVzdHMgaW4gdGhlIGp1bml0
eG1sIG91dHB1dCAtIHdoaWNoIGFsc28gZml4ZXMKKyAgaXNzdWU5OS4KKworLSBtYWtlIHB5LnRl
c3QuY21kbGluZS5tYWluKCkgcmV0dXJuIHRoZSBleGl0c3RhdHVzIGluc3RlYWQgb2YgcmFpc2lu
ZworICBTeXN0ZW1FeGl0IGFuZCBhbHNvIGFsbG93IGl0IHRvIGJlIGNhbGxlZCBtdWx0aXBsZSB0
aW1lcy4gIFRoaXMgb2YKKyAgY291cnNlIHJlcXVpcmVzIHRoYXQgeW91ciBhcHBsaWNhdGlvbiBh
bmQgdGVzdHMgYXJlIHByb3Blcmx5IHRlYXJlZAorICBkb3duIGFuZCBkb24ndCBoYXZlIGdsb2Jh
bCBzdGF0ZS4KKworRml4ZXMgLyBNYWludGVuYW5jZQorKysrKysrKysrKysrKysrKysrKysrKwor
CistIGltcHJvdmVkIHRyYWNlYmFjayBwcmVzZW50YXRpb246CisgIC0gaW1wcm92ZWQgYW5kIHVu
aWZpZWQgcmVwb3J0aW5nIGZvciAiLS10Yj1zaG9ydCIgb3B0aW9uCisgIC0gRXJyb3JzIGR1cmlu
ZyB0ZXN0IG1vZHVsZSBpbXBvcnRzIGFyZSBtdWNoIHNob3J0ZXIsICh1c2luZyAtLXRiPXNob3J0
IHN0eWxlKQorICAtIHJhaXNlcyBzaG93cyBzaG9ydGVyIG1vcmUgcmVsZXZhbnQgdHJhY2ViYWNr
cworICAtIC0tZnVsbHRyYWNlIG5vdyBtb3JlIHN5c3RlbWF0aWNhbGx5IG1ha2VzIHRyYWNlcyBs
b25nZXIgLyBpbmhpYml0cyBjdXR0aW5nCisKKy0gaW1wcm92ZSBzdXBwb3J0IGZvciByYWlzZXMg
YW5kIG90aGVyIGR5bmFtaWNhbGx5IGNvbXBpbGVkIGNvZGUgYnkKKyAgbWFuaXB1bGF0aW5nIHB5
dGhvbidzIGxpbmVjYWNoZS5jYWNoZSBpbnN0ZWFkIG9mIHRoZSBwcmV2aW91cworICByYXRoZXIg
aGFja3kgd2F5IG9mIGNyZWF0aW5nIGN1c3RvbSBjb2RlIG9iamVjdHMuICBUaGlzIG1ha2VzCisg
IGl0IHNlZW1sZXNzbHkgd29yayBvbiBKeXRob24gYW5kIFB5UHkgd2hlcmUgaXQgcHJldmlvdXNs
eSBkaWRuJ3QuCisKKy0gZml4IGlzc3VlOTY6IG1ha2UgY2FwdHVyaW5nIG1vcmUgcmVzaWxpZW50
IGFnYWluc3QgQ29udHJvbC1DCisgIGludGVycnVwdGlvbnMgKGludm9sdmVkIHNvbWV3aGF0IHN1
YnN0YW50aWFsIHJlZmFjdG9yaW5nCisgIHRvIHRoZSB1bmRlcmx5aW5nIGNhcHR1cmluZyBmdW5j
dGlvbmFsaXR5IHRvIGF2b2lkIHJhY2UKKyAgY29uZGl0aW9ucykuCisKKy0gZml4IGNoYWluaW5n
IG9mIGNvbmRpdGlvbmFsIHNraXBpZi94ZmFpbCBkZWNvcmF0b3JzIC0gc28gaXQgd29ya3Mgbm93
CisgIGFzIGV4cGVjdGVkIHRvIHVzZSBtdWx0aXBsZSBAcHkudGVzdC5tYXJrLnNraXBpZihjb25k
aXRpb24pIGRlY29yYXRvcnMsCisgIGluY2x1ZGluZyBzcGVjaWZpYyByZXBvcnRpbmcgd2hpY2gg
b2YgdGhlIGNvbmRpdGlvbnMgbGVhZCB0byBza2lwcGluZy4KKworLSBmaXggaXNzdWU5NTogbGF0
ZS1pbXBvcnQgemxpYiBzbyB0aGF0IGl0J3Mgbm90IHJlcXVpcmVkCisgIGZvciBnZW5lcmFsIHB5
LnRlc3Qgc3RhcnR1cC4KKworLSBmaXggaXNzdWU5NDogbWFrZSByZXBvcnRpbmcgbW9yZSByb2J1
c3QgYWdhaW5zdCBib2d1cyBzb3VyY2UgY29kZQorICAoYW5kIGludGVybmFsbHkgYmUgbW9yZSBj
YXJlZnVsIHdoZW4gcHJlc2VudGluZyB1bmV4cGVjdGVkIGJ5dGUgc2VxdWVuY2VzKQorCisKK0No
YW5nZXMgYmV0d2VlbiAxLjIuMSBhbmQgMS4zLjAKKz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0gZGVwcmVjYXRlIC0tcmVwb3J0IG9wdGlvbiBp
biBmYXZvdXIgb2YgYSBuZXcgc2hvcnRlciBhbmQgZWFzaWVyIHRvCisgIHJlbWVtYmVyIC1yIG9w
dGlvbjogaXQgdGFrZXMgYSBzdHJpbmcgYXJndW1lbnQgY29uc2lzdGluZyBvZiBhbnkKKyAgY29t
YmluYXRpb24gb2YgJ3hmc1gnIGNoYXJhY3RlcnMuICBUaGV5IHJlbGF0ZSB0byB0aGUgc2luZ2xl
IGNoYXJzCisgIHlvdSBzZWUgZHVyaW5nIHRoZSBkb3R0ZWQgcHJvZ3Jlc3MgcHJpbnRpbmcgYW5k
IHdpbGwgcHJpbnQgYW4gZXh0cmEgbGluZQorICBwZXIgdGVzdCBhdCB0aGUgZW5kIG9mIHRoZSB0
ZXN0IHJ1bi4gIFRoaXMgZXh0cmEgbGluZSBpbmRpY2F0ZXMgdGhlIGV4YWN0CisgIHBvc2l0aW9u
IG9yIHRlc3QgSUQgdGhhdCB5b3UgZGlyZWN0bHkgcGFzdGUgdG8gdGhlIHB5LnRlc3QgY21kbGlu
ZSBpbiBvcmRlcgorICB0byByZS1ydW4gYSBwYXJ0aWN1bGFyIHRlc3QuCisKKy0gYWxsb3cgZXh0
ZXJuYWwgcGx1Z2lucyB0byByZWdpc3RlciBuZXcgaG9va3MgdmlhIHRoZSBuZXcKKyAgcHl0ZXN0
X2FkZGhvb2tzKHBsdWdpbm1hbmFnZXIpIGhvb2suICBUaGUgbmV3IHJlbGVhc2Ugb2YKKyAgdGhl
IHB5dGVzdC14ZGlzdCBwbHVnaW4gZm9yIGRpc3RyaWJ1dGVkIGFuZCBsb29wb25mYWlsaW5nCisg
IHRlc3RpbmcgcmVxdWlyZXMgdGhpcyBmZWF0dXJlLgorCistIGFkZCBhIG5ldyBweXRlc3RfaWdu
b3JlX2NvbGxlY3QocGF0aCwgY29uZmlnKSBob29rIHRvIGFsbG93IHByb2plY3RzIGFuZAorICBw
bHVnaW5zIHRvIGRlZmluZSBleGNsdXNpb24gYmVoYXZpb3VyIGZvciB0aGVpciBkaXJlY3Rvcnkg
c3RydWN0dXJlIC0KKyAgZm9yIGV4YW1wbGUgeW91IG1heSBkZWZpbmUgaW4gYSBjb25mdGVzdC5w
eSB0aGlzIG1ldGhvZDo6CisKKyAgICAgICAgZGVmIHB5dGVzdF9pZ25vcmVfY29sbGVjdChwYXRo
KToKKyAgICAgICAgICAgIHJldHVybiBwYXRoLmNoZWNrKGxpbms9MSkKKworICB0byBwcmV2ZW50
IGV2ZW4gYSBjb2xsZWN0aW9uIHRyeSBvZiBhbnkgdGVzdHMgaW4gc3ltbGlua2VkIGRpcnMuCisK
Ky0gbmV3IHB5dGVzdF9weWNvbGxlY3RfbWFrZW1vZHVsZShwYXRoLCBwYXJlbnQpIGhvb2sgZm9y
CisgIGFsbG93aW5nIGN1c3RvbWl6YXRpb24gb2YgdGhlIE1vZHVsZSBjb2xsZWN0aW9uIG9iamVj
dCBmb3IgYQorICBtYXRjaGluZyB0ZXN0IG1vZHVsZS4KKworLSBleHRlbmQgYW5kIHJlZmluZSB4
ZmFpbCBtZWNoYW5pc206CisgIGBgQHB5LnRlc3QubWFyay54ZmFpbChydW49RmFsc2UpYGAgZG8g
bm90IHJ1biB0aGUgZGVjb3JhdGVkIHRlc3QKKyAgYGBAcHkudGVzdC5tYXJrLnhmYWlsKHJlYXNv
bj0iLi4uIilgYCBwcmludHMgdGhlIHJlYXNvbiBzdHJpbmcgaW4geGZhaWwgc3VtbWFyaWVzCisg
IHNwZWNpZml5aW5nIGBgLS1ydW54ZmFpbGBgIG9uIGNvbW1hbmQgbGluZSB2aXJ0dWFsbHkgaWdu
b3JlcyB4ZmFpbCBtYXJrZXJzCisKKy0gZXhwb3NlIChwcmV2aW91c2x5IGludGVybmFsKSBjb21t
b25seSB1c2VmdWwgbWV0aG9kczoKKyAgcHkuaW8uZ2V0X3Rlcm1pbmFsX3dpdGgoKSAtPiByZXR1
cm4gdGVybWluYWwgd2lkdGgKKyAgcHkuaW8uYW5zaV9wcmludCguLi4pIC0+IHByaW50IGNvbG9y
ZWQvYm9sZCB0ZXh0IG9uIGxpbnV4L3dpbjMyCisgIHB5LmlvLnNhZmVyZXByKG9iaikgLT4gcmV0
dXJuIGxpbWl0ZWQgcmVwcmVzZW50YXRpb24gc3RyaW5nCisKKy0gZXhwb3NlIHRlc3Qgb3V0Y29t
ZSByZWxhdGVkIGV4Y2VwdGlvbnMgYXMgcHkudGVzdC5za2lwLkV4Y2VwdGlvbiwKKyAgcHkudGVz
dC5yYWlzZXMuRXhjZXB0aW9uIGV0Yy4sIHVzZWZ1bCBtb3N0bHkgZm9yIHBsdWdpbnMKKyAgZG9p
bmcgc3BlY2lhbCBvdXRjb21lIGludGVycHJldGF0aW9uL3R3ZWFraW5nCisKKy0gKGlzc3VlODUp
IGZpeCBqdW5pdHhtbCBwbHVnaW4gdG8gaGFuZGxlIHRlc3RzIHdpdGggbm9uLWFzY2lpIG91dHB1
dAorCistIGZpeC9yZWZpbmUgcHl0aG9uMyBjb21wYXRpYmlsaXR5ICh0aGFua3MgQmVuamFtaW4g
UGV0ZXJzb24pCisKKy0gZml4ZXMgZm9yIG1ha2luZyB0aGUganl0aG9uL3dpbjMyIGNvbWJpbmF0
aW9uIHdvcmssIG5vdGUgaG93ZXZlcjoKKyAganl0aG9uMi41LjEvd2luMzIgZG9lcyBub3QgcHJv
dmlkZSBhIGNvbW1hbmQgbGluZSBsYXVuY2hlciwgc2VlCisgIGh0dHA6Ly9idWdzLmp5dGhvbi5v
cmcvaXNzdWUxNDkxIC4gU2VlIHB5bGliIGluc3RhbGwgZG9jdW1lbnRhdGlvbgorICBmb3IgaG93
IHRvIHdvcmsgYXJvdW5kLgorCistIGZpeGVzIGZvciBoYW5kbGluZyBvZiB1bmljb2RlIGV4Y2Vw
dGlvbiB2YWx1ZXMgYW5kIHVucHJpbnRhYmxlIG9iamVjdHMKKworLSAoaXNzdWU4NykgZml4IHVu
Ym91bmRsb2NhbCBlcnJvciBpbiBhc3NlcnRpb25vbGQgY29kZQorCistIChpc3N1ZTg2KSBpbXBy
b3ZlIGRvY3VtZW50YXRpb24gZm9yIGxvb3BvbmZhaWxpbmcKKworLSByZWZpbmUgSU8gY2FwdHVy
aW5nOiBzdGRpbi1yZWRpcmVjdCBwc2V1ZG8tZmlsZSBub3cgaGFzIGEgTk9QIGNsb3NlKCkgbWV0
aG9kCisKKy0gc2hpcCBkaXN0cmlidXRlX3NldHVwLnB5IHZlcnNpb24gMC42LjEwCisKKy0gYWRk
ZWQgbGlua3MgdG8gdGhlIG5ldyBjYXB0dXJlbG9nIGFuZCBjb3ZlcmFnZSBwbHVnaW5zCisKKwor
Q2hhbmdlcyBiZXR3ZWVuIDEuMi4xIGFuZCAxLjIuMAorPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorCistIHJlZmluZWQgdXNhZ2UgYW5kIG9wdGlvbnMgZm9yICJweS5jbGVh
bnVwIjo6CisKKyAgICBweS5jbGVhbnVwICAgICAjIHJlbW92ZSAiKi5weWMiIGFuZCAiKiRweS5j
bGFzcyIgKGp5dGhvbikgZmlsZXMKKyAgICBweS5jbGVhbnVwIC1lIC5zd3AgLWUgLmNhY2hlICMg
YWxzbyByZW1vdmUgZmlsZXMgd2l0aCB0aGVzZSBleHRlbnNpb25zCisgICAgcHkuY2xlYW51cCAt
cyAgIyByZW1vdmUgImJ1aWxkIiBhbmQgImRpc3QiIGRpcmVjdG9yeSBuZXh0IHRvIHNldHVwLnB5
IGZpbGVzCisgICAgcHkuY2xlYW51cCAtZCAgIyBhbHNvIHJlbW92ZSBlbXB0eSBkaXJlY3Rvcmll
cworICAgIHB5LmNsZWFudXAgLWEgICMgc3lub255bSBmb3IgIi1zIC1kIC1lICdwaXAtbG9nLnR4
dCciCisgICAgcHkuY2xlYW51cCAtbiAgIyBkcnkgcnVuLCBvbmx5IHNob3cgd2hhdCB3b3VsZCBi
ZSByZW1vdmVkCisKKy0gYWRkIGEgbmV3IG9wdGlvbiAicHkudGVzdCAtLWZ1bmNhcmdzIiB3aGlj
aCBzaG93cyBhdmFpbGFibGUgZnVuY2FyZ3MKKyAgYW5kIHRoZWlyIGhlbHAgc3RyaW5ncyAoZG9j
c3RyaW5ncyBvbiB0aGVpciByZXNwZWN0aXZlIGZhY3RvcnkgZnVuY3Rpb24pCisgIGZvciBhIGdp
dmVuIHRlc3QgcGF0aAorCistIGRpc3BsYXkgYSBzaG9ydCBhbmQgY29uY2lzZSB0cmFjZWJhY2sg
aWYgYSBmdW5jYXJnIGxvb2t1cCBmYWlscworCistIGVhcmx5LWxvYWQgImNvbmZ0ZXN0LnB5IiBm
aWxlcyBpbiBub24tZG90IGZpcnN0LWxldmVsIHN1YiBkaXJlY3Rvcmllcy4KKyAgYWxsb3dzIHRv
IGNvbnZlbmllbnRseSBrZWVwIGFuZCBhY2Nlc3MgdGVzdC1yZWxhdGVkIG9wdGlvbnMgaW4gYSBg
YHRlc3RgYAorICBzdWJkaXIgYW5kIHN0aWxsIGFkZCBjb21tYW5kIGxpbmUgb3B0aW9ucy4KKwor
LSBmaXggaXNzdWU2NzogbmV3IHN1cGVyLXNob3J0IHRyYWNlYmFjay1wcmludGluZyBvcHRpb246
ICItLXRiPWxpbmUiIHdpbGwgcHJpbnQgYSBzaW5nbGUgbGluZSBmb3IgZWFjaCBmYWlsaW5nIChw
eXRob24pIHRlc3QgaW5kaWNhdGluZyBpdHMgZmlsZW5hbWUsIGxpbmVubyBhbmQgdGhlIGZhaWx1
cmUgdmFsdWUKKworLSBmaXggaXNzdWU3ODogYWx3YXlzIGNhbGwgcHl0aG9uLWxldmVsIHRlYXJk
b3duIGZ1bmN0aW9ucyBldmVuIGlmIHRoZQorICBhY2NvcmRpbmcgc2V0dXAgZmFpbGVkLiAgVGhp
cyBpbmNsdWRlcyByZWZpbmVtZW50cyBmb3IgY2FsbGluZyBzZXR1cF9tb2R1bGUvY2xhc3MgZnVu
Y3Rpb25zCisgIHdoaWNoIHdpbGwgbm93IG9ubHkgYmUgY2FsbGVkIG9uY2UgaW5zdGVhZCBvZiB0
aGUgcHJldmlvdXMgYmVoYXZpb3VyIHdoZXJlIHRoZXknZCBiZSBjYWxsZWQKKyAgbXVsdGlwbGUg
dGltZXMgaWYgdGhleSByYWlzZSBhbiBleGNlcHRpb24gKGluY2x1ZGluZyBhIFNraXBwZWQgZXhj
ZXB0aW9uKS4gIEFueSBleGNlcHRpb24KKyAgd2lsbCBiZSByZS1jb3JkZWQgYW5kIGFzc29jaWF0
ZWQgd2l0aCBhbGwgdGVzdHMgaW4gdGhlIGFjY29yZGluZyBtb2R1bGUvY2xhc3Mgc2NvcGUuCisK
Ky0gZml4IGlzc3VlNjM6IGFzc3VtZSA8NDAgY29sdW1ucyB0byBiZSBhIGJvZ3VzIHRlcm1pbmFs
IHdpZHRoLCBkZWZhdWx0IHRvIDgwCisKKy0gZml4IHBkYiBkZWJ1Z2dpbmcgdG8gYmUgaW4gdGhl
IGNvcnJlY3QgZnJhbWUgb24gcmFpc2VzLXJlbGF0ZWQgZXJyb3JzCisKKy0gdXBkYXRlIGFwaXBr
Zy5weSB0byBmaXggYW4gaXNzdWUgd2hlcmUgcmVjdXJzaXZlIGltcG9ydHMgbWlnaHQKKyAgdW5u
ZWNlc3NhcmlseSBicmVhayBpbXBvcnRpbmcKKworLSBmaXggcGx1Z2luIGxpbmtzCisKK0NoYW5n
ZXMgYmV0d2VlbiAxLjIgYW5kIDEuMS4xCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CisKKy0gbW92ZWQgZGlzdC9sb29wb25mYWlsaW5nIGZyb20gcHkudGVzdCBjb3JlIGlu
dG8gYSBuZXcKKyAgc2VwYXJhdGVseSByZWxlYXNlZCBweXRlc3QteGRpc3QgcGx1Z2luLgorCist
IG5ldyBqdW5pdHhtbCBwbHVnaW46IC0tanVuaXR4bWw9cGF0aCB3aWxsIGdlbmVyYXRlIGEganVu
aXQgc3R5bGUgeG1sIGZpbGUKKyAgd2hpY2ggaXMgcHJvY2Vzc2FibGUgZS5nLiBieSB0aGUgSHVk
c29uIENJIHN5c3RlbS4KKworLSBuZXcgb3B0aW9uOiAtLWdlbnNjcmlwdD1wYXRoIHdpbGwgZ2Vu
ZXJhdGUgYSBzdGFuZGFsb25lIHB5LnRlc3Qgc2NyaXB0CisgIHdoaWNoIHdpbGwgbm90IG5lZWQg
YW55IGxpYnJhcmllcyBpbnN0YWxsZWQuICB0aGFua3MgdG8gUmFsZiBTY2htaXR0LgorCistIG5l
dyBvcHRpb246IC0taWdub3JlIHdpbGwgcHJldmVudCBzcGVjaWZpZWQgcGF0aCBmcm9tIGNvbGxl
Y3Rpb24uCisgIENhbiBiZSBzcGVjaWZpZWQgbXVsdGlwbGUgdGltZXMuCisKKy0gbmV3IG9wdGlv
bjogLS1jb25mY3V0ZGlyPWRpciB3aWxsIG1ha2UgcHkudGVzdCBvbmx5IGNvbnNpZGVyIGNvbmZ0
ZXN0CisgIGZpbGVzIHRoYXQgYXJlIHJlbGF0aXZlIHRvIHRoZSBzcGVjaWZpZWQgZGlyLgorCist
IG5ldyBmdW5jYXJnOiAicHl0ZXN0Y29uZmlnIiBpcyB0aGUgcHl0ZXN0IGNvbmZpZyBvYmplY3Qg
Zm9yIGFjY2VzcworICB0byBjb21tYW5kIGxpbmUgYXJncyBhbmQgY2FuIG5vdyBiZSBlYXNpbHkg
dXNlZCBpbiBhIHRlc3QuCisKKy0gaW5zdGFsbCAncHkudGVzdCcgYW5kIGBweS53aGljaGAgd2l0
aCBhIGBgLSRWRVJTSU9OYGAgc3VmZml4IHRvCisgIGRpc2FtYmlndWF0ZSBiZXR3ZWVuIFB5dGhv
bjMsIHB5dGhvbjIuWCwgSnl0aG9uIGFuZCBQeVB5IGluc3RhbGxlZCB2ZXJzaW9ucy4KKworLSBu
ZXcgInB5dGVzdGNvbmZpZyIgZnVuY2FyZyBhbGxvd3MgYWNjZXNzIHRvIHRlc3QgY29uZmlnIG9i
amVjdAorCistIG5ldyAicHl0ZXN0X3JlcG9ydF9oZWFkZXIiIGhvb2sgY2FuIHJldHVybiBhZGRp
dGlvbmFsIGxpbmVzCisgIHRvIGJlIGRpc3BsYXllZCBhdCB0aGUgaGVhZGVyIG9mIGEgdGVzdCBy
dW4uCisKKy0gKGV4cGVyaW1lbnRhbCkgYWxsb3cgInB5LnRlc3QgcGF0aDo6bmFtZTE6Om5hbWUy
OjouLi4iIGZvciBwb2ludGluZworICB0byBhIHRlc3Qgd2l0aGluIGEgdGVzdCBjb2xsZWN0aW9u
IGRpcmVjdGx5LiAgVGhpcyBtaWdodCBldmVudHVhbGx5CisgIGV2b2x2ZSBhcyBhIGZ1bGwgc3Vi
c3RpdHV0ZSB0byAiLWsiIHNwZWNpZmljYXRpb25zLgorCistIHN0cmVhbWxpbmVkIHBsdWdpbiBs
b2FkaW5nOiBvcmRlciBpcyBub3cgYXMgZG9jdW1lbnRlZCBpbgorICBjdXN0b21pemUuaHRtbDog
c2V0dXB0b29scywgRU5WLCBjb21tYW5kbGluZSwgY29uZnRlc3QuCisgIGFsc28gc2V0dXB0b29s
cyBlbnRyeSBwb2ludCBuYW1lcyBhcmUgdHVybmVkIHRvIGNhbm9uaWNhbCBuYW1lZXMgKCJweXRl
c3RfKiIpCisKKy0gYXV0b21hdGljYWxseSBza2lwIHRlc3RzIHRoYXQgbmVlZCAnY2FwZmQnIGJ1
dCBoYXZlIG5vIG9zLmR1cAorCistIGFsbG93IHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyB0byBiZSBk
ZWZpbmVkIGluIGNsYXNzZXMgYXMgd2VsbAorCistIGRlcHJlY2F0ZSB1c2FnZSBvZiAnZGlzYWJs
ZWQnIGF0dHJpYnV0ZSBpbiBmYXZvdXIgb2YgcHl0ZXN0bWFyaworLSBkZXByZWNhdGUgZGVmaW5p
dGlvbiBvZiBEaXJlY3RvcnksIE1vZHVsZSwgQ2xhc3MgYW5kIEZ1bmN0aW9uIG5vZGVzCisgIGlu
IGNvbmZ0ZXN0LnB5IGZpbGVzLiAgVXNlIHB5dGVzdCBjb2xsZWN0IGhvb2tzIGluc3RlYWQuCisK
Ky0gY29sbGVjdGlvbi9pdGVtIG5vZGUgc3BlY2lmaWMgcnVudGVzdC9jb2xsZWN0IGhvb2tzIGFy
ZSBvbmx5IGNhbGxlZCBleGFjdGx5CisgIG9uIG1hdGNoaW5nIGNvbmZ0ZXN0LnB5IGZpbGVzLCBp
LmUuIG9uZXMgd2hpY2ggYXJlIGV4YWN0bHkgYmVsb3cKKyAgdGhlIGZpbGVzeXN0ZW0gcGF0aCBv
ZiBhbiBpdGVtCisKKy0gY2hhbmdlOiB0aGUgZmlyc3QgcHl0ZXN0X2NvbGxlY3RfZGlyZWN0b3J5
IGhvb2sgdG8gcmV0dXJuIHNvbWV0aGluZworICB3aWxsIG5vdyBwcmV2ZW50IGZ1cnRoZXIgaG9v
a3MgdG8gYmUgY2FsbGVkLgorCistIGNoYW5nZTogZmlnbGVhZiBwbHVnaW4gbm93IHJlcXVpcmVz
IC0tZmlnbGVhZiB0byBydW4uICBBbHNvCisgIGNoYW5nZSBpdHMgbG9uZyBjb21tYW5kIGxpbmUg
b3B0aW9ucyB0byBiZSBhIGJpdCBzaG9ydGVyIChzZWUgcHkudGVzdCAtaCkuCisKKy0gY2hhbmdl
OiBweXRlc3QgZG9jdGVzdCBwbHVnaW4gaXMgbm93IGVuYWJsZWQgYnkgZGVmYXVsdCBhbmQgaGFz
IGEKKyAgbmV3IG9wdGlvbiAtLWRvY3Rlc3QtZ2xvYiB0byBzZXQgYSBwYXR0ZXJuIGZvciBmaWxl
IG1hdGNoZXMuCisKKy0gY2hhbmdlOiByZW1vdmUgaW50ZXJuYWwgcHkuXyogaGVscGVyIHZhcnMs
IG9ubHkga2VlcCBweS5fcHlkaXIKKworLSByb2J1c3RpZnkgY2FwdHVyaW5nIHRvIHN1cnZpdmUg
aWYgY3VzdG9tIHB5dGVzdF9ydW50ZXN0X3NldHVwCisgIGNvZGUgZmFpbGVkIGFuZCBwcmV2ZW50
ZWQgdGhlIGNhcHR1cmluZyBzZXR1cCBjb2RlIGZyb20gcnVubmluZy4KKworLSBtYWtlIHB5LnRl
c3QuKiBoZWxwZXJzIHByb3ZpZGVkIGJ5IGRlZmF1bHQgcGx1Z2lucyB2aXNpYmxlIGVhcmx5IC0K
KyAgd29ya3MgdHJhbnNwYXJlbnRseSBib3RoIGZvciBweWRvYyBhbmQgZm9yIGludGVyYWN0aXZl
IHNlc3Npb25zCisgIHdoaWNoIHdpbGwgcmVndWxhcmx5IHNlZSBlLmcuIHB5LnRlc3QubWFyayBh
bmQgcHkudGVzdC5pbXBvcnRvcnNraXAuCisKKy0gc2ltcGxpZnkgaW50ZXJuYWwgcGx1Z2luIG1h
bmFnZXIgbWFjaGluZXJ5CistIHNpbXBsaWZ5IGludGVybmFsIGNvbGxlY3Rpb24gdHJlZSBieSBp
bnRyb2R1Y2luZyBhIFJvb3RDb2xsZWN0b3Igbm9kZQorCistIGZpeCBhc3NlcnQgcmVpbnRlcnBy
ZWF0aW9uIHRoYXQgc2VlcyBhIGNhbGwgY29udGFpbmluZyAia2V5d29yZD0uLi4iCisKKy0gZml4
IGlzc3VlNjY6IGludm9rZSBweXRlc3Rfc2Vzc2lvbnN0YXJ0IGFuZCBweXRlc3Rfc2Vzc2lvbmZp
bmlzaAorICBob29rcyBvbiBzbGF2ZXMgZHVyaW5nIGRpc3QtdGVzdGluZywgcmVwb3J0IG1vZHVs
ZS9zZXNzaW9uIHRlYXJkb3duCisgIGhvb2tzIGNvcnJlY3RseS4KKworLSBmaXggaXNzdWU2NTog
cHJvcGVybHkgaGFuZGxlIGRpc3QtdGVzdGluZyBpZiBubworICBleGVjbmV0L3B5IGxpYiBpbnN0
YWxsZWQgcmVtb3RlbHkuCisKKy0gc2tpcCBzb21lIGluc3RhbGwtdGVzdHMgaWYgbm8gZXhlY25l
dCBpcyBhdmFpbGFibGUKKworLSBmaXggZG9jcywgZml4IGludGVybmFsIGJpbi8gc2NyaXB0IGdl
bmVyYXRpb24KKworCitDaGFuZ2VzIGJldHdlZW4gMS4xLjEgYW5kIDEuMS4wCis9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0gaW50cm9kdWNlIGF1dG9tYXRpYyBwbHVn
aW4gcmVnaXN0cmF0aW9uIHZpYSAncHl0ZXN0MTEnCisgIGVudHJ5cG9pbnRzIHZpYSBzZXR1cHRv
b2xzJyBwa2dfcmVzb3VyY2VzLml0ZXJfZW50cnlfcG9pbnRzCisKKy0gZml4IHB5LnRlc3QgZGlz
dC10ZXN0aW5nIHRvIHdvcmsgd2l0aCBleGVjbmV0ID49IDEuMC4wYjQKKworLSByZS1pbnRyb2R1
Y2UgcHkudGVzdC5jbWRsaW5lLm1haW4oKSBmb3IgYmV0dGVyIGJhY2t3YXJkIGNvbXBhdGliaWxp
dHkKKworLSBzdm4gcGF0aHM6IGZpeCBhIGJ1ZyB3aXRoIHBhdGguY2hlY2sodmVyc2lvbmVkPVRy
dWUpIGZvciBzdm4gcGF0aHMsCisgIGFsbG93ICclJyBpbiBzdm4gcGF0aHMsIG1ha2Ugc3Zud2Mu
dXBkYXRlKCkgZGVmYXVsdCB0byBpbnRlcmFjdGl2ZSBtb2RlCisgIGxpa2UgaW4gMS4wLnggYW5k
IGFkZCBzdm53Yy51cGRhdGUoaW50ZXJhY3RpdmU9RmFsc2UpIHRvIGluaGliaXQgaW50ZXJhY3Rp
b24uCisKKy0gcmVmaW5lIGRpc3RyaWJ1dGVkIHRhcmJhbGwgdG8gY29udGFpbiB0ZXN0IGFuZCBu
byBweWMgZmlsZXMKKworLSB0cnkgaGFyZGVyIHRvIGhhdmUgZGVwcmVjYXRpb24gd2FybmluZ3Mg
Zm9yIHB5LmNvbXBhdC4qIGFjY2Vzc2VzCisgIHJlcG9ydCBhIGNvcnJlY3QgbG9jYXRpb24KKwor
Q2hhbmdlcyBiZXR3ZWVuIDEuMS4wIGFuZCAxLjAuMgorPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorCisqIGFkanVzdCBhbmQgaW1wcm92ZSBkb2NzCisKKyogcmVtb3ZlIHB5
LnJlc3QgdG9vbCBhbmQgaW50ZXJuYWwgbmFtZXNwYWNlIC0gaXQgd2FzCisgIG5ldmVyIHJlYWxs
eSBhZHZlcnRpc2VkIGFuZCBjYW4gc3RpbGwgYmUgdXNlZCB3aXRoCisgIHRoZSBvbGQgcmVsZWFz
ZSBpZiBuZWVkZWQuICBJZiB0aGVyZSBpcyBpbnRlcmVzdAorICBpdCBjb3VsZCBiZSByZXZpdmVk
IGludG8gaXRzIG93biB0b29sIGkgZ3Vlc3MuCisKKyogZml4IGlzc3VlNDggYW5kIGlzc3VlNTk6
IHJhaXNlIGFuIEVycm9yIGlmIHRoZSBtb2R1bGUKKyAgZnJvbSBhbiBpbXBvcnRlZCB0ZXN0IGZp
bGUgZG9lcyBub3Qgc2VlbSB0byBjb21lIGZyb20KKyAgdGhlIGZpbGVwYXRoIC0gYXZvaWRzICJz
YW1lLW5hbWUiIGNvbmZ1c2lvbiB0aGF0IGhhcworICBiZWVuIHJlcG9ydGVkIHJlcGVhdGVkbHkK
KworKiBtZXJnZWQgUm9ubnkncyBub3NlLWNvbXBhdGliaWxpdHkgaGFja3M6IG5vdworICBub3Nl
LXN0eWxlIHNldHVwX21vZHVsZSgpIGFuZCBzZXR1cCgpIGZ1bmN0aW9ucyBhcmUKKyAgc3VwcG9y
dGVkCisKKyogaW50cm9kdWNlIGdlbmVyYWxpemVkIHB5LnRlc3QubWFyayBmdW5jdGlvbiBtYXJr
aW5nCisKKyogcmVzaHVmZmxlIC8gcmVmaW5lIGNvbW1hbmQgbGluZSBncm91cGluZworCisqIGRl
cHJlY2F0ZSBwYXJzZXIuYWRkZ3JvdXAgaW4gZmF2b3VyIG9mIGdldGdyb3VwIHdoaWNoIGNyZWF0
ZXMgb3B0aW9uIGdyb3VwCisKKyogYWRkIC0tcmVwb3J0IGNvbW1hbmQgbGluZSBvcHRpb24gdGhh
dCBhbGxvd3MgdG8gY29udHJvbCBzaG93aW5nIG9mIHNraXBwZWQveGZhaWxlZCBzZWN0aW9ucwor
CisqIGdlbmVyYWxpemVkIHNraXBwaW5nOiBhIG5ldyB3YXkgdG8gbWFyayBweXRob24gZnVuY3Rp
b25zIHdpdGggc2tpcGlmIG9yIHhmYWlsCisgIGF0IGZ1bmN0aW9uLCBjbGFzcyBhbmQgbW9kdWxl
cyBsZXZlbCBiYXNlZCBvbiBwbGF0Zm9ybSBvciBzeXMtbW9kdWxlIGF0dHJpYnV0ZXMuCisKKyog
ZXh0ZW5kIHB5LnRlc3QubWFyayBkZWNvcmF0b3IgdG8gYWxsb3cgZm9yIHBvc2l0aW9uYWwgYXJn
cworCisqIGludHJvZHVjZSBhbmQgdGVzdCAicHkuY2xlYW51cCAtZCIgdG8gcmVtb3ZlIGVtcHR5
IGRpcmVjdG9yaWVzCisKKyogZml4IGlzc3VlICM1OSAtIHJvYnVzdGlmeSB1bml0dGVzdCB0ZXN0
IGNvbGxlY3Rpb24KKworKiBtYWtlIGJweXRob24vaGVscCBpbnRlcmFjdGlvbiB3b3JrIGJ5IGFk
ZGluZyBhbiBfX2FsbF9fIGF0dHJpYnV0ZQorICB0byBBcGlNb2R1bGUsIGNsZWFudXAgaW5pdHBr
ZworCisqIHVzZSBNSVQgbGljZW5zZSBmb3IgcHlsaWIsIGFkZCBzb21lIGNvbnRyaWJ1dG9ycwor
CisqIHJlbW92ZSBweS5leGVjbmV0IGNvZGUgYW5kIHN1YnN0aXR1dGUgYWxsIHVzYWdlcyB3aXRo
ICdleGVjbmV0JyBwcm9wZXIKKworKiBmaXggaXNzdWU1MCAtIGNhY2hlZF9zZXR1cCBub3cgY2Fj
aGVzIG1vcmUgdG8gZXhwZWN0YXRpb25zCisgIGZvciB0ZXN0IGZ1bmN0aW9ucyB3aXRoIG11bHRp
cGxlIGFyZ3VtZW50cy4KKworKiBtZXJnZSBKYXJrbydzIGZpeGVzLCBpc3N1ZSAjNDUgYW5kICM0
NgorCisqIGFkZCB0aGUgYWJpbGl0eSB0byBzcGVjaWZ5IGEgcGF0aCBmb3IgcHkubG9va3VwIHRv
IHNlYXJjaCBpbgorCisqIGZpeCBhIGZ1bmNhcmcgY2FjaGVkX3NldHVwIGJ1ZyBwcm9iYWJseSBv
bmx5IG9jY3VyaW5nCisgIGluIGRpc3RyaWJ1dGVkIHRlc3RpbmcgYW5kICJtb2R1bGUiIHNjb3Bl
IHdpdGggdGVhcmRvd24uCisKKyogbWFueSBmaXhlcyBhbmQgY2hhbmdlcyBmb3IgbWFraW5nIHRo
ZSBjb2RlIGJhc2UgcHl0aG9uMyBjb21wYXRpYmxlLAorICBtYW55IHRoYW5rcyB0byBCZW5qYW1p
biBQZXRlcnNvbiBmb3IgaGVscGluZyB3aXRoIHRoaXMuCisKKyogY29uc29saWRhdGUgYnVpbHRp
bnMgaW1wbGVtZW50YXRpb24gdG8gYmUgY29tcGF0aWJsZSB3aXRoID49Mi4zLAorICBhZGQgaGVs
cGVycyB0byBlYXNlIGtlZXBpbmcgMiBhbmQgM2sgY29tcGF0aWJsZSBjb2RlCisKKyogZGVwcmVj
YXRlIHB5LmNvbXBhdC5kb2N0ZXN0fHN1YnByb2Nlc3N8dGV4dHdyYXB8b3B0cGFyc2UKKworKiBk
ZXByZWNhdGUgcHkubWFnaWMuYXV0b3BhdGgsIHJlbW92ZSBweS9tYWdpYyBkaXJlY3RvcnkKKwor
KiBtb3ZlIHB5dGVzdCBhc3NlcnRpb24gaGFuZGxpbmcgdG8gcHkvY29kZSBhbmQgYSBweXRlc3Rf
YXNzZXJ0aW9uCisgIHBsdWdpbiwgYWRkICItLW5vLWFzc2VydCIgb3B0aW9uLCBkZXByZWNhdGUg
cHkubWFnaWMgbmFtZXNwYWNlcworICBpbiBmYXZvdXIgb2YgKGxlc3MpIHB5LmNvZGUgb25lcy4K
KworKiBjb25zb2xpZGF0ZSBhbmQgY2xlYW51cCBweS9jb2RlIGNsYXNzZXMgYW5kIGZpbGVzCisK
KyogY2xlYW51cCBweS9taXNjLCBtb3ZlIHRlc3RzIHRvIGJpbi1mb3ItZGlzdAorCisqIGludHJv
ZHVjZSBkZWxhdHRyL2RlbGl0ZW0vZGVsZW52IG1ldGhvZHMgdG8gcHkudGVzdCdzIG1vbmtleXBh
dGNoIGZ1bmNhcmcKKworKiBjb25zb2xpZGF0ZSBweS5sb2cgaW1wbGVtZW50YXRpb24sIHJlbW92
ZSBvbGQgYXBwcm9hY2guCisKKyogaW50cm9kdWNlIHB5LmlvLlRleHRJTyBhbmQgcHkuaW8uQnl0
ZXNJTyBmb3IgZGlzdGluZ3Vpc2hpbmcgYmV0d2VlbgorICB0ZXh0L3VuaWNvZGUgYW5kIGJ5dGUt
c3RyZWFtcyAodXNlcyB1bmRlcmx5aW5nIHN0YW5kYXJkIGxpYiBpby4qCisgIGlmIGF2YWlsYWJs
ZSkKKworKiBtYWtlIHB5LnVuaXR0ZXN0X2NvbnZlcnQgaGVscGVyIHNjcmlwdCBhdmFpbGFibGUg
d2hpY2ggY29udmVydHMgInVuaXR0ZXN0LnB5IgorICBzdHlsZSBmaWxlcyBpbnRvIHRoZSBzaW1w
bGVyIGFzc2VydC9kaXJlY3QtdGVzdC1jbGFzc2VzIHB5LnRlc3Qvbm9zZXRlc3RzCisgIHN0eWxl
LiAgVGhlIHNjcmlwdCB3YXMgd3JpdHRlbiBieSBMYXVyYSBDcmVpZ2h0b24uCisKKyogc2ltcGxp
ZmllZCBpbnRlcm5hbCBsb2NhbHBhdGggaW1wbGVtZW50YXRpb24KKworQ2hhbmdlcyBiZXR3ZWVu
IDEuMC4xIGFuZCAxLjAuMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor
CisqIGZpeGluZyBwYWNrYWdpbmcgaXNzdWVzLCB0cmlnZ2VyZWQgYnkgZmVkb3JhIHJlZGhhdCBw
YWNrYWdpbmcsCisgIGFsc28gYWRkZWQgZG9jLCBleGFtcGxlcyBhbmQgY29udHJpYiBkaXJzIHRv
IHRoZSB0YXJiYWxsLgorCisqIGFkZGVkIGEgZG9jdW1lbnRhdGlvbiBsaW5rIHRvIHRoZSBuZXcg
ZGphbmdvIHBsdWdpbi4KKworQ2hhbmdlcyBiZXR3ZWVuIDEuMC4wIGFuZCAxLjAuMQorPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisqIGFkZGVkIGEgJ3B5dGVzdF9ub3Nl
JyBwbHVnaW4gd2hpY2ggaGFuZGxlcyBub3NlLlNraXBUZXN0LAorICBub3NlLXN0eWxlIGZ1bmN0
aW9uL21ldGhvZC9nZW5lcmF0b3Igc2V0dXAvdGVhcmRvd24gYW5kCisgIHRyaWVzIHRvIHJlcG9y
dCBmdW5jdGlvbnMgY29ycmVjdGx5LgorCisqIGNhcHR1cmluZyBvZiB1bmljb2RlIHdyaXRlcyBv
ciBlbmNvZGVkIHN0cmluZ3MgdG8gc3lzLnN0ZG91dC9lcnIKKyAgd29yayBiZXR0ZXIsIGFsc28g
dGVybWluYWx3cml0aW5nIHdhcyBhZGFwdGVkIGFuZCBzb21ld2hhdAorICB1bmlmaWVkIGJldHdl
ZW4gd2luZG93cyBhbmQgbGludXguCisKKyogaW1wcm92ZWQgZG9jdW1lbnRhdGlvbiBsYXlvdXQg
YW5kIGNvbnRlbnQgYSBsb3QKKworKiBhZGRlZCBhICItLWhlbHAtY29uZmlnIiBvcHRpb24gdG8g
c2hvdyBjb25mdGVzdC5weSAvIEVOVi12YXIgbmFtZXMgZm9yCisgIGFsbCBsb25nb3B0IGNtZGxp
bmUgb3B0aW9ucywgYW5kIHNvbWUgc3BlY2lhbCBjb25mdGVzdC5weSB2YXJpYWJsZXMuCisgIHJl
bmFtZWQgJ2NvbmZfY2FwdHVyZScgY29uZnRlc3Qgc2V0dGluZyB0byAnb3B0aW9uX2NhcHR1cmUn
IGFjY29yZGluZ2x5LgorCisqIGZpeCBpc3N1ZSAjMjc6IGJldHRlciByZXBvcnRpbmcgb24gbm9u
LWNvbGxlY3RhYmxlIGl0ZW1zIGdpdmVuIG9uIGNvbW1hbmRsaW5lCisgIChlLmcuIHB5YyBmaWxl
cykKKworKiBmaXggaXNzdWUgIzMzOiBhZGRlZCAtLXZlcnNpb24gZmxhZyAodGhhbmtzIEJlbmph
bWluIFBldGVyc29uKQorCisqIGZpeCBpc3N1ZSAjMzI6IGFkZGluZyBzdXBwb3J0IGZvciAiaW5j
b21wbGV0ZSIgcGF0aHMgdG8gd2NwYXRoLnN0YXR1cygpCisKKyogIlRlc3QiIHByZWZpeGVkIGNs
YXNzZXMgYXJlICpub3QqIGNvbGxlY3RlZCBieSBkZWZhdWx0IGFueW1vcmUgaWYgdGhleQorICBo
YXZlIGFuIF9faW5pdF9fIG1ldGhvZAorCisqIG1vbmtleXBhdGNoIHNldGVudigpIG5vdyBhY2Nl
cHRzIGEgInByZXBlbmQiIHBhcmFtZXRlcgorCisqIGltcHJvdmVkIHJlcG9ydGluZyBvZiBjb2xs
ZWN0aW9uIGVycm9yIHRyYWNlYmFja3MKKworKiBzaW1wbGlmaWVkIG11bHRpY2FsbCBtZWNoYW5p
c20gYW5kIHBsdWdpbiBhcmNoaXRlY3R1cmUsCisgIHJlbmFtZWQgc29tZSBpbnRlcm5hbCBtZXRo
b2RzIGFuZCBhcmduYW1lcworCitDaGFuZ2VzIGJldHdlZW4gMS4wLjBiOSBhbmQgMS4wLjAKKz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworKiBtb3JlIHRlcnNlIHJlcG9y
dGluZyB0cnkgdG8gc2hvdyBmaWxlc3lzdGVtIHBhdGggcmVsYXRpdmVseSB0byBjdXJyZW50IGRp
cgorKiBpbXByb3ZlIHhmYWlsIG91dHB1dCBhIGJpdAorCitDaGFuZ2VzIGJldHdlZW4gMS4wLjBi
OCBhbmQgMS4wLjBiOQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisq
IGNsZWFubHkgaGFuZGxlIGFuZCByZXBvcnQgZmluYWwgdGVhcmRvd24gb2YgdGVzdCBzZXR1cAor
CisqIGZpeCBzdm4tMS42IGNvbXBhdCBpc3N1ZSB3aXRoIHB5LnBhdGguc3Zud2MoKS52ZXJzaW9u
ZWQoKQorICAodGhhbmtzIFdvdXRlciBWYW5kZW4gSG92ZSkKKworKiBzZXR1cC90ZWFyZG93biBv
ciBjb2xsZWN0aW9uIHByb2JsZW1zIG5vdyBzaG93IGFzIEVSUk9ScworICBvciB3aXRoIGJpZyAi
RSIncyBpbiB0aGUgcHJvZ3Jlc3MgbGluZXMuICB0aGV5IGFyZSByZXBvcnRlZAorICBhbmQgY291
bnRlZCBzZXBhcmF0ZWx5LgorCisqIGRpc3QtdGVzdGluZzogcHJvcGVybHkgaGFuZGxlIHRlc3Qg
aXRlbXMgdGhhdCBnZXQgbG9jYWxseQorICBjb2xsZWN0ZWQgYnV0IGNhbm5vdCBiZSBjb2xsZWN0
ZWQgb24gdGhlIHJlbW90ZSBzaWRlIC0gb2Z0ZW4KKyAgZHVlIHRvIHBsYXRmb3JtL2RlcGVuZGVu
Y3kgcmVhc29ucworCisqIHNpbXBsaWZpZWQgcHkudGVzdC5tYXJrIEFQSSAtIHNlZSBrZXl3b3Jk
IHBsdWdpbiBkb2N1bWVudGF0aW9uCisKKyogaW50ZWdyYXRlIGJldHRlciB3aXRoIGxvZ2dpbmc6
IGNhcHR1cmluZyBub3cgYnkgZGVmYXVsdCBjYXB0dXJlcworICB0ZXN0IGZ1bmN0aW9ucyBhbmQg
dGhlaXIgaW1tZWRpYXRlIHNldHVwL3RlYXJkb3duIGluIGEgc2luZ2xlIHN0cmVhbQorCisqIGNh
cHN5cyBhbmQgY2FwZmQgZnVuY2FyZ3Mgbm93IGhhdmUgYSByZWFkb3V0ZXJyKCkgYW5kIGEgY2xv
c2UoKSBtZXRob2QKKyAgKHVuZGVybHlpbmdseSBweS5pby5TdGRDYXB0dXJlL0ZEIG9iamVjdHMg
YXJlIHVzZWQgd2hpY2ggZ3JldyBhCisgIHJlYWRvdXRlcnIoKSBtZXRob2QgYXMgd2VsbCB0byBy
ZXR1cm4gc25hcHNob3RzIG9mIGNhcHR1cmVkIG91dC9lcnIpCisKKyogbWFrZSBhc3NlcnQtcmVp
bnRlcnByZXRhdGlvbiB3b3JrIGJldHRlciB3aXRoIGNvbXBhcmlzb25zIG5vdAorICByZXR1cm5p
bmcgYm9vbHMgKHJlcG9ydGVkIHdpdGggbnVtcHkgZnJvbSB0aGFua3MgbWFjaWVqIGZpamFsa293
c2tpKQorCisqIHJld29ya2VkIHBlci10ZXN0IG91dHB1dCBjYXB0dXJpbmcgaW50byB0aGUgcHl0
ZXN0X2lvY2FwdHVyZS5weSBwbHVnaW4KKyAgYW5kIHRodXMgcmVtb3ZlZCBjYXB0dXJpbmcgY29k
ZSBmcm9tIGNvbmZpZyBvYmplY3QKKworKiBpdGVtLnJlcHJfZmFpbHVyZShleGNpbmZvKSBpbnN0
ZWFkIG9mIGl0ZW0ucmVwcl9mYWlsdXJlKGV4Y2luZm8sIG91dGVycikKKworCitDaGFuZ2VzIGJl
dHdlZW4gMS4wLjBiNyBhbmQgMS4wLjBiOAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorCisqIHB5dGVzdF91bml0dGVzdC1wbHVnaW4gaXMgbm93IGVuYWJsZWQgYnkgZGVm
YXVsdAorCisqIGludHJvZHVjZWQgcHl0ZXN0X2tleWJvYXJkaW50ZXJydXB0IGhvb2sgYW5kCisg
IHJlZmluZWQgcHl0ZXN0X3Nlc3Npb25maW5pc2ggaG9va2VkLCBhZGRlZCB0ZXN0cy4KKworKiB3
b3JrYXJvdW5kIGEgYnVnZ3kgbG9nZ2luZyBtb2R1bGUgaW50ZXJhY3Rpb24gKCJjbG9zaW5nIGFs
cmVhZHkgY2xvc2VkCisgIGZpbGVzIikuICBUaGFua3MgdG8gU3JpZGhhciBSYXRuYWt1bWFyIGZv
ciB0cmlnZ2VyaW5nLgorCisqIGlmIHBsdWdpbnMgdXNlICJweS50ZXN0LmltcG9ydG9yc2tpcCIg
Zm9yIGltcG9ydGluZworICBhIGRlcGVuZGVuY3kgb25seSBhIHdhcm5pbmcgd2lsbCBiZSBpc3N1
ZWQgaW5zdGVhZAorICBvZiBleGl0aW5nIHRoZSB0ZXN0aW5nIHByb2Nlc3MuCisKKyogbWFueSBp
bXByb3ZlbWVudHMgdG8gZG9jczoKKyAgLSByZWZpbmVkIGZ1bmNhcmdzIGRvYyAsIHVzZSB0aGUg
dGVybSAiZmFjdG9yeSIgaW5zdGVhZCBvZiAicHJvdmlkZXIiCisgIC0gYWRkZWQgYSBuZXcgdGFs
ay90dXRvcmlhbCBkb2MgcGFnZQorICAtIGJldHRlciBkb3dubG9hZCBwYWdlCisgIC0gYmV0dGVy
IHBsdWdpbiBkb2NzdHJpbmdzCisgIC0gYWRkZWQgbmV3IHBsdWdpbnMgcGFnZSBhbmQgYXV0b21h
dGljIGRvYyBnZW5lcmF0aW9uIHNjcmlwdAorCisqIGZpeGVkIHRlYXJkb3duIHByb2JsZW0gcmVs
YXRlZCB0byBwYXJ0aWFsbHkgZmFpbGluZyBmdW5jYXJnIHNldHVwcworICAodGhhbmtzIE1yVG9w
ZiBmb3IgcmVwb3J0aW5nKSwgInB5dGVzdF9ydW50ZXN0X3RlYXJkb3duIiBpcyBub3cKKyAgYWx3
YXlzIGludm9rZWQgZXZlbiBpZiB0aGUgInB5dGVzdF9ydW50ZXN0X3NldHVwIiBmYWlsZWQuCisK
KyogdHdlYWtlZCBkb2N0ZXN0IG91dHB1dCBmb3IgZG9jc3RyaW5ncyBpbiBweSBtb2R1bGVzLAor
ICB0aGFua3MgUmFkb21pci4KKworQ2hhbmdlcyBiZXR3ZWVuIDEuMC4wYjMgYW5kIDEuMC4wYjcK
Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisqIHJlbmFt
ZWQgcHkudGVzdC54ZmFpbCBiYWNrIHRvIHB5LnRlc3QubWFyay54ZmFpbCB0byBhdm9pZAorICB0
d28gd2F5cyB0byBkZWNvcmF0ZSBmb3IgeGZhaWwKKworKiByZS1hZGRlZCBweS50ZXN0Lm1hcmsg
ZGVjb3JhdG9yIGZvciBzZXR0aW5nIGtleXdvcmRzIG9uIGZ1bmN0aW9ucworICAoaXQgd2FzIGFj
dHVhbGx5IGRvY3VtZW50ZWQgc28gcmVtb3ZpbmcgaXQgd2FzIG5vdCBuaWNlKQorCisqIHJlbW92
ZSBzY29wZS1hcmd1bWVudCBmcm9tIHJlcXVlc3QuYWRkZmluYWxpemVyKCkgYmVjYXVzZQorICBy
ZXF1ZXN0LmNhY2hlZF9zZXR1cCBoYXMgdGhlIHNjb3BlIGFyZy4gVE9PV1RESS4KKworKiBwZXJm
b3JtIHNldHVwIGZpbmFsaXphdGlvbiBiZWZvcmUgcmVwb3J0aW5nIGZhaWx1cmVzCisKKyogYXBw
bHkgbW9kaWZpZWQgcGF0Y2hlcyBmcm9tIEFuZHJlYXMgS2xvZWNrbmVyIHRvIGFsbG93CisgIHRl
c3QgZnVuY3Rpb25zIHRvIGhhdmUgbm8gZnVuY19jb2RlICgjMjIpIGFuZCB0byBtYWtlCisgICIt
ayIgYW5kIGZ1bmN0aW9uIGtleXdvcmRzIHdvcmsgICgjMjApCisKKyogYXBwbHkgcGF0Y2ggZnJv
bSBEYW5pZWwgUGVvbHpsZWl0aG5lciAoaXNzdWUgIzIzKQorCisqIHJlc29sdmUgaXNzdWUgIzE4
LCBtdWx0aXByb2Nlc3NpbmcuTWFuYWdlcigpIGFuZAorICByZWRpcmVjdGlvbiBjbGFzaAorCisq
IG1ha2UgX19uYW1lX18gPT0gIl9fY2hhbm5lbGV4ZWNfXyIgZm9yIHJlbW90ZV9leGVjIGNvZGUK
KworQ2hhbmdlcyBiZXR3ZWVuIDEuMC4wYjEgYW5kIDEuMC4wYjMKKz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisqIHBsdWdpbiBjbGFzc2VzIGFyZSByZW1v
dmVkOiBvbmUgbm93IGRlZmluZXMKKyAgaG9va3MgZGlyZWN0bHkgaW4gY29uZnRlc3QucHkgb3Ig
Z2xvYmFsIHB5dGVzdF8qLnB5CisgIGZpbGVzLgorCisqIGFkZGVkIG5ldyBweXRlc3RfbmFtZXNw
YWNlKGNvbmZpZykgaG9vayB0aGF0IGFsbG93cworICB0byBpbmplY3QgaGVscGVycyBkaXJlY3Rs
eSB0byB0aGUgcHkudGVzdC4qIG5hbWVzcGFjZS4KKworKiBkb2N1bWVudGVkIGFuZCByZWZpbmVk
IG1hbnkgaG9va3MKKworKiBhZGRlZCBuZXcgc3R5bGUgb2YgZ2VuZXJhdGl2ZSB0ZXN0cyB2aWEK
KyAgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzIGhvb2sgdGhhdCBpbnRlZ3JhdGVzCisgIHdlbGwgd2l0
aCBmdW5jdGlvbiBhcmd1bWVudHMuCisKKworQ2hhbmdlcyBiZXR3ZWVuIDAuOS4yIGFuZCAxLjAu
MGIxCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworKiBp
bnRyb2R1Y2VkIG5ldyAiZnVuY2FyZyIgc2V0dXAgbWV0aG9kLAorICBzZWUgZG9jL3Rlc3QvZnVu
Y2FyZy50eHQKKworKiBpbnRyb2R1Y2VkIHBsdWdpbiBhcmNoaXRlY3V0dXJlIGFuZCBtYW55Cisg
IG5ldyBweS50ZXN0IHBsdWdpbnMsIHNlZQorICBkb2MvdGVzdC9wbHVnaW5zLnR4dAorCisqIHRl
YXJkb3duX21ldGhvZCBpcyBub3cgZ3VhcmFudGVlZCB0byBnZXQKKyAgY2FsbGVkIGFmdGVyIGEg
dGVzdCBtZXRob2QgaGFzIHJ1bi4KKworKiBuZXcgbWV0aG9kOiBweS50ZXN0LmltcG9ydG9yc2tp
cChtb2QsbWludmVyc2lvbikKKyAgd2lsbCBlaXRoZXIgaW1wb3J0IG9yIGNhbGwgcHkudGVzdC5z
a2lwKCkKKworKiBjb21wbGV0ZWx5IHJldmlzZWQgaW50ZXJuYWwgcHkudGVzdCBhcmNoaXRlY3R1
cmUKKworKiBuZXcgcHkucHJvY2Vzcy5Gb3JrZWRGdW5jIG9iamVjdCBhbGxvd2luZyB0bworICBm
b3JrIGV4ZWN1dGlvbiBvZiBhIGZ1bmN0aW9uIHRvIGEgc3ViIHByb2Nlc3MKKyAgYW5kIGdldHRp
bmcgYSByZXN1bHQgYmFjay4KKworWFhYIGxvdHMgb2YgdGhpbmdzIG1pc3NpbmcgaGVyZSBYWFgK
KworQ2hhbmdlcyBiZXR3ZWVuIDAuOS4xIGFuZCAwLjkuMgorPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQorCisqIHJlZmluZWQgaW5zdGFsbGF0aW9uIGFuZCBtZXRhZGF0YSwgY3JlYXRl
ZCBuZXcgc2V0dXAucHksCisgIG5vdyBiYXNlZCBvbiBzZXR1cHRvb2xzL2V6X3NldHVwICh0aGFu
a3MgdG8gUmFsZiBTY2htaXR0CisgIGZvciBoaXMgc3VwcG9ydCkuCisKKyogaW1wcm92ZWQgdGhl
IHdheSBvZiBtYWtpbmcgcHkuKiBzY3JpcHRzIGF2YWlsYWJsZSBpbgorICB3aW5kb3dzIGVudmly
b25tZW50cywgdGhleSBhcmUgbm93IGFkZGVkIHRvIHRoZQorICBTY3JpcHRzIGRpcmVjdG9yeSBh
cyAiLmNtZCIgZmlsZXMuCisKKyogcHkucGF0aC5zdm53Yy5zdGF0dXMoKSBub3cgaXMgbW9yZSBj
b21wbGV0ZSBhbmQKKyAgdXNlcyB4bWwgb3V0cHV0IGZyb20gdGhlICdzdm4nIGNvbW1hbmQgaWYg
YXZhaWxhYmxlCisgIChHdWlkbyBXZXNkb3JwKQorCisqIGZpeCBmb3IgcHkucGF0aC5zdm4qIHRv
IHdvcmsgd2l0aCBzdm4gMS41CisgIChDaHJpcyBMYW1iKQorCisqIGZpeCBwYXRoLnJlbHRvKG90
aGVycGF0aCkgbWV0aG9kIG9uIHdpbmRvd3MgdG8KKyAgdXNlIG5vcm1jYXNlIGZvciBjaGVja2lu
ZyBpZiBhIHBhdGggaXMgcmVsYXRpdmUuCisKKyogcHkudGVzdCdzIHRyYWNlYmFjayBpcyBiZXR0
ZXIgcGFyc2VhYmxlIGZyb20gZWRpdG9ycworICAoZm9sbG93cyB0aGUgZmlsZW5hbWVzOkxJTkVO
TzogTVNHIGNvbnZlbnRpb24pCisgICh0aGFua3MgdG8gT3NtbyBTYWxvbWFhKQorCisqIGZpeCB0
byBqYXZhc2NyaXB0LWdlbmVyYXRpb24sICJweS50ZXN0IC0tcnVuYnJvd3NlciIKKyAgc2hvdWxk
IHdvcmsgbW9yZSByZWxpYWJseSBub3cKKworKiByZW1vdmVkIHByZXZpb3VzbHkgYWNjaWRlbnRh
bGx5IGFkZGVkCisgIHB5LnRlc3QuYnJva2VuIGFuZCBweS50ZXN0Lm5vdGltcGxlbWVudGVkIGhl
bHBlcnMuCisKKyogdGhlcmUgbm93IGlzIGEgcHkuX192ZXJzaW9uX18gYXR0cmlidXRlCisKK0No
YW5nZXMgYmV0d2VlbiAwLjkuMCBhbmQgMC45LjEKKz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKworVGhpcyBpcyBhIGZhaXJseSBjb21wbGV0ZSBsaXN0IG9mIGNoYW5nZXMgYmV0d2Vl
biAwLjkgYW5kIDAuOS4xLCB3aGljaCBjYW4KK3NlcnZlIGFzIGEgcmVmZXJlbmNlIGZvciBkZXZl
bG9wZXJzLgorCisqIGFsbG93aW5nICsgc2lnbnMgaW4gcHkucGF0aC5zdm4gdXJscyBbMzkxMDZd
CisqIGZpeGVkIHN1cHBvcnQgZm9yIEZhaWxlZCBleGNlcHRpb25zIHdpdGhvdXQgZXhjaW5mbyBp
biBweS50ZXN0IFszOTM0MF0KKyogYWRkZWQgc3VwcG9ydCBmb3Iga2lsbGluZyBwcm9jZXNzZXMg
Zm9yIFdpbmRvd3MgKGFzIHdlbGwgYXMgcGxhdGZvcm1zIHRoYXQKKyAgc3VwcG9ydCBvcy5raWxs
KSBpbiBweS5taXNjLmtpbGxwcm9jIFszOTY1NV0KKyogYWRkZWQgc2V0dXAvdGVhcmRvd24gZm9y
IGdlbmVyYXRpdmUgdGVzdHMgdG8gcHkudGVzdCBbNDA3MDJdCisqIGFkZGVkIGRldGVjdGlvbiBv
ZiBGQUlMRUQgVE8gTE9BRCBNT0RVTEUgdG8gcHkudGVzdCBbNDA3MDMsIDQwNzM4LCA0MDczOV0K
KyogZml4ZWQgcHJvYmxlbSB3aXRoIGNhbGxpbmcgLnJlbW92ZSgpIG9uIHdjcGF0aHMgb2Ygbm9u
LXZlcnNpb25lZCBmaWxlcyBpbgorICBweS5wYXRoIFs0NDI0OF0KKyogZml4ZWQgc29tZSBpbXBv
cnQgYW5kIGluaGVyaXRhbmNlIGlzc3VlcyBpbiBweS50ZXN0IFs0MTQ4MCwgNDQ2NDgsIDQ0NjU1
XQorKiBmYWlsIHRvIHJ1biBncmVlbmxldCB0ZXN0cyB3aGVuIHB5cHkgaXMgYXZhaWxhYmxlLCBi
dXQgd2l0aG91dCBzdGFja2xlc3MKKyAgWzQ1Mjk0XQorKiBzbWFsbCBmaXhlcyBpbiByc2Vzc2lv
biB0ZXN0cyBbNDUyOTVdCisqIGZpeGVkIGlzc3VlIHdpdGggMi41IHR5cGUgcmVwcmVzZW50YXRp
b25zIGluIHB5LnRlc3QgWzQ1NDgzLCA0NTQ4NF0KKyogbWFkZSB0aGF0IGludGVybmFsIHJlcG9y
dGluZyBpc3N1ZXMgZGlzcGxheWluZyBpcyBkb25lIGF0b21pY2FsbHkgaW4gcHkudGVzdAorICBb
NDU1MThdCisqIG1hZGUgdGhhdCBub24tZXhpc3RpbmcgZmlsZXMgYXJlIGlnb3JlZCBieSB0aGUg
cHkubG9va3VwIHNjcmlwdCBbNDU1MTldCisqIGltcHJvdmVkIGV4Y2VwdGlvbiBuYW1lIGNyZWF0
aW9uIGluIHB5LnRlc3QgWzQ1NTM1XQorKiBtYWRlIHRoYXQgbGVzcyB0aHJlYWRzIGFyZSB1c2Vk
IGluIGV4ZWNuZXQgW21lcmdlIGluIDQ1NTM5XQorKiByZW1vdmVkIGxvY2sgcmVxdWlyZWQgZm9y
IGF0b21pY2FsIHJlcG9ydGluZyBpc3N1ZSBkaXNwbGF5aW5nIGluIHB5LnRlc3QKKyAgWzQ1NTQ1
XQorKiByZW1vdmVkIGdsb2JhbHMgZnJvbSBleGVjbmV0IFs0NTU0MSwgNDU1NDddCisqIHJlZmFj
dG9yZWQgY2xlYW51cCBtZWNoYW5pY3MsIG1hZGUgdGhhdCBzZXREYWVtb24gaXMgc2V0IHRvIDEg
dG8gbWFrZSBhdGV4aXQKKyAgZ2V0IGNhbGxlZCBpbiAyLjUgKHB5LmV4ZWNuZXQpIFs0NTU0OF0K
KyogZml4ZWQgYnVnIGluIGpvaW5pbmcgdGhyZWFkcyBpbiBweS5leGVjbmV0J3Mgc2VydmVtYWlu
IFs0NTU0OV0KKyogcmVmYWN0b3JlZCBweS50ZXN0LnJzZXNzaW9uIHRlc3RzIHRvIG5vdCByZWx5
IG9uIGV4YWN0IG91dHB1dCBmb3JtYXQgYW55bW9yZQorICBbNDU2NDZdCisqIHVzaW5nIHJlcHIo
KSBvbiB0ZXN0IG91dGNvbWUgWzQ1NjQ3XQorKiBhZGRlZCAnUmVhc29uJyBjbGFzc2VzIGZvciBw
eS50ZXN0LnNraXAoKSBbNDU2NDgsIDQ1NjQ5XQorKiBraWxsZWQgc29tZSB1bm5lY2Vzc2FyeSBz
YW5pdHkgY2hlY2sgaW4gcHkudGVzdC5jb2xsZWN0IFs0NTY1NV0KKyogYXZvaWQgdXNpbmcgb3Mu
dG1wZmlsZSgpIGluIHB5LmlvLmZkY2FwdHVyZSBiZWNhdXNlIG9uIFdpbmRvd3MgaXQncyBvbmx5
CisgIHVzYWJsZSBieSBBZG1pbmlzdHJhdG9ycyBbNDU5MDFdCisqIGFkZGVkIHN1cHBvcnQgZm9y
IGxvY2tpbmcgYW5kIG5vbi1yZWN1cnNpdmUgY29tbWl0cyB0byBweS5wYXRoLnN2bndjIFs0NTk5
NF0KKyogbG9ja2luZyBmaWxlcyBpbiBweS5leGVjbmV0IHRvIHByZXZlbnQgQ1B5dGhvbiBmcm9t
IHNlZ2ZhdWx0aW5nIFs0NjAxMF0KKyogYWRkZWQgZXhwb3J0KCkgbWV0aG9kIHRvIHB5LnBhdGgu
c3ZudXJsCisqIGZpeGVkIC1kIC14IGluIHB5LnRlc3QgWzQ3Mjc3XQorKiBmaXhlZCBhcmd1bWVu
dCBjb25jYXRlbmF0aW9uIHByb2JsZW0gaW4gcHkucGF0aC5zdm53YyBbNDk0MjNdCisqIHJlc3Rv
cmUgcHkudGVzdCBiZWhhdmlvdXIgdGhhdCBpdCBleGl0cyB3aXRoIGNvZGUgMSB3aGVuIHRoZXJl
IGFyZSBmYWlsdXJlcworICBbNDk5NzRdCisqIGRvbid0IGZhaWwgb24gaHRtbCBmaWxlcyB0aGF0
IGRvbid0IGhhdmUgYW4gYWNjb21wYW55aW5nIC50eHQgZmlsZSBbNTA2MDZdCisqIGZpeGVkICd1
dGVzdGNvbnZlcnQucHkgPCBpbnB1dCcgWzUwNjQ1XQorKiBzbWFsbCBmaXggZm9yIGNvZGUgaW5k
ZW50YXRpb24gaW4gcHkuY29kZS5zb3VyY2UgWzUwNzU1XQorKiBmaXggX2RvY2dlbi5weSBkb2N1
bWVudGF0aW9uIGJ1aWxkaW5nIFs1MTI4NV0KKyogaW1wcm92ZWQgY2hlY2tzIGZvciBzb3VyY2Ug
cmVwcmVzZW50YXRpb24gb2YgY29kZSBibG9ja3MgaW4gcHkudGVzdCBbNTEyOTJdCisqIGFkZGVk
IHN1cHBvcnQgZm9yIHBhc3NpbmcgYXV0aGVudGljYXRpb24gdG8gcHkucGF0aC5zdm4qIG9iamVj
dHMgWzUyMDAwLAorICA1MjAwMV0KKyogcmVtb3ZlZCBzb3J0ZWQoKSBjYWxsIGZvciBweS5hcGln
ZW4gdGVzdHMgaW4gZmF2b3VyIG9mIFtdLnNvcnQoKSB0byBzdXBwb3J0CisgIFB5dGhvbiAyLjMg
WzUyNDgxXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9MSUNFTlNFIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9MSUNFTlNFCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjMxZWNkZmIxZGJjNTRmYjQxOTk5ODY3ODg0ZGFkNTJhMDdlYWMyY2EKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5L0xJQ0VOU0UKQEAgLTAsMCArMSwxOSBAQAorCisgIFBlcm1p
c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i
dGFpbmluZyBhIGNvcHkKKyAgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVu
dGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKKyAgaW4gdGhlIFNvZnR3YXJl
IHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJp
Z2h0cworICB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUs
IHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCisgIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0
byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcworICBmdXJuaXNoZWQgdG8g
ZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICAgICAKKyAgVGhl
IGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwg
YmUgaW5jbHVkZWQgaW4gYWxsCisgIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0
aGUgU29mdHdhcmUuCisgCisgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRI
T1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgIElNUExJRUQsIElOQ0xVRElO
RyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAor
ICBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBM
SUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBG
Uk9NLAorICBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUg
VVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQorICBTT0ZUV0FSRS4KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9NQU5JRkVTVC5pbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvTUFOSUZFU1QuaW4KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM5
YWQyMjgzZTEzZWI1ZTQyZDYwZThkYzMxYmNlZGE4M2NlNTAxNAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvTUFOSUZFU1QuaW4KQEAgLTAsMCArMSwxMCBAQAoraW5jbHVkZSBDSEFOR0VMT0cK
K2luY2x1ZGUgQVVUSE9SUworaW5jbHVkZSBSRUFETUUucnN0CitpbmNsdWRlIHNldHVwLnB5Citp
bmNsdWRlIExJQ0VOU0UKK2luY2x1ZGUgY29uZnRlc3QucHkKK2luY2x1ZGUgdG94LmluaQorZ3Jh
ZnQgZG9jCitncmFmdCB0ZXN0aW5nCitnbG9iYWwtZXhjbHVkZSAqLnB5YwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9SRUFETUUucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9SRUFETUUucnN0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwOTJh
ZTRjNDYwY2Q4NWMzYTljN2VjODQ4NjBjYmM3ZjBmOWU1NDcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L1JFQURNRS5yc3QKQEAgLTAsMCArMSwzNCBAQAorLi4gaW1hZ2U6OiBodHRwczovL2lt
Zy5zaGllbGRzLmlvL3B5cGkvdi9weS5zdmcKKyAgICA6dGFyZ2V0OiBodHRwczovL3B5cGkub3Jn
L3Byb2plY3QvcHkKKworLi4gaW1hZ2U6OiBodHRwczovL2FuYWNvbmRhLm9yZy9jb25kYS1mb3Jn
ZS9weS9iYWRnZXMvdmVyc2lvbi5zdmcKKyAgICA6dGFyZ2V0OiBodHRwczovL2FuYWNvbmRhLm9y
Zy9jb25kYS1mb3JnZS9weQorCisuLiBpbWFnZTo6IGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vcHlw
aS9weXZlcnNpb25zL3B5dGVzdC5zdmcKKyAgOnRhcmdldDogaHR0cHM6Ly9weXBpLm9yZy9wcm9q
ZWN0L3B5CisKKy4uIGltYWdlOjogaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby90cmF2aXMvcHl0ZXN0
LWRldi9weS5zdmcKKyAgIDp0YXJnZXQ6IGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9weXRlc3QtZGV2
L3B5CisKKy4uIGltYWdlOjogaHR0cHM6Ly9jaS5hcHB2ZXlvci5jb20vYXBpL3Byb2plY3RzL3N0
YXR1cy8xMGtlZ2xhbjZ1cXdqNWFsL2JyYW5jaC9tYXN0ZXI/c3ZnPXRydWUKKyAgIDp0YXJnZXQ6
IGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL3Byb2plY3QvcHl0ZXN0Ym90L3B5CisKKworKipOT1RF
Kio6IHRoaXMgbGlicmFyeSBpcyBpbiAqKm1haW50ZW5hbmNlIG1vZGUqKiBhbmQgc2hvdWxkIG5v
dCBiZSB1c2VkIGluIG5ldyBjb2RlLgorCitUaGUgcHkgbGliIGlzIGEgUHl0aG9uIGRldmVsb3Bt
ZW50IHN1cHBvcnQgbGlicmFyeSBmZWF0dXJpbmcKK3RoZSBmb2xsb3dpbmcgdG9vbHMgYW5kIG1v
ZHVsZXM6CisKKyogYGBweS5wYXRoYGA6ICB1bmlmb3JtIGxvY2FsIGFuZCBzdm4gcGF0aCBvYmpl
Y3RzCisqIGBgcHkuYXBpcGtnYGA6ICBleHBsaWNpdCBBUEkgY29udHJvbCBhbmQgbGF6eS1pbXBv
cnRpbmcKKyogYGBweS5pbmljb25maWdgYDogIGVhc3kgcGFyc2luZyBvZiAuaW5pIGZpbGVzCisq
IGBgcHkuY29kZWBgOiBkeW5hbWljIGNvZGUgZ2VuZXJhdGlvbiBhbmQgaW50cm9zcGVjdGlvbiAo
ZGVwcmVjYXRlZCwgbW92ZWQgdG8gYGBweXRlc3RgYCkuCisKKyoqTk9URSoqOiBwcmlvciB0byB0
aGUgMS40IHJlbGVhc2UgdGhpcyBkaXN0cmlidXRpb24gdXNlZCB0bworY29udGFpbiBweS50ZXN0
IHdoaWNoIGlzIG5vdyBpdHMgb3duIHBhY2thZ2UsIHNlZSBodHRwOi8vcHl0ZXN0Lm9yZworCitG
b3IgcXVlc3Rpb25zIGFuZCBtb3JlIGluZm9ybWF0aW9uIHBsZWFzZSB2aXNpdCBodHRwOi8vcHku
cmVhZHRoZWRvY3Mub3JnCisKK0J1Z3MgYW5kIGlzc3VlczogaHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHkKKworQXV0aG9yczogSG9sZ2VyIEtyZWtlbCBhbmQgb3RoZXJzLCAyMDA0LTIw
MTcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvYXBwdmV5b3IueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9hcHB2ZXlvci55
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNWZiZWNhOWFiNjU5NzE5ZmYzYjk4NmJmZWFmNmQxYWM5NDFhMTliZgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvYXBwdmV5b3IueW1sCkBAIC0wLDAgKzEsMjYgQEAK
K2Vudmlyb25tZW50OgorICBtYXRyaXg6CisgICMgbm90ZTogcGxlYXNlIHVzZSAidG94IC0tbGlz
dGVudnMiIHRvIHBvcHVsYXRlIHRoZSBidWlsZCBtYXRyaXggYmVsb3cKKyAgLSBUT1hFTlY6ICJw
eTI3LXB5dGVzdDI5IgorICAtIFRPWEVOVjogInB5MjctcHl0ZXN0MzAiCisgIC0gVE9YRU5WOiAi
cHkyNy1weXRlc3QzMSIKKyAgLSBUT1hFTlY6ICJweTM0LXB5dGVzdDI5IgorICAtIFRPWEVOVjog
InB5MzQtcHl0ZXN0MzAiCisgIC0gVE9YRU5WOiAicHkzNC1weXRlc3QzMSIKKyAgLSBUT1hFTlY6
ICJweTM1LXB5dGVzdDI5IgorICAtIFRPWEVOVjogInB5MzUtcHl0ZXN0MzAiCisgIC0gVE9YRU5W
OiAicHkzNS1weXRlc3QzMSIKKyAgLSBUT1hFTlY6ICJweTM2LXB5dGVzdDI5IgorICAtIFRPWEVO
VjogInB5MzYtcHl0ZXN0MzAiCisgIC0gVE9YRU5WOiAicHkzNi1weXRlc3QzMSIKKworaW5zdGFs
bDoKKyAgLSBlY2hvIEluc3RhbGxlZCBQeXRob25zCisgIC0gZGlyIGM6XFB5dGhvbioKKworICAt
IEM6XFB5dGhvbjM2XHB5dGhvbiAtbSBwaXAgaW5zdGFsbCAtLXVwZ3JhZGUgLS1wcmUgdG94CisK
K2J1aWxkOiBmYWxzZSAgIyBOb3QgYSBDIyBwcm9qZWN0LCBidWlsZCBzdHVmZiBhdCB0aGUgdGVz
dCBzdGVwIGluc3RlYWQuCisKK3Rlc3Rfc2NyaXB0OgorICAtIEM6XFB5dGhvbjM2XHB5dGhvbiAt
bSB0b3gKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvYmVuY2gvbG9jYWxwYXRoLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9i
ZW5jaC9sb2NhbHBhdGgucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQ0ZmJkOGUyYmZkNDU5NWI1ODQ2NjVhNWNk
ODlmZmYxYzNjNTBiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvYmVuY2gvbG9jYWxwYXRo
LnB5CkBAIC0wLDAgKzEsNzUgQEAKKworaW1wb3J0IHB5CitpbXBvcnQgdGltZWl0CisKK2NsYXNz
IExpc3RkaXI6CisgICAgbnVtaXRlciA9IDEwMDAwMAorICAgIG51bWVudHJpZXMgPSAxMDAKKwor
ICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAgdG1wZGlyID0gcHkucGF0aC5sb2NhbC5tYWtl
X251bWJlcmVkX2RpcihzZWxmLl9fY2xhc3NfXy5fX25hbWVfXykKKyAgICAgICAgZm9yIGkgaW4g
cmFuZ2Uoc2VsZi5udW1lbnRyaWVzKToKKyAgICAgICAgICAgIHRtcGRpci5qb2luKHN0cihpKSkK
KyAgICAgICAgc2VsZi50bXBkaXIgPSB0bXBkaXIKKworICAgIGRlZiBydW4oc2VsZik6CisgICAg
ICAgIHJldHVybiBzZWxmLnRtcGRpci5saXN0ZGlyKCkKKworY2xhc3MgTGlzdGRpcl9hcmcoTGlz
dGRpcik6CisgICAgbnVtaXRlciA9IDEwMDAwMAorICAgIG51bWVudHJpZXMgPSAxMDAKKworICAg
IGRlZiBydW4oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnRtcGRpci5saXN0ZGlyKCI0NyIp
CisKK2NsYXNzIEpvaW5fb25lYXJnKExpc3RkaXIpOgorICAgIGRlZiBydW4oc2VsZik6CisgICAg
ICAgIHNlbGYudG1wZGlyLmpvaW4oIjE3IikKKyAgICAgICAgc2VsZi50bXBkaXIuam9pbigiMTgi
KQorICAgICAgICBzZWxmLnRtcGRpci5qb2luKCIxOSIpCisKK2NsYXNzIEpvaW5fbXVsdGkoTGlz
dGRpcik6CisgICAgZGVmIHJ1bihzZWxmKToKKyAgICAgICAgc2VsZi50bXBkaXIuam9pbigiYSIs
ICJiIikKKyAgICAgICAgc2VsZi50bXBkaXIuam9pbigiYSIsICJiIiwgImMiKQorICAgICAgICBz
ZWxmLnRtcGRpci5qb2luKCJhIiwgImIiLCAiYyIsICJkIikKKworY2xhc3MgQ2hlY2soTGlzdGRp
cik6CisgICAgZGVmIHJ1bihzZWxmKToKKyAgICAgICAgc2VsZi50bXBkaXIuY2hlY2soKQorICAg
ICAgICBzZWxmLnRtcGRpci5jaGVjaygpCisgICAgICAgIHNlbGYudG1wZGlyLmNoZWNrKCkKKwor
Y2xhc3MgQ2hlY2tEaXIoTGlzdGRpcik6CisgICAgZGVmIHJ1bihzZWxmKToKKyAgICAgICAgc2Vs
Zi50bXBkaXIuY2hlY2soZGlyPTEpCisgICAgICAgIHNlbGYudG1wZGlyLmNoZWNrKGRpcj0xKQor
ICAgICAgICBhc3NlcnQgbm90IHNlbGYudG1wZGlyLmNoZWNrKGRpcj0wKQorCitjbGFzcyBDaGVj
a0RpcjIoTGlzdGRpcik6CisgICAgZGVmIHJ1bihzZWxmKToKKyAgICAgICAgc2VsZi50bXBkaXIu
c3RhdCgpLmlzZGlyKCkKKyAgICAgICAgc2VsZi50bXBkaXIuc3RhdCgpLmlzZGlyKCkKKyAgICAg
ICAgYXNzZXJ0IHNlbGYudG1wZGlyLnN0YXQoKS5pc2RpcigpCisKK2NsYXNzIENoZWNrRmlsZShM
aXN0ZGlyKToKKyAgICBkZWYgcnVuKHNlbGYpOgorICAgICAgICBzZWxmLnRtcGRpci5jaGVjayhm
aWxlPTEpCisgICAgICAgIGFzc2VydCBub3Qgc2VsZi50bXBkaXIuY2hlY2soZmlsZT0xKQorICAg
ICAgICBhc3NlcnQgc2VsZi50bXBkaXIuY2hlY2soZmlsZT0wKQorCitpZiBfX25hbWVfXyA9PSAi
X19tYWluX18iOgorICAgIGltcG9ydCB0aW1lCisgICAgZm9yIGNscyBpbiBbTGlzdGRpciwgTGlz
dGRpcl9hcmcsCisgICAgICAgICAgICAgICAgSm9pbl9vbmVhcmcsIEpvaW5fbXVsdGksCisgICAg
ICAgICAgICAgICBDaGVjaywgQ2hlY2tEaXIsIENoZWNrRGlyMiwgQ2hlY2tGaWxlLF06CisKKyAg
ICAgICAgaW5zdCA9IGNscygpCisgICAgICAgIGluc3Quc2V0dXAoKQorICAgICAgICBub3cgPSB0
aW1lLnRpbWUoKQorICAgICAgICBmb3IgaSBpbiB4cmFuZ2UoY2xzLm51bWl0ZXIpOgorICAgICAg
ICAgICAgaW5zdC5ydW4oKQorICAgICAgICBlbGFwc2VkID0gdGltZS50aW1lKCkgLSBub3cKKyAg
ICAgICAgcHJpbnQgIiVzOiAlZCBsb29wcyB0b29rICUuMmYgc2Vjb25kcywgcGVyIGNhbGwgJS42
ZiIgJSgKKyAgICAgICAgICAgICAgIGNscy5fX25hbWVfXywKKyAgICAgICAgICAgICAgICBjbHMu
bnVtaXRlciwgZWxhcHNlZCwgZWxhcHNlZCAvIGNscy5udW1pdGVyKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9iZW5jaC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvYmVuY2gvdzNjLWltcG9ydC5sb2cK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMmFkYWQ2MjFmNWJlMzk5ZGY1MDliOTdmYjU4MWFlMDk2Y2M2NjA5MgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvYmVuY2gvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwx
NyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
KwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAor
CitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xp
c3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS9iZW5jaC9sb2NhbHBhdGgucHkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvY29uZnRlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2NvbmZ0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViZmYz
ZmUwMjI0NWNlMGQwMWE4ZjAwMTFjZDBjNWUxZjQxMWYwMWYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L2NvbmZ0ZXN0LnB5CkBAIC0wLDAgKzEsNjAgQEAKK2ltcG9ydCBweQoraW1wb3J0IHB5
dGVzdAoraW1wb3J0IHN5cworCitweXRlc3RfcGx1Z2lucyA9ICdkb2N0ZXN0JywgJ3B5dGVzdGVy
JworCitjb2xsZWN0X2lnbm9yZSA9IFsnYnVpbGQnLCAnZG9jL19idWlsZCddCisKKworZGVmIHB5
dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKKyAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgicHls
aWIiLCAicHkgbGliIHRlc3Rpbmcgb3B0aW9ucyIpCisgICAgZ3JvdXAuYWRkb3B0aW9uKCctLXJ1
bnNsb3d0ZXN0cycsCisgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9InJ1bnNs
b3d0ZXN0cyIsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgIGhlbHA9KCJydW4gc2xvdyB0ZXN0
cyIpKQorCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBzc2hob3N0KHJlcXVlc3QpOgorICAgIHZhbCA9
IHJlcXVlc3QuY29uZmlnLmdldHZhbHVlKCJzc2hob3N0IikKKyAgICBpZiB2YWw6CisgICAgICAg
IHJldHVybiB2YWwKKyAgICBweS50ZXN0LnNraXAoIm5lZWQgLS1zc2hob3N0IG9wdGlvbiIpCisK
KworIyBYWFggY29waWVkIGZyb20gZXhlY25ldCdzIGNvbmZ0ZXN0LnB5IC0gbmVlZHMgdG8gYmUg
bWVyZ2VkCit3aW5weW1hcCA9IHsKKyAgICAncHl0aG9uMi43JzogcidDOlxQeXRob24yN1xweXRo
b24uZXhlJywKK30KKworCitkZWYgZ2V0ZXhlY3V0YWJsZShuYW1lLCBjYWNoZT17fSk6CisgICAg
dHJ5OgorICAgICAgICByZXR1cm4gY2FjaGVbbmFtZV0KKyAgICBleGNlcHQgS2V5RXJyb3I6Cisg
ICAgICAgIGV4ZWN1dGFibGUgPSBweS5wYXRoLmxvY2FsLnN5c2ZpbmQobmFtZSkKKyAgICAgICAg
aWYgZXhlY3V0YWJsZToKKyAgICAgICAgICAgIGlmIG5hbWUgPT0gImp5dGhvbiI6CisgICAgICAg
ICAgICAgICAgaW1wb3J0IHN1YnByb2Nlc3MKKyAgICAgICAgICAgICAgICBwb3BlbiA9IHN1YnBy
b2Nlc3MuUG9wZW4oCisgICAgICAgICAgICAgICAgICAgIFtzdHIoZXhlY3V0YWJsZSksICItLXZl
cnNpb24iXSwKKyAgICAgICAgICAgICAgICAgICAgdW5pdmVyc2FsX25ld2xpbmVzPVRydWUsIHN0
ZGVycj1zdWJwcm9jZXNzLlBJUEUpCisgICAgICAgICAgICAgICAgb3V0LCBlcnIgPSBwb3Blbi5j
b21tdW5pY2F0ZSgpCisgICAgICAgICAgICAgICAgaWYgbm90IGVyciBvciAiMi41IiBub3QgaW4g
ZXJyOgorICAgICAgICAgICAgICAgICAgICBleGVjdXRhYmxlID0gTm9uZQorICAgICAgICBjYWNo
ZVtuYW1lXSA9IGV4ZWN1dGFibGUKKyAgICAgICAgcmV0dXJuIGV4ZWN1dGFibGUKKworCitAcHl0
ZXN0LmZpeHR1cmUocGFyYW1zPSgncHl0aG9uMi43JywgJ3B5cHktYycsICdqeXRob24nKSkKK2Rl
ZiBhbnlweXRob24ocmVxdWVzdCk6CisgICAgbmFtZSA9IHJlcXVlc3QucGFyYW0KKyAgICBleGVj
dXRhYmxlID0gZ2V0ZXhlY3V0YWJsZShuYW1lKQorICAgIGlmIGV4ZWN1dGFibGUgaXMgTm9uZToK
KyAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICJ3aW4zMiI6CisgICAgICAgICAgICBleGVjdXRh
YmxlID0gd2lucHltYXAuZ2V0KG5hbWUsIE5vbmUpCisgICAgICAgICAgICBpZiBleGVjdXRhYmxl
OgorICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBweS5wYXRoLmxvY2FsKGV4ZWN1dGFibGUp
CisgICAgICAgICAgICAgICAgaWYgZXhlY3V0YWJsZS5jaGVjaygpOgorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gZXhlY3V0YWJsZQorICAgICAgICBweS50ZXN0LnNraXAoIm5vICVzIGZvdW5k
IiAlIChuYW1lLCkpCisgICAgcmV0dXJuIGV4ZWN1dGFibGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkv
ZG9jL01ha2VmaWxlIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvTWFrZWZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGEwZTg5ZTAx
ZmU2MWU1MWYwYzc1OGIwOTI2N2JjMjA1MmU0MTMxNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvZG9jL01ha2VmaWxlCkBAIC0wLDAgKzEsMTMzIEBACisjIE1ha2VmaWxlIGZvciBTcGhpbngg
ZG9jdW1lbnRhdGlvbgorIworCisjIFlvdSBjYW4gc2V0IHRoZXNlIHZhcmlhYmxlcyBmcm9tIHRo
ZSBjb21tYW5kIGxpbmUuCitTUEhJTlhPUFRTICAgID0KK1NQSElOWEJVSUxEICAgPSBzcGhpbngt
YnVpbGQKK1BBUEVSICAgICAgICAgPQorQlVJTERESVIgICAgICA9IF9idWlsZAorCisjIEludGVy
bmFsIHZhcmlhYmxlcy4KK1BBUEVST1BUX2E0ICAgICA9IC1EIGxhdGV4X3BhcGVyX3NpemU9YTQK
K1BBUEVST1BUX2xldHRlciA9IC1EIGxhdGV4X3BhcGVyX3NpemU9bGV0dGVyCitBTExTUEhJTlhP
UFRTICAgPSAtZCAkKEJVSUxERElSKS9kb2N0cmVlcyAkKFBBUEVST1BUXyQoUEFQRVIpKSAkKFNQ
SElOWE9QVFMpIC4KKworLlBIT05ZOiBoZWxwIGNsZWFuIGh0bWwgZGlyaHRtbCBzaW5nbGVodG1s
IHBpY2tsZSBqc29uIGh0bWxoZWxwIHF0aGVscCBkZXZoZWxwIGVwdWIgbGF0ZXggbGF0ZXhwZGYg
dGV4dCBtYW4gY2hhbmdlcyBsaW5rY2hlY2sgZG9jdGVzdAorCitoZWxwOgorCUBlY2hvICJQbGVh
c2UgdXNlIFxgbWFrZSA8dGFyZ2V0Picgd2hlcmUgPHRhcmdldD4gaXMgb25lIG9mIgorCUBlY2hv
ICIgIGh0bWwgICAgICAgdG8gbWFrZSBzdGFuZGFsb25lIEhUTUwgZmlsZXMiCisJQGVjaG8gIiAg
ZGlyaHRtbCAgICB0byBtYWtlIEhUTUwgZmlsZXMgbmFtZWQgaW5kZXguaHRtbCBpbiBkaXJlY3Rv
cmllcyIKKwlAZWNobyAiICBzaW5nbGVodG1sIHRvIG1ha2UgYSBzaW5nbGUgbGFyZ2UgSFRNTCBm
aWxlIgorCUBlY2hvICIgIHBpY2tsZSAgICAgdG8gbWFrZSBwaWNrbGUgZmlsZXMiCisJQGVjaG8g
IiAganNvbiAgICAgICB0byBtYWtlIEpTT04gZmlsZXMiCisJQGVjaG8gIiAgaHRtbGhlbHAgICB0
byBtYWtlIEhUTUwgZmlsZXMgYW5kIGEgSFRNTCBoZWxwIHByb2plY3QiCisJQGVjaG8gIiAgcXRo
ZWxwICAgICB0byBtYWtlIEhUTUwgZmlsZXMgYW5kIGEgcXRoZWxwIHByb2plY3QiCisJQGVjaG8g
IiAgZGV2aGVscCAgICB0byBtYWtlIEhUTUwgZmlsZXMgYW5kIGEgRGV2aGVscCBwcm9qZWN0Igor
CUBlY2hvICIgIGVwdWIgICAgICAgdG8gbWFrZSBhbiBlcHViIgorCUBlY2hvICIgIGxhdGV4ICAg
ICAgdG8gbWFrZSBMYVRlWCBmaWxlcywgeW91IGNhbiBzZXQgUEFQRVI9YTQgb3IgUEFQRVI9bGV0
dGVyIgorCUBlY2hvICIgIGxhdGV4cGRmICAgdG8gbWFrZSBMYVRlWCBmaWxlcyBhbmQgcnVuIHRo
ZW0gdGhyb3VnaCBwZGZsYXRleCIKKwlAZWNobyAiICB0ZXh0ICAgICAgIHRvIG1ha2UgdGV4dCBm
aWxlcyIKKwlAZWNobyAiICBtYW4gICAgICAgIHRvIG1ha2UgbWFudWFsIHBhZ2VzIgorCUBlY2hv
ICIgIGNoYW5nZXMgICAgdG8gbWFrZSBhbiBvdmVydmlldyBvZiBhbGwgY2hhbmdlZC9hZGRlZC9k
ZXByZWNhdGVkIGl0ZW1zIgorCUBlY2hvICIgIGxpbmtjaGVjayAgdG8gY2hlY2sgYWxsIGV4dGVy
bmFsIGxpbmtzIGZvciBpbnRlZ3JpdHkiCisJQGVjaG8gIiAgZG9jdGVzdCAgICB0byBydW4gYWxs
IGRvY3Rlc3RzIGVtYmVkZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uIChpZiBlbmFibGVkKSIKKwor
Y2xlYW46CisJLXJtIC1yZiAkKEJVSUxERElSKS8qCisKK2luc3RhbGw6IGNsZWFuIGh0bWwKKwly
c3luYyAtYXZ6IF9idWlsZC9odG1sLyBjb2RlOnd3dy1weWxpYi8KKworaHRtbDoKKwkkKFNQSElO
WEJVSUxEKSAtYiBodG1sICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvaHRtbAorCUBlY2hv
CisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgSFRNTCBwYWdlcyBhcmUgaW4gJChCVUlMRERJ
UikvaHRtbC4iCisKK2Rpcmh0bWw6CisJJChTUEhJTlhCVUlMRCkgLWIgZGlyaHRtbCAkKEFMTFNQ
SElOWE9QVFMpICQoQlVJTERESVIpL2Rpcmh0bWwKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5p
c2hlZC4gVGhlIEhUTUwgcGFnZXMgYXJlIGluICQoQlVJTERESVIpL2Rpcmh0bWwuIgorCitzaW5n
bGVodG1sOgorCSQoU1BISU5YQlVJTEQpIC1iIHNpbmdsZWh0bWwgJChBTExTUEhJTlhPUFRTKSAk
KEJVSUxERElSKS9zaW5nbGVodG1sCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRo
ZSBIVE1MIHBhZ2UgaXMgaW4gJChCVUlMRERJUikvc2luZ2xlaHRtbC4iCisKK3BpY2tsZToKKwkk
KFNQSElOWEJVSUxEKSAtYiBwaWNrbGUgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9waWNr
bGUKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcHJvY2VzcyB0
aGUgcGlja2xlIGZpbGVzLiIKKworanNvbjoKKwkkKFNQSElOWEJVSUxEKSAtYiBqc29uICQoQUxM
U1BISU5YT1BUUykgJChCVUlMRERJUikvanNvbgorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlz
aGVkOyBub3cgeW91IGNhbiBwcm9jZXNzIHRoZSBKU09OIGZpbGVzLiIKKworaHRtbGhlbHA6CisJ
JChTUEhJTlhCVUlMRCkgLWIgaHRtbGhlbHAgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9o
dG1saGVscAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBydW4g
SFRNTCBIZWxwIFdvcmtzaG9wIHdpdGggdGhlIiBcCisJICAgICAgIi5oaHAgcHJvamVjdCBmaWxl
IGluICQoQlVJTERESVIpL2h0bWxoZWxwLiIKKworcXRoZWxwOgorCSQoU1BISU5YQlVJTEQpIC1i
IHF0aGVscCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3F0aGVscAorCUBlY2hvCisJQGVj
aG8gIkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBydW4gInFjb2xsZWN0aW9uZ2VuZXJhdG9y
IiB3aXRoIHRoZSIgXAorCSAgICAgICIucWhjcCBwcm9qZWN0IGZpbGUgaW4gJChCVUlMRERJUikv
cXRoZWxwLCBsaWtlIHRoaXM6IgorCUBlY2hvICIjIHFjb2xsZWN0aW9uZ2VuZXJhdG9yICQoQlVJ
TERESVIpL3F0aGVscC9weS5xaGNwIgorCUBlY2hvICJUbyB2aWV3IHRoZSBoZWxwIGZpbGU6Igor
CUBlY2hvICIjIGFzc2lzdGFudCAtY29sbGVjdGlvbkZpbGUgJChCVUlMRERJUikvcXRoZWxwL3B5
LnFoYyIKKworZGV2aGVscDoKKwkkKFNQSElOWEJVSUxEKSAtYiBkZXZoZWxwICQoQUxMU1BISU5Y
T1BUUykgJChCVUlMRERJUikvZGV2aGVscAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVk
LiIKKwlAZWNobyAiVG8gdmlldyB0aGUgaGVscCBmaWxlOiIKKwlAZWNobyAiIyBta2RpciAtcCAk
JEhPTUUvLmxvY2FsL3NoYXJlL2RldmhlbHAvcHkiCisJQGVjaG8gIiMgbG4gLXMgJChCVUlMRERJ
UikvZGV2aGVscCAkJEhPTUUvLmxvY2FsL3NoYXJlL2RldmhlbHAvcHkiCisJQGVjaG8gIiMgZGV2
aGVscCIKKworZXB1YjoKKwkkKFNQSElOWEJVSUxEKSAtYiBlcHViICQoQUxMU1BISU5YT1BUUykg
JChCVUlMRERJUikvZXB1YgorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgZXB1
YiBmaWxlIGlzIGluICQoQlVJTERESVIpL2VwdWIuIgorCitsYXRleDoKKwkkKFNQSElOWEJVSUxE
KSAtYiBsYXRleCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2xhdGV4CisJQGVjaG8KKwlA
ZWNobyAiQnVpbGQgZmluaXNoZWQ7IHRoZSBMYVRlWCBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikv
bGF0ZXguIgorCUBlY2hvICJSdW4gXGBtYWtlJyBpbiB0aGF0IGRpcmVjdG9yeSB0byBydW4gdGhl
c2UgdGhyb3VnaCAocGRmKWxhdGV4IiBcCisJICAgICAgIih1c2UgXGBtYWtlIGxhdGV4cGRmJyBo
ZXJlIHRvIGRvIHRoYXQgYXV0b21hdGljYWxseSkuIgorCitsYXRleHBkZjoKKwkkKFNQSElOWEJV
SUxEKSAtYiBsYXRleCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2xhdGV4CisJQGVjaG8g
IlJ1bm5pbmcgTGFUZVggZmlsZXMgdGhyb3VnaCBwZGZsYXRleC4uLiIKKwltYWtlIC1DICQoQlVJ
TERESVIpL2xhdGV4IGFsbC1wZGYKKwlAZWNobyAicGRmbGF0ZXggZmluaXNoZWQ7IHRoZSBQREYg
ZmlsZXMgYXJlIGluICQoQlVJTERESVIpL2xhdGV4LiIKKwordGV4dDoKKwkkKFNQSElOWEJVSUxE
KSAtYiB0ZXh0ICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvdGV4dAorCUBlY2hvCisJQGVj
aG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgdGV4dCBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvdGV4
dC4iCisKK21hbjoKKwkkKFNQSElOWEJVSUxEKSAtYiBtYW4gJChBTExTUEhJTlhPUFRTKSAkKEJV
SUxERElSKS9tYW4KKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIG1hbnVhbCBw
YWdlcyBhcmUgaW4gJChCVUlMRERJUikvbWFuLiIKKworY2hhbmdlczoKKwkkKFNQSElOWEJVSUxE
KSAtYiBjaGFuZ2VzICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvY2hhbmdlcworCUBlY2hv
CisJQGVjaG8gIlRoZSBvdmVydmlldyBmaWxlIGlzIGluICQoQlVJTERESVIpL2NoYW5nZXMuIgor
CitsaW5rY2hlY2s6CisJJChTUEhJTlhCVUlMRCkgLWIgbGlua2NoZWNrICQoQUxMU1BISU5YT1BU
UykgJChCVUlMRERJUikvbGlua2NoZWNrCisJQGVjaG8KKwlAZWNobyAiTGluayBjaGVjayBjb21w
bGV0ZTsgbG9vayBmb3IgYW55IGVycm9ycyBpbiB0aGUgYWJvdmUgb3V0cHV0ICIgXAorCSAgICAg
ICJvciBpbiAkKEJVSUxERElSKS9saW5rY2hlY2svb3V0cHV0LnR4dC4iCisKK2RvY3Rlc3Q6CisJ
JChTUEhJTlhCVUlMRCkgLWIgZG9jdGVzdCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2Rv
Y3Rlc3QKKwlAZWNobyAiVGVzdGluZyBvZiBkb2N0ZXN0cyBpbiB0aGUgc291cmNlcyBmaW5pc2hl
ZCwgbG9vayBhdCB0aGUgIiBcCisJICAgICAgInJlc3VsdHMgaW4gJChCVUlMRERJUikvZG9jdGVz
dC9vdXRwdXQudHh0LiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL190ZW1wbGF0ZXMvbGF5b3V0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L2RvYy9fdGVtcGxhdGVzL2xheW91dC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4
Mzg2M2FhNDYwM2NlYTM4YWZiOTYzNTc3OGVhZDcyODIyMGRkMzMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L2RvYy9fdGVtcGxhdGVzL2xheW91dC5odG1sCkBAIC0wLDAgKzEsMTggQEAKK3sl
IGV4dGVuZHMgIiFsYXlvdXQuaHRtbCIgJX0KKworeyUgYmxvY2sgZm9vdGVyICV9Cit7eyBzdXBl
cigpIH19Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKKyAgdmFyIF9nYXEgPSBf
Z2FxIHx8IFtdOworICBfZ2FxLnB1c2goWydfc2V0QWNjb3VudCcsICdVQS03NTk3Mjc0LTE0J10p
OworICBfZ2FxLnB1c2goWydfdHJhY2tQYWdldmlldyddKTsKKworICAoZnVuY3Rpb24oKSB7Cisg
ICAgdmFyIGdhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7IGdhLnR5cGUgPSAn
dGV4dC9qYXZhc2NyaXB0JzsgZ2EuYXN5bmMgPSB0cnVlOworICAgIGdhLnNyYyA9ICgnaHR0cHM6
JyA9PSBkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCA/ICdodHRwczovL3NzbCcgOiAnaHR0cDov
L3d3dycpICsgJy5nb29nbGUtYW5hbHl0aWNzLmNvbS9nYS5qcyc7CisgICAgdmFyIHMgPSBkb2N1
bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07IHMucGFyZW50Tm9kZS5pbnNl
cnRCZWZvcmUoZ2EsIHMpOworICB9KSgpOworCis8L3NjcmlwdD4KK3slIGVuZGJsb2NrICV9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9fdGVtcGxhdGVzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS9kb2MvX3RlbXBsYXRlcy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NWE1ODRlMTU1ZTA0
NmVkMjRkZjk2MzVkNjMzZWRmZjRmNTA4ZTA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9k
b2MvX3RlbXBsYXRlcy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE3IEBACitUaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
K0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHVi
LmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L2RvYy9fdGVtcGxhdGVzL2xheW91dC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2Rv
Yy9hbm5vdW5jZS9yZWxlYXNlLTAuOS4wLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVh
c2UtMC45LjAudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3MTA5MzEzNTQzMTIwNTQwMDRjYTRmZjI5M2RlNDlm
NDdjMzdiNjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNl
LTAuOS4wLnR4dApAQCAtMCwwICsxLDcgQEAKK3B5IGxpYiAxLjAuMDogWFhYCis9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CisKK1dlbGNvbWUgdG8gdGhlIDEuMC4wIHB5IGxpYiByZWxlYXNlIC0gYSBsaWJyYXJ5IGFp
bWluZyB0bworc3VwcG9ydCBhZ2lsZSBhbmQgdGVzdC1kcml2ZW4gcHl0aG9uIGRldmVsb3BtZW50
IG9uIHZhcmlvdXMgbGV2ZWxzLgorCitYWFgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91
bmNlL3JlbGVhc2UtMC45LjIudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0wLjku
Mi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYmMyZDJlZjI5MDhjZTI4OGRhZTkyNTExNmYxMzhmNTg4ZWQ3NWQ3
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMC45LjIu
dHh0CkBAIC0wLDAgKzEsMjcgQEAKK3B5IGxpYiAwLjkuMjogYnVnZml4IHJlbGVhc2UKKz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisKK1dlbGNvbWUgdG8gdGhlIDAuOS4yIHB5IGxpYiBh
bmQgcHkudGVzdCByZWxlYXNlIC0KK21haW5seSBmaXhpbmcgV2luZG93cyBpc3N1ZXMsIHByb3Zp
ZGluZyBiZXR0ZXIKK3BhY2thZ2luZyBhbmQgaW50ZWdyYXRpb24gd2l0aCBzZXR1cHRvb2xzLgor
CitIZXJlIGlzIGEgcXVpY2sgc3VtbWFyeSBvZiB3aGF0IHRoZSBweSBsaWIgcHJvdmlkZXM6CisK
KyogcHkudGVzdDogY3Jvc3MtcHJvamVjdCB0ZXN0aW5nIHRvb2wgd2l0aCBtYW55IGFkdmFuY2Vk
IGZlYXR1cmVzCisqIHB5LmV4ZWNuZXQ6IGFkLWhvYyBjb2RlIGRpc3RyaWJ1dGlvbiB0byBTU0gs
IFNvY2tldCBhbmQgbG9jYWwgc3ViIHByb2Nlc3NlcworKiBweS5tYWdpYy5ncmVlbmxldDogbWlj
cm8tdGhyZWFkcyBvbiBzdGFuZGFyZCBDUHl0aG9uICgic3RhY2tsZXNzLWxpZ2h0IikKKyogcHku
cGF0aDogcGF0aCBhYnN0cmFjdGlvbnMgb3ZlciBsb2NhbCBhbmQgc3VidmVyc2lvbiBmaWxlcwor
KiByaWNoIGRvY3VtZW50YXRpb24gb2YgcHkncyBleHBvcnRlZCBBUEkKKyogdGVzdGVkIGFnYWlu
c3QgTGludXgsIFdpbjMyLCBPU1gsIHdvcmtzIG9uIHB5dGhvbiAyLjMtMi42CisKK1NlZSBoZXJl
IGZvciBtb3JlIGluZm9ybWF0aW9uOgorCitQeXBpIHBhZ2VzOiBodHRwOi8vcHlwaS5weXRob24u
b3JnL3B5cGkvcHkvCisKK0Rvd25sb2FkL0luc3RhbGw6ICAgaHR0cDovL2NvZGVzcGVhay5uZXQv
cHkvMC45LjIvZG93bmxvYWQuaHRtbAorCitEb2N1bWVudGF0aW9uL0FQSTogIGh0dHA6Ly9jb2Rl
c3BlYWsubmV0L3B5LzAuOS4yL2luZGV4Lmh0bWwKKworYmVzdCBhbmQgaGF2ZSBmdW4sCisKK2hv
bGdlciBrcmVrZWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4w
LjAudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjAuMC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzAyNDI1NWExOTU5MGQwMTY4Njk0MDlhOGJkM2Y3OGY5NzNhNjM2NQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4wLjAudHh0CkBAIC0wLDAgKzEs
NjMgQEAKKworcHlsaWIgMS4wLjAgcmVsZWFzZWQ6IHRlc3Rpbmctd2l0aC1weXRob24gaW5ub3Zh
dGlvbnMgY29udGludWUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1Rvb2sgYSBmZXcgYmV0YXMgYnV0IGZpbmFs
bHkgaSB1cGxvYWRlZCBhIGAxLjAuMCBweSBsaWIgcmVsZWFzZWBfLAorZmVhdHVyaW5nIHRoZSBt
YXR1cmUgYW5kIHBvd2VyZnVsIHB5LnRlc3QgdG9vbCBhbmQgImV4ZWNuZXQtc3R5bGUiCisqZWxh
c3RpYyogZGlzdHJpYnV0ZWQgcHJvZ3JhbW1pbmcuICBXaXRoIHRoZSBuZXcgcmVsZWFzZSwgdGhl
cmUgYXJlCittYW55IG5ldyBhZHZhbmNlZCBhdXRvbWF0ZWQgdGVzdGluZyBmZWF0dXJlcyAtIGhl
cmUgaXMgYSBxdWljayBzdW1tYXJ5OgorCisqIGZ1bmNhcmdzXyAtIHB5dGhvbmljIHplcm8tYm9p
bGVycGxhdGUgZml4dHVyZXMgZm9yIFB5dGhvbiB0ZXN0IGZ1bmN0aW9ucyA6CisKKyAgLSB0b3Rh
bGx5IHNlcGFyYXRlcyB0ZXN0IGNvZGUsIHRlc3QgY29uZmlndXJhdGlvbiBhbmQgdGVzdCBzZXR1
cAorICAtIGlkZWFsIGZvciBpbnRlZ3JhdGlvbiBhbmQgZnVuY3Rpb25hbCB0ZXN0cworICAtIGFs
bG93cyBmb3IgZmxleGlibGUgYW5kIG5hdHVyYWwgdGVzdCBwYXJhbWV0cml6YXRpb24gc2NoZW1l
cworCisqIG5ldyBgcGx1Z2luIGFyY2hpdGVjdHVyZWBfLCBhbGxvd2luZyBlYXN5LXRvLXdyaXRl
IHByb2plY3Qtc3BlY2lmaWMgYW5kIGNyb3NzLXByb2plY3Qgc2luZ2xlLWZpbGUgcGx1Z2lucy4g
ICBUaGUgbW9zdCBub3RhYmxlIG5ldyBleHRlcm5hbCBwbHVnaW4gaXMgYG9lanNraXRgXyB3aGlj
aCBuYXR1cmFsbHkgZW5hYmxlcyAqKnJ1bm5pbmcgYW5kIHJlcG9ydGluZyBvZiBqYXZhc2NyaXB0
LXVuaXR0ZXN0cyBpbiByZWFsLWxpZmUgYnJvd3NlcnMqKi4KKworKiBtYW55IG5ldyBmZWF0dXJl
cyBkb25lIGluIGVhc3ktdG8taW1wcm92ZSBgZGVmYXVsdCBwbHVnaW5zYF8sIGhpZ2hsaWdodHM6
CisKKyAgKiB4ZmFpbDogbWFyayB0ZXN0cyBhcyAiZXhwZWN0ZWQgdG8gZmFpbCIgYW5kIHJlcG9y
dCBzZXBhcmF0ZWx5LgorICAqIHBhc3RlYmluOiBhdXRvbWF0aWNhbGx5IHNlbmQgdHJhY2ViYWNr
cyB0byBwb2NvbyBwYXN0ZSBzZXJ2aWNlCisgICogY2FwdHVyZTogZmxleGlibHkgY2FwdHVyZSBz
dGRvdXQvc3RkZXJyIG9mIHN1YnByb2Nlc3NlcywgcGVyLXRlc3QgLi4uCisgICogbW9ua2V5cGF0
Y2g6IHNhZmVseSBtb25rZXlwYXRjaCBtb2R1bGVzL2NsYXNzZXMgZnJvbSB3aXRoaW4gdGVzdHMK
KyAgKiB1bml0dGVzdDogcnVuIGFuZCBpbnRlZ3JhdGUgdHJhZGl0aW9uYWwgdW5pdHRlc3QucHkg
dGVzdHMKKyAgKiBmaWdsZWFmOiBnZW5lcmF0ZSBodG1sIGNvdmVyYWdlIHJlcG9ydHMgd2l0aCB0
aGUgZmlnbGVhZiBtb2R1bGUKKyAgKiByZXN1bHRsb2c6IGdlbmVyYXRlIGJ1aWxkYm90LWZyaWVu
ZGx5IHJlcG9ydGluZyBvdXRwdXQKKyAgKiAuLi4KKworKiBgZGlzdHJpYnV0ZWQgdGVzdGluZ2Bf
IGFuZCBgZWxhc3RpYyBkaXN0cmlidXRlZCBleGVjdXRpb25gXzoKKworICAtIG5ldyB1bmlmaWVk
ICJUWCIgVVJMIHNjaGVtZSBmb3Igc3BlY2lmeWluZyByZW1vdGUgcHJvY2Vzc2VzCisgIC0gbmV3
IGRpc3RyaWJ1dGlvbiBtb2RlcyAiLS1kaXN0PWVhY2giIGFuZCAiLS1kaXN0PWxvYWQiCisgIC0g
bmV3IHN5bmMvYXN5bmMgd2F5cyB0byBoYW5kbGUgMTpOIGNvbW11bmljYXRpb24KKyAgLSBpbXBy
b3ZlZCBkb2N1bWVudGF0aW9uCisKK1RoZSBweSBsaWIgY29udGludWVzIHRvIG9mZmVyIG1vc3Qg
b2YgdGhlIGZ1bmN0aW9uYWxpdHkgdXNlZCBieQordGhlIHRlc3RpbmcgdG9vbCBpbiBgaW5kZXBl
bmRlbnQgbmFtZXNwYWNlc2BfLgorCitTb21lIG5vbi10ZXN0IHJlbGF0ZWQgY29kZSwgbm90YWJs
eSBncmVlbmxldHMvY28tcm91dGluZXMgYW5kCithcGktZ2VuZXJhdGlvbiBub3cgbGl2ZSBhcyB0
aGVpciBvd24gcHJvamVjdHMgd2hpY2ggc2ltcGxpZmllcyB0aGUKK2luc3RhbGxhdGlvbiBwcm9j
ZWR1cmUgYmVjYXVzZSBubyBDLUV4dGVuc2lvbnMgYXJlIHJlcXVpcmVkIGFueW1vcmUuCisKK1Ro
ZSB3aG9sZSBwYWNrYWdlIHNob3VsZCB3b3JrIHdlbGwgd2l0aCBMaW51eCwgV2luMzIgYW5kIE9T
WCwgb24gUHl0aG9uCisyLjMsIDIuNCwgMi41IGFuZCAyLjYuICAoRXhwZWN0IFB5dGhvbjMgY29t
cGF0aWJpbGl0eSBzb29uISkKKworRm9yIG1vcmUgaW5mbywgc2VlIHRoZSBweS50ZXN0IGFuZCBw
eSBsaWIgZG9jdW1lbnRhdGlvbjoKKworICAgIGh0dHA6Ly9weXRlc3Qub3JnCisKKyAgICBodHRw
Oi8vcHlsaWIub3JnCisKK2hhdmUgZnVuLAoraG9sZ2VyCisKKy4uIF9gaW5kZXBlbmRlbnQgbmFt
ZXNwYWNlc2A6IGh0dHA6Ly9weWxpYi5vcmcKKy4uIF9gZnVuY2FyZ3NgOiBodHRwOi8vY29kZXNw
ZWFrLm5ldC9weS9kaXN0L3Rlc3QvZnVuY2FyZ3MuaHRtbAorLi4gX2BwbHVnaW4gYXJjaGl0ZWN0
dXJlYDogaHR0cDovL2NvZGVzcGVhay5uZXQvcHkvZGlzdC90ZXN0L2V4dGVuZC5odG1sCisuLiBf
YGRlZmF1bHQgcGx1Z2luc2A6IGh0dHA6Ly9jb2Rlc3BlYWsubmV0L3B5L2Rpc3QvdGVzdC9wbHVn
aW4vaW5kZXguaHRtbAorLi4gX2BkaXN0cmlidXRlZCB0ZXN0aW5nYDogaHR0cDovL2NvZGVzcGVh
ay5uZXQvcHkvZGlzdC90ZXN0L2Rpc3QuaHRtbAorLi4gX2BlbGFzdGljIGRpc3RyaWJ1dGVkIGV4
ZWN1dGlvbmA6IGh0dHA6Ly9jb2Rlc3BlYWsubmV0L3B5L2Rpc3QvZXhlY25ldC5odG1sCisuLiBf
YDEuMC4wIHB5IGxpYiByZWxlYXNlYDogaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3B5Cisu
LiBfYG9lanNraXRgOiBodHRwOi8vY29kZXNwZWFrLm5ldC9weS9kaXN0L3Rlc3QvcGx1Z2luL29l
anNraXQuaHRtbAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEu
MC4xLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4wLjEudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBjOWY4NzYwYmRiYWQ0YjVkMGIxZGI2OWQ2NjRhZWUzYmNiZmUyMjEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuMC4xLnR4dApAQCAtMCwwICsx
LDQ4IEBACisxLjAuMTogaW1wcm92ZWQgcmVwb3J0aW5nLCBub3NlL3VuaXR0ZXN0LnB5IHN1cHBv
cnQsIGJ1ZyBmaXhlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhpcyBpcyBhIGJ1Z2ZpeCByZWxlYXNl
IG9mIHB5bGliL3B5LnRlc3QgYWxzbyBjb21pbmcgd2l0aDoKKworKiBpbXByb3ZlZCBkb2N1bWVu
dGF0aW9uLCBpbXByb3ZlZCBuYXZpZ2F0aW9uCisqIHRlc3QgZmFpbHVyZSByZXBvcnRpbmcgaW1w
cm92ZW1lbnRzCisqIHN1cHBvcnQgZm9yIGRpcmVjdGx5IHJ1bm5pbmcgZXhpc3Rpbmcgbm9zZS91
bml0dGVzdC5weSBzdHlsZSB0ZXN0cworCit2aXNpdCBoZXJlIGZvciBtb3JlIGluZm8sIGluY2x1
ZGluZyBxdWlja3N0YXJ0IGFuZCB0dXRvcmlhbHM6CisKKyAgICBodHRwOi8vcHl0ZXN0Lm9yZyBh
bmQgaHR0cDovL3B5bGliLm9yZworCisKK0NoYW5nZWxvZyAxLjAuMCB0byAxLjAuMQorLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKKyogYWRkZWQgYSBkZWZhdWx0ICdweXRlc3Rfbm9zZScgcGx1
Z2luIHdoaWNoIGhhbmRsZXMgbm9zZS5Ta2lwVGVzdCwKKyAgbm9zZS1zdHlsZSBmdW5jdGlvbi9t
ZXRob2QvZ2VuZXJhdG9yIHNldHVwL3RlYXJkb3duIGFuZAorICB0cmllcyB0byByZXBvcnQgZnVu
Y3Rpb25zIGNvcnJlY3RseS4KKworKiBpbXByb3ZlZCBkb2N1bWVudGF0aW9uLCBiZXR0ZXIgbmF2
aWdhdGlvbjogc2VlIGh0dHA6Ly9weXRlc3Qub3JnCisKKyogYWRkZWQgYSAiLS1oZWxwLWNvbmZp
ZyIgb3B0aW9uIHRvIHNob3cgY29uZnRlc3QucHkgLyBFTlYtdmFyIG5hbWVzIGZvcgorICBhbGwg
bG9uZ29wdCBjbWRsaW5lIG9wdGlvbnMsIGFuZCBzb21lIHNwZWNpYWwgY29uZnRlc3QucHkgdmFy
aWFibGVzLgorICByZW5hbWVkICdjb25mX2NhcHR1cmUnIGNvbmZ0ZXN0IHNldHRpbmcgdG8gJ29w
dGlvbl9jYXB0dXJlJyBhY2NvcmRpbmdseS4KKworKiB1bmljb2RlIGZpeGVzOiBjYXB0dXJpbmcg
YW5kIHVuaWNvZGUgd3JpdGVzIHRvIHN5cy5zdGRvdXQKKyAgKHRocm91Z2ggZS5nIGEgcHJpbnQg
c3RhdGVtZW50KSBub3cgd29yayB3aXRoaW4gdGVzdHMsCisgIHRoZXkgYXJlIGVuY29kZWQgYXMg
InV0ZjgiIGJ5IGRlZmF1bHQsIGFsc28gdGVybWluYWx3cml0aW5nCisgIHdhcyBhZGFwdGVkIGFu
ZCBzb21ld2hhdCB1bmlmaWVkIGJldHdlZW4gd2luZG93cyBhbmQgbGludXgKKworKiBmaXggaXNz
dWUgIzI3OiBiZXR0ZXIgcmVwb3J0aW5nIG9uIG5vbi1jb2xsZWN0YWJsZSBpdGVtcyBnaXZlbiBv
biBjb21tYW5kbGluZQorICAoZS5nLiBweWMgZmlsZXMpCisKKyogZml4IGlzc3VlICMzMzogYWRk
ZWQgLS12ZXJzaW9uIGZsYWcgKHRoYW5rcyBCZW5qYW1pbiBQZXRlcnNvbikKKworKiBmaXggaXNz
dWUgIzMyOiBhZGRpbmcgc3VwcG9ydCBmb3IgImluY29tcGxldGUiIHBhdGhzIHRvIHdjcGF0aC5z
dGF0dXMoKQorCisqICJUZXN0IiBwcmVmaXhlZCBjbGFzc2VzIGFyZSAqbm90KiBjb2xsZWN0ZWQg
YnkgZGVmYXVsdCBhbnltb3JlIGlmIHRoZXkKKyAgaGF2ZSBhbiBfX2luaXRfXyBtZXRob2QKKwor
KiBtb25rZXlwYXRjaCBzZXRlbnYoKSBub3cgYWNjZXB0cyBhICJwcmVwZW5kIiBwYXJhbWV0ZXIK
KworKiBpbXByb3ZlZCByZXBvcnRpbmcgb2YgY29sbGVjdGlvbiBlcnJvciB0cmFjZWJhY2tzCisK
Kyogc2ltcGxpZmllZCBtdWx0aWNhbGwgbWVjaGFuaXNtIGFuZCBwbHVnaW4gYXJjaGl0ZWN0dXJl
LAorICByZW5hbWVkIHNvbWUgaW50ZXJuYWwgbWV0aG9kcyBhbmQgYXJnbmFtZXMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4wLjIudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2Mv
YW5ub3VuY2UvcmVsZWFzZS0xLjAuMi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM1NDYxOTUzNTMwNDM5YmE2
NjFhNzc2YmI2ZWRjNDc3NzhhOGE2NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fu
bm91bmNlL3JlbGVhc2UtMS4wLjIudHh0CkBAIC0wLDAgKzEsNSBAQAorMS4wLjI6IHBhY2thZ2lu
ZyBmaXhlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwordGhpcyByZWxlYXNlIGlzIHB1cmVseSBhIHJlbGVh
c2UgZm9yIGZpeGluZyBwYWNrYWdpbmcgaXNzdWVzLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2Rv
Yy9hbm5vdW5jZS9yZWxlYXNlLTEuMS4wLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVh
c2UtMS4xLjAudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0NDFjMzIxNWViMTE2NjdkMzEyYmJkYzJlN2JhNzll
ODkxMTk5ODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNl
LTEuMS4wLnR4dApAQCAtMCwwICsxLDExNSBAQAorcHkudGVzdC9weWxpYiAxLjEuMDogUHl0aG9u
MywgSnl0aG9uLCBhZHZhbmNlZCBza2lwcGluZywgY2xlYW51cHMgLi4uCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorCitGZWF0dXJlczoKKworKiBjb21wYXRpYmxlIHRvIFB5dGhvbjMgKHNpbmds
ZSBweTIvcHkzIHNvdXJjZSksIGBlYXN5IHRvIGluc3RhbGxgXworKiBjb25kaXRpb25hbCBza2lw
cGluZ186IHNraXAveGZhaWwgYmFzZWQgb24gcGxhdGZvcm0vZGVwZW5kZW5jaWVzCisqIGdlbmVy
YWxpemVkIG1hcmtpbmdfOiBtYXJrIHRlc3RzIG9uZSBhIHdob2xlLWNsYXNzIG9yIHdob2xlLW1v
ZHVsZSBiYXNpcworCitGaXhlczoKKworKiBjb2RlIHJlZHVjdGlvbiBhbmQgImRlLW1hZ2lmaWNh
dGlvbiIgKGUuZy4gMjMgS0xvYyAtPiAxMSBLTE9DKQorKiBkaXN0cmlidXRlIHRlc3RpbmcgcmVx
dWlyZXMgdGhlIG5vdyBzZXBhcmF0ZWx5IHJlbGVhc2VkIGV4ZWNuZXRfIHBhY2thZ2UKKyogZnVu
Y2FyZy1zZXR1cC9jYWNoaW5nLCAic2FtZS1uYW1lIiB0ZXN0IG1vZHVsZXMgbm93IGNhdXNlIGFu
IGV4bGljaXQgZXJyb3IKKyogZGUtY2x1dHRlcmVkIHJlcG9ydGluZyBvcHRpb25zLCAtLXJlcG9y
dCBmb3Igc2tpcHBlZC94ZmFpbCBkZXRhaWxzCisKK0NvbXBhdGliaWxpdGllcworCisxLjEuMCBz
aG91bGQgYWxsb3cgcnVubmluZyB0ZXN0IGNvZGUgdGhhdCBhbHJlYWR5IHdvcmtlZCB3ZWxsIHdp
dGggMS4wLjIKK3BsdXMgc29tZSBtb3JlIGR1ZSB0byBpbXByb3ZlZCB1bml0dGVzdC9ub3NlIGNv
bXBhdGliaWxpdHkuCisKK01vcmUgaW5mb3JtYXRpb246IGh0dHA6Ly9weXRlc3Qub3JnCisKK3Ro
YW5rcyBhbmQgaGF2ZSBmdW4sCisKK2hvbGdlciAoaHR0cDovL3R3aXR0ZXIuY29tL2hwazQyKQor
CisuLiBfZXhlY25ldDogaHR0cDovL2NvZGVzcGVhay5uZXQvZXhlY25ldAorLi4gX2BlYXN5IHRv
IGluc3RhbGxgOiAuLi9pbnN0YWxsLmh0bWwKKy4uIF9tYXJraW5nOiAuLi90ZXN0L3BsdWdpbi9t
YXJrLmh0bWwKKy4uIF9za2lwcGluZzogLi4vdGVzdC9wbHVnaW4vc2tpcHBpbmcuaHRtbAorCisK
K0NoYW5nZWxvZyAxLjAuMiAtPiAxLjEuMAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworKiByZW1vdmUgcHku
cmVzdCB0b29sIGFuZCBpbnRlcm5hbCBuYW1lc3BhY2UgLSBpdCB3YXMKKyAgbmV2ZXIgcmVhbGx5
IGFkdmVydGlzZWQgYW5kIGNhbiBzdGlsbCBiZSB1c2VkIHdpdGgKKyAgdGhlIG9sZCByZWxlYXNl
IGlmIG5lZWRlZC4gIElmIHRoZXJlIGlzIGludGVyZXN0CisgIGl0IGNvdWxkIGJlIHJldml2ZWQg
aW50byBpdHMgb3duIHRvb2wgaSBndWVzcy4KKworKiBmaXggaXNzdWU0OCBhbmQgaXNzdWU1OTog
cmFpc2UgYW4gRXJyb3IgaWYgdGhlIG1vZHVsZQorICBmcm9tIGFuIGltcG9ydGVkIHRlc3QgZmls
ZSBkb2VzIG5vdCBzZWVtIHRvIGNvbWUgZnJvbQorICB0aGUgZmlsZXBhdGggLSBhdm9pZHMgInNh
bWUtbmFtZSIgY29uZnVzaW9uIHRoYXQgaGFzCisgIGJlZW4gcmVwb3J0ZWQgcmVwZWF0ZWRseQor
CisqIG1lcmdlZCBSb25ueSdzIG5vc2UtY29tcGF0aWJpbGl0eSBoYWNrczogbm93CisgIG5vc2Ut
c3R5bGUgc2V0dXBfbW9kdWxlKCkgYW5kIHNldHVwKCkgZnVuY3Rpb25zIGFyZQorICBzdXBwb3J0
ZWQKKworKiBpbnRyb2R1Y2UgZ2VuZXJhbGl6ZWQgcHkudGVzdC5tYXJrIGZ1bmN0aW9uIG1hcmtp
bmcKKworKiByZXNodWZmbGUgLyByZWZpbmUgY29tbWFuZCBsaW5lIGdyb3VwaW5nCisKKyogZGVw
cmVjYXRlIHBhcnNlci5hZGRncm91cCBpbiBmYXZvdXIgb2YgZ2V0Z3JvdXAgd2hpY2ggY3JlYXRl
cyBvcHRpb24gZ3JvdXAKKworKiBhZGQgLS1yZXBvcnQgY29tbWFuZCBsaW5lIG9wdGlvbiB0aGF0
IGFsbG93cyB0byBjb250cm9sIHNob3dpbmcgb2Ygc2tpcHBlZC94ZmFpbGVkIHNlY3Rpb25zCisK
KyogZ2VuZXJhbGl6ZWQgc2tpcHBpbmc6IGEgbmV3IHdheSB0byBtYXJrIHB5dGhvbiBmdW5jdGlv
bnMgd2l0aCBza2lwaWYgb3IgeGZhaWwKKyAgYXQgZnVuY3Rpb24sIGNsYXNzIGFuZCBtb2R1bGVz
IGxldmVsIGJhc2VkIG9uIHBsYXRmb3JtIG9yIHN5cy1tb2R1bGUgYXR0cmlidXRlcy4KKworKiBl
eHRlbmQgcHkudGVzdC5tYXJrIGRlY29yYXRvciB0byBhbGxvdyBmb3IgcG9zaXRpb25hbCBhcmdz
CisKKyogaW50cm9kdWNlIGFuZCB0ZXN0ICJweS5jbGVhbnVwIC1kIiB0byByZW1vdmUgZW1wdHkg
ZGlyZWN0b3JpZXMKKworKiBmaXggaXNzdWUgIzU5IC0gcm9idXN0aWZ5IHVuaXR0ZXN0IHRlc3Qg
Y29sbGVjdGlvbgorCisqIG1ha2UgYnB5dGhvbi9oZWxwIGludGVyYWN0aW9uIHdvcmsgYnkgYWRk
aW5nIGFuIF9fYWxsX18gYXR0cmlidXRlCisgIHRvIEFwaU1vZHVsZSwgY2xlYW51cCBpbml0cGtn
CisKKyogdXNlIE1JVCBsaWNlbnNlIGZvciBweWxpYiwgYWRkIHNvbWUgY29udHJpYnV0b3JzCisK
KyogcmVtb3ZlIHB5LmV4ZWNuZXQgY29kZSBhbmQgc3Vic3RpdHV0ZSBhbGwgdXNhZ2VzIHdpdGgg
J2V4ZWNuZXQnIHByb3BlcgorCisqIGZpeCBpc3N1ZTUwIC0gY2FjaGVkX3NldHVwIG5vdyBjYWNo
ZXMgbW9yZSB0byBleHBlY3RhdGlvbnMKKyAgZm9yIHRlc3QgZnVuY3Rpb25zIHdpdGggbXVsdGlw
bGUgYXJndW1lbnRzLgorCisqIG1lcmdlIEphcmtvJ3MgZml4ZXMsIGlzc3VlICM0NSBhbmQgIzQ2
CisKKyogYWRkIHRoZSBhYmlsaXR5IHRvIHNwZWNpZnkgYSBwYXRoIGZvciBweS5sb29rdXAgdG8g
c2VhcmNoIGluCisKKyogZml4IGEgZnVuY2FyZyBjYWNoZWRfc2V0dXAgYnVnIHByb2JhYmx5IG9u
bHkgb2NjdXJpbmcKKyAgaW4gZGlzdHJpYnV0ZWQgdGVzdGluZyBhbmQgIm1vZHVsZSIgc2NvcGUg
d2l0aCB0ZWFyZG93bi4KKworKiBtYW55IGZpeGVzIGFuZCBjaGFuZ2VzIGZvciBtYWtpbmcgdGhl
IGNvZGUgYmFzZSBweXRob24zIGNvbXBhdGlibGUsCisgIG1hbnkgdGhhbmtzIHRvIEJlbmphbWlu
IFBldGVyc29uIGZvciBoZWxwaW5nIHdpdGggdGhpcy4KKworKiBjb25zb2xpZGF0ZSBidWlsdGlu
cyBpbXBsZW1lbnRhdGlvbiB0byBiZSBjb21wYXRpYmxlIHdpdGggPj0yLjMsCisgIGFkZCBoZWxw
ZXJzIHRvIGVhc2Uga2VlcGluZyAyIGFuZCAzayBjb21wYXRpYmxlIGNvZGUKKworKiBkZXByZWNh
dGUgcHkuY29tcGF0LmRvY3Rlc3R8c3VicHJvY2Vzc3x0ZXh0d3JhcHxvcHRwYXJzZQorCisqIGRl
cHJlY2F0ZSBweS5tYWdpYy5hdXRvcGF0aCwgcmVtb3ZlIHB5L21hZ2ljIGRpcmVjdG9yeQorCisq
IG1vdmUgcHl0ZXN0IGFzc2VydGlvbiBoYW5kbGluZyB0byBweS9jb2RlIGFuZCBhIHB5dGVzdF9h
c3NlcnRpb24KKyAgcGx1Z2luLCBhZGQgIi0tbm8tYXNzZXJ0IiBvcHRpb24sIGRlcHJlY2F0ZSBw
eS5tYWdpYyBuYW1lc3BhY2VzCisgIGluIGZhdm91ciBvZiAobGVzcykgcHkuY29kZSBvbmVzLgor
CisqIGNvbnNvbGlkYXRlIGFuZCBjbGVhbnVwIHB5L2NvZGUgY2xhc3NlcyBhbmQgZmlsZXMKKwor
KiBjbGVhbnVwIHB5L21pc2MsIG1vdmUgdGVzdHMgdG8gYmluLWZvci1kaXN0CisKKyogaW50cm9k
dWNlIGRlbGF0dHIvZGVsaXRlbS9kZWxlbnYgbWV0aG9kcyB0byBweS50ZXN0J3MgbW9ua2V5cGF0
Y2ggZnVuY2FyZworCisqIGNvbnNvbGlkYXRlIHB5LmxvZyBpbXBsZW1lbnRhdGlvbiwgcmVtb3Zl
IG9sZCBhcHByb2FjaC4KKworKiBpbnRyb2R1Y2UgcHkuaW8uVGV4dElPIGFuZCBweS5pby5CeXRl
c0lPIGZvciBkaXN0aW5ndWlzaGluZyBiZXR3ZWVuCisgIHRleHQvdW5pY29kZSBhbmQgYnl0ZS1z
dHJlYW1zICh1c2VzIHVuZGVybHlpbmcgc3RhbmRhcmQgbGliIGlvLioKKyAgaWYgYXZhaWxhYmxl
KQorCisqIG1ha2UgcHkudW5pdHRlc3RfY29udmVydCBoZWxwZXIgc2NyaXB0IGF2YWlsYWJsZSB3
aGljaCBjb252ZXJ0cyAidW5pdHRlc3QucHkiCisgIHN0eWxlIGZpbGVzIGludG8gdGhlIHNpbXBs
ZXIgYXNzZXJ0L2RpcmVjdC10ZXN0LWNsYXNzZXMgcHkudGVzdC9ub3NldGVzdHMKKyAgc3R5bGUu
ICBUaGUgc2NyaXB0IHdhcyB3cml0dGVuIGJ5IExhdXJhIENyZWlnaHRvbi4KKworKiBzaW1wbGlm
aWVkIGludGVybmFsIGxvY2FscGF0aCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjEuMS50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9y
ZWxlYXNlLTEuMS4xLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44M2U2YTFmZDhkOTU4NTNiNjMwMWMwZjFjNDU2
MGUzNzY5ZmM1ODY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVs
ZWFzZS0xLjEuMS50eHQKQEAgLTAsMCArMSw0OCBAQAorcHkudGVzdC9weWxpYiAxLjEuMTogYnVn
Zml4IHJlbGVhc2UsIHNldHVwdG9vbHMgcGx1Z2luIHJlZ2lzdHJhdGlvbgorLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgZml4aW5nIHJlbGVhc2Ugb2Yg
cHlsaWIvcHkudGVzdCB0byB3b3JrCitiZXR0ZXIgd2l0aCBwcmV2aW91cyAxLjAueCB0ZXN0IGNv
ZGUgYmFzZXMuICBJdCBhbHNvIGNvbnRhaW5zIGZpeGVzCithbmQgY2hhbmdlcyB0byB3b3JrIHdp
dGggYGV4ZWNuZXQ+PTEuMC4wYF8gdG8gcHJvdmlkZSBkaXN0cmlidXRlZAordGVzdGluZyBhbmQg
bG9vcG9uZmFpbGluZyB0ZXN0aW5nIG1vZGVzLiAgcHktMS4xLjEgYWxzbyBpbnRyb2R1Y2VzCith
IG5ldyBtZWNoYW5pc20gZm9yIHJlZ2lzdGVyaW5nIHBsdWdpbnMgdmlhIHNldHVwdG9vbHMuCisK
K1doYXQgaXMgcHlsaWIvcHkudGVzdD8KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK3B5LnRl
c3QgaXMgYW4gYWR2YW5jZWQgYXV0b21hdGVkIHRlc3RpbmcgdG9vbCB3b3JraW5nIHdpdGgKK1B5
dGhvbjIsIFB5dGhvbjMgYW5kIEp5dGhvbiB2ZXJzaW9ucyBvbiBhbGwgbWFqb3Igb3BlcmF0aW5n
CitzeXN0ZW1zLiBJdCBoYXMgYW4gZXh0ZW5zaXZlIHBsdWdpbiBhcmNoaXRlY3R1cmUgYW5kIGNh
biBydW4gbWFueQorZXhpc3RpbmcgY29tbW9uIFB5dGhvbiB0ZXN0IHN1aXRlcyB3aXRob3V0IG1v
ZGlmaWNhdGlvbi4gIE1vcmVvdmVyLAoraXQgb2ZmZXJzIHNvbWUgdW5pcXVlIGZlYXR1cmVzIG5v
dCBmb3VuZCBpbiBvdGhlcgordGVzdGluZyB0b29scy4gIFNlZSBodHRwOi8vcHl0ZXN0Lm9yZyBm
b3IgbW9yZSBpbmZvLgorCitUaGUgcHlsaWIgYWxzbyBjb250YWlucyBhIGxvY2FscGF0aCBhbmQg
c3ZucGF0aCBpbXBsZW1lbnRhdGlvbgorYW5kIHNvbWUgZGV2ZWxvcGVyLW9yaWVudGVkIGNvbW1h
bmQgbGluZSB0b29scy4gU2VlCitodHRwOi8vcHlsaWIub3JnIGZvciBtb3JlIGluZm8uCisKK3Ro
YW5rcyB0byBhbGwgd2hvIGhlbHBlZCBhbmQgZ2F2ZSBmZWVkYmFjaywKK2hhdmUgZnVuLAorCito
b2xnZXIgKGh0dHA6Ly90d2l0dGVyLmNvbS9ocGs0MikKKworLi4gX2BleGVjbmV0Pj0xLjAuMGA6
IGh0dHA6Ly9jb2Rlc3BlYWsubmV0L2V4ZWNuZXQKKworQ2hhbmdlcyBiZXR3ZWVuIDEuMS4xIGFu
ZCAxLjEuMAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistIGludHJv
ZHVjZSBhdXRvbWF0aWMgcGx1Z2luIHJlZ2lzdHJhdGlvbiB2aWEgJ3B5dGVzdDExJworICBlbnRy
eXBvaW50cyB2aWEgc2V0dXB0b29scycgcGtnX3Jlc291cmNlcy5pdGVyX2VudHJ5X3BvaW50cwor
CistIGZpeCBweS50ZXN0IGRpc3QtdGVzdGluZyB0byB3b3JrIHdpdGggZXhlY25ldCA+PSAxLjAu
MGI0CisKKy0gcmUtaW50cm9kdWNlIHB5LnRlc3QuY21kbGluZS5tYWluKCkgZm9yIGJldHRlciBi
YWNrd2FyZCBjb21wYXRpYmlsaXR5CisKKy0gc3ZuIHBhdGhzOiBmaXggYSBidWcgd2l0aCBwYXRo
LmNoZWNrKHZlcnNpb25lZD1UcnVlKSBmb3Igc3ZuIHBhdGhzLAorICBhbGxvdyAnJScgaW4gc3Zu
IHBhdGhzLCBtYWtlIHN2bndjLnVwZGF0ZSgpIGRlZmF1bHQgdG8gaW50ZXJhY3RpdmUgbW9kZQor
ICBsaWtlIGluIDEuMC54IGFuZCBhZGQgc3Zud2MudXBkYXRlKGludGVyYWN0aXZlPUZhbHNlKSB0
byBpbmhpYml0IGludGVyYWN0aW9uLgorCistIHJlZmluZSBkaXN0cmlidXRlZCB0YXJiYWxsIHRv
IGNvbnRhaW4gdGVzdCBhbmQgbm8gcHljIGZpbGVzCisKKy0gdHJ5IGhhcmRlciB0byBoYXZlIGRl
cHJlY2F0aW9uIHdhcm5pbmdzIGZvciBweS5jb21wYXQuKiBhY2Nlc3NlcworICByZXBvcnQgYSBj
b3JyZWN0IGxvY2F0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNl
LTEuMi4wLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4yLjAudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjRmNmE1NjE0NDc2MzNhNzUxYTYzMTY2YzVkMTQ5NjA0NzNlZTA0NTkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuMi4wLnR4dApAQCAtMCww
ICsxLDExNiBAQAorcHkudGVzdC9weWxpYiAxLjIuMDoganVuaXR4bWwsIHN0YW5kYWxvbmUgdGVz
dCBzY3JpcHRzLCBwbHVnaW5pemF0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitweS50
ZXN0IGlzIGFuIGFkdmFuY2VkIGF1dG9tYXRlZCB0ZXN0aW5nIHRvb2wgd29ya2luZyB3aXRoCitQ
eXRob24yLCBQeXRob24zIGFuZCBKeXRob24gdmVyc2lvbnMgb24gYWxsIG1ham9yIG9wZXJhdGlu
Zworc3lzdGVtcy4gIEl0IGhhcyBhIHNpbXBsZSBwbHVnaW4gYXJjaGl0ZWN0dXJlIGFuZCBjYW4g
cnVuIG1hbnkKK2V4aXN0aW5nIGNvbW1vbiBQeXRob24gdGVzdCBzdWl0ZXMgd2l0aG91dCBtb2Rp
ZmljYXRpb24uICBJdCBvZmZlcnMKK3NvbWUgdW5pcXVlIGZlYXR1cmVzIG5vdCBmb3VuZCBpbiBv
dGhlciB0ZXN0aW5nIHRvb2xzLgorU2VlIGh0dHA6Ly9weXRlc3Qub3JnIGZvciBtb3JlIGluZm8u
CisKK3B5LnRlc3QgMS4yLjAgYnJpbmdzIG1hbnkgYnVnIGZpeGVzIGFuZCBpbnRlcmVzdGluZyBu
ZXcgYWJpbGl0aWVzOgorCisqIC0tanVuaXR4bWw9cGF0aCB3aWxsIGNyZWF0ZSBhbiBYTUwgZmls
ZSBmb3IgdXNlIHdpdGggQ0kgcHJvY2Vzc2luZworKiAtLWdlbnNjcmlwdD1wYXRoIGNyZWF0ZXMg
YSBzdGFuZGFsb25lIHB5LnRlc3QtZXF1aXZhbGVudCB0ZXN0LXNjcmlwdAorKiAtLWlnbm9yZT1w
YXRoIHByZXZlbnRzIGNvbGxlY3Rpb24gb2YgYW55dGhpbmcgYmVsb3cgdGhhdCBwYXRoCisqIC0t
Y29uZmN1dGRpcj1wYXRoIG9ubHkgbG9va3VwIGNvbmZ0ZXN0LnB5IHRlc3QgY29uZmlncyBiZWxv
dyB0aGF0IHBhdGgKKyogYSAncHl0ZXN0X3JlcG9ydF9oZWFkZXInIGhvb2sgdG8gYWRkIGluZm8g
dG8gdGhlIHRlcm1pbmFsIHJlcG9ydCBoZWFkZXIKKyogYSAncHl0ZXN0Y29uZmlnJyBmdW5jdGlv
biBhcmd1bWVudCBnaXZlcyBkaXJlY3QgYWNjZXNzIHRvIG9wdGlvbiB2YWx1ZXMKKyogJ3B5dGVz
dF9nZW5lcmF0ZV90ZXN0cycgY2FuIG5vdyBiZSBwdXQgaW50byBhIGNsYXNzIGFzIHdlbGwKKyog
b24gQ1B5dGhvbiBweS50ZXN0IGFkZGl0aW9uYWxseSBpbnN0YWxscyBhcyAicHkudGVzdC1WRVJT
SU9OIiwgb24KKyAgSnl0aG9uIGFzIHB5LnRlc3Qtanl0aG9uIGFuZCBvbiBQeVB5IGFzIHB5LnRl
c3QtcHlweS1YWVoKKworQXBhcnQgZnJvbSBtYW55IGJ1ZyBmaXhlcyAxLjIuMCBhbHNvIGhhcyBi
ZXR0ZXIgcGx1Z2luaXphdGlvbjoKK0Rpc3RyaWJ1dGVkIHRlc3RpbmcgYW5kIGxvb3BvbmZhaWxp
bmcgdGVzdGluZyBub3cgbGl2ZSBpbiB0aGUKK3NlcGFyYXRlbHkgaW5zdGFsbGFibGUgJ3B5dGVz
dC14ZGlzdCcgcGx1Z2luLiAgVGhlIHNhbWUgaXMgdHJ1ZSBmb3IKKydweXRlc3QtZmlnbGVhZicg
Zm9yIGRvaW5nIGNvdmVyYWdlIHJlcG9ydGluZy4gIFRob3NlIHR3byBwbHVnaW5zCitjYW4gc2Vy
dmUgd2VsbCBub3cgYXMgYmx1ZSBwcmludHMgZm9yIGRvaW5nIHlvdXIgb3duLgorCit0aGFua3Mg
dG8gYWxsIHdobyBoZWxwZWQgYW5kIGdhdmUgZmVlZGJhY2ssCitoYXZlIGZ1biwKKworaG9sZ2Vy
IGtyZWtlbCwgSmFudWFyeSAyMDEwCisKK0NoYW5nZXMgYmV0d2VlbiAxLjIuMCBhbmQgMS4xLjEK
Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLSBtb3ZlZCBkaXN0L2xv
b3BvbmZhaWxpbmcgZnJvbSBweS50ZXN0IGNvcmUgaW50byBhIG5ldworICBzZXBhcmF0ZWx5IHJl
bGVhc2VkIHB5dGVzdC14ZGlzdCBwbHVnaW4uCisKKy0gbmV3IGp1bml0eG1sIHBsdWdpbjogLS1q
dW5pdHhtbD1wYXRoIHdpbGwgZ2VuZXJhdGUgYSBqdW5pdCBzdHlsZSB4bWwgZmlsZQorICB3aGlj
aCBpcyBwcm9jZXNzYWJsZSBlLmcuIGJ5IHRoZSBIdWRzb24gQ0kgc3lzdGVtLgorCistIG5ldyBv
cHRpb246IC0tZ2Vuc2NyaXB0PXBhdGggd2lsbCBnZW5lcmF0ZSBhIHN0YW5kYWxvbmUgcHkudGVz
dCBzY3JpcHQKKyAgd2hpY2ggd2lsbCBub3QgbmVlZCBhbnkgbGlicmFyaWVzIGluc3RhbGxlZC4g
IHRoYW5rcyB0byBSYWxmIFNjaG1pdHQuCisKKy0gbmV3IG9wdGlvbjogLS1pZ25vcmUgd2lsbCBw
cmV2ZW50IHNwZWNpZmllZCBwYXRoIGZyb20gY29sbGVjdGlvbi4KKyAgQ2FuIGJlIHNwZWNpZmll
ZCBtdWx0aXBsZSB0aW1lcy4KKworLSBuZXcgb3B0aW9uOiAtLWNvbmZjdXRkaXI9ZGlyIHdpbGwg
bWFrZSBweS50ZXN0IG9ubHkgY29uc2lkZXIgY29uZnRlc3QKKyAgZmlsZXMgdGhhdCBhcmUgcmVs
YXRpdmUgdG8gdGhlIHNwZWNpZmllZCBkaXIuCisKKy0gbmV3IGZ1bmNhcmc6ICJweXRlc3Rjb25m
aWciIGlzIHRoZSBweXRlc3QgY29uZmlnIG9iamVjdCBmb3IgYWNjZXNzCisgIHRvIGNvbW1hbmQg
bGluZSBhcmdzIGFuZCBjYW4gbm93IGJlIGVhc2lseSB1c2VkIGluIGEgdGVzdC4KKworLSBpbnN0
YWxsICdweS50ZXN0JyBhbmQgYHB5LndoaWNoYCB3aXRoIGEgYGAtJFZFUlNJT05gYCBzdWZmaXgg
dG8KKyAgZGlzYW1iaWd1YXRlIGJldHdlZW4gUHl0aG9uMywgcHl0aG9uMi5YLCBKeXRob24gYW5k
IFB5UHkgaW5zdGFsbGVkIHZlcnNpb25zLgorCistIG5ldyAicHl0ZXN0Y29uZmlnIiBmdW5jYXJn
IGFsbG93cyBhY2Nlc3MgdG8gdGVzdCBjb25maWcgb2JqZWN0CisKKy0gbmV3ICJweXRlc3RfcmVw
b3J0X2hlYWRlciIgaG9vayBjYW4gcmV0dXJuIGFkZGl0aW9uYWwgbGluZXMKKyAgdG8gYmUgZGlz
cGxheWVkIGF0IHRoZSBoZWFkZXIgb2YgYSB0ZXN0IHJ1bi4KKworLSAoZXhwZXJpbWVudGFsKSBh
bGxvdyAicHkudGVzdCBwYXRoOjpuYW1lMTo6bmFtZTI6Oi4uLiIgZm9yIHBvaW50aW5nCisgIHRv
IGEgdGVzdCB3aXRoaW4gYSB0ZXN0IGNvbGxlY3Rpb24gZGlyZWN0bHkuICBUaGlzIG1pZ2h0IGV2
ZW50dWFsbHkKKyAgZXZvbHZlIGFzIGEgZnVsbCBzdWJzdGl0dXRlIHRvICItayIgc3BlY2lmaWNh
dGlvbnMuCisKKy0gc3RyZWFtbGluZWQgcGx1Z2luIGxvYWRpbmc6IG9yZGVyIGlzIG5vdyBhcyBk
b2N1bWVudGVkIGluCisgIGN1c3RvbWl6ZS5odG1sOiBzZXR1cHRvb2xzLCBFTlYsIGNvbW1hbmRs
aW5lLCBjb25mdGVzdC4KKyAgYWxzbyBzZXR1cHRvb2xzIGVudHJ5IHBvaW50IG5hbWVzIGFyZSB0
dXJuZWQgdG8gY2Fub25pY2FsIG5hbWVlcyAoInB5dGVzdF8qIikKKworLSBhdXRvbWF0aWNhbGx5
IHNraXAgdGVzdHMgdGhhdCBuZWVkICdjYXBmZCcgYnV0IGhhdmUgbm8gb3MuZHVwCisKKy0gYWxs
b3cgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzIHRvIGJlIGRlZmluZWQgaW4gY2xhc3NlcyBhcyB3ZWxs
CisKKy0gZGVwcmVjYXRlIHVzYWdlIG9mICdkaXNhYmxlZCcgYXR0cmlidXRlIGluIGZhdm91ciBv
ZiBweXRlc3RtYXJrCistIGRlcHJlY2F0ZSBkZWZpbml0aW9uIG9mIERpcmVjdG9yeSwgTW9kdWxl
LCBDbGFzcyBhbmQgRnVuY3Rpb24gbm9kZXMKKyAgaW4gY29uZnRlc3QucHkgZmlsZXMuICBVc2Ug
cHl0ZXN0IGNvbGxlY3QgaG9va3MgaW5zdGVhZC4KKworLSBjb2xsZWN0aW9uL2l0ZW0gbm9kZSBz
cGVjaWZpYyBydW50ZXN0L2NvbGxlY3QgaG9va3MgYXJlIG9ubHkgY2FsbGVkIGV4YWN0bHkKKyAg
b24gbWF0Y2hpbmcgY29uZnRlc3QucHkgZmlsZXMsIGkuZS4gb25lcyB3aGljaCBhcmUgZXhhY3Rs
eSBiZWxvdworICB0aGUgZmlsZXN5c3RlbSBwYXRoIG9mIGFuIGl0ZW0KKworLSBjaGFuZ2U6IHRo
ZSBmaXJzdCBweXRlc3RfY29sbGVjdF9kaXJlY3RvcnkgaG9vayB0byByZXR1cm4gc29tZXRoaW5n
CisgIHdpbGwgbm93IHByZXZlbnQgZnVydGhlciBob29rcyB0byBiZSBjYWxsZWQuCisKKy0gY2hh
bmdlOiBmaWdsZWFmIHBsdWdpbiBub3cgcmVxdWlyZXMgLS1maWdsZWFmIHRvIHJ1bi4gIEFsc28K
KyAgY2hhbmdlIGl0cyBsb25nIGNvbW1hbmQgbGluZSBvcHRpb25zIHRvIGJlIGEgYml0IHNob3J0
ZXIgKHNlZSBweS50ZXN0IC1oKS4KKworLSBjaGFuZ2U6IHB5dGVzdCBkb2N0ZXN0IHBsdWdpbiBp
cyBub3cgZW5hYmxlZCBieSBkZWZhdWx0IGFuZCBoYXMgYQorICBuZXcgb3B0aW9uIC0tZG9jdGVz
dC1nbG9iIHRvIHNldCBhIHBhdHRlcm4gZm9yIGZpbGUgbWF0Y2hlcy4KKworLSBjaGFuZ2U6IHJl
bW92ZSBpbnRlcm5hbCBweS5fKiBoZWxwZXIgdmFycywgb25seSBrZWVwIHB5Ll9weWRpcgorCist
IHJvYnVzdGlmeSBjYXB0dXJpbmcgdG8gc3Vydml2ZSBpZiBjdXN0b20gcHl0ZXN0X3J1bnRlc3Rf
c2V0dXAKKyAgY29kZSBmYWlsZWQgYW5kIHByZXZlbnRlZCB0aGUgY2FwdHVyaW5nIHNldHVwIGNv
ZGUgZnJvbSBydW5uaW5nLgorCistIG1ha2UgcHkudGVzdC4qIGhlbHBlcnMgcHJvdmlkZWQgYnkg
ZGVmYXVsdCBwbHVnaW5zIHZpc2libGUgZWFybHkgLQorICB3b3JrcyB0cmFuc3BhcmVudGx5IGJv
dGggZm9yIHB5ZG9jIGFuZCBmb3IgaW50ZXJhY3RpdmUgc2Vzc2lvbnMKKyAgd2hpY2ggd2lsbCBy
ZWd1bGFybHkgc2VlIGUuZy4gcHkudGVzdC5tYXJrIGFuZCBweS50ZXN0LmltcG9ydG9yc2tpcC4K
KworLSBzaW1wbGlmeSBpbnRlcm5hbCBwbHVnaW4gbWFuYWdlciBtYWNoaW5lcnkKKy0gc2ltcGxp
ZnkgaW50ZXJuYWwgY29sbGVjdGlvbiB0cmVlIGJ5IGludHJvZHVjaW5nIGEgUm9vdENvbGxlY3Rv
ciBub2RlCisKKy0gZml4IGFzc2VydCByZWludGVycHJlYXRpb24gdGhhdCBzZWVzIGEgY2FsbCBj
b250YWluaW5nICJrZXl3b3JkPS4uLiIKKworLSBmaXggaXNzdWU2NjogaW52b2tlIHB5dGVzdF9z
ZXNzaW9uc3RhcnQgYW5kIHB5dGVzdF9zZXNzaW9uZmluaXNoCisgIGhvb2tzIG9uIHNsYXZlcyBk
dXJpbmcgZGlzdC10ZXN0aW5nLCByZXBvcnQgbW9kdWxlL3Nlc3Npb24gdGVhcmRvd24KKyAgaG9v
a3MgY29ycmVjdGx5LgorCistIGZpeCBpc3N1ZTY1OiBwcm9wZXJseSBoYW5kbGUgZGlzdC10ZXN0
aW5nIGlmIG5vCisgIGV4ZWNuZXQvcHkgbGliIGluc3RhbGxlZCByZW1vdGVseS4KKworLSBza2lw
IHNvbWUgaW5zdGFsbC10ZXN0cyBpZiBubyBleGVjbmV0IGlzIGF2YWlsYWJsZQorCistIGZpeCBk
b2NzLCBmaXggaW50ZXJuYWwgYmluLyBzY3JpcHQgZ2VuZXJhdGlvbgorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuMi4xLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91
bmNlL3JlbGVhc2UtMS4yLjEudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViZjhiYTIyZGM2OTkwYmU3N2RmNTZh
YjRjNWVhOGVmZDFiOGJhYjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5j
ZS9yZWxlYXNlLTEuMi4xLnR4dApAQCAtMCwwICsxLDY2IEBACitweS50ZXN0L3B5bGliIDEuMi4x
OiBsaXR0bGUgZml4ZXMgYW5kIGltcHJvdmVtZW50cworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworcHkudGVzdCBpcyBhbiBhZHZhbmNlZCBhdXRvbWF0ZWQgdGVzdGluZyB0b29sIHdvcmtpbmcg
d2l0aAorUHl0aG9uMiwgUHl0aG9uMyBhbmQgSnl0aG9uIHZlcnNpb25zIG9uIGFsbCBtYWpvciBv
cGVyYXRpbmcKK3N5c3RlbXMuICBJdCBoYXMgYSBzaW1wbGUgcGx1Z2luIGFyY2hpdGVjdHVyZSBh
bmQgY2FuIHJ1biBtYW55CitleGlzdGluZyBjb21tb24gUHl0aG9uIHRlc3Qgc3VpdGVzIHdpdGhv
dXQgbW9kaWZpY2F0aW9uLiAgSXQgb2ZmZXJzCitzb21lIHVuaXF1ZSBmZWF0dXJlcyBub3QgZm91
bmQgaW4gb3RoZXIgdGVzdGluZyB0b29scy4KK1NlZSBodHRwOi8vcHl0ZXN0Lm9yZyBmb3IgbW9y
ZSBpbmZvLgorCitweS50ZXN0IDEuMi4xIGJyaW5ncyBidWcgZml4ZXMgYW5kIHNvbWUgbmV3IG9w
dGlvbnMgYW5kIGFiaWxpdGllcyB0cmlnZ2VyZWQKK2J5IHVzZXIgZmVlZGJhY2s6CisKKyogLS1m
dW5jYXJncyBbdGVzdHBhdGhdICB3aWxsIHNob3cgYXZhaWxhYmxlIGJ1aWx0aW4tIGFuZCBwcm9q
ZWN0IGZ1bmNhcmdzLgorKiBkaXNwbGF5IGEgc2hvcnQgYW5kIGNvbmNpc2UgdHJhY2ViYWNrIGlm
IGZ1bmNhcmcgbG9va3VwIGZhaWxzLgorKiBlYXJseS1sb2FkICJjb25mdGVzdC5weSIgZmlsZXMg
aW4gbm9uLWRvdCBmaXJzdC1sZXZlbCBzdWIgZGlyZWN0b3JpZXMuCisqIC0tdGI9bGluZSB3aWxs
IHByaW50IGEgc2luZ2xlIGxpbmUgZm9yIGVhY2ggZmFpbGluZyB0ZXN0IChpc3N1ZTY3KQorKiBw
eS5jbGVhbnVwIGhhcyBhIG51bWJlciBvZiBuZXcgb3B0aW9ucywgY2xlYW51cHMgdXAgc2V0dXAu
cHkgcmVsYXRlZCBmaWxlcworKiBmaXggaXNzdWU3ODogYWx3YXlzIGNhbGwgcHl0aG9uLWxldmVs
IHRlYXJkb3duIGZ1bmN0aW9ucyBldmVuIGlmIHRoZQorICBhY2NvcmRpbmcgc2V0dXAgZmFpbGVk
LgorCitGb3IgbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiBzZWUgdGhlIGNoYW5nZWxvZyBiZWxv
dy4KKworY2hlZXJzIGFuZCBoYXZlIGZ1biwKKworaG9sZ2VyCisKKworQ2hhbmdlcyBiZXR3ZWVu
IDEuMi4xIGFuZCAxLjIuMAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor
CistIHJlZmluZWQgdXNhZ2UgYW5kIG9wdGlvbnMgZm9yICJweS5jbGVhbnVwIjo6CisKKyAgICBw
eS5jbGVhbnVwICAgICAjIHJlbW92ZSAiKi5weWMiIGFuZCAiKiRweS5jbGFzcyIgKGp5dGhvbikg
ZmlsZXMKKyAgICBweS5jbGVhbnVwIC1lIC5zd3AgLWUgLmNhY2hlICMgYWxzbyByZW1vdmUgZmls
ZXMgd2l0aCB0aGVzZSBleHRlbnNpb25zCisgICAgcHkuY2xlYW51cCAtcyAgIyByZW1vdmUgImJ1
aWxkIiBhbmQgImRpc3QiIGRpcmVjdG9yeSBuZXh0IHRvIHNldHVwLnB5IGZpbGVzCisgICAgcHku
Y2xlYW51cCAtZCAgIyBhbHNvIHJlbW92ZSBlbXB0eSBkaXJlY3RvcmllcworICAgIHB5LmNsZWFu
dXAgLWEgICMgc3lub255bSBmb3IgIi1zIC1kIC1lICdwaXAtbG9nLnR4dCciCisgICAgcHkuY2xl
YW51cCAtbiAgIyBkcnkgcnVuLCBvbmx5IHNob3cgd2hhdCB3b3VsZCBiZSByZW1vdmVkCisKKy0g
YWRkIGEgbmV3IG9wdGlvbiAicHkudGVzdCAtLWZ1bmNhcmdzIiB3aGljaCBzaG93cyBhdmFpbGFi
bGUgZnVuY2FyZ3MKKyAgYW5kIHRoZWlyIGhlbHAgc3RyaW5ncyAoZG9jc3RyaW5ncyBvbiB0aGVp
ciByZXNwZWN0aXZlIGZhY3RvcnkgZnVuY3Rpb24pCisgIGZvciBhIGdpdmVuIHRlc3QgcGF0aAor
CistIGRpc3BsYXkgYSBzaG9ydCBhbmQgY29uY2lzZSB0cmFjZWJhY2sgaWYgYSBmdW5jYXJnIGxv
b2t1cCBmYWlscworCistIGVhcmx5LWxvYWQgImNvbmZ0ZXN0LnB5IiBmaWxlcyBpbiBub24tZG90
IGZpcnN0LWxldmVsIHN1YiBkaXJlY3Rvcmllcy4KKyAgYWxsb3dzIHRvIGNvbnZlbmllbnRseSBr
ZWVwIGFuZCBhY2Nlc3MgdGVzdC1yZWxhdGVkIG9wdGlvbnMgaW4gYSBgYHRlc3RgYAorICBzdWJk
aXIgYW5kIHN0aWxsIGFkZCBjb21tYW5kIGxpbmUgb3B0aW9ucy4KKworLSBmaXggaXNzdWU2Nzog
bmV3IHN1cGVyLXNob3J0IHRyYWNlYmFjay1wcmludGluZyBvcHRpb246ICItLXRiPWxpbmUiIHdp
bGwgcHJpbnQgYSBzaW5nbGUgbGluZSBmb3IgZWFjaCBmYWlsaW5nIChweXRob24pIHRlc3QgaW5k
aWNhdGluZyBpdHMgZmlsZW5hbWUsIGxpbmVubyBhbmQgdGhlIGZhaWx1cmUgdmFsdWUKKworLSBm
aXggaXNzdWU3ODogYWx3YXlzIGNhbGwgcHl0aG9uLWxldmVsIHRlYXJkb3duIGZ1bmN0aW9ucyBl
dmVuIGlmIHRoZQorICBhY2NvcmRpbmcgc2V0dXAgZmFpbGVkLiAgVGhpcyBpbmNsdWRlcyByZWZp
bmVtZW50cyBmb3IgY2FsbGluZyBzZXR1cF9tb2R1bGUvY2xhc3MgZnVuY3Rpb25zCisgIHdoaWNo
IHdpbGwgbm93IG9ubHkgYmUgY2FsbGVkIG9uY2UgaW5zdGVhZCBvZiB0aGUgcHJldmlvdXMgYmVo
YXZpb3VyIHdoZXJlIHRoZXknZCBiZSBjYWxsZWQKKyAgbXVsdGlwbGUgdGltZXMgaWYgdGhleSBy
YWlzZSBhbiBleGNlcHRpb24gKGluY2x1ZGluZyBhIFNraXBwZWQgZXhjZXB0aW9uKS4gIEFueSBl
eGNlcHRpb24KKyAgd2lsbCBiZSByZS1jb3JkZWQgYW5kIGFzc29jaWF0ZWQgd2l0aCBhbGwgdGVz
dHMgaW4gdGhlIGFjY29yZGluZyBtb2R1bGUvY2xhc3Mgc2NvcGUuCisKKy0gZml4IGlzc3VlNjM6
IGFzc3VtZSA8NDAgY29sdW1ucyB0byBiZSBhIGJvZ3VzIHRlcm1pbmFsIHdpZHRoLCBkZWZhdWx0
IHRvIDgwCisKKy0gZml4IHBkYiBkZWJ1Z2dpbmcgdG8gYmUgaW4gdGhlIGNvcnJlY3QgZnJhbWUg
b24gcmFpc2VzLXJlbGF0ZWQgZXJyb3JzCisKKy0gdXBkYXRlIGFwaXBrZy5weSB0byBmaXggYW4g
aXNzdWUgd2hlcmUgcmVjdXJzaXZlIGltcG9ydHMgbWlnaHQKKyAgdW5uZWNlc3NhcmlseSBicmVh
ayBpbXBvcnRpbmcKKworLSBmaXggcGx1Z2luIGxpbmtzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2Rv
Yy9hbm5vdW5jZS9yZWxlYXNlLTEuMy4wLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVh
c2UtMS4zLjAudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNmOTdkYjAzNjdhOGY4MDcxZDY3MzhiMzM3MmFhYzA2
YTI5OThiNzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNl
LTEuMy4wLnR4dApAQCAtMCwwICsxLDU4MCBAQAorcHkudGVzdC9weWxpYiAxLjMuMDogbmV3IG9w
dGlvbnMsIHBlci1wbHVnaW4gaG9va3MsIGZpeGVzIC4uLgorPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisK
K1RoZSAxLjMuMCByZWxlYXNlIGludHJvZHVjZXMgbmV3IG9wdGlvbnMsIGJ1ZyBmaXhlcyBhbmQg
aW1wcm92ZWQgY29tcGF0aWJpbGl0eQord2l0aCBQeXRob24zIGFuZCBKeXRob24tMi41LjEgb24g
V2luZG93cy4gICBJZiB5b3UgYWxyZWFkeSB1c2UgcHktMS4yIGNoYW5jZXMKK2FyZSB5b3UgY2Fu
IHVzZSBweS0xLjMuMC4gIFNlZSB0aGUgYmVsb3cgQ0hBTkdFTE9HIGZvciBtb3JlIGRldGFpbHMg
YW5kCitodHRwOi8vcHlsaWIub3JnL2luc3RhbGwuaHRtbCBmb3IgaW5zdGFsbGF0aW9uIGluc3Ry
dWN0aW9ucy4KKworcHkudGVzdCBpcyBhbiBhZHZhbmNlZCBhdXRvbWF0ZWQgdGVzdGluZyB0b29s
IHdvcmtpbmcgd2l0aCBQeXRob24yLAorUHl0aG9uMywgSnl0aG9uIGFuZCBQeVB5IHZlcnNpb25z
IG9uIGFsbCBtYWpvciBvcGVyYXRpbmcgc3lzdGVtcy4gIEl0CitvZmZlcnMgYSBuby1ib2lsZXJw
bGF0ZSB0ZXN0aW5nIGFwcHJvYWNoIGFuZCBoYXMgaW5zcGlyZWQgb3RoZXIgdGVzdGluZwordG9v
bHMgYW5kIGVuaGFuY2VtZW50cyBpbiB0aGUgc3RhbmRhcmQgUHl0aG9uIGxpYnJhcnkgZm9yIG1v
cmUgdGhhbiBmaXZlCit5ZWFycy4gIEl0IGhhcyBhIHNpbXBsZSBhbmQgZXh0ZW5zaXZlIHBsdWdp
biBhcmNoaXRlY3R1cmUsIGNvbmZpZ3VyYWJsZQorcmVwb3J0aW5nIGFuZCBwcm92aWRlcyB1bmlx
dWUgd2F5cyB0byBtYWtlIGl0IGZpdCB0byB5b3VyIHRlc3RpbmcKK3Byb2Nlc3MgYW5kIG5lZWRz
LgorCitTZWUgaHR0cDovL3B5dGVzdC5vcmcgZm9yIG1vcmUgaW5mby4KKworY2hlZXJzIGFuZCBo
YXZlIGZ1biwKKworaG9sZ2VyIGtyZWtlbAorCitDaGFuZ2VzIGJldHdlZW4gMS4yLjEgYW5kIDEu
My4wCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor
CistIGRlcHJlY2F0ZSAtLXJlcG9ydCBvcHRpb24gaW4gZmF2b3VyIG9mIGEgbmV3IHNob3J0ZXIg
YW5kIGVhc2llciB0bworICByZW1lbWJlciAtciBvcHRpb246IGl0IHRha2VzIGEgc3RyaW5nIGFy
Z3VtZW50IGNvbnNpc3Rpbmcgb2YgYW55CisgIGNvbWJpbmF0aW9uIG9mICd4ZnNYJyBjaGFyYWN0
ZXJzLiAgVGhleSByZWxhdGUgdG8gdGhlIHNpbmdsZSBjaGFycworICB5b3Ugc2VlIGR1cmluZyB0
aGUgZG90dGVkIHByb2dyZXNzIHByaW50aW5nIGFuZCB3aWxsIHByaW50IGFuIGV4dHJhIGxpbmUK
KyAgcGVyIHRlc3QgYXQgdGhlIGVuZCBvZiB0aGUgdGVzdCBydW4uICBUaGlzIGV4dHJhIGxpbmUg
aW5kaWNhdGVzIHRoZSBleGFjdAorICBwb3NpdGlvbiBvciB0ZXN0IElEIHRoYXQgeW91IGRpcmVj
dGx5IHBhc3RlIHRvIHRoZSBweS50ZXN0IGNtZGxpbmUgaW4gb3JkZXIKKyAgdG8gcmUtcnVuIGEg
cGFydGljdWxhciB0ZXN0LgorCistIGFsbG93IGV4dGVybmFsIHBsdWdpbnMgdG8gcmVnaXN0ZXIg
bmV3IGhvb2tzIHZpYSB0aGUgbmV3CisgIHB5dGVzdF9hZGRob29rcyhwbHVnaW5tYW5hZ2VyKSBo
b29rLiAgVGhlIG5ldyByZWxlYXNlIG9mCisgIHRoZSBweXRlc3QteGRpc3QgcGx1Z2luIGZvciBk
aXN0cmlidXRlZCBhbmQgbG9vcG9uZmFpbGluZworICB0ZXN0aW5nIHJlcXVpcmVzIHRoaXMgZmVh
dHVyZS4KKworLSBhZGQgYSBuZXcgcHl0ZXN0X2lnbm9yZV9jb2xsZWN0KHBhdGgsIGNvbmZpZykg
aG9vayB0byBhbGxvdyBwcm9qZWN0cyBhbmQKKyAgcGx1Z2lucyB0byBkZWZpbmUgZXhjbHVzaW9u
IGJlaGF2aW91ciBmb3IgdGhlaXIgZGlyZWN0b3J5IHN0cnVjdHVyZSAtCisgIGZvciBleGFtcGxl
IHlvdSBtYXkgZGVmaW5lIGluIGEgY29uZnRlc3QucHkgdGhpcyBtZXRob2Q6OgorCisgICAgICAg
IGRlZiBweXRlc3RfaWdub3JlX2NvbGxlY3QocGF0aCk6CisgICAgICAgICAgICByZXR1cm4gcGF0
aC5jaGVjayhsaW5rPTEpCisKKyAgdG8gcHJldmVudCBldmVuIGNvbGxlY3Rpb24gb2YgYW55IHRl
c3RzIGluIHN5bWxpbmtlZCBkaXJzLgorCistIG5ldyBweXRlc3RfcHljb2xsZWN0X21ha2Vtb2R1
bGUocGF0aCwgcGFyZW50KSBob29rIGZvcgorICBhbGxvd2luZyBjdXN0b21pemF0aW9uIG9mIHRo
ZSBNb2R1bGUgY29sbGVjdGlvbiBvYmplY3QgZm9yIGEKKyAgbWF0Y2hpbmcgdGVzdCBtb2R1bGUu
CisKKy0gZXh0ZW5kIGFuZCByZWZpbmUgeGZhaWwgbWVjaGFuaXNtOjoKKworICAgIEBweS50ZXN0
Lm1hcmsueGZhaWwocnVuPUZhbHNlKSBkbyBub3QgcnVuIHRoZSBkZWNvcmF0ZWQgdGVzdAorICAg
IEBweS50ZXN0Lm1hcmsueGZhaWwocmVhc29uPSIuLi4iKSBwcmludHMgdGhlIHJlYXNvbiBzdHJp
bmcgaW4geGZhaWwgc3VtbWFyaWVzCisKKyAgc3BlY2lmaXlpbmcgYGAtLXJ1bnhmYWlsYGAgb24g
Y29tbWFuZCBsaW5lIGlnbm9yZXMgeGZhaWwgbWFya2VycyB0byBzaG93CisgIHlvdSB0aGUgdW5k
ZXJseWluZyB0cmFjZWJhY2suCisKKy0gZXhwb3NlIChwcmV2aW91c2x5IGludGVybmFsKSBjb21t
b25seSB1c2VmdWwgbWV0aG9kczoKKyAgcHkuaW8uZ2V0X3Rlcm1pbmFsX3dpdGgoKSAtPiByZXR1
cm4gdGVybWluYWwgd2lkdGgKKyAgcHkuaW8uYW5zaV9wcmludCguLi4pIC0+IHByaW50IGNvbG9y
ZWQvYm9sZCB0ZXh0IG9uIGxpbnV4L3dpbjMyCisgIHB5LmlvLnNhZmVyZXByKG9iaikgLT4gcmV0
dXJuIGxpbWl0ZWQgcmVwcmVzZW50YXRpb24gc3RyaW5nCisKKy0gZXhwb3NlIHRlc3Qgb3V0Y29t
ZSByZWxhdGVkIGV4Y2VwdGlvbnMgYXMgcHkudGVzdC5za2lwLkV4Y2VwdGlvbiwKKyAgcHkudGVz
dC5yYWlzZXMuRXhjZXB0aW9uIGV0Yy4sIHVzZWZ1bCBtb3N0bHkgZm9yIHBsdWdpbnMKKyAgZG9p
bmcgc3BlY2lhbCBvdXRjb21lIGludGVycHJldGF0aW9uL3R3ZWFraW5nCisKKy0gKGlzc3VlODUp
IGZpeCBqdW5pdHhtbCBwbHVnaW4gdG8gaGFuZGxlIHRlc3RzIHdpdGggbm9uLWFzY2lpIG91dHB1
dAorCistIGZpeC9yZWZpbmUgcHl0aG9uMyBjb21wYXRpYmlsaXR5ICh0aGFua3MgQmVuamFtaW4g
UGV0ZXJzb24pCisKKy0gZml4ZXMgZm9yIG1ha2luZyB0aGUganl0aG9uL3dpbjMyIGNvbWJpbmF0
aW9uIHdvcmssIG5vdGUgaG93ZXZlcjoKKyAganl0aG9uMi41LjEvd2luMzIgZG9lcyBub3QgcHJv
dmlkZSBhIGNvbW1hbmQgbGluZSBsYXVuY2hlciwgc2VlCisgIGh0dHA6Ly9idWdzLmp5dGhvbi5v
cmcvaXNzdWUxNDkxIC4gU2VlIHB5bGliIGluc3RhbGwgZG9jdW1lbnRhdGlvbgorICBmb3IgaG93
IHRvIHdvcmsgYXJvdW5kLgorCistIGZpeGVzIGZvciBoYW5kbGluZyBvZiB1bmljb2RlIGV4Y2Vw
dGlvbiB2YWx1ZXMgYW5kIHVucHJpbnRhYmxlIG9iamVjdHMKKworLSAoaXNzdWU4NykgZml4IHVu
Ym91bmRsb2NhbCBlcnJvciBpbiBhc3NlcnRpb25vbGQgY29kZQorCistIChpc3N1ZTg2KSBpbXBy
b3ZlIGRvY3VtZW50YXRpb24gZm9yIGxvb3BvbmZhaWxpbmcKKworLSByZWZpbmUgSU8gY2FwdHVy
aW5nOiBzdGRpbi1yZWRpcmVjdCBwc2V1ZG8tZmlsZSBub3cgaGFzIGEgTk9QIGNsb3NlKCkgbWV0
aG9kCisKKy0gc2hpcCBkaXN0cmlidXRlX3NldHVwLnB5IHZlcnNpb24gMC42LjEwCisKKy0gYWRk
ZWQgbGlua3MgdG8gdGhlIG5ldyBjYXB0dXJlbG9nIGFuZCBjb3ZlcmFnZSBwbHVnaW5zCisKKwor
Q2hhbmdlcyBiZXR3ZWVuIDEuMi4xIGFuZCAxLjIuMAorPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorCistIHJlZmluZWQgdXNhZ2UgYW5kIG9wdGlvbnMgZm9yICJweS5jbGVh
bnVwIjo6CisKKyAgICBweS5jbGVhbnVwICAgICAjIHJlbW92ZSAiKi5weWMiIGFuZCAiKiRweS5j
bGFzcyIgKGp5dGhvbikgZmlsZXMKKyAgICBweS5jbGVhbnVwIC1lIC5zd3AgLWUgLmNhY2hlICMg
YWxzbyByZW1vdmUgZmlsZXMgd2l0aCB0aGVzZSBleHRlbnNpb25zCisgICAgcHkuY2xlYW51cCAt
cyAgIyByZW1vdmUgImJ1aWxkIiBhbmQgImRpc3QiIGRpcmVjdG9yeSBuZXh0IHRvIHNldHVwLnB5
IGZpbGVzCisgICAgcHkuY2xlYW51cCAtZCAgIyBhbHNvIHJlbW92ZSBlbXB0eSBkaXJlY3Rvcmll
cworICAgIHB5LmNsZWFudXAgLWEgICMgc3lub255bSBmb3IgIi1zIC1kIC1lICdwaXAtbG9nLnR4
dCciCisgICAgcHkuY2xlYW51cCAtbiAgIyBkcnkgcnVuLCBvbmx5IHNob3cgd2hhdCB3b3VsZCBi
ZSByZW1vdmVkCisKKy0gYWRkIGEgbmV3IG9wdGlvbiAicHkudGVzdCAtLWZ1bmNhcmdzIiB3aGlj
aCBzaG93cyBhdmFpbGFibGUgZnVuY2FyZ3MKKyAgYW5kIHRoZWlyIGhlbHAgc3RyaW5ncyAoZG9j
c3RyaW5ncyBvbiB0aGVpciByZXNwZWN0aXZlIGZhY3RvcnkgZnVuY3Rpb24pCisgIGZvciBhIGdp
dmVuIHRlc3QgcGF0aAorCistIGRpc3BsYXkgYSBzaG9ydCBhbmQgY29uY2lzZSB0cmFjZWJhY2sg
aWYgYSBmdW5jYXJnIGxvb2t1cCBmYWlscworCistIGVhcmx5LWxvYWQgImNvbmZ0ZXN0LnB5IiBm
aWxlcyBpbiBub24tZG90IGZpcnN0LWxldmVsIHN1YiBkaXJlY3Rvcmllcy4KKyAgYWxsb3dzIHRv
IGNvbnZlbmllbnRseSBrZWVwIGFuZCBhY2Nlc3MgdGVzdC1yZWxhdGVkIG9wdGlvbnMgaW4gYSBg
YHRlc3RgYAorICBzdWJkaXIgYW5kIHN0aWxsIGFkZCBjb21tYW5kIGxpbmUgb3B0aW9ucy4KKwor
LSBmaXggaXNzdWU2NzogbmV3IHN1cGVyLXNob3J0IHRyYWNlYmFjay1wcmludGluZyBvcHRpb246
ICItLXRiPWxpbmUiIHdpbGwgcHJpbnQgYSBzaW5nbGUgbGluZSBmb3IgZWFjaCBmYWlsaW5nIChw
eXRob24pIHRlc3QgaW5kaWNhdGluZyBpdHMgZmlsZW5hbWUsIGxpbmVubyBhbmQgdGhlIGZhaWx1
cmUgdmFsdWUKKworLSBmaXggaXNzdWU3ODogYWx3YXlzIGNhbGwgcHl0aG9uLWxldmVsIHRlYXJk
b3duIGZ1bmN0aW9ucyBldmVuIGlmIHRoZQorICBhY2NvcmRpbmcgc2V0dXAgZmFpbGVkLiAgVGhp
cyBpbmNsdWRlcyByZWZpbmVtZW50cyBmb3IgY2FsbGluZyBzZXR1cF9tb2R1bGUvY2xhc3MgZnVu
Y3Rpb25zCisgIHdoaWNoIHdpbGwgbm93IG9ubHkgYmUgY2FsbGVkIG9uY2UgaW5zdGVhZCBvZiB0
aGUgcHJldmlvdXMgYmVoYXZpb3VyIHdoZXJlIHRoZXknZCBiZSBjYWxsZWQKKyAgbXVsdGlwbGUg
dGltZXMgaWYgdGhleSByYWlzZSBhbiBleGNlcHRpb24gKGluY2x1ZGluZyBhIFNraXBwZWQgZXhj
ZXB0aW9uKS4gIEFueSBleGNlcHRpb24KKyAgd2lsbCBiZSByZS1jb3JkZWQgYW5kIGFzc29jaWF0
ZWQgd2l0aCBhbGwgdGVzdHMgaW4gdGhlIGFjY29yZGluZyBtb2R1bGUvY2xhc3Mgc2NvcGUuCisK
Ky0gZml4IGlzc3VlNjM6IGFzc3VtZSA8NDAgY29sdW1ucyB0byBiZSBhIGJvZ3VzIHRlcm1pbmFs
IHdpZHRoLCBkZWZhdWx0IHRvIDgwCisKKy0gZml4IHBkYiBkZWJ1Z2dpbmcgdG8gYmUgaW4gdGhl
IGNvcnJlY3QgZnJhbWUgb24gcmFpc2VzLXJlbGF0ZWQgZXJyb3JzCisKKy0gdXBkYXRlIGFwaXBr
Zy5weSB0byBmaXggYW4gaXNzdWUgd2hlcmUgcmVjdXJzaXZlIGltcG9ydHMgbWlnaHQKKyAgdW5u
ZWNlc3NhcmlseSBicmVhayBpbXBvcnRpbmcKKworLSBmaXggcGx1Z2luIGxpbmtzCisKK0NoYW5n
ZXMgYmV0d2VlbiAxLjIgYW5kIDEuMS4xCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CisKKy0gbW92ZWQgZGlzdC9sb29wb25mYWlsaW5nIGZyb20gcHkudGVzdCBjb3JlIGlu
dG8gYSBuZXcKKyAgc2VwYXJhdGVseSByZWxlYXNlZCBweXRlc3QteGRpc3QgcGx1Z2luLgorCist
IG5ldyBqdW5pdHhtbCBwbHVnaW46IC0tanVuaXR4bWw9cGF0aCB3aWxsIGdlbmVyYXRlIGEganVu
aXQgc3R5bGUgeG1sIGZpbGUKKyAgd2hpY2ggaXMgcHJvY2Vzc2FibGUgZS5nLiBieSB0aGUgSHVk
c29uIENJIHN5c3RlbS4KKworLSBuZXcgb3B0aW9uOiAtLWdlbnNjcmlwdD1wYXRoIHdpbGwgZ2Vu
ZXJhdGUgYSBzdGFuZGFsb25lIHB5LnRlc3Qgc2NyaXB0CisgIHdoaWNoIHdpbGwgbm90IG5lZWQg
YW55IGxpYnJhcmllcyBpbnN0YWxsZWQuICB0aGFua3MgdG8gUmFsZiBTY2htaXR0LgorCistIG5l
dyBvcHRpb246IC0taWdub3JlIHdpbGwgcHJldmVudCBzcGVjaWZpZWQgcGF0aCBmcm9tIGNvbGxl
Y3Rpb24uCisgIENhbiBiZSBzcGVjaWZpZWQgbXVsdGlwbGUgdGltZXMuCisKKy0gbmV3IG9wdGlv
bjogLS1jb25mY3V0ZGlyPWRpciB3aWxsIG1ha2UgcHkudGVzdCBvbmx5IGNvbnNpZGVyIGNvbmZ0
ZXN0CisgIGZpbGVzIHRoYXQgYXJlIHJlbGF0aXZlIHRvIHRoZSBzcGVjaWZpZWQgZGlyLgorCist
IG5ldyBmdW5jYXJnOiAicHl0ZXN0Y29uZmlnIiBpcyB0aGUgcHl0ZXN0IGNvbmZpZyBvYmplY3Qg
Zm9yIGFjY2VzcworICB0byBjb21tYW5kIGxpbmUgYXJncyBhbmQgY2FuIG5vdyBiZSBlYXNpbHkg
dXNlZCBpbiBhIHRlc3QuCisKKy0gaW5zdGFsbCAncHkudGVzdCcgYW5kIGBweS53aGljaGAgd2l0
aCBhIGBgLSRWRVJTSU9OYGAgc3VmZml4IHRvCisgIGRpc2FtYmlndWF0ZSBiZXR3ZWVuIFB5dGhv
bjMsIHB5dGhvbjIuWCwgSnl0aG9uIGFuZCBQeVB5IGluc3RhbGxlZCB2ZXJzaW9ucy4KKworLSBu
ZXcgInB5dGVzdGNvbmZpZyIgZnVuY2FyZyBhbGxvd3MgYWNjZXNzIHRvIHRlc3QgY29uZmlnIG9i
amVjdAorCistIG5ldyAicHl0ZXN0X3JlcG9ydF9oZWFkZXIiIGhvb2sgY2FuIHJldHVybiBhZGRp
dGlvbmFsIGxpbmVzCisgIHRvIGJlIGRpc3BsYXllZCBhdCB0aGUgaGVhZGVyIG9mIGEgdGVzdCBy
dW4uCisKKy0gKGV4cGVyaW1lbnRhbCkgYWxsb3cgInB5LnRlc3QgcGF0aDo6bmFtZTE6Om5hbWUy
OjouLi4iIGZvciBwb2ludGluZworICB0byBhIHRlc3Qgd2l0aGluIGEgdGVzdCBjb2xsZWN0aW9u
IGRpcmVjdGx5LiAgVGhpcyBtaWdodCBldmVudHVhbGx5CisgIGV2b2x2ZSBhcyBhIGZ1bGwgc3Vi
c3RpdHV0ZSB0byAiLWsiIHNwZWNpZmljYXRpb25zLgorCistIHN0cmVhbWxpbmVkIHBsdWdpbiBs
b2FkaW5nOiBvcmRlciBpcyBub3cgYXMgZG9jdW1lbnRlZCBpbgorICBjdXN0b21pemUuaHRtbDog
c2V0dXB0b29scywgRU5WLCBjb21tYW5kbGluZSwgY29uZnRlc3QuCisgIGFsc28gc2V0dXB0b29s
cyBlbnRyeSBwb2ludCBuYW1lcyBhcmUgdHVybmVkIHRvIGNhbm9uaWNhbCBuYW1lZXMgKCJweXRl
c3RfKiIpCisKKy0gYXV0b21hdGljYWxseSBza2lwIHRlc3RzIHRoYXQgbmVlZCAnY2FwZmQnIGJ1
dCBoYXZlIG5vIG9zLmR1cAorCistIGFsbG93IHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyB0byBiZSBk
ZWZpbmVkIGluIGNsYXNzZXMgYXMgd2VsbAorCistIGRlcHJlY2F0ZSB1c2FnZSBvZiAnZGlzYWJs
ZWQnIGF0dHJpYnV0ZSBpbiBmYXZvdXIgb2YgcHl0ZXN0bWFyaworLSBkZXByZWNhdGUgZGVmaW5p
dGlvbiBvZiBEaXJlY3RvcnksIE1vZHVsZSwgQ2xhc3MgYW5kIEZ1bmN0aW9uIG5vZGVzCisgIGlu
IGNvbmZ0ZXN0LnB5IGZpbGVzLiAgVXNlIHB5dGVzdCBjb2xsZWN0IGhvb2tzIGluc3RlYWQuCisK
Ky0gY29sbGVjdGlvbi9pdGVtIG5vZGUgc3BlY2lmaWMgcnVudGVzdC9jb2xsZWN0IGhvb2tzIGFy
ZSBvbmx5IGNhbGxlZCBleGFjdGx5CisgIG9uIG1hdGNoaW5nIGNvbmZ0ZXN0LnB5IGZpbGVzLCBp
LmUuIG9uZXMgd2hpY2ggYXJlIGV4YWN0bHkgYmVsb3cKKyAgdGhlIGZpbGVzeXN0ZW0gcGF0aCBv
ZiBhbiBpdGVtCisKKy0gY2hhbmdlOiB0aGUgZmlyc3QgcHl0ZXN0X2NvbGxlY3RfZGlyZWN0b3J5
IGhvb2sgdG8gcmV0dXJuIHNvbWV0aGluZworICB3aWxsIG5vdyBwcmV2ZW50IGZ1cnRoZXIgaG9v
a3MgdG8gYmUgY2FsbGVkLgorCistIGNoYW5nZTogZmlnbGVhZiBwbHVnaW4gbm93IHJlcXVpcmVz
IC0tZmlnbGVhZiB0byBydW4uICBBbHNvCisgIGNoYW5nZSBpdHMgbG9uZyBjb21tYW5kIGxpbmUg
b3B0aW9ucyB0byBiZSBhIGJpdCBzaG9ydGVyIChzZWUgcHkudGVzdCAtaCkuCisKKy0gY2hhbmdl
OiBweXRlc3QgZG9jdGVzdCBwbHVnaW4gaXMgbm93IGVuYWJsZWQgYnkgZGVmYXVsdCBhbmQgaGFz
IGEKKyAgbmV3IG9wdGlvbiAtLWRvY3Rlc3QtZ2xvYiB0byBzZXQgYSBwYXR0ZXJuIGZvciBmaWxl
IG1hdGNoZXMuCisKKy0gY2hhbmdlOiByZW1vdmUgaW50ZXJuYWwgcHkuXyogaGVscGVyIHZhcnMs
IG9ubHkga2VlcCBweS5fcHlkaXIKKworLSByb2J1c3RpZnkgY2FwdHVyaW5nIHRvIHN1cnZpdmUg
aWYgY3VzdG9tIHB5dGVzdF9ydW50ZXN0X3NldHVwCisgIGNvZGUgZmFpbGVkIGFuZCBwcmV2ZW50
ZWQgdGhlIGNhcHR1cmluZyBzZXR1cCBjb2RlIGZyb20gcnVubmluZy4KKworLSBtYWtlIHB5LnRl
c3QuKiBoZWxwZXJzIHByb3ZpZGVkIGJ5IGRlZmF1bHQgcGx1Z2lucyB2aXNpYmxlIGVhcmx5IC0K
KyAgd29ya3MgdHJhbnNwYXJlbnRseSBib3RoIGZvciBweWRvYyBhbmQgZm9yIGludGVyYWN0aXZl
IHNlc3Npb25zCisgIHdoaWNoIHdpbGwgcmVndWxhcmx5IHNlZSBlLmcuIHB5LnRlc3QubWFyayBh
bmQgcHkudGVzdC5pbXBvcnRvcnNraXAuCisKKy0gc2ltcGxpZnkgaW50ZXJuYWwgcGx1Z2luIG1h
bmFnZXIgbWFjaGluZXJ5CistIHNpbXBsaWZ5IGludGVybmFsIGNvbGxlY3Rpb24gdHJlZSBieSBp
bnRyb2R1Y2luZyBhIFJvb3RDb2xsZWN0b3Igbm9kZQorCistIGZpeCBhc3NlcnQgcmVpbnRlcnBy
ZWF0aW9uIHRoYXQgc2VlcyBhIGNhbGwgY29udGFpbmluZyAia2V5d29yZD0uLi4iCisKKy0gZml4
IGlzc3VlNjY6IGludm9rZSBweXRlc3Rfc2Vzc2lvbnN0YXJ0IGFuZCBweXRlc3Rfc2Vzc2lvbmZp
bmlzaAorICBob29rcyBvbiBzbGF2ZXMgZHVyaW5nIGRpc3QtdGVzdGluZywgcmVwb3J0IG1vZHVs
ZS9zZXNzaW9uIHRlYXJkb3duCisgIGhvb2tzIGNvcnJlY3RseS4KKworLSBmaXggaXNzdWU2NTog
cHJvcGVybHkgaGFuZGxlIGRpc3QtdGVzdGluZyBpZiBubworICBleGVjbmV0L3B5IGxpYiBpbnN0
YWxsZWQgcmVtb3RlbHkuCisKKy0gc2tpcCBzb21lIGluc3RhbGwtdGVzdHMgaWYgbm8gZXhlY25l
dCBpcyBhdmFpbGFibGUKKworLSBmaXggZG9jcywgZml4IGludGVybmFsIGJpbi8gc2NyaXB0IGdl
bmVyYXRpb24KKworCitDaGFuZ2VzIGJldHdlZW4gMS4xLjEgYW5kIDEuMS4wCis9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy0gaW50cm9kdWNlIGF1dG9tYXRpYyBwbHVn
aW4gcmVnaXN0cmF0aW9uIHZpYSAncHl0ZXN0MTEnCisgIGVudHJ5cG9pbnRzIHZpYSBzZXR1cHRv
b2xzJyBwa2dfcmVzb3VyY2VzLml0ZXJfZW50cnlfcG9pbnRzCisKKy0gZml4IHB5LnRlc3QgZGlz
dC10ZXN0aW5nIHRvIHdvcmsgd2l0aCBleGVjbmV0ID49IDEuMC4wYjQKKworLSByZS1pbnRyb2R1
Y2UgcHkudGVzdC5jbWRsaW5lLm1haW4oKSBmb3IgYmV0dGVyIGJhY2t3YXJkIGNvbXBhdGliaWxp
dHkKKworLSBzdm4gcGF0aHM6IGZpeCBhIGJ1ZyB3aXRoIHBhdGguY2hlY2sodmVyc2lvbmVkPVRy
dWUpIGZvciBzdm4gcGF0aHMsCisgIGFsbG93ICclJyBpbiBzdm4gcGF0aHMsIG1ha2Ugc3Zud2Mu
dXBkYXRlKCkgZGVmYXVsdCB0byBpbnRlcmFjdGl2ZSBtb2RlCisgIGxpa2UgaW4gMS4wLnggYW5k
IGFkZCBzdm53Yy51cGRhdGUoaW50ZXJhY3RpdmU9RmFsc2UpIHRvIGluaGliaXQgaW50ZXJhY3Rp
b24uCisKKy0gcmVmaW5lIGRpc3RyaWJ1dGVkIHRhcmJhbGwgdG8gY29udGFpbiB0ZXN0IGFuZCBu
byBweWMgZmlsZXMKKworLSB0cnkgaGFyZGVyIHRvIGhhdmUgZGVwcmVjYXRpb24gd2FybmluZ3Mg
Zm9yIHB5LmNvbXBhdC4qIGFjY2Vzc2VzCisgIHJlcG9ydCBhIGNvcnJlY3QgbG9jYXRpb24KKwor
Q2hhbmdlcyBiZXR3ZWVuIDEuMS4wIGFuZCAxLjAuMgorPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorCisqIGFkanVzdCBhbmQgaW1wcm92ZSBkb2NzCisKKyogcmVtb3ZlIHB5
LnJlc3QgdG9vbCBhbmQgaW50ZXJuYWwgbmFtZXNwYWNlIC0gaXQgd2FzCisgIG5ldmVyIHJlYWxs
eSBhZHZlcnRpc2VkIGFuZCBjYW4gc3RpbGwgYmUgdXNlZCB3aXRoCisgIHRoZSBvbGQgcmVsZWFz
ZSBpZiBuZWVkZWQuICBJZiB0aGVyZSBpcyBpbnRlcmVzdAorICBpdCBjb3VsZCBiZSByZXZpdmVk
IGludG8gaXRzIG93biB0b29sIGkgZ3Vlc3MuCisKKyogZml4IGlzc3VlNDggYW5kIGlzc3VlNTk6
IHJhaXNlIGFuIEVycm9yIGlmIHRoZSBtb2R1bGUKKyAgZnJvbSBhbiBpbXBvcnRlZCB0ZXN0IGZp
bGUgZG9lcyBub3Qgc2VlbSB0byBjb21lIGZyb20KKyAgdGhlIGZpbGVwYXRoIC0gYXZvaWRzICJz
YW1lLW5hbWUiIGNvbmZ1c2lvbiB0aGF0IGhhcworICBiZWVuIHJlcG9ydGVkIHJlcGVhdGVkbHkK
KworKiBtZXJnZWQgUm9ubnkncyBub3NlLWNvbXBhdGliaWxpdHkgaGFja3M6IG5vdworICBub3Nl
LXN0eWxlIHNldHVwX21vZHVsZSgpIGFuZCBzZXR1cCgpIGZ1bmN0aW9ucyBhcmUKKyAgc3VwcG9y
dGVkCisKKyogaW50cm9kdWNlIGdlbmVyYWxpemVkIHB5LnRlc3QubWFyayBmdW5jdGlvbiBtYXJr
aW5nCisKKyogcmVzaHVmZmxlIC8gcmVmaW5lIGNvbW1hbmQgbGluZSBncm91cGluZworCisqIGRl
cHJlY2F0ZSBwYXJzZXIuYWRkZ3JvdXAgaW4gZmF2b3VyIG9mIGdldGdyb3VwIHdoaWNoIGNyZWF0
ZXMgb3B0aW9uIGdyb3VwCisKKyogYWRkIC0tcmVwb3J0IGNvbW1hbmQgbGluZSBvcHRpb24gdGhh
dCBhbGxvd3MgdG8gY29udHJvbCBzaG93aW5nIG9mIHNraXBwZWQveGZhaWxlZCBzZWN0aW9ucwor
CisqIGdlbmVyYWxpemVkIHNraXBwaW5nOiBhIG5ldyB3YXkgdG8gbWFyayBweXRob24gZnVuY3Rp
b25zIHdpdGggc2tpcGlmIG9yIHhmYWlsCisgIGF0IGZ1bmN0aW9uLCBjbGFzcyBhbmQgbW9kdWxl
cyBsZXZlbCBiYXNlZCBvbiBwbGF0Zm9ybSBvciBzeXMtbW9kdWxlIGF0dHJpYnV0ZXMuCisKKyog
ZXh0ZW5kIHB5LnRlc3QubWFyayBkZWNvcmF0b3IgdG8gYWxsb3cgZm9yIHBvc2l0aW9uYWwgYXJn
cworCisqIGludHJvZHVjZSBhbmQgdGVzdCAicHkuY2xlYW51cCAtZCIgdG8gcmVtb3ZlIGVtcHR5
IGRpcmVjdG9yaWVzCisKKyogZml4IGlzc3VlICM1OSAtIHJvYnVzdGlmeSB1bml0dGVzdCB0ZXN0
IGNvbGxlY3Rpb24KKworKiBtYWtlIGJweXRob24vaGVscCBpbnRlcmFjdGlvbiB3b3JrIGJ5IGFk
ZGluZyBhbiBfX2FsbF9fIGF0dHJpYnV0ZQorICB0byBBcGlNb2R1bGUsIGNsZWFudXAgaW5pdHBr
ZworCisqIHVzZSBNSVQgbGljZW5zZSBmb3IgcHlsaWIsIGFkZCBzb21lIGNvbnRyaWJ1dG9ycwor
CisqIHJlbW92ZSBweS5leGVjbmV0IGNvZGUgYW5kIHN1YnN0aXR1dGUgYWxsIHVzYWdlcyB3aXRo
ICdleGVjbmV0JyBwcm9wZXIKKworKiBmaXggaXNzdWU1MCAtIGNhY2hlZF9zZXR1cCBub3cgY2Fj
aGVzIG1vcmUgdG8gZXhwZWN0YXRpb25zCisgIGZvciB0ZXN0IGZ1bmN0aW9ucyB3aXRoIG11bHRp
cGxlIGFyZ3VtZW50cy4KKworKiBtZXJnZSBKYXJrbydzIGZpeGVzLCBpc3N1ZSAjNDUgYW5kICM0
NgorCisqIGFkZCB0aGUgYWJpbGl0eSB0byBzcGVjaWZ5IGEgcGF0aCBmb3IgcHkubG9va3VwIHRv
IHNlYXJjaCBpbgorCisqIGZpeCBhIGZ1bmNhcmcgY2FjaGVkX3NldHVwIGJ1ZyBwcm9iYWJseSBv
bmx5IG9jY3VyaW5nCisgIGluIGRpc3RyaWJ1dGVkIHRlc3RpbmcgYW5kICJtb2R1bGUiIHNjb3Bl
IHdpdGggdGVhcmRvd24uCisKKyogbWFueSBmaXhlcyBhbmQgY2hhbmdlcyBmb3IgbWFraW5nIHRo
ZSBjb2RlIGJhc2UgcHl0aG9uMyBjb21wYXRpYmxlLAorICBtYW55IHRoYW5rcyB0byBCZW5qYW1p
biBQZXRlcnNvbiBmb3IgaGVscGluZyB3aXRoIHRoaXMuCisKKyogY29uc29saWRhdGUgYnVpbHRp
bnMgaW1wbGVtZW50YXRpb24gdG8gYmUgY29tcGF0aWJsZSB3aXRoID49Mi4zLAorICBhZGQgaGVs
cGVycyB0byBlYXNlIGtlZXBpbmcgMiBhbmQgM2sgY29tcGF0aWJsZSBjb2RlCisKKyogZGVwcmVj
YXRlIHB5LmNvbXBhdC5kb2N0ZXN0fHN1YnByb2Nlc3N8dGV4dHdyYXB8b3B0cGFyc2UKKworKiBk
ZXByZWNhdGUgcHkubWFnaWMuYXV0b3BhdGgsIHJlbW92ZSBweS9tYWdpYyBkaXJlY3RvcnkKKwor
KiBtb3ZlIHB5dGVzdCBhc3NlcnRpb24gaGFuZGxpbmcgdG8gcHkvY29kZSBhbmQgYSBweXRlc3Rf
YXNzZXJ0aW9uCisgIHBsdWdpbiwgYWRkICItLW5vLWFzc2VydCIgb3B0aW9uLCBkZXByZWNhdGUg
cHkubWFnaWMgbmFtZXNwYWNlcworICBpbiBmYXZvdXIgb2YgKGxlc3MpIHB5LmNvZGUgb25lcy4K
KworKiBjb25zb2xpZGF0ZSBhbmQgY2xlYW51cCBweS9jb2RlIGNsYXNzZXMgYW5kIGZpbGVzCisK
KyogY2xlYW51cCBweS9taXNjLCBtb3ZlIHRlc3RzIHRvIGJpbi1mb3ItZGlzdAorCisqIGludHJv
ZHVjZSBkZWxhdHRyL2RlbGl0ZW0vZGVsZW52IG1ldGhvZHMgdG8gcHkudGVzdCdzIG1vbmtleXBh
dGNoIGZ1bmNhcmcKKworKiBjb25zb2xpZGF0ZSBweS5sb2cgaW1wbGVtZW50YXRpb24sIHJlbW92
ZSBvbGQgYXBwcm9hY2guCisKKyogaW50cm9kdWNlIHB5LmlvLlRleHRJTyBhbmQgcHkuaW8uQnl0
ZXNJTyBmb3IgZGlzdGluZ3Vpc2hpbmcgYmV0d2VlbgorICB0ZXh0L3VuaWNvZGUgYW5kIGJ5dGUt
c3RyZWFtcyAodXNlcyB1bmRlcmx5aW5nIHN0YW5kYXJkIGxpYiBpby4qCisgIGlmIGF2YWlsYWJs
ZSkKKworKiBtYWtlIHB5LnVuaXR0ZXN0X2NvbnZlcnQgaGVscGVyIHNjcmlwdCBhdmFpbGFibGUg
d2hpY2ggY29udmVydHMgInVuaXR0ZXN0LnB5IgorICBzdHlsZSBmaWxlcyBpbnRvIHRoZSBzaW1w
bGVyIGFzc2VydC9kaXJlY3QtdGVzdC1jbGFzc2VzIHB5LnRlc3Qvbm9zZXRlc3RzCisgIHN0eWxl
LiAgVGhlIHNjcmlwdCB3YXMgd3JpdHRlbiBieSBMYXVyYSBDcmVpZ2h0b24uCisKKyogc2ltcGxp
ZmllZCBpbnRlcm5hbCBsb2NhbHBhdGggaW1wbGVtZW50YXRpb24KKworQ2hhbmdlcyBiZXR3ZWVu
IDEuMC4xIGFuZCAxLjAuMgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor
CisqIGZpeGluZyBwYWNrYWdpbmcgaXNzdWVzLCB0cmlnZ2VyZWQgYnkgZmVkb3JhIHJlZGhhdCBw
YWNrYWdpbmcsCisgIGFsc28gYWRkZWQgZG9jLCBleGFtcGxlcyBhbmQgY29udHJpYiBkaXJzIHRv
IHRoZSB0YXJiYWxsLgorCisqIGFkZGVkIGEgZG9jdW1lbnRhdGlvbiBsaW5rIHRvIHRoZSBuZXcg
ZGphbmdvIHBsdWdpbi4KKworQ2hhbmdlcyBiZXR3ZWVuIDEuMC4wIGFuZCAxLjAuMQorPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisqIGFkZGVkIGEgJ3B5dGVzdF9ub3Nl
JyBwbHVnaW4gd2hpY2ggaGFuZGxlcyBub3NlLlNraXBUZXN0LAorICBub3NlLXN0eWxlIGZ1bmN0
aW9uL21ldGhvZC9nZW5lcmF0b3Igc2V0dXAvdGVhcmRvd24gYW5kCisgIHRyaWVzIHRvIHJlcG9y
dCBmdW5jdGlvbnMgY29ycmVjdGx5LgorCisqIGNhcHR1cmluZyBvZiB1bmljb2RlIHdyaXRlcyBv
ciBlbmNvZGVkIHN0cmluZ3MgdG8gc3lzLnN0ZG91dC9lcnIKKyAgd29yayBiZXR0ZXIsIGFsc28g
dGVybWluYWx3cml0aW5nIHdhcyBhZGFwdGVkIGFuZCBzb21ld2hhdAorICB1bmlmaWVkIGJldHdl
ZW4gd2luZG93cyBhbmQgbGludXguCisKKyogaW1wcm92ZWQgZG9jdW1lbnRhdGlvbiBsYXlvdXQg
YW5kIGNvbnRlbnQgYSBsb3QKKworKiBhZGRlZCBhICItLWhlbHAtY29uZmlnIiBvcHRpb24gdG8g
c2hvdyBjb25mdGVzdC5weSAvIEVOVi12YXIgbmFtZXMgZm9yCisgIGFsbCBsb25nb3B0IGNtZGxp
bmUgb3B0aW9ucywgYW5kIHNvbWUgc3BlY2lhbCBjb25mdGVzdC5weSB2YXJpYWJsZXMuCisgIHJl
bmFtZWQgJ2NvbmZfY2FwdHVyZScgY29uZnRlc3Qgc2V0dGluZyB0byAnb3B0aW9uX2NhcHR1cmUn
IGFjY29yZGluZ2x5LgorCisqIGZpeCBpc3N1ZSAjMjc6IGJldHRlciByZXBvcnRpbmcgb24gbm9u
LWNvbGxlY3RhYmxlIGl0ZW1zIGdpdmVuIG9uIGNvbW1hbmRsaW5lCisgIChlLmcuIHB5YyBmaWxl
cykKKworKiBmaXggaXNzdWUgIzMzOiBhZGRlZCAtLXZlcnNpb24gZmxhZyAodGhhbmtzIEJlbmph
bWluIFBldGVyc29uKQorCisqIGZpeCBpc3N1ZSAjMzI6IGFkZGluZyBzdXBwb3J0IGZvciAiaW5j
b21wbGV0ZSIgcGF0aHMgdG8gd2NwYXRoLnN0YXR1cygpCisKKyogIlRlc3QiIHByZWZpeGVkIGNs
YXNzZXMgYXJlICpub3QqIGNvbGxlY3RlZCBieSBkZWZhdWx0IGFueW1vcmUgaWYgdGhleQorICBo
YXZlIGFuIF9faW5pdF9fIG1ldGhvZAorCisqIG1vbmtleXBhdGNoIHNldGVudigpIG5vdyBhY2Nl
cHRzIGEgInByZXBlbmQiIHBhcmFtZXRlcgorCisqIGltcHJvdmVkIHJlcG9ydGluZyBvZiBjb2xs
ZWN0aW9uIGVycm9yIHRyYWNlYmFja3MKKworKiBzaW1wbGlmaWVkIG11bHRpY2FsbCBtZWNoYW5p
c20gYW5kIHBsdWdpbiBhcmNoaXRlY3R1cmUsCisgIHJlbmFtZWQgc29tZSBpbnRlcm5hbCBtZXRo
b2RzIGFuZCBhcmduYW1lcworCitDaGFuZ2VzIGJldHdlZW4gMS4wLjBiOSBhbmQgMS4wLjAKKz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworKiBtb3JlIHRlcnNlIHJlcG9y
dGluZyB0cnkgdG8gc2hvdyBmaWxlc3lzdGVtIHBhdGggcmVsYXRpdmVseSB0byBjdXJyZW50IGRp
cgorKiBpbXByb3ZlIHhmYWlsIG91dHB1dCBhIGJpdAorCitDaGFuZ2VzIGJldHdlZW4gMS4wLjBi
OCBhbmQgMS4wLjBiOQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisq
IGNsZWFubHkgaGFuZGxlIGFuZCByZXBvcnQgZmluYWwgdGVhcmRvd24gb2YgdGVzdCBzZXR1cAor
CisqIGZpeCBzdm4tMS42IGNvbXBhdCBpc3N1ZSB3aXRoIHB5LnBhdGguc3Zud2MoKS52ZXJzaW9u
ZWQoKQorICAodGhhbmtzIFdvdXRlciBWYW5kZW4gSG92ZSkKKworKiBzZXR1cC90ZWFyZG93biBv
ciBjb2xsZWN0aW9uIHByb2JsZW1zIG5vdyBzaG93IGFzIEVSUk9ScworICBvciB3aXRoIGJpZyAi
RSIncyBpbiB0aGUgcHJvZ3Jlc3MgbGluZXMuICB0aGV5IGFyZSByZXBvcnRlZAorICBhbmQgY291
bnRlZCBzZXBhcmF0ZWx5LgorCisqIGRpc3QtdGVzdGluZzogcHJvcGVybHkgaGFuZGxlIHRlc3Qg
aXRlbXMgdGhhdCBnZXQgbG9jYWxseQorICBjb2xsZWN0ZWQgYnV0IGNhbm5vdCBiZSBjb2xsZWN0
ZWQgb24gdGhlIHJlbW90ZSBzaWRlIC0gb2Z0ZW4KKyAgZHVlIHRvIHBsYXRmb3JtL2RlcGVuZGVu
Y3kgcmVhc29ucworCisqIHNpbXBsaWZpZWQgcHkudGVzdC5tYXJrIEFQSSAtIHNlZSBrZXl3b3Jk
IHBsdWdpbiBkb2N1bWVudGF0aW9uCisKKyogaW50ZWdyYXRlIGJldHRlciB3aXRoIGxvZ2dpbmc6
IGNhcHR1cmluZyBub3cgYnkgZGVmYXVsdCBjYXB0dXJlcworICB0ZXN0IGZ1bmN0aW9ucyBhbmQg
dGhlaXIgaW1tZWRpYXRlIHNldHVwL3RlYXJkb3duIGluIGEgc2luZ2xlIHN0cmVhbQorCisqIGNh
cHN5cyBhbmQgY2FwZmQgZnVuY2FyZ3Mgbm93IGhhdmUgYSByZWFkb3V0ZXJyKCkgYW5kIGEgY2xv
c2UoKSBtZXRob2QKKyAgKHVuZGVybHlpbmdseSBweS5pby5TdGRDYXB0dXJlL0ZEIG9iamVjdHMg
YXJlIHVzZWQgd2hpY2ggZ3JldyBhCisgIHJlYWRvdXRlcnIoKSBtZXRob2QgYXMgd2VsbCB0byBy
ZXR1cm4gc25hcHNob3RzIG9mIGNhcHR1cmVkIG91dC9lcnIpCisKKyogbWFrZSBhc3NlcnQtcmVp
bnRlcnByZXRhdGlvbiB3b3JrIGJldHRlciB3aXRoIGNvbXBhcmlzb25zIG5vdAorICByZXR1cm5p
bmcgYm9vbHMgKHJlcG9ydGVkIHdpdGggbnVtcHkgZnJvbSB0aGFua3MgbWFjaWVqIGZpamFsa293
c2tpKQorCisqIHJld29ya2VkIHBlci10ZXN0IG91dHB1dCBjYXB0dXJpbmcgaW50byB0aGUgcHl0
ZXN0X2lvY2FwdHVyZS5weSBwbHVnaW4KKyAgYW5kIHRodXMgcmVtb3ZlZCBjYXB0dXJpbmcgY29k
ZSBmcm9tIGNvbmZpZyBvYmplY3QKKworKiBpdGVtLnJlcHJfZmFpbHVyZShleGNpbmZvKSBpbnN0
ZWFkIG9mIGl0ZW0ucmVwcl9mYWlsdXJlKGV4Y2luZm8sIG91dGVycikKKworCitDaGFuZ2VzIGJl
dHdlZW4gMS4wLjBiNyBhbmQgMS4wLjBiOAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorCisqIHB5dGVzdF91bml0dGVzdC1wbHVnaW4gaXMgbm93IGVuYWJsZWQgYnkgZGVm
YXVsdAorCisqIGludHJvZHVjZWQgcHl0ZXN0X2tleWJvYXJkaW50ZXJydXB0IGhvb2sgYW5kCisg
IHJlZmluZWQgcHl0ZXN0X3Nlc3Npb25maW5pc2ggaG9va2VkLCBhZGRlZCB0ZXN0cy4KKworKiB3
b3JrYXJvdW5kIGEgYnVnZ3kgbG9nZ2luZyBtb2R1bGUgaW50ZXJhY3Rpb24gKCJjbG9zaW5nIGFs
cmVhZHkgY2xvc2VkCisgIGZpbGVzIikuICBUaGFua3MgdG8gU3JpZGhhciBSYXRuYWt1bWFyIGZv
ciB0cmlnZ2VyaW5nLgorCisqIGlmIHBsdWdpbnMgdXNlICJweS50ZXN0LmltcG9ydG9yc2tpcCIg
Zm9yIGltcG9ydGluZworICBhIGRlcGVuZGVuY3kgb25seSBhIHdhcm5pbmcgd2lsbCBiZSBpc3N1
ZWQgaW5zdGVhZAorICBvZiBleGl0aW5nIHRoZSB0ZXN0aW5nIHByb2Nlc3MuCisKKyogbWFueSBp
bXByb3ZlbWVudHMgdG8gZG9jczoKKyAgLSByZWZpbmVkIGZ1bmNhcmdzIGRvYyAsIHVzZSB0aGUg
dGVybSAiZmFjdG9yeSIgaW5zdGVhZCBvZiAicHJvdmlkZXIiCisgIC0gYWRkZWQgYSBuZXcgdGFs
ay90dXRvcmlhbCBkb2MgcGFnZQorICAtIGJldHRlciBkb3dubG9hZCBwYWdlCisgIC0gYmV0dGVy
IHBsdWdpbiBkb2NzdHJpbmdzCisgIC0gYWRkZWQgbmV3IHBsdWdpbnMgcGFnZSBhbmQgYXV0b21h
dGljIGRvYyBnZW5lcmF0aW9uIHNjcmlwdAorCisqIGZpeGVkIHRlYXJkb3duIHByb2JsZW0gcmVs
YXRlZCB0byBwYXJ0aWFsbHkgZmFpbGluZyBmdW5jYXJnIHNldHVwcworICAodGhhbmtzIE1yVG9w
ZiBmb3IgcmVwb3J0aW5nKSwgInB5dGVzdF9ydW50ZXN0X3RlYXJkb3duIiBpcyBub3cKKyAgYWx3
YXlzIGludm9rZWQgZXZlbiBpZiB0aGUgInB5dGVzdF9ydW50ZXN0X3NldHVwIiBmYWlsZWQuCisK
KyogdHdlYWtlZCBkb2N0ZXN0IG91dHB1dCBmb3IgZG9jc3RyaW5ncyBpbiBweSBtb2R1bGVzLAor
ICB0aGFua3MgUmFkb21pci4KKworQ2hhbmdlcyBiZXR3ZWVuIDEuMC4wYjMgYW5kIDEuMC4wYjcK
Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisqIHJlbmFt
ZWQgcHkudGVzdC54ZmFpbCBiYWNrIHRvIHB5LnRlc3QubWFyay54ZmFpbCB0byBhdm9pZAorICB0
d28gd2F5cyB0byBkZWNvcmF0ZSBmb3IgeGZhaWwKKworKiByZS1hZGRlZCBweS50ZXN0Lm1hcmsg
ZGVjb3JhdG9yIGZvciBzZXR0aW5nIGtleXdvcmRzIG9uIGZ1bmN0aW9ucworICAoaXQgd2FzIGFj
dHVhbGx5IGRvY3VtZW50ZWQgc28gcmVtb3ZpbmcgaXQgd2FzIG5vdCBuaWNlKQorCisqIHJlbW92
ZSBzY29wZS1hcmd1bWVudCBmcm9tIHJlcXVlc3QuYWRkZmluYWxpemVyKCkgYmVjYXVzZQorICBy
ZXF1ZXN0LmNhY2hlZF9zZXR1cCBoYXMgdGhlIHNjb3BlIGFyZy4gVE9PV1RESS4KKworKiBwZXJm
b3JtIHNldHVwIGZpbmFsaXphdGlvbiBiZWZvcmUgcmVwb3J0aW5nIGZhaWx1cmVzCisKKyogYXBw
bHkgbW9kaWZpZWQgcGF0Y2hlcyBmcm9tIEFuZHJlYXMgS2xvZWNrbmVyIHRvIGFsbG93CisgIHRl
c3QgZnVuY3Rpb25zIHRvIGhhdmUgbm8gZnVuY19jb2RlICgjMjIpIGFuZCB0byBtYWtlCisgICIt
ayIgYW5kIGZ1bmN0aW9uIGtleXdvcmRzIHdvcmsgICgjMjApCisKKyogYXBwbHkgcGF0Y2ggZnJv
bSBEYW5pZWwgUGVvbHpsZWl0aG5lciAoaXNzdWUgIzIzKQorCisqIHJlc29sdmUgaXNzdWUgIzE4
LCBtdWx0aXByb2Nlc3NpbmcuTWFuYWdlcigpIGFuZAorICByZWRpcmVjdGlvbiBjbGFzaAorCisq
IG1ha2UgX19uYW1lX18gPT0gIl9fY2hhbm5lbGV4ZWNfXyIgZm9yIHJlbW90ZV9leGVjIGNvZGUK
KworQ2hhbmdlcyBiZXR3ZWVuIDEuMC4wYjEgYW5kIDEuMC4wYjMKKz09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisqIHBsdWdpbiBjbGFzc2VzIGFyZSByZW1v
dmVkOiBvbmUgbm93IGRlZmluZXMKKyAgaG9va3MgZGlyZWN0bHkgaW4gY29uZnRlc3QucHkgb3Ig
Z2xvYmFsIHB5dGVzdF8qLnB5CisgIGZpbGVzLgorCisqIGFkZGVkIG5ldyBweXRlc3RfbmFtZXNw
YWNlKGNvbmZpZykgaG9vayB0aGF0IGFsbG93cworICB0byBpbmplY3QgaGVscGVycyBkaXJlY3Rs
eSB0byB0aGUgcHkudGVzdC4qIG5hbWVzcGFjZS4KKworKiBkb2N1bWVudGVkIGFuZCByZWZpbmVk
IG1hbnkgaG9va3MKKworKiBhZGRlZCBuZXcgc3R5bGUgb2YgZ2VuZXJhdGl2ZSB0ZXN0cyB2aWEK
KyAgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzIGhvb2sgdGhhdCBpbnRlZ3JhdGVzCisgIHdlbGwgd2l0
aCBmdW5jdGlvbiBhcmd1bWVudHMuCisKKworQ2hhbmdlcyBiZXR3ZWVuIDAuOS4yIGFuZCAxLjAu
MGIxCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworKiBp
bnRyb2R1Y2VkIG5ldyAiZnVuY2FyZyIgc2V0dXAgbWV0aG9kLAorICBzZWUgZG9jL3Rlc3QvZnVu
Y2FyZy50eHQKKworKiBpbnRyb2R1Y2VkIHBsdWdpbiBhcmNoaXRlY3V0dXJlIGFuZCBtYW55Cisg
IG5ldyBweS50ZXN0IHBsdWdpbnMsIHNlZQorICBkb2MvdGVzdC9wbHVnaW5zLnR4dAorCisqIHRl
YXJkb3duX21ldGhvZCBpcyBub3cgZ3VhcmFudGVlZCB0byBnZXQKKyAgY2FsbGVkIGFmdGVyIGEg
dGVzdCBtZXRob2QgaGFzIHJ1bi4KKworKiBuZXcgbWV0aG9kOiBweS50ZXN0LmltcG9ydG9yc2tp
cChtb2QsbWludmVyc2lvbikKKyAgd2lsbCBlaXRoZXIgaW1wb3J0IG9yIGNhbGwgcHkudGVzdC5z
a2lwKCkKKworKiBjb21wbGV0ZWx5IHJldmlzZWQgaW50ZXJuYWwgcHkudGVzdCBhcmNoaXRlY3R1
cmUKKworKiBuZXcgcHkucHJvY2Vzcy5Gb3JrZWRGdW5jIG9iamVjdCBhbGxvd2luZyB0bworICBm
b3JrIGV4ZWN1dGlvbiBvZiBhIGZ1bmN0aW9uIHRvIGEgc3ViIHByb2Nlc3MKKyAgYW5kIGdldHRp
bmcgYSByZXN1bHQgYmFjay4KKworWFhYIGxvdHMgb2YgdGhpbmdzIG1pc3NpbmcgaGVyZSBYWFgK
KworQ2hhbmdlcyBiZXR3ZWVuIDAuOS4xIGFuZCAwLjkuMgorPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQorCisqIHJlZmluZWQgaW5zdGFsbGF0aW9uIGFuZCBtZXRhZGF0YSwgY3JlYXRl
ZCBuZXcgc2V0dXAucHksCisgIG5vdyBiYXNlZCBvbiBzZXR1cHRvb2xzL2V6X3NldHVwICh0aGFu
a3MgdG8gUmFsZiBTY2htaXR0CisgIGZvciBoaXMgc3VwcG9ydCkuCisKKyogaW1wcm92ZWQgdGhl
IHdheSBvZiBtYWtpbmcgcHkuKiBzY3JpcHRzIGF2YWlsYWJsZSBpbgorICB3aW5kb3dzIGVudmly
b25tZW50cywgdGhleSBhcmUgbm93IGFkZGVkIHRvIHRoZQorICBTY3JpcHRzIGRpcmVjdG9yeSBh
cyAiLmNtZCIgZmlsZXMuCisKKyogcHkucGF0aC5zdm53Yy5zdGF0dXMoKSBub3cgaXMgbW9yZSBj
b21wbGV0ZSBhbmQKKyAgdXNlcyB4bWwgb3V0cHV0IGZyb20gdGhlICdzdm4nIGNvbW1hbmQgaWYg
YXZhaWxhYmxlCisgIChHdWlkbyBXZXNkb3JwKQorCisqIGZpeCBmb3IgcHkucGF0aC5zdm4qIHRv
IHdvcmsgd2l0aCBzdm4gMS41CisgIChDaHJpcyBMYW1iKQorCisqIGZpeCBwYXRoLnJlbHRvKG90
aGVycGF0aCkgbWV0aG9kIG9uIHdpbmRvd3MgdG8KKyAgdXNlIG5vcm1jYXNlIGZvciBjaGVja2lu
ZyBpZiBhIHBhdGggaXMgcmVsYXRpdmUuCisKKyogcHkudGVzdCdzIHRyYWNlYmFjayBpcyBiZXR0
ZXIgcGFyc2VhYmxlIGZyb20gZWRpdG9ycworICAoZm9sbG93cyB0aGUgZmlsZW5hbWVzOkxJTkVO
TzogTVNHIGNvbnZlbnRpb24pCisgICh0aGFua3MgdG8gT3NtbyBTYWxvbWFhKQorCisqIGZpeCB0
byBqYXZhc2NyaXB0LWdlbmVyYXRpb24sICJweS50ZXN0IC0tcnVuYnJvd3NlciIKKyAgc2hvdWxk
IHdvcmsgbW9yZSByZWxpYWJseSBub3cKKworKiByZW1vdmVkIHByZXZpb3VzbHkgYWNjaWRlbnRh
bGx5IGFkZGVkCisgIHB5LnRlc3QuYnJva2VuIGFuZCBweS50ZXN0Lm5vdGltcGxlbWVudGVkIGhl
bHBlcnMuCisKKyogdGhlcmUgbm93IGlzIGEgcHkuX192ZXJzaW9uX18gYXR0cmlidXRlCisKK0No
YW5nZXMgYmV0d2VlbiAwLjkuMCBhbmQgMC45LjEKKz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKworVGhpcyBpcyBhIGZhaXJseSBjb21wbGV0ZSBsaXN0IG9mIGNoYW5nZXMgYmV0d2Vl
biAwLjkgYW5kIDAuOS4xLCB3aGljaCBjYW4KK3NlcnZlIGFzIGEgcmVmZXJlbmNlIGZvciBkZXZl
bG9wZXJzLgorCisqIGFsbG93aW5nICsgc2lnbnMgaW4gcHkucGF0aC5zdm4gdXJscyBbMzkxMDZd
CisqIGZpeGVkIHN1cHBvcnQgZm9yIEZhaWxlZCBleGNlcHRpb25zIHdpdGhvdXQgZXhjaW5mbyBp
biBweS50ZXN0IFszOTM0MF0KKyogYWRkZWQgc3VwcG9ydCBmb3Iga2lsbGluZyBwcm9jZXNzZXMg
Zm9yIFdpbmRvd3MgKGFzIHdlbGwgYXMgcGxhdGZvcm1zIHRoYXQKKyAgc3VwcG9ydCBvcy5raWxs
KSBpbiBweS5taXNjLmtpbGxwcm9jIFszOTY1NV0KKyogYWRkZWQgc2V0dXAvdGVhcmRvd24gZm9y
IGdlbmVyYXRpdmUgdGVzdHMgdG8gcHkudGVzdCBbNDA3MDJdCisqIGFkZGVkIGRldGVjdGlvbiBv
ZiBGQUlMRUQgVE8gTE9BRCBNT0RVTEUgdG8gcHkudGVzdCBbNDA3MDMsIDQwNzM4LCA0MDczOV0K
KyogZml4ZWQgcHJvYmxlbSB3aXRoIGNhbGxpbmcgLnJlbW92ZSgpIG9uIHdjcGF0aHMgb2Ygbm9u
LXZlcnNpb25lZCBmaWxlcyBpbgorICBweS5wYXRoIFs0NDI0OF0KKyogZml4ZWQgc29tZSBpbXBv
cnQgYW5kIGluaGVyaXRhbmNlIGlzc3VlcyBpbiBweS50ZXN0IFs0MTQ4MCwgNDQ2NDgsIDQ0NjU1
XQorKiBmYWlsIHRvIHJ1biBncmVlbmxldCB0ZXN0cyB3aGVuIHB5cHkgaXMgYXZhaWxhYmxlLCBi
dXQgd2l0aG91dCBzdGFja2xlc3MKKyAgWzQ1Mjk0XQorKiBzbWFsbCBmaXhlcyBpbiByc2Vzc2lv
biB0ZXN0cyBbNDUyOTVdCisqIGZpeGVkIGlzc3VlIHdpdGggMi41IHR5cGUgcmVwcmVzZW50YXRp
b25zIGluIHB5LnRlc3QgWzQ1NDgzLCA0NTQ4NF0KKyogbWFkZSB0aGF0IGludGVybmFsIHJlcG9y
dGluZyBpc3N1ZXMgZGlzcGxheWluZyBpcyBkb25lIGF0b21pY2FsbHkgaW4gcHkudGVzdAorICBb
NDU1MThdCisqIG1hZGUgdGhhdCBub24tZXhpc3RpbmcgZmlsZXMgYXJlIGlnb3JlZCBieSB0aGUg
cHkubG9va3VwIHNjcmlwdCBbNDU1MTldCisqIGltcHJvdmVkIGV4Y2VwdGlvbiBuYW1lIGNyZWF0
aW9uIGluIHB5LnRlc3QgWzQ1NTM1XQorKiBtYWRlIHRoYXQgbGVzcyB0aHJlYWRzIGFyZSB1c2Vk
IGluIGV4ZWNuZXQgW21lcmdlIGluIDQ1NTM5XQorKiByZW1vdmVkIGxvY2sgcmVxdWlyZWQgZm9y
IGF0b21pY2FsIHJlcG9ydGluZyBpc3N1ZSBkaXNwbGF5aW5nIGluIHB5LnRlc3QKKyAgWzQ1NTQ1
XQorKiByZW1vdmVkIGdsb2JhbHMgZnJvbSBleGVjbmV0IFs0NTU0MSwgNDU1NDddCisqIHJlZmFj
dG9yZWQgY2xlYW51cCBtZWNoYW5pY3MsIG1hZGUgdGhhdCBzZXREYWVtb24gaXMgc2V0IHRvIDEg
dG8gbWFrZSBhdGV4aXQKKyAgZ2V0IGNhbGxlZCBpbiAyLjUgKHB5LmV4ZWNuZXQpIFs0NTU0OF0K
KyogZml4ZWQgYnVnIGluIGpvaW5pbmcgdGhyZWFkcyBpbiBweS5leGVjbmV0J3Mgc2VydmVtYWlu
IFs0NTU0OV0KKyogcmVmYWN0b3JlZCBweS50ZXN0LnJzZXNzaW9uIHRlc3RzIHRvIG5vdCByZWx5
IG9uIGV4YWN0IG91dHB1dCBmb3JtYXQgYW55bW9yZQorICBbNDU2NDZdCisqIHVzaW5nIHJlcHIo
KSBvbiB0ZXN0IG91dGNvbWUgWzQ1NjQ3XQorKiBhZGRlZCAnUmVhc29uJyBjbGFzc2VzIGZvciBw
eS50ZXN0LnNraXAoKSBbNDU2NDgsIDQ1NjQ5XQorKiBraWxsZWQgc29tZSB1bm5lY2Vzc2FyeSBz
YW5pdHkgY2hlY2sgaW4gcHkudGVzdC5jb2xsZWN0IFs0NTY1NV0KKyogYXZvaWQgdXNpbmcgb3Mu
dG1wZmlsZSgpIGluIHB5LmlvLmZkY2FwdHVyZSBiZWNhdXNlIG9uIFdpbmRvd3MgaXQncyBvbmx5
CisgIHVzYWJsZSBieSBBZG1pbmlzdHJhdG9ycyBbNDU5MDFdCisqIGFkZGVkIHN1cHBvcnQgZm9y
IGxvY2tpbmcgYW5kIG5vbi1yZWN1cnNpdmUgY29tbWl0cyB0byBweS5wYXRoLnN2bndjIFs0NTk5
NF0KKyogbG9ja2luZyBmaWxlcyBpbiBweS5leGVjbmV0IHRvIHByZXZlbnQgQ1B5dGhvbiBmcm9t
IHNlZ2ZhdWx0aW5nIFs0NjAxMF0KKyogYWRkZWQgZXhwb3J0KCkgbWV0aG9kIHRvIHB5LnBhdGgu
c3ZudXJsCisqIGZpeGVkIC1kIC14IGluIHB5LnRlc3QgWzQ3Mjc3XQorKiBmaXhlZCBhcmd1bWVu
dCBjb25jYXRlbmF0aW9uIHByb2JsZW0gaW4gcHkucGF0aC5zdm53YyBbNDk0MjNdCisqIHJlc3Rv
cmUgcHkudGVzdCBiZWhhdmlvdXIgdGhhdCBpdCBleGl0cyB3aXRoIGNvZGUgMSB3aGVuIHRoZXJl
IGFyZSBmYWlsdXJlcworICBbNDk5NzRdCisqIGRvbid0IGZhaWwgb24gaHRtbCBmaWxlcyB0aGF0
IGRvbid0IGhhdmUgYW4gYWNjb21wYW55aW5nIC50eHQgZmlsZSBbNTA2MDZdCisqIGZpeGVkICd1
dGVzdGNvbnZlcnQucHkgPCBpbnB1dCcgWzUwNjQ1XQorKiBzbWFsbCBmaXggZm9yIGNvZGUgaW5k
ZW50YXRpb24gaW4gcHkuY29kZS5zb3VyY2UgWzUwNzU1XQorKiBmaXggX2RvY2dlbi5weSBkb2N1
bWVudGF0aW9uIGJ1aWxkaW5nIFs1MTI4NV0KKyogaW1wcm92ZWQgY2hlY2tzIGZvciBzb3VyY2Ug
cmVwcmVzZW50YXRpb24gb2YgY29kZSBibG9ja3MgaW4gcHkudGVzdCBbNTEyOTJdCisqIGFkZGVk
IHN1cHBvcnQgZm9yIHBhc3NpbmcgYXV0aGVudGljYXRpb24gdG8gcHkucGF0aC5zdm4qIG9iamVj
dHMgWzUyMDAwLAorICA1MjAwMV0KKyogcmVtb3ZlZCBzb3J0ZWQoKSBjYWxsIGZvciBweS5hcGln
ZW4gdGVzdHMgaW4gZmF2b3VyIG9mIFtdLnNvcnQoKSB0byBzdXBwb3J0CisgIFB5dGhvbiAyLjMg
WzUyNDgxXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjMuMS50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuMy4xLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
NzFkZTQwOGExMDBlZTUxZWI1ZTYzMjQ2ZDQyNGYzYjNkNzc0OWI4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjMuMS50eHQKQEAgLTAsMCArMSwxMDQg
QEAKK3B5LnRlc3QvcHlsaWIgMS4zLjE6IG5ldyBweS50ZXN0LnhmYWlsLCAtLW1heGZhaWwsIGJl
dHRlciByZXBvcnRpbmcKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitUaGUgcHlsaWIvcHkudGVzdCAx
LjMuMSByZWxlYXNlIGJyaW5nczoKKworLSB0aGUgbmV3IGltcGVyYXRpdmUgYGBweS50ZXN0Lnhm
YWlsKClgYCBoZWxwZXIgaW4gb3JkZXIgdG8gaGF2ZSBhIHRlc3Qgb3IKKyAgc2V0dXAgZnVuY3Rp
b24gcmVzdWx0IGluIGFuICJleHBlY3RlZCBmYWlsdXJlIgorLSBhIG5ldyBvcHRpb24gYGAtLW1h
eGZhaWw9TlVNYGAgdG8gc3RvcCB0aGUgdGVzdCBydW4gYWZ0ZXIgc29tZSBmYWlsdXJlcworLSBt
YXJrZXJzL2RlY29yYXRvcnMgYXJlIG5vdyBhcHBsaWNhYmxlIHRvIHRlc3QgY2xhc3NlcyAoPj1Q
eXRob24yLjYpCistIGltcHJvdmVkIHJlcG9ydGluZywgc2hvcnRlciB0cmFjZWJhY2tzIGluIHNl
dmVyYWwgY2FzZXMKKy0gc29tZSBzaW1wbGlmaWVkIGludGVybmFscywgbW9yZSBjb21wYXRpYmls
aXR5IHdpdGggSnl0aG9uIGFuZCBQeVB5CistIGJ1ZyBmaXhlcyBhbmQgdmFyaW91cyByZWZpbmVt
ZW50cworCitTZWUgdGhlIGJlbG93IENIQU5HRUxPRyBlbnRyeSBiZWxvdyBmb3IgbW9yZSBkZXRh
aWxzIGFuZAoraHR0cDovL3B5bGliLm9yZy9pbnN0YWxsLmh0bWwgZm9yIGluc3RhbGxhdGlvbiBp
bnN0cnVjdGlvbnMuCisKK0lmIHlvdSB1c2VkIG9sZGVyIHZlcnNpb25zIG9mIHB5LnRlc3QgeW91
IHNob3VsZCBiZSBhYmxlIHRvIHVwZ3JhZGUKK3RvIDEuMy4xIHdpdGhvdXQgY2hhbmdlcyB0byB5
b3VyIHRlc3Qgc291cmNlIGNvZGUuCisKK3B5LnRlc3QgaXMgYW4gYXV0b21hdGVkIHRlc3Rpbmcg
dG9vbCB3b3JraW5nIHdpdGggUHl0aG9uMiwKK1B5dGhvbjMsIEp5dGhvbiBhbmQgUHlQeSB2ZXJz
aW9ucyBvbiBhbGwgbWFqb3Igb3BlcmF0aW5nIHN5c3RlbXMuICBJdAorb2ZmZXJzIGEgbm8tYm9p
bGVycGxhdGUgdGVzdGluZyBhcHByb2FjaCBhbmQgaGFzIGluc3BpcmVkIG90aGVyIHRlc3RpbmcK
K3Rvb2xzIGFuZCBlbmhhbmNlbWVudHMgaW4gdGhlIHN0YW5kYXJkIFB5dGhvbiBsaWJyYXJ5IGZv
ciBtb3JlIHRoYW4gZml2ZQoreWVhcnMuICBJdCBoYXMgYSBzaW1wbGUgYW5kIGV4dGVuc2l2ZSBw
bHVnaW4gYXJjaGl0ZWN0dXJlLCBjb25maWd1cmFibGUKK3JlcG9ydGluZyBhbmQgcHJvdmlkZXMg
dW5pcXVlIHdheXMgdG8gbWFrZSBpdCBmaXQgdG8geW91ciB0ZXN0aW5nCitwcm9jZXNzIGFuZCBu
ZWVkcy4KKworU2VlIGh0dHA6Ly9weXRlc3Qub3JnIGZvciBtb3JlIGluZm8uCisKK2NoZWVycyBh
bmQgaGF2ZSBmdW4sCisKK2hvbGdlciBrcmVrZWwKKworQ2hhbmdlcyBiZXR3ZWVuIDEuMy4wIGFu
ZCAxLjMuMQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKworTmV3IGZlYXR1cmVzCisrKysrKysrKysrKysrKysrKysKKworLSBpc3N1ZTkxOiBpbnRy
b2R1Y2UgbmV3IHB5LnRlc3QueGZhaWwocmVhc29uKSBoZWxwZXIKKyAgdG8gaW1wZXJhdGl2ZWx5
IG1hcmsgYSB0ZXN0IGFzIGV4cGVjdGVkIHRvIGZhaWwuIENhbgorICBiZSB1c2VkIGZyb20gd2l0
aGluIHNldHVwIGFuZCB0ZXN0IGZ1bmN0aW9ucy4gVGhpcyBpcworICB1c2VmdWwgZXNwZWNpYWxs
eSBmb3IgcGFyYW1ldHJpemVkIHRlc3RzIHdoZW4gY2VydGFpbgorICBjb25maWd1cmF0aW9ucyBh
cmUgZXhwZWN0ZWQtdG8tZmFpbC4gIEluIHRoaXMgY2FzZSB0aGUKKyAgZGVjbGFyYXRpdmUgYXBw
cm9hY2ggd2l0aCB0aGUgQHB5LnRlc3QubWFyay54ZmFpbCBjYW5ub3QKKyAgYmUgdXNlZCBhcyBp
dCB3b3VsZCBtYXJrIGFsbCBjb25maWd1cmF0aW9ucyBhcyB4ZmFpbC4KKworLSBpc3N1ZTEwMjog
aW50cm9kdWNlIG5ldyAtLW1heGZhaWw9TlVNIG9wdGlvbiB0byBzdG9wCisgIHRlc3QgcnVucyBh
ZnRlciBOVU0gZmFpbHVyZXMuICBUaGlzIGlzIGEgZ2VuZXJhbGl6YXRpb24KKyAgb2YgdGhlICct
eCcgb3IgJy0tZXhpdGZpcnN0JyBvcHRpb24gd2hpY2ggaXMgbm93IGVxdWl2YWxlbnQKKyAgdG8g
Jy0tbWF4ZmFpbD0xJy4gIEJvdGggJy14JyBhbmQgJy0tbWF4ZmFpbCcgd2lsbAorICBub3cgYWxz
byBwcmludCBhIGxpbmUgbmVhciB0aGUgZW5kIGluZGljYXRpbmcgdGhlIEludGVycnVwdGlvbi4K
KworLSBpc3N1ZTg5OiBhbGxvdyBweS50ZXN0Lm1hcmsgZGVjb3JhdG9ycyB0byBiZSB1c2VkIG9u
IGNsYXNzZXMKKyAgKGNsYXNzIGRlY29yYXRvcnMgd2VyZSBpbnRyb2R1Y2VkIHdpdGggcHl0aG9u
Mi42KSBhbmQKKyAgYWxzbyBhbGxvdyB0byBoYXZlIG11bHRpcGxlIG1hcmtlcnMgYXBwbGllZCBh
dCBjbGFzcy9tb2R1bGUgbGV2ZWwKKyAgYnkgc3BlY2lmeWluZyBhIGxpc3QuCisKKy0gaW1wcm92
ZSBhbmQgcmVmaW5lIGxldHRlciByZXBvcnRpbmcgaW4gdGhlIHByb2dyZXNzIGJhcjoKKyAgLiAg
cGFzcworICBmICBmYWlsZWQgdGVzdAorICBzICBza2lwcGVkIHRlc3RzIChyZW1pbmRlcjogdXNl
IGZvciBkZXBlbmRlbmN5L3BsYXRmb3JtIG1pc21hdGNoIG9ubHkpCisgIHggIHhmYWlsZWQgdGVz
dCAodGVzdCB0aGF0IHdhcyBleHBlY3RlZCB0byBmYWlsKQorICBYICB4cGFzc2VkIHRlc3QgKHRl
c3QgdGhhdCB3YXMgZXhwZWN0ZWQgdG8gZmFpbCBidXQgcGFzc2VkKQorCisgIFlvdSBjYW4gdXNl
IGFueSBjb21iaW5hdGlvbiBvZiAnZnN4WCcgd2l0aCB0aGUgJy1yJyBleHRlbmRlZAorICByZXBv
cnRpbmcgb3B0aW9uLiBUaGUgeGZhaWwveHBhc3MgcmVzdWx0cyB3aWxsIHNob3cgdXAgYXMKKyAg
c2tpcHBlZCB0ZXN0cyBpbiB0aGUganVuaXR4bWwgb3V0cHV0IC0gd2hpY2ggYWxzbyBmaXhlcwor
ICBpc3N1ZTk5LgorCistIG1ha2UgcHkudGVzdC5jbWRsaW5lLm1haW4oKSByZXR1cm4gdGhlIGV4
aXRzdGF0dXMgaW5zdGVhZCBvZiByYWlzaW5nCisgIFN5c3RlbUV4aXQgYW5kIGFsc28gYWxsb3cg
aXQgdG8gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzLiAgVGhpcyBvZgorICBjb3Vyc2UgcmVxdWly
ZXMgdGhhdCB5b3VyIGFwcGxpY2F0aW9uIGFuZCB0ZXN0cyBhcmUgcHJvcGVybHkgdGVhcmVkCisg
IGRvd24gYW5kIGRvbid0IGhhdmUgZ2xvYmFsIHN0YXRlLgorCitGaXhlcyAvIE1haW50ZW5hbmNl
CisrKysrKysrKysrKysrKysrKysrKysrCisKKy0gaW1wcm92ZWQgdHJhY2ViYWNrIHByZXNlbnRh
dGlvbjoKKyAgLSBpbXByb3ZlZCBhbmQgdW5pZmllZCByZXBvcnRpbmcgZm9yICItLXRiPXNob3J0
IiBvcHRpb24KKyAgLSBFcnJvcnMgZHVyaW5nIHRlc3QgbW9kdWxlIGltcG9ydHMgYXJlIG11Y2gg
c2hvcnRlciwgKHVzaW5nIC0tdGI9c2hvcnQgc3R5bGUpCisgIC0gcmFpc2VzIHNob3dzIHNob3J0
ZXIgbW9yZSByZWxldmFudCB0cmFjZWJhY2tzCisgIC0gLS1mdWxsdHJhY2Ugbm93IG1vcmUgc3lz
dGVtYXRpY2FsbHkgbWFrZXMgdHJhY2VzIGxvbmdlciAvIGluaGliaXRzIGN1dHRpbmcKKworLSBp
bXByb3ZlIHN1cHBvcnQgZm9yIHJhaXNlcyBhbmQgb3RoZXIgZHluYW1pY2FsbHkgY29tcGlsZWQg
Y29kZSBieQorICBtYW5pcHVsYXRpbmcgcHl0aG9uJ3MgbGluZWNhY2hlLmNhY2hlIGluc3RlYWQg
b2YgdGhlIHByZXZpb3VzCisgIHJhdGhlciBoYWNreSB3YXkgb2YgY3JlYXRpbmcgY3VzdG9tIGNv
ZGUgb2JqZWN0cy4gIFRoaXMgbWFrZXMKKyAgaXQgc2VlbWxlc3NseSB3b3JrIG9uIEp5dGhvbiBh
bmQgUHlQeSB3aGVyZSBpdCBwcmV2aW91c2x5IGRpZG4ndC4KKworLSBmaXggaXNzdWU5NjogbWFr
ZSBjYXB0dXJpbmcgbW9yZSByZXNpbGllbnQgYWdhaW5zdCBDb250cm9sLUMKKyAgaW50ZXJydXB0
aW9ucyAoaW52b2x2ZWQgc29tZXdoYXQgc3Vic3RhbnRpYWwgcmVmYWN0b3JpbmcKKyAgdG8gdGhl
IHVuZGVybHlpbmcgY2FwdHVyaW5nIGZ1bmN0aW9uYWxpdHkgdG8gYXZvaWQgcmFjZQorICBjb25k
aXRpb25zKS4KKworLSBmaXggY2hhaW5pbmcgb2YgY29uZGl0aW9uYWwgc2tpcGlmL3hmYWlsIGRl
Y29yYXRvcnMgLSBzbyBpdCB3b3JrcyBub3cKKyAgYXMgZXhwZWN0ZWQgdG8gdXNlIG11bHRpcGxl
IEBweS50ZXN0Lm1hcmsuc2tpcGlmKGNvbmRpdGlvbikgZGVjb3JhdG9ycywKKyAgaW5jbHVkaW5n
IHNwZWNpZmljIHJlcG9ydGluZyB3aGljaCBvZiB0aGUgY29uZGl0aW9ucyBsZWFkIHRvIHNraXBw
aW5nLgorCistIGZpeCBpc3N1ZTk1OiBsYXRlLWltcG9ydCB6bGliIHNvIHRoYXQgaXQncyBub3Qg
cmVxdWlyZWQKKyAgZm9yIGdlbmVyYWwgcHkudGVzdCBzdGFydHVwLgorCistIGZpeCBpc3N1ZTk0
OiBtYWtlIHJlcG9ydGluZyBtb3JlIHJvYnVzdCBhZ2FpbnN0IGJvZ3VzIHNvdXJjZSBjb2RlCisg
IChhbmQgaW50ZXJuYWxseSBiZSBtb3JlIGNhcmVmdWwgd2hlbiBwcmVzZW50aW5nIHVuZXhwZWN0
ZWQgYnl0ZSBzZXF1ZW5jZXMpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3Jl
bGVhc2UtMS4zLjIudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjMuMi50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTk5ZGZiZWQ3NTVmN2RkZWNmYzJhNGFlMmRjMzc2MjE3Y2YzMTAzMAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4zLjIudHh0CkBA
IC0wLDAgKzEsNzIwIEBACitweS50ZXN0L3B5bGliIDEuMy4yOiBBUEkgYW5kIHJlcG9ydGluZyBy
ZWZpbmVtZW50cywgbWFueSBmaXhlcworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1RoZSBweWxpYi9w
eS50ZXN0IDEuMy4yIHJlbGVhc2UgYnJpbmdzIG1hbnkgYnVnIGZpeGVzIGFuZCBzb21lIG5ldwor
ZmVhdHVyZXMuICBJdCB3YXMgcmVmaW5lZCBmb3IgYW5kIHRlc3RlZCBhZ2FpbnN0IHRoZSByZWNl
bnRseSByZWxlYXNlZAorUHl0aG9uMi43IGFuZCByZW1haW5zIGNvbXBhdGliaWxlIHRvIHRoZSB1
c3VhbCBhcm1hZGEgb2YgaW50ZXJwcmV0ZXJzCisoUHl0aG9uMi40IHRocm91Z2ggdG8gUHl0aG9u
My4xLjIsIEp5dGhvbiBhbmQgUHlQeSkuICBOb3RlIHRoYXQgZm9yIHVzaW5nCitkaXN0cmlidXRl
ZCB0ZXN0aW5nIGZlYXR1cmVzIHlvdSdsbCBuZWVkIHRvIHVwZ3JhZGUgdG8gdGhlIGpvaW50bHkg
cmVsZWFzZWQKK3B5dGVzdC14ZGlzdC0xLjQgYmVjYXVzZSBvZiBzb21lIGludGVybmFsIHJlZmFj
dG9yaW5ncy4KKworU2VlIGh0dHA6Ly9weXRlc3Qub3JnIGZvciBnZW5lcmFsIGRvY3VtZW50YXRp
b24gYW5kIGJlbG93IGZvcgorYSBkZXRhaWxlZCBDSEFOR0VMT0cuCisKK2NoZWVycyAmIHBhcnRp
Y3VsYXIgdGhhbmtzIHRvIEJlbmphbWluIFBldGVyc29uLCBSb25ueSBQZmFubnNjaG1pZHQKK2Fu
ZCBhbGwgaXNzdWUgYW5kIHBhdGNoIGNvbnRyaWJ1dG9ycywKKworaG9sZ2VyIGtyZWtlbAorCitD
aGFuZ2VzIGJldHdlZW4gMS4zLjEgYW5kIDEuMy4yCis9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorCitOZXcgZmVhdHVyZXMKKysrKysrKysrKysrKysr
KysrKworCistIGZpeCBpc3N1ZTEwMzogIGludHJvZHVjZSBweS50ZXN0LnJhaXNlcyBhcyBjb250
ZXh0IG1hbmFnZXIsIGV4YW1wbGVzOjoKKworICAgIHdpdGggcHkudGVzdC5yYWlzZXMoWmVyb0Rp
dmlzaW9uRXJyb3IpOgorICAgICAgICB4ID0gMAorICAgICAgICAxIC8geAorCisgICAgd2l0aCBw
eS50ZXN0LnJhaXNlcyhSdW50aW1lRXJyb3IpIGFzIGV4Y2luZm86CisgICAgICAgIGNhbGxfc29t
ZXRoaW5nKCkKKworICAgICMgeW91IG1heSBkbyBleHRyYSBjaGVja3Mgb24gZXhjaW5mby52YWx1
ZXx0eXBlfHRyYWNlYmFjayBoZXJlCisKKyAgKHRoYW5rcyBSb25ueSBQZmFubnNjaG1pZHQpCisK
Ky0gRnVuY2FyZyBmYWN0b3JpZXMgY2FuIG5vdyBkeW5hbWljYWxseSBhcHBseSBhIG1hcmtlciB0
byBhCisgIHRlc3QgaW52b2NhdGlvbi4gIFRoaXMgaXMgZm9yIGV4YW1wbGUgdXNlZnVsIGlmIGEg
ZmFjdG9yeQorICBwcm92aWRlcyBwYXJhbWV0ZXJzIHRvIGEgdGVzdCB3aGljaCBhcmUgZXhwZWN0
ZWQtdG8tZmFpbDo6CisKKyAgICBkZWYgcHl0ZXN0X2Z1bmNhcmdfX2FyZyhyZXF1ZXN0KToKKyAg
ICAgICAgcmVxdWVzdC5hcHBseW1hcmtlcihweS50ZXN0Lm1hcmsueGZhaWwocmVhc29uPSJmbGFr
eSBjb25maWciKSkKKyAgICAgICAgLi4uCisKKyAgICBkZWYgdGVzdF9mdW5jdGlvbihhcmcpOgor
ICAgICAgICAuLi4KKworLSBpbXByb3ZlZCBlcnJvciByZXBvcnRpbmcgb24gY29sbGVjdGlvbiBh
bmQgaW1wb3J0IGVycm9ycy4gVGhpcyBtYWtlcworICB1c2Ugb2YgYSBtb3JlIGdlbmVyYWwgbWVj
aGFuaXNtLCBuYW1lbHkgdGhhdCBmb3IgY3VzdG9tIHRlc3QgaXRlbS9jb2xsZWN0CisgIG5vZGVz
IGBgbm9kZS5yZXByX2ZhaWx1cmUoZXhjaW5mbylgYCBpcyBub3cgdW5pZm9ybWx5IGNhbGxlZCBz
byB0aGF0IHlvdSBjYW4KKyAgb3ZlcnJpZGUgaXQgdG8gcmV0dXJuIGEgc3RyaW5nIGVycm9yIHJl
cHJlc2VudGF0aW9uIG9mIHlvdXIgY2hvaWNlCisgIHdoaWNoIGlzIGdvaW5nIHRvIGJlIHJlcG9y
dGVkIGFzIGEgKHJlZCkgc3RyaW5nLgorCistIGludHJvZHVjZSAnLS1qdW5pdHByZWZpeD1TVFIn
IG9wdGlvbiB0byBwcmVwZW5kIGEgcHJlZml4CisgIHRvIGFsbCByZXBvcnRzIGluIHRoZSBqdW5p
dHhtbCBmaWxlLgorCitCdWcgZml4ZXMgLyBNYWludGVuYW5jZQorKysrKysrKysrKysrKysrKysr
KysrKysrKysKKworLSBtYWtlIHRlc3RzIGFuZCB0aGUgYGBweXRlc3RfcmVjd2FybmBgIHBsdWdp
biBpbiBwYXJ0aWN1bGFyIGZ1bGx5IGNvbXBhdGlibGUKKyAgdG8gUHl0aG9uMi43IChpZiB5b3Ug
dXNlIHRoZSBgYHJlY3dhcm5gYCBmdW5jYXJnIHdhcm5pbmdzIHdpbGwgYmUgZW5hYmxlZCBzbyB0
aGF0CisgIHlvdSBjYW4gcHJvcGVybHkgY2hlY2sgZm9yIHRoZWlyIGV4aXN0ZW5jZSBpbiBhIGNy
b3NzLXB5dGhvbiBtYW5uZXIpLgorLSByZWZpbmUgLS1wZGI6IGlnbm9yZSB4ZmFpbGVkIHRlc3Rz
LCB1bmlmeSBpdHMgVEItcmVwb3J0aW5nIGFuZAorICBkb24ndCBkaXNwbGF5IGZhaWx1cmVzIGFn
YWluIGF0IHRoZSBlbmQuCistIGZpeCBhc3NlcnRpb24gaW50ZXJwcmV0YXRpb24gd2l0aCB0aGUg
Kiogb3BlcmF0b3IgKHRoYW5rcyBCZW5qYW1pbiBQZXRlcnNvbikKKy0gZml4IGlzc3VlMTA1IGFz
c2lnbm1lbnQgb24gdGhlIHNhbWUgbGluZSBhcyBhIGZhaWxpbmcgYXNzZXJ0aW9uICh0aGFua3Mg
QmVuamFtaW4gUGV0ZXJzb24pCistIGZpeCBpc3N1ZTEwNCBwcm9wZXIgZXNjYXBpbmcgZm9yIHRl
c3QgbmFtZXMgaW4ganVuaXR4bWwgcGx1Z2luICh0aGFua3MgYW5vbnltb3VzKQorLSBmaXggaXNz
dWU1NyAtZnwtLWxvb3BvbmZhaWwgdG8gd29yayB3aXRoIHhwYXNzaW5nIHRlc3RzICh0aGFua3Mg
Um9ubnkpCistIGZpeCBpc3N1ZTkyIGNvbGxlY3Rvbmx5IHJlcG9ydGVyIGFuZCAtLXBhc3RlYmlu
ICh0aGFua3MgQmVuamFtaW4gUGV0ZXJzb24pCistIGZpeCBweS5jb2RlLmNvbXBpbGUoc291cmNl
KSB0byBnZW5lcmF0ZSB1bmlxdWUgZmlsZW5hbWVzCistIGZpeCBhc3NlcnRpb24gcmUtaW50ZXJw
IHByb2JsZW1zIG9uIFB5UHksIGJ5IGRlZmVyaW5nIGNvZGUKKyAgY29tcGlsYXRpb24gdG8gdGhl
IChvdmVycmlkYWJsZSkgRnJhbWUuZXZhbCBjbGFzcy4gKHRoYW5rcyBBbWF1cnkgRm9yZ2VvdCkK
Ky0gZml4IHB5LnBhdGgubG9jYWwucHlpbXBvcnQoKSB0byB3b3JrIHdpdGggZGlyZWN0b3JpZXMK
Ky0gc3RyZWFtbGluZSBweS5wYXRoLmxvY2FsLm1rZHRlbXAgaW1wbGVtZW50YXRpb24gYW5kIHVz
YWdlCistIGRvbid0IHByaW50IGVtcHR5IGxpbmVzIHdoZW4gc2hvd2luZyBqdW5pdHhtbC1maWxl
bmFtZQorLSBhZGQgb3B0aW9uYWwgYm9vbGVhbiBpZ25vcmVfZXJyb3JzIHBhcmFtZXRlciB0byBw
eS5wYXRoLmxvY2FsLnJlbW92ZQorLSBmaXggdGVybWluYWwgd3JpdGluZyBvbiB3aW4zMi9weXRo
b24yLjQKKy0gcHkucHJvY2Vzcy5jbWRleGVjKCkgbm93IHRyaWVzIGhhcmRlciB0byByZXR1cm4g
cHJvcGVybHkgZW5jb2RlZCB1bmljb2RlIG9iamVjdHMKKyAgb24gYWxsIHB5dGhvbiB2ZXJzaW9u
cworLSBpbnN0YWxsIHBsYWluIHB5LnRlc3QvcHkud2hpY2ggc2NyaXB0cyBhbHNvIGZvciBKeXRo
b24sIHRoaXMgaGVscHMgdG8KKyAgZ2V0IGNhbm9uaWNhbCBzY3JpcHQgcGF0aHMgaW4gdmlydHVh
bGVudiBzaXR1YXRpb25zCistIG1ha2UgcGF0aC5iZXN0cmVscGF0aChwYXRoKSByZXR1cm4gIi4i
LCBub3RlIHRoYXQgd2hlbiBjYWxsaW5nCisgIFguYmVzdHJlbHBhdGggdGhlIGFzc3VtcHRpb24g
aXMgdGhhdCBYIGlzIGEgZGlyZWN0b3J5LgorLSBtYWtlIGluaXRpYWwgY29uZnRlc3QgZGlzY292
ZXJ5IGlnbm9yZSAiLS0iIHByZWZpeGVkIGFyZ3VtZW50cworLSBmaXggcmVzdWx0bG9nIHBsdWdp
biB3aGVuIHVzZWQgaW4gYW4gbXVsdGljcHUvbXVsdGlob3N0IHhkaXN0IHNpdHVhdGlvbgorICAo
dGhhbmtzIEpha3ViIEd1c3RhaykKKy0gcGVyZm9ybSBkaXN0cmlidXRlZCB0ZXN0aW5nIHJlbGF0
ZWQgcmVwb3J0aW5nIGluIHRoZSB4ZGlzdC1wbHVnaW4KKyAgcmF0aGVyIHRoYW4gaGF2aW5nIGRp
c3QtcmVsYXRlZCBjb2RlIGluIHRoZSBnZW5lcmljIHB5LnRlc3QKKyAgZGlzdHJpYnV0aW9uCist
IGZpeCBob21lZGlyIGRldGVjdGlvbiBvbiBXaW5kb3dzCistIHNoaXAgZGlzdHJpYnV0ZV9zZXR1
cC5weSB2ZXJzaW9uIDAuNi4xMworCitDaGFuZ2VzIGJldHdlZW4gMS4zLjAgYW5kIDEuMy4xCis9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitOZXcg
ZmVhdHVyZXMKKysrKysrKysrKysrKysrKysrKworCistIGlzc3VlOTE6IGludHJvZHVjZSBuZXcg
cHkudGVzdC54ZmFpbChyZWFzb24pIGhlbHBlcgorICB0byBpbXBlcmF0aXZlbHkgbWFyayBhIHRl
c3QgYXMgZXhwZWN0ZWQgdG8gZmFpbC4gQ2FuCisgIGJlIHVzZWQgZnJvbSB3aXRoaW4gc2V0dXAg
YW5kIHRlc3QgZnVuY3Rpb25zLiBUaGlzIGlzCisgIHVzZWZ1bCBlc3BlY2lhbGx5IGZvciBwYXJh
bWV0cml6ZWQgdGVzdHMgd2hlbiBjZXJ0YWluCisgIGNvbmZpZ3VyYXRpb25zIGFyZSBleHBlY3Rl
ZC10by1mYWlsLiAgSW4gdGhpcyBjYXNlIHRoZQorICBkZWNsYXJhdGl2ZSBhcHByb2FjaCB3aXRo
IHRoZSBAcHkudGVzdC5tYXJrLnhmYWlsIGNhbm5vdAorICBiZSB1c2VkIGFzIGl0IHdvdWxkIG1h
cmsgYWxsIGNvbmZpZ3VyYXRpb25zIGFzIHhmYWlsLgorCistIGlzc3VlMTAyOiBpbnRyb2R1Y2Ug
bmV3IC0tbWF4ZmFpbD1OVU0gb3B0aW9uIHRvIHN0b3AKKyAgdGVzdCBydW5zIGFmdGVyIE5VTSBm
YWlsdXJlcy4gIFRoaXMgaXMgYSBnZW5lcmFsaXphdGlvbgorICBvZiB0aGUgJy14JyBvciAnLS1l
eGl0Zmlyc3QnIG9wdGlvbiB3aGljaCBpcyBub3cgZXF1aXZhbGVudAorICB0byAnLS1tYXhmYWls
PTEnLiAgQm90aCAnLXgnIGFuZCAnLS1tYXhmYWlsJyB3aWxsCisgIG5vdyBhbHNvIHByaW50IGEg
bGluZSBuZWFyIHRoZSBlbmQgaW5kaWNhdGluZyB0aGUgSW50ZXJydXB0aW9uLgorCistIGlzc3Vl
ODk6IGFsbG93IHB5LnRlc3QubWFyayBkZWNvcmF0b3JzIHRvIGJlIHVzZWQgb24gY2xhc3Nlcwor
ICAoY2xhc3MgZGVjb3JhdG9ycyB3ZXJlIGludHJvZHVjZWQgd2l0aCBweXRob24yLjYpIGFuZAor
ICBhbHNvIGFsbG93IHRvIGhhdmUgbXVsdGlwbGUgbWFya2VycyBhcHBsaWVkIGF0IGNsYXNzL21v
ZHVsZSBsZXZlbAorICBieSBzcGVjaWZ5aW5nIGEgbGlzdC4KKworLSBpbXByb3ZlIGFuZCByZWZp
bmUgbGV0dGVyIHJlcG9ydGluZyBpbiB0aGUgcHJvZ3Jlc3MgYmFyOgorICAuICBwYXNzCisgIGYg
IGZhaWxlZCB0ZXN0CisgIHMgIHNraXBwZWQgdGVzdHMgKHJlbWluZGVyOiB1c2UgZm9yIGRlcGVu
ZGVuY3kvcGxhdGZvcm0gbWlzbWF0Y2ggb25seSkKKyAgeCAgeGZhaWxlZCB0ZXN0ICh0ZXN0IHRo
YXQgd2FzIGV4cGVjdGVkIHRvIGZhaWwpCisgIFggIHhwYXNzZWQgdGVzdCAodGVzdCB0aGF0IHdh
cyBleHBlY3RlZCB0byBmYWlsIGJ1dCBwYXNzZWQpCisKKyAgWW91IGNhbiB1c2UgYW55IGNvbWJp
bmF0aW9uIG9mICdmc3hYJyB3aXRoIHRoZSAnLXInIGV4dGVuZGVkCisgIHJlcG9ydGluZyBvcHRp
b24uIFRoZSB4ZmFpbC94cGFzcyByZXN1bHRzIHdpbGwgc2hvdyB1cCBhcworICBza2lwcGVkIHRl
c3RzIGluIHRoZSBqdW5pdHhtbCBvdXRwdXQgLSB3aGljaCBhbHNvIGZpeGVzCisgIGlzc3VlOTku
CisKKy0gbWFrZSBweS50ZXN0LmNtZGxpbmUubWFpbigpIHJldHVybiB0aGUgZXhpdHN0YXR1cyBp
bnN0ZWFkIG9mIHJhaXNpbmcKKyAgU3lzdGVtRXhpdCBhbmQgYWxzbyBhbGxvdyBpdCB0byBiZSBj
YWxsZWQgbXVsdGlwbGUgdGltZXMuICBUaGlzIG9mCisgIGNvdXJzZSByZXF1aXJlcyB0aGF0IHlv
dXIgYXBwbGljYXRpb24gYW5kIHRlc3RzIGFyZSBwcm9wZXJseSB0ZWFyZWQKKyAgZG93biBhbmQg
ZG9uJ3QgaGF2ZSBnbG9iYWwgc3RhdGUuCisKK0ZpeGVzIC8gTWFpbnRlbmFuY2UKKysrKysrKysr
KysrKysrKysrKysrKysKKworLSBpbXByb3ZlZCB0cmFjZWJhY2sgcHJlc2VudGF0aW9uOgorICAt
IGltcHJvdmVkIGFuZCB1bmlmaWVkIHJlcG9ydGluZyBmb3IgIi0tdGI9c2hvcnQiIG9wdGlvbgor
ICAtIEVycm9ycyBkdXJpbmcgdGVzdCBtb2R1bGUgaW1wb3J0cyBhcmUgbXVjaCBzaG9ydGVyLCAo
dXNpbmcgLS10Yj1zaG9ydCBzdHlsZSkKKyAgLSByYWlzZXMgc2hvd3Mgc2hvcnRlciBtb3JlIHJl
bGV2YW50IHRyYWNlYmFja3MKKyAgLSAtLWZ1bGx0cmFjZSBub3cgbW9yZSBzeXN0ZW1hdGljYWxs
eSBtYWtlcyB0cmFjZXMgbG9uZ2VyIC8gaW5oaWJpdHMgY3V0dGluZworCistIGltcHJvdmUgc3Vw
cG9ydCBmb3IgcmFpc2VzIGFuZCBvdGhlciBkeW5hbWljYWxseSBjb21waWxlZCBjb2RlIGJ5Cisg
IG1hbmlwdWxhdGluZyBweXRob24ncyBsaW5lY2FjaGUuY2FjaGUgaW5zdGVhZCBvZiB0aGUgcHJl
dmlvdXMKKyAgcmF0aGVyIGhhY2t5IHdheSBvZiBjcmVhdGluZyBjdXN0b20gY29kZSBvYmplY3Rz
LiAgVGhpcyBtYWtlcworICBpdCBzZWVtbGVzc2x5IHdvcmsgb24gSnl0aG9uIGFuZCBQeVB5IHdo
ZXJlIGl0IHByZXZpb3VzbHkgZGlkbid0LgorCistIGZpeCBpc3N1ZTk2OiBtYWtlIGNhcHR1cmlu
ZyBtb3JlIHJlc2lsaWVudCBhZ2FpbnN0IENvbnRyb2wtQworICBpbnRlcnJ1cHRpb25zIChpbnZv
bHZlZCBzb21ld2hhdCBzdWJzdGFudGlhbCByZWZhY3RvcmluZworICB0byB0aGUgdW5kZXJseWlu
ZyBjYXB0dXJpbmcgZnVuY3Rpb25hbGl0eSB0byBhdm9pZCByYWNlCisgIGNvbmRpdGlvbnMpLgor
CistIGZpeCBjaGFpbmluZyBvZiBjb25kaXRpb25hbCBza2lwaWYveGZhaWwgZGVjb3JhdG9ycyAt
IHNvIGl0IHdvcmtzIG5vdworICBhcyBleHBlY3RlZCB0byB1c2UgbXVsdGlwbGUgQHB5LnRlc3Qu
bWFyay5za2lwaWYoY29uZGl0aW9uKSBkZWNvcmF0b3JzLAorICBpbmNsdWRpbmcgc3BlY2lmaWMg
cmVwb3J0aW5nIHdoaWNoIG9mIHRoZSBjb25kaXRpb25zIGxlYWQgdG8gc2tpcHBpbmcuCisKKy0g
Zml4IGlzc3VlOTU6IGxhdGUtaW1wb3J0IHpsaWIgc28gdGhhdCBpdCdzIG5vdCByZXF1aXJlZAor
ICBmb3IgZ2VuZXJhbCBweS50ZXN0IHN0YXJ0dXAuCisKKy0gZml4IGlzc3VlOTQ6IG1ha2UgcmVw
b3J0aW5nIG1vcmUgcm9idXN0IGFnYWluc3QgYm9ndXMgc291cmNlIGNvZGUKKyAgKGFuZCBpbnRl
cm5hbGx5IGJlIG1vcmUgY2FyZWZ1bCB3aGVuIHByZXNlbnRpbmcgdW5leHBlY3RlZCBieXRlIHNl
cXVlbmNlcykKKworCitDaGFuZ2VzIGJldHdlZW4gMS4yLjEgYW5kIDEuMy4wCis9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistIGRlcHJlY2F0ZSAt
LXJlcG9ydCBvcHRpb24gaW4gZmF2b3VyIG9mIGEgbmV3IHNob3J0ZXIgYW5kIGVhc2llciB0bwor
ICByZW1lbWJlciAtciBvcHRpb246IGl0IHRha2VzIGEgc3RyaW5nIGFyZ3VtZW50IGNvbnNpc3Rp
bmcgb2YgYW55CisgIGNvbWJpbmF0aW9uIG9mICd4ZnNYJyBjaGFyYWN0ZXJzLiAgVGhleSByZWxh
dGUgdG8gdGhlIHNpbmdsZSBjaGFycworICB5b3Ugc2VlIGR1cmluZyB0aGUgZG90dGVkIHByb2dy
ZXNzIHByaW50aW5nIGFuZCB3aWxsIHByaW50IGFuIGV4dHJhIGxpbmUKKyAgcGVyIHRlc3QgYXQg
dGhlIGVuZCBvZiB0aGUgdGVzdCBydW4uICBUaGlzIGV4dHJhIGxpbmUgaW5kaWNhdGVzIHRoZSBl
eGFjdAorICBwb3NpdGlvbiBvciB0ZXN0IElEIHRoYXQgeW91IGRpcmVjdGx5IHBhc3RlIHRvIHRo
ZSBweS50ZXN0IGNtZGxpbmUgaW4gb3JkZXIKKyAgdG8gcmUtcnVuIGEgcGFydGljdWxhciB0ZXN0
LgorCistIGFsbG93IGV4dGVybmFsIHBsdWdpbnMgdG8gcmVnaXN0ZXIgbmV3IGhvb2tzIHZpYSB0
aGUgbmV3CisgIHB5dGVzdF9hZGRob29rcyhwbHVnaW5tYW5hZ2VyKSBob29rLiAgVGhlIG5ldyBy
ZWxlYXNlIG9mCisgIHRoZSBweXRlc3QteGRpc3QgcGx1Z2luIGZvciBkaXN0cmlidXRlZCBhbmQg
bG9vcG9uZmFpbGluZworICB0ZXN0aW5nIHJlcXVpcmVzIHRoaXMgZmVhdHVyZS4KKworLSBhZGQg
YSBuZXcgcHl0ZXN0X2lnbm9yZV9jb2xsZWN0KHBhdGgsIGNvbmZpZykgaG9vayB0byBhbGxvdyBw
cm9qZWN0cyBhbmQKKyAgcGx1Z2lucyB0byBkZWZpbmUgZXhjbHVzaW9uIGJlaGF2aW91ciBmb3Ig
dGhlaXIgZGlyZWN0b3J5IHN0cnVjdHVyZSAtCisgIGZvciBleGFtcGxlIHlvdSBtYXkgZGVmaW5l
IGluIGEgY29uZnRlc3QucHkgdGhpcyBtZXRob2Q6OgorCisgICAgICAgIGRlZiBweXRlc3RfaWdu
b3JlX2NvbGxlY3QocGF0aCk6CisgICAgICAgICAgICByZXR1cm4gcGF0aC5jaGVjayhsaW5rPTEp
CisKKyAgdG8gcHJldmVudCBldmVuIGEgY29sbGVjdGlvbiB0cnkgb2YgYW55IHRlc3RzIGluIHN5
bWxpbmtlZCBkaXJzLgorCistIG5ldyBweXRlc3RfcHljb2xsZWN0X21ha2Vtb2R1bGUocGF0aCwg
cGFyZW50KSBob29rIGZvcgorICBhbGxvd2luZyBjdXN0b21pemF0aW9uIG9mIHRoZSBNb2R1bGUg
Y29sbGVjdGlvbiBvYmplY3QgZm9yIGEKKyAgbWF0Y2hpbmcgdGVzdCBtb2R1bGUuCisKKy0gZXh0
ZW5kIGFuZCByZWZpbmUgeGZhaWwgbWVjaGFuaXNtOgorICBgYEBweS50ZXN0Lm1hcmsueGZhaWwo
cnVuPUZhbHNlKWBgIGRvIG5vdCBydW4gdGhlIGRlY29yYXRlZCB0ZXN0CisgIGBgQHB5LnRlc3Qu
bWFyay54ZmFpbChyZWFzb249Ii4uLiIpYGAgcHJpbnRzIHRoZSByZWFzb24gc3RyaW5nIGluIHhm
YWlsIHN1bW1hcmllcworICBzcGVjaWZpeWluZyBgYC0tcnVueGZhaWxgYCBvbiBjb21tYW5kIGxp
bmUgdmlydHVhbGx5IGlnbm9yZXMgeGZhaWwgbWFya2VycworCistIGV4cG9zZSAocHJldmlvdXNs
eSBpbnRlcm5hbCkgY29tbW9ubHkgdXNlZnVsIG1ldGhvZHM6CisgIHB5LmlvLmdldF90ZXJtaW5h
bF93aXRoKCkgLT4gcmV0dXJuIHRlcm1pbmFsIHdpZHRoCisgIHB5LmlvLmFuc2lfcHJpbnQoLi4u
KSAtPiBwcmludCBjb2xvcmVkL2JvbGQgdGV4dCBvbiBsaW51eC93aW4zMgorICBweS5pby5zYWZl
cmVwcihvYmopIC0+IHJldHVybiBsaW1pdGVkIHJlcHJlc2VudGF0aW9uIHN0cmluZworCistIGV4
cG9zZSB0ZXN0IG91dGNvbWUgcmVsYXRlZCBleGNlcHRpb25zIGFzIHB5LnRlc3Quc2tpcC5FeGNl
cHRpb24sCisgIHB5LnRlc3QucmFpc2VzLkV4Y2VwdGlvbiBldGMuLCB1c2VmdWwgbW9zdGx5IGZv
ciBwbHVnaW5zCisgIGRvaW5nIHNwZWNpYWwgb3V0Y29tZSBpbnRlcnByZXRhdGlvbi90d2Vha2lu
ZworCistIChpc3N1ZTg1KSBmaXgganVuaXR4bWwgcGx1Z2luIHRvIGhhbmRsZSB0ZXN0cyB3aXRo
IG5vbi1hc2NpaSBvdXRwdXQKKworLSBmaXgvcmVmaW5lIHB5dGhvbjMgY29tcGF0aWJpbGl0eSAo
dGhhbmtzIEJlbmphbWluIFBldGVyc29uKQorCistIGZpeGVzIGZvciBtYWtpbmcgdGhlIGp5dGhv
bi93aW4zMiBjb21iaW5hdGlvbiB3b3JrLCBub3RlIGhvd2V2ZXI6CisgIGp5dGhvbjIuNS4xL3dp
bjMyIGRvZXMgbm90IHByb3ZpZGUgYSBjb21tYW5kIGxpbmUgbGF1bmNoZXIsIHNlZQorICBodHRw
Oi8vYnVncy5qeXRob24ub3JnL2lzc3VlMTQ5MSAuIFNlZSBweWxpYiBpbnN0YWxsIGRvY3VtZW50
YXRpb24KKyAgZm9yIGhvdyB0byB3b3JrIGFyb3VuZC4KKworLSBmaXhlcyBmb3IgaGFuZGxpbmcg
b2YgdW5pY29kZSBleGNlcHRpb24gdmFsdWVzIGFuZCB1bnByaW50YWJsZSBvYmplY3RzCisKKy0g
KGlzc3VlODcpIGZpeCB1bmJvdW5kbG9jYWwgZXJyb3IgaW4gYXNzZXJ0aW9ub2xkIGNvZGUKKwor
LSAoaXNzdWU4NikgaW1wcm92ZSBkb2N1bWVudGF0aW9uIGZvciBsb29wb25mYWlsaW5nCisKKy0g
cmVmaW5lIElPIGNhcHR1cmluZzogc3RkaW4tcmVkaXJlY3QgcHNldWRvLWZpbGUgbm93IGhhcyBh
IE5PUCBjbG9zZSgpIG1ldGhvZAorCistIHNoaXAgZGlzdHJpYnV0ZV9zZXR1cC5weSB2ZXJzaW9u
IDAuNi4xMAorCistIGFkZGVkIGxpbmtzIHRvIHRoZSBuZXcgY2FwdHVyZWxvZyBhbmQgY292ZXJh
Z2UgcGx1Z2lucworCisKK0NoYW5nZXMgYmV0d2VlbiAxLjIuMSBhbmQgMS4yLjAKKz09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLSByZWZpbmVkIHVzYWdlIGFuZCBvcHRp
b25zIGZvciAicHkuY2xlYW51cCI6OgorCisgICAgcHkuY2xlYW51cCAgICAgIyByZW1vdmUgIiou
cHljIiBhbmQgIiokcHkuY2xhc3MiIChqeXRob24pIGZpbGVzCisgICAgcHkuY2xlYW51cCAtZSAu
c3dwIC1lIC5jYWNoZSAjIGFsc28gcmVtb3ZlIGZpbGVzIHdpdGggdGhlc2UgZXh0ZW5zaW9ucwor
ICAgIHB5LmNsZWFudXAgLXMgICMgcmVtb3ZlICJidWlsZCIgYW5kICJkaXN0IiBkaXJlY3Rvcnkg
bmV4dCB0byBzZXR1cC5weSBmaWxlcworICAgIHB5LmNsZWFudXAgLWQgICMgYWxzbyByZW1vdmUg
ZW1wdHkgZGlyZWN0b3JpZXMKKyAgICBweS5jbGVhbnVwIC1hICAjIHN5bm9ueW0gZm9yICItcyAt
ZCAtZSAncGlwLWxvZy50eHQnIgorICAgIHB5LmNsZWFudXAgLW4gICMgZHJ5IHJ1biwgb25seSBz
aG93IHdoYXQgd291bGQgYmUgcmVtb3ZlZAorCistIGFkZCBhIG5ldyBvcHRpb24gInB5LnRlc3Qg
LS1mdW5jYXJncyIgd2hpY2ggc2hvd3MgYXZhaWxhYmxlIGZ1bmNhcmdzCisgIGFuZCB0aGVpciBo
ZWxwIHN0cmluZ3MgKGRvY3N0cmluZ3Mgb24gdGhlaXIgcmVzcGVjdGl2ZSBmYWN0b3J5IGZ1bmN0
aW9uKQorICBmb3IgYSBnaXZlbiB0ZXN0IHBhdGgKKworLSBkaXNwbGF5IGEgc2hvcnQgYW5kIGNv
bmNpc2UgdHJhY2ViYWNrIGlmIGEgZnVuY2FyZyBsb29rdXAgZmFpbHMKKworLSBlYXJseS1sb2Fk
ICJjb25mdGVzdC5weSIgZmlsZXMgaW4gbm9uLWRvdCBmaXJzdC1sZXZlbCBzdWIgZGlyZWN0b3Jp
ZXMuCisgIGFsbG93cyB0byBjb252ZW5pZW50bHkga2VlcCBhbmQgYWNjZXNzIHRlc3QtcmVsYXRl
ZCBvcHRpb25zIGluIGEgYGB0ZXN0YGAKKyAgc3ViZGlyIGFuZCBzdGlsbCBhZGQgY29tbWFuZCBs
aW5lIG9wdGlvbnMuCisKKy0gZml4IGlzc3VlNjc6IG5ldyBzdXBlci1zaG9ydCB0cmFjZWJhY2st
cHJpbnRpbmcgb3B0aW9uOiAiLS10Yj1saW5lIiB3aWxsIHByaW50IGEgc2luZ2xlIGxpbmUgZm9y
IGVhY2ggZmFpbGluZyAocHl0aG9uKSB0ZXN0IGluZGljYXRpbmcgaXRzIGZpbGVuYW1lLCBsaW5l
bm8gYW5kIHRoZSBmYWlsdXJlIHZhbHVlCisKKy0gZml4IGlzc3VlNzg6IGFsd2F5cyBjYWxsIHB5
dGhvbi1sZXZlbCB0ZWFyZG93biBmdW5jdGlvbnMgZXZlbiBpZiB0aGUKKyAgYWNjb3JkaW5nIHNl
dHVwIGZhaWxlZC4gIFRoaXMgaW5jbHVkZXMgcmVmaW5lbWVudHMgZm9yIGNhbGxpbmcgc2V0dXBf
bW9kdWxlL2NsYXNzIGZ1bmN0aW9ucworICB3aGljaCB3aWxsIG5vdyBvbmx5IGJlIGNhbGxlZCBv
bmNlIGluc3RlYWQgb2YgdGhlIHByZXZpb3VzIGJlaGF2aW91ciB3aGVyZSB0aGV5J2QgYmUgY2Fs
bGVkCisgIG11bHRpcGxlIHRpbWVzIGlmIHRoZXkgcmFpc2UgYW4gZXhjZXB0aW9uIChpbmNsdWRp
bmcgYSBTa2lwcGVkIGV4Y2VwdGlvbikuICBBbnkgZXhjZXB0aW9uCisgIHdpbGwgYmUgcmUtY29y
ZGVkIGFuZCBhc3NvY2lhdGVkIHdpdGggYWxsIHRlc3RzIGluIHRoZSBhY2NvcmRpbmcgbW9kdWxl
L2NsYXNzIHNjb3BlLgorCistIGZpeCBpc3N1ZTYzOiBhc3N1bWUgPDQwIGNvbHVtbnMgdG8gYmUg
YSBib2d1cyB0ZXJtaW5hbCB3aWR0aCwgZGVmYXVsdCB0byA4MAorCistIGZpeCBwZGIgZGVidWdn
aW5nIHRvIGJlIGluIHRoZSBjb3JyZWN0IGZyYW1lIG9uIHJhaXNlcy1yZWxhdGVkIGVycm9ycwor
CistIHVwZGF0ZSBhcGlwa2cucHkgdG8gZml4IGFuIGlzc3VlIHdoZXJlIHJlY3Vyc2l2ZSBpbXBv
cnRzIG1pZ2h0CisgIHVubmVjZXNzYXJpbHkgYnJlYWsgaW1wb3J0aW5nCisKKy0gZml4IHBsdWdp
biBsaW5rcworCitDaGFuZ2VzIGJldHdlZW4gMS4yIGFuZCAxLjEuMQorPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorCistIG1vdmVkIGRpc3QvbG9vcG9uZmFpbGluZyBmcm9t
IHB5LnRlc3QgY29yZSBpbnRvIGEgbmV3CisgIHNlcGFyYXRlbHkgcmVsZWFzZWQgcHl0ZXN0LXhk
aXN0IHBsdWdpbi4KKworLSBuZXcganVuaXR4bWwgcGx1Z2luOiAtLWp1bml0eG1sPXBhdGggd2ls
bCBnZW5lcmF0ZSBhIGp1bml0IHN0eWxlIHhtbCBmaWxlCisgIHdoaWNoIGlzIHByb2Nlc3NhYmxl
IGUuZy4gYnkgdGhlIEh1ZHNvbiBDSSBzeXN0ZW0uCisKKy0gbmV3IG9wdGlvbjogLS1nZW5zY3Jp
cHQ9cGF0aCB3aWxsIGdlbmVyYXRlIGEgc3RhbmRhbG9uZSBweS50ZXN0IHNjcmlwdAorICB3aGlj
aCB3aWxsIG5vdCBuZWVkIGFueSBsaWJyYXJpZXMgaW5zdGFsbGVkLiAgdGhhbmtzIHRvIFJhbGYg
U2NobWl0dC4KKworLSBuZXcgb3B0aW9uOiAtLWlnbm9yZSB3aWxsIHByZXZlbnQgc3BlY2lmaWVk
IHBhdGggZnJvbSBjb2xsZWN0aW9uLgorICBDYW4gYmUgc3BlY2lmaWVkIG11bHRpcGxlIHRpbWVz
LgorCistIG5ldyBvcHRpb246IC0tY29uZmN1dGRpcj1kaXIgd2lsbCBtYWtlIHB5LnRlc3Qgb25s
eSBjb25zaWRlciBjb25mdGVzdAorICBmaWxlcyB0aGF0IGFyZSByZWxhdGl2ZSB0byB0aGUgc3Bl
Y2lmaWVkIGRpci4KKworLSBuZXcgZnVuY2FyZzogInB5dGVzdGNvbmZpZyIgaXMgdGhlIHB5dGVz
dCBjb25maWcgb2JqZWN0IGZvciBhY2Nlc3MKKyAgdG8gY29tbWFuZCBsaW5lIGFyZ3MgYW5kIGNh
biBub3cgYmUgZWFzaWx5IHVzZWQgaW4gYSB0ZXN0LgorCistIGluc3RhbGwgJ3B5LnRlc3QnIGFu
ZCBgcHkud2hpY2hgIHdpdGggYSBgYC0kVkVSU0lPTmBgIHN1ZmZpeCB0bworICBkaXNhbWJpZ3Vh
dGUgYmV0d2VlbiBQeXRob24zLCBweXRob24yLlgsIEp5dGhvbiBhbmQgUHlQeSBpbnN0YWxsZWQg
dmVyc2lvbnMuCisKKy0gbmV3ICJweXRlc3Rjb25maWciIGZ1bmNhcmcgYWxsb3dzIGFjY2VzcyB0
byB0ZXN0IGNvbmZpZyBvYmplY3QKKworLSBuZXcgInB5dGVzdF9yZXBvcnRfaGVhZGVyIiBob29r
IGNhbiByZXR1cm4gYWRkaXRpb25hbCBsaW5lcworICB0byBiZSBkaXNwbGF5ZWQgYXQgdGhlIGhl
YWRlciBvZiBhIHRlc3QgcnVuLgorCistIChleHBlcmltZW50YWwpIGFsbG93ICJweS50ZXN0IHBh
dGg6Om5hbWUxOjpuYW1lMjo6Li4uIiBmb3IgcG9pbnRpbmcKKyAgdG8gYSB0ZXN0IHdpdGhpbiBh
IHRlc3QgY29sbGVjdGlvbiBkaXJlY3RseS4gIFRoaXMgbWlnaHQgZXZlbnR1YWxseQorICBldm9s
dmUgYXMgYSBmdWxsIHN1YnN0aXR1dGUgdG8gIi1rIiBzcGVjaWZpY2F0aW9ucy4KKworLSBzdHJl
YW1saW5lZCBwbHVnaW4gbG9hZGluZzogb3JkZXIgaXMgbm93IGFzIGRvY3VtZW50ZWQgaW4KKyAg
Y3VzdG9taXplLmh0bWw6IHNldHVwdG9vbHMsIEVOViwgY29tbWFuZGxpbmUsIGNvbmZ0ZXN0Lgor
ICBhbHNvIHNldHVwdG9vbHMgZW50cnkgcG9pbnQgbmFtZXMgYXJlIHR1cm5lZCB0byBjYW5vbmlj
YWwgbmFtZWVzICgicHl0ZXN0XyoiKQorCistIGF1dG9tYXRpY2FsbHkgc2tpcCB0ZXN0cyB0aGF0
IG5lZWQgJ2NhcGZkJyBidXQgaGF2ZSBubyBvcy5kdXAKKworLSBhbGxvdyBweXRlc3RfZ2VuZXJh
dGVfdGVzdHMgdG8gYmUgZGVmaW5lZCBpbiBjbGFzc2VzIGFzIHdlbGwKKworLSBkZXByZWNhdGUg
dXNhZ2Ugb2YgJ2Rpc2FibGVkJyBhdHRyaWJ1dGUgaW4gZmF2b3VyIG9mIHB5dGVzdG1hcmsKKy0g
ZGVwcmVjYXRlIGRlZmluaXRpb24gb2YgRGlyZWN0b3J5LCBNb2R1bGUsIENsYXNzIGFuZCBGdW5j
dGlvbiBub2RlcworICBpbiBjb25mdGVzdC5weSBmaWxlcy4gIFVzZSBweXRlc3QgY29sbGVjdCBo
b29rcyBpbnN0ZWFkLgorCistIGNvbGxlY3Rpb24vaXRlbSBub2RlIHNwZWNpZmljIHJ1bnRlc3Qv
Y29sbGVjdCBob29rcyBhcmUgb25seSBjYWxsZWQgZXhhY3RseQorICBvbiBtYXRjaGluZyBjb25m
dGVzdC5weSBmaWxlcywgaS5lLiBvbmVzIHdoaWNoIGFyZSBleGFjdGx5IGJlbG93CisgIHRoZSBm
aWxlc3lzdGVtIHBhdGggb2YgYW4gaXRlbQorCistIGNoYW5nZTogdGhlIGZpcnN0IHB5dGVzdF9j
b2xsZWN0X2RpcmVjdG9yeSBob29rIHRvIHJldHVybiBzb21ldGhpbmcKKyAgd2lsbCBub3cgcHJl
dmVudCBmdXJ0aGVyIGhvb2tzIHRvIGJlIGNhbGxlZC4KKworLSBjaGFuZ2U6IGZpZ2xlYWYgcGx1
Z2luIG5vdyByZXF1aXJlcyAtLWZpZ2xlYWYgdG8gcnVuLiAgQWxzbworICBjaGFuZ2UgaXRzIGxv
bmcgY29tbWFuZCBsaW5lIG9wdGlvbnMgdG8gYmUgYSBiaXQgc2hvcnRlciAoc2VlIHB5LnRlc3Qg
LWgpLgorCistIGNoYW5nZTogcHl0ZXN0IGRvY3Rlc3QgcGx1Z2luIGlzIG5vdyBlbmFibGVkIGJ5
IGRlZmF1bHQgYW5kIGhhcyBhCisgIG5ldyBvcHRpb24gLS1kb2N0ZXN0LWdsb2IgdG8gc2V0IGEg
cGF0dGVybiBmb3IgZmlsZSBtYXRjaGVzLgorCistIGNoYW5nZTogcmVtb3ZlIGludGVybmFsIHB5
Ll8qIGhlbHBlciB2YXJzLCBvbmx5IGtlZXAgcHkuX3B5ZGlyCisKKy0gcm9idXN0aWZ5IGNhcHR1
cmluZyB0byBzdXJ2aXZlIGlmIGN1c3RvbSBweXRlc3RfcnVudGVzdF9zZXR1cAorICBjb2RlIGZh
aWxlZCBhbmQgcHJldmVudGVkIHRoZSBjYXB0dXJpbmcgc2V0dXAgY29kZSBmcm9tIHJ1bm5pbmcu
CisKKy0gbWFrZSBweS50ZXN0LiogaGVscGVycyBwcm92aWRlZCBieSBkZWZhdWx0IHBsdWdpbnMg
dmlzaWJsZSBlYXJseSAtCisgIHdvcmtzIHRyYW5zcGFyZW50bHkgYm90aCBmb3IgcHlkb2MgYW5k
IGZvciBpbnRlcmFjdGl2ZSBzZXNzaW9ucworICB3aGljaCB3aWxsIHJlZ3VsYXJseSBzZWUgZS5n
LiBweS50ZXN0Lm1hcmsgYW5kIHB5LnRlc3QuaW1wb3J0b3Jza2lwLgorCistIHNpbXBsaWZ5IGlu
dGVybmFsIHBsdWdpbiBtYW5hZ2VyIG1hY2hpbmVyeQorLSBzaW1wbGlmeSBpbnRlcm5hbCBjb2xs
ZWN0aW9uIHRyZWUgYnkgaW50cm9kdWNpbmcgYSBSb290Q29sbGVjdG9yIG5vZGUKKworLSBmaXgg
YXNzZXJ0IHJlaW50ZXJwcmVhdGlvbiB0aGF0IHNlZXMgYSBjYWxsIGNvbnRhaW5pbmcgImtleXdv
cmQ9Li4uIgorCistIGZpeCBpc3N1ZTY2OiBpbnZva2UgcHl0ZXN0X3Nlc3Npb25zdGFydCBhbmQg
cHl0ZXN0X3Nlc3Npb25maW5pc2gKKyAgaG9va3Mgb24gc2xhdmVzIGR1cmluZyBkaXN0LXRlc3Rp
bmcsIHJlcG9ydCBtb2R1bGUvc2Vzc2lvbiB0ZWFyZG93bgorICBob29rcyBjb3JyZWN0bHkuCisK
Ky0gZml4IGlzc3VlNjU6IHByb3Blcmx5IGhhbmRsZSBkaXN0LXRlc3RpbmcgaWYgbm8KKyAgZXhl
Y25ldC9weSBsaWIgaW5zdGFsbGVkIHJlbW90ZWx5LgorCistIHNraXAgc29tZSBpbnN0YWxsLXRl
c3RzIGlmIG5vIGV4ZWNuZXQgaXMgYXZhaWxhYmxlCisKKy0gZml4IGRvY3MsIGZpeCBpbnRlcm5h
bCBiaW4vIHNjcmlwdCBnZW5lcmF0aW9uCisKKworQ2hhbmdlcyBiZXR3ZWVuIDEuMS4xIGFuZCAx
LjEuMAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistIGludHJvZHVj
ZSBhdXRvbWF0aWMgcGx1Z2luIHJlZ2lzdHJhdGlvbiB2aWEgJ3B5dGVzdDExJworICBlbnRyeXBv
aW50cyB2aWEgc2V0dXB0b29scycgcGtnX3Jlc291cmNlcy5pdGVyX2VudHJ5X3BvaW50cworCist
IGZpeCBweS50ZXN0IGRpc3QtdGVzdGluZyB0byB3b3JrIHdpdGggZXhlY25ldCA+PSAxLjAuMGI0
CisKKy0gcmUtaW50cm9kdWNlIHB5LnRlc3QuY21kbGluZS5tYWluKCkgZm9yIGJldHRlciBiYWNr
d2FyZCBjb21wYXRpYmlsaXR5CisKKy0gc3ZuIHBhdGhzOiBmaXggYSBidWcgd2l0aCBwYXRoLmNo
ZWNrKHZlcnNpb25lZD1UcnVlKSBmb3Igc3ZuIHBhdGhzLAorICBhbGxvdyAnJScgaW4gc3ZuIHBh
dGhzLCBtYWtlIHN2bndjLnVwZGF0ZSgpIGRlZmF1bHQgdG8gaW50ZXJhY3RpdmUgbW9kZQorICBs
aWtlIGluIDEuMC54IGFuZCBhZGQgc3Zud2MudXBkYXRlKGludGVyYWN0aXZlPUZhbHNlKSB0byBp
bmhpYml0IGludGVyYWN0aW9uLgorCistIHJlZmluZSBkaXN0cmlidXRlZCB0YXJiYWxsIHRvIGNv
bnRhaW4gdGVzdCBhbmQgbm8gcHljIGZpbGVzCisKKy0gdHJ5IGhhcmRlciB0byBoYXZlIGRlcHJl
Y2F0aW9uIHdhcm5pbmdzIGZvciBweS5jb21wYXQuKiBhY2Nlc3NlcworICByZXBvcnQgYSBjb3Jy
ZWN0IGxvY2F0aW9uCisKK0NoYW5nZXMgYmV0d2VlbiAxLjEuMCBhbmQgMS4wLjIKKz09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworKiBhZGp1c3QgYW5kIGltcHJvdmUgZG9j
cworCisqIHJlbW92ZSBweS5yZXN0IHRvb2wgYW5kIGludGVybmFsIG5hbWVzcGFjZSAtIGl0IHdh
cworICBuZXZlciByZWFsbHkgYWR2ZXJ0aXNlZCBhbmQgY2FuIHN0aWxsIGJlIHVzZWQgd2l0aAor
ICB0aGUgb2xkIHJlbGVhc2UgaWYgbmVlZGVkLiAgSWYgdGhlcmUgaXMgaW50ZXJlc3QKKyAgaXQg
Y291bGQgYmUgcmV2aXZlZCBpbnRvIGl0cyBvd24gdG9vbCBpIGd1ZXNzLgorCisqIGZpeCBpc3N1
ZTQ4IGFuZCBpc3N1ZTU5OiByYWlzZSBhbiBFcnJvciBpZiB0aGUgbW9kdWxlCisgIGZyb20gYW4g
aW1wb3J0ZWQgdGVzdCBmaWxlIGRvZXMgbm90IHNlZW0gdG8gY29tZSBmcm9tCisgIHRoZSBmaWxl
cGF0aCAtIGF2b2lkcyAic2FtZS1uYW1lIiBjb25mdXNpb24gdGhhdCBoYXMKKyAgYmVlbiByZXBv
cnRlZCByZXBlYXRlZGx5CisKKyogbWVyZ2VkIFJvbm55J3Mgbm9zZS1jb21wYXRpYmlsaXR5IGhh
Y2tzOiBub3cKKyAgbm9zZS1zdHlsZSBzZXR1cF9tb2R1bGUoKSBhbmQgc2V0dXAoKSBmdW5jdGlv
bnMgYXJlCisgIHN1cHBvcnRlZAorCisqIGludHJvZHVjZSBnZW5lcmFsaXplZCBweS50ZXN0Lm1h
cmsgZnVuY3Rpb24gbWFya2luZworCisqIHJlc2h1ZmZsZSAvIHJlZmluZSBjb21tYW5kIGxpbmUg
Z3JvdXBpbmcKKworKiBkZXByZWNhdGUgcGFyc2VyLmFkZGdyb3VwIGluIGZhdm91ciBvZiBnZXRn
cm91cCB3aGljaCBjcmVhdGVzIG9wdGlvbiBncm91cAorCisqIGFkZCAtLXJlcG9ydCBjb21tYW5k
IGxpbmUgb3B0aW9uIHRoYXQgYWxsb3dzIHRvIGNvbnRyb2wgc2hvd2luZyBvZiBza2lwcGVkL3hm
YWlsZWQgc2VjdGlvbnMKKworKiBnZW5lcmFsaXplZCBza2lwcGluZzogYSBuZXcgd2F5IHRvIG1h
cmsgcHl0aG9uIGZ1bmN0aW9ucyB3aXRoIHNraXBpZiBvciB4ZmFpbAorICBhdCBmdW5jdGlvbiwg
Y2xhc3MgYW5kIG1vZHVsZXMgbGV2ZWwgYmFzZWQgb24gcGxhdGZvcm0gb3Igc3lzLW1vZHVsZSBh
dHRyaWJ1dGVzLgorCisqIGV4dGVuZCBweS50ZXN0Lm1hcmsgZGVjb3JhdG9yIHRvIGFsbG93IGZv
ciBwb3NpdGlvbmFsIGFyZ3MKKworKiBpbnRyb2R1Y2UgYW5kIHRlc3QgInB5LmNsZWFudXAgLWQi
IHRvIHJlbW92ZSBlbXB0eSBkaXJlY3RvcmllcworCisqIGZpeCBpc3N1ZSAjNTkgLSByb2J1c3Rp
ZnkgdW5pdHRlc3QgdGVzdCBjb2xsZWN0aW9uCisKKyogbWFrZSBicHl0aG9uL2hlbHAgaW50ZXJh
Y3Rpb24gd29yayBieSBhZGRpbmcgYW4gX19hbGxfXyBhdHRyaWJ1dGUKKyAgdG8gQXBpTW9kdWxl
LCBjbGVhbnVwIGluaXRwa2cKKworKiB1c2UgTUlUIGxpY2Vuc2UgZm9yIHB5bGliLCBhZGQgc29t
ZSBjb250cmlidXRvcnMKKworKiByZW1vdmUgcHkuZXhlY25ldCBjb2RlIGFuZCBzdWJzdGl0dXRl
IGFsbCB1c2FnZXMgd2l0aCAnZXhlY25ldCcgcHJvcGVyCisKKyogZml4IGlzc3VlNTAgLSBjYWNo
ZWRfc2V0dXAgbm93IGNhY2hlcyBtb3JlIHRvIGV4cGVjdGF0aW9ucworICBmb3IgdGVzdCBmdW5j
dGlvbnMgd2l0aCBtdWx0aXBsZSBhcmd1bWVudHMuCisKKyogbWVyZ2UgSmFya28ncyBmaXhlcywg
aXNzdWUgIzQ1IGFuZCAjNDYKKworKiBhZGQgdGhlIGFiaWxpdHkgdG8gc3BlY2lmeSBhIHBhdGgg
Zm9yIHB5Lmxvb2t1cCB0byBzZWFyY2ggaW4KKworKiBmaXggYSBmdW5jYXJnIGNhY2hlZF9zZXR1
cCBidWcgcHJvYmFibHkgb25seSBvY2N1cmluZworICBpbiBkaXN0cmlidXRlZCB0ZXN0aW5nIGFu
ZCAibW9kdWxlIiBzY29wZSB3aXRoIHRlYXJkb3duLgorCisqIG1hbnkgZml4ZXMgYW5kIGNoYW5n
ZXMgZm9yIG1ha2luZyB0aGUgY29kZSBiYXNlIHB5dGhvbjMgY29tcGF0aWJsZSwKKyAgbWFueSB0
aGFua3MgdG8gQmVuamFtaW4gUGV0ZXJzb24gZm9yIGhlbHBpbmcgd2l0aCB0aGlzLgorCisqIGNv
bnNvbGlkYXRlIGJ1aWx0aW5zIGltcGxlbWVudGF0aW9uIHRvIGJlIGNvbXBhdGlibGUgd2l0aCA+
PTIuMywKKyAgYWRkIGhlbHBlcnMgdG8gZWFzZSBrZWVwaW5nIDIgYW5kIDNrIGNvbXBhdGlibGUg
Y29kZQorCisqIGRlcHJlY2F0ZSBweS5jb21wYXQuZG9jdGVzdHxzdWJwcm9jZXNzfHRleHR3cmFw
fG9wdHBhcnNlCisKKyogZGVwcmVjYXRlIHB5Lm1hZ2ljLmF1dG9wYXRoLCByZW1vdmUgcHkvbWFn
aWMgZGlyZWN0b3J5CisKKyogbW92ZSBweXRlc3QgYXNzZXJ0aW9uIGhhbmRsaW5nIHRvIHB5L2Nv
ZGUgYW5kIGEgcHl0ZXN0X2Fzc2VydGlvbgorICBwbHVnaW4sIGFkZCAiLS1uby1hc3NlcnQiIG9w
dGlvbiwgZGVwcmVjYXRlIHB5Lm1hZ2ljIG5hbWVzcGFjZXMKKyAgaW4gZmF2b3VyIG9mIChsZXNz
KSBweS5jb2RlIG9uZXMuCisKKyogY29uc29saWRhdGUgYW5kIGNsZWFudXAgcHkvY29kZSBjbGFz
c2VzIGFuZCBmaWxlcworCisqIGNsZWFudXAgcHkvbWlzYywgbW92ZSB0ZXN0cyB0byBiaW4tZm9y
LWRpc3QKKworKiBpbnRyb2R1Y2UgZGVsYXR0ci9kZWxpdGVtL2RlbGVudiBtZXRob2RzIHRvIHB5
LnRlc3QncyBtb25rZXlwYXRjaCBmdW5jYXJnCisKKyogY29uc29saWRhdGUgcHkubG9nIGltcGxl
bWVudGF0aW9uLCByZW1vdmUgb2xkIGFwcHJvYWNoLgorCisqIGludHJvZHVjZSBweS5pby5UZXh0
SU8gYW5kIHB5LmlvLkJ5dGVzSU8gZm9yIGRpc3Rpbmd1aXNoaW5nIGJldHdlZW4KKyAgdGV4dC91
bmljb2RlIGFuZCBieXRlLXN0cmVhbXMgKHVzZXMgdW5kZXJseWluZyBzdGFuZGFyZCBsaWIgaW8u
KgorICBpZiBhdmFpbGFibGUpCisKKyogbWFrZSBweS51bml0dGVzdF9jb252ZXJ0IGhlbHBlciBz
Y3JpcHQgYXZhaWxhYmxlIHdoaWNoIGNvbnZlcnRzICJ1bml0dGVzdC5weSIKKyAgc3R5bGUgZmls
ZXMgaW50byB0aGUgc2ltcGxlciBhc3NlcnQvZGlyZWN0LXRlc3QtY2xhc3NlcyBweS50ZXN0L25v
c2V0ZXN0cworICBzdHlsZS4gIFRoZSBzY3JpcHQgd2FzIHdyaXR0ZW4gYnkgTGF1cmEgQ3JlaWdo
dG9uLgorCisqIHNpbXBsaWZpZWQgaW50ZXJuYWwgbG9jYWxwYXRoIGltcGxlbWVudGF0aW9uCisK
K0NoYW5nZXMgYmV0d2VlbiAxLjAuMSBhbmQgMS4wLjIKKz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KKworKiBmaXhpbmcgcGFja2FnaW5nIGlzc3VlcywgdHJpZ2dlcmVkIGJ5
IGZlZG9yYSByZWRoYXQgcGFja2FnaW5nLAorICBhbHNvIGFkZGVkIGRvYywgZXhhbXBsZXMgYW5k
IGNvbnRyaWIgZGlycyB0byB0aGUgdGFyYmFsbC4KKworKiBhZGRlZCBhIGRvY3VtZW50YXRpb24g
bGluayB0byB0aGUgbmV3IGRqYW5nbyBwbHVnaW4uCisKK0NoYW5nZXMgYmV0d2VlbiAxLjAuMCBh
bmQgMS4wLjEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworKiBhZGRl
ZCBhICdweXRlc3Rfbm9zZScgcGx1Z2luIHdoaWNoIGhhbmRsZXMgbm9zZS5Ta2lwVGVzdCwKKyAg
bm9zZS1zdHlsZSBmdW5jdGlvbi9tZXRob2QvZ2VuZXJhdG9yIHNldHVwL3RlYXJkb3duIGFuZAor
ICB0cmllcyB0byByZXBvcnQgZnVuY3Rpb25zIGNvcnJlY3RseS4KKworKiBjYXB0dXJpbmcgb2Yg
dW5pY29kZSB3cml0ZXMgb3IgZW5jb2RlZCBzdHJpbmdzIHRvIHN5cy5zdGRvdXQvZXJyCisgIHdv
cmsgYmV0dGVyLCBhbHNvIHRlcm1pbmFsd3JpdGluZyB3YXMgYWRhcHRlZCBhbmQgc29tZXdoYXQK
KyAgdW5pZmllZCBiZXR3ZWVuIHdpbmRvd3MgYW5kIGxpbnV4LgorCisqIGltcHJvdmVkIGRvY3Vt
ZW50YXRpb24gbGF5b3V0IGFuZCBjb250ZW50IGEgbG90CisKKyogYWRkZWQgYSAiLS1oZWxwLWNv
bmZpZyIgb3B0aW9uIHRvIHNob3cgY29uZnRlc3QucHkgLyBFTlYtdmFyIG5hbWVzIGZvcgorICBh
bGwgbG9uZ29wdCBjbWRsaW5lIG9wdGlvbnMsIGFuZCBzb21lIHNwZWNpYWwgY29uZnRlc3QucHkg
dmFyaWFibGVzLgorICByZW5hbWVkICdjb25mX2NhcHR1cmUnIGNvbmZ0ZXN0IHNldHRpbmcgdG8g
J29wdGlvbl9jYXB0dXJlJyBhY2NvcmRpbmdseS4KKworKiBmaXggaXNzdWUgIzI3OiBiZXR0ZXIg
cmVwb3J0aW5nIG9uIG5vbi1jb2xsZWN0YWJsZSBpdGVtcyBnaXZlbiBvbiBjb21tYW5kbGluZQor
ICAoZS5nLiBweWMgZmlsZXMpCisKKyogZml4IGlzc3VlICMzMzogYWRkZWQgLS12ZXJzaW9uIGZs
YWcgKHRoYW5rcyBCZW5qYW1pbiBQZXRlcnNvbikKKworKiBmaXggaXNzdWUgIzMyOiBhZGRpbmcg
c3VwcG9ydCBmb3IgImluY29tcGxldGUiIHBhdGhzIHRvIHdjcGF0aC5zdGF0dXMoKQorCisqICJU
ZXN0IiBwcmVmaXhlZCBjbGFzc2VzIGFyZSAqbm90KiBjb2xsZWN0ZWQgYnkgZGVmYXVsdCBhbnlt
b3JlIGlmIHRoZXkKKyAgaGF2ZSBhbiBfX2luaXRfXyBtZXRob2QKKworKiBtb25rZXlwYXRjaCBz
ZXRlbnYoKSBub3cgYWNjZXB0cyBhICJwcmVwZW5kIiBwYXJhbWV0ZXIKKworKiBpbXByb3ZlZCBy
ZXBvcnRpbmcgb2YgY29sbGVjdGlvbiBlcnJvciB0cmFjZWJhY2tzCisKKyogc2ltcGxpZmllZCBt
dWx0aWNhbGwgbWVjaGFuaXNtIGFuZCBwbHVnaW4gYXJjaGl0ZWN0dXJlLAorICByZW5hbWVkIHNv
bWUgaW50ZXJuYWwgbWV0aG9kcyBhbmQgYXJnbmFtZXMKKworQ2hhbmdlcyBiZXR3ZWVuIDEuMC4w
YjkgYW5kIDEuMC4wCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyog
bW9yZSB0ZXJzZSByZXBvcnRpbmcgdHJ5IHRvIHNob3cgZmlsZXN5c3RlbSBwYXRoIHJlbGF0aXZl
bHkgdG8gY3VycmVudCBkaXIKKyogaW1wcm92ZSB4ZmFpbCBvdXRwdXQgYSBiaXQKKworQ2hhbmdl
cyBiZXR3ZWVuIDEuMC4wYjggYW5kIDEuMC4wYjkKKz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KKworKiBjbGVhbmx5IGhhbmRsZSBhbmQgcmVwb3J0IGZpbmFsIHRlYXJkb3du
IG9mIHRlc3Qgc2V0dXAKKworKiBmaXggc3ZuLTEuNiBjb21wYXQgaXNzdWUgd2l0aCBweS5wYXRo
LnN2bndjKCkudmVyc2lvbmVkKCkKKyAgKHRoYW5rcyBXb3V0ZXIgVmFuZGVuIEhvdmUpCisKKyog
c2V0dXAvdGVhcmRvd24gb3IgY29sbGVjdGlvbiBwcm9ibGVtcyBub3cgc2hvdyBhcyBFUlJPUnMK
KyAgb3Igd2l0aCBiaWcgIkUiJ3MgaW4gdGhlIHByb2dyZXNzIGxpbmVzLiAgdGhleSBhcmUgcmVw
b3J0ZWQKKyAgYW5kIGNvdW50ZWQgc2VwYXJhdGVseS4KKworKiBkaXN0LXRlc3Rpbmc6IHByb3Bl
cmx5IGhhbmRsZSB0ZXN0IGl0ZW1zIHRoYXQgZ2V0IGxvY2FsbHkKKyAgY29sbGVjdGVkIGJ1dCBj
YW5ub3QgYmUgY29sbGVjdGVkIG9uIHRoZSByZW1vdGUgc2lkZSAtIG9mdGVuCisgIGR1ZSB0byBw
bGF0Zm9ybS9kZXBlbmRlbmN5IHJlYXNvbnMKKworKiBzaW1wbGlmaWVkIHB5LnRlc3QubWFyayBB
UEkgLSBzZWUga2V5d29yZCBwbHVnaW4gZG9jdW1lbnRhdGlvbgorCisqIGludGVncmF0ZSBiZXR0
ZXIgd2l0aCBsb2dnaW5nOiBjYXB0dXJpbmcgbm93IGJ5IGRlZmF1bHQgY2FwdHVyZXMKKyAgdGVz
dCBmdW5jdGlvbnMgYW5kIHRoZWlyIGltbWVkaWF0ZSBzZXR1cC90ZWFyZG93biBpbiBhIHNpbmds
ZSBzdHJlYW0KKworKiBjYXBzeXMgYW5kIGNhcGZkIGZ1bmNhcmdzIG5vdyBoYXZlIGEgcmVhZG91
dGVycigpIGFuZCBhIGNsb3NlKCkgbWV0aG9kCisgICh1bmRlcmx5aW5nbHkgcHkuaW8uU3RkQ2Fw
dHVyZS9GRCBvYmplY3RzIGFyZSB1c2VkIHdoaWNoIGdyZXcgYQorICByZWFkb3V0ZXJyKCkgbWV0
aG9kIGFzIHdlbGwgdG8gcmV0dXJuIHNuYXBzaG90cyBvZiBjYXB0dXJlZCBvdXQvZXJyKQorCisq
IG1ha2UgYXNzZXJ0LXJlaW50ZXJwcmV0YXRpb24gd29yayBiZXR0ZXIgd2l0aCBjb21wYXJpc29u
cyBub3QKKyAgcmV0dXJuaW5nIGJvb2xzIChyZXBvcnRlZCB3aXRoIG51bXB5IGZyb20gdGhhbmtz
IG1hY2llaiBmaWphbGtvd3NraSkKKworKiByZXdvcmtlZCBwZXItdGVzdCBvdXRwdXQgY2FwdHVy
aW5nIGludG8gdGhlIHB5dGVzdF9pb2NhcHR1cmUucHkgcGx1Z2luCisgIGFuZCB0aHVzIHJlbW92
ZWQgY2FwdHVyaW5nIGNvZGUgZnJvbSBjb25maWcgb2JqZWN0CisKKyogaXRlbS5yZXByX2ZhaWx1
cmUoZXhjaW5mbykgaW5zdGVhZCBvZiBpdGVtLnJlcHJfZmFpbHVyZShleGNpbmZvLCBvdXRlcnIp
CisKKworQ2hhbmdlcyBiZXR3ZWVuIDEuMC4wYjcgYW5kIDEuMC4wYjgKKz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KKworKiBweXRlc3RfdW5pdHRlc3QtcGx1Z2luIGlzIG5v
dyBlbmFibGVkIGJ5IGRlZmF1bHQKKworKiBpbnRyb2R1Y2VkIHB5dGVzdF9rZXlib2FyZGludGVy
cnVwdCBob29rIGFuZAorICByZWZpbmVkIHB5dGVzdF9zZXNzaW9uZmluaXNoIGhvb2tlZCwgYWRk
ZWQgdGVzdHMuCisKKyogd29ya2Fyb3VuZCBhIGJ1Z2d5IGxvZ2dpbmcgbW9kdWxlIGludGVyYWN0
aW9uICgiY2xvc2luZyBhbHJlYWR5IGNsb3NlZAorICBmaWxlcyIpLiAgVGhhbmtzIHRvIFNyaWRo
YXIgUmF0bmFrdW1hciBmb3IgdHJpZ2dlcmluZy4KKworKiBpZiBwbHVnaW5zIHVzZSAicHkudGVz
dC5pbXBvcnRvcnNraXAiIGZvciBpbXBvcnRpbmcKKyAgYSBkZXBlbmRlbmN5IG9ubHkgYSB3YXJu
aW5nIHdpbGwgYmUgaXNzdWVkIGluc3RlYWQKKyAgb2YgZXhpdGluZyB0aGUgdGVzdGluZyBwcm9j
ZXNzLgorCisqIG1hbnkgaW1wcm92ZW1lbnRzIHRvIGRvY3M6CisgIC0gcmVmaW5lZCBmdW5jYXJn
cyBkb2MgLCB1c2UgdGhlIHRlcm0gImZhY3RvcnkiIGluc3RlYWQgb2YgInByb3ZpZGVyIgorICAt
IGFkZGVkIGEgbmV3IHRhbGsvdHV0b3JpYWwgZG9jIHBhZ2UKKyAgLSBiZXR0ZXIgZG93bmxvYWQg
cGFnZQorICAtIGJldHRlciBwbHVnaW4gZG9jc3RyaW5ncworICAtIGFkZGVkIG5ldyBwbHVnaW5z
IHBhZ2UgYW5kIGF1dG9tYXRpYyBkb2MgZ2VuZXJhdGlvbiBzY3JpcHQKKworKiBmaXhlZCB0ZWFy
ZG93biBwcm9ibGVtIHJlbGF0ZWQgdG8gcGFydGlhbGx5IGZhaWxpbmcgZnVuY2FyZyBzZXR1cHMK
KyAgKHRoYW5rcyBNclRvcGYgZm9yIHJlcG9ydGluZyksICJweXRlc3RfcnVudGVzdF90ZWFyZG93
biIgaXMgbm93CisgIGFsd2F5cyBpbnZva2VkIGV2ZW4gaWYgdGhlICJweXRlc3RfcnVudGVzdF9z
ZXR1cCIgZmFpbGVkLgorCisqIHR3ZWFrZWQgZG9jdGVzdCBvdXRwdXQgZm9yIGRvY3N0cmluZ3Mg
aW4gcHkgbW9kdWxlcywKKyAgdGhhbmtzIFJhZG9taXIuCisKK0NoYW5nZXMgYmV0d2VlbiAxLjAu
MGIzIGFuZCAxLjAuMGI3Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKworKiByZW5hbWVkIHB5LnRlc3QueGZhaWwgYmFjayB0byBweS50ZXN0Lm1hcmsueGZh
aWwgdG8gYXZvaWQKKyAgdHdvIHdheXMgdG8gZGVjb3JhdGUgZm9yIHhmYWlsCisKKyogcmUtYWRk
ZWQgcHkudGVzdC5tYXJrIGRlY29yYXRvciBmb3Igc2V0dGluZyBrZXl3b3JkcyBvbiBmdW5jdGlv
bnMKKyAgKGl0IHdhcyBhY3R1YWxseSBkb2N1bWVudGVkIHNvIHJlbW92aW5nIGl0IHdhcyBub3Qg
bmljZSkKKworKiByZW1vdmUgc2NvcGUtYXJndW1lbnQgZnJvbSByZXF1ZXN0LmFkZGZpbmFsaXpl
cigpIGJlY2F1c2UKKyAgcmVxdWVzdC5jYWNoZWRfc2V0dXAgaGFzIHRoZSBzY29wZSBhcmcuIFRP
T1dUREkuCisKKyogcGVyZm9ybSBzZXR1cCBmaW5hbGl6YXRpb24gYmVmb3JlIHJlcG9ydGluZyBm
YWlsdXJlcworCisqIGFwcGx5IG1vZGlmaWVkIHBhdGNoZXMgZnJvbSBBbmRyZWFzIEtsb2Vja25l
ciB0byBhbGxvdworICB0ZXN0IGZ1bmN0aW9ucyB0byBoYXZlIG5vIGZ1bmNfY29kZSAoIzIyKSBh
bmQgdG8gbWFrZQorICAiLWsiIGFuZCBmdW5jdGlvbiBrZXl3b3JkcyB3b3JrICAoIzIwKQorCisq
IGFwcGx5IHBhdGNoIGZyb20gRGFuaWVsIFBlb2x6bGVpdGhuZXIgKGlzc3VlICMyMykKKworKiBy
ZXNvbHZlIGlzc3VlICMxOCwgbXVsdGlwcm9jZXNzaW5nLk1hbmFnZXIoKSBhbmQKKyAgcmVkaXJl
Y3Rpb24gY2xhc2gKKworKiBtYWtlIF9fbmFtZV9fID09ICJfX2NoYW5uZWxleGVjX18iIGZvciBy
ZW1vdGVfZXhlYyBjb2RlCisKK0NoYW5nZXMgYmV0d2VlbiAxLjAuMGIxIGFuZCAxLjAuMGIzCis9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworKiBwbHVnaW4g
Y2xhc3NlcyBhcmUgcmVtb3ZlZDogb25lIG5vdyBkZWZpbmVzCisgIGhvb2tzIGRpcmVjdGx5IGlu
IGNvbmZ0ZXN0LnB5IG9yIGdsb2JhbCBweXRlc3RfKi5weQorICBmaWxlcy4KKworKiBhZGRlZCBu
ZXcgcHl0ZXN0X25hbWVzcGFjZShjb25maWcpIGhvb2sgdGhhdCBhbGxvd3MKKyAgdG8gaW5qZWN0
IGhlbHBlcnMgZGlyZWN0bHkgdG8gdGhlIHB5LnRlc3QuKiBuYW1lc3BhY2UuCisKKyogZG9jdW1l
bnRlZCBhbmQgcmVmaW5lZCBtYW55IGhvb2tzCisKKyogYWRkZWQgbmV3IHN0eWxlIG9mIGdlbmVy
YXRpdmUgdGVzdHMgdmlhCisgIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyBob29rIHRoYXQgaW50ZWdy
YXRlcworICB3ZWxsIHdpdGggZnVuY3Rpb24gYXJndW1lbnRzLgorCisKK0NoYW5nZXMgYmV0d2Vl
biAwLjkuMiBhbmQgMS4wLjBiMQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CisKKyogaW50cm9kdWNlZCBuZXcgImZ1bmNhcmciIHNldHVwIG1ldGhvZCwKKyAg
c2VlIGRvYy90ZXN0L2Z1bmNhcmcudHh0CisKKyogaW50cm9kdWNlZCBwbHVnaW4gYXJjaGl0ZWN1
dHVyZSBhbmQgbWFueQorICBuZXcgcHkudGVzdCBwbHVnaW5zLCBzZWUKKyAgZG9jL3Rlc3QvcGx1
Z2lucy50eHQKKworKiB0ZWFyZG93bl9tZXRob2QgaXMgbm93IGd1YXJhbnRlZWQgdG8gZ2V0Cisg
IGNhbGxlZCBhZnRlciBhIHRlc3QgbWV0aG9kIGhhcyBydW4uCisKKyogbmV3IG1ldGhvZDogcHku
dGVzdC5pbXBvcnRvcnNraXAobW9kLG1pbnZlcnNpb24pCisgIHdpbGwgZWl0aGVyIGltcG9ydCBv
ciBjYWxsIHB5LnRlc3Quc2tpcCgpCisKKyogY29tcGxldGVseSByZXZpc2VkIGludGVybmFsIHB5
LnRlc3QgYXJjaGl0ZWN0dXJlCisKKyogbmV3IHB5LnByb2Nlc3MuRm9ya2VkRnVuYyBvYmplY3Qg
YWxsb3dpbmcgdG8KKyAgZm9yayBleGVjdXRpb24gb2YgYSBmdW5jdGlvbiB0byBhIHN1YiBwcm9j
ZXNzCisgIGFuZCBnZXR0aW5nIGEgcmVzdWx0IGJhY2suCisKK1hYWCBsb3RzIG9mIHRoaW5ncyBt
aXNzaW5nIGhlcmUgWFhYCisKK0NoYW5nZXMgYmV0d2VlbiAwLjkuMSBhbmQgMC45LjIKKz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworKiByZWZpbmVkIGluc3RhbGxhdGlvbiBhbmQg
bWV0YWRhdGEsIGNyZWF0ZWQgbmV3IHNldHVwLnB5LAorICBub3cgYmFzZWQgb24gc2V0dXB0b29s
cy9lel9zZXR1cCAodGhhbmtzIHRvIFJhbGYgU2NobWl0dAorICBmb3IgaGlzIHN1cHBvcnQpLgor
CisqIGltcHJvdmVkIHRoZSB3YXkgb2YgbWFraW5nIHB5Liogc2NyaXB0cyBhdmFpbGFibGUgaW4K
KyAgd2luZG93cyBlbnZpcm9ubWVudHMsIHRoZXkgYXJlIG5vdyBhZGRlZCB0byB0aGUKKyAgU2Ny
aXB0cyBkaXJlY3RvcnkgYXMgIi5jbWQiIGZpbGVzLgorCisqIHB5LnBhdGguc3Zud2Muc3RhdHVz
KCkgbm93IGlzIG1vcmUgY29tcGxldGUgYW5kCisgIHVzZXMgeG1sIG91dHB1dCBmcm9tIHRoZSAn
c3ZuJyBjb21tYW5kIGlmIGF2YWlsYWJsZQorICAoR3VpZG8gV2VzZG9ycCkKKworKiBmaXggZm9y
IHB5LnBhdGguc3ZuKiB0byB3b3JrIHdpdGggc3ZuIDEuNQorICAoQ2hyaXMgTGFtYikKKworKiBm
aXggcGF0aC5yZWx0byhvdGhlcnBhdGgpIG1ldGhvZCBvbiB3aW5kb3dzIHRvCisgIHVzZSBub3Jt
Y2FzZSBmb3IgY2hlY2tpbmcgaWYgYSBwYXRoIGlzIHJlbGF0aXZlLgorCisqIHB5LnRlc3QncyB0
cmFjZWJhY2sgaXMgYmV0dGVyIHBhcnNlYWJsZSBmcm9tIGVkaXRvcnMKKyAgKGZvbGxvd3MgdGhl
IGZpbGVuYW1lczpMSU5FTk86IE1TRyBjb252ZW50aW9uKQorICAodGhhbmtzIHRvIE9zbW8gU2Fs
b21hYSkKKworKiBmaXggdG8gamF2YXNjcmlwdC1nZW5lcmF0aW9uLCAicHkudGVzdCAtLXJ1bmJy
b3dzZXIiCisgIHNob3VsZCB3b3JrIG1vcmUgcmVsaWFibHkgbm93CisKKyogcmVtb3ZlZCBwcmV2
aW91c2x5IGFjY2lkZW50YWxseSBhZGRlZAorICBweS50ZXN0LmJyb2tlbiBhbmQgcHkudGVzdC5u
b3RpbXBsZW1lbnRlZCBoZWxwZXJzLgorCisqIHRoZXJlIG5vdyBpcyBhIHB5Ll9fdmVyc2lvbl9f
IGF0dHJpYnV0ZQorCitDaGFuZ2VzIGJldHdlZW4gMC45LjAgYW5kIDAuOS4xCis9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CisKK1RoaXMgaXMgYSBmYWlybHkgY29tcGxldGUgbGlzdCBv
ZiBjaGFuZ2VzIGJldHdlZW4gMC45IGFuZCAwLjkuMSwgd2hpY2ggY2FuCitzZXJ2ZSBhcyBhIHJl
ZmVyZW5jZSBmb3IgZGV2ZWxvcGVycy4KKworKiBhbGxvd2luZyArIHNpZ25zIGluIHB5LnBhdGgu
c3ZuIHVybHMgWzM5MTA2XQorKiBmaXhlZCBzdXBwb3J0IGZvciBGYWlsZWQgZXhjZXB0aW9ucyB3
aXRob3V0IGV4Y2luZm8gaW4gcHkudGVzdCBbMzkzNDBdCisqIGFkZGVkIHN1cHBvcnQgZm9yIGtp
bGxpbmcgcHJvY2Vzc2VzIGZvciBXaW5kb3dzIChhcyB3ZWxsIGFzIHBsYXRmb3JtcyB0aGF0Cisg
IHN1cHBvcnQgb3Mua2lsbCkgaW4gcHkubWlzYy5raWxscHJvYyBbMzk2NTVdCisqIGFkZGVkIHNl
dHVwL3RlYXJkb3duIGZvciBnZW5lcmF0aXZlIHRlc3RzIHRvIHB5LnRlc3QgWzQwNzAyXQorKiBh
ZGRlZCBkZXRlY3Rpb24gb2YgRkFJTEVEIFRPIExPQUQgTU9EVUxFIHRvIHB5LnRlc3QgWzQwNzAz
LCA0MDczOCwgNDA3MzldCisqIGZpeGVkIHByb2JsZW0gd2l0aCBjYWxsaW5nIC5yZW1vdmUoKSBv
biB3Y3BhdGhzIG9mIG5vbi12ZXJzaW9uZWQgZmlsZXMgaW4KKyAgcHkucGF0aCBbNDQyNDhdCisq
IGZpeGVkIHNvbWUgaW1wb3J0IGFuZCBpbmhlcml0YW5jZSBpc3N1ZXMgaW4gcHkudGVzdCBbNDE0
ODAsIDQ0NjQ4LCA0NDY1NV0KKyogZmFpbCB0byBydW4gZ3JlZW5sZXQgdGVzdHMgd2hlbiBweXB5
IGlzIGF2YWlsYWJsZSwgYnV0IHdpdGhvdXQgc3RhY2tsZXNzCisgIFs0NTI5NF0KKyogc21hbGwg
Zml4ZXMgaW4gcnNlc3Npb24gdGVzdHMgWzQ1Mjk1XQorKiBmaXhlZCBpc3N1ZSB3aXRoIDIuNSB0
eXBlIHJlcHJlc2VudGF0aW9ucyBpbiBweS50ZXN0IFs0NTQ4MywgNDU0ODRdCisqIG1hZGUgdGhh
dCBpbnRlcm5hbCByZXBvcnRpbmcgaXNzdWVzIGRpc3BsYXlpbmcgaXMgZG9uZSBhdG9taWNhbGx5
IGluIHB5LnRlc3QKKyAgWzQ1NTE4XQorKiBtYWRlIHRoYXQgbm9uLWV4aXN0aW5nIGZpbGVzIGFy
ZSBpZ29yZWQgYnkgdGhlIHB5Lmxvb2t1cCBzY3JpcHQgWzQ1NTE5XQorKiBpbXByb3ZlZCBleGNl
cHRpb24gbmFtZSBjcmVhdGlvbiBpbiBweS50ZXN0IFs0NTUzNV0KKyogbWFkZSB0aGF0IGxlc3Mg
dGhyZWFkcyBhcmUgdXNlZCBpbiBleGVjbmV0IFttZXJnZSBpbiA0NTUzOV0KKyogcmVtb3ZlZCBs
b2NrIHJlcXVpcmVkIGZvciBhdG9taWNhbCByZXBvcnRpbmcgaXNzdWUgZGlzcGxheWluZyBpbiBw
eS50ZXN0CisgIFs0NTU0NV0KKyogcmVtb3ZlZCBnbG9iYWxzIGZyb20gZXhlY25ldCBbNDU1NDEs
IDQ1NTQ3XQorKiByZWZhY3RvcmVkIGNsZWFudXAgbWVjaGFuaWNzLCBtYWRlIHRoYXQgc2V0RGFl
bW9uIGlzIHNldCB0byAxIHRvIG1ha2UgYXRleGl0CisgIGdldCBjYWxsZWQgaW4gMi41IChweS5l
eGVjbmV0KSBbNDU1NDhdCisqIGZpeGVkIGJ1ZyBpbiBqb2luaW5nIHRocmVhZHMgaW4gcHkuZXhl
Y25ldCdzIHNlcnZlbWFpbiBbNDU1NDldCisqIHJlZmFjdG9yZWQgcHkudGVzdC5yc2Vzc2lvbiB0
ZXN0cyB0byBub3QgcmVseSBvbiBleGFjdCBvdXRwdXQgZm9ybWF0IGFueW1vcmUKKyAgWzQ1NjQ2
XQorKiB1c2luZyByZXByKCkgb24gdGVzdCBvdXRjb21lIFs0NTY0N10KKyogYWRkZWQgJ1JlYXNv
bicgY2xhc3NlcyBmb3IgcHkudGVzdC5za2lwKCkgWzQ1NjQ4LCA0NTY0OV0KKyoga2lsbGVkIHNv
bWUgdW5uZWNlc3Nhcnkgc2FuaXR5IGNoZWNrIGluIHB5LnRlc3QuY29sbGVjdCBbNDU2NTVdCisq
IGF2b2lkIHVzaW5nIG9zLnRtcGZpbGUoKSBpbiBweS5pby5mZGNhcHR1cmUgYmVjYXVzZSBvbiBX
aW5kb3dzIGl0J3Mgb25seQorICB1c2FibGUgYnkgQWRtaW5pc3RyYXRvcnMgWzQ1OTAxXQorKiBh
ZGRlZCBzdXBwb3J0IGZvciBsb2NraW5nIGFuZCBub24tcmVjdXJzaXZlIGNvbW1pdHMgdG8gcHku
cGF0aC5zdm53YyBbNDU5OTRdCisqIGxvY2tpbmcgZmlsZXMgaW4gcHkuZXhlY25ldCB0byBwcmV2
ZW50IENQeXRob24gZnJvbSBzZWdmYXVsdGluZyBbNDYwMTBdCisqIGFkZGVkIGV4cG9ydCgpIG1l
dGhvZCB0byBweS5wYXRoLnN2bnVybAorKiBmaXhlZCAtZCAteCBpbiBweS50ZXN0IFs0NzI3N10K
KyogZml4ZWQgYXJndW1lbnQgY29uY2F0ZW5hdGlvbiBwcm9ibGVtIGluIHB5LnBhdGguc3Zud2Mg
WzQ5NDIzXQorKiByZXN0b3JlIHB5LnRlc3QgYmVoYXZpb3VyIHRoYXQgaXQgZXhpdHMgd2l0aCBj
b2RlIDEgd2hlbiB0aGVyZSBhcmUgZmFpbHVyZXMKKyAgWzQ5OTc0XQorKiBkb24ndCBmYWlsIG9u
IGh0bWwgZmlsZXMgdGhhdCBkb24ndCBoYXZlIGFuIGFjY29tcGFueWluZyAudHh0IGZpbGUgWzUw
NjA2XQorKiBmaXhlZCAndXRlc3Rjb252ZXJ0LnB5IDwgaW5wdXQnIFs1MDY0NV0KKyogc21hbGwg
Zml4IGZvciBjb2RlIGluZGVudGF0aW9uIGluIHB5LmNvZGUuc291cmNlIFs1MDc1NV0KKyogZml4
IF9kb2NnZW4ucHkgZG9jdW1lbnRhdGlvbiBidWlsZGluZyBbNTEyODVdCisqIGltcHJvdmVkIGNo
ZWNrcyBmb3Igc291cmNlIHJlcHJlc2VudGF0aW9uIG9mIGNvZGUgYmxvY2tzIGluIHB5LnRlc3Qg
WzUxMjkyXQorKiBhZGRlZCBzdXBwb3J0IGZvciBwYXNzaW5nIGF1dGhlbnRpY2F0aW9uIHRvIHB5
LnBhdGguc3ZuKiBvYmplY3RzIFs1MjAwMCwKKyAgNTIwMDFdCisqIHJlbW92ZWQgc29ydGVkKCkg
Y2FsbCBmb3IgcHkuYXBpZ2VuIHRlc3RzIGluIGZhdm91ciBvZiBbXS5zb3J0KCkgdG8gc3VwcG9y
dAorICBQeXRob24gMi4zIFs1MjQ4MV0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNl
L3JlbGVhc2UtMS4zLjMudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjMuMy50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzYyY2I4NTkwNTM3OTk3MGE1NzU1ZjU0ZThlMzJjNDUzOWEyNWIxOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4zLjMudHh0
CkBAIC0wLDAgKzEsMjYgQEAKK3B5LnRlc3QvcHlsaWIgMS4zLjM6IHdpbmRvd3MgYW5kIG90aGVy
IGZpeGVzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworcHlsaWIvcHkudGVzdCAxLjMuMyBpcyBhIG1p
bm9yIGJ1Z2ZpeCByZWxlYXNlIGZlYXR1cmluZyBzb21lIGltcHJvdmVtZW50cworYW5kIGZpeGVz
LiBTZWUgY2hhbmdlbG9nXyBmb3IgZnVsbCBoaXN0b3J5LgorCitoYXZlIGZ1biwKK2hvbGdlciBr
cmVrZWwKKworLi4gX2NoYW5nZWxvZzogLi4vY2hhbmdlbG9nLmh0bWwKKworQ2hhbmdlcyBiZXR3
ZWVuIDEuMy4yIGFuZCAxLjMuMworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KKworLSBmaXggaXNzdWUxMTM6IGFzc2VydGlvbiByZXByZXNlbnRhdGlv
biBwcm9ibGVtIHdpdGggdHJpcGxlLXF1b3RlZCBzdHJpbmdzCisgIChhbmQgcG9zc2libHkgb3Ro
ZXIgY2FzZXMpCistIG1ha2UgY29uZnRlc3QgbG9hZGluZyBkZXRlY3QgdGhhdCBhIGNvbmZ0ZXN0
IGZpbGUgd2l0aCB0aGUgc2FtZQorICBjb250ZW50IHdhcyBhbHJlYWR5IGxvYWRlZCwgYXZvaWRz
IHN1cnByaXNlcyBpbiBuZXN0ZWQgZGlyZWN0b3J5IHN0cnVjdHVyZXMKKyAgd2hpY2ggY2FuIGJl
IHByb2R1Y2VkIGUuZy4gYnkgSHVkc29uLiBJdCBwcm9iYWJseSByZW1vdmVzIHRoZSBuZWVkIHRv
IHVzZQorICAtLWNvbmZjdXRkaXIgaW4gbW9zdCBjYXNlcy4KKy0gZml4IHRlcm1pbmFsIGNvbG9y
aW5nIGZvciB3aW4zMgorICAodGhhbmtzIE1pY2hhZWwgRm9vcmQgZm9yIHJlcG9ydGluZykKKy0g
Zml4IHdlaXJkbmVzczogbWFrZSB0ZXJtaW5hbCB3aWR0aCBkZXRlY3Rpb24gd29yayBvbiBzdGRv
dXQgaW5zdGVhZCBvZiBzdGRpbgorICAodGhhbmtzIEFybWluIFJvbmFjaGVyIGZvciByZXBvcnRp
bmcpCistIHJlbW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlIGluIGFsbCBweS90ZXh0IGRpc3RyaWJ1
dGlvbiBmaWxlcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEu
My40LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4zLjQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmMxNTZjOGJkYjMzYzA2OTY5ZjQwYzFlOGJjYmUyZTkwZGM5NTZjNDQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuMy40LnR4dApAQCAtMCwwICsx
LDIyIEBACitweS50ZXN0L3B5bGliIDEuMy40OiBmaXhlcyBhbmQgbmV3IG5hdGl2ZSB0cmFjZWJh
Y2sgb3B0aW9uCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworcHlsaWIvcHkudGVzdCAxLjMuNCBpcyBh
IG1pbm9yIG1haW50ZW5hbmNlIHJlbGVhc2UgbW9zdGx5IGNvbnRhaW5pbmcgYnVnIGZpeGVzCith
bmQgYSBuZXcgIi0tdGI9bmF0aXZlIiB0cmFjZWJhY2sgb3B0aW9uIHRvIHNob3cgIm5vcm1hbCIg
UHl0aG9uIHN0YW5kYXJkCit0cmFjZWJhY2tzIGluc3RlYWQgb2YgdGhlIHB5LnRlc3QgZW5oYW5j
ZWQgdHJhY2ViYWNrcy4gIFNlZSBiZWxvdyBmb3IgbW9yZQorY2hhbmdlIGluZm8gYW5kIGh0dHA6
Ly9weXRlc3Qub3JnIGZvciBtb3JlIGdlbmVyYWwgaW5mb3JtYXRpb24gb24gZmVhdHVyZXMKK2Fu
ZCBjb25maWd1cmF0aW9uIG9mIHRoZSB0ZXN0aW5nIHRvb2wuCisKK1RoYW5rcyB0byB0aGUgaXNz
dWUgcmVwb3J0ZXJzIGFuZCBnZW5lcmFsbHkgdG8gUm9ubnkgUGZhbm5zY2htaWR0IGZvciBoZWxw
LgorCitjaGVlcnMsCitob2xnZXIga3Jla2VsCisKK0NoYW5nZXMgYmV0d2VlbiAxLjMuMyBhbmQg
MS4zLjQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CisKKy0gZml4IGlzc3VlMTExOiBpbXByb3ZlIGluc3RhbGwgZG9jdW1lbnRhdGlvbiBmb3Igd2lu
ZG93cworLSBmaXggaXNzdWUxMTk6IGZpeCBjdXN0b20gY29sbGVjdGFiaWxpdHkgb2YgX19pbml0
X18ucHkgYXMgYSBtb2R1bGUKKy0gZml4IGlzc3VlMTE2OiAtLWRvY3Rlc3Rtb2R1bGVzIHdvcmsg
d2l0aCBfX2luaXRfXy5weSBmaWxlcyBhcyB3ZWxsCistIGZpeCBpc3N1ZTExNTogdW5pZnkgaW50
ZXJuYWwgZXhjZXB0aW9uIHBhc3N0aHJvdWdoL2NhdGNoaW5nL0dlbmVyYXRvckV4aXQKKy0gZml4
IGlzc3VlMTE4OiBuZXcgLS10Yj1uYXRpdmUgZm9yIHByZXNlbnRpbmcgY3B5dGhvbi1zdGFuZGFy
ZCBleGNlcHRpb25zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEu
NC4wLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS40LjAudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZmOWE3NzE0ZDlmMTZjMTY5YTNhY2UxMzE3ODNlYmMyOTg5MzZkMzkKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuNC4wLnR4dApAQCAtMCwwICsx
LDQ3IEBACisKKy4uIF9gcmVsZWFzZS0xLjQuMGA6CisKK3B5LTEuNC4wOiBjcm9zcy1weXRob24g
bGliIGZvciBwYXRoLCBjb2RlLCBpbywgLi4uIG1hbmlwdWxhdGlvbnMKKz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorCisicHkiIGlzIGEgc21hbGwgbGlicmFyeSBjb21wcmlzaW5nIEFQSXMgZm9yIGZpbGVz
eXN0ZW0gYW5kIHN2biBwYXRoCittYW5pcHVsYXRpb25zLCBkeW5hbWljIGNvZGUgY29uc3RydWN0
aW9uIGFuZCBpbnRyb3NwZWN0aW9uLCBhIFB5Mi9QeTMKK2NvbXBhdGliaWxpdHkgbmFtZXNwYWNl
ICgicHkuYnVpbHRpbiIpLCBJTyBjYXB0dXJpbmcsIHRlcm1pbmFsIGNvbG9yZWQgcHJpbnRpbmcK
KyhvbiB3aW5kb3dzIGFuZCBsaW51eCksIGluaS1maWxlIHBhcnNpbmcgYW5kIGEgbGF6eSBpbXBv
cnQgbWVjaGFuaXNtLgorSXQgcnVucyB1bm1vZGlmaWVkIG9uIGFsbCBQeXRob24gaW50ZXJwcmV0
ZXJzIGNvbXBhdGlibGUgdG8gUHl0aG9uMi40IHVwCit1bnRpbCBQeXRob24gMy4yLiAgVGhlIGdl
bmVyYWwgZ29hbCB3aXRoICJweSIgaXMgdG8gcHJvdmlkZSBzdGFibGUgQVBJcworZm9yIHNvbWUg
Y29tbW9uIHRhc2tzIHRoYXQgYXJlIGNvbnRpbm91c2x5IHRlc3RlZCBhZ2FpbnN0IG1hbnkgUHl0
aG9uCitpbnRlcnByZXRlcnMgYW5kIHRodXMgYWxzbyB0byBoZWxwIHRyYW5zaXRpb24uIEhlcmUg
YXJlIHNvbWUgZG9jczoKKworICAgIGh0dHA6Ly9weWxpYi5vcmcKKworTk9URTogVGhlIHByaW9y
IHB5LTEuMy5YIHZlcnNpb25zIGNvbnRhaW5lZCAicHkudGVzdCIgd2hpY2ggbm93IGNvbWVzCith
cyBpdHMgb3duIHNlcGFyYXRlICJweXRlc3QiIGRpc3RyaWJ1dGlvbiBhbmQgd2FzIGp1c3QgcmVs
ZWFzZWQKK2FzICJweXRlc3QtMi4wLjAiLCBzZWUgaGVyZSBmb3IgdGhlIHJldmFtcGVkIGRvY3M6
CisKKyAgICBodHRwOi8vcHl0ZXN0Lm9yZworICAgCitBbmQgInB5LmNsZWFudXB8cHkubG9va3Vw
fHB5LmNvdW50bG9jIiBldGMuIGhlbHBlcnMgYXJlIG5vdyBwYXJ0IG9mCit0aGUgcHljbWQgZGlz
dHJpYnV0aW9uLCBzZWUgaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3B5Y21kCisKK1RoaXMg
bWFrZXMgInB5LTEuNC4wIiBhIHNpbXBsZSBsaWJyYXJ5IHdoaWNoIGRvZXMgbm90IGluc3RhbGwK
K2FueSBjb21tYW5kIGxpbmUgdXRpbGl0aWVzIGFueW1vcmUuCisKK2NoZWVycywKK2hvbGdlcgor
CitDaGFuZ2VzIGJldHdlZW4gMS4zLjQgYW5kIDEuNC4wCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKKy0gcHkudGVzdCB3YXMgbW92ZWQgdG8gYSBzZXBhcmF0ZSAicHl0
ZXN0IiBwYWNrYWdlLiBXaGF0IHJlbWFpbnMgaXMKKyAgYSBzdHViIGhvb2sgd2hpY2ggd2lsbCBw
cm94eSBgYGltcG9ydCBweS50ZXN0YGAgdG8gYGBweXRlc3RgYC4KKy0gYWxsIGNvbW1hbmQgbGlu
ZSB0b29scyAoInB5LmNsZWFudXAvbG9va3VwL2NvdW50bG9jLy4uLiIgbW92ZWQKKyAgdG8gInB5
Y21kIiBwYWNrYWdlKQorLSByZW1vdmVkIHRoZSBvbGQgYW5kIGRlcHJlY2F0ZWQgInB5Lm1hZ2lj
IiBuYW1lc3BhY2UKKy0gdXNlIGFwaXBrZy0xLjEgYW5kIG1ha2UgcHkuYXBpcGtnLmluaXRwa2d8
QXBpTW9kdWxlIGF2YWlsYWJsZQorLSBhZGQgcHkuaW5pY29uZmlnIG1vZHVsZSBmb3IgYnJhaW4t
ZGVhZCBlYXN5IGluaS1jb25maWcgZmlsZSBwYXJzaW5nCistIGludHJvZHVjZSBweS5idWlsdGlu
LmFueSgpCistIHBhdGggb2JqZWN0cyBoYXZlIGEgLmRpcm5hbWUgYXR0cmlidXRlIG5vdyAoZXF1
aXZhbGVudCB0bworICBvcy5wYXRoLmRpcm5hbWUocGF0aCkpCistIHBhdGgudmlzaXQoKSBhY2Nl
cHRzIGJyZWFkdGhmaXJzdCAoYmYpIGFuZCBzb3J0IG9wdGlvbnMKKy0gcmVtb3ZlIGRlcHJlY2F0
ZWQgcHkuY29tcGF0IG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2Uv
cmVsZWFzZS0xLjQuMS50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuNC4xLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hNWFhNzZiMTQzOGViNzI4OGM1ODBiYTJiNTBkZGE5NjUwMzE5OGZiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjQuMS50eHQK
QEAgLTAsMCArMSw0NyBAQAorCisuLiBfYHJlbGVhc2UtMS40LjFgOgorCitweS0xLjQuMTogY3Jv
c3MtcHl0aG9uIGxpYiBmb3IgZnMgcGF0aCwgY29kZSwgaW8sIC4uLiBtYW5pcHVsYXRpb25zCis9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KKworVGhpcyBpcyBhIGJ1ZyBmaXggcmVsZWFzZSBvZiB0aGUgInB5
IiBsaWIsIHNlZSBiZWxvdyBmb3IgZGV0YWlsZWQgY2hhbmdlcy4KK1RoZSBweSBsaWIgaXMgYSBz
bWFsbCBsaWJyYXJ5IGNvbXByaXNpbmcgQVBJcyBmb3IgZmlsZXN5c3RlbSBhbmQgc3ZuIHBhdGgK
K21hbmlwdWxhdGlvbnMsIGR5bmFtaWMgY29kZSBjb25zdHJ1Y3Rpb24gYW5kIGludHJvc3BlY3Rp
b24sIGEgUHkyL1B5MworY29tcGF0aWJpbGl0eSBuYW1lc3BhY2UgKCJweS5idWlsdGluIiksIElP
IGNhcHR1cmluZywgdGVybWluYWwgY29sb3JlZCBwcmludGluZworKG9uIHdpbmRvd3MgYW5kIGxp
bnV4KSwgaW5pLWZpbGUgcGFyc2luZyBhbmQgYSBsYXp5IGltcG9ydCBtZWNoYW5pc20uCitJdCBy
dW5zIHVubW9kaWZpZWQgb24gYWxsIFB5dGhvbiBpbnRlcnByZXRlcnMgY29tcGF0aWJsZSB0byBQ
eXRob24yLjQgdXAKK3VudGlsIFB5dGhvbiAzLjIsIFB5UHkgYW5kIEp5dGhvbi4gIFRoZSBnZW5l
cmFsIGdvYWwgd2l0aCAicHkiIGlzIHRvCitwcm92aWRlIHN0YWJsZSBBUElzIGZvciBzb21lIGNv
bW1vbiB0YXNrcyB0aGF0IGFyZSBjb250aW5vdXNseSB0ZXN0ZWQKK2FnYWluc3QgbWFueSBQeXRo
b24gaW50ZXJwcmV0ZXJzIGFuZCB0aHVzIGFsc28gdG8gaGVscCB0cmFuc2l0aW9uLiBIZXJlCith
cmUgc29tZSBkb2NzOgorCisgICAgaHR0cDovL3B5bGliLm9yZworCitOT1RFOiBUaGUgcHJpb3Ig
cHktMS4zLlggdmVyc2lvbnMgY29udGFpbmVkICJweS50ZXN0IiB3aGljaCBzaW5jZSBweS0xLjQu
MAorY29tZXMgYXMgaXRzIG93biBzZXBhcmF0ZSAicHl0ZXN0IiBkaXN0cmlidXRpb24sIHNlZToK
KworICAgIGh0dHA6Ly9weXRlc3Qub3JnCisgICAKK0Fsc28sIHRoZSAicHkuY2xlYW51cHxweS5s
b29rdXB8cHkuY291bnRsb2MiIGhlbHBlcnMgYXJlIG5vdyBwYXJ0IG9mCit0aGUgcHljbWQgZGlz
dHJpYnV0aW9uLCBzZWUgaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3B5Y21kCisKKworQ2hh
bmdlcyBiZXR3ZWVuIDEuNC4wIGFuZCAxLjQuMQorPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KKworLSBmaXggaXNzdWUxIC0gcHkuZXJyb3IuKiBjbGFz
c2VzIHRvIGJlIHBpY2tsZWFibGUKKworLSBmaXggaXNzdWUyIC0gb24gd2luZG93czMyIHVzZSBQ
QVRIRVhUIGFzIHRoZSBsaXN0IG9mIHBvdGVudGlhbAorICBleHRlbnNpb25zIHRvIGZpbmQgZmlu
ZCBiaW5hcmllcyB3aXRoIHB5LnBhdGgubG9jYWwuc3lzZmluZChjb21tYW5kbmFtZSkKKworLSBm
aXggKHB5dGVzdC0pIGlzc3VlMTAgYW5kIHJlZmluZSBhc3NlcnRpb24gcmVpbnRlcnByZXRhdGlv
bgorICB0byBhdm9pZCBicmVha2luZyBpZiB0aGUgX19ub256ZXJvX18gb2YgYW4gb2JqZWN0IGZh
aWxzCisKKy0gZml4IChweXRlc3QtKSBpc3N1ZTE3IHdoZXJlIHB5dGhvbjMgZG9lcyBub3QgbGlr
ZSBzdGFyLWltcG9ydHMsCisgIGxlYWRpbmcgdG8gbWlzcmVwcmVzZW50YXRpb24gb2YgaW1wb3J0
LWVycm9ycyBpbiB0ZXN0IG1vZHVsZXMKKworLSBmaXggYGBweS5lcnJvci4qYGAgYXR0cmlidXRl
IHB5cHkgYWNjZXNzCisKKy0gYWxsb3cgcGF0aC5zYW1lZmlsZShhcmcpIHRvIHN1Y2NlZWQgd2hl
biBhcmcgaXMgYSByZWxhdGl2ZSBmaWxlbmFtZQorCistIGZpeCAocHl0ZXN0LSkgaXNzdWUyMCBw
YXRoLnNhbWVmaWxlKHJlbHBhdGgpIHdvcmtzIGFzIGV4cGVjdGVkIG5vdwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZXMudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2Uv
cmVsZWFzZXMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwOWMyOWJhYzVkZTNhMTU1NDZhYmM1NTYyNTczNTQ5
ZDlhOWIwMjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNl
cy50eHQKQEAgLTAsMCArMSwxNiBAQAorPT09PT09PT09PT09PQorUmVsZWFzZSBub3RlcworPT09
PT09PT09PT09PQorCitDb250ZW50czoKKworLi4gdG9jdHJlZTo6CisgICA6bWF4ZGVwdGg6IDIK
KworLi4gaW5jbHVkZTogcmVsZWFzZS0xLjEuMAorLi4gaW5jbHVkZTogcmVsZWFzZS0xLjAuMgor
CisgICByZWxlYXNlLTEuMC4xCisgICByZWxlYXNlLTEuMC4wCisgICByZWxlYXNlLTAuOS4yCisg
ICByZWxlYXNlLTAuOS4wCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjFiYjU1YjYxMDJlMzM0ZjQyZWQ0OTg4M2JlOTBiZmRmYjc1NjFkZDgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDMzIEBA
CitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0Mg
cmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0
LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0
dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBU
b29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0Rv
IE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9w
ZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBv
ZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTAuOS4wLnR4dAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMC45LjIudHh0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2Uv
cmVsZWFzZS0xLjAuMC50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuMC4xLnR4
dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4wLjIudHh0CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2Mv
YW5ub3VuY2UvcmVsZWFzZS0xLjEuMC50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNl
LTEuMS4xLnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4yLjAudHh0CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjIuMS50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5j
ZS9yZWxlYXNlLTEuMy4wLnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4zLjEu
dHh0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjMuMi50eHQKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2Rv
Yy9hbm5vdW5jZS9yZWxlYXNlLTEuMy4zLnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVh
c2UtMS4zLjQudHh0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjQuMC50eHQKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuNC4xLnR4dAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91
bmNlL3JlbGVhc2VzLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvY2hhbmdlbG9nLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvZG9jL2NoYW5nZWxvZy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM3ZGFjYTM1NDg3Nzk1NjBi
ZGY3MDYwMjUxOGJjZDllYjNiM2ExNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2No
YW5nZWxvZy50eHQKQEAgLTAsMCArMSwzIEBACisuLiBfYGNoYW5nZWxvZ2A6CisKKy4uIGluY2x1
ZGU6OiAuLi9DSEFOR0VMT0cKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2NvZGUudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9kb2MvY29kZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmRkODY5MWRhMDNlMmUzYTJmNzY4ZDhhODg3
N2M3ZDRlNDEwZjM4MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2NvZGUudHh0CkBA
IC0wLDAgKzEsMTUwIEBACis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorcHkuY29kZTogaGlnaGVy
IGxldmVsIHB5dGhvbiBjb2RlIGFuZCBpbnRyb3NwZWN0aW9uIG9iamVjdHMKKz09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CisKK2BgcHkuY29kZWBgIHByb3ZpZGVzIGhpZ2hlciBsZXZlbCBBUElzIGFu
ZCBvYmplY3RzIGZvciBDb2RlLCBGcmFtZSwgVHJhY2ViYWNrLAorRXhjZXB0aW9uSW5mbyBhbmQg
c291cmNlIGNvZGUgY29uc3RydWN0aW9uLiAgVGhlIGBgcHkuY29kZWBgIGxpYnJhcnkKK3RyaWVz
IHRvIHNpbXBsaWZ5IGFjY2Vzc2luZyB0aGUgY29kZSBvYmplY3RzIGFzIHdlbGwgYXMgY3JlYXRp
bmcgdGhlbS4KK1RoZXJlIGlzIGEgc21hbGwgc2V0IG9mIGludGVyZmFjZXMgYSB1c2VyIG5lZWRz
IHRvIGRlYWwgd2l0aCwgYWxsIG5pY2VseQorYnVuZGxlZCB0b2dldGhlciwgYW5kIHdpdGggYSBy
aWNoIHNldCBvZiAnUHl0aG9uaWMnIGZ1bmN0aW9uYWxpdHkuCisKK0NvbnRlbnRzIG9mIHRoZSBs
aWJyYXJ5Cis9PT09PT09PT09PT09PT09PT09PT09PQorCitFdmVyeSBvYmplY3QgaW4gdGhlIGBg
cHkuY29kZWBgIGxpYnJhcnkgd3JhcHMgYSBjb2RlIFB5dGhvbiBvYmplY3QgcmVsYXRlZAordG8g
Y29kZSBvYmplY3RzLCBzb3VyY2UgY29kZSwgZnJhbWVzIGFuZCB0cmFjZWJhY2tzOiB0aGUgYGBw
eS5jb2RlLkNvZGVgYAorY2xhc3Mgd3JhcHMgY29kZSBvYmplY3RzLCBgYHB5LmNvZGUuU291cmNl
YGAgc291cmNlIHNuaXBwZXRzLAorYGBweS5jb2RlLlRyYWNlYmFja2AgZXhjZXB0aW9uIHRyYWNl
YmFja3MsIGBgcHkuY29kZS5GcmFtZWBgIGZyYW1lCitvYmplY3RzIChhcyBmb3VuZCBpbiBlLmcu
IHRyYWNlYmFja3MpIGFuZCBgYHB5LmNvZGUuRXhjZXB0aW9uSW5mb2BgIHRoZQordHVwbGUgcHJv
dmlkZWQgYnkgc3lzLmV4Y19pbmZvKCkgKGNvbnRhaW5pbmcgZXhjZXB0aW9uIGFuZCB0cmFjZWJh
Y2sKK2luZm9ybWF0aW9uIHdoZW4gYW4gZXhjZXB0aW9uIG9jY3VycykuIEFsc28gaW4gdGhlIGxp
YnJhcnkgaXMgYSBoZWxwZXIgZnVuY3Rpb24KK2BgcHkuY29kZS5jb21waWxlKClgYCB0aGF0IHBy
b3ZpZGVzIHRoZSBzYW1lIGZ1bmN0aW9uYWxpdHkgYXMgUHl0aG9uJ3MKK2J1aWx0LWluICdjb21w
aWxlKCknIGZ1bmN0aW9uLCBidXQgcmV0dXJucyBhIHdyYXBwZWQgY29kZSBvYmplY3QuCisKK1Ro
ZSB3cmFwcGVycworPT09PT09PT09PT09CisKK2BgcHkuY29kZS5Db2RlYGAKKy0tLS0tLS0tLS0t
LS0tLS0tLS0KKworQ29kZSBvYmplY3RzIGFyZSBpbnN0YW50aWF0ZWQgd2l0aCBhIGNvZGUgb2Jq
ZWN0IG9yIGEgY2FsbGFibGUgYXMgYXJndW1lbnQsCithbmQgcHJvdmlkZSBmdW5jdGlvbmFsaXR5
IHRvIGNvbXBhcmUgdGhlbXNlbHZlcyB3aXRoIG90aGVyIENvZGUgb2JqZWN0cywgZ2V0IHRvCit0
aGUgc291cmNlIGZpbGUgb3IgaXRzIGNvbnRlbnRzLCBjcmVhdGUgbmV3IENvZGUgb2JqZWN0cyBm
cm9tIHNjcmF0Y2gsIGV0Yy4KKworQSBxdWljayBleGFtcGxlOjoKKworICA+Pj4gaW1wb3J0IHB5
CisgID4+PiBjID0gcHkuY29kZS5Db2RlKHB5LnBhdGgubG9jYWwucmVhZCkKKyAgPj4+IGMucGF0
aC5iYXNlbmFtZQorICAnY29tbW9uLnB5JworICA+Pj4gaXNpbnN0YW5jZShjLnNvdXJjZSgpLCBw
eS5jb2RlLlNvdXJjZSkKKyAgVHJ1ZQorICA+Pj4gc3RyKGMuc291cmNlKCkpLnNwbGl0KCdcbicp
WzBdCisgICJkZWYgcmVhZChzZWxmLCBtb2RlPSdyJyk6IgorCisuLiBhdXRvY2xhc3M6OiBweS5j
b2RlLkNvZGUKKyAgICA6bWVtYmVyczoKKyAgICA6aW5oZXJpdGVkLW1lbWJlcnM6CisKKworYGBw
eS5jb2RlLlNvdXJjZWBgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworU291cmNlIG9iamVjdHMg
d3JhcCBzbmlwcGV0cyBvZiBQeXRob24gc291cmNlIGNvZGUsIHByb3ZpZGluZyBhIHNpbXBsZSB5
ZXQKK3Bvd2VyZnVsIGludGVyZmFjZSB0byByZWFkLCBkZWluZGVudCwgc2xpY2UsIGNvbXBhcmUs
IGNvbXBpbGUgYW5kIG1hbmlwdWxhdGUKK3RoZW0sIHRoaW5ncyB0aGF0IGFyZSBub3Qgc28gZWFz
eSBpbiBjb3JlIFB5dGhvbi4KKworRXhhbXBsZTo6CisKKyAgPj4+IHMgPSBweS5jb2RlLlNvdXJj
ZSgiIiJcCisgIC4uLiAgIGRlZiBmb28oKToKKyAgLi4uICAgICBwcmludCAiZm9vIgorICAuLi4g
IiIiKQorICA+Pj4gc3RyKHMpLnN0YXJ0c3dpdGgoJ2RlZicpICMgYXV0b21hdGljIGRlLWluZGVu
dGF0aW9uIQorICBUcnVlCisgID4+PiBzLmlzcGFyc2VhYmxlKCkKKyAgVHJ1ZQorICA+Pj4gc3Vi
ID0gcy5nZXRzdGF0ZW1lbnQoMSkgIyBnZXQgdGhlIHN0YXRlbWVudCBzdGFydGluZyBhdCBsaW5l
IDEKKyAgPj4+IHN0cihzdWIpLnN0cmlwKCkgIyBYWFggd2h5IGlzIHRoZSBzdHJpcCgpIHJlcXVp
cmVkPyE/CisgICdwcmludCAiZm9vIicKKworLi4gYXV0b2NsYXNzOjogcHkuY29kZS5Tb3VyY2UK
KyAgICA6bWVtYmVyczoKKworCitgYHB5LmNvZGUuVHJhY2ViYWNrYGAKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorCitUcmFjZWJhY2tzIGFyZSB1c3VhbGx5IG5vdCB2ZXJ5IGVhc3kgdG8gZXhh
bWluZSwgeW91IG5lZWQgdG8gYWNjZXNzIGNlcnRhaW4KK3NvbWV3aGF0IGhpZGRlbiBhdHRyaWJ1
dGVzIG9mIHRoZSB0cmFjZWJhY2sncyBpdGVtcyAocmVzdWx0aW5nIGluIGV4cHJlc3Npb25zCitz
dWNoIGFzICdmbmFtZSA9IHRiLnRiX25leHQudGJfZnJhbWUuZl9jb2RlLmNvX2ZpbGVuYW1lJyku
IFRoZSBUcmFjZWJhY2sKK2ludGVyZmFjZSAoYW5kIGl0cyBUcmFjZWJhY2tJdGVtIGNoaWxkcmVu
KSB0cmllcyB0byBpbXByb3ZlIHRoaXMuCisKK0V4YW1wbGU6OgorCisgID4+PiBpbXBvcnQgc3lz
CisgID4+PiB0cnk6CisgIC4uLiAgIHB5LnBhdGgubG9jYWwoMTAwKSAjIGlsbGVnYWwgYXJndW1l
bnQKKyAgLi4uIGV4Y2VwdDoKKyAgLi4uICAgZXhjLCBlLCB0YiA9IHN5cy5leGNfaW5mbygpCisg
ID4+PiB0ID0gcHkuY29kZS5UcmFjZWJhY2sodGIpCisgID4+PiBmaXJzdCA9IHRbMV0gIyBnZXQg
dGhlIHNlY29uZCBlbnRyeSAoZmlyc3QgaXMgaW4gdGhpcyBkb2MpCisgID4+PiBmaXJzdC5wYXRo
LmJhc2VuYW1lICMgc2Vjb25kIGlzIGluIHB5L3BhdGgvbG9jYWwucHkKKyAgJ2xvY2FsLnB5Jwor
ICA+Pj4gaXNpbnN0YW5jZShmaXJzdC5zdGF0ZW1lbnQsIHB5LmNvZGUuU291cmNlKQorICBUcnVl
CisgID4+PiBzdHIoZmlyc3Quc3RhdGVtZW50KS5zdHJpcCgpLnN0YXJ0c3dpdGgoJ3JhaXNlIFZh
bHVlRXJyb3InKQorICBUcnVlCisKKy4uIGF1dG9jbGFzczo6IHB5LmNvZGUuVHJhY2ViYWNrCisg
ICAgOm1lbWJlcnM6CisKK2BgcHkuY29kZS5GcmFtZWBgCistLS0tLS0tLS0tLS0tLS0tLS0tLQor
CitGcmFtZSB3cmFwcGVycyBhcmUgdXNlZCBpbiBgYHB5LmNvZGUuVHJhY2ViYWNrYGAgaXRlbXMs
IGFuZCB3aWxsIHVzdWFsbHkgbm90CitkaXJlY3RseSBiZSBpbnN0YW50aWF0ZWQuIFRoZXkgcHJv
dmlkZSBzb21lIG5pY2UgbWV0aG9kcyB0byBldmFsdWF0ZSBjb2RlCisnaW5zaWRlJyB0aGUgZnJh
bWUgKHVzaW5nIHRoZSBmcmFtZSdzIGxvY2FsIHZhcmlhYmxlcyksIGdldCB0byB0aGUgdW5kZXJs
eWluZworY29kZSAoZnJhbWVzIGhhdmUgYSBjb2RlIGF0dHJpYnV0ZSB0aGF0IHBvaW50cyB0byBh
IGBgcHkuY29kZS5Db2RlYGAgb2JqZWN0KQorYW5kIGV4YW1pbmUgdGhlIGFyZ3VtZW50cy4KKwor
RXhhbXBsZSAodXNpbmcgdGhlICdmaXJzdCcgVHJhY2ViYWNrSXRlbSBpbnN0YW5jZSBjcmVhdGVk
IGFib3ZlKTo6CisKKyAgPj4+IGZyYW1lID0gZmlyc3QuZnJhbWUKKyAgPj4+IGlzaW5zdGFuY2Uo
ZnJhbWUuY29kZSwgcHkuY29kZS5Db2RlKQorICBUcnVlCisgID4+PiBpc2luc3RhbmNlKGZyYW1l
LmV2YWwoJ3NlbGYnKSwgcHkucGF0aC5sb2NhbCkKKyAgVHJ1ZQorICA+Pj4gW25hbWV2YWx1ZVsw
XSBmb3IgbmFtZXZhbHVlIGluIGZyYW1lLmdldGFyZ3MoKV0KKyAgWydjbHMnLCAncGF0aCddCisK
Ky4uIGF1dG9jbGFzczo6IHB5LmNvZGUuRnJhbWUKKyAgICA6bWVtYmVyczoKKworYGBweS5jb2Rl
LkV4Y2VwdGlvbkluZm9gYAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitBIHdyYXBw
ZXIgYXJvdW5kIHRoZSB0dXBsZSByZXR1cm5lZCBieSBzeXMuZXhjX2luZm8oKSAod2lsbCBjYWxs
IHN5cy5leGNfaW5mbygpCitpdHNlbGYgaWYgdGhlIHR1cGxlIGlzIG5vdCBwcm92aWRlZCBhcyBh
biBhcmd1bWVudCksIHByb3ZpZGVzIHNvbWUgaGFuZHkKK2F0dHJpYnV0ZXMgdG8gZWFzaWx5IGFj
Y2VzcyB0aGUgdHJhY2ViYWNrIGFuZCBleGNlcHRpb24gc3RyaW5nLgorCitFeGFtcGxlOjoKKwor
ICA+Pj4gaW1wb3J0IHN5cworICA+Pj4gdHJ5OgorICAuLi4gICBmb29iYXIoKQorICAuLi4gZXhj
ZXB0OgorICAuLi4gICBleGNpbmZvID0gcHkuY29kZS5FeGNlcHRpb25JbmZvKCkKKyAgPj4+IGV4
Y2luZm8udHlwZW5hbWUKKyAgJ05hbWVFcnJvcicKKyAgPj4+IGlzaW5zdGFuY2UoZXhjaW5mby50
cmFjZWJhY2ssIHB5LmNvZGUuVHJhY2ViYWNrKQorICBUcnVlCisgID4+PiBleGNpbmZvLmV4Y29u
bHkoKQorICAiTmFtZUVycm9yOiBuYW1lICdmb29iYXInIGlzIG5vdCBkZWZpbmVkIgorCisuLiBh
dXRvY2xhc3M6OiBweS5jb2RlLkV4Y2VwdGlvbkluZm8KKyAgICA6bWVtYmVyczoKKworLi4gYXV0
b2NsYXNzOjogcHkuY29kZS5UcmFjZWJhY2sKKyAgICA6bWVtYmVyczoKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9kb2MvY29uZi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2NvbmYucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGU0
Y2JmOGE0NmYxMDUyZjU0NzEzZTJiNTEyMzMzNTFlMTNjZDEzYQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvZG9jL2NvbmYucHkKQEAgLTAsMCArMSwyNjMgQEAKKyMgLSotIGNvZGluZzogdXRm
LTggLSotCisjCisjIHB5IGRvY3VtZW50YXRpb24gYnVpbGQgY29uZmlndXJhdGlvbiBmaWxlLCBj
cmVhdGVkIGJ5CisjIHNwaGlueC1xdWlja3N0YXJ0IG9uIFRodSBPY3QgMjEgMDg6MzA6MTAgMjAx
MC4KKyMKKyMgVGhpcyBmaWxlIGlzIGV4ZWNmaWxlKClkIHdpdGggdGhlIGN1cnJlbnQgZGlyZWN0
b3J5IHNldCB0byBpdHMgY29udGFpbmluZyBkaXIuCisjCisjIE5vdGUgdGhhdCBub3QgYWxsIHBv
c3NpYmxlIGNvbmZpZ3VyYXRpb24gdmFsdWVzIGFyZSBwcmVzZW50IGluIHRoaXMKKyMgYXV0b2dl
bmVyYXRlZCBmaWxlLgorIworIyBBbGwgY29uZmlndXJhdGlvbiB2YWx1ZXMgaGF2ZSBhIGRlZmF1
bHQ7IHZhbHVlcyB0aGF0IGFyZSBjb21tZW50ZWQgb3V0CisjIHNlcnZlIHRvIHNob3cgdGhlIGRl
ZmF1bHQuCisKK2ltcG9ydCBzeXMsIG9zCisKKyMgSWYgZXh0ZW5zaW9ucyAob3IgbW9kdWxlcyB0
byBkb2N1bWVudCB3aXRoIGF1dG9kb2MpIGFyZSBpbiBhbm90aGVyIGRpcmVjdG9yeSwKKyMgYWRk
IHRoZXNlIGRpcmVjdG9yaWVzIHRvIHN5cy5wYXRoIGhlcmUuIElmIHRoZSBkaXJlY3RvcnkgaXMg
cmVsYXRpdmUgdG8gdGhlCisjIGRvY3VtZW50YXRpb24gcm9vdCwgdXNlIG9zLnBhdGguYWJzcGF0
aCB0byBtYWtlIGl0IGFic29sdXRlLCBsaWtlIHNob3duIGhlcmUuCisjc3lzLnBhdGguaW5zZXJ0
KDAsIG9zLnBhdGguYWJzcGF0aCgnLicpKQorCisjIC0tIEdlbmVyYWwgY29uZmlndXJhdGlvbiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisj
IElmIHlvdXIgZG9jdW1lbnRhdGlvbiBuZWVkcyBhIG1pbmltYWwgU3BoaW54IHZlcnNpb24sIHN0
YXRlIGl0IGhlcmUuCisjbmVlZHNfc3BoaW54ID0gJzEuMCcKKworIyBBZGQgYW55IFNwaGlueCBl
eHRlbnNpb24gbW9kdWxlIG5hbWVzIGhlcmUsIGFzIHN0cmluZ3MuIFRoZXkgY2FuIGJlIGV4dGVu
c2lvbnMKKyMgY29taW5nIHdpdGggU3BoaW54IChuYW1lZCAnc3BoaW54LmV4dC4qJykgb3IgeW91
ciBjdXN0b20gb25lcy4KK2V4dGVuc2lvbnMgPSBbJ3NwaGlueC5leHQuYXV0b2RvYycsICdzcGhp
bnguZXh0LmRvY3Rlc3QnLCAnc3BoaW54LmV4dC5pbnRlcnNwaGlueCcsICdzcGhpbnguZXh0LnZp
ZXdjb2RlJ10KKworIyBBZGQgYW55IHBhdGhzIHRoYXQgY29udGFpbiB0ZW1wbGF0ZXMgaGVyZSwg
cmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuCit0ZW1wbGF0ZXNfcGF0aCA9IFsnX3RlbXBsYXRl
cyddCisKKyMgVGhlIHN1ZmZpeCBvZiBzb3VyY2UgZmlsZW5hbWVzLgorc291cmNlX3N1ZmZpeCA9
ICcudHh0JworCisjIFRoZSBlbmNvZGluZyBvZiBzb3VyY2UgZmlsZXMuCisjc291cmNlX2VuY29k
aW5nID0gJ3V0Zi04LXNpZycKKworIyBUaGUgbWFzdGVyIHRvY3RyZWUgZG9jdW1lbnQuCittYXN0
ZXJfZG9jID0gJ2luZGV4JworCisjIEdlbmVyYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHByb2pl
Y3QuCitwcm9qZWN0ID0gdSdweScKK2NvcHlyaWdodCA9IHUnMjAxMCwgaG9sZ2VyIGtyZWtlbCBl
dC4gYWwuJworCisjIFRoZSB2ZXJzaW9uIGluZm8gZm9yIHRoZSBwcm9qZWN0IHlvdSdyZSBkb2N1
bWVudGluZywgYWN0cyBhcyByZXBsYWNlbWVudCBmb3IKKyMgfHZlcnNpb258IGFuZCB8cmVsZWFz
ZXwsIGFsc28gdXNlZCBpbiB2YXJpb3VzIG90aGVyIHBsYWNlcyB0aHJvdWdob3V0IHRoZQorIyBi
dWlsdCBkb2N1bWVudHMuCisjCisjIFRoZSBzaG9ydCBYLlkgdmVyc2lvbi4KKyMgVGhlIGZ1bGwg
dmVyc2lvbiwgaW5jbHVkaW5nIGFscGhhL2JldGEvcmMgdGFncy4KK2ltcG9ydCBweQorcmVsZWFz
ZSA9IHB5Ll9fdmVyc2lvbl9fCit2ZXJzaW9uID0gIi4iLmpvaW4ocmVsZWFzZS5zcGxpdCgiLiIp
WzoyXSkKKworIyBUaGUgbGFuZ3VhZ2UgZm9yIGNvbnRlbnQgYXV0b2dlbmVyYXRlZCBieSBTcGhp
bnguIFJlZmVyIHRvIGRvY3VtZW50YXRpb24KKyMgZm9yIGEgbGlzdCBvZiBzdXBwb3J0ZWQgbGFu
Z3VhZ2VzLgorI2xhbmd1YWdlID0gTm9uZQorCisjIFRoZXJlIGFyZSB0d28gb3B0aW9ucyBmb3Ig
cmVwbGFjaW5nIHx0b2RheXw6IGVpdGhlciwgeW91IHNldCB0b2RheSB0byBzb21lCisjIG5vbi1m
YWxzZSB2YWx1ZSwgdGhlbiBpdCBpcyB1c2VkOgorI3RvZGF5ID0gJycKKyMgRWxzZSwgdG9kYXlf
Zm10IGlzIHVzZWQgYXMgdGhlIGZvcm1hdCBmb3IgYSBzdHJmdGltZSBjYWxsLgorI3RvZGF5X2Zt
dCA9ICclQiAlZCwgJVknCisKKyMgTGlzdCBvZiBwYXR0ZXJucywgcmVsYXRpdmUgdG8gc291cmNl
IGRpcmVjdG9yeSwgdGhhdCBtYXRjaCBmaWxlcyBhbmQKKyMgZGlyZWN0b3JpZXMgdG8gaWdub3Jl
IHdoZW4gbG9va2luZyBmb3Igc291cmNlIGZpbGVzLgorZXhjbHVkZV9wYXR0ZXJucyA9IFsnX2J1
aWxkJ10KKworIyBUaGUgcmVTVCBkZWZhdWx0IHJvbGUgKHVzZWQgZm9yIHRoaXMgbWFya3VwOiBg
dGV4dGApIHRvIHVzZSBmb3IgYWxsIGRvY3VtZW50cy4KKyNkZWZhdWx0X3JvbGUgPSBOb25lCisK
KyMgSWYgdHJ1ZSwgJygpJyB3aWxsIGJlIGFwcGVuZGVkIHRvIDpmdW5jOiBldGMuIGNyb3NzLXJl
ZmVyZW5jZSB0ZXh0LgorI2FkZF9mdW5jdGlvbl9wYXJlbnRoZXNlcyA9IFRydWUKKworIyBJZiB0
cnVlLCB0aGUgY3VycmVudCBtb2R1bGUgbmFtZSB3aWxsIGJlIHByZXBlbmRlZCB0byBhbGwgZGVz
Y3JpcHRpb24KKyMgdW5pdCB0aXRsZXMgKHN1Y2ggYXMgLi4gZnVuY3Rpb246OikuCisjYWRkX21v
ZHVsZV9uYW1lcyA9IFRydWUKKworIyBJZiB0cnVlLCBzZWN0aW9uYXV0aG9yIGFuZCBtb2R1bGVh
dXRob3IgZGlyZWN0aXZlcyB3aWxsIGJlIHNob3duIGluIHRoZQorIyBvdXRwdXQuIFRoZXkgYXJl
IGlnbm9yZWQgYnkgZGVmYXVsdC4KKyNzaG93X2F1dGhvcnMgPSBGYWxzZQorCisjIFRoZSBuYW1l
IG9mIHRoZSBQeWdtZW50cyAoc3ludGF4IGhpZ2hsaWdodGluZykgc3R5bGUgdG8gdXNlLgorcHln
bWVudHNfc3R5bGUgPSAnc3BoaW54JworCisjIEEgbGlzdCBvZiBpZ25vcmVkIHByZWZpeGVzIGZv
ciBtb2R1bGUgaW5kZXggc29ydGluZy4KKyNtb2RpbmRleF9jb21tb25fcHJlZml4ID0gW10KKwor
CisjIC0tIE9wdGlvbnMgZm9yIEhUTUwgb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIFRoZSB0aGVtZSB0byB1c2UgZm9yIEhUTUwg
YW5kIEhUTUwgSGVscCBwYWdlcy4gIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IKKyMgYSBsaXN0
IG9mIGJ1aWx0aW4gdGhlbWVzLgoraHRtbF90aGVtZSA9ICdkZWZhdWx0JworCisjIFRoZW1lIG9w
dGlvbnMgYXJlIHRoZW1lLXNwZWNpZmljIGFuZCBjdXN0b21pemUgdGhlIGxvb2sgYW5kIGZlZWwg
b2YgYSB0aGVtZQorIyBmdXJ0aGVyLiAgRm9yIGEgbGlzdCBvZiBvcHRpb25zIGF2YWlsYWJsZSBm
b3IgZWFjaCB0aGVtZSwgc2VlIHRoZQorIyBkb2N1bWVudGF0aW9uLgorI2h0bWxfdGhlbWVfb3B0
aW9ucyA9IHt9CisKKyMgQWRkIGFueSBwYXRocyB0aGF0IGNvbnRhaW4gY3VzdG9tIHRoZW1lcyBo
ZXJlLCByZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeS4KKyNodG1sX3RoZW1lX3BhdGggPSBbXQor
CisjIFRoZSBuYW1lIGZvciB0aGlzIHNldCBvZiBTcGhpbnggZG9jdW1lbnRzLiAgSWYgTm9uZSwg
aXQgZGVmYXVsdHMgdG8KKyMgIjxwcm9qZWN0PiB2PHJlbGVhc2U+IGRvY3VtZW50YXRpb24iLgor
I2h0bWxfdGl0bGUgPSBOb25lCisKKyMgQSBzaG9ydGVyIHRpdGxlIGZvciB0aGUgbmF2aWdhdGlv
biBiYXIuICBEZWZhdWx0IGlzIHRoZSBzYW1lIGFzIGh0bWxfdGl0bGUuCisjaHRtbF9zaG9ydF90
aXRsZSA9IE5vbmUKKworIyBUaGUgbmFtZSBvZiBhbiBpbWFnZSBmaWxlIChyZWxhdGl2ZSB0byB0
aGlzIGRpcmVjdG9yeSkgdG8gcGxhY2UgYXQgdGhlIHRvcAorIyBvZiB0aGUgc2lkZWJhci4KKyNo
dG1sX2xvZ28gPSBOb25lCisKKyMgVGhlIG5hbWUgb2YgYW4gaW1hZ2UgZmlsZSAod2l0aGluIHRo
ZSBzdGF0aWMgcGF0aCkgdG8gdXNlIGFzIGZhdmljb24gb2YgdGhlCisjIGRvY3MuICBUaGlzIGZp
bGUgc2hvdWxkIGJlIGEgV2luZG93cyBpY29uIGZpbGUgKC5pY28pIGJlaW5nIDE2eDE2IG9yIDMy
eDMyCisjIHBpeGVscyBsYXJnZS4KKyNodG1sX2Zhdmljb24gPSBOb25lCisKKyMgQWRkIGFueSBw
YXRocyB0aGF0IGNvbnRhaW4gY3VzdG9tIHN0YXRpYyBmaWxlcyAoc3VjaCBhcyBzdHlsZSBzaGVl
dHMpIGhlcmUsCisjIHJlbGF0aXZlIHRvIHRoaXMgZGlyZWN0b3J5LiBUaGV5IGFyZSBjb3BpZWQg
YWZ0ZXIgdGhlIGJ1aWx0aW4gc3RhdGljIGZpbGVzLAorIyBzbyBhIGZpbGUgbmFtZWQgImRlZmF1
bHQuY3NzIiB3aWxsIG92ZXJ3cml0ZSB0aGUgYnVpbHRpbiAiZGVmYXVsdC5jc3MiLgoraHRtbF9z
dGF0aWNfcGF0aCA9IFsnX3N0YXRpYyddCisKKyMgSWYgbm90ICcnLCBhICdMYXN0IHVwZGF0ZWQg
b246JyB0aW1lc3RhbXAgaXMgaW5zZXJ0ZWQgYXQgZXZlcnkgcGFnZSBib3R0b20sCisjIHVzaW5n
IHRoZSBnaXZlbiBzdHJmdGltZSBmb3JtYXQuCisjaHRtbF9sYXN0X3VwZGF0ZWRfZm10ID0gJyVi
ICVkLCAlWScKKworIyBJZiB0cnVlLCBTbWFydHlQYW50cyB3aWxsIGJlIHVzZWQgdG8gY29udmVy
dCBxdW90ZXMgYW5kIGRhc2hlcyB0bworIyB0eXBvZ3JhcGhpY2FsbHkgY29ycmVjdCBlbnRpdGll
cy4KKyNodG1sX3VzZV9zbWFydHlwYW50cyA9IFRydWUKKworIyBDdXN0b20gc2lkZWJhciB0ZW1w
bGF0ZXMsIG1hcHMgZG9jdW1lbnQgbmFtZXMgdG8gdGVtcGxhdGUgbmFtZXMuCisjaHRtbF9zaWRl
YmFycyA9IHt9CisKKyMgQWRkaXRpb25hbCB0ZW1wbGF0ZXMgdGhhdCBzaG91bGQgYmUgcmVuZGVy
ZWQgdG8gcGFnZXMsIG1hcHMgcGFnZSBuYW1lcyB0bworIyB0ZW1wbGF0ZSBuYW1lcy4KKyNodG1s
X2FkZGl0aW9uYWxfcGFnZXMgPSB7fQorCisjIElmIGZhbHNlLCBubyBtb2R1bGUgaW5kZXggaXMg
Z2VuZXJhdGVkLgorI2h0bWxfZG9tYWluX2luZGljZXMgPSBUcnVlCisKKyMgSWYgZmFsc2UsIG5v
IGluZGV4IGlzIGdlbmVyYXRlZC4KKyNodG1sX3VzZV9pbmRleCA9IFRydWUKKworIyBJZiB0cnVl
LCB0aGUgaW5kZXggaXMgc3BsaXQgaW50byBpbmRpdmlkdWFsIHBhZ2VzIGZvciBlYWNoIGxldHRl
ci4KKyNodG1sX3NwbGl0X2luZGV4ID0gRmFsc2UKKworIyBJZiB0cnVlLCBsaW5rcyB0byB0aGUg
cmVTVCBzb3VyY2VzIGFyZSBhZGRlZCB0byB0aGUgcGFnZXMuCisjaHRtbF9zaG93X3NvdXJjZWxp
bmsgPSBUcnVlCisKKyMgSWYgdHJ1ZSwgIkNyZWF0ZWQgdXNpbmcgU3BoaW54IiBpcyBzaG93biBp
biB0aGUgSFRNTCBmb290ZXIuIERlZmF1bHQgaXMgVHJ1ZS4KKyNodG1sX3Nob3dfc3BoaW54ID0g
VHJ1ZQorCisjIElmIHRydWUsICIoQykgQ29weXJpZ2h0IC4uLiIgaXMgc2hvd24gaW4gdGhlIEhU
TUwgZm9vdGVyLiBEZWZhdWx0IGlzIFRydWUuCisjaHRtbF9zaG93X2NvcHlyaWdodCA9IFRydWUK
KworIyBJZiB0cnVlLCBhbiBPcGVuU2VhcmNoIGRlc2NyaXB0aW9uIGZpbGUgd2lsbCBiZSBvdXRw
dXQsIGFuZCBhbGwgcGFnZXMgd2lsbAorIyBjb250YWluIGEgPGxpbms+IHRhZyByZWZlcnJpbmcg
dG8gaXQuICBUaGUgdmFsdWUgb2YgdGhpcyBvcHRpb24gbXVzdCBiZSB0aGUKKyMgYmFzZSBVUkwg
ZnJvbSB3aGljaCB0aGUgZmluaXNoZWQgSFRNTCBpcyBzZXJ2ZWQuCisjaHRtbF91c2Vfb3BlbnNl
YXJjaCA9ICcnCisKKyMgVGhpcyBpcyB0aGUgZmlsZSBuYW1lIHN1ZmZpeCBmb3IgSFRNTCBmaWxl
cyAoZS5nLiAiLnhodG1sIikuCisjaHRtbF9maWxlX3N1ZmZpeCA9IE5vbmUKKworIyBPdXRwdXQg
ZmlsZSBiYXNlIG5hbWUgZm9yIEhUTUwgaGVscCBidWlsZGVyLgoraHRtbGhlbHBfYmFzZW5hbWUg
PSAncHknCisKKworIyAtLSBPcHRpb25zIGZvciBMYVRlWCBvdXRwdXQgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBUaGUgcGFwZXIgc2l6ZSAo
J2xldHRlcicgb3IgJ2E0JykuCisjbGF0ZXhfcGFwZXJfc2l6ZSA9ICdsZXR0ZXInCisKKyMgVGhl
IGZvbnQgc2l6ZSAoJzEwcHQnLCAnMTFwdCcgb3IgJzEycHQnKS4KKyNsYXRleF9mb250X3NpemUg
PSAnMTBwdCcKKworIyBHcm91cGluZyB0aGUgZG9jdW1lbnQgdHJlZSBpbnRvIExhVGVYIGZpbGVz
LiBMaXN0IG9mIHR1cGxlcworIyAoc291cmNlIHN0YXJ0IGZpbGUsIHRhcmdldCBuYW1lLCB0aXRs
ZSwgYXV0aG9yLCBkb2N1bWVudGNsYXNzIFtob3d0by9tYW51YWxdKS4KK2xhdGV4X2RvY3VtZW50
cyA9IFsKKyAgKCdpbmRleCcsICdweS50ZXgnLCB1J3B5IERvY3VtZW50YXRpb24nLAorICAgdSdo
b2xnZXIga3Jla2VsIGV0LiBhbC4nLCAnbWFudWFsJyksCitdCisKKyMgVGhlIG5hbWUgb2YgYW4g
aW1hZ2UgZmlsZSAocmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkpIHRvIHBsYWNlIGF0IHRoZSB0
b3Agb2YKKyMgdGhlIHRpdGxlIHBhZ2UuCisjbGF0ZXhfbG9nbyA9IE5vbmUKKworIyBGb3IgIm1h
bnVhbCIgZG9jdW1lbnRzLCBpZiB0aGlzIGlzIHRydWUsIHRoZW4gdG9wbGV2ZWwgaGVhZGluZ3Mg
YXJlIHBhcnRzLAorIyBub3QgY2hhcHRlcnMuCisjbGF0ZXhfdXNlX3BhcnRzID0gRmFsc2UKKwor
IyBJZiB0cnVlLCBzaG93IHBhZ2UgcmVmZXJlbmNlcyBhZnRlciBpbnRlcm5hbCBsaW5rcy4KKyNs
YXRleF9zaG93X3BhZ2VyZWZzID0gRmFsc2UKKworIyBJZiB0cnVlLCBzaG93IFVSTCBhZGRyZXNz
ZXMgYWZ0ZXIgZXh0ZXJuYWwgbGlua3MuCisjbGF0ZXhfc2hvd191cmxzID0gRmFsc2UKKworIyBB
ZGRpdGlvbmFsIHN0dWZmIGZvciB0aGUgTGFUZVggcHJlYW1ibGUuCisjbGF0ZXhfcHJlYW1ibGUg
PSAnJworCisjIERvY3VtZW50cyB0byBhcHBlbmQgYXMgYW4gYXBwZW5kaXggdG8gYWxsIG1hbnVh
bHMuCisjbGF0ZXhfYXBwZW5kaWNlcyA9IFtdCisKKyMgSWYgZmFsc2UsIG5vIG1vZHVsZSBpbmRl
eCBpcyBnZW5lcmF0ZWQuCisjbGF0ZXhfZG9tYWluX2luZGljZXMgPSBUcnVlCisKKworIyAtLSBP
cHRpb25zIGZvciBtYW51YWwgcGFnZSBvdXRwdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKworIyBPbmUgZW50cnkgcGVyIG1hbnVhbCBwYWdlLiBMaXN0IG9m
IHR1cGxlcworIyAoc291cmNlIHN0YXJ0IGZpbGUsIG5hbWUsIGRlc2NyaXB0aW9uLCBhdXRob3Jz
LCBtYW51YWwgc2VjdGlvbikuCittYW5fcGFnZXMgPSBbCisgICAgKCdpbmRleCcsICdweScsIHUn
cHkgRG9jdW1lbnRhdGlvbicsCisgICAgIFt1J2hvbGdlciBrcmVrZWwgZXQuIGFsLiddLCAxKQor
XQorCithdXRvZG9jX21lbWJlcl9vcmRlciA9ICJieXNvdXJjZSIKK2F1dG9kb2NfZGVmYXVsdF9m
bGFncyA9ICJpbmhlcml0ZWQtbWVtYmVycyIKKworIyAtLSBPcHRpb25zIGZvciBFcHViIG91dHB1
dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
IyBCaWJsaW9ncmFwaGljIER1YmxpbiBDb3JlIGluZm8uCitlcHViX3RpdGxlID0gdSdweScKK2Vw
dWJfYXV0aG9yID0gdSdob2xnZXIga3Jla2VsIGV0LiBhbC4nCitlcHViX3B1Ymxpc2hlciA9IHUn
aG9sZ2VyIGtyZWtlbCBldC4gYWwuJworZXB1Yl9jb3B5cmlnaHQgPSB1JzIwMTAsIGhvbGdlciBr
cmVrZWwgZXQuIGFsLicKKworIyBUaGUgbGFuZ3VhZ2Ugb2YgdGhlIHRleHQuIEl0IGRlZmF1bHRz
IHRvIHRoZSBsYW5ndWFnZSBvcHRpb24KKyMgb3IgZW4gaWYgdGhlIGxhbmd1YWdlIGlzIG5vdCBz
ZXQuCisjZXB1Yl9sYW5ndWFnZSA9ICcnCisKKyMgVGhlIHNjaGVtZSBvZiB0aGUgaWRlbnRpZmll
ci4gVHlwaWNhbCBzY2hlbWVzIGFyZSBJU0JOIG9yIFVSTC4KKyNlcHViX3NjaGVtZSA9ICcnCisK
KyMgVGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSB0ZXh0LiBUaGlzIGNhbiBiZSBhIElTQk4g
bnVtYmVyCisjIG9yIHRoZSBwcm9qZWN0IGhvbWVwYWdlLgorI2VwdWJfaWRlbnRpZmllciA9ICcn
CisKKyMgQSB1bmlxdWUgaWRlbnRpZmljYXRpb24gZm9yIHRoZSB0ZXh0LgorI2VwdWJfdWlkID0g
JycKKworIyBIVE1MIGZpbGVzIHRoYXQgc2hvdWxkIGJlIGluc2VydGVkIGJlZm9yZSB0aGUgcGFn
ZXMgY3JlYXRlZCBieSBzcGhpbnguCisjIFRoZSBmb3JtYXQgaXMgYSBsaXN0IG9mIHR1cGxlcyBj
b250YWluaW5nIHRoZSBwYXRoIGFuZCB0aXRsZS4KKyNlcHViX3ByZV9maWxlcyA9IFtdCisKKyMg
SFRNTCBmaWxlcyBzaGF0IHNob3VsZCBiZSBpbnNlcnRlZCBhZnRlciB0aGUgcGFnZXMgY3JlYXRl
ZCBieSBzcGhpbnguCisjIFRoZSBmb3JtYXQgaXMgYSBsaXN0IG9mIHR1cGxlcyBjb250YWluaW5n
IHRoZSBwYXRoIGFuZCB0aXRsZS4KKyNlcHViX3Bvc3RfZmlsZXMgPSBbXQorCisjIEEgbGlzdCBv
ZiBmaWxlcyB0aGF0IHNob3VsZCBub3QgYmUgcGFja2VkIGludG8gdGhlIGVwdWIgZmlsZS4KKyNl
cHViX2V4Y2x1ZGVfZmlsZXMgPSBbXQorCisjIFRoZSBkZXB0aCBvZiB0aGUgdGFibGUgb2YgY29u
dGVudHMgaW4gdG9jLm5jeC4KKyNlcHViX3RvY2RlcHRoID0gMworCisjIEFsbG93IGR1cGxpY2F0
ZSB0b2MgZW50cmllcy4KKyNlcHViX3RvY2R1cCA9IFRydWUKKworCisjIEV4YW1wbGUgY29uZmln
dXJhdGlvbiBmb3IgaW50ZXJzcGhpbng6IHJlZmVyIHRvIHRoZSBQeXRob24gc3RhbmRhcmQgbGli
cmFyeS4KK2ludGVyc3BoaW54X21hcHBpbmcgPSB7J2h0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvJzog
Tm9uZX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Rvd25sb2FkLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2Rv
Yy9kb3dubG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmNGM0NjY0MDJkMTRjY2FmNjMwMmFhNDhlMzkz
M2E3MjZjNTRhMDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9kb3dubG9hZC5odG1s
CkBAIC0wLDAgKzEsMTggQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBodHRw
LWVxdWl2PSJyZWZyZXNoIiBjb250ZW50PSIgMSA7IFVSTD1pbnN0YWxsLmh0bWwiIC8+CisgICAg
PC9oZWFkPgorCisgICAgPGJvZHk+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cit2
YXIgZ2FKc0hvc3QgPSAoKCJodHRwczoiID09IGRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sKSA/
ICJodHRwczovL3NzbC4iIDogImh0dHA6Ly93d3cuIik7Citkb2N1bWVudC53cml0ZSh1bmVzY2Fw
ZSgiJTNDc2NyaXB0IHNyYz0nIiArIGdhSnNIb3N0ICsgImdvb2dsZS1hbmFseXRpY3MuY29tL2dh
LmpzJyB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnJTNFJTNDL3NjcmlwdCUzRSIpKTsKKzwvc2NyaXB0
PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgordHJ5IHsKK3ZhciBwYWdlVHJhY2tl
ciA9IF9nYXQuX2dldFRyYWNrZXIoIlVBLTc1OTcyNzQtMyIpOworcGFnZVRyYWNrZXIuX3RyYWNr
UGFnZXZpZXcoKTsKK30gY2F0Y2goZXJyKSB7fTwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgor
ICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvZXhhbXBsZS9nZW5odG1sLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS9kb2MvZXhhbXBsZS9nZW5odG1sLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1YzhmNTI1YjYyYWJkN2EyYWVk
NzE4YTQwNmI2Mzc4NGVhNzVkMTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9leGFt
cGxlL2dlbmh0bWwucHkKQEAgLTAsMCArMSwxMyBAQAorZnJvbSBweS54bWwgaW1wb3J0IGh0bWwK
KworcGFyYXMgPSAiRmlyc3QgUGFyYSIsICJTZWNvbmQgcGFyYSIKKworZG9jID0gaHRtbC5odG1s
KAorICAgaHRtbC5oZWFkKAorICAgICAgICBodG1sLm1ldGEobmFtZT0iQ29udGVudC1UeXBlIiwg
dmFsdWU9InRleHQvaHRtbDsgY2hhcnNldD1sYXRpbjEiKSksCisgICBodG1sLmJvZHkoCisgICAg
ICAgIFtodG1sLnAocCkgZm9yIHAgaW4gcGFyYXNdKSkKKworcHJpbnQgdW5pY29kZShkb2MpLmVu
Y29kZSgnbGF0aW4xJykKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9leGFtcGxlL2dlbmh0
bWxjc3MucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9leGFtcGxlL2dlbmh0bWxjc3MucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
M2U2ZDBhZjU0NTRjNTU4MzQ2ZjY4YmZkM2Y0YzcxMzhlNWM4MTY4MQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvZG9jL2V4YW1wbGUvZ2VuaHRtbGNzcy5weQpAQCAtMCwwICsxLDIzIEBACitp
bXBvcnQgcHkKK2h0bWwgPSBweS54bWwuaHRtbAorCitjbGFzcyBteShodG1sKToKKyAgICAiYSBj
dXN0b20gc3R5bGUiCisgICAgY2xhc3MgYm9keShodG1sLmJvZHkpOgorICAgICAgICBzdHlsZSA9
IGh0bWwuU3R5bGUoZm9udF9zaXplID0gIjEyMCUiKQorCisgICAgY2xhc3MgaDIoaHRtbC5oMik6
CisgICAgICAgIHN0eWxlID0gaHRtbC5TdHlsZShiYWNrZ3JvdW5kID0gImdyZXkiKQorCisgICAg
Y2xhc3MgcChodG1sLnApOgorICAgICAgICBzdHlsZSA9IGh0bWwuU3R5bGUoZm9udF93ZWlnaHQ9
ImJvbGQiKQorCitkb2MgPSBteS5odG1sKAorICAgIG15LmhlYWQoKSwKKyAgICBteS5ib2R5KAor
ICAgICAgICBteS5oMigiaGVsbG8gd29ybGQiKSwKKyAgICAgICAgbXkucCgiYm9sZCBhcyBib2xk
IGNhbiIpCisgICAgKQorKQorCitwcmludCBkb2MudW5pY29kZShpbmRlbnQ9MikKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvZG9jL2V4YW1wbGUvZ2VueG1sLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvZXhhbXBsZS9n
ZW54bWwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNWY3NTRlODg5N2JlOGZmZTAxM2VhMjY2NWU4MjRlZmZkMWZj
NjY4MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2V4YW1wbGUvZ2VueG1sLnB5CkBA
IC0wLDAgKzEsMTcgQEAKKworaW1wb3J0IHB5CitjbGFzcyBucyhweS54bWwuTmFtZXNwYWNlKToK
KyAgICBwYXNzCisKK2RvYyA9IG5zLmJvb2tzKAorICAgIG5zLmJvb2soCisgICAgICAgIG5zLmF1
dGhvcigiTWF5IERheSIpLAorICAgICAgICBucy50aXRsZSgicHl0aG9uIGZvciBqYXZhIHByb2dy
YW1tZXJzIiksKSwKKyAgICBucy5ib29rKAorICAgICAgICBucy5hdXRob3IoIndoeSIsIGNsYXNz
Xz0ic29tZWNzc2NsYXNzIiksCisgICAgICAgIG5zLnRpdGxlKCJKYXZhIGZvciBQeXRob24gcHJv
Z3JhbW1lcnMiKSwpLAorICAgIHB1Ymxpc2hlcj0iTi5OIiwKKyAgICApCitwcmludCBkb2MudW5p
Y29kZShpbmRlbnQ9MikuZW5jb2RlKCd1dGY4JykKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2Rv
Yy9leGFtcGxlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvZXhhbXBsZS93M2MtaW1wb3J0
LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xYThhYzQ3NzNmYTZhOWU5MGU2NGJjYzMwZTk4Y2VlNjVjNzRiZGUz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvZXhhbXBsZS93M2MtaW1wb3J0LmxvZwpA
QCAtMCwwICsxLDE5IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
UFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisK
K1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRv
IHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQ
cm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9leGFtcGxlL2dlbmh0bWwucHkK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L2RvYy9leGFtcGxlL2dlbmh0bWxjc3MucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9leGFtcGxl
L2dlbnhtbC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvZmFxLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9j
L2ZhcS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTJjYjRiM2ZiZDM3ODIzYmQ0ZTUzZWU5MWNhNTIzMTBiMDgz
MjYyYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2ZhcS50eHQKQEAgLTAsMCArMSwx
NzIgQEAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK0ZyZXF1ZW50bHkgQXNr
ZWQgUXVlc3Rpb25zCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGNv
bnRlbnRzOjoKKyAgICA6bG9jYWw6CisgICAgOmRlcHRoOiAyCisKKworT24gbmFtaW5nLCBub3Nl
dGVzdHMsIGxpY2Vuc2luZyBhbmQgbWFnaWMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KKworV2h5IHRoZSBgYHB5YGAgbmFtaW5nPyAgV2h5IG5vdCBgYHB5dGVz
dGBgPworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCitUaGlzIG1vc3RseSBoYXMgaGlzdG9yaWMgcmVhc29ucyAtIHRoZSBhaW0gaXMKK3RvIGdl
dCBhd2F5IGZyb20gdGhlIHNvbWV3aGF0IHF1ZXN0aW9uYWJsZSAncHknIG5hbWUKK2F0IHNvbWUg
cG9pbnQuICBUaGVzZSBkYXlzICgyMDEwKSB0aGUgJ3B5JyBsaWJyYXJ5CithbG1vc3QgY29tcGxl
dGVseSBjb21wcmlzZXMgQVBJcyB0aGF0IGFyZSB1c2VkCitieSB0aGUgYGBweS50ZXN0YGAgdG9v
bC4gIFRoZXJlIGFsc28gYXJlIHNvbWUKK290aGVyIHVzZXMsIGUuZy4gb2YgdGhlIGBgcHkucGF0
aC5sb2NhbCgpYGAgYW5kCitvdGhlciBwYXRoIGltcGxlbWVudGF0aW9ucy4gIFNvIGl0IHJlcXVp
cmVzIHNvbWUKK3dvcmsgdG8gZmFjdG9yIHRoZW0gb3V0IGFuZCBkbyB0aGUgc2hpZnQuCisKK1do
eSB0aGUgYGBweS50ZXN0YGAgbmFtaW5nPworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKK2JlY2F1c2Ugb2YgVEFCLWNvbXBsZXRpb24gdW5kZXIgQmFzaC9TaGVsbHMuICBJ
ZiB5b3UgaGl0CitgYHB5LjxUQUI+YGAgeW91J2xsIGdldCBhIGxpc3Qgb2YgYXZhaWxhYmxlIGRl
dmVsb3BtZW50Cit0b29scyB0aGF0IGFsbCBzaGFyZSB0aGUgYGBweS5gYCBwcmVmaXguICBBbm90
aGVyIG1vdGl2YXRpb24KK3dhcyB0byB1bmlmeSB0aGUgcGFja2FnZSAoInB5LnRlc3QiKSBhbmQg
dG9vbCBmaWxlbmFtZS4KKworV2hhdCdzIHB5LnRlc3QncyByZWxhdGlvbiB0byBgYG5vc2V0ZXN0
c2BgPworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK3B5
LnRlc3QgYW5kIG5vc2VfIHNoYXJlIGJhc2ljIHBoaWxvc29waHkgd2hlbiBpdCBjb21lcwordG8g
cnVubmluZyBQeXRob24gdGVzdHMuICBJbiBmYWN0LAord2l0aCBweS50ZXN0LTEuMS4wIGl0IGlz
IGV2ZXIgZWFzaWVyIHRvIHJ1biBtYW55IHRlc3Qgc3VpdGVzCit0aGF0IGN1cnJlbnRseSB3b3Jr
IHdpdGggYGBub3NldGVzdHNgYC4gIG5vc2VfIHdhcyBjcmVhdGVkCithcyBhIGNsb25lIG9mIGBg
cHkudGVzdGBgIHdoZW4gcHkudGVzdCB3YXMgaW4gdGhlIGBgMC44YGAgcmVsZWFzZQorY3ljbGUg
c28gc29tZSBvZiB0aGUgbmV3ZXIgZmVhdHVyZXNfIGludHJvZHVjZWQgd2l0aCBweS50ZXN0LTEu
MAorYW5kIHB5LnRlc3QtMS4xIGhhdmUgbm8gY291bnRlcnBhcnQgaW4gbm9zZV8uCisKKy4uIF9u
b3NlOiBodHRwOi8vc29tZXRoaW5nYWJvdXRvcmFuZ2UuY29tL21ybC9wcm9qZWN0cy9ub3NlLzAu
MTEuMS8KKy4uIF9mZWF0dXJlczogdGVzdC9mZWF0dXJlcy5odG1sCisuLiBfYXBpcGtnOiBodHRw
Oi8vcHlwaS5weXRob24ub3JnL3B5cGkvYXBpcGtnCisKKworV2hhdCdzIHRoaXMgIm1hZ2ljIiB3
aXRoIHB5LnRlc3Q/CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
K2lzc3VlcyB3aGVyZSBwZW9wbGUgaGF2ZSB1c2VkIHRoZSB0ZXJtICJtYWdpYyIgaW4gdGhlIHBh
c3Q6CisKKyogYHB5L19faW5pdF9fLnB5YF8gdXNlcyB0aGUgYXBpcGtnXyBtZWNoYW5pc20gZm9y
IGxhenktaW1wb3J0aW5nCisgIGFuZCBmdWxsIGNvbnRyb2wgb24gd2hhdCBBUEkgeW91IGdldCB3
aGVuIGltcG9ydGluZyAiaW1wb3J0IHB5Ii4KKworKiB3aGVuIGFuIGBgYXNzZXJ0YGAgc3RhdGVt
ZW50IGZhaWxzLCBweS50ZXN0IHJlLWludGVycHJldHMgdGhlIGV4cHJlc3Npb24KKyAgdG8gc2hv
dyBpbnRlcm1lZGlhdGUgdmFsdWVzIGlmIGEgdGVzdCBmYWlscy4gIElmIHlvdXIgZXhwcmVzc2lv
bgorICBoYXMgc2lkZSBlZmZlY3RzIHRoZSBpbnRlcm1lZGlhdGUgdmFsdWVzIG1heSBub3QgYmUg
dGhlIHNhbWUsIG9iZnVzY2F0aW5nCisgIHRoZSBpbml0aWFsIGVycm9yICh0aGlzIGlzIGFsc28g
ZXhwbGFpbmVkIGF0IHRoZSBjb21tYW5kIGxpbmUgaWYgaXQgaGFwcGVucykuCisgIGBgcHkudGVz
dCAtLW5vLWFzc2VydGBgIHR1cm5zIG9mZiBhc3NlcnQgcmUtaW50ZXByZXRhdGlvbi4KKyAgU2lk
ZW5vdGU6IGl0IGlzIGdvb2QgcHJhY3Rpc2UgdG8gYXZvaWQgYXNzZXJ0cyB3aXRoIHNpZGUgZWZm
ZWN0cy4KKworCisuLiBfYHB5IG5hbWVzcGFjZXNgOiBpbmRleC5odG1sCisuLiBfYHB5L19faW5p
dF9fLnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsvc3JjL3RydW5rL3B5
L19faW5pdF9fLnB5CisKK1doZXJlIGRvZXMgbXkgYGBweS50ZXN0YGAgY29tZS9pbXBvcnQgZnJv
bT8KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworWW91
IGNhbiBpc3N1ZTo6CisKKyAgICBweS50ZXN0IC0tdmVyc2lvbgorCit3aGljaCB0ZWxscyB5b3Ug
Ym90aCB2ZXJzaW9uIGFuZCBpbXBvcnQgbG9jYXRpb24gb2YgdGhlIHRvb2wuCisKKworZnVuY3Rp
b24gYXJndW1lbnRzLCBwYXJhbWV0cml6ZWQgdGVzdHMgYW5kIHNldHVwCis9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIF9mdW5jYXJnczog
dGVzdC9mdW5jYXJncy5odG1sCisKK0lzIHVzaW5nIGZ1bmNhcmctIHZlcnN1cyB4VW5pdC1iYXNl
ZCBzZXR1cCBhIHN0eWxlIHF1ZXN0aW9uPworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0l0IGRlcGVuZHMuIEZvciBzaW1w
bGUgYXBwbGljYXRpb25zIG9yIGZvciBwZW9wbGUgZXhwZXJpZW5jZWQKK3dpdGggbm9zZV8gb3Ig
dW5pdHRlc3Qtc3R5bGUgdGVzdCBzZXR1cCB1c2luZyBgeFVuaXQgc3R5bGUgc2V0dXBgXworbWFr
ZSBzb21lIHNlbnNlLiAgRm9yIGxhcmdlciB0ZXN0IHN1aXRlcywgcGFyYW1ldHJpemVkIHRlc3Rp
bmcKK29yIHNldHVwIG9mIGNvbXBsZXggdGVzdCByZXNvdXJjZXMgdXNpbmcgZnVuY2FyZ3NfIGlz
IHJlY29tbWVuZGVkLgorTW9yZW92ZXIsIGZ1bmNhcmdzIGFyZSBpZGVhbCBmb3Igd3JpdGluZyBh
ZHZhbmNlZCB0ZXN0IHN1cHBvcnQKK2NvZGUgKGxpa2UgZS5nLiB0aGUgbW9ua2V5cGF0Y2hfLCB0
aGUgdG1wZGlyXyBvciBjYXB0dXJlXyBmdW5jYXJncykKK2JlY2F1c2UgdGhlIHN1cHBvcnQgY29k
ZSBjYW4gcmVnaXN0ZXIgc2V0dXAvdGVhcmRvd24gZnVuY3Rpb25zCitpbiBhIG1hbmFnZWQgY2xh
c3MvbW9kdWxlL2Z1bmN0aW9uIHNjb3BlLgorCisuLiBfbW9ua2V5cGF0Y2g6IHRlc3QvcGx1Z2lu
L21vbmtleXBhdGNoLmh0bWwKKy4uIF90bXBkaXI6IHRlc3QvcGx1Z2luL3RtcGRpci5odG1sCisu
LiBfY2FwdHVyZTogdGVzdC9wbHVnaW4vY2FwdHVyZS5odG1sCisuLiBfYHhVbml0IHN0eWxlIHNl
dHVwYDogdGVzdC94dW5pdF9zZXR1cC5odG1sCisuLiBfYHB5dGVzdF9ub3NlYDogdGVzdC9wbHVn
aW4vbm9zZS5odG1sCisKKy4uIF9gd2h5IHB5dGVzdF9weWZ1bmNhcmdfXyBtZXRob2RzP2A6CisK
K1doeSB0aGUgYGBweXRlc3RfZnVuY2FyZ19fKmBgIG5hbWUgZm9yIGZ1bmNhcmcgZmFjdG9yaWVz
PworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKK1doZW4gZXhwZXJpbWVudGluZyB3aXRoIGZ1bmNhcmdzIGFuIGV4cGxpY2l0
IHJlZ2lzdHJhdGlvbiBtZWNoYW5pc20KK3dhcyBjb25zaWRlcmVkLiAgQnV0IGxhY2tpbmcgYSBn
b29kIHVzZSBjYXNlIGZvciB0aGlzIGluZGlyZWN0aW9uIGFuZAorZmxleGliaWxpdHkgd2UgZGVj
aWRlZCB0byBnbyBmb3IgYENvbnZlbnRpb24gb3ZlciBDb25maWd1cmF0aW9uYF8gYW5kCithbGxv
dyB0byBkaXJlY3RseSBzcGVjaWZ5IHRoZSBmYWN0b3J5LiAgQmVzaWRlcyByZW1vdmluZyB0aGUg
bmVlZAorZm9yIGFuIGluZGlyZWN0aW9uIGl0IGFsbG93cyB0byAiZ3JlcCIgZm9yIGBgcHl0ZXN0
X2Z1bmNhcmdfX01ZQVJHYGAKK2FuZCB3aWxsIHNhZmVseSBmaW5kIGFsbCBmYWN0b3J5IGZ1bmN0
aW9ucyBmb3IgdGhlIGBgTVlBUkdgYCBmdW5jdGlvbgorYXJndW1lbnQuICBJdCBoZWxwcyB0byBh
bGxldmlhdGUgdGhlIGRlLWNvdXBsaW5nIG9mIGZ1bmN0aW9uCithcmd1bWVudCB1c2FnZSBhbmQg
Y3JlYXRpb24uCisKKy4uIF9gQ29udmVudGlvbiBvdmVyIENvbmZpZ3VyYXRpb25gOiBodHRwOi8v
ZW4ud2lraXBlZGlhLm9yZy93aWtpL0NvbnZlbnRpb25fb3Zlcl9Db25maWd1cmF0aW9uCisKK0Nh
biBJIHlpZWxkIG11bHRpcGxlIHZhbHVlcyBmcm9tIGEgZmFjdG9yeSBmdW5jdGlvbj8KKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZXJl
IGFyZSB0d28gY29uY2VwdHVhbCByZWFzb25zIHdoeSB5aWVsZGluZyBmcm9tIGEgZmFjdG9yeSBm
dW5jdGlvbgoraXMgbm90IHBvc3NpYmxlOgorCisqIENhbGxpbmcgZmFjdG9yaWVzIGZvciBvYnRh
aW5pbmcgdGVzdCBmdW5jdGlvbiBhcmd1bWVudHMKKyAgaXMgcGFydCBvZiBzZXR0aW5nIHVwIGFu
ZCBydW5uaW5nIGEgdGVzdC4gIEF0IHRoYXQKKyAgcG9pbnQgaXQgaXMgbm90IHBvc3NpYmxlIHRv
IGFkZCBuZXcgdGVzdCBjYWxscyB0bworICB0aGUgdGVzdCBjb2xsZWN0aW9uIGFueW1vcmUuCisK
KyogSWYgbXVsdGlwbGUgZmFjdG9yaWVzIHlpZWxkZWQgdmFsdWVzIHRoZXJlIHdvdWxkCisgIGJl
IG5vIG5hdHVyYWwgcGxhY2UgdG8gZGV0ZXJtaW5lIHRoZSBjb21iaW5hdGlvbgorICBwb2xpY3kg
LSBpbiByZWFsLXdvcmxkIGV4YW1wbGVzIHNvbWUgY29tYmluYXRpb25zCisgIG9mdGVuIHNob3Vs
ZCBub3QgcnVuLgorCitVc2UgdGhlIGBweXRlc3RfZ2VuZXJhdGVfdGVzdHNgXyBob29rIHRvIHNv
bHZlIGJvdGggaXNzdWVzCithbmQgaW1wbGVtZW50IHRoZSBgcGFyYW1ldHJpemF0aW9uIHNjaGVt
ZSBvZiB5b3VyIGNob2ljZWBfLgorCisuLiBfYHB5dGVzdF9nZW5lcmF0ZV90ZXN0c2A6IHRlc3Qv
ZnVuY2FyZ3MuaHRtbCNwYXJhbWV0cml6aW5nLXRlc3RzCisuLiBfYHBhcmFtZXRyaXphdGlvbiBz
Y2hlbWUgb2YgeW91ciBjaG9pY2VgOiBodHRwOi8vdGV0YW1hcC53b3JkcHJlc3MuY29tLzIwMDkv
MDUvMTMvcGFyYW1ldHJpemluZy1weXRob24tdGVzdHMtZ2VuZXJhbGl6ZWQvCisKKworcHkudGVz
dCBpbnRlcmFjdGlvbiB3aXRoIG90aGVyIHBhY2thZ2VzCis9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorCitJc3N1ZXMgd2l0aCBweS50ZXN0LCBtdWx0aXBy
b2Nlc3MgYW5kIHNldHVwdG9vbHM/CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworT24gd2luZG93cyB0aGUgbXVsdGlwcm9jZXNz
IHBhY2thZ2Ugd2lsbCBpbnN0YW50aWF0ZSBzdWIgcHJvY2Vzc2VzCitieSBwaWNrbGluZyBhbmQg
dGh1cyBpbXBsaWNpdGVseSByZS1pbXBvcnQgYSBsb3Qgb2YgbG9jYWwgbW9kdWxlcy4KK1VuZm9y
dHVhbnRlbHksIHNldHVwdG9vbHMtMC42LjExIGRvZXMgbm90IGBgaWYgX19uYW1lX189PSdfX21h
aW5fXydgYAorcHJvdGVjdCBpdHMgZ2VuZXJhdGVkIGNvbW1hbmQgbGluZSBzY3JpcHQuICBUaGlz
IGxlYWRzIHRvIGluZmluaXRlCityZWN1cnNpb24gd2hlbiBydW5uaW5nIGEgdGVzdCB0aGF0IGlu
c3RhbnRpYXRlcyBQcm9jZXNzZXMuCitUaGVyZSBhcmUgdGhlc2Ugd29ya2Fyb3VuZHM6CisKKyog
YGluc3RhbGwgRGlzdHJpYnV0ZWBfIGFzIGEgZHJvcC1pbiByZXBsYWNlbWVudCBmb3Igc2V0dXB0
b29scworICBhbmQgaW5zdGFsbCBweS50ZXN0CisKKyogYGRpcmVjdGx5IHVzZSBhIGNoZWNrb3V0
YF8gd2hpY2ggYXZvaWRzIGFsbCBzZXR1cHRvb2xzL0Rpc3RyaWJ1dGUKKyAgaW5zdGFsbGF0aW9u
CisKK0lmIHRob3NlIG9wdGlvbnMgYXJlIG5vdCBhdmFpbGFibGUgdG8geW91LCB5b3UgbWF5IGFs
c28gbWFudWFsbHkKK2ZpeCB0aGUgc2NyaXB0IHRoYXQgaXMgY3JlYXRlZCBieSBzZXR1cHRvb2xz
IGJ5IGluc2VydGluZyBhbgorYGBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nYGAuICBPciB5b3Ug
Y2FuIGNyZWF0ZSBhICJweXRlc3QucHkiCitzY3JpcHQgd2l0aCB0aGlzIGNvbnRlbnQgYW5kIGlu
dm9rZSB0aGF0IHdpdGggdGhlIHB5dGhvbiB2ZXJzaW9uOjoKKworICAgIGltcG9ydCBweQorICAg
IGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgICAgIHB5LmNtZGxpbmUucHl0ZXN0KCkK
KworLi4gX2BkaXJlY3RseSB1c2UgYSBjaGVja291dGA6IGluc3RhbGwuaHRtbCNkaXJlY3RseS11
c2UtYS1jaGVja291dAorCisuLiBfYGluc3RhbGwgZGlzdHJpYnV0ZWA6IGh0dHA6Ly9weXBpLnB5
dGhvbi5vcmcvcHlwaS9kaXN0cmlidXRlI2luc3RhbGxhdGlvbi1pbnN0cnVjdGlvbnMKKworCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9pbWcvcHlsaWIucG5nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvaW1nL3B5
bGliLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yZTEwZDQzODg2Njg2MWViYWY5MTdjZDQxMmUwMWM5ZDBjNzJh
ZTlhCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA4Mjc2CnpjbVg5QDJ+PDxwKjFrOU0yd0A1VjVm
VGcjQVZMeVEyX2h6OEZrdiFBI0RJdGEhVnNoeSg0dHN0WiVDTD9CT3NHZAp6cW9TZ3NqaT9vZXpK
XmhUczEmSjFPQkRyaUN8Ym4maXFfWnVIfnlAfVYmJF4kSXM1RXk/ezl6bXErQS1laEQ+bEsKejAw
Mk9paHtJKkAtek5Bc0FCT30wQE9MZ1E4VUJGRTYyPU12O0pia3A9ISUhe1hRIVBKQH0yOXFYWVNt
VW54NnAoCnptRHwlWT0jbm98dm9kNUVzbWo4PCFIZnt0TkZqfWhrSEQ4ZG4qWll1T3p4JG89SHFE
QFRTSEZHal9MTEwyeFA8Tgp6YlEjJk16clgrUig5N0UoJFomU1kjZTgjUiloZCtGOHJsQTkkM1U/
Q1YmXllneEJmOVdzSml+VGlTOGMwUXY3V0MKelM7O3JyZC1zMyZDTiQhb3p5RUZvZlBlcX1fdUk/
T2M+dihITS1uY0stfkJMNmspRWtWcllASUlgZndCaD1+STViCnokZWY+X21RU1pNdChmRDkwSFJF
Ji0mN1oha1gpeC1PQzg3cCh6c2tJMWYpJG0pO3ljOGNCc29aUjl7bmJzQWUqJgp6SSF5dU09JEwm
NStzczV2Vmp8eUA1ejYzKTtgdFY5TTNjOSN6Yl9xWVo/OHxFJC1we3k0ST9ONXh7IStEcnpTP1cK
ejljcz1ldT5yOHhib1kqejd0X25qdWFgfX4ja19VZi1ScVhjamBXR0heNXBWYHM+b0Q+UCRydzdw
TkRQZm87ZHJPCnpzb0dNNkQrUlFlQW9BTnF2bE4/MTNSc0pVeSR+aUM5XjZ6NVVHKyl1PTFFTT9U
WkVyfDNEb0lCQGMjQDRwQEpUZwp6e1dCWWN0ent3ODAwSmN5YStkbn5URXB3KVBFMU5gRmczfDBe
PmlIdVVQciVUezI1SSpaRjA1NitFe2smIV5QaXIKekFITDE8X1ZWJlQqezM9blZIPHZBcD1Ubldq
KFJuVHste1plIV9nc3tqd1c9a3VJaCood2E8eks+Q0B2TjBAb0h0CnpyS1JPfWQ9aTl4RmxxWCtA
THVnekNLSmBNNHhOUFBTa28qeVU9Nj5nNmVKWTJyeX4qdm5ZVl58dHphN3lnaDdQegp6QHYyMD4h
YV9mKXFfN1o8eXk4aSVvbjJiLT9nKithNzRgfEpRbCY2YiFZTEk0ISQ9ZWJpRGI8bWJEaCFZbUl3
ZVkKenUoWkFncypuc3NCbDtGVkw+WHdtKWlfcl9eUTZ9QyR1dFVmVHFAXj1fMzRFN2FoNFpaNXJj
VDZBaVdXTSFEMT0wCno2Yl9XNGo+Sk0zZU8mOC1tZCE8Kml6MT4qVDNZWmd6KVlkMXI+OHoyPEN5
fHRAQ3UpKSEhX3ZeKnE0VkVOQyh1Jgp6RmxzflZibiRwYjJFVkk+Z1AjTW5mLSh1VHhsREtmT14y
V3ZFKkVpRkVZXmdyT0s2VSsrWWU1b0c3fU9LNDhCbSoKejFJXjFpaV5WSVFVPFF4OFpMN0RkTT8z
bDZAIztuR2JTfHg7MWxkMzlZQEMrRSZQPDBJZiheRm5hZV85Y2NzS0dECnoqNHJTOyEmbm1SPj1m
I3V1aiFUdjYqYj42JiM/e3dyWVBDQXsrI2tNQEhVSypBeV9DKko3aE9nSkI0dWA4dFV5SAp6I0ZH
ZHFEZmtxX2lnQ1YyQ3YqcDRGLWI3YD84Nml8ZyUrZ1h5JGptYDchRy1aPXxBWlQkYG9aJVJJTlpn
Q28+V1kKelU1Izs7PGozJkVDSFAhITJVcz1CQkVqMX45NSFKa2NpTlUkNnh9MFFgdj18dztlYU83
WCExVWtqd3hOdE04eDJaCnpodE16Vy1vM2shMj9MP29RbklsSzllPjwjWDZpfDV5JmhFKTV8VGdx
SVRgIT0mOV9VRWN8dVNzdHY9IzNeYzJvUAp6e2d6XnJFOVNhWFRER1h9PkBAVUdkTVdxQUcjbTxC
ZXZBU1lsWSZyWkd6LTllO3VwayRpeCZMRiloKEtxO15IdXUKemg2VWE5MCROalVaVTJUeExmcVUt
JDhlWiVCOT5gMzVFX35xRyM3XmtAS3VTSzdePlZ5YVR2PHszZDd8KCE2eVNlCnp2a2NENTczO2Uw
bEE/SH5HLTcpY3Nve1g7NCUqcksqNURtREJMJHZQcmAwdHNPcGhIUDdkYntWe0chdjFDdSQ7KQp6
Wll1PTxjJnxncD1HK1I8KUpsZWpoSm58cEhBRjRWKnNjSilRRnsoOWhUK1gxTitWP2w3SDlqZXV3
JChYS207NUoKelQ3bTRuSkp9MXlXOGpxdVo3flQrdlZeKH5SIU99YW9GP0V2RXJsN3dyO1JePXRM
SiEoYkYwa0NUI0dHKlR0PkYpCnomN08+WTZ2LWF+aWRhYkpVY3hCUlR0MmN9RnsjVlNXJD9NN21Y
WmhKYHt7UWBfUzgmRjY4V3xyWCkrJGlleHIlcAp6NXh8OSFGXldOLWJYIUgqcSNlVFpZdn45QzY3
N09NNWEkUz45bjtIbDM/a3AjaCF6PnJ0amlqOHowakJZVHtzKVQKej14fXxfP21sIS0xfDBjcD1k
bkxiMDZOb156dDdXQ0BsVWxLa2pWaUhfO0NzUjZtTG5ROX4/en00VWAkU0VwOHRzCnprOGhRZHNa
dTRYUWRRfiVNUH0qfmdoUVBMWHV5MWt2SF91SWA7OyRwTThLJXwyQ2Q1bmhOSlVSQEcyY0BvVSoo
RAp6ZlhqREkofUZSZEdwRGcwWHQ0Mm5xTWApdnNQSSMkQyVIci03TUlsJUJiP2FMXkg0TClmMkxy
aHtne0ZOQjt0MEcKemsjcSsrTmBAYUxgJmJSKStNTHxkJTBnQzs2fkhseHEjYD4qTDsqNDFWJmZn
az1FVEdBQVJpbX1AejErdGZ9WUx+Cnp0dn1VdlJiWkZyKnw7WGM0fUkpVmQrY2FpSUAqU0dybz02
QDcoeVFHQ0ZlT3U9dVRYayUtNCtPM3N3cXEzUn5lfAp6R3o9OGVkaSNuOzR3b1k7WF88eGw9PWsy
eHloYHN3cHhhNllKMj40PmktPElMMDdQQUFuJHwlZEhicSlGSylJQngKelhBeVNqUX16WT8leHd2
d3B3ZytwUXotU1RmJE9rTE1NcE4kQUlSZktOazIrQmdMdypQajUpYEVeM2l6Py04Uzl3Cno/ITV6
ZDFvYl9yVXZvVWhDNml8Q3dvdys8c2hfJlkleDFHb0s0K18odWUrd1hhKWRAU09TeiRPWU44Y2Yj
LTxIcgp6UlVBaE9ONmQraWoqMjNAPDZoKXg3bX1Nej9SU15yR0xifUtMMG5yekgpLSQ5Tm4xXmde
OzAqWTdeQkY3SVphVm4KenJPfWs1PDk4MjQ0VChWR1ZyKnUjSGZue3B3Q35vekllVjxINnc5dmxm
VWNsZF99YU8jaj1wPCk1a09KMmJqfUsxCnpTV0hidVRFPGYjcG1WeGM9c3NfPF9lSnZSa0FTWXly
LWxOcHo4T0g7JDs8RSF0TFI8YztMYiQ/SytfJUR5YUNhXgp6NXRyPj9Ie2ZqO2ptRUg8eDkqVH5P
bkUkMCZLRzx0clhWbFJ1dkJEQXZOYUdJN3IqY2YxJnRTSDtkWTdRI3A+NSQKeldeRE5kNFhPI1Y7
PlYpb3JQYz87IyFXJUdNNWhINU8zK3Y3IWczVUQjJERMeztETHE1bH0kUWApTyVYaVVCbilwCnpx
fVdlUUp3c2lLcUI2VE0xaD4jUSZqZj95PUlsVlpjQjhsbXdFZCZvMWJoeUduNG9GRz84RyRHbU1H
byoke0pWJAp6Z1lCa3tiITlkOXd0RFRSRHNhM3R0PzJZPlBsaDR7aXJRMkYpMzlpSFl9SCEoK0d4
dHswNz1fLSF1T3U3JUlEaHAKel5KKlpzNWI3cT00OXluNTFOWGE4ciU1Kl9XcD5GeiRvWUdBXn11
O3xkRUJJKCROXiZKRGYtaFVFZSp3PitEajVpCno/P0w2SWhjeXVtaSlnRHhDK2BQfERJMmIka1pr
UCQ5PjFnVkFgYzhaVXt9a0F3JDEkaTMkdnlxNnc3YSo4XyFQVQp6cWZ0Ulo/PXN+MHJAOVAjRm9V
Q2E8RzF6fW8xQlI5eX19cWZNYFQ4PF88T3x0OUQ0TlUkWWVKS0EqQ2dGazhnSF8Kek1Jfn1XI1Zo
TUtLejI9UV87Tzdna20wMiRANH5acEw7TVhRc0hMWDlKfGUyM3hFfTZSZzhsMkhYLX5zPm0yVVJk
CnpFQD81N1d8bSgrNW47PF8lUDM4YShheU5lUiVRQGk2SEN5Uylkc2U9cUglT30pJlVMcEFmdVpF
U0RXU3hBZGtWIwp6endKO0RQTjYhZ3MjdHExTy0wYTQ0OWJ5cmQzO1pFOH5NT0NjYmxsaUEkVXQ0
Zjs8cXV6VUM4WUJQZiZrKX1WVjsKemtCaDZUeXp5QFQ1PlZELT9XbClFamhkaXwwNjlEcTFSWDVi
WSRWamJ1TF95LWlUfkVnMUB8ZTAkRW1jP3pNRmxsCnpAaFBwMjc/ZW9NSkt9a1plSzNKPnZGQl9B
VDxqbT81amk/S3cqLXV4cypVe1gyQnAyPEI3S3xgY00te1oyOTRkYQp6UmJCYEJhcHU2dEBUSn5m
V0doTC1XMDtWZU1HZXExMFBEKlBufiMzbUcwNyFtPnZaZ3AoNGVrPG18NnRDJEhVWkkKeiVaTTJu
bHtPIWRLc0QmPyQwPCl6SEgkbl5zWnNMK3M1UyZuYGA5ViRHajwjVyRqWGh9ZCtPfmFWcHM/c1dn
TmxzCnozWDMlakhnSjRUPHBvPn1VPnZybTlqbF5GZjErejQpc2YyNSh4ZHlgcDBaUHhEXj9lO2JH
MWFxaDZVYGIxPjhFbgp6MmQtSXZ3Xm5sPE5efXttUndAdGFeJE1GelckbHdgVTcoRmNgaXp9UG90
ZEYjXzdHYVI7cT4zPUQjXkJPbll9YkMKemBIZlpzOHokODw/TiR8dCFUZm0mRWZ6SWNwS3dDTnRh
KWxgMF84K1RBaDZabiQhYzNAaVY4a2IxMTlJMHNjTmJZCnpUS0BYTSNidCt9R2tBRmQtY1V9dzIp
IWM0IU5nekdoKyozXjk1P30mTCU8RD4kX158LTBLUGUpYVhZXygqZyNZcwp6KzxHUGc2KkpHbngy
ZUhPP3xxbSFLQShMNiQjK2VEKz1FMlJJYFo+amdZTGlyT3NMdylEbk5yRDU3Iylle3JjRXUKencj
TzNHck1oQSNgOVl2a21lKkVoJm4oP3h1Pz5YVmYmNmtGZnx5SVNhPn1EQEVXK248TXdtaldtITE0
eTl7cikjCnpianNzOXpeRT0rX0wjMFFwPHktMlJgZHZDMUclQnBSSz5nZihHPj9KbCE/OF9mP3M9
IWB7YVV7TyNPJE9kTVJxZwp6MShnMFIjTVJvO1orblUjS0EobXVTPmZSMFZKMl9PUzRUQGsmUXsm
fEglQXB6anlER25Fc3tLQ290SnJyNCp8PHEKenQ8ZTVHYnAyQ3tKd2BGWDt8aVRRI3tNI1BzWX5s
Z1JJY3hpQSN1K3BZZmNaOEBndHBtbWV3bU1Va2kqa0JXSVlGCnpaVkEqbSZ5dmpnSnVRYHM5KHw4
R1ZrWDU5Q1FJQmB4SiVUKXVTWER3bjMzUWxnd29kUWhNcUVUczV1I0NrWnMpXgp6TVhAIUdOYC0/
JHdfS15+Qkt1MX1CM0hPRUNye3hLUTwxcFFxQHBVaTs5KHMqaEpGdHdLS3MpPT1+WWRVNWM2dDcK
el9CfmpCakxvS241QTdOZUlXJDF5I2wxcD9TSEdFITxSUW9aWFlwT0hPNTNacjdjVFUrbj1xclZ7
TSQpQ1JrVnRiCnp0OXIrWHY5cmJnXiktfWVHaFJuVUlFSz5LTDs8bXx2ZWN7RTV6PjFDQEFifChQ
ND5PI0NhTF9rMmNGMlM7UV40WAp6LV5pQlBuMyQwZ2tHNFhMND57LT4+YEpiKUtRbTV2aHpUeStB
NFcxJD9DUCtJT0xfcDZiOXBwYWdLaGhiSTMlN1cKenZHPFpAI29KfnEmS09pck5xV3g8QSlQMTUr
cmFyOVduNChSTWVmWURWJXRJKmRNfGtQS1pUa0BmUWw+T2ZIJk1rCnpXaEpZPDlPMWZ9QEhBUEtx
YjEmNHN5YUheUmxmRkpONilYX2BubjNCdChha3xPeF9GQlVAcF9gdTtqaXhPQVpZTAp6R1djYnhq
O2RzUk54K2ckRntQeGJBSHlZMlNRbGo8ZWt6eklPRiFZal4rdGVJM156Q0NGSlpDVDwlNz17enA9
OHoKekhvSzB0cTdETkghRmZAKVh+dnJ9PWYwPUcwNE5ackRSMzl5az9Tcl5yPURiN0YxQ0lOPGNY
cWw2XzFgZ1EpYUY0CnpkNj1rNHRYeW5nV0k8N3Y+dWlUQDg+KllwOSMtb14+djJJZ2YqI0ArQSE2
eG5qUlllPHApTEw1YklBR3YpeCk7aQp6OFluQH1oTjlgZVhOYX5RKkgmeDxqVVQjQWsjelhEVCZQ
a0JPTkw/PntwZ3w+NGg0OTFwIWheUWkkQH4wWjcyPkoKeitudVI2UzZ4cXBpSn5gPUhufE5zdm9p
WSUtMjt7aT0kSFA2Rnx0WUxySUFHd2dkTUJmZXo/b0RsISlMY1ZoSkkpCnppRHtmaF47O1J1U3k8
fXwoZT5vRVErVVN2RHJtN15nNXJKX1ZwJUVsRzNkaT8zIWQzY15yTXZDeik8Tm13OWgtZgp6NVVF
a3JiQkImfnFHe1Q+UGp8XyRIWCg/KzNOUXVnalRtezFyVFRqVnklbGtwc2JIcDRMNWxQYWMpZ2p9
a1YxPFAKemhKc2duVFUrVVU0S0JYellrV3cjMzdTNDctMXhOTUd9PU5jWCV0N3E0MlBAM25zV0d0
UmdVVU1iLT9uIUtOekA2Cnpkd30rVFAzSD5+d3A3JEY8cHg0RHIyKWYjI19ZOEM8IXQ8R3xOWFZQ
ejs/ZHJNNzdBWSRFdFNqKm9vfmkmND9KJgp6ZVpaSlZ7MWRaVlR2X2ZvZWchRFZaZUBOeCVadjQl
aXMmWGh7fUNoSXl9TW1jQCs3X2JIT2k+blIzUzQoRjZsaE0KejFhaXV1dmpRUSVLO2RDI2xWaDV5
eUdKZH1KUWZsNyhPcCtmRkolMTI8Q0khWXtENFVFMUsoc3lAWT9IJXFoX3xECnpwVmpzd0NhMD9f
WTFlMEstMSZSYFU0JURUVCUtMmFXUTZIXkh8WXdhYzV1TD5ZSFdTPVZRTCtNeWE4K30maH59WAp6
Q00hIX5QJik0OE59MXApWXhaM2Z5M25KUV9WKWNsPjk1RCZtQ2p0IUtMcntkTHZoSWFafFBnMG81
SEI4V0p9WXkKenhNWlRBI1FyYlREOTRQR3JmYzxTR3UyQXdOZ0BqIz9vSDAoV1phYGxAWU1FXlBK
Q00hZXMqb3ozT3IrfCREaTE4CnpMa3EldmFHOCVoYnNac1FtJWc9b1h4UGBJe01APWJSV0NPMnZe
UyM0eyY5IXJmPWkpRCorSlhEUylsITxXPnIqagp6JUpnJjFVdmEocyM7KE9Takx0c0defXJwZ3lF
dkpfI2RgTUpkRzZhTVo/Myp3dmdlQ1lnPk9kVHIxbHl0YCUmenIKemh4WGh0TVdJbThWdSE/dVEq
VXw0Y2IkNVkwKmVFVEl1O2p1V3YtJVpCVz40ZTshanhKNXNYezU8dkRsdjE9fVRPCnp1TVhjYHFH
MkZieig9R18tajNzVTkoPkN1QztIeiFoK3BBR2hmRWk3K2plek9vJl8zSUdGKkROelFrMnZRNExJ
aQp6MVFqMSMkIVA5cHVkUClYdFMrIXc8PzMhM0pYd0l6KEYoXihBdWpvIXVJdWo/ZzQ7cHsmTnhv
fFRebkEteDBMek8KenFMMS08b1dvUGFBd19AdlBsYzF+NWhrbWtAMGhKZkdySHdfME07NmRAR3BY
MSRaXkkkWEFYQzclN04hZlhqUHRmCnohd3g2U2U9cnNCMi1eQSNzM0o7Wnk/Uk9QQU5iZWlzQ0xy
N0FqSHdxalc5ejdiKn1YRGhNfU9gNlo4eGxfTXdiaAp6U2lSbWNyb2hOLS1NczBrM15qMlZufUxV
c0lPMGglcFBsNGxyR0okI3shWjFRQEFXX3drY2pNKWI4e1dXeDQ8dn0Kem4+NH5PVSRKcE8tbHo/
RSlhNWBlT3E+JVN7bF4wNXZkZVRLS35iTTtWRCZqKnJFRDFjcXNtPitOcWNAK2ZvVTRfCnpMQD50
LWNrNWFnZ3pHJmxmQ1E0cUE3Y19XQGtBcSFJOUA2RDFkKkJ7bnFPa3MyfD9+YThCUHFWYkZMY2s+
KzxJMgp6bzBDcntxMDtmVWdla1hWRmsjbEwmKDZTKk9GN1pRMG90OUtkayhOMj92ZXJZLWtVQylQ
WnFxTWB4QlFGcTB6PzQKelh+KiN9NWFCQCEjez96QzV7ZXZRYGhXciNVOE5DKTV2R31YZGliKlh6
IWdeOzhWdk4ySnwwZ1Ytdk5BO09kcFF1Cno2aTdENlpRJk9lNHQqUnF7ZXheMTkxPCtMXmhENWox
bzdXTDhIQ25lIXxTWlEwXkltT1lCbEFsQmoqMTNOaHt+bQp6JWBSNH1NNi1KaEszMEtrIzQwZnJD
SnNAYWJHKy0lQEVCMT91T1B8PTEpQWkzIUZVR2NzLXxUQWdKM2gyfExJajkKenk2WC0wYCE2MTc7
XjA9Y15SJj42Y3Q0Xn4/eXZOLVp1ZXt5b19Gb2ApNWRJdkpfZF8pX1YyV3JqdGxmaFhnLXtTCnpv
RUEoYVFlRnlhdGlRLTYkenVXciMyNHFeclYqRGcqbldDTihKOS0hZVZNNy02aChIKkx0U0ctcGpB
QGFjQTtlaAp6PCFPOHVneVA1X2JRSipVYF4mOWtUPzE9fTJgeS15KWktKDJgRHY7YURSZTVCWDBw
TVUyJFBiRHNxbSkqU0xCSzQKeiNOSTwrR3d4SlBjdztTbCg8cn5HQFpzTSZEa3JCPCVTXiljJjFS
V1FycjZQXms0RFFJJTZGKV9PSH1we0xNcVlhCnpVTF5TakMxfTI4c2Z+IVFvYzJ6PmFUSmtyTW5D
JXh5fihtRUhENTtqK0dfbDFzWGB4KGtNMiUtKmlsdjhaUUNyawp6TTxHbX4pVEdQKzd6YSl2PGYk
fHFjYlVgSXI/MHNeSGFUNVZPTjc0VzxNbVVEQ0hyfUYyZSNlLTZqTWkzYTJfU2kKekE8MHslSkRo
UyNUUkR5czRrS0x3c2ZNcWdjQj5zYU95bFkzZFc8Y2JiN2VrdntONCllaXE2YW9PMENWQnI2aj5O
CnpXTD0oJWl7YjVCMzx8aG5OYCM1S09tajRoO3hlezNNalRnRD5+TEcwPzVCVStOIWpMciVKaF9+
T3g+Z3dkN1djbAp6NklPYDRaP01NPDVsdCtTNjw7a3hKNkJJNW10ODg8b0Z1d3NRPUJGaUUxeV9Z
bX5AYXgkWjwrZ28qb1E5Z3hTekcKelIqU2JHJCkjJVhsNGlvfF9mY0lmISRaMjA2TnRrYl84UFZZ
dVFZMVdaXkcjbkY0OWctYTA9YUAoMW5SS157QD8+Cno7Zm9tKCtqZz1Abm9ONDJubTwwUDl+RTE5
N2psYl5CTSk3R0BXYz9WS2RDWn5ZcmwwSk15PUA5cWVAeHtOQDhXdQp6QHlGS1FFXzRnI0ArWFlH
M2oxVTlqWmpJSGFNYyMoUm4zfTF0O31gSktIIWRYQSZjQ1ElZGNLRTk8Tz9iVHc8ZzIKelY+Sm8r
ZzBkUnhydSUmK2tFNHs4JUFKSmlLdit9PGxOKkUhT2lHLSMpbWU/SDdsa3V8NHFwbjBjMyUofjFV
MDM+CnpfUlZMWClPO3o5THozVFZxZ1BRMilHd2VhaGtFRUVRb2RiX2J3OzZyUVpMPUxySlJQX0Aw
aUxZdW9MN3J3RlUpaAp6LUBRR3lhKEBgREY3e2FsS0x7IW14VnFsNClxbkVQUDZ5P0FpfC1AUFM1
SXBsM01ReFRWaz1fOD17LTMlaWwhYHAKemBXTX1AT3N+cHhkRlltfXcpVEZ3QjNQKyFfQyZaMnEp
fkteKVheZkRib3N5byF2SGlMQjw5fHwrZWh9WlRjOUB7CnpUK0YqYkkhX2RDYTJ6andmZF48fSE8
WVU3JVI9S1MoQHUyRVM+OFl+bWVVY2ArS3xZY0ptVyRlSG9XJlU5SXJ4dQp6PiplSGUlK0lkYUQ8
QFJDVDxMKGtwS1FubHdfI0d4aldkWCM7QUpBPiU1X2BoI0A1ZCt1QHxaSGhtSGwyPCohN2cKemQ2
T0U5TzAxRVVSdDRyMWxBLX5fcFU0V2JuZ0peM15FOy10WkhGPWhVMEREOGdfREJBIzVOeENeZkgo
eSZPVGIjCnpmXmlMckpabjRNdz9ObkdTUCQlejQkT3N9RTV3WG5VYks9ITxaPm1aMWItOyFvOXJM
X0hMaVBOXmtha21xJSReOQp6QmFuMGZLOE14bVc3bG8ke1YwITNJYUBON1NHIzshMTtUSSU9PFR0
Zj4rS1NQZXMzN1NgNDlMRDduQlJCS1VwXmsKenZXZnlkOzBmfV5KekFncXF8TUtASCR6cSYxcypF
aGs5VVMkRmZqRndCXm1AdXVHQ05+XlNZRGI8dz1oWEFeMFI+Cno3YitePEt5fldPIXxycXowOGlB
O3pITy1JclJgUGReV2k8JnMkdFhiLSgtdXpUSFZJfSVXRiQ1e3FBZERDaT47Rgp6eHFRKSoyciol
eDl0ZWhzIXgkWDx0PDZQRGlCdDQqbD45TTBDJDNOaz8pQEprVDxpNEpFPHA/X0ItOzxRZVlOSUAK
eng4YSVQa3xOKDNkekNJO2RHO1AxR3EzIyRxeUJwQyV9R3drYE4yIWBaPVpIN2w4dGhveXE9Z2wj
c2JpYz9CIVRYCnptTGhgNSReUmxaN2ZsQ0I8X3pgJHJTPmN8YXk9Q0VCU3skKj5zPFRBeCZTe3JI
YGpCR14hPSFxSFNkcismS24hKAp6RD0rYClQXypKcEEqMGBsb29PazVvUENiU2FIZ1B1NXIwfkU+
YS1LUj1WLWdZdV8kTWBjTkhTR3EjUWhZUGF0V1EKejBBSiswalJqLUFyIzFAc3d6Wn1PTUw+KFI5
dD5NRm1JOVpYSTBeWTRaSGxXWTRQPHo5eS1QTXdMdzVmVS1GWTFSCno8ITlDc05tWmBDIWZ5Q0ZC
S3N0KHgwflF5JXVTank/Nm0mOXo5T3ZCI1l1ZG4tfEY9dXhjYHI8NDJgcWBoUzdDeQp6YzImclJx
SzZCIVpIcVRDXjcyTWxQKjhwaWFXK2YzIyVoZVVyVTJXdjgyX2UpZXQjNyZ0ZVVeRmdXfXM3O25o
Y0kKelRtelJZRUo8djlrWDhRRGJYIzdaJlVhNzRIOGtId09ZWXtsYzdBMWJLMUh9Uk9MPHpOPjJU
dzRIRmN8UyFXdXJ5Cnp4b2R4KndeUHxzJjNUcGFXVjdObS04QVM4UiFRTm90fFUqcSUpcGVjeC07
U0ZYQ2BidFBZfUtlWnR5WikjUH4ycgp6UnRefWxmJCNiP2ZkY31oNlhpIyh5VmckcjxgUThEYT5x
PGw7fDY/IUdnQyoqQnVDP0JNangjMF4+dFhjJVk1eVgKekhDRHF2a0h+YiQ4TmMyQ3g/Y1YtYGt7
LT9PY3k1aj1aT2poaT1JRmNoLW9ZRjZpJlZmXmkyWWQ9Uy1KayNySns/CnpNWDtpeEtMQURyZU4o
KmJQM1RjWXkxPygxO0Y1Q2tTfENuPWBUR2Q1QmhJPF5kMzdkZzZNcExtcGJhTm5tUCEhTAp6Zz9l
TGtYME9YJXUjJUkxVmJhfnJfKylxeG96aUM0d0pNNnNSaCYqS2Fme3lvezZPOzJ7QiRlOVdecldo
ejJzXmAKel9MTUNaXkhGUDQ/Xzs2OVNUUTFHJE5yX3ElRUxDVDh8bSNxc2xvKX1mc2F3RChWNUYt
WGdFKUlHP0QlKko5NTtDCnoqTVM8YFchOFU7diUwSnhIST9Ze3slKD4xRm4zUndDLT4yQigyPGUq
ayotbG5MRXhDRk4xczE9bGlCQW5DQHchagp6ZG9VaTNLTGNPNGpWdklIPi14Oz5mcl4+SDVlUjZG
dj1neXlrO1JWMDA3cX0lXi1kQUgkMnFkYSo/Wmx0QDM5VWMKekdtODRjO2p1KE8oI3s+TDt0ZEo8
cjQwK2M4QT8rUj5yK31nIWhyczx5U2YhayQ8N3AlNVl6OEtZakMwN19AdXZDCnoybCZUYHV0UGxD
bzBFcXorM3o5SiYzfCFEKlRNWkJUK1BmYE4kaCtUe2RDXih3ZmwjNyhSMUJsPFBhNn5XS1NXQwp6
fDFUSkpgLUBhZSReaHRFakBqX2UoQ3U5N29mayo2JVhnaz5LaE1zV3A+TWVNV1cjblZKaTE9KnN0
dENELSorckgKejBqSl89PDRAekM5SVpwZjdRUXVKR1RjU042OXV5RV59Knp1Sjs3JWlQN0wzKUVx
ZyFOJHxxbCojfmdLKnZ8QyEwCnopRzk7dGhoTHN6aHRwfFlFdEI3ZVRBaDhwcmMjayQoPUEyOSsy
aTdhYjYpS3J4YFc3O1NrTGxRaTUpRV5UJFFnKwp6Y1lqJEBvZ3pGS21WaWRWdU1nVkdBYFNNLT5s
citJcj8/KjZfNXRNeW9jVTdqY3N8IU1LWSR9aTs8dz1JMmJAWVMKekNwRTg7USZ7e1g+OzQzYFFU
RDkocXxvVTg9aSEkeXFHIVU2QV4kVX1QQV80KmhKUSgkbW8yVnRAbm1ZPTFnWl5xCnphQzNpST9a
JU9HX2A0THZlc31kejt5Q0h+V01wfmxLSXdDOHtJYDt0T3tvPHtKbDM4aGlsKCFRNyRKekhDMTBD
PQp6N3EqQHUwSl5eViF7RitjeXtgbmNJYnRZVC11WHZaZm5IY2A2WF4lNkAkJCtxTV52bjFjI21K
LTxHTjQzMSpSZEQKekxQJHd5RGF3K2EpT0JzdTM0YUtRPEx2OyhvSjg0UWczT2t8VmBhUTxtJWc0
bXo5PWhVQWBGb3poJjsrZ2wyLV5iCnpaK3QqMCZOSmZoMWt3SlpZcG05PklUYVBBN1JZJXhTLUp9
eHsmSGFVTWt7PnIqVlhLNDwrS35RZnJ0YXtWJDh+dwp6V1NZeVlLRzFgPnQ0PmVaXlV8THtscWYj
VWc7Z0pHaGkhIXx7aDskMSMwKUFsX3RKTj4mOWMjMms3ZXNAPFRfMTEKemlPSG5Ja2B2ZU1Naisx
Kj44YT9fI1g7IUx6MWlUOWQoJSlKPWpwX2JvMHw2Y1JhRio8JTUmJnM0QmBDSio3WSgtCnphcEZl
QT1DaVA+cGBSYGZ5RVAmUmkpXjJ+bDRVcnlrcVVwa18mY2ooaVR4eyNgckt5MypkZUhIWWQ2bXsr
aF9HQQp6TTd1SUhgS2RHdTV1dEVePVJtR19rcDU5OHskSH01OGw/VFNWRTtASFZIfWMoTjdnayhI
I20qYHFWP2t7P0o8QUYKejlhezkwV2hDPytqRypXckEzK3dCcFkka3leVm8wfWlRQHBCVU4zak98
MFNtemZQVytyYXA0ejRpbFlBbUZIbT9lCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L2RvYy9pbWcvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9pbWcvdzNj
LWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjNmOGFjMDBiMTczMmZkZjYyZmMxZTAxNzViNWRkNjkz
MmY0MGViNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2ltZy93M2MtaW1wb3J0Lmxv
ZwpAQCAtMCwwICsxLDE3IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25l
CitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9pbWcvcHlsaWIucG5nCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9pbmRleC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9pbmRleC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzcwMGIxN2U5ODc3YmVmNWIyMDM2NWI1YjQyZWY3MTg2MjYxMWNjMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2luZGV4LnR4dApAQCAtMCwwICsxLDM5IEBACisu
LiBweSBkb2N1bWVudGF0aW9uIG1hc3RlciBmaWxlLCBjcmVhdGVkIGJ5CisgICBzcGhpbngtcXVp
Y2tzdGFydCBvbiBUaHUgT2N0IDIxIDA4OjMwOjEwIDIwMTAuCisgICBZb3UgY2FuIGFkYXB0IHRo
aXMgZmlsZSBjb21wbGV0ZWx5IHRvIHlvdXIgbGlraW5nLCBidXQgaXQgc2hvdWxkIGF0IGxlYXN0
CisgICBjb250YWluIHRoZSByb290IGB0b2N0cmVlYCBkaXJlY3RpdmUuCisKK1dlbGNvbWUgdG8g
cHkncyBkb2N1bWVudGF0aW9uIQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisK
K3NlZSA6cmVmOmBDSEFOR0VMT0cgPGNoYW5nZWxvZz5gIGZvciBsYXRlc3QgY2hhbmdlcy4KKwor
Li4gX2BweXRlc3QgZGlzdHJpYnV0aW9uYDogaHR0cDovL3B5dGVzdC5vcmcKKworQ29udGVudHM6
CisKKy4uIHRvY3RyZWU6OgorCisgICBpbnN0YWxsCisgICBwYXRoCisgICBjb2RlCisgICBpbwor
ICAgbG9nCisgICB4bWwKKyAgIG1pc2MKKworICAgOm1heGRlcHRoOiAyCisKKy4uIHRvY3RyZWU6
OgorICAgIDpoaWRkZW46CisKKyAgICBhbm5vdW5jZS9yZWxlYXNlLTIuMC4wCisgICAgY2hhbmdl
bG9nCisgICAgYW5ub3VuY2UvKgorCitJbmRpY2VzIGFuZCB0YWJsZXMKKz09PT09PT09PT09PT09
PT09PQorCisqIDpyZWY6YGdlbmluZGV4YAorKiA6cmVmOmBzZWFyY2hgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvZG9jL2luc3RhbGwudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvaW5zdGFsbC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZmI0MDU2ZDFmYmEzZDBjNGY4ODRmZTFkYjU0NWZjZThlOTdlMTFmYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvZG9jL2luc3RhbGwudHh0CkBAIC0wLDAgKzEsODggQEAKKworLi4g
X2BweWA6CisuLiBfYGluZGV4IHBhZ2VgOiBodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcHkv
CisKK2luc3RhbGxhdGlvbiBpbmZvIGluIGEgbnV0c2hlbGwKKz09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisqKlB5UEkgbmFtZSoqOiBweV8KKwor
KipQeXRob25zKio6IENQeXRob24gMi43LCAzLjQsIDMuNSwgMy42LCBQeVB5LTUuNAorCisqKk9w
ZXJhdGluZyBzeXN0ZW1zKio6IExpbnV4LCBXaW5kb3dzLCBPU1gsIFVuaXgKKworKipSZXF1aXJl
bWVudHMqKjogc2V0dXB0b29sc18gb3IgRGlzdHJpYnV0ZV8KKworKipJbnN0YWxsZXJzKio6IGBg
ZWFzeV9pbnN0YWxsYGAgYW5kIGBgcGlwYGAKKworKipoZyByZXBvc2l0b3J5Kio6IGh0dHBzOi8v
Yml0YnVja2V0Lm9yZy9ocGs0Mi9weQorCitlYXN5IGluc3RhbGwgb3IgcGlwIGBgcHlgYAorLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQm90aCBgRGlzdHJpYnV0ZWBfIGFuZCBzZXR1
cHRvb2xzXyBwcm92aWRlIHRoZSBgYGVhc3lfaW5zdGFsbGBgCitpbnN0YWxsYXRpb24gdG9vbCB3
aXRoIHdoaWNoIHlvdSBjYW4gdHlwZSBpbnRvIGEgY29tbWFuZCBsaW5lIHdpbmRvdzo6CisKKyAg
ICBlYXN5X2luc3RhbGwgLVUgcHkKKwordG8gaW5zdGFsbCB0aGUgbGF0ZXN0IHJlbGVhc2Ugb2Yg
dGhlIHB5IGxpYi4gIFRoZSBgYC1VYGAgc3dpdGNoCit3aWxsIHRyaWdnZXIgYW4gdXBncmFkZSBp
ZiB5b3UgYWxyZWFkeSBoYXZlIGFuIG9sZGVyIHZlcnNpb24gaW5zdGFsbGVkLgorCisuLiBub3Rl
OjoKKworICAgQXMgb2YgdmVyc2lvbiAxLjQgcHkgZG9lcyBub3QgY29udGFpbiBweS50ZXN0IGFu
eW1vcmUgLSB5b3UKKyAgIG5lZWQgdG8gaW5zdGFsbCB0aGUgbmV3IGBweXRlc3RgXyBkaXN0cmli
dXRpb24uCisKKy4uIF9weXRlc3Q6IGh0dHA6Ly9weXRlc3Qub3JnCisKK1dvcmtpbmcgZnJvbSB2
ZXJzaW9uIGNvbnRyb2wgb3IgYSB0YXJiYWxsCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCitUbyBmb2xsb3cgZGV2ZWxvcG1lbnQgb3Igc3RhcnQgZXhw
ZXJpbWVudHMsIGNoZWNrb3V0IHRoZQorY29tcGxldGUgY29kZSBhbmQgZG9jdW1lbnRhdGlvbiBz
b3VyY2Ugd2l0aCBtZXJjdXJpYWxfOjoKKworICAgIGhnIGNsb25lIGh0dHBzOi8vYml0YnVja2V0
Lm9yZy9ocGs0Mi9weQorCitEZXZlbG9wbWVudCB0YWtlcyBwbGFjZSBvbiB0aGUgJ3RydW5rJyBi
cmFuY2guCisKK1lvdSBjYW4gYWxzbyBnbyB0byB0aGUgcHl0aG9uIHBhY2thZ2UgaW5kZXggYW5k
Citkb3dubG9hZCBhbmQgdW5wYWNrIGEgVEFSIGZpbGU6OgorCisgICAgaHR0cDovL3B5cGkucHl0
aG9uLm9yZy9weXBpL3B5LworCithY3RpdmF0aW5nIGEgY2hlY2tvdXQgd2l0aCBzZXR1cHRvb2xz
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitXaXRoIGEg
d29ya2luZyBgRGlzdHJpYnV0ZWBfIG9yIHNldHVwdG9vbHNfIGluc3RhbGxhdGlvbiB5b3UgY2Fu
IHR5cGU6OgorCisgICAgcHl0aG9uIHNldHVwLnB5IGRldmVsb3AKKworaW4gb3JkZXIgdG8gd29y
ayBpbmxpbmUgd2l0aCB0aGUgdG9vbHMgYW5kIHRoZSBsaWIgb2YgeW91ciBjaGVja291dC4KKwor
Li4gX2Buby1zZXR1cHRvb2xzYDoKKworLi4gX2BkaXJlY3RseSB1c2UgYSBjaGVja291dGA6CisK
Ky4uIF9gc2V0dXB0b29sc2A6IGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9zZXR1cHRvb2xz
CisKKworTWFpbGluZyBsaXN0IGFuZCBpc3N1ZSB0cmFja2VyCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGBweS1kZXYgZGV2ZWxvcGVycyBsaXN0YF8gYW5kIGBj
b21taXQgbWFpbGluZyBsaXN0YF8uCisKKy0gI3B5bGliIG9uIGlyYy5mcmVlbm9kZS5uZXQgSVJD
IGNoYW5uZWwgZm9yIHJhbmRvbSBxdWVzdGlvbnMuCisKKy0gYGJpdGJ1Y2tldCBpc3N1ZSB0cmFj
a2VyYF8gdXNlIHRoaXMgYml0YnVja2V0IGlzc3VlIHRyYWNrZXIgdG8gcmVwb3J0CisgIGJ1Z3Mg
b3IgcmVxdWVzdCBmZWF0dXJlcy4KKworLi4gX2BiaXRidWNrZXQgaXNzdWUgdHJhY2tlcmA6IGh0
dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5L2lzc3Vlcy8KKworLi4gX2NvZGVzcGVhazogaHR0
cDovL2NvZGVzcGVhay5uZXQvCisuLiBfYHB5LWRldmA6CisuLiBfYGRldmVsb3BtZW50IG1haWxp
bmcgbGlzdGA6CisuLiBfYHB5LWRldiBkZXZlbG9wZXJzIGxpc3RgOiBodHRwOi8vY29kZXNwZWFr
Lm5ldC9tYWlsbWFuL2xpc3RpbmZvL3B5LWRldgorLi4gX2BweS1zdm5gOgorLi4gX2Bjb21taXQg
bWFpbGluZyBsaXN0YDogaHR0cDovL2NvZGVzcGVhay5uZXQvbWFpbG1hbi9saXN0aW5mby9weS1z
dm4KKworLi4gaW5jbHVkZTo6IGxpbmtzLmluYwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvaW8u
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS9kb2MvaW8udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxMTMwOGE2ZDI4NTlkZmY4OTg1
MDNmZjVhYjY3NGIwNThlOGFkMTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9pby50
eHQKQEAgLTAsMCArMSw1OSBAQAorPT09PT09PQorcHkuaW8KKz09PT09PT0KKworCitUaGUgJ3B5
JyBsaWIgcHJvdmlkZXMgaGVscGVyIGNsYXNzZXMgZm9yIGNhcHR1cmluZyBJTyBkdXJpbmcKK2V4
ZWN1dGlvbiBvZiBhIHByb2dyYW0uCisKK0lPIENhcHR1cmluZyBleGFtcGxlcworPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworYGBweS5pby5TdGRDYXB0
dXJlYGAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitCYXNpYyBFeGFtcGxlOjoKKwor
ICA+Pj4gaW1wb3J0IHB5CisgID4+PiBjYXB0dXJlID0gcHkuaW8uU3RkQ2FwdHVyZSgpCisgID4+
PiBwcmludCAiaGVsbG8iCisgID4+PiBvdXQsZXJyID0gY2FwdHVyZS5yZXNldCgpCisgID4+PiBv
dXQuc3RyaXAoKSA9PSAiaGVsbG8iCisgIFRydWUKKworRm9yIGNhbGxpbmcgZnVuY3Rpb25zIHlv
dSBtYXkgdXNlIGEgc2hvcnRjdXQ6OgorCisgID4+PiBpbXBvcnQgcHkKKyAgPj4+IGRlZiBmKCk6
IHByaW50ICJoZWxsbyIKKyAgPj4+IHJlcywgb3V0LCBlcnIgPSBweS5pby5TdGRDYXB0dXJlLmNh
bGwoZikKKyAgPj4+IG91dC5zdHJpcCgpID09ICJoZWxsbyIKKyAgVHJ1ZQorCitgYHB5LmlvLlN0
ZENhcHR1cmVGRGBgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworSWYgeW91IGFsc28g
d2FudCB0byBjYXB0dXJlIHdyaXRlcyB0byB0aGUgc3Rkb3V0L3N0ZGVycgorZmlsZWRlc2NyaXB0
b3JzIHlvdSBtYXkgaW52b2tlOjoKKworICA+Pj4gaW1wb3J0IHB5LCBzeXMKKyAgPj4+IGNhcHR1
cmUgPSBweS5pby5TdGRDYXB0dXJlRkQob3V0PUZhbHNlLCBpbl89RmFsc2UpCisgID4+PiBzeXMu
c3RkZXJyLndyaXRlKCJ3b3JsZCIpCisgID4+PiBvdXQsZXJyID0gY2FwdHVyZS5yZXNldCgpCisg
ID4+PiBlcnIKKyAgJ3dvcmxkJworCitweS5pbyBvYmplY3QgcmVmZXJlbmNlCis9PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisKKy4uIGF1dG9jbGFzczo6IHB5LmlvLlN0ZENhcHR1cmVGRAor
ICAgIDptZW1iZXJzOiAKKyAgICA6aW5oZXJpdGVkLW1lbWJlcnM6CisKKy4uIGF1dG9jbGFzczo6
IHB5LmlvLlN0ZENhcHR1cmUKKyAgICA6bWVtYmVyczogCisgICAgOmluaGVyaXRlZC1tZW1iZXJz
OgorCisuLiBhdXRvY2xhc3M6OiBweS5pby5UZXJtaW5hbFdyaXRlcgorICAgIDptZW1iZXJzOiAK
KyAgICA6aW5oZXJpdGVkLW1lbWJlcnM6CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2xpbmtz
LmluYyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvZG9jL2xpbmtzLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YmNmZTVjZjg1YzA0Zjc2
NjBlNDIwZGM0OWFhZTNhMmM0YmI5ZjY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2Mv
bGlua3MuaW5jCkBAIC0wLDAgKzEsMTYgQEAKKworLi4gX2Bza2lwcGluZyBwbHVnaW5gOiBwbHVn
aW4vc2tpcHBpbmcuaHRtbAorLi4gX2BmdW5jYXJncyBtZWNoYW5pc21gOiBmdW5jYXJncy5odG1s
CisuLiBfYGRvY3Rlc3QucHlgOiBodHRwOi8vZG9jcy5weXRob24ub3JnL2xpYnJhcnkvZG9jdGVz
dC5odG1sCisuLiBfYHhVbml0IHN0eWxlIHNldHVwYDogeHVuaXRfc2V0dXAuaHRtbAorLi4gX2Bw
eXRlc3Rfbm9zZWA6IHBsdWdpbi9ub3NlLmh0bWwKKy4uIF9gcmVTdHJ1Y3R1cmVkIFRleHRgOiBo
dHRwOi8vZG9jdXRpbHMuc291cmNlZm9yZ2UubmV0CisuLiBfYFB5dGhvbiBkZWJ1Z2dlcmA6IGh0
dHA6Ly9kb2NzLnB5dGhvbi5vcmcvbGliL21vZHVsZS1wZGIuaHRtbAorLi4gX25vc2U6IGh0dHA6
Ly9zb21ldGhpbmdhYm91dG9yYW5nZS5jb20vbXJsL3Byb2plY3RzL25vc2UvCisuLiBfcHl0ZXN0
OiBodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcHl0ZXN0CisuLiBfbWVyY3VyaWFsOiBodHRw
Oi8vbWVyY3VyaWFsLnNlbGVuaWMuY29tL3dpa2kvCisuLiBfYHNldHVwdG9vbHNgOiBodHRwOi8v
cHlwaS5weXRob24ub3JnL3B5cGkvc2V0dXB0b29scworLi4gX2BkaXN0cmlidXRlYDogaHR0cDov
L3B5cGkucHl0aG9uLm9yZy9weXBpL2Rpc3RyaWJ1dGUKKy4uIF9gcGlwYDogaHR0cDovL3B5cGku
cHl0aG9uLm9yZy9weXBpL3BpcAorLi4gX2B2aXJ0dWFsZW52YDogaHR0cDovL3B5cGkucHl0aG9u
Lm9yZy9weXBpL3ZpcnR1YWxlbnYKKy4uIF9odWRzb246IGh0dHA6Ly9odWRzb24tY2kub3JnLwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weS9kb2MvbG9nLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2xvZy50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uY2E2MGZjYWMyNTA1NDI1Nzc1MDdkNmM3MDE4ZTZmYWJiYzhiZTExNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2xvZy50eHQKQEAgLTAsMCArMSwyMDggQEAKKy4uIHJv
bGU6OiBjb2RlKGxpdGVyYWwpCisuLiByb2xlOjogZmlsZShsaXRlcmFsKQorCisuLiBYWFggZmln
dXJlIG91dCBob3cgdGhlIGNvZGUgbGl0ZXJhbHMgc2hvdWxkIGJlIGRlYWx0IHdpdGggaW4gc3Bo
aW54LiBUaGVyZSBpcyBwcm9iYWJseSBzb21ldGhpbmcgYnVpbHRpbi4KKworPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorcHkubG9nIGRvY3VtZW50YXRpb24gYW5kIG11
c2luZ3MKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworCitGb3Jl
d29yZAorPT09PT09PT0KKworVGhpcyBkb2N1bWVudCBpcyBhbiBhdHRlbXB0IHRvIGJyaWVmbHkg
c3RhdGUgdGhlIGFjdHVhbCBzcGVjaWZpY2F0aW9uIG9mIHRoZQorOmNvZGU6YHB5LmxvZ2AgbW9k
dWxlLiAgSXQgd2FzIHdyaXR0ZW4gYnkgRnJhbmNvaXMgUGluYXJkIGFuZCBhbHNvIGNvbnRhaW5z
Citzb21lIGlkZWFzIGZvciBlbmhhbmNpbmcgdGhlIHB5LmxvZyBmYWNpbGl0aWVzLgorCitOT1RF
IHRoYXQgOmNvZGU6YHB5LmxvZ2AgaXMgc3ViamVjdCB0byByZWZhY3RvcmluZ3MsIGl0IG1heSBj
aGFuZ2Ugd2l0aAordGhlIG5leHQgcmVsZWFzZS4KKworVGhpcyBkb2N1bWVudCBpcyBtZWFudCB0
byB0cmlnZ2VyIG9yIGZhY2lsaXRhdGUgZGlzY3Vzc2lvbnMuICBJdCBzaGFtZWxlc3NseQorc3Rl
YWxzIGZyb20gdGhlIGBBZ2lsZSBUZXN0aW5nYF9fIGNvbW1lbnRzLCBhbmQgZnJvbSBvdGhlciBz
b3VyY2VzIGFzIHdlbGwsCit3aXRob3V0IHJlYWxseSB0cnlpbmcgdG8gc29ydCB0aGVtIG91dC4K
KworX18gaHR0cDovL2FnaWxldGVzdGluZy5ibG9nc3BvdC5jb20vMjAwNS8wNi9rZXl3b3JkLWJh
c2VkLWxvZ2dpbmctd2l0aC1weS1saWJyYXJ5Lmh0bWwKKworCitMb2dnaW5nIG9yZ2FuaXNhdGlv
bgorPT09PT09PT09PT09PT09PT09PT0KKworVGhlIDpjb2RlOmBweS5sb2dgIG1vZHVsZSBhaW1z
IGEgbmljaGUgY29tcGFyYWJsZSB0byB0aGUgb25lIG9mIHRoZQorYGxvZ2dpbmcgbW9kdWxlYF9f
IGZvdW5kIHdpdGhpbiB0aGUgc3RhbmRhcmQgUHl0aG9uIGRpc3RyaWJ1dGlvbnMsIHlldAord2l0
aCBtdWNoIHNpbXBsZXIgcGFyYWRpZ21zIGZvciBjb25maWd1cmF0aW9uIGFuZCB1c2FnZS4KKwor
X18gaHR0cDovL3d3dy5weXRob24ub3JnL2RvYy8yLjQuMi9saWIvbW9kdWxlLWxvZ2dpbmcuaHRt
bAorCitIb2xnZXIgS3Jla2VsLCB0aGUgbWFpbiA6Y29kZTpgcHlgIGxpYnJhcnkgZGV2ZWxvcGVy
LCBpbnRyb2R1Y2VkCit0aGUgaWRlYSBvZiBrZXl3b3JkLWJhc2VkIGxvZ2dpbmcgYW5kIHRoZSBp
ZGVhIG9mIGxvZ2dpbmcgKnByb2R1Y2VycyogYW5kCisqY29uc3VtZXJzKi4gIEEgbG9nIHByb2R1
Y2VyIGlzIGFuIG9iamVjdCB1c2VkIGJ5IHRoZSBhcHBsaWNhdGlvbiBjb2RlCit0byBzZW5kIG1l
c3NhZ2VzIHRvIHZhcmlvdXMgbG9nIGNvbnN1bWVycy4gIFdoZW4geW91IGNyZWF0ZSBhIGxvZwor
cHJvZHVjZXIsIHlvdSBkZWZpbmUgYSBzZXQgb2Yga2V5d29yZHMgdGhhdCBhcmUgdGhlbiB1c2Vk
IHRvIGJvdGggcm91dGUKK3RoZSBsb2dnaW5nIG1lc3NhZ2VzIHRvIGNvbnN1bWVycywgYW5kIHRv
IHByZWZpeCB0aG9zZSBtZXNzYWdlcy4KKworSW4gZmFjdCwgZWFjaCBsb2cgcHJvZHVjZXIgaGFz
IGEgZmV3IGtleXdvcmRzIGFzc29jaWF0ZWQgd2l0aCBpdCBmb3IKK2lkZW50aWZpY2F0aW9uIHB1
cnBvc2VzLiAgVGhlc2Uga2V5d29yZHMgZm9ybSBhIHR1cGxlIG9mIHN0cmluZ3MsIGFuZAorbWF5
IGJlIHVzZWQgdG8gbGF0ZXIgcmV0cmlldmUgYSBwYXJ0aWN1bGFyIGxvZyBwcm9kdWNlci4KKwor
QSBsb2cgcHJvZHVjZXIgbWF5IChvciBtYXkgbm90KSBiZSBhc3NvY2lhdGVkIHdpdGggYSBsb2cg
Y29uc3VtZXIsIG1lYW50Cit0byBoYW5kbGUgbG9nIG1lc3NhZ2VzIGluIHBhcnRpY3VsYXIgd2F5
cy4gIFRoZSBsb2cgY29uc3VtZXJzIGNhbiBiZQorYGBTVERPVVRgYCwgYGBTVERFUlJgYCwgbG9n
IGZpbGVzLCBzeXNsb2csIHRoZSBXaW5kb3dzIEV2ZW50IExvZywgdXNlcgorZGVmaW5lZCBmdW5j
dGlvbnMsIGV0Yy4gIChZZXQsIGxvZ2dpbmcgdG8gc3lzbG9nIG9yIHRvIHRoZSBXaW5kb3dzIEV2
ZW50CitMb2cgaXMgb25seSBmdXR1cmUgcGxhbnMgZm9yIG5vdykuICBBIGxvZyBwcm9kdWNlciBo
YXMgbmV2ZXIgbW9yZSB0aGFuCitvbmUgY29uc3VtZXIgYXQgYSBnaXZlbiB0aW1lLCBidXQgaXQg
aXMgcG9zc2libGUgdG8gZHluYW1pY2FsbHkgc3dpdGNoCithIHByb2R1Y2VyIHRvIHVzZSBhbm90
aGVyIGNvbnN1bWVyLiAgT24gdGhlIG90aGVyIGhhbmQsIGEgc2luZ2xlIGxvZworY29uc3VtZXIg
bWF5IGJlIGFzc29jaWF0ZWQgd2l0aCBtYW55IHByb2R1Y2Vycy4KKworTm90ZSB0aGF0IGNyZWF0
aW5nIGFuZCBhc3NvY2lhdGluZyBhIHByb2R1Y2VyIGFuZCBhIGNvbnN1bWVyIGlzIGRvbmUKK2F1
dG9tYXRpY2FsbHkgd2hlbiBub3Qgb3RoZXJ3aXNlIG92ZXJyaWRlbiwgc28gdXNpbmcgOmNvZGU6
YHB5YCBsb2dnaW5nCitpcyBxdWl0ZSBjb21mb3J0YWJsZSBldmVuIGluIHRoZSBzbWFsbGVzdCBw
cm9ncmFtcy4gIE1vcmUgdHlwaWNhbGx5LAordGhlIGFwcGxpY2F0aW9uIHByb2dyYW1tZXIgd2ls
bCBsaWtlbHkgZGVzaWduIGEgaGllcmFyY2h5IG9mIHByb2R1Y2VycywKK2FuZCB3aWxsIHNlbGVj
dCBrZXl3b3JkcyBhcHByb3ByaWF0ZWx5IGZvciBtYXJraW5nIHRoZSBoaWVyYXJjaHkgdHJlZS4K
K0lmIGEgbm9kZSBvZiB0aGUgaGllcmFyY2hpY2FsIHRyZWUgb2YgcHJvZHVjZXJzIGhhcyB0byBi
ZSBkaXZpZGVkIGluCitzdWItdHJlZXMsIGFsbCBwcm9kdWNlcnMgaW4gdGhlIHN1Yi10cmVlcyBz
aGFyZSwgYXMgYSBjb21tb24gcHJlZml4LCB0aGUKK2tleXdvcmRzIG9mIHRoZSBub2RlIGJlaW5n
IGRpdmlkZWQuICBJbiBvdGhlciB3b3Jkcywgd2UgZ28gZnVydGhlciBkb3duCitpbiB0aGUgaGll
cmFyY2h5IG9mIHByb2R1Y2VycyBtZXJlbHkgYnkgYWRkaW5nIGtleXdvcmRzLgorCitVc2luZyB0
aGUgcHkubG9nIGxpYnJhcnkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1Rv
IHVzZSB0aGUgOmNvZGU6YHB5LmxvZ2AgbGlicmFyeSwgdGhlIHVzZXIgbXVzdCBpbXBvcnQgaXQg
aW50byBhIFB5dGhvbgorYXBwbGljYXRpb24sIGNyZWF0ZSBhdCBsZWFzdCBvbmUgbG9nIHByb2R1
Y2VyIGFuZCBvbmUgbG9nIGNvbnN1bWVyLCBoYXZlCitwcm9kdWNlcnMgYW5kIGNvbnN1bWVycyBh
c3NvY2lhdGVkLCBhbmQgZmluYWxseSBjYWxsIHRoZSBsb2cgcHJvZHVjZXJzCithcyBuZWVkZWQs
IGdpdmluZyB0aGVtIGxvZyBtZXNzYWdlcy4KKworSW1wb3J0aW5nCistLS0tLS0tLS0KKworT25j
ZSB0aGUgOmNvZGU6YHB5YCBsaWJyYXJ5IGlzIGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSwgYSBt
ZXJlOjoKKworICBpbXBvcnQgcHkKKworaG9sZHMgZW5vdWdoIG1hZ2ljIGZvciBsYXppbHkgaW1w
b3J0aW5nIHRoZSB2YXJpb3VzIGZhY2lsaXRpZXMgb2YgdGhlCis6Y29kZTpgcHlgIGxpYnJhcnkg
d2hlbiB0aGV5IGFyZSBmaXJzdCBuZWVkZWQuICBUaGlzIGlzIHJlYWxseSBob3cKKzpjb2RlOmBw
eS5sb2dgIGlzIG1hZGUgYXZhaWxhYmxlIHRvIHRoZSBhcHBsaWNhdGlvbi4gIEZvciBleGFtcGxl
LCBhZnRlcgordGhlIGFib3ZlIGBgaW1wb3J0IHB5YGAsIG9uZSBtYXkgZGlyZWN0bHkgd3JpdGUg
YGBweS5sb2cuUHJvZHVjZXIoLi4uKWBgCithbmQgZXZlcnl0aGluZyBzaG91bGQgd29yayBmaW5l
LCB0aGUgdXNlciBkb2VzIG5vdCBoYXZlIHRvIHdvcnJ5IGFib3V0CitzcGVjaWZpY2FsbHkgaW1w
b3J0aW5nIG1vcmUgbW9kdWxlcy4KKworQ3JlYXRpbmcgYSBwcm9kdWNlcgorLS0tLS0tLS0tLS0t
LS0tLS0tLQorCitUaGVyZSBhcmUgdGhyZWUgd2F5cyBmb3IgY3JlYXRpbmcgYSBsb2cgcHJvZHVj
ZXIgaW5zdGFuY2U6CisKKyAgKyBBcyBzb29uIGFzIGBgcHkubG9nYGAgaXMgZmlyc3QgZXZhbHVh
dGVkIHdpdGhpbiBhbiBhcHBsaWNhdGlvbgorICAgIHByb2dyYW0sIGEgZGVmYXVsdCBsb2cgcHJv
ZHVjZXIgaXMgY3JlYXRlZCwgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyCisgICAgdGhlIG5hbWUg
YGBweS5sb2cuZGVmYXVsdGBgLiAgVGhlIGtleXdvcmQgYGBkZWZhdWx0YGAgaXMgYXNzb2NpYXRl
ZAorICAgIHdpdGggdGhhdCBwcm9kdWNlci4KKworICArIFRoZSBgYHB5LmxvZy5Qcm9kdWNlcigp
YGAgY29uc3RydWN0b3IgbWF5IGJlIGV4cGxpY2l0bHkgY2FsbGVkCisgICAgZm9yIGNyZWF0aW5n
IGEgbmV3IGluc3RhbmNlIG9mIGEgbG9nIHByb2R1Y2VyLiAgVGhhdCBjb25zdHJ1Y3RvcgorICAg
IGFjY2VwdHMsIGFzIGFuIGFyZ3VtZW50LCB0aGUga2V5d29yZHMgdGhhdCBzaG91bGQgYmUgYXNz
b2NpYXRlZCB3aXRoCisgICAgdGhhdCBwcm9kdWNlci4gIEtleXdvcmRzIG1heSBiZSBnaXZlbiBl
aXRoZXIgYXMgYSB0dXBsZSBvZiBrZXl3b3JkCisgICAgc3RyaW5ncywgb3IgYXMgYSBzaW5nbGUg
c3BhY2Utc2VwYXJhdGVkIHN0cmluZyBvZiBrZXl3b3Jkcy4KKworICArIFdoZW5ldmVyIGFuIGF0
dHJpYnV0ZSBpcyAqdGFrZW4qIG91dCBvZiBhIGxvZyBwcm9kdWNlciBpbnN0YW5jZSwKKyAgICBm
b3IgdGhlIGZpcnN0IHRpbWUgdGhhdCBhdHRyaWJ1dGUgaXMgdGFrZW4sIGEgbmV3IGxvZyBwcm9k
dWNlciBpcworICAgIGNyZWF0ZWQuICBUaGUga2V5d29yZHMgYXNzb2NpYXRlZCB3aXRoIHRoYXQg
bmV3IHByb2R1Y2VyIGFyZSB0aG9zZQorICAgIG9mIHRoZSBpbml0aWFsIHByb2R1Y2VyIGluc3Rh
bmNlLCB0byB3aGljaCBpcyBhcHBlbmRlZCB0aGUgbmFtZSBvZgorICAgIHRoZSBhdHRyaWJ1dGUg
YmVpbmcgdGFrZW4uCisKK1RoZSBsYXN0IHBvaW50IGlzIGVzcGVjaWFsbHkgdXNlZnVsLCBhcyBp
dCBhbGxvd3MgdXNpbmcgbG9nIHByb2R1Y2Vycword2l0aG91dCBmdXJ0aGVyIGRlY2xhcmF0aW9u
cywgbWVyZWx5IGNyZWF0aW5nIHRoZW0gKm9uLXRoZS1mbHkqLgorCitDcmVhdGluZyBhIGNvbnN1
bWVyCistLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZXJlIGFyZSBtYW55IHdheXMgZm9yIGNyZWF0
aW5nIG9yIGRlbm90aW5nIGEgbG9nIGNvbnN1bWVyOgorCisgICsgQSBkZWZhdWx0IGNvbnN1bWVy
IGV4aXN0cyB3aXRoaW4gdGhlIGBgcHkubG9nYGAgZmFjaWxpdGllcywgd2hpY2gKKyAgICBoYXMg
dGhlIGVmZmVjdCBvZiB3cml0aW5nIGxvZyBtZXNzYWdlcyBvbiB0aGUgUHl0aG9uIHN0YW5kYXJk
IG91dHB1dAorICAgIHN0cmVhbS4gIFRoYXQgY29uc3VtZXIgaXMgYXNzb2NpYXRlZCBhdCB0aGUg
dmVyeSB0b3Agb2YgdGhlIHByb2R1Y2VyCisgICAgaGllcmFyY2h5LCBhbmQgYXMgc3VjaCwgaXMg
Y2FsbGVkIHdoZW5ldmVyIG5vIG90aGVyIGNvbnN1bWVyIGlzCisgICAgZm91bmQuCisKKyAgKyBU
aGUgbm90YXRpb24gYGBweS5sb2cuU1RET1VUYGAgYWNjZXNzZXMgYSBsb2cgY29uc3VtZXIgd2hp
Y2ggd3JpdGVzCisgICAgbG9nIG1lc3NhZ2VzIG9uIHRoZSBQeXRob24gc3RhbmRhcmQgb3V0cHV0
IHN0cmVhbS4KKworICArIFRoZSBub3RhdGlvbiBgYHB5LmxvZy5TVERFUlJgYCBhY2Nlc3NlcyBh
IGxvZyBjb25zdW1lciB3aGljaCB3cml0ZXMKKyAgICBsb2cgbWVzc2FnZXMgb24gdGhlIFB5dGhv
biBzdGFuZGFyZCBlcnJvciBzdHJlYW0uCisKKyAgKyBUaGUgYGBweS5sb2cuRmlsZSgpYGAgY29u
c3RydWN0b3IgYWNjZXB0cywgYXMgYXJndW1lbnQsIGVpdGhlciBhIGZpbGUKKyAgICBhbHJlYWR5
IG9wZW5lZCBpbiB3cml0ZSBtb2RlIG9yIGFueSBzaW1pbGFyIGZpbGUtbGlrZSBvYmplY3QsIGFu
ZAorICAgIGNyZWF0ZXMgYSBsb2cgY29uc3VtZXIgYWJsZSB0byB3cml0ZSBsb2cgbWVzc2FnZXMg
b250byB0aGF0IGZpbGUuCisKKyAgKyBUaGUgYGBweS5sb2cuUGF0aCgpYGAgY29uc3RydWN0b3Ig
YWNjZXB0cyBhIGZpbGUgbmFtZSBmb3IgaXRzIGZpcnN0CisgICAgYXJndW1lbnQsIGFuZCBjcmVh
dGVzIGEgbG9nIGNvbnN1bWVyIGFibGUgdG8gd3JpdGUgbG9nIG1lc3NhZ2VzIGludG8KKyAgICB0
aGF0IGZpbGUuICBUaGUgY29uc3RydWN0b3IgY2FsbCBhY2NlcHRzIGEgZmV3IGtleXdvcmQgcGFy
YW1ldGVyczoKKworICAgICAgKyBgYGFwcGVuZGBgLCB3aGljaCBpcyBgYEZhbHNlYGAgYnkgZGVm
YXVsdCwgbWF5IGJlIHVzZWQgZm9yCisgICAgICAgIG9wZW5pbmcgdGhlIGZpbGUgaW4gYXBwZW5k
IG1vZGUgaW5zdGVhZCBvZiB3cml0ZSBtb2RlLgorCisgICAgICArIGBgZGVsYXllZF9jcmVhdGVg
YCwgd2hpY2ggaXMgYGBGYWxzZWBgIGJ5IGRlZmF1bHQsIG1heWJlIGJlIHVzZWQKKyAgICAgICAg
Zm9yIG9wZW5pbmcgdGhlIGZpbGUgYXQgdGhlIGxhdGVzdCBwb3NzaWJsZSB0aW1lLiAgQ29uc2Vx
dWVudGx5LAorICAgICAgICB0aGUgZmlsZSB3aWxsIG5vdCBiZSBjcmVhdGVkIGlmIGl0IGRpZCBu
b3QgZXhpc3QsIGFuZCBubyBhY3R1YWwKKyAgICAgICAgbG9nIG1lc3NhZ2UgZ2V0cyB3cml0dGVu
IHRvIGl0LgorCisgICAgICArIGBgYnVmZmVyaW5nYGAsIHdoaWNoIGlzIDEgYnkgZGVmYXVsdCwg
aXMgdXNlZCB3aGVuIG9wZW5pbmcgdGhlCisgICAgICAgIGZpbGUuICBCdWZmZXJpbmcgY2FuIGJl
IHR1cm5lZCBvZmYgYnkgc3BlY2lmeWluZyBhIDAgdmFsdWUuICBUaGUKKyAgICAgICAgYnVmZmVy
IHNpemUgbWF5IGFsc28gYmUgc2VsZWN0ZWQgdGhyb3VnaCB0aGlzIGFyZ3VtZW50LgorCisgICsg
QW55IHVzZXIgZGVmaW5lZCBmdW5jdGlvbiBtYXkgYmUgdXNlZCBmb3IgYSBsb2cgY29uc3VtZXIu
ICBTdWNoIGEKKyAgICBmdW5jdGlvbiBzaG91bGQgYWNjZXB0IGEgc2luZ2xlIGFyZ3VtZW50LCB3
aGljaCBpcyB0aGUgbWVzc2FnZSB0bworICAgIHdyaXRlLCBhbmQgZG8gd2hhdGV2ZXIgaXMgZGVl
bWVkIGFwcHJvcHJpYXRlIGJ5IHRoZSBwcm9ncmFtbWVyLgorICAgIFdoZW4gdGhlIG5lZWQgYXJp
c2VzLCB0aGlzIG1heSBiZSBhbiBlc3BlY2lhbGx5IHVzZWZ1bCBhbmQgZmxleGlibGUKKyAgICBm
ZWF0dXJlLgorCisgICsgVGhlIHNwZWNpYWwgdmFsdWUgYGBOb25lYGAgbWVhbnMgbm8gY29uc3Vt
ZXIgYXQgYWxsLiAgVGhpcyBhY3RzIGp1c3QKKyAgICBsaWtlIGlmIHRoZXJlIHdhcyBhIGNvbnN1
bWVyIHdoaWNoIHdvdWxkIHNpbGVudGx5IGRpc2NhcmQgYWxsIGxvZworICAgIG1lc3NhZ2VzIHNl
bnQgdG8gaXQuCisKK0Fzc29jaWF0aW5nIHByb2R1Y2VycyBhbmQgY29uc3VtZXJzCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitFYWNoIGxvZyBwcm9kdWNlciBtYXkgaGF2
ZSBhdCBtb3N0IG9uZSBsb2cgY29uc3VtZXIgYXNzb2NpYXRlZCB3aXRoCitpdC4gIEEgbG9nIHBy
b2R1Y2VyIGdldHMgYXNzb2NpYXRlZCB3aXRoIGEgbG9nIGNvbnN1bWVyIHRocm91Z2ggYQorYGBw
eS5sb2cuc2V0Y29uc3VtZXIoKWBgIGNhbGwuICBUaGF0IGZ1bmN0aW9uIGFjY2VwdHMgdHdvIGFy
Z3VtZW50cywKK3RoZSBmaXJzdCBpZGVudGlmeWluZyBhIHByb2R1Y2VyIChhIHR1cGxlIG9mIGtl
eXdvcmQgc3RyaW5ncyBvciBhIHNpbmdsZQorc3BhY2Utc2VwYXJhdGVkIHN0cmluZyBvZiBrZXl3
b3JkcyksIHRoZSBzZWNvbmQgc3BlY2lmeWluZyB0aGUgcHJlY2lzZQorY29uc3VtZXIgdG8gdXNl
IGZvciB0aGF0IHByb2R1Y2VyLiAgVW50aWwgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgZm9yIGEK
K3Byb2R1Y2VyLCB0aGF0IHByb2R1Y2VyIGRvZXMgbm90IGhhdmUgYW55IGV4cGxpY2l0IGNvbnN1
bWVyIGFzc29jaWF0ZWQKK3dpdGggaXQuCisKK05vdywgdGhlIGhpZXJhcmNoeSBvZiBsb2cgcHJv
ZHVjZXJzIGVzdGFibGlzaGVzIHdoaWNoIGNvbnN1bWVyIGdldHMgdXNlZAord2hlbmV2ZXIgYSBw
cm9kdWNlciBoYXMgbm8gZXhwbGljaXQgY29uc3VtZXIuICBXaGVuIGEgbG9nIHByb2R1Y2VyCito
YXMgbm8gY29uc3VtZXIgZXhwbGljaXRseSBhc3NvY2lhdGVkIHdpdGggaXQsIGl0IGR5bmFtaWNh
bGx5IGFuZAorcmVjdXJzaXZlbHkgaW5oZXJpdHMgdGhlIGNvbnN1bWVyIG9mIGl0cyBwYXJlbnQg
bm9kZSwgdGhhdCBpcywgdGhhdCBub2RlCitiZWluZyBhIGJpdCBjbG9zZXIgdG8gdGhlIHJvb3Qg
b2YgdGhlIGhpZXJhcmNoeS4gIEluIG90aGVyIHdvcmRzLCB0aGUKK3JpZ2h0bW9zdCBrZXl3b3Jk
cyBvZiB0aGF0IHByb2R1Y2VyIGFyZSBkcm9wcGVkIHVudGlsIGFub3RoZXIgcHJvZHVjZXIKK2lz
IGZvdW5kIHdoaWNoIGhhcyBhbiBleHBsaWNpdCBjb25zdW1lci4gIEEgbmljZSBzaWRlLWVmZmVj
dCBpcyB0aGF0LAorYnkgZXhwbGljaXRseSBhc3NvY2lhdGluZyBhIGNvbnN1bWVyIHdpdGggYSBw
cm9kdWNlciwgYWxsIGNvbnN1bWVyLWxlc3MKK3Byb2R1Y2VycyB3aGljaCBhcHBlYXIgdW5kZXIg
dGhhdCBwcm9kdWNlciwgaW4gdGhlIGhpZXJhcmNoeSB0cmVlLAorYXV0b21hdGljYWxseSAqaW5o
ZXJpdHMqIHRoYXQgY29uc3VtZXIuCisKK1dyaXRpbmcgbG9nIG1lc3NhZ2VzCistLS0tLS0tLS0t
LS0tLS0tLS0tLQorCitBbGwgbG9nIHByb2R1Y2VyIGluc3RhbmNlcyBhcmUgYWxzbyBmdW5jdGlv
bnMsIGFuZCB0aGlzIGlzIGJ5IGNhbGxpbmcKK3RoZW0gdGhhdCBsb2cgbWVzc2FnZXMgYXJlIGdl
bmVyYXRlZC4gIEVhY2ggY2FsbCB0byBhIHByb2R1Y2VyIG9iamVjdAorcHJvZHVjZXMgdGhlIHRl
eHQgZm9yIG9uZSBsb2cgZW50cnksIHdoaWNoIGluIHR1cm4sIGlzIHNlbnQgdG8gdGhlIGxvZwor
Y29uc3VtZXIgZm9yIHRoYXQgcHJvZHVjZXIuCisKK1RoZSBsb2cgZW50cnkgZGlzcGxheXMsIGFm
dGVyIGEgcHJlZml4IGlkZW50aWZ5aW5nIHRoZSBsb2cgcHJvZHVjZXIKK2JlaW5nIHVzZWQsIGFs
bCBhcmd1bWVudHMgZ2l2ZW4gaW4gdGhlIGNhbGwsIGNvbnZlcnRlZCB0byBzdHJpbmdzIGFuZAor
c3BhY2Utc2VwYXJhdGVkLiAgKFRoaXMgaXMgbWVhbnQgYnkgZGVzaWduIHRvIGJlIGZhaXJseSBz
aW1pbGFyIHRvIHdoYXQKK3RoZSBgYHByaW50YGAgc3RhdGVtZW50IGRvZXMgaW4gUHl0aG9uKS4g
IFRoZSBwcmVmaXggaXRzZWxmIGlzIG1hZGUgdXAKK29mIGEgY29sb24tc2VwYXJhdGVkIGxpc3Qg
b2Yga2V5d29yZHMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwcm9kdWNlciwgdGhlCit3aG9sZSBiZWlu
ZyBzZXQgd2l0aGluIHNxdWFyZSBicmFja2V0cy4KKworTm90ZSB0aGF0IHRoZSBjb25zdW1lciBp
cyByZXNwb25zaWJsZSBmb3IgYWRkaW5nIHRoZSBuZXdsaW5lIGF0IHRoZSBlbmQKK29mIHRoZSBs
b2cgZW50cnkuICBUaGF0IGZpbmFsIG5ld2xpbmUgaXMgbm90IHBhcnQgb2YgdGhlIHRleHQgZm9y
IHRoZQorbG9nIGVudHJ5LgorCisuLiBPdGhlciBkZXRhaWxzCisuLiAtLS0tLS0tLS0tLS0tCisu
LiBYWFg6IGZpbGwgaW4gZGV0YWlscworLi4gKyBTaG91bGQgc3BlYWsgYWJvdXQgcGlja2xlLWFi
aWxpdHkgb2YgOmNvZGU6YHB5LmxvZ2AuCisuLgorLi4gKyBXaGF0IGlzIDpjb2RlOmBsb2cuZ2V0
YCAoaW4gOmZpbGU6YGxvZ2dlci5weWApPwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvbWlzYy50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L2RvYy9taXNjLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YjQ1MzQ4Mjc1N2ExMDZhNmYz
ZmE0NDBiN2Q0MGYwMjRjZTQ2YTM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvbWlz
Yy50eHQKQEAgLTAsMCArMSw5MyBAQAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CitNaXNjZWxsYW5lb3VzIGZlYXR1cmVzIG9mIHRoZSBweSBsaWIKKz09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorCitNYXBwaW5nIHRoZSBzdGFuZGFyZCBweXRob24gbGli
cmFyeSBpbnRvIHB5Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CisKK1RoZSBgYHB5LnN0ZGBgIG9iamVjdCBhbGxvd3MgbGF6eSBhY2Nlc3MgdG8KK3N0YW5kYXJk
IGxpYnJhcnkgbW9kdWxlcy4gIEZvciBleGFtcGxlLCB0byBnZXQgdG8gdGhlIHByaW50LWV4Y2Vw
dGlvbgorZnVuY3Rpb25hbGl0eSBvZiB0aGUgc3RhbmRhcmQgbGlicmFyeSB5b3UgY2FuIHdyaXRl
OjoKKworICAgIHB5LnN0ZC50cmFjZWJhY2sucHJpbnRfZXhjKCkKKword2l0aG91dCBoYXZpbmcg
dG8gZG8gYW55dGhpbmcgZWxzZSB0aGFuIHRoZSB1c3VhbCBgYGltcG9ydCBweWBgCithdCB0aGUg
YmVnaW5uaW5nLiAgWW91IGNhbiBhY2Nlc3MgYW55IG90aGVyIHRvcC1sZXZlbCBzdGFuZGFyZAor
bGlicmFyeSBtb2R1bGUgdGhpcyB3YXkuICBUaGlzIG1lYW5zIHRoYXQgeW91IHdpbGwgb25seSB0
cmlnZ2VyCitpbXBvcnRzIG9mIG1vZHVsZXMgdGhhdCBhcmUgYWN0dWFsbHkgbmVlZGVkLiAgTm90
ZSB0aGF0IG5vIGF0dGVtcHQKK2lzIG1hZGUgdG8gaW1wb3J0IHN1Ym1vZHVsZXMuCisKK1N1cHBv
cnQgZm9yIGludGVyYWN0aW9uIHdpdGggc3lzdGVtIHV0aWxpdGllcy9iaW5hcmllcworPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK0N1cnJl
bnRseSwgdGhlIHB5IGxpYiBvZmZlcnMgdHdvIHdheXMgdG8gaW50ZXJhY3Qgd2l0aAorc3lzdGVt
IGV4ZWN1dGFibGVzLiBgYHB5LnByb2Nlc3MuY21kZXhlYygpYGAgaW52b2tlcwordGhlIHNoZWxs
IGluIG9yZGVyIHRvIGV4ZWN1dGUgYSBzdHJpbmcuICBUaGUgb3RoZXIKK29uZSwgYGBweS5wYXRo
LmxvY2FsYGAncyAnc3lzZXhlYygpJyBtZXRob2QgbGV0cyB5b3UKK2RpcmVjdGx5IGV4ZWN1dGUg
YSBiaW5hcnkuCisKK0JvdGggYXBwcm9hY2hlcyB3aWxsIHJhaXNlIGFuIGV4Y2VwdGlvbiBpbiBj
YXNlIG9mIGEgcmV0dXJuLQorY29kZSBvdGhlciB0aGFuIDAgYW5kIG90aGVyd2lzZSByZXR1cm4g
dGhlIHN0ZG91dC1vdXRwdXQKK29mIHRoZSBjaGlsZCBwcm9jZXNzLgorCitUaGUgc2hlbGwgYmFz
ZWQgYXBwcm9hY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitZb3UgY2FuIGV4ZWN1dGUg
YSBjb21tYW5kIHZpYSB5b3VyIHN5c3RlbSBzaGVsbAorYnkgZG9pbmcgc29tZXRoaW5nIGxpa2U6
OgorCisgICAgb3V0ID0gcHkucHJvY2Vzcy5jbWRleGVjKCdscyAtdicpCisKK0hvd2V2ZXIsIHRo
ZSBgYGNtZGV4ZWNgYCBhcHByb2FjaCBoYXMgYSBmZXcgc2hvcnRjb21pbmdzOgorCistIGl0IHJl
bGllcyBvbiB0aGUgdW5kZXJseWluZyBzeXN0ZW0gc2hlbGwKKy0gaXQgbmVjY2Vzc2l0YXRlcyBz
aGVsbC1lc2NhcGluZyBmb3IgZXhwcmVzc2luZyBhcmd1bWVudHMKKy0gaXQgZG9lcyBub3QgZWFz
aWx5IGFsbG93IHRvICJmaXgiIHRoZSBiaW5hcnkgeW91IHdhbnQgdG8gcnVuLgorLSBpdCBvbmx5
IGFsbG93cyB0byBleGVjdXRlIGV4ZWN1dGFibGVzIGZyb20gdGhlIGxvY2FsCisgIGZpbGVzeXN0
ZW0KKworLi4gX3N5c2V4ZWM6CisKK2xvY2FsIHBhdGhzIGhhdmUgYGBzeXNleGVjYGAKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworSW4gb3JkZXIgdG8gc3luY2hyb25vdXNseSBleGVj
dXRlIGFuIGV4ZWN1dGFibGUgZmlsZSB5b3UKK2NhbiB1c2UgYGBzeXNleGVjYGA6OgorCisgICAg
Ymluc3ZuLnN5c2V4ZWMoJ2xzJywgJ2h0dHA6Ly9jb2Rlc3BlYWsubmV0L3N2bicpCisKK3doZXJl
IGBgYmluc3ZuYGAgaXMgYSBwYXRoIHRoYXQgcG9pbnRzIHRvIHRoZSBgYHN2bmBgIGNvbW1hbmRs
aW5lCitiaW5hcnkuIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90IG9mZmVyIGFueSBz
aGVsbC1lc2NhcGluZworc28geW91IGhhdmUgdG8gcGFzcyBpbiBhbHJlYWR5IHNlcGFyYXRlZCBh
cmd1bWVudHMuCisKK2ZpbmRpbmcgYW4gZXhlY3V0YWJsZSBsb2NhbCBwYXRoCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitGaW5kaW5nIGFuIGV4ZWN1dGFibGUgaXMgcXVpdGUg
ZGlmZmVyZW50IG9uIG11bHRpcGxlIHBsYXRmb3Jtcy4KK0N1cnJlbnRseSwgdGhlIGBgUEFUSGBg
IGVudmlyb25tZW50IHZhcmlhYmxlIGJhc2VkIHNlYXJjaCBvbgordW5peCBwbGF0Zm9ybXMgaXMg
c3VwcG9ydGVkOjoKKworICAgIHB5LnBhdGgubG9jYWwuc3lzZmluZCgnc3ZuJykKKword2hpY2gg
cmV0dXJucyB0aGUgZmlyc3QgcGF0aCB3aG9zZSBgYGJhc2VuYW1lYGAgbWF0Y2hlcyBgYHN2bmBg
LgorSW4gcHJpbmNpcGxlLCBgc3lzZmluZGAgZGVwbG95cyBwbGF0Zm9ybSBzcGVjaWZpYyBhbGdv
cml0aG1zCit0byBwZXJmb3JtIHRoZSBzZWFyY2guICBPbiBXaW5kb3dzLCBmb3IgZXhhbXBsZSwg
aXQgbWF5IGxvb2sKK2F0IHRoZSByZWdpc3RyeSAoWFhYKS4KKworVG8gbWFrZSB0aGUgc3Rvcnkg
Y29tcGxldGUsIHdlIGFsbG93IHRvIHBhc3MgaW4gYSBzZWNvbmQgYGBjaGVja2VyYGAKK2FyZ3Vt
ZW50IHRoYXQgaXMgY2FsbGVkIGZvciBlYWNoIGZvdW5kIGV4ZWN1dGFibGUuICBGb3IgZXhhbXBs
ZSwgaWYKK3lvdSBoYXZlIG11bHRpcGxlIGJpbmFyaWVzIGF2YWlsYWJsZSB5b3UgbWF5IHdhbnQg
dG8gc2VsZWN0IHRoZQorcmlnaHQgdmVyc2lvbjo6CisKKyAgICBkZWYgbXlzdm4ocCk6CisgICAg
ICAgICIiIiBjaGVjayB0aGF0IHRoZSBnaXZlbiBzdm4gYmluYXJ5IGhhcyB2ZXJzaW9uIDEuMS4g
IiIiCisgICAgICAgIGxpbmUgPSBwLmV4ZWN1dGUoJy0tdmVyc2lvbicnKS5yZWFkbGluZXMoKVsw
XQorICAgICAgICBpZiBsaW5lLmZpbmQoJ3ZlcnNpb24gMS4xJyk6CisgICAgICAgICAgICByZXR1
cm4gcAorICAgIGJpbnN2biA9IHB5LnBhdGgubG9jYWwuc3lzZmluZCgnc3ZuJywgY2hlY2tlcj1t
eXN2bikKKworCitDcm9zcy1QeXRob24gVmVyc2lvbiBjb21wYXRpYmlsaXR5IGhlbHBlcnMKKz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitUaGUgYGBweS5i
dWlsdGluYGAgbmFtZXNwYWNlIHByb3ZpZGVzIGEgbnVtYmVyIG9mIGhlbHBlcnMgdGhhdCBoZWxw
IHRvIHdyaXRlIHB5dGhvbiBjb2RlIGNvbXBhdGlibGUgYWNyb3NzIFB5dGhvbiBpbnRlcnByZXRl
cnMsIG1haW5seSBQeXRob24yIGFuZCBQeXRob24zLiAgVHlwZSBgYGhlbHAocHkuYnVpbHRpbilg
YCBvbiBhIFB5dGhvbiBwcm9tcHQgZm9yIHRoZSBzZWxlY3Rpb24gb2YgYnVpbHRpbnMuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L2RvYy9wYXRoLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL3BhdGgudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmM5MDYxNzkwOTlhZjhhNDQwODM0ZjIwYTBlNDg0NTBkZTZjNjM5YmQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9wYXRoLnR4dApAQCAtMCwwICsxLDI1OCBAQAorPT09PT09
PQorcHkucGF0aAorPT09PT09PQorCitUaGUgJ3B5JyBsaWIgcHJvdmlkZXMgYSB1bmlmb3JtIGhp
Z2gtbGV2ZWwgYXBpIHRvIGRlYWwgd2l0aCBmaWxlc3lzdGVtcworYW5kIGZpbGVzeXN0ZW0tbGlr
ZSBpbnRlcmZhY2VzOiBgYHB5LnBhdGhgYC4gIEl0IGFpbXMgdG8gb2ZmZXIgYSBjZW50cmFsCitv
YmplY3QgdG8gZnMtbGlrZSBvYmplY3QgdHJlZXMgKHJlYWRpbmcgZnJvbSBhbmQgd3JpdGluZyB0
byBmaWxlcywgYWRkaW5nCitmaWxlcy9kaXJlY3RvcmllcywgZXhhbWluaW5nIHRoZSB0eXBlcyBh
bmQgc3RydWN0dXJlLCBldGMuKSwgYW5kIG91dC1vZi10aGUtYm94Citwcm92aWRlcyBhIG51bWJl
ciBvZiBpbXBsZW1lbnRhdGlvbnMgb2YgdGhpcyBBUEkuCisKK3B5LnBhdGgubG9jYWwgLSBsb2Nh
bCBmaWxlIHN5c3RlbSBwYXRoCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQorCisuLiBfYGxvY2FsYDoKKworYmFzaWMgaW50ZXJhY3RpdmUgZXhhbXBsZQor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgZmlyc3QgYW5kIG1v
c3Qgb2J2aW91cyBvZiB0aGUgaW1wbGVtZW50YXRpb25zIGlzIGEgd3JhcHBlciBhcm91bmQgYSBs
b2NhbAorZmlsZXN5c3RlbS4gSXQncyBqdXN0IGEgYml0IG5pY2VyIGluIHVzYWdlIHRoYW4gdGhl
IHJlZ3VsYXIgUHl0aG9uIEFQSXMsIGFuZAorb2YgY291cnNlIGFsbCB0aGUgZnVuY3Rpb25hbGl0
eSBpcyBidW5kbGVkIHRvZ2V0aGVyIHJhdGhlciB0aGFuIHNwcmVhZCBvdmVyIGEKK251bWJlciBv
ZiBtb2R1bGVzLgorCisKKy4uIHNvdXJjZWNvZGU6OiBweWNvbgorCisgID4+PiBpbXBvcnQgcHkK
KyAgPj4+IHRlbXBwYXRoID0gcHkucGF0aC5sb2NhbCgncHkucGF0aF9kb2N1bWVudGF0aW9uJykK
KyAgPj4+IGZvb3BhdGggPSB0ZW1wcGF0aC5qb2luKCdmb28nKSAjIGdldCBjaGlsZCAnZm9vJyAo
bGF6aWx5KQorICA+Pj4gZm9vcGF0aC5jaGVjaygpICMgY2hlY2sgaWYgY2hpbGQgJ2ZvbycgZXhp
c3RzCisgIEZhbHNlCisgID4+PiBmb29wYXRoLndyaXRlKCdiYXInKSAjIHdyaXRlIHNvbWUgZGF0
YSB0byBpdAorICA+Pj4gZm9vcGF0aC5jaGVjaygpCisgIFRydWUKKyAgPj4+IGZvb3BhdGgucmVh
ZCgpCisgICdiYXInCisgID4+PiBmb29maWxlID0gZm9vcGF0aC5vcGVuKCkgIyByZXR1cm4gYSAn
cmVhbCcgZmlsZSBvYmplY3QKKyAgPj4+IGZvb2ZpbGUucmVhZCgxKQorICAnYicKKworcmVmZXJl
bmNlIGRvY3VtZW50YXRpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisu
LiBhdXRvY2xhc3M6OiBweS5fcGF0aC5sb2NhbC5Mb2NhbFBhdGgKKyAgICA6bWVtYmVyczoKKyAg
ICA6aW5oZXJpdGVkLW1lbWJlcnM6CisKK2BgcHkucGF0aC5zdm51cmxgYCBhbmQgYGBweS5wYXRo
LnN2bndjYGAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CisKK1R3byBvdGhlciBgYHB5LnBhdGhgYCBpbXBsZW1lbnRhdGlvbnMgdGhhdCB0aGUgcHkg
bGliIHByb3ZpZGVzIHdyYXAgdGhlCitwb3B1bGFyIGBTdWJ2ZXJzaW9uYF8gcmV2aXNpb24gY29u
dHJvbCBzeXN0ZW06IHRoZSBmaXJzdCAoY2FsbGVkICdzdm51cmwnKQorYnkgaW50ZXJmYWNpbmcg
d2l0aCBhIHJlbW90ZSBzZXJ2ZXIsIHRoZSBzZWNvbmQgYnkgd3JhcHBpbmcgYSBsb2NhbCBjaGVj
a291dC4KK0JvdGggYWxsb3cgeW91IHRvIGFjY2VzcyByZWxhdGl2ZWx5IGFkdmFuY2VkIGZlYXR1
cmVzIHN1Y2ggYXMgbWV0YWRhdGEgYW5kCit2ZXJzaW9uaW5nLCBhbmQgYm90aCBpbiBhIHdheSBt
b3JlIHVzZXItZnJpZW5kbHkgbWFubmVyIHRoYW4gZXhpc3Rpbmcgb3RoZXIKK3NvbHV0aW9ucy4K
KworU29tZSBleGFtcGxlIHVzYWdlIG9mIGBgcHkucGF0aC5zdm51cmxgYDoKKworLi4gc291cmNl
Y29kZTo6IHB5Y29uCisKKyAgLi4gPj4+IGltcG9ydCBweQorICAuLiA+Pj4gaWYgbm90IHB5LnRl
c3QuY29uZmlnLm9wdGlvbi51cmxjaGVjazogcmFpc2UgVmFsdWVFcnJvcignc2tpcGNodW5rJykK
KyAgPj4+IHVybCA9IHB5LnBhdGguc3ZudXJsKCdodHRwOi8vY29kZXNwZWFrLm5ldC9zdm4vcHkn
KQorICA+Pj4gaW5mbyA9IHVybC5pbmZvKCkKKyAgPj4+IGluZm8ua2luZAorICAnZGlyJworICA+
Pj4gZmlyc3RlbnRyeSA9IHVybC5sb2coKVstMV0KKyAgPj4+IGltcG9ydCB0aW1lCisgID4+PiB0
aW1lLnN0cmZ0aW1lKCclWS0lbS0lZCcsIHRpbWUuZ210aW1lKGZpcnN0ZW50cnkuZGF0ZSkpCisg
ICcyMDA0LTEwLTAyJworCitFeGFtcGxlIHVzYWdlIG9mIGBgcHkucGF0aC5zdm53Y2BgOgorCisu
LiBzb3VyY2Vjb2RlOjogcHljb24KKworICAuLiA+Pj4gaWYgbm90IHB5LnRlc3QuY29uZmlnLm9w
dGlvbi51cmxjaGVjazogcmFpc2UgVmFsdWVFcnJvcignc2tpcGNodW5rJykKKyAgPj4+IHRlbXAg
PSBweS5wYXRoLmxvY2FsKCdweS5wYXRoX2RvY3VtZW50YXRpb24nKQorICA+Pj4gd2MgPSBweS5w
YXRoLnN2bndjKHRlbXAuam9pbignc3Zud2MnKSkKKyAgPj4+IHdjLmNoZWNrb3V0KCdodHRwOi8v
Y29kZXNwZWFrLm5ldC9zdm4vcHkvZGlzdC9weS9wYXRoL2xvY2FsJykKKyAgPj4+IHdjLmpvaW4o
J2xvY2FsLnB5JykuY2hlY2soKQorICBUcnVlCisKKy4uIF9gU3VidmVyc2lvbmA6IGh0dHA6Ly9z
dWJ2ZXJzaW9uLnRpZ3Jpcy5vcmcvCisKK3N2biBwYXRoIHJlbGF0ZWQgQVBJIHJlZmVyZW5jZQor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gYXV0b2NsYXNz
OjogcHkuX3BhdGguc3Zud2MuU3ZuV0NDb21tYW5kUGF0aAorICAgIDptZW1iZXJzOgorICAgIDpp
bmhlcml0ZWQtbWVtYmVyczoKKworLi4gYXV0b2NsYXNzOjogcHkuX3BhdGguc3ZudXJsLlN2bkNv
bW1hbmRQYXRoCisgICAgOm1lbWJlcnM6CisgICAgOmluaGVyaXRlZC1tZW1iZXJzOgorCisuLiBh
dXRvY2xhc3M6OiBweS5fcGF0aC5zdm53Yy5Tdm5BdXRoCisgICAgOm1lbWJlcnM6CisgICAgOmlu
aGVyaXRlZC1tZW1iZXJzOgorCitDb21tb24gdnMuIHNwZWNpZmljIEFQSSwgRXhhbXBsZXMKKz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworQWxsIFBhdGggb2JqZWN0
cyBzdXBwb3J0IGEgY29tbW9uIHNldCBvZiBvcGVyYXRpb25zLCBzdWl0YWJsZQorZm9yIG1hbnkg
dXNlIGNhc2VzIGFuZCBhbGxvd2luZyB0byB0cmFuc3BhcmVudGx5IHN3aXRjaCB0aGUKK3BhdGgg
b2JqZWN0IHdpdGhpbiBhbiBhcHBsaWNhdGlvbiAoZS5nLiBmcm9tICJsb2NhbCIgdG8gInN2bndj
IikuCitUaGUgY29tbW9uIHNldCBpbmNsdWRlcyBmdW5jdGlvbnMgc3VjaCBhcyBgcGF0aC5yZWFk
KClgIHRvIHJlYWQgYWxsIGRhdGEKK2Zyb20gYSBmaWxlLCBgcGF0aC53cml0ZSgpYCB0byB3cml0
ZSBkYXRhLCBgcGF0aC5saXN0ZGlyKClgIHRvIGdldCBhIGxpc3QKK29mIGRpcmVjdG9yeSBlbnRy
aWVzLCBgcGF0aC5jaGVjaygpYCB0byBjaGVjayBpZiBhIG5vZGUgZXhpc3RzCithbmQgaXMgb2Yg
YSBwYXJ0aWN1bGFyIHR5cGUsIGBwYXRoLmpvaW4oKWAgdG8gZ2V0Cit0byBhIChncmFuZCljaGls
ZCwgYHBhdGgudmlzaXQoKWAgdG8gcmVjdXJzaXZlbHkgd2FsayB0aHJvdWdoIGEgbm9kZSdzCitj
aGlsZHJlbiwgZXRjLiAgT25seSB0aGluZ3MgdGhhdCBhcmUgbm90IGNvbW1vbiBvbiAnbm9ybWFs
JyBmaWxlc3lzdGVtcyAoeWV0KSwKK3N1Y2ggYXMgaGFuZGxpbmcgbWV0YWRhdGEgKGUuZy4gdGhl
IFN1YnZlcnNpb24gInByb3BlcnRpZXMiKSByZXF1aXJlCit1c2luZyBzcGVjaWZpYyBBUElzLgor
CitBIHF1aWNrICdjb29rYm9vaycgb2Ygc21hbGwgZXhhbXBsZXMgdGhhdCB3aWxsIGJlIHVzZWZ1
bCAnaW4gcmVhbCBsaWZlJywKK3doaWNoIGFsc28gcHJlc2VudHMgcGFydHMgb2YgdGhlICdjb21t
b24nIEFQSSwgYW5kIHNob3dzIHNvbWUgbm9uLWNvbW1vbgorbWV0aG9kczoKKworU2VhcmNoaW5n
IGAudHh0YCBmaWxlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworU2VhcmNo
IGZvciBhIHBhcnRpY3VsYXIgc3RyaW5nIGluc2lkZSBhbGwgZmlsZXMgd2l0aCBhIC50eHQgZXh0
ZW5zaW9uIGluIGEKK3NwZWNpZmljIGRpcmVjdG9yeS4KKworLi4gc291cmNlY29kZTo6IHB5Y29u
CisKKyAgPj4+IGRpcnBhdGggPSB0ZW1wcGF0aC5lbnN1cmUoJ3Rlc3RkaXInLCBkaXI9VHJ1ZSkK
KyAgPj4+IGRpcnBhdGguam9pbigndGV4dGZpbGUxLnR4dCcpLndyaXRlKCdmb28gYmFyIGJheicp
CisgID4+PiBkaXJwYXRoLmpvaW4oJ3RleHRmaWxlMi50eHQnKS53cml0ZSgnZnJvYiBiYXIgc3Bh
bSBlZ2dzJykKKyAgPj4+IHN1YmRpciA9IGRpcnBhdGguZW5zdXJlKCdzdWJkaXInLCBkaXI9VHJ1
ZSkKKyAgPj4+IHN1YmRpci5qb2luKCd0ZXh0ZmlsZTEudHh0Jykud3JpdGUoJ2ZvbyBiYXonKQor
ICA+Pj4gc3ViZGlyLmpvaW4oJ3RleHRmaWxlMi50eHQnKS53cml0ZSgnc3BhbSBlZ2dzIHNwYW0g
Zm9vIGJhciBzcGFtJykKKyAgPj4+IHJlc3VsdHMgPSBbXQorICA+Pj4gZm9yIGZwYXRoIGluIGRp
cnBhdGgudmlzaXQoJyoudHh0Jyk6CisgIC4uLiAgICAgaWYgJ2JhcicgaW4gZnBhdGgucmVhZCgp
OgorICAuLi4gICAgICAgICByZXN1bHRzLmFwcGVuZChmcGF0aC5iYXNlbmFtZSkKKyAgPj4+IHJl
c3VsdHMuc29ydCgpCisgID4+PiByZXN1bHRzCisgIFsndGV4dGZpbGUxLnR4dCcsICd0ZXh0Zmls
ZTIudHh0JywgJ3RleHRmaWxlMi50eHQnXQorCitXb3JraW5nIHdpdGggUGF0aHMKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhpcyBleGFtcGxlIHNob3dzIHRoZSBgYHB5LnBhdGhg
YCBmZWF0dXJlcyB0byBkZWFsIHdpdGgKK2ZpbGVzeXN0ZW0gcGF0aHMgTm90ZSB0aGF0IHRoZSBm
aWxlc3lzdGVtIGlzIG5ldmVyIHRvdWNoZWQsCithbGwgb3BlcmF0aW9ucyBhcmUgcGVyZm9ybWVk
IG9uIGEgc3RyaW5nIGxldmVsIChzbyB0aGUgcGF0aHMKK2Rvbid0IGhhdmUgdG8gZXhpc3QsIGVp
dGhlcik6CisKKy4uIHNvdXJjZWNvZGU6OiBweWNvbgorCisgID4+PiBwMSA9IHB5LnBhdGgubG9j
YWwoJy9mb28vYmFyJykKKyAgPj4+IHAyID0gcDEuam9pbignYmF6L3F1eCcpCisgID4+PiBwMiA9
PSBweS5wYXRoLmxvY2FsKCcvZm9vL2Jhci9iYXovcXV4JykKKyAgVHJ1ZQorICA+Pj4gc2VwID0g
cHkucGF0aC5sb2NhbC5zZXAKKyAgPj4+IHAyLnJlbHRvKHAxKS5yZXBsYWNlKHNlcCwgJy8nKSAj
IG9zLXNwZWNpZmljIHBhdGggc2VwIGluIHRoZSBzdHJpbmcKKyAgJ2Jhei9xdXgnCisgID4+PiBw
Mi5iZXN0cmVscGF0aChwMSkucmVwbGFjZShzZXAsICcvJykKKyAgJy4uLy4uJworICA+Pj4gcDIu
am9pbihwMi5iZXN0cmVscGF0aChwMSkpID09IHAxCisgIFRydWUKKyAgPj4+IHAzID0gcDEgLyAn
YmF6L3F1eCcgIyB0aGUgLyBvcGVyYXRvciBhbGxvd3Mgam9pbmluZywgdG9vCisgID4+PiBwMiA9
PSBwMworICBUcnVlCisgID4+PiBwNCA9IHAxICsgIi5weSIKKyAgPj4+IHA0LmJhc2VuYW1lID09
ICJiYXIucHkiCisgIFRydWUKKyAgPj4+IHA0LmV4dCA9PSAiLnB5IgorICBUcnVlCisgID4+PiBw
NC5wdXJlYmFzZW5hbWUgPT0gImJhciIKKyAgVHJ1ZQorCitUaGlzIHNob3VsZCBiZSBwb3NzaWJs
ZSBvbiBldmVyeSBpbXBsZW1lbnRhdGlvbiBvZiBgYHB5LnBhdGhgYCwgc28KK3JlZ2FyZGxlc3Mg
b2Ygd2hldGhlciB0aGUgaW1wbGVtZW50YXRpb24gd3JhcHMgYSBVTklYIGZpbGVzeXN0ZW0sIGEg
V2luZG93cworb25lLCBvciBhIGRhdGFiYXNlIG9yIG9iamVjdCB0cmVlLCB0aGVzZSBmdW5jdGlv
bnMgc2hvdWxkIGJlIGF2YWlsYWJsZSAoZWFjaAord2l0aCB0aGVpciBvd24gbm90aW9uIG9mIHBh
dGggc2VwZXJhdG9ycyBhbmQgZGVhbGluZyB3aXRoIGNvbnZlcnNpb25zLCBldGMuKS4KKworQ2hl
Y2tpbmcgcGF0aCB0eXBlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitOb3cg
d2Ugd2lsbCBzaG93IGEgYml0IGFib3V0IHRoZSBwb3dlcmZ1bCAnY2hlY2soKScgbWV0aG9kIG9u
IHBhdGhzLCB3aGljaAorYWxsb3dzIHlvdSB0byBjaGVjayB3aGV0aGVyIGEgZmlsZSBleGlzdHMs
IHdoYXQgdHlwZSBpdCBpcywgZXRjLjoKKworLi4gc291cmNlY29kZTo6IHB5Y29uCisKKyAgPj4+
IGZpbGUxID0gdGVtcHBhdGguam9pbignZmlsZTEnKQorICA+Pj4gZmlsZTEuY2hlY2soKSAjIGRv
ZXMgaXQgZXhpc3Q/CisgIEZhbHNlCisgID4+PiBmaWxlMSA9IGZpbGUxLmVuc3VyZShmaWxlPVRy
dWUpICMgJ3RvdWNoJyB0aGUgZmlsZQorICA+Pj4gZmlsZTEuY2hlY2soKQorICBUcnVlCisgID4+
PiBmaWxlMS5jaGVjayhkaXI9VHJ1ZSkgIyBpcyBpdCBhIGRpcj8KKyAgRmFsc2UKKyAgPj4+IGZp
bGUxLmNoZWNrKGZpbGU9VHJ1ZSkgIyBvciBhIGZpbGU/CisgIFRydWUKKyAgPj4+IGZpbGUxLmNo
ZWNrKGV4dD0nLnR4dCcpICMgY2hlY2sgdGhlIGV4dGVuc2lvbgorICBGYWxzZQorICA+Pj4gdGV4
dGZpbGUgPSB0ZW1wcGF0aC5lbnN1cmUoJ3RleHQudHh0JywgZmlsZT1UcnVlKQorICA+Pj4gdGV4
dGZpbGUuY2hlY2soZXh0PScudHh0JykKKyAgVHJ1ZQorICA+Pj4gZmlsZTEuY2hlY2soYmFzZW5h
bWU9J2ZpbGUxJykgIyB3ZSBjYW4gdXNlIGFsbCB0aGUgcGF0aCdzIHByb3BlcnRpZXMgaGVyZQor
ICBUcnVlCisKK1NldHRpbmcgc3ZuLXByb3BlcnRpZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKK0FzIGFuIGV4YW1wbGUgb2YgJ3VuY29tbW9uJyBtZXRob2RzLCB3ZSdsbCBz
aG93IGhvdyB0byByZWFkIGFuZCB3cml0ZQorcHJvcGVydGllcyBpbiBhbiBgYHB5LnBhdGguc3Zu
d2NgYCBpbnN0YW5jZToKKworLi4gc291cmNlY29kZTo6IHB5Y29uCisKKyAgLi4gPj4+IGlmIG5v
dCBweS50ZXN0LmNvbmZpZy5vcHRpb24udXJsY2hlY2s6IHJhaXNlIFZhbHVlRXJyb3IoJ3NraXBj
aHVuaycpCisgID4+PiB3Yy5wcm9wZ2V0KCdmb28nKQorICAnJworICA+Pj4gd2MucHJvcHNldCgn
Zm9vJywgJ2JhcicpCisgID4+PiB3Yy5wcm9wZ2V0KCdmb28nKQorICAnYmFyJworICA+Pj4gbGVu
KHdjLnN0YXR1cygpLnByb3BfbW9kaWZpZWQpICMgb3VyIG93biBwcm9wcworICAxCisgID4+PiBt
c2cgPSB3Yy5yZXZlcnQoKSAjIHJvbGwgYmFjayBvdXIgY2hhbmdlcworICA+Pj4gbGVuKHdjLnN0
YXR1cygpLnByb3BfbW9kaWZpZWQpCisgIDAKKworU1ZOIGF1dGhlbnRpY2F0aW9uCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1NvbWUgdW5jb21tb24gZnVuY3Rpb25hbGl0eSBjYW4g
YWxzbyBiZSBwcm92aWRlZCBhcyBleHRlbnNpb25zLCBzdWNoIGFzIFNWTgorYXV0aGVudGljYXRp
b246CisKKy4uIHNvdXJjZWNvZGU6OiBweWNvbgorCisgIC4uID4+PiBpZiBub3QgcHkudGVzdC5j
b25maWcub3B0aW9uLnVybGNoZWNrOiByYWlzZSBWYWx1ZUVycm9yKCdza2lwY2h1bmsnKQorICA+
Pj4gYXV0aCA9IHB5LnBhdGguU3ZuQXV0aCgnYW5vbnltb3VzJywgJ3VzZXInLCBjYWNoZV9hdXRo
PUZhbHNlLAorICAuLi4gICAgICAgICAgICAgaW50ZXJhY3RpdmU9RmFsc2UpCisgID4+PiB3Yy5h
dXRoID0gYXV0aAorICA+Pj4gd2MudXBkYXRlKCkgIyB0aGlzIHNob3VsZCB3b3JrCisgID4+PiBw
YXRoID0gd2MuZW5zdXJlKCd0aGlzc2hvdWxkbm90ZXhpc3QudHh0JykKKyAgPj4+IHRyeToKKyAg
Li4uICAgICBwYXRoLmNvbW1pdCgndGVzdGluZycpCisgIC4uLiBleGNlcHQgcHkucHJvY2Vzcy5j
bWRleGVjLkVycm9yLCBlOgorICAuLi4gICAgIHBhc3MKKyAgPj4+ICdhdXRob3JpemF0aW9uIGZh
aWxlZCcgaW4gc3RyKGUpCisgIFRydWUKKworS25vd24gcHJvYmxlbXMgLyBsaW1pdGF0aW9ucwor
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworKiBUaGUgU1ZOIHBhdGggb2Jq
ZWN0cyByZXF1aXJlIHRoZSAic3ZuIiBjb21tYW5kIGxpbmUsCisgIHRoZXJlIGlzIGN1cnJlbnRs
eSBubyBzdXBwb3J0IGZvciBweXRob24gYmluZGluZ3MuCisgIFBhcnNpbmcgdGhlIHN2biBvdXRw
dXQgY2FuIGxlYWQgdG8gcHJvYmxlbXMsIHBhcnRpY3VsYXJseQorICByZWdhcmRpbmcgaWYgeW91
IGhhdmUgYSBub24tZW5nbGlzaCAibG9jYWxlcyIgc2V0dGluZy4KKworKiBXaGlsZSB0aGUgcGF0
aCBvYmplY3RzIGJhc2ljYWxseSB3b3JrIG9uIHdpbmRvd3MsCisgIHRoZXJlIGlzIG5vIGF0dGVu
dGlvbiB5ZXQgb24gbWFraW5nIHVuaWNvZGUgcGF0aHMKKyAgd29yayBvciBkZWFsIHdpdGggdGhl
IGZhbW91cyAiOC4zIiBmaWxlbmFtZSBpc3N1ZXMuCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9k
b2Mvc3R5bGUuY3NzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2Mvc3R5bGUuY3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFmYWY3NjJj
NzE1NjM4NjhjNmJiOWJhYjRmZjFlYzk0NjQ3NDVmMTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L2RvYy9zdHlsZS5jc3MKQEAgLTAsMCArMSwxMDQ0IEBACitib2R5LGJvZHkuZWRpdG9yLGJv
ZHkuYm9keSB7CisgICAgZm9udDogMTEwJSAiVGltZXMgTmV3IFJvbWFuIiwgQXJpYWwsIFZlcmRh
bmEsIEhlbHZldGljYSwgc2VyaWY7CisgICAgYmFja2dyb3VuZDogV2hpdGU7CisgICAgY29sb3I6
IEJsYWNrOworfQorCithLCBhLnJlZmVyZW5jZSB7CisJdGV4dC1kZWNvcmF0aW9uOiBub25lOyAK
K30KK2FbaHJlZl06aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfQorCitpbWcg
eworICAgIGJvcmRlcjogbm9uZTsKKwl2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOworfQorCitwLCBk
aXYudGV4dCB7CisgICAgdGV4dC1hbGlnbjogbGVmdDsKKyAgICBsaW5lLWhlaWdodDogMS41ZW07
CisgICAgbWFyZ2luOiAwLjVlbSAwZW0gMGVtIDBlbTsKK30KKworCisKK3AgYTphY3RpdmUgewor
CWNvbG9yOiBSZWQ7CisgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7Cit9CisKK3Ag
aW1nIHsKKyAgICBib3JkZXI6IDA7CisgICAgbWFyZ2luOiAwOworfQorCitpbWcuaW5saW5lcGhv
dG8geworICAgIHBhZGRpbmc6IDA7CisgICAgcGFkZGluZy1yaWdodDogMWVtOworICAgIHBhZGRp
bmctdG9wOiAwLjdlbTsKKyAgICBmbG9hdDogbGVmdDsKK30KKworaHIgeworICAgIGNsZWFyOiBi
b3RoOworICAgIGhlaWdodDogMXB4OworICAgIGNvbG9yOiAjOENBQ0JCOworICAgIGJhY2tncm91
bmQtY29sb3I6IHRyYW5zcGFyZW50OworfQorCisKK3VsIHsgCisgICAgbGluZS1oZWlnaHQ6IDEu
NWVtOworICAgIC8qbGlzdC1zdHlsZS1pbWFnZTogdXJsKCJidWxsZXQuZ2lmIik7ICovCisgICAg
bWFyZ2luLWxlZnQ6IDEuNWVtOworICAgIHBhZGRpbmc6MDsKK30KKworb2wgeworICAgIGxpbmUt
aGVpZ2h0OiAxLjVlbTsKKyAgICBtYXJnaW4tbGVmdDogMS41ZW07CisgICAgcGFkZGluZzowOwor
fQorCit1bCBhLCBvbCBhIHsKKyAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKK30KKwor
ZGwgeworfQorCitkZCB7CisgICAgbGluZS1oZWlnaHQ6IDEuNWVtOworICAgIG1hcmdpbi1ib3R0
b206IDFlbTsKK30KKworYmxvY2txdW90ZSB7CisgICAgZm9udC1mYW1pbHk6IFRpbWVzLCAiVGlt
ZXMgTmV3IFJvbWFuIiwgc2VyaWY7CisgICAgZm9udC1zdHlsZTogaXRhbGljOworICAgIGZvbnQt
c2l6ZTogMTIwJTsKK30KKworY29kZSB7CisgICAgY29sb3I6IEJsYWNrOworICAgIC8qYmFja2dy
b3VuZC1jb2xvcjogI2RlZTdlYzsqLworICAgIC8qYmFja2dyb3VuZC1jb2xvcjogI2NjY2NjYzsq
LworfQorCitwcmUgeworICAgIHBhZGRpbmc6IDFlbTsKKyAgICBib3JkZXI6IDFweCBkb3R0ZWQg
IzhjYWNiYjsKKyAgICBjb2xvcjogQmxhY2s7CisgICAgLyoKKyAgICBiYWNrZ3JvdW5kLWNvbG9y
OiAjZGVlN2VjOworICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2NjY2M7CisgICAgYmFja2dyb3Vu
ZC1jb2xvcjogI2RlZTdlYzsKKyAgICAqLworICAgIG92ZXJmbG93OiBhdXRvOworfQorCisKKy5u
ZXRzY2FwZTQgeworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKKy8qIG1haW4gcGFnZSBzdHlsZXMg
Ki8KKworLyphW2hyZWZdOmhvdmVyIHsgY29sb3I6IGJsYWNrOyB0ZXh0LWRlY29yYXRpb246IHVu
ZGVybGluZTsgfQorYVtocmVmXTpsaW5rIHsgY29sb3I6IGJsYWNrOyB0ZXh0LWRlY29yYXRpb246
IHVuZGVybGluZTsgfQorYVtocmVmXSB7IGNvbG9yOiBibGFjazsgdGV4dC1kZWNvcmF0aW9uOiB1
bmRlcmxpbmU7IH0KKyovCisKK3NwYW4ubWVudV9zZWxlY3RlZCB7CisJY29sb3I6IGJsYWNrOwor
CXRleHQtZGVjb3JhdGlvbjogbm9uZTsKKyAgICBwYWRkaW5nLXJpZ2h0OiAwLjNlbTsKKyAgICBi
YWNrZ3JvdW5kLWNvbG9yOiAjY2NjY2NjOworfQorCisKK2EubWVudSB7CisgIAkvKmNvbG9yOiAj
M2JhNmVjOyAqLworICAJZm9udDogMTIwJSBWZXJkYW5hLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5z
LXNlcmlmOworCXRleHQtZGVjb3JhdGlvbjogbm9uZTsKKyAgICBwYWRkaW5nLXJpZ2h0OiAwLjNl
bTsKK30KKworYS5tZW51W2hyZWZdOnZpc2l0ZWQsIGEubWVudVtocmVmXTpsaW5reworICAJLypj
b2xvcjogIzNiYTZlYzsgKi8KKwl0ZXh0LWRlY29yYXRpb246IG5vbmU7Cit9CisKK2EubWVudVto
cmVmXTpob3ZlciB7CisgIAkvKmNvbG9yOiBibGFjazsqLworfQorCitkaXYjcGFnZXRpdGxlewor
ICAvKmJvcmRlci1zcGFjaW5nOiAyMHB4OyovCisgIGZvbnQ6IDE2MCUgVmVyZGFuYSwgSGVsdmV0
aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsKKyAgY29sb3I6ICMzYmE2ZWM7IAorICB2ZXJ0aWNhbC1h
bGlnbjogbWlkZGxlOworICBsZWZ0OiA4MCBweDsKKyAgcGFkZGluZy1ib3R0b206IDAuM2VtOwor
fQorCithLndpa2ljdXJyZW50IHsKKyAgZm9udDogMTAwJSBWZXJkYW5hLCBIZWx2ZXRpY2EsIEFy
aWFsLCBzYW5zLXNlcmlmOworICBjb2xvcjogIzNiYTZlYzsgCisgIHZlcnRpY2FsLWFsaWduOiBt
aWRkbGU7Cit9CisKKwordGFibGUuYm9keSB7CisgIGJvcmRlcjogMDsKKyAgLypwYWRkaW5nOiAw
OworICBib3JkZXItc3BhY2luZzogMHB4OworICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlOwor
ICAqLworfQorCit0ZC5wYWdlLWhlYWRlci1sZWZ0IHsKKyAgcGFkZGluZzogNXB4OworICAvKmJv
cmRlci1ib3R0b206IDFweCBzb2xpZCAjNDQ0NDQ0OyovCit9CisKK3RkLnBhZ2UtaGVhZGVyLXRv
cCB7CisgIHBhZGRpbmc6IDA7CisgICAgCisgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM0
NDQ0NDQ7Ki8KK30KKwordGQuc2lkZWJhciB7CisgIHBhZGRpbmc6IDEgMCAwIDE7Cit9CisKK3Rk
LnNpZGViYXIgcC5jbGFzc2Jsb2NrIHsKKyAgcGFkZGluZzogMCA1IDAgNTsKKyAgbWFyZ2luOiAx
IDEgMSAxOworICBib3JkZXI6IDFweCBzb2xpZCAjNDQ0NDQ0OworICBiYWNrZ3JvdW5kLWNvbG9y
OiAjZWVlZWVlOworfQorCit0ZC5zaWRlYmFyIHAudXNlcmJsb2NrIHsKKyAgcGFkZGluZzogMCA1
IDAgNTsKKyAgbWFyZ2luOiAxIDEgMSAxOworICBib3JkZXI6IDFweCBzb2xpZCAjNDQ0NDQ0Owor
ICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWZmOworfQorCit0ZC5jb250ZW50IHsKKyAgcGFkZGlu
ZzogMSA1IDEgNTsKKyAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgd2lkdGg6IDEwMCU7Cit9CisK
K3Aub2stbWVzc2FnZSB7CisgIGJhY2tncm91bmQtY29sb3I6ICMyMmJiMjI7CisgIHBhZGRpbmc6
IDUgNSA1IDU7CisgIGNvbG9yOiB3aGl0ZTsKKyAgZm9udC13ZWlnaHQ6IGJvbGQ7Cit9CitwLmVy
cm9yLW1lc3NhZ2UgeworICBiYWNrZ3JvdW5kLWNvbG9yOiAjYmIyMjIyOworICBwYWRkaW5nOiA1
IDUgNSA1OworICBjb2xvcjogd2hpdGU7CisgIGZvbnQtd2VpZ2h0OiBib2xkOworfQorCitwOmZp
cnN0LWNoaWxkIHsgCisgIG1hcmdpbjogMCA7CisgIHBhZGRpbmc6IDA7Cit9CisKKy8qIHN0eWxl
IGZvciBmb3JtcyAqLwordGFibGUuZm9ybSB7CisgIHBhZGRpbmc6IDI7CisgIGJvcmRlci1zcGFj
aW5nOiAwcHg7CisgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7Cit9CisKK3RhYmxlLmZvcm0g
dGggeworICBjb2xvcjogIzMzMzM4ODsKKyAgdGV4dC1hbGlnbjogcmlnaHQ7CisgIHZlcnRpY2Fs
LWFsaWduOiB0b3A7CisgIGZvbnQtd2VpZ2h0OiBub3JtYWw7Cit9Cit0YWJsZS5mb3JtIHRoLmhl
YWRlciB7CisgIGZvbnQtd2VpZ2h0OiBib2xkOworICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlZWZm
OworICB0ZXh0LWFsaWduOiBsZWZ0OworfQorCit0YWJsZS5mb3JtIHRoLnJlcXVpcmVkIHsKKyAg
Zm9udC13ZWlnaHQ6IGJvbGQ7Cit9CisKK3RhYmxlLmZvcm0gdGQgeworICBjb2xvcjogIzMzMzMz
MzsKKyAgZW1wdHktY2VsbHM6IHNob3c7CisgIHZlcnRpY2FsLWFsaWduOiB0b3A7Cit9CisKK3Rh
YmxlLmZvcm0gdGQub3B0aW9uYWwgeworICBmb250LXdlaWdodDogYm9sZDsKKyAgZm9udC1zdHls
ZTogaXRhbGljOworfQorCit0YWJsZS5mb3JtIHRkLmh0bWwgeworICBjb2xvcjogIzc3Nzc3NzsK
K30KKworLyogc3R5bGUgZm9yIGxpc3RzICovCit0YWJsZS5saXN0IHsKKyAgYm9yZGVyLXNwYWNp
bmc6IDBweDsKKyAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsKKyAgdmVydGljYWwtYWxpZ246
IHRvcDsKKyAgcGFkZGluZy10b3A6IDA7CisgIHdpZHRoOiAxMDAlOworfQorCit0YWJsZS5saXN0
IHRoIHsKKyAgcGFkZGluZzogMCA0IDAgNDsKKyAgY29sb3I6ICM0MDQwNzA7CisgIGJhY2tncm91
bmQtY29sb3I6ICNlZWVlZmY7CisgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM0MDQwNzA7Cisg
IGJvcmRlci10b3A6IDFweCBzb2xpZCAjNDA0MDcwOworICBib3JkZXItYm90dG9tOiAxcHggc29s
aWQgIzQwNDA3MDsKKyAgdmVydGljYWwtYWxpZ246IHRvcDsKKyAgZW1wdHktY2VsbHM6IHNob3c7
Cit9Cit0YWJsZS5saXN0IHRoIGFbaHJlZl06aG92ZXIgeyBjb2xvcjogIzQwNDA3MCB9Cit0YWJs
ZS5saXN0IHRoIGFbaHJlZl06bGluayB7IGNvbG9yOiAjNDA0MDcwIH0KK3RhYmxlLmxpc3QgdGgg
YVtocmVmXSB7IGNvbG9yOiAjNDA0MDcwIH0KK3RhYmxlLmxpc3QgdGguZ3JvdXAgeworICBiYWNr
Z3JvdW5kLWNvbG9yOiAjZjRmNGZmOworICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgIGZvbnQtc2l6
ZTogMTIwJTsKK30KKwordGFibGUubGlzdCB0ZCB7CisgIHBhZGRpbmc6IDAgNCAwIDQ7CisgIGJv
cmRlcjogMCAyIDAgMjsKKyAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzQwNDA3MDsKKyAgY29s
b3I6ICM0MDQwNzA7CisgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOworICB2ZXJ0aWNhbC1hbGln
bjogdG9wOworICBlbXB0eS1jZWxsczogc2hvdzsKK30KKwordGFibGUubGlzdCB0ci5ub3JtYWwg
dGQgeworICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKKyAgd2hpdGUtc3BhY2U6IG5vd3JhcDsK
K30KKwordGFibGUubGlzdCB0ci5hbHQgdGQgeworICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmVm
OworICB3aGl0ZS1zcGFjZTogbm93cmFwOworfQorCit0YWJsZS5saXN0IHRkOmZpcnN0LWNoaWxk
IHsKKyAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjNDA0MDcwOworICBib3JkZXItcmlnaHQ6IDFw
eCBzb2xpZCAjNDA0MDcwOworfQorCit0YWJsZS5saXN0IHRoOmZpcnN0LWNoaWxkIHsKKyAgYm9y
ZGVyLWxlZnQ6IDFweCBzb2xpZCAjNDA0MDcwOworICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAj
NDA0MDcwOworfQorCit0YWJsZS5saXN0IHRyLm5hdmlnYXRpb24gdGggeworICB0ZXh0LWFsaWdu
OiByaWdodDsKK30KK3RhYmxlLmxpc3QgdHIubmF2aWdhdGlvbiB0aDpmaXJzdC1jaGlsZCB7Cisg
IGJvcmRlci1yaWdodDogbm9uZTsKKyAgdGV4dC1hbGlnbjogbGVmdDsKK30KKworCisvKiBzdHls
ZSBmb3IgbWVzc2FnZSBkaXNwbGF5cyAqLwordGFibGUubWVzc2FnZXMgeworICBib3JkZXItc3Bh
Y2luZzogMHB4OworICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlOworICB3aWR0aDogMTAwJTsK
K30KKwordGFibGUubWVzc2FnZXMgdGguaGVhZGVyeworICBwYWRkaW5nLXRvcDogMTBweDsKKyAg
Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGdyYXk7CisgIGZvbnQtd2VpZ2h0OiBib2xkOworICBi
YWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKKyAgY29sb3I6ICM3MDcwNDA7Cit9CisKK3RhYmxlLm1l
c3NhZ2VzIHRoIHsKKyAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgIGNvbG9yOiBibGFjazsKKyAgdGV4
dC1hbGlnbjogbGVmdDsKKyAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhZmFmYWY7Cit9CisK
K3RhYmxlLm1lc3NhZ2VzIHRkIHsKKyAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsKKyAgYmFja2dy
b3VuZC1jb2xvcjogI2VmZWZlZjsKKyAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhZmFmYWY7
CisgIGNvbG9yOiBibGFjazsKKyAgZW1wdHktY2VsbHM6IHNob3c7CisgIGJvcmRlci1yaWdodDog
MXB4IHNvbGlkICNhZmFmYWY7CisgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgIHBhZGRpbmc6IDIg
NSAyIDU7Cit9CisKK3RhYmxlLm1lc3NhZ2VzIHRkOmZpcnN0LWNoaWxkIHsKKyAgYm9yZGVyLWxl
ZnQ6IDFweCBzb2xpZCAjYWZhZmFmOworICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjYWZhZmFm
OworfQorCisvKiBzdHlsZSBmb3IgZmlsZSBkaXNwbGF5cyAqLwordGFibGUuZmlsZXMgeworICBi
b3JkZXItc3BhY2luZzogMHB4OworICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlOworICB3aWR0
aDogMTAwJTsKK30KKwordGFibGUuZmlsZXMgdGguaGVhZGVyeworICBwYWRkaW5nLXRvcDogMTBw
eDsKKyAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGdyYXk7CisgIGZvbnQtd2VpZ2h0OiBib2xk
OworICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKKyAgY29sb3I6ICM3MDcwNDA7Cit9CisKK3Rh
YmxlLmZpbGVzIHRoIHsKKyAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNhZmFmYWY7CisgIGZv
bnQtd2VpZ2h0OiBib2xkOworICB0ZXh0LWFsaWduOiBsZWZ0OworfQorCit0YWJsZS5maWxlcyB0
ZCB7CisgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CisgIGVtcHR5LWNlbGxzOiBzaG93OworfQor
CisvKiBzdHlsZSBmb3IgaGlzdG9yeSBkaXNwbGF5cyAqLwordGFibGUuaGlzdG9yeSB7CisgIGJv
cmRlci1zcGFjaW5nOiAwcHg7CisgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7CisgIHdpZHRo
OiAxMDAlOworfQorCit0YWJsZS5oaXN0b3J5IHRoLmhlYWRlcnsKKyAgcGFkZGluZy10b3A6IDEw
cHg7CisgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBncmF5OworICBmb250LXdlaWdodDogYm9s
ZDsKKyAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CisgIGNvbG9yOiAjNzA3MDQwOworICBmb250
LXNpemU6IDEwMCU7Cit9CisKK3RhYmxlLmhpc3RvcnkgdGggeworICBib3JkZXItYm90dG9tOiAx
cHggc29saWQgI2FmYWZhZjsKKyAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgIHRleHQtYWxpZ246IGxl
ZnQ7CisgIGZvbnQtc2l6ZTogOTAlOworfQorCit0YWJsZS5oaXN0b3J5IHRkIHsKKyAgZm9udC1z
aXplOiA5MCU7CisgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgIGVtcHR5LWNlbGxzOiBzaG93Owor
fQorCisKKy8qIHN0eWxlIGZvciBjbGFzcyBsaXN0ICovCit0YWJsZS5jbGFzc2xpc3QgeworICBi
b3JkZXItc3BhY2luZzogMHB4OworICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlOworICB3aWR0
aDogMTAwJTsKK30KKwordGFibGUuY2xhc3NsaXN0IHRoLmhlYWRlcnsKKyAgcGFkZGluZy10b3A6
IDEwcHg7CisgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBncmF5OworICBmb250LXdlaWdodDog
Ym9sZDsKKyAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CisgIGNvbG9yOiAjNzA3MDQwOworfQor
Cit0YWJsZS5jbGFzc2xpc3QgdGggeworICBmb250LXdlaWdodDogYm9sZDsKKyAgdGV4dC1hbGln
bjogbGVmdDsKK30KKworCisvKiBzdHlsZSBmb3IgY2xhc3MgaGVscCBkaXNwbGF5ICovCit0YWJs
ZS5jbGFzc2hlbHAgeworICBib3JkZXItc3BhY2luZzogMHB4OworICBib3JkZXItY29sbGFwc2U6
IHNlcGFyYXRlOworICB3aWR0aDogMTAwJTsKK30KKwordGFibGUuY2xhc3NoZWxwIHRoIHsKKyAg
Zm9udC13ZWlnaHQ6IGJvbGQ7CisgIHRleHQtYWxpZ246IGxlZnQ7CisgIGNvbG9yOiAjNzA3MDQw
OworfQorCit0YWJsZS5jbGFzc2hlbHAgdGQgeworICBwYWRkaW5nOiAyIDIgMiAyOworICBib3Jk
ZXI6IDFweCBzb2xpZCBibGFjazsKKyAgdGV4dC1hbGlnbjogbGVmdDsKKyAgdmVydGljYWwtYWxp
Z246IHRvcDsKKyAgZW1wdHktY2VsbHM6IHNob3c7Cit9CisKKworLyogc3R5bGUgZm9yICJvdGhl
ciIgZGlzcGxheXMgKi8KK3RhYmxlLm90aGVyaW5mbyB7CisgIGJvcmRlci1zcGFjaW5nOiAwcHg7
CisgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7CisgIHdpZHRoOiAxMDAlOworfQorCit0YWJs
ZS5vdGhlcmluZm8gdGguaGVhZGVyeworICBwYWRkaW5nLXRvcDogMTBweDsKKyAgYm9yZGVyLWJv
dHRvbTogMXB4IHNvbGlkIGdyYXk7CisgIGZvbnQtd2VpZ2h0OiBib2xkOworICBiYWNrZ3JvdW5k
LWNvbG9yOiB3aGl0ZTsKKyAgY29sb3I6ICM3MDcwNDA7Cit9CisKK3RhYmxlLm90aGVyaW5mbyB0
aCB7CisgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjYWZhZmFmOworICBmb250LXdlaWdodDog
Ym9sZDsKKyAgdGV4dC1hbGlnbjogbGVmdDsKK30KKworaW5wdXQgeworICAgIGJvcmRlcjogMXB4
IHNvbGlkICM4Y2FjYmI7CisgICAgY29sb3I6IEJsYWNrOworICAgIGJhY2tncm91bmQtY29sb3I6
IHdoaXRlOworICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CisgICAgbWFyZ2luLWJvdHRvbTog
MXB4OyAvKiBJRSBidWcgZml4ICovCisgICAgcGFkZGluZzogMC4xZW07Cit9CisKK3NlbGVjdCB7
CisgICAgYm9yZGVyOiAxcHggc29saWQgIzhjYWNiYjsKKyAgICBjb2xvcjogQmxhY2s7CisgICAg
YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CisgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKKyAg
ICBtYXJnaW4tYm90dG9tOiAxcHg7IC8qIElFIGJ1ZyBmaXggKi8KKyAgICBwYWRkaW5nOiAwLjFl
bTsKK30KKworCithLm5vbmV4aXN0ZW50IHsKKyAgICBjb2xvcjogI0ZGMjIyMjsKK30KK2Eubm9u
ZXhpc3RlbnQ6dmlzaXRlZCB7CisgICAgY29sb3I6ICNGRjIyMjI7Cit9CithLmV4dGVybmFsIHsK
KyAgICBjb2xvcjogI0FBNjYwMDsKK30KKworLyoKK2RsLHVsLG9sIHsKKyAgICBtYXJnaW4tdG9w
OiAxcHQ7Cit9Cit0dCxwcmUgeworICAgIGZvbnQtZmFtaWx5OiBMdWNpZGEgQ29uc29sZSxDb3Vy
aWVyIE5ldyxDb3VyaWVyLG1vbm90eXBlOworICAgIGZvbnQtc2l6ZTogMTJwdDsKK30KK3ByZS5j
b2RlIHsKKyAgICBtYXJnaW4tdG9wOiA4cHQ7CisgICAgbWFyZ2luLWJvdHRvbTogOHB0OworICAg
IGJhY2tncm91bmQtY29sb3I6ICNGRkZGRUU7CisgICAgd2hpdGUtc3BhY2U6cHJlOworICAgIGJv
cmRlci1zdHlsZTpzb2xpZDsKKyAgICBib3JkZXItd2lkdGg6MXB0OworICAgIGJvcmRlci1jb2xv
cjojOTk5OTk5OworICAgIGNvbG9yOiMxMTExMTE7CisgICAgcGFkZGluZzo1cHg7CisgICAgd2lk
dGg6MTAwJTsKK30KKyovCitkaXYuZGlmZm9sZCB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogI0ZG
RkY4MDsKKyAgICBib3JkZXItc3R5bGU6bm9uZTsKKyAgICBib3JkZXItd2lkdGg6dGhpbjsKKyAg
ICB3aWR0aDoxMDAlOworfQorZGl2LmRpZmZuZXcgeworICAgIGJhY2tncm91bmQtY29sb3I6ICM4
MEZGODA7CisgICAgYm9yZGVyLXN0eWxlOm5vbmU7CisgICAgYm9yZGVyLXdpZHRoOnRoaW47Cisg
ICAgd2lkdGg6MTAwJTsKK30KK2Rpdi5tZXNzYWdlIHsKKyAgICBtYXJnaW4tdG9wOiA2cHQ7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjogI0U4RkZFODsKKyAgICBib3JkZXItc3R5bGU6c29saWQ7Cisg
ICAgYm9yZGVyLXdpZHRoOjFwdDsKKyAgICBib3JkZXItY29sb3I6Izk5OTk5OTsKKyAgICBjb2xv
cjojNDQwMDAwOworICAgIHBhZGRpbmc6NXB4OworICAgIHdpZHRoOjEwMCU7Cit9CitzdHJvbmcu
aGlnaGxpZ2h0IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZCQkJCOworLyogYXMgdXN1YWws
IE5ldFNjYXBlIGZ1Y2tzIHVwIHdpdGggaW5ub2NlbnQgQ1NTCisgICAgYm9yZGVyLWNvbG9yOiAj
RkZBQUFBOworICAgIGJvcmRlci1zdHlsZTogc29saWQ7CisgICAgYm9yZGVyLXdpZHRoOiAxcHQ7
CisqLworfQorCit0YWJsZS5uYXZpYmFyIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQzhDOEM4
OworICAgIGJvcmRlci1zcGFjaW5nOiAzcHg7Cit9Cit0ZC5uYXZpYmFyIHsKKyAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiAjRThFOEU4OworICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgdGV4dC1h
bGlnbjogcmlnaHQ7CisgICAgcGFkZGluZzogMHB4OworfQorCithI3ZlcnNpb25pbmZvIHsKKyAg
ICBjb2xvcjogYmx1ZTsKK30KKworZGl2I3BhZ2VuYW1lIHsKKyAgICBmb250LXNpemU6IDE0MCU7
CisgICAgY29sb3I6IGJsdWU7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAgIGZvbnQtd2Vp
Z2h0OiBib2xkOworICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOworICAgIHBhZGRpbmc6IDAg
OworfQorCithLndpa2lhY3Rpb24sIGlucHV0Lndpa2lhY3Rpb24geworICAgIGNvbG9yOiBibGFj
azsgCisgICAgdGV4dC1kZWNvcmF0aW9uOiBOb25lOworICAgIHRleHQtYWxpZ246IGNlbnRlcjsK
KyAgICBjb2xvcjogYmxhY2s7CisgICAgLypib3JkZXI6IDFweCBzb2xpZCAjM2JhNmVjOyAqLwor
ICAgIG1hcmdpbjogNHB4OworICAgIHBhZGRpbmc6IDU7CisgICAgcGFkZGluZy1ib3R0b206IDA7
CisgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKK30KKworYS53aWtpYWN0aW9uW2hyZWZdOmhvdmVy
IHsgCisJY29sb3I6IGJsYWNrOyAKKwl0ZXh0LWRlY29yYXRpb246IG5vbmU7IAorCS8qYmFja2dy
b3VuZC1jb2xvcjogI2RkZGRkZDsgKi8KK30KKworCitkaXYubGVnZW5kaXRlbSB7CisgICAgcGFk
ZGluZy10b3A6IDAuNWVtOworICAgIHBhZGRpbmctbGVmdDogMC4zZW07Cit9CisKK3NwYW4ud2lr
aXRva2VuIHsKKyAgIGJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7Cit9CisgICAgCisKK2RpdiNj
b250ZW50c3BhY2UgaDE6Zmlyc3QtY2hpbGQsIGRpdi5oZWFkaW5nOmZpcnN0LWNoaWxkIHsgCisg
IHBhZGRpbmctdG9wOiAwOworICBtYXJnaW4tdG9wOiAwOworfQorZGl2I2NvbnRlbnRzcGFjZSBo
MjpmaXJzdC1jaGlsZCB7IAorICBwYWRkaW5nLXRvcDogMDsKKyAgbWFyZ2luLXRvcDogMDsKK30K
KworLyogaGVhZGluZyBhbmQgcGFyYWdyYXBoIHRleHQgKi8KKworZGl2LmhlYWRpbmcsIGgxIHsK
KyAgICBmb250LWZhbWlseTogVmVyZGFuYSwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsK
KyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNThiM2VmOworICAgIGJhY2tncm91bmQtY29sb3I6ICNG
RkZGRkY7IAorICAgIC8qY29sb3I6ICM0ODkzY2Y7Ki8KKyAgICBjb2xvcjogYmxhY2s7CisgICAg
cGFkZGluZy10b3A6IDEuMGVtOworICAgIHBhZGRpbmctYm90dG9tOjAuMmVtOworICAgIHRleHQt
YWxpZ246IGxlZnQ7CisgICAgbWFyZ2luLXRvcDogMGVtOyAKKyAgICAvKm1hcmdpbi1ib3R0b206
OHB0OyovCisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgZm9udC1zaXplOiAxMTUlOworICAg
IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjOENBQ0JCOworfQorCitoMiB7CisgICAgYm9yZGVy
LWJvdHRvbTogMXB4IGRvdHRlZCAjOENBQ0JCOworfQorCisKK2gxLCBoMiwgaDMsIGg0LCBoNSwg
aDYgeworICAgIGNvbG9yOiBCbGFjazsKKyAgICBjbGVhcjogbGVmdDsKKyAgICBmb250OiAxMDAl
IFZlcmRhbmEsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CisgICAgbWFyZ2luOiAwOwor
ICAgIHBhZGRpbmctbGVmdDogMGVtOworICAgIHBhZGRpbmctdG9wOiAxZW07CisgICAgcGFkZGlu
Zy1ib3R0b206IDAuMmVtOworICAgIC8qYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICM4Q0FDQkI7
Ki8KK30KKy8qIGgxLGgyIHsgcGFkZGluZy10b3A6IDA7IH0qLworCisKK2gxIHsgZm9udC1zaXpl
OiAxNDUlOyB9CitoMiB7IGZvbnQtc2l6ZTogMTE1JTsgfQoraDMgeyBmb250LXNpemU6IDEwNSU7
IH0KK2g0IHsgZm9udC1zaXplOiAxMDAlOyB9CitoNSB7IGZvbnQtc2l6ZTogMTAwJTsgfQorCito
MSBhIHsgdGV4dC1kZWNvcmF0aW9uOiBOb25lO30KKworZGl2LmV4Y2VwdGlvbiB7CisgIGJhY2tn
cm91bmQtY29sb3I6ICNiYjIyMjI7CisgIHBhZGRpbmc6IDUgNSA1IDU7CisgIGNvbG9yOiB3aGl0
ZTsKKyAgZm9udC13ZWlnaHQ6IGJvbGQ7Cit9CitwcmUuZXhjZXB0aW9uIHsKKyAgICBmb250LXNp
emU6IDExMCU7CisgICAgcGFkZGluZzogMWVtOworICAgIGJvcmRlcjogMXB4IHNvbGlkICM4Y2Fj
YmI7CisgICAgY29sb3I6IEJsYWNrOworICAgIGJhY2tncm91bmQtY29sb3I6ICNkZWU3ZWM7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjogI2NjY2NjYzsKK30KKworLyogZGVmaW5lcyBmb3IgbmF2Z2lh
dGlvbiBiYXIgKGRvY3VtZW50YXRpb24pICovCisKKworZGl2LmRpcmVudHJ5IHsKKyAgICBwYWRk
aW5nLXRvcDogMC4zZW07CisgICAgcGFkZGluZy1ib3R0b206IDAuM2VtOworICAgIG1hcmdpbi1y
aWdodDogMWVtOworICAgIGZvbnQtd2VpZ2h0OiBib2xkOworICAgIGJhY2tncm91bmQtY29sb3I6
ICNkZWU3ZWM7CisgICAgZm9udC1zaXplOiAxMTAlOworfQorCitkaXYuZmlsZWVudHJ5IHsKKyAg
ICBmb250LWZhbWlseTogVmVyZGFuYSwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsKKyAg
ICBwYWRkaW5nLWJvdHRvbTogMC4zZW07CisgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKKyAgICBs
aW5lLWhlaWdodDogMTUwJTsKK30KKworYS5maWxlZW50cnkgeworICAgIHdoaXRlLXNwYWNlOiBu
b3dyYXA7Cit9CisKKworc3Bhbi5sZWZ0IHsKKyAgICB0ZXh0LWFsaWduOiBsZWZ0OworfQorc3Bh
bi5yaWdodCB7CisgICAgdGV4dC1hbGlnbjogcmlnaHQ7Cit9CisKK2Rpdi5uYXZiYXIgeworICAv
Km1hcmdpbjogMDsqLworICBmb250LXNpemU6IDgwJSAvKnNtYWxsZXIqLzsKKyAgZm9udC13ZWln
aHQ6IGJvbGQ7CisgIHRleHQtYWxpZ246IGxlZnQ7CisgIC8qIHBvc2l0aW9uOiBmaXhlZDsgKi8K
KyAgdG9wOiAxMDBwdDsKKyAgbGVmdDogMHB0OyAvKiAgYXV0bzsgKi8KKyAgd2lkdGg6IDEyMHB0
OworICAvKiByaWdodDogYXV0bzsKKyAgcmlnaHQ6IDBwdDsgIDJlbTsgKi8KK30KKworCitkaXYu
aGlzdG9yeSBhIHsKKyAgICAvKiBmb250LXNpemU6IDcwJTsgKi8KK30KKworZGl2Lndpa2lhY3Rp
b250aXRsZSB7IAorICBmb250LXdlaWdodDogYm9sZDsKK30KKworLyogIFJFU1QgIGRlZmluZXMg
Ki8KKworZGl2LmRvY3VtZW50IHsKKyAgICBtYXJnaW46IDA7Cit9CisKK2gxLnRpdGxlIHsKKyAg
ICBtYXJnaW46IDA7CisgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07Cit9CisKK3RkLnRvcGxpc3Qg
eworICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7Cit9CisKK2ltZyNweWltZyB7CisgICAgZmxvYXQ6
IGxlZnQ7CisgICAgcGFkZGluZy1ib3R0b206IDFlbTsKK30KKyAgICAKK2RpdiNuYXZzcGFjZSB7
CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIGZvbnQtc2l6ZTogMTAwJTsKKyAgICB3aWR0
aDogMTUwcHg7CisgICAgb3ZlcmZsb3c6IGhpZGRlbjsgLyogc2Nyb2xsOyAgKi8KK30KKworCitk
aXYjZXJyb3JsaW5lIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgdG9wOiA1cHg7IAor
ICAgIGZsb2F0OiByaWdodDsgCit9CisKK2RpdiNjb250ZW50c3BhY2UgeworICAgIHBvc2l0aW9u
OiBhYnNvbHV0ZTsKKyAgCS8qIGZvbnQ6IDEyMCUgIlRpbWVzIE5ldyBSb21hbiIsIHNlcmlmOyov
CisgICAgZm9udDogMTEwJSBWZXJkYW5hLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOwor
ICAgIGxlZnQ6IDE3MHB4OworICAgIG1hcmdpbi1yaWdodDogNXB4OworfQorCitkaXYjbWVudWJh
ciB7CisvKiAgICB3aWR0aDogNDAwcHg7ICovCisgICAgZmxvYXQ6IGxlZnQ7Cit9CisKKy8qIGZv
ciB0aGUgZG9jdW1lbnRhdGlvbiBwYWdlICovCitkaXYjdGl0bGV7CisgICAgCisgIGZvbnQtc2l6
ZTogMTEwJTsKKyAgY29sb3I6IGJsYWNrOworICAgIAorICAgIAorICAvKmJhY2tncm91bmQtY29s
b3I6ICNkZWU3ZWM7IAorICAjcGFkZGluZzogNXB0OyAKKyAgI3BhZGRpbmctYm90dG9tOiAxZW07
IAorICAjY29sb3I6IGJsYWNrOworICBib3JkZXItd2lkdGg6IDFwdDsKKyAgYm9yZGVyLXN0eWxl
OiBzb2xpZDsqLworCit9CisKK2RpdiNkb2NuYXZsaXN0IHsKKyAgLypiYWNrZ3JvdW5kLWNvbG9y
OiAjZGVlN2VjOyAqLworICBwYWRkaW5nOiA1cHQ7IAorICBwYWRkaW5nLWJvdHRvbTogMmVtOyAK
KyAgY29sb3I6IGJsYWNrOworICBib3JkZXItd2lkdGg6IDFwdDsKKyAgLypib3JkZXItc3R5bGU6
IHNvbGlkOyovCit9CisKKworLyogdGV4dCBtYXJrdXAgKi8KKworZGl2Lmxpc3R0aXRsZSB7Cisg
ICAgY29sb3I6IEJsYWNrOworICAgIGNsZWFyOiBsZWZ0OworICAgIGZvbnQ6IDEyMCUgVmVyZGFu
YSwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsKKyAgICBtYXJnaW46IDA7CisgICAgcGFk
ZGluZy1sZWZ0OiAwZW07CisgICAgcGFkZGluZy10b3A6IDBlbTsKKyAgICBwYWRkaW5nLWJvdHRv
bTogMC4yZW07CisgICAgbWFyZ2luLXJpZ2h0OiAwLjVlbTsKKyAgICBib3JkZXItYm90dG9tOiAx
cHggc29saWQgIzhDQUNCQjsKK30KKworZGl2LmFjdGlvbmJveCBoMyB7IAorICBwYWRkaW5nLXRv
cDogMDsKKyAgcGFkZGluZy1yaWdodDogMC41ZW07CisgIHBhZGRpbmctbGVmdDogMC41ZW07Cisg
IGJhY2tncm91bmQtY29sb3I6ICNmYWJmMDA7CisgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgYm9y
ZGVyOiAxcHggc29saWQgYmxhY2s7IC8qIDhjYWNiYjsgKi8KK30KKworZGl2LmFjdGlvbmJveCBh
IHsgCisgIGRpc3BsYXk6IGJsb2NrOworICBwYWRkaW5nLWJvdHRvbTogMC41ZW07CisgIHBhZGRp
bmctdG9wOiAwLjVlbTsKKyAgbWFyZ2luLWxlZnQ6IDAuNWVtOworfQorCitkaXYuYWN0aW9uYm94
IGEuaGlzdG9yeSB7IAorICBkaXNwbGF5OiBibG9jazsKKyAgcGFkZGluZy1ib3R0b206IDAuNWVt
OworICBwYWRkaW5nLXRvcDogMC41ZW07CisgIG1hcmdpbi1sZWZ0OiAwLjVlbTsKKyAgZm9udC1z
aXplOiA5MCU7IAorfQorCitkaXYuYWN0aW9uYm94IHsgCisgIG1hcmdpbi1ib3R0b206IDJlbTsK
KyAgcGFkZGluZy1ib3R0b206IDFlbTsKKyAgb3ZlcmZsb3c6IGhpZGRlbjsgLyogc2Nyb2xsOyAg
Ki8KK30KKworLyogdGFrZW4gZnJvbSBkb2N1dGlscyAob2ggZGVhciwgYSBiaXQgc2Vuc2VsZXNz
KSAqLworb2wuc2ltcGxlLCB1bC5zaW1wbGUgeworICBtYXJnaW4tYm90dG9tOiAxZW0gfQorCitv
bC5hcmFiaWMgeworICBsaXN0LXN0eWxlOiBkZWNpbWFsIH0KKworb2wubG93ZXJhbHBoYSB7Cisg
IGxpc3Qtc3R5bGU6IGxvd2VyLWFscGhhIH0KKworb2wudXBwZXJhbHBoYSB7CisgIGxpc3Qtc3R5
bGU6IHVwcGVyLWFscGhhIH0KKworb2wubG93ZXJyb21hbiB7CisgIGxpc3Qtc3R5bGU6IGxvd2Vy
LXJvbWFuIH0KKworb2wudXBwZXJyb21hbiB7CisgIGxpc3Qtc3R5bGU6IHVwcGVyLXJvbWFuIH0K
KworCisvKgorOkF1dGhvcjogRGF2aWQgR29vZGdlcgorOkNvbnRhY3Q6IGdvb2RnZXJAdXNlcnMu
c291cmNlZm9yZ2UubmV0Cis6ZGF0ZTogJERhdGU6IDIwMDMvMDEvMjIgMjI6MjY6NDggJAorOnZl
cnNpb246ICRSZXZpc2lvbjogMS4yOSAkCis6Y29weXJpZ2h0OiBUaGlzIHN0eWxlc2hlZXQgaGFz
IGJlZW4gcGxhY2VkIGluIHRoZSBwdWJsaWMgZG9tYWluLgorCitEZWZhdWx0IGNhc2NhZGluZyBz
dHlsZSBzaGVldCBmb3IgdGhlIEhUTUwgb3V0cHV0IG9mIERvY3V0aWxzLgorKi8KKy8qCisuZmly
c3QgeworICBtYXJnaW4tdG9wOiAwIH0KKworLmxhc3QgeworICBtYXJnaW4tYm90dG9tOiAwIH0K
KworYS50b2MtYmFja3JlZiB7CisgIHRleHQtZGVjb3JhdGlvbjogbm9uZSA7CisgIGNvbG9yOiBi
bGFjayB9CisKK2RkIHsKKyAgbWFyZ2luLWJvdHRvbTogMC41ZW0gfQorCitkaXYuYWJzdHJhY3Qg
eworICBtYXJnaW46IDJlbSA1ZW0gfQorCitkaXYuYWJzdHJhY3QgcC50b3BpYy10aXRsZSB7Cisg
IGZvbnQtd2VpZ2h0OiBib2xkIDsKKyAgdGV4dC1hbGlnbjogY2VudGVyIH0KKworZGl2LmF0dGVu
dGlvbiwgZGl2LmNhdXRpb24sIGRpdi5kYW5nZXIsIGRpdi5lcnJvciwgZGl2LmhpbnQsCitkaXYu
aW1wb3J0YW50LCBkaXYubm90ZSwgZGl2LnRpcCwgZGl2Lndhcm5pbmcgeworICBtYXJnaW46IDJl
bSA7CisgIGJvcmRlcjogbWVkaXVtIG91dHNldCA7CisgIHBhZGRpbmc6IDFlbSB9CisKK2Rpdi5h
dHRlbnRpb24gcC5hZG1vbml0aW9uLXRpdGxlLCBkaXYuY2F1dGlvbiBwLmFkbW9uaXRpb24tdGl0
bGUsCitkaXYuZGFuZ2VyIHAuYWRtb25pdGlvbi10aXRsZSwgZGl2LmVycm9yIHAuYWRtb25pdGlv
bi10aXRsZSwKK2Rpdi53YXJuaW5nIHAuYWRtb25pdGlvbi10aXRsZSB7CisgIGNvbG9yOiByZWQg
OworICBmb250LXdlaWdodDogYm9sZCA7CisgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmIH0KKwor
ZGl2LmhpbnQgcC5hZG1vbml0aW9uLXRpdGxlLCBkaXYuaW1wb3J0YW50IHAuYWRtb25pdGlvbi10
aXRsZSwKK2Rpdi5ub3RlIHAuYWRtb25pdGlvbi10aXRsZSwgZGl2LnRpcCBwLmFkbW9uaXRpb24t
dGl0bGUgeworICBmb250LXdlaWdodDogYm9sZCA7CisgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlm
IH0KKworZGl2LmRlZGljYXRpb24geworICBtYXJnaW46IDJlbSA1ZW0gOworICB0ZXh0LWFsaWdu
OiBjZW50ZXIgOworICBmb250LXN0eWxlOiBpdGFsaWMgfQorCitkaXYuZGVkaWNhdGlvbiBwLnRv
cGljLXRpdGxlIHsKKyAgZm9udC13ZWlnaHQ6IGJvbGQgOworICBmb250LXN0eWxlOiBub3JtYWwg
fQorCitkaXYuZmlndXJlIHsKKyAgbWFyZ2luLWxlZnQ6IDJlbSB9CisKK2Rpdi5mb290ZXIsIGRp
di5oZWFkZXIgeworICBmb250LXNpemU6IHNtYWxsZXIgfQorCitkaXYuc3lzdGVtLW1lc3NhZ2Vz
IHsKKyAgbWFyZ2luOiA1ZW0gfQorCitkaXYuc3lzdGVtLW1lc3NhZ2VzIGgxIHsKKyAgY29sb3I6
IHJlZCB9CisKK2Rpdi5zeXN0ZW0tbWVzc2FnZSB7CisgIGJvcmRlcjogbWVkaXVtIG91dHNldCA7
CisgIHBhZGRpbmc6IDFlbSB9CisKK2Rpdi5zeXN0ZW0tbWVzc2FnZSBwLnN5c3RlbS1tZXNzYWdl
LXRpdGxlIHsKKyAgY29sb3I6IHJlZCA7CisgIGZvbnQtd2VpZ2h0OiBib2xkIH0KKworZGl2LnRv
cGljIHsKKyAgbWFyZ2luOiAyZW0gfQorCitoMS50aXRsZSB7CisgIHRleHQtYWxpZ246IGNlbnRl
ciB9CisKK2gyLnN1YnRpdGxlIHsKKyAgdGV4dC1hbGlnbjogY2VudGVyIH0KKworaHIgeworICB3
aWR0aDogNzUlIH0KKworcC5jYXB0aW9uIHsKKyAgZm9udC1zdHlsZTogaXRhbGljIH0KKworcC5j
cmVkaXRzIHsKKyAgZm9udC1zdHlsZTogaXRhbGljIDsKKyAgZm9udC1zaXplOiBzbWFsbGVyIH0K
KworcC5sYWJlbCB7CisgIHdoaXRlLXNwYWNlOiBub3dyYXAgfQorCitwLnRvcGljLXRpdGxlIHsK
KyAgZm9udC13ZWlnaHQ6IGJvbGQgfQorCitwcmUuYWRkcmVzcyB7CisgIG1hcmdpbi1ib3R0b206
IDAgOworICBtYXJnaW4tdG9wOiAwIDsKKyAgZm9udC1mYW1pbHk6IHNlcmlmIDsKKyAgZm9udC1z
aXplOiAxMDAlIH0KKworcHJlLmxpbmUtYmxvY2sgeworICBmb250LWZhbWlseTogc2VyaWYgOwor
ICBmb250LXNpemU6IDEwMCUgfQorCitwcmUubGl0ZXJhbC1ibG9jaywgcHJlLmRvY3Rlc3QtYmxv
Y2sgeworICBtYXJnaW4tbGVmdDogMmVtIDsKKyAgbWFyZ2luLXJpZ2h0OiAyZW0gOworICBiYWNr
Z3JvdW5kLWNvbG9yOiAjZWVlZWVlIH0KKworc3Bhbi5jbGFzc2lmaWVyIHsKKyAgZm9udC1mYW1p
bHk6IHNhbnMtc2VyaWYgOworICBmb250LXN0eWxlOiBvYmxpcXVlIH0KKworc3Bhbi5jbGFzc2lm
aWVyLWRlbGltaXRlciB7CisgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmIDsKKyAgZm9udC13ZWln
aHQ6IGJvbGQgfQorCitzcGFuLmludGVycHJldGVkIHsKKyAgZm9udC1mYW1pbHk6IHNhbnMtc2Vy
aWYgfQorCitzcGFuLm9wdGlvbiB7CisgIHdoaXRlLXNwYWNlOiBub3dyYXAgfQorCitzcGFuLm9w
dGlvbi1hcmd1bWVudCB7CisgIGZvbnQtc3R5bGU6IGl0YWxpYyB9CisKK3NwYW4ucHJlIHsKKyAg
d2hpdGUtc3BhY2U6IHByZSB9CisKK3NwYW4ucHJvYmxlbWF0aWMgeworICBjb2xvcjogcmVkIH0K
KwordGFibGUgeworICBtYXJnaW4tdG9wOiAwLjVlbSA7CisgIG1hcmdpbi1ib3R0b206IDAuNWVt
IH0KKwordGFibGUuY2l0YXRpb24geworICBib3JkZXItbGVmdDogc29saWQgdGhpbiBncmF5IDsK
KyAgcGFkZGluZy1sZWZ0OiAwLjVleCB9CisKK3RhYmxlLmRvY2luZm8geworICBtYXJnaW46IDJl
bSA0ZW0gfQorCit0YWJsZS5mb290bm90ZSB7CisgIGJvcmRlci1sZWZ0OiBzb2xpZCB0aGluIGJs
YWNrIDsKKyAgcGFkZGluZy1sZWZ0OiAwLjVleCB9CisKK3RkLCB0aCB7CisgIHBhZGRpbmctbGVm
dDogMC41ZW0gOworICBwYWRkaW5nLXJpZ2h0OiAwLjVlbSA7CisgIHZlcnRpY2FsLWFsaWduOiB0
b3AgfQorCit0aC5kb2NpbmZvLW5hbWUsIHRoLmZpZWxkLW5hbWUgeworICBmb250LXdlaWdodDog
Ym9sZCA7CisgIHRleHQtYWxpZ246IGxlZnQgOworICB3aGl0ZS1zcGFjZTogbm93cmFwIH0KKwor
aDEgdHQsIGgyIHR0LCBoMyB0dCwgaDQgdHQsIGg1IHR0LCBoNiB0dCB7CisgIGZvbnQtc2l6ZTog
MTAwJSB9CisKK3R0IHsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZSB9CisKK3VsLmF1dG8t
dG9jIHsKKyAgbGlzdC1zdHlsZS10eXBlOiBub25lIH0KKyovCisKK2Rpdi5zZWN0aW9uIHsKKyAg
bWFyZ2luLXRvcDogMS4wZW0gOworfSAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weS9kb2MvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjgzOTI1
MmRjZTU5MGNjYTkyYjFlN2Y0ZmM4ZDVhM2M2N2YwM2U2MQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvZG9jL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMzEgQEAKK1RoZSB0ZXN0cyBpbiB0
aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8g
Tk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVh
dGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29t
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1w
b3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciBy
ZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvZG9jL01ha2VmaWxlCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvY2hhbmdlbG9nLnR4dAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9j
L2NvZGUudHh0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weS9kb2MvY29uZi5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Rvd25sb2FkLmh0
bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L2RvYy9mYXEudHh0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvaW5kZXgudHh0CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS9kb2MvaW5zdGFsbC50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9pby50eHQKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9saW5r
cy5pbmMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L2RvYy9sb2cudHh0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvbWlzYy50eHQKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L2RvYy9wYXRoLnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL3N0eWxlLmNzcworL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL3ht
bC50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL3htbC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy94bWwu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjEwMjJkZTZlOTEyNmY4MTYwOWM5MmVjYTk3YzU4ZjA0ZDYyNzExZTYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy94bWwudHh0CkBAIC0wLDAgKzEsMTY0IEBA
Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Citw
eS54bWw6IHNpbXBsZSBweXRob25pYyB4bWwvaHRtbCBmaWxlIGdlbmVyYXRpb24KKz09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworTW90aXZhdGlv
bgorPT09PT09PT09PQorCitUaGVyZSBhcmUgYSBwbGV0aG9yYSBvZiBmcmFtZXdvcmtzIGFuZCBs
aWJyYXJpZXMgdG8gZ2VuZXJhdGUKK3htbCBhbmQgaHRtbCB0cmVlcy4gIEhvd2V2ZXIsIG1hbnkg
b2YgdGhlbSBhcmUgbGFyZ2UsIGhhdmUgYQorc3RlZXAgbGVhcm5pbmcgY3VydmUgYW5kIGFyZSBv
ZnRlbiBoYXJkIHRvIGRlYnVnLiAgTm90IHRvCitzcGVhayBvZiB0aGUgZmFjdCB0aGF0IHRoZXkg
YXJlIGZyYW1ld29ya3MgdG8gYmVnaW4gd2l0aC4KKworLi4gX3hpc3Q6IGh0dHA6Ly93d3cubGl2
aW5nbG9naWMuZGUvUHl0aG9uL3hpc3QvaW5kZXguaHRtbAorCithIHB5dGhvbmljIG9iamVjdCBt
b2RlbCAsIHBsZWFzZQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVGhlIHB5
IGxpYiBvZmZlcnMgYSBweXRob25pYyB3YXkgdG8gZ2VuZXJhdGUgeG1sL2h0bWwsIGJhc2VkIG9u
CitpZGVhcyBmcm9tIHhpc3RfIHdoaWNoIGB1c2VzIHB5dGhvbiBjbGFzcyBvYmplY3RzYF8gdG8g
YnVpbGQKK3htbCB0cmVlcy4gIEhvd2V2ZXIsIHhpc3RfJ3MgaW1wbGVtZW50YXRpb24gaXMgc29t
ZXdoYXQgaGVhdnkKK2JlY2F1c2UgaXQgaGFzIGFkZGl0aW9uYWwgZ29hbHMgbGlrZSB0cmFuc2Zv
cm1hdGlvbnMgYW5kCitzdXBwb3J0aW5nIG1hbnkgbmFtZXNwYWNlcy4gIEJ1dCBpdHMgYmFzaWMg
aWRlYSBpcyB2ZXJ5IGVhc3kuCisKKy4uIF9gdXNlcyBweXRob24gY2xhc3Mgb2JqZWN0c2A6IGh0
dHA6Ly93d3cubGl2aW5nbG9naWMuZGUvUHl0aG9uL3hpc3QvSG93dG8uaHRtbAorCitnZW5lcmF0
aW5nIGFyYml0cmFyeSB4bWwgc3RydWN0dXJlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKworV2l0aCBgYHB5LnhtbC5OYW1lc3BhY2VgYCB5b3UgaGF2ZSB0aGUgYmFzaXMK
K3RvIGdlbmVyYXRlIGN1c3RvbSB4bWwtZnJhZ21lbnRzIG9uIHRoZSBmbHk6OgorCisgICAgY2xh
c3MgbnMocHkueG1sLk5hbWVzcGFjZSk6CisgICAgICAgICJteSBjdXN0b20geG1sIG5hbWVzcGFj
ZSIKKyAgICBkb2MgPSBucy5ib29rcygKKyAgICAgICAgbnMuYm9vaygKKyAgICAgICAgICAgIG5z
LmF1dGhvcigiTWF5IERheSIpLAorICAgICAgICAgICAgbnMudGl0bGUoInB5dGhvbiBmb3IgamF2
YSBwcm9ncmFtbWVycyIpLCksCisgICAgICAgIG5zLmJvb2soCisgICAgICAgICAgICBucy5hdXRo
b3IoIndoeSIpLAorICAgICAgICAgICAgbnMudGl0bGUoIkphdmEgZm9yIFB5dGhvbiBwcm9ncmFt
bWVycyIpLCksCisgICAgICAgIHB1Ymxpc2hlcj0iTi5OIiwKKyAgICAgICAgKQorICAgIHByaW50
IGRvYy51bmljb2RlKGluZGVudD0yKS5lbmNvZGUoJ3V0ZjgnKQorCit3aWxsIGdpdmUgeW91IHRo
aXMgcmVwcmVzZW50YXRpb246OgorCisgICAgPGJvb2tzIHB1Ymxpc2hlcj0iTi5OIj4KKyAgICAg
IDxib29rPgorICAgICAgICA8YXV0aG9yPk1heSBEYXk8L2F1dGhvcj4KKyAgICAgICAgPHRpdGxl
PnB5dGhvbiBmb3IgamF2YSBwcm9ncmFtbWVyczwvdGl0bGU+PC9ib29rPgorICAgICAgPGJvb2s+
CisgICAgICAgIDxhdXRob3I+d2h5PC9hdXRob3I+CisgICAgICAgIDx0aXRsZT5KYXZhIGZvciBQ
eXRob24gcHJvZ3JhbW1lcnM8L3RpdGxlPjwvYm9vaz48L2Jvb2tzPgorCitJbiBhIHNlbnRlbmNl
OiBwb3NpdGlvbmFsIGFyZ3VtZW50cyBhcmUgY2hpbGQtdGFncyBhbmQKK2tleXdvcmQtYXJndW1l
bnRzIGFyZSBhdHRyaWJ1dGVzLgorCitPbiBhIHNpZGUgbm90ZSwgeW91J2xsIHNlZSB0aGF0IHRo
ZSB1bmljb2RlLXNlcmlhbGl6ZXIKK3N1cHBvcnRzIGEgbmljZSBpbmRlbnRhdGlvbiBzdHlsZSB3
aGljaCBrZWVwcyB5b3VyIGdlbmVyYXRlZAoraHRtbCByZWFkYWJsZSwgYmFzaWNhbGx5IHRocm91
Z2ggZW11bGF0aW5nIHB5dGhvbidzIHdoaXRlCitzcGFjZSBzaWduaWZpY2FuY2UgYnkgcHV0dGlu
ZyBjbG9zaW5nLXRhZ3MgcmlnaHRtb3N0IGFuZAorYWxtb3N0IGludmlzaWJsZSBhdCBmaXJzdCBn
bGFuY2UgOi0pCisKK2Jhc2ljIGV4YW1wbGUgZm9yIGdlbmVyYXRpbmcgaHRtbAorLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0NvbnNpZGVyIHRoaXMgZXhhbXBsZTo6CisKKyAg
ICBmcm9tIHB5LnhtbCBpbXBvcnQgaHRtbCAgIyBodG1sIG5hbWVzcGFjZQorCisgICAgcGFyYXMg
PSAiRmlyc3QgUGFyYSIsICJTZWNvbmQgcGFyYSIKKworICAgIGRvYyA9IGh0bWwuaHRtbCgKKyAg
ICAgICBodG1sLmhlYWQoCisgICAgICAgICAgICBodG1sLm1ldGEobmFtZT0iQ29udGVudC1UeXBl
IiwgdmFsdWU9InRleHQvaHRtbDsgY2hhcnNldD1sYXRpbjEiKSksCisgICAgICAgaHRtbC5ib2R5
KAorICAgICAgICAgICAgW2h0bWwucChwKSBmb3IgcCBpbiBwYXJhc10pKQorCisgICAgcHJpbnQg
dW5pY29kZShkb2MpLmVuY29kZSgnbGF0aW4xJykKKworQWdhaW4sIHRhZ3MgYXJlIG9iamVjdHMg
d2hpY2ggY29udGFpbiB0YWdzIGFuZCBoYXZlIGF0dHJpYnV0ZXMuCitNb3JlIGV4YWN0bHksIFRh
Z3MgaW5oZXJpdCBmcm9tIHRoZSBsaXN0IHR5cGUgYW5kIHRodXMgY2FuIGJlCittYW5pcHVsYXRl
ZCBhcyBsaXN0IG9iamVjdHMuICBUaGV5IGFkZGl0aW9uYWxseSBzdXBwb3J0IGEgZGVmYXVsdAor
d2F5IHRvIHJlcHJlc2VudCB0aGVtc2VsdmVzIGFzIGEgc2VyaWFsaXplZCB1bmljb2RlIG9iamVj
dC4KKworSWYgeW91IGhhcHBlbiB0byBsb29rIGF0IHRoZSBweS54bWwgaW1wbGVtZW50YXRpb24g
eW91J2xsCitub3RlIHRoYXQgdGhlIHRhZy9uYW1lc3BhY2UgaW1wbGVtZW50YXRpb24gY29uc3Vt
ZXMgc29tZSA1MCBsaW5lcword2l0aCBhbm90aGVyIDUwIGxpbmVzIGZvciB0aGUgdW5pY29kZSBz
ZXJpYWxpemF0aW9uIGNvZGUuCisKK0NTUy1zdHlsaW5nIHlvdXIgaHRtbCBUYWdzCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCitPbmUgYXNwZWN0IHdoZXJlIG1hbnkgb2YgdGhlIGh1Z2Ug
cHl0aG9uIHhtbC9odG1sIGdlbmVyYXRpb24KK2ZyYW1ld29ya3MgdXR0ZXJseSBmYWlsIGlzIGEg
Y2xlYW4gYW5kIGNvbnZlbmllbnQgaW50ZWdyYXRpb24KK29mIENTUyBzdHlsaW5nLiAgT2Z0ZW4s
IGRldmVsb3BlcnMgYXJlIGxlZnQgYWxvbmUgd2l0aCBrZWVwaW5nCitDU1Mgc3R5bGUgZGVmaW5p
dGlvbnMgaW4gc3luYyB3aXRoIHNvbWUgc3R5bGUgZmlsZXMKK3JlcHJlc2VudGVkIGFzIHN0cmlu
Z3MgKG9mdGVuIGluIGEgc2VwYXJhdGUgLmNzcyBmaWxlKS4gIE5vdAorb25seSBpcyB0aGlzIGhh
cmQgdG8gZGVidWcgYnV0IHRoZSBtaXNzaW5nIGFic3RyYWN0aW9ucyBtYWtlCitpdCBoYXJkIHRv
IG1vZGlmeSB0aGUgc3R5bGluZyBvZiB5b3VyIHRhZ3Mgb3IgdG8gY2hvb3NlIGN1c3RvbQorc3R5
bGUgcmVwcmVzZW50YXRpb25zIChpbmxpbmUsIGh0bWwuaGVhZCBvciBleHRlcm5hbCkuICBBZGQg
dGhlCitCcm93ZXJzIHVzdWFsIHRvbGVyYW5jZSBvZiBtZXNzeW5lc3MgYW5kIGVycm9ycyBpbiBT
dHlsZQorcmVmZXJlbmNlcyBhbmQgd2VsY29tZSB0byBoZWxsLCBrbm93biBhcyB0aGUgZG9tYWlu
IG9mCitkZXZlbG9waW5nIHdlYiBhcHBsaWNhdGlvbnMgOi0pCisKK0J5IGNvbnRyYXN0LCBjb25z
aWRlciB0aGlzIENTUyBzdHlsaW5nIGV4YW1wbGU6OgorCisgICAgY2xhc3MgbXkoaHRtbCk6Cisg
ICAgICAgICJteSBpbml0aWFsIGN1c3RvbSBzdHlsZSIKKyAgICAgICAgY2xhc3MgYm9keShodG1s
LmJvZHkpOgorICAgICAgICAgICAgc3R5bGUgPSBodG1sLlN0eWxlKGZvbnRfc2l6ZSA9ICIxMjAl
IikKKworICAgICAgICBjbGFzcyBoMihodG1sLmgyKToKKyAgICAgICAgICAgIHN0eWxlID0gaHRt
bC5TdHlsZShiYWNrZ3JvdW5kID0gImdyZXkiKQorCisgICAgICAgIGNsYXNzIHAoaHRtbC5wKToK
KyAgICAgICAgICAgIHN0eWxlID0gaHRtbC5TdHlsZShmb250X3dlaWdodD0iYm9sZCIpCisKKyAg
ICBkb2MgPSBteS5odG1sKAorICAgICAgICBteS5oZWFkKCksCisgICAgICAgIG15LmJvZHkoCisg
ICAgICAgICAgICBteS5oMigiaGVsbG8gd29ybGQiKSwKKyAgICAgICAgICAgIG15LnAoImJvbGQg
YXMgYm9sZCBjYW4iKQorICAgICAgICApCisgICAgKQorCisgICAgcHJpbnQgZG9jLnVuaWNvZGUo
aW5kZW50PTIpCisKK1RoaXMgd2lsbCBnaXZlIHlvdSBhIHNtYWxsJ24gbWVhbiBzZWxmIGNvbnRh
aW5lZAorcmVwcmVzZW5hdGlvbiBieSBkZWZhdWx0OjoKKworICAgIDxodG1sPgorICAgICAgPGhl
YWQvPgorICAgICAgPGJvZHkgc3R5bGU9ImZvbnQtc2l6ZTogMTIwJSI+CisgICAgICAgIDxoMiBz
dHlsZT0iYmFja2dyb3VuZDogZ3JleSI+aGVsbG8gd29ybGQ8L2gyPgorICAgICAgICA8cCBzdHls
ZT0iZm9udC13ZWlnaHQ6IGJvbGQiPmJvbGQgYXMgYm9sZCBjYW48L3A+PC9ib2R5PjwvaHRtbD4K
KworTW9zdCBpbXBvcnRhbnRseSwgbm90ZSB0aGF0IHRoZSBpbmxpbmUtc3R5bGluZyBpcyBqdXN0
IGFuCitpbXBsZW1lbnRhdGlvbiBkZXRhaWwgb2YgdGhlIHVuaWNvZGUgc2VyaWFsaXphdGlvbiBj
b2RlLgorWW91IGNhbiBlYXNpbHkgbW9kaWZ5IHRoZSBzZXJpYWxpemF0aW9uIHRvIHB1dCB5b3Vy
IHN0eWxpbmcgaW50byB0aGUKK2BgaHRtbC5oZWFkYGAgb3IgaW4gYSBzZXBhcmF0ZSBmaWxlIGFu
ZCBhdXRvZ2VuZXJhdGUgQ1NTLWNsYXNzCituYW1lcyBvciBpZHMuCisKK0hleSwgeW91IGNvdWxk
IGV2ZW4gd3JpdGUgdGVzdHMgdGhhdCB5b3UgYXJlIHVzaW5nIGNvcnJlY3QKK3N0eWxlcyBzdWl0
YWJsZSBmb3Igc3BlY2lmaWMgYnJvd3NlciByZXF1aXJlbWVudHMuICBEaWQgaSBtZW50aW9uCit0
aGF0IHRoZSBhYmlsaXR5IHRvIGVhc2lseSB3cml0ZSB0ZXN0cyBmb3IgeW91ciBnZW5lcmF0ZWQK
K2h0bWwgYW5kIGl0cyBzZXJpYWxpemF0aW9uIGNvdWxkIGhlbHAgdG8gZGV2ZWxvcCBfc3RhYmxl
XyB1c2VyCitpbnRlcmZhY2VzPworCitNb3JlIHRvIGNvbWUgLi4uCistLS0tLS0tLS0tLS0tLS0t
CisKK0ZvciBub3csIGkgZG9uJ3QgdGhpbmsgd2Ugc2hvdWxkIHN0cml2ZSB0byBvZmZlciBtdWNo
IG1vcmUKK3RoYW4gdGhlIGFib3ZlLiAgIEhvd2V2ZXIsIGl0IGlzIHByb2JhYmx5IG5vdCBoYXJk
IHRvIG9mZmVyCisqcGFydGlhbCBzZXJpYWxpemF0aW9uKiB0byBhbGxvdyBnZW5lcmF0aW5nIG1h
eWJlIGh1bmRyZWRzIG9mCitjb21wbGV4IGh0bWwgZG9jdW1lbnRzIHBlciBzZWNvbmQuICAgQmFz
aWNhbGx5IHdlIHdvdWxkIGFsbG93CitwdXR0aW5nIGNhbGxhYmxlcyBib3RoIGFzIFRhZyBjb250
ZW50IGFuZCBhcyB2YWx1ZXMgb2YKK2F0dHJpYnV0ZXMuICBBIHNsaWdodGx5IG1vcmUgYWR2YW5j
ZWQgU2VyaWFsaXphdGlvbiB3b3VsZCB0aGVuCitwcm9kdWNlIGEgbGlzdCBvZiB1bmljb2RlIG9i
amVjdHMgaW50ZXJtaW5nbGVkIHdpdGggY2FsbGFibGVzLgorQXQgSFRUUC1SZXF1ZXN0IHRpbWUg
dGhlIGNhbGxhYmxlcyB3b3VsZCBnZXQgY2FsbGVkIHRvCitjb21wbGV0ZSB0aGUgcHJvYmFibHkg
cmVxdWVzdC1zcGVjaWZpYyBzZXJpYWxpemF0aW9uIG9mCit5b3VyIFRhZ3MuICBIdW0sIGl0J3Mg
cHJvYmFibHkgaGFyZGVyIHRvIGV4cGxhaW4gdGhpcyB0aGFuIHRvCithY3R1YWxseSBjb2RlIGl0
IDotKQorCisuLiBfYHB5LnRlc3RgOiB0ZXN0L2luZGV4Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvcHkvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1
ZTBjMTYzMGM3MzIwMzIwNDUxOTYwY2ZkNTAwYTlmZDdkN2ZjYmUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3B5L19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTU0IEBACisiIiIKK3B5bGliOiBy
YXBpZCB0ZXN0aW5nIGFuZCBkZXZlbG9wbWVudCB1dGlscworCit0aGlzIG1vZHVsZSB1c2VzIGFw
aXBrZy5weSBmb3IgbGF6eS1sb2FkaW5nIHN1YiBtb2R1bGVzCithbmQgY2xhc3Nlcy4gIFRoZSBp
bml0cGtnLWRpY3Rpb25hcnkgIGJlbG93IHNwZWNpZmllcworbmFtZS0+dmFsdWUgbWFwcGluZ3Mg
d2hlcmUgdmFsdWUgY2FuIGJlIGFub3RoZXIgbmFtZXNwYWNlCitkaWN0aW9uYXJ5IG9yIGFuIGlt
cG9ydCBwYXRoLgorCisoYykgSG9sZ2VyIEtyZWtlbCBhbmQgb3RoZXJzLCAyMDA0LTIwMTQKKyIi
IgorX192ZXJzaW9uX18gPSAnMS41LjInCisKK3RyeToKKyAgICBmcm9tIHB5Ll92ZW5kb3JlZF9w
YWNrYWdlcyBpbXBvcnQgYXBpcGtnCisgICAgbGliX25vdF9tYW5nbGVkX2J5X3BhY2thZ2VycyA9
IFRydWUKKyAgICB2ZW5kb3JfcHJlZml4ID0gJy5fdmVuZG9yZWRfcGFja2FnZXMuJworZXhjZXB0
IEltcG9ydEVycm9yOgorICAgIGltcG9ydCBhcGlwa2cKKyAgICBsaWJfbm90X21hbmdsZWRfYnlf
cGFja2FnZXJzID0gRmFsc2UKKyAgICB2ZW5kb3JfcHJlZml4ID0gJycKKworIyBzbyB0aGF0IHB5
LmVycm9yLiogaW5zdGFuY2VzIGFyZSBwaWNrbGFibGUKK2ltcG9ydCBzeXMKKworYXBpcGtnLmlu
aXRwa2coX19uYW1lX18sIGF0dHI9eydfYXBpcGtnJzogYXBpcGtnfSwgZXhwb3J0ZGVmcz17Cisg
ICAgIyBhY2Nlc3MgdG8gYWxsIHN0YW5kYXJkIGxpYiBtb2R1bGVzCisgICAgJ3N0ZCc6ICcuX3N0
ZDpzdGQnLAorICAgICMgYWNjZXNzIHRvIGFsbCBwb3NpeCBlcnJubydzIGFzIGNsYXNzZXMKKyAg
ICAnZXJyb3InOiAnLl9lcnJvcjplcnJvcicsCisKKyAgICAnX3B5ZGlyJyA6ICcuX19tZXRhaW5m
bzpweWRpcicsCisgICAgJ3ZlcnNpb24nOiAncHk6X192ZXJzaW9uX18nLCAjIGJhY2t3YXJkIGNv
bXBhdGliaWxpdHkKKworICAgICMgcHl0ZXN0LTIuMCBoYXMgYSBmbGF0IG5hbWVzcGFjZSwgd2Ug
dXNlIGFsaWFzIG1vZHVsZXMKKyAgICAjIHRvIGtlZXAgb2xkIHJlZmVyZW5jZXMgY29tcGF0aWJs
ZQorICAgICd0ZXN0JyA6ICdweXRlc3QnLAorCisgICAgIyBob29rIGludG8gdGhlIHRvcC1sZXZl
bCBzdGFuZGFyZCBsaWJyYXJ5CisgICAgJ3Byb2Nlc3MnIDogeworICAgICAgICAnX19kb2NfXycg
ICAgICAgIDogJy5fcHJvY2VzczpfX2RvY19fJywKKyAgICAgICAgJ2NtZGV4ZWMnICAgICAgICA6
ICcuX3Byb2Nlc3MuY21kZXhlYzpjbWRleGVjJywKKyAgICAgICAgJ2tpbGwnICAgICAgICAgICA6
ICcuX3Byb2Nlc3Mua2lsbHByb2M6a2lsbCcsCisgICAgICAgICdGb3JrZWRGdW5jJyAgICAgOiAn
Ll9wcm9jZXNzLmZvcmtlZGZ1bmM6Rm9ya2VkRnVuYycsCisgICAgfSwKKworICAgICdhcGlwa2cn
IDogeworICAgICAgICAnaW5pdHBrZycgICA6IHZlbmRvcl9wcmVmaXggKyAnYXBpcGtnOmluaXRw
a2cnLAorICAgICAgICAnQXBpTW9kdWxlJyA6IHZlbmRvcl9wcmVmaXggKyAnYXBpcGtnOkFwaU1v
ZHVsZScsCisgICAgfSwKKworICAgICdpbmljb25maWcnIDogeworICAgICAgICAnSW5pQ29uZmln
JyAgICAgIDogdmVuZG9yX3ByZWZpeCArICdpbmljb25maWc6SW5pQ29uZmlnJywKKyAgICAgICAg
J1BhcnNlRXJyb3InICAgICA6IHZlbmRvcl9wcmVmaXggKyAnaW5pY29uZmlnOlBhcnNlRXJyb3In
LAorICAgIH0sCisKKyAgICAncGF0aCcgOiB7CisgICAgICAgICdfX2RvY19fJyAgICAgICAgOiAn
Ll9wYXRoOl9fZG9jX18nLAorICAgICAgICAnc3Zud2MnICAgICAgICAgIDogJy5fcGF0aC5zdm53
YzpTdm5XQ0NvbW1hbmRQYXRoJywKKyAgICAgICAgJ3N2bnVybCcgICAgICAgICA6ICcuX3BhdGgu
c3ZudXJsOlN2bkNvbW1hbmRQYXRoJywKKyAgICAgICAgJ2xvY2FsJyAgICAgICAgICA6ICcuX3Bh
dGgubG9jYWw6TG9jYWxQYXRoJywKKyAgICAgICAgJ1N2bkF1dGgnICAgICAgICA6ICcuX3BhdGgu
c3Zud2M6U3ZuQXV0aCcsCisgICAgfSwKKworICAgICMgcHl0aG9uIGluc3BlY3Rpb24vY29kZS1n
ZW5lcmF0aW9uIEFQSQorICAgICdjb2RlJyA6IHsKKyAgICAgICAgJ19fZG9jX18nICAgICAgICAg
ICA6ICcuX2NvZGU6X19kb2NfXycsCisgICAgICAgICdjb21waWxlJyAgICAgICAgICAgOiAnLl9j
b2RlLnNvdXJjZTpjb21waWxlXycsCisgICAgICAgICdTb3VyY2UnICAgICAgICAgICAgOiAnLl9j
b2RlLnNvdXJjZTpTb3VyY2UnLAorICAgICAgICAnQ29kZScgICAgICAgICAgICAgIDogJy5fY29k
ZS5jb2RlOkNvZGUnLAorICAgICAgICAnRnJhbWUnICAgICAgICAgICAgIDogJy5fY29kZS5jb2Rl
OkZyYW1lJywKKyAgICAgICAgJ0V4Y2VwdGlvbkluZm8nICAgICA6ICcuX2NvZGUuY29kZTpFeGNl
cHRpb25JbmZvJywKKyAgICAgICAgJ1RyYWNlYmFjaycgICAgICAgICA6ICcuX2NvZGUuY29kZTpU
cmFjZWJhY2snLAorICAgICAgICAnZ2V0ZnNsaW5lbm8nICAgICAgIDogJy5fY29kZS5zb3VyY2U6
Z2V0ZnNsaW5lbm8nLAorICAgICAgICAnZ2V0cmF3Y29kZScgICAgICAgIDogJy5fY29kZS5jb2Rl
OmdldHJhd2NvZGUnLAorICAgICAgICAncGF0Y2hfYnVpbHRpbnMnICAgIDogJy5fY29kZS5jb2Rl
OnBhdGNoX2J1aWx0aW5zJywKKyAgICAgICAgJ3VucGF0Y2hfYnVpbHRpbnMnICA6ICcuX2NvZGUu
Y29kZTp1bnBhdGNoX2J1aWx0aW5zJywKKyAgICAgICAgJ19Bc3NlcnRpb25FcnJvcicgICA6ICcu
X2NvZGUuYXNzZXJ0aW9uOkFzc2VydGlvbkVycm9yJywKKyAgICAgICAgJ19yZWludGVycHJldF9v
bGQnICA6ICcuX2NvZGUuYXNzZXJ0aW9uOnJlaW50ZXJwcmV0X29sZCcsCisgICAgICAgICdfcmVp
bnRlcnByZXQnICAgICAgOiAnLl9jb2RlLmFzc2VydGlvbjpyZWludGVycHJldCcsCisgICAgICAg
ICdfcmVwcmNvbXBhcmUnICAgICAgOiAnLl9jb2RlLmFzc2VydGlvbjpfcmVwcmNvbXBhcmUnLAor
ICAgICAgICAnX2Zvcm1hdF9leHBsYW5hdGlvbicgOiAnLl9jb2RlLmFzc2VydGlvbjpfZm9ybWF0
X2V4cGxhbmF0aW9uJywKKyAgICB9LAorCisgICAgIyBiYWNrcG9ydHMgYW5kIGFkZGl0aW9ucyBv
ZiBidWlsdGlucworICAgICdidWlsdGluJyA6IHsKKyAgICAgICAgJ19fZG9jX18nICAgICAgICA6
ICcuX2J1aWx0aW46X19kb2NfXycsCisgICAgICAgICdlbnVtZXJhdGUnICAgICAgOiAnLl9idWls
dGluOmVudW1lcmF0ZScsCisgICAgICAgICdyZXZlcnNlZCcgICAgICAgOiAnLl9idWlsdGluOnJl
dmVyc2VkJywKKyAgICAgICAgJ3NvcnRlZCcgICAgICAgICA6ICcuX2J1aWx0aW46c29ydGVkJywK
KyAgICAgICAgJ2FueScgICAgICAgICAgICA6ICcuX2J1aWx0aW46YW55JywKKyAgICAgICAgJ2Fs
bCcgICAgICAgICAgICA6ICcuX2J1aWx0aW46YWxsJywKKyAgICAgICAgJ3NldCcgICAgICAgICAg
ICA6ICcuX2J1aWx0aW46c2V0JywKKyAgICAgICAgJ2Zyb3plbnNldCcgICAgICA6ICcuX2J1aWx0
aW46ZnJvemVuc2V0JywKKyAgICAgICAgJ0Jhc2VFeGNlcHRpb24nICA6ICcuX2J1aWx0aW46QmFz
ZUV4Y2VwdGlvbicsCisgICAgICAgICdHZW5lcmF0b3JFeGl0JyAgOiAnLl9idWlsdGluOkdlbmVy
YXRvckV4aXQnLAorICAgICAgICAnX3N5c2V4JyAgICAgICAgIDogJy5fYnVpbHRpbjpfc3lzZXgn
LAorICAgICAgICAncHJpbnRfJyAgICAgICAgIDogJy5fYnVpbHRpbjpwcmludF8nLAorICAgICAg
ICAnX3JlcmFpc2UnICAgICAgIDogJy5fYnVpbHRpbjpfcmVyYWlzZScsCisgICAgICAgICdfdHJ5
aW1wb3J0JyAgICAgOiAnLl9idWlsdGluOl90cnlpbXBvcnQnLAorICAgICAgICAnZXhlY18nICAg
ICAgICAgIDogJy5fYnVpbHRpbjpleGVjXycsCisgICAgICAgICdfYmFzZXN0cmluZycgICAgOiAn
Ll9idWlsdGluOl9iYXNlc3RyaW5nJywKKyAgICAgICAgJ190b3RleHQnICAgICAgICA6ICcuX2J1
aWx0aW46X3RvdGV4dCcsCisgICAgICAgICdfaXNieXRlcycgICAgICAgOiAnLl9idWlsdGluOl9p
c2J5dGVzJywKKyAgICAgICAgJ19pc3RleHQnICAgICAgICA6ICcuX2J1aWx0aW46X2lzdGV4dCcs
CisgICAgICAgICdfZ2V0aW1zZWxmJyAgICAgOiAnLl9idWlsdGluOl9nZXRpbXNlbGYnLAorICAg
ICAgICAnX2dldGZ1bmNkaWN0JyAgIDogJy5fYnVpbHRpbjpfZ2V0ZnVuY2RpY3QnLAorICAgICAg
ICAnX2dldGNvZGUnICAgICAgIDogJy5fYnVpbHRpbjpfZ2V0Y29kZScsCisgICAgICAgICdidWls
dGlucycgICAgICAgOiAnLl9idWlsdGluOmJ1aWx0aW5zJywKKyAgICAgICAgJ2V4ZWNmaWxlJyAg
ICAgICA6ICcuX2J1aWx0aW46ZXhlY2ZpbGUnLAorICAgICAgICAnY2FsbGFibGUnICAgICAgIDog
Jy5fYnVpbHRpbjpjYWxsYWJsZScsCisgICAgICAgICdieXRlcycgICAgICAgOiAnLl9idWlsdGlu
OmJ5dGVzJywKKyAgICAgICAgJ3RleHQnICAgICAgIDogJy5fYnVpbHRpbjp0ZXh0JywKKyAgICB9
LAorCisgICAgIyBpbnB1dC1vdXRwdXQgaGVscGluZworICAgICdpbycgOiB7CisgICAgICAgICdf
X2RvY19fJyAgICAgICAgICAgICA6ICcuX2lvOl9fZG9jX18nLAorICAgICAgICAnZHVwZmlsZScg
ICAgICAgICAgICAgOiAnLl9pby5jYXB0dXJlOmR1cGZpbGUnLAorICAgICAgICAnVGV4dElPJyAg
ICAgICAgICAgICAgOiAnLl9pby5jYXB0dXJlOlRleHRJTycsCisgICAgICAgICdCeXRlc0lPJyAg
ICAgICAgICAgICA6ICcuX2lvLmNhcHR1cmU6Qnl0ZXNJTycsCisgICAgICAgICdGRENhcHR1cmUn
ICAgICAgICAgICA6ICcuX2lvLmNhcHR1cmU6RkRDYXB0dXJlJywKKyAgICAgICAgJ1N0ZENhcHR1
cmUnICAgICAgICAgIDogJy5faW8uY2FwdHVyZTpTdGRDYXB0dXJlJywKKyAgICAgICAgJ1N0ZENh
cHR1cmVGRCcgICAgICAgIDogJy5faW8uY2FwdHVyZTpTdGRDYXB0dXJlRkQnLAorICAgICAgICAn
VGVybWluYWxXcml0ZXInICAgICAgOiAnLl9pby50ZXJtaW5hbHdyaXRlcjpUZXJtaW5hbFdyaXRl
cicsCisgICAgICAgICdhbnNpX3ByaW50JyAgICAgICAgICA6ICcuX2lvLnRlcm1pbmFsd3JpdGVy
OmFuc2lfcHJpbnQnLAorICAgICAgICAnZ2V0X3Rlcm1pbmFsX3dpZHRoJyAgOiAnLl9pby50ZXJt
aW5hbHdyaXRlcjpnZXRfdGVybWluYWxfd2lkdGgnLAorICAgICAgICAnc2FmZXJlcHInICAgICAg
ICAgICAgOiAnLl9pby5zYWZlcmVwcjpzYWZlcmVwcicsCisgICAgfSwKKworICAgICMgc21hbGwg
YW5kIG1lYW4geG1sL2h0bWwgZ2VuZXJhdGlvbgorICAgICd4bWwnIDogeworICAgICAgICAnX19k
b2NfXycgICAgICAgICAgICA6ICcuX3htbGdlbjpfX2RvY19fJywKKyAgICAgICAgJ2h0bWwnICAg
ICAgICAgICAgICAgOiAnLl94bWxnZW46aHRtbCcsCisgICAgICAgICdUYWcnICAgICAgICAgICAg
ICAgIDogJy5feG1sZ2VuOlRhZycsCisgICAgICAgICdyYXcnICAgICAgICAgICAgICAgIDogJy5f
eG1sZ2VuOnJhdycsCisgICAgICAgICdOYW1lc3BhY2UnICAgICAgICAgIDogJy5feG1sZ2VuOk5h
bWVzcGFjZScsCisgICAgICAgICdlc2NhcGUnICAgICAgICAgICAgIDogJy5feG1sZ2VuOmVzY2Fw
ZScsCisgICAgfSwKKworICAgICdsb2cnIDogeworICAgICAgICAjIGxvZ2dpbmcgQVBJICgncHJv
ZHVjZXJzJyBhbmQgJ2NvbnN1bWVycycgY29ubmVjdGVkIHZpYSBrZXl3b3JkcykKKyAgICAgICAg
J19fZG9jX18nICAgICAgICAgICAgOiAnLl9sb2c6X19kb2NfXycsCisgICAgICAgICdfYXBpd2Fy
bicgICAgICAgICAgIDogJy5fbG9nLndhcm5pbmc6X2FwaXdhcm4nLAorICAgICAgICAnUHJvZHVj
ZXInICAgICAgICAgICA6ICcuX2xvZy5sb2c6UHJvZHVjZXInLAorICAgICAgICAnc2V0Y29uc3Vt
ZXInICAgICAgICA6ICcuX2xvZy5sb2c6c2V0Y29uc3VtZXInLAorICAgICAgICAnX3NldHN0YXRl
JyAgICAgICAgICA6ICcuX2xvZy5sb2c6c2V0c3RhdGUnLAorICAgICAgICAnX2dldHN0YXRlJyAg
ICAgICAgICA6ICcuX2xvZy5sb2c6Z2V0c3RhdGUnLAorICAgICAgICAnUGF0aCcgICAgICAgICAg
ICAgICA6ICcuX2xvZy5sb2c6UGF0aCcsCisgICAgICAgICdTVERPVVQnICAgICAgICAgICAgIDog
Jy5fbG9nLmxvZzpTVERPVVQnLAorICAgICAgICAnU1RERVJSJyAgICAgICAgICAgICA6ICcuX2xv
Zy5sb2c6U1RERVJSJywKKyAgICAgICAgJ1N5c2xvZycgICAgICAgICAgICAgOiAnLl9sb2cubG9n
OlN5c2xvZycsCisgICAgfSwKKworfSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX19tZXRhaW5m
by5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvcHkvX19tZXRhaW5mby5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjU4MWViN2FmYmMy
MzFlMDI0NzZjMTI1Y2NiOWUyODllNmYzMDI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9w
eS9fX21ldGFpbmZvLnB5CkBAIC0wLDAgKzEsMiBAQAoraW1wb3J0IHB5CitweWRpciA9IHB5LnBh
dGgubG9jYWwocHkuX19maWxlX18pLmRpcnBhdGgoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9f
YnVpbHRpbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2J1aWx0aW4ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTJlZTlkNzlj
YWRjZTM5ODE3NGI2YjhiNzNkNjg1YTgzYzRiYzE3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvcHkvX2J1aWx0aW4ucHkKQEAgLTAsMCArMSwyNDggQEAKK2ltcG9ydCBzeXMKKwordHJ5Ogor
ICAgIHJldmVyc2VkID0gcmV2ZXJzZWQKK2V4Y2VwdCBOYW1lRXJyb3I6CisgICAgZGVmIHJldmVy
c2VkKHNlcXVlbmNlKToKKyAgICAgICAgIiIicmV2ZXJzZWQoc2VxdWVuY2UpIC0+IHJldmVyc2Ug
aXRlcmF0b3Igb3ZlciB2YWx1ZXMgb2YgdGhlIHNlcXVlbmNlCisKKyAgICAgICAgUmV0dXJuIGEg
cmV2ZXJzZSBpdGVyYXRvcgorICAgICAgICAiIiIKKyAgICAgICAgaWYgaGFzYXR0cihzZXF1ZW5j
ZSwgJ19fcmV2ZXJzZWRfXycpOgorICAgICAgICAgICAgcmV0dXJuIHNlcXVlbmNlLl9fcmV2ZXJz
ZWRfXygpCisgICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlcXVlbmNlLCAnX19nZXRpdGVtX18nKToK
KyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiYXJndW1lbnQgdG8gcmV2ZXJzZWQoKSBtdXN0
IGJlIGEgc2VxdWVuY2UiKQorICAgICAgICByZXR1cm4gcmV2ZXJzZWRfaXRlcmF0b3Ioc2VxdWVu
Y2UpCisKKyAgICBjbGFzcyByZXZlcnNlZF9pdGVyYXRvcihvYmplY3QpOgorCisgICAgICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBzZXEpOgorICAgICAgICAgICAgc2VsZi5zZXEgPSBzZXEKKyAgICAg
ICAgICAgIHNlbGYucmVtYWluaW5nID0gbGVuKHNlcSkKKworICAgICAgICBkZWYgX19pdGVyX18o
c2VsZik6CisgICAgICAgICAgICByZXR1cm4gc2VsZgorCisgICAgICAgIGRlZiBuZXh0KHNlbGYp
OgorICAgICAgICAgICAgaSA9IHNlbGYucmVtYWluaW5nCisgICAgICAgICAgICBpZiBpID4gMDoK
KyAgICAgICAgICAgICAgICBpIC09IDEKKyAgICAgICAgICAgICAgICBpdGVtID0gc2VsZi5zZXFb
aV0KKyAgICAgICAgICAgICAgICBzZWxmLnJlbWFpbmluZyA9IGkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gaXRlbQorICAgICAgICAgICAgcmFpc2UgU3RvcEl0ZXJhdGlvbgorCisgICAgICAgIGRl
ZiBfX2xlbmd0aF9oaW50X18oc2VsZik6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5yZW1haW5p
bmcKKwordHJ5OgorICAgIGFueSA9IGFueQorZXhjZXB0IE5hbWVFcnJvcjoKKyAgICBkZWYgYW55
KGl0ZXJhYmxlKToKKyAgICAgICAgZm9yIHggaW4gaXRlcmFibGU6CisgICAgICAgICAgICBpZiB4
OgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQorCit0
cnk6CisgICAgYWxsID0gYWxsCitleGNlcHQgTmFtZUVycm9yOgorICAgIGRlZiBhbGwoaXRlcmFi
bGUpOgorICAgICAgICBmb3IgeCBpbiBpdGVyYWJsZToKKyAgICAgICAgICAgIGlmIG5vdCB4Ogor
ICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICByZXR1cm4gVHJ1ZQorCit0cnk6
CisgICAgc29ydGVkID0gc29ydGVkCitleGNlcHQgTmFtZUVycm9yOgorICAgIGJ1aWx0aW5fY21w
ID0gY21wICMgbmVlZCB0byB1c2UgY21wIGFzIGtleXdvcmQgYXJnCisKKyAgICBkZWYgc29ydGVk
KGl0ZXJhYmxlLCBjbXA9Tm9uZSwga2V5PU5vbmUsIHJldmVyc2U9MCk6CisgICAgICAgIHVzZV9j
bXAgPSBOb25lCisgICAgICAgIGlmIGtleSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGlmIGNt
cCBpcyBOb25lOgorICAgICAgICAgICAgICAgIGRlZiB1c2VfY21wKHgsIHkpOgorICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gYnVpbHRpbl9jbXAoeFswXSwgeVswXSkKKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgZGVmIHVzZV9jbXAoeCwgeSk6CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBjbXAoeFswXSwgeVswXSkKKyAgICAgICAgICAgIGwgPSBbKGtleShlbGVtZW50
KSwgZWxlbWVudCkgZm9yIGVsZW1lbnQgaW4gaXRlcmFibGVdCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICBpZiBjbXAgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgdXNlX2NtcCA9IGNt
cAorICAgICAgICAgICAgbCA9IGxpc3QoaXRlcmFibGUpCisgICAgICAgIGlmIHVzZV9jbXAgaXMg
bm90IE5vbmU6CisgICAgICAgICAgICBsLnNvcnQodXNlX2NtcCkKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIGwuc29ydCgpCisgICAgICAgIGlmIHJldmVyc2U6CisgICAgICAgICAgICBsLnJl
dmVyc2UoKQorICAgICAgICBpZiBrZXkgaXMgbm90IE5vbmU6CisgICAgICAgICAgICByZXR1cm4g
W2VsZW1lbnQgZm9yIChfLCBlbGVtZW50KSBpbiBsXQorICAgICAgICByZXR1cm4gbAorCit0cnk6
CisgICAgc2V0LCBmcm96ZW5zZXQgPSBzZXQsIGZyb3plbnNldAorZXhjZXB0IE5hbWVFcnJvcjoK
KyAgICBmcm9tIHNldHMgaW1wb3J0IHNldCwgZnJvemVuc2V0CisKKyMgcGFzcyB0aHJvdWdoCitl
bnVtZXJhdGUgPSBlbnVtZXJhdGUKKwordHJ5OgorICAgIEJhc2VFeGNlcHRpb24gPSBCYXNlRXhj
ZXB0aW9uCitleGNlcHQgTmFtZUVycm9yOgorICAgIEJhc2VFeGNlcHRpb24gPSBFeGNlcHRpb24K
KwordHJ5OgorICAgIEdlbmVyYXRvckV4aXQgPSBHZW5lcmF0b3JFeGl0CitleGNlcHQgTmFtZUVy
cm9yOgorICAgIGNsYXNzIEdlbmVyYXRvckV4aXQoRXhjZXB0aW9uKToKKyAgICAgICAgIiIiIFRo
aXMgZXhjZXB0aW9uIGlzIG5ldmVyIHJhaXNlZCwgaXQgaXMgdGhlcmUgdG8gbWFrZSBpdCBwb3Nz
aWJsZSB0bworICAgICAgICB3cml0ZSBjb2RlIGNvbXBhdGlibGUgd2l0aCBDUHl0aG9uIDIuNSBl
dmVuIGluIGxvd2VyIENQeXRob24KKyAgICAgICAgdmVyc2lvbnMuIiIiCisgICAgICAgIHBhc3MK
KyAgICBHZW5lcmF0b3JFeGl0Ll9fbW9kdWxlX18gPSAnZXhjZXB0aW9ucycKKworX3N5c2V4ID0g
KEtleWJvYXJkSW50ZXJydXB0LCBTeXN0ZW1FeGl0LCBNZW1vcnlFcnJvciwgR2VuZXJhdG9yRXhp
dCkKKwordHJ5OgorICAgIGNhbGxhYmxlID0gY2FsbGFibGUKK2V4Y2VwdCBOYW1lRXJyb3I6Cisg
ICAgZGVmIGNhbGxhYmxlKG9iaik6CisgICAgICAgIHJldHVybiBoYXNhdHRyKG9iaiwgIl9fY2Fs
bF9fIikKKworaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6CisgICAgZXhlYyAoInByaW50
XyA9IHByaW50IDsgZXhlY189ZXhlYyIpCisgICAgaW1wb3J0IGJ1aWx0aW5zCisKKyAgICAjIHNv
bWUgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBoZWxwZXJzCisgICAgX2Jhc2VzdHJpbmcgPSBzdHIK
KyAgICBkZWYgX3RvdGV4dChvYmosIGVuY29kaW5nPU5vbmUsIGVycm9ycz1Ob25lKToKKyAgICAg
ICAgaWYgaXNpbnN0YW5jZShvYmosIGJ5dGVzKToKKyAgICAgICAgICAgIGlmIGVycm9ycyBpcyBO
b25lOgorICAgICAgICAgICAgICAgIG9iaiA9IG9iai5kZWNvZGUoZW5jb2RpbmcpCisgICAgICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG9iaiA9IG9iai5kZWNvZGUoZW5jb2RpbmcsIGVy
cm9ycykKKyAgICAgICAgZWxpZiBub3QgaXNpbnN0YW5jZShvYmosIHN0cik6CisgICAgICAgICAg
ICBvYmogPSBzdHIob2JqKQorICAgICAgICByZXR1cm4gb2JqCisKKyAgICBkZWYgX2lzYnl0ZXMo
eCk6CisgICAgICAgIHJldHVybiBpc2luc3RhbmNlKHgsIGJ5dGVzKQorICAgIGRlZiBfaXN0ZXh0
KHgpOgorICAgICAgICByZXR1cm4gaXNpbnN0YW5jZSh4LCBzdHIpCisKKyAgICB0ZXh0ID0gc3Ry
CisgICAgYnl0ZXMgPSBieXRlcworCisKKyAgICBkZWYgX2dldGltc2VsZihmdW5jdGlvbik6Cisg
ICAgICAgIHJldHVybiBnZXRhdHRyKGZ1bmN0aW9uLCAnX19zZWxmX18nLCBOb25lKQorCisgICAg
ZGVmIF9nZXRmdW5jZGljdChmdW5jdGlvbik6CisgICAgICAgIHJldHVybiBnZXRhdHRyKGZ1bmN0
aW9uLCAiX19kaWN0X18iLCBOb25lKQorCisgICAgZGVmIF9nZXRjb2RlKGZ1bmN0aW9uKToKKyAg
ICAgICAgcmV0dXJuIGdldGF0dHIoZnVuY3Rpb24sICJfX2NvZGVfXyIsIE5vbmUpCisKKyAgICBk
ZWYgZXhlY2ZpbGUoZm4sIGdsb2JzPU5vbmUsIGxvY3M9Tm9uZSk6CisgICAgICAgIGlmIGdsb2Jz
IGlzIE5vbmU6CisgICAgICAgICAgICBiYWNrID0gc3lzLl9nZXRmcmFtZSgxKQorICAgICAgICAg
ICAgZ2xvYnMgPSBiYWNrLmZfZ2xvYmFscworICAgICAgICAgICAgbG9jcyA9IGJhY2suZl9sb2Nh
bHMKKyAgICAgICAgICAgIGRlbCBiYWNrCisgICAgICAgIGVsaWYgbG9jcyBpcyBOb25lOgorICAg
ICAgICAgICAgbG9jcyA9IGdsb2JzCisgICAgICAgIGZwID0gb3BlbihmbiwgInIiKQorICAgICAg
ICB0cnk6CisgICAgICAgICAgICBzb3VyY2UgPSBmcC5yZWFkKCkKKyAgICAgICAgZmluYWxseToK
KyAgICAgICAgICAgIGZwLmNsb3NlKCkKKyAgICAgICAgY28gPSBjb21waWxlKHNvdXJjZSwgZm4s
ICJleGVjIiwgZG9udF9pbmhlcml0PVRydWUpCisgICAgICAgIGV4ZWNfKGNvLCBnbG9icywgbG9j
cykKKworZWxzZToKKyAgICBpbXBvcnQgX19idWlsdGluX18gYXMgYnVpbHRpbnMKKyAgICBfdG90
ZXh0ID0gdW5pY29kZQorICAgIF9iYXNlc3RyaW5nID0gYmFzZXN0cmluZworICAgIHRleHQgPSB1
bmljb2RlCisgICAgYnl0ZXMgPSBzdHIKKyAgICBleGVjZmlsZSA9IGV4ZWNmaWxlCisgICAgY2Fs
bGFibGUgPSBjYWxsYWJsZQorICAgIGRlZiBfaXNieXRlcyh4KToKKyAgICAgICAgcmV0dXJuIGlz
aW5zdGFuY2UoeCwgc3RyKQorICAgIGRlZiBfaXN0ZXh0KHgpOgorICAgICAgICByZXR1cm4gaXNp
bnN0YW5jZSh4LCB1bmljb2RlKQorCisgICAgZGVmIF9nZXRpbXNlbGYoZnVuY3Rpb24pOgorICAg
ICAgICByZXR1cm4gZ2V0YXR0cihmdW5jdGlvbiwgJ2ltX3NlbGYnLCBOb25lKQorCisgICAgZGVm
IF9nZXRmdW5jZGljdChmdW5jdGlvbik6CisgICAgICAgIHJldHVybiBnZXRhdHRyKGZ1bmN0aW9u
LCAiX19kaWN0X18iLCBOb25lKQorCisgICAgZGVmIF9nZXRjb2RlKGZ1bmN0aW9uKToKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIGdldGF0dHIoZnVuY3Rpb24sICJfX2NvZGVfXyIp
CisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBnZXRh
dHRyKGZ1bmN0aW9uLCAiZnVuY19jb2RlIiwgTm9uZSkKKworICAgIGRlZiBwcmludF8oKmFyZ3Ms
ICoqa3dhcmdzKToKKyAgICAgICAgIiIiIG1pbmltYWwgYmFja3BvcnQgb2YgcHkzayBwcmludCBz
dGF0ZW1lbnQuICIiIgorICAgICAgICBzZXAgPSAnICcKKyAgICAgICAgaWYgJ3NlcCcgaW4ga3dh
cmdzOgorICAgICAgICAgICAgc2VwID0ga3dhcmdzLnBvcCgnc2VwJykKKyAgICAgICAgZW5kID0g
J1xuJworICAgICAgICBpZiAnZW5kJyBpbiBrd2FyZ3M6CisgICAgICAgICAgICBlbmQgPSBrd2Fy
Z3MucG9wKCdlbmQnKQorICAgICAgICBmaWxlID0gJ2ZpbGUnIGluIGt3YXJncyBhbmQga3dhcmdz
LnBvcCgnZmlsZScpIG9yIHN5cy5zdGRvdXQKKyAgICAgICAgaWYga3dhcmdzOgorICAgICAgICAg
ICAgYXJncyA9ICIsICIuam9pbihbc3RyKHgpIGZvciB4IGluIGt3YXJnc10pCisgICAgICAgICAg
ICByYWlzZSBUeXBlRXJyb3IoImludmFsaWQga2V5d29yZCBhcmd1bWVudHM6ICVzIiAlIGFyZ3Mp
CisgICAgICAgIGF0X3N0YXJ0ID0gVHJ1ZQorICAgICAgICBmb3IgeCBpbiBhcmdzOgorICAgICAg
ICAgICAgaWYgbm90IGF0X3N0YXJ0OgorICAgICAgICAgICAgICAgIGZpbGUud3JpdGUoc2VwKQor
ICAgICAgICAgICAgZmlsZS53cml0ZShzdHIoeCkpCisgICAgICAgICAgICBhdF9zdGFydCA9IEZh
bHNlCisgICAgICAgIGZpbGUud3JpdGUoZW5kKQorCisgICAgZGVmIGV4ZWNfKG9iaiwgZ2xvYmFs
cz1Ob25lLCBsb2NhbHM9Tm9uZSk6CisgICAgICAgICIiIiBtaW5pbWFsIGJhY2twb3J0IG9mIHB5
M2sgZXhlYyBzdGF0ZW1lbnQuICIiIgorICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUK
KyAgICAgICAgaWYgZ2xvYmFscyBpcyBOb25lOgorICAgICAgICAgICAgZnJhbWUgPSBzeXMuX2dl
dGZyYW1lKDEpCisgICAgICAgICAgICBnbG9iYWxzID0gZnJhbWUuZl9nbG9iYWxzCisgICAgICAg
ICAgICBpZiBsb2NhbHMgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBsb2NhbHMgPSBmcmFtZS5m
X2xvY2FscworICAgICAgICBlbGlmIGxvY2FscyBpcyBOb25lOgorICAgICAgICAgICAgbG9jYWxz
ID0gZ2xvYmFscworICAgICAgICBleGVjMihvYmosIGdsb2JhbHMsIGxvY2FscykKKworaWYgc3lz
LnZlcnNpb25faW5mbyA+PSAoMywgMCk6CisgICAgZGVmIF9yZXJhaXNlKGNscywgdmFsLCB0Yik6
CisgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAgICAgICBhc3NlcnQgaGFzYXR0
cih2YWwsICdfX3RyYWNlYmFja19fJykKKyAgICAgICAgcmFpc2UgY2xzLndpdGhfdHJhY2ViYWNr
KHZhbCwgdGIpCitlbHNlOgorICAgIGV4ZWMgKCIiIgorZGVmIF9yZXJhaXNlKGNscywgdmFsLCB0
Yik6CisgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgcmFpc2UgY2xzLCB2YWwsIHRi
CitkZWYgZXhlYzIob2JqLCBnbG9iYWxzLCBsb2NhbHMpOgorICAgIF9fdHJhY2ViYWNraGlkZV9f
ID0gVHJ1ZQorICAgIGV4ZWMgb2JqIGluIGdsb2JhbHMsIGxvY2FscworIiIiKQorCitkZWYgX3Ry
eWltcG9ydCgqbmFtZXMpOgorICAgICIiIiByZXR1cm4gdGhlIGZpcnN0IHN1Y2Nlc3NmdWxseSBp
bXBvcnRlZCBtb2R1bGUuICIiIgorICAgIGFzc2VydCBuYW1lcworICAgIGZvciBuYW1lIGluIG5h
bWVzOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBfX2ltcG9ydF9fKG5hbWUpCisgICAgICAg
IGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgICAgIGV4Y2luZm8gPSBzeXMuZXhjX2luZm8o
KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIHN5cy5tb2R1bGVzW25hbWVdCisg
ICAgX3JlcmFpc2UoKmV4Y2luZm8pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19jb2RlL19faW5p
dF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9weS9fY29kZS9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMTVhY2Y4
NTEzMjExM2YwOTBiMWE1M2NkZDBiYWMzOWFmOTI0ZDRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9weS9fY29kZS9fX2luaXRfXy5weQpAQCAtMCwwICsxIEBACisiIiIgcHl0aG9uIGluc3Bl
Y3Rpb24vY29kZSBnZW5lcmF0aW9uIEFQSSAiIiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2Nv
ZGUvX2Fzc2VydGlvbm5ldy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2NvZGUvX2Fzc2VydGlvbm5ldy5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kMDNmMjlkODcwODE0MjgzZDNmMmQ1MzdkOTFiOGE1Mjc4MjFlZTFmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fY29kZS9fYXNzZXJ0aW9ubmV3LnB5CkBAIC0wLDAg
KzEsMzIyIEBACisiIiIKK0ZpbmQgaW50ZXJtZWRpYXRlIGV2YWx1dGF0aW9uIHJlc3VsdHMgaW4g
YXNzZXJ0IHN0YXRlbWVudHMgdGhyb3VnaCBidWlsdGluIEFTVC4KK1RoaXMgc2hvdWxkIHJlcGxh
Y2UgX2Fzc2VydGlvbm9sZC5weSBldmVudHVhbGx5LgorIiIiCisKK2ltcG9ydCBzeXMKK2ltcG9y
dCBhc3QKKworaW1wb3J0IHB5Citmcm9tIHB5Ll9jb2RlLmFzc2VydGlvbiBpbXBvcnQgX2Zvcm1h
dF9leHBsYW5hdGlvbiwgQnVpbHRpbkFzc2VydGlvbkVycm9yCisKKworZGVmIF9pc19hc3RfZXhw
cihub2RlKToKKyAgICByZXR1cm4gaXNpbnN0YW5jZShub2RlLCBhc3QuZXhwcikKK2RlZiBfaXNf
YXN0X3N0bXQobm9kZSk6CisgICAgcmV0dXJuIGlzaW5zdGFuY2Uobm9kZSwgYXN0LnN0bXQpCisK
KworY2xhc3MgRmFpbHVyZShFeGNlcHRpb24pOgorICAgICIiIkVycm9yIGZvdW5kIHdoaWxlIGlu
dGVycHJldGluZyBBU1QuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZXhwbGFuYXRpb249
IiIpOgorICAgICAgICBzZWxmLmNhdXNlID0gc3lzLmV4Y19pbmZvKCkKKyAgICAgICAgc2VsZi5l
eHBsYW5hdGlvbiA9IGV4cGxhbmF0aW9uCisKKworZGVmIGludGVycHJldChzb3VyY2UsIGZyYW1l
LCBzaG91bGRfZmFpbD1GYWxzZSk6CisgICAgbW9kID0gYXN0LnBhcnNlKHNvdXJjZSkKKyAgICB2
aXNpdG9yID0gRGVidWdJbnRlcnByZXRlcihmcmFtZSkKKyAgICB0cnk6CisgICAgICAgIHZpc2l0
b3IudmlzaXQobW9kKQorICAgIGV4Y2VwdCBGYWlsdXJlOgorICAgICAgICBmYWlsdXJlID0gc3lz
LmV4Y19pbmZvKClbMV0KKyAgICAgICAgcmV0dXJuIGdldGZhaWx1cmUoZmFpbHVyZSkKKyAgICBp
ZiBzaG91bGRfZmFpbDoKKyAgICAgICAgcmV0dXJuICgiKGFzc2VydGlvbiBmYWlsZWQsIGJ1dCB3
aGVuIGl0IHdhcyByZS1ydW4gZm9yICIKKyAgICAgICAgICAgICAgICAicHJpbnRpbmcgaW50ZXJt
ZWRpYXRlIHZhbHVlcywgaXQgZGlkIG5vdCBmYWlsLiAgU3VnZ2VzdGlvbnM6ICIKKyAgICAgICAg
ICAgICAgICAiY29tcHV0ZSBhc3NlcnQgZXhwcmVzc2lvbiBiZWZvcmUgdGhlIGFzc2VydCBvciB1
c2UgLS1uby1hc3NlcnQpIikKKworZGVmIHJ1bihvZmZlbmRpbmdfbGluZSwgZnJhbWU9Tm9uZSk6
CisgICAgaWYgZnJhbWUgaXMgTm9uZToKKyAgICAgICAgZnJhbWUgPSBweS5jb2RlLkZyYW1lKHN5
cy5fZ2V0ZnJhbWUoMSkpCisgICAgcmV0dXJuIGludGVycHJldChvZmZlbmRpbmdfbGluZSwgZnJh
bWUpCisKK2RlZiBnZXRmYWlsdXJlKGZhaWx1cmUpOgorICAgIGV4cGxhbmF0aW9uID0gX2Zvcm1h
dF9leHBsYW5hdGlvbihmYWlsdXJlLmV4cGxhbmF0aW9uKQorICAgIHZhbHVlID0gZmFpbHVyZS5j
YXVzZVsxXQorICAgIGlmIHN0cih2YWx1ZSk6CisgICAgICAgIGxpbmVzID0gZXhwbGFuYXRpb24u
c3BsaXRsaW5lcygpCisgICAgICAgIGlmIG5vdCBsaW5lczoKKyAgICAgICAgICAgIGxpbmVzLmFw
cGVuZCgiIikKKyAgICAgICAgbGluZXNbMF0gKz0gIiA8PCAlcyIgJSAodmFsdWUsKQorICAgICAg
ICBleHBsYW5hdGlvbiA9ICJcbiIuam9pbihsaW5lcykKKyAgICB0ZXh0ID0gIiVzOiAlcyIgJSAo
ZmFpbHVyZS5jYXVzZVswXS5fX25hbWVfXywgZXhwbGFuYXRpb24pCisgICAgaWYgdGV4dC5zdGFy
dHN3aXRoKCJBc3NlcnRpb25FcnJvcjogYXNzZXJ0ICIpOgorICAgICAgICB0ZXh0ID0gdGV4dFsx
NjpdCisgICAgcmV0dXJuIHRleHQKKworCitvcGVyYXRvcl9tYXAgPSB7CisgICAgYXN0LkJpdE9y
IDogInwiLAorICAgIGFzdC5CaXRYb3IgOiAiXiIsCisgICAgYXN0LkJpdEFuZCA6ICImIiwKKyAg
ICBhc3QuTFNoaWZ0IDogIjw8IiwKKyAgICBhc3QuUlNoaWZ0IDogIj4+IiwKKyAgICBhc3QuQWRk
IDogIisiLAorICAgIGFzdC5TdWIgOiAiLSIsCisgICAgYXN0Lk11bHQgOiAiKiIsCisgICAgYXN0
LkRpdiA6ICIvIiwKKyAgICBhc3QuRmxvb3JEaXYgOiAiLy8iLAorICAgIGFzdC5Nb2QgOiAiJSIs
CisgICAgYXN0LkVxIDogIj09IiwKKyAgICBhc3QuTm90RXEgOiAiIT0iLAorICAgIGFzdC5MdCA6
ICI8IiwKKyAgICBhc3QuTHRFIDogIjw9IiwKKyAgICBhc3QuR3QgOiAiPiIsCisgICAgYXN0Lkd0
RSA6ICI+PSIsCisgICAgYXN0LlBvdyA6ICIqKiIsCisgICAgYXN0LklzIDogImlzIiwKKyAgICBh
c3QuSXNOb3QgOiAiaXMgbm90IiwKKyAgICBhc3QuSW4gOiAiaW4iLAorICAgIGFzdC5Ob3RJbiA6
ICJub3QgaW4iCit9CisKK3VuYXJ5X21hcCA9IHsKKyAgICBhc3QuTm90IDogIm5vdCAlcyIsCisg
ICAgYXN0LkludmVydCA6ICJ+JXMiLAorICAgIGFzdC5VU3ViIDogIi0lcyIsCisgICAgYXN0LlVB
ZGQgOiAiKyVzIgorfQorCisKK2NsYXNzIERlYnVnSW50ZXJwcmV0ZXIoYXN0Lk5vZGVWaXNpdG9y
KToKKyAgICAiIiJJbnRlcnByZXQgQVNUIG5vZGVzIHRvIGdsZWFtIHVzZWZ1bCBkZWJ1Z2dpbmcg
aW5mb3JtYXRpb24uICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZyYW1lKToKKyAgICAg
ICAgc2VsZi5mcmFtZSA9IGZyYW1lCisKKyAgICBkZWYgZ2VuZXJpY192aXNpdChzZWxmLCBub2Rl
KToKKyAgICAgICAgIyBGYWxsYmFjayB3aGVuIHdlIGRvbid0IGhhdmUgYSBzcGVjaWFsIGltcGxl
bWVudGF0aW9uLgorICAgICAgICBpZiBfaXNfYXN0X2V4cHIobm9kZSk6CisgICAgICAgICAgICBt
b2QgPSBhc3QuRXhwcmVzc2lvbihub2RlKQorICAgICAgICAgICAgY28gPSBzZWxmLl9jb21waWxl
KG1vZCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBzZWxmLmZy
YW1lLmV2YWwoY28pCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAg
ICAgIHJhaXNlIEZhaWx1cmUoKQorICAgICAgICAgICAgZXhwbGFuYXRpb24gPSBzZWxmLmZyYW1l
LnJlcHIocmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIGV4cGxhbmF0aW9uLCByZXN1bHQKKyAg
ICAgICAgZWxpZiBfaXNfYXN0X3N0bXQobm9kZSk6CisgICAgICAgICAgICBtb2QgPSBhc3QuTW9k
dWxlKFtub2RlXSkKKyAgICAgICAgICAgIGNvID0gc2VsZi5fY29tcGlsZShtb2QsICJleGVjIikK
KyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLmZyYW1lLmV4ZWNfKGNvKQor
ICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICByYWlzZSBGYWls
dXJlKCkKKyAgICAgICAgICAgIHJldHVybiBOb25lLCBOb25lCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigiY2FuJ3QgaGFuZGxlICVzIiAlKG5vZGUsKSkK
KworICAgIGRlZiBfY29tcGlsZShzZWxmLCBzb3VyY2UsIG1vZGU9ImV2YWwiKToKKyAgICAgICAg
cmV0dXJuIGNvbXBpbGUoc291cmNlLCAiPGFzc2VydGlvbiBpbnRlcnByZXRhdGlvbj4iLCBtb2Rl
KQorCisgICAgZGVmIHZpc2l0X0V4cHIoc2VsZiwgZXhwcik6CisgICAgICAgIHJldHVybiBzZWxm
LnZpc2l0KGV4cHIudmFsdWUpCisKKyAgICBkZWYgdmlzaXRfTW9kdWxlKHNlbGYsIG1vZCk6Cisg
ICAgICAgIGZvciBzdG10IGluIG1vZC5ib2R5OgorICAgICAgICAgICAgc2VsZi52aXNpdChzdG10
KQorCisgICAgZGVmIHZpc2l0X05hbWUoc2VsZiwgbmFtZSk6CisgICAgICAgIGV4cGxhbmF0aW9u
LCByZXN1bHQgPSBzZWxmLmdlbmVyaWNfdmlzaXQobmFtZSkKKyAgICAgICAgIyBTZWUgaWYgdGhl
IG5hbWUgaXMgbG9jYWwuCisgICAgICAgIHNvdXJjZSA9ICIlciBpbiBsb2NhbHMoKSBpcyBub3Qg
Z2xvYmFscygpIiAlIChuYW1lLmlkLCkKKyAgICAgICAgY28gPSBzZWxmLl9jb21waWxlKHNvdXJj
ZSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbG9jYWwgPSBzZWxmLmZyYW1lLmV2YWwoY28p
CisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICAjIGhhdmUgdG8gYXNzdW1l
IGl0IGlzbid0CisgICAgICAgICAgICBsb2NhbCA9IEZhbHNlCisgICAgICAgIGlmIG5vdCBsb2Nh
bDoKKyAgICAgICAgICAgIHJldHVybiBuYW1lLmlkLCByZXN1bHQKKyAgICAgICAgcmV0dXJuIGV4
cGxhbmF0aW9uLCByZXN1bHQKKworICAgIGRlZiB2aXNpdF9Db21wYXJlKHNlbGYsIGNvbXApOgor
ICAgICAgICBsZWZ0ID0gY29tcC5sZWZ0CisgICAgICAgIGxlZnRfZXhwbGFuYXRpb24sIGxlZnRf
cmVzdWx0ID0gc2VsZi52aXNpdChsZWZ0KQorICAgICAgICBmb3Igb3AsIG5leHRfb3AgaW4gemlw
KGNvbXAub3BzLCBjb21wLmNvbXBhcmF0b3JzKToKKyAgICAgICAgICAgIG5leHRfZXhwbGFuYXRp
b24sIG5leHRfcmVzdWx0ID0gc2VsZi52aXNpdChuZXh0X29wKQorICAgICAgICAgICAgb3Bfc3lt
Ym9sID0gb3BlcmF0b3JfbWFwW29wLl9fY2xhc3NfX10KKyAgICAgICAgICAgIGV4cGxhbmF0aW9u
ID0gIiVzICVzICVzIiAlIChsZWZ0X2V4cGxhbmF0aW9uLCBvcF9zeW1ib2wsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dF9leHBsYW5hdGlvbikKKyAgICAgICAg
ICAgIHNvdXJjZSA9ICJfX2V4cHJpbmZvX2xlZnQgJXMgX19leHByaW5mb19yaWdodCIgJSAob3Bf
c3ltYm9sLCkKKyAgICAgICAgICAgIGNvID0gc2VsZi5fY29tcGlsZShzb3VyY2UpCisgICAgICAg
ICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5mcmFtZS5ldmFsKGNvLCBf
X2V4cHJpbmZvX2xlZnQ9bGVmdF9yZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIF9fZXhwcmluZm9fcmlnaHQ9bmV4dF9yZXN1bHQpCisgICAgICAgICAgICBl
eGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgICAgIHJhaXNlIEZhaWx1cmUoZXhwbGFuYXRp
b24pCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgaWYgbm90IHJlc3VsdDoKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVy
cnVwdDoKKyAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAg
ICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBsZWZ0X2V4cGxhbmF0aW9uLCBsZWZ0X3Jlc3Vs
dCA9IG5leHRfZXhwbGFuYXRpb24sIG5leHRfcmVzdWx0CisKKyAgICAgICAgcmNvbXAgPSBweS5j
b2RlLl9yZXByY29tcGFyZQorICAgICAgICBpZiByY29tcDoKKyAgICAgICAgICAgIHJlcyA9IHJj
b21wKG9wX3N5bWJvbCwgbGVmdF9yZXN1bHQsIG5leHRfcmVzdWx0KQorICAgICAgICAgICAgaWYg
cmVzOgorICAgICAgICAgICAgICAgIGV4cGxhbmF0aW9uID0gcmVzCisgICAgICAgIHJldHVybiBl
eHBsYW5hdGlvbiwgcmVzdWx0CisKKyAgICBkZWYgdmlzaXRfQm9vbE9wKHNlbGYsIGJvb2xvcCk6
CisgICAgICAgIGlzX29yID0gaXNpbnN0YW5jZShib29sb3Aub3AsIGFzdC5PcikKKyAgICAgICAg
ZXhwbGFuYXRpb25zID0gW10KKyAgICAgICAgZm9yIG9wZXJhbmQgaW4gYm9vbG9wLnZhbHVlczoK
KyAgICAgICAgICAgIGV4cGxhbmF0aW9uLCByZXN1bHQgPSBzZWxmLnZpc2l0KG9wZXJhbmQpCisg
ICAgICAgICAgICBleHBsYW5hdGlvbnMuYXBwZW5kKGV4cGxhbmF0aW9uKQorICAgICAgICAgICAg
aWYgcmVzdWx0ID09IGlzX29yOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIG5hbWUg
PSBpc19vciBhbmQgIiBvciAiIG9yICIgYW5kICIKKyAgICAgICAgZXhwbGFuYXRpb24gPSAiKCIg
KyBuYW1lLmpvaW4oZXhwbGFuYXRpb25zKSArICIpIgorICAgICAgICByZXR1cm4gZXhwbGFuYXRp
b24sIHJlc3VsdAorCisgICAgZGVmIHZpc2l0X1VuYXJ5T3Aoc2VsZiwgdW5hcnkpOgorICAgICAg
ICBwYXR0ZXJuID0gdW5hcnlfbWFwW3VuYXJ5Lm9wLl9fY2xhc3NfX10KKyAgICAgICAgb3BlcmFu
ZF9leHBsYW5hdGlvbiwgb3BlcmFuZF9yZXN1bHQgPSBzZWxmLnZpc2l0KHVuYXJ5Lm9wZXJhbmQp
CisgICAgICAgIGV4cGxhbmF0aW9uID0gcGF0dGVybiAlIChvcGVyYW5kX2V4cGxhbmF0aW9uLCkK
KyAgICAgICAgY28gPSBzZWxmLl9jb21waWxlKHBhdHRlcm4gJSAoIl9fZXhwcmluZm9fZXhwciIs
KSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5mcmFtZS5ldmFsKGNv
LCBfX2V4cHJpbmZvX2V4cHI9b3BlcmFuZF9yZXN1bHQpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRp
b246CisgICAgICAgICAgICByYWlzZSBGYWlsdXJlKGV4cGxhbmF0aW9uKQorICAgICAgICByZXR1
cm4gZXhwbGFuYXRpb24sIHJlc3VsdAorCisgICAgZGVmIHZpc2l0X0Jpbk9wKHNlbGYsIGJpbm9w
KToKKyAgICAgICAgbGVmdF9leHBsYW5hdGlvbiwgbGVmdF9yZXN1bHQgPSBzZWxmLnZpc2l0KGJp
bm9wLmxlZnQpCisgICAgICAgIHJpZ2h0X2V4cGxhbmF0aW9uLCByaWdodF9yZXN1bHQgPSBzZWxm
LnZpc2l0KGJpbm9wLnJpZ2h0KQorICAgICAgICBzeW1ib2wgPSBvcGVyYXRvcl9tYXBbYmlub3Au
b3AuX19jbGFzc19fXQorICAgICAgICBleHBsYW5hdGlvbiA9ICIoJXMgJXMgJXMpIiAlIChsZWZ0
X2V4cGxhbmF0aW9uLCBzeW1ib2wsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJpZ2h0X2V4cGxhbmF0aW9uKQorICAgICAgICBzb3VyY2UgPSAiX19leHByaW5mb19sZWZ0
ICVzIF9fZXhwcmluZm9fcmlnaHQiICUgKHN5bWJvbCwpCisgICAgICAgIGNvID0gc2VsZi5fY29t
cGlsZShzb3VyY2UpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuZnJh
bWUuZXZhbChjbywgX19leHByaW5mb19sZWZ0PWxlZnRfcmVzdWx0LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF9fZXhwcmluZm9fcmlnaHQ9cmlnaHRfcmVzdWx0KQorICAg
ICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgcmFpc2UgRmFpbHVyZShleHBsYW5h
dGlvbikKKyAgICAgICAgcmV0dXJuIGV4cGxhbmF0aW9uLCByZXN1bHQKKworICAgIGRlZiB2aXNp
dF9DYWxsKHNlbGYsIGNhbGwpOgorICAgICAgICBmdW5jX2V4cGxhbmF0aW9uLCBmdW5jID0gc2Vs
Zi52aXNpdChjYWxsLmZ1bmMpCisgICAgICAgIGFyZ19leHBsYW5hdGlvbnMgPSBbXQorICAgICAg
ICBucyA9IHsiX19leHByaW5mb19mdW5jIiA6IGZ1bmN9CisgICAgICAgIGFyZ3VtZW50cyA9IFtd
CisgICAgICAgIGZvciBhcmcgaW4gY2FsbC5hcmdzOgorICAgICAgICAgICAgYXJnX2V4cGxhbmF0
aW9uLCBhcmdfcmVzdWx0ID0gc2VsZi52aXNpdChhcmcpCisgICAgICAgICAgICBhcmdfbmFtZSA9
ICJfX2V4cHJpbmZvXyVzIiAlIChsZW4obnMpLCkKKyAgICAgICAgICAgIG5zW2FyZ19uYW1lXSA9
IGFyZ19yZXN1bHQKKyAgICAgICAgICAgIGFyZ3VtZW50cy5hcHBlbmQoYXJnX25hbWUpCisgICAg
ICAgICAgICBhcmdfZXhwbGFuYXRpb25zLmFwcGVuZChhcmdfZXhwbGFuYXRpb24pCisgICAgICAg
IGZvciBrZXl3b3JkIGluIGNhbGwua2V5d29yZHM6CisgICAgICAgICAgICBhcmdfZXhwbGFuYXRp
b24sIGFyZ19yZXN1bHQgPSBzZWxmLnZpc2l0KGtleXdvcmQudmFsdWUpCisgICAgICAgICAgICBh
cmdfbmFtZSA9ICJfX2V4cHJpbmZvXyVzIiAlIChsZW4obnMpLCkKKyAgICAgICAgICAgIG5zW2Fy
Z19uYW1lXSA9IGFyZ19yZXN1bHQKKyAgICAgICAgICAgIGtleXdvcmRfc291cmNlID0gIiVzPSUl
cyIgJSAoa2V5d29yZC5hcmcpCisgICAgICAgICAgICBhcmd1bWVudHMuYXBwZW5kKGtleXdvcmRf
c291cmNlICUgKGFyZ19uYW1lLCkpCisgICAgICAgICAgICBhcmdfZXhwbGFuYXRpb25zLmFwcGVu
ZChrZXl3b3JkX3NvdXJjZSAlIChhcmdfZXhwbGFuYXRpb24sKSkKKyAgICAgICAgaWYgY2FsbC5z
dGFyYXJnczoKKyAgICAgICAgICAgIGFyZ19leHBsYW5hdGlvbiwgYXJnX3Jlc3VsdCA9IHNlbGYu
dmlzaXQoY2FsbC5zdGFyYXJncykKKyAgICAgICAgICAgIGFyZ19uYW1lID0gIl9fZXhwcmluZm9f
c3RhciIKKyAgICAgICAgICAgIG5zW2FyZ19uYW1lXSA9IGFyZ19yZXN1bHQKKyAgICAgICAgICAg
IGFyZ3VtZW50cy5hcHBlbmQoIiolcyIgJSAoYXJnX25hbWUsKSkKKyAgICAgICAgICAgIGFyZ19l
eHBsYW5hdGlvbnMuYXBwZW5kKCIqJXMiICUgKGFyZ19leHBsYW5hdGlvbiwpKQorICAgICAgICBp
ZiBjYWxsLmt3YXJnczoKKyAgICAgICAgICAgIGFyZ19leHBsYW5hdGlvbiwgYXJnX3Jlc3VsdCA9
IHNlbGYudmlzaXQoY2FsbC5rd2FyZ3MpCisgICAgICAgICAgICBhcmdfbmFtZSA9ICJfX2V4cHJp
bmZvX2t3ZHMiCisgICAgICAgICAgICBuc1thcmdfbmFtZV0gPSBhcmdfcmVzdWx0CisgICAgICAg
ICAgICBhcmd1bWVudHMuYXBwZW5kKCIqKiVzIiAlIChhcmdfbmFtZSwpKQorICAgICAgICAgICAg
YXJnX2V4cGxhbmF0aW9ucy5hcHBlbmQoIioqJXMiICUgKGFyZ19leHBsYW5hdGlvbiwpKQorICAg
ICAgICBhcmdzX2V4cGxhaW5lZCA9ICIsICIuam9pbihhcmdfZXhwbGFuYXRpb25zKQorICAgICAg
ICBleHBsYW5hdGlvbiA9ICIlcyglcykiICUgKGZ1bmNfZXhwbGFuYXRpb24sIGFyZ3NfZXhwbGFp
bmVkKQorICAgICAgICBhcmdzID0gIiwgIi5qb2luKGFyZ3VtZW50cykKKyAgICAgICAgc291cmNl
ID0gIl9fZXhwcmluZm9fZnVuYyglcykiICUgKGFyZ3MsKQorICAgICAgICBjbyA9IHNlbGYuX2Nv
bXBpbGUoc291cmNlKQorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXN1bHQgPSBzZWxmLmZy
YW1lLmV2YWwoY28sICoqbnMpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAg
ICByYWlzZSBGYWlsdXJlKGV4cGxhbmF0aW9uKQorICAgICAgICBwYXR0ZXJuID0gIiVzXG57JXMg
PSAlc1xufSIKKyAgICAgICAgcmVwID0gc2VsZi5mcmFtZS5yZXByKHJlc3VsdCkKKyAgICAgICAg
ZXhwbGFuYXRpb24gPSBwYXR0ZXJuICUgKHJlcCwgcmVwLCBleHBsYW5hdGlvbikKKyAgICAgICAg
cmV0dXJuIGV4cGxhbmF0aW9uLCByZXN1bHQKKworICAgIGRlZiBfaXNfYnVpbHRpbl9uYW1lKHNl
bGYsIG5hbWUpOgorICAgICAgICBwYXR0ZXJuID0gIiVyIG5vdCBpbiBnbG9iYWxzKCkgYW5kICVy
IG5vdCBpbiBsb2NhbHMoKSIKKyAgICAgICAgc291cmNlID0gcGF0dGVybiAlIChuYW1lLmlkLCBu
YW1lLmlkKQorICAgICAgICBjbyA9IHNlbGYuX2NvbXBpbGUoc291cmNlKQorICAgICAgICB0cnk6
CisgICAgICAgICAgICByZXR1cm4gc2VsZi5mcmFtZS5ldmFsKGNvKQorICAgICAgICBleGNlcHQg
RXhjZXB0aW9uOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgdmlzaXRfQXR0
cmlidXRlKHNlbGYsIGF0dHIpOgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShhdHRyLmN0eCwg
YXN0LkxvYWQpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZ2VuZXJpY192aXNpdChhdHRyKQor
ICAgICAgICBzb3VyY2VfZXhwbGFuYXRpb24sIHNvdXJjZV9yZXN1bHQgPSBzZWxmLnZpc2l0KGF0
dHIudmFsdWUpCisgICAgICAgIGV4cGxhbmF0aW9uID0gIiVzLiVzIiAlIChzb3VyY2VfZXhwbGFu
YXRpb24sIGF0dHIuYXR0cikKKyAgICAgICAgc291cmNlID0gIl9fZXhwcmluZm9fZXhwci4lcyIg
JSAoYXR0ci5hdHRyLCkKKyAgICAgICAgY28gPSBzZWxmLl9jb21waWxlKHNvdXJjZSkKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5mcmFtZS5ldmFsKGNvLCBfX2V4cHJp
bmZvX2V4cHI9c291cmNlX3Jlc3VsdCkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAg
ICAgICAgIHJhaXNlIEZhaWx1cmUoZXhwbGFuYXRpb24pCisgICAgICAgIGV4cGxhbmF0aW9uID0g
IiVzXG57JXMgPSAlcy4lc1xufSIgJSAoc2VsZi5mcmFtZS5yZXByKHJlc3VsdCksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mcmFtZS5yZXByKHJl
c3VsdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291
cmNlX2V4cGxhbmF0aW9uLCBhdHRyLmF0dHIpCisgICAgICAgICMgQ2hlY2sgaWYgdGhlIGF0dHIg
aXMgZnJvbSBhbiBpbnN0YW5jZS4KKyAgICAgICAgc291cmNlID0gIiVyIGluIGdldGF0dHIoX19l
eHByaW5mb19leHByLCAnX19kaWN0X18nLCB7fSkiCisgICAgICAgIHNvdXJjZSA9IHNvdXJjZSAl
IChhdHRyLmF0dHIsKQorICAgICAgICBjbyA9IHNlbGYuX2NvbXBpbGUoc291cmNlKQorICAgICAg
ICB0cnk6CisgICAgICAgICAgICBmcm9tX2luc3RhbmNlID0gc2VsZi5mcmFtZS5ldmFsKGNvLCBf
X2V4cHJpbmZvX2V4cHI9c291cmNlX3Jlc3VsdCkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoK
KyAgICAgICAgICAgIGZyb21faW5zdGFuY2UgPSBUcnVlCisgICAgICAgIGlmIGZyb21faW5zdGFu
Y2U6CisgICAgICAgICAgICByZXAgPSBzZWxmLmZyYW1lLnJlcHIocmVzdWx0KQorICAgICAgICAg
ICAgcGF0dGVybiA9ICIlc1xueyVzID0gJXNcbn0iCisgICAgICAgICAgICBleHBsYW5hdGlvbiA9
IHBhdHRlcm4gJSAocmVwLCByZXAsIGV4cGxhbmF0aW9uKQorICAgICAgICByZXR1cm4gZXhwbGFu
YXRpb24sIHJlc3VsdAorCisgICAgZGVmIHZpc2l0X0Fzc2VydChzZWxmLCBhc3NydCk6CisgICAg
ICAgIHRlc3RfZXhwbGFuYXRpb24sIHRlc3RfcmVzdWx0ID0gc2VsZi52aXNpdChhc3NydC50ZXN0
KQorICAgICAgICBpZiB0ZXN0X2V4cGxhbmF0aW9uLnN0YXJ0c3dpdGgoIkZhbHNlXG57RmFsc2Ug
PSIpIGFuZCBcCisgICAgICAgICAgICAgICAgdGVzdF9leHBsYW5hdGlvbi5lbmRzd2l0aCgiXG4i
KToKKyAgICAgICAgICAgIHRlc3RfZXhwbGFuYXRpb24gPSB0ZXN0X2V4cGxhbmF0aW9uWzE1Oi0y
XQorICAgICAgICBleHBsYW5hdGlvbiA9ICJhc3NlcnQgJXMiICUgKHRlc3RfZXhwbGFuYXRpb24s
KQorICAgICAgICBpZiBub3QgdGVzdF9yZXN1bHQ6CisgICAgICAgICAgICB0cnk6CisgICAgICAg
ICAgICAgICAgcmFpc2UgQnVpbHRpbkFzc2VydGlvbkVycm9yCisgICAgICAgICAgICBleGNlcHQg
RXhjZXB0aW9uOgorICAgICAgICAgICAgICAgIHJhaXNlIEZhaWx1cmUoZXhwbGFuYXRpb24pCisg
ICAgICAgIHJldHVybiBleHBsYW5hdGlvbiwgdGVzdF9yZXN1bHQKKworICAgIGRlZiB2aXNpdF9B
c3NpZ24oc2VsZiwgYXNzaWduKToKKyAgICAgICAgdmFsdWVfZXhwbGFuYXRpb24sIHZhbHVlX3Jl
c3VsdCA9IHNlbGYudmlzaXQoYXNzaWduLnZhbHVlKQorICAgICAgICBleHBsYW5hdGlvbiA9ICIu
Li4gPSAlcyIgJSAodmFsdWVfZXhwbGFuYXRpb24sKQorICAgICAgICBuYW1lID0gYXN0Lk5hbWUo
Il9fZXhwcmluZm9fZXhwciIsIGFzdC5Mb2FkKCksCisgICAgICAgICAgICAgICAgICAgICAgICBs
aW5lbm89YXNzaWduLnZhbHVlLmxpbmVubywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbF9v
ZmZzZXQ9YXNzaWduLnZhbHVlLmNvbF9vZmZzZXQpCisgICAgICAgIG5ld19hc3NpZ24gPSBhc3Qu
QXNzaWduKGFzc2lnbi50YXJnZXRzLCBuYW1lLCBsaW5lbm89YXNzaWduLmxpbmVubywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX29mZnNldD1hc3NpZ24uY29sX29mZnNldCkK
KyAgICAgICAgbW9kID0gYXN0Lk1vZHVsZShbbmV3X2Fzc2lnbl0pCisgICAgICAgIGNvID0gc2Vs
Zi5fY29tcGlsZShtb2QsICJleGVjIikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5m
cmFtZS5leGVjXyhjbywgX19leHByaW5mb19leHByPXZhbHVlX3Jlc3VsdCkKKyAgICAgICAgZXhj
ZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHJhaXNlIEZhaWx1cmUoZXhwbGFuYXRpb24pCisg
ICAgICAgIHJldHVybiBleHBsYW5hdGlvbiwgdmFsdWVfcmVzdWx0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L3B5L19jb2RlL19hc3NlcnRpb25vbGQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19jb2RlL19hc3NlcnRp
b25vbGQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMWJiNzBhODc1ZDA1OWQ2NjRjNjUxODcwMTk2Mzg2NGFmYWQ4
NjU5MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2NvZGUvX2Fzc2VydGlvbm9sZC5w
eQpAQCAtMCwwICsxLDU1NiBAQAoraW1wb3J0IHB5CitpbXBvcnQgc3lzLCBpbnNwZWN0Citmcm9t
IGNvbXBpbGVyIGltcG9ydCBwYXJzZSwgYXN0LCBweWNvZGVnZW4KK2Zyb20gcHkuX2NvZGUuYXNz
ZXJ0aW9uIGltcG9ydCBCdWlsdGluQXNzZXJ0aW9uRXJyb3IsIF9mb3JtYXRfZXhwbGFuYXRpb24K
K2ltcG9ydCB0eXBlcworCitwYXNzdGhyb3VnaGV4ID0gcHkuYnVpbHRpbi5fc3lzZXgKKworY2xh
c3MgRmFpbHVyZToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbm9kZSk6CisgICAgICAgIHNlbGYu
ZXhjLCBzZWxmLnZhbHVlLCBzZWxmLnRiID0gc3lzLmV4Y19pbmZvKCkKKyAgICAgICAgc2VsZi5u
b2RlID0gbm9kZQorCitjbGFzcyBWaWV3KG9iamVjdCk6CisgICAgIiIiVmlldyBiYXNlIGNsYXNz
LgorCisgICAgSWYgQyBpcyBhIHN1YmNsYXNzIG9mIFZpZXcsIHRoZW4gQyh4KSBjcmVhdGVzIGEg
cHJveHkgb2JqZWN0IGFyb3VuZAorICAgIHRoZSBvYmplY3QgeC4gIFRoZSBhY3R1YWwgY2xhc3Mg
b2YgdGhlIHByb3h5IGlzIG5vdCBDIGluIGdlbmVyYWwsCisgICAgYnV0IGEgKnN1YmNsYXNzKiBv
ZiBDIGRldGVybWluZWQgYnkgdGhlIHJ1bGVzIGJlbG93LiAgVG8gYXZvaWQgY29uZnVzaW9uCisg
ICAgd2UgY2FsbCB2aWV3IGNsYXNzIHRoZSBjbGFzcyBvZiB0aGUgcHJveHkgKGEgc3ViY2xhc3Mg
b2YgQywgc28gb2YgVmlldykKKyAgICBhbmQgb2JqZWN0IGNsYXNzIHRoZSBjbGFzcyBvZiB4Lgor
CisgICAgQXR0cmlidXRlcyBhbmQgbWV0aG9kcyBub3QgZm91bmQgaW4gdGhlIHByb3h5IGFyZSBh
dXRvbWF0aWNhbGx5IHJlYWQgb24geC4KKyAgICBPdGhlciBvcGVyYXRpb25zIGxpa2Ugc2V0dGlu
ZyBhdHRyaWJ1dGVzIGFyZSBwZXJmb3JtZWQgb24gdGhlIHByb3h5LCBhcworICAgIGRldGVybWlu
ZWQgYnkgaXRzIHZpZXcgY2xhc3MuICBUaGUgb2JqZWN0IHggaXMgYXZhaWxhYmxlIGZyb20gdGhl
IHByb3h5CisgICAgYXMgaXRzIF9fb2JqX18gYXR0cmlidXRlLgorCisgICAgVGhlIHZpZXcgY2xh
c3Mgc2VsZWN0aW9uIGlzIGRldGVybWluZWQgYnkgdGhlIF9fdmlld19fIHR1cGxlcyBhbmQgdGhl
CisgICAgb3B0aW9uYWwgX192aWV3a2V5X18gbWV0aG9kLiAgQnkgZGVmYXVsdCwgdGhlIHNlbGVj
dGVkIHZpZXcgY2xhc3MgaXMgdGhlCisgICAgbW9zdCBzcGVjaWZpYyBzdWJjbGFzcyBvZiBDIHdo
b3NlIF9fdmlld19fIG1lbnRpb25zIHRoZSBjbGFzcyBvZiB4LgorICAgIElmIG5vIHN1Y2ggc3Vi
Y2xhc3MgaXMgZm91bmQsIHRoZSBzZWFyY2ggcHJvY2VlZHMgd2l0aCB0aGUgcGFyZW50CisgICAg
b2JqZWN0IGNsYXNzZXMuICBGb3IgZXhhbXBsZSwgQyhUcnVlKSB3aWxsIGZpcnN0IGxvb2sgZm9y
IGEgc3ViY2xhc3MKKyAgICBvZiBDIHdpdGggX192aWV3X18gPSAoLi4uLCBib29sLCAuLi4pIGFu
ZCBvbmx5IGlmIGl0IGRvZXNuJ3QgZmluZCBhbnkKKyAgICBsb29rIGZvciBvbmUgd2l0aCBfX3Zp
ZXdfXyA9ICguLi4sIGludCwgLi4uKSwgYW5kIHRoZW4gLi4uLCBvYmplY3QsLi4uCisgICAgSWYg
ZXZlcnl0aGluZyBmYWlscyB0aGUgY2xhc3MgQyBpdHNlbGYgaXMgY29uc2lkZXJlZCB0byBiZSB0
aGUgZGVmYXVsdC4KKworICAgIEFsdGVybmF0aXZlbHksIHRoZSB2aWV3IGNsYXNzIHNlbGVjdGlv
biBjYW4gYmUgZHJpdmVuIGJ5IGFub3RoZXIgYXNwZWN0CisgICAgb2YgdGhlIG9iamVjdCB4LCBp
bnN0ZWFkIG9mIHRoZSBjbGFzcyBvZiB4LCBieSBvdmVycmlkaW5nIF9fdmlld2tleV9fLgorICAg
IFNlZSBsYXN0IGV4YW1wbGUgYXQgdGhlIGVuZCBvZiB0aGlzIG1vZHVsZS4KKyAgICAiIiIKKwor
ICAgIF92aWV3Y2FjaGUgPSB7fQorICAgIF9fdmlld19fID0gKCkKKworICAgIGRlZiBfX25ld19f
KHJvb3RjbGFzcywgb2JqLCAqYXJncywgKiprd2RzKToKKyAgICAgICAgc2VsZiA9IG9iamVjdC5f
X25ld19fKHJvb3RjbGFzcykKKyAgICAgICAgc2VsZi5fX29ial9fID0gb2JqCisgICAgICAgIHNl
bGYuX19yb290Y2xhc3NfXyA9IHJvb3RjbGFzcworICAgICAgICBrZXkgPSBzZWxmLl9fdmlld2tl
eV9fKCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5fX2NsYXNzX18gPSBzZWxmLl92
aWV3Y2FjaGVba2V5XQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICBzZWxm
Ll9fY2xhc3NfXyA9IHNlbGYuX3NlbGVjdHN1YmNsYXNzKGtleSkKKyAgICAgICAgcmV0dXJuIHNl
bGYKKworICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCBhdHRyKToKKyAgICAgICAgIyBhdHRyaWJ1
dGVzIG5vdCBmb3VuZCBpbiB0aGUgbm9ybWFsIGhpZXJhcmNoeSByb290ZWQgb24gVmlldworICAg
ICAgICAjIGFyZSBsb29rZWQgdXAgaW4gdGhlIG9iamVjdCdzIHJlYWwgY2xhc3MKKyAgICAgICAg
cmV0dXJuIGdldGF0dHIoc2VsZi5fX29ial9fLCBhdHRyKQorCisgICAgZGVmIF9fdmlld2tleV9f
KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fX29ial9fLl9fY2xhc3NfXworCisgICAgZGVm
IF9fbWF0Y2hrZXlfXyhzZWxmLCBrZXksIHN1YmNsYXNzZXMpOgorICAgICAgICBpZiBpbnNwZWN0
LmlzY2xhc3Moa2V5KToKKyAgICAgICAgICAgIGtleXMgPSBpbnNwZWN0LmdldG1ybyhrZXkpCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICBrZXlzID0gW2tleV0KKyAgICAgICAgZm9yIGtleSBp
biBrZXlzOgorICAgICAgICAgICAgcmVzdWx0ID0gW0MgZm9yIEMgaW4gc3ViY2xhc3NlcyBpZiBr
ZXkgaW4gQy5fX3ZpZXdfX10KKyAgICAgICAgICAgIGlmIHJlc3VsdDoKKyAgICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0CisgICAgICAgIHJldHVybiBbXQorCisgICAgZGVmIF9zZWxlY3RzdWJj
bGFzcyhzZWxmLCBrZXkpOgorICAgICAgICBzdWJjbGFzc2VzID0gbGlzdChlbnVtc3ViY2xhc3Nl
cyhzZWxmLl9fcm9vdGNsYXNzX18pKQorICAgICAgICBmb3IgQyBpbiBzdWJjbGFzc2VzOgorICAg
ICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoQy5fX3ZpZXdfXywgdHVwbGUpOgorICAgICAgICAg
ICAgICAgIEMuX192aWV3X18gPSAoQy5fX3ZpZXdfXywpCisgICAgICAgIGNob2ljZXMgPSBzZWxm
Ll9fbWF0Y2hrZXlfXyhrZXksIHN1YmNsYXNzZXMpCisgICAgICAgIGlmIG5vdCBjaG9pY2VzOgor
ICAgICAgICAgICAgcmV0dXJuIHNlbGYuX19yb290Y2xhc3NfXworICAgICAgICBlbGlmIGxlbihj
aG9pY2VzKSA9PSAxOgorICAgICAgICAgICAgcmV0dXJuIGNob2ljZXNbMF0KKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgICMgY29tYmluZSB0aGUgbXVsdGlwbGUgY2hvaWNlcworICAgICAgICAg
ICAgcmV0dXJuIHR5cGUoJz8nLCB0dXBsZShjaG9pY2VzKSwge30pCisKKyAgICBkZWYgX19yZXBy
X18oc2VsZik6CisgICAgICAgIHJldHVybiAnJXMoJXIpJyAlIChzZWxmLl9fcm9vdGNsYXNzX18u
X19uYW1lX18sIHNlbGYuX19vYmpfXykKKworCitkZWYgZW51bXN1YmNsYXNzZXMoY2xzKToKKyAg
ICBmb3Igc3ViY2xzIGluIGNscy5fX3N1YmNsYXNzZXNfXygpOgorICAgICAgICBmb3Igc3Vic3Vi
Y2xhc3MgaW4gZW51bXN1YmNsYXNzZXMoc3ViY2xzKToKKyAgICAgICAgICAgIHlpZWxkIHN1YnN1
YmNsYXNzCisgICAgeWllbGQgY2xzCisKKworY2xhc3MgSW50ZXJwcmV0YWJsZShWaWV3KToKKyAg
ICAiIiJBIHBhcnNlIHRyZWUgbm9kZSB3aXRoIGEgZmV3IGV4dHJhIG1ldGhvZHMuIiIiCisgICAg
ZXhwbGFuYXRpb24gPSBOb25lCisKKyAgICBkZWYgaXNfYnVpbHRpbihzZWxmLCBmcmFtZSk6Cisg
ICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIGV2YWwoc2VsZiwgZnJhbWUpOgorICAgICAg
ICAjIGZhbGwtYmFjayBmb3IgdW5rbm93biBleHByZXNzaW9uIG5vZGVzCisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIGV4cHIgPSBhc3QuRXhwcmVzc2lvbihzZWxmLl9fb2JqX18pCisgICAgICAg
ICAgICBleHByLmZpbGVuYW1lID0gJzxldmFsPicKKyAgICAgICAgICAgIHNlbGYuX19vYmpfXy5m
aWxlbmFtZSA9ICc8ZXZhbD4nCisgICAgICAgICAgICBjbyA9IHB5Y29kZWdlbi5FeHByZXNzaW9u
Q29kZUdlbmVyYXRvcihleHByKS5nZXRDb2RlKCkKKyAgICAgICAgICAgIHJlc3VsdCA9IGZyYW1l
LmV2YWwoY28pCisgICAgICAgIGV4Y2VwdCBwYXNzdGhyb3VnaGV4OgorICAgICAgICAgICAgcmFp
c2UKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgcmFpc2UgRmFpbHVyZShzZWxmKQorICAg
ICAgICBzZWxmLnJlc3VsdCA9IHJlc3VsdAorICAgICAgICBzZWxmLmV4cGxhbmF0aW9uID0gc2Vs
Zi5leHBsYW5hdGlvbiBvciBmcmFtZS5yZXByKHNlbGYucmVzdWx0KQorCisgICAgZGVmIHJ1bihz
ZWxmLCBmcmFtZSk6CisgICAgICAgICMgZmFsbC1iYWNrIGZvciB1bmtub3duIHN0YXRlbWVudCBu
b2RlcworICAgICAgICB0cnk6CisgICAgICAgICAgICBleHByID0gYXN0Lk1vZHVsZShOb25lLCBh
c3QuU3RtdChbc2VsZi5fX29ial9fXSkpCisgICAgICAgICAgICBleHByLmZpbGVuYW1lID0gJzxy
dW4+JworICAgICAgICAgICAgY28gPSBweWNvZGVnZW4uTW9kdWxlQ29kZUdlbmVyYXRvcihleHBy
KS5nZXRDb2RlKCkKKyAgICAgICAgICAgIGZyYW1lLmV4ZWNfKGNvKQorICAgICAgICBleGNlcHQg
cGFzc3Rocm91Z2hleDoKKyAgICAgICAgICAgIHJhaXNlCisgICAgICAgIGV4Y2VwdDoKKyAgICAg
ICAgICAgIHJhaXNlIEZhaWx1cmUoc2VsZikKKworICAgIGRlZiBuaWNlX2V4cGxhbmF0aW9uKHNl
bGYpOgorICAgICAgICByZXR1cm4gX2Zvcm1hdF9leHBsYW5hdGlvbihzZWxmLmV4cGxhbmF0aW9u
KQorCisKK2NsYXNzIE5hbWUoSW50ZXJwcmV0YWJsZSk6CisgICAgX192aWV3X18gPSBhc3QuTmFt
ZQorCisgICAgZGVmIGlzX2xvY2FsKHNlbGYsIGZyYW1lKToKKyAgICAgICAgc291cmNlID0gJyVy
IGluIGxvY2FscygpIGlzIG5vdCBnbG9iYWxzKCknICUgc2VsZi5uYW1lCisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIHJldHVybiBmcmFtZS5pc190cnVlKGZyYW1lLmV2YWwoc291cmNlKSkKKyAg
ICAgICAgZXhjZXB0IHBhc3N0aHJvdWdoZXg6CisgICAgICAgICAgICByYWlzZQorICAgICAgICBl
eGNlcHQ6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBpc19nbG9iYWwoc2Vs
ZiwgZnJhbWUpOgorICAgICAgICBzb3VyY2UgPSAnJXIgaW4gZ2xvYmFscygpJyAlIHNlbGYubmFt
ZQorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gZnJhbWUuaXNfdHJ1ZShmcmFtZS5l
dmFsKHNvdXJjZSkpCisgICAgICAgIGV4Y2VwdCBwYXNzdGhyb3VnaGV4OgorICAgICAgICAgICAg
cmFpc2UKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBk
ZWYgaXNfYnVpbHRpbihzZWxmLCBmcmFtZSk6CisgICAgICAgIHNvdXJjZSA9ICclciBub3QgaW4g
bG9jYWxzKCkgYW5kICVyIG5vdCBpbiBnbG9iYWxzKCknICUgKAorICAgICAgICAgICAgc2VsZi5u
YW1lLCBzZWxmLm5hbWUpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBmcmFtZS5p
c190cnVlKGZyYW1lLmV2YWwoc291cmNlKSkKKyAgICAgICAgZXhjZXB0IHBhc3N0aHJvdWdoZXg6
CisgICAgICAgICAgICByYWlzZQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICByZXR1cm4g
RmFsc2UKKworICAgIGRlZiBldmFsKHNlbGYsIGZyYW1lKToKKyAgICAgICAgc3VwZXIoTmFtZSwg
c2VsZikuZXZhbChmcmFtZSkKKyAgICAgICAgaWYgbm90IHNlbGYuaXNfbG9jYWwoZnJhbWUpOgor
ICAgICAgICAgICAgc2VsZi5leHBsYW5hdGlvbiA9IHNlbGYubmFtZQorCitjbGFzcyBDb21wYXJl
KEludGVycHJldGFibGUpOgorICAgIF9fdmlld19fID0gYXN0LkNvbXBhcmUKKworICAgIGRlZiBl
dmFsKHNlbGYsIGZyYW1lKToKKyAgICAgICAgZXhwciA9IEludGVycHJldGFibGUoc2VsZi5leHBy
KQorICAgICAgICBleHByLmV2YWwoZnJhbWUpCisgICAgICAgIGZvciBvcGVyYXRpb24sIGV4cHIy
IGluIHNlbGYub3BzOgorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAncmVzdWx0Jyk6Cisg
ICAgICAgICAgICAgICAgIyBzaG9ydGN1dHRpbmcgaW4gY2hhaW5lZCBleHByZXNzaW9ucworICAg
ICAgICAgICAgICAgIGlmIG5vdCBmcmFtZS5pc190cnVlKHNlbGYucmVzdWx0KToKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGV4cHIyID0gSW50ZXJwcmV0YWJsZShleHBy
MikKKyAgICAgICAgICAgIGV4cHIyLmV2YWwoZnJhbWUpCisgICAgICAgICAgICBzZWxmLmV4cGxh
bmF0aW9uID0gIiVzICVzICVzIiAlICgKKyAgICAgICAgICAgICAgICBleHByLmV4cGxhbmF0aW9u
LCBvcGVyYXRpb24sIGV4cHIyLmV4cGxhbmF0aW9uKQorICAgICAgICAgICAgc291cmNlID0gIl9f
ZXhwcmluZm9fbGVmdCAlcyBfX2V4cHJpbmZvX3JpZ2h0IiAlIG9wZXJhdGlvbgorICAgICAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gZnJhbWUuZXZhbChzb3VyY2Us
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZXhwcmluZm9fbGVm
dD1leHByLnJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
X19leHByaW5mb19yaWdodD1leHByMi5yZXN1bHQpCisgICAgICAgICAgICBleGNlcHQgcGFzc3Ro
cm91Z2hleDoKKyAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgZXhjZXB0OgorICAg
ICAgICAgICAgICAgIHJhaXNlIEZhaWx1cmUoc2VsZikKKyAgICAgICAgICAgIGV4cHIgPSBleHBy
MgorCitjbGFzcyBBbmQoSW50ZXJwcmV0YWJsZSk6CisgICAgX192aWV3X18gPSBhc3QuQW5kCisK
KyAgICBkZWYgZXZhbChzZWxmLCBmcmFtZSk6CisgICAgICAgIGV4cGxhbmF0aW9ucyA9IFtdCisg
ICAgICAgIGZvciBleHByIGluIHNlbGYubm9kZXM6CisgICAgICAgICAgICBleHByID0gSW50ZXJw
cmV0YWJsZShleHByKQorICAgICAgICAgICAgZXhwci5ldmFsKGZyYW1lKQorICAgICAgICAgICAg
ZXhwbGFuYXRpb25zLmFwcGVuZChleHByLmV4cGxhbmF0aW9uKQorICAgICAgICAgICAgc2VsZi5y
ZXN1bHQgPSBleHByLnJlc3VsdAorICAgICAgICAgICAgaWYgbm90IGZyYW1lLmlzX3RydWUoZXhw
ci5yZXN1bHQpOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIHNlbGYuZXhwbGFuYXRp
b24gPSAnKCcgKyAnIGFuZCAnLmpvaW4oZXhwbGFuYXRpb25zKSArICcpJworCitjbGFzcyBPcihJ
bnRlcnByZXRhYmxlKToKKyAgICBfX3ZpZXdfXyA9IGFzdC5PcgorCisgICAgZGVmIGV2YWwoc2Vs
ZiwgZnJhbWUpOgorICAgICAgICBleHBsYW5hdGlvbnMgPSBbXQorICAgICAgICBmb3IgZXhwciBp
biBzZWxmLm5vZGVzOgorICAgICAgICAgICAgZXhwciA9IEludGVycHJldGFibGUoZXhwcikKKyAg
ICAgICAgICAgIGV4cHIuZXZhbChmcmFtZSkKKyAgICAgICAgICAgIGV4cGxhbmF0aW9ucy5hcHBl
bmQoZXhwci5leHBsYW5hdGlvbikKKyAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gZXhwci5yZXN1
bHQKKyAgICAgICAgICAgIGlmIGZyYW1lLmlzX3RydWUoZXhwci5yZXN1bHQpOgorICAgICAgICAg
ICAgICAgIGJyZWFrCisgICAgICAgIHNlbGYuZXhwbGFuYXRpb24gPSAnKCcgKyAnIG9yICcuam9p
bihleHBsYW5hdGlvbnMpICsgJyknCisKKworIyA9PSBVbmFyeSBvcGVyYXRpb25zID09CitrZWVw
YWxpdmUgPSBbXQorZm9yIGFzdGNsYXNzLCBhc3RwYXR0ZXJuIGluIHsKKyAgICBhc3QuTm90ICAg
IDogJ25vdCBfX2V4cHJpbmZvX2V4cHInLAorICAgIGFzdC5JbnZlcnQgOiAnKH5fX2V4cHJpbmZv
X2V4cHIpJywKKyAgICB9Lml0ZW1zKCk6CisKKyAgICBjbGFzcyBVbmFyeUFyaXRoKEludGVycHJl
dGFibGUpOgorICAgICAgICBfX3ZpZXdfXyA9IGFzdGNsYXNzCisKKyAgICAgICAgZGVmIGV2YWwo
c2VsZiwgZnJhbWUsIGFzdHBhdHRlcm49YXN0cGF0dGVybik6CisgICAgICAgICAgICBleHByID0g
SW50ZXJwcmV0YWJsZShzZWxmLmV4cHIpCisgICAgICAgICAgICBleHByLmV2YWwoZnJhbWUpCisg
ICAgICAgICAgICBzZWxmLmV4cGxhbmF0aW9uID0gYXN0cGF0dGVybi5yZXBsYWNlKCdfX2V4cHJp
bmZvX2V4cHInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBleHByLmV4cGxhbmF0aW9uKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAg
IHNlbGYucmVzdWx0ID0gZnJhbWUuZXZhbChhc3RwYXR0ZXJuLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBfX2V4cHJpbmZvX2V4cHI9ZXhwci5yZXN1bHQpCisgICAg
ICAgICAgICBleGNlcHQgcGFzc3Rocm91Z2hleDoKKyAgICAgICAgICAgICAgICByYWlzZQorICAg
ICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIHJhaXNlIEZhaWx1cmUoc2VsZikKKwor
ICAgIGtlZXBhbGl2ZS5hcHBlbmQoVW5hcnlBcml0aCkKKworIyA9PSBCaW5hcnkgb3BlcmF0aW9u
cyA9PQorZm9yIGFzdGNsYXNzLCBhc3RwYXR0ZXJuIGluIHsKKyAgICBhc3QuQWRkICAgIDogJyhf
X2V4cHJpbmZvX2xlZnQgKyBfX2V4cHJpbmZvX3JpZ2h0KScsCisgICAgYXN0LlN1YiAgICA6ICco
X19leHByaW5mb19sZWZ0IC0gX19leHByaW5mb19yaWdodCknLAorICAgIGFzdC5NdWwgICAgOiAn
KF9fZXhwcmluZm9fbGVmdCAqIF9fZXhwcmluZm9fcmlnaHQpJywKKyAgICBhc3QuRGl2ICAgIDog
JyhfX2V4cHJpbmZvX2xlZnQgLyBfX2V4cHJpbmZvX3JpZ2h0KScsCisgICAgYXN0Lk1vZCAgICA6
ICcoX19leHByaW5mb19sZWZ0ICUgX19leHByaW5mb19yaWdodCknLAorICAgIGFzdC5Qb3dlciAg
OiAnKF9fZXhwcmluZm9fbGVmdCAqKiBfX2V4cHJpbmZvX3JpZ2h0KScsCisgICAgfS5pdGVtcygp
OgorCisgICAgY2xhc3MgQmluYXJ5QXJpdGgoSW50ZXJwcmV0YWJsZSk6CisgICAgICAgIF9fdmll
d19fID0gYXN0Y2xhc3MKKworICAgICAgICBkZWYgZXZhbChzZWxmLCBmcmFtZSwgYXN0cGF0dGVy
bj1hc3RwYXR0ZXJuKToKKyAgICAgICAgICAgIGxlZnQgPSBJbnRlcnByZXRhYmxlKHNlbGYubGVm
dCkKKyAgICAgICAgICAgIGxlZnQuZXZhbChmcmFtZSkKKyAgICAgICAgICAgIHJpZ2h0ID0gSW50
ZXJwcmV0YWJsZShzZWxmLnJpZ2h0KQorICAgICAgICAgICAgcmlnaHQuZXZhbChmcmFtZSkKKyAg
ICAgICAgICAgIHNlbGYuZXhwbGFuYXRpb24gPSAoYXN0cGF0dGVybgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAucmVwbGFjZSgnX19leHByaW5mb19sZWZ0JywgIGxlZnQgLmV4cGxh
bmF0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgnX19leHBy
aW5mb19yaWdodCcsIHJpZ2h0LmV4cGxhbmF0aW9uKSkKKyAgICAgICAgICAgIHRyeToKKyAgICAg
ICAgICAgICAgICBzZWxmLnJlc3VsdCA9IGZyYW1lLmV2YWwoYXN0cGF0dGVybiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19leHByaW5mb19sZWZ0PWxlZnQucmVz
dWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2V4cHJpbmZv
X3JpZ2h0PXJpZ2h0LnJlc3VsdCkKKyAgICAgICAgICAgIGV4Y2VwdCBwYXNzdGhyb3VnaGV4Ogor
ICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAg
ICAgcmFpc2UgRmFpbHVyZShzZWxmKQorCisgICAga2VlcGFsaXZlLmFwcGVuZChCaW5hcnlBcml0
aCkKKworCitjbGFzcyBDYWxsRnVuYyhJbnRlcnByZXRhYmxlKToKKyAgICBfX3ZpZXdfXyA9IGFz
dC5DYWxsRnVuYworCisgICAgZGVmIGlzX2Jvb2woc2VsZiwgZnJhbWUpOgorICAgICAgICBzb3Vy
Y2UgPSAnaXNpbnN0YW5jZShfX2V4cHJpbmZvX3ZhbHVlLCBib29sKScKKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgcmV0dXJuIGZyYW1lLmlzX3RydWUoZnJhbWUuZXZhbChzb3VyY2UsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZXhwcmluZm9fdmFsdWU9
c2VsZi5yZXN1bHQpKQorICAgICAgICBleGNlcHQgcGFzc3Rocm91Z2hleDoKKyAgICAgICAgICAg
IHJhaXNlCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAg
ZGVmIGV2YWwoc2VsZiwgZnJhbWUpOgorICAgICAgICBub2RlID0gSW50ZXJwcmV0YWJsZShzZWxm
Lm5vZGUpCisgICAgICAgIG5vZGUuZXZhbChmcmFtZSkKKyAgICAgICAgZXhwbGFuYXRpb25zID0g
W10KKyAgICAgICAgdmFycyA9IHsnX19leHByaW5mb19mbic6IG5vZGUucmVzdWx0fQorICAgICAg
ICBzb3VyY2UgPSAnX19leHByaW5mb19mbignCisgICAgICAgIGZvciBhIGluIHNlbGYuYXJnczoK
KyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoYSwgYXN0LktleXdvcmQpOgorICAgICAgICAgICAg
ICAgIGtleXdvcmQgPSBhLm5hbWUKKyAgICAgICAgICAgICAgICBhID0gYS5leHByCisgICAgICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGtleXdvcmQgPSBOb25lCisgICAgICAgICAgICBh
ID0gSW50ZXJwcmV0YWJsZShhKQorICAgICAgICAgICAgYS5ldmFsKGZyYW1lKQorICAgICAgICAg
ICAgYXJnbmFtZSA9ICdfX2V4cHJpbmZvXyVkJyAlIGxlbih2YXJzKQorICAgICAgICAgICAgdmFy
c1thcmduYW1lXSA9IGEucmVzdWx0CisgICAgICAgICAgICBpZiBrZXl3b3JkIGlzIE5vbmU6Cisg
ICAgICAgICAgICAgICAgc291cmNlICs9IGFyZ25hbWUgKyAnLCcKKyAgICAgICAgICAgICAgICBl
eHBsYW5hdGlvbnMuYXBwZW5kKGEuZXhwbGFuYXRpb24pCisgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgIHNvdXJjZSArPSAnJXM9JXMsJyAlIChrZXl3b3JkLCBhcmduYW1lKQorICAg
ICAgICAgICAgICAgIGV4cGxhbmF0aW9ucy5hcHBlbmQoJyVzPSVzJyAlIChrZXl3b3JkLCBhLmV4
cGxhbmF0aW9uKSkKKyAgICAgICAgaWYgc2VsZi5zdGFyX2FyZ3M6CisgICAgICAgICAgICBzdGFy
X2FyZ3MgPSBJbnRlcnByZXRhYmxlKHNlbGYuc3Rhcl9hcmdzKQorICAgICAgICAgICAgc3Rhcl9h
cmdzLmV2YWwoZnJhbWUpCisgICAgICAgICAgICBhcmduYW1lID0gJ19fZXhwcmluZm9fc3RhcicK
KyAgICAgICAgICAgIHZhcnNbYXJnbmFtZV0gPSBzdGFyX2FyZ3MucmVzdWx0CisgICAgICAgICAg
ICBzb3VyY2UgKz0gJyonICsgYXJnbmFtZSArICcsJworICAgICAgICAgICAgZXhwbGFuYXRpb25z
LmFwcGVuZCgnKicgKyBzdGFyX2FyZ3MuZXhwbGFuYXRpb24pCisgICAgICAgIGlmIHNlbGYuZHN0
YXJfYXJnczoKKyAgICAgICAgICAgIGRzdGFyX2FyZ3MgPSBJbnRlcnByZXRhYmxlKHNlbGYuZHN0
YXJfYXJncykKKyAgICAgICAgICAgIGRzdGFyX2FyZ3MuZXZhbChmcmFtZSkKKyAgICAgICAgICAg
IGFyZ25hbWUgPSAnX19leHByaW5mb19rd2RzJworICAgICAgICAgICAgdmFyc1thcmduYW1lXSA9
IGRzdGFyX2FyZ3MucmVzdWx0CisgICAgICAgICAgICBzb3VyY2UgKz0gJyoqJyArIGFyZ25hbWUg
KyAnLCcKKyAgICAgICAgICAgIGV4cGxhbmF0aW9ucy5hcHBlbmQoJyoqJyArIGRzdGFyX2FyZ3Mu
ZXhwbGFuYXRpb24pCisgICAgICAgIHNlbGYuZXhwbGFuYXRpb24gPSAiJXMoJXMpIiAlICgKKyAg
ICAgICAgICAgIG5vZGUuZXhwbGFuYXRpb24sICcsICcuam9pbihleHBsYW5hdGlvbnMpKQorICAg
ICAgICBpZiBzb3VyY2UuZW5kc3dpdGgoJywnKToKKyAgICAgICAgICAgIHNvdXJjZSA9IHNvdXJj
ZVs6LTFdCisgICAgICAgIHNvdXJjZSArPSAnKScKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
c2VsZi5yZXN1bHQgPSBmcmFtZS5ldmFsKHNvdXJjZSwgKip2YXJzKQorICAgICAgICBleGNlcHQg
cGFzc3Rocm91Z2hleDoKKyAgICAgICAgICAgIHJhaXNlCisgICAgICAgIGV4Y2VwdDoKKyAgICAg
ICAgICAgIHJhaXNlIEZhaWx1cmUoc2VsZikKKyAgICAgICAgaWYgbm90IG5vZGUuaXNfYnVpbHRp
bihmcmFtZSkgb3Igbm90IHNlbGYuaXNfYm9vbChmcmFtZSk6CisgICAgICAgICAgICByID0gZnJh
bWUucmVwcihzZWxmLnJlc3VsdCkKKyAgICAgICAgICAgIHNlbGYuZXhwbGFuYXRpb24gPSAnJXNc
bnslcyA9ICVzXG59JyAlIChyLCByLCBzZWxmLmV4cGxhbmF0aW9uKQorCitjbGFzcyBHZXRhdHRy
KEludGVycHJldGFibGUpOgorICAgIF9fdmlld19fID0gYXN0LkdldGF0dHIKKworICAgIGRlZiBl
dmFsKHNlbGYsIGZyYW1lKToKKyAgICAgICAgZXhwciA9IEludGVycHJldGFibGUoc2VsZi5leHBy
KQorICAgICAgICBleHByLmV2YWwoZnJhbWUpCisgICAgICAgIHNvdXJjZSA9ICdfX2V4cHJpbmZv
X2V4cHIuJXMnICUgc2VsZi5hdHRybmFtZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxm
LnJlc3VsdCA9IGZyYW1lLmV2YWwoc291cmNlLCBfX2V4cHJpbmZvX2V4cHI9ZXhwci5yZXN1bHQp
CisgICAgICAgIGV4Y2VwdCBwYXNzdGhyb3VnaGV4OgorICAgICAgICAgICAgcmFpc2UKKyAgICAg
ICAgZXhjZXB0OgorICAgICAgICAgICAgcmFpc2UgRmFpbHVyZShzZWxmKQorICAgICAgICBzZWxm
LmV4cGxhbmF0aW9uID0gJyVzLiVzJyAlIChleHByLmV4cGxhbmF0aW9uLCBzZWxmLmF0dHJuYW1l
KQorICAgICAgICAjIGlmIHRoZSBhdHRyaWJ1dGUgY29tZXMgZnJvbSB0aGUgaW5zdGFuY2UsIGl0
cyB2YWx1ZSBpcyBpbnRlcmVzdGluZworICAgICAgICBzb3VyY2UgPSAoJ2hhc2F0dHIoX19leHBy
aW5mb19leHByLCAiX19kaWN0X18iKSBhbmQgJworICAgICAgICAgICAgICAgICAgJyVyIGluIF9f
ZXhwcmluZm9fZXhwci5fX2RpY3RfXycgJSBzZWxmLmF0dHJuYW1lKQorICAgICAgICB0cnk6Cisg
ICAgICAgICAgICBmcm9tX2luc3RhbmNlID0gZnJhbWUuaXNfdHJ1ZSgKKyAgICAgICAgICAgICAg
ICBmcmFtZS5ldmFsKHNvdXJjZSwgX19leHByaW5mb19leHByPWV4cHIucmVzdWx0KSkKKyAgICAg
ICAgZXhjZXB0IHBhc3N0aHJvdWdoZXg6CisgICAgICAgICAgICByYWlzZQorICAgICAgICBleGNl
cHQ6CisgICAgICAgICAgICBmcm9tX2luc3RhbmNlID0gVHJ1ZQorICAgICAgICBpZiBmcm9tX2lu
c3RhbmNlOgorICAgICAgICAgICAgciA9IGZyYW1lLnJlcHIoc2VsZi5yZXN1bHQpCisgICAgICAg
ICAgICBzZWxmLmV4cGxhbmF0aW9uID0gJyVzXG57JXMgPSAlc1xufScgJSAociwgciwgc2VsZi5l
eHBsYW5hdGlvbikKKworIyA9PSBSZS1pbnRlcnByZXRhdGlvbiBvZiBmdWxsIHN0YXRlbWVudHMg
PT0KKworY2xhc3MgQXNzZXJ0KEludGVycHJldGFibGUpOgorICAgIF9fdmlld19fID0gYXN0LkFz
c2VydAorCisgICAgZGVmIHJ1bihzZWxmLCBmcmFtZSk6CisgICAgICAgIHRlc3QgPSBJbnRlcnBy
ZXRhYmxlKHNlbGYudGVzdCkKKyAgICAgICAgdGVzdC5ldmFsKGZyYW1lKQorICAgICAgICAjIHNp
bXBsaWZ5ICdhc3NlcnQgRmFsc2Ugd2hlcmUgRmFsc2UgPSAuLi4nCisgICAgICAgIGlmICh0ZXN0
LmV4cGxhbmF0aW9uLnN0YXJ0c3dpdGgoJ0ZhbHNlXG57RmFsc2UgPSAnKSBhbmQKKyAgICAgICAg
ICAgIHRlc3QuZXhwbGFuYXRpb24uZW5kc3dpdGgoJ1xufScpKToKKyAgICAgICAgICAgIHRlc3Qu
ZXhwbGFuYXRpb24gPSB0ZXN0LmV4cGxhbmF0aW9uWzE1Oi0yXQorICAgICAgICAjIHByaW50IHRo
ZSByZXN1bHQgYXMgICdhc3NlcnQgPGV4cGxhbmF0aW9uPicKKyAgICAgICAgc2VsZi5yZXN1bHQg
PSB0ZXN0LnJlc3VsdAorICAgICAgICBzZWxmLmV4cGxhbmF0aW9uID0gJ2Fzc2VydCAnICsgdGVz
dC5leHBsYW5hdGlvbgorICAgICAgICBpZiBub3QgZnJhbWUuaXNfdHJ1ZSh0ZXN0LnJlc3VsdCk6
CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmFpc2UgQnVpbHRpbkFzc2VydGlv
bkVycm9yCisgICAgICAgICAgICBleGNlcHQgcGFzc3Rocm91Z2hleDoKKyAgICAgICAgICAgICAg
ICByYWlzZQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIHJhaXNlIEZhaWx1
cmUoc2VsZikKKworY2xhc3MgQXNzaWduKEludGVycHJldGFibGUpOgorICAgIF9fdmlld19fID0g
YXN0LkFzc2lnbgorCisgICAgZGVmIHJ1bihzZWxmLCBmcmFtZSk6CisgICAgICAgIGV4cHIgPSBJ
bnRlcnByZXRhYmxlKHNlbGYuZXhwcikKKyAgICAgICAgZXhwci5ldmFsKGZyYW1lKQorICAgICAg
ICBzZWxmLnJlc3VsdCA9IGV4cHIucmVzdWx0CisgICAgICAgIHNlbGYuZXhwbGFuYXRpb24gPSAn
Li4uID0gJyArIGV4cHIuZXhwbGFuYXRpb24KKyAgICAgICAgIyBmYWxsLWJhY2stcnVuIHRoZSBy
ZXN0IG9mIHRoZSBhc3NpZ25tZW50CisgICAgICAgIGFzcyA9IGFzdC5Bc3NpZ24oc2VsZi5ub2Rl
cywgYXN0Lk5hbWUoJ19fZXhwcmluZm9fZXhwcicpKQorICAgICAgICBtb2QgPSBhc3QuTW9kdWxl
KE5vbmUsIGFzdC5TdG10KFthc3NdKSkKKyAgICAgICAgbW9kLmZpbGVuYW1lID0gJzxydW4+Jwor
ICAgICAgICBjbyA9IHB5Y29kZWdlbi5Nb2R1bGVDb2RlR2VuZXJhdG9yKG1vZCkuZ2V0Q29kZSgp
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZyYW1lLmV4ZWNfKGNvLCBfX2V4cHJpbmZvX2V4
cHI9ZXhwci5yZXN1bHQpCisgICAgICAgIGV4Y2VwdCBwYXNzdGhyb3VnaGV4OgorICAgICAgICAg
ICAgcmFpc2UKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgcmFpc2UgRmFpbHVyZShzZWxm
KQorCitjbGFzcyBEaXNjYXJkKEludGVycHJldGFibGUpOgorICAgIF9fdmlld19fID0gYXN0LkRp
c2NhcmQKKworICAgIGRlZiBydW4oc2VsZiwgZnJhbWUpOgorICAgICAgICBleHByID0gSW50ZXJw
cmV0YWJsZShzZWxmLmV4cHIpCisgICAgICAgIGV4cHIuZXZhbChmcmFtZSkKKyAgICAgICAgc2Vs
Zi5yZXN1bHQgPSBleHByLnJlc3VsdAorICAgICAgICBzZWxmLmV4cGxhbmF0aW9uID0gZXhwci5l
eHBsYW5hdGlvbgorCitjbGFzcyBTdG10KEludGVycHJldGFibGUpOgorICAgIF9fdmlld19fID0g
YXN0LlN0bXQKKworICAgIGRlZiBydW4oc2VsZiwgZnJhbWUpOgorICAgICAgICBmb3Igc3RtdCBp
biBzZWxmLm5vZGVzOgorICAgICAgICAgICAgc3RtdCA9IEludGVycHJldGFibGUoc3RtdCkKKyAg
ICAgICAgICAgIHN0bXQucnVuKGZyYW1lKQorCisKK2RlZiByZXBvcnRfZmFpbHVyZShlKToKKyAg
ICBleHBsYW5hdGlvbiA9IGUubm9kZS5uaWNlX2V4cGxhbmF0aW9uKCkKKyAgICBpZiBleHBsYW5h
dGlvbjoKKyAgICAgICAgZXhwbGFuYXRpb24gPSAiLCBpbjogIiArIGV4cGxhbmF0aW9uCisgICAg
ZWxzZToKKyAgICAgICAgZXhwbGFuYXRpb24gPSAiIgorICAgIHN5cy5zdGRvdXQud3JpdGUoIiVz
OiAlcyVzXG4iICUgKGUuZXhjLl9fbmFtZV9fLCBlLnZhbHVlLCBleHBsYW5hdGlvbikpCisKK2Rl
ZiBjaGVjayhzLCBmcmFtZT1Ob25lKToKKyAgICBpZiBmcmFtZSBpcyBOb25lOgorICAgICAgICBm
cmFtZSA9IHN5cy5fZ2V0ZnJhbWUoMSkKKyAgICAgICAgZnJhbWUgPSBweS5jb2RlLkZyYW1lKGZy
YW1lKQorICAgIGV4cHIgPSBwYXJzZShzLCAnZXZhbCcpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
ZXhwciwgYXN0LkV4cHJlc3Npb24pCisgICAgbm9kZSA9IEludGVycHJldGFibGUoZXhwci5ub2Rl
KQorICAgIHRyeToKKyAgICAgICAgbm9kZS5ldmFsKGZyYW1lKQorICAgIGV4Y2VwdCBwYXNzdGhy
b3VnaGV4OgorICAgICAgICByYWlzZQorICAgIGV4Y2VwdCBGYWlsdXJlOgorICAgICAgICBlID0g
c3lzLmV4Y19pbmZvKClbMV0KKyAgICAgICAgcmVwb3J0X2ZhaWx1cmUoZSkKKyAgICBlbHNlOgor
ICAgICAgICBpZiBub3QgZnJhbWUuaXNfdHJ1ZShub2RlLnJlc3VsdCk6CisgICAgICAgICAgICBz
eXMuc3RkZXJyLndyaXRlKCJhc3NlcnRpb24gZmFpbGVkOiAlc1xuIiAlIG5vZGUubmljZV9leHBs
YW5hdGlvbigpKQorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjCisjIEFQSSAvIEVudHJ5IHBvaW50cworIyAjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworZGVmIGludGVy
cHJldChzb3VyY2UsIGZyYW1lLCBzaG91bGRfZmFpbD1GYWxzZSk6CisgICAgbW9kdWxlID0gSW50
ZXJwcmV0YWJsZShwYXJzZShzb3VyY2UsICdleGVjJykubm9kZSkKKyAgICAjcHJpbnQgImdvdCBt
b2R1bGUiLCBtb2R1bGUKKyAgICBpZiBpc2luc3RhbmNlKGZyYW1lLCB0eXBlcy5GcmFtZVR5cGUp
OgorICAgICAgICBmcmFtZSA9IHB5LmNvZGUuRnJhbWUoZnJhbWUpCisgICAgdHJ5OgorICAgICAg
ICBtb2R1bGUucnVuKGZyYW1lKQorICAgIGV4Y2VwdCBGYWlsdXJlOgorICAgICAgICBlID0gc3lz
LmV4Y19pbmZvKClbMV0KKyAgICAgICAgcmV0dXJuIGdldGZhaWx1cmUoZSkKKyAgICBleGNlcHQg
cGFzc3Rocm91Z2hleDoKKyAgICAgICAgcmFpc2UKKyAgICBleGNlcHQ6CisgICAgICAgIGltcG9y
dCB0cmFjZWJhY2sKKyAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YygpCisgICAgaWYgc2hvdWxk
X2ZhaWw6CisgICAgICAgIHJldHVybiAoIihhc3NlcnRpb24gZmFpbGVkLCBidXQgd2hlbiBpdCB3
YXMgcmUtcnVuIGZvciAiCisgICAgICAgICAgICAgICAgInByaW50aW5nIGludGVybWVkaWF0ZSB2
YWx1ZXMsIGl0IGRpZCBub3QgZmFpbC4gIFN1Z2dlc3Rpb25zOiAiCisgICAgICAgICAgICAgICAg
ImNvbXB1dGUgYXNzZXJ0IGV4cHJlc3Npb24gYmVmb3JlIHRoZSBhc3NlcnQgb3IgdXNlIC0tbm9t
YWdpYykiKQorICAgIGVsc2U6CisgICAgICAgIHJldHVybiBOb25lCisKK2RlZiBnZXRtc2coZXhj
aW5mbyk6CisgICAgaWYgaXNpbnN0YW5jZShleGNpbmZvLCB0dXBsZSk6CisgICAgICAgIGV4Y2lu
Zm8gPSBweS5jb2RlLkV4Y2VwdGlvbkluZm8oZXhjaW5mbykKKyAgICAjZnJhbWUsIGxpbmUgPSBn
ZXR0YmxpbmUodGIpCisgICAgI2ZyYW1lID0gcHkuY29kZS5GcmFtZShmcmFtZSkKKyAgICAjcmV0
dXJuIGludGVycHJldChsaW5lLCBmcmFtZSkKKworICAgIHRiID0gZXhjaW5mby50cmFjZWJhY2tb
LTFdCisgICAgc291cmNlID0gc3RyKHRiLnN0YXRlbWVudCkuc3RyaXAoKQorICAgIHggPSBpbnRl
cnByZXQoc291cmNlLCB0Yi5mcmFtZSwgc2hvdWxkX2ZhaWw9VHJ1ZSkKKyAgICBpZiBub3QgaXNp
bnN0YW5jZSh4LCBzdHIpOgorICAgICAgICByYWlzZSBUeXBlRXJyb3IoImludGVycHJldCByZXR1
cm5lZCBub24tc3RyaW5nICVyIiAlICh4LCkpCisgICAgcmV0dXJuIHgKKworZGVmIGdldGZhaWx1
cmUoZSk6CisgICAgZXhwbGFuYXRpb24gPSBlLm5vZGUubmljZV9leHBsYW5hdGlvbigpCisgICAg
aWYgc3RyKGUudmFsdWUpOgorICAgICAgICBsaW5lcyA9IGV4cGxhbmF0aW9uLnNwbGl0KCdcbicp
CisgICAgICAgIGxpbmVzWzBdICs9ICIgIDw8ICVzIiAlIChlLnZhbHVlLCkKKyAgICAgICAgZXhw
bGFuYXRpb24gPSAnXG4nLmpvaW4obGluZXMpCisgICAgdGV4dCA9ICIlczogJXMiICUgKGUuZXhj
Ll9fbmFtZV9fLCBleHBsYW5hdGlvbikKKyAgICBpZiB0ZXh0LnN0YXJ0c3dpdGgoJ0Fzc2VydGlv
bkVycm9yOiBhc3NlcnQgJyk6CisgICAgICAgIHRleHQgPSB0ZXh0WzE2Ol0KKyAgICByZXR1cm4g
dGV4dAorCitkZWYgcnVuKHMsIGZyYW1lPU5vbmUpOgorICAgIGlmIGZyYW1lIGlzIE5vbmU6Cisg
ICAgICAgIGZyYW1lID0gc3lzLl9nZXRmcmFtZSgxKQorICAgICAgICBmcmFtZSA9IHB5LmNvZGUu
RnJhbWUoZnJhbWUpCisgICAgbW9kdWxlID0gSW50ZXJwcmV0YWJsZShwYXJzZShzLCAnZXhlYycp
Lm5vZGUpCisgICAgdHJ5OgorICAgICAgICBtb2R1bGUucnVuKGZyYW1lKQorICAgIGV4Y2VwdCBG
YWlsdXJlOgorICAgICAgICBlID0gc3lzLmV4Y19pbmZvKClbMV0KKyAgICAgICAgcmVwb3J0X2Zh
aWx1cmUoZSkKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgICMgZXhhbXBsZToK
KyAgICBkZWYgZigpOgorICAgICAgICByZXR1cm4gNQorICAgIGRlZiBnKCk6CisgICAgICAgIHJl
dHVybiAzCisgICAgZGVmIGgoeCk6CisgICAgICAgIHJldHVybiAnbmV2ZXInCisgICAgY2hlY2so
ImYoKSAqIGcoKSA9PSA1IikKKyAgICBjaGVjaygibm90IGYoKSIpCisgICAgY2hlY2soIm5vdCAo
ZigpIGFuZCBnKCkgb3IgMCkiKQorICAgIGNoZWNrKCJmKCkgPT0gZygpIikKKyAgICBpID0gNAor
ICAgIGNoZWNrKCJpID09IGYoKSIpCisgICAgY2hlY2soImxlbihmKCkpID09IDAiKQorICAgIGNo
ZWNrKCJpc2luc3RhbmNlKDIrMys0LCBmbG9hdCkiKQorCisgICAgcnVuKCJ4ID0gaSIpCisgICAg
Y2hlY2soInggPT0gNSIpCisKKyAgICBydW4oImFzc2VydCBub3QgZigpLCAnb29wcyciKQorICAg
IHJ1bigiYSwgYiwgYyA9IDEsIDIiKQorICAgIHJ1bigiYSwgYiwgYyA9IGYoKSIpCisKKyAgICBj
aGVjaygibWF4KFtmKCksZygpXSkgPT0gNCIpCisgICAgY2hlY2soIidoZWxsbydbZygpXSA9PSAn
aCciKQorICAgIHJ1bigiJ2d1ayVkJyAlIGgoZigpKSIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5
L19jb2RlL19weTJ0cmFjZWJhY2sucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19jb2RlL19weTJ0cmFjZWJhY2su
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDY1ZTI3Y2I3MzA3N2JiZDMzYmMwZmFkMGQyMGE4OWU0NDNiZWY5ZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2NvZGUvX3B5MnRyYWNlYmFjay5weQpAQCAt
MCwwICsxLDc5IEBACisjIGNvcGllZCBmcm9tIHB5dGhvbi0yLjcuMydzIHRyYWNlYmFjay5weQor
IyBDSEFOR0VTOgorIyAtIHNvbWVfc3RyIGlzIHJlcGxhY2VkLCB0cnlpbmcgdG8gY3JlYXRlIHVu
aWNvZGUgc3RyaW5ncworIworaW1wb3J0IHR5cGVzCisKK2RlZiBmb3JtYXRfZXhjZXB0aW9uX29u
bHkoZXR5cGUsIHZhbHVlKToKKyAgICAiIiJGb3JtYXQgdGhlIGV4Y2VwdGlvbiBwYXJ0IG9mIGEg
dHJhY2ViYWNrLgorCisgICAgVGhlIGFyZ3VtZW50cyBhcmUgdGhlIGV4Y2VwdGlvbiB0eXBlIGFu
ZCB2YWx1ZSBzdWNoIGFzIGdpdmVuIGJ5CisgICAgc3lzLmxhc3RfdHlwZSBhbmQgc3lzLmxhc3Rf
dmFsdWUuIFRoZSByZXR1cm4gdmFsdWUgaXMgYSBsaXN0IG9mCisgICAgc3RyaW5ncywgZWFjaCBl
bmRpbmcgaW4gYSBuZXdsaW5lLgorCisgICAgTm9ybWFsbHksIHRoZSBsaXN0IGNvbnRhaW5zIGEg
c2luZ2xlIHN0cmluZzsgaG93ZXZlciwgZm9yCisgICAgU3ludGF4RXJyb3IgZXhjZXB0aW9ucywg
aXQgY29udGFpbnMgc2V2ZXJhbCBsaW5lcyB0aGF0ICh3aGVuCisgICAgcHJpbnRlZCkgZGlzcGxh
eSBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCB3aGVyZSB0aGUgc3ludGF4CisgICAgZXJyb3Ig
b2NjdXJyZWQuCisKKyAgICBUaGUgbWVzc2FnZSBpbmRpY2F0aW5nIHdoaWNoIGV4Y2VwdGlvbiBv
Y2N1cnJlZCBpcyBhbHdheXMgdGhlIGxhc3QKKyAgICBzdHJpbmcgaW4gdGhlIGxpc3QuCisKKyAg
ICAiIiIKKworICAgICMgQW4gaW5zdGFuY2Ugc2hvdWxkIG5vdCBoYXZlIGEgbWVhbmluZ2Z1bCB2
YWx1ZSBwYXJhbWV0ZXIsIGJ1dAorICAgICMgc29tZXRpbWVzIGRvZXMsIHBhcnRpY3VsYXJseSBm
b3Igc3RyaW5nIGV4Y2VwdGlvbnMsIHN1Y2ggYXMKKyAgICAjID4+PiByYWlzZSBzdHJpbmcxLCBz
dHJpbmcyICAjIGRlcHJlY2F0ZWQKKyAgICAjCisgICAgIyBDbGVhciB0aGVzZSBvdXQgZmlyc3Qg
YmVjYXVzZSBpc3N1YnR5cGUoc3RyaW5nMSwgU3ludGF4RXJyb3IpCisgICAgIyB3b3VsZCB0aHJv
dyBhbm90aGVyIGV4Y2VwdGlvbiBhbmQgbWFzayB0aGUgb3JpZ2luYWwgcHJvYmxlbS4KKyAgICBp
ZiAoaXNpbnN0YW5jZShldHlwZSwgQmFzZUV4Y2VwdGlvbikgb3IKKyAgICAgICAgaXNpbnN0YW5j
ZShldHlwZSwgdHlwZXMuSW5zdGFuY2VUeXBlKSBvcgorICAgICAgICBldHlwZSBpcyBOb25lIG9y
IHR5cGUoZXR5cGUpIGlzIHN0cik6CisgICAgICAgIHJldHVybiBbX2Zvcm1hdF9maW5hbF9leGNf
bGluZShldHlwZSwgdmFsdWUpXQorCisgICAgc3R5cGUgPSBldHlwZS5fX25hbWVfXworCisgICAg
aWYgbm90IGlzc3ViY2xhc3MoZXR5cGUsIFN5bnRheEVycm9yKToKKyAgICAgICAgcmV0dXJuIFtf
Zm9ybWF0X2ZpbmFsX2V4Y19saW5lKHN0eXBlLCB2YWx1ZSldCisKKyAgICAjIEl0IHdhcyBhIHN5
bnRheCBlcnJvcjsgc2hvdyBleGFjdGx5IHdoZXJlIHRoZSBwcm9ibGVtIHdhcyBmb3VuZC4KKyAg
ICBsaW5lcyA9IFtdCisgICAgdHJ5OgorICAgICAgICBtc2csIChmaWxlbmFtZSwgbGluZW5vLCBv
ZmZzZXQsIGJhZGxpbmUpID0gdmFsdWUuYXJncworICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAg
ICAgIHBhc3MKKyAgICBlbHNlOgorICAgICAgICBmaWxlbmFtZSA9IGZpbGVuYW1lIG9yICI8c3Ry
aW5nPiIKKyAgICAgICAgbGluZXMuYXBwZW5kKCcgIEZpbGUgIiVzIiwgbGluZSAlZFxuJyAlIChm
aWxlbmFtZSwgbGluZW5vKSkKKyAgICAgICAgaWYgYmFkbGluZSBpcyBub3QgTm9uZToKKyAgICAg
ICAgICAgIGxpbmVzLmFwcGVuZCgnICAgICVzXG4nICUgYmFkbGluZS5zdHJpcCgpKQorICAgICAg
ICAgICAgaWYgb2Zmc2V0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGNhcmV0c3BhY2Ug
PSBiYWRsaW5lLnJzdHJpcCgnXG4nKVs6b2Zmc2V0XS5sc3RyaXAoKQorICAgICAgICAgICAgICAg
ICMgbm9uLXNwYWNlIHdoaXRlc3BhY2UgKGxpa2VzIHRhYnMpIG11c3QgYmUga2VwdCBmb3IgYWxp
Z25tZW50CisgICAgICAgICAgICAgICAgY2FyZXRzcGFjZSA9ICgoYy5pc3NwYWNlKCkgYW5kIGMg
b3IgJyAnKSBmb3IgYyBpbiBjYXJldHNwYWNlKQorICAgICAgICAgICAgICAgICMgb25seSB0aHJl
ZSBzcGFjZXMgdG8gYWNjb3VudCBmb3Igb2Zmc2V0MSA9PSBwb3MgMAorICAgICAgICAgICAgICAg
IGxpbmVzLmFwcGVuZCgnICAgJXNeXG4nICUgJycuam9pbihjYXJldHNwYWNlKSkKKyAgICAgICAg
dmFsdWUgPSBtc2cKKworICAgIGxpbmVzLmFwcGVuZChfZm9ybWF0X2ZpbmFsX2V4Y19saW5lKHN0
eXBlLCB2YWx1ZSkpCisgICAgcmV0dXJuIGxpbmVzCisKK2RlZiBfZm9ybWF0X2ZpbmFsX2V4Y19s
aW5lKGV0eXBlLCB2YWx1ZSk6CisgICAgIiIiUmV0dXJuIGEgbGlzdCBvZiBhIHNpbmdsZSBsaW5l
IC0tIG5vcm1hbCBjYXNlIGZvciBmb3JtYXRfZXhjZXB0aW9uX29ubHkiIiIKKyAgICB2YWx1ZXN0
ciA9IF9zb21lX3N0cih2YWx1ZSkKKyAgICBpZiB2YWx1ZSBpcyBOb25lIG9yIG5vdCB2YWx1ZXN0
cjoKKyAgICAgICAgbGluZSA9ICIlc1xuIiAlIGV0eXBlCisgICAgZWxzZToKKyAgICAgICAgbGlu
ZSA9ICIlczogJXNcbiIgJSAoZXR5cGUsIHZhbHVlc3RyKQorICAgIHJldHVybiBsaW5lCisKK2Rl
ZiBfc29tZV9zdHIodmFsdWUpOgorICAgIHRyeToKKyAgICAgICAgcmV0dXJuIHVuaWNvZGUodmFs
dWUpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0
dXJuIHN0cih2YWx1ZSkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHBh
c3MKKyAgICByZXR1cm4gJzx1bnByaW50YWJsZSAlcyBvYmplY3Q+JyAlIHR5cGUodmFsdWUpLl9f
bmFtZV9fCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19jb2RlL2Fzc2VydGlvbi5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvcHkvX2NvZGUvYXNzZXJ0aW9uLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZmMTY0Mzc5OWM5ZTAxNWE4ZTM1
MWI4OTk1OGFlM2ViODExMWQ2NjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19jb2Rl
L2Fzc2VydGlvbi5weQpAQCAtMCwwICsxLDkwIEBACitpbXBvcnQgc3lzCitpbXBvcnQgcHkKKwor
QnVpbHRpbkFzc2VydGlvbkVycm9yID0gcHkuYnVpbHRpbi5idWlsdGlucy5Bc3NlcnRpb25FcnJv
cgorCitfcmVwcmNvbXBhcmUgPSBOb25lICMgaWYgc2V0LCB3aWxsIGJlIGNhbGxlZCBieSBhc3Nl
cnQgcmVpbnRlcnAgZm9yIGNvbXBhcmlzb24gb3BzCisKK2RlZiBfZm9ybWF0X2V4cGxhbmF0aW9u
KGV4cGxhbmF0aW9uKToKKyAgICAiIiJUaGlzIGZvcm1hdHMgYW4gZXhwbGFuYXRpb24KKworICAg
IE5vcm1hbGx5IGFsbCBlbWJlZGRlZCBuZXdsaW5lcyBhcmUgZXNjYXBlZCwgaG93ZXZlciB0aGVy
ZSBhcmUKKyAgICB0aHJlZSBleGNlcHRpb25zOiBcbnssIFxufSBhbmQgXG5+LiAgVGhlIGZpcnN0
IHR3byBhcmUgaW50ZW5kZWQKKyAgICBjb3ZlciBuZXN0ZWQgZXhwbGFuYXRpb25zLCBzZWUgZnVu
Y3Rpb24gYW5kIGF0dHJpYnV0ZSBleHBsYW5hdGlvbnMKKyAgICBmb3IgZXhhbXBsZXMgKC52aXNp
dF9DYWxsKCksIHZpc2l0X0F0dHJpYnV0ZSgpKS4gIFRoZSBsYXN0IG9uZSBpcworICAgIGZvciB3
aGVuIG9uZSBleHBsYW5hdGlvbiBuZWVkcyB0byBzcGFuIG11bHRpcGxlIGxpbmVzLCBlLmcuIHdo
ZW4KKyAgICBkaXNwbGF5aW5nIGRpZmZzLgorICAgICIiIgorICAgIHJhd19saW5lcyA9IChleHBs
YW5hdGlvbiBvciAnJykuc3BsaXQoJ1xuJykKKyAgICAjIGVzY2FwZSBuZXdsaW5lcyBub3QgZm9s
bG93ZWQgYnkgeywgfSBhbmQgfgorICAgIGxpbmVzID0gW3Jhd19saW5lc1swXV0KKyAgICBmb3Ig
bCBpbiByYXdfbGluZXNbMTpdOgorICAgICAgICBpZiBsLnN0YXJ0c3dpdGgoJ3snKSBvciBsLnN0
YXJ0c3dpdGgoJ30nKSBvciBsLnN0YXJ0c3dpdGgoJ34nKToKKyAgICAgICAgICAgIGxpbmVzLmFw
cGVuZChsKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbGluZXNbLTFdICs9ICdcXG4nICsg
bAorCisgICAgcmVzdWx0ID0gbGluZXNbOjFdCisgICAgc3RhY2sgPSBbMF0KKyAgICBzdGFja2Nu
dCA9IFswXQorICAgIGZvciBsaW5lIGluIGxpbmVzWzE6XToKKyAgICAgICAgaWYgbGluZS5zdGFy
dHN3aXRoKCd7Jyk6CisgICAgICAgICAgICBpZiBzdGFja2NudFstMV06CisgICAgICAgICAgICAg
ICAgcyA9ICdhbmQgICAnCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHMgPSAn
d2hlcmUgJworICAgICAgICAgICAgc3RhY2suYXBwZW5kKGxlbihyZXN1bHQpKQorICAgICAgICAg
ICAgc3RhY2tjbnRbLTFdICs9IDEKKyAgICAgICAgICAgIHN0YWNrY250LmFwcGVuZCgwKQorICAg
ICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICsnICsgJyAgJyoobGVuKHN0YWNrKS0xKSArIHMgKyBs
aW5lWzE6XSkKKyAgICAgICAgZWxpZiBsaW5lLnN0YXJ0c3dpdGgoJ30nKToKKyAgICAgICAgICAg
IGFzc2VydCBsaW5lLnN0YXJ0c3dpdGgoJ30nKQorICAgICAgICAgICAgc3RhY2sucG9wKCkKKyAg
ICAgICAgICAgIHN0YWNrY250LnBvcCgpCisgICAgICAgICAgICByZXN1bHRbc3RhY2tbLTFdXSAr
PSBsaW5lWzE6XQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYXNzZXJ0IGxpbmUuc3RhcnRz
d2l0aCgnficpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICcqbGVuKHN0YWNrKSArIGxp
bmVbMTpdKQorICAgIGFzc2VydCBsZW4oc3RhY2spID09IDEKKyAgICByZXR1cm4gJ1xuJy5qb2lu
KHJlc3VsdCkKKworCitjbGFzcyBBc3NlcnRpb25FcnJvcihCdWlsdGluQXNzZXJ0aW9uRXJyb3Ip
OgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncyk6CisgICAgICAgIEJ1aWx0aW5Bc3NlcnRp
b25FcnJvci5fX2luaXRfXyhzZWxmLCAqYXJncykKKyAgICAgICAgaWYgYXJnczoKKyAgICAgICAg
ICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLm1zZyA9IHN0cihhcmdzWzBdKQorICAgICAg
ICAgICAgZXhjZXB0IHB5LmJ1aWx0aW4uX3N5c2V4OgorICAgICAgICAgICAgICAgIHJhaXNlCisg
ICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgc2VsZi5tc2cgPSAiPFticm9rZW4g
X19yZXByX19dICVzIGF0ICUweGQ+IiAlKAorICAgICAgICAgICAgICAgICAgICBhcmdzWzBdLl9f
Y2xhc3NfXywgaWQoYXJnc1swXSkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmID0gcHku
Y29kZS5GcmFtZShzeXMuX2dldGZyYW1lKDEpKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgICAgIHNvdXJjZSA9IGYuY29kZS5mdWxsc291cmNlCisgICAgICAgICAgICAgICAgaWYgc291
cmNlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAg
ICAgICAgICAgICBzb3VyY2UgPSBzb3VyY2UuZ2V0c3RhdGVtZW50KGYubGluZW5vLCBhc3NlcnRp
b249VHJ1ZSkKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEluZGV4RXJyb3I6CisgICAgICAg
ICAgICAgICAgICAgICAgICBzb3VyY2UgPSBOb25lCisgICAgICAgICAgICAgICAgICAgIGVsc2U6
CisgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UgPSBzdHIoc291cmNlLmRlaW5kZW50KCkp
LnN0cmlwKCkKKyAgICAgICAgICAgIGV4Y2VwdCBweS5lcnJvci5FTk9FTlQ6CisgICAgICAgICAg
ICAgICAgc291cmNlID0gTm9uZQorICAgICAgICAgICAgICAgICMgdGhpcyBjYW4gYWxzbyBvY2N1
ciBkdXJpbmcgcmVpbnRlcnByZXRhdGlvbiwgd2hlbiB0aGUKKyAgICAgICAgICAgICAgICAjIGNv
X2ZpbGVuYW1lIGlzIHNldCB0byAiPHJ1bj4iLgorICAgICAgICAgICAgaWYgc291cmNlOgorICAg
ICAgICAgICAgICAgIHNlbGYubXNnID0gcmVpbnRlcnByZXQoc291cmNlLCBmLCBzaG91bGRfZmFp
bD1UcnVlKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLm1zZyA9ICI8
Y291bGQgbm90IGRldGVybWluZSBpbmZvcm1hdGlvbj4iCisgICAgICAgICAgICBpZiBub3Qgc2Vs
Zi5hcmdzOgorICAgICAgICAgICAgICAgIHNlbGYuYXJncyA9IChzZWxmLm1zZywpCisKK2lmIHN5
cy52ZXJzaW9uX2luZm8gPiAoMywgMCk6CisgICAgQXNzZXJ0aW9uRXJyb3IuX19tb2R1bGVfXyA9
ICJidWlsdGlucyIKKyAgICByZWludGVycHJldF9vbGQgPSAib2xkIHJlaW50ZXJwcmV0YXRpb24g
bm90IGF2YWlsYWJsZSBmb3IgcHkzIgorZWxzZToKKyAgICBmcm9tIHB5Ll9jb2RlLl9hc3NlcnRp
b25vbGQgaW1wb3J0IGludGVycHJldCBhcyByZWludGVycHJldF9vbGQKK2Zyb20gcHkuX2NvZGUu
X2Fzc2VydGlvbm5ldyBpbXBvcnQgaW50ZXJwcmV0IGFzIHJlaW50ZXJwcmV0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3B5L19jb2RlL2NvZGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19jb2RlL2NvZGUucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZGFkNzk2MjgzZmU2NGM4OWY1Zjk5ZjJiYzcyYWRjNGE3NjU3ZDIzOAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2NvZGUvY29kZS5weQpAQCAtMCwwICsxLDc5NiBAQAor
aW1wb3J0IHB5CitpbXBvcnQgc3lzCitmcm9tIGluc3BlY3QgaW1wb3J0IENPX1ZBUkFSR1MsIENP
X1ZBUktFWVdPUkRTLCBpc2NsYXNzCisKK2J1aWx0aW5fcmVwciA9IHJlcHIKKworcmVwcmxpYiA9
IHB5LmJ1aWx0aW4uX3RyeWltcG9ydCgncmVwcicsICdyZXBybGliJykKKworaWYgc3lzLnZlcnNp
b25faW5mb1swXSA+PSAzOgorICAgIGZyb20gdHJhY2ViYWNrIGltcG9ydCBmb3JtYXRfZXhjZXB0
aW9uX29ubHkKK2Vsc2U6CisgICAgZnJvbSBweS5fY29kZS5fcHkydHJhY2ViYWNrIGltcG9ydCBm
b3JtYXRfZXhjZXB0aW9uX29ubHkKKworaW1wb3J0IHRyYWNlYmFjaworCisKK2NsYXNzIENvZGUo
b2JqZWN0KToKKyAgICAiIiIgd3JhcHBlciBhcm91bmQgUHl0aG9uIGNvZGUgb2JqZWN0cyAiIiIK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgcmF3Y29kZSk6CisgICAgICAgIGlmIG5vdCBoYXNhdHRy
KHJhd2NvZGUsICJjb19maWxlbmFtZSIpOgorICAgICAgICAgICAgcmF3Y29kZSA9IHB5LmNvZGUu
Z2V0cmF3Y29kZShyYXdjb2RlKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmZpbGVu
YW1lID0gcmF3Y29kZS5jb19maWxlbmFtZQorICAgICAgICAgICAgc2VsZi5maXJzdGxpbmVubyA9
IHJhd2NvZGUuY29fZmlyc3RsaW5lbm8gLSAxCisgICAgICAgICAgICBzZWxmLm5hbWUgPSByYXdj
b2RlLmNvX25hbWUKKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAg
cmFpc2UgVHlwZUVycm9yKCJub3QgYSBjb2RlIG9iamVjdDogJXIiICUgKHJhd2NvZGUsKSkKKyAg
ICAgICAgc2VsZi5yYXcgPSByYXdjb2RlCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToK
KyAgICAgICAgcmV0dXJuIHNlbGYucmF3ID09IG90aGVyLnJhdworCisgICAgZGVmIF9fbmVfXyhz
ZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBub3Qgc2VsZiA9PSBvdGhlcgorCisgICAgQHBy
b3BlcnR5CisgICAgZGVmIHBhdGgoc2VsZik6CisgICAgICAgICIiIiByZXR1cm4gYSBwYXRoIG9i
amVjdCBwb2ludGluZyB0byBzb3VyY2UgY29kZSAobm90ZSB0aGF0IGl0CisgICAgICAgIG1pZ2h0
IG5vdCBwb2ludCB0byBhbiBhY3R1YWxseSBleGlzdGluZyBmaWxlKS4gIiIiCisgICAgICAgIHAg
PSBweS5wYXRoLmxvY2FsKHNlbGYucmF3LmNvX2ZpbGVuYW1lKQorICAgICAgICAjIG1heWJlIGRv
bid0IHRyeSB0aGlzIGNoZWNraW5nCisgICAgICAgIGlmIG5vdCBwLmNoZWNrKCk6CisgICAgICAg
ICAgICAjIFhYWCBtYXliZSB0cnkgaGFyZGVyIGxpa2UgdGhlIHdlaXJkIGxvZ2ljCisgICAgICAg
ICAgICAjIGluIHRoZSBzdGFuZGFyZCBsaWIgW2xpbmVjYWNoZS51cGRhdGVjYWNoZV0gZG9lcz8K
KyAgICAgICAgICAgIHAgPSBzZWxmLnJhdy5jb19maWxlbmFtZQorICAgICAgICByZXR1cm4gcAor
CisgICAgQHByb3BlcnR5CisgICAgZGVmIGZ1bGxzb3VyY2Uoc2VsZik6CisgICAgICAgICIiIiBy
ZXR1cm4gYSBweS5jb2RlLlNvdXJjZSBvYmplY3QgZm9yIHRoZSBmdWxsIHNvdXJjZSBmaWxlIG9m
IHRoZSBjb2RlCisgICAgICAgICIiIgorICAgICAgICBmcm9tIHB5Ll9jb2RlIGltcG9ydCBzb3Vy
Y2UKKyAgICAgICAgZnVsbCwgXyA9IHNvdXJjZS5maW5kc291cmNlKHNlbGYucmF3KQorICAgICAg
ICByZXR1cm4gZnVsbAorCisgICAgZGVmIHNvdXJjZShzZWxmKToKKyAgICAgICAgIiIiIHJldHVy
biBhIHB5LmNvZGUuU291cmNlIG9iamVjdCBmb3IgdGhlIGNvZGUgb2JqZWN0J3Mgc291cmNlIG9u
bHkKKyAgICAgICAgIiIiCisgICAgICAgICMgcmV0dXJuIHNvdXJjZSBvbmx5IGZvciB0aGF0IHBh
cnQgb2YgY29kZQorICAgICAgICByZXR1cm4gcHkuY29kZS5Tb3VyY2Uoc2VsZi5yYXcpCisKKyAg
ICBkZWYgZ2V0YXJncyhzZWxmLCB2YXI9RmFsc2UpOgorICAgICAgICAiIiIgcmV0dXJuIGEgdHVw
bGUgd2l0aCB0aGUgYXJndW1lbnQgbmFtZXMgZm9yIHRoZSBjb2RlIG9iamVjdAorCisgICAgICAg
ICAgICBpZiAndmFyJyBpcyBzZXQgVHJ1ZSBhbHNvIHJldHVybiB0aGUgbmFtZXMgb2YgdGhlIHZh
cmlhYmxlIGFuZAorICAgICAgICAgICAga2V5d29yZCBhcmd1bWVudHMgd2hlbiBwcmVzZW50Cisg
ICAgICAgICIiIgorICAgICAgICAjIGhhbmRmdWxsIHNob3J0Y3V0IGZvciBnZXR0aW5nIGFyZ3MK
KyAgICAgICAgcmF3ID0gc2VsZi5yYXcKKyAgICAgICAgYXJnY291bnQgPSByYXcuY29fYXJnY291
bnQKKyAgICAgICAgaWYgdmFyOgorICAgICAgICAgICAgYXJnY291bnQgKz0gcmF3LmNvX2ZsYWdz
ICYgQ09fVkFSQVJHUworICAgICAgICAgICAgYXJnY291bnQgKz0gcmF3LmNvX2ZsYWdzICYgQ09f
VkFSS0VZV09SRFMKKyAgICAgICAgcmV0dXJuIHJhdy5jb192YXJuYW1lc1s6YXJnY291bnRdCisK
K2NsYXNzIEZyYW1lKG9iamVjdCk6CisgICAgIiIiV3JhcHBlciBhcm91bmQgYSBQeXRob24gZnJh
bWUgaG9sZGluZyBmX2xvY2FscyBhbmQgZl9nbG9iYWxzCisgICAgaW4gd2hpY2ggZXhwcmVzc2lv
bnMgY2FuIGJlIGV2YWx1YXRlZC4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmcmFtZSk6
CisgICAgICAgIHNlbGYubGluZW5vID0gZnJhbWUuZl9saW5lbm8gLSAxCisgICAgICAgIHNlbGYu
Zl9nbG9iYWxzID0gZnJhbWUuZl9nbG9iYWxzCisgICAgICAgIHNlbGYuZl9sb2NhbHMgPSBmcmFt
ZS5mX2xvY2FscworICAgICAgICBzZWxmLnJhdyA9IGZyYW1lCisgICAgICAgIHNlbGYuY29kZSA9
IHB5LmNvZGUuQ29kZShmcmFtZS5mX2NvZGUpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgc3Rh
dGVtZW50KHNlbGYpOgorICAgICAgICAiIiIgc3RhdGVtZW50IHRoaXMgZnJhbWUgaXMgYXQgIiIi
CisgICAgICAgIGlmIHNlbGYuY29kZS5mdWxsc291cmNlIGlzIE5vbmU6CisgICAgICAgICAgICBy
ZXR1cm4gcHkuY29kZS5Tb3VyY2UoIiIpCisgICAgICAgIHJldHVybiBzZWxmLmNvZGUuZnVsbHNv
dXJjZS5nZXRzdGF0ZW1lbnQoc2VsZi5saW5lbm8pCisKKyAgICBkZWYgZXZhbChzZWxmLCBjb2Rl
LCAqKnZhcnMpOgorICAgICAgICAiIiIgZXZhbHVhdGUgJ2NvZGUnIGluIHRoZSBmcmFtZQorCisg
ICAgICAgICAgICAndmFycycgYXJlIG9wdGlvbmFsIGFkZGl0aW9uYWwgbG9jYWwgdmFyaWFibGVz
CisKKyAgICAgICAgICAgIHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgZXZhbHVhdGlvbgorICAg
ICAgICAiIiIKKyAgICAgICAgZl9sb2NhbHMgPSBzZWxmLmZfbG9jYWxzLmNvcHkoKQorICAgICAg
ICBmX2xvY2Fscy51cGRhdGUodmFycykKKyAgICAgICAgcmV0dXJuIGV2YWwoY29kZSwgc2VsZi5m
X2dsb2JhbHMsIGZfbG9jYWxzKQorCisgICAgZGVmIGV4ZWNfKHNlbGYsIGNvZGUsICoqdmFycyk6
CisgICAgICAgICIiIiBleGVjICdjb2RlJyBpbiB0aGUgZnJhbWUKKworICAgICAgICAgICAgJ3Zh
cnMnIGFyZSBvcHRpb25hOyBhZGRpdGlvbmFsIGxvY2FsIHZhcmlhYmxlcworICAgICAgICAiIiIK
KyAgICAgICAgZl9sb2NhbHMgPSBzZWxmLmZfbG9jYWxzLmNvcHkoKQorICAgICAgICBmX2xvY2Fs
cy51cGRhdGUodmFycykKKyAgICAgICAgcHkuYnVpbHRpbi5leGVjXyhjb2RlLCBzZWxmLmZfZ2xv
YmFscywgZl9sb2NhbHMpCisKKyAgICBkZWYgcmVwcihzZWxmLCBvYmplY3QpOgorICAgICAgICAi
IiIgcmV0dXJuIGEgJ3NhZmUnIChub24tcmVjdXJzaXZlLCBvbmUtbGluZSkgc3RyaW5nIHJlcHIg
Zm9yICdvYmplY3QnCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gcHkuaW8uc2FmZXJlcHIo
b2JqZWN0KQorCisgICAgZGVmIGlzX3RydWUoc2VsZiwgb2JqZWN0KToKKyAgICAgICAgcmV0dXJu
IG9iamVjdAorCisgICAgZGVmIGdldGFyZ3Moc2VsZiwgdmFyPUZhbHNlKToKKyAgICAgICAgIiIi
IHJldHVybiBhIGxpc3Qgb2YgdHVwbGVzIChuYW1lLCB2YWx1ZSkgZm9yIGFsbCBhcmd1bWVudHMK
KworICAgICAgICAgICAgaWYgJ3ZhcicgaXMgc2V0IFRydWUgYWxzbyBpbmNsdWRlIHRoZSB2YXJp
YWJsZSBhbmQga2V5d29yZAorICAgICAgICAgICAgYXJndW1lbnRzIHdoZW4gcHJlc2VudAorICAg
ICAgICAiIiIKKyAgICAgICAgcmV0dmFsID0gW10KKyAgICAgICAgZm9yIGFyZyBpbiBzZWxmLmNv
ZGUuZ2V0YXJncyh2YXIpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJldHZh
bC5hcHBlbmQoKGFyZywgc2VsZi5mX2xvY2Fsc1thcmddKSkKKyAgICAgICAgICAgIGV4Y2VwdCBL
ZXlFcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzICAgICAjIHRoaXMgY2FuIG9jY3VyIHdoZW4g
dXNpbmcgUHN5Y28KKyAgICAgICAgcmV0dXJuIHJldHZhbAorCisKK2NsYXNzIFRyYWNlYmFja0Vu
dHJ5KG9iamVjdCk6CisgICAgIiIiIGEgc2luZ2xlIGVudHJ5IGluIGEgdHJhY2ViYWNrICIiIgor
CisgICAgX3JlcHJfc3R5bGUgPSBOb25lCisgICAgZXhwcmluZm8gPSBOb25lCisKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgcmF3ZW50cnkpOgorICAgICAgICBzZWxmLl9yYXdlbnRyeSA9IHJhd2Vu
dHJ5CisgICAgICAgIHNlbGYubGluZW5vID0gcmF3ZW50cnkudGJfbGluZW5vIC0gMQorCisgICAg
ZGVmIHNldF9yZXByX3N0eWxlKHNlbGYsIG1vZGUpOgorICAgICAgICBhc3NlcnQgbW9kZSBpbiAo
InNob3J0IiwgImxvbmciKQorICAgICAgICBzZWxmLl9yZXByX3N0eWxlID0gbW9kZQorCisgICAg
QHByb3BlcnR5CisgICAgZGVmIGZyYW1lKHNlbGYpOgorICAgICAgICByZXR1cm4gcHkuY29kZS5G
cmFtZShzZWxmLl9yYXdlbnRyeS50Yl9mcmFtZSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBy
ZWxsaW5lKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5saW5lbm8gLSBzZWxmLmZyYW1lLmNv
ZGUuZmlyc3RsaW5lbm8KKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJu
ICI8VHJhY2ViYWNrRW50cnkgJXM6JWQ+IiAlIChzZWxmLmZyYW1lLmNvZGUucGF0aCwgc2VsZi5s
aW5lbm8rMSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBzdGF0ZW1lbnQoc2VsZik6CisgICAg
ICAgICIiIiBweS5jb2RlLlNvdXJjZSBvYmplY3QgZm9yIHRoZSBjdXJyZW50IHN0YXRlbWVudCAi
IiIKKyAgICAgICAgc291cmNlID0gc2VsZi5mcmFtZS5jb2RlLmZ1bGxzb3VyY2UKKyAgICAgICAg
cmV0dXJuIHNvdXJjZS5nZXRzdGF0ZW1lbnQoc2VsZi5saW5lbm8pCisKKyAgICBAcHJvcGVydHkK
KyAgICBkZWYgcGF0aChzZWxmKToKKyAgICAgICAgIiIiIHBhdGggdG8gdGhlIHNvdXJjZSBjb2Rl
ICIiIgorICAgICAgICByZXR1cm4gc2VsZi5mcmFtZS5jb2RlLnBhdGgKKworICAgIGRlZiBnZXRs
b2NhbHMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmZyYW1lLmZfbG9jYWxzCisgICAgbG9j
YWxzID0gcHJvcGVydHkoZ2V0bG9jYWxzLCBOb25lLCBOb25lLCAibG9jYWxzIG9mIHVuZGVybGF5
aW5nIGZyYW1lIikKKworICAgIGRlZiByZWludGVycHJldChzZWxmKToKKyAgICAgICAgIiIiUmVp
bnRlcnByZXQgdGhlIGZhaWxpbmcgc3RhdGVtZW50IGFuZCByZXR1cm5zIGEgZGV0YWlsZWQgaW5m
b3JtYXRpb24KKyAgICAgICAgICAgYWJvdXQgd2hhdCBvcGVyYXRpb25zIGFyZSBwZXJmb3JtZWQu
IiIiCisgICAgICAgIGlmIHNlbGYuZXhwcmluZm8gaXMgTm9uZToKKyAgICAgICAgICAgIHNvdXJj
ZSA9IHN0cihzZWxmLnN0YXRlbWVudCkuc3RyaXAoKQorICAgICAgICAgICAgeCA9IHB5LmNvZGUu
X3JlaW50ZXJwcmV0KHNvdXJjZSwgc2VsZi5mcmFtZSwgc2hvdWxkX2ZhaWw9VHJ1ZSkKKyAgICAg
ICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHgsIHN0cik6CisgICAgICAgICAgICAgICAgcmFpc2Ug
VHlwZUVycm9yKCJpbnRlcnByZXQgcmV0dXJuZWQgbm9uLXN0cmluZyAlciIgJSAoeCwpKQorICAg
ICAgICAgICAgc2VsZi5leHByaW5mbyA9IHgKKyAgICAgICAgcmV0dXJuIHNlbGYuZXhwcmluZm8K
KworICAgIGRlZiBnZXRmaXJzdGxpbmVzb3VyY2Uoc2VsZik6CisgICAgICAgICMgb24gSnl0aG9u
IHRoaXMgZmlyc3RsaW5lbm8gY2FuIGJlIC0xIGFwcGFyZW50bHkKKyAgICAgICAgcmV0dXJuIG1h
eChzZWxmLmZyYW1lLmNvZGUuZmlyc3RsaW5lbm8sIDApCisKKyAgICBkZWYgZ2V0c291cmNlKHNl
bGYsIGFzdGNhY2hlPU5vbmUpOgorICAgICAgICAiIiIgcmV0dXJuIGZhaWxpbmcgc291cmNlIGNv
ZGUuICIiIgorICAgICAgICAjIHdlIHVzZSB0aGUgcGFzc2VkIGluIGFzdGNhY2hlIHRvIG5vdCBy
ZXBhcnNlIGFzdHRyZWVzCisgICAgICAgICMgd2l0aGluIGV4Y2VwdGlvbiBpbmZvIHByaW50aW5n
CisgICAgICAgIGZyb20gcHkuX2NvZGUuc291cmNlIGltcG9ydCBnZXRzdGF0ZW1lbnRyYW5nZV9h
c3QKKyAgICAgICAgc291cmNlID0gc2VsZi5mcmFtZS5jb2RlLmZ1bGxzb3VyY2UKKyAgICAgICAg
aWYgc291cmNlIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBrZXkg
PSBhc3Rub2RlID0gTm9uZQorICAgICAgICBpZiBhc3RjYWNoZSBpcyBub3QgTm9uZToKKyAgICAg
ICAgICAgIGtleSA9IHNlbGYuZnJhbWUuY29kZS5wYXRoCisgICAgICAgICAgICBpZiBrZXkgaXMg
bm90IE5vbmU6CisgICAgICAgICAgICAgICAgYXN0bm9kZSA9IGFzdGNhY2hlLmdldChrZXksIE5v
bmUpCisgICAgICAgIHN0YXJ0ID0gc2VsZi5nZXRmaXJzdGxpbmVzb3VyY2UoKQorICAgICAgICB0
cnk6CisgICAgICAgICAgICBhc3Rub2RlLCBfLCBlbmQgPSBnZXRzdGF0ZW1lbnRyYW5nZV9hc3Qo
c2VsZi5saW5lbm8sIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhc3Rub2RlPWFzdG5vZGUpCisgICAgICAgIGV4Y2VwdCBTeW50YXhF
cnJvcjoKKyAgICAgICAgICAgIGVuZCA9IHNlbGYubGluZW5vICsgMQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgaWYga2V5IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGFzdGNhY2hl
W2tleV0gPSBhc3Rub2RlCisgICAgICAgIHJldHVybiBzb3VyY2Vbc3RhcnQ6ZW5kXQorCisgICAg
c291cmNlID0gcHJvcGVydHkoZ2V0c291cmNlKQorCisgICAgZGVmIGlzaGlkZGVuKHNlbGYpOgor
ICAgICAgICAiIiIgcmV0dXJuIFRydWUgaWYgdGhlIGN1cnJlbnQgZnJhbWUgaGFzIGEgdmFyIF9f
dHJhY2ViYWNraGlkZV9fCisgICAgICAgICAgICByZXNvbHZpbmcgdG8gVHJ1ZQorCisgICAgICAg
ICAgICBtb3N0bHkgZm9yIGludGVybmFsIHVzZQorICAgICAgICAiIiIKKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgcmV0dXJuIHNlbGYuZnJhbWUuZl9sb2NhbHNbJ19fdHJhY2ViYWNraGlkZV9f
J10KKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgICAgIHJldHVybiBzZWxmLmZyYW1lLmZfZ2xvYmFsc1snX190cmFjZWJhY2toaWRlX18nXQor
ICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxz
ZQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZu
ID0gc3RyKHNlbGYucGF0aCkKKyAgICAgICAgZXhjZXB0IHB5LmVycm9yLkVycm9yOgorICAgICAg
ICAgICAgZm4gPSAnPz8/JworICAgICAgICBuYW1lID0gc2VsZi5mcmFtZS5jb2RlLm5hbWUKKyAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgbGluZSA9IHN0cihzZWxmLnN0YXRlbWVudCkubHN0cmlw
KCkKKyAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgorICAgICAgICAgICAgcmFpc2UK
KyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgbGluZSA9ICI/Pz8iCisgICAgICAgIHJldHVy
biAiICBGaWxlICVyOiVkIGluICVzXG4gICVzXG4iICUgKGZuLCBzZWxmLmxpbmVubysxLCBuYW1l
LCBsaW5lKQorCisgICAgZGVmIG5hbWUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmZyYW1l
LmNvZGUucmF3LmNvX25hbWUKKyAgICBuYW1lID0gcHJvcGVydHkobmFtZSwgTm9uZSwgTm9uZSwg
ImNvX25hbWUgb2YgdW5kZXJsYXlpbmcgY29kZSIpCisKKworY2xhc3MgVHJhY2ViYWNrKGxpc3Qp
OgorICAgICIiIiBUcmFjZWJhY2sgb2JqZWN0cyBlbmNhcHN1bGF0ZSBhbmQgb2ZmZXIgaGlnaGVy
IGxldmVsCisgICAgICAgIGFjY2VzcyB0byBUcmFjZWJhY2sgZW50cmllcy4KKyAgICAiIiIKKyAg
ICBFbnRyeSA9IFRyYWNlYmFja0VudHJ5CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGIpOgor
ICAgICAgICAiIiIgaW5pdGlhbGl6ZSBmcm9tIGdpdmVuIHB5dGhvbiB0cmFjZWJhY2sgb2JqZWN0
LiAiIiIKKyAgICAgICAgaWYgaGFzYXR0cih0YiwgJ3RiX25leHQnKToKKyAgICAgICAgICAgIGRl
ZiBmKGN1cik6CisgICAgICAgICAgICAgICAgd2hpbGUgY3VyIGlzIG5vdCBOb25lOgorICAgICAg
ICAgICAgICAgICAgICB5aWVsZCBzZWxmLkVudHJ5KGN1cikKKyAgICAgICAgICAgICAgICAgICAg
Y3VyID0gY3VyLnRiX25leHQKKyAgICAgICAgICAgIGxpc3QuX19pbml0X18oc2VsZiwgZih0Yikp
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBsaXN0Ll9faW5pdF9fKHNlbGYsIHRiKQorCisg
ICAgZGVmIGN1dChzZWxmLCBwYXRoPU5vbmUsIGxpbmVubz1Ob25lLCBmaXJzdGxpbmVubz1Ob25l
LCBleGNsdWRlcGF0aD1Ob25lKToKKyAgICAgICAgIiIiIHJldHVybiBhIFRyYWNlYmFjayBpbnN0
YW5jZSB3cmFwcGluZyBwYXJ0IG9mIHRoaXMgVHJhY2ViYWNrCisKKyAgICAgICAgICAgIGJ5IHBy
b3ZkaW5nIGFueSBjb21iaW5hdGlvbiBvZiBwYXRoLCBsaW5lbm8gYW5kIGZpcnN0bGluZW5vLCB0
aGUKKyAgICAgICAgICAgIGZpcnN0IGZyYW1lIHRvIHN0YXJ0IHRoZSB0by1iZS1yZXR1cm5lZCB0
cmFjZWJhY2sgaXMgZGV0ZXJtaW5lZAorCisgICAgICAgICAgICB0aGlzIGFsbG93cyBjdXR0aW5n
IHRoZSBmaXJzdCBwYXJ0IG9mIGEgVHJhY2ViYWNrIGluc3RhbmNlIGUuZy4KKyAgICAgICAgICAg
IGZvciBmb3JtYXR0aW5nIHJlYXNvbnMgKHJlbW92aW5nIHNvbWUgdW5pbnRlcmVzdGluZyBiaXRz
IHRoYXQgZGVhbAorICAgICAgICAgICAgd2l0aCBoYW5kbGluZyBvZiB0aGUgZXhjZXB0aW9uL3Ry
YWNlYmFjaykKKyAgICAgICAgIiIiCisgICAgICAgIGZvciB4IGluIHNlbGY6CisgICAgICAgICAg
ICBjb2RlID0geC5mcmFtZS5jb2RlCisgICAgICAgICAgICBjb2RlcGF0aCA9IGNvZGUucGF0aAor
ICAgICAgICAgICAgaWYgKChwYXRoIGlzIE5vbmUgb3IgY29kZXBhdGggPT0gcGF0aCkgYW5kCisg
ICAgICAgICAgICAgICAgKGV4Y2x1ZGVwYXRoIGlzIE5vbmUgb3Igbm90IGhhc2F0dHIoY29kZXBh
dGgsICdyZWx0bycpIG9yCisgICAgICAgICAgICAgICAgIG5vdCBjb2RlcGF0aC5yZWx0byhleGNs
dWRlcGF0aCkpIGFuZAorICAgICAgICAgICAgICAgIChsaW5lbm8gaXMgTm9uZSBvciB4LmxpbmVu
byA9PSBsaW5lbm8pIGFuZAorICAgICAgICAgICAgICAgIChmaXJzdGxpbmVubyBpcyBOb25lIG9y
IHguZnJhbWUuY29kZS5maXJzdGxpbmVubyA9PSBmaXJzdGxpbmVubykpOgorICAgICAgICAgICAg
ICAgIHJldHVybiBUcmFjZWJhY2soeC5fcmF3ZW50cnkpCisgICAgICAgIHJldHVybiBzZWxmCisK
KyAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwga2V5KToKKyAgICAgICAgdmFsID0gc3VwZXIoVHJh
Y2ViYWNrLCBzZWxmKS5fX2dldGl0ZW1fXyhrZXkpCisgICAgICAgIGlmIGlzaW5zdGFuY2Uoa2V5
LCB0eXBlKHNsaWNlKDApKSk6CisgICAgICAgICAgICB2YWwgPSBzZWxmLl9fY2xhc3NfXyh2YWwp
CisgICAgICAgIHJldHVybiB2YWwKKworICAgIGRlZiBmaWx0ZXIoc2VsZiwgZm49bGFtYmRhIHg6
IG5vdCB4LmlzaGlkZGVuKCkpOgorICAgICAgICAiIiIgcmV0dXJuIGEgVHJhY2ViYWNrIGluc3Rh
bmNlIHdpdGggY2VydGFpbiBpdGVtcyByZW1vdmVkCisKKyAgICAgICAgICAgIGZuIGlzIGEgZnVu
Y3Rpb24gdGhhdCBnZXRzIGEgc2luZ2xlIGFyZ3VtZW50LCBhIFRyYWNlYmFja0l0ZW0KKyAgICAg
ICAgICAgIGluc3RhbmNlLCBhbmQgc2hvdWxkIHJldHVybiBUcnVlIHdoZW4gdGhlIGl0ZW0gc2hv
dWxkIGJlIGFkZGVkCisgICAgICAgICAgICB0byB0aGUgVHJhY2ViYWNrLCBGYWxzZSB3aGVuIG5v
dAorCisgICAgICAgICAgICBieSBkZWZhdWx0IHRoaXMgcmVtb3ZlcyBhbGwgdGhlIFRyYWNlYmFj
a0l0ZW1zIHdoaWNoIGFyZSBoaWRkZW4KKyAgICAgICAgICAgIChzZWUgaXNoaWRkZW4oKSBhYm92
ZSkKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBUcmFjZWJhY2soZmlsdGVyKGZuLCBzZWxm
KSkKKworICAgIGRlZiBnZXRjcmFzaGVudHJ5KHNlbGYpOgorICAgICAgICAiIiIgcmV0dXJuIGxh
c3Qgbm9uLWhpZGRlbiB0cmFjZWJhY2sgZW50cnkgdGhhdCBsZWFkCisgICAgICAgIHRvIHRoZSBl
eGNlcHRpb24gb2YgYSB0cmFjZWJhY2suCisgICAgICAgICIiIgorICAgICAgICBmb3IgaSBpbiBy
YW5nZSgtMSwgLWxlbihzZWxmKS0xLCAtMSk6CisgICAgICAgICAgICBlbnRyeSA9IHNlbGZbaV0K
KyAgICAgICAgICAgIGlmIG5vdCBlbnRyeS5pc2hpZGRlbigpOgorICAgICAgICAgICAgICAgIHJl
dHVybiBlbnRyeQorICAgICAgICByZXR1cm4gc2VsZlstMV0KKworICAgIGRlZiByZWN1cnNpb25p
bmRleChzZWxmKToKKyAgICAgICAgIiIiIHJldHVybiB0aGUgaW5kZXggb2YgdGhlIGZyYW1lL1Ry
YWNlYmFja0l0ZW0gd2hlcmUgcmVjdXJzaW9uCisgICAgICAgICAgICBvcmlnaW5hdGVzIGlmIGFw
cHJvcHJpYXRlLCBOb25lIGlmIG5vIHJlY3Vyc2lvbiBvY2N1cnJlZAorICAgICAgICAiIiIKKyAg
ICAgICAgY2FjaGUgPSB7fQorICAgICAgICBmb3IgaSwgZW50cnkgaW4gZW51bWVyYXRlKHNlbGYp
OgorICAgICAgICAgICAgIyBpZCBmb3IgdGhlIGNvZGUucmF3IGlzIG5lZWRlZCB0byB3b3JrIGFy
b3VuZAorICAgICAgICAgICAgIyB0aGUgc3RyYW5nZSBtZXRhcHJvZ3JhbW1pbmcgaW4gdGhlIGRl
Y29yYXRvciBsaWIgZnJvbSBweXBpCisgICAgICAgICAgICAjIHdoaWNoIGdlbmVyYXRlcyBjb2Rl
IG9iamVjdHMgdGhhdCBoYXZlIGhhc2gvdmFsdWUgZXF1YWxpdHkKKyAgICAgICAgICAgICNYWFgg
bmVlZHMgYSB0ZXN0CisgICAgICAgICAgICBrZXkgPSBlbnRyeS5mcmFtZS5jb2RlLnBhdGgsIGlk
KGVudHJ5LmZyYW1lLmNvZGUucmF3KSwgZW50cnkubGluZW5vCisgICAgICAgICAgICAjcHJpbnQg
ImNoZWNraW5nIGZvciByZWN1cnNpb24gYXQiLCBrZXkKKyAgICAgICAgICAgIGwgPSBjYWNoZS5z
ZXRkZWZhdWx0KGtleSwgW10pCisgICAgICAgICAgICBpZiBsOgorICAgICAgICAgICAgICAgIGYg
PSBlbnRyeS5mcmFtZQorICAgICAgICAgICAgICAgIGxvYyA9IGYuZl9sb2NhbHMKKyAgICAgICAg
ICAgICAgICBmb3Igb3RoZXJsb2MgaW4gbDoKKyAgICAgICAgICAgICAgICAgICAgaWYgZi5pc190
cnVlKGYuZXZhbChjb19lcXVhbCwKKyAgICAgICAgICAgICAgICAgICAgICAgIF9fcmVjdXJzaW9u
Y2FjaGVfbG9jYWxzXzE9bG9jLAorICAgICAgICAgICAgICAgICAgICAgICAgX19yZWN1cnNpb25j
YWNoZV9sb2NhbHNfMj1vdGhlcmxvYykpOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGkKKyAgICAgICAgICAgIGwuYXBwZW5kKGVudHJ5LmZyYW1lLmZfbG9jYWxzKQorICAgICAgICBy
ZXR1cm4gTm9uZQorCitjb19lcXVhbCA9IGNvbXBpbGUoJ19fcmVjdXJzaW9uY2FjaGVfbG9jYWxz
XzEgPT0gX19yZWN1cnNpb25jYWNoZV9sb2NhbHNfMicsCisgICAgICAgICAgICAgICAgICAgJz8n
LCAnZXZhbCcpCisKK2NsYXNzIEV4Y2VwdGlvbkluZm8ob2JqZWN0KToKKyAgICAiIiIgd3JhcHMg
c3lzLmV4Y19pbmZvKCkgb2JqZWN0cyBhbmQgb2ZmZXJzCisgICAgICAgIGhlbHAgZm9yIG5hdmln
YXRpbmcgdGhlIHRyYWNlYmFjay4KKyAgICAiIiIKKyAgICBfc3RyaXB0ZXh0ID0gJycKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgdHVwPU5vbmUsIGV4cHJpbmZvPU5vbmUpOgorICAgICAgICBpZiB0
dXAgaXMgTm9uZToKKyAgICAgICAgICAgIHR1cCA9IHN5cy5leGNfaW5mbygpCisgICAgICAgICAg
ICBpZiBleHByaW5mbyBpcyBOb25lIGFuZCBpc2luc3RhbmNlKHR1cFsxXSwgQXNzZXJ0aW9uRXJy
b3IpOgorICAgICAgICAgICAgICAgIGV4cHJpbmZvID0gZ2V0YXR0cih0dXBbMV0sICdtc2cnLCBO
b25lKQorICAgICAgICAgICAgICAgIGlmIGV4cHJpbmZvIGlzIE5vbmU6CisgICAgICAgICAgICAg
ICAgICAgIGV4cHJpbmZvID0gc3RyKHR1cFsxXSkKKyAgICAgICAgICAgICAgICBpZiBleHByaW5m
byBhbmQgZXhwcmluZm8uc3RhcnRzd2l0aCgnYXNzZXJ0ICcpOgorICAgICAgICAgICAgICAgICAg
ICBzZWxmLl9zdHJpcHRleHQgPSAnQXNzZXJ0aW9uRXJyb3I6ICcKKyAgICAgICAgc2VsZi5fZXhj
aW5mbyA9IHR1cAorICAgICAgICAjOiB0aGUgZXhjZXB0aW9uIGNsYXNzCisgICAgICAgIHNlbGYu
dHlwZSA9IHR1cFswXQorICAgICAgICAjOiB0aGUgZXhjZXB0aW9uIGluc3RhbmNlCisgICAgICAg
IHNlbGYudmFsdWUgPSB0dXBbMV0KKyAgICAgICAgIzogdGhlIGV4Y2VwdGlvbiByYXcgdHJhY2Vi
YWNrCisgICAgICAgIHNlbGYudGIgPSB0dXBbMl0KKyAgICAgICAgIzogdGhlIGV4Y2VwdGlvbiB0
eXBlIG5hbWUKKyAgICAgICAgc2VsZi50eXBlbmFtZSA9IHNlbGYudHlwZS5fX25hbWVfXworICAg
ICAgICAjOiB0aGUgZXhjZXB0aW9uIHRyYWNlYmFjayAocHkuY29kZS5UcmFjZWJhY2sgaW5zdGFu
Y2UpCisgICAgICAgIHNlbGYudHJhY2ViYWNrID0gcHkuY29kZS5UcmFjZWJhY2soc2VsZi50YikK
KworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICI8RXhjZXB0aW9uSW5m
byAlcyB0Ymxlbj0lZD4iICUgKAorICAgICAgICAgICAgc2VsZi50eXBlbmFtZSwgbGVuKHNlbGYu
dHJhY2ViYWNrKSkKKworICAgIGRlZiBleGNvbmx5KHNlbGYsIHRyeXNob3J0PUZhbHNlKToKKyAg
ICAgICAgIiIiIHJldHVybiB0aGUgZXhjZXB0aW9uIGFzIGEgc3RyaW5nCisKKyAgICAgICAgICAg
IHdoZW4gJ3RyeXNob3J0JyByZXNvbHZlcyB0byBUcnVlLCBhbmQgdGhlIGV4Y2VwdGlvbiBpcyBh
CisgICAgICAgICAgICBweS5jb2RlLl9Bc3NlcnRpb25FcnJvciwgb25seSB0aGUgYWN0dWFsIGV4
Y2VwdGlvbiBwYXJ0IG9mCisgICAgICAgICAgICB0aGUgZXhjZXB0aW9uIHJlcHJlc2VudGF0aW9u
IGlzIHJldHVybmVkIChzbyAnQXNzZXJ0aW9uRXJyb3I6ICcgaXMKKyAgICAgICAgICAgIHJlbW92
ZWQgZnJvbSB0aGUgYmVnaW5uaW5nKQorICAgICAgICAiIiIKKyAgICAgICAgbGluZXMgPSBmb3Jt
YXRfZXhjZXB0aW9uX29ubHkoc2VsZi50eXBlLCBzZWxmLnZhbHVlKQorICAgICAgICB0ZXh0ID0g
Jycuam9pbihsaW5lcykKKyAgICAgICAgdGV4dCA9IHRleHQucnN0cmlwKCkKKyAgICAgICAgaWYg
dHJ5c2hvcnQ6CisgICAgICAgICAgICBpZiB0ZXh0LnN0YXJ0c3dpdGgoc2VsZi5fc3RyaXB0ZXh0
KToKKyAgICAgICAgICAgICAgICB0ZXh0ID0gdGV4dFtsZW4oc2VsZi5fc3RyaXB0ZXh0KTpdCisg
ICAgICAgIHJldHVybiB0ZXh0CisKKyAgICBkZWYgZXJyaXNpbnN0YW5jZShzZWxmLCBleGMpOgor
ICAgICAgICAiIiIgcmV0dXJuIFRydWUgaWYgdGhlIGV4Y2VwdGlvbiBpcyBhbiBpbnN0YW5jZSBv
ZiBleGMgIiIiCisgICAgICAgIHJldHVybiBpc2luc3RhbmNlKHNlbGYudmFsdWUsIGV4YykKKwor
ICAgIGRlZiBfZ2V0cmVwcmNyYXNoKHNlbGYpOgorICAgICAgICBleGNvbmx5ID0gc2VsZi5leGNv
bmx5KHRyeXNob3J0PVRydWUpCisgICAgICAgIGVudHJ5ID0gc2VsZi50cmFjZWJhY2suZ2V0Y3Jh
c2hlbnRyeSgpCisgICAgICAgIHBhdGgsIGxpbmVubyA9IGVudHJ5LmZyYW1lLmNvZGUucmF3LmNv
X2ZpbGVuYW1lLCBlbnRyeS5saW5lbm8KKyAgICAgICAgcmV0dXJuIFJlcHJGaWxlTG9jYXRpb24o
cGF0aCwgbGluZW5vKzEsIGV4Y29ubHkpCisKKyAgICBkZWYgZ2V0cmVwcihzZWxmLCBzaG93bG9j
YWxzPUZhbHNlLCBzdHlsZT0ibG9uZyIsCisgICAgICAgICAgICAgICAgYWJzcGF0aD1GYWxzZSwg
dGJmaWx0ZXI9VHJ1ZSwgZnVuY2FyZ3M9RmFsc2UpOgorICAgICAgICAiIiIgcmV0dXJuIHN0cigp
YWJsZSByZXByZXNlbnRhdGlvbiBvZiB0aGlzIGV4Y2VwdGlvbiBpbmZvLgorICAgICAgICAgICAg
c2hvd2xvY2Fsczogc2hvdyBsb2NhbHMgcGVyIHRyYWNlYmFjayBlbnRyeQorICAgICAgICAgICAg
c3R5bGU6IGxvbmd8c2hvcnR8bm98bmF0aXZlIHRyYWNlYmFjayBzdHlsZQorICAgICAgICAgICAg
dGJmaWx0ZXI6IGhpZGUgZW50cmllcyAod2hlcmUgX190cmFjZWJhY2toaWRlX18gaXMgdHJ1ZSkK
KworICAgICAgICAgICAgaW4gY2FzZSBvZiBzdHlsZT09bmF0aXZlLCB0YmZpbHRlciBhbmQgc2hv
d2xvY2FscyBpcyBpZ25vcmVkLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc3R5bGUgPT0gJ25h
dGl2ZSc6CisgICAgICAgICAgICByZXR1cm4gUmVwckV4Y2VwdGlvbkluZm8oUmVwclRyYWNlYmFj
a05hdGl2ZSgKKyAgICAgICAgICAgICAgICB0cmFjZWJhY2suZm9ybWF0X2V4Y2VwdGlvbigKKyAg
ICAgICAgICAgICAgICAgICAgc2VsZi50eXBlLAorICAgICAgICAgICAgICAgICAgICBzZWxmLnZh
bHVlLAorICAgICAgICAgICAgICAgICAgICBzZWxmLnRyYWNlYmFja1swXS5fcmF3ZW50cnksCisg
ICAgICAgICAgICAgICAgKSksIHNlbGYuX2dldHJlcHJjcmFzaCgpKQorCisgICAgICAgIGZtdCA9
IEZvcm1hdHRlZEV4Y2luZm8oCisgICAgICAgICAgICBzaG93bG9jYWxzPXNob3dsb2NhbHMsIHN0
eWxlPXN0eWxlLAorICAgICAgICAgICAgYWJzcGF0aD1hYnNwYXRoLCB0YmZpbHRlcj10YmZpbHRl
ciwgZnVuY2FyZ3M9ZnVuY2FyZ3MpCisgICAgICAgIHJldHVybiBmbXQucmVwcl9leGNpbmZvKHNl
bGYpCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgZW50cnkgPSBzZWxmLnRyYWNl
YmFja1stMV0KKyAgICAgICAgbG9jID0gUmVwckZpbGVMb2NhdGlvbihlbnRyeS5wYXRoLCBlbnRy
eS5saW5lbm8gKyAxLCBzZWxmLmV4Y29ubHkoKSkKKyAgICAgICAgcmV0dXJuIHN0cihsb2MpCisK
KyAgICBkZWYgX191bmljb2RlX18oc2VsZik6CisgICAgICAgIGVudHJ5ID0gc2VsZi50cmFjZWJh
Y2tbLTFdCisgICAgICAgIGxvYyA9IFJlcHJGaWxlTG9jYXRpb24oZW50cnkucGF0aCwgZW50cnku
bGluZW5vICsgMSwgc2VsZi5leGNvbmx5KCkpCisgICAgICAgIHJldHVybiBsb2MuX191bmljb2Rl
X18oKQorCisKK2NsYXNzIEZvcm1hdHRlZEV4Y2luZm8ob2JqZWN0KToKKyAgICAiIiIgcHJlc2Vu
dGluZyBpbmZvcm1hdGlvbiBhYm91dCBmYWlsaW5nIEZ1bmN0aW9ucyBhbmQgR2VuZXJhdG9ycy4g
IiIiCisgICAgIyBmb3IgdHJhY2ViYWNrIGVudHJpZXMKKyAgICBmbG93X21hcmtlciA9ICI+Igor
ICAgIGZhaWxfbWFya2VyID0gIkUiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc2hvd2xvY2Fs
cz1GYWxzZSwgc3R5bGU9ImxvbmciLAorICAgICAgICAgICAgICAgICBhYnNwYXRoPVRydWUsIHRi
ZmlsdGVyPVRydWUsIGZ1bmNhcmdzPUZhbHNlKToKKyAgICAgICAgc2VsZi5zaG93bG9jYWxzID0g
c2hvd2xvY2FscworICAgICAgICBzZWxmLnN0eWxlID0gc3R5bGUKKyAgICAgICAgc2VsZi50YmZp
bHRlciA9IHRiZmlsdGVyCisgICAgICAgIHNlbGYuZnVuY2FyZ3MgPSBmdW5jYXJncworICAgICAg
ICBzZWxmLmFic3BhdGggPSBhYnNwYXRoCisgICAgICAgIHNlbGYuYXN0Y2FjaGUgPSB7fQorCisg
ICAgZGVmIF9nZXRpbmRlbnQoc2VsZiwgc291cmNlKToKKyAgICAgICAgIyBmaWd1cmUgb3V0IGlu
ZGVudCBmb3IgZ2l2ZW4gc291cmNlCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHMgPSBzdHIo
c291cmNlLmdldHN0YXRlbWVudChsZW4oc291cmNlKS0xKSkKKyAgICAgICAgZXhjZXB0IEtleWJv
YXJkSW50ZXJydXB0OgorICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgZXhjZXB0OgorICAgICAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHMgPSBzdHIoc291cmNlWy0xXSkKKyAgICAgICAg
ICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKKyAgICAgICAgICAgICAgICByYWlzZQorICAg
ICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIHJldHVybiAwCisgICAgICAgIHJldHVy
biA0ICsgKGxlbihzKSAtIGxlbihzLmxzdHJpcCgpKSkKKworICAgIGRlZiBfZ2V0ZW50cnlzb3Vy
Y2Uoc2VsZiwgZW50cnkpOgorICAgICAgICBzb3VyY2UgPSBlbnRyeS5nZXRzb3VyY2Uoc2VsZi5h
c3RjYWNoZSkKKyAgICAgICAgaWYgc291cmNlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc291
cmNlID0gc291cmNlLmRlaW5kZW50KCkKKyAgICAgICAgcmV0dXJuIHNvdXJjZQorCisgICAgZGVm
IF9zYWZlcmVwcihzZWxmLCBvYmopOgorICAgICAgICByZXR1cm4gcHkuaW8uc2FmZXJlcHIob2Jq
KQorCisgICAgZGVmIHJlcHJfYXJncyhzZWxmLCBlbnRyeSk6CisgICAgICAgIGlmIHNlbGYuZnVu
Y2FyZ3M6CisgICAgICAgICAgICBhcmdzID0gW10KKyAgICAgICAgICAgIGZvciBhcmduYW1lLCBh
cmd2YWx1ZSBpbiBlbnRyeS5mcmFtZS5nZXRhcmdzKHZhcj1UcnVlKToKKyAgICAgICAgICAgICAg
ICBhcmdzLmFwcGVuZCgoYXJnbmFtZSwgc2VsZi5fc2FmZXJlcHIoYXJndmFsdWUpKSkKKyAgICAg
ICAgICAgIHJldHVybiBSZXByRnVuY0FyZ3MoYXJncykKKworICAgIGRlZiBnZXRfc291cmNlKHNl
bGYsIHNvdXJjZSwgbGluZV9pbmRleD0tMSwgZXhjaW5mbz1Ob25lLCBzaG9ydD1GYWxzZSk6Cisg
ICAgICAgICIiIiByZXR1cm4gZm9ybWF0dGVkIGFuZCBtYXJrZWQgdXAgc291cmNlIGxpbmVzLiAi
IiIKKyAgICAgICAgbGluZXMgPSBbXQorICAgICAgICBpZiBzb3VyY2UgaXMgTm9uZSBvciBsaW5l
X2luZGV4ID49IGxlbihzb3VyY2UubGluZXMpOgorICAgICAgICAgICAgc291cmNlID0gcHkuY29k
ZS5Tb3VyY2UoIj8/PyIpCisgICAgICAgICAgICBsaW5lX2luZGV4ID0gMAorICAgICAgICBpZiBs
aW5lX2luZGV4IDwgMDoKKyAgICAgICAgICAgIGxpbmVfaW5kZXggKz0gbGVuKHNvdXJjZSkKKyAg
ICAgICAgc3BhY2VfcHJlZml4ID0gIiAgICAiCisgICAgICAgIGlmIHNob3J0OgorICAgICAgICAg
ICAgbGluZXMuYXBwZW5kKHNwYWNlX3ByZWZpeCArIHNvdXJjZS5saW5lc1tsaW5lX2luZGV4XS5z
dHJpcCgpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZm9yIGxpbmUgaW4gc291cmNlLmxp
bmVzWzpsaW5lX2luZGV4XToKKyAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoc3BhY2VfcHJl
Zml4ICsgbGluZSkKKyAgICAgICAgICAgIGxpbmVzLmFwcGVuZChzZWxmLmZsb3dfbWFya2VyICsg
IiAgICIgKyBzb3VyY2UubGluZXNbbGluZV9pbmRleF0pCisgICAgICAgICAgICBmb3IgbGluZSBp
biBzb3VyY2UubGluZXNbbGluZV9pbmRleCsxOl06CisgICAgICAgICAgICAgICAgbGluZXMuYXBw
ZW5kKHNwYWNlX3ByZWZpeCArIGxpbmUpCisgICAgICAgIGlmIGV4Y2luZm8gaXMgbm90IE5vbmU6
CisgICAgICAgICAgICBpbmRlbnQgPSA0IGlmIHNob3J0IGVsc2Ugc2VsZi5fZ2V0aW5kZW50KHNv
dXJjZSkKKyAgICAgICAgICAgIGxpbmVzLmV4dGVuZChzZWxmLmdldF9leGNvbmx5KGV4Y2luZm8s
IGluZGVudD1pbmRlbnQsIG1hcmthbGw9VHJ1ZSkpCisgICAgICAgIHJldHVybiBsaW5lcworCisg
ICAgZGVmIGdldF9leGNvbmx5KHNlbGYsIGV4Y2luZm8sIGluZGVudD00LCBtYXJrYWxsPUZhbHNl
KToKKyAgICAgICAgbGluZXMgPSBbXQorICAgICAgICBpbmRlbnQgPSAiICIgKiBpbmRlbnQKKyAg
ICAgICAgIyBnZXQgdGhlIHJlYWwgZXhjZXB0aW9uIGluZm9ybWF0aW9uIG91dAorICAgICAgICBl
eGxpbmVzID0gZXhjaW5mby5leGNvbmx5KHRyeXNob3J0PVRydWUpLnNwbGl0KCdcbicpCisgICAg
ICAgIGZhaWxpbmRlbnQgPSBzZWxmLmZhaWxfbWFya2VyICsgaW5kZW50WzE6XQorICAgICAgICBm
b3IgbGluZSBpbiBleGxpbmVzOgorICAgICAgICAgICAgbGluZXMuYXBwZW5kKGZhaWxpbmRlbnQg
KyBsaW5lKQorICAgICAgICAgICAgaWYgbm90IG1hcmthbGw6CisgICAgICAgICAgICAgICAgZmFp
bGluZGVudCA9IGluZGVudAorICAgICAgICByZXR1cm4gbGluZXMKKworICAgIGRlZiByZXByX2xv
Y2FscyhzZWxmLCBsb2NhbHMpOgorICAgICAgICBpZiBzZWxmLnNob3dsb2NhbHM6CisgICAgICAg
ICAgICBsaW5lcyA9IFtdCisgICAgICAgICAgICBrZXlzID0gW2xvYyBmb3IgbG9jIGluIGxvY2Fs
cyBpZiBsb2NbMF0gIT0gIkAiXQorICAgICAgICAgICAga2V5cy5zb3J0KCkKKyAgICAgICAgICAg
IGZvciBuYW1lIGluIGtleXM6CisgICAgICAgICAgICAgICAgdmFsdWUgPSBsb2NhbHNbbmFtZV0K
KyAgICAgICAgICAgICAgICBpZiBuYW1lID09ICdfX2J1aWx0aW5zX18nOgorICAgICAgICAgICAg
ICAgICAgICBsaW5lcy5hcHBlbmQoIl9fYnVpbHRpbnNfXyA9IDxidWlsdGlucz4iKQorICAgICAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICMgVGhpcyBmb3JtYXR0aW5nIGNv
dWxkIGFsbCBiZSBoYW5kbGVkIGJ5IHRoZQorICAgICAgICAgICAgICAgICAgICAjIF9yZXByKCkg
ZnVuY3Rpb24sIHdoaWNoIGlzIG9ubHkgcmVwcmxpYi5SZXByIGluCisgICAgICAgICAgICAgICAg
ICAgICMgZGlzZ3Vpc2UsIHNvIGlzIHZlcnkgY29uZmlndXJhYmxlLgorICAgICAgICAgICAgICAg
ICAgICBzdHJfcmVwciA9IHNlbGYuX3NhZmVyZXByKHZhbHVlKQorICAgICAgICAgICAgICAgICAg
ICAjaWYgbGVuKHN0cl9yZXByKSA8IDcwIG9yIG5vdCBpc2luc3RhbmNlKHZhbHVlLAorICAgICAg
ICAgICAgICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0LCB0dXBsZSwg
ZGljdCkpOgorICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiUtMTBzID0gJXMiICUo
bmFtZSwgc3RyX3JlcHIpKQorICAgICAgICAgICAgICAgICAgICAjZWxzZToKKyAgICAgICAgICAg
ICAgICAgICAgIyAgICBzZWxmLl9saW5lKCIlLTEwcyA9XFwiICUgKG5hbWUsKSkKKyAgICAgICAg
ICAgICAgICAgICAgIyAgICAjIFhYWAorICAgICAgICAgICAgICAgICAgICAjICAgIHBwcmludC5w
cHJpbnQodmFsdWUsIHN0cmVhbT1zZWxmLmV4Y2luZm93cml0ZXIpCisgICAgICAgICAgICByZXR1
cm4gUmVwckxvY2FscyhsaW5lcykKKworICAgIGRlZiByZXByX3RyYWNlYmFja19lbnRyeShzZWxm
LCBlbnRyeSwgZXhjaW5mbz1Ob25lKToKKyAgICAgICAgc291cmNlID0gc2VsZi5fZ2V0ZW50cnlz
b3VyY2UoZW50cnkpCisgICAgICAgIGlmIHNvdXJjZSBpcyBOb25lOgorICAgICAgICAgICAgc291
cmNlID0gcHkuY29kZS5Tb3VyY2UoIj8/PyIpCisgICAgICAgICAgICBsaW5lX2luZGV4ID0gMAor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBlbnRyeS5nZXRmaXJzdGxpbmVzb3VyY2UoKSBj
YW4gYmUgLTEsIHNob3VsZCBiZSAwIG9uIGp5dGhvbgorICAgICAgICAgICAgbGluZV9pbmRleCA9
IGVudHJ5LmxpbmVubyAtIG1heChlbnRyeS5nZXRmaXJzdGxpbmVzb3VyY2UoKSwgMCkKKworICAg
ICAgICBsaW5lcyA9IFtdCisgICAgICAgIHN0eWxlID0gZW50cnkuX3JlcHJfc3R5bGUKKyAgICAg
ICAgaWYgc3R5bGUgaXMgTm9uZToKKyAgICAgICAgICAgIHN0eWxlID0gc2VsZi5zdHlsZQorICAg
ICAgICBpZiBzdHlsZSBpbiAoInNob3J0IiwgImxvbmciKToKKyAgICAgICAgICAgIHNob3J0ID0g
c3R5bGUgPT0gInNob3J0IgorICAgICAgICAgICAgcmVwcmFyZ3MgPSBzZWxmLnJlcHJfYXJncyhl
bnRyeSkgaWYgbm90IHNob3J0IGVsc2UgTm9uZQorICAgICAgICAgICAgcyA9IHNlbGYuZ2V0X3Nv
dXJjZShzb3VyY2UsIGxpbmVfaW5kZXgsIGV4Y2luZm8sIHNob3J0PXNob3J0KQorICAgICAgICAg
ICAgbGluZXMuZXh0ZW5kKHMpCisgICAgICAgICAgICBpZiBzaG9ydDoKKyAgICAgICAgICAgICAg
ICBtZXNzYWdlID0gImluICVzIiAlKGVudHJ5Lm5hbWUpCisgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgIG1lc3NhZ2UgPSBleGNpbmZvIGFuZCBleGNpbmZvLnR5cGVuYW1lIG9yICIi
CisgICAgICAgICAgICBwYXRoID0gc2VsZi5fbWFrZXBhdGgoZW50cnkucGF0aCkKKyAgICAgICAg
ICAgIGZpbGVsb2NyZXByID0gUmVwckZpbGVMb2NhdGlvbihwYXRoLCBlbnRyeS5saW5lbm8rMSwg
bWVzc2FnZSkKKyAgICAgICAgICAgIGxvY2Fsc3JlcHIgPSBOb25lCisgICAgICAgICAgICBpZiBu
b3Qgc2hvcnQ6CisgICAgICAgICAgICAgICAgbG9jYWxzcmVwciA9ICBzZWxmLnJlcHJfbG9jYWxz
KGVudHJ5LmxvY2FscykKKyAgICAgICAgICAgIHJldHVybiBSZXByRW50cnkobGluZXMsIHJlcHJh
cmdzLCBsb2NhbHNyZXByLCBmaWxlbG9jcmVwciwgc3R5bGUpCisgICAgICAgIGlmIGV4Y2luZm86
CisgICAgICAgICAgICBsaW5lcy5leHRlbmQoc2VsZi5nZXRfZXhjb25seShleGNpbmZvLCBpbmRl
bnQ9NCkpCisgICAgICAgIHJldHVybiBSZXByRW50cnkobGluZXMsIE5vbmUsIE5vbmUsIE5vbmUs
IHN0eWxlKQorCisgICAgZGVmIF9tYWtlcGF0aChzZWxmLCBwYXRoKToKKyAgICAgICAgaWYgbm90
IHNlbGYuYWJzcGF0aDoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBucCA9IHB5
LnBhdGgubG9jYWwoKS5iZXN0cmVscGF0aChwYXRoKQorICAgICAgICAgICAgZXhjZXB0IE9TRXJy
b3I6CisgICAgICAgICAgICAgICAgcmV0dXJuIHBhdGgKKyAgICAgICAgICAgIGlmIGxlbihucCkg
PCBsZW4oc3RyKHBhdGgpKToKKyAgICAgICAgICAgICAgICBwYXRoID0gbnAKKyAgICAgICAgcmV0
dXJuIHBhdGgKKworICAgIGRlZiByZXByX3RyYWNlYmFjayhzZWxmLCBleGNpbmZvKToKKyAgICAg
ICAgdHJhY2ViYWNrID0gZXhjaW5mby50cmFjZWJhY2sKKyAgICAgICAgaWYgc2VsZi50YmZpbHRl
cjoKKyAgICAgICAgICAgIHRyYWNlYmFjayA9IHRyYWNlYmFjay5maWx0ZXIoKQorICAgICAgICBy
ZWN1cnNpb25pbmRleCA9IE5vbmUKKyAgICAgICAgaWYgZXhjaW5mby5lcnJpc2luc3RhbmNlKFJ1
bnRpbWVFcnJvcik6CisgICAgICAgICAgICBpZiAibWF4aW11bSByZWN1cnNpb24gZGVwdGggZXhj
ZWVkZWQiIGluIHN0cihleGNpbmZvLnZhbHVlKToKKyAgICAgICAgICAgICAgICByZWN1cnNpb25p
bmRleCA9IHRyYWNlYmFjay5yZWN1cnNpb25pbmRleCgpCisgICAgICAgIGxhc3QgPSB0cmFjZWJh
Y2tbLTFdCisgICAgICAgIGVudHJpZXMgPSBbXQorICAgICAgICBleHRyYWxpbmUgPSBOb25lCisg
ICAgICAgIGZvciBpbmRleCwgZW50cnkgaW4gZW51bWVyYXRlKHRyYWNlYmFjayk6CisgICAgICAg
ICAgICBlaW5mbyA9IChsYXN0ID09IGVudHJ5KSBhbmQgZXhjaW5mbyBvciBOb25lCisgICAgICAg
ICAgICByZXByZW50cnkgPSBzZWxmLnJlcHJfdHJhY2ViYWNrX2VudHJ5KGVudHJ5LCBlaW5mbykK
KyAgICAgICAgICAgIGVudHJpZXMuYXBwZW5kKHJlcHJlbnRyeSkKKyAgICAgICAgICAgIGlmIGlu
ZGV4ID09IHJlY3Vyc2lvbmluZGV4OgorICAgICAgICAgICAgICAgIGV4dHJhbGluZSA9ICIhISEg
UmVjdXJzaW9uIGRldGVjdGVkIChzYW1lIGxvY2FscyAmIHBvc2l0aW9uKSIKKyAgICAgICAgICAg
ICAgICBicmVhaworICAgICAgICByZXR1cm4gUmVwclRyYWNlYmFjayhlbnRyaWVzLCBleHRyYWxp
bmUsIHN0eWxlPXNlbGYuc3R5bGUpCisKKyAgICBkZWYgcmVwcl9leGNpbmZvKHNlbGYsIGV4Y2lu
Zm8pOgorICAgICAgICByZXBydHJhY2ViYWNrID0gc2VsZi5yZXByX3RyYWNlYmFjayhleGNpbmZv
KQorICAgICAgICByZXByY3Jhc2ggPSBleGNpbmZvLl9nZXRyZXByY3Jhc2goKQorICAgICAgICBy
ZXR1cm4gUmVwckV4Y2VwdGlvbkluZm8ocmVwcnRyYWNlYmFjaywgcmVwcmNyYXNoKQorCitjbGFz
cyBUZXJtaW5hbFJlcHI6CisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHMgPSBzZWxm
Ll9fdW5pY29kZV9fKCkKKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mb1swXSA8IDM6CisgICAg
ICAgICAgICBzID0gcy5lbmNvZGUoJ3V0Zi04JykKKyAgICAgICAgcmV0dXJuIHMKKworICAgIGRl
ZiBfX3VuaWNvZGVfXyhzZWxmKToKKyAgICAgICAgIyBGWUkgdGhpcyBpcyBjYWxsZWQgZnJvbSBw
eXRlc3QteGRpc3QncyBzZXJpYWxpemF0aW9uIG9mIGV4Y2VwdGlvbgorICAgICAgICAjIGluZm9y
bWF0aW9uLgorICAgICAgICBpbyA9IHB5LmlvLlRleHRJTygpCisgICAgICAgIHR3ID0gcHkuaW8u
VGVybWluYWxXcml0ZXIoZmlsZT1pbykKKyAgICAgICAgc2VsZi50b3Rlcm1pbmFsKHR3KQorICAg
ICAgICByZXR1cm4gaW8uZ2V0dmFsdWUoKS5zdHJpcCgpCisKKyAgICBkZWYgX19yZXByX18oc2Vs
Zik6CisgICAgICAgIHJldHVybiAiPCVzIGluc3RhbmNlIGF0ICUweD4iICUoc2VsZi5fX2NsYXNz
X18sIGlkKHNlbGYpKQorCisKK2NsYXNzIFJlcHJFeGNlcHRpb25JbmZvKFRlcm1pbmFsUmVwcik6
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcHJ0cmFjZWJhY2ssIHJlcHJjcmFzaCk6CisgICAg
ICAgIHNlbGYucmVwcnRyYWNlYmFjayA9IHJlcHJ0cmFjZWJhY2sKKyAgICAgICAgc2VsZi5yZXBy
Y3Jhc2ggPSByZXByY3Jhc2gKKyAgICAgICAgc2VsZi5zZWN0aW9ucyA9IFtdCisKKyAgICBkZWYg
YWRkc2VjdGlvbihzZWxmLCBuYW1lLCBjb250ZW50LCBzZXA9Ii0iKToKKyAgICAgICAgc2VsZi5z
ZWN0aW9ucy5hcHBlbmQoKG5hbWUsIGNvbnRlbnQsIHNlcCkpCisKKyAgICBkZWYgdG90ZXJtaW5h
bChzZWxmLCB0dyk6CisgICAgICAgIHNlbGYucmVwcnRyYWNlYmFjay50b3Rlcm1pbmFsKHR3KQor
ICAgICAgICBmb3IgbmFtZSwgY29udGVudCwgc2VwIGluIHNlbGYuc2VjdGlvbnM6CisgICAgICAg
ICAgICB0dy5zZXAoc2VwLCBuYW1lKQorICAgICAgICAgICAgdHcubGluZShjb250ZW50KQorCitj
bGFzcyBSZXByVHJhY2ViYWNrKFRlcm1pbmFsUmVwcik6CisgICAgZW50cnlzZXAgPSAiXyAiCisK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgcmVwcmVudHJpZXMsIGV4dHJhbGluZSwgc3R5bGUpOgor
ICAgICAgICBzZWxmLnJlcHJlbnRyaWVzID0gcmVwcmVudHJpZXMKKyAgICAgICAgc2VsZi5leHRy
YWxpbmUgPSBleHRyYWxpbmUKKyAgICAgICAgc2VsZi5zdHlsZSA9IHN0eWxlCisKKyAgICBkZWYg
dG90ZXJtaW5hbChzZWxmLCB0dyk6CisgICAgICAgICMgdGhlIGVudHJpZXMgbWlnaHQgaGF2ZSBk
aWZmZXJlbnQgc3R5bGVzCisgICAgICAgIGxhc3Rfc3R5bGUgPSBOb25lCisgICAgICAgIGZvciBp
LCBlbnRyeSBpbiBlbnVtZXJhdGUoc2VsZi5yZXByZW50cmllcyk6CisgICAgICAgICAgICBpZiBl
bnRyeS5zdHlsZSA9PSAibG9uZyI6CisgICAgICAgICAgICAgICAgdHcubGluZSgiIikKKyAgICAg
ICAgICAgIGVudHJ5LnRvdGVybWluYWwodHcpCisgICAgICAgICAgICBpZiBpIDwgbGVuKHNlbGYu
cmVwcmVudHJpZXMpIC0gMToKKyAgICAgICAgICAgICAgICBuZXh0X2VudHJ5ID0gc2VsZi5yZXBy
ZW50cmllc1tpKzFdCisgICAgICAgICAgICAgICAgaWYgZW50cnkuc3R5bGUgPT0gImxvbmciIG9y
IFwKKyAgICAgICAgICAgICAgICAgICBlbnRyeS5zdHlsZSA9PSAic2hvcnQiIGFuZCBuZXh0X2Vu
dHJ5LnN0eWxlID09ICJsb25nIjoKKyAgICAgICAgICAgICAgICAgICAgdHcuc2VwKHNlbGYuZW50
cnlzZXApCisKKyAgICAgICAgaWYgc2VsZi5leHRyYWxpbmU6CisgICAgICAgICAgICB0dy5saW5l
KHNlbGYuZXh0cmFsaW5lKQorCitjbGFzcyBSZXByVHJhY2ViYWNrTmF0aXZlKFJlcHJUcmFjZWJh
Y2spOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0YmxpbmVzKToKKyAgICAgICAgc2VsZi5zdHls
ZSA9ICJuYXRpdmUiCisgICAgICAgIHNlbGYucmVwcmVudHJpZXMgPSBbUmVwckVudHJ5TmF0aXZl
KHRibGluZXMpXQorICAgICAgICBzZWxmLmV4dHJhbGluZSA9IE5vbmUKKworY2xhc3MgUmVwckVu
dHJ5TmF0aXZlKFRlcm1pbmFsUmVwcik6CisgICAgc3R5bGUgPSAibmF0aXZlIgorCisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIHRibGluZXMpOgorICAgICAgICBzZWxmLmxpbmVzID0gdGJsaW5lcwor
CisgICAgZGVmIHRvdGVybWluYWwoc2VsZiwgdHcpOgorICAgICAgICB0dy53cml0ZSgiIi5qb2lu
KHNlbGYubGluZXMpKQorCitjbGFzcyBSZXByRW50cnkoVGVybWluYWxSZXByKToKKyAgICBsb2Nh
bHNzZXAgPSAiXyAiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbGluZXMsIHJlcHJmdW5jYXJn
cywgcmVwcmxvY2FscywgZmlsZWxvY3JlcHIsIHN0eWxlKToKKyAgICAgICAgc2VsZi5saW5lcyA9
IGxpbmVzCisgICAgICAgIHNlbGYucmVwcmZ1bmNhcmdzID0gcmVwcmZ1bmNhcmdzCisgICAgICAg
IHNlbGYucmVwcmxvY2FscyA9IHJlcHJsb2NhbHMKKyAgICAgICAgc2VsZi5yZXByZmlsZWxvYyA9
IGZpbGVsb2NyZXByCisgICAgICAgIHNlbGYuc3R5bGUgPSBzdHlsZQorCisgICAgZGVmIHRvdGVy
bWluYWwoc2VsZiwgdHcpOgorICAgICAgICBpZiBzZWxmLnN0eWxlID09ICJzaG9ydCI6CisgICAg
ICAgICAgICBzZWxmLnJlcHJmaWxlbG9jLnRvdGVybWluYWwodHcpCisgICAgICAgICAgICBmb3Ig
bGluZSBpbiBzZWxmLmxpbmVzOgorICAgICAgICAgICAgICAgIHJlZCA9IGxpbmUuc3RhcnRzd2l0
aCgiRSAgICIpCisgICAgICAgICAgICAgICAgdHcubGluZShsaW5lLCBib2xkPVRydWUsIHJlZD1y
ZWQpCisgICAgICAgICAgICAjdHcubGluZSgiIikKKyAgICAgICAgICAgIHJldHVybgorICAgICAg
ICBpZiBzZWxmLnJlcHJmdW5jYXJnczoKKyAgICAgICAgICAgIHNlbGYucmVwcmZ1bmNhcmdzLnRv
dGVybWluYWwodHcpCisgICAgICAgIGZvciBsaW5lIGluIHNlbGYubGluZXM6CisgICAgICAgICAg
ICByZWQgPSBsaW5lLnN0YXJ0c3dpdGgoIkUgICAiKQorICAgICAgICAgICAgdHcubGluZShsaW5l
LCBib2xkPVRydWUsIHJlZD1yZWQpCisgICAgICAgIGlmIHNlbGYucmVwcmxvY2FsczoKKyAgICAg
ICAgICAgICN0dy5zZXAoc2VsZi5sb2NhbHNzZXAsICJMb2NhbHMiKQorICAgICAgICAgICAgdHcu
bGluZSgiIikKKyAgICAgICAgICAgIHNlbGYucmVwcmxvY2Fscy50b3Rlcm1pbmFsKHR3KQorICAg
ICAgICBpZiBzZWxmLnJlcHJmaWxlbG9jOgorICAgICAgICAgICAgaWYgc2VsZi5saW5lczoKKyAg
ICAgICAgICAgICAgICB0dy5saW5lKCIiKQorICAgICAgICAgICAgc2VsZi5yZXByZmlsZWxvYy50
b3Rlcm1pbmFsKHR3KQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHJldHVybiAi
JXNcbiVzXG4lcyIgJSAoIlxuIi5qb2luKHNlbGYubGluZXMpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYucmVwcmxvY2FscywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmLnJlcHJmaWxlbG9jKQorCitjbGFzcyBSZXByRmlsZUxvY2F0aW9uKFRlcm1pbmFs
UmVwcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgsIGxpbmVubywgbWVzc2FnZSk6Cisg
ICAgICAgIHNlbGYucGF0aCA9IHN0cihwYXRoKQorICAgICAgICBzZWxmLmxpbmVubyA9IGxpbmVu
bworICAgICAgICBzZWxmLm1lc3NhZ2UgPSBtZXNzYWdlCisKKyAgICBkZWYgdG90ZXJtaW5hbChz
ZWxmLCB0dyk6CisgICAgICAgICMgZmlsZW5hbWUgYW5kIGxpbmVubyBvdXRwdXQgZm9yIGVhY2gg
ZW50cnksCisgICAgICAgICMgdXNpbmcgYW4gb3V0cHV0IGZvcm1hdCB0aGF0IG1vc3QgZWRpdG9y
cyB1bnRlcnN0YW5kCisgICAgICAgIG1zZyA9IHNlbGYubWVzc2FnZQorICAgICAgICBpID0gbXNn
LmZpbmQoIlxuIikKKyAgICAgICAgaWYgaSAhPSAtMToKKyAgICAgICAgICAgIG1zZyA9IG1zZ1s6
aV0KKyAgICAgICAgdHcubGluZSgiJXM6JXM6ICVzIiAlKHNlbGYucGF0aCwgc2VsZi5saW5lbm8s
IG1zZykpCisKK2NsYXNzIFJlcHJMb2NhbHMoVGVybWluYWxSZXByKToKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgbGluZXMpOgorICAgICAgICBzZWxmLmxpbmVzID0gbGluZXMKKworICAgIGRlZiB0
b3Rlcm1pbmFsKHNlbGYsIHR3KToKKyAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5saW5lczoKKyAg
ICAgICAgICAgIHR3LmxpbmUobGluZSkKKworY2xhc3MgUmVwckZ1bmNBcmdzKFRlcm1pbmFsUmVw
cik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFyZ3MpOgorICAgICAgICBzZWxmLmFyZ3MgPSBh
cmdzCisKKyAgICBkZWYgdG90ZXJtaW5hbChzZWxmLCB0dyk6CisgICAgICAgIGlmIHNlbGYuYXJn
czoKKyAgICAgICAgICAgIGxpbmVzb2ZhciA9ICIiCisgICAgICAgICAgICBmb3IgbmFtZSwgdmFs
dWUgaW4gc2VsZi5hcmdzOgorICAgICAgICAgICAgICAgIG5zID0gIiVzID0gJXMiICUobmFtZSwg
dmFsdWUpCisgICAgICAgICAgICAgICAgaWYgbGVuKG5zKSArIGxlbihsaW5lc29mYXIpICsgMiA+
IHR3LmZ1bGx3aWR0aDoKKyAgICAgICAgICAgICAgICAgICAgaWYgbGluZXNvZmFyOgorICAgICAg
ICAgICAgICAgICAgICAgICAgdHcubGluZShsaW5lc29mYXIpCisgICAgICAgICAgICAgICAgICAg
IGxpbmVzb2ZhciA9ICBucworICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg
ICAgIGlmIGxpbmVzb2ZhcjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVzb2ZhciArPSAi
LCAiICsgbnMKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxpbmVzb2ZhciA9IG5zCisgICAgICAgICAgICBpZiBsaW5lc29mYXI6CisgICAgICAgICAg
ICAgICAgdHcubGluZShsaW5lc29mYXIpCisgICAgICAgICAgICB0dy5saW5lKCIiKQorCisKKwor
b2xkYnVpbHRpbnMgPSB7fQorCitkZWYgcGF0Y2hfYnVpbHRpbnMoYXNzZXJ0aW9uPVRydWUsIGNv
bXBpbGU9VHJ1ZSk6CisgICAgIiIiIHB1dCBjb21waWxlIGFuZCBBc3NlcnRpb25FcnJvciBidWls
dGlucyB0byBQeXRob24ncyBidWlsdGlucy4gIiIiCisgICAgaWYgYXNzZXJ0aW9uOgorICAgICAg
ICBmcm9tIHB5Ll9jb2RlIGltcG9ydCBhc3NlcnRpb24KKyAgICAgICAgbCA9IG9sZGJ1aWx0aW5z
LnNldGRlZmF1bHQoJ0Fzc2VydGlvbkVycm9yJywgW10pCisgICAgICAgIGwuYXBwZW5kKHB5LmJ1
aWx0aW4uYnVpbHRpbnMuQXNzZXJ0aW9uRXJyb3IpCisgICAgICAgIHB5LmJ1aWx0aW4uYnVpbHRp
bnMuQXNzZXJ0aW9uRXJyb3IgPSBhc3NlcnRpb24uQXNzZXJ0aW9uRXJyb3IKKyAgICBpZiBjb21w
aWxlOgorICAgICAgICBsID0gb2xkYnVpbHRpbnMuc2V0ZGVmYXVsdCgnY29tcGlsZScsIFtdKQor
ICAgICAgICBsLmFwcGVuZChweS5idWlsdGluLmJ1aWx0aW5zLmNvbXBpbGUpCisgICAgICAgIHB5
LmJ1aWx0aW4uYnVpbHRpbnMuY29tcGlsZSA9IHB5LmNvZGUuY29tcGlsZQorCitkZWYgdW5wYXRj
aF9idWlsdGlucyhhc3NlcnRpb249VHJ1ZSwgY29tcGlsZT1UcnVlKToKKyAgICAiIiIgcmVtb3Zl
IGNvbXBpbGUgYW5kIEFzc2VydGlvbkVycm9yIGJ1aWx0aW5zIGZyb20gUHl0aG9uIGJ1aWx0aW5z
LiAiIiIKKyAgICBpZiBhc3NlcnRpb246CisgICAgICAgIHB5LmJ1aWx0aW4uYnVpbHRpbnMuQXNz
ZXJ0aW9uRXJyb3IgPSBvbGRidWlsdGluc1snQXNzZXJ0aW9uRXJyb3InXS5wb3AoKQorICAgIGlm
IGNvbXBpbGU6CisgICAgICAgIHB5LmJ1aWx0aW4uYnVpbHRpbnMuY29tcGlsZSA9IG9sZGJ1aWx0
aW5zWydjb21waWxlJ10ucG9wKCkKKworZGVmIGdldHJhd2NvZGUob2JqLCB0cnljYWxsPVRydWUp
OgorICAgICIiIiByZXR1cm4gY29kZSBvYmplY3QgZm9yIGdpdmVuIGZ1bmN0aW9uLiAiIiIKKyAg
ICB0cnk6CisgICAgICAgIHJldHVybiBvYmouX19jb2RlX18KKyAgICBleGNlcHQgQXR0cmlidXRl
RXJyb3I6CisgICAgICAgIG9iaiA9IGdldGF0dHIob2JqLCAnaW1fZnVuYycsIG9iaikKKyAgICAg
ICAgb2JqID0gZ2V0YXR0cihvYmosICdmdW5jX2NvZGUnLCBvYmopCisgICAgICAgIG9iaiA9IGdl
dGF0dHIob2JqLCAnZl9jb2RlJywgb2JqKQorICAgICAgICBvYmogPSBnZXRhdHRyKG9iaiwgJ19f
Y29kZV9fJywgb2JqKQorICAgICAgICBpZiB0cnljYWxsIGFuZCBub3QgaGFzYXR0cihvYmosICdj
b19maXJzdGxpbmVubycpOgorICAgICAgICAgICAgaWYgaGFzYXR0cihvYmosICdfX2NhbGxfXycp
IGFuZCBub3QgaXNjbGFzcyhvYmopOgorICAgICAgICAgICAgICAgIHggPSBnZXRyYXdjb2RlKG9i
ai5fX2NhbGxfXywgdHJ5Y2FsbD1GYWxzZSkKKyAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKHgs
ICdjb19maXJzdGxpbmVubycpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4geAorICAgICAg
ICByZXR1cm4gb2JqCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2NvZGUvc291cmNlLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9weS9fY29kZS9zb3VyY2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2ZjN2IyM2E5NmMzMmU2MDNm
MWU2NzhkNWRhZDI3MmU4NGEwZTI3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2Nv
ZGUvc291cmNlLnB5CkBAIC0wLDAgKzEsNDEwIEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGdl
bmVyYXRvcnMKKworZnJvbSBiaXNlY3QgaW1wb3J0IGJpc2VjdF9yaWdodAoraW1wb3J0IHN5cwor
aW1wb3J0IGluc3BlY3QsIHRva2VuaXplCitpbXBvcnQgcHkKK2Zyb20gdHlwZXMgaW1wb3J0IE1v
ZHVsZVR5cGUKK2NweV9jb21waWxlID0gY29tcGlsZQorCit0cnk6CisgICAgaW1wb3J0IF9hc3QK
KyAgICBmcm9tIF9hc3QgaW1wb3J0IFB5Q0ZfT05MWV9BU1QgYXMgX0FTVF9GTEFHCitleGNlcHQg
SW1wb3J0RXJyb3I6CisgICAgX0FTVF9GTEFHID0gMAorICAgIF9hc3QgPSBOb25lCisKKworY2xh
c3MgU291cmNlKG9iamVjdCk6CisgICAgIiIiIGEgaW1tdXRhYmxlIG9iamVjdCBob2xkaW5nIGEg
c291cmNlIGNvZGUgZnJhZ21lbnQsCisgICAgICAgIHBvc3NpYmx5IGRlaW5kZW50aW5nIGl0Lgor
ICAgICIiIgorICAgIF9jb21waWxlY291bnRlciA9IDAKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
KnBhcnRzLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYubGluZXMgPSBsaW5lcyA9IFtdCisgICAg
ICAgIGRlID0ga3dhcmdzLmdldCgnZGVpbmRlbnQnLCBUcnVlKQorICAgICAgICByc3RyaXAgPSBr
d2FyZ3MuZ2V0KCdyc3RyaXAnLCBUcnVlKQorICAgICAgICBmb3IgcGFydCBpbiBwYXJ0czoKKyAg
ICAgICAgICAgIGlmIG5vdCBwYXJ0OgorICAgICAgICAgICAgICAgIHBhcnRsaW5lcyA9IFtdCisg
ICAgICAgICAgICBpZiBpc2luc3RhbmNlKHBhcnQsIFNvdXJjZSk6CisgICAgICAgICAgICAgICAg
cGFydGxpbmVzID0gcGFydC5saW5lcworICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHBhcnQs
ICh0dXBsZSwgbGlzdCkpOgorICAgICAgICAgICAgICAgIHBhcnRsaW5lcyA9IFt4LnJzdHJpcCgi
XG4iKSBmb3IgeCBpbiBwYXJ0XQorICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHBhcnQsIHB5
LmJ1aWx0aW4uX2Jhc2VzdHJpbmcpOgorICAgICAgICAgICAgICAgIHBhcnRsaW5lcyA9IHBhcnQu
c3BsaXQoJ1xuJykKKyAgICAgICAgICAgICAgICBpZiByc3RyaXA6CisgICAgICAgICAgICAgICAg
ICAgIHdoaWxlIHBhcnRsaW5lczoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHBhcnRsaW5l
c1stMV0uc3RyaXAoKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAg
ICAgICAgICAgICAgICAgICAgcGFydGxpbmVzLnBvcCgpCisgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgIHBhcnRsaW5lcyA9IGdldHNvdXJjZShwYXJ0LCBkZWluZGVudD1kZSkubGlu
ZXMKKyAgICAgICAgICAgIGlmIGRlOgorICAgICAgICAgICAgICAgIHBhcnRsaW5lcyA9IGRlaW5k
ZW50KHBhcnRsaW5lcykKKyAgICAgICAgICAgIGxpbmVzLmV4dGVuZChwYXJ0bGluZXMpCisKKyAg
ICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0
dXJuIHNlbGYubGluZXMgPT0gb3RoZXIubGluZXMKKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVy
cm9yOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShvdGhlciwgc3RyKToKKyAgICAgICAgICAg
ICAgICByZXR1cm4gc3RyKHNlbGYpID09IG90aGVyCisgICAgICAgICAgICByZXR1cm4gRmFsc2UK
KworICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBrZXkpOgorICAgICAgICBpZiBpc2luc3RhbmNl
KGtleSwgaW50KToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmxpbmVzW2tleV0KKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIGlmIGtleS5zdGVwIG5vdCBpbiAoTm9uZSwgMSk6CisgICAgICAg
ICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcigiY2Fubm90IHNsaWNlIGEgU291cmNlIHdpdGggYSBz
dGVwIikKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9fZ2V0c2xpY2VfXyhrZXkuc3RhcnQsIGtl
eS5zdG9wKQorCisgICAgZGVmIF9fbGVuX18oc2VsZik6CisgICAgICAgIHJldHVybiBsZW4oc2Vs
Zi5saW5lcykKKworICAgIGRlZiBfX2dldHNsaWNlX18oc2VsZiwgc3RhcnQsIGVuZCk6CisgICAg
ICAgIG5ld3NvdXJjZSA9IFNvdXJjZSgpCisgICAgICAgIG5ld3NvdXJjZS5saW5lcyA9IHNlbGYu
bGluZXNbc3RhcnQ6ZW5kXQorICAgICAgICByZXR1cm4gbmV3c291cmNlCisKKyAgICBkZWYgc3Ry
aXAoc2VsZik6CisgICAgICAgICIiIiByZXR1cm4gbmV3IHNvdXJjZSBvYmplY3Qgd2l0aCB0cmFp
bGluZworICAgICAgICAgICAgYW5kIGxlYWRpbmcgYmxhbmsgbGluZXMgcmVtb3ZlZC4KKyAgICAg
ICAgIiIiCisgICAgICAgIHN0YXJ0LCBlbmQgPSAwLCBsZW4oc2VsZikKKyAgICAgICAgd2hpbGUg
c3RhcnQgPCBlbmQgYW5kIG5vdCBzZWxmLmxpbmVzW3N0YXJ0XS5zdHJpcCgpOgorICAgICAgICAg
ICAgc3RhcnQgKz0gMQorICAgICAgICB3aGlsZSBlbmQgPiBzdGFydCBhbmQgbm90IHNlbGYubGlu
ZXNbZW5kLTFdLnN0cmlwKCk6CisgICAgICAgICAgICBlbmQgLT0gMQorICAgICAgICBzb3VyY2Ug
PSBTb3VyY2UoKQorICAgICAgICBzb3VyY2UubGluZXNbOl0gPSBzZWxmLmxpbmVzW3N0YXJ0OmVu
ZF0KKyAgICAgICAgcmV0dXJuIHNvdXJjZQorCisgICAgZGVmIHB1dGFyb3VuZChzZWxmLCBiZWZv
cmU9JycsIGFmdGVyPScnLCBpbmRlbnQ9JyAnICogNCk6CisgICAgICAgICIiIiByZXR1cm4gYSBj
b3B5IG9mIHRoZSBzb3VyY2Ugb2JqZWN0IHdpdGgKKyAgICAgICAgICAgICdiZWZvcmUnIGFuZCAn
YWZ0ZXInIHdyYXBwZWQgYXJvdW5kIGl0LgorICAgICAgICAiIiIKKyAgICAgICAgYmVmb3JlID0g
U291cmNlKGJlZm9yZSkKKyAgICAgICAgYWZ0ZXIgPSBTb3VyY2UoYWZ0ZXIpCisgICAgICAgIG5l
d3NvdXJjZSA9IFNvdXJjZSgpCisgICAgICAgIGxpbmVzID0gWyAoaW5kZW50ICsgbGluZSkgZm9y
IGxpbmUgaW4gc2VsZi5saW5lc10KKyAgICAgICAgbmV3c291cmNlLmxpbmVzID0gYmVmb3JlLmxp
bmVzICsgbGluZXMgKyAgYWZ0ZXIubGluZXMKKyAgICAgICAgcmV0dXJuIG5ld3NvdXJjZQorCisg
ICAgZGVmIGluZGVudChzZWxmLCBpbmRlbnQ9JyAnICogNCk6CisgICAgICAgICIiIiByZXR1cm4g
YSBjb3B5IG9mIHRoZSBzb3VyY2Ugb2JqZWN0IHdpdGgKKyAgICAgICAgICAgIGFsbCBsaW5lcyBp
bmRlbnRlZCBieSB0aGUgZ2l2ZW4gaW5kZW50LXN0cmluZy4KKyAgICAgICAgIiIiCisgICAgICAg
IG5ld3NvdXJjZSA9IFNvdXJjZSgpCisgICAgICAgIG5ld3NvdXJjZS5saW5lcyA9IFsoaW5kZW50
K2xpbmUpIGZvciBsaW5lIGluIHNlbGYubGluZXNdCisgICAgICAgIHJldHVybiBuZXdzb3VyY2UK
KworICAgIGRlZiBnZXRzdGF0ZW1lbnQoc2VsZiwgbGluZW5vLCBhc3NlcnRpb249RmFsc2UpOgor
ICAgICAgICAiIiIgcmV0dXJuIFNvdXJjZSBzdGF0ZW1lbnQgd2hpY2ggY29udGFpbnMgdGhlCisg
ICAgICAgICAgICBnaXZlbiBsaW5lbnVtYmVyIChjb3VudGVkIGZyb20gMCkuCisgICAgICAgICIi
IgorICAgICAgICBzdGFydCwgZW5kID0gc2VsZi5nZXRzdGF0ZW1lbnRyYW5nZShsaW5lbm8sIGFz
c2VydGlvbikKKyAgICAgICAgcmV0dXJuIHNlbGZbc3RhcnQ6ZW5kXQorCisgICAgZGVmIGdldHN0
YXRlbWVudHJhbmdlKHNlbGYsIGxpbmVubywgYXNzZXJ0aW9uPUZhbHNlKToKKyAgICAgICAgIiIi
IHJldHVybiAoc3RhcnQsIGVuZCkgdHVwbGUgd2hpY2ggc3BhbnMgdGhlIG1pbmltYWwKKyAgICAg
ICAgICAgIHN0YXRlbWVudCByZWdpb24gd2hpY2ggY29udGFpbmluZyB0aGUgZ2l2ZW4gbGluZW5v
LgorICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90ICgwIDw9IGxpbmVubyA8IGxlbihzZWxmKSk6
CisgICAgICAgICAgICByYWlzZSBJbmRleEVycm9yKCJsaW5lbm8gb3V0IG9mIHJhbmdlIikKKyAg
ICAgICAgYXN0LCBzdGFydCwgZW5kID0gZ2V0c3RhdGVtZW50cmFuZ2VfYXN0KGxpbmVubywgc2Vs
ZikKKyAgICAgICAgcmV0dXJuIHN0YXJ0LCBlbmQKKworICAgIGRlZiBkZWluZGVudChzZWxmLCBv
ZmZzZXQ9Tm9uZSk6CisgICAgICAgICIiIiByZXR1cm4gYSBuZXcgc291cmNlIG9iamVjdCBkZWlu
ZGVudGVkIGJ5IG9mZnNldC4KKyAgICAgICAgICAgIElmIG9mZnNldCBpcyBOb25lIHRoZW4gZ3Vl
c3MgYW4gaW5kZW50YXRpb24gb2Zmc2V0IGZyb20KKyAgICAgICAgICAgIHRoZSBmaXJzdCBub24t
YmxhbmsgbGluZS4gIFN1YnNlcXVlbnQgbGluZXMgd2hpY2ggaGF2ZSBhCisgICAgICAgICAgICBs
b3dlciBpbmRlbnRhdGlvbiBvZmZzZXQgd2lsbCBiZSBjb3BpZWQgdmVyYmF0aW0gYXMKKyAgICAg
ICAgICAgIHRoZXkgYXJlIGFzc3VtZWQgdG8gYmUgcGFydCBvZiBtdWx0aWxpbmVzLgorICAgICAg
ICAiIiIKKyAgICAgICAgIyBYWFggbWF5YmUgdXNlIHRoZSB0b2tlbml6ZXIgdG8gcHJvcGVybHkg
aGFuZGxlIG11bHRpbGluZQorICAgICAgICAjICAgICBzdHJpbmdzIGV0Yy5wcD8KKyAgICAgICAg
bmV3c291cmNlID0gU291cmNlKCkKKyAgICAgICAgbmV3c291cmNlLmxpbmVzWzpdID0gZGVpbmRl
bnQoc2VsZi5saW5lcywgb2Zmc2V0KQorICAgICAgICByZXR1cm4gbmV3c291cmNlCisKKyAgICBk
ZWYgaXNwYXJzZWFibGUoc2VsZiwgZGVpbmRlbnQ9VHJ1ZSk6CisgICAgICAgICIiIiByZXR1cm4g
VHJ1ZSBpZiBzb3VyY2UgaXMgcGFyc2VhYmxlLCBoZXVyaXN0aWNhbGx5CisgICAgICAgICAgICBk
ZWluZGVudGluZyBpdCBieSBkZWZhdWx0LgorICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgaW1wb3J0IHBhcnNlcgorICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAg
ICAgICAgICBzeW50YXhfY2hlY2tlciA9IGxhbWJkYSB4OiBjb21waWxlKHgsICdhc2QnLCAnZXhl
YycpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzeW50YXhfY2hlY2tlciA9IHBhcnNlci5z
dWl0ZQorCisgICAgICAgIGlmIGRlaW5kZW50OgorICAgICAgICAgICAgc291cmNlID0gc3RyKHNl
bGYuZGVpbmRlbnQoKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNvdXJjZSA9IHN0cihz
ZWxmKQorICAgICAgICB0cnk6CisgICAgICAgICAgICAjY29tcGlsZShzb3VyY2UrJ1xuJywgIngi
LCAiZXhlYyIpCisgICAgICAgICAgICBzeW50YXhfY2hlY2tlcihzb3VyY2UrJ1xuJykKKyAgICAg
ICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgorICAgICAgICAgICAgcmFpc2UKKyAgICAgICAg
ZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAg
ICAgICByZXR1cm4gIlxuIi5qb2luKHNlbGYubGluZXMpCisKKyAgICBkZWYgY29tcGlsZShzZWxm
LCBmaWxlbmFtZT1Ob25lLCBtb2RlPSdleGVjJywKKyAgICAgICAgICAgICAgICBmbGFnPWdlbmVy
YXRvcnMuY29tcGlsZXJfZmxhZywKKyAgICAgICAgICAgICAgICBkb250X2luaGVyaXQ9MCwgX2dl
bmZyYW1lPU5vbmUpOgorICAgICAgICAiIiIgcmV0dXJuIGNvbXBpbGVkIGNvZGUgb2JqZWN0LiBp
ZiBmaWxlbmFtZSBpcyBOb25lCisgICAgICAgICAgICBpbnZlbnQgYW4gYXJ0aWZpY2lhbCBmaWxl
bmFtZSB3aGljaCBkaXNwbGF5cworICAgICAgICAgICAgdGhlIHNvdXJjZS9saW5lIHBvc2l0aW9u
IG9mIHRoZSBjYWxsZXIgZnJhbWUuCisgICAgICAgICIiIgorICAgICAgICBpZiBub3QgZmlsZW5h
bWUgb3IgcHkucGF0aC5sb2NhbChmaWxlbmFtZSkuY2hlY2soZmlsZT0wKToKKyAgICAgICAgICAg
IGlmIF9nZW5mcmFtZSBpcyBOb25lOgorICAgICAgICAgICAgICAgIF9nZW5mcmFtZSA9IHN5cy5f
Z2V0ZnJhbWUoMSkgIyB0aGUgY2FsbGVyCisgICAgICAgICAgICBmbixsaW5lbm8gPSBfZ2VuZnJh
bWUuZl9jb2RlLmNvX2ZpbGVuYW1lLCBfZ2VuZnJhbWUuZl9saW5lbm8KKyAgICAgICAgICAgIGJh
c2UgPSAiPCVkLWNvZGVnZW4gIiAlIHNlbGYuX2NvbXBpbGVjb3VudGVyCisgICAgICAgICAgICBz
ZWxmLl9fY2xhc3NfXy5fY29tcGlsZWNvdW50ZXIgKz0gMQorICAgICAgICAgICAgaWYgbm90IGZp
bGVuYW1lOgorICAgICAgICAgICAgICAgIGZpbGVuYW1lID0gYmFzZSArICclczolZD4nICUgKGZu
LCBsaW5lbm8pCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGZpbGVuYW1lID0g
YmFzZSArICclciAlczolZD4nICUgKGZpbGVuYW1lLCBmbiwgbGluZW5vKQorICAgICAgICBzb3Vy
Y2UgPSAiXG4iLmpvaW4oc2VsZi5saW5lcykgKyAnXG4nCisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIGNvID0gY3B5X2NvbXBpbGUoc291cmNlLCBmaWxlbmFtZSwgbW9kZSwgZmxhZykKKyAgICAg
ICAgZXhjZXB0IFN5bnRheEVycm9yOgorICAgICAgICAgICAgZXggPSBzeXMuZXhjX2luZm8oKVsx
XQorICAgICAgICAgICAgIyByZS1yZXByZXNlbnQgc3ludGF4IGVycm9ycyBmcm9tIHBhcnNpbmcg
cHl0aG9uIHN0cmluZ3MKKyAgICAgICAgICAgIG1zZ2xpbmVzID0gc2VsZi5saW5lc1s6ZXgubGlu
ZW5vXQorICAgICAgICAgICAgaWYgZXgub2Zmc2V0OgorICAgICAgICAgICAgICAgIG1zZ2xpbmVz
LmFwcGVuZCgiICIqZXgub2Zmc2V0ICsgJ14nKQorICAgICAgICAgICAgbXNnbGluZXMuYXBwZW5k
KCIoY29kZSB3YXMgY29tcGlsZWQgcHJvYmFibHkgZnJvbSBoZXJlOiAlcykiICUgZmlsZW5hbWUp
CisgICAgICAgICAgICBuZXdleCA9IFN5bnRheEVycm9yKCdcbicuam9pbihtc2dsaW5lcykpCisg
ICAgICAgICAgICBuZXdleC5vZmZzZXQgPSBleC5vZmZzZXQKKyAgICAgICAgICAgIG5ld2V4Lmxp
bmVubyA9IGV4LmxpbmVubworICAgICAgICAgICAgbmV3ZXgudGV4dCA9IGV4LnRleHQKKyAgICAg
ICAgICAgIHJhaXNlIG5ld2V4CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBmbGFnICYg
X0FTVF9GTEFHOgorICAgICAgICAgICAgICAgIHJldHVybiBjbworICAgICAgICAgICAgbGluZXMg
PSBbKHggKyAiXG4iKSBmb3IgeCBpbiBzZWxmLmxpbmVzXQorICAgICAgICAgICAgaW1wb3J0IGxp
bmVjYWNoZQorICAgICAgICAgICAgbGluZWNhY2hlLmNhY2hlW2ZpbGVuYW1lXSA9ICgxLCBOb25l
LCBsaW5lcywgZmlsZW5hbWUpCisgICAgICAgICAgICByZXR1cm4gY28KKworIworIyBwdWJsaWMg
QVBJIHNob3J0Y3V0IGZ1bmN0aW9ucworIworCitkZWYgY29tcGlsZV8oc291cmNlLCBmaWxlbmFt
ZT1Ob25lLCBtb2RlPSdleGVjJywgZmxhZ3M9CisgICAgICAgICAgICBnZW5lcmF0b3JzLmNvbXBp
bGVyX2ZsYWcsIGRvbnRfaW5oZXJpdD0wKToKKyAgICAiIiIgY29tcGlsZSB0aGUgZ2l2ZW4gc291
cmNlIHRvIGEgcmF3IGNvZGUgb2JqZWN0LAorICAgICAgICBhbmQgbWFpbnRhaW4gYW4gaW50ZXJu
YWwgY2FjaGUgd2hpY2ggYWxsb3dzIGxhdGVyCisgICAgICAgIHJldHJpZXZhbCBvZiB0aGUgc291
cmNlIGNvZGUgZm9yIHRoZSBjb2RlIG9iamVjdAorICAgICAgICBhbmQgYW55IHJlY3Vyc2l2ZWx5
IGNyZWF0ZWQgY29kZSBvYmplY3RzLgorICAgICIiIgorICAgIGlmIF9hc3QgaXMgbm90IE5vbmUg
YW5kIGlzaW5zdGFuY2Uoc291cmNlLCBfYXN0LkFTVCk6CisgICAgICAgICMgWFhYIHNob3VsZCBT
b3VyY2Ugc3VwcG9ydCBoYXZpbmcgQVNUPworICAgICAgICByZXR1cm4gY3B5X2NvbXBpbGUoc291
cmNlLCBmaWxlbmFtZSwgbW9kZSwgZmxhZ3MsIGRvbnRfaW5oZXJpdCkKKyAgICBfZ2VuZnJhbWUg
PSBzeXMuX2dldGZyYW1lKDEpICMgdGhlIGNhbGxlcgorICAgIHMgPSBTb3VyY2Uoc291cmNlKQor
ICAgIGNvID0gcy5jb21waWxlKGZpbGVuYW1lLCBtb2RlLCBmbGFncywgX2dlbmZyYW1lPV9nZW5m
cmFtZSkKKyAgICByZXR1cm4gY28KKworCitkZWYgZ2V0ZnNsaW5lbm8ob2JqKToKKyAgICAiIiIg
UmV0dXJuIHNvdXJjZSBsb2NhdGlvbiAocGF0aCwgbGluZW5vKSBmb3IgdGhlIGdpdmVuIG9iamVj
dC4KKyAgICBJZiB0aGUgc291cmNlIGNhbm5vdCBiZSBkZXRlcm1pbmVkIHJldHVybiAoIiIsIC0x
KQorICAgICIiIgorICAgIHRyeToKKyAgICAgICAgY29kZSA9IHB5LmNvZGUuQ29kZShvYmopCisg
ICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZm4gPSAoaW5z
cGVjdC5nZXRzb3VyY2VmaWxlKG9iaikgb3IKKyAgICAgICAgICAgICAgICAgIGluc3BlY3QuZ2V0
ZmlsZShvYmopKQorICAgICAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICAgICAgcmV0dXJu
ICIiLCAtMQorCisgICAgICAgIGZzcGF0aCA9IGZuIGFuZCBweS5wYXRoLmxvY2FsKGZuKSBvciBO
b25lCisgICAgICAgIGxpbmVubyA9IC0xCisgICAgICAgIGlmIGZzcGF0aDoKKyAgICAgICAgICAg
IHRyeToKKyAgICAgICAgICAgICAgICBfLCBsaW5lbm8gPSBmaW5kc291cmNlKG9iaikKKyAgICAg
ICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICBlbHNlOgor
ICAgICAgICBmc3BhdGggPSBjb2RlLnBhdGgKKyAgICAgICAgbGluZW5vID0gY29kZS5maXJzdGxp
bmVubworICAgIGFzc2VydCBpc2luc3RhbmNlKGxpbmVubywgaW50KQorICAgIHJldHVybiBmc3Bh
dGgsIGxpbmVubworCisjCisjIGhlbHBlciBmdW5jdGlvbnMKKyMKKworZGVmIGZpbmRzb3VyY2Uo
b2JqKToKKyAgICB0cnk6CisgICAgICAgIHNvdXJjZWxpbmVzLCBsaW5lbm8gPSBpbnNwZWN0LmZp
bmRzb3VyY2Uob2JqKQorICAgIGV4Y2VwdCBweS5idWlsdGluLl9zeXNleDoKKyAgICAgICAgcmFp
c2UKKyAgICBleGNlcHQ6CisgICAgICAgIHJldHVybiBOb25lLCAtMQorICAgIHNvdXJjZSA9IFNv
dXJjZSgpCisgICAgc291cmNlLmxpbmVzID0gW2xpbmUucnN0cmlwKCkgZm9yIGxpbmUgaW4gc291
cmNlbGluZXNdCisgICAgcmV0dXJuIHNvdXJjZSwgbGluZW5vCisKK2RlZiBnZXRzb3VyY2Uob2Jq
LCAqKmt3YXJncyk6CisgICAgb2JqID0gcHkuY29kZS5nZXRyYXdjb2RlKG9iaikKKyAgICB0cnk6
CisgICAgICAgIHN0cnNyYyA9IGluc3BlY3QuZ2V0c291cmNlKG9iaikKKyAgICBleGNlcHQgSW5k
ZW50YXRpb25FcnJvcjoKKyAgICAgICAgc3Ryc3JjID0gIlwiQnVnZ3kgcHl0aG9uIHZlcnNpb24g
Y29uc2lkZXIgdXBncmFkaW5nLCBjYW5ub3QgZ2V0IHNvdXJjZVwiIgorICAgIGFzc2VydCBpc2lu
c3RhbmNlKHN0cnNyYywgc3RyKQorICAgIHJldHVybiBTb3VyY2Uoc3Ryc3JjLCAqKmt3YXJncykK
KworZGVmIGRlaW5kZW50KGxpbmVzLCBvZmZzZXQ9Tm9uZSk6CisgICAgaWYgb2Zmc2V0IGlzIE5v
bmU6CisgICAgICAgIGZvciBsaW5lIGluIGxpbmVzOgorICAgICAgICAgICAgbGluZSA9IGxpbmUu
ZXhwYW5kdGFicygpCisgICAgICAgICAgICBzID0gbGluZS5sc3RyaXAoKQorICAgICAgICAgICAg
aWYgczoKKyAgICAgICAgICAgICAgICBvZmZzZXQgPSBsZW4obGluZSktbGVuKHMpCisgICAgICAg
ICAgICAgICAgYnJlYWsKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG9mZnNldCA9IDAKKyAg
ICBpZiBvZmZzZXQgPT0gMDoKKyAgICAgICAgcmV0dXJuIGxpc3QobGluZXMpCisgICAgbmV3bGlu
ZXMgPSBbXQorICAgIGRlZiByZWFkbGluZV9nZW5lcmF0b3IobGluZXMpOgorICAgICAgICBmb3Ig
bGluZSBpbiBsaW5lczoKKyAgICAgICAgICAgIHlpZWxkIGxpbmUgKyAnXG4nCisgICAgICAgIHdo
aWxlIFRydWU6CisgICAgICAgICAgICB5aWVsZCAnJworCisgICAgaXQgPSByZWFkbGluZV9nZW5l
cmF0b3IobGluZXMpCisKKyAgICB0cnk6CisgICAgICAgIGZvciBfLCBfLCAoc2xpbmUsIF8pLCAo
ZWxpbmUsIF8pLCBfIGluIHRva2VuaXplLmdlbmVyYXRlX3Rva2VucyhsYW1iZGE6IG5leHQoaXQp
KToKKyAgICAgICAgICAgIGlmIHNsaW5lID4gbGVuKGxpbmVzKToKKyAgICAgICAgICAgICAgICBi
cmVhayAjIEVuZCBvZiBpbnB1dCByZWFjaGVkCisgICAgICAgICAgICBpZiBzbGluZSA+IGxlbihu
ZXdsaW5lcyk6CisgICAgICAgICAgICAgICAgbGluZSA9IGxpbmVzW3NsaW5lIC0gMV0uZXhwYW5k
dGFicygpCisgICAgICAgICAgICAgICAgaWYgbGluZS5sc3RyaXAoKSBhbmQgbGluZVs6b2Zmc2V0
XS5pc3NwYWNlKCk6CisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lW29mZnNldDpdICMg
RGVpbmRlbnQKKyAgICAgICAgICAgICAgICBuZXdsaW5lcy5hcHBlbmQobGluZSkKKworICAgICAg
ICAgICAgZm9yIGkgaW4gcmFuZ2Uoc2xpbmUsIGVsaW5lKToKKyAgICAgICAgICAgICAgICAjIERv
bid0IGRlaW5kZW50IGNvbnRpbnVpbmcgbGluZXMgb2YKKyAgICAgICAgICAgICAgICAjIG11bHRp
bGluZSB0b2tlbnMgKGkuZS4gbXVsdGlsaW5lIHN0cmluZ3MpCisgICAgICAgICAgICAgICAgbmV3
bGluZXMuYXBwZW5kKGxpbmVzW2ldKQorICAgIGV4Y2VwdCAoSW5kZW50YXRpb25FcnJvciwgdG9r
ZW5pemUuVG9rZW5FcnJvcik6CisgICAgICAgIHBhc3MKKyAgICAjIEFkZCBhbnkgbGluZXMgd2Ug
ZGlkbid0IHNlZS4gRS5nLiBpZiBhbiBleGNlcHRpb24gd2FzIHJhaXNlZC4KKyAgICBuZXdsaW5l
cy5leHRlbmQobGluZXNbbGVuKG5ld2xpbmVzKTpdKQorICAgIHJldHVybiBuZXdsaW5lcworCisK
K2RlZiBnZXRfc3RhdGVtZW50X3N0YXJ0ZW5kMihsaW5lbm8sIG5vZGUpOgorICAgIGltcG9ydCBh
c3QKKyAgICAjIGZsYXR0ZW4gYWxsIHN0YXRlbWVudHMgYW5kIGV4Y2VwdCBoYW5kbGVycyBpbnRv
IG9uZSBsaW5lbm8tbGlzdAorICAgICMgQVNUJ3MgbGluZSBudW1iZXJzIHN0YXJ0IGluZGV4aW5n
IGF0IDEKKyAgICBsID0gW10KKyAgICBmb3IgeCBpbiBhc3Qud2Fsayhub2RlKToKKyAgICAgICAg
aWYgaXNpbnN0YW5jZSh4LCBfYXN0LnN0bXQpIG9yIGlzaW5zdGFuY2UoeCwgX2FzdC5FeGNlcHRI
YW5kbGVyKToKKyAgICAgICAgICAgIGwuYXBwZW5kKHgubGluZW5vIC0gMSkKKyAgICAgICAgICAg
IGZvciBuYW1lIGluICJmaW5hbGJvZHkiLCAib3JlbHNlIjoKKyAgICAgICAgICAgICAgICB2YWwg
PSBnZXRhdHRyKHgsIG5hbWUsIE5vbmUpCisgICAgICAgICAgICAgICAgaWYgdmFsOgorICAgICAg
ICAgICAgICAgICAgICAjIHRyZWF0IHRoZSBmaW5hbGx5L29yZWxzZSBwYXJ0IGFzIGl0cyBvd24g
c3RhdGVtZW50CisgICAgICAgICAgICAgICAgICAgIGwuYXBwZW5kKHZhbFswXS5saW5lbm8gLSAx
IC0gMSkKKyAgICBsLnNvcnQoKQorICAgIGluc2VydF9pbmRleCA9IGJpc2VjdF9yaWdodChsLCBs
aW5lbm8pCisgICAgc3RhcnQgPSBsW2luc2VydF9pbmRleCAtIDFdCisgICAgaWYgaW5zZXJ0X2lu
ZGV4ID49IGxlbihsKToKKyAgICAgICAgZW5kID0gTm9uZQorICAgIGVsc2U6CisgICAgICAgIGVu
ZCA9IGxbaW5zZXJ0X2luZGV4XQorICAgIHJldHVybiBzdGFydCwgZW5kCisKKworZGVmIGdldHN0
YXRlbWVudHJhbmdlX2FzdChsaW5lbm8sIHNvdXJjZSwgYXNzZXJ0aW9uPUZhbHNlLCBhc3Rub2Rl
PU5vbmUpOgorICAgIGlmIGFzdG5vZGUgaXMgTm9uZToKKyAgICAgICAgY29udGVudCA9IHN0cihz
b3VyY2UpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGFzdG5vZGUgPSBjb21waWxlKGNvbnRl
bnQsICJzb3VyY2UiLCAiZXhlYyIsIDEwMjQpICAjIDEwMjQgZm9yIEFTVAorICAgICAgICBleGNl
cHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgIHN0YXJ0LCBlbmQgPSBnZXRzdGF0ZW1lbnRyYW5n
ZV9vbGQobGluZW5vLCBzb3VyY2UsIGFzc2VydGlvbikKKyAgICAgICAgICAgIHJldHVybiBOb25l
LCBzdGFydCwgZW5kCisgICAgc3RhcnQsIGVuZCA9IGdldF9zdGF0ZW1lbnRfc3RhcnRlbmQyKGxp
bmVubywgYXN0bm9kZSkKKyAgICAjIHdlIG5lZWQgdG8gY29ycmVjdCB0aGUgZW5kOgorICAgICMg
LSBhc3QtcGFyc2luZyBzdHJpcHMgY29tbWVudHMKKyAgICAjIC0gdGhlcmUgbWlnaHQgYmUgZW1w
dHkgbGluZXMKKyAgICAjIC0gd2UgbWlnaHQgaGF2ZSBsZXNzZXIgaW5kZW50ZWQgY29kZSBibG9j
a3MgYXQgdGhlIGVuZAorICAgIGlmIGVuZCBpcyBOb25lOgorICAgICAgICBlbmQgPSBsZW4oc291
cmNlLmxpbmVzKQorCisgICAgaWYgZW5kID4gc3RhcnQgKyAxOgorICAgICAgICAjIG1ha2Ugc3Vy
ZSB3ZSBkb24ndCBzcGFuIGRpZmZlcmVudGx5IGluZGVudGVkIGNvZGUgYmxvY2tzCisgICAgICAg
ICMgYnkgdXNpbmcgdGhlIEJsb2NrRmluZGVyIGhlbHBlciB1c2VkIHdoaWNoIGluc3BlY3QuZ2V0
c291cmNlKCkgdXNlcyBpdHNlbGYKKyAgICAgICAgYmxvY2tfZmluZGVyID0gaW5zcGVjdC5CbG9j
a0ZpbmRlcigpCisgICAgICAgICMgaWYgd2Ugc3RhcnQgd2l0aCBhbiBpbmRlbnRlZCBsaW5lLCBw
dXQgYmxvY2tmaW5kZXIgdG8gInN0YXJ0ZWQiIG1vZGUKKyAgICAgICAgYmxvY2tfZmluZGVyLnN0
YXJ0ZWQgPSBzb3VyY2UubGluZXNbc3RhcnRdWzBdLmlzc3BhY2UoKQorICAgICAgICBpdCA9ICgo
eCArICJcbiIpIGZvciB4IGluIHNvdXJjZS5saW5lc1tzdGFydDplbmRdKQorICAgICAgICB0cnk6
CisgICAgICAgICAgICBmb3IgdG9rIGluIHRva2VuaXplLmdlbmVyYXRlX3Rva2VucyhsYW1iZGE6
IG5leHQoaXQpKToKKyAgICAgICAgICAgICAgICBibG9ja19maW5kZXIudG9rZW5lYXRlcigqdG9r
KQorICAgICAgICBleGNlcHQgKGluc3BlY3QuRW5kT2ZCbG9jaywgSW5kZW50YXRpb25FcnJvcik6
CisgICAgICAgICAgICBlbmQgPSBibG9ja19maW5kZXIubGFzdCArIHN0YXJ0CisgICAgICAgIGV4
Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICBwYXNzCisKKyAgICAjIHRoZSBlbmQgbWlnaHQg
c3RpbGwgcG9pbnQgdG8gYSBjb21tZW50IG9yIGVtcHR5IGxpbmUsIGNvcnJlY3QgaXQKKyAgICB3
aGlsZSBlbmQ6CisgICAgICAgIGxpbmUgPSBzb3VyY2UubGluZXNbZW5kIC0gMV0ubHN0cmlwKCkK
KyAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCIjIikgb3Igbm90IGxpbmU6CisgICAgICAgICAg
ICBlbmQgLT0gMQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYnJlYWsKKyAgICByZXR1cm4g
YXN0bm9kZSwgc3RhcnQsIGVuZAorCisKK2RlZiBnZXRzdGF0ZW1lbnRyYW5nZV9vbGQobGluZW5v
LCBzb3VyY2UsIGFzc2VydGlvbj1GYWxzZSk6CisgICAgIiIiIHJldHVybiAoc3RhcnQsIGVuZCkg
dHVwbGUgd2hpY2ggc3BhbnMgdGhlIG1pbmltYWwKKyAgICAgICAgc3RhdGVtZW50IHJlZ2lvbiB3
aGljaCBjb250YWluaW5nIHRoZSBnaXZlbiBsaW5lbm8uCisgICAgICAgIHJhaXNlIGFuIEluZGV4
RXJyb3IgaWYgbm8gc3VjaCBzdGF0ZW1lbnRyYW5nZSBjYW4gYmUgZm91bmQuCisgICAgIiIiCisg
ICAgIyBYWFggdGhpcyBsb2dpYyBpcyBvbmx5IHVzZWQgb24gcHl0aG9uMi40IGFuZCBiZWxvdwor
ICAgICMgMS4gZmluZCB0aGUgc3RhcnQgb2YgdGhlIHN0YXRlbWVudAorICAgIGZyb20gY29kZW9w
IGltcG9ydCBjb21waWxlX2NvbW1hbmQKKyAgICBmb3Igc3RhcnQgaW4gcmFuZ2UobGluZW5vLCAt
MSwgLTEpOgorICAgICAgICBpZiBhc3NlcnRpb246CisgICAgICAgICAgICBsaW5lID0gc291cmNl
LmxpbmVzW3N0YXJ0XQorICAgICAgICAgICAgIyB0aGUgZm9sbG93aW5nIGxpbmVzIGFyZSBub3Qg
ZnVsbHkgdGVzdGVkLCBjaGFuZ2Ugd2l0aCBjYXJlCisgICAgICAgICAgICBpZiAnc3VwZXInIGlu
IGxpbmUgYW5kICdzZWxmJyBpbiBsaW5lIGFuZCAnX19pbml0X18nIGluIGxpbmU6CisgICAgICAg
ICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcigibGlrZWx5IGEgc3ViY2xhc3MiKQorICAgICAgICAg
ICAgaWYgImFzc2VydCIgbm90IGluIGxpbmUgYW5kICJyYWlzZSIgbm90IGluIGxpbmU6CisgICAg
ICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgdHJ5bGluZXMgPSBzb3VyY2UubGluZXNbc3Rh
cnQ6bGluZW5vKzFdCisgICAgICAgICMgcXVpY2sgaGFjayB0byBwcmVwYXJlIHBhcnNpbmcgYW4g
aW5kZW50ZWQgbGluZSB3aXRoCisgICAgICAgICMgY29tcGlsZV9jb21tYW5kKCkgKHdoaWNoIGVy
cm9ycyBvbiAicmV0dXJuIiBvdXRzaWRlIGRlZnMpCisgICAgICAgIHRyeWxpbmVzLmluc2VydCgw
LCAnZGVmIHh4eCgpOicpCisgICAgICAgIHRyeXNvdXJjZSA9ICdcbiAnLmpvaW4odHJ5bGluZXMp
CisgICAgICAgICMgICAgICAgICAgICAgIF4gc3BhY2UgaGVyZQorICAgICAgICB0cnk6CisgICAg
ICAgICAgICBjb21waWxlX2NvbW1hbmQodHJ5c291cmNlKQorICAgICAgICBleGNlcHQgKFN5bnRh
eEVycm9yLCBPdmVyZmxvd0Vycm9yLCBWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIGNvbnRpbnVl
CisKKyAgICAgICAgIyAyLiBmaW5kIHRoZSBlbmQgb2YgdGhlIHN0YXRlbWVudAorICAgICAgICBm
b3IgZW5kIGluIHJhbmdlKGxpbmVubysxLCBsZW4oc291cmNlKSsxKToKKyAgICAgICAgICAgIHRy
eXNvdXJjZSA9IHNvdXJjZVtzdGFydDplbmRdCisgICAgICAgICAgICBpZiB0cnlzb3VyY2UuaXNw
YXJzZWFibGUoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RhcnQsIGVuZAorICAgIHJhaXNl
IFN5bnRheEVycm9yKCJubyB2YWxpZCBzb3VyY2UgcmFuZ2UgYXJvdW5kIGxpbmUgJWQgIiAlIChs
aW5lbm8sKSkKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19jb2RlL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS9weS9fY29kZS93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZWY4MjRiMjEw
ZDdlMDk3YTZkMGE2MWRjNzQzYzc2Zjk3ZGRkZmFhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS9weS9fY29kZS93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDIzIEBACitUaGUgdGVzdHMgaW4g
dGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0Rv
IE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3Jl
YXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNv
bS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2lt
cG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3Ig
cmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L3B5L19jb2RlL19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fY29kZS9fYXNzZXJ0aW9ubmV3
LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS9weS9fY29kZS9fYXNzZXJ0aW9ub2xkLnB5CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fY29k
ZS9fcHkydHJhY2ViYWNrLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fY29kZS9hc3NlcnRpb24ucHkKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L3B5L19jb2RlL2NvZGUucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19jb2RlL3NvdXJjZS5weQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS9weS9fZXJyb3IucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19lcnJvci5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5hNjM3NWRlOWZhMjliMTQ4ZTg4ODM3MjVmMWZjMzg1MjI4YjVjNTk2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9weS9fZXJyb3IucHkKQEAgLTAsMCArMSw5MSBAQAorIiIiCitjcmVh
dGUgZXJybm8tc3BlY2lmaWMgY2xhc3NlcyBmb3IgSU8gb3Igb3MgY2FsbHMuCisKKyIiIgorZnJv
bSB0eXBlcyBpbXBvcnQgTW9kdWxlVHlwZQoraW1wb3J0IHN5cywgb3MsIGVycm5vCisKK2NsYXNz
IEVycm9yKEVudmlyb25tZW50RXJyb3IpOgorICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAg
ICAgcmV0dXJuICIlcy4lcyAlcjogJXMgIiAlKHNlbGYuX19jbGFzc19fLl9fbW9kdWxlX18sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fX2NsYXNzX18uX19uYW1lX18sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fX2NsYXNzX18uX19kb2NfXywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICIuam9pbihtYXAoc3RyLCBzZWxmLmFyZ3Mp
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjcmVwcihzZWxmLmFyZ3MpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgor
ICAgICAgICBzID0gIlslc106ICVzIiAlKHNlbGYuX19jbGFzc19fLl9fZG9jX18sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICIgIi5qb2luKG1hcChzdHIsIHNlbGYuYXJncykpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICApCisgICAgICAgIHJldHVybiBzCisKK193aW5lcnJub21hcCA9
IHsKKyAgICAyOiBlcnJuby5FTk9FTlQsCisgICAgMzogZXJybm8uRU5PRU5ULAorICAgIDE3OiBl
cnJuby5FRVhJU1QsCisgICAgMTg6IGVycm5vLkVYREVWLAorICAgIDEzOiBlcnJuby5FQlVTWSwg
IyBlbXB0eSBjZCBkcml2ZSwgYnV0IEVOT01FRElVTSBzZWVtcyB1bmF2YWlsaWFibGUKKyAgICAy
MjogZXJybm8uRU5PVERJUiwKKyAgICAyMDogZXJybm8uRU5PVERJUiwKKyAgICAyNjc6IGVycm5v
LkVOT1RESVIsCisgICAgNTogZXJybm8uRUFDQ0VTLCAgIyBhbnl0aGluZyBiZXR0ZXI/Cit9CisK
K2NsYXNzIEVycm9yTWFrZXIoTW9kdWxlVHlwZSk6CisgICAgIiIiIGxhemlseSBwcm92aWRlcyBF
eGNlcHRpb24gY2xhc3NlcyBmb3IgZWFjaCBwb3NzaWJsZSBQT1NJWCBlcnJubworICAgICAgICAo
YXMgZGVmaW5lZCBwZXIgdGhlICdlcnJubycgbW9kdWxlKS4gIEFsbCBzdWNoIGluc3RhbmNlcwor
ICAgICAgICBzdWJjbGFzcyBFbnZpcm9ubWVudEVycm9yLgorICAgICIiIgorICAgIEVycm9yID0g
RXJyb3IKKyAgICBfZXJybm8yY2xhc3MgPSB7fQorCisgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYs
IG5hbWUpOgorICAgICAgICBpZiBuYW1lWzBdID09ICJfIjoKKyAgICAgICAgICAgIHJhaXNlIEF0
dHJpYnV0ZUVycm9yKG5hbWUpCisgICAgICAgIGVubyA9IGdldGF0dHIoZXJybm8sIG5hbWUpCisg
ICAgICAgIGNscyA9IHNlbGYuX2dldGVycm5vY2xhc3MoZW5vKQorICAgICAgICBzZXRhdHRyKHNl
bGYsIG5hbWUsIGNscykKKyAgICAgICAgcmV0dXJuIGNscworCisgICAgZGVmIF9nZXRlcnJub2Ns
YXNzKHNlbGYsIGVubyk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9l
cnJubzJjbGFzc1tlbm9dCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgIGNs
c25hbWUgPSBlcnJuby5lcnJvcmNvZGUuZ2V0KGVubywgIlVua25vd25FcnJubyVkIiAlKGVubywp
KQorICAgICAgICAgICAgZXJyb3JjbHMgPSB0eXBlKEVycm9yKShjbHNuYW1lLCAoRXJyb3IsKSwK
KyAgICAgICAgICAgICAgICAgICAgeydfX21vZHVsZV9fJzoncHkuZXJyb3InLAorICAgICAgICAg
ICAgICAgICAgICAgJ19fZG9jX18nOiBvcy5zdHJlcnJvcihlbm8pfSkKKyAgICAgICAgICAgIHNl
bGYuX2Vycm5vMmNsYXNzW2Vub10gPSBlcnJvcmNscworICAgICAgICAgICAgcmV0dXJuIGVycm9y
Y2xzCisKKyAgICBkZWYgY2hlY2tlZF9jYWxsKHNlbGYsIGZ1bmMsICphcmdzLCAqKmt3YXJncyk6
CisgICAgICAgICIiIiBjYWxsIGEgZnVuY3Rpb24gYW5kIHJhaXNlIGFuIGVycm5vLWV4Y2VwdGlv
biBpZiBhcHBsaWNhYmxlLiAiIiIKKyAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBmdW5jKCphcmdzLCAqKmt3YXJncykKKyAg
ICAgICAgZXhjZXB0IHNlbGYuRXJyb3I6CisgICAgICAgICAgICByYWlzZQorICAgICAgICBleGNl
cHQgKE9TRXJyb3IsIEVudmlyb25tZW50RXJyb3IpOgorICAgICAgICAgICAgY2xzLCB2YWx1ZSwg
dGIgPSBzeXMuZXhjX2luZm8oKQorICAgICAgICAgICAgaWYgbm90IGhhc2F0dHIodmFsdWUsICdl
cnJubycpOgorICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICBfX3RyYWNlYmFja2hp
ZGVfXyA9IEZhbHNlCisgICAgICAgICAgICBlcnJubyA9IHZhbHVlLmVycm5vCisgICAgICAgICAg
ICB0cnk6CisgICAgICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodmFsdWUsIFdpbmRvd3NF
cnJvcik6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIE5hbWVFcnJvcgorICAgICAgICAgICAg
ZXhjZXB0IE5hbWVFcnJvcjoKKyAgICAgICAgICAgICAgICAjIHdlIGFyZSBub3Qgb24gV2luZG93
cywgb3Igd2UgZ290IGEgcHJvcGVyIE9TRXJyb3IKKyAgICAgICAgICAgICAgICBjbHMgPSBzZWxm
Ll9nZXRlcnJub2NsYXNzKGVycm5vKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICB0cnk6CisgICAgICAgICAgICAgICAgICAgIGNscyA9IHNlbGYuX2dldGVycm5vY2xhc3MoX3dp
bmVycm5vbWFwW2Vycm5vXSkKKyAgICAgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAg
ICAgICAgICAgICAgICAgIHJhaXNlIHZhbHVlCisgICAgICAgICAgICByYWlzZSBjbHMoIiVzJXIi
ICUgKGZ1bmMuX19uYW1lX18sIGFyZ3MpKQorICAgICAgICAgICAgX190cmFjZWJhY2toaWRlX18g
PSBUcnVlCisgICAgICAgICAgICAKKworZXJyb3IgPSBFcnJvck1ha2VyKCdweS5lcnJvcicpCitz
eXMubW9kdWxlc1tlcnJvci5fX25hbWVfX10gPSBlcnJvcgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2lvL19faW5pdF9fLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9w
eS9faW8vX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODM1ZjAxZjNhYjlkY2I2NTZkY2UxZTU4MGYw
ZDk4ZDdiOGFiZmUzYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2lvL19faW5pdF9f
LnB5CkBAIC0wLDAgKzEgQEAKKyIiIiBpbnB1dC9vdXRwdXQgaGVscGluZyAiIiIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvcHkvX2lvL2NhcHR1cmUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19pby9jYXB0dXJlLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmJjMTU3ZWQ5NzhmNzJkZDhkMTk1NmZhZjRjNTk1NGM4MTc0YmY0ZGYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19pby9jYXB0dXJlLnB5CkBAIC0wLDAgKzEsMzcx
IEBACitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKK2ltcG9ydCBweQoraW1wb3J0IHRlbXBmaWxlCisK
K3RyeToKKyAgICBmcm9tIGlvIGltcG9ydCBTdHJpbmdJTworZXhjZXB0IEltcG9ydEVycm9yOgor
ICAgIGZyb20gU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCisKK2lmIHN5cy52ZXJzaW9uX2luZm8g
PCAoMywwKToKKyAgICBjbGFzcyBUZXh0SU8oU3RyaW5nSU8pOgorICAgICAgICBkZWYgd3JpdGUo
c2VsZiwgZGF0YSk6CisgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShkYXRhLCB1bmljb2Rl
KToKKyAgICAgICAgICAgICAgICBkYXRhID0gdW5pY29kZShkYXRhLCBnZXRhdHRyKHNlbGYsICdf
ZW5jb2RpbmcnLCAnVVRGLTgnKSwgJ3JlcGxhY2UnKQorICAgICAgICAgICAgU3RyaW5nSU8ud3Jp
dGUoc2VsZiwgZGF0YSkKK2Vsc2U6CisgICAgVGV4dElPID0gU3RyaW5nSU8KKwordHJ5OgorICAg
IGZyb20gaW8gaW1wb3J0IEJ5dGVzSU8KK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBjbGFzcyBC
eXRlc0lPKFN0cmluZ0lPKToKKyAgICAgICAgZGVmIHdyaXRlKHNlbGYsIGRhdGEpOgorICAgICAg
ICAgICAgaWYgaXNpbnN0YW5jZShkYXRhLCB1bmljb2RlKToKKyAgICAgICAgICAgICAgICByYWlz
ZSBUeXBlRXJyb3IoIm5vdCBhIGJ5dGUgdmFsdWU6ICVyIiAlKGRhdGEsKSkKKyAgICAgICAgICAg
IFN0cmluZ0lPLndyaXRlKHNlbGYsIGRhdGEpCisKK3BhdGNoc3lzZGljdCA9IHswOiAnc3RkaW4n
LCAxOiAnc3Rkb3V0JywgMjogJ3N0ZGVycid9CisKK2NsYXNzIEZEQ2FwdHVyZToKKyAgICAiIiIg
Q2FwdHVyZSBJTyB0by9mcm9tIGEgZ2l2ZW4gb3MtbGV2ZWwgZmlsZWRlc2NyaXB0b3IuICIiIgor
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRhcmdldGZkLCB0bXBmaWxlPU5vbmUsIG5vdz1UcnVl
LCBwYXRjaHN5cz1GYWxzZSk6CisgICAgICAgICIiIiBzYXZlIHRhcmdldGZkIGRlc2NyaXB0b3Is
IGFuZCBvcGVuIGEgbmV3CisgICAgICAgICAgICB0ZW1wb3JhcnkgZmlsZSB0aGVyZS4gIElmIG5v
IHRtcGZpbGUgaXMKKyAgICAgICAgICAgIHNwZWNpZmllZCBhIHRlbXBmaWxlLlRlbXBmaWxlKCkg
d2lsbCBiZSBvcGVuZWQKKyAgICAgICAgICAgIGluIHRleHQgbW9kZS4KKyAgICAgICAgIiIiCisg
ICAgICAgIHNlbGYudGFyZ2V0ZmQgPSB0YXJnZXRmZAorICAgICAgICBpZiB0bXBmaWxlIGlzIE5v
bmUgYW5kIHRhcmdldGZkICE9IDA6CisgICAgICAgICAgICBmID0gdGVtcGZpbGUuVGVtcG9yYXJ5
RmlsZSgnd2IrJykKKyAgICAgICAgICAgIHRtcGZpbGUgPSBkdXBmaWxlKGYsIGVuY29kaW5nPSJV
VEYtOCIpCisgICAgICAgICAgICBmLmNsb3NlKCkKKyAgICAgICAgc2VsZi50bXBmaWxlID0gdG1w
ZmlsZQorICAgICAgICBzZWxmLl9zYXZlZmQgPSBvcy5kdXAoc2VsZi50YXJnZXRmZCkKKyAgICAg
ICAgaWYgcGF0Y2hzeXM6CisgICAgICAgICAgICBzZWxmLl9vbGRzeXMgPSBnZXRhdHRyKHN5cywg
cGF0Y2hzeXNkaWN0W3RhcmdldGZkXSkKKyAgICAgICAgaWYgbm93OgorICAgICAgICAgICAgc2Vs
Zi5zdGFydCgpCisKKyAgICBkZWYgc3RhcnQoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIG9zLmZzdGF0KHNlbGYuX3NhdmVmZCkKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CisgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJzYXZlZCBmaWxlZGVzY3JpcHRvciBub3QgdmFsaWQs
ICIKKyAgICAgICAgICAgICAgICAiZGlkIHlvdSBjYWxsIHN0YXJ0KCkgdHdpY2U/IikKKyAgICAg
ICAgaWYgc2VsZi50YXJnZXRmZCA9PSAwIGFuZCBub3Qgc2VsZi50bXBmaWxlOgorICAgICAgICAg
ICAgZmQgPSBvcy5vcGVuKGRldm51bGxwYXRoLCBvcy5PX1JET05MWSkKKyAgICAgICAgICAgIG9z
LmR1cDIoZmQsIDApCisgICAgICAgICAgICBvcy5jbG9zZShmZCkKKyAgICAgICAgICAgIGlmIGhh
c2F0dHIoc2VsZiwgJ19vbGRzeXMnKToKKyAgICAgICAgICAgICAgICBzZXRhdHRyKHN5cywgcGF0
Y2hzeXNkaWN0W3NlbGYudGFyZ2V0ZmRdLCBEb250UmVhZEZyb21JbnB1dCgpKQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgb3MuZHVwMihzZWxmLnRtcGZpbGUuZmlsZW5vKCksIHNlbGYudGFy
Z2V0ZmQpCisgICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdfb2xkc3lzJyk6CisgICAgICAg
ICAgICAgICAgc2V0YXR0cihzeXMsIHBhdGNoc3lzZGljdFtzZWxmLnRhcmdldGZkXSwgc2VsZi50
bXBmaWxlKQorCisgICAgZGVmIGRvbmUoc2VsZik6CisgICAgICAgICIiIiB1bnBhdGNoIGFuZCBj
bGVhbiB1cCwgcmV0dXJucyB0aGUgc2VsZi50bXBmaWxlIChmaWxlIG9iamVjdCkKKyAgICAgICAg
IiIiCisgICAgICAgIG9zLmR1cDIoc2VsZi5fc2F2ZWZkLCBzZWxmLnRhcmdldGZkKQorICAgICAg
ICBvcy5jbG9zZShzZWxmLl9zYXZlZmQpCisgICAgICAgIGlmIHNlbGYudGFyZ2V0ZmQgIT0gMDoK
KyAgICAgICAgICAgIHNlbGYudG1wZmlsZS5zZWVrKDApCisgICAgICAgIGlmIGhhc2F0dHIoc2Vs
ZiwgJ19vbGRzeXMnKToKKyAgICAgICAgICAgIHNldGF0dHIoc3lzLCBwYXRjaHN5c2RpY3Rbc2Vs
Zi50YXJnZXRmZF0sIHNlbGYuX29sZHN5cykKKyAgICAgICAgcmV0dXJuIHNlbGYudG1wZmlsZQor
CisgICAgZGVmIHdyaXRlb3JnKHNlbGYsIGRhdGEpOgorICAgICAgICAiIiIgd3JpdGUgYSBzdHJp
bmcgdG8gdGhlIG9yaWdpbmFsIGZpbGUgZGVzY3JpcHRvcgorICAgICAgICAiIiIKKyAgICAgICAg
dGVtcGZwID0gdGVtcGZpbGUuVGVtcG9yYXJ5RmlsZSgpCisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIG9zLmR1cDIoc2VsZi5fc2F2ZWZkLCB0ZW1wZnAuZmlsZW5vKCkpCisgICAgICAgICAgICB0
ZW1wZnAud3JpdGUoZGF0YSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHRlbXBmcC5j
bG9zZSgpCisKKworZGVmIGR1cGZpbGUoZiwgbW9kZT1Ob25lLCBidWZmZXJpbmc9MCwgcmFpc2lu
Zz1GYWxzZSwgZW5jb2Rpbmc9Tm9uZSk6CisgICAgIiIiIHJldHVybiBhIG5ldyBvcGVuIGZpbGUg
b2JqZWN0IHRoYXQncyBhIGR1cGxpY2F0ZSBvZiBmCisKKyAgICAgICAgbW9kZSBpcyBkdXBsaWNh
dGVkIGlmIG5vdCBnaXZlbiwgJ2J1ZmZlcmluZycgY29udHJvbHMKKyAgICAgICAgYnVmZmVyIHNp
emUgKGRlZmF1bHRpbmcgdG8gbm8gYnVmZmVyaW5nKSBhbmQgJ3JhaXNpbmcnCisgICAgICAgIGRl
ZmluZXMgd2hldGhlciBhbiBleGNlcHRpb24gaXMgcmFpc2VkIHdoZW4gYW4gaW5jb21wYXRpYmxl
CisgICAgICAgIGZpbGUgb2JqZWN0IGlzIHBhc3NlZCBpbiAoaWYgcmFpc2luZyBpcyBGYWxzZSwg
dGhlIGZpbGUKKyAgICAgICAgb2JqZWN0IGl0c2VsZiB3aWxsIGJlIHJldHVybmVkKQorICAgICIi
IgorICAgIHRyeToKKyAgICAgICAgZmQgPSBmLmZpbGVubygpCisgICAgICAgIG1vZGUgPSBtb2Rl
IG9yIGYubW9kZQorICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgaWYgcmFpc2lu
ZzoKKyAgICAgICAgICAgIHJhaXNlCisgICAgICAgIHJldHVybiBmCisgICAgbmV3ZmQgPSBvcy5k
dXAoZmQpCisgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKKyAgICAgICAgaWYgZW5j
b2RpbmcgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBtb2RlID0gbW9kZS5yZXBsYWNlKCJiIiwg
IiIpCisgICAgICAgICAgICBidWZmZXJpbmcgPSBUcnVlCisgICAgICAgIHJldHVybiBvcy5mZG9w
ZW4obmV3ZmQsIG1vZGUsIGJ1ZmZlcmluZywgZW5jb2RpbmcsIGNsb3NlZmQ9VHJ1ZSkKKyAgICBl
bHNlOgorICAgICAgICBmID0gb3MuZmRvcGVuKG5ld2ZkLCBtb2RlLCBidWZmZXJpbmcpCisgICAg
ICAgIGlmIGVuY29kaW5nIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmV0dXJuIEVuY29kZWRG
aWxlKGYsIGVuY29kaW5nKQorICAgICAgICByZXR1cm4gZgorCitjbGFzcyBFbmNvZGVkRmlsZShv
YmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBfc3RyZWFtLCBlbmNvZGluZyk6CisgICAg
ICAgIHNlbGYuX3N0cmVhbSA9IF9zdHJlYW0KKyAgICAgICAgc2VsZi5lbmNvZGluZyA9IGVuY29k
aW5nCisKKyAgICBkZWYgd3JpdGUoc2VsZiwgb2JqKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShv
YmosIHVuaWNvZGUpOgorICAgICAgICAgICAgb2JqID0gb2JqLmVuY29kZShzZWxmLmVuY29kaW5n
KQorICAgICAgICBlbGlmIGlzaW5zdGFuY2Uob2JqLCBzdHIpOgorICAgICAgICAgICAgcGFzcwor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgb2JqID0gc3RyKG9iaikKKyAgICAgICAgc2VsZi5f
c3RyZWFtLndyaXRlKG9iaikKKworICAgIGRlZiB3cml0ZWxpbmVzKHNlbGYsIGxpbmVsaXN0KToK
KyAgICAgICAgZGF0YSA9ICcnLmpvaW4obGluZWxpc3QpCisgICAgICAgIHNlbGYud3JpdGUoZGF0
YSkKKworICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCBuYW1lKToKKyAgICAgICAgcmV0dXJuIGdl
dGF0dHIoc2VsZi5fc3RyZWFtLCBuYW1lKQorCitjbGFzcyBDYXB0dXJlKG9iamVjdCk6CisgICAg
ZGVmIGNhbGwoY2xzLCBmdW5jLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiIgcmV0dXJu
IGEgKHJlcywgb3V0LCBlcnIpIHR1cGxlIHdoZXJlCisgICAgICAgICAgICBvdXQgYW5kIGVyciBy
ZXByZXNlbnQgdGhlIG91dHB1dC9lcnJvciBvdXRwdXQKKyAgICAgICAgICAgIGR1cmluZyBmdW5j
dGlvbiBleGVjdXRpb24uCisgICAgICAgICAgICBjYWxsIHRoZSBnaXZlbiBmdW5jdGlvbiB3aXRo
IGFyZ3Mva3dhcmdzCisgICAgICAgICAgICBhbmQgY2FwdHVyZSBvdXRwdXQvZXJyb3IgZHVyaW5n
IGl0cyBleGVjdXRpb24uCisgICAgICAgICIiIgorICAgICAgICBzbyA9IGNscygpCisgICAgICAg
IHRyeToKKyAgICAgICAgICAgIHJlcyA9IGZ1bmMoKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBm
aW5hbGx5OgorICAgICAgICAgICAgb3V0LCBlcnIgPSBzby5yZXNldCgpCisgICAgICAgIHJldHVy
biByZXMsIG91dCwgZXJyCisgICAgY2FsbCA9IGNsYXNzbWV0aG9kKGNhbGwpCisKKyAgICBkZWYg
cmVzZXQoc2VsZik6CisgICAgICAgICIiIiByZXNldCBzeXMuc3Rkb3V0L3N0ZGVyciBhbmQgcmV0
dXJuIGNhcHR1cmVkIG91dHB1dCBhcyBzdHJpbmdzLiAiIiIKKyAgICAgICAgaWYgaGFzYXR0cihz
ZWxmLCAnX3Jlc2V0Jyk6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ3YXMgYWxyZWFk
eSByZXNldCIpCisgICAgICAgIHNlbGYuX3Jlc2V0ID0gVHJ1ZQorICAgICAgICBvdXRmaWxlLCBl
cnJmaWxlID0gc2VsZi5kb25lKHNhdmU9RmFsc2UpCisgICAgICAgIG91dCwgZXJyID0gIiIsICIi
CisgICAgICAgIGlmIG91dGZpbGUgYW5kIG5vdCBvdXRmaWxlLmNsb3NlZDoKKyAgICAgICAgICAg
IG91dCA9IG91dGZpbGUucmVhZCgpCisgICAgICAgICAgICBvdXRmaWxlLmNsb3NlKCkKKyAgICAg
ICAgaWYgZXJyZmlsZSBhbmQgZXJyZmlsZSAhPSBvdXRmaWxlIGFuZCBub3QgZXJyZmlsZS5jbG9z
ZWQ6CisgICAgICAgICAgICBlcnIgPSBlcnJmaWxlLnJlYWQoKQorICAgICAgICAgICAgZXJyZmls
ZS5jbG9zZSgpCisgICAgICAgIHJldHVybiBvdXQsIGVycgorCisgICAgZGVmIHN1c3BlbmQoc2Vs
Zik6CisgICAgICAgICIiIiByZXR1cm4gY3VycmVudCBzbmFwc2hvdCBjYXB0dXJlcywgbWVtb3Jp
emUgdGVtcGZpbGVzLiAiIiIKKyAgICAgICAgb3V0ZXJyID0gc2VsZi5yZWFkb3V0ZXJyKCkKKyAg
ICAgICAgb3V0ZmlsZSwgZXJyZmlsZSA9IHNlbGYuZG9uZSgpCisgICAgICAgIHJldHVybiBvdXRl
cnIKKworCitjbGFzcyBTdGRDYXB0dXJlRkQoQ2FwdHVyZSk6CisgICAgIiIiIFRoaXMgY2xhc3Mg
YWxsb3dzIHRvIGNhcHR1cmUgd3JpdGVzIHRvIEZEMSBhbmQgRkQyCisgICAgICAgIGFuZCBtYXkg
Y29ubmVjdCBhIE5VTEwgZmlsZSB0byBGRDAgKGFuZCBwcmV2ZW50CisgICAgICAgIHJlYWRzIGZy
b20gc3lzLnN0ZGluKS4gIElmIGFueSBvZiB0aGUgMCwxLDIgZmlsZSBkZXNjcmlwdG9ycworICAg
ICAgICBpcyBpbnZhbGlkIGl0IHdpbGwgbm90IGJlIGNhcHR1cmVkLgorICAgICIiIgorICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBvdXQ9VHJ1ZSwgZXJyPVRydWUsIG1peGVkPUZhbHNlLAorICAgICAg
ICBpbl89VHJ1ZSwgcGF0Y2hzeXM9VHJ1ZSwgbm93PVRydWUpOgorICAgICAgICBzZWxmLl9vcHRp
b25zID0geworICAgICAgICAgICAgIm91dCI6IG91dCwKKyAgICAgICAgICAgICJlcnIiOiBlcnIs
CisgICAgICAgICAgICAibWl4ZWQiOiBtaXhlZCwKKyAgICAgICAgICAgICJpbl8iOiBpbl8sCisg
ICAgICAgICAgICAicGF0Y2hzeXMiOiBwYXRjaHN5cywKKyAgICAgICAgICAgICJub3ciOiBub3cs
CisgICAgICAgIH0KKyAgICAgICAgc2VsZi5fc2F2ZSgpCisgICAgICAgIGlmIG5vdzoKKyAgICAg
ICAgICAgIHNlbGYuc3RhcnRhbGwoKQorCisgICAgZGVmIF9zYXZlKHNlbGYpOgorICAgICAgICBp
bl8gPSBzZWxmLl9vcHRpb25zWydpbl8nXQorICAgICAgICBvdXQgPSBzZWxmLl9vcHRpb25zWydv
dXQnXQorICAgICAgICBlcnIgPSBzZWxmLl9vcHRpb25zWydlcnInXQorICAgICAgICBtaXhlZCA9
IHNlbGYuX29wdGlvbnNbJ21peGVkJ10KKyAgICAgICAgcGF0Y2hzeXMgPSBzZWxmLl9vcHRpb25z
WydwYXRjaHN5cyddCisgICAgICAgIGlmIGluXzoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAg
ICAgICAgICBzZWxmLmluXyA9IEZEQ2FwdHVyZSgwLCB0bXBmaWxlPU5vbmUsIG5vdz1GYWxzZSwK
KyAgICAgICAgICAgICAgICAgICAgcGF0Y2hzeXM9cGF0Y2hzeXMpCisgICAgICAgICAgICBleGNl
cHQgT1NFcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgIGlmIG91dDoKKyAgICAg
ICAgICAgIHRtcGZpbGUgPSBOb25lCisgICAgICAgICAgICBpZiBoYXNhdHRyKG91dCwgJ3dyaXRl
Jyk6CisgICAgICAgICAgICAgICAgdG1wZmlsZSA9IG91dAorICAgICAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgICAgIHNlbGYub3V0ID0gRkRDYXB0dXJlKDEsIHRtcGZpbGU9dG1wZmlsZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG5vdz1GYWxzZSwgcGF0Y2hzeXM9cGF0Y2hzeXMpCisg
ICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9uc1snb3V0J10gPSBzZWxmLm91dC50bXBmaWxlCisg
ICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAg
IGlmIGVycjoKKyAgICAgICAgICAgIGlmIG91dCBhbmQgbWl4ZWQ6CisgICAgICAgICAgICAgICAg
dG1wZmlsZSA9IHNlbGYub3V0LnRtcGZpbGUKKyAgICAgICAgICAgIGVsaWYgaGFzYXR0cihlcnIs
ICd3cml0ZScpOgorICAgICAgICAgICAgICAgIHRtcGZpbGUgPSBlcnIKKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgdG1wZmlsZSA9IE5vbmUKKyAgICAgICAgICAgIHRyeToKKyAg
ICAgICAgICAgICAgICBzZWxmLmVyciA9IEZEQ2FwdHVyZSgyLCB0bXBmaWxlPXRtcGZpbGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICBub3c9RmFsc2UsIHBhdGNoc3lzPXBhdGNoc3lzKQor
ICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnNbJ2VyciddID0gc2VsZi5lcnIudG1wZmlsZQor
ICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAg
ZGVmIHN0YXJ0YWxsKHNlbGYpOgorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdpbl8nKToKKyAg
ICAgICAgICAgIHNlbGYuaW5fLnN0YXJ0KCkKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnb3V0
Jyk6CisgICAgICAgICAgICBzZWxmLm91dC5zdGFydCgpCisgICAgICAgIGlmIGhhc2F0dHIoc2Vs
ZiwgJ2VycicpOgorICAgICAgICAgICAgc2VsZi5lcnIuc3RhcnQoKQorCisgICAgZGVmIHJlc3Vt
ZShzZWxmKToKKyAgICAgICAgIiIiIHJlc3VtZSBjYXB0dXJpbmcgd2l0aCBvcmlnaW5hbCB0ZW1w
IGZpbGVzLiAiIiIKKyAgICAgICAgc2VsZi5zdGFydGFsbCgpCisKKyAgICBkZWYgZG9uZShzZWxm
LCBzYXZlPVRydWUpOgorICAgICAgICAiIiIgcmV0dXJuIChvdXRmaWxlLCBlcnJmaWxlKSBhbmQg
c3RvcCBjYXB0dXJpbmcuICIiIgorICAgICAgICBvdXRmaWxlID0gZXJyZmlsZSA9IE5vbmUKKyAg
ICAgICAgaWYgaGFzYXR0cihzZWxmLCAnb3V0JykgYW5kIG5vdCBzZWxmLm91dC50bXBmaWxlLmNs
b3NlZDoKKyAgICAgICAgICAgIG91dGZpbGUgPSBzZWxmLm91dC5kb25lKCkKKyAgICAgICAgaWYg
aGFzYXR0cihzZWxmLCAnZXJyJykgYW5kIG5vdCBzZWxmLmVyci50bXBmaWxlLmNsb3NlZDoKKyAg
ICAgICAgICAgIGVycmZpbGUgPSBzZWxmLmVyci5kb25lKCkKKyAgICAgICAgaWYgaGFzYXR0cihz
ZWxmLCAnaW5fJyk6CisgICAgICAgICAgICB0bXBmaWxlID0gc2VsZi5pbl8uZG9uZSgpCisgICAg
ICAgIGlmIHNhdmU6CisgICAgICAgICAgICBzZWxmLl9zYXZlKCkKKyAgICAgICAgcmV0dXJuIG91
dGZpbGUsIGVycmZpbGUKKworICAgIGRlZiByZWFkb3V0ZXJyKHNlbGYpOgorICAgICAgICAiIiIg
cmV0dXJuIHNuYXBzaG90IHZhbHVlIG9mIHN0ZG91dC9zdGRlcnIgY2FwdHVyaW5ncy4gIiIiCisg
ICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgIm91dCIpOgorICAgICAgICAgICAgb3V0ID0gc2VsZi5f
cmVhZHNuYXBzaG90KHNlbGYub3V0LnRtcGZpbGUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICBvdXQgPSAiIgorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJlcnIiKToKKyAgICAgICAgICAg
IGVyciA9IHNlbGYuX3JlYWRzbmFwc2hvdChzZWxmLmVyci50bXBmaWxlKQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgZXJyID0gIiIKKyAgICAgICAgcmV0dXJuIFtvdXQsIGVycl0KKworICAg
IGRlZiBfcmVhZHNuYXBzaG90KHNlbGYsIGYpOgorICAgICAgICBmLnNlZWsoMCkKKyAgICAgICAg
cmVzID0gZi5yZWFkKCkKKyAgICAgICAgZW5jID0gZ2V0YXR0cihmLCAiZW5jb2RpbmciLCBOb25l
KQorICAgICAgICBpZiBlbmM6CisgICAgICAgICAgICByZXMgPSBweS5idWlsdGluLl90b3RleHQo
cmVzLCBlbmMsICJyZXBsYWNlIikKKyAgICAgICAgZi50cnVuY2F0ZSgwKQorICAgICAgICBmLnNl
ZWsoMCkKKyAgICAgICAgcmV0dXJuIHJlcworCisKK2NsYXNzIFN0ZENhcHR1cmUoQ2FwdHVyZSk6
CisgICAgIiIiIFRoaXMgY2xhc3MgYWxsb3dzIHRvIGNhcHR1cmUgd3JpdGVzIHRvIHN5cy5zdGRv
dXR8c3RkZXJyICJpbi1tZW1vcnkiCisgICAgICAgIGFuZCB3aWxsIHJhaXNlIGVycm9ycyBvbiB0
cmllcyB0byByZWFkIGZyb20gc3lzLnN0ZGluLiBJdCBvbmx5CisgICAgICAgIG1vZGlmaWVzIHN5
cy5zdGRvdXR8c3RkZXJyfHN0ZGluIGF0dHJpYnV0ZXMgYW5kIGRvZXMgbm90CisgICAgICAgIHRv
dWNoIHVuZGVybHlpbmcgRmlsZSBEZXNjcmlwdG9ycyAodXNlIFN0ZENhcHR1cmVGRCBmb3IgdGhh
dCkuCisgICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG91dD1UcnVlLCBlcnI9VHJ1ZSwg
aW5fPVRydWUsIG1peGVkPUZhbHNlLCBub3c9VHJ1ZSk6CisgICAgICAgIHNlbGYuX29sZG91dCA9
IHN5cy5zdGRvdXQKKyAgICAgICAgc2VsZi5fb2xkZXJyID0gc3lzLnN0ZGVycgorICAgICAgICBz
ZWxmLl9vbGRpbiAgPSBzeXMuc3RkaW4KKyAgICAgICAgaWYgb3V0IGFuZCBub3QgaGFzYXR0cihv
dXQsICdmaWxlJyk6CisgICAgICAgICAgICBvdXQgPSBUZXh0SU8oKQorICAgICAgICBzZWxmLm91
dCA9IG91dAorICAgICAgICBpZiBlcnI6CisgICAgICAgICAgICBpZiBtaXhlZDoKKyAgICAgICAg
ICAgICAgICBlcnIgPSBvdXQKKyAgICAgICAgICAgIGVsaWYgbm90IGhhc2F0dHIoZXJyLCAnd3Jp
dGUnKToKKyAgICAgICAgICAgICAgICBlcnIgPSBUZXh0SU8oKQorICAgICAgICBzZWxmLmVyciA9
IGVycgorICAgICAgICBzZWxmLmluXyA9IGluXworICAgICAgICBpZiBub3c6CisgICAgICAgICAg
ICBzZWxmLnN0YXJ0YWxsKCkKKworICAgIGRlZiBzdGFydGFsbChzZWxmKToKKyAgICAgICAgaWYg
c2VsZi5vdXQ6CisgICAgICAgICAgICBzeXMuc3Rkb3V0ID0gc2VsZi5vdXQKKyAgICAgICAgaWYg
c2VsZi5lcnI6CisgICAgICAgICAgICBzeXMuc3RkZXJyID0gc2VsZi5lcnIKKyAgICAgICAgaWYg
c2VsZi5pbl86CisgICAgICAgICAgICBzeXMuc3RkaW4gID0gc2VsZi5pbl8gID0gRG9udFJlYWRG
cm9tSW5wdXQoKQorCisgICAgZGVmIGRvbmUoc2VsZiwgc2F2ZT1UcnVlKToKKyAgICAgICAgIiIi
IHJldHVybiAob3V0ZmlsZSwgZXJyZmlsZSkgYW5kIHN0b3AgY2FwdHVyaW5nLiAiIiIKKyAgICAg
ICAgb3V0ZmlsZSA9IGVycmZpbGUgPSBOb25lCisgICAgICAgIGlmIHNlbGYub3V0IGFuZCBub3Qg
c2VsZi5vdXQuY2xvc2VkOgorICAgICAgICAgICAgc3lzLnN0ZG91dCA9IHNlbGYuX29sZG91dAor
ICAgICAgICAgICAgb3V0ZmlsZSA9IHNlbGYub3V0CisgICAgICAgICAgICBvdXRmaWxlLnNlZWso
MCkKKyAgICAgICAgaWYgc2VsZi5lcnIgYW5kIG5vdCBzZWxmLmVyci5jbG9zZWQ6CisgICAgICAg
ICAgICBzeXMuc3RkZXJyID0gc2VsZi5fb2xkZXJyCisgICAgICAgICAgICBlcnJmaWxlID0gc2Vs
Zi5lcnIKKyAgICAgICAgICAgIGVycmZpbGUuc2VlaygwKQorICAgICAgICBpZiBzZWxmLmluXzoK
KyAgICAgICAgICAgIHN5cy5zdGRpbiA9IHNlbGYuX29sZGluCisgICAgICAgIHJldHVybiBvdXRm
aWxlLCBlcnJmaWxlCisKKyAgICBkZWYgcmVzdW1lKHNlbGYpOgorICAgICAgICAiIiIgcmVzdW1l
IGNhcHR1cmluZyB3aXRoIG9yaWdpbmFsIHRlbXAgZmlsZXMuICIiIgorICAgICAgICBzZWxmLnN0
YXJ0YWxsKCkKKworICAgIGRlZiByZWFkb3V0ZXJyKHNlbGYpOgorICAgICAgICAiIiIgcmV0dXJu
IHNuYXBzaG90IHZhbHVlIG9mIHN0ZG91dC9zdGRlcnIgY2FwdHVyaW5ncy4gIiIiCisgICAgICAg
IG91dCA9IGVyciA9ICIiCisgICAgICAgIGlmIHNlbGYub3V0OgorICAgICAgICAgICAgb3V0ID0g
c2VsZi5vdXQuZ2V0dmFsdWUoKQorICAgICAgICAgICAgc2VsZi5vdXQudHJ1bmNhdGUoMCkKKyAg
ICAgICAgICAgIHNlbGYub3V0LnNlZWsoMCkKKyAgICAgICAgaWYgc2VsZi5lcnI6CisgICAgICAg
ICAgICBlcnIgPSBzZWxmLmVyci5nZXR2YWx1ZSgpCisgICAgICAgICAgICBzZWxmLmVyci50cnVu
Y2F0ZSgwKQorICAgICAgICAgICAgc2VsZi5lcnIuc2VlaygwKQorICAgICAgICByZXR1cm4gb3V0
LCBlcnIKKworY2xhc3MgRG9udFJlYWRGcm9tSW5wdXQ6CisgICAgIiIiVGVtcG9yYXJ5IHN0dWIg
Y2xhc3MuICBJZGVhbGx5IHdoZW4gc3RkaW4gaXMgYWNjZXNzZWQsIHRoZQorICAgIGNhcHR1cmlu
ZyBzaG91bGQgYmUgdHVybmVkIG9mZiwgd2l0aCBwb3NzaWJseSBhbGwgZGF0YSBjYXB0dXJlZAor
ICAgIHNvIGZhciBzZW50IHRvIHRoZSBzY3JlZW4uICBUaGlzIHNob3VsZCBiZSBjb25maWd1cmFi
bGUsIHRob3VnaCwKKyAgICBiZWNhdXNlIGluIGF1dG9tYXRlZCB0ZXN0IHJ1bnMgaXQgaXMgYmV0
dGVyIHRvIGNyYXNoIHRoYW4KKyAgICBoYW5nIGluZGVmaW5pdGVseS4KKyAgICAiIiIKKyAgICBk
ZWYgcmVhZChzZWxmLCAqYXJncyk6CisgICAgICAgIHJhaXNlIElPRXJyb3IoInJlYWRpbmcgZnJv
bSBzdGRpbiB3aGlsZSBvdXRwdXQgaXMgY2FwdHVyZWQiKQorICAgIHJlYWRsaW5lID0gcmVhZAor
ICAgIHJlYWRsaW5lcyA9IHJlYWQKKyAgICBfX2l0ZXJfXyA9IHJlYWQKKworICAgIGRlZiBmaWxl
bm8oc2VsZik6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInJlZGlyZWN0ZWQgU3RkaW4gaXMg
cHNldWRvZmlsZSwgaGFzIG5vIGZpbGVubygpIikKKyAgICBkZWYgaXNhdHR5KHNlbGYpOgorICAg
ICAgICByZXR1cm4gRmFsc2UKKyAgICBkZWYgY2xvc2Uoc2VsZik6CisgICAgICAgIHBhc3MKKwor
dHJ5OgorICAgIGRldm51bGxwYXRoID0gb3MuZGV2bnVsbAorZXhjZXB0IEF0dHJpYnV0ZUVycm9y
OgorICAgIGlmIG9zLm5hbWUgPT0gJ250JzoKKyAgICAgICAgZGV2bnVsbHBhdGggPSAnTlVMJwor
ICAgIGVsc2U6CisgICAgICAgIGRldm51bGxwYXRoID0gJy9kZXYvbnVsbCcKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvcHkvX2lvL3NhZmVyZXByLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9faW8vc2FmZXJlcHIucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODUxODI5MGVmZGRlY2RjODUyNGM2NDJhYmJkNWFiYTc2ZGFkYTQ0YwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2lvL3NhZmVyZXByLnB5CkBAIC0wLDAgKzEsNzEg
QEAKK2ltcG9ydCBweQoraW1wb3J0IHN5cworCitidWlsdGluX3JlcHIgPSByZXByCisKK3JlcHJs
aWIgPSBweS5idWlsdGluLl90cnlpbXBvcnQoJ3JlcHInLCAncmVwcmxpYicpCisKK2NsYXNzIFNh
ZmVSZXByKHJlcHJsaWIuUmVwcik6CisgICAgIiIiIHN1YmNsYXNzIG9mIHJlcHIuUmVwciB0aGF0
IGxpbWl0cyB0aGUgcmVzdWx0aW5nIHNpemUgb2YgcmVwcigpCisgICAgICAgIGFuZCBpbmNsdWRl
cyBpbmZvcm1hdGlvbiBvbiBleGNlcHRpb25zIHJhaXNlZCBkdXJpbmcgdGhlIGNhbGwuCisgICAg
IiIiCisgICAgZGVmIHJlcHIoc2VsZiwgeCk6CisgICAgICAgIHJldHVybiBzZWxmLl9jYWxsaGVs
cGVyKHJlcHJsaWIuUmVwci5yZXByLCBzZWxmLCB4KQorCisgICAgZGVmIHJlcHJfdW5pY29kZShz
ZWxmLCB4LCBsZXZlbCk6CisgICAgICAgICMgU3RyaWN0bHkgc3BlYWtpbmcgd3Jvbmcgb24gbmFy
cm93IGJ1aWxkcworICAgICAgICBkZWYgcmVwcih1KToKKyAgICAgICAgICAgIGlmICInIiBub3Qg
aW4gdToKKyAgICAgICAgICAgICAgICByZXR1cm4gcHkuYnVpbHRpbi5fdG90ZXh0KCInJXMnIikg
JSB1CisgICAgICAgICAgICBlbGlmICciJyBub3QgaW4gdToKKyAgICAgICAgICAgICAgICByZXR1
cm4gcHkuYnVpbHRpbi5fdG90ZXh0KCciJXMiJykgJSB1CisgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgIHJldHVybiBweS5idWlsdGluLl90b3RleHQoIiclcyciKSAlIHUucmVwbGFj
ZSgiJyIsIHIiXCciKQorICAgICAgICBzID0gcmVwcih4WzpzZWxmLm1heHN0cmluZ10pCisgICAg
ICAgIGlmIGxlbihzKSA+IHNlbGYubWF4c3RyaW5nOgorICAgICAgICAgICAgaSA9IG1heCgwLCAo
c2VsZi5tYXhzdHJpbmctMykvLzIpCisgICAgICAgICAgICBqID0gbWF4KDAsIHNlbGYubWF4c3Ry
aW5nLTMtaSkKKyAgICAgICAgICAgIHMgPSByZXByKHhbOmldICsgeFtsZW4oeCktajpdKQorICAg
ICAgICAgICAgcyA9IHNbOmldICsgJy4uLicgKyBzW2xlbihzKS1qOl0KKyAgICAgICAgcmV0dXJu
IHMKKworICAgIGRlZiByZXByX2luc3RhbmNlKHNlbGYsIHgsIGxldmVsKToKKyAgICAgICAgcmV0
dXJuIHNlbGYuX2NhbGxoZWxwZXIoYnVpbHRpbl9yZXByLCB4KQorCisgICAgZGVmIF9jYWxsaGVs
cGVyKHNlbGYsIGNhbGwsIHgsICphcmdzKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBU
cnkgdGhlIHZhbmlsbGEgcmVwciBhbmQgbWFrZSBzdXJlIHRoYXQgdGhlIHJlc3VsdCBpcyBhIHN0
cmluZworICAgICAgICAgICAgcyA9IGNhbGwoeCwgKmFyZ3MpCisgICAgICAgIGV4Y2VwdCBweS5i
dWlsdGluLl9zeXNleDoKKyAgICAgICAgICAgIHJhaXNlCisgICAgICAgIGV4Y2VwdDoKKyAgICAg
ICAgICAgIGNscywgZSwgdGIgPSBzeXMuZXhjX2luZm8oKQorICAgICAgICAgICAgZXhjX25hbWUg
PSBnZXRhdHRyKGNscywgJ19fbmFtZV9fJywgJ3Vua25vd24nKQorICAgICAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgICAgIGV4Y19pbmZvID0gc3RyKGUpCisgICAgICAgICAgICBleGNlcHQgcHku
YnVpbHRpbi5fc3lzZXg6CisgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgIGV4Y2Vw
dDoKKyAgICAgICAgICAgICAgICBleGNfaW5mbyA9ICd1bmtub3duJworICAgICAgICAgICAgcmV0
dXJuICc8WyVzKCIlcyIpIHJhaXNlZCBpbiByZXByKCldICVzIG9iamVjdCBhdCAweCV4PicgJSAo
CisgICAgICAgICAgICAgICAgZXhjX25hbWUsIGV4Y19pbmZvLCB4Ll9fY2xhc3NfXy5fX25hbWVf
XywgaWQoeCkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBsZW4ocykgPiBzZWxmLm1h
eHNpemU6CisgICAgICAgICAgICAgICAgaSA9IG1heCgwLCAoc2VsZi5tYXhzaXplLTMpLy8yKQor
ICAgICAgICAgICAgICAgIGogPSBtYXgoMCwgc2VsZi5tYXhzaXplLTMtaSkKKyAgICAgICAgICAg
ICAgICBzID0gc1s6aV0gKyAnLi4uJyArIHNbbGVuKHMpLWo6XQorICAgICAgICAgICAgcmV0dXJu
IHMKKworZGVmIHNhZmVyZXByKG9iaiwgbWF4c2l6ZT0yNDApOgorICAgICIiIiByZXR1cm4gYSBz
aXplLWxpbWl0ZWQgc2FmZSByZXByLXN0cmluZyBmb3IgdGhlIGdpdmVuIG9iamVjdC4KKyAgICBG
YWlsaW5nIF9fcmVwcl9fIGZ1bmN0aW9ucyBvZiB1c2VyIGluc3RhbmNlcyB3aWxsIGJlIHJlcHJl
c2VudGVkCisgICAgd2l0aCBhIHNob3J0IGV4Y2VwdGlvbiBpbmZvIGFuZCAnc2FmZXJlcHInIGdl
bmVyYWxseSB0YWtlcworICAgIGNhcmUgdG8gbmV2ZXIgcmFpc2UgZXhjZXB0aW9ucyBpdHNlbGYu
ICBUaGlzIGZ1bmN0aW9uIGlzIGEgd3JhcHBlcgorICAgIGFyb3VuZCB0aGUgUmVwci9yZXBybGli
IGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHN0YW5kYXJkIDIuNiBsaWIuCisgICAgIiIiCisgICAgIyBy
ZXZpZXcgZXhjZXB0aW9uIGhhbmRsaW5nCisgICAgc3JlcHIgPSBTYWZlUmVwcigpCisgICAgc3Jl
cHIubWF4c3RyaW5nID0gbWF4c2l6ZQorICAgIHNyZXByLm1heHNpemUgPSBtYXhzaXplCisgICAg
c3JlcHIubWF4b3RoZXIgPSAxNjAKKyAgICByZXR1cm4gc3JlcHIucmVwcihvYmopCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L3B5L19pby90ZXJtaW5hbHdyaXRlci5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2lvL3Rl
cm1pbmFsd3JpdGVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0ZDMxMjU5ZGFjOTQyOTJkNTQ5MDQ4MjRkYWJl
MzFiMWNlOGQ1M2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19pby90ZXJtaW5hbHdy
aXRlci5weQpAQCAtMCwwICsxLDM4NCBAQAorIiIiCisKK0hlbHBlciBmdW5jdGlvbnMgZm9yIHdy
aXRpbmcgdG8gdGVybWluYWxzIGFuZCBmaWxlcy4KKworIiIiCisKKworaW1wb3J0IHN5cywgb3MK
K2ltcG9ydCBweQorcHkzayA9IHN5cy52ZXJzaW9uX2luZm9bMF0gPj0gMworZnJvbSBweS5idWls
dGluIGltcG9ydCB0ZXh0LCBieXRlcworCit3aW4zMl9hbmRfY3R5cGVzID0gRmFsc2UKK2NvbG9y
YW1hID0gTm9uZQoraWYgc3lzLnBsYXRmb3JtID09ICJ3aW4zMiI6CisgICAgdHJ5OgorICAgICAg
ICBpbXBvcnQgY29sb3JhbWEKKyAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIGltcG9ydCBjdHlwZXMKKyAgICAgICAgICAgIHdpbjMyX2FuZF9jdHlwZXMg
PSBUcnVlCisgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKwor
CitkZWYgX2dldGRpbWVuc2lvbnMoKToKKyAgICBpbXBvcnQgdGVybWlvcyxmY250bCxzdHJ1Y3QK
KyAgICBjYWxsID0gZmNudGwuaW9jdGwoMSx0ZXJtaW9zLlRJT0NHV0lOU1osIlwwMDAiKjgpCisg
ICAgaGVpZ2h0LHdpZHRoID0gc3RydWN0LnVucGFjayggImhoaGgiLCBjYWxsICkgWzoyXQorICAg
IHJldHVybiBoZWlnaHQsIHdpZHRoCisKKworZGVmIGdldF90ZXJtaW5hbF93aWR0aCgpOgorICAg
IHdpZHRoID0gMAorICAgIHRyeToKKyAgICAgICAgXywgd2lkdGggPSBfZ2V0ZGltZW5zaW9ucygp
CisgICAgZXhjZXB0IHB5LmJ1aWx0aW4uX3N5c2V4OgorICAgICAgICByYWlzZQorICAgIGV4Y2Vw
dDoKKyAgICAgICAgIyBwYXNzIHRvIGZhbGxiYWNrIGJlbG93CisgICAgICAgIHBhc3MKKworICAg
IGlmIHdpZHRoID09IDA6CisgICAgICAgICMgRkFMTEJBQ0s6CisgICAgICAgICMgKiBzb21lIGV4
Y2VwdGlvbiBoYXBwZW5lZAorICAgICAgICAjICogb3IgdGhpcyBpcyBlbWFjcyB0ZXJtaW5hbCB3
aGljaCByZXBvcnRzICgwLDApCisgICAgICAgIHdpZHRoID0gaW50KG9zLmVudmlyb24uZ2V0KCdD
T0xVTU5TJywgODApKQorCisgICAgIyBYWFggdGhlIHdpbmRvd3MgZ2V0ZGltZW5zaW9ucyBtYXkg
YmUgYm9ndXMsIGxldCdzIHNhbmlmeSBhIGJpdAorICAgIGlmIHdpZHRoIDwgNDA6CisgICAgICAg
IHdpZHRoID0gODAKKyAgICByZXR1cm4gd2lkdGgKKwordGVybWluYWxfd2lkdGggPSBnZXRfdGVy
bWluYWxfd2lkdGgoKQorCisjIFhYWCB1bmlmeSB3aXRoIF9lc2NhcGVkIGZ1bmMgYmVsb3cKK2Rl
ZiBhbnNpX3ByaW50KHRleHQsIGVzYywgZmlsZT1Ob25lLCBuZXdsaW5lPVRydWUsIGZsdXNoPUZh
bHNlKToKKyAgICBpZiBmaWxlIGlzIE5vbmU6CisgICAgICAgIGZpbGUgPSBzeXMuc3RkZXJyCisg
ICAgdGV4dCA9IHRleHQucnN0cmlwKCkKKyAgICBpZiBlc2MgYW5kIG5vdCBpc2luc3RhbmNlKGVz
YywgdHVwbGUpOgorICAgICAgICBlc2MgPSAoZXNjLCkKKyAgICBpZiBlc2MgYW5kIHN5cy5wbGF0
Zm9ybSAhPSAid2luMzIiIGFuZCBmaWxlLmlzYXR0eSgpOgorICAgICAgICB0ZXh0ID0gKCcnLmpv
aW4oWydceDFiWyVzbScgJSBjb2QgZm9yIGNvZCBpbiBlc2NdKSAgKworICAgICAgICAgICAgICAg
IHRleHQgKworICAgICAgICAgICAgICAgICdceDFiWzBtJykgICAgICMgQU5TSSBjb2xvciBjb2Rl
ICJyZXNldCIKKyAgICBpZiBuZXdsaW5lOgorICAgICAgICB0ZXh0ICs9ICdcbicKKworICAgIGlm
IGVzYyBhbmQgd2luMzJfYW5kX2N0eXBlcyBhbmQgZmlsZS5pc2F0dHkoKToKKyAgICAgICAgaWYg
MSBpbiBlc2M6CisgICAgICAgICAgICBib2xkID0gVHJ1ZQorICAgICAgICAgICAgZXNjID0gdHVw
bGUoW3ggZm9yIHggaW4gZXNjIGlmIHggIT0gMV0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICBib2xkID0gRmFsc2UKKyAgICAgICAgZXNjdGFibGUgPSB7KCkgICA6IEZPUkVHUk9VTkRfV0hJ
VEUsICAgICAgICAgICAgICAgICAjIG5vcm1hbAorICAgICAgICAgICAgICAgICAgICAoMzEsKTog
Rk9SRUdST1VORF9SRUQsICAgICAgICAgICAgICAgICAgICMgcmVkCisgICAgICAgICAgICAgICAg
ICAgICgzMiwpOiBGT1JFR1JPVU5EX0dSRUVOLCAgICAgICAgICAgICAgICAgIyBncmVlbgorICAg
ICAgICAgICAgICAgICAgICAoMzMsKTogRk9SRUdST1VORF9HUkVFTnxGT1JFR1JPVU5EX1JFRCwg
ICMgeWVsbG93CisgICAgICAgICAgICAgICAgICAgICgzNCwpOiBGT1JFR1JPVU5EX0JMVUUsICAg
ICAgICAgICAgICAgICAgIyBibHVlCisgICAgICAgICAgICAgICAgICAgICgzNSwpOiBGT1JFR1JP
VU5EX0JMVUV8Rk9SRUdST1VORF9SRUQsICAgIyBwdXJwbGUKKyAgICAgICAgICAgICAgICAgICAg
KDM2LCk6IEZPUkVHUk9VTkRfQkxVRXxGT1JFR1JPVU5EX0dSRUVOLCAjIGN5YW4KKyAgICAgICAg
ICAgICAgICAgICAgKDM3LCk6IEZPUkVHUk9VTkRfV0hJVEUsICAgICAgICAgICAgICAgICAjIHdo
aXRlCisgICAgICAgICAgICAgICAgICAgICgzOSwpOiBGT1JFR1JPVU5EX1dISVRFLCAgICAgICAg
ICAgICAgICAgIyByZXNldAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgIGF0dHIgPSBl
c2N0YWJsZS5nZXQoZXNjLCBGT1JFR1JPVU5EX1dISVRFKQorICAgICAgICBpZiBib2xkOgorICAg
ICAgICAgICAgYXR0ciB8PSBGT1JFR1JPVU5EX0lOVEVOU0lUWQorICAgICAgICBTVERfT1VUUFVU
X0hBTkRMRSA9IC0xMQorICAgICAgICBTVERfRVJST1JfSEFORExFID0gLTEyCisgICAgICAgIGlm
IGZpbGUgaXMgc3lzLnN0ZGVycjoKKyAgICAgICAgICAgIGhhbmRsZSA9IEdldFN0ZEhhbmRsZShT
VERfRVJST1JfSEFORExFKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaGFuZGxlID0gR2V0
U3RkSGFuZGxlKFNURF9PVVRQVVRfSEFORExFKQorICAgICAgICBvbGRjb2xvcnMgPSBHZXRDb25z
b2xlSW5mbyhoYW5kbGUpLndBdHRyaWJ1dGVzCisgICAgICAgIGF0dHIgfD0gKG9sZGNvbG9ycyAm
IDB4MGYwKQorICAgICAgICBTZXRDb25zb2xlVGV4dEF0dHJpYnV0ZShoYW5kbGUsIGF0dHIpCisg
ICAgICAgIHdoaWxlIGxlbih0ZXh0KSA+IDMyNzY4OgorICAgICAgICAgICAgZmlsZS53cml0ZSh0
ZXh0WzozMjc2OF0pCisgICAgICAgICAgICB0ZXh0ID0gdGV4dFszMjc2ODpdCisgICAgICAgIGlm
IHRleHQ6CisgICAgICAgICAgICBmaWxlLndyaXRlKHRleHQpCisgICAgICAgIFNldENvbnNvbGVU
ZXh0QXR0cmlidXRlKGhhbmRsZSwgb2xkY29sb3JzKQorICAgIGVsc2U6CisgICAgICAgIGZpbGUu
d3JpdGUodGV4dCkKKworICAgIGlmIGZsdXNoOgorICAgICAgICBmaWxlLmZsdXNoKCkKKworZGVm
IHNob3VsZF9kb19tYXJrdXAoZmlsZSk6CisgICAgaWYgb3MuZW52aXJvbi5nZXQoJ1BZX0NPTE9S
UycpID09ICcxJzoKKyAgICAgICAgcmV0dXJuIFRydWUKKyAgICBpZiBvcy5lbnZpcm9uLmdldCgn
UFlfQ09MT1JTJykgPT0gJzAnOgorICAgICAgICByZXR1cm4gRmFsc2UKKyAgICByZXR1cm4gaGFz
YXR0cihmaWxlLCAnaXNhdHR5JykgYW5kIGZpbGUuaXNhdHR5KCkgXAorICAgICAgICAgICBhbmQg
b3MuZW52aXJvbi5nZXQoJ1RFUk0nKSAhPSAnZHVtYicgXAorICAgICAgICAgICBhbmQgbm90IChz
eXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnamF2YScpIGFuZCBvcy5fbmFtZSA9PSAnbnQnKQorCitj
bGFzcyBUZXJtaW5hbFdyaXRlcihvYmplY3QpOgorICAgIF9lc2N0YWJsZSA9IGRpY3QoYmxhY2s9
MzAsIHJlZD0zMSwgZ3JlZW49MzIsIHllbGxvdz0zMywKKyAgICAgICAgICAgICAgICAgICAgIGJs
dWU9MzQsIHB1cnBsZT0zNSwgY3lhbj0zNiwgd2hpdGU9MzcsCisgICAgICAgICAgICAgICAgICAg
ICBCbGFjaz00MCwgUmVkPTQxLCBHcmVlbj00MiwgWWVsbG93PTQzLAorICAgICAgICAgICAgICAg
ICAgICAgQmx1ZT00NCwgUHVycGxlPTQ1LCBDeWFuPTQ2LCBXaGl0ZT00NywKKyAgICAgICAgICAg
ICAgICAgICAgIGJvbGQ9MSwgbGlnaHQ9MiwgYmxpbms9NSwgaW52ZXJ0PTcpCisKKyAgICAjIFhY
WCBkZXByZWNhdGUgc3RyaW5naW8gYXJndW1lbnQKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZmls
ZT1Ob25lLCBzdHJpbmdpbz1GYWxzZSwgZW5jb2Rpbmc9Tm9uZSk6CisgICAgICAgIGlmIGZpbGUg
aXMgTm9uZToKKyAgICAgICAgICAgIGlmIHN0cmluZ2lvOgorICAgICAgICAgICAgICAgIHNlbGYu
c3RyaW5naW8gPSBmaWxlID0gcHkuaW8uVGV4dElPKCkKKyAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgZnJvbSBzeXMgaW1wb3J0IHN0ZG91dCBhcyBmaWxlCisgICAgICAgIGVsaWYg
cHkuYnVpbHRpbi5jYWxsYWJsZShmaWxlKSBhbmQgbm90ICgKKyAgICAgICAgICAgICBoYXNhdHRy
KGZpbGUsICJ3cml0ZSIpIGFuZCBoYXNhdHRyKGZpbGUsICJmbHVzaCIpKToKKyAgICAgICAgICAg
IGZpbGUgPSBXcml0ZUZpbGUoZmlsZSwgZW5jb2Rpbmc9ZW5jb2RpbmcpCisgICAgICAgIGlmIGhh
c2F0dHIoZmlsZSwgImlzYXR0eSIpIGFuZCBmaWxlLmlzYXR0eSgpIGFuZCBjb2xvcmFtYToKKyAg
ICAgICAgICAgIGZpbGUgPSBjb2xvcmFtYS5BbnNpVG9XaW4zMihmaWxlKS5zdHJlYW0KKyAgICAg
ICAgc2VsZi5lbmNvZGluZyA9IGVuY29kaW5nIG9yIGdldGF0dHIoZmlsZSwgJ2VuY29kaW5nJywg
InV0Zi04IikKKyAgICAgICAgc2VsZi5fZmlsZSA9IGZpbGUKKyAgICAgICAgc2VsZi5oYXNtYXJr
dXAgPSBzaG91bGRfZG9fbWFya3VwKGZpbGUpCisgICAgICAgIHNlbGYuX2xhc3RsZW4gPSAwCisg
ICAgICAgIHNlbGYuX2NoYXJzX29uX2N1cnJlbnRfbGluZSA9IDAKKworICAgIEBwcm9wZXJ0eQor
ICAgIGRlZiBmdWxsd2lkdGgoc2VsZik6CisgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ190ZXJt
aW5hbF93aWR0aCcpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3Rlcm1pbmFsX3dpZHRoCisg
ICAgICAgIHJldHVybiBnZXRfdGVybWluYWxfd2lkdGgoKQorCisgICAgQGZ1bGx3aWR0aC5zZXR0
ZXIKKyAgICBkZWYgZnVsbHdpZHRoKHNlbGYsIHZhbHVlKToKKyAgICAgICAgc2VsZi5fdGVybWlu
YWxfd2lkdGggPSB2YWx1ZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGNoYXJzX29uX2N1cnJl
bnRfbGluZShzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVy
cyB3cml0dGVuIHNvIGZhciBpbiB0aGUgY3VycmVudCBsaW5lLgorCisgICAgICAgIFBsZWFzZSBu
b3RlIHRoYXQgdGhpcyBjb3VudCBkb2VzIG5vdCBwcm9kdWNlIGNvcnJlY3QgcmVzdWx0cyBhZnRl
ciBhIHJlbGluZSgpIGNhbGwsCisgICAgICAgIHNlZSAjMTY0LgorCisgICAgICAgIC4uIHZlcnNp
b25hZGRlZDo6IDEuNS4wCisKKyAgICAgICAgOnJ0eXBlOiBpbnQKKyAgICAgICAgIiIiCisgICAg
ICAgIHJldHVybiBzZWxmLl9jaGFyc19vbl9jdXJyZW50X2xpbmUKKworICAgIGRlZiBfZXNjYXBl
ZChzZWxmLCB0ZXh0LCBlc2MpOgorICAgICAgICBpZiBlc2MgYW5kIHNlbGYuaGFzbWFya3VwOgor
ICAgICAgICAgICAgdGV4dCA9ICgnJy5qb2luKFsnXHgxYlslc20nICUgY29kIGZvciBjb2QgaW4g
ZXNjXSkgICsKKyAgICAgICAgICAgICAgICB0ZXh0ICsnXHgxYlswbScpCisgICAgICAgIHJldHVy
biB0ZXh0CisKKyAgICBkZWYgbWFya3VwKHNlbGYsIHRleHQsICoqa3cpOgorICAgICAgICBlc2Mg
PSBbXQorICAgICAgICBmb3IgbmFtZSBpbiBrdzoKKyAgICAgICAgICAgIGlmIG5hbWUgbm90IGlu
IHNlbGYuX2VzY3RhYmxlOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInVua25v
d24gbWFya3VwOiAlciIgJShuYW1lLCkpCisgICAgICAgICAgICBpZiBrd1tuYW1lXToKKyAgICAg
ICAgICAgICAgICBlc2MuYXBwZW5kKHNlbGYuX2VzY3RhYmxlW25hbWVdKQorICAgICAgICByZXR1
cm4gc2VsZi5fZXNjYXBlZCh0ZXh0LCB0dXBsZShlc2MpKQorCisgICAgZGVmIHNlcChzZWxmLCBz
ZXBjaGFyLCB0aXRsZT1Ob25lLCBmdWxsd2lkdGg9Tm9uZSwgKiprdyk6CisgICAgICAgIGlmIGZ1
bGx3aWR0aCBpcyBOb25lOgorICAgICAgICAgICAgZnVsbHdpZHRoID0gc2VsZi5mdWxsd2lkdGgK
KyAgICAgICAgIyB0aGUgZ29hbCBpcyB0byBoYXZlIHRoZSBsaW5lIGJlIGFzIGxvbmcgYXMgcG9z
c2libGUKKyAgICAgICAgIyB1bmRlciB0aGUgY29uZGl0aW9uIHRoYXQgbGVuKGxpbmUpIDw9IGZ1
bGx3aWR0aAorICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gIndpbjMyIjoKKyAgICAgICAgICAg
ICMgaWYgd2UgcHJpbnQgaW4gdGhlIGxhc3QgY29sdW1uIG9uIHdpbmRvd3Mgd2UgYXJlIG9uIGEK
KyAgICAgICAgICAgICMgbmV3IGxpbmUgYnV0IHRoZXJlIGlzIG5vIHdheSB0byB2ZXJpZnkvbmV1
dHJhbGl6ZSB0aGlzCisgICAgICAgICAgICAjICh3ZSBtYXkgbm90IGtub3cgdGhlIGV4YWN0IGxp
bmUgd2lkdGgpCisgICAgICAgICAgICAjIHNvIGxldCdzIGJlIGRlZmVuc2l2ZSB0byBhdm9pZCBl
bXB0eSBsaW5lcyBpbiB0aGUgb3V0cHV0CisgICAgICAgICAgICBmdWxsd2lkdGggLT0gMQorICAg
ICAgICBpZiB0aXRsZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICMgd2Ugd2FudCAyICsgMips
ZW4oZmlsbCkgKyBsZW4odGl0bGUpIDw9IGZ1bGx3aWR0aAorICAgICAgICAgICAgIyBpLmUuICAg
IDIgKyAyKmxlbihzZXBjaGFyKSpOICsgbGVuKHRpdGxlKSA8PSBmdWxsd2lkdGgKKyAgICAgICAg
ICAgICMgICAgICAgICAyKmxlbihzZXBjaGFyKSpOIDw9IGZ1bGx3aWR0aCAtIGxlbih0aXRsZSkg
LSAyCisgICAgICAgICAgICAjICAgICAgICAgTiA8PSAoZnVsbHdpZHRoIC0gbGVuKHRpdGxlKSAt
IDIpIC8vICgyKmxlbihzZXBjaGFyKSkKKyAgICAgICAgICAgIE4gPSAoZnVsbHdpZHRoIC0gbGVu
KHRpdGxlKSAtIDIpIC8vICgyKmxlbihzZXBjaGFyKSkKKyAgICAgICAgICAgIGZpbGwgPSBzZXBj
aGFyICogTgorICAgICAgICAgICAgbGluZSA9ICIlcyAlcyAlcyIgJSAoZmlsbCwgdGl0bGUsIGZp
bGwpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIHdlIHdhbnQgbGVuKHNlcGNoYXIpKk4g
PD0gZnVsbHdpZHRoCisgICAgICAgICAgICAjIGkuZS4gICAgTiA8PSBmdWxsd2lkdGggLy8gbGVu
KHNlcGNoYXIpCisgICAgICAgICAgICBsaW5lID0gc2VwY2hhciAqIChmdWxsd2lkdGggLy8gbGVu
KHNlcGNoYXIpKQorICAgICAgICAjIGluIHNvbWUgc2l0dWF0aW9ucyB0aGVyZSBpcyByb29tIGZv
ciBhbiBleHRyYSBzZXBjaGFyIGF0IHRoZSByaWdodCwKKyAgICAgICAgIyBpbiBwYXJ0aWN1bGFy
IGlmIHdlIGNvbnNpZGVyIHRoYXQgd2l0aCBhIHNlcGNoYXIgbGlrZSAiXyAiIHRoZQorICAgICAg
ICAjIHRyYWlsaW5nIHNwYWNlIGlzIG5vdCBpbXBvcnRhbnQgYXQgdGhlIGVuZCBvZiB0aGUgbGlu
ZQorICAgICAgICBpZiBsZW4obGluZSkgKyBsZW4oc2VwY2hhci5yc3RyaXAoKSkgPD0gZnVsbHdp
ZHRoOgorICAgICAgICAgICAgbGluZSArPSBzZXBjaGFyLnJzdHJpcCgpCisKKyAgICAgICAgc2Vs
Zi5saW5lKGxpbmUsICoqa3cpCisKKyAgICBkZWYgd3JpdGUoc2VsZiwgbXNnLCAqKmt3KToKKyAg
ICAgICAgaWYgbXNnOgorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UobXNnLCAoYnl0ZXMs
IHRleHQpKToKKyAgICAgICAgICAgICAgICBtc2cgPSB0ZXh0KG1zZykKKworICAgICAgICAgICAg
c2VsZi5fdXBkYXRlX2NoYXJzX29uX2N1cnJlbnRfbGluZShtc2cpCisKKyAgICAgICAgICAgIGlm
IHNlbGYuaGFzbWFya3VwIGFuZCBrdzoKKyAgICAgICAgICAgICAgICBtYXJrdXBtc2cgPSBzZWxm
Lm1hcmt1cChtc2csICoqa3cpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG1h
cmt1cG1zZyA9IG1zZworICAgICAgICAgICAgd3JpdGVfb3V0KHNlbGYuX2ZpbGUsIG1hcmt1cG1z
ZykKKworICAgIGRlZiBfdXBkYXRlX2NoYXJzX29uX2N1cnJlbnRfbGluZShzZWxmLCB0ZXh0KToK
KyAgICAgICAgZmllbGRzID0gdGV4dC5yc3BsaXQoJ1xuJywgMSkKKyAgICAgICAgaWYgJ1xuJyBp
biB0ZXh0OgorICAgICAgICAgICAgc2VsZi5fY2hhcnNfb25fY3VycmVudF9saW5lID0gbGVuKGZp
ZWxkc1stMV0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLl9jaGFyc19vbl9jdXJy
ZW50X2xpbmUgKz0gbGVuKGZpZWxkc1stMV0pCisKKyAgICBkZWYgbGluZShzZWxmLCBzPScnLCAq
Kmt3KToKKyAgICAgICAgc2VsZi53cml0ZShzLCAqKmt3KQorICAgICAgICBzZWxmLl9jaGVja2Zp
bGwocykKKyAgICAgICAgc2VsZi53cml0ZSgnXG4nKQorCisgICAgZGVmIHJlbGluZShzZWxmLCBs
aW5lLCAqKmt3KToKKyAgICAgICAgaWYgbm90IHNlbGYuaGFzbWFya3VwOgorICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigiY2Fubm90IHVzZSByZXdyaXRlLWxpbmUgd2l0aG91dCB0ZXJtaW5h
bCIpCisgICAgICAgIHNlbGYud3JpdGUobGluZSwgKiprdykKKyAgICAgICAgc2VsZi5fY2hlY2tm
aWxsKGxpbmUpCisgICAgICAgIHNlbGYud3JpdGUoJ1xyJykKKyAgICAgICAgc2VsZi5fbGFzdGxl
biA9IGxlbihsaW5lKQorCisgICAgZGVmIF9jaGVja2ZpbGwoc2VsZiwgbGluZSk6CisgICAgICAg
IGRpZmYybGFzdCA9IHNlbGYuX2xhc3RsZW4gLSBsZW4obGluZSkKKyAgICAgICAgaWYgZGlmZjJs
YXN0ID4gMDoKKyAgICAgICAgICAgIHNlbGYud3JpdGUoIiAiICogZGlmZjJsYXN0KQorCitjbGFz
cyBXaW4zMkNvbnNvbGVXcml0ZXIoVGVybWluYWxXcml0ZXIpOgorICAgIGRlZiB3cml0ZShzZWxm
LCBtc2csICoqa3cpOgorICAgICAgICBpZiBtc2c6CisgICAgICAgICAgICBpZiBub3QgaXNpbnN0
YW5jZShtc2csIChieXRlcywgdGV4dCkpOgorICAgICAgICAgICAgICAgIG1zZyA9IHRleHQobXNn
KQorCisgICAgICAgICAgICBzZWxmLl91cGRhdGVfY2hhcnNfb25fY3VycmVudF9saW5lKG1zZykK
KworICAgICAgICAgICAgb2xkY29sb3JzID0gTm9uZQorICAgICAgICAgICAgaWYgc2VsZi5oYXNt
YXJrdXAgYW5kIGt3OgorICAgICAgICAgICAgICAgIGhhbmRsZSA9IEdldFN0ZEhhbmRsZShTVERf
T1VUUFVUX0hBTkRMRSkKKyAgICAgICAgICAgICAgICBvbGRjb2xvcnMgPSBHZXRDb25zb2xlSW5m
byhoYW5kbGUpLndBdHRyaWJ1dGVzCisgICAgICAgICAgICAgICAgZGVmYXVsdF9iZyA9IG9sZGNv
bG9ycyAmIDB4MDBGMAorICAgICAgICAgICAgICAgIGF0dHIgPSBkZWZhdWx0X2JnCisgICAgICAg
ICAgICAgICAgaWYga3cucG9wKCdib2xkJywgRmFsc2UpOgorICAgICAgICAgICAgICAgICAgICBh
dHRyIHw9IEZPUkVHUk9VTkRfSU5URU5TSVRZCisKKyAgICAgICAgICAgICAgICBpZiBrdy5wb3Ao
J3JlZCcsIEZhbHNlKToKKyAgICAgICAgICAgICAgICAgICAgYXR0ciB8PSBGT1JFR1JPVU5EX1JF
RAorICAgICAgICAgICAgICAgIGVsaWYga3cucG9wKCdibHVlJywgRmFsc2UpOgorICAgICAgICAg
ICAgICAgICAgICBhdHRyIHw9IEZPUkVHUk9VTkRfQkxVRQorICAgICAgICAgICAgICAgIGVsaWYg
a3cucG9wKCdncmVlbicsIEZhbHNlKToKKyAgICAgICAgICAgICAgICAgICAgYXR0ciB8PSBGT1JF
R1JPVU5EX0dSRUVOCisgICAgICAgICAgICAgICAgZWxpZiBrdy5wb3AoJ3llbGxvdycsIEZhbHNl
KToKKyAgICAgICAgICAgICAgICAgICAgYXR0ciB8PSBGT1JFR1JPVU5EX0dSRUVOfEZPUkVHUk9V
TkRfUkVECisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgYXR0ciB8
PSBvbGRjb2xvcnMgJiAweDAwMDcKKworICAgICAgICAgICAgICAgIFNldENvbnNvbGVUZXh0QXR0
cmlidXRlKGhhbmRsZSwgYXR0cikKKyAgICAgICAgICAgIHdyaXRlX291dChzZWxmLl9maWxlLCBt
c2cpCisgICAgICAgICAgICBpZiBvbGRjb2xvcnM6CisgICAgICAgICAgICAgICAgU2V0Q29uc29s
ZVRleHRBdHRyaWJ1dGUoaGFuZGxlLCBvbGRjb2xvcnMpCisKK2NsYXNzIFdyaXRlRmlsZShvYmpl
Y3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3cml0ZW1ldGhvZCwgZW5jb2Rpbmc9Tm9uZSk6
CisgICAgICAgIHNlbGYuZW5jb2RpbmcgPSBlbmNvZGluZworICAgICAgICBzZWxmLl93cml0ZW1l
dGhvZCA9IHdyaXRlbWV0aG9kCisKKyAgICBkZWYgd3JpdGUoc2VsZiwgZGF0YSk6CisgICAgICAg
IGlmIHNlbGYuZW5jb2Rpbmc6CisgICAgICAgICAgICBkYXRhID0gZGF0YS5lbmNvZGUoc2VsZi5l
bmNvZGluZywgInJlcGxhY2UiKQorICAgICAgICBzZWxmLl93cml0ZW1ldGhvZChkYXRhKQorCisg
ICAgZGVmIGZsdXNoKHNlbGYpOgorICAgICAgICByZXR1cm4KKworCitpZiB3aW4zMl9hbmRfY3R5
cGVzOgorICAgIFRlcm1pbmFsV3JpdGVyID0gV2luMzJDb25zb2xlV3JpdGVyCisgICAgaW1wb3J0
IGN0eXBlcworICAgIGZyb20gY3R5cGVzIGltcG9ydCB3aW50eXBlcworCisgICAgIyBjdHlwZXMg
YWNjZXNzIHRvIHRoZSBXaW5kb3dzIGNvbnNvbGUKKyAgICBTVERfT1VUUFVUX0hBTkRMRSA9IC0x
MQorICAgIFNURF9FUlJPUl9IQU5ETEUgID0gLTEyCisgICAgRk9SRUdST1VORF9CTEFDSyAgICAg
PSAweDAwMDAgIyBibGFjayB0ZXh0CisgICAgRk9SRUdST1VORF9CTFVFICAgICAgPSAweDAwMDEg
IyB0ZXh0IGNvbG9yIGNvbnRhaW5zIGJsdWUuCisgICAgRk9SRUdST1VORF9HUkVFTiAgICAgPSAw
eDAwMDIgIyB0ZXh0IGNvbG9yIGNvbnRhaW5zIGdyZWVuLgorICAgIEZPUkVHUk9VTkRfUkVEICAg
ICAgID0gMHgwMDA0ICMgdGV4dCBjb2xvciBjb250YWlucyByZWQuCisgICAgRk9SRUdST1VORF9X
SElURSAgICAgPSAweDAwMDcKKyAgICBGT1JFR1JPVU5EX0lOVEVOU0lUWSA9IDB4MDAwOCAjIHRl
eHQgY29sb3IgaXMgaW50ZW5zaWZpZWQuCisgICAgQkFDS0dST1VORF9CTEFDSyAgICAgPSAweDAw
MDAgIyBiYWNrZ3JvdW5kIGNvbG9yIGJsYWNrCisgICAgQkFDS0dST1VORF9CTFVFICAgICAgPSAw
eDAwMTAgIyBiYWNrZ3JvdW5kIGNvbG9yIGNvbnRhaW5zIGJsdWUuCisgICAgQkFDS0dST1VORF9H
UkVFTiAgICAgPSAweDAwMjAgIyBiYWNrZ3JvdW5kIGNvbG9yIGNvbnRhaW5zIGdyZWVuLgorICAg
IEJBQ0tHUk9VTkRfUkVEICAgICAgID0gMHgwMDQwICMgYmFja2dyb3VuZCBjb2xvciBjb250YWlu
cyByZWQuCisgICAgQkFDS0dST1VORF9XSElURSAgICAgPSAweDAwNzAKKyAgICBCQUNLR1JPVU5E
X0lOVEVOU0lUWSA9IDB4MDA4MCAjIGJhY2tncm91bmQgY29sb3IgaXMgaW50ZW5zaWZpZWQuCisK
KyAgICBTSE9SVCA9IGN0eXBlcy5jX3Nob3J0CisgICAgY2xhc3MgQ09PUkQoY3R5cGVzLlN0cnVj
dHVyZSk6CisgICAgICAgIF9maWVsZHNfID0gWygnWCcsIFNIT1JUKSwKKyAgICAgICAgICAgICAg
ICAgICAgKCdZJywgU0hPUlQpXQorICAgIGNsYXNzIFNNQUxMX1JFQ1QoY3R5cGVzLlN0cnVjdHVy
ZSk6CisgICAgICAgIF9maWVsZHNfID0gWygnTGVmdCcsIFNIT1JUKSwKKyAgICAgICAgICAgICAg
ICAgICAgKCdUb3AnLCBTSE9SVCksCisgICAgICAgICAgICAgICAgICAgICgnUmlnaHQnLCBTSE9S
VCksCisgICAgICAgICAgICAgICAgICAgICgnQm90dG9tJywgU0hPUlQpXQorICAgIGNsYXNzIENP
TlNPTEVfU0NSRUVOX0JVRkZFUl9JTkZPKGN0eXBlcy5TdHJ1Y3R1cmUpOgorICAgICAgICBfZmll
bGRzXyA9IFsoJ2R3U2l6ZScsIENPT1JEKSwKKyAgICAgICAgICAgICAgICAgICAgKCdkd0N1cnNv
clBvc2l0aW9uJywgQ09PUkQpLAorICAgICAgICAgICAgICAgICAgICAoJ3dBdHRyaWJ1dGVzJywg
d2ludHlwZXMuV09SRCksCisgICAgICAgICAgICAgICAgICAgICgnc3JXaW5kb3cnLCBTTUFMTF9S
RUNUKSwKKyAgICAgICAgICAgICAgICAgICAgKCdkd01heGltdW1XaW5kb3dTaXplJywgQ09PUkQp
XQorCisgICAgX0dldFN0ZEhhbmRsZSA9IGN0eXBlcy53aW5kbGwua2VybmVsMzIuR2V0U3RkSGFu
ZGxlCisgICAgX0dldFN0ZEhhbmRsZS5hcmd0eXBlcyA9IFt3aW50eXBlcy5EV09SRF0KKyAgICBf
R2V0U3RkSGFuZGxlLnJlc3R5cGUgPSB3aW50eXBlcy5IQU5ETEUKKyAgICBkZWYgR2V0U3RkSGFu
ZGxlKGtpbmQpOgorICAgICAgICByZXR1cm4gX0dldFN0ZEhhbmRsZShraW5kKQorCisgICAgU2V0
Q29uc29sZVRleHRBdHRyaWJ1dGUgPSBjdHlwZXMud2luZGxsLmtlcm5lbDMyLlNldENvbnNvbGVU
ZXh0QXR0cmlidXRlCisgICAgU2V0Q29uc29sZVRleHRBdHRyaWJ1dGUuYXJndHlwZXMgPSBbd2lu
dHlwZXMuSEFORExFLCB3aW50eXBlcy5XT1JEXQorICAgIFNldENvbnNvbGVUZXh0QXR0cmlidXRl
LnJlc3R5cGUgPSB3aW50eXBlcy5CT09MCisKKyAgICBfR2V0Q29uc29sZVNjcmVlbkJ1ZmZlcklu
Zm8gPSBcCisgICAgICAgIGN0eXBlcy53aW5kbGwua2VybmVsMzIuR2V0Q29uc29sZVNjcmVlbkJ1
ZmZlckluZm8KKyAgICBfR2V0Q29uc29sZVNjcmVlbkJ1ZmZlckluZm8uYXJndHlwZXMgPSBbd2lu
dHlwZXMuSEFORExFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHlwZXMuUE9J
TlRFUihDT05TT0xFX1NDUkVFTl9CVUZGRVJfSU5GTyldCisgICAgX0dldENvbnNvbGVTY3JlZW5C
dWZmZXJJbmZvLnJlc3R5cGUgPSB3aW50eXBlcy5CT09MCisgICAgZGVmIEdldENvbnNvbGVJbmZv
KGhhbmRsZSk6CisgICAgICAgIGluZm8gPSBDT05TT0xFX1NDUkVFTl9CVUZGRVJfSU5GTygpCisg
ICAgICAgIF9HZXRDb25zb2xlU2NyZWVuQnVmZmVySW5mbyhoYW5kbGUsIGN0eXBlcy5ieXJlZihp
bmZvKSkKKyAgICAgICAgcmV0dXJuIGluZm8KKworICAgIGRlZiBfZ2V0ZGltZW5zaW9ucygpOgor
ICAgICAgICBoYW5kbGUgPSBHZXRTdGRIYW5kbGUoU1REX09VVFBVVF9IQU5ETEUpCisgICAgICAg
IGluZm8gPSBHZXRDb25zb2xlSW5mbyhoYW5kbGUpCisgICAgICAgICMgU3Vic3RyYWN0IG9uZSBm
cm9tIHRoZSB3aWR0aCwgb3RoZXJ3aXNlIHRoZSBjdXJzb3Igd3JhcHMKKyAgICAgICAgIyBhbmQg
dGhlIGVuZGluZyBcbiBjYXVzZXMgYW4gZW1wdHkgbGluZSB0byBkaXNwbGF5LgorICAgICAgICBy
ZXR1cm4gaW5mby5kd1NpemUuWSwgaW5mby5kd1NpemUuWCAtIDEKKworZGVmIHdyaXRlX291dChm
aWwsIG1zZyk6CisgICAgIyBYWFggc29tZXRpbWVzICJtc2ciIGlzIG9mIHR5cGUgYnl0ZXMsIHNv
bWV0aW1lcyB0ZXh0IHdoaWNoCisgICAgIyBjb21wbGljYXRlcyB0aGUgc2l0dWF0aW9uLiAgU2hv
dWxkIHdlIHRyeSB0byBlbmZvcmNlIHVuaWNvZGU/CisgICAgdHJ5OgorICAgICAgICAjIG9uIHB5
MjcgYW5kIGFib3ZlIHdyaXRpbmcgb3V0IHRvIHN5cy5zdGRvdXQgd2l0aCBhbiBlbmNvZGluZwor
ICAgICAgICAjIHNob3VsZCB1c3VhbGx5IHdvcmsgZm9yIHVuaWNvZGUgbWVzc2FnZXMgKGlmIHRo
ZSBlbmNvZGluZyBpcworICAgICAgICAjIGNhcGFibGUgb2YgaXQpCisgICAgICAgIGZpbC53cml0
ZShtc2cpCisgICAgZXhjZXB0IFVuaWNvZGVFbmNvZGVFcnJvcjoKKyAgICAgICAgIyBvbiBweTI2
IGl0IG1pZ2h0IG5vdCB3b3JrIGJlY2F1c2Ugc3Rkb3V0IGV4cGVjdHMgYnl0ZXMKKyAgICAgICAg
aWYgZmlsLmVuY29kaW5nOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGZpbC53
cml0ZShtc2cuZW5jb2RlKGZpbC5lbmNvZGluZykpCisgICAgICAgICAgICBleGNlcHQgVW5pY29k
ZUVuY29kZUVycm9yOgorICAgICAgICAgICAgICAgICMgaXQgbWlnaHQgc3RpbGwgZmFpbCBpZiB0
aGUgZW5jb2RpbmcgaXMgbm90IGNhcGFibGUKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGZpbC5mbHVzaCgpCisgICAgICAgICAgICAgICAg
cmV0dXJuCisgICAgICAgICMgZmFsbGJhY2s6IGVzY2FwZSBhbGwgdW5pY29kZSBjaGFyYWN0ZXJz
CisgICAgICAgIG1zZyA9IG1zZy5lbmNvZGUoInVuaWNvZGUtZXNjYXBlIikuZGVjb2RlKCJhc2Np
aSIpCisgICAgICAgIGZpbC53cml0ZShtc2cpCisgICAgZmlsLmZsdXNoKCkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvcHkvX2lvL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9faW8vdzNjLWltcG9y
dC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTk2OWNiNWZhZmY3NmViMTA5NDg2YzRiYzAzZDhiMGJjOGRiMDg4
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2lvL3czYy1pbXBvcnQubG9nCkBAIC0w
LDAgKzEsMjAgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2lvL19faW5pdF9fLnB5CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS9weS9faW8vY2FwdHVyZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2lvL3NhZmVyZXByLnB5CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS9weS9faW8vdGVybWluYWx3cml0ZXIucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2xvZy9f
X2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2xvZy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWQ2
MmU5NjBkNGZjMGQ1ZmFmNDc5NDY3YWFhMGJiZjU3MDA4YTUyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9weS9fbG9nL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMiBAQAorIiIiIGxvZ2dpbmcg
QVBJICgncHJvZHVjZXJzJyBhbmQgJ2NvbnN1bWVycycgY29ubmVjdGVkIHZpYSBrZXl3b3Jkcykg
IiIiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2xvZy9sb2cucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19s
b2cvbG9nLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2OTY5YmNiNThjMzMyMjI0OGVmYzdkZTdhMDRmZWY5NjA3
NGZlNjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19sb2cvbG9nLnB5CkBAIC0wLDAg
KzEsMjA2IEBACisiIiIKK2Jhc2ljIGxvZ2dpbmcgZnVuY3Rpb25hbGl0eSBiYXNlZCBvbiBhIHBy
b2R1Y2VyL2NvbnN1bWVyIHNjaGVtZS4KKworWFhYIGltcGxlbWVudCB0aGlzIEFQSTogKG1heWJl
IHB1dCBpdCBpbnRvIHNsb2dnZXIucHk/KQorCisgICAgICAgIGxvZyA9IExvZ2dlcigKKyAgICAg
ICAgICAgICAgICAgICAgaW5mbz1weS5sb2cuU1RET1VULAorICAgICAgICAgICAgICAgICAgICBk
ZWJ1Zz1weS5sb2cuU1RET1VULAorICAgICAgICAgICAgICAgICAgICBjb21tYW5kPU5vbmUpCisg
ICAgICAgIGxvZy5pbmZvKCJoZWxsbyIsICJ3b3JsZCIpCisgICAgICAgIGxvZy5jb21tYW5kKCJo
ZWxsbyIsICJ3b3JsZCIpCisKKyAgICAgICAgbG9nID0gTG9nZ2VyKGluZm89TG9nZ2VyKHNvbWV0
aGluZz0uLi4pLAorICAgICAgICAgICAgICAgICAgICAgZGVidWc9cHkubG9nLlNURE9VVCwKKyAg
ICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ9Tm9uZSkKKyIiIgoraW1wb3J0IHB5CitpbXBvcnQg
c3lzCisKKworY2xhc3MgTWVzc2FnZShvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBr
ZXl3b3JkcywgYXJncyk6CisgICAgICAgIHNlbGYua2V5d29yZHMgPSBrZXl3b3JkcworICAgICAg
ICBzZWxmLmFyZ3MgPSBhcmdzCisKKyAgICBkZWYgY29udGVudChzZWxmKToKKyAgICAgICAgcmV0
dXJuICIgIi5qb2luKG1hcChzdHIsIHNlbGYuYXJncykpCisKKyAgICBkZWYgcHJlZml4KHNlbGYp
OgorICAgICAgICByZXR1cm4gIlslc10gIiAlICgiOiIuam9pbihzZWxmLmtleXdvcmRzKSkKKwor
ICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5wcmVmaXgoKSArIHNl
bGYuY29udGVudCgpCisKKworY2xhc3MgUHJvZHVjZXIob2JqZWN0KToKKyAgICAiIiIgKGRlcHJl
Y2F0ZWQpIExvZyBwcm9kdWNlciBBUEkgd2hpY2ggc2VuZHMgbWVzc2FnZXMgdG8gYmUgbG9nZ2Vk
CisgICAgICAgIHRvIGEgJ2NvbnN1bWVyJyBvYmplY3QsIHdoaWNoIHRoZW4gcHJpbnRzIHRoZW0g
dG8gc3Rkb3V0LAorICAgICAgICBzdGRlcnIsIGZpbGVzLCBldGMuIFVzZWQgZXh0ZW5zaXZlbHkg
YnkgUHlQeS0xLjEuCisgICAgIiIiCisKKyAgICBNZXNzYWdlID0gTWVzc2FnZSAgIyB0byBhbGxv
dyBsYXRlciBjdXN0b21pemF0aW9uCisgICAga2V5d29yZHMyY29uc3VtZXIgPSB7fQorCisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGtleXdvcmRzLCBrZXl3b3JkbWFwcGVyPU5vbmUsICoqa3cpOgor
ICAgICAgICBpZiBoYXNhdHRyKGtleXdvcmRzLCAnc3BsaXQnKToKKyAgICAgICAgICAgIGtleXdv
cmRzID0gdHVwbGUoa2V5d29yZHMuc3BsaXQoKSkKKyAgICAgICAgc2VsZi5fa2V5d29yZHMgPSBr
ZXl3b3JkcworICAgICAgICBpZiBrZXl3b3JkbWFwcGVyIGlzIE5vbmU6CisgICAgICAgICAgICBr
ZXl3b3JkbWFwcGVyID0gZGVmYXVsdF9rZXl3b3JkbWFwcGVyCisgICAgICAgIHNlbGYuX2tleXdv
cmRtYXBwZXIgPSBrZXl3b3JkbWFwcGVyCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAg
ICAgIHJldHVybiAiPHB5LmxvZy5Qcm9kdWNlciAlcz4iICUgIjoiLmpvaW4oc2VsZi5fa2V5d29y
ZHMpCisKKyAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgbmFtZSk6CisgICAgICAgIGlmICdfJyBp
biBuYW1lOgorICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IobmFtZSkKKyAgICAgICAg
cHJvZHVjZXIgPSBzZWxmLl9fY2xhc3NfXyhzZWxmLl9rZXl3b3JkcyArIChuYW1lLCkpCisgICAg
ICAgIHNldGF0dHIoc2VsZiwgbmFtZSwgcHJvZHVjZXIpCisgICAgICAgIHJldHVybiBwcm9kdWNl
cgorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsICphcmdzKToKKyAgICAgICAgIiIiIHdyaXRlIGEg
bWVzc2FnZSB0byB0aGUgYXBwcm9wcmlhdGUgY29uc3VtZXIocykgIiIiCisgICAgICAgIGZ1bmMg
PSBzZWxmLl9rZXl3b3JkbWFwcGVyLmdldGNvbnN1bWVyKHNlbGYuX2tleXdvcmRzKQorICAgICAg
ICBpZiBmdW5jIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgZnVuYyhzZWxmLk1lc3NhZ2Uoc2Vs
Zi5fa2V5d29yZHMsIGFyZ3MpKQorCitjbGFzcyBLZXl3b3JkTWFwcGVyOgorICAgIGRlZiBfX2lu
aXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5rZXl3b3JkczJjb25zdW1lciA9IHt9CisKKyAgICBk
ZWYgZ2V0c3RhdGUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmtleXdvcmRzMmNvbnN1bWVy
LmNvcHkoKQorCisgICAgZGVmIHNldHN0YXRlKHNlbGYsIHN0YXRlKToKKyAgICAgICAgc2VsZi5r
ZXl3b3JkczJjb25zdW1lci5jbGVhcigpCisgICAgICAgIHNlbGYua2V5d29yZHMyY29uc3VtZXIu
dXBkYXRlKHN0YXRlKQorCisgICAgZGVmIGdldGNvbnN1bWVyKHNlbGYsIGtleXdvcmRzKToKKyAg
ICAgICAgIiIiIHJldHVybiBhIGNvbnN1bWVyIG1hdGNoaW5nIHRoZSBnaXZlbiBrZXl3b3Jkcy4K
KworICAgICAgICAgICAgdHJpZXMgdG8gZmluZCB0aGUgbW9zdCBzdWl0YWJsZSBjb25zdW1lciBi
eSB3YWxraW5nLCBzdGFydGluZyBmcm9tCisgICAgICAgICAgICB0aGUgYmFjaywgdGhlIGxpc3Qg
b2Yga2V5d29yZHMsIHRoZSBmaXJzdCBjb25zdW1lciBtYXRjaGluZyBhCisgICAgICAgICAgICBr
ZXl3b3JkIGlzIHJldHVybmVkIChmYWxsaW5nIGJhY2sgdG8gcHkubG9nLmRlZmF1bHQpCisgICAg
ICAgICIiIgorICAgICAgICBmb3IgaSBpbiByYW5nZShsZW4oa2V5d29yZHMpLCAwLCAtMSk6Cisg
ICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYua2V5d29yZHMyY29u
c3VtZXJba2V5d29yZHNbOmldXQorICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIHJldHVybiBzZWxmLmtleXdvcmRzMmNvbnN1bWVy
LmdldCgnZGVmYXVsdCcsIGRlZmF1bHRfY29uc3VtZXIpCisKKyAgICBkZWYgc2V0Y29uc3VtZXIo
c2VsZiwga2V5d29yZHMsIGNvbnN1bWVyKToKKyAgICAgICAgIiIiIHNldCBhIGNvbnN1bWVyIGZv
ciBhIHNldCBvZiBrZXl3b3Jkcy4gIiIiCisgICAgICAgICMgbm9ybWFsaXplIHRvIHR1cGxlcwor
ICAgICAgICBpZiBpc2luc3RhbmNlKGtleXdvcmRzLCBzdHIpOgorICAgICAgICAgICAga2V5d29y
ZHMgPSB0dXBsZShmaWx0ZXIoTm9uZSwga2V5d29yZHMuc3BsaXQoKSkpCisgICAgICAgIGVsaWYg
aGFzYXR0cihrZXl3b3JkcywgJ19rZXl3b3JkcycpOgorICAgICAgICAgICAga2V5d29yZHMgPSBr
ZXl3b3Jkcy5fa2V5d29yZHMKKyAgICAgICAgZWxpZiBub3QgaXNpbnN0YW5jZShrZXl3b3Jkcywg
dHVwbGUpOgorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJrZXkgJXIgaXMgbm90IGEgc3Ry
aW5nIG9yIHR1cGxlIiAlIChrZXl3b3JkcywpKQorICAgICAgICBpZiBjb25zdW1lciBpcyBub3Qg
Tm9uZSBhbmQgbm90IHB5LmJ1aWx0aW4uY2FsbGFibGUoY29uc3VtZXIpOgorICAgICAgICAgICAg
aWYgbm90IGhhc2F0dHIoY29uc3VtZXIsICd3cml0ZScpOgorICAgICAgICAgICAgICAgIHJhaXNl
IFR5cGVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgIiVyIHNob3VsZCBiZSBOb25lLCBjYWxs
YWJsZSBvciBmaWxlLWxpa2UiICUgKGNvbnN1bWVyLCkpCisgICAgICAgICAgICBjb25zdW1lciA9
IEZpbGUoY29uc3VtZXIpCisgICAgICAgIHNlbGYua2V5d29yZHMyY29uc3VtZXJba2V5d29yZHNd
ID0gY29uc3VtZXIKKworCitkZWYgZGVmYXVsdF9jb25zdW1lcihtc2cpOgorICAgICIiIiB0aGUg
ZGVmYXVsdCBjb25zdW1lciwgcHJpbnRzIHRoZSBtZXNzYWdlIHRvIHN0ZG91dCAodXNpbmcgJ3By
aW50JykgIiIiCisgICAgc3lzLnN0ZGVyci53cml0ZShzdHIobXNnKSsiXG4iKQorCitkZWZhdWx0
X2tleXdvcmRtYXBwZXIgPSBLZXl3b3JkTWFwcGVyKCkKKworCitkZWYgc2V0Y29uc3VtZXIoa2V5
d29yZHMsIGNvbnN1bWVyKToKKyAgICBkZWZhdWx0X2tleXdvcmRtYXBwZXIuc2V0Y29uc3VtZXIo
a2V5d29yZHMsIGNvbnN1bWVyKQorCisKK2RlZiBzZXRzdGF0ZShzdGF0ZSk6CisgICAgZGVmYXVs
dF9rZXl3b3JkbWFwcGVyLnNldHN0YXRlKHN0YXRlKQorCisKK2RlZiBnZXRzdGF0ZSgpOgorICAg
IHJldHVybiBkZWZhdWx0X2tleXdvcmRtYXBwZXIuZ2V0c3RhdGUoKQorCisjCisjIENvbnN1bWVy
cworIworCisKK2NsYXNzIEZpbGUob2JqZWN0KToKKyAgICAiIiIgbG9nIGNvbnN1bWVyIHdyYXBw
aW5nIGEgZmlsZSgtbGlrZSkgb2JqZWN0ICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmKToK
KyAgICAgICAgYXNzZXJ0IGhhc2F0dHIoZiwgJ3dyaXRlJykKKyAgICAgICAgIyBhc3NlcnQgaXNp
bnN0YW5jZShmLCBmaWxlKSBvciBub3QgaGFzYXR0cihmLCAnb3BlbicpCisgICAgICAgIHNlbGYu
X2ZpbGUgPSBmCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgbXNnKToKKyAgICAgICAgIiIiIHdy
aXRlIGEgbWVzc2FnZSB0byB0aGUgbG9nICIiIgorICAgICAgICBzZWxmLl9maWxlLndyaXRlKHN0
cihtc2cpICsgIlxuIikKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLl9maWxlLCAnZmx1c2gnKToK
KyAgICAgICAgICAgIHNlbGYuX2ZpbGUuZmx1c2goKQorCisKK2NsYXNzIFBhdGgob2JqZWN0KToK
KyAgICAiIiIgbG9nIGNvbnN1bWVyIHRoYXQgb3BlbnMgYW5kIHdyaXRlcyB0byBhIFBhdGggIiIi
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVuYW1lLCBhcHBlbmQ9RmFsc2UsCisgICAgICAg
ICAgICAgICAgIGRlbGF5ZWRfY3JlYXRlPUZhbHNlLCBidWZmZXJpbmc9RmFsc2UpOgorICAgICAg
ICBzZWxmLl9hcHBlbmQgPSBhcHBlbmQKKyAgICAgICAgc2VsZi5fZmlsZW5hbWUgPSBzdHIoZmls
ZW5hbWUpCisgICAgICAgIHNlbGYuX2J1ZmZlcmluZyA9IGJ1ZmZlcmluZworICAgICAgICBpZiBu
b3QgZGVsYXllZF9jcmVhdGU6CisgICAgICAgICAgICBzZWxmLl9vcGVuZmlsZSgpCisKKyAgICBk
ZWYgX29wZW5maWxlKHNlbGYpOgorICAgICAgICBtb2RlID0gc2VsZi5fYXBwZW5kIGFuZCAnYScg
b3IgJ3cnCisgICAgICAgIGYgPSBvcGVuKHNlbGYuX2ZpbGVuYW1lLCBtb2RlKQorICAgICAgICBz
ZWxmLl9maWxlID0gZgorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIG1zZyk6CisgICAgICAgICIi
IiB3cml0ZSBhIG1lc3NhZ2UgdG8gdGhlIGxvZyAiIiIKKyAgICAgICAgaWYgbm90IGhhc2F0dHIo
c2VsZiwgIl9maWxlIik6CisgICAgICAgICAgICBzZWxmLl9vcGVuZmlsZSgpCisgICAgICAgIHNl
bGYuX2ZpbGUud3JpdGUoc3RyKG1zZykgKyAiXG4iKQorICAgICAgICBpZiBub3Qgc2VsZi5fYnVm
ZmVyaW5nOgorICAgICAgICAgICAgc2VsZi5fZmlsZS5mbHVzaCgpCisKKworZGVmIFNURE9VVCht
c2cpOgorICAgICIiIiBjb25zdW1lciB0aGF0IHdyaXRlcyB0byBzeXMuc3Rkb3V0ICIiIgorICAg
IHN5cy5zdGRvdXQud3JpdGUoc3RyKG1zZykrIlxuIikKKworCitkZWYgU1RERVJSKG1zZyk6Cisg
ICAgIiIiIGNvbnN1bWVyIHRoYXQgd3JpdGVzIHRvIHN5cy5zdGRlcnIgIiIiCisgICAgc3lzLnN0
ZGVyci53cml0ZShzdHIobXNnKSsiXG4iKQorCisKK2NsYXNzIFN5c2xvZzoKKyAgICAiIiIgY29u
c3VtZXIgdGhhdCB3cml0ZXMgdG8gdGhlIHN5c2xvZyBkYWVtb24gIiIiCisKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgcHJpb3JpdHk9Tm9uZSk6CisgICAgICAgIGlmIHByaW9yaXR5IGlzIE5vbmU6
CisgICAgICAgICAgICBwcmlvcml0eSA9IHNlbGYuTE9HX0lORk8KKyAgICAgICAgc2VsZi5wcmlv
cml0eSA9IHByaW9yaXR5CisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgbXNnKToKKyAgICAgICAg
IiIiIHdyaXRlIGEgbWVzc2FnZSB0byB0aGUgbG9nICIiIgorICAgICAgICBpbXBvcnQgc3lzbG9n
CisgICAgICAgIHN5c2xvZy5zeXNsb2coc2VsZi5wcmlvcml0eSwgc3RyKG1zZykpCisKKwordHJ5
OgorICAgIGltcG9ydCBzeXNsb2cKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBwYXNzCitlbHNl
OgorICAgIGZvciBfcHJpbyBpbiAiRU1FUkcgQUxFUlQgQ1JJVCBFUlIgV0FSTklORyBOT1RJQ0Ug
SU5GTyBERUJVRyIuc3BsaXQoKToKKyAgICAgICAgX3ByaW8gPSAiTE9HXyIgKyBfcHJpbworICAg
ICAgICB0cnk6CisgICAgICAgICAgICBzZXRhdHRyKFN5c2xvZywgX3ByaW8sIGdldGF0dHIoc3lz
bG9nLCBfcHJpbykpCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAg
IHBhc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2xvZy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvcHkvX2xvZy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzZhZjYxM2UyNWRmOTQ3ZmIx
NTRhOTU0NmM0YzljYjVlNDBmMDAxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fbG9n
L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTkgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2xv
Zy9fX2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2xvZy9sb2cucHkKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19sb2cv
d2FybmluZy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fbG9nL3dhcm5pbmcucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L3B5L19sb2cvd2FybmluZy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWYyMGQ5OGEyZGMwZTdiZTI0MGM1
OTNlMDMwM2M1MDFlY2I3ODM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fbG9nL3dh
cm5pbmcucHkKQEAgLTAsMCArMSw3OSBAQAoraW1wb3J0IHB5LCBzeXMKKworY2xhc3MgRGVwcmVj
YXRpb25XYXJuaW5nKERlcHJlY2F0aW9uV2FybmluZyk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IG1zZywgcGF0aCwgbGluZW5vKToKKyAgICAgICAgc2VsZi5tc2cgPSBtc2cKKyAgICAgICAgc2Vs
Zi5wYXRoID0gcGF0aAorICAgICAgICBzZWxmLmxpbmVubyA9IGxpbmVubworICAgIGRlZiBfX3Jl
cHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICIlczolZDogJXMiICUoc2VsZi5wYXRoLCBzZWxm
LmxpbmVubysxLCBzZWxmLm1zZykKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcmV0
dXJuIHNlbGYubXNnCisKK2RlZiBfYXBpd2FybihzdGFydHZlcnNpb24sIG1zZywgc3RhY2tsZXZl
bD0yLCBmdW5jdGlvbj1Ob25lKToKKyAgICAjIGJlbG93IGlzIG1vc3RseSBDT1BJRUQgZnJvbSBw
eXRob24yLjQvd2FybmluZ3MucHkncyBkZWYgd2FybigpCisgICAgIyBHZXQgY29udGV4dCBpbmZv
cm1hdGlvbgorICAgIGlmIGlzaW5zdGFuY2Uoc3RhY2tsZXZlbCwgc3RyKToKKyAgICAgICAgZnJh
bWUgPSBzeXMuX2dldGZyYW1lKDEpCisgICAgICAgIGxldmVsID0gMQorICAgICAgICBmb3VuZCA9
IGZyYW1lLmZfY29kZS5jb19maWxlbmFtZS5maW5kKHN0YWNrbGV2ZWwpICE9IC0xCisgICAgICAg
IHdoaWxlIGZyYW1lOgorICAgICAgICAgICAgY28gPSBmcmFtZS5mX2NvZGUKKyAgICAgICAgICAg
IGlmIGNvLmNvX2ZpbGVuYW1lLmZpbmQoc3RhY2tsZXZlbCkgPT0gLTE6CisgICAgICAgICAgICAg
ICAgaWYgZm91bmQ6CisgICAgICAgICAgICAgICAgICAgIHN0YWNrbGV2ZWwgPSBsZXZlbAorICAg
ICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICBmb3VuZCA9IFRydWUKKyAgICAgICAgICAgIGxldmVsICs9IDEKKyAgICAgICAgICAgIGZyYW1l
ID0gZnJhbWUuZl9iYWNrCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzdGFja2xldmVsID0g
MQorICAgIG1zZyA9ICIlcyAoc2luY2UgdmVyc2lvbiAlcykiICUobXNnLCBzdGFydHZlcnNpb24p
CisgICAgd2Fybihtc2csIHN0YWNrbGV2ZWw9c3RhY2tsZXZlbCsxLCBmdW5jdGlvbj1mdW5jdGlv
bikKKworCitkZWYgd2Fybihtc2csIHN0YWNrbGV2ZWw9MSwgZnVuY3Rpb249Tm9uZSk6CisgICAg
aWYgZnVuY3Rpb24gaXMgbm90IE5vbmU6CisgICAgICAgIGltcG9ydCBpbnNwZWN0CisgICAgICAg
IGZpbGVuYW1lID0gaW5zcGVjdC5nZXRmaWxlKGZ1bmN0aW9uKQorICAgICAgICBsaW5lbm8gPSBw
eS5jb2RlLmdldHJhd2NvZGUoZnVuY3Rpb24pLmNvX2ZpcnN0bGluZW5vCisgICAgZWxzZToKKyAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgY2FsbGVyID0gc3lzLl9nZXRmcmFtZShzdGFja2xldmVs
KQorICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgIGdsb2JhbHMgPSBzeXMu
X19kaWN0X18KKyAgICAgICAgICAgIGxpbmVubyA9IDEKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIGdsb2JhbHMgPSBjYWxsZXIuZl9nbG9iYWxzCisgICAgICAgICAgICBsaW5lbm8gPSBjYWxs
ZXIuZl9saW5lbm8KKyAgICAgICAgaWYgJ19fbmFtZV9fJyBpbiBnbG9iYWxzOgorICAgICAgICAg
ICAgbW9kdWxlID0gZ2xvYmFsc1snX19uYW1lX18nXQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgbW9kdWxlID0gIjxzdHJpbmc+IgorICAgICAgICBmaWxlbmFtZSA9IGdsb2JhbHMuZ2V0KCdf
X2ZpbGVfXycpCisgICAgaWYgZmlsZW5hbWU6CisgICAgICAgIGZubCA9IGZpbGVuYW1lLmxvd2Vy
KCkKKyAgICAgICAgaWYgZm5sLmVuZHN3aXRoKCIucHljIikgb3IgZm5sLmVuZHN3aXRoKCIucHlv
Iik6CisgICAgICAgICAgICBmaWxlbmFtZSA9IGZpbGVuYW1lWzotMV0KKyAgICAgICAgZWxpZiBm
bmwuZW5kc3dpdGgoIiRweS5jbGFzcyIpOgorICAgICAgICAgICAgZmlsZW5hbWUgPSBmaWxlbmFt
ZS5yZXBsYWNlKCckcHkuY2xhc3MnLCAnLnB5JykKKyAgICBlbHNlOgorICAgICAgICBpZiBtb2R1
bGUgPT0gIl9fbWFpbl9fIjoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBmaWxl
bmFtZSA9IHN5cy5hcmd2WzBdCisgICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Cisg
ICAgICAgICAgICAgICAgIyBlbWJlZGRlZCBpbnRlcnByZXRlcnMgZG9uJ3QgaGF2ZSBzeXMuYXJn
diwgc2VlIGJ1ZyAjODM5MTUxCisgICAgICAgICAgICAgICAgZmlsZW5hbWUgPSAnX19tYWluX18n
CisgICAgICAgIGlmIG5vdCBmaWxlbmFtZToKKyAgICAgICAgICAgIGZpbGVuYW1lID0gbW9kdWxl
CisgICAgcGF0aCA9IHB5LnBhdGgubG9jYWwoZmlsZW5hbWUpCisgICAgd2FybmluZyA9IERlcHJl
Y2F0aW9uV2FybmluZyhtc2csIHBhdGgsIGxpbmVubykKKyAgICBpbXBvcnQgd2FybmluZ3MKKyAg
ICB3YXJuaW5ncy53YXJuX2V4cGxpY2l0KHdhcm5pbmcsIGNhdGVnb3J5PVdhcm5pbmcsCisgICAg
ICAgIGZpbGVuYW1lPXN0cih3YXJuaW5nLnBhdGgpLAorICAgICAgICBsaW5lbm89d2FybmluZy5s
aW5lbm8sCisgICAgICAgIHJlZ2lzdHJ5PXdhcm5pbmdzLl9fZGljdF9fLnNldGRlZmF1bHQoCisg
ICAgICAgICAgICAiX193YXJuaW5nc3JlZ2lzdHJ5X18iLCB7fSkKKyAgICApCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvcHkvX3BhdGgvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19wYXRoL19faW5p
dF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjUxZjMyNDZmODA3MGZmNDYzNDJkM2Q5OTg1ZmEzODRhYzRlMWQ5
ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19wYXRoL19faW5pdF9fLnB5CkBAIC0w
LDAgKzEgQEAKKyIiIiB1bmlmaWVkIGZpbGUgc3lzdGVtIGFwaSAiIiIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvcHkvX3BhdGgvY2FjaGV1dGlsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fcGF0aC9jYWNoZXV0aWwu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTkyMjUwNDc1MDJjNmE3MTE5Y2FmMTM2YWYwNjIyODIzNWRmOWZkMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3BhdGgvY2FjaGV1dGlsLnB5CkBAIC0wLDAg
KzEsMTE0IEBACisiIiIKK1RoaXMgbW9kdWxlIGNvbnRhaW5zIG11bHRpdGhyZWFkLXNhZmUgY2Fj
aGUgaW1wbGVtZW50YXRpb25zLgorCitBbGwgQ2FjaGVzIGhhdmUKKworICAgIGdldG9yYnVpbGQo
a2V5LCBidWlsZGVyKQorICAgIGRlbGVudHJ5KGtleSkKKworbWV0aG9kcyBhbmQgYWxsb3cgY29u
ZmlndXJhdGlvbiB3aGVuIGluc3RhbnRpYXRpbmcgdGhlIGNhY2hlIGNsYXNzLgorIiIiCitmcm9t
IHRpbWUgaW1wb3J0IHRpbWUgYXMgZ2V0dGltZQorCitjbGFzcyBCYXNpY0NhY2hlKG9iamVjdCk6
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1heGVudHJpZXM9MTI4KToKKyAgICAgICAgc2VsZi5t
YXhlbnRyaWVzID0gbWF4ZW50cmllcworICAgICAgICBzZWxmLnBydW5lbnVtID0gaW50KG1heGVu
dHJpZXMgLSBtYXhlbnRyaWVzLzgpCisgICAgICAgIHNlbGYuX2RpY3QgPSB7fQorCisgICAgZGVm
IGNsZWFyKHNlbGYpOgorICAgICAgICBzZWxmLl9kaWN0LmNsZWFyKCkKKworICAgIGRlZiBfZ2V0
ZW50cnkoc2VsZiwga2V5KToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2RpY3Rba2V5XQorCisgICAg
ZGVmIF9wdXRlbnRyeShzZWxmLCBrZXksIGVudHJ5KToKKyAgICAgICAgc2VsZi5fcHJ1bmVsb3dl
c3R3ZWlnaHQoKQorICAgICAgICBzZWxmLl9kaWN0W2tleV0gPSBlbnRyeQorCisgICAgZGVmIGRl
bGVudHJ5KHNlbGYsIGtleSwgcmFpc2luZz1GYWxzZSk6CisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIGRlbCBzZWxmLl9kaWN0W2tleV0KKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAg
ICAgICAgaWYgcmFpc2luZzoKKyAgICAgICAgICAgICAgICByYWlzZQorCisgICAgZGVmIGdldG9y
YnVpbGQoc2VsZiwga2V5LCBidWlsZGVyKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZW50
cnkgPSBzZWxmLl9nZXRlbnRyeShrZXkpCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAg
ICAgICAgIGVudHJ5ID0gc2VsZi5fYnVpbGQoa2V5LCBidWlsZGVyKQorICAgICAgICAgICAgc2Vs
Zi5fcHV0ZW50cnkoa2V5LCBlbnRyeSkKKyAgICAgICAgcmV0dXJuIGVudHJ5LnZhbHVlCisKKyAg
ICBkZWYgX3BydW5lbG93ZXN0d2VpZ2h0KHNlbGYpOgorICAgICAgICAiIiIgcHJ1bmUgb3V0IGVu
dHJpZXMgd2l0aCBsb3dlc3Qgd2VpZ2h0LiAiIiIKKyAgICAgICAgbnVtZW50cmllcyA9IGxlbihz
ZWxmLl9kaWN0KQorICAgICAgICBpZiBudW1lbnRyaWVzID49IHNlbGYubWF4ZW50cmllczoKKyAg
ICAgICAgICAgICMgZXZpY3QgYWNjb3JkaW5nIHRvIGVudHJ5J3Mgd2VpZ2h0CisgICAgICAgICAg
ICBpdGVtcyA9IFsoZW50cnkud2VpZ2h0LCBrZXkpCisgICAgICAgICAgICAgICAgICAgICAgICBm
b3Iga2V5LCBlbnRyeSBpbiBzZWxmLl9kaWN0Lml0ZW1zKCldCisgICAgICAgICAgICBpdGVtcy5z
b3J0KCkKKyAgICAgICAgICAgIGluZGV4ID0gbnVtZW50cmllcyAtIHNlbGYucHJ1bmVudW0KKyAg
ICAgICAgICAgIGlmIGluZGV4ID4gMDoKKyAgICAgICAgICAgICAgICBmb3Igd2VpZ2h0LCBrZXkg
aW4gaXRlbXNbOmluZGV4XToKKyAgICAgICAgICAgICAgICAgICAgIyBpbiBNVCBzaXR1YXRpb25z
IHRoZSBlbGVtZW50IG1pZ2h0IGJlIGdvbmUKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5kZWxl
bnRyeShrZXksIHJhaXNpbmc9RmFsc2UpCisKK2NsYXNzIEJ1aWxkY29zdEFjY2Vzc0NhY2hlKEJh
c2ljQ2FjaGUpOgorICAgICIiIiBBIEJ1aWxkVGltZS9BY2Nlc3MtY291bnRpbmcgY2FjaGUgaW1w
bGVtZW50YXRpb24uCisgICAgICAgIHRoZSB3ZWlnaHQgb2YgYSB2YWx1ZSBpcyBjb21wdXRlZCBh
cyB0aGUgcHJvZHVjdCBvZgorCisgICAgICAgICAgICBudW0tYWNjZXNzZXMtb2YtYS12YWx1ZSAq
IHRpbWUtdG8tYnVpbGQtdGhlLXZhbHVlCisKKyAgICAgICAgVGhlIHZhbHVlcyB3aXRoIHRoZSBs
ZWFzdCBzdWNoIHdlaWdodHMgYXJlIGV2aWN0ZWQKKyAgICAgICAgaWYgdGhlIGNhY2hlIG1heGVu
dHJpZXMgdGhyZXNob2xkIGlzIHN1cGVyY2VkZWQuCisgICAgICAgIEZvciBpbXBsZW1lbnRhdGlv
biBmbGV4aWJpbGl0eSBtb3JlIHRoYW4gb25lIG9iamVjdAorICAgICAgICBtaWdodCBiZSBldmlj
dGVkIGF0IGEgdGltZS4KKyAgICAiIiIKKyAgICAjIHRpbWUgZnVuY3Rpb24gdG8gdXNlIGZvciBt
ZWFzdXJpbmcgYnVpbGQtdGltZXMKKworICAgIGRlZiBfYnVpbGQoc2VsZiwga2V5LCBidWlsZGVy
KToKKyAgICAgICAgc3RhcnQgPSBnZXR0aW1lKCkKKyAgICAgICAgdmFsID0gYnVpbGRlcigpCisg
ICAgICAgIGVuZCA9IGdldHRpbWUoKQorICAgICAgICByZXR1cm4gV2VpZ2h0ZWRDb3VudGluZ0Vu
dHJ5KHZhbCwgZW5kLXN0YXJ0KQorCisKK2NsYXNzIFdlaWdodGVkQ291bnRpbmdFbnRyeShvYmpl
Y3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2YWx1ZSwgb25ld2VpZ2h0KToKKyAgICAgICAg
c2VsZi5fdmFsdWUgPSB2YWx1ZQorICAgICAgICBzZWxmLndlaWdodCA9IHNlbGYuX29uZXdlaWdo
dCA9IG9uZXdlaWdodAorCisgICAgZGVmIHZhbHVlKHNlbGYpOgorICAgICAgICBzZWxmLndlaWdo
dCArPSBzZWxmLl9vbmV3ZWlnaHQKKyAgICAgICAgcmV0dXJuIHNlbGYuX3ZhbHVlCisgICAgdmFs
dWUgPSBwcm9wZXJ0eSh2YWx1ZSkKKworY2xhc3MgQWdpbmdDYWNoZShCYXNpY0NhY2hlKToKKyAg
ICAiIiIgVGhpcyBjYWNoZSBwcnVuZXMgb3V0IGNhY2hlIGVudHJpZXMgdGhhdCBhcmUgdG9vIG9s
ZC4KKyAgICAiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWF4ZW50cmllcz0xMjgsIG1heHNl
Y29uZHM9MTAuMCk6CisgICAgICAgIHN1cGVyKEFnaW5nQ2FjaGUsIHNlbGYpLl9faW5pdF9fKG1h
eGVudHJpZXMpCisgICAgICAgIHNlbGYubWF4c2Vjb25kcyA9IG1heHNlY29uZHMKKworICAgIGRl
ZiBfZ2V0ZW50cnkoc2VsZiwga2V5KToKKyAgICAgICAgZW50cnkgPSBzZWxmLl9kaWN0W2tleV0K
KyAgICAgICAgaWYgZW50cnkuaXNleHBpcmVkKCk6CisgICAgICAgICAgICBzZWxmLmRlbGVudHJ5
KGtleSkKKyAgICAgICAgICAgIHJhaXNlIEtleUVycm9yKGtleSkKKyAgICAgICAgcmV0dXJuIGVu
dHJ5CisKKyAgICBkZWYgX2J1aWxkKHNlbGYsIGtleSwgYnVpbGRlcik6CisgICAgICAgIHZhbCA9
IGJ1aWxkZXIoKQorICAgICAgICBlbnRyeSA9IEFnaW5nRW50cnkodmFsLCBnZXR0aW1lKCkgKyBz
ZWxmLm1heHNlY29uZHMpCisgICAgICAgIHJldHVybiBlbnRyeQorCitjbGFzcyBBZ2luZ0VudHJ5
KG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHZhbHVlLCBleHBpcmF0aW9udGltZSk6
CisgICAgICAgIHNlbGYudmFsdWUgPSB2YWx1ZQorICAgICAgICBzZWxmLndlaWdodCA9IGV4cGly
YXRpb250aW1lCisKKyAgICBkZWYgaXNleHBpcmVkKHNlbGYpOgorICAgICAgICB0ID0gZ2V0dGlt
ZSgpCisgICAgICAgIHJldHVybiB0ID49IHNlbGYud2VpZ2h0CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
L3B5L19wYXRoL2NvbW1vbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3BhdGgvY29tbW9uLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJkNDkwYjU2YTg2NjkzZWNkZDIzZjM3ZDA1ZGJmYjRiZGM0MzIzNTgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L3B5L19wYXRoL2NvbW1vbi5weQpAQCAtMCwwICsxLDQ1MyBAQAorIiIi
CisiIiIKK2ltcG9ydCB3YXJuaW5ncworaW1wb3J0IG9zCitpbXBvcnQgc3lzCitpbXBvcnQgcG9z
aXhwYXRoCitpbXBvcnQgZm5tYXRjaAoraW1wb3J0IHB5CisKKyMgTW92ZWQgZnJvbSBsb2NhbC5w
eS4KK2lzd2luMzIgPSBzeXMucGxhdGZvcm0gPT0gIndpbjMyIiBvciAoZ2V0YXR0cihvcywgJ19u
YW1lJywgRmFsc2UpID09ICdudCcpCisKK3RyeToKKyAgICBmcm9tIG9zIGltcG9ydCBmc3BhdGgK
K2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBkZWYgZnNwYXRoKHBhdGgpOgorICAgICAgICAiIiIK
KyAgICAgICAgUmV0dXJuIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHBhdGguCisg
ICAgICAgIElmIHN0ciBvciBieXRlcyBpcyBwYXNzZWQgaW4sIGl0IGlzIHJldHVybmVkIHVuY2hh
bmdlZC4KKyAgICAgICAgVGhpcyBjb2RlIGNvbWVzIGZyb20gUEVQIDUxOSwgbW9kaWZpZWQgdG8g
c3VwcG9ydCBlYXJsaWVyIHZlcnNpb25zIG9mCisgICAgICAgIHB5dGhvbi4KKworICAgICAgICBU
aGlzIGlzIHJlcXVpcmVkIGZvciBweXRob24gPCAzLjYuCisgICAgICAgICIiIgorICAgICAgICBp
ZiBpc2luc3RhbmNlKHBhdGgsIChweS5idWlsdGluLnRleHQsIHB5LmJ1aWx0aW4uYnl0ZXMpKToK
KyAgICAgICAgICAgIHJldHVybiBwYXRoCisKKyAgICAgICAgIyBXb3JrIGZyb20gdGhlIG9iamVj
dCdzIHR5cGUgdG8gbWF0Y2ggbWV0aG9kIHJlc29sdXRpb24gb2Ygb3RoZXIgbWFnaWMKKyAgICAg
ICAgIyBtZXRob2RzLgorICAgICAgICBwYXRoX3R5cGUgPSB0eXBlKHBhdGgpCisgICAgICAgIHRy
eToKKyAgICAgICAgICAgIHJldHVybiBwYXRoX3R5cGUuX19mc3BhdGhfXyhwYXRoKQorICAgICAg
ICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICBpZiBoYXNhdHRyKHBhdGhfdHlw
ZSwgJ19fZnNwYXRoX18nKToKKyAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgdHJ5
OgorICAgICAgICAgICAgICAgIGltcG9ydCBwYXRobGliCisgICAgICAgICAgICBleGNlcHQgSW1w
b3J0RXJyb3I6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICBpZiBpc2luc3RhbmNlKHBhdGgsIHBhdGhsaWIuUHVyZVBhdGgpOgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gcHkuYnVpbHRpbi50ZXh0KHBhdGgpCisKKyAgICAgICAgICAg
IHJhaXNlIFR5cGVFcnJvcigiZXhwZWN0ZWQgc3RyLCBieXRlcyBvciBvcy5QYXRoTGlrZSBvYmpl
Y3QsIG5vdCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBwYXRoX3R5cGUuX19uYW1l
X18pCisKK2NsYXNzIENoZWNrZXJzOgorICAgIF9kZXBlbmRfb25fZXhpc3RlbmNlID0gJ2V4aXN0
cycsICdsaW5rJywgJ2RpcicsICdmaWxlJworCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgp
OgorICAgICAgICBzZWxmLnBhdGggPSBwYXRoCisKKyAgICBkZWYgZGlyKHNlbGYpOgorICAgICAg
ICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBkZWYgZmlsZShzZWxmKToKKyAgICAg
ICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAgZGVmIGRvdGZpbGUoc2VsZik6Cisg
ICAgICAgIHJldHVybiBzZWxmLnBhdGguYmFzZW5hbWUuc3RhcnRzd2l0aCgnLicpCisKKyAgICBk
ZWYgZXh0KHNlbGYsIGFyZyk6CisgICAgICAgIGlmIG5vdCBhcmcuc3RhcnRzd2l0aCgnLicpOgor
ICAgICAgICAgICAgYXJnID0gJy4nICsgYXJnCisgICAgICAgIHJldHVybiBzZWxmLnBhdGguZXh0
ID09IGFyZworCisgICAgZGVmIGV4aXN0cyhzZWxmKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVt
ZW50ZWRFcnJvcgorCisgICAgZGVmIGJhc2VuYW1lKHNlbGYsIGFyZyk6CisgICAgICAgIHJldHVy
biBzZWxmLnBhdGguYmFzZW5hbWUgPT0gYXJnCisKKyAgICBkZWYgYmFzZXN0YXJ0cyhzZWxmLCBh
cmcpOgorICAgICAgICByZXR1cm4gc2VsZi5wYXRoLmJhc2VuYW1lLnN0YXJ0c3dpdGgoYXJnKQor
CisgICAgZGVmIHJlbHRvKHNlbGYsIGFyZyk6CisgICAgICAgIHJldHVybiBzZWxmLnBhdGgucmVs
dG8oYXJnKQorCisgICAgZGVmIGZubWF0Y2goc2VsZiwgYXJnKToKKyAgICAgICAgcmV0dXJuIHNl
bGYucGF0aC5mbm1hdGNoKGFyZykKKworICAgIGRlZiBlbmRzd2l0aChzZWxmLCBhcmcpOgorICAg
ICAgICByZXR1cm4gc3RyKHNlbGYucGF0aCkuZW5kc3dpdGgoYXJnKQorCisgICAgZGVmIF9ldmFs
dWF0ZShzZWxmLCBrdyk6CisgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBrdy5pdGVtcygpOgor
ICAgICAgICAgICAgaW52ZXJ0ID0gRmFsc2UKKyAgICAgICAgICAgIG1ldGggPSBOb25lCisgICAg
ICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgbWV0aCA9IGdldGF0dHIoc2VsZiwgbmFtZSkK
KyAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICAgICBpZiBu
YW1lWzozXSA9PSAnbm90JzoKKyAgICAgICAgICAgICAgICAgICAgaW52ZXJ0ID0gVHJ1ZQorICAg
ICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICBtZXRoID0gZ2V0
YXR0cihzZWxmLCBuYW1lWzM6XSkKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEF0dHJpYnV0
ZUVycm9yOgorICAgICAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgaWYgbWV0
aCBpcyBOb25lOgorICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigKKyAgICAgICAgICAg
ICAgICAgICAgIm5vICVyIGNoZWNrZXIgYXZhaWxhYmxlIGZvciAlciIgJSAobmFtZSwgc2VsZi5w
YXRoKSkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBpZiBweS5jb2RlLmdldHJh
d2NvZGUobWV0aCkuY29fYXJnY291bnQgPiAxOgorICAgICAgICAgICAgICAgICAgICBpZiAobm90
IG1ldGgodmFsdWUpKSBeIGludmVydDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBG
YWxzZQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGlmIGJvb2wo
dmFsdWUpIF4gYm9vbChtZXRoKCkpIF4gaW52ZXJ0OgorICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCisgICAgICAgICAgICBleGNlcHQgKHB5LmVycm9yLkVOT0VOVCwgcHkuZXJy
b3IuRU5PVERJUiwgcHkuZXJyb3IuRUJVU1kpOgorICAgICAgICAgICAgICAgICMgRUJVU1kgZmVl
bHMgbm90IGVudGlyZWx5IGNvcnJlY3QsCisgICAgICAgICAgICAgICAgIyBidXQgaXRzIGtpbmQg
b2YgbmVjZXNzYXJ5IHNpbmNlIEVOT01FRElVTQorICAgICAgICAgICAgICAgICMgaXMgbm90IGFj
Y2Vzc2libGUgaW4gcHl0aG9uCisgICAgICAgICAgICAgICAgZm9yIG5hbWUgaW4gc2VsZi5fZGVw
ZW5kX29uX2V4aXN0ZW5jZToKKyAgICAgICAgICAgICAgICAgICAgaWYgbmFtZSBpbiBrdzoKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIGt3LmdldChuYW1lKToKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICdub3Qn
ICsgbmFtZQorICAgICAgICAgICAgICAgICAgICBpZiBuYW1lIGluIGt3OgorICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgbm90IGt3LmdldChuYW1lKToKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJuIFRydWUKKworY2xhc3MgTmV2ZXJSYWlz
ZWQoRXhjZXB0aW9uKToKKyAgICBwYXNzCisKK2NsYXNzIFBhdGhCYXNlKG9iamVjdCk6CisgICAg
IiIiIHNoYXJlZCBpbXBsZW1lbnRhdGlvbiBmb3IgZmlsZXN5c3RlbSBwYXRoIG9iamVjdHMuIiIi
CisgICAgQ2hlY2tlcnMgPSBDaGVja2VycworCisgICAgZGVmIF9fZGl2X18oc2VsZiwgb3RoZXIp
OgorICAgICAgICByZXR1cm4gc2VsZi5qb2luKGZzcGF0aChvdGhlcikpCisgICAgX190cnVlZGl2
X18gPSBfX2Rpdl9fICMgcHkzaworCisgICAgZGVmIGJhc2VuYW1lKHNlbGYpOgorICAgICAgICAi
IiIgYmFzZW5hbWUgcGFydCBvZiBwYXRoLiAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX2dldGJ5
c3BlYygnYmFzZW5hbWUnKVswXQorICAgIGJhc2VuYW1lID0gcHJvcGVydHkoYmFzZW5hbWUsIE5v
bmUsIE5vbmUsIGJhc2VuYW1lLl9fZG9jX18pCisKKyAgICBkZWYgZGlybmFtZShzZWxmKToKKyAg
ICAgICAgIiIiIGRpcm5hbWUgcGFydCBvZiBwYXRoLiAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYu
X2dldGJ5c3BlYygnZGlybmFtZScpWzBdCisgICAgZGlybmFtZSA9IHByb3BlcnR5KGRpcm5hbWUs
IE5vbmUsIE5vbmUsIGRpcm5hbWUuX19kb2NfXykKKworICAgIGRlZiBwdXJlYmFzZW5hbWUoc2Vs
Zik6CisgICAgICAgICIiIiBwdXJlIGJhc2UgbmFtZSBvZiB0aGUgcGF0aC4iIiIKKyAgICAgICAg
cmV0dXJuIHNlbGYuX2dldGJ5c3BlYygncHVyZWJhc2VuYW1lJylbMF0KKyAgICBwdXJlYmFzZW5h
bWUgPSBwcm9wZXJ0eShwdXJlYmFzZW5hbWUsIE5vbmUsIE5vbmUsIHB1cmViYXNlbmFtZS5fX2Rv
Y19fKQorCisgICAgZGVmIGV4dChzZWxmKToKKyAgICAgICAgIiIiIGV4dGVuc2lvbiBvZiB0aGUg
cGF0aCAoaW5jbHVkaW5nIHRoZSAnLicpLiIiIgorICAgICAgICByZXR1cm4gc2VsZi5fZ2V0Ynlz
cGVjKCdleHQnKVswXQorICAgIGV4dCA9IHByb3BlcnR5KGV4dCwgTm9uZSwgTm9uZSwgZXh0Ll9f
ZG9jX18pCisKKyAgICBkZWYgZGlycGF0aChzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAg
ICAiIiIgcmV0dXJuIHRoZSBkaXJlY3RvcnkgcGF0aCBqb2luZWQgd2l0aCBhbnkgZ2l2ZW4gcGF0
aCBhcmd1bWVudHMuICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYubmV3KGJhc2VuYW1lPScnKS5q
b2luKCphcmdzLCAqKmt3YXJncykKKworICAgIGRlZiByZWFkX2JpbmFyeShzZWxmKToKKyAgICAg
ICAgIiIiIHJlYWQgYW5kIHJldHVybiBhIGJ5dGVzdHJpbmcgZnJvbSByZWFkaW5nIHRoZSBwYXRo
LiAiIiIKKyAgICAgICAgd2l0aCBzZWxmLm9wZW4oJ3JiJykgYXMgZjoKKyAgICAgICAgICAgIHJl
dHVybiBmLnJlYWQoKQorCisgICAgZGVmIHJlYWRfdGV4dChzZWxmLCBlbmNvZGluZyk6CisgICAg
ICAgICIiIiByZWFkIGFuZCByZXR1cm4gYSBVbmljb2RlIHN0cmluZyBmcm9tIHJlYWRpbmcgdGhl
IHBhdGguICIiIgorICAgICAgICB3aXRoIHNlbGYub3BlbigiciIsIGVuY29kaW5nPWVuY29kaW5n
KSBhcyBmOgorICAgICAgICAgICAgcmV0dXJuIGYucmVhZCgpCisKKworICAgIGRlZiByZWFkKHNl
bGYsIG1vZGU9J3InKToKKyAgICAgICAgIiIiIHJlYWQgYW5kIHJldHVybiBhIGJ5dGVzdHJpbmcg
ZnJvbSByZWFkaW5nIHRoZSBwYXRoLiAiIiIKKyAgICAgICAgd2l0aCBzZWxmLm9wZW4obW9kZSkg
YXMgZjoKKyAgICAgICAgICAgIHJldHVybiBmLnJlYWQoKQorCisgICAgZGVmIHJlYWRsaW5lcyhz
ZWxmLCBjcj0xKToKKyAgICAgICAgIiIiIHJlYWQgYW5kIHJldHVybiBhIGxpc3Qgb2YgbGluZXMg
ZnJvbSB0aGUgcGF0aC4gaWYgY3IgaXMgRmFsc2UsIHRoZQorbmV3bGluZSB3aWxsIGJlIHJlbW92
ZWQgZnJvbSB0aGUgZW5kIG9mIGVhY2ggbGluZS4gIiIiCisgICAgICAgIGlmIHN5cy52ZXJzaW9u
X2luZm8gPCAoMywgKToKKyAgICAgICAgICAgIG1vZGUgPSAnclUnCisgICAgICAgIGVsc2U6ICAj
IHB5dGhvbiAzIGRlcHJlY2F0ZXMgbW9kZSAiVSIgaW4gZmF2b3Igb2YgIm5ld2xpbmUiIG9wdGlv
bgorICAgICAgICAgICAgbW9kZSA9ICdyJworCisgICAgICAgIGlmIG5vdCBjcjoKKyAgICAgICAg
ICAgIGNvbnRlbnQgPSBzZWxmLnJlYWQobW9kZSkKKyAgICAgICAgICAgIHJldHVybiBjb250ZW50
LnNwbGl0KCdcbicpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmID0gc2VsZi5vcGVuKG1v
ZGUpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGYucmVhZGxpbmVz
KCkKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgZi5jbG9zZSgpCisKKyAg
ICBkZWYgbG9hZChzZWxmKToKKyAgICAgICAgIiIiIChkZXByZWNhdGVkKSByZXR1cm4gb2JqZWN0
IHVucGlja2xlZCBmcm9tIHNlbGYucmVhZCgpICIiIgorICAgICAgICBmID0gc2VsZi5vcGVuKCdy
YicpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGltcG9ydCBwaWNrbGUKKyAgICAgICAgICAg
IHJldHVybiBweS5lcnJvci5jaGVja2VkX2NhbGwocGlja2xlLmxvYWQsIGYpCisgICAgICAgIGZp
bmFsbHk6CisgICAgICAgICAgICBmLmNsb3NlKCkKKworICAgIGRlZiBtb3ZlKHNlbGYsIHRhcmdl
dCk6CisgICAgICAgICIiIiBtb3ZlIHRoaXMgcGF0aCB0byB0YXJnZXQuICIiIgorICAgICAgICBp
ZiB0YXJnZXQucmVsdG8oc2VsZik6CisgICAgICAgICAgICByYWlzZSBweS5lcnJvci5FSU5WQUwo
CisgICAgICAgICAgICAgICAgdGFyZ2V0LAorICAgICAgICAgICAgICAgICJjYW5ub3QgbW92ZSBw
YXRoIGludG8gYSBzdWJkaXJlY3Rvcnkgb2YgaXRzZWxmIikKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgc2VsZi5yZW5hbWUodGFyZ2V0KQorICAgICAgICBleGNlcHQgcHkuZXJyb3IuRVhERVY6
ICAjIGludmFsaWQgY3Jvc3MtZGV2aWNlIGxpbmsKKyAgICAgICAgICAgIHNlbGYuY29weSh0YXJn
ZXQpCisgICAgICAgICAgICBzZWxmLnJlbW92ZSgpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6
CisgICAgICAgICIiIiByZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBwYXRo
LiAiIiIKKyAgICAgICAgcmV0dXJuIHJlcHIoc3RyKHNlbGYpKQorCisgICAgZGVmIGNoZWNrKHNl
bGYsICoqa3cpOgorICAgICAgICAiIiIgY2hlY2sgYSBwYXRoIGZvciBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMuCisKKyAgICAgICAgICAgIFdpdGhvdXQgYXJndW1lbnRzLCByZXR1cm4gVHJ1ZSBp
ZiB0aGUgcGF0aCBleGlzdHMsIG90aGVyd2lzZSBGYWxzZS4KKworICAgICAgICAgICAgdmFsaWQg
Y2hlY2tlcnM6OgorCisgICAgICAgICAgICAgICAgZmlsZT0xICAgICMgaXMgYSBmaWxlCisgICAg
ICAgICAgICAgICAgZmlsZT0wICAgICMgaXMgbm90IGEgZmlsZSAobWF5IG5vdCBldmVuIGV4aXN0
KQorICAgICAgICAgICAgICAgIGRpcj0xICAgICAjIGlzIGEgZGlyCisgICAgICAgICAgICAgICAg
bGluaz0xICAgICMgaXMgYSBsaW5rCisgICAgICAgICAgICAgICAgZXhpc3RzPTEgICMgZXhpc3Rz
CisKKyAgICAgICAgICAgIFlvdSBjYW4gc3BlY2lmeSBtdWx0aXBsZSBjaGVja2VyIGRlZmluaXRp
b25zLCBmb3IgZXhhbXBsZTo6CisKKyAgICAgICAgICAgICAgICBwYXRoLmNoZWNrKGZpbGU9MSwg
bGluaz0xKSAgIyBhIGxpbmsgcG9pbnRpbmcgdG8gYSBmaWxlCisgICAgICAgICIiIgorICAgICAg
ICBpZiBub3Qga3c6CisgICAgICAgICAgICBrdyA9IHsnZXhpc3RzJzogMX0KKyAgICAgICAgcmV0
dXJuIHNlbGYuQ2hlY2tlcnMoc2VsZikuX2V2YWx1YXRlKGt3KQorCisgICAgZGVmIGZubWF0Y2go
c2VsZiwgcGF0dGVybik6CisgICAgICAgICIiInJldHVybiB0cnVlIGlmIHRoZSBiYXNlbmFtZS9m
dWxsbmFtZSBtYXRjaGVzIHRoZSBnbG9iLSdwYXR0ZXJuJy4KKworICAgICAgICB2YWxpZCBwYXR0
ZXJuIGNoYXJhY3RlcnM6OgorCisgICAgICAgICAgICAqICAgICAgIG1hdGNoZXMgZXZlcnl0aGlu
ZworICAgICAgICAgICAgPyAgICAgICBtYXRjaGVzIGFueSBzaW5nbGUgY2hhcmFjdGVyCisgICAg
ICAgICAgICBbc2VxXSAgIG1hdGNoZXMgYW55IGNoYXJhY3RlciBpbiBzZXEKKyAgICAgICAgICAg
IFshc2VxXSAgbWF0Y2hlcyBhbnkgY2hhciBub3QgaW4gc2VxCisKKyAgICAgICAgSWYgdGhlIHBh
dHRlcm4gY29udGFpbnMgYSBwYXRoLXNlcGFyYXRvciB0aGVuIHRoZSBmdWxsIHBhdGgKKyAgICAg
ICAgaXMgdXNlZCBmb3IgcGF0dGVybiBtYXRjaGluZyBhbmQgYSAnKicgaXMgcHJlcGVuZGVkIHRv
IHRoZQorICAgICAgICBwYXR0ZXJuLgorCisgICAgICAgIGlmIHRoZSBwYXR0ZXJuIGRvZXNuJ3Qg
Y29udGFpbiBhIHBhdGgtc2VwYXJhdG9yIHRoZSBwYXR0ZXJuCisgICAgICAgIGlzIG9ubHkgbWF0
Y2hlZCBhZ2FpbnN0IHRoZSBiYXNlbmFtZS4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBG
Tk1hdGNoZXIocGF0dGVybikoc2VsZikKKworICAgIGRlZiByZWx0byhzZWxmLCByZWxwYXRoKToK
KyAgICAgICAgIiIiIHJldHVybiBhIHN0cmluZyB3aGljaCBpcyB0aGUgcmVsYXRpdmUgcGFydCBv
ZiB0aGUgcGF0aAorICAgICAgICB0byB0aGUgZ2l2ZW4gJ3JlbHBhdGgnLgorICAgICAgICAiIiIK
KyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UocmVscGF0aCwgKHN0ciwgUGF0aEJhc2UpKToKKyAg
ICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiJXI6IG5vdCBhIHN0cmluZyBvciBwYXRoIG9iamVj
dCIgJShyZWxwYXRoLCkpCisgICAgICAgIHN0cnJlbHBhdGggPSBzdHIocmVscGF0aCkKKyAgICAg
ICAgaWYgc3RycmVscGF0aCBhbmQgc3RycmVscGF0aFstMV0gIT0gc2VsZi5zZXA6CisgICAgICAg
ICAgICBzdHJyZWxwYXRoICs9IHNlbGYuc2VwCisgICAgICAgICNhc3NlcnQgc3RycmVscGF0aFst
MV0gPT0gc2VsZi5zZXAKKyAgICAgICAgI2Fzc2VydCBzdHJyZWxwYXRoWy0yXSAhPSBzZWxmLnNl
cAorICAgICAgICBzdHJzZWxmID0gc2VsZi5zdHJwYXRoCisgICAgICAgIGlmIHN5cy5wbGF0Zm9y
bSA9PSAid2luMzIiIG9yIGdldGF0dHIob3MsICdfbmFtZScsIE5vbmUpID09ICdudCc6CisgICAg
ICAgICAgICBpZiBvcy5wYXRoLm5vcm1jYXNlKHN0cnNlbGYpLnN0YXJ0c3dpdGgoCisgICAgICAg
ICAgICAgICBvcy5wYXRoLm5vcm1jYXNlKHN0cnJlbHBhdGgpKToKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gc3Ryc2VsZltsZW4oc3RycmVscGF0aCk6XQorICAgICAgICBlbGlmIHN0cnNlbGYuc3Rh
cnRzd2l0aChzdHJyZWxwYXRoKToKKyAgICAgICAgICAgIHJldHVybiBzdHJzZWxmW2xlbihzdHJy
ZWxwYXRoKTpdCisgICAgICAgIHJldHVybiAiIgorCisgICAgZGVmIGVuc3VyZV9kaXIoc2VsZiwg
KmFyZ3MpOgorICAgICAgICAiIiIgZW5zdXJlIHRoZSBwYXRoIGpvaW5lZCB3aXRoIGFyZ3MgaXMg
YSBkaXJlY3RvcnkuICIiIgorICAgICAgICByZXR1cm4gc2VsZi5lbnN1cmUoKmFyZ3MsICoqeyJk
aXIiOiBUcnVlfSkKKworICAgIGRlZiBiZXN0cmVscGF0aChzZWxmLCBkZXN0KToKKyAgICAgICAg
IiIiIHJldHVybiBhIHN0cmluZyB3aGljaCBpcyBhIHJlbGF0aXZlIHBhdGggZnJvbSBzZWxmCisg
ICAgICAgICAgICAoYXNzdW1lZCB0byBiZSBhIGRpcmVjdG9yeSkgdG8gZGVzdCBzdWNoIHRoYXQK
KyAgICAgICAgICAgIHNlbGYuam9pbihiZXN0cmVscGF0aCkgPT0gZGVzdCBhbmQgaWYgbm90IHN1
Y2gKKyAgICAgICAgICAgIHBhdGggY2FuIGJlIGRldGVybWluZWQgcmV0dXJuIGRlc3QuCisgICAg
ICAgICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICBpZiBzZWxmID09IGRlc3Q6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIG9zLmN1cmRpcgorICAgICAgICAgICAgYmFzZSA9IHNlbGYuY29t
bW9uKGRlc3QpCisgICAgICAgICAgICBpZiBub3QgYmFzZTogICMgY2FuIGJlIHRoZSBjYXNlIG9u
IHdpbmRvd3MKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RyKGRlc3QpCisgICAgICAgICAgICBz
ZWxmMmJhc2UgPSBzZWxmLnJlbHRvKGJhc2UpCisgICAgICAgICAgICByZWxkZXN0ID0gZGVzdC5y
ZWx0byhiYXNlKQorICAgICAgICAgICAgaWYgc2VsZjJiYXNlOgorICAgICAgICAgICAgICAgIG4g
PSBzZWxmMmJhc2UuY291bnQoc2VsZi5zZXApICsgMQorICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICBuID0gMAorICAgICAgICAgICAgbCA9IFtvcy5wYXJkaXJdICogbgorICAgICAg
ICAgICAgaWYgcmVsZGVzdDoKKyAgICAgICAgICAgICAgICBsLmFwcGVuZChyZWxkZXN0KQorICAg
ICAgICAgICAgdGFyZ2V0ID0gZGVzdC5zZXAuam9pbihsKQorICAgICAgICAgICAgcmV0dXJuIHRh
cmdldAorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICByZXR1cm4g
c3RyKGRlc3QpCisKKyAgICBkZWYgZXhpc3RzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5j
aGVjaygpCisKKyAgICBkZWYgaXNkaXIoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmNoZWNr
KGRpcj0xKQorCisgICAgZGVmIGlzZmlsZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuY2hl
Y2soZmlsZT0xKQorCisgICAgZGVmIHBhcnRzKHNlbGYsIHJldmVyc2U9RmFsc2UpOgorICAgICAg
ICAiIiIgcmV0dXJuIGEgcm9vdC1maXJzdCBsaXN0IG9mIGFsbCBhbmNlc3RvciBkaXJlY3Rvcmll
cworICAgICAgICAgICAgcGx1cyB0aGUgcGF0aCBpdHNlbGYuCisgICAgICAgICIiIgorICAgICAg
ICBjdXJyZW50ID0gc2VsZgorICAgICAgICBsID0gW3NlbGZdCisgICAgICAgIHdoaWxlIDE6Cisg
ICAgICAgICAgICBsYXN0ID0gY3VycmVudAorICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQu
ZGlycGF0aCgpCisgICAgICAgICAgICBpZiBsYXN0ID09IGN1cnJlbnQ6CisgICAgICAgICAgICAg
ICAgYnJlYWsKKyAgICAgICAgICAgIGwuYXBwZW5kKGN1cnJlbnQpCisgICAgICAgIGlmIG5vdCBy
ZXZlcnNlOgorICAgICAgICAgICAgbC5yZXZlcnNlKCkKKyAgICAgICAgcmV0dXJuIGwKKworICAg
IGRlZiBjb21tb24oc2VsZiwgb3RoZXIpOgorICAgICAgICAiIiIgcmV0dXJuIHRoZSBjb21tb24g
cGFydCBzaGFyZWQgd2l0aCB0aGUgb3RoZXIgcGF0aAorICAgICAgICAgICAgb3IgTm9uZSBpZiB0
aGVyZSBpcyBubyBjb21tb24gcGFydC4KKyAgICAgICAgIiIiCisgICAgICAgIGxhc3QgPSBOb25l
CisgICAgICAgIGZvciB4LCB5IGluIHppcChzZWxmLnBhcnRzKCksIG90aGVyLnBhcnRzKCkpOgor
ICAgICAgICAgICAgaWYgeCAhPSB5OgorICAgICAgICAgICAgICAgIHJldHVybiBsYXN0CisgICAg
ICAgICAgICBsYXN0ID0geAorICAgICAgICByZXR1cm4gbGFzdAorCisgICAgZGVmIF9fYWRkX18o
c2VsZiwgb3RoZXIpOgorICAgICAgICAiIiIgcmV0dXJuIG5ldyBwYXRoIG9iamVjdCB3aXRoICdv
dGhlcicgYWRkZWQgdG8gdGhlIGJhc2VuYW1lIiIiCisgICAgICAgIHJldHVybiBzZWxmLm5ldyhi
YXNlbmFtZT1zZWxmLmJhc2VuYW1lK3N0cihvdGhlcikpCisKKyAgICBkZWYgX19jbXBfXyhzZWxm
LCBvdGhlcik6CisgICAgICAgICIiIiByZXR1cm4gc29ydCB2YWx1ZSAoLTEsIDAsICsxKS4gIiIi
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBjbXAoc2VsZi5zdHJwYXRoLCBvdGhl
ci5zdHJwYXRoKQorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICBy
ZXR1cm4gY21wKHN0cihzZWxmKSwgc3RyKG90aGVyKSkgIyBzZWxmLnBhdGgsIG90aGVyLnBhdGgp
CisKKyAgICBkZWYgX19sdF9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgcmV0dXJuIHNlbGYuc3RycGF0aCA8IG90aGVyLnN0cnBhdGgKKyAgICAgICAgZXhjZXB0IEF0
dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgcmV0dXJuIHN0cihzZWxmKSA8IHN0cihvdGhlcikK
KworICAgIGRlZiB2aXNpdChzZWxmLCBmaWw9Tm9uZSwgcmVjPU5vbmUsIGlnbm9yZT1OZXZlclJh
aXNlZCwgYmY9RmFsc2UsIHNvcnQ9RmFsc2UpOgorICAgICAgICAiIiIgeWllbGRzIGFsbCBwYXRo
cyBiZWxvdyB0aGUgY3VycmVudCBvbmUKKworICAgICAgICAgICAgZmlsIGlzIGEgZmlsdGVyIChn
bG9iIHBhdHRlcm4gb3IgY2FsbGFibGUpLCBpZiBub3QgbWF0Y2hpbmcgdGhlCisgICAgICAgICAg
ICBwYXRoIHdpbGwgbm90IGJlIHlpZWxkZWQsIGRlZmF1bHRpbmcgdG8gTm9uZSAoZXZlcnl0aGlu
ZyBpcworICAgICAgICAgICAgcmV0dXJuZWQpCisKKyAgICAgICAgICAgIHJlYyBpcyBhIGZpbHRl
ciAoZ2xvYiBwYXR0ZXJuIG9yIGNhbGxhYmxlKSB0aGF0IGNvbnRyb2xzIHdoZXRoZXIKKyAgICAg
ICAgICAgIGEgbm9kZSBpcyBkZXNjZW5kZWQsIGRlZmF1bHRpbmcgdG8gTm9uZQorCisgICAgICAg
ICAgICBpZ25vcmUgaXMgYW4gRXhjZXB0aW9uIGNsYXNzIHRoYXQgaXMgaWdub3JlZHdoZW4gY2Fs
bGluZyBkaXJsaXN0KCkKKyAgICAgICAgICAgIG9uIGFueSBvZiB0aGUgcGF0aHMgKGJ5IGRlZmF1
bHQsIGFsbCBleGNlcHRpb25zIGFyZSByZXBvcnRlZCkKKworICAgICAgICAgICAgYmYgaWYgVHJ1
ZSB3aWxsIGNhdXNlIGEgYnJlYWR0aGZpcnN0IHNlYXJjaCBpbnN0ZWFkIG9mIHRoZQorICAgICAg
ICAgICAgZGVmYXVsdCBkZXB0aGZpcnN0LiBEZWZhdWx0OiBGYWxzZQorCisgICAgICAgICAgICBz
b3J0IGlmIFRydWUgd2lsbCBzb3J0IGVudHJpZXMgd2l0aGluIGVhY2ggZGlyZWN0b3J5IGxldmVs
LgorICAgICAgICAiIiIKKyAgICAgICAgZm9yIHggaW4gVmlzaXRvcihmaWwsIHJlYywgaWdub3Jl
LCBiZiwgc29ydCkuZ2VuKHNlbGYpOgorICAgICAgICAgICAgeWllbGQgeAorCisgICAgZGVmIF9z
b3J0bGlzdChzZWxmLCByZXMsIHNvcnQpOgorICAgICAgICBpZiBzb3J0OgorICAgICAgICAgICAg
aWYgaGFzYXR0cihzb3J0LCAnX19jYWxsX18nKToKKyAgICAgICAgICAgICAgICB3YXJuaW5ncy53
YXJuKERlcHJlY2F0aW9uV2FybmluZygKKyAgICAgICAgICAgICAgICAgICAgImxpc3RkaXIoc29y
dD1jYWxsYWJsZSkgaXMgZGVwcmVjYXRlZCBhbmQgYnJlYWtzIG9uIHB5dGhvbjMiCisgICAgICAg
ICAgICAgICAgKSwgc3RhY2tsZXZlbD0zKQorICAgICAgICAgICAgICAgIHJlcy5zb3J0KHNvcnQp
CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJlcy5zb3J0KCkKKworICAgIGRl
ZiBzYW1lZmlsZShzZWxmLCBvdGhlcik6CisgICAgICAgICIiIiByZXR1cm4gVHJ1ZSBpZiBvdGhl
ciByZWZlcnMgdG8gdGhlIHNhbWUgc3RhdCBvYmplY3QgYXMgc2VsZi4gIiIiCisgICAgICAgIHJl
dHVybiBzZWxmLnN0cnBhdGggPT0gc3RyKG90aGVyKQorCisgICAgZGVmIF9fZnNwYXRoX18oc2Vs
Zik6CisgICAgICAgIHJldHVybiBzZWxmLnN0cnBhdGgKKworY2xhc3MgVmlzaXRvcjoKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgZmlsLCByZWMsIGlnbm9yZSwgYmYsIHNvcnQpOgorICAgICAgICBp
ZiBpc2luc3RhbmNlKGZpbCwgcHkuYnVpbHRpbi5fYmFzZXN0cmluZyk6CisgICAgICAgICAgICBm
aWwgPSBGTk1hdGNoZXIoZmlsKQorICAgICAgICBpZiBpc2luc3RhbmNlKHJlYywgcHkuYnVpbHRp
bi5fYmFzZXN0cmluZyk6CisgICAgICAgICAgICBzZWxmLnJlYyA9IEZOTWF0Y2hlcihyZWMpCisg
ICAgICAgIGVsaWYgbm90IGhhc2F0dHIocmVjLCAnX19jYWxsX18nKSBhbmQgcmVjOgorICAgICAg
ICAgICAgc2VsZi5yZWMgPSBsYW1iZGEgcGF0aDogVHJ1ZQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgc2VsZi5yZWMgPSByZWMKKyAgICAgICAgc2VsZi5maWwgPSBmaWwKKyAgICAgICAgc2Vs
Zi5pZ25vcmUgPSBpZ25vcmUKKyAgICAgICAgc2VsZi5icmVhZHRoZmlyc3QgPSBiZgorICAgICAg
ICBzZWxmLm9wdHNvcnQgPSBzb3J0IGFuZCBzb3J0ZWQgb3IgKGxhbWJkYSB4OiB4KQorCisgICAg
ZGVmIGdlbihzZWxmLCBwYXRoKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZW50cmllcyA9
IHBhdGgubGlzdGRpcigpCisgICAgICAgIGV4Y2VwdCBzZWxmLmlnbm9yZToKKyAgICAgICAgICAg
IHJldHVybgorICAgICAgICByZWMgPSBzZWxmLnJlYworICAgICAgICBkaXJzID0gc2VsZi5vcHRz
b3J0KFtwIGZvciBwIGluIGVudHJpZXMKKyAgICAgICAgICAgICAgICAgICAgaWYgcC5jaGVjayhk
aXI9MSkgYW5kIChyZWMgaXMgTm9uZSBvciByZWMocCkpXSkKKyAgICAgICAgaWYgbm90IHNlbGYu
YnJlYWR0aGZpcnN0OgorICAgICAgICAgICAgZm9yIHN1YmRpciBpbiBkaXJzOgorICAgICAgICAg
ICAgICAgIGZvciBwIGluIHNlbGYuZ2VuKHN1YmRpcik6CisgICAgICAgICAgICAgICAgICAgIHlp
ZWxkIHAKKyAgICAgICAgZm9yIHAgaW4gc2VsZi5vcHRzb3J0KGVudHJpZXMpOgorICAgICAgICAg
ICAgaWYgc2VsZi5maWwgaXMgTm9uZSBvciBzZWxmLmZpbChwKToKKyAgICAgICAgICAgICAgICB5
aWVsZCBwCisgICAgICAgIGlmIHNlbGYuYnJlYWR0aGZpcnN0OgorICAgICAgICAgICAgZm9yIHN1
YmRpciBpbiBkaXJzOgorICAgICAgICAgICAgICAgIGZvciBwIGluIHNlbGYuZ2VuKHN1YmRpcik6
CisgICAgICAgICAgICAgICAgICAgIHlpZWxkIHAKKworY2xhc3MgRk5NYXRjaGVyOgorICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBwYXR0ZXJuKToKKyAgICAgICAgc2VsZi5wYXR0ZXJuID0gcGF0dGVy
bgorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIHBhdGgpOgorICAgICAgICBwYXR0ZXJuID0gc2Vs
Zi5wYXR0ZXJuCisKKyAgICAgICAgaWYgKHBhdHRlcm4uZmluZChwYXRoLnNlcCkgPT0gLTEgYW5k
CisgICAgICAgIGlzd2luMzIgYW5kCisgICAgICAgIHBhdHRlcm4uZmluZChwb3NpeHBhdGguc2Vw
KSAhPSAtMSk6CisgICAgICAgICAgICAjIFJ1bm5pbmcgb24gV2luZG93cywgdGhlIHBhdHRlcm4g
aGFzIG5vIFdpbmRvd3MgcGF0aCBzZXBhcmF0b3JzLAorICAgICAgICAgICAgIyBhbmQgdGhlIHBh
dHRlcm4gaGFzIG9uZSBvciBtb3JlIFBvc2l4IHBhdGggc2VwYXJhdG9ycy4gUmVwbGFjZQorICAg
ICAgICAgICAgIyB0aGUgUG9zaXggcGF0aCBzZXBhcmF0b3JzIHdpdGggdGhlIFdpbmRvd3MgcGF0
aCBzZXBhcmF0b3IuCisgICAgICAgICAgICBwYXR0ZXJuID0gcGF0dGVybi5yZXBsYWNlKHBvc2l4
cGF0aC5zZXAsIHBhdGguc2VwKQorCisgICAgICAgIGlmIHBhdHRlcm4uZmluZChwYXRoLnNlcCkg
PT0gLTE6CisgICAgICAgICAgICBuYW1lID0gcGF0aC5iYXNlbmFtZQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgbmFtZSA9IHN0cihwYXRoKSAjIHBhdGguc3RycGF0aCAjIFhYWCBzdm4/Cisg
ICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2FicyhwYXR0ZXJuKToKKyAgICAgICAgICAgICAg
ICBwYXR0ZXJuID0gJyonICsgcGF0aC5zZXAgKyBwYXR0ZXJuCisgICAgICAgIHJldHVybiBmbm1h
dGNoLmZubWF0Y2gobmFtZSwgcGF0dGVybikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3BhdGgv
bG9jYWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L3B5L19wYXRoL2xvY2FsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1NTBmYTJm
MWFiNjhiZWYwNTk0MTc5NTlmMTk1ODQ3YmMwZjFiZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L3B5L19wYXRoL2xvY2FsLnB5CkBAIC0wLDAgKzEsOTkyIEBACisiIiIKK2xvY2FsIHBhdGgg
aW1wbGVtZW50YXRpb24uCisiIiIKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgd2l0aF9zdGF0ZW1l
bnQKKworZnJvbSBjb250ZXh0bGliIGltcG9ydCBjb250ZXh0bWFuYWdlcgoraW1wb3J0IHN5cywg
b3MsIHJlLCBhdGV4aXQsIGlvLCB1dWlkCitpbXBvcnQgcHkKK2Zyb20gcHkuX3BhdGggaW1wb3J0
IGNvbW1vbgorZnJvbSBweS5fcGF0aC5jb21tb24gaW1wb3J0IGlzd2luMzIsIGZzcGF0aAorZnJv
bSBzdGF0IGltcG9ydCBTX0lTTE5LLCBTX0lTRElSLCBTX0lTUkVHCisKK2Zyb20gb3MucGF0aCBp
bXBvcnQgYWJzcGF0aCwgbm9ybWNhc2UsIG5vcm1wYXRoLCBpc2FicywgZXhpc3RzLCBpc2Rpciwg
aXNmaWxlLCBpc2xpbmssIGRpcm5hbWUKKworaWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLDApOgor
ICAgIGRlZiBtYXBfYXNfbGlzdChmdW5jLCBpdGVyKToKKyAgICAgICAgcmV0dXJuIGxpc3QobWFw
KGZ1bmMsIGl0ZXIpKQorZWxzZToKKyAgICBtYXBfYXNfbGlzdCA9IG1hcAorCitjbGFzcyBTdGF0
KG9iamVjdCk6CisgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIG5hbWUpOgorICAgICAgICByZXR1
cm4gZ2V0YXR0cihzZWxmLl9vc3N0YXRyZXN1bHQsICJzdF8iICsgbmFtZSkKKworICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBwYXRoLCBvc3N0YXRyZXN1bHQpOgorICAgICAgICBzZWxmLnBhdGggPSBw
YXRoCisgICAgICAgIHNlbGYuX29zc3RhdHJlc3VsdCA9IG9zc3RhdHJlc3VsdAorCisgICAgQHBy
b3BlcnR5CisgICAgZGVmIG93bmVyKHNlbGYpOgorICAgICAgICBpZiBpc3dpbjMyOgorICAgICAg
ICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigiWFhYIHdpbjMyIikKKyAgICAgICAgaW1w
b3J0IHB3ZAorICAgICAgICBlbnRyeSA9IHB5LmVycm9yLmNoZWNrZWRfY2FsbChwd2QuZ2V0cHd1
aWQsIHNlbGYudWlkKQorICAgICAgICByZXR1cm4gZW50cnlbMF0KKworICAgIEBwcm9wZXJ0eQor
ICAgIGRlZiBncm91cChzZWxmKToKKyAgICAgICAgIiIiIHJldHVybiBncm91cCBuYW1lIG9mIGZp
bGUuICIiIgorICAgICAgICBpZiBpc3dpbjMyOgorICAgICAgICAgICAgcmFpc2UgTm90SW1wbGVt
ZW50ZWRFcnJvcigiWFhYIHdpbjMyIikKKyAgICAgICAgaW1wb3J0IGdycAorICAgICAgICBlbnRy
eSA9IHB5LmVycm9yLmNoZWNrZWRfY2FsbChncnAuZ2V0Z3JnaWQsIHNlbGYuZ2lkKQorICAgICAg
ICByZXR1cm4gZW50cnlbMF0KKworICAgIGRlZiBpc2RpcihzZWxmKToKKyAgICAgICAgcmV0dXJu
IFNfSVNESVIoc2VsZi5fb3NzdGF0cmVzdWx0LnN0X21vZGUpCisKKyAgICBkZWYgaXNmaWxlKHNl
bGYpOgorICAgICAgICByZXR1cm4gU19JU1JFRyhzZWxmLl9vc3N0YXRyZXN1bHQuc3RfbW9kZSkK
KworICAgIGRlZiBpc2xpbmsoc2VsZik6CisgICAgICAgIHN0ID0gc2VsZi5wYXRoLmxzdGF0KCkK
KyAgICAgICAgcmV0dXJuIFNfSVNMTksoc2VsZi5fb3NzdGF0cmVzdWx0LnN0X21vZGUpCisKK2Ns
YXNzIFBvc2l4UGF0aChjb21tb24uUGF0aEJhc2UpOgorICAgIGRlZiBjaG93bihzZWxmLCB1c2Vy
LCBncm91cCwgcmVjPTApOgorICAgICAgICAiIiIgY2hhbmdlIG93bmVyc2hpcCB0byB0aGUgZ2l2
ZW4gdXNlciBhbmQgZ3JvdXAuCisgICAgICAgICAgICB1c2VyIGFuZCBncm91cCBtYXkgYmUgc3Bl
Y2lmaWVkIGJ5IGEgbnVtYmVyIG9yCisgICAgICAgICAgICBieSBhIG5hbWUuICBpZiByZWMgaXMg
VHJ1ZSBjaGFuZ2Ugb3duZXJzaGlwCisgICAgICAgICAgICByZWN1cnNpdmVseS4KKyAgICAgICAg
IiIiCisgICAgICAgIHVpZCA9IGdldHVzZXJpZCh1c2VyKQorICAgICAgICBnaWQgPSBnZXRncm91
cGlkKGdyb3VwKQorICAgICAgICBpZiByZWM6CisgICAgICAgICAgICBmb3IgeCBpbiBzZWxmLnZp
c2l0KHJlYz1sYW1iZGEgeDogeC5jaGVjayhsaW5rPTApKToKKyAgICAgICAgICAgICAgICBpZiB4
LmNoZWNrKGxpbms9MCk6CisgICAgICAgICAgICAgICAgICAgIHB5LmVycm9yLmNoZWNrZWRfY2Fs
bChvcy5jaG93biwgc3RyKHgpLCB1aWQsIGdpZCkKKyAgICAgICAgcHkuZXJyb3IuY2hlY2tlZF9j
YWxsKG9zLmNob3duLCBzdHIoc2VsZiksIHVpZCwgZ2lkKQorCisgICAgZGVmIHJlYWRsaW5rKHNl
bGYpOgorICAgICAgICAiIiIgcmV0dXJuIHZhbHVlIG9mIGEgc3ltYm9saWMgbGluay4gIiIiCisg
ICAgICAgIHJldHVybiBweS5lcnJvci5jaGVja2VkX2NhbGwob3MucmVhZGxpbmssIHNlbGYuc3Ry
cGF0aCkKKworICAgIGRlZiBta2xpbmt0byhzZWxmLCBvbGRuYW1lKToKKyAgICAgICAgIiIiIHBv
c2l4IHN0eWxlIGhhcmQgbGluayB0byBhbm90aGVyIG5hbWUuICIiIgorICAgICAgICBweS5lcnJv
ci5jaGVja2VkX2NhbGwob3MubGluaywgc3RyKG9sZG5hbWUpLCBzdHIoc2VsZikpCisKKyAgICBk
ZWYgbWtzeW1saW5rdG8oc2VsZiwgdmFsdWUsIGFic29sdXRlPTEpOgorICAgICAgICAiIiIgY3Jl
YXRlIGEgc3ltYm9saWMgbGluayB3aXRoIHRoZSBnaXZlbiB2YWx1ZSAocG9pbnRpbmcgdG8gYW5v
dGhlciBuYW1lKS4gIiIiCisgICAgICAgIGlmIGFic29sdXRlOgorICAgICAgICAgICAgcHkuZXJy
b3IuY2hlY2tlZF9jYWxsKG9zLnN5bWxpbmssIHN0cih2YWx1ZSksIHNlbGYuc3RycGF0aCkKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIGJhc2UgPSBzZWxmLmNvbW1vbih2YWx1ZSkKKyAgICAg
ICAgICAgICMgd2l0aCBwb3NpeCBsb2NhbCBwYXRocyAnLycgaXMgYWx3YXlzIGEgY29tbW9uIGJh
c2UKKyAgICAgICAgICAgIHJlbHNvdXJjZSA9IHNlbGYuX19jbGFzc19fKHZhbHVlKS5yZWx0byhi
YXNlKQorICAgICAgICAgICAgcmVsZGVzdCA9IHNlbGYucmVsdG8oYmFzZSkKKyAgICAgICAgICAg
IG4gPSByZWxkZXN0LmNvdW50KHNlbGYuc2VwKQorICAgICAgICAgICAgdGFyZ2V0ID0gc2VsZi5z
ZXAuam9pbigoJy4uJywgKSpuICsgKHJlbHNvdXJjZSwgKSkKKyAgICAgICAgICAgIHB5LmVycm9y
LmNoZWNrZWRfY2FsbChvcy5zeW1saW5rLCB0YXJnZXQsIHNlbGYuc3RycGF0aCkKKworZGVmIGdl
dHVzZXJpZCh1c2VyKToKKyAgICBpbXBvcnQgcHdkCisgICAgaWYgbm90IGlzaW5zdGFuY2UodXNl
ciwgaW50KToKKyAgICAgICAgdXNlciA9IHB3ZC5nZXRwd25hbSh1c2VyKVsyXQorICAgIHJldHVy
biB1c2VyCisKK2RlZiBnZXRncm91cGlkKGdyb3VwKToKKyAgICBpbXBvcnQgZ3JwCisgICAgaWYg
bm90IGlzaW5zdGFuY2UoZ3JvdXAsIGludCk6CisgICAgICAgIGdyb3VwID0gZ3JwLmdldGdybmFt
KGdyb3VwKVsyXQorICAgIHJldHVybiBncm91cAorCitGU0Jhc2UgPSBub3QgaXN3aW4zMiBhbmQg
UG9zaXhQYXRoIG9yIGNvbW1vbi5QYXRoQmFzZQorCitjbGFzcyBMb2NhbFBhdGgoRlNCYXNlKToK
KyAgICAiIiIgb2JqZWN0IG9yaWVudGVkIGludGVyZmFjZSB0byBvcy5wYXRoIGFuZCBvdGhlciBs
b2NhbCBmaWxlc3lzdGVtCisgICAgICAgIHJlbGF0ZWQgaW5mb3JtYXRpb24uCisgICAgIiIiCisg
ICAgY2xhc3MgSW1wb3J0TWlzbWF0Y2hFcnJvcihJbXBvcnRFcnJvcik6CisgICAgICAgICIiIiBy
YWlzZWQgb24gcHlpbXBvcnQoKSBpZiB0aGVyZSBpcyBhIG1pc21hdGNoIG9mIF9fZmlsZV9fJ3Mi
IiIKKworICAgIHNlcCA9IG9zLnNlcAorICAgIGNsYXNzIENoZWNrZXJzKGNvbW1vbi5DaGVja2Vy
cyk6CisgICAgICAgIGRlZiBfc3RhdChzZWxmKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAg
ICAgICAgICByZXR1cm4gc2VsZi5fc3RhdGNhY2hlCisgICAgICAgICAgICBleGNlcHQgQXR0cmli
dXRlRXJyb3I6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBzZWxm
Ll9zdGF0Y2FjaGUgPSBzZWxmLnBhdGguc3RhdCgpCisgICAgICAgICAgICAgICAgZXhjZXB0IHB5
LmVycm9yLkVMT09QOgorICAgICAgICAgICAgICAgICAgICBzZWxmLl9zdGF0Y2FjaGUgPSBzZWxm
LnBhdGgubHN0YXQoKQorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9zdGF0Y2FjaGUKKwor
ICAgICAgICBkZWYgZGlyKHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuIFNfSVNESVIoc2VsZi5f
c3RhdCgpLm1vZGUpCisKKyAgICAgICAgZGVmIGZpbGUoc2VsZik6CisgICAgICAgICAgICByZXR1
cm4gU19JU1JFRyhzZWxmLl9zdGF0KCkubW9kZSkKKworICAgICAgICBkZWYgZXhpc3RzKHNlbGYp
OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3N0YXQoKQorCisgICAgICAgIGRlZiBsaW5rKHNl
bGYpOgorICAgICAgICAgICAgc3QgPSBzZWxmLnBhdGgubHN0YXQoKQorICAgICAgICAgICAgcmV0
dXJuIFNfSVNMTksoc3QubW9kZSkKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXRoPU5vbmUs
IGV4cGFuZHVzZXI9RmFsc2UpOgorICAgICAgICAiIiIgSW5pdGlhbGl6ZSBhbmQgcmV0dXJuIGEg
bG9jYWwgUGF0aCBpbnN0YW5jZS4KKworICAgICAgICBQYXRoIGNhbiBiZSByZWxhdGl2ZSB0byB0
aGUgY3VycmVudCBkaXJlY3RvcnkuCisgICAgICAgIElmIHBhdGggaXMgTm9uZSBpdCBkZWZhdWx0
cyB0byB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4KKyAgICAgICAgSWYgZXhwYW5kdXNl
ciBpcyBUcnVlLCB0aWxkZS1leHBhbnNpb24gaXMgcGVyZm9ybWVkLgorICAgICAgICBOb3RlIHRo
YXQgUGF0aCBpbnN0YW5jZXMgYWx3YXlzIGNhcnJ5IGFuIGFic29sdXRlIHBhdGguCisgICAgICAg
IE5vdGUgYWxzbyB0aGF0IHBhc3NpbmcgaW4gYSBsb2NhbCBwYXRoIG9iamVjdCB3aWxsIHNpbXBs
eSByZXR1cm4KKyAgICAgICAgdGhlIGV4YWN0IHNhbWUgcGF0aCBvYmplY3QuIFVzZSBuZXcoKSB0
byBnZXQgYSBuZXcgY29weS4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHBhdGggaXMgTm9uZToK
KyAgICAgICAgICAgIHNlbGYuc3RycGF0aCA9IHB5LmVycm9yLmNoZWNrZWRfY2FsbChvcy5nZXRj
d2QpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcGF0
aCA9IGZzcGF0aChwYXRoKQorICAgICAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJjYW4gb25seSBwYXNzIE5vbmUsIFBhdGggaW5zdGFu
Y2VzICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvciBub24tZW1wdHkgc3Ry
aW5ncyB0byBMb2NhbFBhdGgiKQorICAgICAgICAgICAgaWYgZXhwYW5kdXNlcjoKKyAgICAgICAg
ICAgICAgICBwYXRoID0gb3MucGF0aC5leHBhbmR1c2VyKHBhdGgpCisgICAgICAgICAgICBzZWxm
LnN0cnBhdGggPSBhYnNwYXRoKHBhdGgpCisKKyAgICBkZWYgX19oYXNoX18oc2VsZik6CisgICAg
ICAgIHJldHVybiBoYXNoKHNlbGYuc3RycGF0aCkKKworICAgIGRlZiBfX2VxX18oc2VsZiwgb3Ro
ZXIpOgorICAgICAgICBzMSA9IGZzcGF0aChzZWxmKQorICAgICAgICB0cnk6CisgICAgICAgICAg
ICBzMiA9IGZzcGF0aChvdGhlcikKKyAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAg
ICAgIHJldHVybiBGYWxzZQorICAgICAgICBpZiBpc3dpbjMyOgorICAgICAgICAgICAgczEgPSBz
MS5sb3dlcigpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgczIgPSBzMi5sb3dl
cigpCisgICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVybiBzMSA9PSBzMgorCisgICAgZGVmIF9fbmVfXyhz
ZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBub3QgKHNlbGYgPT0gb3RoZXIpCisKKyAgICBk
ZWYgX19sdF9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIGZzcGF0aChzZWxmKSA8IGZz
cGF0aChvdGhlcikKKworICAgIGRlZiBfX2d0X18oc2VsZiwgb3RoZXIpOgorICAgICAgICByZXR1
cm4gZnNwYXRoKHNlbGYpID4gZnNwYXRoKG90aGVyKQorCisgICAgZGVmIHNhbWVmaWxlKHNlbGYs
IG90aGVyKToKKyAgICAgICAgIiIiIHJldHVybiBUcnVlIGlmICdvdGhlcicgcmVmZXJlbmNlcyB0
aGUgc2FtZSBmaWxlIGFzICdzZWxmJy4KKyAgICAgICAgIiIiCisgICAgICAgIG90aGVyID0gZnNw
YXRoKG90aGVyKQorICAgICAgICBpZiBub3QgaXNhYnMob3RoZXIpOgorICAgICAgICAgICAgb3Ro
ZXIgPSBhYnNwYXRoKG90aGVyKQorICAgICAgICBpZiBzZWxmID09IG90aGVyOgorICAgICAgICAg
ICAgcmV0dXJuIFRydWUKKyAgICAgICAgaWYgaXN3aW4zMjoKKyAgICAgICAgICAgIHJldHVybiBG
YWxzZSAjIHRoZXJlIGlzIG5vIHNhbWVmaWxlCisgICAgICAgIHJldHVybiBweS5lcnJvci5jaGVj
a2VkX2NhbGwoCisgICAgICAgICAgICAgICAgb3MucGF0aC5zYW1lZmlsZSwgc2VsZi5zdHJwYXRo
LCBvdGhlcikKKworICAgIGRlZiByZW1vdmUoc2VsZiwgcmVjPTEsIGlnbm9yZV9lcnJvcnM9RmFs
c2UpOgorICAgICAgICAiIiIgcmVtb3ZlIGEgZmlsZSBvciBkaXJlY3RvcnkgKG9yIGEgZGlyZWN0
b3J5IHRyZWUgaWYgcmVjPTEpLgorICAgICAgICBpZiBpZ25vcmVfZXJyb3JzIGlzIFRydWUsIGVy
cm9ycyB3aGlsZSByZW1vdmluZyBkaXJlY3RvcmllcyB3aWxsCisgICAgICAgIGJlIGlnbm9yZWQu
CisgICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLmNoZWNrKGRpcj0xLCBsaW5rPTApOgorICAg
ICAgICAgICAgaWYgcmVjOgorICAgICAgICAgICAgICAgICMgZm9yY2UgcmVtb3ZlIG9mIHJlYWRv
bmx5IGZpbGVzIG9uIHdpbmRvd3MKKyAgICAgICAgICAgICAgICBpZiBpc3dpbjMyOgorICAgICAg
ICAgICAgICAgICAgICBzZWxmLmNobW9kKDBvNzAwLCByZWM9MSkKKyAgICAgICAgICAgICAgICBp
bXBvcnQgc2h1dGlsCisgICAgICAgICAgICAgICAgcHkuZXJyb3IuY2hlY2tlZF9jYWxsKAorICAg
ICAgICAgICAgICAgICAgICBzaHV0aWwucm10cmVlLCBzZWxmLnN0cnBhdGgsCisgICAgICAgICAg
ICAgICAgICAgIGlnbm9yZV9lcnJvcnM9aWdub3JlX2Vycm9ycykKKyAgICAgICAgICAgIGVsc2U6
CisgICAgICAgICAgICAgICAgcHkuZXJyb3IuY2hlY2tlZF9jYWxsKG9zLnJtZGlyLCBzZWxmLnN0
cnBhdGgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBpc3dpbjMyOgorICAgICAgICAg
ICAgICAgIHNlbGYuY2htb2QoMG83MDApCisgICAgICAgICAgICBweS5lcnJvci5jaGVja2VkX2Nh
bGwob3MucmVtb3ZlLCBzZWxmLnN0cnBhdGgpCisKKyAgICBkZWYgY29tcHV0ZWhhc2goc2VsZiwg
aGFzaHR5cGU9Im1kNSIsIGNodW5rc2l6ZT01MjQyODgpOgorICAgICAgICAiIiIgcmV0dXJuIGhl
eGRpZ2VzdCBvZiBoYXNodmFsdWUgZm9yIHRoaXMgZmlsZS4gIiIiCisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBpbXBvcnQgaGFzaGxpYiBhcyBtb2QKKyAg
ICAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgICAgICAgICBpZiBoYXNodHlw
ZSA9PSAic2hhMSI6CisgICAgICAgICAgICAgICAgICAgIGhhc2h0eXBlID0gInNoYSIKKyAgICAg
ICAgICAgICAgICBtb2QgPSBfX2ltcG9ydF9fKGhhc2h0eXBlKQorICAgICAgICAgICAgaGFzaCA9
IGdldGF0dHIobW9kLCBoYXNodHlwZSkoKQorICAgICAgICBleGNlcHQgKEF0dHJpYnV0ZUVycm9y
LCBJbXBvcnRFcnJvcik6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJEb24ndCBrbm93
IGhvdyB0byBjb21wdXRlICVyIGhhc2giICUoaGFzaHR5cGUsKSkKKyAgICAgICAgZiA9IHNlbGYu
b3BlbigncmInKQorICAgICAgICB0cnk6CisgICAgICAgICAgICB3aGlsZSAxOgorICAgICAgICAg
ICAgICAgIGJ1ZiA9IGYucmVhZChjaHVua3NpemUpCisgICAgICAgICAgICAgICAgaWYgbm90IGJ1
ZjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGhhc2guaGV4ZGlnZXN0KCkKKyAgICAgICAg
ICAgICAgICBoYXNoLnVwZGF0ZShidWYpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBm
LmNsb3NlKCkKKworICAgIGRlZiBuZXcoc2VsZiwgKiprdyk6CisgICAgICAgICIiIiBjcmVhdGUg
YSBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoaXMgcGF0aC4KKyAgICAgICAgICAgIHRoZSBmb2xsb3dp
bmcga2V5d29yZCBhcmd1bWVudHMgbW9kaWZ5IHZhcmlvdXMgcGF0aCBwYXJ0czo6CisKKyAgICAg
ICAgICAgICAgYTovc29tZS9wYXRoL3RvL2EvZmlsZS5leHQKKyAgICAgICAgICAgICAgeHggICAg
ICAgICAgICAgICAgICAgICAgICAgICBkcml2ZQorICAgICAgICAgICAgICB4eHh4eHh4eHh4eHh4
eHh4eCAgICAgICAgICAgIGRpcm5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eHh4eHh4eHggICBiYXNlbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4eHh4
ICAgICAgIHB1cmViYXNlbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHh4eCAgIGV4dAorICAgICAgICAiIiIKKyAgICAgICAgb2JqID0gb2JqZWN0Ll9fbmV3X18oc2Vs
Zi5fX2NsYXNzX18pCisgICAgICAgIGlmIG5vdCBrdzoKKyAgICAgICAgICAgIG9iai5zdHJwYXRo
ID0gc2VsZi5zdHJwYXRoCisgICAgICAgICAgICByZXR1cm4gb2JqCisgICAgICAgIGRyaXZlLCBk
aXJuYW1lLCBiYXNlbmFtZSwgcHVyZWJhc2VuYW1lLGV4dCA9IHNlbGYuX2dldGJ5c3BlYygKKyAg
ICAgICAgICAgICAiZHJpdmUsZGlybmFtZSxiYXNlbmFtZSxwdXJlYmFzZW5hbWUsZXh0IikKKyAg
ICAgICAgaWYgJ2Jhc2VuYW1lJyBpbiBrdzoKKyAgICAgICAgICAgIGlmICdwdXJlYmFzZW5hbWUn
IGluIGt3IG9yICdleHQnIGluIGt3OgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
ImludmFsaWQgc3BlY2lmaWNhdGlvbiAlciIgJSBrdykKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIHBiID0ga3cuc2V0ZGVmYXVsdCgncHVyZWJhc2VuYW1lJywgcHVyZWJhc2VuYW1lKQorICAg
ICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGV4dCA9IGt3WydleHQnXQorICAgICAgICAg
ICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgaWYgZXh0IGFuZCBub3QgZXh0LnN0YXJ0c3dpdGgoJy4nKToK
KyAgICAgICAgICAgICAgICAgICAgZXh0ID0gJy4nICsgZXh0CisgICAgICAgICAgICBrd1snYmFz
ZW5hbWUnXSA9IHBiICsgZXh0CisKKyAgICAgICAgaWYgKCdkaXJuYW1lJyBpbiBrdyBhbmQgbm90
IGt3WydkaXJuYW1lJ10pOgorICAgICAgICAgICAga3dbJ2Rpcm5hbWUnXSA9IGRyaXZlCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICBrdy5zZXRkZWZhdWx0KCdkaXJuYW1lJywgZGlybmFtZSkK
KyAgICAgICAga3cuc2V0ZGVmYXVsdCgnc2VwJywgc2VsZi5zZXApCisgICAgICAgIG9iai5zdHJw
YXRoID0gbm9ybXBhdGgoCisgICAgICAgICAgICAiJShkaXJuYW1lKXMlKHNlcClzJShiYXNlbmFt
ZSlzIiAlIGt3KQorICAgICAgICByZXR1cm4gb2JqCisKKyAgICBkZWYgX2dldGJ5c3BlYyhzZWxm
LCBzcGVjKToKKyAgICAgICAgIiIiIHNlZSBuZXcgZm9yIHdoYXQgJ3NwZWMnIGNhbiBiZS4gIiIi
CisgICAgICAgIHJlcyA9IFtdCisgICAgICAgIHBhcnRzID0gc2VsZi5zdHJwYXRoLnNwbGl0KHNl
bGYuc2VwKQorCisgICAgICAgIGFyZ3MgPSBmaWx0ZXIoTm9uZSwgc3BlYy5zcGxpdCgnLCcpICkK
KyAgICAgICAgYXBwZW5kID0gcmVzLmFwcGVuZAorICAgICAgICBmb3IgbmFtZSBpbiBhcmdzOgor
ICAgICAgICAgICAgaWYgbmFtZSA9PSAnZHJpdmUnOgorICAgICAgICAgICAgICAgIGFwcGVuZChw
YXJ0c1swXSkKKyAgICAgICAgICAgIGVsaWYgbmFtZSA9PSAnZGlybmFtZSc6CisgICAgICAgICAg
ICAgICAgYXBwZW5kKHNlbGYuc2VwLmpvaW4ocGFydHNbOi0xXSkpCisgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgIGJhc2VuYW1lID0gcGFydHNbLTFdCisgICAgICAgICAgICAgICAg
aWYgbmFtZSA9PSAnYmFzZW5hbWUnOgorICAgICAgICAgICAgICAgICAgICBhcHBlbmQoYmFzZW5h
bWUpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgaSA9IGJhc2Vu
YW1lLnJmaW5kKCcuJykKKyAgICAgICAgICAgICAgICAgICAgaWYgaSA9PSAtMToKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHB1cmViYXNlbmFtZSwgZXh0ID0gYmFzZW5hbWUsICcnCisgICAgICAg
ICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBwdXJlYmFzZW5hbWUs
IGV4dCA9IGJhc2VuYW1lWzppXSwgYmFzZW5hbWVbaTpdCisgICAgICAgICAgICAgICAgICAgIGlm
IG5hbWUgPT0gJ3B1cmViYXNlbmFtZSc6CisgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQo
cHVyZWJhc2VuYW1lKQorICAgICAgICAgICAgICAgICAgICBlbGlmIG5hbWUgPT0gJ2V4dCc6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQoZXh0KQorICAgICAgICAgICAgICAgICAgICBl
bHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaW52YWxpZCBw
YXJ0IHNwZWNpZmljYXRpb24gJXIiICUgbmFtZSkKKyAgICAgICAgcmV0dXJuIHJlcworCisgICAg
ZGVmIGRpcnBhdGgoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIiIHJldHVybiB0
aGUgZGlyZWN0b3J5IHBhdGggam9pbmVkIHdpdGggYW55IGdpdmVuIHBhdGggYXJndW1lbnRzLiAg
IiIiCisgICAgICAgIGlmIG5vdCBrd2FyZ3M6CisgICAgICAgICAgICBwYXRoID0gb2JqZWN0Ll9f
bmV3X18oc2VsZi5fX2NsYXNzX18pCisgICAgICAgICAgICBwYXRoLnN0cnBhdGggPSBkaXJuYW1l
KHNlbGYuc3RycGF0aCkKKyAgICAgICAgICAgIGlmIGFyZ3M6CisgICAgICAgICAgICAgICAgcGF0
aCA9IHBhdGguam9pbigqYXJncykKKyAgICAgICAgICAgIHJldHVybiBwYXRoCisgICAgICAgIHJl
dHVybiBzdXBlcihMb2NhbFBhdGgsIHNlbGYpLmRpcnBhdGgoKmFyZ3MsICoqa3dhcmdzKQorCisg
ICAgZGVmIGpvaW4oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIiIHJldHVybiBh
IG5ldyBwYXRoIGJ5IGFwcGVuZGluZyBhbGwgJ2FyZ3MnIGFzIHBhdGgKKyAgICAgICAgY29tcG9u
ZW50cy4gIGlmIGFicz0xIGlzIHVzZWQgcmVzdGFydCBmcm9tIHJvb3QgaWYgYW55CisgICAgICAg
IG9mIHRoZSBhcmdzIGlzIGFuIGFic29sdXRlIHBhdGguCisgICAgICAgICIiIgorICAgICAgICBz
ZXAgPSBzZWxmLnNlcAorICAgICAgICBzdHJhcmdzID0gW2ZzcGF0aChhcmcpIGZvciBhcmcgaW4g
YXJnc10KKyAgICAgICAgc3RycGF0aCA9IHNlbGYuc3RycGF0aAorICAgICAgICBpZiBrd2FyZ3Mu
Z2V0KCdhYnMnKToKKyAgICAgICAgICAgIG5ld2FyZ3MgPSBbXQorICAgICAgICAgICAgZm9yIGFy
ZyBpbiByZXZlcnNlZChzdHJhcmdzKToKKyAgICAgICAgICAgICAgICBpZiBpc2FicyhhcmcpOgor
ICAgICAgICAgICAgICAgICAgICBzdHJwYXRoID0gYXJnCisgICAgICAgICAgICAgICAgICAgIHN0
cmFyZ3MgPSBuZXdhcmdzCisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAg
ICAgbmV3YXJncy5pbnNlcnQoMCwgYXJnKQorICAgICAgICAjIHNwZWNpYWwgY2FzZSBmb3Igd2hl
biB3ZSBoYXZlIGUuZy4gc3RycGF0aCA9PSAiLyIKKyAgICAgICAgYWN0dWFsX3NlcCA9ICIiIGlm
IHN0cnBhdGguZW5kc3dpdGgoc2VwKSBlbHNlIHNlcAorICAgICAgICBmb3IgYXJnIGluIHN0cmFy
Z3M6CisgICAgICAgICAgICBhcmcgPSBhcmcuc3RyaXAoc2VwKQorICAgICAgICAgICAgaWYgaXN3
aW4zMjoKKyAgICAgICAgICAgICAgICAjIGFsbG93IHVuaXggc3R5bGUgcGF0aHMgZXZlbiBvbiB3
aW5kb3dzLgorICAgICAgICAgICAgICAgIGFyZyA9IGFyZy5zdHJpcCgnLycpCisgICAgICAgICAg
ICAgICAgYXJnID0gYXJnLnJlcGxhY2UoJy8nLCBzZXApCisgICAgICAgICAgICBzdHJwYXRoID0g
c3RycGF0aCArIGFjdHVhbF9zZXAgKyBhcmcKKyAgICAgICAgICAgIGFjdHVhbF9zZXAgPSBzZXAK
KyAgICAgICAgb2JqID0gb2JqZWN0Ll9fbmV3X18oc2VsZi5fX2NsYXNzX18pCisgICAgICAgIG9i
ai5zdHJwYXRoID0gbm9ybXBhdGgoc3RycGF0aCkKKyAgICAgICAgcmV0dXJuIG9iagorCisgICAg
ZGVmIG9wZW4oc2VsZiwgbW9kZT0ncicsIGVuc3VyZT1GYWxzZSwgZW5jb2Rpbmc9Tm9uZSk6Cisg
ICAgICAgICIiIiByZXR1cm4gYW4gb3BlbmVkIGZpbGUgd2l0aCB0aGUgZ2l2ZW4gbW9kZS4KKwor
ICAgICAgICBJZiBlbnN1cmUgaXMgVHJ1ZSwgY3JlYXRlIHBhcmVudCBkaXJlY3RvcmllcyBpZiBu
ZWVkZWQuCisgICAgICAgICIiIgorICAgICAgICBpZiBlbnN1cmU6CisgICAgICAgICAgICBzZWxm
LmRpcnBhdGgoKS5lbnN1cmUoZGlyPTEpCisgICAgICAgIGlmIGVuY29kaW5nOgorICAgICAgICAg
ICAgcmV0dXJuIHB5LmVycm9yLmNoZWNrZWRfY2FsbChpby5vcGVuLCBzZWxmLnN0cnBhdGgsIG1v
ZGUsIGVuY29kaW5nPWVuY29kaW5nKQorICAgICAgICByZXR1cm4gcHkuZXJyb3IuY2hlY2tlZF9j
YWxsKG9wZW4sIHNlbGYuc3RycGF0aCwgbW9kZSkKKworICAgIGRlZiBfZmFzdGpvaW4oc2VsZiwg
bmFtZSk6CisgICAgICAgIGNoaWxkID0gb2JqZWN0Ll9fbmV3X18oc2VsZi5fX2NsYXNzX18pCisg
ICAgICAgIGNoaWxkLnN0cnBhdGggPSBzZWxmLnN0cnBhdGggKyBzZWxmLnNlcCArIG5hbWUKKyAg
ICAgICAgcmV0dXJuIGNoaWxkCisKKyAgICBkZWYgaXNsaW5rKHNlbGYpOgorICAgICAgICByZXR1
cm4gaXNsaW5rKHNlbGYuc3RycGF0aCkKKworICAgIGRlZiBjaGVjayhzZWxmLCAqKmt3KToKKyAg
ICAgICAgaWYgbm90IGt3OgorICAgICAgICAgICAgcmV0dXJuIGV4aXN0cyhzZWxmLnN0cnBhdGgp
CisgICAgICAgIGlmIGxlbihrdykgPT0gMToKKyAgICAgICAgICAgIGlmICJkaXIiIGluIGt3Ogor
ICAgICAgICAgICAgICAgIHJldHVybiBub3Qga3dbImRpciJdIF4gaXNkaXIoc2VsZi5zdHJwYXRo
KQorICAgICAgICAgICAgaWYgImZpbGUiIGluIGt3OgorICAgICAgICAgICAgICAgIHJldHVybiBu
b3Qga3dbImZpbGUiXSBeIGlzZmlsZShzZWxmLnN0cnBhdGgpCisgICAgICAgIHJldHVybiBzdXBl
cihMb2NhbFBhdGgsIHNlbGYpLmNoZWNrKCoqa3cpCisKKyAgICBfcGF0dGVybmNoYXJzID0gc2V0
KCIqP1siICsgb3MucGF0aC5zZXApCisgICAgZGVmIGxpc3RkaXIoc2VsZiwgZmlsPU5vbmUsIHNv
cnQ9Tm9uZSk6CisgICAgICAgICIiIiBsaXN0IGRpcmVjdG9yeSBjb250ZW50cywgcG9zc2libHkg
ZmlsdGVyIGJ5IHRoZSBnaXZlbiBmaWwgZnVuYworICAgICAgICAgICAgYW5kIHBvc3NpYmx5IHNv
cnRlZC4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIGZpbCBpcyBOb25lIGFuZCBzb3J0IGlzIE5v
bmU6CisgICAgICAgICAgICBuYW1lcyA9IHB5LmVycm9yLmNoZWNrZWRfY2FsbChvcy5saXN0ZGly
LCBzZWxmLnN0cnBhdGgpCisgICAgICAgICAgICByZXR1cm4gbWFwX2FzX2xpc3Qoc2VsZi5fZmFz
dGpvaW4sIG5hbWVzKQorICAgICAgICBpZiBpc2luc3RhbmNlKGZpbCwgcHkuYnVpbHRpbi5fYmFz
ZXN0cmluZyk6CisgICAgICAgICAgICBpZiBub3Qgc2VsZi5fcGF0dGVybmNoYXJzLmludGVyc2Vj
dGlvbihmaWwpOgorICAgICAgICAgICAgICAgIGNoaWxkID0gc2VsZi5fZmFzdGpvaW4oZmlsKQor
ICAgICAgICAgICAgICAgIGlmIGV4aXN0cyhjaGlsZC5zdHJwYXRoKToKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIFtjaGlsZF0KKyAgICAgICAgICAgICAgICByZXR1cm4gW10KKyAgICAgICAg
ICAgIGZpbCA9IGNvbW1vbi5GTk1hdGNoZXIoZmlsKQorICAgICAgICBuYW1lcyA9IHB5LmVycm9y
LmNoZWNrZWRfY2FsbChvcy5saXN0ZGlyLCBzZWxmLnN0cnBhdGgpCisgICAgICAgIHJlcyA9IFtd
CisgICAgICAgIGZvciBuYW1lIGluIG5hbWVzOgorICAgICAgICAgICAgY2hpbGQgPSBzZWxmLl9m
YXN0am9pbihuYW1lKQorICAgICAgICAgICAgaWYgZmlsIGlzIE5vbmUgb3IgZmlsKGNoaWxkKToK
KyAgICAgICAgICAgICAgICByZXMuYXBwZW5kKGNoaWxkKQorICAgICAgICBzZWxmLl9zb3J0bGlz
dChyZXMsIHNvcnQpCisgICAgICAgIHJldHVybiByZXMKKworICAgIGRlZiBzaXplKHNlbGYpOgor
ICAgICAgICAiIiIgcmV0dXJuIHNpemUgb2YgdGhlIHVuZGVybHlpbmcgZmlsZSBvYmplY3QgIiIi
CisgICAgICAgIHJldHVybiBzZWxmLnN0YXQoKS5zaXplCisKKyAgICBkZWYgbXRpbWUoc2VsZik6
CisgICAgICAgICIiIiByZXR1cm4gbGFzdCBtb2RpZmljYXRpb24gdGltZSBvZiB0aGUgcGF0aC4g
IiIiCisgICAgICAgIHJldHVybiBzZWxmLnN0YXQoKS5tdGltZQorCisgICAgZGVmIGNvcHkoc2Vs
ZiwgdGFyZ2V0LCBtb2RlPUZhbHNlLCBzdGF0PUZhbHNlKToKKyAgICAgICAgIiIiIGNvcHkgcGF0
aCB0byB0YXJnZXQuCisKKyAgICAgICAgICAgIElmIG1vZGUgaXMgVHJ1ZSwgd2lsbCBjb3B5IGNv
cHkgcGVybWlzc2lvbiBmcm9tIHBhdGggdG8gdGFyZ2V0LgorICAgICAgICAgICAgSWYgc3RhdCBp
cyBUcnVlLCBjb3B5IHBlcm1pc3Npb24sIGxhc3QgbW9kaWZpY2F0aW9uCisgICAgICAgICAgICB0
aW1lLCBsYXN0IGFjY2VzcyB0aW1lLCBhbmQgZmxhZ3MgZnJvbSBwYXRoIHRvIHRhcmdldC4KKyAg
ICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYuY2hlY2soZmlsZT0xKToKKyAgICAgICAgICAgIGlm
IHRhcmdldC5jaGVjayhkaXI9MSk6CisgICAgICAgICAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0Lmpv
aW4oc2VsZi5iYXNlbmFtZSkKKyAgICAgICAgICAgIGFzc2VydCBzZWxmIT10YXJnZXQKKyAgICAg
ICAgICAgIGNvcHljaHVua2VkKHNlbGYsIHRhcmdldCkKKyAgICAgICAgICAgIGlmIG1vZGU6Cisg
ICAgICAgICAgICAgICAgY29weW1vZGUoc2VsZi5zdHJwYXRoLCB0YXJnZXQuc3RycGF0aCkKKyAg
ICAgICAgICAgIGlmIHN0YXQ6CisgICAgICAgICAgICAgICAgY29weXN0YXQoc2VsZiwgdGFyZ2V0
KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZGVmIHJlYyhwKToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gcC5jaGVjayhsaW5rPTApCisgICAgICAgICAgICBmb3IgeCBpbiBzZWxmLnZpc2l0
KHJlYz1yZWMpOgorICAgICAgICAgICAgICAgIHJlbHBhdGggPSB4LnJlbHRvKHNlbGYpCisgICAg
ICAgICAgICAgICAgbmV3eCA9IHRhcmdldC5qb2luKHJlbHBhdGgpCisgICAgICAgICAgICAgICAg
bmV3eC5kaXJwYXRoKCkuZW5zdXJlKGRpcj0xKQorICAgICAgICAgICAgICAgIGlmIHguY2hlY2so
bGluaz0xKToKKyAgICAgICAgICAgICAgICAgICAgbmV3eC5ta3N5bWxpbmt0byh4LnJlYWRsaW5r
KCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgZWxpZiB4
LmNoZWNrKGZpbGU9MSk6CisgICAgICAgICAgICAgICAgICAgIGNvcHljaHVua2VkKHgsIG5ld3gp
CisgICAgICAgICAgICAgICAgZWxpZiB4LmNoZWNrKGRpcj0xKToKKyAgICAgICAgICAgICAgICAg
ICAgbmV3eC5lbnN1cmUoZGlyPTEpCisgICAgICAgICAgICAgICAgaWYgbW9kZToKKyAgICAgICAg
ICAgICAgICAgICAgY29weW1vZGUoeC5zdHJwYXRoLCBuZXd4LnN0cnBhdGgpCisgICAgICAgICAg
ICAgICAgaWYgc3RhdDoKKyAgICAgICAgICAgICAgICAgICAgY29weXN0YXQoeCwgbmV3eCkKKwor
ICAgIGRlZiByZW5hbWUoc2VsZiwgdGFyZ2V0KToKKyAgICAgICAgIiIiIHJlbmFtZSB0aGlzIHBh
dGggdG8gdGFyZ2V0LiAiIiIKKyAgICAgICAgdGFyZ2V0ID0gZnNwYXRoKHRhcmdldCkKKyAgICAg
ICAgcmV0dXJuIHB5LmVycm9yLmNoZWNrZWRfY2FsbChvcy5yZW5hbWUsIHNlbGYuc3RycGF0aCwg
dGFyZ2V0KQorCisgICAgZGVmIGR1bXAoc2VsZiwgb2JqLCBiaW49MSk6CisgICAgICAgICIiIiBw
aWNrbGUgb2JqZWN0IGludG8gcGF0aCBsb2NhdGlvbiIiIgorICAgICAgICBmID0gc2VsZi5vcGVu
KCd3YicpCisgICAgICAgIGltcG9ydCBwaWNrbGUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
cHkuZXJyb3IuY2hlY2tlZF9jYWxsKHBpY2tsZS5kdW1wLCBvYmosIGYsIGJpbikKKyAgICAgICAg
ZmluYWxseToKKyAgICAgICAgICAgIGYuY2xvc2UoKQorCisgICAgZGVmIG1rZGlyKHNlbGYsICph
cmdzKToKKyAgICAgICAgIiIiIGNyZWF0ZSAmIHJldHVybiB0aGUgZGlyZWN0b3J5IGpvaW5lZCB3
aXRoIGFyZ3MuICIiIgorICAgICAgICBwID0gc2VsZi5qb2luKCphcmdzKQorICAgICAgICBweS5l
cnJvci5jaGVja2VkX2NhbGwob3MubWtkaXIsIGZzcGF0aChwKSkKKyAgICAgICAgcmV0dXJuIHAK
KworICAgIGRlZiB3cml0ZV9iaW5hcnkoc2VsZiwgZGF0YSwgZW5zdXJlPUZhbHNlKToKKyAgICAg
ICAgIiIiIHdyaXRlIGJpbmFyeSBkYXRhIGludG8gcGF0aC4gICBJZiBlbnN1cmUgaXMgVHJ1ZSBj
cmVhdGUKKyAgICAgICAgbWlzc2luZyBwYXJlbnQgZGlyZWN0b3JpZXMuCisgICAgICAgICIiIgor
ICAgICAgICBpZiBlbnN1cmU6CisgICAgICAgICAgICBzZWxmLmRpcnBhdGgoKS5lbnN1cmUoZGly
PTEpCisgICAgICAgIHdpdGggc2VsZi5vcGVuKCd3YicpIGFzIGY6CisgICAgICAgICAgICBmLndy
aXRlKGRhdGEpCisKKyAgICBkZWYgd3JpdGVfdGV4dChzZWxmLCBkYXRhLCBlbmNvZGluZywgZW5z
dXJlPUZhbHNlKToKKyAgICAgICAgIiIiIHdyaXRlIHRleHQgZGF0YSBpbnRvIHBhdGggdXNpbmcg
dGhlIHNwZWNpZmllZCBlbmNvZGluZy4KKyAgICAgICAgSWYgZW5zdXJlIGlzIFRydWUgY3JlYXRl
IG1pc3NpbmcgcGFyZW50IGRpcmVjdG9yaWVzLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgZW5z
dXJlOgorICAgICAgICAgICAgc2VsZi5kaXJwYXRoKCkuZW5zdXJlKGRpcj0xKQorICAgICAgICB3
aXRoIHNlbGYub3BlbigndycsIGVuY29kaW5nPWVuY29kaW5nKSBhcyBmOgorICAgICAgICAgICAg
Zi53cml0ZShkYXRhKQorCisgICAgZGVmIHdyaXRlKHNlbGYsIGRhdGEsIG1vZGU9J3cnLCBlbnN1
cmU9RmFsc2UpOgorICAgICAgICAiIiIgd3JpdGUgZGF0YSBpbnRvIHBhdGguICAgSWYgZW5zdXJl
IGlzIFRydWUgY3JlYXRlCisgICAgICAgIG1pc3NpbmcgcGFyZW50IGRpcmVjdG9yaWVzLgorICAg
ICAgICAiIiIKKyAgICAgICAgaWYgZW5zdXJlOgorICAgICAgICAgICAgc2VsZi5kaXJwYXRoKCku
ZW5zdXJlKGRpcj0xKQorICAgICAgICBpZiAnYicgaW4gbW9kZToKKyAgICAgICAgICAgIGlmIG5v
dCBweS5idWlsdGluLl9pc2J5dGVzKGRhdGEpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoImNhbiBvbmx5IHByb2Nlc3MgYnl0ZXMiKQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgaWYgbm90IHB5LmJ1aWx0aW4uX2lzdGV4dChkYXRhKToKKyAgICAgICAgICAgICAgICBpZiBu
b3QgcHkuYnVpbHRpbi5faXNieXRlcyhkYXRhKToKKyAgICAgICAgICAgICAgICAgICAgZGF0YSA9
IHN0cihkYXRhKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGRh
dGEgPSBweS5idWlsdGluLl90b3RleHQoZGF0YSwgc3lzLmdldGRlZmF1bHRlbmNvZGluZygpKQor
ICAgICAgICBmID0gc2VsZi5vcGVuKG1vZGUpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGYu
d3JpdGUoZGF0YSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGYuY2xvc2UoKQorCisg
ICAgZGVmIF9lbnN1cmVkaXJzKHNlbGYpOgorICAgICAgICBwYXJlbnQgPSBzZWxmLmRpcnBhdGgo
KQorICAgICAgICBpZiBwYXJlbnQgPT0gc2VsZjoKKyAgICAgICAgICAgIHJldHVybiBzZWxmCisg
ICAgICAgIGlmIHBhcmVudC5jaGVjayhkaXI9MCk6CisgICAgICAgICAgICBwYXJlbnQuX2Vuc3Vy
ZWRpcnMoKQorICAgICAgICBpZiBzZWxmLmNoZWNrKGRpcj0wKToKKyAgICAgICAgICAgIHRyeToK
KyAgICAgICAgICAgICAgICBzZWxmLm1rZGlyKCkKKyAgICAgICAgICAgIGV4Y2VwdCBweS5lcnJv
ci5FRVhJU1Q6CisgICAgICAgICAgICAgICAgIyByYWNlIGNvbmRpdGlvbjogZmlsZS9kaXIgY3Jl
YXRlZCBieSBhbm90aGVyIHRocmVhZC9wcm9jZXNzLgorICAgICAgICAgICAgICAgICMgY29tcGxh
aW4gaWYgaXQgaXMgbm90IGEgZGlyCisgICAgICAgICAgICAgICAgaWYgc2VsZi5jaGVjayhkaXI9
MCk6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgIHJldHVybiBzZWxmCisKKyAg
ICBkZWYgZW5zdXJlKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICIiIiBlbnN1cmUg
dGhhdCBhbiBhcmdzLWpvaW5lZCBwYXRoIGV4aXN0cyAoYnkgZGVmYXVsdCBhcworICAgICAgICAg
ICAgYSBmaWxlKS4gaWYgeW91IHNwZWNpZnkgYSBrZXl3b3JkIGFyZ3VtZW50ICdkaXI9VHJ1ZScK
KyAgICAgICAgICAgIHRoZW4gdGhlIHBhdGggaXMgZm9yY2VkIHRvIGJlIGEgZGlyZWN0b3J5IHBh
dGguCisgICAgICAgICIiIgorICAgICAgICBwID0gc2VsZi5qb2luKCphcmdzKQorICAgICAgICBp
ZiBrd2FyZ3MuZ2V0KCdkaXInLCAwKToKKyAgICAgICAgICAgIHJldHVybiBwLl9lbnN1cmVkaXJz
KCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHAuZGlycGF0aCgpLl9lbnN1cmVkaXJzKCkK
KyAgICAgICAgICAgIGlmIG5vdCBwLmNoZWNrKGZpbGU9MSk6CisgICAgICAgICAgICAgICAgcC5v
cGVuKCd3JykuY2xvc2UoKQorICAgICAgICAgICAgcmV0dXJuIHAKKworICAgIGRlZiBzdGF0KHNl
bGYsIHJhaXNpbmc9VHJ1ZSk6CisgICAgICAgICIiIiBSZXR1cm4gYW4gb3Muc3RhdCgpIHR1cGxl
LiAiIiIKKyAgICAgICAgaWYgcmFpc2luZyA9PSBUcnVlOgorICAgICAgICAgICAgcmV0dXJuIFN0
YXQoc2VsZiwgcHkuZXJyb3IuY2hlY2tlZF9jYWxsKG9zLnN0YXQsIHNlbGYuc3RycGF0aCkpCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBTdGF0KHNlbGYsIG9zLnN0YXQoc2VsZi5z
dHJwYXRoKSkKKyAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgorICAgICAgICAgICAg
cmFpc2UKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHJldHVybiBOb25l
CisKKyAgICBkZWYgbHN0YXQoc2VsZik6CisgICAgICAgICIiIiBSZXR1cm4gYW4gb3MubHN0YXQo
KSB0dXBsZS4gIiIiCisgICAgICAgIHJldHVybiBTdGF0KHNlbGYsIHB5LmVycm9yLmNoZWNrZWRf
Y2FsbChvcy5sc3RhdCwgc2VsZi5zdHJwYXRoKSkKKworICAgIGRlZiBzZXRtdGltZShzZWxmLCBt
dGltZT1Ob25lKToKKyAgICAgICAgIiIiIHNldCBtb2RpZmljYXRpb24gdGltZSBmb3IgdGhlIGdp
dmVuIHBhdGguICBpZiAnbXRpbWUnIGlzIE5vbmUKKyAgICAgICAgKHRoZSBkZWZhdWx0KSB0aGVu
IHRoZSBmaWxlJ3MgbXRpbWUgaXMgc2V0IHRvIGN1cnJlbnQgdGltZS4KKworICAgICAgICBOb3Rl
IHRoYXQgdGhlIHJlc29sdXRpb24gZm9yICdtdGltZScgaXMgcGxhdGZvcm0gZGVwZW5kZW50Lgor
ICAgICAgICAiIiIKKyAgICAgICAgaWYgbXRpbWUgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVy
biBweS5lcnJvci5jaGVja2VkX2NhbGwob3MudXRpbWUsIHNlbGYuc3RycGF0aCwgbXRpbWUpCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBweS5lcnJvci5jaGVja2VkX2NhbGwob3Mu
dXRpbWUsIHNlbGYuc3RycGF0aCwgKC0xLCBtdGltZSkpCisgICAgICAgIGV4Y2VwdCBweS5lcnJv
ci5FSU5WQUw6CisgICAgICAgICAgICByZXR1cm4gcHkuZXJyb3IuY2hlY2tlZF9jYWxsKG9zLnV0
aW1lLCBzZWxmLnN0cnBhdGgsIChzZWxmLmF0aW1lKCksIG10aW1lKSkKKworICAgIGRlZiBjaGRp
cihzZWxmKToKKyAgICAgICAgIiIiIGNoYW5nZSBkaXJlY3RvcnkgdG8gc2VsZiBhbmQgcmV0dXJu
IG9sZCBjdXJyZW50IGRpcmVjdG9yeSAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgb2xk
ID0gc2VsZi5fX2NsYXNzX18oKQorICAgICAgICBleGNlcHQgcHkuZXJyb3IuRU5PRU5UOgorICAg
ICAgICAgICAgb2xkID0gTm9uZQorICAgICAgICBweS5lcnJvci5jaGVja2VkX2NhbGwob3MuY2hk
aXIsIHNlbGYuc3RycGF0aCkKKyAgICAgICAgcmV0dXJuIG9sZAorCisKKyAgICBAY29udGV4dG1h
bmFnZXIKKyAgICBkZWYgYXNfY3dkKHNlbGYpOgorICAgICAgICAiIiIgcmV0dXJuIGNvbnRleHQg
bWFuYWdlciB3aGljaCBjaGFuZ2VzIHRvIGN1cnJlbnQgZGlyIGR1cmluZyB0aGUKKyAgICAgICAg
bWFuYWdlZCAid2l0aCIgY29udGV4dC4gT24gX19lbnRlcl9fIGl0IHJldHVybnMgdGhlIG9sZCBk
aXIuCisgICAgICAgICIiIgorICAgICAgICBvbGQgPSBzZWxmLmNoZGlyKCkKKyAgICAgICAgdHJ5
OgorICAgICAgICAgICAgeWllbGQgb2xkCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBv
bGQuY2hkaXIoKQorCisgICAgZGVmIHJlYWxwYXRoKHNlbGYpOgorICAgICAgICAiIiIgcmV0dXJu
IGEgbmV3IHBhdGggd2hpY2ggY29udGFpbnMgbm8gc3ltYm9saWMgbGlua3MuIiIiCisgICAgICAg
IHJldHVybiBzZWxmLl9fY2xhc3NfXyhvcy5wYXRoLnJlYWxwYXRoKHNlbGYuc3RycGF0aCkpCisK
KyAgICBkZWYgYXRpbWUoc2VsZik6CisgICAgICAgICIiIiByZXR1cm4gbGFzdCBhY2Nlc3MgdGlt
ZSBvZiB0aGUgcGF0aC4gIiIiCisgICAgICAgIHJldHVybiBzZWxmLnN0YXQoKS5hdGltZQorCisg
ICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gJ2xvY2FsKCVyKScgJSBzZWxm
LnN0cnBhdGgKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICAiIiIgcmV0dXJuIHN0
cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgUGF0aC4gIiIiCisgICAgICAgIHJldHVybiBzZWxm
LnN0cnBhdGgKKworICAgIGRlZiBjaG1vZChzZWxmLCBtb2RlLCByZWM9MCk6CisgICAgICAgICIi
IiBjaGFuZ2UgcGVybWlzc2lvbnMgdG8gdGhlIGdpdmVuIG1vZGUuIElmIG1vZGUgaXMgYW4KKyAg
ICAgICAgICAgIGludGVnZXIgaXQgZGlyZWN0bHkgZW5jb2RlcyB0aGUgb3Mtc3BlY2lmaWMgbW9k
ZXMuCisgICAgICAgICAgICBpZiByZWMgaXMgVHJ1ZSBwZXJmb3JtIHJlY3Vyc2l2ZWx5LgorICAg
ICAgICAiIiIKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UobW9kZSwgaW50KToKKyAgICAgICAg
ICAgIHJhaXNlIFR5cGVFcnJvcigibW9kZSAlciBtdXN0IGJlIGFuIGludGVnZXIiICUgKG1vZGUs
KSkKKyAgICAgICAgaWYgcmVjOgorICAgICAgICAgICAgZm9yIHggaW4gc2VsZi52aXNpdChyZWM9
cmVjKToKKyAgICAgICAgICAgICAgICBweS5lcnJvci5jaGVja2VkX2NhbGwob3MuY2htb2QsIHN0
cih4KSwgbW9kZSkKKyAgICAgICAgcHkuZXJyb3IuY2hlY2tlZF9jYWxsKG9zLmNobW9kLCBzZWxm
LnN0cnBhdGgsIG1vZGUpCisKKyAgICBkZWYgcHlwa2dwYXRoKHNlbGYpOgorICAgICAgICAiIiIg
cmV0dXJuIHRoZSBQeXRob24gcGFja2FnZSBwYXRoIGJ5IGxvb2tpbmcgZm9yIHRoZSBsYXN0Cisg
ICAgICAgIGRpcmVjdG9yeSB1cHdhcmRzIHdoaWNoIHN0aWxsIGNvbnRhaW5zIGFuIF9faW5pdF9f
LnB5LgorICAgICAgICBSZXR1cm4gTm9uZSBpZiBhIHBrZ3BhdGggY2FuIG5vdCBiZSBkZXRlcm1p
bmVkLgorICAgICAgICAiIiIKKyAgICAgICAgcGtncGF0aCA9IE5vbmUKKyAgICAgICAgZm9yIHBh
cmVudCBpbiBzZWxmLnBhcnRzKHJldmVyc2U9VHJ1ZSk6CisgICAgICAgICAgICBpZiBwYXJlbnQu
aXNkaXIoKToKKyAgICAgICAgICAgICAgICBpZiBub3QgcGFyZW50LmpvaW4oJ19faW5pdF9fLnB5
JykuZXhpc3RzKCk6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAg
aWYgbm90IGlzaW1wb3J0YWJsZShwYXJlbnQuYmFzZW5hbWUpOgorICAgICAgICAgICAgICAgICAg
ICBicmVhaworICAgICAgICAgICAgICAgIHBrZ3BhdGggPSBwYXJlbnQKKyAgICAgICAgcmV0dXJu
IHBrZ3BhdGgKKworICAgIGRlZiBfZW5zdXJlc3lzcGF0aChzZWxmLCBlbnN1cmVtb2RlLCBwYXRo
KToKKyAgICAgICAgaWYgZW5zdXJlbW9kZToKKyAgICAgICAgICAgIHMgPSBzdHIocGF0aCkKKyAg
ICAgICAgICAgIGlmIGVuc3VyZW1vZGUgPT0gImFwcGVuZCI6CisgICAgICAgICAgICAgICAgaWYg
cyBub3QgaW4gc3lzLnBhdGg6CisgICAgICAgICAgICAgICAgICAgIHN5cy5wYXRoLmFwcGVuZChz
KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBpZiBzICE9IHN5cy5wYXRoWzBd
OgorICAgICAgICAgICAgICAgICAgICBzeXMucGF0aC5pbnNlcnQoMCwgcykKKworICAgIGRlZiBw
eWltcG9ydChzZWxmLCBtb2RuYW1lPU5vbmUsIGVuc3VyZXN5c3BhdGg9VHJ1ZSk6CisgICAgICAg
ICIiIiByZXR1cm4gcGF0aCBhcyBhbiBpbXBvcnRlZCBweXRob24gbW9kdWxlLgorCisgICAgICAg
IElmIG1vZG5hbWUgaXMgTm9uZSwgbG9vayBmb3IgdGhlIGNvbnRhaW5pbmcgcGFja2FnZQorICAg
ICAgICBhbmQgY29uc3RydWN0IGFuIGFjY29yZGluZyBtb2R1bGUgbmFtZS4KKyAgICAgICAgVGhl
IG1vZHVsZSB3aWxsIGJlIHB1dC9sb29rZWQgdXAgaW4gc3lzLm1vZHVsZXMuCisgICAgICAgIGlm
IGVuc3VyZXN5c3BhdGggaXMgVHJ1ZSB0aGVuIHRoZSByb290IGRpciBmb3IgaW1wb3J0aW5nCisg
ICAgICAgIHRoZSBmaWxlICh0YWtpbmcgX19pbml0X18ucHkgZmlsZXMgaW50byBhY2NvdW50KSB3
aWxsCisgICAgICAgIGJlIHByZXBlbmRlZCB0byBzeXMucGF0aCBpZiBpdCBpc24ndCB0aGVyZSBh
bHJlYWR5LgorICAgICAgICBJZiBlbnN1cmVzeXNwYXRoPT0iYXBwZW5kIiB0aGUgcm9vdCBkaXIg
d2lsbCBiZSBhcHBlbmRlZAorICAgICAgICBpZiBpdCBpc24ndCBhbHJlYWR5IGNvbnRhaW5lZCBp
biBzeXMucGF0aC4KKyAgICAgICAgaWYgZW5zdXJlc3lzcGF0aCBpcyBGYWxzZSBubyBtb2RpZmlj
YXRpb24gb2Ygc3lzcGF0aCBoYXBwZW5zLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IHNl
bGYuY2hlY2soKToKKyAgICAgICAgICAgIHJhaXNlIHB5LmVycm9yLkVOT0VOVChzZWxmKQorCisg
ICAgICAgIHBrZ3BhdGggPSBOb25lCisgICAgICAgIGlmIG1vZG5hbWUgaXMgTm9uZToKKyAgICAg
ICAgICAgIHBrZ3BhdGggPSBzZWxmLnB5cGtncGF0aCgpCisgICAgICAgICAgICBpZiBwa2dwYXRo
IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHBrZ3Jvb3QgPSBwa2dwYXRoLmRpcnBhdGgo
KQorICAgICAgICAgICAgICAgIG5hbWVzID0gc2VsZi5uZXcoZXh0PSIiKS5yZWx0byhwa2dyb290
KS5zcGxpdChzZWxmLnNlcCkKKyAgICAgICAgICAgICAgICBpZiBuYW1lc1stMV0gPT0gIl9faW5p
dF9fIjoKKyAgICAgICAgICAgICAgICAgICAgbmFtZXMucG9wKCkKKyAgICAgICAgICAgICAgICBt
b2RuYW1lID0gIi4iLmpvaW4obmFtZXMpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg
ICAgIHBrZ3Jvb3QgPSBzZWxmLmRpcnBhdGgoKQorICAgICAgICAgICAgICAgIG1vZG5hbWUgPSBz
ZWxmLnB1cmViYXNlbmFtZQorCisgICAgICAgICAgICBzZWxmLl9lbnN1cmVzeXNwYXRoKGVuc3Vy
ZXN5c3BhdGgsIHBrZ3Jvb3QpCisgICAgICAgICAgICBfX2ltcG9ydF9fKG1vZG5hbWUpCisgICAg
ICAgICAgICBtb2QgPSBzeXMubW9kdWxlc1ttb2RuYW1lXQorICAgICAgICAgICAgaWYgc2VsZi5i
YXNlbmFtZSA9PSAiX19pbml0X18ucHkiOgorICAgICAgICAgICAgICAgIHJldHVybiBtb2QgIyB3
ZSBkb24ndCBjaGVjayBhbnl0aGluZyBhcyB3ZSBtaWdodAorICAgICAgICAgICAgICAgICAgICAg
ICAjIHdlIGluIGEgbmFtZXNwYWNlIHBhY2thZ2UgLi4uIHRvbyBpY2t5IHRvIGNoZWNrCisgICAg
ICAgICAgICBtb2RmaWxlID0gbW9kLl9fZmlsZV9fCisgICAgICAgICAgICBpZiBtb2RmaWxlWy00
Ol0gaW4gKCcucHljJywgJy5weW8nKToKKyAgICAgICAgICAgICAgICBtb2RmaWxlID0gbW9kZmls
ZVs6LTFdCisgICAgICAgICAgICBlbGlmIG1vZGZpbGUuZW5kc3dpdGgoJyRweS5jbGFzcycpOgor
ICAgICAgICAgICAgICAgIG1vZGZpbGUgPSBtb2RmaWxlWzotOV0gKyAnLnB5JworICAgICAgICAg
ICAgaWYgbW9kZmlsZS5lbmRzd2l0aChvcy5wYXRoLnNlcCArICJfX2luaXRfXy5weSIpOgorICAg
ICAgICAgICAgICAgIGlmIHNlbGYuYmFzZW5hbWUgIT0gIl9faW5pdF9fLnB5IjoKKyAgICAgICAg
ICAgICAgICAgICAgbW9kZmlsZSA9IG1vZGZpbGVbOi0xMl0KKyAgICAgICAgICAgIHRyeToKKyAg
ICAgICAgICAgICAgICBpc3NhbWUgPSBzZWxmLnNhbWVmaWxlKG1vZGZpbGUpCisgICAgICAgICAg
ICBleGNlcHQgcHkuZXJyb3IuRU5PRU5UOgorICAgICAgICAgICAgICAgIGlzc2FtZSA9IEZhbHNl
CisgICAgICAgICAgICBpZiBub3QgaXNzYW1lOgorICAgICAgICAgICAgICAgIHJhaXNlIHNlbGYu
SW1wb3J0TWlzbWF0Y2hFcnJvcihtb2RuYW1lLCBtb2RmaWxlLCBzZWxmKQorICAgICAgICAgICAg
cmV0dXJuIG1vZAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAg
ICAgIHJldHVybiBzeXMubW9kdWxlc1ttb2RuYW1lXQorICAgICAgICAgICAgZXhjZXB0IEtleUVy
cm9yOgorICAgICAgICAgICAgICAgICMgd2UgaGF2ZSBhIGN1c3RvbSBtb2RuYW1lLCBkbyBhIHBz
ZXVkby1pbXBvcnQKKyAgICAgICAgICAgICAgICBpbXBvcnQgdHlwZXMKKyAgICAgICAgICAgICAg
ICBtb2QgPSB0eXBlcy5Nb2R1bGVUeXBlKG1vZG5hbWUpCisgICAgICAgICAgICAgICAgbW9kLl9f
ZmlsZV9fID0gc3RyKHNlbGYpCisgICAgICAgICAgICAgICAgc3lzLm1vZHVsZXNbbW9kbmFtZV0g
PSBtb2QKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHB5LmJ1aWx0
aW4uZXhlY2ZpbGUoc3RyKHNlbGYpLCBtb2QuX19kaWN0X18pCisgICAgICAgICAgICAgICAgZXhj
ZXB0OgorICAgICAgICAgICAgICAgICAgICBkZWwgc3lzLm1vZHVsZXNbbW9kbmFtZV0KKyAgICAg
ICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gbW9kCisKKyAgICBk
ZWYgc3lzZXhlYyhzZWxmLCAqYXJndiwgKipwb3Blbl9vcHRzKToKKyAgICAgICAgIiIiIHJldHVy
biBzdGRvdXQgdGV4dCBmcm9tIGV4ZWN1dGluZyBhIHN5c3RlbSBjaGlsZCBwcm9jZXNzLAorICAg
ICAgICAgICAgd2hlcmUgdGhlICdzZWxmJyBwYXRoIHBvaW50cyB0byBleGVjdXRhYmxlLgorICAg
ICAgICAgICAgVGhlIHByb2Nlc3MgaXMgZGlyZWN0bHkgaW52b2tlZCBhbmQgbm90IHRocm91Z2gg
YSBzeXN0ZW0gc2hlbGwuCisgICAgICAgICIiIgorICAgICAgICBmcm9tIHN1YnByb2Nlc3MgaW1w
b3J0IFBvcGVuLCBQSVBFCisgICAgICAgIGFyZ3YgPSBtYXBfYXNfbGlzdChzdHIsIGFyZ3YpCisg
ICAgICAgIHBvcGVuX29wdHNbJ3N0ZG91dCddID0gcG9wZW5fb3B0c1snc3RkZXJyJ10gPSBQSVBF
CisgICAgICAgIHByb2MgPSBQb3Blbihbc3RyKHNlbGYpXSArIGFyZ3YsICoqcG9wZW5fb3B0cykK
KyAgICAgICAgc3Rkb3V0LCBzdGRlcnIgPSBwcm9jLmNvbW11bmljYXRlKCkKKyAgICAgICAgcmV0
ID0gcHJvYy53YWl0KCkKKyAgICAgICAgaWYgcHkuYnVpbHRpbi5faXNieXRlcyhzdGRvdXQpOgor
ICAgICAgICAgICAgc3Rkb3V0ID0gcHkuYnVpbHRpbi5fdG90ZXh0KHN0ZG91dCwgc3lzLmdldGRl
ZmF1bHRlbmNvZGluZygpKQorICAgICAgICBpZiByZXQgIT0gMDoKKyAgICAgICAgICAgIGlmIHB5
LmJ1aWx0aW4uX2lzYnl0ZXMoc3RkZXJyKToKKyAgICAgICAgICAgICAgICBzdGRlcnIgPSBweS5i
dWlsdGluLl90b3RleHQoc3RkZXJyLCBzeXMuZ2V0ZGVmYXVsdGVuY29kaW5nKCkpCisgICAgICAg
ICAgICByYWlzZSBweS5wcm9jZXNzLmNtZGV4ZWMuRXJyb3IocmV0LCByZXQsIHN0cihzZWxmKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRvdXQsIHN0ZGVy
ciwpCisgICAgICAgIHJldHVybiBzdGRvdXQKKworICAgIGRlZiBzeXNmaW5kKGNscywgbmFtZSwg
Y2hlY2tlcj1Ob25lLCBwYXRocz1Ob25lKToKKyAgICAgICAgIiIiIHJldHVybiBhIHBhdGggb2Jq
ZWN0IGZvdW5kIGJ5IGxvb2tpbmcgYXQgdGhlIHN5c3RlbXMKKyAgICAgICAgICAgIHVuZGVybHlp
bmcgUEFUSCBzcGVjaWZpY2F0aW9uLiBJZiB0aGUgY2hlY2tlciBpcyBub3QgTm9uZQorICAgICAg
ICAgICAgaXQgd2lsbCBiZSBpbnZva2VkIHRvIGZpbHRlciBtYXRjaGluZyBwYXRocy4gIElmIGEg
YmluYXJ5CisgICAgICAgICAgICBjYW5ub3QgYmUgZm91bmQsIE5vbmUgaXMgcmV0dXJuZWQKKyAg
ICAgICAgICAgIE5vdGU6IFRoaXMgaXMgcHJvYmFibHkgbm90IHdvcmtpbmcgb24gcGxhaW4gd2lu
MzIgc3lzdGVtcworICAgICAgICAgICAgYnV0IG1heSB3b3JrIG9uIGN5Z3dpbi4KKyAgICAgICAg
IiIiCisgICAgICAgIGlmIGlzYWJzKG5hbWUpOgorICAgICAgICAgICAgcCA9IHB5LnBhdGgubG9j
YWwobmFtZSkKKyAgICAgICAgICAgIGlmIHAuY2hlY2soZmlsZT0xKToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gcAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgcGF0aHMgaXMgTm9uZToK
KyAgICAgICAgICAgICAgICBpZiBpc3dpbjMyOgorICAgICAgICAgICAgICAgICAgICBwYXRocyA9
IG9zLmVudmlyb25bJ1BhdGgnXS5zcGxpdCgnOycpCisgICAgICAgICAgICAgICAgICAgIGlmICcn
IG5vdCBpbiBwYXRocyBhbmQgJy4nIG5vdCBpbiBwYXRoczoKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHBhdGhzLmFwcGVuZCgnLicpCisgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHN5c3RlbXJvb3QgPSBvcy5lbnZpcm9uWydTWVNURU1ST09UJ10KKyAg
ICAgICAgICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzcworICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAg
ICAgcGF0aHMgPSBbcGF0aC5yZXBsYWNlKCclU3lzdGVtUm9vdCUnLCBzeXN0ZW1yb290KQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHBhdGggaW4gcGF0aHNdCisgICAgICAg
ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcGF0aHMgPSBvcy5lbnZpcm9uWydQ
QVRIJ10uc3BsaXQoJzonKQorICAgICAgICAgICAgdHJ5YWRkID0gW10KKyAgICAgICAgICAgIGlm
IGlzd2luMzI6CisgICAgICAgICAgICAgICAgdHJ5YWRkICs9IG9zLmVudmlyb25bJ1BBVEhFWFQn
XS5zcGxpdChvcy5wYXRoc2VwKQorICAgICAgICAgICAgdHJ5YWRkLmFwcGVuZCgiIikKKworICAg
ICAgICAgICAgZm9yIHggaW4gcGF0aHM6CisgICAgICAgICAgICAgICAgZm9yIGFkZGV4dCBpbiB0
cnlhZGQ6CisgICAgICAgICAgICAgICAgICAgIHAgPSBweS5wYXRoLmxvY2FsKHgpLmpvaW4obmFt
ZSwgYWJzPVRydWUpICsgYWRkZXh0CisgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIHAuY2hlY2soZmlsZT0xKToKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiBjaGVja2VyOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBu
b3QgY2hlY2tlcihwKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHAKKyAgICAgICAgICAgICAg
ICAgICAgZXhjZXB0IHB5LmVycm9yLkVBQ0NFUzoKKyAgICAgICAgICAgICAgICAgICAgICAgIHBh
c3MKKyAgICAgICAgcmV0dXJuIE5vbmUKKyAgICBzeXNmaW5kID0gY2xhc3NtZXRob2Qoc3lzZmlu
ZCkKKworICAgIGRlZiBfZ2V0aG9tZWRpcihjbHMpOgorICAgICAgICB0cnk6CisgICAgICAgICAg
ICB4ID0gb3MuZW52aXJvblsnSE9NRSddCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAg
ICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB4ID0gb3MuZW52aXJvblsiSE9NRURSSVZFIl0g
KyBvcy5lbnZpcm9uWydIT01FUEFUSCddCisgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJuIGNscyh4KQorICAgIF9n
ZXRob21lZGlyID0gY2xhc3NtZXRob2QoX2dldGhvbWVkaXIpCisKKyAgICAjICIiIgorICAgICMg
c3BlY2lhbCBjbGFzcyBjb25zdHJ1Y3RvcnMgZm9yIGxvY2FsIGZpbGVzeXN0ZW0gcGF0aHMKKyAg
ICAjICIiIgorICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBnZXRfdGVtcHJvb3QoY2xzKToKKyAg
ICAgICAgIiIiIHJldHVybiB0aGUgc3lzdGVtJ3MgdGVtcG9yYXJ5IGRpcmVjdG9yeQorICAgICAg
ICAgICAgKHdoZXJlIHRlbXBmaWxlcyBhcmUgdXN1YWxseSBjcmVhdGVkIGluKQorICAgICAgICAi
IiIKKyAgICAgICAgaW1wb3J0IHRlbXBmaWxlCisgICAgICAgIHJldHVybiBweS5wYXRoLmxvY2Fs
KHRlbXBmaWxlLmdldHRlbXBkaXIoKSkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBta2R0
ZW1wKGNscywgcm9vdGRpcj1Ob25lKToKKyAgICAgICAgIiIiIHJldHVybiBhIFBhdGggb2JqZWN0
IHBvaW50aW5nIHRvIGEgZnJlc2ggbmV3IHRlbXBvcmFyeSBkaXJlY3RvcnkKKyAgICAgICAgICAg
ICh3aGljaCB3ZSBjcmVhdGVkIG91cnNlbGYpLgorICAgICAgICAiIiIKKyAgICAgICAgaW1wb3J0
IHRlbXBmaWxlCisgICAgICAgIGlmIHJvb3RkaXIgaXMgTm9uZToKKyAgICAgICAgICAgIHJvb3Rk
aXIgPSBjbHMuZ2V0X3RlbXByb290KCkKKyAgICAgICAgcmV0dXJuIGNscyhweS5lcnJvci5jaGVj
a2VkX2NhbGwodGVtcGZpbGUubWtkdGVtcCwgZGlyPXN0cihyb290ZGlyKSkpCisKKyAgICBkZWYg
bWFrZV9udW1iZXJlZF9kaXIoY2xzLCBwcmVmaXg9J3Nlc3Npb24tJywgcm9vdGRpcj1Ob25lLCBr
ZWVwPTMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2tfdGltZW91dCA9IDE3MjgwMCk6
ICAgIyB0d28gZGF5cworICAgICAgICAiIiIgcmV0dXJuIHVuaXF1ZSBkaXJlY3Rvcnkgd2l0aCBh
IG51bWJlciBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnQKKyAgICAgICAgICAgIG1heGltdW0gb25l
LiAgVGhlIG51bWJlciBpcyBhc3N1bWVkIHRvIHN0YXJ0IGRpcmVjdGx5IGFmdGVyIHByZWZpeC4K
KyAgICAgICAgICAgIGlmIGtlZXAgaXMgdHJ1ZSBkaXJlY3RvcmllcyB3aXRoIGEgbnVtYmVyIGxl
c3MgdGhhbiAobWF4bnVtLWtlZXApCisgICAgICAgICAgICB3aWxsIGJlIHJlbW92ZWQuIElmIC5s
b2NrIGZpbGVzIGFyZSB1c2VkIChsb2NrX3RpbWVvdXQgbm9uLXplcm8pLAorICAgICAgICAgICAg
YWxnb3JpdGhtIGlzIG11bHRpLXByb2Nlc3Mgc2FmZS4KKyAgICAgICAgIiIiCisgICAgICAgIGlm
IHJvb3RkaXIgaXMgTm9uZToKKyAgICAgICAgICAgIHJvb3RkaXIgPSBjbHMuZ2V0X3RlbXByb290
KCkKKworICAgICAgICBucHJlZml4ID0gbm9ybWNhc2UocHJlZml4KQorICAgICAgICBkZWYgcGFy
c2VfbnVtKHBhdGgpOgorICAgICAgICAgICAgIiIiIHBhcnNlIHRoZSBudW1iZXIgb3V0IG9mIGEg
cGF0aCAoaWYgaXQgbWF0Y2hlcyB0aGUgcHJlZml4KSAiIiIKKyAgICAgICAgICAgIG5iYXNlbmFt
ZSA9IG5vcm1jYXNlKHBhdGguYmFzZW5hbWUpCisgICAgICAgICAgICBpZiBuYmFzZW5hbWUuc3Rh
cnRzd2l0aChucHJlZml4KToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBpbnQobmJhc2VuYW1lW2xlbihucHJlZml4KTpdKQorICAgICAgICAgICAgICAg
IGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAg
ZGVmIGNyZWF0ZV9sb2NrZmlsZShwYXRoKToKKyAgICAgICAgICAgICIiIiBleGNsdXNpdmVseSBj
cmVhdGUgbG9ja2ZpbGUuIFRocm93cyB3aGVuIGZhaWxlZCAiIiIKKyAgICAgICAgICAgIG15cGlk
ID0gb3MuZ2V0cGlkKCkKKyAgICAgICAgICAgIGxvY2tmaWxlID0gcGF0aC5qb2luKCcubG9jaycp
CisgICAgICAgICAgICBpZiBoYXNhdHRyKGxvY2tmaWxlLCAnbWtzeW1saW5rdG8nKToKKyAgICAg
ICAgICAgICAgICBsb2NrZmlsZS5ta3N5bWxpbmt0byhzdHIobXlwaWQpKQorICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICBmZCA9IHB5LmVycm9yLmNoZWNrZWRfY2FsbChvcy5vcGVu
LCBzdHIobG9ja2ZpbGUpLCBvcy5PX1dST05MWSB8IG9zLk9fQ1JFQVQgfCBvcy5PX0VYQ0wsIDBv
NjQ0KQorICAgICAgICAgICAgICAgIHdpdGggb3MuZmRvcGVuKGZkLCAndycpIGFzIGY6CisgICAg
ICAgICAgICAgICAgICAgIGYud3JpdGUoc3RyKG15cGlkKSkKKyAgICAgICAgICAgIHJldHVybiBs
b2NrZmlsZQorCisgICAgICAgIGRlZiBhdGV4aXRfcmVtb3ZlX2xvY2tmaWxlKGxvY2tmaWxlKToK
KyAgICAgICAgICAgICIiIiBlbnN1cmUgbG9ja2ZpbGUgaXMgcmVtb3ZlZCBhdCBwcm9jZXNzIGV4
aXQgIiIiCisgICAgICAgICAgICBteXBpZCA9IG9zLmdldHBpZCgpCisgICAgICAgICAgICBkZWYg
dHJ5X3JlbW92ZV9sb2NrZmlsZSgpOgorICAgICAgICAgICAgICAgICMgaW4gYSBmb3JrKCkgc2l0
dWF0aW9uLCBvbmx5IHRoZSBsYXN0IHByb2Nlc3Mgc2hvdWxkCisgICAgICAgICAgICAgICAgIyBy
ZW1vdmUgdGhlIC5sb2NrLCBvdGhlcndpc2UgdGhlIG90aGVyIHByb2Nlc3NlcyBydW4gdGhlCisg
ICAgICAgICAgICAgICAgIyByaXNrIG9mIHNlZWluZyB0aGVpciB0ZW1wb3JhcnkgZGlyIGRpc2Fw
cGVhci4gIEZvciBub3cKKyAgICAgICAgICAgICAgICAjIHdlIHJlbW92ZSB0aGUgLmxvY2sgaW4g
dGhlIHBhcmVudCBvbmx5IChpLmUuIHdlIGFzc3VtZQorICAgICAgICAgICAgICAgICMgdGhhdCB0
aGUgY2hpbGRyZW4gZmluaXNoIGJlZm9yZSB0aGUgcGFyZW50KS4KKyAgICAgICAgICAgICAgICBp
ZiBvcy5nZXRwaWQoKSAhPSBteXBpZDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAg
ICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBsb2NrZmlsZS5yZW1vdmUoKQor
ICAgICAgICAgICAgICAgIGV4Y2VwdCBweS5lcnJvci5FcnJvcjoKKyAgICAgICAgICAgICAgICAg
ICAgcGFzcworICAgICAgICAgICAgYXRleGl0LnJlZ2lzdGVyKHRyeV9yZW1vdmVfbG9ja2ZpbGUp
CisKKyAgICAgICAgIyBjb21wdXRlIHRoZSBtYXhpbXVtIG51bWJlciBjdXJyZW50bHkgaW4gdXNl
IHdpdGggdGhlIHByZWZpeAorICAgICAgICBsYXN0bWF4ID0gTm9uZQorICAgICAgICB3aGlsZSBU
cnVlOgorICAgICAgICAgICAgbWF4bnVtID0gLTEKKyAgICAgICAgICAgIGZvciBwYXRoIGluIHJv
b3RkaXIubGlzdGRpcigpOgorICAgICAgICAgICAgICAgIG51bSA9IHBhcnNlX251bShwYXRoKQor
ICAgICAgICAgICAgICAgIGlmIG51bSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAg
bWF4bnVtID0gbWF4KG1heG51bSwgbnVtKQorCisgICAgICAgICAgICAjIG1ha2UgdGhlIG5ldyBk
aXJlY3RvcnkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB1ZGlyID0gcm9vdGRp
ci5ta2RpcihwcmVmaXggKyBzdHIobWF4bnVtKzEpKQorICAgICAgICAgICAgICAgIGlmIGxvY2tf
dGltZW91dDoKKyAgICAgICAgICAgICAgICAgICAgbG9ja2ZpbGUgPSBjcmVhdGVfbG9ja2ZpbGUo
dWRpcikKKyAgICAgICAgICAgICAgICAgICAgYXRleGl0X3JlbW92ZV9sb2NrZmlsZShsb2NrZmls
ZSkKKyAgICAgICAgICAgIGV4Y2VwdCAocHkuZXJyb3IuRUVYSVNULCBweS5lcnJvci5FTk9FTlQs
IHB5LmVycm9yLkVCVVNZKToKKyAgICAgICAgICAgICAgICAjIHJhY2UgY29uZGl0aW9uICgxKTog
YW5vdGhlciB0aHJlYWQvcHJvY2VzcyBjcmVhdGVkIHRoZSBkaXIKKyAgICAgICAgICAgICAgICAj
ICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIG1lYW50aW1lIC0gdHJ5IGFnYWluCisgICAgICAg
ICAgICAgICAgIyByYWNlIGNvbmRpdGlvbiAoMik6IGFub3RoZXIgdGhyZWFkL3Byb2Nlc3Mgc3B1
cmlvdXNseSBhY3F1aXJlZAorICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICBs
b2NrIHRyZWF0aW5nIGVtcHR5IGRpcmVjdG9yeSBhcyBjYW5kaWRhdGUKKyAgICAgICAgICAgICAg
ICAjICAgICAgICAgICAgICAgICAgICAgZm9yIHJlbW92YWwgLSB0cnkgYWdhaW4KKyAgICAgICAg
ICAgICAgICAjIHJhY2UgY29uZGl0aW9uICgzKTogYW5vdGhlciB0aHJlYWQvcHJvY2VzcyB0cmll
ZCB0byBjcmVhdGUgdGhlIGxvY2sgYXQKKyAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAg
ICAgICAgdGhlIHNhbWUgdGltZSAoaGFwcGVuZWQgaW4gUHl0aG9uIDMuMyBvbiBXaW5kb3dzKQor
ICAgICAgICAgICAgICAgICMgaHR0cHM6Ly9jaS5hcHB2ZXlvci5jb20vcHJvamVjdC9weXRlc3Ri
b3QvcHkvYnVpbGQvMS4wLjIxL2pvYi9mZmk4NWo0YzBscXdzZndhCisgICAgICAgICAgICAgICAg
aWYgbGFzdG1heCA9PSBtYXhudW06CisgICAgICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAg
ICAgICAgICAgbGFzdG1heCA9IG1heG51bQorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAg
ICAgICAgICBicmVhaworCisgICAgICAgIGRlZiBnZXRfbXRpbWUocGF0aCk6CisgICAgICAgICAg
ICAiIiIgcmVhZCBmaWxlIG1vZGlmaWNhdGlvbiB0aW1lICIiIgorICAgICAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgICAgIHJldHVybiBwYXRoLmxzdGF0KCkubXRpbWUKKyAgICAgICAgICAgIGV4
Y2VwdCBweS5lcnJvci5FcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgZ2Fy
YmFnZV9wcmVmaXggPSBwcmVmaXggKyAnZ2FyYmFnZS0nCisKKyAgICAgICAgZGVmIGlzX2dhcmJh
Z2UocGF0aCk6CisgICAgICAgICAgICAiIiIgY2hlY2sgaWYgcGF0aCBkZW5vdGVzIGRpcmVjdG9y
eSBzY2hlZHVsZWQgZm9yIHJlbW92YWwgIiIiCisgICAgICAgICAgICBibiA9IHBhdGguYmFzZW5h
bWUKKyAgICAgICAgICAgIHJldHVybiBibi5zdGFydHN3aXRoKGdhcmJhZ2VfcHJlZml4KQorCisg
ICAgICAgICMgcHJ1bmUgb2xkIGRpcmVjdG9yaWVzCisgICAgICAgIHVkaXJfdGltZSA9IGdldF9t
dGltZSh1ZGlyKQorICAgICAgICBpZiBrZWVwIGFuZCB1ZGlyX3RpbWU6CisgICAgICAgICAgICBm
b3IgcGF0aCBpbiByb290ZGlyLmxpc3RkaXIoKToKKyAgICAgICAgICAgICAgICBudW0gPSBwYXJz
ZV9udW0ocGF0aCkKKyAgICAgICAgICAgICAgICBpZiBudW0gaXMgbm90IE5vbmUgYW5kIG51bSA8
PSAobWF4bnVtIC0ga2VlcCk6CisgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAg
ICAgICAgICAgICAgICMgdHJ5IGFjcXVpcmluZyBsb2NrIHRvIHJlbW92ZSBkaXJlY3RvcnkgYXMg
ZXhjbHVzaXZlIHVzZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGxvY2tfdGltZW91dDoK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVfbG9ja2ZpbGUocGF0aCkKKyAgICAg
ICAgICAgICAgICAgICAgZXhjZXB0IChweS5lcnJvci5FRVhJU1QsIHB5LmVycm9yLkVOT0VOVCwg
cHkuZXJyb3IuRUJVU1kpOgorICAgICAgICAgICAgICAgICAgICAgICAgcGF0aF90aW1lID0gZ2V0
X210aW1lKHBhdGgpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBub3QgcGF0aF90aW1lOgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgYXNzdW1lIGRpcmVjdG9yeSBkb2Vzbid0IGV4
aXN0IG5vdworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiBhYnModWRpcl90aW1lIC0gcGF0aF90aW1lKSA8IGxvY2tfdGltZW91
dDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGFzc3VtZSBkaXJlY3Rvcnkgd2l0aCBs
b2NrZmlsZSBleGlzdHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGFuZCBsb2NrIHRp
bWVvdXQgaGFzbid0IGV4cGlyZWQgeWV0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
dGludWUKKworICAgICAgICAgICAgICAgICAgICAjIHBhdGggZGlyIGxvY2tlZCBmb3IgZXhjbHVz
aXZlIHVzZQorICAgICAgICAgICAgICAgICAgICAjIGFuZCBzY2hlZHVsZWQgZm9yIHJlbW92YWwg
dG8gYXZvaWQgYW5vdGhlciB0aHJlYWQvcHJvY2VzcworICAgICAgICAgICAgICAgICAgICAjIHRy
ZWF0aW5nIGl0IGFzIGEgbmV3IGRpcmVjdG9yeSBvciByZW1vdmFsIGNhbmRpZGF0ZQorICAgICAg
ICAgICAgICAgICAgICBnYXJiYWdlX3BhdGggPSByb290ZGlyLmpvaW4oZ2FyYmFnZV9wcmVmaXgg
KyBzdHIodXVpZC51dWlkNCgpKSkKKyAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgICAgICAgICAgICAgcGF0aC5yZW5hbWUoZ2FyYmFnZV9wYXRoKQorICAgICAgICAgICAgICAg
ICAgICAgICAgZ2FyYmFnZV9wYXRoLnJlbW92ZShyZWM9MSkKKyAgICAgICAgICAgICAgICAgICAg
ZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgorICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UK
KyAgICAgICAgICAgICAgICAgICAgZXhjZXB0OiAjIHRoaXMgbWlnaHQgYmUgcHkuZXJyb3IuRXJy
b3IsIFdpbmRvd3NFcnJvciAuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgICAgICAgICBpZiBpc19nYXJiYWdlKHBhdGgpOgorICAgICAgICAgICAgICAgICAgICB0cnk6
CisgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLnJlbW92ZShyZWM9MSkKKyAgICAgICAgICAg
ICAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgorICAgICAgICAgICAgICAgICAgICAg
ICAgcmFpc2UKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0OiAjIHRoaXMgbWlnaHQgYmUgcHku
ZXJyb3IuRXJyb3IsIFdpbmRvd3NFcnJvciAuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgIHBh
c3MKKworICAgICAgICAjIG1ha2UgbGluay4uLgorICAgICAgICB0cnk6CisgICAgICAgICAgICB1
c2VybmFtZSA9IG9zLmVudmlyb25bJ1VTRVInXSAgICAgICAgICAgI2xpbnV4LCBldCBhbAorICAg
ICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAg
dXNlcm5hbWUgPSBvcy5lbnZpcm9uWydVU0VSTkFNRSddICAgI3dpbmRvd3MKKyAgICAgICAgICAg
IGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICB1c2VybmFtZSA9ICdjdXJyZW50Jwor
CisgICAgICAgIHNyYyAgPSBzdHIodWRpcikKKyAgICAgICAgZGVzdCA9IHNyY1s6c3JjLnJmaW5k
KCctJyldICsgJy0nICsgdXNlcm5hbWUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgb3MudW5s
aW5rKGRlc3QpCisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICAgICAgcGFzcworICAg
ICAgICB0cnk6CisgICAgICAgICAgICBvcy5zeW1saW5rKHNyYywgZGVzdCkKKyAgICAgICAgZXhj
ZXB0IChPU0Vycm9yLCBBdHRyaWJ1dGVFcnJvciwgTm90SW1wbGVtZW50ZWRFcnJvcik6CisgICAg
ICAgICAgICBwYXNzCisKKyAgICAgICAgcmV0dXJuIHVkaXIKKyAgICBtYWtlX251bWJlcmVkX2Rp
ciA9IGNsYXNzbWV0aG9kKG1ha2VfbnVtYmVyZWRfZGlyKQorCisKK2RlZiBjb3B5bW9kZShzcmMs
IGRlc3QpOgorICAgICIiIiBjb3B5IHBlcm1pc3Npb24gZnJvbSBzcmMgdG8gZHN0LiAiIiIKKyAg
ICBpbXBvcnQgc2h1dGlsCisgICAgc2h1dGlsLmNvcHltb2RlKHNyYywgZGVzdCkKKworCitkZWYg
Y29weXN0YXQoc3JjLCBkZXN0KToKKyAgICAiIiIgY29weSBwZXJtaXNzaW9uLCAgbGFzdCBtb2Rp
ZmljYXRpb24gdGltZSwKKyAgICBsYXN0IGFjY2VzcyB0aW1lLCBhbmQgZmxhZ3MgZnJvbSBzcmMg
dG8gZHN0LiIiIgorICAgIGltcG9ydCBzaHV0aWwKKyAgICBzaHV0aWwuY29weXN0YXQoc3RyKHNy
YyksIHN0cihkZXN0KSkKKworCitkZWYgY29weWNodW5rZWQoc3JjLCBkZXN0KToKKyAgICBjaHVu
a3NpemUgPSA1MjQyODggICMgaGFsZiBhIG1lZyBvZiBieXRlcworICAgIGZzcmMgPSBzcmMub3Bl
bigncmInKQorICAgIHRyeToKKyAgICAgICAgZmRlc3QgPSBkZXN0Lm9wZW4oJ3diJykKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgd2hpbGUgMToKKyAgICAgICAgICAgICAgICBidWYgPSBmc3Jj
LnJlYWQoY2h1bmtzaXplKQorICAgICAgICAgICAgICAgIGlmIG5vdCBidWY6CisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgZmRlc3Qud3JpdGUoYnVmKQorICAgICAg
ICBmaW5hbGx5OgorICAgICAgICAgICAgZmRlc3QuY2xvc2UoKQorICAgIGZpbmFsbHk6CisgICAg
ICAgIGZzcmMuY2xvc2UoKQorCisKK2RlZiBpc2ltcG9ydGFibGUobmFtZSk6CisgICAgaWYgbmFt
ZSBhbmQgKG5hbWVbMF0uaXNhbHBoYSgpIG9yIG5hbWVbMF0gPT0gJ18nKToKKyAgICAgICAgbmFt
ZSA9IG5hbWUucmVwbGFjZSgiXyIsICcnKQorICAgICAgICByZXR1cm4gbm90IG5hbWUgb3IgbmFt
ZS5pc2FsbnVtKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3BhdGgvc3ZudXJsLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9weS9fcGF0aC9zdm51cmwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjU4OWE3MWQwOWUzM2I5NDZjMGQ3
YzkwYzU5NDVjZGZjOWM4YTdhMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3BhdGgv
c3ZudXJsLnB5CkBAIC0wLDAgKzEsMzgwIEBACisiIiIKK21vZHVsZSBkZWZpbmluZyBhIHN1YnZl
cnNpb24gcGF0aCBvYmplY3QgYmFzZWQgb24gdGhlIGV4dGVybmFsCitjb21tYW5kICdzdm4nLiBU
aGlzIG1vZHVsZXMgYWltcyB0byB3b3JrIHdpdGggc3ZuIDEuMyBhbmQgaGlnaGVyCitidXQgbWln
aHQgYWxzbyBpbnRlcmFjdCB3ZWxsIHdpdGggZWFybGllciB2ZXJzaW9ucy4KKyIiIgorCitpbXBv
cnQgb3MsIHN5cywgdGltZSwgcmUKK2ltcG9ydCBweQorZnJvbSBweSBpbXBvcnQgcGF0aCwgcHJv
Y2VzcworZnJvbSBweS5fcGF0aCBpbXBvcnQgY29tbW9uCitmcm9tIHB5Ll9wYXRoIGltcG9ydCBz
dm53YyBhcyBzdm5jb21tb24KK2Zyb20gcHkuX3BhdGguY2FjaGV1dGlsIGltcG9ydCBCdWlsZGNv
c3RBY2Nlc3NDYWNoZSwgQWdpbmdDYWNoZQorCitERUJVRz1GYWxzZQorCitjbGFzcyBTdm5Db21t
YW5kUGF0aChzdm5jb21tb24uU3ZuUGF0aEJhc2UpOgorICAgICIiIiBwYXRoIGltcGxlbWVudGF0
aW9uIHRoYXQgb2ZmZXJzIGFjY2VzcyB0byAocG9zc2libHkgcmVtb3RlKSBzdWJ2ZXJzaW9uCisg
ICAgcmVwb3NpdG9yaWVzLiAiIiIKKworICAgIF9sc3JldmNhY2hlID0gQnVpbGRjb3N0QWNjZXNz
Q2FjaGUobWF4ZW50cmllcz0xMjgpCisgICAgX2xzbm9yZXZjYWNoZSA9IEFnaW5nQ2FjaGUobWF4
ZW50cmllcz0xMDAwLCBtYXhzZWNvbmRzPTYwLjApCisKKyAgICBkZWYgX19uZXdfXyhjbHMsIHBh
dGgsIHJldj1Ob25lLCBhdXRoPU5vbmUpOgorICAgICAgICBzZWxmID0gb2JqZWN0Ll9fbmV3X18o
Y2xzKQorICAgICAgICBpZiBpc2luc3RhbmNlKHBhdGgsIGNscyk6CisgICAgICAgICAgICByZXYg
PSBwYXRoLnJldgorICAgICAgICAgICAgYXV0aCA9IHBhdGguYXV0aAorICAgICAgICAgICAgcGF0
aCA9IHBhdGguc3RycGF0aAorICAgICAgICBzdm5jb21tb24uY2hlY2tiYWRjaGFycyhwYXRoKQor
ICAgICAgICBwYXRoID0gcGF0aC5yc3RyaXAoJy8nKQorICAgICAgICBzZWxmLnN0cnBhdGggPSBw
YXRoCisgICAgICAgIHNlbGYucmV2ID0gcmV2CisgICAgICAgIHNlbGYuYXV0aCA9IGF1dGgKKyAg
ICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgaWYg
c2VsZi5yZXYgPT0gLTE6CisgICAgICAgICAgICByZXR1cm4gJ3N2bnVybCglciknICUgc2VsZi5z
dHJwYXRoCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gJ3N2bnVybCglciwgJXIp
JyAlIChzZWxmLnN0cnBhdGgsIHNlbGYucmV2KQorCisgICAgZGVmIF9zdm53aXRocmV2KHNlbGYs
IGNtZCwgKmFyZ3MpOgorICAgICAgICAiIiIgZXhlY3V0ZSBhbiBzdm4gY29tbWFuZCwgYXBwZW5k
IG91ciBvd24gdXJsIGFuZCByZXZpc2lvbiAiIiIKKyAgICAgICAgaWYgc2VsZi5yZXYgaXMgTm9u
ZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9zdm53cml0ZShjbWQsICphcmdzKQorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgYXJncyA9IFsnLXInLCBzZWxmLnJldl0gKyBsaXN0KGFyZ3Mp
CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fc3Zud3JpdGUoY21kLCAqYXJncykKKworICAgIGRl
ZiBfc3Zud3JpdGUoc2VsZiwgY21kLCAqYXJncyk6CisgICAgICAgICIiIiBleGVjdXRlIGFuIHN2
biBjb21tYW5kLCBhcHBlbmQgb3VyIG93biB1cmwgIiIiCisgICAgICAgIGwgPSBbJ3N2biAlcycg
JSBjbWRdCisgICAgICAgIGFyZ3MgPSBbJyIlcyInICUgc2VsZi5fZXNjYXBlKGl0ZW0pIGZvciBp
dGVtIGluIGFyZ3NdCisgICAgICAgIGwuZXh0ZW5kKGFyZ3MpCisgICAgICAgIGwuYXBwZW5kKCci
JXMiJyAlIHNlbGYuX2VuY29kZWR1cmwoKSkKKyAgICAgICAgIyBmaXhpbmcgdGhlIGxvY2FsZSBi
ZWNhdXNlIHdlIGNhbid0IG90aGVyd2lzZSBwYXJzZQorICAgICAgICBzdHJpbmcgPSAiICIuam9p
bihsKQorICAgICAgICBpZiBERUJVRzoKKyAgICAgICAgICAgIHByaW50KCJleGVjaW5nICVzIiAl
IHN0cmluZykKKyAgICAgICAgb3V0ID0gc2VsZi5fc3ZuY21kZXhlY2F1dGgoc3RyaW5nKQorICAg
ICAgICByZXR1cm4gb3V0CisKKyAgICBkZWYgX3N2bmNtZGV4ZWNhdXRoKHNlbGYsIGNtZCk6Cisg
ICAgICAgICIiIiBleGVjdXRlIGFuIHN2biBjb21tYW5kICdhcyBpcycgIiIiCisgICAgICAgIGNt
ZCA9IHN2bmNvbW1vbi5maXhsb2NhbGUoKSArIGNtZAorICAgICAgICBpZiBzZWxmLmF1dGggaXMg
bm90IE5vbmU6CisgICAgICAgICAgICBjbWQgKz0gJyAnICsgc2VsZi5hdXRoLm1ha2VjbWRvcHRp
b25zKCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX2NtZGV4ZWMoY21kKQorCisgICAgZGVmIF9jbWRl
eGVjKHNlbGYsIGNtZCk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG91dCA9IHByb2Nlc3Mu
Y21kZXhlYyhjbWQpCisgICAgICAgIGV4Y2VwdCBweS5wcm9jZXNzLmNtZGV4ZWMuRXJyb3I6Cisg
ICAgICAgICAgICBlID0gc3lzLmV4Y19pbmZvKClbMV0KKyAgICAgICAgICAgIGlmIChlLmVyci5m
aW5kKCdGaWxlIEV4aXN0cycpICE9IC0xIG9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZS5lcnIuZmluZCgnRmlsZSBhbHJlYWR5IGV4aXN0cycpICE9IC0xKToKKyAgICAgICAgICAgICAg
ICByYWlzZSBweS5lcnJvci5FRVhJU1Qoc2VsZikKKyAgICAgICAgICAgIHJhaXNlCisgICAgICAg
IHJldHVybiBvdXQKKworICAgIGRlZiBfc3ZucG9wZW5hdXRoKHNlbGYsIGNtZCk6CisgICAgICAg
ICIiIiBleGVjdXRlIGFuIHN2biBjb21tYW5kLCByZXR1cm4gYSBwaXBlIGZvciByZWFkaW5nIHN0
ZGluICIiIgorICAgICAgICBjbWQgPSBzdm5jb21tb24uZml4bG9jYWxlKCkgKyBjbWQKKyAgICAg
ICAgaWYgc2VsZi5hdXRoIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgY21kICs9ICcgJyArIHNl
bGYuYXV0aC5tYWtlY21kb3B0aW9ucygpCisgICAgICAgIHJldHVybiBzZWxmLl9wb3BlbihjbWQp
CisKKyAgICBkZWYgX3BvcGVuKHNlbGYsIGNtZCk6CisgICAgICAgIHJldHVybiBvcy5wb3Blbihj
bWQpCisKKyAgICBkZWYgX2VuY29kZWR1cmwoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9l
c2NhcGUoc2VsZi5zdHJwYXRoKQorCisgICAgZGVmIF9ub3Jldl9kZWxlbnRyeShzZWxmLCBwYXRo
KToKKyAgICAgICAgYXV0aCA9IHNlbGYuYXV0aCBhbmQgc2VsZi5hdXRoLm1ha2VjbWRvcHRpb25z
KCkgb3IgTm9uZQorICAgICAgICBzZWxmLl9sc25vcmV2Y2FjaGUuZGVsZW50cnkoKHN0cihwYXRo
KSwgYXV0aCkpCisKKyAgICBkZWYgb3BlbihzZWxmLCBtb2RlPSdyJyk6CisgICAgICAgICIiIiBy
ZXR1cm4gYW4gb3BlbmVkIGZpbGUgd2l0aCB0aGUgZ2l2ZW4gbW9kZS4gIiIiCisgICAgICAgIGlm
IG1vZGUgbm90IGluICgiciIsICJyVSIsKToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
Im1vZGUgJXIgbm90IHN1cHBvcnRlZCIgJSAobW9kZSwpKQorICAgICAgICBhc3NlcnQgc2VsZi5j
aGVjayhmaWxlPTEpICMgc3ZuIGNhdCByZXR1cm5zIGFuIGVtcHR5IGZpbGUgb3RoZXJ3aXNlCisg
ICAgICAgIGlmIHNlbGYucmV2IGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fc3Zu
cG9wZW5hdXRoKCdzdm4gY2F0ICIlcyInICUgKAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9lc2NhcGUoc2VsZi5zdHJwYXRoKSwgKSkKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIHJldHVybiBzZWxmLl9zdm5wb3BlbmF1dGgoJ3N2biBjYXQgLXIgJXMgIiVz
IicgJSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmV2LCBz
ZWxmLl9lc2NhcGUoc2VsZi5zdHJwYXRoKSkpCisKKyAgICBkZWYgZGlycGF0aChzZWxmLCAqYXJn
cywgKiprd2FyZ3MpOgorICAgICAgICAiIiIgcmV0dXJuIHRoZSBkaXJlY3RvcnkgcGF0aCBvZiB0
aGUgY3VycmVudCBwYXRoIGpvaW5lZAorICAgICAgICAgICAgd2l0aCBhbnkgZ2l2ZW4gcGF0aCBh
cmd1bWVudHMuCisgICAgICAgICIiIgorICAgICAgICBsID0gc2VsZi5zdHJwYXRoLnNwbGl0KHNl
bGYuc2VwKQorICAgICAgICBpZiBsZW4obCkgPCA0OgorICAgICAgICAgICAgcmFpc2UgcHkuZXJy
b3IuRUlOVkFMKHNlbGYsICJiYXNlIGlzIG5vdCB2YWxpZCIpCisgICAgICAgIGVsaWYgbGVuKGwp
ID09IDQ6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5qb2luKCphcmdzLCAqKmt3YXJncykKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLm5ldyhiYXNlbmFtZT0nJykuam9p
bigqYXJncywgKiprd2FyZ3MpCisKKyAgICAjIG1vZGlmeWluZyBtZXRob2RzIChjYWNoZSBtdXN0
IGJlIGludmFsaWRhdGVkKQorICAgIGRlZiBta2RpcihzZWxmLCAqYXJncywgKiprd2FyZ3MpOgor
ICAgICAgICAiIiIgY3JlYXRlICYgcmV0dXJuIHRoZSBkaXJlY3Rvcnkgam9pbmVkIHdpdGggYXJn
cy4KKyAgICAgICAgcGFzcyBhICdtc2cnIGtleXdvcmQgYXJndW1lbnQgdG8gc2V0IHRoZSBjb21t
aXQgbWVzc2FnZS4KKyAgICAgICAgIiIiCisgICAgICAgIGNvbW1pdF9tc2cgPSBrd2FyZ3MuZ2V0
KCdtc2cnLCAibWtkaXIgYnkgcHkgbGliIGludm9jYXRpb24iKQorICAgICAgICBjcmVhdGVwYXRo
ID0gc2VsZi5qb2luKCphcmdzKQorICAgICAgICBjcmVhdGVwYXRoLl9zdm53cml0ZSgnbWtkaXIn
LCAnLW0nLCBjb21taXRfbXNnKQorICAgICAgICBzZWxmLl9ub3Jldl9kZWxlbnRyeShjcmVhdGVw
YXRoLmRpcnBhdGgoKSkKKyAgICAgICAgcmV0dXJuIGNyZWF0ZXBhdGgKKworICAgIGRlZiBjb3B5
KHNlbGYsIHRhcmdldCwgbXNnPSdjb3BpZWQgYnkgcHkgbGliIGludm9jYXRpb24nKToKKyAgICAg
ICAgIiIiIGNvcHkgcGF0aCB0byB0YXJnZXQgd2l0aCBjaGVja2luIG1lc3NhZ2UgbXNnLiIiIgor
ICAgICAgICBpZiBnZXRhdHRyKHRhcmdldCwgJ3JldicsIE5vbmUpIGlzIG5vdCBOb25lOgorICAg
ICAgICAgICAgcmFpc2UgcHkuZXJyb3IuRUlOVkFMKHRhcmdldCwgInJldmlzaW9ucyBhcmUgaW1t
dXRhYmxlIikKKyAgICAgICAgc2VsZi5fc3ZuY21kZXhlY2F1dGgoJ3N2biBjb3B5IC1tICIlcyIg
IiVzIiAiJXMiJyAlKG1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZXNj
YXBlKHNlbGYpLCBzZWxmLl9lc2NhcGUodGFyZ2V0KSkpCisgICAgICAgIHNlbGYuX25vcmV2X2Rl
bGVudHJ5KHRhcmdldC5kaXJwYXRoKCkpCisKKyAgICBkZWYgcmVuYW1lKHNlbGYsIHRhcmdldCwg
bXNnPSJyZW5hbWVkIGJ5IHB5IGxpYiBpbnZvY2F0aW9uIik6CisgICAgICAgICIiIiByZW5hbWUg
dGhpcyBwYXRoIHRvIHRhcmdldCB3aXRoIGNoZWNraW4gbWVzc2FnZSBtc2cuICIiIgorICAgICAg
ICBpZiBnZXRhdHRyKHNlbGYsICdyZXYnLCBOb25lKSBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
IHJhaXNlIHB5LmVycm9yLkVJTlZBTChzZWxmLCAicmV2aXNpb25zIGFyZSBpbW11dGFibGUiKQor
ICAgICAgICBzZWxmLl9zdm5jbWRleGVjYXV0aCgnc3ZuIG1vdmUgLW0gIiVzIiAtLWZvcmNlICIl
cyIgIiVzIicgJSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnLCBzZWxmLl9lc2Nh
cGUoc2VsZiksIHNlbGYuX2VzY2FwZSh0YXJnZXQpKSkKKyAgICAgICAgc2VsZi5fbm9yZXZfZGVs
ZW50cnkoc2VsZi5kaXJwYXRoKCkpCisgICAgICAgIHNlbGYuX25vcmV2X2RlbGVudHJ5KHNlbGYp
CisKKyAgICBkZWYgcmVtb3ZlKHNlbGYsIHJlYz0xLCBtc2c9J3JlbW92ZWQgYnkgcHkgbGliIGlu
dm9jYXRpb24nKToKKyAgICAgICAgIiIiIHJlbW92ZSBhIGZpbGUgb3IgZGlyZWN0b3J5IChvciBh
IGRpcmVjdG9yeSB0cmVlIGlmIHJlYz0xKSB3aXRoCitjaGVja2luIG1lc3NhZ2UgbXNnLiIiIgor
ICAgICAgICBpZiBzZWxmLnJldiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIHB5LmVy
cm9yLkVJTlZBTChzZWxmLCAicmV2aXNpb25zIGFyZSBpbW11dGFibGUiKQorICAgICAgICBzZWxm
Ll9zdm5jbWRleGVjYXV0aCgnc3ZuIHJtIC1tICIlcyIgIiVzIicgJShtc2csIHNlbGYuX2VzY2Fw
ZShzZWxmKSkpCisgICAgICAgIHNlbGYuX25vcmV2X2RlbGVudHJ5KHNlbGYuZGlycGF0aCgpKQor
CisgICAgZGVmIGV4cG9ydChzZWxmLCB0b3BhdGgpOgorICAgICAgICAiIiIgZXhwb3J0IHRvIGEg
bG9jYWwgcGF0aAorCisgICAgICAgICAgICB0b3BhdGggc2hvdWxkIG5vdCBleGlzdCBwcmlvciB0
byBjYWxsaW5nIHRoaXMsIHJldHVybnMgYQorICAgICAgICAgICAgcHkucGF0aC5sb2NhbCBpbnN0
YW5jZQorICAgICAgICAiIiIKKyAgICAgICAgdG9wYXRoID0gcHkucGF0aC5sb2NhbCh0b3BhdGgp
CisgICAgICAgIGFyZ3MgPSBbJyIlcyInICUgKHNlbGYuX2VzY2FwZShzZWxmKSwpLAorICAgICAg
ICAgICAgICAgICciJXMiJyAlIChzZWxmLl9lc2NhcGUodG9wYXRoKSwpXQorICAgICAgICBpZiBz
ZWxmLnJldiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFyZ3MgPSBbJy1yJywgc3RyKHNlbGYu
cmV2KV0gKyBhcmdzCisgICAgICAgIHNlbGYuX3N2bmNtZGV4ZWNhdXRoKCdzdm4gZXhwb3J0ICVz
JyAlICgnICcuam9pbihhcmdzKSwpKQorICAgICAgICByZXR1cm4gdG9wYXRoCisKKyAgICBkZWYg
ZW5zdXJlKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICIiIiBlbnN1cmUgdGhhdCBh
biBhcmdzLWpvaW5lZCBwYXRoIGV4aXN0cyAoYnkgZGVmYXVsdCBhcworICAgICAgICAgICAgYSBm
aWxlKS4gSWYgeW91IHNwZWNpZnkgYSBrZXl3b3JkIGFyZ3VtZW50ICdkaXI9VHJ1ZScKKyAgICAg
ICAgICAgIHRoZW4gdGhlIHBhdGggaXMgZm9yY2VkIHRvIGJlIGEgZGlyZWN0b3J5IHBhdGguCisg
ICAgICAgICIiIgorICAgICAgICBpZiBnZXRhdHRyKHNlbGYsICdyZXYnLCBOb25lKSBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgIHJhaXNlIHB5LmVycm9yLkVJTlZBTChzZWxmLCAicmV2aXNpb25z
IGFyZSBpbW11dGFibGUiKQorICAgICAgICB0YXJnZXQgPSBzZWxmLmpvaW4oKmFyZ3MpCisgICAg
ICAgIGRpciA9IGt3YXJncy5nZXQoJ2RpcicsIDApCisgICAgICAgIGZvciB4IGluIHRhcmdldC5w
YXJ0cyhyZXZlcnNlPVRydWUpOgorICAgICAgICAgICAgaWYgeC5jaGVjaygpOgorICAgICAgICAg
ICAgICAgIGJyZWFrCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBweS5lcnJvci5F
Tk9FTlQodGFyZ2V0LCAiaGFzIG5vdCBhbnkgdmFsaWQgYmFzZSEiKQorICAgICAgICBpZiB4ID09
IHRhcmdldDoKKyAgICAgICAgICAgIGlmIG5vdCB4LmNoZWNrKGRpcj1kaXIpOgorICAgICAgICAg
ICAgICAgIHJhaXNlIGRpciBhbmQgcHkuZXJyb3IuRU5PVERJUih4KSBvciBweS5lcnJvci5FSVNE
SVIoeCkKKyAgICAgICAgICAgIHJldHVybiB4CisgICAgICAgIHRvY3JlYXRlID0gdGFyZ2V0LnJl
bHRvKHgpCisgICAgICAgIGJhc2VuYW1lID0gdG9jcmVhdGUuc3BsaXQoc2VsZi5zZXAsIDEpWzBd
CisgICAgICAgIHRlbXBkaXIgPSBweS5wYXRoLmxvY2FsLm1rZHRlbXAoKQorICAgICAgICB0cnk6
CisgICAgICAgICAgICB0ZW1wZGlyLmVuc3VyZSh0b2NyZWF0ZSwgZGlyPWRpcikKKyAgICAgICAg
ICAgIGNtZCA9ICdzdm4gaW1wb3J0IC1tICIlcyIgIiVzIiAiJXMiJyAlICgKKyAgICAgICAgICAg
ICAgICAgICAgImVuc3VyZSAlcyIgJSBzZWxmLl9lc2NhcGUodG9jcmVhdGUpLAorICAgICAgICAg
ICAgICAgICAgICBzZWxmLl9lc2NhcGUodGVtcGRpci5qb2luKGJhc2VuYW1lKSksCisgICAgICAg
ICAgICAgICAgICAgIHguam9pbihiYXNlbmFtZSkuX2VuY29kZWR1cmwoKSkKKyAgICAgICAgICAg
IHNlbGYuX3N2bmNtZGV4ZWNhdXRoKGNtZCkKKyAgICAgICAgICAgIHNlbGYuX25vcmV2X2RlbGVu
dHJ5KHgpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICB0ZW1wZGlyLnJlbW92ZSgpCisg
ICAgICAgIHJldHVybiB0YXJnZXQKKworICAgICMgZW5kIG9mIG1vZGlmeWluZyBtZXRob2RzCisg
ICAgZGVmIF9wcm9wZ2V0KHNlbGYsIG5hbWUpOgorICAgICAgICByZXMgPSBzZWxmLl9zdm53aXRo
cmV2KCdwcm9wZ2V0JywgbmFtZSkKKyAgICAgICAgcmV0dXJuIHJlc1s6LTFdICMgc3RyaXAgdHJh
aWxpbmcgbmV3bGluZQorCisgICAgZGVmIF9wcm9wbGlzdChzZWxmKToKKyAgICAgICAgcmVzID0g
c2VsZi5fc3Zud2l0aHJldigncHJvcGxpc3QnKQorICAgICAgICBsaW5lcyA9IHJlcy5zcGxpdCgn
XG4nKQorICAgICAgICBsaW5lcyA9IFt4LnN0cmlwKCkgZm9yIHggaW4gbGluZXNbMTpdXQorICAg
ICAgICByZXR1cm4gc3ZuY29tbW9uLlByb3BMaXN0RGljdChzZWxmLCBsaW5lcykKKworICAgIGRl
ZiBpbmZvKHNlbGYpOgorICAgICAgICAiIiIgcmV0dXJuIGFuIEluZm8gc3RydWN0dXJlIHdpdGgg
c3ZuLXByb3ZpZGVkIGluZm9ybWF0aW9uLiAiIiIKKyAgICAgICAgcGFyZW50ID0gc2VsZi5kaXJw
YXRoKCkKKyAgICAgICAgbmFtZWluZm9fc2VxID0gcGFyZW50Ll9saXN0ZGlyX25hbWVpbmZvKCkK
KyAgICAgICAgYm4gPSBzZWxmLmJhc2VuYW1lCisgICAgICAgIGZvciBuYW1lLCBpbmZvIGluIG5h
bWVpbmZvX3NlcToKKyAgICAgICAgICAgIGlmIG5hbWUgPT0gYm46CisgICAgICAgICAgICAgICAg
cmV0dXJuIGluZm8KKyAgICAgICAgcmFpc2UgcHkuZXJyb3IuRU5PRU5UKHNlbGYpCisKKworICAg
IGRlZiBfbGlzdGRpcl9uYW1laW5mbyhzZWxmKToKKyAgICAgICAgIiIiIHJldHVybiBzZXF1ZW5j
ZSBvZiBuYW1lLWluZm8gZGlyZWN0b3J5IGVudHJpZXMgb2Ygc2VsZiAiIiIKKyAgICAgICAgZGVm
IGJ1aWxkZXIoKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXMgPSBzZWxm
Ll9zdm53aXRocmV2KCdscycsICctdicpCisgICAgICAgICAgICBleGNlcHQgcHJvY2Vzcy5jbWRl
eGVjLkVycm9yOgorICAgICAgICAgICAgICAgIGUgPSBzeXMuZXhjX2luZm8oKVsxXQorICAgICAg
ICAgICAgICAgIGlmIGUuZXJyLmZpbmQoJ25vbi1leGlzdGVudCBpbiB0aGF0IHJldmlzaW9uJykg
IT0gLTE6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIHB5LmVycm9yLkVOT0VOVChzZWxmLCBl
LmVycikKKyAgICAgICAgICAgICAgICBlbGlmIGUuZXJyLmZpbmQoIkUyMDAwMDk6IikgIT0gLTE6
CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIHB5LmVycm9yLkVOT0VOVChzZWxmLCBlLmVycikK
KyAgICAgICAgICAgICAgICBlbGlmIGUuZXJyLmZpbmQoJ0ZpbGUgbm90IGZvdW5kJykgIT0gLTE6
CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIHB5LmVycm9yLkVOT0VOVChzZWxmLCBlLmVycikK
KyAgICAgICAgICAgICAgICBlbGlmIGUuZXJyLmZpbmQoJ25vdCBwYXJ0IG9mIGEgcmVwb3NpdG9y
eScpIT0tMToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgcHkuZXJyb3IuRU5PRU5UKHNlbGYs
IGUuZXJyKQorICAgICAgICAgICAgICAgIGVsaWYgZS5lcnIuZmluZCgnVW5hYmxlIHRvIG9wZW4n
KSE9LTE6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIHB5LmVycm9yLkVOT0VOVChzZWxmLCBl
LmVycikKKyAgICAgICAgICAgICAgICBlbGlmIGUuZXJyLmxvd2VyKCkuZmluZCgnbWV0aG9kIG5v
dCBhbGxvd2VkJykhPS0xOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBweS5lcnJvci5FQUND
RVMoc2VsZiwgZS5lcnIpCisgICAgICAgICAgICAgICAgcmFpc2UgcHkuZXJyb3IuRXJyb3IoZS5l
cnIpCisgICAgICAgICAgICBsaW5lcyA9IHJlcy5zcGxpdCgnXG4nKQorICAgICAgICAgICAgbmFt
ZWluZm9fc2VxID0gW10KKyAgICAgICAgICAgIGZvciBsc2xpbmUgaW4gbGluZXM6CisgICAgICAg
ICAgICAgICAgaWYgbHNsaW5lOgorICAgICAgICAgICAgICAgICAgICBpbmZvID0gSW5mb1N2bkNv
bW1hbmQobHNsaW5lKQorICAgICAgICAgICAgICAgICAgICBpZiBpbmZvLl9uYW1lICE9ICcuJzog
ICMgc3ZuIDEuNSBwcm9kdWNlcyAnLicgZGlycywKKyAgICAgICAgICAgICAgICAgICAgICAgIG5h
bWVpbmZvX3NlcS5hcHBlbmQoKGluZm8uX25hbWUsIGluZm8pKQorICAgICAgICAgICAgbmFtZWlu
Zm9fc2VxLnNvcnQoKQorICAgICAgICAgICAgcmV0dXJuIG5hbWVpbmZvX3NlcQorICAgICAgICBh
dXRoID0gc2VsZi5hdXRoIGFuZCBzZWxmLmF1dGgubWFrZWNtZG9wdGlvbnMoKSBvciBOb25lCisg
ICAgICAgIGlmIHNlbGYucmV2IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYu
X2xzcmV2Y2FjaGUuZ2V0b3JidWlsZCgoc2VsZi5zdHJwYXRoLCBzZWxmLnJldiwgYXV0aCksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkZXIpCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fbHNub3JldmNhY2hlLmdldG9y
YnVpbGQoKHNlbGYuc3RycGF0aCwgYXV0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYnVpbGRlcikKKworICAgIGRlZiBsaXN0ZGlyKHNlbGYsIGZp
bD1Ob25lLCBzb3J0PU5vbmUpOgorICAgICAgICAiIiIgbGlzdCBkaXJlY3RvcnkgY29udGVudHMs
IHBvc3NpYmx5IGZpbHRlciBieSB0aGUgZ2l2ZW4gZmlsIGZ1bmMKKyAgICAgICAgICAgIGFuZCBw
b3NzaWJseSBzb3J0ZWQuCisgICAgICAgICIiIgorICAgICAgICBpZiBpc2luc3RhbmNlKGZpbCwg
c3RyKToKKyAgICAgICAgICAgIGZpbCA9IGNvbW1vbi5GTk1hdGNoZXIoZmlsKQorICAgICAgICBu
YW1laW5mb19zZXEgPSBzZWxmLl9saXN0ZGlyX25hbWVpbmZvKCkKKyAgICAgICAgaWYgbGVuKG5h
bWVpbmZvX3NlcSkgPT0gMToKKyAgICAgICAgICAgIG5hbWUsIGluZm8gPSBuYW1laW5mb19zZXFb
MF0KKyAgICAgICAgICAgIGlmIG5hbWUgPT0gc2VsZi5iYXNlbmFtZSBhbmQgaW5mby5raW5kID09
ICdmaWxlJzoKKyAgICAgICAgICAgICAgICAjaWYgbm90IHNlbGYuY2hlY2soZGlyPTEpOgorICAg
ICAgICAgICAgICAgIHJhaXNlIHB5LmVycm9yLkVOT1RESVIoc2VsZikKKyAgICAgICAgcGF0aHMg
PSBbc2VsZi5qb2luKG5hbWUpIGZvciAobmFtZSwgaW5mbykgaW4gbmFtZWluZm9fc2VxXQorICAg
ICAgICBpZiBmaWw6CisgICAgICAgICAgICBwYXRocyA9IFt4IGZvciB4IGluIHBhdGhzIGlmIGZp
bCh4KV0KKyAgICAgICAgc2VsZi5fc29ydGxpc3QocGF0aHMsIHNvcnQpCisgICAgICAgIHJldHVy
biBwYXRocworCisKKyAgICBkZWYgbG9nKHNlbGYsIHJldl9zdGFydD1Ob25lLCByZXZfZW5kPTEs
IHZlcmJvc2U9RmFsc2UpOgorICAgICAgICAiIiIgcmV0dXJuIGEgbGlzdCBvZiBMb2dFbnRyeSBp
bnN0YW5jZXMgZm9yIHRoaXMgcGF0aC4KK3Jldl9zdGFydCBpcyB0aGUgc3RhcnRpbmcgcmV2aXNp
b24gKGRlZmF1bHRpbmcgdG8gdGhlIGZpcnN0IG9uZSkuCityZXZfZW5kIGlzIHRoZSBsYXN0IHJl
dmlzaW9uIChkZWZhdWx0aW5nIHRvIEhFQUQpLgoraWYgdmVyYm9zZSBpcyBUcnVlLCB0aGVuIHRo
ZSBMb2dFbnRyeSBpbnN0YW5jZXMgYWxzbyBrbm93IHdoaWNoIGZpbGVzIGNoYW5nZWQuCisiIiIK
KyAgICAgICAgYXNzZXJ0IHNlbGYuY2hlY2soKSAjbWFrZSBpdCBzaW1wbGVyIGZvciB0aGUgcGlw
ZQorICAgICAgICByZXZfc3RhcnQgPSByZXZfc3RhcnQgaXMgTm9uZSBhbmQgIkhFQUQiIG9yIHJl
dl9zdGFydAorICAgICAgICByZXZfZW5kID0gcmV2X2VuZCBpcyBOb25lIGFuZCAiSEVBRCIgb3Ig
cmV2X2VuZAorCisgICAgICAgIGlmIHJldl9zdGFydCA9PSAiSEVBRCIgYW5kIHJldl9lbmQgPT0g
MToKKyAgICAgICAgICAgIHJldl9vcHQgPSAiIgorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
cmV2X29wdCA9ICItciAlczolcyIgJSAocmV2X3N0YXJ0LCByZXZfZW5kKQorICAgICAgICB2ZXJi
b3NlX29wdCA9IHZlcmJvc2UgYW5kICItdiIgb3IgIiIKKyAgICAgICAgeG1scGlwZSA9ICBzZWxm
Ll9zdm5wb3BlbmF1dGgoJ3N2biBsb2cgLS14bWwgJXMgJXMgIiVzIicgJQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAocmV2X29wdCwgdmVyYm9zZV9vcHQsIHNlbGYuc3Ry
cGF0aCkpCisgICAgICAgIGZyb20geG1sLmRvbSBpbXBvcnQgbWluaWRvbQorICAgICAgICB0cmVl
ID0gbWluaWRvbS5wYXJzZSh4bWxwaXBlKQorICAgICAgICByZXN1bHQgPSBbXQorICAgICAgICBm
b3IgbG9nZW50cnkgaW4gZmlsdGVyKE5vbmUsIHRyZWUuZmlyc3RDaGlsZC5jaGlsZE5vZGVzKToK
KyAgICAgICAgICAgIGlmIGxvZ2VudHJ5Lm5vZGVUeXBlID09IGxvZ2VudHJ5LkVMRU1FTlRfTk9E
RToKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHN2bmNvbW1vbi5Mb2dFbnRyeShsb2dl
bnRyeSkpCisgICAgICAgIHJldHVybiByZXN1bHQKKworIzAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEy
MzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDY3CisjICAgMjI1NiAgICAgIGhwayAgICAgICAgMTY1IE5v
diAyNCAxNzo1NSBfX2luaXRfXy5weQorIyBYWFggc3BvdHRlZCBieSBHdWlkbywgU1ZOIDEuMy4w
IGhhcyBkaWZmZXJlbnQgYWxpZ25pbmcsIGJyZWFrcyB0aGUgY29kZSEhIQorIyAgIDEzMTIgam9o
bm55ICAgICAgICAgICAxNjI3IE1heSAwNSAxNDozMiB0ZXN0X2RlY29yYXRvcnMucHkKKyMKK2Ns
YXNzIEluZm9Tdm5Db21tYW5kOgorICAgICMgdGhlICcwPycgcGFydCBpbiB0aGUgbWlkZGxlIGlz
IGFuIGluZGljYXRpb24gb2Ygd2hldGhlciB0aGUgcmVzb3VyY2UgaXMKKyAgICAjIGxvY2tlZCwg
c2VlICdzdm4gaGVscCBscycKKyAgICBsc3BhdHRlcm4gPSByZS5jb21waWxlKAorICAgICAgICBy
J14gKig/UDxyZXY+XGQrKSArKD9QPGF1dGhvcj4uKz8pICsoMD8gKig/UDxzaXplPlxkKykpPyAn
CisgICAgICAgICAgICByJyooP1A8ZGF0ZT5cdysgK1xkezJ9ICtbXGQ6XSspICsoP1A8ZmlsZT4u
KikkJykKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbGluZSk6CisgICAgICAgICMgdGhpcyBpcyBh
IHR5cGljYWwgbGluZSBmcm9tICdzdm4gbHMgaHR0cDovLy4uLicKKyAgICAgICAgI18gICAgMTEy
NyAgICAgIGp1bSAgICAgICAgMCBKdWwgMTMgMTU6MjggYnJhbmNoLworICAgICAgICBtYXRjaCA9
IHNlbGYubHNwYXR0ZXJuLm1hdGNoKGxpbmUpCisgICAgICAgIGRhdGEgPSBtYXRjaC5ncm91cGRp
Y3QoKQorICAgICAgICBzZWxmLl9uYW1lID0gZGF0YVsnZmlsZSddCisgICAgICAgIGlmIHNlbGYu
X25hbWVbLTFdID09ICcvJzoKKyAgICAgICAgICAgIHNlbGYuX25hbWUgPSBzZWxmLl9uYW1lWzot
MV0KKyAgICAgICAgICAgIHNlbGYua2luZCA9ICdkaXInCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICBzZWxmLmtpbmQgPSAnZmlsZScKKyAgICAgICAgI3NlbGYuaGFzX3Byb3BzID0gbC5wb3Ao
MCkgPT0gJ1AnCisgICAgICAgIHNlbGYuY3JlYXRlZF9yZXYgPSBpbnQoZGF0YVsncmV2J10pCisg
ICAgICAgIHNlbGYubGFzdF9hdXRob3IgPSBkYXRhWydhdXRob3InXQorICAgICAgICBzZWxmLnNp
emUgPSBkYXRhWydzaXplJ10gYW5kIGludChkYXRhWydzaXplJ10pIG9yIDAKKyAgICAgICAgc2Vs
Zi5tdGltZSA9IHBhcnNlX3RpbWVfd2l0aF9taXNzaW5nX3llYXIoZGF0YVsnZGF0ZSddKQorICAg
ICAgICBzZWxmLnRpbWUgPSBzZWxmLm10aW1lICogMTAwMDAwMAorCisgICAgZGVmIF9fZXFfXyhz
ZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBzZWxmLl9fZGljdF9fID09IG90aGVyLl9fZGlj
dF9fCisKKworI19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KKyMKKyMgaGVscGVyIGZ1bmN0aW9ucworI19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KK2RlZiBwYXJzZV90aW1lX3dpdGhfbWlzc2luZ195
ZWFyKHRpbWVzdHIpOgorICAgICIiIiBhbmFseXplIHRoZSB0aW1lIHBhcnQgZnJvbSBhIHNpbmds
ZSBsaW5lIG9mICJzdm4gbHMgLXYiCisgICAgdGhlIHN2biBvdXRwdXQgZG9lc24ndCBzaG93IHRo
ZSB5ZWFyIG1ha2VzIHRoZSAndGltZXN0cicKKyAgICBhbWJpZ291cy4KKyAgICAiIiIKKyAgICBp
bXBvcnQgY2FsZW5kYXIKKyAgICB0X25vdyA9IHRpbWUuZ210aW1lKCkKKworICAgIHRwYXJ0cyA9
IHRpbWVzdHIuc3BsaXQoKQorICAgIG1vbnRoID0gdGltZS5zdHJwdGltZSh0cGFydHMucG9wKDAp
LCAnJWInKVsxXQorICAgIGRheSA9IHRpbWUuc3RycHRpbWUodHBhcnRzLnBvcCgwKSwgJyVkJylb
Ml0KKyAgICBsYXN0ID0gdHBhcnRzLnBvcCgwKSAjIHllYXIgb3IgaG91cjptaW51dGUKKyAgICB0
cnk6CisgICAgICAgIGlmICI6IiBpbiBsYXN0OgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cigpCisgICAgICAgIHllYXIgPSB0aW1lLnN0cnB0aW1lKGxhc3QsICclWScpWzBdCisgICAgICAg
IGhvdXIgPSBtaW51dGUgPSAwCisgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgIGhvdXIs
IG1pbnV0ZSA9IHRpbWUuc3RycHRpbWUobGFzdCwgJyVIOiVNJylbMzo1XQorICAgICAgICB5ZWFy
ID0gdF9ub3dbMF0KKworICAgICAgICB0X3Jlc3VsdCA9ICh5ZWFyLCBtb250aCwgZGF5LCBob3Vy
LCBtaW51dGUsIDAsMCwwLDApCisgICAgICAgIGlmIHRfcmVzdWx0ID4gdF9ub3c6CisgICAgICAg
ICAgICB5ZWFyIC09IDEKKyAgICB0X3Jlc3VsdCA9ICh5ZWFyLCBtb250aCwgZGF5LCBob3VyLCBt
aW51dGUsIDAsMCwwLDApCisgICAgcmV0dXJuIGNhbGVuZGFyLnRpbWVnbSh0X3Jlc3VsdCkKKwor
Y2xhc3MgUGF0aEVudHJ5OgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwcGFydCk6CisgICAgICAg
IHNlbGYuc3RycGF0aCA9IHBwYXJ0LmZpcnN0Q2hpbGQubm9kZVZhbHVlLmVuY29kZSgnVVRGLTgn
KQorICAgICAgICBzZWxmLmFjdGlvbiA9IHBwYXJ0LmdldEF0dHJpYnV0ZSgnYWN0aW9uJykuZW5j
b2RlKCdVVEYtOCcpCisgICAgICAgIGlmIHNlbGYuYWN0aW9uID09ICdBJzoKKyAgICAgICAgICAg
IHNlbGYuY29weWZyb21fcGF0aCA9IHBwYXJ0LmdldEF0dHJpYnV0ZSgnY29weWZyb20tcGF0aCcp
LmVuY29kZSgnVVRGLTgnKQorICAgICAgICAgICAgaWYgc2VsZi5jb3B5ZnJvbV9wYXRoOgorICAg
ICAgICAgICAgICAgIHNlbGYuY29weWZyb21fcmV2ID0gaW50KHBwYXJ0LmdldEF0dHJpYnV0ZSgn
Y29weWZyb20tcmV2JykpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3BhdGgvc3Zud2MucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3B5L19wYXRoL3N2bndjLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxMzhkZDg1ZGEzOWIyZDJh
NjViODEwMWY2YmE5NmVlZjk2YTMyYzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19w
YXRoL3N2bndjLnB5CkBAIC0wLDAgKzEsMTI0MCBAQAorIiIiCitzdm4tQ29tbWFuZCBiYXNlZCBJ
bXBsZW1lbnRhdGlvbiBvZiBhIFN1YnZlcnNpb24gV29ya2luZ0NvcHkgUGF0aC4KKworICBTdm5X
Q0NvbW1hbmRQYXRoICBpcyB0aGUgbWFpbiBjbGFzcy4KKworIiIiCisKK2ltcG9ydCBvcywgc3lz
LCB0aW1lLCByZSwgY2FsZW5kYXIKK2ltcG9ydCBweQoraW1wb3J0IHN1YnByb2Nlc3MKK2Zyb20g
cHkuX3BhdGggaW1wb3J0IGNvbW1vbgorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ2FjaGluZyBsYXRlc3QgcmVwb3NpdG9y
eSByZXZpc2lvbiBhbmQgcmVwby1wYXRocworIyAoZ2V0dGluZyB0aGVtIGlzIHNsb3cgd2l0aCB0
aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbnMpCisjCisjIFhYWCBtYWtlIG10LXNhZmUKKyMtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CitjbGFzcyBjYWNoZToKKyAgICBwcm9wbGlzdCA9IHt9CisgICAgaW5mbyA9IHt9CisgICAgZW50
cmllcyA9IHt9CisgICAgcHJvcCA9IHt9CisKK2NsYXNzIFJlcG9FbnRyeToKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgdXJsLCByZXYsIHRpbWVzdGFtcCk6CisgICAgICAgIHNlbGYudXJsID0gdXJs
CisgICAgICAgIHNlbGYucmV2ID0gcmV2CisgICAgICAgIHNlbGYudGltZXN0YW1wID0gdGltZXN0
YW1wCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICJyZXBvOiAlczsl
cyAgJXMiICUoc2VsZi51cmwsIHNlbGYucmV2LCBzZWxmLnRpbWVzdGFtcCkKKworY2xhc3MgUmVw
b0NhY2hlOgorICAgICIiIiBUaGUgUmVwb2NhY2hlIG1hbmFnZXMgZGlzY292ZXJlZCByZXBvc2l0
b3J5IHBhdGhzCisgICAgYW5kIHRoZWlyIHJldmlzaW9ucy4gIElmIGluc2lkZSBhIHRpbWVvdXQg
dGhlIGNhY2hlCisgICAgd2lsbCBldmVuIHJldHVybiB0aGUgcmV2aXNpb24gb2YgdGhlIHJvb3Qu
CisgICAgIiIiCisgICAgdGltZW91dCA9IDIwICMgc2Vjb25kcyBhZnRlciB3aGljaCB3ZSBmb3Jn
ZXQgdGhhdCB3ZSBrbm93IHRoZSBsYXN0IHJldmlzaW9uCisKKyAgICBkZWYgX19pbml0X18oc2Vs
Zik6CisgICAgICAgIHNlbGYucmVwb3MgPSBbXQorCisgICAgZGVmIGNsZWFyKHNlbGYpOgorICAg
ICAgICBzZWxmLnJlcG9zID0gW10KKworICAgIGRlZiBwdXQoc2VsZiwgdXJsLCByZXYsIHRpbWVz
dGFtcD1Ob25lKToKKyAgICAgICAgaWYgcmV2IGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4K
KyAgICAgICAgaWYgdGltZXN0YW1wIGlzIE5vbmU6CisgICAgICAgICAgICB0aW1lc3RhbXAgPSB0
aW1lLnRpbWUoKQorCisgICAgICAgIGZvciBlbnRyeSBpbiBzZWxmLnJlcG9zOgorICAgICAgICAg
ICAgaWYgdXJsID09IGVudHJ5LnVybDoKKyAgICAgICAgICAgICAgICBlbnRyeS50aW1lc3RhbXAg
PSB0aW1lc3RhbXAKKyAgICAgICAgICAgICAgICBlbnRyeS5yZXYgPSByZXYKKyAgICAgICAgICAg
ICAgICAjcHJpbnQgInNldCByZXBvIiwgZW50cnkKKyAgICAgICAgICAgICAgICBicmVhaworICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgZW50cnkgPSBSZXBvRW50cnkodXJsLCByZXYsIHRpbWVz
dGFtcCkKKyAgICAgICAgICAgIHNlbGYucmVwb3MuYXBwZW5kKGVudHJ5KQorICAgICAgICAgICAg
I3ByaW50ICJhcHBlbmRlZCByZXBvIiwgZW50cnkKKworICAgIGRlZiBnZXQoc2VsZiwgdXJsKToK
KyAgICAgICAgbm93ID0gdGltZS50aW1lKCkKKyAgICAgICAgZm9yIGVudHJ5IGluIHNlbGYucmVw
b3M6CisgICAgICAgICAgICBpZiB1cmwuc3RhcnRzd2l0aChlbnRyeS51cmwpOgorICAgICAgICAg
ICAgICAgIGlmIG5vdyA8IGVudHJ5LnRpbWVzdGFtcCArIHNlbGYudGltZW91dDoKKyAgICAgICAg
ICAgICAgICAgICAgI3ByaW50ICJyZXR1cm5pbmcgaW1tZWRpYXRlIEV0cm55IiwgZW50cnkKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5LnVybCwgZW50cnkucmV2CisgICAgICAgICAg
ICAgICAgcmV0dXJuIGVudHJ5LnVybCwgLTEKKyAgICAgICAgcmV0dXJuIHVybCwgLTEKKworcmVw
b3NpdG9yaWVzID0gUmVwb0NhY2hlKCkKKworCisjIHN2biBzdXBwb3J0IGNvZGUKKworQUxMT1dF
RF9DSEFSUyA9ICJfIC0vXFw9JC5+KyUiICNhZGQgY2hhcmFjdGVycyBhcyBuZWNlc3Nhcnkgd2hl
biB0ZXN0ZWQKK2lmIHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiOgorICAgIEFMTE9XRURfQ0hBUlMg
Kz0gIjoiCitBTExPV0VEX0NIQVJTX0hPU1QgPSBBTExPV0VEX0NIQVJTICsgJ0A6JworCitkZWYg
X2dldHN2bnZlcnNpb24odmVyPVtdKToKKyAgICB0cnk6CisgICAgICAgIHJldHVybiB2ZXJbMF0K
KyAgICBleGNlcHQgSW5kZXhFcnJvcjoKKyAgICAgICAgdiA9IHB5LnByb2Nlc3MuY21kZXhlYygi
c3ZuIC1xIC0tdmVyc2lvbiIpCisgICAgICAgIHYuc3RyaXAoKQorICAgICAgICB2ID0gJy4nLmpv
aW4odi5zcGxpdCgnLicpWzoyXSkKKyAgICAgICAgdmVyLmFwcGVuZCh2KQorICAgICAgICByZXR1
cm4gdgorCitkZWYgX2VzY2FwZV9oZWxwZXIodGV4dCk6CisgICAgdGV4dCA9IHN0cih0ZXh0KQor
ICAgIGlmIHN5cy5wbGF0Zm9ybSAhPSAnd2luMzInOgorICAgICAgICB0ZXh0ID0gc3RyKHRleHQp
LnJlcGxhY2UoJyQnLCAnXFwkJykKKyAgICByZXR1cm4gdGV4dAorCitkZWYgX2NoZWNrX2Zvcl9i
YWRfY2hhcnModGV4dCwgYWxsb3dlZF9jaGFycz1BTExPV0VEX0NIQVJTKToKKyAgICBmb3IgYyBp
biBzdHIodGV4dCk6CisgICAgICAgIGlmIGMuaXNhbG51bSgpOgorICAgICAgICAgICAgY29udGlu
dWUKKyAgICAgICAgaWYgYyBpbiBhbGxvd2VkX2NoYXJzOgorICAgICAgICAgICAgY29udGludWUK
KyAgICAgICAgcmV0dXJuIFRydWUKKyAgICByZXR1cm4gRmFsc2UKKworZGVmIGNoZWNrYmFkY2hh
cnModXJsKToKKyAgICAjIChocGspIG5vdCBxdWl0ZSBzdXJlIGFib3V0IHRoZSBleGFjdCBwdXJw
b3NlLCBndWlkbyB3Lj8KKyAgICBwcm90bywgdXJpID0gdXJsLnNwbGl0KCI6Ly8iLCAxKQorICAg
IGlmIHByb3RvICE9ICJmaWxlIjoKKyAgICAgICAgaG9zdCwgdXJpcGF0aCA9IHVyaS5zcGxpdCgn
LycsIDEpCisgICAgICAgICMgb25seSBjaGVjayBmb3IgYmFkIGNoYXJzIGluIHRoZSBub24tcHJv
dG9jb2wgcGFydHMKKyAgICAgICAgaWYgKF9jaGVja19mb3JfYmFkX2NoYXJzKGhvc3QsIEFMTE9X
RURfQ0hBUlNfSE9TVCkgXAorICAgICAgICAgICAgb3IgX2NoZWNrX2Zvcl9iYWRfY2hhcnModXJp
cGF0aCwgQUxMT1dFRF9DSEFSUykpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiYmFk
IGNoYXIgaW4gJXIiICUgKHVybCwgKSkKKworCisjX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCisKK2NsYXNzIFN2blBhdGhCYXNl
KGNvbW1vbi5QYXRoQmFzZSk6CisgICAgIiIiIEJhc2UgaW1wbGVtZW50YXRpb24gZm9yIFN2blBh
dGggaW1wbGVtZW50YXRpb25zLiAiIiIKKyAgICBzZXAgPSAnLycKKworICAgIGRlZiBfZ2V0dXJs
KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5zdHJwYXRoCisgICAgdXJsID0gcHJvcGVydHko
X2dldHVybCwgTm9uZSwgTm9uZSwgInVybCBvZiB0aGlzIHN2bi1wYXRoLiIpCisKKyAgICBkZWYg
X19zdHJfXyhzZWxmKToKKyAgICAgICAgIiIiIHJldHVybiBhIHN0cmluZyByZXByZXNlbnRhdGlv
biAoaW5jbHVkaW5nIHJldi1udW1iZXIpICIiIgorICAgICAgICByZXR1cm4gc2VsZi5zdHJwYXRo
CisKKyAgICBkZWYgX19oYXNoX18oc2VsZik6CisgICAgICAgIHJldHVybiBoYXNoKHNlbGYuc3Ry
cGF0aCkKKworICAgIGRlZiBuZXcoc2VsZiwgKiprdyk6CisgICAgICAgICIiIiBjcmVhdGUgYSBt
b2RpZmllZCB2ZXJzaW9uIG9mIHRoaXMgcGF0aC4gQSAncmV2JyBhcmd1bWVudAorICAgICAgICAg
ICAgaW5kaWNhdGVzIGEgbmV3IHJldmlzaW9uLgorICAgICAgICAgICAgdGhlIGZvbGxvd2luZyBr
ZXl3b3JkIGFyZ3VtZW50cyBtb2RpZnkgdmFyaW91cyBwYXRoIHBhcnRzOjoKKworICAgICAgICAg
ICAgICBodHRwOi8vaG9zdC5jb20vcmVwby9wYXRoL2ZpbGUuZXh0CisgICAgICAgICAgICAgIHwt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwgICAgICAgICAgZGlybmFtZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS18IGJhc2VuYW1lCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfC0tfCAgICAgcHVyZWJhc2VuYW1lCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwtLXwgZXh0CisgICAgICAgICIi
IgorICAgICAgICBvYmogPSBvYmplY3QuX19uZXdfXyhzZWxmLl9fY2xhc3NfXykKKyAgICAgICAg
b2JqLnJldiA9IGt3LmdldCgncmV2Jywgc2VsZi5yZXYpCisgICAgICAgIG9iai5hdXRoID0ga3cu
Z2V0KCdhdXRoJywgc2VsZi5hdXRoKQorICAgICAgICBkaXJuYW1lLCBiYXNlbmFtZSwgcHVyZWJh
c2VuYW1lLCBleHQgPSBzZWxmLl9nZXRieXNwZWMoCisgICAgICAgICAgICAgImRpcm5hbWUsYmFz
ZW5hbWUscHVyZWJhc2VuYW1lLGV4dCIpCisgICAgICAgIGlmICdiYXNlbmFtZScgaW4ga3c6Cisg
ICAgICAgICAgICBpZiAncHVyZWJhc2VuYW1lJyBpbiBrdyBvciAnZXh0JyBpbiBrdzoKKyAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJpbnZhbGlkIHNwZWNpZmljYXRpb24gJXIiICUg
a3cpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwYiA9IGt3LnNldGRlZmF1bHQoJ3B1cmVi
YXNlbmFtZScsIHB1cmViYXNlbmFtZSkKKyAgICAgICAgICAgIGV4dCA9IGt3LnNldGRlZmF1bHQo
J2V4dCcsIGV4dCkKKyAgICAgICAgICAgIGlmIGV4dCBhbmQgbm90IGV4dC5zdGFydHN3aXRoKCcu
Jyk6CisgICAgICAgICAgICAgICAgZXh0ID0gJy4nICsgZXh0CisgICAgICAgICAgICBrd1snYmFz
ZW5hbWUnXSA9IHBiICsgZXh0CisKKyAgICAgICAga3cuc2V0ZGVmYXVsdCgnZGlybmFtZScsIGRp
cm5hbWUpCisgICAgICAgIGt3LnNldGRlZmF1bHQoJ3NlcCcsIHNlbGYuc2VwKQorICAgICAgICBp
ZiBrd1snYmFzZW5hbWUnXToKKyAgICAgICAgICAgIG9iai5zdHJwYXRoID0gIiUoZGlybmFtZSlz
JShzZXApcyUoYmFzZW5hbWUpcyIgJSBrdworICAgICAgICBlbHNlOgorICAgICAgICAgICAgb2Jq
LnN0cnBhdGggPSAiJShkaXJuYW1lKXMiICUga3cKKyAgICAgICAgcmV0dXJuIG9iagorCisgICAg
ZGVmIF9nZXRieXNwZWMoc2VsZiwgc3BlYyk6CisgICAgICAgICIiIiBnZXQgc3BlY2lmaWVkIHBh
cnRzIG9mIHRoZSBwYXRoLiAgJ2FyZycgaXMgYSBzdHJpbmcKKyAgICAgICAgICAgIHdpdGggY29t
bWEgc2VwYXJhdGVkIHBhdGggcGFydHMuIFRoZSBwYXJ0cyBhcmUgcmV0dXJuZWQKKyAgICAgICAg
ICAgIGluIGV4YWN0bHkgdGhlIG9yZGVyIG9mIHRoZSBzcGVjaWZpY2F0aW9uLgorCisgICAgICAg
ICAgICB5b3UgbWF5IHNwZWNpZnkgdGhlIGZvbGxvd2luZyBwYXJ0czoKKworICAgICAgICAgICAg
aHR0cDovL2hvc3QuY29tL3JlcG8vcGF0aC9maWxlLmV4dAorICAgICAgICAgICAgfC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tfCAgICAgICAgICBkaXJuYW1lCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwtLS0tLS18IGJhc2VuYW1lCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwtLXwgICAgIHB1cmViYXNlbmFtZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfC0tfCBleHQKKyAgICAgICAgIiIiCisgICAgICAgIHJl
cyA9IFtdCisgICAgICAgIHBhcnRzID0gc2VsZi5zdHJwYXRoLnNwbGl0KHNlbGYuc2VwKQorICAg
ICAgICBmb3IgbmFtZSBpbiBzcGVjLnNwbGl0KCcsJyk6CisgICAgICAgICAgICBuYW1lID0gbmFt
ZS5zdHJpcCgpCisgICAgICAgICAgICBpZiBuYW1lID09ICdkaXJuYW1lJzoKKyAgICAgICAgICAg
ICAgICByZXMuYXBwZW5kKHNlbGYuc2VwLmpvaW4ocGFydHNbOi0xXSkpCisgICAgICAgICAgICBl
bGlmIG5hbWUgPT0gJ2Jhc2VuYW1lJzoKKyAgICAgICAgICAgICAgICByZXMuYXBwZW5kKHBhcnRz
Wy0xXSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgYmFzZW5hbWUgPSBwYXJ0
c1stMV0KKyAgICAgICAgICAgICAgICBpID0gYmFzZW5hbWUucmZpbmQoJy4nKQorICAgICAgICAg
ICAgICAgIGlmIGkgPT0gLTE6CisgICAgICAgICAgICAgICAgICAgIHB1cmViYXNlbmFtZSwgZXh0
ID0gYmFzZW5hbWUsICcnCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAg
ICAgcHVyZWJhc2VuYW1lLCBleHQgPSBiYXNlbmFtZVs6aV0sIGJhc2VuYW1lW2k6XQorICAgICAg
ICAgICAgICAgIGlmIG5hbWUgPT0gJ3B1cmViYXNlbmFtZSc6CisgICAgICAgICAgICAgICAgICAg
IHJlcy5hcHBlbmQocHVyZWJhc2VuYW1lKQorICAgICAgICAgICAgICAgIGVsaWYgbmFtZSA9PSAn
ZXh0JzoKKyAgICAgICAgICAgICAgICAgICAgcmVzLmFwcGVuZChleHQpCisgICAgICAgICAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgTmFtZUVycm9yKCJEb24ndCBrbm93
IHBhcnQgJXIiICUgbmFtZSkKKyAgICAgICAgcmV0dXJuIHJlcworCisgICAgZGVmIF9fZXFfXyhz
ZWxmLCBvdGhlcik6CisgICAgICAgICIiIiByZXR1cm4gdHJ1ZSBpZiBwYXRoIGFuZCByZXYgYXR0
cmlidXRlcyBlYWNoIG1hdGNoICIiIgorICAgICAgICByZXR1cm4gKHN0cihzZWxmKSA9PSBzdHIo
b3RoZXIpIGFuZAorICAgICAgICAgICAgICAgKHNlbGYucmV2ID09IG90aGVyLnJldiBvciBzZWxm
LnJldiA9PSBvdGhlci5yZXYpKQorCisgICAgZGVmIF9fbmVfXyhzZWxmLCBvdGhlcik6CisgICAg
ICAgIHJldHVybiBub3Qgc2VsZiA9PSBvdGhlcgorCisgICAgZGVmIGpvaW4oc2VsZiwgKmFyZ3Mp
OgorICAgICAgICAiIiIgcmV0dXJuIGEgbmV3IFBhdGggKHdpdGggdGhlIHNhbWUgcmV2aXNpb24p
IHdoaWNoIGlzIGNvbXBvc2VkCisgICAgICAgICAgICBvZiB0aGUgc2VsZiBQYXRoIGZvbGxvd2Vk
IGJ5ICdhcmdzJyBwYXRoIGNvbXBvbmVudHMuCisgICAgICAgICIiIgorICAgICAgICBpZiBub3Qg
YXJnczoKKyAgICAgICAgICAgIHJldHVybiBzZWxmCisKKyAgICAgICAgYXJncyA9IHR1cGxlKFth
cmcuc3RyaXAoc2VsZi5zZXApIGZvciBhcmcgaW4gYXJnc10pCisgICAgICAgIHBhcnRzID0gKHNl
bGYuc3RycGF0aCwgKSArIGFyZ3MKKyAgICAgICAgbmV3cGF0aCA9IHNlbGYuX19jbGFzc19fKHNl
bGYuc2VwLmpvaW4ocGFydHMpLCBzZWxmLnJldiwgc2VsZi5hdXRoKQorICAgICAgICByZXR1cm4g
bmV3cGF0aAorCisgICAgZGVmIHByb3BnZXQoc2VsZiwgbmFtZSk6CisgICAgICAgICIiIiByZXR1
cm4gdGhlIGNvbnRlbnQgb2YgdGhlIGdpdmVuIHByb3BlcnR5LiAiIiIKKyAgICAgICAgdmFsdWUg
PSBzZWxmLl9wcm9wZ2V0KG5hbWUpCisgICAgICAgIHJldHVybiB2YWx1ZQorCisgICAgZGVmIHBy
b3BsaXN0KHNlbGYpOgorICAgICAgICAiIiIgbGlzdCBhbGwgcHJvcGVydHkgbmFtZXMuICIiIgor
ICAgICAgICBjb250ZW50ID0gc2VsZi5fcHJvcGxpc3QoKQorICAgICAgICByZXR1cm4gY29udGVu
dAorCisgICAgZGVmIHNpemUoc2VsZik6CisgICAgICAgICIiIiBSZXR1cm4gdGhlIHNpemUgb2Yg
dGhlIGZpbGUgY29udGVudCBvZiB0aGUgUGF0aC4gIiIiCisgICAgICAgIHJldHVybiBzZWxmLmlu
Zm8oKS5zaXplCisKKyAgICBkZWYgbXRpbWUoc2VsZik6CisgICAgICAgICIiIiBSZXR1cm4gdGhl
IGxhc3QgbW9kaWZpY2F0aW9uIHRpbWUgb2YgdGhlIGZpbGUuICIiIgorICAgICAgICByZXR1cm4g
c2VsZi5pbmZvKCkubXRpbWUKKworICAgICMgc2hhcmVkIGhlbHAgbWV0aG9kcworCisgICAgZGVm
IF9lc2NhcGUoc2VsZiwgY21kKToKKyAgICAgICAgcmV0dXJuIF9lc2NhcGVfaGVscGVyKGNtZCkK
KworCisgICAgI2RlZiBfY2hpbGRtYXhyZXYoc2VsZik6CisgICAgIyAgICAiIiIgcmV0dXJuIG1h
eGltdW0gcmV2aXNpb24gbnVtYmVyIG9mIGNoaWxkcyAob3Igc2VsZi5yZXYgaWYgbm8gY2hpbGRz
KSAiIiIKKyAgICAjICAgIHJldiA9IHNlbGYucmV2CisgICAgIyAgICBmb3IgbmFtZSwgaW5mbyBp
biBzZWxmLl9saXN0ZGlyX25hbWVpbmZvKCk6CisgICAgIyAgICAgICAgcmV2ID0gbWF4KHJldiwg
aW5mby5jcmVhdGVkX3JldikKKyAgICAjICAgIHJldHVybiByZXYKKworICAgICNkZWYgX2dldGxh
dGVzdHJldmlzaW9uKHNlbGYpOgorICAgICMgICAgIiIiIHJldHVybiBsYXRlc3QgcmVwby1yZXZp
c2lvbiBmb3IgdGhpcyBwYXRoLiAiIiIKKyAgICAjICAgIHVybCA9IHNlbGYuc3RycGF0aAorICAg
ICMgICAgcGF0aCA9IHNlbGYuX19jbGFzc19fKHVybCwgTm9uZSkKKyAgICAjCisgICAgIyAgICAj
IHdlIG5lZWQgYSBsb25nIHdhbGsgdG8gZmluZCB0aGUgcm9vdC1yZXBvIGFuZCByZXZpc2lvbgor
ICAgICMgICAgd2hpbGUgMToKKyAgICAjICAgICAgICB0cnk6CisgICAgIyAgICAgICAgICAgIHJl
diA9IG1heChyZXYsIHBhdGguX2NoaWxkbWF4cmV2KCkpCisgICAgIyAgICAgICAgICAgIHByZXZp
b3VzID0gcGF0aAorICAgICMgICAgICAgICAgICBwYXRoID0gcGF0aC5kaXJwYXRoKCkKKyAgICAj
ICAgICAgICBleGNlcHQgKElPRXJyb3IsIHByb2Nlc3MuY21kZXhlYy5FcnJvcik6CisgICAgIyAg
ICAgICAgICAgIGJyZWFrCisgICAgIyAgICBpZiByZXYgaXMgTm9uZToKKyAgICAjICAgICAgICBy
YWlzZSBJT0Vycm9yLCAiY291bGQgbm90IGRldGVybWluZSBuZXdlc3QgcmVwbyByZXZpc2lvbiBm
b3IgJXMiICUgc2VsZgorICAgICMgICAgcmV0dXJuIHJldgorCisgICAgY2xhc3MgQ2hlY2tlcnMo
Y29tbW9uLkNoZWNrZXJzKToKKyAgICAgICAgZGVmIGRpcihzZWxmKToKKyAgICAgICAgICAgIHRy
eToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5wYXRoLmluZm8oKS5raW5kID09ICdkaXIn
CisgICAgICAgICAgICBleGNlcHQgcHkuZXJyb3IuRXJyb3I6CisgICAgICAgICAgICAgICAgcmV0
dXJuIHNlbGYuX2xpc3RkaXJ3b3JrcygpCisKKyAgICAgICAgZGVmIF9saXN0ZGlyd29ya3Moc2Vs
Zik6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2VsZi5wYXRoLmxpc3RkaXIo
KQorICAgICAgICAgICAgZXhjZXB0IHB5LmVycm9yLkVOT0VOVDoKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRy
dWUKKworICAgICAgICBkZWYgZmlsZShzZWxmKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAg
ICAgICAgICByZXR1cm4gc2VsZi5wYXRoLmluZm8oKS5raW5kID09ICdmaWxlJworICAgICAgICAg
ICAgZXhjZXB0IHB5LmVycm9yLkVOT0VOVDoKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UK
KworICAgICAgICBkZWYgZXhpc3RzKHNlbGYpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgICAgIHJldHVybiBzZWxmLnBhdGguaW5mbygpCisgICAgICAgICAgICBleGNlcHQgcHkuZXJy
b3IuRU5PRU5UOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9saXN0ZGlyd29ya3MoKQor
CitkZWYgcGFyc2VfYXByX3RpbWUodGltZXN0cik6CisgICAgaSA9IHRpbWVzdHIucmZpbmQoJy4n
KQorICAgIGlmIGkgPT0gLTE6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImNvdWxkIG5vdCBw
YXJzZSAlcyIgJSB0aW1lc3RyKQorICAgIHRpbWVzdHIgPSB0aW1lc3RyWzppXQorICAgIHBhcnNl
ZHRpbWUgPSB0aW1lLnN0cnB0aW1lKHRpbWVzdHIsICIlWS0lbS0lZFQlSDolTTolUyIpCisgICAg
cmV0dXJuIHRpbWUubWt0aW1lKHBhcnNlZHRpbWUpCisKK2NsYXNzIFByb3BMaXN0RGljdChkaWN0
KToKKyAgICAiIiIgYSBEaWN0aW9uYXJ5IHdoaWNoIGZldGNoZXMgdmFsdWVzIChJbmZvU3ZuQ29t
bWFuZCBpbnN0YW5jZXMpIGxhemlseSIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXRoLCBr
ZXluYW1lcyk6CisgICAgICAgIGRpY3QuX19pbml0X18oc2VsZiwgWyh4LCBOb25lKSBmb3IgeCBp
biBrZXluYW1lc10pCisgICAgICAgIHNlbGYucGF0aCA9IHBhdGgKKworICAgIGRlZiBfX2dldGl0
ZW1fXyhzZWxmLCBrZXkpOgorICAgICAgICB2YWx1ZSA9IGRpY3QuX19nZXRpdGVtX18oc2VsZiwg
a2V5KQorICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgorICAgICAgICAgICAgdmFsdWUgPSBzZWxm
LnBhdGgucHJvcGdldChrZXkpCisgICAgICAgICAgICBkaWN0Ll9fc2V0aXRlbV9fKHNlbGYsIGtl
eSwgdmFsdWUpCisgICAgICAgIHJldHVybiB2YWx1ZQorCitkZWYgZml4bG9jYWxlKCk6CisgICAg
aWYgc3lzLnBsYXRmb3JtICE9ICd3aW4zMic6CisgICAgICAgIHJldHVybiAnTENfQUxMPUMgJwor
ICAgIHJldHVybiAnJworCisjIHNvbWUgbmFzdHkgY2h1bmsgb2YgY29kZSB0byBzb2x2ZSBwYXRo
IGFuZCB1cmwgY29udmVyc2lvbiBhbmQgcXVvdGluZyBpc3N1ZXMKK0lMTEVHQUxfQ0hBUlMgPSAn
KiB8IFxcIC8gOiA8ID4gPyBcdCBcbiBceDBiIFx4MGMgXHInLnNwbGl0KCcgJykKK2lmIG9zLnNl
cCBpbiBJTExFR0FMX0NIQVJTOgorICAgIElMTEVHQUxfQ0hBUlMucmVtb3ZlKG9zLnNlcCkKK0lT
V0lORE9XUyA9IHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInCitfcmVnX2FsbG93X2Rpc2sgPSByZS5j
b21waWxlKHInXihbYS16XVw6XFwpP1teOl0rJCcsIHJlLkkpCitkZWYgX2NoZWNrX3BhdGgocGF0
aCk6CisgICAgaWxsZWdhbCA9IElMTEVHQUxfQ0hBUlNbOl0KKyAgICBzcCA9IHBhdGguc3RycGF0
aAorICAgIGlmIElTV0lORE9XUzoKKyAgICAgICAgaWxsZWdhbC5yZW1vdmUoJzonKQorICAgICAg
ICBpZiBub3QgX3JlZ19hbGxvd19kaXNrLm1hdGNoKHNwKToKKyAgICAgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoJ3BhdGggbWF5IG5vdCBjb250YWluIGEgY29sb24gKDopJykKKyAgICBmb3IgY2hh
ciBpbiBzcDoKKyAgICAgICAgaWYgY2hhciBub3QgaW4gc3RyaW5nLnByaW50YWJsZSBvciBjaGFy
IGluIGlsbGVnYWw6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdpbGxlZ2FsIGNoYXJh
Y3RlciAlciBpbiBwYXRoJyAlIChjaGFyLCkpCisKK2RlZiBwYXRoX3RvX2ZzcGF0aChwYXRoLCBh
ZGRhdD1UcnVlKToKKyAgICBfY2hlY2tfcGF0aChwYXRoKQorICAgIHNwID0gcGF0aC5zdHJwYXRo
CisgICAgaWYgYWRkYXQgYW5kIHBhdGgucmV2ICE9IC0xOgorICAgICAgICBzcCA9ICclc0Alcycg
JSAoc3AsIHBhdGgucmV2KQorICAgIGVsaWYgYWRkYXQ6CisgICAgICAgIHNwID0gJyVzQEhFQUQn
ICUgKHNwLCkKKyAgICByZXR1cm4gc3AKKworZGVmIHVybF9mcm9tX3BhdGgocGF0aCk6CisgICAg
ZnNwYXRoID0gcGF0aF90b19mc3BhdGgocGF0aCwgRmFsc2UpCisgICAgZnJvbSB1cmxsaWIgaW1w
b3J0IHF1b3RlCisgICAgaWYgSVNXSU5ET1dTOgorICAgICAgICBtYXRjaCA9IF9yZWdfYWxsb3df
ZGlzay5tYXRjaChmc3BhdGgpCisgICAgICAgIGZzcGF0aCA9IGZzcGF0aC5yZXBsYWNlKCdcXCcs
ICcvJykKKyAgICAgICAgaWYgbWF0Y2guZ3JvdXAoMSk6CisgICAgICAgICAgICBmc3BhdGggPSAn
LyVzJXMnICUgKG1hdGNoLmdyb3VwKDEpLnJlcGxhY2UoJ1xcJywgJy8nKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcXVvdGUoZnNwYXRoW2xlbihtYXRjaC5ncm91cCgxKSk6XSkp
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmc3BhdGggPSBxdW90ZShmc3BhdGgpCisgICAg
ZWxzZToKKyAgICAgICAgZnNwYXRoID0gcXVvdGUoZnNwYXRoKQorICAgIGlmIHBhdGgucmV2ICE9
IC0xOgorICAgICAgICBmc3BhdGggPSAnJXNAJXMnICUgKGZzcGF0aCwgcGF0aC5yZXYpCisgICAg
ZWxzZToKKyAgICAgICAgZnNwYXRoID0gJyVzQEhFQUQnICUgKGZzcGF0aCwpCisgICAgcmV0dXJu
ICdmaWxlOi8vJXMnICUgKGZzcGF0aCwpCisKK2NsYXNzIFN2bkF1dGgob2JqZWN0KToKKyAgICAi
IiIgY29udGFpbmVyIGZvciBhdXRoIGluZm9ybWF0aW9uIGZvciBTdWJ2ZXJzaW9uICIiIgorICAg
IGRlZiBfX2luaXRfXyhzZWxmLCB1c2VybmFtZSwgcGFzc3dvcmQsIGNhY2hlX2F1dGg9VHJ1ZSwg
aW50ZXJhY3RpdmU9VHJ1ZSk6CisgICAgICAgIHNlbGYudXNlcm5hbWUgPSB1c2VybmFtZQorICAg
ICAgICBzZWxmLnBhc3N3b3JkID0gcGFzc3dvcmQKKyAgICAgICAgc2VsZi5jYWNoZV9hdXRoID0g
Y2FjaGVfYXV0aAorICAgICAgICBzZWxmLmludGVyYWN0aXZlID0gaW50ZXJhY3RpdmUKKworICAg
IGRlZiBtYWtlY21kb3B0aW9ucyhzZWxmKToKKyAgICAgICAgdW5hbWUgPSBzZWxmLnVzZXJuYW1l
LnJlcGxhY2UoJyInLCAnXFwiJykKKyAgICAgICAgcGFzc3dkID0gc2VsZi5wYXNzd29yZC5yZXBs
YWNlKCciJywgJ1xcIicpCisgICAgICAgIHJldCA9IFtdCisgICAgICAgIGlmIHVuYW1lOgorICAg
ICAgICAgICAgcmV0LmFwcGVuZCgnLS11c2VybmFtZT0iJXMiJyAlICh1bmFtZSwpKQorICAgICAg
ICBpZiBwYXNzd2Q6CisgICAgICAgICAgICByZXQuYXBwZW5kKCctLXBhc3N3b3JkPSIlcyInICUg
KHBhc3N3ZCwpKQorICAgICAgICBpZiBub3Qgc2VsZi5jYWNoZV9hdXRoOgorICAgICAgICAgICAg
cmV0LmFwcGVuZCgnLS1uby1hdXRoLWNhY2hlJykKKyAgICAgICAgaWYgbm90IHNlbGYuaW50ZXJh
Y3RpdmU6CisgICAgICAgICAgICByZXQuYXBwZW5kKCctLW5vbi1pbnRlcmFjdGl2ZScpCisgICAg
ICAgIHJldHVybiAnICcuam9pbihyZXQpCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAg
ICAgcmV0dXJuICI8U3ZuQXV0aCB1c2VybmFtZT0lcyAuLi4+IiAlKHNlbGYudXNlcm5hbWUsKQor
CityZXhfYmxhbWUgPSByZS5jb21waWxlKHInXHMqKFxkKylccyooXFMrKSAoLiopJykKKworY2xh
c3MgU3ZuV0NDb21tYW5kUGF0aChjb21tb24uUGF0aEJhc2UpOgorICAgICIiIiBwYXRoIGltcGxl
bWVudGF0aW9uIG9mZmVyaW5nIGFjY2Vzcy9tb2RpZmljYXRpb24gdG8gc3ZuIHdvcmtpbmcgY29w
aWVzLgorICAgICAgICBJdCBoYXMgbWV0aG9kcyBzaW1pbGFyIHRvIHRoZSBmdW5jdGlvbnMgaW4g
b3MucGF0aCBhbmQgc2ltaWxhciB0byB0aGUKKyAgICAgICAgY29tbWFuZHMgb2YgdGhlIHN2biBj
bGllbnQuCisgICAgIiIiCisgICAgc2VwID0gb3Muc2VwCisKKyAgICBkZWYgX19uZXdfXyhjbHMs
IHdjcGF0aD1Ob25lLCBhdXRoPU5vbmUpOgorICAgICAgICBzZWxmID0gb2JqZWN0Ll9fbmV3X18o
Y2xzKQorICAgICAgICBpZiBpc2luc3RhbmNlKHdjcGF0aCwgY2xzKToKKyAgICAgICAgICAgIGlm
IHdjcGF0aC5fX2NsYXNzX18gPT0gY2xzOgorICAgICAgICAgICAgICAgIHJldHVybiB3Y3BhdGgK
KyAgICAgICAgICAgIHdjcGF0aCA9IHdjcGF0aC5sb2NhbHBhdGgKKyAgICAgICAgaWYgX2NoZWNr
X2Zvcl9iYWRfY2hhcnMoc3RyKHdjcGF0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBBTExPV0VEX0NIQVJTKToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoImJhZCBjaGFyIGluIHdjcGF0aCAlcyIgJSAod2NwYXRoLCApKQorICAgICAgICBzZWxmLmxv
Y2FscGF0aCA9IHB5LnBhdGgubG9jYWwod2NwYXRoKQorICAgICAgICBzZWxmLmF1dGggPSBhdXRo
CisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBzdHJwYXRoID0gcHJvcGVydHkobGFtYmRhIHg6
IHN0cih4LmxvY2FscGF0aCksIE5vbmUsIE5vbmUsICJzdHJpbmcgcGF0aCIpCisgICAgcmV2ID0g
cHJvcGVydHkobGFtYmRhIHg6IHguaW5mbyh1c2VjYWNoZT0wKS5yZXYsIE5vbmUsIE5vbmUsICJy
ZXZpc2lvbiIpCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJu
IHNlbGYubG9jYWxwYXRoID09IGdldGF0dHIob3RoZXIsICdsb2NhbHBhdGgnLCBOb25lKQorCisg
ICAgZGVmIF9nZXR1cmwoc2VsZik6CisgICAgICAgIGlmIGdldGF0dHIoc2VsZiwgJ191cmwnLCBO
b25lKSBpcyBOb25lOgorICAgICAgICAgICAgaW5mbyA9IHNlbGYuaW5mbygpCisgICAgICAgICAg
ICBzZWxmLl91cmwgPSBpbmZvLnVybCAjU3ZuUGF0aChpbmZvLnVybCwgaW5mby5yZXYpCisgICAg
ICAgIGFzc2VydCBpc2luc3RhbmNlKHNlbGYuX3VybCwgcHkuYnVpbHRpbi5fYmFzZXN0cmluZykK
KyAgICAgICAgcmV0dXJuIHNlbGYuX3VybAorCisgICAgdXJsID0gcHJvcGVydHkoX2dldHVybCwg
Tm9uZSwgTm9uZSwgInVybCBvZiB0aGlzIFdDIGl0ZW0iKQorCisgICAgZGVmIF9lc2NhcGUoc2Vs
ZiwgY21kKToKKyAgICAgICAgcmV0dXJuIF9lc2NhcGVfaGVscGVyKGNtZCkKKworICAgIGRlZiBk
dW1wKHNlbGYsIG9iaik6CisgICAgICAgICIiIiBwaWNrbGUgb2JqZWN0IGludG8gcGF0aCBsb2Nh
dGlvbiIiIgorICAgICAgICByZXR1cm4gc2VsZi5sb2NhbHBhdGguZHVtcChvYmopCisKKyAgICBk
ZWYgc3ZudXJsKHNlbGYpOgorICAgICAgICAiIiIgcmV0dXJuIGN1cnJlbnQgU3ZuUGF0aCBmb3Ig
dGhpcyBXQy1pdGVtLiAiIiIKKyAgICAgICAgaW5mbyA9IHNlbGYuaW5mbygpCisgICAgICAgIHJl
dHVybiBweS5wYXRoLnN2bnVybChpbmZvLnVybCkKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToK
KyAgICAgICAgcmV0dXJuICJzdm53YyglcikiICUgKHNlbGYuc3RycGF0aCkgIyAsIHNlbGYuX3Vy
bCkKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc3RyKHNlbGYubG9j
YWxwYXRoKQorCisgICAgZGVmIF9tYWtlYXV0aG9wdGlvbnMoc2VsZik6CisgICAgICAgIGlmIHNl
bGYuYXV0aCBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuICcnCisgICAgICAgIHJldHVybiBz
ZWxmLmF1dGgubWFrZWNtZG9wdGlvbnMoKQorCisgICAgZGVmIF9hdXRoc3ZuKHNlbGYsIGNtZCwg
YXJncz1Ob25lKToKKyAgICAgICAgYXJncyA9IGFyZ3MgYW5kIGxpc3QoYXJncykgb3IgW10KKyAg
ICAgICAgYXJncy5hcHBlbmQoc2VsZi5fbWFrZWF1dGhvcHRpb25zKCkpCisgICAgICAgIHJldHVy
biBzZWxmLl9zdm4oY21kLCAqYXJncykKKworICAgIGRlZiBfc3ZuKHNlbGYsIGNtZCwgKmFyZ3Mp
OgorICAgICAgICBsID0gWydzdm4gJXMnICUgY21kXQorICAgICAgICBhcmdzID0gW3NlbGYuX2Vz
Y2FwZShpdGVtKSBmb3IgaXRlbSBpbiBhcmdzXQorICAgICAgICBsLmV4dGVuZChhcmdzKQorICAg
ICAgICBsLmFwcGVuZCgnIiVzIicgJSBzZWxmLl9lc2NhcGUoc2VsZi5zdHJwYXRoKSkKKyAgICAg
ICAgIyB0cnkgZml4aW5nIHRoZSBsb2NhbGUgYmVjYXVzZSB3ZSBjYW4ndCBvdGhlcndpc2UgcGFy
c2UKKyAgICAgICAgc3RyaW5nID0gZml4bG9jYWxlKCkgKyAiICIuam9pbihsKQorICAgICAgICB0
cnk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAga2V5ID0gJ0xDX01FU1NBR0VT
JworICAgICAgICAgICAgICAgIGhvbGQgPSBvcy5lbnZpcm9uLmdldChrZXkpCisgICAgICAgICAg
ICAgICAgb3MuZW52aXJvbltrZXldID0gJ0MnCisgICAgICAgICAgICAgICAgb3V0ID0gcHkucHJv
Y2Vzcy5jbWRleGVjKHN0cmluZykKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAg
ICAgaWYgaG9sZDoKKyAgICAgICAgICAgICAgICAgICAgb3MuZW52aXJvbltrZXldID0gaG9sZAor
ICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGRlbCBvcy5lbnZpcm9u
W2tleV0KKyAgICAgICAgZXhjZXB0IHB5LnByb2Nlc3MuY21kZXhlYy5FcnJvcjoKKyAgICAgICAg
ICAgIGUgPSBzeXMuZXhjX2luZm8oKVsxXQorICAgICAgICAgICAgc3RyZXJyID0gZS5lcnIubG93
ZXIoKQorICAgICAgICAgICAgaWYgc3RyZXJyLmZpbmQoJ25vdCBmb3VuZCcpICE9IC0xOgorICAg
ICAgICAgICAgICAgIHJhaXNlIHB5LmVycm9yLkVOT0VOVChzZWxmKQorICAgICAgICAgICAgZWxp
ZiBzdHJlcnIuZmluZCgiRTIwMDAwOToiKSAhPSAtMToKKyAgICAgICAgICAgICAgICByYWlzZSBw
eS5lcnJvci5FTk9FTlQoc2VsZikKKyAgICAgICAgICAgIGlmIChzdHJlcnIuZmluZCgnZmlsZSBl
eGlzdHMnKSAhPSAtMSBvcgorICAgICAgICAgICAgICAgIHN0cmVyci5maW5kKCdmaWxlIGFscmVh
ZHkgZXhpc3RzJykgIT0gLTEgb3IKKyAgICAgICAgICAgICAgICBzdHJlcnIuZmluZCgndzE1MDAw
MjonKSAhPSAtMSBvcgorICAgICAgICAgICAgICAgIHN0cmVyci5maW5kKCJjYW4ndCBjcmVhdGUg
ZGlyZWN0b3J5IikgIT0gLTEpOgorICAgICAgICAgICAgICAgIHJhaXNlIHB5LmVycm9yLkVFWElT
VChzdHJlcnIpICNzZWxmKQorICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgcmV0dXJuIG91dAor
CisgICAgZGVmIHN3aXRjaChzZWxmLCB1cmwpOgorICAgICAgICAiIiIgc3dpdGNoIHRvIGdpdmVu
IFVSTC4gIiIiCisgICAgICAgIHNlbGYuX2F1dGhzdm4oJ3N3aXRjaCcsIFt1cmxdKQorCisgICAg
ZGVmIGNoZWNrb3V0KHNlbGYsIHVybD1Ob25lLCByZXY9Tm9uZSk6CisgICAgICAgICIiIiBjaGVj
a291dCBmcm9tIHVybCB0byBsb2NhbCB3Y3BhdGguICIiIgorICAgICAgICBhcmdzID0gW10KKyAg
ICAgICAgaWYgdXJsIGlzIE5vbmU6CisgICAgICAgICAgICB1cmwgPSBzZWxmLnVybAorICAgICAg
ICBpZiByZXYgaXMgTm9uZSBvciByZXYgPT0gLTE6CisgICAgICAgICAgICBpZiAoc3lzLnBsYXRm
b3JtICE9ICd3aW4zMicgYW5kCisgICAgICAgICAgICAgICAgICAgIF9nZXRzdm52ZXJzaW9uKCkg
PT0gJzEuMycpOgorICAgICAgICAgICAgICAgIHVybCArPSAiQEhFQUQiCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBpZiBfZ2V0c3ZudmVyc2lvbigpID09ICcxLjMnOgorICAgICAgICAgICAg
ICAgIHVybCArPSAiQCVkIiAlIHJldgorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICBhcmdzLmFwcGVuZCgnLXInICsgc3RyKHJldikpCisgICAgICAgIGFyZ3MuYXBwZW5kKHVybCkK
KyAgICAgICAgc2VsZi5fYXV0aHN2bignY28nLCBhcmdzKQorCisgICAgZGVmIHVwZGF0ZShzZWxm
LCByZXY9J0hFQUQnLCBpbnRlcmFjdGl2ZT1UcnVlKToKKyAgICAgICAgIiIiIHVwZGF0ZSB3b3Jr
aW5nIGNvcHkgaXRlbSB0byBnaXZlbiByZXZpc2lvbi4gKE5vbmUgLT4gSEVBRCkuICIiIgorICAg
ICAgICBvcHRzID0gWyctcicsIHJldl0KKyAgICAgICAgaWYgbm90IGludGVyYWN0aXZlOgorICAg
ICAgICAgICAgb3B0cy5hcHBlbmQoIi0tbm9uLWludGVyYWN0aXZlIikKKyAgICAgICAgc2VsZi5f
YXV0aHN2bigndXAnLCBvcHRzKQorCisgICAgZGVmIHdyaXRlKHNlbGYsIGNvbnRlbnQsIG1vZGU9
J3cnKToKKyAgICAgICAgIiIiIHdyaXRlIGNvbnRlbnQgaW50byBsb2NhbCBmaWxlc3lzdGVtIHdj
LiAiIiIKKyAgICAgICAgc2VsZi5sb2NhbHBhdGgud3JpdGUoY29udGVudCwgbW9kZSkKKworICAg
IGRlZiBkaXJwYXRoKHNlbGYsICphcmdzKToKKyAgICAgICAgIiIiIHJldHVybiB0aGUgZGlyZWN0
b3J5IFBhdGggb2YgdGhlIGN1cnJlbnQgUGF0aC4gIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9f
Y2xhc3NfXyhzZWxmLmxvY2FscGF0aC5kaXJwYXRoKCphcmdzKSwgYXV0aD1zZWxmLmF1dGgpCisK
KyAgICBkZWYgX2Vuc3VyZWRpcnMoc2VsZik6CisgICAgICAgIHBhcmVudCA9IHNlbGYuZGlycGF0
aCgpCisgICAgICAgIGlmIHBhcmVudC5jaGVjayhkaXI9MCk6CisgICAgICAgICAgICBwYXJlbnQu
X2Vuc3VyZWRpcnMoKQorICAgICAgICBpZiBzZWxmLmNoZWNrKGRpcj0wKToKKyAgICAgICAgICAg
IHNlbGYubWtkaXIoKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIGVuc3VyZShzZWxm
LCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiIgZW5zdXJlIHRoYXQgYW4gYXJncy1qb2lu
ZWQgcGF0aCBleGlzdHMgKGJ5IGRlZmF1bHQgYXMKKyAgICAgICAgICAgIGEgZmlsZSkuIGlmIHlv
dSBzcGVjaWZ5IGEga2V5d29yZCBhcmd1bWVudCAnZGlyZWN0b3J5PVRydWUnCisgICAgICAgICAg
ICB0aGVuIHRoZSBwYXRoIGlzIGZvcmNlZCAgdG8gYmUgYSBkaXJlY3RvcnkgcGF0aC4KKyAgICAg
ICAgIiIiCisgICAgICAgIHAgPSBzZWxmLmpvaW4oKmFyZ3MpCisgICAgICAgIGlmIHAuY2hlY2so
KToKKyAgICAgICAgICAgIGlmIHAuY2hlY2sodmVyc2lvbmVkPUZhbHNlKToKKyAgICAgICAgICAg
ICAgICBwLmFkZCgpCisgICAgICAgICAgICByZXR1cm4gcAorICAgICAgICBpZiBrd2FyZ3MuZ2V0
KCdkaXInLCAwKToKKyAgICAgICAgICAgIHJldHVybiBwLl9lbnN1cmVkaXJzKCkKKyAgICAgICAg
cGFyZW50ID0gcC5kaXJwYXRoKCkKKyAgICAgICAgcGFyZW50Ll9lbnN1cmVkaXJzKCkKKyAgICAg
ICAgcC53cml0ZSgiIikKKyAgICAgICAgcC5hZGQoKQorICAgICAgICByZXR1cm4gcAorCisgICAg
ZGVmIG1rZGlyKHNlbGYsICphcmdzKToKKyAgICAgICAgIiIiIGNyZWF0ZSAmIHJldHVybiB0aGUg
ZGlyZWN0b3J5IGpvaW5lZCB3aXRoIGFyZ3MuICIiIgorICAgICAgICBpZiBhcmdzOgorICAgICAg
ICAgICAgcmV0dXJuIHNlbGYuam9pbigqYXJncykubWtkaXIoKQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgc2VsZi5fc3ZuKCdta2RpcicpCisgICAgICAgICAgICByZXR1cm4gc2VsZgorCisg
ICAgZGVmIGFkZChzZWxmKToKKyAgICAgICAgIiIiIGFkZCBvdXJzZWxmIHRvIHN2biAiIiIKKyAg
ICAgICAgc2VsZi5fc3ZuKCdhZGQnKQorCisgICAgZGVmIHJlbW92ZShzZWxmLCByZWM9MSwgZm9y
Y2U9MSk6CisgICAgICAgICIiIiByZW1vdmUgYSBmaWxlIG9yIGEgZGlyZWN0b3J5IHRyZWUuICdy
ZWMndXJzaXZlIGlzCisgICAgICAgICAgICBpZ25vcmVkIGFuZCBjb25zaWRlcmVkIGFsd2F5cyB0
cnVlIChiZWNhdXNlIG9mCisgICAgICAgICAgICB1bmRlcmx5aW5nIHN2biBzZW1hbnRpY3MuCisg
ICAgICAgICIiIgorICAgICAgICBhc3NlcnQgcmVjLCAic3ZuIGNhbm5vdCByZW1vdmUgbm9uLXJl
Y3Vyc2l2ZWx5IgorICAgICAgICBpZiBub3Qgc2VsZi5jaGVjayh2ZXJzaW9uZWQ9VHJ1ZSk6Cisg
ICAgICAgICAgICAjIG5vdCBhZGRlZCB0byBzdm4gKGFueW1vcmU/KSwganVzdCByZW1vdmUKKyAg
ICAgICAgICAgIHB5LnBhdGgubG9jYWwoc2VsZikucmVtb3ZlKCkKKyAgICAgICAgICAgIHJldHVy
bgorICAgICAgICBmbGFncyA9IFtdCisgICAgICAgIGlmIGZvcmNlOgorICAgICAgICAgICAgZmxh
Z3MuYXBwZW5kKCctLWZvcmNlJykKKyAgICAgICAgc2VsZi5fc3ZuKCdyZW1vdmUnLCAqZmxhZ3Mp
CisKKyAgICBkZWYgY29weShzZWxmLCB0YXJnZXQpOgorICAgICAgICAiIiIgY29weSBwYXRoIHRv
IHRhcmdldC4iIiIKKyAgICAgICAgcHkucHJvY2Vzcy5jbWRleGVjKCJzdm4gY29weSAlcyAlcyIg
JShzdHIoc2VsZiksIHN0cih0YXJnZXQpKSkKKworICAgIGRlZiByZW5hbWUoc2VsZiwgdGFyZ2V0
KToKKyAgICAgICAgIiIiIHJlbmFtZSB0aGlzIHBhdGggdG8gdGFyZ2V0LiAiIiIKKyAgICAgICAg
cHkucHJvY2Vzcy5jbWRleGVjKCJzdm4gbW92ZSAtLWZvcmNlICVzICVzIiAlKHN0cihzZWxmKSwg
c3RyKHRhcmdldCkpKQorCisgICAgZGVmIGxvY2soc2VsZik6CisgICAgICAgICIiIiBzZXQgYSBs
b2NrIChleGNsdXNpdmUpIG9uIHRoZSByZXNvdXJjZSAiIiIKKyAgICAgICAgb3V0ID0gc2VsZi5f
YXV0aHN2bignbG9jaycpLnN0cmlwKCkKKyAgICAgICAgaWYgbm90IG91dDoKKyAgICAgICAgICAg
ICMgd2FybmluZyBvciBlcnJvciwgcmFpc2UgZXhjZXB0aW9uCisgICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKCJ1bmtub3duIGVycm9yIGluIHN2biBsb2NrIGNvbW1hbmQiKQorCisgICAgZGVm
IHVubG9jayhzZWxmKToKKyAgICAgICAgIiIiIHVuc2V0IGEgcHJldmlvdXNseSBzZXQgbG9jayAi
IiIKKyAgICAgICAgb3V0ID0gc2VsZi5fYXV0aHN2bigndW5sb2NrJykuc3RyaXAoKQorICAgICAg
ICBpZiBvdXQuc3RhcnRzd2l0aCgnc3ZuOicpOgorICAgICAgICAgICAgIyB3YXJuaW5nIG9yIGVy
cm9yLCByYWlzZSBleGNlcHRpb24KKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbihvdXRbNDpd
KQorCisgICAgZGVmIGNsZWFudXAoc2VsZik6CisgICAgICAgICIiIiByZW1vdmUgYW55IGxvY2tz
IGZyb20gdGhlIHJlc291cmNlICIiIgorICAgICAgICAjIFhYWCBzaG91bGQgYmUgZml4ZWQgcHJv
cGVybHkhISEKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi51bmxvY2soKQorICAgICAg
ICBleGNlcHQ6CisgICAgICAgICAgICBwYXNzCisKKyAgICBkZWYgc3RhdHVzKHNlbGYsIHVwZGF0
ZXM9MCwgcmVjPTAsIGV4dGVybmFscz0wKToKKyAgICAgICAgIiIiIHJldHVybiAoY29sbGVjdGl2
ZSkgU3RhdHVzIG9iamVjdCBmb3IgdGhpcyBmaWxlLiAiIiIKKyAgICAgICAgIyBodHRwOi8vc3Zu
Ym9vay5yZWQtYmVhbi5jb20vYm9vay5odG1sI3N2bi1jaC0zLXNlY3QtNC4zLjEKKyAgICAgICAg
IyAgICAgICAgICAgICAyMjAxICAgICAyMTkyICAgICAgICBqdW0gICB0ZXN0CisgICAgICAgICMg
WFhYCisgICAgICAgIGlmIGV4dGVybmFsczoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
IlhYWCBjYW5ub3QgcGVyZm9ybSBzdGF0dXMoKSAiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJvbiBleHRlcm5hbCBpdGVtcyB5ZXQiKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
IzEuMiBzdXBwb3J0czogZXh0ZXJuYWxzID0gJy0taWdub3JlLWV4dGVybmFscycKKyAgICAgICAg
ICAgIGV4dGVybmFscyA9ICcnCisgICAgICAgIGlmIHJlYzoKKyAgICAgICAgICAgIHJlYz0gJycK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJlYyA9ICctLW5vbi1yZWN1cnNpdmUnCisKKyAg
ICAgICAgIyBYWFggZG9lcyBub3Qgd29yayBvbiBhbGwgc3VidmVyc2lvbiB2ZXJzaW9ucworICAg
ICAgICAjaWYgbm90IGV4dGVybmFsczoKKyAgICAgICAgIyAgICBleHRlcm5hbHMgPSAnLS1pZ25v
cmUtZXh0ZXJuYWxzJworCisgICAgICAgIGlmIHVwZGF0ZXM6CisgICAgICAgICAgICB1cGRhdGVz
ID0gJy11JworICAgICAgICBlbHNlOgorICAgICAgICAgICAgdXBkYXRlcyA9ICcnCisKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgY21kID0gJ3N0YXR1cyAtdiAtLXhtbCAtLW5vLWlnbm9yZSAl
cyAlcyAlcycgJSAoCisgICAgICAgICAgICAgICAgICAgIHVwZGF0ZXMsIHJlYywgZXh0ZXJuYWxz
KQorICAgICAgICAgICAgb3V0ID0gc2VsZi5fYXV0aHN2bihjbWQpCisgICAgICAgIGV4Y2VwdCBw
eS5wcm9jZXNzLmNtZGV4ZWMuRXJyb3I6CisgICAgICAgICAgICBjbWQgPSAnc3RhdHVzIC12IC0t
bm8taWdub3JlICVzICVzICVzJyAlICgKKyAgICAgICAgICAgICAgICAgICAgdXBkYXRlcywgcmVj
LCBleHRlcm5hbHMpCisgICAgICAgICAgICBvdXQgPSBzZWxmLl9hdXRoc3ZuKGNtZCkKKyAgICAg
ICAgICAgIHJvb3RzdGF0dXMgPSBXQ1N0YXR1cyhzZWxmKS5mcm9tc3RyaW5nKG91dCwgc2VsZikK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJvb3RzdGF0dXMgPSBYTUxXQ1N0YXR1cyhzZWxm
KS5mcm9tc3RyaW5nKG91dCwgc2VsZikKKyAgICAgICAgcmV0dXJuIHJvb3RzdGF0dXMKKworICAg
IGRlZiBkaWZmKHNlbGYsIHJldj1Ob25lKToKKyAgICAgICAgIiIiIHJldHVybiBhIGRpZmYgb2Yg
dGhlIGN1cnJlbnQgcGF0aCBhZ2FpbnN0IHJldmlzaW9uIHJldiAoZGVmYXVsdGluZworICAgICAg
ICAgICAgdG8gdGhlIGxhc3Qgb25lKS4KKyAgICAgICAgIiIiCisgICAgICAgIGFyZ3MgPSBbXQor
ICAgICAgICBpZiByZXYgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLXIg
JWQiICUgcmV2KQorICAgICAgICBvdXQgPSBzZWxmLl9hdXRoc3ZuKCdkaWZmJywgYXJncykKKyAg
ICAgICAgcmV0dXJuIG91dAorCisgICAgZGVmIGJsYW1lKHNlbGYpOgorICAgICAgICAiIiIgcmV0
dXJuIGEgbGlzdCBvZiB0dXBsZXMgb2YgdGhyZWUgZWxlbWVudHM6CisgICAgICAgICAgICAocmV2
aXNpb24sIGNvbW1pdGVyLCBsaW5lKQorICAgICAgICAiIiIKKyAgICAgICAgb3V0ID0gc2VsZi5f
c3ZuKCdibGFtZScpCisgICAgICAgIHJlc3VsdCA9IFtdCisgICAgICAgIGJsYW1lbGluZXMgPSBv
dXQuc3BsaXRsaW5lcygpCisgICAgICAgIHJlYWxsaW5lcyA9IHB5LnBhdGguc3ZudXJsKHNlbGYu
dXJsKS5yZWFkbGluZXMoKQorICAgICAgICBmb3IgaSwgKGJsYW1lbGluZSwgbGluZSkgaW4gZW51
bWVyYXRlKAorICAgICAgICAgICAgICAgIHppcChibGFtZWxpbmVzLCByZWFsbGluZXMpKToKKyAg
ICAgICAgICAgIG0gPSByZXhfYmxhbWUubWF0Y2goYmxhbWVsaW5lKQorICAgICAgICAgICAgaWYg
bm90IG06CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigib3V0cHV0IGxpbmUgJXIg
b2Ygc3ZuIGJsYW1lIGRvZXMgbm90IG1hdGNoICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJleHBlY3RlZCBmb3JtYXQiICUgKGxpbmUsICkpCisgICAgICAgICAgICByZXYsIG5h
bWUsIF8gPSBtLmdyb3VwcygpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKChpbnQocmV2KSwg
bmFtZSwgbGluZSkpCisgICAgICAgIHJldHVybiByZXN1bHQKKworICAgIF9yZXhfY29tbWl0ID0g
cmUuY29tcGlsZShyJy4qQ29tbWl0dGVkIHJldmlzaW9uIChcZCspXC4kJywgcmUuRE9UQUxMKQor
ICAgIGRlZiBjb21taXQoc2VsZiwgbXNnPScnLCByZWM9MSk6CisgICAgICAgICIiIiBjb21taXQg
d2l0aCBzdXBwb3J0IGZvciBub24tcmVjdXJzaXZlIGNvbW1pdHMgIiIiCisgICAgICAgICMgWFhY
IGkgZ3Vlc3MgZXNjYXBpbmcgc2hvdWxkIGJlIGRvbmUgYmV0dGVyIGhlcmU/IT8KKyAgICAgICAg
Y21kID0gJ2NvbW1pdCAtbSAiJXMiIC0tZm9yY2UtbG9nJyAlIChtc2cucmVwbGFjZSgnIicsICdc
XCInKSwpCisgICAgICAgIGlmIG5vdCByZWM6CisgICAgICAgICAgICBjbWQgKz0gJyAtTicKKyAg
ICAgICAgb3V0ID0gc2VsZi5fYXV0aHN2bihjbWQpCisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IGRlbCBjYWNoZS5pbmZvW3NlbGZdCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAg
ICAgIHBhc3MKKyAgICAgICAgaWYgb3V0OgorICAgICAgICAgICAgbSA9IHNlbGYuX3JleF9jb21t
aXQubWF0Y2gob3V0KQorICAgICAgICAgICAgcmV0dXJuIGludChtLmdyb3VwKDEpKQorCisgICAg
ZGVmIHByb3BzZXQoc2VsZiwgbmFtZSwgdmFsdWUsICphcmdzKToKKyAgICAgICAgIiIiIHNldCBw
cm9wZXJ0eSBuYW1lIHRvIHZhbHVlIG9uIHRoaXMgcGF0aC4gIiIiCisgICAgICAgIGQgPSBweS5w
YXRoLmxvY2FsLm1rZHRlbXAoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBwID0gZC5qb2lu
KCd2YWx1ZScpCisgICAgICAgICAgICBwLndyaXRlKHZhbHVlKQorICAgICAgICAgICAgc2VsZi5f
c3ZuKCdwcm9wc2V0JywgbmFtZSwgJy0tZmlsZScsIHN0cihwKSwgKmFyZ3MpCisgICAgICAgIGZp
bmFsbHk6CisgICAgICAgICAgICBkLnJlbW92ZSgpCisKKyAgICBkZWYgcHJvcGdldChzZWxmLCBu
YW1lKToKKyAgICAgICAgIiIiIGdldCBwcm9wZXJ0eSBuYW1lIG9uIHRoaXMgcGF0aC4gIiIiCisg
ICAgICAgIHJlcyA9IHNlbGYuX3N2bigncHJvcGdldCcsIG5hbWUpCisgICAgICAgIHJldHVybiBy
ZXNbOi0xXSAjIHN0cmlwIHRyYWlsaW5nIG5ld2xpbmUKKworICAgIGRlZiBwcm9wZGVsKHNlbGYs
IG5hbWUpOgorICAgICAgICAiIiIgZGVsZXRlIHByb3BlcnR5IG5hbWUgb24gdGhpcyBwYXRoLiAi
IiIKKyAgICAgICAgcmVzID0gc2VsZi5fc3ZuKCdwcm9wZGVsJywgbmFtZSkKKyAgICAgICAgcmV0
dXJuIHJlc1s6LTFdICMgc3RyaXAgdHJhaWxpbmcgbmV3bGluZQorCisgICAgZGVmIHByb3BsaXN0
KHNlbGYsIHJlYz0wKToKKyAgICAgICAgIiIiIHJldHVybiBhIG1hcHBpbmcgb2YgcHJvcGVydHkg
bmFtZXMgdG8gcHJvcGVydHkgdmFsdWVzLgorSWYgcmVjIGlzIFRydWUsIHRoZW4gcmV0dXJuIGEg
ZGljdGlvbmFyeSBtYXBwaW5nIHN1Yi1wYXRocyB0byBzdWNoIG1hcHBpbmdzLgorIiIiCisgICAg
ICAgIGlmIHJlYzoKKyAgICAgICAgICAgIHJlcyA9IHNlbGYuX3N2bigncHJvcGxpc3QgLVInKQor
ICAgICAgICAgICAgcmV0dXJuIG1ha2VfcmVjdXJzaXZlX3Byb3BkaWN0KHNlbGYsIHJlcykKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIHJlcyA9IHNlbGYuX3N2bigncHJvcGxpc3QnKQorICAg
ICAgICAgICAgbGluZXMgPSByZXMuc3BsaXQoJ1xuJykKKyAgICAgICAgICAgIGxpbmVzID0gW3gu
c3RyaXAoKSBmb3IgeCBpbiBsaW5lc1sxOl1dCisgICAgICAgICAgICByZXR1cm4gUHJvcExpc3RE
aWN0KHNlbGYsIGxpbmVzKQorCisgICAgZGVmIHJldmVydChzZWxmLCByZWM9MCk6CisgICAgICAg
ICIiIiByZXZlcnQgdGhlIGxvY2FsIGNoYW5nZXMgb2YgdGhpcyBwYXRoLiBpZiByZWMgaXMgVHJ1
ZSwgZG8gc28KK3JlY3Vyc2l2ZWx5LiAiIiIKKyAgICAgICAgaWYgcmVjOgorICAgICAgICAgICAg
cmVzdWx0ID0gc2VsZi5fc3ZuKCdyZXZlcnQgLVInKQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgcmVzdWx0ID0gc2VsZi5fc3ZuKCdyZXZlcnQnKQorICAgICAgICByZXR1cm4gcmVzdWx0CisK
KyAgICBkZWYgbmV3KHNlbGYsICoqa3cpOgorICAgICAgICAiIiIgY3JlYXRlIGEgbW9kaWZpZWQg
dmVyc2lvbiBvZiB0aGlzIHBhdGguIEEgJ3JldicgYXJndW1lbnQKKyAgICAgICAgICAgIGluZGlj
YXRlcyBhIG5ldyByZXZpc2lvbi4KKyAgICAgICAgICAgIHRoZSBmb2xsb3dpbmcga2V5d29yZCBh
cmd1bWVudHMgbW9kaWZ5IHZhcmlvdXMgcGF0aCBwYXJ0czoKKworICAgICAgICAgICAgICBodHRw
Oi8vaG9zdC5jb20vcmVwby9wYXRoL2ZpbGUuZXh0CisgICAgICAgICAgICAgIHwtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLXwgICAgICAgICAgZGlybmFtZQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwtLS0tLS18IGJhc2VuYW1lCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfC0tfCAgICAgcHVyZWJhc2VuYW1lCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwtLXwgZXh0CisgICAgICAgICIiIgorICAgICAg
ICBpZiBrdzoKKyAgICAgICAgICAgIGxvY2FscGF0aCA9IHNlbGYubG9jYWxwYXRoLm5ldygqKmt3
KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbG9jYWxwYXRoID0gc2VsZi5sb2NhbHBhdGgK
KyAgICAgICAgcmV0dXJuIHNlbGYuX19jbGFzc19fKGxvY2FscGF0aCwgYXV0aD1zZWxmLmF1dGgp
CisKKyAgICBkZWYgam9pbihzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiIgcmV0
dXJuIGEgbmV3IFBhdGggKHdpdGggdGhlIHNhbWUgcmV2aXNpb24pIHdoaWNoIGlzIGNvbXBvc2Vk
CisgICAgICAgICAgICBvZiB0aGUgc2VsZiBQYXRoIGZvbGxvd2VkIGJ5ICdhcmdzJyBwYXRoIGNv
bXBvbmVudHMuCisgICAgICAgICIiIgorICAgICAgICBpZiBub3QgYXJnczoKKyAgICAgICAgICAg
IHJldHVybiBzZWxmCisgICAgICAgIGxvY2FscGF0aCA9IHNlbGYubG9jYWxwYXRoLmpvaW4oKmFy
Z3MsICoqa3dhcmdzKQorICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18obG9jYWxwYXRoLCBh
dXRoPXNlbGYuYXV0aCkKKworICAgIGRlZiBpbmZvKHNlbGYsIHVzZWNhY2hlPTEpOgorICAgICAg
ICAiIiIgcmV0dXJuIGFuIEluZm8gc3RydWN0dXJlIHdpdGggc3ZuLXByb3ZpZGVkIGluZm9ybWF0
aW9uLiAiIiIKKyAgICAgICAgaW5mbyA9IHVzZWNhY2hlIGFuZCBjYWNoZS5pbmZvLmdldChzZWxm
KQorICAgICAgICBpZiBub3QgaW5mbzoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAg
ICBvdXRwdXQgPSBzZWxmLl9zdm4oJ2luZm8nKQorICAgICAgICAgICAgZXhjZXB0IHB5LnByb2Nl
c3MuY21kZXhlYy5FcnJvcjoKKyAgICAgICAgICAgICAgICBlID0gc3lzLmV4Y19pbmZvKClbMV0K
KyAgICAgICAgICAgICAgICBpZiBlLmVyci5maW5kKCdQYXRoIGlzIG5vdCBhIHdvcmtpbmcgY29w
eSBkaXJlY3RvcnknKSAhPSAtMToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgcHkuZXJyb3Iu
RU5PRU5UKHNlbGYsIGUuZXJyKQorICAgICAgICAgICAgICAgIGVsaWYgZS5lcnIuZmluZCgiaXMg
bm90IHVuZGVyIHZlcnNpb24gY29udHJvbCIpICE9IC0xOgorICAgICAgICAgICAgICAgICAgICBy
YWlzZSBweS5lcnJvci5FTk9FTlQoc2VsZiwgZS5lcnIpCisgICAgICAgICAgICAgICAgcmFpc2UK
KyAgICAgICAgICAgICMgWFhYIFNWTiAxLjMgaGFzIG91dHB1dCBvbiBzdGRlcnIgaW5zdGVhZCBv
ZiBzdGRvdXQgKHdoaWxlIGl0IGRvZXMKKyAgICAgICAgICAgICMgcmV0dXJuIDAhKSwgc28gYSBi
aXQgbmFzdHksIGJ1dCB3ZSBhc3N1bWUgbm8gb3V0cHV0IGlzIG91dHB1dAorICAgICAgICAgICAg
IyB0byBzdGRlcnIuLi4KKyAgICAgICAgICAgIGlmIChvdXRwdXQuc3RyaXAoKSA9PSAnJyBvcgor
ICAgICAgICAgICAgICAgICAgICBvdXRwdXQubG93ZXIoKS5maW5kKCdub3QgYSB2ZXJzaW9uZWQg
cmVzb3VyY2UnKSAhPSAtMSk6CisgICAgICAgICAgICAgICAgcmFpc2UgcHkuZXJyb3IuRU5PRU5U
KHNlbGYsIG91dHB1dCkKKyAgICAgICAgICAgIGluZm8gPSBJbmZvU3ZuV0NDb21tYW5kKG91dHB1
dCkKKworICAgICAgICAgICAgIyBDYW4ndCByZWxpYWJseSBjb21wYXJlIG9uIFdpbmRvd3Mgd2l0
aG91dCBhY2Nlc3MgdG8gd2luMzJhcGkKKyAgICAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSAhPSAn
d2luMzInOgorICAgICAgICAgICAgICAgIGlmIGluZm8ucGF0aCAhPSBzZWxmLmxvY2FscGF0aDoK
KyAgICAgICAgICAgICAgICAgICAgcmFpc2UgcHkuZXJyb3IuRU5PRU5UKHNlbGYsICJub3QgYSB2
ZXJzaW9uZWQgcmVzb3VyY2U6IiArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAlcyAh
PSAlcyIgJSAoaW5mby5wYXRoLCBzZWxmLmxvY2FscGF0aCkpCisgICAgICAgICAgICBjYWNoZS5p
bmZvW3NlbGZdID0gaW5mbworICAgICAgICByZXR1cm4gaW5mbworCisgICAgZGVmIGxpc3RkaXIo
c2VsZiwgZmlsPU5vbmUsIHNvcnQ9Tm9uZSk6CisgICAgICAgICIiIiByZXR1cm4gYSBzZXF1ZW5j
ZSBvZiBQYXRocy4KKworICAgICAgICBsaXN0ZGlyIHdpbGwgcmV0dXJuIGVpdGhlciBhIHR1cGxl
IG9yIGEgbGlzdCBvZiBwYXRocworICAgICAgICBkZXBlbmRpbmcgb24gaW1wbGVtZW50YXRpb24g
Y2hvaWNlcy4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIGlzaW5zdGFuY2UoZmlsLCBzdHIpOgor
ICAgICAgICAgICAgZmlsID0gY29tbW9uLkZOTWF0Y2hlcihmaWwpCisgICAgICAgICMgWFhYIHVu
aWZ5IGFyZ3VtZW50IG5hbWluZyB3aXRoIExvY2FsUGF0aC5saXN0ZGlyCisgICAgICAgIGRlZiBu
b3Rzdm4ocGF0aCk6CisgICAgICAgICAgICByZXR1cm4gcGF0aC5iYXNlbmFtZSAhPSAnLnN2bicK
KworICAgICAgICBwYXRocyA9IFtdCisgICAgICAgIGZvciBsb2NhbHBhdGggaW4gc2VsZi5sb2Nh
bHBhdGgubGlzdGRpcihub3Rzdm4pOgorICAgICAgICAgICAgcCA9IHNlbGYuX19jbGFzc19fKGxv
Y2FscGF0aCwgYXV0aD1zZWxmLmF1dGgpCisgICAgICAgICAgICBpZiBub3Rzdm4ocCkgYW5kIChu
b3QgZmlsIG9yIGZpbChwKSk6CisgICAgICAgICAgICAgICAgcGF0aHMuYXBwZW5kKHApCisgICAg
ICAgIHNlbGYuX3NvcnRsaXN0KHBhdGhzLCBzb3J0KQorICAgICAgICByZXR1cm4gcGF0aHMKKwor
ICAgIGRlZiBvcGVuKHNlbGYsIG1vZGU9J3InKToKKyAgICAgICAgIiIiIHJldHVybiBhbiBvcGVu
ZWQgZmlsZSB3aXRoIHRoZSBnaXZlbiBtb2RlLiAiIiIKKyAgICAgICAgcmV0dXJuIG9wZW4oc2Vs
Zi5zdHJwYXRoLCBtb2RlKQorCisgICAgZGVmIF9nZXRieXNwZWMoc2VsZiwgc3BlYyk6CisgICAg
ICAgIHJldHVybiBzZWxmLmxvY2FscGF0aC5fZ2V0YnlzcGVjKHNwZWMpCisKKyAgICBjbGFzcyBD
aGVja2VycyhweS5wYXRoLmxvY2FsLkNoZWNrZXJzKToKKyAgICAgICAgZGVmIF9faW5pdF9fKHNl
bGYsIHBhdGgpOgorICAgICAgICAgICAgc2VsZi5zdm53Y3BhdGggPSBwYXRoCisgICAgICAgICAg
ICBzZWxmLnBhdGggPSBwYXRoLmxvY2FscGF0aAorICAgICAgICBkZWYgdmVyc2lvbmVkKHNlbGYp
OgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHMgPSBzZWxmLnN2bndjcGF0aC5p
bmZvKCkKKyAgICAgICAgICAgIGV4Y2VwdCAocHkuZXJyb3IuRU5PRU5ULCBweS5lcnJvci5FRVhJ
U1QpOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgZXhjZXB0IHB5
LnByb2Nlc3MuY21kZXhlYy5FcnJvcjoKKyAgICAgICAgICAgICAgICBlID0gc3lzLmV4Y19pbmZv
KClbMV0KKyAgICAgICAgICAgICAgICBpZiBlLmVyci5maW5kKCdpcyBub3QgYSB3b3JraW5nIGNv
cHknKSE9LTE6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAg
ICAgIGlmIGUuZXJyLmxvd2VyKCkuZmluZCgnbm90IGEgdmVyc2lvbmVkIHJlc291cmNlJykgIT0g
LTE6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgICAgIHJh
aXNlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAg
ICBkZWYgbG9nKHNlbGYsIHJldl9zdGFydD1Ob25lLCByZXZfZW5kPTEsIHZlcmJvc2U9RmFsc2Up
OgorICAgICAgICAiIiIgcmV0dXJuIGEgbGlzdCBvZiBMb2dFbnRyeSBpbnN0YW5jZXMgZm9yIHRo
aXMgcGF0aC4KK3Jldl9zdGFydCBpcyB0aGUgc3RhcnRpbmcgcmV2aXNpb24gKGRlZmF1bHRpbmcg
dG8gdGhlIGZpcnN0IG9uZSkuCityZXZfZW5kIGlzIHRoZSBsYXN0IHJldmlzaW9uIChkZWZhdWx0
aW5nIHRvIEhFQUQpLgoraWYgdmVyYm9zZSBpcyBUcnVlLCB0aGVuIHRoZSBMb2dFbnRyeSBpbnN0
YW5jZXMgYWxzbyBrbm93IHdoaWNoIGZpbGVzIGNoYW5nZWQuCisiIiIKKyAgICAgICAgYXNzZXJ0
IHNlbGYuY2hlY2soKSAgICMgbWFrZSBpdCBzaW1wbGVyIGZvciB0aGUgcGlwZQorICAgICAgICBy
ZXZfc3RhcnQgPSByZXZfc3RhcnQgaXMgTm9uZSBhbmQgIkhFQUQiIG9yIHJldl9zdGFydAorICAg
ICAgICByZXZfZW5kID0gcmV2X2VuZCBpcyBOb25lIGFuZCAiSEVBRCIgb3IgcmV2X2VuZAorICAg
ICAgICBpZiByZXZfc3RhcnQgPT0gIkhFQUQiIGFuZCByZXZfZW5kID09IDE6CisgICAgICAgICAg
ICAgICAgcmV2X29wdCA9ICIiCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXZfb3B0ID0g
Ii1yICVzOiVzIiAlIChyZXZfc3RhcnQsIHJldl9lbmQpCisgICAgICAgIHZlcmJvc2Vfb3B0ID0g
dmVyYm9zZSBhbmQgIi12IiBvciAiIgorICAgICAgICBsb2NhbGVfZW52ID0gZml4bG9jYWxlKCkK
KyAgICAgICAgIyBzb21lIGJsYXRoZXIgb24gc3RkZXJyCisgICAgICAgIGF1dGhfb3B0ID0gc2Vs
Zi5fbWFrZWF1dGhvcHRpb25zKCkKKyAgICAgICAgI3N0ZGluLCBzdGRvdXQsIHN0ZGVyciAgPSBv
cy5wb3BlbjMobG9jYWxlX2VudiArCisgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdzdm4gbG9nIC0teG1sICVzICVzICVzICIlcyInICUgKAorICAgICAgICAjICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2X29wdCwgdmVyYm9zZV9vcHQsIGF1
dGhfb3B0LAorICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5zdHJwYXRoKSkKKyAgICAgICAgY21kID0gbG9jYWxlX2VudiArICdzdm4gbG9nIC0teG1sICVz
ICVzICVzICIlcyInICUgKAorICAgICAgICAgICAgcmV2X29wdCwgdmVyYm9zZV9vcHQsIGF1dGhf
b3B0LCBzZWxmLnN0cnBhdGgpCisKKyAgICAgICAgcG9wZW4gPSBzdWJwcm9jZXNzLlBvcGVuKGNt
ZCwKKyAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwKKyAgICAgICAg
ICAgICAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuUElQRSwKKyAgICAgICAgICAgICAgICAgICAg
c2hlbGw9VHJ1ZSwKKyAgICAgICAgKQorICAgICAgICBzdGRvdXQsIHN0ZGVyciA9IHBvcGVuLmNv
bW11bmljYXRlKCkKKyAgICAgICAgc3Rkb3V0ID0gcHkuYnVpbHRpbi5fdG90ZXh0KHN0ZG91dCwg
c3lzLmdldGRlZmF1bHRlbmNvZGluZygpKQorICAgICAgICBtaW5pZG9tLEV4cGF0RXJyb3IgPSBp
bXBvcnR4bWwoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICB0cmVlID0gbWluaWRvbS5wYXJz
ZVN0cmluZyhzdGRvdXQpCisgICAgICAgIGV4Y2VwdCBFeHBhdEVycm9yOgorICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcignbm8gc3VjaCByZXZpc2lvbicpCisgICAgICAgIHJlc3VsdCA9IFtd
CisgICAgICAgIGZvciBsb2dlbnRyeSBpbiBmaWx0ZXIoTm9uZSwgdHJlZS5maXJzdENoaWxkLmNo
aWxkTm9kZXMpOgorICAgICAgICAgICAgaWYgbG9nZW50cnkubm9kZVR5cGUgPT0gbG9nZW50cnku
RUxFTUVOVF9OT0RFOgorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoTG9nRW50cnkobG9n
ZW50cnkpKQorICAgICAgICByZXR1cm4gcmVzdWx0CisKKyAgICBkZWYgc2l6ZShzZWxmKToKKyAg
ICAgICAgIiIiIFJldHVybiB0aGUgc2l6ZSBvZiB0aGUgZmlsZSBjb250ZW50IG9mIHRoZSBQYXRo
LiAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuaW5mbygpLnNpemUKKworICAgIGRlZiBtdGltZShz
ZWxmKToKKyAgICAgICAgIiIiIFJldHVybiB0aGUgbGFzdCBtb2RpZmljYXRpb24gdGltZSBvZiB0
aGUgZmlsZS4gIiIiCisgICAgICAgIHJldHVybiBzZWxmLmluZm8oKS5tdGltZQorCisgICAgZGVm
IF9faGFzaF9fKHNlbGYpOgorICAgICAgICByZXR1cm4gaGFzaCgoc2VsZi5zdHJwYXRoLCBzZWxm
Ll9fY2xhc3NfXywgc2VsZi5hdXRoKSkKKworCitjbGFzcyBXQ1N0YXR1czoKKyAgICBhdHRybmFt
ZXMgPSAoJ21vZGlmaWVkJywnYWRkZWQnLCAnY29uZmxpY3QnLCAndW5jaGFuZ2VkJywgJ2V4dGVy
bmFsJywKKyAgICAgICAgICAgICAgICAnZGVsZXRlZCcsICdwcm9wX21vZGlmaWVkJywgJ3Vua25v
d24nLCAndXBkYXRlX2F2YWlsYWJsZScsCisgICAgICAgICAgICAgICAgJ2luY29tcGxldGUnLCAn
a2luZG1pc21hdGNoJywgJ2lnbm9yZWQnLCAnbG9ja2VkJywgJ3JlcGxhY2VkJworICAgICAgICAg
ICAgICAgICkKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3Y3BhdGgsIHJldj1Ob25lLCBtb2Ry
ZXY9Tm9uZSwgYXV0aG9yPU5vbmUpOgorICAgICAgICBzZWxmLndjcGF0aCA9IHdjcGF0aAorICAg
ICAgICBzZWxmLnJldiA9IHJldgorICAgICAgICBzZWxmLm1vZHJldiA9IG1vZHJldgorICAgICAg
ICBzZWxmLmF1dGhvciA9IGF1dGhvcgorCisgICAgICAgIGZvciBuYW1lIGluIHNlbGYuYXR0cm5h
bWVzOgorICAgICAgICAgICAgc2V0YXR0cihzZWxmLCBuYW1lLCBbXSkKKworICAgIGRlZiBhbGxw
YXRoKHNlbGYsIHNvcnQ9VHJ1ZSwgKiprdyk6CisgICAgICAgIGQgPSB7fQorICAgICAgICBmb3Ig
bmFtZSBpbiBzZWxmLmF0dHJuYW1lczoKKyAgICAgICAgICAgIGlmIG5hbWUgbm90IGluIGt3IG9y
IGt3W25hbWVdOgorICAgICAgICAgICAgICAgIGZvciBwYXRoIGluIGdldGF0dHIoc2VsZiwgbmFt
ZSk6CisgICAgICAgICAgICAgICAgICAgIGRbcGF0aF0gPSAxCisgICAgICAgIGwgPSBkLmtleXMo
KQorICAgICAgICBpZiBzb3J0OgorICAgICAgICAgICAgbC5zb3J0KCkKKyAgICAgICAgcmV0dXJu
IGwKKworICAgICMgWFhYIGEgYml0IHNjYXJ5IHRvIGFzc3VtZSB0aGVyZSdzIGFsd2F5cyAyIHNw
YWNlcyBiZXR3ZWVuIHVzZXJuYW1lIGFuZAorICAgICMgcGF0aCwgaG93ZXZlciB3aXRoIHdpbjMy
IGFsbG93aW5nIHNwYWNlcyBpbiB1c2VyIG5hbWVzIHRoZXJlIGRvZXNuJ3QKKyAgICAjIHNlZW0g
dG8gYmUgYSBtb3JlIHNvbGlkIGFwcHJvYWNoIDooCisgICAgX3JleF9zdGF0dXMgPSByZS5jb21w
aWxlKHInXHMrKFxkK3wtKVxzKyhcUyspXHMrKC4rPylcc3syLH0oLiopJykKKworICAgIGRlZiBm
cm9tc3RyaW5nKGRhdGEsIHJvb3R3Y3BhdGgsIHJldj1Ob25lLCBtb2RyZXY9Tm9uZSwgYXV0aG9y
PU5vbmUpOgorICAgICAgICAiIiIgcmV0dXJuIGEgbmV3IFdDU3RhdHVzIG9iamVjdCBmcm9tIGRh
dGEgJ3MnCisgICAgICAgICIiIgorICAgICAgICByb290c3RhdHVzID0gV0NTdGF0dXMocm9vdHdj
cGF0aCwgcmV2LCBtb2RyZXYsIGF1dGhvcikKKyAgICAgICAgdXBkYXRlX3JldiA9IE5vbmUKKyAg
ICAgICAgZm9yIGxpbmUgaW4gZGF0YS5zcGxpdCgnXG4nKToKKyAgICAgICAgICAgIGlmIG5vdCBs
aW5lLnN0cmlwKCk6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICNwcmlu
dCAicHJvY2Vzc2luZyAlciIgJSBsaW5lCisgICAgICAgICAgICBmbGFncywgcmVzdCA9IGxpbmVb
OjhdLCBsaW5lWzg6XQorICAgICAgICAgICAgIyBmaXJzdCBjb2x1bW4KKyAgICAgICAgICAgIGMw
LGMxLGMyLGMzLGM0LGM1LHg2LGM3ID0gZmxhZ3MKKyAgICAgICAgICAgICNpZiAnKicgaW4gbGlu
ZToKKyAgICAgICAgICAgICMgICAgcHJpbnQgImZsYWdzIiwgcmVwcihmbGFncyksICJyZXN0Iiwg
cmVwcihyZXN0KQorCisgICAgICAgICAgICBpZiBjMCBpbiAnP1hJJzoKKyAgICAgICAgICAgICAg
ICBmbiA9IGxpbmUuc3BsaXQoTm9uZSwgMSlbMV0KKyAgICAgICAgICAgICAgICBpZiBjMCA9PSAn
Pyc6CisgICAgICAgICAgICAgICAgICAgIHdjcGF0aCA9IHJvb3R3Y3BhdGguam9pbihmbiwgYWJz
PTEpCisgICAgICAgICAgICAgICAgICAgIHJvb3RzdGF0dXMudW5rbm93bi5hcHBlbmQod2NwYXRo
KQorICAgICAgICAgICAgICAgIGVsaWYgYzAgPT0gJ1gnOgorICAgICAgICAgICAgICAgICAgICB3
Y3BhdGggPSByb290d2NwYXRoLl9fY2xhc3NfXygKKyAgICAgICAgICAgICAgICAgICAgICAgIHJv
b3R3Y3BhdGgubG9jYWxwYXRoLmpvaW4oZm4sIGFicz0xKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGF1dGg9cm9vdHdjcGF0aC5hdXRoKQorICAgICAgICAgICAgICAgICAgICByb290c3RhdHVz
LmV4dGVybmFsLmFwcGVuZCh3Y3BhdGgpCisgICAgICAgICAgICAgICAgZWxpZiBjMCA9PSAnSSc6
CisgICAgICAgICAgICAgICAgICAgIHdjcGF0aCA9IHJvb3R3Y3BhdGguam9pbihmbiwgYWJzPTEp
CisgICAgICAgICAgICAgICAgICAgIHJvb3RzdGF0dXMuaWdub3JlZC5hcHBlbmQod2NwYXRoKQor
CisgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgI2VsaWYgYzAgaW4gJ34h
JyBvciBjNCA9PSAnUyc6CisgICAgICAgICAgICAjICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJy
b3IoInJlY2VpdmVkIGZsYWcgJXIiICUgYzApCisKKyAgICAgICAgICAgIG0gPSBXQ1N0YXR1cy5f
cmV4X3N0YXR1cy5tYXRjaChyZXN0KQorICAgICAgICAgICAgaWYgbm90IG06CisgICAgICAgICAg
ICAgICAgaWYgYzcgPT0gJyonOgorICAgICAgICAgICAgICAgICAgICBmbiA9IHJlc3Quc3RyaXAo
KQorICAgICAgICAgICAgICAgICAgICB3Y3BhdGggPSByb290d2NwYXRoLmpvaW4oZm4sIGFicz0x
KQorICAgICAgICAgICAgICAgICAgICByb290c3RhdHVzLnVwZGF0ZV9hdmFpbGFibGUuYXBwZW5k
KHdjcGF0aCkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBp
ZiBsaW5lLmxvd2VyKCkuZmluZCgnYWdhaW5zdCByZXZpc2lvbjonKSE9LTE6CisgICAgICAgICAg
ICAgICAgICAgIHVwZGF0ZV9yZXYgPSBpbnQocmVzdC5zcGxpdCgnOicpWzFdLnN0cmlwKCkpCisg
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgaWYgbGluZS5sb3dl
cigpLmZpbmQoJ3N0YXR1cyBvbiBleHRlcm5hbCcpID4gLTE6CisgICAgICAgICAgICAgICAgICAg
ICMgWFhYIG5vdCBzdXJlIHdoYXQgdG8gZG8gaGVyZS4uLiBwZXJoYXBzIHdlIHdhbnQgdG8KKyAg
ICAgICAgICAgICAgICAgICAgIyBzdG9yZSBzb21lIHN0YXRlIGluc3RlYWQgb2YganVzdCBjb250
aW51aW5nLCBhcyByaWdodAorICAgICAgICAgICAgICAgICAgICAjIG5vdyBpdCBtYWtlcyB0aGUg
dG9wLWxldmVsIGV4dGVybmFsIGdldCBhZGRlZCB0d2ljZQorICAgICAgICAgICAgICAgICAgICAj
IChvbmNlIGFzIGV4dGVybmFsLCBvbmNlIGFzICdub3JtYWwnIHVuY2hhbmdlZCBpdGVtKQorICAg
ICAgICAgICAgICAgICAgICAjIGJlY2F1c2Ugb2YgdGhlIHdheSBTVk4gcHJlc2VudHMgZXh0ZXJu
YWwgaXRlbXMKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICAj
IGtlZXAgdHJ5aW5nCisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY291bGQgbm90
IHBhcnNlIGxpbmUgJXIiICUgbGluZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgcmV2LCBtb2RyZXYsIGF1dGhvciwgZm4gPSBtLmdyb3VwcygpCisgICAgICAgICAgICB3Y3Bh
dGggPSByb290d2NwYXRoLmpvaW4oZm4sIGFicz0xKQorICAgICAgICAgICAgI2Fzc2VydCB3Y3Bh
dGguY2hlY2soKQorICAgICAgICAgICAgaWYgYzAgPT0gJ00nOgorICAgICAgICAgICAgICAgIGFz
c2VydCB3Y3BhdGguY2hlY2soZmlsZT0xKSwgImRpZG4ndCBleHBlY3QgYSBkaXJlY3Rvcnkgd2l0
aCBjaGFuZ2VkIGNvbnRlbnQgaGVyZSIKKyAgICAgICAgICAgICAgICByb290c3RhdHVzLm1vZGlm
aWVkLmFwcGVuZCh3Y3BhdGgpCisgICAgICAgICAgICBlbGlmIGMwID09ICdBJyBvciBjMyA9PSAn
KycgOgorICAgICAgICAgICAgICAgIHJvb3RzdGF0dXMuYWRkZWQuYXBwZW5kKHdjcGF0aCkKKyAg
ICAgICAgICAgIGVsaWYgYzAgPT0gJ0QnOgorICAgICAgICAgICAgICAgIHJvb3RzdGF0dXMuZGVs
ZXRlZC5hcHBlbmQod2NwYXRoKQorICAgICAgICAgICAgZWxpZiBjMCA9PSAnQyc6CisgICAgICAg
ICAgICAgICAgcm9vdHN0YXR1cy5jb25mbGljdC5hcHBlbmQod2NwYXRoKQorICAgICAgICAgICAg
ZWxpZiBjMCA9PSAnfic6CisgICAgICAgICAgICAgICAgcm9vdHN0YXR1cy5raW5kbWlzbWF0Y2gu
YXBwZW5kKHdjcGF0aCkKKyAgICAgICAgICAgIGVsaWYgYzAgPT0gJyEnOgorICAgICAgICAgICAg
ICAgIHJvb3RzdGF0dXMuaW5jb21wbGV0ZS5hcHBlbmQod2NwYXRoKQorICAgICAgICAgICAgZWxp
ZiBjMCA9PSAnUic6CisgICAgICAgICAgICAgICAgcm9vdHN0YXR1cy5yZXBsYWNlZC5hcHBlbmQo
d2NwYXRoKQorICAgICAgICAgICAgZWxpZiBub3QgYzAuc3RyaXAoKToKKyAgICAgICAgICAgICAg
ICByb290c3RhdHVzLnVuY2hhbmdlZC5hcHBlbmQod2NwYXRoKQorICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJyZWNlaXZlZCBmbGFn
ICVyIiAlIGMwKQorCisgICAgICAgICAgICBpZiBjMSA9PSAnTSc6CisgICAgICAgICAgICAgICAg
cm9vdHN0YXR1cy5wcm9wX21vZGlmaWVkLmFwcGVuZCh3Y3BhdGgpCisgICAgICAgICAgICAjIFhY
WCBkbyB3ZSBjb3ZlciBhbGwgY2xpZW50IHZlcnNpb25zIGhlcmU/CisgICAgICAgICAgICBpZiBj
MiA9PSAnTCcgb3IgYzUgPT0gJ0snOgorICAgICAgICAgICAgICAgIHJvb3RzdGF0dXMubG9ja2Vk
LmFwcGVuZCh3Y3BhdGgpCisgICAgICAgICAgICBpZiBjNyA9PSAnKic6CisgICAgICAgICAgICAg
ICAgcm9vdHN0YXR1cy51cGRhdGVfYXZhaWxhYmxlLmFwcGVuZCh3Y3BhdGgpCisKKyAgICAgICAg
ICAgIGlmIHdjcGF0aCA9PSByb290d2NwYXRoOgorICAgICAgICAgICAgICAgIHJvb3RzdGF0dXMu
cmV2ID0gcmV2CisgICAgICAgICAgICAgICAgcm9vdHN0YXR1cy5tb2RyZXYgPSBtb2RyZXYKKyAg
ICAgICAgICAgICAgICByb290c3RhdHVzLmF1dGhvciA9IGF1dGhvcgorICAgICAgICAgICAgICAg
IGlmIHVwZGF0ZV9yZXY6CisgICAgICAgICAgICAgICAgICAgIHJvb3RzdGF0dXMudXBkYXRlX3Jl
diA9IHVwZGF0ZV9yZXYKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICByZXR1cm4g
cm9vdHN0YXR1cworICAgIGZyb21zdHJpbmcgPSBzdGF0aWNtZXRob2QoZnJvbXN0cmluZykKKwor
Y2xhc3MgWE1MV0NTdGF0dXMoV0NTdGF0dXMpOgorICAgIGRlZiBmcm9tc3RyaW5nKGRhdGEsIHJv
b3R3Y3BhdGgsIHJldj1Ob25lLCBtb2RyZXY9Tm9uZSwgYXV0aG9yPU5vbmUpOgorICAgICAgICAi
IiIgcGFyc2UgJ2RhdGEnIChYTUwgc3RyaW5nIGFzIG91dHB1dHRlZCBieSBzdm4gc3QpIGludG8g
YSBzdGF0dXMgb2JqCisgICAgICAgICIiIgorICAgICAgICAjIFhYWCBmb3IgZXh0ZXJuYWxzLCB0
aGUgcGF0aCBpcyBzaG93biB0d2ljZTogb25jZQorICAgICAgICAjIHdpdGggZXh0ZXJuYWwgaW5m
b3JtYXRpb24sIGFuZCBvbmNlIHdpdGggZnVsbCBpbmZvIGFzIGlmCisgICAgICAgICMgdGhlIGl0
ZW0gd2FzIGEgbm9ybWFsIG5vbi1leHRlcm5hbC4uLiB0aGUgY3VycmVudCB3YXkgb2YKKyAgICAg
ICAgIyBkZWFsaW5nIHdpdGggdGhpcyBpc3N1ZSBpcyBieSBpZ25vcmluZyBpdCAtIHRoaXMgZG9l
cyBtYWtlCisgICAgICAgICMgZXh0ZXJuYWxzIGFwcGVhciBhcyBleHRlcm5hbCBpdGVtcyBhcyB3
ZWxsIGFzICdub3JtYWwnLAorICAgICAgICAjIHVuY2hhbmdlZCBvbmVzIGluIHRoZSBzdGF0dXMg
b2JqZWN0IHNvIHRoaXMgaXMgZmFyIGZyb20gaWRlYWwKKyAgICAgICAgcm9vdHN0YXR1cyA9IFdD
U3RhdHVzKHJvb3R3Y3BhdGgsIHJldiwgbW9kcmV2LCBhdXRob3IpCisgICAgICAgIHVwZGF0ZV9y
ZXYgPSBOb25lCisgICAgICAgIG1pbmlkb20sIEV4cGF0RXJyb3IgPSBpbXBvcnR4bWwoKQorICAg
ICAgICB0cnk6CisgICAgICAgICAgICBkb2MgPSBtaW5pZG9tLnBhcnNlU3RyaW5nKGRhdGEpCisg
ICAgICAgIGV4Y2VwdCBFeHBhdEVycm9yOgorICAgICAgICAgICAgZSA9IHN5cy5leGNfaW5mbygp
WzFdCisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKHN0cihlKSkKKyAgICAgICAgdXJldmVs
cyA9IGRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgnYWdhaW5zdCcpCisgICAgICAgIGlmIHVyZXZl
bHM6CisgICAgICAgICAgICByb290c3RhdHVzLnVwZGF0ZV9yZXYgPSB1cmV2ZWxzWy0xXS5nZXRB
dHRyaWJ1dGUoJ3JldmlzaW9uJykKKyAgICAgICAgZm9yIGVudHJ5ZWwgaW4gZG9jLmdldEVsZW1l
bnRzQnlUYWdOYW1lKCdlbnRyeScpOgorICAgICAgICAgICAgcGF0aCA9IGVudHJ5ZWwuZ2V0QXR0
cmlidXRlKCdwYXRoJykKKyAgICAgICAgICAgIHN0YXR1c2VsID0gZW50cnllbC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgnd2Mtc3RhdHVzJylbMF0KKyAgICAgICAgICAgIGl0ZW1zdGF0dXMgPSBzdGF0
dXNlbC5nZXRBdHRyaWJ1dGUoJ2l0ZW0nKQorCisgICAgICAgICAgICBpZiBpdGVtc3RhdHVzID09
ICd1bnZlcnNpb25lZCc6CisgICAgICAgICAgICAgICAgd2NwYXRoID0gcm9vdHdjcGF0aC5qb2lu
KHBhdGgsIGFicz0xKQorICAgICAgICAgICAgICAgIHJvb3RzdGF0dXMudW5rbm93bi5hcHBlbmQo
d2NwYXRoKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBlbGlmIGl0ZW1z
dGF0dXMgPT0gJ2V4dGVybmFsJzoKKyAgICAgICAgICAgICAgICB3Y3BhdGggPSByb290d2NwYXRo
Ll9fY2xhc3NfXygKKyAgICAgICAgICAgICAgICAgICAgcm9vdHdjcGF0aC5sb2NhbHBhdGguam9p
bihwYXRoLCBhYnM9MSksCisgICAgICAgICAgICAgICAgICAgIGF1dGg9cm9vdHdjcGF0aC5hdXRo
KQorICAgICAgICAgICAgICAgIHJvb3RzdGF0dXMuZXh0ZXJuYWwuYXBwZW5kKHdjcGF0aCkKKyAg
ICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgZWxpZiBpdGVtc3RhdHVzID09ICdp
Z25vcmVkJzoKKyAgICAgICAgICAgICAgICB3Y3BhdGggPSByb290d2NwYXRoLmpvaW4ocGF0aCwg
YWJzPTEpCisgICAgICAgICAgICAgICAgcm9vdHN0YXR1cy5pZ25vcmVkLmFwcGVuZCh3Y3BhdGgp
CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGVsaWYgaXRlbXN0YXR1cyA9
PSAnaW5jb21wbGV0ZSc6CisgICAgICAgICAgICAgICAgd2NwYXRoID0gcm9vdHdjcGF0aC5qb2lu
KHBhdGgsIGFicz0xKQorICAgICAgICAgICAgICAgIHJvb3RzdGF0dXMuaW5jb21wbGV0ZS5hcHBl
bmQod2NwYXRoKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgIHJldiA9
IHN0YXR1c2VsLmdldEF0dHJpYnV0ZSgncmV2aXNpb24nKQorICAgICAgICAgICAgaWYgaXRlbXN0
YXR1cyA9PSAnYWRkZWQnIG9yIGl0ZW1zdGF0dXMgPT0gJ25vbmUnOgorICAgICAgICAgICAgICAg
IHJldiA9ICcwJworICAgICAgICAgICAgICAgIG1vZHJldiA9ICc/JworICAgICAgICAgICAgICAg
IGF1dGhvciA9ICc/JworICAgICAgICAgICAgICAgIGRhdGUgPSAnJworICAgICAgICAgICAgZWxp
ZiBpdGVtc3RhdHVzID09ICJyZXBsYWNlZCI6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAjcHJpbnQgZW50cnllbC50b3htbCgpCisgICAg
ICAgICAgICAgICAgY29tbWl0ZWwgPSBlbnRyeWVsLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdjb21t
aXQnKVswXQorICAgICAgICAgICAgICAgIGlmIGNvbW1pdGVsOgorICAgICAgICAgICAgICAgICAg
ICBtb2RyZXYgPSBjb21taXRlbC5nZXRBdHRyaWJ1dGUoJ3JldmlzaW9uJykKKyAgICAgICAgICAg
ICAgICAgICAgYXV0aG9yID0gJycKKyAgICAgICAgICAgICAgICAgICAgYXV0aG9yX2VscyA9IGNv
bW1pdGVsLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdhdXRob3InKQorICAgICAgICAgICAgICAgICAg
ICBpZiBhdXRob3JfZWxzOgorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGMgaW4gYXV0aG9y
X2Vsc1swXS5jaGlsZE5vZGVzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhvciAr
PSBjLm5vZGVWYWx1ZQorICAgICAgICAgICAgICAgICAgICBkYXRlID0gJycKKyAgICAgICAgICAg
ICAgICAgICAgZm9yIGMgaW4gY29tbWl0ZWwuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2RhdGUnKVsw
XVwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2hpbGROb2RlczoKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGRhdGUgKz0gYy5ub2RlVmFsdWUKKworICAgICAgICAgICAgd2NwYXRoID0g
cm9vdHdjcGF0aC5qb2luKHBhdGgsIGFicz0xKQorCisgICAgICAgICAgICBhc3NlcnQgaXRlbXN0
YXR1cyAhPSAnbW9kaWZpZWQnIG9yIHdjcGF0aC5jaGVjayhmaWxlPTEpLCAoCisgICAgICAgICAg
ICAgICAgJ2RpZFwndCBleHBlY3QgYSBkaXJlY3Rvcnkgd2l0aCBjaGFuZ2VkIGNvbnRlbnQgaGVy
ZScpCisKKyAgICAgICAgICAgIGl0ZW1hdHRybmFtZSA9IHsKKyAgICAgICAgICAgICAgICAnbm9y
bWFsJzogJ3VuY2hhbmdlZCcsCisgICAgICAgICAgICAgICAgJ3VudmVyc2lvbmVkJzogJ3Vua25v
d24nLAorICAgICAgICAgICAgICAgICdjb25mbGljdGVkJzogJ2NvbmZsaWN0JywKKyAgICAgICAg
ICAgICAgICAnbm9uZSc6ICdhZGRlZCcsCisgICAgICAgICAgICB9LmdldChpdGVtc3RhdHVzLCBp
dGVtc3RhdHVzKQorCisgICAgICAgICAgICBhdHRyID0gZ2V0YXR0cihyb290c3RhdHVzLCBpdGVt
YXR0cm5hbWUpCisgICAgICAgICAgICBhdHRyLmFwcGVuZCh3Y3BhdGgpCisKKyAgICAgICAgICAg
IHByb3Bzc3RhdHVzID0gc3RhdHVzZWwuZ2V0QXR0cmlidXRlKCdwcm9wcycpCisgICAgICAgICAg
ICBpZiBwcm9wc3N0YXR1cyBub3QgaW4gKCdub25lJywgJ25vcm1hbCcpOgorICAgICAgICAgICAg
ICAgIHJvb3RzdGF0dXMucHJvcF9tb2RpZmllZC5hcHBlbmQod2NwYXRoKQorCisgICAgICAgICAg
ICBpZiB3Y3BhdGggPT0gcm9vdHdjcGF0aDoKKyAgICAgICAgICAgICAgICByb290c3RhdHVzLnJl
diA9IHJldgorICAgICAgICAgICAgICAgIHJvb3RzdGF0dXMubW9kcmV2ID0gbW9kcmV2CisgICAg
ICAgICAgICAgICAgcm9vdHN0YXR1cy5hdXRob3IgPSBhdXRob3IKKyAgICAgICAgICAgICAgICBy
b290c3RhdHVzLmRhdGUgPSBkYXRlCisKKyAgICAgICAgICAgICMgaGFuZGxlIHJlcG9zLXN0YXR1
cyBlbGVtZW50IChyZW1vdGUgaW5mbykKKyAgICAgICAgICAgIHJzdGF0dXNlbHMgPSBlbnRyeWVs
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdyZXBvcy1zdGF0dXMnKQorICAgICAgICAgICAgaWYgcnN0
YXR1c2VsczoKKyAgICAgICAgICAgICAgICByc3RhdHVzZWwgPSByc3RhdHVzZWxzWzBdCisgICAg
ICAgICAgICAgICAgcml0ZW1zdGF0dXMgPSByc3RhdHVzZWwuZ2V0QXR0cmlidXRlKCdpdGVtJykK
KyAgICAgICAgICAgICAgICBpZiByaXRlbXN0YXR1cyBpbiAoJ2FkZGVkJywgJ21vZGlmaWVkJyk6
CisgICAgICAgICAgICAgICAgICAgIHJvb3RzdGF0dXMudXBkYXRlX2F2YWlsYWJsZS5hcHBlbmQo
d2NwYXRoKQorCisgICAgICAgICAgICBsb2NrZWxzID0gZW50cnllbC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgnbG9jaycpCisgICAgICAgICAgICBpZiBsZW4obG9ja2Vscyk6CisgICAgICAgICAgICAg
ICAgcm9vdHN0YXR1cy5sb2NrZWQuYXBwZW5kKHdjcGF0aCkKKworICAgICAgICByZXR1cm4gcm9v
dHN0YXR1cworICAgIGZyb21zdHJpbmcgPSBzdGF0aWNtZXRob2QoZnJvbXN0cmluZykKKworY2xh
c3MgSW5mb1N2bldDQ29tbWFuZDoKKyAgICBkZWYgX19pbml0X18oc2VsZiwgb3V0cHV0KToKKyAg
ICAgICAgIyBQYXRoOiB0ZXN0CisgICAgICAgICMgVVJMOiBodHRwOi8vY29kZXNwZWFrLm5ldC9z
dm4vc3RkLnBhdGgvdHJ1bmsvZGlzdC9zdGQucGF0aC90ZXN0CisgICAgICAgICMgUmVwb3NpdG9y
eSBVVUlEOiBmZDBkN2JmMi1kZmI2LTAzMTAtOGQzMS1iN2VjZmU5NmFhZGEKKyAgICAgICAgIyBS
ZXZpc2lvbjogMjE1MQorICAgICAgICAjIE5vZGUgS2luZDogZGlyZWN0b3J5CisgICAgICAgICMg
U2NoZWR1bGU6IG5vcm1hbAorICAgICAgICAjIExhc3QgQ2hhbmdlZCBBdXRob3I6IGhwaworICAg
ICAgICAjIExhc3QgQ2hhbmdlZCBSZXY6IDIxMDAKKyAgICAgICAgIyBMYXN0IENoYW5nZWQgRGF0
ZTogMjAwMy0xMC0yNyAyMDo0MzoxNCArMDEwMCAoTW9uLCAyNyBPY3QgMjAwMykKKyAgICAgICAg
IyBQcm9wZXJ0aWVzIExhc3QgVXBkYXRlZDogMjAwMy0xMS0wMyAxNDo0Nzo0OCArMDEwMCAoTW9u
LCAwMyBOb3YgMjAwMykKKworICAgICAgICBkID0ge30KKyAgICAgICAgZm9yIGxpbmUgaW4gb3V0
cHV0LnNwbGl0KCdcbicpOgorICAgICAgICAgICAgaWYgbm90IGxpbmUuc3RyaXAoKToKKyAgICAg
ICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAga2V5LCB2YWx1ZSA9IGxpbmUuc3BsaXQo
JzonLCAxKQorICAgICAgICAgICAga2V5ID0ga2V5Lmxvd2VyKCkucmVwbGFjZSgnICcsICcnKQor
ICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zdHJpcCgpCisgICAgICAgICAgICBkW2tleV0gPSB2
YWx1ZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLnVybCA9IGRbJ3VybCddCisgICAg
ICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlICBWYWx1ZUVycm9yKCJOb3Qg
YSB2ZXJzaW9uZWQgcmVzb3VyY2UiKQorICAgICAgICAgICAgI3JhaXNlIFZhbHVlRXJyb3IsICJO
b3QgYSB2ZXJzaW9uZWQgcmVzb3VyY2UgJXIiICUgcGF0aAorICAgICAgICBzZWxmLmtpbmQgPSBk
Wydub2Rla2luZCddID09ICdkaXJlY3RvcnknIGFuZCAnZGlyJyBvciBkWydub2Rla2luZCddCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYucmV2ID0gaW50KGRbJ3JldmlzaW9uJ10pCisg
ICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgIHNlbGYucmV2ID0gTm9uZQorCisg
ICAgICAgIHNlbGYucGF0aCA9IHB5LnBhdGgubG9jYWwoZFsncGF0aCddKQorICAgICAgICBzZWxm
LnNpemUgPSBzZWxmLnBhdGguc2l6ZSgpCisgICAgICAgIGlmICdsYXN0Y2hhbmdlZHJldicgaW4g
ZDoKKyAgICAgICAgICAgIHNlbGYuY3JlYXRlZF9yZXYgPSBpbnQoZFsnbGFzdGNoYW5nZWRyZXYn
XSkKKyAgICAgICAgaWYgJ2xhc3RjaGFuZ2VkYXV0aG9yJyBpbiBkOgorICAgICAgICAgICAgc2Vs
Zi5sYXN0X2F1dGhvciA9IGRbJ2xhc3RjaGFuZ2VkYXV0aG9yJ10KKyAgICAgICAgaWYgJ2xhc3Rj
aGFuZ2VkZGF0ZScgaW4gZDoKKyAgICAgICAgICAgIHNlbGYubXRpbWUgPSBwYXJzZV93Y2luZm90
aW1lKGRbJ2xhc3RjaGFuZ2VkZGF0ZSddKQorICAgICAgICAgICAgc2VsZi50aW1lID0gc2VsZi5t
dGltZSAqIDEwMDAwMDAKKworICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgorICAgICAgICBy
ZXR1cm4gc2VsZi5fX2RpY3RfXyA9PSBvdGhlci5fX2RpY3RfXworCitkZWYgcGFyc2Vfd2NpbmZv
dGltZSh0aW1lc3RyKToKKyAgICAiIiIgUmV0dXJucyBzZWNvbmRzIHNpbmNlIGVwb2NoLCBVVEMu
ICIiIgorICAgICMgZXhhbXBsZTogMjAwMy0xMC0yNyAyMDo0MzoxNCArMDEwMCAoTW9uLCAyNyBP
Y3QgMjAwMykKKyAgICBtID0gcmUubWF0Y2gocicoXGQrLVxkKy1cZCsgXGQrOlxkKzpcZCspIChb
Ky1dXGQrKSAuKicsIHRpbWVzdHIpCisgICAgaWYgbm90IG06CisgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoInRpbWVzdHJpbmcgJXIgZG9lcyBub3QgbWF0Y2giICUgdGltZXN0cikKKyAgICB0aW1l
c3RyLCB0aW1lem9uZSA9IG0uZ3JvdXBzKCkKKyAgICAjIGRvIG5vdCBoYW5kbGUgdGltZXpvbmUg
c3BlY2lhbGx5LCByZXR1cm4gdmFsdWUgc2hvdWxkIGJlIFVUQworICAgIHBhcnNlZHRpbWUgPSB0
aW1lLnN0cnB0aW1lKHRpbWVzdHIsICIlWS0lbS0lZCAlSDolTTolUyIpCisgICAgcmV0dXJuIGNh
bGVuZGFyLnRpbWVnbShwYXJzZWR0aW1lKQorCitkZWYgbWFrZV9yZWN1cnNpdmVfcHJvcGRpY3Qo
d2Nyb290LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXggPSByZS5jb21waWxlKCJQcm9wZXJ0aWVzIG9uICcoLiopJzoi
KSk6CisgICAgIiIiIFJldHVybiBhIGRpY3Rpb25hcnkgb2YgcGF0aC0+UHJvcExpc3REaWN0IG1h
cHBpbmdzLiAiIiIKKyAgICBsaW5lcyA9IFt4IGZvciB4IGluIG91dHB1dC5zcGxpdCgnXG4nKSBp
ZiB4XQorICAgIHBkaWN0ID0ge30KKyAgICB3aGlsZSBsaW5lczoKKyAgICAgICAgbGluZSA9IGxp
bmVzLnBvcCgwKQorICAgICAgICBtID0gcmV4Lm1hdGNoKGxpbmUpCisgICAgICAgIGlmIG5vdCBt
OgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY291bGQgbm90IHBhcnNlIHByb3BnZXQt
bGluZTogJXIiICUgbGluZSkKKyAgICAgICAgcGF0aCA9IG0uZ3JvdXBzKClbMF0KKyAgICAgICAg
d2NwYXRoID0gd2Nyb290LmpvaW4ocGF0aCwgYWJzPTEpCisgICAgICAgIHByb3BuYW1lcyA9IFtd
CisgICAgICAgIHdoaWxlIGxpbmVzIGFuZCBsaW5lc1swXS5zdGFydHN3aXRoKCcgICcpOgorICAg
ICAgICAgICAgcHJvcG5hbWUgPSBsaW5lcy5wb3AoMCkuc3RyaXAoKQorICAgICAgICAgICAgcHJv
cG5hbWVzLmFwcGVuZChwcm9wbmFtZSkKKyAgICAgICAgYXNzZXJ0IHByb3BuYW1lcywgIm11c3Qg
aGF2ZSBmb3VuZCBwcm9wZXJ0aWVzISIKKyAgICAgICAgcGRpY3Rbd2NwYXRoXSA9IFByb3BMaXN0
RGljdCh3Y3BhdGgsIHByb3BuYW1lcykKKyAgICByZXR1cm4gcGRpY3QKKworCitkZWYgaW1wb3J0
eG1sKGNhY2hlPVtdKToKKyAgICBpZiBjYWNoZToKKyAgICAgICAgcmV0dXJuIGNhY2hlCisgICAg
ZnJvbSB4bWwuZG9tIGltcG9ydCBtaW5pZG9tCisgICAgZnJvbSB4bWwucGFyc2Vycy5leHBhdCBp
bXBvcnQgRXhwYXRFcnJvcgorICAgIGNhY2hlLmV4dGVuZChbbWluaWRvbSwgRXhwYXRFcnJvcl0p
CisgICAgcmV0dXJuIGNhY2hlCisKK2NsYXNzIExvZ0VudHJ5OgorICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBsb2dlbnRyeSk6CisgICAgICAgIHNlbGYucmV2ID0gaW50KGxvZ2VudHJ5LmdldEF0dHJp
YnV0ZSgncmV2aXNpb24nKSkKKyAgICAgICAgZm9yIGxwYXJ0IGluIGZpbHRlcihOb25lLCBsb2dl
bnRyeS5jaGlsZE5vZGVzKToKKyAgICAgICAgICAgIGlmIGxwYXJ0Lm5vZGVUeXBlID09IGxwYXJ0
LkVMRU1FTlRfTk9ERToKKyAgICAgICAgICAgICAgICBpZiBscGFydC5ub2RlTmFtZSA9PSAnYXV0
aG9yJzoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hdXRob3IgPSBscGFydC5maXJzdENoaWxk
Lm5vZGVWYWx1ZQorICAgICAgICAgICAgICAgIGVsaWYgbHBhcnQubm9kZU5hbWUgPT0gJ21zZyc6
CisgICAgICAgICAgICAgICAgICAgIGlmIGxwYXJ0LmZpcnN0Q2hpbGQ6CisgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLm1zZyA9IGxwYXJ0LmZpcnN0Q2hpbGQubm9kZVZhbHVlCisgICAgICAg
ICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1zZyA9ICcn
CisgICAgICAgICAgICAgICAgZWxpZiBscGFydC5ub2RlTmFtZSA9PSAnZGF0ZSc6CisgICAgICAg
ICAgICAgICAgICAgICMyMDAzLTA3LTI5VDIwOjA1OjExLjU5ODYzN1oKKyAgICAgICAgICAgICAg
ICAgICAgdGltZXN0ciA9IGxwYXJ0LmZpcnN0Q2hpbGQubm9kZVZhbHVlCisgICAgICAgICAgICAg
ICAgICAgIHNlbGYuZGF0ZSA9IHBhcnNlX2Fwcl90aW1lKHRpbWVzdHIpCisgICAgICAgICAgICAg
ICAgZWxpZiBscGFydC5ub2RlTmFtZSA9PSAncGF0aHMnOgorICAgICAgICAgICAgICAgICAgICBz
ZWxmLnN0cnBhdGhzID0gW10KKyAgICAgICAgICAgICAgICAgICAgZm9yIHBwYXJ0IGluIGZpbHRl
cihOb25lLCBscGFydC5jaGlsZE5vZGVzKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHBw
YXJ0Lm5vZGVUeXBlID09IHBwYXJ0LkVMRU1FTlRfTk9ERToKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLnN0cnBhdGhzLmFwcGVuZChQYXRoRW50cnkocHBhcnQpKQorICAgIGRlZiBf
X3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICc8TG9nZW50cnkgcmV2PSVkIGF1dGhvcj0l
cyBkYXRlPSVzPicgJSAoCisgICAgICAgICAgICBzZWxmLnJldiwgc2VsZi5hdXRob3IsIHNlbGYu
ZGF0ZSkKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19wYXRoL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9weS9fcGF0aC93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NmNlNGRmNjZhZGUz
YWUxZTQzMDFjOWFiNjRjY2RkMjk2ZmE1YzViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9w
eS9fcGF0aC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDIyIEBACitUaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
L3B5L19wYXRoL19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fcGF0aC9jYWNoZXV0aWwucHkKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L3B5L19wYXRoL2NvbW1vbi5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3BhdGgvbG9jYWwucHkKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L3B5L19wYXRoL3N2bnVybC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3BhdGgvc3Zud2MucHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvcHkvX3Byb2Nlc3MvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19w
cm9jZXNzL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2YzcxNGFkMWFlZDNiMWI1MTFkOTBjMWUx
Y2U2Y2IyMmQ2NjJlYzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19wcm9jZXNzL19f
aW5pdF9fLnB5CkBAIC0wLDAgKzEgQEAKKyIiIiBoaWdoLWxldmVsIHN1Yi1wcm9jZXNzIGhhbmRs
aW5nICIiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fcHJvY2Vzcy9jbWRleGVjLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9weS9fcHJvY2Vzcy9jbWRleGVjLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4M2EyNDk0MDI5Njg3MDM4
MzQzZGUyOTAwY2MyYWM3ZTE5Yzg3NDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19w
cm9jZXNzL2NtZGV4ZWMucHkKQEAgLTAsMCArMSw0OSBAQAoraW1wb3J0IHN5cworaW1wb3J0IHN1
YnByb2Nlc3MKK2ltcG9ydCBweQorZnJvbSBzdWJwcm9jZXNzIGltcG9ydCBQb3BlbiwgUElQRQor
CitkZWYgY21kZXhlYyhjbWQpOgorICAgICIiIiByZXR1cm4gdW5pY29kZSBvdXRwdXQgb2YgZXhl
Y3V0aW5nICdjbWQnIGluIGEgc2VwYXJhdGUgcHJvY2Vzcy4KKworICAgIHJhaXNlIGNtZGV4ZWMu
RXJyb3IgZXhlY2VwdGlvbiBpZiB0aGUgY29tbWFuZCBmYWlsZWQuCisgICAgdGhlIGV4Y2VwdGlv
biB3aWxsIHByb3ZpZGUgYW4gJ2VycicgYXR0cmlidXRlIGNvbnRhaW5pbmcKKyAgICB0aGUgZXJy
b3Itb3V0cHV0IGZyb20gdGhlIGNvbW1hbmQuCisgICAgaWYgdGhlIHN1YnByb2Nlc3MgbW9kdWxl
IGRvZXMgbm90IHByb3ZpZGUgYSBwcm9wZXIgZW5jb2RpbmcvdW5pY29kZSBzdHJpbmdzCisgICAg
c3lzLmdldGRlZmF1bHRlbmNvZGluZygpIHdpbGwgYmUgdXNlZCwgaWYgdGhhdCBkb2VzIG5vdCBl
eGlzdCwgJ1VURi04Jy4KKyAgICAiIiIKKyAgICBwcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3Blbihj
bWQsIHNoZWxsPVRydWUsCisgICAgICAgICAgICB1bml2ZXJzYWxfbmV3bGluZXM9VHJ1ZSwKKyAg
ICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUp
CisgICAgb3V0LCBlcnIgPSBwcm9jZXNzLmNvbW11bmljYXRlKCkKKyAgICBpZiBzeXMudmVyc2lv
bl9pbmZvWzBdIDwgMzogIyBvbiBweTMgd2UgZ2V0IHVuaWNvZGUgc3RyaW5ncywgb24gcHkyIG5v
dAorICAgICAgICB0cnk6CisgICAgICAgICAgICBkZWZhdWx0X2VuY29kaW5nID0gc3lzLmdldGRl
ZmF1bHRlbmNvZGluZygpICMganl0aG9uIG1heSBub3QgaGF2ZSBpdAorICAgICAgICBleGNlcHQg
QXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICBkZWZhdWx0X2VuY29kaW5nID0gc3lzLnN0ZG91
dC5lbmNvZGluZyBvciAnVVRGLTgnCisgICAgICAgIG91dCA9IHVuaWNvZGUob3V0LCBwcm9jZXNz
LnN0ZG91dC5lbmNvZGluZyBvciBkZWZhdWx0X2VuY29kaW5nKQorICAgICAgICBlcnIgPSB1bmlj
b2RlKGVyciwgcHJvY2Vzcy5zdGRlcnIuZW5jb2Rpbmcgb3IgZGVmYXVsdF9lbmNvZGluZykKKyAg
ICBzdGF0dXMgPSBwcm9jZXNzLnBvbGwoKQorICAgIGlmIHN0YXR1czoKKyAgICAgICAgcmFpc2Ug
RXhlY3V0aW9uRmFpbGVkKHN0YXR1cywgc3RhdHVzLCBjbWQsIG91dCwgZXJyKQorICAgIHJldHVy
biBvdXQKKworY2xhc3MgRXhlY3V0aW9uRmFpbGVkKHB5LmVycm9yLkVycm9yKToKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgc3RhdHVzLCBzeXN0ZW1zdGF0dXMsIGNtZCwgb3V0LCBlcnIpOgorICAg
ICAgICBFeGNlcHRpb24uX19pbml0X18oc2VsZikKKyAgICAgICAgc2VsZi5zdGF0dXMgPSBzdGF0
dXMKKyAgICAgICAgc2VsZi5zeXN0ZW1zdGF0dXMgPSBzeXN0ZW1zdGF0dXMKKyAgICAgICAgc2Vs
Zi5jbWQgPSBjbWQKKyAgICAgICAgc2VsZi5lcnIgPSBlcnIKKyAgICAgICAgc2VsZi5vdXQgPSBv
dXQKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gIkV4ZWN1dGlvbkZh
aWxlZDogJWQgICVzXG4lcyIgJShzZWxmLnN0YXR1cywgc2VsZi5jbWQsIHNlbGYuZXJyKQorCisj
IGV4cG9ydCB0aGUgZXhjZXB0aW9uIHVuZGVyIHRoZSBuYW1lICdweS5wcm9jZXNzLmNtZGV4ZWMu
RXJyb3InCitjbWRleGVjLkVycm9yID0gRXhlY3V0aW9uRmFpbGVkCit0cnk6CisgICAgRXhlY3V0
aW9uRmFpbGVkLl9fbW9kdWxlX18gPSAncHkucHJvY2Vzcy5jbWRleGVjJworICAgIEV4ZWN1dGlv
bkZhaWxlZC5fX25hbWVfXyA9ICdFcnJvcicKK2V4Y2VwdCAoQXR0cmlidXRlRXJyb3IsIFR5cGVF
cnJvcik6CisgICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fcHJvY2Vzcy9mb3JrZWRm
dW5jLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9weS9fcHJvY2Vzcy9mb3JrZWRmdW5jLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFj
Mjg1MzA2ODg0YmYyZjAzMTBkOGI0Zjk0YTRhZTJmNzcyZmUwNGYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3B5L19wcm9jZXNzL2ZvcmtlZGZ1bmMucHkKQEAgLTAsMCArMSwxMjAgQEAKKwor
IiIiCisgICAgRm9ya2VkRnVuYyBwcm92aWRlcyBhIHdheSB0byBydW4gYSBmdW5jdGlvbiBpbiBh
IGZvcmtlZCBwcm9jZXNzCisgICAgYW5kIGdldCBhdCBpdHMgcmV0dXJuIHZhbHVlLCBzdGRvdXQg
YW5kIHN0ZGVyciBvdXRwdXQgYXMgd2VsbAorICAgIGFzIHNpZ25hbHMgYW5kIGV4aXRzdGF0dXN1
cy4KKyIiIgorCitpbXBvcnQgcHkKK2ltcG9ydCBvcworaW1wb3J0IHN5cworaW1wb3J0IG1hcnNo
YWwKKworCitkZWYgZ2V0X3VuYnVmZmVyZWRfaW8oZmQsIGZpbGVuYW1lKToKKyAgICBmID0gb3Bl
bihzdHIoZmlsZW5hbWUpLCAidyIpCisgICAgaWYgZmQgIT0gZi5maWxlbm8oKToKKyAgICAgICAg
b3MuZHVwMihmLmZpbGVubygpLCBmZCkKKyAgICBjbGFzcyBBdXRvRmx1c2g6CisgICAgICAgIGRl
ZiB3cml0ZShzZWxmLCBkYXRhKToKKyAgICAgICAgICAgIGYud3JpdGUoZGF0YSkKKyAgICAgICAg
ICAgIGYuZmx1c2goKQorICAgICAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgbmFtZSk6CisgICAg
ICAgICAgICByZXR1cm4gZ2V0YXR0cihmLCBuYW1lKQorICAgIHJldHVybiBBdXRvRmx1c2goKQor
CisKK2NsYXNzIEZvcmtlZEZ1bmM6CisgICAgRVhJVFNUQVRVU19FWENFUFRJT04gPSAzCisKKwor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmdW4sIGFyZ3M9Tm9uZSwga3dhcmdzPU5vbmUsIG5pY2Vf
bGV2ZWw9MCwKKyAgICAgICAgICAgICAgICAgY2hpbGRfb25fc3RhcnQ9Tm9uZSwgY2hpbGRfb25f
ZXhpdD1Ob25lKToKKyAgICAgICAgaWYgYXJncyBpcyBOb25lOgorICAgICAgICAgICAgYXJncyA9
IFtdCisgICAgICAgIGlmIGt3YXJncyBpcyBOb25lOgorICAgICAgICAgICAga3dhcmdzID0ge30K
KyAgICAgICAgc2VsZi5mdW4gPSBmdW4KKyAgICAgICAgc2VsZi5hcmdzID0gYXJncworICAgICAg
ICBzZWxmLmt3YXJncyA9IGt3YXJncworICAgICAgICBzZWxmLnRlbXBkaXIgPSB0ZW1wZGlyID0g
cHkucGF0aC5sb2NhbC5ta2R0ZW1wKCkKKyAgICAgICAgc2VsZi5SRVRWQUwgPSB0ZW1wZGlyLmVu
c3VyZSgncmV0dmFsJykKKyAgICAgICAgc2VsZi5TVERPVVQgPSB0ZW1wZGlyLmVuc3VyZSgnc3Rk
b3V0JykKKyAgICAgICAgc2VsZi5TVERFUlIgPSB0ZW1wZGlyLmVuc3VyZSgnc3RkZXJyJykKKwor
ICAgICAgICBwaWQgPSBvcy5mb3JrKCkKKyAgICAgICAgaWYgcGlkOiAgIyBpbiBwYXJlbnQgcHJv
Y2VzcworICAgICAgICAgICAgc2VsZi5waWQgPSBwaWQKKyAgICAgICAgZWxzZTogICMgaW4gY2hp
bGQgcHJvY2VzcworICAgICAgICAgICAgc2VsZi5waWQgPSBOb25lCisgICAgICAgICAgICBzZWxm
Ll9jaGlsZChuaWNlX2xldmVsLCBjaGlsZF9vbl9zdGFydCwgY2hpbGRfb25fZXhpdCkKKworICAg
IGRlZiBfY2hpbGQoc2VsZiwgbmljZV9sZXZlbCwgY2hpbGRfb25fc3RhcnQsIGNoaWxkX29uX2V4
aXQpOgorICAgICAgICAjIHJpZ2h0IG5vdyB3ZSBuZWVkIHRvIGNhbGwgYSBmdW5jdGlvbiwgYnV0
IGZpcnN0IHdlIG5lZWQgdG8KKyAgICAgICAgIyBtYXAgYWxsIElPIHRoYXQgbWlnaHQgaGFwcGVu
CisgICAgICAgIHN5cy5zdGRvdXQgPSBzdGRvdXQgPSBnZXRfdW5idWZmZXJlZF9pbygxLCBzZWxm
LlNURE9VVCkKKyAgICAgICAgc3lzLnN0ZGVyciA9IHN0ZGVyciA9IGdldF91bmJ1ZmZlcmVkX2lv
KDIsIHNlbGYuU1RERVJSKQorICAgICAgICByZXR2YWxmID0gc2VsZi5SRVRWQUwub3Blbigid2Ii
KQorICAgICAgICBFWElUU1RBVFVTID0gMAorICAgICAgICB0cnk6CisgICAgICAgICAgICBpZiBu
aWNlX2xldmVsOgorICAgICAgICAgICAgICAgIG9zLm5pY2UobmljZV9sZXZlbCkKKyAgICAgICAg
ICAgIHRyeToKKyAgICAgICAgICAgICAgICBpZiBjaGlsZF9vbl9zdGFydCBpcyBub3QgTm9uZToK
KyAgICAgICAgICAgICAgICAgICAgY2hpbGRfb25fc3RhcnQoKQorICAgICAgICAgICAgICAgIHJl
dHZhbCA9IHNlbGYuZnVuKCpzZWxmLmFyZ3MsICoqc2VsZi5rd2FyZ3MpCisgICAgICAgICAgICAg
ICAgcmV0dmFsZi53cml0ZShtYXJzaGFsLmR1bXBzKHJldHZhbCkpCisgICAgICAgICAgICAgICAg
aWYgY2hpbGRfb25fZXhpdCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgY2hpbGRf
b25fZXhpdCgpCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgZXhjaW5mbyA9
IHB5LmNvZGUuRXhjZXB0aW9uSW5mbygpCisgICAgICAgICAgICAgICAgc3RkZXJyLndyaXRlKHN0
cihleGNpbmZvLl9nZXRyZXByY3Jhc2goKSkpCisgICAgICAgICAgICAgICAgRVhJVFNUQVRVUyA9
IHNlbGYuRVhJVFNUQVRVU19FWENFUFRJT04KKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAg
IHN0ZG91dC5jbG9zZSgpCisgICAgICAgICAgICBzdGRlcnIuY2xvc2UoKQorICAgICAgICAgICAg
cmV0dmFsZi5jbG9zZSgpCisgICAgICAgIG9zLmNsb3NlKDEpCisgICAgICAgIG9zLmNsb3NlKDIp
CisgICAgICAgIG9zLl9leGl0KEVYSVRTVEFUVVMpCisKKyAgICBkZWYgd2FpdGZpbmlzaChzZWxm
LCB3YWl0ZXI9b3Mud2FpdHBpZCk6CisgICAgICAgIHBpZCwgc3lzdGVtc3RhdHVzID0gd2FpdGVy
KHNlbGYucGlkLCAwKQorICAgICAgICBpZiBzeXN0ZW1zdGF0dXM6CisgICAgICAgICAgICBpZiBv
cy5XSUZTSUdOQUxFRChzeXN0ZW1zdGF0dXMpOgorICAgICAgICAgICAgICAgIGV4aXRzdGF0dXMg
PSBvcy5XVEVSTVNJRyhzeXN0ZW1zdGF0dXMpICsgMTI4CisgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgIGV4aXRzdGF0dXMgPSBvcy5XRVhJVFNUQVRVUyhzeXN0ZW1zdGF0dXMpCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICBleGl0c3RhdHVzID0gMAorICAgICAgICBzaWduYWwg
PSBzeXN0ZW1zdGF0dXMgJiAweDdmCisgICAgICAgIGlmIG5vdCBleGl0c3RhdHVzIGFuZCBub3Qg
c2lnbmFsOgorICAgICAgICAgICAgcmV0dmFsID0gc2VsZi5SRVRWQUwub3BlbigncmInKQorICAg
ICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJldHZhbF9kYXRhID0gcmV0dmFsLnJlYWQo
KQorICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICByZXR2YWwuY2xvc2UoKQor
ICAgICAgICAgICAgcmV0dmFsID0gbWFyc2hhbC5sb2FkcyhyZXR2YWxfZGF0YSkKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIHJldHZhbCA9IE5vbmUKKyAgICAgICAgc3Rkb3V0ID0gc2VsZi5T
VERPVVQucmVhZCgpCisgICAgICAgIHN0ZGVyciA9IHNlbGYuU1RERVJSLnJlYWQoKQorICAgICAg
ICBzZWxmLl9yZW1vdmV0ZW1wKCkKKyAgICAgICAgcmV0dXJuIFJlc3VsdChleGl0c3RhdHVzLCBz
aWduYWwsIHJldHZhbCwgc3Rkb3V0LCBzdGRlcnIpCisKKyAgICBkZWYgX3JlbW92ZXRlbXAoc2Vs
Zik6CisgICAgICAgIGlmIHNlbGYudGVtcGRpci5jaGVjaygpOgorICAgICAgICAgICAgc2VsZi50
ZW1wZGlyLnJlbW92ZSgpCisKKyAgICBkZWYgX19kZWxfXyhzZWxmKToKKyAgICAgICAgaWYgc2Vs
Zi5waWQgaXMgbm90IE5vbmU6ICAjIG9ubHkgY2xlYW4gdXAgaW4gbWFpbiBwcm9jZXNzCisgICAg
ICAgICAgICBzZWxmLl9yZW1vdmV0ZW1wKCkKKworCitjbGFzcyBSZXN1bHQob2JqZWN0KToKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgZXhpdHN0YXR1cywgc2lnbmFsLCByZXR2YWwsIHN0ZG91dCwg
c3RkZXJyKToKKyAgICAgICAgc2VsZi5leGl0c3RhdHVzID0gZXhpdHN0YXR1cworICAgICAgICBz
ZWxmLnNpZ25hbCA9IHNpZ25hbAorICAgICAgICBzZWxmLnJldHZhbCA9IHJldHZhbAorICAgICAg
ICBzZWxmLm91dCA9IHN0ZG91dAorICAgICAgICBzZWxmLmVyciA9IHN0ZGVycgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS9weS9fcHJvY2Vzcy9raWxscHJvYy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3Byb2Nlc3Mv
a2lsbHByb2MucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMThlODMxMGI1ZjZjYWFmODg0NDczYmExMWM0YzRkM2I2
Zjc4YzdkMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3Byb2Nlc3Mva2lsbHByb2Mu
cHkKQEAgLTAsMCArMSwyMyBAQAoraW1wb3J0IHB5CitpbXBvcnQgb3MsIHN5cworCitpZiBzeXMu
cGxhdGZvcm0gPT0gIndpbjMyIiBvciBnZXRhdHRyKG9zLCAnX25hbWUnLCAnJykgPT0gJ250JzoK
KyAgICB0cnk6CisgICAgICAgIGltcG9ydCBjdHlwZXMKKyAgICBleGNlcHQgSW1wb3J0RXJyb3I6
CisgICAgICAgIGRlZiBkb2tpbGwocGlkKToKKyAgICAgICAgICAgIHB5LnByb2Nlc3MuY21kZXhl
YygidGFza2tpbGwgL0YgL1BJRCAlZCIgJShwaWQsKSkKKyAgICBlbHNlOgorICAgICAgICBkZWYg
ZG9raWxsKHBpZCk6CisgICAgICAgICAgICBQUk9DRVNTX1RFUk1JTkFURSA9IDEKKyAgICAgICAg
ICAgIGhhbmRsZSA9IGN0eXBlcy53aW5kbGwua2VybmVsMzIuT3BlblByb2Nlc3MoCisgICAgICAg
ICAgICAgICAgICAgICAgICBQUk9DRVNTX1RFUk1JTkFURSwgRmFsc2UsIHBpZCkKKyAgICAgICAg
ICAgIGN0eXBlcy53aW5kbGwua2VybmVsMzIuVGVybWluYXRlUHJvY2VzcyhoYW5kbGUsIC0xKQor
ICAgICAgICAgICAgY3R5cGVzLndpbmRsbC5rZXJuZWwzMi5DbG9zZUhhbmRsZShoYW5kbGUpCitl
bHNlOgorICAgIGRlZiBkb2tpbGwocGlkKToKKyAgICAgICAgb3Mua2lsbChwaWQsIDE1KQorCitk
ZWYga2lsbChwaWQpOgorICAgICIiIiBraWxsIHByb2Nlc3MgYnkgaWQuICIiIgorICAgIGRva2ls
bChwaWQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19wcm9jZXNzL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9weS9fcHJvY2Vzcy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MDMyOTI5MTA1
YmMwMmVhMzk0YmM0OWZjMDgxYjFiYWM2NDZlZWViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS9weS9fcHJvY2Vzcy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDIwIEBACitUaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
K0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHVi
LmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L3B5L19wcm9jZXNzL19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fcHJvY2Vzcy9jbWRl
eGVjLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9weS9fcHJvY2Vzcy9mb3JrZWRmdW5jLnB5CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9f
cHJvY2Vzcy9raWxscHJvYy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fc3RkLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9weS9fc3RkLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0ZDQzNjcyNjU0ZTdiY2E5YWEyNjE3ZDhmNmYx
NGFlMGFkOGQ4YTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19zdGQucHkKQEAgLTAs
MCArMSwyNiBAQAoraW1wb3J0IHN5cworaW1wb3J0IHdhcm5pbmdzCisKKworY2xhc3MgUHlTdGRJ
c0RlcHJlY2F0ZWRXYXJuaW5nKERlcHJlY2F0aW9uV2FybmluZyk6CisgICAgcGFzcworCisKK2Ns
YXNzIFN0ZChvYmplY3QpOgorICAgICIiIiBtYWtlcyB0b3AtbGV2ZWwgcHl0aG9uIG1vZHVsZXMg
YXZhaWxhYmxlIGFzIGFuIGF0dHJpYnV0ZSwKKyAgICAgICAgaW1wb3J0aW5nIHRoZW0gb24gZmly
c3QgYWNjZXNzLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBz
ZWxmLl9fZGljdF9fID0gc3lzLm1vZHVsZXMKKworICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCBu
YW1lKToKKyAgICAgICAgd2FybmluZ3Mud2FybigicHkuc3RkIGlzIGRlcHJlY2F0ZWQsIHBsYXNl
IGltcG9ydCAlcyBkaXJlY3RseSIgJSBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgIGNhdGVn
b3J5PVB5U3RkSXNEZXByZWNhdGVkV2FybmluZykKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
bSA9IF9faW1wb3J0X18obmFtZSkKKyAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAg
ICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoInB5LnN0ZDogY291bGQgbm90IGltcG9ydCAlcyIg
JSBuYW1lKQorICAgICAgICByZXR1cm4gbQorCitzdGQgPSBTdGQoKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5k
b3JlZF9wYWNrYWdlcy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjgzNGI4Mjg1YTU2YmVmMGUx
NTQzZmQ5MDFjN2U2ZjJmOGJjMjAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVu
ZG9yZWRfcGFja2FnZXMvX19pbml0X18ucHkKQEAgLTAsMCArMSBAQAorIyBUaGlzIGZpbGUgaXMg
cmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMu
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVu
ZG9yZWRfcGFja2FnZXMvYXBpcGtnLTEuNC5kaXN0LWluZm8vREVTQ1JJUFRJT04ucnN0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvYXBpcGtnLTEuNC5kaXN0LWluZm8vREVTQ1JJUFRJ
T04ucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjU0ODIyMjAwN2ZkZTkzZjU5ZjcxNTU0ZWQxNzQyYTdhYmFlMzFh
ZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlw
a2ctMS40LmRpc3QtaW5mby9ERVNDUklQVElPTi5yc3QKQEAgLTAsMCArMSw4NyBAQAorV2VsY29t
ZSB0byBhcGlwa2chCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworV2l0aCBhcGlwa2cgeW91
IGNhbiBjb250cm9sIHRoZSBleHBvcnRlZCBuYW1lc3BhY2Ugb2YgYQorcHl0aG9uIHBhY2thZ2Ug
YW5kIGdyZWF0bHkgcmVkdWNlIHRoZSBudW1iZXIgb2YgaW1wb3J0cyBmb3IgeW91ciB1c2Vycy4K
K0l0IGlzIGEgYHNtYWxsIHB1cmUgcHl0aG9uIG1vZHVsZWBfIHRoYXQgd29ya3Mgb24gdmlydHVh
bGx5IGFsbCBQeXRob24KK3ZlcnNpb25zLCBpbmNsdWRpbmcgQ1B5dGhvbjIuMyB0byBQeXRob24z
LjEsIEp5dGhvbiBhbmQgUHlQeS4gIEl0IGNvLW9wZXJhdGVzCit3ZWxsIHdpdGggUHl0aG9uJ3Mg
YGBoZWxwKClgYCBzeXN0ZW0sIGN1c3RvbSBpbXBvcnRlcnMgKFBFUDMwMikgYW5kIGNvbW1vbgor
Y29tbWFuZCBsaW5lIGNvbXBsZXRpb24gdG9vbHMuCisKK1VzYWdlIGlzIHZlcnkgc2ltcGxlOiB5
b3UgY2FuIHJlcXVpcmUgJ2FwaXBrZycgYXMgYSBkZXBlbmRlbmN5IG9yIHlvdQorY2FuIGNvcHkg
cGFzdGUgdGhlIDwyMDAgTGluZXMgb2YgY29kZSBpbnRvIHlvdXIgcHJvamVjdC4KKworCitUdXRv
cmlhbCBleGFtcGxlCistLS0tLS0tLS0tLS0tLS0tLS0tCisKK0hlcmUgaXMgYSBzaW1wbGUgYGBt
eXBrZ2BgIHBhY2thZ2UgdGhhdCBzcGVjaWZpZXMgb25lIG5hbWVzcGFjZQorYW5kIGV4cG9ydHMg
dHdvIG9iamVjdHMgaW1wb3J0ZWQgZnJvbSBkaWZmZXJlbnQgbW9kdWxlczo6CisKKyAgICAjIG15
cGtnL19faW5pdF9fLnB5CisgICAgaW1wb3J0IGFwaXBrZworICAgIGFwaXBrZy5pbml0cGtnKF9f
bmFtZV9fLCB7CisgICAgICAgICdwYXRoJzogeworICAgICAgICAgICAgJ0NsYXNzMSc6ICJfbXlw
a2cuc29tZW1vZHVsZTpDbGFzczEiLAorICAgICAgICAgICAgJ2Nsc2F0dHInOiAiX215cGtnLm90
aGVybW9kdWxlOkNsYXNzMi5hdHRyIiwKKyAgICAgICAgfQorICAgIH0KKworVGhlIHBhY2thZ2Ug
aXMgaW5pdGlhbGl6ZWQgd2l0aCBhIGRpY3Rpb25hcnkgYXMgbmFtZXNwYWNlLgorCitZb3UgbmVl
ZCB0byBjcmVhdGUgYSBgYF9teXBrZ2BgIHBhY2thZ2Ugd2l0aCBhIGBgc29tZW1vZHVsZS5weWBg
CithbmQgYGBvdGhlcm1vZHVsZS5weWBgIGNvbnRhaW5pbmcgdGhlIHJlc3BlY3RpdmUgY2xhc3Nl
cy4KK1RoZSBgYF9teXBrZ2BgIGlzIG5vdCBzcGVjaWFsIC0gaXQncyBhIGNvbXBsZXRlbHkKK3Jl
Z3VsYXIgcHl0aG9uIHBhY2thZ2UuCisKK05hbWVzcGFjZSBkaWN0aW9uYXJpZXMgY29udGFpbiBg
YG5hbWU6IHZhbHVlYGAgbWFwcGluZ3MKK3doZXJlIHRoZSB2YWx1ZSBtYXkgYmUgYW5vdGhlciBu
YW1lc3BhY2UgZGljdGlvbmFyeSBvcgorYSBzdHJpbmcgc3BlY2lmeWluZyBhbiBpbXBvcnQgbG9j
YXRpb24uICBPbiBhY2Nlc3NpbmcKK2FuIG5hbWVzcGFjZSBhdHRyaWJ1dGUgYW4gaW1wb3J0IHdp
bGwgYmUgcGVyZm9ybWVkOjoKKworICAgID4+PiBpbXBvcnQgbXlwa2cKKyAgICA+Pj4gbXlwa2cu
cGF0aAorICAgIDxBcGlNb2R1bGUgJ215cGtnLnBhdGgnPgorICAgID4+PiBteXBrZy5wYXRoLkNs
YXNzMSAgICMgJ19teXBrZy5zb21lbW9kdWxlJyBnZXRzIGltcG9ydGVkIG5vdworICAgIDxjbGFz
cyBfbXlwa2cuc29tZW1vZHVsZS5DbGFzczEgYXQgMHhiN2Q0MjhmYz4KKyAgICA+Pj4gbXlwa2cu
cGF0aC5jbHNhdHRyICAjICdfbXlwa2cub3RoZXJtb2R1bGUnIGdldHMgaW1wb3J0ZWQgbm93Cisg
ICAgNCAjIHRoZSB2YWx1ZSBvZiBfbXlwa2cub3RoZXJtb2R1bGUuQ2xhc3MyLmF0dHIKKworVGhl
IGBgbXlwa2cucGF0aGBgIG5hbWVzcGFjZSBhbmQgaXRzIHR3byBlbnRyaWVzIGFyZQorbG9hZGVk
IHdoZW4gdGhleSBhcmUgYWNjZXNzZWQuICAgVGhpcyBtZWFuczoKKworKiBsYXp5IGxvYWRpbmcg
LSBvbmx5IHdoYXQgaXMgYWN0dWFsbHkgbmVlZGVkIGlzIGV2ZXIgbG9hZGVkCisKKyogb25seSB0
aGUgcm9vdCAibXlwa2ciIGV2ZXIgbmVlZHMgdG8gYmUgaW1wb3J0ZWQgdG8gZ2V0CisgIGFjY2Vz
cyB0byB0aGUgY29tcGxldGUgZnVuY3Rpb25hbGl0eS4KKworKiB0aGUgdW5kZXJseWluZyBtb2R1
bGVzIGFyZSBhbHNvIGFjY2Vzc2libGUsIGZvciBleGFtcGxlOjoKKworICAgIGZyb20gbXlwa2cu
c3ViIGltcG9ydCBDbGFzczEKKworCitJbmNsdWRpbmcgYXBpcGtnIGluIHlvdXIgcGFja2FnZQor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworSWYgeW91IGRvbid0IHdh
bnQgdG8gYWRkIGFuIGBgYXBpcGtnYGAgZGVwZW5kZW5jeSB0byB5b3VyIHBhY2thZ2UgeW91Citj
YW4gY29weSB0aGUgYGFwaXBrZy5weWBfIGZpbGUgc29tZXdoZXJlIHRvIHlvdXIgb3duIHBhY2th
Z2UsCitmb3IgZXhhbXBsZSBgYF9teXBrZy9hcGlwa2cucHlgYCBpbiB0aGUgYWJvdmUgZXhhbXBs
ZS4gIFlvdQordGhlbiBpbXBvcnQgdGhlIGBgaW5pdHBrZ2BgIGZ1bmN0aW9uIGZyb20gdGhhdCBu
ZXcgcGxhY2UgYW5kCithcmUgZ29vZCB0byBnby4KKworLi4gX2BzbWFsbCBwdXJlIHB5dGhvbiBt
b2R1bGVgOgorLi4gX2BhcGlwa2cucHlgOiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9hcGlw
a2cvc3JjL3RpcC9hcGlwa2cucHkKKworRmVlZGJhY2s/CistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCitJZiB5b3UgaGF2ZSBxdWVzdGlvbnMgeW91IGFyZSB3ZWxjb21lIHRvCisKKyogam9pbiB0
aGUgI3B5bGliIGNoYW5uZWwgb24gaXJjLmZyZWVub2RlLm5ldAorKiBzdWJzY3JpYmUgdG8gdGhl
IGh0dHA6Ly9jb2Rlc3BlYWsubmV0L21haWxtYW4vbGlzdGluZm8vcHktZGV2IGxpc3QuCisqIGNy
ZWF0ZSBhbiBpc3N1ZSBvbiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9hcGlwa2cvaXNzdWVz
CisKK2hhdmUgZnVuLAoraG9sZ2VyIGtyZWtlbAorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkv
X3ZlbmRvcmVkX3BhY2thZ2VzL2FwaXBrZy0xLjQuZGlzdC1pbmZvL0lOU1RBTExFUiBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2FwaXBrZy0xLjQuZGlzdC1pbmZvL0lOU1RBTExFUgpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hMWI1ODllMzhhMzIwNDFlNDkzMzJlNWU4MWMyZDM2M2RjNDE4ZDY4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvYXBpcGtnLTEuNC5k
aXN0LWluZm8vSU5TVEFMTEVSCkBAIC0wLDAgKzEgQEAKK3BpcApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS9weS9fdmVuZG9yZWRfcGFja2FnZXMvYXBpcGtnLTEuNC5kaXN0LWluZm8vTUVUQURBVEEgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby9NRVRBREFU
QQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lYjdlNjBhY2ZmYWY2MjBkNGY4ODk1YzFkODMwNWVjOTJlMWQ5M2FjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvYXBpcGtnLTEu
NC5kaXN0LWluZm8vTUVUQURBVEEKQEAgLTAsMCArMSwxMDkgQEAKK01ldGFkYXRhLVZlcnNpb246
IDIuMAorTmFtZTogYXBpcGtnCitWZXJzaW9uOiAxLjQKK1N1bW1hcnk6IGFwaXBrZzogbmFtZXNw
YWNlIGNvbnRyb2wgYW5kIGxhenktaW1wb3J0IG1lY2hhbmlzbQorSG9tZS1wYWdlOiBodHRwOi8v
Yml0YnVja2V0Lm9yZy9ocGs0Mi9hcGlwa2cKK0F1dGhvcjogaG9sZ2VyIGtyZWtlbAorQXV0aG9y
LWVtYWlsOiBob2xnZXIgYXQgbWVybGludXguZXUKK0xpY2Vuc2U6IE1JVCBMaWNlbnNlCitQbGF0
Zm9ybTogdW5peAorUGxhdGZvcm06IGxpbnV4CitQbGF0Zm9ybTogb3N4CitQbGF0Zm9ybTogY3ln
d2luCitQbGF0Zm9ybTogd2luMzIKK0NsYXNzaWZpZXI6IERldmVsb3BtZW50IFN0YXR1cyA6OiA0
IC0gQmV0YQorQ2xhc3NpZmllcjogSW50ZW5kZWQgQXVkaWVuY2UgOjogRGV2ZWxvcGVycworQ2xh
c3NpZmllcjogTGljZW5zZSA6OiBPU0kgQXBwcm92ZWQgOjogTUlUIExpY2Vuc2UKK0NsYXNzaWZp
ZXI6IE9wZXJhdGluZyBTeXN0ZW0gOjogUE9TSVgKK0NsYXNzaWZpZXI6IE9wZXJhdGluZyBTeXN0
ZW0gOjogTWljcm9zb2Z0IDo6IFdpbmRvd3MKK0NsYXNzaWZpZXI6IE9wZXJhdGluZyBTeXN0ZW0g
OjogTWFjT1MgOjogTWFjT1MgWAorQ2xhc3NpZmllcjogVG9waWMgOjogU29mdHdhcmUgRGV2ZWxv
cG1lbnQgOjogTGlicmFyaWVzCitDbGFzc2lmaWVyOiBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQ
eXRob24KKworV2VsY29tZSB0byBhcGlwa2chCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
V2l0aCBhcGlwa2cgeW91IGNhbiBjb250cm9sIHRoZSBleHBvcnRlZCBuYW1lc3BhY2Ugb2YgYQor
cHl0aG9uIHBhY2thZ2UgYW5kIGdyZWF0bHkgcmVkdWNlIHRoZSBudW1iZXIgb2YgaW1wb3J0cyBm
b3IgeW91ciB1c2Vycy4KK0l0IGlzIGEgYHNtYWxsIHB1cmUgcHl0aG9uIG1vZHVsZWBfIHRoYXQg
d29ya3Mgb24gdmlydHVhbGx5IGFsbCBQeXRob24KK3ZlcnNpb25zLCBpbmNsdWRpbmcgQ1B5dGhv
bjIuMyB0byBQeXRob24zLjEsIEp5dGhvbiBhbmQgUHlQeS4gIEl0IGNvLW9wZXJhdGVzCit3ZWxs
IHdpdGggUHl0aG9uJ3MgYGBoZWxwKClgYCBzeXN0ZW0sIGN1c3RvbSBpbXBvcnRlcnMgKFBFUDMw
MikgYW5kIGNvbW1vbgorY29tbWFuZCBsaW5lIGNvbXBsZXRpb24gdG9vbHMuCisKK1VzYWdlIGlz
IHZlcnkgc2ltcGxlOiB5b3UgY2FuIHJlcXVpcmUgJ2FwaXBrZycgYXMgYSBkZXBlbmRlbmN5IG9y
IHlvdQorY2FuIGNvcHkgcGFzdGUgdGhlIDwyMDAgTGluZXMgb2YgY29kZSBpbnRvIHlvdXIgcHJv
amVjdC4KKworCitUdXRvcmlhbCBleGFtcGxlCistLS0tLS0tLS0tLS0tLS0tLS0tCisKK0hlcmUg
aXMgYSBzaW1wbGUgYGBteXBrZ2BgIHBhY2thZ2UgdGhhdCBzcGVjaWZpZXMgb25lIG5hbWVzcGFj
ZQorYW5kIGV4cG9ydHMgdHdvIG9iamVjdHMgaW1wb3J0ZWQgZnJvbSBkaWZmZXJlbnQgbW9kdWxl
czo6CisKKyAgICAjIG15cGtnL19faW5pdF9fLnB5CisgICAgaW1wb3J0IGFwaXBrZworICAgIGFw
aXBrZy5pbml0cGtnKF9fbmFtZV9fLCB7CisgICAgICAgICdwYXRoJzogeworICAgICAgICAgICAg
J0NsYXNzMSc6ICJfbXlwa2cuc29tZW1vZHVsZTpDbGFzczEiLAorICAgICAgICAgICAgJ2Nsc2F0
dHInOiAiX215cGtnLm90aGVybW9kdWxlOkNsYXNzMi5hdHRyIiwKKyAgICAgICAgfQorICAgIH0K
KworVGhlIHBhY2thZ2UgaXMgaW5pdGlhbGl6ZWQgd2l0aCBhIGRpY3Rpb25hcnkgYXMgbmFtZXNw
YWNlLgorCitZb3UgbmVlZCB0byBjcmVhdGUgYSBgYF9teXBrZ2BgIHBhY2thZ2Ugd2l0aCBhIGBg
c29tZW1vZHVsZS5weWBgCithbmQgYGBvdGhlcm1vZHVsZS5weWBgIGNvbnRhaW5pbmcgdGhlIHJl
c3BlY3RpdmUgY2xhc3Nlcy4KK1RoZSBgYF9teXBrZ2BgIGlzIG5vdCBzcGVjaWFsIC0gaXQncyBh
IGNvbXBsZXRlbHkKK3JlZ3VsYXIgcHl0aG9uIHBhY2thZ2UuCisKK05hbWVzcGFjZSBkaWN0aW9u
YXJpZXMgY29udGFpbiBgYG5hbWU6IHZhbHVlYGAgbWFwcGluZ3MKK3doZXJlIHRoZSB2YWx1ZSBt
YXkgYmUgYW5vdGhlciBuYW1lc3BhY2UgZGljdGlvbmFyeSBvcgorYSBzdHJpbmcgc3BlY2lmeWlu
ZyBhbiBpbXBvcnQgbG9jYXRpb24uICBPbiBhY2Nlc3NpbmcKK2FuIG5hbWVzcGFjZSBhdHRyaWJ1
dGUgYW4gaW1wb3J0IHdpbGwgYmUgcGVyZm9ybWVkOjoKKworICAgID4+PiBpbXBvcnQgbXlwa2cK
KyAgICA+Pj4gbXlwa2cucGF0aAorICAgIDxBcGlNb2R1bGUgJ215cGtnLnBhdGgnPgorICAgID4+
PiBteXBrZy5wYXRoLkNsYXNzMSAgICMgJ19teXBrZy5zb21lbW9kdWxlJyBnZXRzIGltcG9ydGVk
IG5vdworICAgIDxjbGFzcyBfbXlwa2cuc29tZW1vZHVsZS5DbGFzczEgYXQgMHhiN2Q0MjhmYz4K
KyAgICA+Pj4gbXlwa2cucGF0aC5jbHNhdHRyICAjICdfbXlwa2cub3RoZXJtb2R1bGUnIGdldHMg
aW1wb3J0ZWQgbm93CisgICAgNCAjIHRoZSB2YWx1ZSBvZiBfbXlwa2cub3RoZXJtb2R1bGUuQ2xh
c3MyLmF0dHIKKworVGhlIGBgbXlwa2cucGF0aGBgIG5hbWVzcGFjZSBhbmQgaXRzIHR3byBlbnRy
aWVzIGFyZQorbG9hZGVkIHdoZW4gdGhleSBhcmUgYWNjZXNzZWQuICAgVGhpcyBtZWFuczoKKwor
KiBsYXp5IGxvYWRpbmcgLSBvbmx5IHdoYXQgaXMgYWN0dWFsbHkgbmVlZGVkIGlzIGV2ZXIgbG9h
ZGVkCisKKyogb25seSB0aGUgcm9vdCAibXlwa2ciIGV2ZXIgbmVlZHMgdG8gYmUgaW1wb3J0ZWQg
dG8gZ2V0CisgIGFjY2VzcyB0byB0aGUgY29tcGxldGUgZnVuY3Rpb25hbGl0eS4KKworKiB0aGUg
dW5kZXJseWluZyBtb2R1bGVzIGFyZSBhbHNvIGFjY2Vzc2libGUsIGZvciBleGFtcGxlOjoKKwor
ICAgIGZyb20gbXlwa2cuc3ViIGltcG9ydCBDbGFzczEKKworCitJbmNsdWRpbmcgYXBpcGtnIGlu
IHlvdXIgcGFja2FnZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
SWYgeW91IGRvbid0IHdhbnQgdG8gYWRkIGFuIGBgYXBpcGtnYGAgZGVwZW5kZW5jeSB0byB5b3Vy
IHBhY2thZ2UgeW91CitjYW4gY29weSB0aGUgYGFwaXBrZy5weWBfIGZpbGUgc29tZXdoZXJlIHRv
IHlvdXIgb3duIHBhY2thZ2UsCitmb3IgZXhhbXBsZSBgYF9teXBrZy9hcGlwa2cucHlgYCBpbiB0
aGUgYWJvdmUgZXhhbXBsZS4gIFlvdQordGhlbiBpbXBvcnQgdGhlIGBgaW5pdHBrZ2BgIGZ1bmN0
aW9uIGZyb20gdGhhdCBuZXcgcGxhY2UgYW5kCithcmUgZ29vZCB0byBnby4KKworLi4gX2BzbWFs
bCBwdXJlIHB5dGhvbiBtb2R1bGVgOgorLi4gX2BhcGlwa2cucHlgOiBodHRwOi8vYml0YnVja2V0
Lm9yZy9ocGs0Mi9hcGlwa2cvc3JjL3RpcC9hcGlwa2cucHkKKworRmVlZGJhY2s/CistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorCitJZiB5b3UgaGF2ZSBxdWVzdGlvbnMgeW91IGFyZSB3ZWxjb21l
IHRvCisKKyogam9pbiB0aGUgI3B5bGliIGNoYW5uZWwgb24gaXJjLmZyZWVub2RlLm5ldAorKiBz
dWJzY3JpYmUgdG8gdGhlIGh0dHA6Ly9jb2Rlc3BlYWsubmV0L21haWxtYW4vbGlzdGluZm8vcHkt
ZGV2IGxpc3QuCisqIGNyZWF0ZSBhbiBpc3N1ZSBvbiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0
Mi9hcGlwa2cvaXNzdWVzCisKK2hhdmUgZnVuLAoraG9sZ2VyIGtyZWtlbAorCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2FwaXBrZy0xLjQuZGlzdC1pbmZvL1JF
Q09SRCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2FwaXBrZy0xLjQuZGlzdC1pbmZv
L1JFQ09SRApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kYzcyOTU5ZGZlMDAwMjhmMGYwYjU5YWYzMzRhNTA1ZjYwNmQ2
ZmE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvYXBp
cGtnLTEuNC5kaXN0LWluZm8vUkVDT1JECkBAIC0wLDAgKzEsOSBAQAorYXBpcGtnLnB5LHNoYTI1
Nj1CTm52X3F2cTh6WnZrdS11dWRvcWdwM1hUTkZid3NOVW10ek9LclZJN1gwLDY0MjANCithcGlw
a2ctMS40LmRpc3QtaW5mby90b3BfbGV2ZWwudHh0LHNoYTI1Nj0zVEdTNm5tTjdranhoVUs0THBQ
Q0IzUWtRSTM0UVlHclQwWlFHV2Fqb1o4LDcNCithcGlwa2ctMS40LmRpc3QtaW5mby9NRVRBREFU
QSxzaGEyNTY9RmtfOEJySHlYRS0ta3ZCM19aQktnd3ZQYUt1c0FaVWpjaEgta3BCNjNIcywzNDkx
DQorYXBpcGtnLTEuNC5kaXN0LWluZm8vREVTQ1JJUFRJT04ucnN0LHNoYTI1Nj1Sa01RcWs1bGpo
R3kwRGlaa1JfbmJwanF2d0NJaHVJRUhzeXZrbjNPOTZrLDI4MDMNCithcGlwa2ctMS40LmRpc3Qt
aW5mby9tZXRhZGF0YS5qc29uLHNoYTI1Nj1HZHNoWXJBXzdnQUlJM0UzRVFNSC0zMUJIelUta2xU
WjZiUFF6bERtdXk0LDc3OQ0KK2FwaXBrZy0xLjQuZGlzdC1pbmZvL1dIRUVMLHNoYTI1Nj1BdlIw
V2VUcERheFQ2NDVibDVGUXhVSzZOUHNUbHMydHRwY0dKZzNqMVhnLDExMA0KK2FwaXBrZy0xLjQu
ZGlzdC1pbmZvL1JFQ09SRCwsDQorYXBpcGtnLTEuNC5kaXN0LWluZm8vSU5TVEFMTEVSLHNoYTI1
Nj16dXV1ZTRrbm95Si1Vd1BQWGc4ZmV6UzdWQ3JYSlFyQVA3emVOdXd2RlFnLDQNCitfX3B5Y2Fj
aGVfXy9hcGlwa2cuY3B5dGhvbi0zNS5weWMsLA0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3Zl
bmRvcmVkX3BhY2thZ2VzL2FwaXBrZy0xLjQuZGlzdC1pbmZvL1dIRUVMIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9f
dmVuZG9yZWRfcGFja2FnZXMvYXBpcGtnLTEuNC5kaXN0LWluZm8vV0hFRUwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OWRmZjY5ZDg2MTAyZDM2MTY5Y2NmNDJhOWU3MTg4NWQzZGMxNzE1NQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2FwaXBrZy0xLjQuZGlzdC1pbmZvL1dI
RUVMCkBAIC0wLDAgKzEsNiBAQAorV2hlZWwtVmVyc2lvbjogMS4wCitHZW5lcmF0b3I6IGJkaXN0
X3doZWVsICgwLjI0LjApCitSb290LUlzLVB1cmVsaWI6IHRydWUKK1RhZzogcHkyLW5vbmUtYW55
CitUYWc6IHB5My1ub25lLWFueQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9w
YWNrYWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby9tZXRhZGF0YS5qc29uIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9f
dmVuZG9yZWRfcGFja2FnZXMvYXBpcGtnLTEuNC5kaXN0LWluZm8vbWV0YWRhdGEuanNvbgpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wNTYwOWI5OTM3M2FjNWZiOWFkNmQ5MThkMjc5M2M4OTNmZDlmNDg3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvYXBpcGtnLTEuNC5kaXN0
LWluZm8vbWV0YWRhdGEuanNvbgpAQCAtMCwwICsxIEBACit7ImxpY2Vuc2UiOiAiTUlUIExpY2Vu
c2UiLCAibmFtZSI6ICJhcGlwa2ciLCAibWV0YWRhdGFfdmVyc2lvbiI6ICIyLjAiLCAiZ2VuZXJh
dG9yIjogImJkaXN0X3doZWVsICgwLjI0LjApIiwgInN1bW1hcnkiOiAiYXBpcGtnOiBuYW1lc3Bh
Y2UgY29udHJvbCBhbmQgbGF6eS1pbXBvcnQgbWVjaGFuaXNtIiwgInBsYXRmb3JtIjogInVuaXgi
LCAidmVyc2lvbiI6ICIxLjQiLCAiZXh0ZW5zaW9ucyI6IHsicHl0aG9uLmRldGFpbHMiOiB7InBy
b2plY3RfdXJscyI6IHsiSG9tZSI6ICJodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9hcGlwa2ci
fSwgImRvY3VtZW50X25hbWVzIjogeyJkZXNjcmlwdGlvbiI6ICJERVNDUklQVElPTi5yc3QifSwg
ImNvbnRhY3RzIjogW3sicm9sZSI6ICJhdXRob3IiLCAiZW1haWwiOiAiaG9sZ2VyIGF0IG1lcmxp
bnV4LmV1IiwgIm5hbWUiOiAiaG9sZ2VyIGtyZWtlbCJ9XX19LCAiY2xhc3NpZmllcnMiOiBbIkRl
dmVsb3BtZW50IFN0YXR1cyA6OiA0IC0gQmV0YSIsICJJbnRlbmRlZCBBdWRpZW5jZSA6OiBEZXZl
bG9wZXJzIiwgIkxpY2Vuc2UgOjogT1NJIEFwcHJvdmVkIDo6IE1JVCBMaWNlbnNlIiwgIk9wZXJh
dGluZyBTeXN0ZW0gOjogUE9TSVgiLCAiT3BlcmF0aW5nIFN5c3RlbSA6OiBNaWNyb3NvZnQgOjog
V2luZG93cyIsICJPcGVyYXRpbmcgU3lzdGVtIDo6IE1hY09TIDo6IE1hY09TIFgiLCAiVG9waWMg
OjogU29mdHdhcmUgRGV2ZWxvcG1lbnQgOjogTGlicmFyaWVzIiwgIlByb2dyYW1taW5nIExhbmd1
YWdlIDo6IFB5dGhvbiJdfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2FwaXBrZy0xLjQuZGlzdC1pbmZvL3RvcF9s
ZXZlbC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlwa2ctMS40LmRpc3Qt
aW5mby90b3BfbGV2ZWwudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyMjIxYzhmOWU5NjM5MjQzZDJiY2UyZTky
MzBiNDlkNDEzYjQ1MjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9w
YWNrYWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby90b3BfbGV2ZWwudHh0CkBAIC0wLDAgKzEgQEAK
K2FwaXBrZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvYXBpcGtn
LTEuNC5kaXN0LWluZm8vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNr
YWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzlm
M2VlOGIxMzllNDIyMzgzMDljZjRmOTVkMjU2N2ZiMGUzNGIzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvYXBpcGtnLTEuNC5kaXN0LWluZm8vdzNjLWlt
cG9ydC5sb2cKQEAgLTAsMCArMSwyMyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25l
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRf
cGFja2FnZXMvYXBpcGtnLTEuNC5kaXN0LWluZm8vREVTQ1JJUFRJT04ucnN0CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9w
eS9fdmVuZG9yZWRfcGFja2FnZXMvYXBpcGtnLTEuNC5kaXN0LWluZm8vSU5TVEFMTEVSCisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvYXBpcGtnLTEuNC5kaXN0LWluZm8vTUVUQURBVEEK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby9SRUNP
UkQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby9X
SEVFTAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2FwaXBrZy0xLjQuZGlzdC1pbmZv
L21ldGFkYXRhLmpzb24KKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlwa2ctMS40
LmRpc3QtaW5mby90b3BfbGV2ZWwudHh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3Jl
ZF9wYWNrYWdlcy9hcGlwa2cucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlw
a2cucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOWQ1NmUwYmNiYWU0NzdjNjhlMTdhODI4MmExMjZhMmEyOGM3ODc1
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2FwaXBr
Zy5weQpAQCAtMCwwICsxLDIwNSBAQAorIiIiCithcGlwa2c6IGNvbnRyb2wgdGhlIGV4cG9ydGVk
IG5hbWVzcGFjZSBvZiBhIHB5dGhvbiBwYWNrYWdlLgorCitzZWUgaHR0cDovL3B5cGkucHl0aG9u
Lm9yZy9weXBpL2FwaXBrZworCisoYykgaG9sZ2VyIGtyZWtlbCwgMjAwOSAtIE1JVCBsaWNlbnNl
CisiIiIKK2ltcG9ydCBvcworaW1wb3J0IHN5cworZnJvbSB0eXBlcyBpbXBvcnQgTW9kdWxlVHlw
ZQorCisKK19fdmVyc2lvbl9fID0gJzEuNCcKKworCitkZWYgX3B5X2Fic3BhdGgocGF0aCk6Cisg
ICAgIiIiCisgICAgc3BlY2lhbCB2ZXJzaW9uIG9mIGFic3BhdGgKKyAgICB0aGF0IHdpbGwgbGVh
dmUgcGF0aHMgZnJvbSBqeXRob24gamFycyBhbG9uZQorICAgICIiIgorICAgIGlmIHBhdGguc3Rh
cnRzd2l0aCgnX19weWNsYXNzcGF0aF9fJyk6CisKKyAgICAgICAgcmV0dXJuIHBhdGgKKyAgICBl
bHNlOgorICAgICAgICByZXR1cm4gb3MucGF0aC5hYnNwYXRoKHBhdGgpCisKKworZGVmIGRpc3Ry
aWJ1dGlvbl92ZXJzaW9uKG5hbWUpOgorICAgICIiInRyeSB0byBnZXQgdGhlIHZlcnNpb24gb2Yg
dGhlIG5hbWVkIGRpc3RyaWJ1dGlvbiwKKyAgICByZXR1cnMgTm9uZSBvbiBmYWlsdXJlIiIiCisg
ICAgZnJvbSBwa2dfcmVzb3VyY2VzIGltcG9ydCBnZXRfZGlzdHJpYnV0aW9uLCBEaXN0cmlidXRp
b25Ob3RGb3VuZAorICAgIHRyeToKKyAgICAgICAgZGlzdCA9IGdldF9kaXN0cmlidXRpb24obmFt
ZSkKKyAgICBleGNlcHQgRGlzdHJpYnV0aW9uTm90Rm91bmQ6CisgICAgICAgIHBhc3MKKyAgICBl
bHNlOgorICAgICAgICByZXR1cm4gZGlzdC52ZXJzaW9uCisKKworZGVmIGluaXRwa2cocGtnbmFt
ZSwgZXhwb3J0ZGVmcywgYXR0cj1kaWN0KCksIGVhZ2VyPUZhbHNlKToKKyAgICAiIiIgaW5pdGlh
bGl6ZSBnaXZlbiBwYWNrYWdlIGZyb20gdGhlIGV4cG9ydCBkZWZpbml0aW9ucy4gIiIiCisgICAg
b2xkbW9kID0gc3lzLm1vZHVsZXMuZ2V0KHBrZ25hbWUpCisgICAgZCA9IHt9CisgICAgZiA9IGdl
dGF0dHIob2xkbW9kLCAnX19maWxlX18nLCBOb25lKQorICAgIGlmIGY6CisgICAgICAgIGYgPSBf
cHlfYWJzcGF0aChmKQorICAgIGRbJ19fZmlsZV9fJ10gPSBmCisgICAgaWYgaGFzYXR0cihvbGRt
b2QsICdfX3ZlcnNpb25fXycpOgorICAgICAgICBkWydfX3ZlcnNpb25fXyddID0gb2xkbW9kLl9f
dmVyc2lvbl9fCisgICAgaWYgaGFzYXR0cihvbGRtb2QsICdfX2xvYWRlcl9fJyk6CisgICAgICAg
IGRbJ19fbG9hZGVyX18nXSA9IG9sZG1vZC5fX2xvYWRlcl9fCisgICAgaWYgaGFzYXR0cihvbGRt
b2QsICdfX3BhdGhfXycpOgorICAgICAgICBkWydfX3BhdGhfXyddID0gW19weV9hYnNwYXRoKHAp
IGZvciBwIGluIG9sZG1vZC5fX3BhdGhfX10KKyAgICBpZiAnX19kb2NfXycgbm90IGluIGV4cG9y
dGRlZnMgYW5kIGdldGF0dHIob2xkbW9kLCAnX19kb2NfXycsIE5vbmUpOgorICAgICAgICBkWydf
X2RvY19fJ10gPSBvbGRtb2QuX19kb2NfXworICAgIGQudXBkYXRlKGF0dHIpCisgICAgaWYgaGFz
YXR0cihvbGRtb2QsICJfX2RpY3RfXyIpOgorICAgICAgICBvbGRtb2QuX19kaWN0X18udXBkYXRl
KGQpCisgICAgbW9kID0gQXBpTW9kdWxlKHBrZ25hbWUsIGV4cG9ydGRlZnMsIGltcGxwcmVmaXg9
cGtnbmFtZSwgYXR0cj1kKQorICAgIHN5cy5tb2R1bGVzW3BrZ25hbWVdID0gbW9kCisgICAgIyBl
YWdlcmxvYWQgaW4gYnlwdGhvbiB0byBhdm9pZCB0aGVpciBtb25rZXlwYXRjaGluZyBicmVha2lu
ZyBwYWNrYWdlcworICAgIGlmICdicHl0aG9uJyBpbiBzeXMubW9kdWxlcyBvciBlYWdlcjoKKyAg
ICAgICAgZm9yIG1vZHVsZSBpbiBzeXMubW9kdWxlcy52YWx1ZXMoKToKKyAgICAgICAgICAgIGlm
IGlzaW5zdGFuY2UobW9kdWxlLCBBcGlNb2R1bGUpOgorICAgICAgICAgICAgICAgIG1vZHVsZS5f
X2RpY3RfXworCisKK2RlZiBpbXBvcnRvYmoobW9kcGF0aCwgYXR0cm5hbWUpOgorICAgIG1vZHVs
ZSA9IF9faW1wb3J0X18obW9kcGF0aCwgTm9uZSwgTm9uZSwgWydfX2RvY19fJ10pCisgICAgaWYg
bm90IGF0dHJuYW1lOgorICAgICAgICByZXR1cm4gbW9kdWxlCisKKyAgICByZXR2YWwgPSBtb2R1
bGUKKyAgICBuYW1lcyA9IGF0dHJuYW1lLnNwbGl0KCIuIikKKyAgICBmb3IgeCBpbiBuYW1lczoK
KyAgICAgICAgcmV0dmFsID0gZ2V0YXR0cihyZXR2YWwsIHgpCisgICAgcmV0dXJuIHJldHZhbAor
CisKK2NsYXNzIEFwaU1vZHVsZShNb2R1bGVUeXBlKToKKyAgICBkZWYgX19kb2NnZXQoc2VsZik6
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9fZG9jCisgICAgICAgIGV4
Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIGlmICdfX2RvY19fJyBpbiBzZWxmLl9f
bWFwX186CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX19tYWtlYXR0cignX19kb2NfXycp
CisKKyAgICBkZWYgX19kb2NzZXQoc2VsZiwgdmFsdWUpOgorICAgICAgICBzZWxmLl9fZG9jID0g
dmFsdWUKKyAgICBfX2RvY19fID0gcHJvcGVydHkoX19kb2NnZXQsIF9fZG9jc2V0KQorCisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIGltcG9ydHNwZWMsIGltcGxwcmVmaXg9Tm9uZSwgYXR0
cj1Ob25lKToKKyAgICAgICAgc2VsZi5fX25hbWVfXyA9IG5hbWUKKyAgICAgICAgc2VsZi5fX2Fs
bF9fID0gW3ggZm9yIHggaW4gaW1wb3J0c3BlYyBpZiB4ICE9ICdfX29uZmlyc3RhY2Nlc3NfXydd
CisgICAgICAgIHNlbGYuX19tYXBfXyA9IHt9CisgICAgICAgIHNlbGYuX19pbXBscHJlZml4X18g
PSBpbXBscHJlZml4IG9yIG5hbWUKKyAgICAgICAgaWYgYXR0cjoKKyAgICAgICAgICAgIGZvciBu
YW1lLCB2YWwgaW4gYXR0ci5pdGVtcygpOgorICAgICAgICAgICAgICAgICMgcHJpbnQgInNldHRp
bmciLCBzZWxmLl9fbmFtZV9fLCBuYW1lLCB2YWwKKyAgICAgICAgICAgICAgICBzZXRhdHRyKHNl
bGYsIG5hbWUsIHZhbCkKKyAgICAgICAgZm9yIG5hbWUsIGltcG9ydHNwZWMgaW4gaW1wb3J0c3Bl
Yy5pdGVtcygpOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShpbXBvcnRzcGVjLCBkaWN0KToK
KyAgICAgICAgICAgICAgICBzdWJuYW1lID0gJyVzLiVzJyAlIChzZWxmLl9fbmFtZV9fLCBuYW1l
KQorICAgICAgICAgICAgICAgIGFwaW1vZCA9IEFwaU1vZHVsZShzdWJuYW1lLCBpbXBvcnRzcGVj
LCBpbXBscHJlZml4KQorICAgICAgICAgICAgICAgIHN5cy5tb2R1bGVzW3N1Ym5hbWVdID0gYXBp
bW9kCisgICAgICAgICAgICAgICAgc2V0YXR0cihzZWxmLCBuYW1lLCBhcGltb2QpCisgICAgICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHBhcnRzID0gaW1wb3J0c3BlYy5zcGxpdCgnOicp
CisgICAgICAgICAgICAgICAgbW9kcGF0aCA9IHBhcnRzLnBvcCgwKQorICAgICAgICAgICAgICAg
IGF0dHJuYW1lID0gcGFydHMgYW5kIHBhcnRzWzBdIG9yICIiCisgICAgICAgICAgICAgICAgaWYg
bW9kcGF0aFswXSA9PSAnLic6CisgICAgICAgICAgICAgICAgICAgIG1vZHBhdGggPSBpbXBscHJl
Zml4ICsgbW9kcGF0aAorCisgICAgICAgICAgICAgICAgaWYgbm90IGF0dHJuYW1lOgorICAgICAg
ICAgICAgICAgICAgICBzdWJuYW1lID0gJyVzLiVzJyAlIChzZWxmLl9fbmFtZV9fLCBuYW1lKQor
ICAgICAgICAgICAgICAgICAgICBhcGltb2QgPSBBbGlhc01vZHVsZShzdWJuYW1lLCBtb2RwYXRo
KQorICAgICAgICAgICAgICAgICAgICBzeXMubW9kdWxlc1tzdWJuYW1lXSA9IGFwaW1vZAorICAg
ICAgICAgICAgICAgICAgICBpZiAnLicgbm90IGluIG5hbWU6CisgICAgICAgICAgICAgICAgICAg
ICAgICBzZXRhdHRyKHNlbGYsIG5hbWUsIGFwaW1vZCkKKyAgICAgICAgICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9fbWFwX19bbmFtZV0gPSAobW9kcGF0aCwgYXR0cm5h
bWUpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIGwgPSBbXQorICAgICAgICBp
ZiBoYXNhdHRyKHNlbGYsICdfX3ZlcnNpb25fXycpOgorICAgICAgICAgICAgbC5hcHBlbmQoInZl
cnNpb249IiArIHJlcHIoc2VsZi5fX3ZlcnNpb25fXykpCisgICAgICAgIGlmIGhhc2F0dHIoc2Vs
ZiwgJ19fZmlsZV9fJyk6CisgICAgICAgICAgICBsLmFwcGVuZCgnZnJvbSAnICsgcmVwcihzZWxm
Ll9fZmlsZV9fKSkKKyAgICAgICAgaWYgbDoKKyAgICAgICAgICAgIHJldHVybiAnPEFwaU1vZHVs
ZSAlciAlcz4nICUgKHNlbGYuX19uYW1lX18sICIgIi5qb2luKGwpKQorICAgICAgICByZXR1cm4g
JzxBcGlNb2R1bGUgJXI+JyAlIChzZWxmLl9fbmFtZV9fLCkKKworICAgIGRlZiBfX21ha2VhdHRy
KHNlbGYsIG5hbWUpOgorICAgICAgICAiIiJsYXppbHkgY29tcHV0ZSB2YWx1ZSBmb3IgbmFtZSBv
ciByYWlzZSBBdHRyaWJ1dGVFcnJvciBpZiB1bmtub3duLiIiIgorICAgICAgICAjIHByaW50ICJt
YWtlYXR0ciIsIHNlbGYuX19uYW1lX18sIG5hbWUKKyAgICAgICAgdGFyZ2V0ID0gTm9uZQorICAg
ICAgICBpZiAnX19vbmZpcnN0YWNjZXNzX18nIGluIHNlbGYuX19tYXBfXzoKKyAgICAgICAgICAg
IHRhcmdldCA9IHNlbGYuX19tYXBfXy5wb3AoJ19fb25maXJzdGFjY2Vzc19fJykKKyAgICAgICAg
ICAgIGltcG9ydG9iaigqdGFyZ2V0KSgpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG1vZHBh
dGgsIGF0dHJuYW1lID0gc2VsZi5fX21hcF9fW25hbWVdCisgICAgICAgIGV4Y2VwdCBLZXlFcnJv
cjoKKyAgICAgICAgICAgIGlmIHRhcmdldCBpcyBub3QgTm9uZSBhbmQgbmFtZSAhPSAnX19vbmZp
cnN0YWNjZXNzX18nOgorICAgICAgICAgICAgICAgICMgcmV0cnksIG9uZmlyc3RhY2Nlc3MgbWln
aHQgaGF2ZSBzZXQgYXR0cnMKKyAgICAgICAgICAgICAgICByZXR1cm4gZ2V0YXR0cihzZWxmLCBu
YW1lKQorICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IobmFtZSkKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHJlc3VsdCA9IGltcG9ydG9iaihtb2RwYXRoLCBhdHRybmFtZSkKKyAg
ICAgICAgICAgIHNldGF0dHIoc2VsZiwgbmFtZSwgcmVzdWx0KQorICAgICAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgICAgIGRlbCBzZWxmLl9fbWFwX19bbmFtZV0KKyAgICAgICAgICAgIGV4Y2Vw
dCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzICAjIGluIGEgcmVjdXJzaXZlLWltcG9y
dCBzaXR1YXRpb24gYSBkb3VibGUtZGVsIGNhbiBoYXBwZW4KKyAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQKKworICAgIF9fZ2V0YXR0cl9fID0gX19tYWtlYXR0cgorCisgICAgQHByb3BlcnR5Cisg
ICAgZGVmIF9fZGljdF9fKHNlbGYpOgorICAgICAgICAjIGZvcmNlIGFsbCB0aGUgY29udGVudCBv
ZiB0aGUgbW9kdWxlCisgICAgICAgICMgdG8gYmUgbG9hZGVkIHdoZW4gX19kaWN0X18gaXMgcmVh
ZAorICAgICAgICBkaWN0ZGVzY3IgPSBNb2R1bGVUeXBlLl9fZGljdF9fWydfX2RpY3RfXyddCisg
ICAgICAgIGRpY3QgPSBkaWN0ZGVzY3IuX19nZXRfXyhzZWxmKQorICAgICAgICBpZiBkaWN0IGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgaGFzYXR0cihzZWxmLCAnc29tZScpCisgICAgICAgICAg
ICBmb3IgbmFtZSBpbiBzZWxmLl9fYWxsX186CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9fbWFrZWF0dHIobmFtZSkKKyAgICAgICAgICAgICAgICBleGNl
cHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgcmV0
dXJuIGRpY3QKKworCitkZWYgQWxpYXNNb2R1bGUobW9kbmFtZSwgbW9kcGF0aCwgYXR0cm5hbWU9
Tm9uZSk6CisgICAgbW9kID0gW10KKworICAgIGRlZiBnZXRtb2QoKToKKyAgICAgICAgaWYgbm90
IG1vZDoKKyAgICAgICAgICAgIHggPSBpbXBvcnRvYmoobW9kcGF0aCwgTm9uZSkKKyAgICAgICAg
ICAgIGlmIGF0dHJuYW1lIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHggPSBnZXRhdHRy
KHgsIGF0dHJuYW1lKQorICAgICAgICAgICAgbW9kLmFwcGVuZCh4KQorICAgICAgICByZXR1cm4g
bW9kWzBdCisKKyAgICBjbGFzcyBBbGlhc01vZHVsZShNb2R1bGVUeXBlKToKKworICAgICAgICBk
ZWYgX19yZXByX18oc2VsZik6CisgICAgICAgICAgICB4ID0gbW9kcGF0aAorICAgICAgICAgICAg
aWYgYXR0cm5hbWU6CisgICAgICAgICAgICAgICAgeCArPSAiLiIgKyBhdHRybmFtZQorICAgICAg
ICAgICAgcmV0dXJuICc8QWxpYXNNb2R1bGUgJXIgZm9yICVyPicgJSAobW9kbmFtZSwgeCkKKwor
ICAgICAgICBkZWYgX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBuYW1lKToKKyAgICAgICAgICAgIHRy
eToKKyAgICAgICAgICAgICAgICByZXR1cm4gZ2V0YXR0cihnZXRtb2QoKSwgbmFtZSkKKyAgICAg
ICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQor
CisgICAgICAgIGRlZiBfX3NldGF0dHJfXyhzZWxmLCBuYW1lLCB2YWx1ZSk6CisgICAgICAgICAg
ICBzZXRhdHRyKGdldG1vZCgpLCBuYW1lLCB2YWx1ZSkKKworICAgICAgICBkZWYgX19kZWxhdHRy
X18oc2VsZiwgbmFtZSk6CisgICAgICAgICAgICBkZWxhdHRyKGdldG1vZCgpLCBuYW1lKQorCisg
ICAgcmV0dXJuIEFsaWFzTW9kdWxlKHN0cihtb2RuYW1lKSkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkv
cHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vREVTQ1JJUFRJ
T04ucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvaW5pY29uZmlnLTEuMC4wLmRp
c3QtaW5mby9ERVNDUklQVElPTi5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQ1OWJjMjIyY2NlODcwNjBkMGRi
YmFjOWNmMWYxN2I0YWQ3MTM5NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRv
cmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vREVTQ1JJUFRJT04ucnN0CkBA
IC0wLDAgKzEsNTMgQEAKK2luaWNvbmZpZzogYnJhaW4tZGVhZCBzaW1wbGUgcGFyc2luZyBvZiBp
bmkgZmlsZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KKworaW5pY29uZmlnIGlzIGEgc21hbGwgYW5kIHNpbXBsZSBJTkktZmlsZSBwYXJz
ZXIgbW9kdWxlCitoYXZpbmcgYSB1bmlxdWUgc2V0IG9mIGZlYXR1cmVzOgorCisqIHRlc3RlZCBh
Z2FpbnN0IFB5dGhvbjIuNCBhY3Jvc3MgdG8gUHl0aG9uMy4yLCBKeXRob24sIFB5UHkKKyogbWFp
bnRhaW5zIG9yZGVyIG9mIHNlY3Rpb25zIGFuZCBlbnRyaWVzCisqIHN1cHBvcnRzIG11bHRpLWxp
bmUgdmFsdWVzIHdpdGggb3Igd2l0aG91dCBsaW5lLWNvbnRpbnVhdGlvbnMKKyogc3VwcG9ydHMg
IiMiIGNvbW1lbnRzIGV2ZXJ5d2hlcmUKKyogcmFpc2VzIGVycm9ycyB3aXRoIHByb3BlciBsaW5l
LW51bWJlcnMKKyogbm8gYmVsbHMgYW5kIHdoaXN0bGVzIGxpa2UgYXV0b21hdGljIHN1YnN0aXR1
dGlvbnMKKyogaW5pY29uZmlnIHJhaXNlcyBhbiBFcnJvciBpZiB0d28gc2VjdGlvbnMgaGF2ZSB0
aGUgc2FtZSBuYW1lLgorCitJZiB5b3UgZW5jb3VudGVyIGlzc3VlcyBvciBoYXZlIGZlYXR1cmUg
d2lzaGVzIHBsZWFzZSByZXBvcnQgdGhlbSB0bzoKKworICAgIGh0dHA6Ly9naXRodWIub3JnL1Jv
bm55UGZhbm5zY2htaWR0L2luaWNvbmZpZy9pc3N1ZXMKKworQmFzaWMgRXhhbXBsZQorPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworSWYgeW91IGhhdmUgYW4gaW5pIGZpbGUg
bGlrZSB0aGlzOjoKKworICAgICMgY29udGVudCBvZiBleGFtcGxlLmluaQorICAgIFtzZWN0aW9u
MV0gIyBjb21tZW50CisgICAgbmFtZTE9dmFsdWUxICAjIGNvbW1lbnQKKyAgICBuYW1lMWI9dmFs
dWUxLHZhbHVlMiAgIyBjb21tZW50CisKKyAgICBbc2VjdGlvbjJdCisgICAgbmFtZTI9CisgICAg
ICAgIGxpbmUxCisgICAgICAgIGxpbmUyCisKK3RoZW4geW91IGNhbiBkbzo6CisKKyAgICA+Pj4g
aW1wb3J0IGluaWNvbmZpZworICAgID4+PiBpbmkgPSBpbmljb25maWcuSW5pQ29uZmlnKCJleGFt
cGxlLmluaSIpCisgICAgPj4+IGluaVsnc2VjdGlvbjEnXVsnbmFtZTEnXSAjIHJhaXNlcyBLZXlF
cnJvciBpZiBub3QgZXhpc3RzCisgICAgJ3ZhbHVlMScKKyAgICA+Pj4gaW5pLmdldCgnc2VjdGlv
bjEnLCAnbmFtZTFiJywgW10sIGxhbWJkYSB4OiB4LnNwbGl0KCIsIikpCisgICAgWyd2YWx1ZTEn
LCAndmFsdWUyJ10KKyAgICA+Pj4gaW5pLmdldCgnc2VjdGlvbjEnLCAnbm90ZXhpc3QnLCBbXSwg
bGFtYmRhIHg6IHguc3BsaXQoIiwiKSkKKyAgICBbXQorICAgID4+PiBbeC5uYW1lIGZvciB4IGlu
IGxpc3QoaW5pKV0KKyAgICBbJ3NlY3Rpb24xJywgJ3NlY3Rpb24yJ10KKyAgICA+Pj4gbGlzdChs
aXN0KGluaSlbMF0uaXRlbXMoKSkKKyAgICBbKCduYW1lMScsICd2YWx1ZTEnKSwgKCduYW1lMWIn
LCAndmFsdWUxLHZhbHVlMicpXQorICAgID4+PiAnc2VjdGlvbjEnIGluIGluaQorICAgIFRydWUK
KyAgICA+Pj4gJ2luZXhpc3RlbmRzZWN0aW9uJyBpbiBpbmkKKyAgICBGYWxzZQorCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0
LWluZm8vSU5TVEFMTEVSIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvaW5pY29uZmln
LTEuMC4wLmRpc3QtaW5mby9JTlNUQUxMRVIKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTFiNTg5ZTM4YTMyMDQxZTQ5
MzMyZTVlODFjMmQzNjNkYzQxOGQ2OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3Zl
bmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vSU5TVEFMTEVSCkBAIC0w
LDAgKzEgQEAKK3BpcApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMv
aW5pY29uZmlnLTEuMC4wLmRpc3QtaW5mby9NRVRBREFUQSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVk
X3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vTUVUQURBVEEKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzllYTYyZGMzNGMwOGUyMmUzODI3ZmY0MjdhMDNhNDdkMDk3NWM4ZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWlu
Zm8vTUVUQURBVEEKQEAgLTAsMCArMSw3OCBAQAorTWV0YWRhdGEtVmVyc2lvbjogMi4wCitOYW1l
OiBpbmljb25maWcKK1ZlcnNpb246IDEuMC4wCitTdW1tYXJ5OiBpbmljb25maWc6IGJyYWluLWRl
YWQgc2ltcGxlIGNvbmZpZy1pbmkgcGFyc2luZworSG9tZS1wYWdlOiBodHRwOi8vZ2l0aHViLmNv
bS9Sb25ueVBmYW5uc2NobWlkdC9pbmljb25maWcKK0F1dGhvcjogUm9ubnkgUGZhbm5zY2htaWR0
LCBIb2xnZXIgS3Jla2VsCitBdXRob3ItZW1haWw6IG9wZW5zb3VyY2VAcm9ubnlwZmFubnNjaG1p
ZHQuZGUsIGhvbGdlci5rcmVrZWxAZ21haWwuY29tCitMaWNlbnNlOiBNSVQgTGljZW5zZQorUGxh
dGZvcm06IHVuaXgKK1BsYXRmb3JtOiBsaW51eAorUGxhdGZvcm06IG9zeAorUGxhdGZvcm06IGN5
Z3dpbgorUGxhdGZvcm06IHdpbjMyCitDbGFzc2lmaWVyOiBEZXZlbG9wbWVudCBTdGF0dXMgOjog
NCAtIEJldGEKK0NsYXNzaWZpZXI6IEludGVuZGVkIEF1ZGllbmNlIDo6IERldmVsb3BlcnMKK0Ns
YXNzaWZpZXI6IExpY2Vuc2UgOjogT1NJIEFwcHJvdmVkIDo6IE1JVCBMaWNlbnNlCitDbGFzc2lm
aWVyOiBPcGVyYXRpbmcgU3lzdGVtIDo6IFBPU0lYCitDbGFzc2lmaWVyOiBPcGVyYXRpbmcgU3lz
dGVtIDo6IE1pY3Jvc29mdCA6OiBXaW5kb3dzCitDbGFzc2lmaWVyOiBPcGVyYXRpbmcgU3lzdGVt
IDo6IE1hY09TIDo6IE1hY09TIFgKK0NsYXNzaWZpZXI6IFRvcGljIDo6IFNvZnR3YXJlIERldmVs
b3BtZW50IDo6IExpYnJhcmllcworQ2xhc3NpZmllcjogVG9waWMgOjogVXRpbGl0aWVzCitDbGFz
c2lmaWVyOiBQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24KK0NsYXNzaWZpZXI6IFByb2dy
YW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAyCitDbGFzc2lmaWVyOiBQcm9ncmFtbWluZyBM
YW5ndWFnZSA6OiBQeXRob24gOjogMworCitpbmljb25maWc6IGJyYWluLWRlYWQgc2ltcGxlIHBh
cnNpbmcgb2YgaW5pIGZpbGVzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisKK2luaWNvbmZpZyBpcyBhIHNtYWxsIGFuZCBzaW1wbGUgSU5J
LWZpbGUgcGFyc2VyIG1vZHVsZQoraGF2aW5nIGEgdW5pcXVlIHNldCBvZiBmZWF0dXJlczoKKwor
KiB0ZXN0ZWQgYWdhaW5zdCBQeXRob24yLjQgYWNyb3NzIHRvIFB5dGhvbjMuMiwgSnl0aG9uLCBQ
eVB5CisqIG1haW50YWlucyBvcmRlciBvZiBzZWN0aW9ucyBhbmQgZW50cmllcworKiBzdXBwb3J0
cyBtdWx0aS1saW5lIHZhbHVlcyB3aXRoIG9yIHdpdGhvdXQgbGluZS1jb250aW51YXRpb25zCisq
IHN1cHBvcnRzICIjIiBjb21tZW50cyBldmVyeXdoZXJlCisqIHJhaXNlcyBlcnJvcnMgd2l0aCBw
cm9wZXIgbGluZS1udW1iZXJzCisqIG5vIGJlbGxzIGFuZCB3aGlzdGxlcyBsaWtlIGF1dG9tYXRp
YyBzdWJzdGl0dXRpb25zCisqIGluaWNvbmZpZyByYWlzZXMgYW4gRXJyb3IgaWYgdHdvIHNlY3Rp
b25zIGhhdmUgdGhlIHNhbWUgbmFtZS4KKworSWYgeW91IGVuY291bnRlciBpc3N1ZXMgb3IgaGF2
ZSBmZWF0dXJlIHdpc2hlcyBwbGVhc2UgcmVwb3J0IHRoZW0gdG86CisKKyAgICBodHRwOi8vZ2l0
aHViLm9yZy9Sb25ueVBmYW5uc2NobWlkdC9pbmljb25maWcvaXNzdWVzCisKK0Jhc2ljIEV4YW1w
bGUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK0lmIHlvdSBoYXZlIGFu
IGluaSBmaWxlIGxpa2UgdGhpczo6CisKKyAgICAjIGNvbnRlbnQgb2YgZXhhbXBsZS5pbmkKKyAg
ICBbc2VjdGlvbjFdICMgY29tbWVudAorICAgIG5hbWUxPXZhbHVlMSAgIyBjb21tZW50CisgICAg
bmFtZTFiPXZhbHVlMSx2YWx1ZTIgICMgY29tbWVudAorCisgICAgW3NlY3Rpb24yXQorICAgIG5h
bWUyPQorICAgICAgICBsaW5lMQorICAgICAgICBsaW5lMgorCit0aGVuIHlvdSBjYW4gZG86Ogor
CisgICAgPj4+IGltcG9ydCBpbmljb25maWcKKyAgICA+Pj4gaW5pID0gaW5pY29uZmlnLkluaUNv
bmZpZygiZXhhbXBsZS5pbmkiKQorICAgID4+PiBpbmlbJ3NlY3Rpb24xJ11bJ25hbWUxJ10gIyBy
YWlzZXMgS2V5RXJyb3IgaWYgbm90IGV4aXN0cworICAgICd2YWx1ZTEnCisgICAgPj4+IGluaS5n
ZXQoJ3NlY3Rpb24xJywgJ25hbWUxYicsIFtdLCBsYW1iZGEgeDogeC5zcGxpdCgiLCIpKQorICAg
IFsndmFsdWUxJywgJ3ZhbHVlMiddCisgICAgPj4+IGluaS5nZXQoJ3NlY3Rpb24xJywgJ25vdGV4
aXN0JywgW10sIGxhbWJkYSB4OiB4LnNwbGl0KCIsIikpCisgICAgW10KKyAgICA+Pj4gW3gubmFt
ZSBmb3IgeCBpbiBsaXN0KGluaSldCisgICAgWydzZWN0aW9uMScsICdzZWN0aW9uMiddCisgICAg
Pj4+IGxpc3QobGlzdChpbmkpWzBdLml0ZW1zKCkpCisgICAgWygnbmFtZTEnLCAndmFsdWUxJyks
ICgnbmFtZTFiJywgJ3ZhbHVlMSx2YWx1ZTInKV0KKyAgICA+Pj4gJ3NlY3Rpb24xJyBpbiBpbmkK
KyAgICBUcnVlCisgICAgPj4+ICdpbmV4aXN0ZW5kc2VjdGlvbicgaW4gaW5pCisgICAgRmFsc2UK
KworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9pbmljb25maWct
MS4wLjAuZGlzdC1pbmZvL1JFQ09SRCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2lu
aWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vUkVDT1JECm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjMmY1ZTE3NDg3YzAx
OWVhYmIwMDcwYmQ0ZWQwMWM3NDJiNmJjM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5
L192ZW5kb3JlZF9wYWNrYWdlcy9pbmljb25maWctMS4wLjAuZGlzdC1pbmZvL1JFQ09SRApAQCAt
MCwwICsxLDkgQEAKK2luaWNvbmZpZy5weSxzaGEyNTY9LXBCZTVBRl82YUF3bzFDeEpROGlfekpx
NmVqYzZJeEh0YTdxazJ0TkpoWSw1MjA4DQoraW5pY29uZmlnLTEuMC4wLmRpc3QtaW5mby9ERVND
UklQVElPTi5yc3Qsc2hhMjU2PUJETE13V3FmanB3WjV5cVhSdnoxeDZiZjhEbnRfcFpoRWxla0F3
dEwxOW8sMTUyMg0KK2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vTUVUQURBVEEsc2hhMjU2PWJi
MlQ4V1VTRFhYaVVWeFo0V1hoYmZmcTZzdGlrTVRsQjFqeXJQYkxmeVUsMjQwNQ0KK2luaWNvbmZp
Zy0xLjAuMC5kaXN0LWluZm8vUkVDT1JELCwNCitpbmljb25maWctMS4wLjAuZGlzdC1pbmZvL1dI
RUVMLHNoYTI1Nj0zWEsxWjRBSTQyR3VKWGNpQ3BpSE1Pa2JlaHhSVjhRREJXOElVNDFrM1pVLDk2
DQoraW5pY29uZmlnLTEuMC4wLmRpc3QtaW5mby9tZXRhZGF0YS5qc29uLHNoYTI1Nj1VWVl3VzBw
ODE1blU0cXo4SXExZ0dxSVlhQWNzQ3lHanUzalh2VE95WFNJLDk1MA0KK2luaWNvbmZpZy0xLjAu
MC5kaXN0LWluZm8vdG9wX2xldmVsLnR4dCxzaGEyNTY9N0tmTTBmdWdkbFRvajlVVzdlbktYazJI
WUFMUUQ4cUhpeUt0amhTemdOOCwxMA0KK2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vSU5TVEFM
TEVSLHNoYTI1Nj16dXV1ZTRrbm95Si1Vd1BQWGc4ZmV6UzdWQ3JYSlFyQVA3emVOdXd2RlFnLDQN
CitfX3B5Y2FjaGVfXy9pbmljb25maWcuY3B5dGhvbi0zNS5weWMsLA0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vV0hF
RUwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9pbmljb25maWctMS4wLjAuZGlzdC1p
bmZvL1dIRUVMCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1Yjk2Yzk5Y2FjOTI1YWI1MWQzYWY2ZTVjMTM3MGU2N2Q3
YTM5YTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9p
bmljb25maWctMS4wLjAuZGlzdC1pbmZvL1dIRUVMCkBAIC0wLDAgKzEsNSBAQAorV2hlZWwtVmVy
c2lvbjogMS4wCitHZW5lcmF0b3I6IGJkaXN0X3doZWVsICgwLjMwLjAuYTApCitSb290LUlzLVB1
cmVsaWI6IHRydWUKK1RhZzogY3AzNS1ub25lLWFueQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5
L192ZW5kb3JlZF9wYWNrYWdlcy9pbmljb25maWctMS4wLjAuZGlzdC1pbmZvL21ldGFkYXRhLmpz
b24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9pbmljb25maWctMS4wLjAuZGlzdC1p
bmZvL21ldGFkYXRhLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDg0ZGFhNmMwNmI4YjA3NDMyMGE3MDQyNDQ3
NWRmMzUwMGQ1NjY0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3Bh
Y2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vbWV0YWRhdGEuanNvbgpAQCAtMCwwICsx
IEBACit7ImNsYXNzaWZpZXJzIjogWyJEZXZlbG9wbWVudCBTdGF0dXMgOjogNCAtIEJldGEiLCAi
SW50ZW5kZWQgQXVkaWVuY2UgOjogRGV2ZWxvcGVycyIsICJMaWNlbnNlIDo6IE9TSSBBcHByb3Zl
ZCA6OiBNSVQgTGljZW5zZSIsICJPcGVyYXRpbmcgU3lzdGVtIDo6IFBPU0lYIiwgIk9wZXJhdGlu
ZyBTeXN0ZW0gOjogTWljcm9zb2Z0IDo6IFdpbmRvd3MiLCAiT3BlcmF0aW5nIFN5c3RlbSA6OiBN
YWNPUyA6OiBNYWNPUyBYIiwgIlRvcGljIDo6IFNvZnR3YXJlIERldmVsb3BtZW50IDo6IExpYnJh
cmllcyIsICJUb3BpYyA6OiBVdGlsaXRpZXMiLCAiUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0
aG9uIiwgIlByb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAyIiwgIlByb2dyYW1taW5n
IExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzIl0sICJleHRlbnNpb25zIjogeyJweXRob24uZGV0YWls
cyI6IHsiY29udGFjdHMiOiBbeyJlbWFpbCI6ICJvcGVuc291cmNlQHJvbm55cGZhbm5zY2htaWR0
LmRlLCBob2xnZXIua3Jla2VsQGdtYWlsLmNvbSIsICJuYW1lIjogIlJvbm55IFBmYW5uc2NobWlk
dCwgSG9sZ2VyIEtyZWtlbCIsICJyb2xlIjogImF1dGhvciJ9XSwgImRvY3VtZW50X25hbWVzIjog
eyJkZXNjcmlwdGlvbiI6ICJERVNDUklQVElPTi5yc3QifSwgInByb2plY3RfdXJscyI6IHsiSG9t
ZSI6ICJodHRwOi8vZ2l0aHViLmNvbS9Sb25ueVBmYW5uc2NobWlkdC9pbmljb25maWcifX19LCAi
Z2VuZXJhdG9yIjogImJkaXN0X3doZWVsICgwLjMwLjAuYTApIiwgImxpY2Vuc2UiOiAiTUlUIExp
Y2Vuc2UiLCAibWV0YWRhdGFfdmVyc2lvbiI6ICIyLjAiLCAibmFtZSI6ICJpbmljb25maWciLCAi
cGxhdGZvcm0iOiAidW5peCIsICJzdW1tYXJ5IjogImluaWNvbmZpZzogYnJhaW4tZGVhZCBzaW1w
bGUgY29uZmlnLWluaSBwYXJzaW5nIiwgInZlcnNpb24iOiAiMS4wLjAifQpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2Vz
L2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vdG9wX2xldmVsLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3Zl
bmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vdG9wX2xldmVsLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45ZGRhNTM2OTJkMmY0NGE5NzM5MmNhZTgyM2Y4MTYzZDU1YWQ0NTQ5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvaW5pY29uZmlnLTEu
MC4wLmRpc3QtaW5mby90b3BfbGV2ZWwudHh0CkBAIC0wLDAgKzEgQEAKK2luaWNvbmZpZwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvaW5pY29uZmlnLTEuMC4wLmRp
c3QtaW5mby93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2lu
aWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDAxZTg3
ODY0MjY2MzE1OTgxZGZiZTA0MjllOGQ2MzJmMjgyMjg4OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vdzNj
LWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitO
b25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9y
ZWRfcGFja2FnZXMvaW5pY29uZmlnLTEuMC4wLmRpc3QtaW5mby9ERVNDUklQVElPTi5yc3QKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9pbmljb25maWctMS4wLjAuZGlzdC1pbmZvL0lO
U1RBTExFUgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5k
aXN0LWluZm8vTUVUQURBVEEKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9pbmljb25m
aWctMS4wLjAuZGlzdC1pbmZvL1JFQ09SRAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2Vz
L2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vV0hFRUwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9w
YWNrYWdlcy9pbmljb25maWctMS4wLjAuZGlzdC1pbmZvL21ldGFkYXRhLmpzb24KKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9pbmljb25maWctMS4wLjAuZGlzdC1pbmZvL3RvcF9sZXZl
bC50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNvbmZp
Zy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42YWQ5ZWFmODY4YjA3M2JiMzNhYWM1ZWU5ODE0ZTRlZmUyZTE5ZGExCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvaW5pY29uZmlnLnB5CkBAIC0w
LDAgKzEsMTY1IEBACisiIiIgYnJhaW4tZGVhZCBzaW1wbGUgcGFyc2VyIGZvciBpbmktc3R5bGUg
ZmlsZXMuCisoQykgUm9ubnkgUGZhbm5zY2htaWR0LCBIb2xnZXIgS3Jla2VsIC0tIE1JVCBsaWNl
bnNlZAorIiIiCitfX2FsbF9fID0gWydJbmlDb25maWcnLCAnUGFyc2VFcnJvciddCisKK0NPTU1F
TlRDSEFSUyA9ICIjOyIKKworCitjbGFzcyBQYXJzZUVycm9yKEV4Y2VwdGlvbik6CisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIHBhdGgsIGxpbmVubywgbXNnKToKKyAgICAgICAgRXhjZXB0aW9uLl9f
aW5pdF9fKHNlbGYsIHBhdGgsIGxpbmVubywgbXNnKQorICAgICAgICBzZWxmLnBhdGggPSBwYXRo
CisgICAgICAgIHNlbGYubGluZW5vID0gbGluZW5vCisgICAgICAgIHNlbGYubXNnID0gbXNnCisK
KyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICIlczolczogJXMiICUgKHNl
bGYucGF0aCwgc2VsZi5saW5lbm8rMSwgc2VsZi5tc2cpCisKKworY2xhc3MgU2VjdGlvbldyYXBw
ZXIob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnLCBuYW1lKToKKyAgICAg
ICAgc2VsZi5jb25maWcgPSBjb25maWcKKyAgICAgICAgc2VsZi5uYW1lID0gbmFtZQorCisgICAg
ZGVmIGxpbmVvZihzZWxmLCBuYW1lKToKKyAgICAgICAgcmV0dXJuIHNlbGYuY29uZmlnLmxpbmVv
ZihzZWxmLm5hbWUsIG5hbWUpCisKKyAgICBkZWYgZ2V0KHNlbGYsIGtleSwgZGVmYXVsdD1Ob25l
LCBjb252ZXJ0PXN0cik6CisgICAgICAgIHJldHVybiBzZWxmLmNvbmZpZy5nZXQoc2VsZi5uYW1l
LCBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udmVydD1jb252ZXJ0LCBk
ZWZhdWx0PWRlZmF1bHQpCisKKyAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwga2V5KToKKyAgICAg
ICAgcmV0dXJuIHNlbGYuY29uZmlnLnNlY3Rpb25zW3NlbGYubmFtZV1ba2V5XQorCisgICAgZGVm
IF9faXRlcl9fKHNlbGYpOgorICAgICAgICBzZWN0aW9uID0gc2VsZi5jb25maWcuc2VjdGlvbnMu
Z2V0KHNlbGYubmFtZSwgW10pCisKKyAgICAgICAgZGVmIGxpbmVvZihrZXkpOgorICAgICAgICAg
ICAgcmV0dXJuIHNlbGYuY29uZmlnLmxpbmVvZihzZWxmLm5hbWUsIGtleSkKKyAgICAgICAgZm9y
IG5hbWUgaW4gc29ydGVkKHNlY3Rpb24sIGtleT1saW5lb2YpOgorICAgICAgICAgICAgeWllbGQg
bmFtZQorCisgICAgZGVmIGl0ZW1zKHNlbGYpOgorICAgICAgICBmb3IgbmFtZSBpbiBzZWxmOgor
ICAgICAgICAgICAgeWllbGQgbmFtZSwgc2VsZltuYW1lXQorCisKK2NsYXNzIEluaUNvbmZpZyhv
YmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXRoLCBkYXRhPU5vbmUpOgorICAgICAg
ICBzZWxmLnBhdGggPSBzdHIocGF0aCkgICMgY29udmVuaWVuY2UKKyAgICAgICAgaWYgZGF0YSBp
cyBOb25lOgorICAgICAgICAgICAgZiA9IG9wZW4oc2VsZi5wYXRoKQorICAgICAgICAgICAgdHJ5
OgorICAgICAgICAgICAgICAgIHRva2VucyA9IHNlbGYuX3BhcnNlKGl0ZXIoZikpCisgICAgICAg
ICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIGYuY2xvc2UoKQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgdG9rZW5zID0gc2VsZi5fcGFyc2UoZGF0YS5zcGxpdGxpbmVzKFRydWUpKQor
CisgICAgICAgIHNlbGYuX3NvdXJjZXMgPSB7fQorICAgICAgICBzZWxmLnNlY3Rpb25zID0ge30K
KworICAgICAgICBmb3IgbGluZW5vLCBzZWN0aW9uLCBuYW1lLCB2YWx1ZSBpbiB0b2tlbnM6Cisg
ICAgICAgICAgICBpZiBzZWN0aW9uIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgc2VsZi5fcmFp
c2UobGluZW5vLCAnbm8gc2VjdGlvbiBoZWFkZXIgZGVmaW5lZCcpCisgICAgICAgICAgICBzZWxm
Ll9zb3VyY2VzW3NlY3Rpb24sIG5hbWVdID0gbGluZW5vCisgICAgICAgICAgICBpZiBuYW1lIGlz
IE5vbmU6CisgICAgICAgICAgICAgICAgaWYgc2VjdGlvbiBpbiBzZWxmLnNlY3Rpb25zOgorICAg
ICAgICAgICAgICAgICAgICBzZWxmLl9yYWlzZShsaW5lbm8sICdkdXBsaWNhdGUgc2VjdGlvbiAl
cicgJSAoc2VjdGlvbiwgKSkKKyAgICAgICAgICAgICAgICBzZWxmLnNlY3Rpb25zW3NlY3Rpb25d
ID0ge30KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaWYgbmFtZSBpbiBzZWxm
LnNlY3Rpb25zW3NlY3Rpb25dOgorICAgICAgICAgICAgICAgICAgICBzZWxmLl9yYWlzZShsaW5l
bm8sICdkdXBsaWNhdGUgbmFtZSAlcicgJSAobmFtZSwgKSkKKyAgICAgICAgICAgICAgICBzZWxm
LnNlY3Rpb25zW3NlY3Rpb25dW25hbWVdID0gdmFsdWUKKworICAgIGRlZiBfcmFpc2Uoc2VsZiwg
bGluZW5vLCBtc2cpOgorICAgICAgICByYWlzZSBQYXJzZUVycm9yKHNlbGYucGF0aCwgbGluZW5v
LCBtc2cpCisKKyAgICBkZWYgX3BhcnNlKHNlbGYsIGxpbmVfaXRlcik6CisgICAgICAgIHJlc3Vs
dCA9IFtdCisgICAgICAgIHNlY3Rpb24gPSBOb25lCisgICAgICAgIGZvciBsaW5lbm8sIGxpbmUg
aW4gZW51bWVyYXRlKGxpbmVfaXRlcik6CisgICAgICAgICAgICBuYW1lLCBkYXRhID0gc2VsZi5f
cGFyc2VsaW5lKGxpbmUsIGxpbmVubykKKyAgICAgICAgICAgICMgbmV3IHZhbHVlCisgICAgICAg
ICAgICBpZiBuYW1lIGlzIG5vdCBOb25lIGFuZCBkYXRhIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoKGxpbmVubywgc2VjdGlvbiwgbmFtZSwgZGF0YSkpCisgICAg
ICAgICAgICAjIG5ldyBzZWN0aW9uCisgICAgICAgICAgICBlbGlmIG5hbWUgaXMgbm90IE5vbmUg
YW5kIGRhdGEgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBpZiBub3QgbmFtZToKKyAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fcmFpc2UobGluZW5vLCAnZW1wdHkgc2VjdGlvbiBuYW1lJykKKyAg
ICAgICAgICAgICAgICBzZWN0aW9uID0gbmFtZQorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQoKGxpbmVubywgc2VjdGlvbiwgTm9uZSwgTm9uZSkpCisgICAgICAgICAgICAjIGNvbnRpbnVh
dGlvbgorICAgICAgICAgICAgZWxpZiBuYW1lIGlzIE5vbmUgYW5kIGRhdGEgaXMgbm90IE5vbmU6
CisgICAgICAgICAgICAgICAgaWYgbm90IHJlc3VsdDoKKyAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5fcmFpc2UobGluZW5vLCAndW5leHBlY3RlZCB2YWx1ZSBjb250aW51YXRpb24nKQorICAgICAg
ICAgICAgICAgIGxhc3QgPSByZXN1bHQucG9wKCkKKyAgICAgICAgICAgICAgICBsYXN0X25hbWUs
IGxhc3RfZGF0YSA9IGxhc3RbLTI6XQorICAgICAgICAgICAgICAgIGlmIGxhc3RfbmFtZSBpcyBO
b25lOgorICAgICAgICAgICAgICAgICAgICBzZWxmLl9yYWlzZShsaW5lbm8sICd1bmV4cGVjdGVk
IHZhbHVlIGNvbnRpbnVhdGlvbicpCisKKyAgICAgICAgICAgICAgICBpZiBsYXN0X2RhdGE6Cisg
ICAgICAgICAgICAgICAgICAgIGRhdGEgPSAnJXNcbiVzJyAlIChsYXN0X2RhdGEsIGRhdGEpCisg
ICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChsYXN0WzotMV0gKyAoZGF0YSwpKQorICAgICAg
ICByZXR1cm4gcmVzdWx0CisKKyAgICBkZWYgX3BhcnNlbGluZShzZWxmLCBsaW5lLCBsaW5lbm8p
OgorICAgICAgICAjIGJsYW5rIGxpbmVzCisgICAgICAgIGlmIGlzY29tbWVudGxpbmUobGluZSk6
CisgICAgICAgICAgICBsaW5lID0gIiIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGxpbmUg
PSBsaW5lLnJzdHJpcCgpCisgICAgICAgIGlmIG5vdCBsaW5lOgorICAgICAgICAgICAgcmV0dXJu
IE5vbmUsIE5vbmUKKyAgICAgICAgIyBzZWN0aW9uCisgICAgICAgIGlmIGxpbmVbMF0gPT0gJ1sn
OgorICAgICAgICAgICAgcmVhbGxpbmUgPSBsaW5lCisgICAgICAgICAgICBmb3IgYyBpbiBDT01N
RU5UQ0hBUlM6CisgICAgICAgICAgICAgICAgbGluZSA9IGxpbmUuc3BsaXQoYylbMF0ucnN0cmlw
KCkKKyAgICAgICAgICAgIGlmIGxpbmVbLTFdID09ICJdIjoKKyAgICAgICAgICAgICAgICByZXR1
cm4gbGluZVsxOi0xXSwgTm9uZQorICAgICAgICAgICAgcmV0dXJuIE5vbmUsIHJlYWxsaW5lLnN0
cmlwKCkKKyAgICAgICAgIyB2YWx1ZQorICAgICAgICBlbGlmIG5vdCBsaW5lWzBdLmlzc3BhY2Uo
KToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBuYW1lLCB2YWx1ZSA9IGxpbmUu
c3BsaXQoJz0nLCAxKQorICAgICAgICAgICAgICAgIGlmICI6IiBpbiBuYW1lOgorICAgICAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCkKKyAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVy
cm9yOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgbmFtZSwgdmFs
dWUgPSBsaW5lLnNwbGl0KCI6IiwgMSkKKyAgICAgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJv
cjoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmFpc2UobGluZW5vLCAndW5leHBlY3RlZCBs
aW5lOiAlcicgJSBsaW5lKQorICAgICAgICAgICAgcmV0dXJuIG5hbWUuc3RyaXAoKSwgdmFsdWUu
c3RyaXAoKQorICAgICAgICAjIGNvbnRpbnVhdGlvbgorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgcmV0dXJuIE5vbmUsIGxpbmUuc3RyaXAoKQorCisgICAgZGVmIGxpbmVvZihzZWxmLCBzZWN0
aW9uLCBuYW1lPU5vbmUpOgorICAgICAgICBsaW5lbm8gPSBzZWxmLl9zb3VyY2VzLmdldCgoc2Vj
dGlvbiwgbmFtZSkpCisgICAgICAgIGlmIGxpbmVubyBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
IHJldHVybiBsaW5lbm8gKyAxCisKKyAgICBkZWYgZ2V0KHNlbGYsIHNlY3Rpb24sIG5hbWUsIGRl
ZmF1bHQ9Tm9uZSwgY29udmVydD1zdHIpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1
cm4gY29udmVydChzZWxmLnNlY3Rpb25zW3NlY3Rpb25dW25hbWVdKQorICAgICAgICBleGNlcHQg
S2V5RXJyb3I6CisgICAgICAgICAgICByZXR1cm4gZGVmYXVsdAorCisgICAgZGVmIF9fZ2V0aXRl
bV9fKHNlbGYsIG5hbWUpOgorICAgICAgICBpZiBuYW1lIG5vdCBpbiBzZWxmLnNlY3Rpb25zOgor
ICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IobmFtZSkKKyAgICAgICAgcmV0dXJuIFNlY3Rpb25X
cmFwcGVyKHNlbGYsIG5hbWUpCisKKyAgICBkZWYgX19pdGVyX18oc2VsZik6CisgICAgICAgIGZv
ciBuYW1lIGluIHNvcnRlZChzZWxmLnNlY3Rpb25zLCBrZXk9c2VsZi5saW5lb2YpOgorICAgICAg
ICAgICAgeWllbGQgU2VjdGlvbldyYXBwZXIoc2VsZiwgbmFtZSkKKworICAgIGRlZiBfX2NvbnRh
aW5zX18oc2VsZiwgYXJnKToKKyAgICAgICAgcmV0dXJuIGFyZyBpbiBzZWxmLnNlY3Rpb25zCisK
KworZGVmIGlzY29tbWVudGxpbmUobGluZSk6CisgICAgYyA9IGxpbmUubHN0cmlwKClbOjFdCisg
ICAgcmV0dXJuIGMgaW4gQ09NTUVOVENIQVJTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5k
b3JlZF9wYWNrYWdlcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2th
Z2VzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiNGU2Y2RmZDE2OGUyOWQ0ZjU4NzdjM2Mw
YjAxYzMzOGI5MGE0ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9w
YWNrYWdlcy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE5IEBACitUaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9fX2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVk
X3BhY2thZ2VzL2FwaXBrZy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNv
bmZpZy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9feG1sZ2VuLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9f
eG1sZ2VuLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjODM1NDU4ODQzOTBiNzI0MDc5ZDRjMDUzMjk2M2EyYTA1
NGY5YmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L194bWxnZW4ucHkKQEAgLTAsMCAr
MSwyNTUgQEAKKyIiIgorbW9kdWxlIGZvciBnZW5lcmF0aW5nIGFuZCBzZXJpYWxpemluZyB4bWwg
YW5kIGh0bWwgc3RydWN0dXJlcworYnkgdXNpbmcgc2ltcGxlIHB5dGhvbiBvYmplY3RzLgorCiso
YykgaG9sZ2VyIGtyZWtlbCwgaG9sZ2VyIGF0IG1lcmxpbnV4IGV1LiAyMDA5CisiIiIKK2ltcG9y
dCBzeXMsIHJlCisKK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsMCk6CisgICAgZGVmIHUocyk6
CisgICAgICAgIHJldHVybiBzCisgICAgZGVmIHVuaWNvZGUoeCwgZXJyb3JzPU5vbmUpOgorICAg
ICAgICBpZiBoYXNhdHRyKHgsICdfX3VuaWNvZGVfXycpOgorICAgICAgICAgICAgcmV0dXJuIHgu
X191bmljb2RlX18oKQorICAgICAgICByZXR1cm4gc3RyKHgpCitlbHNlOgorICAgIGRlZiB1KHMp
OgorICAgICAgICByZXR1cm4gdW5pY29kZShzKQorICAgIHVuaWNvZGUgPSB1bmljb2RlCisKKwor
Y2xhc3MgTmFtZXNwYWNlTWV0YWNsYXNzKHR5cGUpOgorICAgIGRlZiBfX2dldGF0dHJfXyhzZWxm
LCBuYW1lKToKKyAgICAgICAgaWYgbmFtZVs6MV0gPT0gJ18nOgorICAgICAgICAgICAgcmFpc2Ug
QXR0cmlidXRlRXJyb3IobmFtZSkKKyAgICAgICAgaWYgc2VsZiA9PSBOYW1lc3BhY2U6CisgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJOYW1lc3BhY2UgY2xhc3MgaXMgYWJzdHJhY3QiKQor
ICAgICAgICB0YWdzcGVjID0gc2VsZi5fX3RhZ3NwZWNfXworICAgICAgICBpZiB0YWdzcGVjIGlz
IG5vdCBOb25lIGFuZCBuYW1lIG5vdCBpbiB0YWdzcGVjOgorICAgICAgICAgICAgcmFpc2UgQXR0
cmlidXRlRXJyb3IobmFtZSkKKyAgICAgICAgY2xhc3NhdHRyID0ge30KKyAgICAgICAgaWYgc2Vs
Zi5fX3N0aWNreW5hbWVfXzoKKyAgICAgICAgICAgIGNsYXNzYXR0clsneG1sbmFtZSddID0gbmFt
ZQorICAgICAgICBjbHMgPSB0eXBlKG5hbWUsIChzZWxmLl9fdGFnY2xhc3NfXywpLCBjbGFzc2F0
dHIpCisgICAgICAgIHNldGF0dHIoc2VsZiwgbmFtZSwgY2xzKQorICAgICAgICByZXR1cm4gY2xz
CisKK2NsYXNzIFRhZyhsaXN0KToKKyAgICBjbGFzcyBBdHRyKG9iamVjdCk6CisgICAgICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6CisgICAgICAgICAgICBzZWxmLl9fZGljdF9fLnVw
ZGF0ZShrd2FyZ3MpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToK
KyAgICAgICAgc3VwZXIoVGFnLCBzZWxmKS5fX2luaXRfXyhhcmdzKQorICAgICAgICBzZWxmLmF0
dHIgPSBzZWxmLkF0dHIoKiprd2FyZ3MpCisKKyAgICBkZWYgX191bmljb2RlX18oc2VsZik6Cisg
ICAgICAgIHJldHVybiBzZWxmLnVuaWNvZGUoaW5kZW50PTApCisgICAgX19zdHJfXyA9IF9fdW5p
Y29kZV9fCisKKyAgICBkZWYgdW5pY29kZShzZWxmLCBpbmRlbnQ9Mik6CisgICAgICAgIGwgPSBb
XQorICAgICAgICBTaW1wbGVVbmljb2RlVmlzaXRvcihsLmFwcGVuZCwgaW5kZW50KS52aXNpdChz
ZWxmKQorICAgICAgICByZXR1cm4gdSgiIikuam9pbihsKQorCisgICAgZGVmIF9fcmVwcl9fKHNl
bGYpOgorICAgICAgICBuYW1lID0gc2VsZi5fX2NsYXNzX18uX19uYW1lX18KKyAgICAgICAgcmV0
dXJuICI8JXIgdGFnIG9iamVjdCAlZD4iICUgKG5hbWUsIGlkKHNlbGYpKQorCitOYW1lc3BhY2Ug
PSBOYW1lc3BhY2VNZXRhY2xhc3MoJ05hbWVzcGFjZScsIChvYmplY3QsICksIHsKKyAgICAnX190
YWdzcGVjX18nOiBOb25lLAorICAgICdfX3RhZ2NsYXNzX18nOiBUYWcsCisgICAgJ19fc3RpY2t5
bmFtZV9fJzogRmFsc2UsCit9KQorCitjbGFzcyBIdG1sVGFnKFRhZyk6CisgICAgZGVmIHVuaWNv
ZGUoc2VsZiwgaW5kZW50PTIpOgorICAgICAgICBsID0gW10KKyAgICAgICAgSHRtbFZpc2l0b3Io
bC5hcHBlbmQsIGluZGVudCwgc2hvcnRlbXB0eT1GYWxzZSkudmlzaXQoc2VsZikKKyAgICAgICAg
cmV0dXJuIHUoIiIpLmpvaW4obCkKKworIyBleHBvcnRlZCBwbGFpbiBodG1sIG5hbWVzcGFjZQor
Y2xhc3MgaHRtbChOYW1lc3BhY2UpOgorICAgIF9fdGFnY2xhc3NfXyA9IEh0bWxUYWcKKyAgICBf
X3N0aWNreW5hbWVfXyA9IFRydWUKKyAgICBfX3RhZ3NwZWNfXyA9IGRpY3QoWyh4LDEpIGZvciB4
IGluICgKKyAgICAgICAgJ2EsYWJicixhY3JvbnltLGFkZHJlc3MsYXBwbGV0LGFyZWEsYXJ0aWNs
ZSxhc2lkZSxhdWRpbyxiLCcKKyAgICAgICAgJ2Jhc2UsYmFzZWZvbnQsYmRpLGJkbyxiaWcsYmxp
bmssYmxvY2txdW90ZSxib2R5LGJyLGJ1dHRvbiwnCisgICAgICAgICdjYW52YXMsY2FwdGlvbixj
ZW50ZXIsY2l0ZSxjb2RlLGNvbCxjb2xncm91cCxjb21tYW5kLGNvbW1lbnQsJworICAgICAgICAn
ZGF0YWxpc3QsZGQsZGVsLGRldGFpbHMsZGZuLGRpcixkaXYsZGwsZHQsZW0sZW1iZWQsJworICAg
ICAgICAnZmllbGRzZXQsZmlnY2FwdGlvbixmaWd1cmUsZm9vdGVyLGZvbnQsZm9ybSxmcmFtZSxm
cmFtZXNldCxoMSwnCisgICAgICAgICdoMixoMyxoNCxoNSxoNixoZWFkLGhlYWRlcixoZ3JvdXAs
aHIsaHRtbCxpLGlmcmFtZSxpbWcsaW5wdXQsJworICAgICAgICAnaW5zLGlzaW5kZXgsa2JkLGtl
eWdlbixsYWJlbCxsZWdlbmQsbGksbGluayxsaXN0aW5nLG1hcCxtYXJrLCcKKyAgICAgICAgJ21h
cnF1ZWUsbWVudSxtZXRhLG1ldGVyLG11bHRpY29sLG5hdixub2JyLG5vZW1iZWQsbm9mcmFtZXMs
JworICAgICAgICAnbm9zY3JpcHQsb2JqZWN0LG9sLG9wdGdyb3VwLG9wdGlvbixvdXRwdXQscCxw
YXJhbSxwcmUscHJvZ3Jlc3MsJworICAgICAgICAncSxycCxydCxydWJ5LHMsc2FtcCxzY3JpcHQs
c2VjdGlvbixzZWxlY3Qsc21hbGwsc291cmNlLHNwYW4sJworICAgICAgICAnc3RyaWtlLHN0cm9u
ZyxzdHlsZSxzdWIsc3VtbWFyeSxzdXAsdGFibGUsdGJvZHksdGQsdGV4dGFyZWEsJworICAgICAg
ICAndGZvb3QsdGgsdGhlYWQsdGltZSx0aXRsZSx0cix0cmFjayx0dCx1LHVsLHhtcCx2YXIsdmlk
ZW8sd2JyJworICAgICkuc3BsaXQoJywnKSBpZiB4XSkKKworICAgIGNsYXNzIFN0eWxlKG9iamVj
dCk6CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3KToKKyAgICAgICAgICAgIGZvciB4
LCB5IGluIGt3Lml0ZW1zKCk6CisgICAgICAgICAgICAgICAgeCA9IHgucmVwbGFjZSgnXycsICct
JykKKyAgICAgICAgICAgICAgICBzZXRhdHRyKHNlbGYsIHgsIHkpCisKKworY2xhc3MgcmF3KG9i
amVjdCk6CisgICAgIiIianVzdCBhIGJveCB0aGF0IGNhbiBjb250YWluIGEgdW5pY29kZSBzdHJp
bmcgdGhhdCB3aWxsIGJlCisgICAgaW5jbHVkZWQgZGlyZWN0bHkgaW4gdGhlIG91dHB1dCIiIgor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1bmlvYmopOgorICAgICAgICBzZWxmLnVuaW9iaiA9IHVu
aW9iagorCitjbGFzcyBTaW1wbGVVbmljb2RlVmlzaXRvcihvYmplY3QpOgorICAgICIiIiByZWN1
cnNpdmUgdmlzaXRvciB0byB3cml0ZSB1bmljb2RlLiAiIiIKKyAgICBkZWYgX19pbml0X18oc2Vs
Ziwgd3JpdGUsIGluZGVudD0wLCBjdXJpbmRlbnQ9MCwgc2hvcnRlbXB0eT1UcnVlKToKKyAgICAg
ICAgc2VsZi53cml0ZSA9IHdyaXRlCisgICAgICAgIHNlbGYuY2FjaGUgPSB7fQorICAgICAgICBz
ZWxmLnZpc2l0ZWQgPSB7fSAjIGZvciBkZXRlY3Rpb24gb2YgcmVjdXJzaW9uCisgICAgICAgIHNl
bGYuaW5kZW50ID0gaW5kZW50CisgICAgICAgIHNlbGYuY3VyaW5kZW50ID0gY3VyaW5kZW50Cisg
ICAgICAgIHNlbGYucGFyZW50cyA9IFtdCisgICAgICAgIHNlbGYuc2hvcnRlbXB0eSA9IHNob3J0
ZW1wdHkgICMgc2hvcnQgZW1wdHkgdGFncyBvciBub3QKKworICAgIGRlZiB2aXNpdChzZWxmLCBu
b2RlKToKKyAgICAgICAgIiIiIGRpc3BhdGNoZXIgb24gbm9kZSdzIGNsYXNzL2Jhc2VzIG5hbWUu
ICIiIgorICAgICAgICBjbHMgPSBub2RlLl9fY2xhc3NfXworICAgICAgICB0cnk6CisgICAgICAg
ICAgICB2aXNpdG1ldGhvZCA9IHNlbGYuY2FjaGVbY2xzXQorICAgICAgICBleGNlcHQgS2V5RXJy
b3I6CisgICAgICAgICAgICBmb3Igc3ViY2xhc3MgaW4gY2xzLl9fbXJvX186CisgICAgICAgICAg
ICAgICAgdmlzaXRtZXRob2QgPSBnZXRhdHRyKHNlbGYsIHN1YmNsYXNzLl9fbmFtZV9fLCBOb25l
KQorICAgICAgICAgICAgICAgIGlmIHZpc2l0bWV0aG9kIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgICAgICAgICBicmVhaworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB2aXNp
dG1ldGhvZCA9IHNlbGYuX19vYmplY3QKKyAgICAgICAgICAgIHNlbGYuY2FjaGVbY2xzXSA9IHZp
c2l0bWV0aG9kCisgICAgICAgIHZpc2l0bWV0aG9kKG5vZGUpCisKKyAgICAjIHRoZSBkZWZhdWx0
IGZhbGxiYWNrIGhhbmRsZXIgaXMgbWFya2VkIHByaXZhdGUKKyAgICAjIHRvIGF2b2lkIGNsYXNo
ZXMgd2l0aCB0aGUgdGFnIG5hbWUgb2JqZWN0CisgICAgZGVmIF9fb2JqZWN0KHNlbGYsIG9iaik6
CisgICAgICAgICNzZWxmLndyaXRlKG9iaikKKyAgICAgICAgc2VsZi53cml0ZShlc2NhcGUodW5p
Y29kZShvYmopKSkKKworICAgIGRlZiByYXcoc2VsZiwgb2JqKToKKyAgICAgICAgc2VsZi53cml0
ZShvYmoudW5pb2JqKQorCisgICAgZGVmIGxpc3Qoc2VsZiwgb2JqKToKKyAgICAgICAgYXNzZXJ0
IGlkKG9iaikgbm90IGluIHNlbGYudmlzaXRlZAorICAgICAgICBzZWxmLnZpc2l0ZWRbaWQob2Jq
KV0gPSAxCisgICAgICAgIGZvciBlbGVtIGluIG9iajoKKyAgICAgICAgICAgIHNlbGYudmlzaXQo
ZWxlbSkKKworICAgIGRlZiBUYWcoc2VsZiwgdGFnKToKKyAgICAgICAgYXNzZXJ0IGlkKHRhZykg
bm90IGluIHNlbGYudmlzaXRlZAorICAgICAgICB0cnk6CisgICAgICAgICAgICB0YWcucGFyZW50
ID0gc2VsZi5wYXJlbnRzWy0xXQorICAgICAgICBleGNlcHQgSW5kZXhFcnJvcjoKKyAgICAgICAg
ICAgIHRhZy5wYXJlbnQgPSBOb25lCisgICAgICAgIHNlbGYudmlzaXRlZFtpZCh0YWcpXSA9IDEK
KyAgICAgICAgdGFnbmFtZSA9IGdldGF0dHIodGFnLCAneG1sbmFtZScsIHRhZy5fX2NsYXNzX18u
X19uYW1lX18pCisgICAgICAgIGlmIHNlbGYuY3VyaW5kZW50IGFuZCBub3Qgc2VsZi5faXNpbmxp
bmUodGFnbmFtZSk6CisgICAgICAgICAgICBzZWxmLndyaXRlKCJcbiIgKyB1KCcgJykgKiBzZWxm
LmN1cmluZGVudCkKKyAgICAgICAgaWYgdGFnOgorICAgICAgICAgICAgc2VsZi5jdXJpbmRlbnQg
Kz0gc2VsZi5pbmRlbnQKKyAgICAgICAgICAgIHNlbGYud3JpdGUodSgnPCVzJXM+JykgJSAodGFn
bmFtZSwgc2VsZi5hdHRyaWJ1dGVzKHRhZykpKQorICAgICAgICAgICAgc2VsZi5wYXJlbnRzLmFw
cGVuZCh0YWcpCisgICAgICAgICAgICBmb3IgeCBpbiB0YWc6CisgICAgICAgICAgICAgICAgc2Vs
Zi52aXNpdCh4KQorICAgICAgICAgICAgc2VsZi5wYXJlbnRzLnBvcCgpCisgICAgICAgICAgICBz
ZWxmLndyaXRlKHUoJzwvJXM+JykgJSB0YWduYW1lKQorICAgICAgICAgICAgc2VsZi5jdXJpbmRl
bnQgLT0gc2VsZi5pbmRlbnQKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG5hbWVhdHRyID0g
dGFnbmFtZStzZWxmLmF0dHJpYnV0ZXModGFnKQorICAgICAgICAgICAgaWYgc2VsZi5faXNzaW5n
bGV0b24odGFnbmFtZSk6CisgICAgICAgICAgICAgICAgc2VsZi53cml0ZSh1KCc8JXMvPicpICUg
KG5hbWVhdHRyLCkpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYud3Jp
dGUodSgnPCVzPjwvJXM+JykgJSAobmFtZWF0dHIsIHRhZ25hbWUpKQorCisgICAgZGVmIGF0dHJp
YnV0ZXMoc2VsZiwgdGFnKToKKyAgICAgICAgIyBzZXJpYWxpemUgYXR0cmlidXRlcworICAgICAg
ICBhdHRybGlzdCA9IGRpcih0YWcuYXR0cikKKyAgICAgICAgYXR0cmxpc3Quc29ydCgpCisgICAg
ICAgIGwgPSBbXQorICAgICAgICBmb3IgbmFtZSBpbiBhdHRybGlzdDoKKyAgICAgICAgICAgIHJl
cyA9IHNlbGYucmVwcl9hdHRyaWJ1dGUodGFnLmF0dHIsIG5hbWUpCisgICAgICAgICAgICBpZiBy
ZXMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgbC5hcHBlbmQocmVzKQorICAgICAgICBs
LmV4dGVuZChzZWxmLmdldHN0eWxlKHRhZykpCisgICAgICAgIHJldHVybiB1KCIiKS5qb2luKGwp
CisKKyAgICBkZWYgcmVwcl9hdHRyaWJ1dGUoc2VsZiwgYXR0cnMsIG5hbWUpOgorICAgICAgICBp
ZiBuYW1lWzoyXSAhPSAnX18nOgorICAgICAgICAgICAgdmFsdWUgPSBnZXRhdHRyKGF0dHJzLCBu
YW1lKQorICAgICAgICAgICAgaWYgbmFtZS5lbmRzd2l0aCgnXycpOgorICAgICAgICAgICAgICAg
IG5hbWUgPSBuYW1lWzotMV0KKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIHJhdyk6
CisgICAgICAgICAgICAgICAgaW5zZXJ0ID0gdmFsdWUudW5pb2JqCisgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgIGluc2VydCA9IGVzY2FwZSh1bmljb2RlKHZhbHVlKSkKKyAgICAg
ICAgICAgIHJldHVybiAnICVzPSIlcyInICUgKG5hbWUsIGluc2VydCkKKworICAgIGRlZiBnZXRz
dHlsZShzZWxmLCB0YWcpOgorICAgICAgICAiIiIgcmV0dXJuIGF0dHJpYnV0ZSBsaXN0IHN1aXRh
YmxlIGZvciBzdHlsaW5nLiAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc3R5bGVkaWN0
ID0gdGFnLnN0eWxlLl9fZGljdF9fCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAg
ICAgICAgICAgIHJldHVybiBbXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc3R5bGVsaXN0
ID0gW3grJzogJyArIHkgZm9yIHgseSBpbiBzdHlsZWRpY3QuaXRlbXMoKV0KKyAgICAgICAgICAg
IHJldHVybiBbdSgnIHN0eWxlPSIlcyInKSAlIHUoJzsgJykuam9pbihzdHlsZWxpc3QpXQorCisg
ICAgZGVmIF9pc3NpbmdsZXRvbihzZWxmLCB0YWduYW1lKToKKyAgICAgICAgIiIiY2FuIChhbmQg
d2lsbCkgYmUgb3ZlcnJpZGRlbiBpbiBzdWJjbGFzc2VzIiIiCisgICAgICAgIHJldHVybiBzZWxm
LnNob3J0ZW1wdHkKKworICAgIGRlZiBfaXNpbmxpbmUoc2VsZiwgdGFnbmFtZSk6CisgICAgICAg
ICIiImNhbiAoYW5kIHdpbGwpIGJlIG92ZXJyaWRkZW4gaW4gc3ViY2xhc3NlcyIiIgorICAgICAg
ICByZXR1cm4gRmFsc2UKKworY2xhc3MgSHRtbFZpc2l0b3IoU2ltcGxlVW5pY29kZVZpc2l0b3Ip
OgorCisgICAgc2luZ2xlID0gZGljdChbKHgsIDEpIGZvciB4IGluCisgICAgICAgICAgICAgICAg
KCdicixpbWcsYXJlYSxwYXJhbSxjb2wsaHIsbWV0YSxsaW5rLGJhc2UsJworICAgICAgICAgICAg
ICAgICAgICAnaW5wdXQsZnJhbWUnKS5zcGxpdCgnLCcpXSkKKyAgICBpbmxpbmUgPSBkaWN0KFso
eCwgMSkgZm9yIHggaW4KKyAgICAgICAgICAgICAgICAoJ2EgYWJiciBhY3JvbnltIGIgYmFzZWZv
bnQgYmRvIGJpZyBiciBjaXRlIGNvZGUgZGZuIGVtIGZvbnQgJworICAgICAgICAgICAgICAgICAn
aSBpbWcgaW5wdXQga2JkIGxhYmVsIHEgcyBzYW1wIHNlbGVjdCBzbWFsbCBzcGFuIHN0cmlrZSAn
CisgICAgICAgICAgICAgICAgICdzdHJvbmcgc3ViIHN1cCB0ZXh0YXJlYSB0dCB1IHZhcicuc3Bs
aXQoJyAnKSldKQorCisgICAgZGVmIHJlcHJfYXR0cmlidXRlKHNlbGYsIGF0dHJzLCBuYW1lKToK
KyAgICAgICAgaWYgbmFtZSA9PSAnY2xhc3NfJzoKKyAgICAgICAgICAgIHZhbHVlID0gZ2V0YXR0
cihhdHRycywgbmFtZSkKKyAgICAgICAgICAgIGlmIHZhbHVlIGlzIE5vbmU6CisgICAgICAgICAg
ICAgICAgcmV0dXJuCisgICAgICAgIHJldHVybiBzdXBlcihIdG1sVmlzaXRvciwgc2VsZikucmVw
cl9hdHRyaWJ1dGUoYXR0cnMsIG5hbWUpCisKKyAgICBkZWYgX2lzc2luZ2xldG9uKHNlbGYsIHRh
Z25hbWUpOgorICAgICAgICByZXR1cm4gdGFnbmFtZSBpbiBzZWxmLnNpbmdsZQorCisgICAgZGVm
IF9pc2lubGluZShzZWxmLCB0YWduYW1lKToKKyAgICAgICAgcmV0dXJuIHRhZ25hbWUgaW4gc2Vs
Zi5pbmxpbmUKKworCitjbGFzcyBfZXNjYXBlOgorICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAg
ICAgICAgc2VsZi5lc2NhcGUgPSB7CisgICAgICAgICAgICB1KCciJykgOiB1KCcmcXVvdDsnKSwg
dSgnPCcpIDogdSgnJmx0OycpLCB1KCc+JykgOiB1KCcmZ3Q7JyksCisgICAgICAgICAgICB1KCcm
JykgOiB1KCcmYW1wOycpLCB1KCInIikgOiB1KCcmYXBvczsnKSwKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgc2VsZi5jaGFyZWZfcmV4ID0gcmUuY29tcGlsZSh1KCJ8Iikuam9pbihzZWxmLmVzY2Fw
ZS5rZXlzKCkpKQorCisgICAgZGVmIF9yZXBsYWNlcihzZWxmLCBtYXRjaCk6CisgICAgICAgIHJl
dHVybiBzZWxmLmVzY2FwZVttYXRjaC5ncm91cCgwKV0KKworICAgIGRlZiBfX2NhbGxfXyhzZWxm
LCB1c3RyaW5nKToKKyAgICAgICAgIiIiIHhtbC1lc2NhcGUgdGhlIGdpdmVuIHVuaWNvZGUgc3Ry
aW5nLiAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdXN0cmluZyA9IHVuaWNvZGUodXN0
cmluZykKKyAgICAgICAgZXhjZXB0IFVuaWNvZGVEZWNvZGVFcnJvcjoKKyAgICAgICAgICAgIHVz
dHJpbmcgPSB1bmljb2RlKHVzdHJpbmcsICd1dGYtOCcsIGVycm9ycz0ncmVwbGFjZScpCisgICAg
ICAgIHJldHVybiBzZWxmLmNoYXJlZl9yZXguc3ViKHNlbGYuX3JlcGxhY2VyLCB1c3RyaW5nKQor
Citlc2NhcGUgPSBfZXNjYXBlKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvdGVzdC5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvcHkvdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYTViZWIxNzg5ZjA1NzYwNGQ4ZjEzNDMzOTUx
ZWEwOTI4NDhjMWY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS90ZXN0LnB5CkBAIC0w
LDAgKzEsMTAgQEAKK2ltcG9ydCBzeXMKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAg
aW1wb3J0IHB5dGVzdAorICAgIHN5cy5leGl0KHB5dGVzdC5tYWluKCkpCitlbHNlOgorICAgIGlt
cG9ydCBzeXMsIHB5dGVzdAorICAgIHN5cy5tb2R1bGVzWydweS50ZXN0J10gPSBweXRlc3QKKwor
IyBmb3IgbW9yZSBBUEkgZW50cnkgcG9pbnRzIHNlZSB0aGUgJ3Rlc3RzJyBkZWZpbml0aW9uCisj
IGluIF9faW5pdF9fLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS9weS93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTY5Nzg3MzZkNDQ1ZGZkZTUz
M2FlYzhmM2UzMDNkZWY2ZDFkYmMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS93M2Mt
aW1wb3J0LmxvZwpAQCAtMCwwICsxLDIzIEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19faW5pdF9f
LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS9weS9fX21ldGFpbmZvLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fYnVpbHRpbi5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvcHkvX2Vycm9yLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fc3RkLnB5CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9f
eG1sZ2VuLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weS9weS90ZXN0LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3NldHVw
LmNmZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvc2V0dXAuY2ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmMjVjMmZlYmZkOTRiNjJiNTZh
MjI1ZmE2NGFlYTM0MmI5MzkzN2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3NldHVwLmNm
ZwpAQCAtMCwwICsxLDggQEAKK1t3aGVlbF0KK3VuaXZlcnNhbCA9IDEKKworW21ldGFkYXRhXQor
bGljZW5zZV9maWxlID0gTElDRU5TRQorCitbZGV2cGk6dXBsb2FkXQorZm9ybWF0cz1zZGlzdC50
Z3osYmRpc3Rfd2hlZWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvc2V0dXAucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Nl
dHVwLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjk1OTMyM2IwYzc1YjllYmFiN2ViMjdmOWNhMjA5MTkyZjk4YmMx
M2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3NldHVwLnB5CkBAIC0wLDAgKzEsNTMgQEAK
K2ltcG9ydCBvcworaW1wb3J0IHN5cworCitmcm9tIHNldHVwdG9vbHMgaW1wb3J0IHNldHVwLCBm
aW5kX3BhY2thZ2VzCisKKworZGVmIGdldF92ZXJzaW9uKCk6CisgICAgcCA9IG9zLnBhdGguam9p
bihvcy5wYXRoLmRpcm5hbWUoCisgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmFic3BhdGgo
X19maWxlX18pKSwgInB5IiwgIl9faW5pdF9fLnB5IikKKyAgICB3aXRoIG9wZW4ocCkgYXMgZjoK
KyAgICAgICAgZm9yIGxpbmUgaW4gZi5yZWFkbGluZXMoKToKKyAgICAgICAgICAgIGlmICJfX3Zl
cnNpb25fXyIgaW4gbGluZToKKyAgICAgICAgICAgICAgICByZXR1cm4gbGluZS5zdHJpcCgpLnNw
bGl0KCI9IilbLTFdLnN0cmlwKCIgJyIpCisgICAgcmFpc2UgVmFsdWVFcnJvcigiY291bGQgbm90
IHJlYWQgdmVyc2lvbiIpCisKKworZGVmIG1haW4oKToKKyAgICBzZXR1cCgKKyAgICAgICAgbmFt
ZT0ncHknLAorICAgICAgICBkZXNjcmlwdGlvbj0nbGlicmFyeSB3aXRoIGNyb3NzLXB5dGhvbiBw
YXRoLCBpbmktcGFyc2luZywgaW8sIGNvZGUsIGxvZyBmYWNpbGl0aWVzJywKKyAgICAgICAgbG9u
Z19kZXNjcmlwdGlvbj1vcGVuKCdSRUFETUUucnN0JykucmVhZCgpLAorICAgICAgICB2ZXJzaW9u
PWdldF92ZXJzaW9uKCksCisgICAgICAgIHVybD0naHR0cDovL3B5LnJlYWR0aGVkb2NzLmlvLycs
CisgICAgICAgIGxpY2Vuc2U9J01JVCBsaWNlbnNlJywKKyAgICAgICAgcGxhdGZvcm1zPVsndW5p
eCcsICdsaW51eCcsICdvc3gnLCAnY3lnd2luJywgJ3dpbjMyJ10sCisgICAgICAgIHB5dGhvbl9y
ZXF1aXJlcz0nPj0yLjcsICE9My4wLiosICE9My4xLiosICE9My4yLiosICE9My4zLionLAorICAg
ICAgICBhdXRob3I9J2hvbGdlciBrcmVrZWwsIFJvbm55IFBmYW5uc2NobWlkdCwgQmVuamFtaW4g
UGV0ZXJzb24gYW5kIG90aGVycycsCisgICAgICAgIGF1dGhvcl9lbWFpbD0ncHl0ZXN0LWRldkBw
eXRob24ub3JnJywKKyAgICAgICAgY2xhc3NpZmllcnM9WydEZXZlbG9wbWVudCBTdGF0dXMgOjog
NiAtIE1hdHVyZScsCisgICAgICAgICAgICAgICAgICAgICAnSW50ZW5kZWQgQXVkaWVuY2UgOjog
RGV2ZWxvcGVycycsCisgICAgICAgICAgICAgICAgICAgICAnTGljZW5zZSA6OiBPU0kgQXBwcm92
ZWQgOjogTUlUIExpY2Vuc2UnLAorICAgICAgICAgICAgICAgICAgICAgJ09wZXJhdGluZyBTeXN0
ZW0gOjogUE9TSVgnLAorICAgICAgICAgICAgICAgICAgICAgJ09wZXJhdGluZyBTeXN0ZW0gOjog
TWljcm9zb2Z0IDo6IFdpbmRvd3MnLAorICAgICAgICAgICAgICAgICAgICAgJ09wZXJhdGluZyBT
eXN0ZW0gOjogTWFjT1MgOjogTWFjT1MgWCcsCisgICAgICAgICAgICAgICAgICAgICAnVG9waWMg
OjogU29mdHdhcmUgRGV2ZWxvcG1lbnQgOjogVGVzdGluZycsCisgICAgICAgICAgICAgICAgICAg
ICAnVG9waWMgOjogU29mdHdhcmUgRGV2ZWxvcG1lbnQgOjogTGlicmFyaWVzJywKKyAgICAgICAg
ICAgICAgICAgICAgICdUb3BpYyA6OiBVdGlsaXRpZXMnLAorICAgICAgICAgICAgICAgICAgICAg
J1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbicsCisgICAgICAgICAgICAgICAgICAgICAn
UHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDInLAorICAgICAgICAgICAgICAgICAg
ICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAyLjcnLAorICAgICAgICAgICAg
ICAgICAgICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzJywKKyAgICAgICAg
ICAgICAgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy40JywKKyAg
ICAgICAgICAgICAgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMy41
JywKKyAgICAgICAgICAgICAgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24g
OjogMy42JywKKyAgICAgICAgICAgICAgICAgICAgICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQ
eXRob24gOjogSW1wbGVtZW50YXRpb24gOjogQ1B5dGhvbicsCisgICAgICAgICAgICAgICAgICAg
ICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IEltcGxlbWVudGF0aW9uIDo6IFB5
UHknLAorICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICBwYWNrYWdlcz1maW5kX3BhY2th
Z2VzKGV4Y2x1ZGU9Wyd0YXNrcycsICd0ZXN0aW5nJ10pLAorICAgICAgICB6aXBfc2FmZT1GYWxz
ZSwKKyAgICApCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgbWFpbigpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L3Rhc2tzL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90YXNrcy9fX2luaXRf
Xy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41ZDc0YjY0OWUxMWEyMzViNGM1MGU2MzlkZjM5MjA0YmQ5YjM3ZjUw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90YXNrcy9fX2luaXRfXy5weQpAQCAtMCwwICsx
LDEyIEBACisiIiIKK0ludm9rZSB0YXNrcyB0byBoZWxwIHdpdGggcHl0ZXN0IGRldmVsb3BtZW50
IGFuZCByZWxlYXNlIHByb2Nlc3MuCisiIiIKKworaW1wb3J0IGludm9rZQorCitmcm9tIC4gaW1w
b3J0IHZlbmRvcmluZworCisKK25zID0gaW52b2tlLkNvbGxlY3Rpb24oCisgICAgdmVuZG9yaW5n
CispCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rhc2tzL3ZlbmRvcmluZy5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGFz
a3MvdmVuZG9yaW5nLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiYzE3MWJjM2UwY2RiNGYzNGZmZjg1ZjQ2NzUz
YjFjODU2NjRlNzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rhc2tzL3ZlbmRvcmluZy5w
eQpAQCAtMCwwICsxLDIzIEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9y
dCwgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCBweQoraW1wb3J0IGludm9rZQorCitWRU5ET1JfVEFS
R0VUID0gcHkucGF0aC5sb2NhbCgicHkvX3ZlbmRvcmVkX3BhY2thZ2VzIikKK0dPT0RfRklMRVMg
PSAnUkVBRE1FLm1kJywgJ19faW5pdF9fLnB5JworCitAaW52b2tlLnRhc2soKQorZGVmIHJlbW92
ZV9saWJzKGN0eCk6CisgICAgcHJpbnQoInJlbW92aW5nIHZlbmRvcmVkIGxpYnMiKQorICAgIGZv
ciBwYXRoIGluIFZFTkRPUl9UQVJHRVQubGlzdGRpcigpOgorICAgICAgICBpZiBwYXRoLmJhc2Vu
YW1lIG5vdCBpbiBHT09EX0ZJTEVTOgorICAgICAgICAgICAgcHJpbnQoIiAiLCBwYXRoKQorICAg
ICAgICAgICAgcGF0aC5yZW1vdmUoKQorCitAaW52b2tlLnRhc2socHJlPVtyZW1vdmVfbGlic10p
CitkZWYgdXBkYXRlX2xpYnMoY3R4KToKKyAgICBwcmludCgiaW5zdGFsbGluZyBsaWJzIikKKyAg
ICBjdHgucnVuKCJwaXAgaW5zdGFsbCAtdCB7dGFyZ2V0fSBhcGlwa2cgaW5pY29uZmlnIi5mb3Jt
YXQodGFyZ2V0PVZFTkRPUl9UQVJHRVQpKQorICAgIGN0eC5ydW4oImdpdCBhZGQge3RhcmdldH0i
LmZvcm1hdCh0YXJnZXQ9VkVORE9SX1RBUkdFVCkpCisgICAgcHJpbnQoIlBsZWFzZSBjb21taXQg
dG8gZmluaXNoIHRoZSB1cGRhdGUgYWZ0ZXIgcnVubmluZyB0aGUgdGVzdHM6IikKKyAgICBwcmlu
dCgpCisgICAgcHJpbnQoJyAgICBnaXQgY29tbWl0IC1hbSAiVXBkYXRlZCB2ZW5kb3JlZCBsaWJz
IicpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rhc2tzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90
YXNrcy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYmNkYzI1ZWI4NDgyNGNiNTdkMWRkMmE4
ZTljZTFkYjJiZGJjZjY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90YXNrcy93M2MtaW1w
b3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
KworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUK
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rhc2tzL19faW5pdF9f
LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS90YXNrcy92ZW5kb3JpbmcucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVz
dGluZy9jb2RlL3Rlc3RfYXNzZXJ0aW9uLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2NvZGUvdGVzdF9h
c3NlcnRpb24ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTJhN2Y5MDM5OTg0NTAwOWU1NjdlOThkYTVmYzY5OGY4
MTRhYTBkOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9jb2RlL3Rlc3RfYXNz
ZXJ0aW9uLnB5CkBAIC0wLDAgKzEsMzA1IEBACitpbXBvcnQgcHl0ZXN0LCBweQoraW1wb3J0IHJl
CisKK2RlZiBleHZhbHVlKCk6CisgICAgaW1wb3J0IHN5cworICAgIHJldHVybiBzeXMuZXhjX2lu
Zm8oKVsxXQorCitkZWYgZigpOgorICAgIHJldHVybiAyCisKK2RlZiB0ZXN0X2Fzc2VydCgpOgor
ICAgIHRyeToKKyAgICAgICAgYXNzZXJ0IGYoKSA9PSAzCisgICAgZXhjZXB0IEFzc2VydGlvbkVy
cm9yOgorICAgICAgICBlID0gZXh2YWx1ZSgpCisgICAgICAgIHMgPSBzdHIoZSkKKyAgICAgICAg
YXNzZXJ0IHMuc3RhcnRzd2l0aCgnYXNzZXJ0IDIgPT0gM1xuJykKKworCitkZWYgdGVzdF9hc3Nl
cnRfd2l0aGluX2ZpbmFsbHkoKToKKyAgICBleGNpbmZvID0gcHkudGVzdC5yYWlzZXMoWmVyb0Rp
dmlzaW9uRXJyb3IsICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICAxLzAKKyAgICAgICAg
ZmluYWxseToKKyAgICAgICAgICAgIGkgPSA0MgorICAgICIiIikKKyAgICBzID0gZXhjaW5mby5l
eGNvbmx5KCkKKyAgICBhc3NlcnQgcmUuc2VhcmNoKCJaZXJvRGl2aXNpb25FcnJvcjouKmRpdmlz
aW9uIiwgcykgaXMgbm90IE5vbmUKKworCitkZWYgdGVzdF9hc3NlcnRfbXVsdGlsaW5lXzEoKToK
KyAgICB0cnk6CisgICAgICAgIGFzc2VydCAoZigpID09CisgICAgICAgICAgICAgICAgMykKKyAg
ICBleGNlcHQgQXNzZXJ0aW9uRXJyb3I6CisgICAgICAgIGUgPSBleHZhbHVlKCkKKyAgICAgICAg
cyA9IHN0cihlKQorICAgICAgICBhc3NlcnQgcy5zdGFydHN3aXRoKCdhc3NlcnQgMiA9PSAzXG4n
KQorCitkZWYgdGVzdF9hc3NlcnRfbXVsdGlsaW5lXzIoKToKKyAgICB0cnk6CisgICAgICAgIGFz
c2VydCAoZigpID09ICg0LAorICAgICAgICAgICAgICAgICAgIDMpWy0xXSkKKyAgICBleGNlcHQg
QXNzZXJ0aW9uRXJyb3I6CisgICAgICAgIGUgPSBleHZhbHVlKCkKKyAgICAgICAgcyA9IHN0cihl
KQorICAgICAgICBhc3NlcnQgcy5zdGFydHN3aXRoKCdhc3NlcnQgMiA9PScpCisKK2RlZiB0ZXN0
X2luKCk6CisgICAgdHJ5OgorICAgICAgICBhc3NlcnQgImhpIiBpbiBbMSwgMl0KKyAgICBleGNl
cHQgQXNzZXJ0aW9uRXJyb3I6CisgICAgICAgIGUgPSBleHZhbHVlKCkKKyAgICAgICAgcyA9IHN0
cihlKQorICAgICAgICBhc3NlcnQgcy5zdGFydHN3aXRoKCJhc3NlcnQgJ2hpJyBpbiIpCisKK2Rl
ZiB0ZXN0X2lzKCk6CisgICAgdHJ5OgorICAgICAgICBhc3NlcnQgMSBpcyAyCisgICAgZXhjZXB0
IEFzc2VydGlvbkVycm9yOgorICAgICAgICBlID0gZXh2YWx1ZSgpCisgICAgICAgIHMgPSBzdHIo
ZSkKKyAgICAgICAgYXNzZXJ0IHMuc3RhcnRzd2l0aCgiYXNzZXJ0IDEgaXMgMiIpCisKKworZGVm
IHRlc3RfYXR0cmliKCk6CisgICAgY2xhc3MgRm9vKG9iamVjdCk6CisgICAgICAgIGIgPSAxCisg
ICAgaSA9IEZvbygpCisgICAgdHJ5OgorICAgICAgICBhc3NlcnQgaS5iID09IDIKKyAgICBleGNl
cHQgQXNzZXJ0aW9uRXJyb3I6CisgICAgICAgIGUgPSBleHZhbHVlKCkKKyAgICAgICAgcyA9IHN0
cihlKQorICAgICAgICBhc3NlcnQgcy5zdGFydHN3aXRoKCJhc3NlcnQgMSA9PSAyIikKKworZGVm
IHRlc3RfYXR0cmliX2luc3QoKToKKyAgICBjbGFzcyBGb28ob2JqZWN0KToKKyAgICAgICAgYiA9
IDEKKyAgICB0cnk6CisgICAgICAgIGFzc2VydCBGb28oKS5iID09IDIKKyAgICBleGNlcHQgQXNz
ZXJ0aW9uRXJyb3I6CisgICAgICAgIGUgPSBleHZhbHVlKCkKKyAgICAgICAgcyA9IHN0cihlKQor
ICAgICAgICBhc3NlcnQgcy5zdGFydHN3aXRoKCJhc3NlcnQgMSA9PSAyIikKKworZGVmIHRlc3Rf
bGVuKCk6CisgICAgbCA9IGxpc3QocmFuZ2UoNDIpKQorICAgIHRyeToKKyAgICAgICAgYXNzZXJ0
IGxlbihsKSA9PSAxMDAKKyAgICBleGNlcHQgQXNzZXJ0aW9uRXJyb3I6CisgICAgICAgIGUgPSBl
eHZhbHVlKCkKKyAgICAgICAgcyA9IHN0cihlKQorICAgICAgICBhc3NlcnQgcy5zdGFydHN3aXRo
KCJhc3NlcnQgNDIgPT0gMTAwIikKKyAgICAgICAgYXNzZXJ0ICJ3aGVyZSA0MiA9IGxlbihbIiBp
biBzCisKKworZGVmIHRlc3RfYXNzZXJ0X2tleXdvcmRfYXJnKCk6CisgICAgZGVmIGYoeD0zKToK
KyAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgdHJ5OgorICAgICAgICBhc3NlcnQgZih4PTUpCisg
ICAgZXhjZXB0IEFzc2VydGlvbkVycm9yOgorICAgICAgICBlID0gZXh2YWx1ZSgpCisgICAgICAg
IGFzc2VydCAieD01IiBpbiBzdHIoZSkKKworIyBUaGVzZSB0ZXN0cyBzaG91bGQgYm90aCBmYWls
LCBidXQgc2hvdWxkIGZhaWwgbmljZWx5Li4uCitjbGFzcyBXZWlyZFJlcHI6CisgICAgZGVmIF9f
cmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gJzxXZWlyZFJlcHJcbnNlY29uZCBsaW5lPicK
KworZGVmIGJ1Z190ZXN0X2Fzc2VydF9yZXByKCk6CisgICAgdiA9IFdlaXJkUmVwcigpCisgICAg
dHJ5OgorICAgICAgICBhc3NlcnQgdiA9PSAxCisgICAgZXhjZXB0IEFzc2VydGlvbkVycm9yOgor
ICAgICAgICBlID0gZXh2YWx1ZSgpCisgICAgICAgIGFzc2VydCBzdHIoZSkuZmluZCgnV2VpcmRS
ZXByJykgIT0gLTEKKyAgICAgICAgYXNzZXJ0IHN0cihlKS5maW5kKCdzZWNvbmQgbGluZScpICE9
IC0xCisgICAgICAgIGFzc2VydCAwCisKK2RlZiB0ZXN0X2Fzc2VydF9ub25fc3RyaW5nKCk6Cisg
ICAgdHJ5OgorICAgICAgICBhc3NlcnQgMCwgWydsaXN0J10KKyAgICBleGNlcHQgQXNzZXJ0aW9u
RXJyb3I6CisgICAgICAgIGUgPSBleHZhbHVlKCkKKyAgICAgICAgYXNzZXJ0IHN0cihlKS5maW5k
KCJsaXN0IikgIT0gLTEKKworZGVmIHRlc3RfYXNzZXJ0X2ltcGxpY2l0X211bHRpbGluZSgpOgor
ICAgIHRyeToKKyAgICAgICAgeCA9IFsxLDIsM10KKyAgICAgICAgYXNzZXJ0IHggIT0gWzEsCisg
ICAgICAgICAgIDIsIDNdCisgICAgZXhjZXB0IEFzc2VydGlvbkVycm9yOgorICAgICAgICBlID0g
ZXh2YWx1ZSgpCisgICAgICAgIGFzc2VydCBzdHIoZSkuZmluZCgnYXNzZXJ0IFsxLCAyLCAzXSAh
PScpICE9IC0xCisKK0BweS50ZXN0Lm1hcmsueGZhaWwocHkudGVzdC5fX3ZlcnNpb25fX1swXSAh
PSAiMiIsCisgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iYnJva2VuIG9uIG1vZGVybiBweXRl
c3QiLAorICAgICAgICAgICAgICAgICAgICBydW49RmFsc2UKKykKK2RlZiB0ZXN0X2Fzc2VydF93
aXRoX2Jyb2tlbnJlcHJfYXJnKCk6CisgICAgY2xhc3MgQnJva2VuUmVwcjoKKyAgICAgICAgZGVm
IF9fcmVwcl9fKHNlbGYpOiAwIC8gMAorICAgIGUgPSBBc3NlcnRpb25FcnJvcihCcm9rZW5SZXBy
KCkpCisgICAgaWYgZS5tc2cuZmluZCgiYnJva2VuIF9fcmVwcl9fIikgPT0gLTE6CisgICAgICAg
IHB5LnRlc3QuZmFpbCgiYnJva2VuIF9fcmVwcl9fIG5vdCBoYW5kbGUgY29ycmVjdGx5IikKKwor
ZGVmIHRlc3RfbXVsdGlwbGVfc3RhdGVtZW50c19wZXJfbGluZSgpOgorICAgIHRyeToKKyAgICAg
ICAgYSA9IDE7IGFzc2VydCBhID09IDIKKyAgICBleGNlcHQgQXNzZXJ0aW9uRXJyb3I6CisgICAg
ICAgIGUgPSBleHZhbHVlKCkKKyAgICAgICAgYXNzZXJ0ICJhc3NlcnQgMSA9PSAyIiBpbiBzdHIo
ZSkKKworZGVmIHRlc3RfcG93ZXIoKToKKyAgICB0cnk6CisgICAgICAgIGFzc2VydCAyKiozID09
IDcKKyAgICBleGNlcHQgQXNzZXJ0aW9uRXJyb3I6CisgICAgICAgIGUgPSBleHZhbHVlKCkKKyAg
ICAgICAgYXNzZXJ0ICJhc3NlcnQgKDIgKiogMykgPT0gNyIgaW4gc3RyKGUpCisKKworY2xhc3Mg
VGVzdFZpZXc6CisKKyAgICBkZWYgc2V0dXBfY2xhc3MoY2xzKToKKyAgICAgICAgY2xzLlZpZXcg
PSBweS50ZXN0LmltcG9ydG9yc2tpcCgicHkuX2NvZGUuX2Fzc2VydGlvbm9sZCIpLlZpZXcKKwor
ICAgIGRlZiB0ZXN0X2NsYXNzX2Rpc3BhdGNoKHNlbGYpOgorICAgICAgICAjIyMgVXNlIGEgY3Vz
dG9tIGNsYXNzIGhpZXJhcmNoeSB3aXRoIGV4aXN0aW5nIGluc3RhbmNlcworCisgICAgICAgIGNs
YXNzIFBpY2tsYWJsZShzZWxmLlZpZXcpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIGNs
YXNzIFNpbXBsZShQaWNrbGFibGUpOgorICAgICAgICAgICAgX192aWV3X18gPSBvYmplY3QKKyAg
ICAgICAgICAgIGRlZiBwaWNrbGUoc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcHIo
c2VsZi5fX29ial9fKQorCisgICAgICAgIGNsYXNzIFNlcShQaWNrbGFibGUpOgorICAgICAgICAg
ICAgX192aWV3X18gPSBsaXN0LCB0dXBsZSwgZGljdAorICAgICAgICAgICAgZGVmIHBpY2tsZShz
ZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gJzsnLmpvaW4oCisgICAgICAgICAgICAgICAg
ICAgIFtQaWNrbGFibGUoaXRlbSkucGlja2xlKCkgZm9yIGl0ZW0gaW4gc2VsZi5fX29ial9fXSkK
KworICAgICAgICBjbGFzcyBEaWN0KFNlcSk6CisgICAgICAgICAgICBfX3ZpZXdfXyA9IGRpY3QK
KyAgICAgICAgICAgIGRlZiBwaWNrbGUoc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuIFNl
cS5waWNrbGUoc2VsZikgKyAnIScgKyBTZXEoc2VsZi52YWx1ZXMoKSkucGlja2xlKCkKKworICAg
ICAgICBhc3NlcnQgUGlja2xhYmxlKDEyMykucGlja2xlKCkgPT0gJzEyMycKKyAgICAgICAgYXNz
ZXJ0IFBpY2tsYWJsZShbMSxbMiwzXSw0XSkucGlja2xlKCkgPT0gJzE7MjszOzQnCisgICAgICAg
IGFzc2VydCBQaWNrbGFibGUoezE6Mn0pLnBpY2tsZSgpID09ICcxITInCisKKyAgICBkZWYgdGVz
dF92aWV3dHlwZV9jbGFzc19oaWVyYXJjaHkoc2VsZik6CisgICAgICAgICMgVXNlIGEgY3VzdG9t
IGNsYXNzIGhpZXJhcmNoeSBiYXNlZCBvbiBhdHRyaWJ1dGVzIG9mIGV4aXN0aW5nIGluc3RhbmNl
cworICAgICAgICBjbGFzcyBPcGVyYXRpb246CisgICAgICAgICAgICAiRXhpc3RpbmcgY2xhc3Mg
dGhhdCBJIGRvbid0IHdhbnQgdG8gY2hhbmdlLiIKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBvcG5hbWUsICphcmdzKToKKyAgICAgICAgICAgICAgICBzZWxmLm9wbmFtZSA9IG9wbmFt
ZQorICAgICAgICAgICAgICAgIHNlbGYuYXJncyA9IGFyZ3MKKworICAgICAgICBleGlzdGluZyA9
IFtPcGVyYXRpb24oJysnLCA0LCA1KSwKKyAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uKCdn
ZXRpdGVtJywgJycsICdqb2luJyksCisgICAgICAgICAgICAgICAgICAgIE9wZXJhdGlvbignc2V0
YXR0cicsICd4JywgJ3knLCAzKSwKKyAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uKCctJywg
MTIsIDEpXQorCisgICAgICAgIGNsYXNzIFB5T3Aoc2VsZi5WaWV3KToKKyAgICAgICAgICAgIGRl
ZiBfX3ZpZXdrZXlfXyhzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5vcG5hbWUK
KyAgICAgICAgICAgIGRlZiBnZW5lcmF0ZShzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4g
JyVzKCVzKScgJSAoc2VsZi5vcG5hbWUsICcsICcuam9pbihtYXAocmVwciwgc2VsZi5hcmdzKSkp
CisKKyAgICAgICAgY2xhc3MgUHlCaW5hcnlPcChQeU9wKToKKyAgICAgICAgICAgIF9fdmlld19f
ID0gKCcrJywgJy0nLCAnKicsICcvJykKKyAgICAgICAgICAgIGRlZiBnZW5lcmF0ZShzZWxmKToK
KyAgICAgICAgICAgICAgICByZXR1cm4gJyVzICVzICVzJyAlIChzZWxmLmFyZ3NbMF0sIHNlbGYu
b3BuYW1lLCBzZWxmLmFyZ3NbMV0pCisKKyAgICAgICAgY29kZWxpbmVzID0gW1B5T3Aob3ApLmdl
bmVyYXRlKCkgZm9yIG9wIGluIGV4aXN0aW5nXQorICAgICAgICBhc3NlcnQgY29kZWxpbmVzID09
IFsiNCArIDUiLCAiZ2V0aXRlbSgnJywgJ2pvaW4nKSIsCisgICAgICAgICAgICAic2V0YXR0cign
eCcsICd5JywgMykiLCAiMTIgLSAxIl0KKworZGVmIHRlc3RfdW5kZXJzY29yZV9hcGkoKToKKyAg
ICBweS5jb2RlLl9Bc3NlcnRpb25FcnJvcgorICAgIHB5LmNvZGUuX3JlaW50ZXJwcmV0X29sZCAj
IHVzZWQgYnkgcHlweQorICAgIHB5LmNvZGUuX3JlaW50ZXJwcmV0CisKK2RlZiB0ZXN0X2Fzc2Vy
dF9jdXN0b21pemFibGVfcmVwcmNvbXBhcmUobW9ua2V5cGF0Y2gpOgorICAgIHV0aWwgPSBweXRl
c3QuaW1wb3J0b3Jza2lwKCJfcHl0ZXN0LmFzc2VydGlvbi51dGlsIikKKyAgICBtb25rZXlwYXRj
aC5zZXRhdHRyKHV0aWwsICdfcmVwcmNvbXBhcmUnLCBsYW1iZGEgKmFyZ3M6ICdoZWxsbycpCisg
ICAgdHJ5OgorICAgICAgICBhc3NlcnQgMyA9PSA0CisgICAgZXhjZXB0IEFzc2VydGlvbkVycm9y
OgorICAgICAgICBlID0gZXh2YWx1ZSgpCisgICAgICAgIHMgPSBzdHIoZSkKKyAgICAgICAgYXNz
ZXJ0ICJoZWxsbyIgaW4gcworCitkZWYgdGVzdF9hc3NlcnRfbG9uZ19zb3VyY2VfMSgpOgorICAg
IHRyeToKKyAgICAgICAgYXNzZXJ0IGxlbiA9PSBbCisgICAgICAgICAgICAoTm9uZSwgWydzb21l
dCB0ZXh0JywgJ21vcmUgdGV4dCddKSwKKyAgICAgICAgXQorICAgIGV4Y2VwdCBBc3NlcnRpb25F
cnJvcjoKKyAgICAgICAgZSA9IGV4dmFsdWUoKQorICAgICAgICBzID0gc3RyKGUpCisgICAgICAg
IGFzc2VydCAncmUtcnVuJyBub3QgaW4gcworICAgICAgICBhc3NlcnQgJ3NvbWV0IHRleHQnIGlu
IHMKKworZGVmIHRlc3RfYXNzZXJ0X2xvbmdfc291cmNlXzIoKToKKyAgICB0cnk6CisgICAgICAg
IGFzc2VydChsZW4gPT0gWworICAgICAgICAgICAgKE5vbmUsIFsnc29tZXQgdGV4dCcsICdtb3Jl
IHRleHQnXSksCisgICAgICAgIF0pCisgICAgZXhjZXB0IEFzc2VydGlvbkVycm9yOgorICAgICAg
ICBlID0gZXh2YWx1ZSgpCisgICAgICAgIHMgPSBzdHIoZSkKKyAgICAgICAgYXNzZXJ0ICdyZS1y
dW4nIG5vdCBpbiBzCisgICAgICAgIGFzc2VydCAnc29tZXQgdGV4dCcgaW4gcworCitkZWYgdGVz
dF9hc3NlcnRfcmFpc2VfYWxpYXModGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIi
IgorICAgIGltcG9ydCBzeXMKKyAgICBFWCA9IEFzc2VydGlvbkVycm9yCisgICAgZGVmIHRlc3Rf
aGVsbG8oKToKKyAgICAgICAgcmFpc2UgRVgoImhlbGxvIgorICAgICAgICAgICAgIm11bHRpIgor
ICAgICAgICAgICAgImxpbmUiKQorICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIipkZWYg
dGVzdF9oZWxsbyoiLAorICAgICAgICAiKnJhaXNlIEVYKiIsCisgICAgICAgICIqMSBmYWlsZWQq
IiwKKyAgICBdKQorCitAcHkudGVzdC5tYXJrLnhmYWlsKHB5LnRlc3QuX192ZXJzaW9uX19bMF0g
IT0gIjIiLAorICAgICAgICAgICAgICAgICAgICByZWFzb249ImJyb2tlbiBvbiBtb2Rlcm4gcHl0
ZXN0IiwKKyAgICAgICAgICAgICAgICAgICAgcnVuPUZhbHNlKQorZGVmIHRlc3RfYXNzZXJ0X3Jh
aXNlX3N1YmNsYXNzKCk6CisgICAgY2xhc3MgU29tZUV4KEFzc2VydGlvbkVycm9yKToKKyAgICAg
ICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzKToKKyAgICAgICAgICAgIHN1cGVyKFNvbWVFeCwg
c2VsZikuX19pbml0X18oKQorICAgIHRyeToKKyAgICAgICAgcmFpc2UgU29tZUV4KCJoZWxsbyIp
CisgICAgZXhjZXB0IEFzc2VydGlvbkVycm9yIGFzIGU6CisgICAgICAgIHMgPSBzdHIoZSkKKyAg
ICAgICAgYXNzZXJ0ICdyZS1ydW4nIG5vdCBpbiBzCisgICAgICAgIGFzc2VydCAnY291bGQgbm90
IGRldGVybWluZScgaW4gcworCitkZWYgdGVzdF9hc3NlcnRfcmFpc2VzX2luX25vbnplcm9fb2Zf
b2JqZWN0X3B5dGVzdF9pc3N1ZTEwKCk6CisgICAgY2xhc3MgQShvYmplY3QpOgorICAgICAgICBk
ZWYgX19ub256ZXJvX18oc2VsZik6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKDQyKQor
ICAgICAgICBkZWYgX19sdF9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgICAgIHJldHVybiBBKCkK
KyAgICAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuICI8TVk0MiBv
YmplY3Q+IgorICAgIGRlZiBteWFueSh4KToKKyAgICAgICAgcmV0dXJuIFRydWUKKyAgICB0cnk6
CisgICAgICAgIGFzc2VydCBub3QobXlhbnkoQSgpIDwgMCkpCisgICAgZXhjZXB0IEFzc2VydGlv
bkVycm9yOgorICAgICAgICBlID0gZXh2YWx1ZSgpCisgICAgICAgIHMgPSBzdHIoZSkKKyAgICAg
ICAgYXNzZXJ0ICI8TVk0MiBvYmplY3Q+IDwgMCIgaW4gcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90
ZXN0aW5nL2NvZGUvdGVzdF9jb2RlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2NvZGUvdGVzdF9jb2Rl
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjI4ZWM2MjhiMDBkNDM2MTVhZDZiZDlmODFjMmZjOWMyMDNmMGFmYjIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvY29kZS90ZXN0X2NvZGUucHkKQEAg
LTAsMCArMSwxNTkgQEAKK2ltcG9ydCBweQoraW1wb3J0IHN5cworCitkZWYgdGVzdF9uZSgpOgor
ICAgIGNvZGUxID0gcHkuY29kZS5Db2RlKGNvbXBpbGUoJ2ZvbyA9ICJiYXIiJywgJycsICdleGVj
JykpCisgICAgYXNzZXJ0IGNvZGUxID09IGNvZGUxCisgICAgY29kZTIgPSBweS5jb2RlLkNvZGUo
Y29tcGlsZSgnZm9vID0gImJheiInLCAnJywgJ2V4ZWMnKSkKKyAgICBhc3NlcnQgY29kZTIgIT0g
Y29kZTEKKworZGVmIHRlc3RfY29kZV9naXZlc19iYWNrX25hbWVfZm9yX25vdF9leGlzdGluZ19m
aWxlKCk6CisgICAgbmFtZSA9ICdhYmMtMTIzJworICAgIGNvX2NvZGUgPSBjb21waWxlKCJwYXNz
XG4iLCBuYW1lLCAnZXhlYycpCisgICAgYXNzZXJ0IGNvX2NvZGUuY29fZmlsZW5hbWUgPT0gbmFt
ZQorICAgIGNvZGUgPSBweS5jb2RlLkNvZGUoY29fY29kZSkKKyAgICBhc3NlcnQgc3RyKGNvZGUu
cGF0aCkgPT0gbmFtZQorICAgIGFzc2VydCBjb2RlLmZ1bGxzb3VyY2UgaXMgTm9uZQorCitkZWYg
dGVzdF9jb2RlX3dpdGhfY2xhc3MoKToKKyAgICBjbGFzcyBBOgorICAgICAgICBwYXNzCisgICAg
cHkudGVzdC5yYWlzZXMoVHlwZUVycm9yLCAicHkuY29kZS5Db2RlKEEpIikKKworaWYgVHJ1ZToK
KyAgICBkZWYgeCgpOgorICAgICAgICBwYXNzCisKK2RlZiB0ZXN0X2NvZGVfZnVsbHNvdXJjZSgp
OgorICAgIGNvZGUgPSBweS5jb2RlLkNvZGUoeCkKKyAgICBmdWxsID0gY29kZS5mdWxsc291cmNl
CisgICAgYXNzZXJ0ICd0ZXN0X2NvZGVfZnVsbHNvdXJjZSgpJyBpbiBzdHIoZnVsbCkKKworZGVm
IHRlc3RfY29kZV9zb3VyY2UoKToKKyAgICBjb2RlID0gcHkuY29kZS5Db2RlKHgpCisgICAgc3Jj
ID0gY29kZS5zb3VyY2UoKQorICAgIGV4cGVjdGVkID0gIiIiZGVmIHgoKToKKyAgICBwYXNzIiIi
CisgICAgYXNzZXJ0IHN0cihzcmMpID09IGV4cGVjdGVkCisKK2RlZiB0ZXN0X2ZyYW1lX2dldHNv
dXJjZWxpbmVub19teXNlbGYoKToKKyAgICBkZWYgZnVuYygpOgorICAgICAgICByZXR1cm4gc3lz
Ll9nZXRmcmFtZSgwKQorICAgIGYgPSBmdW5jKCkKKyAgICBmID0gcHkuY29kZS5GcmFtZShmKQor
ICAgIHNvdXJjZSwgbGluZW5vID0gZi5jb2RlLmZ1bGxzb3VyY2UsIGYubGluZW5vCisgICAgYXNz
ZXJ0IHNvdXJjZVtsaW5lbm9dLnN0YXJ0c3dpdGgoIiAgICAgICAgcmV0dXJuIHN5cy5fZ2V0ZnJh
bWUoMCkiKQorCitkZWYgdGVzdF9nZXRzdGF0ZW1lbnRfZW1wdHlfZnVsbHNvdXJjZSgpOgorICAg
IGRlZiBmdW5jKCk6CisgICAgICAgIHJldHVybiBzeXMuX2dldGZyYW1lKDApCisgICAgZiA9IGZ1
bmMoKQorICAgIGYgPSBweS5jb2RlLkZyYW1lKGYpCisgICAgcHJvcCA9IGYuY29kZS5fX2NsYXNz
X18uZnVsbHNvdXJjZQorICAgIHRyeToKKyAgICAgICAgZi5jb2RlLl9fY2xhc3NfXy5mdWxsc291
cmNlID0gTm9uZQorICAgICAgICBhc3NlcnQgZi5zdGF0ZW1lbnQgPT0gcHkuY29kZS5Tb3VyY2Uo
IiIpCisgICAgZmluYWxseToKKyAgICAgICAgZi5jb2RlLl9fY2xhc3NfXy5mdWxsc291cmNlID0g
cHJvcAorCitkZWYgdGVzdF9jb2RlX2Zyb21fZnVuYygpOgorICAgIGNvID0gcHkuY29kZS5Db2Rl
KHRlc3RfZnJhbWVfZ2V0c291cmNlbGluZW5vX215c2VsZikKKyAgICBhc3NlcnQgY28uZmlyc3Rs
aW5lbm8KKyAgICBhc3NlcnQgY28ucGF0aAorCisKKworZGVmIHRlc3RfYnVpbHRpbl9wYXRjaF91
bnBhdGNoKG1vbmtleXBhdGNoKToKKyAgICBjcHlfYnVpbHRpbiA9IHB5LmJ1aWx0aW4uYnVpbHRp
bnMKKyAgICBjb21wID0gY3B5X2J1aWx0aW4uY29tcGlsZQorICAgIGRlZiBteWNvbXBpbGUoKmFy
Z3MsICoqa3dhcmdzKToKKyAgICAgICAgcmV0dXJuIGNvbXAoKmFyZ3MsICoqa3dhcmdzKQorICAg
IGNsYXNzIFN1YihBc3NlcnRpb25FcnJvcik6CisgICAgICAgIHBhc3MKKyAgICBtb25rZXlwYXRj
aC5zZXRhdHRyKGNweV9idWlsdGluLCAnQXNzZXJ0aW9uRXJyb3InLCBTdWIpCisgICAgbW9ua2V5
cGF0Y2guc2V0YXR0cihjcHlfYnVpbHRpbiwgJ2NvbXBpbGUnLCBteWNvbXBpbGUpCisgICAgcHku
Y29kZS5wYXRjaF9idWlsdGlucygpCisgICAgYXNzZXJ0IGNweV9idWlsdGluLkFzc2VydGlvbkVy
cm9yICE9IFN1YgorICAgIGFzc2VydCBjcHlfYnVpbHRpbi5jb21waWxlICE9IG15Y29tcGlsZQor
ICAgIHB5LmNvZGUudW5wYXRjaF9idWlsdGlucygpCisgICAgYXNzZXJ0IGNweV9idWlsdGluLkFz
c2VydGlvbkVycm9yIGlzIFN1YgorICAgIGFzc2VydCBjcHlfYnVpbHRpbi5jb21waWxlID09IG15
Y29tcGlsZQorCisKK2RlZiB0ZXN0X3VuaWNvZGVfaGFuZGxpbmcoKToKKyAgICB2YWx1ZSA9IHB5
LmJ1aWx0aW4uX3RvdGV4dCgnXHhjNFx4ODVceGM0XHg4N1xuJywgJ3V0Zi04JykuZW5jb2RlKCd1
dGY4JykKKyAgICBkZWYgZigpOgorICAgICAgICByYWlzZSBFeGNlcHRpb24odmFsdWUpCisgICAg
ZXhjaW5mbyA9IHB5LnRlc3QucmFpc2VzKEV4Y2VwdGlvbiwgZikKKyAgICBzID0gc3RyKGV4Y2lu
Zm8pCisgICAgaWYgc3lzLnZlcnNpb25faW5mb1swXSA8IDM6CisgICAgICAgIHUgPSB1bmljb2Rl
KGV4Y2luZm8pCisKK2RlZiB0ZXN0X2NvZGVfZ2V0YXJncygpOgorICAgIGRlZiBmMSh4KToKKyAg
ICAgICAgcGFzcworICAgIGMxID0gcHkuY29kZS5Db2RlKGYxKQorICAgIGFzc2VydCBjMS5nZXRh
cmdzKHZhcj1UcnVlKSA9PSAoJ3gnLCkKKworICAgIGRlZiBmMih4LCAqeSk6CisgICAgICAgIHBh
c3MKKyAgICBjMiA9IHB5LmNvZGUuQ29kZShmMikKKyAgICBhc3NlcnQgYzIuZ2V0YXJncyh2YXI9
VHJ1ZSkgPT0gKCd4JywgJ3knKQorCisgICAgZGVmIGYzKHgsICoqeik6CisgICAgICAgIHBhc3MK
KyAgICBjMyA9IHB5LmNvZGUuQ29kZShmMykKKyAgICBhc3NlcnQgYzMuZ2V0YXJncyh2YXI9VHJ1
ZSkgPT0gKCd4JywgJ3onKQorCisgICAgZGVmIGY0KHgsICp5LCAqKnopOgorICAgICAgICBwYXNz
CisgICAgYzQgPSBweS5jb2RlLkNvZGUoZjQpCisgICAgYXNzZXJ0IGM0LmdldGFyZ3ModmFyPVRy
dWUpID09ICgneCcsICd5JywgJ3onKQorCisKK2RlZiB0ZXN0X2ZyYW1lX2dldGFyZ3MoKToKKyAg
ICBkZWYgZjEoeCk6CisgICAgICAgIHJldHVybiBzeXMuX2dldGZyYW1lKDApCisgICAgZnIxID0g
cHkuY29kZS5GcmFtZShmMSgnYScpKQorICAgIGFzc2VydCBmcjEuZ2V0YXJncyh2YXI9VHJ1ZSkg
PT0gWygneCcsICdhJyldCisKKyAgICBkZWYgZjIoeCwgKnkpOgorICAgICAgICByZXR1cm4gc3lz
Ll9nZXRmcmFtZSgwKQorICAgIGZyMiA9IHB5LmNvZGUuRnJhbWUoZjIoJ2EnLCAnYicsICdjJykp
CisgICAgYXNzZXJ0IGZyMi5nZXRhcmdzKHZhcj1UcnVlKSA9PSBbKCd4JywgJ2EnKSwgKCd5Jywg
KCdiJywgJ2MnKSldCisKKyAgICBkZWYgZjMoeCwgKip6KToKKyAgICAgICAgcmV0dXJuIHN5cy5f
Z2V0ZnJhbWUoMCkKKyAgICBmcjMgPSBweS5jb2RlLkZyYW1lKGYzKCdhJywgYj0nYycpKQorICAg
IGFzc2VydCBmcjMuZ2V0YXJncyh2YXI9VHJ1ZSkgPT0gWygneCcsICdhJyksICgneicsIHsnYic6
ICdjJ30pXQorCisgICAgZGVmIGY0KHgsICp5LCAqKnopOgorICAgICAgICByZXR1cm4gc3lzLl9n
ZXRmcmFtZSgwKQorICAgIGZyNCA9IHB5LmNvZGUuRnJhbWUoZjQoJ2EnLCAnYicsIGM9J2QnKSkK
KyAgICBhc3NlcnQgZnI0LmdldGFyZ3ModmFyPVRydWUpID09IFsoJ3gnLCAnYScpLCAoJ3knLCAo
J2InLCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgneicsIHsnYyc6
ICdkJ30pXQorCisKK2NsYXNzIFRlc3RFeGNlcHRpb25JbmZvOgorCisgICAgZGVmIHRlc3RfYmFk
X2dldHNvdXJjZShzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgRmFsc2U6IHBh
c3MKKyAgICAgICAgICAgIGVsc2U6IGFzc2VydCBGYWxzZQorICAgICAgICBleGNlcHQgQXNzZXJ0
aW9uRXJyb3I6CisgICAgICAgICAgICBleGNpID0gcHkuY29kZS5FeGNlcHRpb25JbmZvKCkKKyAg
ICAgICAgYXNzZXJ0IGV4Y2kuZ2V0cmVwcigpCisKKworY2xhc3MgVGVzdFRyYWNlYmFja0VudHJ5
OgorCisgICAgZGVmIHRlc3RfZ2V0c291cmNlKHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAg
ICAgICBpZiBGYWxzZTogcGFzcworICAgICAgICAgICAgZWxzZTogYXNzZXJ0IEZhbHNlCisgICAg
ICAgIGV4Y2VwdCBBc3NlcnRpb25FcnJvcjoKKyAgICAgICAgICAgIGV4Y2kgPSBweS5jb2RlLkV4
Y2VwdGlvbkluZm8oKQorICAgICAgICBlbnRyeSA9IGV4Y2kudHJhY2ViYWNrWzBdCisgICAgICAg
IHNvdXJjZSA9IGVudHJ5LmdldHNvdXJjZSgpCisgICAgICAgIGFzc2VydCBsZW4oc291cmNlKSA9
PSA0CisgICAgICAgIGFzc2VydCAnZWxzZTogYXNzZXJ0IEZhbHNlJyBpbiBzb3VyY2VbM10KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9jb2RlL3Rlc3RfZXhjaW5mby5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkv
dGVzdGluZy9jb2RlL3Rlc3RfZXhjaW5mby5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMTQ4YWI4Y2ZiZDBiMGUw
MzU4Y2FlOGM0MjU1OGFjMTQ4YzNlZGNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0
aW5nL2NvZGUvdGVzdF9leGNpbmZvLnB5CkBAIC0wLDAgKzEsOTU2IEBACisjIC0qLSBjb2Rpbmc6
IHV0Zi04IC0qLQorCitpbXBvcnQgcHkKK2ltcG9ydCBweXRlc3QKK2ltcG9ydCBzeXMKK2Zyb20g
dGVzdF9zb3VyY2UgaW1wb3J0IGFzdG9ubHkKKworZnJvbSBweS5fY29kZS5jb2RlIGltcG9ydCBG
b3JtYXR0ZWRFeGNpbmZvLCBSZXByRXhjZXB0aW9uSW5mbworcXVldWUgPSBweS5idWlsdGluLl90
cnlpbXBvcnQoJ3F1ZXVlJywgJ1F1ZXVlJykKKworZmFpbHNvbmp5dGhvbiA9IHB5LnRlc3QubWFy
ay54ZmFpbCgic3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2phdmEnKSIpCisKK3RyeToKKyAgICBp
bXBvcnQgaW1wb3J0bGliCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgaW52YWxpZGF0ZV9pbXBv
cnRfY2FjaGVzID0gTm9uZQorZWxzZToKKyAgICBpbnZhbGlkYXRlX2ltcG9ydF9jYWNoZXMgPSBn
ZXRhdHRyKGltcG9ydGxpYiwgImludmFsaWRhdGVfY2FjaGVzIiwgTm9uZSkKKworCitweXRlc3Rf
dmVyc2lvbl9pbmZvID0gdHVwbGUobWFwKGludCwgcHl0ZXN0Ll9fdmVyc2lvbl9fLnNwbGl0KCIu
IilbOjNdKSkKKworYnJva2VuX29uX21vZGVybl9weXRlc3QgPSBweXRlc3QubWFyay54ZmFpbCgK
KyAgICBweXRlc3RfdmVyc2lvbl9pbmZvWzBdICE9IDIsCisgICAgcmVhc29uPSJ0aGlzIHRlc3Qg
aGFzbid0IGJlZW4gZml4ZWQgYWZ0ZXIgbW92aW5nIHB5LmNvZGUgaW50byBweXRlc3QiLAorICAg
IHJ1bj1GYWxzZQorICAgICkKKworCitjbGFzcyBUV01vY2s6CisgICAgZGVmIF9faW5pdF9fKHNl
bGYpOgorICAgICAgICBzZWxmLmxpbmVzID0gW10KKworICAgIGRlZiBzZXAoc2VsZiwgc2VwLCBs
aW5lPU5vbmUpOgorICAgICAgICBzZWxmLmxpbmVzLmFwcGVuZCgoc2VwLCBsaW5lKSkKKworICAg
IGRlZiBsaW5lKHNlbGYsIGxpbmUsICoqa3cpOgorICAgICAgICBzZWxmLmxpbmVzLmFwcGVuZChs
aW5lKQorCisgICAgZGVmIG1hcmt1cChzZWxmLCB0ZXh0LCAqKmt3KToKKyAgICAgICAgcmV0dXJu
IHRleHQKKworICAgIGZ1bGx3aWR0aCA9IDgwCisKKworZGVmIHRlc3RfZXhjaW5mb19zaW1wbGUo
KToKKyAgICB0cnk6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IKKyAgICBleGNlcHQgVmFsdWVF
cnJvcjoKKyAgICAgICAgaW5mbyA9IHB5LmNvZGUuRXhjZXB0aW9uSW5mbygpCisgICAgYXNzZXJ0
IGluZm8udHlwZSA9PSBWYWx1ZUVycm9yCisKKworZGVmIHRlc3RfZXhjaW5mb19nZXRzdGF0ZW1l
bnQoKToKKyAgICBkZWYgZygpOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yCisKKyAgICBkZWYg
ZigpOgorICAgICAgICBnKCkKKyAgICB0cnk6CisgICAgICAgIGYoKQorICAgIGV4Y2VwdCBWYWx1
ZUVycm9yOgorICAgICAgICBleGNpbmZvID0gcHkuY29kZS5FeGNlcHRpb25JbmZvKCkKKyAgICBs
aW5lbnVtYmVycyA9IFsKKyAgICAgICAgcHkuY29kZS5nZXRyYXdjb2RlKGYpLmNvX2ZpcnN0bGlu
ZW5vLTErMywKKyAgICAgICAgcHkuY29kZS5nZXRyYXdjb2RlKGYpLmNvX2ZpcnN0bGluZW5vLTEr
MSwKKyAgICAgICAgcHkuY29kZS5nZXRyYXdjb2RlKGcpLmNvX2ZpcnN0bGluZW5vLTErMSwKKyAg
ICBdCisgICAgbCA9IGxpc3QoZXhjaW5mby50cmFjZWJhY2spCisgICAgZm91bmRsaW5lbnVtYmVy
cyA9IFt4LmxpbmVubyBmb3IgeCBpbiBsXQorICAgIGFzc2VydCBmb3VuZGxpbmVudW1iZXJzID09
IGxpbmVudW1iZXJzCisgICAgI2ZvciB4IGluIGluZm86CisgICAgIyAgICBwcmludCAiJXM6JWQg
ICVzIiAlKHgucGF0aC5yZWx0byhyb290KSwgeC5saW5lbm8sIHguc3RhdGVtZW50KQorICAgICN4
eHgKKworIyB0ZXN0Y2hhaW4gZm9yIGdldGVudHJpZXMgdGVzdCBiZWxvdworZGVmIGYoKToKKyAg
ICAjCisgICAgcmFpc2UgVmFsdWVFcnJvcgorICAgICMKK2RlZiBnKCk6CisgICAgIworICAgIF9f
dHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAgIGYoKQorICAgICMKK2RlZiBoKCk6CisgICAgIwor
ICAgIGcoKQorICAgICMKKworY2xhc3MgVGVzdFRyYWNlYmFja19mX2dfaDoKKyAgICBkZWYgc2V0
dXBfbWV0aG9kKHNlbGYsIG1ldGhvZCk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGgoKQor
ICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgIHNlbGYuZXhjaW5mbyA9IHB5
LmNvZGUuRXhjZXB0aW9uSW5mbygpCisKKyAgICBkZWYgdGVzdF90cmFjZWJhY2tfZW50cmllcyhz
ZWxmKToKKyAgICAgICAgdGIgPSBzZWxmLmV4Y2luZm8udHJhY2ViYWNrCisgICAgICAgIGVudHJp
ZXMgPSBsaXN0KHRiKQorICAgICAgICBhc3NlcnQgbGVuKHRiKSA9PSA0ICMgbWF5YmUgZnJhZ2ls
ZSB0ZXN0CisgICAgICAgIGFzc2VydCBsZW4oZW50cmllcykgPT0gNCAjIG1heWJlIGZyYWdpbGUg
dGVzdAorICAgICAgICBuYW1lcyA9IFsnZicsICdnJywgJ2gnXQorICAgICAgICBmb3IgZW50cnkg
aW4gZW50cmllczoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBuYW1lcy5yZW1v
dmUoZW50cnkuZnJhbWUuY29kZS5uYW1lKQorICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6
CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICBhc3NlcnQgbm90IG5hbWVzCisKKyAgICBk
ZWYgdGVzdF90cmFjZWJhY2tfZW50cnlfZ2V0c291cmNlKHNlbGYpOgorICAgICAgICB0YiA9IHNl
bGYuZXhjaW5mby50cmFjZWJhY2sKKyAgICAgICAgcyA9IHN0cih0YlstMV0uZ2V0c291cmNlKCkp
CisgICAgICAgIGFzc2VydCBzLnN0YXJ0c3dpdGgoImRlZiBmKCk6IikKKyAgICAgICAgYXNzZXJ0
IHMuZW5kc3dpdGgoInJhaXNlIFZhbHVlRXJyb3IiKQorCisgICAgQGFzdG9ubHkKKyAgICBAZmFp
bHNvbmp5dGhvbgorICAgIGRlZiB0ZXN0X3RyYWNlYmFja19lbnRyeV9nZXRzb3VyY2VfaW5fY29u
c3RydWN0KHNlbGYpOgorICAgICAgICBzb3VyY2UgPSBweS5jb2RlLlNvdXJjZSgiIiJcCisgICAg
ICAgICAgICBkZWYgeHl6KCk6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAg
ICAgICByYWlzZSBWYWx1ZUVycm9yCisgICAgICAgICAgICAgICAgZXhjZXB0IHNvbWVub25hbWU6
CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIHh5eigpCisgICAgICAgICIi
IikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZXhlYyAoc291cmNlLmNvbXBpbGUoKSkKKyAg
ICAgICAgZXhjZXB0IE5hbWVFcnJvcjoKKyAgICAgICAgICAgIHRiID0gcHkuY29kZS5FeGNlcHRp
b25JbmZvKCkudHJhY2ViYWNrCisgICAgICAgICAgICBwcmludCAodGJbLTFdLmdldHNvdXJjZSgp
KQorICAgICAgICAgICAgcyA9IHN0cih0YlstMV0uZ2V0c291cmNlKCkpCisgICAgICAgICAgICBh
c3NlcnQgcy5zdGFydHN3aXRoKCJkZWYgeHl6KCk6XG4gICAgdHJ5OiIpCisgICAgICAgICAgICBh
c3NlcnQgcy5zdHJpcCgpLmVuZHN3aXRoKCJleGNlcHQgc29tZW5vbmFtZToiKQorCisgICAgZGVm
IHRlc3RfdHJhY2ViYWNrX2N1dChzZWxmKToKKyAgICAgICAgY28gPSBweS5jb2RlLkNvZGUoZikK
KyAgICAgICAgcGF0aCwgZmlyc3RsaW5lbm8gPSBjby5wYXRoLCBjby5maXJzdGxpbmVubworICAg
ICAgICB0cmFjZWJhY2sgPSBzZWxmLmV4Y2luZm8udHJhY2ViYWNrCisgICAgICAgIG5ld3RyYWNl
YmFjayA9IHRyYWNlYmFjay5jdXQocGF0aD1wYXRoLCBmaXJzdGxpbmVubz1maXJzdGxpbmVubykK
KyAgICAgICAgYXNzZXJ0IGxlbihuZXd0cmFjZWJhY2spID09IDEKKyAgICAgICAgbmV3dHJhY2Vi
YWNrID0gdHJhY2ViYWNrLmN1dChwYXRoPXBhdGgsIGxpbmVubz1maXJzdGxpbmVubysyKQorICAg
ICAgICBhc3NlcnQgbGVuKG5ld3RyYWNlYmFjaykgPT0gMQorCisgICAgZGVmIHRlc3RfdHJhY2Vi
YWNrX2N1dF9leGNsdWRlcGF0aChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIu
bWFrZXB5ZmlsZSgiZGVmIGYoKTogcmFpc2UgVmFsdWVFcnJvciIpCisgICAgICAgIGV4Y2luZm8g
PSBweS50ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCAicC5weWltcG9ydCgpLmYoKSIpCisgICAgICAg
IGJhc2VkaXIgPSBweS5wYXRoLmxvY2FsKHB5LnRlc3QuX19maWxlX18pLmRpcnBhdGgoKQorICAg
ICAgICBuZXd0cmFjZWJhY2sgPSBleGNpbmZvLnRyYWNlYmFjay5jdXQoZXhjbHVkZXBhdGg9YmFz
ZWRpcikKKyAgICAgICAgZm9yIHggaW4gbmV3dHJhY2ViYWNrOgorICAgICAgICAgICAgaWYgaGFz
YXR0cih4LCAncGF0aCcpOgorICAgICAgICAgICAgICAgIGFzc2VydCBub3QgcHkucGF0aC5sb2Nh
bCh4LnBhdGgpLnJlbHRvKGJhc2VkaXIpCisgICAgICAgIGFzc2VydCBuZXd0cmFjZWJhY2tbLTFd
LmZyYW1lLmNvZGUucGF0aCA9PSBwCisKKyAgICBkZWYgdGVzdF90cmFjZWJhY2tfZmlsdGVyKHNl
bGYpOgorICAgICAgICB0cmFjZWJhY2sgPSBzZWxmLmV4Y2luZm8udHJhY2ViYWNrCisgICAgICAg
IG50cmFjZWJhY2sgPSB0cmFjZWJhY2suZmlsdGVyKCkKKyAgICAgICAgYXNzZXJ0IGxlbihudHJh
Y2ViYWNrKSA9PSBsZW4odHJhY2ViYWNrKSAtIDEKKworICAgIGRlZiB0ZXN0X3RyYWNlYmFja19y
ZWN1cnNpb25faW5kZXgoc2VsZik6CisgICAgICAgIGRlZiBmKG4pOgorICAgICAgICAgICAgaWYg
biA8IDEwOgorICAgICAgICAgICAgICAgIG4gKz0gMQorICAgICAgICAgICAgZihuKQorICAgICAg
ICBleGNpbmZvID0gcHkudGVzdC5yYWlzZXMoUnVudGltZUVycm9yLCBmLCA4KQorICAgICAgICB0
cmFjZWJhY2sgPSBleGNpbmZvLnRyYWNlYmFjaworICAgICAgICByZWNpbmRleCA9IHRyYWNlYmFj
ay5yZWN1cnNpb25pbmRleCgpCisgICAgICAgIGFzc2VydCByZWNpbmRleCA9PSAzCisKKyAgICBk
ZWYgdGVzdF90cmFjZWJhY2tfb25seV9zcGVjaWZpY19yZWN1cnNpb25fZXJyb3JzKHNlbGYsIG1v
bmtleXBhdGNoKToKKyAgICAgICAgZGVmIGYobik6CisgICAgICAgICAgICBpZiBuID09IDA6Cisg
ICAgICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJoZWxsbyIpCisgICAgICAgICAgICBm
KG4tMSkKKworICAgICAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhSdW50aW1lRXJyb3IsIGYs
IDEwMCkKKyAgICAgICAgbW9ua2V5cGF0Y2guZGVsYXR0cihleGNpbmZvLnRyYWNlYmFjay5fX2Ns
YXNzX18sICJyZWN1cnNpb25pbmRleCIpCisgICAgICAgIHJlcHIgPSBleGNpbmZvLmdldHJlcHIo
KQorICAgICAgICBhc3NlcnQgIlJ1bnRpbWVFcnJvcjogaGVsbG8iIGluIHN0cihyZXByLnJlcHJj
cmFzaCkKKworICAgIGRlZiB0ZXN0X3RyYWNlYmFja19ub19yZWN1cnNpb25faW5kZXgoc2VsZik6
CisgICAgICAgIGRlZiBkb19zdHVmZigpOgorICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9y
CisKKyAgICAgICAgZGVmIHJlcmFpc2VfbWUoKToKKyAgICAgICAgICAgIGltcG9ydCBzeXMKKyAg
ICAgICAgICAgIGV4YywgdmFsLCB0YiA9IHN5cy5leGNfaW5mbygpCisgICAgICAgICAgICBweS5i
dWlsdGluLl9yZXJhaXNlKGV4YywgdmFsLCB0YikKKworICAgICAgICBkZWYgZihuKToKKyAgICAg
ICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBkb19zdHVmZigpCisgICAgICAgICAgICBleGNl
cHQ6CisgICAgICAgICAgICAgICAgcmVyYWlzZV9tZSgpCisgICAgICAgIGV4Y2luZm8gPSBweS50
ZXN0LnJhaXNlcyhSdW50aW1lRXJyb3IsIGYsIDgpCisgICAgICAgIHRyYWNlYmFjayA9IGV4Y2lu
Zm8udHJhY2ViYWNrCisgICAgICAgIHJlY2luZGV4ID0gdHJhY2ViYWNrLnJlY3Vyc2lvbmluZGV4
KCkKKyAgICAgICAgYXNzZXJ0IHJlY2luZGV4IGlzIE5vbmUKKworICAgIGRlZiB0ZXN0X3RyYWNl
YmFja19tZXNzeV9yZWN1cnNpb24oc2VsZik6CisgICAgICAgICMgWFhYOiBzaW1wbGlmaWVkIGxv
Y2FsbHkgdGVzdGFibGUgdmVyc2lvbgorICAgICAgICBkZWNvcmF0b3IgPSBweS50ZXN0LmltcG9y
dG9yc2tpcCgnZGVjb3JhdG9yJykuZGVjb3JhdG9yCisKKyAgICAgICAgZGVmIGxvZyhmLCAqaywg
Kiprdyk6CisgICAgICAgICAgICBwcmludCgnJXMgJXMnICUgKGssIGt3KSkKKyAgICAgICAgICAg
IGYoKmssICoqa3cpCisgICAgICAgIGxvZyA9IGRlY29yYXRvcihsb2cpCisKKyAgICAgICAgZGVm
IGZhaWwoKToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJycpCisKKyAgICAgICAgZmFp
bCA9IGxvZyhsb2coZmFpbCkpCisKKyAgICAgICAgZXhjaW5mbyA9IHB5LnRlc3QucmFpc2VzKFZh
bHVlRXJyb3IsIGZhaWwpCisgICAgICAgIGFzc2VydCBleGNpbmZvLnRyYWNlYmFjay5yZWN1cnNp
b25pbmRleCgpIGlzIE5vbmUKKworICAgIGRlZiB0ZXN0X3RyYWNlYmFja19nZXRjcmFzaGVudHJ5
KHNlbGYpOgorICAgICAgICBkZWYgaSgpOgorICAgICAgICAgICAgX190cmFjZWJhY2toaWRlX18g
PSBUcnVlCisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yCisKKyAgICAgICAgZGVmIGgoKToK
KyAgICAgICAgICAgIGkoKQorCisgICAgICAgIGRlZiBnKCk6CisgICAgICAgICAgICBfX3RyYWNl
YmFja2hpZGVfXyA9IFRydWUKKyAgICAgICAgICAgIGgoKQorCisgICAgICAgIGRlZiBmKCk6Cisg
ICAgICAgICAgICBnKCkKKworICAgICAgICBleGNpbmZvID0gcHkudGVzdC5yYWlzZXMoVmFsdWVF
cnJvciwgZikKKyAgICAgICAgdGIgPSBleGNpbmZvLnRyYWNlYmFjaworICAgICAgICBlbnRyeSA9
IHRiLmdldGNyYXNoZW50cnkoKQorICAgICAgICBjbyA9IHB5LmNvZGUuQ29kZShoKQorICAgICAg
ICBhc3NlcnQgZW50cnkuZnJhbWUuY29kZS5wYXRoID09IGNvLnBhdGgKKyAgICAgICAgYXNzZXJ0
IGVudHJ5LmxpbmVubyA9PSBjby5maXJzdGxpbmVubyArIDEKKyAgICAgICAgYXNzZXJ0IGVudHJ5
LmZyYW1lLmNvZGUubmFtZSA9PSAnaCcKKworICAgIGRlZiB0ZXN0X3RyYWNlYmFja19nZXRjcmFz
aGVudHJ5X2VtcHR5KHNlbGYpOgorICAgICAgICBkZWYgZygpOgorICAgICAgICAgICAgX190cmFj
ZWJhY2toaWRlX18gPSBUcnVlCisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yCisKKyAgICAg
ICAgZGVmIGYoKToKKyAgICAgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAgICAg
ICAgICAgZygpCisKKyAgICAgICAgZXhjaW5mbyA9IHB5LnRlc3QucmFpc2VzKFZhbHVlRXJyb3Is
IGYpCisgICAgICAgIHRiID0gZXhjaW5mby50cmFjZWJhY2sKKyAgICAgICAgZW50cnkgPSB0Yi5n
ZXRjcmFzaGVudHJ5KCkKKyAgICAgICAgY28gPSBweS5jb2RlLkNvZGUoZykKKyAgICAgICAgYXNz
ZXJ0IGVudHJ5LmZyYW1lLmNvZGUucGF0aCA9PSBjby5wYXRoCisgICAgICAgIGFzc2VydCBlbnRy
eS5saW5lbm8gPT0gY28uZmlyc3RsaW5lbm8gKyAyCisgICAgICAgIGFzc2VydCBlbnRyeS5mcmFt
ZS5jb2RlLm5hbWUgPT0gJ2cnCisKKworZGVmIGhlbGxvKHgpOgorICAgIHggKyA1CisKKworZGVm
IHRlc3RfdGJlbnRyeV9yZWludGVycHJldCgpOgorICAgIHRyeToKKyAgICAgICAgaGVsbG8oImhl
bGxvIikKKyAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICBleGNpbmZvID0gcHkuY29kZS5F
eGNlcHRpb25JbmZvKCkKKyAgICB0YmVudHJ5ID0gZXhjaW5mby50cmFjZWJhY2tbLTFdCisgICAg
bXNnID0gdGJlbnRyeS5yZWludGVycHJldCgpCisgICAgYXNzZXJ0IG1zZy5zdGFydHN3aXRoKCJU
eXBlRXJyb3I6ICgnaGVsbG8nICsgNSkiKQorCisKK2RlZiB0ZXN0X2V4Y2luZm9fZXhjb25seSgp
OgorICAgIGV4Y2luZm8gPSBweS50ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBoKQorICAgIGFzc2Vy
dCBleGNpbmZvLmV4Y29ubHkoKS5zdGFydHN3aXRoKCdWYWx1ZUVycm9yJykKKyAgICBleGNpbmZv
ID0gcHkudGVzdC5yYWlzZXMoVmFsdWVFcnJvciwKKyAgICAgICAgInJhaXNlIFZhbHVlRXJyb3Io
J2hlbGxvXFxud29ybGQnKSIpCisgICAgbXNnID0gZXhjaW5mby5leGNvbmx5KHRyeXNob3J0PVRy
dWUpCisgICAgYXNzZXJ0IG1zZy5zdGFydHN3aXRoKCdWYWx1ZUVycm9yJykKKyAgICBhc3NlcnQg
bXNnLmVuZHN3aXRoKCJ3b3JsZCIpCisKKworZGVmIHRlc3RfZXhjaW5mb19yZXByKCk6CisgICAg
ZXhjaW5mbyA9IHB5LnRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIGgpCisgICAgcyA9IHJlcHIoZXhj
aW5mbykKKyAgICBhc3NlcnQgcyA9PSAiPEV4Y2VwdGlvbkluZm8gVmFsdWVFcnJvciB0Ymxlbj00
PiIKKworCitkZWYgdGVzdF9leGNpbmZvX3N0cigpOgorICAgIGV4Y2luZm8gPSBweS50ZXN0LnJh
aXNlcyhWYWx1ZUVycm9yLCBoKQorICAgIHMgPSBzdHIoZXhjaW5mbykKKyAgICBhc3NlcnQgcy5z
dGFydHN3aXRoKF9fZmlsZV9fWzotOV0pICMgcHljIGZpbGUgYW5kICRweS5jbGFzcworICAgIGFz
c2VydCBzLmVuZHN3aXRoKCJWYWx1ZUVycm9yIikKKyAgICBhc3NlcnQgbGVuKHMuc3BsaXQoIjoi
KSkgPj0gMyAjIG9uIHdpbmRvd3MgaXQncyA0CisKKworZGVmIHRlc3RfZXhjaW5mb19lcnJpc2lu
c3RhbmNlKCk6CisgICAgZXhjaW5mbyA9IHB5LnRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIGgpCisg
ICAgYXNzZXJ0IGV4Y2luZm8uZXJyaXNpbnN0YW5jZShWYWx1ZUVycm9yKQorCisKK2RlZiB0ZXN0
X2V4Y2luZm9fbm9fc291cmNlY29kZSgpOgorICAgIHRyeToKKyAgICAgICAgZXhlYyAoInJhaXNl
IFZhbHVlRXJyb3IoKSIpCisgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgIGV4Y2luZm8g
PSBweS5jb2RlLkV4Y2VwdGlvbkluZm8oKQorICAgIHMgPSBzdHIoZXhjaW5mby50cmFjZWJhY2tb
LTFdKQorICAgIGFzc2VydCBzID09ICIgIEZpbGUgJzxzdHJpbmc+JzoxIGluIDxtb2R1bGU+XG4g
ID8/P1xuIgorCisKK2RlZiB0ZXN0X2V4Y2luZm9fbm9fcHl0aG9uX3NvdXJjZWNvZGUodG1wZGly
KToKKyAgICAjWFhYOiBzaW1wbGlmaWVkIGxvY2FsbHkgdGVzdGFibGUgdmVyc2lvbgorICAgIHRt
cGRpci5qb2luKCd0ZXN0LnR4dCcpLndyaXRlKCJ7eyBoKCl9fToiKQorCisgICAgamluamEyID0g
cHkudGVzdC5pbXBvcnRvcnNraXAoJ2ppbmphMicpCisgICAgbG9hZGVyID0gamluamEyLkZpbGVT
eXN0ZW1Mb2FkZXIoc3RyKHRtcGRpcikpCisgICAgZW52ID0gamluamEyLkVudmlyb25tZW50KGxv
YWRlcj1sb2FkZXIpCisgICAgdGVtcGxhdGUgPSBlbnYuZ2V0X3RlbXBsYXRlKCd0ZXN0LnR4dCcp
CisgICAgZXhjaW5mbyA9IHB5LnRlc3QucmFpc2VzKFZhbHVlRXJyb3IsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRlbXBsYXRlLnJlbmRlciwgaD1oKQorICAgIGZvciBpdGVtIGluIGV4
Y2luZm8udHJhY2ViYWNrOgorICAgICAgICBwcmludChpdGVtKSAjIFhYWDogZm9yIHNvbWUgcmVh
c29uIGppbmphLlRlbXBsYXRlLnJlbmRlciBpcyBwcmludGVkIGluIGZ1bGwKKyAgICAgICAgaXRl
bS5zb3VyY2UgIyBzaG91bGRudCBmYWlsCisgICAgICAgIGlmIGl0ZW0ucGF0aC5iYXNlbmFtZSA9
PSAndGVzdC50eHQnOgorICAgICAgICAgICAgYXNzZXJ0IHN0cihpdGVtLnNvdXJjZSkgPT0gJ3t7
IGgoKX19OicKKworCitkZWYgdGVzdF9lbnRyeXNvdXJjZV9RdWV1ZV9leGFtcGxlKCk6CisgICAg
dHJ5OgorICAgICAgICBxdWV1ZS5RdWV1ZSgpLmdldCh0aW1lb3V0PTAuMDAxKQorICAgIGV4Y2Vw
dCBxdWV1ZS5FbXB0eToKKyAgICAgICAgZXhjaW5mbyA9IHB5LmNvZGUuRXhjZXB0aW9uSW5mbygp
CisgICAgZW50cnkgPSBleGNpbmZvLnRyYWNlYmFja1stMV0KKyAgICBzb3VyY2UgPSBlbnRyeS5n
ZXRzb3VyY2UoKQorICAgIGFzc2VydCBzb3VyY2UgaXMgbm90IE5vbmUKKyAgICBzID0gc3RyKHNv
dXJjZSkuc3RyaXAoKQorICAgIGFzc2VydCBzLnN0YXJ0c3dpdGgoImRlZiBnZXQiKQorCisKK2Rl
ZiB0ZXN0X2NvZGVwYXRoX1F1ZXVlX2V4YW1wbGUoKToKKyAgICB0cnk6CisgICAgICAgIHF1ZXVl
LlF1ZXVlKCkuZ2V0KHRpbWVvdXQ9MC4wMDEpCisgICAgZXhjZXB0IHF1ZXVlLkVtcHR5OgorICAg
ICAgICBleGNpbmZvID0gcHkuY29kZS5FeGNlcHRpb25JbmZvKCkKKyAgICBlbnRyeSA9IGV4Y2lu
Zm8udHJhY2ViYWNrWy0xXQorICAgIHBhdGggPSBlbnRyeS5wYXRoCisgICAgYXNzZXJ0IGlzaW5z
dGFuY2UocGF0aCwgcHkucGF0aC5sb2NhbCkKKyAgICBhc3NlcnQgcGF0aC5iYXNlbmFtZS5sb3dl
cigpID09ICJxdWV1ZS5weSIKKyAgICBhc3NlcnQgcGF0aC5jaGVjaygpCisKKworY2xhc3MgVGVz
dEZvcm1hdHRlZEV4Y2luZm86CisgICAgZGVmIHB5dGVzdF9mdW5jYXJnX19pbXBvcnRhc21vZChz
ZWxmLCByZXF1ZXN0KToKKyAgICAgICAgZGVmIGltcG9ydGFzbW9kKHNvdXJjZSk6CisgICAgICAg
ICAgICBzb3VyY2UgPSBweS5jb2RlLlNvdXJjZShzb3VyY2UpCisgICAgICAgICAgICB0bXBkaXIg
PSByZXF1ZXN0LmdldGZ1bmNhcmd2YWx1ZSgidG1wZGlyIikKKyAgICAgICAgICAgIG1vZHBhdGgg
PSB0bXBkaXIuam9pbigibW9kLnB5IikKKyAgICAgICAgICAgIHRtcGRpci5lbnN1cmUoIl9faW5p
dF9fLnB5IikKKyAgICAgICAgICAgIG1vZHBhdGgud3JpdGUoc291cmNlKQorICAgICAgICAgICAg
aWYgaW52YWxpZGF0ZV9pbXBvcnRfY2FjaGVzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAg
IGludmFsaWRhdGVfaW1wb3J0X2NhY2hlcygpCisgICAgICAgICAgICByZXR1cm4gbW9kcGF0aC5w
eWltcG9ydCgpCisgICAgICAgIHJldHVybiBpbXBvcnRhc21vZAorCisgICAgZGVmIGV4Y2luZm9f
ZnJvbV9leGVjKHNlbGYsIHNvdXJjZSk6CisgICAgICAgIHNvdXJjZSA9IHB5LmNvZGUuU291cmNl
KHNvdXJjZSkuc3RyaXAoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBleGVjIChzb3VyY2Uu
Y29tcGlsZSgpKQorICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CisgICAgICAgICAg
ICByYWlzZQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICByZXR1cm4gcHkuY29kZS5FeGNl
cHRpb25JbmZvKCkKKyAgICAgICAgYXNzZXJ0IDAsICJkaWQgbm90IHJhaXNlIgorCisgICAgZGVm
IHRlc3RfcmVwcl9zb3VyY2Uoc2VsZik6CisgICAgICAgIHByID0gRm9ybWF0dGVkRXhjaW5mbygp
CisgICAgICAgIHNvdXJjZSA9IHB5LmNvZGUuU291cmNlKCIiIgorICAgICAgICAgICAgZGVmIGYo
eCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpLnN0cmlwKCkKKyAgICAgICAg
cHIuZmxvd19tYXJrZXIgPSAifCIKKyAgICAgICAgbGluZXMgPSBwci5nZXRfc291cmNlKHNvdXJj
ZSwgMCkKKyAgICAgICAgYXNzZXJ0IGxlbihsaW5lcykgPT0gMgorICAgICAgICBhc3NlcnQgbGlu
ZXNbMF0gPT0gInwgICBkZWYgZih4KToiCisgICAgICAgIGFzc2VydCBsaW5lc1sxXSA9PSAiICAg
ICAgICBwYXNzIgorCisgICAgQGJyb2tlbl9vbl9tb2Rlcm5fcHl0ZXN0CisgICAgZGVmIHRlc3Rf
cmVwcl9zb3VyY2VfZXhjaW5mbyhzZWxmKToKKyAgICAgICAgIiIiIGNoZWNrIGlmIGluZGVudGF0
aW9uIGlzIHJpZ2h0ICIiIgorICAgICAgICBwciA9IEZvcm1hdHRlZEV4Y2luZm8oKQorICAgICAg
ICBleGNpbmZvID0gc2VsZi5leGNpbmZvX2Zyb21fZXhlYygiIiIKKyAgICAgICAgICAgICAgICBk
ZWYgZigpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAgICAgICAgIGYo
KQorICAgICAgICAiIiIpCisgICAgICAgIHByID0gRm9ybWF0dGVkRXhjaW5mbygpCisgICAgICAg
IHNvdXJjZSA9IHByLl9nZXRlbnRyeXNvdXJjZShleGNpbmZvLnRyYWNlYmFja1stMV0pCisgICAg
ICAgIGxpbmVzID0gcHIuZ2V0X3NvdXJjZShzb3VyY2UsIDEsIGV4Y2luZm8pCisgICAgICAgIGFz
c2VydCBsaW5lcyA9PSBbCisgICAgICAgICAgICAnICAgIGRlZiBmKCk6JywKKyAgICAgICAgICAg
ICc+ICAgICAgIGFzc2VydCAwJywKKyAgICAgICAgICAgICdFICAgICAgIGFzc2VydCAwJworICAg
ICAgICBdCisKKyAgICBkZWYgdGVzdF9yZXByX3NvdXJjZV9ub3RfZXhpc3Rpbmcoc2VsZik6Cisg
ICAgICAgIHByID0gRm9ybWF0dGVkRXhjaW5mbygpCisgICAgICAgIGNvID0gY29tcGlsZSgicmFp
c2UgVmFsdWVFcnJvcigpIiwgIiIsICJleGVjIikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
ZXhlYyAoY28pCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgZXhjaW5m
byA9IHB5LmNvZGUuRXhjZXB0aW9uSW5mbygpCisgICAgICAgIHJlcHIgPSBwci5yZXByX2V4Y2lu
Zm8oZXhjaW5mbykKKyAgICAgICAgYXNzZXJ0IHJlcHIucmVwcnRyYWNlYmFjay5yZXByZW50cmll
c1sxXS5saW5lc1swXSA9PSAiPiAgID8/PyIKKworICAgIGRlZiB0ZXN0X3JlcHJfbWFueV9saW5l
X3NvdXJjZV9ub3RfZXhpc3Rpbmcoc2VsZik6CisgICAgICAgIHByID0gRm9ybWF0dGVkRXhjaW5m
bygpCisgICAgICAgIGNvID0gY29tcGlsZSgiIiIKK2EgPSAxCityYWlzZSBWYWx1ZUVycm9yKCkK
KyIiIiwgIiIsICJleGVjIikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZXhlYyAoY28pCisg
ICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgZXhjaW5mbyA9IHB5LmNvZGUu
RXhjZXB0aW9uSW5mbygpCisgICAgICAgIHJlcHIgPSBwci5yZXByX2V4Y2luZm8oZXhjaW5mbykK
KyAgICAgICAgYXNzZXJ0IHJlcHIucmVwcnRyYWNlYmFjay5yZXByZW50cmllc1sxXS5saW5lc1sw
XSA9PSAiPiAgID8/PyIKKworICAgIGRlZiB0ZXN0X3JlcHJfc291cmNlX2ZhaWxpbmdfZnVsbHNv
dXJjZShzZWxmKToKKyAgICAgICAgcHIgPSBGb3JtYXR0ZWRFeGNpbmZvKCkKKworICAgICAgICBj
bGFzcyBGYWtlQ29kZShvYmplY3QpOgorICAgICAgICAgICAgY2xhc3MgcmF3OgorICAgICAgICAg
ICAgICAgIGNvX2ZpbGVuYW1lID0gJz8nCisgICAgICAgICAgICBwYXRoID0gJz8nCisgICAgICAg
ICAgICBmaXJzdGxpbmVubyA9IDUKKworICAgICAgICAgICAgZGVmIGZ1bGxzb3VyY2Uoc2VsZik6
CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgICAgIGZ1bGxzb3VyY2UgPSBw
cm9wZXJ0eShmdWxsc291cmNlKQorCisgICAgICAgIGNsYXNzIEZha2VGcmFtZShvYmplY3QpOgor
ICAgICAgICAgICAgY29kZSA9IEZha2VDb2RlKCkKKyAgICAgICAgICAgIGZfbG9jYWxzID0ge30K
KyAgICAgICAgICAgIGZfZ2xvYmFscyA9IHt9CisKKyAgICAgICAgY2xhc3MgRmFrZVRyYWNlYmFj
a0VudHJ5KHB5LmNvZGUuVHJhY2ViYWNrLkVudHJ5KToKKyAgICAgICAgICAgIGRlZiBfX2luaXRf
XyhzZWxmLCB0Yik6CisgICAgICAgICAgICAgICAgc2VsZi5saW5lbm8gPSA1KzMKKworICAgICAg
ICAgICAgQHByb3BlcnR5CisgICAgICAgICAgICBkZWYgZnJhbWUoc2VsZik6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIEZha2VGcmFtZSgpCisKKyAgICAgICAgY2xhc3MgVHJhY2ViYWNrKHB5LmNv
ZGUuVHJhY2ViYWNrKToKKyAgICAgICAgICAgIEVudHJ5ID0gRmFrZVRyYWNlYmFja0VudHJ5CisK
KyAgICAgICAgY2xhc3MgRmFrZUV4Y2luZm8ocHkuY29kZS5FeGNlcHRpb25JbmZvKToKKyAgICAg
ICAgICAgIHR5cGVuYW1lID0gIkZvbyIKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToK
KyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgIGRlZiBleGNvbmx5KHNlbGYsIHRy
eXNob3J0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gIkVYQyIKKyAgICAgICAgICAgIGRlZiBl
cnJpc2luc3RhbmNlKHNlbGYsIGNscyk6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisK
KyAgICAgICAgZXhjaW5mbyA9IEZha2VFeGNpbmZvKCkKKyAgICAgICAgY2xhc3MgRmFrZVJhd1RC
KG9iamVjdCk6CisgICAgICAgICAgICB0Yl9uZXh0ID0gTm9uZQorICAgICAgICB0YiA9IEZha2VS
YXdUQigpCisgICAgICAgIGV4Y2luZm8udHJhY2ViYWNrID0gVHJhY2ViYWNrKHRiKQorCisgICAg
ICAgIGZhaWwgPSBJT0Vycm9yKCkKKyAgICAgICAgcmVwciA9IHByLnJlcHJfZXhjaW5mbyhleGNp
bmZvKQorICAgICAgICBhc3NlcnQgcmVwci5yZXBydHJhY2ViYWNrLnJlcHJlbnRyaWVzWzBdLmxp
bmVzWzBdID09ICI+ICAgPz8/IgorCisgICAgICAgIGZhaWwgPSBweS5lcnJvci5FTk9FTlQKKyAg
ICAgICAgcmVwciA9IHByLnJlcHJfZXhjaW5mbyhleGNpbmZvKQorICAgICAgICBhc3NlcnQgcmVw
ci5yZXBydHJhY2ViYWNrLnJlcHJlbnRyaWVzWzBdLmxpbmVzWzBdID09ICI+ICAgPz8/IgorCisK
KyAgICBkZWYgdGVzdF9yZXByX2xvY2FsKHNlbGYpOgorICAgICAgICBwID0gRm9ybWF0dGVkRXhj
aW5mbyhzaG93bG9jYWxzPVRydWUpCisgICAgICAgIGxvYyA9IHsneSc6IDUsICd6JzogNywgJ3gn
OiAzLCAnQHgnOiAyLCAnX19idWlsdGluc19fJzoge319CisgICAgICAgIHJlcHJsb2NhbHMgPSBw
LnJlcHJfbG9jYWxzKGxvYykKKyAgICAgICAgYXNzZXJ0IHJlcHJsb2NhbHMubGluZXMKKyAgICAg
ICAgYXNzZXJ0IHJlcHJsb2NhbHMubGluZXNbMF0gPT0gJ19fYnVpbHRpbnNfXyA9IDxidWlsdGlu
cz4nCisgICAgICAgIGFzc2VydCByZXBybG9jYWxzLmxpbmVzWzFdID09ICd4ICAgICAgICAgID0g
MycKKyAgICAgICAgYXNzZXJ0IHJlcHJsb2NhbHMubGluZXNbMl0gPT0gJ3kgICAgICAgICAgPSA1
JworICAgICAgICBhc3NlcnQgcmVwcmxvY2Fscy5saW5lc1szXSA9PSAneiAgICAgICAgICA9IDcn
CisKKyAgICBkZWYgdGVzdF9yZXByX3RyYWNlYmFja2VudHJ5X2xpbmVzKHNlbGYsIGltcG9ydGFz
bW9kKToKKyAgICAgICAgbW9kID0gaW1wb3J0YXNtb2QoIiIiCisgICAgICAgICAgICBkZWYgZnVu
YzEoKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJoZWxsb1xcbndvcmxkIikK
KyAgICAgICAgIiIiKQorICAgICAgICBleGNpbmZvID0gcHkudGVzdC5yYWlzZXMoVmFsdWVFcnJv
ciwgbW9kLmZ1bmMxKQorICAgICAgICBleGNpbmZvLnRyYWNlYmFjayA9IGV4Y2luZm8udHJhY2Vi
YWNrLmZpbHRlcigpCisgICAgICAgIHAgPSBGb3JtYXR0ZWRFeGNpbmZvKCkKKyAgICAgICAgcmVw
cnRiID0gcC5yZXByX3RyYWNlYmFja19lbnRyeShleGNpbmZvLnRyYWNlYmFja1stMV0pCisKKyAg
ICAgICAgIyB0ZXN0IGFzIGludGVybWl0dGVudCBlbnRyeQorICAgICAgICBsaW5lcyA9IHJlcHJ0
Yi5saW5lcworICAgICAgICBhc3NlcnQgbGluZXNbMF0gPT0gJyAgICBkZWYgZnVuYzEoKTonCisg
ICAgICAgIGFzc2VydCBsaW5lc1sxXSA9PSAnPiAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJoZWxs
b1xcbndvcmxkIiknCisKKyAgICAgICAgIyB0ZXN0IGFzIGxhc3QgZW50cnkKKyAgICAgICAgcCA9
IEZvcm1hdHRlZEV4Y2luZm8oc2hvd2xvY2Fscz1UcnVlKQorICAgICAgICByZXByX2VudHJ5ID0g
cC5yZXByX3RyYWNlYmFja19lbnRyeShleGNpbmZvLnRyYWNlYmFja1stMV0sIGV4Y2luZm8pCisg
ICAgICAgIGxpbmVzID0gcmVwcl9lbnRyeS5saW5lcworICAgICAgICBhc3NlcnQgbGluZXNbMF0g
PT0gJyAgICBkZWYgZnVuYzEoKTonCisgICAgICAgIGFzc2VydCBsaW5lc1sxXSA9PSAnPiAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCJoZWxsb1xcbndvcmxkIiknCisgICAgICAgIGFzc2VydCBsaW5l
c1syXSA9PSAnRSAgICAgICBWYWx1ZUVycm9yOiBoZWxsbycKKyAgICAgICAgYXNzZXJ0IGxpbmVz
WzNdID09ICdFICAgICAgIHdvcmxkJworICAgICAgICBhc3NlcnQgbm90IGxpbmVzWzQ6XQorCisg
ICAgICAgIGxvYyA9IHJlcHJfZW50cnkucmVwcmxvY2FscyBpcyBub3QgTm9uZQorICAgICAgICBs
b2MgPSByZXByX2VudHJ5LnJlcHJmaWxlbG9jCisgICAgICAgIGFzc2VydCBsb2MucGF0aCA9PSBt
b2QuX19maWxlX18KKyAgICAgICAgYXNzZXJ0IGxvYy5saW5lbm8gPT0gMworICAgICAgICAjYXNz
ZXJ0IGxvYy5tZXNzYWdlID09ICJWYWx1ZUVycm9yOiBoZWxsbyIKKworICAgIGRlZiB0ZXN0X3Jl
cHJfdHJhY2ViYWNrZW50cnlfbGluZXMoc2VsZiwgaW1wb3J0YXNtb2QpOgorICAgICAgICBtb2Qg
PSBpbXBvcnRhc21vZCgiIiIKKyAgICAgICAgICAgIGRlZiBmdW5jMShtLCB4LCB5LCB6KToKKyAg
ICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJoZWxsb1xcbndvcmxkIikKKyAgICAgICAg
IiIiKQorICAgICAgICBleGNpbmZvID0gcHkudGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgbW9kLmZ1
bmMxLCAibSIqOTAsIDUsIDEzLCAieiIqMTIwKQorICAgICAgICBleGNpbmZvLnRyYWNlYmFjayA9
IGV4Y2luZm8udHJhY2ViYWNrLmZpbHRlcigpCisgICAgICAgIGVudHJ5ID0gZXhjaW5mby50cmFj
ZWJhY2tbLTFdCisgICAgICAgIHAgPSBGb3JtYXR0ZWRFeGNpbmZvKGZ1bmNhcmdzPVRydWUpCisg
ICAgICAgIHJlcHJmdW5jYXJncyA9IHAucmVwcl9hcmdzKGVudHJ5KQorICAgICAgICBhc3NlcnQg
cmVwcmZ1bmNhcmdzLmFyZ3NbMF0gPT0gKCdtJywgcmVwcigibSIqOTApKQorICAgICAgICBhc3Nl
cnQgcmVwcmZ1bmNhcmdzLmFyZ3NbMV0gPT0gKCd4JywgJzUnKQorICAgICAgICBhc3NlcnQgcmVw
cmZ1bmNhcmdzLmFyZ3NbMl0gPT0gKCd5JywgJzEzJykKKyAgICAgICAgYXNzZXJ0IHJlcHJmdW5j
YXJncy5hcmdzWzNdID09ICgneicsIHJlcHIoInoiICogMTIwKSkKKworICAgICAgICBwID0gRm9y
bWF0dGVkRXhjaW5mbyhmdW5jYXJncz1UcnVlKQorICAgICAgICByZXByX2VudHJ5ID0gcC5yZXBy
X3RyYWNlYmFja19lbnRyeShlbnRyeSkKKyAgICAgICAgYXNzZXJ0IHJlcHJfZW50cnkucmVwcmZ1
bmNhcmdzLmFyZ3MgPT0gcmVwcmZ1bmNhcmdzLmFyZ3MKKyAgICAgICAgdHcgPSBUV01vY2soKQor
ICAgICAgICByZXByX2VudHJ5LnRvdGVybWluYWwodHcpCisgICAgICAgIGFzc2VydCB0dy5saW5l
c1swXSA9PSAibSA9ICIgKyByZXByKCdtJyAqIDkwKQorICAgICAgICBhc3NlcnQgdHcubGluZXNb
MV0gPT0gInggPSA1LCB5ID0gMTMiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1syXSA9PSAieiA9
ICIgKyByZXByKCd6JyAqIDEyMCkKKworICAgIGRlZiB0ZXN0X3JlcHJfdHJhY2ViYWNrZW50cnlf
bGluZXNfdmFyX2t3X2FyZ3Moc2VsZiwgaW1wb3J0YXNtb2QpOgorICAgICAgICBtb2QgPSBpbXBv
cnRhc21vZCgiIiIKKyAgICAgICAgICAgIGRlZiBmdW5jMSh4LCAqeSwgKip6KToKKyAgICAgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJoZWxsb1xcbndvcmxkIikKKyAgICAgICAgIiIiKQor
ICAgICAgICBleGNpbmZvID0gcHkudGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgbW9kLmZ1bmMxLCAn
YScsICdiJywgYz0nZCcpCisgICAgICAgIGV4Y2luZm8udHJhY2ViYWNrID0gZXhjaW5mby50cmFj
ZWJhY2suZmlsdGVyKCkKKyAgICAgICAgZW50cnkgPSBleGNpbmZvLnRyYWNlYmFja1stMV0KKyAg
ICAgICAgcCA9IEZvcm1hdHRlZEV4Y2luZm8oZnVuY2FyZ3M9VHJ1ZSkKKyAgICAgICAgcmVwcmZ1
bmNhcmdzID0gcC5yZXByX2FyZ3MoZW50cnkpCisgICAgICAgIGFzc2VydCByZXByZnVuY2FyZ3Mu
YXJnc1swXSA9PSAoJ3gnLCByZXByKCdhJykpCisgICAgICAgIGFzc2VydCByZXByZnVuY2FyZ3Mu
YXJnc1sxXSA9PSAoJ3knLCByZXByKCgnYicsKSkpCisgICAgICAgIGFzc2VydCByZXByZnVuY2Fy
Z3MuYXJnc1syXSA9PSAoJ3onLCByZXByKHsnYyc6ICdkJ30pKQorCisgICAgICAgIHAgPSBGb3Jt
YXR0ZWRFeGNpbmZvKGZ1bmNhcmdzPVRydWUpCisgICAgICAgIHJlcHJfZW50cnkgPSBwLnJlcHJf
dHJhY2ViYWNrX2VudHJ5KGVudHJ5KQorICAgICAgICBhc3NlcnQgcmVwcl9lbnRyeS5yZXByZnVu
Y2FyZ3MuYXJncyA9PSByZXByZnVuY2FyZ3MuYXJncworICAgICAgICB0dyA9IFRXTW9jaygpCisg
ICAgICAgIHJlcHJfZW50cnkudG90ZXJtaW5hbCh0dykKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVz
WzBdID09ICJ4ID0gJ2EnLCB5ID0gKCdiJywpLCB6ID0geydjJzogJ2QnfSIKKworICAgIGRlZiB0
ZXN0X3JlcHJfdHJhY2ViYWNrZW50cnlfc2hvcnQoc2VsZiwgaW1wb3J0YXNtb2QpOgorICAgICAg
ICBtb2QgPSBpbXBvcnRhc21vZCgiIiIKKyAgICAgICAgICAgIGRlZiBmdW5jMSgpOgorICAgICAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImhlbGxvIikKKyAgICAgICAgICAgIGRlZiBlbnRy
eSgpOgorICAgICAgICAgICAgICAgIGZ1bmMxKCkKKyAgICAgICAgIiIiKQorICAgICAgICBleGNp
bmZvID0gcHkudGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgbW9kLmVudHJ5KQorICAgICAgICBwID0g
Rm9ybWF0dGVkRXhjaW5mbyhzdHlsZT0ic2hvcnQiKQorICAgICAgICByZXBydGIgPSBwLnJlcHJf
dHJhY2ViYWNrX2VudHJ5KGV4Y2luZm8udHJhY2ViYWNrWy0yXSkKKyAgICAgICAgbGluZXMgPSBy
ZXBydGIubGluZXMKKyAgICAgICAgYmFzZW5hbWUgPSBweS5wYXRoLmxvY2FsKG1vZC5fX2ZpbGVf
XykuYmFzZW5hbWUKKyAgICAgICAgYXNzZXJ0IGxpbmVzWzBdID09ICcgICAgZnVuYzEoKScKKyAg
ICAgICAgYXNzZXJ0IGJhc2VuYW1lIGluIHN0cihyZXBydGIucmVwcmZpbGVsb2MucGF0aCkKKyAg
ICAgICAgYXNzZXJ0IHJlcHJ0Yi5yZXByZmlsZWxvYy5saW5lbm8gPT0gNQorCisgICAgICAgICMg
dGVzdCBsYXN0IGVudHJ5CisgICAgICAgIHAgPSBGb3JtYXR0ZWRFeGNpbmZvKHN0eWxlPSJzaG9y
dCIpCisgICAgICAgIHJlcHJ0YiA9IHAucmVwcl90cmFjZWJhY2tfZW50cnkoZXhjaW5mby50cmFj
ZWJhY2tbLTFdLCBleGNpbmZvKQorICAgICAgICBsaW5lcyA9IHJlcHJ0Yi5saW5lcworICAgICAg
ICBhc3NlcnQgbGluZXNbMF0gPT0gJyAgICByYWlzZSBWYWx1ZUVycm9yKCJoZWxsbyIpJworICAg
ICAgICBhc3NlcnQgbGluZXNbMV0gPT0gJ0UgICBWYWx1ZUVycm9yOiBoZWxsbycKKyAgICAgICAg
YXNzZXJ0IGJhc2VuYW1lIGluIHN0cihyZXBydGIucmVwcmZpbGVsb2MucGF0aCkKKyAgICAgICAg
YXNzZXJ0IHJlcHJ0Yi5yZXByZmlsZWxvYy5saW5lbm8gPT0gMworCisgICAgZGVmIHRlc3RfcmVw
cl90cmFjZWJhY2tlbnRyeV9ubyhzZWxmLCBpbXBvcnRhc21vZCk6CisgICAgICAgIG1vZCA9IGlt
cG9ydGFzbW9kKCIiIgorICAgICAgICAgICAgZGVmIGZ1bmMxKCk6CisgICAgICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigiaGVsbG8iKQorICAgICAgICAgICAgZGVmIGVudHJ5KCk6CisgICAg
ICAgICAgICAgICAgZnVuYzEoKQorICAgICAgICAiIiIpCisgICAgICAgIGV4Y2luZm8gPSBweS50
ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtb2QuZW50cnkpCisgICAgICAgIHAgPSBGb3JtYXR0ZWRF
eGNpbmZvKHN0eWxlPSJubyIpCisgICAgICAgIHAucmVwcl90cmFjZWJhY2tfZW50cnkoZXhjaW5m
by50cmFjZWJhY2tbLTJdKQorCisgICAgICAgIHAgPSBGb3JtYXR0ZWRFeGNpbmZvKHN0eWxlPSJu
byIpCisgICAgICAgIHJlcHJlbnRyeSA9IHAucmVwcl90cmFjZWJhY2tfZW50cnkoZXhjaW5mby50
cmFjZWJhY2tbLTFdLCBleGNpbmZvKQorICAgICAgICBsaW5lcyA9IHJlcHJlbnRyeS5saW5lcwor
ICAgICAgICBhc3NlcnQgbGluZXNbMF0gPT0gJ0UgICBWYWx1ZUVycm9yOiBoZWxsbycKKyAgICAg
ICAgYXNzZXJ0IG5vdCBsaW5lc1sxOl0KKworICAgIGRlZiB0ZXN0X3JlcHJfdHJhY2ViYWNrX3Ri
ZmlsdGVyKHNlbGYsIGltcG9ydGFzbW9kKToKKyAgICAgICAgbW9kID0gaW1wb3J0YXNtb2QoIiIi
CisgICAgICAgICAgICBkZWYgZih4KToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KHgpCisgICAgICAgICAgICBkZWYgZW50cnkoKToKKyAgICAgICAgICAgICAgICBmKDApCisgICAg
ICAgICIiIikKKyAgICAgICAgZXhjaW5mbyA9IHB5LnRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIG1v
ZC5lbnRyeSkKKyAgICAgICAgcCA9IEZvcm1hdHRlZEV4Y2luZm8odGJmaWx0ZXI9VHJ1ZSkKKyAg
ICAgICAgcmVwcnRiID0gcC5yZXByX3RyYWNlYmFjayhleGNpbmZvKQorICAgICAgICBhc3NlcnQg
bGVuKHJlcHJ0Yi5yZXByZW50cmllcykgPT0gMgorICAgICAgICBwID0gRm9ybWF0dGVkRXhjaW5m
byh0YmZpbHRlcj1GYWxzZSkKKyAgICAgICAgcmVwcnRiID0gcC5yZXByX3RyYWNlYmFjayhleGNp
bmZvKQorICAgICAgICBhc3NlcnQgbGVuKHJlcHJ0Yi5yZXByZW50cmllcykgPT0gMworCisgICAg
ZGVmIHRlc3RfdHJhY2ViYWNrX3Nob3J0X25vX3NvdXJjZShzZWxmLCBpbXBvcnRhc21vZCwgbW9u
a2V5cGF0Y2gpOgorICAgICAgICBtb2QgPSBpbXBvcnRhc21vZCgiIiIKKyAgICAgICAgICAgIGRl
ZiBmdW5jMSgpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImhlbGxvIikKKyAg
ICAgICAgICAgIGRlZiBlbnRyeSgpOgorICAgICAgICAgICAgICAgIGZ1bmMxKCkKKyAgICAgICAg
IiIiKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBtb2QuZW50cnkoKQorICAgICAgICBleGNl
cHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgIGV4Y2luZm8gPSBweS5jb2RlLkV4Y2VwdGlvbklu
Zm8oKQorICAgICAgICBmcm9tIHB5Ll9jb2RlLmNvZGUgaW1wb3J0IENvZGUKKyAgICAgICAgbW9u
a2V5cGF0Y2guc2V0YXR0cihDb2RlLCAncGF0aCcsICdib2d1cycpCisgICAgICAgIGV4Y2luZm8u
dHJhY2ViYWNrWzBdLmZyYW1lLmNvZGUucGF0aCA9ICJib2d1cyIKKyAgICAgICAgcCA9IEZvcm1h
dHRlZEV4Y2luZm8oc3R5bGU9InNob3J0IikKKyAgICAgICAgcmVwcnRiID0gcC5yZXByX3RyYWNl
YmFja19lbnRyeShleGNpbmZvLnRyYWNlYmFja1stMl0pCisgICAgICAgIGxpbmVzID0gcmVwcnRi
LmxpbmVzCisgICAgICAgIGxhc3RfcCA9IEZvcm1hdHRlZEV4Y2luZm8oc3R5bGU9InNob3J0IikK
KyAgICAgICAgbGFzdF9yZXBydGIgPSBsYXN0X3AucmVwcl90cmFjZWJhY2tfZW50cnkoZXhjaW5m
by50cmFjZWJhY2tbLTFdLCBleGNpbmZvKQorICAgICAgICBsYXN0X2xpbmVzID0gbGFzdF9yZXBy
dGIubGluZXMKKyAgICAgICAgbW9ua2V5cGF0Y2gudW5kbygpCisgICAgICAgIGJhc2VuYW1lID0g
cHkucGF0aC5sb2NhbChtb2QuX19maWxlX18pLmJhc2VuYW1lCisgICAgICAgIGFzc2VydCBsaW5l
c1swXSA9PSAnICAgIGZ1bmMxKCknCisKKyAgICAgICAgYXNzZXJ0IGxhc3RfbGluZXNbMF0gPT0g
JyAgICByYWlzZSBWYWx1ZUVycm9yKCJoZWxsbyIpJworICAgICAgICBhc3NlcnQgbGFzdF9saW5l
c1sxXSA9PSAnRSAgIFZhbHVlRXJyb3I6IGhlbGxvJworCisgICAgZGVmIHRlc3RfcmVwcl90cmFj
ZWJhY2tfYW5kX2V4Y2luZm8oc2VsZiwgaW1wb3J0YXNtb2QpOgorICAgICAgICBtb2QgPSBpbXBv
cnRhc21vZCgiIiIKKyAgICAgICAgICAgIGRlZiBmKHgpOgorICAgICAgICAgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoeCkKKyAgICAgICAgICAgIGRlZiBlbnRyeSgpOgorICAgICAgICAgICAgICAg
IGYoMCkKKyAgICAgICAgIiIiKQorICAgICAgICBleGNpbmZvID0gcHkudGVzdC5yYWlzZXMoVmFs
dWVFcnJvciwgbW9kLmVudHJ5KQorCisgICAgICAgIGZvciBzdHlsZSBpbiAoImxvbmciLCAic2hv
cnQiKToKKyAgICAgICAgICAgIHAgPSBGb3JtYXR0ZWRFeGNpbmZvKHN0eWxlPXN0eWxlKQorICAg
ICAgICAgICAgcmVwcnRiID0gcC5yZXByX3RyYWNlYmFjayhleGNpbmZvKQorICAgICAgICAgICAg
YXNzZXJ0IGxlbihyZXBydGIucmVwcmVudHJpZXMpID09IDIKKyAgICAgICAgICAgIGFzc2VydCBy
ZXBydGIuc3R5bGUgPT0gc3R5bGUKKyAgICAgICAgICAgIGFzc2VydCBub3QgcmVwcnRiLmV4dHJh
bGluZQorICAgICAgICAgICAgcmVwciA9IHAucmVwcl9leGNpbmZvKGV4Y2luZm8pCisgICAgICAg
ICAgICBhc3NlcnQgcmVwci5yZXBydHJhY2ViYWNrCisgICAgICAgICAgICBhc3NlcnQgbGVuKHJl
cHIucmVwcnRyYWNlYmFjay5yZXByZW50cmllcykgPT0gbGVuKHJlcHJ0Yi5yZXByZW50cmllcykK
KyAgICAgICAgICAgIGFzc2VydCByZXByLnJlcHJjcmFzaC5wYXRoLmVuZHN3aXRoKCJtb2QucHki
KQorICAgICAgICAgICAgYXNzZXJ0IHJlcHIucmVwcmNyYXNoLm1lc3NhZ2UgPT0gIlZhbHVlRXJy
b3I6IDAiCisKKyAgICBkZWYgdGVzdF9yZXByX3RyYWNlYmFja193aXRoX2ludmFsaWRfY3dkKHNl
bGYsIGltcG9ydGFzbW9kLCBtb25rZXlwYXRjaCk6CisgICAgICAgIG1vZCA9IGltcG9ydGFzbW9k
KCIiIgorICAgICAgICAgICAgZGVmIGYoeCk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcih4KQorICAgICAgICAgICAgZGVmIGVudHJ5KCk6CisgICAgICAgICAgICAgICAgZigwKQor
ICAgICAgICAiIiIpCisgICAgICAgIGV4Y2luZm8gPSBweS50ZXN0LnJhaXNlcyhWYWx1ZUVycm9y
LCBtb2QuZW50cnkpCisKKyAgICAgICAgcCA9IEZvcm1hdHRlZEV4Y2luZm8oKQorICAgICAgICBk
ZWYgcmFpc2VvcygpOgorICAgICAgICAgICAgcmFpc2UgT1NFcnJvcigyKQorICAgICAgICBtb25r
ZXlwYXRjaC5zZXRhdHRyKCdvcy5nZXRjd2QnLCByYWlzZW9zKQorICAgICAgICBhc3NlcnQgcC5f
bWFrZXBhdGgoX19maWxlX18pID09IF9fZmlsZV9fCisgICAgICAgIHJlcHJ0YiA9IHAucmVwcl90
cmFjZWJhY2soZXhjaW5mbykKKworICAgIEBicm9rZW5fb25fbW9kZXJuX3B5dGVzdAorICAgIGRl
ZiB0ZXN0X3JlcHJfZXhjaW5mb19hZGRvdXRlcnIoc2VsZiwgaW1wb3J0YXNtb2QpOgorICAgICAg
ICBtb2QgPSBpbXBvcnRhc21vZCgiIiIKKyAgICAgICAgICAgIGRlZiBlbnRyeSgpOgorICAgICAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoKQorICAgICAgICAiIiIpCisgICAgICAgIGV4Y2lu
Zm8gPSBweS50ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtb2QuZW50cnkpCisgICAgICAgIHJlcHIg
PSBleGNpbmZvLmdldHJlcHIoKQorICAgICAgICByZXByLmFkZHNlY3Rpb24oInRpdGxlIiwgImNv
bnRlbnQiKQorICAgICAgICB0d21vY2sgPSBUV01vY2soKQorICAgICAgICByZXByLnRvdGVybWlu
YWwodHdtb2NrKQorICAgICAgICBhc3NlcnQgdHdtb2NrLmxpbmVzWy0xXSA9PSAiY29udGVudCIK
KyAgICAgICAgYXNzZXJ0IHR3bW9jay5saW5lc1stMl0gPT0gKCItIiwgInRpdGxlIikKKworICAg
IGRlZiB0ZXN0X3JlcHJfZXhjaW5mb19yZXByY3Jhc2goc2VsZiwgaW1wb3J0YXNtb2QpOgorICAg
ICAgICBtb2QgPSBpbXBvcnRhc21vZCgiIiIKKyAgICAgICAgICAgIGRlZiBlbnRyeSgpOgorICAg
ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoKQorICAgICAgICAiIiIpCisgICAgICAgIGV4
Y2luZm8gPSBweS50ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtb2QuZW50cnkpCisgICAgICAgIHJl
cHIgPSBleGNpbmZvLmdldHJlcHIoKQorICAgICAgICBhc3NlcnQgcmVwci5yZXByY3Jhc2gucGF0
aC5lbmRzd2l0aCgibW9kLnB5IikKKyAgICAgICAgYXNzZXJ0IHJlcHIucmVwcmNyYXNoLmxpbmVu
byA9PSAzCisgICAgICAgIGFzc2VydCByZXByLnJlcHJjcmFzaC5tZXNzYWdlID09ICJWYWx1ZUVy
cm9yIgorICAgICAgICBhc3NlcnQgc3RyKHJlcHIucmVwcmNyYXNoKS5lbmRzd2l0aCgibW9kLnB5
OjM6IFZhbHVlRXJyb3IiKQorCisgICAgZGVmIHRlc3RfcmVwcl90cmFjZWJhY2tfcmVjdXJzaW9u
KHNlbGYsIGltcG9ydGFzbW9kKToKKyAgICAgICAgbW9kID0gaW1wb3J0YXNtb2QoIiIiCisgICAg
ICAgICAgICBkZWYgcmVjMih4KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVjMSh4KzEpCisg
ICAgICAgICAgICBkZWYgcmVjMSh4KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVjMih4LTEp
CisgICAgICAgICAgICBkZWYgZW50cnkoKToKKyAgICAgICAgICAgICAgICByZWMxKDQyKQorICAg
ICAgICAiIiIpCisgICAgICAgIGV4Y2luZm8gPSBweS50ZXN0LnJhaXNlcyhSdW50aW1lRXJyb3Is
IG1vZC5lbnRyeSkKKworICAgICAgICBmb3Igc3R5bGUgaW4gKCJzaG9ydCIsICJsb25nIiwgIm5v
Iik6CisgICAgICAgICAgICBwID0gRm9ybWF0dGVkRXhjaW5mbyhzdHlsZT0ic2hvcnQiKQorICAg
ICAgICAgICAgcmVwcnRiID0gcC5yZXByX3RyYWNlYmFjayhleGNpbmZvKQorICAgICAgICAgICAg
YXNzZXJ0IHJlcHJ0Yi5leHRyYWxpbmUgPT0gIiEhISBSZWN1cnNpb24gZGV0ZWN0ZWQgKHNhbWUg
bG9jYWxzICYgcG9zaXRpb24pIgorICAgICAgICAgICAgYXNzZXJ0IHN0cihyZXBydGIpCisKKyAg
ICBAYnJva2VuX29uX21vZGVybl9weXRlc3QKKyAgICBkZWYgdGVzdF90Yl9lbnRyeV9Bc3NlcnRp
b25FcnJvcihzZWxmLCBpbXBvcnRhc21vZCk6CisgICAgICAgICMgcHJvYmFibHkgdGhpcyB0ZXN0
IGlzIGEgYml0IHJlZHVuZGFudAorICAgICAgICAjIGFzIHB5L21hZ2ljL3Rlc3RpbmcvdGVzdF9h
c3NlcnRpb24ucHkKKyAgICAgICAgIyBhbHJlYWR5IHRlc3RzIGNvcnJlY3RuZXNzIG9mCisgICAg
ICAgICMgYXNzZXJ0aW9uLXJlaW50ZXJwcmV0YXRpb24gIGxvZ2ljCisgICAgICAgIG1vZCA9IGlt
cG9ydGFzbW9kKCIiIgorICAgICAgICAgICAgZGVmIHNvbWVmdW5jKCk6CisgICAgICAgICAgICAg
ICAgeCA9IDEKKyAgICAgICAgICAgICAgICBhc3NlcnQgeCA9PSAyCisgICAgICAgICIiIikKKyAg
ICAgICAgZXhjaW5mbyA9IHB5LnRlc3QucmFpc2VzKEFzc2VydGlvbkVycm9yLCBtb2Quc29tZWZ1
bmMpCisKKyAgICAgICAgcCA9IEZvcm1hdHRlZEV4Y2luZm8oKQorICAgICAgICByZXByZW50cnkg
PSBwLnJlcHJfdHJhY2ViYWNrX2VudHJ5KGV4Y2luZm8udHJhY2ViYWNrWy0xXSwgZXhjaW5mbykK
KyAgICAgICAgbGluZXMgPSByZXByZW50cnkubGluZXMKKyAgICAgICAgYXNzZXJ0IGxpbmVzWy0x
XSA9PSAiRSAgICAgICBhc3NlcnQgMSA9PSAyIgorCisgICAgZGVmIHRlc3RfcmVwcmV4Y2luZm9f
Z2V0cmVwcihzZWxmLCBpbXBvcnRhc21vZCk6CisgICAgICAgIG1vZCA9IGltcG9ydGFzbW9kKCIi
IgorICAgICAgICAgICAgZGVmIGYoeCk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cih4KQorICAgICAgICAgICAgZGVmIGVudHJ5KCk6CisgICAgICAgICAgICAgICAgZigwKQorICAg
ICAgICAiIiIpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG1vZC5lbnRyeSgpCisgICAgICAg
IGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgZXhjaW5mbyA9IHB5LmNvZGUuRXhjZXB0
aW9uSW5mbygpCisKKyAgICAgICAgZm9yIHN0eWxlIGluICgic2hvcnQiLCAibG9uZyIsICJubyIp
OgorICAgICAgICAgICAgZm9yIHNob3dsb2NhbHMgaW4gKFRydWUsIEZhbHNlKToKKyAgICAgICAg
ICAgICAgICByZXByID0gZXhjaW5mby5nZXRyZXByKHN0eWxlPXN0eWxlLCBzaG93bG9jYWxzPXNo
b3dsb2NhbHMpCisgICAgICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVwciwgUmVwckV4
Y2VwdGlvbkluZm8pCisgICAgICAgICAgICAgICAgYXNzZXJ0IHJlcHIucmVwcnRyYWNlYmFjay5z
dHlsZSA9PSBzdHlsZQorCisgICAgZGVmIHRlc3RfcmVwcmV4Y2luZm9fdW5pY29kZShzZWxmKToK
KyAgICAgICAgZnJvbSBweS5fY29kZS5jb2RlIGltcG9ydCBUZXJtaW5hbFJlcHIKKyAgICAgICAg
Y2xhc3MgTXlSZXByKFRlcm1pbmFsUmVwcik6CisgICAgICAgICAgICBkZWYgdG90ZXJtaW5hbChz
ZWxmLCB0dyk6CisgICAgICAgICAgICAgICAgdHcubGluZShweS5idWlsdGluLl90b3RleHQoItGP
IiwgInV0Zi04IikpCisgICAgICAgIHggPSBweS5idWlsdGluLl90b3RleHQoTXlSZXByKCkpCisg
ICAgICAgIGFzc2VydCB4ID09IHB5LmJ1aWx0aW4uX3RvdGV4dCgi0Y8iLCAidXRmLTgiKQorCisg
ICAgQGJyb2tlbl9vbl9tb2Rlcm5fcHl0ZXN0CisgICAgZGVmIHRlc3RfdG90ZXJtaW5hbF9sb25n
KHNlbGYsIGltcG9ydGFzbW9kKToKKyAgICAgICAgbW9kID0gaW1wb3J0YXNtb2QoIiIiCisgICAg
ICAgICAgICBkZWYgZyh4KToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKHgpCisg
ICAgICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgICAgIGcoMykKKyAgICAgICAgIiIiKQor
ICAgICAgICBleGNpbmZvID0gcHkudGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgbW9kLmYpCisgICAg
ICAgIGV4Y2luZm8udHJhY2ViYWNrID0gZXhjaW5mby50cmFjZWJhY2suZmlsdGVyKCkKKyAgICAg
ICAgcmVwciA9IGV4Y2luZm8uZ2V0cmVwcigpCisgICAgICAgIHR3ID0gVFdNb2NrKCkKKyAgICAg
ICAgcmVwci50b3Rlcm1pbmFsKHR3KQorICAgICAgICBhc3NlcnQgdHcubGluZXNbMF0gPT0gIiIK
KyAgICAgICAgdHcubGluZXMucG9wKDApCisgICAgICAgIGFzc2VydCB0dy5saW5lc1swXSA9PSAi
ICAgIGRlZiBmKCk6IgorICAgICAgICBhc3NlcnQgdHcubGluZXNbMV0gPT0gIj4gICAgICAgZygz
KSIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzJdID09ICIiCisgICAgICAgIGFzc2VydCB0dy5s
aW5lc1szXS5lbmRzd2l0aCgibW9kLnB5OjU6ICIpCisgICAgICAgIGFzc2VydCB0dy5saW5lc1s0
XSA9PSAoIl8gIiwgTm9uZSkKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzVdID09ICIiCisgICAg
ICAgIGFzc2VydCB0dy5saW5lc1s2XSA9PSAiICAgIGRlZiBnKHgpOiIKKyAgICAgICAgYXNzZXJ0
IHR3LmxpbmVzWzddID09ICI+ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoeCkiCisgICAgICAgIGFz
c2VydCB0dy5saW5lc1s4XSA9PSAiRSAgICAgICBWYWx1ZUVycm9yOiAzIgorICAgICAgICBhc3Nl
cnQgdHcubGluZXNbOV0gPT0gIiIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzEwXS5lbmRzd2l0
aCgibW9kLnB5OjM6IFZhbHVlRXJyb3IiKQorCisgICAgQGJyb2tlbl9vbl9tb2Rlcm5fcHl0ZXN0
CisgICAgZGVmIHRlc3RfdG90ZXJtaW5hbF9sb25nX21pc3Npbmdfc291cmNlKHNlbGYsIGltcG9y
dGFzbW9kLCB0bXBkaXIpOgorICAgICAgICBtb2QgPSBpbXBvcnRhc21vZCgiIiIKKyAgICAgICAg
ICAgIGRlZiBnKHgpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoeCkKKyAgICAg
ICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICAgICAgZygzKQorICAgICAgICAiIiIpCisgICAg
ICAgIGV4Y2luZm8gPSBweS50ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtb2QuZikKKyAgICAgICAg
dG1wZGlyLmpvaW4oJ21vZC5weScpLnJlbW92ZSgpCisgICAgICAgIGV4Y2luZm8udHJhY2ViYWNr
ID0gZXhjaW5mby50cmFjZWJhY2suZmlsdGVyKCkKKyAgICAgICAgcmVwciA9IGV4Y2luZm8uZ2V0
cmVwcigpCisgICAgICAgIHR3ID0gVFdNb2NrKCkKKyAgICAgICAgcmVwci50b3Rlcm1pbmFsKHR3
KQorICAgICAgICBhc3NlcnQgdHcubGluZXNbMF0gPT0gIiIKKyAgICAgICAgdHcubGluZXMucG9w
KDApCisgICAgICAgIGFzc2VydCB0dy5saW5lc1swXSA9PSAiPiAgID8/PyIKKyAgICAgICAgYXNz
ZXJ0IHR3LmxpbmVzWzFdID09ICIiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1syXS5lbmRzd2l0
aCgibW9kLnB5OjU6ICIpCisgICAgICAgIGFzc2VydCB0dy5saW5lc1szXSA9PSAoIl8gIiwgTm9u
ZSkKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzRdID09ICIiCisgICAgICAgIGFzc2VydCB0dy5s
aW5lc1s1XSA9PSAiPiAgID8/PyIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzZdID09ICJFICAg
VmFsdWVFcnJvcjogMyIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzddID09ICIiCisgICAgICAg
IGFzc2VydCB0dy5saW5lc1s4XS5lbmRzd2l0aCgibW9kLnB5OjM6IFZhbHVlRXJyb3IiKQorCisg
ICAgQGJyb2tlbl9vbl9tb2Rlcm5fcHl0ZXN0CisgICAgZGVmIHRlc3RfdG90ZXJtaW5hbF9sb25n
X2luY29tcGxldGVfc291cmNlKHNlbGYsIGltcG9ydGFzbW9kLCB0bXBkaXIpOgorICAgICAgICBt
b2QgPSBpbXBvcnRhc21vZCgiIiIKKyAgICAgICAgICAgIGRlZiBnKHgpOgorICAgICAgICAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoeCkKKyAgICAgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAg
ICAgICAgZygzKQorICAgICAgICAiIiIpCisgICAgICAgIGV4Y2luZm8gPSBweS50ZXN0LnJhaXNl
cyhWYWx1ZUVycm9yLCBtb2QuZikKKyAgICAgICAgdG1wZGlyLmpvaW4oJ21vZC5weScpLndyaXRl
KCdhc2RmJykKKyAgICAgICAgZXhjaW5mby50cmFjZWJhY2sgPSBleGNpbmZvLnRyYWNlYmFjay5m
aWx0ZXIoKQorICAgICAgICByZXByID0gZXhjaW5mby5nZXRyZXByKCkKKyAgICAgICAgdHcgPSBU
V01vY2soKQorICAgICAgICByZXByLnRvdGVybWluYWwodHcpCisgICAgICAgIGFzc2VydCB0dy5s
aW5lc1swXSA9PSAiIgorICAgICAgICB0dy5saW5lcy5wb3AoMCkKKyAgICAgICAgYXNzZXJ0IHR3
LmxpbmVzWzBdID09ICI+ICAgPz8/IgorICAgICAgICBhc3NlcnQgdHcubGluZXNbMV0gPT0gIiIK
KyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzJdLmVuZHN3aXRoKCJtb2QucHk6NTogIikKKyAgICAg
ICAgYXNzZXJ0IHR3LmxpbmVzWzNdID09ICgiXyAiLCBOb25lKQorICAgICAgICBhc3NlcnQgdHcu
bGluZXNbNF0gPT0gIiIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzVdID09ICI+ICAgPz8/Igor
ICAgICAgICBhc3NlcnQgdHcubGluZXNbNl0gPT0gIkUgICBWYWx1ZUVycm9yOiAzIgorICAgICAg
ICBhc3NlcnQgdHcubGluZXNbN10gPT0gIiIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzhdLmVu
ZHN3aXRoKCJtb2QucHk6MzogVmFsdWVFcnJvciIpCisKKyAgICBAYnJva2VuX29uX21vZGVybl9w
eXRlc3QKKyAgICBkZWYgdGVzdF90b3Rlcm1pbmFsX2xvbmdfZmlsZW5hbWVzKHNlbGYsIGltcG9y
dGFzbW9kKToKKyAgICAgICAgbW9kID0gaW1wb3J0YXNtb2QoIiIiCisgICAgICAgICAgICBkZWYg
ZigpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoKQorICAgICAgICAiIiIpCisg
ICAgICAgIGV4Y2luZm8gPSBweS50ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtb2QuZikKKyAgICAg
ICAgdHcgPSBUV01vY2soKQorICAgICAgICBwYXRoID0gcHkucGF0aC5sb2NhbChtb2QuX19maWxl
X18pCisgICAgICAgIG9sZCA9IHBhdGguZGlycGF0aCgpLmNoZGlyKCkKKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgcmVwciA9IGV4Y2luZm8uZ2V0cmVwcihhYnNwYXRoPUZhbHNlKQorICAgICAg
ICAgICAgcmVwci50b3Rlcm1pbmFsKHR3KQorICAgICAgICAgICAgbGluZSA9IHR3LmxpbmVzWy0x
XQorICAgICAgICAgICAgeCA9IHB5LnBhdGgubG9jYWwoKS5iZXN0cmVscGF0aChwYXRoKQorICAg
ICAgICAgICAgaWYgbGVuKHgpIDwgbGVuKHN0cihwYXRoKSk6CisgICAgICAgICAgICAgICAgYXNz
ZXJ0IGxpbmUgPT0gIm1vZC5weTozOiBWYWx1ZUVycm9yIgorCisgICAgICAgICAgICByZXByID0g
ZXhjaW5mby5nZXRyZXByKGFic3BhdGg9VHJ1ZSkKKyAgICAgICAgICAgIHJlcHIudG90ZXJtaW5h
bCh0dykKKyAgICAgICAgICAgIGxpbmUgPSB0dy5saW5lc1stMV0KKyAgICAgICAgICAgIGFzc2Vy
dCBsaW5lID09ICIlczozOiBWYWx1ZUVycm9yIiAlKHBhdGgsKQorICAgICAgICBmaW5hbGx5Ogor
ICAgICAgICAgICAgb2xkLmNoZGlyKCkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgn
c3R5bGUnLCAoImxvbmciLCAic2hvcnQiLCAibm8iKSkKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoJ3Nob3dsb2NhbHMnLCAoVHJ1ZSwgRmFsc2UpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZHM9Wydsb2NhbHMnLCAnbm9sb2NhbHMnXSkKKyAgICBAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoJ3RiZmlsdGVyJywgKFRydWUsIEZhbHNlKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWRzPVsndGJmaWx0ZXInLCAnbm9maWx0ZXInXSkKKyAgICBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoJ2Z1bmNhcmdzJywgKFRydWUsIEZhbHNlKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWRzPVsnZnVuY2FyZ3MnLCAnbm9mdW5jYXJncyddKQorICAgIGRlZiB0ZXN0
X2Zvcm1hdF9leGNpbmZvKHNlbGYsIGltcG9ydGFzbW9kLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0eWxlLCBzaG93bG9jYWxzLCB0YmZpbHRlciwgZnVuY2FyZ3MpOgorICAgICAgICAK
KyAgICAgICAgbW9kID0gaW1wb3J0YXNtb2QoIiIiCisgICAgICAgICAgICBkZWYgZyh4KToKKyAg
ICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKHgpCisgICAgICAgICAgICBkZWYgZigpOgor
ICAgICAgICAgICAgICAgIGcoMykKKyAgICAgICAgIiIiKQorICAgICAgICBleGNpbmZvID0gcHku
dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgbW9kLmYpCisgICAgICAgIHR3ID0gcHkuaW8uVGVybWlu
YWxXcml0ZXIoc3RyaW5naW89VHJ1ZSkKKyAgICAgICAgcmVwciA9IGV4Y2luZm8uZ2V0cmVwcigK
KyAgICAgICAgICAgIHN0eWxlPXN0eWxlLAorICAgICAgICAgICAgc2hvd2xvY2Fscz1zaG93bG9j
YWxzLAorICAgICAgICAgICAgZnVuY2FyZ3M9ZnVuY2FyZ3MsCisgICAgICAgICAgICB0YmZpbHRl
cj10YmZpbHRlcgorICAgICAgICApCisgICAgICAgIHJlcHIudG90ZXJtaW5hbCh0dykKKyAgICAg
ICAgYXNzZXJ0IHR3LnN0cmluZ2lvLmdldHZhbHVlKCkKKworICAgIEBicm9rZW5fb25fbW9kZXJu
X3B5dGVzdAorICAgIGRlZiB0ZXN0X25hdGl2ZV9zdHlsZShzZWxmKToKKyAgICAgICAgZXhjaW5m
byA9IHNlbGYuZXhjaW5mb19mcm9tX2V4ZWMoIiIiCisgICAgICAgICAgICBhc3NlcnQgMAorICAg
ICAgICAiIiIpCisgICAgICAgIHJlcHIgPSBleGNpbmZvLmdldHJlcHIoc3R5bGU9J25hdGl2ZScp
CisgICAgICAgIGFzc2VydCAiYXNzZXJ0IDAiIGluIHN0cihyZXByLnJlcHJjcmFzaCkKKyAgICAg
ICAgcyA9IHN0cihyZXByKQorICAgICAgICBhc3NlcnQgcy5zdGFydHN3aXRoKCdUcmFjZWJhY2sg
KG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6XG4gIEZpbGUnKQorICAgICAgICBhc3NlcnQgcy5lbmRz
d2l0aCgnXG5Bc3NlcnRpb25FcnJvcjogYXNzZXJ0IDAnKQorICAgICAgICBhc3NlcnQgJ2V4ZWMg
KHNvdXJjZS5jb21waWxlKCkpJyBpbiBzCisgICAgICAgIGFzc2VydCBzLmNvdW50KCdhc3NlcnQg
MCcpID09IDIKKworICAgIEBicm9rZW5fb25fbW9kZXJuX3B5dGVzdAorICAgIGRlZiB0ZXN0X3Ry
YWNlYmFja19yZXByX3N0eWxlKHNlbGYsIGltcG9ydGFzbW9kKToKKyAgICAgICAgbW9kID0gaW1w
b3J0YXNtb2QoIiIiCisgICAgICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgICAgIGcoKQor
ICAgICAgICAgICAgZGVmIGcoKToKKyAgICAgICAgICAgICAgICBoKCkKKyAgICAgICAgICAgIGRl
ZiBoKCk6CisgICAgICAgICAgICAgICAgaSgpCisgICAgICAgICAgICBkZWYgaSgpOgorICAgICAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoKQorICAgICAgICAiIiIpCisgICAgICAgIGV4Y2lu
Zm8gPSBweS50ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtb2QuZikKKyAgICAgICAgZXhjaW5mby50
cmFjZWJhY2sgPSBleGNpbmZvLnRyYWNlYmFjay5maWx0ZXIoKQorICAgICAgICBleGNpbmZvLnRy
YWNlYmFja1sxXS5zZXRfcmVwcl9zdHlsZSgic2hvcnQiKQorICAgICAgICBleGNpbmZvLnRyYWNl
YmFja1syXS5zZXRfcmVwcl9zdHlsZSgic2hvcnQiKQorICAgICAgICByID0gZXhjaW5mby5nZXRy
ZXByKHN0eWxlPSJsb25nIikKKyAgICAgICAgdHcgPSBUV01vY2soKQorICAgICAgICByLnRvdGVy
bWluYWwodHcpCisgICAgICAgIGZvciBsaW5lIGluIHR3LmxpbmVzOiBwcmludCAobGluZSkKKyAg
ICAgICAgYXNzZXJ0IHR3LmxpbmVzWzBdID09ICIiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1sx
XSA9PSAiICAgIGRlZiBmKCk6IgorICAgICAgICBhc3NlcnQgdHcubGluZXNbMl0gPT0gIj4gICAg
ICAgZygpIgorICAgICAgICBhc3NlcnQgdHcubGluZXNbM10gPT0gIiIKKyAgICAgICAgYXNzZXJ0
IHR3LmxpbmVzWzRdLmVuZHN3aXRoKCJtb2QucHk6MzogIikKKyAgICAgICAgYXNzZXJ0IHR3Lmxp
bmVzWzVdID09ICgiXyAiLCBOb25lKQorICAgICAgICBhc3NlcnQgdHcubGluZXNbNl0uZW5kc3dp
dGgoImluIGciKQorICAgICAgICBhc3NlcnQgdHcubGluZXNbN10gPT0gIiAgICBoKCkiCisgICAg
ICAgIGFzc2VydCB0dy5saW5lc1s4XS5lbmRzd2l0aCgiaW4gaCIpCisgICAgICAgIGFzc2VydCB0
dy5saW5lc1s5XSA9PSAiICAgIGkoKSIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzEwXSA9PSAo
Il8gIiwgTm9uZSkKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzExXSA9PSAiIgorICAgICAgICBh
c3NlcnQgdHcubGluZXNbMTJdID09ICIgICAgZGVmIGkoKToiCisgICAgICAgIGFzc2VydCB0dy5s
aW5lc1sxM10gPT0gIj4gICAgICAgcmFpc2UgVmFsdWVFcnJvcigpIgorICAgICAgICBhc3NlcnQg
dHcubGluZXNbMTRdID09ICJFICAgICAgIFZhbHVlRXJyb3IiCisgICAgICAgIGFzc2VydCB0dy5s
aW5lc1sxNV0gPT0gIiIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzE2XS5lbmRzd2l0aCgibW9k
LnB5Ojk6IFZhbHVlRXJyb3IiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2NvZGUvdGVz
dF9zb3VyY2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvY29kZS90ZXN0X3NvdXJjZS5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zNDkyNzYxYTRlOWUzNGUxZGRmMDM3YjNkNzM3MjA3NWMzMDMyM2YwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2NvZGUvdGVzdF9zb3VyY2UucHkKQEAgLTAsMCArMSw2
NDggQEAKK2Zyb20gcHkuY29kZSBpbXBvcnQgU291cmNlCitpbXBvcnQgcHkKK2ltcG9ydCBzeXMK
K2ltcG9ydCBpbnNwZWN0CisKK2Zyb20gcHkuX2NvZGUuc291cmNlIGltcG9ydCBfYXN0CitpZiBf
YXN0IGlzIG5vdCBOb25lOgorICAgIGFzdG9ubHkgPSBweS50ZXN0Lm1hcmsubm90aGluZworZWxz
ZToKKyAgICBhc3Rvbmx5ID0gcHkudGVzdC5tYXJrLnhmYWlsKCJUcnVlIiwgcmVhc29uPSJvbmx5
IHdvcmtzIHdpdGggQVNULWNvbXBpbGUiKQorCitmYWlsc29uanl0aG9uID0gcHkudGVzdC5tYXJr
LnhmYWlsKCJzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnamF2YScpIikKKworZGVmIHRlc3Rfc291
cmNlX3N0cl9mdW5jdGlvbigpOgorICAgIHggPSBTb3VyY2UoIjMiKQorICAgIGFzc2VydCBzdHIo
eCkgPT0gIjMiCisKKyAgICB4ID0gU291cmNlKCIgICAzIikKKyAgICBhc3NlcnQgc3RyKHgpID09
ICIzIgorCisgICAgeCA9IFNvdXJjZSgiIiIKKyAgICAgICAgMworICAgICIiIiwgcnN0cmlwPUZh
bHNlKQorICAgIGFzc2VydCBzdHIoeCkgPT0gIlxuM1xuICAgICIKKworICAgIHggPSBTb3VyY2Uo
IiIiCisgICAgICAgIDMKKyAgICAiIiIsIHJzdHJpcD1UcnVlKQorICAgIGFzc2VydCBzdHIoeCkg
PT0gIlxuMyIKKworZGVmIHRlc3RfdW5pY29kZSgpOgorICAgIHRyeToKKyAgICAgICAgdW5pY29k
ZQorICAgIGV4Y2VwdCBOYW1lRXJyb3I6CisgICAgICAgIHJldHVybgorICAgIHggPSBTb3VyY2Uo
dW5pY29kZSgiNCIpKQorICAgIGFzc2VydCBzdHIoeCkgPT0gIjQiCisgICAgY28gPSBweS5jb2Rl
LmNvbXBpbGUodW5pY29kZSgndSJceGMzXHhhNSInLCAndXRmOCcpLCBtb2RlPSdldmFsJykKKyAg
ICB2YWwgPSBldmFsKGNvKQorICAgIGFzc2VydCBpc2luc3RhbmNlKHZhbCwgdW5pY29kZSkKKwor
ZGVmIHRlc3Rfc291cmNlX2Zyb21fZnVuY3Rpb24oKToKKyAgICBzb3VyY2UgPSBweS5jb2RlLlNv
dXJjZSh0ZXN0X3NvdXJjZV9zdHJfZnVuY3Rpb24pCisgICAgYXNzZXJ0IHN0cihzb3VyY2UpLnN0
YXJ0c3dpdGgoJ2RlZiB0ZXN0X3NvdXJjZV9zdHJfZnVuY3Rpb24oKTonKQorCitkZWYgdGVzdF9z
b3VyY2VfZnJvbV9tZXRob2QoKToKKyAgICBjbGFzcyBUZXN0Q2xhc3M6CisgICAgICAgIGRlZiB0
ZXN0X21ldGhvZChzZWxmKToKKyAgICAgICAgICAgIHBhc3MKKyAgICBzb3VyY2UgPSBweS5jb2Rl
LlNvdXJjZShUZXN0Q2xhc3MoKS50ZXN0X21ldGhvZCkKKyAgICBhc3NlcnQgc291cmNlLmxpbmVz
ID09IFsiZGVmIHRlc3RfbWV0aG9kKHNlbGYpOiIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIiAgICBwYXNzIl0KKworZGVmIHRlc3Rfc291cmNlX2Zyb21fbGluZXMoKToKKyAgICBsaW5l
cyA9IFsiYSBcbiIsICJiXG4iLCAiYyJdCisgICAgc291cmNlID0gcHkuY29kZS5Tb3VyY2UobGlu
ZXMpCisgICAgYXNzZXJ0IHNvdXJjZS5saW5lcyA9PSBbJ2EgJywgJ2InLCAnYyddCisKK2RlZiB0
ZXN0X3NvdXJjZV9mcm9tX2lubmVyX2Z1bmN0aW9uKCk6CisgICAgZGVmIGYoKToKKyAgICAgICAg
cGFzcworICAgIHNvdXJjZSA9IHB5LmNvZGUuU291cmNlKGYsIGRlaW5kZW50PUZhbHNlKQorICAg
IGFzc2VydCBzdHIoc291cmNlKS5zdGFydHN3aXRoKCcgICAgZGVmIGYoKTonKQorICAgIHNvdXJj
ZSA9IHB5LmNvZGUuU291cmNlKGYpCisgICAgYXNzZXJ0IHN0cihzb3VyY2UpLnN0YXJ0c3dpdGgo
J2RlZiBmKCk6JykKKworZGVmIHRlc3Rfc291cmNlX3B1dGFyb3VuZF9zaW1wbGUoKToKKyAgICBz
b3VyY2UgPSBTb3VyY2UoInJhaXNlIFZhbHVlRXJyb3IiKQorICAgIHNvdXJjZSA9IHNvdXJjZS5w
dXRhcm91bmQoCisgICAgICAgICJ0cnk6IiwgIiIiXAorICAgICAgICBleGNlcHQgVmFsdWVFcnJv
cjoKKyAgICAgICAgICAgIHggPSA0MgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgeCA9IDIz
IiIiKQorICAgIGFzc2VydCBzdHIoc291cmNlKT09IiIiXAordHJ5OgorICAgIHJhaXNlIFZhbHVl
RXJyb3IKK2V4Y2VwdCBWYWx1ZUVycm9yOgorICAgIHggPSA0MgorZWxzZToKKyAgICB4ID0gMjMi
IiIKKworZGVmIHRlc3Rfc291cmNlX3B1dGFyb3VuZCgpOgorICAgIHNvdXJjZSA9IFNvdXJjZSgp
CisgICAgc291cmNlID0gc291cmNlLnB1dGFyb3VuZCgiIiIKKyAgICAgICAgaWYgMToKKyAgICAg
ICAgICAgIHg9MQorICAgICIiIikKKyAgICBhc3NlcnQgc3RyKHNvdXJjZSkuc3RyaXAoKSA9PSAi
aWYgMTpcbiAgICB4PTEiCisKK2RlZiB0ZXN0X3NvdXJjZV9zdHJpcHMoKToKKyAgICBzb3VyY2Ug
PSBTb3VyY2UoIiIpCisgICAgYXNzZXJ0IHNvdXJjZSA9PSBTb3VyY2UoKQorICAgIGFzc2VydCBz
dHIoc291cmNlKSA9PSAnJworICAgIGFzc2VydCBzb3VyY2Uuc3RyaXAoKSA9PSBzb3VyY2UKKwor
ZGVmIHRlc3Rfc291cmNlX3N0cmlwX211bHRpbGluZSgpOgorICAgIHNvdXJjZSA9IFNvdXJjZSgp
CisgICAgc291cmNlLmxpbmVzID0gWyIiLCAiIGhlbGxvIiwgIiAgIl0KKyAgICBzb3VyY2UyID0g
c291cmNlLnN0cmlwKCkKKyAgICBhc3NlcnQgc291cmNlMi5saW5lcyA9PSBbIiBoZWxsbyJdCisK
K2RlZiB0ZXN0X3N5bnRheGVycm9yX3JlcmVwcmVzZW50YXRpb24oKToKKyAgICBleCA9IHB5LnRl
c3QucmFpc2VzKFN5bnRheEVycm9yLCBweS5jb2RlLmNvbXBpbGUsICd4eXogeHl6JykKKyAgICBh
c3NlcnQgZXgudmFsdWUubGluZW5vID09IDEKKyAgICBhc3NlcnQgZXgudmFsdWUub2Zmc2V0IGlu
ICg0LDcpICMgWFhYIHB5cHkvanl0aG9uIHZlcnN1cyBjcHl0aG9uPworICAgIGFzc2VydCBleC52
YWx1ZS50ZXh0LnN0cmlwKCksICd4IHgnCisKK2RlZiB0ZXN0X2lzcGFyc2VhYmxlKCk6CisgICAg
YXNzZXJ0IFNvdXJjZSgiaGVsbG8iKS5pc3BhcnNlYWJsZSgpCisgICAgYXNzZXJ0IFNvdXJjZSgi
aWYgMTpcbiAgcGFzcyIpLmlzcGFyc2VhYmxlKCkKKyAgICBhc3NlcnQgU291cmNlKCIgXG5pZiAx
OlxuICBwYXNzIikuaXNwYXJzZWFibGUoKQorICAgIGFzc2VydCBub3QgU291cmNlKCJpZiAxOlxu
IikuaXNwYXJzZWFibGUoKQorICAgIGFzc2VydCBub3QgU291cmNlKCIgXG5pZiAxOlxucGFzcyIp
LmlzcGFyc2VhYmxlKCkKKyAgICBhc3NlcnQgbm90IFNvdXJjZShjaHIoMCkpLmlzcGFyc2VhYmxl
KCkKKworY2xhc3MgVGVzdEFjY2Vzc2VzOgorICAgIHNvdXJjZSA9IFNvdXJjZSgiIiJcCisgICAg
ICAgIGRlZiBmKHgpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBkZWYgZyh4KToKKyAgICAg
ICAgICAgIHBhc3MKKyAgICAiIiIpCisgICAgZGVmIHRlc3RfZ2V0cmFuZ2Uoc2VsZik6CisgICAg
ICAgIHggPSBzZWxmLnNvdXJjZVswOjJdCisgICAgICAgIGFzc2VydCB4LmlzcGFyc2VhYmxlKCkK
KyAgICAgICAgYXNzZXJ0IGxlbih4LmxpbmVzKSA9PSAyCisgICAgICAgIGFzc2VydCBzdHIoeCkg
PT0gImRlZiBmKHgpOlxuICAgIHBhc3MiCisKKyAgICBkZWYgdGVzdF9nZXRsaW5lKHNlbGYpOgor
ICAgICAgICB4ID0gc2VsZi5zb3VyY2VbMF0KKyAgICAgICAgYXNzZXJ0IHggPT0gImRlZiBmKHgp
OiIKKworICAgIGRlZiB0ZXN0X2xlbihzZWxmKToKKyAgICAgICAgYXNzZXJ0IGxlbihzZWxmLnNv
dXJjZSkgPT0gNAorCisgICAgZGVmIHRlc3RfaXRlcihzZWxmKToKKyAgICAgICAgbCA9IFt4IGZv
ciB4IGluIHNlbGYuc291cmNlXQorICAgICAgICBhc3NlcnQgbGVuKGwpID09IDQKKworY2xhc3Mg
VGVzdFNvdXJjZVBhcnNpbmdBbmRDb21waWxpbmc6CisgICAgc291cmNlID0gU291cmNlKCIiIlwK
KyAgICAgICAgZGVmIGYoeCk6CisgICAgICAgICAgICBhc3NlcnQgKHggPT0KKyAgICAgICAgICAg
ICAgICAgICAgMyArCisgICAgICAgICAgICAgICAgICAgIDQpCisgICAgIiIiKS5zdHJpcCgpCisK
KyAgICBkZWYgdGVzdF9jb21waWxlKHNlbGYpOgorICAgICAgICBjbyA9IHB5LmNvZGUuY29tcGls
ZSgieD0zIikKKyAgICAgICAgZCA9IHt9CisgICAgICAgIGV4ZWMgKGNvLCBkKQorICAgICAgICBh
c3NlcnQgZFsneCddID09IDMKKworICAgIGRlZiB0ZXN0X2NvbXBpbGVfYW5kX2dldHNvdXJjZV9z
aW1wbGUoc2VsZik6CisgICAgICAgIGNvID0gcHkuY29kZS5jb21waWxlKCJ4PTMiKQorICAgICAg
ICBleGVjIChjbykKKyAgICAgICAgc291cmNlID0gcHkuY29kZS5Tb3VyY2UoY28pCisgICAgICAg
IGFzc2VydCBzdHIoc291cmNlKSA9PSAieD0zIgorCisgICAgZGVmIHRlc3RfY29tcGlsZV9hbmRf
Z2V0c291cmNlX3Rocm91Z2hfc2FtZV9mdW5jdGlvbihzZWxmKToKKyAgICAgICAgZGVmIGdlbnNv
dXJjZShzb3VyY2UpOgorICAgICAgICAgICAgcmV0dXJuIHB5LmNvZGUuY29tcGlsZShzb3VyY2Up
CisgICAgICAgIGNvMSA9IGdlbnNvdXJjZSgiIiIKKyAgICAgICAgICAgIGRlZiBmKCk6CisgICAg
ICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IoKQorICAgICAgICAiIiIpCisgICAgICAgIGNvMiA9
IGdlbnNvdXJjZSgiIiIKKyAgICAgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICAgICAgcmFp
c2UgVmFsdWVFcnJvcigpCisgICAgICAgICIiIikKKyAgICAgICAgc291cmNlMSA9IGluc3BlY3Qu
Z2V0c291cmNlKGNvMSkKKyAgICAgICAgYXNzZXJ0ICdLZXlFcnJvcicgaW4gc291cmNlMQorICAg
ICAgICBzb3VyY2UyID0gaW5zcGVjdC5nZXRzb3VyY2UoY28yKQorICAgICAgICBhc3NlcnQgJ1Zh
bHVlRXJyb3InIGluIHNvdXJjZTIKKworICAgIGRlZiB0ZXN0X2dldHN0YXRlbWVudChzZWxmKToK
KyAgICAgICAgI3ByaW50IHN0cihzZWxmLnNvdXJjZSkKKyAgICAgICAgYXNzID0gc3RyKHNlbGYu
c291cmNlWzE6XSkKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMSwgNCk6CisgICAgICAgICAgICAj
cHJpbnQgInRyeWluZyBzdGFydCBpbiBsaW5lICVyIiAlIHNlbGYuc291cmNlW2ldCisgICAgICAg
ICAgICBzID0gc2VsZi5zb3VyY2UuZ2V0c3RhdGVtZW50KGkpCisgICAgICAgICAgICAjeCA9IHMu
ZGVpbmRlbnQoKQorICAgICAgICAgICAgYXNzZXJ0IHN0cihzKSA9PSBhc3MKKworICAgIGRlZiB0
ZXN0X2dldHN0YXRlbWVudHJhbmdlX3RyaXBsZV9xdW90ZWQoc2VsZik6CisgICAgICAgICNwcmlu
dCBzdHIoc2VsZi5zb3VyY2UpCisgICAgICAgIHNvdXJjZSA9IFNvdXJjZSgiIiJoZWxsbygnJycK
KyAgICAgICAgJycnKSIiIikKKyAgICAgICAgcyA9IHNvdXJjZS5nZXRzdGF0ZW1lbnQoMCkKKyAg
ICAgICAgYXNzZXJ0IHMgPT0gc3RyKHNvdXJjZSkKKyAgICAgICAgcyA9IHNvdXJjZS5nZXRzdGF0
ZW1lbnQoMSkKKyAgICAgICAgYXNzZXJ0IHMgPT0gc3RyKHNvdXJjZSkKKworICAgIEBhc3Rvbmx5
CisgICAgZGVmIHRlc3RfZ2V0c3RhdGVtZW50cmFuZ2Vfd2l0aGluX2NvbnN0cnVjdHMoc2VsZik6
CisgICAgICAgIHNvdXJjZSA9IFNvdXJjZSgiIiJcCisgICAgICAgICAgICB0cnk6CisgICAgICAg
ICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yCisgICAg
ICAgICAgICAgICAgZXhjZXB0IFNvbWVUaGluZzoKKyAgICAgICAgICAgICAgICAgICAgcGFzcwor
ICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICA0MgorICAgICAgICAiIiIpCisg
ICAgICAgIGFzc2VydCBsZW4oc291cmNlKSA9PSA3CisgICAgICAgICMgY2hlY2sgYWxsIGxpbmVu
bydzIHRoYXQgY291bGQgb2NjdXIgaW4gYSB0cmFjZWJhY2sKKyAgICAgICAgI2Fzc2VydCBzb3Vy
Y2UuZ2V0c3RhdGVtZW50cmFuZ2UoMCkgPT0gKDAsIDcpCisgICAgICAgICNhc3NlcnQgc291cmNl
LmdldHN0YXRlbWVudHJhbmdlKDEpID09ICgxLCA1KQorICAgICAgICBhc3NlcnQgc291cmNlLmdl
dHN0YXRlbWVudHJhbmdlKDIpID09ICgyLCAzKQorICAgICAgICBhc3NlcnQgc291cmNlLmdldHN0
YXRlbWVudHJhbmdlKDMpID09ICgzLCA0KQorICAgICAgICBhc3NlcnQgc291cmNlLmdldHN0YXRl
bWVudHJhbmdlKDQpID09ICg0LCA1KQorICAgICAgICAjYXNzZXJ0IHNvdXJjZS5nZXRzdGF0ZW1l
bnRyYW5nZSg1KSA9PSAoMCwgNykKKyAgICAgICAgYXNzZXJ0IHNvdXJjZS5nZXRzdGF0ZW1lbnRy
YW5nZSg2KSA9PSAoNiwgNykKKworICAgIGRlZiB0ZXN0X2dldHN0YXRlbWVudHJhbmdlX2J1Zyhz
ZWxmKToKKyAgICAgICAgc291cmNlID0gU291cmNlKCIiIlwKKyAgICAgICAgICAgIHRyeToKKyAg
ICAgICAgICAgICAgICB4ID0gKAorICAgICAgICAgICAgICAgICAgIHkgKworICAgICAgICAgICAg
ICAgICAgIHopCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgcGFzcworICAg
ICAgICAiIiIpCisgICAgICAgIGFzc2VydCBsZW4oc291cmNlKSA9PSA2CisgICAgICAgIGFzc2Vy
dCBzb3VyY2UuZ2V0c3RhdGVtZW50cmFuZ2UoMikgPT0gKDEsIDQpCisKKyAgICBkZWYgdGVzdF9n
ZXRzdGF0ZW1lbnRyYW5nZV9idWcyKHNlbGYpOgorICAgICAgICBzb3VyY2UgPSBTb3VyY2UoIiIi
XAorICAgICAgICAgICAgYXNzZXJ0ICgKKyAgICAgICAgICAgICAgICAzMworICAgICAgICAgICAg
ICAgID09CisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAgWCgzLAorICAgICAg
ICAgICAgICAgICAgICAgIGI9MSwgYz0yCisgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAg
ICAgICAgICBdCisgICAgICAgICAgICAgICkKKyAgICAgICAgIiIiKQorICAgICAgICBhc3NlcnQg
bGVuKHNvdXJjZSkgPT0gOQorICAgICAgICBhc3NlcnQgc291cmNlLmdldHN0YXRlbWVudHJhbmdl
KDUpID09ICgwLCA5KQorCisgICAgZGVmIHRlc3RfZ2V0c3RhdGVtZW50cmFuZ2VfYXN0X2lzc3Vl
NTgoc2VsZik6CisgICAgICAgIHNvdXJjZSA9IFNvdXJjZSgiIiJcCisKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X3NvbWUoKToKKyAgICAgICAgICAgICAgICBmb3IgYSBpbiBbYSBmb3IgYSBpbgorICAg
ICAgICAgICAgICAgICAgICBDQVVTRV9FUlJPUl06IHBhc3MKKworICAgICAgICAgICAgeCA9IDMK
KyAgICAgICAgIiIiKQorICAgICAgICBhc3NlcnQgZ2V0c3RhdGVtZW50KDIsIHNvdXJjZSkubGlu
ZXMgPT0gc291cmNlLmxpbmVzWzI6M10KKyAgICAgICAgYXNzZXJ0IGdldHN0YXRlbWVudCgzLCBz
b3VyY2UpLmxpbmVzID09IHNvdXJjZS5saW5lc1szOjRdCisKKyAgICBkZWYgdGVzdF9nZXRzdGF0
ZW1lbnRyYW5nZV9vdXRfb2ZfYm91bmRzX3B5MyhzZWxmKToKKyAgICAgICAgc291cmNlID0gU291
cmNlKCJpZiB4eHg6XG4gICBmcm9tIC5jb2xsZWN0aW9ucyBpbXBvcnQgc29tZXRoaW5nIikKKyAg
ICAgICAgciA9IHNvdXJjZS5nZXRzdGF0ZW1lbnRyYW5nZSgxKQorICAgICAgICBhc3NlcnQgciA9
PSAoMSwyKQorCisgICAgZGVmIHRlc3RfZ2V0c3RhdGVtZW50cmFuZ2Vfd2l0aF9zeW50YXhlcnJv
cl9pc3N1ZTcoc2VsZik6CisgICAgICAgIHNvdXJjZSA9IFNvdXJjZSgiOiIpCisgICAgICAgIHB5
LnRlc3QucmFpc2VzKFN5bnRheEVycm9yLCBsYW1iZGE6IHNvdXJjZS5nZXRzdGF0ZW1lbnRyYW5n
ZSgwKSkKKworICAgIGRlZiB0ZXN0X2NvbXBpbGVfdG9fYXN0KHNlbGYpOgorICAgICAgICBpbXBv
cnQgYXN0CisgICAgICAgIHNvdXJjZSA9IFNvdXJjZSgieCA9IDQiKQorICAgICAgICBtb2QgPSBz
b3VyY2UuY29tcGlsZShmbGFnPWFzdC5QeUNGX09OTFlfQVNUKQorICAgICAgICBhc3NlcnQgaXNp
bnN0YW5jZShtb2QsIGFzdC5Nb2R1bGUpCisgICAgICAgIGNvbXBpbGUobW9kLCAiPGZpbGVuYW1l
PiIsICJleGVjIikKKworICAgIGRlZiB0ZXN0X2NvbXBpbGVfYW5kX2dldHNvdXJjZShzZWxmKToK
KyAgICAgICAgY28gPSBzZWxmLnNvdXJjZS5jb21waWxlKCkKKyAgICAgICAgcHkuYnVpbHRpbi5l
eGVjXyhjbywgZ2xvYmFscygpKQorICAgICAgICBmKDcpCisgICAgICAgIGV4Y2luZm8gPSBweS50
ZXN0LnJhaXNlcyhBc3NlcnRpb25FcnJvciwgImYoNikiKQorICAgICAgICBmcmFtZSA9IGV4Y2lu
Zm8udHJhY2ViYWNrWy0xXS5mcmFtZQorICAgICAgICBzdG10ID0gZnJhbWUuY29kZS5mdWxsc291
cmNlLmdldHN0YXRlbWVudChmcmFtZS5saW5lbm8pCisgICAgICAgICNwcmludCAiYmxvY2siLCBz
dHIoYmxvY2spCisgICAgICAgIGFzc2VydCBzdHIoc3RtdCkuc3RyaXAoKS5zdGFydHN3aXRoKCdh
c3NlcnQnKQorCisgICAgZGVmIHRlc3RfY29tcGlsZWZ1bmNzX2FuZF9wYXRoX3Nhbml0eShzZWxm
KToKKyAgICAgICAgZGVmIGNoZWNrKGNvbXAsIG5hbWUpOgorICAgICAgICAgICAgY28gPSBjb21w
KHNlbGYuc291cmNlLCBuYW1lKQorICAgICAgICAgICAgaWYgbm90IG5hbWU6CisgICAgICAgICAg
ICAgICAgZXhwZWN0ZWQgPSAiY29kZWdlbiAlczolZD4iICUobXlwYXRoLCBteWxpbmVubysyKzEp
CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gImNvZGVnZW4g
JXIgJXM6JWQ+IiAlIChuYW1lLCBteXBhdGgsIG15bGluZW5vKzIrMSkKKyAgICAgICAgICAgIGZu
ID0gY28uY29fZmlsZW5hbWUKKyAgICAgICAgICAgIGFzc2VydCBmbi5lbmRzd2l0aChleHBlY3Rl
ZCkKKworICAgICAgICBteWNvZGUgPSBweS5jb2RlLkNvZGUoc2VsZi50ZXN0X2NvbXBpbGVmdW5j
c19hbmRfcGF0aF9zYW5pdHkpCisgICAgICAgIG15bGluZW5vID0gbXljb2RlLmZpcnN0bGluZW5v
CisgICAgICAgIG15cGF0aCA9IG15Y29kZS5wYXRoCisKKyAgICAgICAgZm9yIGNvbXAgaW4gcHku
Y29kZS5jb21waWxlLCBweS5jb2RlLlNvdXJjZS5jb21waWxlOgorICAgICAgICAgICAgZm9yIG5h
bWUgaW4gJycsIE5vbmUsICdteSc6CisgICAgICAgICAgICAgICAgeWllbGQgY2hlY2ssIGNvbXAs
IG5hbWUKKworICAgIGRlZiB0ZXN0X29mZnNldGxlc3Nfc3luZXJyKHNlbGYpOgorICAgICAgICBw
eS50ZXN0LnJhaXNlcyhTeW50YXhFcnJvciwgcHkuY29kZS5jb21waWxlLCAibGFtYmRhIGEsYTog
MCIsIG1vZGU9J2V2YWwnKQorCitkZWYgdGVzdF9nZXRzdGFydGluZ2Jsb2NrX3NpbmdsZWxpbmUo
KToKKyAgICBjbGFzcyBBOgorICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MpOgorICAg
ICAgICAgICAgZnJhbWUgPSBzeXMuX2dldGZyYW1lKDEpCisgICAgICAgICAgICBzZWxmLnNvdXJj
ZSA9IHB5LmNvZGUuRnJhbWUoZnJhbWUpLnN0YXRlbWVudAorCisgICAgeCA9IEEoJ3gnLCAneScp
CisKKyAgICBsID0gW2kgZm9yIGkgaW4geC5zb3VyY2UubGluZXMgaWYgaS5zdHJpcCgpXQorICAg
IGFzc2VydCBsZW4obCkgPT0gMQorCitkZWYgdGVzdF9nZXRzdGFydGluZ2Jsb2NrX211bHRpbGlu
ZSgpOgorICAgIGNsYXNzIEE6CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncyk6Cisg
ICAgICAgICAgICBmcmFtZSA9IHN5cy5fZ2V0ZnJhbWUoMSkKKyAgICAgICAgICAgIHNlbGYuc291
cmNlID0gcHkuY29kZS5GcmFtZShmcmFtZSkuc3RhdGVtZW50CisKKyAgICB4ID0gQSgneCcsCisg
ICAgICAgICAgJ3knIFwKKyAgICAgICAgICAsCisgICAgICAgICAgJ3onKQorCisgICAgbCA9IFtp
IGZvciBpIGluIHguc291cmNlLmxpbmVzIGlmIGkuc3RyaXAoKV0KKyAgICBhc3NlcnQgbGVuKGwp
ID09IDQKKworZGVmIHRlc3RfZ2V0bGluZV9maW5hbGx5KCk6CisgICAgZGVmIGMoKTogcGFzcwor
ICAgIGV4Y2luZm8gPSBweS50ZXN0LnJhaXNlcyhUeXBlRXJyb3IsICIiIgorICAgICAgICAgICB0
ZWFyZG93biA9IE5vbmUKKyAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGMoMSkKKyAg
ICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICBpZiB0ZWFyZG93bjoKKyAgICAgICAg
ICAgICAgICAgICAgdGVhcmRvd24oKQorICAgICIiIikKKyAgICBzb3VyY2UgPSBleGNpbmZvLnRy
YWNlYmFja1stMV0uc3RhdGVtZW50CisgICAgYXNzZXJ0IHN0cihzb3VyY2UpLnN0cmlwKCkgPT0g
J2MoMSknCisKK2RlZiB0ZXN0X2dldGZ1bmNzb3VyY2VfZHluYW1pYygpOgorICAgIHNvdXJjZSA9
ICIiIgorICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgorCisg
ICAgICAgIGRlZiBnKCk6IHBhc3MKKyAgICAiIiIKKyAgICBjbyA9IHB5LmNvZGUuY29tcGlsZShz
b3VyY2UpCisgICAgcHkuYnVpbHRpbi5leGVjXyhjbywgZ2xvYmFscygpKQorICAgIGFzc2VydCBz
dHIocHkuY29kZS5Tb3VyY2UoZikpLnN0cmlwKCkgPT0gJ2RlZiBmKCk6XG4gICAgcmFpc2UgVmFs
dWVFcnJvcicKKyAgICBhc3NlcnQgc3RyKHB5LmNvZGUuU291cmNlKGcpKS5zdHJpcCgpID09ICdk
ZWYgZygpOiBwYXNzJworCisKK2RlZiB0ZXN0X2dldGZ1bmNzb3VyY2Vfd2l0aF9tdWx0aW5lX3N0
cmluZygpOgorICAgIGRlZiBmKCk6CisgICAgICAgIGMgPSAnJyd3aGlsZSBUcnVlOgorICAgIHBh
c3MKKycnJworICAgIGFzc2VydCBzdHIocHkuY29kZS5Tb3VyY2UoZikpLnN0cmlwKCkgPT0gImRl
ZiBmKCk6XG4gICAgYyA9ICcnJ3doaWxlIFRydWU6XG4gICAgcGFzc1xuJycnIgorCisKK2RlZiB0
ZXN0X2RlaW5kZW50KCk6CisgICAgZnJvbSBweS5fY29kZS5zb3VyY2UgaW1wb3J0IGRlaW5kZW50
IGFzIGRlaW5kZW50CisgICAgYXNzZXJ0IGRlaW5kZW50KFsnXHRmb28nLCAnXHRiYXInLCBdKSA9
PSBbJ2ZvbycsICdiYXInXQorCisgICAgZGVmIGYoKToKKyAgICAgICAgYyA9ICcnJ3doaWxlIFRy
dWU6CisgICAgcGFzcworJycnCisgICAgaW1wb3J0IGluc3BlY3QKKyAgICBsaW5lcyA9IGRlaW5k
ZW50KGluc3BlY3QuZ2V0c291cmNlKGYpLnNwbGl0bGluZXMoKSkKKyAgICBhc3NlcnQgbGluZXMg
PT0gWyJkZWYgZigpOiIsICIgICAgYyA9ICcnJ3doaWxlIFRydWU6IiwgIiAgICBwYXNzIiwgIicn
JyJdCisKKyAgICBzb3VyY2UgPSAiIiIKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIGRl
ZiBnKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICIiIgorICAgIGxpbmVzID0gZGVpbmRl
bnQoc291cmNlLnNwbGl0bGluZXMoKSkKKyAgICBhc3NlcnQgbGluZXMgPT0gWycnLCAnZGVmIGYo
KTonLCAnICAgIGRlZiBnKCk6JywgJyAgICAgICAgcGFzcycsICcgICAgJ10KKworZGVmIHRlc3Rf
c291cmNlX29mX2NsYXNzX2F0X2VvZl93aXRob3V0X25ld2xpbmUodG1wZGlyKToKKyAgICAjIHRo
aXMgdGVzdCBmYWlscyBiZWNhdXNlIHRoZSBpbXBsaWNpdCBpbnNwZWN0LmdldHNvdXJjZShBKSBi
ZWxvdworICAgICMgZG9lcyBub3QgcmV0dXJuIHRoZSAieCA9IDEiIGxhc3QgbGluZS4KKyAgICBz
b3VyY2UgPSBweS5jb2RlLlNvdXJjZSgnJycKKyAgICAgICAgY2xhc3MgQShvYmplY3QpOgorICAg
ICAgICAgICAgZGVmIG1ldGhvZChzZWxmKToKKyAgICAgICAgICAgICAgICB4ID0gMQorICAgICcn
JykKKyAgICBwYXRoID0gdG1wZGlyLmpvaW4oImEucHkiKQorICAgIHBhdGgud3JpdGUoc291cmNl
KQorICAgIHMyID0gcHkuY29kZS5Tb3VyY2UodG1wZGlyLmpvaW4oImEucHkiKS5weWltcG9ydCgp
LkEpCisgICAgYXNzZXJ0IHN0cihzb3VyY2UpLnN0cmlwKCkgPT0gc3RyKHMyKS5zdHJpcCgpCisK
K2lmIFRydWU6CisgICAgZGVmIHgoKToKKyAgICAgICAgcGFzcworCitkZWYgdGVzdF9nZXRzb3Vy
Y2VfZmFsbGJhY2soKToKKyAgICBmcm9tIHB5Ll9jb2RlLnNvdXJjZSBpbXBvcnQgZ2V0c291cmNl
CisgICAgZXhwZWN0ZWQgPSAiIiJkZWYgeCgpOgorICAgIHBhc3MiIiIKKyAgICBzcmMgPSBnZXRz
b3VyY2UoeCkKKyAgICBhc3NlcnQgc3JjID09IGV4cGVjdGVkCisKK2RlZiB0ZXN0X2lkZW1fY29t
cGlsZV9hbmRfZ2V0c291cmNlKCk6CisgICAgZnJvbSBweS5fY29kZS5zb3VyY2UgaW1wb3J0IGdl
dHNvdXJjZQorICAgIGV4cGVjdGVkID0gImRlZiB4KCk6IHBhc3MiCisgICAgY28gPSBweS5jb2Rl
LmNvbXBpbGUoZXhwZWN0ZWQpCisgICAgc3JjID0gZ2V0c291cmNlKGNvKQorICAgIGFzc2VydCBz
cmMgPT0gZXhwZWN0ZWQKKworZGVmIHRlc3RfZmluZHNvdXJjZV9mYWxsYmFjaygpOgorICAgIGZy
b20gcHkuX2NvZGUuc291cmNlIGltcG9ydCBmaW5kc291cmNlCisgICAgc3JjLCBsaW5lbm8gPSBm
aW5kc291cmNlKHgpCisgICAgYXNzZXJ0ICd0ZXN0X2ZpbmRzb3VyY2Vfc2ltcGxlJyBpbiBzdHIo
c3JjKQorICAgIGFzc2VydCBzcmNbbGluZW5vXSA9PSAnICAgIGRlZiB4KCk6JworCitkZWYgdGVz
dF9maW5kc291cmNlKCk6CisgICAgZnJvbSBweS5fY29kZS5zb3VyY2UgaW1wb3J0IGZpbmRzb3Vy
Y2UKKyAgICBjbyA9IHB5LmNvZGUuY29tcGlsZSgiIiJpZiAxOgorICAgIGRlZiB4KCk6CisgICAg
ICAgIHBhc3MKKyIiIikKKworICAgIHNyYywgbGluZW5vID0gZmluZHNvdXJjZShjbykKKyAgICBh
c3NlcnQgJ2lmIDE6JyBpbiBzdHIoc3JjKQorCisgICAgZCA9IHt9CisgICAgZXZhbChjbywgZCkK
KyAgICBzcmMsIGxpbmVubyA9IGZpbmRzb3VyY2UoZFsneCddKQorICAgIGFzc2VydCAnaWYgMTon
IGluIHN0cihzcmMpCisgICAgYXNzZXJ0IHNyY1tsaW5lbm9dID09ICIgICAgZGVmIHgoKToiCisK
KworZGVmIHRlc3RfZ2V0ZnNsaW5lbm8oKToKKyAgICBmcm9tIHB5LmNvZGUgaW1wb3J0IGdldGZz
bGluZW5vCisKKyAgICBkZWYgZih4KToKKyAgICAgICAgcGFzcworCisgICAgZnNwYXRoLCBsaW5l
bm8gPSBnZXRmc2xpbmVubyhmKQorCisgICAgYXNzZXJ0IGZzcGF0aC5iYXNlbmFtZSA9PSAidGVz
dF9zb3VyY2UucHkiCisgICAgYXNzZXJ0IGxpbmVubyA9PSBweS5jb2RlLmdldHJhd2NvZGUoZiku
Y29fZmlyc3RsaW5lbm8tMSAjIHNlZSBmaW5kc291cmNlCisKKyAgICBjbGFzcyBBKG9iamVjdCk6
CisgICAgICAgIHBhc3MKKworICAgIGZzcGF0aCwgbGluZW5vID0gZ2V0ZnNsaW5lbm8oQSkKKwor
ICAgIF8sIEFfbGluZW5vID0gaW5zcGVjdC5maW5kc291cmNlKEEpCisgICAgYXNzZXJ0IGZzcGF0
aC5iYXNlbmFtZSA9PSAidGVzdF9zb3VyY2UucHkiCisgICAgYXNzZXJ0IGxpbmVubyA9PSBBX2xp
bmVubworCisgICAgYXNzZXJ0IGdldGZzbGluZW5vKDMpID09ICgiIiwgLTEpCisgICAgY2xhc3Mg
QjoKKyAgICAgICAgcGFzcworICAgIEIuX19uYW1lX18gPSAiQjIiCisgICAgYXNzZXJ0IGdldGZz
bGluZW5vKEIpWzFdID09IC0xCisKK2RlZiB0ZXN0X2NvZGVfb2Zfb2JqZWN0X2luc3RhbmNlX3dp
dGhfY2FsbCgpOgorICAgIGNsYXNzIEE6CisgICAgICAgIHBhc3MKKyAgICBweS50ZXN0LnJhaXNl
cyhUeXBlRXJyb3IsIGxhbWJkYTogcHkuY29kZS5Tb3VyY2UoQSgpKSkKKyAgICBjbGFzcyBXaXRo
Q2FsbDoKKyAgICAgICAgZGVmIF9fY2FsbF9fKHNlbGYpOgorICAgICAgICAgICAgcGFzcworCisg
ICAgY29kZSA9IHB5LmNvZGUuQ29kZShXaXRoQ2FsbCgpKQorICAgIGFzc2VydCAncGFzcycgaW4g
c3RyKGNvZGUuc291cmNlKCkpCisKKyAgICBjbGFzcyBIZWxsbyhvYmplY3QpOgorICAgICAgICBk
ZWYgX19jYWxsX18oc2VsZik6CisgICAgICAgICAgICBwYXNzCisgICAgcHkudGVzdC5yYWlzZXMo
VHlwZUVycm9yLCBsYW1iZGE6IHB5LmNvZGUuQ29kZShIZWxsbykpCisKKworZGVmIGdldHN0YXRl
bWVudChsaW5lbm8sIHNvdXJjZSk6CisgICAgZnJvbSBweS5fY29kZS5zb3VyY2UgaW1wb3J0IGdl
dHN0YXRlbWVudHJhbmdlX2FzdAorICAgIHNvdXJjZSA9IHB5LmNvZGUuU291cmNlKHNvdXJjZSwg
ZGVpbmRlbnQ9RmFsc2UpCisgICAgYXN0LCBzdGFydCwgZW5kID0gZ2V0c3RhdGVtZW50cmFuZ2Vf
YXN0KGxpbmVubywgc291cmNlKQorICAgIHJldHVybiBzb3VyY2Vbc3RhcnQ6ZW5kXQorCitkZWYg
dGVzdF9vbmVsaW5lKCk6CisgICAgc291cmNlID0gZ2V0c3RhdGVtZW50KDAsICJyYWlzZSBWYWx1
ZUVycm9yIikKKyAgICBhc3NlcnQgc3RyKHNvdXJjZSkgPT0gInJhaXNlIFZhbHVlRXJyb3IiCisK
K2RlZiB0ZXN0X2NvbW1lbnRfYW5kX25vX25ld2xpbmVfYXRfZW5kKCk6CisgICAgZnJvbSBweS5f
Y29kZS5zb3VyY2UgaW1wb3J0IGdldHN0YXRlbWVudHJhbmdlX2FzdAorICAgIHNvdXJjZSA9IFNv
dXJjZShbJ2RlZiB0ZXN0X2Jhc2ljX2NvbXBsZXgoKTonLAorICAgICAgICAgICAgICAgICAgICAg
JyAgICBhc3NlcnQgMSA9PSAyJywKKyAgICAgICAgICAgICAgICAgICAgICcjIHZpbTogZmlsZXR5
cGU9cHlvcGVuY2w6ZmRtPW1hcmtlciddKQorICAgIGFzdCwgc3RhcnQsIGVuZCA9IGdldHN0YXRl
bWVudHJhbmdlX2FzdCgxLCBzb3VyY2UpCisgICAgYXNzZXJ0IGVuZCA9PSAyCisKK2RlZiB0ZXN0
X29uZWxpbmVfYW5kX2NvbW1lbnQoKToKKyAgICBzb3VyY2UgPSBnZXRzdGF0ZW1lbnQoMCwgInJh
aXNlIFZhbHVlRXJyb3JcbiNoZWxsbyIpCisgICAgYXNzZXJ0IHN0cihzb3VyY2UpID09ICJyYWlz
ZSBWYWx1ZUVycm9yIgorCitkZWYgdGVzdF9jb21tZW50cygpOgorICAgIHNvdXJjZSA9ICcnJ2Rl
ZiB0ZXN0KCk6CisgICAgImNvbW1lbnQgMSIKKyAgICB4ID0gMQorICAgICAgIyBjb21tZW50IDIK
KyAgICAjIGNvbW1lbnQgMworCisgICAgYXNzZXJ0IEZhbHNlCisKKyIiIgorY29tbWVudCA0Cisi
IiIKKycnJworICAgIGZvciBsaW5lIGluIHJhbmdlKDIsNik6CisgICAgICAgIGFzc2VydCBzdHIo
Z2V0c3RhdGVtZW50KGxpbmUsIHNvdXJjZSkpID09ICcgICAgeCA9IDEnCisgICAgZm9yIGxpbmUg
aW4gcmFuZ2UoNiwxMCk6CisgICAgICAgIGFzc2VydCBzdHIoZ2V0c3RhdGVtZW50KGxpbmUsIHNv
dXJjZSkpID09ICcgICAgYXNzZXJ0IEZhbHNlJworICAgIGFzc2VydCBzdHIoZ2V0c3RhdGVtZW50
KDEwLCBzb3VyY2UpKSA9PSAnIiIiJworCitkZWYgdGVzdF9jb21tZW50X2luX3N0YXRlbWVudCgp
OgorICAgIHNvdXJjZSA9ICcnJ3Rlc3QoZm9vPTEsCisgICAgIyBjb21tZW50IDEKKyAgICBiYXI9
MikKKycnJworICAgIGZvciBsaW5lIGluIHJhbmdlKDEsMyk6CisgICAgICAgIGFzc2VydCBzdHIo
Z2V0c3RhdGVtZW50KGxpbmUsIHNvdXJjZSkpID09IFwKKyAgICAgICAgICAgICAgICd0ZXN0KGZv
bz0xLFxuICAgICMgY29tbWVudCAxXG4gICAgYmFyPTIpJworCitkZWYgdGVzdF9zaW5nbGVfbGlu
ZV9lbHNlKCk6CisgICAgc291cmNlID0gZ2V0c3RhdGVtZW50KDEsICJpZiBGYWxzZTogMlxuZWxz
ZTogMyIpCisgICAgYXNzZXJ0IHN0cihzb3VyY2UpID09ICJlbHNlOiAzIgorCitkZWYgdGVzdF9z
aW5nbGVfbGluZV9maW5hbGx5KCk6CisgICAgc291cmNlID0gZ2V0c3RhdGVtZW50KDEsICJ0cnk6
IDFcbmZpbmFsbHk6IDMiKQorICAgIGFzc2VydCBzdHIoc291cmNlKSA9PSAiZmluYWxseTogMyIK
KworZGVmIHRlc3RfaXNzdWU1NSgpOgorICAgIHNvdXJjZSA9ICgnZGVmIHJvdW5kX3RyaXAoZGlu
cCk6XG4gIGFzc2VydCAxID09IGRpbnBcbicKKyAgICAgICAgICAgICAgJ2RlZiB0ZXN0X3J0KCk6
XG4gIHJvdW5kX3RyaXAoIiIiXG4iIiIpXG4nKQorICAgIHMgPSBnZXRzdGF0ZW1lbnQoMywgc291
cmNlKQorICAgIGFzc2VydCBzdHIocykgPT0gJyAgcm91bmRfdHJpcCgiIiJcbiIiIiknCisKKwor
ZGVmIFhYWHRlc3RfbXVsdGlsaW5lKCk6CisgICAgc291cmNlID0gZ2V0c3RhdGVtZW50KDAsICIi
IlwKK3JhaXNlIFZhbHVlRXJyb3IoCisgICAgMjMKKykKK3ggPSAzCisiIiIpCisgICAgYXNzZXJ0
IHN0cihzb3VyY2UpID09ICJyYWlzZSBWYWx1ZUVycm9yKFxuICAgIDIzXG4pIgorCitjbGFzcyBU
ZXN0VHJ5OgorICAgIHB5dGVzdG1hcmsgPSBhc3Rvbmx5CisgICAgc291cmNlID0gIiIiXAordHJ5
OgorICAgIHJhaXNlIFZhbHVlRXJyb3IKK2V4Y2VwdCBTb21ldGhpbmc6CisgICAgcmFpc2UgSW5k
ZXhFcnJvcigxKQorZWxzZToKKyAgICByYWlzZSBLZXlFcnJvcigpCisiIiIKKworICAgIGRlZiB0
ZXN0X2JvZHkoc2VsZik6CisgICAgICAgIHNvdXJjZSA9IGdldHN0YXRlbWVudCgxLCBzZWxmLnNv
dXJjZSkKKyAgICAgICAgYXNzZXJ0IHN0cihzb3VyY2UpID09ICIgICAgcmFpc2UgVmFsdWVFcnJv
ciIKKworICAgIGRlZiB0ZXN0X2V4Y2VwdF9saW5lKHNlbGYpOgorICAgICAgICBzb3VyY2UgPSBn
ZXRzdGF0ZW1lbnQoMiwgc2VsZi5zb3VyY2UpCisgICAgICAgIGFzc2VydCBzdHIoc291cmNlKSA9
PSAiZXhjZXB0IFNvbWV0aGluZzoiCisKKyAgICBkZWYgdGVzdF9leGNlcHRfYm9keShzZWxmKToK
KyAgICAgICAgc291cmNlID0gZ2V0c3RhdGVtZW50KDMsIHNlbGYuc291cmNlKQorICAgICAgICBh
c3NlcnQgc3RyKHNvdXJjZSkgPT0gIiAgICByYWlzZSBJbmRleEVycm9yKDEpIgorCisgICAgZGVm
IHRlc3RfZWxzZShzZWxmKToKKyAgICAgICAgc291cmNlID0gZ2V0c3RhdGVtZW50KDUsIHNlbGYu
c291cmNlKQorICAgICAgICBhc3NlcnQgc3RyKHNvdXJjZSkgPT0gIiAgICByYWlzZSBLZXlFcnJv
cigpIgorCitjbGFzcyBUZXN0VHJ5RmluYWxseToKKyAgICBzb3VyY2UgPSAiIiJcCit0cnk6Cisg
ICAgcmFpc2UgVmFsdWVFcnJvcgorZmluYWxseToKKyAgICByYWlzZSBJbmRleEVycm9yKDEpCisi
IiIKKworICAgIGRlZiB0ZXN0X2JvZHkoc2VsZik6CisgICAgICAgIHNvdXJjZSA9IGdldHN0YXRl
bWVudCgxLCBzZWxmLnNvdXJjZSkKKyAgICAgICAgYXNzZXJ0IHN0cihzb3VyY2UpID09ICIgICAg
cmFpc2UgVmFsdWVFcnJvciIKKworICAgIGRlZiB0ZXN0X2ZpbmFsbHkoc2VsZik6CisgICAgICAg
IHNvdXJjZSA9IGdldHN0YXRlbWVudCgzLCBzZWxmLnNvdXJjZSkKKyAgICAgICAgYXNzZXJ0IHN0
cihzb3VyY2UpID09ICIgICAgcmFpc2UgSW5kZXhFcnJvcigxKSIKKworCisKK2NsYXNzIFRlc3RJ
ZjoKKyAgICBweXRlc3RtYXJrID0gYXN0b25seQorICAgIHNvdXJjZSA9ICIiIlwKK2lmIDE6Cisg
ICAgeSA9IDMKK2VsaWYgRmFsc2U6CisgICAgeSA9IDUKK2Vsc2U6CisgICAgeSA9IDcKKyIiIgor
CisgICAgZGVmIHRlc3RfYm9keShzZWxmKToKKyAgICAgICAgc291cmNlID0gZ2V0c3RhdGVtZW50
KDEsIHNlbGYuc291cmNlKQorICAgICAgICBhc3NlcnQgc3RyKHNvdXJjZSkgPT0gIiAgICB5ID0g
MyIKKworICAgIGRlZiB0ZXN0X2VsaWZfY2xhdXNlKHNlbGYpOgorICAgICAgICBzb3VyY2UgPSBn
ZXRzdGF0ZW1lbnQoMiwgc2VsZi5zb3VyY2UpCisgICAgICAgIGFzc2VydCBzdHIoc291cmNlKSA9
PSAiZWxpZiBGYWxzZToiCisKKyAgICBkZWYgdGVzdF9lbGlmKHNlbGYpOgorICAgICAgICBzb3Vy
Y2UgPSBnZXRzdGF0ZW1lbnQoMywgc2VsZi5zb3VyY2UpCisgICAgICAgIGFzc2VydCBzdHIoc291
cmNlKSA9PSAiICAgIHkgPSA1IgorCisgICAgZGVmIHRlc3RfZWxzZShzZWxmKToKKyAgICAgICAg
c291cmNlID0gZ2V0c3RhdGVtZW50KDUsIHNlbGYuc291cmNlKQorICAgICAgICBhc3NlcnQgc3Ry
KHNvdXJjZSkgPT0gIiAgICB5ID0gNyIKKworZGVmIHRlc3Rfc2VtaWNvbG9uKCk6CisgICAgcyA9
ICIiIlwKK2hlbGxvIDsgcHl0ZXN0LnNraXAoKQorIiIiCisgICAgc291cmNlID0gZ2V0c3RhdGVt
ZW50KDAsIHMpCisgICAgYXNzZXJ0IHN0cihzb3VyY2UpID09IHMuc3RyaXAoKQorCitkZWYgdGVz
dF9kZWZfb25saW5lKCk6CisgICAgcyA9ICIiIlwKK2RlZiBmdW5jKCk6IHJhaXNlIFZhbHVlRXJy
b3IoNDIpCisKK2RlZiBzb21ldGhpbmcoKToKKyAgICBwYXNzCisiIiIKKyAgICBzb3VyY2UgPSBn
ZXRzdGF0ZW1lbnQoMCwgcykKKyAgICBhc3NlcnQgc3RyKHNvdXJjZSkgPT0gImRlZiBmdW5jKCk6
IHJhaXNlIFZhbHVlRXJyb3IoNDIpIgorCitkZWYgWFhYX3Rlc3RfZXhwcmVzc2lvbl9tdWx0aWxp
bmUoKToKKyAgICBzb3VyY2UgPSAiIiJcCitzb21ldGhpbmcKKycnJworJycnIiIiCisgICAgcmVz
dWx0ID0gZ2V0c3RhdGVtZW50KDEsIHNvdXJjZSkKKyAgICBhc3NlcnQgc3RyKHJlc3VsdCkgPT0g
IicnJ1xuJycnIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvY29kZS93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvdGVzdGluZy9jb2RlL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5
ZjViMzliOTNlOTY3ZjRhMTdlNWI1M2U1ZWYzM2VkMjg1MzUyOWUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3Rlc3RpbmcvY29kZS93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDIwIEBACitU
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgor
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBz
Oi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBm
aWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvY29kZS90ZXN0X2Fzc2VydGlvbi5weQorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkv
dGVzdGluZy9jb2RlL3Rlc3RfY29kZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9jb2RlL3Rlc3RfZXhj
aW5mby5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9jb2RlL3Rlc3Rfc291cmNlLnB5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3Rlc3RpbmcvY29uZnRlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvY29uZnRlc3Qu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGY5NTZiM2RkMjUzZDhiMDAzZmQxZmJjZjkyM2E2ODI2YjhmMjM0Zgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9jb25mdGVzdC5weQpAQCAtMCwwICsx
LDMgQEAKKworcHl0ZXN0X3BsdWdpbnMgPSAicHl0ZXN0ZXIiLAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L3Rlc3RpbmcvaW9fL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2lvXy9fX2luaXRf
Xy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43OTJkNjAwNTQ4OWViZWU2MmNkZTAyMDY2ZjE5YzU1MjFlNjIwNDUx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2lvXy9fX2luaXRfXy5weQpAQCAt
MCwwICsxIEBACisjCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvaW9fL3Rlc3RfY2FwdHVy
ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvdGVzdGluZy9pb18vdGVzdF9jYXB0dXJlLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1
ZmVkZDBhYmM2MjlkYzgwNjBhNzZhZWY3YjRiZjlmNjQ4OWVjMWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3Rlc3RpbmcvaW9fL3Rlc3RfY2FwdHVyZS5weQpAQCAtMCwwICsxLDUwMSBAQAor
ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB3aXRoX3N0YXRlbWVudAorCitpbXBvcnQgb3MsIHN5cwor
aW1wb3J0IHB5CisKK25lZWRzZHVwID0gcHkudGVzdC5tYXJrLnNraXBpZigibm90IGhhc2F0dHIo
b3MsICdkdXAnKSIpCisKK2Zyb20gcHkuYnVpbHRpbiBpbXBvcnQgcHJpbnRfCisKK2lmIHN5cy52
ZXJzaW9uX2luZm8gPj0gKDMsMCk6CisgICAgZGVmIHRvYnl0ZXMob2JqKToKKyAgICAgICAgaWYg
aXNpbnN0YW5jZShvYmosIHN0cik6CisgICAgICAgICAgICBvYmogPSBvYmouZW5jb2RlKCdVVEYt
OCcpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG9iaiwgYnl0ZXMpCisgICAgICAgIHJldHVy
biBvYmoKKyAgICBkZWYgdG90ZXh0KG9iaik6CisgICAgICAgIGlmIGlzaW5zdGFuY2Uob2JqLCBi
eXRlcyk6CisgICAgICAgICAgICBvYmogPSBzdHIob2JqLCAnVVRGLTgnKQorICAgICAgICBhc3Nl
cnQgaXNpbnN0YW5jZShvYmosIHN0cikKKyAgICAgICAgcmV0dXJuIG9iagorZWxzZToKKyAgICBk
ZWYgdG9ieXRlcyhvYmopOgorICAgICAgICBpZiBpc2luc3RhbmNlKG9iaiwgdW5pY29kZSk6Cisg
ICAgICAgICAgICBvYmogPSBvYmouZW5jb2RlKCdVVEYtOCcpCisgICAgICAgIGFzc2VydCBpc2lu
c3RhbmNlKG9iaiwgc3RyKQorICAgICAgICByZXR1cm4gb2JqCisgICAgZGVmIHRvdGV4dChvYmop
OgorICAgICAgICBpZiBpc2luc3RhbmNlKG9iaiwgc3RyKToKKyAgICAgICAgICAgIG9iaiA9IHVu
aWNvZGUob2JqLCAnVVRGLTgnKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShvYmosIHVuaWNv
ZGUpCisgICAgICAgIHJldHVybiBvYmoKKworZGVmIG9zd3JpdGVieXRlcyhmZCwgb2JqKToKKyAg
ICBvcy53cml0ZShmZCwgdG9ieXRlcyhvYmopKQorCitjbGFzcyBUZXN0VGV4dElPOgorICAgIGRl
ZiB0ZXN0X3RleHQoc2VsZik6CisgICAgICAgIGYgPSBweS5pby5UZXh0SU8oKQorICAgICAgICBm
LndyaXRlKCJoZWxsbyIpCisgICAgICAgIHMgPSBmLmdldHZhbHVlKCkKKyAgICAgICAgYXNzZXJ0
IHMgPT0gImhlbGxvIgorICAgICAgICBmLmNsb3NlKCkKKworICAgIGRlZiB0ZXN0X3VuaWNvZGVf
YW5kX3N0cl9taXh0dXJlKHNlbGYpOgorICAgICAgICBmID0gcHkuaW8uVGV4dElPKCkKKyAgICAg
ICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywwKToKKyAgICAgICAgICAgIGYud3JpdGUoIlx1
MDBmNiIpCisgICAgICAgICAgICBweS50ZXN0LnJhaXNlcyhUeXBlRXJyb3IsICJmLndyaXRlKGJ5
dGVzKCdoZWxsbycsICdVVEYtOCcpKSIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmLndy
aXRlKHVuaWNvZGUoIlx1MDBmNiIsICdVVEYtOCcpKQorICAgICAgICAgICAgZi53cml0ZSgiaGVs
bG8iKSAjIGJ5dGVzCisgICAgICAgICAgICBzID0gZi5nZXR2YWx1ZSgpCisgICAgICAgICAgICBm
LmNsb3NlKCkKKyAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHMsIHVuaWNvZGUpCisKK2Rl
ZiB0ZXN0X2J5dGVzX2lvKCk6CisgICAgZiA9IHB5LmlvLkJ5dGVzSU8oKQorICAgIGYud3JpdGUo
dG9ieXRlcygiaGVsbG8iKSkKKyAgICBweS50ZXN0LnJhaXNlcyhUeXBlRXJyb3IsICJmLndyaXRl
KHRvdGV4dCgnaGVsbG8nKSkiKQorICAgIHMgPSBmLmdldHZhbHVlKCkKKyAgICBhc3NlcnQgcyA9
PSB0b2J5dGVzKCJoZWxsbyIpCisKK2RlZiB0ZXN0X2RvbnRyZWFkZnJvbWlucHV0KCk6CisgICAg
ZnJvbSBweS5faW8uY2FwdHVyZSBpbXBvcnQgRG9udFJlYWRGcm9tSW5wdXQKKyAgICBmID0gRG9u
dFJlYWRGcm9tSW5wdXQoKQorICAgIGFzc2VydCBub3QgZi5pc2F0dHkoKQorICAgIHB5LnRlc3Qu
cmFpc2VzKElPRXJyb3IsIGYucmVhZCkKKyAgICBweS50ZXN0LnJhaXNlcyhJT0Vycm9yLCBmLnJl
YWRsaW5lcykKKyAgICBweS50ZXN0LnJhaXNlcyhJT0Vycm9yLCBpdGVyLCBmKQorICAgIHB5LnRl
c3QucmFpc2VzKFZhbHVlRXJyb3IsIGYuZmlsZW5vKQorICAgIGYuY2xvc2UoKSAjIGp1c3QgZm9y
IGNvbXBsZXRlbmVzcworCitkZWYgcHl0ZXN0X2Z1bmNhcmdfX3RtcGZpbGUocmVxdWVzdCk6Cisg
ICAgdGVzdGRpciA9IHJlcXVlc3QuZ2V0ZnVuY2FyZ3ZhbHVlKCJ0ZXN0ZGlyIikKKyAgICBmID0g
dGVzdGRpci5tYWtlcHlmaWxlKCIiKS5vcGVuKCd3YisnKQorICAgIHJlcXVlc3QuYWRkZmluYWxp
emVyKGYuY2xvc2UpCisgICAgcmV0dXJuIGYKKworQG5lZWRzZHVwCitkZWYgdGVzdF9kdXBmaWxl
KHRtcGZpbGUpOgorICAgIGZsaXN0ID0gW10KKyAgICBmb3IgaSBpbiByYW5nZSg1KToKKyAgICAg
ICAgbmYgPSBweS5pby5kdXBmaWxlKHRtcGZpbGUsIGVuY29kaW5nPSJ1dGYtOCIpCisgICAgICAg
IGFzc2VydCBuZiAhPSB0bXBmaWxlCisgICAgICAgIGFzc2VydCBuZi5maWxlbm8oKSAhPSB0bXBm
aWxlLmZpbGVubygpCisgICAgICAgIGFzc2VydCBuZiBub3QgaW4gZmxpc3QKKyAgICAgICAgcHJp
bnRfKGksIGVuZD0iIiwgZmlsZT1uZikKKyAgICAgICAgZmxpc3QuYXBwZW5kKG5mKQorICAgIGZv
ciBpIGluIHJhbmdlKDUpOgorICAgICAgICBmID0gZmxpc3RbaV0KKyAgICAgICAgZi5jbG9zZSgp
CisgICAgdG1wZmlsZS5zZWVrKDApCisgICAgcyA9IHRtcGZpbGUucmVhZCgpCisgICAgYXNzZXJ0
ICIwMTIzNCIgaW4gcmVwcihzKQorICAgIHRtcGZpbGUuY2xvc2UoKQorCitkZWYgdGVzdF9kdXBm
aWxlX25vX21vZGUoKToKKyAgICAiIiIKKyAgICBkdXBmaWxlIHNob3VsZCB0cmFwIGFuIEF0dHJp
YnV0ZUVycm9yIGFuZCByZXR1cm4gZiBpZiBubyBtb2RlIGlzIHN1cHBsaWVkLgorICAgICIiIgor
ICAgIGNsYXNzIFNvbWVGaWxlV3JhcHBlcihvYmplY3QpOgorICAgICAgICAiQW4gb2JqZWN0IHdp
dGggYSBmaWxlbm8gbWV0aG9kIGJ1dCBubyBtb2RlIGF0dHJpYnV0ZSIKKyAgICAgICAgZGVmIGZp
bGVubyhzZWxmKToKKyAgICAgICAgICAgIHJldHVybiAxCisgICAgdG1wZmlsZSA9IFNvbWVGaWxl
V3JhcHBlcigpCisgICAgYXNzZXJ0IHB5LmlvLmR1cGZpbGUodG1wZmlsZSkgaXMgdG1wZmlsZQor
ICAgIHdpdGggcHkudGVzdC5yYWlzZXMoQXR0cmlidXRlRXJyb3IpOgorICAgICAgICBweS5pby5k
dXBmaWxlKHRtcGZpbGUsIHJhaXNpbmc9VHJ1ZSkKKworZGVmIGxzb2ZfY2hlY2soZnVuYyk6Cisg
ICAgcGlkID0gb3MuZ2V0cGlkKCkKKyAgICB0cnk6CisgICAgICAgIG91dCA9IHB5LnByb2Nlc3Mu
Y21kZXhlYygibHNvZiAtcCAlZCIgJSBwaWQpCisgICAgZXhjZXB0IHB5LnByb2Nlc3MuY21kZXhl
Yy5FcnJvcjoKKyAgICAgICAgcHkudGVzdC5za2lwKCJjb3VsZCBub3QgcnVuICdsc29mJyIpCisg
ICAgZnVuYygpCisgICAgb3V0MiA9IHB5LnByb2Nlc3MuY21kZXhlYygibHNvZiAtcCAlZCIgJSBw
aWQpCisgICAgbGVuMSA9IGxlbihbeCBmb3IgeCBpbiBvdXQuc3BsaXQoIlxuIikgaWYgIlJFRyIg
aW4geF0pCisgICAgbGVuMiA9IGxlbihbeCBmb3IgeCBpbiBvdXQyLnNwbGl0KCJcbiIpIGlmICJS
RUciIGluIHhdKQorICAgIGFzc2VydCBsZW4yIDwgbGVuMSArIDMsIG91dDIKKworY2xhc3MgVGVz
dEZEQ2FwdHVyZToKKyAgICBweXRlc3RtYXJrID0gbmVlZHNkdXAKKworICAgIGRlZiB0ZXN0X25v
dF9ub3coc2VsZiwgdG1wZmlsZSk6CisgICAgICAgIGZkID0gdG1wZmlsZS5maWxlbm8oKQorICAg
ICAgICBjYXAgPSBweS5pby5GRENhcHR1cmUoZmQsIG5vdz1GYWxzZSkKKyAgICAgICAgZGF0YSA9
IHRvYnl0ZXMoImhlbGxvIikKKyAgICAgICAgb3Mud3JpdGUoZmQsIGRhdGEpCisgICAgICAgIGYg
PSBjYXAuZG9uZSgpCisgICAgICAgIHMgPSBmLnJlYWQoKQorICAgICAgICBhc3NlcnQgbm90IHMK
KyAgICAgICAgY2FwID0gcHkuaW8uRkRDYXB0dXJlKGZkLCBub3c9RmFsc2UpCisgICAgICAgIGNh
cC5zdGFydCgpCisgICAgICAgIG9zLndyaXRlKGZkLCBkYXRhKQorICAgICAgICBmID0gY2FwLmRv
bmUoKQorICAgICAgICBzID0gZi5yZWFkKCkKKyAgICAgICAgYXNzZXJ0IHMgPT0gImhlbGxvIgor
CisgICAgZGVmIHRlc3Rfc2ltcGxlKHNlbGYsIHRtcGZpbGUpOgorICAgICAgICBmZCA9IHRtcGZp
bGUuZmlsZW5vKCkKKyAgICAgICAgY2FwID0gcHkuaW8uRkRDYXB0dXJlKGZkKQorICAgICAgICBk
YXRhID0gdG9ieXRlcygiaGVsbG8iKQorICAgICAgICBvcy53cml0ZShmZCwgZGF0YSkKKyAgICAg
ICAgZiA9IGNhcC5kb25lKCkKKyAgICAgICAgcyA9IGYucmVhZCgpCisgICAgICAgIGFzc2VydCBz
ID09ICJoZWxsbyIKKyAgICAgICAgZi5jbG9zZSgpCisKKyAgICBkZWYgdGVzdF9zaW1wbGVfbWFu
eShzZWxmLCB0bXBmaWxlKToKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMTApOgorICAgICAgICAg
ICAgc2VsZi50ZXN0X3NpbXBsZSh0bXBmaWxlKQorCisgICAgZGVmIHRlc3Rfc2ltcGxlX21hbnlf
Y2hlY2tfb3Blbl9maWxlcyhzZWxmLCB0bXBmaWxlKToKKyAgICAgICAgbHNvZl9jaGVjayhsYW1i
ZGE6IHNlbGYudGVzdF9zaW1wbGVfbWFueSh0bXBmaWxlKSkKKworICAgIGRlZiB0ZXN0X3NpbXBs
ZV9mYWlsX3NlY29uZF9zdGFydChzZWxmLCB0bXBmaWxlKToKKyAgICAgICAgZmQgPSB0bXBmaWxl
LmZpbGVubygpCisgICAgICAgIGNhcCA9IHB5LmlvLkZEQ2FwdHVyZShmZCkKKyAgICAgICAgZiA9
IGNhcC5kb25lKCkKKyAgICAgICAgcHkudGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgY2FwLnN0YXJ0
KQorICAgICAgICBmLmNsb3NlKCkKKworICAgIGRlZiB0ZXN0X3N0ZGVycihzZWxmKToKKyAgICAg
ICAgY2FwID0gcHkuaW8uRkRDYXB0dXJlKDIsIHBhdGNoc3lzPVRydWUpCisgICAgICAgIHByaW50
XygiaGVsbG8iLCBmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgIGYgPSBjYXAuZG9uZSgpCisgICAg
ICAgIHMgPSBmLnJlYWQoKQorICAgICAgICBhc3NlcnQgcyA9PSAiaGVsbG9cbiIKKworICAgIGRl
ZiB0ZXN0X3N0ZGluKHNlbGYsIHRtcGZpbGUpOgorICAgICAgICB0bXBmaWxlLndyaXRlKHRvYnl0
ZXMoIjMiKSkKKyAgICAgICAgdG1wZmlsZS5zZWVrKDApCisgICAgICAgIGNhcCA9IHB5LmlvLkZE
Q2FwdHVyZSgwLCB0bXBmaWxlPXRtcGZpbGUpCisgICAgICAgICMgY2hlY2sgd2l0aCBvcy5yZWFk
KCkgZGlyZWN0bHkgaW5zdGVhZCBvZiByYXdfaW5wdXQoKSwgYmVjYXVzZQorICAgICAgICAjIHN5
cy5zdGRpbiBpdHNlbGYgbWF5IGJlIHJlZGlyZWN0ZWQgKGFzIHB5LnRlc3Qgbm93IGRvZXMgYnkg
ZGVmYXVsdCkKKyAgICAgICAgeCA9IG9zLnJlYWQoMCwgMTAwKS5zdHJpcCgpCisgICAgICAgIGYg
PSBjYXAuZG9uZSgpCisgICAgICAgIGFzc2VydCB4ID09IHRvYnl0ZXMoIjMiKQorCisgICAgZGVm
IHRlc3Rfd3JpdGVvcmcoc2VsZiwgdG1wZmlsZSk6CisgICAgICAgIGRhdGExLCBkYXRhMiA9IHRv
Ynl0ZXMoImZvbyIpLCB0b2J5dGVzKCJiYXIiKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBj
YXAgPSBweS5pby5GRENhcHR1cmUodG1wZmlsZS5maWxlbm8oKSkKKyAgICAgICAgICAgIHRtcGZp
bGUud3JpdGUoZGF0YTEpCisgICAgICAgICAgICBjYXAud3JpdGVvcmcoZGF0YTIpCisgICAgICAg
IGZpbmFsbHk6CisgICAgICAgICAgICB0bXBmaWxlLmNsb3NlKCkKKyAgICAgICAgZiA9IGNhcC5k
b25lKCkKKyAgICAgICAgc2NhcCA9IGYucmVhZCgpCisgICAgICAgIGFzc2VydCBzY2FwID09IHRv
dGV4dChkYXRhMSkKKyAgICAgICAgc3RtcCA9IG9wZW4odG1wZmlsZS5uYW1lLCAncmInKS5yZWFk
KCkKKyAgICAgICAgYXNzZXJ0IHN0bXAgPT0gZGF0YTIKKworCitjbGFzcyBUZXN0U3RkQ2FwdHVy
ZToKKyAgICBkZWYgZ2V0Y2FwdHVyZShzZWxmLCAqKmt3KToKKyAgICAgICAgcmV0dXJuIHB5Lmlv
LlN0ZENhcHR1cmUoKiprdykKKworICAgIGRlZiB0ZXN0X2NhcHR1cmluZ19kb25lX3NpbXBsZShz
ZWxmKToKKyAgICAgICAgY2FwID0gc2VsZi5nZXRjYXB0dXJlKCkKKyAgICAgICAgc3lzLnN0ZG91
dC53cml0ZSgiaGVsbG8iKQorICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJ3b3JsZCIpCisgICAg
ICAgIG91dGZpbGUsIGVycmZpbGUgPSBjYXAuZG9uZSgpCisgICAgICAgIHMgPSBvdXRmaWxlLnJl
YWQoKQorICAgICAgICBhc3NlcnQgcyA9PSAiaGVsbG8iCisgICAgICAgIHMgPSBlcnJmaWxlLnJl
YWQoKQorICAgICAgICBhc3NlcnQgcyA9PSAid29ybGQiCisKKyAgICBkZWYgdGVzdF9jYXB0dXJp
bmdfcmVzZXRfc2ltcGxlKHNlbGYpOgorICAgICAgICBjYXAgPSBzZWxmLmdldGNhcHR1cmUoKQor
ICAgICAgICBwcmludCgiaGVsbG8gd29ybGQiKQorICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJo
ZWxsbyBlcnJvclxuIikKKyAgICAgICAgb3V0LCBlcnIgPSBjYXAucmVzZXQoKQorICAgICAgICBh
c3NlcnQgb3V0ID09ICJoZWxsbyB3b3JsZFxuIgorICAgICAgICBhc3NlcnQgZXJyID09ICJoZWxs
byBlcnJvclxuIgorCisgICAgZGVmIHRlc3RfY2FwdHVyaW5nX3JlYWRvdXRlcnIoc2VsZik6Cisg
ICAgICAgIGNhcCA9IHNlbGYuZ2V0Y2FwdHVyZSgpCisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IHByaW50ICgiaGVsbG8gd29ybGQiKQorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiaGVs
bG8gZXJyb3JcbiIpCisgICAgICAgICAgICBvdXQsIGVyciA9IGNhcC5yZWFkb3V0ZXJyKCkKKyAg
ICAgICAgICAgIGFzc2VydCBvdXQgPT0gImhlbGxvIHdvcmxkXG4iCisgICAgICAgICAgICBhc3Nl
cnQgZXJyID09ICJoZWxsbyBlcnJvclxuIgorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgi
ZXJyb3IyIikKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIG91dCwgZXJyID0gY2FwLnJl
c2V0KCkKKyAgICAgICAgYXNzZXJ0IGVyciA9PSAiZXJyb3IyIgorCisgICAgZGVmIHRlc3RfY2Fw
dHVyaW5nX3JlYWRvdXRlcnJfdW5pY29kZShzZWxmKToKKyAgICAgICAgY2FwID0gc2VsZi5nZXRj
YXB0dXJlKCkKKyAgICAgICAgcHJpbnQgKCJoeFx4YzRceDg1XHhjNFx4ODciKQorICAgICAgICBv
dXQsIGVyciA9IGNhcC5yZWFkb3V0ZXJyKCkKKyAgICAgICAgYXNzZXJ0IG91dCA9PSBweS5idWls
dGluLl90b3RleHQoImh4XHhjNFx4ODVceGM0XHg4N1xuIiwgInV0ZjgiKQorCisgICAgQHB5LnRl
c3QubWFyay5za2lwaWYoJ3N5cy52ZXJzaW9uX2luZm8gPj0gKDMsKScsCisgICAgICAgICAgICAg
ICAgICAgICAgcmVhc29uPSd0ZXh0IG91dHB1dCBkaWZmZXJlbnQgZm9yIGJ5dGVzIG9uIHB5dGhv
bjMnKQorICAgIGRlZiB0ZXN0X2NhcHR1cmluZ19yZWFkb3V0ZXJyX2RlY29kZV9lcnJvcl9oYW5k
bGluZyhzZWxmKToKKyAgICAgICAgY2FwID0gc2VsZi5nZXRjYXB0dXJlKCkKKyAgICAgICAgIyB0
cmlnZ2VyZWQgYSBpbnRlcm5hbCBlcnJvciBpbiBweXRlc3QKKyAgICAgICAgcHJpbnQoJ1x4YTYn
KQorICAgICAgICBvdXQsIGVyciA9IGNhcC5yZWFkb3V0ZXJyKCkKKyAgICAgICAgYXNzZXJ0IG91
dCA9PSBweS5idWlsdGluLl90b3RleHQoJ1x1ZmZmZFxuJywgJ3VuaWNvZGUtZXNjYXBlJykKKwor
ICAgIGRlZiB0ZXN0X2NhcHR1cmluZ19taXhlZChzZWxmKToKKyAgICAgICAgY2FwID0gc2VsZi5n
ZXRjYXB0dXJlKG1peGVkPVRydWUpCisgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoImhlbGxvICIp
CisgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIndvcmxkIikKKyAgICAgICAgc3lzLnN0ZG91dC53
cml0ZSgiLiIpCisgICAgICAgIG91dCwgZXJyID0gY2FwLnJlc2V0KCkKKyAgICAgICAgYXNzZXJ0
IG91dC5zdHJpcCgpID09ICJoZWxsbyB3b3JsZC4iCisgICAgICAgIGFzc2VydCBub3QgZXJyCisK
KyAgICBkZWYgdGVzdF9yZXNldF90d2ljZV9lcnJvcihzZWxmKToKKyAgICAgICAgY2FwID0gc2Vs
Zi5nZXRjYXB0dXJlKCkKKyAgICAgICAgcHJpbnQgKCJoZWxsbyIpCisgICAgICAgIG91dCwgZXJy
ID0gY2FwLnJlc2V0KCkKKyAgICAgICAgcHkudGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgY2FwLnJl
c2V0KQorICAgICAgICBhc3NlcnQgb3V0ID09ICJoZWxsb1xuIgorICAgICAgICBhc3NlcnQgbm90
IGVycgorCisgICAgZGVmIHRlc3RfY2FwdHVyaW5nX21vZGlmeV9zeXNvdXRlcnJfaW5fYmV0d2Vl
bihzZWxmKToKKyAgICAgICAgb2xkb3V0ID0gc3lzLnN0ZG91dAorICAgICAgICBvbGRlcnIgPSBz
eXMuc3RkZXJyCisgICAgICAgIGNhcCA9IHNlbGYuZ2V0Y2FwdHVyZSgpCisgICAgICAgIHN5cy5z
dGRvdXQud3JpdGUoImhlbGxvIikKKyAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgid29ybGQiKQor
ICAgICAgICBzeXMuc3Rkb3V0ID0gcHkuaW8uVGV4dElPKCkKKyAgICAgICAgc3lzLnN0ZGVyciA9
IHB5LmlvLlRleHRJTygpCisgICAgICAgIHByaW50ICgibm90IHNlZW4iKQorICAgICAgICBzeXMu
c3RkZXJyLndyaXRlKCJub3Qgc2VlblxuIikKKyAgICAgICAgb3V0LCBlcnIgPSBjYXAucmVzZXQo
KQorICAgICAgICBhc3NlcnQgb3V0ID09ICJoZWxsbyIKKyAgICAgICAgYXNzZXJ0IGVyciA9PSAi
d29ybGQiCisgICAgICAgIGFzc2VydCBzeXMuc3Rkb3V0ID09IG9sZG91dAorICAgICAgICBhc3Nl
cnQgc3lzLnN0ZGVyciA9PSBvbGRlcnIKKworICAgIGRlZiB0ZXN0X2NhcHR1cmluZ19lcnJvcl9y
ZWN1cnNpdmUoc2VsZik6CisgICAgICAgIGNhcDEgPSBzZWxmLmdldGNhcHR1cmUoKQorICAgICAg
ICBwcmludCAoImNhcDEiKQorICAgICAgICBjYXAyID0gc2VsZi5nZXRjYXB0dXJlKCkKKyAgICAg
ICAgcHJpbnQgKCJjYXAyIikKKyAgICAgICAgb3V0MiwgZXJyMiA9IGNhcDIucmVzZXQoKQorICAg
ICAgICBvdXQxLCBlcnIxID0gY2FwMS5yZXNldCgpCisgICAgICAgIGFzc2VydCBvdXQxID09ICJj
YXAxXG4iCisgICAgICAgIGFzc2VydCBvdXQyID09ICJjYXAyXG4iCisKKyAgICBkZWYgdGVzdF9q
dXN0X291dF9jYXB0dXJlKHNlbGYpOgorICAgICAgICBjYXAgPSBzZWxmLmdldGNhcHR1cmUob3V0
PVRydWUsIGVycj1GYWxzZSkKKyAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiaGVsbG8iKQorICAg
ICAgICBzeXMuc3RkZXJyLndyaXRlKCJ3b3JsZCIpCisgICAgICAgIG91dCwgZXJyID0gY2FwLnJl
c2V0KCkKKyAgICAgICAgYXNzZXJ0IG91dCA9PSAiaGVsbG8iCisgICAgICAgIGFzc2VydCBub3Qg
ZXJyCisKKyAgICBkZWYgdGVzdF9qdXN0X2Vycl9jYXB0dXJlKHNlbGYpOgorICAgICAgICBjYXAg
PSBzZWxmLmdldGNhcHR1cmUob3V0PUZhbHNlLCBlcnI9VHJ1ZSkKKyAgICAgICAgc3lzLnN0ZG91
dC53cml0ZSgiaGVsbG8iKQorICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJ3b3JsZCIpCisgICAg
ICAgIG91dCwgZXJyID0gY2FwLnJlc2V0KCkKKyAgICAgICAgYXNzZXJ0IGVyciA9PSAid29ybGQi
CisgICAgICAgIGFzc2VydCBub3Qgb3V0CisKKyAgICBkZWYgdGVzdF9zdGRpbl9yZXN0b3JlZChz
ZWxmKToKKyAgICAgICAgb2xkID0gc3lzLnN0ZGluCisgICAgICAgIGNhcCA9IHNlbGYuZ2V0Y2Fw
dHVyZShpbl89VHJ1ZSkKKyAgICAgICAgbmV3c3RkaW4gPSBzeXMuc3RkaW4KKyAgICAgICAgb3V0
LCBlcnIgPSBjYXAucmVzZXQoKQorICAgICAgICBhc3NlcnQgbmV3c3RkaW4gIT0gc3lzLnN0ZGlu
CisgICAgICAgIGFzc2VydCBzeXMuc3RkaW4gaXMgb2xkCisKKyAgICBkZWYgdGVzdF9zdGRpbl9u
dWxsZWRfYnlfZGVmYXVsdChzZWxmKToKKyAgICAgICAgcHJpbnQgKCJYWFggdGhpcyB0ZXN0IG1h
eSB3ZWxsIGhhbmcgaW5zdGVhZCBvZiBjcmFzaGluZyIpCisgICAgICAgIHByaW50ICgiWFhYIHdo
aWNoIGluZGljYXRlcyBhbiBlcnJvciBpbiB0aGUgdW5kZXJseWluZyBjYXB0dXJpbmciKQorICAg
ICAgICBwcmludCAoIlhYWCBtZWNoYW5pc21zIikKKyAgICAgICAgY2FwID0gc2VsZi5nZXRjYXB0
dXJlKCkKKyAgICAgICAgcHkudGVzdC5yYWlzZXMoSU9FcnJvciwgInN5cy5zdGRpbi5yZWFkKCki
KQorICAgICAgICBvdXQsIGVyciA9IGNhcC5yZXNldCgpCisKKyAgICBkZWYgdGVzdF9zdXNwZW5k
X3Jlc3VtZShzZWxmKToKKyAgICAgICAgY2FwID0gc2VsZi5nZXRjYXB0dXJlKG91dD1UcnVlLCBl
cnI9RmFsc2UsIGluXz1GYWxzZSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcHJpbnQgKCJo
ZWxsbyIpCisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJlcnJvclxuIikKKyAgICAgICAg
ICAgIG91dCwgZXJyID0gY2FwLnN1c3BlbmQoKQorICAgICAgICAgICAgYXNzZXJ0IG91dCA9PSAi
aGVsbG9cbiIKKyAgICAgICAgICAgIGFzc2VydCBub3QgZXJyCisgICAgICAgICAgICBwcmludCAo
ImluIGJldHdlZW4iKQorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiaW4gYmV0d2Vlblxu
IikKKyAgICAgICAgICAgIGNhcC5yZXN1bWUoKQorICAgICAgICAgICAgcHJpbnQgKCJhZnRlciIp
CisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJlcnJvcl9hZnRlclxuIikKKyAgICAgICAg
ZmluYWxseToKKyAgICAgICAgICAgIG91dCwgZXJyID0gY2FwLnJlc2V0KCkKKyAgICAgICAgYXNz
ZXJ0IG91dCA9PSAiYWZ0ZXJcbiIKKyAgICAgICAgYXNzZXJ0IG5vdCBlcnIKKworY2xhc3MgVGVz
dFN0ZENhcHR1cmVOb3ROb3coVGVzdFN0ZENhcHR1cmUpOgorICAgIGRlZiBnZXRjYXB0dXJlKHNl
bGYsICoqa3cpOgorICAgICAgICBrd1snbm93J10gPSBGYWxzZQorICAgICAgICBjYXAgPSBweS5p
by5TdGRDYXB0dXJlKCoqa3cpCisgICAgICAgIGNhcC5zdGFydGFsbCgpCisgICAgICAgIHJldHVy
biBjYXAKKworY2xhc3MgVGVzdFN0ZENhcHR1cmVGRChUZXN0U3RkQ2FwdHVyZSk6CisgICAgcHl0
ZXN0bWFyayA9IG5lZWRzZHVwCisKKyAgICBkZWYgZ2V0Y2FwdHVyZShzZWxmLCAqKmt3KToKKyAg
ICAgICAgcmV0dXJuIHB5LmlvLlN0ZENhcHR1cmVGRCgqKmt3KQorCisgICAgZGVmIHRlc3RfaW50
ZXJtaW5nbGluZyhzZWxmKToKKyAgICAgICAgY2FwID0gc2VsZi5nZXRjYXB0dXJlKCkKKyAgICAg
ICAgb3N3cml0ZWJ5dGVzKDEsICIxIikKKyAgICAgICAgc3lzLnN0ZG91dC53cml0ZShzdHIoMikp
CisgICAgICAgIHN5cy5zdGRvdXQuZmx1c2goKQorICAgICAgICBvc3dyaXRlYnl0ZXMoMSwgIjMi
KQorICAgICAgICBvc3dyaXRlYnl0ZXMoMiwgImEiKQorICAgICAgICBzeXMuc3RkZXJyLndyaXRl
KCJiIikKKyAgICAgICAgc3lzLnN0ZGVyci5mbHVzaCgpCisgICAgICAgIG9zd3JpdGVieXRlcygy
LCAiYyIpCisgICAgICAgIG91dCwgZXJyID0gY2FwLnJlc2V0KCkKKyAgICAgICAgYXNzZXJ0IG91
dCA9PSAiMTIzIgorICAgICAgICBhc3NlcnQgZXJyID09ICJhYmMiCisKKyAgICBkZWYgdGVzdF9j
YWxsY2FwdHVyZShzZWxmKToKKyAgICAgICAgZGVmIGZ1bmMoeCwgeSk6CisgICAgICAgICAgICBw
cmludCAoeCkKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoc3RyKHkpKQorICAgICAgICAg
ICAgcmV0dXJuIDQyCisKKyAgICAgICAgcmVzLCBvdXQsIGVyciA9IHB5LmlvLlN0ZENhcHR1cmVG
RC5jYWxsKGZ1bmMsIDMsIHk9NCkKKyAgICAgICAgYXNzZXJ0IHJlcyA9PSA0MgorICAgICAgICBh
c3NlcnQgb3V0LnN0YXJ0c3dpdGgoIjMiKQorICAgICAgICBhc3NlcnQgZXJyLnN0YXJ0c3dpdGgo
IjQiKQorCisgICAgZGVmIHRlc3RfbWFueShzZWxmLCBjYXBmZCk6CisgICAgICAgIGRlZiBmKCk6
CisgICAgICAgICAgICBmb3IgaSBpbiByYW5nZSgxMCk6CisgICAgICAgICAgICAgICAgY2FwID0g
cHkuaW8uU3RkQ2FwdHVyZUZEKCkKKyAgICAgICAgICAgICAgICBjYXAucmVzZXQoKQorICAgICAg
ICBsc29mX2NoZWNrKGYpCisKK2NsYXNzIFRlc3RTdGRDYXB0dXJlRkROb3ROb3coVGVzdFN0ZENh
cHR1cmVGRCk6CisgICAgcHl0ZXN0bWFyayA9IG5lZWRzZHVwCisKKyAgICBkZWYgZ2V0Y2FwdHVy
ZShzZWxmLCAqKmt3KToKKyAgICAgICAga3dbJ25vdyddID0gRmFsc2UKKyAgICAgICAgY2FwID0g
cHkuaW8uU3RkQ2FwdHVyZUZEKCoqa3cpCisgICAgICAgIGNhcC5zdGFydGFsbCgpCisgICAgICAg
IHJldHVybiBjYXAKKworQG5lZWRzZHVwCitkZWYgdGVzdF9zdGRjYXB0dXJlX2ZkX3RtcGZpbGUo
dG1wZmlsZSk6CisgICAgY2FwZmQgPSBweS5pby5TdGRDYXB0dXJlRkQob3V0PXRtcGZpbGUpCisg
ICAgb3Mud3JpdGUoMSwgImhlbGxvIi5lbmNvZGUoImFzY2lpIikpCisgICAgb3Mud3JpdGUoMiwg
IndvcmxkIi5lbmNvZGUoImFzY2lpIikpCisgICAgb3V0ZiwgZXJyZiA9IGNhcGZkLmRvbmUoKQor
ICAgIGFzc2VydCBvdXRmID09IHRtcGZpbGUKKworY2xhc3MgVGVzdFN0ZENhcHR1cmVGRGludmFs
aWRGRDoKKyAgICBweXRlc3RtYXJrID0gbmVlZHNkdXAKKyAgICBkZWYgdGVzdF9zdGRjYXB0dXJl
X2ZkX2ludmFsaWRfZmQoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweSwgb3MKKyAgICAgICAgICAgIGRlZiB0ZXN0X3N0
ZG91dCgpOgorICAgICAgICAgICAgICAgIG9zLmNsb3NlKDEpCisgICAgICAgICAgICAgICAgY2Fw
ID0gcHkuaW8uU3RkQ2FwdHVyZUZEKG91dD1UcnVlLCBlcnI9RmFsc2UsIGluXz1GYWxzZSkKKyAg
ICAgICAgICAgICAgICBjYXAuZG9uZSgpCisgICAgICAgICAgICBkZWYgdGVzdF9zdGRlcnIoKToK
KyAgICAgICAgICAgICAgICBvcy5jbG9zZSgyKQorICAgICAgICAgICAgICAgIGNhcCA9IHB5Lmlv
LlN0ZENhcHR1cmVGRChvdXQ9RmFsc2UsIGVycj1UcnVlLCBpbl89RmFsc2UpCisgICAgICAgICAg
ICAgICAgY2FwLmRvbmUoKQorICAgICAgICAgICAgZGVmIHRlc3Rfc3RkaW4oKToKKyAgICAgICAg
ICAgICAgICBvcy5jbG9zZSgwKQorICAgICAgICAgICAgICAgIGNhcCA9IHB5LmlvLlN0ZENhcHR1
cmVGRChvdXQ9RmFsc2UsIGVycj1GYWxzZSwgaW5fPVRydWUpCisgICAgICAgICAgICAgICAgY2Fw
LmRvbmUoKQorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCItLWNhcHR1cmU9ZmQiKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgICAg
IGFzc2VydCByZXN1bHQucGFyc2VvdXRjb21lcygpWydwYXNzZWQnXSA9PSAzCisKK2RlZiB0ZXN0
X2NhcHR1cmVfbm90X3N0YXJ0ZWRfYnV0X3Jlc2V0KCk6CisgICAgY2Fwc3lzID0gcHkuaW8uU3Rk
Q2FwdHVyZShub3c9RmFsc2UpCisgICAgY2Fwc3lzLmRvbmUoKQorICAgIGNhcHN5cy5kb25lKCkK
KyAgICBjYXBzeXMucmVzZXQoKQorCitAbmVlZHNkdXAKK2RlZiB0ZXN0X2NhcHR1cmVfbm9fc3lz
KCk6CisgICAgY2Fwc3lzID0gcHkuaW8uU3RkQ2FwdHVyZSgpCisgICAgdHJ5OgorICAgICAgICBj
YXAgPSBweS5pby5TdGRDYXB0dXJlRkQocGF0Y2hzeXM9RmFsc2UpCisgICAgICAgIHN5cy5zdGRv
dXQud3JpdGUoImhlbGxvIikKKyAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgid29ybGQiKQorICAg
ICAgICBvc3dyaXRlYnl0ZXMoMSwgIjEiKQorICAgICAgICBvc3dyaXRlYnl0ZXMoMiwgIjIiKQor
ICAgICAgICBvdXQsIGVyciA9IGNhcC5yZXNldCgpCisgICAgICAgIGFzc2VydCBvdXQgPT0gIjEi
CisgICAgICAgIGFzc2VydCBlcnIgPT0gIjIiCisgICAgZmluYWxseToKKyAgICAgICAgY2Fwc3lz
LnJlc2V0KCkKKworQG5lZWRzZHVwCitkZWYgdGVzdF9jYWxsY2FwdHVyZV9ub2ZkKCk6CisgICAg
ZGVmIGZ1bmMoeCwgeSk6CisgICAgICAgIG9zd3JpdGVieXRlcygxLCAiaGVsbG8iKQorICAgICAg
ICBvc3dyaXRlYnl0ZXMoMiwgImhlbGxvIikKKyAgICAgICAgcHJpbnQgKHgpCisgICAgICAgIHN5
cy5zdGRlcnIud3JpdGUoc3RyKHkpKQorICAgICAgICByZXR1cm4gNDIKKworICAgIGNhcGZkID0g
cHkuaW8uU3RkQ2FwdHVyZUZEKHBhdGNoc3lzPUZhbHNlKQorICAgIHRyeToKKyAgICAgICAgcmVz
LCBvdXQsIGVyciA9IHB5LmlvLlN0ZENhcHR1cmUuY2FsbChmdW5jLCAzLCB5PTQpCisgICAgZmlu
YWxseToKKyAgICAgICAgY2FwZmQucmVzZXQoKQorICAgIGFzc2VydCByZXMgPT0gNDIKKyAgICBh
c3NlcnQgb3V0LnN0YXJ0c3dpdGgoIjMiKQorICAgIGFzc2VydCBlcnIuc3RhcnRzd2l0aCgiNCIp
CisKK0BuZWVkc2R1cAorQHB5LnRlc3QubWFyay5wYXJhbWV0cml6ZSgndXNlJywgW1RydWUsIEZh
bHNlXSkKK2RlZiB0ZXN0X2ZkY2FwdHVyZV90bXBmaWxlX3JlbWFpbnNfdGhlX3NhbWUodG1wZmls
ZSwgdXNlKToKKyAgICBpZiBub3QgdXNlOgorICAgICAgICB0bXBmaWxlID0gVHJ1ZQorICAgIGNh
cCA9IHB5LmlvLlN0ZENhcHR1cmVGRChvdXQ9RmFsc2UsIGVycj10bXBmaWxlLCBub3c9RmFsc2Up
CisgICAgY2FwLnN0YXJ0YWxsKCkKKyAgICBjYXBmaWxlID0gY2FwLmVyci50bXBmaWxlCisgICAg
Y2FwLnN1c3BlbmQoKQorICAgIGNhcC5yZXN1bWUoKQorICAgIGNhcGZpbGUyID0gY2FwLmVyci50
bXBmaWxlCisgICAgYXNzZXJ0IGNhcGZpbGUyID09IGNhcGZpbGUKKworQHB5LnRlc3QubWFyay5w
YXJhbWV0cml6ZSgnbWV0aG9kJywgWydTdGRDYXB0dXJlJywgJ1N0ZENhcHR1cmVGRCddKQorZGVm
IHRlc3RfY2FwdHVyaW5nX2FuZF9sb2dnaW5nX2Z1bmRhbWVudGFscyh0ZXN0ZGlyLCBtZXRob2Qp
OgorICAgIGlmIG1ldGhvZCA9PSAiU3RkQ2FwdHVyZUZEIiBhbmQgbm90IGhhc2F0dHIob3MsICdk
dXAnKToKKyAgICAgICAgcHkudGVzdC5za2lwKCJuZWVkIG9zLmR1cCIpCisgICAgIyBoZXJlIHdl
IGNoZWNrIGEgZnVuZGFtZW50YWwgZmVhdHVyZQorICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUo
IiIiCisgICAgICAgIGltcG9ydCBzeXMsIG9zCisgICAgICAgIGltcG9ydCBweSwgbG9nZ2luZwor
ICAgICAgICBjYXAgPSBweS5pby4lcyhvdXQ9RmFsc2UsIGluXz1GYWxzZSkKKworICAgICAgICBs
b2dnaW5nLndhcm4oImhlbGxvMSIpCisgICAgICAgIG91dGVyciA9IGNhcC5zdXNwZW5kKCkKKyAg
ICAgICAgcHJpbnQgKCJzdXNwZW5kLCBjYXB0dXJlZCAlJXMiICUlKG91dGVyciwpKQorICAgICAg
ICBsb2dnaW5nLndhcm4oImhlbGxvMiIpCisKKyAgICAgICAgY2FwLnJlc3VtZSgpCisgICAgICAg
IGxvZ2dpbmcud2FybigiaGVsbG8zIikKKworICAgICAgICBvdXRlcnIgPSBjYXAuc3VzcGVuZCgp
CisgICAgICAgIHByaW50ICgic3VzcGVuZDIsIGNhcHR1cmVkICUlcyIgJSUgKG91dGVyciwpKQor
ICAgICIiIiAlIChtZXRob2QsKSkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGhvbihwKQor
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICJzdXNwZW5kLCBjYXB0
dXJlZCpoZWxsbzEqIiwKKyAgICAgICAgInN1c3BlbmQyLCBjYXB0dXJlZCpoZWxsbzIqV0FSTklO
Rzpyb290OmhlbGxvMyoiLAorICAgIF0pCisgICAgYXNzZXJ0ICJhdGV4aXQiIG5vdCBpbiByZXN1
bHQuc3RkZXJyLnN0cigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvaW9fL3Rlc3Rfc2Fm
ZXJlcHIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvaW9fL3Rlc3Rfc2FmZXJlcHIucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTdiZTE0MTZmZWM2YjQ2NzgyMmY5MjgxMjlhN2EyZTI2NjE0ZDFjMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvdGVzdGluZy9pb18vdGVzdF9zYWZlcmVwci5weQpAQCAtMCwwICsxLDc1
IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGdl
bmVyYXRvcnMKK2ltcG9ydCBweQoraW1wb3J0IHN5cworCitzYWZlcmVwciA9IHB5LmlvLnNhZmVy
ZXByCisKK2NsYXNzIFRlc3RTYWZlUmVwcjoKKyAgICBkZWYgdGVzdF9zaW1wbGVfcmVwcihzZWxm
KToKKyAgICAgICAgYXNzZXJ0IHNhZmVyZXByKDEpID09ICcxJworICAgICAgICBhc3NlcnQgc2Fm
ZXJlcHIoTm9uZSkgPT0gJ05vbmUnCisKKyAgICBkZWYgdGVzdF9tYXhzaXplKHNlbGYpOgorICAg
ICAgICBzID0gc2FmZXJlcHIoJ3gnKjUwLCBtYXhzaXplPTI1KQorICAgICAgICBhc3NlcnQgbGVu
KHMpID09IDI1CisgICAgICAgIGV4cGVjdGVkID0gcmVwcigneCcqMTAgKyAnLi4uJyArICd4Jyox
MCkKKyAgICAgICAgYXNzZXJ0IHMgPT0gZXhwZWN0ZWQKKworICAgIGRlZiB0ZXN0X21heHNpemVf
ZXJyb3Jfb25faW5zdGFuY2Uoc2VsZik6CisgICAgICAgIGNsYXNzIEE6CisgICAgICAgICAgICBk
ZWYgX19yZXByX18oc2VsZik6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignLi4u
JykKKworICAgICAgICBzID0gc2FmZXJlcHIoKCcqJyo1MCwgQSgpKSwgbWF4c2l6ZT0yNSkKKyAg
ICAgICAgYXNzZXJ0IGxlbihzKSA9PSAyNQorICAgICAgICBhc3NlcnQgc1swXSA9PSAnKCcgYW5k
IHNbLTFdID09ICcpJworCisgICAgZGVmIHRlc3RfZXhjZXB0aW9ucyhzZWxmKToKKyAgICAgICAg
Y2xhc3MgQnJva2VuUmVwcjoKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleCk6Cisg
ICAgICAgICAgICAgICAgc2VsZi5leCA9IGV4CisgICAgICAgICAgICAgICAgZm9vID0gMAorICAg
ICAgICAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHJhaXNlIHNlbGYu
ZXgKKyAgICAgICAgY2xhc3MgQnJva2VuUmVwckV4Y2VwdGlvbihFeGNlcHRpb24pOgorICAgICAg
ICAgICAgX19zdHJfXyA9IE5vbmUKKyAgICAgICAgICAgIF9fcmVwcl9fID0gTm9uZQorICAgICAg
ICBhc3NlcnQgJ0V4Y2VwdGlvbicgaW4gc2FmZXJlcHIoQnJva2VuUmVwcihFeGNlcHRpb24oImJy
b2tlbiIpKSkKKyAgICAgICAgcyA9IHNhZmVyZXByKEJyb2tlblJlcHJFeGNlcHRpb24oInJlYWxs
eSBicm9rZW4iKSkKKyAgICAgICAgYXNzZXJ0ICdUeXBlRXJyb3InIGluIHMKKyAgICAgICAgYXNz
ZXJ0ICdUeXBlRXJyb3InIGluIHNhZmVyZXByKEJyb2tlblJlcHIoInN0cmluZyIpKQorCisgICAg
ICAgIHMyID0gc2FmZXJlcHIoQnJva2VuUmVwcihCcm9rZW5SZXByRXhjZXB0aW9uKCdvbWcgZXZl
biB3b3JzZScpKSkKKyAgICAgICAgYXNzZXJ0ICdOYW1lRXJyb3InIG5vdCBpbiBzMgorICAgICAg
ICBhc3NlcnQgJ3Vua25vd24nIGluIHMyCisKKyAgICBkZWYgdGVzdF9iaWdfcmVwcihzZWxmKToK
KyAgICAgICAgZnJvbSBweS5faW8uc2FmZXJlcHIgaW1wb3J0IFNhZmVSZXByCisgICAgICAgIGFz
c2VydCBsZW4oc2FmZXJlcHIocmFuZ2UoMTAwMCkpKSA8PSBcCisgICAgICAgICAgICAgICBsZW4o
J1snICsgU2FmZVJlcHIoKS5tYXhsaXN0ICogIjEwMDAiICsgJ10nKQorCisgICAgZGVmIHRlc3Rf
cmVwcl9vbl9uZXdzdHlsZShzZWxmKToKKyAgICAgICAgY2xhc3MgRnVuY3Rpb24ob2JqZWN0KToK
KyAgICAgICAgICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4g
Ijwlcz4iICUoc2VsZi5uYW1lKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzID0gc2FmZXJl
cHIoRnVuY3Rpb24oKSkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHB5
LnRlc3QuZmFpbCgic2FmZXJlcHIgZmFpbGVkIGZvciBuZXdzdHlsZSBjbGFzcyIpCisKKyAgICBk
ZWYgdGVzdF91bmljb2RlKHNlbGYpOgorICAgICAgICB2YWwgPSBweS5idWlsdGluLl90b3RleHQo
J8Kj4oKsJywgJ3V0Zi04JykKKyAgICAgICAgcmVwcnZhbCA9IHB5LmJ1aWx0aW4uX3RvdGV4dCgi
J8Kj4oKsJyIsICd1dGYtOCcpCisgICAgICAgIGFzc2VydCBzYWZlcmVwcih2YWwpID09IHJlcHJ2
YWwKKworZGVmIHRlc3RfdW5pY29kZV9oYW5kbGluZygpOgorICAgIHZhbHVlID0gcHkuYnVpbHRp
bi5fdG90ZXh0KCdceGM0XHg4NVx4YzRceDg3XG4nLCAndXRmLTgnKS5lbmNvZGUoJ3V0ZjgnKQor
ICAgIGRlZiBmKCk6CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbih2YWx1ZSkKKyAgICBleGNpbmZv
ID0gcHkudGVzdC5yYWlzZXMoRXhjZXB0aW9uLCBmKQorICAgIHMgPSBzdHIoZXhjaW5mbykKKyAg
ICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdIDwgMzoKKyAgICAgICAgdSA9IHVuaWNvZGUoZXhjaW5m
bykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2lvXy90ZXN0X3Rlcm1pbmFsd3JpdGVy
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2lvXy90ZXN0X3Rlcm1pbmFsd3JpdGVyLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdlOWViZjQwOWVjNjhhOWZhMTE3YTY4MmIyOWNmMjAyMTE1Njk4ZmEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvaW9fL3Rlc3RfdGVybWluYWx3cml0ZXIucHkKQEAgLTAs
MCArMSwyOTIgQEAKKworaW1wb3J0IHB5CitpbXBvcnQgb3MsIHN5cworZnJvbSBweS5faW8gaW1w
b3J0IHRlcm1pbmFsd3JpdGVyCitpbXBvcnQgY29kZWNzCitpbXBvcnQgcHl0ZXN0CisKK2RlZiB0
ZXN0X2dldF90ZXJtaW5hbF93aWR0aCgpOgorICAgIHggPSBweS5pby5nZXRfdGVybWluYWxfd2lk
dGgKKyAgICBhc3NlcnQgeCA9PSB0ZXJtaW5hbHdyaXRlci5nZXRfdGVybWluYWxfd2lkdGgKKwor
ZGVmIHRlc3RfZ2V0ZGltZW5zaW9ucyhtb25rZXlwYXRjaCk6CisgICAgZmNudGwgPSBweS50ZXN0
LmltcG9ydG9yc2tpcCgiZmNudGwiKQorICAgIGltcG9ydCBzdHJ1Y3QKKyAgICBsID0gW10KKyAg
ICBtb25rZXlwYXRjaC5zZXRhdHRyKGZjbnRsLCAnaW9jdGwnLCBsYW1iZGEgKmFyZ3M6IGwuYXBw
ZW5kKGFyZ3MpKQorICAgIHRyeToKKyAgICAgICAgdGVybWluYWx3cml0ZXIuX2dldGRpbWVuc2lv
bnMoKQorICAgIGV4Y2VwdCAoVHlwZUVycm9yLCBzdHJ1Y3QuZXJyb3IpOgorICAgICAgICBwYXNz
CisgICAgYXNzZXJ0IGxlbihsKSA9PSAxCisgICAgYXNzZXJ0IGxbMF1bMF0gPT0gMQorCitkZWYg
dGVzdF90ZXJtaW5hbF93aWR0aF9DT0xVTU5TKG1vbmtleXBhdGNoKToKKyAgICAiIiIgRHVtbXkg
dGVzdCBmb3IgZ2V0X3Rlcm1pbmFsX3dpZHRoCisgICAgIiIiCisgICAgZmNudGwgPSBweS50ZXN0
LmltcG9ydG9yc2tpcCgiZmNudGwiKQorICAgIG1vbmtleXBhdGNoLnNldGF0dHIoZmNudGwsICdp
b2N0bCcsIGxhbWJkYSAqYXJnczogaW50KCd4JykpCisgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCdD
T0xVTU5TJywgJzQyJykKKyAgICBhc3NlcnQgdGVybWluYWx3cml0ZXIuZ2V0X3Rlcm1pbmFsX3dp
ZHRoKCkgPT0gNDIKKyAgICBtb25rZXlwYXRjaC5kZWxlbnYoJ0NPTFVNTlMnLCByYWlzaW5nPUZh
bHNlKQorCitkZWYgdGVzdF90ZXJtaW5hbHdyaXRlcl9kZWZhdWx0d2lkdGhfODAobW9ua2V5cGF0
Y2gpOgorICAgIG1vbmtleXBhdGNoLnNldGF0dHIodGVybWluYWx3cml0ZXIsICdfZ2V0ZGltZW5z
aW9ucycsIGxhbWJkYTogMC8wKQorICAgIG1vbmtleXBhdGNoLmRlbGVudignQ09MVU1OUycsIHJh
aXNpbmc9RmFsc2UpCisgICAgdHcgPSBweS5pby5UZXJtaW5hbFdyaXRlcigpCisgICAgYXNzZXJ0
IHR3LmZ1bGx3aWR0aCA9PSA4MAorCitkZWYgdGVzdF90ZXJtaW5hbHdyaXRlcl9nZXRkaW1lbnNp
b25zX2JvZ3VzKG1vbmtleXBhdGNoKToKKyAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHRlcm1pbmFs
d3JpdGVyLCAnX2dldGRpbWVuc2lvbnMnLCBsYW1iZGE6ICgxMCwxMCkpCisgICAgbW9ua2V5cGF0
Y2guZGVsZW52KCdDT0xVTU5TJywgcmFpc2luZz1GYWxzZSkKKyAgICB0dyA9IHB5LmlvLlRlcm1p
bmFsV3JpdGVyKCkKKyAgICBhc3NlcnQgdHcuZnVsbHdpZHRoID09IDgwCisKK2RlZiB0ZXN0X3Rl
cm1pbmFsd3JpdGVyX2dldGRpbWVuc2lvbnNfZW1hY3MobW9ua2V5cGF0Y2gpOgorICAgICMgZW1h
Y3MgdGVybWluYWwgcmV0dXJucyAoMCwwKSBidXQgc2V0IENPTFVNTlMgcHJvcGVybHkKKyAgICBt
b25rZXlwYXRjaC5zZXRhdHRyKHRlcm1pbmFsd3JpdGVyLCAnX2dldGRpbWVuc2lvbnMnLCBsYW1i
ZGE6ICgwLDApKQorICAgIG1vbmtleXBhdGNoLnNldGVudignQ09MVU1OUycsICc0MicpCisgICAg
dHcgPSBweS5pby5UZXJtaW5hbFdyaXRlcigpCisgICAgYXNzZXJ0IHR3LmZ1bGx3aWR0aCA9PSA0
MgorCitkZWYgdGVzdF90ZXJtaW5hbHdyaXRlcl9jb21wdXRlc193aWR0aChtb25rZXlwYXRjaCk6
CisgICAgbW9ua2V5cGF0Y2guc2V0YXR0cih0ZXJtaW5hbHdyaXRlciwgJ2dldF90ZXJtaW5hbF93
aWR0aCcsIGxhbWJkYTogNDIpCisgICAgdHcgPSBweS5pby5UZXJtaW5hbFdyaXRlcigpCisgICAg
YXNzZXJ0IHR3LmZ1bGx3aWR0aCA9PSA0MgorCitkZWYgdGVzdF90ZXJtaW5hbHdyaXRlcl9kZWZh
dWx0X2luc3RhbnRpYXRpb24oKToKKyAgICB0dyA9IHB5LmlvLlRlcm1pbmFsV3JpdGVyKHN0cmlu
Z2lvPVRydWUpCisgICAgYXNzZXJ0IGhhc2F0dHIodHcsICdzdHJpbmdpbycpCisKK2RlZiB0ZXN0
X3Rlcm1pbmFsd3JpdGVyX2R1bWJfdGVybV9ub19tYXJrdXAobW9ua2V5cGF0Y2gpOgorICAgIG1v
bmtleXBhdGNoLnNldGF0dHIob3MsICdlbnZpcm9uJywgeydURVJNJzogJ2R1bWInLCAnUEFUSCc6
ICcnfSkKKyAgICBjbGFzcyBNeUZpbGU6CisgICAgICAgIGNsb3NlZCA9IEZhbHNlCisgICAgICAg
IGRlZiBpc2F0dHkoc2VsZik6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgIG1vbmtleXBh
dGNoLnNldGF0dHIoc3lzLCAnc3Rkb3V0JywgTXlGaWxlKCkpCisgICAgdHJ5OgorICAgICAgICBh
c3NlcnQgc3lzLnN0ZG91dC5pc2F0dHkoKQorICAgICAgICB0dyA9IHB5LmlvLlRlcm1pbmFsV3Jp
dGVyKCkKKyAgICAgICAgYXNzZXJ0IG5vdCB0dy5oYXNtYXJrdXAKKyAgICBmaW5hbGx5OgorICAg
ICAgICBtb25rZXlwYXRjaC51bmRvKCkKKworZGVmIHRlc3RfdGVybWluYWx3cml0ZXJfZmlsZV91
bmljb2RlKHRtcGRpcik6CisgICAgZiA9IGNvZGVjcy5vcGVuKHN0cih0bXBkaXIuam9pbigieHl6
IikpLCAid2IiLCAidXRmOCIpCisgICAgdHcgPSBweS5pby5UZXJtaW5hbFdyaXRlcihmaWxlPWYp
CisgICAgYXNzZXJ0IHR3LmVuY29kaW5nID09ICJ1dGY4IgorCitkZWYgdGVzdF91bmljb2RlX2Vu
Y29kaW5nKCk6CisgICAgbXNnID0gcHkuYnVpbHRpbi5fdG90ZXh0KCdiXHUwMGY2eScsICd1dGY4
JykKKyAgICBmb3IgZW5jb2RpbmcgaW4gJ3V0ZjgnLCAnbGF0aW4xJzoKKyAgICAgICAgbCA9IFtd
CisgICAgICAgIHR3ID0gcHkuaW8uVGVybWluYWxXcml0ZXIobC5hcHBlbmQsIGVuY29kaW5nPWVu
Y29kaW5nKQorICAgICAgICB0dy5saW5lKG1zZykKKyAgICAgICAgYXNzZXJ0IGxbMF0uc3RyaXAo
KSA9PSBtc2cuZW5jb2RlKGVuY29kaW5nKQorCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImVu
Y29kaW5nIiwgWyJhc2NpaSJdKQorZGVmIHRlc3RfdW5pY29kZV9vbl9maWxlX3dpdGhfYXNjaWlf
ZW5jb2RpbmcodG1wZGlyLCBtb25rZXlwYXRjaCwgZW5jb2RpbmcpOgorICAgIG1zZyA9IHB5LmJ1
aWx0aW4uX3RvdGV4dCgnaGVsbFx4ZjYnLCAibGF0aW4xIikKKyAgICAjcHl0ZXN0LnJhaXNlcyhV
bmljb2RlRW5jb2RlRXJyb3IsIGxhbWJkYTogYnl0ZXMobXNnKSkKKyAgICBmID0gY29kZWNzLm9w
ZW4oc3RyKHRtcGRpci5qb2luKCJ4IikpLCAidyIsIGVuY29kaW5nKQorICAgIHR3ID0gcHkuaW8u
VGVybWluYWxXcml0ZXIoZikKKyAgICB0dy5saW5lKG1zZykKKyAgICBmLmNsb3NlKCkKKyAgICBz
ID0gdG1wZGlyLmpvaW4oIngiKS5vcGVuKCJyYiIpLnJlYWQoKS5zdHJpcCgpCisgICAgYXNzZXJ0
IGVuY29kaW5nID09ICJhc2NpaSIKKyAgICBhc3NlcnQgcyA9PSBtc2cuZW5jb2RlKCJ1bmljb2Rl
LWVzY2FwZSIpCisKKword2luMzIgPSBpbnQoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIpCitjbGFz
cyBUZXN0VGVybWluYWxXcml0ZXI6CisgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhzZWxm
LCBtZXRhZnVuYyk6CisgICAgICAgIGlmICJ0dyIgaW4gbWV0YWZ1bmMuZnVuY2FyZ25hbWVzOgor
ICAgICAgICAgICAgbWV0YWZ1bmMuYWRkY2FsbChpZD0icGF0aCIsIHBhcmFtPSJwYXRoIikKKyAg
ICAgICAgICAgIG1ldGFmdW5jLmFkZGNhbGwoaWQ9InN0cmluZ2lvIiwgcGFyYW09InN0cmluZ2lv
IikKKyAgICAgICAgICAgIG1ldGFmdW5jLmFkZGNhbGwoaWQ9ImNhbGxhYmxlIiwgcGFyYW09ImNh
bGxhYmxlIikKKyAgICBkZWYgcHl0ZXN0X2Z1bmNhcmdfX3R3KHNlbGYsIHJlcXVlc3QpOgorICAg
ICAgICBpZiByZXF1ZXN0LnBhcmFtID09ICJwYXRoIjoKKyAgICAgICAgICAgIHRtcGRpciA9IHJl
cXVlc3QuZ2V0ZnVuY2FyZ3ZhbHVlKCJ0bXBkaXIiKQorICAgICAgICAgICAgcCA9IHRtcGRpci5q
b2luKCJ0bXBmaWxlIikKKyAgICAgICAgICAgIGYgPSBjb2RlY3Mub3BlbihzdHIocCksICd3Kycs
IGVuY29kaW5nPSd1dGY4JykKKyAgICAgICAgICAgIHR3ID0gcHkuaW8uVGVybWluYWxXcml0ZXIo
ZikKKyAgICAgICAgICAgIGRlZiBnZXRsaW5lcygpOgorICAgICAgICAgICAgICAgIHR3Ll9maWxl
LmZsdXNoKCkKKyAgICAgICAgICAgICAgICByZXR1cm4gY29kZWNzLm9wZW4oc3RyKHApLCAncics
CisgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nPSd1dGY4JykucmVhZGxpbmVzKCkKKyAgICAg
ICAgZWxpZiByZXF1ZXN0LnBhcmFtID09ICJzdHJpbmdpbyI6CisgICAgICAgICAgICB0dyA9IHB5
LmlvLlRlcm1pbmFsV3JpdGVyKHN0cmluZ2lvPVRydWUpCisgICAgICAgICAgICBkZWYgZ2V0bGlu
ZXMoKToKKyAgICAgICAgICAgICAgICB0dy5zdHJpbmdpby5zZWVrKDApCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHR3LnN0cmluZ2lvLnJlYWRsaW5lcygpCisgICAgICAgIGVsaWYgcmVxdWVzdC5w
YXJhbSA9PSAiY2FsbGFibGUiOgorICAgICAgICAgICAgd3JpdGVzID0gW10KKyAgICAgICAgICAg
IHR3ID0gcHkuaW8uVGVybWluYWxXcml0ZXIod3JpdGVzLmFwcGVuZCkKKyAgICAgICAgICAgIGRl
ZiBnZXRsaW5lcygpOgorICAgICAgICAgICAgICAgIGlvID0gcHkuaW8uVGV4dElPKCkKKyAgICAg
ICAgICAgICAgICBpby53cml0ZSgiIi5qb2luKHdyaXRlcykpCisgICAgICAgICAgICAgICAgaW8u
c2VlaygwKQorICAgICAgICAgICAgICAgIHJldHVybiBpby5yZWFkbGluZXMoKQorICAgICAgICB0
dy5nZXRsaW5lcyA9IGdldGxpbmVzCisgICAgICAgIHR3LmdldHZhbHVlID0gbGFtYmRhOiAiIi5q
b2luKGdldGxpbmVzKCkpCisgICAgICAgIHJldHVybiB0dworCisgICAgZGVmIHRlc3RfbGluZShz
ZWxmLCB0dyk6CisgICAgICAgIHR3LmxpbmUoImhlbGxvIikKKyAgICAgICAgbCA9IHR3LmdldGxp
bmVzKCkKKyAgICAgICAgYXNzZXJ0IGxlbihsKSA9PSAxCisgICAgICAgIGFzc2VydCBsWzBdID09
ICJoZWxsb1xuIgorCisgICAgZGVmIHRlc3RfbGluZV91bmljb2RlKHNlbGYsIHR3KToKKyAgICAg
ICAgZm9yIGVuY29kaW5nIGluICd1dGY4JywgJ2xhdGluMSc6CisgICAgICAgICAgICB0dy5fZW5j
b2RpbmcgPSBlbmNvZGluZworICAgICAgICAgICAgbXNnID0gcHkuYnVpbHRpbi5fdG90ZXh0KCdi
XHUwMGY2eScsICd1dGY4JykKKyAgICAgICAgICAgIHR3LmxpbmUobXNnKQorICAgICAgICAgICAg
bCA9IHR3LmdldGxpbmVzKCkKKyAgICAgICAgICAgIGFzc2VydCBsWzBdID09IG1zZyArICJcbiIK
KworICAgIGRlZiB0ZXN0X3NlcF9ub190aXRsZShzZWxmLCB0dyk6CisgICAgICAgIHR3LnNlcCgi
LSIsIGZ1bGx3aWR0aD02MCkKKyAgICAgICAgbCA9IHR3LmdldGxpbmVzKCkKKyAgICAgICAgYXNz
ZXJ0IGxlbihsKSA9PSAxCisgICAgICAgIGFzc2VydCBsWzBdID09ICItIiAqICg2MC13aW4zMikg
KyAiXG4iCisKKyAgICBkZWYgdGVzdF9zZXBfd2l0aF90aXRsZShzZWxmLCB0dyk6CisgICAgICAg
IHR3LnNlcCgiLSIsICJoZWxsbyIsIGZ1bGx3aWR0aD02MCkKKyAgICAgICAgbCA9IHR3LmdldGxp
bmVzKCkKKyAgICAgICAgYXNzZXJ0IGxlbihsKSA9PSAxCisgICAgICAgIGFzc2VydCBsWzBdID09
ICItIiAqIDI2ICsgIiBoZWxsbyAiICsgIi0iICogKDI3LXdpbjMyKSArICJcbiIKKworICAgIEBw
eS50ZXN0Lm1hcmsuc2tpcGlmKCJzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJyIpCisgICAgZGVmIHRl
c3RfX2VzY2FwZWQoc2VsZiwgdHcpOgorICAgICAgICB0ZXh0MiA9IHR3Ll9lc2NhcGVkKCJoZWxs
byIsICgzMSkpCisgICAgICAgIGFzc2VydCB0ZXh0Mi5maW5kKCJoZWxsbyIpICE9IC0xCisKKyAg
ICBAcHkudGVzdC5tYXJrLnNraXBpZigic3lzLnBsYXRmb3JtID09ICd3aW4zMiciKQorICAgIGRl
ZiB0ZXN0X21hcmt1cChzZWxmLCB0dyk6CisgICAgICAgIGZvciBib2xkIGluIChUcnVlLCBGYWxz
ZSk6CisgICAgICAgICAgICBmb3IgY29sb3IgaW4gKCJyZWQiLCAiZ3JlZW4iKToKKyAgICAgICAg
ICAgICAgICB0ZXh0MiA9IHR3Lm1hcmt1cCgiaGVsbG8iLCAqKntjb2xvcjogVHJ1ZSwgJ2JvbGQn
OiBib2xkfSkKKyAgICAgICAgICAgICAgICBhc3NlcnQgdGV4dDIuZmluZCgiaGVsbG8iKSAhPSAt
MQorICAgICAgICBweS50ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCAidHcubWFya3VwKCd4Jywgd3Jv
bmt3PTMpIikKKyAgICAgICAgcHkudGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgInR3Lm1hcmt1cCgn
eCcsIHdyb25rdz0wKSIpCisKKyAgICBkZWYgdGVzdF9saW5lX3dyaXRlX21hcmt1cChzZWxmLCB0
dyk6CisgICAgICAgIHR3Lmhhc21hcmt1cCA9IFRydWUKKyAgICAgICAgdHcubGluZSgieCIsIGJv
bGQ9VHJ1ZSkKKyAgICAgICAgdHcud3JpdGUoInhcbiIsIHJlZD1UcnVlKQorICAgICAgICBsID0g
dHcuZ2V0bGluZXMoKQorICAgICAgICBpZiBzeXMucGxhdGZvcm0gIT0gIndpbjMyIjoKKyAgICAg
ICAgICAgIGFzc2VydCBsZW4obFswXSkgPj0gMiwgbAorICAgICAgICAgICAgYXNzZXJ0IGxlbihs
WzFdKSA+PSAyLCBsCisKKyAgICBkZWYgdGVzdF9hdHRyX2Z1bGx3aWR0aChzZWxmLCB0dyk6Cisg
ICAgICAgIHR3LnNlcCgiLSIsICJoZWxsbyIsIGZ1bGx3aWR0aD03MCkKKyAgICAgICAgdHcuZnVs
bHdpZHRoID0gNzAKKyAgICAgICAgdHcuc2VwKCItIiwgImhlbGxvIikKKyAgICAgICAgbCA9IHR3
LmdldGxpbmVzKCkKKyAgICAgICAgYXNzZXJ0IGxlbihsWzBdKSA9PSBsZW4obFsxXSkKKworICAg
IGRlZiB0ZXN0X3JlbGluZShzZWxmLCB0dyk6CisgICAgICAgIHR3LmxpbmUoImhlbGxvIikKKyAg
ICAgICAgdHcuaGFzbWFya3VwID0gRmFsc2UKKyAgICAgICAgcHl0ZXN0LnJhaXNlcyhWYWx1ZUVy
cm9yLCBsYW1iZGE6IHR3LnJlbGluZSgieCIpKQorICAgICAgICB0dy5oYXNtYXJrdXAgPSBUcnVl
CisgICAgICAgIHR3LnJlbGluZSgiMCAxIDIiKQorICAgICAgICB0dy5nZXRsaW5lcygpCisgICAg
ICAgIGwgPSB0dy5nZXR2YWx1ZSgpLnNwbGl0KCJcbiIpCisgICAgICAgIGFzc2VydCBsZW4obCkg
PT0gMgorICAgICAgICB0dy5yZWxpbmUoIjAgMSAzIikKKyAgICAgICAgbCA9IHR3LmdldHZhbHVl
KCkuc3BsaXQoIlxuIikKKyAgICAgICAgYXNzZXJ0IGxlbihsKSA9PSAyCisgICAgICAgIGFzc2Vy
dCBsWzFdLmVuZHN3aXRoKCIwIDEgM1xyIikKKyAgICAgICAgdHcubGluZSgic28iKQorICAgICAg
ICBsID0gdHcuZ2V0dmFsdWUoKS5zcGxpdCgiXG4iKQorICAgICAgICBhc3NlcnQgbGVuKGwpID09
IDMKKyAgICAgICAgYXNzZXJ0IGxbLTFdID09ICIiCisgICAgICAgIGFzc2VydCBsWzFdID09ICgi
MCAxIDJccjAgMSAzXHJzbyAgICIpCisgICAgICAgIGFzc2VydCBsWzBdID09ICJoZWxsbyIKKwor
CitkZWYgdGVzdF90ZXJtaW5hbF93aXRoX2NhbGxhYmxlX3dyaXRlX2FuZF9mbHVzaCgpOgorICAg
IGwgPSBzZXQoKQorICAgIGNsYXNzIGZpbDoKKyAgICAgICAgZmx1c2ggPSBsYW1iZGEgc2VsZjog
bC5hZGQoIjEiKQorICAgICAgICB3cml0ZSA9IGxhbWJkYSBzZWxmLCB4OiBsLmFkZCgiMSIpCisg
ICAgICAgIF9fY2FsbF9fID0gbGFtYmRhIHNlbGYsIHg6IGwuYWRkKCIyIikKKworICAgIHR3ID0g
cHkuaW8uVGVybWluYWxXcml0ZXIoZmlsKCkpCisgICAgdHcubGluZSgiaGVsbG8iKQorICAgIGFz
c2VydCBsID09IHNldChbIjEiXSkKKyAgICBkZWwgZmlsLmZsdXNoCisgICAgbC5jbGVhcigpCisg
ICAgdHcgPSBweS5pby5UZXJtaW5hbFdyaXRlcihmaWwoKSkKKyAgICB0dy5saW5lKCJoZWxsbyIp
CisgICAgYXNzZXJ0IGwgPT0gc2V0KFsiMiJdKQorCisKK2RlZiB0ZXN0X2NoYXJzX29uX2N1cnJl
bnRfbGluZSgpOgorICAgIHR3ID0gcHkuaW8uVGVybWluYWxXcml0ZXIoc3RyaW5naW89VHJ1ZSkK
KworICAgIHdyaXR0ZW4gPSBbXQorCisgICAgZGVmIHdyaXRlX2FuZF9jaGVjayhzLCBleHBlY3Rl
ZCk6CisgICAgICAgIHR3LndyaXRlKHMsIGJvbGQ9VHJ1ZSkKKyAgICAgICAgd3JpdHRlbi5hcHBl
bmQocykKKyAgICAgICAgYXNzZXJ0IHR3LmNoYXJzX29uX2N1cnJlbnRfbGluZSA9PSBleHBlY3Rl
ZAorICAgICAgICBhc3NlcnQgdHcuc3RyaW5naW8uZ2V0dmFsdWUoKSA9PSAnJy5qb2luKHdyaXR0
ZW4pCisKKyAgICB3cml0ZV9hbmRfY2hlY2soJ2ZvbycsIDMpCisgICAgd3JpdGVfYW5kX2NoZWNr
KCdiYXInLCA2KQorICAgIHdyaXRlX2FuZF9jaGVjaygnXG4nLCAwKQorICAgIHdyaXRlX2FuZF9j
aGVjaygnXG4nLCAwKQorICAgIHdyaXRlX2FuZF9jaGVjaygnXG5cblxuJywgMCkKKyAgICB3cml0
ZV9hbmRfY2hlY2soJ1xuZm9vJywgMykKKyAgICB3cml0ZV9hbmRfY2hlY2soJ1xuZmJhclxuaGVs
bG8nLCA1KQorICAgIHdyaXRlX2FuZF9jaGVjaygnMTAnLCA3KQorCisKK0BweXRlc3QubWFyay5z
a2lwaWYoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsIHJlYXNvbj0id2luMzIgaGFzIG5vIG5hdGl2
ZSBhbnNpIikKK2RlZiB0ZXN0X2F0dHJfaGFzbWFya3VwKCk6CisgICAgdHcgPSBweS5pby5UZXJt
aW5hbFdyaXRlcihzdHJpbmdpbz1UcnVlKQorICAgIGFzc2VydCBub3QgdHcuaGFzbWFya3VwCisg
ICAgdHcuaGFzbWFya3VwID0gVHJ1ZQorICAgIHR3LmxpbmUoImhlbGxvIiwgYm9sZD1UcnVlKQor
ICAgIHMgPSB0dy5zdHJpbmdpby5nZXR2YWx1ZSgpCisgICAgYXNzZXJ0IGxlbihzKSA+IGxlbigi
aGVsbG9cbiIpCisgICAgYXNzZXJ0ICdceDFiWzFtJyBpbiBzCisgICAgYXNzZXJ0ICdceDFiWzBt
JyBpbiBzCisKK0BweXRlc3QubWFyay5za2lwaWYoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsIHJl
YXNvbj0id2luMzIgaGFzIG5vIG5hdGl2ZSBhbnNpIikKK2RlZiB0ZXN0X2Fuc2lfcHJpbnQoKToK
KyAgICAjIHdlIGhhdmUgbm8gZWFzeSB3YXkgdG8gY29uc3RydWN0IGEgZmlsZSB0aGF0CisgICAg
IyByZXByZXNlbnRzIGEgdGVybWluYWwKKyAgICBmID0gcHkuaW8uVGV4dElPKCkKKyAgICBmLmlz
YXR0eSA9IGxhbWJkYTogVHJ1ZQorICAgIHB5LmlvLmFuc2lfcHJpbnQoImhlbGxvIiwgMHgzMiwg
ZmlsZT1mKQorICAgIHRleHQyID0gZi5nZXR2YWx1ZSgpCisgICAgYXNzZXJ0IHRleHQyLmZpbmQo
ImhlbGxvIikgIT0gLTEKKyAgICBhc3NlcnQgbGVuKHRleHQyKSA+PSBsZW4oImhlbGxvXG4iKQor
ICAgIGFzc2VydCAnXHgxYls1MG0nIGluIHRleHQyCisgICAgYXNzZXJ0ICdceDFiWzBtJyBpbiB0
ZXh0MgorCitkZWYgdGVzdF9zaG91bGRfZG9fbWFya3VwX1BZX0NPTE9SU19lcV8xKG1vbmtleXBh
dGNoKToKKyAgICBtb25rZXlwYXRjaC5zZXRpdGVtKG9zLmVudmlyb24sICdQWV9DT0xPUlMnLCAn
MScpCisgICAgdHcgPSBweS5pby5UZXJtaW5hbFdyaXRlcihzdHJpbmdpbz1UcnVlKQorICAgIGFz
c2VydCB0dy5oYXNtYXJrdXAKKyAgICB0dy5saW5lKCJoZWxsbyIsIGJvbGQ9VHJ1ZSkKKyAgICBz
ID0gdHcuc3RyaW5naW8uZ2V0dmFsdWUoKQorICAgIGFzc2VydCBsZW4ocykgPiBsZW4oImhlbGxv
XG4iKQorICAgIGFzc2VydCAnXHgxYlsxbScgaW4gcworICAgIGFzc2VydCAnXHgxYlswbScgaW4g
cworCitkZWYgdGVzdF9zaG91bGRfZG9fbWFya3VwX1BZX0NPTE9SU19lcV8wKG1vbmtleXBhdGNo
KToKKyAgICBtb25rZXlwYXRjaC5zZXRpdGVtKG9zLmVudmlyb24sICdQWV9DT0xPUlMnLCAnMCcp
CisgICAgZiA9IHB5LmlvLlRleHRJTygpCisgICAgZi5pc2F0dHkgPSBsYW1iZGE6IFRydWUKKyAg
ICB0dyA9IHB5LmlvLlRlcm1pbmFsV3JpdGVyKGZpbGU9ZikKKyAgICBhc3NlcnQgbm90IHR3Lmhh
c21hcmt1cAorICAgIHR3LmxpbmUoImhlbGxvIiwgYm9sZD1UcnVlKQorICAgIHMgPSBmLmdldHZh
bHVlKCkKKyAgICBhc3NlcnQgcyA9PSAiaGVsbG9cbiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVz
dGluZy9pb18vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvaW9fL3czYy1pbXBvcnQu
bG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmU3ODkyNDIwYjgwYzg5NDYwZjhhODQ1ZWM0M2MxNzhhY2UxMDQxNjgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvaW9fL3czYy1pbXBvcnQubG9nCkBA
IC0wLDAgKzEsMjAgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKwor
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1By
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9pb18vX19pbml0X18ucHkK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3Rlc3RpbmcvaW9fL3Rlc3RfY2FwdHVyZS5weQorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9p
b18vdGVzdF9zYWZlcmVwci5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9pb18vdGVzdF90ZXJtaW5hbHdy
aXRlci5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2xvZy9fX2luaXRfXy5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvdGVzdGluZy9sb2cvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTY4MzRiODI4NWE1NmJl
ZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVz
dGluZy9sb2cvX19pbml0X18ucHkKQEAgLTAsMCArMSBAQAorIyBUaGlzIGZpbGUgaXMgcmVxdWly
ZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2xvZy90
ZXN0X2xvZy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9sb2cvdGVzdF9sb2cucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NWM3MDZkOWI2YWQzNGRjNzkzMWM0YzJlY2ViM2I4MmNiMzk1ZGI5ZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvdGVzdGluZy9sb2cvdGVzdF9sb2cucHkKQEAgLTAsMCArMSwxOTEgQEAKK2lt
cG9ydCBweQorCitmcm9tIHB5Ll9sb2cubG9nIGltcG9ydCBkZWZhdWx0X2tleXdvcmRtYXBwZXIK
KworY2FsbGNhcHR1cmUgPSBweS5pby5TdGRDYXB0dXJlLmNhbGwKKworCitkZWYgc2V0dXBfbW9k
dWxlKG1vZCk6CisgICAgbW9kLl9vbGRzdGF0ZSA9IGRlZmF1bHRfa2V5d29yZG1hcHBlci5nZXRz
dGF0ZSgpCisKK2RlZiB0ZWFyZG93bl9tb2R1bGUobW9kKToKKyAgICBkZWZhdWx0X2tleXdvcmRt
YXBwZXIuc2V0c3RhdGUobW9kLl9vbGRzdGF0ZSkKKworY2xhc3MgVGVzdExvZ1Byb2R1Y2VyOgor
ICAgIGRlZiBzZXR1cF9tZXRob2Qoc2VsZiwgbWV0aCk6CisgICAgICAgIGZyb20gcHkuX2xvZy5s
b2cgaW1wb3J0IGRlZmF1bHRfa2V5d29yZG1hcHBlcgorICAgICAgICBkZWZhdWx0X2tleXdvcmRt
YXBwZXIuc2V0c3RhdGUoX29sZHN0YXRlKQorCisgICAgZGVmIHRlc3RfZ2V0c3RhdGVfc2V0c3Rh
dGUoc2VsZik6CisgICAgICAgIHN0YXRlID0gcHkubG9nLl9nZXRzdGF0ZSgpCisgICAgICAgIHB5
LmxvZy5zZXRjb25zdW1lcigiaGVsbG8iLCBbXS5hcHBlbmQpCisgICAgICAgIHN0YXRlMiA9IHB5
LmxvZy5fZ2V0c3RhdGUoKQorICAgICAgICBhc3NlcnQgc3RhdGUyICE9IHN0YXRlCisgICAgICAg
IHB5LmxvZy5fc2V0c3RhdGUoc3RhdGUpCisgICAgICAgIHN0YXRlMyA9IHB5LmxvZy5fZ2V0c3Rh
dGUoKQorICAgICAgICBhc3NlcnQgc3RhdGUzID09IHN0YXRlCisKKyAgICBkZWYgdGVzdF9wcm9k
dWNlcl9yZXByKHNlbGYpOgorICAgICAgICBkID0gcHkubG9nLlByb2R1Y2VyKCJkZWZhdWx0IikK
KyAgICAgICAgYXNzZXJ0IHJlcHIoZCkuZmluZCgnZGVmYXVsdCcpICE9IC0xCisKKyAgICBkZWYg
dGVzdF9wcm9kdWNlX29uZV9rZXl3b3JkKHNlbGYpOgorICAgICAgICBsID0gW10KKyAgICAgICAg
cHkubG9nLnNldGNvbnN1bWVyKCdzMScsIGwuYXBwZW5kKQorICAgICAgICBweS5sb2cuUHJvZHVj
ZXIoJ3MxJykoImhlbGxvIHdvcmxkIikKKyAgICAgICAgYXNzZXJ0IGxlbihsKSA9PSAxCisgICAg
ICAgIG1zZyA9IGxbMF0KKyAgICAgICAgYXNzZXJ0IG1zZy5jb250ZW50KCkuc3RhcnRzd2l0aCgn
aGVsbG8gd29ybGQnKQorICAgICAgICBhc3NlcnQgbXNnLnByZWZpeCgpID09ICdbczFdICcKKyAg
ICAgICAgYXNzZXJ0IHN0cihtc2cpID09ICJbczFdIGhlbGxvIHdvcmxkIgorCisgICAgZGVmIHRl
c3RfcHJvZHVjZXJfY2xhc3Moc2VsZik6CisgICAgICAgIHAgPSBweS5sb2cuUHJvZHVjZXIoJ3gx
JykKKyAgICAgICAgbCA9IFtdCisgICAgICAgIHB5LmxvZy5zZXRjb25zdW1lcihwLl9rZXl3b3Jk
cywgbC5hcHBlbmQpCisgICAgICAgIHAoImhlbGxvIikKKyAgICAgICAgYXNzZXJ0IGxlbihsKSA9
PSAxCisgICAgICAgIGFzc2VydCBsZW4obFswXS5rZXl3b3JkcykgPT0gMQorICAgICAgICBhc3Nl
cnQgJ3gxJyA9PSBsWzBdLmtleXdvcmRzWzBdCisKKyAgICBkZWYgdGVzdF9wcm9kdWNlcl9jYWNo
aW5nKHNlbGYpOgorICAgICAgICBwID0gcHkubG9nLlByb2R1Y2VyKCd4MScpCisgICAgICAgIHgy
ID0gcC54MgorICAgICAgICBhc3NlcnQgeDIgaXMgcC54MgorCitjbGFzcyBUZXN0TG9nQ29uc3Vt
ZXI6CisgICAgZGVmIHNldHVwX21ldGhvZChzZWxmLCBtZXRoKToKKyAgICAgICAgZGVmYXVsdF9r
ZXl3b3JkbWFwcGVyLnNldHN0YXRlKF9vbGRzdGF0ZSkKKyAgICBkZWYgdGVzdF9sb2dfbm9uZShz
ZWxmKToKKyAgICAgICAgbG9nID0gcHkubG9nLlByb2R1Y2VyKCJYWFgiKQorICAgICAgICBsID0g
W10KKyAgICAgICAgcHkubG9nLnNldGNvbnN1bWVyKCdYWFgnLCBsLmFwcGVuZCkKKyAgICAgICAg
bG9nKCIxIikKKyAgICAgICAgYXNzZXJ0IGwKKyAgICAgICAgbFs6XSA9IFtdCisgICAgICAgIHB5
LmxvZy5zZXRjb25zdW1lcignWFhYJywgTm9uZSkKKyAgICAgICAgbG9nKCIyIikKKyAgICAgICAg
YXNzZXJ0IG5vdCBsCisKKyAgICBkZWYgdGVzdF9sb2dfZGVmYXVsdF9zdGRlcnIoc2VsZik6Cisg
ICAgICAgIHJlcywgb3V0LCBlcnIgPSBjYWxsY2FwdHVyZShweS5sb2cuUHJvZHVjZXIoImRlZmF1
bHQiKSwgImhlbGxvIikKKyAgICAgICAgYXNzZXJ0IGVyci5zdHJpcCgpID09ICJbZGVmYXVsdF0g
aGVsbG8iCisKKyAgICBkZWYgdGVzdF9zaW1wbGVfY29uc3VtZXJfbWF0Y2goc2VsZik6CisgICAg
ICAgIGwgPSBbXQorICAgICAgICBweS5sb2cuc2V0Y29uc3VtZXIoIngxIiwgbC5hcHBlbmQpCisg
ICAgICAgIHAgPSBweS5sb2cuUHJvZHVjZXIoIngxIHgyIikKKyAgICAgICAgcCgiaGVsbG8iKQor
ICAgICAgICBhc3NlcnQgbAorICAgICAgICBhc3NlcnQgbFswXS5jb250ZW50KCkgPT0gImhlbGxv
IgorCisgICAgZGVmIHRlc3Rfc2ltcGxlX2NvbnN1bWVyX21hdGNoXzIoc2VsZik6CisgICAgICAg
IGwgPSBbXQorICAgICAgICBwID0gcHkubG9nLlByb2R1Y2VyKCJ4MSB4MiIpCisgICAgICAgIHB5
LmxvZy5zZXRjb25zdW1lcihwLl9rZXl3b3JkcywgbC5hcHBlbmQpCisgICAgICAgIHAoIjQyIikK
KyAgICAgICAgYXNzZXJ0IGwKKyAgICAgICAgYXNzZXJ0IGxbMF0uY29udGVudCgpID09ICI0MiIK
KworICAgIGRlZiB0ZXN0X25vX2F1dG9fcHJvZHVjZXIoc2VsZik6CisgICAgICAgIHAgPSBweS5s
b2cuUHJvZHVjZXIoJ3gnKQorICAgICAgICBweS50ZXN0LnJhaXNlcyhBdHRyaWJ1dGVFcnJvciwg
InAuX3giKQorICAgICAgICBweS50ZXN0LnJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgInAueF95IikK
KworICAgIGRlZiB0ZXN0X3NldGNvbnN1bWVyX3dpdGhfcHJvZHVjZXIoc2VsZik6CisgICAgICAg
IGwgPSBbXQorICAgICAgICBwID0gcHkubG9nLlByb2R1Y2VyKCJoZWxsbyIpCisgICAgICAgIHB5
LmxvZy5zZXRjb25zdW1lcihwLCBsLmFwcGVuZCkKKyAgICAgICAgcCgid29ybGQiKQorICAgICAg
ICBhc3NlcnQgc3RyKGxbMF0pID09ICJbaGVsbG9dIHdvcmxkIgorCisgICAgZGVmIHRlc3RfbXVs
dGlfY29uc3VtZXIoc2VsZik6CisgICAgICAgIGwgPSBbXQorICAgICAgICBweS5sb2cuc2V0Y29u
c3VtZXIoIngxIiwgbC5hcHBlbmQpCisgICAgICAgIHB5LmxvZy5zZXRjb25zdW1lcigieDEgeDIi
LCBOb25lKQorICAgICAgICBwID0gcHkubG9nLlByb2R1Y2VyKCJ4MSB4MiIpCisgICAgICAgIHAo
ImhlbGxvIikKKyAgICAgICAgYXNzZXJ0IG5vdCBsCisgICAgICAgIHB5LmxvZy5Qcm9kdWNlcigi
eDEiKSgiaGVsbG8iKQorICAgICAgICBhc3NlcnQgbAorICAgICAgICBhc3NlcnQgbFswXS5jb250
ZW50KCkgPT0gImhlbGxvIgorCisgICAgZGVmIHRlc3RfbG9nX3N0ZGVycihzZWxmKToKKyAgICAg
ICAgcHkubG9nLnNldGNvbnN1bWVyKCJ4eXoiLCBweS5sb2cuU1RET1VUKQorICAgICAgICByZXMs
IG91dCwgZXJyID0gY2FsbGNhcHR1cmUocHkubG9nLlByb2R1Y2VyKCJ4eXoiKSwgImhlbGxvIikK
KyAgICAgICAgYXNzZXJ0IG5vdCBlcnIKKyAgICAgICAgYXNzZXJ0IG91dC5zdHJpcCgpID09ICdb
eHl6XSBoZWxsbycKKworICAgIGRlZiB0ZXN0X2xvZ19maWxlKHNlbGYsIHRtcGRpcik6CisgICAg
ICAgIGN1c3RvbWxvZyA9IHRtcGRpci5qb2luKCdsb2cub3V0JykKKyAgICAgICAgcHkubG9nLnNl
dGNvbnN1bWVyKCJkZWZhdWx0Iiwgb3BlbihzdHIoY3VzdG9tbG9nKSwgJ3cnLCAxKSkKKyAgICAg
ICAgcHkubG9nLlByb2R1Y2VyKCJkZWZhdWx0IikoImhlbGxvIHdvcmxkICMxIikKKyAgICAgICAg
YXNzZXJ0IGN1c3RvbWxvZy5yZWFkbGluZXMoKSA9PSBbJ1tkZWZhdWx0XSBoZWxsbyB3b3JsZCAj
MVxuJ10KKworICAgICAgICBweS5sb2cuc2V0Y29uc3VtZXIoImRlZmF1bHQiLCBweS5sb2cuUGF0
aChjdXN0b21sb2csIGJ1ZmZlcmluZz1GYWxzZSkpCisgICAgICAgIHB5LmxvZy5Qcm9kdWNlcigi
ZGVmYXVsdCIpKCJoZWxsbyB3b3JsZCAjMiIpCisgICAgICAgIHJlcyA9IGN1c3RvbWxvZy5yZWFk
bGluZXMoKQorICAgICAgICBhc3NlcnQgcmVzID09IFsnW2RlZmF1bHRdIGhlbGxvIHdvcmxkICMy
XG4nXSAjIG5vIGFwcGVuZCBieSBkZWZhdWx0IQorCisgICAgZGVmIHRlc3RfbG9nX2ZpbGVfYXBw
ZW5kX21vZGUoc2VsZiwgdG1wZGlyKToKKyAgICAgICAgbG9nZmlsZWZuID0gdG1wZGlyLmpvaW4o
J2xvZ19hcHBlbmQub3V0JykKKworICAgICAgICAjIFRoZSBhcHBlbmQgbW9kZSBpcyBvbiBieSBk
ZWZhdWx0LCBzbyB3ZSBkb24ndCBuZWVkIHRvIHNwZWNpZnkgaXQgZm9yIEZpbGUKKyAgICAgICAg
cHkubG9nLnNldGNvbnN1bWVyKCJkZWZhdWx0IiwgcHkubG9nLlBhdGgobG9nZmlsZWZuLCBhcHBl
bmQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBidWZmZXJpbmc9MCkpCisgICAgICAgIGFzc2VydCBsb2dmaWxlZm4uY2hlY2soKQorICAg
ICAgICBweS5sb2cuUHJvZHVjZXIoImRlZmF1bHQiKSgiaGVsbG8gd29ybGQgIzEiKQorICAgICAg
ICBsaW5lcyA9IGxvZ2ZpbGVmbi5yZWFkbGluZXMoKQorICAgICAgICBhc3NlcnQgbGluZXMgPT0g
WydbZGVmYXVsdF0gaGVsbG8gd29ybGQgIzFcbiddCisgICAgICAgIHB5LmxvZy5zZXRjb25zdW1l
cigiZGVmYXVsdCIsIHB5LmxvZy5QYXRoKGxvZ2ZpbGVmbiwgYXBwZW5kPVRydWUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyaW5nPTAp
KQorICAgICAgICBweS5sb2cuUHJvZHVjZXIoImRlZmF1bHQiKSgiaGVsbG8gd29ybGQgIzEiKQor
ICAgICAgICBsaW5lcyA9IGxvZ2ZpbGVmbi5yZWFkbGluZXMoKQorICAgICAgICBhc3NlcnQgbGlu
ZXMgPT0gWydbZGVmYXVsdF0gaGVsbG8gd29ybGQgIzFcbicsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgJ1tkZWZhdWx0XSBoZWxsbyB3b3JsZCAjMVxuJ10KKworICAgIGRlZiB0ZXN0X2xvZ19m
aWxlX2RlbGF5ZWRfY3JlYXRlKHNlbGYsIHRtcGRpcik6CisgICAgICAgIGxvZ2ZpbGVmbiA9IHRt
cGRpci5qb2luKCdsb2dfY3JlYXRlLm91dCcpCisKKyAgICAgICAgcHkubG9nLnNldGNvbnN1bWVy
KCJkZWZhdWx0IiwgcHkubG9nLlBhdGgobG9nZmlsZWZuLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRlbGF5ZWRfY3JlYXRlPVRydWUsIGJ1ZmZlcmluZz0wKSkKKyAg
ICAgICAgYXNzZXJ0IG5vdCBsb2dmaWxlZm4uY2hlY2soKQorICAgICAgICBweS5sb2cuUHJvZHVj
ZXIoImRlZmF1bHQiKSgiaGVsbG8gd29ybGQgIzEiKQorICAgICAgICBsaW5lcyA9IGxvZ2ZpbGVm
bi5yZWFkbGluZXMoKQorICAgICAgICBhc3NlcnQgbGluZXMgPT0gWydbZGVmYXVsdF0gaGVsbG8g
d29ybGQgIzFcbiddCisKKyAgICBkZWYgdGVzdF9rZXl3b3JkX2Jhc2VkX2xvZ19maWxlcyhzZWxm
LCB0bXBkaXIpOgorICAgICAgICBsb2dmaWxlcyA9IFtdCisgICAgICAgIGtleXdvcmRzID0gJ2sx
IGsyIGszJy5zcGxpdCgpCisgICAgICAgIGZvciBrZXkgaW4ga2V5d29yZHM6CisgICAgICAgICAg
ICBwYXRoID0gdG1wZGlyLmpvaW4oa2V5KQorICAgICAgICAgICAgcHkubG9nLnNldGNvbnN1bWVy
KGtleSwgcHkubG9nLlBhdGgocGF0aCwgYnVmZmVyaW5nPTApKQorCisgICAgICAgIHB5LmxvZy5Q
cm9kdWNlcignazEnKSgnMScpCisgICAgICAgIHB5LmxvZy5Qcm9kdWNlcignazInKSgnMicpCisg
ICAgICAgIHB5LmxvZy5Qcm9kdWNlcignazMnKSgnMycpCisKKyAgICAgICAgZm9yIGtleSBpbiBr
ZXl3b3JkczoKKyAgICAgICAgICAgIHBhdGggPSB0bXBkaXIuam9pbihrZXkpCisgICAgICAgICAg
ICBhc3NlcnQgcGF0aC5yZWFkKCkuc3RyaXAoKSA9PSAnWyVzXSAlcycgJSAoa2V5LCBrZXlbLTFd
KQorCisgICAgIyBkaXNhYmxlZCBmb3Igbm93OyB0aGUgc3lzbG9nIGxvZyBmaWxlIGNhbiB1c3Vh
bGx5IGJlIHJlYWQgb25seSBieSByb290CisgICAgIyBJIG1hbnVhbGx5IGluc3BlY3RlZCAvdmFy
L2xvZy9tZXNzYWdlcyBhbmQgdGhlIGVudHJpZXMgd2VyZSB0aGVyZQorICAgIGRlZiBub190ZXN0
X2xvZ19zeXNsb2coc2VsZik6CisgICAgICAgIHB5LmxvZy5zZXRjb25zdW1lcigiZGVmYXVsdCIs
IHB5LmxvZy5TeXNsb2coKSkKKyAgICAgICAgcHkubG9nLmRlZmF1bHQoImhlbGxvIHdvcmxkICMx
IikKKworICAgICMgZGlzYWJsZWQgZm9yIG5vdyB1bnRpbCBJIGZpZ3VyZSBvdXQgaG93IHRvIHJl
YWQgZW50cmllcyBpbiB0aGUKKyAgICAjIEV2ZW50IExvZ3Mgb24gV2luZG93cworICAgICMgSSBt
YW51YWxseSBpbnNwZWN0ZWQgdGhlIEFwcGxpY2F0aW9uIExvZyBhbmQgdGhlIGVudHJpZXMgd2Vy
ZSB0aGVyZQorICAgIGRlZiBub190ZXN0X2xvZ193aW5ldmVudChzZWxmKToKKyAgICAgICAgcHku
bG9nLnNldGNvbnN1bWVyKCJkZWZhdWx0IiwgcHkubG9nLldpbkV2ZW50KCkpCisgICAgICAgIHB5
LmxvZy5kZWZhdWx0KCJoZWxsbyB3b3JsZCAjMSIpCisKKyAgICAjIGRpc2FibGVkIGZvciBub3cg
dW50aWwgSSBmaWd1cmUgb3V0IGhvdyB0byBwcm9wZXJseSBwYXNzIHRoZSBwYXJhbWV0ZXJzCisg
ICAgZGVmIG5vX3Rlc3RfbG9nX2VtYWlsKHNlbGYpOgorICAgICAgICBweS5sb2cuc2V0Y29uc3Vt
ZXIoImRlZmF1bHQiLCBweS5sb2cuRW1haWwobWFpbGhvc3Q9ImdoZW9yZ2hpdS5uZXQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbWFkZHI9
ImdyaWciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdG9hZGRycz0iZ3JpZyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdWJqZWN0ID0gInB5LmxvZyBlbWFpbCIpKQorICAgICAgICBweS5sb2cu
ZGVmYXVsdCgiaGVsbG8gd29ybGQgIzEiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2xv
Zy90ZXN0X3dhcm5pbmcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvbG9nL3Rlc3Rfd2FybmluZy5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hNDYwYzMxOWU4NzI3YzY5MmNmY2IwYjU2NzE0MWJiZDg4M2MyNmZkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2xvZy90ZXN0X3dhcm5pbmcucHkKQEAgLTAs
MCArMSw4NiBAQAoraW1wb3J0IHN5cworZnJvbSBkaXN0dXRpbHMudmVyc2lvbiBpbXBvcnQgTG9v
c2VWZXJzaW9uCisKK2ltcG9ydCBweXRlc3QKKworaW1wb3J0IHB5CisKK215cGF0aCA9IHB5LnBh
dGgubG9jYWwoX19maWxlX18pLm5ldyhleHQ9Ii5weSIpCisKKword2luID0gc3lzLnBsYXRmb3Jt
LnN0YXJ0c3dpdGgoJ3dpbicpCitweXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsuc2tpcGlmKHdpbiBh
bmQgTG9vc2VWZXJzaW9uKHB5dGVzdC5fX3ZlcnNpb25fXykgPj0gTG9vc2VWZXJzaW9uKCczLjEn
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uPSdhcGl3YXJuIGlzIG5v
dCBjb21wYXRpYmxlIHdpdGggcHl0ZXN0ID49IDMuMSAoIzE2MiknKQorCisKK0BweXRlc3QubWFy
ay54ZmFpbAorZGVmIHRlc3RfZm9yd2FyZGluZ190b193YXJuaW5nc19tb2R1bGUoKToKKyAgICBw
eXRlc3QuZGVwcmVjYXRlZF9jYWxsKHB5LmxvZy5fYXBpd2FybiwgIjEuMyIsICIuLiIpCisKK2Rl
ZiB0ZXN0X2FwaXdhcm5fZnVuY3Rpb25hbChyZWN3YXJuKToKKyAgICBjYXB0dXJlID0gcHkuaW8u
U3RkQ2FwdHVyZSgpCisgICAgcHkubG9nLl9hcGl3YXJuKCJ4LnkueiIsICJzb21ldGhpbmciLCBz
dGFja2xldmVsPTEpCisgICAgb3V0LCBlcnIgPSBjYXB0dXJlLnJlc2V0KCkKKyAgICBweS5idWls
dGluLnByaW50Xygib3V0Iiwgb3V0KQorICAgIHB5LmJ1aWx0aW4ucHJpbnRfKCJlcnIiLCBlcnIp
CisgICAgYXNzZXJ0IGVyci5maW5kKCJ4LnkueiIpICE9IC0xCisgICAgbG5vID0gcHkuY29kZS5n
ZXRyYXdjb2RlKHRlc3RfYXBpd2Fybl9mdW5jdGlvbmFsKS5jb19maXJzdGxpbmVubyArIDIKKyAg
ICBleHAgPSAiJXM6JXMiICUgKG15cGF0aCwgbG5vKQorICAgIGFzc2VydCBlcnIuZmluZChleHAp
ICE9IC0xCisKK2RlZiB0ZXN0X3N0YWNrbGV2ZWwocmVjd2Fybik6CisgICAgZGVmIGYoKToKKyAg
ICAgICAgcHkubG9nLl9hcGl3YXJuKCJ4IiwgInNvbWUiLCBzdGFja2xldmVsPTIpCisgICAgIyAz
CisgICAgIyA0CisgICAgY2FwdHVyZSA9IHB5LmlvLlN0ZENhcHR1cmUoKQorICAgIGYoKQorICAg
IG91dCwgZXJyID0gY2FwdHVyZS5yZXNldCgpCisgICAgbG5vID0gcHkuY29kZS5nZXRyYXdjb2Rl
KHRlc3Rfc3RhY2tsZXZlbCkuY29fZmlyc3RsaW5lbm8gKyA2CisgICAgd2FybmluZyA9IHN0cihl
cnIpCisgICAgYXNzZXJ0IHdhcm5pbmcuZmluZCgiOiVzIiAlIGxubykgIT0gLTEKKworZGVmIHRl
c3Rfc3RhY2tsZXZlbF9pbml0cGtnX3dpdGhfcmVzb2x2ZSh0ZXN0ZGlyLCByZWN3YXJuKToKKyAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUobW9kYWJjPSIiIgorICAgICAgICBpbXBvcnQgcHkKKyAgICAg
ICAgZGVmIGYoKToKKyAgICAgICAgICAgIHB5LmxvZy5fYXBpd2FybigieCIsICJzb21lIiwgc3Rh
Y2tsZXZlbD0iYXBpcGtnMTIzIikKKyAgICAiIiIpCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKGFw
aXBrZzEyMz0iIiIKKyAgICAgICAgZGVmIF9fZ2V0YXR0cl9fKCk6CisgICAgICAgICAgICBpbXBv
cnQgbW9kYWJjCisgICAgICAgICAgICBtb2RhYmMuZigpCisgICAgIiIiKQorICAgIHAgPSB0ZXN0
ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBhcGlwa2cxMjMKKyAgICAgICAgYXBp
cGtnMTIzLl9fZ2V0YXR0cl9fKCkKKyAgICAiIiIpCisgICAgY2FwdHVyZSA9IHB5LmlvLlN0ZENh
cHR1cmUoKQorICAgIHAucHlpbXBvcnQoKQorICAgIG91dCwgZXJyID0gY2FwdHVyZS5yZXNldCgp
CisgICAgd2FybmluZyA9IHN0cihlcnIpCisgICAgbG9jID0gJ3Rlc3Rfc3RhY2tsZXZlbF9pbml0
cGtnX3dpdGhfcmVzb2x2ZS5weToyJworICAgIGFzc2VydCB3YXJuaW5nLmZpbmQobG9jKSAhPSAt
MQorCitkZWYgdGVzdF9zdGFja2xldmVsX2luaXRwa2dfbm9fcmVzb2x2ZShyZWN3YXJuKToKKyAg
ICBkZWYgZigpOgorICAgICAgICBweS5sb2cuX2FwaXdhcm4oIngiLCAic29tZSIsIHN0YWNrbGV2
ZWw9ImFwaXBrZyIpCisgICAgY2FwdHVyZSA9IHB5LmlvLlN0ZENhcHR1cmUoKQorICAgIGYoKQor
ICAgIG91dCwgZXJyID0gY2FwdHVyZS5yZXNldCgpCisgICAgbG5vID0gcHkuY29kZS5nZXRyYXdj
b2RlKHRlc3Rfc3RhY2tsZXZlbF9pbml0cGtnX25vX3Jlc29sdmUpLmNvX2ZpcnN0bGluZW5vICsg
MgorICAgIHdhcm5pbmcgPSBzdHIoZXJyKQorICAgIGFzc2VydCB3YXJuaW5nLmZpbmQoIjolcyIg
JSBsbm8pICE9IC0xCisKKworZGVmIHRlc3RfZnVuY3Rpb24ocmVjd2Fybik6CisgICAgY2FwdHVy
ZSA9IHB5LmlvLlN0ZENhcHR1cmUoKQorICAgIHB5LmxvZy5fYXBpd2FybigieC55LnoiLCAic29t
ZXRoaW5nIiwgZnVuY3Rpb249dGVzdF9mdW5jdGlvbikKKyAgICBvdXQsIGVyciA9IGNhcHR1cmUu
cmVzZXQoKQorICAgIHB5LmJ1aWx0aW4ucHJpbnRfKCJvdXQiLCBvdXQpCisgICAgcHkuYnVpbHRp
bi5wcmludF8oImVyciIsIGVycikKKyAgICBhc3NlcnQgZXJyLmZpbmQoIngueS56IikgIT0gLTEK
KyAgICBsbm8gPSBweS5jb2RlLmdldHJhd2NvZGUodGVzdF9mdW5jdGlvbikuY29fZmlyc3RsaW5l
bm8KKyAgICBleHAgPSAiJXM6JXMiICUgKG15cGF0aCwgbG5vKQorICAgIGFzc2VydCBlcnIuZmlu
ZChleHApICE9IC0xCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9sb2cvdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvbG9nL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVl
ZDQzZmI1OGJhYjU2OTJkMDk2MGMyZDdmMGMxZjBkZjM0MTVjMGEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3Rlc3RpbmcvbG9nL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTkgQEAKK1Ro
ZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBv
c2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJ
bnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6
Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xz
L1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9U
IG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRp
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZp
bGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvdGVzdGluZy9sb2cvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3Rpbmcv
bG9nL3Rlc3RfbG9nLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2xvZy90ZXN0X3dhcm5pbmcucHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wYXRoL2NvbW1vbi5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGlu
Zy9wYXRoL2NvbW1vbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNjlhMWMzOWQwOTkwMzQ2MzhhMzdlMzZiZjYy
NjI5MDBjMTBlYWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvY29t
bW9uLnB5CkBAIC0wLDAgKzEsNDkyIEBACitpbXBvcnQgcHkKK2ltcG9ydCBzeXMKKworaW1wb3J0
IHB5dGVzdAorCitjbGFzcyBDb21tb25GU1Rlc3RzKG9iamVjdCk6CisgICAgZGVmIHRlc3RfY29u
c3RydWN0b3JfZXF1YWxpdHkoc2VsZiwgcGF0aDEpOgorICAgICAgICBwID0gcGF0aDEuX19jbGFz
c19fKHBhdGgxKQorICAgICAgICBhc3NlcnQgcCA9PSBwYXRoMQorCisgICAgZGVmIHRlc3RfZXFf
bm9uc3RyaW5nKHNlbGYsIHBhdGgxKToKKyAgICAgICAgcDEgPSBwYXRoMS5qb2luKCdzYW1wbGVk
aXInKQorICAgICAgICBwMiA9IHBhdGgxLmpvaW4oJ3NhbXBsZWRpcicpCisgICAgICAgIGFzc2Vy
dCBwMSA9PSBwMgorCisgICAgZGVmIHRlc3RfbmV3X2lkZW50aWNhbChzZWxmLCBwYXRoMSk6Cisg
ICAgICAgIGFzc2VydCBwYXRoMSA9PSBwYXRoMS5uZXcoKQorCisgICAgZGVmIHRlc3Rfam9pbihz
ZWxmLCBwYXRoMSk6CisgICAgICAgIHAgPSBwYXRoMS5qb2luKCdzYW1wbGVkaXInKQorICAgICAg
ICBzdHJwID0gc3RyKHApCisgICAgICAgIGFzc2VydCBzdHJwLmVuZHN3aXRoKCdzYW1wbGVkaXIn
KQorICAgICAgICBhc3NlcnQgc3RycC5zdGFydHN3aXRoKHN0cihwYXRoMSkpCisKKyAgICBkZWYg
dGVzdF9qb2luX25vcm1hbGl6ZWQoc2VsZiwgcGF0aDEpOgorICAgICAgICBuZXdwYXRoID0gcGF0
aDEuam9pbihwYXRoMS5zZXArJ3NhbXBsZWRpcicpCisgICAgICAgIHN0cnAgPSBzdHIobmV3cGF0
aCkKKyAgICAgICAgYXNzZXJ0IHN0cnAuZW5kc3dpdGgoJ3NhbXBsZWRpcicpCisgICAgICAgIGFz
c2VydCBzdHJwLnN0YXJ0c3dpdGgoc3RyKHBhdGgxKSkKKyAgICAgICAgbmV3cGF0aCA9IHBhdGgx
LmpvaW4oKHBhdGgxLnNlcCoyKSArICdzYW1wbGVkaXInKQorICAgICAgICBzdHJwID0gc3RyKG5l
d3BhdGgpCisgICAgICAgIGFzc2VydCBzdHJwLmVuZHN3aXRoKCdzYW1wbGVkaXInKQorICAgICAg
ICBhc3NlcnQgc3RycC5zdGFydHN3aXRoKHN0cihwYXRoMSkpCisKKyAgICBkZWYgdGVzdF9qb2lu
X25vYXJncyhzZWxmLCBwYXRoMSk6CisgICAgICAgIG5ld3BhdGggPSBwYXRoMS5qb2luKCkKKyAg
ICAgICAgYXNzZXJ0IHBhdGgxID09IG5ld3BhdGgKKworICAgIGRlZiB0ZXN0X2FkZF9zb21ldGhp
bmcoc2VsZiwgcGF0aDEpOgorICAgICAgICBwID0gcGF0aDEuam9pbignc2FtcGxlJykKKyAgICAg
ICAgcCA9IHAgKyAnZGlyJworICAgICAgICBhc3NlcnQgcC5jaGVjaygpCisgICAgICAgIGFzc2Vy
dCBwLmV4aXN0cygpCisgICAgICAgIGFzc2VydCBwLmlzZGlyKCkKKyAgICAgICAgYXNzZXJ0IG5v
dCBwLmlzZmlsZSgpCisKKyAgICBkZWYgdGVzdF9wYXJ0cyhzZWxmLCBwYXRoMSk6CisgICAgICAg
IG5ld3BhdGggPSBwYXRoMS5qb2luKCdzYW1wbGVkaXInLCAnb3RoZXJmaWxlJykKKyAgICAgICAg
cGFyID0gbmV3cGF0aC5wYXJ0cygpWy0zOl0KKyAgICAgICAgYXNzZXJ0IHBhciA9PSBbcGF0aDEs
IHBhdGgxLmpvaW4oJ3NhbXBsZWRpcicpLCBuZXdwYXRoXQorCisgICAgICAgIHJldnBhciA9IG5l
d3BhdGgucGFydHMocmV2ZXJzZT1UcnVlKVs6M10KKyAgICAgICAgYXNzZXJ0IHJldnBhciA9PSBb
bmV3cGF0aCwgcGF0aDEuam9pbignc2FtcGxlZGlyJyksIHBhdGgxXQorCisgICAgZGVmIHRlc3Rf
Y29tbW9uKHNlbGYsIHBhdGgxKToKKyAgICAgICAgb3RoZXIgPSBwYXRoMS5qb2luKCdzYW1wbGVk
aXInKQorICAgICAgICB4ID0gb3RoZXIuY29tbW9uKHBhdGgxKQorICAgICAgICBhc3NlcnQgeCA9
PSBwYXRoMQorCisgICAgI2RlZiB0ZXN0X3BhcmVudHNfbm9uZXhpc3RpbmdfZmlsZShzZWxmLCBw
YXRoMSk6CisgICAgIyAgICBuZXdwYXRoID0gcGF0aDEgLyAnZGlybm9leGlzdCcgLyAnbm9uZXhp
c3RpbmcgZmlsZScKKyAgICAjICAgIHBhciA9IGxpc3QobmV3cGF0aC5wYXJlbnRzKCkpCisgICAg
IyAgICBhc3NlcnQgcGFyWzoyXSA9PSBbcGF0aDEgLyAnZGlybm9leGlzdCcsIHBhdGgxXQorCisg
ICAgZGVmIHRlc3RfYmFzZW5hbWVfY2hlY2tzKHNlbGYsIHBhdGgxKToKKyAgICAgICAgbmV3cGF0
aCA9IHBhdGgxLmpvaW4oJ3NhbXBsZWRpcicpCisgICAgICAgIGFzc2VydCBuZXdwYXRoLmNoZWNr
KGJhc2VuYW1lPSdzYW1wbGVkaXInKQorICAgICAgICBhc3NlcnQgbmV3cGF0aC5jaGVjayhub3Ri
YXNlbmFtZT0neHl6JykKKyAgICAgICAgYXNzZXJ0IG5ld3BhdGguYmFzZW5hbWUgPT0gJ3NhbXBs
ZWRpcicKKworICAgIGRlZiB0ZXN0X2Jhc2VuYW1lKHNlbGYsIHBhdGgxKToKKyAgICAgICAgbmV3
cGF0aCA9IHBhdGgxLmpvaW4oJ3NhbXBsZWRpcicpCisgICAgICAgIGFzc2VydCBuZXdwYXRoLmNo
ZWNrKGJhc2VuYW1lPSdzYW1wbGVkaXInKQorICAgICAgICBhc3NlcnQgbmV3cGF0aC5iYXNlbmFt
ZSwgJ3NhbXBsZWRpcicKKworICAgIGRlZiB0ZXN0X2Rpcm5hbWUoc2VsZiwgcGF0aDEpOgorICAg
ICAgICBuZXdwYXRoID0gcGF0aDEuam9pbignc2FtcGxlZGlyJykKKyAgICAgICAgYXNzZXJ0IG5l
d3BhdGguZGlybmFtZSA9PSBzdHIocGF0aDEpCisKKyAgICBkZWYgdGVzdF9kaXJwYXRoKHNlbGYs
IHBhdGgxKToKKyAgICAgICAgbmV3cGF0aCA9IHBhdGgxLmpvaW4oJ3NhbXBsZWRpcicpCisgICAg
ICAgIGFzc2VydCBuZXdwYXRoLmRpcnBhdGgoKSA9PSBwYXRoMQorCisgICAgZGVmIHRlc3RfZGly
cGF0aF93aXRoX2FyZ3Moc2VsZiwgcGF0aDEpOgorICAgICAgICBuZXdwYXRoID0gcGF0aDEuam9p
bignc2FtcGxlZGlyJykKKyAgICAgICAgYXNzZXJ0IG5ld3BhdGguZGlycGF0aCgneCcpID09IHBh
dGgxLmpvaW4oJ3gnKQorCisgICAgZGVmIHRlc3RfbmV3YmFzZW5hbWUoc2VsZiwgcGF0aDEpOgor
ICAgICAgICBuZXdwYXRoID0gcGF0aDEuam9pbignc2FtcGxlZmlsZScpCisgICAgICAgIG5ld2Jh
c2UgPSBuZXdwYXRoLm5ldyhiYXNlbmFtZT0ic2FtcGxlZmlsZTIiKQorICAgICAgICBhc3NlcnQg
bmV3YmFzZS5iYXNlbmFtZSA9PSAic2FtcGxlZmlsZTIiCisgICAgICAgIGFzc2VydCBuZXdiYXNl
LmRpcnBhdGgoKSA9PSBuZXdwYXRoLmRpcnBhdGgoKQorCisgICAgZGVmIHRlc3Rfbm90X2V4aXN0
cyhzZWxmLCBwYXRoMSk6CisgICAgICAgIGFzc2VydCBub3QgcGF0aDEuam9pbignZG9lc19ub3Rf
ZXhpc3QnKS5jaGVjaygpCisgICAgICAgIGFzc2VydCBwYXRoMS5qb2luKCdkb2VzX25vdF9leGlz
dCcpLmNoZWNrKGV4aXN0cz0wKQorCisgICAgZGVmIHRlc3RfZXhpc3RzKHNlbGYsIHBhdGgxKToK
KyAgICAgICAgYXNzZXJ0IHBhdGgxLmpvaW4oInNhbXBsZWZpbGUiKS5jaGVjaygpCisgICAgICAg
IGFzc2VydCBwYXRoMS5qb2luKCJzYW1wbGVmaWxlIikuY2hlY2soZXhpc3RzPTEpCisgICAgICAg
IGFzc2VydCBwYXRoMS5qb2luKCJzYW1wbGVmaWxlIikuZXhpc3RzKCkKKyAgICAgICAgYXNzZXJ0
IHBhdGgxLmpvaW4oInNhbXBsZWZpbGUiKS5pc2ZpbGUoKQorICAgICAgICBhc3NlcnQgbm90IHBh
dGgxLmpvaW4oInNhbXBsZWZpbGUiKS5pc2RpcigpCisKKyAgICBkZWYgdGVzdF9kaXIoc2VsZiwg
cGF0aDEpOgorICAgICAgICAjcHJpbnQgcmVwcihwYXRoMS5qb2luKCJzYW1wbGVkaXIiKSkKKyAg
ICAgICAgYXNzZXJ0IHBhdGgxLmpvaW4oInNhbXBsZWRpciIpLmNoZWNrKGRpcj0xKQorICAgICAg
ICBhc3NlcnQgcGF0aDEuam9pbignc2FtcGxlZmlsZScpLmNoZWNrKG5vdGRpcj0xKQorICAgICAg
ICBhc3NlcnQgbm90IHBhdGgxLmpvaW4oInNhbXBsZWZpbGUiKS5jaGVjayhkaXI9MSkKKyAgICAg
ICAgYXNzZXJ0IHBhdGgxLmpvaW4oInNhbXBsZWZpbGUiKS5leGlzdHMoKQorICAgICAgICBhc3Nl
cnQgbm90IHBhdGgxLmpvaW4oInNhbXBsZWZpbGUiKS5pc2RpcigpCisgICAgICAgIGFzc2VydCBw
YXRoMS5qb2luKCJzYW1wbGVmaWxlIikuaXNmaWxlKCkKKworICAgIGRlZiB0ZXN0X2ZubWF0Y2hf
ZmlsZShzZWxmLCBwYXRoMSk6CisgICAgICAgIGFzc2VydCBwYXRoMS5qb2luKCJzYW1wbGVmaWxl
IikuY2hlY2soZm5tYXRjaD0ncyplJykKKyAgICAgICAgYXNzZXJ0IHBhdGgxLmpvaW4oInNhbXBs
ZWZpbGUiKS5mbm1hdGNoKCdzKmUnKQorICAgICAgICBhc3NlcnQgbm90IHBhdGgxLmpvaW4oInNh
bXBsZWZpbGUiKS5mbm1hdGNoKCdzKngnKQorICAgICAgICBhc3NlcnQgbm90IHBhdGgxLmpvaW4o
InNhbXBsZWZpbGUiKS5jaGVjayhmbm1hdGNoPSdzKngnKQorCisgICAgI2RlZiB0ZXN0X2ZubWF0
Y2hfZGlyKHNlbGYsIHBhdGgxKToKKworICAgICMgICAgcGF0dGVybiA9IHBhdGgxLnNlcC5qb2lu
KFsncypmaWxlJ10pCisgICAgIyAgICBzZmlsZSA9IHBhdGgxLmpvaW4oInNhbXBsZWZpbGUiKQor
ICAgICMgICAgYXNzZXJ0IHNmaWxlLmNoZWNrKGZubWF0Y2g9cGF0dGVybikKKworICAgIGRlZiB0
ZXN0X3JlbHRvKHNlbGYsIHBhdGgxKToKKyAgICAgICAgbD1wYXRoMS5qb2luKCJzYW1wbGVkaXIi
LCAib3RoZXJmaWxlIikKKyAgICAgICAgYXNzZXJ0IGwucmVsdG8ocGF0aDEpID09IGwuc2VwLmpv
aW4oWyJzYW1wbGVkaXIiLCAib3RoZXJmaWxlIl0pCisgICAgICAgIGFzc2VydCBsLmNoZWNrKHJl
bHRvPXBhdGgxKQorICAgICAgICBhc3NlcnQgcGF0aDEuY2hlY2sobm90cmVsdG89bCkKKyAgICAg
ICAgYXNzZXJ0IG5vdCBwYXRoMS5jaGVjayhyZWx0bz1sKQorCisgICAgZGVmIHRlc3RfYmVzdHJl
bHBhdGgoc2VsZiwgcGF0aDEpOgorICAgICAgICBjdXJkaXIgPSBwYXRoMQorICAgICAgICBzZXAg
PSBjdXJkaXIuc2VwCisgICAgICAgIHMgPSBjdXJkaXIuYmVzdHJlbHBhdGgoY3VyZGlyKQorICAg
ICAgICBhc3NlcnQgcyA9PSAiLiIKKyAgICAgICAgcyA9IGN1cmRpci5iZXN0cmVscGF0aChjdXJk
aXIuam9pbigiaGVsbG8iLCAid29ybGQiKSkKKyAgICAgICAgYXNzZXJ0IHMgPT0gImhlbGxvIiAr
IHNlcCArICJ3b3JsZCIKKworICAgICAgICBzID0gY3VyZGlyLmJlc3RyZWxwYXRoKGN1cmRpci5k
aXJwYXRoKCkuam9pbigic2lzdGVyIikpCisgICAgICAgIGFzc2VydCBzID09ICIuLiIgKyBzZXAg
KyAic2lzdGVyIgorICAgICAgICBhc3NlcnQgY3VyZGlyLmJlc3RyZWxwYXRoKGN1cmRpci5kaXJw
YXRoKCkpID09ICIuLiIKKworICAgICAgICBhc3NlcnQgY3VyZGlyLmJlc3RyZWxwYXRoKCJoZWxs
byIpID09ICJoZWxsbyIKKworICAgIGRlZiB0ZXN0X3JlbHRvX25vdF9yZWxhdGl2ZShzZWxmLCBw
YXRoMSk6CisgICAgICAgIGwxPXBhdGgxLmpvaW4oImJjZGUiKQorICAgICAgICBsMj1wYXRoMS5q
b2luKCJiIikKKyAgICAgICAgYXNzZXJ0IG5vdCBsMS5yZWx0byhsMikKKyAgICAgICAgYXNzZXJ0
IG5vdCBsMi5yZWx0byhsMSkKKworICAgIEBweS50ZXN0Lm1hcmsueGZhaWwoInN5cy5wbGF0Zm9y
bS5zdGFydHN3aXRoKCdqYXZhJykiKQorICAgIGRlZiB0ZXN0X2xpc3RkaXIoc2VsZiwgcGF0aDEp
OgorICAgICAgICBsID0gcGF0aDEubGlzdGRpcigpCisgICAgICAgIGFzc2VydCBwYXRoMS5qb2lu
KCdzYW1wbGVkaXInKSBpbiBsCisgICAgICAgIGFzc2VydCBwYXRoMS5qb2luKCdzYW1wbGVmaWxl
JykgaW4gbAorICAgICAgICBweS50ZXN0LnJhaXNlcyhweS5lcnJvci5FTk9URElSLAorICAgICAg
ICAgICAgICAgICAgICAgICAicGF0aDEuam9pbignc2FtcGxlZmlsZScpLmxpc3RkaXIoKSIpCisK
KyAgICBkZWYgdGVzdF9saXN0ZGlyX2ZubWF0Y2hzdHJpbmcoc2VsZiwgcGF0aDEpOgorICAgICAg
ICBsID0gcGF0aDEubGlzdGRpcigncypkaXInKQorICAgICAgICBhc3NlcnQgbGVuKGwpCisgICAg
ICAgIGFzc2VydCBsWzBdLCBwYXRoMS5qb2luKCdzYW1wbGVkaXInKQorCisgICAgZGVmIHRlc3Rf
bGlzdGRpcl9maWx0ZXIoc2VsZiwgcGF0aDEpOgorICAgICAgICBsID0gcGF0aDEubGlzdGRpcihs
YW1iZGEgeDogeC5jaGVjayhkaXI9MSkpCisgICAgICAgIGFzc2VydCBwYXRoMS5qb2luKCdzYW1w
bGVkaXInKSBpbiBsCisgICAgICAgIGFzc2VydCBub3QgcGF0aDEuam9pbignc2FtcGxlZmlsZScp
IGluIGwKKworICAgIGRlZiB0ZXN0X2xpc3RkaXJfc29ydGVkKHNlbGYsIHBhdGgxKToKKyAgICAg
ICAgbCA9IHBhdGgxLmxpc3RkaXIobGFtYmRhIHg6IHguY2hlY2soYmFzZXN0YXJ0cz0ic2FtcGxl
IiksIHNvcnQ9VHJ1ZSkKKyAgICAgICAgYXNzZXJ0IHBhdGgxLmpvaW4oJ3NhbXBsZWRpcicpID09
IGxbMF0KKyAgICAgICAgYXNzZXJ0IHBhdGgxLmpvaW4oJ3NhbXBsZWZpbGUnKSA9PSBsWzFdCisg
ICAgICAgIGFzc2VydCBwYXRoMS5qb2luKCdzYW1wbGVwaWNrbGUnKSA9PSBsWzJdCisKKyAgICBk
ZWYgdGVzdF92aXNpdF9ub2ZpbHRlcihzZWxmLCBwYXRoMSk6CisgICAgICAgIGwgPSBbXQorICAg
ICAgICBmb3IgaSBpbiBwYXRoMS52aXNpdCgpOgorICAgICAgICAgICAgbC5hcHBlbmQoaS5yZWx0
byhwYXRoMSkpCisgICAgICAgIGFzc2VydCAic2FtcGxlZGlyIiBpbiBsCisgICAgICAgIGFzc2Vy
dCBwYXRoMS5zZXAuam9pbihbInNhbXBsZWRpciIsICJvdGhlcmZpbGUiXSkgaW4gbAorCisgICAg
ZGVmIHRlc3RfdmlzaXRfbm9yZWN1cnNlKHNlbGYsIHBhdGgxKToKKyAgICAgICAgbCA9IFtdCisg
ICAgICAgIGZvciBpIGluIHBhdGgxLnZpc2l0KE5vbmUsIGxhbWJkYSB4OiB4LmJhc2VuYW1lICE9
ICJzYW1wbGVkaXIiKToKKyAgICAgICAgICAgIGwuYXBwZW5kKGkucmVsdG8ocGF0aDEpKQorICAg
ICAgICBhc3NlcnQgInNhbXBsZWRpciIgaW4gbAorICAgICAgICBhc3NlcnQgbm90IHBhdGgxLnNl
cC5qb2luKFsic2FtcGxlZGlyIiwgIm90aGVyZmlsZSJdKSBpbiBsCisKKyAgICBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoJ2ZpbCcsIFsnKmRpcicsIHUnKmRpcicsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHB5dGVzdC5tYXJrLnNraXAoInN5cy52ZXJzaW9uX2luZm8gPCIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICgzLDYpIikoYicqZGly
JyldKQorICAgIGRlZiB0ZXN0X3Zpc2l0X2ZpbHRlcmZ1bmNfaXNfc3RyaW5nKHNlbGYsIHBhdGgx
LCBmaWwpOgorICAgICAgICBsID0gW10KKyAgICAgICAgZm9yIGkgaW4gcGF0aDEudmlzaXQoZmls
KToKKyAgICAgICAgICAgIGwuYXBwZW5kKGkucmVsdG8ocGF0aDEpKQorICAgICAgICBhc3NlcnQg
bGVuKGwpLCAyCisgICAgICAgIGFzc2VydCAic2FtcGxlZGlyIiBpbiBsCisgICAgICAgIGFzc2Vy
dCAib3RoZXJkaXIiIGluIGwKKworICAgIEBweS50ZXN0Lm1hcmsueGZhaWwoInN5cy5wbGF0Zm9y
bS5zdGFydHN3aXRoKCdqYXZhJykiKQorICAgIGRlZiB0ZXN0X3Zpc2l0X2lnbm9yZShzZWxmLCBw
YXRoMSk6CisgICAgICAgIHAgPSBwYXRoMS5qb2luKCdub25leGlzdGluZycpCisgICAgICAgIGFz
c2VydCBsaXN0KHAudmlzaXQoaWdub3JlPXB5LmVycm9yLkVOT0VOVCkpID09IFtdCisKKyAgICBk
ZWYgdGVzdF92aXNpdF9lbmRzd2l0aChzZWxmLCBwYXRoMSk6CisgICAgICAgIGwgPSBbXQorICAg
ICAgICBmb3IgaSBpbiBwYXRoMS52aXNpdChsYW1iZGEgeDogeC5jaGVjayhlbmRzd2l0aD0iZmls
ZSIpKToKKyAgICAgICAgICAgIGwuYXBwZW5kKGkucmVsdG8ocGF0aDEpKQorICAgICAgICBhc3Nl
cnQgcGF0aDEuc2VwLmpvaW4oWyJzYW1wbGVkaXIiLCAib3RoZXJmaWxlIl0pIGluIGwKKyAgICAg
ICAgYXNzZXJ0ICJzYW1wbGVmaWxlIiBpbiBsCisKKyAgICBkZWYgdGVzdF9lbmRzd2l0aChzZWxm
LCBwYXRoMSk6CisgICAgICAgIGFzc2VydCBwYXRoMS5jaGVjayhub3RlbmRzd2l0aD0nLnB5JykK
KyAgICAgICAgeCA9IHBhdGgxLmpvaW4oJ3NhbXBsZWZpbGUnKQorICAgICAgICBhc3NlcnQgeC5j
aGVjayhlbmRzd2l0aD0nZmlsZScpCisKKyAgICBkZWYgdGVzdF9jbXAoc2VsZiwgcGF0aDEpOgor
ICAgICAgICBwYXRoMSA9IHBhdGgxLmpvaW4oJ3NhbXBsZWZpbGUnKQorICAgICAgICBwYXRoMiA9
IHBhdGgxLmpvaW4oJ3NhbXBsZWZpbGUyJykKKyAgICAgICAgYXNzZXJ0IChwYXRoMSA8IHBhdGgy
KSA9PSAoJ3NhbXBsZWZpbGUnIDwgJ3NhbXBsZWZpbGUyJykKKyAgICAgICAgYXNzZXJ0IG5vdCAo
cGF0aDEgPCBwYXRoMSkKKworICAgIGRlZiB0ZXN0X3NpbXBsZV9yZWFkKHNlbGYsIHBhdGgxKToK
KyAgICAgICAgeCA9IHBhdGgxLmpvaW4oJ3NhbXBsZWZpbGUnKS5yZWFkKCdyJykKKyAgICAgICAg
YXNzZXJ0IHggPT0gJ3NhbXBsZWZpbGVcbicKKworICAgIGRlZiB0ZXN0X2pvaW5fZGl2X29wZXJh
dG9yKHNlbGYsIHBhdGgxKToKKyAgICAgICAgbmV3cGF0aCA9IHBhdGgxIC8gJy9zYW1wbGVkaXIn
IC8gJy90ZXN0Ly8nCisgICAgICAgIG5ld3BhdGgyID0gcGF0aDEuam9pbignc2FtcGxlZGlyJywg
J3Rlc3QnKQorICAgICAgICBhc3NlcnQgbmV3cGF0aCA9PSBuZXdwYXRoMgorCisgICAgZGVmIHRl
c3RfZXh0KHNlbGYsIHBhdGgxKToKKyAgICAgICAgbmV3cGF0aCA9IHBhdGgxLmpvaW4oJ3NhbXBs
ZWRpci5leHQnKQorICAgICAgICBhc3NlcnQgbmV3cGF0aC5leHQgPT0gJy5leHQnCisgICAgICAg
IG5ld3BhdGggPSBwYXRoMS5qb2luKCdzYW1wbGVkaXInKQorICAgICAgICBhc3NlcnQgbm90IG5l
d3BhdGguZXh0CisKKyAgICBkZWYgdGVzdF9wdXJlYmFzZW5hbWUoc2VsZiwgcGF0aDEpOgorICAg
ICAgICBuZXdwYXRoID0gcGF0aDEuam9pbignc2FtcGxlZmlsZS5weScpCisgICAgICAgIGFzc2Vy
dCBuZXdwYXRoLnB1cmViYXNlbmFtZSA9PSAnc2FtcGxlZmlsZScKKworICAgIGRlZiB0ZXN0X211
bHRpcGxlX3BhcnRzKHNlbGYsIHBhdGgxKToKKyAgICAgICAgbmV3cGF0aCA9IHBhdGgxLmpvaW4o
J3NhbXBsZWZpbGUucHknKQorICAgICAgICBkaXJuYW1lLCBwdXJlYmFzZW5hbWUsIGJhc2VuYW1l
LCBleHQgPSBuZXdwYXRoLl9nZXRieXNwZWMoCisgICAgICAgICAgICAnZGlybmFtZSxwdXJlYmFz
ZW5hbWUsYmFzZW5hbWUsZXh0JykKKyAgICAgICAgYXNzZXJ0IHN0cihwYXRoMSkuZW5kc3dpdGgo
ZGlybmFtZSkgIyBiZSBjYXJlZnVsIHdpdGggd2luMzIgJ2RyaXZlJworICAgICAgICBhc3NlcnQg
cHVyZWJhc2VuYW1lID09ICdzYW1wbGVmaWxlJworICAgICAgICBhc3NlcnQgYmFzZW5hbWUgPT0g
J3NhbXBsZWZpbGUucHknCisgICAgICAgIGFzc2VydCBleHQgPT0gJy5weScKKworICAgIGRlZiB0
ZXN0X2RvdHRlZF9uYW1lX2V4dChzZWxmLCBwYXRoMSk6CisgICAgICAgIG5ld3BhdGggPSBwYXRo
MS5qb2luKCdhLmIuYycpCisgICAgICAgIGV4dCA9IG5ld3BhdGguZXh0CisgICAgICAgIGFzc2Vy
dCBleHQgPT0gJy5jJworICAgICAgICBhc3NlcnQgbmV3cGF0aC5leHQgPT0gJy5jJworCisgICAg
ZGVmIHRlc3RfbmV3ZXh0KHNlbGYsIHBhdGgxKToKKyAgICAgICAgbmV3cGF0aCA9IHBhdGgxLmpv
aW4oJ3NhbXBsZWZpbGUucHknKQorICAgICAgICBuZXdleHQgPSBuZXdwYXRoLm5ldyhleHQ9Jy50
eHQnKQorICAgICAgICBhc3NlcnQgbmV3ZXh0LmJhc2VuYW1lID09ICJzYW1wbGVmaWxlLnR4dCIK
KyAgICAgICAgYXNzZXJ0IG5ld2V4dC5wdXJlYmFzZW5hbWUgPT0gInNhbXBsZWZpbGUiCisKKyAg
ICBkZWYgdGVzdF9yZWFkbGluZXMoc2VsZiwgcGF0aDEpOgorICAgICAgICBmbiA9IHBhdGgxLmpv
aW4oJ3NhbXBsZWZpbGUnKQorICAgICAgICBjb250ZW50cyA9IGZuLnJlYWRsaW5lcygpCisgICAg
ICAgIGFzc2VydCBjb250ZW50cyA9PSBbJ3NhbXBsZWZpbGVcbiddCisKKyAgICBkZWYgdGVzdF9y
ZWFkbGluZXNfbm9jcihzZWxmLCBwYXRoMSk6CisgICAgICAgIGZuID0gcGF0aDEuam9pbignc2Ft
cGxlZmlsZScpCisgICAgICAgIGNvbnRlbnRzID0gZm4ucmVhZGxpbmVzKGNyPTApCisgICAgICAg
IGFzc2VydCBjb250ZW50cyA9PSBbJ3NhbXBsZWZpbGUnLCAnJ10KKworICAgIGRlZiB0ZXN0X2Zp
bGUoc2VsZiwgcGF0aDEpOgorICAgICAgICBhc3NlcnQgcGF0aDEuam9pbignc2FtcGxlZmlsZScp
LmNoZWNrKGZpbGU9MSkKKworICAgIGRlZiB0ZXN0X25vdF9maWxlKHNlbGYsIHBhdGgxKToKKyAg
ICAgICAgYXNzZXJ0IG5vdCBwYXRoMS5qb2luKCJzYW1wbGVkaXIiKS5jaGVjayhmaWxlPTEpCisg
ICAgICAgIGFzc2VydCBwYXRoMS5qb2luKCJzYW1wbGVkaXIiKS5jaGVjayhmaWxlPTApCisKKyAg
ICBkZWYgdGVzdF9ub25fZXhpc3RlbnQoc2VsZiwgcGF0aDEpOgorICAgICAgICBhc3NlcnQgcGF0
aDEuam9pbigic2FtcGxlZGlyLm5vdGhlcmUiKS5jaGVjayhkaXI9MCkKKyAgICAgICAgYXNzZXJ0
IHBhdGgxLmpvaW4oInNhbXBsZWRpci5ub3RoZXJlIikuY2hlY2soZmlsZT0wKQorICAgICAgICBh
c3NlcnQgcGF0aDEuam9pbigic2FtcGxlZGlyLm5vdGhlcmUiKS5jaGVjayhub3RmaWxlPTEpCisg
ICAgICAgIGFzc2VydCBwYXRoMS5qb2luKCJzYW1wbGVkaXIubm90aGVyZSIpLmNoZWNrKG5vdGRp
cj0xKQorICAgICAgICBhc3NlcnQgcGF0aDEuam9pbigic2FtcGxlZGlyLm5vdGhlcmUiKS5jaGVj
ayhub3RleGlzdHM9MSkKKyAgICAgICAgYXNzZXJ0IG5vdCBwYXRoMS5qb2luKCJzYW1wbGVkaXIu
bm90aGVyZSIpLmNoZWNrKG5vdGZpbGU9MCkKKworICAgICMgICAgcGF0dGVybiA9IHBhdGgxLnNl
cC5qb2luKFsncypmaWxlJ10pCisgICAgIyAgICBzZmlsZSA9IHBhdGgxLmpvaW4oInNhbXBsZWZp
bGUiKQorICAgICMgICAgYXNzZXJ0IHNmaWxlLmNoZWNrKGZubWF0Y2g9cGF0dGVybikKKworICAg
IGRlZiB0ZXN0X3NpemUoc2VsZiwgcGF0aDEpOgorICAgICAgICB1cmwgPSBwYXRoMS5qb2luKCJz
YW1wbGVmaWxlIikKKyAgICAgICAgYXNzZXJ0IHVybC5zaXplKCkgPiBsZW4oInNhbXBsZWZpbGUi
KQorCisgICAgZGVmIHRlc3RfbXRpbWUoc2VsZiwgcGF0aDEpOgorICAgICAgICB1cmwgPSBwYXRo
MS5qb2luKCJzYW1wbGVmaWxlIikKKyAgICAgICAgYXNzZXJ0IHVybC5tdGltZSgpID4gMAorCisg
ICAgZGVmIHRlc3RfcmVsdG9fd3JvbmdfdHlwZShzZWxmLCBwYXRoMSk6CisgICAgICAgIHB5LnRl
c3QucmFpc2VzKFR5cGVFcnJvciwgInBhdGgxLnJlbHRvKDQyKSIpCisKKyAgICBkZWYgdGVzdF9s
b2FkKHNlbGYsIHBhdGgxKToKKyAgICAgICAgcCA9IHBhdGgxLmpvaW4oJ3NhbXBsZXBpY2tsZScp
CisgICAgICAgIG9iaiA9IHAubG9hZCgpCisgICAgICAgIGFzc2VydCB0eXBlKG9iaikgaXMgZGlj
dAorICAgICAgICBhc3NlcnQgb2JqLmdldCgnYW5zd2VyJyxOb25lKSA9PSA0MgorCisgICAgZGVm
IHRlc3RfdmlzaXRfZmlsZXNvbmx5KHNlbGYsIHBhdGgxKToKKyAgICAgICAgbCA9IFtdCisgICAg
ICAgIGZvciBpIGluIHBhdGgxLnZpc2l0KGxhbWJkYSB4OiB4LmNoZWNrKGZpbGU9MSkpOgorICAg
ICAgICAgICAgbC5hcHBlbmQoaS5yZWx0byhwYXRoMSkpCisgICAgICAgIGFzc2VydCBub3QgInNh
bXBsZWRpciIgaW4gbAorICAgICAgICBhc3NlcnQgcGF0aDEuc2VwLmpvaW4oWyJzYW1wbGVkaXIi
LCAib3RoZXJmaWxlIl0pIGluIGwKKworICAgIGRlZiB0ZXN0X3Zpc2l0X25vZG90ZmlsZXMoc2Vs
ZiwgcGF0aDEpOgorICAgICAgICBsID0gW10KKyAgICAgICAgZm9yIGkgaW4gcGF0aDEudmlzaXQo
bGFtYmRhIHg6IHguY2hlY2soZG90ZmlsZT0wKSk6CisgICAgICAgICAgICBsLmFwcGVuZChpLnJl
bHRvKHBhdGgxKSkKKyAgICAgICAgYXNzZXJ0ICJzYW1wbGVkaXIiIGluIGwKKyAgICAgICAgYXNz
ZXJ0IHBhdGgxLnNlcC5qb2luKFsic2FtcGxlZGlyIiwgIm90aGVyZmlsZSJdKSBpbiBsCisgICAg
ICAgIGFzc2VydCBub3QgIi5kb3RmaWxlIiBpbiBsCisKKyAgICBkZWYgdGVzdF92aXNpdF9icmVh
ZHRoZmlyc3Qoc2VsZiwgcGF0aDEpOgorICAgICAgICBsID0gW10KKyAgICAgICAgZm9yIGkgaW4g
cGF0aDEudmlzaXQoYmY9VHJ1ZSk6CisgICAgICAgICAgICBsLmFwcGVuZChpLnJlbHRvKHBhdGgx
KSkKKyAgICAgICAgZm9yIGksIHAgaW4gZW51bWVyYXRlKGwpOgorICAgICAgICAgICAgaWYgcGF0
aDEuc2VwIGluIHA6CisgICAgICAgICAgICAgICAgZm9yIGogaW4gcmFuZ2UoaSwgbGVuKGwpKToK
KyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHBhdGgxLnNlcCBpbiBsW2pdCisgICAgICAgICAg
ICAgICAgYnJlYWsKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHB5LnRlc3QuZmFpbCgiaHVo
IikKKworICAgIGRlZiB0ZXN0X3Zpc2l0X3NvcnQoc2VsZiwgcGF0aDEpOgorICAgICAgICBsID0g
W10KKyAgICAgICAgZm9yIGkgaW4gcGF0aDEudmlzaXQoYmY9VHJ1ZSwgc29ydD1UcnVlKToKKyAg
ICAgICAgICAgIGwuYXBwZW5kKGkucmVsdG8ocGF0aDEpKQorICAgICAgICBmb3IgaSwgcCBpbiBl
bnVtZXJhdGUobCk6CisgICAgICAgICAgICBpZiBwYXRoMS5zZXAgaW4gcDoKKyAgICAgICAgICAg
ICAgICBicmVhaworICAgICAgICBhc3NlcnQgbFs6aV0gPT0gc29ydGVkKGxbOmldKQorICAgICAg
ICBhc3NlcnQgbFtpOl0gPT0gc29ydGVkKGxbaTpdKQorCisgICAgZGVmIHRlc3RfZW5kc3dpdGgo
c2VsZiwgcGF0aDEpOgorICAgICAgICBkZWYgY2hrKHApOgorICAgICAgICAgICAgcmV0dXJuIHAu
Y2hlY2soZW5kc3dpdGg9InBpY2tsZSIpCisgICAgICAgIGFzc2VydCBub3QgY2hrKHBhdGgxKQor
ICAgICAgICBhc3NlcnQgbm90IGNoayhwYXRoMS5qb2luKCdzYW1wbGVmaWxlJykpCisgICAgICAg
IGFzc2VydCBjaGsocGF0aDEuam9pbignc29tZXBpY2tsZScpKQorCisgICAgZGVmIHRlc3RfY29w
eV9maWxlKHNlbGYsIHBhdGgxKToKKyAgICAgICAgb3RoZXJkaXIgPSBwYXRoMS5qb2luKCdvdGhl
cmRpcicpCisgICAgICAgIGluaXRweSA9IG90aGVyZGlyLmpvaW4oJ19faW5pdF9fLnB5JykKKyAg
ICAgICAgY29waWVkID0gb3RoZXJkaXIuam9pbignY29waWVkJykKKyAgICAgICAgaW5pdHB5LmNv
cHkoY29waWVkKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBhc3NlcnQgY29waWVkLmNoZWNr
KCkKKyAgICAgICAgICAgIHMxID0gaW5pdHB5LnJlYWQoKQorICAgICAgICAgICAgczIgPSBjb3Bp
ZWQucmVhZCgpCisgICAgICAgICAgICBhc3NlcnQgczEgPT0gczIKKyAgICAgICAgZmluYWxseToK
KyAgICAgICAgICAgIGlmIGNvcGllZC5jaGVjaygpOgorICAgICAgICAgICAgICAgIGNvcGllZC5y
ZW1vdmUoKQorCisgICAgZGVmIHRlc3RfY29weV9kaXIoc2VsZiwgcGF0aDEpOgorICAgICAgICBv
dGhlcmRpciA9IHBhdGgxLmpvaW4oJ290aGVyZGlyJykKKyAgICAgICAgY29waWVkID0gcGF0aDEu
am9pbignbmV3ZGlyJykKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgb3RoZXJkaXIuY29weShj
b3BpZWQpCisgICAgICAgICAgICBhc3NlcnQgY29waWVkLmNoZWNrKGRpcj0xKQorICAgICAgICAg
ICAgYXNzZXJ0IGNvcGllZC5qb2luKCdfX2luaXRfXy5weScpLmNoZWNrKGZpbGU9MSkKKyAgICAg
ICAgICAgIHMxID0gb3RoZXJkaXIuam9pbignX19pbml0X18ucHknKS5yZWFkKCkKKyAgICAgICAg
ICAgIHMyID0gY29waWVkLmpvaW4oJ19faW5pdF9fLnB5JykucmVhZCgpCisgICAgICAgICAgICBh
c3NlcnQgczEgPT0gczIKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGlmIGNvcGllZC5j
aGVjayhkaXI9MSk6CisgICAgICAgICAgICAgICAgY29waWVkLnJlbW92ZShyZWM9MSkKKworICAg
IGRlZiB0ZXN0X3JlbW92ZV9maWxlKHNlbGYsIHBhdGgxKToKKyAgICAgICAgZCA9IHBhdGgxLmVu
c3VyZSgndG9kZWxldGVkJykKKyAgICAgICAgYXNzZXJ0IGQuY2hlY2soKQorICAgICAgICBkLnJl
bW92ZSgpCisgICAgICAgIGFzc2VydCBub3QgZC5jaGVjaygpCisKKyAgICBkZWYgdGVzdF9yZW1v
dmVfZGlyX3JlY3Vyc2l2ZV9ieV9kZWZhdWx0KHNlbGYsIHBhdGgxKToKKyAgICAgICAgZCA9IHBh
dGgxLmVuc3VyZSgndG8nLCAnYmUnLCAnZGVsZXRlZCcpCisgICAgICAgIGFzc2VydCBkLmNoZWNr
KCkKKyAgICAgICAgcCA9IHBhdGgxLmpvaW4oJ3RvJykKKyAgICAgICAgcC5yZW1vdmUoKQorICAg
ICAgICBhc3NlcnQgbm90IHAuY2hlY2soKQorCisgICAgZGVmIHRlc3RfZW5zdXJlX2RpcihzZWxm
LCBwYXRoMSk6CisgICAgICAgIGIgPSBwYXRoMS5lbnN1cmVfZGlyKCIwMDEiLCAiMDAyIikKKyAg
ICAgICAgYXNzZXJ0IGIuYmFzZW5hbWUgPT0gIjAwMiIKKyAgICAgICAgYXNzZXJ0IGIuaXNkaXIo
KQorCisgICAgZGVmIHRlc3RfbWtkaXJfYW5kX3JlbW92ZShzZWxmLCBwYXRoMSk6CisgICAgICAg
IHRtcGRpciA9IHBhdGgxCisgICAgICAgIHB5LnRlc3QucmFpc2VzKHB5LmVycm9yLkVFWElTVCwg
dG1wZGlyLm1rZGlyLCAnc2FtcGxlZGlyJykKKyAgICAgICAgbmV3ID0gdG1wZGlyLmpvaW4oJ21r
dGVzdDEnKQorICAgICAgICBuZXcubWtkaXIoKQorICAgICAgICBhc3NlcnQgbmV3LmNoZWNrKGRp
cj0xKQorICAgICAgICBuZXcucmVtb3ZlKCkKKworICAgICAgICBuZXcgPSB0bXBkaXIubWtkaXIo
J21rdGVzdCcpCisgICAgICAgIGFzc2VydCBuZXcuY2hlY2soZGlyPTEpCisgICAgICAgIG5ldy5y
ZW1vdmUoKQorICAgICAgICBhc3NlcnQgdG1wZGlyLmpvaW4oJ21rdGVzdCcpID09IG5ldworCisg
ICAgZGVmIHRlc3RfbW92ZV9maWxlKHNlbGYsIHBhdGgxKToKKyAgICAgICAgcCA9IHBhdGgxLmpv
aW4oJ3NhbXBsZWZpbGUnKQorICAgICAgICBuZXdwID0gcC5kaXJwYXRoKCdtb3ZlZF9zYW1wbGVm
aWxlJykKKyAgICAgICAgcC5tb3ZlKG5ld3ApCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGFz
c2VydCBuZXdwLmNoZWNrKGZpbGU9MSkKKyAgICAgICAgICAgIGFzc2VydCBub3QgcC5jaGVjaygp
CisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBkcCA9IG5ld3AuZGlycGF0aCgpCisgICAg
ICAgICAgICBpZiBoYXNhdHRyKGRwLCAncmV2ZXJ0Jyk6CisgICAgICAgICAgICAgICAgZHAucmV2
ZXJ0KCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbmV3cC5tb3ZlKHApCisg
ICAgICAgICAgICAgICAgYXNzZXJ0IHAuY2hlY2soKQorCisgICAgZGVmIHRlc3RfbW92ZV9kaXIo
c2VsZiwgcGF0aDEpOgorICAgICAgICBzb3VyY2UgPSBwYXRoMS5qb2luKCdzYW1wbGVkaXInKQor
ICAgICAgICBkZXN0ID0gcGF0aDEuam9pbignbW92ZWRkaXInKQorICAgICAgICBzb3VyY2UubW92
ZShkZXN0KQorICAgICAgICBhc3NlcnQgZGVzdC5jaGVjayhkaXI9MSkKKyAgICAgICAgYXNzZXJ0
IGRlc3Quam9pbignb3RoZXJmaWxlJykuY2hlY2soZmlsZT0xKQorICAgICAgICBhc3NlcnQgbm90
IHNvdXJjZS5qb2luKCdzYW1wbGVkaXInKS5jaGVjaygpCisKKyAgICBkZWYgdGVzdF9mc3BhdGhf
cHJvdG9jb2xfbWF0Y2hfc3RycGF0aChzZWxmLCBwYXRoMSk6CisgICAgICAgIGFzc2VydCBwYXRo
MS5fX2ZzcGF0aF9fKCkgPT0gcGF0aDEuc3RycGF0aAorCisgICAgZGVmIHRlc3RfZnNwYXRoX2Z1
bmNfbWF0Y2hfc3RycGF0aChzZWxmLCBwYXRoMSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IGZyb20gb3MgaW1wb3J0IGZzcGF0aAorICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAg
ICAgICAgICBmcm9tIHB5Ll9wYXRoLmNvbW1vbiBpbXBvcnQgZnNwYXRoCisgICAgICAgIGFzc2Vy
dCBmc3BhdGgocGF0aDEpID09IHBhdGgxLnN0cnBhdGgKKworICAgIEBweS50ZXN0Lm1hcmsuc2tp
cCgic3lzLnZlcnNpb25faW5mbyA8ICgzLDYpIikKKyAgICBkZWYgdGVzdF9mc3BhdGhfb3Blbihz
ZWxmLCBwYXRoMSk6CisgICAgICAgIGYgPSBwYXRoMS5qb2luKCdvcGVudGVzdGZpbGUnKQorICAg
ICAgICBvcGVuKGYpCisKKyAgICBAcHkudGVzdC5tYXJrLnNraXAoInN5cy52ZXJzaW9uX2luZm8g
PCAoMyw2KSIpCisgICAgZGVmIHRlc3RfZnNwYXRoX2ZzZW5jb2RlKHNlbGYsIHBhdGgxKToKKyAg
ICAgICAgZnJvbSBvcyBpbXBvcnQgZnNlbmNvZGUKKyAgICAgICAgYXNzZXJ0IGZzZW5jb2RlKHBh
dGgxKSA9PSBmc2VuY29kZShwYXRoMS5zdHJwYXRoKQorCitkZWYgc2V0dXB0ZXN0ZnMocGF0aCk6
CisgICAgaWYgcGF0aC5qb2luKCdzYW1wbGVmaWxlJykuY2hlY2soKToKKyAgICAgICAgcmV0dXJu
CisgICAgI3ByaW50ICJzZXR0aW5nIHVwIHRlc3QgZnMgZm9yIiwgcmVwcihwYXRoKQorICAgIHNh
bXBsZWZpbGUgPSBwYXRoLmVuc3VyZSgnc2FtcGxlZmlsZScpCisgICAgc2FtcGxlZmlsZS53cml0
ZSgnc2FtcGxlZmlsZVxuJykKKworICAgIGV4ZWNmaWxlID0gcGF0aC5lbnN1cmUoJ2V4ZWNmaWxl
JykKKyAgICBleGVjZmlsZS53cml0ZSgneD00MicpCisKKyAgICBleGVjZmlsZXB5ID0gcGF0aC5l
bnN1cmUoJ2V4ZWNmaWxlLnB5JykKKyAgICBleGVjZmlsZXB5LndyaXRlKCd4PTQyJykKKworICAg
IGQgPSB7MToyLCAnaGVsbG8nOiAnd29ybGQnLCAnYW5zd2VyJzogNDJ9CisgICAgcGF0aC5lbnN1
cmUoJ3NhbXBsZXBpY2tsZScpLmR1bXAoZCkKKworICAgIHNhbXBsZWRpciA9IHBhdGguZW5zdXJl
KCdzYW1wbGVkaXInLCBkaXI9MSkKKyAgICBzYW1wbGVkaXIuZW5zdXJlKCdvdGhlcmZpbGUnKQor
CisgICAgb3RoZXJkaXIgPSBwYXRoLmVuc3VyZSgnb3RoZXJkaXInLCBkaXI9MSkKKyAgICBvdGhl
cmRpci5lbnN1cmUoJ19faW5pdF9fLnB5JykKKworICAgIG1vZHVsZV9hID0gb3RoZXJkaXIuZW5z
dXJlKCdhLnB5JykKKyAgICBtb2R1bGVfYS53cml0ZSgnZnJvbSAuYiBpbXBvcnQgc3R1ZmYgYXMg
cmVzdWx0XG4nKQorICAgIG1vZHVsZV9iID0gb3RoZXJkaXIuZW5zdXJlKCdiLnB5JykKKyAgICBt
b2R1bGVfYi53cml0ZSgnc3R1ZmY9ImdvdCBpdCJcbicpCisgICAgbW9kdWxlX2MgPSBvdGhlcmRp
ci5lbnN1cmUoJ2MucHknKQorICAgIG1vZHVsZV9jLndyaXRlKCcnJ2ltcG9ydCBweTsKK2ltcG9y
dCBvdGhlcmRpci5hCit2YWx1ZSA9IG90aGVyZGlyLmEucmVzdWx0CisnJycpCisgICAgbW9kdWxl
X2QgPSBvdGhlcmRpci5lbnN1cmUoJ2QucHknKQorICAgIG1vZHVsZV9kLndyaXRlKCcnJ2ltcG9y
dCBweTsKK2Zyb20gb3RoZXJkaXIgaW1wb3J0IGEKK3ZhbHVlMiA9IGEucmVzdWx0CisnJycpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcGF0aC9jb25mdGVzdC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVz
dGluZy9wYXRoL2NvbmZ0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg0ZmI1YzgyNjk0MDY3ZmQxNjJhNThm
MmEwNmQ0NGZmYjYzYTZjZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcGF0
aC9jb25mdGVzdC5weQpAQCAtMCwwICsxLDgwIEBACitpbXBvcnQgcHkKK2ltcG9ydCBzeXMKK2Zy
b20gcHkuX3BhdGggaW1wb3J0IHN2bndjIGFzIHN2bmNvbW1vbgorCitzdm5iaW4gPSBweS5wYXRo
LmxvY2FsLnN5c2ZpbmQoJ3N2bicpCityZXBvZHVtcCA9IHB5LnBhdGgubG9jYWwoX19maWxlX18p
LmRpcnBhdGgoJ3JlcG90ZXN0LmR1bXAnKQorZnJvbSBweS5idWlsdGluIGltcG9ydCBwcmludF8K
KworZGVmIHB5dGVzdF9mdW5jYXJnX19yZXBvd2MxKHJlcXVlc3QpOgorICAgIGlmIHN2bmJpbiBp
cyBOb25lOgorICAgICAgICBweS50ZXN0LnNraXAoInN2biBiaW5hcnkgbm90IGZvdW5kIikKKwor
ICAgIHRtcGRpciA9IHJlcXVlc3QuZ2V0ZnVuY2FyZ3ZhbHVlKCJ0bXBkaXIiKQorICAgIHJlcG8s
IHJlcG91cmwsIHdjID0gcmVxdWVzdC5jYWNoZWRfc2V0dXAoCisgICAgICAgIHNldHVwPWxhbWJk
YTogZ2V0cmVwb3djKHRtcGRpciwgInBhdGgxcmVwbyIsICJwYXRoMXdjIiksCisgICAgICAgIHNj
b3BlPSJtb2R1bGUiLAorICAgICkKKyAgICBmb3IgeCBpbiAoJ3Rlc3RfcmVtb3ZlJywgJ3Rlc3Rf
bW92ZScsICd0ZXN0X3N0YXR1c19kZWxldGVkJyk6CisgICAgICAgIGlmIHJlcXVlc3QuZnVuY3Rp
b24uX19uYW1lX18uc3RhcnRzd2l0aCh4KToKKyAgICAgICAgICAgICNwcmludCA+PnN5cy5zdGRl
cnIsICgic2F2aW5nIHJlcG8iLCByZXBvLCAiZm9yIiwgcmVxdWVzdC5mdW5jdGlvbikKKyAgICAg
ICAgICAgIF9zYXZlZHJlcG93YyA9IHNhdmVfcmVwb3djKHJlcG8sIHdjKQorICAgICAgICAgICAg
cmVxdWVzdC5hZGRmaW5hbGl6ZXIobGFtYmRhOiByZXN0b3JlX3JlcG93Yyhfc2F2ZWRyZXBvd2Mp
KQorICAgIHJldHVybiByZXBvLCByZXBvdXJsLCB3YworCitkZWYgcHl0ZXN0X2Z1bmNhcmdfX3Jl
cG93YzIocmVxdWVzdCk6CisgICAgdG1wZGlyID0gcmVxdWVzdC5nZXRmdW5jYXJndmFsdWUoInRt
cGRpciIpCisgICAgbmFtZSA9IHJlcXVlc3QuZnVuY3Rpb24uX19uYW1lX18KKyAgICByZXBvLCB1
cmwsIHdjID0gZ2V0cmVwb3djKHRtcGRpciwgIiVzLXJlcG8tMiIgJSBuYW1lLCAiJXMtd2MtMiIg
JSBuYW1lKQorICAgIHJldHVybiByZXBvLCB1cmwsIHdjCisKK2RlZiBnZXRzdm5iaW4oKToKKyAg
ICBpZiBzdm5iaW4gaXMgTm9uZToKKyAgICAgICAgcHkudGVzdC5za2lwKCJzdm4gYmluYXJ5IG5v
dCBmb3VuZCIpCisgICAgcmV0dXJuIHN2bmJpbgorCisjIG1ha2UgYSB3YyBkaXJlY3Rvcnkgb3V0
IG9mIGEgZ2l2ZW4gcm9vdCB1cmwKKyMgY2FjaGUgcHJldmlvdXNseSBvYnRhaW5lZCB3Y3MhCisj
CitkZWYgZ2V0cmVwb3djKHRtcGRpciwgcmVwb25hbWU9J2Jhc2V0ZXN0cmVwbycsIHdjbmFtZT0n
d2MnKToKKyAgICByZXBvID0gdG1wZGlyLm1rZGlyKHJlcG9uYW1lKQorICAgIHdjZGlyID0gdG1w
ZGlyLm1rZGlyKHdjbmFtZSkKKyAgICByZXBvLmVuc3VyZShkaXI9MSkKKyAgICBweS5wcm9jZXNz
LmNtZGV4ZWMoJ3N2bmFkbWluIGNyZWF0ZSAiJXMiJyAlCisgICAgICAgICAgICBzdm5jb21tb24u
X2VzY2FwZV9oZWxwZXIocmVwbykpCisgICAgcHkucHJvY2Vzcy5jbWRleGVjKCdzdm5hZG1pbiBs
b2FkIC1xICIlcyIgPCIlcyInICUKKyAgICAgICAgICAgIChzdm5jb21tb24uX2VzY2FwZV9oZWxw
ZXIocmVwbyksIHJlcG9kdW1wKSkKKyAgICBwcmludF8oImNyZWF0ZWQgc3ZuIHJlcG9zaXRvcnki
LCByZXBvKQorICAgIHdjZGlyLmVuc3VyZShkaXI9MSkKKyAgICB3YyA9IHB5LnBhdGguc3Zud2Mo
d2NkaXIpCisgICAgaWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMic6CisgICAgICAgIHJlcG91cmwg
PSAiZmlsZTovLyIgKyAnLycgKyBzdHIocmVwbykucmVwbGFjZSgnXFwnLCAnLycpCisgICAgZWxz
ZToKKyAgICAgICAgcmVwb3VybCA9ICJmaWxlOi8vJXMiICUgcmVwbworICAgIHdjLmNoZWNrb3V0
KHJlcG91cmwpCisgICAgcHJpbnRfKCJjaGVja2VkIG91dCBuZXcgcmVwbyBpbnRvIiwgd2MpCisg
ICAgcmV0dXJuIChyZXBvLCByZXBvdXJsLCB3YykKKworCitkZWYgc2F2ZV9yZXBvd2MocmVwbywg
d2MpOgorICAgIGFzc2VydCBub3Qgc3RyKHJlcG8pLnN0YXJ0c3dpdGgoImZpbGU6Ly8iKSwgcmVw
bworICAgIGFzc2VydCByZXBvLmNoZWNrKCkKKyAgICBzYXZlZHJlcG8gPSByZXBvLmRpcnBhdGgo
cmVwby5iYXNlbmFtZSsiLjEiKQorICAgIHNhdmVkd2MgPSB3Yy5kaXJwYXRoKHdjLmJhc2VuYW1l
KyIuMSIpCisgICAgcmVwby5jb3B5KHNhdmVkcmVwbykKKyAgICB3Yy5sb2NhbHBhdGguY29weShz
YXZlZHdjLmxvY2FscGF0aCkKKyAgICByZXR1cm4gc2F2ZWRyZXBvLCBzYXZlZHdjCisKK2RlZiBy
ZXN0b3JlX3JlcG93YyhvYmopOgorICAgIHNhdmVkcmVwbywgc2F2ZWR3YyA9IG9iagorICAgICNw
cmludCA+PnN5cy5zdGRlcnIsICgicmVzdG9yaW5nIiwgc2F2ZWRyZXBvKQorICAgIHJlcG8gPSBz
YXZlZHJlcG8ubmV3KGJhc2VuYW1lPXNhdmVkcmVwby5iYXNlbmFtZVs6LTJdKQorICAgIGFzc2Vy
dCByZXBvLmNoZWNrKCkKKyAgICB3YyA9IHNhdmVkd2MubmV3KGJhc2VuYW1lPXNhdmVkd2MuYmFz
ZW5hbWVbOi0yXSkKKyAgICBhc3NlcnQgd2MuY2hlY2soKQorICAgIHdjLmxvY2FscGF0aC5yZW1v
dmUoKQorICAgIHJlcG8ucmVtb3ZlKCkKKyAgICBzYXZlZHJlcG8ubW92ZShyZXBvKQorICAgIHNh
dmVkd2MubG9jYWxwYXRoLm1vdmUod2MubG9jYWxwYXRoKQorICAgIHB5LnBhdGguc3ZudXJsLl9s
c25vcmV2Y2FjaGUuY2xlYXIoKQorICAgIHB5LnBhdGguc3ZudXJsLl9sc3JldmNhY2hlLmNsZWFy
KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wYXRoL3JlcG90ZXN0LmR1bXAgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L3Rlc3RpbmcvcGF0aC9yZXBvdGVzdC5kdW1wCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3ODE5Y2FkN2E1MzFh
NzcyZmI1ZTMyYmExZmE5MjU2YTQzMzE0YWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rl
c3RpbmcvcGF0aC9yZXBvdGVzdC5kdW1wCkBAIC0wLDAgKzEsMjI4IEBACitTVk4tZnMtZHVtcC1m
b3JtYXQtdmVyc2lvbjogMgorCitVVUlEOiA4NzZhMzBmNC0xZWVkLTAzMTAtYWViNy1hZTMxNGQx
ZTU5MzQKKworUmV2aXNpb24tbnVtYmVyOiAwCitQcm9wLWNvbnRlbnQtbGVuZ3RoOiA1NgorQ29u
dGVudC1sZW5ndGg6IDU2CisKK0sgOAorc3ZuOmRhdGUKK1YgMjcKKzIwMDUtMDEtMDdUMjM6NTU6
MzEuNzU1OTg5WgorUFJPUFMtRU5ECisKK1JldmlzaW9uLW51bWJlcjogMQorUHJvcC1jb250ZW50
LWxlbmd0aDogMTE4CitDb250ZW50LWxlbmd0aDogMTE4CisKK0sgNworc3ZuOmxvZworViAyMAor
dGVzdHJlcG8gc2V0dXAgcmV2IDEKK0sgMTAKK3N2bjphdXRob3IKK1YgMworaHBrCitLIDgKK3N2
bjpkYXRlCitWIDI3CisyMDA1LTAxLTA3VDIzOjU1OjM3LjgxNTM4NloKK1BST1BTLUVORAorCitO
b2RlLXBhdGg6IGV4ZWNmaWxlCitOb2RlLWtpbmQ6IGZpbGUKK05vZGUtYWN0aW9uOiBhZGQKK1By
b3AtY29udGVudC1sZW5ndGg6IDEwCitUZXh0LWNvbnRlbnQtbGVuZ3RoOiA0CitUZXh0LWNvbnRl
bnQtbWQ1OiBkNGI1YmM2MWUxNjMxMGYwOGM1ZDExODY2ZWJhMGEyMgorQ29udGVudC1sZW5ndGg6
IDE0CisKK1BST1BTLUVORAoreD00MgorCitOb2RlLXBhdGg6IG90aGVyZGlyCitOb2RlLWtpbmQ6
IGRpcgorTm9kZS1hY3Rpb246IGFkZAorUHJvcC1jb250ZW50LWxlbmd0aDogMTAKK0NvbnRlbnQt
bGVuZ3RoOiAxMAorCitQUk9QUy1FTkQKKworCitOb2RlLXBhdGg6IG90aGVyZGlyL19faW5pdF9f
LnB5CitOb2RlLWtpbmQ6IGZpbGUKK05vZGUtYWN0aW9uOiBhZGQKK1Byb3AtY29udGVudC1sZW5n
dGg6IDEwCitUZXh0LWNvbnRlbnQtbGVuZ3RoOiAwCitUZXh0LWNvbnRlbnQtbWQ1OiBkNDFkOGNk
OThmMDBiMjA0ZTk4MDA5OThlY2Y4NDI3ZQorQ29udGVudC1sZW5ndGg6IDEwCisKK1BST1BTLUVO
RAorCisKK05vZGUtcGF0aDogb3RoZXJkaXIvYS5weQorTm9kZS1raW5kOiBmaWxlCitOb2RlLWFj
dGlvbjogYWRkCitQcm9wLWNvbnRlbnQtbGVuZ3RoOiAxMAorVGV4dC1jb250ZW50LWxlbmd0aDog
MzAKK1RleHQtY29udGVudC1tZDU6IDI0N2M3ZGFlYjJlZTVkY2FiMGFiYTdiZDEyYmFkNjY1CitD
b250ZW50LWxlbmd0aDogNDAKKworUFJPUFMtRU5ECitmcm9tIGIgaW1wb3J0IHN0dWZmIGFzIHJl
c3VsdAorCisKK05vZGUtcGF0aDogb3RoZXJkaXIvYi5weQorTm9kZS1raW5kOiBmaWxlCitOb2Rl
LWFjdGlvbjogYWRkCitQcm9wLWNvbnRlbnQtbGVuZ3RoOiAxMAorVGV4dC1jb250ZW50LWxlbmd0
aDogMTUKK1RleHQtY29udGVudC1tZDU6IGMxYjEzNTAzNDY5YTc3MTEzMDZkMDNhNGIwNzIxYmM2
CitDb250ZW50LWxlbmd0aDogMjUKKworUFJPUFMtRU5ECitzdHVmZj0iZ290IGl0IgorCisKK05v
ZGUtcGF0aDogb3RoZXJkaXIvYy5weQorTm9kZS1raW5kOiBmaWxlCitOb2RlLWFjdGlvbjogYWRk
CitQcm9wLWNvbnRlbnQtbGVuZ3RoOiAxMAorVGV4dC1jb250ZW50LWxlbmd0aDogNzUKK1RleHQt
Y29udGVudC1tZDU6IDI1MGNkYjZiNWRmNjg1MzYxNTJjNjgxZjQ4Mjk3NTY5CitDb250ZW50LWxl
bmd0aDogODUKKworUFJPUFMtRU5ECitpbXBvcnQgcHk7IHB5Lm1hZ2ljLmF1dG9wYXRoKCkKK2lt
cG9ydCBvdGhlcmRpci5hCit2YWx1ZSA9IG90aGVyZGlyLmEucmVzdWx0CisKKworTm9kZS1wYXRo
OiBvdGhlcmRpci9kLnB5CitOb2RlLWtpbmQ6IGZpbGUKK05vZGUtYWN0aW9uOiBhZGQKK1Byb3At
Y29udGVudC1sZW5ndGg6IDEwCitUZXh0LWNvbnRlbnQtbGVuZ3RoOiA3MgorVGV4dC1jb250ZW50
LW1kNTogOTQwYzljNjIxZTdiMTk4ZTA4MTQ1OTY0MmMzN2Y1YTcKK0NvbnRlbnQtbGVuZ3RoOiA4
MgorCitQUk9QUy1FTkQKK2ltcG9ydCBweTsgcHkubWFnaWMuYXV0b3BhdGgoKQorZnJvbSBvdGhl
cmRpciBpbXBvcnQgYQordmFsdWUyID0gYS5yZXN1bHQKKworCitOb2RlLXBhdGg6IHNhbXBsZWRp
cgorTm9kZS1raW5kOiBkaXIKK05vZGUtYWN0aW9uOiBhZGQKK1Byb3AtY29udGVudC1sZW5ndGg6
IDEwCitDb250ZW50LWxlbmd0aDogMTAKKworUFJPUFMtRU5ECisKKworTm9kZS1wYXRoOiBzYW1w
bGVkaXIvb3RoZXJmaWxlCitOb2RlLWtpbmQ6IGZpbGUKK05vZGUtYWN0aW9uOiBhZGQKK1Byb3At
Y29udGVudC1sZW5ndGg6IDEwCitUZXh0LWNvbnRlbnQtbGVuZ3RoOiAwCitUZXh0LWNvbnRlbnQt
bWQ1OiBkNDFkOGNkOThmMDBiMjA0ZTk4MDA5OThlY2Y4NDI3ZQorQ29udGVudC1sZW5ndGg6IDEw
CisKK1BST1BTLUVORAorCisKK05vZGUtcGF0aDogc2FtcGxlZmlsZQorTm9kZS1raW5kOiBmaWxl
CitOb2RlLWFjdGlvbjogYWRkCitQcm9wLWNvbnRlbnQtbGVuZ3RoOiA0MAorVGV4dC1jb250ZW50
LWxlbmd0aDogMTEKK1RleHQtY29udGVudC1tZDU6IDkyMjVhYzI4YjMyMTU2OTc5YWI2NDgyYjhi
YjVmYjhjCitDb250ZW50LWxlbmd0aDogNTEKKworSyAxMworc3ZuOmVvbC1zdHlsZQorViA2Citu
YXRpdmUKK1BST1BTLUVORAorc2FtcGxlZmlsZQorCisKK05vZGUtcGF0aDogc2FtcGxlcGlja2xl
CitOb2RlLWtpbmQ6IGZpbGUKK05vZGUtYWN0aW9uOiBhZGQKK1Byb3AtY29udGVudC1sZW5ndGg6
IDEwCitUZXh0LWNvbnRlbnQtbGVuZ3RoOiA1NgorVGV4dC1jb250ZW50LW1kNTogNzE5ZDg1YzEz
MjlhMzMxMzRiYjk4ZjU2Yjc1NmM1NDUKK0NvbnRlbnQtbGVuZ3RoOiA2NgorCitQUk9QUy1FTkQK
KyhkcDEKK1MnYW5zd2VyJworcDIKK0k0Mgorc0kxCitJMgorc1MnaGVsbG8nCitwMworUyd3b3Js
ZCcKK3A0CitzLgorCitSZXZpc2lvbi1udW1iZXI6IDIKK1Byb3AtY29udGVudC1sZW5ndGg6IDEw
OAorQ29udGVudC1sZW5ndGg6IDEwOAorCitLIDcKK3N2bjpsb2cKK1YgMTAKK3NlY29uZCByZXYK
K0sgMTAKK3N2bjphdXRob3IKK1YgMworaHBrCitLIDgKK3N2bjpkYXRlCitWIDI3CisyMDA1LTAx
LTA3VDIzOjU1OjM5LjIyMzIwMloKK1BST1BTLUVORAorCitOb2RlLXBhdGg6IGFub3RoZXJmaWxl
CitOb2RlLWtpbmQ6IGZpbGUKK05vZGUtYWN0aW9uOiBhZGQKK1Byb3AtY29udGVudC1sZW5ndGg6
IDEwCitUZXh0LWNvbnRlbnQtbGVuZ3RoOiA1CitUZXh0LWNvbnRlbnQtbWQ1OiA1ZDQxNDAyYWJj
NGIyYTc2Yjk3MTlkOTExMDE3YzU5MgorQ29udGVudC1sZW5ndGg6IDE1CisKK1BST1BTLUVORAor
aGVsbG8KKworUmV2aXNpb24tbnVtYmVyOiAzCitQcm9wLWNvbnRlbnQtbGVuZ3RoOiAxMDYKK0Nv
bnRlbnQtbGVuZ3RoOiAxMDYKKworSyA3Citzdm46bG9nCitWIDkKK3RoaXJkIHJldgorSyAxMAor
c3ZuOmF1dGhvcgorViAzCitocGsKK0sgOAorc3ZuOmRhdGUKK1YgMjcKKzIwMDUtMDEtMDdUMjM6
NTU6NDEuNTU2NjQyWgorUFJPUFMtRU5ECisKK05vZGUtcGF0aDogYW5vdGhlcmZpbGUKK05vZGUt
a2luZDogZmlsZQorTm9kZS1hY3Rpb246IGNoYW5nZQorVGV4dC1jb250ZW50LWxlbmd0aDogNQor
VGV4dC1jb250ZW50LW1kNTogN2Q3OTMwMzdhMDc2MDE4NjU3NGIwMjgyZjJmNDM1ZTcKK0NvbnRl
bnQtbGVuZ3RoOiA1CisKK3dvcmxkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wYXRo
L3N2bnRlc3RiYXNlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvc3ZudGVzdGJhc2UucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOGQ5NGE5Y2E2NDljZDMxMzljMDRlNGFkYWVjZDI2NTUwNDM2ZjlhMgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wYXRoL3N2bnRlc3RiYXNlLnB5CkBAIC0wLDAg
KzEsMzEgQEAKK2ltcG9ydCBzeXMKK2ltcG9ydCBweQorZnJvbSBweS5fcGF0aCBpbXBvcnQgc3Zu
d2MgYXMgc3ZuY29tbW9uCitmcm9tIGNvbW1vbiBpbXBvcnQgQ29tbW9uRlNUZXN0cworCitjbGFz
cyBDb21tb25Tdm5UZXN0cyhDb21tb25GU1Rlc3RzKToKKworICAgIGRlZiB0ZXN0X3Byb3BnZXQo
c2VsZiwgcGF0aDEpOgorICAgICAgICB1cmwgPSBwYXRoMS5qb2luKCJzYW1wbGVmaWxlIikKKyAg
ICAgICAgdmFsdWUgPSB1cmwucHJvcGdldCgnc3ZuOmVvbC1zdHlsZScpCisgICAgICAgIGFzc2Vy
dCB2YWx1ZSA9PSAnbmF0aXZlJworCisgICAgZGVmIHRlc3RfcHJvcGxpc3Qoc2VsZiwgcGF0aDEp
OgorICAgICAgICB1cmwgPSBwYXRoMS5qb2luKCJzYW1wbGVmaWxlIikKKyAgICAgICAgcmVzID0g
dXJsLnByb3BsaXN0KCkKKyAgICAgICAgYXNzZXJ0IHJlc1snc3ZuOmVvbC1zdHlsZSddID09ICdu
YXRpdmUnCisKKyAgICBkZWYgdGVzdF9pbmZvKHNlbGYsIHBhdGgxKToKKyAgICAgICAgdXJsID0g
cGF0aDEuam9pbigic2FtcGxlZmlsZSIpCisgICAgICAgIHJlcyA9IHVybC5pbmZvKCkKKyAgICAg
ICAgYXNzZXJ0IHJlcy5zaXplID4gbGVuKCJzYW1wbGVmaWxlIikgYW5kIHJlcy5jcmVhdGVkX3Jl
diA+PSAwCisKKyAgICBkZWYgdGVzdF9sb2dfc2ltcGxlKHNlbGYsIHBhdGgxKToKKyAgICAgICAg
dXJsID0gcGF0aDEuam9pbigic2FtcGxlZmlsZSIpCisgICAgICAgIGxvZ2VudHJpZXMgPSB1cmwu
bG9nKCkKKyAgICAgICAgZm9yIGxvZ2VudHJ5IGluIGxvZ2VudHJpZXM6CisgICAgICAgICAgICBh
c3NlcnQgbG9nZW50cnkucmV2ID09IDEKKyAgICAgICAgICAgIGFzc2VydCBoYXNhdHRyKGxvZ2Vu
dHJ5LCAnYXV0aG9yJykKKyAgICAgICAgICAgIGFzc2VydCBoYXNhdHRyKGxvZ2VudHJ5LCAnZGF0
ZScpCisKKyNjYWNoZS5yZXBvc2l0b3JpZXMucHV0KHN2bnJlcG91cmwsIDEyMDAsIDApCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcGF0aC90ZXN0X2NhY2hldXRpbC5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkv
dGVzdGluZy9wYXRoL3Rlc3RfY2FjaGV1dGlsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM5ZmMwNzQ2M2E3MjZh
MzEzOGQyZWJkMDMzYjUwZTE0ZGMwY2VhMzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rl
c3RpbmcvcGF0aC90ZXN0X2NhY2hldXRpbC5weQpAQCAtMCwwICsxLDg5IEBACitpbXBvcnQgcHl0
ZXN0Citmcm9tIHB5Ll9wYXRoIGltcG9ydCBjYWNoZXV0aWwKKworaW1wb3J0IHRpbWUKKworY2xh
c3MgQmFzaWNDYWNoZUFQSVRlc3Q6CisgICAgY2FjaGUgPSBOb25lCisgICAgZGVmIHRlc3RfZ2V0
b3JidWlsZChzZWxmKToKKyAgICAgICAgdmFsID0gc2VsZi5jYWNoZS5nZXRvcmJ1aWxkKC00Miwg
bGFtYmRhOiA0MikKKyAgICAgICAgYXNzZXJ0IHZhbCA9PSA0MgorICAgICAgICB2YWwgPSBzZWxm
LmNhY2hlLmdldG9yYnVpbGQoLTQyLCBsYW1iZGE6IDIzKQorICAgICAgICBhc3NlcnQgdmFsID09
IDQyCisKKyAgICBkZWYgdGVzdF9jYWNoZV9nZXRfa2V5X2Vycm9yKHNlbGYpOgorICAgICAgICBw
eXRlc3QucmFpc2VzKEtleUVycm9yLCAic2VsZi5jYWNoZS5fZ2V0ZW50cnkoLTIzKSIpCisKKyAg
ICBkZWYgdGVzdF9kZWxlbnRyeV9ub25fcmFpc2luZyhzZWxmKToKKyAgICAgICAgc2VsZi5jYWNo
ZS5nZXRvcmJ1aWxkKDEwMCwgbGFtYmRhOiAxMDApCisgICAgICAgIHNlbGYuY2FjaGUuZGVsZW50
cnkoMTAwKQorICAgICAgICBweXRlc3QucmFpc2VzKEtleUVycm9yLCAic2VsZi5jYWNoZS5fZ2V0
ZW50cnkoMTAwKSIpCisKKyAgICBkZWYgdGVzdF9kZWxlbnRyeV9yYWlzaW5nKHNlbGYpOgorICAg
ICAgICBzZWxmLmNhY2hlLmdldG9yYnVpbGQoMTAwLCBsYW1iZGE6IDEwMCkKKyAgICAgICAgc2Vs
Zi5jYWNoZS5kZWxlbnRyeSgxMDApCisgICAgICAgIHB5dGVzdC5yYWlzZXMoS2V5RXJyb3IsIHNl
bGYuY2FjaGUuZGVsZW50cnksIDEwMCwgcmFpc2luZz1UcnVlKQorCisgICAgZGVmIHRlc3RfY2xl
YXIoc2VsZik6CisgICAgICAgIHNlbGYuY2FjaGUuY2xlYXIoKQorCisKK2NsYXNzIFRlc3RCdWls
ZGNvc3RBY2Nlc3MoQmFzaWNDYWNoZUFQSVRlc3QpOgorICAgIGNhY2hlID0gY2FjaGV1dGlsLkJ1
aWxkY29zdEFjY2Vzc0NhY2hlKG1heGVudHJpZXM9MTI4KQorCisgICAgZGVmIHRlc3RfY2FjaGVf
d29ya3Nfc29tZXdoYXRfc2ltcGxlKHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgY2FjaGUg
PSBjYWNoZXV0aWwuQnVpbGRjb3N0QWNjZXNzQ2FjaGUoKQorICAgICAgICAjIHRoZSBkZWZhdWx0
IGdldHRpbWUKKyAgICAgICAgIyBCdWlsZGNvc3RBY2Nlc3NDYWNoZS5idWlsZCBjYW4KKyAgICAg
ICAgIyByZXN1bHQgaW50byB0aW1lKCktdGltZSgpID09IDAgd2hpY2ggbWFrZXMgdGhlIGJlbG93
CisgICAgICAgICMgdGVzdCBmYWlsIHJhbmRvbWx5LiAgTGV0J3MgcmF0aGVyIHVzZSBpbmNyZW1l
bnRpbmcKKyAgICAgICAgIyBudW1iZXJzIGluc3RlYWQuCisgICAgICAgIGwgPSBbMF0KKworICAg
ICAgICBkZWYgY291bnRlcigpOgorICAgICAgICAgICAgbFswXSA9IGxbMF0gKyAxCisgICAgICAg
ICAgICByZXR1cm4gbFswXQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKGNhY2hldXRpbCwg
J2dldHRpbWUnLCBjb3VudGVyKQorICAgICAgICBmb3IgeCBpbiByYW5nZShjYWNoZS5tYXhlbnRy
aWVzKToKKyAgICAgICAgICAgIHkgPSBjYWNoZS5nZXRvcmJ1aWxkKHgsIGxhbWJkYTogeCkKKyAg
ICAgICAgICAgIGFzc2VydCB4ID09IHkKKyAgICAgICAgZm9yIHggaW4gcmFuZ2UoY2FjaGUubWF4
ZW50cmllcyk6CisgICAgICAgICAgICBhc3NlcnQgY2FjaGUuZ2V0b3JidWlsZCh4LCBOb25lKSA9
PSB4CisgICAgICAgIGhhbGZlbnRyaWVzID0gaW50KGNhY2hlLm1heGVudHJpZXMgLyAyKQorICAg
ICAgICBmb3IgeCBpbiByYW5nZShoYWxmZW50cmllcyk6CisgICAgICAgICAgICBhc3NlcnQgY2Fj
aGUuZ2V0b3JidWlsZCh4LCBOb25lKSA9PSB4CisgICAgICAgICAgICBhc3NlcnQgY2FjaGUuZ2V0
b3JidWlsZCh4LCBOb25lKSA9PSB4CisgICAgICAgICMgZXZpY3Qgb25lIGVudHJ5CisgICAgICAg
IHZhbCA9IGNhY2hlLmdldG9yYnVpbGQoLTEsIGxhbWJkYTogNDIpCisgICAgICAgIGFzc2VydCB2
YWwgPT0gNDIKKyAgICAgICAgIyBjaGVjayB0aGF0IHJlY2VudGx5IHVzZWQgb25lcyBhcmUgc3Rp
bGwgdGhlcmUKKyAgICAgICAgIyBhbmQgYXJlIG5vdCBidWlsZCBhZ2FpbgorICAgICAgICBmb3Ig
eCBpbiByYW5nZShoYWxmZW50cmllcyk6CisgICAgICAgICAgICBhc3NlcnQgY2FjaGUuZ2V0b3Ji
dWlsZCh4LCBOb25lKSA9PSB4CisgICAgICAgIGFzc2VydCBjYWNoZS5nZXRvcmJ1aWxkKC0xLCBO
b25lKSA9PSA0MgorCisKK2NsYXNzIFRlc3RBZ2luZyhCYXNpY0NhY2hlQVBJVGVzdCk6CisgICAg
bWF4c2VjcyA9IDAuMTAKKyAgICBjYWNoZSA9IGNhY2hldXRpbC5BZ2luZ0NhY2hlKG1heGVudHJp
ZXM9MTI4LCBtYXhzZWNvbmRzPW1heHNlY3MpCisKKyAgICBkZWYgdGVzdF9jYWNoZV9ldmljdGlv
bihzZWxmKToKKyAgICAgICAgc2VsZi5jYWNoZS5nZXRvcmJ1aWxkKDE3LCBsYW1iZGE6IDE3KQor
ICAgICAgICBlbmR0aW1lID0gdGltZS50aW1lKCkgKyBzZWxmLm1heHNlY3MgKiAxMAorICAgICAg
ICB3aGlsZSB0aW1lLnRpbWUoKSA8IGVuZHRpbWU6CisgICAgICAgICAgICB0cnk6CisgICAgICAg
ICAgICAgICAgc2VsZi5jYWNoZS5fZ2V0ZW50cnkoMTcpCisgICAgICAgICAgICBleGNlcHQgS2V5
RXJyb3I6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIHRpbWUuc2xlZXAoc2Vs
Zi5tYXhzZWNzKjAuMykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHB5dGVzdC5mYWlsKCJ3
YWl0aW5nIGZvciBjYWNoZSBldmljdGlvbiBmYWlsZWQiKQorCisKK2RlZiB0ZXN0X3BydW5lX2xv
d2VzdHdlaWdodCgpOgorICAgIG1heHNlY3MgPSAwLjA1CisgICAgY2FjaGUgPSBjYWNoZXV0aWwu
QWdpbmdDYWNoZShtYXhlbnRyaWVzPTEwLCBtYXhzZWNvbmRzPW1heHNlY3MpCisgICAgZm9yIHgg
aW4gcmFuZ2UoY2FjaGUubWF4ZW50cmllcyk6CisgICAgICAgIGNhY2hlLmdldG9yYnVpbGQoeCwg
bGFtYmRhOiB4KQorICAgIHRpbWUuc2xlZXAobWF4c2VjcyoxLjEpCisgICAgY2FjaGUuZ2V0b3Ji
dWlsZChjYWNoZS5tYXhlbnRyaWVzKzEsIGxhbWJkYTogNDIpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
L3Rlc3RpbmcvcGF0aC90ZXN0X2xvY2FsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvdGVzdF9s
b2NhbC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jOTA3NWQ2ZmJiNDI2OGQ4YTgwYTNhODljMGU3MTZiMzExMWU0
OWIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvdGVzdF9sb2NhbC5w
eQpAQCAtMCwwICsxLDk3NyBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KKworZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCB3aXRoX3N0YXRlbWVudAoraW1wb3J0IHRpbWUKK2ltcG9ydCBweQoraW1w
b3J0IHB5dGVzdAoraW1wb3J0IG9zCitpbXBvcnQgc3lzCitpbXBvcnQgbXVsdGlwcm9jZXNzaW5n
Citmcm9tIHB5LnBhdGggaW1wb3J0IGxvY2FsCitpbXBvcnQgY29tbW9uCisKK2ZhaWxzb25qeXRo
b24gPSBweS50ZXN0Lm1hcmsueGZhaWwoInN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCdqYXZhJyki
KQorZmFpbHNvbmp5d2luMzIgPSBweS50ZXN0Lm1hcmsueGZhaWwoCisgICAgInN5cy5wbGF0Zm9y
bS5zdGFydHN3aXRoKCdqYXZhJykgIgorICAgICJhbmQgZ2V0YXR0cihvcywgJ19uYW1lJywgTm9u
ZSkgPT0gJ250JyIpCit3aW4zMm9ubHkgPSBweS50ZXN0Lm1hcmsuc2tpcGlmKAorICAgICAgICAi
bm90IChzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJyBvciBnZXRhdHRyKG9zLCAnX25hbWUnLCBOb25l
KSA9PSAnbnQnKSIpCitza2lwb253aW4zMiA9IHB5LnRlc3QubWFyay5za2lwaWYoCisgICAgICAg
ICJzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJyBvciBnZXRhdHRyKG9zLCAnX25hbWUnLCBOb25lKSA9
PSAnbnQnIikKKworQVRJTUVfUkVTT0xVVElPTiA9IDAuMDEKKworCitAcHl0ZXN0LnlpZWxkX2Zp
eHR1cmUoc2NvcGU9InNlc3Npb24iKQorZGVmIHBhdGgxKHRtcGRpcl9mYWN0b3J5KToKKyAgICBw
YXRoID0gdG1wZGlyX2ZhY3RvcnkubWt0ZW1wKCdwYXRoJykKKyAgICBjb21tb24uc2V0dXB0ZXN0
ZnMocGF0aCkKKyAgICB5aWVsZCBwYXRoCisgICAgYXNzZXJ0IHBhdGguam9pbigic2FtcGxlZmls
ZSIpLmNoZWNrKCkKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBmYWtlX2ZzcGF0aF9vYmoocmVx
dWVzdCk6CisgICAgY2xhc3MgRmFrZUZTUGF0aENsYXNzKG9iamVjdCk6CisgICAgICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBwYXRoKToKKyAgICAgICAgICAgIHNlbGYuX3BhdGggPSBwYXRoCisKKyAg
ICAgICAgZGVmIF9fZnNwYXRoX18oc2VsZik6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fcGF0
aAorCisgICAgcmV0dXJuIEZha2VGU1BhdGhDbGFzcyhvcy5wYXRoLmpvaW4oInRoaXMiLCAiaXMi
LCAiYSIsICJmYWtlIiwgInBhdGgiKSkKKworCitkZWYgYmF0Y2hfbWFrZV9udW1iZXJlZF9kaXJz
KHJvb3RkaXIsIHJlcGVhdHMpOgorICAgIHRyeToKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UocmVw
ZWF0cyk6CisgICAgICAgICAgICBkaXJfID0gcHkucGF0aC5sb2NhbC5tYWtlX251bWJlcmVkX2Rp
cihwcmVmaXg9J3JlcHJvLScsIHJvb3RkaXI9cm9vdGRpcikKKyAgICAgICAgICAgIGZpbGVfID0g
ZGlyXy5qb2luKCdmb28nKQorICAgICAgICAgICAgZmlsZV8ud3JpdGUoJyVzJyAlIGkpCisgICAg
ICAgICAgICBhY3R1YWwgPSBpbnQoZmlsZV8ucmVhZCgpKQorICAgICAgICAgICAgYXNzZXJ0IGFj
dHVhbCA9PSBpLCAnaW50KGZpbGVfLnJlYWQoKSkgaXMgJXMgaW5zdGVhZCBvZiAlcycgJSAoYWN0
dWFsLCBpKQorICAgICAgICAgICAgZGlyXy5qb2luKCcubG9jaycpLnJlbW92ZShpZ25vcmVfZXJy
b3JzPVRydWUpCisgICAgICAgIHJldHVybiBUcnVlCisgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJy
dXB0OgorICAgICAgICAjIG1ha2VzIHN1cmUgdGhhdCBpbnRlcnJ1cHRpbmcgdGVzdCBzZXNzaW9u
IHdvbid0IGhhbmcgaXQKKyAgICAgICAgb3MuZXhpdCgyKQorCisKK2NsYXNzIFRlc3RMb2NhbFBh
dGgoY29tbW9uLkNvbW1vbkZTVGVzdHMpOgorICAgIGRlZiB0ZXN0X2pvaW5fbm9ybXBhdGgoc2Vs
ZiwgdG1wZGlyKToKKyAgICAgICAgYXNzZXJ0IHRtcGRpci5qb2luKCIuIikgPT0gdG1wZGlyCisg
ICAgICAgIHAgPSB0bXBkaXIuam9pbigiLi4vJXMiICUgdG1wZGlyLmJhc2VuYW1lKQorICAgICAg
ICBhc3NlcnQgcCA9PSB0bXBkaXIKKyAgICAgICAgcCA9IHRtcGRpci5qb2luKCIuLi8vJXMvIiAl
IHRtcGRpci5iYXNlbmFtZSkKKyAgICAgICAgYXNzZXJ0IHAgPT0gdG1wZGlyCisKKyAgICBAc2tp
cG9ud2luMzIKKyAgICBkZWYgdGVzdF9kaXJwYXRoX2Fic19ub19hYnMoc2VsZiwgdG1wZGlyKToK
KyAgICAgICAgcCA9IHRtcGRpci5qb2luKCdmb28nKQorICAgICAgICBhc3NlcnQgcC5kaXJwYXRo
KCcvYmFyJykgPT0gdG1wZGlyLmpvaW4oJ2JhcicpCisgICAgICAgIGFzc2VydCB0bXBkaXIuZGly
cGF0aCgnL2JhcicsIGFicz1UcnVlKSA9PSBsb2NhbCgnL2JhcicpCisKKyAgICBkZWYgdGVzdF9n
ZXRoYXNoKHNlbGYsIHRtcGRpcik6CisgICAgICAgIG1kNSA9IHB5LmJ1aWx0aW4uX3RyeWltcG9y
dCgnbWQ1JywgJ2hhc2hsaWInKS5tZDUKKyAgICAgICAgbGliID0gcHkuYnVpbHRpbi5fdHJ5aW1w
b3J0KCdzaGEnLCAnaGFzaGxpYicpCisgICAgICAgIHNoYSA9IGdldGF0dHIobGliLCAnc2hhMScs
IGdldGF0dHIobGliLCAnc2hhJywgTm9uZSkpCisgICAgICAgIGZuID0gdG1wZGlyLmpvaW4oInRl
c3RoYXNoZmlsZSIpCisgICAgICAgIGRhdGEgPSAnaGVsbG8nLmVuY29kZSgnYXNjaWknKQorICAg
ICAgICBmbi53cml0ZShkYXRhLCBtb2RlPSJ3YiIpCisgICAgICAgIGFzc2VydCBmbi5jb21wdXRl
aGFzaCgibWQ1IikgPT0gbWQ1KGRhdGEpLmhleGRpZ2VzdCgpCisgICAgICAgIGFzc2VydCBmbi5j
b21wdXRlaGFzaCgic2hhMSIpID09IHNoYShkYXRhKS5oZXhkaWdlc3QoKQorICAgICAgICBweS50
ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBmbi5jb21wdXRlaGFzaCwgImFzZGFzZCIpCisKKyAgICBk
ZWYgdGVzdF9yZW1vdmVfcmVtb3Zlc19yZWFkb25seV9maWxlKHNlbGYsIHRtcGRpcik6CisgICAg
ICAgIHJlYWRvbmx5X2ZpbGUgPSB0bXBkaXIuam9pbigncmVhZG9ubHknKS5lbnN1cmUoKQorICAg
ICAgICByZWFkb25seV9maWxlLmNobW9kKDApCisgICAgICAgIHJlYWRvbmx5X2ZpbGUucmVtb3Zl
KCkKKyAgICAgICAgYXNzZXJ0IG5vdCByZWFkb25seV9maWxlLmNoZWNrKGV4aXN0cz0xKQorCisg
ICAgZGVmIHRlc3RfcmVtb3ZlX3JlbW92ZXNfcmVhZG9ubHlfZGlyKHNlbGYsIHRtcGRpcik6Cisg
ICAgICAgIHJlYWRvbmx5X2RpciA9IHRtcGRpci5qb2luKCdyZWFkb25seWRpcicpLmVuc3VyZShk
aXI9MSkKKyAgICAgICAgcmVhZG9ubHlfZGlyLmNobW9kKGludCgiNTAwIiwgOCkpCisgICAgICAg
IHJlYWRvbmx5X2Rpci5yZW1vdmUoKQorICAgICAgICBhc3NlcnQgbm90IHJlYWRvbmx5X2Rpci5j
aGVjayhleGlzdHM9MSkKKworICAgIGRlZiB0ZXN0X3JlbW92ZV9yZW1vdmVzX2Rpcl9hbmRfcmVh
ZG9ubHlfZmlsZShzZWxmLCB0bXBkaXIpOgorICAgICAgICByZWFkb25seV9kaXIgPSB0bXBkaXIu
am9pbigncmVhZG9ubHlkaXInKS5lbnN1cmUoZGlyPTEpCisgICAgICAgIHJlYWRvbmx5X2ZpbGUg
PSByZWFkb25seV9kaXIuam9pbigncmVhZG9ubHlmaWxlJykuZW5zdXJlKCkKKyAgICAgICAgcmVh
ZG9ubHlfZmlsZS5jaG1vZCgwKQorICAgICAgICByZWFkb25seV9kaXIucmVtb3ZlKCkKKyAgICAg
ICAgYXNzZXJ0IG5vdCByZWFkb25seV9kaXIuY2hlY2soZXhpc3RzPTEpCisKKyAgICBkZWYgdGVz
dF9yZW1vdmVfcm91dGVzX2lnbm9yZV9lcnJvcnMoc2VsZiwgdG1wZGlyLCBtb25rZXlwYXRjaCk6
CisgICAgICAgIGwgPSBbXQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKAorICAgICAgICAg
ICAgJ3NodXRpbC5ybXRyZWUnLAorICAgICAgICAgICAgbGFtYmRhICphcmdzLCAqKmt3YXJnczog
bC5hcHBlbmQoa3dhcmdzKSkKKyAgICAgICAgdG1wZGlyLnJlbW92ZSgpCisgICAgICAgIGFzc2Vy
dCBub3QgbFswXVsnaWdub3JlX2Vycm9ycyddCisgICAgICAgIGZvciB2YWwgaW4gKFRydWUsIEZh
bHNlKToKKyAgICAgICAgICAgIGxbOl0gPSBbXQorICAgICAgICAgICAgdG1wZGlyLnJlbW92ZShp
Z25vcmVfZXJyb3JzPXZhbCkKKyAgICAgICAgICAgIGFzc2VydCBsWzBdWydpZ25vcmVfZXJyb3Jz
J10gPT0gdmFsCisKKyAgICBkZWYgdGVzdF9pbml0aWFsaXplX2N1cmRpcihzZWxmKToKKyAgICAg
ICAgYXNzZXJ0IHN0cihsb2NhbCgpKSA9PSBvcy5nZXRjd2QoKQorCisgICAgQHNraXBvbndpbjMy
CisgICAgZGVmIHRlc3RfY2hkaXJfZ29uZShzZWxmLCBwYXRoMSk6CisgICAgICAgIHAgPSBwYXRo
MS5lbnN1cmUoImRpcl90b19iZV9yZW1vdmVkIiwgZGlyPTEpCisgICAgICAgIHAuY2hkaXIoKQor
ICAgICAgICBwLnJlbW92ZSgpCisgICAgICAgIHB5dGVzdC5yYWlzZXMocHkuZXJyb3IuRU5PRU5U
LCBweS5wYXRoLmxvY2FsKQorICAgICAgICBhc3NlcnQgcGF0aDEuY2hkaXIoKSBpcyBOb25lCisg
ICAgICAgIGFzc2VydCBvcy5nZXRjd2QoKSA9PSBzdHIocGF0aDEpCisKKyAgICBkZWYgdGVzdF9h
c19jd2Qoc2VsZiwgcGF0aDEpOgorICAgICAgICBkaXIgPSBwYXRoMS5lbnN1cmUoInN1YmRpciIs
IGRpcj0xKQorICAgICAgICBvbGQgPSBweS5wYXRoLmxvY2FsKCkKKyAgICAgICAgd2l0aCBkaXIu
YXNfY3dkKCkgYXMgeDoKKyAgICAgICAgICAgIGFzc2VydCB4ID09IG9sZAorICAgICAgICAgICAg
YXNzZXJ0IHB5LnBhdGgubG9jYWwoKSA9PSBkaXIKKyAgICAgICAgYXNzZXJ0IG9zLmdldGN3ZCgp
ID09IHN0cihvbGQpCisKKyAgICBkZWYgdGVzdF9hc19jd2RfZXhjZXB0aW9uKHNlbGYsIHBhdGgx
KToKKyAgICAgICAgb2xkID0gcHkucGF0aC5sb2NhbCgpCisgICAgICAgIGRpciA9IHBhdGgxLmVu
c3VyZSgic3ViZGlyIiwgZGlyPTEpCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVy
cm9yKToKKyAgICAgICAgICAgIHdpdGggZGlyLmFzX2N3ZCgpOgorICAgICAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoKQorICAgICAgICBhc3NlcnQgb2xkID09IHB5LnBhdGgubG9jYWwoKQor
CisgICAgZGVmIHRlc3RfaW5pdGlhbGl6ZV9yZWxkaXIoc2VsZiwgcGF0aDEpOgorICAgICAgICB3
aXRoIHBhdGgxLmFzX2N3ZCgpOgorICAgICAgICAgICAgcCA9IGxvY2FsKCdzYW1wbGVmaWxlJykK
KyAgICAgICAgICAgIGFzc2VydCBwLmNoZWNrKCkKKworICAgIGRlZiB0ZXN0X3RpbGRlX2V4cGFu
c2lvbihzZWxmLCBtb25rZXlwYXRjaCwgdG1wZGlyKToKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0
ZW52KCJIT01FIiwgc3RyKHRtcGRpcikpCisgICAgICAgIHAgPSBweS5wYXRoLmxvY2FsKCJ+Iiwg
ZXhwYW5kdXNlcj1UcnVlKQorICAgICAgICBhc3NlcnQgcCA9PSBvcy5wYXRoLmV4cGFuZHVzZXIo
In4iKQorCisgICAgZGVmIHRlc3RfZXFfd2l0aF9zdHJpbmdzKHNlbGYsIHBhdGgxKToKKyAgICAg
ICAgcGF0aDEgPSBwYXRoMS5qb2luKCdzYW1wbGVkaXInKQorICAgICAgICBwYXRoMiA9IHN0cihw
YXRoMSkKKyAgICAgICAgYXNzZXJ0IHBhdGgxID09IHBhdGgyCisgICAgICAgIGFzc2VydCBwYXRo
MiA9PSBwYXRoMQorICAgICAgICBwYXRoMyA9IHBhdGgxLmpvaW4oJ3NhbXBsZWZpbGUnKQorICAg
ICAgICBhc3NlcnQgcGF0aDMgIT0gcGF0aDIKKyAgICAgICAgYXNzZXJ0IHBhdGgyICE9IHBhdGgz
CisKKyAgICBkZWYgdGVzdF9lcV93aXRoX25vbmUoc2VsZiwgcGF0aDEpOgorICAgICAgICBhc3Nl
cnQgcGF0aDEgIT0gTm9uZSAgIyBub3FhCisKKyAgICBkZWYgdGVzdF9lcV9ub25fYXNjaWlfdW5p
Y29kZShzZWxmLCBwYXRoMSk6CisgICAgICAgIHBhdGgyID0gcGF0aDEuam9pbih1J3RlbXAnKQor
ICAgICAgICBwYXRoMyA9IHBhdGgxLmpvaW4odSdhw6fDo28nKQorICAgICAgICBwYXRoNCA9IHBh
dGgxLmpvaW4odSfjg4fjgqPjg6zjgq/jg4jjg6onKQorCisgICAgICAgIGFzc2VydCBwYXRoMiAh
PSBwYXRoMworICAgICAgICBhc3NlcnQgcGF0aDIgIT0gcGF0aDQKKyAgICAgICAgYXNzZXJ0IHBh
dGg0ICE9IHBhdGgzCisKKyAgICBkZWYgdGVzdF9ndF93aXRoX3N0cmluZ3Moc2VsZiwgcGF0aDEp
OgorICAgICAgICBwYXRoMiA9IHBhdGgxLmpvaW4oJ3NhbXBsZWRpcicpCisgICAgICAgIHBhdGgz
ID0gc3RyKHBhdGgxLmpvaW4oInR0dCIpKQorICAgICAgICBhc3NlcnQgcGF0aDMgPiBwYXRoMgor
ICAgICAgICBhc3NlcnQgcGF0aDIgPCBwYXRoMworICAgICAgICBhc3NlcnQgcGF0aDIgPCAidHR0
IgorICAgICAgICBhc3NlcnQgInR0dCIgPiBwYXRoMgorICAgICAgICBwYXRoNCA9IHBhdGgxLmpv
aW4oImFhYSIpCisgICAgICAgIGwgPSBbcGF0aDIsIHBhdGg0LCBwYXRoM10KKyAgICAgICAgYXNz
ZXJ0IHNvcnRlZChsKSA9PSBbcGF0aDQsIHBhdGgyLCBwYXRoM10KKworICAgIGRlZiB0ZXN0X29w
ZW5fYW5kX2Vuc3VyZShzZWxmLCBwYXRoMSk6CisgICAgICAgIHAgPSBwYXRoMS5qb2luKCJzdWIx
IiwgInN1YjIiLCAiZmlsZSIpCisgICAgICAgIHdpdGggcC5vcGVuKCJ3IiwgZW5zdXJlPTEpIGFz
IGY6CisgICAgICAgICAgICBmLndyaXRlKCJoZWxsbyIpCisgICAgICAgIGFzc2VydCBwLnJlYWQo
KSA9PSAiaGVsbG8iCisKKyAgICBkZWYgdGVzdF93cml0ZV9hbmRfZW5zdXJlKHNlbGYsIHBhdGgx
KToKKyAgICAgICAgcCA9IHBhdGgxLmpvaW4oInN1YjEiLCAic3ViMiIsICJmaWxlIikKKyAgICAg
ICAgcC53cml0ZSgiaGVsbG8iLCBlbnN1cmU9MSkKKyAgICAgICAgYXNzZXJ0IHAucmVhZCgpID09
ICJoZWxsbyIKKworICAgIEBweS50ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2JpbicsIChGYWxzZSwg
VHJ1ZSkpCisgICAgZGVmIHRlc3RfZHVtcChzZWxmLCB0bXBkaXIsIGJpbik6CisgICAgICAgIHBh
dGggPSB0bXBkaXIuam9pbigiZHVtcGZpbGUlcyIgJSBpbnQoYmluKSkKKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgZCA9IHsnYW5zd2VyJzogNDJ9CisgICAgICAgICAgICBwYXRoLmR1bXAoZCwg
YmluPWJpbikKKyAgICAgICAgICAgIGYgPSBwYXRoLm9wZW4oJ3JiKycpCisgICAgICAgICAgICBp
bXBvcnQgcGlja2xlCisgICAgICAgICAgICBkbmV3ID0gcGlja2xlLmxvYWQoZikKKyAgICAgICAg
ICAgIGFzc2VydCBkID09IGRuZXcKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGYuY2xv
c2UoKQorCisgICAgQGZhaWxzb25qeXdpbjMyCisgICAgZGVmIHRlc3Rfc2V0bXRpbWUoc2VsZik6
CisgICAgICAgIGltcG9ydCB0ZW1wZmlsZQorICAgICAgICBpbXBvcnQgdGltZQorICAgICAgICB0
cnk6CisgICAgICAgICAgICBmZCwgbmFtZSA9IHRlbXBmaWxlLm1rc3RlbXAoKQorICAgICAgICAg
ICAgb3MuY2xvc2UoZmQpCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAg
ICAgIG5hbWUgPSB0ZW1wZmlsZS5ta3RlbXAoKQorICAgICAgICAgICAgb3BlbihuYW1lLCAndycp
LmNsb3NlKCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbXRpbWUgPSBpbnQodGltZS50aW1l
KCkpLTEwMAorICAgICAgICAgICAgcGF0aCA9IGxvY2FsKG5hbWUpCisgICAgICAgICAgICBhc3Nl
cnQgcGF0aC5tdGltZSgpICE9IG10aW1lCisgICAgICAgICAgICBwYXRoLnNldG10aW1lKG10aW1l
KQorICAgICAgICAgICAgYXNzZXJ0IHBhdGgubXRpbWUoKSA9PSBtdGltZQorICAgICAgICAgICAg
cGF0aC5zZXRtdGltZSgpCisgICAgICAgICAgICBhc3NlcnQgcGF0aC5tdGltZSgpICE9IG10aW1l
CisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBvcy5yZW1vdmUobmFtZSkKKworICAgIGRl
ZiB0ZXN0X25vcm1wYXRoKHNlbGYsIHBhdGgxKToKKyAgICAgICAgbmV3MSA9IHBhdGgxLmpvaW4o
Ii9vdGhlcmRpciIpCisgICAgICAgIG5ldzIgPSBwYXRoMS5qb2luKCJvdGhlcmRpciIpCisgICAg
ICAgIGFzc2VydCBzdHIobmV3MSkgPT0gc3RyKG5ldzIpCisKKyAgICBkZWYgdGVzdF9ta2R0ZW1w
X2NyZWF0aW9uKHNlbGYpOgorICAgICAgICBkID0gbG9jYWwubWtkdGVtcCgpCisgICAgICAgIHRy
eToKKyAgICAgICAgICAgIGFzc2VydCBkLmNoZWNrKGRpcj0xKQorICAgICAgICBmaW5hbGx5Ogor
ICAgICAgICAgICAgZC5yZW1vdmUocmVjPTEpCisKKyAgICBkZWYgdGVzdF90bXByb290KHNlbGYp
OgorICAgICAgICBkID0gbG9jYWwubWtkdGVtcCgpCisgICAgICAgIHRtcHJvb3QgPSBsb2NhbC5n
ZXRfdGVtcHJvb3QoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBhc3NlcnQgZC5jaGVjayhk
aXI9MSkKKyAgICAgICAgICAgIGFzc2VydCBkLmRpcnBhdGgoKSA9PSB0bXByb290CisgICAgICAg
IGZpbmFsbHk6CisgICAgICAgICAgICBkLnJlbW92ZShyZWM9MSkKKworICAgIGRlZiB0ZXN0X2No
ZGlyKHNlbGYsIHRtcGRpcik6CisgICAgICAgIG9sZCA9IGxvY2FsKCkKKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgcmVzID0gdG1wZGlyLmNoZGlyKCkKKyAgICAgICAgICAgIGFzc2VydCBzdHIo
cmVzKSA9PSBzdHIob2xkKQorICAgICAgICAgICAgYXNzZXJ0IG9zLmdldGN3ZCgpID09IHN0cih0
bXBkaXIpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBvbGQuY2hkaXIoKQorCisgICAg
ZGVmIHRlc3RfZW5zdXJlX2ZpbGVwYXRoX3dpdGhkaXIoc2VsZiwgdG1wZGlyKToKKyAgICAgICAg
bmV3ZmlsZSA9IHRtcGRpci5qb2luKCd0ZXN0MScsICd0ZXN0JykKKyAgICAgICAgbmV3ZmlsZS5l
bnN1cmUoKQorICAgICAgICBhc3NlcnQgbmV3ZmlsZS5jaGVjayhmaWxlPTEpCisgICAgICAgIG5l
d2ZpbGUud3JpdGUoIjQyIikKKyAgICAgICAgbmV3ZmlsZS5lbnN1cmUoKQorICAgICAgICBzID0g
bmV3ZmlsZS5yZWFkKCkKKyAgICAgICAgYXNzZXJ0IHMgPT0gIjQyIgorCisgICAgZGVmIHRlc3Rf
ZW5zdXJlX2ZpbGVwYXRoX3dpdGhvdXRkaXIoc2VsZiwgdG1wZGlyKToKKyAgICAgICAgbmV3Zmls
ZSA9IHRtcGRpci5qb2luKCd0ZXN0MWZpbGUnKQorICAgICAgICB0ID0gbmV3ZmlsZS5lbnN1cmUo
KQorICAgICAgICBhc3NlcnQgdCA9PSBuZXdmaWxlCisgICAgICAgIGFzc2VydCBuZXdmaWxlLmNo
ZWNrKGZpbGU9MSkKKworICAgIGRlZiB0ZXN0X2Vuc3VyZV9kaXJwYXRoKHNlbGYsIHRtcGRpcik6
CisgICAgICAgIG5ld2ZpbGUgPSB0bXBkaXIuam9pbigndGVzdDEnLCAndGVzdGZpbGUnKQorICAg
ICAgICB0ID0gbmV3ZmlsZS5lbnN1cmUoZGlyPTEpCisgICAgICAgIGFzc2VydCB0ID09IG5ld2Zp
bGUKKyAgICAgICAgYXNzZXJ0IG5ld2ZpbGUuY2hlY2soZGlyPTEpCisKKyAgICBkZWYgdGVzdF9l
bnN1cmVfbm9uX2FzY2lpX3VuaWNvZGUoc2VsZiwgdG1wZGlyKToKKyAgICAgICAgbmV3ZmlsZSA9
IHRtcGRpci5qb2luKHUnYcOnw6NvJyx1J+ODh+OCo+ODrOOCr+ODiOODqicpCisgICAgICAgIHQg
PSBuZXdmaWxlLmVuc3VyZShkaXI9MSkKKyAgICAgICAgYXNzZXJ0IHQgPT0gbmV3ZmlsZQorICAg
ICAgICBhc3NlcnQgbmV3ZmlsZS5jaGVjayhkaXI9MSkKKworICAgIGRlZiB0ZXN0X2luaXRfZnJv
bV9wYXRoKHNlbGYsIHRtcGRpcik6CisgICAgICAgIGwgPSBsb2NhbCgpCisgICAgICAgIGwyID0g
bG9jYWwobCkKKyAgICAgICAgYXNzZXJ0IGwyID09IGwKKworICAgICAgICB3YyA9IHB5LnBhdGgu
c3Zud2MoJy4nKQorICAgICAgICBsMyA9IGxvY2FsKHdjKQorICAgICAgICBhc3NlcnQgbDMgaXMg
bm90IHdjCisgICAgICAgIGFzc2VydCBsMy5zdHJwYXRoID09IHdjLnN0cnBhdGgKKyAgICAgICAg
YXNzZXJ0IG5vdCBoYXNhdHRyKGwzLCAnY29tbWl0JykKKworICAgIEBweS50ZXN0Lm1hcmsueGZh
aWwocnVuPUZhbHNlLCByZWFzb249InVucmVsaWFibGUgZXN0IGZvciBsb25nIGZpbGVuYW1lcyIp
CisgICAgZGVmIHRlc3RfbG9uZ19maWxlbmFtZXMoc2VsZiwgdG1wZGlyKToKKyAgICAgICAgaWYg
c3lzLnBsYXRmb3JtID09ICJ3aW4zMiI6CisgICAgICAgICAgICBweS50ZXN0LnNraXAoIndpbjMy
OiB3b3JrIGFyb3VuZCBuZWVkZWQgZm9yIHBhdGggbGVuZ3RoIGxpbWl0IikKKyAgICAgICAgIyBz
ZWUgaHR0cDovL2NvZGVzcGVhay5uZXQvcGlwZXJtYWlsL3B5LWRldi8yMDA4cTIvMDAwOTIyLmh0
bWwKKworICAgICAgICAjIHRlc3RpbmcgcGF0aHMgPiAyNjAgY2hhcnMgKHdoaWNoIGlzIFdpbmRv
d3MnIGxpbWl0YXRpb24sIGJ1dAorICAgICAgICAjIGRlcGVuZGluZyBvbiBob3cgdGhlIHBhdGhz
IGFyZSB1c2VkKSwgYnV0ID4gNDA5NiAod2hpY2ggaXMgdGhlCisgICAgICAgICMgTGludXgnIGxp
bWl0YXRpb24pIC0gdGhlIGJlaGF2aW91ciBvZiBwYXRocyB3aXRoIG5hbWVzID4gNDA5NiBjaGFy
cworICAgICAgICAjIGlzIHVuZGV0ZXJtaW5lZAorICAgICAgICBuZXdmaWxlbmFtZSA9ICcvdGVz
dCcgKiA2MAorICAgICAgICBsID0gdG1wZGlyLmpvaW4obmV3ZmlsZW5hbWUpCisgICAgICAgIGwu
ZW5zdXJlKGZpbGU9VHJ1ZSkKKyAgICAgICAgbC53cml0ZSgnZm9vJykKKyAgICAgICAgbDIgPSB0
bXBkaXIuam9pbihuZXdmaWxlbmFtZSkKKyAgICAgICAgYXNzZXJ0IGwyLnJlYWQoKSA9PSAnZm9v
JworCisgICAgZGVmIHRlc3RfdmlzaXRfZGVwdGhfZmlyc3Qoc2VsZiwgdG1wZGlyKToKKyAgICAg
ICAgdG1wZGlyLmVuc3VyZSgiYSIsICIxIikKKyAgICAgICAgdG1wZGlyLmVuc3VyZSgiYiIsICIy
IikKKyAgICAgICAgcDMgPSB0bXBkaXIuZW5zdXJlKCJicmVhZHRoIikKKyAgICAgICAgbCA9IGxp
c3QodG1wZGlyLnZpc2l0KGxhbWJkYSB4OiB4LmNoZWNrKGZpbGU9MSkpKQorICAgICAgICBhc3Nl
cnQgbGVuKGwpID09IDMKKyAgICAgICAgIyBjaGVjayB0aGF0IGJyZWFkdGggY29tZXMgbGFzdAor
ICAgICAgICBhc3NlcnQgbFsyXSA9PSBwMworCisgICAgZGVmIHRlc3RfdmlzaXRfcmVjX2ZubWF0
Y2goc2VsZiwgdG1wZGlyKToKKyAgICAgICAgcDEgPSB0bXBkaXIuZW5zdXJlKCJhIiwgIjEyMyIp
CisgICAgICAgIHRtcGRpci5lbnN1cmUoIi5iIiwgIjM0NSIpCisgICAgICAgIGwgPSBsaXN0KHRt
cGRpci52aXNpdCgiPz8/IiwgcmVjPSJbIS5dKiIpKQorICAgICAgICBhc3NlcnQgbGVuKGwpID09
IDEKKyAgICAgICAgIyBjaGVjayB0aGF0IGJyZWFkdGggY29tZXMgbGFzdAorICAgICAgICBhc3Nl
cnQgbFswXSA9PSBwMQorCisgICAgZGVmIHRlc3RfZm5tYXRjaF9maWxlX2Fic3BhdGgoc2VsZiwg
dG1wZGlyKToKKyAgICAgICAgYiA9IHRtcGRpci5qb2luKCJhIiwgImIiKQorICAgICAgICBhc3Nl
cnQgYi5mbm1hdGNoKG9zLnNlcC5qb2luKCJhYiIpKQorICAgICAgICBwYXR0ZXJuID0gb3Muc2Vw
LmpvaW4oW3N0cih0bXBkaXIpLCAiKiIsICJiIl0pCisgICAgICAgIGFzc2VydCBiLmZubWF0Y2go
cGF0dGVybikKKworICAgIGRlZiB0ZXN0X3N5c2ZpbmQoc2VsZik6CisgICAgICAgIG5hbWUgPSBz
eXMucGxhdGZvcm0gPT0gIndpbjMyIiBhbmQgImNtZCIgb3IgInRlc3QiCisgICAgICAgIHggPSBw
eS5wYXRoLmxvY2FsLnN5c2ZpbmQobmFtZSkKKyAgICAgICAgYXNzZXJ0IHguY2hlY2soZmlsZT0x
KQorICAgICAgICBhc3NlcnQgcHkucGF0aC5sb2NhbC5zeXNmaW5kKCdqYWtzZGthc2xkcXdlJykg
aXMgTm9uZQorICAgICAgICBhc3NlcnQgcHkucGF0aC5sb2NhbC5zeXNmaW5kKG5hbWUsIHBhdGhz
PVtdKSBpcyBOb25lCisgICAgICAgIHgyID0gcHkucGF0aC5sb2NhbC5zeXNmaW5kKG5hbWUsIHBh
dGhzPVt4LmRpcnBhdGgoKV0pCisgICAgICAgIGFzc2VydCB4MiA9PSB4CisKKyAgICBkZWYgdGVz
dF9mc3BhdGhfcHJvdG9jb2xfb3RoZXJfY2xhc3Moc2VsZiwgZmFrZV9mc3BhdGhfb2JqKToKKyAg
ICAgICAgIyBweS5wYXRoIGlzIGFsd2F5cyBhYnNvbHV0ZQorICAgICAgICBweV9wYXRoID0gcHku
cGF0aC5sb2NhbChmYWtlX2ZzcGF0aF9vYmopCisgICAgICAgIHN0cl9wYXRoID0gZmFrZV9mc3Bh
dGhfb2JqLl9fZnNwYXRoX18oKQorICAgICAgICBhc3NlcnQgcHlfcGF0aC5jaGVjayhlbmRzd2l0
aD1zdHJfcGF0aCkKKyAgICAgICAgYXNzZXJ0IHB5X3BhdGguam9pbihmYWtlX2ZzcGF0aF9vYmop
LnN0cnBhdGggPT0gb3MucGF0aC5qb2luKAorICAgICAgICAgICAgICAgIHB5X3BhdGguc3RycGF0
aCwgc3RyX3BhdGgpCisKKyAgICBkZWYgdGVzdF9tYWtlX251bWJlcmVkX2Rpcl9tdWx0aXByb2Nl
c3Nfc2FmZShzZWxmLCB0bXBkaXIpOgorICAgICAgICAjIGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5L2lzc3Vlcy8zMAorICAgICAgICBwb29sID0gbXVsdGlwcm9jZXNzaW5nLlBvb2wo
KQorICAgICAgICByZXN1bHRzID0gW3Bvb2wuYXBwbHlfYXN5bmMoYmF0Y2hfbWFrZV9udW1iZXJl
ZF9kaXJzLCBbdG1wZGlyLCAxMDBdKSBmb3IgXyBpbiByYW5nZSgyMCldCisgICAgICAgIGZvciBy
IGluIHJlc3VsdHM6CisgICAgICAgICAgICBhc3NlcnQgci5nZXQoKQorCisKK2NsYXNzIFRlc3RF
eGVjdXRpb25PbldpbmRvd3M6CisgICAgcHl0ZXN0bWFyayA9IHdpbjMyb25seQorCisgICAgZGVm
IHRlc3Rfc3lzZmluZF9iYXRfZXhlX2JlZm9yZShzZWxmLCB0bXBkaXIsIG1vbmtleXBhdGNoKToK
KyAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJQQVRIIiwgc3RyKHRtcGRpciksIHByZXBlbmQ9
b3MucGF0aHNlcCkKKyAgICAgICAgdG1wZGlyLmVuc3VyZSgiaGVsbG8iKQorICAgICAgICBoID0g
dG1wZGlyLmVuc3VyZSgiaGVsbG8uYmF0IikKKyAgICAgICAgeCA9IHB5LnBhdGgubG9jYWwuc3lz
ZmluZCgiaGVsbG8iKQorICAgICAgICBhc3NlcnQgeCA9PSBoCisKKworY2xhc3MgVGVzdEV4ZWN1
dGlvbjoKKyAgICBweXRlc3RtYXJrID0gc2tpcG9ud2luMzIKKworICAgIGRlZiB0ZXN0X3N5c2Zp
bmRfbm9fcGVybWlzc29uX2lnbm9yZWQoc2VsZiwgbW9ua2V5cGF0Y2gsIHRtcGRpcik6CisgICAg
ICAgIG5vcGVybSA9IHRtcGRpci5lbnN1cmUoJ25vcGVybScsIGRpcj1UcnVlKQorICAgICAgICBt
b25rZXlwYXRjaC5zZXRlbnYoIlBBVEgiLCBub3Blcm0sIHByZXBlbmQ9IjoiKQorICAgICAgICBu
b3Blcm0uY2htb2QoMCkKKyAgICAgICAgYXNzZXJ0IHB5LnBhdGgubG9jYWwuc3lzZmluZCgnamFr
c2RrYXNsZHF3ZScpIGlzIE5vbmUKKworICAgIGRlZiB0ZXN0X3N5c2ZpbmRfYWJzb2x1dGUoc2Vs
Zik6CisgICAgICAgIHggPSBweS5wYXRoLmxvY2FsLnN5c2ZpbmQoJ3Rlc3QnKQorICAgICAgICBh
c3NlcnQgeC5jaGVjayhmaWxlPTEpCisgICAgICAgIHkgPSBweS5wYXRoLmxvY2FsLnN5c2ZpbmQo
c3RyKHgpKQorICAgICAgICBhc3NlcnQgeS5jaGVjayhmaWxlPTEpCisgICAgICAgIGFzc2VydCB5
ID09IHgKKworICAgIGRlZiB0ZXN0X3N5c2ZpbmRfbXVsdGlwbGUoc2VsZiwgdG1wZGlyLCBtb25r
ZXlwYXRjaCk6CisgICAgICAgIG1vbmtleXBhdGNoLnNldGVudignUEFUSCcsICIlczolcyIgJSAo
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wZGlyLmVuc3VyZSgnYScpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRtcGRpci5qb2luKCdiJykpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHJlcGVuZD0iOiIpCisgICAgICAgIHRtcGRpci5lbnN1cmUoJ2InLCAnYScp
CisgICAgICAgIHggPSBweS5wYXRoLmxvY2FsLnN5c2ZpbmQoCisgICAgICAgICAgICAnYScsIGNo
ZWNrZXI9bGFtYmRhIHg6IHguZGlycGF0aCgpLmJhc2VuYW1lID09ICdiJykKKyAgICAgICAgYXNz
ZXJ0IHguYmFzZW5hbWUgPT0gJ2EnCisgICAgICAgIGFzc2VydCB4LmRpcnBhdGgoKS5iYXNlbmFt
ZSA9PSAnYicKKyAgICAgICAgYXNzZXJ0IHB5LnBhdGgubG9jYWwuc3lzZmluZCgnYScsIGNoZWNr
ZXI9bGFtYmRhIHg6IE5vbmUpIGlzIE5vbmUKKworICAgIGRlZiB0ZXN0X3N5c2V4ZWMoc2VsZik6
CisgICAgICAgIHggPSBweS5wYXRoLmxvY2FsLnN5c2ZpbmQoJ2xzJykKKyAgICAgICAgb3V0ID0g
eC5zeXNleGVjKCctYScpCisgICAgICAgIGZvciB4IGluIHB5LnBhdGgubG9jYWwoKS5saXN0ZGly
KCk6CisgICAgICAgICAgICBhc3NlcnQgb3V0LmZpbmQoeC5iYXNlbmFtZSkgIT0gLTEKKworICAg
IGRlZiB0ZXN0X3N5c2V4ZWNfZmFpbGluZyhzZWxmKToKKyAgICAgICAgeCA9IHB5LnBhdGgubG9j
YWwuc3lzZmluZCgnZmFsc2UnKQorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMocHkucHJvY2Vz
cy5jbWRleGVjLkVycm9yKToKKyAgICAgICAgICAgIHguc3lzZXhlYygnYWtzamRrYXNqZCcpCisK
KyAgICBkZWYgdGVzdF9tYWtlX251bWJlcmVkX2RpcihzZWxmLCB0bXBkaXIpOgorICAgICAgICB0
bXBkaXIuZW5zdXJlKCdiYXNlLm5vdF9hbl9pbnQnLCBkaXI9MSkKKyAgICAgICAgZm9yIGkgaW4g
cmFuZ2UoMTApOgorICAgICAgICAgICAgbnVtZGlyID0gbG9jYWwubWFrZV9udW1iZXJlZF9kaXIo
cHJlZml4PSdiYXNlLicsIHJvb3RkaXI9dG1wZGlyLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAga2VlcD0yLCBsb2NrX3RpbWVvdXQ9MCkKKyAgICAgICAgICAg
IGFzc2VydCBudW1kaXIuY2hlY2soKQorICAgICAgICAgICAgYXNzZXJ0IG51bWRpci5iYXNlbmFt
ZSA9PSAnYmFzZS4lZCcgJSBpCisgICAgICAgICAgICBpZiBpID49IDE6CisgICAgICAgICAgICAg
ICAgYXNzZXJ0IG51bWRpci5uZXcoZXh0PXN0cihpLTEpKS5jaGVjaygpCisgICAgICAgICAgICBp
ZiBpID49IDI6CisgICAgICAgICAgICAgICAgYXNzZXJ0IG51bWRpci5uZXcoZXh0PXN0cihpLTIp
KS5jaGVjaygpCisgICAgICAgICAgICBpZiBpID49IDM6CisgICAgICAgICAgICAgICAgYXNzZXJ0
IG5vdCBudW1kaXIubmV3KGV4dD1zdHIoaS0zKSkuY2hlY2soKQorCisgICAgZGVmIHRlc3RfbWFr
ZV9udW1iZXJlZF9kaXJfY2FzZV9pbnNlbnNpdGl2ZShzZWxmLCB0bXBkaXIsIG1vbmtleXBhdGNo
KToKKyAgICAgICAgIyBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVz
LzcwOAorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHB5Ll9wYXRoLmxvY2FsLCAnbm9ybWNh
c2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSBwYXRoOiBwYXRoLmxvd2Vy
KCkpCisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIodG1wZGlyLCAnbGlzdGRpcicsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGFtYmRhOiBbdG1wZGlyLl9mYXN0am9pbignY2FzZS4w
JyldKQorICAgICAgICBudW1kaXIgPSBsb2NhbC5tYWtlX251bWJlcmVkX2RpcihwcmVmaXg9J0NB
c2UuJywgcm9vdGRpcj10bXBkaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGtlZXA9MiwgbG9ja190aW1lb3V0PTApCisgICAgICAgIGFzc2VydCBudW1kaXIuYmFz
ZW5hbWUuZW5kc3dpdGgoJy4xJykKKworICAgIGRlZiB0ZXN0X21ha2VfbnVtYmVyZWRfZGlyX2Nh
c2Vfc2Vuc2l0aXZlKHNlbGYsIHRtcGRpciwgbW9ua2V5cGF0Y2gpOgorICAgICAgICAjIGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNzA4CisgICAgICAgIG1vbmtl
eXBhdGNoLnNldGF0dHIocHkuX3BhdGgubG9jYWwsICdub3JtY2FzZScsIGxhbWJkYSBwYXRoOiBw
YXRoKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHRtcGRpciwgJ2xpc3RkaXInLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYTogW3RtcGRpci5fZmFzdGpvaW4oJ2Nhc2Uu
MCcpXSkKKyAgICAgICAgbnVtZGlyID0gbG9jYWwubWFrZV9udW1iZXJlZF9kaXIocHJlZml4PSdD
QXNlLicsIHJvb3RkaXI9dG1wZGlyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBrZWVwPTIsIGxvY2tfdGltZW91dD0wKQorICAgICAgICBhc3NlcnQgbnVtZGlyLmJh
c2VuYW1lLmVuZHN3aXRoKCcuMCcpCisKKyAgICBkZWYgdGVzdF9tYWtlX251bWJlcmVkX2Rpcl9O
b3RJbXBsZW1lbnRlZF9FcnJvcihzZWxmLCB0bXBkaXIsIG1vbmtleXBhdGNoKToKKyAgICAgICAg
ZGVmIG5vdGltcGwoeCwgeSk6CisgICAgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9y
KDQyKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG9zLCAnc3ltbGluaycsIG5vdGltcGwp
CisgICAgICAgIHggPSB0bXBkaXIubWFrZV9udW1iZXJlZF9kaXIocm9vdGRpcj10bXBkaXIsIGxv
Y2tfdGltZW91dD0wKQorICAgICAgICBhc3NlcnQgeC5yZWx0byh0bXBkaXIpCisgICAgICAgIGFz
c2VydCB4LmNoZWNrKCkKKworICAgIGRlZiB0ZXN0X2xvY2tlZF9tYWtlX251bWJlcmVkX2Rpcihz
ZWxmLCB0bXBkaXIpOgorICAgICAgICBmb3IgaSBpbiByYW5nZSgxMCk6CisgICAgICAgICAgICBu
dW1kaXIgPSBsb2NhbC5tYWtlX251bWJlcmVkX2RpcihwcmVmaXg9J2Jhc2UyLicsIHJvb3RkaXI9
dG1wZGlyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2Vl
cD0yKQorICAgICAgICAgICAgYXNzZXJ0IG51bWRpci5jaGVjaygpCisgICAgICAgICAgICBhc3Nl
cnQgbnVtZGlyLmJhc2VuYW1lID09ICdiYXNlMi4lZCcgJSBpCisgICAgICAgICAgICBmb3IgaiBp
biByYW5nZShpKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgbnVtZGlyLm5ldyhleHQ9c3RyKGop
KS5jaGVjaygpCisKKyAgICBkZWYgdGVzdF9lcnJvcl9wcmVzZXJ2YXRpb24oc2VsZiwgcGF0aDEp
OgorICAgICAgICBweS50ZXN0LnJhaXNlcyhFbnZpcm9ubWVudEVycm9yLCBwYXRoMS5qb2luKCdx
d29lcWl3ZScpLm10aW1lKQorICAgICAgICBweS50ZXN0LnJhaXNlcyhFbnZpcm9ubWVudEVycm9y
LCBwYXRoMS5qb2luKCdxd29lcWl3ZScpLnJlYWQpCisKKyAgICAjIGRlZiB0ZXN0X3BhcmVudGRp
cm1hdGNoKHNlbGYpOgorICAgICMgICAgbG9jYWwucGFyZW50ZGlybWF0Y2goJ3N0ZCcsIHN0YXJ0
bW9kdWxlPV9fbmFtZV9fKQorICAgICMKKworCitjbGFzcyBUZXN0SW1wb3J0OgorICAgIGRlZiB0
ZXN0X3B5aW1wb3J0KHNlbGYsIHBhdGgxKToKKyAgICAgICAgb2JqID0gcGF0aDEuam9pbignZXhl
Y2ZpbGUucHknKS5weWltcG9ydCgpCisgICAgICAgIGFzc2VydCBvYmoueCA9PSA0MgorICAgICAg
ICBhc3NlcnQgb2JqLl9fbmFtZV9fID09ICdleGVjZmlsZScKKworICAgIGRlZiB0ZXN0X3B5aW1w
b3J0X3JlbmFtZWRfZGlyX2NyZWF0ZXNfbWlzbWF0Y2goc2VsZiwgdG1wZGlyKToKKyAgICAgICAg
cCA9IHRtcGRpci5lbnN1cmUoImEiLCAidGVzdF94MTIzLnB5IikKKyAgICAgICAgcC5weWltcG9y
dCgpCisgICAgICAgIHRtcGRpci5qb2luKCJhIikubW92ZSh0bXBkaXIuam9pbigiYiIpKQorICAg
ICAgICB3aXRoIHB5dGVzdC5yYWlzZXModG1wZGlyLkltcG9ydE1pc21hdGNoRXJyb3IpOgorICAg
ICAgICAgICAgdG1wZGlyLmpvaW4oImIiLCAidGVzdF94MTIzLnB5IikucHlpbXBvcnQoKQorCisg
ICAgZGVmIHRlc3RfcHlpbXBvcnRfbWVzc3lfbmFtZShzZWxmLCB0bXBkaXIpOgorICAgICAgICAj
IGh0dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5LXRydW5rL2lzc3VlLzEyOQorICAgICAgICBw
YXRoID0gdG1wZGlyLmVuc3VyZSgnZm9vX19pbml0X18ucHknKQorICAgICAgICBwYXRoLnB5aW1w
b3J0KCkKKworICAgIGRlZiB0ZXN0X3B5aW1wb3J0X2RpcihzZWxmLCB0bXBkaXIpOgorICAgICAg
ICBwID0gdG1wZGlyLmpvaW4oImhlbGxvXzEyMyIpCisgICAgICAgIHBfaW5pdCA9IHAuZW5zdXJl
KCJfX2luaXRfXy5weSIpCisgICAgICAgIG0gPSBwLnB5aW1wb3J0KCkKKyAgICAgICAgYXNzZXJ0
IG0uX19uYW1lX18gPT0gImhlbGxvXzEyMyIKKyAgICAgICAgbSA9IHBfaW5pdC5weWltcG9ydCgp
CisgICAgICAgIGFzc2VydCBtLl9fbmFtZV9fID09ICJoZWxsb18xMjMiCisKKyAgICBkZWYgdGVz
dF9weWltcG9ydF9leGVjZmlsZV9kaWZmZXJlbnRfbmFtZShzZWxmLCBwYXRoMSk6CisgICAgICAg
IG9iaiA9IHBhdGgxLmpvaW4oJ2V4ZWNmaWxlLnB5JykucHlpbXBvcnQobW9kbmFtZT0iMHgueS56
IikKKyAgICAgICAgYXNzZXJ0IG9iai54ID09IDQyCisgICAgICAgIGFzc2VydCBvYmouX19uYW1l
X18gPT0gJzB4LnkueicKKworICAgIGRlZiB0ZXN0X3B5aW1wb3J0X2Eoc2VsZiwgcGF0aDEpOgor
ICAgICAgICBvdGhlcmRpciA9IHBhdGgxLmpvaW4oJ290aGVyZGlyJykKKyAgICAgICAgbW9kID0g
b3RoZXJkaXIuam9pbignYS5weScpLnB5aW1wb3J0KCkKKyAgICAgICAgYXNzZXJ0IG1vZC5yZXN1
bHQgPT0gImdvdCBpdCIKKyAgICAgICAgYXNzZXJ0IG1vZC5fX25hbWVfXyA9PSAnb3RoZXJkaXIu
YScKKworICAgIGRlZiB0ZXN0X3B5aW1wb3J0X2Ioc2VsZiwgcGF0aDEpOgorICAgICAgICBvdGhl
cmRpciA9IHBhdGgxLmpvaW4oJ290aGVyZGlyJykKKyAgICAgICAgbW9kID0gb3RoZXJkaXIuam9p
bignYi5weScpLnB5aW1wb3J0KCkKKyAgICAgICAgYXNzZXJ0IG1vZC5zdHVmZiA9PSAiZ290IGl0
IgorICAgICAgICBhc3NlcnQgbW9kLl9fbmFtZV9fID09ICdvdGhlcmRpci5iJworCisgICAgZGVm
IHRlc3RfcHlpbXBvcnRfYyhzZWxmLCBwYXRoMSk6CisgICAgICAgIG90aGVyZGlyID0gcGF0aDEu
am9pbignb3RoZXJkaXInKQorICAgICAgICBtb2QgPSBvdGhlcmRpci5qb2luKCdjLnB5JykucHlp
bXBvcnQoKQorICAgICAgICBhc3NlcnQgbW9kLnZhbHVlID09ICJnb3QgaXQiCisKKyAgICBkZWYg
dGVzdF9weWltcG9ydF9kKHNlbGYsIHBhdGgxKToKKyAgICAgICAgb3RoZXJkaXIgPSBwYXRoMS5q
b2luKCdvdGhlcmRpcicpCisgICAgICAgIG1vZCA9IG90aGVyZGlyLmpvaW4oJ2QucHknKS5weWlt
cG9ydCgpCisgICAgICAgIGFzc2VydCBtb2QudmFsdWUyID09ICJnb3QgaXQiCisKKyAgICBkZWYg
dGVzdF9weWltcG9ydF9hbmRfaW1wb3J0KHNlbGYsIHRtcGRpcik6CisgICAgICAgIHRtcGRpci5l
bnN1cmUoJ3h4eHBhY2thZ2UnLCAnX19pbml0X18ucHknKQorICAgICAgICBtb2QxcGF0aCA9IHRt
cGRpci5lbnN1cmUoJ3h4eHBhY2thZ2UnLCAnbW9kdWxlMS5weScpCisgICAgICAgIG1vZDEgPSBt
b2QxcGF0aC5weWltcG9ydCgpCisgICAgICAgIGFzc2VydCBtb2QxLl9fbmFtZV9fID09ICd4eHhw
YWNrYWdlLm1vZHVsZTEnCisgICAgICAgIGZyb20geHh4cGFja2FnZSBpbXBvcnQgbW9kdWxlMQor
ICAgICAgICBhc3NlcnQgbW9kdWxlMSBpcyBtb2QxCisKKyAgICBkZWYgdGVzdF9weWltcG9ydF9j
aGVja19maWxlcGF0aF9jb25zaXN0ZW5jeShzZWxmLCBtb25rZXlwYXRjaCwgdG1wZGlyKToKKyAg
ICAgICAgbmFtZSA9ICdwb2ludHNiYWNrMTIzJworICAgICAgICBNb2R1bGVUeXBlID0gdHlwZShv
cykKKyAgICAgICAgcCA9IHRtcGRpci5lbnN1cmUobmFtZSArICcucHknKQorICAgICAgICBmb3Ig
ZW5kaW5nIGluICgnLnB5YycsICckcHkuY2xhc3MnLCAnLnB5bycpOgorICAgICAgICAgICAgbW9k
ID0gTW9kdWxlVHlwZShuYW1lKQorICAgICAgICAgICAgcHNldWRvcGF0aCA9IHRtcGRpci5lbnN1
cmUobmFtZStlbmRpbmcpCisgICAgICAgICAgICBtb2QuX19maWxlX18gPSBzdHIocHNldWRvcGF0
aCkKKyAgICAgICAgICAgIG1vbmtleXBhdGNoLnNldGl0ZW0oc3lzLm1vZHVsZXMsIG5hbWUsIG1v
ZCkKKyAgICAgICAgICAgIG5ld21vZCA9IHAucHlpbXBvcnQoKQorICAgICAgICAgICAgYXNzZXJ0
IG1vZCA9PSBuZXdtb2QKKyAgICAgICAgbW9ua2V5cGF0Y2gudW5kbygpCisgICAgICAgIG1vZCA9
IE1vZHVsZVR5cGUobmFtZSkKKyAgICAgICAgcHNldWRvcGF0aCA9IHRtcGRpci5lbnN1cmUobmFt
ZSsiMTIzLnB5IikKKyAgICAgICAgbW9kLl9fZmlsZV9fID0gc3RyKHBzZXVkb3BhdGgpCisgICAg
ICAgIG1vbmtleXBhdGNoLnNldGl0ZW0oc3lzLm1vZHVsZXMsIG5hbWUsIG1vZCkKKyAgICAgICAg
ZXhjaW5mbyA9IHB5LnRlc3QucmFpc2VzKHBzZXVkb3BhdGguSW1wb3J0TWlzbWF0Y2hFcnJvciwg
cC5weWltcG9ydCkKKyAgICAgICAgbW9kbmFtZSwgbW9kZmlsZSwgb3JpZyA9IGV4Y2luZm8udmFs
dWUuYXJncworICAgICAgICBhc3NlcnQgbW9kbmFtZSA9PSBuYW1lCisgICAgICAgIGFzc2VydCBt
b2RmaWxlID09IHBzZXVkb3BhdGgKKyAgICAgICAgYXNzZXJ0IG9yaWcgPT0gcAorICAgICAgICBh
c3NlcnQgaXNzdWJjbGFzcyhwc2V1ZG9wYXRoLkltcG9ydE1pc21hdGNoRXJyb3IsIEltcG9ydEVy
cm9yKQorCisgICAgZGVmIHRlc3RfaXNzdWUxMzFfcHlpbXBvcnRfb25fX2luaXRfXyhzZWxmLCB0
bXBkaXIpOgorICAgICAgICAjIF9faW5pdF9fLnB5IGZpbGVzIG1heSBiZSBuYW1lc3BhY2UgcGFj
a2FnZXMsIGFuZCB0aHVzIHRoZQorICAgICAgICAjIF9fZmlsZV9fIG9mIGFuIGltcG9ydGVkIG1v
ZHVsZSBtYXkgbm90IGJlIG91cnNlbHZlcworICAgICAgICAjIHNlZSBpc3N1ZQorICAgICAgICBw
MSA9IHRtcGRpci5lbnN1cmUoInByb2phIiwgIl9faW5pdF9fLnB5IikKKyAgICAgICAgcDIgPSB0
bXBkaXIuZW5zdXJlKCJzdWIiLCAicHJvamEiLCAiX19pbml0X18ucHkiKQorICAgICAgICBtMSA9
IHAxLnB5aW1wb3J0KCkKKyAgICAgICAgbTIgPSBwMi5weWltcG9ydCgpCisgICAgICAgIGFzc2Vy
dCBtMSA9PSBtMgorCisgICAgZGVmIHRlc3RfZW5zdXJlc3lzcGF0aF9hcHBlbmQoc2VsZiwgdG1w
ZGlyKToKKyAgICAgICAgcm9vdDEgPSB0bXBkaXIubWtkaXIoInJvb3QxIikKKyAgICAgICAgZmls
ZTEgPSByb290MS5lbnN1cmUoIngxMjMucHkiKQorICAgICAgICBhc3NlcnQgc3RyKHJvb3QxKSBu
b3QgaW4gc3lzLnBhdGgKKyAgICAgICAgZmlsZTEucHlpbXBvcnQoZW5zdXJlc3lzcGF0aD0iYXBw
ZW5kIikKKyAgICAgICAgYXNzZXJ0IHN0cihyb290MSkgPT0gc3lzLnBhdGhbLTFdCisgICAgICAg
IGFzc2VydCBzdHIocm9vdDEpIG5vdCBpbiBzeXMucGF0aFs6LTFdCisKKworZGVmIHRlc3RfcHlw
a2dkaXIodG1wZGlyKToKKyAgICBwa2cgPSB0bXBkaXIuZW5zdXJlKCdwa2cxJywgZGlyPTEpCisg
ICAgcGtnLmVuc3VyZSgiX19pbml0X18ucHkiKQorICAgIHBrZy5lbnN1cmUoInN1YmRpci9fX2lu
aXRfXy5weSIpCisgICAgYXNzZXJ0IHBrZy5weXBrZ3BhdGgoKSA9PSBwa2cKKyAgICBhc3NlcnQg
cGtnLmpvaW4oJ3N1YmRpcicsICdfX2luaXRfXy5weScpLnB5cGtncGF0aCgpID09IHBrZworCisK
K2RlZiB0ZXN0X3B5cGtnZGlyX3VuaW1wb3J0YWJsZSh0bXBkaXIpOgorICAgIHBrZyA9IHRtcGRp
ci5lbnN1cmUoJ3BrZzEtMScsIGRpcj0xKSAgIyB1bmltcG9ydGFibGUKKyAgICBwa2cuZW5zdXJl
KCJfX2luaXRfXy5weSIpCisgICAgc3ViZGlyID0gcGtnLmVuc3VyZSgic3ViZGlyL19faW5pdF9f
LnB5IikuZGlycGF0aCgpCisgICAgYXNzZXJ0IHN1YmRpci5weXBrZ3BhdGgoKSA9PSBzdWJkaXIK
KyAgICBhc3NlcnQgc3ViZGlyLmVuc3VyZSgieHl6LnB5IikucHlwa2dwYXRoKCkgPT0gc3ViZGly
CisgICAgYXNzZXJ0IG5vdCBwa2cucHlwa2dwYXRoKCkKKworCitkZWYgdGVzdF9pc2ltcG9ydGFi
bGUoKToKKyAgICBmcm9tIHB5Ll9wYXRoLmxvY2FsIGltcG9ydCBpc2ltcG9ydGFibGUKKyAgICBh
c3NlcnQgbm90IGlzaW1wb3J0YWJsZSgiIikKKyAgICBhc3NlcnQgaXNpbXBvcnRhYmxlKCJ4IikK
KyAgICBhc3NlcnQgaXNpbXBvcnRhYmxlKCJ4MSIpCisgICAgYXNzZXJ0IGlzaW1wb3J0YWJsZSgi
eF8xIikKKyAgICBhc3NlcnQgaXNpbXBvcnRhYmxlKCJfIikKKyAgICBhc3NlcnQgaXNpbXBvcnRh
YmxlKCJfMSIpCisgICAgYXNzZXJ0IG5vdCBpc2ltcG9ydGFibGUoIngtMSIpCisgICAgYXNzZXJ0
IG5vdCBpc2ltcG9ydGFibGUoIng6MSIpCisKKworZGVmIHRlc3RfaG9tZWRpcl9mcm9tX0hPTUUo
bW9ua2V5cGF0Y2gpOgorICAgIHBhdGggPSBvcy5nZXRjd2QoKQorICAgIG1vbmtleXBhdGNoLnNl
dGVudigiSE9NRSIsIHBhdGgpCisgICAgYXNzZXJ0IHB5LnBhdGgubG9jYWwuX2dldGhvbWVkaXIo
KSA9PSBweS5wYXRoLmxvY2FsKHBhdGgpCisKKworZGVmIHRlc3RfaG9tZWRpcl9ub3RfZXhpc3Rz
KG1vbmtleXBhdGNoKToKKyAgICBtb25rZXlwYXRjaC5kZWxlbnYoIkhPTUUiLCByYWlzaW5nPUZh
bHNlKQorICAgIG1vbmtleXBhdGNoLmRlbGVudigiSE9NRURSSVZFIiwgcmFpc2luZz1GYWxzZSkK
KyAgICBob21lZGlyID0gcHkucGF0aC5sb2NhbC5fZ2V0aG9tZWRpcigpCisgICAgYXNzZXJ0IGhv
bWVkaXIgaXMgTm9uZQorCisKK2RlZiB0ZXN0X3NhbWVmaWxlKHRtcGRpcik6CisgICAgYXNzZXJ0
IHRtcGRpci5zYW1lZmlsZSh0bXBkaXIpCisgICAgcCA9IHRtcGRpci5lbnN1cmUoImhlbGxvIikK
KyAgICBhc3NlcnQgcC5zYW1lZmlsZShwKQorICAgIHdpdGggcC5kaXJwYXRoKCkuYXNfY3dkKCk6
CisgICAgICAgIGFzc2VydCBwLnNhbWVmaWxlKHAuYmFzZW5hbWUpCisgICAgaWYgc3lzLnBsYXRm
b3JtID09ICJ3aW4zMiI6CisgICAgICAgIHAxID0gcC5fX2NsYXNzX18oc3RyKHApLmxvd2VyKCkp
CisgICAgICAgIHAyID0gcC5fX2NsYXNzX18oc3RyKHApLnVwcGVyKCkpCisgICAgICAgIGFzc2Vy
dCBwMS5zYW1lZmlsZShwMikKKworCitkZWYgdGVzdF9saXN0ZGlyX3NpbmdsZV9hcmcodG1wZGly
KToKKyAgICB0bXBkaXIuZW5zdXJlKCJoZWxsbyIpCisgICAgYXNzZXJ0IHRtcGRpci5saXN0ZGly
KCJoZWxsbyIpWzBdLmJhc2VuYW1lID09ICJoZWxsbyIKKworCitkZWYgdGVzdF9ta2R0ZW1wX3Jv
b3RkaXIodG1wZGlyKToKKyAgICBkdG1wID0gbG9jYWwubWtkdGVtcChyb290ZGlyPXRtcGRpcikK
KyAgICBhc3NlcnQgdG1wZGlyLmxpc3RkaXIoKSA9PSBbZHRtcF0KKworCitjbGFzcyBUZXN0V0lO
TG9jYWxQYXRoOgorICAgIHB5dGVzdG1hcmsgPSB3aW4zMm9ubHkKKworICAgIGRlZiB0ZXN0X293
bmVyX2dyb3VwX25vdF9pbXBsZW1lbnRlZChzZWxmLCBwYXRoMSk6CisgICAgICAgIHB5LnRlc3Qu
cmFpc2VzKE5vdEltcGxlbWVudGVkRXJyb3IsICJwYXRoMS5zdGF0KCkub3duZXIiKQorICAgICAg
ICBweS50ZXN0LnJhaXNlcyhOb3RJbXBsZW1lbnRlZEVycm9yLCAicGF0aDEuc3RhdCgpLmdyb3Vw
IikKKworICAgIGRlZiB0ZXN0X2NobW9kX3NpbXBsZV9pbnQoc2VsZiwgcGF0aDEpOgorICAgICAg
ICBweS5idWlsdGluLnByaW50XygicGF0aDEgaXMiLCBwYXRoMSkKKyAgICAgICAgbW9kZSA9IHBh
dGgxLnN0YXQoKS5tb2RlCisgICAgICAgICMgRW5zdXJlIHRoYXQgd2UgYWN0dWFsbHkgY2hhbmdl
IHRoZSBtb2RlIHRvIHNvbWV0aGluZyBkaWZmZXJlbnQuCisgICAgICAgIHBhdGgxLmNobW9kKG1v
ZGUgPT0gMCBhbmQgMSBvciAwKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBwcmludChwYXRo
MS5zdGF0KCkubW9kZSkKKyAgICAgICAgICAgIHByaW50KG1vZGUpCisgICAgICAgICAgICBhc3Nl
cnQgcGF0aDEuc3RhdCgpLm1vZGUgIT0gbW9kZQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAg
ICAgcGF0aDEuY2htb2QobW9kZSkKKyAgICAgICAgICAgIGFzc2VydCBwYXRoMS5zdGF0KCkubW9k
ZSA9PSBtb2RlCisKKyAgICBkZWYgdGVzdF9wYXRoX2NvbXBhcmlzb25fbG93ZXJjYXNlX21peGVk
KHNlbGYsIHBhdGgxKToKKyAgICAgICAgdDEgPSBwYXRoMS5qb2luKCJhX3BhdGgiKQorICAgICAg
ICB0MiA9IHBhdGgxLmpvaW4oIkFfcGF0aCIpCisgICAgICAgIGFzc2VydCB0MSA9PSB0MQorICAg
ICAgICBhc3NlcnQgdDEgPT0gdDIKKworICAgIGRlZiB0ZXN0X3JlbHRvX3dpdGhfbWl4ZWRfY2Fz
ZShzZWxmLCBwYXRoMSk6CisgICAgICAgIHQxID0gcGF0aDEuam9pbigiYV9wYXRoIiwgImZpTGUi
KQorICAgICAgICB0MiA9IHBhdGgxLmpvaW4oIkFfcGF0aCIpCisgICAgICAgIGFzc2VydCB0MS5y
ZWx0byh0MikgPT0gImZpTGUiCisKKyAgICBkZWYgdGVzdF9hbGxvd191bml4X3N0eWxlX3BhdGhz
KHNlbGYsIHBhdGgxKToKKyAgICAgICAgdDEgPSBwYXRoMS5qb2luKCdhX3BhdGgnKQorICAgICAg
ICBhc3NlcnQgdDEgPT0gc3RyKHBhdGgxKSArICdcXGFfcGF0aCcKKyAgICAgICAgdDEgPSBwYXRo
MS5qb2luKCdhX3BhdGgvJykKKyAgICAgICAgYXNzZXJ0IHQxID09IHN0cihwYXRoMSkgKyAnXFxh
X3BhdGgnCisgICAgICAgIHQxID0gcGF0aDEuam9pbignZGlyL2FfcGF0aCcpCisgICAgICAgIGFz
c2VydCB0MSA9PSBzdHIocGF0aDEpICsgJ1xcZGlyXFxhX3BhdGgnCisKKyAgICBkZWYgdGVzdF9z
eXNmaW5kX2luX2N1cnJlbnRkaXIoc2VsZiwgcGF0aDEpOgorICAgICAgICBjbWQgPSBweS5wYXRo
LmxvY2FsLnN5c2ZpbmQoJ2NtZCcpCisgICAgICAgIHJvb3QgPSBjbWQubmV3KGRpcm5hbWU9Jycs
IGJhc2VuYW1lPScnKSAgIyBjOlwgaW4gbW9zdCBpbnN0YWxsYXRpb25zCisgICAgICAgIHdpdGgg
cm9vdC5hc19jd2QoKToKKyAgICAgICAgICAgIHggPSBweS5wYXRoLmxvY2FsLnN5c2ZpbmQoY21k
LnJlbHRvKHJvb3QpKQorICAgICAgICAgICAgYXNzZXJ0IHguY2hlY2soZmlsZT0xKQorCisgICAg
ZGVmIHRlc3RfZm5tYXRjaF9maWxlX2Fic3BhdGhfcG9zaXhfcGF0dGVybl9vbl93aW4zMihzZWxm
LCB0bXBkaXIpOgorICAgICAgICAjIHBhdGgtbWF0Y2hpbmcgcGF0dGVybnMgbWlnaHQgY29udGFp
biBhIHBvc2l4IHBhdGggc2VwYXJhdG9yICcvJworICAgICAgICAjIFRlc3QgdGhhdCB3ZSBjYW4g
bWF0Y2ggdGhhdCBwYXR0ZXJuIG9uIHdpbmRvd3MuCisgICAgICAgIGltcG9ydCBwb3NpeHBhdGgK
KyAgICAgICAgYiA9IHRtcGRpci5qb2luKCJhIiwgImIiKQorICAgICAgICBhc3NlcnQgYi5mbm1h
dGNoKHBvc2l4cGF0aC5zZXAuam9pbigiYWIiKSkKKyAgICAgICAgcGF0dGVybiA9IHBvc2l4cGF0
aC5zZXAuam9pbihbc3RyKHRtcGRpciksICIqIiwgImIiXSkKKyAgICAgICAgYXNzZXJ0IGIuZm5t
YXRjaChwYXR0ZXJuKQorCisKK2NsYXNzIFRlc3RQT1NJWExvY2FsUGF0aDoKKyAgICBweXRlc3Rt
YXJrID0gc2tpcG9ud2luMzIKKworICAgIGRlZiB0ZXN0X2hhcmRsaW5rKHNlbGYsIHRtcGRpcik6
CisgICAgICAgIGxpbmtwYXRoID0gdG1wZGlyLmpvaW4oJ3Rlc3QnKQorICAgICAgICBmaWxlcGF0
aCA9IHRtcGRpci5qb2luKCdmaWxlJykKKyAgICAgICAgZmlsZXBhdGgud3JpdGUoIkhlbGxvIikK
KyAgICAgICAgbmxpbmsgPSBmaWxlcGF0aC5zdGF0KCkubmxpbmsKKyAgICAgICAgbGlua3BhdGgu
bWtsaW5rdG8oZmlsZXBhdGgpCisgICAgICAgIGFzc2VydCBmaWxlcGF0aC5zdGF0KCkubmxpbmsg
PT0gbmxpbmsgKyAxCisKKyAgICBkZWYgdGVzdF9zeW1saW5rX2FyZV9pZGVudGljYWwoc2VsZiwg
dG1wZGlyKToKKyAgICAgICAgZmlsZXBhdGggPSB0bXBkaXIuam9pbignZmlsZScpCisgICAgICAg
IGZpbGVwYXRoLndyaXRlKCJIZWxsbyIpCisgICAgICAgIGxpbmtwYXRoID0gdG1wZGlyLmpvaW4o
J3Rlc3QnKQorICAgICAgICBsaW5rcGF0aC5ta3N5bWxpbmt0byhmaWxlcGF0aCkKKyAgICAgICAg
YXNzZXJ0IGxpbmtwYXRoLnJlYWRsaW5rKCkgPT0gc3RyKGZpbGVwYXRoKQorCisgICAgZGVmIHRl
c3Rfc3ltbGlua19pc2ZpbGUoc2VsZiwgdG1wZGlyKToKKyAgICAgICAgbGlua3BhdGggPSB0bXBk
aXIuam9pbigndGVzdCcpCisgICAgICAgIGZpbGVwYXRoID0gdG1wZGlyLmpvaW4oJ2ZpbGUnKQor
ICAgICAgICBmaWxlcGF0aC53cml0ZSgiIikKKyAgICAgICAgbGlua3BhdGgubWtzeW1saW5rdG8o
ZmlsZXBhdGgpCisgICAgICAgIGFzc2VydCBsaW5rcGF0aC5jaGVjayhmaWxlPTEpCisgICAgICAg
IGFzc2VydCBub3QgbGlua3BhdGguY2hlY2sobGluaz0wLCBmaWxlPTEpCisgICAgICAgIGFzc2Vy
dCBsaW5rcGF0aC5pc2xpbmsoKQorCisgICAgZGVmIHRlc3Rfc3ltbGlua19yZWxhdGl2ZShzZWxm
LCB0bXBkaXIpOgorICAgICAgICBsaW5rcGF0aCA9IHRtcGRpci5qb2luKCd0ZXN0JykKKyAgICAg
ICAgZmlsZXBhdGggPSB0bXBkaXIuam9pbignZmlsZScpCisgICAgICAgIGZpbGVwYXRoLndyaXRl
KCJIZWxsbyIpCisgICAgICAgIGxpbmtwYXRoLm1rc3ltbGlua3RvKGZpbGVwYXRoLCBhYnNvbHV0
ZT1GYWxzZSkKKyAgICAgICAgYXNzZXJ0IGxpbmtwYXRoLnJlYWRsaW5rKCkgPT0gImZpbGUiCisg
ICAgICAgIGFzc2VydCBmaWxlcGF0aC5yZWFkKCkgPT0gbGlua3BhdGgucmVhZCgpCisKKyAgICBk
ZWYgdGVzdF9zeW1saW5rX25vdF9leGlzdGluZyhzZWxmLCB0bXBkaXIpOgorICAgICAgICBsaW5r
cGF0aCA9IHRtcGRpci5qb2luKCd0ZXN0bm90ZXhpc3RpbmcnKQorICAgICAgICBhc3NlcnQgbm90
IGxpbmtwYXRoLmNoZWNrKGxpbms9MSkKKyAgICAgICAgYXNzZXJ0IGxpbmtwYXRoLmNoZWNrKGxp
bms9MCkKKworICAgIGRlZiB0ZXN0X3JlbHRvX3dpdGhfcm9vdChzZWxmLCBwYXRoMSwgdG1wZGly
KToKKyAgICAgICAgeSA9IHBhdGgxLmpvaW4oJ3gnKS5yZWx0byhweS5wYXRoLmxvY2FsKCcvJykp
CisgICAgICAgIGFzc2VydCB5WzBdID09IHN0cihwYXRoMSlbMV0KKworICAgIGRlZiB0ZXN0X3Zp
c2l0X3JlY3Vyc2l2ZV9zeW1saW5rKHNlbGYsIHRtcGRpcik6CisgICAgICAgIGxpbmtwYXRoID0g
dG1wZGlyLmpvaW4oJ3Rlc3QnKQorICAgICAgICBsaW5rcGF0aC5ta3N5bWxpbmt0byh0bXBkaXIp
CisgICAgICAgIHZpc2l0b3IgPSB0bXBkaXIudmlzaXQoTm9uZSwgbGFtYmRhIHg6IHguY2hlY2so
bGluaz0wKSkKKyAgICAgICAgYXNzZXJ0IGxpc3QodmlzaXRvcikgPT0gW2xpbmtwYXRoXQorCisg
ICAgZGVmIHRlc3Rfc3ltbGlua19pc2RpcihzZWxmLCB0bXBkaXIpOgorICAgICAgICBsaW5rcGF0
aCA9IHRtcGRpci5qb2luKCd0ZXN0JykKKyAgICAgICAgbGlua3BhdGgubWtzeW1saW5rdG8odG1w
ZGlyKQorICAgICAgICBhc3NlcnQgbGlua3BhdGguY2hlY2soZGlyPTEpCisgICAgICAgIGFzc2Vy
dCBub3QgbGlua3BhdGguY2hlY2sobGluaz0wLCBkaXI9MSkKKworICAgIGRlZiB0ZXN0X3N5bWxp
bmtfcmVtb3ZlKHNlbGYsIHRtcGRpcik6CisgICAgICAgIGxpbmtwYXRoID0gdG1wZGlyLmpvaW4o
J3Rlc3QnKQorICAgICAgICBsaW5rcGF0aC5ta3N5bWxpbmt0byhsaW5rcGF0aCkgICMgcG9pbnQg
dG8gaXRzZWxmCisgICAgICAgIGFzc2VydCBsaW5rcGF0aC5jaGVjayhsaW5rPTEpCisgICAgICAg
IGxpbmtwYXRoLnJlbW92ZSgpCisgICAgICAgIGFzc2VydCBub3QgbGlua3BhdGguY2hlY2soKQor
CisgICAgZGVmIHRlc3RfcmVhbHBhdGhfZmlsZShzZWxmLCB0bXBkaXIpOgorICAgICAgICBsaW5r
cGF0aCA9IHRtcGRpci5qb2luKCd0ZXN0JykKKyAgICAgICAgZmlsZXBhdGggPSB0bXBkaXIuam9p
bignZmlsZScpCisgICAgICAgIGZpbGVwYXRoLndyaXRlKCIiKQorICAgICAgICBsaW5rcGF0aC5t
a3N5bWxpbmt0byhmaWxlcGF0aCkKKyAgICAgICAgcmVhbHBhdGggPSBsaW5rcGF0aC5yZWFscGF0
aCgpCisgICAgICAgIGFzc2VydCByZWFscGF0aC5iYXNlbmFtZSA9PSAnZmlsZScKKworICAgIGRl
ZiB0ZXN0X293bmVyKHNlbGYsIHBhdGgxLCB0bXBkaXIpOgorICAgICAgICBmcm9tIHB3ZCBpbXBv
cnQgZ2V0cHd1aWQKKyAgICAgICAgZnJvbSBncnAgaW1wb3J0IGdldGdyZ2lkCisgICAgICAgIHN0
YXQgPSBwYXRoMS5zdGF0KCkKKyAgICAgICAgYXNzZXJ0IHN0YXQucGF0aCA9PSBwYXRoMQorCisg
ICAgICAgIHVpZCA9IHN0YXQudWlkCisgICAgICAgIGdpZCA9IHN0YXQuZ2lkCisgICAgICAgIG93
bmVyID0gZ2V0cHd1aWQodWlkKVswXQorICAgICAgICBncm91cCA9IGdldGdyZ2lkKGdpZClbMF0K
KworICAgICAgICBhc3NlcnQgdWlkID09IHN0YXQudWlkCisgICAgICAgIGFzc2VydCBvd25lciA9
PSBzdGF0Lm93bmVyCisgICAgICAgIGFzc2VydCBnaWQgPT0gc3RhdC5naWQKKyAgICAgICAgYXNz
ZXJ0IGdyb3VwID09IHN0YXQuZ3JvdXAKKworICAgIGRlZiB0ZXN0X3N0YXRfaGVscGVycyhzZWxm
LCB0bXBkaXIsIG1vbmtleXBhdGNoKToKKyAgICAgICAgcGF0aDEgPSB0bXBkaXIuZW5zdXJlKCJm
aWxlIikKKyAgICAgICAgc3RhdDEgPSBwYXRoMS5zdGF0KCkKKyAgICAgICAgc3RhdDIgPSB0bXBk
aXIuc3RhdCgpCisgICAgICAgIGFzc2VydCBzdGF0MS5pc2ZpbGUoKQorICAgICAgICBhc3NlcnQg
c3RhdDIuaXNkaXIoKQorICAgICAgICBhc3NlcnQgbm90IHN0YXQxLmlzbGluaygpCisgICAgICAg
IGFzc2VydCBub3Qgc3RhdDIuaXNsaW5rKCkKKworICAgIGRlZiB0ZXN0X3N0YXRfbm9uX3JhaXNp
bmcoc2VsZiwgdG1wZGlyKToKKyAgICAgICAgcGF0aDEgPSB0bXBkaXIuam9pbigiZmlsZSIpCisg
ICAgICAgIHB5dGVzdC5yYWlzZXMocHkuZXJyb3IuRU5PRU5ULCBsYW1iZGE6IHBhdGgxLnN0YXQo
KSkKKyAgICAgICAgcmVzID0gcGF0aDEuc3RhdChyYWlzaW5nPUZhbHNlKQorICAgICAgICBhc3Nl
cnQgcmVzIGlzIE5vbmUKKworICAgIGRlZiB0ZXN0X2F0aW1lKHNlbGYsIHRtcGRpcik6CisgICAg
ICAgIGltcG9ydCB0aW1lCisgICAgICAgIHBhdGggPSB0bXBkaXIuZW5zdXJlKCdzYW1wbGVmaWxl
JykKKyAgICAgICAgbm93ID0gdGltZS50aW1lKCkKKyAgICAgICAgYXRpbWUxID0gcGF0aC5hdGlt
ZSgpCisgICAgICAgICMgd2UgY291bGQgd2FpdCBoZXJlIGJ1dCB0aW1lciByZXNvbHV0aW9uIGlz
IHZlcnkKKyAgICAgICAgIyBzeXN0ZW0gZGVwZW5kZW50CisgICAgICAgIHBhdGgucmVhZCgpCisg
ICAgICAgIHRpbWUuc2xlZXAoQVRJTUVfUkVTT0xVVElPTikKKyAgICAgICAgYXRpbWUyID0gcGF0
aC5hdGltZSgpCisgICAgICAgIHRpbWUuc2xlZXAoQVRJTUVfUkVTT0xVVElPTikKKyAgICAgICAg
ZHVyYXRpb24gPSB0aW1lLnRpbWUoKSAtIG5vdworICAgICAgICBhc3NlcnQgKGF0aW1lMi1hdGlt
ZTEpIDw9IGR1cmF0aW9uCisKKyAgICBkZWYgdGVzdF9jb21tb25kaXIoc2VsZiwgcGF0aDEpOgor
ICAgICAgICAjIFhYWCBUaGlzIGlzIGhlcmUgaW4gbG9jYWwgdW50aWwgd2UgZmluZCBhIHdheSB0
byBpbXBsZW1lbnQgdGhpcworICAgICAgICAjICAgICB1c2luZyB0aGUgc3VidmVyc2lvbiBjb21t
YW5kIGxpbmUgYXBpLgorICAgICAgICBwMSA9IHBhdGgxLmpvaW4oJ3NvbWV0aGluZycpCisgICAg
ICAgIHAyID0gcGF0aDEuam9pbignb3RoZXJ0aGluZycpCisgICAgICAgIGFzc2VydCBwMS5jb21t
b24ocDIpID09IHBhdGgxCisgICAgICAgIGFzc2VydCBwMi5jb21tb24ocDEpID09IHBhdGgxCisK
KyAgICBkZWYgdGVzdF9jb21tb25kaXJfbm9jb21tb24oc2VsZiwgcGF0aDEpOgorICAgICAgICAj
IFhYWCBUaGlzIGlzIGhlcmUgaW4gbG9jYWwgdW50aWwgd2UgZmluZCBhIHdheSB0byBpbXBsZW1l
bnQgdGhpcworICAgICAgICAjICAgICB1c2luZyB0aGUgc3VidmVyc2lvbiBjb21tYW5kIGxpbmUg
YXBpLgorICAgICAgICBwMSA9IHBhdGgxLmpvaW4oJ3NvbWV0aGluZycpCisgICAgICAgIHAyID0g
cHkucGF0aC5sb2NhbChwYXRoMS5zZXArJ2JsYWJsYScpCisgICAgICAgIGFzc2VydCBwMS5jb21t
b24ocDIpID09ICcvJworCisgICAgZGVmIHRlc3Rfam9pbl90b19yb290KHNlbGYsIHBhdGgxKToK
KyAgICAgICAgcm9vdCA9IHBhdGgxLnBhcnRzKClbMF0KKyAgICAgICAgYXNzZXJ0IGxlbihzdHIo
cm9vdCkpID09IDEKKyAgICAgICAgYXNzZXJ0IHN0cihyb290LmpvaW4oJ2EnKSkgPT0gJy9hJwor
CisgICAgZGVmIHRlc3Rfam9pbl9yb290X3RvX3Jvb3Rfd2l0aF9ub19hYnMoc2VsZiwgcGF0aDEp
OgorICAgICAgICBucm9vdCA9IHBhdGgxLmpvaW4oJy8nKQorICAgICAgICBhc3NlcnQgc3RyKHBh
dGgxKSA9PSBzdHIobnJvb3QpCisgICAgICAgIGFzc2VydCBwYXRoMSA9PSBucm9vdAorCisgICAg
ZGVmIHRlc3RfY2htb2Rfc2ltcGxlX2ludChzZWxmLCBwYXRoMSk6CisgICAgICAgIG1vZGUgPSBw
YXRoMS5zdGF0KCkubW9kZQorICAgICAgICBwYXRoMS5jaG1vZChpbnQobW9kZS8yKSkKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgYXNzZXJ0IHBhdGgxLnN0YXQoKS5tb2RlICE9IG1vZGUKKyAg
ICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHBhdGgxLmNobW9kKG1vZGUpCisgICAgICAgICAg
ICBhc3NlcnQgcGF0aDEuc3RhdCgpLm1vZGUgPT0gbW9kZQorCisgICAgZGVmIHRlc3RfY2htb2Rf
cmVjX2ludChzZWxmLCBwYXRoMSk6CisgICAgICAgICMgWFhYIGZyYWdpbGUgdGVzdAorICAgICAg
ICBkZWYgcmVjZmlsdGVyKHgpOiByZXR1cm4geC5jaGVjayhkb3RmaWxlPTAsIGxpbms9MCkKKyAg
ICAgICAgb2xkbW9kZXMgPSB7fQorICAgICAgICBmb3IgeCBpbiBwYXRoMS52aXNpdChyZWM9cmVj
ZmlsdGVyKToKKyAgICAgICAgICAgIG9sZG1vZGVzW3hdID0geC5zdGF0KCkubW9kZQorICAgICAg
ICBwYXRoMS5jaG1vZChpbnQoIjc3MiIsIDgpLCByZWM9cmVjZmlsdGVyKQorICAgICAgICB0cnk6
CisgICAgICAgICAgICBmb3IgeCBpbiBwYXRoMS52aXNpdChyZWM9cmVjZmlsdGVyKToKKyAgICAg
ICAgICAgICAgICBhc3NlcnQgeC5zdGF0KCkubW9kZSAmIGludCgiNzc3IiwgOCkgPT0gaW50KCI3
NzIiLCA4KQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgZm9yIHgsIHkgaW4gb2xkbW9k
ZXMuaXRlbXMoKToKKyAgICAgICAgICAgICAgICB4LmNobW9kKHkpCisKKyAgICBkZWYgdGVzdF9j
b3B5X2FyY2hpdmluZyhzZWxmLCB0bXBkaXIpOgorICAgICAgICB1bmljb2RlX2ZuID0gdSJzb21l
dGhpbmctXDM0MlwyMDBcMjIzLnR4dCIKKyAgICAgICAgZiA9IHRtcGRpci5lbnN1cmUoImEiLCB1
bmljb2RlX2ZuKQorICAgICAgICBhID0gZi5kaXJwYXRoKCkKKyAgICAgICAgb2xkbW9kZSA9IGYu
c3RhdCgpLm1vZGUKKyAgICAgICAgbmV3bW9kZSA9IG9sZG1vZGUgXiAxCisgICAgICAgIGYuY2ht
b2QobmV3bW9kZSkKKyAgICAgICAgYiA9IHRtcGRpci5qb2luKCJiIikKKyAgICAgICAgYS5jb3B5
KGIsIG1vZGU9VHJ1ZSkKKyAgICAgICAgYXNzZXJ0IGIuam9pbihmLmJhc2VuYW1lKS5zdGF0KCku
bW9kZSA9PSBuZXdtb2RlCisKKyAgICBkZWYgdGVzdF9jb3B5X3N0YXRfZmlsZShzZWxmLCB0bXBk
aXIpOgorICAgICAgICBzcmMgPSB0bXBkaXIuZW5zdXJlKCdzcmMnKQorICAgICAgICBkc3QgPSB0
bXBkaXIuam9pbignZHN0JykKKyAgICAgICAgIyBhIHNtYWxsIGRlbGF5IGJlZm9yZSB0aGUgY29w
eQorICAgICAgICB0aW1lLnNsZWVwKEFUSU1FX1JFU09MVVRJT04pCisgICAgICAgIHNyYy5jb3B5
KGRzdCwgc3RhdD1UcnVlKQorICAgICAgICBvbGRzdGF0ID0gc3JjLnN0YXQoKQorICAgICAgICBu
ZXdzdGF0ID0gZHN0LnN0YXQoKQorICAgICAgICBhc3NlcnQgb2xkc3RhdC5tb2RlID09IG5ld3N0
YXQubW9kZQorICAgICAgICBhc3NlcnQgKGRzdC5hdGltZSgpIC0gc3JjLmF0aW1lKCkpIDwgQVRJ
TUVfUkVTT0xVVElPTgorICAgICAgICBhc3NlcnQgKGRzdC5tdGltZSgpIC0gc3JjLm10aW1lKCkp
IDwgQVRJTUVfUkVTT0xVVElPTgorCisgICAgZGVmIHRlc3RfY29weV9zdGF0X2RpcihzZWxmLCB0
bXBkaXIpOgorICAgICAgICB0ZXN0X2ZpbGVzID0gWydhJywgJ2InLCAnYyddCisgICAgICAgIHNy
YyA9IHRtcGRpci5qb2luKCdzcmMnKQorICAgICAgICBmb3IgZiBpbiB0ZXN0X2ZpbGVzOgorICAg
ICAgICAgICAgc3JjLmpvaW4oZikud3JpdGUoZiwgZW5zdXJlPVRydWUpCisgICAgICAgIGRzdCA9
IHRtcGRpci5qb2luKCdkc3QnKQorICAgICAgICAjIGEgc21hbGwgZGVsYXkgYmVmb3JlIHRoZSBj
b3B5CisgICAgICAgIHRpbWUuc2xlZXAoQVRJTUVfUkVTT0xVVElPTikKKyAgICAgICAgc3JjLmNv
cHkoZHN0LCBzdGF0PVRydWUpCisgICAgICAgIGZvciBmIGluIHRlc3RfZmlsZXM6CisgICAgICAg
ICAgICBvbGRzdGF0ID0gc3JjLmpvaW4oZikuc3RhdCgpCisgICAgICAgICAgICBuZXdzdGF0ID0g
ZHN0LmpvaW4oZikuc3RhdCgpCisgICAgICAgICAgICBhc3NlcnQgKG5ld3N0YXQuYXRpbWUgLSBv
bGRzdGF0LmF0aW1lKSA8IEFUSU1FX1JFU09MVVRJT04KKyAgICAgICAgICAgIGFzc2VydCAobmV3
c3RhdC5tdGltZSAtIG9sZHN0YXQubXRpbWUpIDwgQVRJTUVfUkVTT0xVVElPTgorICAgICAgICAg
ICAgYXNzZXJ0IG9sZHN0YXQubW9kZSA9PSBuZXdzdGF0Lm1vZGUKKworICAgIEBmYWlsc29uanl0
aG9uCisgICAgZGVmIHRlc3RfY2hvd25faWRlbnRpdHkoc2VsZiwgcGF0aDEpOgorICAgICAgICBv
d25lciA9IHBhdGgxLnN0YXQoKS5vd25lcgorICAgICAgICBncm91cCA9IHBhdGgxLnN0YXQoKS5n
cm91cAorICAgICAgICBwYXRoMS5jaG93bihvd25lciwgZ3JvdXApCisKKyAgICBAZmFpbHNvbmp5
dGhvbgorICAgIGRlZiB0ZXN0X2Nob3duX2RhbmdsaW5nX2xpbmsoc2VsZiwgcGF0aDEpOgorICAg
ICAgICBvd25lciA9IHBhdGgxLnN0YXQoKS5vd25lcgorICAgICAgICBncm91cCA9IHBhdGgxLnN0
YXQoKS5ncm91cAorICAgICAgICB4ID0gcGF0aDEuam9pbignaGVsbG8nKQorICAgICAgICB4Lm1r
c3ltbGlua3RvKCdxbHdrZWpxd2xlaycpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHBhdGgx
LmNob3duKG93bmVyLCBncm91cCwgcmVjPTEpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAg
ICB4LnJlbW92ZShyZWM9MCkKKworICAgIEBmYWlsc29uanl0aG9uCisgICAgZGVmIHRlc3RfY2hv
d25faWRlbnRpdHlfcmVjX21heWZhaWwoc2VsZiwgcGF0aDEpOgorICAgICAgICBvd25lciA9IHBh
dGgxLnN0YXQoKS5vd25lcgorICAgICAgICBncm91cCA9IHBhdGgxLnN0YXQoKS5ncm91cAorICAg
ICAgICBwYXRoMS5jaG93bihvd25lciwgZ3JvdXApCisKKworY2xhc3MgVGVzdFVuaWNvZGVQeTJQ
eTM6CisgICAgZGVmIHRlc3Rfam9pbl9lbnN1cmUoc2VsZiwgdG1wZGlyLCBtb25rZXlwYXRjaCk6
CisgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApIGFuZCAiTEFORyIgbm90IGlu
IG9zLmVudmlyb246CisgICAgICAgICAgICBweXRlc3Quc2tpcCgiY2Fubm90IHJ1biB0ZXN0IHdp
dGhvdXQgbG9jYWxlIikKKyAgICAgICAgeCA9IHB5LnBhdGgubG9jYWwodG1wZGlyLnN0cnBhdGgp
CisgICAgICAgIHBhcnQgPSAiaMOkbGxvIgorICAgICAgICB5ID0geC5lbnN1cmUocGFydCkKKyAg
ICAgICAgYXNzZXJ0IHguam9pbihwYXJ0KSA9PSB5CisKKyAgICBkZWYgdGVzdF9saXN0ZGlyKHNl
bGYsIHRtcGRpcik6CisgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApIGFuZCAi
TEFORyIgbm90IGluIG9zLmVudmlyb246CisgICAgICAgICAgICBweXRlc3Quc2tpcCgiY2Fubm90
IHJ1biB0ZXN0IHdpdGhvdXQgbG9jYWxlIikKKyAgICAgICAgeCA9IHB5LnBhdGgubG9jYWwodG1w
ZGlyLnN0cnBhdGgpCisgICAgICAgIHBhcnQgPSAiaMOkbGxvIgorICAgICAgICB5ID0geC5lbnN1
cmUocGFydCkKKyAgICAgICAgYXNzZXJ0IHgubGlzdGRpcihwYXJ0KVswXSA9PSB5CisKKyAgICBA
cHl0ZXN0Lm1hcmsueGZhaWwoCisgICAgICAgIHJlYXNvbj0iY2hhbmdpbmcgcmVhZC93cml0ZSBt
aWdodCBicmVhayBleGlzdGluZyB1c2FnZXMiKQorICAgIGRlZiB0ZXN0X3JlYWRfd3JpdGUoc2Vs
ZiwgdG1wZGlyKToKKyAgICAgICAgeCA9IHRtcGRpci5qb2luKCJoZWxsbyIpCisgICAgICAgIHBh
cnQgPSBweS5idWlsdGluLl90b3RleHQoImjDpGxsbyIsICJ1dGY4IikKKyAgICAgICAgeC53cml0
ZShwYXJ0KQorICAgICAgICBhc3NlcnQgeC5yZWFkKCkgPT0gcGFydAorICAgICAgICB4LndyaXRl
KHBhcnQuZW5jb2RlKHN5cy5nZXRkZWZhdWx0ZW5jb2RpbmcoKSkpCisgICAgICAgIGFzc2VydCB4
LnJlYWQoKSA9PSBwYXJ0LmVuY29kZShzeXMuZ2V0ZGVmYXVsdGVuY29kaW5nKCkpCisKKworY2xh
c3MgVGVzdEJpbmFyeUFuZFRleHRNZXRob2RzOgorICAgIGRlZiB0ZXN0X3JlYWRfYmlud3JpdGUo
c2VsZiwgdG1wZGlyKToKKyAgICAgICAgeCA9IHRtcGRpci5qb2luKCJoZWxsbyIpCisgICAgICAg
IHBhcnQgPSBweS5idWlsdGluLl90b3RleHQoImjDpGxsbyIsICJ1dGY4IikKKyAgICAgICAgcGFy
dF91dGY4ID0gcGFydC5lbmNvZGUoInV0ZjgiKQorICAgICAgICB4LndyaXRlX2JpbmFyeShwYXJ0
X3V0ZjgpCisgICAgICAgIGFzc2VydCB4LnJlYWRfYmluYXJ5KCkgPT0gcGFydF91dGY4CisgICAg
ICAgIHMgPSB4LnJlYWRfdGV4dChlbmNvZGluZz0idXRmOCIpCisgICAgICAgIGFzc2VydCBzID09
IHBhcnQKKyAgICAgICAgYXNzZXJ0IHB5LmJ1aWx0aW4uX2lzdGV4dChzKQorCisgICAgZGVmIHRl
c3RfcmVhZF90ZXh0d3JpdGUoc2VsZiwgdG1wZGlyKToKKyAgICAgICAgeCA9IHRtcGRpci5qb2lu
KCJoZWxsbyIpCisgICAgICAgIHBhcnQgPSBweS5idWlsdGluLl90b3RleHQoImjDpGxsbyIsICJ1
dGY4IikKKyAgICAgICAgcGFydF91dGY4ID0gcGFydC5lbmNvZGUoInV0ZjgiKQorICAgICAgICB4
LndyaXRlX3RleHQocGFydCwgZW5jb2Rpbmc9InV0ZjgiKQorICAgICAgICBhc3NlcnQgeC5yZWFk
X2JpbmFyeSgpID09IHBhcnRfdXRmOAorICAgICAgICBhc3NlcnQgeC5yZWFkX3RleHQoZW5jb2Rp
bmc9InV0ZjgiKSA9PSBwYXJ0CisKKyAgICBkZWYgdGVzdF9kZWZhdWx0X2VuY29kaW5nKHNlbGYs
IHRtcGRpcik6CisgICAgICAgIHggPSB0bXBkaXIuam9pbigiaGVsbG8iKQorICAgICAgICAjIENh
bid0IHVzZSBVVEY4IGFzIHRoZSBkZWZhdWx0IGVuY29kaW5nIChBU0NJSSkgZG9lc24ndCBzdXBw
b3J0IGl0CisgICAgICAgIHBhcnQgPSBweS5idWlsdGluLl90b3RleHQoImhlbGxvIiwgImFzY2lp
IikKKyAgICAgICAgeC53cml0ZV90ZXh0KHBhcnQsICJhc2NpaSIpCisgICAgICAgIHMgPSB4LnJl
YWRfdGV4dCgiYXNjaWkiKQorICAgICAgICBhc3NlcnQgcyA9PSBwYXJ0CisgICAgICAgIGFzc2Vy
dCB0eXBlKHMpID09IHR5cGUocGFydCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wYXRo
L3Rlc3Rfc3ZuYXV0aC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wYXRoL3Rlc3Rfc3ZuYXV0aC5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42NTRmMDMzMjI0ZmJkNDNmZTFkMTYwMmRmY2FiMTlkMzExMjAxMTgwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvdGVzdF9zdm5hdXRoLnB5CkBAIC0w
LDAgKzEsNDYwIEBACitpbXBvcnQgcHkKK2Zyb20gcHkucGF0aCBpbXBvcnQgU3ZuQXV0aAoraW1w
b3J0IHRpbWUKK2ltcG9ydCBzeXMKKworc3ZuYmluID0gcHkucGF0aC5sb2NhbC5zeXNmaW5kKCdz
dm4nKQorCisKK2RlZiBtYWtlX3JlcG9fYXV0aChyZXBvLCB1c2VyZGF0YSk6CisgICAgIiIiIHdy
aXRlIGNvbmZpZyB0byByZXBvCisKKyAgICAgICAgdXNlciBpbmZvcm1hdGlvbiBpbiB1c2VyZGF0
YSBpcyB1c2VkIGZvciBhdXRoCisgICAgICAgIHVzZXJkYXRhIGhhcyB1c2VyIG5hbWVzIGFzIGtl
eXMsIGFuZCBhIHR1cGxlIChwYXNzd29yZCwgcmVhZHdyaXRlKSBhcworICAgICAgICB2YWx1ZXMs
IHdoZXJlICdyZWFkd3JpdGUnIGlzIGVpdGhlciAncicgb3IgJ3J3JworICAgICIiIgorICAgIGNv
bmZkaXIgPSBweS5wYXRoLmxvY2FsKHJlcG8pLmpvaW4oJ2NvbmYnKQorICAgIGNvbmZkaXIuam9p
bignc3Zuc2VydmUuY29uZicpLndyaXRlKCcnJ1wKK1tnZW5lcmFsXQorYW5vbi1hY2Nlc3MgPSBu
b25lCitwYXNzd29yZC1kYiA9IHBhc3N3ZAorYXV0aHotZGIgPSBhdXRoegorcmVhbG0gPSBUZXN0
UmVwbworJycnKQorICAgIGF1dGh6ZGF0YSA9ICdbL11cbicKKyAgICBwYXNzd2RkYXRhID0gJ1t1
c2Vyc11cbicKKyAgICBmb3IgdXNlciBpbiB1c2VyZGF0YToKKyAgICAgICAgYXV0aHpkYXRhICs9
ICclcyA9ICVzXG4nICUgKHVzZXIsIHVzZXJkYXRhW3VzZXJdWzFdKQorICAgICAgICBwYXNzd2Rk
YXRhICs9ICclcyA9ICVzXG4nICUgKHVzZXIsIHVzZXJkYXRhW3VzZXJdWzBdKQorICAgIGNvbmZk
aXIuam9pbignYXV0aHonKS53cml0ZShhdXRoemRhdGEpCisgICAgY29uZmRpci5qb2luKCdwYXNz
d2QnKS53cml0ZShwYXNzd2RkYXRhKQorCitkZWYgc2VydmVfYmcocmVwb3BhdGgpOgorICAgIHBp
ZGZpbGUgPSBweS5wYXRoLmxvY2FsKHJlcG9wYXRoKS5qb2luKCdwaWQnKQorICAgIHBvcnQgPSAx
MDAwMAorICAgIGUgPSBOb25lCisgICAgd2hpbGUgcG9ydCA8IDEwMDEwOgorICAgICAgICBjbWQg
PSAnc3Zuc2VydmUgLWQgLVQgLS1saXN0ZW4tcG9ydD0lZCAtLXBpZC1maWxlPSVzIC1yICVzJyAl
ICgKKyAgICAgICAgICAgICAgIHBvcnQsIHBpZGZpbGUsIHJlcG9wYXRoKQorICAgICAgICBwcmlu
dChjbWQpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHB5LnByb2Nlc3MuY21kZXhlYyhjbWQp
CisgICAgICAgIGV4Y2VwdCBweS5wcm9jZXNzLmNtZGV4ZWMuRXJyb3I6CisgICAgICAgICAgICBl
ID0gc3lzLmV4Y19pbmZvKClbMV0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgWFhYIHdl
IGFzc3VtZSBoZXJlIHRoYXQgdGhlIHBpZCBmaWxlIGdldHMgd3JpdHRlbiBzb21ld2hlcmUsIEkK
KyAgICAgICAgICAgICMgZ3Vlc3MgdGhpcyBzaG91bGQgYmUgcmVsYXRpdmVseSBzYWZlLi4uIChJ
IGhvcGUsIGF0IGxlYXN0PykKKyAgICAgICAgICAgIGNvdW50ZXIgPSBwaWQgPSAwCisgICAgICAg
ICAgICB3aGlsZSBjb3VudGVyIDwgMTA6CisgICAgICAgICAgICAgICAgY291bnRlciArPSAxCisg
ICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBwaWQgPSBwaWRmaWxlLnJl
YWQoKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBweS5lcnJvci5FTk9FTlQ6CisgICAgICAgICAg
ICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICAgICBpZiBwaWQ6CisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrCisgICAgICAgICAgICAgICAgdGltZS5zbGVlcCgwLjIpCisgICAgICAgICAgICBy
ZXR1cm4gcG9ydCwgaW50KHBpZCkKKyAgICAgICAgcG9ydCArPSAxCisgICAgcmFpc2UgSU9FcnJv
cignY291bGQgbm90IHN0YXJ0IHN2bnNlcnZlOiAlcycgJSAoZSwpKQorCitjbGFzcyBUZXN0U3Zu
QXV0aChvYmplY3QpOgorICAgIGRlZiB0ZXN0X2Jhc2ljKHNlbGYpOgorICAgICAgICBhdXRoID0g
U3ZuQXV0aCgnZm9vJywgJ2JhcicpCisgICAgICAgIGFzc2VydCBhdXRoLnVzZXJuYW1lID09ICdm
b28nCisgICAgICAgIGFzc2VydCBhdXRoLnBhc3N3b3JkID09ICdiYXInCisgICAgICAgIGFzc2Vy
dCBzdHIoYXV0aCkKKworICAgIGRlZiB0ZXN0X21ha2VjbWRvcHRpb25zX3VuYW1lX3B3X21ha2Vz
dHIoc2VsZik6CisgICAgICAgIGF1dGggPSBTdm5BdXRoKCdmb28nLCAnYmFyJykKKyAgICAgICAg
YXNzZXJ0IGF1dGgubWFrZWNtZG9wdGlvbnMoKSA9PSAnLS11c2VybmFtZT0iZm9vIiAtLXBhc3N3
b3JkPSJiYXIiJworCisgICAgZGVmIHRlc3RfbWFrZWNtZG9wdGlvbnNfcXVvdGVfZXNjYXBlKHNl
bGYpOgorICAgICAgICBhdXRoID0gU3ZuQXV0aCgnZm8ibycsICciYmFcJ3IiJykKKyAgICAgICAg
YXNzZXJ0IGF1dGgubWFrZWNtZG9wdGlvbnMoKSA9PSAnLS11c2VybmFtZT0iZm9cXCJvIiAtLXBh
c3N3b3JkPSJcXCJiYVwnclxcIiInCisKKyAgICBkZWYgdGVzdF9tYWtlY21kb3B0aW9uc19ub19j
YWNoZV9hdXRoKHNlbGYpOgorICAgICAgICBhdXRoID0gU3ZuQXV0aCgnZm9vJywgJ2JhcicsIGNh
Y2hlX2F1dGg9RmFsc2UpCisgICAgICAgIGFzc2VydCBhdXRoLm1ha2VjbWRvcHRpb25zKCkgPT0g
KCctLXVzZXJuYW1lPSJmb28iIC0tcGFzc3dvcmQ9ImJhciIgJworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnLS1uby1hdXRoLWNhY2hlJykKKworICAgIGRlZiB0ZXN0
X21ha2VjbWRvcHRpb25zX25vX2ludGVyYWN0aXZlKHNlbGYpOgorICAgICAgICBhdXRoID0gU3Zu
QXV0aCgnZm9vJywgJ2JhcicsIGludGVyYWN0aXZlPUZhbHNlKQorICAgICAgICBhc3NlcnQgYXV0
aC5tYWtlY21kb3B0aW9ucygpID09ICgnLS11c2VybmFtZT0iZm9vIiAtLXBhc3N3b3JkPSJiYXIi
ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0tbm9uLWludGVy
YWN0aXZlJykKKworICAgIGRlZiB0ZXN0X21ha2VjbWRvcHRpb25zX25vX2ludGVyYWN0aXZlX25v
X2NhY2hlX2F1dGgoc2VsZik6CisgICAgICAgIGF1dGggPSBTdm5BdXRoKCdmb28nLCAnYmFyJywg
Y2FjaGVfYXV0aD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmFj
dGl2ZT1GYWxzZSkKKyAgICAgICAgYXNzZXJ0IGF1dGgubWFrZWNtZG9wdGlvbnMoKSA9PSAoJy0t
dXNlcm5hbWU9ImZvbyIgLS1wYXNzd29yZD0iYmFyIiAnCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICctLW5vLWF1dGgtY2FjaGUgLS1ub24taW50ZXJhY3RpdmUnKQor
CitjbGFzcyBzdm53Y19ub19zdm4ocHkucGF0aC5zdm53Yyk6CisgICAgZGVmIF9fbmV3X18oY2xz
LCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBzZWxmID0gc3VwZXIoc3Zud2Nfbm9fc3ZuLCBj
bHMpLl9fbmV3X18oY2xzLCAqYXJncywgKiprd2FyZ3MpCisgICAgICAgIHNlbGYuY29tbWFuZHMg
PSBbXQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9zdm4oc2VsZiwgKmFyZ3MpOgor
ICAgICAgICBzZWxmLmNvbW1hbmRzLmFwcGVuZChhcmdzKQorCitjbGFzcyBUZXN0U3ZuV0NBdXRo
KG9iamVjdCk6CisgICAgZGVmIHNldHVwX21ldGhvZChzZWxmLCBtZXRoKToKKyAgICAgICAgaWYg
bm90IHN2bmJpbjoKKyAgICAgICAgICAgIHB5LnRlc3Quc2tpcCgic3ZuIGJpbmFyeSByZXF1aXJl
ZCIpCisgICAgICAgIHNlbGYuYXV0aCA9IFN2bkF1dGgoJ3VzZXInLCAncGFzcycsIGNhY2hlX2F1
dGg9RmFsc2UpCisKKyAgICBkZWYgdGVzdF9jaGVja291dChzZWxmKToKKyAgICAgICAgd2MgPSBz
dm53Y19ub19zdm4oJ2ZvbycsIGF1dGg9c2VsZi5hdXRoKQorICAgICAgICB3Yy5jaGVja291dCgn
dXJsJykKKyAgICAgICAgYXNzZXJ0IHdjLmNvbW1hbmRzWzBdWy0xXSA9PSAoJy0tdXNlcm5hbWU9
InVzZXIiIC0tcGFzc3dvcmQ9InBhc3MiICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJy0tbm8tYXV0aC1jYWNoZScpCisKKyAgICBkZWYgdGVzdF9jb21taXQoc2VsZik6
CisgICAgICAgIHdjID0gc3Zud2Nfbm9fc3ZuKCdmb28nLCBhdXRoPXNlbGYuYXV0aCkKKyAgICAg
ICAgd2MuY29tbWl0KCdtc2cnKQorICAgICAgICBhc3NlcnQgd2MuY29tbWFuZHNbMF1bLTFdID09
ICgnLS11c2VybmFtZT0idXNlciIgLS1wYXNzd29yZD0icGFzcyIgJworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnLS1uby1hdXRoLWNhY2hlJykKKworICAgIGRlZiB0ZXN0
X2NoZWNrb3V0X25vX2NhY2hlX2F1dGgoc2VsZik6CisgICAgICAgIHdjID0gc3Zud2Nfbm9fc3Zu
KCdmb28nLCBhdXRoPXNlbGYuYXV0aCkKKyAgICAgICAgd2MuY2hlY2tvdXQoJ3VybCcpCisgICAg
ICAgIGFzc2VydCB3Yy5jb21tYW5kc1swXVstMV0gPT0gKCctLXVzZXJuYW1lPSJ1c2VyIiAtLXBh
c3N3b3JkPSJwYXNzIiAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICct
LW5vLWF1dGgtY2FjaGUnKQorCisgICAgZGVmIHRlc3RfY2hlY2tvdXRfYXV0aF9mcm9tX2NvbnN0
cnVjdG9yKHNlbGYpOgorICAgICAgICB3YyA9IHN2bndjX25vX3N2bignZm9vJywgYXV0aD1zZWxm
LmF1dGgpCisgICAgICAgIHdjLmNoZWNrb3V0KCd1cmwnKQorICAgICAgICBhc3NlcnQgd2MuY29t
bWFuZHNbMF1bLTFdID09ICgnLS11c2VybmFtZT0idXNlciIgLS1wYXNzd29yZD0icGFzcyIgJwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS1uby1hdXRoLWNhY2hlJykK
KworY2xhc3Mgc3ZudXJsX25vX3N2bihweS5wYXRoLnN2bnVybCk6CisgICAgY21kZXhlY19vdXRw
dXQgPSAndGVzdCcKKyAgICBwb3Blbl9vdXRwdXQgPSAndGVzdCcKKyAgICBkZWYgX19uZXdfXyhj
bHMsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYgPSBzdXBlcihzdm51cmxfbm9fc3Zu
LCBjbHMpLl9fbmV3X18oY2xzLCAqYXJncywgKiprd2FyZ3MpCisgICAgICAgIHNlbGYuY29tbWFu
ZHMgPSBbXQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9jbWRleGVjKHNlbGYsIGNt
ZCk6CisgICAgICAgIHNlbGYuY29tbWFuZHMuYXBwZW5kKGNtZCkKKyAgICAgICAgcmV0dXJuIHNl
bGYuY21kZXhlY19vdXRwdXQKKworICAgIGRlZiBfcG9wZW4oc2VsZiwgY21kKToKKyAgICAgICAg
c2VsZi5jb21tYW5kcy5hcHBlbmQoY21kKQorICAgICAgICByZXR1cm4gc2VsZi5wb3Blbl9vdXRw
dXQKKworY2xhc3MgVGVzdFN2blVSTEF1dGgob2JqZWN0KToKKyAgICBkZWYgc2V0dXBfbWV0aG9k
KHNlbGYsIG1ldGgpOgorICAgICAgICBzZWxmLmF1dGggPSBTdm5BdXRoKCdmb28nLCAnYmFyJykK
KworICAgIGRlZiB0ZXN0X2luaXQoc2VsZik6CisgICAgICAgIHUgPSBzdm51cmxfbm9fc3ZuKCdo
dHRwOi8vZm9vLmJhci9zdm4nKQorICAgICAgICBhc3NlcnQgdS5hdXRoIGlzIE5vbmUKKworICAg
ICAgICB1ID0gc3ZudXJsX25vX3N2bignaHR0cDovL2Zvby5iYXIvc3ZuJywgYXV0aD1zZWxmLmF1
dGgpCisgICAgICAgIGFzc2VydCB1LmF1dGggaXMgc2VsZi5hdXRoCisKKyAgICBkZWYgdGVzdF9u
ZXcoc2VsZik6CisgICAgICAgIHUgPSBzdm51cmxfbm9fc3ZuKCdodHRwOi8vZm9vLmJhci9zdm4v
Zm9vJywgYXV0aD1zZWxmLmF1dGgpCisgICAgICAgIG5ldyA9IHUubmV3KGJhc2VuYW1lPSdiYXIn
KQorICAgICAgICBhc3NlcnQgbmV3LmF1dGggaXMgc2VsZi5hdXRoCisgICAgICAgIGFzc2VydCBu
ZXcudXJsID09ICdodHRwOi8vZm9vLmJhci9zdm4vYmFyJworCisgICAgZGVmIHRlc3Rfam9pbihz
ZWxmKToKKyAgICAgICAgdSA9IHN2bnVybF9ub19zdm4oJ2h0dHA6Ly9mb28uYmFyL3N2bicsIGF1
dGg9c2VsZi5hdXRoKQorICAgICAgICBuZXcgPSB1LmpvaW4oJ2ZvbycpCisgICAgICAgIGFzc2Vy
dCBuZXcuYXV0aCBpcyBzZWxmLmF1dGgKKyAgICAgICAgYXNzZXJ0IG5ldy51cmwgPT0gJ2h0dHA6
Ly9mb28uYmFyL3N2bi9mb28nCisKKyAgICBkZWYgdGVzdF9saXN0ZGlyKHNlbGYpOgorICAgICAg
ICB1ID0gc3ZudXJsX25vX3N2bignaHR0cDovL2Zvby5iYXIvc3ZuJywgYXV0aD1zZWxmLmF1dGgp
CisgICAgICAgIHUuY21kZXhlY19vdXRwdXQgPSAnJydcCisgICAxNzE3IGpvaG5ueSAgICAgICAg
ICAgMTUyOSBOb3YgMDQgMTQ6MzIgTElDRU5TRS50eHQKKyAgIDE3MTYgam9obm55ICAgICAgICAg
ICA1MzUyIE5vdiAwNCAxNDoyOCBSRUFETUUudHh0CisnJycKKyAgICAgICAgcGF0aHMgPSB1Lmxp
c3RkaXIoKQorICAgICAgICBhc3NlcnQgcGF0aHNbMF0uYXV0aCBpcyBzZWxmLmF1dGgKKyAgICAg
ICAgYXNzZXJ0IHBhdGhzWzFdLmF1dGggaXMgc2VsZi5hdXRoCisgICAgICAgIGFzc2VydCBwYXRo
c1swXS5iYXNlbmFtZSA9PSAnTElDRU5TRS50eHQnCisKKyAgICBkZWYgdGVzdF9pbmZvKHNlbGYp
OgorICAgICAgICB1ID0gc3ZudXJsX25vX3N2bignaHR0cDovL2Zvby5iYXIvc3ZuL0xJQ0VOU0Uu
dHh0JywgYXV0aD1zZWxmLmF1dGgpCisgICAgICAgIGRlZiBkaXJwYXRoKHNlbGYpOgorICAgICAg
ICAgICAgcmV0dXJuIHNlbGYKKyAgICAgICAgdS5jbWRleGVjX291dHB1dCA9ICcnJ1wKKyAgIDE3
MTcgam9obm55ICAgICAgICAgICAxNTI5IE5vdiAwNCAxNDozMiBMSUNFTlNFLnR4dAorICAgMTcx
NiBqb2hubnkgICAgICAgICAgIDUzNTIgTm92IDA0IDE0OjI4IFJFQURNRS50eHQKKycnJworICAg
ICAgICBvcmdfZHAgPSB1Ll9fY2xhc3NfXy5kaXJwYXRoCisgICAgICAgIHUuX19jbGFzc19fLmRp
cnBhdGggPSBkaXJwYXRoCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGluZm8gPSB1LmluZm8o
KQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgdS5kaXJwYXRoID0gb3JnX2RwCisgICAg
ICAgIGFzc2VydCBpbmZvLnNpemUgPT0gMTUyOQorCisgICAgZGVmIHRlc3Rfb3BlbihzZWxmKToK
KyAgICAgICAgdSA9IHN2bnVybF9ub19zdm4oJ2h0dHA6Ly9mb28uYmFyL3N2bicsIGF1dGg9c2Vs
Zi5hdXRoKQorICAgICAgICBmb28gPSB1LmpvaW4oJ2ZvbycpCisgICAgICAgIGZvby5jaGVjayA9
IGxhbWJkYSAqYXJncywgKiprd2FyZ3M6IFRydWUKKyAgICAgICAgcmV0ID0gZm9vLm9wZW4oKQor
ICAgICAgICBhc3NlcnQgcmV0ID09ICd0ZXN0JworICAgICAgICBhc3NlcnQgJy0tdXNlcm5hbWU9
ImZvbyIgLS1wYXNzd29yZD0iYmFyIicgaW4gZm9vLmNvbW1hbmRzWzBdCisKKyAgICBkZWYgdGVz
dF9kaXJwYXRoKHNlbGYpOgorICAgICAgICB1ID0gc3ZudXJsX25vX3N2bignaHR0cDovL2Zvby5i
YXIvc3ZuL2ZvbycsIGF1dGg9c2VsZi5hdXRoKQorICAgICAgICBwYXJlbnQgPSB1LmRpcnBhdGgo
KQorICAgICAgICBhc3NlcnQgcGFyZW50LmF1dGggaXMgc2VsZi5hdXRoCisKKyAgICBkZWYgdGVz
dF9ta2RpcihzZWxmKToKKyAgICAgICAgdSA9IHN2bnVybF9ub19zdm4oJ2h0dHA6Ly9mb28uYmFy
L3N2bi9xd2Vxd2UnLCBhdXRoPXNlbGYuYXV0aCkKKyAgICAgICAgYXNzZXJ0IG5vdCB1LmNvbW1h
bmRzCisgICAgICAgIHUubWtkaXIobXNnPSdjcmVhdGVkIGRpciBmb28nKQorICAgICAgICBhc3Nl
cnQgdS5jb21tYW5kcworICAgICAgICBhc3NlcnQgJy0tdXNlcm5hbWU9ImZvbyIgLS1wYXNzd29y
ZD0iYmFyIicgaW4gdS5jb21tYW5kc1swXQorCisgICAgZGVmIHRlc3RfY29weShzZWxmKToKKyAg
ICAgICAgdSA9IHN2bnVybF9ub19zdm4oJ2h0dHA6Ly9mb28uYmFyL3N2bicsIGF1dGg9c2VsZi5h
dXRoKQorICAgICAgICB1MiA9IHN2bnVybF9ub19zdm4oJ2h0dHA6Ly9mb28uYmFyL3N2bjInKQor
ICAgICAgICB1LmNvcHkodTIsICdjb3BpZWQgZGlyJykKKyAgICAgICAgYXNzZXJ0ICctLXVzZXJu
YW1lPSJmb28iIC0tcGFzc3dvcmQ9ImJhciInIGluIHUuY29tbWFuZHNbMF0KKworICAgIGRlZiB0
ZXN0X3JlbmFtZShzZWxmKToKKyAgICAgICAgdSA9IHN2bnVybF9ub19zdm4oJ2h0dHA6Ly9mb28u
YmFyL3N2bi9mb28nLCBhdXRoPXNlbGYuYXV0aCkKKyAgICAgICAgdS5yZW5hbWUoJ2h0dHA6Ly9m
b28uYmFyL3N2bi9iYXInLCAnbW92ZWQgZm9vIHRvIGJhcicpCisgICAgICAgIGFzc2VydCAnLS11
c2VybmFtZT0iZm9vIiAtLXBhc3N3b3JkPSJiYXIiJyBpbiB1LmNvbW1hbmRzWzBdCisKKyAgICBk
ZWYgdGVzdF9yZW1vdmUoc2VsZik6CisgICAgICAgIHUgPSBzdm51cmxfbm9fc3ZuKCdodHRwOi8v
Zm9vLmJhci9zdm4vZm9vJywgYXV0aD1zZWxmLmF1dGgpCisgICAgICAgIHUucmVtb3ZlKG1zZz0n
cmVtb3ZpbmcgZm9vJykKKyAgICAgICAgYXNzZXJ0ICctLXVzZXJuYW1lPSJmb28iIC0tcGFzc3dv
cmQ9ImJhciInIGluIHUuY29tbWFuZHNbMF0KKworICAgIGRlZiB0ZXN0X2V4cG9ydChzZWxmKToK
KyAgICAgICAgdSA9IHN2bnVybF9ub19zdm4oJ2h0dHA6Ly9mb28uYmFyL3N2bicsIGF1dGg9c2Vs
Zi5hdXRoKQorICAgICAgICB0YXJnZXQgPSBweS5wYXRoLmxvY2FsKCcvZm9vJykKKyAgICAgICAg
dS5leHBvcnQodGFyZ2V0KQorICAgICAgICBhc3NlcnQgJy0tdXNlcm5hbWU9ImZvbyIgLS1wYXNz
d29yZD0iYmFyIicgaW4gdS5jb21tYW5kc1swXQorCisgICAgZGVmIHRlc3RfbG9nKHNlbGYpOgor
ICAgICAgICB1ID0gc3ZudXJsX25vX3N2bignaHR0cDovL2Zvby5iYXIvc3ZuL2ZvbycsIGF1dGg9
c2VsZi5hdXRoKQorICAgICAgICB1LnBvcGVuX291dHB1dCA9IHB5LmlvLlRleHRJTyhweS5idWls
dGluLl90b3RleHQoJycnXAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8bG9nPgorPGxvZ2VudHJ5
IHJldmlzaW9uPSI1MTM4MSI+Cis8YXV0aG9yPmd1aWRvPC9hdXRob3I+Cis8ZGF0ZT4yMDA4LTAy
LTExVDEyOjEyOjE4LjQ3NjQ4MVo8L2RhdGU+Cis8bXNnPkNyZWF0aW5nIGJyYW5jaCB0byB3b3Jr
IG9uIGF1dGggc3VwcG9ydCBmb3IgcHkucGF0aC5zdm4qLgorPC9tc2c+Cis8L2xvZ2VudHJ5Pgor
PC9sb2c+CisnJycsICdhc2NpaScpKQorICAgICAgICB1LmNoZWNrID0gbGFtYmRhICphcmdzLCAq
Kmt3YXJnczogVHJ1ZQorICAgICAgICByZXQgPSB1LmxvZygxMCwgMjAsIHZlcmJvc2U9VHJ1ZSkK
KyAgICAgICAgYXNzZXJ0ICctLXVzZXJuYW1lPSJmb28iIC0tcGFzc3dvcmQ9ImJhciInIGluIHUu
Y29tbWFuZHNbMF0KKyAgICAgICAgYXNzZXJ0IGxlbihyZXQpID09IDEKKyAgICAgICAgYXNzZXJ0
IGludChyZXRbMF0ucmV2KSA9PSA1MTM4MQorICAgICAgICBhc3NlcnQgcmV0WzBdLmF1dGhvciA9
PSAnZ3VpZG8nCisKKyAgICBkZWYgdGVzdF9wcm9wZ2V0KHNlbGYpOgorICAgICAgICB1ID0gc3Zu
dXJsX25vX3N2bignaHR0cDovL2Zvby5iYXIvc3ZuJywgYXV0aD1zZWxmLmF1dGgpCisgICAgICAg
IHUucHJvcGdldCgnZm9vJykKKyAgICAgICAgYXNzZXJ0ICctLXVzZXJuYW1lPSJmb28iIC0tcGFz
c3dvcmQ9ImJhciInIGluIHUuY29tbWFuZHNbMF0KKworZGVmIHB5dGVzdF9mdW5jYXJnX19zZXR1
cChyZXF1ZXN0KToKKyAgICByZXR1cm4gU2V0dXAocmVxdWVzdCkKKworY2xhc3MgU2V0dXA6Cisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QpOgorICAgICAgICBpZiBub3Qgc3ZuYmluOgor
ICAgICAgICAgICAgcHkudGVzdC5za2lwKCJzdm4gYmluYXJ5IHJlcXVpcmVkIikKKyAgICAgICAg
aWYgbm90IHJlcXVlc3QuY29uZmlnLm9wdGlvbi5ydW5zbG93dGVzdHM6CisgICAgICAgICAgICBw
eS50ZXN0LnNraXAoJ3VzZSAtLXJ1bnNsb3d0ZXN0cyB0byBydW4gdGhlc2UgdGVzdHMnKQorCisg
ICAgICAgIHRtcGRpciA9IHJlcXVlc3QuZ2V0ZnVuY2FyZ3ZhbHVlKCJ0bXBkaXIiKQorICAgICAg
ICByZXBvZGlyID0gdG1wZGlyLmpvaW4oInJlcG8iKQorICAgICAgICBweS5wcm9jZXNzLmNtZGV4
ZWMoJ3N2bmFkbWluIGNyZWF0ZSAlcycgJSByZXBvZGlyKQorICAgICAgICBpZiBzeXMucGxhdGZv
cm0gPT0gJ3dpbjMyJzoKKyAgICAgICAgICAgIHJlcG9kaXIgPSAnLycgKyBzdHIocmVwb2Rpciku
cmVwbGFjZSgnXFwnLCAnLycpCisgICAgICAgIHNlbGYucmVwbyA9IHB5LnBhdGguc3ZudXJsKCJm
aWxlOi8vJXMiICUgcmVwb2RpcikKKyAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMic6
CisgICAgICAgICAgICAjIHJlbW92ZSB0cmFpbGluZyBzbGFzaC4uLgorICAgICAgICAgICAgcmVw
b2RpciA9IHJlcG9kaXJbMTpdCisgICAgICAgIHNlbGYucmVwb3BhdGggPSBweS5wYXRoLmxvY2Fs
KHJlcG9kaXIpCisgICAgICAgIHNlbGYudGVtcHBhdGggPSB0bXBkaXIubWtkaXIoInRlbXBwYXRo
IikKKyAgICAgICAgc2VsZi5hdXRoID0gU3ZuQXV0aCgnam9obm55JywgJ2ZvbycsIGNhY2hlX2F1
dGg9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmFjdGl2
ZT1GYWxzZSkKKyAgICAgICAgbWFrZV9yZXBvX2F1dGgoc2VsZi5yZXBvcGF0aCwgeydqb2hubnkn
OiAoJ2ZvbycsICdydycpfSkKKyAgICAgICAgc2VsZi5wb3J0LCBzZWxmLnBpZCA9IHNlcnZlX2Jn
KHNlbGYucmVwb3BhdGguZGlycGF0aCgpKQorICAgICAgICAjIFhYWCBjYWNoaW5nIGlzIHRvbyBn
bG9iYWwKKyAgICAgICAgcHkucGF0aC5zdm51cmwuX2xzbm9yZXZjYWNoZS5fZGljdC5jbGVhcigp
CisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTogcHkucHJvY2Vzcy5raWxsKHNl
bGYucGlkKSkKKworY2xhc3MgVGVzdFN2bldDQXV0aEZ1bmN0aW9uYWw6CisgICAgZGVmIHRlc3Rf
Y2hlY2tvdXRfY29uc3RydWN0b3JfYXJnKHNlbGYsIHNldHVwKToKKyAgICAgICAgd2MgPSBweS5w
YXRoLnN2bndjKHNldHVwLnRlbXBwYXRoLCBhdXRoPXNldHVwLmF1dGgpCisgICAgICAgIHdjLmNo
ZWNrb3V0KAorICAgICAgICAgICAgJ3N2bjovL2xvY2FsaG9zdDolcy8lcycgJSAoc2V0dXAucG9y
dCwgc2V0dXAucmVwb3BhdGguYmFzZW5hbWUpKQorICAgICAgICBhc3NlcnQgd2Muam9pbignLnN2
bicpLmNoZWNrKCkKKworICAgIGRlZiB0ZXN0X2NoZWNrb3V0X2Z1bmN0aW9uX2FyZyhzZWxmLCBz
ZXR1cCk6CisgICAgICAgIHdjID0gcHkucGF0aC5zdm53YyhzZXR1cC50ZW1wcGF0aCwgYXV0aD1z
ZXR1cC5hdXRoKQorICAgICAgICB3Yy5jaGVja291dCgKKyAgICAgICAgICAgICdzdm46Ly9sb2Nh
bGhvc3Q6JXMvJXMnICUgKHNldHVwLnBvcnQsIHNldHVwLnJlcG9wYXRoLmJhc2VuYW1lKSkKKyAg
ICAgICAgYXNzZXJ0IHdjLmpvaW4oJy5zdm4nKS5jaGVjaygpCisKKyAgICBkZWYgdGVzdF9jaGVj
a291dF9mYWlsaW5nX25vbl9pbnRlcmFjdGl2ZShzZWxmLCBzZXR1cCk6CisgICAgICAgIGF1dGgg
PSBTdm5BdXRoKCdqb2hubnknLCAnYmFyJywgY2FjaGVfYXV0aD1GYWxzZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnRlcmFjdGl2ZT1GYWxzZSkKKyAgICAgICAgd2MgPSBweS5w
YXRoLnN2bndjKHNldHVwLnRlbXBwYXRoLCBhdXRoKQorICAgICAgICBweS50ZXN0LnJhaXNlcyhF
eGNlcHRpb24sCisgICAgICAgICAgICgid2MuY2hlY2tvdXQoJ3N2bjovL2xvY2FsaG9zdDolKHBv
cnQpcy8lKHJlcG9wYXRoKXMnKSIgJQorICAgICAgICAgICAgIHNldHVwLl9fZGljdF9fKSkKKwor
ICAgIGRlZiB0ZXN0X2xvZyhzZWxmLCBzZXR1cCk6CisgICAgICAgIHdjID0gcHkucGF0aC5zdm53
YyhzZXR1cC50ZW1wcGF0aCwgc2V0dXAuYXV0aCkKKyAgICAgICAgd2MuY2hlY2tvdXQoCisgICAg
ICAgICAgICAnc3ZuOi8vbG9jYWxob3N0OiVzLyVzJyAlIChzZXR1cC5wb3J0LCBzZXR1cC5yZXBv
cGF0aC5iYXNlbmFtZSkpCisgICAgICAgIGZvbyA9IHdjLmVuc3VyZSgnZm9vLnR4dCcpCisgICAg
ICAgIHdjLmNvbW1pdCgnYWRkZWQgZm9vLnR4dCcpCisgICAgICAgIGxvZyA9IGZvby5sb2coKQor
ICAgICAgICBhc3NlcnQgbGVuKGxvZykgPT0gMQorICAgICAgICBhc3NlcnQgbG9nWzBdLm1zZyA9
PSAnYWRkZWQgZm9vLnR4dCcKKworICAgIGRlZiB0ZXN0X3N3aXRjaChzZWxmLCBzZXR1cCk6Cisg
ICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaW1wb3J0IHhk
aXN0CisgICAgICAgICAgICBweXRlc3Quc2tpcCgnIzE2MDogZmFpbHMgdW5kZXIgeGRpc3QnKQor
ICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIHdj
ID0gcHkucGF0aC5zdm53YyhzZXR1cC50ZW1wcGF0aCwgYXV0aD1zZXR1cC5hdXRoKQorICAgICAg
ICBzdm51cmwgPSAnc3ZuOi8vbG9jYWxob3N0OiVzLyVzJyAlIChzZXR1cC5wb3J0LCBzZXR1cC5y
ZXBvcGF0aC5iYXNlbmFtZSkKKyAgICAgICAgd2MuY2hlY2tvdXQoc3ZudXJsKQorICAgICAgICB3
Yy5lbnN1cmUoJ2ZvbycsIGRpcj1UcnVlKS5lbnN1cmUoJ2Zvby50eHQnKS53cml0ZSgnZm9vJykK
KyAgICAgICAgd2MuY29tbWl0KCdhZGRlZCBmb28gZGlyIHdpdGggZm9vLnR4dCBmaWxlJykKKyAg
ICAgICAgd2MuZW5zdXJlKCdiYXInLCBkaXI9VHJ1ZSkKKyAgICAgICAgd2MuY29tbWl0KCdhZGRl
ZCBiYXIgZGlyJykKKyAgICAgICAgYmFyID0gd2Muam9pbignYmFyJykKKyAgICAgICAgYmFyLnN3
aXRjaChzdm51cmwgKyAnL2ZvbycpCisgICAgICAgIGFzc2VydCBiYXIuam9pbignZm9vLnR4dCcp
CisKKyAgICBkZWYgdGVzdF91cGRhdGUoc2VsZiwgc2V0dXApOgorICAgICAgICB3YzEgPSBweS5w
YXRoLnN2bndjKHNldHVwLnRlbXBwYXRoLmVuc3VyZSgnd2MxJywgZGlyPVRydWUpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGF1dGg9c2V0dXAuYXV0aCkKKyAgICAgICAgd2MyID0gcHku
cGF0aC5zdm53YyhzZXR1cC50ZW1wcGF0aC5lbnN1cmUoJ3djMicsIGRpcj1UcnVlKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhdXRoPXNldHVwLmF1dGgpCisgICAgICAgIHdjMS5jaGVj
a291dCgKKyAgICAgICAgICAgICdzdm46Ly9sb2NhbGhvc3Q6JXMvJXMnICUgKHNldHVwLnBvcnQs
IHNldHVwLnJlcG9wYXRoLmJhc2VuYW1lKSkKKyAgICAgICAgd2MyLmNoZWNrb3V0KAorICAgICAg
ICAgICAgJ3N2bjovL2xvY2FsaG9zdDolcy8lcycgJSAoc2V0dXAucG9ydCwgc2V0dXAucmVwb3Bh
dGguYmFzZW5hbWUpKQorICAgICAgICB3YzEuZW5zdXJlKCdmb28nLCBkaXI9VHJ1ZSkKKyAgICAg
ICAgd2MxLmNvbW1pdCgnYWRkZWQgZm9vIGRpcicpCisgICAgICAgIHdjMi51cGRhdGUoKQorICAg
ICAgICBhc3NlcnQgd2MyLmpvaW4oJ2ZvbycpLmNoZWNrKCkKKworICAgICAgICBhdXRoID0gU3Zu
QXV0aCgndW5rbm93bicsICd1bmtub3duJywgaW50ZXJhY3RpdmU9RmFsc2UpCisgICAgICAgIHdj
Mi5hdXRoID0gYXV0aAorICAgICAgICBweS50ZXN0LnJhaXNlcyhFeGNlcHRpb24sICd3YzIudXBk
YXRlKCknKQorCisgICAgZGVmIHRlc3RfbG9ja191bmxvY2tfc3RhdHVzKHNlbGYsIHNldHVwKToK
KyAgICAgICAgcG9ydCA9IHNldHVwLnBvcnQKKyAgICAgICAgd2MgPSBweS5wYXRoLnN2bndjKHNl
dHVwLnRlbXBwYXRoLCBhdXRoPXNldHVwLmF1dGgpCisgICAgICAgIHdjLmNoZWNrb3V0KAorICAg
ICAgICAgICAgJ3N2bjovL2xvY2FsaG9zdDolcy8lcycgJSAocG9ydCwgc2V0dXAucmVwb3BhdGgu
YmFzZW5hbWUsKSkKKyAgICAgICAgd2MuZW5zdXJlKCdmb28nLCBmaWxlPVRydWUpCisgICAgICAg
IHdjLmNvbW1pdCgnYWRkZWQgZm9vIGZpbGUnKQorICAgICAgICBmb28gPSB3Yy5qb2luKCdmb28n
KQorICAgICAgICBmb28ubG9jaygpCisgICAgICAgIHN0YXR1cyA9IGZvby5zdGF0dXMoKQorICAg
ICAgICBhc3NlcnQgc3RhdHVzLmxvY2tlZAorICAgICAgICBmb28udW5sb2NrKCkKKyAgICAgICAg
c3RhdHVzID0gZm9vLnN0YXR1cygpCisgICAgICAgIGFzc2VydCBub3Qgc3RhdHVzLmxvY2tlZAor
CisgICAgICAgIGF1dGggPSBTdm5BdXRoKCd1bmtub3duJywgJ3Vua25vd24nLCBpbnRlcmFjdGl2
ZT1GYWxzZSkKKyAgICAgICAgZm9vLmF1dGggPSBhdXRoCisgICAgICAgIHB5LnRlc3QucmFpc2Vz
KEV4Y2VwdGlvbiwgJ2Zvby5sb2NrKCknKQorICAgICAgICBweS50ZXN0LnJhaXNlcyhFeGNlcHRp
b24sICdmb28udW5sb2NrKCknKQorCisgICAgZGVmIHRlc3RfZGlmZihzZWxmLCBzZXR1cCk6Cisg
ICAgICAgIHBvcnQgPSBzZXR1cC5wb3J0CisgICAgICAgIHdjID0gcHkucGF0aC5zdm53YyhzZXR1
cC50ZW1wcGF0aCwgYXV0aD1zZXR1cC5hdXRoKQorICAgICAgICB3Yy5jaGVja291dCgKKyAgICAg
ICAgICAgICdzdm46Ly9sb2NhbGhvc3Q6JXMvJXMnICUgKHBvcnQsIHNldHVwLnJlcG9wYXRoLmJh
c2VuYW1lLCkpCisgICAgICAgIHdjLmVuc3VyZSgnZm9vJywgZmlsZT1UcnVlKQorICAgICAgICB3
Yy5jb21taXQoJ2FkZGVkIGZvbyBmaWxlJykKKyAgICAgICAgd2MudXBkYXRlKCkKKyAgICAgICAg
cmV2ID0gaW50KHdjLnN0YXR1cygpLnJldikKKyAgICAgICAgZm9vID0gd2Muam9pbignZm9vJykK
KyAgICAgICAgZm9vLndyaXRlKCdiYXInKQorICAgICAgICBkaWZmID0gZm9vLmRpZmYoKQorICAg
ICAgICBhc3NlcnQgJ1xuK2JhclxuJyBpbiBkaWZmCisgICAgICAgIGZvby5jb21taXQoJ2FkZGVk
IHNvbWUgY29udGVudCcpCisgICAgICAgIGRpZmYgPSBmb28uZGlmZigpCisgICAgICAgIGFzc2Vy
dCBub3QgZGlmZgorICAgICAgICBkaWZmID0gZm9vLmRpZmYocmV2PXJldikKKyAgICAgICAgYXNz
ZXJ0ICdcbitiYXJcbicgaW4gZGlmZgorCisgICAgICAgIGF1dGggPSBTdm5BdXRoKCd1bmtub3du
JywgJ3Vua25vd24nLCBpbnRlcmFjdGl2ZT1GYWxzZSkKKyAgICAgICAgZm9vLmF1dGggPSBhdXRo
CisgICAgICAgIHB5LnRlc3QucmFpc2VzKEV4Y2VwdGlvbiwgJ2Zvby5kaWZmKHJldj1yZXYpJykK
KworY2xhc3MgVGVzdFN2blVSTEF1dGhGdW5jdGlvbmFsOgorICAgIGRlZiB0ZXN0X2xpc3RkaXIo
c2VsZiwgc2V0dXApOgorICAgICAgICBwb3J0ID0gc2V0dXAucG9ydAorICAgICAgICB1ID0gcHku
cGF0aC5zdm51cmwoCisgICAgICAgICAgICAnc3ZuOi8vbG9jYWxob3N0OiVzLyVzJyAlIChwb3J0
LCBzZXR1cC5yZXBvcGF0aC5iYXNlbmFtZSksCisgICAgICAgICAgICBhdXRoPXNldHVwLmF1dGgp
CisgICAgICAgIHUuZW5zdXJlKCdmb28nKQorICAgICAgICBwYXRocyA9IHUubGlzdGRpcigpCisg
ICAgICAgIGFzc2VydCBsZW4ocGF0aHMpID09IDEKKyAgICAgICAgYXNzZXJ0IHBhdGhzWzBdLmF1
dGggaXMgc2V0dXAuYXV0aAorCisgICAgICAgIGF1dGggPSBTdm5BdXRoKCdmb28nLCAnYmFyJywg
aW50ZXJhY3RpdmU9RmFsc2UpCisgICAgICAgIHUgPSBweS5wYXRoLnN2bnVybCgKKyAgICAgICAg
ICAgICdzdm46Ly9sb2NhbGhvc3Q6JXMvJXMnICUgKHBvcnQsIHNldHVwLnJlcG9wYXRoLmJhc2Vu
YW1lKSwKKyAgICAgICAgICAgIGF1dGg9YXV0aCkKKyAgICAgICAgcHkudGVzdC5yYWlzZXMoRXhj
ZXB0aW9uLCAndS5saXN0ZGlyKCknKQorCisgICAgZGVmIHRlc3RfY29weShzZWxmLCBzZXR1cCk6
CisgICAgICAgIHBvcnQgPSBzZXR1cC5wb3J0CisgICAgICAgIHUgPSBweS5wYXRoLnN2bnVybCgK
KyAgICAgICAgICAgICdzdm46Ly9sb2NhbGhvc3Q6JXMvJXMnICUgKHBvcnQsIHNldHVwLnJlcG9w
YXRoLmJhc2VuYW1lKSwKKyAgICAgICAgICAgIGF1dGg9c2V0dXAuYXV0aCkKKyAgICAgICAgZm9v
ID0gdS5ta2RpcignZm9vJykKKyAgICAgICAgYXNzZXJ0IGZvby5jaGVjaygpCisgICAgICAgIGJh
ciA9IHUuam9pbignYmFyJykKKyAgICAgICAgZm9vLmNvcHkoYmFyKQorICAgICAgICBhc3NlcnQg
YmFyLmNoZWNrKCkKKyAgICAgICAgYXNzZXJ0IGJhci5hdXRoIGlzIHNldHVwLmF1dGgKKworICAg
ICAgICBhdXRoID0gU3ZuQXV0aCgnZm9vJywgJ2JhcicsIGludGVyYWN0aXZlPUZhbHNlKQorICAg
ICAgICB1ID0gcHkucGF0aC5zdm51cmwoCisgICAgICAgICAgICAnc3ZuOi8vbG9jYWxob3N0OiVz
LyVzJyAlIChwb3J0LCBzZXR1cC5yZXBvcGF0aC5iYXNlbmFtZSksCisgICAgICAgICAgICBhdXRo
PWF1dGgpCisgICAgICAgIGZvbyA9IHUuam9pbignZm9vJykKKyAgICAgICAgYmFyID0gdS5qb2lu
KCdiYXInKQorICAgICAgICBweS50ZXN0LnJhaXNlcyhFeGNlcHRpb24sICdmb28uY29weShiYXIp
JykKKworICAgIGRlZiB0ZXN0X3dyaXRlX3JlYWQoc2VsZiwgc2V0dXApOgorICAgICAgICBwb3J0
ID0gc2V0dXAucG9ydAorICAgICAgICB1ID0gcHkucGF0aC5zdm51cmwoCisgICAgICAgICAgICAn
c3ZuOi8vbG9jYWxob3N0OiVzLyVzJyAlIChwb3J0LCBzZXR1cC5yZXBvcGF0aC5iYXNlbmFtZSks
CisgICAgICAgICAgICBhdXRoPXNldHVwLmF1dGgpCisgICAgICAgIGZvbyA9IHUuZW5zdXJlKCdm
b28nKQorICAgICAgICBmcCA9IGZvby5vcGVuKCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
ZGF0YSA9IGZwLnJlYWQoKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgZnAuY2xvc2Uo
KQorICAgICAgICBhc3NlcnQgZGF0YSA9PSAnJworCisgICAgICAgIGF1dGggPSBTdm5BdXRoKCdm
b28nLCAnYmFyJywgaW50ZXJhY3RpdmU9RmFsc2UpCisgICAgICAgIHUgPSBweS5wYXRoLnN2bnVy
bCgKKyAgICAgICAgICAgICdzdm46Ly9sb2NhbGhvc3Q6JXMvJXMnICUgKHBvcnQsIHNldHVwLnJl
cG9wYXRoLmJhc2VuYW1lKSwKKyAgICAgICAgICAgIGF1dGg9YXV0aCkKKyAgICAgICAgZm9vID0g
dS5qb2luKCdmb28nKQorICAgICAgICBweS50ZXN0LnJhaXNlcyhFeGNlcHRpb24sICdmb28ub3Bl
bigpJykKKworICAgICMgWFhYIHJpbnNlLCByZXBlYXQuLi4gOnwKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvdGVzdGluZy9wYXRoL3Rlc3Rfc3ZudXJsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvdGVz
dF9zdm51cmwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTVmYmVhNTA0N2RhNGY3N2ZkYTlmYjE0ZTM0ZDA5ZWI3
YTZmYWIyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wYXRoL3Rlc3Rfc3Zu
dXJsLnB5CkBAIC0wLDAgKzEsOTUgQEAKK2ltcG9ydCBweQorZnJvbSBweS5fcGF0aC5zdm51cmwg
aW1wb3J0IEluZm9Tdm5Db21tYW5kCitpbXBvcnQgZGF0ZXRpbWUKK2ltcG9ydCB0aW1lCitmcm9t
IHN2bnRlc3RiYXNlIGltcG9ydCBDb21tb25Tdm5UZXN0cworCitkZWYgcHl0ZXN0X2Z1bmNhcmdf
X3BhdGgxKHJlcXVlc3QpOgorICAgIHJlcG8sIHJlcG91cmwsIHdjID0gcmVxdWVzdC5nZXRmdW5j
YXJndmFsdWUoInJlcG93YzEiKQorICAgIHJldHVybiBweS5wYXRoLnN2bnVybChyZXBvdXJsKQor
CitjbGFzcyBUZXN0U3ZuVVJMQ29tbWFuZFBhdGgoQ29tbW9uU3ZuVGVzdHMpOgorICAgIEBweS50
ZXN0Lm1hcmsueGZhaWwKKyAgICBkZWYgdGVzdF9sb2FkKHNlbGYsIHBhdGgxKToKKyAgICAgICAg
c3VwZXIoVGVzdFN2blVSTENvbW1hbmRQYXRoLCBzZWxmKS50ZXN0X2xvYWQocGF0aDEpCisKKyAg
ICAjIHRoZSBmb2xsb3dpbmcgdHdvIHdvcmsgb24ganl0aG9uIGJ1dCBub3QgaW4gbG9jYWwvc3Zu
d2MKKyAgICBkZWYgdGVzdF9saXN0ZGlyKHNlbGYsIHBhdGgxKToKKyAgICAgICAgc3VwZXIoVGVz
dFN2blVSTENvbW1hbmRQYXRoLCBzZWxmKS50ZXN0X2xpc3RkaXIocGF0aDEpCisgICAgZGVmIHRl
c3RfdmlzaXRfaWdub3JlKHNlbGYsIHBhdGgxKToKKyAgICAgICAgc3VwZXIoVGVzdFN2blVSTENv
bW1hbmRQYXRoLCBzZWxmKS50ZXN0X3Zpc2l0X2lnbm9yZShwYXRoMSkKKworICAgIGRlZiB0ZXN0
X3N2bnVybF9uZWVkc19hcmcoc2VsZiwgcGF0aDEpOgorICAgICAgICBweS50ZXN0LnJhaXNlcyhU
eXBlRXJyb3IsICJweS5wYXRoLnN2bnVybCgpIikKKworICAgIGRlZiB0ZXN0X3N2bnVybF9kb2Vz
X25vdF9hY2NlcHRfTm9uZV9laXRoZXIoc2VsZiwgcGF0aDEpOgorICAgICAgICBweS50ZXN0LnJh
aXNlcyhFeGNlcHRpb24sICJweS5wYXRoLnN2bnVybChOb25lKSIpCisKKyAgICBkZWYgdGVzdF9z
dm51cmxfY2hhcmFjdGVyc19zaW1wbGUoc2VsZiwgcGF0aDEpOgorICAgICAgICBweS5wYXRoLnN2
bnVybCgic3ZuK3NzaDovL2hlbGxvL3dvcmxkIikKKworICAgIGRlZiB0ZXN0X3N2bnVybF9jaGFy
YWN0ZXJzX2F0X3VzZXIoc2VsZiwgcGF0aDEpOgorICAgICAgICBweS5wYXRoLnN2bnVybCgiaHR0
cDovL3VzZXJAaG9zdC5jb20vc29tZS9kaXIiKQorCisgICAgZGVmIHRlc3Rfc3ZudXJsX2NoYXJh
Y3RlcnNfYXRfcGF0aChzZWxmLCBwYXRoMSk6CisgICAgICAgIHB5LnRlc3QucmFpc2VzKFZhbHVl
RXJyb3IsICdweS5wYXRoLnN2bnVybCgiaHR0cDovL2hvc3QuY29tL2Zvb0BiYXIiKScpCisKKyAg
ICBkZWYgdGVzdF9zdm51cmxfY2hhcmFjdGVyc19jb2xvbl9wb3J0KHNlbGYsIHBhdGgxKToKKyAg
ICAgICAgcHkucGF0aC5zdm51cmwoImh0dHA6Ly9ob3N0LmNvbTo4MDgwL3NvbWUvZGlyIikKKwor
ICAgIGRlZiB0ZXN0X3N2bnVybF9jaGFyYWN0ZXJzX3RpbGRlX2VuZChzZWxmLCBwYXRoMSk6Cisg
ICAgICAgIHB5LnBhdGguc3ZudXJsKCJodHRwOi8vaG9zdC5jb20vc29tZS9maWxlfiIpCisKKyAg
ICBAcHkudGVzdC5tYXJrLnhmYWlsKCJzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJyIpCisgICAgZGVm
IHRlc3Rfc3ZudXJsX2NoYXJhY3RlcnNfY29sb25fcGF0aChzZWxmLCBwYXRoMSk6CisgICAgICAg
ICMgY29sb25zIGFyZSBhbGxvd2VkIG9uIHdpbjMyLCBiZWNhdXNlIHRoZXkncmUgcGFydCBvZiB0
aGUgZHJpdmUKKyAgICAgICAgIyBwYXJ0IG9mIGFuIGFic29sdXRlIHBhdGguLi4gaG93ZXZlciwg
dGhleSBzaG91bGRuJ3QgYmUgYWxsb3dlZCBpbgorICAgICAgICAjIG90aGVyIHBhcnRzLCBJIHRo
aW5rCisgICAgICAgIHB5LnRlc3QucmFpc2VzKFZhbHVlRXJyb3IsICdweS5wYXRoLnN2bnVybCgi
aHR0cDovL2hvc3QuY29tL2ZvbzpiYXIiKScpCisKKyAgICBkZWYgdGVzdF9leHBvcnQoc2VsZiwg
cGF0aDEsIHRtcGRpcik6CisgICAgICAgIHRtcGRpciA9IHRtcGRpci5qb2luKCJlbXB0eSIpCisg
ICAgICAgIHAgPSBwYXRoMS5leHBvcnQodG1wZGlyKQorICAgICAgICBhc3NlcnQgcCA9PSB0bXBk
aXIgIyBYWFggc2hvdWxkIHJldHVybiBOb25lCisgICAgICAgIG4xID0gW3guYmFzZW5hbWUgZm9y
IHggaW4gdG1wZGlyLmxpc3RkaXIoKV0KKyAgICAgICAgbjIgPSBbeC5iYXNlbmFtZSBmb3IgeCBp
biBwYXRoMS5saXN0ZGlyKCldCisgICAgICAgIG4xLnNvcnQoKQorICAgICAgICBuMi5zb3J0KCkK
KyAgICAgICAgYXNzZXJ0IG4xID09IG4yCisgICAgICAgIGFzc2VydCBub3QgcC5qb2luKCcuc3Zu
JykuY2hlY2soKQorICAgICAgICByZXYgPSBwYXRoMS5ta2RpcigibmV3ZGlyIikKKyAgICAgICAg
dG1wZGlyLnJlbW92ZSgpCisgICAgICAgIGFzc2VydCBub3QgdG1wZGlyLmNoZWNrKCkKKyAgICAg
ICAgcGF0aDEubmV3KHJldj0xKS5leHBvcnQodG1wZGlyKQorICAgICAgICBmb3IgcCBpbiB0bXBk
aXIubGlzdGRpcigpOgorICAgICAgICAgICAgYXNzZXJ0IHAuYmFzZW5hbWUgaW4gbjIKKworY2xh
c3MgVGVzdFN2bkluZm9Db21tYW5kOgorCisgICAgZGVmIHRlc3Rfc3ZuXzFfMihzZWxmKToKKyAg
ICAgICAgbGluZSA9ICIgICAyMjU2ICAgICAgaHBrICAgICAgICAxNjUgTm92IDI0IDE3OjU1IF9f
aW5pdF9fLnB5IgorICAgICAgICBpbmZvID0gSW5mb1N2bkNvbW1hbmQobGluZSkKKyAgICAgICAg
bm93ID0gZGF0ZXRpbWUuZGF0ZXRpbWUubm93KCkKKyAgICAgICAgYXNzZXJ0IGluZm8ubGFzdF9h
dXRob3IgPT0gJ2hwaycKKyAgICAgICAgYXNzZXJ0IGluZm8uY3JlYXRlZF9yZXYgPT0gMjI1Ngor
ICAgICAgICBhc3NlcnQgaW5mby5raW5kID09ICdmaWxlJworICAgICAgICAjIHdlIGRvbid0IGNo
ZWNrIGZvciB0aGUgeWVhciAoMjAwNiksIGJlY2F1c2UgdGhhdCBkZXBlbmRzCisgICAgICAgICMg
b24gdGhlIGNsb2NrIGNvcnJlY3RseSBiZWluZyBzZXR1cAorICAgICAgICBhc3NlcnQgdGltZS5n
bXRpbWUoaW5mby5tdGltZSlbMTo2XSA9PSAoMTEsIDI0LCAxNywgNTUsIDApCisgICAgICAgIGFz
c2VydCBpbmZvLnNpemUgPT0gIDE2NQorICAgICAgICBhc3NlcnQgaW5mby50aW1lID09IGluZm8u
bXRpbWUgKiAxMDAwMDAwCisKKyAgICBkZWYgdGVzdF9zdm5fMV8zKHNlbGYpOgorICAgICAgICBs
aW5lID0iICAgIDQ3ODQgaHBrICAgICAgICAgICAgICAgICAyIEp1biAwMSAgMjAwNCBfX2luaXRf
Xy5weSIKKyAgICAgICAgaW5mbyA9IEluZm9Tdm5Db21tYW5kKGxpbmUpCisgICAgICAgIGFzc2Vy
dCBpbmZvLmxhc3RfYXV0aG9yID09ICdocGsnCisgICAgICAgIGFzc2VydCBpbmZvLmtpbmQgPT0g
J2ZpbGUnCisKKyAgICBkZWYgdGVzdF9zdm5fMV8zX2Ioc2VsZik6CisgICAgICAgIGxpbmUgPSIg
ICAgIDc0IGF1dG9hZG1pICAgICAgICAgICAgICBPY3QgMDYgMjM6NTkgcGxvbmVzb2x1dGlvbnMu
Y29tLyIKKyAgICAgICAgaW5mbyA9IEluZm9Tdm5Db21tYW5kKGxpbmUpCisgICAgICAgIGFzc2Vy
dCBpbmZvLmxhc3RfYXV0aG9yID09ICdhdXRvYWRtaScKKyAgICAgICAgYXNzZXJ0IGluZm8ua2lu
ZCA9PSAnZGlyJworCitkZWYgdGVzdF9iYWRjaGFycygpOgorICAgIHB5LnRlc3QucmFpc2VzKFZh
bHVlRXJyb3IsICJweS5wYXRoLnN2bnVybCgnaHR0cDovL2hvc3QvdG1wL0BAQDonKSIpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcGF0aC90ZXN0X3N2bndjLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0
aW5nL3BhdGgvdGVzdF9zdm53Yy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjQzZDk5ODNmYjRkYjZlYzNiMGI4
NWRkODczMjY4Mjc0YmIyNGJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Bh
dGgvdGVzdF9zdm53Yy5weQpAQCAtMCwwICsxLDU1NyBAQAoraW1wb3J0IHB5CitpbXBvcnQgb3Ms
IHN5cworaW1wb3J0IHB5dGVzdAorZnJvbSBweS5fcGF0aC5zdm53YyBpbXBvcnQgSW5mb1N2bldD
Q29tbWFuZCwgWE1MV0NTdGF0dXMsIHBhcnNlX3djaW5mb3RpbWUKK2Zyb20gcHkuX3BhdGggaW1w
b3J0IHN2bndjIGFzIHN2bmNvbW1vbgorZnJvbSBzdm50ZXN0YmFzZSBpbXBvcnQgQ29tbW9uU3Zu
VGVzdHMKKworCitweXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnBsYXRmb3JtLnN0
YXJ0c3dpdGgoJ3dpbicpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0n
IzE2MSBhbGwgdGVzdHMgaW4gdGhpcyBmaWxlIGFyZSBmYWlsaW5nIG9uIFdpbmRvd3MnLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bj1GYWxzZSkKKworCitkZWYgdGVzdF9tYWtl
X3JlcG8ocGF0aDEsIHRtcGRpcik6CisgICAgcmVwbyA9IHRtcGRpci5qb2luKCJyZXBvIikKKyAg
ICBweS5wcm9jZXNzLmNtZGV4ZWMoJ3N2bmFkbWluIGNyZWF0ZSAlcycgJSByZXBvKQorICAgIGlm
IHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInOgorICAgICAgICByZXBvID0gJy8nICsgc3RyKHJlcG8p
LnJlcGxhY2UoJ1xcJywgJy8nKQorICAgIHJlcG8gPSBweS5wYXRoLnN2bnVybCgiZmlsZTovLyVz
IiAlIHJlcG8pCisgICAgd2MgPSBweS5wYXRoLnN2bndjKHRtcGRpci5qb2luKCJ3YyIpKQorICAg
IHdjLmNoZWNrb3V0KHJlcG8pCisgICAgYXNzZXJ0IHdjLnJldiA9PSAwCisgICAgYXNzZXJ0IGxl
bih3Yy5saXN0ZGlyKCkpID09IDAKKyAgICBwID0gd2Muam9pbigiYV9maWxlIikKKyAgICBwLndy
aXRlKCJ0ZXN0IGZpbGUiKQorICAgIHAuYWRkKCkKKyAgICByZXYgPSB3Yy5jb21taXQoInNvbWUg
dGVzdCIpCisgICAgYXNzZXJ0IHAuaW5mbygpLnJldiA9PSAxCisgICAgYXNzZXJ0IHJldiA9PSAx
CisgICAgcmV2ID0gd2MuY29tbWl0KCkKKyAgICBhc3NlcnQgcmV2IGlzIE5vbmUKKworZGVmIHB5
dGVzdF9mdW5jYXJnX19wYXRoMShyZXF1ZXN0KToKKyAgICByZXBvLCByZXBvdXJsLCB3YyA9IHJl
cXVlc3QuZ2V0ZnVuY2FyZ3ZhbHVlKCJyZXBvd2MxIikKKyAgICByZXR1cm4gd2MKKworY2xhc3Mg
VGVzdFdDU3ZuQ29tbWFuZFBhdGgoQ29tbW9uU3ZuVGVzdHMpOgorICAgIGRlZiB0ZXN0X3N0YXR1
c19hdHRyaWJ1dGVzX3NpbXBsZShzZWxmLCBwYXRoMSk6CisgICAgICAgIGRlZiBhc3NlcnRfbm9j
aGFuZ2UocCk6CisgICAgICAgICAgICBzID0gcC5zdGF0dXMoKQorICAgICAgICAgICAgYXNzZXJ0
IG5vdCBzLm1vZGlmaWVkCisgICAgICAgICAgICBhc3NlcnQgbm90IHMucHJvcF9tb2RpZmllZAor
ICAgICAgICAgICAgYXNzZXJ0IG5vdCBzLmFkZGVkCisgICAgICAgICAgICBhc3NlcnQgbm90IHMu
ZGVsZXRlZAorICAgICAgICAgICAgYXNzZXJ0IG5vdCBzLnJlcGxhY2VkCisKKyAgICAgICAgZHBh
dGggPSBwYXRoMS5qb2luKCdzYW1wbGVkaXInKQorICAgICAgICBhc3NlcnRfbm9jaGFuZ2UocGF0
aDEuam9pbignc2FtcGxlZGlyJykpCisgICAgICAgIGFzc2VydF9ub2NoYW5nZShwYXRoMS5qb2lu
KCdzYW1wbGVmaWxlJykpCisKKyAgICBkZWYgdGVzdF9zdGF0dXNfYWRkZWQoc2VsZiwgcGF0aDEp
OgorICAgICAgICBuZiA9IHBhdGgxLmpvaW4oJ25ld2ZpbGUnKQorICAgICAgICBuZi53cml0ZSgn
aGVsbG8nKQorICAgICAgICBuZi5hZGQoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzID0g
bmYuc3RhdHVzKCkKKyAgICAgICAgICAgIGFzc2VydCBzLmFkZGVkCisgICAgICAgICAgICBhc3Nl
cnQgbm90IHMubW9kaWZpZWQKKyAgICAgICAgICAgIGFzc2VydCBub3Qgcy5wcm9wX21vZGlmaWVk
CisgICAgICAgICAgICBhc3NlcnQgbm90IHMucmVwbGFjZWQKKyAgICAgICAgZmluYWxseToKKyAg
ICAgICAgICAgIG5mLnJldmVydCgpCisKKyAgICBkZWYgdGVzdF9zdGF0dXNfY2hhbmdlKHNlbGYs
IHBhdGgxKToKKyAgICAgICAgbmYgPSBwYXRoMS5qb2luKCdzYW1wbGVmaWxlJykKKyAgICAgICAg
dHJ5OgorICAgICAgICAgICAgbmYud3JpdGUobmYucmVhZCgpICsgJ2NoYW5nZScpCisgICAgICAg
ICAgICBzID0gbmYuc3RhdHVzKCkKKyAgICAgICAgICAgIGFzc2VydCBub3Qgcy5hZGRlZAorICAg
ICAgICAgICAgYXNzZXJ0IHMubW9kaWZpZWQKKyAgICAgICAgICAgIGFzc2VydCBub3Qgcy5wcm9w
X21vZGlmaWVkCisgICAgICAgICAgICBhc3NlcnQgbm90IHMucmVwbGFjZWQKKyAgICAgICAgZmlu
YWxseToKKyAgICAgICAgICAgIG5mLnJldmVydCgpCisKKyAgICBkZWYgdGVzdF9zdGF0dXNfYWRk
ZWRfb25kaXJlY3Rvcnkoc2VsZiwgcGF0aDEpOgorICAgICAgICBzYW1wbGVkaXIgPSBwYXRoMS5q
b2luKCdzYW1wbGVkaXInKQorICAgICAgICB0cnk6CisgICAgICAgICAgICB0MiA9IHNhbXBsZWRp
ci5ta2RpcigndDInKQorICAgICAgICAgICAgdDEgPSB0Mi5qb2luKCd0MScpCisgICAgICAgICAg
ICB0MS53cml0ZSgndGVzdCcpCisgICAgICAgICAgICB0MS5hZGQoKQorICAgICAgICAgICAgcyA9
IHNhbXBsZWRpci5zdGF0dXMocmVjPTEpCisgICAgICAgICAgICAjIENvbXBhcmluZyBqdXN0IHRo
ZSBmaWxlIG5hbWVzLCBiZWNhdXNlIHBhdGhzIGFyZSB1bnByZWRpY3RhYmxlCisgICAgICAgICAg
ICAjIG9uIFdpbmRvd3MuIChsb25nIHZzLiA4LjMgcGF0aHMpCisgICAgICAgICAgICBhc3NlcnQg
dDEuYmFzZW5hbWUgaW4gW2l0ZW0uYmFzZW5hbWUgZm9yIGl0ZW0gaW4gcy5hZGRlZF0KKyAgICAg
ICAgICAgIGFzc2VydCB0Mi5iYXNlbmFtZSBpbiBbaXRlbS5iYXNlbmFtZSBmb3IgaXRlbSBpbiBz
LmFkZGVkXQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgdDIucmV2ZXJ0KHJlYz0xKQor
ICAgICAgICAgICAgdDIubG9jYWxwYXRoLnJlbW92ZShyZWM9MSkKKworICAgIGRlZiB0ZXN0X3N0
YXR1c191bmtub3duKHNlbGYsIHBhdGgxKToKKyAgICAgICAgdDEgPSBwYXRoMS5qb2luKCd1bjEn
KQorICAgICAgICB0cnk6CisgICAgICAgICAgICB0MS53cml0ZSgndGVzdCcpCisgICAgICAgICAg
ICBzID0gcGF0aDEuc3RhdHVzKCkKKyAgICAgICAgICAgICMgQ29tcGFyaW5nIGp1c3QgdGhlIGZp
bGUgbmFtZXMsIGJlY2F1c2UgcGF0aHMgYXJlIHVucHJlZGljdGFibGUKKyAgICAgICAgICAgICMg
b24gV2luZG93cy4gKGxvbmcgdnMuIDguMyBwYXRocykKKyAgICAgICAgICAgIGFzc2VydCB0MS5i
YXNlbmFtZSBpbiBbaXRlbS5iYXNlbmFtZSBmb3IgaXRlbSBpbiBzLnVua25vd25dCisgICAgICAg
IGZpbmFsbHk6CisgICAgICAgICAgICB0MS5sb2NhbHBhdGgucmVtb3ZlKCkKKworICAgIGRlZiB0
ZXN0X3N0YXR1c191bmNoYW5nZWQoc2VsZiwgcGF0aDEpOgorICAgICAgICByID0gcGF0aDEKKyAg
ICAgICAgcyA9IHBhdGgxLnN0YXR1cyhyZWM9MSkKKyAgICAgICAgIyBDb21wYXJpbmcganVzdCB0
aGUgZmlsZSBuYW1lcywgYmVjYXVzZSBwYXRocyBhcmUgdW5wcmVkaWN0YWJsZQorICAgICAgICAj
IG9uIFdpbmRvd3MuIChsb25nIHZzLiA4LjMgcGF0aHMpCisgICAgICAgIGFzc2VydCByLmpvaW4o
J3NhbXBsZWZpbGUnKS5iYXNlbmFtZSBpbiBbaXRlbS5iYXNlbmFtZQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpdGVtIGluIHMudW5jaGFu
Z2VkXQorICAgICAgICBhc3NlcnQgci5qb2luKCdzYW1wbGVkaXInKS5iYXNlbmFtZSBpbiBbaXRl
bS5iYXNlbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZvciBpdGVtIGluIHMudW5jaGFuZ2VkXQorICAgICAgICBhc3NlcnQgci5qb2luKCdz
YW1wbGVkaXIvb3RoZXJmaWxlJykuYmFzZW5hbWUgaW4gW2l0ZW0uYmFzZW5hbWUKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBz
LnVuY2hhbmdlZF0KKworICAgIGRlZiB0ZXN0X3N0YXR1c191cGRhdGUoc2VsZiwgcGF0aDEpOgor
ICAgICAgICAjIG5vdCBhIG1hcmsgYmVjYXVzZSB0aGUgZ2xvYmFsICJweXRlc3RtYXJrIiB3aWxs
IGVuZCB1cCBvdmVyd3JpdGluZyBhIG1hcmsgaGVyZQorICAgICAgICBweXRlc3QueGZhaWwoInN2
bi0xLjcgaGFzIGJ1Z2d5ICdzdGF0dXMgLS14bWwnIG91dHB1dCIpCisgICAgICAgIHIgPSBwYXRo
MQorICAgICAgICB0cnk6CisgICAgICAgICAgICByLnVwZGF0ZShyZXY9MSkKKyAgICAgICAgICAg
IHMgPSByLnN0YXR1cyh1cGRhdGVzPTEsIHJlYz0xKQorICAgICAgICAgICAgIyBDb21wYXJpbmcg
anVzdCB0aGUgZmlsZSBuYW1lcywgYmVjYXVzZSBwYXRocyBhcmUgdW5wcmVkaWN0YWJsZQorICAg
ICAgICAgICAgIyBvbiBXaW5kb3dzLiAobG9uZyB2cy4gOC4zIHBhdGhzKQorICAgICAgICAgICAg
aW1wb3J0IHBwcmludAorICAgICAgICAgICAgcHByaW50LnBwcmludChzLmFsbHBhdGgoKSkKKyAg
ICAgICAgICAgIGFzc2VydCByLmpvaW4oJ2Fub3RoZXJmaWxlJykuYmFzZW5hbWUgaW4gW2l0ZW0u
YmFzZW5hbWUgZm9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaXRlbSBpbiBzLnVwZGF0ZV9hdmFpbGFibGVdCisgICAgICAgICAgICAjYXNzZXJ0
IGxlbihzLnVwZGF0ZV9hdmFpbGFibGUpID09IDEKKyAgICAgICAgZmluYWxseToKKyAgICAgICAg
ICAgIHIudXBkYXRlKCkKKworICAgIGRlZiB0ZXN0X3N0YXR1c19yZXBsYWNlZChzZWxmLCBwYXRo
MSk6CisgICAgICAgIHAgPSBwYXRoMS5qb2luKCJzYW1wbGVmaWxlIikKKyAgICAgICAgcC5yZW1v
dmUoKQorICAgICAgICBwLmVuc3VyZShkaXI9MCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
cyA9IHBhdGgxLnN0YXR1cygpCisgICAgICAgICAgICBhc3NlcnQgcC5iYXNlbmFtZSBpbiBbaXRl
bS5iYXNlbmFtZSBmb3IgaXRlbSBpbiBzLnJlcGxhY2VkXQorICAgICAgICBmaW5hbGx5OgorICAg
ICAgICAgICAgcGF0aDEucmV2ZXJ0KHJlYz0xKQorCisgICAgZGVmIHRlc3Rfc3RhdHVzX2lnbm9y
ZWQoc2VsZiwgcGF0aDEpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBkID0gcGF0aDEuam9p
bignc2FtcGxlZGlyJykKKyAgICAgICAgICAgIHAgPSBweS5wYXRoLmxvY2FsKGQpLmpvaW4oJ2ln
bm9yZWRmaWxlJykKKyAgICAgICAgICAgIHAuZW5zdXJlKGZpbGU9VHJ1ZSkKKyAgICAgICAgICAg
IHMgPSBkLnN0YXR1cygpCisgICAgICAgICAgICBhc3NlcnQgW3guYmFzZW5hbWUgZm9yIHggaW4g
cy51bmtub3duXSA9PSBbJ2lnbm9yZWRmaWxlJ10KKyAgICAgICAgICAgIGFzc2VydCBbeC5iYXNl
bmFtZSBmb3IgeCBpbiBzLmlnbm9yZWRdID09IFtdCisgICAgICAgICAgICBkLnByb3BzZXQoJ3N2
bjppZ25vcmUnLCAnaWdub3JlZGZpbGUnKQorICAgICAgICAgICAgcyA9IGQuc3RhdHVzKCkKKyAg
ICAgICAgICAgIGFzc2VydCBbeC5iYXNlbmFtZSBmb3IgeCBpbiBzLnVua25vd25dID09IFtdCisg
ICAgICAgICAgICBhc3NlcnQgW3guYmFzZW5hbWUgZm9yIHggaW4gcy5pZ25vcmVkXSA9PSBbJ2ln
bm9yZWRmaWxlJ10KKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHBhdGgxLnJldmVydChy
ZWM9MSkKKworICAgIGRlZiB0ZXN0X3N0YXR1c19jb25mbGljdChzZWxmLCBwYXRoMSwgdG1wZGly
KToKKyAgICAgICAgd2MgPSBwYXRoMQorICAgICAgICB3Y2NvcHkgPSBweS5wYXRoLnN2bndjKHRt
cGRpci5qb2luKCJjb25mbGljdF9jb3B5IikpCisgICAgICAgIHdjY29weS5jaGVja291dCh3Yy51
cmwpCisgICAgICAgIHAgPSB3Yy5lbnN1cmUoJ2NvbmZsaWN0c2FtcGxlZmlsZScsIGZpbGU9MSkK
KyAgICAgICAgcC53cml0ZSgnZm9vJykKKyAgICAgICAgd2MuY29tbWl0KCdhZGRlZCBjb25mbGlj
dHNhbXBsZWZpbGUnKQorICAgICAgICB3Y2NvcHkudXBkYXRlKCkKKyAgICAgICAgYXNzZXJ0IHdj
Y29weS5qb2luKCdjb25mbGljdHNhbXBsZWZpbGUnKS5jaGVjaygpCisgICAgICAgIHAud3JpdGUo
J2JhcicpCisgICAgICAgIHdjLmNvbW1pdCgnd3JvdGUgc29tZSBkYXRhJykKKyAgICAgICAgd2Nj
b3B5LmpvaW4oJ2NvbmZsaWN0c2FtcGxlZmlsZScpLndyaXRlKCdiYXonKQorICAgICAgICB3Y2Nv
cHkudXBkYXRlKGludGVyYWN0aXZlPUZhbHNlKQorICAgICAgICBzID0gd2Njb3B5LnN0YXR1cygp
CisgICAgICAgIGFzc2VydCBbeC5iYXNlbmFtZSBmb3IgeCBpbiBzLmNvbmZsaWN0XSA9PSBbJ2Nv
bmZsaWN0c2FtcGxlZmlsZSddCisKKyAgICBkZWYgdGVzdF9zdGF0dXNfZXh0ZXJuYWwoc2VsZiwg
cGF0aDEsIHJlcG93YzIpOgorICAgICAgICBvdGhlcnJlcG8sIG90aGVycmVwb3VybCwgb3RoZXJ3
YyA9IHJlcG93YzIKKyAgICAgICAgZCA9IHBhdGgxLmVuc3VyZSgnc2FtcGxlZGlyJywgZGlyPTEp
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGQudXBkYXRlKCkKKyAgICAgICAgICAgIGQucHJv
cHNldCgnc3ZuOmV4dGVybmFscycsICdvdGhlcndjICVzJyAlIChvdGhlcndjLnVybCwpKQorICAg
ICAgICAgICAgZC51cGRhdGUoKQorICAgICAgICAgICAgcyA9IGQuc3RhdHVzKCkKKyAgICAgICAg
ICAgIGFzc2VydCBbeC5iYXNlbmFtZSBmb3IgeCBpbiBzLmV4dGVybmFsXSA9PSBbJ290aGVyd2Mn
XQorICAgICAgICAgICAgYXNzZXJ0ICdvdGhlcndjJyBub3QgaW4gW3guYmFzZW5hbWUgZm9yIHgg
aW4gcy51bmNoYW5nZWRdCisgICAgICAgICAgICBzID0gZC5zdGF0dXMocmVjPTEpCisgICAgICAg
ICAgICBhc3NlcnQgW3guYmFzZW5hbWUgZm9yIHggaW4gcy5leHRlcm5hbF0gPT0gWydvdGhlcndj
J10KKyAgICAgICAgICAgIGFzc2VydCAnb3RoZXJ3YycgaW4gW3guYmFzZW5hbWUgZm9yIHggaW4g
cy51bmNoYW5nZWRdCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBwYXRoMS5yZXZlcnQo
cmVjPTEpCisKKyAgICBkZWYgdGVzdF9zdGF0dXNfZGVsZXRlZChzZWxmLCBwYXRoMSk6CisgICAg
ICAgIGQgPSBwYXRoMS5lbnN1cmUoJ3NhbXBsZWRpcicsIGRpcj0xKQorICAgICAgICBkLnJlbW92
ZSgpCisgICAgICAgIGQuZW5zdXJlKGRpcj0xKQorICAgICAgICBwYXRoMS5jb21taXQoKQorICAg
ICAgICBkLmVuc3VyZSgnZGVsZXRlZmlsZScsIGRpcj0wKQorICAgICAgICBkLmNvbW1pdCgpCisg
ICAgICAgIHMgPSBkLnN0YXR1cygpCisgICAgICAgIGFzc2VydCAnZGVsZXRlZmlsZScgaW4gW3gu
YmFzZW5hbWUgZm9yIHggaW4gcy51bmNoYW5nZWRdCisgICAgICAgIGFzc2VydCBub3Qgcy5kZWxl
dGVkCisgICAgICAgIHAgPSBkLmpvaW4oJ2RlbGV0ZWZpbGUnKQorICAgICAgICBwLnJlbW92ZSgp
CisgICAgICAgIHMgPSBkLnN0YXR1cygpCisgICAgICAgIGFzc2VydCAnZGVsZXRlZmlsZScgbm90
IGluIHMudW5jaGFuZ2VkCisgICAgICAgIGFzc2VydCBbeC5iYXNlbmFtZSBmb3IgeCBpbiBzLmRl
bGV0ZWRdID09IFsnZGVsZXRlZmlsZSddCisKKyAgICBkZWYgdGVzdF9zdGF0dXNfbm9hdXRob3Io
c2VsZiwgcGF0aDEpOgorICAgICAgICAjIHRlc3RpbmcgZm9yIFhNTCB3aXRob3V0IGF1dGhvciAt
IHRoaXMgdXNlZCB0byByYWlzZSBhbiBleGNlcHRpb24KKyAgICAgICAgeG1sID0gJycnXAorICAg
ICAgICA8ZW50cnkgcGF0aD0iL3RtcC9weXRlc3QtMjMvd2MiPgorICAgICAgICA8d2Mtc3RhdHVz
IGl0ZW09Im5vcm1hbCIgcHJvcHM9Im5vbmUiIHJldmlzaW9uPSIwIj4KKyAgICAgICAgPGNvbW1p
dCByZXZpc2lvbj0iMCI+CisgICAgICAgIDxkYXRlPjIwMDgtMDgtMTlUMTY6NTA6NTMuNDAwMTk4
WjwvZGF0ZT4KKyAgICAgICAgPC9jb21taXQ+CisgICAgICAgIDwvd2Mtc3RhdHVzPgorICAgICAg
ICA8L2VudHJ5PgorICAgICAgICAnJycKKyAgICAgICAgWE1MV0NTdGF0dXMuZnJvbXN0cmluZyh4
bWwsIHBhdGgxKQorCisgICAgZGVmIHRlc3Rfc3RhdHVzX3dyb25nX3htbChzZWxmLCBwYXRoMSk6
CisgICAgICAgICMgdGVzdGluZyBmb3IgWE1MIHdpdGhvdXQgYXV0aG9yIC0gdGhpcyB1c2VkIHRv
IHJhaXNlIGFuIGV4Y2VwdGlvbgorICAgICAgICB4bWwgPSAnPGVudHJ5IHBhdGg9Ii9ob21lL2pl
YW4vem9wZS92ZW52L3Byb2plY3RkYi9wYXJ0cy9kZXZlbG9wbWVudC1wcm9kdWN0cy9EYXRhR3Jp
ZEZpZWxkIj5cbjx3Yy1zdGF0dXMgaXRlbT0iaW5jb21wbGV0ZSIgcHJvcHM9Im5vbmUiIHJldmlz
aW9uPSI3ODQiPlxuPC93Yy1zdGF0dXM+XG48L2VudHJ5PicKKyAgICAgICAgc3QgPSBYTUxXQ1N0
YXR1cy5mcm9tc3RyaW5nKHhtbCwgcGF0aDEpCisgICAgICAgIGFzc2VydCBsZW4oc3QuaW5jb21w
bGV0ZSkgPT0gMQorCisgICAgZGVmIHRlc3RfZGlmZihzZWxmLCBwYXRoMSk6CisgICAgICAgIHAg
PSBwYXRoMSAvICdhbm90aGVyZmlsZScKKyAgICAgICAgb3V0ID0gcC5kaWZmKHJldj0yKQorICAg
ICAgICBhc3NlcnQgb3V0LmZpbmQoJ2hlbGxvJykgIT0gLTEKKworICAgIGRlZiB0ZXN0X2JsYW1l
KHNlbGYsIHBhdGgxKToKKyAgICAgICAgcCA9IHBhdGgxLmpvaW4oJ3NhbXBsZXBpY2tsZScpCisg
ICAgICAgIGxpbmVzID0gcC5ibGFtZSgpCisgICAgICAgIGFzc2VydCBzdW0oW2xbMF0gZm9yIGwg
aW4gbGluZXNdKSA9PSBsZW4obGluZXMpCisgICAgICAgIGZvciBsMSwgbDIgaW4gemlwKHAucmVh
ZGxpbmVzKCksIFtsWzJdIGZvciBsIGluIGxpbmVzXSk6CisgICAgICAgICAgICBhc3NlcnQgbDEg
PT0gbDIKKyAgICAgICAgYXNzZXJ0IFtsWzFdIGZvciBsIGluIGxpbmVzXSA9PSBbJ2hwayddICog
bGVuKGxpbmVzKQorICAgICAgICBwID0gcGF0aDEuam9pbignc2FtcGxlZmlsZScpCisgICAgICAg
IGxpbmVzID0gcC5ibGFtZSgpCisgICAgICAgIGFzc2VydCBzdW0oW2xbMF0gZm9yIGwgaW4gbGlu
ZXNdKSA9PSBsZW4obGluZXMpCisgICAgICAgIGZvciBsMSwgbDIgaW4gemlwKHAucmVhZGxpbmVz
KCksIFtsWzJdIGZvciBsIGluIGxpbmVzXSk6CisgICAgICAgICAgICBhc3NlcnQgbDEgPT0gbDIK
KyAgICAgICAgYXNzZXJ0IFtsWzFdIGZvciBsIGluIGxpbmVzXSA9PSBbJ2hwayddICogbGVuKGxp
bmVzKQorCisgICAgZGVmIHRlc3Rfam9pbl9hYnMoc2VsZiwgcGF0aDEpOgorICAgICAgICBzID0g
c3RyKHBhdGgxLmxvY2FscGF0aCkKKyAgICAgICAgbiA9IHBhdGgxLmpvaW4ocywgYWJzPTEpCisg
ICAgICAgIGFzc2VydCBwYXRoMSA9PSBuCisKKyAgICBkZWYgdGVzdF9qb2luX2FiczIoc2VsZiwg
cGF0aDEpOgorICAgICAgICBhc3NlcnQgcGF0aDEuam9pbignc2FtcGxlZmlsZScsIGFicz0xKSA9
PSBwYXRoMS5qb2luKCdzYW1wbGVmaWxlJykKKworICAgIGRlZiB0ZXN0X3N0cl9naXZlc19sb2Nh
bHBhdGgoc2VsZiwgcGF0aDEpOgorICAgICAgICBhc3NlcnQgc3RyKHBhdGgxKSA9PSBzdHIocGF0
aDEubG9jYWxwYXRoKQorCisgICAgZGVmIHRlc3RfdmVyc2lvbmVkKHNlbGYsIHBhdGgxKToKKyAg
ICAgICAgYXNzZXJ0IHBhdGgxLmNoZWNrKHZlcnNpb25lZD0xKQorICAgICAgICAjIFRPRE86IFdo
eSBkb2VzIG15IGNvcHkgb2Ygc3ZuIHRoaW5rIC5zdm4gaXMgdmVyc2lvbmVkPworICAgICAgICAj
YXNzZXJ0IHBhdGgxLmpvaW4oJy5zdm4nKS5jaGVjayh2ZXJzaW9uZWQ9MCkKKyAgICAgICAgYXNz
ZXJ0IHBhdGgxLmpvaW4oJ3NhbXBsZWZpbGUnKS5jaGVjayh2ZXJzaW9uZWQ9MSkKKyAgICAgICAg
YXNzZXJ0IG5vdCBwYXRoMS5qb2luKCdub3RleGlzdGluZycpLmNoZWNrKHZlcnNpb25lZD0xKQor
ICAgICAgICBub3RleGlzdGluZyA9IHBhdGgxLmpvaW4oJ2hlbGxvJykubG9jYWxwYXRoCisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIG5vdGV4aXN0aW5nLndyaXRlKCIiKQorICAgICAgICAgICAg
YXNzZXJ0IHBhdGgxLmpvaW4oJ2hlbGxvJykuY2hlY2sodmVyc2lvbmVkPTApCisgICAgICAgIGZp
bmFsbHk6CisgICAgICAgICAgICBub3RleGlzdGluZy5yZW1vdmUoKQorCisgICAgZGVmIHRlc3Rf
bGlzdGRpcl92ZXJzaW9uZWQoc2VsZiwgcGF0aDEpOgorICAgICAgICBhc3NlcnQgcGF0aDEuY2hl
Y2sodmVyc2lvbmVkPTEpCisgICAgICAgIHAgPSBwYXRoMS5sb2NhbHBhdGguZW5zdXJlKCJub3Rf
YV92ZXJzaW9uZWRfZmlsZSIpCisgICAgICAgIGwgPSBbeC5sb2NhbHBhdGgKKyAgICAgICAgICAg
ICAgICBmb3IgeCBpbiBwYXRoMS5saXN0ZGlyKGxhbWJkYSB4OiB4LmNoZWNrKHZlcnNpb25lZD1U
cnVlKSldCisgICAgICAgIGFzc2VydCBwIG5vdCBpbiBsCisKKyAgICBkZWYgdGVzdF9ub252ZXJz
aW9uZWRfcmVtb3ZlKHNlbGYsIHBhdGgxKToKKyAgICAgICAgYXNzZXJ0IHBhdGgxLmNoZWNrKHZl
cnNpb25lZD0xKQorICAgICAgICBzb21lZmlsZSA9IHBhdGgxLmpvaW4oJ25vbnZlcnNpb25lZC9z
b21lZmlsZScpCisgICAgICAgIG5vbndjID0gcHkucGF0aC5sb2NhbChzb21lZmlsZSkKKyAgICAg
ICAgbm9ud2MuZW5zdXJlKCkKKyAgICAgICAgYXNzZXJ0IHNvbWVmaWxlLmNoZWNrKCkKKyAgICAg
ICAgYXNzZXJ0IG5vdCBzb21lZmlsZS5jaGVjayh2ZXJzaW9uZWQ9VHJ1ZSkKKyAgICAgICAgc29t
ZWZpbGUucmVtb3ZlKCkgIyB0aGlzIHVzZWQgdG8gZmFpbCBiZWNhdXNlIGl0IHRyaWVkIHRvICdz
dm4gcm0nCisKKyAgICBkZWYgdGVzdF9wcm9wZXJ0aWVzKHNlbGYsIHBhdGgxKToKKyAgICAgICAg
dHJ5OgorICAgICAgICAgICAgcGF0aDEucHJvcHNldCgnZ2FnYScsICd0aGlzJykKKyAgICAgICAg
ICAgIGFzc2VydCBwYXRoMS5wcm9wZ2V0KCdnYWdhJykgPT0gJ3RoaXMnCisgICAgICAgICAgICAj
IENvbXBhcmluZyBqdXN0IHRoZSBmaWxlIG5hbWVzLCBiZWNhdXNlIHBhdGhzIGFyZSB1bnByZWRp
Y3RhYmxlCisgICAgICAgICAgICAjIG9uIFdpbmRvd3MuIChsb25nIHZzLiA4LjMgcGF0aHMpCisg
ICAgICAgICAgICBhc3NlcnQgcGF0aDEuYmFzZW5hbWUgaW4gW2l0ZW0uYmFzZW5hbWUgZm9yIGl0
ZW0gaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoMS5zdGF0
dXMoKS5wcm9wX21vZGlmaWVkXQorICAgICAgICAgICAgYXNzZXJ0ICdnYWdhJyBpbiBwYXRoMS5w
cm9wbGlzdCgpCisgICAgICAgICAgICBhc3NlcnQgcGF0aDEucHJvcGxpc3QoKVsnZ2FnYSddID09
ICd0aGlzJworCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBwYXRoMS5wcm9wZGVsKCdn
YWdhJykKKworICAgIGRlZiB0ZXN0X3Byb3BsaXN0X3JlY3Vyc2l2ZShzZWxmLCBwYXRoMSk6Cisg
ICAgICAgIHMgPSBwYXRoMS5qb2luKCdzYW1wbGVmaWxlJykKKyAgICAgICAgcy5wcm9wc2V0KCdn
dWd1JywgJ3RoYXQnKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBwID0gcGF0aDEucHJvcGxp
c3QocmVjPTEpCisgICAgICAgICAgICAjIENvbXBhcmluZyBqdXN0IHRoZSBmaWxlIG5hbWVzLCBi
ZWNhdXNlIHBhdGhzIGFyZSB1bnByZWRpY3RhYmxlCisgICAgICAgICAgICAjIG9uIFdpbmRvd3Mu
IChsb25nIHZzLiA4LjMgcGF0aHMpCisgICAgICAgICAgICBhc3NlcnQgKHBhdGgxIC8gJ3NhbXBs
ZWZpbGUnKS5iYXNlbmFtZSBpbiBbaXRlbS5iYXNlbmFtZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpdGVtIGluIHBd
CisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzLnByb3BkZWwoJ2d1Z3UnKQorCisgICAg
ZGVmIHRlc3RfbG9uZ19wcm9wZXJ0aWVzKHNlbGYsIHBhdGgxKToKKyAgICAgICAgdmFsdWUgPSAi
IiIKKyAgICAgICAgdmFkbTpwb3NpeCA6IHJvb3Qgcm9vdCAwMTAwNzU1CisgICAgICAgIFByb3Bl
cnRpZXMgb24gJ2Nocm9vdC9kbnMvdmFyL2JpbmQvZGIubmV0LnhvdHMnOgorICAgICAgICAgICAg
ICAgICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICBwYXRoMS5wcm9wc2V0KCdnYWdhJywg
dmFsdWUpCisgICAgICAgICAgICBiYWNrdmFsdWUgPSBwYXRoMS5wcm9wZ2V0KCdnYWdhJykKKyAg
ICAgICAgICAgIGFzc2VydCBiYWNrdmFsdWUgPT0gdmFsdWUKKyAgICAgICAgICAgICNhc3NlcnQg
bGVuKGJhY2t2YWx1ZS5zcGxpdCgnXG4nKSkgPT0gMQorICAgICAgICBmaW5hbGx5OgorICAgICAg
ICAgICAgcGF0aDEucHJvcGRlbCgnZ2FnYScpCisKKworICAgIGRlZiB0ZXN0X2Vuc3VyZShzZWxm
LCBwYXRoMSk6CisgICAgICAgIG5ld3BhdGggPSBwYXRoMS5lbnN1cmUoJ2EnLCAnYicsICdjJykK
KyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYXNzZXJ0IG5ld3BhdGguY2hlY2soZXhpc3RzPTEs
IHZlcnNpb25lZD0xKQorICAgICAgICAgICAgbmV3cGF0aC53cml0ZSgiaGVsbG8iKQorICAgICAg
ICAgICAgbmV3cGF0aC5lbnN1cmUoKQorICAgICAgICAgICAgYXNzZXJ0IG5ld3BhdGgucmVhZCgp
ID09ICJoZWxsbyIKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHBhdGgxLmpvaW4oJ2En
KS5yZW1vdmUoZm9yY2U9MSkKKworICAgIGRlZiB0ZXN0X25vdF92ZXJzaW9uZWQoc2VsZiwgcGF0
aDEpOgorICAgICAgICBwID0gcGF0aDEubG9jYWxwYXRoLm1rZGlyKCd3aGF0ZXZlcicpCisgICAg
ICAgIGYgPSBwYXRoMS5sb2NhbHBhdGguZW5zdXJlKCd0ZXN0Y3JlYXRlZGZpbGUnKQorICAgICAg
ICB0cnk6CisgICAgICAgICAgICBhc3NlcnQgcGF0aDEuam9pbignd2hhdGV2ZXInKS5jaGVjayh2
ZXJzaW9uZWQ9MCkKKyAgICAgICAgICAgIGFzc2VydCBwYXRoMS5qb2luKCd0ZXN0Y3JlYXRlZGZp
bGUnKS5jaGVjayh2ZXJzaW9uZWQ9MCkKKyAgICAgICAgICAgIGFzc2VydCBub3QgcGF0aDEuam9p
bigndGVzdGNyZWF0ZWRmaWxlJykuY2hlY2sodmVyc2lvbmVkPTEpCisgICAgICAgIGZpbmFsbHk6
CisgICAgICAgICAgICBwLnJlbW92ZShyZWM9MSkKKyAgICAgICAgICAgIGYucmVtb3ZlKCkKKwor
ICAgIGRlZiB0ZXN0X2xvY2tfdW5sb2NrKHNlbGYsIHBhdGgxKToKKyAgICAgICAgcm9vdCA9IHBh
dGgxCisgICAgICAgIHNvbWVmaWxlID0gcm9vdC5qb2luKCdzb21lZmlsZScpCisgICAgICAgIHNv
bWVmaWxlLmVuc3VyZShmaWxlPVRydWUpCisgICAgICAgICMgbm90IHlldCBhZGRlZCB0byByZXBv
CisgICAgICAgIHB5LnRlc3QucmFpc2VzKEV4Y2VwdGlvbiwgJ3NvbWVmaWxlLmxvY2soKScpCisg
ICAgICAgIHNvbWVmaWxlLndyaXRlKCdmb28nKQorICAgICAgICBzb21lZmlsZS5jb21taXQoJ3Rl
c3QnKQorICAgICAgICBhc3NlcnQgc29tZWZpbGUuY2hlY2sodmVyc2lvbmVkPVRydWUpCisgICAg
ICAgIHNvbWVmaWxlLmxvY2soKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBsb2NrZWQgPSBy
b290LnN0YXR1cygpLmxvY2tlZAorICAgICAgICAgICAgYXNzZXJ0IGxlbihsb2NrZWQpID09IDEK
KyAgICAgICAgICAgIGFzc2VydCBsb2NrZWRbMF0uYmFzZW5hbWUgPT0gc29tZWZpbGUuYmFzZW5h
bWUKKyAgICAgICAgICAgIGFzc2VydCBsb2NrZWRbMF0uZGlycGF0aCgpLmJhc2VuYW1lID09IHNv
bWVmaWxlLmRpcnBhdGgoKS5iYXNlbmFtZQorICAgICAgICAgICAgI2Fzc2VydCBzb21lZmlsZS5s
b2NrZWQoKQorICAgICAgICAgICAgcHkudGVzdC5yYWlzZXMoRXhjZXB0aW9uLCAnc29tZWZpbGUu
bG9jaygpJykKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNvbWVmaWxlLnVubG9jaygp
CisgICAgICAgICNhc3NlcnQgbm90IHNvbWVmaWxlLmxvY2tlZCgpCisgICAgICAgIGxvY2tlZCA9
IHJvb3Quc3RhdHVzKCkubG9ja2VkCisgICAgICAgIGFzc2VydCBsb2NrZWQgPT0gW10KKyAgICAg
ICAgcHkudGVzdC5yYWlzZXMoRXhjZXB0aW9uLCAnc29tZWZpbGUsdW5sb2NrKCknKQorICAgICAg
ICBzb21lZmlsZS5yZW1vdmUoKQorCisgICAgZGVmIHRlc3RfY29tbWl0X25vbnJlY3Vyc2l2ZShz
ZWxmLCBwYXRoMSk6CisgICAgICAgIHNvbWVkaXIgPSBwYXRoMS5qb2luKCdzYW1wbGVkaXInKQor
ICAgICAgICBzb21lZGlyLm1rZGlyKCJzdWJzdWJkaXIiKQorICAgICAgICBzb21lZGlyLnByb3Bz
ZXQoJ2ZvbycsICdiYXInKQorICAgICAgICBzdGF0dXMgPSBzb21lZGlyLnN0YXR1cygpCisgICAg
ICAgIGFzc2VydCBsZW4oc3RhdHVzLnByb3BfbW9kaWZpZWQpID09IDEKKyAgICAgICAgYXNzZXJ0
IGxlbihzdGF0dXMuYWRkZWQpID09IDEKKworICAgICAgICBzb21lZGlyLmNvbW1pdCgnbm9uLXJl
Y3Vyc2l2ZSBjb21taXQnLCByZWM9MCkKKyAgICAgICAgc3RhdHVzID0gc29tZWRpci5zdGF0dXMo
KQorICAgICAgICBhc3NlcnQgbGVuKHN0YXR1cy5wcm9wX21vZGlmaWVkKSA9PSAwCisgICAgICAg
IGFzc2VydCBsZW4oc3RhdHVzLmFkZGVkKSA9PSAxCisKKyAgICAgICAgc29tZWRpci5jb21taXQo
J3JlY3Vyc2l2ZSBjb21taXQnKQorICAgICAgICBzdGF0dXMgPSBzb21lZGlyLnN0YXR1cygpCisg
ICAgICAgIGFzc2VydCBsZW4oc3RhdHVzLnByb3BfbW9kaWZpZWQpID09IDAKKyAgICAgICAgYXNz
ZXJ0IGxlbihzdGF0dXMuYWRkZWQpID09IDAKKworICAgIGRlZiB0ZXN0X2NvbW1pdF9yZXR1cm5f
dmFsdWUoc2VsZiwgcGF0aDEpOgorICAgICAgICB0ZXN0ZmlsZSA9IHBhdGgxLmpvaW4oJ3Rlc3Qu
dHh0JykuZW5zdXJlKGZpbGU9VHJ1ZSkKKyAgICAgICAgdGVzdGZpbGUud3JpdGUoJ3Rlc3QnKQor
ICAgICAgICByZXYgPSBwYXRoMS5jb21taXQoJ3Rlc3RpbmcnKQorICAgICAgICBhc3NlcnQgdHlw
ZShyZXYpID09IGludAorCisgICAgICAgIGFub3RoZXJmaWxlID0gcGF0aDEuam9pbignYW5vdGhl
ci50eHQnKS5lbnN1cmUoZmlsZT1UcnVlKQorICAgICAgICBhbm90aGVyZmlsZS53cml0ZSgndGVz
dCcpCisgICAgICAgIHJldjIgPSBwYXRoMS5jb21taXQoJ3Rlc3RpbmcgbW9yZScpCisgICAgICAg
IGFzc2VydCB0eXBlKHJldjIpID09IGludAorICAgICAgICBhc3NlcnQgcmV2MiA9PSByZXYgKyAx
CisKKyAgICAjZGVmIHRlc3RfbG9nKHNlbGYsIHBhdGgxKToKKyAgICAjICAgbCA9IHBhdGgxLmxv
ZygpCisgICAgIyAgIGFzc2VydCBsZW4obCkgPT0gMyAgIyBtaWdodCBuZWVkIHRvIGJlIHVwcGVk
IGlmIG1vcmUgdGVzdHMgYXJlIGFkZGVkCisKK2NsYXNzIFhUZXN0V0NTdm5Db21tYW5kUGF0aFNw
ZWNpYWw6CisKKyAgICByb290dXJsID0gJ2h0dHA6Ly9jb2Rlc3BlYWsubmV0L3N2bi9weS5wYXRo
L3RydW5rL2Rpc3QvcHkucGF0aC90ZXN0L2RhdGEnCisgICAgI2RlZiB0ZXN0X3VwZGF0ZV9ub25l
X3JldihzZWxmLCBwYXRoMSk6CisgICAgIyAgICBwYXRoID0gdG1wZGlyLmpvaW4oJ2NoZWNrb3V0
dGVzdCcpCisgICAgIyAgICB3Y3BhdGggPSBuZXdwYXRoKHhzdm53Yz1zdHIocGF0aCksIHVybD1w
YXRoMXVybCkKKyAgICAjICAgIHRyeToKKyAgICAjICAgICAgICB3Y3BhdGguY2hlY2tvdXQocmV2
PTIxMDApCisgICAgIyAgICAgICAgd2NwYXRoLnVwZGF0ZSgpCisgICAgIyAgICAgICAgYXNzZXJ0
IHdjcGF0aC5pbmZvKCkucmV2ID4gMjEwMAorICAgICMgICAgZmluYWxseToKKyAgICAjICAgICAg
ICB3Y3BhdGgubG9jYWxwYXRoLnJlbW92ZShyZWM9MSkKKworZGVmIHRlc3RfcGFyc2Vfd2NpbmZv
dGltZSgpOgorICAgIGFzc2VydCAocGFyc2Vfd2NpbmZvdGltZSgnMjAwNi0wNS0zMCAyMDo0NToy
NiArMDIwMCAoVHVlLCAzMCBNYXkgMjAwNiknKSA9PQorICAgICAgICAgICAgMTE0OTAyMTkyNikK
KyAgICBhc3NlcnQgKHBhcnNlX3djaW5mb3RpbWUoJzIwMDMtMTAtMjcgMjA6NDM6MTQgKzAxMDAg
KE1vbiwgMjcgT2N0IDIwMDMpJykgPT0KKyAgICAgICAgICAgIDEwNjcyODczOTQpCisKK2NsYXNz
IFRlc3RJbmZvU3ZuV0NDb21tYW5kOgorCisgICAgZGVmIHRlc3Rfc3ZuXzFfMihzZWxmLCBwYXRo
MSk6CisgICAgICAgIG91dHB1dCA9ICIiIgorICAgICAgICBQYXRoOiB0ZXN0X3N2bndjLnB5Cisg
ICAgICAgIE5hbWU6IHRlc3Rfc3Zud2MucHkKKyAgICAgICAgVVJMOiBodHRwOi8vY29kZXNwZWFr
Lm5ldC9zdm4vcHkvZGlzdC9weS9wYXRoL3N2bi93Y2NvbW1hbmQucHkKKyAgICAgICAgUmVwb3Np
dG9yeSBVVUlEOiBmZDBkN2JmMi1kZmI2LTAzMTAtOGQzMS1iN2VjZmU5NmFhZGEKKyAgICAgICAg
UmV2aXNpb246IDI4MTM3CisgICAgICAgIE5vZGUgS2luZDogZmlsZQorICAgICAgICBTY2hlZHVs
ZTogbm9ybWFsCisgICAgICAgIExhc3QgQ2hhbmdlZCBBdXRob3I6IGphbgorICAgICAgICBMYXN0
IENoYW5nZWQgUmV2OiAyNzkzOQorICAgICAgICBMYXN0IENoYW5nZWQgRGF0ZTogMjAwNi0wNS0z
MCAyMDo0NToyNiArMDIwMCAoVHVlLCAzMCBNYXkgMjAwNikKKyAgICAgICAgVGV4dCBMYXN0IFVw
ZGF0ZWQ6IDIwMDYtMDYtMDEgMDA6NDI6NTMgKzAyMDAgKFRodSwgMDEgSnVuIDIwMDYpCisgICAg
ICAgIFByb3BlcnRpZXMgTGFzdCBVcGRhdGVkOiAyMDA2LTA1LTIzIDExOjU0OjU5ICswMjAwIChU
dWUsIDIzIE1heSAyMDA2KQorICAgICAgICBDaGVja3N1bTogMzU3ZTQ0ODgwZTVkODAxNTdjYzVm
YmMzY2U5ODIyZTMKKyAgICAgICAgIiIiCisgICAgICAgIHBhdGggPSBweS5wYXRoLmxvY2FsKF9f
ZmlsZV9fKS5kaXJwYXRoKCkuY2hkaXIoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBpbmZv
ID0gSW5mb1N2bldDQ29tbWFuZChvdXRwdXQpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAg
ICBwYXRoLmNoZGlyKCkKKyAgICAgICAgYXNzZXJ0IGluZm8ubGFzdF9hdXRob3IgPT0gJ2phbicK
KyAgICAgICAgYXNzZXJ0IGluZm8ua2luZCA9PSAnZmlsZScKKyAgICAgICAgYXNzZXJ0IGluZm8u
bXRpbWUgPT0gMTE0OTAyMTkyNi4wCisgICAgICAgIGFzc2VydCBpbmZvLnVybCA9PSAnaHR0cDov
L2NvZGVzcGVhay5uZXQvc3ZuL3B5L2Rpc3QvcHkvcGF0aC9zdm4vd2Njb21tYW5kLnB5JworICAg
ICAgICBhc3NlcnQgaW5mby50aW1lID09IDExNDkwMjE5MjYwMDAwMDAuMAorICAgICAgICBhc3Nl
cnQgaW5mby5yZXYgPT0gMjgxMzcKKworCisgICAgZGVmIHRlc3Rfc3ZuXzFfMyhzZWxmLCBwYXRo
MSk6CisgICAgICAgIG91dHB1dCA9ICIiIgorICAgICAgICBQYXRoOiB0ZXN0X3N2bndjLnB5Cisg
ICAgICAgIE5hbWU6IHRlc3Rfc3Zud2MucHkKKyAgICAgICAgVVJMOiBodHRwOi8vY29kZXNwZWFr
Lm5ldC9zdm4vcHkvZGlzdC9weS9wYXRoL3N2bi93Y2NvbW1hbmQucHkKKyAgICAgICAgUmVwb3Np
dG9yeSBSb290OiBodHRwOi8vY29kZXNwZWFrLm5ldC9zdm4KKyAgICAgICAgUmVwb3NpdG9yeSBV
VUlEOiBmZDBkN2JmMi1kZmI2LTAzMTAtOGQzMS1iN2VjZmU5NmFhZGEKKyAgICAgICAgUmV2aXNp
b246IDI4MTI0CisgICAgICAgIE5vZGUgS2luZDogZmlsZQorICAgICAgICBTY2hlZHVsZTogbm9y
bWFsCisgICAgICAgIExhc3QgQ2hhbmdlZCBBdXRob3I6IGphbgorICAgICAgICBMYXN0IENoYW5n
ZWQgUmV2OiAyNzkzOQorICAgICAgICBMYXN0IENoYW5nZWQgRGF0ZTogMjAwNi0wNS0zMCAyMDo0
NToyNiArMDIwMCAoVHVlLCAzMCBNYXkgMjAwNikKKyAgICAgICAgVGV4dCBMYXN0IFVwZGF0ZWQ6
IDIwMDYtMDYtMDIgMjM6NDY6MTEgKzAyMDAgKEZyaSwgMDIgSnVuIDIwMDYpCisgICAgICAgIFBy
b3BlcnRpZXMgTGFzdCBVcGRhdGVkOiAyMDA2LTA2LTAyIDIzOjQ1OjI4ICswMjAwIChGcmksIDAy
IEp1biAyMDA2KQorICAgICAgICBDaGVja3N1bTogMzU3ZTQ0ODgwZTVkODAxNTdjYzVmYmMzY2U5
ODIyZTMKKyAgICAgICAgIiIiCisgICAgICAgIHBhdGggPSBweS5wYXRoLmxvY2FsKF9fZmlsZV9f
KS5kaXJwYXRoKCkuY2hkaXIoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBpbmZvID0gSW5m
b1N2bldDQ29tbWFuZChvdXRwdXQpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBwYXRo
LmNoZGlyKCkKKyAgICAgICAgYXNzZXJ0IGluZm8ubGFzdF9hdXRob3IgPT0gJ2phbicKKyAgICAg
ICAgYXNzZXJ0IGluZm8ua2luZCA9PSAnZmlsZScKKyAgICAgICAgYXNzZXJ0IGluZm8ubXRpbWUg
PT0gMTE0OTAyMTkyNi4wCisgICAgICAgIGFzc2VydCBpbmZvLnVybCA9PSAnaHR0cDovL2NvZGVz
cGVhay5uZXQvc3ZuL3B5L2Rpc3QvcHkvcGF0aC9zdm4vd2Njb21tYW5kLnB5JworICAgICAgICBh
c3NlcnQgaW5mby5yZXYgPT0gMjgxMjQKKyAgICAgICAgYXNzZXJ0IGluZm8udGltZSA9PSAxMTQ5
MDIxOTI2MDAwMDAwLjAKKworCitkZWYgdGVzdF9jaGFyYWN0ZXJzX2F0KCk6CisgICAgcHkudGVz
dC5yYWlzZXMoVmFsdWVFcnJvciwgInB5LnBhdGguc3Zud2MoJy90bXAvQEBAOicpIikKKworZGVm
IHRlc3RfY2hhcmFjdGVyc190aWxkZSgpOgorICAgIHB5LnBhdGguc3Zud2MoJy90bXAvdGVzdH4n
KQorCisKK2NsYXNzIFRlc3RSZXBvOgorICAgIGRlZiB0ZXN0X3RyYWlsaW5nX3NsYXNoX2lzX3N0
cmlwcGVkKHNlbGYsIHBhdGgxKToKKyAgICAgICAgIyBYWFggd2UgbmVlZCB0byB0ZXN0IG1vcmUg
bm9ybWFsaXppbmcgcHJvcGVydGllcworICAgICAgICB1cmwgPSBwYXRoMS5qb2luKCIvIikKKyAg
ICAgICAgYXNzZXJ0IHBhdGgxID09IHVybAorCisgICAgI2RlZiB0ZXN0X2RpZmZlcmVudF9yZXZz
X2NvbXBhcmVfdW5lcXVhbChzZWxmLCBwYXRoMSk6CisgICAgIyAgICBuZXdwYXRoID0gcGF0aDEu
bmV3KHJldj0xMTk5KQorICAgICMgICAgYXNzZXJ0IG5ld3BhdGggIT0gcGF0aDEKKworICAgIGRl
ZiB0ZXN0X2V4aXN0c19zdm5fcm9vdChzZWxmLCBwYXRoMSk6CisgICAgICAgIGFzc2VydCBwYXRo
MS5jaGVjaygpCisKKyAgICAjZGVmIHRlc3Rfbm90X2V4aXN0c19yZXYoc2VsZiwgcGF0aDEpOgor
ICAgICMgICAgdXJsID0gcGF0aDEuX19jbGFzc19fKHBhdGgxdXJsLCByZXY9NTAwKQorICAgICMg
ICAgYXNzZXJ0IHVybC5jaGVjayhleGlzdHM9MCkKKworICAgICNkZWYgdGVzdF9ub25leGlzdGlu
Z19saXN0ZGlyX3JldihzZWxmLCBwYXRoMSk6CisgICAgIyAgICB1cmwgPSBwYXRoMS5fX2NsYXNz
X18ocGF0aDF1cmwsIHJldj01MDApCisgICAgIyAgICByYWlzZXMocHkuZXJyb3IuRU5PRU5ULCB1
cmwubGlzdGRpcikKKworICAgICNkZWYgdGVzdF9uZXdyZXYoc2VsZiwgcGF0aDEpOgorICAgICMg
ICAgdXJsID0gcGF0aDEubmV3KHJldj1Ob25lKQorICAgICMgICAgYXNzZXJ0IHVybC5yZXYgPT0g
Tm9uZQorICAgICMgICAgYXNzZXJ0IHVybC5zdHJwYXRoID09IHBhdGgxLnN0cnBhdGgKKyAgICAj
ICAgIHVybCA9IHBhdGgxLm5ldyhyZXY9MTApCisgICAgIyAgICBhc3NlcnQgdXJsLnJldiA9PSAx
MAorCisgICAgI2RlZiB0ZXN0X2luZm9fcmV2KHNlbGYsIHBhdGgxKToKKyAgICAjICAgIHVybCA9
IHBhdGgxLl9fY2xhc3NfXyhwYXRoMXVybCwgcmV2PTExNTUpCisgICAgIyAgICB1cmwgPSB1cmwu
am9pbigic2FtcGxlZmlsZSIpCisgICAgIyAgICByZXMgPSB1cmwuaW5mbygpCisgICAgIyAgICBh
c3NlcnQgcmVzLnNpemUgPiBsZW4oInNhbXBsZWZpbGUiKSBhbmQgcmVzLmNyZWF0ZWRfcmV2ID09
IDExNTUKKworICAgICMgdGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgZWFzaWVyIGlmIHdlIGhhdmUg
YSBwYXRoIGNsYXNzCisgICAgZGVmIHRlc3RfcmVwb2NhY2hlX3NpbXBsZShzZWxmLCBwYXRoMSk6
CisgICAgICAgIHJlcG9jYWNoZSA9IHN2bmNvbW1vbi5SZXBvQ2FjaGUoKQorICAgICAgICByZXBv
Y2FjaGUucHV0KHBhdGgxLnN0cnBhdGgsIDQyKQorICAgICAgICB1cmwsIHJldiA9IHJlcG9jYWNo
ZS5nZXQocGF0aDEuam9pbigndGVzdCcpLnN0cnBhdGgpCisgICAgICAgIGFzc2VydCByZXYgPT0g
NDIKKyAgICAgICAgYXNzZXJ0IHVybCA9PSBwYXRoMS5zdHJwYXRoCisKKyAgICBkZWYgdGVzdF9y
ZXBvY2FjaGVfbm90aW1lb3V0KHNlbGYsIHBhdGgxKToKKyAgICAgICAgcmVwb2NhY2hlID0gc3Zu
Y29tbW9uLlJlcG9DYWNoZSgpCisgICAgICAgIHJlcG9jYWNoZS50aW1lb3V0ID0gMAorICAgICAg
ICByZXBvY2FjaGUucHV0KHBhdGgxLnN0cnBhdGgsIHBhdGgxLnJldikKKyAgICAgICAgdXJsLCBy
ZXYgPSByZXBvY2FjaGUuZ2V0KHBhdGgxLnN0cnBhdGgpCisgICAgICAgIGFzc2VydCByZXYgPT0g
LTEKKyAgICAgICAgYXNzZXJ0IHVybCA9PSBwYXRoMS5zdHJwYXRoCisKKyAgICBkZWYgdGVzdF9y
ZXBvY2FjaGVfb3V0ZGF0ZWQoc2VsZiwgcGF0aDEpOgorICAgICAgICByZXBvY2FjaGUgPSBzdm5j
b21tb24uUmVwb0NhY2hlKCkKKyAgICAgICAgcmVwb2NhY2hlLnB1dChwYXRoMS5zdHJwYXRoLCA0
MiwgdGltZXN0YW1wPTApCisgICAgICAgIHVybCwgcmV2ID0gcmVwb2NhY2hlLmdldChwYXRoMS5q
b2luKCd0ZXN0Jykuc3RycGF0aCkKKyAgICAgICAgYXNzZXJ0IHJldiA9PSAtMQorICAgICAgICBh
c3NlcnQgdXJsID09IHBhdGgxLnN0cnBhdGgKKworICAgIGRlZiBfdGVzdF9nZXRyZXBvcmV2KHNl
bGYpOgorICAgICAgICAiIiIgdGhpcyB0ZXN0IHJ1bnMgc28gc2xvdyBpdCdzIHVzdWFsbHkgZGlz
YWJsZWQgIiIiCisgICAgICAgIG9sZCA9IHN2bmNvbW1vbi5yZXBvc2l0b3JpZXMucmVwb3MKKyAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgX3JlcG9jYWNoZS5jbGVhcigpCisgICAgICAgICAgICBy
b290ID0gcGF0aDEubmV3KHJldj0tMSkKKyAgICAgICAgICAgIHVybCwgcmV2ID0gY2FjaGUucmVw
b2NhY2hlLmdldChyb290LnN0cnBhdGgpCisgICAgICAgICAgICBhc3NlcnQgcmV2Pj0wCisgICAg
ICAgICAgICBhc3NlcnQgdXJsID09IHN2bnJlcG91cmwKKyAgICAgICAgZmluYWxseToKKyAgICAg
ICAgICAgIHJlcG9zaXRvcmllcy5yZXBvcyA9IG9sZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0
aW5nL3BhdGgvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcGF0aC93M2MtaW1wb3J0
LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41NzExMWQ2NzFmNjhhODBmZWQyMWJhYTg1YTg5MTI0NTk0MTZmODBk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvdzNjLWltcG9ydC5sb2cK
QEAgLTAsMCArMSwyNSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0
ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRp
cmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUg
V1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwor
CitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0
byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQor
UHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvY29tbW9uLnB5
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvY29uZnRlc3QucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcGF0
aC9yZXBvdGVzdC5kdW1wCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvc3ZudGVzdGJhc2UucHkKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L3Rlc3RpbmcvcGF0aC90ZXN0X2NhY2hldXRpbC5weQorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9w
YXRoL3Rlc3RfbG9jYWwucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcGF0aC90ZXN0X3N2bmF1dGgucHkK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3Rlc3RpbmcvcGF0aC90ZXN0X3N2bnVybC5weQorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9w
YXRoL3Rlc3Rfc3Zud2MucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wcm9jZXNzL19f
aW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Byb2Nlc3MvX19pbml0X18ucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzkyZDYwMDU0ODllYmVlNjJjZGUwMjA2NmYxOWM1NTIxZTYyMDQ1MQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvdGVzdGluZy9wcm9jZXNzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEgQEAK
KyMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wcm9jZXNzL3Rlc3RfY21kZXhlYy5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvdGVzdGluZy9wcm9jZXNzL3Rlc3RfY21kZXhlYy5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODQ2
M2Q5MDZkMTUxYjBiOGQzNzVmNWJiY2RiMmMwMjc4MzM1MTA4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS90ZXN0aW5nL3Byb2Nlc3MvdGVzdF9jbWRleGVjLnB5CkBAIC0wLDAgKzEsNDEgQEAK
K2ltcG9ydCBweQorZnJvbSBweS5wcm9jZXNzIGltcG9ydCBjbWRleGVjCisKK2RlZiBleHZhbHVl
KCk6CisgICAgaW1wb3J0IHN5cworICAgIHJldHVybiBzeXMuZXhjX2luZm8oKVsxXQorCisKK2Ns
YXNzIFRlc3RfZXhlY19jbWQ6CisgICAgZGVmIHRlc3Rfc2ltcGxlKHNlbGYpOgorICAgICAgICBv
dXQgPSBjbWRleGVjKCdlY2hvIGhhbGxvJykKKyAgICAgICAgYXNzZXJ0IG91dC5zdHJpcCgpID09
ICdoYWxsbycKKyAgICAgICAgYXNzZXJ0IHB5LmJ1aWx0aW4uX2lzdGV4dChvdXQpCisKKyAgICBk
ZWYgdGVzdF9zaW1wbGVfbmV3bGluZShzZWxmKToKKyAgICAgICAgaW1wb3J0IHN5cworICAgICAg
ICBvdXQgPSBjbWRleGVjKHIiIiIlcyAtYyAicHJpbnQgKCdoZWxsbycpIiAiIiIgJSBzeXMuZXhl
Y3V0YWJsZSkKKyAgICAgICAgYXNzZXJ0IG91dCA9PSAnaGVsbG9cbicKKyAgICAgICAgYXNzZXJ0
IHB5LmJ1aWx0aW4uX2lzdGV4dChvdXQpCisKKyAgICBkZWYgdGVzdF9zaW1wbGVfZXJyb3Ioc2Vs
Zik6CisgICAgICAgIHB5LnRlc3QucmFpc2VzKGNtZGV4ZWMuRXJyb3IsIGNtZGV4ZWMsICdleGl0
IDEnKQorCisgICAgZGVmIHRlc3Rfc2ltcGxlX2Vycm9yX2V4YWN0X3N0YXR1cyhzZWxmKToKKyAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgY21kZXhlYygnZXhpdCAxJykKKyAgICAgICAgZXhjZXB0
IGNtZGV4ZWMuRXJyb3I6CisgICAgICAgICAgICBlID0gZXh2YWx1ZSgpCisgICAgICAgICAgICBh
c3NlcnQgZS5zdGF0dXMgPT0gMQorICAgICAgICAgICAgYXNzZXJ0IHB5LmJ1aWx0aW4uX2lzdGV4
dChlLm91dCkKKyAgICAgICAgICAgIGFzc2VydCBweS5idWlsdGluLl9pc3RleHQoZS5lcnIpCisK
KyAgICBkZWYgdGVzdF9lcnIoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGNtZGV4
ZWMoJ2VjaG9xd2Vxd2UxMjMgaGFsbG8nKQorICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJy
b3IoImNvbW1hbmQgc3VjY2VlZGVkIGJ1dCBzaG91bGRuJ3QiKQorICAgICAgICBleGNlcHQgY21k
ZXhlYy5FcnJvcjoKKyAgICAgICAgICAgIGUgPSBleHZhbHVlKCkKKyAgICAgICAgICAgIGFzc2Vy
dCBoYXNhdHRyKGUsICdlcnInKQorICAgICAgICAgICAgYXNzZXJ0IGhhc2F0dHIoZSwgJ291dCcp
CisgICAgICAgICAgICBhc3NlcnQgZS5lcnIgb3IgZS5vdXQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkv
dGVzdGluZy9wcm9jZXNzL3Rlc3RfZm9ya2VkZnVuYy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wcm9j
ZXNzL3Rlc3RfZm9ya2VkZnVuYy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZTBkOWFiN2U2ZDc0OTQ4NTBiODEx
N2FmMTkyZjBlODQ0NTMxMWVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3By
b2Nlc3MvdGVzdF9mb3JrZWRmdW5jLnB5CkBAIC0wLDAgKzEsMTczIEBACitpbXBvcnQgcHl0ZXN0
CitpbXBvcnQgcHksIHN5cywgb3MKKworcHl0ZXN0bWFyayA9IHB5LnRlc3QubWFyay5za2lwaWYo
Im5vdCBoYXNhdHRyKG9zLCAnZm9yaycpIikKKworCitkZWYgdGVzdF93YWl0ZmluaXNoX3JlbW92
ZXNfdGVtcGRpcigpOgorICAgIGZmID0gcHkucHJvY2Vzcy5Gb3JrZWRGdW5jKGJveGYxKQorICAg
IGFzc2VydCBmZi50ZW1wZGlyLmNoZWNrKCkKKyAgICBmZi53YWl0ZmluaXNoKCkKKyAgICBhc3Nl
cnQgbm90IGZmLnRlbXBkaXIuY2hlY2soKQorCitkZWYgdGVzdF90ZW1wZGlyX2dldHNfZ2NfY29s
bGVjdGVkKG1vbmtleXBhdGNoKToKKyAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG9zLCAnZm9yaycs
IGxhbWJkYTogb3MuZ2V0cGlkKCkpCisgICAgZmYgPSBweS5wcm9jZXNzLkZvcmtlZEZ1bmMoYm94
ZjEpCisgICAgYXNzZXJ0IGZmLnRlbXBkaXIuY2hlY2soKQorICAgIGZmLl9fZGVsX18oKQorICAg
IGFzc2VydCBub3QgZmYudGVtcGRpci5jaGVjaygpCisKK2RlZiB0ZXN0X2Jhc2ljX2ZvcmtlZGZ1
bmMoKToKKyAgICByZXN1bHQgPSBweS5wcm9jZXNzLkZvcmtlZEZ1bmMoYm94ZjEpLndhaXRmaW5p
c2goKQorICAgIGFzc2VydCByZXN1bHQub3V0ID09ICJzb21lIG91dFxuIgorICAgIGFzc2VydCBy
ZXN1bHQuZXJyID09ICJzb21lIGVyclxuIgorICAgIGFzc2VydCByZXN1bHQuZXhpdHN0YXR1cyA9
PSAwCisgICAgYXNzZXJ0IHJlc3VsdC5zaWduYWwgPT0gMAorICAgIGFzc2VydCByZXN1bHQucmV0
dmFsID09IDEKKworZGVmIHRlc3RfZXhpdHN0YXR1cygpOgorICAgIGRlZiBmdW5jKCk6CisgICAg
ICAgIG9zLl9leGl0KDQpCisgICAgcmVzdWx0ID0gcHkucHJvY2Vzcy5Gb3JrZWRGdW5jKGZ1bmMp
LndhaXRmaW5pc2goKQorICAgIGFzc2VydCByZXN1bHQuZXhpdHN0YXR1cyA9PSA0CisgICAgYXNz
ZXJ0IHJlc3VsdC5zaWduYWwgPT0gMAorICAgIGFzc2VydCBub3QgcmVzdWx0Lm91dAorICAgIGFz
c2VydCBub3QgcmVzdWx0LmVycgorCitkZWYgdGVzdF9leGVjcHRpb25faW5fZnVuYygpOgorICAg
IGRlZiBmdW4oKToKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcig0MikKKyAgICBmZiA9IHB5LnBy
b2Nlc3MuRm9ya2VkRnVuYyhmdW4pCisgICAgcmVzdWx0ID0gZmYud2FpdGZpbmlzaCgpCisgICAg
YXNzZXJ0IHJlc3VsdC5leGl0c3RhdHVzID09IGZmLkVYSVRTVEFUVVNfRVhDRVBUSU9OCisgICAg
YXNzZXJ0IHJlc3VsdC5lcnIuZmluZCgiVmFsdWVFcnJvcjogNDIiKSAhPSAtMQorICAgIGFzc2Vy
dCByZXN1bHQuc2lnbmFsID09IDAKKyAgICBhc3NlcnQgbm90IHJlc3VsdC5yZXR2YWwKKworZGVm
IHRlc3RfZm9ya2VkZnVuY19vbl9mZHMoKToKKyAgICByZXN1bHQgPSBweS5wcm9jZXNzLkZvcmtl
ZEZ1bmMoYm94ZjIpLndhaXRmaW5pc2goKQorICAgIGFzc2VydCByZXN1bHQub3V0ID09ICJzb21l
b3V0IgorICAgIGFzc2VydCByZXN1bHQuZXJyID09ICJzb21lZXJyIgorICAgIGFzc2VydCByZXN1
bHQuZXhpdHN0YXR1cyA9PSAwCisgICAgYXNzZXJ0IHJlc3VsdC5zaWduYWwgPT0gMAorICAgIGFz
c2VydCByZXN1bHQucmV0dmFsID09IDIKKworZGVmIHRlc3RfZm9ya2VkZnVuY19vbl9mZHNfb3V0
cHV0KCk6CisgICAgcmVzdWx0ID0gcHkucHJvY2Vzcy5Gb3JrZWRGdW5jKGJveGYzKS53YWl0Zmlu
aXNoKCkKKyAgICBhc3NlcnQgcmVzdWx0LnNpZ25hbCA9PSAxMQorICAgIGFzc2VydCByZXN1bHQu
b3V0ID09ICJzIgorCisKK2RlZiB0ZXN0X2ZvcmtlZGZ1bmNfb25fc3Rkb3V0KCk6CisgICAgZGVm
IGJveGYzKCk6CisgICAgICAgIGltcG9ydCBzeXMKKyAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgi
aGVsbG9cbiIpCisgICAgICAgIG9zLmtpbGwob3MuZ2V0cGlkKCksIDExKQorICAgIHJlc3VsdCA9
IHB5LnByb2Nlc3MuRm9ya2VkRnVuYyhib3hmMykud2FpdGZpbmlzaCgpCisgICAgYXNzZXJ0IHJl
c3VsdC5zaWduYWwgPT0gMTEKKyAgICBhc3NlcnQgcmVzdWx0Lm91dCA9PSAiaGVsbG9cbiIKKwor
ZGVmIHRlc3RfZm9ya2VkZnVuY19zaWduYWwoKToKKyAgICByZXN1bHQgPSBweS5wcm9jZXNzLkZv
cmtlZEZ1bmMoYm94c2VnKS53YWl0ZmluaXNoKCkKKyAgICBhc3NlcnQgcmVzdWx0LnJldHZhbCBp
cyBOb25lCisgICAgYXNzZXJ0IHJlc3VsdC5zaWduYWwgPT0gMTEKKworZGVmIHRlc3RfZm9ya2Vk
ZnVuY19odWdlX2RhdGEoKToKKyAgICByZXN1bHQgPSBweS5wcm9jZXNzLkZvcmtlZEZ1bmMoYm94
aHVnZSkud2FpdGZpbmlzaCgpCisgICAgYXNzZXJ0IHJlc3VsdC5vdXQKKyAgICBhc3NlcnQgcmVz
dWx0LmV4aXRzdGF0dXMgPT0gMAorICAgIGFzc2VydCByZXN1bHQuc2lnbmFsID09IDAKKyAgICBh
c3NlcnQgcmVzdWx0LnJldHZhbCA9PSAzCisKK2RlZiB0ZXN0X2JveF9zZXEoKToKKyAgICAjIHdl
IHJ1biBtYW55IGJveGVzIHdpdGggaHVnZSBkYXRhLCBqdXN0IG9uZSBhZnRlciBhbm90aGVyCisg
ICAgZm9yIGkgaW4gcmFuZ2UoNTApOgorICAgICAgICByZXN1bHQgPSBweS5wcm9jZXNzLkZvcmtl
ZEZ1bmMoYm94aHVnZSkud2FpdGZpbmlzaCgpCisgICAgICAgIGFzc2VydCByZXN1bHQub3V0Cisg
ICAgICAgIGFzc2VydCByZXN1bHQuZXhpdHN0YXR1cyA9PSAwCisgICAgICAgIGFzc2VydCByZXN1
bHQuc2lnbmFsID09IDAKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXR2YWwgPT0gMworCitkZWYg
dGVzdF9ib3hfaW5fYV9ib3goKToKKyAgICBkZWYgYm94ZnVuKCk6CisgICAgICAgIHJlc3VsdCA9
IHB5LnByb2Nlc3MuRm9ya2VkRnVuYyhib3hmMikud2FpdGZpbmlzaCgpCisgICAgICAgIHByaW50
IChyZXN1bHQub3V0KQorICAgICAgICBzeXMuc3RkZXJyLndyaXRlKHJlc3VsdC5lcnIgKyAiXG4i
KQorICAgICAgICByZXR1cm4gcmVzdWx0LnJldHZhbAorCisgICAgcmVzdWx0ID0gcHkucHJvY2Vz
cy5Gb3JrZWRGdW5jKGJveGZ1bikud2FpdGZpbmlzaCgpCisgICAgYXNzZXJ0IHJlc3VsdC5vdXQg
PT0gInNvbWVvdXRcbiIKKyAgICBhc3NlcnQgcmVzdWx0LmVyciA9PSAic29tZWVyclxuIgorICAg
IGFzc2VydCByZXN1bHQuZXhpdHN0YXR1cyA9PSAwCisgICAgYXNzZXJ0IHJlc3VsdC5zaWduYWwg
PT0gMAorICAgIGFzc2VydCByZXN1bHQucmV0dmFsID09IDIKKworZGVmIHRlc3Rfa2lsbF9mdW5j
X2ZvcmtlZCgpOgorICAgIGNsYXNzIEE6CisgICAgICAgIHBhc3MKKyAgICBpbmZvID0gQSgpCisg
ICAgaW1wb3J0IHRpbWUKKworICAgIGRlZiBib3hfZnVuKCk6CisgICAgICAgIHRpbWUuc2xlZXAo
MTApICMgd2UgZG9uJ3Qgd2FudCB0byBsYXN0IGZvcmV2ZXIgaGVyZQorCisgICAgZmYgPSBweS5w
cm9jZXNzLkZvcmtlZEZ1bmMoYm94X2Z1bikKKyAgICBvcy5raWxsKGZmLnBpZCwgMTUpCisgICAg
cmVzdWx0ID0gZmYud2FpdGZpbmlzaCgpCisgICAgYXNzZXJ0IHJlc3VsdC5zaWduYWwgPT0gMTUK
KworCitkZWYgdGVzdF9ob29rcyhtb25rZXlwYXRjaCk6CisgICAgZGVmIF9ib3hlZCgpOgorICAg
ICAgICByZXR1cm4gMQorCisgICAgZGVmIF9vbl9zdGFydCgpOgorICAgICAgICBzeXMuc3Rkb3V0
LndyaXRlKCJzb21lIG91dFxuIikKKyAgICAgICAgc3lzLnN0ZG91dC5mbHVzaCgpCisKKyAgICBk
ZWYgX29uX2V4aXQoKToKKyAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgic29tZSBlcnJcbiIpCisg
ICAgICAgIHN5cy5zdGRlcnIuZmx1c2goKQorCisgICAgcmVzdWx0ID0gcHkucHJvY2Vzcy5Gb3Jr
ZWRGdW5jKF9ib3hlZCwgY2hpbGRfb25fc3RhcnQ9X29uX3N0YXJ0LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjaGlsZF9vbl9leGl0PV9vbl9leGl0KS53YWl0ZmluaXNoKCkK
KyAgICBhc3NlcnQgcmVzdWx0Lm91dCA9PSAic29tZSBvdXRcbiIKKyAgICBhc3NlcnQgcmVzdWx0
LmVyciA9PSAic29tZSBlcnJcbiIKKyAgICBhc3NlcnQgcmVzdWx0LmV4aXRzdGF0dXMgPT0gMAor
ICAgIGFzc2VydCByZXN1bHQuc2lnbmFsID09IDAKKyAgICBhc3NlcnQgcmVzdWx0LnJldHZhbCA9
PSAxCisKKworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisjIGV4YW1wbGVzCisjID09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMK
KworZGVmIGJveGYxKCk6CisgICAgc3lzLnN0ZG91dC53cml0ZSgic29tZSBvdXRcbiIpCisgICAg
c3lzLnN0ZGVyci53cml0ZSgic29tZSBlcnJcbiIpCisgICAgcmV0dXJuIDEKKworZGVmIGJveGYy
KCk6CisgICAgb3Mud3JpdGUoMSwgInNvbWVvdXQiLmVuY29kZSgnYXNjaWknKSkKKyAgICBvcy53
cml0ZSgyLCAic29tZWVyciIuZW5jb2RlKCdhc2NpaScpKQorICAgIHJldHVybiAyCisKK2RlZiBi
b3hmMygpOgorICAgIG9zLndyaXRlKDEsICJzIi5lbmNvZGUoJ2FzY2lpJykpCisgICAgb3Mua2ls
bChvcy5nZXRwaWQoKSwgMTEpCisKK2RlZiBib3hzZWcoKToKKyAgICBvcy5raWxsKG9zLmdldHBp
ZCgpLCAxMSkKKworZGVmIGJveGh1Z2UoKToKKyAgICBzID0gIiAiLmVuY29kZSgnYXNjaWknKQor
ICAgIG9zLndyaXRlKDEsIHMgKiAxMDAwMCkKKyAgICBvcy53cml0ZSgyLCBzICogMTAwMDApCisg
ICAgb3Mud3JpdGUoMSwgcyAqIDEwMDAwKQorCisgICAgb3Mud3JpdGUoMSwgcyAqIDEwMDAwKQor
ICAgIG9zLndyaXRlKDIsIHMgKiAxMDAwMCkKKyAgICBvcy53cml0ZSgyLCBzICogMTAwMDApCisg
ICAgb3Mud3JpdGUoMSwgcyAqIDEwMDAwKQorICAgIHJldHVybiAzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L3Rlc3RpbmcvcHJvY2Vzcy90ZXN0X2tpbGxwcm9jLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3By
b2Nlc3MvdGVzdF9raWxscHJvYy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMGQ2ZTJmNTE1MzFlMGI2YWEwM2Ix
NzY4NzQ1MWE5MzViYzEyNDRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3By
b2Nlc3MvdGVzdF9raWxscHJvYy5weQpAQCAtMCwwICsxLDE4IEBACitpbXBvcnQgcHl0ZXN0Citp
bXBvcnQgc3lzCitpbXBvcnQgcHkKKworCitAcHl0ZXN0Lm1hcmsuc2tpcGlmKCJzeXMucGxhdGZv
cm0uc3RhcnRzd2l0aCgnamF2YScpIikKK2RlZiB0ZXN0X2tpbGwodG1wZGlyKToKKyAgICBzdWJw
cm9jZXNzID0gcHl0ZXN0LmltcG9ydG9yc2tpcCgic3VicHJvY2VzcyIpCisgICAgdCA9IHRtcGRp
ci5qb2luKCJ0LnB5IikKKyAgICB0LndyaXRlKCJpbXBvcnQgdGltZSA7IHRpbWUuc2xlZXAoMTAw
KSIpCisgICAgcHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oW3N5cy5leGVjdXRhYmxlLCBzdHIodCld
KQorICAgIGFzc2VydCBwcm9jLnBvbGwoKSBpcyBOb25lICAjIG5vIHJldHVybiB2YWx1ZSB5ZXQK
KyAgICBweS5wcm9jZXNzLmtpbGwocHJvYy5waWQpCisgICAgcmV0ID0gcHJvYy53YWl0KCkKKyAg
ICBpZiBzeXMucGxhdGZvcm0gPT0gIndpbjMyIiBhbmQgcmV0ID09IDA6CisgICAgICAgIHB5dGVz
dC5za2lwKCJYWFggb24gd2luMzIsIHN1YnByb2Nlc3MuUG9wZW4oKS53YWl0KCkgb24gYSBraWxs
ZWQgIgorICAgICAgICAgICAgICAgICAgICAicHJvY2VzcyBkb2VzIG5vdCB5aWVsZCByZXR1cm4g
dmFsdWUgIT0gMCIpCisgICAgYXNzZXJ0IHJldCAhPSAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rl
c3RpbmcvcHJvY2Vzcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wcm9jZXNzL3cz
Yy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1NDg3MmM4MTNjMmNjMzdmNGY3MTkwYWZmNGM3Y2M0
MzIyMTY4M2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcHJvY2Vzcy93M2Mt
aW1wb3J0LmxvZwpAQCAtMCwwICsxLDIwIEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcHJv
Y2Vzcy9fX2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wcm9jZXNzL3Rlc3RfY21kZXhlYy5w
eQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvdGVzdGluZy9wcm9jZXNzL3Rlc3RfZm9ya2VkZnVuYy5weQorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkv
dGVzdGluZy9wcm9jZXNzL3Rlc3Rfa2lsbHByb2MucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVz
dGluZy9yb290L19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Jvb3QvX19pbml0X18ucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzkyZDYwMDU0ODllYmVlNjJjZGUwMjA2NmYxOWM1NTIxZTYyMDQ1MQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9yb290L19faW5pdF9fLnB5CkBAIC0wLDAg
KzEgQEAKKyMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9yb290L3Rlc3RfYnVpbHRpbi5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvdGVzdGluZy9yb290L3Rlc3RfYnVpbHRpbi5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmYx
YTNjNzM5OTQzNWQ3NDNiNjI4OGQxN2ViYTJiOThhOTk0MTkxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS90ZXN0aW5nL3Jvb3QvdGVzdF9idWlsdGluLnB5CkBAIC0wLDAgKzEsMTc5IEBACitp
bXBvcnQgc3lzCitpbXBvcnQgdHlwZXMKK2ltcG9ydCBweQorZnJvbSBweS5idWlsdGluIGltcG9y
dCBzZXQsIGZyb3plbnNldCwgcmV2ZXJzZWQsIHNvcnRlZAorCitkZWYgdGVzdF9lbnVtZXJhdGUo
KToKKyAgICBsID0gWzAsMSwyXQorICAgIGZvciBpLHggaW4gZW51bWVyYXRlKGwpOgorICAgICAg
ICBhc3NlcnQgaSA9PSB4CisKK2RlZiB0ZXN0X2FueSgpOgorICAgIGFzc2VydCBub3QgcHkuYnVp
bHRpbi5hbnkoWzAsRmFsc2UsIE5vbmVdKQorICAgIGFzc2VydCBweS5idWlsdGluLmFueShbMCxG
YWxzZSwgTm9uZSwxXSkKKworZGVmIHRlc3RfYWxsKCk6CisgICAgYXNzZXJ0IG5vdCBweS5idWls
dGluLmFsbChbVHJ1ZSwgMSwgRmFsc2VdKQorICAgIGFzc2VydCBweS5idWlsdGluLmFsbChbVHJ1
ZSwgMSwgb2JqZWN0XSkKKworZGVmIHRlc3RfQmFzZUV4Y2VwdGlvbigpOgorICAgIGFzc2VydCBp
c3N1YmNsYXNzKEluZGV4RXJyb3IsIHB5LmJ1aWx0aW4uQmFzZUV4Y2VwdGlvbikKKyAgICBhc3Nl
cnQgaXNzdWJjbGFzcyhFeGNlcHRpb24sIHB5LmJ1aWx0aW4uQmFzZUV4Y2VwdGlvbikKKyAgICBh
c3NlcnQgaXNzdWJjbGFzcyhLZXlib2FyZEludGVycnVwdCwgcHkuYnVpbHRpbi5CYXNlRXhjZXB0
aW9uKQorCisgICAgY2xhc3MgTXlSYW5kb21DbGFzcyhvYmplY3QpOgorICAgICAgICBwYXNzCisg
ICAgYXNzZXJ0IG5vdCBpc3N1YmNsYXNzKE15UmFuZG9tQ2xhc3MsIHB5LmJ1aWx0aW4uQmFzZUV4
Y2VwdGlvbikKKworICAgIGFzc2VydCBweS5idWlsdGluLkJhc2VFeGNlcHRpb24uX19tb2R1bGVf
XyBpbiAoJ2V4Y2VwdGlvbnMnLCAnYnVpbHRpbnMnKQorICAgIGFzc2VydCBFeGNlcHRpb24uX19u
YW1lX18gPT0gJ0V4Y2VwdGlvbicKKworCitkZWYgdGVzdF9HZW5lcmF0b3JFeGl0KCk6CisgICAg
YXNzZXJ0IHB5LmJ1aWx0aW4uR2VuZXJhdG9yRXhpdC5fX21vZHVsZV9fIGluICgnZXhjZXB0aW9u
cycsICdidWlsdGlucycpCisgICAgYXNzZXJ0IGlzc3ViY2xhc3MocHkuYnVpbHRpbi5HZW5lcmF0
b3JFeGl0LCBweS5idWlsdGluLkJhc2VFeGNlcHRpb24pCisKK2RlZiB0ZXN0X3JldmVyc2VkKCk6
CisgICAgcmV2ZXJzZWQgPSBweS5idWlsdGluLnJldmVyc2VkCisgICAgciA9IHJldmVyc2VkKCJo
ZWxsbyIpCisgICAgYXNzZXJ0IGl0ZXIocikgaXMgcgorICAgIHMgPSAiIi5qb2luKGxpc3Qocikp
CisgICAgYXNzZXJ0IHMgPT0gIm9sbGVoIgorICAgIGFzc2VydCBsaXN0KHJldmVyc2VkKGxpc3Qo
cmV2ZXJzZWQoImhlbGxvIikpKSkgPT0gWydoJywnZScsJ2wnLCdsJywnbyddCisgICAgcHkudGVz
dC5yYWlzZXMoVHlwZUVycm9yLCByZXZlcnNlZCwgcmV2ZXJzZWQoImhlbGxvIikpCisKK2RlZiB0
ZXN0X3NpbXBsZSgpOgorICAgIHMgPSBzZXQoWzEsIDIsIDMsIDRdKQorICAgIGFzc2VydCBzID09
IHNldChbMywgNCwgMiwgMV0pCisgICAgczEgPSBzLnVuaW9uKHNldChbNSwgNl0pKQorICAgIGFz
c2VydCA1IGluIHMxCisgICAgYXNzZXJ0IDEgaW4gczEKKworZGVmIHRlc3RfZnJvemVuc2V0KCk6
CisgICAgcyA9IHNldChbZnJvemVuc2V0KFswLCAxXSksIGZyb3plbnNldChbMSwgMF0pXSkKKyAg
ICBhc3NlcnQgbGVuKHMpID09IDEKKworZGVmIHRlc3Rfc29ydGVkKCk6CisgICAgaWYgc29ydGVk
ID09IHB5LmJ1aWx0aW4uc29ydGVkOgorICAgICAgICByZXR1cm4gIyBkb24ndCB0ZXN0IGEgcmVh
bCBidWlsdGluCisgICAgZm9yIHMgaW4gW3B5LmJ1aWx0aW4uc29ydGVkXToKKyAgICAgICAgZGVm
IHRlc3QoKToKKyAgICAgICAgICAgIGFzc2VydCBzKFszLCAyLCAxXSkgPT0gWzEsIDIsIDNdCisg
ICAgICAgICAgICBhc3NlcnQgcyhbMSwgMiwgM10sIHJldmVyc2U9VHJ1ZSkgPT0gWzMsIDIsIDFd
CisgICAgICAgICAgICBsID0gcyhbMSwgMiwgMywgNCwgNSwgNl0sIGtleT1sYW1iZGEgeDogeCAl
IDIpCisgICAgICAgICAgICBhc3NlcnQgbCA9PSBbMiwgNCwgNiwgMSwgMywgNV0KKyAgICAgICAg
ICAgIGwgPSBzKFsxLCAyLCAzLCA0XSwgY21wPWxhbWJkYSB4LCB5OiAtY21wKHgsIHkpKQorICAg
ICAgICAgICAgYXNzZXJ0IGwgPT0gWzQsIDMsIDIsIDFdCisgICAgICAgICAgICBsID0gcyhbMSwg
MiwgMywgNF0sIGNtcD1sYW1iZGEgeCwgeTogLWNtcCh4LCB5KSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGtleT1sYW1iZGEgeDogeCAlIDIpCisgICAgICAgICAgICBhc3NlcnQgbCA9PSBbMSwg
MywgMiwgNF0KKworICAgICAgICAgICAgZGVmIGNvbXBhcmUoeCwgeSk6CisgICAgICAgICAgICAg
ICAgYXNzZXJ0IHR5cGUoeCkgPT0gc3RyCisgICAgICAgICAgICAgICAgYXNzZXJ0IHR5cGUoeSkg
PT0gc3RyCisgICAgICAgICAgICAgICAgcmV0dXJuIGNtcCh4LCB5KQorICAgICAgICAgICAgZGF0
YSA9ICdUaGUgcXVpY2sgQnJvd24gZm94IEp1bXBlZCBvdmVyIFRoZSBsYXp5IERvZycuc3BsaXQo
KQorICAgICAgICAgICAgcyhkYXRhLCBjbXA9Y29tcGFyZSwga2V5PXN0ci5sb3dlcikKKyAgICAg
ICAgeWllbGQgdGVzdAorCisKK2RlZiB0ZXN0X3ByaW50X3NpbXBsZSgpOgorICAgIGZyb20gcHku
YnVpbHRpbiBpbXBvcnQgcHJpbnRfCisgICAgcHkudGVzdC5yYWlzZXMoVHlwZUVycm9yLCAicHJp
bnRfKGhlbGxvPTMpIikKKyAgICBmID0gcHkuaW8uVGV4dElPKCkKKyAgICBwcmludF8oImhlbGxv
IiwgIndvcmxkIiwgZmlsZT1mKQorICAgIHMgPSBmLmdldHZhbHVlKCkKKyAgICBhc3NlcnQgcyA9
PSAiaGVsbG8gd29ybGRcbiIKKworICAgIGYgPSBweS5pby5UZXh0SU8oKQorICAgIHByaW50Xygi
aGVsbG8iLCBlbmQ9IiIsIGZpbGU9ZikKKyAgICBzID0gZi5nZXR2YWx1ZSgpCisgICAgYXNzZXJ0
IHMgPT0gImhlbGxvIgorCisgICAgZiA9IHB5LmlvLlRleHRJTygpCisgICAgcHJpbnRfKCJ4eXoi
LCAiYWJjIiwgc2VwPSIiLCBlbmQ9IiIsIGZpbGU9ZikKKyAgICBzID0gZi5nZXR2YWx1ZSgpCisg
ICAgYXNzZXJ0IHMgPT0gInh5emFiYyIKKworICAgIGNsYXNzIFg6CisgICAgICAgIGRlZiBfX3Jl
cHJfXyhzZWxmKTogcmV0dXJuICJyZXAiCisgICAgZiA9IHB5LmlvLlRleHRJTygpCisgICAgcHJp
bnRfKFgoKSwgZmlsZT1mKQorICAgIGFzc2VydCBmLmdldHZhbHVlKCkgPT0gInJlcFxuIgorCitk
ZWYgdGVzdF9leGVjZmlsZSh0bXBkaXIpOgorICAgIHRlc3RfZmlsZSA9IHRtcGRpci5qb2luKCJ0
ZXN0LnB5IikKKyAgICB0ZXN0X2ZpbGUud3JpdGUoInggPSB5XG5kZWYgZigpOiBwYXNzIikKKyAg
ICBucyA9IHsieSIgOiA0Mn0KKyAgICBweS5idWlsdGluLmV4ZWNmaWxlKHN0cih0ZXN0X2ZpbGUp
LCBucykKKyAgICBhc3NlcnQgbnNbIngiXSA9PSA0MgorICAgIGFzc2VydCBweS5jb2RlLmdldHJh
d2NvZGUobnNbImYiXSkuY29fZmlsZW5hbWUgPT0gc3RyKHRlc3RfZmlsZSkKKyAgICBjbGFzcyBB
OgorICAgICAgICB5ID0gMworICAgICAgICB4ID0gNAorICAgICAgICBweS5idWlsdGluLmV4ZWNm
aWxlKHN0cih0ZXN0X2ZpbGUpKQorICAgIGFzc2VydCBBLnggPT0gMworCitkZWYgdGVzdF9nZXRm
dW5jZGljdCgpOgorICAgIGRlZiBmKCk6CisgICAgICAgIHBhc3MKKyAgICBmLnggPSA0CisgICAg
YXNzZXJ0IHB5LmJ1aWx0aW4uX2dldGZ1bmNkaWN0KGYpWyJ4Il0gPT0gNAorICAgIGFzc2VydCBw
eS5idWlsdGluLl9nZXRmdW5jZGljdCgyKSBpcyBOb25lCisKK2RlZiB0ZXN0X2NhbGxhYmxlKCk6
CisgICAgY2xhc3MgQTogcGFzcworICAgIGFzc2VydCBweS5idWlsdGluLmNhbGxhYmxlKHRlc3Rf
Y2FsbGFibGUpCisgICAgYXNzZXJ0IHB5LmJ1aWx0aW4uY2FsbGFibGUoQSkKKyAgICBhc3NlcnQg
cHkuYnVpbHRpbi5jYWxsYWJsZShsaXN0KQorICAgIGFzc2VydCBweS5idWlsdGluLmNhbGxhYmxl
KGlkKQorICAgIGFzc2VydCBub3QgcHkuYnVpbHRpbi5jYWxsYWJsZSg0KQorICAgIGFzc2VydCBu
b3QgcHkuYnVpbHRpbi5jYWxsYWJsZSgiaGkiKQorCitkZWYgdGVzdF90b3RleHQoKToKKyAgICBw
eS5idWlsdGluLl90b3RleHQoImhlbGxvIiwgIlVURi04IikKKworZGVmIHRlc3RfYnl0ZXNfdGV4
dCgpOgorICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPCAzOgorICAgICAgICBhc3NlcnQgcHku
YnVpbHRpbi50ZXh0ID09IHVuaWNvZGUKKyAgICAgICAgYXNzZXJ0IHB5LmJ1aWx0aW4uYnl0ZXMg
PT0gc3RyCisgICAgZWxzZToKKyAgICAgICAgYXNzZXJ0IHB5LmJ1aWx0aW4udGV4dCA9PSBzdHIK
KyAgICAgICAgYXNzZXJ0IHB5LmJ1aWx0aW4uYnl0ZXMgPT0gYnl0ZXMKKworZGVmIHRlc3RfdG90
ZXh0X2JhZHV0ZjgoKToKKyAgICAjIHRoaXMgd2FzIGluIHByaW50b3V0cyB3aXRoaW4gdGhlIHB5
dGVzdCB0ZXN0c3VpdGUKKyAgICAjIHRvdGV4dCB3b3VsZCBmYWlsCisgICAgaWYgc3lzLnZlcnNp
b25faW5mbyA+PSAoMywpOgorICAgICAgICBlcnJvcnMgPSAnc3Vycm9nYXRlZXNjYXBlJworICAg
IGVsc2U6ICMgb2xkIHB5dGhvbiBoYXMgY3JhcHB5IGVycm9yIGhhbmRsZXJzCisgICAgICAgIGVy
cm9ycyA9ICdyZXBsYWNlJworICAgIHB5LmJ1aWx0aW4uX3RvdGV4dCgiXHhhNiIsICJVVEYtOCIs
IGVycm9ycykKKworZGVmIHRlc3RfcmVyYWlzZSgpOgorICAgIGZyb20gcHkuYnVpbHRpbiBpbXBv
cnQgX3JlcmFpc2UKKyAgICB0cnk6CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigpCisgICAgZXhj
ZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgY2xzLCB2YWwsIHRiID0gc3lzLmV4Y19pbmZvKCkKKyAg
ICBleGNpbmZvID0gcHkudGVzdC5yYWlzZXMoRXhjZXB0aW9uLCAiX3JlcmFpc2UoY2xzLCB2YWws
IHRiKSIpCisKK2RlZiB0ZXN0X2V4ZWMoKToKKyAgICBsID0gW10KKyAgICBweS5idWlsdGluLmV4
ZWNfKCJsLmFwcGVuZCgxKSIpCisgICAgYXNzZXJ0IGwgPT0gWzFdCisgICAgZCA9IHt9CisgICAg
cHkuYnVpbHRpbi5leGVjXygieD00IiwgZCkKKyAgICBhc3NlcnQgZFsneCddID09IDQKKworZGVm
IHRlc3RfdHJ5aW1wb3J0KCk6CisgICAgcHkudGVzdC5yYWlzZXMoSW1wb3J0RXJyb3IsIHB5LmJ1
aWx0aW4uX3RyeWltcG9ydCwgJ3hxd2UxMjMnKQorICAgIHggPSBweS5idWlsdGluLl90cnlpbXBv
cnQoJ2FzbGRrYWpzZGwnLCAncHknKQorICAgIGFzc2VydCB4ID09IHB5CisgICAgeCA9IHB5LmJ1
aWx0aW4uX3RyeWltcG9ydCgnYXNsZGthanNkbCcsICdweS5wYXRoJykKKyAgICBhc3NlcnQgeCA9
PSBweS5wYXRoCisKK2RlZiB0ZXN0X2dldGNvZGUoKToKKyAgICBjb2RlID0gcHkuYnVpbHRpbi5f
Z2V0Y29kZSh0ZXN0X2dldGNvZGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29kZSwgdHlwZXMu
Q29kZVR5cGUpCisgICAgYXNzZXJ0IHB5LmJ1aWx0aW4uX2dldGNvZGUoNCkgaXMgTm9uZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Jvb3QvdGVzdF9lcnJvci5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVz
dGluZy9yb290L3Rlc3RfZXJyb3IucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTExODVmMzNkYzk0MGQ3MjI5ZDRi
OTg1Njg2OGJhMzRlMzQ2NmY3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9y
b290L3Rlc3RfZXJyb3IucHkKQEAgLTAsMCArMSw2OCBAQAorCitpbXBvcnQgcHkKKworaW1wb3J0
IGVycm5vCisKKworZGVmIHRlc3RfZXJyb3JfY2xhc3NlcygpOgorICAgIGZvciBuYW1lIGluIGVy
cm5vLmVycm9yY29kZS52YWx1ZXMoKToKKyAgICAgICAgeCA9IGdldGF0dHIocHkuZXJyb3IsIG5h
bWUpCisgICAgICAgIGFzc2VydCBpc3N1YmNsYXNzKHgsIHB5LmVycm9yLkVycm9yKQorICAgICAg
ICBhc3NlcnQgaXNzdWJjbGFzcyh4LCBFbnZpcm9ubWVudEVycm9yKQorCisKK2RlZiB0ZXN0X2hh
c19uYW1lKCk6CisgICAgYXNzZXJ0IHB5LmVycm9yLl9fbmFtZV9fID09ICdweS5lcnJvcicKKwor
CitkZWYgdGVzdF9waWNrbGFiaWxpdHlfaXNzdWUxKCk6CisgICAgaW1wb3J0IHBpY2tsZQorICAg
IGUxID0gcHkuZXJyb3IuRU5PRU5UKCkKKyAgICBzID0gcGlja2xlLmR1bXBzKGUxKQorICAgIGUy
ID0gcGlja2xlLmxvYWRzKHMpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZTIsIHB5LmVycm9yLkVO
T0VOVCkKKworCitkZWYgdGVzdF91bmtub3duX2Vycm9yKCk6CisgICAgbnVtID0gMzk5OQorICAg
IGNscyA9IHB5LmVycm9yLl9nZXRlcnJub2NsYXNzKG51bSkKKyAgICBhc3NlcnQgY2xzLl9fbmFt
ZV9fID09ICdVbmtub3duRXJybm8lZCcgJSAobnVtLCkKKyAgICBhc3NlcnQgaXNzdWJjbGFzcyhj
bHMsIHB5LmVycm9yLkVycm9yKQorICAgIGFzc2VydCBpc3N1YmNsYXNzKGNscywgRW52aXJvbm1l
bnRFcnJvcikKKyAgICBjbHMyID0gcHkuZXJyb3IuX2dldGVycm5vY2xhc3MobnVtKQorICAgIGFz
c2VydCBjbHMgaXMgY2xzMgorCisKK2RlZiB0ZXN0X2Vycm9yX2NvbnZlcnNpb25fRU5PVERJUih0
ZXN0ZGlyKToKKyAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiKQorICAgIGV4Y2luZm8gPSBw
eS50ZXN0LnJhaXNlcyhweS5lcnJvci5FcnJvciwgcHkuZXJyb3IuY2hlY2tlZF9jYWxsLCBwLmxp
c3RkaXIpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZXhjaW5mby52YWx1ZSwgRW52aXJvbm1lbnRF
cnJvcikKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShleGNpbmZvLnZhbHVlLCBweS5lcnJvci5FcnJv
cikKKyAgICBhc3NlcnQgIkVOT1RESVIiIGluIHJlcHIoZXhjaW5mby52YWx1ZSkKKworCitkZWYg
dGVzdF9jaGVja2VkX2NhbGxfc3VwcG9ydHNfa3dhcmdzKHRtcGRpcik6CisgICAgaW1wb3J0IHRl
bXBmaWxlCisgICAgcHkuZXJyb3IuY2hlY2tlZF9jYWxsKHRlbXBmaWxlLm1rZHRlbXAsIGRpcj1z
dHIodG1wZGlyKSkKKworCit0cnk6CisgICAgaW1wb3J0IHVuaXR0ZXN0CisgICAgdW5pdHRlc3Qu
VGVzdENhc2UuYXNzZXJ0V2FybnMKK2V4Y2VwdCAoSW1wb3J0RXJyb3IsIEF0dHJpYnV0ZUVycm9y
KToKKyAgICBwYXNzICAjIHJlcXVpcmVkIGludGVyZmFjZSBub3QgYXZhaWxhYmxlCitlbHNlOgor
ICAgIGltcG9ydCBzeXMKKyAgICBpbXBvcnQgd2FybmluZ3MKKworICAgIGNsYXNzIENhc2UodW5p
dHRlc3QuVGVzdENhc2UpOgorICAgICAgICBkZWYgdGVzdF9hc3NlcnRXYXJucyhzZWxmKToKKyAg
ICAgICAgICAgICMgQ2xlYXIgZXZlcnl0aGluZyAicHkuKiIgZnJvbSBzeXMubW9kdWxlcyBhbmQg
cmUtaW1wb3J0IHB5CisgICAgICAgICAgICAjIGFzIGEgZnJlc2ggc3RhcnQKKyAgICAgICAgICAg
IGZvciBtb2QgaW4gdHVwbGUoc3lzLm1vZHVsZXMua2V5cygpKToKKyAgICAgICAgICAgICAgICBp
ZiBtb2QgYW5kIChtb2QgPT0gJ3B5JyBvciBtb2Quc3RhcnRzd2l0aCgncHkuJykpOgorICAgICAg
ICAgICAgICAgICAgICBkZWwgc3lzLm1vZHVsZXNbbW9kXQorICAgICAgICAgICAgaW1wb3J0IHB5
CisKKyAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRXYXJucyhVc2VyV2FybmluZyk6CisgICAg
ICAgICAgICAgICAgd2FybmluZ3Mud2FybigndGhpcyBzaG91bGQgd29yaycpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3Rlc3Rpbmcvcm9vdC90ZXN0X3B5X2ltcG9ydHMucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3Rp
bmcvcm9vdC90ZXN0X3B5X2ltcG9ydHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzFmZTZlYWQ4MTBjZTBjYzRm
OTM2OTVhZDZlNzE2ZjhlYTFkYWViNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGlu
Zy9yb290L3Rlc3RfcHlfaW1wb3J0cy5weQpAQCAtMCwwICsxLDcxIEBACitpbXBvcnQgcHkKK2lt
cG9ydCBzeXMKKworCitAcHkudGVzdC5tYXJrLnBhcmFtZXRyaXplKCduYW1lJywgW3ggZm9yIHgg
aW4gZGlyKHB5KSBpZiB4WzBdICE9ICdfJ10pCitkZWYgdGVzdF9kaXIobmFtZSk6CisgICAgb2Jq
ID0gZ2V0YXR0cihweSwgbmFtZSkKKyAgICBpZiBoYXNhdHRyKG9iaiwgJ19fbWFwX18nKTogICMg
aXNpbnN0YW5jZShvYmosIE1vZHVsZSk6CisgICAgICAgIGtleXMgPSBkaXIob2JqKQorICAgICAg
ICBhc3NlcnQgbGVuKGtleXMpID4gMAorICAgICAgICBwcmludCAob2JqLl9fbWFwX18pCisgICAg
ICAgIGZvciBuYW1lIGluIGxpc3Qob2JqLl9fbWFwX18pOgorICAgICAgICAgICAgYXNzZXJ0IGhh
c2F0dHIob2JqLCBuYW1lKSwgKG9iaiwgbmFtZSkKKworCitkZWYgdGVzdF92aXJ0dWFsX21vZHVs
ZV9pZGVudGl0eSgpOgorICAgIGZyb20gcHkgaW1wb3J0IHBhdGggYXMgcGF0aDEKKyAgICBmcm9t
IHB5IGltcG9ydCBwYXRoIGFzIHBhdGgyCisgICAgYXNzZXJ0IHBhdGgxIGlzIHBhdGgyCisgICAg
ZnJvbSBweS5wYXRoIGltcG9ydCBsb2NhbCBhcyBsb2NhbDEKKyAgICBmcm9tIHB5LnBhdGggaW1w
b3J0IGxvY2FsIGFzIGxvY2FsMgorICAgIGFzc2VydCBsb2NhbDEgaXMgbG9jYWwyCisKKworZGVm
IHRlc3RfaW1wb3J0YWxsKCk6CisgICAgYmFzZSA9IHB5Ll9weWRpcgorICAgIG5vZGlycyA9IFsK
KyAgICBdCisgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6CisgICAgICAgIG5vZGly
cy5hcHBlbmQoYmFzZS5qb2luKCdfY29kZScsICdfYXNzZXJ0aW9ub2xkLnB5JykpCisgICAgZWxz
ZToKKyAgICAgICAgbm9kaXJzLmFwcGVuZChiYXNlLmpvaW4oJ19jb2RlJywgJ19hc3NlcnRpb25u
ZXcucHknKSkKKworICAgIGRlZiByZWN1cnNlKHApOgorICAgICAgICByZXR1cm4gcC5jaGVjayhk
b3RmaWxlPTApIGFuZCBwLmJhc2VuYW1lICE9ICJhdHRpYyIKKworICAgIGZvciBwIGluIGJhc2Uu
dmlzaXQoJyoucHknLCByZWN1cnNlKToKKyAgICAgICAgaWYgcC5iYXNlbmFtZSA9PSAnX19pbml0
X18ucHknOgorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgcmVscGF0aCA9IHAubmV3KGV4
dD0nJykucmVsdG8oYmFzZSkKKyAgICAgICAgaWYgYmFzZS5zZXAgaW4gcmVscGF0aDogICMgbm90
IHB5LyoucHkgaXRzZWxmCisgICAgICAgICAgICBmb3IgeCBpbiBub2RpcnM6CisgICAgICAgICAg
ICAgICAgaWYgcCA9PSB4IG9yIHAucmVsdG8oeCk6CisgICAgICAgICAgICAgICAgICAgIGJyZWFr
CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJlbHBhdGggPSByZWxwYXRoLnJl
cGxhY2UoYmFzZS5zZXAsICcuJykKKyAgICAgICAgICAgICAgICBtb2RwYXRoID0gJ3B5LiVzJyAl
IHJlbHBhdGgKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIGNoZWNr
X2ltcG9ydChtb2RwYXRoKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBweS50ZXN0LnNraXAuRXhj
ZXB0aW9uOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisKKworZGVmIGNoZWNrX2ltcG9ydCht
b2RwYXRoKToKKyAgICBweS5idWlsdGluLnByaW50XygiY2hlY2tpbmcgaW1wb3J0IiwgbW9kcGF0
aCkKKyAgICBhc3NlcnQgX19pbXBvcnRfXyhtb2RwYXRoKQorCisKK2RlZiB0ZXN0X3N0YXJfaW1w
b3J0KCk6CisgICAgZXhlYygiZnJvbSBweSBpbXBvcnQgKiIpCisKKworZGVmIHRlc3RfYWxsX3Jl
c29sdmVzKCk6CisgICAgc2VlbiA9IHB5LmJ1aWx0aW4uc2V0KFtweV0pCisgICAgbGFzdGxlbmd0
aCA9IE5vbmUKKyAgICB3aGlsZSBsZW4oc2VlbikgIT0gbGFzdGxlbmd0aDoKKyAgICAgICAgbGFz
dGxlbmd0aCA9IGxlbihzZWVuKQorICAgICAgICBmb3IgaXRlbSBpbiBweS5idWlsdGluLmZyb3pl
bnNldChzZWVuKToKKyAgICAgICAgICAgIGZvciB2YWx1ZSBpbiBpdGVtLl9fZGljdF9fLnZhbHVl
cygpOgorICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIHR5cGUocHkudGVzdCkp
OgorICAgICAgICAgICAgICAgICAgICBzZWVuLmFkZCh2YWx1ZSkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvdGVzdGluZy9yb290L3Rlc3Rfc3RkLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Jvb3QvdGVzdF9z
dGQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTQzNTU2YTA1NTdmN2Q4ZGQxMWFlYmQ4Y2JmNGY1YTY3NWMxNjhj
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9yb290L3Rlc3Rfc3RkLnB5CkBA
IC0wLDAgKzEsMTMgQEAKKworaW1wb3J0IHB5CisKK2RlZiB0ZXN0X29zKCk6CisgICAgaW1wb3J0
IG9zCisgICAgYXNzZXJ0IHB5LnN0ZC5vcyBpcyBvcworCitkZWYgdGVzdF9pbXBvcnRfZXJyb3Jf
Y29udmVydHNfdG9fYXR0cmlidXRlZXJyb3IoKToKKyAgICBweS50ZXN0LnJhaXNlcyhBdHRyaWJ1
dGVFcnJvciwgInB5LnN0ZC54eXphbHNrZGoiKQorCitkZWYgdGVzdF9zdGRfZ2V0c19pdCgpOgor
ICAgIGZvciB4IGluIHB5LnN0ZC5zeXMubW9kdWxlczoKKyAgICAgICAgYXNzZXJ0IHggaW4gcHku
c3RkLl9fZGljdF9fCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3Rpbmcvcm9vdC90ZXN0X3htbGdl
bi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHkvdGVzdGluZy9yb290L3Rlc3RfeG1sZ2VuLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZj
MGU4MjY2NWY3ZWU5YmZkODk0YzkwNjg3YjgwYzk3ZGQ2ZDcyYTUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3Rlc3Rpbmcvcm9vdC90ZXN0X3htbGdlbi5weQpAQCAtMCwwICsxLDE0NiBAQAor
CitpbXBvcnQgcHkKK2Zyb20gcHkuX3htbGdlbiBpbXBvcnQgdW5pY29kZSwgaHRtbCwgcmF3Citp
bXBvcnQgc3lzCisKK2NsYXNzIG5zKHB5LnhtbC5OYW1lc3BhY2UpOgorICAgIHBhc3MKKworZGVm
IHRlc3RfZXNjYXBlKCk6CisgICAgdXZhbHVlID0gcHkuYnVpbHRpbi5fdG90ZXh0KCdceGM0XHg4
NVx4YzRceDg3XG5ceGUyXHg4Mlx4YWNcbicsICd1dGYtOCcpCisgICAgY2xhc3MgQToKKyAgICAg
ICAgZGVmIF9fdW5pY29kZV9fKHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuIHV2YWx1ZQorICAg
ICAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgICAgIHggPSBzZWxmLl9fdW5pY29kZV9f
KCkKKyAgICAgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPCAzOgorICAgICAgICAgICAg
ICAgIHJldHVybiB4LmVuY29kZSgndXRmLTgnKQorICAgICAgICAgICAgcmV0dXJuIHgKKyAgICB5
ID0gcHkueG1sLmVzY2FwZSh1dmFsdWUpCisgICAgYXNzZXJ0IHkgPT0gdXZhbHVlCisgICAgeCA9
IHB5LnhtbC5lc2NhcGUoQSgpKQorICAgIGFzc2VydCB4ID09IHV2YWx1ZQorICAgIGlmIHN5cy52
ZXJzaW9uX2luZm9bMF0gPCAzOgorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSh4LCB1bmljb2Rl
KQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSh5LCB1bmljb2RlKQorICAgICAgICB5ID0gcHku
eG1sLmVzY2FwZSh1dmFsdWUuZW5jb2RlKCd1dGYtOCcpKQorICAgICAgICBhc3NlcnQgeSA9PSB1
dmFsdWUKKworCitkZWYgdGVzdF90YWdfd2l0aF90ZXh0KCk6CisgICAgeCA9IG5zLmhlbGxvKCJ3
b3JsZCIpCisgICAgdSA9IHVuaWNvZGUoeCkKKyAgICBhc3NlcnQgdSA9PSAiPGhlbGxvPndvcmxk
PC9oZWxsbz4iCisKK2RlZiB0ZXN0X2NsYXNzX2lkZW50aXR5KCk6CisgICAgYXNzZXJ0IG5zLmhl
bGxvIGlzIG5zLmhlbGxvCisKK2RlZiB0ZXN0X3RhZ193aXRoX3RleHRfYW5kX2F0dHJpYnV0ZXMo
KToKKyAgICB4ID0gbnMuc29tZShuYW1lPSJoZWxsbyIsIHZhbHVlPSJ3b3JsZCIpCisgICAgYXNz
ZXJ0IHguYXR0ci5uYW1lID09ICdoZWxsbycKKyAgICBhc3NlcnQgeC5hdHRyLnZhbHVlID09ICd3
b3JsZCcKKyAgICB1ID0gdW5pY29kZSh4KQorICAgIGFzc2VydCB1ID09ICc8c29tZSBuYW1lPSJo
ZWxsbyIgdmFsdWU9IndvcmxkIi8+JworCitkZWYgdGVzdF90YWdfd2l0aF9zdWJjbGFzc2VkX2F0
dHJfc2ltcGxlKCk6CisgICAgY2xhc3MgbXkobnMuaGVsbG8pOgorICAgICAgICBjbGFzcyBBdHRy
KG5zLmhlbGxvLkF0dHIpOgorICAgICAgICAgICAgaGVsbG89IndvcmxkIgorICAgIHggPSBteSgp
CisgICAgYXNzZXJ0IHguYXR0ci5oZWxsbyA9PSAnd29ybGQnCisgICAgYXNzZXJ0IHVuaWNvZGUo
eCkgPT0gJzxteSBoZWxsbz0id29ybGQiLz4nCisKK2RlZiB0ZXN0X3RhZ193aXRoX3Jhd19hdHRy
KCk6CisgICAgeCA9IGh0bWwub2JqZWN0KGRhdGE9cmF3KCcmJykpCisgICAgYXNzZXJ0IHVuaWNv
ZGUoeCkgPT0gJzxvYmplY3QgZGF0YT0iJiI+PC9vYmplY3Q+JworCitkZWYgdGVzdF90YWdfbmVz
dGVkKCk6CisgICAgeCA9IG5zLmhlbGxvKG5zLndvcmxkKCkpCisgICAgdW5pY29kZSh4KSAjIHRy
aWdnZXJzIHBhcmVudGlmeWluZworICAgIGFzc2VydCB4WzBdLnBhcmVudCBpcyB4CisgICAgdSA9
IHVuaWNvZGUoeCkKKyAgICBhc3NlcnQgdSA9PSAnPGhlbGxvPjx3b3JsZC8+PC9oZWxsbz4nCisK
K2RlZiB0ZXN0X2xpc3RfbmVzdGVkKCk6CisgICAgeCA9IG5zLmhlbGxvKFtucy53b3JsZCgpXSkg
I3Bhc3MgaW4gYSBsaXN0IGhlcmUKKyAgICB1ID0gdW5pY29kZSh4KQorICAgIGFzc2VydCB1ID09
ICc8aGVsbG8+PHdvcmxkLz48L2hlbGxvPicKKworZGVmIHRlc3RfdGFnX3htbG5hbWUoKToKKyAg
ICBjbGFzcyBteShucy5oZWxsbyk6CisgICAgICAgIHhtbG5hbWUgPSAnd29ybGQnCisgICAgdSA9
IHVuaWNvZGUobXkoKSkKKyAgICBhc3NlcnQgdSA9PSAnPHdvcmxkLz4nCisKK2RlZiB0ZXN0X3Rh
Z193aXRoX3RleHRfZW50aXR5KCk6CisgICAgeCA9IG5zLmhlbGxvKCd3b3JsZCAmIHJlc3QnKQor
ICAgIHUgPSB1bmljb2RlKHgpCisgICAgYXNzZXJ0IHUgPT0gIjxoZWxsbz53b3JsZCAmYW1wOyBy
ZXN0PC9oZWxsbz4iCisKK2RlZiB0ZXN0X3RhZ193aXRoX3RleHRfYW5kX2F0dHJpYnV0ZXNfZW50
aXR5KCk6CisgICAgeCA9IG5zLnNvbWUobmFtZT0iaGVsbG8gJiB3b3JsZCIpCisgICAgYXNzZXJ0
IHguYXR0ci5uYW1lID09ICJoZWxsbyAmIHdvcmxkIgorICAgIHUgPSB1bmljb2RlKHgpCisgICAg
YXNzZXJ0IHUgPT0gJzxzb21lIG5hbWU9ImhlbGxvICZhbXA7IHdvcmxkIi8+JworCitkZWYgdGVz
dF9yYXcoKToKKyAgICB4ID0gbnMuc29tZShweS54bWwucmF3KCI8cD5saXRlcmFsPC9wPiIpKQor
ICAgIHUgPSB1bmljb2RlKHgpCisgICAgYXNzZXJ0IHUgPT0gIjxzb21lPjxwPmxpdGVyYWw8L3A+
PC9zb21lPiIKKworCitkZWYgdGVzdF9odG1sX25hbWVfc3RpY2t5bmVzcygpOgorICAgIGNsYXNz
IG15KGh0bWwucCk6CisgICAgICAgIHBhc3MKKyAgICB4ID0gbXkoImhlbGxvIikKKyAgICBhc3Nl
cnQgdW5pY29kZSh4KSA9PSAnPHA+aGVsbG88L3A+JworCitkZWYgdGVzdF9zdHlsZW5hbWVzKCk6
CisgICAgY2xhc3MgbXk6CisgICAgICAgIGNsYXNzIGJvZHkoaHRtbC5ib2R5KToKKyAgICAgICAg
ICAgIHN0eWxlID0gaHRtbC5TdHlsZShmb250X3NpemUgPSAiMTJwdCIpCisgICAgdSA9IHVuaWNv
ZGUobXkuYm9keSgpKQorICAgIGFzc2VydCB1ID09ICc8Ym9keSBzdHlsZT0iZm9udC1zaXplOiAx
MnB0Ij48L2JvZHk+JworCitkZWYgdGVzdF9jbGFzc19Ob25lKCk6CisgICAgdCA9IGh0bWwuYm9k
eShjbGFzc189Tm9uZSkKKyAgICB1ID0gdW5pY29kZSh0KQorICAgIGFzc2VydCB1ID09ICc8Ym9k
eT48L2JvZHk+JworCitkZWYgdGVzdF9hbHRlcm5hdGluZ19zdHlsZSgpOgorICAgIGFsdGVybmF0
aW5nID0gKAorICAgICAgICBodG1sLlN0eWxlKGJhY2tncm91bmQ9IndoaXRlIiksCisgICAgICAg
IGh0bWwuU3R5bGUoYmFja2dyb3VuZD0iZ3JleSIpLAorICAgICkKKyAgICBjbGFzcyBteShodG1s
KToKKyAgICAgICAgY2xhc3MgbGkoaHRtbC5saSk6CisgICAgICAgICAgICBkZWYgc3R5bGUoc2Vs
Zik6CisgICAgICAgICAgICAgICAgaSA9IHNlbGYucGFyZW50LmluZGV4KHNlbGYpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIGFsdGVybmF0aW5nW2klMl0KKyAgICAgICAgICAgIHN0eWxlID0gcHJv
cGVydHkoc3R5bGUpCisKKyAgICB4ID0gbXkudWwoCisgICAgICAgICAgICBteS5saSgiaGVsbG8i
KSwKKyAgICAgICAgICAgIG15LmxpKCJ3b3JsZCIpLAorICAgICAgICAgICAgbXkubGkoIjQyIikp
CisgICAgdSA9IHVuaWNvZGUoeCkKKyAgICBhc3NlcnQgdSA9PSAoJzx1bD48bGkgc3R5bGU9ImJh
Y2tncm91bmQ6IHdoaXRlIj5oZWxsbzwvbGk+JworICAgICAgICAgICAgICAgICAgICAgJzxsaSBz
dHlsZT0iYmFja2dyb3VuZDogZ3JleSI+d29ybGQ8L2xpPicKKyAgICAgICAgICAgICAgICAgICAg
ICc8bGkgc3R5bGU9ImJhY2tncm91bmQ6IHdoaXRlIj40MjwvbGk+JworICAgICAgICAgICAgICAg
ICAnPC91bD4nKQorCitkZWYgdGVzdF9zaW5nbGV0b24oKToKKyAgICBoID0gaHRtbC5oZWFkKGh0
bWwubGluayhocmVmPSJmb28iKSkKKyAgICBhc3NlcnQgdW5pY29kZShoKSA9PSAnPGhlYWQ+PGxp
bmsgaHJlZj0iZm9vIi8+PC9oZWFkPicKKworICAgIGggPSBodG1sLmhlYWQoaHRtbC5zY3JpcHQo
c3JjPSJmb28iKSkKKyAgICBhc3NlcnQgdW5pY29kZShoKSA9PSAnPGhlYWQ+PHNjcmlwdCBzcmM9
ImZvbyI+PC9zY3JpcHQ+PC9oZWFkPicKKworZGVmIHRlc3RfaW5saW5lKCk6CisgICAgaCA9IGh0
bWwuZGl2KGh0bWwuc3BhbignZm9vJyksIGh0bWwuc3BhbignYmFyJykpCisgICAgYXNzZXJ0ICho
LnVuaWNvZGUoaW5kZW50PTIpID09CisgICAgICAgICAgICAnPGRpdj48c3Bhbj5mb288L3NwYW4+
PHNwYW4+YmFyPC9zcGFuPjwvZGl2PicpCisKK2RlZiB0ZXN0X29iamVjdF90YWdzKCk6CisgICAg
byA9IGh0bWwub2JqZWN0KGh0bWwub2JqZWN0KCkpCisgICAgYXNzZXJ0IG8udW5pY29kZShpbmRl
bnQ9MCkgPT0gJzxvYmplY3Q+PG9iamVjdD48L29iamVjdD48L29iamVjdD4nCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3Rlc3Rpbmcvcm9vdC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9y
b290L3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1N2E4ZWExOTJmNTBlMjViZWE0NzE0ZjEx
ZGJmYTYzZThiMWM3MjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3Rpbmcvcm9vdC93
M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDIyIEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
K05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3Rpbmcv
cm9vdC9fX2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9yb290L3Rlc3RfYnVpbHRpbi5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvdGVzdGluZy9yb290L3Rlc3RfZXJyb3IucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3Rpbmcvcm9v
dC90ZXN0X3B5X2ltcG9ydHMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3Rpbmcvcm9vdC90ZXN0X3N0ZC5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvdGVzdGluZy9yb290L3Rlc3RfeG1sZ2VuLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
L3Rlc3RpbmcvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvdzNjLWltcG9ydC5sb2cK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTljMmJmMmZhY2NjMmE4NTY1YWRlOTY3YTNmYTczMWJkNmQ4ZjZhMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsx
LDE3IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
TGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvY29uZnRlc3QucHkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvdG94LmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdG94LmluaQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDE2NjFjZjhl
MjI3MjQ3YTdkMGU1NGNlMDZhZTBjNTkxYjRiZDBhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS90b3guaW5pCkBAIC0wLDAgKzEsMzMgQEAKK1t0b3hdCitlbnZsaXN0PXB5ezI3LDM0LDM1LDM2
fS1weXRlc3R7MjksMzAsMzF9CisKK1t0ZXN0ZW52XQorY2hhbmdlZGlyPXRlc3RpbmcKK2NvbW1h
bmRzPQorICAgIHBpcCBpbnN0YWxsIC1VIC4uICMgaGFuZGUgdGhlIGluc3RhbGwgb3JkZXIgZmFs
bG91dCBzaW5jZSBweXRlc3QgZGVwZW5kcyBvbiBwaXAKKwkKKwlweS50ZXN0IC0tY29uZmN1dGRp
cj0uLiAtcmZzeFggLS1qdW5pdHhtbD17ZW52bG9nZGlyfS9qdW5pdC17ZW52bmFtZX0ueG1sIFtd
CitkZXBzPQorCXB5dGVzdDI5OiBweXRlc3R+PTIuOS4wCisJcHl0ZXN0MzA6IHB5dGVzdH49My4w
LjAKKwlweXRlc3QzMTogcHl0ZXN0fj0zLjEuMAorCitbdGVzdGVudjpweTI3LXhkaXN0XQorYmFz
ZXB5dGhvbj1weXRob24yLjcKK2RlcHM9CisgICAgcHl0ZXN0fj0yLjkuMAorICAgIHB5dGVzdC14
ZGlzdDw9MS4xNi4wCitjb21tYW5kcz0KKyAgcGlwIGluc3RhbGwgLVUgLi4gIyBoYW5kZSB0aGUg
aW5zdGFsbCBvcmRlciBmYWxsb3V0IHNpbmNlIHB5dGVzdCBkZXBlbmRzIG9uIHBpcAorICBweS50
ZXN0IC1uMyAtcmZzeFggLS1jb25mY3V0ZGlyPS4uIC0tcnVuc2xvd3Rlc3RzIFwKKyAgICAgICAg
LS1qdW5pdHhtbD17ZW52bG9nZGlyfS9qdW5pdC17ZW52bmFtZX0ueG1sIFtdCisKK1t0ZXN0ZW52
Omp5dGhvbl0KK2NoYW5nZWRpcj10ZXN0aW5nCitjb21tYW5kcz0KKyAgICB7ZW52cHl0aG9ufSAt
bSBwaXAgaW5zdGFsbCAtVSAuLiAjIGhhbmRlIHRoZSBpbnN0YWxsIG9yZGVyIGZhbGxvdXQgc2lu
Y2UgcHl0ZXN0IGRlcGVuZHMgb24gcGlwCisgICAge2VudnB5dGhvbn0gLW0gcHl0ZXN0IC0tY29u
ZmN1dGRpcj0uLiAtcmZzeFggLS1qdW5pdHhtbD17ZW52bG9nZGlyfS9qdW5pdC17ZW52bmFtZX0w
LnhtbCB7cG9zYXJnczppb18gY29kZX0KKworW3B5dGVzdF0KK3JzeW5jZGlycyA9IGNvbmZ0ZXN0
LnB5IHB5IGRvYyB0ZXN0aW5nCithZGRvcHRzID0gLXJhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjY3YjNm
NGY3ZDkyOWM4MDYyOGRiYmNhMzcxMjUwZGEyMTJiNTZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDI2IEBACitUaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L0FV
VEhPUlMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L0NIQU5HRUxPRworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvTElDRU5TRQorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvTUFO
SUZFU1QuaW4KKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5L1JFQURNRS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2FwcHZleW9yLnltbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvY29uZnRlc3QucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3NldHVwLmNmZworL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvc2V0dXAucHkK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3RveC5pbmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvSVNTVUVf
VEVNUExBVEUubWQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL0lTU1VFX1RFTVBMQVRFLm1kCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmZiY2JiMTZmYzM1MWRlN2I3Y2U3MmMyOGMwZTdiMzM2ZWFkYzRjOWUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL0lTU1VFX1RFTVBMQVRFLm1kCkBAIC0wLDAg
KzEsOCBAQAorVGhhbmtzIGZvciBzdWJtaXR0aW5nIGFuIGlzc3VlIQorCitIZXJlJ3MgYSBxdWlj
ayBjaGVja2xpc3QgaW4gd2hhdCB0byBpbmNsdWRlOgorCistIFsgXSBJbmNsdWRlIGEgZGV0YWls
ZWQgZGVzY3JpcHRpb24gb2YgdGhlIGJ1ZyBvciBzdWdnZXN0aW9uCistIFsgXSBgcGlwIGxpc3Rg
IG9mIHRoZSB2aXJ0dWFsIGVudmlyb25tZW50IHlvdSBhcmUgdXNpbmcKKy0gWyBdIHB5dGVzdCBh
bmQgb3BlcmF0aW5nIHN5c3RlbSB2ZXJzaW9ucworLSBbIF0gTWluaW1hbCBleGFtcGxlIGlmIHBv
c3NpYmxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL1BVTExfUkVRVUVTVF9URU1Q
TEFURS5tZCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvUFVMTF9SRVFVRVNUX1RFTVBMQVRFLm1kCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmJmOWZjMTk5ZjU5ZmRlODk1NGIwYWZlNjQ4NjRlMzE0YWU0ZDY1ODkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL1BVTExfUkVRVUVTVF9URU1QTEFURS5t
ZApAQCAtMCwwICsxLDE1IEBACitUaGFua3MgZm9yIHN1Ym1pdHRpbmcgYSBQUiwgeW91ciBjb250
cmlidXRpb24gaXMgcmVhbGx5IGFwcHJlY2lhdGVkIQorCitIZXJlJ3MgYSBxdWljayBjaGVja2xp
c3QgdGhhdCBzaG91bGQgYmUgcHJlc2VudCBpbiBQUnM6CisKKy0gWyBdIEFkZCBhIG5ldyBuZXdz
IGZyYWdtZW50IGludG8gdGhlIGNoYW5nZWxvZyBmb2xkZXIKKyAgKiBuYW1lIGl0IGAkaXNzdWVf
aWQuJHR5cGVgIGZvciBleGFtcGxlICg1ODguYnVnKQorICAqIGlmIHlvdSBkb24ndCBoYXZlIGFu
IGlzc3VlX2lkIGNoYW5nZSBpdCB0byB0aGUgcHIgaWQgYWZ0ZXIgY3JlYXRpbmcgdGhlIHByCisg
ICogZW5zdXJlIHR5cGUgaXMgb25lIG9mIGByZW1vdmFsYCwgYGZlYXR1cmVgLCBgYnVnZml4YCwg
YHZlbmRvcmAsIGBkb2NgIG9yIGB0cml2aWFsYAorICAqIE1ha2Ugc3VyZSB0byB1c2UgZnVsbCBz
ZW50ZW5jZXMgd2l0aCBjb3JyZWN0IGNhc2UgYW5kIHB1bmN0dWF0aW9uLCBmb3IgZXhhbXBsZTog
IkZpeCBpc3N1ZSB3aXRoIG5vbi1hc2NpaSBjb250ZW50cyBpbiBkb2N0ZXN0IHRleHQgZmlsZXMu
IgorLSBbIF0gVGFyZ2V0OiBmb3IgYGJ1Z2ZpeGAsIGB2ZW5kb3JgLCBgZG9jYCBvciBgdHJpdmlh
bGAgZml4ZXMsIHRhcmdldCBgbWFzdGVyYDsgZm9yIHJlbW92YWxzIG9yIGZlYXR1cmVzIHRhcmdl
dCBgZmVhdHVyZXNgOworLSBbIF0gTWFrZSBzdXJlIHRvIGluY2x1ZGUgcmVhc29uYWJsZSB0ZXN0
cyBmb3IgeW91ciBjaGFuZ2UgaWYgbmVjZXNzYXJ5CisKK1VubGVzcyB5b3VyIGNoYW5nZSBpcyBh
IHRyaXZpYWwgb3IgYSBkb2N1bWVudGF0aW9uIGZpeCAoZS5nLiwgIGEgdHlwbyBvciByZXdvcmQg
b2YgYSBzbWFsbCBzZWN0aW9uKSBwbGVhc2U6CisKKy0gWyBdIEFkZCB5b3Vyc2VsZiB0byBgQVVU
SE9SU2AsIGluIGFscGhhYmV0aWNhbCBvcmRlcjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5n
aXRodWIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL3czYy1pbXBvcnQubG9n
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmNhZDg2Y2UwNzAzYTY4NDQ2ZDU5MDA4NTI5ODEyODcwODk1MGYxZDEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL3czYy1pbXBvcnQubG9nCkBAIC0w
LDAgKzEsMTggQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvSVNTVUVfVEVNUExBVEUu
bWQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHViL1BVTExfUkVRVUVTVF9URU1QTEFURS5tZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvQVVUSE9SUyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L0FVVEhPUlMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDRhZTZhYTQzYWIwNzNkYjIxMjYwZTVkMzA0ZTQwNzQ2MDk3NmI5NgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L0FVVEhPUlMKQEAgLTAsMCArMSwxODkgQEAKK0hvbGdlciBLcmVr
ZWwsIGhvbGdlciBhdCBtZXJsaW51eCBldQorbWVybGludXggR21iSCwgR2VybWFueSwgb2ZmaWNl
IGF0IG1lcmxpbnV4IGV1CisKK0NvbnRyaWJ1dG9ycyBpbmNsdWRlOjoKKworQWJkZWFsaSBKSwor
QWJoaWplZXQgS2FzdXJkZQorQWhuIEtpLVdvb2sKK0FsZXhhbmRlciBKb2huc29uCitBbGV4ZWkg
S296bGVub2sKK0FuYXRvbHkgQnViZW5rb2ZmCitBbmRyYXMgVGltCitBbmRyZWFzIFplaWRsZXIK
K0FuZHJ6ZWogT3N0cm93c2tpCitBbmR5IEZyZWVsYW5kCitBbnRob24gdmFuIGRlciBOZXV0CitB
bnRob255IFNvdHRpbGUKK0FudG9ueSBMZWUKK0FybWluIFJpZ28KK0Fyb24gQ3Vyem9uCitBdml2
IFBhbGl2b2RhCitCYXJuZXkgR2FsZQorQmVuIFdlYmIKK0JlbmphbWluIFBldGVyc29uCitCZXJu
YXJkIFByYXR6CitCb2IgSXBwb2xpdG8KK0JyaWFuIERvcnNleQorQnJpYW4gT2trZW4KK0JyaWFu
bmEgTGF1Z2hlcgorQnJ1bm8gT2xpdmVpcmEKK0NhbCBMZWVtaW5nCitDYXJsIEZyaWVkcmljaCBC
b2x6CitDZXJpZHdlbgorQ2hhcmxlcyBDbG91ZAorQ2hhcm5qaXQgU2lOR0ggKENDU0opCitDaHJp
cyBMYW1iCitDaHJpc3RpYW4gQm9lbHNlbgorQ2hyaXN0aWFuIFRoZXVuZXJ0CitDaHJpc3RpYW4g
VGlzbWVyCitDaHJpc3RvcGhlciBHaWxsaW5nCitEYW5pZWwgR3JhbmEKK0RhbmllbCBIYWhsZXIK
K0RhbmllbCBOdXJpCitEYW5pZWwgV2FuZHNjaG5laWRlcgorRGFuaWVsbGUgSmVua2lucworRGF2
ZSBIdW50CitEYXZpZCBEw61hei1CYXJxdWVybworRGF2aWQgTW9ocgorRGF2aWQgVmllcnJhCitE
YXctUmFuIExpb3UKK0RlbmlzIEtpcmlzb3YKK0RpZWdvIFJ1c3NvCitEbWl0cnkgRHlnYWxvCitE
bWl0cnkgUHJpYnlzaAorRHVuY2FuIEJldHRzCitFZGlzb24gR3VzdGF2byBNdWVuegorRWRvYXJk
byBCYXRpbmkKK0VkdWFyZG8gU2NoZXR0aW5vCitFbGkgQm95YXJza2kKK0VsaXphdmV0YSBTaGFz
aGtvdmEKK0VuZHJlIEdhbGFjemkKK0VyaWMgSHVuc2JlcmdlcgorRXJpYyBTaWVnZXJtYW4KK0Vy
aWsgTS4gQnJheQorRmVuZyBNYQorRmxvcmlhbiBCcnVoaW4KK0Zsb3JpcyBCcnV5bm9vZ2hlCitH
YWJyaWVsIFJlaXMKK0dlb3JnZSBLdXNzdW1vdG8KK0dlb3JneSBEeXVsZGluCitHcmFoYW0gSG9y
bGVyCitHcmVnIFByaWNlCitHcmlnIEdoZW9yZ2hpdQorR3JpZ29yaWkgRXJlbWVldiAoYnVkdWxp
YW5pbikKK0d1aWRvIFdlc2RvcnAKK0hhcmFsZCBBcm1pbiBNYXNzYQorSHVnbyB2YW4gS2VtZW5h
ZGUKK0h1aSBXYW5nIChjb2xkbmlnaHQpCitJYW4gQmlja2luZworSmFhcCBCcm9la2h1aXplbgor
SmFuIEJhbHN0ZXIKK0phbm5lIFZhbmhhbGEKK0phc29uIFIuIENvb21icworSmF2aWVyIERvbWlu
Z28gQ2Fuc2lubworSmF2aWVyIFJvbWVybworSmVmZiBXaWRtYW4KK0pvaG4gRWRkaWUgQXlzb24K
K0pvaG4gVG93bGVyCitKb24gU29uZXNlbgorSm9uYXMgT2JyaXN0CitKb3JkYW4gR3V5bW9uCitK
b3JkYW4gTW9sZG93CitKb3NodWEgQnJvbnNvbgorSnVya28gR29zcG9kbmV0acSHCitKdXN0eW5h
IEphbmN6eXN6eW4KK0thbGUgS3VuZGVydAorS2F0YXJ6eW5hIEphY2hpbQorS2V2aW4gQ294CitL
b2RpIEIuIEFyZmVyCitMYXdyZW5jZSBNaXRjaGVsbAorTGVlIEthbWVudHNreQorTGV2IE1heGlt
b3YKK0xsYW5keSBSaXZlcm9uIERlbCBSaXNjbworTG9pYyBFc3RldmUKK0x1a2FzIEJlZG5hcgor
THVrZSBNdXJwaHkKK01hY2llayBGaWphbGtvd3NraQorTWFobworTWFpayBGaWd1cmEKK01hbmRl
ZXAgQmh1dGFuaQorTWFudWVsIEtyZWJiZXIKK01hcmMgU2NobGFpY2gKK01hcmNpbiBCYWNocnkK
K01hcmsgQWJyYW1vd2l0egorTWFya3VzIFVudGVyd2FkaXR6ZXIKK01hcnRpam4gRmFhc3Nlbgor
TWFydGluIEFsdG1heWVyCitNYXJ0aW4gSy4gU2NoZXJlcgorTWFydGluIFBydXNzZQorTWF0aGll
dSBDbGFiYXV0CitNYXR0IEJhY2htYW5uCitNYXR0IER1Y2sKK01hdHQgV2lsbGlhbXMKK01hdHRo
aWFzIEhhZm5lcgorTWF4aW0gRmlsaXBlbmtvCittYnl0CitNaWNoYWVsIEFxdWlsaW5hCitNaWNo
YWVsIEJpcnR3ZWxsCitNaWNoYWVsIERyb2V0dGJvb20KK01pY2hhZWwgU2VpZmVydAorTWljaGFs
IFdhanN6Y3p1aworTWloYWkgQ2Fwb3TEgworTWlrZSBMdW5keQorTmF0aGFuaWVsIFdhaXNicm90
CitOZWQgQmF0Y2hlbGRlcgorTmV2ZW4gTXVuZGFyCitOaWNvbGFzIERlbGFieQorT2xlZyBQaWRz
YWRueWkKK09saXZlciBCZXN0d2FsdGVyCitPbWFyIEtvaGwKK09tZXIgSGFkYXJpCitQYXRyaWNr
IEhheWVzCitQYXdlxYIgQWRhbWN6YWsKK1BpZXRlciBNdWxkZXIKK1Bpb3RyIEJhbmFzemtpZXdp
Y3oKK1B1bnlhc2hsb2thIEJpc3dhbAorUXVlbnRpbiBQcmFkZXQKK1JhbGYgU2NobWl0dAorUmFu
IEJlbml0YQorUmFwaGFlbCBQaWVyemluYQorUmFxdWVsIEFsZWdyZQorUmF2aSBDaGFuZHJhCitS
b2JlcnRvIFBvbGxpCitSb21haW4gRG9yZ3VlaWwKK1JvbWFuIEJvbHNoYWtvdgorUm9ubnkgUGZh
bm5zY2htaWR0CitSb3NzIExhd2xleQorUnVzc2VsIFdpbmRlcgorUnlhbiBXb29kZW4KK1NhbXVl
bCBEaW9uLUdpcmFyZGVhdQorU2FtdWVsZSBQZWRyb25pCitTZWdldiBGaW5lcgorU2ltb24gR29t
aXplbGoKK1NreWxhciBEb3duZXMKK1NyaW5pdmFzIFJlZGR5IFRoYXRpcGFydGh5CitTdGVmYW4g
RmFybWJhdWVyCitTdGVmYW4gWmltbWVybWFubgorU3RlZmFubyBUYXNjaGluaQorU3RlZmZlbiBB
bGxuZXIKK1N0ZXBoYW4gT2Jlcm1hbm4KK1RhcmNpc2lvIEZpc2NoZXIKK1RhcmVxIEFsYXlhbgor
VGVkIFhpYW8KK1Rob21hcyBHcmFpbmdlcgorVGhvbWFzIEhpc2NoCitUb20gRGFsdG9uCitUb20g
VmluZXIKK1RyZXZvciBCZWtvbGF5CitUeWxlciBHb29kbGV0CitWYXNpbHkgS3V6bmV0c292CitW
aWN0b3IgVXJpYXJ0ZQorVmlkYXIgVC4gRmF1c2tlCitWaXRhbHkgTGFzaG1hbm92CitWbGFkIERy
YWdvcworV291dGVyIHZhbiBBY2tvb3kKK1h1YW4gTHVvbmcKK1h1ZWNvbmcgTGlhbworWm9sdMOh
biBNw6F0w6kKK1JvbGFuZCBQdW50YWllcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvQ0hBTkdF
TE9HLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L0NIQU5HRUxPRy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2U3YmZhZjA0
NDE1ZDgzNWIzYWYyOTA5YjJhY2IwNjFmYTAwNDFjNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L0NIQU5HRUxPRy5yc3QKQEAgLTAsMCArMSw0MTk0IEBACisuLiAKKyAgICBZb3Ugc2hv
dWxkICpOT1QqIGJlIGFkZGluZyBuZXcgY2hhbmdlIGxvZyBlbnRyaWVzIHRvIHRoaXMgZmlsZSwg
dGhpcworICAgIGZpbGUgaXMgbWFuYWdlZCBieSB0b3duY3JpZXIuIFlvdSAqbWF5KiBlZGl0IHBy
ZXZpb3VzIGNoYW5nZSBsb2dzIHRvCisgICAgZml4IHByb2JsZW1zIGxpa2UgdHlwbyBjb3JyZWN0
aW9ucyBvciBzdWNoLgorICAgIFRvIGFkZCBhIG5ldyBjaGFuZ2UgbG9nIGVudHJ5LCBwbGVhc2Ug
c2VlCisgICAgaHR0cHM6Ly9waXAucHlwYS5pby9lbi9sYXRlc3QvZGV2ZWxvcG1lbnQvI2FkZGlu
Zy1hLW5ld3MtZW50cnkKKyAgICB3ZSBuYW1lZCB0aGUgbmV3cyBmb2xkZXIgY2hhbmdlbG9nCisK
Ky4uIHRvd25jcmllciByZWxlYXNlIG5vdGVzIHN0YXJ0CisKK1B5dGVzdCAzLjMuMCAoMjAxNy0x
MS0yMykKKz09PT09PT09PT09PT09PT09PT09PT09PT0KKworRGVwcmVjYXRpb25zIGFuZCBSZW1v
dmFscworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIFB5dGVzdCBubyBsb25nZXIgc3Vw
cG9ydHMgUHl0aG9uICoqMi42KiogYW5kICoqMy4zKiouIFRob3NlIFB5dGhvbiB2ZXJzaW9ucwor
ICBhcmUgRU9MIGZvciBzb21lIHRpbWUgbm93IGFuZCBpbmN1ciBtYWludGVuYW5jZSBhbmQgY29t
cGF0aWJpbGl0eSBjb3N0cyBvbgorICB0aGUgcHl0ZXN0IGNvcmUgdGVhbSwgYW5kIGZvbGxvd2lu
ZyB1cCB3aXRoIHRoZSByZXN0IG9mIHRoZSBjb21tdW5pdHkgd2UKKyAgZGVjaWRlZCB0aGF0IHRo
ZXkgd2lsbCBubyBsb25nZXIgYmUgc3VwcG9ydGVkIHN0YXJ0aW5nIG9uIHRoaXMgdmVyc2lvbi4g
VXNlcnMKKyAgd2hpY2ggc3RpbGwgcmVxdWlyZSB0aG9zZSB2ZXJzaW9ucyBzaG91bGQgcGluIHB5
dGVzdCB0byBgYDwzLjNgYC4gKGAjMjgxMgorICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy8yODEyPmBfKQorCistIFJlbW92ZSBpbnRlcm5hbCBgYF9wcmVsb2Fk
cGx1Z2lucygpYGAgZnVuY3Rpb24uIFRoaXMgcmVtb3ZhbCBpcyBwYXJ0IG9mIHRoZQorICBgYHB5
dGVzdF9uYW1lc3BhY2UoKWBgIGhvb2sgZGVwcmVjYXRpb24uIChgIzI2MzYKKyAgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjYzNj5gXykKKworLSBJbnRlcm5h
bGx5IGNoYW5nZSBgYENhbGxTcGVjMmBgIHRvIGhhdmUgYSBsaXN0IG9mIG1hcmtzIGluc3RlYWQg
b2YgYSBicm9rZW4KKyAgbWFwcGluZyBvZiBrZXl3b3Jkcy4gVGhpcyByZW1vdmVzIHRoZSBrZXl3
b3JkcyBhdHRyaWJ1dGUgb2YgdGhlIGludGVybmFsCisgIGBgQ2FsbFNwZWMyYGAgY2xhc3MuIChg
IzI2NzIKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjY3
Mj5gXykKKworLSBSZW1vdmUgUGFyYW1ldGVyU2V0LmRlcHJlY2F0ZWRfYXJnX2RpY3QgLSBpdHMg
bm90IGEgcHVibGljIGFwaSBhbmQgdGhlIGxhY2sKKyAgb2YgdGhlIHVuZGVyc2NvcmUgd2FzIGEg
bmFtaW5nIGVycm9yLiAoYCMyNjc1CisgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvaXNzdWVzLzI2NzU+YF8pCisKKy0gUmVtb3ZlIHRoZSBpbnRlcm5hbCBtdWx0aS10eXBl
ZCBhdHRyaWJ1dGUgYGBOb2RlLl9ldmFsc2tpcGBgIGFuZCByZXBsYWNlIGl0CisgIHdpdGggdGhl
IGJvb2xlYW4gYGBOb2RlLl9za2lwcGVkX2J5X21hcmtgYC4gKGAjMjc2NworICA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNzY3PmBfKQorCistIFRoZSBgYHBh
cmFtc2BgIGxpc3QgcGFzc2VkIHRvIGBgcHl0ZXN0LmZpeHR1cmVgYCBpcyBub3cgZm9yCisgIGFs
bCBlZmZlY3RzIGNvbnNpZGVyZWQgaW1tdXRhYmxlIGFuZCBmcm96ZW4gYXQgdGhlIG1vbWVudCBv
ZiB0aGUgYGBweXRlc3QuZml4dHVyZWBgCisgIGNhbGwuIFByZXZpb3VzbHkgdGhlIGxpc3QgY291
bGQgYmUgY2hhbmdlZCBiZWZvcmUgdGhlIGZpcnN0IGludm9jYXRpb24gb2YgdGhlIGZpeHR1cmUK
KyAgYWxsb3dpbmcgZm9yIGEgZm9ybSBvZiBkeW5hbWljIHBhcmFtZXRyaXphdGlvbiAoZm9yIGV4
YW1wbGUsIHVwZGF0ZWQgZnJvbSBjb21tYW5kLWxpbmUgb3B0aW9ucyksCisgIGJ1dCB0aGlzIHdh
cyBhbiB1bndhbnRlZCBpbXBsZW1lbnRhdGlvbiBkZXRhaWwgd2hpY2ggY29tcGxpY2F0ZWQgdGhl
IGludGVybmFscyBhbmQgcHJldmVudGVkCisgIHNvbWUgaW50ZXJuYWwgY2xlYW51cC4gU2VlIGlz
c3VlIGAjMjk1OSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8y
OTU5PmBfCisgIGZvciBkZXRhaWxzIGFuZCBhIHJlY29tbWVuZGVkIHdvcmthcm91bmQuCisKK0Zl
YXR1cmVzCistLS0tLS0tLQorCistIGBgcHl0ZXN0X2ZpeHR1cmVfcG9zdF9maW5hbGl6ZXJgYCBo
b29rIGNhbiBub3cgcmVjZWl2ZSBhIGBgcmVxdWVzdGBgCisgIGFyZ3VtZW50LiAoYCMyMTI0IDxo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzIxMjQ+YF8pCisKKy0g
UmVwbGFjZSB0aGUgb2xkIGludHJvc3BlY3Rpb24gY29kZSBpbiBjb21wYXQucHkgdGhhdCBkZXRl
cm1pbmVzIHRoZSBhdmFpbGFibGUKKyAgYXJndW1lbnRzIG9mIGZpeHR1cmVzIHdpdGggaW5zcGVj
dC5zaWduYXR1cmUgb24gUHl0aG9uIDMgYW5kCisgIGZ1bmNzaWdzLnNpZ25hdHVyZSBvbiBQeXRo
b24gMi4gVGhpcyBzaG91bGQgcmVzcGVjdCBgYF9fc2lnbmF0dXJlX19gYAorICBkZWNsYXJhdGlv
bnMgb24gZnVuY3Rpb25zLiAoYCMyMjY3CisgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvaXNzdWVzLzIyNjc+YF8pCisKKy0gUmVwb3J0IHRlc3RzIHdpdGggZ2xvYmFsIGBg
cHl0ZXN0bWFya2BgIHZhcmlhYmxlIG9ubHkgb25jZS4gKGAjMjU0OQorICA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNTQ5PmBfKQorCistIE5vdyBweXRlc3Qg
ZGlzcGxheXMgdGhlIHRvdGFsIHByb2dyZXNzIHBlcmNlbnRhZ2Ugd2hpbGUgcnVubmluZyB0ZXN0
cy4gVGhlCisgIHByZXZpb3VzIG91dHB1dCBzdHlsZSBjYW4gYmUgc2V0IGJ5IGNvbmZpZ3VyaW5n
IHRoZSBgYGNvbnNvbGVfb3V0cHV0X3N0eWxlYGAKKyAgc2V0dGluZyB0byBgYGNsYXNzaWNgYC4g
KGAjMjY1NyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNjU3
PmBfKQorCistIE1hdGNoIGBgd2FybnNgYCBzaWduYXR1cmUgdG8gYGByYWlzZXNgYCBieSBhZGRp
bmcgYGBtYXRjaGBgIGtleXdvcmQuIChgIzI3MDgKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjcwOD5gXykKKworLSBQeXRlc3Qgbm93IGNhcHR1cmVzIGFu
ZCBkaXNwbGF5cyBvdXRwdXQgZnJvbSB0aGUgc3RhbmRhcmQgYGxvZ2dpbmdgIG1vZHVsZS4KKyAg
VGhlIHVzZXIgY2FuIGNvbnRyb2wgdGhlIGxvZ2dpbmcgbGV2ZWwgdG8gYmUgY2FwdHVyZWQgYnkg
c3BlY2lmeWluZyBvcHRpb25zCisgIGluIGBgcHl0ZXN0LmluaWBgLCB0aGUgY29tbWFuZCBsaW5l
IGFuZCBhbHNvIGR1cmluZyBpbmRpdmlkdWFsIHRlc3RzIHVzaW5nCisgIG1hcmtlcnMuIEFsc28s
IGEgYGBjYXBsb2dgYCBmaXh0dXJlIGlzIGF2YWlsYWJsZSB0aGF0IGVuYWJsZXMgdXNlcnMgdG8g
dGVzdAorICB0aGUgY2FwdHVyZWQgbG9nIGR1cmluZyBzcGVjaWZpYyB0ZXN0cyAoc2ltaWxhciB0
byBgYGNhcHN5c2BgIGZvciBleGFtcGxlKS4KKyAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFz
ZSBzZWUgdGhlIGBsb2dnaW5nIGRvY3MKKyAgPGh0dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xh
dGVzdC9sb2dnaW5nLmh0bWw+YF8uIFRoaXMgZmVhdHVyZSB3YXMKKyAgaW50cm9kdWNlZCBieSBt
ZXJnaW5nIHRoZSBwb3B1bGFyIGBweXRlc3QtY2F0Y2hsb2cKKyAgPGh0dHBzOi8vcHlwaS5vcmcv
cHJvamVjdC9weXRlc3QtY2F0Y2hsb2cvPmBfIHBsdWdpbiwgdGhhbmtzIHRvIGBUaG9tYXMgSGlz
Y2gKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS90aGlzY2g+YF8uIEJlIGFkdmlzZWQgdGhhdCBkdXJp
bmcgdGhlIG1lcmdpbmcgdGhlCisgIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgaW50ZXJmYWNlIHdp
dGggdGhlIGRlZnVuY3QgYGBweXRlc3QtY2FwdHVyZWxvZ2BgIGhhcworICBiZWVuIGRyb3BwZWQu
IChgIzI3OTQgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjc5
ND5gXykKKworLSBBZGQgYGBhbGxvd19tb2R1bGVfbGV2ZWxgYCBrd2FyZyB0byBgYHB5dGVzdC5z
a2lwKClgYCwgZW5hYmxpbmcgdG8gc2tpcCB0aGUKKyAgd2hvbGUgbW9kdWxlLiAoYCMyODA4IDxo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI4MDg+YF8pCisKKy0g
QWxsb3cgc2V0dGluZyBgYGZpbGVfb3JfZGlyYGAsIGBgLWNgYCwgYW5kIGBgLW9gYCBpbiBQWVRF
U1RfQURET1BUUy4gKGAjMjgyNAorICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0
ZXN0L2lzc3Vlcy8yODI0PmBfKQorCistIFJldHVybiBzdGRvdXQvc3RkZXJyIGNhcHR1cmUgcmVz
dWx0cyBhcyBhIGBgbmFtZWR0dXBsZWBgLCBzbyBgYG91dGBgIGFuZAorICBgYGVycmBgIGNhbiBi
ZSBhY2Nlc3NlZCBieSBhdHRyaWJ1dGUuIChgIzI4NzkKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9w
eXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjg3OT5gXykKKworLSBBZGQgYGBjYXBmZGJpbmFyeWBg
LCBhIHZlcnNpb24gb2YgYGBjYXBmZGBgIHdoaWNoIHJldHVybnMgYnl0ZXMgZnJvbQorICBgYHJl
YWRvdXRlcnIoKWBgLiAoYCMyOTIzCisgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvaXNzdWVzLzI5MjM+YF8pCisKKy0gQWRkIGBgY2Fwc3lzYmluYXJ5YGAgYSB2ZXJzaW9u
IG9mIGBgY2Fwc3lzYGAgd2hpY2ggcmV0dXJucyBieXRlcyBmcm9tCisgIGBgcmVhZG91dGVycigp
YGAuIChgIzI5MzQKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvMjkzND5gXykKKworLSBJbXBsZW1lbnQgZmVhdHVyZSB0byBza2lwIGBgc2V0dXAucHlgYCBm
aWxlcyB3aGVuIHJ1biB3aXRoCisgIGBgLS1kb2N0ZXN0LW1vZHVsZXNgYC4gKGAjNTAyCisgIDxo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUwMj5gXykKKworCitC
dWcgRml4ZXMKKy0tLS0tLS0tLQorCistIFJlc3VtZSBvdXRwdXQgY2FwdHVyaW5nIGFmdGVyIGBg
Y2Fwc3lzL2NhcGZkLmRpc2FibGVkKClgYCBjb250ZXh0IG1hbmFnZXIuCisgIChgIzE5OTMgPGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTk5Mz5gXykKKworLSBg
YHB5dGVzdF9maXh0dXJlX3NldHVwYGAgYW5kIGBgcHl0ZXN0X2ZpeHR1cmVfcG9zdF9maW5hbGl6
ZXJgYCBob29rcyBhcmUgbm93CisgIGNhbGxlZCBmb3IgYWxsIGBgY29uZnRlc3QucHlgYCBmaWxl
cy4gKGAjMjEyNAorICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy8yMTI0PmBfKQorCistIElmIGFuIGV4Y2VwdGlvbiBoYXBwZW5zIHdoaWxlIGxvYWRpbmcgYSBw
bHVnaW4sIHB5dGVzdCBubyBsb25nZXIgaGlkZXMgdGhlCisgIG9yaWdpbmFsIHRyYWNlYmFjay4g
SW4gcHl0aG9uMiBpdCB3aWxsIHNob3cgdGhlIG9yaWdpbmFsIHRyYWNlYmFjayB3aXRoIGEgbmV3
CisgIG1lc3NhZ2UgdGhhdCBleHBsYWlucyBpbiB3aGljaCBwbHVnaW4uIEluIHB5dGhvbjMgaXQg
d2lsbCBzaG93IDIgY2Fub25pemVkCisgIGV4Y2VwdGlvbnMsIHRoZSBvcmlnaW5hbCBleGNlcHRp
b24gd2hpbGUgbG9hZGluZyB0aGUgcGx1Z2luIGluIGFkZGl0aW9uIHRvIGFuCisgIGV4Y2VwdGlv
biB0aGF0IFB5VGVzdCB0aHJvd3MgYWJvdXQgbG9hZGluZyBhIHBsdWdpbi4gKGAjMjQ5MQorICA8
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNDkxPmBfKQorCist
IGBgY2Fwc3lzYGAgYW5kIGBgY2FwZmRgYCBjYW4gbm93IGJlIHVzZWQgYnkgb3RoZXIgZml4dHVy
ZXMuIChgIzI3MDkKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvMjcwOT5gXykKKworLSBJbnRlcm5hbCBgYHB5dGVzdGVyYGAgcGx1Z2luIHByb3Blcmx5IGVu
Y29kZXMgYGBieXRlc2BgIGFyZ3VtZW50cyB0bworICBgYHV0Zi04YGAuIChgIzI3MzggPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjczOD5gXykKKworLSBgYHRl
c3RkaXJgYCBub3cgdXNlcyB1c2UgdGhlIHNhbWUgbWV0aG9kIHVzZWQgYnkgYGB0bXBkaXJgYCB0
byBjcmVhdGUgaXRzCisgIHRlbXBvcmFyeSBkaXJlY3RvcnkuIFRoaXMgY2hhbmdlcyB0aGUgZmlu
YWwgc3RydWN0dXJlIG9mIHRoZSBgYHRlc3RkaXJgYAorICBkaXJlY3Rvcnkgc2xpZ2h0bHksIGJ1
dCBzaG91bGQgbm90IGFmZmVjdCB1c2FnZSBpbiBub3JtYWwgc2NlbmFyaW9zIGFuZAorICBhdm9p
ZHMgYSBudW1iZXIgb2YgcG90ZW50aWFsIHByb2JsZW1zLiAoYCMyNzUxCisgIDxodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI3NTE+YF8pCisKKy0gUHl0ZXN0IG5v
IGxvbmdlciBjb21wbGFpbnMgYWJvdXQgd2FybmluZ3Mgd2l0aCB1bmljb2RlIG1lc3NhZ2VzIGJl
aW5nCisgIG5vbi1hc2NpaSBjb21wYXRpYmxlIGV2ZW4gZm9yIGFzY2lpLWNvbXBhdGlibGUgbWVz
c2FnZXMuIEFzIGEgcmVzdWx0IG9mIHRoaXMsCisgIHdhcm5pbmdzIHdpdGggdW5pY29kZSBtZXNz
YWdlcyBhcmUgY29udmVydGVkIGZpcnN0IHRvIGFuIGFzY2lpIHJlcHJlc2VudGF0aW9uCisgIGZv
ciBzYWZldHkuIChgIzI4MDkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvMjgwOT5gXykKKworLSBDaGFuZ2UgcmV0dXJuIHZhbHVlIG9mIHB5dGVzdCBjb21tYW5k
IHdoZW4gYGAtLW1heGZhaWxgYCBpcyByZWFjaGVkIGZyb20KKyAgYGAyYGAgKGludGVycnVwdGVk
KSB0byBgYDFgYCAoZmFpbGVkKS4gKGAjMjg0NQorICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0L2lzc3Vlcy8yODQ1PmBfKQorCistIEZpeCBpc3N1ZSBpbiBhc3NlcnRpb24g
cmV3cml0aW5nIHdoaWNoIGNvdWxkIGxlYWQgaXQgdG8gcmV3cml0ZSBtb2R1bGVzIHdoaWNoCisg
IHNob3VsZCBub3QgYmUgcmV3cml0dGVuLiAoYCMyOTM5CisgIDxodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI5Mzk+YF8pCisKKy0gSGFuZGxlIG1hcmtzIHdpdGhv
dXQgZGVzY3JpcHRpb24gaW4gYGBweXRlc3QuaW5pYGAuIChgIzI5NDIKKyAgPGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjk0Mj5gXykKKworCitUcml2aWFsL0lu
dGVybmFsIENoYW5nZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIHB5dGVzdCBub3cg
ZGVwZW5kcyBvbiBgYXR0cnMgPGh0dHBzOi8vcHlwaS5vcmcvcHJvamVjdC9hdHRycy8+YF8gZm9y
IGludGVybmFsCisgIHN0cnVjdHVyZXMgdG8gZWFzZSBjb2RlIG1haW50YWluYWJpbGl0eS4gKGAj
MjY0MQorICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNjQx
PmBfKQorCistIFJlZmFjdG9yZWQgaW50ZXJuYWwgUHl0aG9uIDIvMyBjb21wYXRpYmlsaXR5IGNv
ZGUgdG8gdXNlIGBgc2l4YGAuIChgIzI2NDIKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3B5dGVzdC9pc3N1ZXMvMjY0Mj5gXykKKworLSBTdG9wIHZlbmRvcmluZyBgYHBsdWdneWBg
IC0gd2UncmUgbWlzc2luZyBvdXQgb24gaXRzIGxhdGVzdCBjaGFuZ2VzIGZvciBub3QKKyAgbXVj
aCBiZW5lZml0IChgIzI3MTkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvMjcxOT5gXykKKworLSBJbnRlcm5hbCByZWZhY3Rvcjogc2ltcGxpZnkgYXNjaWkgc3Ry
aW5nIGVzY2FwaW5nIGJ5IHVzaW5nIHRoZQorICBiYWNrc2xhc2hyZXBsYWNlIGVycm9yIGhhbmRs
ZXIgaW4gbmV3ZXIgUHl0aG9uIDMgdmVyc2lvbnMuIChgIzI3MzQKKyAgPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjczND5gXykKKworLSBSZW1vdmUgdW5uZWNl
c3NhcnkgbWFyayBldmFsdWF0b3IgaW4gdW5pdHRlc3QgcGx1Z2luIChgIzI3NjcKKyAgPGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjc2Nz5gXykKKworLSBDYWxs
cyB0byBgYE1ldGFmdW5jLmFkZGNhbGxgYCBub3cgZW1pdCBhIGRlcHJlY2F0aW9uIHdhcm5pbmcu
IFRoaXMgZnVuY3Rpb24KKyAgaXMgc2NoZWR1bGVkIHRvIGJlIHJlbW92ZWQgaW4gYGBweXRlc3Qt
NC4wYGAuIChgIzI4NzYKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvMjg3Nj5gXykKKworLSBJbnRlcm5hbCBtb3ZlIG9mIHRoZSBwYXJhbWV0ZXJzZXQgZXh0
cmFjdGlvbiB0byBhIG1vcmUgbWFpbnRhaW5hYmxlIHBsYWNlLgorICAoYCMyODc3IDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI4Nzc+YF8pCisKKy0gSW50ZXJu
YWwgcmVmYWN0b3JpbmcgdG8gc2ltcGxpZnkgc2NvcGUgbm9kZSBsb29rdXAuIChgIzI5MTAKKyAg
PGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjkxMD5gXykKKwor
LSBDb25maWd1cmUgYGBweXRlc3RgYCB0byBwcmV2ZW50IHBpcCBmcm9tIGluc3RhbGxpbmcgcHl0
ZXN0IGluIHVuc3VwcG9ydGVkCisgIFB5dGhvbiB2ZXJzaW9ucy4gKGAjMjkyMgorICA8aHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yOTIyPmBfKQorCisKK1B5dGVz
dCAzLjIuNSAoMjAxNy0xMS0xNSkKKz09PT09PT09PT09PT09PT09PT09PT09PT0KKworQnVnIEZp
eGVzCistLS0tLS0tLS0KKworLSBSZW1vdmUgYGBweTwxLjVgYCByZXN0cmljdGlvbiBmcm9tIGBg
cHl0ZXN0YGAgYXMgdGhpcyBjYW4gY2F1c2UgdmVyc2lvbgorICBjb25mbGljdHMgaW4gc29tZSBp
bnN0YWxsYXRpb25zLiAoYCMyOTI2CisgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvaXNzdWVzLzI5MjY+YF8pCisKKworUHl0ZXN0IDMuMi40ICgyMDE3LTExLTEzKQorPT09
PT09PT09PT09PT09PT09PT09PT09PQorCitCdWcgRml4ZXMKKy0tLS0tLS0tLQorCistIEZpeCB0
aGUgYnVnIHdoZXJlIHJ1bm5pbmcgd2l0aCBgYC0tcHlhcmdzYGAgd2lsbCByZXN1bHQgaW4gaXRl
bXMgd2l0aAorICBlbXB0eSBgYHBhcmVudC5ub2RlaWRgYCBpZiBydW4gZnJvbSBhIGRpZmZlcmVu
dCByb290IGRpcmVjdG9yeS4gKGAjMjc3NQorICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy8yNzc1PmBfKQorCistIEZpeCBpc3N1ZSB3aXRoIGBgQHB5dGVzdC5w
YXJhbWV0cml6ZWBgIGlmIGFyZ25hbWVzIHdhcyBzcGVjaWZpZWQgYXMga2V5d29yZCBhcmd1bWVu
dHMuCisgIChgIzI4MTkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvMjgxOT5gXykKKworLSBTdHJpcCB3aGl0ZXNwYWNlIGZyb20gbWFya2VyIG5hbWVzIHdoZW4g
cmVhZGluZyB0aGVtIGZyb20gSU5JIGNvbmZpZy4gKGAjMjg1NgorICA8aHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yODU2PmBfKQorCistIFNob3cgZnVsbCBjb250
ZXh0IG9mIGRvY3Rlc3Qgc291cmNlIGluIHRoZSBweXRlc3Qgb3V0cHV0LCBpZiB0aGUgbGluZSBu
dW1iZXIgb2YKKyAgZmFpbGVkIGV4YW1wbGUgaW4gdGhlIGRvY3N0cmluZyBpcyA8IDkuIChgIzI4
ODIKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjg4Mj5g
XykKKworLSBNYXRjaCBmaXh0dXJlIHBhdGhzIGFnYWluc3QgYWN0dWFsIHBhdGggc2VnbWVudHMg
aW4gb3JkZXIgdG8gYXZvaWQgbWF0Y2hpbmcgZm9sZGVycyB3aGljaCBzaGFyZSBhIHByZWZpeC4K
KyAgKGAjMjgzNiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8y
ODM2PmBfKQorCitJbXByb3ZlZCBEb2N1bWVudGF0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisKKy0gSW50cm9kdWNlIGEgZGVkaWNhdGVkIHNlY3Rpb24gYWJvdXQgY29uZnRlc3QucHkuIChg
IzE1MDUKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTUw
NT5gXykKKworLSBFeHBsaWNpdGx5IG1lbnRpb24gYGB4cGFzc2BgIGluIHRoZSBkb2N1bWVudGF0
aW9uIG9mIGBgeGZhaWxgYC4gKGAjMTk5NworICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy8xOTk3PmBfKQorCistIEFwcGVuZCBleGFtcGxlIGZvciBweXRlc3Qu
cGFyYW0gaW4gdGhlIGV4YW1wbGUvcGFyYW1ldHJpemUgZG9jdW1lbnQuIChgIzI2NTgKKyAgPGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjY1OD5gXykKKworLSBD
bGFyaWZ5IGxhbmd1YWdlIG9mIHByb3Bvc2FsIGZvciBmaXh0dXJlcyBwYXJhbWV0ZXJzIChgIzI4
OTMKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjg5Mz5g
XykKKworLSBMaXN0IHB5dGhvbiAzLjYgaW4gdGhlIGRvY3VtZW50ZWQgc3VwcG9ydGVkIHZlcnNp
b25zIGluIHRoZSBnZXR0aW5nIHN0YXJ0ZWQKKyAgZG9jdW1lbnQuIChgIzI5MDMgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjkwMz5gXykKKworLSBDbGFyaWZ5
IHRoZSBkb2N1bWVudGF0aW9uIG9mIGF2YWlsYWJsZSBmaXh0dXJlIHNjb3Blcy4gKGAjNTM4Cisg
IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzUzOD5gXykKKwor
LSBBZGQgZG9jdW1lbnRhdGlvbiBhYm91dCB0aGUgYGBweXRob24gLW0gcHl0ZXN0YGAgaW52b2Nh
dGlvbiBhZGRpbmcgdGhlCisgIGN1cnJlbnQgZGlyZWN0b3J5IHRvIHN5cy5wYXRoLiAoYCM5MTEK
KyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvOTExPmBfKQor
CisKK1B5dGVzdCAzLjIuMyAoMjAxNy0xMC0wMykKKz09PT09PT09PT09PT09PT09PT09PT09PT0K
KworQnVnIEZpeGVzCistLS0tLS0tLS0KKworLSBGaXggY3Jhc2ggaW4gdGFiIGNvbXBsZXRpb24g
d2hlbiBubyBwcmVmaXggaXMgZ2l2ZW4uIChgIzI3NDgKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9w
eXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjc0OD5gXykKKworLSBUaGUgZXF1YWxpdHkgY2hlY2tp
bmcgZnVuY3Rpb24gKGBgX19lcV9fYGApIG9mIGBgTWFya0RlY29yYXRvcmBgIHJldHVybnMKKyAg
YGBGYWxzZWBgIGlmIG9uZSBvYmplY3QgaXMgbm90IGFuIGluc3RhbmNlIG9mIGBgTWFya0RlY29y
YXRvcmBgLiAoYCMyNzU4CisgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
aXNzdWVzLzI3NTg+YF8pCisKKy0gV2hlbiBydW5uaW5nIGBgcHl0ZXN0IC0tZml4dHVyZXMtcGVy
LXRlc3RgYDogZG9uJ3QgY3Jhc2ggaWYgYW4gaXRlbSBoYXMgbm8KKyAgX2ZpeHR1cmVpbmZvIGF0
dHJpYnV0ZSAoZS5nLiBkb2N0ZXN0cykgKGAjMjc4OAorICA8aHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNzg4PmBfKQorCisKK0ltcHJvdmVkIERvY3VtZW50YXRp
b24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBJbiBoZWxwIHRleHQgb2YgYGAta2BgIG9w
dGlvbiwgYWRkIGV4YW1wbGUgb2YgdXNpbmcgYGBub3RgYCB0byBub3Qgc2VsZWN0CisgIGNlcnRh
aW4gdGVzdHMgd2hvc2UgbmFtZXMgbWF0Y2ggdGhlIHByb3ZpZGVkIGV4cHJlc3Npb24uIChgIzE0
NDIKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTQ0Mj5g
XykKKworLSBBZGQgbm90ZSBpbiBgYHBhcmFtZXRyaXplLnJzdGBgIGFib3V0IGNhbGxpbmcgYGBt
ZXRhZnVuYy5wYXJhbWV0cml6ZWBgCisgIG11bHRpcGxlIHRpbWVzLiAoYCMxNTQ4IDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE1NDg+YF8pCisKKworVHJpdmlh
bC9JbnRlcm5hbCBDaGFuZ2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBTZXQgYGB4
ZmFpbF9zdHJpY3Q9VHJ1ZWBgIGluIHB5dGVzdCdzIG93biB0ZXN0IHN1aXRlIHRvIGNhdGNoIGV4
cGVjdGVkCisgIGZhaWx1cmVzIGFzIHNvb24gYXMgdGhleSBzdGFydCB0byBwYXNzLiAoYCMyNzIy
CisgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI3MjI+YF8p
CisKKy0gRml4IHR5cG8gaW4gZXhhbXBsZSBvZiBwYXNzaW5nIGEgY2FsbGFibGUgdG8gbWFya2Vy
cyAoaW4gZXhhbXBsZS9tYXJrZXJzLnJzdCkKKyAgKGAjMjc2NSA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNzY1PmBfKQorCisKK1B5dGVzdCAzLjIuMiAoMjAx
Ny0wOS0wNikKKz09PT09PT09PT09PT09PT09PT09PT09PT0KKworQnVnIEZpeGVzCistLS0tLS0t
LS0KKworLSBDYWxsaW5nIHRoZSBkZXByZWNhdGVkIGByZXF1ZXN0LmdldGZ1bmNhcmd2YWx1ZSgp
YCBub3cgc2hvd3MgdGhlIHNvdXJjZSBvZgorICB0aGUgY2FsbC4gKGAjMjY4MSA8aHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNjgxPmBfKQorCistIEFsbG93IHRl
c3RzIGRlY2xhcmVkIGFzIGBgQHN0YXRpY21ldGhvZGBgIHRvIHVzZSBmaXh0dXJlcy4gKGAjMjY5
OQorICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNjk5PmBf
KQorCistIEZpeGVkIGVkZ2UtY2FzZSBkdXJpbmcgY29sbGVjdGlvbjogYXR0cmlidXRlcyB3aGlj
aCByYWlzZWQgYGBweXRlc3QuZmFpbGBgCisgIHdoZW4gYWNjZXNzZWQgd291bGQgYWJvcnQgdGhl
IGVudGlyZSBjb2xsZWN0aW9uLiAoYCMyNzA3CisgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9weXRlc3QvaXNzdWVzLzI3MDc+YF8pCisKKy0gRml4IGBgUmVwckZ1bmNBcmdzYGAgd2l0
aCBtaXhlZCB1bmljb2RlIGFuZCBVVEYtOCBhcmdzLiAoYCMyNzMxCisgIDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI3MzE+YF8pCisKKworSW1wcm92ZWQgRG9j
dW1lbnRhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIEluIGV4YW1wbGVzIG9uIHdv
cmtpbmcgd2l0aCBjdXN0b20gbWFya2VycywgYWRkIGV4YW1wbGVzIGRlbW9uc3RyYXRpbmcgdGhl
CisgIHVzYWdlIG9mIGBgcHl0ZXN0Lm1hcmsuTUFSS0VSX05BTUUud2l0aF9hcmdzYGAgaW4gY29t
cGFyaXNvbiB3aXRoCisgIGBgcHl0ZXN0Lm1hcmsuTUFSS0VSX05BTUUuX19jYWxsX19gYCAoYCMy
NjA0CisgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI2MDQ+
YF8pCisKKy0gSW4gb25lIG9mIHRoZSBzaW1wbGUgZXhhbXBsZXMsIHVzZSBgcHl0ZXN0X2NvbGxl
Y3Rpb25fbW9kaWZ5aXRlbXMoKWAgdG8gc2tpcAorICB0ZXN0cyBiYXNlZCBvbiBhIGNvbW1hbmQt
bGluZSBvcHRpb24sIGFsbG93aW5nIGl0cyBzaGFyaW5nIHdoaWxlIHByZXZlbnRpbmcgYQorICB1
c2VyIGVycm9yIHdoZW4gYWNlc3NpbmcgYHB5dGVzdC5jb25maWdgIGJlZm9yZSB0aGUgYXJndW1l
bnQgcGFyc2luZy4gKGAjMjY1MworICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0
ZXN0L2lzc3Vlcy8yNjUzPmBfKQorCisKK1RyaXZpYWwvSW50ZXJuYWwgQ2hhbmdlcworLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gRml4ZWQgbWlub3IgZXJyb3IgaW4gJ0dvb2QgUHJhY3Rp
Y2VzL01hbnVhbCBJbnRlZ3JhdGlvbicgY29kZSBzbmlwcGV0LgorICAoYCMyNjkxIDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI2OTE+YF8pCisKKy0gRml4ZWQg
dHlwbyBpbiBnb29kcHJhY3RpY2VzLnJzdC4gKGAjMjcyMQorICA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNzIxPmBfKQorCistIEltcHJvdmUgdXNlciBndWlk
YW5jZSByZWdhcmRpbmcgYGAtLXJlc3VsdGxvZ2BgIGRlcHJlY2F0aW9uLiAoYCMyNzM5CisgIDxo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI3Mzk+YF8pCisKKwor
UHl0ZXN0IDMuMi4xICgyMDE3LTA4LTA4KQorPT09PT09PT09PT09PT09PT09PT09PT09PQorCitC
dWcgRml4ZXMKKy0tLS0tLS0tLQorCistIEZpeGVkIHNtYWxsIHRlcm1pbmFsIGdsaXRjaCB3aGVu
IGNvbGxlY3RpbmcgYSBzaW5nbGUgdGVzdCBpdGVtLiAoYCMyNTc5CisgIDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI1Nzk+YF8pCisKKy0gQ29ycmVjdGx5IGNv
bnNpZGVyIGBgL2BgIGFzIHRoZSBmaWxlIHNlcGFyYXRvciB0byBhdXRvbWF0aWNhbGx5IG1hcmsg
cGx1Z2luCisgIGZpbGVzIGZvciByZXdyaXRlIG9uIFdpbmRvd3MuIChgIzI1OTEgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtCisgIGRldi9weXRlc3QvaXNzdWVzLzI1OTE+YF8pCisKKy0gUHJv
cGVybHkgZXNjYXBlIHRlc3QgbmFtZXMgd2hlbiBzZXR0aW5nIGBgUFlURVNUX0NVUlJFTlRfVEVT
VGBgIGVudmlyb25tZW50CisgIHZhcmlhYmxlLiAoYCMyNjQ0IDxodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI2NDQ+YF8pCisKKy0gRml4IGVycm9yIG9uIFdpbmRv
d3MgYW5kIFB5dGhvbiAzLjYrIHdoZW4gYGBzeXMuc3Rkb3V0YGAgaGFzIGJlZW4gcmVwbGFjZWQK
KyAgd2l0aCBhIHN0cmVhbS1saWtlIG9iamVjdCB3aGljaCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhl
IGZ1bGwgYGBpb2BgIG1vZHVsZQorICBidWZmZXIgcHJvdG9jb2wuIEluIHBhcnRpY3VsYXIgdGhp
cyBhZmZlY3RzIGBgcHl0ZXN0LXhkaXN0YGAgdXNlcnMgb24gdGhlCisgIGFmb3JlbWVudGlvbmVk
IHBsYXRmb3JtLiAoYCMyNjY2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LQorICBkZXYvcHl0
ZXN0L2lzc3Vlcy8yNjY2PmBfKQorCisKK0ltcHJvdmVkIERvY3VtZW50YXRpb24KKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKworLSBFeHBsaWNpdGx5IGRvY3VtZW50IHdoaWNoIHB5dGVzdCBmZWF0
dXJlcyB3b3JrIHdpdGggYGB1bml0dGVzdGBgLiAoYCMyNjI2CisgIDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI2MjY+YF8pCisKKworUHl0ZXN0IDMuMi4wICgy
MDE3LTA3LTMwKQorPT09PT09PT09PT09PT09PT09PT09PT09PQorCitEZXByZWNhdGlvbnMgYW5k
IFJlbW92YWxzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gYGBweXRlc3QuYXBwcm94
YGAgbm8gbG9uZ2VyIHN1cHBvcnRzIGBgPmBgLCBgYD49YGAsIGBgPGBgIGFuZCBgYDw9YGAKKyAg
b3BlcmF0b3JzIHRvIGF2b2lkIHN1cnByaXNpbmcvaW5jb25zaXN0ZW50IGJlaGF2aW9yLiBTZWUg
YHRoZSBhcHByb3ggZG9jcworICA8aHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2J1
aWx0aW4uaHRtbCNweXRlc3QuYXBwcm94PmBfIGZvciBtb3JlCisgIGluZm9ybWF0aW9uLiAoYCMy
MDAzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzIwMDM+YF8p
CisKKy0gQWxsIG9sZC1zdHlsZSBzcGVjaWZpYyBiZWhhdmlvciBpbiBjdXJyZW50IGNsYXNzZXMg
aW4gdGhlIHB5dGVzdCdzIEFQSSBpcworICBjb25zaWRlcmVkIGRlcHJlY2F0ZWQgYXQgdGhpcyBw
b2ludCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCisgIFRoaXMgYWZm
ZWN0cyBQeXRob24gMiB1c2VycyBvbmx5IGFuZCBpbiByYXJlIHNpdHVhdGlvbnMuIChgIzIxNDcK
KyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjE0Nz5gXykK
KworLSBBIGRlcHJlY2F0aW9uIHdhcm5pbmcgaXMgbm93IHJhaXNlZCB3aGVuIHVzaW5nIG1hcmtz
IGZvciBwYXJhbWV0ZXJzCisgIGluIGBgcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemVgYC4gVXNlIGBg
cHl0ZXN0LnBhcmFtYGAgdG8gYXBwbHkgbWFya3MgdG8KKyAgcGFyYW1ldGVycyBpbnN0ZWFkLiAo
YCMyNDI3IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI0Mjc+
YF8pCisKKworRmVhdHVyZXMKKy0tLS0tLS0tCisKKy0gQWRkIHN1cHBvcnQgZm9yIG51bXB5IGFy
cmF5cyAoYW5kIGRpY3RzKSB0byBhcHByb3guIChgIzE5OTQKKyAgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTk5ND5gXykKKworLSBOb3cgdGVzdCBmdW5jdGlv
biBvYmplY3RzIGhhdmUgYSBgYHB5dGVzdG1hcmtgYCBhdHRyaWJ1dGUgY29udGFpbmluZyBhIGxp
c3QKKyAgb2YgbWFya3MgYXBwbGllZCBkaXJlY3RseSB0byB0aGUgdGVzdCBmdW5jdGlvbiwgYXMg
b3Bwb3NlZCB0byBtYXJrcyBpbmhlcml0ZWQKKyAgZnJvbSBwYXJlbnQgY2xhc3NlcyBvciBtb2R1
bGVzLiAoYCMyNTE2IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LQorICBkZXYvcHl0ZXN0L2lz
c3Vlcy8yNTE2PmBfKQorCistIENvbGxlY3Rpb24gaWdub3JlcyBsb2NhbCB2aXJ0dWFsZW52cyBi
eSBkZWZhdWx0OyBgLS1jb2xsZWN0LWluLXZpcnR1YWxlbnZgCisgIG92ZXJyaWRlcyB0aGlzIGJl
aGF2aW9yLiAoYCMyNTE4IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LQorICBkZXYvcHl0ZXN0
L2lzc3Vlcy8yNTE4PmBfKQorCistIEFsbG93IGNsYXNzIG1ldGhvZHMgZGVjb3JhdGVkIGFzIGBg
QHN0YXRpY21ldGhvZGBgIHRvIGJlIGNhbmRpZGF0ZXMgZm9yCisgIGNvbGxlY3Rpb24gYXMgYSB0
ZXN0IGZ1bmN0aW9uLiAoT25seSBmb3IgUHl0aG9uIDIuNyBhbmQgYWJvdmUuIFB5dGhvbiAyLjYK
KyAgd2lsbCBzdGlsbCBpZ25vcmUgc3RhdGljIG1ldGhvZHMuKSAoYCMyNTI4IDxodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LQorICBkZXYvcHl0ZXN0L2lzc3Vlcy8yNTI4PmBfKQorCistIEludHJv
ZHVjZSBgYG1hcmsud2l0aF9hcmdzYGAgaW4gb3JkZXIgdG8gYWxsb3cgcGFzc2luZyBmdW5jdGlv
bnMvY2xhc3NlcyBhcworICBzb2xlIGFyZ3VtZW50IHRvIG1hcmtzLiAoYCMyNTQwIDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LQorICBkZXYvcHl0ZXN0L2lzc3Vlcy8yNTQwPmBfKQorCistIE5l
dyBgYGNhY2hlX2RpcmBgIGluaSBvcHRpb246IHNldHMgdGhlIGRpcmVjdG9yeSB3aGVyZSB0aGUg
Y29udGVudHMgb2YgdGhlCisgIGNhY2hlIHBsdWdpbiBhcmUgc3RvcmVkLiBEaXJlY3RvcnkgbWF5
IGJlIHJlbGF0aXZlIG9yIGFic29sdXRlIHBhdGg6IGlmIHJlbGF0aXZlIHBhdGgsIHRoZW4KKyAg
ZGlyZWN0b3J5IGlzIGNyZWF0ZWQgcmVsYXRpdmUgdG8gYGByb290ZGlyYGAsIG90aGVyd2lzZSBp
dCBpcyB1c2VkIGFzIGlzLgorICBBZGRpdGlvbmFsbHkgcGF0aCBtYXkgY29udGFpbiBlbnZpcm9u
bWVudCB2YXJpYWJsZXMgd2hpY2ggYXJlIGV4cGFuZGVkIGR1cmluZworICBydW50aW1lLiAoYCMy
NTQzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI1NDM+YF8p
CisKKy0gSW50cm9kdWNlIHRoZSBgYFBZVEVTVF9DVVJSRU5UX1RFU1RgYCBlbnZpcm9ubWVudCB2
YXJpYWJsZSB0aGF0IGlzIHNldCB3aXRoCisgIHRoZSBgYG5vZGVpZGBgIGFuZCBzdGFnZSAoYGBz
ZXR1cGBgLCBgYGNhbGxgYCBhbmQgYGB0ZWFyZG93bmBgKSBvZiB0aGUgdGVzdAorICBiZWluZyBj
dXJyZW50bHkgZXhlY3V0ZWQuIFNlZSB0aGUgYGRvY3VtZW50YXRpb24KKyAgPGh0dHBzOi8vZG9j
cy5weXRlc3Qub3JnL2VuL2xhdGVzdC9leGFtcGxlL3NpbXBsZS5odG1sI3B5dGVzdC1jdXJyZW50
LXRlc3QtCisgIGVudmlyb25tZW50LXZhcmlhYmxlPmBfIGZvciBtb3JlIGluZm8uIChgIzI1ODMg
PGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtCisgIGRldi9weXRlc3QvaXNzdWVzLzI1ODM+YF8p
CisKKy0gSW50cm9kdWNlZCBgYEBweXRlc3QubWFyay5maWx0ZXJ3YXJuaW5nc2BgIG1hcmsgd2hp
Y2ggYWxsb3dzIG92ZXJ3cml0aW5nIHRoZQorICB3YXJuaW5ncyBmaWx0ZXIgb24gYSBwZXIgdGVz
dCwgY2xhc3Mgb3IgbW9kdWxlIGxldmVsLiBTZWUgdGhlIGBkb2NzCisgIDxodHRwczovL2RvY3Mu
cHl0ZXN0Lm9yZy9lbi9sYXRlc3Qvd2FybmluZ3MuaHRtbCNweXRlc3QtbWFyay0KKyAgZmlsdGVy
d2FybmluZ3M+YF8gZm9yIG1vcmUgaW5mb3JtYXRpb24uIChgIzI1OTggPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtCisgIGRldi9weXRlc3QvaXNzdWVzLzI1OTg+YF8pCisKKy0gYGAtLWxhc3Qt
ZmFpbGVkYGAgbm93IHJlbWVtYmVycyBmb3JldmVyIHdoZW4gYSB0ZXN0IGhhcyBmYWlsZWQgYW5k
IG9ubHkKKyAgZm9yZ2V0cyBpdCBpZiBpdCBwYXNzZXMgYWdhaW4uIFRoaXMgbWFrZXMgaXQgZWFz
eSB0byBmaXggYSB0ZXN0IHN1aXRlIGJ5CisgIHNlbGVjdGl2ZWx5IHJ1bm5pbmcgZmlsZXMgYW5k
IGZpeGluZyB0ZXN0cyBpbmNyZW1lbnRhbGx5LiAoYCMyNjIxCisgIDxodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI2MjE+YF8pCisKKy0gTmV3IGBgcHl0ZXN0X3Jl
cG9ydF9jb2xsZWN0aW9uZmluaXNoYGAgaG9vayB3aGljaCBhbGxvd3MgcGx1Z2lucyB0byBhZGQK
KyAgbWVzc2FnZXMgdG8gdGhlIHRlcm1pbmFsIHJlcG9ydGluZyBhZnRlciBjb2xsZWN0aW9uIGhh
cyBiZWVuIGZpbmlzaGVkCisgIHN1Y2Nlc3NmdWxseS4gKGAjMjYyMiA8aHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNjIyPmBfKQorCistIEFkZGVkIHN1cHBvcnQg
Zm9yIGBQRVAtNDE1J3MgPGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvcGVwLTA0MTUv
PmBfCisgIGBgRXhjZXB0aW9uLl9fc3VwcHJlc3NfY29udGV4dF9fYGAuIE5vdyBpZiBhIGBgcmFp
c2UgZXhjZXB0aW9uIGZyb20gTm9uZWBgIGlzCisgIGNhdWdodCBieSBweXRlc3QsIHB5dGVzdCB3
aWxsIG5vIGxvbmdlciBjaGFpbiB0aGUgY29udGV4dCBpbiB0aGUgdGVzdCByZXBvcnQuCisgIFRo
ZSBiZWhhdmlvciBub3cgbWF0Y2hlcyBQeXRob24ncyB0cmFjZWJhY2sgYmVoYXZpb3IuIChgIzI2
MzEKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjYzMT5g
XykKKworLSBFeGNlcHRpb25zIHJhaXNlZCBieSBgYHB5dGVzdC5mYWlsYGAsIGBgcHl0ZXN0LnNr
aXBgYCBhbmQgYGBweXRlc3QueGZhaWxgYAorICBub3cgc3ViY2xhc3MgQmFzZUV4Y2VwdGlvbiwg
bWFraW5nIHRoZW0gaGFyZGVyIHRvIGJlIGNhdWdodCB1bmludGVudGlvbmFsbHkKKyAgYnkgbm9y
bWFsIGNvZGUuIChgIzU4MCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy81ODA+YF8pCisKKworQnVnIEZpeGVzCistLS0tLS0tLS0KKworLSBTZXQgYGBzdGRpbmBg
IHRvIGEgY2xvc2VkIGBgUElQRWBgIGluIGBgcHl0ZXN0ZXIucHkuVGVzdGRpci5wb3BlbigpYGAg
Zm9yCisgIGF2b2lkIHVud2FudGVkIGludGVyYWN0aXZlIGBgcGRiYGAgKGAjMjAyMyA8aHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC0KKyAgZGV2L3B5dGVzdC9pc3N1ZXMvMjAyMz5gXykKKworLSBB
ZGQgbWlzc2luZyBgYGVuY29kaW5nYGAgYXR0cmlidXRlIHRvIGBgc3lzLnN0ZCpgYCBzdHJlYW1z
IHdoZW4gdXNpbmcKKyAgYGBjYXBzeXNgYCBjYXB0dXJlIG1vZGUuIChgIzIzNzUgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtCisgIGRldi9weXRlc3QvaXNzdWVzLzIzNzU+YF8pCisKKy0gRml4
IHRlcm1pbmFsIGNvbG9yIGNoYW5naW5nIHRvIGJsYWNrIG9uIFdpbmRvd3MgaWYgYGBjb2xvcmFt
YWBgIGlzIGltcG9ydGVkCisgIGluIGEgYGBjb25mdGVzdC5weWBgIGZpbGUuIChgIzI1MTAgPGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtCisgIGRldi9weXRlc3QvaXNzdWVzLzI1MTA+YF8pCisK
Ky0gRml4IGxpbmUgbnVtYmVyIHdoZW4gcmVwb3J0aW5nIHN1bW1hcnkgb2Ygc2tpcHBlZCB0ZXN0
cy4gKGAjMjU0OAorICA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy8yNTQ4PmBfKQorCistIGNhcHR1cmU6IGVuc3VyZSB0aGF0IEVuY29kZWRGaWxlLm5hbWUgaXMg
YSBzdHJpbmcuIChgIzI1NTUKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvMjU1NT5gXykKKworLSBUaGUgb3B0aW9ucyBgYC0tZml4dHVyZXNgYCBhbmQgYGAt
LWZpeHR1cmVzLXBlci10ZXN0YGAgd2lsbCBub3cga2VlcAorICBpbmRlbnRhdGlvbiB3aXRoaW4g
ZG9jc3RyaW5ncy4gKGAjMjU3NCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC0KKyAgZGV2L3B5
dGVzdC9pc3N1ZXMvMjU3ND5gXykKKworLSBkb2N0ZXN0cyBsaW5lIG51bWJlcnMgYXJlIG5vdyBy
ZXBvcnRlZCBjb3JyZWN0bHksIGZpeGluZyBgcHl0ZXN0LXN1Z2FyIzEyMgorICA8aHR0cHM6Ly9n
aXRodWIuY29tL0Zyb3plbmJhbGwvcHl0ZXN0LXN1Z2FyL2lzc3Vlcy8xMjI+YF8uIChgIzI2MTAK
KyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjYxMD5gXykK
KworLSBGaXggbm9uLWRldGVybWluaXNtIGluIG9yZGVyIG9mIGZpeHR1cmUgY29sbGVjdGlvbi4g
QWRkcyBuZXcgZGVwZW5kZW5jeQorICAob3JkZXJlZGRpY3QpIGZvciBQeXRob24gMi42LiAoYCM5
MjAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtCisgIGRldi9weXRlc3QvaXNzdWVzLzkyMD5g
XykKKworCitJbXByb3ZlZCBEb2N1bWVudGF0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
Ky0gQ2xhcmlmeSBgYHB5dGVzdF9jb25maWd1cmVgYCBob29rIGNhbGwgb3JkZXIuIChgIzI1MzkK
KyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjUzOT5gXykK
KworLSBFeHRlbmQgZG9jdW1lbnRhdGlvbiBmb3IgdGVzdGluZyBwbHVnaW4gY29kZSB3aXRoIHRo
ZSBgYHB5dGVzdGVyYGAgcGx1Z2luLgorICAoYCM5NzEgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvOTcxPmBfKQorCisKK1RyaXZpYWwvSW50ZXJuYWwgQ2hhbmdl
cworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gVXBkYXRlIGhlbHAgbWVzc2FnZSBmb3Ig
YGAtLXN0cmljdGBgIHRvIG1ha2UgaXQgY2xlYXIgaXQgb25seSBkZWFscyB3aXRoCisgIHVucmVn
aXN0ZXJlZCBtYXJrZXJzLCBub3Qgd2FybmluZ3MuIChgIzI0NDQgPGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtCisgIGRldi9weXRlc3QvaXNzdWVzLzI0NDQ+YF8pCisKKy0gSW50ZXJuYWwgY29k
ZSBtb3ZlOiBtb3ZlIGNvZGUgZm9yIHB5dGVzdC5hcHByb3gvcHl0ZXN0LnJhaXNlcyB0byBvd24g
ZmlsZXMgaW4KKyAgb3JkZXIgdG8gY3V0IGRvd24gdGhlIHNpemUgb2YgcHl0aG9uLnB5IChgIzI0
ODkgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtCisgIGRldi9weXRlc3QvaXNzdWVzLzI0ODk+
YF8pCisKKy0gUmVuYW1lZCB0aGUgdXRpbGl0eSBmdW5jdGlvbiBgYF9weXRlc3QuY29tcGF0Ll9l
c2NhcGVfc3RyaW5nc2BgIHRvCisgIGBgX2FzY2lpX2VzY2FwZWRgYCB0byBiZXR0ZXIgY29tbXVu
aWNhdGUgdGhlIGZ1bmN0aW9uJ3MgcHVycG9zZS4gKGAjMjUzMworICA8aHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNTMzPmBfKQorCistIEltcHJvdmUgZXJyb3Ig
bWVzc2FnZSBmb3IgQ29sbGVjdEVycm9yIHdpdGggc2tpcC9za2lwaWYuIChgIzI1NDYKKyAgPGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjU0Nj5gXykKKworLSBF
bWl0IHdhcm5pbmcgYWJvdXQgYGB5aWVsZGBgIHRlc3RzIGJlaW5nIGRlcHJlY2F0ZWQgb25seSBv
bmNlIHBlciBnZW5lcmF0b3IuCisgIChgIzI1NjIgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3B5dGVzdC9pc3N1ZXMvMjU2Mj5gXykKKworLSBFbnN1cmUgZmluYWwgY29sbGVjdGVkIGxp
bmUgZG9lc24ndCBpbmNsdWRlIGFydGlmYWN0cyBvZiBwcmV2aW91cyB3cml0ZS4KKyAgKGAjMjU3
MSA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNTcxPmBfKQor
CistIEZpeGVkIGFsbCBmbGFrZTggZXJyb3JzIGFuZCB3YXJuaW5ncy4gKGAjMjU4MSA8aHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC0KKyAgZGV2L3B5dGVzdC9pc3N1ZXMvMjU4MT5gXykKKworLSBB
ZGRlZCBgYGZpeC1saW50YGAgdG94IGVudmlyb25tZW50IHRvIHJ1biBhdXRvbWF0aWMgcGVwOCBm
aXhlcyBvbiB0aGUgY29kZS4KKyAgKGAjMjU4MiA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy8yNTgyPmBfKQorCistIFR1cm4gd2FybmluZ3MgaW50byBlcnJvcnMg
aW4gcHl0ZXN0J3Mgb3duIHRlc3Qgc3VpdGUgaW4gb3JkZXIgdG8gY2F0Y2gKKyAgcmVncmVzc2lv
bnMgZHVlIHRvIGRlcHJlY2F0aW9ucyBtb3JlIHByb21wdGx5LiAoYCMyNTg4CisgIDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI1ODg+YF8pCisKKy0gU2hvdyBt
dWx0aXBsZSBpc3N1ZSBsaW5rcyBpbiBDSEFOR0VMT0cgZW50cmllcy4gKGAjMjYyMAorICA8aHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNjIwPmBfKQorCisKK1B5
dGVzdCAzLjEuMyAoMjAxNy0wNy0wMykKKz09PT09PT09PT09PT09PT09PT09PT09PT0KKworQnVn
IEZpeGVzCistLS0tLS0tLS0KKworLSBGaXggZGVjb2RlIGVycm9yIGluIFB5dGhvbiAyIGZvciBk
b2N0ZXN0cyBpbiBkb2NzdHJpbmdzLiAoYCMyNDM0CisgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI0MzQ+YF8pCisKKy0gRXhjZXB0aW9ucyByYWlzZWQgZHVy
aW5nIHRlYXJkb3duIGJ5IGZpbmFsaXplcnMgYXJlIG5vdyBzdXBwcmVzc2VkIHVudGlsIGFsbAor
ICBmaW5hbGl6ZXJzIGFyZSBjYWxsZWQsIHdpdGggdGhlIGluaXRpYWwgZXhjZXB0aW9uIHJlcmFp
c2VkLiAoYCMyNDQwCisgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzI0NDA+YF8pCisKKy0gRml4IGluY29ycmVjdCAiY29sbGVjdGVkIGl0ZW1zIiByZXBvcnQg
d2hlbiBzcGVjaWZ5aW5nIHRlc3RzIG9uIHRoZSBjb21tYW5kLQorICBsaW5lLiAoYCMyNDY0IDxo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzI0NjQ+YF8pCisKKy0g
YGBkZXByZWNhdGVkX2NhbGxgYCBpbiBjb250ZXh0LW1hbmFnZXIgZm9ybSBub3cgY2FwdHVyZXMg
ZGVwcmVjYXRpb24gd2FybmluZ3MKKyAgZXZlbiBpZiB0aGUgc2FtZSB3YXJuaW5nIGhhcyBhbHJl
YWR5IGJlZW4gcmFpc2VkLiBBbHNvLCBgYGRlcHJlY2F0ZWRfY2FsbGBgCisgIHdpbGwgYWx3YXlz
IHByb2R1Y2UgdGhlIHNhbWUgZXJyb3IgbWVzc2FnZSAocHJldmlvdXNseSBpdCB3b3VsZCBwcm9k
dWNlCisgIGRpZmZlcmVudCBtZXNzYWdlcyBpbiBjb250ZXh0LW1hbmFnZXIgdnMuIGZ1bmN0aW9u
LWNhbGwgbW9kZSkuIChgIzI0NjkKKyAgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvMjQ2OT5gXykKKworLSBGaXggaXNzdWUgd2hlcmUgcGF0aHMgY29sbGVjdGVk
IGJ5IHB5dGVzdCBjb3VsZCBoYXZlIHRyaXBsZSBsZWFkaW5nIGBgL2BgCisgIGNoYXJhY3RlcnMu
IChgIzI0NzUgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjQ3
NT5gXykKKworLSBGaXggaW50ZXJuYWwgZXJyb3Igd2hlbiB0cnlpbmcgdG8gZGV0ZWN0IHRoZSBz
dGFydCBvZiBhIHJlY3Vyc2l2ZSB0cmFjZWJhY2suCisgIChgIzI0ODYgPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjQ4Nj5gXykKKworCitJbXByb3ZlZCBEb2N1
bWVudGF0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gRXhwbGljaXRseSBzdGF0ZSBm
b3Igd2hpY2ggaG9va3MgdGhlIGNhbGxzIHN0b3AgYWZ0ZXIgdGhlIGZpcnN0IG5vbi1Ob25lCisg
IHJlc3VsdC4gKGAjMjQ5MyA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy8yNDkzPmBfKQorCisKK1RyaXZpYWwvSW50ZXJuYWwgQ2hhbmdlcworLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKKy0gQ3JlYXRlIGludm9rZSB0YXNrcyBmb3IgdXBkYXRpbmcgdGhlIHZl
bmRvcmVkIHBhY2thZ2VzLiAoYCMyNDc0CisgIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvaXNzdWVzLzI0NzQ+YF8pCisKKy0gVXBkYXRlIGNvcHlyaWdodCBkYXRlcyBpbiBM
SUNFTlNFLCBSRUFETUUucnN0IGFuZCBpbiB0aGUgZG9jdW1lbnRhdGlvbi4KKyAgKGAjMjQ5OSA8
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNDk5PmBfKQorCisK
K1B5dGVzdCAzLjEuMiAoMjAxNy0wNi0wOCkKKz09PT09PT09PT09PT09PT09PT09PT09PT0KKwor
QnVnIEZpeGVzCistLS0tLS0tLS0KKworLSBSZXF1aXJlZCBvcHRpb25zIGFkZGVkIHZpYSBgYHB5
dGVzdF9hZGRvcHRpb25gYCB3aWxsIG5vIGxvbmdlciBwcmV2ZW50IHVzaW5nCisgIC0taGVscCB3
aXRob3V0IHBhc3NpbmcgdGhlbS4gKCMxOTk5KQorCistIFJlc3BlY3QgYGBweXRob25fZmlsZXNg
YCBpbiBhc3NlcnRpb24gcmV3cml0aW5nLiAoIzIxMjEpCisKKy0gRml4IHJlY3Vyc2lvbiBlcnJv
ciBkZXRlY3Rpb24gd2hlbiBmcmFtZXMgaW4gdGhlIHRyYWNlYmFjayBjb250YWluIG9iamVjdHMK
KyAgdGhhdCBjYW4ndCBiZSBjb21wYXJlZCAobGlrZSBgYG51bXB5YGAgYXJyYXlzKS4gKCMyNDU5
KQorCistIGBgVW5pY29kZVdhcm5pbmdgYCBpcyBpc3N1ZWQgZnJvbSB0aGUgaW50ZXJuYWwgcHl0
ZXN0IHdhcm5pbmdzIHBsdWdpbiBvbmx5CisgIHdoZW4gdGhlIG1lc3NhZ2UgY29udGFpbnMgbm9u
LWFzY2lpIHVuaWNvZGUgKFB5dGhvbiAyIG9ubHkpLiAoIzI0NjMpCisKKy0gQWRkZWQgYSB3b3Jr
YXJvdW5kIGZvciBQeXRob24gMy42IGBgV2luZG93c0NvbnNvbGVJT2BgIGJyZWFraW5nIGR1ZSB0
byBQeXRlc3RzJ3MKKyAgYGBGRENhcHR1cmVgYC4gT3RoZXIgY29kZSB1c2luZyBjb25zb2xlIGhh
bmRsZXMgbWlnaHQgc3RpbGwgYmUgYWZmZWN0ZWQgYnkgdGhlCisgIHZlcnkgc2FtZSBpc3N1ZSBh
bmQgbWlnaHQgcmVxdWlyZSBmdXJ0aGVyIHdvcmthcm91bmRzL2ZpeGVzLCBpLmUuIGBgY29sb3Jh
bWFgYC4KKyAgKCMyNDY3KQorCisKK0ltcHJvdmVkIERvY3VtZW50YXRpb24KKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworLSBGaXggaW50ZXJuYWwgQVBJIGxpbmtzIHRvIGBgcGx1Z2d5YGAgb2Jq
ZWN0cy4gKCMyMzMxKQorCistIE1ha2UgaXQgY2xlYXIgdGhhdCBgYHB5dGVzdC54ZmFpbGBgIHN0
b3BzIHRlc3QgZXhlY3V0aW9uIGF0IHRoZSBjYWxsaW5nIHBvaW50CisgIGFuZCBpbXByb3ZlIG92
ZXJhbGwgZmxvdyBvZiB0aGUgYGBza2lwcGluZ2BgIGRvY3MuICgjODEwKQorCisKK1B5dGVzdCAz
LjEuMSAoMjAxNy0wNS0zMCkKKz09PT09PT09PT09PT09PT09PT09PT09PT0KKworQnVnIEZpeGVz
CistLS0tLS0tLS0KKworLSBweXRlc3Qgd2FybmluZyBjYXB0dXJlIG5vIGxvbmdlciBvdmVycmlk
ZXMgZXhpc3Rpbmcgd2FybmluZyBmaWx0ZXJzLiBUaGUKKyAgcHJldmlvdXMgYmVoYXZpb3VyIHdv
dWxkIG92ZXJyaWRlIGFsbCBmaWx0ZXJzIGFuZCBjYXVzZWQgcmVncmVzc2lvbnMgaW4gdGVzdAor
ICBzdWl0ZXMgd2hpY2ggY29uZmlndXJlIHdhcm5pbmcgZmlsdGVycyB0byBtYXRjaCB0aGVpciBu
ZWVkcy4gTm90ZSB0aGF0IGFzIGEKKyAgc2lkZS1lZmZlY3Qgb2YgdGhpcyBpcyB0aGF0IGBgRGVw
cmVjYXRpb25XYXJuaW5nYGAgYW5kCisgIGBgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZ2BgIGFy
ZSBubyBsb25nZXIgc2hvd24gYnkgZGVmYXVsdC4gKCMyNDMwKQorCistIEZpeCBpc3N1ZSB3aXRo
IG5vbi1hc2NpaSBjb250ZW50cyBpbiBkb2N0ZXN0IHRleHQgZmlsZXMuICgjMjQzNCkKKworLSBG
aXggZW5jb2RpbmcgZXJyb3JzIGZvciB1bmljb2RlIHdhcm5pbmdzIGluIFB5dGhvbiAyLiAoIzI0
MzYpCisKKy0gYGBweXRlc3QuZGVwcmVjYXRlZF9jYWxsYGAgbm93IGNhcHR1cmVzIGBgUGVuZGlu
Z0RlcHJlY2F0aW9uV2FybmluZ2BgIGluCisgIGNvbnRleHQgbWFuYWdlciBmb3JtLiAoIzI0NDEp
CisKKworSW1wcm92ZWQgRG9jdW1lbnRhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCist
IEFkZGl0aW9uIG9mIHRvd25jcmllciBmb3IgY2hhbmdlbG9nIG1hbmFnZW1lbnQuICgjMjM5MCkK
KworCiszLjEuMCAoMjAxNy0wNS0yMikKKz09PT09PT09PT09PT09PT09PQorCisKK05ldyBGZWF0
dXJlcworLS0tLS0tLS0tLS0tCisKKyogVGhlIGBgcHl0ZXN0LXdhcm5pbmdzYGAgcGx1Z2luIGhh
cyBiZWVuIGludGVncmF0ZWQgaW50byB0aGUgY29yZSBhbmQgbm93IGBgcHl0ZXN0YGAgYXV0b21h
dGljYWxseQorICBjYXB0dXJlcyBhbmQgZGlzcGxheXMgd2FybmluZ3MgYXQgdGhlIGVuZCBvZiB0
aGUgdGVzdCBzZXNzaW9uLgorCisgIC4uIHdhcm5pbmc6OgorCisgICAgVGhpcyBmZWF0dXJlIG1h
eSBkaXNydXB0IHRlc3Qgc3VpdGVzIHdoaWNoIGFwcGx5IGFuZCB0cmVhdCB3YXJuaW5ncyB0aGVt
c2VsdmVzLCBhbmQgY2FuIGJlCisgICAgZGlzYWJsZWQgaW4geW91ciBgYHB5dGVzdC5pbmlgYDoK
KworICAgIC4uIGNvZGUtYmxvY2s6OiBpbmkKKworICAgICAgW3B5dGVzdF0KKyAgICAgIGFkZG9w
dHMgPSAtcCBubzp3YXJuaW5ncworCisgICAgU2VlIHRoZSBgd2FybmluZ3MgZG9jdW1lbnRhdGlv
biBwYWdlIDxodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3Qvd2FybmluZ3MuaHRtbD5g
XyBmb3IgbW9yZQorICAgIGluZm9ybWF0aW9uLgorCisgIFRoYW5rcyBgQG5pY29kZGVtdXNgXyBm
b3IgdGhlIFBSLgorCisqIEFkZGVkIGBganVuaXRfc3VpdGVfbmFtZWBgIGluaSBvcHRpb24gdG8g
c3BlY2lmeSByb290IGBgPHRlc3RzdWl0ZT5gYCBuYW1lIGZvciBKVW5pdCBYTUwgcmVwb3J0cyAo
YCM1MzNgXykuCisKKyogQWRkZWQgYW4gaW5pIG9wdGlvbiBgYGRvY3Rlc3RfZW5jb2RpbmdgYCB0
byBzcGVjaWZ5IHdoaWNoIGVuY29kaW5nIHRvIHVzZSBmb3IgZG9jdGVzdCBmaWxlcy4KKyAgVGhh
bmtzIGBAd2hlZXJkYF8gZm9yIHRoZSBQUiAoYCMyMTAxYF8pLgorCisqIGBgcHl0ZXN0Lndhcm5z
YGAgbm93IGNoZWNrcyBmb3Igc3ViY2xhc3MgcmVsYXRpb25zaGlwIHJhdGhlciB0aGFuCisgIGNs
YXNzIGVxdWFsaXR5LiBUaGFua3MgYEBsZXN0ZXZlYF8gZm9yIHRoZSBQUiAoYCMyMTY2YF8pCisK
KyogYGBweXRlc3QucmFpc2VzYGAgbm93IGFzc2VydHMgdGhhdCB0aGUgZXJyb3IgbWVzc2FnZSBt
YXRjaGVzIGEgdGV4dCBvciByZWdleAorICB3aXRoIHRoZSBgYG1hdGNoYGAga2V5d29yZCBhcmd1
bWVudC4gVGhhbmtzIGBAS3JpZWNoaWBfIGZvciB0aGUgUFIuCisKKyogYGBweXRlc3QucGFyYW1g
YCBjYW4gYmUgdXNlZCB0byBkZWNsYXJlIHRlc3QgcGFyYW1ldGVyIHNldHMgd2l0aCBtYXJrcyBh
bmQgdGVzdCBpZHMuCisgIFRoYW5rcyBgQFJvbm55UGZhbm5zY2htaWR0YF8gZm9yIHRoZSBQUi4K
KworCitDaGFuZ2VzCistLS0tLS0tCisKKyogcmVtb3ZlIGFsbCBpbnRlcm5hbCB1c2VzIG9mIHB5
dGVzdF9uYW1lc3BhY2UgaG9va3MsCisgIHRoaXMgaXMgdG8gcHJlcGFyZSB0aGUgcmVtb3ZhbCBv
ZiBwcmVsb2FkY29uZmlnIGluIHB5dGVzdCA0LjAKKyAgVGhhbmtzIHRvIGBAUm9ubnlQZmFubnNj
aG1pZHRgXyBmb3IgdGhlIFBSLgorCisqIHB5dGVzdCBub3cgd2FybnMgd2hlbiBhIGNhbGxhYmxl
IGlkcyByYWlzZXMgaW4gYSBwYXJhbWV0cml6ZWQgdGVzdC4gVGhhbmtzIGBAZm9nb2BfIGZvciB0
aGUgUFIuCisKKyogSXQgaXMgbm93IHBvc3NpYmxlIHRvIHNraXAgdGVzdCBjbGFzc2VzIGZyb20g
YmVpbmcgY29sbGVjdGVkIGJ5IHNldHRpbmcgYQorICBgYF9fdGVzdF9fYGAgYXR0cmlidXRlIHRv
IGBgRmFsc2VgYCBpbiB0aGUgY2xhc3MgYm9keSAoYCMyMDA3YF8pLiBUaGFua3MKKyAgdG8gYEBz
eXJlYF8gZm9yIHRoZSByZXBvcnQgYW5kIGBAbHdtYF8gZm9yIHRoZSBQUi4KKworKiBDaGFuZ2Ug
anVuaXR4bWwucHkgdG8gcHJvZHVjZSByZXBvcnRzIHRoYXQgY29tcGx5IHdpdGggSnVuaXR4bWwg
c2NoZW1hLgorICBJZiB0aGUgc2FtZSB0ZXN0IGZhaWxzIHdpdGggZmFpbHVyZSBpbiBjYWxsIGFu
ZCB0aGVuIGVycm9ycyBpbiB0ZWFyZG93bgorICB3ZSBzcGxpdCB0ZXN0Y2FzZSBlbGVtZW50IGlu
dG8gdHdvLCBvbmUgY29udGFpbmluZyB0aGUgZXJyb3IgYW5kIHRoZSBvdGhlcgorICB0aGUgZmFp
bHVyZS4gKGAjMjIyOGBfKSBUaGFua3MgdG8gYEBra291a2lvdWBfIGZvciB0aGUgUFIuCisKKyog
VGVzdGNhc2UgcmVwb3J0cyB3aXRoIGEgYGB1cmxgYCBhdHRyaWJ1dGUgd2lsbCBub3cgcHJvcGVy
bHkgd3JpdGUgdGhpcyB0byBqdW5pdHhtbC4KKyAgVGhhbmtzIGBAZnVzaGlgXyBmb3IgdGhlIFBS
IChgIzE4NzRgXykuCisKKyogUmVtb3ZlIGNvbW1vbiBpdGVtcyBmcm9tIGRpY3QgY29tcGFyaXNp
b24gb3V0cHV0IHdoZW4gdmVyYm9zaXR5PTEuIEFsc28gdXBkYXRlCisgIHRoZSB0cnVuY2F0aW9u
IG1lc3NhZ2UgdG8gbWFrZSBpdCBjbGVhcmVyIHRoYXQgcHl0ZXN0IHRydW5jYXRlcyBhbGwKKyAg
YXNzZXJ0aW9uIG1lc3NhZ2VzIGlmIHZlcmJvc2l0eSA8IDIgKGAjMTUxMmBfKS4KKyAgVGhhbmtz
IGBAbWF0dGR1Y2tgXyBmb3IgdGhlIFBSCisKKyogYGAtLXBkYmNsc2BgIG5vIGxvbmdlciBpbXBs
aWVzIGBgLS1wZGJgYC4gVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byB1c2UKKyAgYGBhZGRvcHRz
PS0tcGRiY2xzPW1vZHVsZS5Tb21lQ2xhc3NgYCBvbiBgYHB5dGVzdC5pbmlgYC4gVGhhbmtzIGBA
ZGF2aWRzem90dGVuYF8gZm9yCisgIHRoZSBQUiAoYCMxOTUyYF8pLgorCisqIGZpeCBgIzIwMTNg
XzogdHVybiBSZWNvcmRlZFdhcm5pbmcgaW50byBgYG5hbWVkdHVwbGVgYCwKKyAgdG8gZ2l2ZSBp
dCBhIGNvbXByZWhlbnNpYmxlIHJlcHIgd2hpbGUgcHJldmVudGluZyB1bndhcnJhbnRlZCBtb2Rp
ZmljYXRpb24uCisKKyogZml4IGAjMjIwOGBfOiBlbnN1cmUgYSBpdGVyYXRpb24gbGltaXQgZm9y
IF9weXRlc3QuY29tcGF0LmdldF9yZWFsX2Z1bmMuCisgIFRoYW5rcyBgQFJvbm55UGZhbm5zY2ht
aWR0YF8gZm9yIHRoZSByZXBvcnQgYW5kIFBSLgorCisqIEhvb2tzIGFyZSBub3cgdmVyaWZpZWQg
YWZ0ZXIgY29sbGVjdGlvbiBpcyBjb21wbGV0ZSwgcmF0aGVyIHRoYW4gcmlnaHQgYWZ0ZXIgbG9h
ZGluZyBpbnN0YWxsZWQgcGx1Z2lucy4gVGhpcworICBtYWtlcyBpdCBlYXN5IHRvIHdyaXRlIGhv
b2tzIGZvciBwbHVnaW5zIHdoaWNoIHdpbGwgYmUgbG9hZGVkIGR1cmluZyBjb2xsZWN0aW9uLCBm
b3IgZXhhbXBsZSB1c2luZyB0aGUKKyAgYGBweXRlc3RfcGx1Z2luc2BgIHNwZWNpYWwgdmFyaWFi
bGUgKGAjMTgyMWBfKS4KKyAgVGhhbmtzIGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIuCisKKyog
TW9kaWZ5IGBgcHl0ZXN0X21ha2VfcGFyYW1ldHJpemVfaWQoKWBgIGhvb2sgdG8gYWNjZXB0IGBg
YXJnbmFtZWBgIGFzIGFuCisgIGFkZGl0aW9uYWwgcGFyYW1ldGVyLgorICBUaGFua3MgYEB1bnNp
Z25lZGludGBfIGZvciB0aGUgUFIuCisKKyogQWRkIGBgdmVudmBgIHRvIHRoZSBkZWZhdWx0IGBg
bm9yZWN1cnNlZGlyc2BgIHNldHRpbmcuCisgIFRoYW5rcyBgQFRoZS1Db21waWxlcmBfIGZvciB0
aGUgUFIuCisKKyogYGBQbHVnaW5NYW5hZ2VyLmltcG9ydF9wbHVnaW5gYCBub3cgYWNjZXB0cyB1
bmljb2RlIHBsdWdpbiBuYW1lcyBpbiBQeXRob24gMi4KKyAgVGhhbmtzIGBAcmV1dHNoYXJhYmFu
aWBfIGZvciB0aGUgUFIuCisKKyogZml4IGAjMjMwOGBfOiBXaGVuIHVzaW5nIGJvdGggYGAtLWxm
YGAgYW5kIGBgLS1mZmBgLCBvbmx5IHRoZSBsYXN0IGZhaWxlZCB0ZXN0cyBhcmUgcnVuLgorICBU
aGFua3MgYEBvamlpYF8gZm9yIHRoZSBQUi4KKworKiBSZXBsYWNlIG1pbm9yL3BhdGNoIGxldmVs
IHZlcnNpb24gbnVtYmVycyBpbiB0aGUgZG9jdW1lbnRhdGlvbiB3aXRoIHBsYWNlaG9sZGVycy4K
KyAgVGhpcyBzaWduaWZpY2FudGx5IHJlZHVjZXMgY2hhbmdlLW5vaXNlIGFzIGRpZmZlcmVudCBj
b250cmlidXRvcnMgcmVnbmVyYXRlCisgIHRoZSBkb2N1bWVudGF0aW9uIG9uIGRpZmZlcmVudCBw
bGF0Zm9ybXMuCisgIFRoYW5rcyBgQFJvbm55UGZhbm5zY2htaWR0YF8gZm9yIHRoZSBQUi4KKwor
KiBmaXggYCMyMzkxYF86IGNvbnNpZGVyIHB5dGVzdF9wbHVnaW5zIG9uIGFsbCBwbHVnaW4gbW9k
dWxlcworICBUaGFua3MgYEBSb25ueVBmYW5uc2NobWlkdGBfIGZvciB0aGUgUFIuCisKKworQnVn
IEZpeGVzCistLS0tLS0tLS0KKworKiBGaXggYGBBdHRyaWJ1dGVFcnJvcmBgIG9uIGBgc3lzLnN0
ZG91dC5idWZmZXJgYCAvIGBgc3lzLnN0ZGVyci5idWZmZXJgYAorICB3aGlsZSB1c2luZyBgYGNh
cHN5c2BgIGZpeHR1cmUgaW4gcHl0aG9uIDMuIChgIzE0MDdgXykuCisgIFRoYW5rcyB0byBgQGFz
b3R0aWxlYF8uCisKKyogQ2hhbmdlIGNhcHR1cmUucHkncyBgYERvbnRSZWFkRnJvbUlucHV0YGAg
Y2xhc3MgdG8gdGhyb3cgYGBpby5VbnN1cHBvcnRlZE9wZXJhdGlvbmBgIGVycm9ycyByYXRoZXIK
KyAgdGhhbiBWYWx1ZUVycm9ycyBpbiB0aGUgYGBmaWxlbm9gYCBtZXRob2QgKGAjMjI3NmBfKS4K
KyAgVGhhbmtzIGBAbWV0YXN5bmBfIGFuZCBgQHZsYWQtZHJhZ29zYF8gZm9yIHRoZSBQUi4KKwor
KiBGaXggZXhjZXB0aW9uIGZvcm1hdHRpbmcgd2hpbGUgaW1wb3J0aW5nIG1vZHVsZXMgd2hlbiB0
aGUgZXhjZXB0aW9uIG1lc3NhZ2UKKyAgY29udGFpbnMgbm9uLWFzY2lpIGNoYXJhY3RlcnMgKGAj
MjMzNmBfKS4KKyAgVGhhbmtzIGBAZmFiaW96YF8gZm9yIHRoZSByZXBvcnQgYW5kIGBAbmljb2Rk
ZW11c2BfIGZvciB0aGUgUFIuCisKKyogQWRkZWQgZG9jdW1lbnRhdGlvbiByZWxhdGVkIHRvIGlz
c3VlIChgIzE5MzdgXykKKyAgVGhhbmtzIGBAc2t5bGFyamhkb3duZXNgXyBmb3IgdGhlIFBSLgor
CisqIEFsbG93IGNvbGxlY3RpbmcgZmlsZXMgd2l0aCBhbnkgZmlsZSBleHRlbnNpb24gYXMgUHl0
aG9uIG1vZHVsZXMgKGAjMjM2OWBfKS4KKyAgVGhhbmtzIGBAS29kaW9sb2dpc3RgXyBmb3IgdGhl
IFBSLgorCisqIFNob3cgdGhlIGNvcnJlY3QgZXJyb3IgbWVzc2FnZSB3aGVuIGNvbGxlY3QgInBh
cmFtZXRyaXplIiBmdW5jIHdpdGggd3JvbmcgYXJncyAoYCMyMzgzYF8pLgorICBUaGFua3MgYEBU
aGUtQ29tcGlsZXJgXyBmb3IgdGhlIHJlcG9ydCBhbmQgYEByb2JpbjAzNzFgXyBmb3IgdGhlIFBS
LgorCisKKy4uIF9AZGF2aWRzem90dGVuOiBodHRwczovL2dpdGh1Yi5jb20vZGF2aWRzem90dGVu
CisuLiBfQGZhYmlvejogaHR0cHM6Ly9naXRodWIuY29tL2ZhYmlvegorLi4gX0Bmb2dvOiBodHRw
czovL2dpdGh1Yi5jb20vZm9nbworLi4gX0BmdXNoaTogaHR0cHM6Ly9naXRodWIuY29tL2Z1c2hp
CisuLiBfQEtvZGlvbG9naXN0OiBodHRwczovL2dpdGh1Yi5jb20vS29kaW9sb2dpc3QKKy4uIF9A
S3JpZWNoaTogaHR0cHM6Ly9naXRodWIuY29tL0tyaWVjaGkKKy4uIF9AbWFuZGVlcDogaHR0cHM6
Ly9naXRodWIuY29tL21hbmRlZXAKKy4uIF9AbWF0dGR1Y2s6IGh0dHBzOi8vZ2l0aHViLmNvbS9t
YXR0ZHVjaworLi4gX0BtZXRhc3luOiBodHRwczovL2dpdGh1Yi5jb20vbWV0YXN5bgorLi4gX0BN
aWNoYWxUSEVEVURFOiBodHRwczovL2dpdGh1Yi5jb20vTWljaGFsVEhFRFVERQorLi4gX0Bvamlp
OiBodHRwczovL2dpdGh1Yi5jb20vb2ppaQorLi4gX0ByZXV0c2hhcmFiYW5pOiBodHRwczovL2dp
dGh1Yi5jb20vcmV1dHNoYXJhYmFuaQorLi4gX0Byb2JpbjAzNzE6IGh0dHBzOi8vZ2l0aHViLmNv
bS9yb2JpbjAzNzEKKy4uIF9Ac2t5bGFyamhkb3duZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9za3ls
YXJqaGRvd25lcworLi4gX0B1bnNpZ25lZGludDogaHR0cHM6Ly9naXRodWIuY29tL3Vuc2lnbmVk
aW50CisuLiBfQHdoZWVyZDogaHR0cHM6Ly9naXRodWIuY29tL3doZWVyZAorCisKKy4uIF8jMTQw
NzogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xNDA3CisuLiBf
IzE1MTI6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTUxMgor
Li4gXyMxODIxOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE4
MjEKKy4uIF8jMTg3NDogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L3B1bGwv
MTg3NAorLi4gXyMxOTM3OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzE5MzcKKy4uIF8jMTk1MjogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L3B1bGwvMTk1MgorLi4gXyMyMDA3OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvaXNzdWVzLzIwMDcKKy4uIF8jMjAxMzogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYv
cHl0ZXN0L2lzc3Vlcy8yMDEzCisuLiBfIzIxMDE6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3B5dGVzdC9wdWxsLzIxMDEKKy4uIF8jMjE2NjogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0L3B1bGwvMjE2NgorLi4gXyMyMjA4OiBodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzIyMDgKKy4uIF8jMjIyODogaHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMjI4CisuLiBfIzIyNzY6IGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjI3NgorLi4gXyMyMzA4OiBodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzIzMDgKKy4uIF8jMjMzNjogaHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMzM2CisuLiBfIzIzNjk6IGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjM2OQorLi4gXyMyMzgz
OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzIzODMKKy4uIF8j
MjM5MTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMzkxCisu
LiBfIzUzMzogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81MzMK
KworCisKKzMuMC43ICgyMDE3LTAzLTE0KQorPT09PT09PT09PT09PT09PT09CisKKworKiBGaXgg
aXNzdWUgaW4gYXNzZXJ0aW9uIHJld3JpdGluZyBicmVha2luZyBkdWUgdG8gbW9kdWxlcyBzaWxl
bnRseSBkaXNjYXJkaW5nCisgIG90aGVyIG1vZHVsZXMgd2hlbiBpbXBvcnRpbmcgZmFpbHMKKyAg
Tm90YWJseSwgaW1wb3J0aW5nIHRoZSBgYGFueWRibWBgIG1vZHVsZSBpcyBmaXhlZC4gKGAjMjI0
OGBfKS4KKyAgVGhhbmtzIGBAcGZoYXllc2BfIGZvciB0aGUgUFIuCisKKyoganVuaXR4bWw6IEZp
eCBwcm9ibGVtYXRpYyBjYXNlIHdoZXJlIHN5c3RlbS1vdXQgdGFnIG9jY3VyZWQgdHdpY2UgcGVy
IHRlc3RjYXNlCisgIGVsZW1lbnQgaW4gdGhlIFhNTCByZXBvcnQuIFRoYW5rcyBgQGtrb3VraW91
YF8gZm9yIHRoZSBQUi4KKworKiBGaXggcmVncmVzc2lvbiwgcHl0ZXN0IG5vdyBza2lwcyB1bml0
dGVzdCBjb3JyZWN0bHkgaWYgcnVuIHdpdGggYGAtLXBkYmBgCisgIChgIzIxMzdgXykuIFRoYW5r
cyB0byBgQGdzdGBfIGZvciB0aGUgcmVwb3J0IGFuZCBgQG1ieXRgXyBmb3IgdGhlIFBSLgorCisq
IElnbm9yZSBleGNlcHRpb25zIHJhaXNlZCBmcm9tIGRlc2NyaXB0b3JzIChlLmcuIHByb3BlcnRp
ZXMpIGR1cmluZyBQeXRob24gdGVzdCBjb2xsZWN0aW9uIChgIzIyMzRgXykuCisgIFRoYW5rcyB0
byBgQGJsdWV0ZWNoYF8uCisKKyogYGAtLW92ZXJyaWRlLWluaWBgIG5vdyBjb3JyZWN0bHkgb3Zl
cnJpZGVzIHNvbWUgZnVuZGFtZW50YWwgb3B0aW9ucyBsaWtlIGBgcHl0aG9uX2ZpbGVzYGAgKGAj
MjIzOGBfKS4KKyAgVGhhbmtzIGBAc2lyZXhgXyBmb3IgdGhlIHJlcG9ydCBhbmQgYEBuaWNvZGRl
bXVzYF8gZm9yIHRoZSBQUi4KKworKiBSZXBsYWNlIGBgcmFpc2UgU3RvcEl0ZXJhdGlvbmBgIHVz
YWdlcyBpbiB0aGUgY29kZSBieSBzaW1wbGUgYGByZXR1cm5zYGAgdG8gZmluaXNoIGdlbmVyYXRv
cnMsIGluIGFjY29yZGFuY2UgdG8gYFBFUC00NzlgXyAoYCMyMTYwYF8pLgorICBUaGFua3MgYEB0
Z29vZGxldGBfIGZvciB0aGUgcmVwb3J0IGFuZCBgQG5pY29kZGVtdXNgXyBmb3IgdGhlIFBSLgor
CisqIEZpeCBpbnRlcm5hbCBlcnJvcnMgd2hlbiBhbiB1bnByaW50YWJsZSBgYEFzc2VydGlvbkVy
cm9yYGAgaXMgcmFpc2VkIGluc2lkZSBhIHRlc3QuCisgIFRoYW5rcyBgQG9tZXJoYWRhcmlgXyBm
b3IgdGhlIFBSLgorCisqIFNraXBwaW5nIHBsdWdpbiBub3cgYWxzbyB3b3JrcyB3aXRoIHRlc3Qg
aXRlbXMgZ2VuZXJhdGVkIGJ5IGN1c3RvbSBjb2xsZWN0b3JzIChgIzIyMzFgXykuCisgIFRoYW5r
cyB0byBgQHZpZGFydGZgXy4KKworKiBGaXggdHJhaWxpbmcgd2hpdGVzcGFjZSBpbiBjb25zb2xl
IG91dHB1dCBpZiBubyAuaW5pIGZpbGUgcHJlc2VudGVkIChgIzIyODFgXykuIFRoYW5rcyBgQGZi
am9ybmBfIGZvciB0aGUgUFIuCisKKyogQ29uZGl0aW9ubGVzcyBgYHhmYWlsYGAgbWFya2VycyBu
byBsb25nZXIgcmVseSBvbiB0aGUgdW5kZXJseWluZyB0ZXN0IGl0ZW0KKyAgYmVpbmcgYW4gaW5z
dGFuY2Ugb2YgYGBQeW9iak1peGluYGAsIGFuZCBjYW4gdGhlcmVmb3JlIGFwcGx5IHRvIHRlc3Rz
IG5vdAorICBjb2xsZWN0ZWQgYnkgdGhlIGJ1aWx0LWluIHB5dGhvbiB0ZXN0IGNvbGxlY3Rvci4g
VGhhbmtzIGBAYmFybmV5Z2FsZWBfIGZvciB0aGUKKyAgUFIuCisKKworLi4gX0BwZmhheWVzOiBo
dHRwczovL2dpdGh1Yi5jb20vcGZoYXllcworLi4gX0BibHVldGVjaDogaHR0cHM6Ly9naXRodWIu
Y29tL2JsdWV0ZWNoCisuLiBfQGdzdDogaHR0cHM6Ly9naXRodWIuY29tL2dzdAorLi4gX0BzaXJl
eDogaHR0cHM6Ly9naXRodWIuY29tL3NpcmV4CisuLiBfQHZpZGFydGY6IGh0dHBzOi8vZ2l0aHVi
LmNvbS92aWRhcnRmCisuLiBfQGtrb3VraW91OiBodHRwczovL2dpdGh1Yi5jb20vS0tvdWtpb3UK
Ky4uIF9Ab21lcmhhZGFyaTogaHR0cHM6Ly9naXRodWIuY29tL29tZXJoYWRhcmkKKy4uIF9AZmJq
b3JuOiBodHRwczovL2dpdGh1Yi5jb20vZmJqb3JuCisKKy4uIF8jMjI0ODogaHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMjQ4CisuLiBfIzIxMzc6IGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjEzNworLi4gXyMyMTYwOiBodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzIxNjAKKy4uIF8jMjIzMTog
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMjMxCisuLiBfIzIy
MzQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjIzNAorLi4g
XyMyMjM4OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzIyMzgK
Ky4uIF8jMjI4MTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8y
MjgxCisKKy4uIF9QRVAtNDc5OiBodHRwczovL3d3dy5weXRob24ub3JnL2Rldi9wZXBzL3BlcC0w
NDc5LworCisKKzMuMC42ICgyMDE3LTAxLTIyKQorPT09PT09PT09PT09PT09PT09CisKKyogcHl0
ZXN0IG5vIGxvbmdlciBnZW5lcmF0ZXMgYGBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nYGAgZnJv
bSBpdHMgb3duIG9wZXJhdGlvbnMsIHdoaWNoIHdhcyBpbnRyb2R1Y2VkIGJ5IG1pc3Rha2UgaW4g
dmVyc2lvbiBgYDMuMC41YGAgKGAjMjExOGBfKS4KKyAgVGhhbmtzIHRvIGBAbmljb2RkZW11c2Bf
IGZvciB0aGUgcmVwb3J0IGFuZCBgQFJvbm55UGZhbm5zY2htaWR0YF8gZm9yIHRoZSBQUi4KKwor
CisqIHB5dGVzdCBubyBsb25nZXIgcmVjb2duaXplcyBjb3JvdXRpbmUgZnVuY3Rpb25zIGFzIHlp
ZWxkIHRlc3RzIChgIzIxMjlgXykuCisgIFRoYW5rcyB0byBgQG1hbGlub2ZmYF8gZm9yIHRoZSBQ
Ui4KKworKiBQbHVnaW5zIGxvYWRlZCBieSB0aGUgYGBQWVRFU1RfUExVR0lOU2BgIGVudmlyb25t
ZW50IHZhcmlhYmxlIGFyZSBub3cgYXV0b21hdGljYWxseQorICBjb25zaWRlcmVkIGZvciBhc3Nl
cnRpb24gcmV3cml0aW5nIChgIzIxODVgXykuCisgIFRoYW5rcyBgQG5pY29kZGVtdXNgXyBmb3Ig
dGhlIFBSLgorCisqIEltcHJvdmUgZXJyb3IgbWVzc2FnZSB3aGVuIHB5dGVzdC53YXJucyBmYWls
cyAoYCMyMTUwYF8pLiBUaGUgdHlwZShzKSBvZiB0aGUKKyAgZXhwZWN0ZWQgd2FybmluZ3MgYW5k
IHRoZSBsaXN0IG9mIGNhdWdodCB3YXJuaW5ncyBpcyBhZGRlZCB0byB0aGUKKyAgZXJyb3IgbWVz
c2FnZS4gVGhhbmtzIGBAbGVzdGV2ZWBfIGZvciB0aGUgUFIuCisKKyogRml4IGBgcHl0ZXN0ZXJg
YCBpbnRlcm5hbCBwbHVnaW4gdG8gd29yayBjb3JyZWN0bHkgd2l0aCBsYXRlc3QgdmVyc2lvbnMg
b2YKKyAgYGB6b3BlLmludGVyZmFjZWBgIChgIzE5ODlgXykuIFRoYW5rcyBgQG5pY29kZGVtdXNg
XyBmb3IgdGhlIFBSLgorCisqIEFzc2VydCBzdGF0ZW1lbnRzIG9mIHRoZSBgYHB5dGVzdGVyYGAg
cGx1Z2luIGFnYWluIGJlbmVmaXQgZnJvbSBhc3NlcnRpb24gcmV3cml0aW5nIChgIzE5MjBgXyku
CisgIFRoYW5rcyBgQFJvbm55UGZhbm5zY2htaWR0YF8gZm9yIHRoZSByZXBvcnQgYW5kIGBAbmlj
b2RkZW11c2BfIGZvciB0aGUgUFIuCisKKyogU3BlY2lmeWluZyB0ZXN0cyB3aXRoIGNvbG9ucyBs
aWtlIGBgdGVzdF9mb28ucHk6OnRlc3RfYmFyYGAgZm9yIHRlc3RzIGluCisgIHN1YmRpcmVjdG9y
aWVzIHdpdGggaW5pIGNvbmZpZ3VyYXRpb24gZmlsZXMgbm93IHVzZXMgdGhlIGNvcnJlY3QgaW5p
IGZpbGUKKyAgKGAjMjE0OGBfKS4gIFRoYW5rcyBgQHBlbG1lYF8uCisKKyogRmFpbCBgYHRlc3Rk
aXIucnVucHl0ZXN0KCkuYXNzZXJ0X291dGNvbWVzKClgYCBleHBsaWNpdGx5IGlmIHRoZSBweXRl
c3QKKyAgdGVybWluYWwgb3V0cHV0IGl0IHJlbGllcyBvbiBpcyBtaXNzaW5nLiBUaGFua3MgdG8g
YEBlbGktYmBfIGZvciB0aGUgUFIuCisKKworLi4gX0BiYXJuZXlnYWxlOiBodHRwczovL2dpdGh1
Yi5jb20vYmFybmV5Z2FsZQorLi4gX0BsZXN0ZXZlOiBodHRwczovL2dpdGh1Yi5jb20vbGVzdGV2
ZQorLi4gX0BtYWxpbm9mZjogaHR0cHM6Ly9naXRodWIuY29tL21hbGlub2ZmCisuLiBfQHBlbG1l
OiBodHRwczovL2dpdGh1Yi5jb20vcGVsbWUKKy4uIF9AZWxpLWI6IGh0dHBzOi8vZ2l0aHViLmNv
bS9lbGktYgorCisuLiBfIzIxMTg6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvMjExOAorCisuLiBfIzE5ODk6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2
L3B5dGVzdC9pc3N1ZXMvMTk4OQorLi4gXyMxOTIwOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9weXRlc3QvaXNzdWVzLzE5MjAKKy4uIF8jMjEyOTogaHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMTI5CisuLiBfIzIxNDg6IGh0dHBzOi8vZ2l0aHViLmNv
bS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjE0OAorLi4gXyMyMTUwOiBodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzIxNTAKKy4uIF8jMjE4NTogaHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMTg1CisKKworMy4wLjUgKDIwMTYt
MTItMDUpCis9PT09PT09PT09PT09PT09PT0KKworKiBBZGQgd2FybmluZyB3aGVuIG5vdCBwYXNz
aW5nIGBgb3B0aW9uPXZhbHVlYGAgY29ycmVjdGx5IHRvIGBgLW8vLS1vdmVycmlkZS1pbmlgYCAo
YCMyMTA1YF8pLgorICBBbHNvIGltcHJvdmVkIHRoZSBoZWxwIGRvY3VtZW50YXRpb24uIFRoYW5r
cyB0byBgQG1idWthdG92YF8gZm9yIHRoZSByZXBvcnQgYW5kCisgIGBAbHdtYF8gZm9yIHRoZSBQ
Ui4KKworKiBOb3cgYGAtLWNvbmZjdXRkaXJgYCBhbmQgYGAtLWp1bml0LXhtbGBgIGFyZSBwcm9w
ZXJseSB2YWxpZGF0ZWQgaWYgdGhleSBhcmUgZGlyZWN0b3JpZXMKKyAgYW5kIGZpbGVuYW1lcywg
cmVzcGVjdGl2ZWx5IChgIzIwODlgXyBhbmQgYCMyMDc4YF8pLiBUaGFua3MgdG8gYEBsd21gXyBm
b3IgdGhlIFBSLgorCisqIEFkZCBoaW50IHRvIGVycm9yIG1lc3NhZ2UgaGludGluZyBwb3NzaWJs
ZSBtaXNzaW5nIGBgX19pbml0X18ucHlgYCAoYCM0NzhgXykuIFRoYW5rcyBgQER1bmNhbkJldHRz
YF8uCisKKyogTW9yZSBhY2N1cmF0ZWx5IGRlc2NyaWJlIHdoZW4gZml4dHVyZSBmaW5hbGl6YXRp
b24gb2NjdXJzIGluIGRvY3VtZW50YXRpb24gKGAjNjg3YF8pLiBUaGFua3MgYEBEdW5jYW5CZXR0
c2BfLgorCisqIFByb3ZpZGUgYGA6cmVmOmBgIHRhcmdldHMgZm9yIGBgcmVjd2Fybi5yc3RgYCBz
byB3ZSBjYW4gdXNlIGludGVyc3BoaW54IHJlZmVyZW5jaW5nLgorICBUaGFua3MgdG8gYEBkdXB1
eWBfIGZvciB0aGUgcmVwb3J0IGFuZCBgQGx3bWBfIGZvciB0aGUgUFIuCisKKyogSW4gUHl0aG9u
IDIsIHVzZSBhIHNpbXBsZSBgYCstYGAgQVNDSUkgc3RyaW5nIGluIHRoZSBzdHJpbmcgcmVwcmVz
ZW50YXRpb24gb2YgYGBweXRlc3QuYXBwcm94YGAgKGZvciBleGFtcGxlIGBgIjQgKy0gNC4wZS0w
NiJgYCkKKyAgYmVjYXVzZSBpdCBpcyBicml0dGxlIHRvIGhhbmRsZSB0aGF0IGluIGRpZmZlcmVu
dCBjb250ZXh0cyBhbmQgcmVwcmVzZW50YXRpb25zIGludGVybmFsbHkgaW4gcHl0ZXN0CisgIHdo
aWNoIGNhbiByZXN1bHQgaW4gYnVncyBzdWNoIGFzIGAjMjExMWBfLiBJbiBQeXRob24gMywgdGhl
IHJlcHJlc2VudGF0aW9uIHN0aWxsIHVzZXMgYGDCsWBgIChmb3IgZXhhbXBsZSBgYDQgwrEgNC4w
ZS0wNmBgKS4KKyAgVGhhbmtzIGBAa2Vycmljay1seWZ0YF8gZm9yIHRoZSByZXBvcnQgYW5kIGBA
bmljb2RkZW11c2BfIGZvciB0aGUgUFIuCisKKyogVXNpbmcgYGBpdGVtLkZ1bmN0aW9uYGAsIGBg
aXRlbS5Nb2R1bGVgYCwgZXRjLiwgaXMgbm93IGlzc3VpbmcgZGVwcmVjYXRpb24gd2FybmluZ3Ms
IHByZWZlcgorICBgYHB5dGVzdC5GdW5jdGlvbmBgLCBgYHB5dGVzdC5Nb2R1bGVgYCwgZXRjLiwg
aW5zdGVhZCAoYCMyMDM0YF8pLgorICBUaGFua3MgYEBubXVuZGFyYF8gZm9yIHRoZSBQUi4KKwor
KiBGaXggZXJyb3IgbWVzc2FnZSB1c2luZyBgYGFwcHJveGBgIHdpdGggY29tcGxleCBudW1iZXJz
IChgIzIwODJgXykuCisgIFRoYW5rcyBgQGFkbGVyLWpgXyBmb3IgdGhlIHJlcG9ydCBhbmQgYEBu
aWNvZGRlbXVzYF8gZm9yIHRoZSBQUi4KKworKiBGaXhlZCBmYWxzZS1wb3NpdGl2ZXMgd2Fybmlu
Z3MgZnJvbSBhc3NlcnRpb24gcmV3cml0ZSBob29rIGZvciBtb2R1bGVzIGltcG9ydGVkIG1vcmUg
dGhhbgorICBvbmNlIGJ5IHRoZSBgYHB5dGVzdF9wbHVnaW5zYGAgbWVjaGFuaXNtLgorICBUaGFu
a3MgYEBuaWNvZGRlbXVzYF8gZm9yIHRoZSBQUi4KKworKiBSZW1vdmUgYW4gaW50ZXJuYWwgY2Fj
aGUgd2hpY2ggY291bGQgY2F1c2UgaG9va3MgZnJvbSBgYGNvbmZ0ZXN0LnB5YGAgZmlsZXMgaW4K
KyAgc3ViLWRpcmVjdG9yaWVzIHRvIGJlIGNhbGxlZCBpbiBvdGhlciBkaXJlY3RvcmllcyBpbmNv
cnJlY3RseSAoYCMyMDE2YF8pLgorICBUaGFua3MgYEBkLWItd2BfIGZvciB0aGUgcmVwb3J0IGFu
ZCBgQG5pY29kZGVtdXNgXyBmb3IgdGhlIFBSLgorCisqIFJlbW92ZSBpbnRlcm5hbCBjb2RlIG1l
YW50IHRvIHN1cHBvcnQgZWFybGllciBQeXRob24gMyB2ZXJzaW9ucyB0aGF0IHByb2R1Y2VkIHRo
ZSBzaWRlIGVmZmVjdAorICBvZiBsZWF2aW5nIGBgTm9uZWBgIGluIGBgc3lzLm1vZHVsZXNgYCB3
aGVuIGV4cHJlc3Npb25zIHdlcmUgZXZhbHVhdGVkIGJ5IHB5dGVzdCAoZm9yIGV4YW1wbGUgcGFz
c2luZyBhIGNvbmRpdGlvbgorICBhcyBhIHN0cmluZyB0byBgYHB5dGVzdC5tYXJrLnNraXBpZmBg
KShgIzIxMDNgXykuCisgIFRoYW5rcyBgQGphcmFjb2BfIGZvciB0aGUgcmVwb3J0IGFuZCBgQG5p
Y29kZGVtdXNgXyBmb3IgdGhlIFBSLgorCisqIENvcGUgZ3JhY2VmdWxseSB3aXRoIGEgLnB5YyBm
aWxlIHdpdGggbm8gbWF0Y2hpbmcgLnB5IGZpbGUgKGAjMjAzOGBfKS4gVGhhbmtzCisgIGBAbmVk
YmF0YF8uCisKKy4uIF9Ac3lyZTogaHR0cHM6Ly9naXRodWIuY29tL3N5cmUKKy4uIF9AYWRsZXIt
ajogaHR0cHM6Ly9naXRodWIuY29tL2FkbGVyLWoKKy4uIF9AZC1iLXc6IGh0dHBzOi8vYml0YnVj
a2V0Lm9yZy9kLWItdy8KKy4uIF9ARHVuY2FuQmV0dHM6IGh0dHBzOi8vZ2l0aHViLmNvbS9EdW5j
YW5CZXR0cworLi4gX0BkdXB1eTogaHR0cHM6Ly9iaXRidWNrZXQub3JnL2R1cHV5LworLi4gX0Br
ZXJyaWNrLWx5ZnQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9rZXJyaWNrLWx5ZnQKKy4uIF9AbHdtOiBo
dHRwczovL2dpdGh1Yi5jb20vbHdtCisuLiBfQG1idWthdG92OiBodHRwczovL2dpdGh1Yi5jb20v
bWJ1a2F0b3YKKy4uIF9AbmVkYmF0OiBodHRwczovL2dpdGh1Yi5jb20vbmVkYmF0CisuLiBfQG5t
dW5kYXI6IGh0dHBzOi8vZ2l0aHViLmNvbS9ubXVuZGFyCisKKy4uIF8jMjAxNjogaHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMDE2CisuLiBfIzIwMzQ6IGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjAzNAorLi4gXyMyMDM4OiBo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzIwMzgKKy4uIF8jMjA3
ODogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMDc4CisuLiBf
IzIwODI6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjA4Mgor
Li4gXyMyMDg5OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzIw
ODkKKy4uIF8jMjEwMzogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy8yMTAzCisuLiBfIzIxMDU6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvMjEwNQorLi4gXyMyMTExOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvaXNzdWVzLzIxMTEKKy4uIF8jNDc4OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvaXNzdWVzLzQ3OAorLi4gXyM2ODc6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2
L3B5dGVzdC9pc3N1ZXMvNjg3CisKKworMy4wLjQgKDIwMTYtMTEtMDkpCis9PT09PT09PT09PT09
PT09PT0KKworKiBJbXBvcnQgZXJyb3JzIHdoZW4gY29sbGVjdGluZyB0ZXN0IG1vZHVsZXMgbm93
IGRpc3BsYXkgdGhlIGZ1bGwgdHJhY2ViYWNrIChgIzE5NzZgXykuCisgIFRoYW5rcyBgQGN3aXR0
eWBfIGZvciB0aGUgcmVwb3J0IGFuZCBgQG5pY29kZGVtdXNgXyBmb3IgdGhlIFBSLgorCisqIEZp
eCBjb25mdXNpbmcgY29tbWFuZC1saW5lIGhlbHAgbWVzc2FnZSBmb3IgY3VzdG9tIG9wdGlvbnMg
d2l0aCB0d28gb3IgbW9yZSBgYG1ldGF2YXJgYCBwcm9wZXJ0aWVzIChgIzIwMDRgXykuCisgIFRo
YW5rcyBgQG9rdWx5bnlha2BfIGFuZCBgQGRhdmVodW50YF8gZm9yIHRoZSByZXBvcnQgYW5kIGBA
bmljb2RkZW11c2BfIGZvciB0aGUgUFIuCisKKyogV2hlbiBsb2FkaW5nIHBsdWdpbnMsIGltcG9y
dCBlcnJvcnMgd2hpY2ggY29udGFpbiBub24tYXNjaWkgbWVzc2FnZXMgYXJlIG5vdyBwcm9wZXJs
eSBoYW5kbGVkIGluIFB5dGhvbiAyIChgIzE5OThgXykuCisgIFRoYW5rcyBgQG5pY29kZGVtdXNg
XyBmb3IgdGhlIFBSLgorCisqIEZpeGVkIGN5Y2xpYyByZWZlcmVuY2Ugd2hlbiBgYHB5dGVzdC5y
YWlzZXNgYCBpcyB1c2VkIGluIGNvbnRleHQtbWFuYWdlciBmb3JtIChgIzE5NjVgXykuIEFsc28g
YXMgYQorICByZXN1bHQgb2YgdGhpcyBmaXgsIGBgc3lzLmV4Y19pbmZvKClgYCBpcyBsZWZ0IGVt
cHR5IGluIGJvdGggY29udGV4dC1tYW5hZ2VyIGFuZCBmdW5jdGlvbiBjYWxsIHVzYWdlcy4KKyAg
UHJldmlvdXNseSwgYGBzeXMuZXhjX2luZm9gYCB3b3VsZCBjb250YWluIHRoZSBleGNlcHRpb24g
Y2F1Z2h0IGJ5IHRoZSBjb250ZXh0IG1hbmFnZXIsCisgIGV2ZW4gd2hlbiB0aGUgZXhwZWN0ZWQg
ZXhjZXB0aW9uIG9jY3VycmVkLgorICBUaGFua3MgYEBNU2VpZmVydDA0YF8gZm9yIHRoZSByZXBv
cnQgYW5kIHRoZSBQUi4KKworKiBGaXhlZCBmYWxzZS1wb3NpdGl2ZXMgd2FybmluZ3MgZnJvbSBh
c3NlcnRpb24gcmV3cml0ZSBob29rIGZvciBtb2R1bGVzIHRoYXQgd2VyZSByZXdyaXR0ZW4gYnV0
CisgIHdlcmUgbGF0ZXIgbWFya2VkIGV4cGxpY2l0bHkgYnkgYGBweXRlc3QucmVnaXN0ZXJfYXNz
ZXJ0X3Jld3JpdGVgYAorICBvciBpbXBsaWNpdGx5IGFzIGEgcGx1Z2luIChgIzIwMDVgXykuCisg
IFRoYW5rcyBgQFJvbm55UGZhbm5zY2htaWR0YF8gZm9yIHRoZSByZXBvcnQgYW5kIGBAbmljb2Rk
ZW11c2BfIGZvciB0aGUgUFIuCisKKyogUmVwb3J0IHRlYXJkb3duIG91dHB1dCBvbiB0ZXN0IGZh
aWx1cmUgKGAjNDQyYF8pLgorICBUaGFua3MgYEBtYXRjbGFiYF8gZm9yIHRoZSBQUi4KKworKiBG
aXggdGVhcmRvd24gZXJyb3IgbWVzc2FnZSBpbiBnZW5lcmF0ZWQgeFVuaXQgWE1MLgorICBUaGFu
a3MgYEBnZHl1bGRpbmBfIGZvciB0aGUgUFIuCisKKyogUHJvcGVybHkgaGFuZGxlIGV4Y2VwdGlv
bnMgaW4gYGBtdWx0aXByb2Nlc3NpbmdgYCB0YXNrcyAoYCMxOTg0YF8pLgorICBUaGFua3MgYEBh
ZGJvcmRlbmBfIGZvciB0aGUgcmVwb3J0IGFuZCBgQG5pY29kZGVtdXNgXyBmb3IgdGhlIFBSLgor
CisqIENsZWFuIHVwIHVuaXR0ZXN0IFRlc3RDYXNlIG9iamVjdHMgYWZ0ZXIgdGVzdHMgYXJlIGNv
bXBsZXRlIChgIzE2NDlgXykuCisgIFRoYW5rcyBgQGRfYl93YF8gZm9yIHRoZSByZXBvcnQgYW5k
IFBSLgorCisKKy4uIF9AYWRib3JkZW46IGh0dHBzOi8vZ2l0aHViLmNvbS9hZGJvcmRlbgorLi4g
X0Bjd2l0dHk6IGh0dHBzOi8vZ2l0aHViLmNvbS9jd2l0dHkKKy4uIF9AZF9iX3c6IGh0dHBzOi8v
Z2l0aHViLmNvbS9kX2JfdworLi4gX0BnZHl1bGRpbjogaHR0cHM6Ly9naXRodWIuY29tL2dkeXVs
ZGluCisuLiBfQG1hdGNsYWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9tYXRjbGFiCisuLiBfQE1TZWlm
ZXJ0MDQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9NU2VpZmVydDA0CisuLiBfQG9rdWx5bnlhazogaHR0
cHM6Ly9naXRodWIuY29tL29rdWx5bnlhaworCisuLiBfIzQ0MjogaHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy80NDIKKy4uIF8jMTk2NTogaHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xOTY1CisuLiBfIzE5NzY6IGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTk3NgorLi4gXyMxOTg0OiBodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE5ODQKKy4uIF8jMTk5ODogaHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xOTk4CisuLiBfIzIwMDQ6
IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjAwNAorLi4gXyMy
MDA1OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzIwMDUKKy4u
IF8jMTY0OTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xNjQ5
CisKKworMy4wLjMgKDIwMTYtMDktMjgpCis9PT09PT09PT09PT09PT09PT0KKworKiBUaGUgYGBp
ZHNgYCBhcmd1bWVudCB0byBgYHBhcmFtZXRyaXplYGAgYWdhaW4gYWNjZXB0cyBgYHVuaWNvZGVg
YCBzdHJpbmdzCisgIGluIFB5dGhvbiAyIChgIzE5MDVgXykuCisgIFRoYW5rcyBgQHBoaWxwZXBg
XyBmb3IgdGhlIHJlcG9ydCBhbmQgYEBuaWNvZGRlbXVzYF8gZm9yIHRoZSBQUi4KKworKiBBc3Nl
cnRpb25zIGFyZSBub3cgYmVpbmcgcmV3cml0dGVuIGZvciBwbHVnaW5zIGluIGRldmVsb3BtZW50
IG1vZGUKKyAgKGBgcGlwIGluc3RhbGwgLWVgYCkgKGAjMTkzNGBfKS4KKyAgVGhhbmtzIGBAbmlj
b2RkZW11c2BfIGZvciB0aGUgUFIuCisKKyogRml4IHBrZ19yZXNvdXJjZXMgaW1wb3J0IGVycm9y
IGluIEp5dGhvbiBwcm9qZWN0cyAoYCMxODUzYF8pLgorICBUaGFua3MgYEByYXF1ZWwtdWNsYF8g
Zm9yIHRoZSBQUi4KKworKiBHb3QgcmlkIG9mIGBgQXR0cmlidXRlRXJyb3I6ICdNb2R1bGUnIG9i
amVjdCBoYXMgbm8gYXR0cmlidXRlICdfb2JqJ2BgIGV4Y2VwdGlvbgorICBpbiBQeXRob24gMyAo
YCMxOTQ0YF8pLgorICBUaGFua3MgYEBheGlsYF8gZm9yIHRoZSBQUi4KKworKiBFeHBsYWluIGEg
YmFkIHNjb3BlIHZhbHVlIHBhc3NlZCB0byBgYEBmaXh0dXJlYGAgZGVjbGFyYXRpb25zIG9yCisg
IGEgYGBNZXRhRnVuYy5wYXJhbWV0cml6ZSgpYGAgY2FsbC4gVGhhbmtzIGBAdGdvb2RsZXRgXyBm
b3IgdGhlIFBSLgorCisqIFRoaXMgdmVyc2lvbiBpbmNsdWRlcyBgYHBsdWdneS0wLjQuMGBgLCB3
aGljaCBjb3JyZWN0bHkgaGFuZGxlcworICBgYFZlcnNpb25Db25mbGljdGBgIGVycm9ycyBpbiBw
bHVnaW5zIChgIzcwNGBfKS4KKyAgVGhhbmtzIGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIuCisK
KworLi4gX0BwaGlscGVwOiBodHRwczovL2dpdGh1Yi5jb20vcGhpbHBlcAorLi4gX0ByYXF1ZWwt
dWNsOiBodHRwczovL2dpdGh1Yi5jb20vcmFxdWVsLXVjbAorLi4gX0BheGlsOiBodHRwczovL2dp
dGh1Yi5jb20vYXhpbAorLi4gX0B0Z29vZGxldDogaHR0cHM6Ly9naXRodWIuY29tL3Rnb29kbGV0
CisuLiBfQHZsYWQtZHJhZ29zOiBodHRwczovL2dpdGh1Yi5jb20vdmxhZC1kcmFnb3MKKworLi4g
XyMxODUzOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE4NTMK
Ky4uIF8jMTkwNTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8x
OTA1CisuLiBfIzE5MzQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvMTkzNAorLi4gXyMxOTQ0OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
aXNzdWVzLzE5NDQKKy4uIF8jNzA0OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvaXNzdWVzLzcwNAorCisKKworCiszLjAuMiAoMjAxNi0wOS0wMSkKKz09PT09PT09PT09PT09
PT09PQorCisqIEltcHJvdmUgZXJyb3IgbWVzc2FnZSB3aGVuIHBhc3Npbmcgbm9uLXN0cmluZyBp
ZHMgdG8gYGBweXRlc3QubWFyay5wYXJhbWV0cml6ZWBgIChgIzE4NTdgXykuCisgIFRoYW5rcyBg
QG9ra2VuYF8gZm9yIHRoZSByZXBvcnQgYW5kIGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIuCisK
KyogQWRkIGBgYnVmZmVyYGAgYXR0cmlidXRlIHRvIHN0ZGluIHN0dWIgY2xhc3MgYGBweXRlc3Qu
Y2FwdHVyZS5Eb250UmVhZEZyb21JbnB1dGBgCisgIFRoYW5rcyBgQGpvZ3VTRGBfIGZvciB0aGUg
UFIuCisKKyogRml4IGBgVW5pY29kZUVuY29kZUVycm9yYGAgd2hlbiBzdHJpbmcgY29tcGFyaXNv
biB3aXRoIHVuaWNvZGUgaGFzIGZhaWxlZC4gKGAjMTg2NGBfKQorICBUaGFua3MgYEBBaU9PYF8g
Zm9yIHRoZSBQUi4KKworKiBgYHB5dGVzdF9wbHVnaW5zYGAgaXMgbm93IGhhbmRsZWQgY29ycmVj
dGx5IGlmIGRlZmluZWQgYXMgYSBzdHJpbmcgKGFzIG9wcG9zZWQgYXMKKyAgYSBzZXF1ZW5jZSBv
ZiBzdHJpbmdzKSB3aGVuIG1vZHVsZXMgYXJlIGNvbnNpZGVyZWQgZm9yIGFzc2VydGlvbiByZXdy
aXRpbmcuCisgIER1ZSB0byB0aGlzIGJ1ZywgbXVjaCBtb3JlIG1vZHVsZXMgd2VyZSBiZWluZyBy
ZXdyaXR0ZW4gdGhhbiBuZWNlc3NhcnkKKyAgaWYgYSB0ZXN0IHN1aXRlIHVzZXMgYGBweXRlc3Rf
cGx1Z2luc2BgIHRvIGxvYWQgaW50ZXJuYWwgcGx1Z2lucyAoYCMxODg4YF8pLgorICBUaGFua3Mg
YEBqYXJhY29gXyBmb3IgdGhlIHJlcG9ydCBhbmQgYEBuaWNvZGRlbXVzYF8gZm9yIHRoZSBQUiAo
YCMxODkxYF8pLgorCisqIERvIG5vdCBjYWxsIHRlYXJEb3duIGFuZCBjbGVhbnVwcyB3aGVuIHJ1
bm5pbmcgdGVzdHMgZnJvbQorICBgYHVuaXR0ZXN0LlRlc3RDYXNlYGAgc3ViY2xhc3NlcyB3aXRo
IGBgLS1wZGJgYAorICBlbmFibGVkLiBUaGlzIGFsbG93cyBwcm9wZXIgcG9zdCBtb3J0ZW0gZGVi
dWdnaW5nIGZvciBhbGwgYXBwbGljYXRpb25zCisgIHdoaWNoIGhhdmUgc2lnbmlmaWNhbnQgbG9n
aWMgaW4gdGhlaXIgdGVhckRvd24gbWFjaGluZXJ5IChgIzE4OTBgXykuIFRoYW5rcworICBgQG1i
eXRgXyBmb3IgdGhlIFBSLgorCisqIEZpeCB1c2Ugb2YgZGVwcmVjYXRlZCBgYGdldGZ1bmNhcmd2
YWx1ZWBgIG1ldGhvZCBpbiB0aGUgaW50ZXJuYWwgZG9jdGVzdCBwbHVnaW4uCisgIFRoYW5rcyBg
QFZpdmlDb2RlcmBfIGZvciB0aGUgcmVwb3J0IChgIzE4OThgXykuCisKKy4uIF9Aam9ndVNEOiBo
dHRwczovL2dpdGh1Yi5jb20vam9ndVNECisuLiBfQEFpT086IGh0dHBzOi8vZ2l0aHViLmNvbS9B
aU9PCisuLiBfQG1ieXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9tYnl0CisuLiBfQFZpdmlDb2Rlcjog
aHR0cHM6Ly9naXRodWIuY29tL1ZpdmlDb2RlcgorCisuLiBfIzE4NTc6IGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTg1NworLi4gXyMxODY0OiBodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE4NjQKKy4uIF8jMTg4ODogaHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xODg4CisuLiBfIzE4OTE6IGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9wdWxsLzE4OTEKKy4uIF8jMTg5MDog
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xODkwCisuLiBfIzE4
OTg6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTg5OAorCisK
KzMuMC4xICgyMDE2LTA4LTIzKQorPT09PT09PT09PT09PT09PT09CisKKyogRml4IHJlZ3Jlc3Np
b24gd2hlbiBgYGltcG9ydG9yc2tpcGBgIGlzIHVzZWQgYXQgbW9kdWxlIGxldmVsIChgIzE4MjJg
XykuCisgIFRoYW5rcyBgQGphcmFjb2BfIGFuZCBgQFRoZS1Db21waWxlcmBfIGZvciB0aGUgcmVw
b3J0IGFuZCBgQG5pY29kZGVtdXNgXyBmb3IgdGhlIFBSLgorCisqIEZpeCBwYXJhbWV0cml6YXRp
b24gc2NvcGUgd2hlbiBzZXNzaW9uIGZpeHR1cmVzIGFyZSB1c2VkIGluIGNvbmp1bmN0aW9uCisg
IHdpdGggbm9ybWFsIHBhcmFtZXRlcnMgaW4gdGhlIHNhbWUgY2FsbCAoYCMxODMyYF8pLgorICBU
aGFua3MgYEBUaGUtQ29tcGlsZXJgXyBmb3IgdGhlIHJlcG9ydCwgYEBLaW5nZHJlYWRgXyBhbmQg
YEBuaWNvZGRlbXVzYF8gZm9yIHRoZSBQUi4KKworKiBGaXggaW50ZXJuYWwgZXJyb3Igd2hlbiBw
YXJhbWV0cml6aW5nIHRlc3RzIG9yIGZpeHR1cmVzIHVzaW5nIGFuIGVtcHR5IGBgaWRzYGAgYXJn
dW1lbnQgKGAjMTg0OWBfKS4KKyAgVGhhbmtzIGBAT1BwdW9saXRhaXZhbGBfIGZvciB0aGUgcmVw
b3J0IGFuZCBgQG5pY29kZGVtdXNgXyBmb3IgdGhlIFBSLgorCisqIEZpeCBsb2FkZXIgZXJyb3Ig
d2hlbiBydW5uaW5nIGBgcHl0ZXN0YGAgZW1iZWRkZWQgaW4gYSB6aXBmaWxlLgorICBUaGFua3Mg
YEBtYmFjaHJ5YF8gZm9yIHRoZSBQUi4KKworCisuLiBfQEtpbmdkcmVhZDogaHR0cHM6Ly9naXRo
dWIuY29tL0tpbmdkcmVhZAorLi4gX0BtYmFjaHJ5OiBodHRwczovL2dpdGh1Yi5jb20vbWJhY2hy
eQorLi4gX0BPUHB1b2xpdGFpdmFsOiBodHRwczovL2dpdGh1Yi5jb20vT1BwdW9saXRhaXZhbAor
CisuLiBfIzE4MjI6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMv
MTgyMgorLi4gXyMxODMyOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzLzE4MzIKKy4uIF8jMTg0OTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2lzc3Vlcy8xODQ5CisKKworMy4wLjAgKDIwMTYtMDgtMTgpCis9PT09PT09PT09PT09PT09PT0K
KworKipJbmNvbXBhdGlibGUgY2hhbmdlcyoqCisKKworQSBudW1iZXIgb2YgaW5jb21wYXRpYmxl
IGNoYW5nZXMgd2VyZSBtYWRlIGluIHRoaXMgcmVsZWFzZSwgd2l0aCB0aGUgaW50ZW50IG9mIHJl
bW92aW5nIGZlYXR1cmVzIGRlcHJlY2F0ZWQgZm9yIGEgbG9uZwordGltZSBvciBjaGFuZ2UgZXhp
c3RpbmcgYmVoYXZpb3JzIGluIG9yZGVyIHRvIG1ha2UgdGhlbSBsZXNzIHN1cnByaXNpbmcvbW9y
ZSB1c2VmdWwuCisKKyogUmVpbnRlcnByZXRhdGlvbiBtb2RlIGhhcyBub3cgYmVlbiByZW1vdmVk
LiAgT25seSBwbGFpbiBhbmQgcmV3cml0ZQorICBtb2RlIGFyZSBhdmFpbGFibGUsIGNvbnNlcXVl
bnRseSB0aGUgYGAtLWFzc2VydD1yZWludGVycGBgIG9wdGlvbiBpcworICBubyBsb25nZXIgYXZh
aWxhYmxlLiAgVGhpcyBhbHNvIG1lYW5zIGZpbGVzIGltcG9ydGVkIGZyb20gcGx1Z2lucyBvcgor
ICBgYGNvbmZ0ZXN0LnB5YGAgd2lsbCBub3QgYmVuZWZpdCBmcm9tIGltcHJvdmVkIGFzc2VydGlv
bnMgYnkKKyAgZGVmYXVsdCwgeW91IHNob3VsZCB1c2UgYGBweXRlc3QucmVnaXN0ZXJfYXNzZXJ0
X3Jld3JpdGUoKWBgIHRvCisgIGV4cGxpY2l0bHkgdHVybiBvbiBhc3NlcnRpb24gcmV3cml0aW5n
IGZvciB0aG9zZSBmaWxlcy4gIFRoYW5rcworICBgQGZsdWJgXyBmb3IgdGhlIFBSLgorCisqIFRo
ZSBmb2xsb3dpbmcgZGVwcmVjYXRlZCBjb21tYW5kbGluZSBvcHRpb25zIHdlcmUgcmVtb3ZlZDoK
KworICAqIGBgLS1nZW5zY3JpcHRgYDogbm8gbG9uZ2VyIHN1cHBvcnRlZDsKKyAgKiBgYC0tbm8t
YXNzZXJ0YGA6IHVzZSBgYC0tYXNzZXJ0PXBsYWluYGAgaW5zdGVhZDsKKyAgKiBgYC0tbm9tYWdp
Y2BgOiB1c2UgYGAtLWFzc2VydD1wbGFpbmBgIGluc3RlYWQ7CisgICogYGAtLXJlcG9ydGBgOiB1
c2UgYGAtcmBgIGluc3RlYWQ7CisKKyAgVGhhbmtzIHRvIGBAUmVkQmVhcmRDb2RlYF8gZm9yIHRo
ZSBQUiAoYCMxNjY0YF8pLgorCisqIEltcG9ydEVycm9ycyBpbiBwbHVnaW5zIG5vdyBhcmUgYSBm
YXRhbCBlcnJvciBpbnN0ZWFkIG9mIGlzc3VpbmcgYQorICBweXRlc3Qgd2FybmluZyAoYCMxNDc5
YF8pLiBUaGFua3MgdG8gYEBUaGUtQ29tcGlsZXJgXyBmb3IgdGhlIFBSLgorCisqIFJlbW92ZWQg
c3VwcG9ydCBjb2RlIGZvciBQeXRob24gMyB2ZXJzaW9ucyA8IDMuMyAoYCMxNjI3YF8pLgorCisq
IFJlbW92ZWQgYWxsIGBgcHkudGVzdC1YKmBgIGVudHJ5IHBvaW50cy4gVGhlIHZlcnNpb25lZCwg
c3VmZml4ZWQgZW50cnkgcG9pbnRzCisgIHdlcmUgbmV2ZXIgZG9jdW1lbnRlZCBhbmQgYSBsZWZ0
b3ZlciBmcm9tIGEgcHJlLXZpcnR1YWxlbnYgZXJhLiBUaGVzZSBlbnRyeQorICBwb2ludHMgYWxz
byBjcmVhdGVkIGJyb2tlbiBlbnRyeSBwb2ludHMgaW4gd2hlZWxzLCBzbyByZW1vdmluZyB0aGVt
IGFsc28KKyAgcmVtb3ZlcyBhIHNvdXJjZSBvZiBjb25mdXNpb24gZm9yIHVzZXJzIChgIzE2MzJg
XykuCisgIFRoYW5rcyBgQG9iZXN0d2FsdGVyYF8gZm9yIHRoZSBQUi4KKworKiBgYHB5dGVzdC5z
a2lwKClgYCBub3cgcmFpc2VzIGFuIGVycm9yIHdoZW4gdXNlZCB0byBkZWNvcmF0ZSBhIHRlc3Qg
ZnVuY3Rpb24sCisgIGFzIG9wcG9zZWQgdG8gaXRzIG9yaWdpbmFsIGludGVudCAodG8gaW1wZXJh
dGl2ZWx5IHNraXAgYSB0ZXN0IGluc2lkZSBhIHRlc3QgZnVuY3Rpb24pLiBQcmV2aW91c2x5Cisg
IHRoaXMgdXNhZ2Ugd291bGQgY2F1c2UgdGhlIGVudGlyZSBtb2R1bGUgdG8gYmUgc2tpcHBlZCAo
YCM2MDdgXykuCisgIFRoYW5rcyBgQG9tYXJrb2hsYF8gZm9yIHRoZSBjb21wbGV0ZSBQUiAoYCMx
NTE5YF8pLgorCisqIEV4aXQgdGVzdHMgaWYgYSBjb2xsZWN0aW9uIGVycm9yIG9jY3Vycy4gQSBw
b2xsIGluZGljYXRlZCBtb3N0IHVzZXJzIHdpbGwgaGl0IENUUkwtQworICBhbnl3YXkgYXMgc29v
biBhcyB0aGV5IHNlZSBjb2xsZWN0aW9uIGVycm9ycywgc28gcHl0ZXN0IG1pZ2h0IGFzIHdlbGwg
bWFrZSB0aGF0IHRoZSBkZWZhdWx0IGJlaGF2aW9yIChgIzE0MjFgXykuCisgIEEgYGAtLWNvbnRp
bnVlLW9uLWNvbGxlY3Rpb24tZXJyb3JzYGAgb3B0aW9uIGhhcyBiZWVuIGFkZGVkIHRvIHJlc3Rv
cmUgdGhlIHByZXZpb3VzIGJlaGF2aW91ci4KKyAgVGhhbmtzIGBAb2xlZ3BpZHNhZG55aWBfIGFu
ZCBgQG9tYXJrb2hsYF8gZm9yIHRoZSBjb21wbGV0ZSBQUiAoYCMxNjI4YF8pLgorCisqIFJlbmFt
ZWQgdGhlIHB5dGVzdCBgYHBkYmBgIG1vZHVsZSAocGx1Z2luKSBpbnRvIGBgZGVidWdnaW5nYGAg
dG8gYXZvaWQgY2xhc2hlcyB3aXRoIHRoZSBidWlsdGluIGBgcGRiYGAgbW9kdWxlLgorCisqIFJh
aXNlIGEgaGVscGZ1bCBmYWlsdXJlIG1lc3NhZ2Ugd2hlbiByZXF1ZXN0aW5nIGEgcGFyYW1ldHJp
emVkIGZpeHR1cmUgYXQgcnVudGltZSwKKyAgZS5nLiB3aXRoIGBgcmVxdWVzdC5nZXRmaXh0dXJl
dmFsdWVgYC4gUHJldmlvdXNseSB0aGVzZSBwYXJhbWV0ZXJzIHdlcmUgc2ltcGx5CisgIG5ldmVy
IGRlZmluZWQsIHNvIGEgZml4dHVyZSBkZWNvcmF0ZWQgbGlrZSBgYEBweXRlc3QuZml4dHVyZShw
YXJhbXM9WzAsIDEsIDJdKWBgCisgIG9ubHkgcmFuIG9uY2UgKGAjNDYwYF8pLgorICBUaGFua3Mg
dG8gYEBuaWtyYXRpb2BfIGZvciB0aGUgYnVnIHJlcG9ydCwgYEBSZWRCZWFyZENvZGVgXyBhbmQg
YEB0b212aW5lcmBfIGZvciB0aGUgUFIuCisKKyogYGBfcHl0ZXN0Lm1vbmtleXBhdGNoLm1vbmtl
eXBhdGNoYGAgY2xhc3MgaGFzIGJlZW4gcmVuYW1lZCB0byBgYF9weXRlc3QubW9ua2V5cGF0Y2gu
TW9ua2V5UGF0Y2hgYAorICBzbyBpdCBkb2Vzbid0IGNvbmZsaWN0IHdpdGggdGhlIGBgbW9ua2V5
cGF0Y2hgYCBmaXh0dXJlLgorCisqIGBgLS1leGl0Zmlyc3QgLyAteGBgIGNhbiBub3cgYmUgb3Zl
cnJpZGRlbiBieSBhIGZvbGxvd2luZyBgYC0tbWF4ZmFpbD1OYGAKKyAgYW5kIGlzIGp1c3QgYSBz
eW5vbnltIGZvciBgYC0tbWF4ZmFpbD0xYGAuCisKKworKipOZXcgRmVhdHVyZXMqKgorCisqIFN1
cHBvcnQgbm9zZS1zdHlsZSBgYF9fdGVzdF9fYGAgYXR0cmlidXRlIG9uIG1ldGhvZHMgb2YgY2xh
c3NlcywKKyAgaW5jbHVkaW5nIHVuaXR0ZXN0LXN0eWxlIENsYXNzZXMuIElmIHNldCB0byBgYEZh
bHNlYGAsIHRoZSB0ZXN0IHdpbGwgbm90IGJlCisgIGNvbGxlY3RlZC4KKworKiBOZXcgYGBkb2N0
ZXN0X25hbWVzcGFjZWBgIGZpeHR1cmUgZm9yIGluamVjdGluZyBuYW1lcyBpbnRvIHRoZQorICBu
YW1lc3BhY2UgaW4gd2hpY2ggZG9jdGVzdHMgcnVuLgorICBUaGFua3MgYEBtaWxsaWFtc2BfIGZv
ciB0aGUgY29tcGxldGUgUFIgKGAjMTQyOGBfKS4KKworKiBOZXcgYGAtLWRvY3Rlc3QtcmVwb3J0
YGAgb3B0aW9uIGF2YWlsYWJsZSB0byBjaGFuZ2UgdGhlIG91dHB1dCBmb3JtYXQgb2YgZGlmZnMK
KyAgd2hlbiBydW5uaW5nIChmYWlsaW5nKSBkb2N0ZXN0cyAoaW1wbGVtZW50cyBgIzE3NDlgXyku
CisgIFRoYW5rcyBgQGhhcnR5bWBfIGZvciB0aGUgUFIuCisKKyogTmV3IGBgbmFtZWBgIGFyZ3Vt
ZW50IHRvIGBgcHl0ZXN0LmZpeHR1cmVgYCBkZWNvcmF0b3Igd2hpY2ggYWxsb3dzIGEgY3VzdG9t
IG5hbWUKKyAgZm9yIGEgZml4dHVyZSAodG8gc29sdmUgdGhlIGZ1bmNhcmctc2hhZG93aW5nLWZp
eHR1cmUgcHJvYmxlbSkuCisgIFRoYW5rcyBgQG5vdmFzMHgyYWBfIGZvciB0aGUgY29tcGxldGUg
UFIgKGAjMTQ0NGBfKS4KKworKiBOZXcgYGBhcHByb3goKWBgIGZ1bmN0aW9uIGZvciBlYXNpbHkg
Y29tcGFyaW5nIGZsb2F0aW5nLXBvaW50IG51bWJlcnMgaW4KKyAgdGVzdHMuCisgIFRoYW5rcyBg
QGthbGVrdW5kZXJ0YF8gZm9yIHRoZSBjb21wbGV0ZSBQUiAoYCMxNDQxYF8pLgorCisqIEFiaWxp
dHkgdG8gYWRkIGdsb2JhbCBwcm9wZXJ0aWVzIGluIHRoZSBmaW5hbCB4dW5pdCBvdXRwdXQgZmls
ZSBieSBhY2Nlc3NpbmcKKyAgdGhlIGludGVybmFsIGBganVuaXR4bWxgYCBwbHVnaW4gKGV4cGVy
aW1lbnRhbCkuCisgIFRoYW5rcyBgQHRhcmVxYWxheWFuYF8gZm9yIHRoZSBjb21wbGV0ZSBQUiBg
IzE0NTRgXykuCisKKyogTmV3IGBgRXhjZXB0aW9uSW5mby5tYXRjaCgpYGAgbWV0aG9kIHRvIG1h
dGNoIGEgcmVndWxhciBleHByZXNzaW9uIG9uIHRoZQorICBzdHJpbmcgcmVwcmVzZW50YXRpb24g
b2YgYW4gZXhjZXB0aW9uIChgIzM3MmBfKS4KKyAgVGhhbmtzIGBAb21hcmtvaGxgXyBmb3IgdGhl
IGNvbXBsZXRlIFBSIChgIzE1MDJgXykuCisKKyogYGBfX3RyYWNlYmFja2hpZGVfX2BgIGNhbiBu
b3cgYWxzbyBiZSBzZXQgdG8gYSBjYWxsYWJsZSB3aGljaCB0aGVuIGNhbiBkZWNpZGUKKyAgd2hl
dGhlciB0byBmaWx0ZXIgdGhlIHRyYWNlYmFjayBiYXNlZCBvbiB0aGUgYGBFeGNlcHRpb25JbmZv
YGAgb2JqZWN0IHBhc3NlZAorICB0byBpdC4gVGhhbmtzIGBAVGhlLUNvbXBpbGVyYF8gZm9yIHRo
ZSBjb21wbGV0ZSBQUiAoYCMxNTI2YF8pLgorCisqIE5ldyBgYHB5dGVzdF9tYWtlX3BhcmFtZXRy
aXplX2lkKGNvbmZpZywgdmFsKWBgIGhvb2sgd2hpY2ggY2FuIGJlIHVzZWQgYnkgcGx1Z2lucyB0
byBwcm92aWRlCisgIGZyaWVuZGx5IHN0cmluZ3MgZm9yIGN1c3RvbSB0eXBlcy4KKyAgVGhhbmtz
IGBAcGFsYXZpdmBfIGZvciB0aGUgUFIuCisKKyogYGBjYXBzeXNgYCBhbmQgYGBjYXBmZGBgIG5v
dyBoYXZlIGEgYGBkaXNhYmxlZCgpYGAgY29udGV4dC1tYW5hZ2VyIG1ldGhvZCwgd2hpY2gKKyAg
Y2FuIGJlIHVzZWQgdG8gdGVtcG9yYXJpbHkgZGlzYWJsZSBjYXB0dXJlIHdpdGhpbiBhIHRlc3Qu
CisgIFRoYW5rcyBgQG5pY29kZGVtdXNgXyBmb3IgdGhlIFBSLgorCisqIE5ldyBjbGkgZmxhZyBg
YC0tZml4dHVyZXMtcGVyLXRlc3RgYDogc2hvd3Mgd2hpY2ggZml4dHVyZXMgYXJlIGJlaW5nIHVz
ZWQKKyAgZm9yIGVhY2ggc2VsZWN0ZWQgdGVzdCBpdGVtLiBGZWF0dXJlcyBkb2Mgc3RyaW5ncyBv
ZiBmaXh0dXJlcyBieSBkZWZhdWx0LgorICBDYW4gYWxzbyBzaG93IHdoZXJlIGZpeHR1cmVzIGFy
ZSBkZWZpbmVkIGlmIGNvbWJpbmVkIHdpdGggYGAtdmBgLgorICBUaGFua3MgYEBoYWNrZWJyb3Rg
XyBmb3IgdGhlIFBSLgorCisqIEludHJvZHVjZSBgYHB5dGVzdGBgIGNvbW1hbmQgYXMgcmVjb21t
ZW5kZWQgZW50cnkgcG9pbnQuIE5vdGUgdGhhdCBgYHB5LnRlc3RgYAorICBzdGlsbCB3b3JrcyBh
bmQgaXMgbm90IHNjaGVkdWxlZCBmb3IgcmVtb3ZhbC4gQ2xvc2VzIHByb3Bvc2FsCisgIGAjMTYy
OWBfLiBUaGFua3MgYEBvYmVzdHdhbHRlcmBfIGFuZCBgQGRhdmVodW50YF8gZm9yIHRoZSBjb21w
bGV0ZSBQUgorICAoYCMxNjMzYF8pLgorCisqIE5ldyBjbGkgZmxhZ3M6CisKKyAgKyBgYC0tc2V0
dXAtcGxhbmBgOiBwZXJmb3JtcyBub3JtYWwgY29sbGVjdGlvbiBhbmQgcmVwb3J0cworICAgIHRo
ZSBwb3RlbnRpYWwgc2V0dXAgYW5kIHRlYXJkb3duIGFuZCBkb2VzIG5vdCBleGVjdXRlIGFueSBm
aXh0dXJlcyBhbmQgdGVzdHM7CisgICsgYGAtLXNldHVwLW9ubHlgYDogcGVyZm9ybXMgbm9ybWFs
IGNvbGxlY3Rpb24sIGV4ZWN1dGVzIHNldHVwIGFuZCB0ZWFyZG93biBvZgorICAgIGZpeHR1cmVz
IGFuZCByZXBvcnRzIHRoZW07CisgICsgYGAtLXNldHVwLXNob3dgYDogcGVyZm9ybXMgbm9ybWFs
IHRlc3QgZXhlY3V0aW9uIGFuZCBhZGRpdGlvbmFsbHkgc2hvd3MKKyAgICBzZXR1cCBhbmQgdGVh
cmRvd24gb2YgZml4dHVyZXM7CisgICsgYGAtLWtlZXAtZHVwbGljYXRlc2BgOiBweS50ZXN0IG5v
dyBpZ25vcmVzIGR1cGxpY2F0ZWQgcGF0aHMgZ2l2ZW4gaW4gdGhlIGNvbW1hbmQKKyAgICBsaW5l
LiBUbyByZXRhaW4gdGhlIHByZXZpb3VzIGJlaGF2aW9yIHdoZXJlIHRoZSBzYW1lIHRlc3QgY291
bGQgYmUgcnVuIG11bHRpcGxlCisgICAgdGltZXMgYnkgc3BlY2lmeWluZyBpdCBpbiB0aGUgY29t
bWFuZC1saW5lIG11bHRpcGxlIHRpbWVzLCBwYXNzIHRoZSBgYC0ta2VlcC1kdXBsaWNhdGVzYGAK
KyAgICBhcmd1bWVudCAoYCMxNjA5YF8pOworCisgIFRoYW5rcyBgQGQ2ZWBfLCBgQGt2YXMtaXRg
XywgYEBzYWxsbmVyYF8sIGBAaW9nZ3N0cmVhbWBfIGFuZCBgQG9tYXJrb2hsYF8gZm9yIHRoZSBQ
UnMuCisKKyogTmV3IENMSSBmbGFnIGBgLS1vdmVycmlkZS1pbmlgYC9gYC1vYGA6IG92ZXJyaWRl
cyB2YWx1ZXMgZnJvbSB0aGUgaW5pIGZpbGUuCisgIEZvciBleGFtcGxlOiBgYCItbyB4ZmFpbF9z
dHJpY3Q9VHJ1ZSJgYCcuCisgIFRoYW5rcyBgQGJsdWV5ZWRgXyBhbmQgYEBmZW5neHhgXyBmb3Ig
dGhlIFBSLgorCisqIE5ldyBob29rczoKKworICArIGBgcHl0ZXN0X2ZpeHR1cmVfc2V0dXAoZml4
dHVyZWRlZiwgcmVxdWVzdClgYDogZXhlY3V0ZXMgZml4dHVyZSBzZXR1cDsKKyAgKyBgYHB5dGVz
dF9maXh0dXJlX3Bvc3RfZmluYWxpemVyKGZpeHR1cmVkZWYpYGA6IGNhbGxlZCBhZnRlciB0aGUg
Zml4dHVyZSdzCisgICAgZmluYWxpemVyIGFuZCBoYXMgYWNjZXNzIHRvIHRoZSBmaXh0dXJlJ3Mg
cmVzdWx0IGNhY2hlLgorCisgIFRoYW5rcyBgQGQ2ZWBfLCBgQHNhbGxuZXJgXy4KKworKiBJc3N1
ZSB3YXJuaW5ncyBmb3IgYXNzZXJ0cyB3aG9zZSB0ZXN0IGlzIGEgdHVwbGUgbGl0ZXJhbC4gU3Vj
aCBhc3NlcnRzIHdpbGwKKyAgbmV2ZXIgZmFpbCBiZWNhdXNlIHR1cGxlcyBhcmUgYWx3YXlzIHRy
dXRoeSBhbmQgYXJlIHVzdWFsbHkgYSBtaXN0YWtlCisgIChzZWUgYCMxNTYyYF8pLiBUaGFua3Mg
YEBrdmFzLWl0YF8sIGZvciB0aGUgUFIuCisKKyogQWxsb3cgcGFzc2luZyBhIGN1c3RvbSBkZWJ1
Z2dlciBjbGFzcyAoZS5nLiBgYC0tcGRiY2xzPUlQeXRob24uY29yZS5kZWJ1Z2dlcjpQZGJgYCku
CisgIFRoYW5rcyB0byBgQGFubnR6ZXJgXyBmb3IgdGhlIFBSLgorCisKKyoqQ2hhbmdlcyoqCisK
KyogUGx1Z2lucyBub3cgYmVuZWZpdCBmcm9tIGFzc2VydGlvbiByZXdyaXRpbmcuICBUaGFua3MK
KyAgYEBzb2JlcjdgXywgYEBuaWNvZGRlbXVzYF8gYW5kIGBAZmx1YmBfIGZvciB0aGUgUFIuCisK
KyogQ2hhbmdlIGBgcmVwb3J0Lm91dGNvbWVgYCBmb3IgYGB4cGFzc2VkYGAgdGVzdHMgdG8gYGAi
cGFzc2VkImBgIGluIG5vbi1zdHJpY3QKKyAgbW9kZSBhbmQgYGAiZmFpbGVkImBgIGluIHN0cmlj
dCBtb2RlLiBUaGFua3MgdG8gYEBoYWNrZWJyb3RgXyBmb3IgdGhlIFBSCisgIChgIzE3OTVgXykg
YW5kIGBAZ3ByYXNhZDg0YF8gZm9yIHJlcG9ydCAoYCMxNTQ2YF8pLgorCisqIFRlc3RzIG1hcmtl
ZCB3aXRoIGBgeGZhaWwoc3RyaWN0PUZhbHNlKWBgICh0aGUgZGVmYXVsdCkgbm93IGFwcGVhciBp
bgorICBKVW5pdFhNTCByZXBvcnRzIGFzIHBhc3NpbmcgdGVzdHMgaW5zdGVhZCBvZiBza2lwcGVk
LgorICBUaGFua3MgdG8gYEBoYWNrZWJyb3RgXyBmb3IgdGhlIFBSIChgIzE3OTVgXykuCisKKyog
SGlnaGxpZ2h0IHBhdGggb2YgdGhlIGZpbGUgbG9jYXRpb24gaW4gdGhlIGVycm9yIHJlcG9ydCB0
byBtYWtlIGl0IGVhc2llciB0byBjb3B5L3Bhc3RlLgorICBUaGFua3MgYEBzdXpha3VgXyBmb3Ig
dGhlIFBSIChgIzE3NzhgXykuCisKKyogRml4dHVyZXMgbWFya2VkIHdpdGggYGBAcHl0ZXN0LmZp
eHR1cmVgYCBjYW4gbm93IHVzZSBgYHlpZWxkYGAgc3RhdGVtZW50cyBleGFjdGx5IGxpa2UKKyAg
dGhvc2UgbWFya2VkIHdpdGggdGhlIGBgQHB5dGVzdC55aWVsZF9maXh0dXJlYGAgZGVjb3JhdG9y
LiBUaGlzIGNoYW5nZSByZW5kZXJzCisgIGBgQHB5dGVzdC55aWVsZF9maXh0dXJlYGAgZGVwcmVj
YXRlZCBhbmQgbWFrZXMgYGBAcHl0ZXN0LmZpeHR1cmVgYCB3aXRoIGBgeWllbGRgYCBzdGF0ZW1l
bnRzCisgIHRoZSBwcmVmZXJyZWQgd2F5IHRvIHdyaXRlIHRlYXJkb3duIGNvZGUgKGAjMTQ2MWBf
KS4KKyAgVGhhbmtzIGBAY3NhZnRvaXVgXyBmb3IgYnJpbmdpbmcgdGhpcyB0byBhdHRlbnRpb24g
YW5kIGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIuCisKKyogRXhwbGljaXRseSBwYXNzZWQgcGFy
YW1ldHJpemUgaWRzIGRvIG5vdCBnZXQgZXNjYXBlZCB0byBhc2NpaSAoYCMxMzUxYF8pLgorICBU
aGFua3MgYEBjZXJpZHdlbmBfIGZvciB0aGUgUFIuCisKKyogRml4dHVyZXMgYXJlIG5vdyBzb3J0
ZWQgaW4gdGhlIGVycm9yIG1lc3NhZ2UgZGlzcGxheWVkIHdoZW4gYW4gdW5rbm93bgorICBmaXh0
dXJlIGlzIGRlY2xhcmVkIGluIGEgdGVzdCBmdW5jdGlvbi4KKyAgVGhhbmtzIGBAbmljb2RkZW11
c2BfIGZvciB0aGUgUFIuCisKKyogYGBweXRlc3RfdGVybWluYWxfc3VtbWFyeWBgIGhvb2sgbm93
IHJlY2VpdmVzIHRoZSBgYGV4aXRzdGF0dXNgYAorICBvZiB0aGUgdGVzdCBzZXNzaW9uIGFzIGFy
Z3VtZW50LiBUaGFua3MgYEBibHVleWVkYF8gZm9yIHRoZSBQUiAoYCMxODA5YF8pLgorCisqIFBh
cmFtZXRyaXplIGlkcyBjYW4gYWNjZXB0IGBgTm9uZWBgIGFzIHNwZWNpZmljIHRlc3QgaWQsIGlu
IHdoaWNoIGNhc2UgdGhlCisgIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGlkIGZvciB0aGF0IGFy
Z3VtZW50IHdpbGwgYmUgdXNlZC4KKyAgVGhhbmtzIGBAcGFsYXZpdmBfIGZvciB0aGUgY29tcGxl
dGUgUFIgKGAjMTQ2OGBfKS4KKworKiBUaGUgcGFyYW1ldGVyIHRvIHh1bml0LXN0eWxlIHNldHVw
L3RlYXJkb3duIG1ldGhvZHMgKGBgc2V0dXBfbWV0aG9kYGAsCisgIGBgc2V0dXBfbW9kdWxlYGAs
IGV0Yy4pIGlzIG5vdyBvcHRpb25hbCBhbmQgbWF5IGJlIG9taXR0ZWQuCisgIFRoYW5rcyBgQG9r
a2VuYF8gZm9yIGJyaW5naW5nIHRoaXMgdG8gYXR0ZW50aW9uIGFuZCBgQG5pY29kZGVtdXNgXyBm
b3IgdGhlIFBSLgorCisqIEltcHJvdmVkIGF1dG9tYXRpYyBpZCBnZW5lcmF0aW9uIHNlbGVjdGlv
biBpbiBjYXNlIG9mIGR1cGxpY2F0ZSBpZHMgaW4KKyAgcGFyYW1ldHJpemUuCisgIFRoYW5rcyBg
QHBhbGF2aXZgXyBmb3IgdGhlIGNvbXBsZXRlIFBSIChgIzE0NzRgXykuCisKKyogTm93IHB5dGVz
dCB3YXJuaW5ncyBzdW1tYXJ5IGlzIHNob3duIHVwIGJ5IGRlZmF1bHQuIEFkZGVkIGEgbmV3IGZs
YWcKKyAgYGAtLWRpc2FibGUtcHl0ZXN0LXdhcm5pbmdzYGAgdG8gZXhwbGljaXRseSBkaXNhYmxl
IHRoZSB3YXJuaW5ncyBzdW1tYXJ5IChgIzE2NjhgXykuCisKKyogTWFrZSBJbXBvcnRFcnJvciBk
dXJpbmcgY29sbGVjdGlvbiBtb3JlIGV4cGxpY2l0IGJ5IHJlbWluZGluZworICB0aGUgdXNlciB0
byBjaGVjayB0aGUgbmFtZSBvZiB0aGUgdGVzdCBtb2R1bGUvcGFja2FnZShzKSAoYCMxNDI2YF8p
LgorICBUaGFua3MgYEBvbWFya29obGBfIGZvciB0aGUgY29tcGxldGUgUFIgKGAjMTUyMGBfKS4K
KworKiBBZGQgYGBidWlsZC9gYCBhbmQgYGBkaXN0L2BgIHRvIHRoZSBkZWZhdWx0IGBgLS1ub3Jl
Y3Vyc2VkaXJzYGAgbGlzdC4gVGhhbmtzCisgIGBAbWlrb2Zza2lgXyBmb3IgdGhlIHJlcG9ydCBh
bmQgYEB0b212aW5lcmBfIGZvciB0aGUgUFIgKGAjMTU0NGBfKS4KKworKiBgYHB5dGVzdC5yYWlz
ZXNgYCBpbiB0aGUgY29udGV4dCBtYW5hZ2VyIGZvcm0gYWNjZXB0cyBhIGN1c3RvbQorICBgYG1l
c3NhZ2VgYCB0byByYWlzZSB3aGVuIG5vIGV4Y2VwdGlvbiBvY2N1cnJlZC4KKyAgVGhhbmtzIGBA
cGFsYXZpdmBfIGZvciB0aGUgY29tcGxldGUgUFIgKGAjMTYxNmBfKS4KKworKiBgYGNvbmZ0ZXN0
LnB5YGAgZmlsZXMgbm93IGJlbmVmaXQgZnJvbSBhc3NlcnRpb24gcmV3cml0aW5nOyBwcmV2aW91
c2x5IGl0CisgIHdhcyBvbmx5IGF2YWlsYWJsZSBmb3IgdGVzdCBtb2R1bGVzLiBUaGFua3MgYEBm
bHViYF8sIGBAc29iZXI3YF8gYW5kCisgIGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIgKGAjMTYx
OWBfKS4KKworKiBUZXh0IGRvY3VtZW50cyB3aXRob3V0IGFueSBkb2N0ZXN0cyBubyBsb25nZXIg
YXBwZWFyIGFzICJza2lwcGVkIi4KKyAgVGhhbmtzIGBAZ3JhaW5nZXJ0YF8gZm9yIHJlcG9ydGlu
ZyBhbmQgcHJvdmlkaW5nIGEgZnVsbCBQUiAoYCMxNTgwYF8pLgorCisqIEVuc3VyZSB0aGF0IGEg
bW9kdWxlIHdpdGhpbiBhIG5hbWVzcGFjZSBwYWNrYWdlIGNhbiBiZSBmb3VuZCB3aGVuIGl0Cisg
IGlzIHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lIHRvZ2V0aGVyIHdpdGggdGhlIGBgLS1w
eWFyZ3NgYAorICBvcHRpb24uICBUaGFua3MgdG8gYEB0YXNjaGluaWBfIGZvciB0aGUgUFIgKGAj
MTU5N2BfKS4KKworKiBBbHdheXMgaW5jbHVkZSBmdWxsIGFzc2VydGlvbiBleHBsYW5hdGlvbiBk
dXJpbmcgYXNzZXJ0aW9uIHJld3JpdGluZy4gVGhlIHByZXZpb3VzIGJlaGF2aW91ciB3YXMgaGlk
aW5nCisgIHN1Yi1leHByZXNzaW9ucyB0aGF0IGhhcHBlbmVkIHRvIGJlIGBgRmFsc2VgYCwgYXNz
dW1pbmcgdGhpcyB3YXMgcmVkdW5kYW50IGluZm9ybWF0aW9uLgorICBUaGFua3MgYEBiYWdlcmFy
ZGBfIGZvciByZXBvcnRpbmcgKGAjMTUwM2BfKS4gVGhhbmtzIHRvIGBAZGF2ZWh1bnRgXyBhbmQK
KyAgYEB0b212aW5lcmBfIGZvciB0aGUgUFIuCisKKyogYGBPcHRpb25Hcm91cC5hZGRvcHRpb24o
KWBgIG5vdyBjaGVja3MgaWYgb3B0aW9uIG5hbWVzIHdlcmUgYWxyZWFkeQorICBhZGRlZCBiZWZv
cmUsIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHRyYWNrIGRvd24gaXNzdWVzIGxpa2UgYCMxNjE4YF8u
CisgIEJlZm9yZSwgeW91IG9ubHkgZ290IGV4Y2VwdGlvbnMgbGF0ZXIgZnJvbSBgYGFyZ3BhcnNl
YGAgbGlicmFyeSwKKyAgZ2l2aW5nIG5vIGNsdWUgYWJvdXQgdGhlIGFjdHVhbCByZWFzb24gZm9y
IGRvdWJsZS1hZGRlZCBvcHRpb25zLgorCisqIGBgeWllbGRgYC1iYXNlZCB0ZXN0cyBhcmUgY29u
c2lkZXJlZCBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gcHl0ZXN0LTQuMC4KKyAg
VGhhbmtzIGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIuCisKKyogYGBbcHl0ZXN0XWBgIHNlY3Rp
b25zIGluIGBgc2V0dXAuY2ZnYGAgZmlsZXMgc2hvdWxkIG5vdyBiZSBuYW1lZCBgYFt0b29sOnB5
dGVzdF1gYAorICB0byBhdm9pZCBjb25mbGljdHMgd2l0aCBvdGhlciBkaXN0dXRpbHMgY29tbWFu
ZHMgKHNlZSBgIzU2N2BfKS4gYGBbcHl0ZXN0XWBgIHNlY3Rpb25zIGluCisgIGBgcHl0ZXN0Lmlu
aWBgIG9yIGBgdG94LmluaWBgIGZpbGVzIGFyZSBzdXBwb3J0ZWQgYW5kIHVuY2hhbmdlZC4KKyAg
VGhhbmtzIGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIuCisKKyogVXNpbmcgYGBweXRlc3RfZnVu
Y2FyZ19fYGAgcHJlZml4IHRvIGRlY2xhcmUgZml4dHVyZXMgaXMgY29uc2lkZXJlZCBkZXByZWNh
dGVkIGFuZCB3aWxsIGJlCisgIHJlbW92ZWQgaW4gcHl0ZXN0LTQuMCAoYCMxNjg0YF8pLgorICBU
aGFua3MgYEBuaWNvZGRlbXVzYF8gZm9yIHRoZSBQUi4KKworKiBQYXNzaW5nIGEgY29tbWFuZC1s
aW5lIHN0cmluZyB0byBgYHB5dGVzdC5tYWluKClgYCBpcyBjb25zaWRlcmVkIGRlcHJlY2F0ZWQg
YW5kIHNjaGVkdWxlZAorICBmb3IgcmVtb3ZhbCBpbiBweXRlc3QtNC4wLiBJdCBpcyByZWNvbW1l
bmRlZCB0byBwYXNzIGEgbGlzdCBvZiBhcmd1bWVudHMgaW5zdGVhZCAoYCMxNzIzYF8pLgorCisq
IFJlbmFtZSBgYGdldGZ1bmNhcmd2YWx1ZWBgIHRvIGBgZ2V0Zml4dHVyZXZhbHVlYGAuIGBgZ2V0
ZnVuY2FyZ3ZhbHVlYGAgaXMKKyAgc3RpbGwgcHJlc2VudCBidXQgaXMgbm93IGNvbnNpZGVyZWQg
ZGVwcmVjYXRlZC4gVGhhbmtzIHRvIGBAUmVkQmVhcmRDb2RlYF8gYW5kIGBAdG9tdmluZXJgXwor
ICBmb3IgdGhlIFBSIChgIzE2MjZgXykuCisKKyogYGBvcHRwYXJzZWBgIHR5cGUgdXNhZ2Ugbm93
IHRyaWdnZXJzIERlcHJlY2F0aW9uV2FybmluZ3MgKGAjMTc0MGBfKS4KKworCisqIGBgb3B0cGFy
c2VgYCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHN1cHBvcnRzIGZsb2F0L2NvbXBsZXggdHlwZXMg
KGAjNDU3YF8pLgorCisqIFJlZmluZWQgbG9naWMgZm9yIGRldGVybWluaW5nIHRoZSBgYHJvb3Rk
aXJgYCwgY29uc2lkZXJpbmcgb25seSB2YWxpZAorICBwYXRocyB3aGljaCBmaXhlcyBhIG51bWJl
ciBvZiBpc3N1ZXM6IGAjMTU5NGBfLCBgIzE0MzVgXyBhbmQgYCMxNDcxYF8uCisgIFVwZGF0ZWQg
dGhlIGRvY3VtZW50YXRpb24gYWNjb3JkaW5nIHRvIGN1cnJlbnQgYmVoYXZpb3IuIFRoYW5rcyB0
bworICBgQGJsdWV5ZWRgXywgYEBkYXZlaHVudGBfIGFuZCBgQG1hdHRoaWFzaGFgXyBmb3IgdGhl
IFBSLgorCisqIEFsd2F5cyBpbmNsdWRlIGZ1bGwgYXNzZXJ0aW9uIGV4cGxhbmF0aW9uLiBUaGUg
cHJldmlvdXMgYmVoYXZpb3VyIHdhcyBoaWRpbmcKKyAgc3ViLWV4cHJlc3Npb25zIHRoYXQgaGFw
cGVuZWQgdG8gYmUgRmFsc2UsIGFzc3VtaW5nIHRoaXMgd2FzIHJlZHVuZGFudCBpbmZvcm1hdGlv
bi4KKyAgVGhhbmtzIGBAYmFnZXJhcmRgXyBmb3IgcmVwb3J0aW5nIChgIzE1MDNgXykuIFRoYW5r
cyB0byBgQGRhdmVodW50YF8gYW5kCisgIGBAdG9tdmluZXJgXyBmb3IgUFIuCisKKyogQmV0dGVy
IG1lc3NhZ2UgaW4gY2FzZSBvZiBub3QgdXNpbmcgcGFyYW1ldHJpemVkIHZhcmlhYmxlIChzZWUg
YCMxNTM5YF8pLgorICBUaGFua3MgdG8gYEB0cmFtd2FqMjlgXyBmb3IgdGhlIFBSLgorCisqIFVw
ZGF0ZWQgZG9jc3RyaW5ncyB3aXRoIGEgbW9yZSB1bmlmb3JtIHN0eWxlLgorCisqIEFkZCBzdGRl
cnIgd3JpdGUgZm9yIGBgcHl0ZXN0LmV4aXQobXNnKWBgIGR1cmluZyBzdGFydHVwLiBQcmV2aW91
c2x5IHRoZSBtZXNzYWdlIHdhcyBuZXZlciBzaG93bi4KKyAgVGhhbmtzIGBAQmV5b25kRXZpbGBf
IGZvciByZXBvcnRpbmcgYCMxMjEwYF8uIFRoYW5rcyB0byBgQEpvbmF0aG9uU29uZXNlbmBfIGFu
ZAorICBgQHRvbXZpbmVyYF8gZm9yIHRoZSBQUi4KKworKiBObyBsb25nZXIgZGlzcGxheSB0aGUg
aW5jb3JyZWN0IHRlc3QgZGVzZWxlY3Rpb24gcmVhc29uIChgIzEzNzJgXykuCisgIFRoYW5rcyBg
QHJvbm55cGZhbm5zY2htaWR0YF8gZm9yIHRoZSBQUi4KKworKiBUaGUgYGAtLXJlc3VsdGxvZ2Bg
IGNvbW1hbmQgbGluZSBvcHRpb24gaGFzIGJlZW4gZGVwcmVjYXRlZDogaXQgaXMgbGl0dGxlIHVz
ZWQKKyAgYW5kIHRoZXJlIGFyZSBtb3JlIG1vZGVybiBhbmQgYmV0dGVyIGFsdGVybmF0aXZlcyAo
c2VlIGAjODMwYF8pLgorICBUaGFua3MgYEBuaWNvZGRlbXVzYF8gZm9yIHRoZSBQUi4KKworKiBJ
bXByb3ZlIGVycm9yIG1lc3NhZ2Ugd2l0aCBmaXh0dXJlIGxvb2t1cCBlcnJvcnM6IGFkZCBhbiAn
RScgdG8gdGhlIGZpcnN0CisgIGxpbmUgYW5kICc+JyB0byB0aGUgcmVzdC4gRml4ZXMgYCM3MTdg
Xy4gVGhhbmtzIGBAYmx1ZXllZGBfIGZvciByZXBvcnRpbmcgYW5kCisgIGEgUFIsIGBAZW9sbzk5
OWBfIGZvciB0aGUgaW5pdGlhbCBQUiBhbmQgYEB0b212aW5lcmBfIGZvciBoaXMgZ3VpZGFuY2Ug
ZHVyaW5nCisgIEV1cm9QeXRob24yMDE2IHNwcmludC4KKworCisqKkJ1ZyBGaXhlcyoqCisKKyog
UGFyYW1ldHJpemUgbm93IGNvcnJlY3RseSBoYW5kbGVzIGR1cGxpY2F0ZWQgdGVzdCBpZHMuCisK
KyogRml4IGludGVybmFsIGVycm9yIGlzc3VlIHdoZW4gdGhlIGBgbWV0aG9kYGAgYXJndW1lbnQg
aXMgbWlzc2luZyBmb3IKKyAgYGB0ZWFyZG93bl9tZXRob2QoKWBgIChgIzE2MDVgXykuCisKKyog
Rml4IGV4Y2VwdGlvbiB2aXN1YWxpemF0aW9uIGluIGNhc2UgdGhlIGN1cnJlbnQgd29ya2luZyBk
aXJlY3RvcnkgKENXRCkgZ2V0cworICBkZWxldGVkIGR1cmluZyB0ZXN0aW5nIChgIzEyMzVgXyku
IFRoYW5rcyBgQGJ1a3pvcmBfIGZvciByZXBvcnRpbmcuIFBSIGJ5CisgIGBAbWFyc2NoZXJgXy4K
KworKiBJbXByb3ZlIHRlc3Qgb3V0cHV0IGZvciBsb2dpY2FsIGV4cHJlc3Npb24gd2l0aCBicmFj
a2V0cyAoYCM5MjVgXykuCisgIFRoYW5rcyBgQERSTWFjSXZlcmBfIGZvciByZXBvcnRpbmcgYW5k
IGBAUmVkQmVhcmRDb2RlYF8gZm9yIHRoZSBQUi4KKworKiBDcmVhdGUgY29ycmVjdCBkaWZmIGZv
ciBzdHJpbmdzIGVuZGluZyB3aXRoIG5ld2xpbmVzIChgIzE1NTNgXykuCisgIFRoYW5rcyBgQFZv
Z3RpbmF0b3JgXyBmb3IgcmVwb3J0aW5nIGFuZCBgQFJlZEJlYXJkQ29kZWBfIGFuZAorICBgQHRv
bXZpbmVyYF8gZm9yIHRoZSBQUi4KKworKiBgYENvbmZ0ZXN0SW1wb3J0RmFpbHVyZWBgIG5vdyBz
aG93cyB0aGUgdHJhY2ViYWNrIG1ha2luZyBpdCBlYXNpZXIgdG8KKyAgaWRlbnRpZnkgYnVncyBp
biBgYGNvbmZ0ZXN0LnB5YGAgZmlsZXMgKGAjMTUxNmBfKS4gVGhhbmtzIGBAdHhvbW9uYF8gZm9y
CisgIHRoZSBQUi4KKworKiBUZXh0IGRvY3VtZW50cyB3aXRob3V0IGFueSBkb2N0ZXN0cyBubyBs
b25nZXIgYXBwZWFyIGFzICJza2lwcGVkIi4KKyAgVGhhbmtzIGBAZ3JhaW5nZXJ0YF8gZm9yIHJl
cG9ydGluZyBhbmQgcHJvdmlkaW5nIGEgZnVsbCBQUiAoYCMxNTgwYF8pLgorCisqIEZpeGVkIGNv
bGxlY3Rpb24gb2YgY2xhc3NlcyB3aXRoIGN1c3RvbSBgYF9fbmV3X19gYCBtZXRob2QuCisgIEZp
eGVzIGAjMTU3OWBfLiBUaGFua3MgdG8gYEBTdHJhbmdlcjY2NjdgXyBmb3IgdGhlIFBSLgorCisq
IEZpeGVkIHNjb3BlIG92ZXJyaWRpbmcgaW5zaWRlIG1ldGFmdW5jLnBhcmFtZXRyaXplIChgIzYz
NGBfKS4KKyAgVGhhbmtzIHRvIGBAU3RyYW5nZXI2NjY3YF8gZm9yIHRoZSBQUi4KKworKiBGaXhl
ZCB0aGUgdG90YWwgdGVzdHMgdGFsbHkgaW4ganVuaXQgeG1sIG91dHB1dCAoYCMxNzk4YF8pLgor
ICBUaGFua3MgdG8gYEBjcnlwb3JjaGlsZGBfIGZvciB0aGUgUFIuCisKKyogRml4ZWQgb2ZmLWJ5
LW9uZSBlcnJvciB3aXRoIGxpbmVzIGZyb20gYGByZXF1ZXN0Lm5vZGUud2FybmBgLgorICBUaGFu
a3MgdG8gYEBibHVleWVkYF8gZm9yIHRoZSBQUi4KKworCisuLiBfIzEyMTA6IGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTIxMAorLi4gXyMxMjM1OiBodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzEyMzUKKy4uIF8jMTM1MTogaHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xMzUxCisuLiBfIzEzNzI6
IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTM3MgorLi4gXyMx
NDIxOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE0MjEKKy4u
IF8jMTQyNjogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xNDI2
CisuLiBfIzE0Mjg6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9wdWxsLzE0
MjgKKy4uIF8jMTQzNTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy8xNDM1CisuLiBfIzE0NDE6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9w
dWxsLzE0NDEKKy4uIF8jMTQ0NDogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L3B1bGwvMTQ0NAorLi4gXyMxNDU0OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvcHVsbC8xNDU0CisuLiBfIzE0NjE6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9wdWxsLzE0NjEKKy4uIF8jMTQ2ODogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYv
cHl0ZXN0L3B1bGwvMTQ2OAorLi4gXyMxNDcxOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvaXNzdWVzLzE0NzEKKy4uIF8jMTQ3NDogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0L3B1bGwvMTQ3NAorLi4gXyMxNDc5OiBodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE0NzkKKy4uIF8jMTUwMjogaHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L3B1bGwvMTUwMgorLi4gXyMxNTAzOiBodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE1MDMKKy4uIF8jMTUxNjogaHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L3B1bGwvMTUxNgorLi4gXyMxNTE5OiBodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVsbC8xNTE5CisuLiBfIzE1MjA6IGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9wdWxsLzE1MjAKKy4uIF8jMTUyNjogaHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L3B1bGwvMTUyNgorLi4gXyMxNTM5OiBodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE1MzkKKy4uIF8jMTU0NDog
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xNTQ0CisuLiBfIzE1
NDY6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTU0NgorLi4g
XyMxNTUzOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE1NTMK
Ky4uIF8jMTU2MjogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8x
NTYyCisuLiBfIzE1Nzk6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvMTU3OQorLi4gXyMxNTgwOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
cHVsbC8xNTgwCisuLiBfIzE1OTQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvMTU5NAorLi4gXyMxNTk3OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvcHVsbC8xNTk3CisuLiBfIzE2MDU6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2
L3B5dGVzdC9pc3N1ZXMvMTYwNQorLi4gXyMxNjE2OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9weXRlc3QvcHVsbC8xNjE2CisuLiBfIzE2MTg6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTYxOAorLi4gXyMxNjE5OiBodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE2MTkKKy4uIF8jMTYyNjogaHR0cHM6Ly9naXRodWIu
Y29tL3B5dGVzdC1kZXYvcHl0ZXN0L3B1bGwvMTYyNgorLi4gXyMxNjI3OiBodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVsbC8xNjI3CisuLiBfIzE2Mjg6IGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9wdWxsLzE2MjgKKy4uIF8jMTYyOTogaHR0cHM6Ly9n
aXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xNjI5CisuLiBfIzE2MzI6IGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTYzMgorLi4gXyMxNjMzOiBo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVsbC8xNjMzCisuLiBfIzE2NjQ6
IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9wdWxsLzE2NjQKKy4uIF8jMTY2
ODogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xNjY4CisuLiBf
IzE2ODQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9wdWxsLzE2ODQKKy4u
IF8jMTcyMzogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L3B1bGwvMTcyMwor
Li4gXyMxNzQwOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE3
NDAKKy4uIF8jMTc0OTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy8xNzQ5CisuLiBfIzE3Nzg6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9w
dWxsLzE3NzgKKy4uIF8jMTc5NTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L3B1bGwvMTc5NQorLi4gXyMxNzk4OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRl
c3QvcHVsbC8xNzk4CisuLiBfIzE4MDk6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9wdWxsLzE4MDkKKy4uIF8jMzcyOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvaXNzdWVzLzM3MgorLi4gXyM0NTc6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2
L3B5dGVzdC9pc3N1ZXMvNDU3CisuLiBfIzQ2MDogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L3B1bGwvNDYwCisuLiBfIzU2NzogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L3B1bGwvNTY3CisuLiBfIzYwNzogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy82MDcKKy4uIF8jNjM0OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0
LWRldi9weXRlc3QvaXNzdWVzLzYzNAorLi4gXyM3MTc6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvNzE3CisuLiBfIzgzMDogaHR0cHM6Ly9naXRodWIuY29tL3B5
dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy84MzAKKy4uIF8jOTI1OiBodHRwczovL2dpdGh1Yi5jb20v
cHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzkyNQorCisKKy4uIF9AYW5udHplcjogaHR0cHM6Ly9n
aXRodWIuY29tL2FubnR6ZXIKKy4uIF9AYmFnZXJhcmQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9iYWdl
cmFyZAorLi4gX0BCZXlvbmRFdmlsOiBodHRwczovL2dpdGh1Yi5jb20vQmV5b25kRXZpbAorLi4g
X0BibHVleWVkOiBodHRwczovL2dpdGh1Yi5jb20vYmx1ZXllZAorLi4gX0BjZXJpZHdlbjogaHR0
cHM6Ly9naXRodWIuY29tL2Nlcmlkd2VuCisuLiBfQGNyeXBvcmNoaWxkOiBodHRwczovL2dpdGh1
Yi5jb20vY3J5cG9yY2hpbGQKKy4uIF9AY3NhZnRvaXU6IGh0dHBzOi8vZ2l0aHViLmNvbS9jc2Fm
dG9pdQorLi4gX0BkNmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9kNmUKKy4uIF9AZGF2ZWh1bnQ6IGh0
dHBzOi8vZ2l0aHViLmNvbS9kYXZlaHVudAorLi4gX0BEUk1hY0l2ZXI6IGh0dHBzOi8vZ2l0aHVi
LmNvbS9EUk1hY0l2ZXIKKy4uIF9AZW9sbzk5OTogaHR0cHM6Ly9naXRodWIuY29tL2VvbG85OTkK
Ky4uIF9AZmVuZ3h4OiBodHRwczovL2dpdGh1Yi5jb20vZmVuZ3h4CisuLiBfQGZsdWI6IGh0dHBz
Oi8vZ2l0aHViLmNvbS9mbHViCisuLiBfQGdwcmFzYWQ4NDogaHR0cHM6Ly9naXRodWIuY29tL2dw
cmFzYWQ4NAorLi4gX0BncmFpbmdlcnQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9ncmFpbmdlcnQKKy4u
IF9AaGFydHltOiBodHRwczovL2dpdGh1Yi5jb20vaGFydHltCisuLiBfQEpvbmF0aG9uU29uZXNl
bjogaHR0cHM6Ly9naXRodWIuY29tL0pvbmF0aG9uU29uZXNlbgorLi4gX0BrYWxla3VuZGVydDog
aHR0cHM6Ly9naXRodWIuY29tL2thbGVrdW5kZXJ0CisuLiBfQGt2YXMtaXQ6IGh0dHBzOi8vZ2l0
aHViLmNvbS9rdmFzLWl0CisuLiBfQG1hcnNjaGVyOiBodHRwczovL2dpdGh1Yi5jb20vbWFyc2No
ZXIKKy4uIF9AbWlrb2Zza2k6IGh0dHBzOi8vZ2l0aHViLmNvbS9taWtvZnNraQorLi4gX0BtaWxs
aWFtczogaHR0cHM6Ly9naXRodWIuY29tL21pbGxpYW1zCisuLiBfQG5pa3JhdGlvOiBodHRwczov
L2dpdGh1Yi5jb20vbmlrcmF0aW8KKy4uIF9Abm92YXMweDJhOiBodHRwczovL2dpdGh1Yi5jb20v
bm92YXMweDJhCisuLiBfQG9iZXN0d2FsdGVyOiBodHRwczovL2dpdGh1Yi5jb20vb2Jlc3R3YWx0
ZXIKKy4uIF9Ab2trZW46IGh0dHBzOi8vZ2l0aHViLmNvbS9va2tlbgorLi4gX0BvbGVncGlkc2Fk
bnlpOiBodHRwczovL2dpdGh1Yi5jb20vb2xlZ3BpZHNhZG55aQorLi4gX0BvbWFya29obDogaHR0
cHM6Ly9naXRodWIuY29tL29tYXJrb2hsCisuLiBfQHBhbGF2aXY6IGh0dHBzOi8vZ2l0aHViLmNv
bS9wYWxhdml2CisuLiBfQFJlZEJlYXJkQ29kZTogaHR0cHM6Ly9naXRodWIuY29tL1JlZEJlYXJk
Q29kZQorLi4gX0BzYWxsbmVyOiBodHRwczovL2dpdGh1Yi5jb20vc2FsbG5lcgorLi4gX0Bzb2Jl
cjc6IGh0dHBzOi8vZ2l0aHViLmNvbS9zb2JlcjcKKy4uIF9AU3RyYW5nZXI2NjY3OiBodHRwczov
L2dpdGh1Yi5jb20vU3RyYW5nZXI2NjY3CisuLiBfQHN1emFrdTogaHR0cHM6Ly9naXRodWIuY29t
L3N1emFrdQorLi4gX0B0YXJlcWFsYXlhbjogaHR0cHM6Ly9naXRodWIuY29tL3RhcmVxYWxheWFu
CisuLiBfQHRhc2NoaW5pOiBodHRwczovL2dpdGh1Yi5jb20vdGFzY2hpbmkKKy4uIF9AdHJhbXdh
ajI5OiBodHRwczovL2dpdGh1Yi5jb20vdHJhbXdhajI5CisuLiBfQHR4b21vbjogaHR0cHM6Ly9n
aXRodWIuY29tL3R4b21vbgorLi4gX0BWb2d0aW5hdG9yOiBodHRwczovL2dpdGh1Yi5jb20vVm9n
dGluYXRvcgorLi4gX0BtYXR0aGlhc2hhOiBodHRwczovL2dpdGh1Yi5jb20vbWF0dGhpYXNoYQor
CisKKzIuOS4yICgyMDE2LTA1LTMxKQorPT09PT09PT09PT09PT09PT09CisKKyoqQnVnIEZpeGVz
KioKKworKiBmaXggYCM1MTBgXzogc2tpcCB0ZXN0cyB3aGVyZSBvbmUgcGFyYW1ldGVyaXplIGRp
bWVuc2lvbiB3YXMgZW1wdHkKKyAgdGhhbmtzIEFsZXggU3RhcGxldG9uIGZvciB0aGUgUmVwb3J0
IGFuZCBgQFJvbm55UGZhbm5zY2htaWR0YF8gZm9yIHRoZSBQUgorCisqIEZpeCBYZmFpbCBkb2Vz
IG5vdCB3b3JrIHdpdGggY29uZGl0aW9uIGtleXdvcmQgYXJndW1lbnQuCisgIFRoYW5rcyBgQGFz
dHJhdzM4YF8gZm9yIHJlcG9ydGluZyB0aGUgaXNzdWUgKGAjMTQ5NmBfKSBhbmQgYEB0b212aW5l
cmBfCisgIGZvciBQUiB0aGUgKGAjMTUyNGBfKS4KKworKiBGaXggd2luMzIgcGF0aCBpc3N1ZSB3
aGVuIHB1dHRpbmcgY3VzdG9tIGNvbmZpZyBmaWxlIHdpdGggYWJzb2x1dGUgcGF0aAorICBpbiBg
YHB5dGVzdC5tYWluKCItYyB5b3VyX2Fic29sdXRlX3BhdGgiKWBgLgorCisqIEZpeCBtYXhpbXVt
IHJlY3Vyc2lvbiBkZXB0aCBkZXRlY3Rpb24gd2hlbiByYWlzZWQgZXJyb3IgY2xhc3MgaXMgbm90
IGF3YXJlCisgIG9mIHVuaWNvZGUvZW5jb2RlZCBieXRlcy4KKyAgVGhhbmtzIGBAcHJ1c3NlLW1h
cnRpbmBfIGZvciB0aGUgUFIgKGAjMTUwNmBfKS4KKworKiBGaXggYGBweXRlc3QubWFyay5za2lw
YGAgbWFyayB3aGVuIHVzZWQgaW4gc3RyaWN0IG1vZGUuCisgIFRoYW5rcyBgQHBxdWVudGluYF8g
Zm9yIHRoZSBQUiBhbmQgYEBSb25ueVBmYW5uc2NobWlkdGBfIGZvcgorICBzaG93aW5nIGhvdyB0
byBmaXggdGhlIGJ1Zy4KKworKiBNaW5vciBpbXByb3ZlbWVudHMgYW5kIGZpeGVzIHRvIHRoZSBk
b2N1bWVudGF0aW9uLgorICBUaGFua3MgYEBvbWFya29obGBfIGZvciB0aGUgUFIuCisKKyogRml4
IGBgLS1maXh0dXJlc2BgIHRvIHNob3cgYWxsIGZpeHR1cmUgZGVmaW5pdGlvbnMgYXMgb3Bwb3Nl
ZCB0byBqdXN0CisgIG9uZSBwZXIgZml4dHVyZSBuYW1lLgorICBUaGFua3MgdG8gYEBoYWNrZWJy
b3RgXyBmb3IgdGhlIFBSLgorCisuLiBfIzUxMDogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHl0ZXN0L2lzc3Vlcy81MTAKKy4uIF8jMTUwNjogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0L3B1bGwvMTUwNgorLi4gXyMxNDk2OiBodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzE0OTYKKy4uIF8jMTUyNDogaHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L3B1bGwvMTUyNAorCisuLiBfQHBydXNzZS1tYXJ0aW46IGh0dHBz
Oi8vZ2l0aHViLmNvbS9wcnVzc2UtbWFydGluCisuLiBfQGFzdHJhdzM4OiBodHRwczovL2dpdGh1
Yi5jb20vYXN0cmF3MzgKKworCisyLjkuMSAoMjAxNi0wMy0xNykKKz09PT09PT09PT09PT09PT09
PQorCisqKkJ1ZyBGaXhlcyoqCisKKyogSW1wcm92ZSBlcnJvciBtZXNzYWdlIHdoZW4gYSBwbHVn
aW4gZmFpbHMgdG8gbG9hZC4KKyAgVGhhbmtzIGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIuCisK
KyogRml4IChgIzExNzggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvMTE3OD5gXyk6CisgIGBgcHl0ZXN0LmZhaWxgYCB3aXRoIG5vbi1hc2NpaSBjaGFyYWN0ZXJz
IHJhaXNlcyBhbiBpbnRlcm5hbCBweXRlc3QgZXJyb3IuCisgIFRoYW5rcyBgQG5pY29kZGVtdXNg
XyBmb3IgdGhlIFBSLgorCisqIEZpeCAoYCM0NjlgXyk6IGp1bml0IHBhcnNlcyByZXBvcnQubm9k
ZWlkIGluY29ycmVjdGx5LCB3aGVuIHBhcmFtcyBJRHMKKyAgY29udGFpbiBgYDo6YGAuIFRoYW5r
cyBgQHRvbXZpbmVyYF8gZm9yIHRoZSBQUiAoYCMxNDMxYF8pLgorCisqIEZpeCAoYCM1NzggPGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTc4PmBfKTogU3ludGF4
RXJyb3JzCisgIGNvbnRhaW5pbmcgbm9uLWFzY2lpIGxpbmVzIGF0IHRoZSBwb2ludCBvZiBmYWls
dXJlIGdlbmVyYXRlZCBhbiBpbnRlcm5hbAorICBweS50ZXN0IGVycm9yLgorICBUaGFua3MgYEBh
c290dGlsZWBfIGZvciB0aGUgcmVwb3J0IGFuZCBgQG5pY29kZGVtdXNgXyBmb3IgdGhlIFBSLgor
CisqIEZpeCAoYCMxNDM3YF8pOiBXaGVuIHBhc3NpbmcgaW4gYSBieXRlc3RyaW5nIHJlZ2V4IHBh
dHRlcm4gdG8gcGFyYW1ldGVyaXplCisgIGF0dGVtcHQgdG8gZGVjb2RlIGl0IGFzIHV0Zi04IGln
bm9yaW5nIGVycm9ycy4KKworKiBGaXggKGAjNjQ5YF8pOiBwYXJhbWV0cml6ZWQgdGVzdCBub2Rl
cyBjYW5ub3QgYmUgc3BlY2lmaWVkIHRvIHJ1biBvbiB0aGUgY29tbWFuZCBsaW5lLgorCisqIEZp
eCAoYCMxMzhgXyk6IGJldHRlciByZXBvcnRpbmcgZm9yIHB5dGhvbiAzLjMrIGNoYWluZWQgZXhj
ZXB0aW9ucworCisuLiBfIzE0Mzc6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvMTQzNworLi4gXyM0Njk6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9pc3N1ZXMvNDY5CisuLiBfIzE0MzE6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2
L3B5dGVzdC9wdWxsLzE0MzEKKy4uIF8jNjQ5OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvaXNzdWVzLzY0OQorLi4gXyMxMzg6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3Qt
ZGV2L3B5dGVzdC9pc3N1ZXMvMTM4CisKKy4uIF9AYXNvdHRpbGU6IGh0dHBzOi8vZ2l0aHViLmNv
bS9hc290dGlsZQorCisKKzIuOS4wICgyMDE2LTAyLTI5KQorPT09PT09PT09PT09PT09PT09CisK
KyoqTmV3IEZlYXR1cmVzKioKKworKiBOZXcgYGBweXRlc3QubWFyay5za2lwYGAgbWFyaywgd2hp
Y2ggdW5jb25kaXRpb25hbGx5IHNraXBzIG1hcmtlZCB0ZXN0cy4KKyAgVGhhbmtzIGBATWljaGFl
bEFxdWlsaW5hYF8gZm9yIHRoZSBjb21wbGV0ZSBQUiAoYCMxMDQwYF8pLgorCisqIGBgLS1kb2N0
ZXN0LWdsb2JgYCBtYXkgbm93IGJlIHBhc3NlZCBtdWx0aXBsZSB0aW1lcyBpbiB0aGUgY29tbWFu
ZC1saW5lLgorICBUaGFua3MgYEBqYWJgXyBhbmQgYEBuaWNvZGRlbXVzYF8gZm9yIHRoZSBQUi4K
KworKiBOZXcgYGAtcnBgYCBhbmQgYGAtclBgYCByZXBvcnRpbmcgb3B0aW9ucyBnaXZlIHRoZSBz
dW1tYXJ5IGFuZCBmdWxsIG91dHB1dAorICBvZiBwYXNzaW5nIHRlc3RzLCByZXNwZWN0aXZlbHku
IFRoYW5rcyB0byBgQGNvZGV3YXJyaW9yMGBfIGZvciB0aGUgUFIuCisKKyogYGBweXRlc3QubWFy
ay54ZmFpbGBgIG5vdyBoYXMgYSBgYHN0cmljdGBgIG9wdGlvbiwgd2hpY2ggbWFrZXMgYGBYUEFT
U2BgCisgIHRlc3RzIHRvIGZhaWwgdGhlIHRlc3Qgc3VpdGUgKGRlZmF1bHRpbmcgdG8gYGBGYWxz
ZWBgKS4gVGhlcmUncyBhbHNvIGEKKyAgYGB4ZmFpbF9zdHJpY3RgYCBpbmkgb3B0aW9uIHRoYXQg
Y2FuIGJlIHVzZWQgdG8gY29uZmlndXJlIGl0IHByb2plY3Qtd2lzZS4KKyAgVGhhbmtzIGBAcmFi
YmJpdGBfIGZvciB0aGUgcmVxdWVzdCBhbmQgYEBuaWNvZGRlbXVzYF8gZm9yIHRoZSBQUiAoYCMx
MzU1YF8pLgorCisqIGBgUGFyc2VyLmFkZGluaWBgIG5vdyBzdXBwb3J0cyBvcHRpb25zIG9mIHR5
cGUgYGBib29sYGAuCisgIFRoYW5rcyBgQG5pY29kZGVtdXNgXyBmb3IgdGhlIFBSLgorCisqIE5l
dyBgYEFMTE9XX0JZVEVTYGAgZG9jdGVzdCBvcHRpb24uIFRoaXMgc3RyaXBzIGBgYmBgIHByZWZp
eGVzIGZyb20gYnl0ZSBzdHJpbmdzCisgIGluIGRvY3Rlc3Qgb3V0cHV0IChzaW1pbGFyIHRvIGBg
QUxMT1dfVU5JQ09ERWBgKS4KKyAgVGhhbmtzIGBAamFyYWNvYF8gZm9yIHRoZSByZXF1ZXN0IGFu
ZCBgQG5pY29kZGVtdXNgXyBmb3IgdGhlIFBSIChgIzEyODdgXykuCisKKyogR2l2ZSBhIGhpbnQg
b24gYGBLZXlib2FyZEludGVycnVwdGBgIHRvIHVzZSB0aGUgYGAtLWZ1bGx0cmFjZWBgIG9wdGlv
biB0byBzaG93IHRoZSBlcnJvcnMuCisgIEZpeGVzIGAjMTM2NmBfLgorICBUaGFua3MgdG8gYEBo
cGs0MmBfIGZvciB0aGUgcmVwb3J0IGFuZCBgQFJvbm55UGZhbm5zY2htaWR0YF8gZm9yIHRoZSBQ
Ui4KKworKiBDYXRjaCBgYEluZGV4RXJyb3JgYCBleGNlcHRpb25zIHdoZW4gZ2V0dGluZyBleGNl
cHRpb24gc291cmNlIGxvY2F0aW9uLgorICBGaXhlcyBhIHB5dGVzdCBpbnRlcm5hbCBlcnJvciBm
b3IgZHluYW1pY2FsbHkgZ2VuZXJhdGVkIGNvZGUgKGZpeHR1cmVzIGFuZCB0ZXN0cykKKyAgd2hl
cmUgc291cmNlIGxpbmVzIGFyZSBmYWtlIGJ5IGludGVudGlvbi4KKworKipDaGFuZ2VzKioKKwor
KiAqKkltcG9ydGFudCoqOiBgcHkuY29kZSA8aHR0cHM6Ly9weWxpYi5yZWFkdGhlZG9jcy5pby9l
bi9sYXRlc3QvY29kZS5odG1sPmBfIGhhcyBiZWVuCisgIG1lcmdlZCBpbnRvIHRoZSBgYHB5dGVz
dGBgIHJlcG9zaXRvcnkgYXMgYGBweXRlc3QuX2NvZGVgYC4gVGhpcyBkZWNpc2lvbgorICB3YXMg
bWFkZSBiZWNhdXNlIGBgcHkuY29kZWBgIGhhZCB2ZXJ5IGZldyB1c2VzIG91dHNpZGUgYGBweXRl
c3RgYCBhbmQgdGhlCisgIGZhY3QgdGhhdCBpdCB3YXMgaW4gYSBkaWZmZXJlbnQgcmVwb3NpdG9y
eSBtYWRlIGl0IGRpZmZpY3VsdCB0byBmaXggYnVncyBvbgorICBpdHMgY29kZSBpbiBhIHRpbWVs
eSBtYW5uZXIuIFRoZSB0ZWFtIGhvcGVzIHdpdGggdGhpcyB0byBiZSBhYmxlIHRvIGJldHRlcgor
ICByZWZhY3RvciBvdXQgYW5kIGltcHJvdmUgdGhhdCBjb2RlLgorICBUaGlzIGNoYW5nZSBzaG91
bGRuJ3QgYWZmZWN0IHVzZXJzLCBidXQgaXQgaXMgdXNlZnVsIHRvIGxldCB1c2VycyBhd2FyZQor
ICBpZiB0aGV5IGVuY291bnRlciBhbnkgc3RyYW5nZSBiZWhhdmlvci4KKworICBLZWVwIGluIG1p
bmQgdGhhdCB0aGUgY29kZSBmb3IgYGBweXRlc3QuX2NvZGVgYCBpcyAqKnByaXZhdGUqKiBhbmQK
KyAgKipleHBlcmltZW50YWwqKiwgc28geW91IGRlZmluaXRlbHkgc2hvdWxkIG5vdCBpbXBvcnQg
aXQgZXhwbGljaXRseSEKKworICBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBvcmlnaW5hbCBgYHB5LmNv
ZGVgYCBpcyBzdGlsbCBhdmFpbGFibGUgaW4KKyAgYHB5bGliIDxodHRwczovL3B5bGliLnJlYWR0
aGVkb2NzLmlvPmBfLgorCisqIGBgcHl0ZXN0X2VudGVyX3BkYmBgIG5vdyBvcHRpb25hbGx5IHJl
Y2VpdmVzIHRoZSBweXRlc3QgY29uZmlnIG9iamVjdC4KKyAgVGhhbmtzIGBAbmljb2RkZW11c2Bf
IGZvciB0aGUgUFIuCisKKyogUmVtb3ZlZCBjb2RlIGFuZCBkb2N1bWVudGF0aW9uIGZvciBQeXRo
b24gMi41IG9yIGxvd2VyIHZlcnNpb25zLAorICBpbmNsdWRpbmcgcmVtb3ZhbCBvZiB0aGUgb2Jz
b2xldGUgYGBfcHl0ZXN0LmFzc2VydGlvbi5vbGRpbnRlcnByZXRgYCBtb2R1bGUuCisgIFRoYW5r
cyBgQG5pY29kZGVtdXNgXyBmb3IgdGhlIFBSIChgIzEyMjZgXykuCisKKyogQ29tcGFyaXNvbnMg
bm93IGFsd2F5cyBzaG93IHVwIGluIGZ1bGwgd2hlbiBgYENJYGAgb3IgYGBCVUlMRF9OVU1CRVJg
YCBpcworICBmb3VuZCBpbiB0aGUgZW52aXJvbm1lbnQsIGV2ZW4gd2hlbiBgYC12dmBgIGlzbid0
IHVzZWQuCisgIFRoYW5rcyBgQFRoZS1Db21waWxlcmBfIGZvciB0aGUgUFIuCisKKyogYGAtLWxm
YGAgYW5kIGBgLS1mZmBgIG5vdyBzdXBwb3J0IGxvbmcgbmFtZXM6IGBgLS1sYXN0LWZhaWxlZGBg
IGFuZAorICBgYC0tZmFpbGVkLWZpcnN0YGAgcmVzcGVjdGl2ZWx5LgorICBUaGFua3MgYEBNaWNo
YWVsQXF1aWxpbmFgXyBmb3IgdGhlIFBSLgorCisqIEFkZGVkIGV4cGVjdGVkIGV4Y2VwdGlvbnMg
dG8gYGBweXRlc3QucmFpc2VzYGAgZmFpbCBtZXNzYWdlLgorCisqIENvbGxlY3Rpb24gb25seSBk
aXNwbGF5cyBwcm9ncmVzcyAoImNvbGxlY3RpbmcgWCBpdGVtcyIpIHdoZW4gaW4gYSB0ZXJtaW5h
bC4KKyAgVGhpcyBhdm9pZHMgY2x1dHRlcmluZyB0aGUgb3V0cHV0IHdoZW4gdXNpbmcgYGAtLWNv
bG9yPXllc2BgIHRvIG9idGFpbgorICBjb2xvcnMgaW4gQ0kgaW50ZWdyYXRpb25zIHN5c3RlbXMg
KGAjMTM5N2BfKS4KKworKipCdWcgRml4ZXMqKgorCisqIFRoZSBgYC1zYGAgYW5kIGBgLWNgYCBv
cHRpb25zIHNob3VsZCBub3cgd29yayB1bmRlciBgYHhkaXN0YGA7CisgIGBgQ29uZmlnLmZyb21k
aWN0YXJnc2BgIG5vdyByZXByZXNlbnRzIGl0cyBpbnB1dCBtdWNoIG1vcmUgZmFpdGhmdWxseS4K
KyAgVGhhbmtzIHRvIGBAYnVrem9yYF8gZm9yIHRoZSBjb21wbGV0ZSBQUiAoYCM2ODBgXykuCisK
KyogRml4IChgIzEyOTBgXyk6IHN1cHBvcnQgUHl0aG9uIDMuNSdzIGBgQGBgIG9wZXJhdG9yIGlu
IGFzc2VydGlvbiByZXdyaXRpbmcuCisgIFRoYW5rcyBgQFNoaW5rZW5qb2VgXyBmb3IgcmVwb3J0
IHdpdGggdGVzdCBjYXNlIGFuZCBgQHRvbXZpbmVyYF8gZm9yIHRoZSBQUi4KKworKiBGaXggZm9y
bWF0dGluZyB1dGYtOCBleHBsYW5hdGlvbiBtZXNzYWdlcyAoYCMxMzc5YF8pLgorICBUaGFua3Mg
YEBiaWVybmBfIGZvciB0aGUgUFIuCisKKyogRml4IGB0cmFjZWJhY2sgc3R5bGUgZG9jc2BfIHRv
IGRlc2NyaWJlIGFsbCBvZiB0aGUgYXZhaWxhYmxlIG9wdGlvbnMKKyAgKGF1dG8vbG9uZy9zaG9y
dC9saW5lL25hdGl2ZS9ubyksIHdpdGggYGBhdXRvYGAgYmVpbmcgdGhlIGRlZmF1bHQgc2luY2Ug
djIuNi4KKyAgVGhhbmtzIGBAaGFja2Vicm90YF8gZm9yIHRoZSBQUi4KKworKiBGaXggKGAjMTQy
MmBfKToganVuaXQgcmVjb3JkX3htbF9wcm9wZXJ0eSBkb2Vzbid0IGFsbG93IG11bHRpcGxlIHJl
Y29yZHMKKyAgd2l0aCBzYW1lIG5hbWUuCisKKy4uIF9gdHJhY2ViYWNrIHN0eWxlIGRvY3NgOiBo
dHRwczovL3B5dGVzdC5vcmcvbGF0ZXN0L3VzYWdlLmh0bWwjbW9kaWZ5aW5nLXB5dGhvbi10cmFj
ZWJhY2stcHJpbnRpbmcKKworLi4gXyMxNjA5OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvaXNzdWVzLzE2MDkKKy4uIF8jMTQyMjogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVz
dC1kZXYvcHl0ZXN0L2lzc3Vlcy8xNDIyCisuLiBfIzEzNzk6IGh0dHBzOi8vZ2l0aHViLmNvbS9w
eXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTM3OQorLi4gXyMxMzY2OiBodHRwczovL2dpdGh1Yi5j
b20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzEzNjYKKy4uIF8jMTA0MDogaHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L3B1bGwvMTA0MAorLi4gXyM2ODA6IGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNjgwCisuLiBfIzEyODc6IGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9wdWxsLzEyODcKKy4uIF8jMTIyNjogaHR0cHM6
Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L3B1bGwvMTIyNgorLi4gXyMxMjkwOiBodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVsbC8xMjkwCisuLiBfIzEzNTU6IGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9wdWxsLzEzNTUKKy4uIF8jMTM5Nzog
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xMzk3CisuLiBfQGJp
ZXJuOiBodHRwczovL2dpdGh1Yi5jb20vYmllcm4KKy4uIF9ATWljaGFlbEFxdWlsaW5hOiBodHRw
czovL2dpdGh1Yi5jb20vTWljaGFlbEFxdWlsaW5hCisuLiBfQGJ1a3pvcjogaHR0cHM6Ly9naXRo
dWIuY29tL2J1a3pvcgorLi4gX0BocGs0MjogaHR0cHM6Ly9naXRodWIuY29tL2hwazQyCisuLiBf
QG5pY29kZGVtdXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9uaWNvZGRlbXVzCisuLiBfQGphYjogaHR0
cHM6Ly9naXRodWIuY29tL2phYgorLi4gX0Bjb2Rld2FycmlvcjA6IGh0dHBzOi8vZ2l0aHViLmNv
bS9jb2Rld2FycmlvcjAKKy4uIF9AamFyYWNvOiBodHRwczovL2dpdGh1Yi5jb20vamFyYWNvCisu
LiBfQFRoZS1Db21waWxlcjogaHR0cHM6Ly9naXRodWIuY29tL1RoZS1Db21waWxlcgorLi4gX0BT
aGlua2Vuam9lOiBodHRwczovL2dpdGh1Yi5jb20vU2hpbmtlbmpvZQorLi4gX0B0b212aW5lcjog
aHR0cHM6Ly9naXRodWIuY29tL3RvbXZpbmVyCisuLiBfQFJvbm55UGZhbm5zY2htaWR0OiBodHRw
czovL2dpdGh1Yi5jb20vUm9ubnlQZmFubnNjaG1pZHQKKy4uIF9AcmFiYmJpdDogaHR0cHM6Ly9n
aXRodWIuY29tL3JhYmJiaXQKKy4uIF9AaGFja2Vicm90OiBodHRwczovL2dpdGh1Yi5jb20vaGFj
a2Vicm90CisuLiBfQHBxdWVudGluOiBodHRwczovL2dpdGh1Yi5jb20vcHF1ZW50aW4KKy4uIF9A
aW9nZ3N0cmVhbTogaHR0cHM6Ly9naXRodWIuY29tL2lvZ2dzdHJlYW0KKworMi44LjcgKDIwMTYt
MDEtMjQpCis9PT09PT09PT09PT09PT09PT0KKworLSBmaXggIzEzMzg6IHVzZSBwcmVkaWN0YWJs
ZSBvYmplY3QgcmVzb2x1dGlvbiBmb3IgbW9ua2V5cGF0Y2gKKworMi44LjYgKDIwMTYtMDEtMjEp
Cis9PT09PT09PT09PT09PT09PT0KKworLSBmaXggIzEyNTk6IGFsbG93IGZvciBkb3VibGUgbm9k
ZWlkcyBpbiBqdW5pdHhtbCwKKyAgdGhpcyB3YXMgYSByZWdyZXNzaW9uIGZhaWxpbmcgcGx1Z2lu
cyBjb21iaW5hdGlvbnMKKyAgbGlrZSBweXRlc3QtcGVwOCArIHB5dGVzdC1mbGFrZXMKKworLSBX
b3JrYXJvdW5kIGZvciBleGNlcHRpb24gdGhhdCBvY2N1cnMgaW4gcHlyZWFkbGluZSB3aGVuIHVz
aW5nCisgIGBgLS1wZGJgYCB3aXRoIHN0YW5kYXJkIEkvTyBjYXB0dXJlIGVuYWJsZWQuCisgIFRo
YW5rcyBFcmlrIE0uIEJyYXkgZm9yIHRoZSBQUi4KKworLSBmaXggIzkwMDogQmV0dGVyIGVycm9y
IG1lc3NhZ2UgaW4gY2FzZSB0aGUgdGFyZ2V0IG9mIGEgYGBtb25rZXlwYXRjaGBgIGNhbGwKKyAg
cmFpc2VzIGFuIGBgSW1wb3J0RXJyb3JgYC4KKworLSBmaXggIzEyOTI6IG1vbmtleXBhdGNoIGNh
bGxzIChzZXRhdHRyLCBzZXRlbnYsIGV0Yy4pIGFyZSBub3cgTygxKS4KKyAgVGhhbmtzIERhdmlk
IFIuIE1hY0l2ZXIgZm9yIHRoZSByZXBvcnQgYW5kIEJydW5vIE9saXZlaXJhIGZvciB0aGUgUFIu
CisKKy0gZml4ICMxMjIzOiBjYXB0dXJlZCBzdGRvdXQgYW5kIHN0ZGVyciBhcmUgbm93IHByb3Bl
cmx5IGRpc3BsYXllZCBiZWZvcmUKKyAgZW50ZXJpbmcgcGRiIHdoZW4gYGAtLXBkYmBgIGlzIHVz
ZWQgaW5zdGVhZCBvZiBiZWluZyB0aHJvd24gYXdheS4KKyAgVGhhbmtzIENhbCBMZWVtaW5nIGZv
ciB0aGUgUFIuCisKKy0gZml4ICMxMzA1OiBweXRlc3Qgd2FybmluZ3MgZW1pdHRlZCBkdXJpbmcg
YGBweXRlc3RfdGVybWluYWxfc3VtbWFyeWBgIGFyZSBub3cKKyAgcHJvcGVybHkgZGlzcGxheWVk
LgorICBUaGFua3MgSW9uZWwgTWFyaWVzIENyaXN0aWFuIGZvciB0aGUgcmVwb3J0IGFuZCBCcnVu
byBPbGl2ZWlyYSBmb3IgdGhlIFBSLgorCistIGZpeCAjNjI4OiBmaXhlZCBpbnRlcm5hbCBVbmlj
b2RlRGVjb2RlRXJyb3Igd2hlbiBkb2N0ZXN0cyBjb250YWluIHVuaWNvZGUuCisgIFRoYW5rcyBK
YXNvbiBSLiBDb29tYnMgZm9yIHRoZSByZXBvcnQgYW5kIEJydW5vIE9saXZlaXJhIGZvciB0aGUg
UFIuCisKKy0gZml4ICMxMzM0OiBBZGQgY2FwdHVyZWQgc3Rkb3V0IHRvIGpVbml0IFhNTCByZXBv
cnQgb24gc2V0dXAgZXJyb3IuCisgIFRoYW5rcyBHZW9yZ3kgRHl1bGRpbiBmb3IgdGhlIFBSLgor
CisKKzIuOC41ICgyMDE1LTEyLTExKQorPT09PT09PT09PT09PT09PT09CisKKy0gZml4ICMxMjQz
OiBmaXhlZCBpc3N1ZSB3aGVyZSBjbGFzcyBhdHRyaWJ1dGVzIGluamVjdGVkIGR1cmluZyBjb2xs
ZWN0aW9uIGNvdWxkIGJyZWFrIHB5dGVzdC4KKyAgUFIgYnkgQWxleGVpIEtvemxlbm9rLCB0aGFu
a3MgUm9ubnkgUGZhbm5zY2htaWR0IGFuZCBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIHJldmlldyBh
bmQgaGVscC4KKworLSBmaXggIzEwNzQ6IHByZWNvbXB1dGUganVuaXR4bWwgY2h1bmtzIGluc3Rl
YWQgb2Ygc3RvcmluZyB0aGUgd2hvbGUgdHJlZSBpbiBvYmplY3RzCisgIFRoYW5rcyBCcnVubyBP
bGl2ZWlyYSBmb3IgdGhlIHJlcG9ydCBhbmQgUm9ubnkgUGZhbm5zY2htaWR0IGZvciB0aGUgUFIK
KworLSBmaXggIzEyMzg6IGZpeCBgYHB5dGVzdC5kZXByZWNhdGVkX2NhbGwoKWBgIHJlY2Vpdmlu
ZyBtdWx0aXBsZSBhcmd1bWVudHMKKyAgKFJlZ3Jlc3Npb24gaW50cm9kdWNlZCBpbiAyLjguNCku
IFRoYW5rcyBBbGV4IEdheW5vciBmb3IgdGhlIHJlcG9ydCBhbmQKKyAgQnJ1bm8gT2xpdmVpcmEg
Zm9yIHRoZSBQUi4KKworCisyLjguNCAoMjAxNS0xMi0wNikKKz09PT09PT09PT09PT09PT09PQor
CistIGZpeCAjMTE5MDogYGBkZXByZWNhdGVkX2NhbGwoKWBgIG5vdyB3b3JrcyB3aGVuIHRoZSBk
ZXByZWNhdGVkCisgIGZ1bmN0aW9uIGhhcyBiZWVuIGFscmVhZHkgY2FsbGVkIGJ5IGFub3RoZXIg
dGVzdCBpbiB0aGUgc2FtZQorICBtb2R1bGUuIFRoYW5rcyBNaWtoYWlsIENoZXJueWtoIGZvciB0
aGUgcmVwb3J0IGFuZCBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlCisgIFBSLgorCistIGZpeCAjMTE5
ODogYGAtLXBhc3RlYmluYGAgb3B0aW9uIG5vdyB3b3JrcyBvbiBQeXRob24gMy4gVGhhbmtzCisg
IE1laGR5IEtob3Nobm9vZHkgZm9yIHRoZSBQUi4KKworLSBmaXggIzEyMTk6IGBgLS1wYXN0ZWJp
bmBgIG5vdyB3b3JrcyBjb3JyZWN0bHkgd2hlbiBjYXB0dXJlZCBvdXRwdXQgY29udGFpbnMKKyAg
bm9uLWFzY2lpIGNoYXJhY3RlcnMuIFRoYW5rcyBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIFBSLgor
CistIGZpeCAjMTIwNDogYW5vdGhlciBlcnJvciB3aGVuIGNvbGxlY3Rpbmcgd2l0aCBhIG5hc3R5
IF9fZ2V0YXR0cl9fKCkuCisgIFRoYW5rcyBGbG9yaWFuIEJydWhpbiBmb3IgdGhlIFBSLgorCist
IGZpeCB0aGUgc3VtbWFyeSBwcmludGVkIHdoZW4gbm8gdGVzdHMgZGlkIHJ1bi4KKyAgVGhhbmtz
IEZsb3JpYW4gQnJ1aGluIGZvciB0aGUgUFIuCistIGZpeCAjMTE4NSAtIGVuc3VyZSBNQU5JRkVT
VC5pbiBleGFjdGx5IG1hdGNoZXMgd2hhdCBzaG91bGQgZ28gdG8gYSBzZGlzdAorCistIGEgbnVt
YmVyIG9mIGRvY3VtZW50YXRpb24gbW9kZXJuaXphdGlvbnMgd3J0IGdvb2QgcHJhY3RpY2VzLgor
ICBUaGFua3MgQnJ1bm8gT2xpdmVpcmEgZm9yIHRoZSBQUi4KKworMi44LjMgKDIwMTUtMTEtMTgp
Cis9PT09PT09PT09PT09PT09PT0KKworLSBmaXggIzExNjk6IGFkZCBfX25hbWVfXyBhdHRyaWJ1
dGUgdG8gdGVzdGNhc2VzIGluIFRlc3RDYXNlRnVuY3Rpb24gdG8KKyAgc3VwcG9ydCB0aGUgQHVu
aXR0ZXN0LnNraXAgZGVjb3JhdG9yIG9uIGZ1bmN0aW9ucyBhbmQgbWV0aG9kcy4KKyAgVGhhbmtz
IExlZSBLYW1lbnRza3kgZm9yIHRoZSBQUi4KKworLSBmaXggIzEwMzU6IGNvbGxlY3RpbmcgdGVz
dHMgaWYgdGVzdCBtb2R1bGUgbGV2ZWwgb2JqIGhhcyBfX2dldGF0dHJfXygpLgorICBUaGFua3Mg
U3VvciBmb3IgdGhlIHJlcG9ydCBhbmQgQnJ1bm8gT2xpdmVpcmEgLyBUb20gVmluZXIgZm9yIHRo
ZSBQUi4KKworLSBmaXggIzMzMTogZG9uJ3QgY29sbGVjdCB0ZXN0cyBpZiB0aGVpciBmYWlsdXJl
IGNhbm5vdCBiZSByZXBvcnRlZCBjb3JyZWN0bHkKKyAgZS5nLiB0aGV5IGFyZSBhIGNhbGxhYmxl
IGluc3RhbmNlIG9mIGEgY2xhc3MuCisKKy0gZml4ICMxMTMzOiBmaXhlZCBpbnRlcm5hbCBlcnJv
ciB3aGVuIGZpbHRlcmluZyB0cmFjZWJhY2tzIHdoZXJlIG9uZSBlbnRyeQorICBiZWxvbmdzIHRv
IGEgZmlsZSB3aGljaCBpcyBubyBsb25nZXIgYXZhaWxhYmxlLgorICBUaGFua3MgQnJ1bm8gT2xp
dmVpcmEgZm9yIHRoZSBQUi4KKworLSBlbmhhbmNlbWVudCBtYWRlIHRvIGhpZ2hsaWdodCBpbiBy
ZWQgdGhlIG5hbWUgb2YgdGhlIGZhaWxpbmcgdGVzdHMgc28KKyAgdGhleSBzdGFuZCBvdXQgaW4g
dGhlIG91dHB1dC4KKyAgVGhhbmtzIEdhYnJpZWwgUmVpcyBmb3IgdGhlIFBSLgorCistIGFkZCBt
b3JlIHRhbGtzIHRvIHRoZSBkb2N1bWVudGF0aW9uCistIGV4dGVuZCBkb2N1bWVudGF0aW9uIG9u
IHRoZSAtLWlnbm9yZSBjbGkgb3B0aW9uCistIHVzZSBweXRlc3QtcnVubmVyIGZvciBzZXR1cHRv
b2xzIGludGVncmF0aW9uCistIG1pbm9yIGZpeGVzIGZvciBpbnRlcmFjdGlvbiB3aXRoIE9TIFgg
RWwgQ2FwaXRhbgorICBzeXN0ZW0gaW50ZWdyaXR5IHByb3RlY3Rpb24gKHRoYW5rcyBGbG9yaWFu
KQorCisKKzIuOC4yICgyMDE1LTEwLTA3KQorPT09PT09PT09PT09PT09PT09CisKKy0gZml4ICMx
MDg1OiBwcm9wZXIgaGFuZGxpbmcgb2YgZW5jb2RpbmcgZXJyb3JzIHdoZW4gcGFzc2luZyBlbmNv
ZGVkIGJ5dGUKKyAgc3RyaW5ncyB0byBweXRlc3QucGFyYW1ldHJpemUgaW4gUHl0aG9uIDIuCisg
IFRoYW5rcyBUaGVtYW53aXRob3V0YXBsYW4gZm9yIHRoZSByZXBvcnQgYW5kIEJydW5vIE9saXZl
aXJhIGZvciB0aGUgUFIuCisKKy0gZml4ICMxMDg3OiBoYW5kbGluZyBTeXN0ZW1FcnJvciB3aGVu
IHBhc3NpbmcgZW1wdHkgYnl0ZSBzdHJpbmdzIHRvCisgIHB5dGVzdC5wYXJhbWV0cml6ZSBpbiBQ
eXRob24gMy4KKyAgVGhhbmtzIFBhdWwgS2VocmVyIGZvciB0aGUgcmVwb3J0IGFuZCBCcnVubyBP
bGl2ZWlyYSBmb3IgdGhlIFBSLgorCistIGZpeCAjOTk1OiBmaXhlZCBpbnRlcm5hbCBlcnJvciB3
aGVuIGZpbHRlcmluZyB0cmFjZWJhY2tzIHdoZXJlIG9uZSBlbnRyeQorICB3YXMgZ2VuZXJhdGVk
IGJ5IGFuIGV4ZWMoKSBzdGF0ZW1lbnQuCisgIFRoYW5rcyBEYW5pZWwgSGFobGVyLCBBc2hsZXkg
QyBTdHJhdywgUGhpbGlwcGUgR2F1dGhpZXIgYW5kIFBhdmVsIFNhdmNoZW5rbworICBmb3IgY29u
dHJpYnV0aW5nIGFuZCBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIFBSLgorCistIGZpeCAjMTEwMCBh
bmQgIzEwNTc6IGVycm9ycyB3aGVuIHVzaW5nIGF1dG91c2UgZml4dHVyZXMgYW5kIGRvY3Rlc3Qg
bW9kdWxlcy4KKyAgVGhhbmtzIFNlcmdleSBCIEtpcnBpY2hldiBhbmQgVml0YWwgS3VkemVsa2Eg
Zm9yIGNvbnRyaWJ1dGluZyBhbmQgQnJ1bm8KKyAgT2xpdmVpcmEgZm9yIHRoZSBQUi4KKworMi44
LjEgKDIwMTUtMDktMjkpCis9PT09PT09PT09PT09PT09PT0KKworLSBmaXggIzEwMzQ6IEFkZCBt
aXNzaW5nIG5vZGVpZCBvbiBweXRlc3RfbG9nd2FybmluZyBjYWxsIGluCisgIGFkZGhvb2suICBU
aGFua3MgU2ltb24gR29taXplbGogZm9yIHRoZSBQUi4KKworLSAnZGVwcmVjYXRlZF9jYWxsJyBp
cyBub3cgb25seSBzYXRpc2ZpZWQgd2l0aCBhIERlcHJlY2F0aW9uV2FybmluZyBvcgorICBQZW5k
aW5nRGVwcmVjYXRpb25XYXJuaW5nLiBCZWZvcmUgMi44LjAsIGl0IGFjY2VwdGVkIGFueSB3YXJu
aW5nLCBhbmQgMi44LjAKKyAgbWFkZSBpdCBhY2NlcHQgb25seSBEZXByZWNhdGlvbldhcm5pbmcg
KGJ1dCBub3QgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZykuCisgIFRoYW5rcyBBbGV4IEdheW5v
ciBmb3IgdGhlIGlzc3VlIGFuZCBFcmljIEh1bnNiZXJnZXIgZm9yIHRoZSBQUi4KKworLSBmaXgg
aXNzdWUgIzEwNzM6IGF2b2lkIGNhbGxpbmcgX19nZXRhdHRyX18gb24gcG90ZW50aWFsIHBsdWdp
biBvYmplY3RzLgorICBUaGlzIGZpeGVzIGFuIGluY29tcGF0aWJpbGl0eSB3aXRoIHB5dGVzdC1k
amFuZ28uICBUaGFua3MgQW5kcmVhcyBQZWxtZSwKKyAgQnJ1bm8gT2xpdmVpcmEgYW5kIFJvbm55
IFBmYW5uc2NobWlkdCBmb3IgY29udHJpYnV0aW5nIGFuZCBIb2xnZXIgS3Jla2VsCisgIGZvciB0
aGUgZml4LgorCistIEZpeCBpc3N1ZSAjNzA0OiBoYW5kbGUgdmVyc2lvbmNvbmZsaWN0IGR1cmlu
ZyBwbHVnaW4gbG9hZGluZyBtb3JlCisgIGdyYWNlZnVsbHkuICBUaGFua3MgQnJ1bm8gT2xpdmVp
cmEgZm9yIHRoZSBQUi4KKworLSBGaXggaXNzdWUgIzEwNjQ6ICIiLS1qdW5pdHhtbCIgcmVncmVz
c2lvbiB3aGVuIHVzZWQgd2l0aCB0aGUKKyAgInB5dGVzdC14ZGlzdCIgcGx1Z2luLCB3aXRoIHRl
c3QgcmVwb3J0cyBiZWluZyBhc3NpZ25lZCB0byB0aGUgd3JvbmcgdGVzdHMuCisgIFRoYW5rcyBE
YW5pZWwgR3J1bndhbGQgZm9yIHRoZSByZXBvcnQgYW5kIEJydW5vIE9saXZlaXJhIGZvciB0aGUg
UFIuCisKKy0gKGV4cGVyaW1lbnRhbCkgYWRhcHQgbW9yZSBTRU1WRVIgc3R5bGUgdmVyc2lvbmlu
ZyBhbmQgY2hhbmdlIG1lYW5pbmcgb2YKKyAgbWFzdGVyIGJyYW5jaCBpbiBnaXQgcmVwbzogIm1h
c3RlciIgYnJhbmNoIG5vdyBrZWVwcyB0aGUgYnVnZml4ZXMsIGNoYW5nZXMKKyAgYWltZWQgZm9y
IG1pY3JvIHJlbGVhc2VzLiAgImZlYXR1cmVzIiBicmFuY2ggd2lsbCBvbmx5IGJlIHJlbGVhc2Vk
CisgIHdpdGggbWlub3Igb3IgbWFqb3IgcHl0ZXN0IHJlbGVhc2VzLgorCistIEZpeCBpc3N1ZSAj
NzY2IGJ5IHJlbW92aW5nIGRvY3VtZW50YXRpb24gcmVmZXJlbmNlcyB0byBkaXN0dXRpbHMuCisg
IFRoYW5rcyBSdXNzZWwgV2luZGVyLgorCistIEZpeCBpc3N1ZSAjMTAzMDogbm93IGJ5dGUtc3Ry
aW5ncyBhcmUgZXNjYXBlZCB0byBwcm9kdWNlIGl0ZW0gbm9kZSBpZHMKKyAgdG8gbWFrZSB0aGVt
IGFsd2F5cyBzZXJpYWxpemFibGUuCisgIFRoYW5rcyBBbmR5IEZyZWVsYW5kIGZvciB0aGUgcmVw
b3J0IGFuZCBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIFBSLgorCistIFB5dGhvbiAyOiBpZiB1bmlj
b2RlIHBhcmFtZXRyaXplZCB2YWx1ZXMgYXJlIGNvbnZlcnRpYmxlIHRvIGFzY2lpLCB0aGVpcgor
ICBhc2NpaSByZXByZXNlbnRhdGlvbiBpcyB1c2VkIGZvciB0aGUgbm9kZSBpZC4KKworLSBGaXgg
aXNzdWUgIzQxMTogQWRkIF9fZXFfXyBtZXRob2QgdG8gYXNzZXJ0aW9uIGNvbXBhcmlzb24gZXhh
bXBsZS4KKyAgVGhhbmtzIEJlbiBXZWJiLgorLSBGaXggaXNzdWUgIzY1MzogZGVwcmVjYXRlZF9j
YWxsIGNhbiBiZSB1c2VkIGFzIGNvbnRleHQgbWFuYWdlci4KKworLSBmaXggaXNzdWUgODc3OiBw
cm9wZXJseSBoYW5kbGUgYXNzZXJ0aW9uIGV4cGxhbmF0aW9ucyB3aXRoIG5vbi1hc2NpaSByZXBy
CisgIFRoYW5rcyBNYXRoaWV1IEFnb3BpYW4gZm9yIHRoZSByZXBvcnQgYW5kIFJvbm55IFBmYW5u
c2NobWlkdCBmb3IgdGhlIFBSLgorCistIGZpeCBpc3N1ZSAxMDI5OiB0cmFuc2Zvcm0gZXJyb3Jz
IHdoZW4gd3JpdGluZyBjYWNoZSB2YWx1ZXMgaW50byBweXRlc3Qtd2FybmluZ3MKKworMi44LjAg
KDIwMTUtMDktMTgpCis9PT09PT09PT09PT09PT09PT0KKworLSBuZXcgYGAtLWxmYGAgYW5kIGBg
LWZmYGAgb3B0aW9ucyB0byBydW4gb25seSB0aGUgbGFzdCBmYWlsaW5nIHRlc3RzIG9yCisgICJm
YWlsaW5nIHRlc3RzIGZpcnN0IiBmcm9tIHRoZSBsYXN0IHJ1bi4gIFRoaXMgZnVuY3Rpb25hbGl0
eSBpcyBwcm92aWRlZAorICB0aHJvdWdoIHBvcnRpbmcgdGhlIGZvcm1lcmx5IGV4dGVybmFsIHB5
dGVzdC1jYWNoZSBwbHVnaW4gaW50byBweXRlc3QgY29yZS4KKyAgQkFDS1dBUkQgSU5DT01QQVQ6
IGlmIHlvdSB1c2VkIHB5dGVzdC1jYWNoZSdzIGZ1bmN0aW9uYWxpdHkgdG8gcGVyc2lzdAorICBk
YXRhIGJldHdlZW4gdGVzdCBydW5zIGJlIGF3YXJlIHRoYXQgd2UgZG9uJ3Qgc2VyaWFsaXplIHNl
dHMgYW55bW9yZS4KKyAgVGhhbmtzIFJvbm55IFBmYW5uc2NobWlkdCBmb3IgbW9zdCBvZiB0aGUg
bWVyZ2luZyB3b3JrLgorCistICItciIgb3B0aW9uIG5vdyBhY2NlcHRzICJhIiB0byBpbmNsdWRl
IGFsbCBwb3NzaWJsZSByZXBvcnRzLCBzaW1pbGFyCisgIHRvIHBhc3NpbmcgImZFc3hYdyIgZXhw
bGljaXRseSAoaXNzZTk2MCkuCisgIFRoYW5rcyBBYmhpamVldCBLYXN1cmRlIGZvciB0aGUgUFIu
CisKKy0gYXZvaWQgcHl0aG9uMy41IGRlcHJlY2F0aW9uIHdhcm5pbmdzIGJ5IGludHJvZHVjaW5n
IHZlcnNpb24KKyAgc3BlY2lmaWMgaW5zcGVjdGlvbiBoZWxwZXJzLCB0aGFua3MgTWljaGFlbCBE
cm9ldHRib29tLgorCistIGZpeCBpc3N1ZTU2MjogQG5vc2UudG9vbHMuaXN0ZXN0IG5vdyBmdWxs
eSByZXNwZWN0ZWQuCisKKy0gZml4IGlzc3VlOTM0OiB3aGVuIHN0cmluZyBjb21wYXJpc29uIGZh
aWxzIGFuZCBhIGRpZmYgaXMgdG9vIGxhcmdlIHRvIGRpc3BsYXkKKyAgd2l0aG91dCBwYXNzaW5n
IC12diwgc3RpbGwgc2hvdyBhIGZldyBsaW5lcyBvZiB0aGUgZGlmZi4KKyAgVGhhbmtzIEZsb3Jp
YW4gQnJ1aGluIGZvciB0aGUgcmVwb3J0IGFuZCBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIFBSLgor
CistIGZpeCBpc3N1ZTczNjogRml4IGEgYnVnIHdoZXJlIGZpeHR1cmUgcGFyYW1zIHdvdWxkIGJl
IGRpc2NhcmRlZCB3aGVuIGNvbWJpbmVkCisgIHdpdGggcGFyYW1ldHJpemF0aW9uIG1hcmtlcnMu
CisgIFRoYW5rcyB0byBNYXJrdXMgVW50ZXJ3YWRpdHplciBmb3IgdGhlIFBSLgorCistIGZpeCBp
c3N1ZTcxMDogaW50cm9kdWNlIEFMTE9XX1VOSUNPREUgZG9jdGVzdCBvcHRpb246IHdoZW4gZW5h
YmxlZCwgdGhlCisgIGBgdWBgIHByZWZpeCBpcyBzdHJpcHBlZCBmcm9tIHVuaWNvZGUgc3RyaW5n
cyBpbiBleHBlY3RlZCBkb2N0ZXN0IG91dHB1dC4gVGhpcworICBhbGxvd3MgZG9jdGVzdHMgd2hp
Y2ggdXNlIHVuaWNvZGUgdG8gcnVuIGluIFB5dGhvbiAyIGFuZCAzIHVuY2hhbmdlZC4KKyAgVGhh
bmtzIEphc29uIFIuIENvb21icyBmb3IgdGhlIHJlcG9ydCBhbmQgQnJ1bm8gT2xpdmVpcmEgZm9y
IHRoZSBQUi4KKworLSBwYXJhbWV0cml6ZSBub3cgYWxzbyBnZW5lcmF0ZXMgbWVhbmluZ2Z1bCB0
ZXN0IElEcyBmb3IgZW51bSwgcmVnZXggYW5kIGNsYXNzCisgIG9iamVjdHMgKGFzIG9wcG9zZWQg
dG8gY2xhc3MgaW5zdGFuY2VzKS4KKyAgVGhhbmtzIHRvIEZsb3JpYW4gQnJ1aGluIGZvciB0aGUg
UFIuCisKKy0gQWRkICd3YXJucycgdG8gYXNzZXJ0IHRoYXQgd2FybmluZ3MgYXJlIHRocm93biAo
bGlrZSAncmFpc2VzJykuCisgIFRoYW5rcyB0byBFcmljIEh1bnNiZXJnZXIgZm9yIHRoZSBQUi4K
KworLSBGaXggaXNzdWU2ODM6IERvIG5vdCBhcHBseSBhbiBhbHJlYWR5IGFwcGxpZWQgbWFyay4g
IFRoYW5rcyBvamFrZSBmb3IgdGhlIFBSLgorCistIERlYWwgd2l0aCBjYXB0dXJpbmcgZmFpbHVy
ZXMgYmV0dGVyIHNvIGZld2VyIGV4Y2VwdGlvbnMgZ2V0IGxvc3QgdG8KKyAgL2Rldi9udWxsLiAg
VGhhbmtzIERhdmlkIFN6b3R0ZW4gZm9yIHRoZSBQUi4KKworLSBmaXggaXNzdWU3MzA6IGRlcHJl
Y2F0ZSBhbmQgd2FybiBhYm91dCB0aGUgLS1nZW5zY3JpcHQgb3B0aW9uLgorICBUaGFua3MgUm9u
bnkgUGZhbm5zY2htaWR0IGZvciB0aGUgcmVwb3J0IGFuZCBDaHJpc3RpYW4gUG9tbXJhbnogZm9y
IHRoZSBQUi4KKworLSBmaXggaXNzdWU3NTE6IG11bHRpcGxlIHBhcmFtZXRyaXplIHdpdGggaWRz
IGJ1ZyBpZiBpdCBwYXJhbWV0cml6ZXMgY2xhc3Mgd2l0aAorICB0d28gb3IgbW9yZSB0ZXN0IG1l
dGhvZHMuIFRoYW5rcyBTZXJnZXkgQ2hpcGlnYSBmb3IgcmVwb3J0aW5nIGFuZCBKYW4KKyAgQmVk
bmFyaWsgZm9yIFBSLgorCistIGZpeCBpc3N1ZTgyOiBhdm9pZCBsb2FkaW5nIGNvbmZ0ZXN0IGZp
bGVzIGZyb20gc2V0dXAuY2ZnL3B5dGVzdC5pbmkvdG94LmluaQorICBmaWxlcyBhbmQgdXB3YXJk
cyBieSBkZWZhdWx0ICgtLWNvbmZjdXRkaXIgY2FuIHN0aWxsIGJlIHNldCB0byBvdmVycmlkZSB0
aGlzKS4KKyAgVGhhbmtzIEJydW5vIE9saXZlaXJhIGZvciB0aGUgUFIuCisKKy0gZml4IGlzc3Vl
NzY4OiBkb2NzdHJpbmdzIGZvdW5kIGluIHB5dGhvbiBtb2R1bGVzIHdlcmUgbm90IHNldHRpbmcg
dXAgc2Vzc2lvbgorICBmaXh0dXJlcy4gVGhhbmtzIEphc29uIFIuIENvb21icyBmb3IgcmVwb3J0
aW5nIGFuZCBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIFBSLgorCistIGFkZGVkIGBgdG1wZGlyX2Zh
Y3RvcnlgYCwgYSBzZXNzaW9uLXNjb3BlZCBmaXh0dXJlIHRoYXQgY2FuIGJlIHVzZWQgdG8gY3Jl
YXRlCisgIGRpcmVjdG9yaWVzIHVuZGVyIHRoZSBiYXNlIHRlbXBvcmFyeSBkaXJlY3RvcnkuIFBy
ZXZpb3VzbHkgdGhpcyBvYmplY3Qgd2FzCisgIGluc3RhbGxlZCBhcyBhIGBgX3RtcGRpcmhhbmRs
ZXJgYCBhdHRyaWJ1dGUgb2YgdGhlIGBgY29uZmlnYGAgb2JqZWN0LCBidXQgbm93IGl0CisgIGlz
IHBhcnQgb2YgdGhlIG9mZmljaWFsIEFQSSBhbmQgdXNpbmcgYGBjb25maWcuX3RtcGRpcmhhbmRs
ZXJgYCBpcworICBkZXByZWNhdGVkLgorICBUaGFua3MgQnJ1bm8gT2xpdmVpcmEgZm9yIHRoZSBQ
Ui4KKworLSBmaXggaXNzdWU4MDg6IHB5dGVzdCdzIGludGVybmFsIGFzc2VydGlvbiByZXdyaXRl
IGhvb2sgbm93IGltcGxlbWVudHMgdGhlCisgIG9wdGlvbmFsIFBFUDMwMiBnZXRfZGF0YSBBUEkg
c28gdGVzdHMgY2FuIGFjY2VzcyBkYXRhIGZpbGVzIG5leHQgdG8gdGhlbS4KKyAgVGhhbmtzIHht
by1vZG9vIGZvciByZXF1ZXN0IGFuZCBleGFtcGxlIGFuZCBCcnVubyBPbGl2ZWlyYSBmb3IKKyAg
dGhlIFBSLgorCistIHJvb3RkaXIgYW5kIGluaWZpbGUgYXJlIG5vdyBkaXNwbGF5ZWQgZHVyaW5n
IHVzYWdlIGVycm9ycyB0byBoZWxwCisgIHVzZXJzIGRpYWdub3NlIHByb2JsZW1zIHN1Y2ggYXMg
dW5leHBlY3RlZCBpbmkgZmlsZXMgd2hpY2ggYWRkCisgIHVua25vd24gb3B0aW9ucyBiZWluZyBw
aWNrZWQgdXAgYnkgcHl0ZXN0LiBUaGFua3MgdG8gUGF2ZWwgU2F2Y2hlbmtvIGZvcgorICBicmlu
Z2luZyB0aGUgcHJvYmxlbSB0byBhdHRlbnRpb24gaW4gIzgyMSBhbmQgQnJ1bm8gT2xpdmVpcmEg
Zm9yIHRoZSBQUi4KKworLSBTdW1tYXJ5IGJhciBub3cgaXMgY29sb3JlZCB5ZWxsb3cgZm9yIHdh
cm5pbmcKKyAgc2l0dWF0aW9ucyBzdWNoIGFzOiBhbGwgdGVzdHMgZWl0aGVyIHdlcmUgc2tpcHBl
ZCBvciB4cGFzcy94ZmFpbGVkLAorICBvciBubyB0ZXN0cyB3ZXJlIHJ1biBhdCBhbGwgKHRoaXMg
aXMgYSBwYXJ0aWFsIGZpeCBmb3IgaXNzdWU1MDApLgorCistIGZpeCBpc3N1ZTgxMjogcHl0ZXN0
IG5vdyBleGl0cyB3aXRoIHN0YXR1cyBjb2RlIDUgaW4gc2l0dWF0aW9ucyB3aGVyZSBubworICB0
ZXN0cyB3ZXJlIHJ1biBhdCBhbGwsIHN1Y2ggYXMgdGhlIGRpcmVjdG9yeSBnaXZlbiBpbiB0aGUg
Y29tbWFuZCBsaW5lIGRvZXMKKyAgbm90IGNvbnRhaW4gYW55IHRlc3RzIG9yIGFzIHJlc3VsdCBv
ZiBhIGNvbW1hbmQgbGluZSBvcHRpb24gZmlsdGVycworICBhbGwgb3V0IGFsbCB0ZXN0cyAoLWsg
Zm9yIGV4YW1wbGUpLgorICBUaGFua3MgRXJpYyBTaWVnZXJtYW4gKGlzc3VlODEyKSBhbmQgQnJ1
bm8gT2xpdmVpcmEgZm9yIHRoZSBQUi4KKworLSBTdW1tYXJ5IGJhciBub3cgaXMgY29sb3JlZCB5
ZWxsb3cgZm9yIHdhcm5pbmcKKyAgc2l0dWF0aW9ucyBzdWNoIGFzOiBhbGwgdGVzdHMgZWl0aGVy
IHdlcmUgc2tpcHBlZCBvciB4cGFzcy94ZmFpbGVkLAorICBvciBubyB0ZXN0cyB3ZXJlIHJ1biBh
dCBhbGwgKHJlbGF0ZWQgdG8gaXNzdWU1MDApLgorICBUaGFua3MgRXJpYyBTaWVnZXJtYW4uCisK
Ky0gTmV3IGBgdGVzdHBhdGhzYGAgaW5pIG9wdGlvbjogbGlzdCBvZiBkaXJlY3RvcmllcyB0byBz
ZWFyY2ggZm9yIHRlc3RzCisgIHdoZW4gZXhlY3V0aW5nIHB5dGVzdCBmcm9tIHRoZSByb290IGRp
cmVjdG9yeS4gVGhpcyBjYW4gYmUgdXNlZAorICB0byBzcGVlZCB1cCB0ZXN0IGNvbGxlY3Rpb24g
d2hlbiBhIHByb2plY3QgaGFzIHdlbGwgc3BlY2lmaWVkIGRpcmVjdG9yaWVzCisgIGZvciB0ZXN0
cywgYmVpbmcgdXN1YWxseSBtb3JlIHByYWN0aWNhbCB0aGFuIGNvbmZpZ3VyaW5nIG5vcmVjdXJz
ZWRpcnMgZm9yCisgIGFsbCBkaXJlY3RvcmllcyB0aGF0IGRvIG5vdCBjb250YWluIHRlc3RzLgor
ICBUaGFua3MgdG8gQWRyaWFuIGZvciBpZGVhICgjNjk0KSBhbmQgQnJ1bm8gT2xpdmVpcmEgZm9y
IHRoZSBQUi4KKworLSBmaXggaXNzdWU3MTM6IEpVbml0IFhNTCByZXBvcnRzIGZvciBkb2N0ZXN0
IGZhaWx1cmVzLgorICBUaGFua3MgUHVueWFzaGxva2EgQmlzd2FsLgorCistIGZpeCBpc3N1ZTk3
MDogaW50ZXJuYWwgcHl0ZXN0IHdhcm5pbmdzIG5vdyBhcHBlYXIgYXMgInB5dGVzdC13YXJuaW5n
cyIgaW4KKyAgdGhlIHRlcm1pbmFsIGluc3RlYWQgb2YgIndhcm5pbmdzIiwgc28gaXQgaXMgY2xl
YXIgZm9yIHVzZXJzIHRoYXQgdGhvc2UKKyAgd2FybmluZ3MgYXJlIGZyb20gcHl0ZXN0IGFuZCBu
b3QgZnJvbSB0aGUgYnVpbHRpbiAid2FybmluZ3MiIG1vZHVsZS4KKyAgVGhhbmtzIEJydW5vIE9s
aXZlaXJhLgorCistIEluY2x1ZGUgc2V0dXAgYW5kIHRlYXJkb3duIGluIGp1bml0eG1sIHRlc3Qg
ZHVyYXRpb25zLgorICBUaGFua3MgSmFubmUgVmFuaGFsYS4KKworLSBmaXggaXNzdWU3MzU6IGFz
c2VydGlvbiBmYWlsdXJlcyBvbiBkZWJ1ZyB2ZXJzaW9ucyBvZiBQeXRob24gMy40KworCistIG5l
dyBvcHRpb24gYGAtLWltcG9ydC1tb2RlYGAgdG8gYWxsb3cgdG8gY2hhbmdlIHRlc3QgbW9kdWxl
IGltcG9ydGluZworICBiZWhhdmlvdXIgdG8gYXBwZW5kIHRvIHN5cy5wYXRoIGluc3RlYWQgb2Yg
cHJlcGVuZGluZy4gIFRoaXMgYmV0dGVyIGFsbG93cworICB0byBydW4gdGVzdCBtb2R1bGVzIGFn
YWluc3QgaW5zdGFsbGVkIHZlcnNpb25zIG9mIGEgcGFja2FnZSBldmVuIGlmIHRoZQorICBwYWNr
YWdlIHVuZGVyIHRlc3QgaGFzIHRoZSBzYW1lIGltcG9ydCByb290LiAgSW4gdGhpcyBleGFtcGxl
OjoKKworICAgICAgICB0ZXN0aW5nL19faW5pdF9fLnB5CisgICAgICAgIHRlc3RpbmcvdGVzdF9w
a2dfdW5kZXJfdGVzdC5weQorICAgICAgICBwa2dfdW5kZXJfdGVzdC8KKworICB0aGUgdGVzdHMg
d2lsbCBydW4gYWdhaW5zdCB0aGUgaW5zdGFsbGVkIHZlcnNpb24KKyAgb2YgcGtnX3VuZGVyX3Rl
c3Qgd2hlbiBgYC0taW1wb3J0LW1vZGU9YXBwZW5kYGAgaXMgdXNlZCB3aGVyZWFzCisgIGJ5IGRl
ZmF1bHQgdGhleSB3b3VsZCBhbHdheXMgcGljayB1cCB0aGUgbG9jYWwgdmVyc2lvbi4gIFRoYW5r
cyBIb2xnZXIgS3Jla2VsLgorCistIHB5dGVzdGVyOiBhZGQgbWV0aG9kIGBgVG1wVGVzdGRpci5k
ZWxldGVfbG9hZGVkX21vZHVsZXMoKWBgLCBhbmQgY2FsbCBpdAorICBmcm9tIGBgaW5saW5lX3J1
bigpYGAgdG8gYWxsb3cgdGVtcG9yYXJ5IG1vZHVsZXMgdG8gYmUgcmVsb2FkZWQuCisgIFRoYW5r
cyBFZHVhcmRvIFNjaGV0dGluby4KKworLSBpbnRlcm5hbGx5IHJlZmFjdG9yIHBsdWdpbm1hbmFn
ZXIgQVBJIGFuZCBjb2RlIHNvIHRoYXQgdGhlcmUKKyAgaXMgYSBjbGVhciBkaXN0aW5jdGlvbiBi
ZXR3ZWVuIGEgcHl0ZXN0LWFnbm9zdGljIHJhdGhlciBzaW1wbGUKKyAgcGx1Z2lubWFuYWdlciBh
bmQgdGhlIFB5dGVzdFBsdWdpbk1hbmFnZXIgd2hpY2ggYWRkcyBhIGxvdCBvZgorICBiZWhhdmlv
dXIsIGFtb25nIGl0IGhhbmRsaW5nIG9mIHRoZSBsb2NhbCBjb25mdGVzdCBmaWxlcy4KKyAgSW4g
dGVybXMgb2YgZG9jdW1lbnRlZCBtZXRob2RzIHRoaXMgaXMgYSBiYWNrd2FyZCBjb21wYXRpYmxl
CisgIGNoYW5nZSBidXQgaXQgbWlnaHQgc3RpbGwgYnJlYWsgM3JkIHBhcnR5IHBsdWdpbnMgd2hp
Y2ggcmVsaWVkIG9uCisgIGRldGFpbHMgbGlrZSBlc3BlY2lhbGx5IHRoZSBwbHVnaW5tYW5hZ2Vy
LmFkZF9zaHV0ZG93bigpIEFQSS4KKyAgVGhhbmtzIEhvbGdlciBLcmVrZWwuCisKKy0gcGx1Z2lu
bWFuYWdlbWVudDogaW50cm9kdWNlIGBgcHl0ZXN0Lmhvb2tpbXBsYGAgYW5kCisgIGBgcHl0ZXN0
Lmhvb2tzcGVjYGAgZGVjb3JhdG9ycyBmb3Igc2V0dGluZyBpbXBsL3NwZWMKKyAgc3BlY2lmaWMg
cGFyYW1ldGVycy4gIFRoaXMgc3Vic3RpdHV0ZXMgdGhlIHByZXZpb3VzCisgIG5vdyBkZXByZWNh
dGVkIHVzZSBvZiBgYHB5dGVzdC5tYXJrYGAgd2hpY2ggaXMgbWVhbnQgdG8KKyAgY29udGFpbiBt
YXJrZXJzIGZvciB0ZXN0IGZ1bmN0aW9ucyBvbmx5LgorCistIHdyaXRlL3JlZmluZSBkb2NzIGZv
ciAid3JpdGluZyBwbHVnaW5zIiB3aGljaCBub3cgaGF2ZSB0aGVpcgorICBvd24gcGFnZSBhbmQg
YXJlIHNlcGFyYXRlIGZyb20gdGhlICJ1c2luZy9pbnN0YWxsaW5nIHBsdWdpbnNgYCBwYWdlLgor
CistIGZpeCBpc3N1ZTczMjogcHJvcGVybHkgdW5yZWdpc3RlciBwbHVnaW5zIGZyb20gYW55IGhv
b2sgY2FsbGluZworICBzaXRlcyBhbGxvd2luZyB0byBoYXZlIHRlbXBvcmFyeSBwbHVnaW5zIGR1
cmluZyB0ZXN0IGV4ZWN1dGlvbi4KKworLSBkZXByZWNhdGUgYW5kIHdhcm4gYWJvdXQgYGBfX211
bHRpY2FsbF9fYGAgYXJndW1lbnQgaW4gaG9vaworICBpbXBsZW1lbnRhdGlvbnMuICBVc2UgdGhl
IGBgaG9va3dyYXBwZXJgYCBtZWNoYW5pc20gaW5zdGVhZCBhbHJlYWR5CisgIGludHJvZHVjZWQg
d2l0aCBweXRlc3QtMi43LgorCistIHNwZWVkIHVwIHB5dGVzdCdzIG93biB0ZXN0IHN1aXRlIGNv
bnNpZGVyYWJseSBieSB1c2luZyBpbnByb2Nlc3MKKyAgdGVzdHMgYnkgZGVmYXVsdCAodGVzdHJ1
biBjYW4gYmUgbW9kaWZpZWQgd2l0aCAtLXJ1bnB5dGVzdD1zdWJwcm9jZXNzCisgIHRvIGNyZWF0
ZSBzdWJwcm9jZXNzZXMgaW4gbWFueSBwbGFjZXMgaW5zdGVhZCkuICBUaGUgbWFpbgorICBBUElz
IHRvIHJ1biBweXRlc3QgaW4gYSB0ZXN0IGlzICJydW5weXRlc3QoKSIgb3IgInJ1bnB5dGVzdF9z
dWJwcm9jZXNzIgorICBhbmQgInJ1bnB5dGVzdF9pbnByb2Nlc3MiIGlmIHlvdSBuZWVkIGEgcGFy
dGljdWxhciB3YXkgb2YgcnVubmluZworICB0aGUgdGVzdC4gIEluIGFsbCBjYXNlcyB5b3UgZ2V0
IGJhY2sgYSBSdW5SZXN1bHQgYnV0IHRoZSBpbnByb2Nlc3MKKyAgb25lIHdpbGwgYWxzbyBoYXZl
IGEgInJlcHJlYyIgYXR0cmlidXRlIHdpdGggdGhlIHJlY29yZGVkIGV2ZW50cy9yZXBvcnRzLgor
CistIGZpeCBtb25rZXlwYXRjaC5zZXRhdHRyKCJ4LnkiLCByYWlzaW5nPUZhbHNlKSB0byBhY3R1
YWxseSBub3QgcmFpc2UKKyAgaWYgInkiIGlzIG5vdCBhIHByZS1leGlzdGluZyBhdHRyaWJ1dGUu
IFRoYW5rcyBGbG9yaWFuIEJydWhpbi4KKworLSBmaXggaXNzdWU3NDE6IG1ha2UgcnVubmluZyBv
dXRwdXQgZnJvbSB0ZXN0ZGlyLnJ1biBjb3B5L3Bhc3RlYWJsZQorICBUaGFua3MgQnJ1bm8gT2xp
dmVpcmEuCisKKy0gYWRkIGEgbmV3IGBgLS1ub2NvbmZ0ZXN0YGAgYXJndW1lbnQgd2hpY2ggaWdu
b3JlcyBhbGwgYGBjb25mdGVzdC5weWBgIGZpbGVzLgorCistIGFkZCBgYGZpbGVgYCBhbmQgYGBs
aW5lYGAgYXR0cmlidXRlcyB0byBKVW5pdC1YTUwgb3V0cHV0LgorCistIGZpeCBpc3N1ZTg5MDog
Y2hhbmdlZCBleHRlbnNpb24gb2YgYWxsIGRvY3VtZW50YXRpb24gZmlsZXMgZnJvbSBgYHR4dGBg
IHRvCisgIGBgcnN0YGAuIFRoYW5rcyB0byBBYmhpamVldCBmb3IgdGhlIFBSLgorCistIGZpeCBp
c3N1ZTcxNDogYWRkIGFiaWxpdHkgdG8gYXBwbHkgaW5kaXJlY3Q9VHJ1ZSBwYXJhbWV0ZXIgb24g
cGFydGljdWxhciBhcmduYW1lcy4KKyAgVGhhbmtzIEVsaXphdmV0YTIzOS4KKworLSBmaXggaXNz
dWU4OTA6IGNoYW5nZWQgZXh0ZW5zaW9uIG9mIGFsbCBkb2N1bWVudGF0aW9uIGZpbGVzIGZyb20g
YGB0eHRgYCB0bworICBgYHJzdGBgLiBUaGFua3MgdG8gQWJoaWplZXQgZm9yIHRoZSBQUi4KKwor
LSBmaXggaXNzdWU5NTc6ICIjIGRvY3Rlc3Q6IFNLSVAiIG9wdGlvbiB3aWxsIG5vdyByZWdpc3Rl
ciBkb2N0ZXN0cyBhcyBTS0lQUEVECisgIHJhdGhlciB0aGFuIFBBU1NFRC4KKyAgVGhhbmtzIFRo
b21hcyBHcmFpbmdlciBmb3IgdGhlIHJlcG9ydCBhbmQgQnJ1bm8gT2xpdmVpcmEgZm9yIHRoZSBQ
Ui4KKworLSBpc3N1ZTk1MTogYWRkIG5ldyByZWNvcmRfeG1sX3Byb3BlcnR5IGZpeHR1cmUsIHRo
YXQgc3VwcG9ydHMgbG9nZ2luZworICBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9uIHhtbCBvdXRw
dXQuIFRoYW5rcyBEYXZpZCBEaWF6IGZvciB0aGUgUFIuCisKKy0gaXNzdWU5NDk6IHBhdGhzIGFm
dGVyIG5vcm1hbCBvcHRpb25zIChmb3IgZXhhbXBsZSBgYC1zYGAsIGBgLXZgYCwgZXRjKSBhcmUg
bm93CisgIHByb3Blcmx5IHVzZWQgdG8gZGlzY292ZXIgYGByb290ZGlyYGAgYW5kIGBgaW5pYGAg
ZmlsZXMuCisgIFRoYW5rcyBQZXRlciBMYXVyaSBmb3IgdGhlIHJlcG9ydCBhbmQgQnJ1bm8gT2xp
dmVpcmEgZm9yIHRoZSBQUi4KKworMi43LjMgKDIwMTUtMDktMTUpCis9PT09PT09PT09PT09PT09
PT0KKworLSBBbGxvdyAnZGV2JywgJ3JjJywgb3Igb3RoZXIgbm9uLWludGVnZXIgdmVyc2lvbiBz
dHJpbmdzIGluIGBgaW1wb3J0b3Jza2lwYGAuCisgIFRoYW5rcyB0byBFcmljIEh1bnNiZXJnZXIg
Zm9yIHRoZSBQUi4KKworLSBmaXggaXNzdWU4NTY6IGNvbnNpZGVyIC0tY29sb3IgcGFyYW1ldGVy
IGluIGFsbCBvdXRwdXRzIChmb3IgZXhhbXBsZQorICAtLWZpeHR1cmVzKS4gVGhhbmtzIEJhcm5l
eSBHYWxlIGZvciB0aGUgcmVwb3J0IGFuZCBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIFBSLgorCist
IGZpeCBpc3N1ZTg1NTogcGFzc2luZyBzdHIgb2JqZWN0cyBhcyBgYHBsdWdpbnNgYCBhcmd1bWVu
dCB0byBweXRlc3QubWFpbgorICBpcyBub3cgaW50ZXJwcmV0ZWQgYXMgYSBtb2R1bGUgbmFtZSB0
byBiZSBpbXBvcnRlZCBhbmQgcmVnaXN0ZXJlZCBhcyBhCisgIHBsdWdpbiwgaW5zdGVhZCBvZiBz
aWxlbnRseSBoYXZpbmcgbm8gZWZmZWN0LgorICBUaGFua3MgeG1vLW9kb28gZm9yIHRoZSByZXBv
cnQgYW5kIEJydW5vIE9saXZlaXJhIGZvciB0aGUgUFIuCisKKy0gZml4IGlzc3VlNzQ0OiBmaXgg
Zm9yIGFzdC5DYWxsIGNoYW5nZXMgaW4gUHl0aG9uIDMuNSsuICBUaGFua3MKKyAgR3VpZG8gdmFu
IFJvc3N1bSwgTWF0dGhpYXMgQnVzc29ubmllciwgU3RlZmFuIFppbW1lcm1hbm4gYW5kCisgIFRo
b21hcyBLbHV5dmVyLgorCistIGZpeCBpc3N1ZTg0MjogYXBwbHlpbmcgbWFya2VycyBpbiBjbGFz
c2VzIG5vIGxvbmdlciBwcm9wYWdhdGUgdGhpcyBtYXJrZXJzCisgIHRvIHN1cGVyY2xhc3NlcyB3
aGljaCBhbHNvIGhhdmUgbWFya2Vycy4KKyAgVGhhbmtzIHhtby1vZG9vIGZvciB0aGUgcmVwb3J0
IGFuZCBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIFBSLgorCistIHByZXNlcnZlIHdhcm5pbmcgZnVu
Y3Rpb25zIGFmdGVyIGNhbGwgdG8gcHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbC4gVGhhbmtzCisgIFBp
ZXRlciBNdWxkZXIgZm9yIFBSLgorCistIGZpeCBpc3N1ZTg1NDogYXV0b3VzZSB5aWVsZF9maXh0
dXJlcyBkZWZpbmVkIGFzIGNsYXNzIG1lbWJlcnMgb2YKKyAgdW5pdHRlc3QuVGVzdENhc2Ugc3Vi
Y2xhc3NlcyBub3cgd29yayBhcyBleHBlY3RlZC4KKyAgVGhhbm5rcyB4bW8tb2RvbyBmb3IgdGhl
IHJlcG9ydCBhbmQgQnJ1bm8gT2xpdmVpcmEgZm9yIHRoZSBQUi4KKworLSBmaXggaXNzdWU4MzM6
IC0tZml4dHVyZXMgbm93IHNob3dzIGFsbCBmaXh0dXJlcyBvZiBjb2xsZWN0ZWQgdGVzdCBmaWxl
cywgaW5zdGVhZCBvZiBqdXN0IHRoZQorICBmaXh0dXJlcyBkZWNsYXJlZCBvbiB0aGUgZmlyc3Qg
b25lLgorICBUaGFua3MgRmxvcmlhbiBCcnVoaW4gZm9yIHJlcG9ydGluZyBhbmQgQnJ1bm8gT2xp
dmVpcmEgZm9yIHRoZSBQUi4KKworLSBmaXggaXNzdWU4NjM6IHNraXBwZWQgdGVzdHMgbm93IHJl
cG9ydCB0aGUgY29ycmVjdCByZWFzb24gd2hlbiBhIHNraXAveGZhaWwKKyAgY29uZGl0aW9uIGlz
IG1ldCB3aGVuIHVzaW5nIG11bHRpcGxlIG1hcmtlcnMuCisgIFRoYW5rcyBSYXBoYWVsIFBpZXJ6
aW5hIGZvciByZXBvcnRpbmcgYW5kIEJydW5vIE9saXZlaXJhIGZvciB0aGUgUFIuCisKKy0gb3B0
aW1pemVkIHRtcGRpciBmaXh0dXJlIGluaXRpYWxpemF0aW9uLCB3aGljaCBzaG91bGQgbWFrZSB0
ZXN0IHNlc3Npb25zCisgIGZhc3RlciAoc3BlY2lhbGx5IHdoZW4gdXNpbmcgcHl0ZXN0LXhkaXN0
KS4gVGhlIG9ubHkgdmlzaWJsZSBlZmZlY3QKKyAgaXMgdGhhdCBub3cgcHl0ZXN0IHVzZXMgYSBz
dWJkaXJlY3RvcnkgaW4gdGhlICRURU1QIGRpcmVjdG9yeSBmb3IgYWxsCisgIGRpcmVjdG9yaWVz
IGNyZWF0ZWQgYnkgdGhpcyBmaXh0dXJlIChkZWZhdWx0cyB0byAkVEVNUC9weXRlc3QtJFVTRVIp
LgorICBUaGFua3MgQnJ1bm8gT2xpdmVpcmEgZm9yIHRoZSBQUi4KKworMi43LjIgKDIwMTUtMDYt
MjMpCis9PT09PT09PT09PT09PT09PT0KKworLSBmaXggaXNzdWU3Njc6IHB5dGVzdC5yYWlzZXMg
dmFsdWUgYXR0cmlidXRlIGRvZXMgbm90IGNvbnRhaW4gdGhlIGV4Y2VwdGlvbgorICBpbnN0YW5j
ZSBvbiBQeXRob24gMi42LiBUaGFua3MgRXJpYyBTaWVnZXJtYW4gZm9yIHByb3ZpZGluZyB0aGUg
dGVzdAorICBjYXNlIGFuZCBCcnVubyBPbGl2ZWlyYSBmb3IgUFIuCisKKy0gQXV0b21hdGljYWxs
eSBjcmVhdGUgZGlyZWN0b3J5IGZvciBqdW5pdHhtbCBhbmQgcmVzdWx0cyBsb2cuCisgIFRoYW5r
cyBBcm9uIEN1cnpvbi4KKworLSBmaXggaXNzdWU3MTM6IEpVbml0IFhNTCByZXBvcnRzIGZvciBk
b2N0ZXN0IGZhaWx1cmVzLgorICBUaGFua3MgUHVueWFzaGxva2EgQmlzd2FsLgorCistIGZpeCBp
c3N1ZTczNTogYXNzZXJ0aW9uIGZhaWx1cmVzIG9uIGRlYnVnIHZlcnNpb25zIG9mIFB5dGhvbiAz
LjQrCisgIFRoYW5rcyBCZW5qYW1pbiBQZXRlcnNvbi4KKworLSBmaXggaXNzdWUxMTQ6IHNraXBp
ZiBtYXJrZXIgcmVwb3J0cyB0byBpbnRlcm5hbCBza2lwcGluZyBwbHVnaW47CisgIFRoYW5rcyBG
bG9yaXMgQnJ1eW5vb2doZSBmb3IgcmVwb3J0aW5nIGFuZCBCcnVubyBPbGl2ZWlyYSBmb3IgdGhl
IFBSLgorCistIGZpeCBpc3N1ZTc0ODogdW5pdHRlc3QuU2tpcFRlc3QgcmVwb3J0cyB0byBpbnRl
cm5hbCBweXRlc3QgdW5pdHRlc3QgcGx1Z2luLgorICBUaGFua3MgVGhvbWFzIERlIFNjaGFtcGhl
bGVpcmUgZm9yIHJlcG9ydGluZyBhbmQgQnJ1bm8gT2xpdmVpcmEgZm9yIHRoZSBQUi4KKworLSBm
aXggaXNzdWU3MTg6IGZhaWxlZCB0byBjcmVhdGUgcmVwcmVzZW50YXRpb24gb2Ygc2V0cyBjb250
YWluaW5nIHVuc29ydGFibGUKKyAgZWxlbWVudHMgaW4gcHl0aG9uIDIuIFRoYW5rcyBFZGlzb24g
R3VzdGF2byBNdWVuei4KKworLSBmaXggaXNzdWU3NTYsIGZpeCBpc3N1ZTc1MiAoYW5kIHNpbWls
YXIgaXNzdWVzKTogZGVwZW5kIG9uIHB5LTEuNC4yOQorICB3aGljaCBoYXMgYSByZWZpbmVkIGFs
Z29yaXRobSBmb3IgdHJhY2ViYWNrIGdlbmVyYXRpb24uCisKKworMi43LjEgKDIwMTUtMDUtMTkp
Cis9PT09PT09PT09PT09PT09PT0KKworLSBmaXggaXNzdWU3MzE6IGRvIG5vdCBnZXQgY29uZnVz
ZWQgYnkgdGhlIGJyYWNlcyB3aGljaCBtYXkgYmUgcHJlc2VudAorICBhbmQgdW5iYWxhbmNlZCBp
biBhbiBvYmplY3QncyByZXByIHdoaWxlIGNvbGxhcHNpbmcgRmFsc2UKKyAgZXhwbGFuYXRpb25z
LiAgVGhhbmtzIENhcmwgTWV5ZXIgZm9yIHRoZSByZXBvcnQgYW5kIHRlc3QgY2FzZS4KKworLSBm
aXggaXNzdWU1NTM6IHByb3Blcmx5IGhhbmRsaW5nIGluc3BlY3QuZ2V0c291cmNlbGluZXMgZmFp
bHVyZXMgaW4KKyAgRml4dHVyZUxvb2t1cEVycm9yIHdoaWNoIHdvdWxkIGxlYWQgdG8gYW4gaW50
ZXJuYWwgZXJyb3IsCisgIG9iZnVzY2F0aW5nIHRoZSBvcmlnaW5hbCBwcm9ibGVtLiBUaGFua3Mg
dGFsbGpvc2ggZm9yIGluaXRpYWwKKyAgZGlhZ25vc2UvcGF0Y2ggYW5kIEJydW5vIE9saXZlaXJh
IGZvciBmaW5hbCBwYXRjaC4KKworLSBmaXggaXNzdWU2NjA6IHByb3Blcmx5IHJlcG9ydCBzY29w
ZS1taXNtYXRjaC1hY2Nlc3MgZXJyb3JzCisgIGluZGVwZW5kZW50bHkgZnJvbSBvcmRlcmluZyBv
ZiBmaXh0dXJlIGFyZ3VtZW50cy4gIEFsc28KKyAgYXZvaWQgdGhlIHB5dGVzdCBpbnRlcm5hbCB0
cmFjZWJhY2sgd2hpY2ggZG9lcyBub3QgcHJvdmlkZQorICBpbmZvcm1hdGlvbiB0byB0aGUgdXNl
ci4gVGhhbmtzIEhvbGdlciBLcmVrZWwuCisKKy0gc3RyZWFtbGluZWQgYW5kIGRvY3VtZW50ZWQg
cmVsZWFzZSBwcm9jZXNzLiAgQWxzbyBhbGwgdmVyc2lvbnMKKyAgKGluIHNldHVwLnB5IGFuZCBk
b2N1bWVudGF0aW9uIGdlbmVyYXRpb24pIGFyZSBub3cgcmVhZAorICBmcm9tIF9weXRlc3QvX19p
bml0X18ucHkuIFRoYW5rcyBIb2xnZXIgS3Jla2VsLgorCistIGZpeGVkIGRvY3MgdG8gcmVtb3Zl
IHRoZSBub3Rpb24gdGhhdCB5aWVsZC1maXh0dXJlcyBhcmUgZXhwZXJpbWVudGFsLgorICBUaGV5
IGFyZSBoZXJlIHRvIHN0YXkgOikgIFRoYW5rcyBCcnVubyBPbGl2ZWlyYS4KKworLSBTdXBwb3J0
IGJ1aWxkaW5nIHdoZWVscyBieSB1c2luZyBlbnZpcm9ubWVudCBtYXJrZXJzIGZvciB0aGUKKyAg
cmVxdWlyZW1lbnRzLiAgVGhhbmtzIElvbmVsIE1hcmllcyBDcmlzdGlhbi4KKworLSBmaXhlZCBy
ZWdyZXNzaW9uIHRvIDIuNi40IHdoaWNoIHN1cmZhY2VkIGUuZy4gaW4gbG9zdCBzdGRvdXQgY2Fw
dHVyZSBwcmludGluZworICB3aGVuIHRlc3RzIHJhaXNlZCBTeXN0ZW1FeGl0LiBUaGFua3MgSG9s
Z2VyIEtyZWtlbC4KKworLSByZWludHJvZHVjZWQgX3B5dGVzdCBmaXh0dXJlIG9mIHRoZSBweXRl
c3RlciBwbHVnaW4gd2hpY2ggaXMgdXNlZAorICBhdCBsZWFzdCBieSBweXRlc3QteGRpc3QuCisK
KzIuNy4wICgyMDE1LTAzLTI2KQorPT09PT09PT09PT09PT09PT09CisKKy0gZml4IGlzc3VlNDM1
OiBtYWtlIHJlbG9hZCgpIHdvcmsgd2hlbiBhc3NlcnQgcmV3cml0aW5nIGlzIGFjdGl2ZS4KKyAg
VGhhbmtzIERhbmllbCBIYWhsZXIuCisKKy0gZml4IGlzc3VlNjE2OiBjb25mdGVzdC5weSBmaWxl
cyBhbmQgdGhlaXIgY29udGFpbmVkIGZpeHV0cmVzIGFyZSBub3cKKyAgcHJvcGVybHkgY29uc2lk
ZXJlZCBmb3IgdmlzaWJpbGl0eSwgaW5kZXBlbmRlbnRseSBmcm9tIHRoZSBleGFjdAorICBjdXJy
ZW50IHdvcmtpbmcgZGlyZWN0b3J5IGFuZCB0ZXN0IGFyZ3VtZW50cyB0aGF0IGFyZSB1c2VkLgor
ICBNYW55IHRoYW5rcyB0byBFcmljIFNpZWdlcm1hbiBhbmQgaGlzIFBSMjM1IHdoaWNoIGNvbnRh
aW5zCisgIHN5c3RlbWF0aWMgdGVzdHMgZm9yIGNvbmZ0ZXN0IHZpc2liaWxpdHkgYW5kIG5vdyBw
YXNzZXMuCisgIFRoaXMgY2hhbmdlIGFsc28gaW50cm9kdWNlcyB0aGUgY29uY2VwdCBvZiBhIGBg
cm9vdGRpcmBgIHdoaWNoCisgIGlzIHByaW50ZWQgYXMgYSBuZXcgcHl0ZXN0IGhlYWRlciBhbmQg
ZG9jdW1lbnRlZCBpbiB0aGUgcHl0ZXN0CisgIGN1c3RvbWl6ZSB3ZWIgcGFnZS4KKworLSBjaGFu
Z2UgcmVwb3J0aW5nIG9mICJkaXZlcnRlZCIgdGVzdHMsIGkuZS4gdGVzdHMgdGhhdCBhcmUgY29s
bGVjdGVkCisgIGluIG9uZSBmaWxlIGJ1dCBhY3R1YWxseSBjb21lIGZyb20gYW5vdGhlciAoZS5n
LiB3aGVuIHRlc3RzIGluIGEgdGVzdCBjbGFzcworICBjb21lIGZyb20gYSBiYXNlIGNsYXNzIGlu
IGEgZGlmZmVyZW50IGZpbGUpLiAgV2Ugbm93IHNob3cgdGhlIG5vZGVpZAorICBhbmQgaW5kaWNh
dGUgdmlhIGEgcG9zdGZpeCB0aGUgb3RoZXIgZmlsZS4KKworLSBhZGQgYWJpbGl0eSB0byBzZXQg
Y29tbWFuZCBsaW5lIG9wdGlvbnMgYnkgZW52aXJvbm1lbnQgdmFyaWFibGUgUFlURVNUX0FERE9Q
VFMuCisKKy0gYWRkZWQgZG9jdW1lbnRhdGlvbiBvbiB0aGUgbmV3IHB5dGVzdC1kZXYgdGVhbXMg
b24gYml0YnVja2V0IGFuZAorICBnaXRodWIuICBTZWUgaHR0cHM6Ly9weXRlc3Qub3JnL2xhdGVz
dC9jb250cmlidXRpbmcuaHRtbCAuCisgIFRoYW5rcyB0byBBbmF0b2x5IGZvciBwdXNoaW5nIGFu
ZCBpbml0aWFsIHdvcmsgb24gdGhpcy4KKworLSBmaXggaXNzdWU2NTA6IG5ldyBvcHRpb24gYGAt
LWRvY3R0ZXN0LWlnbm9yZS1pbXBvcnQtZXJyb3JzYGAgd2hpY2gKKyAgd2lsbCB0dXJuIGltcG9y
dCBlcnJvcnMgaW4gZG9jdGVzdHMgaW50byBza2lwcy4gIFRoYW5rcyBDaGFybGVzIENsb3VkCisg
IGZvciB0aGUgY29tcGxldGUgUFIuCisKKy0gZml4IGlzc3VlNjU1OiB3b3JrIGFyb3VuZCBkaWZm
ZXJlbnQgd2F5cyB0aGF0IGNhdXNlIHB5dGhvbjIvMworICB0byBsZWFrIHN5cy5leGNfaW5mbyBp
bnRvIGZpeHR1cmVzL3Rlc3RzIGNhdXNpbmcgZmFpbHVyZXMgaW4gM3JkIHBhcnR5IGNvZGUKKwor
LSBmaXggaXNzdWU2MTU6IGFzc2VydGlvbiByZXdyaXRpbmcgZGlkIG5vdCBjb3JyZWN0bHkgZXNj
YXBlICUgc2lnbnMKKyAgd2hlbiBmb3JtYXR0aW5nIGJvb2xlYW4gb3BlcmF0aW9ucywgd2hpY2gg
dHJpcHBlZCBvdmVyIG1peGluZworICBib29sZWFucyB3aXRoIG1vZHVsbyBvcGVyYXRvcnMuICBU
aGFua3MgdG8gVG9tIFZpbmVyIGZvciB0aGUgcmVwb3J0LAorICB0cmlhZ2luZyBhbmQgZml4Lgor
CistIGltcGxlbWVudCBpc3N1ZTM1MTogYWRkIGFiaWxpdHkgdG8gc3BlY2lmeSBwYXJhbWV0cml6
ZSBpZHMgYXMgYSBjYWxsYWJsZQorICB0byBnZW5lcmF0ZSBjdXN0b20gdGVzdCBpZHMuICBUaGFu
a3MgQnJpYW5uYSBMYXVnaGVyIGZvciB0aGUgaWRlYSBhbmQKKyAgaW1wbGVtZW50YXRpb24uCisK
Ky0gaW50cm9kdWNlIGFuZCBkb2N1bWVudCBuZXcgaG9va3dyYXBwZXIgbWVjaGFuaXNtIHVzZWZ1
bCBmb3IgcGx1Z2lucworICB3aGljaCB3YW50IHRvIHdyYXAgdGhlIGV4ZWN1dGlvbiBvZiBjZXJ0
YWluIGhvb2tzIGZvciB0aGVpciBwdXJwb3Nlcy4KKyAgVGhpcyBzdXBlcnNlZGVzIHRoZSB1bmRv
Y3VtZW50ZWQgYGBfX211bHRpY2FsbF9fYGAgcHJvdG9jb2wgd2hpY2gKKyAgcHl0ZXN0IGl0c2Vs
ZiBhbmQgc29tZSBleHRlcm5hbCBwbHVnaW5zIHVzZS4gIE5vdGUgdGhhdCBweXRlc3QtMi44Cisg
IGlzIHNjaGVkdWxlZCB0byBkcm9wIHN1cHBvcnRpbmcgdGhlIG9sZCBgYF9fbXVsdGljYWxsX19g
YAorICBhbmQgb25seSBzdXBwb3J0IHRoZSBob29rd3JhcHBlciBwcm90b2NvbC4KKworLSBtYWpv
cmx5IHNwZWVkIHVwIGludm9jYXRpb24gb2YgcGx1Z2luIGhvb2tzCisKKy0gdXNlIGhvb2t3cmFw
cGVyIG1lY2hhbmlzbSBpbiBidWlsdGluIHB5dGVzdCBwbHVnaW5zLgorCistIGFkZCBhIGRvY3Rl
c3QgaW5pIG9wdGlvbiBmb3IgZG9jdGVzdCBmbGFncywgdGhhbmtzIEhvbGdlciBQZXRlcnMuCisK
Ky0gYWRkIG5vdGUgdG8gZG9jcyB0aGF0IGlmIHlvdSB3YW50IHRvIG1hcmsgYSBwYXJhbWV0ZXIg
YW5kIHRoZQorICBwYXJhbWV0ZXIgaXMgYSBjYWxsYWJsZSwgeW91IGFsc28gbmVlZCB0byBwYXNz
IGluIGEgcmVhc29uIHRvIGRpc2FtYmlndWF0ZQorICBpdCBmcm9tIHRoZSAiZGVjb3JhdG9yIiBj
YXNlLiAgVGhhbmtzIFRvbSBWaW5lci4KKworLSAicHl0aG9uX2NsYXNzZXMiIGFuZCAicHl0aG9u
X2Z1bmN0aW9ucyIgb3B0aW9ucyBub3cgc3VwcG9ydCBnbG9iLXBhdHRlcm5zCisgIGZvciB0ZXN0
IGRpc2NvdmVyeSwgYXMgZGlzY3Vzc2VkIGluIGlzc3VlNjAwLiBUaGFua3MgTGRpYXJ5IFRyYW5z
bGF0aW9ucy4KKworLSBhbGxvdyB0byBvdmVycmlkZSBwYXJhbWV0cml6ZWQgZml4dHVyZXMgd2l0
aCBub24tcGFyYW1ldHJpemVkIG9uZXMgYW5kIHZpY2UgdmVyc2EgKGJ1YmVua29mZikuCisKKy0g
Zml4IGlzc3VlNDYzOiByYWlzZSBzcGVjaWZpYyBlcnJvciBmb3IgJ3BhcmFtZXRlcml6ZScgbWlz
c3BlbGxpbmcgKHBmY3RkYXllbGlzZSkuCisKKy0gT24gZmFpbHVyZSwgdGhlIGBgc3lzLmxhc3Rf
dmFsdWVgYCwgYGBzeXMubGFzdF90eXBlYGAgYW5kCisgIGBgc3lzLmxhc3RfdHJhY2ViYWNrYGAg
YXJlIHNldCwgc28gdGhhdCBhIHVzZXIgY2FuIGluc3BlY3QgdGhlIGVycm9yCisgIHZpYSBwb3N0
bW9ydGVtIGRlYnVnZ2luZyAoYWxtYXJrbGVpbikuCisKKzIuNi40ICgyMDE0LTEwLTI0KQorPT09
PT09PT09PT09PT09PT09CisKKy0gSW1wcm92ZSBhc3NlcnRpb24gZmFpbHVyZSByZXBvcnRpbmcg
b24gaXRlcmFibGVzLCBieSB1c2luZyBuZGlmZiBhbmQKKyAgcHByaW50LgorCistIHJlbW92ZWQg
b3V0ZGF0ZWQgamFwYW5lc2UgZG9jcyBmcm9tIHNvdXJjZSB0cmVlLgorCistIGRvY3MgZm9yICJw
eXRlc3RfYWRkaG9va3MiIGhvb2suICBUaGFua3MgQnJ1bm8gT2xpdmVpcmEuCisKKy0gdXBkYXRl
ZCBwbHVnaW4gaW5kZXggZG9jcy4gIFRoYW5rcyBCcnVubyBPbGl2ZWlyYS4KKworLSBmaXggaXNz
dWU1NTc6IHdpdGggIi1rIiB3ZSBvbmx5IGFsbG93IHRoZSBvbGQgc3R5bGUgIi0iIGZvciBuZWdh
dGlvbgorICBhdCB0aGUgYmVnaW5uaW5nIG9mIHN0cmluZ3MgYW5kIGV2ZW4gdGhhdCBpcyBkZXBy
ZWNhdGVkLiAgVXNlICJub3QiIGluc3RlYWQuCisgIFRoaXMgc2hvdWxkIGFsbG93IHRvIHBpY2sg
cGFyYW1ldHJpemVkIHRlc3RzIHdoZXJlICItIiBhcHBlYXJlZCBpbiB0aGUgcGFyYW1ldGVyLgor
CistIGZpeCBpc3N1ZTYwNDogRXNjYXBlICUgY2hhcmFjdGVyIGluIHRoZSBhc3NlcnRpb24gbWVz
c2FnZS4KKworLSBmaXggaXNzdWU2MjA6IGFkZCBleHBsYW5hdGlvbiBpbiB0aGUgLS1nZW5zY3Jp
cHQgdGFyZ2V0IGFib3V0IHdoYXQKKyAgdGhlIGJpbmFyeSBibG9iIG1lYW5zLiBUaGFua3MgRGlu
dSBHaGVybWFuLgorCistIGZpeCBpc3N1ZTYxNDogZml4ZWQgcGFzdGViaW4gc3VwcG9ydC4KKwor
CistIGZpeCBpc3N1ZTYyMDogYWRkIGV4cGxhbmF0aW9uIGluIHRoZSAtLWdlbnNjcmlwdCB0YXJn
ZXQgYWJvdXQgd2hhdAorICB0aGUgYmluYXJ5IGJsb2IgbWVhbnMuIFRoYW5rcyBEaW51IEdoZXJt
YW4uCisKKy0gZml4IGlzc3VlNjE0OiBmaXhlZCBwYXN0ZWJpbiBzdXBwb3J0LgorCisyLjYuMyAo
MjAxNC0wOS0yNCkKKz09PT09PT09PT09PT09PT09PQorCistIGZpeCBpc3N1ZTU3NTogeHVuaXQt
eG1sIHdhcyByZXBvcnRpbmcgY29sbGVjdGlvbiBlcnJvcnMgYXMgZmFpbHVyZXMKKyAgaW5zdGVh
ZCBvZiBlcnJvcnMsIHRoYW5rcyBPbGVnIFNpbnlhdnNraXkuCisKKy0gZml4IGlzc3VlNTgyOiBm
aXggc2V0dXB0b29scyBleGFtcGxlLCB0aGFua3MgTGFzemxvIFBhcHAgYW5kIFJvbm55CisgIFBm
YW5uc2NobWlkdC4KKworLSBGaXggaW5maW5pdGUgcmVjdXJzaW9uIGJ1ZyB3aGVuIHBpY2tsaW5n
IGNhcHR1cmUuRW5jb2RlZEZpbGUsIHRoYW5rcworICBVd2UgU2NobWl0dC4KKworLSBmaXggaXNz
dWU1ODk6IGZpeCBiYWQgaW50ZXJhY3Rpb24gd2l0aCBudW1weSBhbmQgb3RoZXJzIHdoZW4gc2hv
d2luZworICBleGNlcHRpb25zLiAgQ2hlY2sgZm9yIHByZWNpc2UgIm1heGltdW0gcmVjdXJzaW9u
IGRlcHRoIGV4Y2VlZCIgZXhjZXB0aW9uCisgIGluc3RlYWQgb2YgcHJlc3VtaW5nIGFueSBSdW50
aW1lRXJyb3IgaXMgdGhhdCBvbmUgKGltcGxlbWVudGVkIGluIHB5CisgIGRlcCkuICBUaGFua3Mg
Q2hhcmxlcyBDbG91ZCBmb3IgYW5hbHlzaW5nIHRoZSBpc3N1ZS4KKworLSBmaXggY29uZnRlc3Qg
cmVsYXRlZCBmaXh0dXJlIHZpc2liaWxpdHkgaXNzdWU6IHdoZW4gcnVubmluZyB3aXRoIGEKKyAg
Q1dEIG91dHNpZGUgb2YgYSB0ZXN0IHBhY2thZ2UgcHl0ZXN0IHdvdWxkIGdldCBmaXh0dXJlIGRp
c2NvdmVyeSB3cm9uZy4KKyAgVGhhbmtzIHRvIFdvbGZnYW5nIFNjaG5lcnJpbmcgZm9yIGZpZ3Vy
aW5nIG91dCBhIHJlcHJvZHVjaWJsZSBleGFtcGxlLgorCistIEludHJvZHVjZSBweXRlc3RfZW50
ZXJfcGRiIGhvb2sgKG5lZWRlZCBlLmcuIGJ5IHB5dGVzdF90aW1lb3V0IHRvIGNhbmNlbCB0aGUK
KyAgdGltZW91dCB3aGVuIGludGVyYWN0aXZlbHkgZW50ZXJpbmcgcGRiKS4gIFRoYW5rcyBXb2xm
Z2FuZyBTY2huZXJyaW5nLgorCistIGNoZWNrIHhmYWlsL3NraXAgYWxzbyB3aXRoIG5vbi1weXRo
b24gZnVuY3Rpb24gdGVzdCBpdGVtcy4gVGhhbmtzCisgIEZsb3JpcyBCcnV5bm9vZ2hlLgorCisy
LjYuMiAoMjAxNC0wOS0wNSkKKz09PT09PT09PT09PT09PT09PQorCistIEFkZGVkIGZ1bmN0aW9u
IHB5dGVzdC5mcmVlemVfaW5jbHVkZXMoKSwgd2hpY2ggbWFrZXMgaXQgZWFzeSB0byBlbWJlZAor
ICBweXRlc3QgaW50byBleGVjdXRhYmxlcyB1c2luZyB0b29scyBsaWtlIGN4X2ZyZWV6ZS4KKyAg
U2VlIGRvY3MgZm9yIGV4YW1wbGVzIGFuZCByYXRpb25hbGUuIFRoYW5rcyBCcnVubyBPbGl2ZWly
YS4KKworLSBJbXByb3ZlIGFzc2VydGlvbiByZXdyaXRpbmcgY2FjaGUgaW52YWxpZGF0aW9uIHBy
ZWNpc2lvbi4KKworLSBmaXhlZCBpc3N1ZTU2MTogYWRhcHQgYXV0b3VzZSBmaXh0dXJlIGV4YW1w
bGUgZm9yIHB5dGhvbjMuCisKKy0gZml4ZWQgaXNzdWU0NTM6IGFzc2VydGlvbiByZXdyaXRpbmcg
aXNzdWUgd2l0aCBfX3JlcHJfXyBjb250YWluaW5nCisgICJcbnsiLCAiXG59IiBhbmQgIlxufiIu
CisKKy0gZml4IGlzc3VlNTYwOiBjb3JyZWN0bHkgZGlzcGxheSBjb2RlIGlmIGFuICJlbHNlOiIg
b3IgImZpbmFsbHk6IiBpcworICBmb2xsb3dlZCBieSBzdGF0ZW1lbnRzIG9uIHRoZSBzYW1lIGxp
bmUuCisKKy0gRml4IGV4YW1wbGUgaW4gbW9ua2V5cGF0Y2ggZG9jdW1lbnRhdGlvbiwgdGhhbmtz
IHQtOGNoLgorCistIGZpeCBpc3N1ZTU3MjogY29ycmVjdCB0bXBkaXIgZG9jIGV4YW1wbGUgZm9y
IHB5dGhvbjMuCisKKy0gRG8gbm90IG1hcmsgYXMgdW5pdmVyc2FsIHdoZWVsIGJlY2F1c2UgUHl0
aG9uIDIuNiBpcyBkaWZmZXJlbnQgZnJvbQorICBvdGhlciBidWlsZHMgZHVlIHRvIHRoZSBleHRy
YSBhcmdwYXJzZSBkZXBlbmRlbmN5LiAgRml4ZXMgaXNzdWU1NjYuCisgIFRoYW5rcyBzb250ZWsu
CisKKy0gSW1wbGVtZW50IGlzc3VlNTQ5OiB1c2VyLXByb3ZpZGVkIGFzc2VydGlvbiBtZXNzYWdl
cyBub3cgbm8gbG9uZ2VyCisgIHJlcGxhY2UgdGhlIHB5LnRlc3QgaW50cm9zcGVjdGlvbiBtZXNz
YWdlIGJ1dCBhcmUgc2hvd24gaW4gYWRkaXRpb24KKyAgdG8gdGhlbS4KKworMi42LjEgKDIwMTQt
MDgtMDcpCis9PT09PT09PT09PT09PT09PT0KKworLSBObyBsb25nZXIgc2hvdyBsaW5lIG51bWJl
cnMgaW4gdGhlIC0tdmVyYm9zZSBvdXRwdXQsIHRoZSBvdXRwdXQgaXMgbm93CisgIHB1cmVseSB0
aGUgbm9kZWlkLiAgVGhlIGxpbmUgbnVtYmVyIGlzIHN0aWxsIHNob3duIGluIGZhaWx1cmUgcmVw
b3J0cy4KKyAgVGhhbmtzIEZsb3JpcyBCcnV5bm9vZ2hlLgorCistIGZpeCBpc3N1ZTQzNyB3aGVy
ZSBhc3NlcnRpb24gcmV3cml0aW5nIGNvdWxkIGNhdXNlIHB5dGVzdC14ZGlzdCBzbGF2ZXMKKyAg
dG8gY29sbGVjdCBkaWZmZXJlbnQgdGVzdHMuIFRoYW5rcyBCcnVubyBPbGl2ZWlyYS4KKworLSBm
aXggaXNzdWU1NTU6IGFkZCAiZXJyb3JzIiBhdHRyaWJ1dGUgdG8gY2FwdHVyZS1zdHJlYW1zIHRv
IHNhdGlzZnkKKyAgc29tZSBkaXN0dXRpbHMgYW5kIHBvc3NpYmx5IG90aGVyIGNvZGUgYWNjZXNz
aW5nIHN5cy5zdGRvdXQuZXJyb3JzLgorCistIGZpeCBpc3N1ZTU0NyBjYXBzeXMvY2FwZmQgYWxz
byB3b3JrIHdoZW4gb3V0cHV0IGNhcHR1cmluZyAoIi1zIikgaXMgZGlzYWJsZWQuCisKKy0gYWRk
cmVzcyBpc3N1ZTE3MDogYWxsb3cgcHl0ZXN0Lm1hcmsueGZhaWwoLi4uKSB0byBzcGVjaWZ5IGV4
cGVjdGVkIGV4Y2VwdGlvbnMgdmlhCisgIGFuIG9wdGlvbmFsICJyYWlzZXM9RVhDIiBhcmd1bWVu
dCB3aGVyZSBFWEMgY2FuIGJlIGEgc2luZ2xlIGV4Y2VwdGlvbgorICBvciBhIHR1cGxlIG9mIGV4
Y2VwdGlvbiBjbGFzc2VzLiAgVGhhbmtzIERhdmlkIE1vaHIgZm9yIHRoZSBjb21wbGV0ZQorICBQ
Ui4KKworLSBmaXggaW50ZWdyYXRpb24gb2YgcHl0ZXN0IHdpdGggdW5pdHRlc3QubW9jay5wYXRj
aCBkZWNvcmF0b3Igd2hlbgorICBpdCB1c2VzIHRoZSAibmV3IiBhcmd1bWVudC4gIFRoYW5rcyBO
aWNvbGFzIERlbGFieSBmb3IgdGVzdCBhbmQgUFIuCisKKy0gZml4IGlzc3VlIHdpdGggZGV0ZWN0
aW5nIGNvbmZ0ZXN0IGZpbGVzIGlmIHRoZSBhcmd1bWVudHMgY29udGFpbgorICAiOjoiIG5vZGUg
aWQgc3BlY2lmaWNhdGlvbnMgKGNvcHkgcGFzdGVkIGZyb20gIi12IiBvdXRwdXQpCisKKy0gZml4
IGlzc3VlNTQ0IGJ5IG9ubHkgcmVtb3ZpbmcgIkBOVU0iIGF0IHRoZSBlbmQgb2YgIjo6IiBzZXBh
cmF0ZWQgcGFydHMKKyAgYW5kIGlmIHRoZSBwYXJ0IGhhcyBhbiAiLnB5IiBleHRlbnNpb24KKwor
LSBkb24ndCB1c2UgcHkuc3RkIGltcG9ydCBoZWxwZXIsIHJhdGhlciBpbXBvcnQgdGhpbmdzIGRp
cmVjdGx5LgorICBUaGFua3MgQnJ1bm8gT2xpdmVpcmEuCisKKzIuNgorPT09CisKKy0gQ2FjaGUg
ZXhjZXB0aW9ucyBmcm9tIGZpeHR1cmVzIGFjY29yZGluZyB0byB0aGVpciBzY29wZSAoaXNzdWUg
NDY3KS4KKworLSBmaXggaXNzdWU1Mzc6IEF2b2lkIGltcG9ydGluZyBvbGQgYXNzZXJ0aW9uIHJl
aW50ZXJwcmV0YXRpb24gY29kZSBieSBkZWZhdWx0LgorCistIGZpeCBpc3N1ZTM2NDogc2hvcnRl
biBhbmQgZW5oYW5jZSB0cmFjZWJhY2tzIHJlcHJlc2VudGF0aW9uIGJ5IGRlZmF1bHQuCisgIFRo
ZSBuZXcgIi0tdGI9YXV0byIgb3B0aW9uIChkZWZhdWx0KSB3aWxsIG9ubHkgZGlzcGxheSBsb25n
IHRyYWNlYmFja3MKKyAgZm9yIHRoZSBmaXJzdCBhbmQgbGFzdCBlbnRyeS4gIFlvdSBjYW4gZ2V0
IHRoZSBvbGQgYmVoYXZpb3VyIG9mIHByaW50aW5nCisgIGFsbCBlbnRyaWVzIGFzIGxvbmcgZW50
cmllcyB3aXRoICItLXRiPWxvbmciLiAgQWxzbyBzaG9ydCBlbnRyaWVzIGJ5CisgIGRlZmF1bHQg
YXJlIG5vdyBwcmludGVkIHZlcnkgc2ltaWxhcmx5IHRvICItLXRiPW5hdGl2ZSIgb25lcy4KKwor
LSBmaXggaXNzdWU1MTQ6IHRlYWNoIGFzc2VydGlvbiByZWludGVycHJldGF0aW9uIGFib3V0IHBy
aXZhdGUgY2xhc3MgYXR0cmlidXRlcworCistIGNoYW5nZSAtdiBvdXRwdXQgdG8gaW5jbHVkZSBm
dWxsIG5vZGUgSURzIG9mIHRlc3RzLiAgVXNlcnMgY2FuIGNvcHkKKyAgYSBub2RlIElEIGZyb20g
YSB0ZXN0IHJ1biwgaW5jbHVkaW5nIGxpbmUgbnVtYmVyLCBhbmQgdXNlIGl0IGFzIGEKKyAgcG9z
aXRpb25hbCBhcmd1bWVudCBpbiBvcmRlciB0byBydW4gb25seSBhIHNpbmdsZSB0ZXN0LgorCist
IGZpeCBpc3N1ZSA0NzU6IGZhaWwgZWFybHkgYW5kIGNvbXByZWhlbnNpYmxlIGlmIGNhbGxpbmcK
KyAgcHl0ZXN0LnJhaXNlcyB3aXRoIHdyb25nIGV4Y2VwdGlvbiB0eXBlLgorCistIGZpeCBpc3N1
ZTUxNjogdGVsbCBpbiBnZXR0aW5nLXN0YXJ0ZWQgYWJvdXQgY3VycmVudCBkZXBlbmRlbmNpZXMu
CisKKy0gY2xlYW51cCBzZXR1cC5weSBhIGJpdCBhbmQgc3BlY2lmeSBzdXBwb3J0ZWQgdmVyc2lv
bnMuIFRoYW5rcyBKdXJrbworICBHb3Nwb2RuZXRpYyBmb3IgdGhlIFBSLgorCistIGNoYW5nZSBY
UEFTUyBjb2xvdXIgdG8geWVsbG93IHJhdGhlciB0aGVuIHJlZCB3aGVuIHRlc3RzIGFyZSBydW4K
KyAgd2l0aCAtdi4KKworLSBmaXggaXNzdWU0NzM6IHdvcmsgYXJvdW5kIG1vY2sgcHV0dGluZyBh
biB1bmJvdW5kIG1ldGhvZCBpbnRvIGEgY2xhc3MKKyAgZGljdCB3aGVuIGRvdWJsZS1wYXRjaGlu
Zy4KKworLSBmaXggaXNzdWU0OTg6IGlmIGEgZml4dHVyZSBmaW5hbGl6ZXIgZmFpbHMsIG1ha2Ug
c3VyZSB0aGF0CisgIHRoZSBmaXh0dXJlIGlzIHN0aWxsIGludmFsaWRhdGVkLgorCistIGZpeCBp
c3N1ZTQ1MzogdGhlIHJlc3VsdCBvZiB0aGUgcHl0ZXN0X2Fzc2VydHJlcHJfY29tcGFyZSBob29r
IG5vdyBnZXRzCisgIGl0J3MgbmV3bGluZXMgZXNjYXBlZCBzbyB0aGF0IGZvcm1hdF9leGNlcHRp
b24gZG9lcyBub3QgYmxvdyB1cC4KKworLSBpbnRlcm5hbCBuZXcgd2FybmluZyBzeXN0ZW06IHB5
dGVzdCB3aWxsIG5vdyBwcm9kdWNlIHdhcm5pbmdzIHdoZW4KKyAgaXQgZGV0ZWN0cyBvZGRpdGll
cyBpbiB5b3VyIHRlc3QgY29sbGVjdGlvbiBvciBleGVjdXRpb24uCisgIFdhcm5pbmdzIGFyZSB1
bHRpbWF0ZWx5IHNlbnQgdG8gYSBuZXcgcHl0ZXN0X2xvZ3dhcm5pbmcgaG9vayB3aGljaCBpcwor
ICBjdXJyZW50bHkgb25seSBpbXBsZW1lbnRlZCBieSB0aGUgdGVybWluYWwgcGx1Z2luIHdoaWNo
IGRpc3BsYXlzCisgIHdhcm5pbmdzIGluIHRoZSBzdW1tYXJ5IGxpbmUgYW5kIHNob3dzIG1vcmUg
ZGV0YWlscyB3aGVuIC1ydyAocmVwb3J0IG9uCisgIHdhcm5pbmdzKSBpcyBzcGVjaWZpZWQuCisK
Ky0gY2hhbmdlIHNraXBzIGludG8gd2FybmluZ3MgZm9yIHRlc3QgY2xhc3NlcyB3aXRoIGFuIF9f
aW5pdF9fIGFuZAorICBjYWxsYWJsZXMgaW4gdGVzdCBtb2R1bGVzIHdoaWNoIGxvb2sgbGlrZSBh
IHRlc3QgYnV0IGFyZSBub3QgZnVuY3Rpb25zLgorCistIGZpeCBpc3N1ZTQzNjogaW1wcm92ZWQg
ZmluZGluZyBvZiBpbml0aWFsIGNvbmZ0ZXN0IGZpbGVzIGZyb20gY29tbWFuZAorICBsaW5lIGFy
Z3VtZW50cyBieSB1c2luZyB0aGUgcmVzdWx0IG9mIHBhcnNlX2tub3duX2FyZ3MgcmF0aGVyIHRo
YW4KKyAgdGhlIHByZXZpb3VzIGZsYWt5IGhldXJpc3RpY3MuICBUaGFua3MgTWFyYyBBYnJhbW93
aXR6IGZvciB0ZXN0cworICBhbmQgaW5pdGlhbCBmaXhpbmcgYXBwcm9hY2hlcyBpbiB0aGlzIGFy
ZWEuCisKKy0gZml4IGlzc3VlICM0Nzk6IHByb3Blcmx5IGhhbmRsZSBub3NlL3VuaXR0ZXN0KDIp
IFNraXBUZXN0IGV4Y2VwdGlvbnMKKyAgZHVyaW5nIGNvbGxlY3Rpb24vbG9hZGluZyBvZiB0ZXN0
IG1vZHVsZXMuICBUaGFua3MgdG8gTWFyYyBTY2hsYWljaAorICBmb3IgdGhlIGNvbXBsZXRlIFBS
LgorCistIGZpeCBpc3N1ZTQ5MDogaW5jbHVkZSBweXRlc3RfbG9hZF9pbml0aWFsX2NvbmZ0ZXN0
cyBpbiBkb2N1bWVudGF0aW9uCisgIGFuZCBpbXByb3ZlIGRvY3N0cmluZy4KKworLSBmaXggaXNz
dWU0NzI6IGNsYXJpZnkgdGhhdCBgYHB5dGVzdC5jb25maWcuZ2V0dmFsdWUoKWBgIGNhbm5vdCB3
b3JrCisgIGlmIGl0J3MgdHJpZ2dlcmVkIGFoZWFkIG9mIGNvbW1hbmQgbGluZSBwYXJzaW5nLgor
CistIG1lcmdlIFBSMTIzOiBpbXByb3ZlZCBpbnRlZ3JhdGlvbiB3aXRoIG1vY2sucGF0Y2ggZGVj
b3JhdG9yIG9uIHRlc3RzLgorCistIGZpeCBpc3N1ZTQxMjogbWVzc2luZyB3aXRoIHN0ZG91dC9z
dGRlcnIgRkQtbGV2ZWwgc3RyZWFtcyBpcyBub3cKKyAgY2FwdHVyZWQgd2l0aG91dCBjcmFzaGVz
LgorCistIGZpeCBpc3N1ZTQ4MzogdHJpYWwvcHkzMyB3b3JrcyBub3cgcHJvcGVybHkuICBUaGFu
a3MgRGFuaWVsIEdyYW5hIGZvciBQUi4KKworLSBpbXByb3ZlIGV4YW1wbGUgZm9yIHB5dGVzdCBp
bnRlZ3JhdGlvbiB3aXRoICJweXRob24gc2V0dXAucHkgdGVzdCIKKyAgd2hpY2ggbm93IGhhcyBh
IGdlbmVyaWMgIi1hIiBvciAiLS1weXRlc3QtYXJncyIgb3B0aW9uIHdoZXJlIHlvdQorICBjYW4g
cGFzcyBhZGRpdGlvbmFsIG9wdGlvbnMgYXMgYSBxdW90ZWQgc3RyaW5nLiAgVGhhbmtzIFRyZXZv
ciBCZWtvbGF5LgorCistIHNpbXBsaWZpZWQgaW50ZXJuYWwgY2FwdHVyaW5nIG1lY2hhbmlzbSBh
bmQgbWFkZSBpdCBtb3JlIHJvYnVzdAorICBhZ2FpbnN0IHRlc3RzIG9yIHNldHVwcyBjaGFuZ2lu
ZyBGRDEvRkQyLCBhbHNvIGJldHRlciBpbnRlZ3JhdGVkCisgIG5vdyB3aXRoIHB5dGVzdC5wZGIo
KSBpbiBzaW5nbGUgdGVzdHMuCisKKy0gaW1wcm92ZW1lbnRzIHRvIHB5dGVzdCdzIG93biB0ZXN0
LXN1aXRlIGxlYWthZ2UgZGV0ZWN0aW9uLCBjb3VydGVzeSBvZiBQUnMKKyAgZnJvbSBNYXJjIEFi
cmFtb3dpdHoKKworLSBmaXggaXNzdWU0OTI6IGF2b2lkIGxlYWsgaW4gdGVzdF93cml0ZW9yZy4g
IFRoYW5rcyBNYXJjIEFicmFtb3dpdHouCisKKy0gZml4IGlzc3VlNDkzOiBkb24ndCBydW4gdGVz
dHMgaW4gZG9jIGRpcmVjdG9yeSB3aXRoIGBgcHl0aG9uIHNldHVwLnB5IHRlc3RgYAorICAodXNl
IHRveCAtZSBkb2N0ZXN0aW5nIGZvciB0aGF0KQorCistIGZpeCBpc3N1ZTQ4NjogYmV0dGVyIHJl
cG9ydGluZyBhbmQgaGFuZGxpbmcgb2YgZWFybHkgY29uZnRlc3QgbG9hZGluZyBmYWlsdXJlcwor
CistIHNvbWUgY2xlYW51cCBhbmQgc2ltcGxpZmljYXRpb24gb2YgaW50ZXJuYWwgY29uZnRlc3Qg
aGFuZGxpbmcuCisKKy0gd29yayBhIGJpdCBoYXJkZXIgdG8gYnJlYWsgcmVmZXJlbmNlIGN5Y2xl
cyB3aGVuIGNhdGNoaW5nIGV4Y2VwdGlvbnMuCisgIFRoYW5rcyBKdXJrbyBHb3Nwb2RuZXRpYy4K
KworLSBmaXggaXNzdWU0NDM6IGZpeCBza2lwIGV4YW1wbGVzIHRvIHVzZSBwcm9wZXIgY29tcGFy
aXNvbi4gIFRoYW5rcyBBbGV4CisgIEdyb2VuaG9sbS4KKworLSBzdXBwb3J0IG5vc2Utc3R5bGUg
YGBfX3Rlc3RfX2BgIGF0dHJpYnV0ZSBvbiBtb2R1bGVzLCBjbGFzc2VzIGFuZAorICBmdW5jdGlv
bnMsIGluY2x1ZGluZyB1bml0dGVzdC1zdHlsZSBDbGFzc2VzLiAgSWYgc2V0IHRvIEZhbHNlLCB0
aGUKKyAgdGVzdCB3aWxsIG5vdCBiZSBjb2xsZWN0ZWQuCisKKy0gZml4IGlzc3VlNTEyOiBzaG93
ICI8bm90c2V0PiIgZm9yIGFyZ3VtZW50cyB3aGljaCBtaWdodCBub3QgYmUgc2V0CisgIGluIG1v
bmtleXBhdGNoIHBsdWdpbi4gIEltcHJvdmVzIG91dHB1dCBpbiBkb2N1bWVudGF0aW9uLgorCisK
KzIuNS4yICgyMDE0LTAxLTI5KQorPT09PT09PT09PT09PT09PT09CisKKy0gZml4IGlzc3VlNDA5
IC0tIGJldHRlciBpbnRlcm9wZXJhdGUgd2l0aCBjeF9mcmVlemUgYnkgbm90CisgIHRyeWluZyB0
byBpbXBvcnQgZnJvbSBjb2xsZWN0aW9ucy5hYmMgd2hpY2ggY2F1c2VzIHByb2JsZW1zCisgIGZv
ciBweTI3L2N4X2ZyZWV6ZS4gIFRoYW5rcyBXb2xmZ2FuZyBMLiBmb3IgcmVwb3J0aW5nIGFuZCB0
cmFja2luZyBpdCBkb3duLgorCistIGZpeGVkIGRvY3MgYW5kIGNvZGUgdG8gdXNlICJweXRlc3Qi
IGluc3RlYWQgb2YgInB5LnRlc3QiIGFsbW9zdCBldmVyeXdoZXJlLgorICBUaGFua3MgSnVya28g
R29zcG9kbmV0aWMgZm9yIHRoZSBjb21wbGV0ZSBQUi4KKworLSBmaXggaXNzdWU0MjU6IG1lbnRp
b24gYXQgZW5kIG9mICJweS50ZXN0IC1oIiB0aGF0IC0tbWFya2VycworICBhbmQgLS1maXh0dXJl
cyB3b3JrIGFjY29yZGluZyB0byBzcGVjaWZpZWQgdGVzdCBwYXRoIChvciBjdXJyZW50IGRpcikK
KworLSBmaXggaXNzdWU0MTM6IGV4Y2VwdGlvbnMgd2l0aCB1bmljb2RlIGF0dHJpYnV0ZXMgYXJl
IG5vdyBwcmludGVkCisgIGNvcnJlY3RseSBhbHNvIG9uIHB5dGhvbjIgYW5kIHdpdGggcHl0ZXN0
LXhkaXN0IHJ1bnMuICh0aGUgZml4CisgIHJlcXVpcmVzIHB5LTEuNC4yMCkKKworLSBjb3B5LCBj
bGVhbnVwIGFuZCBpbnRlZ3JhdGUgcHkuaW8gY2FwdHVyZQorICBmcm9tIHB5bGliIDEuNC4yMC5k
ZXYyIChyZXYgMTNkOWFmOTU1NDdlKQorCistIGFkZHJlc3MgaXNzdWU0MTY6IGNsYXJpZnkgZG9j
cyBhcyB0byBjb25mdGVzdC5weSBsb2FkaW5nIHNlbWFudGljcworCistIGZpeCBpc3N1ZTQyOTog
Y29tcGFyaW5nIGJ5dGUgc3RyaW5ncyB3aXRoIG5vbi1hc2NpaSBjaGFycyBpbiBhc3NlcnQKKyAg
ZXhwcmVzc2lvbnMgbm93IHdvcmsgYmV0dGVyLiAgVGhhbmtzIEZsb3JpcyBCcnV5bm9vZ2hlLgor
CistIG1ha2UgY2FwZmQvY2Fwc3lzLmNhcHR1cmUgcHJpdmF0ZSwgaXRzIHVudXNlZCBhbmQgc2hv
dWxkbid0IGJlIGV4cG9zZWQKKworCisyLjUuMSAoMjAxMy0xMi0xNykKKz09PT09PT09PT09PT09
PT09PQorCistIG1lcmdlIG5ldyBkb2N1bWVudGF0aW9uIHN0eWxpbmcgUFIgZnJvbSBUb2JpYXMg
Qmllbmllay4KKworLSBmaXggaXNzdWU0MDM6IGFsbG93IHBhcmFtZXRyaXplIG9mIG11bHRpcGxl
IHNhbWUtbmFtZSBmdW5jdGlvbnMgd2l0aGluCisgIGEgY29sbGVjdGlvbiBub2RlLiAgVGhhbmtz
IEFuZHJlYXMgS2xvZWNrbmVyIGFuZCBBbGV4IEdheW5vciBmb3IgcmVwb3J0aW5nCisgIGFuZCBh
bmFseXNpcy4KKworLSBBbGxvdyBwYXJhbWV0ZXJpemVkIGZpeHR1cmVzIHRvIHNwZWNpZnkgdGhl
IElEIG9mIHRoZSBwYXJhbWV0ZXJzIGJ5CisgIGFkZGluZyBhbiBpZHMgYXJndW1lbnQgdG8gcHl0
ZXN0LmZpeHR1cmUoKSBhbmQgcHl0ZXN0LnlpZWxkX2ZpeHR1cmUoKS4KKyAgVGhhbmtzIEZsb3Jp
cyBCcnV5bm9vZ2hlLgorCistIGZpeCBpc3N1ZTQwNCBieSBhbHdheXMgdXNpbmcgdGhlIGJpbmFy
eSB4bWwgZXNjYXBlIGluIHRoZSBqdW5pdHhtbAorICBwbHVnaW4uICBUaGFua3MgUm9ubnkgUGZh
bm5zY2htaWR0LgorCistIGZpeCBpc3N1ZTQwNzogZml4IGFkZG9wdGlvbiBkb2NzdHJpbmcgdG8g
cG9pbnQgdG8gYXJncGFyc2UgaW5zdGVhZCBvZgorICBvcHRwYXJzZS4gVGhhbmtzIERhbmllbCBE
LiBXcmlnaHQuCisKKworCisyLjUuMCAoMjAxMy0xMi0xMikKKz09PT09PT09PT09PT09PT09PQor
CistIGRyb3BwZWQgcHl0aG9uMi41IGZyb20gYXV0b21hdGVkIHJlbGVhc2UgdGVzdGluZyBvZiBw
eXRlc3QgaXRzZWxmCisgIHdoaWNoIG1lYW5zIGl0J3MgcHJvYmFibHkgZ29pbmcgdG8gYnJlYWsg
c29vbiAoYnV0IHN0aWxsIHdvcmtzCisgIHdpdGggdGhpcyByZWxlYXNlIHdlIGJlbGlldmUpLgor
CistIHNpbXBsaWZpZWQgYW5kIGZpeGVkIGltcGxlbWVudGF0aW9uIGZvciBjYWxsaW5nIGZpbmFs
aXplcnMgd2hlbgorICBwYXJhbWV0cml6ZWQgZml4dHVyZXMgb3IgZnVuY3Rpb24gYXJndW1lbnRz
IGFyZSBpbnZvbHZlZC4gIGZpbmFsaXphdGlvbgorICBpcyBub3cgcGVyZm9ybWVkIGxhemlseSBh
dCBzZXR1cCB0aW1lIGluc3RlYWQgb2YgaW4gdGhlICJ0ZWFyZG93biBwaGFzZSIuCisgIFdoaWxl
IHRoaXMgbWlnaHQgc291bmQgb2RkIGF0IGZpcnN0LCBpdCBoZWxwcyB0byBlbnN1cmUgdGhhdCB3
ZSBhcmUKKyAgY29ycmVjdGx5IGhhbmRsaW5nIHNldHVwL3RlYXJkb3duIGV2ZW4gaW4gY29tcGxl
eCBjb2RlLiAgVXNlci1sZXZlbCBjb2RlCisgIHNob3VsZCBub3QgYmUgYWZmZWN0ZWQgdW5sZXNz
IGl0J3MgaW1wbGVtZW50aW5nIHRoZSBweXRlc3RfcnVudGVzdF90ZWFyZG93bgorICBob29rIGFu
ZCBleHBlY3RpbmcgY2VydGFpbiBmaXh0dXJlIGluc3RhbmNlcyBhcmUgdG9ybiBkb3duIHdpdGhp
biAodmVyeQorICB1bmxpa2VseSBhbmQgd291bGQgaGF2ZSBiZWVuIHVucmVsaWFibGUgYW55d2F5
KS4KKworLSBQUjkwOiBhZGQgLS1jb2xvcj15ZXN8bm98YXV0byBvcHRpb24gdG8gZm9yY2UgdGVy
bWluYWwgY29sb3JpbmcKKyAgbW9kZSAoImF1dG8iIGlzIGRlZmF1bHQpLiAgVGhhbmtzIE1hcmMg
QWJyYW1vd2l0ei4KKworLSBmaXggaXNzdWUzMTkgLSBjb3JyZWN0bHkgc2hvdyB1bmljb2RlIGlu
IGFzc2VydGlvbiBlcnJvcnMuICBNYW55CisgIHRoYW5rcyB0byBGbG9yaXMgQnJ1eW5vb2doZSBm
b3IgdGhlIGNvbXBsZXRlIFBSLiAgQWxzbyBtZWFucworICB3ZSBkZXBlbmQgb24gcHk+PTEuNC4x
OSBub3cuCisKKy0gZml4IGlzc3VlMzk2IC0gY29ycmVjdGx5IHNvcnQgYW5kIGZpbmFsaXplIGNs
YXNzLXNjb3BlZCBwYXJhbWV0cml6ZWQKKyAgdGVzdHMgaW5kZXBlbmRlbnRseSBmcm9tIG51bWJl
ciBvZiBtZXRob2RzIG9uIHRoZSBjbGFzcy4KKworLSByZWZpeCBpc3N1ZTMyMyBpbiBhIGJldHRl
ciB3YXkgLS0gcGFyYW1ldHJpemF0aW9uIHNob3VsZCBub3cgbmV2ZXIKKyAgY2F1c2UgUnVudGlt
ZSBSZWN1cnNpb24gZXJyb3JzIGJlY2F1c2UgdGhlIHVuZGVybHlpbmcgYWxnb3JpdGhtCisgIGZv
ciByZS1vcmRlcmluZyB0ZXN0cyBwZXItc2NvcGUvcGVyLWZpeHR1cmUgaXMgbm90IHJlY3Vyc2l2
ZQorICBhbnltb3JlIChpdCB3YXMgdGFpbC1jYWxsIHJlY3Vyc2l2ZSBiZWZvcmUgd2hpY2ggY291
bGQgbGVhZAorICB0byBwcm9ibGVtcyBmb3IgbW9yZSB0aGFuID45NjYgbm9uLWZ1bmN0aW9uIHNj
b3BlZCBwYXJhbWV0ZXJzKS4KKworLSBmaXggaXNzdWUyOTAgLSB0aGVyZSBpcyBwcmVsaW1pbmFy
eSBzdXBwb3J0IG5vdyBmb3IgcGFyYW1ldHJpemluZworICB3aXRoIHJlcGVhdGVkIHNhbWUgdmFs
dWVzIChzb21ldGltZXMgdXNlZnVsIHRvIHRlc3QgaWYgY2FsbGluZworICBhIHNlY29uZCB0aW1l
IHdvcmtzIGFzIHdpdGggdGhlIGZpcnN0IHRpbWUpLgorCistIGNsb3NlIGlzc3VlMjQwIC0gZG9j
dW1lbnQgcHJlY2lzZWx5IGhvdyBweXRlc3QgbW9kdWxlIGltcG9ydGluZworICB3b3JrcywgZGlz
Y3VzcyB0aGUgdHdvIGNvbW1vbiB0ZXN0IGRpcmVjdG9yeSBsYXlvdXRzLCBhbmQgaG93IGl0Cisg
IGludGVyYWN0cyB3aXRoIFBFUDQyMC1uYW1lc3BhY2UgcGFja2FnZXMuCisKKy0gZml4IGlzc3Vl
MjQ2IGZpeCBmaW5hbGl6ZXIgb3JkZXIgdG8gYmUgTElGTyBvbiBpbmRlcGVuZGVudCBmaXh0dXJl
cworICBkZXBlbmRpbmcgb24gYSBwYXJhbWV0cml6ZWQgaGlnaGVyLXRoYW4tZnVuY3Rpb24gc2Nv
cGVkIGZpeHR1cmUuCisgICh3YXMgcXVpdGUgc29tZSBlZmZvcnQgc28gcGxlYXNlIGJlYXIgd2l0
aCB0aGUgY29tcGxleGl0eSBvZiB0aGlzIHNlbnRlbmNlIDopCisgIFRoYW5rcyBSYWxwaCBTY2ht
aXR0IGZvciB0aGUgcHJlY2lzZSBmYWlsdXJlIGV4YW1wbGUuCisKKy0gZml4IGlzc3VlMjQ0IGJ5
IGltcGxlbWVudGluZyBzcGVjaWFsIGluZGV4IGZvciBwYXJhbWV0ZXJzIHRvIG9ubHkgdXNlCisg
IGluZGljZXMgZm9yIHBhcmFtZW50cml6ZWQgdGVzdCBpZHMKKworLSBmaXggaXNzdWUyODcgYnkg
cnVubmluZyBhbGwgZmluYWxpemVycyBidXQgc2F2aW5nIHRoZSBleGNlcHRpb24KKyAgZnJvbSB0
aGUgZmlyc3QgZmFpbGluZyBmaW5hbGl6ZXIgYW5kIHJlLXJhaXNpbmcgaXQgc28gdGVhcmRvd24g
d2lsbAorICBzdGlsbCBoYXZlIGZhaWxlZC4gIFdlIHJlcmFpc2UgdGhlIGZpcnN0IGZhaWxpbmcg
ZXhjZXB0aW9uIGJlY2F1c2UKKyAgaXQgbWlnaHQgYmUgdGhlIGNhdXNlIGZvciBvdGhlciBmaW5h
bGl6ZXJzIHRvIGZhaWwuCisKKy0gZml4IG9yZGVyaW5nIHdoZW4gbW9jay5wYXRjaCBvciBvdGhl
ciBzdGFuZGFyZCBkZWNvcmF0b3Itd3JhcHBpbmdzCisgIGFyZSB1c2VkIHdpdGggdGVzdCBtZXRo
b2RzLiAgVGhpcyBmaXh1ZXMgaXNzdWUzNDYgYW5kIHNob3VsZAorICBoZWxwIHdpdGggcmFuZG9t
ICJ4ZGlzdCIgY29sbGVjdGlvbiBmYWlsdXJlcy4gIFRoYW5rcyB0bworICBSb25ueSBQZmFubnNj
aG1pZHQgYW5kIERvbmFsZCBTdHVmZnQgZm9yIGhlbHBpbmcgdG8gaXNvbGF0ZSBpdC4KKworLSBm
aXggaXNzdWUzNTcgLSBzcGVjaWFsIGNhc2UgIi1rIiBleHByZXNzaW9ucyB0byBhbGxvdyBmb3IK
KyAgZmlsdGVyaW5nIHdpdGggc2ltcGxlIHN0cmluZ3MgdGhhdCBhcmUgbm90IHZhbGlkIHB5dGhv
biBleHByZXNzaW9ucy4KKyAgRXhhbXBsZXM6ICItayAxLjMiIG1hdGNoZXMgYWxsIHRlc3RzIHBh
cmFtZXRyaXplZCB3aXRoIDEuMy4KKyAgIi1rIE5vbmUiIGZpbHRlcnMgYWxsIHRlc3RzIHRoYXQg
aGF2ZSAiTm9uZSIgaW4gdGhlaXIgbmFtZQorICBhbmQgY29udmVyc2VseSAiLWsgJ25vdCBOb25l
JyIuCisgIFByZXZpb3VzbHkgdGhlc2UgZXhhbXBsZXMgd291bGQgcmFpc2Ugc3ludGF4IGVycm9y
cy4KKworLSBmaXggaXNzdWUzODQgYnkgcmVtb3ZpbmcgdGhlIHRyaWFsIHN1cHBvcnQgY29kZQor
ICBzaW5jZSB0aGUgdW5pdHRlc3QgY29tcGF0IGVuaGFuY2VtZW50cyBhbGxvdworICB0cmlhbCB0
byBoYW5kbGUgaXQgb24gaXRzIG93bgorCistIGRvbid0IGhpZGUgYW4gSW1wb3J0RXJyb3Igd2hl
biBpbXBvcnRpbmcgYSBwbHVnaW4gcHJvZHVjZXMgb25lLgorICBmaXhlcyBpc3N1ZTM3NS4KKwor
LSBmaXggaXNzdWUyNzUgLSBhbGxvdyB1c2VmaXh0dXJlcyBhbmQgYXV0b3VzZSBmaXh0dXJlcwor
ICBmb3IgcnVubmluZyBkb2N0ZXN0IHRleHQgZmlsZXMuCisKKy0gZml4IGlzc3VlMzgwIGJ5IG1h
a2luZyAtLXJlc3VsdGxvZyBvbmx5IHJlbHkgb24gbG9uZ3JlcHIgaW5zdGVhZAorICBvZiB0aGUg
InJlcHJjcmFzaCIgYXR0cmlidXRlIHdoaWNoIG9ubHkgZXhpc3RzIHNvbWV0aW1lcy4KKworLSBh
ZGRyZXNzIGlzc3VlMTIyOiBhbGxvdyBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPWl0ZXJhdG9yKSBi
eSBleHBsb2RpbmcKKyAgaW50byBhIGxpc3QgZWFybHkgb24uCisKKy0gZml4IHBleHBlY3QtMy4w
IGNvbXBhdGliaWxpdHkgZm9yIHB5dGVzdCdzIG93biB0ZXN0cy4KKyAgKGZpeGVzIGlzc3VlMzg2
KQorCistIGFsbG93IG5lc3RlZCBwYXJhbWV0cml6ZS12YWx1ZSBtYXJrZXJzLCB0aGFua3MgSmFt
ZXMgTGFuIGZvciB0aGUgUFIuCisKKy0gZml4IHVuaWNvZGUgaGFuZGxpbmcgd2l0aCBuZXcgbW9u
a2V5cGF0Y2guc2V0YXR0cihpbXBvcnRfcGF0aCwgdmFsdWUpCisgIEFQSS4gIFRoYW5rcyBSb2Ig
RGVubmlzLiAgRml4ZXMgaXNzdWUzNzEuCisKKy0gZml4IHVuaWNvZGUgaGFuZGxpbmcgd2l0aCBq
dW5pdHhtbCwgZml4ZXMgaXNzdWUzNjguCisKKy0gSW4gYXNzZXJ0aW9uIHJld3JpdGluZyBtb2Rl
IG9uIFB5dGhvbiAyLCBmaXggdGhlIGRldGVjdGlvbiBvZiBjb2RpbmcKKyAgY29va2llcy4gU2Vl
IGlzc3VlICMzMzAuCisKKy0gbWFrZSAiLS1ydW54ZmFpbCIgdHVybiBpbXBlcmF0aXZlIHB5dGVz
dC54ZmFpbCBjYWxscyBpbnRvIG5vIG9wcworICAoaXQgYWxyZWFkeSBkaWQgbmV1dHJhbGl6ZSBw
eXRlc3QubWFyay54ZmFpbCBtYXJrZXJzKQorCistIHJlZmluZSBweXRlc3QgLyBwa2dfcmVzb3Vy
Y2VzIGludGVyYWN0aW9uczogVGhlIEFzc2VydGlvblJld3JpdGluZ0hvb2sKKyAgUEVQMzAyIGNv
bXBsaWFudCBsb2FkZXIgbm93IHJlZ2lzdGVycyBpdHNlbGYgd2l0aCBzZXR1cHRvb2xzL3BrZ19y
ZXNvdXJjZXMKKyAgcHJvcGVybHkgc28gdGhhdCB0aGUgcGtnX3Jlc291cmNlcy5yZXNvdXJjZV9z
dHJlYW0gbWV0aG9kIHdvcmtzIHByb3Blcmx5LgorICBGaXhlcyBpc3N1ZTM2Ni4gIFRoYW5rcyBm
b3IgdGhlIGludmVzdGlnYXRpb25zIGFuZCBmdWxsIFBSIHRvIEphc29uIFIuIENvb21icy4KKwor
LSBweXRlc3Rjb25maWcgZml4dHVyZSBpcyBub3cgc2Vzc2lvbi1zY29wZWQgYXMgaXQgaXMgdGhl
IHNhbWUgb2JqZWN0IGR1cmluZyB0aGUKKyAgd2hvbGUgdGVzdCBydW4uICBGaXhlcyBpc3N1ZTM3
MC4KKworLSBhdm9pZCBvbmUgc3VycHJpc2luZyBjYXNlIG9mIG1hcmtlciBtYWxmdW5jdGlvbi9j
b25mdXNpb246OgorCisgICAgICBAcHl0ZXN0Lm1hcmsuc29tZShsYW1iZGEgYXJnOiAuLi4pCisg
ICAgICBkZWYgdGVzdF9mdW5jdGlvbigpOgorCisgIHdvdWxkIG5vdCB3b3JrIGNvcnJlY3RseSBi
ZWNhdXNlIHB5dGVzdCBhc3N1bWVzIEBweXRlc3QubWFyay5zb21lCisgIGdldHMgYSBmdW5jdGlv
biB0byBiZSBkZWNvcmF0ZWQgYWxyZWFkeS4gIFdlIG5vdyBhdCBsZWFzdCBkZXRlY3QgaWYgdGhp
cworICBhcmcgaXMgYW4gbGFtYmRhIGFuZCB0aHVzIHRoZSBleGFtcGxlIHdpbGwgd29yay4gIFRo
YW5rcyBBbGV4IEdheW5vcgorICBmb3IgYnJpbmdpbmcgaXQgdXAuCisKKy0geGZhaWwgYSB0ZXN0
IG9uIHB5cHkgdGhhdCBjaGVja3Mgd3JvbmcgZW5jb2RpbmcvYXNjaWkgKHB5cHkgZG9lcworICBu
b3QgZXJyb3Igb3V0KS4gZml4ZXMgaXNzdWUzODUuCisKKy0gaW50ZXJuYWxseSBtYWtlIHZhcm5h
bWVzKCkgZGVhbCB3aXRoIGNsYXNzZXMncyBfX2luaXRfXywKKyAgYWx0aG91Z2ggaXQncyBub3Qg
bmVlZGVkIGJ5IHB5dGVzdCBpdHNlbGYgYXRtLiAgQWxzbworICBmaXggY2FjaGluZy4gIEZpeGVz
IGlzc3VlMzc2LgorCistIGZpeCBpc3N1ZTIyMSAtIGhhbmRsZSBpbXBvcnRpbmcgb2YgbmFtZXNw
YWNlLXBhY2thZ2Ugd2l0aCBubworICBfX2luaXRfXy5weSBwcm9wZXJseS4KKworLSByZWZhY3Rv
ciBpbnRlcm5hbCBGaXh0dXJlUmVxdWVzdCBoYW5kbGluZyB0byBhdm9pZCBtb25rZXlwYXRjaGlu
Zy4KKyAgT25lIG9mIHRoZSBwb3NpdGl2ZSB1c2VyLWZhY2luZyBlZmZlY3RzIGlzIHRoYXQgdGhl
ICJyZXF1ZXN0IiBvYmplY3QKKyAgY2FuIG5vdyBiZSB1c2VkIGluIGNsb3N1cmVzLgorCistIGZp
eGVkIHZlcnNpb24gY29tcGFyaXNvbiBpbiBweXRlc3QuaW1wb3J0c2tpcChtb2RuYW1lLCBtaW52
ZXJzdHJpbmcpCisKKy0gZml4IGlzc3VlMzc3IGJ5IGNsYXJpZnlpbmcgaW4gdGhlIG5vc2UtY29t
cGF0IGRvY3MgdGhhdCBweXRlc3QKKyAgZG9lcyBub3QgZHVwbGljYXRlIHRoZSB1bml0dGVzdC1B
UEkgaW50byB0aGUgInBsYWluIiBuYW1lc3BhY2UuCisKKy0gZml4IHZlcmJvc2UgcmVwb3J0aW5n
IGZvciBAbW9jaydkIHRlc3QgZnVuY3Rpb25zCisKKzIuNC4yICgyMDEzLTEwLTA0KQorPT09PT09
PT09PT09PT09PT09CisKKy0gb24gV2luZG93cyByZXF1aXJlIGNvbG9yYW1hIGFuZCBhIG5ld2Vy
IHB5IGxpYiBzbyB0aGF0IHB5LmlvLlRlcm1pbmFsV3JpdGVyKCkKKyAgbm93IHVzZXMgY29sb3Jh
bWEgaW5zdGVhZCBvZiBpdHMgb3duIGN0eXBlcyBoYWNrcy4gKGZpeGVzIGlzc3VlMzY1KQorICB0
aGFua3MgUGF1bCBNb29yZSBmb3IgYnJpbmdpbmcgaXQgdXAuCisKKy0gZml4ICItayIgbWF0Y2hp
bmcgb2YgdGVzdHMgd2hlcmUgInJlcHIiIGFuZCAiYXR0ciIgYW5kIG90aGVyIG5hbWVzIHdvdWxk
CisgIGNhdXNlIHdyb25nIG1hdGNoZXMgYmVjYXVzZSBvZiBhbiBpbnRlcm5hbCBpbXBsZW1lbnRh
dGlvbiBxdWlyaworICAoZG9uJ3QgYXNrKSB3aGljaCBpcyBub3cgcHJvcGVybHkgaW1wbGVtZW50
ZWQuIGZpeGVzIGlzc3VlMzQ1LgorCistIGF2b2lkIHRtcGRpciBmaXh0dXJlIHRvIGNyZWF0ZSB0
b28gbG9uZyBmaWxlbmFtZXMgZXNwZWNpYWxseQorICB3aGVuIHBhcmFtZXRyaXphdGlvbiBpcyB1
c2VkIChpc3N1ZTM1NCkKKworLSBmaXggcHl0ZXN0LXBlcDggYW5kIHB5dGVzdC1mbGFrZXMgLyBw
eXRlc3QgaW50ZXJhY3Rpb25zCisgIChjb2xsZWN0aW9uIG5hbWVzIGluIG1hcmsgcGx1Z2luIHdh
cyBhc3N1bWluZyBhbiBpdGVtIGFsd2F5cworICBoYXMgYSBmdW5jdGlvbiB3aGljaCBpcyBub3Qg
dHJ1ZSBmb3IgdGhvc2UgcGx1Z2lucyBldGMuKQorICBUaGFua3MgQW5kaSBaZWlkbGVyLgorCist
IGludHJvZHVjZSBub2RlLmdldF9tYXJrZXIvbm9kZS5hZGRfbWFya2VyIEFQSSBmb3IgcGx1Z2lu
cworICBsaWtlIHB5dGVzdC1wZXA4IGFuZCBweXRlc3QtZmxha2VzIHRvIGF2b2lkIHRoZSBtZXNz
eQorICBkZXRhaWxzIG9mIHRoZSBub2RlLmtleXdvcmRzICBwc2V1ZG8tZGljdHMuICBBZGFwdGVk
CisgIGRvY3MuCisKKy0gcmVtb3ZlIGF0dGVtcHQgdG8gImR1cCIgc3Rkb3V0IGF0IHN0YXJ0dXAg
YXMgaXQncyBpY2t5LgorICB0aGUgbm9ybWFsIGNhcHR1cmluZyBzaG91bGQgY2F0Y2ggZW5vdWdo
IHBvc3NpYmlsaXRpZXMKKyAgb2YgdGVzdHMgbWVzc2luZyB1cCBzdGFuZGFyZCBGRHMuCisKKy0g
YWRkIHBsdWdpbm1hbmFnZXIuZG9fY29uZmlndXJlKGNvbmZpZykgYXMgYSBsaW5rIHRvCisgIGNv
bmZpZy5kb19jb25maWd1cmUoKSBmb3IgcGx1Z2luLWNvbXBhdGliaWxpdHkKKworMi40LjEgKDIw
MTMtMTAtMDIpCis9PT09PT09PT09PT09PT09PT0KKworLSBXaGVuIHVzaW5nIHBhcnNlci5hZGRv
cHRpb24oKSB1bmljb2RlIGFyZ3VtZW50cyB0byB0aGUKKyAgInR5cGUiIGtleXdvcmQgc2hvdWxk
IGFsc28gYmUgY29udmVydGVkIHRvIHRoZSByZXNwZWN0aXZlIHR5cGVzLgorICB0aGFua3MgRmxv
cmlzIEJydXlub29naGUsIEBkbm96YXkuIChmaXhlcyBpc3N1ZTM2MCBhbmQgaXNzdWUzNjIpCisK
Ky0gZml4IGRvdHRlZCBmaWxlbmFtZSBjb21wbGV0aW9uIHdoZW4gdXNpbmcgYXJnY29tcGxldGUK
KyAgdGhhbmtzIEFudGhvbiB2YW4gZGVyIE5ldXRoLiAoZml4ZXMgaXNzdWUzNjEpCisKKy0gZml4
IHJlZ3Jlc3Npb24gd2hlbiBhIDEtdHVwbGUgKCJhcmciLCkgaXMgdXNlZCBmb3Igc3BlY2lmeWlu
ZworICBwYXJhbWV0cml6YXRpb24gKHRoZSB2YWx1ZXMgb2YgdGhlIHBhcmFtZXRyaXphdGlvbiB3
ZXJlIHBhc3NlZAorICBuZXN0ZWQgaW4gYSB0dXBsZSkuICBUaGFua3MgRG9uYWxkIFN0dWZmdC4K
KworLSBtZXJnZSBkb2MgdHlwbyBmaXhlcywgdGhhbmtzIEFuZHkgRGlybmJlcmdlcgorCisyLjQK
Kz09PQorCitrbm93biBpbmNvbXBhdGliaWxpdGllczoKKworLSBpZiBjYWxsaW5nIC0tZ2Vuc2Ny
aXB0IGZyb20gcHl0aG9uMi43IG9yIGFib3ZlLCB5b3Ugb25seSBnZXQgYQorICBzdGFuZGFsb25l
IHNjcmlwdCB3aGljaCB3b3JrcyBvbiBweXRob24yLjcgb3IgYWJvdmUuICBVc2UgUHl0aG9uMi42
CisgIHRvIGFsc28gZ2V0IGEgcHl0aG9uMi41IGNvbXBhdGlibGUgdmVyc2lvbi4KKworLSBhbGwg
eHVuaXQtc3R5bGUgdGVhcmRvd24gbWV0aG9kcyAobm9zZS1zdHlsZSwgcHl0ZXN0LXN0eWxlLAor
ICB1bml0dGVzdC1zdHlsZSkgd2lsbCBub3QgYmUgY2FsbGVkIGlmIHRoZSBjb3JyZXNwb25kaW5n
IHNldHVwIG1ldGhvZCBmYWlsZWQsCisgIHNlZSBpc3N1ZTMyMiBiZWxvdy4KKworLSB0aGUgcHl0
ZXN0X3BsdWdpbl91bnJlZ2lzdGVyIGhvb2sgd2Fzbid0IGV2ZXIgcHJvcGVybHkgY2FsbGVkCisg
IGFuZCB0aGVyZSBpcyBubyBrbm93biBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgaG9vayAtIHNvIGl0
IGdvdCByZW1vdmVkLgorCistIHB5dGVzdC5maXh0dXJlLWRlY29yYXRlZCBmdW5jdGlvbnMgY2Fu
bm90IGJlIGdlbmVyYXRvcnMgKGkuZS4gdXNlCisgIHlpZWxkKSBhbnltb3JlLiAgVGhpcyBjaGFu
Z2UgbWlnaHQgYmUgcmV2ZXJzZWQgaW4gMi40LjEgaWYgaXQgY2F1c2VzCisgIHVuZm9yZXNlZW4g
cmVhbC1saWZlIGlzc3Vlcy4gIEhvd2V2ZXIsIHlvdSBjYW4gYWx3YXlzIHdyaXRlIGFuZCByZXR1
cm4KKyAgYW4gaW5uZXIgZnVuY3Rpb24vZ2VuZXJhdG9yIGFuZCBjaGFuZ2UgdGhlIGZpeHR1cmUg
Y29uc3VtZXIgdG8gaXRlcmF0ZQorICBvdmVyIHRoZSByZXR1cm5lZCBnZW5lcmF0b3IuICBUaGlz
IGNoYW5nZSB3YXMgZG9uZSBpbiBsaWV1IG9mIHRoZSBuZXcKKyAgYGBweXRlc3QueWllbGRfZml4
dHVyZWBgIGRlY29yYXRvciwgc2VlIGJlbG93LgorCituZXcgZmVhdHVyZXM6CisKKy0gZXhwZXJp
bWVudGFsbHkgaW50cm9kdWNlIGEgbmV3IGBgcHl0ZXN0LnlpZWxkX2ZpeHR1cmVgYCBkZWNvcmF0
b3IKKyAgd2hpY2ggYWNjZXB0cyBleGFjdGx5IHRoZSBzYW1lIHBhcmFtZXRlcnMgYXMgcHl0ZXN0
LmZpeHR1cmUgYnV0CisgIG1hbmRhdGVzIGEgYGB5aWVsZGBgIHN0YXRlbWVudCBpbnN0ZWFkIG9m
IGEgYGByZXR1cm4gc3RhdGVtZW50YGAgZnJvbQorICBmaXh0dXJlIGZ1bmN0aW9ucy4gIFRoaXMg
YWxsb3dzIGRpcmVjdCBpbnRlZ3JhdGlvbiB3aXRoICJ3aXRoLXN0eWxlIgorICBjb250ZXh0IG1h
bmFnZXJzIGluIGZpeHR1cmUgZnVuY3Rpb25zIGFuZCBnZW5lcmFsbHkgYXZvaWRzIHJlZ2lzdGVy
aW5nCisgIG9mIGZpbmFsaXphdGlvbiBjYWxsYmFja3MgaW4gZmF2b3VyIG9mIHRyZWF0aW5nIHRo
ZSAiYWZ0ZXIteWllbGQiIGFzCisgIHRlYXJkb3duIGNvZGUuICBUaGFua3MgQW5kcmVhcyBQZWxt
ZSwgVmxhZGltaXIgS2VsZXNoZXYsIEZsb3JpcworICBCcnV5bm9vZ2hlLCBSb25ueSBQZmFubnNj
aG1pZHQgYW5kIG1hbnkgb3RoZXJzIGZvciBkaXNjdXNzaW9ucy4KKworLSBhbGxvdyBib29sZWFu
IGV4cHJlc3Npb24gZGlyZWN0bHkgd2l0aCBza2lwaWYveGZhaWwKKyAgaWYgYSAicmVhc29uIiBp
cyBhbHNvIHNwZWNpZmllZC4gIFJld29yayBza2lwcGluZyBkb2N1bWVudGF0aW9uCisgIHRvIHJl
Y29tbWVuZCAiY29uZGl0aW9uIGFzIGJvb2xlYW5zIiBiZWNhdXNlIGl0IHByZXZlbnRzIHN1cnBy
aXNlcworICB3aGVuIGltcG9ydGluZyBtYXJrZXJzIGJldHdlZW4gbW9kdWxlcy4gIFNwZWNpZnlp
bmcgY29uZGl0aW9ucworICBhcyBzdHJpbmdzIHdpbGwgcmVtYWluIGZ1bGx5IHN1cHBvcnRlZC4K
KworLSByZXBvcnRpbmc6IGNvbG9yIHRoZSBsYXN0IGxpbmUgcmVkIG9yIGdyZWVuIGRlcGVuZGlu
ZyBpZgorICBmYWlsdXJlcy9lcnJvcnMgb2NjdXJyZWQgb3IgZXZlcnl0aGluZyBwYXNzZWQuICB0
aGFua3MgQ2hyaXN0aWFuCisgIFRoZXVuZXJ0LgorCistIG1ha2UgImltcG9ydCBwZGIgOyBwZGIu
c2V0X3RyYWNlKCkiIHdvcmsgbmF0aXZlbHkgd3J0IGNhcHR1cmluZyAobm8KKyAgIi1zIiBuZWVk
ZWQgYW55bW9yZSksIG1ha2luZyBgYHB5dGVzdC5zZXRfdHJhY2UoKWBgIGEgbWVyZSBzaG9ydGN1
dC4KKworLSBmaXggaXNzdWUxODE6IC0tcGRiIG5vdyBhbHNvIHdvcmtzIG9uIGNvbGxlY3QgZXJy
b3JzIChhbmQKKyAgb24gaW50ZXJuYWwgZXJyb3JzKSAuICBUaGlzIHdhcyBpbXBsZW1lbnRlZCBi
eSBhIHNsaWdodCBpbnRlcm5hbAorICByZWZhY3RvcmluZyBhbmQgdGhlIGludHJvZHVjdGlvbiBv
ZiBhIG5ldyBob29rCisgIGBgcHl0ZXN0X2V4Y2VwdGlvbl9pbnRlcmFjdGBgIGhvb2sgKHNlZSBu
ZXh0IGl0ZW0pLgorCistIGZpeCBpc3N1ZTM0MTogaW50cm9kdWNlIG5ldyBleHBlcmltZW50YWwg
aG9vayBmb3IgSURFcy90ZXJtaW5hbHMgdG8KKyAgaW50ZXJjZXB0IGRlYnVnZ2luZzogYGBweXRl
c3RfZXhjZXB0aW9uX2ludGVyYWN0KG5vZGUsIGNhbGwsIHJlcG9ydClgYC4KKworLSBuZXcgbW9u
a2V5cGF0Y2guc2V0YXR0cigpIHZhcmlhbnQgdG8gcHJvdmlkZSBhIHNob3J0ZXIKKyAgaW52b2Nh
dGlvbiBmb3IgcGF0Y2hpbmcgb3V0IGNsYXNzZXMvZnVuY3Rpb25zIGZyb20gbW9kdWxlczoKKwor
ICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKCJyZXF1ZXN0cy5nZXQiLCBteWZ1bmMpCisKKyAgd2ls
bCByZXBsYWNlIHRoZSAiZ2V0IiBmdW5jdGlvbiBvZiB0aGUgInJlcXVlc3RzIiBtb2R1bGUgd2l0
aCBgYG15ZnVuY2BgLgorCistIGZpeCBpc3N1ZTMyMjogdGVhckRvd25DbGFzcyBpcyBub3QgcnVu
IGlmIHNldFVwQ2xhc3MgZmFpbGVkLiBUaGFua3MKKyAgTWF0aGlldSBBZ29waWFuIGZvciB0aGUg
aW5pdGlhbCBmaXguICBBbHNvIG1ha2UgYWxsIG9mIHB5dGVzdC9ub3NlCisgIGZpbmFsaXplciBt
aW1pYyB0aGUgc2FtZSBnZW5lcmljIGJlaGF2aW91cjogaWYgYSBzZXR1cFggZXhpc3RzIGFuZAor
ICBmYWlscywgZG9uJ3QgcnVuIHRlYXJkb3duWC4gIFRoaXMgaW50ZXJuYWxseSBpbnRyb2R1Y2Vz
IGEgbmV3IG1ldGhvZAorICAibm9kZS5hZGRmaW5hbGl6ZXIoKSIgaGVscGVyIHdoaWNoIGNhbiBv
bmx5IGJlIGNhbGxlZCBkdXJpbmcgdGhlIHNldHVwCisgIHBoYXNlIG9mIGEgbm9kZS4KKworLSBz
aW1wbGlmeSBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgpIHNpZ25hdHVyZTogYWxsb3cgdG8gcGFz
cyBhCisgIENTVi1zZXBhcmF0ZWQgc3RyaW5nIHRvIHNwZWNpZnkgYXJnbmFtZXMuICBGb3IgZXhh
bXBsZToKKyAgYGBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiaW5wdXQsZXhwZWN0ZWQiLCAgWygx
LDIpLCAoMiwzKV0pYGAKKyAgd29ya3MgYXMgd2VsbCBhcyB0aGUgcHJldmlvdXM6CisgIGBgcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoKCJpbnB1dCIsICJleHBlY3RlZCIpLCAuLi4pYGAuCisKKy0g
YWRkIHN1cHBvcnQgZm9yIHNldFVwTW9kdWxlL3RlYXJEb3duTW9kdWxlIGRldGVjdGlvbiwgdGhh
bmtzIEJyaWFuIE9ra2VuLgorCistIGludGVncmF0ZSB0YWItY29tcGxldGlvbiBvbiBvcHRpb25z
IHRocm91Z2ggdXNlIG9mICJhcmdjb21wbGV0ZSIuCisgIFRoYW5rcyBBbnRob24gdmFuIGRlciBO
ZXV0IGZvciB0aGUgUFIuCisKKy0gY2hhbmdlIG9wdGlvbiBuYW1lcyB0byBiZSBoeXBoZW4tc2Vw
YXJhdGVkIGxvbmcgb3B0aW9ucyBidXQga2VlcCB0aGUKKyAgb2xkIHNwZWxsaW5nIGJhY2t3YXJk
IGNvbXBhdGlibGUuICBweS50ZXN0IC1oIHdpbGwgb25seSBzaG93IHRoZQorICBoeXBoZW5hdGVk
IHZlcnNpb24sIGZvciBleGFtcGxlICItLWNvbGxlY3Qtb25seSIgYnV0ICItLWNvbGxlY3Rvbmx5
IgorICB3aWxsIHJlbWFpbiB2YWxpZCBhcyB3ZWxsIChmb3IgYmFja3dhcmQtY29tcGF0IHJlYXNv
bnMpLiAgTWFueSB0aGFua3MgdG8KKyAgQW50aG9uIHZhbiBkZXIgTmV1dCBmb3IgdGhlIGltcGxl
bWVudGF0aW9uIGFuZCB0byBIeW5layBTY2hsYXdhY2sgZm9yCisgIHB1c2hpbmcgdXMuCisKKy0g
Zml4IGlzc3VlIDMwOCAtIGFsbG93IHRvIG1hcmsveGZhaWwvc2tpcCBpbmRpdmlkdWFsIHBhcmFt
ZXRlciBzZXRzCisgIHdoZW4gcGFyYW1ldHJpemluZy4gIFRoYW5rcyBCcmlhbm5hIExhdWdoZXIu
CisKKy0gY2FsbCBuZXcgZXhwZXJpbWVudGFsIHB5dGVzdF9sb2FkX2luaXRpYWxfY29uZnRlc3Rz
IGhvb2sgdG8gYWxsb3cKKyAgM3JkIHBhcnR5IHBsdWdpbnMgdG8gZG8gc29tZXRoaW5nIGJlZm9y
ZSBhIGNvbmZ0ZXN0IGlzIGxvYWRlZC4KKworQnVnIGZpeGVzOgorCistIGZpeCBpc3N1ZTM1OCAt
IGNhcHR1cmluZyBvcHRpb25zIGFyZSBub3cgcGFyc2VkIG1vcmUgcHJvcGVybHkKKyAgYnkgdXNp
bmcgYSBuZXcgcGFyc2VyLnBhcnNlX2tub3duX2FyZ3MgbWV0aG9kLgorCistIHB5dGVzdCBub3cg
dXNlcyBhcmdwYXJzZSBpbnN0ZWFkIG9mIG9wdHBhcnNlICh0aGFua3MgQW50aG9uKSB3aGljaAor
ICBtZWFucyB0aGF0ICJhcmdwYXJzZSIgaXMgYWRkZWQgYXMgYSBkZXBlbmRlbmN5IGlmIGluc3Rh
bGxpbmcgaW50byBweXRob24yLjYKKyAgZW52aXJvbm1lbnRzIG9yIGJlbG93LgorCistIGZpeCBp
c3N1ZTMzMzogZml4IGEgY2FzZSBvZiBiYWQgdW5pdHRlc3QvcHl0ZXN0IGhvb2sgaW50ZXJhY3Rp
b24uCisKKy0gUFIyNzogY29ycmVjdGx5IGhhbmRsZSBub3NlLlNraXBUZXN0IGR1cmluZyBjb2xs
ZWN0aW9uLiAgVGhhbmtzCisgIEFudG9uaW8gQ3VuaSwgUm9ubnkgUGZhbm5zY2htaWR0LgorCist
IGZpeCBpc3N1ZTM1NToganVuaXR4bWwgcHV0cyBuYW1lPSJweXRlc3QiIGF0dHJpYnV0ZSB0byB0
ZXN0c3VpdGUgdGFnLgorCistIGZpeCBpc3N1ZTMzNjogYXV0b3VzZSBmaXh0dXJlIGluIHBsdWdp
bnMgc2hvdWxkIHdvcmsgYWdhaW4uCisKKy0gZml4IGlzc3VlMjc5OiBpbXByb3ZlIG9iamVjdCBj
b21wYXJpc29ucyBvbiBhc3NlcnRpb24gZmFpbHVyZQorICBmb3Igc3RhbmRhcmQgZGF0YXR5cGVz
IGFuZCByZWNvZ25pc2UgY29sbGVjdGlvbnMuYWJjLiAgVGhhbmtzIHRvCisgIEJyaWFubmEgTGF1
Z2hlciBhbmQgTWF0aGlldSBBZ29waWFuLgorCistIGZpeCBpc3N1ZTMxNzogYXNzZXJ0aW9uIHJl
d3JpdGVyIHN1cHBvcnQgZm9yIHRoZSBpc19wYWNrYWdlIG1ldGhvZAorCistIGZpeCBpc3N1ZTMz
NTogZG9jdW1lbnQgcHkuY29kZS5FeGNlcHRpb25JbmZvKCkgb2JqZWN0IHJldHVybmVkCisgIGZy
b20gcHl0ZXN0LnJhaXNlcygpLCB0aGFua3MgTWF0aGlldSBBZ29waWFuLgorCistIHJlbW92ZSBp
bXBsaWNpdCBkaXN0cmlidXRlX3NldHVwIHN1cHBvcnQgZnJvbSBzZXR1cC5weS4KKworLSBmaXgg
aXNzdWUzMDU6IGlnbm9yZSBhbnkgcHJvYmxlbXMgd2hlbiB3cml0aW5nIHB5YyBmaWxlcy4KKwor
LSBTTy0xNzY2NDcwMjogY2FsbCBmaXh0dXJlIGZpbmFsaXplcnMgZXZlbiBpZiB0aGUgZml4dHVy
ZSBmdW5jdGlvbgorICBwYXJ0aWFsbHkgZmFpbGVkIChmaW5hbGl6ZXJzIHdvdWxkIG5vdCBhbHdh
eXMgYmUgY2FsbGVkIGJlZm9yZSkKKworLSBmaXggaXNzdWUzMjAgLSBmaXggY2xhc3Mgc2NvcGUg
Zm9yIGZpeHR1cmVzIHdoZW4gbWl4ZWQgd2l0aAorICBtb2R1bGUtbGV2ZWwgZnVuY3Rpb25zLiAg
VGhhbmtzIEFuYXRsb3kgQnViZW5rb2ZmLgorCistIHlvdSBjYW4gc3BlY2lmeSAiLXEiIG9yICIt
cXEiIHRvIGdldCBkaWZmZXJlbnQgbGV2ZWxzIG9mICJxdWlldGVyIgorICByZXBvcnRpbmcgKHRo
YW5rcyBLYXRhcnp5bmEgSmFjaGltKQorCistIGZpeCBpc3N1ZTMwMCAtIEZpeCBvcmRlciBvZiBj
b25mdGVzdCBsb2FkaW5nIHdoZW4gc3RhcnRpbmcgcHkudGVzdAorICBpbiBhIHN1YmRpcmVjdG9y
eS4KKworLSBmaXggaXNzdWUzMjMgLSBzb3J0aW5nIG9mIG1hbnkgbW9kdWxlLXNjb3BlZCBhcmcg
cGFyYW1ldHJpemF0aW9ucworCistIG1ha2Ugc2Vzc2lvbmZpbmlzaCBob29rcyBleGVjdXRlIHdp
dGggdGhlIHNhbWUgY3dkLWNvbnRleHQgYXMgYXQKKyAgc2Vzc2lvbiBzdGFydCAoaGVscHMgZml4
IHBsdWdpbiBiZWhhdmlvdXIgd2hpY2ggd3JpdGUgb3V0cHV0IGZpbGVzCisgIHdpdGggcmVsYXRp
dmUgcGF0aCBzdWNoIGFzIHB5dGVzdC1jb3YpCisKKy0gZml4IGlzc3VlMzE2IC0gcHJvcGVybHkg
cmVmZXJlbmNlIGNvbGxlY3Rpb24gaG9va3MgaW4gZG9jcworCistIGZpeCBpc3N1ZSAzMDYgLSBj
bGVhbnVwIG9mIC1rLy1tIG9wdGlvbnMgdG8gb25seSBtYXRjaCBtYXJrZXJzL3Rlc3QKKyAgbmFt
ZXMva2V5d29yZHMgcmVzcGVjdGl2ZWx5LiAgVGhhbmtzIFdvdXRlciB2YW4gQWNrb295LgorCist
IGltcHJvdmVkIGRvY3Rlc3QgY291bnRpbmcgZm9yIGRvY3Rlc3RzIGluIHB5dGhvbiBtb2R1bGVz
IC0tCisgIGZpbGVzIHdpdGhvdXQgYW55IGRvY3Rlc3QgaXRlbXMgd2lsbCBub3Qgc2hvdyB1cCBh
bnltb3JlCisgIGFuZCBkb2N0ZXN0IGV4YW1wbGVzIGFyZSBjb3VudGVkIGFzIHNlcGFyYXRlIHRl
c3QgaXRlbXMuCisgIHRoYW5rcyBEYW5pbG8gQmVsbGluaS4KKworLSBmaXggaXNzdWUyNDUgYnkg
ZGVwZW5kaW5nIG9uIHRoZSByZWxlYXNlZCBweS0xLjQuMTQKKyAgd2hpY2ggZml4ZXMgcHkuaW8u
ZHVwZmlsZSB0byB3b3JrIHdpdGggZmlsZXMgd2l0aCBubworICBtb2RlLiBUaGFua3MgSmFzb24g
Ui4gQ29vbWJzLgorCistIGZpeCBqdW5pdHhtbCBnZW5lcmF0aW9uIHdoZW4gdGVzdCBvdXRwdXQg
Y29udGFpbnMgY29udHJvbCBjaGFyYWN0ZXJzLAorICBhZGRyZXNzaW5nIGlzc3VlMjY3LCB0aGFu
a3MgSmFhcCBCcm9la2h1aXplbgorCistIGZpeCBpc3N1ZTMzODogaG9ub3IgLS10YiBzdHlsZSBm
b3Igc2V0dXAvdGVhcmRvd24gZXJyb3JzIGFzIHdlbGwuICBUaGFua3MgTWFoby4KKworLSBmaXgg
aXNzdWUzMDcgLSB1c2UgeWFtbC5zYWZlX2xvYWQgaW4gZXhhbXBsZSwgdGhhbmtzIE1hcmsgRWlj
aGluLgorCistIGJldHRlciBwYXJhbWV0cml6ZSBlcnJvciBtZXNzYWdlcywgdGhhbmtzIEJyaWFu
bmEgTGF1Z2hlcgorCistIHB5dGVzdF90ZXJtaW5hbF9zdW1tYXJ5KHRlcm1pbmFscmVwb3J0ZXIp
IGhvb2tzIGNhbiBub3cgdXNlCisgICIuc2VjdGlvbih0aXRsZSkiIGFuZCAiLmxpbmUobXNnKSIg
bWV0aG9kcyB0byBwcmludCBleHRyYQorICBpbmZvcm1hdGlvbiBhdCB0aGUgZW5kIG9mIGEgdGVz
dCBydW4uCisKKzIuMy41ICgyMDEzLTA0LTMwKQorPT09PT09PT09PT09PT09PT09CisKKy0gZml4
IGlzc3VlMTY5OiByZXNwZWN0IC0tdGI9c3R5bGUgd2l0aCBzZXR1cC90ZWFyZG93biBlcnJvcnMg
YXMgd2VsbC4KKworLSBuZXZlciBjb25zaWRlciBhIGZpeHR1cmUgZnVuY3Rpb24gZm9yIHRlc3Qg
ZnVuY3Rpb24gY29sbGVjdGlvbgorCistIGFsbG93IHJlLXJ1bm5pbmcgb2YgdGVzdCBpdGVtcyAv
IGhlbHBzIHRvIGZpeCBweXRlc3QtcmVydW50ZXN0cyBwbHVnaW4KKyAgYW5kIGFsc28gaGVscCB0
byBrZWVwIGxlc3MgZml4dHVyZS9yZXNvdXJjZSByZWZlcmVuY2VzIGFsaXZlCisKKy0gcHV0IGNh
cHR1cmVkIHN0ZG91dC9zdGRlcnIgaW50byBqdW5pdHhtbCBvdXRwdXQgZXZlbiBmb3IgcGFzc2lu
ZyB0ZXN0cworICAodGhhbmtzIEFkYW0gR291Y2hlcikKKworLSBJc3N1ZSAyNjUgLSBpbnRlZ3Jh
dGUgbm9zZSBzZXR1cC90ZWFyZG93biB3aXRoIHNldHVwc3RhdGUKKyAgc28gaXQgZG9lc24ndCB0
cnkgdG8gdGVhcmRvd24gaWYgaXQgZGlkIG5vdCBzZXR1cAorCistIGlzc3VlIDI3MSAtIGRvbid0
IHdyaXRlIGp1bml0eG1sIG9uIHNsYXZlIG5vZGVzCisKKy0gSXNzdWUgMjc0IC0gZG9uJ3QgdHJ5
IHRvIHNob3cgZnVsbCBkb2N0ZXN0IGV4YW1wbGUKKyAgd2hlbiBkb2N0ZXN0IGRvZXMgbm90IGtu
b3cgdGhlIGV4YW1wbGUgbG9jYXRpb24KKworLSBpc3N1ZSAyODAgLSBkaXNhYmxlIGFzc2VydGlv
biByZXdyaXRpbmcgb24gYnVnZ3kgQ1B5dGhvbiAyLjYuMAorCistIGluamVjdCAiZ2V0Zml4dHVy
ZSgpIiBoZWxwZXIgdG8gcmV0cmlldmUgZml4dHVyZXMgZnJvbSBkb2N0ZXN0cywKKyAgdGhhbmtz
IEFuZHJlYXMgWmVpZGxlcgorCistIGlzc3VlIDI1OSAtIHdoZW4gYXNzZXJ0aW9uIHJld3JpdGlu
ZywgYmUgY29uc2lzdGVudCB3aXRoIHRoZSBkZWZhdWx0CisgIHNvdXJjZSBlbmNvZGluZyBvZiBB
U0NJSSBvbiBQeXRob24gMgorCistIGlzc3VlIDI1MSAtIHJlcG9ydCBhIHNraXAgaW5zdGVhZCBv
ZiBpZ25vcmluZyBjbGFzc2VzIHdpdGggaW5pdAorCistIGlzc3VlMjUwIHVuaWNvZGUvc3RyIG1p
eGVzIGluIHBhcmFtZXRyaXphdGlvbiBuYW1lcyBhbmQgdmFsdWVzIG5vdyB3b3JrcworCistIGlz
c3VlMjU3LCBhc3NlcnRpb24tdHJpZ2dlcmVkIGNvbXBpbGF0aW9uIG9mIHNvdXJjZSBlbmRpbmcg
aW4gYQorICBjb21tZW50IGxpbmUgZG9lc24ndCBibG93IHVwIGluIHB5dGhvbjIuNSAoZml4ZWQg
dGhyb3VnaCBweT49MS40LjEzLmRldjYpCisKKy0gZml4IC0tZ2Vuc2NyaXB0IG9wdGlvbiB0byBn
ZW5lcmF0ZSBzdGFuZGFsb25lIHNjcmlwdHMgdGhhdCBhbHNvCisgIHdvcmsgd2l0aCBweXRob24z
LjMgKGltcG9ydGVyIG9yZGVyaW5nKQorCistIGlzc3VlMTcxIC0gaW4gYXNzZXJ0aW9uIHJld3Jp
dGluZywgc2hvdyB0aGUgcmVwciBvZiBzb21lCisgIGdsb2JhbCB2YXJpYWJsZXMKKworLSBmaXgg
b3B0aW9uIGhlbHAgZm9yICItayIKKworLSBtb3ZlIGxvbmcgZGVzY3JpcHRpb24gb2YgZGlzdHJp
YnV0aW9uIGludG8gUkVBRE1FLnJzdAorCistIGltcHJvdmUgZG9jc3RyaW5nIGZvciBtZXRhZnVu
Yy5wYXJhbWV0cml6ZSgpCisKKy0gZml4IGJ1ZyB3aGVyZSB1c2luZyBjYXBzeXMgd2l0aCBweXRl
c3Quc2V0X3RyYWNlKCkgaW4gYSB0ZXN0CisgIGZ1bmN0aW9uIHdvdWxkIGJyZWFrIHdoZW4gbG9v
a2luZyBhdCBjYXBzeXMucmVhZG91dGVycigpCisKKy0gYWxsb3cgdG8gc3BlY2lmeSBwcmVmaXhl
cyBzdGFydGluZyB3aXRoICJfIiB3aGVuCisgIGN1c3RvbWl6aW5nIHB5dGhvbl9mdW5jdGlvbnMg
dGVzdCBkaXNjb3ZlcnkuICh0aGFua3MgR3JhaGFtIEhvcmxlcikKKworLSBpbXByb3ZlIFBZVEVT
VF9ERUJVRyB0cmFjaW5nIG91dHB1dCBieSBwdXR0aW5nCisgIGV4dHJhIGRhdGEgb24gYSBuZXcg
bGluZXMgd2l0aCBhZGRpdGlvbmFsIGluZGVudAorCistIGVuc3VyZSBPdXRjb21lRXhjZXB0aW9u
cyBsaWtlIHNraXAvZmFpbCBoYXZlIGluaXRpYWxpemVkIGV4Y2VwdGlvbiBhdHRyaWJ1dGVzCisK
Ky0gaXNzdWUgMjYwIC0gZG9uJ3QgdXNlIG5vc2Ugc3BlY2lhbCBzZXR1cCBvbiBwbGFpbiB1bml0
dGVzdCBjYXNlcworCistIGZpeCBpc3N1ZTEzNCAtIHByaW50IHRoZSBjb2xsZWN0IGVycm9ycyB0
aGF0IHByZXZlbnQgcnVubmluZyBzcGVjaWZpZWQgdGVzdCBpdGVtcworCistIGZpeCBpc3N1ZTI2
NiAtIGFjY2VwdCB1bmljb2RlIGluIE1hcmtFdmFsdWF0b3IgZXhwcmVzc2lvbnMKKworMi4zLjQg
KDIwMTItMTEtMjApCis9PT09PT09PT09PT09PT09PT0KKworLSB5aWVsZGVkIHRlc3QgZnVuY3Rp
b25zIHdpbGwgbm93IGhhdmUgYXV0b3VzZS1maXh0dXJlcyBhY3RpdmUgYnV0CisgIGNhbm5vdCBh
Y2NlcHQgZml4dHVyZXMgYXMgZnVuY2FyZ3MgLSBpdCdzIGFueXdheSByZWNvbW1lbmRlZCB0bwor
ICByYXRoZXIgdXNlIHRoZSBwb3N0LTIuMCBwYXJhbWV0cml6ZSBmZWF0dXJlcyBpbnN0ZWFkIG9m
IHlpZWxkLCBzZWU6CisgIGh0dHA6Ly9weXRlc3Qub3JnL2xhdGVzdC9leGFtcGxlL3BhcmFtZXRy
aXplLmh0bWwKKy0gZml4IGF1dG91c2UtaXNzdWUgd2hlcmUgYXV0b3VzZS1maXh0dXJlcyB3b3Vs
ZCBub3QgYmUgZGlzY292ZXJlZAorICBpZiBkZWZpbmVkIGluIGEgYS9jb25mdGVzdC5weSBmaWxl
IGFuZCB0ZXN0cyBpbiBhL3Rlc3RzL3Rlc3Rfc29tZS5weQorLSBmaXggaXNzdWUyMjYgLSBMSUZP
IG9yZGVyaW5nIGZvciBmaXh0dXJlIHRlYXJkb3ducworLSBmaXggaXNzdWUyMjQgLSBpbnZvY2F0
aW9ucyB3aXRoID4yNTYgY2hhciBhcmd1bWVudHMgbm93IHdvcmsKKy0gZml4IGlzc3VlOTEgLSBh
ZGQvZGlzY3VzcyBwYWNrYWdlL2RpcmVjdG9yeSBsZXZlbCBzZXR1cHMgaW4gZXhhbXBsZQorLSBh
bGxvdyB0byBkeW5hbWljYWxseSBkZWZpbmUgbWFya2VycyB2aWEKKyAgaXRlbS5rZXl3b3Jkc1su
Li5dPWFzc2lnbm1lbnQgaW50ZWdyYXRpbmcgd2l0aCAiLW0iIG9wdGlvbgorLSBtYWtlICItayIg
YWNjZXB0IGFuIGV4cHJlc3Npb25zIHRoZSBzYW1lIGFzIHdpdGggIi1tIiBzbyB0aGF0IG9uZQor
ICBjYW4gd3JpdGU6IC1rICJuYW1lMSBvciBuYW1lMiIgZXRjLiAgVGhpcyBpcyBhIHNsaWdodCBp
bmNvbXBhdGliaWxpdHkKKyAgaWYgeW91IHVzZWQgc3BlY2lhbCBzeW50YXggbGlrZSAiVGVzdENs
YXNzLnRlc3RfbWV0aG9kIiB3aGljaCB5b3Ugbm93CisgIG5lZWQgdG8gd3JpdGUgYXMgLWsgIlRl
c3RDbGFzcyBhbmQgdGVzdF9tZXRob2QiIHRvIG1hdGNoIGEgY2VydGFpbgorICBtZXRob2QgaW4g
YSBjZXJ0YWluIHRlc3QgY2xhc3MuCisKKzIuMy4zICgyMDEyLTExLTA2KQorPT09PT09PT09PT09
PT09PT09CisKKy0gZml4IGlzc3VlMjE0IC0gcGFyc2UgbW9kdWxlcyB0aGF0IGNvbnRhaW4gc3Bl
Y2lhbCBvYmplY3RzIGxpa2UgZS4gZy4KKyAgZmxhc2sncyByZXF1ZXN0IG9iamVjdCB3aGljaCBi
bG93cyB1cCBvbiBnZXRhdHRyIGFjY2VzcyBpZiBubyByZXF1ZXN0CisgIGlzIGFjdGl2ZS4gdGhh
bmtzIFRob21hcyBXYWxkbWFubi4KKworLSBmaXggaXNzdWUyMTMgLSBhbGxvdyB0byBwYXJhbWV0
cml6ZSB3aXRoIHZhbHVlcyBsaWtlIG51bXB5IGFycmF5cyB0aGF0CisgIGRvIG5vdCBzdXBwb3J0
IGFuIF9fZXFfXyBvcGVyYXRvcgorCistIGZpeCBpc3N1ZTIxNSAtIHNwbGl0IHRlc3RfcHl0aG9u
Lm9yZyBpbnRvIG11bHRpcGxlIGZpbGVzCisKKy0gZml4IGlzc3VlMTQ4IC0gQHVuaXR0ZXN0LnNr
aXAgb24gY2xhc3NlcyBpcyBub3cgcmVjb2duaXplZCBhbmQgYXZvaWRzCisgIGNhbGxpbmcgc2V0
VXBDbGFzcy90ZWFyRG93bkNsYXNzLCB0aGFua3MgUGF2ZWwgUmVwaW4KKworLSBmaXggaXNzdWUy
MDkgLSByZWludHJvZHVjZSBweXRob24yLjQgc3VwcG9ydCBieSBkZXBlbmRpbmcgb24gbmV3ZXIK
KyAgcHlsaWIgd2hpY2ggcmUtaW50cm9kdWNlZCBzdGF0ZW1lbnQtZmluZGluZyBmb3IgcHJlLUFT
VCBpbnRlcnByZXRlcnMKKworLSBub3NlIHN1cHBvcnQ6IG9ubHkgY2FsbCBzZXR1cCBpZiBpdCdz
IGEgY2FsbGFibGUsIHRoYW5rcyBBbmRyZXcKKyAgVGF1bW9lZm9sYXUKKworLSBmaXggaXNzdWUy
MTkgLSBhZGQgcHkyLjQtMy4zIGNsYXNzaWZpZXJzIHRvIFRST1ZFIGxpc3QKKworLSBpbiB0cmFj
ZWJhY2tzICosKiogYXJnIHZhbHVlcyBhcmUgbm93IHNob3duIG5leHQgdG8gbm9ybWFsIGFyZ3Vt
ZW50cworICAodGhhbmtzIE1hbnVlbCBKYWNvYikKKworLSBmaXggaXNzdWUyMTcgLSBzdXBwb3J0
IG1vY2sucGF0Y2ggd2l0aCBweXRlc3QncyBmaXh0dXJlcyAtIG5vdGUgdGhhdAorICB5b3UgbmVl
ZCBlaXRoZXIgbW9jay0xLjAuMSBvciB0aGUgcHl0aG9uMy4zIGJ1aWx0aW4gdW5pdHRlc3QubW9j
ay4KKworLSBmaXggaXNzdWUxMjcgLSBpbXByb3ZlIGRvY3VtZW50YXRpb24gZm9yIHB5dGVzdF9h
ZGRvcHRpb24oKSBhbmQKKyAgYWRkIGEgYGBjb25maWcuZ2V0b3B0aW9uKG5hbWUpYGAgaGVscGVy
IGZ1bmN0aW9uIGZvciBjb25zaXN0ZW5jeS4KKworMi4zLjIgKDIwMTItMTAtMjUpCis9PT09PT09
PT09PT09PT09PT0KKworLSBmaXggaXNzdWUyMDggYW5kIGZpeCBpc3N1ZTI5IHVzZSBuZXcgcHkg
dmVyc2lvbiB0byBhdm9pZCBsb25nIHBhdXNlcworICB3aGVuIHByaW50aW5nIHRyYWNlYmFja3Mg
aW4gbG9uZyBtb2R1bGVzCisKKy0gZml4IGlzc3VlMjA1IC0gY29uZnRlc3RzIGluIHN1YmRpcnMg
Y3VzdG9taXppbmcKKyAgcHl0ZXN0X3B5Y29sbGVjdF9tYWtlbW9kdWxlIGFuZCBweXRlc3RfcHlj
b2xsZWN0X21ha2VpdGVtCisgIG5vdyB3b3JrIHByb3Blcmx5CisKKy0gZml4IHRlYXJkb3duLW9y
ZGVyaW5nIGZvciBwYXJhbWV0cml6ZWQgc2V0dXBzCisKKy0gZml4IGlzc3VlMTI3IC0gYmV0dGVy
IGRvY3VtZW50YXRpb24gZm9yIHB5dGVzdF9hZGRvcHRpb24KKyAgYW5kIHJlbGF0ZWQgb2JqZWN0
cy4KKworLSBmaXggdW5pdHRlc3QgYmVoYXZpb3VyOiBUZXN0Q2FzZS5ydW50ZXN0IG9ubHkgY2Fs
bGVkIGlmIHRoZXJlIGFyZQorICB0ZXN0IG1ldGhvZHMgZGVmaW5lZAorCistIGltcHJvdmUgdHJp
YWwgc3VwcG9ydDogZG9uJ3QgY29sbGVjdCBpdHMgZW1wdHkKKyAgdW5pdHRlc3QuVGVzdENhc2Uu
cnVuVGVzdCgpIG1ldGhvZAorCistICJweXRob24gc2V0dXAucHkgdGVzdCIgbm93IHdvcmtzIHdp
dGggcHl0ZXN0IGl0c2VsZgorCistIGZpeC9pbXByb3ZlIGludGVybmFsL3BhY2thZ2luZyByZWxh
dGVkIGJpdHM6CisKKyAgLSBleGNlcHRpb24gbWVzc2FnZSBjaGVjayBvZiB0ZXN0X25vc2UucHkg
bm93IHBhc3NlcyBvbiBweXRob24zMyBhcyB3ZWxsCisKKyAgLSBpc3N1ZTIwNiAtIGZpeCB0ZXN0
X2Fzc2VydHJld3JpdGUucHkgdG8gd29yayB3aGVuIGEgZ2xvYmFsCisgICAgUFlUSE9ORE9OVFdS
SVRFQllURUNPREU9MSBpcyBwcmVzZW50CisKKyAgLSBhZGQgdG94LmluaSB0byBweXRlc3QgZGlz
dHJpYnV0aW9uIHNvIHRoYXQgaWdub3JlLWRpcnMgYW5kIG90aGVycyBjb25maWcKKyAgICBiaXRz
IGFyZSBwcm9wZXJseSBkaXN0cmlidXRlZCBmb3IgbWFpbnRhaW5lcnMgd2hvIHJ1biBweXRlc3Qt
b3duIHRlc3RzCisKKzIuMy4xICgyMDEyLTEwLTIwKQorPT09PT09PT09PT09PT09PT09CisKKy0g
Zml4IGlzc3VlMjAyIC0gZml4IHJlZ3Jlc3Npb246IHVzaW5nICJzZWxmIiBmcm9tIGZpeHR1cmUg
ZnVuY3Rpb25zIG5vdworICB3b3JrcyBhcyBleHBlY3RlZCAoaXQncyB0aGUgc2FtZSAic2VsZiIg
aW5zdGFuY2UgdGhhdCBhIHRlc3QgbWV0aG9kCisgIHdoaWNoIHVzZXMgdGhlIGZpeHR1cmUgc2Vl
cykKKworLSBza2lwIHBleHBlY3QgdXNpbmcgdGVzdHMgKHRlc3RfcGRiLnB5IG1vc3RseSkgb24g
ZnJlZWJzZCogc3lzdGVtcworICBkdWUgdG8gcGV4cGVjdCBub3Qgc3VwcG9ydGluZyBpdCBwcm9w
ZXJseSAoaGFuZ2luZykKKworLSBsaW5rIHRvIHdlYiBwYWdlcyBmcm9tIC0tbWFya2VycyBvdXRw
dXQgd2hpY2ggcHJvdmlkZXMgaGVscCBmb3IKKyAgcHl0ZXN0Lm1hcmsuKiB1c2FnZS4KKworMi4z
LjAgKDIwMTItMTAtMTkpCis9PT09PT09PT09PT09PT09PT0KKworLSBmaXggaXNzdWUyMDIgLSBi
ZXR0ZXIgYXV0b21hdGljIG5hbWVzIGZvciBwYXJhbWV0cml6ZWQgdGVzdCBmdW5jdGlvbnMKKy0g
Zml4IGlzc3VlMTM5IC0gaW50cm9kdWNlIEBweXRlc3QuZml4dHVyZSB3aGljaCBhbGxvd3MgZGly
ZWN0IHNjb3BpbmcKKyAgYW5kIHBhcmFtZXRyaXphdGlvbiBvZiBmdW5jYXJnIGZhY3Rvcmllcy4K
Ky0gZml4IGlzc3VlMTk4IC0gY29uZnRlc3QgZml4dHVyZXMgd2VyZSBub3QgZm91bmQgb24gd2lu
ZG93czMyIGluIHNvbWUKKyAgY2lyY3Vtc3RhbmNlcyB3aXRoIG5lc3RlZCBkaXJlY3Rvcnkgc3Ry
dWN0dXJlcyBkdWUgdG8gcGF0aCBtYW5pcHVsYXRpb24gaXNzdWVzCistIGZpeCBpc3N1ZTE5MyBz
a2lwIHRlc3QgZnVuY3Rpb25zIHdpdGggd2VyZSBwYXJhbWV0cml6ZWQgd2l0aCBlbXB0eQorICBw
YXJhbWV0ZXIgc2V0cworLSBmaXggcHl0aG9uMy4zIGNvbXBhdCwgbW9zdGx5IHJlcG9ydGluZyBi
aXRzIHRoYXQgcHJldmlvdXNseSBkZXBlbmRlZAorICBvbiBkaWN0IG9yZGVyaW5nCistIGludHJv
ZHVjZSByZS1vcmRlcmluZyBvZiB0ZXN0cyBieSByZXNvdXJjZSBhbmQgcGFyYW1ldHJpemF0aW9u
IHNldHVwCisgIHdoaWNoIHRha2VzIHByZWNlZGVuY2UgdG8gdGhlIHVzdWFsIGZpbGUtb3JkZXJp
bmcKKy0gZml4IGlzc3VlMTg1IG1vbmtleXBhdGNoaW5nIHRpbWUudGltZSBkb2VzIG5vdCBjYXVz
ZSBweXRlc3QgdG8gZmFpbAorLSBmaXggaXNzdWUxNzIgZHVwbGljYXRlIGNhbGwgb2YgcHl0ZXN0
LmZpeHR1cmUgZGVjb3JhdG9yZWQgc2V0dXBfbW9kdWxlCisgIGZ1bmN0aW9ucworLSBmaXgganVu
aXR4bWw9cGF0aCBjb25zdHJ1Y3Rpb24gc28gdGhhdCBpZiB0ZXN0cyBjaGFuZ2UgdGhlCisgIGN1
cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgYW5kIHRoZSBwYXRoIGlzIGEgcmVsYXRpdmUgcGF0aAor
ICBpdCBpcyBjb25zdHJ1Y3RlZCBjb3JyZWN0bHkgZnJvbSB0aGUgb3JpZ2luYWwgY3VycmVudCB3
b3JraW5nIGRpci4KKy0gZml4ICJweXRob24gc2V0dXAucHkgdGVzdCIgZXhhbXBsZSB0byBjYXVz
ZSBhIHByb3BlciAiZXJybm8iIHJldHVybgorLSBmaXggaXNzdWUxNjUgLSBmaXggYnJva2VuIGRv
YyBsaW5rcyBhbmQgbWVudGlvbiBzdGFja292ZXJmbG93IGZvciBGQVEKKy0gY2F0Y2ggdW5pY29k
ZS1pc3N1ZXMgd2hlbiB3cml0aW5nIGZhaWx1cmUgcmVwcmVzZW50YXRpb25zCisgIHRvIHRlcm1p
bmFsIHRvIHByZXZlbnQgdGhlIHdob2xlIHNlc3Npb24gZnJvbSBjcmFzaGluZworLSBmaXggeGZh
aWwvc2tpcCBjb25mdXNpb246IGEgc2tpcC1tYXJrIG9yIGFuIGltcGVyYXRpdmUgcHl0ZXN0LnNr
aXAKKyAgd2lsbCBub3cgdGFrZSBwcmVjZWRlbmNlIGJlZm9yZSB4ZmFpbC1tYXJrZXJzIGJlY2F1
c2Ugd2UKKyAgY2FuJ3QgZGV0ZXJtaW5lIHhmYWlsL3hwYXNzIHN0YXR1cyBpbiBjYXNlIG9mIGEg
c2tpcC4gc2VlIGFsc286CisgIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTEx
MDU4MjgvaW4tcHktdGVzdC13aGVuLWktZXhwbGljaXRseS1za2lwLWEtdGVzdC10aGF0LWlzLW1h
cmtlZC1hcy14ZmFpbC1ob3ctY2FuLWktZ2V0CisKKy0gYWx3YXlzIHJlcG9ydCBpbnN0YWxsZWQg
M3JkIHBhcnR5IHBsdWdpbnMgaW4gdGhlIGhlYWRlciBvZiBhIHRlc3QgcnVuCisKKy0gZml4IGlz
c3VlMTYwOiBhIGZhaWxpbmcgc2V0dXAgb2YgYW4geGZhaWwtbWFya2VkIHRlc3RzIHNob3VsZAor
ICBiZSByZXBvcnRlZCBhcyB4ZmFpbCAobm90IHhwYXNzKQorCistIGZpeCBpc3N1ZTEyODogc2hv
dyBjYXB0dXJlZCBvdXRwdXQgd2hlbiBjYXBzeXMvY2FwZmQgYXJlIHVzZWQKKworLSBmaXggaXNz
dWUxNzk6IHByb3Blcmx5IHNob3cgdGhlIGRlcGVuZGVuY3kgY2hhaW4gb2YgZmFjdG9yaWVzCisK
Ky0gcGx1Z2lubWFuYWdlci5yZWdpc3RlciguLi4pIG5vdyByYWlzZXMgVmFsdWVFcnJvciBpZiB0
aGUKKyAgcGx1Z2luIGhhcyBiZWVuIGFscmVhZHkgcmVnaXN0ZXJlZCBvciB0aGUgbmFtZSBpcyB0
YWtlbgorCistIGZpeCBpc3N1ZTE1OTogaW1wcm92ZSBodHRwOi8vcHl0ZXN0Lm9yZy9sYXRlc3Qv
ZmFxLmh0bWwKKyAgZXNwZWNpYWxseSB3aXRoIHJlc3BlY3QgdG8gdGhlICJtYWdpYyIgaGlzdG9y
eSwgYWxzbyBtZW50aW9uCisgIHB5dGVzdC1kamFuZ28sIHRyaWFsIGFuZCB1bml0dGVzdCBpbnRl
Z3JhdGlvbi4KKworLSBtYWtlIHJlcXVlc3Qua2V5d29yZHMgYW5kIG5vZGUua2V5d29yZHMgd3Jp
dGFibGUuICBBbGwgZGVzY2VuZGFudAorICBjb2xsZWN0aW9uIG5vZGVzIHdpbGwgc2VlIGtleXdv
cmQgdmFsdWVzLiAgS2V5d29yZHMgYXJlIGRpY3Rpb25hcmllcworICBjb250YWluaW5nIG1hcmtl
cnMgYW5kIG90aGVyIGluZm8uCisKKy0gZml4IGlzc3VlIDE3ODogeG1sIGJpbmFyeSBlc2NhcGVz
IGFyZSBub3cgd3JhcHBlZCBpbiBweS54bWwucmF3CisKKy0gZml4IGlzc3VlIDE3NjogY29ycmVj
dGx5IGNhdGNoIHRoZSBidWlsdGluIEFzc2VydGlvbkVycm9yCisgIGV2ZW4gd2hlbiB3ZSByZXBs
YWNlZCBBc3NlcnRpb25FcnJvciB3aXRoIGEgc3ViY2xhc3Mgb24gdGhlCisgIHB5dGhvbiBsZXZl
bAorCistIGZhY3RvcnkgZGlzY292ZXJ5IG5vIGxvbmdlciBmYWlscyB3aXRoIG1hZ2ljIGdsb2Jh
bCBjYWxsYWJsZXMKKyAgdGhhdCBwcm92aWRlIG5vIHNhbmUgX19jb2RlX18gb2JqZWN0IChtb2Nr
LmNhbGwgZm9yIGV4YW1wbGUpCisKKy0gZml4IGlzc3VlIDE4MjogdGVzdGRpci5pbnByb2Nlc3Nf
cnVuIG5vdyBjb25zaWRlcnMgcGFzc2VkIHBsdWdpbnMKKworLSBmaXggaXNzdWUgMTg4OiBlbnN1
cmUgc3lzLmV4Y19pbmZvIGlzIGNsZWFyIG9uIHB5dGhvbjIKKyAgICAgICAgICAgICAgICAgYmVm
b3JlIGNhbGxpbmcgaW50byBhIHRlc3QKKworLSBmaXggaXNzdWUgMTkxOiBhZGQgdW5pdHRlc3Qg
VGVzdENhc2UgcnVuVGVzdCBtZXRob2Qgc3VwcG9ydAorLSBmaXggaXNzdWUgMTU2OiBtb25rZXlw
YXRjaCBjb3JyZWN0bHkgaGFuZGxlcyBjbGFzcyBsZXZlbCBkZXNjcmlwdG9ycworCistIHJlcG9y
dGluZyByZWZpbmVtZW50czoKKworICAtIHB5dGVzdF9yZXBvcnRfaGVhZGVyIG5vdyByZWNlaXZl
cyBhICJzdGFydGRpciIgc28gdGhhdAorICAgIHlvdSBjYW4gdXNlIHN0YXJ0ZGlyLmJlc3RyZWxw
YXRoKHlvdXJwYXRoKSB0byBzaG93CisgICAgbmljZSByZWxhdGl2ZSBwYXRoCisKKyAgLSBhbGxv
dyBwbHVnaW5zIHRvIGltcGxlbWVudCBib3RoIHB5dGVzdF9yZXBvcnRfaGVhZGVyIGFuZAorICAg
IHB5dGVzdF9zZXNzaW9uc3RhcnQgKHNlc3Npb25zdGFydCBpcyBpbnZva2VkIGZpcnN0KS4KKwor
ICAtIGRvbid0IHNob3cgZGVzZWxlY3RlZCByZWFzb24gbGluZSBpZiB0aGVyZSBpcyBub25lCisK
KyAgLSBweS50ZXN0IC12diB3aWxsIHNob3cgYWxsIG9mIGFzc2VydCBjb21wYXJpc29ucyBpbnN0
ZWFkIG9mIHRydW5jYXRpbmcKKworMi4yLjQgKDIwMTItMDUtMjIpCis9PT09PT09PT09PT09PT09
PT0KKworLSBmaXggZXJyb3IgbWVzc2FnZSBmb3IgcmV3cml0dGVuIGFzc2VydGlvbnMgaW52b2x2
aW5nIHRoZSAlIG9wZXJhdG9yCistIGZpeCBpc3N1ZSAxMjY6IGNvcnJlY3RseSBtYXRjaCBhbGwg
aW52YWxpZCB4bWwgY2hhcmFjdGVycyBmb3IganVuaXR4bWwKKyAgYmluYXJ5IGVzY2FwZQorLSBm
aXggaXNzdWUgd2l0aCB1bml0dGVzdDogbm93IEB1bml0dGVzdC5leHBlY3RlZEZhaWx1cmUgbWFy
a2VycyBzaG91bGQKKyAgYmUgcHJvY2Vzc2VkIGNvcnJlY3RseSAoeW91IGNhbiBhbHNvIHVzZSBA
cHl0ZXN0Lm1hcmsgbWFya2VycykKKy0gZG9jdW1lbnQgaW50ZWdyYXRpb24gd2l0aCB0aGUgZXh0
ZW5kZWQgZGlzdHJpYnV0ZS9zZXR1cHRvb2xzIHRlc3QgY29tbWFuZHMKKy0gZml4IGlzc3VlIDE0
MDogcHJvcGVybHkgZ2V0IHRoZSByZWFsIGZ1bmN0aW9ucworICBvZiBib3VuZCBjbGFzc21ldGhv
ZHMgZm9yIHNldHVwL3RlYXJkb3duX2NsYXNzCistIGZpeCBpc3N1ZSAjMTQxOiBzd2l0Y2ggZnJv
bSB0aGUgZGVjZWFzZWQgcGFzdGUucG9jb28ub3JnIHRvIGJwYXN0ZS5uZXQKKy0gZml4IGlzc3Vl
ICMxNDM6IGNhbGwgdW5jb25maWd1cmUvc2Vzc2lvbmZpbmlzaCBhbHdheXMgd2hlbgorICBjb25m
aWd1cmUvc2Vzc2lvbnN0YXJ0IHdoZXJlIGNhbGxlZAorLSBmaXggaXNzdWUgIzE0NDogYmV0dGVy
IG1hbmdsZSB0ZXN0IGlkcyB0byBqdW5pdHhtbCBjbGFzc25hbWVzCistIHVwZ3JhZGUgZGlzdHJp
YnV0ZV9zZXR1cC5weSB0byAwLjYuMjcKKworMi4yLjMgKDIwMTItMDItMDUpCis9PT09PT09PT09
PT09PT09PT0KKworLSBmaXggdXBsb2FkZWQgcGFja2FnZSB0byBvbmx5IGluY2x1ZGUgbmVjZXNz
YXJ5IGZpbGVzCisKKzIuMi4yICgyMDEyLTAyLTA1KQorPT09PT09PT09PT09PT09PT09CisKKy0g
Zml4IGlzc3VlMTAxOiB3cm9uZyBhcmdzIHRvIHVuaXR0ZXN0LlRlc3RDYXNlIHRlc3QgZnVuY3Rp
b24gbm93CisgIHByb2R1Y2UgYmV0dGVyIG91dHB1dAorLSBmaXggaXNzdWUxMDI6IHJlcG9ydCBt
b3JlIHVzZWZ1bCBlcnJvcnMgYW5kIGhpbnRzIGZvciB3aGVuIGEKKyAgdGVzdCBkaXJlY3Rvcnkg
d2FzIHJlbmFtZWQgYW5kIHNvbWUgcHljL19fcHljYWNoZV9fIHJlbWFpbgorLSBmaXggaXNzdWUx
MDY6IGFsbG93IHBhcmFtZXRyaXplIHRvIGJlIGFwcGxpZWQgbXVsdGlwbGUgdGltZXMKKyAgZS5n
LiBmcm9tIG1vZHVsZSwgY2xhc3MgYW5kIGF0IGZ1bmN0aW9uIGxldmVsLgorLSBmaXggaXNzdWUx
MDc6IGFjdHVhbGx5IHBlcmZvcm0gc2Vzc2lvbiBzY29wZSBmaW5hbGl6YXRpb24KKy0gZG9uJ3Qg
Y2hlY2sgaW4gcGFyYW1ldHJpemUgaWYgaW5kaXJlY3QgcGFyYW1ldGVycyBhcmUgZnVuY2FyZyBu
YW1lcworLSBhZGQgY2hkaXIgbWV0aG9kIHRvIG1vbmtleXBhdGNoIGZ1bmNhcmcKKy0gZml4IGNy
YXNoIHJlc3VsdGluZyBmcm9tIGNhbGxpbmcgbW9ua2V5cGF0Y2ggdW5kbyBhIHNlY29uZCB0aW1l
CistIGZpeCBpc3N1ZTExNTogbWFrZSAtLWNvbGxlY3Rvbmx5IHJvYnVzdCBhZ2FpbnN0IGVhcmx5
IGZhaWx1cmUKKyAgKG1pc3NpbmcgZmlsZXMvZGlyZWN0b3JpZXMpCistICItcXEgLS1jb2xsZWN0
b25seSIgbm93IHNob3dzIG9ubHkgZmlsZXMgYW5kIHRoZSBudW1iZXIgb2YgdGVzdHMgaW4gdGhl
bQorLSAiLXEgLS1jb2xsZWN0b25seSIgbm93IHNob3dzIHRlc3QgaWRzCistIGFsbG93IGFkZGlu
ZyBvZiBhdHRyaWJ1dGVzIHRvIHRlc3QgcmVwb3J0cyBzdWNoIHRoYXQgaXQgYWxzbyB3b3Jrcwor
ICB3aXRoIGRpc3RyaWJ1dGVkIHRlc3RpbmcgKG5vIHVwZ3JhZGUgb2YgcHl0ZXN0LXhkaXN0IG5l
ZWRlZCkKKworMi4yLjEgKDIwMTEtMTItMTYpCis9PT09PT09PT09PT09PT09PT0KKworLSBmaXgg
aXNzdWU5OSAoaW4gcHl0ZXN0IGFuZCBweSkgaW50ZXJuYWxsZXJyb3JzIHdpdGggcmVzdWx0bG9n
IG5vdworICBwcm9kdWNlIGJldHRlciBvdXRwdXQgLSBmaXhlZCBieSBub3JtYWxpemluZyBweXRl
c3RfaW50ZXJuYWxlcnJvcgorICBpbnB1dCBhcmd1bWVudHMuCistIGZpeCBpc3N1ZTk3IC8gdHJh
Y2ViYWNrIGlzc3VlcyAoaW4gcHl0ZXN0IGFuZCBweSkgaW1wcm92ZSB0cmFjZWJhY2sgb3V0cHV0
CisgIGluIGNvbmp1bmN0aW9uIHdpdGggamluamEyIGFuZCBjeXRob24gd2hpY2ggaGFjayB0cmFj
ZWJhY2tzCistIGZpeCBpc3N1ZTkzIChpbiBweXRlc3QgYW5kIHB5dGVzdC14ZGlzdCkgYXZvaWQg
ImRlbGF5ZWQgdGVhcmRvd25zIjoKKyAgdGhlIGZpbmFsIHRlc3QgaW4gYSB0ZXN0IG5vZGUgd2ls
bCBub3cgcnVuIGl0cyB0ZWFyZG93biBkaXJlY3RseQorICBpbnN0ZWFkIG9mIHdhaXRpbmcgZm9y
IHRoZSBlbmQgb2YgdGhlIHNlc3Npb24uIFRoYW5rcyBEYXZlIEh1bnQgZm9yCisgIHRoZSBnb29k
IHJlcG9ydGluZyBhbmQgZmVlZGJhY2suICBUaGUgcHl0ZXN0X3J1bnRlc3RfcHJvdG9jb2wgYXMg
d2VsbAorICBhcyB0aGUgcHl0ZXN0X3J1bnRlc3RfdGVhcmRvd24gaG9va3Mgbm93IGhhdmUgIm5l
eHRpdGVtIiBhdmFpbGFibGUKKyAgd2hpY2ggd2lsbCBiZSBOb25lIGluZGljYXRpbmcgdGhlIGVu
ZCBvZiB0aGUgdGVzdCBydW4uCistIGZpeCBjb2xsZWN0aW9uIGNyYXNoIGR1ZSB0byB1bmtub3du
LXNvdXJjZSBjb2xsZWN0ZWQgaXRlbXMsIHRoYW5rcworICB0byBSYWxmIFNjaG1pdHQgKGZpeGVk
IGJ5IGRlcGVuZGluZyBvbiBhIG1vcmUgcmVjZW50IHB5bGliKQorCisyLjIuMCAoMjAxMS0xMS0x
OCkKKz09PT09PT09PT09PT09PT09PQorCistIGZpeCBpc3N1ZTkwOiBpbnRyb2R1Y2UgZWFnZXIg
dGVhcmluZyBkb3duIG9mIHRlc3QgaXRlbXMgc28gdGhhdAorICB0ZWFyZG93biBmdW5jdGlvbiBh
cmUgY2FsbGVkIGVhcmxpZXIuCistIGFkZCBhbiBhbGwtcG93ZXJmdWwgbWV0YWZ1bmMucGFyYW1l
dHJpemUgZnVuY3Rpb24gd2hpY2ggYWxsb3dzIHRvCisgIHBhcmFtZXRyaXplIHRlc3QgZnVuY3Rp
b24gYXJndW1lbnRzIGluIG11bHRpcGxlIHN0ZXBzIGFuZCB0aGVyZWZvcmUKKyAgZnJvbSBpbmRl
cGVuZGVudCBwbHVnaW5zIGFuZCBwbGFjZXMuCistIGFkZCBhIEBweXRlc3QubWFyay5wYXJhbWV0
cml6ZSBoZWxwZXIgd2hpY2ggYWxsb3dzIHRvIGVhc2lseQorICBjYWxsIGEgdGVzdCBmdW5jdGlv
biB3aXRoIGRpZmZlcmVudCBhcmd1bWVudCB2YWx1ZXMKKy0gQWRkIGV4YW1wbGVzIHRvIHRoZSAi
cGFyYW1ldHJpemUiIGV4YW1wbGUgcGFnZSwgaW5jbHVkaW5nIGEgcXVpY2sgcG9ydAorICBvZiBU
ZXN0IHNjZW5hcmlvcyBhbmQgdGhlIG5ldyBwYXJhbWV0cml6ZSBmdW5jdGlvbiBhbmQgZGVjb3Jh
dG9yLgorLSBpbnRyb2R1Y2UgcmVnaXN0cmF0aW9uIGZvciAicHl0ZXN0Lm1hcmsuKiIgaGVscGVy
cyB2aWEgaW5pLWZpbGVzCisgIG9yIHRocm91Z2ggcGx1Z2luIGhvb2tzLiAgQWxzbyBpbnRyb2R1
Y2UgYSAiLS1zdHJpY3QiIG9wdGlvbiB3aGljaAorICB3aWxsIHRyZWF0IHVucmVnaXN0ZXJlZCBt
YXJrZXJzIGFzIGVycm9ycworICBhbGxvd2luZyB0byBhdm9pZCB0eXBvcyBhbmQgbWFpbnRhaW4g
YSB3ZWxsIGRlc2NyaWJlZCBzZXQgb2YgbWFya2VycworICBmb3IgeW91ciB0ZXN0IHN1aXRlLiAg
U2VlIGV4YXBsZXMgYXQgaHR0cDovL3B5dGVzdC5vcmcvbGF0ZXN0L21hcmsuaHRtbAorICBhbmQg
aXRzIGxpbmtzLgorLSBpc3N1ZTUwOiBpbnRyb2R1Y2UgIi1tIG1hcmtlciIgb3B0aW9uIHRvIHNl
bGVjdCB0ZXN0cyBiYXNlZCBvbiBtYXJrZXJzCisgICh0aGlzIGlzIGEgc3RyaWN0ZXIgYW5kIG1v
cmUgcHJlZGljdGFibGUgdmVyc2lvbiBvZiAnLWsnIGluIHRoYXQgIi1tIgorICBvbmx5IG1hdGNo
ZXMgY29tcGxldGUgbWFya2VycyBhbmQgaGFzIG1vcmUgb2J2aW91cyBydWxlcyBmb3IgYW5kL29y
CisgIHNlbWFudGljcy4KKy0gbmV3IGZlYXR1cmUgdG8gaGVscCBvcHRpbWl6aW5nIHRoZSBzcGVl
ZCBvZiB5b3VyIHRlc3RzOgorICAtLWR1cmF0aW9ucz1OIG9wdGlvbiBmb3IgZGlzcGxheWluZyBO
IHNsb3dlc3QgdGVzdCBjYWxscworICBhbmQgc2V0dXAvdGVhcmRvd24gbWV0aG9kcy4KKy0gZml4
IGlzc3VlODc6IC0tcGFzdGViaW4gbm93IHdvcmtzIHdpdGggcHl0aG9uMworLSBmaXggaXNzdWU4
OTogLS1wZGIgd2l0aCB1bmV4cGVjdGVkIGV4Y2VwdGlvbnMgaW4gZG9jdGVzdCB3b3JrIG1vcmUg
c2Vuc2libHkKKy0gZml4IGFuZCBjbGVhbnVwIHB5dGVzdCdzIG93biB0ZXN0IHN1aXRlIHRvIG5v
dCBsZWFrIEZEcworLSBmaXggaXNzdWU4MzogbGluayB0byBnZW5lcmF0ZWQgZnVuY2FyZyBsaXN0
CistIGZpeCBpc3N1ZTc0OiBweWFyZyBtb2R1bGUgbmFtZXMgYXJlIG5vdyBjaGVja2VkIGFnYWlu
c3QgaW1wLmZpbmRfbW9kdWxlIGZhbHNlIHBvc2l0aXZlcworLSBmaXggY29tcGF0aWJpbGl0eSB3
aXRoIHR3aXN0ZWQvdHJpYWwtMTEuMS4wIHVzZSBjYXNlcworLSBzaW1wbGlmeSBOb2RlLmxpc3Rj
aGFpbgorLSBzaW1wbGlmeSBqdW5pdHhtbCBvdXRwdXQgY29kZSBieSByZWx5aW5nIG9uIHB5Lnht
bAorLSBhZGQgc3VwcG9ydCBmb3Igc2tpcCBwcm9wZXJ0aWVzIG9uIHVuaXR0ZXN0IGNsYXNzZXMg
YW5kIGZ1bmN0aW9ucworCisyLjEuMyAoMjAxMS0xMC0xOCkKKz09PT09PT09PT09PT09PT09PQor
CistIGZpeCBpc3N1ZTc5OiBhc3NlcnRpb24gcmV3cml0aW5nIGZhaWxlZCBvbiBzb21lIGNvbXBh
cmlzb25zIGluIGJvb2xvcHMKKy0gY29ycmVjdGx5IGhhbmRsZSB6ZXJvIGxlbmd0aCBhcmd1bWVu
dHMgKGEgbGEgcHl0ZXN0ICcnKQorLSBmaXggaXNzdWU2NyAvIGp1bml0eG1sIG5vdyBjb250YWlu
cyBjb3JyZWN0IHRlc3QgZHVyYXRpb25zLCB0aGFua3Mgcm9ubnkKKy0gZml4IGlzc3VlNzUgLyBz
a2lwcGluZyB0ZXN0IGZhaWx1cmUgb24ganl0aG9uCistIGZpeCBpc3N1ZTc3IC8gQWxsb3cgYXNz
ZXJ0cmVwcl9jb21wYXJlIGhvb2sgdG8gYXBwbHkgdG8gYSBzdWJzZXQgb2YgdGVzdHMKKworMi4x
LjIgKDIwMTEtMDktMjQpCis9PT09PT09PT09PT09PT09PT0KKworLSBmaXggYXNzZXJ0aW9uIHJl
d3JpdGluZyBvbiBmaWxlcyB3aXRoIHdpbmRvd3MgbmV3bGluZXMgb24gc29tZSBQeXRob24gdmVy
c2lvbnMKKy0gcmVmaW5lIHRlc3QgZGlzY292ZXJ5IGJ5IHBhY2thZ2UvbW9kdWxlIG5hbWUgKC0t
cHlhcmdzKSwgdGhhbmtzIEZsb3JpYW4gTWF5ZXIKKy0gZml4IGlzc3VlNjkgLyBhc3NlcnRpb24g
cmV3cml0aW5nIGZpeGVkIG9uIHNvbWUgYm9vbGVhbiBvcGVyYXRpb25zCistIGZpeCBpc3N1ZTY4
IC8gcGFja2FnZXMgbm93IHdvcmsgd2l0aCBhc3NlcnRpb24gcmV3cml0aW5nCistIGZpeCBpc3N1
ZTY2OiB1c2UgZGlmZmVyZW50IGFzc2VydGlvbiByZXdyaXRpbmcgY2FjaGVzIHdoZW4gdGhlIC1P
IG9wdGlvbiBpcyBwYXNzZWQKKy0gZG9uJ3QgdHJ5IGFzc2VydGlvbiByZXdyaXRpbmcgb24gSnl0
aG9uLCB1c2UgcmVpbnRlcnAKKworMi4xLjEKKz09PT09CisKKy0gZml4IGlzc3VlNjQgLyBweXRl
c3Quc2V0X3RyYWNlIG5vdyB3b3JrcyB3aXRoaW4gcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzIGhvb2tz
CistIGZpeCBpc3N1ZTYwIC8gZml4IGVycm9yIGNvbmRpdGlvbnMgaW52b2x2aW5nIHRoZSBjcmVh
dGlvbiBvZiBfX3B5Y2FjaGVfXworLSBmaXggaXNzdWU2MyAvIGFzc2VydGlvbiByZXdyaXRpbmcg
b24gaW5zZXJ0cyBpbnZvbHZpbmcgc3RyaW5ncyBjb250YWluaW5nICclJworLSBmaXggYXNzZXJ0
aW9uIHJld3JpdGluZyBvbiBjYWxscyB3aXRoIGEgKiogYXJnCistIGRvbid0IGNhY2hlIHJld3Jp
dHRlbiBtb2R1bGVzIGlmIGJ5dGVjb2RlIGdlbmVyYXRpb24gaXMgZGlzYWJsZWQKKy0gZml4IGFz
c2VydGlvbiByZXdyaXRpbmcgaW4gcmVhZC1vbmx5IGRpcmVjdG9yaWVzCistIGZpeCBpc3N1ZTU5
OiBwcm92aWRlIHN5c3RlbS1vdXQvZXJyIHRhZ3MgZm9yIGp1bml0eG1sIG91dHB1dAorLSBmaXgg
aXNzdWU2MTogYXNzZXJ0aW9uIHJld3JpdGluZyBvbiBib29sZWFuIG9wZXJhdGlvbnMgd2l0aCAz
IG9yIG1vcmUgb3BlcmFuZHMKKy0geW91IGNhbiBub3cgYnVpbGQgYSBtYW4gcGFnZSB3aXRoICJj
ZCBkb2MgOyBtYWtlIG1hbiIKKworMi4xLjAgKDIwMTEtMDctMDkpCis9PT09PT09PT09PT09PT09
PT0KKworLSBmaXggaXNzdWU1MyBjYWxsIG5vc2VzdHlsZSBzZXR1cCBmdW5jdGlvbnMgd2l0aCBj
b3JyZWN0IG9yZGVyaW5nCistIGZpeCBpc3N1ZTU4IGFuZCBpc3N1ZTU5OiBuZXcgYXNzZXJ0aW9u
IGNvZGUgZml4ZXMKKy0gbWVyZ2UgQmVuamFtaW4ncyBhc3NlcnRpb25yZXdyaXRlIGJyYW5jaDog
bm93IGFzc2VydGlvbnMKKyAgZm9yIHRlc3QgbW9kdWxlcyBvbiBweXRob24gMi42IGFuZCBhYm92
ZSBhcmUgZG9uZSBieSByZXdyaXRpbmcKKyAgdGhlIEFTVCBhbmQgc2F2aW5nIHRoZSBweWMgZmls
ZSBiZWZvcmUgdGhlIHRlc3QgbW9kdWxlIGlzIGltcG9ydGVkLgorICBzZWUgZG9jL2Fzc2VydC50
eHQgZm9yIG1vcmUgaW5mby4KKy0gZml4IGlzc3VlNDM6IGltcHJvdmUgZG9jdGVzdHMgd2l0aCBi
ZXR0ZXIgdHJhY2ViYWNrIHJlcG9ydGluZyBvbgorICB1bmV4cGVjdGVkIGV4Y2VwdGlvbnMKKy0g
Zml4IGlzc3VlNDc6IHRpbWluZyBvdXRwdXQgaW4ganVuaXR4bWwgZm9yIHRlc3QgY2FzZXMgaXMg
bm93IGNvcnJlY3QKKy0gZml4IGlzc3VlNDg6IHR5cG8gaW4gTWFya0luZm8gcmVwciBsZWFkaW5n
IHRvIGV4Y2VwdGlvbgorLSBmaXggaXNzdWU0OTogYXZvaWQgY29uZnVzaW5nIGVycm9yIHdoZW4g
aW5pdGl6YWxpYXRpb24gcGFydGlhbGx5IGZhaWxzCistIGZpeCBpc3N1ZTQ0OiBlbnYvdXNlcm5h
bWUgZXhwYW5zaW9uIGZvciBqdW5pdHhtbCBmaWxlIHBhdGgKKy0gc2hvdyByZWxlYXNlbGV2ZWwg
aW5mb3JtYXRpb24gaW4gdGVzdCBydW5zIGZvciBweXB5CistIHJld29ya2VkIGRvYyBwYWdlcyBm
b3IgYmV0dGVyIG5hdmlnYXRpb24gYW5kIFBERiBnZW5lcmF0aW9uCistIHJlcG9ydCBLZXlib2Fy
ZEludGVycnVwdCBldmVuIGlmIGludGVycnVwdGVkIGR1cmluZyBzZXNzaW9uIHN0YXJ0dXAKKy0g
Zml4IGlzc3VlIDM1IC0gcHJvdmlkZSBQREYgZG9jIHZlcnNpb24gYW5kIGRvd25sb2FkIGxpbmsg
ZnJvbSBpbmRleCBwYWdlCisKKzIuMC4zICgyMDExLTA1LTExKQorPT09PT09PT09PT09PT09PT09
CisKKy0gZml4IGlzc3VlMzg6IG5pY2VyIHRyYWNlYmFja3Mgb24gY2FsbHMgdG8gaG9va3MsIHBh
cnRpY3VsYXJseSBlYXJseQorICBjb25maWd1cmUvc2Vzc2lvbnN0YXJ0IG9uZXMKKworLSBmaXgg
bWlzc2luZyBza2lwIHJlYXNvbi9tZXRhIGluZm9ybWF0aW9uIGluIGp1bml0eG1sIGZpbGVzLCBy
ZXBvcnRlZAorICB2aWEgaHR0cDovL2xpc3RzLmlkeWxsLm9yZy9waXBlcm1haWwvdGVzdGluZy1p
bi1weXRob24vMjAxMS1NYXJjaC8wMDM5MjguaHRtbAorCistIGZpeCBpc3N1ZTM0OiBhdm9pZCBj
b2xsZWN0aW9uIGZhaWx1cmUgd2l0aCAidGVzdCIgcHJlZml4ZWQgY2xhc3NlcworICBkZXJpdmlu
ZyBmcm9tIG9iamVjdC4KKworLSBkb24ndCByZXF1aXJlIHpsaWIgKGFuZCBvdGhlciBsaWJzKSBm
b3IgZ2Vuc2NyaXB0IHBsdWdpbiB3aXRob3V0CisgIC0tZ2Vuc2NyaXB0IGFjdHVhbGx5IGJlaW5n
IHVzZWQuCisKKy0gc3BlZWQgdXAgc2tpcHMgKGJ5IG5vdCBkb2luZyBhIGZ1bGwgdHJhY2ViYWNr
IHJlcHJlc2VudGF0aW9uCisgIGludGVybmFsbHkpCisKKy0gZml4IGlzc3VlMzc6IGF2b2lkIGlu
dmFsaWQgY2hhcmFjdGVycyBpbiBqdW5pdHhtbCdzIG91dHB1dAorCisyLjAuMiAoMjAxMS0wMy0w
OSkKKz09PT09PT09PT09PT09PT09PQorCistIHRhY2tsZSBpc3N1ZTMyIC0gc3BlZWQgdXAgdGVz
dCBydW5zIG9mIHZlcnkgcXVpY2sgdGVzdCBmdW5jdGlvbnMKKyAgYnkgcmVkdWNpbmcgdGhlIHJl
bGF0aXZlIG92ZXJoZWFkCisKKy0gZml4IGlzc3VlMzAgLSBleHRlbmRlZCB4ZmFpbC9za2lwaWYg
aGFuZGxpbmcgYW5kIGltcHJvdmVkIHJlcG9ydGluZy4KKyAgSWYgeW91IGhhdmUgYSBzeW50YXgg
ZXJyb3IgaW4geW91ciBza2lwL3hmYWlsCisgIGV4cHJlc3Npb25zIHlvdSBub3cgZ2V0IG5pY2Ug
ZXJyb3IgcmVwb3J0cy4KKworICBBbHNvIHlvdSBjYW4gbm93IGFjY2VzcyBtb2R1bGUgZ2xvYmFs
cyBmcm9tIHhmYWlsL3NraXBpZgorICBleHByZXNzaW9ucyBzbyB0aGF0IHRoaXMgZm9yIGV4YW1w
bGUgd29ya3Mgbm93OjoKKworICAgIGltcG9ydCBweXRlc3QKKyAgICBpbXBvcnQgbXltb2R1bGUK
KyAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKCJteW1vZHVsZS5fX3ZlcnNpb25fX1swXSA9PSAiMSIp
CisgICAgZGVmIHRlc3RfZnVuY3Rpb24oKToKKyAgICAgICAgcGFzcworCisgIFRoaXMgd2lsbCBu
b3QgcnVuIHRoZSB0ZXN0IGZ1bmN0aW9uIGlmIHRoZSBtb2R1bGUncyB2ZXJzaW9uIHN0cmluZwor
ICBkb2VzIG5vdCBzdGFydCB3aXRoIGEgIjEiLiAgTm90ZSB0aGF0IHNwZWNpZnlpbmcgYSBzdHJp
bmcgaW5zdGVhZAorICBvZiBhIGJvb2xlYW4gZXhwcmVzc2lvbnMgYWxsb3dzIHB5LnRlc3QgdG8g
cmVwb3J0IG1lYW5pbmdmdWwgaW5mb3JtYXRpb24KKyAgd2hlbiBzdW1tYXJpemluZyBhIHRlc3Qg
cnVuIGFzIHRvIHdoYXQgY29uZGl0aW9ucyBsZWFkIHRvIHNraXBwaW5nCisgIChvciB4ZmFpbC1p
bmcpIHRlc3RzLgorCistIGZpeCBpc3N1ZTI4IC0gc2V0dXBfbWV0aG9kIGFuZCBweXRlc3RfZ2Vu
ZXJhdGVfdGVzdHMgd29yayB0b2dldGhlcgorICBUaGUgc2V0dXBfbWV0aG9kIGZpeHR1cmUgbWV0
aG9kIG5vdyBnZXRzIGNhbGxlZCBhbHNvIGZvcgorICB0ZXN0IGZ1bmN0aW9uIGludm9jYXRpb25z
IGdlbmVyYXRlZCBmcm9tIHRoZSBweXRlc3RfZ2VuZXJhdGVfdGVzdHMKKyAgaG9vay4KKworLSBm
aXggaXNzdWUyNyAtIGNvbGxlY3Rvbmx5IGFuZCBrZXl3b3JkLXNlbGVjdGlvbiAoLWspIG5vdyB3
b3JrIHRvZ2V0aGVyCisgIEFsc28sIGlmIHlvdSBkbyAicHkudGVzdCAtLWNvbGxlY3Rvbmx5IC1x
IiB5b3Ugbm93IGdldCBhIGZsYXQgbGlzdAorICBvZiB0ZXN0IGlkcyB0aGF0IHlvdSBjYW4gdXNl
IHRvIHBhc3RlIHRvIHRoZSBweS50ZXN0IGNvbW1hbmRsaW5lCisgIGluIG9yZGVyIHRvIGV4ZWN1
dGUgYSBwYXJ0aWN1bGFyIHRlc3QuCisKKy0gZml4IGlzc3VlMjUgYXZvaWQgcmVwb3J0ZWQgcHJv
YmxlbXMgd2l0aCAtLXBkYiBhbmQgcHl0aG9uMy4yL2VuY29kaW5ncyBvdXRwdXQKKworLSBmaXgg
aXNzdWUyMyAtIHRtcGRpciBhcmd1bWVudCBub3cgd29ya3Mgb24gUHl0aG9uMy4yIGFuZCBXaW5k
b3dzWFAKKyAgU3RhcnRpbmcgd2l0aCBQeXRob24zLjIgb3Muc3ltbGluayBtYXkgYmUgc3VwcG9y
dGVkLiBCeSByZXF1aXJpbmcKKyAgYSBuZXdlciBweSBsaWIgdmVyc2lvbiB0aGUgcHkucGF0aC5s
b2NhbCgpIGltcGxlbWVudGF0aW9uIGFja25vd2xlZGdlcworICB0aGlzLgorCistIGZpeGVkIHR5
cG9zIGluIHRoZSBkb2NzICh0aGFua3MgVmljdG9yIEdhcmNpYSwgQnJpYW5uYSBMYXVnaGVyKSBh
bmQgcGFydGljdWxhcgorICB0aGFua3MgdG8gTGF1cmEgQ3JlaWdodG9uIHdobyBhbHNvIHJldmll
d2VkIHBhcnRzIG9mIHRoZSBkb2N1bWVudGF0aW9uLgorCistIGZpeCBzbGlnaHRseSB3cm9uZyBv
dXRwdXQgb2YgdmVyYm9zZSBwcm9ncmVzcyByZXBvcnRpbmcgZm9yIGNsYXNzZXMKKyAgKHRoYW5r
cyBBbWF1cnkpCisKKy0gbW9yZSBwcmVjaXNlIChhdm9pZGluZyBvZikgZGVwcmVjYXRpb24gd2Fy
bmluZ3MgZm9yIG5vZGUuQ2xhc3N8RnVuY3Rpb24gYWNjZXNzZXMKKworLSBhdm9pZCBzdGQgdW5p
dHRlc3QgYXNzZXJ0aW9uIGhlbHBlciBjb2RlIGluIHRyYWNlYmFja3MgKHRoYW5rcyBSb25ueSkK
KworMi4wLjEgKDIwMTEtMDItMDcpCis9PT09PT09PT09PT09PT09PT0KKworLSByZWZpbmUgYW5k
IHVuaWZ5IGluaXRpYWwgY2FwdHVyaW5nIHNvIHRoYXQgaXQgd29ya3MgbmljZWx5CisgIGV2ZW4g
aWYgdGhlIGxvZ2dpbmcgbW9kdWxlIGlzIHVzZWQgb24gYW4gZWFybHktbG9hZGVkIGNvbmZ0ZXN0
LnB5CisgIGZpbGUgb3IgcGx1Z2luLgorLSBhbGxvdyB0byBvbWl0ICIoKSIgaW4gdGVzdCBpZHMg
dG8gYWxsb3cgZm9yIHVuaWZvcm0gdGVzdCBpZHMKKyAgYXMgcHJvZHVjZWQgYnkgQWxmcmVkbydz
IG5pY2UgcHl0ZXN0LnZpbSBwbHVnaW4uCistIGZpeCBpc3N1ZTEyIC0gc2hvdyBwbHVnaW4gdmVy
c2lvbnMgd2l0aCAiLS12ZXJzaW9uIiBhbmQKKyAgIi0tdHJhY2Vjb25maWciIGFuZCBhbHNvIGRv
Y3VtZW50IGhvdyB0byBhZGQgZXh0cmEgaW5mb3JtYXRpb24KKyAgdG8gcmVwb3J0aW5nIHRlc3Qg
aGVhZGVyCistIGZpeCBpc3N1ZTE3IChpbXBvcnQtKiByZXBvcnRpbmcgaXNzdWUgb24gcHl0aG9u
MykgYnkKKyAgcmVxdWlyaW5nIHB5PjEuNC4wICgxLjQuMSBpcyBnb2luZyB0byBpbmNsdWRlIGl0
KQorLSBmaXggaXNzdWUxMCAobnVtcHkgYXJyYXlzIHRydXRoIGNoZWNraW5nKSBieSByZWZpbmlu
ZworICBhc3NlcnRpb24gaW50ZXJwcmV0YXRpb24gaW4gcHkgbGliCistIGZpeCBpc3N1ZTE1OiBt
YWtlIG5vc2UgY29tcGF0aWJpbGl0eSB0ZXN0cyBjb21wYXRpYmxlCisgIHdpdGggcHl0aG9uMyAo
bm93IHRoYXQgbm9zZS0xLjAgc3VwcG9ydHMgcHl0aG9uMykKKy0gcmVtb3ZlIHNvbWV3aGF0IHN1
cnByaXNpbmcgInNhbWUtY29uZnRlc3QiIGRldGVjdGlvbiBiZWNhdXNlCisgIGl0IGlnbm9yZXMg
Y29uZnRlc3QucHkgd2hlbiB0aGV5IGFwcGVhciBpbiBzZXZlcmFsIHN1YmRpcnMuCistIGltcHJv
dmUgYXNzZXJ0aW9ucyAoIm5vdCBpbiIpLCB0aGFua3MgRmxvcmlzIEJydXlub29naGUKKy0gaW1w
cm92ZSBiZWhhdmlvdXIvd2FybmluZ3Mgd2hlbiBydW5uaW5nIG9uIHRvcCBvZiAicHl0aG9uIC1P
TyIKKyAgKGFzc2VydGlvbnMgYW5kIGRvY3N0cmluZ3MgYXJlIHR1cm5lZCBvZmYsIGxlYWRpbmcg
dG8gcG90ZW50aWFsCisgIGZhbHNlIHBvc2l0aXZlcykKKy0gaW50cm9kdWNlIGEgcHl0ZXN0X2Nt
ZGxpbmVfcHJvY2Vzc2FyZ3MoYXJncykgaG9vaworICB0byBhbGxvdyBkeW5hbWljIGNvbXB1dGF0
aW9uIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuCisgIFRoaXMgZml4ZXMgYSByZWdyZXNzaW9u
IGJlY2F1c2UgcHkudGVzdCBwcmlvciB0byAyLjAKKyAgYWxsb3dlZCB0byBzZXQgY29tbWFuZCBs
aW5lIG9wdGlvbnMgZnJvbSBjb25mdGVzdC5weQorICBmaWxlcyB3aGljaCBzbyBmYXIgcHl0ZXN0
LTIuMCBvbmx5IGFsbG93ZWQgZnJvbSBpbmktZmlsZXMgbm93LgorLSBmaXggaXNzdWU3OiBhc3Nl
cnQgZmFpbHVyZXMgaW4gZG9jdGVzdCBtb2R1bGVzLgorICB1bmV4cGVjdGVkIGZhaWx1cmVzIGlu
IGRvY3Rlc3RzIHdpbGwgbm90IGdlbmVyYWxseQorICBzaG93IG5pY2VyLCBpLmUuIHdpdGhpbiB0
aGUgZG9jdGVzdCBmYWlsaW5nIGNvbnRleHQuCistIGZpeCBpc3N1ZTk6IHNldHVwL3RlYXJkb3du
IGZ1bmN0aW9ucyBmb3IgYW4geGZhaWwtbWFya2VkCisgIHRlc3Qgd2lsbCByZXBvcnQgYXMgeGZh
aWwgaWYgdGhleSBmYWlsIGJ1dCByZXBvcnQgYXMgbm9ybWFsbHkKKyAgcGFzc2luZyAobm90IHhw
YXNzaW5nKSBpZiB0aGV5IHN1Y2NlZWQuICBUaGlzIG9ubHkgaXMgdHJ1ZQorICBmb3IgImRpcmVj
dCIgc2V0dXAvdGVhcmRvd24gaW52b2NhdGlvbnMgYmVjYXVzZSB0ZWFyZG93bl9jbGFzcy8KKyAg
dGVhcmRvd25fbW9kdWxlIGNhbm5vdCBjbG9zZWx5IHJlbGF0ZSB0byBhIHNpbmdsZSB0ZXN0Lgor
LSBmaXggaXNzdWUxNDogbm8gbG9nZ2luZyBlcnJvcnMgYXQgcHJvY2VzcyBleGl0CistIHJlZmlu
ZW1lbnRzIHRvICJjb2xsZWN0aW5nIiBvdXRwdXQgb24gbm9uLXR0eXMKKy0gcmVmaW5lIGludGVy
bmFsIHBsdWdpbiByZWdpc3RyYXRpb24gYW5kIC0tdHJhY2Vjb25maWcgb3V0cHV0CistIGludHJv
ZHVjZSBhIG1lY2hhbmlzbSB0byBwcmV2ZW50L3VucmVnaXN0ZXIgcGx1Z2lucyBmcm9tIHRoZQor
ICBjb21tYW5kIGxpbmUsIHNlZSBodHRwOi8vcHl0ZXN0Lm9yZy9wbHVnaW5zLmh0bWwjY21kdW5y
ZWdpc3RlcgorLSBhY3RpdmF0ZSByZXN1bHRsb2cgcGx1Z2luIGJ5IGRlZmF1bHQKKy0gZml4IHJl
Z3Jlc3Npb24gd3J0IHlpZWxkZWQgdGVzdHMgd2hpY2ggZHVlIHRvIHRoZQorICBjb2xsZWN0aW9u
LWJlZm9yZS1ydW5uaW5nIHNlbWFudGljcyB3ZXJlIG5vdAorICBzZXR1cCBhcyB3aXRoIHB5dGVz
dCAxLjMuNC4gIE5vdGUsIGhvd2V2ZXIsIHRoYXQKKyAgdGhlIHJlY29tbWVuZGVkIGFuZCBtdWNo
IGNsZWFuZXIgd2F5IHRvIGRvIHRlc3QKKyAgcGFyYW1ldHJhaXphdGlvbiByZW1haW5zIHRoZSAi
cHl0ZXN0X2dlbmVyYXRlX3Rlc3RzIgorICBtZWNoYW5pc20sIHNlZSB0aGUgZG9jcy4KKworMi4w
LjAgKDIwMTAtMTEtMjUpCis9PT09PT09PT09PT09PT09PT0KKworLSBweXRlc3QtMi4wIGlzIG5v
dyBpdHMgb3duIHBhY2thZ2UgYW5kIGRlcGVuZHMgb24gcHlsaWItMi4wCistIG5ldyBhYmlsaXR5
OiBweXRob24gLW0gcHl0ZXN0IC8gcHl0aG9uIC1tIHB5dGVzdC5tYWluIGFiaWxpdHkKKy0gbmV3
IHB5dGhvbiBpbnZvY2F0aW9uOiBweXRlc3QubWFpbihhcmdzLCBwbHVnaW5zKSB0byBsb2FkCisg
IHNvbWUgY3VzdG9tIHBsdWdpbnMgZWFybHkuCistIHRyeSBoYXJkZXIgdG8gcnVuIHVuaXR0ZXN0
IHRlc3Qgc3VpdGVzIGluIGEgbW9yZSBjb21wYXRpYmxlIG1hbm5lcgorICBieSBkZWZlcnJpbmcg
c2V0dXAvdGVhcmRvd24gc2VtYW50aWNzIHRvIHRoZSB1bml0dGVzdCBwYWNrYWdlLgorICBhbHNv
IHdvcmsgaGFyZGVyIHRvIHJ1biB0d2lzdGVkL3RyaWFsIGFuZCBEamFuZ28gdGVzdHMgd2hpY2gK
KyAgc2hvdWxkIG5vdyBiYXNpY2FsbHkgd29yayBieSBkZWZhdWx0LgorLSBpbnRyb2R1Y2UgYSBu
ZXcgd2F5IHRvIHNldCBjb25maWcgb3B0aW9ucyB2aWEgaW5pLXN0eWxlIGZpbGVzLAorICBieSBk
ZWZhdWx0IHNldHVwLmNmZyBhbmQgdG94LmluaSBmaWxlcyBhcmUgc2VhcmNoZWQuICBUaGUgb2xk
CisgIHdheXMgKGNlcnRhaW4gZW52aXJvbm1lbnQgdmFyaWFibGVzLCBkeW5hbWljIGNvbmZ0ZXN0
LnB5IHJlYWRpbmcKKyAgaXMgcmVtb3ZlZCkuCistIGFkZCBhIG5ldyAiLXEiIG9wdGlvbiB3aGlj
aCBkZWNyZWFzZXMgdmVyYm9zaXR5IGFuZCBwcmludHMgYSBtb3JlCisgIG5vc2UvdW5pdHRlc3Qt
c3R5bGUgImRvdCIgb3V0cHV0LgorLSBmaXggaXNzdWUxMzUgLSBtYXJrcyBub3cgd29yayB3aXRo
IHVuaXR0ZXN0IHRlc3QgY2FzZXMgYXMgd2VsbAorLSBmaXggaXNzdWUxMjYgLSBpbnRyb2R1Y2Ug
cHkudGVzdC5zZXRfdHJhY2UoKSB0byB0cmFjZSBleGVjdXRpb24gdmlhCisgIFBEQiBkdXJpbmcg
dGhlIHJ1bm5pbmcgb2YgdGVzdHMgZXZlbiBpZiBjYXB0dXJpbmcgaXMgb25nb2luZy4KKy0gZml4
IGlzc3VlMTIzIC0gbmV3ICJweXRob24gLW0gcHkudGVzdCIgaW52b2NhdGlvbiBmb3IgcHkudGVz
dAorICAocmVxdWlyZXMgUHl0aG9uIDIuNSBvciBhYm92ZSkKKy0gZml4IGlzc3VlMTI0IC0gbWFr
ZSByZXBvcnRpbmcgbW9yZSByZXNpbGllbnQgYWdhaW5zdCB0ZXN0cyBvcGVuaW5nCisgIGZpbGVz
IG9uIGZpbGVkZXNjcmlwdG9yIDEgKHN0ZG91dCkuCistIGZpeCBpc3N1ZTEwOSAtIHNpYmxpbmcg
Y29uZnRlc3QucHkgZmlsZXMgd2lsbCBub3QgYmUgbG9hZGVkLgorICAoYW5kIERpcmVjdG9yeSBj
b2xsZWN0b3JzIGNhbm5vdCBiZSBjdXN0b21pemVkIGFueW1vcmUgZnJvbSBhIERpcmVjdG9yeSdz
CisgIGNvbmZ0ZXN0LnB5IC0gdGhpcyBuZWVkcyB0byBoYXBwZW4gYXQgbGVhc3Qgb25lIGxldmVs
IHVwKS4KKy0gaW50cm9kdWNlIChjdXN0b21pemFibGUpIGFzc2VydGlvbiBmYWlsdXJlIHJlcHJl
c2VudGF0aW9ucyBhbmQgZW5oYW5jZQorICBvdXRwdXQgb24gYXNzZXJ0aW9uIGZhaWx1cmVzIGZv
ciBjb21wYXJpc29ucyBhbmQgb3RoZXIgY2FzZXMgKEZsb3JpcyBCcnV5bm9vZ2hlKQorLSBub3Nl
LXBsdWdpbjogcGFzcyB0aHJvdWdoIHR5cGUtc2lnbmF0dXJlIGZhaWx1cmVzIGluIHNldHVwL3Rl
YXJkb3duCisgIGZ1bmN0aW9ucyBpbnN0ZWFkIG9mIG5vdCBjYWxsaW5nIHRoZW0gKEVkIFNpbmds
ZXRvbikKKy0gcmVtb3ZlIHB5LnRlc3QuY29sbGVjdC5EaXJlY3RvcnkgKGZvbGxvd3MgZnJvbSBh
IG1ham9yIHJlZmFjdG9yaW5nCisgIGFuZCBzaW1wbGlmaWNhdGlvbiBvZiB0aGUgY29sbGVjdGlv
biBwcm9jZXNzKQorLSBtYWpvcmx5IHJlZHVjZSBweS50ZXN0IGNvcmUgY29kZSwgc2hpZnQgZnVu
Y3Rpb24vcHl0aG9uIHRlc3RpbmcgdG8gb3duIHBsdWdpbgorLSBmaXggaXNzdWU4OCAoZmluZGlu
ZyBjdXN0b20gdGVzdCBub2RlcyBmcm9tIGNvbW1hbmQgbGluZSBhcmcpCistIHJlZmluZSAndG1w
ZGlyJyBjcmVhdGlvbiwgd2lsbCBub3cgY3JlYXRlIGJhc2VuYW1lcyBiZXR0ZXIgYXNzb2NpYXRl
ZAorICB3aXRoIHRlc3QgbmFtZXMgKHRoYW5rcyBSb25ueSkKKy0gInhwYXNzIiAodW5leHBlY3Rl
ZCBwYXNzKSB0ZXN0cyBkb24ndCBjYXVzZSBleGl0Y29kZSE9MAorLSBmaXggaXNzdWUxMzEgLyBp
c3N1ZTYwIC0gaW1wb3J0aW5nIGRvY3Rlc3RzIGluIF9faW5pdF9fIGZpbGVzIHVzZWQgYXMgbmFt
ZXNwYWNlIHBhY2thZ2VzCistIGZpeCBpc3N1ZTkzIHN0ZG91dC9zdGRlcnIgaXMgY2FwdHVyZWQg
d2hpbGUgaW1wb3J0aW5nIGNvbmZ0ZXN0LnB5CistIGZpeCBidWc6IHVuaXR0ZXN0IGNvbGxlY3Rl
ZCBmdW5jdGlvbnMgbm93IGFsc28gY2FuIGhhdmUgInB5dGVzdG1hcmsiCisgIGFwcGxpZWQgYXQg
Y2xhc3MvbW9kdWxlIGxldmVsCistIGFkZCBhYmlsaXR5IHRvIHVzZSAiY2xhc3MiIGxldmVsIGZv
ciBjYWNoZWRfc2V0dXAgaGVscGVyCistIGZpeCBzdHJhbmdlbmVzczogbWFyay4qIG9iamVjdHMg
YXJlIG5vdyBpbW11dGFibGUsIGNyZWF0ZSBuZXcgaW5zdGFuY2VzCisKKzEuMy40ICgyMDEwLTA5
LTE0KQorPT09PT09PT09PT09PT09PT09CisKKy0gZml4IGlzc3VlMTExOiBpbXByb3ZlIGluc3Rh
bGwgZG9jdW1lbnRhdGlvbiBmb3Igd2luZG93cworLSBmaXggaXNzdWUxMTk6IGZpeCBjdXN0b20g
Y29sbGVjdGFiaWxpdHkgb2YgX19pbml0X18ucHkgYXMgYSBtb2R1bGUKKy0gZml4IGlzc3VlMTE2
OiAtLWRvY3Rlc3Rtb2R1bGVzIHdvcmsgd2l0aCBfX2luaXRfXy5weSBmaWxlcyBhcyB3ZWxsCist
IGZpeCBpc3N1ZTExNTogdW5pZnkgaW50ZXJuYWwgZXhjZXB0aW9uIHBhc3N0aHJvdWdoL2NhdGNo
aW5nL0dlbmVyYXRvckV4aXQKKy0gZml4IGlzc3VlMTE4OiBuZXcgLS10Yj1uYXRpdmUgZm9yIHBy
ZXNlbnRpbmcgY3B5dGhvbi1zdGFuZGFyZCBleGNlcHRpb25zCisKKzEuMy4zICgyMDEwLTA3LTMw
KQorPT09PT09PT09PT09PT09PT09CisKKy0gZml4IGlzc3VlMTEzOiBhc3NlcnRpb24gcmVwcmVz
ZW50YXRpb24gcHJvYmxlbSB3aXRoIHRyaXBsZS1xdW90ZWQgc3RyaW5ncworICAoYW5kIHBvc3Np
Ymx5IG90aGVyIGNhc2VzKQorLSBtYWtlIGNvbmZ0ZXN0IGxvYWRpbmcgZGV0ZWN0IHRoYXQgYSBj
b25mdGVzdCBmaWxlIHdpdGggdGhlIHNhbWUKKyAgY29udGVudCB3YXMgYWxyZWFkeSBsb2FkZWQs
IGF2b2lkcyBzdXJwcmlzZXMgaW4gbmVzdGVkIGRpcmVjdG9yeSBzdHJ1Y3R1cmVzCisgIHdoaWNo
IGNhbiBiZSBwcm9kdWNlZCBlLmcuIGJ5IEh1ZHNvbi4gSXQgcHJvYmFibHkgcmVtb3ZlcyB0aGUg
bmVlZCB0byB1c2UKKyAgLS1jb25mY3V0ZGlyIGluIG1vc3QgY2FzZXMuCistIGZpeCB0ZXJtaW5h
bCBjb2xvcmluZyBmb3Igd2luMzIKKyAgKHRoYW5rcyBNaWNoYWVsIEZvb3JkIGZvciByZXBvcnRp
bmcpCistIGZpeCB3ZWlyZG5lc3M6IG1ha2UgdGVybWluYWwgd2lkdGggZGV0ZWN0aW9uIHdvcmsg
b24gc3Rkb3V0IGluc3RlYWQgb2Ygc3RkaW4KKyAgKHRoYW5rcyBBcm1pbiBSb25hY2hlciBmb3Ig
cmVwb3J0aW5nKQorLSByZW1vdmUgdHJhaWxpbmcgd2hpdGVzcGFjZSBpbiBhbGwgcHkvdGV4dCBk
aXN0cmlidXRpb24gZmlsZXMKKworMS4zLjIgKDIwMTAtMDctMDgpCis9PT09PT09PT09PT09PT09
PT0KKworKipOZXcgZmVhdHVyZXMqKgorCistIGZpeCBpc3N1ZTEwMzogIGludHJvZHVjZSBweS50
ZXN0LnJhaXNlcyBhcyBjb250ZXh0IG1hbmFnZXIsIGV4YW1wbGVzOjoKKworICAgIHdpdGggcHku
dGVzdC5yYWlzZXMoWmVyb0RpdmlzaW9uRXJyb3IpOgorICAgICAgICB4ID0gMAorICAgICAgICAx
IC8geAorCisgICAgd2l0aCBweS50ZXN0LnJhaXNlcyhSdW50aW1lRXJyb3IpIGFzIGV4Y2luZm86
CisgICAgICAgIGNhbGxfc29tZXRoaW5nKCkKKworICAgICMgeW91IG1heSBkbyBleHRyYSBjaGVj
a3Mgb24gZXhjaW5mby52YWx1ZXx0eXBlfHRyYWNlYmFjayBoZXJlCisKKyAgKHRoYW5rcyBSb25u
eSBQZmFubnNjaG1pZHQpCisKKy0gRnVuY2FyZyBmYWN0b3JpZXMgY2FuIG5vdyBkeW5hbWljYWxs
eSBhcHBseSBhIG1hcmtlciB0byBhCisgIHRlc3QgaW52b2NhdGlvbi4gIFRoaXMgaXMgZm9yIGV4
YW1wbGUgdXNlZnVsIGlmIGEgZmFjdG9yeQorICBwcm92aWRlcyBwYXJhbWV0ZXJzIHRvIGEgdGVz
dCB3aGljaCBhcmUgZXhwZWN0ZWQtdG8tZmFpbDo6CisKKyAgICBkZWYgcHl0ZXN0X2Z1bmNhcmdf
X2FyZyhyZXF1ZXN0KToKKyAgICAgICAgcmVxdWVzdC5hcHBseW1hcmtlcihweS50ZXN0Lm1hcmsu
eGZhaWwocmVhc29uPSJmbGFreSBjb25maWciKSkKKyAgICAgICAgLi4uCisKKyAgICBkZWYgdGVz
dF9mdW5jdGlvbihhcmcpOgorICAgICAgICAuLi4KKworLSBpbXByb3ZlZCBlcnJvciByZXBvcnRp
bmcgb24gY29sbGVjdGlvbiBhbmQgaW1wb3J0IGVycm9ycy4gVGhpcyBtYWtlcworICB1c2Ugb2Yg
YSBtb3JlIGdlbmVyYWwgbWVjaGFuaXNtLCBuYW1lbHkgdGhhdCBmb3IgY3VzdG9tIHRlc3QgaXRl
bS9jb2xsZWN0CisgIG5vZGVzIGBgbm9kZS5yZXByX2ZhaWx1cmUoZXhjaW5mbylgYCBpcyBub3cg
dW5pZm9ybWx5IGNhbGxlZCBzbyB0aGF0IHlvdSBjYW4KKyAgb3ZlcnJpZGUgaXQgdG8gcmV0dXJu
IGEgc3RyaW5nIGVycm9yIHJlcHJlc2VudGF0aW9uIG9mIHlvdXIgY2hvaWNlCisgIHdoaWNoIGlz
IGdvaW5nIHRvIGJlIHJlcG9ydGVkIGFzIGEgKHJlZCkgc3RyaW5nLgorCistIGludHJvZHVjZSAn
LS1qdW5pdHByZWZpeD1TVFInIG9wdGlvbiB0byBwcmVwZW5kIGEgcHJlZml4CisgIHRvIGFsbCBy
ZXBvcnRzIGluIHRoZSBqdW5pdHhtbCBmaWxlLgorCisqKkJ1ZyBmaXhlcyoqCisKKy0gbWFrZSB0
ZXN0cyBhbmQgdGhlIGBgcHl0ZXN0X3JlY3dhcm5gYCBwbHVnaW4gaW4gcGFydGljdWxhciBmdWxs
eSBjb21wYXRpYmxlCisgIHRvIFB5dGhvbjIuNyAoaWYgeW91IHVzZSB0aGUgYGByZWN3YXJuYGAg
ZnVuY2FyZyB3YXJuaW5ncyB3aWxsIGJlIGVuYWJsZWQgc28gdGhhdAorICB5b3UgY2FuIHByb3Bl
cmx5IGNoZWNrIGZvciB0aGVpciBleGlzdGVuY2UgaW4gYSBjcm9zcy1weXRob24gbWFubmVyKS4K
Ky0gcmVmaW5lIC0tcGRiOiBpZ25vcmUgeGZhaWxlZCB0ZXN0cywgdW5pZnkgaXRzIFRCLXJlcG9y
dGluZyBhbmQKKyAgZG9uJ3QgZGlzcGxheSBmYWlsdXJlcyBhZ2FpbiBhdCB0aGUgZW5kLgorLSBm
aXggYXNzZXJ0aW9uIGludGVycHJldGF0aW9uIHdpdGggdGhlICoqIG9wZXJhdG9yICh0aGFua3Mg
QmVuamFtaW4gUGV0ZXJzb24pCistIGZpeCBpc3N1ZTEwNSBhc3NpZ25tZW50IG9uIHRoZSBzYW1l
IGxpbmUgYXMgYSBmYWlsaW5nIGFzc2VydGlvbiAodGhhbmtzIEJlbmphbWluIFBldGVyc29uKQor
LSBmaXggaXNzdWUxMDQgcHJvcGVyIGVzY2FwaW5nIGZvciB0ZXN0IG5hbWVzIGluIGp1bml0eG1s
IHBsdWdpbiAodGhhbmtzIGFub255bW91cykKKy0gZml4IGlzc3VlNTcgLWZ8LS1sb29wb25mYWls
IHRvIHdvcmsgd2l0aCB4cGFzc2luZyB0ZXN0cyAodGhhbmtzIFJvbm55KQorLSBmaXggaXNzdWU5
MiBjb2xsZWN0b25seSByZXBvcnRlciBhbmQgLS1wYXN0ZWJpbiAodGhhbmtzIEJlbmphbWluIFBl
dGVyc29uKQorLSBmaXggcHkuY29kZS5jb21waWxlKHNvdXJjZSkgdG8gZ2VuZXJhdGUgdW5pcXVl
IGZpbGVuYW1lcworLSBmaXggYXNzZXJ0aW9uIHJlLWludGVycCBwcm9ibGVtcyBvbiBQeVB5LCBi
eSBkZWZlcmluZyBjb2RlCisgIGNvbXBpbGF0aW9uIHRvIHRoZSAob3ZlcnJpZGFibGUpIEZyYW1l
LmV2YWwgY2xhc3MuICh0aGFua3MgQW1hdXJ5IEZvcmdlb3QpCistIGZpeCBweS5wYXRoLmxvY2Fs
LnB5aW1wb3J0KCkgdG8gd29yayB3aXRoIGRpcmVjdG9yaWVzCistIHN0cmVhbWxpbmUgcHkucGF0
aC5sb2NhbC5ta2R0ZW1wIGltcGxlbWVudGF0aW9uIGFuZCB1c2FnZQorLSBkb24ndCBwcmludCBl
bXB0eSBsaW5lcyB3aGVuIHNob3dpbmcganVuaXR4bWwtZmlsZW5hbWUKKy0gYWRkIG9wdGlvbmFs
IGJvb2xlYW4gaWdub3JlX2Vycm9ycyBwYXJhbWV0ZXIgdG8gcHkucGF0aC5sb2NhbC5yZW1vdmUK
Ky0gZml4IHRlcm1pbmFsIHdyaXRpbmcgb24gd2luMzIvcHl0aG9uMi40CistIHB5LnByb2Nlc3Mu
Y21kZXhlYygpIG5vdyB0cmllcyBoYXJkZXIgdG8gcmV0dXJuIHByb3Blcmx5IGVuY29kZWQgdW5p
Y29kZSBvYmplY3RzCisgIG9uIGFsbCBweXRob24gdmVyc2lvbnMKKy0gaW5zdGFsbCBwbGFpbiBw
eS50ZXN0L3B5LndoaWNoIHNjcmlwdHMgYWxzbyBmb3IgSnl0aG9uLCB0aGlzIGhlbHBzIHRvCisg
IGdldCBjYW5vbmljYWwgc2NyaXB0IHBhdGhzIGluIHZpcnR1YWxlbnYgc2l0dWF0aW9ucworLSBt
YWtlIHBhdGguYmVzdHJlbHBhdGgocGF0aCkgcmV0dXJuICIuIiwgbm90ZSB0aGF0IHdoZW4gY2Fs
bGluZworICBYLmJlc3RyZWxwYXRoIHRoZSBhc3N1bXB0aW9uIGlzIHRoYXQgWCBpcyBhIGRpcmVj
dG9yeS4KKy0gbWFrZSBpbml0aWFsIGNvbmZ0ZXN0IGRpc2NvdmVyeSBpZ25vcmUgIi0tIiBwcmVm
aXhlZCBhcmd1bWVudHMKKy0gZml4IHJlc3VsdGxvZyBwbHVnaW4gd2hlbiB1c2VkIGluIGFuIG11
bHRpY3B1L211bHRpaG9zdCB4ZGlzdCBzaXR1YXRpb24KKyAgKHRoYW5rcyBKYWt1YiBHdXN0YWsp
CistIHBlcmZvcm0gZGlzdHJpYnV0ZWQgdGVzdGluZyByZWxhdGVkIHJlcG9ydGluZyBpbiB0aGUg
eGRpc3QtcGx1Z2luCisgIHJhdGhlciB0aGFuIGhhdmluZyBkaXN0LXJlbGF0ZWQgY29kZSBpbiB0
aGUgZ2VuZXJpYyBweS50ZXN0CisgIGRpc3RyaWJ1dGlvbgorLSBmaXggaG9tZWRpciBkZXRlY3Rp
b24gb24gV2luZG93cworLSBzaGlwIGRpc3RyaWJ1dGVfc2V0dXAucHkgdmVyc2lvbiAwLjYuMTMK
KworMS4zLjEgKDIwMTAtMDUtMjUpCis9PT09PT09PT09PT09PT09PT0KKworKipOZXcgZmVhdHVy
ZXMqKgorCistIGlzc3VlOTE6IGludHJvZHVjZSBuZXcgcHkudGVzdC54ZmFpbChyZWFzb24pIGhl
bHBlcgorICB0byBpbXBlcmF0aXZlbHkgbWFyayBhIHRlc3QgYXMgZXhwZWN0ZWQgdG8gZmFpbC4g
Q2FuCisgIGJlIHVzZWQgZnJvbSB3aXRoaW4gc2V0dXAgYW5kIHRlc3QgZnVuY3Rpb25zLiBUaGlz
IGlzCisgIHVzZWZ1bCBlc3BlY2lhbGx5IGZvciBwYXJhbWV0cml6ZWQgdGVzdHMgd2hlbiBjZXJ0
YWluCisgIGNvbmZpZ3VyYXRpb25zIGFyZSBleHBlY3RlZC10by1mYWlsLiAgSW4gdGhpcyBjYXNl
IHRoZQorICBkZWNsYXJhdGl2ZSBhcHByb2FjaCB3aXRoIHRoZSBAcHkudGVzdC5tYXJrLnhmYWls
IGNhbm5vdAorICBiZSB1c2VkIGFzIGl0IHdvdWxkIG1hcmsgYWxsIGNvbmZpZ3VyYXRpb25zIGFz
IHhmYWlsLgorCistIGlzc3VlMTAyOiBpbnRyb2R1Y2UgbmV3IC0tbWF4ZmFpbD1OVU0gb3B0aW9u
IHRvIHN0b3AKKyAgdGVzdCBydW5zIGFmdGVyIE5VTSBmYWlsdXJlcy4gIFRoaXMgaXMgYSBnZW5l
cmFsaXphdGlvbgorICBvZiB0aGUgJy14JyBvciAnLS1leGl0Zmlyc3QnIG9wdGlvbiB3aGljaCBp
cyBub3cgZXF1aXZhbGVudAorICB0byAnLS1tYXhmYWlsPTEnLiAgQm90aCAnLXgnIGFuZCAnLS1t
YXhmYWlsJyB3aWxsCisgIG5vdyBhbHNvIHByaW50IGEgbGluZSBuZWFyIHRoZSBlbmQgaW5kaWNh
dGluZyB0aGUgSW50ZXJydXB0aW9uLgorCistIGlzc3VlODk6IGFsbG93IHB5LnRlc3QubWFyayBk
ZWNvcmF0b3JzIHRvIGJlIHVzZWQgb24gY2xhc3NlcworICAoY2xhc3MgZGVjb3JhdG9ycyB3ZXJl
IGludHJvZHVjZWQgd2l0aCBweXRob24yLjYpIGFuZAorICBhbHNvIGFsbG93IHRvIGhhdmUgbXVs
dGlwbGUgbWFya2VycyBhcHBsaWVkIGF0IGNsYXNzL21vZHVsZSBsZXZlbAorICBieSBzcGVjaWZ5
aW5nIGEgbGlzdC4KKworLSBpbXByb3ZlIGFuZCByZWZpbmUgbGV0dGVyIHJlcG9ydGluZyBpbiB0
aGUgcHJvZ3Jlc3MgYmFyOgorICAuICBwYXNzCisgIGYgIGZhaWxlZCB0ZXN0CisgIHMgIHNraXBw
ZWQgdGVzdHMgKHJlbWluZGVyOiB1c2UgZm9yIGRlcGVuZGVuY3kvcGxhdGZvcm0gbWlzbWF0Y2gg
b25seSkKKyAgeCAgeGZhaWxlZCB0ZXN0ICh0ZXN0IHRoYXQgd2FzIGV4cGVjdGVkIHRvIGZhaWwp
CisgIFggIHhwYXNzZWQgdGVzdCAodGVzdCB0aGF0IHdhcyBleHBlY3RlZCB0byBmYWlsIGJ1dCBw
YXNzZWQpCisKKyAgWW91IGNhbiB1c2UgYW55IGNvbWJpbmF0aW9uIG9mICdmc3hYJyB3aXRoIHRo
ZSAnLXInIGV4dGVuZGVkCisgIHJlcG9ydGluZyBvcHRpb24uIFRoZSB4ZmFpbC94cGFzcyByZXN1
bHRzIHdpbGwgc2hvdyB1cCBhcworICBza2lwcGVkIHRlc3RzIGluIHRoZSBqdW5pdHhtbCBvdXRw
dXQgLSB3aGljaCBhbHNvIGZpeGVzCisgIGlzc3VlOTkuCisKKy0gbWFrZSBweS50ZXN0LmNtZGxp
bmUubWFpbigpIHJldHVybiB0aGUgZXhpdHN0YXR1cyBpbnN0ZWFkIG9mIHJhaXNpbmcKKyAgU3lz
dGVtRXhpdCBhbmQgYWxzbyBhbGxvdyBpdCB0byBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMuICBU
aGlzIG9mCisgIGNvdXJzZSByZXF1aXJlcyB0aGF0IHlvdXIgYXBwbGljYXRpb24gYW5kIHRlc3Rz
IGFyZSBwcm9wZXJseSB0ZWFyZWQKKyAgZG93biBhbmQgZG9uJ3QgaGF2ZSBnbG9iYWwgc3RhdGUu
CisKKyoqQnVnIEZpeGVzKioKKworLSBpbXByb3ZlZCB0cmFjZWJhY2sgcHJlc2VudGF0aW9uOgor
ICAtIGltcHJvdmVkIGFuZCB1bmlmaWVkIHJlcG9ydGluZyBmb3IgIi0tdGI9c2hvcnQiIG9wdGlv
bgorICAtIEVycm9ycyBkdXJpbmcgdGVzdCBtb2R1bGUgaW1wb3J0cyBhcmUgbXVjaCBzaG9ydGVy
LCAodXNpbmcgLS10Yj1zaG9ydCBzdHlsZSkKKyAgLSByYWlzZXMgc2hvd3Mgc2hvcnRlciBtb3Jl
IHJlbGV2YW50IHRyYWNlYmFja3MKKyAgLSAtLWZ1bGx0cmFjZSBub3cgbW9yZSBzeXN0ZW1hdGlj
YWxseSBtYWtlcyB0cmFjZXMgbG9uZ2VyIC8gaW5oaWJpdHMgY3V0dGluZworCistIGltcHJvdmUg
c3VwcG9ydCBmb3IgcmFpc2VzIGFuZCBvdGhlciBkeW5hbWljYWxseSBjb21waWxlZCBjb2RlIGJ5
CisgIG1hbmlwdWxhdGluZyBweXRob24ncyBsaW5lY2FjaGUuY2FjaGUgaW5zdGVhZCBvZiB0aGUg
cHJldmlvdXMKKyAgcmF0aGVyIGhhY2t5IHdheSBvZiBjcmVhdGluZyBjdXN0b20gY29kZSBvYmpl
Y3RzLiAgVGhpcyBtYWtlcworICBpdCBzZWVtbGVzc2x5IHdvcmsgb24gSnl0aG9uIGFuZCBQeVB5
IHdoZXJlIGl0IHByZXZpb3VzbHkgZGlkbid0LgorCistIGZpeCBpc3N1ZTk2OiBtYWtlIGNhcHR1
cmluZyBtb3JlIHJlc2lsaWVudCBhZ2FpbnN0IENvbnRyb2wtQworICBpbnRlcnJ1cHRpb25zIChp
bnZvbHZlZCBzb21ld2hhdCBzdWJzdGFudGlhbCByZWZhY3RvcmluZworICB0byB0aGUgdW5kZXJs
eWluZyBjYXB0dXJpbmcgZnVuY3Rpb25hbGl0eSB0byBhdm9pZCByYWNlCisgIGNvbmRpdGlvbnMp
LgorCistIGZpeCBjaGFpbmluZyBvZiBjb25kaXRpb25hbCBza2lwaWYveGZhaWwgZGVjb3JhdG9y
cyAtIHNvIGl0IHdvcmtzIG5vdworICBhcyBleHBlY3RlZCB0byB1c2UgbXVsdGlwbGUgQHB5LnRl
c3QubWFyay5za2lwaWYoY29uZGl0aW9uKSBkZWNvcmF0b3JzLAorICBpbmNsdWRpbmcgc3BlY2lm
aWMgcmVwb3J0aW5nIHdoaWNoIG9mIHRoZSBjb25kaXRpb25zIGxlYWQgdG8gc2tpcHBpbmcuCisK
Ky0gZml4IGlzc3VlOTU6IGxhdGUtaW1wb3J0IHpsaWIgc28gdGhhdCBpdCdzIG5vdCByZXF1aXJl
ZAorICBmb3IgZ2VuZXJhbCBweS50ZXN0IHN0YXJ0dXAuCisKKy0gZml4IGlzc3VlOTQ6IG1ha2Ug
cmVwb3J0aW5nIG1vcmUgcm9idXN0IGFnYWluc3QgYm9ndXMgc291cmNlIGNvZGUKKyAgKGFuZCBp
bnRlcm5hbGx5IGJlIG1vcmUgY2FyZWZ1bCB3aGVuIHByZXNlbnRpbmcgdW5leHBlY3RlZCBieXRl
IHNlcXVlbmNlcykKKworCisxLjMuMCAoMjAxMC0wNS0wNSkKKz09PT09PT09PT09PT09PT09PQor
CistIGRlcHJlY2F0ZSAtLXJlcG9ydCBvcHRpb24gaW4gZmF2b3VyIG9mIGEgbmV3IHNob3J0ZXIg
YW5kIGVhc2llciB0bworICByZW1lbWJlciAtciBvcHRpb246IGl0IHRha2VzIGEgc3RyaW5nIGFy
Z3VtZW50IGNvbnNpc3Rpbmcgb2YgYW55CisgIGNvbWJpbmF0aW9uIG9mICd4ZnNYJyBjaGFyYWN0
ZXJzLiAgVGhleSByZWxhdGUgdG8gdGhlIHNpbmdsZSBjaGFycworICB5b3Ugc2VlIGR1cmluZyB0
aGUgZG90dGVkIHByb2dyZXNzIHByaW50aW5nIGFuZCB3aWxsIHByaW50IGFuIGV4dHJhIGxpbmUK
KyAgcGVyIHRlc3QgYXQgdGhlIGVuZCBvZiB0aGUgdGVzdCBydW4uICBUaGlzIGV4dHJhIGxpbmUg
aW5kaWNhdGVzIHRoZSBleGFjdAorICBwb3NpdGlvbiBvciB0ZXN0IElEIHRoYXQgeW91IGRpcmVj
dGx5IHBhc3RlIHRvIHRoZSBweS50ZXN0IGNtZGxpbmUgaW4gb3JkZXIKKyAgdG8gcmUtcnVuIGEg
cGFydGljdWxhciB0ZXN0LgorCistIGFsbG93IGV4dGVybmFsIHBsdWdpbnMgdG8gcmVnaXN0ZXIg
bmV3IGhvb2tzIHZpYSB0aGUgbmV3CisgIHB5dGVzdF9hZGRob29rcyhwbHVnaW5tYW5hZ2VyKSBo
b29rLiAgVGhlIG5ldyByZWxlYXNlIG9mCisgIHRoZSBweXRlc3QteGRpc3QgcGx1Z2luIGZvciBk
aXN0cmlidXRlZCBhbmQgbG9vcG9uZmFpbGluZworICB0ZXN0aW5nIHJlcXVpcmVzIHRoaXMgZmVh
dHVyZS4KKworLSBhZGQgYSBuZXcgcHl0ZXN0X2lnbm9yZV9jb2xsZWN0KHBhdGgsIGNvbmZpZykg
aG9vayB0byBhbGxvdyBwcm9qZWN0cyBhbmQKKyAgcGx1Z2lucyB0byBkZWZpbmUgZXhjbHVzaW9u
IGJlaGF2aW91ciBmb3IgdGhlaXIgZGlyZWN0b3J5IHN0cnVjdHVyZSAtCisgIGZvciBleGFtcGxl
IHlvdSBtYXkgZGVmaW5lIGluIGEgY29uZnRlc3QucHkgdGhpcyBtZXRob2Q6OgorCisgICAgICAg
IGRlZiBweXRlc3RfaWdub3JlX2NvbGxlY3QocGF0aCk6CisgICAgICAgICAgICByZXR1cm4gcGF0
aC5jaGVjayhsaW5rPTEpCisKKyAgdG8gcHJldmVudCBldmVuIGEgY29sbGVjdGlvbiB0cnkgb2Yg
YW55IHRlc3RzIGluIHN5bWxpbmtlZCBkaXJzLgorCistIG5ldyBweXRlc3RfcHljb2xsZWN0X21h
a2Vtb2R1bGUocGF0aCwgcGFyZW50KSBob29rIGZvcgorICBhbGxvd2luZyBjdXN0b21pemF0aW9u
IG9mIHRoZSBNb2R1bGUgY29sbGVjdGlvbiBvYmplY3QgZm9yIGEKKyAgbWF0Y2hpbmcgdGVzdCBt
b2R1bGUuCisKKy0gZXh0ZW5kIGFuZCByZWZpbmUgeGZhaWwgbWVjaGFuaXNtOgorICBgYEBweS50
ZXN0Lm1hcmsueGZhaWwocnVuPUZhbHNlKWBgIGRvIG5vdCBydW4gdGhlIGRlY29yYXRlZCB0ZXN0
CisgIGBgQHB5LnRlc3QubWFyay54ZmFpbChyZWFzb249Ii4uLiIpYGAgcHJpbnRzIHRoZSByZWFz
b24gc3RyaW5nIGluIHhmYWlsIHN1bW1hcmllcworICBzcGVjaWZ5aW5nIGBgLS1ydW54ZmFpbGBg
IG9uIGNvbW1hbmQgbGluZSB2aXJ0dWFsbHkgaWdub3JlcyB4ZmFpbCBtYXJrZXJzCisKKy0gZXhw
b3NlIChwcmV2aW91c2x5IGludGVybmFsKSBjb21tb25seSB1c2VmdWwgbWV0aG9kczoKKyAgcHku
aW8uZ2V0X3Rlcm1pbmFsX3dpdGgoKSAtPiByZXR1cm4gdGVybWluYWwgd2lkdGgKKyAgcHkuaW8u
YW5zaV9wcmludCguLi4pIC0+IHByaW50IGNvbG9yZWQvYm9sZCB0ZXh0IG9uIGxpbnV4L3dpbjMy
CisgIHB5LmlvLnNhZmVyZXByKG9iaikgLT4gcmV0dXJuIGxpbWl0ZWQgcmVwcmVzZW50YXRpb24g
c3RyaW5nCisKKy0gZXhwb3NlIHRlc3Qgb3V0Y29tZSByZWxhdGVkIGV4Y2VwdGlvbnMgYXMgcHku
dGVzdC5za2lwLkV4Y2VwdGlvbiwKKyAgcHkudGVzdC5yYWlzZXMuRXhjZXB0aW9uIGV0Yy4sIHVz
ZWZ1bCBtb3N0bHkgZm9yIHBsdWdpbnMKKyAgZG9pbmcgc3BlY2lhbCBvdXRjb21lIGludGVycHJl
dGF0aW9uL3R3ZWFraW5nCisKKy0gKGlzc3VlODUpIGZpeCBqdW5pdHhtbCBwbHVnaW4gdG8gaGFu
ZGxlIHRlc3RzIHdpdGggbm9uLWFzY2lpIG91dHB1dAorCistIGZpeC9yZWZpbmUgcHl0aG9uMyBj
b21wYXRpYmlsaXR5ICh0aGFua3MgQmVuamFtaW4gUGV0ZXJzb24pCisKKy0gZml4ZXMgZm9yIG1h
a2luZyB0aGUganl0aG9uL3dpbjMyIGNvbWJpbmF0aW9uIHdvcmssIG5vdGUgaG93ZXZlcjoKKyAg
anl0aG9uMi41LjEvd2luMzIgZG9lcyBub3QgcHJvdmlkZSBhIGNvbW1hbmQgbGluZSBsYXVuY2hl
ciwgc2VlCisgIGh0dHA6Ly9idWdzLmp5dGhvbi5vcmcvaXNzdWUxNDkxIC4gU2VlIHB5bGliIGlu
c3RhbGwgZG9jdW1lbnRhdGlvbgorICBmb3IgaG93IHRvIHdvcmsgYXJvdW5kLgorCistIGZpeGVz
IGZvciBoYW5kbGluZyBvZiB1bmljb2RlIGV4Y2VwdGlvbiB2YWx1ZXMgYW5kIHVucHJpbnRhYmxl
IG9iamVjdHMKKworLSAoaXNzdWU4NykgZml4IHVuYm91bmRsb2NhbCBlcnJvciBpbiBhc3NlcnRp
b25vbGQgY29kZQorCistIChpc3N1ZTg2KSBpbXByb3ZlIGRvY3VtZW50YXRpb24gZm9yIGxvb3Bv
bmZhaWxpbmcKKworLSByZWZpbmUgSU8gY2FwdHVyaW5nOiBzdGRpbi1yZWRpcmVjdCBwc2V1ZG8t
ZmlsZSBub3cgaGFzIGEgTk9QIGNsb3NlKCkgbWV0aG9kCisKKy0gc2hpcCBkaXN0cmlidXRlX3Nl
dHVwLnB5IHZlcnNpb24gMC42LjEwCisKKy0gYWRkZWQgbGlua3MgdG8gdGhlIG5ldyBjYXB0dXJl
bG9nIGFuZCBjb3ZlcmFnZSBwbHVnaW5zCisKKworMS4yLjAgKDIwMTAtMDEtMTgpCis9PT09PT09
PT09PT09PT09PT0KKworLSByZWZpbmVkIHVzYWdlIGFuZCBvcHRpb25zIGZvciAicHkuY2xlYW51
cCI6OgorCisgICAgcHkuY2xlYW51cCAgICAgIyByZW1vdmUgIioucHljIiBhbmQgIiokcHkuY2xh
c3MiIChqeXRob24pIGZpbGVzCisgICAgcHkuY2xlYW51cCAtZSAuc3dwIC1lIC5jYWNoZSAjIGFs
c28gcmVtb3ZlIGZpbGVzIHdpdGggdGhlc2UgZXh0ZW5zaW9ucworICAgIHB5LmNsZWFudXAgLXMg
ICMgcmVtb3ZlICJidWlsZCIgYW5kICJkaXN0IiBkaXJlY3RvcnkgbmV4dCB0byBzZXR1cC5weSBm
aWxlcworICAgIHB5LmNsZWFudXAgLWQgICMgYWxzbyByZW1vdmUgZW1wdHkgZGlyZWN0b3JpZXMK
KyAgICBweS5jbGVhbnVwIC1hICAjIHN5bm9ueW0gZm9yICItcyAtZCAtZSAncGlwLWxvZy50eHQn
IgorICAgIHB5LmNsZWFudXAgLW4gICMgZHJ5IHJ1biwgb25seSBzaG93IHdoYXQgd291bGQgYmUg
cmVtb3ZlZAorCistIGFkZCBhIG5ldyBvcHRpb24gInB5LnRlc3QgLS1mdW5jYXJncyIgd2hpY2gg
c2hvd3MgYXZhaWxhYmxlIGZ1bmNhcmdzCisgIGFuZCB0aGVpciBoZWxwIHN0cmluZ3MgKGRvY3N0
cmluZ3Mgb24gdGhlaXIgcmVzcGVjdGl2ZSBmYWN0b3J5IGZ1bmN0aW9uKQorICBmb3IgYSBnaXZl
biB0ZXN0IHBhdGgKKworLSBkaXNwbGF5IGEgc2hvcnQgYW5kIGNvbmNpc2UgdHJhY2ViYWNrIGlm
IGEgZnVuY2FyZyBsb29rdXAgZmFpbHMKKworLSBlYXJseS1sb2FkICJjb25mdGVzdC5weSIgZmls
ZXMgaW4gbm9uLWRvdCBmaXJzdC1sZXZlbCBzdWIgZGlyZWN0b3JpZXMuCisgIGFsbG93cyB0byBj
b252ZW5pZW50bHkga2VlcCBhbmQgYWNjZXNzIHRlc3QtcmVsYXRlZCBvcHRpb25zIGluIGEgYGB0
ZXN0YGAKKyAgc3ViZGlyIGFuZCBzdGlsbCBhZGQgY29tbWFuZCBsaW5lIG9wdGlvbnMuCisKKy0g
Zml4IGlzc3VlNjc6IG5ldyBzdXBlci1zaG9ydCB0cmFjZWJhY2stcHJpbnRpbmcgb3B0aW9uOiAi
LS10Yj1saW5lIiB3aWxsIHByaW50IGEgc2luZ2xlIGxpbmUgZm9yIGVhY2ggZmFpbGluZyAocHl0
aG9uKSB0ZXN0IGluZGljYXRpbmcgaXRzIGZpbGVuYW1lLCBsaW5lbm8gYW5kIHRoZSBmYWlsdXJl
IHZhbHVlCisKKy0gZml4IGlzc3VlNzg6IGFsd2F5cyBjYWxsIHB5dGhvbi1sZXZlbCB0ZWFyZG93
biBmdW5jdGlvbnMgZXZlbiBpZiB0aGUKKyAgYWNjb3JkaW5nIHNldHVwIGZhaWxlZC4gIFRoaXMg
aW5jbHVkZXMgcmVmaW5lbWVudHMgZm9yIGNhbGxpbmcgc2V0dXBfbW9kdWxlL2NsYXNzIGZ1bmN0
aW9ucworICB3aGljaCB3aWxsIG5vdyBvbmx5IGJlIGNhbGxlZCBvbmNlIGluc3RlYWQgb2YgdGhl
IHByZXZpb3VzIGJlaGF2aW91ciB3aGVyZSB0aGV5J2QgYmUgY2FsbGVkCisgIG11bHRpcGxlIHRp
bWVzIGlmIHRoZXkgcmFpc2UgYW4gZXhjZXB0aW9uIChpbmNsdWRpbmcgYSBTa2lwcGVkIGV4Y2Vw
dGlvbikuICBBbnkgZXhjZXB0aW9uCisgIHdpbGwgYmUgcmUtY29yZGVkIGFuZCBhc3NvY2lhdGVk
IHdpdGggYWxsIHRlc3RzIGluIHRoZSBhY2NvcmRpbmcgbW9kdWxlL2NsYXNzIHNjb3BlLgorCist
IGZpeCBpc3N1ZTYzOiBhc3N1bWUgPDQwIGNvbHVtbnMgdG8gYmUgYSBib2d1cyB0ZXJtaW5hbCB3
aWR0aCwgZGVmYXVsdCB0byA4MAorCistIGZpeCBwZGIgZGVidWdnaW5nIHRvIGJlIGluIHRoZSBj
b3JyZWN0IGZyYW1lIG9uIHJhaXNlcy1yZWxhdGVkIGVycm9ycworCistIHVwZGF0ZSBhcGlwa2cu
cHkgdG8gZml4IGFuIGlzc3VlIHdoZXJlIHJlY3Vyc2l2ZSBpbXBvcnRzIG1pZ2h0CisgIHVubmVj
ZXNzYXJpbHkgYnJlYWsgaW1wb3J0aW5nCisKKy0gZml4IHBsdWdpbiBsaW5rcworCisxLjEuMSAo
MjAwOS0xMS0yNCkKKz09PT09PT09PT09PT09PT09PQorCistIG1vdmVkIGRpc3QvbG9vcG9uZmFp
bGluZyBmcm9tIHB5LnRlc3QgY29yZSBpbnRvIGEgbmV3CisgIHNlcGFyYXRlbHkgcmVsZWFzZWQg
cHl0ZXN0LXhkaXN0IHBsdWdpbi4KKworLSBuZXcganVuaXR4bWwgcGx1Z2luOiAtLWp1bml0eG1s
PXBhdGggd2lsbCBnZW5lcmF0ZSBhIGp1bml0IHN0eWxlIHhtbCBmaWxlCisgIHdoaWNoIGlzIHBy
b2Nlc3NhYmxlIGUuZy4gYnkgdGhlIEh1ZHNvbiBDSSBzeXN0ZW0uCisKKy0gbmV3IG9wdGlvbjog
LS1nZW5zY3JpcHQ9cGF0aCB3aWxsIGdlbmVyYXRlIGEgc3RhbmRhbG9uZSBweS50ZXN0IHNjcmlw
dAorICB3aGljaCB3aWxsIG5vdCBuZWVkIGFueSBsaWJyYXJpZXMgaW5zdGFsbGVkLiAgdGhhbmtz
IHRvIFJhbGYgU2NobWl0dC4KKworLSBuZXcgb3B0aW9uOiAtLWlnbm9yZSB3aWxsIHByZXZlbnQg
c3BlY2lmaWVkIHBhdGggZnJvbSBjb2xsZWN0aW9uLgorICBDYW4gYmUgc3BlY2lmaWVkIG11bHRp
cGxlIHRpbWVzLgorCistIG5ldyBvcHRpb246IC0tY29uZmN1dGRpcj1kaXIgd2lsbCBtYWtlIHB5
LnRlc3Qgb25seSBjb25zaWRlciBjb25mdGVzdAorICBmaWxlcyB0aGF0IGFyZSByZWxhdGl2ZSB0
byB0aGUgc3BlY2lmaWVkIGRpci4KKworLSBuZXcgZnVuY2FyZzogInB5dGVzdGNvbmZpZyIgaXMg
dGhlIHB5dGVzdCBjb25maWcgb2JqZWN0IGZvciBhY2Nlc3MKKyAgdG8gY29tbWFuZCBsaW5lIGFy
Z3MgYW5kIGNhbiBub3cgYmUgZWFzaWx5IHVzZWQgaW4gYSB0ZXN0LgorCistIGluc3RhbGwgYGBw
eS50ZXN0YGAgYW5kIGBgcHkud2hpY2hgYCB3aXRoIGEgYGAtJFZFUlNJT05gYCBzdWZmaXggdG8K
KyAgZGlzYW1iaWd1YXRlIGJldHdlZW4gUHl0aG9uMywgcHl0aG9uMi5YLCBKeXRob24gYW5kIFB5
UHkgaW5zdGFsbGVkIHZlcnNpb25zLgorCistIG5ldyAicHl0ZXN0Y29uZmlnIiBmdW5jYXJnIGFs
bG93cyBhY2Nlc3MgdG8gdGVzdCBjb25maWcgb2JqZWN0CisKKy0gbmV3ICJweXRlc3RfcmVwb3J0
X2hlYWRlciIgaG9vayBjYW4gcmV0dXJuIGFkZGl0aW9uYWwgbGluZXMKKyAgdG8gYmUgZGlzcGxh
eWVkIGF0IHRoZSBoZWFkZXIgb2YgYSB0ZXN0IHJ1bi4KKworLSAoZXhwZXJpbWVudGFsKSBhbGxv
dyAicHkudGVzdCBwYXRoOjpuYW1lMTo6bmFtZTI6Oi4uLiIgZm9yIHBvaW50aW5nCisgIHRvIGEg
dGVzdCB3aXRoaW4gYSB0ZXN0IGNvbGxlY3Rpb24gZGlyZWN0bHkuICBUaGlzIG1pZ2h0IGV2ZW50
dWFsbHkKKyAgZXZvbHZlIGFzIGEgZnVsbCBzdWJzdGl0dXRlIHRvICItayIgc3BlY2lmaWNhdGlv
bnMuCisKKy0gc3RyZWFtbGluZWQgcGx1Z2luIGxvYWRpbmc6IG9yZGVyIGlzIG5vdyBhcyBkb2N1
bWVudGVkIGluCisgIGN1c3RvbWl6ZS5odG1sOiBzZXR1cHRvb2xzLCBFTlYsIGNvbW1hbmRsaW5l
LCBjb25mdGVzdC4KKyAgYWxzbyBzZXR1cHRvb2xzIGVudHJ5IHBvaW50IG5hbWVzIGFyZSB0dXJu
ZWQgdG8gY2Fub25pY2FsIG5hbWVlcyAoInB5dGVzdF8qIikKKworLSBhdXRvbWF0aWNhbGx5IHNr
aXAgdGVzdHMgdGhhdCBuZWVkICdjYXBmZCcgYnV0IGhhdmUgbm8gb3MuZHVwCisKKy0gYWxsb3cg
cHl0ZXN0X2dlbmVyYXRlX3Rlc3RzIHRvIGJlIGRlZmluZWQgaW4gY2xhc3NlcyBhcyB3ZWxsCisK
Ky0gZGVwcmVjYXRlIHVzYWdlIG9mICdkaXNhYmxlZCcgYXR0cmlidXRlIGluIGZhdm91ciBvZiBw
eXRlc3RtYXJrCistIGRlcHJlY2F0ZSBkZWZpbml0aW9uIG9mIERpcmVjdG9yeSwgTW9kdWxlLCBD
bGFzcyBhbmQgRnVuY3Rpb24gbm9kZXMKKyAgaW4gY29uZnRlc3QucHkgZmlsZXMuICBVc2UgcHl0
ZXN0IGNvbGxlY3QgaG9va3MgaW5zdGVhZC4KKworLSBjb2xsZWN0aW9uL2l0ZW0gbm9kZSBzcGVj
aWZpYyBydW50ZXN0L2NvbGxlY3QgaG9va3MgYXJlIG9ubHkgY2FsbGVkIGV4YWN0bHkKKyAgb24g
bWF0Y2hpbmcgY29uZnRlc3QucHkgZmlsZXMsIGkuZS4gb25lcyB3aGljaCBhcmUgZXhhY3RseSBi
ZWxvdworICB0aGUgZmlsZXN5c3RlbSBwYXRoIG9mIGFuIGl0ZW0KKworLSBjaGFuZ2U6IHRoZSBm
aXJzdCBweXRlc3RfY29sbGVjdF9kaXJlY3RvcnkgaG9vayB0byByZXR1cm4gc29tZXRoaW5nCisg
IHdpbGwgbm93IHByZXZlbnQgZnVydGhlciBob29rcyB0byBiZSBjYWxsZWQuCisKKy0gY2hhbmdl
OiBmaWdsZWFmIHBsdWdpbiBub3cgcmVxdWlyZXMgLS1maWdsZWFmIHRvIHJ1bi4gIEFsc28KKyAg
Y2hhbmdlIGl0cyBsb25nIGNvbW1hbmQgbGluZSBvcHRpb25zIHRvIGJlIGEgYml0IHNob3J0ZXIg
KHNlZSBweS50ZXN0IC1oKS4KKworLSBjaGFuZ2U6IHB5dGVzdCBkb2N0ZXN0IHBsdWdpbiBpcyBu
b3cgZW5hYmxlZCBieSBkZWZhdWx0IGFuZCBoYXMgYQorICBuZXcgb3B0aW9uIC0tZG9jdGVzdC1n
bG9iIHRvIHNldCBhIHBhdHRlcm4gZm9yIGZpbGUgbWF0Y2hlcy4KKworLSBjaGFuZ2U6IHJlbW92
ZSBpbnRlcm5hbCBweS5fKiBoZWxwZXIgdmFycywgb25seSBrZWVwIHB5Ll9weWRpcgorCistIHJv
YnVzdGlmeSBjYXB0dXJpbmcgdG8gc3Vydml2ZSBpZiBjdXN0b20gcHl0ZXN0X3J1bnRlc3Rfc2V0
dXAKKyAgY29kZSBmYWlsZWQgYW5kIHByZXZlbnRlZCB0aGUgY2FwdHVyaW5nIHNldHVwIGNvZGUg
ZnJvbSBydW5uaW5nLgorCistIG1ha2UgcHkudGVzdC4qIGhlbHBlcnMgcHJvdmlkZWQgYnkgZGVm
YXVsdCBwbHVnaW5zIHZpc2libGUgZWFybHkgLQorICB3b3JrcyB0cmFuc3BhcmVudGx5IGJvdGgg
Zm9yIHB5ZG9jIGFuZCBmb3IgaW50ZXJhY3RpdmUgc2Vzc2lvbnMKKyAgd2hpY2ggd2lsbCByZWd1
bGFybHkgc2VlIGUuZy4gcHkudGVzdC5tYXJrIGFuZCBweS50ZXN0LmltcG9ydG9yc2tpcC4KKwor
LSBzaW1wbGlmeSBpbnRlcm5hbCBwbHVnaW4gbWFuYWdlciBtYWNoaW5lcnkKKy0gc2ltcGxpZnkg
aW50ZXJuYWwgY29sbGVjdGlvbiB0cmVlIGJ5IGludHJvZHVjaW5nIGEgUm9vdENvbGxlY3RvciBu
b2RlCisKKy0gZml4IGFzc2VydCByZWludGVycHJlYXRpb24gdGhhdCBzZWVzIGEgY2FsbCBjb250
YWluaW5nICJrZXl3b3JkPS4uLiIKKworLSBmaXggaXNzdWU2NjogaW52b2tlIHB5dGVzdF9zZXNz
aW9uc3RhcnQgYW5kIHB5dGVzdF9zZXNzaW9uZmluaXNoCisgIGhvb2tzIG9uIHNsYXZlcyBkdXJp
bmcgZGlzdC10ZXN0aW5nLCByZXBvcnQgbW9kdWxlL3Nlc3Npb24gdGVhcmRvd24KKyAgaG9va3Mg
Y29ycmVjdGx5LgorCistIGZpeCBpc3N1ZTY1OiBwcm9wZXJseSBoYW5kbGUgZGlzdC10ZXN0aW5n
IGlmIG5vCisgIGV4ZWNuZXQvcHkgbGliIGluc3RhbGxlZCByZW1vdGVseS4KKworLSBza2lwIHNv
bWUgaW5zdGFsbC10ZXN0cyBpZiBubyBleGVjbmV0IGlzIGF2YWlsYWJsZQorCistIGZpeCBkb2Nz
LCBmaXggaW50ZXJuYWwgYmluLyBzY3JpcHQgZ2VuZXJhdGlvbgorCisKKzEuMS4wICgyMDA5LTEx
LTA1KQorPT09PT09PT09PT09PT09PT09CisKKy0gaW50cm9kdWNlIGF1dG9tYXRpYyBwbHVnaW4g
cmVnaXN0cmF0aW9uIHZpYSAncHl0ZXN0MTEnCisgIGVudHJ5cG9pbnRzIHZpYSBzZXR1cHRvb2xz
JyBwa2dfcmVzb3VyY2VzLml0ZXJfZW50cnlfcG9pbnRzCisKKy0gZml4IHB5LnRlc3QgZGlzdC10
ZXN0aW5nIHRvIHdvcmsgd2l0aCBleGVjbmV0ID49IDEuMC4wYjQKKworLSByZS1pbnRyb2R1Y2Ug
cHkudGVzdC5jbWRsaW5lLm1haW4oKSBmb3IgYmV0dGVyIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkK
KworLSBzdm4gcGF0aHM6IGZpeCBhIGJ1ZyB3aXRoIHBhdGguY2hlY2sodmVyc2lvbmVkPVRydWUp
IGZvciBzdm4gcGF0aHMsCisgIGFsbG93ICclJyBpbiBzdm4gcGF0aHMsIG1ha2Ugc3Zud2MudXBk
YXRlKCkgZGVmYXVsdCB0byBpbnRlcmFjdGl2ZSBtb2RlCisgIGxpa2UgaW4gMS4wLnggYW5kIGFk
ZCBzdm53Yy51cGRhdGUoaW50ZXJhY3RpdmU9RmFsc2UpIHRvIGluaGliaXQgaW50ZXJhY3Rpb24u
CisKKy0gcmVmaW5lIGRpc3RyaWJ1dGVkIHRhcmJhbGwgdG8gY29udGFpbiB0ZXN0IGFuZCBubyBw
eWMgZmlsZXMKKworLSB0cnkgaGFyZGVyIHRvIGhhdmUgZGVwcmVjYXRpb24gd2FybmluZ3MgZm9y
IHB5LmNvbXBhdC4qIGFjY2Vzc2VzCisgIHJlcG9ydCBhIGNvcnJlY3QgbG9jYXRpb24KKworMS4w
LjMKKz09PT09CisKKyogYWRqdXN0IGFuZCBpbXByb3ZlIGRvY3MKKworKiByZW1vdmUgcHkucmVz
dCB0b29sIGFuZCBpbnRlcm5hbCBuYW1lc3BhY2UgLSBpdCB3YXMKKyAgbmV2ZXIgcmVhbGx5IGFk
dmVydGlzZWQgYW5kIGNhbiBzdGlsbCBiZSB1c2VkIHdpdGgKKyAgdGhlIG9sZCByZWxlYXNlIGlm
IG5lZWRlZC4gIElmIHRoZXJlIGlzIGludGVyZXN0CisgIGl0IGNvdWxkIGJlIHJldml2ZWQgaW50
byBpdHMgb3duIHRvb2wgaSBndWVzcy4KKworKiBmaXggaXNzdWU0OCBhbmQgaXNzdWU1OTogcmFp
c2UgYW4gRXJyb3IgaWYgdGhlIG1vZHVsZQorICBmcm9tIGFuIGltcG9ydGVkIHRlc3QgZmlsZSBk
b2VzIG5vdCBzZWVtIHRvIGNvbWUgZnJvbQorICB0aGUgZmlsZXBhdGggLSBhdm9pZHMgInNhbWUt
bmFtZSIgY29uZnVzaW9uIHRoYXQgaGFzCisgIGJlZW4gcmVwb3J0ZWQgcmVwZWF0ZWRseQorCisq
IG1lcmdlZCBSb25ueSdzIG5vc2UtY29tcGF0aWJpbGl0eSBoYWNrczogbm93CisgIG5vc2Utc3R5
bGUgc2V0dXBfbW9kdWxlKCkgYW5kIHNldHVwKCkgZnVuY3Rpb25zIGFyZQorICBzdXBwb3J0ZWQK
KworKiBpbnRyb2R1Y2UgZ2VuZXJhbGl6ZWQgcHkudGVzdC5tYXJrIGZ1bmN0aW9uIG1hcmtpbmcK
KworKiByZXNodWZmbGUgLyByZWZpbmUgY29tbWFuZCBsaW5lIGdyb3VwaW5nCisKKyogZGVwcmVj
YXRlIHBhcnNlci5hZGRncm91cCBpbiBmYXZvdXIgb2YgZ2V0Z3JvdXAgd2hpY2ggY3JlYXRlcyBv
cHRpb24gZ3JvdXAKKworKiBhZGQgLS1yZXBvcnQgY29tbWFuZCBsaW5lIG9wdGlvbiB0aGF0IGFs
bG93cyB0byBjb250cm9sIHNob3dpbmcgb2Ygc2tpcHBlZC94ZmFpbGVkIHNlY3Rpb25zCisKKyog
Z2VuZXJhbGl6ZWQgc2tpcHBpbmc6IGEgbmV3IHdheSB0byBtYXJrIHB5dGhvbiBmdW5jdGlvbnMg
d2l0aCBza2lwaWYgb3IgeGZhaWwKKyAgYXQgZnVuY3Rpb24sIGNsYXNzIGFuZCBtb2R1bGVzIGxl
dmVsIGJhc2VkIG9uIHBsYXRmb3JtIG9yIHN5cy1tb2R1bGUgYXR0cmlidXRlcy4KKworKiBleHRl
bmQgcHkudGVzdC5tYXJrIGRlY29yYXRvciB0byBhbGxvdyBmb3IgcG9zaXRpb25hbCBhcmdzCisK
KyogaW50cm9kdWNlIGFuZCB0ZXN0ICJweS5jbGVhbnVwIC1kIiB0byByZW1vdmUgZW1wdHkgZGly
ZWN0b3JpZXMKKworKiBmaXggaXNzdWUgIzU5IC0gcm9idXN0aWZ5IHVuaXR0ZXN0IHRlc3QgY29s
bGVjdGlvbgorCisqIG1ha2UgYnB5dGhvbi9oZWxwIGludGVyYWN0aW9uIHdvcmsgYnkgYWRkaW5n
IGFuIF9fYWxsX18gYXR0cmlidXRlCisgIHRvIEFwaU1vZHVsZSwgY2xlYW51cCBpbml0cGtnCisK
KyogdXNlIE1JVCBsaWNlbnNlIGZvciBweWxpYiwgYWRkIHNvbWUgY29udHJpYnV0b3JzCisKKyog
cmVtb3ZlIHB5LmV4ZWNuZXQgY29kZSBhbmQgc3Vic3RpdHV0ZSBhbGwgdXNhZ2VzIHdpdGggJ2V4
ZWNuZXQnIHByb3BlcgorCisqIGZpeCBpc3N1ZTUwIC0gY2FjaGVkX3NldHVwIG5vdyBjYWNoZXMg
bW9yZSB0byBleHBlY3RhdGlvbnMKKyAgZm9yIHRlc3QgZnVuY3Rpb25zIHdpdGggbXVsdGlwbGUg
YXJndW1lbnRzLgorCisqIG1lcmdlIEphcmtvJ3MgZml4ZXMsIGlzc3VlICM0NSBhbmQgIzQ2CisK
KyogYWRkIHRoZSBhYmlsaXR5IHRvIHNwZWNpZnkgYSBwYXRoIGZvciBweS5sb29rdXAgdG8gc2Vh
cmNoIGluCisKKyogZml4IGEgZnVuY2FyZyBjYWNoZWRfc2V0dXAgYnVnIHByb2JhYmx5IG9ubHkg
b2NjdXJyaW5nCisgIGluIGRpc3RyaWJ1dGVkIHRlc3RpbmcgYW5kICJtb2R1bGUiIHNjb3BlIHdp
dGggdGVhcmRvd24uCisKKyogbWFueSBmaXhlcyBhbmQgY2hhbmdlcyBmb3IgbWFraW5nIHRoZSBj
b2RlIGJhc2UgcHl0aG9uMyBjb21wYXRpYmxlLAorICBtYW55IHRoYW5rcyB0byBCZW5qYW1pbiBQ
ZXRlcnNvbiBmb3IgaGVscGluZyB3aXRoIHRoaXMuCisKKyogY29uc29saWRhdGUgYnVpbHRpbnMg
aW1wbGVtZW50YXRpb24gdG8gYmUgY29tcGF0aWJsZSB3aXRoID49Mi4zLAorICBhZGQgaGVscGVy
cyB0byBlYXNlIGtlZXBpbmcgMiBhbmQgM2sgY29tcGF0aWJsZSBjb2RlCisKKyogZGVwcmVjYXRl
IHB5LmNvbXBhdC5kb2N0ZXN0fHN1YnByb2Nlc3N8dGV4dHdyYXB8b3B0cGFyc2UKKworKiBkZXBy
ZWNhdGUgcHkubWFnaWMuYXV0b3BhdGgsIHJlbW92ZSBweS9tYWdpYyBkaXJlY3RvcnkKKworKiBt
b3ZlIHB5dGVzdCBhc3NlcnRpb24gaGFuZGxpbmcgdG8gcHkvY29kZSBhbmQgYSBweXRlc3RfYXNz
ZXJ0aW9uCisgIHBsdWdpbiwgYWRkICItLW5vLWFzc2VydCIgb3B0aW9uLCBkZXByZWNhdGUgcHku
bWFnaWMgbmFtZXNwYWNlcworICBpbiBmYXZvdXIgb2YgKGxlc3MpIHB5LmNvZGUgb25lcy4KKwor
KiBjb25zb2xpZGF0ZSBhbmQgY2xlYW51cCBweS9jb2RlIGNsYXNzZXMgYW5kIGZpbGVzCisKKyog
Y2xlYW51cCBweS9taXNjLCBtb3ZlIHRlc3RzIHRvIGJpbi1mb3ItZGlzdAorCisqIGludHJvZHVj
ZSBkZWxhdHRyL2RlbGl0ZW0vZGVsZW52IG1ldGhvZHMgdG8gcHkudGVzdCdzIG1vbmtleXBhdGNo
IGZ1bmNhcmcKKworKiBjb25zb2xpZGF0ZSBweS5sb2cgaW1wbGVtZW50YXRpb24sIHJlbW92ZSBv
bGQgYXBwcm9hY2guCisKKyogaW50cm9kdWNlIHB5LmlvLlRleHRJTyBhbmQgcHkuaW8uQnl0ZXNJ
TyBmb3IgZGlzdGluZ3Vpc2hpbmcgYmV0d2VlbgorICB0ZXh0L3VuaWNvZGUgYW5kIGJ5dGUtc3Ry
ZWFtcyAodXNlcyB1bmRlcmx5aW5nIHN0YW5kYXJkIGxpYiBpby4qCisgIGlmIGF2YWlsYWJsZSkK
KworKiBtYWtlIHB5LnVuaXR0ZXN0X2NvbnZlcnQgaGVscGVyIHNjcmlwdCBhdmFpbGFibGUgd2hp
Y2ggY29udmVydHMgInVuaXR0ZXN0LnB5IgorICBzdHlsZSBmaWxlcyBpbnRvIHRoZSBzaW1wbGVy
IGFzc2VydC9kaXJlY3QtdGVzdC1jbGFzc2VzIHB5LnRlc3Qvbm9zZXRlc3RzCisgIHN0eWxlLiAg
VGhlIHNjcmlwdCB3YXMgd3JpdHRlbiBieSBMYXVyYSBDcmVpZ2h0b24uCisKKyogc2ltcGxpZmll
ZCBpbnRlcm5hbCBsb2NhbHBhdGggaW1wbGVtZW50YXRpb24KKworMS4wLjIgKDIwMDktMDgtMjcp
Cis9PT09PT09PT09PT09PT09PT0KKworKiBmaXhpbmcgcGFja2FnaW5nIGlzc3VlcywgdHJpZ2dl
cmVkIGJ5IGZlZG9yYSByZWRoYXQgcGFja2FnaW5nLAorICBhbHNvIGFkZGVkIGRvYywgZXhhbXBs
ZXMgYW5kIGNvbnRyaWIgZGlycyB0byB0aGUgdGFyYmFsbC4KKworKiBhZGRlZCBhIGRvY3VtZW50
YXRpb24gbGluayB0byB0aGUgbmV3IGRqYW5nbyBwbHVnaW4uCisKKzEuMC4xICgyMDA5LTA4LTE5
KQorPT09PT09PT09PT09PT09PT09CisKKyogYWRkZWQgYSAncHl0ZXN0X25vc2UnIHBsdWdpbiB3
aGljaCBoYW5kbGVzIG5vc2UuU2tpcFRlc3QsCisgIG5vc2Utc3R5bGUgZnVuY3Rpb24vbWV0aG9k
L2dlbmVyYXRvciBzZXR1cC90ZWFyZG93biBhbmQKKyAgdHJpZXMgdG8gcmVwb3J0IGZ1bmN0aW9u
cyBjb3JyZWN0bHkuCisKKyogY2FwdHVyaW5nIG9mIHVuaWNvZGUgd3JpdGVzIG9yIGVuY29kZWQg
c3RyaW5ncyB0byBzeXMuc3Rkb3V0L2VycgorICB3b3JrIGJldHRlciwgYWxzbyB0ZXJtaW5hbHdy
aXRpbmcgd2FzIGFkYXB0ZWQgYW5kIHNvbWV3aGF0CisgIHVuaWZpZWQgYmV0d2VlbiB3aW5kb3dz
IGFuZCBsaW51eC4KKworKiBpbXByb3ZlZCBkb2N1bWVudGF0aW9uIGxheW91dCBhbmQgY29udGVu
dCBhIGxvdAorCisqIGFkZGVkIGEgIi0taGVscC1jb25maWciIG9wdGlvbiB0byBzaG93IGNvbmZ0
ZXN0LnB5IC8gRU5WLXZhciBuYW1lcyBmb3IKKyAgYWxsIGxvbmdvcHQgY21kbGluZSBvcHRpb25z
LCBhbmQgc29tZSBzcGVjaWFsIGNvbmZ0ZXN0LnB5IHZhcmlhYmxlcy4KKyAgcmVuYW1lZCAnY29u
Zl9jYXB0dXJlJyBjb25mdGVzdCBzZXR0aW5nIHRvICdvcHRpb25fY2FwdHVyZScgYWNjb3JkaW5n
bHkuCisKKyogZml4IGlzc3VlICMyNzogYmV0dGVyIHJlcG9ydGluZyBvbiBub24tY29sbGVjdGFi
bGUgaXRlbXMgZ2l2ZW4gb24gY29tbWFuZGxpbmUKKyAgKGUuZy4gcHljIGZpbGVzKQorCisqIGZp
eCBpc3N1ZSAjMzM6IGFkZGVkIC0tdmVyc2lvbiBmbGFnICh0aGFua3MgQmVuamFtaW4gUGV0ZXJz
b24pCisKKyogZml4IGlzc3VlICMzMjogYWRkaW5nIHN1cHBvcnQgZm9yICJpbmNvbXBsZXRlIiBw
YXRocyB0byB3Y3BhdGguc3RhdHVzKCkKKworKiAiVGVzdCIgcHJlZml4ZWQgY2xhc3NlcyBhcmUg
Km5vdCogY29sbGVjdGVkIGJ5IGRlZmF1bHQgYW55bW9yZSBpZiB0aGV5CisgIGhhdmUgYW4gX19p
bml0X18gbWV0aG9kCisKKyogbW9ua2V5cGF0Y2ggc2V0ZW52KCkgbm93IGFjY2VwdHMgYSAicHJl
cGVuZCIgcGFyYW1ldGVyCisKKyogaW1wcm92ZWQgcmVwb3J0aW5nIG9mIGNvbGxlY3Rpb24gZXJy
b3IgdHJhY2ViYWNrcworCisqIHNpbXBsaWZpZWQgbXVsdGljYWxsIG1lY2hhbmlzbSBhbmQgcGx1
Z2luIGFyY2hpdGVjdHVyZSwKKyAgcmVuYW1lZCBzb21lIGludGVybmFsIG1ldGhvZHMgYW5kIGFy
Z25hbWVzCisKKzEuMC4wICgyMDA5LTA4LTA0KQorPT09PT09PT09PT09PT09PT09CisKKyogbW9y
ZSB0ZXJzZSByZXBvcnRpbmcgdHJ5IHRvIHNob3cgZmlsZXN5c3RlbSBwYXRoIHJlbGF0aXZlbHkg
dG8gY3VycmVudCBkaXIKKyogaW1wcm92ZSB4ZmFpbCBvdXRwdXQgYSBiaXQKKworMS4wLjBiOSAo
MjAwOS0wNy0zMSkKKz09PT09PT09PT09PT09PT09PT09CisKKyogY2xlYW5seSBoYW5kbGUgYW5k
IHJlcG9ydCBmaW5hbCB0ZWFyZG93biBvZiB0ZXN0IHNldHVwCisKKyogZml4IHN2bi0xLjYgY29t
cGF0IGlzc3VlIHdpdGggcHkucGF0aC5zdm53YygpLnZlcnNpb25lZCgpCisgICh0aGFua3MgV291
dGVyIFZhbmRlbiBIb3ZlKQorCisqIHNldHVwL3RlYXJkb3duIG9yIGNvbGxlY3Rpb24gcHJvYmxl
bXMgbm93IHNob3cgYXMgRVJST1JzCisgIG9yIHdpdGggYmlnICJFIidzIGluIHRoZSBwcm9ncmVz
cyBsaW5lcy4gIHRoZXkgYXJlIHJlcG9ydGVkCisgIGFuZCBjb3VudGVkIHNlcGFyYXRlbHkuCisK
KyogZGlzdC10ZXN0aW5nOiBwcm9wZXJseSBoYW5kbGUgdGVzdCBpdGVtcyB0aGF0IGdldCBsb2Nh
bGx5CisgIGNvbGxlY3RlZCBidXQgY2Fubm90IGJlIGNvbGxlY3RlZCBvbiB0aGUgcmVtb3RlIHNp
ZGUgLSBvZnRlbgorICBkdWUgdG8gcGxhdGZvcm0vZGVwZW5kZW5jeSByZWFzb25zCisKKyogc2lt
cGxpZmllZCBweS50ZXN0Lm1hcmsgQVBJIC0gc2VlIGtleXdvcmQgcGx1Z2luIGRvY3VtZW50YXRp
b24KKworKiBpbnRlZ3JhdGUgYmV0dGVyIHdpdGggbG9nZ2luZzogY2FwdHVyaW5nIG5vdyBieSBk
ZWZhdWx0IGNhcHR1cmVzCisgIHRlc3QgZnVuY3Rpb25zIGFuZCB0aGVpciBpbW1lZGlhdGUgc2V0
dXAvdGVhcmRvd24gaW4gYSBzaW5nbGUgc3RyZWFtCisKKyogY2Fwc3lzIGFuZCBjYXBmZCBmdW5j
YXJncyBub3cgaGF2ZSBhIHJlYWRvdXRlcnIoKSBhbmQgYSBjbG9zZSgpIG1ldGhvZAorICAodW5k
ZXJseWluZ2x5IHB5LmlvLlN0ZENhcHR1cmUvRkQgb2JqZWN0cyBhcmUgdXNlZCB3aGljaCBncmV3
IGEKKyAgcmVhZG91dGVycigpIG1ldGhvZCBhcyB3ZWxsIHRvIHJldHVybiBzbmFwc2hvdHMgb2Yg
Y2FwdHVyZWQgb3V0L2VycikKKworKiBtYWtlIGFzc2VydC1yZWludGVycHJldGF0aW9uIHdvcmsg
YmV0dGVyIHdpdGggY29tcGFyaXNvbnMgbm90CisgIHJldHVybmluZyBib29scyAocmVwb3J0ZWQg
d2l0aCBudW1weSBmcm9tIHRoYW5rcyBtYWNpZWogZmlqYWxrb3dza2kpCisKKyogcmV3b3JrZWQg
cGVyLXRlc3Qgb3V0cHV0IGNhcHR1cmluZyBpbnRvIHRoZSBweXRlc3RfaW9jYXB0dXJlLnB5IHBs
dWdpbgorICBhbmQgdGh1cyByZW1vdmVkIGNhcHR1cmluZyBjb2RlIGZyb20gY29uZmlnIG9iamVj
dAorCisqIGl0ZW0ucmVwcl9mYWlsdXJlKGV4Y2luZm8pIGluc3RlYWQgb2YgaXRlbS5yZXByX2Zh
aWx1cmUoZXhjaW5mbywgb3V0ZXJyKQorCisKKzEuMC4wYjggKDIwMDktMDctMjIpCis9PT09PT09
PT09PT09PT09PT09PQorCisqIHB5dGVzdF91bml0dGVzdC1wbHVnaW4gaXMgbm93IGVuYWJsZWQg
YnkgZGVmYXVsdAorCisqIGludHJvZHVjZWQgcHl0ZXN0X2tleWJvYXJkaW50ZXJydXB0IGhvb2sg
YW5kCisgIHJlZmluZWQgcHl0ZXN0X3Nlc3Npb25maW5pc2ggaG9va2VkLCBhZGRlZCB0ZXN0cy4K
KworKiB3b3JrYXJvdW5kIGEgYnVnZ3kgbG9nZ2luZyBtb2R1bGUgaW50ZXJhY3Rpb24gKCJjbG9z
aW5nIGFscmVhZHkgY2xvc2VkCisgIGZpbGVzIikuICBUaGFua3MgdG8gU3JpZGhhciBSYXRuYWt1
bWFyIGZvciB0cmlnZ2VyaW5nLgorCisqIGlmIHBsdWdpbnMgdXNlICJweS50ZXN0LmltcG9ydG9y
c2tpcCIgZm9yIGltcG9ydGluZworICBhIGRlcGVuZGVuY3kgb25seSBhIHdhcm5pbmcgd2lsbCBi
ZSBpc3N1ZWQgaW5zdGVhZAorICBvZiBleGl0aW5nIHRoZSB0ZXN0aW5nIHByb2Nlc3MuCisKKyog
bWFueSBpbXByb3ZlbWVudHMgdG8gZG9jczoKKyAgLSByZWZpbmVkIGZ1bmNhcmdzIGRvYyAsIHVz
ZSB0aGUgdGVybSAiZmFjdG9yeSIgaW5zdGVhZCBvZiAicHJvdmlkZXIiCisgIC0gYWRkZWQgYSBu
ZXcgdGFsay90dXRvcmlhbCBkb2MgcGFnZQorICAtIGJldHRlciBkb3dubG9hZCBwYWdlCisgIC0g
YmV0dGVyIHBsdWdpbiBkb2NzdHJpbmdzCisgIC0gYWRkZWQgbmV3IHBsdWdpbnMgcGFnZSBhbmQg
YXV0b21hdGljIGRvYyBnZW5lcmF0aW9uIHNjcmlwdAorCisqIGZpeGVkIHRlYXJkb3duIHByb2Js
ZW0gcmVsYXRlZCB0byBwYXJ0aWFsbHkgZmFpbGluZyBmdW5jYXJnIHNldHVwcworICAodGhhbmtz
IE1yVG9wZiBmb3IgcmVwb3J0aW5nKSwgInB5dGVzdF9ydW50ZXN0X3RlYXJkb3duIiBpcyBub3cK
KyAgYWx3YXlzIGludm9rZWQgZXZlbiBpZiB0aGUgInB5dGVzdF9ydW50ZXN0X3NldHVwIiBmYWls
ZWQuCisKKyogdHdlYWtlZCBkb2N0ZXN0IG91dHB1dCBmb3IgZG9jc3RyaW5ncyBpbiBweSBtb2R1
bGVzLAorICB0aGFua3MgUmFkb21pci4KKworMS4wLjBiNworPT09PT09PQorCisqIHJlbmFtZWQg
cHkudGVzdC54ZmFpbCBiYWNrIHRvIHB5LnRlc3QubWFyay54ZmFpbCB0byBhdm9pZAorICB0d28g
d2F5cyB0byBkZWNvcmF0ZSBmb3IgeGZhaWwKKworKiByZS1hZGRlZCBweS50ZXN0Lm1hcmsgZGVj
b3JhdG9yIGZvciBzZXR0aW5nIGtleXdvcmRzIG9uIGZ1bmN0aW9ucworICAoaXQgd2FzIGFjdHVh
bGx5IGRvY3VtZW50ZWQgc28gcmVtb3ZpbmcgaXQgd2FzIG5vdCBuaWNlKQorCisqIHJlbW92ZSBz
Y29wZS1hcmd1bWVudCBmcm9tIHJlcXVlc3QuYWRkZmluYWxpemVyKCkgYmVjYXVzZQorICByZXF1
ZXN0LmNhY2hlZF9zZXR1cCBoYXMgdGhlIHNjb3BlIGFyZy4gVE9PV1RESS4KKworKiBwZXJmb3Jt
IHNldHVwIGZpbmFsaXphdGlvbiBiZWZvcmUgcmVwb3J0aW5nIGZhaWx1cmVzCisKKyogYXBwbHkg
bW9kaWZpZWQgcGF0Y2hlcyBmcm9tIEFuZHJlYXMgS2xvZWNrbmVyIHRvIGFsbG93CisgIHRlc3Qg
ZnVuY3Rpb25zIHRvIGhhdmUgbm8gZnVuY19jb2RlICgjMjIpIGFuZCB0byBtYWtlCisgICItayIg
YW5kIGZ1bmN0aW9uIGtleXdvcmRzIHdvcmsgICgjMjApCisKKyogYXBwbHkgcGF0Y2ggZnJvbSBE
YW5pZWwgUGVvbHpsZWl0aG5lciAoaXNzdWUgIzIzKQorCisqIHJlc29sdmUgaXNzdWUgIzE4LCBt
dWx0aXByb2Nlc3NpbmcuTWFuYWdlcigpIGFuZAorICByZWRpcmVjdGlvbiBjbGFzaAorCisqIG1h
a2UgX19uYW1lX18gPT0gIl9fY2hhbm5lbGV4ZWNfXyIgZm9yIHJlbW90ZV9leGVjIGNvZGUKKwor
MS4wLjBiMyAoMjAwOS0wNi0xOSkKKz09PT09PT09PT09PT09PT09PT09CisKKyogcGx1Z2luIGNs
YXNzZXMgYXJlIHJlbW92ZWQ6IG9uZSBub3cgZGVmaW5lcworICBob29rcyBkaXJlY3RseSBpbiBj
b25mdGVzdC5weSBvciBnbG9iYWwgcHl0ZXN0XyoucHkKKyAgZmlsZXMuCisKKyogYWRkZWQgbmV3
IHB5dGVzdF9uYW1lc3BhY2UoY29uZmlnKSBob29rIHRoYXQgYWxsb3dzCisgIHRvIGluamVjdCBo
ZWxwZXJzIGRpcmVjdGx5IHRvIHRoZSBweS50ZXN0LiogbmFtZXNwYWNlLgorCisqIGRvY3VtZW50
ZWQgYW5kIHJlZmluZWQgbWFueSBob29rcworCisqIGFkZGVkIG5ldyBzdHlsZSBvZiBnZW5lcmF0
aXZlIHRlc3RzIHZpYQorICBweXRlc3RfZ2VuZXJhdGVfdGVzdHMgaG9vayB0aGF0IGludGVncmF0
ZXMKKyAgd2VsbCB3aXRoIGZ1bmN0aW9uIGFyZ3VtZW50cy4KKworCisxLjAuMGIxCis9PT09PT09
CisKKyogaW50cm9kdWNlZCBuZXcgImZ1bmNhcmciIHNldHVwIG1ldGhvZCwKKyAgc2VlIGRvYy90
ZXN0L2Z1bmNhcmcudHh0CisKKyogaW50cm9kdWNlZCBwbHVnaW4gYXJjaGl0ZWN0dXJlIGFuZCBt
YW55CisgIG5ldyBweS50ZXN0IHBsdWdpbnMsIHNlZQorICBkb2MvdGVzdC9wbHVnaW5zLnR4dAor
CisqIHRlYXJkb3duX21ldGhvZCBpcyBub3cgZ3VhcmFudGVlZCB0byBnZXQKKyAgY2FsbGVkIGFm
dGVyIGEgdGVzdCBtZXRob2QgaGFzIHJ1bi4KKworKiBuZXcgbWV0aG9kOiBweS50ZXN0LmltcG9y
dG9yc2tpcChtb2QsbWludmVyc2lvbikKKyAgd2lsbCBlaXRoZXIgaW1wb3J0IG9yIGNhbGwgcHku
dGVzdC5za2lwKCkKKworKiBjb21wbGV0ZWx5IHJldmlzZWQgaW50ZXJuYWwgcHkudGVzdCBhcmNo
aXRlY3R1cmUKKworKiBuZXcgcHkucHJvY2Vzcy5Gb3JrZWRGdW5jIG9iamVjdCBhbGxvd2luZyB0
bworICBmb3JrIGV4ZWN1dGlvbiBvZiBhIGZ1bmN0aW9uIHRvIGEgc3ViIHByb2Nlc3MKKyAgYW5k
IGdldHRpbmcgYSByZXN1bHQgYmFjay4KKworWFhYIGxvdHMgb2YgdGhpbmdzIG1pc3NpbmcgaGVy
ZSBYWFgKKworMC45LjIKKz09PT09CisKKyogcmVmaW5lZCBpbnN0YWxsYXRpb24gYW5kIG1ldGFk
YXRhLCBjcmVhdGVkIG5ldyBzZXR1cC5weSwKKyAgbm93IGJhc2VkIG9uIHNldHVwdG9vbHMvZXpf
c2V0dXAgKHRoYW5rcyB0byBSYWxmIFNjaG1pdHQKKyAgZm9yIGhpcyBzdXBwb3J0KS4KKworKiBp
bXByb3ZlZCB0aGUgd2F5IG9mIG1ha2luZyBweS4qIHNjcmlwdHMgYXZhaWxhYmxlIGluCisgIHdp
bmRvd3MgZW52aXJvbm1lbnRzLCB0aGV5IGFyZSBub3cgYWRkZWQgdG8gdGhlCisgIFNjcmlwdHMg
ZGlyZWN0b3J5IGFzICIuY21kIiBmaWxlcy4KKworKiBweS5wYXRoLnN2bndjLnN0YXR1cygpIG5v
dyBpcyBtb3JlIGNvbXBsZXRlIGFuZAorICB1c2VzIHhtbCBvdXRwdXQgZnJvbSB0aGUgJ3N2bicg
Y29tbWFuZCBpZiBhdmFpbGFibGUKKyAgKEd1aWRvIFdlc2RvcnApCisKKyogZml4IGZvciBweS5w
YXRoLnN2biogdG8gd29yayB3aXRoIHN2biAxLjUKKyAgKENocmlzIExhbWIpCisKKyogZml4IHBh
dGgucmVsdG8ob3RoZXJwYXRoKSBtZXRob2Qgb24gd2luZG93cyB0bworICB1c2Ugbm9ybWNhc2Ug
Zm9yIGNoZWNraW5nIGlmIGEgcGF0aCBpcyByZWxhdGl2ZS4KKworKiBweS50ZXN0J3MgdHJhY2Vi
YWNrIGlzIGJldHRlciBwYXJzZWFibGUgZnJvbSBlZGl0b3JzCisgIChmb2xsb3dzIHRoZSBmaWxl
bmFtZXM6TElORU5POiBNU0cgY29udmVudGlvbikKKyAgKHRoYW5rcyB0byBPc21vIFNhbG9tYWEp
CisKKyogZml4IHRvIGphdmFzY3JpcHQtZ2VuZXJhdGlvbiwgInB5LnRlc3QgLS1ydW5icm93c2Vy
IgorICBzaG91bGQgd29yayBtb3JlIHJlbGlhYmx5IG5vdworCisqIHJlbW92ZWQgcHJldmlvdXNs
eSBhY2NpZGVudGFsbHkgYWRkZWQKKyAgcHkudGVzdC5icm9rZW4gYW5kIHB5LnRlc3Qubm90aW1w
bGVtZW50ZWQgaGVscGVycy4KKworKiB0aGVyZSBub3cgaXMgYSBweS5fX3ZlcnNpb25fXyBhdHRy
aWJ1dGUKKworMC45LjEKKz09PT09CisKK1RoaXMgaXMgYSBmYWlybHkgY29tcGxldGUgbGlzdCBv
ZiB2MC45LjEsIHdoaWNoIGNhbgorc2VydmUgYXMgYSByZWZlcmVuY2UgZm9yIGRldmVsb3BlcnMu
CisKKyogYWxsb3dpbmcgKyBzaWducyBpbiBweS5wYXRoLnN2biB1cmxzIFszOTEwNl0KKyogZml4
ZWQgc3VwcG9ydCBmb3IgRmFpbGVkIGV4Y2VwdGlvbnMgd2l0aG91dCBleGNpbmZvIGluIHB5LnRl
c3QgWzM5MzQwXQorKiBhZGRlZCBzdXBwb3J0IGZvciBraWxsaW5nIHByb2Nlc3NlcyBmb3IgV2lu
ZG93cyAoYXMgd2VsbCBhcyBwbGF0Zm9ybXMgdGhhdAorICBzdXBwb3J0IG9zLmtpbGwpIGluIHB5
Lm1pc2Mua2lsbHByb2MgWzM5NjU1XQorKiBhZGRlZCBzZXR1cC90ZWFyZG93biBmb3IgZ2VuZXJh
dGl2ZSB0ZXN0cyB0byBweS50ZXN0IFs0MDcwMl0KKyogYWRkZWQgZGV0ZWN0aW9uIG9mIEZBSUxF
RCBUTyBMT0FEIE1PRFVMRSB0byBweS50ZXN0IFs0MDcwMywgNDA3MzgsIDQwNzM5XQorKiBmaXhl
ZCBwcm9ibGVtIHdpdGggY2FsbGluZyAucmVtb3ZlKCkgb24gd2NwYXRocyBvZiBub24tdmVyc2lv
bmVkIGZpbGVzIGluCisgIHB5LnBhdGggWzQ0MjQ4XQorKiBmaXhlZCBzb21lIGltcG9ydCBhbmQg
aW5oZXJpdGFuY2UgaXNzdWVzIGluIHB5LnRlc3QgWzQxNDgwLCA0NDY0OCwgNDQ2NTVdCisqIGZh
aWwgdG8gcnVuIGdyZWVubGV0IHRlc3RzIHdoZW4gcHlweSBpcyBhdmFpbGFibGUsIGJ1dCB3aXRo
b3V0IHN0YWNrbGVzcworICBbNDUyOTRdCisqIHNtYWxsIGZpeGVzIGluIHJzZXNzaW9uIHRlc3Rz
IFs0NTI5NV0KKyogZml4ZWQgaXNzdWUgd2l0aCAyLjUgdHlwZSByZXByZXNlbnRhdGlvbnMgaW4g
cHkudGVzdCBbNDU0ODMsIDQ1NDg0XQorKiBtYWRlIHRoYXQgaW50ZXJuYWwgcmVwb3J0aW5nIGlz
c3VlcyBkaXNwbGF5aW5nIGlzIGRvbmUgYXRvbWljYWxseSBpbiBweS50ZXN0CisgIFs0NTUxOF0K
KyogbWFkZSB0aGF0IG5vbi1leGlzdGluZyBmaWxlcyBhcmUgaWdub3JlZCBieSB0aGUgcHkubG9v
a3VwIHNjcmlwdCBbNDU1MTldCisqIGltcHJvdmVkIGV4Y2VwdGlvbiBuYW1lIGNyZWF0aW9uIGlu
IHB5LnRlc3QgWzQ1NTM1XQorKiBtYWRlIHRoYXQgbGVzcyB0aHJlYWRzIGFyZSB1c2VkIGluIGV4
ZWNuZXQgW21lcmdlIGluIDQ1NTM5XQorKiByZW1vdmVkIGxvY2sgcmVxdWlyZWQgZm9yIGF0b21p
YyByZXBvcnRpbmcgaXNzdWUgZGlzcGxheWluZyBpbiBweS50ZXN0CisgIFs0NTU0NV0KKyogcmVt
b3ZlZCBnbG9iYWxzIGZyb20gZXhlY25ldCBbNDU1NDEsIDQ1NTQ3XQorKiByZWZhY3RvcmVkIGNs
ZWFudXAgbWVjaGFuaWNzLCBtYWRlIHRoYXQgc2V0RGFlbW9uIGlzIHNldCB0byAxIHRvIG1ha2Ug
YXRleGl0CisgIGdldCBjYWxsZWQgaW4gMi41IChweS5leGVjbmV0KSBbNDU1NDhdCisqIGZpeGVk
IGJ1ZyBpbiBqb2luaW5nIHRocmVhZHMgaW4gcHkuZXhlY25ldCdzIHNlcnZlbWFpbiBbNDU1NDld
CisqIHJlZmFjdG9yZWQgcHkudGVzdC5yc2Vzc2lvbiB0ZXN0cyB0byBub3QgcmVseSBvbiBleGFj
dCBvdXRwdXQgZm9ybWF0IGFueW1vcmUKKyAgWzQ1NjQ2XQorKiB1c2luZyByZXByKCkgb24gdGVz
dCBvdXRjb21lIFs0NTY0N10KKyogYWRkZWQgJ1JlYXNvbicgY2xhc3NlcyBmb3IgcHkudGVzdC5z
a2lwKCkgWzQ1NjQ4LCA0NTY0OV0KKyoga2lsbGVkIHNvbWUgdW5uZWNlc3Nhcnkgc2FuaXR5IGNo
ZWNrIGluIHB5LnRlc3QuY29sbGVjdCBbNDU2NTVdCisqIGF2b2lkIHVzaW5nIG9zLnRtcGZpbGUo
KSBpbiBweS5pby5mZGNhcHR1cmUgYmVjYXVzZSBvbiBXaW5kb3dzIGl0J3Mgb25seQorICB1c2Fi
bGUgYnkgQWRtaW5pc3RyYXRvcnMgWzQ1OTAxXQorKiBhZGRlZCBzdXBwb3J0IGZvciBsb2NraW5n
IGFuZCBub24tcmVjdXJzaXZlIGNvbW1pdHMgdG8gcHkucGF0aC5zdm53YyBbNDU5OTRdCisqIGxv
Y2tpbmcgZmlsZXMgaW4gcHkuZXhlY25ldCB0byBwcmV2ZW50IENQeXRob24gZnJvbSBzZWdmYXVs
dGluZyBbNDYwMTBdCisqIGFkZGVkIGV4cG9ydCgpIG1ldGhvZCB0byBweS5wYXRoLnN2bnVybAor
KiBmaXhlZCAtZCAteCBpbiBweS50ZXN0IFs0NzI3N10KKyogZml4ZWQgYXJndW1lbnQgY29uY2F0
ZW5hdGlvbiBwcm9ibGVtIGluIHB5LnBhdGguc3Zud2MgWzQ5NDIzXQorKiByZXN0b3JlIHB5LnRl
c3QgYmVoYXZpb3VyIHRoYXQgaXQgZXhpdHMgd2l0aCBjb2RlIDEgd2hlbiB0aGVyZSBhcmUgZmFp
bHVyZXMKKyAgWzQ5OTc0XQorKiBkb24ndCBmYWlsIG9uIGh0bWwgZmlsZXMgdGhhdCBkb24ndCBo
YXZlIGFuIGFjY29tcGFueWluZyAudHh0IGZpbGUgWzUwNjA2XQorKiBmaXhlZCAndXRlc3Rjb252
ZXJ0LnB5IDwgaW5wdXQnIFs1MDY0NV0KKyogc21hbGwgZml4IGZvciBjb2RlIGluZGVudGF0aW9u
IGluIHB5LmNvZGUuc291cmNlIFs1MDc1NV0KKyogZml4IF9kb2NnZW4ucHkgZG9jdW1lbnRhdGlv
biBidWlsZGluZyBbNTEyODVdCisqIGltcHJvdmVkIGNoZWNrcyBmb3Igc291cmNlIHJlcHJlc2Vu
dGF0aW9uIG9mIGNvZGUgYmxvY2tzIGluIHB5LnRlc3QgWzUxMjkyXQorKiBhZGRlZCBzdXBwb3J0
IGZvciBwYXNzaW5nIGF1dGhlbnRpY2F0aW9uIHRvIHB5LnBhdGguc3ZuKiBvYmplY3RzIFs1MjAw
MCwKKyAgNTIwMDFdCisqIHJlbW92ZWQgc29ydGVkKCkgY2FsbCBmb3IgcHkuYXBpZ2VuIHRlc3Rz
IGluIGZhdm91ciBvZiBbXS5zb3J0KCkgdG8gc3VwcG9ydAorICBQeXRob24gMi4zIFs1MjQ4MV0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L0NPTlRSSUJVVElORy5yc3QgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9D
T05UUklCVVRJTkcucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4NWE4OTRiOTEwNzc3ZWM3MTI4MDdmOGM2MzUw
OWQxMjk0MjlhOWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9DT05UUklCVVRJTkcu
cnN0CkBAIC0wLDAgKzEsMjc4IEBACis9PT09PT09PT09PT09PT09PT09PT09PT09PT09CitDb250
cmlidXRpb24gZ2V0dGluZyBzdGFydGVkCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09CisK
K0NvbnRyaWJ1dGlvbnMgYXJlIGhpZ2hseSB3ZWxjb21lZCBhbmQgYXBwcmVjaWF0ZWQuICBFdmVy
eSBsaXR0bGUgaGVscCBjb3VudHMsCitzbyBkbyBub3QgaGVzaXRhdGUhCisKKy4uIGNvbnRlbnRz
OjogQ29udHJpYnV0aW9uIGxpbmtzCisgICA6ZGVwdGg6IDIKKworCisuLiBfc3VibWl0ZmVlZGJh
Y2s6CisKK0ZlYXR1cmUgcmVxdWVzdHMgYW5kIGZlZWRiYWNrCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorCitEbyB5b3UgbGlrZSBweXRlc3Q/ICBTaGFyZSBzb21lIGxvdmUgb24gVHdp
dHRlciBvciBpbiB5b3VyIGJsb2cgcG9zdHMhCisKK1dlJ2QgYWxzbyBsaWtlIHRvIGhlYXIgYWJv
dXQgeW91ciBwcm9wb3NpdGlvbnMgYW5kIHN1Z2dlc3Rpb25zLiAgRmVlbCBmcmVlIHRvCitgc3Vi
bWl0IHRoZW0gYXMgaXNzdWVzIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
aXNzdWVzPmBfIGFuZDoKKworKiBFeHBsYWluIGluIGRldGFpbCBob3cgdGhleSBzaG91bGQgd29y
ay4KKyogS2VlcCB0aGUgc2NvcGUgYXMgbmFycm93IGFzIHBvc3NpYmxlLiAgVGhpcyB3aWxsIG1h
a2UgaXQgZWFzaWVyIHRvIGltcGxlbWVudC4KKworCisuLiBfcmVwb3J0YnVnczoKKworUmVwb3J0
IGJ1Z3MKKy0tLS0tLS0tLS0tCisKK1JlcG9ydCBidWdzIGZvciBweXRlc3QgaW4gdGhlIGBpc3N1
ZSB0cmFja2VyIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzPmBf
LgorCitJZiB5b3UgYXJlIHJlcG9ydGluZyBhIGJ1ZywgcGxlYXNlIGluY2x1ZGU6CisKKyogWW91
ciBvcGVyYXRpbmcgc3lzdGVtIG5hbWUgYW5kIHZlcnNpb24uCisqIEFueSBkZXRhaWxzIGFib3V0
IHlvdXIgbG9jYWwgc2V0dXAgdGhhdCBtaWdodCBiZSBoZWxwZnVsIGluIHRyb3VibGVzaG9vdGlu
ZywKKyAgc3BlY2lmaWNhbGx5IHRoZSBQeXRob24gaW50ZXJwcmV0ZXIgdmVyc2lvbiwgaW5zdGFs
bGVkIGxpYnJhcmllcywgYW5kIHB5dGVzdAorICB2ZXJzaW9uLgorKiBEZXRhaWxlZCBzdGVwcyB0
byByZXByb2R1Y2UgdGhlIGJ1Zy4KKworSWYgeW91IGNhbiB3cml0ZSBhIGRlbW9uc3RyYXRpb24g
dGVzdCB0aGF0IGN1cnJlbnRseSBmYWlscyBidXQgc2hvdWxkIHBhc3MKKyh4ZmFpbCksIHRoYXQg
aXMgYSB2ZXJ5IHVzZWZ1bCBjb21taXQgdG8gbWFrZSBhcyB3ZWxsLCBldmVuIGlmIHlvdSBjYW5u
b3QKK2ZpeCB0aGUgYnVnIGl0c2VsZi4KKworCisuLiBfZml4YnVnczoKKworRml4IGJ1Z3MKKy0t
LS0tLS0tCisKK0xvb2sgdGhyb3VnaCB0aGUgR2l0SHViIGlzc3VlcyBmb3IgYnVncy4gIEhlcmUg
aXMgYSBmaWx0ZXIgeW91IGNhbiB1c2U6CitodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvbGFiZWxzL3R5cGUlM0ElMjBidWcKKworOnJlZjpgVGFsayA8Y29udGFjdD5gIHRvIGRl
dmVsb3BlcnMgdG8gZmluZCBvdXQgaG93IHlvdSBjYW4gZml4IHNwZWNpZmljIGJ1Z3MuCisKK0Rv
bid0IGZvcmdldCB0byBjaGVjayB0aGUgaXNzdWUgdHJhY2tlcnMgb2YgeW91ciBmYXZvdXJpdGUg
cGx1Z2lucywgdG9vIQorCisuLiBfd3JpdGVwbHVnaW5zOgorCitJbXBsZW1lbnQgZmVhdHVyZXMK
Ky0tLS0tLS0tLS0tLS0tLS0tLQorCitMb29rIHRocm91Z2ggdGhlIEdpdEh1YiBpc3N1ZXMgZm9y
IGVuaGFuY2VtZW50cy4gIEhlcmUgaXMgYSBmaWx0ZXIgeW91IGNhbiB1c2U6CitodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvbGFiZWxzL2VuaGFuY2VtZW50CisKKzpyZWY6YFRh
bGsgPGNvbnRhY3Q+YCB0byBkZXZlbG9wZXJzIHRvIGZpbmQgb3V0IGhvdyB5b3UgY2FuIGltcGxl
bWVudCBzcGVjaWZpYworZmVhdHVyZXMuCisKK1dyaXRlIGRvY3VtZW50YXRpb24KKy0tLS0tLS0t
LS0tLS0tLS0tLS0KKworUHl0ZXN0IGNvdWxkIGFsd2F5cyB1c2UgbW9yZSBkb2N1bWVudGF0aW9u
LiAgV2hhdCBleGFjdGx5IGlzIG5lZWRlZD8KKworKiBNb3JlIGNvbXBsZW1lbnRhcnkgZG9jdW1l
bnRhdGlvbi4gIEhhdmUgeW91IHBlcmhhcHMgZm91bmQgc29tZXRoaW5nIHVuY2xlYXI/CisqIERv
Y3VtZW50YXRpb24gdHJhbnNsYXRpb25zLiAgV2UgY3VycmVudGx5IGhhdmUgb25seSBFbmdsaXNo
LgorKiBEb2NzdHJpbmdzLiAgVGhlcmUgY2FuIG5ldmVyIGJlIHRvbyBtYW55IG9mIHRoZW0uCisq
IEJsb2cgcG9zdHMsIGFydGljbGVzIGFuZCBzdWNoIC0tIHRoZXkncmUgYWxsIHZlcnkgYXBwcmVj
aWF0ZWQuCisKK1lvdSBjYW4gYWxzbyBlZGl0IGRvY3VtZW50YXRpb24gZmlsZXMgZGlyZWN0bHkg
aW4gdGhlIEdpdEh1YiB3ZWIgaW50ZXJmYWNlLAord2l0aG91dCB1c2luZyBhIGxvY2FsIGNvcHku
ICBUaGlzIGNhbiBiZSBjb252ZW5pZW50IGZvciBzbWFsbCBmaXhlcy4KKworLi4gbm90ZTo6Cisg
ICAgQnVpbGQgdGhlIGRvY3VtZW50YXRpb24gbG9jYWxseSB3aXRoIHRoZSBmb2xsb3dpbmcgY29t
bWFuZDoKKworICAgIC4uIGNvZGU6OiBiYXNoCisKKyAgICAgICAgJCB0b3ggLWUgZG9jcworCisg
ICAgVGhlIGJ1aWx0IGRvY3VtZW50YXRpb24gc2hvdWxkIGJlIGF2YWlsYWJsZSBpbiB0aGUgYGBk
b2MvZW4vX2J1aWxkL2BgLgorCisgICAgV2hlcmUgJ2VuJyByZWZlcnMgdG8gdGhlIGRvY3VtZW50
YXRpb24gbGFuZ3VhZ2UuCisKKy4uIF9zdWJtaXRwbHVnaW46CisKK1N1Ym1pdHRpbmcgUGx1Z2lu
cyB0byBweXRlc3QtZGV2CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitQeXRl
c3QgZGV2ZWxvcG1lbnQgb2YgdGhlIGNvcmUsIHNvbWUgcGx1Z2lucyBhbmQgc3VwcG9ydCBjb2Rl
IGhhcHBlbnMKK2luIHJlcG9zaXRvcmllcyBsaXZpbmcgdW5kZXIgdGhlIGBgcHl0ZXN0LWRldmBg
IG9yZ2FuaXNhdGlvbnM6CisKKy0gYHB5dGVzdC1kZXYgb24gR2l0SHViIDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldj5gXworCistIGBweXRlc3QtZGV2IG9uIEJpdGJ1Y2tldCA8aHR0cHM6
Ly9iaXRidWNrZXQub3JnL3B5dGVzdC1kZXY+YF8KKworQWxsIHB5dGVzdC1kZXYgQ29udHJpYnV0
b3JzIHRlYW0gbWVtYmVycyBoYXZlIHdyaXRlIGFjY2VzcyB0byBhbGwgY29udGFpbmVkCityZXBv
c2l0b3JpZXMuICBQeXRlc3QgY29yZSBhbmQgcGx1Z2lucyBhcmUgZ2VuZXJhbGx5IGRldmVsb3Bl
ZAordXNpbmcgYHB1bGwgcmVxdWVzdHNgXyB0byByZXNwZWN0aXZlIHJlcG9zaXRvcmllcy4KKwor
VGhlIG9iamVjdGl2ZXMgb2YgdGhlIGBgcHl0ZXN0LWRldmBgIG9yZ2FuaXNhdGlvbiBhcmU6CisK
KyogSGF2aW5nIGEgY2VudHJhbCBsb2NhdGlvbiBmb3IgcG9wdWxhciBweXRlc3QgcGx1Z2lucwor
KiBTaGFyaW5nIHNvbWUgb2YgdGhlIG1haW50ZW5hbmNlIHJlc3BvbnNpYmlsaXR5IChpbiBjYXNl
IGEgbWFpbnRhaW5lciBubworICBsb25nZXIgd2lzaGVzIHRvIG1haW50YWluIGEgcGx1Z2luKQor
CitZb3UgY2FuIHN1Ym1pdCB5b3VyIHBsdWdpbiBieSBzdWJzY3JpYmluZyB0byB0aGUgYHB5dGVz
dC1kZXYgbWFpbCBsaXN0Cis8aHR0cHM6Ly9tYWlsLnB5dGhvbi5vcmcvbWFpbG1hbi9saXN0aW5m
by9weXRlc3QtZGV2PmBfIGFuZCB3cml0aW5nIGEKK21haWwgcG9pbnRpbmcgdG8geW91ciBleGlz
dGluZyBweXRlc3QgcGx1Z2luIHJlcG9zaXRvcnkgd2hpY2ggbXVzdCBoYXZlCit0aGUgZm9sbG93
aW5nOgorCistIFB5UEkgcHJlc2VuY2Ugd2l0aCBhIGBgc2V0dXAucHlgYCB0aGF0IGNvbnRhaW5z
IGEgbGljZW5zZSwgYGBweXRlc3QtYGAKKyAgcHJlZml4ZWQgbmFtZSwgdmVyc2lvbiBudW1iZXIs
IGF1dGhvcnMsIHNob3J0IGFuZCBsb25nIGRlc2NyaXB0aW9uLgorCistIGEgYGB0b3guaW5pYGAg
Zm9yIHJ1bm5pbmcgdGVzdHMgdXNpbmcgYHRveCA8aHR0cHM6Ly90b3gucmVhZHRoZWRvY3MuaW8+
YF8uCisKKy0gYSBgYFJFQURNRS50eHRgYCBkZXNjcmliaW5nIGhvdyB0byB1c2UgdGhlIHBsdWdp
biBhbmQgb24gd2hpY2gKKyAgcGxhdGZvcm1zIGl0IHJ1bnMuCisKKy0gYSBgYExJQ0VOU0UudHh0
YGAgZmlsZSBvciBlcXVpdmFsZW50IGNvbnRhaW5pbmcgdGhlIGxpY2Vuc2luZworICBpbmZvcm1h
dGlvbiwgd2l0aCBtYXRjaGluZyBpbmZvIGluIGBgc2V0dXAucHlgYC4KKworLSBhbiBpc3N1ZSB0
cmFja2VyIGZvciBidWcgcmVwb3J0cyBhbmQgZW5oYW5jZW1lbnQgcmVxdWVzdHMuCisKKy0gYSBg
Y2hhbmdlbG9nIDxodHRwOi8va2VlcGFjaGFuZ2Vsb2cuY29tLz5gXworCitJZiBubyBjb250cmli
dXRvciBzdHJvbmdseSBvYmplY3RzIGFuZCB0d28gYWdyZWUsIHRoZSByZXBvc2l0b3J5IGNhbiB0
aGVuIGJlCit0cmFuc2ZlcnJlZCB0byB0aGUgYGBweXRlc3QtZGV2YGAgb3JnYW5pc2F0aW9uLgor
CitIZXJlJ3MgYSBydW5kb3duIG9mIGhvdyBhIHJlcG9zaXRvcnkgdHJhbnNmZXIgdXN1YWxseSBw
cm9jZWVkcworKHVzaW5nIGEgcmVwb3NpdG9yeSBuYW1lZCBgYGpvZWRvZS9weXRlc3QteHl6YGAg
YXMgZXhhbXBsZSk6CisKKyogYGBqb2Vkb2VgYCB0cmFuc2ZlcnMgcmVwb3NpdG9yeSBvd25lcnNo
aXAgdG8gYGBweXRlc3QtZGV2YGAgYWRtaW5pc3RyYXRvciBgYGNhbHZpbmBgLgorKiBgYGNhbHZp
bmBgIGNyZWF0ZXMgYGBweXRlc3QteHl6LWFkbWluYGAgYW5kIGBgcHl0ZXN0LXh5ei1kZXZlbG9w
ZXJzYGAgdGVhbXMsIGludml0aW5nIGBgam9lZG9lYGAgdG8gYm90aCBhcyAqKm1haW50YWluZXIq
Ki4KKyogYGBjYWx2aW5gYCB0cmFuc2ZlcnMgcmVwb3NpdG9yeSB0byBgYHB5dGVzdC1kZXZgYCBh
bmQgY29uZmlndXJlcyB0ZWFtIGFjY2VzczoKKyAgCisgIC0gYGBweXRlc3QteHl6LWFkbWluYGAg
KiphZG1pbioqIGFjY2VzczsKKyAgLSBgYHB5dGVzdC14eXotZGV2ZWxvcGVyc2BgICoqd3JpdGUq
KiBhY2Nlc3M7CisKK1RoZSBgYHB5dGVzdC1kZXYvQ29udHJpYnV0b3JzYGAgdGVhbSBoYXMgd3Jp
dGUgYWNjZXNzIHRvIGFsbCBwcm9qZWN0cywgYW5kCitldmVyeSBwcm9qZWN0IGFkbWluaXN0cmF0
b3IgaXMgaW4gaXQuIFdlIHJlY29tbWVuZCB0aGF0IGVhY2ggcGx1Z2luIGhhcyBhdCBsZWFzdCB0
aHJlZQorcGVvcGxlIHdobyBoYXZlIHRoZSByaWdodCB0byByZWxlYXNlIHRvIFB5UEkuCisKK1Jl
cG9zaXRvcnkgb3duZXJzIGNhbiByZXN0IGFzc3VyZWQgdGhhdCBubyBgYHB5dGVzdC1kZXZgYCBh
ZG1pbmlzdHJhdG9yIHdpbGwgZXZlciBtYWtlCityZWxlYXNlcyBvZiB5b3VyIHJlcG9zaXRvcnkg
b3IgdGFrZSBvd25lcnNoaXAgaW4gYW55IHdheSwgZXhjZXB0IGluIHJhcmUgY2FzZXMKK3doZXJl
IHNvbWVvbmUgYmVjb21lcyB1bnJlc3BvbnNpdmUgYWZ0ZXIgbW9udGhzIG9mIGNvbnRhY3QgYXR0
ZW1wdHMuCitBcyBzdGF0ZWQsIHRoZSBvYmplY3RpdmUgaXMgdG8gc2hhcmUgbWFpbnRlbmFuY2Ug
YW5kIGF2b2lkICJwbHVnaW4tYWJhbmRvbiIuCisKKworLi4gX2BwdWxsIHJlcXVlc3RzYDoKKy4u
IF9wdWxsLXJlcXVlc3RzOgorCitQcmVwYXJpbmcgUHVsbCBSZXF1ZXN0cworLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworU2hvcnQgdmVyc2lvbgorfn5+fn5+fn5+fn5+fgorCisjLiBGb3JrIHRo
ZSByZXBvc2l0b3J5OworIy4gVGFyZ2V0IGBgbWFzdGVyYGAgZm9yIGJ1Z2ZpeGVzIGFuZCBkb2Mg
Y2hhbmdlczsKKyMuIFRhcmdldCBgYGZlYXR1cmVzYGAgZm9yIG5ldyBmZWF0dXJlcyBvciBmdW5j
dGlvbmFsaXR5IGNoYW5nZXMuCisjLiBGb2xsb3cgKipQRVAtOCoqLiBUaGVyZSdzIGEgYGB0b3hg
YCBjb21tYW5kIHRvIGhlbHAgZml4aW5nIGl0OiBgYHRveCAtZSBmaXgtbGludGBgLgorIy4gVGVz
dHMgYXJlIHJ1biB1c2luZyBgYHRveGBgOjoKKworICAgIHRveCAtZSBsaW50aW5nLHB5MjcscHkz
NgorCisgICBUaGUgdGVzdCBlbnZpcm9ubWVudHMgYWJvdmUgYXJlIHVzdWFsbHkgZW5vdWdoIHRv
IGNvdmVyIG1vc3QgY2FzZXMgbG9jYWxseS4KKworIy4gV3JpdGUgYSBgYGNoYW5nZWxvZ2BgIGVu
dHJ5OiBgYGNoYW5nZWxvZy8yNTc0LmJ1Z2ZpeGBgLCB1c2UgaXNzdWUgaWQgbnVtYmVyCisgICBh
bmQgb25lIG9mIGBgYnVnZml4YGAsIGBgcmVtb3ZhbGBgLCBgYGZlYXR1cmVgYCwgYGB2ZW5kb3Jg
YCwgYGBkb2NgYCBvcgorICAgYGB0cml2aWFsYGAgZm9yIHRoZSBpc3N1ZSB0eXBlLgorIy4gVW5s
ZXNzIHlvdXIgY2hhbmdlIGlzIGEgdHJpdmlhbCBvciBhIGRvY3VtZW50YXRpb24gZml4IChlLmcu
LCBhIHR5cG8gb3IgcmV3b3JkIG9mIGEgc21hbGwgc2VjdGlvbikgcGxlYXNlCisgICBhZGQgeW91
cnNlbGYgdG8gdGhlIGBgQVVUSE9SU2BgIGZpbGUsIGluIGFscGhhYmV0aWNhbCBvcmRlcjsKKwor
CitMb25nIHZlcnNpb24KK35+fn5+fn5+fn5+fgorCitXaGF0IGlzIGEgInB1bGwgcmVxdWVzdCI/
ICBJdCBpbmZvcm1zIHRoZSBwcm9qZWN0J3MgY29yZSBkZXZlbG9wZXJzIGFib3V0IHRoZQorY2hh
bmdlcyB5b3Ugd2FudCB0byByZXZpZXcgYW5kIG1lcmdlLiAgUHVsbCByZXF1ZXN0cyBhcmUgc3Rv
cmVkIG9uCitgR2l0SHViIHNlcnZlcnMgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5
dGVzdC9wdWxscz5gXy4KK09uY2UgeW91IHNlbmQgYSBwdWxsIHJlcXVlc3QsIHdlIGNhbiBkaXNj
dXNzIGl0cyBwb3RlbnRpYWwgbW9kaWZpY2F0aW9ucyBhbmQKK2V2ZW4gYWRkIG1vcmUgY29tbWl0
cyB0byBpdCBsYXRlciBvbi4gVGhlcmUncyBhbiBleGNlbGxlbnQgdHV0b3JpYWwgb24gaG93IFB1
bGwKK1JlcXVlc3RzIHdvcmsgaW4gdGhlCitgR2l0SHViIEhlbHAgQ2VudGVyIDxodHRwczovL2hl
bHAuZ2l0aHViLmNvbS9hcnRpY2xlcy91c2luZy1wdWxsLXJlcXVlc3RzLz5gXy4KKworSGVyZSBp
cyBhIHNpbXBsZSBvdmVydmlldywgd2l0aCBweXRlc3Qtc3BlY2lmaWMgYml0czoKKworIy4gRm9y
ayB0aGUKKyAgIGBweXRlc3QgR2l0SHViIHJlcG9zaXRvcnkgPGh0dHBzOi8vZ2l0aHViLmNvbS9w
eXRlc3QtZGV2L3B5dGVzdD5gX18uICBJdCdzCisgICBmaW5lIHRvIHVzZSBgYHB5dGVzdGBgIGFz
IHlvdXIgZm9yayByZXBvc2l0b3J5IG5hbWUgYmVjYXVzZSBpdCB3aWxsIGxpdmUKKyAgIHVuZGVy
IHlvdXIgdXNlci4KKworIy4gQ2xvbmUgeW91ciBmb3JrIGxvY2FsbHkgdXNpbmcgYGdpdCA8aHR0
cHM6Ly9naXQtc2NtLmNvbS8+YF8gYW5kIGNyZWF0ZSBhIGJyYW5jaDo6CisKKyAgICAkIGdpdCBj
bG9uZSBnaXRAZ2l0aHViLmNvbTpZT1VSX0dJVEhVQl9VU0VSTkFNRS9weXRlc3QuZ2l0CisgICAg
JCBjZCBweXRlc3QKKyAgICAjIG5vdywgdG8gZml4IGEgYnVnIGNyZWF0ZSB5b3VyIG93biBicmFu
Y2ggb2ZmICJtYXN0ZXIiOgorICAgIAorICAgICAgICAkIGdpdCBjaGVja291dCAtYiB5b3VyLWJ1
Z2ZpeC1icmFuY2gtbmFtZSBtYXN0ZXIKKworICAgICMgb3IgdG8gaW5zdGVhZCBhZGQgYSBmZWF0
dXJlIGNyZWF0ZSB5b3VyIG93biBicmFuY2ggb2ZmICJmZWF0dXJlcyI6CisgICAgCisgICAgICAg
ICQgZ2l0IGNoZWNrb3V0IC1iIHlvdXItZmVhdHVyZS1icmFuY2gtbmFtZSBmZWF0dXJlcworCisg
ICBHaXZlbiB3ZSBoYXZlICJtYWpvci5taW5vci5taWNybyIgdmVyc2lvbiBudW1iZXJzLCBidWdm
aXhlcyB3aWxsIHVzdWFsbHkgCisgICBiZSByZWxlYXNlZCBpbiBtaWNybyByZWxlYXNlcyB3aGVy
ZWFzIGZlYXR1cmVzIHdpbGwgYmUgcmVsZWFzZWQgaW4gCisgICBtaW5vciByZWxlYXNlcyBhbmQg
aW5jb21wYXRpYmxlIGNoYW5nZXMgaW4gbWFqb3IgcmVsZWFzZXMuCisKKyAgIElmIHlvdSBuZWVk
IHNvbWUgaGVscCB3aXRoIEdpdCwgZm9sbG93IHRoaXMgcXVpY2sgc3RhcnQKKyAgIGd1aWRlOiBo
dHRwczovL2dpdC53aWtpLmtlcm5lbC5vcmcvaW5kZXgucGhwL1F1aWNrU3RhcnQKKworIy4gSW5z
dGFsbCB0b3gKKworICAgVG94IGlzIHVzZWQgdG8gcnVuIGFsbCB0aGUgdGVzdHMgYW5kIHdpbGwg
YXV0b21hdGljYWxseSBzZXR1cCB2aXJ0dWFsZW52cworICAgdG8gcnVuIHRoZSB0ZXN0cyBpbi4K
KyAgICh3aWxsIGltcGxpY2l0bHkgdXNlIGh0dHA6Ly93d3cudmlydHVhbGVudi5vcmcvZW4vbGF0
ZXN0Lyk6OgorCisgICAgJCBwaXAgaW5zdGFsbCB0b3gKKworIy4gUnVuIGFsbCB0aGUgdGVzdHMK
KworICAgWW91IG5lZWQgdG8gaGF2ZSBQeXRob24gMi43IGFuZCAzLjYgYXZhaWxhYmxlIGluIHlv
dXIgc3lzdGVtLiAgTm93CisgICBydW5uaW5nIHRlc3RzIGlzIGFzIHNpbXBsZSBhcyBpc3N1aW5n
IHRoaXMgY29tbWFuZDo6CisKKyAgICAkIHRveCAtZSBsaW50aW5nLHB5MjcscHkzNgorCisgICBU
aGlzIGNvbW1hbmQgd2lsbCBydW4gdGVzdHMgdmlhIHRoZSAidG94IiB0b29sIGFnYWluc3QgUHl0
aG9uIDIuNyBhbmQgMy42CisgICBhbmQgYWxzbyBwZXJmb3JtICJsaW50IiBjb2Rpbmctc3R5bGUg
Y2hlY2tzLgorCisjLiBZb3UgY2FuIG5vdyBlZGl0IHlvdXIgbG9jYWwgd29ya2luZyBjb3B5LiBQ
bGVhc2UgZm9sbG93IFBFUC04LgorCisgICBZb3UgY2FuIG5vdyBtYWtlIHRoZSBjaGFuZ2VzIHlv
dSB3YW50IGFuZCBydW4gdGhlIHRlc3RzIGFnYWluIGFzIG5lY2Vzc2FyeS4KKworICAgSWYgeW91
IGhhdmUgdG9vIG11Y2ggbGludGluZyBlcnJvcnMsIHRyeSBydW5uaW5nOjoKKworICAgICQgdG94
IC1lIGZpeC1saW50CisKKyAgIFRvIGZpeCBwZXA4IHJlbGF0ZWQgZXJyb3JzLgorCisgICBZb3Ug
Y2FuIHBhc3MgZGlmZmVyZW50IG9wdGlvbnMgdG8gYGB0b3hgYC4gRm9yIGV4YW1wbGUsIHRvIHJ1
biB0ZXN0cyBvbiBQeXRob24gMi43IGFuZCBwYXNzIG9wdGlvbnMgdG8gcHl0ZXN0CisgICAoZS5n
LiBlbnRlciBwZGIgb24gZmFpbHVyZSkgdG8gcHl0ZXN0IHlvdSBjYW4gZG86OgorCisgICAgJCB0
b3ggLWUgcHkyNyAtLSAtLXBkYgorCisgICBPciB0byBvbmx5IHJ1biB0ZXN0cyBpbiBhIHBhcnRp
Y3VsYXIgdGVzdCBtb2R1bGUgb24gUHl0aG9uIDMuNjo6CisKKyAgICAkIHRveCAtZSBweTM2IC0t
IHRlc3RpbmcvdGVzdF9jb25maWcucHkKKworIy4gQ29tbWl0IGFuZCBwdXNoIG9uY2UgeW91ciB0
ZXN0cyBwYXNzIGFuZCB5b3UgYXJlIGhhcHB5IHdpdGggeW91ciBjaGFuZ2Uocyk6OgorCisgICAg
JCBnaXQgY29tbWl0IC1hIC1tICI8Y29tbWl0IG1lc3NhZ2U+IgorICAgICQgZ2l0IHB1c2ggLXUK
KworIy4gQ3JlYXRlIGEgbmV3IGNoYW5nZWxvZyBlbnRyeSBpbiBgYGNoYW5nZWxvZ2BgLiBUaGUg
ZmlsZSBzaG91bGQgYmUgbmFtZWQgYGA8aXNzdWVpZD4uPHR5cGU+YGAsCisgICB3aGVyZSAqaXNz
dWVpZCogaXMgdGhlIG51bWJlciBvZiB0aGUgaXNzdWUgcmVsYXRlZCB0byB0aGUgY2hhbmdlIGFu
ZCAqdHlwZSogaXMgb25lIG9mCisgICBgYGJ1Z2ZpeGBgLCBgYHJlbW92YWxgYCwgYGBmZWF0dXJl
YGAsIGBgdmVuZG9yYGAsIGBgZG9jYGAgb3IgYGB0cml2aWFsYGAuCisKKyMuIEFkZCB5b3Vyc2Vs
ZiB0byBgYEFVVEhPUlNgYCBmaWxlIGlmIG5vdCB0aGVyZSB5ZXQsIGluIGFscGhhYmV0aWNhbCBv
cmRlci4KKworIy4gRmluYWxseSwgc3VibWl0IGEgcHVsbCByZXF1ZXN0IHRocm91Z2ggdGhlIEdp
dEh1YiB3ZWJzaXRlIHVzaW5nIHRoaXMgZGF0YTo6CisKKyAgICBoZWFkLWZvcms6IFlPVVJfR0lU
SFVCX1VTRVJOQU1FL3B5dGVzdAorICAgIGNvbXBhcmU6IHlvdXItYnJhbmNoLW5hbWUKKworICAg
IGJhc2UtZm9yazogcHl0ZXN0LWRldi9weXRlc3QKKyAgICBiYXNlOiBtYXN0ZXIgICAgICAgICAg
IyBpZiBpdCdzIGEgYnVnZml4CisgICAgYmFzZTogZmVhdHVyZXMgICAgICAgICMgaWYgaXQncyBh
IGZlYXR1cmUKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9IT1dUT1JFTEVBU0UucnN0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvSE9XVE9SRUxFQVNFLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OGEzNDYxZDRiYzkyMDYz
Yjk5ZGQ0ZjM2ZTM1YWZiODliZTdmZTEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
SE9XVE9SRUxFQVNFLnJzdApAQCAtMCwwICsxLDY1IEBACitSZWxlYXNlIFByb2NlZHVyZQorLS0t
LS0tLS0tLS0tLS0tLS0KKworT3VyIGN1cnJlbnQgcG9saWN5IGZvciByZWxlYXNpbmcgaXMgdG8g
YWltIGZvciBhIGJ1Z2ZpeCBldmVyeSBmZXcgd2Vla3MgYW5kIGEgbWlub3IgcmVsZWFzZSBldmVy
eSAyLTMgbW9udGhzLiBUaGUgaWRlYQoraXMgdG8gZ2V0IGZpeGVzIGFuZCBuZXcgZmVhdHVyZXMg
b3V0IGluc3RlYWQgb2YgdHJ5aW5nIHRvIGNyYW0gYSB0b24gb2YgZmVhdHVyZXMgaW50byBhIHJl
bGVhc2UgYW5kIGJ5IGNvbnNlcXVlbmNlCit0YWtpbmcgYSBsb3Qgb2YgdGltZSB0byBtYWtlIGEg
bmV3IG9uZS4KKworLi4gaW1wb3J0YW50OjoKKworICAgIHB5dGVzdCByZWxlYXNlcyBtdXN0IGJl
IHByZXBhcmVkIG9uICoqTGludXgqKiBiZWNhdXNlIHRoZSBkb2NzIGFuZCBleGFtcGxlcyBleHBl
Y3QKKyAgICB0byBiZSBleGVjdXRlZCBpbiB0aGF0IHBsYXRmb3JtLgorCisjLiBJbnN0YWxsIGRl
dmVsb3BtZW50IGRlcGVuZGVuY2llcyBpbiBhIHZpcnR1YWwgZW52aXJvbm1lbnQgd2l0aDo6CisK
KyAgICBwaXAzIGluc3RhbGwgLXIgdGFza3MvcmVxdWlyZW1lbnRzLnR4dAorCisjLiBDcmVhdGUg
YSBicmFuY2ggYGByZWxlYXNlLVguWS5aYGAgd2l0aCB0aGUgdmVyc2lvbiBmb3IgdGhlIHJlbGVh
c2UuCisKKyAgICogKipwYXRjaCByZWxlYXNlcyoqOiBmcm9tIHRoZSBsYXRlc3QgYGBtYXN0ZXJg
YDsKKworICAgKiAqKm1pbm9yIHJlbGVhc2VzKio6IGZyb20gdGhlIGxhdGVzdCBgYGZlYXR1cmVz
YGA7IHRoZW4gbWVyZ2Ugd2l0aCB0aGUgbGF0ZXN0IGBgbWFzdGVyYGA7CisKKyAgIEVuc3VyZSB5
b3VyIGFyZSBpbiBhIGNsZWFuIHdvcmsgdHJlZS4KKworIy4gR2VuZXJhdGUgZG9jcywgY2hhbmdl
bG9nLCBhbm5vdW5jZW1lbnRzIGFuZCB1cGxvYWQgYSBwYWNrYWdlIHRvCisgICB5b3VyIGBgZGV2
cGlgYCBzdGFnaW5nIHNlcnZlcjo6CisKKyAgICAgaW52b2tlIGdlbmVyYXRlLnByZS1yZWxlYXNl
IDxWRVJTSU9OPiA8REVWUEkgVVNFUj4gLS1wYXNzd29yZCA8REVWUEkgUEFTU1dPUkQ+CisKKyAg
IElmIGBgLS1wYXNzd29yZGBgIGlzIG5vdCBnaXZlbiwgaXQgaXMgYXNzdW1lZCB0aGUgdXNlciBp
cyBhbHJlYWR5IGxvZ2dlZCBpbiBgYGRldnBpYGAuCisgICBJZiB5b3UgZG9uJ3QgaGF2ZSBhbiBh
Y2NvdW50LCBwbGVhc2UgYXNrIGZvciBvbmUuCisKKyMuIE9wZW4gYSBQUiBmb3IgdGhpcyBicmFu
Y2ggdGFyZ2V0aW5nIGBgbWFzdGVyYGAuCisKKyMuIFRlc3QgdGhlIHBhY2thZ2UKKworICAgKiAq
Kk1hbnVhbCBtZXRob2QqKgorCisgICAgIFJ1biBmcm9tIG11bHRpcGxlIG1hY2hpbmVzOjoKKwor
ICAgICAgIGRldnBpIHVzZSBodHRwczovL2RldnBpLm5ldC9VU0VSL2RldgorICAgICAgIGRldnBp
IHRlc3QgcHl0ZXN0PT1WRVJTSU9OCisKKyAgICAgQ2hlY2sgdGhhdCB0ZXN0cyBwYXNzIGZvciBy
ZWxldmFudCBjb21iaW5hdGlvbnMgd2l0aDo6CisKKyAgICAgICBkZXZwaSBsaXN0IHB5dGVzdAor
CisgICAqICoqQ0kgc2VydmVycyoqCisKKyAgICAgQ29uZmlndXJlIGEgcmVwb3NpdG9yeSBhcyBw
ZXItaW5zdHJ1Y3Rpb25zIG9uCisgICAgIGRldnBpLWNsb3VkLXRlc3RfIHRvIHRlc3QgdGhlIHBh
Y2thZ2Ugb24gVHJhdmlzXyBhbmQgQXBwVmV5b3JfLgorICAgICBBbGwgdGVzdCBlbnZpcm9ubWVu
dHMgc2hvdWxkIHBhc3MuCisKKyMuIFB1Ymxpc2ggdG8gUHlQSTo6CisKKyAgICAgIGludm9rZSBn
ZW5lcmF0ZS5wdWJsaXNoLXJlbGVhc2UgPFZFUlNJT04+IDxERVZQSSBVU0VSPiA8UFlQSV9OQU1F
PgorCisgICB3aGVyZSBQWVBJX05BTUUgaXMgdGhlIG5hbWUgb2YgcHlwaS5weXRob24ub3JnIGFz
IGNvbmZpZ3VyZWQgaW4geW91ciBgYH4vLnB5cGlyY2BgCisgICBmaWxlIGBmb3IgZGV2cGkgPGh0
dHA6Ly9kb2MuZGV2cGkubmV0L2xhdGVzdC9xdWlja3N0YXJ0LXJlbGVhc2Vwcm9jZXNzLmh0bWw/
aGlnaGxpZ2h0PXB5cGlyYyNkZXZwaS1wdXNoLXJlbGVhc2luZy10by1hbi1leHRlcm5hbC1pbmRl
eD5gXy4KKworIy4gQWZ0ZXIgYSBtaW5vci9tYWpvciByZWxlYXNlLCBtZXJnZSBgYHJlbGVhc2Ut
WC5ZLlpgYCBpbnRvIGBgbWFzdGVyYGAgYW5kIHB1c2ggKG9yIG9wZW4gYSBQUikuCisKKy4uIF9k
ZXZwaS1jbG91ZC10ZXN0OiBodHRwczovL2dpdGh1Yi5jb20vb2Jlc3R3YWx0ZXIvZGV2cGktY2xv
dWQtdGVzdAorLi4gX0FwcFZleW9yOiBodHRwczovL3d3dy5hcHB2ZXlvci5jb20vCisuLiBfVHJh
dmlzOiBodHRwczovL3RyYXZpcy1jaS5vcmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L0xJQ0VO
U0UgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9MSUNFTlNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyOWRmNDVhYzQwNTUzMmMxMDdl
YjIzMzIxN2JjMmFjMWFkNzBjODgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9MSUNF
TlNFCkBAIC0wLDAgKzEsMjEgQEAKK1RoZSBNSVQgTGljZW5zZSAoTUlUKQorCitDb3B5cmlnaHQg
KGMpIDIwMDQtMjAxNyBIb2xnZXIgS3Jla2VsIGFuZCBvdGhlcnMKKworUGVybWlzc2lvbiBpcyBo
ZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEg
Y29weSBvZgordGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVz
ICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4KK3RoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3Ry
aWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8KK3VzZSwg
Y29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5k
L29yIHNlbGwgY29waWVzCitvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0
byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8KK3NvLCBzdWJqZWN0IHRvIHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k
IHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsCitjb3BpZXMg
b3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorCitUSEUgU09GVFdBUkUg
SVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVT
UyBPUgorSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFksCitGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
TkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKK0FVVEhPUlMgT1IgQ09Q
WVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIK
K0xJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RI
RVJXSVNFLCBBUklTSU5HIEZST00sCitPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBT
T0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQorU09GVFdBUkUuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9SRUFETUUucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvUkVBRE1FLnJz
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zNjMwZGQ0YzYyYWEyMjgyMjU3MDNkZDQ1ODk5NTg0NzhjZTI4NzM2Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvUkVBRE1FLnJzdApAQCAtMCwwICsxLDEwOSBA
QAorLi4gaW1hZ2U6OiBodHRwOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9fc3RhdGljL3B5
dGVzdDEucG5nCisgICA6dGFyZ2V0OiBodHRwOi8vZG9jcy5weXRlc3Qub3JnCisgICA6YWxpZ246
IGNlbnRlcgorICAgOmFsdDogcHl0ZXN0CisKKy0tLS0tLQorCisuLiBpbWFnZTo6IGh0dHBzOi8v
aW1nLnNoaWVsZHMuaW8vcHlwaS92L3B5dGVzdC5zdmcKKyAgICA6dGFyZ2V0OiBodHRwczovL3B5
cGkucHl0aG9uLm9yZy9weXBpL3B5dGVzdAorCisuLiBpbWFnZTo6IGh0dHBzOi8vYW5hY29uZGEu
b3JnL2NvbmRhLWZvcmdlL3B5dGVzdC9iYWRnZXMvdmVyc2lvbi5zdmcKKyAgICA6dGFyZ2V0OiBo
dHRwczovL2FuYWNvbmRhLm9yZy9jb25kYS1mb3JnZS9weXRlc3QKKworLi4gaW1hZ2U6OiBodHRw
czovL2ltZy5zaGllbGRzLmlvL3B5cGkvcHl2ZXJzaW9ucy9weXRlc3Quc3ZnCisgICAgOnRhcmdl
dDogaHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9weXRlc3QKKworLi4gaW1hZ2U6OiBodHRw
czovL2ltZy5zaGllbGRzLmlvL2NvdmVyYWxscy9weXRlc3QtZGV2L3B5dGVzdC9tYXN0ZXIuc3Zn
CisgICAgOnRhcmdldDogaHR0cHM6Ly9jb3ZlcmFsbHMuaW8vci9weXRlc3QtZGV2L3B5dGVzdAor
CisuLiBpbWFnZTo6IGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9weXRlc3QtZGV2L3B5dGVzdC5zdmc/
YnJhbmNoPW1hc3RlcgorICAgIDp0YXJnZXQ6IGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9weXRlc3Qt
ZGV2L3B5dGVzdAorCisuLiBpbWFnZTo6IGh0dHBzOi8vY2kuYXBwdmV5b3IuY29tL2FwaS9wcm9q
ZWN0cy9zdGF0dXMvbXJnYmphdWE3dDMzcGc2Yj9zdmc9dHJ1ZQorICAgIDp0YXJnZXQ6IGh0dHBz
Oi8vY2kuYXBwdmV5b3IuY29tL3Byb2plY3QvcHl0ZXN0Ym90L3B5dGVzdAorCitUaGUgYGBweXRl
c3RgYCBmcmFtZXdvcmsgbWFrZXMgaXQgZWFzeSB0byB3cml0ZSBzbWFsbCB0ZXN0cywgeWV0Citz
Y2FsZXMgdG8gc3VwcG9ydCBjb21wbGV4IGZ1bmN0aW9uYWwgdGVzdGluZyBmb3IgYXBwbGljYXRp
b25zIGFuZCBsaWJyYXJpZXMuCisKK0FuIGV4YW1wbGUgb2YgYSBzaW1wbGUgdGVzdDoKKworLi4g
Y29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgIyBjb250ZW50IG9mIHRlc3Rfc2FtcGxlLnB5Cisg
ICAgZGVmIGluYyh4KToKKyAgICAgICAgcmV0dXJuIHggKyAxCisKKyAgICBkZWYgdGVzdF9hbnN3
ZXIoKToKKyAgICAgICAgYXNzZXJ0IGluYygzKSA9PSA1CisKKworVG8gZXhlY3V0ZSBpdDo6CisK
KyAgICAkIHB5dGVzdAorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vz
c2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBjb2xsZWN0ZWQg
MSBpdGVtcworCisgICAgdGVzdF9zYW1wbGUucHkgRgorCisgICAgPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyB0ZXN0X2Fuc3dlciBf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KKworICAgICAgICBkZWYgdGVzdF9hbnN3
ZXIoKToKKyAgICA+ICAgICAgIGFzc2VydCBpbmMoMykgPT0gNQorICAgIEUgICAgICAgYXNzZXJ0
IDQgPT0gNQorICAgIEUgICAgICAgICsgIHdoZXJlIDQgPSBpbmMoMykKKworICAgIHRlc3Rfc2Ft
cGxlLnB5OjU6IEFzc2VydGlvbkVycm9yCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT0g
MSBmYWlsZWQgaW4gMC4wNCBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisK
K0R1ZSB0byBgYHB5dGVzdGBgJ3MgZGV0YWlsZWQgYXNzZXJ0aW9uIGludHJvc3BlY3Rpb24sIG9u
bHkgcGxhaW4gYGBhc3NlcnRgYCBzdGF0ZW1lbnRzIGFyZSB1c2VkLiBTZWUgYGdldHRpbmctc3Rh
cnRlZCA8aHR0cDovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvZ2V0dGluZy1zdGFydGVkLmh0
bWwjb3VyLWZpcnN0LXRlc3QtcnVuPmBfIGZvciBtb3JlIGV4YW1wbGVzLgorCisKK0ZlYXR1cmVz
CistLS0tLS0tLQorCistIERldGFpbGVkIGluZm8gb24gZmFpbGluZyBgYXNzZXJ0IHN0YXRlbWVu
dHMgPGh0dHA6Ly9kb2NzLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2Fzc2VydC5odG1sPmBfIChubyBu
ZWVkIHRvIHJlbWVtYmVyIGBgc2VsZi5hc3NlcnQqYGAgbmFtZXMpOworCistIGBBdXRvLWRpc2Nv
dmVyeQorICA8aHR0cDovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvZ29vZHByYWN0aWNlcy5o
dG1sI3B5dGhvbi10ZXN0LWRpc2NvdmVyeT5gXworICBvZiB0ZXN0IG1vZHVsZXMgYW5kIGZ1bmN0
aW9uczsKKworLSBgTW9kdWxhciBmaXh0dXJlcyA8aHR0cDovL2RvY3MucHl0ZXN0Lm9yZy9lbi9s
YXRlc3QvZml4dHVyZS5odG1sPmBfIGZvcgorICBtYW5hZ2luZyBzbWFsbCBvciBwYXJhbWV0cml6
ZWQgbG9uZy1saXZlZCB0ZXN0IHJlc291cmNlczsKKworLSBDYW4gcnVuIGB1bml0dGVzdCA8aHR0
cDovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvdW5pdHRlc3QuaHRtbD5gXyAob3IgdHJpYWwp
LAorICBgbm9zZSA8aHR0cDovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3Qvbm9zZS5odG1sPmBf
IHRlc3Qgc3VpdGVzIG91dCBvZiB0aGUgYm94OworCistIFB5dGhvbiAyLjcsIFB5dGhvbiAzLjQr
LCBQeVB5IDIuMywgSnl0aG9uIDIuNSAodW50ZXN0ZWQpOworCistIFJpY2ggcGx1Z2luIGFyY2hp
dGVjdHVyZSwgd2l0aCBvdmVyIDMxNSsgYGV4dGVybmFsIHBsdWdpbnMgPGh0dHA6Ly9wbHVnaW5j
b21wYXQuaGVyb2t1YXBwLmNvbT5gXyBhbmQgdGhyaXZpbmcgY29tbXVuaXR5OworCisKK0RvY3Vt
ZW50YXRpb24KKy0tLS0tLS0tLS0tLS0KKworRm9yIGZ1bGwgZG9jdW1lbnRhdGlvbiwgaW5jbHVk
aW5nIGluc3RhbGxhdGlvbiwgdHV0b3JpYWxzIGFuZCBQREYgZG9jdW1lbnRzLCBwbGVhc2Ugc2Vl
IGh0dHA6Ly9kb2NzLnB5dGVzdC5vcmcuCisKKworQnVncy9SZXF1ZXN0cworLS0tLS0tLS0tLS0t
LQorCitQbGVhc2UgdXNlIHRoZSBgR2l0SHViIGlzc3VlIHRyYWNrZXIgPGh0dHBzOi8vZ2l0aHVi
LmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXM+YF8gdG8gc3VibWl0IGJ1Z3Mgb3IgcmVxdWVz
dCBmZWF0dXJlcy4KKworCitDaGFuZ2Vsb2cKKy0tLS0tLS0tLQorCitDb25zdWx0IHRoZSBgQ2hh
bmdlbG9nIDxodHRwOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbD5g
X18gcGFnZSBmb3IgZml4ZXMgYW5kIGVuaGFuY2VtZW50cyBvZiBlYWNoIHZlcnNpb24uCisKKwor
TGljZW5zZQorLS0tLS0tLQorCitDb3B5cmlnaHQgSG9sZ2VyIEtyZWtlbCBhbmQgb3RoZXJzLCAy
MDA0LTIwMTcuCisKK0Rpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgYE1JVGBfIGxp
Y2Vuc2UsIHB5dGVzdCBpcyBmcmVlIGFuZCBvcGVuIHNvdXJjZSBzb2Z0d2FyZS4KKworLi4gX2BN
SVRgOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvYmxvYi9tYXN0ZXIvTElD
RU5TRQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fX2luaXRfXy5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L19weXRlc3QvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmU0MWYwNTA0ZTQ3MDY0Mjhm
OGJjMjQxZDVkMmQxMGVkYmEwMTM4YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19w
eXRlc3QvX19pbml0X18ucHkKQEAgLTAsMCArMSw4IEBACitfX2FsbF9fID0gWydfX3ZlcnNpb25f
XyddCisKK3RyeToKKyAgICBmcm9tIC5fdmVyc2lvbiBpbXBvcnQgdmVyc2lvbiBhcyBfX3ZlcnNp
b25fXworZXhjZXB0IEltcG9ydEVycm9yOgorICAgICMgYnJva2VuIGluc3RhbGxhdGlvbiwgd2Ug
ZG9uJ3QgZXZlbiB0cnkKKyAgICAjIHVua25vd24gb25seSB3b3JrcyBiZWNhdXNlIHdlIGRvIHBv
b3IgbWFucyB2ZXJzaW9uIGNvbXBhcmUKKyAgICBfX3ZlcnNpb25fXyA9ICd1bmtub3duJwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fYXJnY29tcGxldGUucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9fcHl0ZXN0L19hcmdjb21wbGV0ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNjI1YTc1ZjlmMWI3MDUwZDM4
ZjM2NWM0MTM1ZGQ0OGFhNzFiMWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5
dGVzdC9fYXJnY29tcGxldGUucHkKQEAgLTAsMCArMSwxMDMgQEAKKworIiIiYWxsb3cgYmFzaC1j
b21wbGV0aW9uIGZvciBhcmdwYXJzZSB3aXRoIGFyZ2NvbXBsZXRlIGlmIGluc3RhbGxlZAorbmVl
ZHMgYXJnY29tcGxldGU+PTAuNS42IGZvciBweXRob24gMy4yLzMuMyAob2xkZXIgdmVyc2lvbnMg
ZmFpbAordG8gZmluZCB0aGUgbWFnaWMgc3RyaW5nLCBzbyBfQVJHQ09NUExFVEUgZW52LiB2YXIg
aXMgbmV2ZXIgc2V0LCBhbmQKK3RoaXMgZG9lcyBub3QgbmVlZCBzcGVjaWFsIGNvZGUuCisKK0Z1
bmN0aW9uIHRyeV9hcmdjb21wbGV0ZShwYXJzZXIpIHNob3VsZCBiZSBjYWxsZWQgZGlyZWN0bHkg
YmVmb3JlCit0aGUgY2FsbCB0byBBcmd1bWVudFBhcnNlci5wYXJzZV9hcmdzKCkuCisKK1RoZSBm
aWxlc2NvbXBsZXRlciBpcyB3aGF0IHlvdSBub3JtYWxseSB3b3VsZCB1c2Ugb24gdGhlIHBvc2l0
aW9uYWwKK2FyZ3VtZW50cyBzcGVjaWZpY2F0aW9uLCBpbiBvcmRlciB0byBnZXQgImRpcm5hbWUv
IiBhZnRlciAiZGlybjxUQUI+IgoraW5zdGVhZCBvZiB0aGUgZGVmYXVsdCAiZGlybmFtZSAiOgor
CisgICBvcHRwYXJzZXIuYWRkX2FyZ3VtZW50KENvbmZpZy5fZmlsZV9vcl9kaXIsIG5hcmdzPScq
JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkuY29tcGxldGVyPWZpbGVzY29tcGxl
dGVyCisKK090aGVyLCBhcHBsaWNhdGlvbiBzcGVjaWZpYywgY29tcGxldGVycyBzaG91bGQgZ28g
aW4gdGhlIGZpbGUKK2RvaW5nIHRoZSBhZGRfYXJndW1lbnQgY2FsbHMgYXMgdGhleSBuZWVkIHRv
IGJlIHNwZWNpZmllZCBhcyAuY29tcGxldGVyCithdHRyaWJ1dGVzIGFzIHdlbGwuIChJZiBhcmdj
b21wbGV0ZSBpcyBub3QgaW5zdGFsbGVkLCB0aGUgZnVuY3Rpb24gdGhlCithdHRyaWJ1dGUgcG9p
bnRzIHRvIHdpbGwgbm90IGJlIHVzZWQpLgorCitTUEVFRFVQCis9PT09PT09CitUaGUgZ2VuZXJp
YyBhcmdjb21wbGV0ZSBzY3JpcHQgZm9yIGJhc2gtY29tcGxldGlvbgorKC9ldGMvYmFzaF9jb21w
bGV0aW9uLmQvcHl0aG9uLWFyZ2NvbXBsZXRlLnNoICkKK3VzZXMgYSBweXRob24gcHJvZ3JhbSB0
byBkZXRlcm1pbmUgc3RhcnR1cCBzY3JpcHQgZ2VuZXJhdGVkIGJ5IHBpcC4KK1lvdSBjYW4gc3Bl
ZWQgdXAgY29tcGxldGlvbiBzb21ld2hhdCBieSBjaGFuZ2luZyB0aGlzIHNjcmlwdCB0byBpbmNs
dWRlCisgICMgUFlUSE9OX0FSR0NPTVBMRVRFX09LCitzbyB0aGUgdGhlIHB5dGhvbi1hcmdjb21w
bGV0ZS1jaGVjay1lYXN5LWluc3RhbGwtc2NyaXB0IGRvZXMgbm90CituZWVkIHRvIGJlIGNhbGxl
ZCB0byBmaW5kIHRoZSBlbnRyeSBwb2ludCBvZiB0aGUgY29kZSBhbmQgc2VlIGlmIHRoYXQgaXMK
K21hcmtlZCAgd2l0aCBQWVRIT05fQVJHQ09NUExFVEVfT0sKKworSU5TVEFMTC9ERUJVR0dJTkcK
Kz09PT09PT09PT09PT09PT09CitUbyBpbmNsdWRlIHRoaXMgc3VwcG9ydCBpbiBhbm90aGVyIGFw
cGxpY2F0aW9uIHRoYXQgaGFzIHNldHVwLnB5IGdlbmVyYXRlZAorc2NyaXB0czoKKy0gYWRkIHRo
ZSBsaW5lOgorICAgICMgUFlUSE9OX0FSR0NPTVBMRVRFX09LCisgIG5lYXIgdGhlIHRvcCBvZiB0
aGUgbWFpbiBweXRob24gZW50cnkgcG9pbnQKKy0gaW5jbHVkZSBpbiB0aGUgZmlsZSBjYWxsaW5n
IHBhcnNlX2FyZ3MoKToKKyAgICBmcm9tIF9hcmdjb21wbGV0ZSBpbXBvcnQgdHJ5X2FyZ2NvbXBs
ZXRlLCBmaWxlc2NvbXBsZXRlcgorICAgLCBjYWxsIHRyeV9hcmdjb21wbGV0ZSBqdXN0IGJlZm9y
ZSBwYXJzZV9hcmdzKCksIGFuZCBvcHRpb25hbGx5IGFkZAorICAgZmlsZXNjb21wbGV0ZXIgdG8g
dGhlIHBvc2l0aW9uYWwgYXJndW1lbnRzJyBhZGRfYXJndW1lbnQoKQorSWYgdGhpbmdzIGRvIG5v
dCB3b3JrIHJpZ2h0IGF3YXk6CistIHN3aXRjaCBvbiBhcmdjb21wbGV0ZSBkZWJ1Z2dpbmcgd2l0
aCAoYWxzbyBoZWxwZnVsIHdoZW4gZG9pbmcgY3VzdG9tCisgIGNvbXBsZXRlcnMpOgorICAgIGV4
cG9ydCBfQVJDX0RFQlVHPTEKKy0gcnVuOgorICAgIHB5dGhvbi1hcmdjb21wbGV0ZS1jaGVjay1l
YXN5LWluc3RhbGwtc2NyaXB0ICQod2hpY2ggYXBwbmFtZSkKKyAgICBlY2hvICQ/CisgIHdpbGwg
ZWNobyAwIGlmIHRoZSBtYWdpYyBsaW5lIGhhcyBiZWVuIGZvdW5kLCAxIGlmIG5vdAorLSBzb21l
dGltZXMgaXQgaGVscHMgdG8gZmluZCBlYXJseSBvbiBlcnJvcnMgdXNpbmc6CisgICAgX0FSR0NP
TVBMRVRFPTEgX0FSQ19ERUJVRz0xIGFwcG5hbWUKKyAgd2hpY2ggc2hvdWxkIHRocm93IGEgS2V5
RXJyb3I6ICdDT01QTElORScgKHdoaWNoIGlzIHByb3Blcmx5IHNldCBieSB0aGUKKyAgZ2xvYmFs
IGFyZ2NvbXBsZXRlIHNjcmlwdCkuCisiIiIKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1
dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCBzeXMKK2ltcG9ydCBv
cworZnJvbSBnbG9iIGltcG9ydCBnbG9iCisKKworY2xhc3MgRmFzdEZpbGVzQ29tcGxldGVyOgor
ICAgICdGYXN0IGZpbGUgY29tcGxldGVyIGNsYXNzJworCisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IGRpcmVjdG9yaWVzPVRydWUpOgorICAgICAgICBzZWxmLmRpcmVjdG9yaWVzID0gZGlyZWN0b3Jp
ZXMKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBwcmVmaXgsICoqa3dhcmdzKToKKyAgICAgICAg
IiIib25seSBjYWxsZWQgb24gbm9uIG9wdGlvbiBjb21wbGV0aW9ucyIiIgorICAgICAgICBpZiBv
cy5wYXRoLnNlcCBpbiBwcmVmaXhbMTpdOgorICAgICAgICAgICAgcHJlZml4X2RpciA9IGxlbihv
cy5wYXRoLmRpcm5hbWUocHJlZml4KSArIG9zLnBhdGguc2VwKQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgcHJlZml4X2RpciA9IDAKKyAgICAgICAgY29tcGxldGlvbiA9IFtdCisgICAgICAg
IGdsb2JiZWQgPSBbXQorICAgICAgICBpZiAnKicgbm90IGluIHByZWZpeCBhbmQgJz8nIG5vdCBp
biBwcmVmaXg6CisgICAgICAgICAgICAjIHdlIGFyZSBvbiB1bml4LCBvdGhlcndpc2Ugbm8gYmFz
aAorICAgICAgICAgICAgaWYgbm90IHByZWZpeCBvciBwcmVmaXhbLTFdID09IG9zLnBhdGguc2Vw
OgorICAgICAgICAgICAgICAgIGdsb2JiZWQuZXh0ZW5kKGdsb2IocHJlZml4ICsgJy4qJykpCisg
ICAgICAgICAgICBwcmVmaXggKz0gJyonCisgICAgICAgIGdsb2JiZWQuZXh0ZW5kKGdsb2IocHJl
Zml4KSkKKyAgICAgICAgZm9yIHggaW4gc29ydGVkKGdsb2JiZWQpOgorICAgICAgICAgICAgaWYg
b3MucGF0aC5pc2Rpcih4KToKKyAgICAgICAgICAgICAgICB4ICs9ICcvJworICAgICAgICAgICAg
IyBhcHBlbmQgc3RyaXBwaW5nIHRoZSBwcmVmaXggKGxpa2UgYmFzaCwgbm90IGxpa2UgY29tcGdl
bikKKyAgICAgICAgICAgIGNvbXBsZXRpb24uYXBwZW5kKHhbcHJlZml4X2RpcjpdKQorICAgICAg
ICByZXR1cm4gY29tcGxldGlvbgorCisKK2lmIG9zLmVudmlyb24uZ2V0KCdfQVJHQ09NUExFVEUn
KToKKyAgICB0cnk6CisgICAgICAgIGltcG9ydCBhcmdjb21wbGV0ZS5jb21wbGV0ZXJzCisgICAg
ZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICBzeXMuZXhpdCgtMSkKKyAgICBmaWxlc2NvbXBs
ZXRlciA9IEZhc3RGaWxlc0NvbXBsZXRlcigpCisKKyAgICBkZWYgdHJ5X2FyZ2NvbXBsZXRlKHBh
cnNlcik6CisgICAgICAgIGFyZ2NvbXBsZXRlLmF1dG9jb21wbGV0ZShwYXJzZXIsIGFsd2F5c19j
b21wbGV0ZV9vcHRpb25zPUZhbHNlKQorZWxzZToKKyAgICBkZWYgdHJ5X2FyZ2NvbXBsZXRlKHBh
cnNlcik6CisgICAgICAgIHBhc3MKKyAgICBmaWxlc2NvbXBsZXRlciA9IE5vbmUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9f
cHl0ZXN0L19jb2RlL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxNWMxM2I0MmMyNWJkMzE0OTg4
ZGJhYTdmZjlmNGUzZDFkMmU1YzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0
ZXN0L19jb2RlL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTAgQEAKKyIiIiBweXRob24gaW5zcGVj
dGlvbi9jb2RlIGdlbmVyYXRpb24gQVBJICIiIgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNv
bHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorZnJvbSAuY29kZSBpbXBvcnQg
Q29kZSAgIyBub3FhCitmcm9tIC5jb2RlIGltcG9ydCBFeGNlcHRpb25JbmZvICAjIG5vcWEKK2Zy
b20gLmNvZGUgaW1wb3J0IEZyYW1lICAjIG5vcWEKK2Zyb20gLmNvZGUgaW1wb3J0IFRyYWNlYmFj
ayAgIyBub3FhCitmcm9tIC5jb2RlIGltcG9ydCBnZXRyYXdjb2RlICAjIG5vcWEKK2Zyb20gLnNv
dXJjZSBpbXBvcnQgU291cmNlICAjIG5vcWEKK2Zyb20gLnNvdXJjZSBpbXBvcnQgY29tcGlsZV8g
YXMgY29tcGlsZSAgIyBub3FhCitmcm9tIC5zb3VyY2UgaW1wb3J0IGdldGZzbGluZW5vICAjIG5v
cWEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUvX3B5MnRyYWNlYmFjay5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUvX3B5MnRyYWNlYmFjay5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41YWFjZjBhNDI4ZDg4MDY5MWZlMDMwYTgzNWJjMjU4ZDA3ODUwNmYwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29kZS9fcHkydHJhY2ViYWNrLnB5CkBAIC0wLDAg
KzEsODUgQEAKKyMgY29waWVkIGZyb20gcHl0aG9uLTIuNy4zJ3MgdHJhY2ViYWNrLnB5CisjIENI
QU5HRVM6CisjIC0gc29tZV9zdHIgaXMgcmVwbGFjZWQsIHRyeWluZyB0byBjcmVhdGUgdW5pY29k
ZSBzdHJpbmdzCisjCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2
aXNpb24sIHByaW50X2Z1bmN0aW9uCitpbXBvcnQgdHlwZXMKKworCitkZWYgZm9ybWF0X2V4Y2Vw
dGlvbl9vbmx5KGV0eXBlLCB2YWx1ZSk6CisgICAgIiIiRm9ybWF0IHRoZSBleGNlcHRpb24gcGFy
dCBvZiBhIHRyYWNlYmFjay4KKworICAgIFRoZSBhcmd1bWVudHMgYXJlIHRoZSBleGNlcHRpb24g
dHlwZSBhbmQgdmFsdWUgc3VjaCBhcyBnaXZlbiBieQorICAgIHN5cy5sYXN0X3R5cGUgYW5kIHN5
cy5sYXN0X3ZhbHVlLiBUaGUgcmV0dXJuIHZhbHVlIGlzIGEgbGlzdCBvZgorICAgIHN0cmluZ3Ms
IGVhY2ggZW5kaW5nIGluIGEgbmV3bGluZS4KKworICAgIE5vcm1hbGx5LCB0aGUgbGlzdCBjb250
YWlucyBhIHNpbmdsZSBzdHJpbmc7IGhvd2V2ZXIsIGZvcgorICAgIFN5bnRheEVycm9yIGV4Y2Vw
dGlvbnMsIGl0IGNvbnRhaW5zIHNldmVyYWwgbGluZXMgdGhhdCAod2hlbgorICAgIHByaW50ZWQp
IGRpc3BsYXkgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgd2hlcmUgdGhlIHN5bnRheAorICAg
IGVycm9yIG9jY3VycmVkLgorCisgICAgVGhlIG1lc3NhZ2UgaW5kaWNhdGluZyB3aGljaCBleGNl
cHRpb24gb2NjdXJyZWQgaXMgYWx3YXlzIHRoZSBsYXN0CisgICAgc3RyaW5nIGluIHRoZSBsaXN0
LgorCisgICAgIiIiCisKKyAgICAjIEFuIGluc3RhbmNlIHNob3VsZCBub3QgaGF2ZSBhIG1lYW5p
bmdmdWwgdmFsdWUgcGFyYW1ldGVyLCBidXQKKyAgICAjIHNvbWV0aW1lcyBkb2VzLCBwYXJ0aWN1
bGFybHkgZm9yIHN0cmluZyBleGNlcHRpb25zLCBzdWNoIGFzCisgICAgIyA+Pj4gcmFpc2Ugc3Ry
aW5nMSwgc3RyaW5nMiAgIyBkZXByZWNhdGVkCisgICAgIworICAgICMgQ2xlYXIgdGhlc2Ugb3V0
IGZpcnN0IGJlY2F1c2UgaXNzdWJ0eXBlKHN0cmluZzEsIFN5bnRheEVycm9yKQorICAgICMgd291
bGQgdGhyb3cgYW5vdGhlciBleGNlcHRpb24gYW5kIG1hc2sgdGhlIG9yaWdpbmFsIHByb2JsZW0u
CisgICAgaWYgKGlzaW5zdGFuY2UoZXR5cGUsIEJhc2VFeGNlcHRpb24pIG9yCisgICAgICAgIGlz
aW5zdGFuY2UoZXR5cGUsIHR5cGVzLkluc3RhbmNlVHlwZSkgb3IKKyAgICAgICAgICAgIGV0eXBl
IGlzIE5vbmUgb3IgdHlwZShldHlwZSkgaXMgc3RyKToKKyAgICAgICAgcmV0dXJuIFtfZm9ybWF0
X2ZpbmFsX2V4Y19saW5lKGV0eXBlLCB2YWx1ZSldCisKKyAgICBzdHlwZSA9IGV0eXBlLl9fbmFt
ZV9fCisKKyAgICBpZiBub3QgaXNzdWJjbGFzcyhldHlwZSwgU3ludGF4RXJyb3IpOgorICAgICAg
ICByZXR1cm4gW19mb3JtYXRfZmluYWxfZXhjX2xpbmUoc3R5cGUsIHZhbHVlKV0KKworICAgICMg
SXQgd2FzIGEgc3ludGF4IGVycm9yOyBzaG93IGV4YWN0bHkgd2hlcmUgdGhlIHByb2JsZW0gd2Fz
IGZvdW5kLgorICAgIGxpbmVzID0gW10KKyAgICB0cnk6CisgICAgICAgIG1zZywgKGZpbGVuYW1l
LCBsaW5lbm8sIG9mZnNldCwgYmFkbGluZSkgPSB2YWx1ZS5hcmdzCisgICAgZXhjZXB0IEV4Y2Vw
dGlvbjoKKyAgICAgICAgcGFzcworICAgIGVsc2U6CisgICAgICAgIGZpbGVuYW1lID0gZmlsZW5h
bWUgb3IgIjxzdHJpbmc+IgorICAgICAgICBsaW5lcy5hcHBlbmQoJyAgRmlsZSAiJXMiLCBsaW5l
ICVkXG4nICUgKGZpbGVuYW1lLCBsaW5lbm8pKQorICAgICAgICBpZiBiYWRsaW5lIGlzIG5vdCBO
b25lOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShiYWRsaW5lLCBieXRlcyk6ICAjIHB5dGhv
biAyIG9ubHkKKyAgICAgICAgICAgICAgICBiYWRsaW5lID0gYmFkbGluZS5kZWNvZGUoJ3V0Zi04
JywgJ3JlcGxhY2UnKQorICAgICAgICAgICAgbGluZXMuYXBwZW5kKHUnICAgICVzXG4nICUgYmFk
bGluZS5zdHJpcCgpKQorICAgICAgICAgICAgaWYgb2Zmc2V0IGlzIG5vdCBOb25lOgorICAgICAg
ICAgICAgICAgIGNhcmV0c3BhY2UgPSBiYWRsaW5lLnJzdHJpcCgnXG4nKVs6b2Zmc2V0XS5sc3Ry
aXAoKQorICAgICAgICAgICAgICAgICMgbm9uLXNwYWNlIHdoaXRlc3BhY2UgKGxpa2VzIHRhYnMp
IG11c3QgYmUga2VwdCBmb3IgYWxpZ25tZW50CisgICAgICAgICAgICAgICAgY2FyZXRzcGFjZSA9
ICgoYy5pc3NwYWNlKCkgYW5kIGMgb3IgJyAnKSBmb3IgYyBpbiBjYXJldHNwYWNlKQorICAgICAg
ICAgICAgICAgICMgb25seSB0aHJlZSBzcGFjZXMgdG8gYWNjb3VudCBmb3Igb2Zmc2V0MSA9PSBw
b3MgMAorICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgnICAgJXNeXG4nICUgJycuam9pbihj
YXJldHNwYWNlKSkKKyAgICAgICAgdmFsdWUgPSBtc2cKKworICAgIGxpbmVzLmFwcGVuZChfZm9y
bWF0X2ZpbmFsX2V4Y19saW5lKHN0eXBlLCB2YWx1ZSkpCisgICAgcmV0dXJuIGxpbmVzCisKKwor
ZGVmIF9mb3JtYXRfZmluYWxfZXhjX2xpbmUoZXR5cGUsIHZhbHVlKToKKyAgICAiIiJSZXR1cm4g
YSBsaXN0IG9mIGEgc2luZ2xlIGxpbmUgLS0gbm9ybWFsIGNhc2UgZm9yIGZvcm1hdF9leGNlcHRp
b25fb25seSIiIgorICAgIHZhbHVlc3RyID0gX3NvbWVfc3RyKHZhbHVlKQorICAgIGlmIHZhbHVl
IGlzIE5vbmUgb3Igbm90IHZhbHVlc3RyOgorICAgICAgICBsaW5lID0gIiVzXG4iICUgZXR5cGUK
KyAgICBlbHNlOgorICAgICAgICBsaW5lID0gIiVzOiAlc1xuIiAlIChldHlwZSwgdmFsdWVzdHIp
CisgICAgcmV0dXJuIGxpbmUKKworCitkZWYgX3NvbWVfc3RyKHZhbHVlKToKKyAgICB0cnk6Cisg
ICAgICAgIHJldHVybiB1bmljb2RlKHZhbHVlKQorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzdHIodmFsdWUpCisgICAgICAgIGV4Y2VwdCBF
eGNlcHRpb246CisgICAgICAgICAgICBwYXNzCisgICAgcmV0dXJuICc8dW5wcmludGFibGUgJXMg
b2JqZWN0PicgJSB0eXBlKHZhbHVlKS5fX25hbWVfXwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
X3B5dGVzdC9fY29kZS9jb2RlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29kZS9jb2RlLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjNmYjIzMmJkNDMwZTliNGY4YWQ3NjllMzA1N2RkZWZlYzI4MWE2N2UKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19jb2RlL2NvZGUucHkKQEAgLTAs
MCArMSw5MDYgQEAKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZp
c2lvbiwgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCBzeXMKK2Zyb20gaW5zcGVjdCBpbXBvcnQgQ09f
VkFSQVJHUywgQ09fVkFSS0VZV09SRFMKK2ltcG9ydCByZQorZnJvbSB3ZWFrcmVmIGltcG9ydCBy
ZWYKK2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IF9QWTIsIF9QWTMsIFBZMzUsIHNhZmVfc3Ry
CisKK2ltcG9ydCBweQorYnVpbHRpbl9yZXByID0gcmVwcgorCitpZiBfUFkzOgorICAgIGZyb20g
dHJhY2ViYWNrIGltcG9ydCBmb3JtYXRfZXhjZXB0aW9uX29ubHkKK2Vsc2U6CisgICAgZnJvbSAu
X3B5MnRyYWNlYmFjayBpbXBvcnQgZm9ybWF0X2V4Y2VwdGlvbl9vbmx5CisKKworY2xhc3MgQ29k
ZShvYmplY3QpOgorICAgICIiIiB3cmFwcGVyIGFyb3VuZCBQeXRob24gY29kZSBvYmplY3RzICIi
IgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJhd2NvZGUpOgorICAgICAgICBpZiBub3QgaGFz
YXR0cihyYXdjb2RlLCAiY29fZmlsZW5hbWUiKToKKyAgICAgICAgICAgIHJhd2NvZGUgPSBnZXRy
YXdjb2RlKHJhd2NvZGUpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuZmlsZW5hbWUg
PSByYXdjb2RlLmNvX2ZpbGVuYW1lCisgICAgICAgICAgICBzZWxmLmZpcnN0bGluZW5vID0gcmF3
Y29kZS5jb19maXJzdGxpbmVubyAtIDEKKyAgICAgICAgICAgIHNlbGYubmFtZSA9IHJhd2NvZGUu
Y29fbmFtZQorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICByYWlz
ZSBUeXBlRXJyb3IoIm5vdCBhIGNvZGUgb2JqZWN0OiAlciIgJSAocmF3Y29kZSwpKQorICAgICAg
ICBzZWxmLnJhdyA9IHJhd2NvZGUKKworICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgorICAg
ICAgICByZXR1cm4gc2VsZi5yYXcgPT0gb3RoZXIucmF3CisKKyAgICBfX2hhc2hfXyA9IE5vbmUK
KworICAgIGRlZiBfX25lX18oc2VsZiwgb3RoZXIpOgorICAgICAgICByZXR1cm4gbm90IHNlbGYg
PT0gb3RoZXIKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBwYXRoKHNlbGYpOgorICAgICAgICAi
IiIgcmV0dXJuIGEgcGF0aCBvYmplY3QgcG9pbnRpbmcgdG8gc291cmNlIGNvZGUgKG5vdGUgdGhh
dCBpdAorICAgICAgICBtaWdodCBub3QgcG9pbnQgdG8gYW4gYWN0dWFsbHkgZXhpc3RpbmcgZmls
ZSkuICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICBwID0gcHkucGF0aC5sb2NhbChzZWxm
LnJhdy5jb19maWxlbmFtZSkKKyAgICAgICAgICAgICMgbWF5YmUgZG9uJ3QgdHJ5IHRoaXMgY2hl
Y2tpbmcKKyAgICAgICAgICAgIGlmIG5vdCBwLmNoZWNrKCk6CisgICAgICAgICAgICAgICAgcmFp
c2UgT1NFcnJvcigicHkucGF0aCBjaGVjayBmYWlsZWQuIikKKyAgICAgICAgZXhjZXB0IE9TRXJy
b3I6CisgICAgICAgICAgICAjIFhYWCBtYXliZSB0cnkgaGFyZGVyIGxpa2UgdGhlIHdlaXJkIGxv
Z2ljCisgICAgICAgICAgICAjIGluIHRoZSBzdGFuZGFyZCBsaWIgW2xpbmVjYWNoZS51cGRhdGVj
YWNoZV0gZG9lcz8KKyAgICAgICAgICAgIHAgPSBzZWxmLnJhdy5jb19maWxlbmFtZQorCisgICAg
ICAgIHJldHVybiBwCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgZnVsbHNvdXJjZShzZWxmKToK
KyAgICAgICAgIiIiIHJldHVybiBhIF9weXRlc3QuX2NvZGUuU291cmNlIG9iamVjdCBmb3IgdGhl
IGZ1bGwgc291cmNlIGZpbGUgb2YgdGhlIGNvZGUKKyAgICAgICAgIiIiCisgICAgICAgIGZyb20g
X3B5dGVzdC5fY29kZSBpbXBvcnQgc291cmNlCisgICAgICAgIGZ1bGwsIF8gPSBzb3VyY2UuZmlu
ZHNvdXJjZShzZWxmLnJhdykKKyAgICAgICAgcmV0dXJuIGZ1bGwKKworICAgIGRlZiBzb3VyY2Uo
c2VsZik6CisgICAgICAgICIiIiByZXR1cm4gYSBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSBvYmplY3Qg
Zm9yIHRoZSBjb2RlIG9iamVjdCdzIHNvdXJjZSBvbmx5CisgICAgICAgICIiIgorICAgICAgICAj
IHJldHVybiBzb3VyY2Ugb25seSBmb3IgdGhhdCBwYXJ0IG9mIGNvZGUKKyAgICAgICAgaW1wb3J0
IF9weXRlc3QuX2NvZGUKKyAgICAgICAgcmV0dXJuIF9weXRlc3QuX2NvZGUuU291cmNlKHNlbGYu
cmF3KQorCisgICAgZGVmIGdldGFyZ3Moc2VsZiwgdmFyPUZhbHNlKToKKyAgICAgICAgIiIiIHJl
dHVybiBhIHR1cGxlIHdpdGggdGhlIGFyZ3VtZW50IG5hbWVzIGZvciB0aGUgY29kZSBvYmplY3QK
KworICAgICAgICAgICAgaWYgJ3ZhcicgaXMgc2V0IFRydWUgYWxzbyByZXR1cm4gdGhlIG5hbWVz
IG9mIHRoZSB2YXJpYWJsZSBhbmQKKyAgICAgICAgICAgIGtleXdvcmQgYXJndW1lbnRzIHdoZW4g
cHJlc2VudAorICAgICAgICAiIiIKKyAgICAgICAgIyBoYW5kZnVsbCBzaG9ydGN1dCBmb3IgZ2V0
dGluZyBhcmdzCisgICAgICAgIHJhdyA9IHNlbGYucmF3CisgICAgICAgIGFyZ2NvdW50ID0gcmF3
LmNvX2FyZ2NvdW50CisgICAgICAgIGlmIHZhcjoKKyAgICAgICAgICAgIGFyZ2NvdW50ICs9IHJh
dy5jb19mbGFncyAmIENPX1ZBUkFSR1MKKyAgICAgICAgICAgIGFyZ2NvdW50ICs9IHJhdy5jb19m
bGFncyAmIENPX1ZBUktFWVdPUkRTCisgICAgICAgIHJldHVybiByYXcuY29fdmFybmFtZXNbOmFy
Z2NvdW50XQorCisKK2NsYXNzIEZyYW1lKG9iamVjdCk6CisgICAgIiIiV3JhcHBlciBhcm91bmQg
YSBQeXRob24gZnJhbWUgaG9sZGluZyBmX2xvY2FscyBhbmQgZl9nbG9iYWxzCisgICAgaW4gd2hp
Y2ggZXhwcmVzc2lvbnMgY2FuIGJlIGV2YWx1YXRlZC4iIiIKKworICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBmcmFtZSk6CisgICAgICAgIHNlbGYubGluZW5vID0gZnJhbWUuZl9saW5lbm8gLSAxCisg
ICAgICAgIHNlbGYuZl9nbG9iYWxzID0gZnJhbWUuZl9nbG9iYWxzCisgICAgICAgIHNlbGYuZl9s
b2NhbHMgPSBmcmFtZS5mX2xvY2FscworICAgICAgICBzZWxmLnJhdyA9IGZyYW1lCisgICAgICAg
IHNlbGYuY29kZSA9IENvZGUoZnJhbWUuZl9jb2RlKQorCisgICAgQHByb3BlcnR5CisgICAgZGVm
IHN0YXRlbWVudChzZWxmKToKKyAgICAgICAgIiIiIHN0YXRlbWVudCB0aGlzIGZyYW1lIGlzIGF0
ICIiIgorICAgICAgICBpbXBvcnQgX3B5dGVzdC5fY29kZQorICAgICAgICBpZiBzZWxmLmNvZGUu
ZnVsbHNvdXJjZSBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIF9weXRlc3QuX2NvZGUuU291
cmNlKCIiKQorICAgICAgICByZXR1cm4gc2VsZi5jb2RlLmZ1bGxzb3VyY2UuZ2V0c3RhdGVtZW50
KHNlbGYubGluZW5vKQorCisgICAgZGVmIGV2YWwoc2VsZiwgY29kZSwgKip2YXJzKToKKyAgICAg
ICAgIiIiIGV2YWx1YXRlICdjb2RlJyBpbiB0aGUgZnJhbWUKKworICAgICAgICAgICAgJ3ZhcnMn
IGFyZSBvcHRpb25hbCBhZGRpdGlvbmFsIGxvY2FsIHZhcmlhYmxlcworCisgICAgICAgICAgICBy
ZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIGV2YWx1YXRpb24KKyAgICAgICAgIiIiCisgICAgICAg
IGZfbG9jYWxzID0gc2VsZi5mX2xvY2Fscy5jb3B5KCkKKyAgICAgICAgZl9sb2NhbHMudXBkYXRl
KHZhcnMpCisgICAgICAgIHJldHVybiBldmFsKGNvZGUsIHNlbGYuZl9nbG9iYWxzLCBmX2xvY2Fs
cykKKworICAgIGRlZiBleGVjXyhzZWxmLCBjb2RlLCAqKnZhcnMpOgorICAgICAgICAiIiIgZXhl
YyAnY29kZScgaW4gdGhlIGZyYW1lCisKKyAgICAgICAgICAgICd2YXJzJyBhcmUgb3B0aW9uYTsg
YWRkaXRpb25hbCBsb2NhbCB2YXJpYWJsZXMKKyAgICAgICAgIiIiCisgICAgICAgIGZfbG9jYWxz
ID0gc2VsZi5mX2xvY2Fscy5jb3B5KCkKKyAgICAgICAgZl9sb2NhbHMudXBkYXRlKHZhcnMpCisg
ICAgICAgIHB5LmJ1aWx0aW4uZXhlY18oY29kZSwgc2VsZi5mX2dsb2JhbHMsIGZfbG9jYWxzKQor
CisgICAgZGVmIHJlcHIoc2VsZiwgb2JqZWN0KToKKyAgICAgICAgIiIiIHJldHVybiBhICdzYWZl
JyAobm9uLXJlY3Vyc2l2ZSwgb25lLWxpbmUpIHN0cmluZyByZXByIGZvciAnb2JqZWN0JworICAg
ICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHB5LmlvLnNhZmVyZXByKG9iamVjdCkKKworICAgIGRl
ZiBpc190cnVlKHNlbGYsIG9iamVjdCk6CisgICAgICAgIHJldHVybiBvYmplY3QKKworICAgIGRl
ZiBnZXRhcmdzKHNlbGYsIHZhcj1GYWxzZSk6CisgICAgICAgICIiIiByZXR1cm4gYSBsaXN0IG9m
IHR1cGxlcyAobmFtZSwgdmFsdWUpIGZvciBhbGwgYXJndW1lbnRzCisKKyAgICAgICAgICAgIGlm
ICd2YXInIGlzIHNldCBUcnVlIGFsc28gaW5jbHVkZSB0aGUgdmFyaWFibGUgYW5kIGtleXdvcmQK
KyAgICAgICAgICAgIGFyZ3VtZW50cyB3aGVuIHByZXNlbnQKKyAgICAgICAgIiIiCisgICAgICAg
IHJldHZhbCA9IFtdCisgICAgICAgIGZvciBhcmcgaW4gc2VsZi5jb2RlLmdldGFyZ3ModmFyKToK
KyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXR2YWwuYXBwZW5kKChhcmcsIHNl
bGYuZl9sb2NhbHNbYXJnXSkpCisgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAg
ICAgICAgICAgcGFzcyAgICAgIyB0aGlzIGNhbiBvY2N1ciB3aGVuIHVzaW5nIFBzeWNvCisgICAg
ICAgIHJldHVybiByZXR2YWwKKworCitjbGFzcyBUcmFjZWJhY2tFbnRyeShvYmplY3QpOgorICAg
ICIiIiBhIHNpbmdsZSBlbnRyeSBpbiBhIHRyYWNlYmFjayAiIiIKKworICAgIF9yZXByX3N0eWxl
ID0gTm9uZQorICAgIGV4cHJpbmZvID0gTm9uZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJh
d2VudHJ5LCBleGNpbmZvPU5vbmUpOgorICAgICAgICBzZWxmLl9leGNpbmZvID0gZXhjaW5mbwor
ICAgICAgICBzZWxmLl9yYXdlbnRyeSA9IHJhd2VudHJ5CisgICAgICAgIHNlbGYubGluZW5vID0g
cmF3ZW50cnkudGJfbGluZW5vIC0gMQorCisgICAgZGVmIHNldF9yZXByX3N0eWxlKHNlbGYsIG1v
ZGUpOgorICAgICAgICBhc3NlcnQgbW9kZSBpbiAoInNob3J0IiwgImxvbmciKQorICAgICAgICBz
ZWxmLl9yZXByX3N0eWxlID0gbW9kZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGZyYW1lKHNl
bGYpOgorICAgICAgICBpbXBvcnQgX3B5dGVzdC5fY29kZQorICAgICAgICByZXR1cm4gX3B5dGVz
dC5fY29kZS5GcmFtZShzZWxmLl9yYXdlbnRyeS50Yl9mcmFtZSkKKworICAgIEBwcm9wZXJ0eQor
ICAgIGRlZiByZWxsaW5lKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5saW5lbm8gLSBzZWxm
LmZyYW1lLmNvZGUuZmlyc3RsaW5lbm8KKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAg
ICAgcmV0dXJuICI8VHJhY2ViYWNrRW50cnkgJXM6JWQ+IiAlIChzZWxmLmZyYW1lLmNvZGUucGF0
aCwgc2VsZi5saW5lbm8gKyAxKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHN0YXRlbWVudChz
ZWxmKToKKyAgICAgICAgIiIiIF9weXRlc3QuX2NvZGUuU291cmNlIG9iamVjdCBmb3IgdGhlIGN1
cnJlbnQgc3RhdGVtZW50ICIiIgorICAgICAgICBzb3VyY2UgPSBzZWxmLmZyYW1lLmNvZGUuZnVs
bHNvdXJjZQorICAgICAgICByZXR1cm4gc291cmNlLmdldHN0YXRlbWVudChzZWxmLmxpbmVubykK
KworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBwYXRoKHNlbGYpOgorICAgICAgICAiIiIgcGF0aCB0
byB0aGUgc291cmNlIGNvZGUgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmZyYW1lLmNvZGUucGF0
aAorCisgICAgZGVmIGdldGxvY2FscyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZnJhbWUu
Zl9sb2NhbHMKKyAgICBsb2NhbHMgPSBwcm9wZXJ0eShnZXRsb2NhbHMsIE5vbmUsIE5vbmUsICJs
b2NhbHMgb2YgdW5kZXJsYXlpbmcgZnJhbWUiKQorCisgICAgZGVmIGdldGZpcnN0bGluZXNvdXJj
ZShzZWxmKToKKyAgICAgICAgIyBvbiBKeXRob24gdGhpcyBmaXJzdGxpbmVubyBjYW4gYmUgLTEg
YXBwYXJlbnRseQorICAgICAgICByZXR1cm4gbWF4KHNlbGYuZnJhbWUuY29kZS5maXJzdGxpbmVu
bywgMCkKKworICAgIGRlZiBnZXRzb3VyY2Uoc2VsZiwgYXN0Y2FjaGU9Tm9uZSk6CisgICAgICAg
ICIiIiByZXR1cm4gZmFpbGluZyBzb3VyY2UgY29kZS4gIiIiCisgICAgICAgICMgd2UgdXNlIHRo
ZSBwYXNzZWQgaW4gYXN0Y2FjaGUgdG8gbm90IHJlcGFyc2UgYXN0dHJlZXMKKyAgICAgICAgIyB3
aXRoaW4gZXhjZXB0aW9uIGluZm8gcHJpbnRpbmcKKyAgICAgICAgZnJvbSBfcHl0ZXN0Ll9jb2Rl
LnNvdXJjZSBpbXBvcnQgZ2V0c3RhdGVtZW50cmFuZ2VfYXN0CisgICAgICAgIHNvdXJjZSA9IHNl
bGYuZnJhbWUuY29kZS5mdWxsc291cmNlCisgICAgICAgIGlmIHNvdXJjZSBpcyBOb25lOgorICAg
ICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAga2V5ID0gYXN0bm9kZSA9IE5vbmUKKyAgICAg
ICAgaWYgYXN0Y2FjaGUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBrZXkgPSBzZWxmLmZyYW1l
LmNvZGUucGF0aAorICAgICAgICAgICAgaWYga2V5IGlzIG5vdCBOb25lOgorICAgICAgICAgICAg
ICAgIGFzdG5vZGUgPSBhc3RjYWNoZS5nZXQoa2V5LCBOb25lKQorICAgICAgICBzdGFydCA9IHNl
bGYuZ2V0Zmlyc3RsaW5lc291cmNlKCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYXN0bm9k
ZSwgXywgZW5kID0gZ2V0c3RhdGVtZW50cmFuZ2VfYXN0KHNlbGYubGluZW5vLCBzb3VyY2UsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXN0bm9k
ZT1hc3Rub2RlKQorICAgICAgICBleGNlcHQgU3ludGF4RXJyb3I6CisgICAgICAgICAgICBlbmQg
PSBzZWxmLmxpbmVubyArIDEKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIGtleSBpcyBu
b3QgTm9uZToKKyAgICAgICAgICAgICAgICBhc3RjYWNoZVtrZXldID0gYXN0bm9kZQorICAgICAg
ICByZXR1cm4gc291cmNlW3N0YXJ0OmVuZF0KKworICAgIHNvdXJjZSA9IHByb3BlcnR5KGdldHNv
dXJjZSkKKworICAgIGRlZiBpc2hpZGRlbihzZWxmKToKKyAgICAgICAgIiIiIHJldHVybiBUcnVl
IGlmIHRoZSBjdXJyZW50IGZyYW1lIGhhcyBhIHZhciBfX3RyYWNlYmFja2hpZGVfXworICAgICAg
ICAgICAgcmVzb2x2aW5nIHRvIFRydWUKKworICAgICAgICAgICAgSWYgX190cmFjZWJhY2toaWRl
X18gaXMgYSBjYWxsYWJsZSwgaXQgZ2V0cyBjYWxsZWQgd2l0aCB0aGUKKyAgICAgICAgICAgIEV4
Y2VwdGlvbkluZm8gaW5zdGFuY2UgYW5kIGNhbiBkZWNpZGUgd2hldGhlciB0byBoaWRlIHRoZSB0
cmFjZWJhY2suCisKKyAgICAgICAgICAgIG1vc3RseSBmb3IgaW50ZXJuYWwgdXNlCisgICAgICAg
ICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICB0YmggPSBzZWxmLmZyYW1lLmZfbG9jYWxz
WydfX3RyYWNlYmFja2hpZGVfXyddCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAg
ICAgIHRyeToKKyAgICAgICAgICAgICAgICB0YmggPSBzZWxmLmZyYW1lLmZfZ2xvYmFsc1snX190
cmFjZWJhY2toaWRlX18nXQorICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAg
ICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIGlmIGNhbGxhYmxlKHRiaCk6CisgICAgICAg
ICAgICByZXR1cm4gdGJoKE5vbmUgaWYgc2VsZi5fZXhjaW5mbyBpcyBOb25lIGVsc2Ugc2VsZi5f
ZXhjaW5mbygpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIHRiaAorCisgICAg
ZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZuID0gc3RyKHNl
bGYucGF0aCkKKyAgICAgICAgZXhjZXB0IHB5LmVycm9yLkVycm9yOgorICAgICAgICAgICAgZm4g
PSAnPz8/JworICAgICAgICBuYW1lID0gc2VsZi5mcmFtZS5jb2RlLm5hbWUKKyAgICAgICAgdHJ5
OgorICAgICAgICAgICAgbGluZSA9IHN0cihzZWxmLnN0YXRlbWVudCkubHN0cmlwKCkKKyAgICAg
ICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgorICAgICAgICAgICAgcmFpc2UKKyAgICAgICAg
ZXhjZXB0OiAgIyBub3FhCisgICAgICAgICAgICBsaW5lID0gIj8/PyIKKyAgICAgICAgcmV0dXJu
ICIgIEZpbGUgJXI6JWQgaW4gJXNcbiAgJXNcbiIgJSAoZm4sIHNlbGYubGluZW5vICsgMSwgbmFt
ZSwgbGluZSkKKworICAgIGRlZiBuYW1lKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5mcmFt
ZS5jb2RlLnJhdy5jb19uYW1lCisgICAgbmFtZSA9IHByb3BlcnR5KG5hbWUsIE5vbmUsIE5vbmUs
ICJjb19uYW1lIG9mIHVuZGVybGF5aW5nIGNvZGUiKQorCisKK2NsYXNzIFRyYWNlYmFjayhsaXN0
KToKKyAgICAiIiIgVHJhY2ViYWNrIG9iamVjdHMgZW5jYXBzdWxhdGUgYW5kIG9mZmVyIGhpZ2hl
ciBsZXZlbAorICAgICAgICBhY2Nlc3MgdG8gVHJhY2ViYWNrIGVudHJpZXMuCisgICAgIiIiCisg
ICAgRW50cnkgPSBUcmFjZWJhY2tFbnRyeQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRiLCBl
eGNpbmZvPU5vbmUpOgorICAgICAgICAiIiIgaW5pdGlhbGl6ZSBmcm9tIGdpdmVuIHB5dGhvbiB0
cmFjZWJhY2sgb2JqZWN0IGFuZCBFeGNlcHRpb25JbmZvICIiIgorICAgICAgICBzZWxmLl9leGNp
bmZvID0gZXhjaW5mbworICAgICAgICBpZiBoYXNhdHRyKHRiLCAndGJfbmV4dCcpOgorICAgICAg
ICAgICAgZGVmIGYoY3VyKToKKyAgICAgICAgICAgICAgICB3aGlsZSBjdXIgaXMgbm90IE5vbmU6
CisgICAgICAgICAgICAgICAgICAgIHlpZWxkIHNlbGYuRW50cnkoY3VyLCBleGNpbmZvPWV4Y2lu
Zm8pCisgICAgICAgICAgICAgICAgICAgIGN1ciA9IGN1ci50Yl9uZXh0CisgICAgICAgICAgICBs
aXN0Ll9faW5pdF9fKHNlbGYsIGYodGIpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbGlz
dC5fX2luaXRfXyhzZWxmLCB0YikKKworICAgIGRlZiBjdXQoc2VsZiwgcGF0aD1Ob25lLCBsaW5l
bm89Tm9uZSwgZmlyc3RsaW5lbm89Tm9uZSwgZXhjbHVkZXBhdGg9Tm9uZSk6CisgICAgICAgICIi
IiByZXR1cm4gYSBUcmFjZWJhY2sgaW5zdGFuY2Ugd3JhcHBpbmcgcGFydCBvZiB0aGlzIFRyYWNl
YmFjaworCisgICAgICAgICAgICBieSBwcm92ZGluZyBhbnkgY29tYmluYXRpb24gb2YgcGF0aCwg
bGluZW5vIGFuZCBmaXJzdGxpbmVubywgdGhlCisgICAgICAgICAgICBmaXJzdCBmcmFtZSB0byBz
dGFydCB0aGUgdG8tYmUtcmV0dXJuZWQgdHJhY2ViYWNrIGlzIGRldGVybWluZWQKKworICAgICAg
ICAgICAgdGhpcyBhbGxvd3MgY3V0dGluZyB0aGUgZmlyc3QgcGFydCBvZiBhIFRyYWNlYmFjayBp
bnN0YW5jZSBlLmcuCisgICAgICAgICAgICBmb3IgZm9ybWF0dGluZyByZWFzb25zIChyZW1vdmlu
ZyBzb21lIHVuaW50ZXJlc3RpbmcgYml0cyB0aGF0IGRlYWwKKyAgICAgICAgICAgIHdpdGggaGFu
ZGxpbmcgb2YgdGhlIGV4Y2VwdGlvbi90cmFjZWJhY2spCisgICAgICAgICIiIgorICAgICAgICBm
b3IgeCBpbiBzZWxmOgorICAgICAgICAgICAgY29kZSA9IHguZnJhbWUuY29kZQorICAgICAgICAg
ICAgY29kZXBhdGggPSBjb2RlLnBhdGgKKyAgICAgICAgICAgIGlmICgocGF0aCBpcyBOb25lIG9y
IGNvZGVwYXRoID09IHBhdGgpIGFuZAorICAgICAgICAgICAgICAgIChleGNsdWRlcGF0aCBpcyBO
b25lIG9yIG5vdCBoYXNhdHRyKGNvZGVwYXRoLCAncmVsdG8nKSBvcgorICAgICAgICAgICAgICAg
ICBub3QgY29kZXBhdGgucmVsdG8oZXhjbHVkZXBhdGgpKSBhbmQKKyAgICAgICAgICAgICAgICAo
bGluZW5vIGlzIE5vbmUgb3IgeC5saW5lbm8gPT0gbGluZW5vKSBhbmQKKyAgICAgICAgICAgICAg
ICAgICAgKGZpcnN0bGluZW5vIGlzIE5vbmUgb3IgeC5mcmFtZS5jb2RlLmZpcnN0bGluZW5vID09
IGZpcnN0bGluZW5vKSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRyYWNlYmFjayh4Ll9yYXdl
bnRyeSwgc2VsZi5fZXhjaW5mbykKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBfX2dl
dGl0ZW1fXyhzZWxmLCBrZXkpOgorICAgICAgICB2YWwgPSBzdXBlcihUcmFjZWJhY2ssIHNlbGYp
Ll9fZ2V0aXRlbV9fKGtleSkKKyAgICAgICAgaWYgaXNpbnN0YW5jZShrZXksIHR5cGUoc2xpY2Uo
MCkpKToKKyAgICAgICAgICAgIHZhbCA9IHNlbGYuX19jbGFzc19fKHZhbCkKKyAgICAgICAgcmV0
dXJuIHZhbAorCisgICAgZGVmIGZpbHRlcihzZWxmLCBmbj1sYW1iZGEgeDogbm90IHguaXNoaWRk
ZW4oKSk6CisgICAgICAgICIiIiByZXR1cm4gYSBUcmFjZWJhY2sgaW5zdGFuY2Ugd2l0aCBjZXJ0
YWluIGl0ZW1zIHJlbW92ZWQKKworICAgICAgICAgICAgZm4gaXMgYSBmdW5jdGlvbiB0aGF0IGdl
dHMgYSBzaW5nbGUgYXJndW1lbnQsIGEgVHJhY2ViYWNrRW50cnkKKyAgICAgICAgICAgIGluc3Rh
bmNlLCBhbmQgc2hvdWxkIHJldHVybiBUcnVlIHdoZW4gdGhlIGl0ZW0gc2hvdWxkIGJlIGFkZGVk
CisgICAgICAgICAgICB0byB0aGUgVHJhY2ViYWNrLCBGYWxzZSB3aGVuIG5vdAorCisgICAgICAg
ICAgICBieSBkZWZhdWx0IHRoaXMgcmVtb3ZlcyBhbGwgdGhlIFRyYWNlYmFja0VudHJpZXMgd2hp
Y2ggYXJlIGhpZGRlbgorICAgICAgICAgICAgKHNlZSBpc2hpZGRlbigpIGFib3ZlKQorICAgICAg
ICAiIiIKKyAgICAgICAgcmV0dXJuIFRyYWNlYmFjayhmaWx0ZXIoZm4sIHNlbGYpLCBzZWxmLl9l
eGNpbmZvKQorCisgICAgZGVmIGdldGNyYXNoZW50cnkoc2VsZik6CisgICAgICAgICIiIiByZXR1
cm4gbGFzdCBub24taGlkZGVuIHRyYWNlYmFjayBlbnRyeSB0aGF0IGxlYWQKKyAgICAgICAgdG8g
dGhlIGV4Y2VwdGlvbiBvZiBhIHRyYWNlYmFjay4KKyAgICAgICAgIiIiCisgICAgICAgIGZvciBp
IGluIHJhbmdlKC0xLCAtbGVuKHNlbGYpIC0gMSwgLTEpOgorICAgICAgICAgICAgZW50cnkgPSBz
ZWxmW2ldCisgICAgICAgICAgICBpZiBub3QgZW50cnkuaXNoaWRkZW4oKToKKyAgICAgICAgICAg
ICAgICByZXR1cm4gZW50cnkKKyAgICAgICAgcmV0dXJuIHNlbGZbLTFdCisKKyAgICBkZWYgcmVj
dXJzaW9uaW5kZXgoc2VsZik6CisgICAgICAgICIiIiByZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBm
cmFtZS9UcmFjZWJhY2tFbnRyeSB3aGVyZSByZWN1cnNpb24KKyAgICAgICAgICAgIG9yaWdpbmF0
ZXMgaWYgYXBwcm9wcmlhdGUsIE5vbmUgaWYgbm8gcmVjdXJzaW9uIG9jY3VycmVkCisgICAgICAg
ICIiIgorICAgICAgICBjYWNoZSA9IHt9CisgICAgICAgIGZvciBpLCBlbnRyeSBpbiBlbnVtZXJh
dGUoc2VsZik6CisgICAgICAgICAgICAjIGlkIGZvciB0aGUgY29kZS5yYXcgaXMgbmVlZGVkIHRv
IHdvcmsgYXJvdW5kCisgICAgICAgICAgICAjIHRoZSBzdHJhbmdlIG1ldGFwcm9ncmFtbWluZyBp
biB0aGUgZGVjb3JhdG9yIGxpYiBmcm9tIHB5cGkKKyAgICAgICAgICAgICMgd2hpY2ggZ2VuZXJh
dGVzIGNvZGUgb2JqZWN0cyB0aGF0IGhhdmUgaGFzaC92YWx1ZSBlcXVhbGl0eQorICAgICAgICAg
ICAgIyBYWFggbmVlZHMgYSB0ZXN0CisgICAgICAgICAgICBrZXkgPSBlbnRyeS5mcmFtZS5jb2Rl
LnBhdGgsIGlkKGVudHJ5LmZyYW1lLmNvZGUucmF3KSwgZW50cnkubGluZW5vCisgICAgICAgICAg
ICAjIHByaW50ICJjaGVja2luZyBmb3IgcmVjdXJzaW9uIGF0Iiwga2V5CisgICAgICAgICAgICB2
YWx1ZXMgPSBjYWNoZS5zZXRkZWZhdWx0KGtleSwgW10pCisgICAgICAgICAgICBpZiB2YWx1ZXM6
CisgICAgICAgICAgICAgICAgZiA9IGVudHJ5LmZyYW1lCisgICAgICAgICAgICAgICAgbG9jID0g
Zi5mX2xvY2FscworICAgICAgICAgICAgICAgIGZvciBvdGhlcmxvYyBpbiB2YWx1ZXM6CisgICAg
ICAgICAgICAgICAgICAgIGlmIGYuaXNfdHJ1ZShmLmV2YWwoY29fZXF1YWwsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19yZWN1cnNpb25jYWNoZV9sb2NhbHNfMT1s
b2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19yZWN1cnNpb25j
YWNoZV9sb2NhbHNfMj1vdGhlcmxvYykpOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGkKKyAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoZW50cnkuZnJhbWUuZl9sb2NhbHMpCisgICAg
ICAgIHJldHVybiBOb25lCisKKworY29fZXF1YWwgPSBjb21waWxlKCdfX3JlY3Vyc2lvbmNhY2hl
X2xvY2Fsc18xID09IF9fcmVjdXJzaW9uY2FjaGVfbG9jYWxzXzInLAorICAgICAgICAgICAgICAg
ICAgICc/JywgJ2V2YWwnKQorCisKK2NsYXNzIEV4Y2VwdGlvbkluZm8ob2JqZWN0KToKKyAgICAi
IiIgd3JhcHMgc3lzLmV4Y19pbmZvKCkgb2JqZWN0cyBhbmQgb2ZmZXJzCisgICAgICAgIGhlbHAg
Zm9yIG5hdmlnYXRpbmcgdGhlIHRyYWNlYmFjay4KKyAgICAiIiIKKyAgICBfc3RyaXB0ZXh0ID0g
JycKKyAgICBfYXNzZXJ0X3N0YXJ0X3JlcHIgPSAiQXNzZXJ0aW9uRXJyb3IodVwnYXNzZXJ0ICIg
aWYgX1BZMiBlbHNlICJBc3NlcnRpb25FcnJvcihcJ2Fzc2VydCAiCisKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgdHVwPU5vbmUsIGV4cHJpbmZvPU5vbmUpOgorICAgICAgICBpbXBvcnQgX3B5dGVz
dC5fY29kZQorICAgICAgICBpZiB0dXAgaXMgTm9uZToKKyAgICAgICAgICAgIHR1cCA9IHN5cy5l
eGNfaW5mbygpCisgICAgICAgICAgICBpZiBleHByaW5mbyBpcyBOb25lIGFuZCBpc2luc3RhbmNl
KHR1cFsxXSwgQXNzZXJ0aW9uRXJyb3IpOgorICAgICAgICAgICAgICAgIGV4cHJpbmZvID0gZ2V0
YXR0cih0dXBbMV0sICdtc2cnLCBOb25lKQorICAgICAgICAgICAgICAgIGlmIGV4cHJpbmZvIGlz
IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIGV4cHJpbmZvID0gcHkuaW8uc2FmZXJlcHIodHVw
WzFdKQorICAgICAgICAgICAgICAgIGlmIGV4cHJpbmZvIGFuZCBleHByaW5mby5zdGFydHN3aXRo
KHNlbGYuX2Fzc2VydF9zdGFydF9yZXByKToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fc3Ry
aXB0ZXh0ID0gJ0Fzc2VydGlvbkVycm9yOiAnCisgICAgICAgIHNlbGYuX2V4Y2luZm8gPSB0dXAK
KyAgICAgICAgIzogdGhlIGV4Y2VwdGlvbiBjbGFzcworICAgICAgICBzZWxmLnR5cGUgPSB0dXBb
MF0KKyAgICAgICAgIzogdGhlIGV4Y2VwdGlvbiBpbnN0YW5jZQorICAgICAgICBzZWxmLnZhbHVl
ID0gdHVwWzFdCisgICAgICAgICM6IHRoZSBleGNlcHRpb24gcmF3IHRyYWNlYmFjaworICAgICAg
ICBzZWxmLnRiID0gdHVwWzJdCisgICAgICAgICM6IHRoZSBleGNlcHRpb24gdHlwZSBuYW1lCisg
ICAgICAgIHNlbGYudHlwZW5hbWUgPSBzZWxmLnR5cGUuX19uYW1lX18KKyAgICAgICAgIzogdGhl
IGV4Y2VwdGlvbiB0cmFjZWJhY2sgKF9weXRlc3QuX2NvZGUuVHJhY2ViYWNrIGluc3RhbmNlKQor
ICAgICAgICBzZWxmLnRyYWNlYmFjayA9IF9weXRlc3QuX2NvZGUuVHJhY2ViYWNrKHNlbGYudGIs
IGV4Y2luZm89cmVmKHNlbGYpKQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gIjxFeGNlcHRpb25JbmZvICVzIHRibGVuPSVkPiIgJSAoc2VsZi50eXBlbmFtZSwgbGVu
KHNlbGYudHJhY2ViYWNrKSkKKworICAgIGRlZiBleGNvbmx5KHNlbGYsIHRyeXNob3J0PUZhbHNl
KToKKyAgICAgICAgIiIiIHJldHVybiB0aGUgZXhjZXB0aW9uIGFzIGEgc3RyaW5nCisKKyAgICAg
ICAgICAgIHdoZW4gJ3RyeXNob3J0JyByZXNvbHZlcyB0byBUcnVlLCBhbmQgdGhlIGV4Y2VwdGlv
biBpcyBhCisgICAgICAgICAgICBfcHl0ZXN0Ll9jb2RlLl9Bc3NlcnRpb25FcnJvciwgb25seSB0
aGUgYWN0dWFsIGV4Y2VwdGlvbiBwYXJ0IG9mCisgICAgICAgICAgICB0aGUgZXhjZXB0aW9uIHJl
cHJlc2VudGF0aW9uIGlzIHJldHVybmVkIChzbyAnQXNzZXJ0aW9uRXJyb3I6ICcgaXMKKyAgICAg
ICAgICAgIHJlbW92ZWQgZnJvbSB0aGUgYmVnaW5uaW5nKQorICAgICAgICAiIiIKKyAgICAgICAg
bGluZXMgPSBmb3JtYXRfZXhjZXB0aW9uX29ubHkoc2VsZi50eXBlLCBzZWxmLnZhbHVlKQorICAg
ICAgICB0ZXh0ID0gJycuam9pbihsaW5lcykKKyAgICAgICAgdGV4dCA9IHRleHQucnN0cmlwKCkK
KyAgICAgICAgaWYgdHJ5c2hvcnQ6CisgICAgICAgICAgICBpZiB0ZXh0LnN0YXJ0c3dpdGgoc2Vs
Zi5fc3RyaXB0ZXh0KToKKyAgICAgICAgICAgICAgICB0ZXh0ID0gdGV4dFtsZW4oc2VsZi5fc3Ry
aXB0ZXh0KTpdCisgICAgICAgIHJldHVybiB0ZXh0CisKKyAgICBkZWYgZXJyaXNpbnN0YW5jZShz
ZWxmLCBleGMpOgorICAgICAgICAiIiIgcmV0dXJuIFRydWUgaWYgdGhlIGV4Y2VwdGlvbiBpcyBh
biBpbnN0YW5jZSBvZiBleGMgIiIiCisgICAgICAgIHJldHVybiBpc2luc3RhbmNlKHNlbGYudmFs
dWUsIGV4YykKKworICAgIGRlZiBfZ2V0cmVwcmNyYXNoKHNlbGYpOgorICAgICAgICBleGNvbmx5
ID0gc2VsZi5leGNvbmx5KHRyeXNob3J0PVRydWUpCisgICAgICAgIGVudHJ5ID0gc2VsZi50cmFj
ZWJhY2suZ2V0Y3Jhc2hlbnRyeSgpCisgICAgICAgIHBhdGgsIGxpbmVubyA9IGVudHJ5LmZyYW1l
LmNvZGUucmF3LmNvX2ZpbGVuYW1lLCBlbnRyeS5saW5lbm8KKyAgICAgICAgcmV0dXJuIFJlcHJG
aWxlTG9jYXRpb24ocGF0aCwgbGluZW5vICsgMSwgZXhjb25seSkKKworICAgIGRlZiBnZXRyZXBy
KHNlbGYsIHNob3dsb2NhbHM9RmFsc2UsIHN0eWxlPSJsb25nIiwKKyAgICAgICAgICAgICAgICBh
YnNwYXRoPUZhbHNlLCB0YmZpbHRlcj1UcnVlLCBmdW5jYXJncz1GYWxzZSk6CisgICAgICAgICIi
IiByZXR1cm4gc3RyKClhYmxlIHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgZXhjZXB0aW9uIGluZm8u
CisgICAgICAgICAgICBzaG93bG9jYWxzOiBzaG93IGxvY2FscyBwZXIgdHJhY2ViYWNrIGVudHJ5
CisgICAgICAgICAgICBzdHlsZTogbG9uZ3xzaG9ydHxub3xuYXRpdmUgdHJhY2ViYWNrIHN0eWxl
CisgICAgICAgICAgICB0YmZpbHRlcjogaGlkZSBlbnRyaWVzICh3aGVyZSBfX3RyYWNlYmFja2hp
ZGVfXyBpcyB0cnVlKQorCisgICAgICAgICAgICBpbiBjYXNlIG9mIHN0eWxlPT1uYXRpdmUsIHRi
ZmlsdGVyIGFuZCBzaG93bG9jYWxzIGlzIGlnbm9yZWQuCisgICAgICAgICIiIgorICAgICAgICBp
ZiBzdHlsZSA9PSAnbmF0aXZlJzoKKyAgICAgICAgICAgIHJldHVybiBSZXByRXhjZXB0aW9uSW5m
byhSZXByVHJhY2ViYWNrTmF0aXZlKAorICAgICAgICAgICAgICAgIHB5LnN0ZC50cmFjZWJhY2su
Zm9ybWF0X2V4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgc2VsZi50eXBlLAorICAgICAg
ICAgICAgICAgICAgICBzZWxmLnZhbHVlLAorICAgICAgICAgICAgICAgICAgICBzZWxmLnRyYWNl
YmFja1swXS5fcmF3ZW50cnksCisgICAgICAgICAgICAgICAgKSksIHNlbGYuX2dldHJlcHJjcmFz
aCgpKQorCisgICAgICAgIGZtdCA9IEZvcm1hdHRlZEV4Y2luZm8oc2hvd2xvY2Fscz1zaG93bG9j
YWxzLCBzdHlsZT1zdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYnNwYXRo
PWFic3BhdGgsIHRiZmlsdGVyPXRiZmlsdGVyLCBmdW5jYXJncz1mdW5jYXJncykKKyAgICAgICAg
cmV0dXJuIGZtdC5yZXByX2V4Y2luZm8oc2VsZikKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgor
ICAgICAgICBlbnRyeSA9IHNlbGYudHJhY2ViYWNrWy0xXQorICAgICAgICBsb2MgPSBSZXByRmls
ZUxvY2F0aW9uKGVudHJ5LnBhdGgsIGVudHJ5LmxpbmVubyArIDEsIHNlbGYuZXhjb25seSgpKQor
ICAgICAgICByZXR1cm4gc3RyKGxvYykKKworICAgIGRlZiBfX3VuaWNvZGVfXyhzZWxmKToKKyAg
ICAgICAgZW50cnkgPSBzZWxmLnRyYWNlYmFja1stMV0KKyAgICAgICAgbG9jID0gUmVwckZpbGVM
b2NhdGlvbihlbnRyeS5wYXRoLCBlbnRyeS5saW5lbm8gKyAxLCBzZWxmLmV4Y29ubHkoKSkKKyAg
ICAgICAgcmV0dXJuIHVuaWNvZGUobG9jKQorCisgICAgZGVmIG1hdGNoKHNlbGYsIHJlZ2V4cCk6
CisgICAgICAgICIiIgorICAgICAgICBNYXRjaCB0aGUgcmVndWxhciBleHByZXNzaW9uICdyZWdl
eHAnIG9uIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YKKyAgICAgICAgdGhlIGV4Y2VwdGlv
bi4gSWYgaXQgbWF0Y2hlcyB0aGVuIFRydWUgaXMgcmV0dXJuZWQgKHNvIHRoYXQgaXQgaXMKKyAg
ICAgICAgcG9zc2libGUgdG8gd3JpdGUgJ2Fzc2VydCBleGNpbmZvLm1hdGNoKCknKS4gSWYgaXQg
ZG9lc24ndCBtYXRjaCBhbgorICAgICAgICBBc3NlcnRpb25FcnJvciBpcyByYWlzZWQuCisgICAg
ICAgICIiIgorICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKKyAgICAgICAgaWYgbm90
IHJlLnNlYXJjaChyZWdleHAsIHN0cihzZWxmLnZhbHVlKSk6CisgICAgICAgICAgICBhc3NlcnQg
MCwgIlBhdHRlcm4gJ3swIXN9JyBub3QgZm91bmQgaW4gJ3sxIXN9JyIuZm9ybWF0KAorICAgICAg
ICAgICAgICAgIHJlZ2V4cCwgc2VsZi52YWx1ZSkKKyAgICAgICAgcmV0dXJuIFRydWUKKworCitj
bGFzcyBGb3JtYXR0ZWRFeGNpbmZvKG9iamVjdCk6CisgICAgIiIiIHByZXNlbnRpbmcgaW5mb3Jt
YXRpb24gYWJvdXQgZmFpbGluZyBGdW5jdGlvbnMgYW5kIEdlbmVyYXRvcnMuICIiIgorICAgICMg
Zm9yIHRyYWNlYmFjayBlbnRyaWVzCisgICAgZmxvd19tYXJrZXIgPSAiPiIKKyAgICBmYWlsX21h
cmtlciA9ICJFIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNob3dsb2NhbHM9RmFsc2UsIHN0
eWxlPSJsb25nIiwgYWJzcGF0aD1UcnVlLCB0YmZpbHRlcj1UcnVlLCBmdW5jYXJncz1GYWxzZSk6
CisgICAgICAgIHNlbGYuc2hvd2xvY2FscyA9IHNob3dsb2NhbHMKKyAgICAgICAgc2VsZi5zdHls
ZSA9IHN0eWxlCisgICAgICAgIHNlbGYudGJmaWx0ZXIgPSB0YmZpbHRlcgorICAgICAgICBzZWxm
LmZ1bmNhcmdzID0gZnVuY2FyZ3MKKyAgICAgICAgc2VsZi5hYnNwYXRoID0gYWJzcGF0aAorICAg
ICAgICBzZWxmLmFzdGNhY2hlID0ge30KKworICAgIGRlZiBfZ2V0aW5kZW50KHNlbGYsIHNvdXJj
ZSk6CisgICAgICAgICMgZmlndXJlIG91dCBpbmRlbnQgZm9yIGdpdmVuIHNvdXJjZQorICAgICAg
ICB0cnk6CisgICAgICAgICAgICBzID0gc3RyKHNvdXJjZS5nZXRzdGF0ZW1lbnQobGVuKHNvdXJj
ZSkgLSAxKSkKKyAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgorICAgICAgICAgICAg
cmFpc2UKKyAgICAgICAgZXhjZXB0OiAgIyBub3FhCisgICAgICAgICAgICB0cnk6CisgICAgICAg
ICAgICAgICAgcyA9IHN0cihzb3VyY2VbLTFdKQorICAgICAgICAgICAgZXhjZXB0IEtleWJvYXJk
SW50ZXJydXB0OgorICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICBleGNlcHQ6ICAj
IG5vcWEKKyAgICAgICAgICAgICAgICByZXR1cm4gMAorICAgICAgICByZXR1cm4gNCArIChsZW4o
cykgLSBsZW4ocy5sc3RyaXAoKSkpCisKKyAgICBkZWYgX2dldGVudHJ5c291cmNlKHNlbGYsIGVu
dHJ5KToKKyAgICAgICAgc291cmNlID0gZW50cnkuZ2V0c291cmNlKHNlbGYuYXN0Y2FjaGUpCisg
ICAgICAgIGlmIHNvdXJjZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNvdXJjZSA9IHNvdXJj
ZS5kZWluZGVudCgpCisgICAgICAgIHJldHVybiBzb3VyY2UKKworICAgIGRlZiBfc2FmZXJlcHIo
c2VsZiwgb2JqKToKKyAgICAgICAgcmV0dXJuIHB5LmlvLnNhZmVyZXByKG9iaikKKworICAgIGRl
ZiByZXByX2FyZ3Moc2VsZiwgZW50cnkpOgorICAgICAgICBpZiBzZWxmLmZ1bmNhcmdzOgorICAg
ICAgICAgICAgYXJncyA9IFtdCisgICAgICAgICAgICBmb3IgYXJnbmFtZSwgYXJndmFsdWUgaW4g
ZW50cnkuZnJhbWUuZ2V0YXJncyh2YXI9VHJ1ZSk6CisgICAgICAgICAgICAgICAgYXJncy5hcHBl
bmQoKGFyZ25hbWUsIHNlbGYuX3NhZmVyZXByKGFyZ3ZhbHVlKSkpCisgICAgICAgICAgICByZXR1
cm4gUmVwckZ1bmNBcmdzKGFyZ3MpCisKKyAgICBkZWYgZ2V0X3NvdXJjZShzZWxmLCBzb3VyY2Us
IGxpbmVfaW5kZXg9LTEsIGV4Y2luZm89Tm9uZSwgc2hvcnQ9RmFsc2UpOgorICAgICAgICAiIiIg
cmV0dXJuIGZvcm1hdHRlZCBhbmQgbWFya2VkIHVwIHNvdXJjZSBsaW5lcy4gIiIiCisgICAgICAg
IGltcG9ydCBfcHl0ZXN0Ll9jb2RlCisgICAgICAgIGxpbmVzID0gW10KKyAgICAgICAgaWYgc291
cmNlIGlzIE5vbmUgb3IgbGluZV9pbmRleCA+PSBsZW4oc291cmNlLmxpbmVzKToKKyAgICAgICAg
ICAgIHNvdXJjZSA9IF9weXRlc3QuX2NvZGUuU291cmNlKCI/Pz8iKQorICAgICAgICAgICAgbGlu
ZV9pbmRleCA9IDAKKyAgICAgICAgaWYgbGluZV9pbmRleCA8IDA6CisgICAgICAgICAgICBsaW5l
X2luZGV4ICs9IGxlbihzb3VyY2UpCisgICAgICAgIHNwYWNlX3ByZWZpeCA9ICIgICAgIgorICAg
ICAgICBpZiBzaG9ydDoKKyAgICAgICAgICAgIGxpbmVzLmFwcGVuZChzcGFjZV9wcmVmaXggKyBz
b3VyY2UubGluZXNbbGluZV9pbmRleF0uc3RyaXAoKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIGZvciBsaW5lIGluIHNvdXJjZS5saW5lc1s6bGluZV9pbmRleF06CisgICAgICAgICAgICAg
ICAgbGluZXMuYXBwZW5kKHNwYWNlX3ByZWZpeCArIGxpbmUpCisgICAgICAgICAgICBsaW5lcy5h
cHBlbmQoc2VsZi5mbG93X21hcmtlciArICIgICAiICsgc291cmNlLmxpbmVzW2xpbmVfaW5kZXhd
KQorICAgICAgICAgICAgZm9yIGxpbmUgaW4gc291cmNlLmxpbmVzW2xpbmVfaW5kZXggKyAxOl06
CisgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKHNwYWNlX3ByZWZpeCArIGxpbmUpCisgICAg
ICAgIGlmIGV4Y2luZm8gaXMgbm90IE5vbmU6CisgICAgICAgICAgICBpbmRlbnQgPSA0IGlmIHNo
b3J0IGVsc2Ugc2VsZi5fZ2V0aW5kZW50KHNvdXJjZSkKKyAgICAgICAgICAgIGxpbmVzLmV4dGVu
ZChzZWxmLmdldF9leGNvbmx5KGV4Y2luZm8sIGluZGVudD1pbmRlbnQsIG1hcmthbGw9VHJ1ZSkp
CisgICAgICAgIHJldHVybiBsaW5lcworCisgICAgZGVmIGdldF9leGNvbmx5KHNlbGYsIGV4Y2lu
Zm8sIGluZGVudD00LCBtYXJrYWxsPUZhbHNlKToKKyAgICAgICAgbGluZXMgPSBbXQorICAgICAg
ICBpbmRlbnQgPSAiICIgKiBpbmRlbnQKKyAgICAgICAgIyBnZXQgdGhlIHJlYWwgZXhjZXB0aW9u
IGluZm9ybWF0aW9uIG91dAorICAgICAgICBleGxpbmVzID0gZXhjaW5mby5leGNvbmx5KHRyeXNo
b3J0PVRydWUpLnNwbGl0KCdcbicpCisgICAgICAgIGZhaWxpbmRlbnQgPSBzZWxmLmZhaWxfbWFy
a2VyICsgaW5kZW50WzE6XQorICAgICAgICBmb3IgbGluZSBpbiBleGxpbmVzOgorICAgICAgICAg
ICAgbGluZXMuYXBwZW5kKGZhaWxpbmRlbnQgKyBsaW5lKQorICAgICAgICAgICAgaWYgbm90IG1h
cmthbGw6CisgICAgICAgICAgICAgICAgZmFpbGluZGVudCA9IGluZGVudAorICAgICAgICByZXR1
cm4gbGluZXMKKworICAgIGRlZiByZXByX2xvY2FscyhzZWxmLCBsb2NhbHMpOgorICAgICAgICBp
ZiBzZWxmLnNob3dsb2NhbHM6CisgICAgICAgICAgICBsaW5lcyA9IFtdCisgICAgICAgICAgICBr
ZXlzID0gW2xvYyBmb3IgbG9jIGluIGxvY2FscyBpZiBsb2NbMF0gIT0gIkAiXQorICAgICAgICAg
ICAga2V5cy5zb3J0KCkKKyAgICAgICAgICAgIGZvciBuYW1lIGluIGtleXM6CisgICAgICAgICAg
ICAgICAgdmFsdWUgPSBsb2NhbHNbbmFtZV0KKyAgICAgICAgICAgICAgICBpZiBuYW1lID09ICdf
X2J1aWx0aW5zX18nOgorICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoIl9fYnVpbHRp
bnNfXyA9IDxidWlsdGlucz4iKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgICAgICMgVGhpcyBmb3JtYXR0aW5nIGNvdWxkIGFsbCBiZSBoYW5kbGVkIGJ5IHRoZQorICAg
ICAgICAgICAgICAgICAgICAjIF9yZXByKCkgZnVuY3Rpb24sIHdoaWNoIGlzIG9ubHkgcmVwcmxp
Yi5SZXByIGluCisgICAgICAgICAgICAgICAgICAgICMgZGlzZ3Vpc2UsIHNvIGlzIHZlcnkgY29u
ZmlndXJhYmxlLgorICAgICAgICAgICAgICAgICAgICBzdHJfcmVwciA9IHNlbGYuX3NhZmVyZXBy
KHZhbHVlKQorICAgICAgICAgICAgICAgICAgICAjIGlmIGxlbihzdHJfcmVwcikgPCA3MCBvciBu
b3QgaXNpbnN0YW5jZSh2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAobGlzdCwgdHVwbGUsIGRpY3QpKToKKyAgICAgICAgICAgICAgICAgICAg
bGluZXMuYXBwZW5kKCIlLTEwcyA9ICVzIiAlIChuYW1lLCBzdHJfcmVwcikpCisgICAgICAgICAg
ICAgICAgICAgICMgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgIyAgICBzZWxmLl9saW5lKCIl
LTEwcyA9XFwiICUgKG5hbWUsKSkKKyAgICAgICAgICAgICAgICAgICAgIyAgICAjIFhYWAorICAg
ICAgICAgICAgICAgICAgICAjICAgIHB5LnN0ZC5wcHJpbnQucHByaW50KHZhbHVlLCBzdHJlYW09
c2VsZi5leGNpbmZvd3JpdGVyKQorICAgICAgICAgICAgcmV0dXJuIFJlcHJMb2NhbHMobGluZXMp
CisKKyAgICBkZWYgcmVwcl90cmFjZWJhY2tfZW50cnkoc2VsZiwgZW50cnksIGV4Y2luZm89Tm9u
ZSk6CisgICAgICAgIGltcG9ydCBfcHl0ZXN0Ll9jb2RlCisgICAgICAgIHNvdXJjZSA9IHNlbGYu
X2dldGVudHJ5c291cmNlKGVudHJ5KQorICAgICAgICBpZiBzb3VyY2UgaXMgTm9uZToKKyAgICAg
ICAgICAgIHNvdXJjZSA9IF9weXRlc3QuX2NvZGUuU291cmNlKCI/Pz8iKQorICAgICAgICAgICAg
bGluZV9pbmRleCA9IDAKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgZW50cnkuZ2V0Zmly
c3RsaW5lc291cmNlKCkgY2FuIGJlIC0xLCBzaG91bGQgYmUgMCBvbiBqeXRob24KKyAgICAgICAg
ICAgIGxpbmVfaW5kZXggPSBlbnRyeS5saW5lbm8gLSBtYXgoZW50cnkuZ2V0Zmlyc3RsaW5lc291
cmNlKCksIDApCisKKyAgICAgICAgbGluZXMgPSBbXQorICAgICAgICBzdHlsZSA9IGVudHJ5Ll9y
ZXByX3N0eWxlCisgICAgICAgIGlmIHN0eWxlIGlzIE5vbmU6CisgICAgICAgICAgICBzdHlsZSA9
IHNlbGYuc3R5bGUKKyAgICAgICAgaWYgc3R5bGUgaW4gKCJzaG9ydCIsICJsb25nIik6CisgICAg
ICAgICAgICBzaG9ydCA9IHN0eWxlID09ICJzaG9ydCIKKyAgICAgICAgICAgIHJlcHJhcmdzID0g
c2VsZi5yZXByX2FyZ3MoZW50cnkpIGlmIG5vdCBzaG9ydCBlbHNlIE5vbmUKKyAgICAgICAgICAg
IHMgPSBzZWxmLmdldF9zb3VyY2Uoc291cmNlLCBsaW5lX2luZGV4LCBleGNpbmZvLCBzaG9ydD1z
aG9ydCkKKyAgICAgICAgICAgIGxpbmVzLmV4dGVuZChzKQorICAgICAgICAgICAgaWYgc2hvcnQ6
CisgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICJpbiAlcyIgJSAoZW50cnkubmFtZSkKKyAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbWVzc2FnZSA9IGV4Y2luZm8gYW5kIGV4Y2lu
Zm8udHlwZW5hbWUgb3IgIiIKKyAgICAgICAgICAgIHBhdGggPSBzZWxmLl9tYWtlcGF0aChlbnRy
eS5wYXRoKQorICAgICAgICAgICAgZmlsZWxvY3JlcHIgPSBSZXByRmlsZUxvY2F0aW9uKHBhdGgs
IGVudHJ5LmxpbmVubyArIDEsIG1lc3NhZ2UpCisgICAgICAgICAgICBsb2NhbHNyZXByID0gTm9u
ZQorICAgICAgICAgICAgaWYgbm90IHNob3J0OgorICAgICAgICAgICAgICAgIGxvY2Fsc3JlcHIg
PSBzZWxmLnJlcHJfbG9jYWxzKGVudHJ5LmxvY2FscykKKyAgICAgICAgICAgIHJldHVybiBSZXBy
RW50cnkobGluZXMsIHJlcHJhcmdzLCBsb2NhbHNyZXByLCBmaWxlbG9jcmVwciwgc3R5bGUpCisg
ICAgICAgIGlmIGV4Y2luZm86CisgICAgICAgICAgICBsaW5lcy5leHRlbmQoc2VsZi5nZXRfZXhj
b25seShleGNpbmZvLCBpbmRlbnQ9NCkpCisgICAgICAgIHJldHVybiBSZXByRW50cnkobGluZXMs
IE5vbmUsIE5vbmUsIE5vbmUsIHN0eWxlKQorCisgICAgZGVmIF9tYWtlcGF0aChzZWxmLCBwYXRo
KToKKyAgICAgICAgaWYgbm90IHNlbGYuYWJzcGF0aDoKKyAgICAgICAgICAgIHRyeToKKyAgICAg
ICAgICAgICAgICBucCA9IHB5LnBhdGgubG9jYWwoKS5iZXN0cmVscGF0aChwYXRoKQorICAgICAg
ICAgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAgICAgICAgICAgcmV0dXJuIHBhdGgKKyAgICAg
ICAgICAgIGlmIGxlbihucCkgPCBsZW4oc3RyKHBhdGgpKToKKyAgICAgICAgICAgICAgICBwYXRo
ID0gbnAKKyAgICAgICAgcmV0dXJuIHBhdGgKKworICAgIGRlZiByZXByX3RyYWNlYmFjayhzZWxm
LCBleGNpbmZvKToKKyAgICAgICAgdHJhY2ViYWNrID0gZXhjaW5mby50cmFjZWJhY2sKKyAgICAg
ICAgaWYgc2VsZi50YmZpbHRlcjoKKyAgICAgICAgICAgIHRyYWNlYmFjayA9IHRyYWNlYmFjay5m
aWx0ZXIoKQorCisgICAgICAgIGlmIGlzX3JlY3Vyc2lvbl9lcnJvcihleGNpbmZvKToKKyAgICAg
ICAgICAgIHRyYWNlYmFjaywgZXh0cmFsaW5lID0gc2VsZi5fdHJ1bmNhdGVfcmVjdXJzaXZlX3Ry
YWNlYmFjayh0cmFjZWJhY2spCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBleHRyYWxpbmUg
PSBOb25lCisKKyAgICAgICAgbGFzdCA9IHRyYWNlYmFja1stMV0KKyAgICAgICAgZW50cmllcyA9
IFtdCisgICAgICAgIGZvciBpbmRleCwgZW50cnkgaW4gZW51bWVyYXRlKHRyYWNlYmFjayk6Cisg
ICAgICAgICAgICBlaW5mbyA9IChsYXN0ID09IGVudHJ5KSBhbmQgZXhjaW5mbyBvciBOb25lCisg
ICAgICAgICAgICByZXByZW50cnkgPSBzZWxmLnJlcHJfdHJhY2ViYWNrX2VudHJ5KGVudHJ5LCBl
aW5mbykKKyAgICAgICAgICAgIGVudHJpZXMuYXBwZW5kKHJlcHJlbnRyeSkKKyAgICAgICAgcmV0
dXJuIFJlcHJUcmFjZWJhY2soZW50cmllcywgZXh0cmFsaW5lLCBzdHlsZT1zZWxmLnN0eWxlKQor
CisgICAgZGVmIF90cnVuY2F0ZV9yZWN1cnNpdmVfdHJhY2ViYWNrKHNlbGYsIHRyYWNlYmFjayk6
CisgICAgICAgICIiIgorICAgICAgICBUcnVuY2F0ZSB0aGUgZ2l2ZW4gcmVjdXJzaXZlIHRyYWNl
YmFjayB0cnlpbmcgdG8gZmluZCB0aGUgc3RhcnRpbmcgcG9pbnQKKyAgICAgICAgb2YgdGhlIHJl
Y3Vyc2lvbi4KKworICAgICAgICBUaGUgZGV0ZWN0aW9uIGlzIGRvbmUgYnkgZ29pbmcgdGhyb3Vn
aCBlYWNoIHRyYWNlYmFjayBlbnRyeSBhbmQgZmluZGluZyB0aGUKKyAgICAgICAgcG9pbnQgaW4g
d2hpY2ggdGhlIGxvY2FscyBvZiB0aGUgZnJhbWUgYXJlIGVxdWFsIHRvIHRoZSBsb2NhbHMgb2Yg
YSBwcmV2aW91cyBmcmFtZSAoc2VlIGBgcmVjdXJzaW9uaW5kZXgoKWBgLgorCisgICAgICAgIEhh
bmRsZSB0aGUgc2l0dWF0aW9uIHdoZXJlIHRoZSByZWN1cnNpb24gcHJvY2VzcyBtaWdodCByYWlz
ZSBhbiBleGNlcHRpb24gKGZvciBleGFtcGxlCisgICAgICAgIGNvbXBhcmluZyBudW1weSBhcnJh
eXMgdXNpbmcgZXF1YWxpdHkgcmFpc2VzIGEgVHlwZUVycm9yKSwgaW4gd2hpY2ggY2FzZSB3ZSBk
byBvdXIgYmVzdCB0bworICAgICAgICB3YXJuIHRoZSB1c2VyIG9mIHRoZSBlcnJvciBhbmQgc2hv
dyBhIGxpbWl0ZWQgdHJhY2ViYWNrLgorICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgcmVjdXJzaW9uaW5kZXggPSB0cmFjZWJhY2sucmVjdXJzaW9uaW5kZXgoKQorICAgICAg
ICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBtYXhfZnJhbWVzID0gMTAKKyAg
ICAgICAgICAgIGV4dHJhbGluZSA9ICgKKyAgICAgICAgICAgICAgICAnISEhIFJlY3Vyc2lvbiBl
cnJvciBkZXRlY3RlZCwgYnV0IGFuIGVycm9yIG9jY3VycmVkIGxvY2F0aW5nIHRoZSBvcmlnaW4g
b2YgcmVjdXJzaW9uLlxuJworICAgICAgICAgICAgICAgICcgIFRoZSBmb2xsb3dpbmcgZXhjZXB0
aW9uIGhhcHBlbmVkIHdoZW4gY29tcGFyaW5nIGxvY2FscyBpbiB0aGUgc3RhY2sgZnJhbWU6XG4n
CisgICAgICAgICAgICAgICAgJyAgICB7ZXhjX3R5cGV9OiB7ZXhjX21zZ31cbicKKyAgICAgICAg
ICAgICAgICAnICBEaXNwbGF5aW5nIGZpcnN0IGFuZCBsYXN0IHttYXhfZnJhbWVzfSBzdGFjayBm
cmFtZXMgb3V0IG9mIHt0b3RhbH0uJworICAgICAgICAgICAgKS5mb3JtYXQoZXhjX3R5cGU9dHlw
ZShlKS5fX25hbWVfXywgZXhjX21zZz1zYWZlX3N0cihlKSwgbWF4X2ZyYW1lcz1tYXhfZnJhbWVz
LCB0b3RhbD1sZW4odHJhY2ViYWNrKSkKKyAgICAgICAgICAgIHRyYWNlYmFjayA9IHRyYWNlYmFj
a1s6bWF4X2ZyYW1lc10gKyB0cmFjZWJhY2tbLW1heF9mcmFtZXM6XQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgaWYgcmVjdXJzaW9uaW5kZXggaXMgbm90IE5vbmU6CisgICAgICAgICAgICAg
ICAgZXh0cmFsaW5lID0gIiEhISBSZWN1cnNpb24gZGV0ZWN0ZWQgKHNhbWUgbG9jYWxzICYgcG9z
aXRpb24pIgorICAgICAgICAgICAgICAgIHRyYWNlYmFjayA9IHRyYWNlYmFja1s6cmVjdXJzaW9u
aW5kZXggKyAxXQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBleHRyYWxpbmUg
PSBOb25lCisKKyAgICAgICAgcmV0dXJuIHRyYWNlYmFjaywgZXh0cmFsaW5lCisKKyAgICBkZWYg
cmVwcl9leGNpbmZvKHNlbGYsIGV4Y2luZm8pOgorICAgICAgICBpZiBfUFkyOgorICAgICAgICAg
ICAgcmVwcnRyYWNlYmFjayA9IHNlbGYucmVwcl90cmFjZWJhY2soZXhjaW5mbykKKyAgICAgICAg
ICAgIHJlcHJjcmFzaCA9IGV4Y2luZm8uX2dldHJlcHJjcmFzaCgpCisKKyAgICAgICAgICAgIHJl
dHVybiBSZXByRXhjZXB0aW9uSW5mbyhyZXBydHJhY2ViYWNrLCByZXByY3Jhc2gpCisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICByZXByX2NoYWluID0gW10KKyAgICAgICAgICAgIGUgPSBleGNp
bmZvLnZhbHVlCisgICAgICAgICAgICBkZXNjciA9IE5vbmUKKyAgICAgICAgICAgIHdoaWxlIGUg
aXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgaWYgZXhjaW5mbzoKKyAgICAgICAgICAgICAg
ICAgICAgcmVwcnRyYWNlYmFjayA9IHNlbGYucmVwcl90cmFjZWJhY2soZXhjaW5mbykKKyAgICAg
ICAgICAgICAgICAgICAgcmVwcmNyYXNoID0gZXhjaW5mby5fZ2V0cmVwcmNyYXNoKCkKKyAgICAg
ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAjIGZhbGxiYWNrIHRvIG5hdGl2
ZSByZXByIGlmIHRoZSBleGNlcHRpb24gZG9lc24ndCBoYXZlIGEgdHJhY2ViYWNrOgorICAgICAg
ICAgICAgICAgICAgICAjIEV4Y2VwdGlvbkluZm8gb2JqZWN0cyByZXF1aXJlIGEgZnVsbCB0cmFj
ZWJhY2sgdG8gd29yaworICAgICAgICAgICAgICAgICAgICByZXBydHJhY2ViYWNrID0gUmVwclRy
YWNlYmFja05hdGl2ZShweS5zdGQudHJhY2ViYWNrLmZvcm1hdF9leGNlcHRpb24odHlwZShlKSwg
ZSwgTm9uZSkpCisgICAgICAgICAgICAgICAgICAgIHJlcHJjcmFzaCA9IE5vbmUKKworICAgICAg
ICAgICAgICAgIHJlcHJfY2hhaW4gKz0gWyhyZXBydHJhY2ViYWNrLCByZXByY3Jhc2gsIGRlc2Ny
KV0KKyAgICAgICAgICAgICAgICBpZiBlLl9fY2F1c2VfXyBpcyBub3QgTm9uZToKKyAgICAgICAg
ICAgICAgICAgICAgZSA9IGUuX19jYXVzZV9fCisgICAgICAgICAgICAgICAgICAgIGV4Y2luZm8g
PSBFeGNlcHRpb25JbmZvKCh0eXBlKGUpLCBlLCBlLl9fdHJhY2ViYWNrX18pKSBpZiBlLl9fdHJh
Y2ViYWNrX18gZWxzZSBOb25lCisgICAgICAgICAgICAgICAgICAgIGRlc2NyID0gJ1RoZSBhYm92
ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZvbGxvd2luZyBleGNlcHRp
b246JworICAgICAgICAgICAgICAgIGVsaWYgKGUuX19jb250ZXh0X18gaXMgbm90IE5vbmUgYW5k
IG5vdCBlLl9fc3VwcHJlc3NfY29udGV4dF9fKToKKyAgICAgICAgICAgICAgICAgICAgZSA9IGUu
X19jb250ZXh0X18KKyAgICAgICAgICAgICAgICAgICAgZXhjaW5mbyA9IEV4Y2VwdGlvbkluZm8o
KHR5cGUoZSksIGUsIGUuX190cmFjZWJhY2tfXykpIGlmIGUuX190cmFjZWJhY2tfXyBlbHNlIE5v
bmUKKyAgICAgICAgICAgICAgICAgICAgZGVzY3IgPSAnRHVyaW5nIGhhbmRsaW5nIG9mIHRoZSBh
Ym92ZSBleGNlcHRpb24sIGFub3RoZXIgZXhjZXB0aW9uIG9jY3VycmVkOicKKyAgICAgICAgICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBlID0gTm9uZQorICAgICAgICAgICAgcmVw
cl9jaGFpbi5yZXZlcnNlKCkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb25DaGFpblJlcHIo
cmVwcl9jaGFpbikKKworCitjbGFzcyBUZXJtaW5hbFJlcHIob2JqZWN0KToKKyAgICBkZWYgX19z
dHJfXyhzZWxmKToKKyAgICAgICAgcyA9IHNlbGYuX191bmljb2RlX18oKQorICAgICAgICBpZiBf
UFkyOgorICAgICAgICAgICAgcyA9IHMuZW5jb2RlKCd1dGYtOCcpCisgICAgICAgIHJldHVybiBz
CisKKyAgICBkZWYgX191bmljb2RlX18oc2VsZik6CisgICAgICAgICMgRllJIHRoaXMgaXMgY2Fs
bGVkIGZyb20gcHl0ZXN0LXhkaXN0J3Mgc2VyaWFsaXphdGlvbiBvZiBleGNlcHRpb24KKyAgICAg
ICAgIyBpbmZvcm1hdGlvbi4KKyAgICAgICAgaW8gPSBweS5pby5UZXh0SU8oKQorICAgICAgICB0
dyA9IHB5LmlvLlRlcm1pbmFsV3JpdGVyKGZpbGU9aW8pCisgICAgICAgIHNlbGYudG90ZXJtaW5h
bCh0dykKKyAgICAgICAgcmV0dXJuIGlvLmdldHZhbHVlKCkuc3RyaXAoKQorCisgICAgZGVmIF9f
cmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gIjwlcyBpbnN0YW5jZSBhdCAlMHg+IiAlIChz
ZWxmLl9fY2xhc3NfXywgaWQoc2VsZikpCisKKworY2xhc3MgRXhjZXB0aW9uUmVwcihUZXJtaW5h
bFJlcHIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5zZWN0aW9ucyA9
IFtdCisKKyAgICBkZWYgYWRkc2VjdGlvbihzZWxmLCBuYW1lLCBjb250ZW50LCBzZXA9Ii0iKToK
KyAgICAgICAgc2VsZi5zZWN0aW9ucy5hcHBlbmQoKG5hbWUsIGNvbnRlbnQsIHNlcCkpCisKKyAg
ICBkZWYgdG90ZXJtaW5hbChzZWxmLCB0dyk6CisgICAgICAgIGZvciBuYW1lLCBjb250ZW50LCBz
ZXAgaW4gc2VsZi5zZWN0aW9uczoKKyAgICAgICAgICAgIHR3LnNlcChzZXAsIG5hbWUpCisgICAg
ICAgICAgICB0dy5saW5lKGNvbnRlbnQpCisKKworY2xhc3MgRXhjZXB0aW9uQ2hhaW5SZXByKEV4
Y2VwdGlvblJlcHIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjaGFpbik6CisgICAgICAgIHN1
cGVyKEV4Y2VwdGlvbkNoYWluUmVwciwgc2VsZikuX19pbml0X18oKQorICAgICAgICBzZWxmLmNo
YWluID0gY2hhaW4KKyAgICAgICAgIyByZXByY3Jhc2ggYW5kIHJlcHJ0cmFjZWJhY2sgb2YgdGhl
IG91dGVybW9zdCAodGhlIG5ld2VzdCkgZXhjZXB0aW9uCisgICAgICAgICMgaW4gdGhlIGNoYWlu
CisgICAgICAgIHNlbGYucmVwcnRyYWNlYmFjayA9IGNoYWluWy0xXVswXQorICAgICAgICBzZWxm
LnJlcHJjcmFzaCA9IGNoYWluWy0xXVsxXQorCisgICAgZGVmIHRvdGVybWluYWwoc2VsZiwgdHcp
OgorICAgICAgICBmb3IgZWxlbWVudCBpbiBzZWxmLmNoYWluOgorICAgICAgICAgICAgZWxlbWVu
dFswXS50b3Rlcm1pbmFsKHR3KQorICAgICAgICAgICAgaWYgZWxlbWVudFsyXSBpcyBub3QgTm9u
ZToKKyAgICAgICAgICAgICAgICB0dy5saW5lKCIiKQorICAgICAgICAgICAgICAgIHR3LmxpbmUo
ZWxlbWVudFsyXSwgeWVsbG93PVRydWUpCisgICAgICAgIHN1cGVyKEV4Y2VwdGlvbkNoYWluUmVw
ciwgc2VsZikudG90ZXJtaW5hbCh0dykKKworCitjbGFzcyBSZXByRXhjZXB0aW9uSW5mbyhFeGNl
cHRpb25SZXByKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcmVwcnRyYWNlYmFjaywgcmVwcmNy
YXNoKToKKyAgICAgICAgc3VwZXIoUmVwckV4Y2VwdGlvbkluZm8sIHNlbGYpLl9faW5pdF9fKCkK
KyAgICAgICAgc2VsZi5yZXBydHJhY2ViYWNrID0gcmVwcnRyYWNlYmFjaworICAgICAgICBzZWxm
LnJlcHJjcmFzaCA9IHJlcHJjcmFzaAorCisgICAgZGVmIHRvdGVybWluYWwoc2VsZiwgdHcpOgor
ICAgICAgICBzZWxmLnJlcHJ0cmFjZWJhY2sudG90ZXJtaW5hbCh0dykKKyAgICAgICAgc3VwZXIo
UmVwckV4Y2VwdGlvbkluZm8sIHNlbGYpLnRvdGVybWluYWwodHcpCisKKworY2xhc3MgUmVwclRy
YWNlYmFjayhUZXJtaW5hbFJlcHIpOgorICAgIGVudHJ5c2VwID0gIl8gIgorCisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHJlcHJlbnRyaWVzLCBleHRyYWxpbmUsIHN0eWxlKToKKyAgICAgICAgc2Vs
Zi5yZXByZW50cmllcyA9IHJlcHJlbnRyaWVzCisgICAgICAgIHNlbGYuZXh0cmFsaW5lID0gZXh0
cmFsaW5lCisgICAgICAgIHNlbGYuc3R5bGUgPSBzdHlsZQorCisgICAgZGVmIHRvdGVybWluYWwo
c2VsZiwgdHcpOgorICAgICAgICAjIHRoZSBlbnRyaWVzIG1pZ2h0IGhhdmUgZGlmZmVyZW50IHN0
eWxlcworICAgICAgICBmb3IgaSwgZW50cnkgaW4gZW51bWVyYXRlKHNlbGYucmVwcmVudHJpZXMp
OgorICAgICAgICAgICAgaWYgZW50cnkuc3R5bGUgPT0gImxvbmciOgorICAgICAgICAgICAgICAg
IHR3LmxpbmUoIiIpCisgICAgICAgICAgICBlbnRyeS50b3Rlcm1pbmFsKHR3KQorICAgICAgICAg
ICAgaWYgaSA8IGxlbihzZWxmLnJlcHJlbnRyaWVzKSAtIDE6CisgICAgICAgICAgICAgICAgbmV4
dF9lbnRyeSA9IHNlbGYucmVwcmVudHJpZXNbaSArIDFdCisgICAgICAgICAgICAgICAgaWYgZW50
cnkuc3R5bGUgPT0gImxvbmciIG9yIFwKKyAgICAgICAgICAgICAgICAgICBlbnRyeS5zdHlsZSA9
PSAic2hvcnQiIGFuZCBuZXh0X2VudHJ5LnN0eWxlID09ICJsb25nIjoKKyAgICAgICAgICAgICAg
ICAgICAgdHcuc2VwKHNlbGYuZW50cnlzZXApCisKKyAgICAgICAgaWYgc2VsZi5leHRyYWxpbmU6
CisgICAgICAgICAgICB0dy5saW5lKHNlbGYuZXh0cmFsaW5lKQorCisKK2NsYXNzIFJlcHJUcmFj
ZWJhY2tOYXRpdmUoUmVwclRyYWNlYmFjayk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRibGlu
ZXMpOgorICAgICAgICBzZWxmLnN0eWxlID0gIm5hdGl2ZSIKKyAgICAgICAgc2VsZi5yZXByZW50
cmllcyA9IFtSZXByRW50cnlOYXRpdmUodGJsaW5lcyldCisgICAgICAgIHNlbGYuZXh0cmFsaW5l
ID0gTm9uZQorCisKK2NsYXNzIFJlcHJFbnRyeU5hdGl2ZShUZXJtaW5hbFJlcHIpOgorICAgIHN0
eWxlID0gIm5hdGl2ZSIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0YmxpbmVzKToKKyAgICAg
ICAgc2VsZi5saW5lcyA9IHRibGluZXMKKworICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIHR3KToK
KyAgICAgICAgdHcud3JpdGUoIiIuam9pbihzZWxmLmxpbmVzKSkKKworCitjbGFzcyBSZXByRW50
cnkoVGVybWluYWxSZXByKToKKyAgICBsb2NhbHNzZXAgPSAiXyAiCisKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgbGluZXMsIHJlcHJmdW5jYXJncywgcmVwcmxvY2FscywgZmlsZWxvY3JlcHIsIHN0
eWxlKToKKyAgICAgICAgc2VsZi5saW5lcyA9IGxpbmVzCisgICAgICAgIHNlbGYucmVwcmZ1bmNh
cmdzID0gcmVwcmZ1bmNhcmdzCisgICAgICAgIHNlbGYucmVwcmxvY2FscyA9IHJlcHJsb2NhbHMK
KyAgICAgICAgc2VsZi5yZXByZmlsZWxvYyA9IGZpbGVsb2NyZXByCisgICAgICAgIHNlbGYuc3R5
bGUgPSBzdHlsZQorCisgICAgZGVmIHRvdGVybWluYWwoc2VsZiwgdHcpOgorICAgICAgICBpZiBz
ZWxmLnN0eWxlID09ICJzaG9ydCI6CisgICAgICAgICAgICBzZWxmLnJlcHJmaWxlbG9jLnRvdGVy
bWluYWwodHcpCisgICAgICAgICAgICBmb3IgbGluZSBpbiBzZWxmLmxpbmVzOgorICAgICAgICAg
ICAgICAgIHJlZCA9IGxpbmUuc3RhcnRzd2l0aCgiRSAgICIpCisgICAgICAgICAgICAgICAgdHcu
bGluZShsaW5lLCBib2xkPVRydWUsIHJlZD1yZWQpCisgICAgICAgICAgICAjIHR3LmxpbmUoIiIp
CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgaWYgc2VsZi5yZXByZnVuY2FyZ3M6CisgICAg
ICAgICAgICBzZWxmLnJlcHJmdW5jYXJncy50b3Rlcm1pbmFsKHR3KQorICAgICAgICBmb3IgbGlu
ZSBpbiBzZWxmLmxpbmVzOgorICAgICAgICAgICAgcmVkID0gbGluZS5zdGFydHN3aXRoKCJFICAg
IikKKyAgICAgICAgICAgIHR3LmxpbmUobGluZSwgYm9sZD1UcnVlLCByZWQ9cmVkKQorICAgICAg
ICBpZiBzZWxmLnJlcHJsb2NhbHM6CisgICAgICAgICAgICAjIHR3LnNlcChzZWxmLmxvY2Fsc3Nl
cCwgIkxvY2FscyIpCisgICAgICAgICAgICB0dy5saW5lKCIiKQorICAgICAgICAgICAgc2VsZi5y
ZXBybG9jYWxzLnRvdGVybWluYWwodHcpCisgICAgICAgIGlmIHNlbGYucmVwcmZpbGVsb2M6Cisg
ICAgICAgICAgICBpZiBzZWxmLmxpbmVzOgorICAgICAgICAgICAgICAgIHR3LmxpbmUoIiIpCisg
ICAgICAgICAgICBzZWxmLnJlcHJmaWxlbG9jLnRvdGVybWluYWwodHcpCisKKyAgICBkZWYgX19z
dHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICIlc1xuJXNcbiVzIiAlICgiXG4iLmpvaW4oc2Vs
Zi5saW5lcyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZXBybG9jYWxz
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmVwcmZpbGVsb2MpCisKKwor
Y2xhc3MgUmVwckZpbGVMb2NhdGlvbihUZXJtaW5hbFJlcHIpOgorICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBwYXRoLCBsaW5lbm8sIG1lc3NhZ2UpOgorICAgICAgICBzZWxmLnBhdGggPSBzdHIocGF0
aCkKKyAgICAgICAgc2VsZi5saW5lbm8gPSBsaW5lbm8KKyAgICAgICAgc2VsZi5tZXNzYWdlID0g
bWVzc2FnZQorCisgICAgZGVmIHRvdGVybWluYWwoc2VsZiwgdHcpOgorICAgICAgICAjIGZpbGVu
YW1lIGFuZCBsaW5lbm8gb3V0cHV0IGZvciBlYWNoIGVudHJ5LAorICAgICAgICAjIHVzaW5nIGFu
IG91dHB1dCBmb3JtYXQgdGhhdCBtb3N0IGVkaXRvcnMgdW50ZXJzdGFuZAorICAgICAgICBtc2cg
PSBzZWxmLm1lc3NhZ2UKKyAgICAgICAgaSA9IG1zZy5maW5kKCJcbiIpCisgICAgICAgIGlmIGkg
IT0gLTE6CisgICAgICAgICAgICBtc2cgPSBtc2dbOmldCisgICAgICAgIHR3LndyaXRlKHNlbGYu
cGF0aCwgYm9sZD1UcnVlLCByZWQ9VHJ1ZSkKKyAgICAgICAgdHcubGluZSgiOiVzOiAlcyIgJSAo
c2VsZi5saW5lbm8sIG1zZykpCisKKworY2xhc3MgUmVwckxvY2FscyhUZXJtaW5hbFJlcHIpOgor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsaW5lcyk6CisgICAgICAgIHNlbGYubGluZXMgPSBsaW5l
cworCisgICAgZGVmIHRvdGVybWluYWwoc2VsZiwgdHcpOgorICAgICAgICBmb3IgbGluZSBpbiBz
ZWxmLmxpbmVzOgorICAgICAgICAgICAgdHcubGluZShsaW5lKQorCisKK2NsYXNzIFJlcHJGdW5j
QXJncyhUZXJtaW5hbFJlcHIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcmdzKToKKyAgICAg
ICAgc2VsZi5hcmdzID0gYXJncworCisgICAgZGVmIHRvdGVybWluYWwoc2VsZiwgdHcpOgorICAg
ICAgICBpZiBzZWxmLmFyZ3M6CisgICAgICAgICAgICBsaW5lc29mYXIgPSAiIgorICAgICAgICAg
ICAgZm9yIG5hbWUsIHZhbHVlIGluIHNlbGYuYXJnczoKKyAgICAgICAgICAgICAgICBucyA9ICIl
cyA9ICVzIiAlIChzYWZlX3N0cihuYW1lKSwgc2FmZV9zdHIodmFsdWUpKQorICAgICAgICAgICAg
ICAgIGlmIGxlbihucykgKyBsZW4obGluZXNvZmFyKSArIDIgPiB0dy5mdWxsd2lkdGg6CisgICAg
ICAgICAgICAgICAgICAgIGlmIGxpbmVzb2ZhcjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHR3
LmxpbmUobGluZXNvZmFyKQorICAgICAgICAgICAgICAgICAgICBsaW5lc29mYXIgPSBucworICAg
ICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGlmIGxpbmVzb2ZhcjoKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGxpbmVzb2ZhciArPSAiLCAiICsgbnMKKyAgICAgICAgICAg
ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVzb2ZhciA9IG5zCisg
ICAgICAgICAgICBpZiBsaW5lc29mYXI6CisgICAgICAgICAgICAgICAgdHcubGluZShsaW5lc29m
YXIpCisgICAgICAgICAgICB0dy5saW5lKCIiKQorCisKK2RlZiBnZXRyYXdjb2RlKG9iaiwgdHJ5
Y2FsbD1UcnVlKToKKyAgICAiIiIgcmV0dXJuIGNvZGUgb2JqZWN0IGZvciBnaXZlbiBmdW5jdGlv
bi4gIiIiCisgICAgdHJ5OgorICAgICAgICByZXR1cm4gb2JqLl9fY29kZV9fCisgICAgZXhjZXB0
IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICBvYmogPSBnZXRhdHRyKG9iaiwgJ2ltX2Z1bmMnLCBv
YmopCisgICAgICAgIG9iaiA9IGdldGF0dHIob2JqLCAnZnVuY19jb2RlJywgb2JqKQorICAgICAg
ICBvYmogPSBnZXRhdHRyKG9iaiwgJ2ZfY29kZScsIG9iaikKKyAgICAgICAgb2JqID0gZ2V0YXR0
cihvYmosICdfX2NvZGVfXycsIG9iaikKKyAgICAgICAgaWYgdHJ5Y2FsbCBhbmQgbm90IGhhc2F0
dHIob2JqLCAnY29fZmlyc3RsaW5lbm8nKToKKyAgICAgICAgICAgIGlmIGhhc2F0dHIob2JqLCAn
X19jYWxsX18nKSBhbmQgbm90IHB5LnN0ZC5pbnNwZWN0LmlzY2xhc3Mob2JqKToKKyAgICAgICAg
ICAgICAgICB4ID0gZ2V0cmF3Y29kZShvYmouX19jYWxsX18sIHRyeWNhbGw9RmFsc2UpCisgICAg
ICAgICAgICAgICAgaWYgaGFzYXR0cih4LCAnY29fZmlyc3RsaW5lbm8nKToKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHgKKyAgICAgICAgcmV0dXJuIG9iagorCisKK2lmIFBZMzU6ICAjIFJl
Y3Vyc2lvbkVycm9yIGludHJvZHVjZWQgaW4gMy41CisgICAgZGVmIGlzX3JlY3Vyc2lvbl9lcnJv
cihleGNpbmZvKToKKyAgICAgICAgcmV0dXJuIGV4Y2luZm8uZXJyaXNpbnN0YW5jZShSZWN1cnNp
b25FcnJvcikgICMgbm9xYQorZWxzZToKKyAgICBkZWYgaXNfcmVjdXJzaW9uX2Vycm9yKGV4Y2lu
Zm8pOgorICAgICAgICBpZiBub3QgZXhjaW5mby5lcnJpc2luc3RhbmNlKFJ1bnRpbWVFcnJvcik6
CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0
dXJuICJtYXhpbXVtIHJlY3Vyc2lvbiBkZXB0aCBleGNlZWRlZCIgaW4gc3RyKGV4Y2luZm8udmFs
dWUpCisgICAgICAgIGV4Y2VwdCBVbmljb2RlRXJyb3I6CisgICAgICAgICAgICByZXR1cm4gRmFs
c2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUvc291cmNlLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvX3B5dGVzdC9fY29kZS9zb3VyY2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjYzOGM1OThiNzQ5
ZGIyODg2MWQyMDAwNmU3ZGZhOGY5MGU1NTRiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3QvX2NvZGUvc291cmNlLnB5CkBAIC0wLDAgKzEsNDE1IEBACitmcm9tIF9fZnV0
dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIGdlbmVyYXRvcnMsIHByaW50
X2Z1bmN0aW9uCisKK2Zyb20gYmlzZWN0IGltcG9ydCBiaXNlY3RfcmlnaHQKK2ltcG9ydCBzeXMK
K2ltcG9ydCBzaXgKK2ltcG9ydCBpbnNwZWN0CitpbXBvcnQgdG9rZW5pemUKK2ltcG9ydCBweQor
Y3B5X2NvbXBpbGUgPSBjb21waWxlCisKK3RyeToKKyAgICBpbXBvcnQgX2FzdAorICAgIGZyb20g
X2FzdCBpbXBvcnQgUHlDRl9PTkxZX0FTVCBhcyBfQVNUX0ZMQUcKK2V4Y2VwdCBJbXBvcnRFcnJv
cjoKKyAgICBfQVNUX0ZMQUcgPSAwCisgICAgX2FzdCA9IE5vbmUKKworCitjbGFzcyBTb3VyY2Uo
b2JqZWN0KToKKyAgICAiIiIgYSBpbW11dGFibGUgb2JqZWN0IGhvbGRpbmcgYSBzb3VyY2UgY29k
ZSBmcmFnbWVudCwKKyAgICAgICAgcG9zc2libHkgZGVpbmRlbnRpbmcgaXQuCisgICAgIiIiCisg
ICAgX2NvbXBpbGVjb3VudGVyID0gMAorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICpwYXJ0cywg
Kiprd2FyZ3MpOgorICAgICAgICBzZWxmLmxpbmVzID0gbGluZXMgPSBbXQorICAgICAgICBkZSA9
IGt3YXJncy5nZXQoJ2RlaW5kZW50JywgVHJ1ZSkKKyAgICAgICAgcnN0cmlwID0ga3dhcmdzLmdl
dCgncnN0cmlwJywgVHJ1ZSkKKyAgICAgICAgZm9yIHBhcnQgaW4gcGFydHM6CisgICAgICAgICAg
ICBpZiBub3QgcGFydDoKKyAgICAgICAgICAgICAgICBwYXJ0bGluZXMgPSBbXQorICAgICAgICAg
ICAgaWYgaXNpbnN0YW5jZShwYXJ0LCBTb3VyY2UpOgorICAgICAgICAgICAgICAgIHBhcnRsaW5l
cyA9IHBhcnQubGluZXMKKyAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShwYXJ0LCAodHVwbGUs
IGxpc3QpKToKKyAgICAgICAgICAgICAgICBwYXJ0bGluZXMgPSBbeC5yc3RyaXAoIlxuIikgZm9y
IHggaW4gcGFydF0KKyAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShwYXJ0LCBzaXguc3RyaW5n
X3R5cGVzKToKKyAgICAgICAgICAgICAgICBwYXJ0bGluZXMgPSBwYXJ0LnNwbGl0KCdcbicpCisg
ICAgICAgICAgICAgICAgaWYgcnN0cmlwOgorICAgICAgICAgICAgICAgICAgICB3aGlsZSBwYXJ0
bGluZXM6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBwYXJ0bGluZXNbLTFdLnN0cmlwKCk6
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHBhcnRsaW5lcy5wb3AoKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBw
YXJ0bGluZXMgPSBnZXRzb3VyY2UocGFydCwgZGVpbmRlbnQ9ZGUpLmxpbmVzCisgICAgICAgICAg
ICBpZiBkZToKKyAgICAgICAgICAgICAgICBwYXJ0bGluZXMgPSBkZWluZGVudChwYXJ0bGluZXMp
CisgICAgICAgICAgICBsaW5lcy5leHRlbmQocGFydGxpbmVzKQorCisgICAgZGVmIF9fZXFfXyhz
ZWxmLCBvdGhlcik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmxpbmVz
ID09IG90aGVyLmxpbmVzCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAg
ICAgIGlmIGlzaW5zdGFuY2Uob3RoZXIsIHN0cik6CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0
cihzZWxmKSA9PSBvdGhlcgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBfX2hhc2hf
XyA9IE5vbmUKKworICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBrZXkpOgorICAgICAgICBpZiBp
c2luc3RhbmNlKGtleSwgaW50KToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmxpbmVzW2tleV0K
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIGtleS5zdGVwIG5vdCBpbiAoTm9uZSwgMSk6
CisgICAgICAgICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcigiY2Fubm90IHNsaWNlIGEgU291cmNl
IHdpdGggYSBzdGVwIikKKyAgICAgICAgICAgIG5ld3NvdXJjZSA9IFNvdXJjZSgpCisgICAgICAg
ICAgICBuZXdzb3VyY2UubGluZXMgPSBzZWxmLmxpbmVzW2tleS5zdGFydDprZXkuc3RvcF0KKyAg
ICAgICAgICAgIHJldHVybiBuZXdzb3VyY2UKKworICAgIGRlZiBfX2xlbl9fKHNlbGYpOgorICAg
ICAgICByZXR1cm4gbGVuKHNlbGYubGluZXMpCisKKyAgICBkZWYgc3RyaXAoc2VsZik6CisgICAg
ICAgICIiIiByZXR1cm4gbmV3IHNvdXJjZSBvYmplY3Qgd2l0aCB0cmFpbGluZworICAgICAgICAg
ICAgYW5kIGxlYWRpbmcgYmxhbmsgbGluZXMgcmVtb3ZlZC4KKyAgICAgICAgIiIiCisgICAgICAg
IHN0YXJ0LCBlbmQgPSAwLCBsZW4oc2VsZikKKyAgICAgICAgd2hpbGUgc3RhcnQgPCBlbmQgYW5k
IG5vdCBzZWxmLmxpbmVzW3N0YXJ0XS5zdHJpcCgpOgorICAgICAgICAgICAgc3RhcnQgKz0gMQor
ICAgICAgICB3aGlsZSBlbmQgPiBzdGFydCBhbmQgbm90IHNlbGYubGluZXNbZW5kIC0gMV0uc3Ry
aXAoKToKKyAgICAgICAgICAgIGVuZCAtPSAxCisgICAgICAgIHNvdXJjZSA9IFNvdXJjZSgpCisg
ICAgICAgIHNvdXJjZS5saW5lc1s6XSA9IHNlbGYubGluZXNbc3RhcnQ6ZW5kXQorICAgICAgICBy
ZXR1cm4gc291cmNlCisKKyAgICBkZWYgcHV0YXJvdW5kKHNlbGYsIGJlZm9yZT0nJywgYWZ0ZXI9
JycsIGluZGVudD0nICcgKiA0KToKKyAgICAgICAgIiIiIHJldHVybiBhIGNvcHkgb2YgdGhlIHNv
dXJjZSBvYmplY3Qgd2l0aAorICAgICAgICAgICAgJ2JlZm9yZScgYW5kICdhZnRlcicgd3JhcHBl
ZCBhcm91bmQgaXQuCisgICAgICAgICIiIgorICAgICAgICBiZWZvcmUgPSBTb3VyY2UoYmVmb3Jl
KQorICAgICAgICBhZnRlciA9IFNvdXJjZShhZnRlcikKKyAgICAgICAgbmV3c291cmNlID0gU291
cmNlKCkKKyAgICAgICAgbGluZXMgPSBbKGluZGVudCArIGxpbmUpIGZvciBsaW5lIGluIHNlbGYu
bGluZXNdCisgICAgICAgIG5ld3NvdXJjZS5saW5lcyA9IGJlZm9yZS5saW5lcyArIGxpbmVzICsg
YWZ0ZXIubGluZXMKKyAgICAgICAgcmV0dXJuIG5ld3NvdXJjZQorCisgICAgZGVmIGluZGVudChz
ZWxmLCBpbmRlbnQ9JyAnICogNCk6CisgICAgICAgICIiIiByZXR1cm4gYSBjb3B5IG9mIHRoZSBz
b3VyY2Ugb2JqZWN0IHdpdGgKKyAgICAgICAgICAgIGFsbCBsaW5lcyBpbmRlbnRlZCBieSB0aGUg
Z2l2ZW4gaW5kZW50LXN0cmluZy4KKyAgICAgICAgIiIiCisgICAgICAgIG5ld3NvdXJjZSA9IFNv
dXJjZSgpCisgICAgICAgIG5ld3NvdXJjZS5saW5lcyA9IFsoaW5kZW50ICsgbGluZSkgZm9yIGxp
bmUgaW4gc2VsZi5saW5lc10KKyAgICAgICAgcmV0dXJuIG5ld3NvdXJjZQorCisgICAgZGVmIGdl
dHN0YXRlbWVudChzZWxmLCBsaW5lbm8sIGFzc2VydGlvbj1GYWxzZSk6CisgICAgICAgICIiIiBy
ZXR1cm4gU291cmNlIHN0YXRlbWVudCB3aGljaCBjb250YWlucyB0aGUKKyAgICAgICAgICAgIGdp
dmVuIGxpbmVudW1iZXIgKGNvdW50ZWQgZnJvbSAwKS4KKyAgICAgICAgIiIiCisgICAgICAgIHN0
YXJ0LCBlbmQgPSBzZWxmLmdldHN0YXRlbWVudHJhbmdlKGxpbmVubywgYXNzZXJ0aW9uKQorICAg
ICAgICByZXR1cm4gc2VsZltzdGFydDplbmRdCisKKyAgICBkZWYgZ2V0c3RhdGVtZW50cmFuZ2Uo
c2VsZiwgbGluZW5vLCBhc3NlcnRpb249RmFsc2UpOgorICAgICAgICAiIiIgcmV0dXJuIChzdGFy
dCwgZW5kKSB0dXBsZSB3aGljaCBzcGFucyB0aGUgbWluaW1hbAorICAgICAgICAgICAgc3RhdGVt
ZW50IHJlZ2lvbiB3aGljaCBjb250YWluaW5nIHRoZSBnaXZlbiBsaW5lbm8uCisgICAgICAgICIi
IgorICAgICAgICBpZiBub3QgKDAgPD0gbGluZW5vIDwgbGVuKHNlbGYpKToKKyAgICAgICAgICAg
IHJhaXNlIEluZGV4RXJyb3IoImxpbmVubyBvdXQgb2YgcmFuZ2UiKQorICAgICAgICBhc3QsIHN0
YXJ0LCBlbmQgPSBnZXRzdGF0ZW1lbnRyYW5nZV9hc3QobGluZW5vLCBzZWxmKQorICAgICAgICBy
ZXR1cm4gc3RhcnQsIGVuZAorCisgICAgZGVmIGRlaW5kZW50KHNlbGYsIG9mZnNldD1Ob25lKToK
KyAgICAgICAgIiIiIHJldHVybiBhIG5ldyBzb3VyY2Ugb2JqZWN0IGRlaW5kZW50ZWQgYnkgb2Zm
c2V0LgorICAgICAgICAgICAgSWYgb2Zmc2V0IGlzIE5vbmUgdGhlbiBndWVzcyBhbiBpbmRlbnRh
dGlvbiBvZmZzZXQgZnJvbQorICAgICAgICAgICAgdGhlIGZpcnN0IG5vbi1ibGFuayBsaW5lLiAg
U3Vic2VxdWVudCBsaW5lcyB3aGljaCBoYXZlIGEKKyAgICAgICAgICAgIGxvd2VyIGluZGVudGF0
aW9uIG9mZnNldCB3aWxsIGJlIGNvcGllZCB2ZXJiYXRpbSBhcworICAgICAgICAgICAgdGhleSBh
cmUgYXNzdW1lZCB0byBiZSBwYXJ0IG9mIG11bHRpbGluZXMuCisgICAgICAgICIiIgorICAgICAg
ICAjIFhYWCBtYXliZSB1c2UgdGhlIHRva2VuaXplciB0byBwcm9wZXJseSBoYW5kbGUgbXVsdGls
aW5lCisgICAgICAgICMgICAgIHN0cmluZ3MgZXRjLnBwPworICAgICAgICBuZXdzb3VyY2UgPSBT
b3VyY2UoKQorICAgICAgICBuZXdzb3VyY2UubGluZXNbOl0gPSBkZWluZGVudChzZWxmLmxpbmVz
LCBvZmZzZXQpCisgICAgICAgIHJldHVybiBuZXdzb3VyY2UKKworICAgIGRlZiBpc3BhcnNlYWJs
ZShzZWxmLCBkZWluZGVudD1UcnVlKToKKyAgICAgICAgIiIiIHJldHVybiBUcnVlIGlmIHNvdXJj
ZSBpcyBwYXJzZWFibGUsIGhldXJpc3RpY2FsbHkKKyAgICAgICAgICAgIGRlaW5kZW50aW5nIGl0
IGJ5IGRlZmF1bHQuCisgICAgICAgICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICBpbXBv
cnQgcGFyc2VyCisgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgICAgIGRlZiBz
eW50YXhfY2hlY2tlcih4KToKKyAgICAgICAgICAgICAgICByZXR1cm4gY29tcGlsZSh4LCAnYXNk
JywgJ2V4ZWMnKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc3ludGF4X2NoZWNrZXIgPSBw
YXJzZXIuc3VpdGUKKworICAgICAgICBpZiBkZWluZGVudDoKKyAgICAgICAgICAgIHNvdXJjZSA9
IHN0cihzZWxmLmRlaW5kZW50KCkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzb3VyY2Ug
PSBzdHIoc2VsZikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBjb21waWxlKHNvdXJjZSsn
XG4nLCAieCIsICJleGVjIikKKyAgICAgICAgICAgIHN5bnRheF9jaGVja2VyKHNvdXJjZSArICdc
bicpCisgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKKyAgICAgICAgICAgIHJhaXNl
CisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgX19zdHJfXyhz
ZWxmKToKKyAgICAgICAgcmV0dXJuICJcbiIuam9pbihzZWxmLmxpbmVzKQorCisgICAgZGVmIGNv
bXBpbGUoc2VsZiwgZmlsZW5hbWU9Tm9uZSwgbW9kZT0nZXhlYycsCisgICAgICAgICAgICAgICAg
ZmxhZz1nZW5lcmF0b3JzLmNvbXBpbGVyX2ZsYWcsCisgICAgICAgICAgICAgICAgZG9udF9pbmhl
cml0PTAsIF9nZW5mcmFtZT1Ob25lKToKKyAgICAgICAgIiIiIHJldHVybiBjb21waWxlZCBjb2Rl
IG9iamVjdC4gaWYgZmlsZW5hbWUgaXMgTm9uZQorICAgICAgICAgICAgaW52ZW50IGFuIGFydGlm
aWNpYWwgZmlsZW5hbWUgd2hpY2ggZGlzcGxheXMKKyAgICAgICAgICAgIHRoZSBzb3VyY2UvbGlu
ZSBwb3NpdGlvbiBvZiB0aGUgY2FsbGVyIGZyYW1lLgorICAgICAgICAiIiIKKyAgICAgICAgaWYg
bm90IGZpbGVuYW1lIG9yIHB5LnBhdGgubG9jYWwoZmlsZW5hbWUpLmNoZWNrKGZpbGU9MCk6Cisg
ICAgICAgICAgICBpZiBfZ2VuZnJhbWUgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBfZ2VuZnJh
bWUgPSBzeXMuX2dldGZyYW1lKDEpICAjIHRoZSBjYWxsZXIKKyAgICAgICAgICAgIGZuLCBsaW5l
bm8gPSBfZ2VuZnJhbWUuZl9jb2RlLmNvX2ZpbGVuYW1lLCBfZ2VuZnJhbWUuZl9saW5lbm8KKyAg
ICAgICAgICAgIGJhc2UgPSAiPCVkLWNvZGVnZW4gIiAlIHNlbGYuX2NvbXBpbGVjb3VudGVyCisg
ICAgICAgICAgICBzZWxmLl9fY2xhc3NfXy5fY29tcGlsZWNvdW50ZXIgKz0gMQorICAgICAgICAg
ICAgaWYgbm90IGZpbGVuYW1lOgorICAgICAgICAgICAgICAgIGZpbGVuYW1lID0gYmFzZSArICcl
czolZD4nICUgKGZuLCBsaW5lbm8pCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
IGZpbGVuYW1lID0gYmFzZSArICclciAlczolZD4nICUgKGZpbGVuYW1lLCBmbiwgbGluZW5vKQor
ICAgICAgICBzb3VyY2UgPSAiXG4iLmpvaW4oc2VsZi5saW5lcykgKyAnXG4nCisgICAgICAgIHRy
eToKKyAgICAgICAgICAgIGNvID0gY3B5X2NvbXBpbGUoc291cmNlLCBmaWxlbmFtZSwgbW9kZSwg
ZmxhZykKKyAgICAgICAgZXhjZXB0IFN5bnRheEVycm9yOgorICAgICAgICAgICAgZXggPSBzeXMu
ZXhjX2luZm8oKVsxXQorICAgICAgICAgICAgIyByZS1yZXByZXNlbnQgc3ludGF4IGVycm9ycyBm
cm9tIHBhcnNpbmcgcHl0aG9uIHN0cmluZ3MKKyAgICAgICAgICAgIG1zZ2xpbmVzID0gc2VsZi5s
aW5lc1s6ZXgubGluZW5vXQorICAgICAgICAgICAgaWYgZXgub2Zmc2V0OgorICAgICAgICAgICAg
ICAgIG1zZ2xpbmVzLmFwcGVuZCgiICIgKiBleC5vZmZzZXQgKyAnXicpCisgICAgICAgICAgICBt
c2dsaW5lcy5hcHBlbmQoIihjb2RlIHdhcyBjb21waWxlZCBwcm9iYWJseSBmcm9tIGhlcmU6ICVz
KSIgJSBmaWxlbmFtZSkKKyAgICAgICAgICAgIG5ld2V4ID0gU3ludGF4RXJyb3IoJ1xuJy5qb2lu
KG1zZ2xpbmVzKSkKKyAgICAgICAgICAgIG5ld2V4Lm9mZnNldCA9IGV4Lm9mZnNldAorICAgICAg
ICAgICAgbmV3ZXgubGluZW5vID0gZXgubGluZW5vCisgICAgICAgICAgICBuZXdleC50ZXh0ID0g
ZXgudGV4dAorICAgICAgICAgICAgcmFpc2UgbmV3ZXgKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIGlmIGZsYWcgJiBfQVNUX0ZMQUc6CisgICAgICAgICAgICAgICAgcmV0dXJuIGNvCisgICAg
ICAgICAgICBsaW5lcyA9IFsoeCArICJcbiIpIGZvciB4IGluIHNlbGYubGluZXNdCisgICAgICAg
ICAgICBweS5zdGQubGluZWNhY2hlLmNhY2hlW2ZpbGVuYW1lXSA9ICgxLCBOb25lLCBsaW5lcywg
ZmlsZW5hbWUpCisgICAgICAgICAgICByZXR1cm4gY28KKworIworIyBwdWJsaWMgQVBJIHNob3J0
Y3V0IGZ1bmN0aW9ucworIworCisKK2RlZiBjb21waWxlXyhzb3VyY2UsIGZpbGVuYW1lPU5vbmUs
IG1vZGU9J2V4ZWMnLCBmbGFncz1nZW5lcmF0b3JzLmNvbXBpbGVyX2ZsYWcsIGRvbnRfaW5oZXJp
dD0wKToKKyAgICAiIiIgY29tcGlsZSB0aGUgZ2l2ZW4gc291cmNlIHRvIGEgcmF3IGNvZGUgb2Jq
ZWN0LAorICAgICAgICBhbmQgbWFpbnRhaW4gYW4gaW50ZXJuYWwgY2FjaGUgd2hpY2ggYWxsb3dz
IGxhdGVyCisgICAgICAgIHJldHJpZXZhbCBvZiB0aGUgc291cmNlIGNvZGUgZm9yIHRoZSBjb2Rl
IG9iamVjdAorICAgICAgICBhbmQgYW55IHJlY3Vyc2l2ZWx5IGNyZWF0ZWQgY29kZSBvYmplY3Rz
LgorICAgICIiIgorICAgIGlmIF9hc3QgaXMgbm90IE5vbmUgYW5kIGlzaW5zdGFuY2Uoc291cmNl
LCBfYXN0LkFTVCk6CisgICAgICAgICMgWFhYIHNob3VsZCBTb3VyY2Ugc3VwcG9ydCBoYXZpbmcg
QVNUPworICAgICAgICByZXR1cm4gY3B5X2NvbXBpbGUoc291cmNlLCBmaWxlbmFtZSwgbW9kZSwg
ZmxhZ3MsIGRvbnRfaW5oZXJpdCkKKyAgICBfZ2VuZnJhbWUgPSBzeXMuX2dldGZyYW1lKDEpICAj
IHRoZSBjYWxsZXIKKyAgICBzID0gU291cmNlKHNvdXJjZSkKKyAgICBjbyA9IHMuY29tcGlsZShm
aWxlbmFtZSwgbW9kZSwgZmxhZ3MsIF9nZW5mcmFtZT1fZ2VuZnJhbWUpCisgICAgcmV0dXJuIGNv
CisKKworZGVmIGdldGZzbGluZW5vKG9iaik6CisgICAgIiIiIFJldHVybiBzb3VyY2UgbG9jYXRp
b24gKHBhdGgsIGxpbmVubykgZm9yIHRoZSBnaXZlbiBvYmplY3QuCisgICAgSWYgdGhlIHNvdXJj
ZSBjYW5ub3QgYmUgZGV0ZXJtaW5lZCByZXR1cm4gKCIiLCAtMSkKKyAgICAiIiIKKyAgICBpbXBv
cnQgX3B5dGVzdC5fY29kZQorICAgIHRyeToKKyAgICAgICAgY29kZSA9IF9weXRlc3QuX2NvZGUu
Q29kZShvYmopCisgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgZm4gPSAocHkuc3RkLmluc3BlY3QuZ2V0c291cmNlZmlsZShvYmopIG9yCisgICAgICAgICAg
ICAgICAgICBweS5zdGQuaW5zcGVjdC5nZXRmaWxlKG9iaikpCisgICAgICAgIGV4Y2VwdCBUeXBl
RXJyb3I6CisgICAgICAgICAgICByZXR1cm4gIiIsIC0xCisKKyAgICAgICAgZnNwYXRoID0gZm4g
YW5kIHB5LnBhdGgubG9jYWwoZm4pIG9yIE5vbmUKKyAgICAgICAgbGluZW5vID0gLTEKKyAgICAg
ICAgaWYgZnNwYXRoOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIF8sIGxpbmVu
byA9IGZpbmRzb3VyY2Uob2JqKQorICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAg
ICAgICAgICAgcGFzcworICAgIGVsc2U6CisgICAgICAgIGZzcGF0aCA9IGNvZGUucGF0aAorICAg
ICAgICBsaW5lbm8gPSBjb2RlLmZpcnN0bGluZW5vCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UobGlu
ZW5vLCBpbnQpCisgICAgcmV0dXJuIGZzcGF0aCwgbGluZW5vCisKKyMKKyMgaGVscGVyIGZ1bmN0
aW9ucworIworCisKK2RlZiBmaW5kc291cmNlKG9iaik6CisgICAgdHJ5OgorICAgICAgICBzb3Vy
Y2VsaW5lcywgbGluZW5vID0gcHkuc3RkLmluc3BlY3QuZmluZHNvdXJjZShvYmopCisgICAgZXhj
ZXB0IHB5LmJ1aWx0aW4uX3N5c2V4OgorICAgICAgICByYWlzZQorICAgIGV4Y2VwdDogICMgbm9x
YQorICAgICAgICByZXR1cm4gTm9uZSwgLTEKKyAgICBzb3VyY2UgPSBTb3VyY2UoKQorICAgIHNv
dXJjZS5saW5lcyA9IFtsaW5lLnJzdHJpcCgpIGZvciBsaW5lIGluIHNvdXJjZWxpbmVzXQorICAg
IHJldHVybiBzb3VyY2UsIGxpbmVubworCisKK2RlZiBnZXRzb3VyY2Uob2JqLCAqKmt3YXJncyk6
CisgICAgaW1wb3J0IF9weXRlc3QuX2NvZGUKKyAgICBvYmogPSBfcHl0ZXN0Ll9jb2RlLmdldHJh
d2NvZGUob2JqKQorICAgIHRyeToKKyAgICAgICAgc3Ryc3JjID0gaW5zcGVjdC5nZXRzb3VyY2Uo
b2JqKQorICAgIGV4Y2VwdCBJbmRlbnRhdGlvbkVycm9yOgorICAgICAgICBzdHJzcmMgPSAiXCJC
dWdneSBweXRob24gdmVyc2lvbiBjb25zaWRlciB1cGdyYWRpbmcsIGNhbm5vdCBnZXQgc291cmNl
XCIiCisgICAgYXNzZXJ0IGlzaW5zdGFuY2Uoc3Ryc3JjLCBzdHIpCisgICAgcmV0dXJuIFNvdXJj
ZShzdHJzcmMsICoqa3dhcmdzKQorCisKK2RlZiBkZWluZGVudChsaW5lcywgb2Zmc2V0PU5vbmUp
OgorICAgIGlmIG9mZnNldCBpcyBOb25lOgorICAgICAgICBmb3IgbGluZSBpbiBsaW5lczoKKyAg
ICAgICAgICAgIGxpbmUgPSBsaW5lLmV4cGFuZHRhYnMoKQorICAgICAgICAgICAgcyA9IGxpbmUu
bHN0cmlwKCkKKyAgICAgICAgICAgIGlmIHM6CisgICAgICAgICAgICAgICAgb2Zmc2V0ID0gbGVu
KGxpbmUpIC0gbGVuKHMpCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIG9mZnNldCA9IDAKKyAgICBpZiBvZmZzZXQgPT0gMDoKKyAgICAgICAgcmV0dXJu
IGxpc3QobGluZXMpCisgICAgbmV3bGluZXMgPSBbXQorCisgICAgZGVmIHJlYWRsaW5lX2dlbmVy
YXRvcihsaW5lcyk6CisgICAgICAgIGZvciBsaW5lIGluIGxpbmVzOgorICAgICAgICAgICAgeWll
bGQgbGluZSArICdcbicKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIHlpZWxkICcn
CisKKyAgICBpdCA9IHJlYWRsaW5lX2dlbmVyYXRvcihsaW5lcykKKworICAgIHRyeToKKyAgICAg
ICAgZm9yIF8sIF8sIChzbGluZSwgXyksIChlbGluZSwgXyksIF8gaW4gdG9rZW5pemUuZ2VuZXJh
dGVfdG9rZW5zKGxhbWJkYTogbmV4dChpdCkpOgorICAgICAgICAgICAgaWYgc2xpbmUgPiBsZW4o
bGluZXMpOgorICAgICAgICAgICAgICAgIGJyZWFrICAjIEVuZCBvZiBpbnB1dCByZWFjaGVkCisg
ICAgICAgICAgICBpZiBzbGluZSA+IGxlbihuZXdsaW5lcyk6CisgICAgICAgICAgICAgICAgbGlu
ZSA9IGxpbmVzW3NsaW5lIC0gMV0uZXhwYW5kdGFicygpCisgICAgICAgICAgICAgICAgaWYgbGlu
ZS5sc3RyaXAoKSBhbmQgbGluZVs6b2Zmc2V0XS5pc3NwYWNlKCk6CisgICAgICAgICAgICAgICAg
ICAgIGxpbmUgPSBsaW5lW29mZnNldDpdICAjIERlaW5kZW50CisgICAgICAgICAgICAgICAgbmV3
bGluZXMuYXBwZW5kKGxpbmUpCisKKyAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKHNsaW5lLCBl
bGluZSk6CisgICAgICAgICAgICAgICAgIyBEb24ndCBkZWluZGVudCBjb250aW51aW5nIGxpbmVz
IG9mCisgICAgICAgICAgICAgICAgIyBtdWx0aWxpbmUgdG9rZW5zIChpLmUuIG11bHRpbGluZSBz
dHJpbmdzKQorICAgICAgICAgICAgICAgIG5ld2xpbmVzLmFwcGVuZChsaW5lc1tpXSkKKyAgICBl
eGNlcHQgKEluZGVudGF0aW9uRXJyb3IsIHRva2VuaXplLlRva2VuRXJyb3IpOgorICAgICAgICBw
YXNzCisgICAgIyBBZGQgYW55IGxpbmVzIHdlIGRpZG4ndCBzZWUuIEUuZy4gaWYgYW4gZXhjZXB0
aW9uIHdhcyByYWlzZWQuCisgICAgbmV3bGluZXMuZXh0ZW5kKGxpbmVzW2xlbihuZXdsaW5lcyk6
XSkKKyAgICByZXR1cm4gbmV3bGluZXMKKworCitkZWYgZ2V0X3N0YXRlbWVudF9zdGFydGVuZDIo
bGluZW5vLCBub2RlKToKKyAgICBpbXBvcnQgYXN0CisgICAgIyBmbGF0dGVuIGFsbCBzdGF0ZW1l
bnRzIGFuZCBleGNlcHQgaGFuZGxlcnMgaW50byBvbmUgbGluZW5vLWxpc3QKKyAgICAjIEFTVCdz
IGxpbmUgbnVtYmVycyBzdGFydCBpbmRleGluZyBhdCAxCisgICAgdmFsdWVzID0gW10KKyAgICBm
b3IgeCBpbiBhc3Qud2Fsayhub2RlKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZSh4LCBfYXN0LnN0
bXQpIG9yIGlzaW5zdGFuY2UoeCwgX2FzdC5FeGNlcHRIYW5kbGVyKToKKyAgICAgICAgICAgIHZh
bHVlcy5hcHBlbmQoeC5saW5lbm8gLSAxKQorICAgICAgICAgICAgZm9yIG5hbWUgaW4gImZpbmFs
Ym9keSIsICJvcmVsc2UiOgorICAgICAgICAgICAgICAgIHZhbCA9IGdldGF0dHIoeCwgbmFtZSwg
Tm9uZSkKKyAgICAgICAgICAgICAgICBpZiB2YWw6CisgICAgICAgICAgICAgICAgICAgICMgdHJl
YXQgdGhlIGZpbmFsbHkvb3JlbHNlIHBhcnQgYXMgaXRzIG93biBzdGF0ZW1lbnQKKyAgICAgICAg
ICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCh2YWxbMF0ubGluZW5vIC0gMSAtIDEpCisgICAgdmFs
dWVzLnNvcnQoKQorICAgIGluc2VydF9pbmRleCA9IGJpc2VjdF9yaWdodCh2YWx1ZXMsIGxpbmVu
bykKKyAgICBzdGFydCA9IHZhbHVlc1tpbnNlcnRfaW5kZXggLSAxXQorICAgIGlmIGluc2VydF9p
bmRleCA+PSBsZW4odmFsdWVzKToKKyAgICAgICAgZW5kID0gTm9uZQorICAgIGVsc2U6CisgICAg
ICAgIGVuZCA9IHZhbHVlc1tpbnNlcnRfaW5kZXhdCisgICAgcmV0dXJuIHN0YXJ0LCBlbmQKKwor
CitkZWYgZ2V0c3RhdGVtZW50cmFuZ2VfYXN0KGxpbmVubywgc291cmNlLCBhc3NlcnRpb249RmFs
c2UsIGFzdG5vZGU9Tm9uZSk6CisgICAgaWYgYXN0bm9kZSBpcyBOb25lOgorICAgICAgICBjb250
ZW50ID0gc3RyKHNvdXJjZSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYXN0bm9kZSA9IGNv
bXBpbGUoY29udGVudCwgInNvdXJjZSIsICJleGVjIiwgMTAyNCkgICMgMTAyNCBmb3IgQVNUCisg
ICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgc3RhcnQsIGVuZCA9IGdldHN0
YXRlbWVudHJhbmdlX29sZChsaW5lbm8sIHNvdXJjZSwgYXNzZXJ0aW9uKQorICAgICAgICAgICAg
cmV0dXJuIE5vbmUsIHN0YXJ0LCBlbmQKKyAgICBzdGFydCwgZW5kID0gZ2V0X3N0YXRlbWVudF9z
dGFydGVuZDIobGluZW5vLCBhc3Rub2RlKQorICAgICMgd2UgbmVlZCB0byBjb3JyZWN0IHRoZSBl
bmQ6CisgICAgIyAtIGFzdC1wYXJzaW5nIHN0cmlwcyBjb21tZW50cworICAgICMgLSB0aGVyZSBt
aWdodCBiZSBlbXB0eSBsaW5lcworICAgICMgLSB3ZSBtaWdodCBoYXZlIGxlc3NlciBpbmRlbnRl
ZCBjb2RlIGJsb2NrcyBhdCB0aGUgZW5kCisgICAgaWYgZW5kIGlzIE5vbmU6CisgICAgICAgIGVu
ZCA9IGxlbihzb3VyY2UubGluZXMpCisKKyAgICBpZiBlbmQgPiBzdGFydCArIDE6CisgICAgICAg
ICMgbWFrZSBzdXJlIHdlIGRvbid0IHNwYW4gZGlmZmVyZW50bHkgaW5kZW50ZWQgY29kZSBibG9j
a3MKKyAgICAgICAgIyBieSB1c2luZyB0aGUgQmxvY2tGaW5kZXIgaGVscGVyIHVzZWQgd2hpY2gg
aW5zcGVjdC5nZXRzb3VyY2UoKSB1c2VzIGl0c2VsZgorICAgICAgICBibG9ja19maW5kZXIgPSBp
bnNwZWN0LkJsb2NrRmluZGVyKCkKKyAgICAgICAgIyBpZiB3ZSBzdGFydCB3aXRoIGFuIGluZGVu
dGVkIGxpbmUsIHB1dCBibG9ja2ZpbmRlciB0byAic3RhcnRlZCIgbW9kZQorICAgICAgICBibG9j
a19maW5kZXIuc3RhcnRlZCA9IHNvdXJjZS5saW5lc1tzdGFydF1bMF0uaXNzcGFjZSgpCisgICAg
ICAgIGl0ID0gKCh4ICsgIlxuIikgZm9yIHggaW4gc291cmNlLmxpbmVzW3N0YXJ0OmVuZF0pCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIGZvciB0b2sgaW4gdG9rZW5pemUuZ2VuZXJhdGVfdG9r
ZW5zKGxhbWJkYTogbmV4dChpdCkpOgorICAgICAgICAgICAgICAgIGJsb2NrX2ZpbmRlci50b2tl
bmVhdGVyKCp0b2spCisgICAgICAgIGV4Y2VwdCAoaW5zcGVjdC5FbmRPZkJsb2NrLCBJbmRlbnRh
dGlvbkVycm9yKToKKyAgICAgICAgICAgIGVuZCA9IGJsb2NrX2ZpbmRlci5sYXN0ICsgc3RhcnQK
KyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHBhc3MKKworICAgICMgdGhl
IGVuZCBtaWdodCBzdGlsbCBwb2ludCB0byBhIGNvbW1lbnQgb3IgZW1wdHkgbGluZSwgY29ycmVj
dCBpdAorICAgIHdoaWxlIGVuZDoKKyAgICAgICAgbGluZSA9IHNvdXJjZS5saW5lc1tlbmQgLSAx
XS5sc3RyaXAoKQorICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoIiMiKSBvciBub3QgbGluZToK
KyAgICAgICAgICAgIGVuZCAtPSAxCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBicmVhawor
ICAgIHJldHVybiBhc3Rub2RlLCBzdGFydCwgZW5kCisKKworZGVmIGdldHN0YXRlbWVudHJhbmdl
X29sZChsaW5lbm8sIHNvdXJjZSwgYXNzZXJ0aW9uPUZhbHNlKToKKyAgICAiIiIgcmV0dXJuIChz
dGFydCwgZW5kKSB0dXBsZSB3aGljaCBzcGFucyB0aGUgbWluaW1hbAorICAgICAgICBzdGF0ZW1l
bnQgcmVnaW9uIHdoaWNoIGNvbnRhaW5pbmcgdGhlIGdpdmVuIGxpbmVuby4KKyAgICAgICAgcmFp
c2UgYW4gSW5kZXhFcnJvciBpZiBubyBzdWNoIHN0YXRlbWVudHJhbmdlIGNhbiBiZSBmb3VuZC4K
KyAgICAiIiIKKyAgICAjIFhYWCB0aGlzIGxvZ2ljIGlzIG9ubHkgdXNlZCBvbiBweXRob24yLjQg
YW5kIGJlbG93CisgICAgIyAxLiBmaW5kIHRoZSBzdGFydCBvZiB0aGUgc3RhdGVtZW50CisgICAg
ZnJvbSBjb2Rlb3AgaW1wb3J0IGNvbXBpbGVfY29tbWFuZAorICAgIGZvciBzdGFydCBpbiByYW5n
ZShsaW5lbm8sIC0xLCAtMSk6CisgICAgICAgIGlmIGFzc2VydGlvbjoKKyAgICAgICAgICAgIGxp
bmUgPSBzb3VyY2UubGluZXNbc3RhcnRdCisgICAgICAgICAgICAjIHRoZSBmb2xsb3dpbmcgbGlu
ZXMgYXJlIG5vdCBmdWxseSB0ZXN0ZWQsIGNoYW5nZSB3aXRoIGNhcmUKKyAgICAgICAgICAgIGlm
ICdzdXBlcicgaW4gbGluZSBhbmQgJ3NlbGYnIGluIGxpbmUgYW5kICdfX2luaXRfXycgaW4gbGlu
ZToKKyAgICAgICAgICAgICAgICByYWlzZSBJbmRleEVycm9yKCJsaWtlbHkgYSBzdWJjbGFzcyIp
CisgICAgICAgICAgICBpZiAiYXNzZXJ0IiBub3QgaW4gbGluZSBhbmQgInJhaXNlIiBub3QgaW4g
bGluZToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICB0cnlsaW5lcyA9IHNvdXJj
ZS5saW5lc1tzdGFydDpsaW5lbm8gKyAxXQorICAgICAgICAjIHF1aWNrIGhhY2sgdG8gcHJlcGFy
ZSBwYXJzaW5nIGFuIGluZGVudGVkIGxpbmUgd2l0aAorICAgICAgICAjIGNvbXBpbGVfY29tbWFu
ZCgpICh3aGljaCBlcnJvcnMgb24gInJldHVybiIgb3V0c2lkZSBkZWZzKQorICAgICAgICB0cnls
aW5lcy5pbnNlcnQoMCwgJ2RlZiB4eHgoKTonKQorICAgICAgICB0cnlzb3VyY2UgPSAnXG4gJy5q
b2luKHRyeWxpbmVzKQorICAgICAgICAjICAgICAgICAgICAgICBeIHNwYWNlIGhlcmUKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgY29tcGlsZV9jb21tYW5kKHRyeXNvdXJjZSkKKyAgICAgICAg
ZXhjZXB0IChTeW50YXhFcnJvciwgT3ZlcmZsb3dFcnJvciwgVmFsdWVFcnJvcik6CisgICAgICAg
ICAgICBjb250aW51ZQorCisgICAgICAgICMgMi4gZmluZCB0aGUgZW5kIG9mIHRoZSBzdGF0ZW1l
bnQKKyAgICAgICAgZm9yIGVuZCBpbiByYW5nZShsaW5lbm8gKyAxLCBsZW4oc291cmNlKSArIDEp
OgorICAgICAgICAgICAgdHJ5c291cmNlID0gc291cmNlW3N0YXJ0OmVuZF0KKyAgICAgICAgICAg
IGlmIHRyeXNvdXJjZS5pc3BhcnNlYWJsZSgpOgorICAgICAgICAgICAgICAgIHJldHVybiBzdGFy
dCwgZW5kCisgICAgcmFpc2UgU3ludGF4RXJyb3IoIm5vIHZhbGlkIHNvdXJjZSByYW5nZSBhcm91
bmQgbGluZSAlZCAiICUgKGxpbmVubywpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVz
dC9fY29kZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUvdzNjLWlt
cG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODIyMzM0ZjNmOGVkYTk2NmEyZDE4ZGVkYTcyZTlkOTAyZjg3
ZDcxYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUvdzNjLWlt
cG9ydC5sb2cKQEAgLTAsMCArMSwyMCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25l
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9f
Y29kZS9fX2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUvX3B5MnRyYWNlYmFj
ay5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUvY29kZS5weQorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19w
eXRlc3QvX2NvZGUvc291cmNlLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fz
c2VydGlvbi9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL19faW5p
dF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE0OGU5OGM4NWFhMmJiZGU4ZGY1YzA3M2JhOWI2NDVmY2MzMjU3
YjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi9fX2lu
aXRfXy5weQpAQCAtMCwwICsxLDE0NiBAQAorIiIiCitzdXBwb3J0IGZvciBwcmVzZW50aW5nIGRl
dGFpbGVkIGluZm9ybWF0aW9uIGluIGZhaWxpbmcgYXNzZXJ0aW9ucy4KKyIiIgorZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgor
aW1wb3J0IHN5cworaW1wb3J0IHNpeAorCitmcm9tIF9weXRlc3QuYXNzZXJ0aW9uIGltcG9ydCB1
dGlsCitmcm9tIF9weXRlc3QuYXNzZXJ0aW9uIGltcG9ydCByZXdyaXRlCitmcm9tIF9weXRlc3Qu
YXNzZXJ0aW9uIGltcG9ydCB0cnVuY2F0ZQorCisKK2RlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNl
cik6CisgICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImRlYnVnY29uZmlnIikKKyAgICBncm91
cC5hZGRvcHRpb24oJy0tYXNzZXJ0JywKKyAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9y
ZSIsCisgICAgICAgICAgICAgICAgICAgIGRlc3Q9ImFzc2VydG1vZGUiLAorICAgICAgICAgICAg
ICAgICAgICBjaG9pY2VzPSgicmV3cml0ZSIsICJwbGFpbiIsKSwKKyAgICAgICAgICAgICAgICAg
ICAgZGVmYXVsdD0icmV3cml0ZSIsCisgICAgICAgICAgICAgICAgICAgIG1ldGF2YXI9Ik1PREUi
LAorICAgICAgICAgICAgICAgICAgICBoZWxwPSIiIkNvbnRyb2wgYXNzZXJ0aW9uIGRlYnVnZ2lu
ZyB0b29scy4gICdwbGFpbicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJmb3JtcyBu
byBhc3NlcnRpb24gZGVidWdnaW5nLiAgJ3Jld3JpdGUnCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHRoZSBkZWZhdWx0KSByZXdyaXRlcyBhc3NlcnQgc3RhdGVtZW50cyBpbgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3QgbW9kdWxlcyBvbiBpbXBvcnQgdG8gcHJvdmlkZSBh
c3NlcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9uIGluZm9ybWF0aW9u
LiIiIikKKworCitkZWYgcmVnaXN0ZXJfYXNzZXJ0X3Jld3JpdGUoKm5hbWVzKToKKyAgICAiIiJS
ZWdpc3RlciBvbmUgb3IgbW9yZSBtb2R1bGUgbmFtZXMgdG8gYmUgcmV3cml0dGVuIG9uIGltcG9y
dC4KKworICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBtYWtlIHN1cmUgdGhhdCB0aGlzIG1vZHVsZSBv
ciBhbGwgbW9kdWxlcyBpbnNpZGUKKyAgICB0aGUgcGFja2FnZSB3aWxsIGdldCB0aGVpciBhc3Nl
cnQgc3RhdGVtZW50cyByZXdyaXR0ZW4uCisgICAgVGh1cyB5b3Ugc2hvdWxkIG1ha2Ugc3VyZSB0
byBjYWxsIHRoaXMgYmVmb3JlIHRoZSBtb2R1bGUgaXMKKyAgICBhY3R1YWxseSBpbXBvcnRlZCwg
dXN1YWxseSBpbiB5b3VyIF9faW5pdF9fLnB5IGlmIHlvdSBhcmUgYSBwbHVnaW4KKyAgICB1c2lu
ZyBhIHBhY2thZ2UuCisKKyAgICA6cmFpc2UgVHlwZUVycm9yOiBpZiB0aGUgZ2l2ZW4gbW9kdWxl
IG5hbWVzIGFyZSBub3Qgc3RyaW5ncy4KKyAgICAiIiIKKyAgICBmb3IgbmFtZSBpbiBuYW1lczoK
KyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UobmFtZSwgc3RyKToKKyAgICAgICAgICAgIG1zZyA9
ICdleHBlY3RlZCBtb2R1bGUgbmFtZXMgYXMgKmFyZ3MsIGdvdCB7MH0gaW5zdGVhZCcKKyAgICAg
ICAgICAgIHJhaXNlIFR5cGVFcnJvcihtc2cuZm9ybWF0KHJlcHIobmFtZXMpKSkKKyAgICBmb3Ig
aG9vayBpbiBzeXMubWV0YV9wYXRoOgorICAgICAgICBpZiBpc2luc3RhbmNlKGhvb2ssIHJld3Jp
dGUuQXNzZXJ0aW9uUmV3cml0aW5nSG9vayk6CisgICAgICAgICAgICBpbXBvcnRob29rID0gaG9v
aworICAgICAgICAgICAgYnJlYWsKKyAgICBlbHNlOgorICAgICAgICBpbXBvcnRob29rID0gRHVt
bXlSZXdyaXRlSG9vaygpCisgICAgaW1wb3J0aG9vay5tYXJrX3Jld3JpdGUoKm5hbWVzKQorCisK
K2NsYXNzIER1bW15UmV3cml0ZUhvb2sob2JqZWN0KToKKyAgICAiIiJBIG5vLW9wIGltcG9ydCBo
b29rIGZvciB3aGVuIHJld3JpdGluZyBpcyBkaXNhYmxlZC4iIiIKKworICAgIGRlZiBtYXJrX3Jl
d3JpdGUoc2VsZiwgKm5hbWVzKToKKyAgICAgICAgcGFzcworCisKK2NsYXNzIEFzc2VydGlvblN0
YXRlOgorICAgICIiIlN0YXRlIGZvciB0aGUgYXNzZXJ0aW9uIHBsdWdpbi4iIiIKKworICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBjb25maWcsIG1vZGUpOgorICAgICAgICBzZWxmLm1vZGUgPSBtb2Rl
CisgICAgICAgIHNlbGYudHJhY2UgPSBjb25maWcudHJhY2Uucm9vdC5nZXQoImFzc2VydGlvbiIp
CisgICAgICAgIHNlbGYuaG9vayA9IE5vbmUKKworCitkZWYgaW5zdGFsbF9pbXBvcnRob29rKGNv
bmZpZyk6CisgICAgIiIiVHJ5IHRvIGluc3RhbGwgdGhlIHJld3JpdGUgaG9vaywgcmFpc2UgU3lz
dGVtRXJyb3IgaWYgaXQgZmFpbHMuIiIiCisgICAgIyBKeXRob24gaGFzIGFuIEFTVCBidWcgdGhh
dCBtYWtlIHRoZSBhc3NlcnRpb24gcmV3cml0aW5nIGhvb2sgbWFsZnVuY3Rpb24uCisgICAgaWYg
KHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCdqYXZhJykpOgorICAgICAgICByYWlzZSBTeXN0ZW1F
cnJvcigncmV3cml0ZSBub3Qgc3VwcG9ydGVkJykKKworICAgIGNvbmZpZy5fYXNzZXJ0c3RhdGUg
PSBBc3NlcnRpb25TdGF0ZShjb25maWcsICdyZXdyaXRlJykKKyAgICBjb25maWcuX2Fzc2VydHN0
YXRlLmhvb2sgPSBob29rID0gcmV3cml0ZS5Bc3NlcnRpb25SZXdyaXRpbmdIb29rKGNvbmZpZykK
KyAgICBzeXMubWV0YV9wYXRoLmluc2VydCgwLCBob29rKQorICAgIGNvbmZpZy5fYXNzZXJ0c3Rh
dGUudHJhY2UoJ2luc3RhbGxlZCByZXdyaXRlIGltcG9ydCBob29rJykKKworICAgIGRlZiB1bmRv
KCk6CisgICAgICAgIGhvb2sgPSBjb25maWcuX2Fzc2VydHN0YXRlLmhvb2sKKyAgICAgICAgaWYg
aG9vayBpcyBub3QgTm9uZSBhbmQgaG9vayBpbiBzeXMubWV0YV9wYXRoOgorICAgICAgICAgICAg
c3lzLm1ldGFfcGF0aC5yZW1vdmUoaG9vaykKKworICAgIGNvbmZpZy5hZGRfY2xlYW51cCh1bmRv
KQorICAgIHJldHVybiBob29rCisKKworZGVmIHB5dGVzdF9jb2xsZWN0aW9uKHNlc3Npb24pOgor
ICAgICMgdGhpcyBob29rIGlzIG9ubHkgY2FsbGVkIHdoZW4gdGVzdCBtb2R1bGVzIGFyZSBjb2xs
ZWN0ZWQKKyAgICAjIHNvIGZvciBleGFtcGxlIG5vdCBpbiB0aGUgbWFzdGVyIHByb2Nlc3Mgb2Yg
cHl0ZXN0LXhkaXN0CisgICAgIyAod2hpY2ggZG9lcyBub3QgY29sbGVjdCB0ZXN0IG1vZHVsZXMp
CisgICAgYXNzZXJ0c3RhdGUgPSBnZXRhdHRyKHNlc3Npb24uY29uZmlnLCAnX2Fzc2VydHN0YXRl
JywgTm9uZSkKKyAgICBpZiBhc3NlcnRzdGF0ZToKKyAgICAgICAgaWYgYXNzZXJ0c3RhdGUuaG9v
ayBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGFzc2VydHN0YXRlLmhvb2suc2V0X3Nlc3Npb24o
c2Vzc2lvbikKKworCitkZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoaXRlbSk6CisgICAgIiIiU2V0
dXAgdGhlIHB5dGVzdF9hc3NlcnRyZXByX2NvbXBhcmUgaG9vaworCisgICAgVGhlIG5ld2ludGVy
cHJldCBhbmQgcmV3cml0ZSBtb2R1bGVzIHdpbGwgdXNlIHV0aWwuX3JlcHJjb21wYXJlIGlmCisg
ICAgaXQgZXhpc3RzIHRvIHVzZSBjdXN0b20gcmVwb3J0aW5nIHZpYSB0aGUKKyAgICBweXRlc3Rf
YXNzZXJ0cmVwcl9jb21wYXJlIGhvb2suICBUaGlzIHNldHMgdXAgdGhpcyBjdXN0b20KKyAgICBj
b21wYXJpc29uIGZvciB0aGUgdGVzdC4KKyAgICAiIiIKKyAgICBkZWYgY2FsbGJpbnJlcHIob3As
IGxlZnQsIHJpZ2h0KToKKyAgICAgICAgIiIiQ2FsbCB0aGUgcHl0ZXN0X2Fzc2VydHJlcHJfY29t
cGFyZSBob29rIGFuZCBwcmVwYXJlIHRoZSByZXN1bHQKKworICAgICAgICBUaGlzIHVzZXMgdGhl
IGZpcnN0IHJlc3VsdCBmcm9tIHRoZSBob29rIGFuZCB0aGVuIGVuc3VyZXMgdGhlCisgICAgICAg
IGZvbGxvd2luZzoKKyAgICAgICAgKiBPdmVybHkgdmVyYm9zZSBleHBsYW5hdGlvbnMgYXJlIHRy
dW5jYXRlZCB1bmxlc3MgY29uZmlndXJlZCBvdGhlcndpc2UKKyAgICAgICAgICAoZWcuIGlmIHJ1
bm5pbmcgaW4gdmVyYm9zZSBtb2RlKS4KKyAgICAgICAgKiBFbWJlZGRlZCBuZXdsaW5lcyBhcmUg
ZXNjYXBlZCB0byBoZWxwIHV0aWwuZm9ybWF0X2V4cGxhbmF0aW9uKCkKKyAgICAgICAgICBsYXRl
ci4KKyAgICAgICAgKiBJZiB0aGUgcmV3cml0ZSBtb2RlIGlzIHVzZWQgZW1iZWRkZWQgJS1jaGFy
YWN0ZXJzIGFyZSByZXBsYWNlZAorICAgICAgICAgIHRvIHByb3RlY3QgbGF0ZXIgJSBmb3JtYXR0
aW5nLgorCisgICAgICAgIFRoZSByZXN1bHQgY2FuIGJlIGZvcm1hdHRlZCBieSB1dGlsLmZvcm1h
dF9leHBsYW5hdGlvbigpIGZvcgorICAgICAgICBwcmV0dHkgcHJpbnRpbmcuCisgICAgICAgICIi
IgorICAgICAgICBob29rX3Jlc3VsdCA9IGl0ZW0uaWhvb2sucHl0ZXN0X2Fzc2VydHJlcHJfY29t
cGFyZSgKKyAgICAgICAgICAgIGNvbmZpZz1pdGVtLmNvbmZpZywgb3A9b3AsIGxlZnQ9bGVmdCwg
cmlnaHQ9cmlnaHQpCisgICAgICAgIGZvciBuZXdfZXhwbCBpbiBob29rX3Jlc3VsdDoKKyAgICAg
ICAgICAgIGlmIG5ld19leHBsOgorICAgICAgICAgICAgICAgIG5ld19leHBsID0gdHJ1bmNhdGUu
dHJ1bmNhdGVfaWZfcmVxdWlyZWQobmV3X2V4cGwsIGl0ZW0pCisgICAgICAgICAgICAgICAgbmV3
X2V4cGwgPSBbbGluZS5yZXBsYWNlKCJcbiIsICJcXG4iKSBmb3IgbGluZSBpbiBuZXdfZXhwbF0K
KyAgICAgICAgICAgICAgICByZXMgPSBzaXgudGV4dF90eXBlKCJcbn4iKS5qb2luKG5ld19leHBs
KQorICAgICAgICAgICAgICAgIGlmIGl0ZW0uY29uZmlnLmdldHZhbHVlKCJhc3NlcnRtb2RlIikg
PT0gInJld3JpdGUiOgorICAgICAgICAgICAgICAgICAgICByZXMgPSByZXMucmVwbGFjZSgiJSIs
ICIlJSIpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcworICAgIHV0aWwuX3JlcHJjb21wYXJl
ID0gY2FsbGJpbnJlcHIKKworCitkZWYgcHl0ZXN0X3J1bnRlc3RfdGVhcmRvd24oaXRlbSk6Cisg
ICAgdXRpbC5fcmVwcmNvbXBhcmUgPSBOb25lCisKKworZGVmIHB5dGVzdF9zZXNzaW9uZmluaXNo
KHNlc3Npb24pOgorICAgIGFzc2VydHN0YXRlID0gZ2V0YXR0cihzZXNzaW9uLmNvbmZpZywgJ19h
c3NlcnRzdGF0ZScsIE5vbmUpCisgICAgaWYgYXNzZXJ0c3RhdGU6CisgICAgICAgIGlmIGFzc2Vy
dHN0YXRlLmhvb2sgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhc3NlcnRzdGF0ZS5ob29rLnNl
dF9zZXNzaW9uKE5vbmUpCisKKworIyBFeHBvc2UgdGhpcyBwbHVnaW4ncyBpbXBsZW1lbnRhdGlv
biBmb3IgdGhlIHB5dGVzdF9hc3NlcnRyZXByX2NvbXBhcmUgaG9vaworcHl0ZXN0X2Fzc2VydHJl
cHJfY29tcGFyZSA9IHV0aWwuYXNzZXJ0cmVwcl9jb21wYXJlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi9yZXdyaXRlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9h
c3NlcnRpb24vcmV3cml0ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNjQzNThmNDkwYmM5MWFmOWE1ZWM1MjY1
MmI2ZThiMmJlMGFjYzYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9h
c3NlcnRpb24vcmV3cml0ZS5weQpAQCAtMCwwICsxLDk0OCBAQAorIiIiUmV3cml0ZSBhc3NlcnRp
b24gQVNUIHRvIHByb2R1Y2UgbmljZSBlcnJvciBtZXNzYWdlcyIiIgorZnJvbSBfX2Z1dHVyZV9f
IGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgoraW1wb3J0
IGFzdAoraW1wb3J0IF9hc3QKK2ltcG9ydCBlcnJubworaW1wb3J0IGl0ZXJ0b29scworaW1wb3J0
IGltcAoraW1wb3J0IG1hcnNoYWwKK2ltcG9ydCBvcworaW1wb3J0IHJlCitpbXBvcnQgc2l4Citp
bXBvcnQgc3RydWN0CitpbXBvcnQgc3lzCitpbXBvcnQgdHlwZXMKKworaW1wb3J0IHB5Citmcm9t
IF9weXRlc3QuYXNzZXJ0aW9uIGltcG9ydCB1dGlsCisKKworIyBweXRlc3QgY2FjaGVzIHJld3Jp
dHRlbiBweWNzIGluIF9fcHljYWNoZV9fLgoraWYgaGFzYXR0cihpbXAsICJnZXRfdGFnIik6Cisg
ICAgUFlURVNUX1RBRyA9IGltcC5nZXRfdGFnKCkgKyAiLVBZVEVTVCIKK2Vsc2U6CisgICAgaWYg
aGFzYXR0cihzeXMsICJweXB5X3ZlcnNpb25faW5mbyIpOgorICAgICAgICBpbXBsID0gInB5cHki
CisgICAgZWxpZiBzeXMucGxhdGZvcm0gPT0gImphdmEiOgorICAgICAgICBpbXBsID0gImp5dGhv
biIKKyAgICBlbHNlOgorICAgICAgICBpbXBsID0gImNweXRob24iCisgICAgdmVyID0gc3lzLnZl
cnNpb25faW5mbworICAgIFBZVEVTVF9UQUcgPSAiJXMtJXMlcy1QWVRFU1QiICUgKGltcGwsIHZl
clswXSwgdmVyWzFdKQorICAgIGRlbCB2ZXIsIGltcGwKKworUFlDX0VYVCA9ICIucHkiICsgKF9f
ZGVidWdfXyBhbmQgImMiIG9yICJvIikKK1BZQ19UQUlMID0gIi4iICsgUFlURVNUX1RBRyArIFBZ
Q19FWFQKKworQVNDSUlfSVNfREVGQVVMVF9FTkNPRElORyA9IHN5cy52ZXJzaW9uX2luZm9bMF0g
PCAzCisKK2lmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDUpOgorICAgIGFzdF9DYWxsID0gYXN0
LkNhbGwKK2Vsc2U6CisgICAgZGVmIGFzdF9DYWxsKGEsIGIsIGMpOgorICAgICAgICByZXR1cm4g
YXN0LkNhbGwoYSwgYiwgYywgTm9uZSwgTm9uZSkKKworCitjbGFzcyBBc3NlcnRpb25SZXdyaXRp
bmdIb29rKG9iamVjdCk6CisgICAgIiIiUEVQMzAyIEltcG9ydCBob29rIHdoaWNoIHJld3JpdGVz
IGFzc2VydHMuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnKToKKyAgICAgICAg
c2VsZi5jb25maWcgPSBjb25maWcKKyAgICAgICAgc2VsZi5mbnBhdHMgPSBjb25maWcuZ2V0aW5p
KCJweXRob25fZmlsZXMiKQorICAgICAgICBzZWxmLnNlc3Npb24gPSBOb25lCisgICAgICAgIHNl
bGYubW9kdWxlcyA9IHt9CisgICAgICAgIHNlbGYuX3Jld3JpdHRlbl9uYW1lcyA9IHNldCgpCisg
ICAgICAgIHNlbGYuX3JlZ2lzdGVyX3dpdGhfcGtnX3Jlc291cmNlcygpCisgICAgICAgIHNlbGYu
X211c3RfcmV3cml0ZSA9IHNldCgpCisKKyAgICBkZWYgc2V0X3Nlc3Npb24oc2VsZiwgc2Vzc2lv
bik6CisgICAgICAgIHNlbGYuc2Vzc2lvbiA9IHNlc3Npb24KKworICAgIGRlZiBmaW5kX21vZHVs
ZShzZWxmLCBuYW1lLCBwYXRoPU5vbmUpOgorICAgICAgICBzdGF0ZSA9IHNlbGYuY29uZmlnLl9h
c3NlcnRzdGF0ZQorICAgICAgICBzdGF0ZS50cmFjZSgiZmluZF9tb2R1bGUgY2FsbGVkIGZvcjog
JXMiICUgbmFtZSkKKyAgICAgICAgbmFtZXMgPSBuYW1lLnJzcGxpdCgiLiIsIDEpCisgICAgICAg
IGxhc3RuYW1lID0gbmFtZXNbLTFdCisgICAgICAgIHB0aCA9IE5vbmUKKyAgICAgICAgaWYgcGF0
aCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICMgU3RhcnRpbmcgd2l0aCBQeXRob24gMy4zLCBw
YXRoIGlzIGEgX05hbWVzcGFjZVBhdGgoKSwgd2hpY2gKKyAgICAgICAgICAgICMgY2F1c2VzIHBy
b2JsZW1zIGlmIG5vdCBjb252ZXJ0ZWQgdG8gbGlzdC4KKyAgICAgICAgICAgIHBhdGggPSBsaXN0
KHBhdGgpCisgICAgICAgICAgICBpZiBsZW4ocGF0aCkgPT0gMToKKyAgICAgICAgICAgICAgICBw
dGggPSBwYXRoWzBdCisgICAgICAgIGlmIHB0aCBpcyBOb25lOgorICAgICAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgICAgIGZkLCBmbiwgZGVzYyA9IGltcC5maW5kX21vZHVsZShsYXN0bmFtZSwg
cGF0aCkKKyAgICAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gTm9uZQorICAgICAgICAgICAgaWYgZmQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAg
ICAgZmQuY2xvc2UoKQorICAgICAgICAgICAgdHAgPSBkZXNjWzJdCisgICAgICAgICAgICBpZiB0
cCA9PSBpbXAuUFlfQ09NUElMRUQ6CisgICAgICAgICAgICAgICAgaWYgaGFzYXR0cihpbXAsICJz
b3VyY2VfZnJvbV9jYWNoZSIpOgorICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAg
ICAgICAgICAgICAgICBmbiA9IGltcC5zb3VyY2VfZnJvbV9jYWNoZShmbikKKyAgICAgICAgICAg
ICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAgICAgICAgICAjIFB5
dGhvbiAzIGRvZXNuJ3QgbGlrZSBvcnBoYW5lZCBidXQgc3RpbGwtaW1wb3J0YWJsZQorICAgICAg
ICAgICAgICAgICAgICAgICAgIyAucHljIGZpbGVzLgorICAgICAgICAgICAgICAgICAgICAgICAg
Zm4gPSBmbls6LTFdCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAg
Zm4gPSBmbls6LTFdCisgICAgICAgICAgICBlbGlmIHRwICE9IGltcC5QWV9TT1VSQ0U6CisgICAg
ICAgICAgICAgICAgIyBEb24ndCBrbm93IHdoYXQgdGhpcyBpcy4KKyAgICAgICAgICAgICAgICBy
ZXR1cm4gTm9uZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZm4gPSBvcy5wYXRoLmpvaW4o
cHRoLCBuYW1lLnJwYXJ0aXRpb24oIi4iKVsyXSArICIucHkiKQorCisgICAgICAgIGZuX3B5cGF0
aCA9IHB5LnBhdGgubG9jYWwoZm4pCisgICAgICAgIGlmIG5vdCBzZWxmLl9zaG91bGRfcmV3cml0
ZShuYW1lLCBmbl9weXBhdGgsIHN0YXRlKToKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAg
ICAgICAgc2VsZi5fcmV3cml0dGVuX25hbWVzLmFkZChuYW1lKQorCisgICAgICAgICMgVGhlIHJl
cXVlc3RlZCBtb2R1bGUgbG9va3MgbGlrZSBhIHRlc3QgZmlsZSwgc28gcmV3cml0ZSBpdC4gVGhp
cyBpcworICAgICAgICAjIHRoZSBtb3N0IG1hZ2ljYWwgcGFydCBvZiB0aGUgcHJvY2VzczogbG9h
ZCB0aGUgc291cmNlLCByZXdyaXRlIHRoZQorICAgICAgICAjIGFzc2VydHMsIGFuZCBsb2FkIHRo
ZSByZXdyaXR0ZW4gc291cmNlLiBXZSBhbHNvIGNhY2hlIHRoZSByZXdyaXR0ZW4KKyAgICAgICAg
IyBtb2R1bGUgY29kZSBpbiBhIHNwZWNpYWwgcHljLiBXZSBtdXN0IGJlIGF3YXJlIG9mIHRoZSBw
b3NzaWJpbGl0eSBvZgorICAgICAgICAjIGNvbmN1cnJlbnQgcHl0ZXN0IHByb2Nlc3NlcyByZXdy
aXRpbmcgYW5kIGxvYWRpbmcgcHljcy4gVG8gYXZvaWQKKyAgICAgICAgIyB0cmlja3kgcmFjZSBj
b25kaXRpb25zLCB3ZSBtYWludGFpbiB0aGUgZm9sbG93aW5nIGludmFyaWFudDogVGhlCisgICAg
ICAgICMgY2FjaGVkIHB5YyBpcyBhbHdheXMgYSBjb21wbGV0ZSwgdmFsaWQgcHljLiBPcGVyYXRp
b25zIG9uIGl0IG11c3QgYmUKKyAgICAgICAgIyBhdG9taWMuIFBPU0lYJ3MgYXRvbWljIHJlbmFt
ZSBjb21lcyBpbiBoYW5keS4KKyAgICAgICAgd3JpdGUgPSBub3Qgc3lzLmRvbnRfd3JpdGVfYnl0
ZWNvZGUKKyAgICAgICAgY2FjaGVfZGlyID0gb3MucGF0aC5qb2luKGZuX3B5cGF0aC5kaXJuYW1l
LCAiX19weWNhY2hlX18iKQorICAgICAgICBpZiB3cml0ZToKKyAgICAgICAgICAgIHRyeToKKyAg
ICAgICAgICAgICAgICBvcy5ta2RpcihjYWNoZV9kaXIpCisgICAgICAgICAgICBleGNlcHQgT1NF
cnJvcjoKKyAgICAgICAgICAgICAgICBlID0gc3lzLmV4Y19pbmZvKClbMV0uZXJybm8KKyAgICAg
ICAgICAgICAgICBpZiBlID09IGVycm5vLkVFWElTVDoKKyAgICAgICAgICAgICAgICAgICAgIyBF
aXRoZXIgdGhlIF9fcHljYWNoZV9fIGRpcmVjdG9yeSBhbHJlYWR5IGV4aXN0cyAodGhlCisgICAg
ICAgICAgICAgICAgICAgICMgY29tbW9uIGNhc2UpIG9yIGl0J3MgYmxvY2tlZCBieSBhIG5vbi1k
aXIgbm9kZS4gSW4gdGhlCisgICAgICAgICAgICAgICAgICAgICMgbGF0dGVyIGNhc2UsIHdlJ2xs
IGlnbm9yZSBpdCBpbiBfd3JpdGVfcHljLgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICAgICAgICAgZWxpZiBlIGluIFtlcnJuby5FTk9FTlQsIGVycm5vLkVOT1RESVJdOgorICAg
ICAgICAgICAgICAgICAgICAjIE9uZSBvZiB0aGUgcGF0aCBjb21wb25lbnRzIHdhcyBub3QgYSBk
aXJlY3RvcnksIGxpa2VseQorICAgICAgICAgICAgICAgICAgICAjIGJlY2F1c2Ugd2UncmUgaW4g
YSB6aXAgZmlsZS4KKyAgICAgICAgICAgICAgICAgICAgd3JpdGUgPSBGYWxzZQorICAgICAgICAg
ICAgICAgIGVsaWYgZSBpbiBbZXJybm8uRUFDQ0VTLCBlcnJuby5FUk9GUywgZXJybm8uRVBFUk1d
OgorICAgICAgICAgICAgICAgICAgICBzdGF0ZS50cmFjZSgicmVhZCBvbmx5IGRpcmVjdG9yeTog
JXIiICUgZm5fcHlwYXRoLmRpcm5hbWUpCisgICAgICAgICAgICAgICAgICAgIHdyaXRlID0gRmFs
c2UKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByYWlzZQorICAg
ICAgICBjYWNoZV9uYW1lID0gZm5fcHlwYXRoLmJhc2VuYW1lWzotM10gKyBQWUNfVEFJTAorICAg
ICAgICBweWMgPSBvcy5wYXRoLmpvaW4oY2FjaGVfZGlyLCBjYWNoZV9uYW1lKQorICAgICAgICAj
IE5vdGljZSB0aGF0IGV2ZW4gaWYgd2UncmUgaW4gYSByZWFkLW9ubHkgZGlyZWN0b3J5LCBJJ20g
Z29pbmcKKyAgICAgICAgIyB0byBjaGVjayBmb3IgYSBjYWNoZWQgcHljLiBUaGlzIG1heSBub3Qg
YmUgb3B0aW1hbC4uLgorICAgICAgICBjbyA9IF9yZWFkX3B5Yyhmbl9weXBhdGgsIHB5Yywgc3Rh
dGUudHJhY2UpCisgICAgICAgIGlmIGNvIGlzIE5vbmU6CisgICAgICAgICAgICBzdGF0ZS50cmFj
ZSgicmV3cml0aW5nICVyIiAlIChmbiwpKQorICAgICAgICAgICAgc291cmNlX3N0YXQsIGNvID0g
X3Jld3JpdGVfdGVzdChzZWxmLmNvbmZpZywgZm5fcHlwYXRoKQorICAgICAgICAgICAgaWYgY28g
aXMgTm9uZToKKyAgICAgICAgICAgICAgICAjIFByb2JhYmx5IGEgU3ludGF4RXJyb3IgaW4gdGhl
IHRlc3QuCisgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgICAgIGlmIHdyaXRl
OgorICAgICAgICAgICAgICAgIF9tYWtlX3Jld3JpdHRlbl9weWMoc3RhdGUsIHNvdXJjZV9zdGF0
LCBweWMsIGNvKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc3RhdGUudHJhY2UoImZvdW5k
IGNhY2hlZCByZXdyaXR0ZW4gcHljIGZvciAlciIgJSAoZm4sKSkKKyAgICAgICAgc2VsZi5tb2R1
bGVzW25hbWVdID0gY28sIHB5YworICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9zaG91
bGRfcmV3cml0ZShzZWxmLCBuYW1lLCBmbl9weXBhdGgsIHN0YXRlKToKKyAgICAgICAgIyBhbHdh
eXMgcmV3cml0ZSBjb25mdGVzdCBmaWxlcworICAgICAgICBmbiA9IHN0cihmbl9weXBhdGgpCisg
ICAgICAgIGlmIGZuX3B5cGF0aC5iYXNlbmFtZSA9PSAnY29uZnRlc3QucHknOgorICAgICAgICAg
ICAgc3RhdGUudHJhY2UoInJld3JpdGluZyBjb25mdGVzdCBmaWxlOiAlciIgJSAoZm4sKSkKKyAg
ICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgaWYgc2VsZi5zZXNzaW9uIGlzIG5vdCBO
b25lOgorICAgICAgICAgICAgaWYgc2VsZi5zZXNzaW9uLmlzaW5pdHBhdGgoZm4pOgorICAgICAg
ICAgICAgICAgIHN0YXRlLnRyYWNlKCJtYXRjaGVkIHRlc3QgZmlsZSAod2FzIHNwZWNpZmllZCBv
biBjbWRsaW5lKTogJXIiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm4sKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgICAgICMgbW9kdWxlcyBub3QgcGFzc2Vk
IGV4cGxpY2l0bHkgb24gdGhlIGNvbW1hbmQgbGluZSBhcmUgb25seQorICAgICAgICAjIHJld3Jp
dHRlbiBpZiB0aGV5IG1hdGNoIHRoZSBuYW1pbmcgY29udmVudGlvbiBmb3IgdGVzdCBmaWxlcwor
ICAgICAgICBmb3IgcGF0IGluIHNlbGYuZm5wYXRzOgorICAgICAgICAgICAgaWYgZm5fcHlwYXRo
LmZubWF0Y2gocGF0KToKKyAgICAgICAgICAgICAgICBzdGF0ZS50cmFjZSgibWF0Y2hlZCB0ZXN0
IGZpbGUgJXIiICUgKGZuLCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAgICAg
ICBmb3IgbWFya2VkIGluIHNlbGYuX211c3RfcmV3cml0ZToKKyAgICAgICAgICAgIGlmIG5hbWUg
PT0gbWFya2VkIG9yIG5hbWUuc3RhcnRzd2l0aChtYXJrZWQgKyAnLicpOgorICAgICAgICAgICAg
ICAgIHN0YXRlLnRyYWNlKCJtYXRjaGVkIG1hcmtlZCBmaWxlICVyIChmcm9tICVyKSIgJSAobmFt
ZSwgbWFya2VkKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgICAgIHJldHVy
biBGYWxzZQorCisgICAgZGVmIG1hcmtfcmV3cml0ZShzZWxmLCAqbmFtZXMpOgorICAgICAgICAi
IiJNYXJrIGltcG9ydCBuYW1lcyBhcyBuZWVkaW5nIHRvIGJlIHJld3JpdHRlbi4KKworICAgICAg
ICBUaGUgbmFtZWQgbW9kdWxlIG9yIHBhY2thZ2UgYXMgd2VsbCBhcyBhbnkgbmVzdGVkIG1vZHVs
ZXMgd2lsbAorICAgICAgICBiZSByZXdyaXR0ZW4gb24gaW1wb3J0LgorICAgICAgICAiIiIKKyAg
ICAgICAgYWxyZWFkeV9pbXBvcnRlZCA9IHNldChuYW1lcykuaW50ZXJzZWN0aW9uKHNldChzeXMu
bW9kdWxlcykpCisgICAgICAgIGlmIGFscmVhZHlfaW1wb3J0ZWQ6CisgICAgICAgICAgICBmb3Ig
bmFtZSBpbiBhbHJlYWR5X2ltcG9ydGVkOgorICAgICAgICAgICAgICAgIGlmIG5hbWUgbm90IGlu
IHNlbGYuX3Jld3JpdHRlbl9uYW1lczoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fd2Fybl9h
bHJlYWR5X2ltcG9ydGVkKG5hbWUpCisgICAgICAgIHNlbGYuX211c3RfcmV3cml0ZS51cGRhdGUo
bmFtZXMpCisKKyAgICBkZWYgX3dhcm5fYWxyZWFkeV9pbXBvcnRlZChzZWxmLCBuYW1lKToKKyAg
ICAgICAgc2VsZi5jb25maWcud2FybigKKyAgICAgICAgICAgICdQMScsCisgICAgICAgICAgICAn
TW9kdWxlIGFscmVhZHkgaW1wb3J0ZWQgc28gY2Fubm90IGJlIHJld3JpdHRlbjogJXMnICUgbmFt
ZSkKKworICAgIGRlZiBsb2FkX21vZHVsZShzZWxmLCBuYW1lKToKKyAgICAgICAgIyBJZiB0aGVy
ZSBpcyBhbiBleGlzdGluZyBtb2R1bGUgb2JqZWN0IG5hbWVkICdmdWxsbmFtZScgaW4KKyAgICAg
ICAgIyBzeXMubW9kdWxlcywgdGhlIGxvYWRlciBtdXN0IHVzZSB0aGF0IGV4aXN0aW5nIG1vZHVs
ZS4gKE90aGVyd2lzZSwKKyAgICAgICAgIyB0aGUgcmVsb2FkKCkgYnVpbHRpbiB3aWxsIG5vdCB3
b3JrIGNvcnJlY3RseS4pCisgICAgICAgIGlmIG5hbWUgaW4gc3lzLm1vZHVsZXM6CisgICAgICAg
ICAgICByZXR1cm4gc3lzLm1vZHVsZXNbbmFtZV0KKworICAgICAgICBjbywgcHljID0gc2VsZi5t
b2R1bGVzLnBvcChuYW1lKQorICAgICAgICAjIEkgd2lzaCBJIGNvdWxkIGp1c3QgY2FsbCBpbXAu
bG9hZF9jb21waWxlZCBoZXJlLCBidXQgX19maWxlX18gaGFzIHRvCisgICAgICAgICMgYmUgc2V0
IHByb3Blcmx5LiBJbiBQeXRob24gMy4yKywgdGhpcyBhbGwgd291bGQgYmUgaGFuZGxlZCBjb3Jy
ZWN0bHkKKyAgICAgICAgIyBieSBsb2FkX2NvbXBpbGVkLgorICAgICAgICBtb2QgPSBzeXMubW9k
dWxlc1tuYW1lXSA9IGltcC5uZXdfbW9kdWxlKG5hbWUpCisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIG1vZC5fX2ZpbGVfXyA9IGNvLmNvX2ZpbGVuYW1lCisgICAgICAgICAgICAjIE5vcm1hbGx5
LCB0aGlzIGF0dHJpYnV0ZSBpcyAzLjIrLgorICAgICAgICAgICAgbW9kLl9fY2FjaGVkX18gPSBw
eWMKKyAgICAgICAgICAgIG1vZC5fX2xvYWRlcl9fID0gc2VsZgorICAgICAgICAgICAgcHkuYnVp
bHRpbi5leGVjXyhjbywgbW9kLl9fZGljdF9fKQorICAgICAgICBleGNlcHQ6ICAjIG5vcWEKKyAg
ICAgICAgICAgIGlmIG5hbWUgaW4gc3lzLm1vZHVsZXM6CisgICAgICAgICAgICAgICAgZGVsIHN5
cy5tb2R1bGVzW25hbWVdCisgICAgICAgICAgICByYWlzZQorICAgICAgICByZXR1cm4gc3lzLm1v
ZHVsZXNbbmFtZV0KKworICAgIGRlZiBpc19wYWNrYWdlKHNlbGYsIG5hbWUpOgorICAgICAgICB0
cnk6CisgICAgICAgICAgICBmZCwgZm4sIGRlc2MgPSBpbXAuZmluZF9tb2R1bGUobmFtZSkKKyAg
ICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAg
ICAgIGlmIGZkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgZmQuY2xvc2UoKQorICAgICAgICB0
cCA9IGRlc2NbMl0KKyAgICAgICAgcmV0dXJuIHRwID09IGltcC5QS0dfRElSRUNUT1JZCisKKyAg
ICBAY2xhc3NtZXRob2QKKyAgICBkZWYgX3JlZ2lzdGVyX3dpdGhfcGtnX3Jlc291cmNlcyhjbHMp
OgorICAgICAgICAiIiIKKyAgICAgICAgRW5zdXJlIHBhY2thZ2UgcmVzb3VyY2VzIGNhbiBiZSBs
b2FkZWQgZnJvbSB0aGlzIGxvYWRlci4gTWF5IGJlIGNhbGxlZAorICAgICAgICBtdWx0aXBsZSB0
aW1lcywgYXMgdGhlIG9wZXJhdGlvbiBpcyBpZGVtcG90ZW50LgorICAgICAgICAiIiIKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgaW1wb3J0IHBrZ19yZXNvdXJjZXMKKyAgICAgICAgICAgICMg
YWNjZXNzIGFuIGF0dHJpYnV0ZSBpbiBjYXNlIGEgZGVmZXJyZWQgaW1wb3J0ZXIgaXMgcHJlc2Vu
dAorICAgICAgICAgICAgcGtnX3Jlc291cmNlcy5fX25hbWVfXworICAgICAgICBleGNlcHQgSW1w
b3J0RXJyb3I6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICAjIFNpbmNlIHB5dGVzdCB0
ZXN0cyBhcmUgYWx3YXlzIGxvY2F0ZWQgaW4gdGhlIGZpbGUgc3lzdGVtLCB0aGUKKyAgICAgICAg
IyAgRGVmYXVsdFByb3ZpZGVyIGlzIGFwcHJvcHJpYXRlLgorICAgICAgICBwa2dfcmVzb3VyY2Vz
LnJlZ2lzdGVyX2xvYWRlcl90eXBlKGNscywgcGtnX3Jlc291cmNlcy5EZWZhdWx0UHJvdmlkZXIp
CisKKyAgICBkZWYgZ2V0X2RhdGEoc2VsZiwgcGF0aG5hbWUpOgorICAgICAgICAiIiJPcHRpb25h
bCBQRVAzMDIgZ2V0X2RhdGEgQVBJLgorICAgICAgICAiIiIKKyAgICAgICAgd2l0aCBvcGVuKHBh
dGhuYW1lLCAncmInKSBhcyBmOgorICAgICAgICAgICAgcmV0dXJuIGYucmVhZCgpCisKKworZGVm
IF93cml0ZV9weWMoc3RhdGUsIGNvLCBzb3VyY2Vfc3RhdCwgcHljKToKKyAgICAjIFRlY2huaWNh
bGx5LCB3ZSBkb24ndCBoYXZlIHRvIGhhdmUgdGhlIHNhbWUgcHljIGZvcm1hdCBhcworICAgICMg
KEMpUHl0aG9uLCBzaW5jZSB0aGVzZSAicHljcyIgc2hvdWxkIG5ldmVyIGJlIHNlZW4gYnkgYnVp
bHRpbgorICAgICMgaW1wb3J0LiBIb3dldmVyLCB0aGVyZSdzIGxpdHRsZSByZWFzb24gZGV2aWF0
ZSwgYW5kIEkgaG9wZQorICAgICMgc29tZXRpbWUgdG8gYmUgYWJsZSB0byB1c2UgaW1wLmxvYWRf
Y29tcGlsZWQgdG8gbG9hZCB0aGVtLiAoU2VlCisgICAgIyB0aGUgY29tbWVudCBpbiBsb2FkX21v
ZHVsZSBhYm92ZS4pCisgICAgdHJ5OgorICAgICAgICBmcCA9IG9wZW4ocHljLCAid2IiKQorICAg
IGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICBlcnIgPSBzeXMuZXhjX2luZm8oKVsxXS5lcnJubwor
ICAgICAgICBzdGF0ZS50cmFjZSgiZXJyb3Igd3JpdGluZyBweWMgZmlsZSBhdCAlczogZXJybm89
JXMiICUgKHB5YywgZXJyKSkKKyAgICAgICAgIyB3ZSBpZ25vcmUgYW55IGZhaWx1cmUgdG8gd3Jp
dGUgdGhlIGNhY2hlIGZpbGUKKyAgICAgICAgIyB0aGVyZSBhcmUgbWFueSByZWFzb25zLCBwZXJt
aXNzaW9uLWRlbmllZCwgX19weWNhY2hlX18gYmVpbmcgYQorICAgICAgICAjIGZpbGUgZXRjLgor
ICAgICAgICByZXR1cm4gRmFsc2UKKyAgICB0cnk6CisgICAgICAgIGZwLndyaXRlKGltcC5nZXRf
bWFnaWMoKSkKKyAgICAgICAgbXRpbWUgPSBpbnQoc291cmNlX3N0YXQubXRpbWUpCisgICAgICAg
IHNpemUgPSBzb3VyY2Vfc3RhdC5zaXplICYgMHhGRkZGRkZGRgorICAgICAgICBmcC53cml0ZShz
dHJ1Y3QucGFjaygiPGxsIiwgbXRpbWUsIHNpemUpKQorICAgICAgICBtYXJzaGFsLmR1bXAoY28s
IGZwKQorICAgIGZpbmFsbHk6CisgICAgICAgIGZwLmNsb3NlKCkKKyAgICByZXR1cm4gVHJ1ZQor
CisKK1JOID0gIlxyXG4iLmVuY29kZSgidXRmLTgiKQorTiA9ICJcbiIuZW5jb2RlKCJ1dGYtOCIp
CisKK2Nvb2tpZV9yZSA9IHJlLmNvbXBpbGUociJeWyBcdFxmXSojLipjb2RpbmdbOj1dWyBcdF0q
Wy1cdy5dKyIpCitCT01fVVRGOCA9ICdceGVmXHhiYlx4YmYnCisKKworZGVmIF9yZXdyaXRlX3Rl
c3QoY29uZmlnLCBmbik6CisgICAgIiIiVHJ5IHRvIHJlYWQgYW5kIHJld3JpdGUgKmZuKiBhbmQg
cmV0dXJuIHRoZSBjb2RlIG9iamVjdC4iIiIKKyAgICBzdGF0ZSA9IGNvbmZpZy5fYXNzZXJ0c3Rh
dGUKKyAgICB0cnk6CisgICAgICAgIHN0YXQgPSBmbi5zdGF0KCkKKyAgICAgICAgc291cmNlID0g
Zm4ucmVhZCgicmIiKQorICAgIGV4Y2VwdCBFbnZpcm9ubWVudEVycm9yOgorICAgICAgICByZXR1
cm4gTm9uZSwgTm9uZQorICAgIGlmIEFTQ0lJX0lTX0RFRkFVTFRfRU5DT0RJTkc6CisgICAgICAg
ICMgQVNDSUkgaXMgdGhlIGRlZmF1bHQgZW5jb2RpbmcgaW4gUHl0aG9uIDIuIFdpdGhvdXQgYSBj
b2RpbmcKKyAgICAgICAgIyBkZWNsYXJhdGlvbiwgUHl0aG9uIDIgd2lsbCBjb21wbGFpbiBhYm91
dCBhbnkgYnl0ZXMgaW4gdGhlIGZpbGUKKyAgICAgICAgIyBvdXRzaWRlIHRoZSBBU0NJSSByYW5n
ZS4gU2FkbHksIHRoaXMgYmVoYXZpb3IgZG9lcyBub3QgZXh0ZW5kIHRvCisgICAgICAgICMgY29t
cGlsZSgpIG9yIGFzdC5wYXJzZSgpLCB3aGljaCBwcmVmZXIgdG8gaW50ZXJwcmV0IHRoZSBieXRl
cyBhcworICAgICAgICAjIGxhdGluLTEuIChBdCBsZWFzdCB0aGV5IHByb3Blcmx5IGhhbmRsZSBl
eHBsaWNpdCBjb2RpbmcgY29va2llcy4pIFRvCisgICAgICAgICMgcHJlc2VydmUgdGhpcyBlcnJv
ciBiZWhhdmlvciwgd2UgY291bGQgZm9yY2UgYXN0LnBhcnNlKCkgdG8gdXNlIEFTQ0lJCisgICAg
ICAgICMgYXMgdGhlIGVuY29kaW5nIGJ5IGluc2VydGluZyBhIGNvZGluZyBjb29raWUuIFVuZm9y
dHVuYXRlbHksIHRoYXQKKyAgICAgICAgIyBtZXNzZXMgdXAgbGluZSBudW1iZXJzLiBUaHVzLCB3
ZSBoYXZlIHRvIGNoZWNrIG91cnNlbHZlcyBpZiBhbnl0aGluZworICAgICAgICAjIGlzIG91dHNp
ZGUgdGhlIEFTQ0lJIHJhbmdlIGluIHRoZSBjYXNlIG5vIGVuY29kaW5nIGlzIGV4cGxpY2l0bHkK
KyAgICAgICAgIyBkZWNsYXJlZC4gRm9yIG1vcmUgY29udGV4dCwgc2VlIGlzc3VlICMyNjkuIFlh
eSBmb3IgUHl0aG9uIDMgd2hpY2gKKyAgICAgICAgIyBnZXRzIHRoaXMgcmlnaHQuCisgICAgICAg
IGVuZDEgPSBzb3VyY2UuZmluZCgiXG4iKQorICAgICAgICBlbmQyID0gc291cmNlLmZpbmQoIlxu
IiwgZW5kMSArIDEpCisgICAgICAgIGlmIChub3Qgc291cmNlLnN0YXJ0c3dpdGgoQk9NX1VURjgp
IGFuZAorICAgICAgICAgICAgY29va2llX3JlLm1hdGNoKHNvdXJjZVswOmVuZDFdKSBpcyBOb25l
IGFuZAorICAgICAgICAgICAgICAgIGNvb2tpZV9yZS5tYXRjaChzb3VyY2VbZW5kMSArIDE6ZW5k
Ml0pIGlzIE5vbmUpOgorICAgICAgICAgICAgaWYgaGFzYXR0cihzdGF0ZSwgIl9pbmRlY29kZSIp
OgorICAgICAgICAgICAgICAgICMgZW5jb2RpbmdzIGltcG9ydGVkIHVzIGFnYWluLCBzbyBkb24n
dCByZXdyaXRlLgorICAgICAgICAgICAgICAgIHJldHVybiBOb25lLCBOb25lCisgICAgICAgICAg
ICBzdGF0ZS5faW5kZWNvZGUgPSBUcnVlCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBzb3VyY2UuZGVjb2RlKCJhc2NpaSIpCisgICAg
ICAgICAgICAgICAgZXhjZXB0IFVuaWNvZGVEZWNvZGVFcnJvcjoKKyAgICAgICAgICAgICAgICAg
ICAgIyBMZXQgaXQgZmFpbCBpbiByZWFsIGltcG9ydC4KKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIE5vbmUsIE5vbmUKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgZGVs
IHN0YXRlLl9pbmRlY29kZQorICAgIHRyeToKKyAgICAgICAgdHJlZSA9IGFzdC5wYXJzZShzb3Vy
Y2UpCisgICAgZXhjZXB0IFN5bnRheEVycm9yOgorICAgICAgICAjIExldCB0aGlzIHBvcCB1cCBh
Z2FpbiBpbiB0aGUgcmVhbCBpbXBvcnQuCisgICAgICAgIHN0YXRlLnRyYWNlKCJmYWlsZWQgdG8g
cGFyc2U6ICVyIiAlIChmbiwpKQorICAgICAgICByZXR1cm4gTm9uZSwgTm9uZQorICAgIHJld3Jp
dGVfYXNzZXJ0cyh0cmVlLCBmbiwgY29uZmlnKQorICAgIHRyeToKKyAgICAgICAgY28gPSBjb21w
aWxlKHRyZWUsIGZuLnN0cnBhdGgsICJleGVjIiwgZG9udF9pbmhlcml0PVRydWUpCisgICAgZXhj
ZXB0IFN5bnRheEVycm9yOgorICAgICAgICAjIEl0J3MgcG9zc2libGUgdGhhdCB0aGlzIGVycm9y
IGlzIGZyb20gc29tZSBidWcgaW4gdGhlCisgICAgICAgICMgYXNzZXJ0aW9uIHJld3JpdGluZywg
YnV0IEkgZG9uJ3Qga25vdyBvZiBhIGZhc3Qgd2F5IHRvIHRlbGwuCisgICAgICAgIHN0YXRlLnRy
YWNlKCJmYWlsZWQgdG8gY29tcGlsZTogJXIiICUgKGZuLCkpCisgICAgICAgIHJldHVybiBOb25l
LCBOb25lCisgICAgcmV0dXJuIHN0YXQsIGNvCisKKworZGVmIF9tYWtlX3Jld3JpdHRlbl9weWMo
c3RhdGUsIHNvdXJjZV9zdGF0LCBweWMsIGNvKToKKyAgICAiIiJUcnkgdG8gZHVtcCByZXdyaXR0
ZW4gY29kZSB0byAqcHljKi4iIiIKKyAgICBpZiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgid2lu
Iik6CisgICAgICAgICMgV2luZG93cyBncmFudHMgZXhjbHVzaXZlIGFjY2VzcyB0byBvcGVuIGZp
bGVzIGFuZCBkb2Vzbid0IGhhdmUgYXRvbWljCisgICAgICAgICMgcmVuYW1lLCBzbyBqdXN0IHdy
aXRlIGludG8gdGhlIGZpbmFsIGZpbGUuCisgICAgICAgIF93cml0ZV9weWMoc3RhdGUsIGNvLCBz
b3VyY2Vfc3RhdCwgcHljKQorICAgIGVsc2U6CisgICAgICAgICMgV2hlbiBub3Qgb24gd2luZG93
cywgYXNzdW1lIHJlbmFtZSBpcyBhdG9taWMuIER1bXAgdGhlIGNvZGUgb2JqZWN0CisgICAgICAg
ICMgaW50byBhIGZpbGUgc3BlY2lmaWMgdG8gdGhpcyBwcm9jZXNzIGFuZCBhdG9taWNhbGx5IHJl
cGxhY2UgaXQuCisgICAgICAgIHByb2NfcHljID0gcHljICsgIi4iICsgc3RyKG9zLmdldHBpZCgp
KQorICAgICAgICBpZiBfd3JpdGVfcHljKHN0YXRlLCBjbywgc291cmNlX3N0YXQsIHByb2NfcHlj
KToKKyAgICAgICAgICAgIG9zLnJlbmFtZShwcm9jX3B5YywgcHljKQorCisKK2RlZiBfcmVhZF9w
eWMoc291cmNlLCBweWMsIHRyYWNlPWxhbWJkYSB4OiBOb25lKToKKyAgICAiIiJQb3NzaWJseSBy
ZWFkIGEgcHl0ZXN0IHB5YyBjb250YWluaW5nIHJld3JpdHRlbiBjb2RlLgorCisgICAgUmV0dXJu
IHJld3JpdHRlbiBjb2RlIGlmIHN1Y2Nlc3NmdWwgb3IgTm9uZSBpZiBub3QuCisgICAgIiIiCisg
ICAgdHJ5OgorICAgICAgICBmcCA9IG9wZW4ocHljLCAicmIiKQorICAgIGV4Y2VwdCBJT0Vycm9y
OgorICAgICAgICByZXR1cm4gTm9uZQorICAgIHdpdGggZnA6CisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgIG10aW1lID0gaW50KHNvdXJjZS5tdGltZSgpKQorICAgICAgICAgICAgc2l6ZSA9IHNv
dXJjZS5zaXplKCkKKyAgICAgICAgICAgIGRhdGEgPSBmcC5yZWFkKDEyKQorICAgICAgICBleGNl
cHQgRW52aXJvbm1lbnRFcnJvciBhcyBlOgorICAgICAgICAgICAgdHJhY2UoJ19yZWFkX3B5Yygl
cyk6IEVudmlyb25tZW50RXJyb3IgJXMnICUgKHNvdXJjZSwgZSkpCisgICAgICAgICAgICByZXR1
cm4gTm9uZQorICAgICAgICAjIENoZWNrIGZvciBpbnZhbGlkIG9yIG91dCBvZiBkYXRlIHB5YyBm
aWxlLgorICAgICAgICBpZiAobGVuKGRhdGEpICE9IDEyIG9yIGRhdGFbOjRdICE9IGltcC5nZXRf
bWFnaWMoKSBvcgorICAgICAgICAgICAgICAgIHN0cnVjdC51bnBhY2soIjxsbCIsIGRhdGFbNDpd
KSAhPSAobXRpbWUsIHNpemUpKToKKyAgICAgICAgICAgIHRyYWNlKCdfcmVhZF9weWMoJXMpOiBp
bnZhbGlkIG9yIG91dCBvZiBkYXRlIHB5YycgJSBzb3VyY2UpCisgICAgICAgICAgICByZXR1cm4g
Tm9uZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBjbyA9IG1hcnNoYWwubG9hZChmcCkKKyAg
ICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgdHJhY2UoJ19yZWFkX3B5
Yyglcyk6IG1hcnNoYWwubG9hZCBlcnJvciAlcycgJSAoc291cmNlLCBlKSkKKyAgICAgICAgICAg
IHJldHVybiBOb25lCisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGNvLCB0eXBlcy5Db2RlVHlw
ZSk6CisgICAgICAgICAgICB0cmFjZSgnX3JlYWRfcHljKCVzKTogbm90IGEgY29kZSBvYmplY3Qn
ICUgc291cmNlKQorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJuIGNvCisK
KworZGVmIHJld3JpdGVfYXNzZXJ0cyhtb2QsIG1vZHVsZV9wYXRoPU5vbmUsIGNvbmZpZz1Ob25l
KToKKyAgICAiIiJSZXdyaXRlIHRoZSBhc3NlcnQgc3RhdGVtZW50cyBpbiBtb2QuIiIiCisgICAg
QXNzZXJ0aW9uUmV3cml0ZXIobW9kdWxlX3BhdGgsIGNvbmZpZykucnVuKG1vZCkKKworCitkZWYg
X3NhZmVyZXByKG9iaik6CisgICAgIiIiR2V0IGEgc2FmZSByZXByIG9mIGFuIG9iamVjdCBmb3Ig
YXNzZXJ0aW9uIGVycm9yIG1lc3NhZ2VzLgorCisgICAgVGhlIGFzc2VydGlvbiBmb3JtYXR0aW5n
ICh1dGlsLmZvcm1hdF9leHBsYW5hdGlvbigpKSByZXF1aXJlcworICAgIG5ld2xpbmVzIHRvIGJl
IGVzY2FwZWQgc2luY2UgdGhleSBhcmUgYSBzcGVjaWFsIGNoYXJhY3RlciBmb3IgaXQuCisgICAg
Tm9ybWFsbHkgYXNzZXJ0aW9uLnV0aWwuZm9ybWF0X2V4cGxhbmF0aW9uKCkgZG9lcyB0aGlzIGJ1
dCBmb3IgYQorICAgIGN1c3RvbSByZXByIGl0IGlzIHBvc3NpYmxlIHRvIGNvbnRhaW4gb25lIG9m
IHRoZSBzcGVjaWFsIGVzY2FwZQorICAgIHNlcXVlbmNlcywgZXNwZWNpYWxseSAnXG57JyBhbmQg
J1xufScgYXJlIGxpa2VseSB0byBiZSBwcmVzZW50IGluCisgICAgSlNPTiByZXBycy4KKworICAg
ICIiIgorICAgIHJlcHIgPSBweS5pby5zYWZlcmVwcihvYmopCisgICAgaWYgaXNpbnN0YW5jZShy
ZXByLCBzaXgudGV4dF90eXBlKToKKyAgICAgICAgdCA9IHNpeC50ZXh0X3R5cGUKKyAgICBlbHNl
OgorICAgICAgICB0ID0gc2l4LmJpbmFyeV90eXBlCisgICAgcmV0dXJuIHJlcHIucmVwbGFjZSh0
KCJcbiIpLCB0KCJcXG4iKSkKKworCitmcm9tIF9weXRlc3QuYXNzZXJ0aW9uLnV0aWwgaW1wb3J0
IGZvcm1hdF9leHBsYW5hdGlvbiBhcyBfZm9ybWF0X2V4cGxhbmF0aW9uICAjIG5vcWEKKworCitk
ZWYgX2Zvcm1hdF9hc3NlcnRtc2cob2JqKToKKyAgICAiIiJGb3JtYXQgdGhlIGN1c3RvbSBhc3Nl
cnRpb24gbWVzc2FnZSBnaXZlbi4KKworICAgIEZvciBzdHJpbmdzIHRoaXMgc2ltcGx5IHJlcGxh
Y2VzIG5ld2xpbmVzIHdpdGggJ1xuficgc28gdGhhdAorICAgIHV0aWwuZm9ybWF0X2V4cGxhbmF0
aW9uKCkgd2lsbCBwcmVzZXJ2ZSB0aGVtIGluc3RlYWQgb2YgZXNjYXBpbmcKKyAgICBuZXdsaW5l
cy4gIEZvciBvdGhlciBvYmplY3RzIHB5LmlvLnNhZmVyZXByKCkgaXMgdXNlZCBmaXJzdC4KKwor
ICAgICIiIgorICAgICMgcmVwcmxpYiBhcHBlYXJzIHRvIGhhdmUgYSBidWcgd2hpY2ggbWVhbnMg
dGhhdCBpZiBhIHN0cmluZworICAgICMgY29udGFpbnMgYSBuZXdsaW5lIGl0IGdldHMgZXNjYXBl
ZCwgaG93ZXZlciBpZiBhbiBvYmplY3QgaGFzIGEKKyAgICAjIC5fX3JlcHJfXygpIHdoaWNoIGNv
bnRhaW5zIG5ld2xpbmVzIGl0IGRvZXMgbm90IGdldCBlc2NhcGVkLgorICAgICMgSG93ZXZlciBp
biBlaXRoZXIgY2FzZSB3ZSB3YW50IHRvIHByZXNlcnZlIHRoZSBuZXdsaW5lLgorICAgIGlmIGlz
aW5zdGFuY2Uob2JqLCBzaXgudGV4dF90eXBlKSBvciBpc2luc3RhbmNlKG9iaiwgc2l4LmJpbmFy
eV90eXBlKToKKyAgICAgICAgcyA9IG9iagorICAgICAgICBpc19yZXByID0gRmFsc2UKKyAgICBl
bHNlOgorICAgICAgICBzID0gcHkuaW8uc2FmZXJlcHIob2JqKQorICAgICAgICBpc19yZXByID0g
VHJ1ZQorICAgIGlmIGlzaW5zdGFuY2Uocywgc2l4LnRleHRfdHlwZSk6CisgICAgICAgIHQgPSBz
aXgudGV4dF90eXBlCisgICAgZWxzZToKKyAgICAgICAgdCA9IHNpeC5iaW5hcnlfdHlwZQorICAg
IHMgPSBzLnJlcGxhY2UodCgiXG4iKSwgdCgiXG5+IikpLnJlcGxhY2UodCgiJSIpLCB0KCIlJSIp
KQorICAgIGlmIGlzX3JlcHI6CisgICAgICAgIHMgPSBzLnJlcGxhY2UodCgiXFxuIiksIHQoIlxu
fiIpKQorICAgIHJldHVybiBzCisKKworZGVmIF9zaG91bGRfcmVwcl9nbG9iYWxfbmFtZShvYmop
OgorICAgIHJldHVybiBub3QgaGFzYXR0cihvYmosICJfX25hbWVfXyIpIGFuZCBub3QgY2FsbGFi
bGUob2JqKQorCisKK2RlZiBfZm9ybWF0X2Jvb2xvcChleHBsYW5hdGlvbnMsIGlzX29yKToKKyAg
ICBleHBsYW5hdGlvbiA9ICIoIiArIChpc19vciBhbmQgIiBvciAiIG9yICIgYW5kICIpLmpvaW4o
ZXhwbGFuYXRpb25zKSArICIpIgorICAgIGlmIGlzaW5zdGFuY2UoZXhwbGFuYXRpb24sIHNpeC50
ZXh0X3R5cGUpOgorICAgICAgICB0ID0gc2l4LnRleHRfdHlwZQorICAgIGVsc2U6CisgICAgICAg
IHQgPSBzaXguYmluYXJ5X3R5cGUKKyAgICByZXR1cm4gZXhwbGFuYXRpb24ucmVwbGFjZSh0KCcl
JyksIHQoJyUlJykpCisKKworZGVmIF9jYWxsX3JlcHJjb21wYXJlKG9wcywgcmVzdWx0cywgZXhw
bHMsIGVhY2hfb2JqKToKKyAgICBmb3IgaSwgcmVzLCBleHBsIGluIHppcChyYW5nZShsZW4ob3Bz
KSksIHJlc3VsdHMsIGV4cGxzKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZG9uZSA9IG5v
dCByZXMKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIGRvbmUgPSBUcnVl
CisgICAgICAgIGlmIGRvbmU6CisgICAgICAgICAgICBicmVhaworICAgIGlmIHV0aWwuX3JlcHJj
b21wYXJlIGlzIG5vdCBOb25lOgorICAgICAgICBjdXN0b20gPSB1dGlsLl9yZXByY29tcGFyZShv
cHNbaV0sIGVhY2hfb2JqW2ldLCBlYWNoX29ialtpICsgMV0pCisgICAgICAgIGlmIGN1c3RvbSBp
cyBub3QgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBjdXN0b20KKyAgICByZXR1cm4gZXhwbAor
CisKK3VuYXJ5X21hcCA9IHsKKyAgICBhc3QuTm90OiAibm90ICVzIiwKKyAgICBhc3QuSW52ZXJ0
OiAifiVzIiwKKyAgICBhc3QuVVN1YjogIi0lcyIsCisgICAgYXN0LlVBZGQ6ICIrJXMiCit9CisK
K2Jpbm9wX21hcCA9IHsKKyAgICBhc3QuQml0T3I6ICJ8IiwKKyAgICBhc3QuQml0WG9yOiAiXiIs
CisgICAgYXN0LkJpdEFuZDogIiYiLAorICAgIGFzdC5MU2hpZnQ6ICI8PCIsCisgICAgYXN0LlJT
aGlmdDogIj4+IiwKKyAgICBhc3QuQWRkOiAiKyIsCisgICAgYXN0LlN1YjogIi0iLAorICAgIGFz
dC5NdWx0OiAiKiIsCisgICAgYXN0LkRpdjogIi8iLAorICAgIGFzdC5GbG9vckRpdjogIi8vIiwK
KyAgICBhc3QuTW9kOiAiJSUiLCAgIyBlc2NhcGVkIGZvciBzdHJpbmcgZm9ybWF0dGluZworICAg
IGFzdC5FcTogIj09IiwKKyAgICBhc3QuTm90RXE6ICIhPSIsCisgICAgYXN0Lkx0OiAiPCIsCisg
ICAgYXN0Lkx0RTogIjw9IiwKKyAgICBhc3QuR3Q6ICI+IiwKKyAgICBhc3QuR3RFOiAiPj0iLAor
ICAgIGFzdC5Qb3c6ICIqKiIsCisgICAgYXN0LklzOiAiaXMiLAorICAgIGFzdC5Jc05vdDogImlz
IG5vdCIsCisgICAgYXN0LkluOiAiaW4iLAorICAgIGFzdC5Ob3RJbjogIm5vdCBpbiIKK30KKyMg
UHl0aG9uIDMuNSsgY29tcGF0aWJpbGl0eQordHJ5OgorICAgIGJpbm9wX21hcFthc3QuTWF0TXVs
dF0gPSAiQCIKK2V4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICBwYXNzCisKKyMgUHl0aG9uIDMu
NCsgY29tcGF0aWJpbGl0eQoraWYgaGFzYXR0cihhc3QsICJOYW1lQ29uc3RhbnQiKToKKyAgICBf
TmFtZUNvbnN0YW50ID0gYXN0Lk5hbWVDb25zdGFudAorZWxzZToKKyAgICBkZWYgX05hbWVDb25z
dGFudChjKToKKyAgICAgICAgcmV0dXJuIGFzdC5OYW1lKHN0cihjKSwgYXN0LkxvYWQoKSkKKwor
CitkZWYgc2V0X2xvY2F0aW9uKG5vZGUsIGxpbmVubywgY29sX29mZnNldCk6CisgICAgIiIiU2V0
IG5vZGUgbG9jYXRpb24gaW5mb3JtYXRpb24gcmVjdXJzaXZlbHkuIiIiCisgICAgZGVmIF9maXgo
bm9kZSwgbGluZW5vLCBjb2xfb2Zmc2V0KToKKyAgICAgICAgaWYgImxpbmVubyIgaW4gbm9kZS5f
YXR0cmlidXRlczoKKyAgICAgICAgICAgIG5vZGUubGluZW5vID0gbGluZW5vCisgICAgICAgIGlm
ICJjb2xfb2Zmc2V0IiBpbiBub2RlLl9hdHRyaWJ1dGVzOgorICAgICAgICAgICAgbm9kZS5jb2xf
b2Zmc2V0ID0gY29sX29mZnNldAorICAgICAgICBmb3IgY2hpbGQgaW4gYXN0Lml0ZXJfY2hpbGRf
bm9kZXMobm9kZSk6CisgICAgICAgICAgICBfZml4KGNoaWxkLCBsaW5lbm8sIGNvbF9vZmZzZXQp
CisgICAgX2ZpeChub2RlLCBsaW5lbm8sIGNvbF9vZmZzZXQpCisgICAgcmV0dXJuIG5vZGUKKwor
CitjbGFzcyBBc3NlcnRpb25SZXdyaXRlcihhc3QuTm9kZVZpc2l0b3IpOgorICAgICIiIkFzc2Vy
dGlvbiByZXdyaXRpbmcgaW1wbGVtZW50YXRpb24uCisKKyAgICBUaGUgbWFpbiBlbnRyeXBvaW50
IGlzIHRvIGNhbGwgLnJ1bigpIHdpdGggYW4gYXN0Lk1vZHVsZSBpbnN0YW5jZSwKKyAgICB0aGlz
IHdpbGwgdGhlbiBmaW5kIGFsbCB0aGUgYXNzZXJ0IHN0YXRlbWVudHMgYW5kIHJld3JpdGUgdGhl
bSB0bworICAgIHByb3ZpZGUgaW50ZXJtZWRpYXRlIHZhbHVlcyBhbmQgYSBkZXRhaWxlZCBhc3Nl
cnRpb24gZXJyb3IuICBTZWUKKyAgICBodHRwOi8vcHliaXRlcy5ibG9nc3BvdC5iZS8yMDExLzA3
L2JlaGluZC1zY2VuZXMtb2YtcHl0ZXN0cy1uZXctYXNzZXJ0aW9uLmh0bWwKKyAgICBmb3IgYW4g
b3ZlcnZpZXcgb2YgaG93IHRoaXMgd29ya3MuCisKKyAgICBUaGUgZW50cnkgcG9pbnQgaGVyZSBp
cyAucnVuKCkgd2hpY2ggd2lsbCBpdGVyYXRlIG92ZXIgYWxsIHRoZQorICAgIHN0YXRlbWVudHMg
aW4gYW4gYXN0Lk1vZHVsZSBhbmQgZm9yIGVhY2ggYXN0LkFzc2VydCBzdGF0ZW1lbnQgaXQKKyAg
ICBmaW5kcyBjYWxsIC52aXNpdCgpIHdpdGggaXQuICBUaGVuIC52aXNpdF9Bc3NlcnQoKSB0YWtl
cyBvdmVyIGFuZAorICAgIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBuZXcgYXN0IHN0YXRl
bWVudHMgdG8gcmVwbGFjZSB0aGUKKyAgICBvcmlnaW5hbCBhc3NlcnQgc3RhdGVtZW50OiBpdCBy
ZXdyaXRlcyB0aGUgdGVzdCBvZiBhbiBhc3NlcnRpb24KKyAgICB0byBwcm92aWRlIGludGVybWVk
aWF0ZSB2YWx1ZXMgYW5kIHJlcGxhY2UgaXQgd2l0aCBhbiBpZiBzdGF0ZW1lbnQKKyAgICB3aGlj
aCByYWlzZXMgYW4gYXNzZXJ0aW9uIGVycm9yIHdpdGggYSBkZXRhaWxlZCBleHBsYW5hdGlvbiBp
bgorICAgIGNhc2UgdGhlIGV4cHJlc3Npb24gaXMgZmFsc2UuCisKKyAgICBGb3IgdGhpcyAudmlz
aXRfQXNzZXJ0KCkgdXNlcyB0aGUgdmlzaXRvciBwYXR0ZXJuIHRvIHZpc2l0IGFsbCB0aGUKKyAg
ICBBU1Qgbm9kZXMgb2YgdGhlIGFzdC5Bc3NlcnQudGVzdCBmaWVsZCwgZWFjaCB2aXNpdCBjYWxs
IHJldHVybmluZworICAgIGFuIEFTVCBub2RlIGFuZCB0aGUgY29ycmVzcG9uZGluZyBleHBsYW5h
dGlvbiBzdHJpbmcuICBEdXJpbmcgdGhpcworICAgIHN0YXRlIGlzIGtlcHQgaW4gc2V2ZXJhbCBp
bnN0YW5jZSBhdHRyaWJ1dGVzOgorCisgICAgOnN0YXRlbWVudHM6IEFsbCB0aGUgQVNUIHN0YXRl
bWVudHMgd2hpY2ggd2lsbCByZXBsYWNlIHRoZSBhc3NlcnQKKyAgICAgICBzdGF0ZW1lbnQuCisK
KyAgICA6dmFyaWFibGVzOiBUaGlzIGlzIHBvcHVsYXRlZCBieSAudmFyaWFibGUoKSB3aXRoIGVh
Y2ggdmFyaWFibGUKKyAgICAgICB1c2VkIGJ5IHRoZSBzdGF0ZW1lbnRzIHNvIHRoYXQgdGhleSBj
YW4gYWxsIGJlIHNldCB0byBOb25lIGF0CisgICAgICAgdGhlIGVuZCBvZiB0aGUgc3RhdGVtZW50
cy4KKworICAgIDp2YXJpYWJsZV9jb3VudGVyOiBDb3VudGVyIHRvIGNyZWF0ZSBuZXcgdW5pcXVl
IHZhcmlhYmxlcyBuZWVkZWQKKyAgICAgICBieSBzdGF0ZW1lbnRzLiAgVmFyaWFibGVzIGFyZSBj
cmVhdGVkIHVzaW5nIC52YXJpYWJsZSgpIGFuZAorICAgICAgIGhhdmUgdGhlIGZvcm0gb2YgIkBw
eV9hc3NlcnQwIi4KKworICAgIDpvbl9mYWlsdXJlOiBUaGUgQVNUIHN0YXRlbWVudHMgd2hpY2gg
d2lsbCBiZSBleGVjdXRlZCBpZiB0aGUKKyAgICAgICBhc3NlcnRpb24gdGVzdCBmYWlscy4gIFRo
aXMgaXMgdGhlIGNvZGUgd2hpY2ggd2lsbCBjb25zdHJ1Y3QKKyAgICAgICB0aGUgZmFpbHVyZSBt
ZXNzYWdlIGFuZCByYWlzZXMgdGhlIEFzc2VydGlvbkVycm9yLgorCisgICAgOmV4cGxhbmF0aW9u
X3NwZWNpZmllcnM6IEEgZGljdCBmaWxsZWQgYnkgLmV4cGxhbmF0aW9uX3BhcmFtKCkKKyAgICAg
ICB3aXRoICUtZm9ybWF0dGluZyBwbGFjZWhvbGRlcnMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcK
KyAgICAgICBleHByZXNzaW9ucyB0byB1c2UgaW4gdGhlIGJ1aWxkaW5nIG9mIGFuIGFzc2VydGlv
biBtZXNzYWdlLgorICAgICAgIFRoaXMgaXMgdXNlZCBieSAucG9wX2Zvcm1hdF9jb250ZXh0KCkg
dG8gYnVpbGQgYSBtZXNzYWdlLgorCisgICAgOnN0YWNrOiBBIHN0YWNrIG9mIHRoZSBleHBsYW5h
dGlvbl9zcGVjaWZpZXJzIGRpY3RzIG1haW50YWluZWQgYnkKKyAgICAgICAucHVzaF9mb3JtYXRf
Y29udGV4dCgpIGFuZCAucG9wX2Zvcm1hdF9jb250ZXh0KCkgd2hpY2ggYWxsb3dzCisgICAgICAg
dG8gYnVpbGQgYW5vdGhlciAlLWZvcm1hdHRlZCBzdHJpbmcgd2hpbGUgYWxyZWFkeSBidWlsZGlu
ZyBvbmUuCisKKyAgICBUaGlzIHN0YXRlIGlzIHJlc2V0IG9uIGV2ZXJ5IG5ldyBhc3NlcnQgc3Rh
dGVtZW50IHZpc2l0ZWQgYW5kIHVzZWQKKyAgICBieSB0aGUgb3RoZXIgdmlzaXRvcnMuCisKKyAg
ICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtb2R1bGVfcGF0aCwgY29uZmlnKToKKyAg
ICAgICAgc3VwZXIoQXNzZXJ0aW9uUmV3cml0ZXIsIHNlbGYpLl9faW5pdF9fKCkKKyAgICAgICAg
c2VsZi5tb2R1bGVfcGF0aCA9IG1vZHVsZV9wYXRoCisgICAgICAgIHNlbGYuY29uZmlnID0gY29u
ZmlnCisKKyAgICBkZWYgcnVuKHNlbGYsIG1vZCk6CisgICAgICAgICIiIkZpbmQgYWxsIGFzc2Vy
dCBzdGF0ZW1lbnRzIGluICptb2QqIGFuZCByZXdyaXRlIHRoZW0uIiIiCisgICAgICAgIGlmIG5v
dCBtb2QuYm9keToKKyAgICAgICAgICAgICMgTm90aGluZyB0byBkby4KKyAgICAgICAgICAgIHJl
dHVybgorICAgICAgICAjIEluc2VydCBzb21lIHNwZWNpYWwgaW1wb3J0cyBhdCB0aGUgdG9wIG9m
IHRoZSBtb2R1bGUgYnV0IGFmdGVyIGFueQorICAgICAgICAjIGRvY3N0cmluZ3MgYW5kIF9fZnV0
dXJlX18gaW1wb3J0cy4KKyAgICAgICAgYWxpYXNlcyA9IFthc3QuYWxpYXMocHkuYnVpbHRpbi5i
dWlsdGlucy5fX25hbWVfXywgIkBweV9idWlsdGlucyIpLAorICAgICAgICAgICAgICAgICAgIGFz
dC5hbGlhcygiX3B5dGVzdC5hc3NlcnRpb24ucmV3cml0ZSIsICJAcHl0ZXN0X2FyIildCisgICAg
ICAgIGRvYyA9IGdldGF0dHIobW9kLCAiZG9jc3RyaW5nIiwgTm9uZSkKKyAgICAgICAgZXhwZWN0
X2RvY3N0cmluZyA9IGRvYyBpcyBOb25lCisgICAgICAgIGlmIGRvYyBpcyBub3QgTm9uZSBhbmQg
c2VsZi5pc19yZXdyaXRlX2Rpc2FibGVkKGRvYyk6CisgICAgICAgICAgICByZXR1cm4KKyAgICAg
ICAgcG9zID0gMAorICAgICAgICBsaW5lbm8gPSAxCisgICAgICAgIGZvciBpdGVtIGluIG1vZC5i
b2R5OgorICAgICAgICAgICAgaWYgKGV4cGVjdF9kb2NzdHJpbmcgYW5kIGlzaW5zdGFuY2UoaXRl
bSwgYXN0LkV4cHIpIGFuZAorICAgICAgICAgICAgICAgICAgICBpc2luc3RhbmNlKGl0ZW0udmFs
dWUsIGFzdC5TdHIpKToKKyAgICAgICAgICAgICAgICBkb2MgPSBpdGVtLnZhbHVlLnMKKyAgICAg
ICAgICAgICAgICBpZiBzZWxmLmlzX3Jld3JpdGVfZGlzYWJsZWQoZG9jKToKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICAgICAgZXhwZWN0X2RvY3N0cmluZyA9IEZhbHNl
CisgICAgICAgICAgICBlbGlmIChub3QgaXNpbnN0YW5jZShpdGVtLCBhc3QuSW1wb3J0RnJvbSkg
b3IgaXRlbS5sZXZlbCA+IDAgb3IKKyAgICAgICAgICAgICAgICAgIGl0ZW0ubW9kdWxlICE9ICJf
X2Z1dHVyZV9fIik6CisgICAgICAgICAgICAgICAgbGluZW5vID0gaXRlbS5saW5lbm8KKyAgICAg
ICAgICAgICAgICBicmVhaworICAgICAgICAgICAgcG9zICs9IDEKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIGxpbmVubyA9IGl0ZW0ubGluZW5vCisgICAgICAgIGltcG9ydHMgPSBbYXN0Lklt
cG9ydChbYWxpYXNdLCBsaW5lbm89bGluZW5vLCBjb2xfb2Zmc2V0PTApCisgICAgICAgICAgICAg
ICAgICAgZm9yIGFsaWFzIGluIGFsaWFzZXNdCisgICAgICAgIG1vZC5ib2R5W3Bvczpwb3NdID0g
aW1wb3J0cworICAgICAgICAjIENvbGxlY3QgYXNzZXJ0cy4KKyAgICAgICAgbm9kZXMgPSBbbW9k
XQorICAgICAgICB3aGlsZSBub2RlczoKKyAgICAgICAgICAgIG5vZGUgPSBub2Rlcy5wb3AoKQor
ICAgICAgICAgICAgZm9yIG5hbWUsIGZpZWxkIGluIGFzdC5pdGVyX2ZpZWxkcyhub2RlKToKKyAg
ICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGZpZWxkLCBsaXN0KToKKyAgICAgICAgICAgICAg
ICAgICAgbmV3ID0gW10KKyAgICAgICAgICAgICAgICAgICAgZm9yIGksIGNoaWxkIGluIGVudW1l
cmF0ZShmaWVsZCk6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGNoaWxk
LCBhc3QuQXNzZXJ0KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFRyYW5zZm9ybSBh
c3NlcnQuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3LmV4dGVuZChzZWxmLnZpc2l0
KGNoaWxkKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbmV3LmFwcGVuZChjaGlsZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiBpc2luc3RhbmNlKGNoaWxkLCBhc3QuQVNUKToKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbm9kZXMuYXBwZW5kKGNoaWxkKQorICAgICAgICAgICAgICAgICAgICBzZXRhdHRy
KG5vZGUsIG5hbWUsIG5ldykKKyAgICAgICAgICAgICAgICBlbGlmIChpc2luc3RhbmNlKGZpZWxk
LCBhc3QuQVNUKSBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAjIERvbid0IHJlY3Vyc2UgaW50
byBleHByZXNzaW9ucyBhcyB0aGV5IGNhbid0IGNvbnRhaW4KKyAgICAgICAgICAgICAgICAgICAg
ICAjIGFzc2VydHMuCisgICAgICAgICAgICAgICAgICAgICAgbm90IGlzaW5zdGFuY2UoZmllbGQs
IGFzdC5leHByKSk6CisgICAgICAgICAgICAgICAgICAgIG5vZGVzLmFwcGVuZChmaWVsZCkKKwor
ICAgIGRlZiBpc19yZXdyaXRlX2Rpc2FibGVkKHNlbGYsIGRvY3N0cmluZyk6CisgICAgICAgIHJl
dHVybiAiUFlURVNUX0RPTlRfUkVXUklURSIgaW4gZG9jc3RyaW5nCisKKyAgICBkZWYgdmFyaWFi
bGUoc2VsZik6CisgICAgICAgICIiIkdldCBhIG5ldyB2YXJpYWJsZS4iIiIKKyAgICAgICAgIyBV
c2UgYSBjaGFyYWN0ZXIgaW52YWxpZCBpbiBweXRob24gaWRlbnRpZmllcnMgdG8gYXZvaWQgY2xh
c2hpbmcuCisgICAgICAgIG5hbWUgPSAiQHB5X2Fzc2VydCIgKyBzdHIobmV4dChzZWxmLnZhcmlh
YmxlX2NvdW50ZXIpKQorICAgICAgICBzZWxmLnZhcmlhYmxlcy5hcHBlbmQobmFtZSkKKyAgICAg
ICAgcmV0dXJuIG5hbWUKKworICAgIGRlZiBhc3NpZ24oc2VsZiwgZXhwcik6CisgICAgICAgICIi
IkdpdmUgKmV4cHIqIGEgbmFtZS4iIiIKKyAgICAgICAgbmFtZSA9IHNlbGYudmFyaWFibGUoKQor
ICAgICAgICBzZWxmLnN0YXRlbWVudHMuYXBwZW5kKGFzdC5Bc3NpZ24oW2FzdC5OYW1lKG5hbWUs
IGFzdC5TdG9yZSgpKV0sIGV4cHIpKQorICAgICAgICByZXR1cm4gYXN0Lk5hbWUobmFtZSwgYXN0
LkxvYWQoKSkKKworICAgIGRlZiBkaXNwbGF5KHNlbGYsIGV4cHIpOgorICAgICAgICAiIiJDYWxs
IHB5LmlvLnNhZmVyZXByIG9uIHRoZSBleHByZXNzaW9uLiIiIgorICAgICAgICByZXR1cm4gc2Vs
Zi5oZWxwZXIoInNhZmVyZXByIiwgZXhwcikKKworICAgIGRlZiBoZWxwZXIoc2VsZiwgbmFtZSwg
KmFyZ3MpOgorICAgICAgICAiIiJDYWxsIGEgaGVscGVyIGluIHRoaXMgbW9kdWxlLiIiIgorICAg
ICAgICBweV9uYW1lID0gYXN0Lk5hbWUoIkBweXRlc3RfYXIiLCBhc3QuTG9hZCgpKQorICAgICAg
ICBhdHRyID0gYXN0LkF0dHJpYnV0ZShweV9uYW1lLCAiXyIgKyBuYW1lLCBhc3QuTG9hZCgpKQor
ICAgICAgICByZXR1cm4gYXN0X0NhbGwoYXR0ciwgbGlzdChhcmdzKSwgW10pCisKKyAgICBkZWYg
YnVpbHRpbihzZWxmLCBuYW1lKToKKyAgICAgICAgIiIiUmV0dXJuIHRoZSBidWlsdGluIGNhbGxl
ZCAqbmFtZSouIiIiCisgICAgICAgIGJ1aWx0aW5fbmFtZSA9IGFzdC5OYW1lKCJAcHlfYnVpbHRp
bnMiLCBhc3QuTG9hZCgpKQorICAgICAgICByZXR1cm4gYXN0LkF0dHJpYnV0ZShidWlsdGluX25h
bWUsIG5hbWUsIGFzdC5Mb2FkKCkpCisKKyAgICBkZWYgZXhwbGFuYXRpb25fcGFyYW0oc2VsZiwg
ZXhwcik6CisgICAgICAgICIiIlJldHVybiBhIG5ldyBuYW1lZCAlLWZvcm1hdHRpbmcgcGxhY2Vo
b2xkZXIgZm9yIGV4cHIuCisKKyAgICAgICAgVGhpcyBjcmVhdGVzIGEgJS1mb3JtYXR0aW5nIHBs
YWNlaG9sZGVyIGZvciBleHByIGluIHRoZQorICAgICAgICBjdXJyZW50IGZvcm1hdHRpbmcgY29u
dGV4dCwgZS5nLiBgYCUocHkwKXNgYC4gIFRoZSBwbGFjZWhvbGRlcgorICAgICAgICBhbmQgZXhw
ciBhcmUgcGxhY2VkIGluIHRoZSBjdXJyZW50IGZvcm1hdCBjb250ZXh0IHNvIHRoYXQgaXQKKyAg
ICAgICAgY2FuIGJlIHVzZWQgb24gdGhlIG5leHQgY2FsbCB0byAucG9wX2Zvcm1hdF9jb250ZXh0
KCkuCisKKyAgICAgICAgIiIiCisgICAgICAgIHNwZWNpZmllciA9ICJweSIgKyBzdHIobmV4dChz
ZWxmLnZhcmlhYmxlX2NvdW50ZXIpKQorICAgICAgICBzZWxmLmV4cGxhbmF0aW9uX3NwZWNpZmll
cnNbc3BlY2lmaWVyXSA9IGV4cHIKKyAgICAgICAgcmV0dXJuICIlKCIgKyBzcGVjaWZpZXIgKyAi
KXMiCisKKyAgICBkZWYgcHVzaF9mb3JtYXRfY29udGV4dChzZWxmKToKKyAgICAgICAgIiIiQ3Jl
YXRlIGEgbmV3IGZvcm1hdHRpbmcgY29udGV4dC4KKworICAgICAgICBUaGUgZm9ybWF0IGNvbnRl
eHQgaXMgdXNlZCBmb3Igd2hlbiBhbiBleHBsYW5hdGlvbiB3YW50cyB0bworICAgICAgICBoYXZl
IGEgdmFyaWFibGUgdmFsdWUgZm9ybWF0dGVkIGluIHRoZSBhc3NlcnRpb24gbWVzc2FnZS4gIElu
CisgICAgICAgIHRoaXMgY2FzZSB0aGUgdmFsdWUgcmVxdWlyZWQgY2FuIGJlIGFkZGVkIHVzaW5n
CisgICAgICAgIC5leHBsYW5hdGlvbl9wYXJhbSgpLiAgRmluYWxseSAucG9wX2Zvcm1hdF9jb250
ZXh0KCkgaXMgdXNlZAorICAgICAgICB0byBmb3JtYXQgYSBzdHJpbmcgb2YgJS1mb3JtYXR0ZWQg
dmFsdWVzIGFzIGFkZGVkIGJ5CisgICAgICAgIC5leHBsYW5hdGlvbl9wYXJhbSgpLgorCisgICAg
ICAgICIiIgorICAgICAgICBzZWxmLmV4cGxhbmF0aW9uX3NwZWNpZmllcnMgPSB7fQorICAgICAg
ICBzZWxmLnN0YWNrLmFwcGVuZChzZWxmLmV4cGxhbmF0aW9uX3NwZWNpZmllcnMpCisKKyAgICBk
ZWYgcG9wX2Zvcm1hdF9jb250ZXh0KHNlbGYsIGV4cGxfZXhwcik6CisgICAgICAgICIiIkZvcm1h
dCB0aGUgJS1mb3JtYXR0ZWQgc3RyaW5nIHdpdGggY3VycmVudCBmb3JtYXQgY29udGV4dC4KKwor
ICAgICAgICBUaGUgZXhwbF9leHByIHNob3VsZCBiZSBhbiBhc3QuU3RyIGluc3RhbmNlIGNvbnN0
cnVjdGVkIGZyb20KKyAgICAgICAgdGhlICUtcGxhY2Vob2xkZXJzIGNyZWF0ZWQgYnkgLmV4cGxh
bmF0aW9uX3BhcmFtKCkuICBUaGlzIHdpbGwKKyAgICAgICAgYWRkIHRoZSByZXF1aXJlZCBjb2Rl
IHRvIGZvcm1hdCBzYWlkIHN0cmluZyB0byAub25fZmFpbHVyZSBhbmQKKyAgICAgICAgcmV0dXJu
IHRoZSBhc3QuTmFtZSBpbnN0YW5jZSBvZiB0aGUgZm9ybWF0dGVkIHN0cmluZy4KKworICAgICAg
ICAiIiIKKyAgICAgICAgY3VycmVudCA9IHNlbGYuc3RhY2sucG9wKCkKKyAgICAgICAgaWYgc2Vs
Zi5zdGFjazoKKyAgICAgICAgICAgIHNlbGYuZXhwbGFuYXRpb25fc3BlY2lmaWVycyA9IHNlbGYu
c3RhY2tbLTFdCisgICAgICAgIGtleXMgPSBbYXN0LlN0cihrZXkpIGZvciBrZXkgaW4gY3VycmVu
dC5rZXlzKCldCisgICAgICAgIGZvcm1hdF9kaWN0ID0gYXN0LkRpY3Qoa2V5cywgbGlzdChjdXJy
ZW50LnZhbHVlcygpKSkKKyAgICAgICAgZm9ybSA9IGFzdC5CaW5PcChleHBsX2V4cHIsIGFzdC5N
b2QoKSwgZm9ybWF0X2RpY3QpCisgICAgICAgIG5hbWUgPSAiQHB5X2Zvcm1hdCIgKyBzdHIobmV4
dChzZWxmLnZhcmlhYmxlX2NvdW50ZXIpKQorICAgICAgICBzZWxmLm9uX2ZhaWx1cmUuYXBwZW5k
KGFzdC5Bc3NpZ24oW2FzdC5OYW1lKG5hbWUsIGFzdC5TdG9yZSgpKV0sIGZvcm0pKQorICAgICAg
ICByZXR1cm4gYXN0Lk5hbWUobmFtZSwgYXN0LkxvYWQoKSkKKworICAgIGRlZiBnZW5lcmljX3Zp
c2l0KHNlbGYsIG5vZGUpOgorICAgICAgICAiIiJIYW5kbGUgZXhwcmVzc2lvbnMgd2UgZG9uJ3Qg
aGF2ZSBjdXN0b20gY29kZSBmb3IuIiIiCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG5vZGUs
IGFzdC5leHByKQorICAgICAgICByZXMgPSBzZWxmLmFzc2lnbihub2RlKQorICAgICAgICByZXR1
cm4gcmVzLCBzZWxmLmV4cGxhbmF0aW9uX3BhcmFtKHNlbGYuZGlzcGxheShyZXMpKQorCisgICAg
ZGVmIHZpc2l0X0Fzc2VydChzZWxmLCBhc3NlcnRfKToKKyAgICAgICAgIiIiUmV0dXJuIHRoZSBB
U1Qgc3RhdGVtZW50cyB0byByZXBsYWNlIHRoZSBhc3QuQXNzZXJ0IGluc3RhbmNlLgorCisgICAg
ICAgIFRoaXMgcmV3cml0ZXMgdGhlIHRlc3Qgb2YgYW4gYXNzZXJ0aW9uIHRvIHByb3ZpZGUKKyAg
ICAgICAgaW50ZXJtZWRpYXRlIHZhbHVlcyBhbmQgcmVwbGFjZSBpdCB3aXRoIGFuIGlmIHN0YXRl
bWVudCB3aGljaAorICAgICAgICByYWlzZXMgYW4gYXNzZXJ0aW9uIGVycm9yIHdpdGggYSBkZXRh
aWxlZCBleHBsYW5hdGlvbiBpbiBjYXNlCisgICAgICAgIHRoZSBleHByZXNzaW9uIGlzIGZhbHNl
LgorCisgICAgICAgICIiIgorICAgICAgICBpZiBpc2luc3RhbmNlKGFzc2VydF8udGVzdCwgYXN0
LlR1cGxlKSBhbmQgc2VsZi5jb25maWcgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBmc2xvY2F0
aW9uID0gKHNlbGYubW9kdWxlX3BhdGgsIGFzc2VydF8ubGluZW5vKQorICAgICAgICAgICAgc2Vs
Zi5jb25maWcud2FybignUjEnLCAnYXNzZXJ0aW9uIGlzIGFsd2F5cyB0cnVlLCBwZXJoYXBzICcK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlbW92ZSBwYXJlbnRoZXNlcz8nLCBmc2xv
Y2F0aW9uPWZzbG9jYXRpb24pCisgICAgICAgIHNlbGYuc3RhdGVtZW50cyA9IFtdCisgICAgICAg
IHNlbGYudmFyaWFibGVzID0gW10KKyAgICAgICAgc2VsZi52YXJpYWJsZV9jb3VudGVyID0gaXRl
cnRvb2xzLmNvdW50KCkKKyAgICAgICAgc2VsZi5zdGFjayA9IFtdCisgICAgICAgIHNlbGYub25f
ZmFpbHVyZSA9IFtdCisgICAgICAgIHNlbGYucHVzaF9mb3JtYXRfY29udGV4dCgpCisgICAgICAg
ICMgUmV3cml0ZSBhc3NlcnQgaW50byBhIGJ1bmNoIG9mIHN0YXRlbWVudHMuCisgICAgICAgIHRv
cF9jb25kaXRpb24sIGV4cGxhbmF0aW9uID0gc2VsZi52aXNpdChhc3NlcnRfLnRlc3QpCisgICAg
ICAgICMgQ3JlYXRlIGZhaWx1cmUgbWVzc2FnZS4KKyAgICAgICAgYm9keSA9IHNlbGYub25fZmFp
bHVyZQorICAgICAgICBuZWdhdGlvbiA9IGFzdC5VbmFyeU9wKGFzdC5Ob3QoKSwgdG9wX2NvbmRp
dGlvbikKKyAgICAgICAgc2VsZi5zdGF0ZW1lbnRzLmFwcGVuZChhc3QuSWYobmVnYXRpb24sIGJv
ZHksIFtdKSkKKyAgICAgICAgaWYgYXNzZXJ0Xy5tc2c6CisgICAgICAgICAgICBhc3NlcnRtc2cg
PSBzZWxmLmhlbHBlcignZm9ybWF0X2Fzc2VydG1zZycsIGFzc2VydF8ubXNnKQorICAgICAgICAg
ICAgZXhwbGFuYXRpb24gPSAiXG4+YXNzZXJ0ICIgKyBleHBsYW5hdGlvbgorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgYXNzZXJ0bXNnID0gYXN0LlN0cigiIikKKyAgICAgICAgICAgIGV4cGxh
bmF0aW9uID0gImFzc2VydCAiICsgZXhwbGFuYXRpb24KKyAgICAgICAgdGVtcGxhdGUgPSBhc3Qu
QmluT3AoYXNzZXJ0bXNnLCBhc3QuQWRkKCksIGFzdC5TdHIoZXhwbGFuYXRpb24pKQorICAgICAg
ICBtc2cgPSBzZWxmLnBvcF9mb3JtYXRfY29udGV4dCh0ZW1wbGF0ZSkKKyAgICAgICAgZm10ID0g
c2VsZi5oZWxwZXIoImZvcm1hdF9leHBsYW5hdGlvbiIsIG1zZykKKyAgICAgICAgZXJyX25hbWUg
PSBhc3QuTmFtZSgiQXNzZXJ0aW9uRXJyb3IiLCBhc3QuTG9hZCgpKQorICAgICAgICBleGMgPSBh
c3RfQ2FsbChlcnJfbmFtZSwgW2ZtdF0sIFtdKQorICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZv
WzBdID49IDM6CisgICAgICAgICAgICByYWlzZV8gPSBhc3QuUmFpc2UoZXhjLCBOb25lKQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2VfID0gYXN0LlJhaXNlKGV4YywgTm9uZSwgTm9u
ZSkKKyAgICAgICAgYm9keS5hcHBlbmQocmFpc2VfKQorICAgICAgICAjIENsZWFyIHRlbXBvcmFy
eSB2YXJpYWJsZXMgYnkgc2V0dGluZyB0aGVtIHRvIE5vbmUuCisgICAgICAgIGlmIHNlbGYudmFy
aWFibGVzOgorICAgICAgICAgICAgdmFyaWFibGVzID0gW2FzdC5OYW1lKG5hbWUsIGFzdC5TdG9y
ZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBuYW1lIGluIHNlbGYudmFyaWFibGVz
XQorICAgICAgICAgICAgY2xlYXIgPSBhc3QuQXNzaWduKHZhcmlhYmxlcywgX05hbWVDb25zdGFu
dChOb25lKSkKKyAgICAgICAgICAgIHNlbGYuc3RhdGVtZW50cy5hcHBlbmQoY2xlYXIpCisgICAg
ICAgICMgRml4IGxpbmUgbnVtYmVycy4KKyAgICAgICAgZm9yIHN0bXQgaW4gc2VsZi5zdGF0ZW1l
bnRzOgorICAgICAgICAgICAgc2V0X2xvY2F0aW9uKHN0bXQsIGFzc2VydF8ubGluZW5vLCBhc3Nl
cnRfLmNvbF9vZmZzZXQpCisgICAgICAgIHJldHVybiBzZWxmLnN0YXRlbWVudHMKKworICAgIGRl
ZiB2aXNpdF9OYW1lKHNlbGYsIG5hbWUpOgorICAgICAgICAjIERpc3BsYXkgdGhlIHJlcHIgb2Yg
dGhlIG5hbWUgaWYgaXQncyBhIGxvY2FsIHZhcmlhYmxlIG9yCisgICAgICAgICMgX3Nob3VsZF9y
ZXByX2dsb2JhbF9uYW1lKCkgdGhpbmtzIGl0J3MgYWNjZXB0YWJsZS4KKyAgICAgICAgbG9jcyA9
IGFzdF9DYWxsKHNlbGYuYnVpbHRpbigibG9jYWxzIiksIFtdLCBbXSkKKyAgICAgICAgaW5sb2Nz
ID0gYXN0LkNvbXBhcmUoYXN0LlN0cihuYW1lLmlkKSwgW2FzdC5JbigpXSwgW2xvY3NdKQorICAg
ICAgICBkb3JlcHIgPSBzZWxmLmhlbHBlcigic2hvdWxkX3JlcHJfZ2xvYmFsX25hbWUiLCBuYW1l
KQorICAgICAgICB0ZXN0ID0gYXN0LkJvb2xPcChhc3QuT3IoKSwgW2lubG9jcywgZG9yZXByXSkK
KyAgICAgICAgZXhwciA9IGFzdC5JZkV4cCh0ZXN0LCBzZWxmLmRpc3BsYXkobmFtZSksIGFzdC5T
dHIobmFtZS5pZCkpCisgICAgICAgIHJldHVybiBuYW1lLCBzZWxmLmV4cGxhbmF0aW9uX3BhcmFt
KGV4cHIpCisKKyAgICBkZWYgdmlzaXRfQm9vbE9wKHNlbGYsIGJvb2xvcCk6CisgICAgICAgIHJl
c192YXIgPSBzZWxmLnZhcmlhYmxlKCkKKyAgICAgICAgZXhwbF9saXN0ID0gc2VsZi5hc3NpZ24o
YXN0Lkxpc3QoW10sIGFzdC5Mb2FkKCkpKQorICAgICAgICBhcHAgPSBhc3QuQXR0cmlidXRlKGV4
cGxfbGlzdCwgImFwcGVuZCIsIGFzdC5Mb2FkKCkpCisgICAgICAgIGlzX29yID0gaW50KGlzaW5z
dGFuY2UoYm9vbG9wLm9wLCBhc3QuT3IpKQorICAgICAgICBib2R5ID0gc2F2ZSA9IHNlbGYuc3Rh
dGVtZW50cworICAgICAgICBmYWlsX3NhdmUgPSBzZWxmLm9uX2ZhaWx1cmUKKyAgICAgICAgbGV2
ZWxzID0gbGVuKGJvb2xvcC52YWx1ZXMpIC0gMQorICAgICAgICBzZWxmLnB1c2hfZm9ybWF0X2Nv
bnRleHQoKQorICAgICAgICAjIFByb2Nlc3MgZWFjaCBvcGVyYW5kLCBzaG9ydC1jaXJjdXRpbmcg
aWYgbmVlZGVkLgorICAgICAgICBmb3IgaSwgdiBpbiBlbnVtZXJhdGUoYm9vbG9wLnZhbHVlcyk6
CisgICAgICAgICAgICBpZiBpOgorICAgICAgICAgICAgICAgIGZhaWxfaW5uZXIgPSBbXQorICAg
ICAgICAgICAgICAgICMgY29uZCBpcyBzZXQgaW4gYSBwcmlvciBsb29wIGl0ZXJhdGlvbiBiZWxv
dworICAgICAgICAgICAgICAgIHNlbGYub25fZmFpbHVyZS5hcHBlbmQoYXN0LklmKGNvbmQsIGZh
aWxfaW5uZXIsIFtdKSkgICMgbm9xYQorICAgICAgICAgICAgICAgIHNlbGYub25fZmFpbHVyZSA9
IGZhaWxfaW5uZXIKKyAgICAgICAgICAgIHNlbGYucHVzaF9mb3JtYXRfY29udGV4dCgpCisgICAg
ICAgICAgICByZXMsIGV4cGwgPSBzZWxmLnZpc2l0KHYpCisgICAgICAgICAgICBib2R5LmFwcGVu
ZChhc3QuQXNzaWduKFthc3QuTmFtZShyZXNfdmFyLCBhc3QuU3RvcmUoKSldLCByZXMpKQorICAg
ICAgICAgICAgZXhwbF9mb3JtYXQgPSBzZWxmLnBvcF9mb3JtYXRfY29udGV4dChhc3QuU3RyKGV4
cGwpKQorICAgICAgICAgICAgY2FsbCA9IGFzdF9DYWxsKGFwcCwgW2V4cGxfZm9ybWF0XSwgW10p
CisgICAgICAgICAgICBzZWxmLm9uX2ZhaWx1cmUuYXBwZW5kKGFzdC5FeHByKGNhbGwpKQorICAg
ICAgICAgICAgaWYgaSA8IGxldmVsczoKKyAgICAgICAgICAgICAgICBjb25kID0gcmVzCisgICAg
ICAgICAgICAgICAgaWYgaXNfb3I6CisgICAgICAgICAgICAgICAgICAgIGNvbmQgPSBhc3QuVW5h
cnlPcChhc3QuTm90KCksIGNvbmQpCisgICAgICAgICAgICAgICAgaW5uZXIgPSBbXQorICAgICAg
ICAgICAgICAgIHNlbGYuc3RhdGVtZW50cy5hcHBlbmQoYXN0LklmKGNvbmQsIGlubmVyLCBbXSkp
CisgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZW1lbnRzID0gYm9keSA9IGlubmVyCisgICAgICAg
IHNlbGYuc3RhdGVtZW50cyA9IHNhdmUKKyAgICAgICAgc2VsZi5vbl9mYWlsdXJlID0gZmFpbF9z
YXZlCisgICAgICAgIGV4cGxfdGVtcGxhdGUgPSBzZWxmLmhlbHBlcigiZm9ybWF0X2Jvb2xvcCIs
IGV4cGxfbGlzdCwgYXN0Lk51bShpc19vcikpCisgICAgICAgIGV4cGwgPSBzZWxmLnBvcF9mb3Jt
YXRfY29udGV4dChleHBsX3RlbXBsYXRlKQorICAgICAgICByZXR1cm4gYXN0Lk5hbWUocmVzX3Zh
ciwgYXN0LkxvYWQoKSksIHNlbGYuZXhwbGFuYXRpb25fcGFyYW0oZXhwbCkKKworICAgIGRlZiB2
aXNpdF9VbmFyeU9wKHNlbGYsIHVuYXJ5KToKKyAgICAgICAgcGF0dGVybiA9IHVuYXJ5X21hcFt1
bmFyeS5vcC5fX2NsYXNzX19dCisgICAgICAgIG9wZXJhbmRfcmVzLCBvcGVyYW5kX2V4cGwgPSBz
ZWxmLnZpc2l0KHVuYXJ5Lm9wZXJhbmQpCisgICAgICAgIHJlcyA9IHNlbGYuYXNzaWduKGFzdC5V
bmFyeU9wKHVuYXJ5Lm9wLCBvcGVyYW5kX3JlcykpCisgICAgICAgIHJldHVybiByZXMsIHBhdHRl
cm4gJSAob3BlcmFuZF9leHBsLCkKKworICAgIGRlZiB2aXNpdF9CaW5PcChzZWxmLCBiaW5vcCk6
CisgICAgICAgIHN5bWJvbCA9IGJpbm9wX21hcFtiaW5vcC5vcC5fX2NsYXNzX19dCisgICAgICAg
IGxlZnRfZXhwciwgbGVmdF9leHBsID0gc2VsZi52aXNpdChiaW5vcC5sZWZ0KQorICAgICAgICBy
aWdodF9leHByLCByaWdodF9leHBsID0gc2VsZi52aXNpdChiaW5vcC5yaWdodCkKKyAgICAgICAg
ZXhwbGFuYXRpb24gPSAiKCVzICVzICVzKSIgJSAobGVmdF9leHBsLCBzeW1ib2wsIHJpZ2h0X2V4
cGwpCisgICAgICAgIHJlcyA9IHNlbGYuYXNzaWduKGFzdC5CaW5PcChsZWZ0X2V4cHIsIGJpbm9w
Lm9wLCByaWdodF9leHByKSkKKyAgICAgICAgcmV0dXJuIHJlcywgZXhwbGFuYXRpb24KKworICAg
IGRlZiB2aXNpdF9DYWxsXzM1KHNlbGYsIGNhbGwpOgorICAgICAgICAiIiIKKyAgICAgICAgdmlz
aXQgYGFzdC5DYWxsYCBub2RlcyBvbiBQeXRob24zLjUgYW5kIGFmdGVyCisgICAgICAgICIiIgor
ICAgICAgICBuZXdfZnVuYywgZnVuY19leHBsID0gc2VsZi52aXNpdChjYWxsLmZ1bmMpCisgICAg
ICAgIGFyZ19leHBscyA9IFtdCisgICAgICAgIG5ld19hcmdzID0gW10KKyAgICAgICAgbmV3X2t3
YXJncyA9IFtdCisgICAgICAgIGZvciBhcmcgaW4gY2FsbC5hcmdzOgorICAgICAgICAgICAgcmVz
LCBleHBsID0gc2VsZi52aXNpdChhcmcpCisgICAgICAgICAgICBhcmdfZXhwbHMuYXBwZW5kKGV4
cGwpCisgICAgICAgICAgICBuZXdfYXJncy5hcHBlbmQocmVzKQorICAgICAgICBmb3Iga2V5d29y
ZCBpbiBjYWxsLmtleXdvcmRzOgorICAgICAgICAgICAgcmVzLCBleHBsID0gc2VsZi52aXNpdChr
ZXl3b3JkLnZhbHVlKQorICAgICAgICAgICAgbmV3X2t3YXJncy5hcHBlbmQoYXN0LmtleXdvcmQo
a2V5d29yZC5hcmcsIHJlcykpCisgICAgICAgICAgICBpZiBrZXl3b3JkLmFyZzoKKyAgICAgICAg
ICAgICAgICBhcmdfZXhwbHMuYXBwZW5kKGtleXdvcmQuYXJnICsgIj0iICsgZXhwbCkKKyAgICAg
ICAgICAgIGVsc2U6ICAjICoqYXJncyBoYXZlIGBhcmdgIGtleXdvcmRzIHdpdGggYW4gLmFyZyBv
ZiBOb25lCisgICAgICAgICAgICAgICAgYXJnX2V4cGxzLmFwcGVuZCgiKioiICsgZXhwbCkKKwor
ICAgICAgICBleHBsID0gIiVzKCVzKSIgJSAoZnVuY19leHBsLCAnLCAnLmpvaW4oYXJnX2V4cGxz
KSkKKyAgICAgICAgbmV3X2NhbGwgPSBhc3QuQ2FsbChuZXdfZnVuYywgbmV3X2FyZ3MsIG5ld19r
d2FyZ3MpCisgICAgICAgIHJlcyA9IHNlbGYuYXNzaWduKG5ld19jYWxsKQorICAgICAgICByZXNf
ZXhwbCA9IHNlbGYuZXhwbGFuYXRpb25fcGFyYW0oc2VsZi5kaXNwbGF5KHJlcykpCisgICAgICAg
IG91dGVyX2V4cGwgPSAiJXNcbnslcyA9ICVzXG59IiAlIChyZXNfZXhwbCwgcmVzX2V4cGwsIGV4
cGwpCisgICAgICAgIHJldHVybiByZXMsIG91dGVyX2V4cGwKKworICAgIGRlZiB2aXNpdF9TdGFy
cmVkKHNlbGYsIHN0YXJyZWQpOgorICAgICAgICAjIEZyb20gUHl0aG9uIDMuNSwgYSBTdGFycmVk
IG5vZGUgY2FuIGFwcGVhciBpbiBhIGZ1bmN0aW9uIGNhbGwKKyAgICAgICAgcmVzLCBleHBsID0g
c2VsZi52aXNpdChzdGFycmVkLnZhbHVlKQorICAgICAgICByZXR1cm4gc3RhcnJlZCwgJyonICsg
ZXhwbAorCisgICAgZGVmIHZpc2l0X0NhbGxfbGVnYWN5KHNlbGYsIGNhbGwpOgorICAgICAgICAi
IiIKKyAgICAgICAgdmlzaXQgYGFzdC5DYWxsIG5vZGVzIG9uIDMuNCBhbmQgYmVsb3dgCisgICAg
ICAgICIiIgorICAgICAgICBuZXdfZnVuYywgZnVuY19leHBsID0gc2VsZi52aXNpdChjYWxsLmZ1
bmMpCisgICAgICAgIGFyZ19leHBscyA9IFtdCisgICAgICAgIG5ld19hcmdzID0gW10KKyAgICAg
ICAgbmV3X2t3YXJncyA9IFtdCisgICAgICAgIG5ld19zdGFyID0gbmV3X2t3YXJnID0gTm9uZQor
ICAgICAgICBmb3IgYXJnIGluIGNhbGwuYXJnczoKKyAgICAgICAgICAgIHJlcywgZXhwbCA9IHNl
bGYudmlzaXQoYXJnKQorICAgICAgICAgICAgbmV3X2FyZ3MuYXBwZW5kKHJlcykKKyAgICAgICAg
ICAgIGFyZ19leHBscy5hcHBlbmQoZXhwbCkKKyAgICAgICAgZm9yIGtleXdvcmQgaW4gY2FsbC5r
ZXl3b3JkczoKKyAgICAgICAgICAgIHJlcywgZXhwbCA9IHNlbGYudmlzaXQoa2V5d29yZC52YWx1
ZSkKKyAgICAgICAgICAgIG5ld19rd2FyZ3MuYXBwZW5kKGFzdC5rZXl3b3JkKGtleXdvcmQuYXJn
LCByZXMpKQorICAgICAgICAgICAgYXJnX2V4cGxzLmFwcGVuZChrZXl3b3JkLmFyZyArICI9IiAr
IGV4cGwpCisgICAgICAgIGlmIGNhbGwuc3RhcmFyZ3M6CisgICAgICAgICAgICBuZXdfc3Rhciwg
ZXhwbCA9IHNlbGYudmlzaXQoY2FsbC5zdGFyYXJncykKKyAgICAgICAgICAgIGFyZ19leHBscy5h
cHBlbmQoIioiICsgZXhwbCkKKyAgICAgICAgaWYgY2FsbC5rd2FyZ3M6CisgICAgICAgICAgICBu
ZXdfa3dhcmcsIGV4cGwgPSBzZWxmLnZpc2l0KGNhbGwua3dhcmdzKQorICAgICAgICAgICAgYXJn
X2V4cGxzLmFwcGVuZCgiKioiICsgZXhwbCkKKyAgICAgICAgZXhwbCA9ICIlcyglcykiICUgKGZ1
bmNfZXhwbCwgJywgJy5qb2luKGFyZ19leHBscykpCisgICAgICAgIG5ld19jYWxsID0gYXN0LkNh
bGwobmV3X2Z1bmMsIG5ld19hcmdzLCBuZXdfa3dhcmdzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG5ld19zdGFyLCBuZXdfa3dhcmcpCisgICAgICAgIHJlcyA9IHNlbGYuYXNzaWduKG5l
d19jYWxsKQorICAgICAgICByZXNfZXhwbCA9IHNlbGYuZXhwbGFuYXRpb25fcGFyYW0oc2VsZi5k
aXNwbGF5KHJlcykpCisgICAgICAgIG91dGVyX2V4cGwgPSAiJXNcbnslcyA9ICVzXG59IiAlIChy
ZXNfZXhwbCwgcmVzX2V4cGwsIGV4cGwpCisgICAgICAgIHJldHVybiByZXMsIG91dGVyX2V4cGwK
KworICAgICMgYXN0LkNhbGwgc2lnbmF0dXJlIGNoYW5nZWQgb24gMy41LAorICAgICMgY29uZGl0
aW9uYWxseSBjaGFuZ2UgIHdoaWNoIG1ldGhvZHMgaXMgbmFtZWQKKyAgICAjIHZpc2l0X0NhbGwg
ZGVwZW5kaW5nIG9uIFB5dGhvbiB2ZXJzaW9uCisgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAo
MywgNSk6CisgICAgICAgIHZpc2l0X0NhbGwgPSB2aXNpdF9DYWxsXzM1CisgICAgZWxzZToKKyAg
ICAgICAgdmlzaXRfQ2FsbCA9IHZpc2l0X0NhbGxfbGVnYWN5CisKKyAgICBkZWYgdmlzaXRfQXR0
cmlidXRlKHNlbGYsIGF0dHIpOgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShhdHRyLmN0eCwg
YXN0LkxvYWQpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZ2VuZXJpY192aXNpdChhdHRyKQor
ICAgICAgICB2YWx1ZSwgdmFsdWVfZXhwbCA9IHNlbGYudmlzaXQoYXR0ci52YWx1ZSkKKyAgICAg
ICAgcmVzID0gc2VsZi5hc3NpZ24oYXN0LkF0dHJpYnV0ZSh2YWx1ZSwgYXR0ci5hdHRyLCBhc3Qu
TG9hZCgpKSkKKyAgICAgICAgcmVzX2V4cGwgPSBzZWxmLmV4cGxhbmF0aW9uX3BhcmFtKHNlbGYu
ZGlzcGxheShyZXMpKQorICAgICAgICBwYXQgPSAiJXNcbnslcyA9ICVzLiVzXG59IgorICAgICAg
ICBleHBsID0gcGF0ICUgKHJlc19leHBsLCByZXNfZXhwbCwgdmFsdWVfZXhwbCwgYXR0ci5hdHRy
KQorICAgICAgICByZXR1cm4gcmVzLCBleHBsCisKKyAgICBkZWYgdmlzaXRfQ29tcGFyZShzZWxm
LCBjb21wKToKKyAgICAgICAgc2VsZi5wdXNoX2Zvcm1hdF9jb250ZXh0KCkKKyAgICAgICAgbGVm
dF9yZXMsIGxlZnRfZXhwbCA9IHNlbGYudmlzaXQoY29tcC5sZWZ0KQorICAgICAgICBpZiBpc2lu
c3RhbmNlKGNvbXAubGVmdCwgKF9hc3QuQ29tcGFyZSwgX2FzdC5Cb29sT3ApKToKKyAgICAgICAg
ICAgIGxlZnRfZXhwbCA9ICIoezB9KSIuZm9ybWF0KGxlZnRfZXhwbCkKKyAgICAgICAgcmVzX3Zh
cmlhYmxlcyA9IFtzZWxmLnZhcmlhYmxlKCkgZm9yIGkgaW4gcmFuZ2UobGVuKGNvbXAub3BzKSld
CisgICAgICAgIGxvYWRfbmFtZXMgPSBbYXN0Lk5hbWUodiwgYXN0LkxvYWQoKSkgZm9yIHYgaW4g
cmVzX3ZhcmlhYmxlc10KKyAgICAgICAgc3RvcmVfbmFtZXMgPSBbYXN0Lk5hbWUodiwgYXN0LlN0
b3JlKCkpIGZvciB2IGluIHJlc192YXJpYWJsZXNdCisgICAgICAgIGl0ID0gemlwKHJhbmdlKGxl
bihjb21wLm9wcykpLCBjb21wLm9wcywgY29tcC5jb21wYXJhdG9ycykKKyAgICAgICAgZXhwbHMg
PSBbXQorICAgICAgICBzeW1zID0gW10KKyAgICAgICAgcmVzdWx0cyA9IFtsZWZ0X3Jlc10KKyAg
ICAgICAgZm9yIGksIG9wLCBuZXh0X29wZXJhbmQgaW4gaXQ6CisgICAgICAgICAgICBuZXh0X3Jl
cywgbmV4dF9leHBsID0gc2VsZi52aXNpdChuZXh0X29wZXJhbmQpCisgICAgICAgICAgICBpZiBp
c2luc3RhbmNlKG5leHRfb3BlcmFuZCwgKF9hc3QuQ29tcGFyZSwgX2FzdC5Cb29sT3ApKToKKyAg
ICAgICAgICAgICAgICBuZXh0X2V4cGwgPSAiKHswfSkiLmZvcm1hdChuZXh0X2V4cGwpCisgICAg
ICAgICAgICByZXN1bHRzLmFwcGVuZChuZXh0X3JlcykKKyAgICAgICAgICAgIHN5bSA9IGJpbm9w
X21hcFtvcC5fX2NsYXNzX19dCisgICAgICAgICAgICBzeW1zLmFwcGVuZChhc3QuU3RyKHN5bSkp
CisgICAgICAgICAgICBleHBsID0gIiVzICVzICVzIiAlIChsZWZ0X2V4cGwsIHN5bSwgbmV4dF9l
eHBsKQorICAgICAgICAgICAgZXhwbHMuYXBwZW5kKGFzdC5TdHIoZXhwbCkpCisgICAgICAgICAg
ICByZXNfZXhwciA9IGFzdC5Db21wYXJlKGxlZnRfcmVzLCBbb3BdLCBbbmV4dF9yZXNdKQorICAg
ICAgICAgICAgc2VsZi5zdGF0ZW1lbnRzLmFwcGVuZChhc3QuQXNzaWduKFtzdG9yZV9uYW1lc1tp
XV0sIHJlc19leHByKSkKKyAgICAgICAgICAgIGxlZnRfcmVzLCBsZWZ0X2V4cGwgPSBuZXh0X3Jl
cywgbmV4dF9leHBsCisgICAgICAgICMgVXNlIHB5dGVzdC5hc3NlcnRpb24udXRpbC5fcmVwcmNv
bXBhcmUgaWYgdGhhdCdzIGF2YWlsYWJsZS4KKyAgICAgICAgZXhwbF9jYWxsID0gc2VsZi5oZWxw
ZXIoImNhbGxfcmVwcmNvbXBhcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
c3QuVHVwbGUoc3ltcywgYXN0LkxvYWQoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFzdC5UdXBsZShsb2FkX25hbWVzLCBhc3QuTG9hZCgpKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXN0LlR1cGxlKGV4cGxzLCBhc3QuTG9hZCgpKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYXN0LlR1cGxlKHJlc3VsdHMsIGFzdC5Mb2FkKCkpKQorICAg
ICAgICBpZiBsZW4oY29tcC5vcHMpID4gMToKKyAgICAgICAgICAgIHJlcyA9IGFzdC5Cb29sT3Ao
YXN0LkFuZCgpLCBsb2FkX25hbWVzKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVzID0g
bG9hZF9uYW1lc1swXQorICAgICAgICByZXR1cm4gcmVzLCBzZWxmLmV4cGxhbmF0aW9uX3BhcmFt
KHNlbGYucG9wX2Zvcm1hdF9jb250ZXh0KGV4cGxfY2FsbCkpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi90cnVuY2F0ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qv
YXNzZXJ0aW9uL3RydW5jYXRlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlZDEyZTJlNWE5NjBjYTYwZDk5ODY4
ZTE5ODk3YTI3ZGRhNmQ4MzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L2Fzc2VydGlvbi90cnVuY2F0ZS5weQpAQCAtMCwwICsxLDEwMiBAQAorIiIiCitVdGlsaXRpZXMg
Zm9yIHRydW5jYXRpbmcgYXNzZXJ0aW9uIG91dHB1dC4KKworQ3VycmVudCBkZWZhdWx0IGJlaGF2
aW91ciBpcyB0byB0cnVuY2F0ZSBhc3NlcnRpb24gZXhwbGFuYXRpb25zIGF0Cit+OCB0ZXJtaW5h
bCBsaW5lcywgdW5sZXNzIHJ1bm5pbmcgaW4gIi12diIgbW9kZSBvciBydW5uaW5nIG9uIENJLgor
IiIiCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHBy
aW50X2Z1bmN0aW9uCitpbXBvcnQgb3MKKworaW1wb3J0IHNpeAorCisKK0RFRkFVTFRfTUFYX0xJ
TkVTID0gOAorREVGQVVMVF9NQVhfQ0hBUlMgPSA4ICogODAKK1VTQUdFX01TRyA9ICJ1c2UgJy12
dicgdG8gc2hvdyIKKworCitkZWYgdHJ1bmNhdGVfaWZfcmVxdWlyZWQoZXhwbGFuYXRpb24sIGl0
ZW0sIG1heF9sZW5ndGg9Tm9uZSk6CisgICAgIiIiCisgICAgVHJ1bmNhdGUgdGhpcyBhc3NlcnRp
b24gZXhwbGFuYXRpb24gaWYgdGhlIGdpdmVuIHRlc3QgaXRlbSBpcyBlbGlnaWJsZS4KKyAgICAi
IiIKKyAgICBpZiBfc2hvdWxkX3RydW5jYXRlX2l0ZW0oaXRlbSk6CisgICAgICAgIHJldHVybiBf
dHJ1bmNhdGVfZXhwbGFuYXRpb24oZXhwbGFuYXRpb24pCisgICAgcmV0dXJuIGV4cGxhbmF0aW9u
CisKKworZGVmIF9zaG91bGRfdHJ1bmNhdGVfaXRlbShpdGVtKToKKyAgICAiIiIKKyAgICBXaGV0
aGVyIG9yIG5vdCB0aGlzIHRlc3QgaXRlbSBpcyBlbGlnaWJsZSBmb3IgdHJ1bmNhdGlvbi4KKyAg
ICAiIiIKKyAgICB2ZXJib3NlID0gaXRlbS5jb25maWcub3B0aW9uLnZlcmJvc2UKKyAgICByZXR1
cm4gdmVyYm9zZSA8IDIgYW5kIG5vdCBfcnVubmluZ19vbl9jaSgpCisKKworZGVmIF9ydW5uaW5n
X29uX2NpKCk6CisgICAgIiIiQ2hlY2sgaWYgd2UncmUgY3VycmVudGx5IHJ1bm5pbmcgb24gYSBD
SSBzeXN0ZW0uIiIiCisgICAgZW52X3ZhcnMgPSBbJ0NJJywgJ0JVSUxEX05VTUJFUiddCisgICAg
cmV0dXJuIGFueSh2YXIgaW4gb3MuZW52aXJvbiBmb3IgdmFyIGluIGVudl92YXJzKQorCisKK2Rl
ZiBfdHJ1bmNhdGVfZXhwbGFuYXRpb24oaW5wdXRfbGluZXMsIG1heF9saW5lcz1Ob25lLCBtYXhf
Y2hhcnM9Tm9uZSk6CisgICAgIiIiCisgICAgVHJ1bmNhdGUgZ2l2ZW4gbGlzdCBvZiBzdHJpbmdz
IHRoYXQgbWFrZXMgdXAgdGhlIGFzc2VydGlvbiBleHBsYW5hdGlvbi4KKworICAgIFRydW5jYXRl
cyB0byBlaXRoZXIgOCBsaW5lcywgb3IgNjQwIGNoYXJhY3RlcnMgLSB3aGljaGV2ZXIgdGhlIGlu
cHV0IHJlYWNoZXMKKyAgICBmaXJzdC4gVGhlIHJlbWFpbmluZyBsaW5lcyB3aWxsIGJlIHJlcGxh
Y2VkIGJ5IGEgdXNhZ2UgbWVzc2FnZS4KKyAgICAiIiIKKworICAgIGlmIG1heF9saW5lcyBpcyBO
b25lOgorICAgICAgICBtYXhfbGluZXMgPSBERUZBVUxUX01BWF9MSU5FUworICAgIGlmIG1heF9j
aGFycyBpcyBOb25lOgorICAgICAgICBtYXhfY2hhcnMgPSBERUZBVUxUX01BWF9DSEFSUworCisg
ICAgIyBDaGVjayBpZiB0cnVuY2F0aW9uIHJlcXVpcmVkCisgICAgaW5wdXRfY2hhcl9jb3VudCA9
IGxlbigiIi5qb2luKGlucHV0X2xpbmVzKSkKKyAgICBpZiBsZW4oaW5wdXRfbGluZXMpIDw9IG1h
eF9saW5lcyBhbmQgaW5wdXRfY2hhcl9jb3VudCA8PSBtYXhfY2hhcnM6CisgICAgICAgIHJldHVy
biBpbnB1dF9saW5lcworCisgICAgIyBUcnVuY2F0ZSBmaXJzdCB0byBtYXhfbGluZXMsIGFuZCB0
aGVuIHRydW5jYXRlIHRvIG1heF9jaGFycyBpZiBtYXhfY2hhcnMKKyAgICAjIGlzIGV4Y2VlZGVk
LgorICAgIHRydW5jYXRlZF9leHBsYW5hdGlvbiA9IGlucHV0X2xpbmVzWzptYXhfbGluZXNdCisg
ICAgdHJ1bmNhdGVkX2V4cGxhbmF0aW9uID0gX3RydW5jYXRlX2J5X2NoYXJfY291bnQodHJ1bmNh
dGVkX2V4cGxhbmF0aW9uLCBtYXhfY2hhcnMpCisKKyAgICAjIEFkZCBlbGxpcHNpcyB0byBmaW5h
bCBsaW5lCisgICAgdHJ1bmNhdGVkX2V4cGxhbmF0aW9uWy0xXSA9IHRydW5jYXRlZF9leHBsYW5h
dGlvblstMV0gKyAiLi4uIgorCisgICAgIyBBcHBlbmQgdXNlZnVsIG1lc3NhZ2UgdG8gZXhwbGFu
YXRpb24KKyAgICB0cnVuY2F0ZWRfbGluZV9jb3VudCA9IGxlbihpbnB1dF9saW5lcykgLSBsZW4o
dHJ1bmNhdGVkX2V4cGxhbmF0aW9uKQorICAgIHRydW5jYXRlZF9saW5lX2NvdW50ICs9IDEgICMg
QWNjb3VudCBmb3IgdGhlIHBhcnQtdHJ1bmNhdGVkIGZpbmFsIGxpbmUKKyAgICBtc2cgPSAnLi4u
RnVsbCBvdXRwdXQgdHJ1bmNhdGVkJworICAgIGlmIHRydW5jYXRlZF9saW5lX2NvdW50ID09IDE6
CisgICAgICAgIG1zZyArPSAnICh7MH0gbGluZSBoaWRkZW4pJy5mb3JtYXQodHJ1bmNhdGVkX2xp
bmVfY291bnQpCisgICAgZWxzZToKKyAgICAgICAgbXNnICs9ICcgKHswfSBsaW5lcyBoaWRkZW4p
Jy5mb3JtYXQodHJ1bmNhdGVkX2xpbmVfY291bnQpCisgICAgbXNnICs9ICIsIHswfSIgLmZvcm1h
dChVU0FHRV9NU0cpCisgICAgdHJ1bmNhdGVkX2V4cGxhbmF0aW9uLmV4dGVuZChbCisgICAgICAg
IHNpeC50ZXh0X3R5cGUoIiIpLAorICAgICAgICBzaXgudGV4dF90eXBlKG1zZyksCisgICAgXSkK
KyAgICByZXR1cm4gdHJ1bmNhdGVkX2V4cGxhbmF0aW9uCisKKworZGVmIF90cnVuY2F0ZV9ieV9j
aGFyX2NvdW50KGlucHV0X2xpbmVzLCBtYXhfY2hhcnMpOgorICAgICMgQ2hlY2sgaWYgdHJ1bmNh
dGlvbiByZXF1aXJlZAorICAgIGlmIGxlbigiIi5qb2luKGlucHV0X2xpbmVzKSkgPD0gbWF4X2No
YXJzOgorICAgICAgICByZXR1cm4gaW5wdXRfbGluZXMKKworICAgICMgRmluZCBwb2ludCBhdCB3
aGljaCBpbnB1dCBsZW5ndGggZXhjZWVkcyB0b3RhbCBhbGxvd2VkIGxlbmd0aAorICAgIGl0ZXJh
dGVkX2NoYXJfY291bnQgPSAwCisgICAgZm9yIGl0ZXJhdGVkX2luZGV4LCBpbnB1dF9saW5lIGlu
IGVudW1lcmF0ZShpbnB1dF9saW5lcyk6CisgICAgICAgIGlmIGl0ZXJhdGVkX2NoYXJfY291bnQg
KyBsZW4oaW5wdXRfbGluZSkgPiBtYXhfY2hhcnM6CisgICAgICAgICAgICBicmVhaworICAgICAg
ICBpdGVyYXRlZF9jaGFyX2NvdW50ICs9IGxlbihpbnB1dF9saW5lKQorCisgICAgIyBDcmVhdGUg
dHJ1bmNhdGVkIGV4cGxhbmF0aW9uIHdpdGggbW9kaWZpZWQgZmluYWwgbGluZQorICAgIHRydW5j
YXRlZF9yZXN1bHQgPSBpbnB1dF9saW5lc1s6aXRlcmF0ZWRfaW5kZXhdCisgICAgZmluYWxfbGlu
ZSA9IGlucHV0X2xpbmVzW2l0ZXJhdGVkX2luZGV4XQorICAgIGlmIGZpbmFsX2xpbmU6CisgICAg
ICAgIGZpbmFsX2xpbmVfdHJ1bmNhdGVfcG9pbnQgPSBtYXhfY2hhcnMgLSBpdGVyYXRlZF9jaGFy
X2NvdW50CisgICAgICAgIGZpbmFsX2xpbmUgPSBmaW5hbF9saW5lWzpmaW5hbF9saW5lX3RydW5j
YXRlX3BvaW50XQorICAgIHRydW5jYXRlZF9yZXN1bHQuYXBwZW5kKGZpbmFsX2xpbmUpCisgICAg
cmV0dXJuIHRydW5jYXRlZF9yZXN1bHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qv
YXNzZXJ0aW9uL3V0aWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi91dGlsLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjUxMWQ5OGVmMWZkZjE5NjQzZDJhYzZiODg2NDhlODhjNjdiZDlkYjAKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi91dGlsLnB5CkBA
IC0wLDAgKzEsMzA4IEBACisiIiJVdGlsaXRpZXMgZm9yIGFzc2VydGlvbiBkZWJ1Z2dpbmciIiIK
K2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRf
ZnVuY3Rpb24KK2ltcG9ydCBwcHJpbnQKKworaW1wb3J0IF9weXRlc3QuX2NvZGUKK2ltcG9ydCBw
eQoraW1wb3J0IHNpeAordHJ5OgorICAgIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IFNlcXVlbmNl
CitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgU2VxdWVuY2UgPSBsaXN0CisKKwordSA9IHNpeC50
ZXh0X3R5cGUKKworIyBUaGUgX3JlcHJjb21wYXJlIGF0dHJpYnV0ZSBvbiB0aGUgdXRpbCBtb2R1
bGUgaXMgdXNlZCBieSB0aGUgbmV3IGFzc2VydGlvbgorIyBpbnRlcnByZXRhdGlvbiBjb2RlIGFu
ZCBhc3NlcnRpb24gcmV3cml0ZXIgdG8gZGV0ZWN0IHRoaXMgcGx1Z2luIHdhcworIyBsb2FkZWQg
YW5kIGluIHR1cm4gY2FsbCB0aGUgaG9va3MgZGVmaW5lZCBoZXJlIGFzIHBhcnQgb2YgdGhlCisj
IERlYnVnSW50ZXJwcmV0ZXIuCitfcmVwcmNvbXBhcmUgPSBOb25lCisKKworIyB0aGUgcmUtZW5j
b2RpbmcgaXMgbmVlZGVkIGZvciBweXRob24yIHJlcHIKKyMgd2l0aCBub24tYXNjaWkgY2hhcmFj
dGVycyAoc2VlIGlzc3VlIDg3NyBhbmQgMTM3OSkKK2RlZiBlY3Uocyk6CisgICAgdHJ5OgorICAg
ICAgICByZXR1cm4gdShzLCAndXRmLTgnLCAncmVwbGFjZScpCisgICAgZXhjZXB0IFR5cGVFcnJv
cjoKKyAgICAgICAgcmV0dXJuIHMKKworCitkZWYgZm9ybWF0X2V4cGxhbmF0aW9uKGV4cGxhbmF0
aW9uKToKKyAgICAiIiJUaGlzIGZvcm1hdHMgYW4gZXhwbGFuYXRpb24KKworICAgIE5vcm1hbGx5
IGFsbCBlbWJlZGRlZCBuZXdsaW5lcyBhcmUgZXNjYXBlZCwgaG93ZXZlciB0aGVyZSBhcmUKKyAg
ICB0aHJlZSBleGNlcHRpb25zOiBcbnssIFxufSBhbmQgXG5+LiAgVGhlIGZpcnN0IHR3byBhcmUg
aW50ZW5kZWQKKyAgICBjb3ZlciBuZXN0ZWQgZXhwbGFuYXRpb25zLCBzZWUgZnVuY3Rpb24gYW5k
IGF0dHJpYnV0ZSBleHBsYW5hdGlvbnMKKyAgICBmb3IgZXhhbXBsZXMgKC52aXNpdF9DYWxsKCks
IHZpc2l0X0F0dHJpYnV0ZSgpKS4gIFRoZSBsYXN0IG9uZSBpcworICAgIGZvciB3aGVuIG9uZSBl
eHBsYW5hdGlvbiBuZWVkcyB0byBzcGFuIG11bHRpcGxlIGxpbmVzLCBlLmcuIHdoZW4KKyAgICBk
aXNwbGF5aW5nIGRpZmZzLgorICAgICIiIgorICAgIGV4cGxhbmF0aW9uID0gZWN1KGV4cGxhbmF0
aW9uKQorICAgIGxpbmVzID0gX3NwbGl0X2V4cGxhbmF0aW9uKGV4cGxhbmF0aW9uKQorICAgIHJl
c3VsdCA9IF9mb3JtYXRfbGluZXMobGluZXMpCisgICAgcmV0dXJuIHUoJ1xuJykuam9pbihyZXN1
bHQpCisKKworZGVmIF9zcGxpdF9leHBsYW5hdGlvbihleHBsYW5hdGlvbik6CisgICAgIiIiUmV0
dXJuIGEgbGlzdCBvZiBpbmRpdmlkdWFsIGxpbmVzIGluIHRoZSBleHBsYW5hdGlvbgorCisgICAg
VGhpcyB3aWxsIHJldHVybiBhIGxpc3Qgb2YgbGluZXMgc3BsaXQgb24gJ1xueycsICdcbn0nIGFu
ZCAnXG5+Jy4KKyAgICBBbnkgb3RoZXIgbmV3bGluZXMgd2lsbCBiZSBlc2NhcGVkIGFuZCBhcHBl
YXIgaW4gdGhlIGxpbmUgYXMgdGhlCisgICAgbGl0ZXJhbCAnXG4nIGNoYXJhY3RlcnMuCisgICAg
IiIiCisgICAgcmF3X2xpbmVzID0gKGV4cGxhbmF0aW9uIG9yIHUoJycpKS5zcGxpdCgnXG4nKQor
ICAgIGxpbmVzID0gW3Jhd19saW5lc1swXV0KKyAgICBmb3IgdmFsdWVzIGluIHJhd19saW5lc1sx
Ol06CisgICAgICAgIGlmIHZhbHVlcyBhbmQgdmFsdWVzWzBdIGluIFsneycsICd9JywgJ34nLCAn
PiddOgorICAgICAgICAgICAgbGluZXMuYXBwZW5kKHZhbHVlcykKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIGxpbmVzWy0xXSArPSAnXFxuJyArIHZhbHVlcworICAgIHJldHVybiBsaW5lcwor
CisKK2RlZiBfZm9ybWF0X2xpbmVzKGxpbmVzKToKKyAgICAiIiJGb3JtYXQgdGhlIGluZGl2aWR1
YWwgbGluZXMKKworICAgIFRoaXMgd2lsbCByZXBsYWNlIHRoZSAneycsICd9JyBhbmQgJ34nIGNo
YXJhY3RlcnMgb2Ygb3VyIG1pbmkKKyAgICBmb3JtYXR0aW5nIGxhbmd1YWdlIHdpdGggdGhlIHBy
b3BlciAnd2hlcmUgLi4uJywgJ2FuZCAuLi4nIGFuZCAnICsKKyAgICAuLi4nIHRleHQsIHRha2lu
ZyBjYXJlIG9mIGluZGVudGF0aW9uIGFsb25nIHRoZSB3YXkuCisKKyAgICBSZXR1cm4gYSBsaXN0
IG9mIGZvcm1hdHRlZCBsaW5lcy4KKyAgICAiIiIKKyAgICByZXN1bHQgPSBsaW5lc1s6MV0KKyAg
ICBzdGFjayA9IFswXQorICAgIHN0YWNrY250ID0gWzBdCisgICAgZm9yIGxpbmUgaW4gbGluZXNb
MTpdOgorICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoJ3snKToKKyAgICAgICAgICAgIGlmIHN0
YWNrY250Wy0xXToKKyAgICAgICAgICAgICAgICBzID0gdSgnYW5kICAgJykKKyAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgcyA9IHUoJ3doZXJlICcpCisgICAgICAgICAgICBzdGFj
ay5hcHBlbmQobGVuKHJlc3VsdCkpCisgICAgICAgICAgICBzdGFja2NudFstMV0gKz0gMQorICAg
ICAgICAgICAgc3RhY2tjbnQuYXBwZW5kKDApCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHUo
JyArJykgKyB1KCcgICcpICogKGxlbihzdGFjaykgLSAxKSArIHMgKyBsaW5lWzE6XSkKKyAgICAg
ICAgZWxpZiBsaW5lLnN0YXJ0c3dpdGgoJ30nKToKKyAgICAgICAgICAgIHN0YWNrLnBvcCgpCisg
ICAgICAgICAgICBzdGFja2NudC5wb3AoKQorICAgICAgICAgICAgcmVzdWx0W3N0YWNrWy0xXV0g
Kz0gbGluZVsxOl0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCBsaW5lWzBdIGlu
IFsnficsICc+J10KKyAgICAgICAgICAgIHN0YWNrWy0xXSArPSAxCisgICAgICAgICAgICBpbmRl
bnQgPSBsZW4oc3RhY2spIGlmIGxpbmUuc3RhcnRzd2l0aCgnficpIGVsc2UgbGVuKHN0YWNrKSAt
IDEKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQodSgnICAnKSAqIGluZGVudCArIGxpbmVbMTpd
KQorICAgIGFzc2VydCBsZW4oc3RhY2spID09IDEKKyAgICByZXR1cm4gcmVzdWx0CisKKworIyBQ
cm92aWRlIGJhc2VzdHJpbmcgaW4gcHl0aG9uMwordHJ5OgorICAgIGJhc2VzdHJpbmcgPSBiYXNl
c3RyaW5nCitleGNlcHQgTmFtZUVycm9yOgorICAgIGJhc2VzdHJpbmcgPSBzdHIKKworCitkZWYg
YXNzZXJ0cmVwcl9jb21wYXJlKGNvbmZpZywgb3AsIGxlZnQsIHJpZ2h0KToKKyAgICAiIiJSZXR1
cm4gc3BlY2lhbGlzZWQgZXhwbGFuYXRpb25zIGZvciBzb21lIG9wZXJhdG9ycy9vcGVyYW5kcyIi
IgorICAgIHdpZHRoID0gODAgLSAxNSAtIGxlbihvcCkgLSAyICAjIDE1IGNoYXJzIGluZGVudGF0
aW9uLCAxIHNwYWNlIGFyb3VuZCBvcAorICAgIGxlZnRfcmVwciA9IHB5LmlvLnNhZmVyZXByKGxl
ZnQsIG1heHNpemU9aW50KHdpZHRoIC8vIDIpKQorICAgIHJpZ2h0X3JlcHIgPSBweS5pby5zYWZl
cmVwcihyaWdodCwgbWF4c2l6ZT13aWR0aCAtIGxlbihsZWZ0X3JlcHIpKQorCisgICAgc3VtbWFy
eSA9IHUoJyVzICVzICVzJykgJSAoZWN1KGxlZnRfcmVwciksIG9wLCBlY3UocmlnaHRfcmVwcikp
CisKKyAgICBkZWYgaXNzZXF1ZW5jZSh4KToKKyAgICAgICAgcmV0dXJuIChpc2luc3RhbmNlKHgs
IChsaXN0LCB0dXBsZSwgU2VxdWVuY2UpKSBhbmQgbm90IGlzaW5zdGFuY2UoeCwgYmFzZXN0cmlu
ZykpCisKKyAgICBkZWYgaXN0ZXh0KHgpOgorICAgICAgICByZXR1cm4gaXNpbnN0YW5jZSh4LCBi
YXNlc3RyaW5nKQorCisgICAgZGVmIGlzZGljdCh4KToKKyAgICAgICAgcmV0dXJuIGlzaW5zdGFu
Y2UoeCwgZGljdCkKKworICAgIGRlZiBpc3NldCh4KToKKyAgICAgICAgcmV0dXJuIGlzaW5zdGFu
Y2UoeCwgKHNldCwgZnJvemVuc2V0KSkKKworICAgIGRlZiBpc2l0ZXJhYmxlKG9iaik6CisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIGl0ZXIob2JqKQorICAgICAgICAgICAgcmV0dXJuIG5vdCBp
c3RleHQob2JqKQorICAgICAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCisKKyAgICB2ZXJib3NlID0gY29uZmlnLmdldG9wdGlvbigndmVyYm9zZScpCisgICAg
ZXhwbGFuYXRpb24gPSBOb25lCisgICAgdHJ5OgorICAgICAgICBpZiBvcCA9PSAnPT0nOgorICAg
ICAgICAgICAgaWYgaXN0ZXh0KGxlZnQpIGFuZCBpc3RleHQocmlnaHQpOgorICAgICAgICAgICAg
ICAgIGV4cGxhbmF0aW9uID0gX2RpZmZfdGV4dChsZWZ0LCByaWdodCwgdmVyYm9zZSkKKyAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaWYgaXNzZXF1ZW5jZShsZWZ0KSBhbmQgaXNz
ZXF1ZW5jZShyaWdodCk6CisgICAgICAgICAgICAgICAgICAgIGV4cGxhbmF0aW9uID0gX2NvbXBh
cmVfZXFfc2VxdWVuY2UobGVmdCwgcmlnaHQsIHZlcmJvc2UpCisgICAgICAgICAgICAgICAgZWxp
ZiBpc3NldChsZWZ0KSBhbmQgaXNzZXQocmlnaHQpOgorICAgICAgICAgICAgICAgICAgICBleHBs
YW5hdGlvbiA9IF9jb21wYXJlX2VxX3NldChsZWZ0LCByaWdodCwgdmVyYm9zZSkKKyAgICAgICAg
ICAgICAgICBlbGlmIGlzZGljdChsZWZ0KSBhbmQgaXNkaWN0KHJpZ2h0KToKKyAgICAgICAgICAg
ICAgICAgICAgZXhwbGFuYXRpb24gPSBfY29tcGFyZV9lcV9kaWN0KGxlZnQsIHJpZ2h0LCB2ZXJi
b3NlKQorICAgICAgICAgICAgICAgIGlmIGlzaXRlcmFibGUobGVmdCkgYW5kIGlzaXRlcmFibGUo
cmlnaHQpOgorICAgICAgICAgICAgICAgICAgICBleHBsID0gX2NvbXBhcmVfZXFfaXRlcmFibGUo
bGVmdCwgcmlnaHQsIHZlcmJvc2UpCisgICAgICAgICAgICAgICAgICAgIGlmIGV4cGxhbmF0aW9u
IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgZXhwbGFuYXRpb24uZXh0ZW5k
KGV4cGwpCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAg
ICBleHBsYW5hdGlvbiA9IGV4cGwKKyAgICAgICAgZWxpZiBvcCA9PSAnbm90IGluJzoKKyAgICAg
ICAgICAgIGlmIGlzdGV4dChsZWZ0KSBhbmQgaXN0ZXh0KHJpZ2h0KToKKyAgICAgICAgICAgICAg
ICBleHBsYW5hdGlvbiA9IF9ub3Rpbl90ZXh0KGxlZnQsIHJpZ2h0LCB2ZXJib3NlKQorICAgIGV4
Y2VwdCBFeGNlcHRpb246CisgICAgICAgIGV4cGxhbmF0aW9uID0gWworICAgICAgICAgICAgdSgn
KHB5dGVzdF9hc3NlcnRpb24gcGx1Z2luOiByZXByZXNlbnRhdGlvbiBvZiBkZXRhaWxzIGZhaWxl
ZC4gICcKKyAgICAgICAgICAgICAgJ1Byb2JhYmx5IGFuIG9iamVjdCBoYXMgYSBmYXVsdHkgX19y
ZXByX18uKScpLAorICAgICAgICAgICAgdShfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8oKSld
CisKKyAgICBpZiBub3QgZXhwbGFuYXRpb246CisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBy
ZXR1cm4gW3N1bW1hcnldICsgZXhwbGFuYXRpb24KKworCitkZWYgX2RpZmZfdGV4dChsZWZ0LCBy
aWdodCwgdmVyYm9zZT1GYWxzZSk6CisgICAgIiIiUmV0dXJuIHRoZSBleHBsYW5hdGlvbiBmb3Ig
dGhlIGRpZmYgYmV0d2VlbiB0ZXh0IG9yIGJ5dGVzCisKKyAgICBVbmxlc3MgLS12ZXJib3NlIGlz
IHVzZWQgdGhpcyB3aWxsIHNraXAgbGVhZGluZyBhbmQgdHJhaWxpbmcKKyAgICBjaGFyYWN0ZXJz
IHdoaWNoIGFyZSBpZGVudGljYWwgdG8ga2VlcCB0aGUgZGlmZiBtaW5pbWFsLgorCisgICAgSWYg
dGhlIGlucHV0IGFyZSBieXRlcyB0aGV5IHdpbGwgYmUgc2FmZWx5IGNvbnZlcnRlZCB0byB0ZXh0
LgorICAgICIiIgorICAgIGZyb20gZGlmZmxpYiBpbXBvcnQgbmRpZmYKKyAgICBleHBsYW5hdGlv
biA9IFtdCisgICAgaWYgaXNpbnN0YW5jZShsZWZ0LCBzaXguYmluYXJ5X3R5cGUpOgorICAgICAg
ICBsZWZ0ID0gdShyZXByKGxlZnQpWzE6LTFdKS5yZXBsYWNlKHInXG4nLCAnXG4nKQorICAgIGlm
IGlzaW5zdGFuY2UocmlnaHQsIHNpeC5iaW5hcnlfdHlwZSk6CisgICAgICAgIHJpZ2h0ID0gdShy
ZXByKHJpZ2h0KVsxOi0xXSkucmVwbGFjZShyJ1xuJywgJ1xuJykKKyAgICBpZiBub3QgdmVyYm9z
ZToKKyAgICAgICAgaSA9IDAgICMganVzdCBpbiBjYXNlIGxlZnQgb3IgcmlnaHQgaGFzIHplcm8g
bGVuZ3RoCisgICAgICAgIGZvciBpIGluIHJhbmdlKG1pbihsZW4obGVmdCksIGxlbihyaWdodCkp
KToKKyAgICAgICAgICAgIGlmIGxlZnRbaV0gIT0gcmlnaHRbaV06CisgICAgICAgICAgICAgICAg
YnJlYWsKKyAgICAgICAgaWYgaSA+IDQyOgorICAgICAgICAgICAgaSAtPSAxMCAgICAgICAgICAg
ICAgICAgIyBQcm92aWRlIHNvbWUgY29udGV4dAorICAgICAgICAgICAgZXhwbGFuYXRpb24gPSBb
dSgnU2tpcHBpbmcgJXMgaWRlbnRpY2FsIGxlYWRpbmcgJworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnY2hhcmFjdGVycyBpbiBkaWZmLCB1c2UgLXYgdG8gc2hvdycpICUgaV0KKyAgICAg
ICAgICAgIGxlZnQgPSBsZWZ0W2k6XQorICAgICAgICAgICAgcmlnaHQgPSByaWdodFtpOl0KKyAg
ICAgICAgaWYgbGVuKGxlZnQpID09IGxlbihyaWdodCk6CisgICAgICAgICAgICBmb3IgaSBpbiBy
YW5nZShsZW4obGVmdCkpOgorICAgICAgICAgICAgICAgIGlmIGxlZnRbLWldICE9IHJpZ2h0Wy1p
XToKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGlmIGkgPiA0MjoKKyAg
ICAgICAgICAgICAgICBpIC09IDEwICAgICAjIFByb3ZpZGUgc29tZSBjb250ZXh0CisgICAgICAg
ICAgICAgICAgZXhwbGFuYXRpb24gKz0gW3UoJ1NraXBwaW5nICVzIGlkZW50aWNhbCB0cmFpbGlu
ZyAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NoYXJhY3RlcnMgaW4gZGlm
ZiwgdXNlIC12IHRvIHNob3cnKSAlIGldCisgICAgICAgICAgICAgICAgbGVmdCA9IGxlZnRbOi1p
XQorICAgICAgICAgICAgICAgIHJpZ2h0ID0gcmlnaHRbOi1pXQorICAgIGtlZXBlbmRzID0gVHJ1
ZQorICAgIGV4cGxhbmF0aW9uICs9IFtsaW5lLnN0cmlwKCdcbicpCisgICAgICAgICAgICAgICAg
ICAgIGZvciBsaW5lIGluIG5kaWZmKGxlZnQuc3BsaXRsaW5lcyhrZWVwZW5kcyksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0LnNwbGl0bGluZXMoa2VlcGVuZHMp
KV0KKyAgICByZXR1cm4gZXhwbGFuYXRpb24KKworCitkZWYgX2NvbXBhcmVfZXFfaXRlcmFibGUo
bGVmdCwgcmlnaHQsIHZlcmJvc2U9RmFsc2UpOgorICAgIGlmIG5vdCB2ZXJib3NlOgorICAgICAg
ICByZXR1cm4gW3UoJ1VzZSAtdiB0byBnZXQgdGhlIGZ1bGwgZGlmZicpXQorICAgICMgZHluYW1p
YyBpbXBvcnQgdG8gc3BlZWR1cCBweXRlc3QKKyAgICBpbXBvcnQgZGlmZmxpYgorCisgICAgdHJ5
OgorICAgICAgICBsZWZ0X2Zvcm1hdHRpbmcgPSBwcHJpbnQucGZvcm1hdChsZWZ0KS5zcGxpdGxp
bmVzKCkKKyAgICAgICAgcmlnaHRfZm9ybWF0dGluZyA9IHBwcmludC5wZm9ybWF0KHJpZ2h0KS5z
cGxpdGxpbmVzKCkKKyAgICAgICAgZXhwbGFuYXRpb24gPSBbdSgnRnVsbCBkaWZmOicpXQorICAg
IGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICMgaGFjazogUHJldHR5UHJpbnRlci5wZm9ybWF0
KCkgaW4gcHl0aG9uIDIgZmFpbHMgd2hlbiBmb3JtYXR0aW5nIGl0ZW1zIHRoYXQgY2FuJ3QgYmUg
c29ydGVkKCksIGllLCBjYWxsaW5nCisgICAgICAgICMgc29ydGVkKCkgb24gYSBsaXN0IHdvdWxk
IHJhaXNlLiBTZWUgaXNzdWUgIzcxOC4KKyAgICAgICAgIyBBcyBhIHdvcmthcm91bmQsIHRoZSBm
dWxsIGRpZmYgaXMgZ2VuZXJhdGVkIGJ5IHVzaW5nIHRoZSByZXByKCkgc3RyaW5nIG9mIGVhY2gg
aXRlbSBvZiBlYWNoIGNvbnRhaW5lci4KKyAgICAgICAgbGVmdF9mb3JtYXR0aW5nID0gc29ydGVk
KHJlcHIoeCkgZm9yIHggaW4gbGVmdCkKKyAgICAgICAgcmlnaHRfZm9ybWF0dGluZyA9IHNvcnRl
ZChyZXByKHgpIGZvciB4IGluIHJpZ2h0KQorICAgICAgICBleHBsYW5hdGlvbiA9IFt1KCdGdWxs
IGRpZmYgKGZhbGxiYWNrIHRvIGNhbGxpbmcgcmVwciBvbiBlYWNoIGl0ZW0pOicpXQorICAgIGV4
cGxhbmF0aW9uLmV4dGVuZChsaW5lLnN0cmlwKCkgZm9yIGxpbmUgaW4gZGlmZmxpYi5uZGlmZihs
ZWZ0X2Zvcm1hdHRpbmcsIHJpZ2h0X2Zvcm1hdHRpbmcpKQorICAgIHJldHVybiBleHBsYW5hdGlv
bgorCisKK2RlZiBfY29tcGFyZV9lcV9zZXF1ZW5jZShsZWZ0LCByaWdodCwgdmVyYm9zZT1GYWxz
ZSk6CisgICAgZXhwbGFuYXRpb24gPSBbXQorICAgIGZvciBpIGluIHJhbmdlKG1pbihsZW4obGVm
dCksIGxlbihyaWdodCkpKToKKyAgICAgICAgaWYgbGVmdFtpXSAhPSByaWdodFtpXToKKyAgICAg
ICAgICAgIGV4cGxhbmF0aW9uICs9IFt1KCdBdCBpbmRleCAlcyBkaWZmOiAlciAhPSAlcicpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAoaSwgbGVmdFtpXSwgcmlnaHRbaV0pXQorICAg
ICAgICAgICAgYnJlYWsKKyAgICBpZiBsZW4obGVmdCkgPiBsZW4ocmlnaHQpOgorICAgICAgICBl
eHBsYW5hdGlvbiArPSBbdSgnTGVmdCBjb250YWlucyBtb3JlIGl0ZW1zLCBmaXJzdCBleHRyYSBp
dGVtOiAlcycpCisgICAgICAgICAgICAgICAgICAgICAgICAlIHB5LmlvLnNhZmVyZXByKGxlZnRb
bGVuKHJpZ2h0KV0sKV0KKyAgICBlbGlmIGxlbihsZWZ0KSA8IGxlbihyaWdodCk6CisgICAgICAg
IGV4cGxhbmF0aW9uICs9IFsKKyAgICAgICAgICAgIHUoJ1JpZ2h0IGNvbnRhaW5zIG1vcmUgaXRl
bXMsIGZpcnN0IGV4dHJhIGl0ZW06ICVzJykgJQorICAgICAgICAgICAgcHkuaW8uc2FmZXJlcHIo
cmlnaHRbbGVuKGxlZnQpXSwpXQorICAgIHJldHVybiBleHBsYW5hdGlvbgorCisKK2RlZiBfY29t
cGFyZV9lcV9zZXQobGVmdCwgcmlnaHQsIHZlcmJvc2U9RmFsc2UpOgorICAgIGV4cGxhbmF0aW9u
ID0gW10KKyAgICBkaWZmX2xlZnQgPSBsZWZ0IC0gcmlnaHQKKyAgICBkaWZmX3JpZ2h0ID0gcmln
aHQgLSBsZWZ0CisgICAgaWYgZGlmZl9sZWZ0OgorICAgICAgICBleHBsYW5hdGlvbi5hcHBlbmQo
dSgnRXh0cmEgaXRlbXMgaW4gdGhlIGxlZnQgc2V0OicpKQorICAgICAgICBmb3IgaXRlbSBpbiBk
aWZmX2xlZnQ6CisgICAgICAgICAgICBleHBsYW5hdGlvbi5hcHBlbmQocHkuaW8uc2FmZXJlcHIo
aXRlbSkpCisgICAgaWYgZGlmZl9yaWdodDoKKyAgICAgICAgZXhwbGFuYXRpb24uYXBwZW5kKHUo
J0V4dHJhIGl0ZW1zIGluIHRoZSByaWdodCBzZXQ6JykpCisgICAgICAgIGZvciBpdGVtIGluIGRp
ZmZfcmlnaHQ6CisgICAgICAgICAgICBleHBsYW5hdGlvbi5hcHBlbmQocHkuaW8uc2FmZXJlcHIo
aXRlbSkpCisgICAgcmV0dXJuIGV4cGxhbmF0aW9uCisKKworZGVmIF9jb21wYXJlX2VxX2RpY3Qo
bGVmdCwgcmlnaHQsIHZlcmJvc2U9RmFsc2UpOgorICAgIGV4cGxhbmF0aW9uID0gW10KKyAgICBj
b21tb24gPSBzZXQobGVmdCkuaW50ZXJzZWN0aW9uKHNldChyaWdodCkpCisgICAgc2FtZSA9IGRp
Y3QoKGssIGxlZnRba10pIGZvciBrIGluIGNvbW1vbiBpZiBsZWZ0W2tdID09IHJpZ2h0W2tdKQor
ICAgIGlmIHNhbWUgYW5kIHZlcmJvc2UgPCAyOgorICAgICAgICBleHBsYW5hdGlvbiArPSBbdSgn
T21pdHRpbmcgJXMgaWRlbnRpY2FsIGl0ZW1zLCB1c2UgLXZ2IHRvIHNob3cnKSAlCisgICAgICAg
ICAgICAgICAgICAgICAgICBsZW4oc2FtZSldCisgICAgZWxpZiBzYW1lOgorICAgICAgICBleHBs
YW5hdGlvbiArPSBbdSgnQ29tbW9uIGl0ZW1zOicpXQorICAgICAgICBleHBsYW5hdGlvbiArPSBw
cHJpbnQucGZvcm1hdChzYW1lKS5zcGxpdGxpbmVzKCkKKyAgICBkaWZmID0gc2V0KGsgZm9yIGsg
aW4gY29tbW9uIGlmIGxlZnRba10gIT0gcmlnaHRba10pCisgICAgaWYgZGlmZjoKKyAgICAgICAg
ZXhwbGFuYXRpb24gKz0gW3UoJ0RpZmZlcmluZyBpdGVtczonKV0KKyAgICAgICAgZm9yIGsgaW4g
ZGlmZjoKKyAgICAgICAgICAgIGV4cGxhbmF0aW9uICs9IFtweS5pby5zYWZlcmVwcih7azogbGVm
dFtrXX0pICsgJyAhPSAnICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBweS5pby5zYWZl
cmVwcih7azogcmlnaHRba119KV0KKyAgICBleHRyYV9sZWZ0ID0gc2V0KGxlZnQpIC0gc2V0KHJp
Z2h0KQorICAgIGlmIGV4dHJhX2xlZnQ6CisgICAgICAgIGV4cGxhbmF0aW9uLmFwcGVuZCh1KCdM
ZWZ0IGNvbnRhaW5zIG1vcmUgaXRlbXM6JykpCisgICAgICAgIGV4cGxhbmF0aW9uLmV4dGVuZChw
cHJpbnQucGZvcm1hdCgKKyAgICAgICAgICAgIGRpY3QoKGssIGxlZnRba10pIGZvciBrIGluIGV4
dHJhX2xlZnQpKS5zcGxpdGxpbmVzKCkpCisgICAgZXh0cmFfcmlnaHQgPSBzZXQocmlnaHQpIC0g
c2V0KGxlZnQpCisgICAgaWYgZXh0cmFfcmlnaHQ6CisgICAgICAgIGV4cGxhbmF0aW9uLmFwcGVu
ZCh1KCdSaWdodCBjb250YWlucyBtb3JlIGl0ZW1zOicpKQorICAgICAgICBleHBsYW5hdGlvbi5l
eHRlbmQocHByaW50LnBmb3JtYXQoCisgICAgICAgICAgICBkaWN0KChrLCByaWdodFtrXSkgZm9y
IGsgaW4gZXh0cmFfcmlnaHQpKS5zcGxpdGxpbmVzKCkpCisgICAgcmV0dXJuIGV4cGxhbmF0aW9u
CisKKworZGVmIF9ub3Rpbl90ZXh0KHRlcm0sIHRleHQsIHZlcmJvc2U9RmFsc2UpOgorICAgIGlu
ZGV4ID0gdGV4dC5maW5kKHRlcm0pCisgICAgaGVhZCA9IHRleHRbOmluZGV4XQorICAgIHRhaWwg
PSB0ZXh0W2luZGV4ICsgbGVuKHRlcm0pOl0KKyAgICBjb3JyZWN0X3RleHQgPSBoZWFkICsgdGFp
bAorICAgIGRpZmYgPSBfZGlmZl90ZXh0KGNvcnJlY3RfdGV4dCwgdGV4dCwgdmVyYm9zZSkKKyAg
ICBuZXdkaWZmID0gW3UoJyVzIGlzIGNvbnRhaW5lZCBoZXJlOicpICUgcHkuaW8uc2FmZXJlcHIo
dGVybSwgbWF4c2l6ZT00MildCisgICAgZm9yIGxpbmUgaW4gZGlmZjoKKyAgICAgICAgaWYgbGlu
ZS5zdGFydHN3aXRoKHUoJ1NraXBwaW5nJykpOgorICAgICAgICAgICAgY29udGludWUKKyAgICAg
ICAgaWYgbGluZS5zdGFydHN3aXRoKHUoJy0gJykpOgorICAgICAgICAgICAgY29udGludWUKKyAg
ICAgICAgaWYgbGluZS5zdGFydHN3aXRoKHUoJysgJykpOgorICAgICAgICAgICAgbmV3ZGlmZi5h
cHBlbmQodSgnICAnKSArIGxpbmVbMjpdKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbmV3
ZGlmZi5hcHBlbmQobGluZSkKKyAgICByZXR1cm4gbmV3ZGlmZgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC9hc3NlcnRpb24vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0
ZXN0L2Fzc2VydGlvbi93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMTMwN2QzYWJjNzIxNThm
NDFkNjQ0MmNmZDU5MWUxYjA1ZjljYWNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
X3B5dGVzdC9hc3NlcnRpb24vdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMCBAQAorVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dp
dGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9hc3NlcnRpb24vX19pbml0X18ucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9fcHl0ZXN0L2Fzc2VydGlvbi9yZXdyaXRlLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9hc3Nl
cnRpb24vdHJ1bmNhdGUucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi91dGlsLnB5
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2NhY2hlcHJvdmlkZXIucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L2NhY2hlcHJvdmlkZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzUzN2MxNDQ3MmIx
Y2U5MTY5Y2ZlNzYyOTAxNTg4NGIwZTRlM2U0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3QvY2FjaGVwcm92aWRlci5weQpAQCAtMCwwICsxLDI2MCBAQAorIiIiCittZXJn
ZWQgaW1wbGVtZW50YXRpb24gb2YgdGhlIGNhY2hlIHByb3ZpZGVyCisKK3RoZSBuYW1lIGNhY2hl
IHdhcyBub3QgY2hvc2VuIHRvIGVuc3VyZSBwbHVnZ3kgYXV0b21hdGljYWxseQoraWdub3JlcyB0
aGUgZXh0ZXJuYWwgcHl0ZXN0LWNhY2hlCisiIiIKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJz
b2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCBweQoraW1wb3J0
IHB5dGVzdAoraW1wb3J0IGpzb24KK2ltcG9ydCBvcworZnJvbSBvcy5wYXRoIGltcG9ydCBzZXAg
YXMgX3NlcCwgYWx0c2VwIGFzIF9hbHRzZXAKKworCitjbGFzcyBDYWNoZShvYmplY3QpOgorICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWcpOgorICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZp
ZworICAgICAgICBzZWxmLl9jYWNoZWRpciA9IENhY2hlLmNhY2hlX2Rpcl9mcm9tX2NvbmZpZyhj
b25maWcpCisgICAgICAgIHNlbGYudHJhY2UgPSBjb25maWcudHJhY2Uucm9vdC5nZXQoImNhY2hl
IikKKyAgICAgICAgaWYgY29uZmlnLmdldHZhbHVlKCJjYWNoZWNsZWFyIik6CisgICAgICAgICAg
ICBzZWxmLnRyYWNlKCJjbGVhcmluZyBjYWNoZWRpciIpCisgICAgICAgICAgICBpZiBzZWxmLl9j
YWNoZWRpci5jaGVjaygpOgorICAgICAgICAgICAgICAgIHNlbGYuX2NhY2hlZGlyLnJlbW92ZSgp
CisgICAgICAgICAgICBzZWxmLl9jYWNoZWRpci5ta2RpcigpCisKKyAgICBAc3RhdGljbWV0aG9k
CisgICAgZGVmIGNhY2hlX2Rpcl9mcm9tX2NvbmZpZyhjb25maWcpOgorICAgICAgICBjYWNoZV9k
aXIgPSBjb25maWcuZ2V0aW5pKCJjYWNoZV9kaXIiKQorICAgICAgICBjYWNoZV9kaXIgPSBvcy5w
YXRoLmV4cGFuZHVzZXIoY2FjaGVfZGlyKQorICAgICAgICBjYWNoZV9kaXIgPSBvcy5wYXRoLmV4
cGFuZHZhcnMoY2FjaGVfZGlyKQorICAgICAgICBpZiBvcy5wYXRoLmlzYWJzKGNhY2hlX2Rpcik6
CisgICAgICAgICAgICByZXR1cm4gcHkucGF0aC5sb2NhbChjYWNoZV9kaXIpCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICByZXR1cm4gY29uZmlnLnJvb3RkaXIuam9pbihjYWNoZV9kaXIpCisK
KyAgICBkZWYgbWFrZWRpcihzZWxmLCBuYW1lKToKKyAgICAgICAgIiIiIHJldHVybiBhIGRpcmVj
dG9yeSBwYXRoIG9iamVjdCB3aXRoIHRoZSBnaXZlbiBuYW1lLiAgSWYgdGhlCisgICAgICAgIGRp
cmVjdG9yeSBkb2VzIG5vdCB5ZXQgZXhpc3QsIGl0IHdpbGwgYmUgY3JlYXRlZC4gIFlvdSBjYW4g
dXNlIGl0CisgICAgICAgIHRvIG1hbmFnZSBmaWxlcyBsaWtlcyBlLiBnLiBzdG9yZS9yZXRyaWV2
ZSBkYXRhYmFzZQorICAgICAgICBkdW1wcyBhY3Jvc3MgdGVzdCBzZXNzaW9ucy4KKworICAgICAg
ICA6cGFyYW0gbmFtZTogbXVzdCBiZSBhIHN0cmluZyBub3QgY29udGFpbmluZyBhIGBgL2BgIHNl
cGFyYXRvci4KKyAgICAgICAgICAgICBNYWtlIHN1cmUgdGhlIG5hbWUgY29udGFpbnMgeW91ciBw
bHVnaW4gb3IgYXBwbGljYXRpb24KKyAgICAgICAgICAgICBpZGVudGlmaWVycyB0byBwcmV2ZW50
IGNsYXNoZXMgd2l0aCBvdGhlciBjYWNoZSB1c2Vycy4KKyAgICAgICAgIiIiCisgICAgICAgIGlm
IF9zZXAgaW4gbmFtZSBvciBfYWx0c2VwIGlzIG5vdCBOb25lIGFuZCBfYWx0c2VwIGluIG5hbWU6
CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJuYW1lIGlzIG5vdCBhbGxvd2VkIHRvIGNv
bnRhaW4gcGF0aCBzZXBhcmF0b3JzIikKKyAgICAgICAgcmV0dXJuIHNlbGYuX2NhY2hlZGlyLmVu
c3VyZV9kaXIoImQiLCBuYW1lKQorCisgICAgZGVmIF9nZXR2YWx1ZXBhdGgoc2VsZiwga2V5KToK
KyAgICAgICAgcmV0dXJuIHNlbGYuX2NhY2hlZGlyLmpvaW4oJ3YnLCAqa2V5LnNwbGl0KCcvJykp
CisKKyAgICBkZWYgZ2V0KHNlbGYsIGtleSwgZGVmYXVsdCk6CisgICAgICAgICIiIiByZXR1cm4g
Y2FjaGVkIHZhbHVlIGZvciB0aGUgZ2l2ZW4ga2V5LiAgSWYgbm8gdmFsdWUKKyAgICAgICAgd2Fz
IHlldCBjYWNoZWQgb3IgdGhlIHZhbHVlIGNhbm5vdCBiZSByZWFkLCB0aGUgc3BlY2lmaWVkCisg
ICAgICAgIGRlZmF1bHQgaXMgcmV0dXJuZWQuCisKKyAgICAgICAgOnBhcmFtIGtleTogbXVzdCBi
ZSBhIGBgL2BgIHNlcGFyYXRlZCB2YWx1ZS4gVXN1YWxseSB0aGUgZmlyc3QKKyAgICAgICAgICAg
ICBuYW1lIGlzIHRoZSBuYW1lIG9mIHlvdXIgcGx1Z2luIG9yIHlvdXIgYXBwbGljYXRpb24uCisg
ICAgICAgIDpwYXJhbSBkZWZhdWx0OiBtdXN0IGJlIHByb3ZpZGVkIGluIGNhc2Ugb2YgYSBjYWNo
ZS1taXNzIG9yCisgICAgICAgICAgICAgaW52YWxpZCBjYWNoZSB2YWx1ZXMuCisKKyAgICAgICAg
IiIiCisgICAgICAgIHBhdGggPSBzZWxmLl9nZXR2YWx1ZXBhdGgoa2V5KQorICAgICAgICBpZiBw
YXRoLmNoZWNrKCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgd2l0aCBwYXRo
Lm9wZW4oInIiKSBhcyBmOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4ganNvbi5sb2FkKGYp
CisgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICBzZWxmLnRy
YWNlKCJjYWNoZS1pbnZhbGlkIGF0ICVzIiAlIChwYXRoLCkpCisgICAgICAgIHJldHVybiBkZWZh
dWx0CisKKyAgICBkZWYgc2V0KHNlbGYsIGtleSwgdmFsdWUpOgorICAgICAgICAiIiIgc2F2ZSB2
YWx1ZSBmb3IgdGhlIGdpdmVuIGtleS4KKworICAgICAgICA6cGFyYW0ga2V5OiBtdXN0IGJlIGEg
YGAvYGAgc2VwYXJhdGVkIHZhbHVlLiBVc3VhbGx5IHRoZSBmaXJzdAorICAgICAgICAgICAgIG5h
bWUgaXMgdGhlIG5hbWUgb2YgeW91ciBwbHVnaW4gb3IgeW91ciBhcHBsaWNhdGlvbi4KKyAgICAg
ICAgOnBhcmFtIHZhbHVlOiBtdXN0IGJlIG9mIGFueSBjb21iaW5hdGlvbiBvZiBiYXNpYworICAg
ICAgICAgICAgICAgcHl0aG9uIHR5cGVzLCBpbmNsdWRpbmcgbmVzdGVkIHR5cGVzCisgICAgICAg
ICAgICAgICBsaWtlIGUuIGcuIGxpc3RzIG9mIGRpY3Rpb25hcmllcy4KKyAgICAgICAgIiIiCisg
ICAgICAgIHBhdGggPSBzZWxmLl9nZXR2YWx1ZXBhdGgoa2V5KQorICAgICAgICB0cnk6CisgICAg
ICAgICAgICBwYXRoLmRpcnBhdGgoKS5lbnN1cmVfZGlyKCkKKyAgICAgICAgZXhjZXB0IChweS5l
cnJvci5FRVhJU1QsIHB5LmVycm9yLkVBQ0NFUyk6CisgICAgICAgICAgICBzZWxmLmNvbmZpZy53
YXJuKAorICAgICAgICAgICAgICAgIGNvZGU9J0k5JywgbWVzc2FnZT0nY291bGQgbm90IGNyZWF0
ZSBjYWNoZSBwYXRoICVzJyAlIChwYXRoLCkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIHJl
dHVybgorICAgICAgICB0cnk6CisgICAgICAgICAgICBmID0gcGF0aC5vcGVuKCd3JykKKyAgICAg
ICAgZXhjZXB0IHB5LmVycm9yLkVOT1RESVI6CisgICAgICAgICAgICBzZWxmLmNvbmZpZy53YXJu
KAorICAgICAgICAgICAgICAgIGNvZGU9J0k5JywgbWVzc2FnZT0nY2FjaGUgY291bGQgbm90IHdy
aXRlIHBhdGggJXMnICUgKHBhdGgsKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHdpdGgg
ZjoKKyAgICAgICAgICAgICAgICBzZWxmLnRyYWNlKCJjYWNoZS13cml0ZSAlczogJXIiICUgKGtl
eSwgdmFsdWUsKSkKKyAgICAgICAgICAgICAgICBqc29uLmR1bXAodmFsdWUsIGYsIGluZGVudD0y
LCBzb3J0X2tleXM9VHJ1ZSkKKworCitjbGFzcyBMRlBsdWdpbjoKKyAgICAiIiIgUGx1Z2luIHdo
aWNoIGltcGxlbWVudHMgdGhlIC0tbGYgKHJ1biBsYXN0LWZhaWxpbmcpIG9wdGlvbiAiIiIKKwor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWcpOgorICAgICAgICBzZWxmLmNvbmZpZyA9IGNv
bmZpZworICAgICAgICBhY3RpdmVfa2V5cyA9ICdsZicsICdmYWlsZWRmaXJzdCcKKyAgICAgICAg
c2VsZi5hY3RpdmUgPSBhbnkoY29uZmlnLmdldHZhbHVlKGtleSkgZm9yIGtleSBpbiBhY3RpdmVf
a2V5cykKKyAgICAgICAgc2VsZi5sYXN0ZmFpbGVkID0gY29uZmlnLmNhY2hlLmdldCgiY2FjaGUv
bGFzdGZhaWxlZCIsIHt9KQorICAgICAgICBzZWxmLl9wcmV2aW91c2x5X2ZhaWxlZF9jb3VudCA9
IE5vbmUKKworICAgIGRlZiBweXRlc3RfcmVwb3J0X2NvbGxlY3Rpb25maW5pc2goc2VsZik6Cisg
ICAgICAgIGlmIHNlbGYuYWN0aXZlOgorICAgICAgICAgICAgaWYgbm90IHNlbGYuX3ByZXZpb3Vz
bHlfZmFpbGVkX2NvdW50OgorICAgICAgICAgICAgICAgIG1vZGUgPSAicnVuIGFsbCAobm8gcmVj
b3JkZWQgZmFpbHVyZXMpIgorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBub3Vu
ID0gJ2ZhaWx1cmUnIGlmIHNlbGYuX3ByZXZpb3VzbHlfZmFpbGVkX2NvdW50ID09IDEgZWxzZSAn
ZmFpbHVyZXMnCisgICAgICAgICAgICAgICAgc3VmZml4ID0gIiBmaXJzdCIgaWYgc2VsZi5jb25m
aWcuZ2V0dmFsdWUoImZhaWxlZGZpcnN0IikgZWxzZSAiIgorICAgICAgICAgICAgICAgIG1vZGUg
PSAicmVydW4gcHJldmlvdXMge2NvdW50fSB7bm91bn17c3VmZml4fSIuZm9ybWF0KAorICAgICAg
ICAgICAgICAgICAgICBjb3VudD1zZWxmLl9wcmV2aW91c2x5X2ZhaWxlZF9jb3VudCwgc3VmZml4
PXN1ZmZpeCwgbm91bj1ub3VuCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgcmV0dXJu
ICJydW4tbGFzdC1mYWlsdXJlOiAlcyIgJSBtb2RlCisKKyAgICBkZWYgcHl0ZXN0X3J1bnRlc3Rf
bG9ncmVwb3J0KHNlbGYsIHJlcG9ydCk6CisgICAgICAgIGlmIChyZXBvcnQud2hlbiA9PSAnY2Fs
bCcgYW5kIHJlcG9ydC5wYXNzZWQpIG9yIHJlcG9ydC5za2lwcGVkOgorICAgICAgICAgICAgc2Vs
Zi5sYXN0ZmFpbGVkLnBvcChyZXBvcnQubm9kZWlkLCBOb25lKQorICAgICAgICBlbGlmIHJlcG9y
dC5mYWlsZWQ6CisgICAgICAgICAgICBzZWxmLmxhc3RmYWlsZWRbcmVwb3J0Lm5vZGVpZF0gPSBU
cnVlCisKKyAgICBkZWYgcHl0ZXN0X2NvbGxlY3RyZXBvcnQoc2VsZiwgcmVwb3J0KToKKyAgICAg
ICAgcGFzc2VkID0gcmVwb3J0Lm91dGNvbWUgaW4gKCdwYXNzZWQnLCAnc2tpcHBlZCcpCisgICAg
ICAgIGlmIHBhc3NlZDoKKyAgICAgICAgICAgIGlmIHJlcG9ydC5ub2RlaWQgaW4gc2VsZi5sYXN0
ZmFpbGVkOgorICAgICAgICAgICAgICAgIHNlbGYubGFzdGZhaWxlZC5wb3AocmVwb3J0Lm5vZGVp
ZCkKKyAgICAgICAgICAgICAgICBzZWxmLmxhc3RmYWlsZWQudXBkYXRlKAorICAgICAgICAgICAg
ICAgICAgICAoaXRlbS5ub2RlaWQsIFRydWUpCisgICAgICAgICAgICAgICAgICAgIGZvciBpdGVt
IGluIHJlcG9ydC5yZXN1bHQpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmxhc3Rm
YWlsZWRbcmVwb3J0Lm5vZGVpZF0gPSBUcnVlCisKKyAgICBkZWYgcHl0ZXN0X2NvbGxlY3Rpb25f
bW9kaWZ5aXRlbXMoc2VsZiwgc2Vzc2lvbiwgY29uZmlnLCBpdGVtcyk6CisgICAgICAgIGlmIHNl
bGYuYWN0aXZlIGFuZCBzZWxmLmxhc3RmYWlsZWQ6CisgICAgICAgICAgICBwcmV2aW91c2x5X2Zh
aWxlZCA9IFtdCisgICAgICAgICAgICBwcmV2aW91c2x5X3Bhc3NlZCA9IFtdCisgICAgICAgICAg
ICBmb3IgaXRlbSBpbiBpdGVtczoKKyAgICAgICAgICAgICAgICBpZiBpdGVtLm5vZGVpZCBpbiBz
ZWxmLmxhc3RmYWlsZWQ6CisgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzbHlfZmFpbGVkLmFw
cGVuZChpdGVtKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHBy
ZXZpb3VzbHlfcGFzc2VkLmFwcGVuZChpdGVtKQorICAgICAgICAgICAgc2VsZi5fcHJldmlvdXNs
eV9mYWlsZWRfY291bnQgPSBsZW4ocHJldmlvdXNseV9mYWlsZWQpCisgICAgICAgICAgICBpZiBu
b3QgcHJldmlvdXNseV9mYWlsZWQ6CisgICAgICAgICAgICAgICAgIyBydW5uaW5nIGEgc3Vic2V0
IG9mIGFsbCB0ZXN0cyB3aXRoIHJlY29yZGVkIGZhaWx1cmVzIG91dHNpZGUKKyAgICAgICAgICAg
ICAgICAjIG9mIHRoZSBzZXQgb2YgdGVzdHMgY3VycmVudGx5IGV4ZWN1dGluZworICAgICAgICAg
ICAgICAgIHJldHVybgorICAgICAgICAgICAgaWYgc2VsZi5jb25maWcuZ2V0dmFsdWUoImxmIik6
CisgICAgICAgICAgICAgICAgaXRlbXNbOl0gPSBwcmV2aW91c2x5X2ZhaWxlZAorICAgICAgICAg
ICAgICAgIGNvbmZpZy5ob29rLnB5dGVzdF9kZXNlbGVjdGVkKGl0ZW1zPXByZXZpb3VzbHlfcGFz
c2VkKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBpdGVtc1s6XSA9IHByZXZp
b3VzbHlfZmFpbGVkICsgcHJldmlvdXNseV9wYXNzZWQKKworICAgIGRlZiBweXRlc3Rfc2Vzc2lv
bmZpbmlzaChzZWxmLCBzZXNzaW9uKToKKyAgICAgICAgY29uZmlnID0gc2VsZi5jb25maWcKKyAg
ICAgICAgaWYgY29uZmlnLmdldHZhbHVlKCJjYWNoZXNob3ciKSBvciBoYXNhdHRyKGNvbmZpZywg
InNsYXZlaW5wdXQiKToKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIHNhdmVkX2xhc3Rm
YWlsZWQgPSBjb25maWcuY2FjaGUuZ2V0KCJjYWNoZS9sYXN0ZmFpbGVkIiwge30pCisgICAgICAg
IGlmIHNhdmVkX2xhc3RmYWlsZWQgIT0gc2VsZi5sYXN0ZmFpbGVkOgorICAgICAgICAgICAgY29u
ZmlnLmNhY2hlLnNldCgiY2FjaGUvbGFzdGZhaWxlZCIsIHNlbGYubGFzdGZhaWxlZCkKKworCitk
ZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgorICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3Vw
KCJnZW5lcmFsIikKKyAgICBncm91cC5hZGRvcHRpb24oCisgICAgICAgICctLWxmJywgJy0tbGFz
dC1mYWlsZWQnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBkZXN0PSJsZiIsCisgICAgICAgIGhlbHA9
InJlcnVuIG9ubHkgdGhlIHRlc3RzIHRoYXQgZmFpbGVkICIKKyAgICAgICAgICAgICAiYXQgdGhl
IGxhc3QgcnVuIChvciBhbGwgaWYgbm9uZSBmYWlsZWQpIikKKyAgICBncm91cC5hZGRvcHRpb24o
CisgICAgICAgICctLWZmJywgJy0tZmFpbGVkLWZpcnN0JywgYWN0aW9uPSdzdG9yZV90cnVlJywg
ZGVzdD0iZmFpbGVkZmlyc3QiLAorICAgICAgICBoZWxwPSJydW4gYWxsIHRlc3RzIGJ1dCBydW4g
dGhlIGxhc3QgZmFpbHVyZXMgZmlyc3QuICAiCisgICAgICAgICAgICAgIlRoaXMgbWF5IHJlLW9y
ZGVyIHRlc3RzIGFuZCB0aHVzIGxlYWQgdG8gIgorICAgICAgICAgICAgICJyZXBlYXRlZCBmaXh0
dXJlIHNldHVwL3RlYXJkb3duIikKKyAgICBncm91cC5hZGRvcHRpb24oCisgICAgICAgICctLWNh
Y2hlLXNob3cnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBkZXN0PSJjYWNoZXNob3ciLAorICAgICAg
ICBoZWxwPSJzaG93IGNhY2hlIGNvbnRlbnRzLCBkb24ndCBwZXJmb3JtIGNvbGxlY3Rpb24gb3Ig
dGVzdHMiKQorICAgIGdyb3VwLmFkZG9wdGlvbigKKyAgICAgICAgJy0tY2FjaGUtY2xlYXInLCBh
Y3Rpb249J3N0b3JlX3RydWUnLCBkZXN0PSJjYWNoZWNsZWFyIiwKKyAgICAgICAgaGVscD0icmVt
b3ZlIGFsbCBjYWNoZSBjb250ZW50cyBhdCBzdGFydCBvZiB0ZXN0IHJ1bi4iKQorICAgIHBhcnNl
ci5hZGRpbmkoCisgICAgICAgICJjYWNoZV9kaXIiLCBkZWZhdWx0PScuY2FjaGUnLAorICAgICAg
ICBoZWxwPSJjYWNoZSBkaXJlY3RvcnkgcGF0aC4iKQorCisKK2RlZiBweXRlc3RfY21kbGluZV9t
YWluKGNvbmZpZyk6CisgICAgaWYgY29uZmlnLm9wdGlvbi5jYWNoZXNob3c6CisgICAgICAgIGZy
b20gX3B5dGVzdC5tYWluIGltcG9ydCB3cmFwX3Nlc3Npb24KKyAgICAgICAgcmV0dXJuIHdyYXBf
c2Vzc2lvbihjb25maWcsIGNhY2hlc2hvdykKKworCitAcHl0ZXN0Lmhvb2tpbXBsKHRyeWZpcnN0
PVRydWUpCitkZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgorICAgIGNvbmZpZy5jYWNoZSA9
IENhY2hlKGNvbmZpZykKKyAgICBjb25maWcucGx1Z2lubWFuYWdlci5yZWdpc3RlcihMRlBsdWdp
bihjb25maWcpLCAibGZwbHVnaW4iKQorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGNhY2hlKHJl
cXVlc3QpOgorICAgICIiIgorICAgIFJldHVybiBhIGNhY2hlIG9iamVjdCB0aGF0IGNhbiBwZXJz
aXN0IHN0YXRlIGJldHdlZW4gdGVzdGluZyBzZXNzaW9ucy4KKworICAgIGNhY2hlLmdldChrZXks
IGRlZmF1bHQpCisgICAgY2FjaGUuc2V0KGtleSwgdmFsdWUpCisKKyAgICBLZXlzIG11c3QgYmUg
YSBgYC9gYCBzZXBhcmF0ZWQgdmFsdWUsIHdoZXJlIHRoZSBmaXJzdCBwYXJ0IGlzIHVzdWFsbHkg
dGhlCisgICAgbmFtZSBvZiB5b3VyIHBsdWdpbiBvciBhcHBsaWNhdGlvbiB0byBhdm9pZCBjbGFz
aGVzIHdpdGggb3RoZXIgY2FjaGUgdXNlcnMuCisKKyAgICBWYWx1ZXMgY2FuIGJlIGFueSBvYmpl
Y3QgaGFuZGxlZCBieSB0aGUganNvbiBzdGRsaWIgbW9kdWxlLgorICAgICIiIgorICAgIHJldHVy
biByZXF1ZXN0LmNvbmZpZy5jYWNoZQorCisKK2RlZiBweXRlc3RfcmVwb3J0X2hlYWRlcihjb25m
aWcpOgorICAgIGlmIGNvbmZpZy5vcHRpb24udmVyYm9zZToKKyAgICAgICAgcmVscGF0aCA9IHB5
LnBhdGgubG9jYWwoKS5iZXN0cmVscGF0aChjb25maWcuY2FjaGUuX2NhY2hlZGlyKQorICAgICAg
ICByZXR1cm4gImNhY2hlZGlyOiAlcyIgJSByZWxwYXRoCisKKworZGVmIGNhY2hlc2hvdyhjb25m
aWcsIHNlc3Npb24pOgorICAgIGZyb20gcHByaW50IGltcG9ydCBwcHJpbnQKKyAgICB0dyA9IHB5
LmlvLlRlcm1pbmFsV3JpdGVyKCkKKyAgICB0dy5saW5lKCJjYWNoZWRpcjogIiArIHN0cihjb25m
aWcuY2FjaGUuX2NhY2hlZGlyKSkKKyAgICBpZiBub3QgY29uZmlnLmNhY2hlLl9jYWNoZWRpci5j
aGVjaygpOgorICAgICAgICB0dy5saW5lKCJjYWNoZSBpcyBlbXB0eSIpCisgICAgICAgIHJldHVy
biAwCisgICAgZHVtbXkgPSBvYmplY3QoKQorICAgIGJhc2VkaXIgPSBjb25maWcuY2FjaGUuX2Nh
Y2hlZGlyCisgICAgdmRpciA9IGJhc2VkaXIuam9pbigidiIpCisgICAgdHcuc2VwKCItIiwgImNh
Y2hlIHZhbHVlcyIpCisgICAgZm9yIHZhbHBhdGggaW4gc29ydGVkKHZkaXIudmlzaXQobGFtYmRh
IHg6IHguaXNmaWxlKCkpKToKKyAgICAgICAga2V5ID0gdmFscGF0aC5yZWx0byh2ZGlyKS5yZXBs
YWNlKHZhbHBhdGguc2VwLCAiLyIpCisgICAgICAgIHZhbCA9IGNvbmZpZy5jYWNoZS5nZXQoa2V5
LCBkdW1teSkKKyAgICAgICAgaWYgdmFsIGlzIGR1bW15OgorICAgICAgICAgICAgdHcubGluZSgi
JXMgY29udGFpbnMgdW5yZWFkYWJsZSBjb250ZW50LCAiCisgICAgICAgICAgICAgICAgICAgICJ3
aWxsIGJlIGlnbm9yZWQiICUga2V5KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdHcubGlu
ZSgiJXMgY29udGFpbnM6IiAlIGtleSkKKyAgICAgICAgICAgIHN0cmVhbSA9IHB5LmlvLlRleHRJ
TygpCisgICAgICAgICAgICBwcHJpbnQodmFsLCBzdHJlYW09c3RyZWFtKQorICAgICAgICAgICAg
Zm9yIGxpbmUgaW4gc3RyZWFtLmdldHZhbHVlKCkuc3BsaXRsaW5lcygpOgorICAgICAgICAgICAg
ICAgIHR3LmxpbmUoIiAgIiArIGxpbmUpCisKKyAgICBkZGlyID0gYmFzZWRpci5qb2luKCJkIikK
KyAgICBpZiBkZGlyLmlzZGlyKCkgYW5kIGRkaXIubGlzdGRpcigpOgorICAgICAgICB0dy5zZXAo
Ii0iLCAiY2FjaGUgZGlyZWN0b3JpZXMiKQorICAgICAgICBmb3IgcCBpbiBzb3J0ZWQoYmFzZWRp
ci5qb2luKCJkIikudmlzaXQoKSk6CisgICAgICAgICAgICAjIGlmIHAuY2hlY2soZGlyPTEpOgor
ICAgICAgICAgICAgIyAgICBwcmludCgiJXMvIiAlIHAucmVsdG8oYmFzZWRpcikpCisgICAgICAg
ICAgICBpZiBwLmlzZmlsZSgpOgorICAgICAgICAgICAgICAgIGtleSA9IHAucmVsdG8oYmFzZWRp
cikKKyAgICAgICAgICAgICAgICB0dy5saW5lKCIlcyBpcyBhIGZpbGUgb2YgbGVuZ3RoICVkIiAl
ICgKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleSwgcC5zaXplKCkpKQorICAgIHJldHVybiAw
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2NhcHR1cmUucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9fcHl0ZXN0L2NhcHR1cmUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjJlYmUzOGM4YzA5MDI4NmI3N2M3Mzli
MzJiNjIwMzAyOTRjNzUyNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qv
Y2FwdHVyZS5weQpAQCAtMCwwICsxLDY4MyBAQAorIiIiCitwZXItdGVzdCBzdGRvdXQvc3RkZXJy
IGNhcHR1cmluZyBtZWNoYW5pc20uCisKKyIiIgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNv
bHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQgY29sbGVjdGlv
bnMKK2ltcG9ydCBjb250ZXh0bGliCitpbXBvcnQgc3lzCitpbXBvcnQgb3MKK2ltcG9ydCBpbwor
ZnJvbSBpbyBpbXBvcnQgVW5zdXBwb3J0ZWRPcGVyYXRpb24KK2Zyb20gdGVtcGZpbGUgaW1wb3J0
IFRlbXBvcmFyeUZpbGUKKworaW1wb3J0IHNpeAoraW1wb3J0IHB5dGVzdAorZnJvbSBfcHl0ZXN0
LmNvbXBhdCBpbXBvcnQgQ2FwdHVyZUlPCisKKworcGF0Y2hzeXNkaWN0ID0gezA6ICdzdGRpbics
IDE6ICdzdGRvdXQnLCAyOiAnc3RkZXJyJ30KKworCitkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJz
ZXIpOgorICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJnZW5lcmFsIikKKyAgICBncm91cC5f
YWRkb3B0aW9uKAorICAgICAgICAnLS1jYXB0dXJlJywgYWN0aW9uPSJzdG9yZSIsCisgICAgICAg
IGRlZmF1bHQ9ImZkIiBpZiBoYXNhdHRyKG9zLCAiZHVwIikgZWxzZSAic3lzIiwKKyAgICAgICAg
bWV0YXZhcj0ibWV0aG9kIiwgY2hvaWNlcz1bJ2ZkJywgJ3N5cycsICdubyddLAorICAgICAgICBo
ZWxwPSJwZXItdGVzdCBjYXB0dXJpbmcgbWV0aG9kOiBvbmUgb2YgZmR8c3lzfG5vLiIpCisgICAg
Z3JvdXAuX2FkZG9wdGlvbigKKyAgICAgICAgJy1zJywgYWN0aW9uPSJzdG9yZV9jb25zdCIsIGNv
bnN0PSJubyIsIGRlc3Q9ImNhcHR1cmUiLAorICAgICAgICBoZWxwPSJzaG9ydGN1dCBmb3IgLS1j
YXB0dXJlPW5vLiIpCisKKworQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQorZGVm
IHB5dGVzdF9sb2FkX2luaXRpYWxfY29uZnRlc3RzKGVhcmx5X2NvbmZpZywgcGFyc2VyLCBhcmdz
KToKKyAgICBucyA9IGVhcmx5X2NvbmZpZy5rbm93bl9hcmdzX25hbWVzcGFjZQorICAgIGlmIG5z
LmNhcHR1cmUgPT0gImZkIjoKKyAgICAgICAgX3B5MzZfd2luZG93c2NvbnNvbGVpb193b3JrYXJv
dW5kKHN5cy5zdGRvdXQpCisgICAgX2NvbG9yYW1hX3dvcmthcm91bmQoKQorICAgIF9yZWFkbGlu
ZV93b3JrYXJvdW5kKCkKKyAgICBwbHVnaW5tYW5hZ2VyID0gZWFybHlfY29uZmlnLnBsdWdpbm1h
bmFnZXIKKyAgICBjYXBtYW4gPSBDYXB0dXJlTWFuYWdlcihucy5jYXB0dXJlKQorICAgIHBsdWdp
bm1hbmFnZXIucmVnaXN0ZXIoY2FwbWFuLCAiY2FwdHVyZW1hbmFnZXIiKQorCisgICAgIyBtYWtl
IHN1cmUgdGhhdCBjYXB0dXJlbWFuYWdlciBpcyBwcm9wZXJseSByZXNldCBhdCBmaW5hbCBzaHV0
ZG93bgorICAgIGVhcmx5X2NvbmZpZy5hZGRfY2xlYW51cChjYXBtYW4uc3RvcF9nbG9iYWxfY2Fw
dHVyaW5nKQorCisgICAgIyBtYWtlIHN1cmUgbG9nZ2luZyBkb2VzIG5vdCByYWlzZSBleGNlcHRp
b25zIGF0IHRoZSBlbmQKKyAgICBkZWYgc2lsZW5jZV9sb2dnaW5nX2F0X3NodXRkb3duKCk6Cisg
ICAgICAgIGlmICJsb2dnaW5nIiBpbiBzeXMubW9kdWxlczoKKyAgICAgICAgICAgIHN5cy5tb2R1
bGVzWyJsb2dnaW5nIl0ucmFpc2VFeGNlcHRpb25zID0gRmFsc2UKKyAgICBlYXJseV9jb25maWcu
YWRkX2NsZWFudXAoc2lsZW5jZV9sb2dnaW5nX2F0X3NodXRkb3duKQorCisgICAgIyBmaW5hbGx5
IHRyaWdnZXIgY29uZnRlc3QgbG9hZGluZyBidXQgd2hpbGUgY2FwdHVyaW5nIChpc3N1ZTkzKQor
ICAgIGNhcG1hbi5zdGFydF9nbG9iYWxfY2FwdHVyaW5nKCkKKyAgICBvdXRjb21lID0geWllbGQK
KyAgICBvdXQsIGVyciA9IGNhcG1hbi5zdXNwZW5kX2dsb2JhbF9jYXB0dXJlKCkKKyAgICBpZiBv
dXRjb21lLmV4Y2luZm8gaXMgbm90IE5vbmU6CisgICAgICAgIHN5cy5zdGRvdXQud3JpdGUob3V0
KQorICAgICAgICBzeXMuc3RkZXJyLndyaXRlKGVycikKKworCitjbGFzcyBDYXB0dXJlTWFuYWdl
cjoKKyAgICAiIiIKKyAgICBDYXB0dXJlIHBsdWdpbiwgbWFuYWdlcyB0aGF0IHRoZSBhcHByb3By
aWF0ZSBjYXB0dXJlIG1ldGhvZCBpcyBlbmFibGVkL2Rpc2FibGVkIGR1cmluZyBjb2xsZWN0aW9u
IGFuZCBlYWNoCisgICAgdGVzdCBwaGFzZSAoc2V0dXAsIGNhbGwsIHRlYXJkb3duKS4gQWZ0ZXIg
ZWFjaCBvZiB0aG9zZSBwb2ludHMsIHRoZSBjYXB0dXJlZCBvdXRwdXQgaXMgb2J0YWluZWQgYW5k
CisgICAgYXR0YWNoZWQgdG8gdGhlIGNvbGxlY3Rpb24vcnVudGVzdCByZXBvcnQuCisKKyAgICBU
aGVyZSBhcmUgdHdvIGxldmVscyBvZiBjYXB0dXJlOgorICAgICogZ2xvYmFsOiB3aGljaCBpcyBl
bmFibGVkIGJ5IGRlZmF1bHQgYW5kIGNhbiBiZSBzdXBwcmVzc2VkIGJ5IHRoZSBgYC1zYGAgb3B0
aW9uLiBUaGlzIGlzIGFsd2F5cyBlbmFibGVkL2Rpc2FibGVkCisgICAgICBkdXJpbmcgY29sbGVj
dGlvbiBhbmQgZWFjaCB0ZXN0IHBoYXNlLgorICAgICogZml4dHVyZTogd2hlbiBhIHRlc3QgZnVu
Y3Rpb24gb3Igb25lIG9mIGl0cyBmaXh0dXJlIGRlcGVuZCBvbiB0aGUgYGBjYXBzeXNgYCBvciBg
YGNhcGZkYGAgZml4dHVyZXMuIEluIHRoaXMKKyAgICAgIGNhc2Ugc3BlY2lhbCBoYW5kbGluZyBp
cyBuZWVkZWQgdG8gZW5zdXJlIHRoZSBmaXh0dXJlcyB0YWtlIHByZWNlZGVuY2Ugb3ZlciB0aGUg
Z2xvYmFsIGNhcHR1cmUuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWV0aG9k
KToKKyAgICAgICAgc2VsZi5fbWV0aG9kID0gbWV0aG9kCisgICAgICAgIHNlbGYuX2dsb2JhbF9j
YXB0dXJpbmcgPSBOb25lCisKKyAgICBkZWYgX2dldGNhcHR1cmUoc2VsZiwgbWV0aG9kKToKKyAg
ICAgICAgaWYgbWV0aG9kID09ICJmZCI6CisgICAgICAgICAgICByZXR1cm4gTXVsdGlDYXB0dXJl
KG91dD1UcnVlLCBlcnI9VHJ1ZSwgQ2FwdHVyZT1GRENhcHR1cmUpCisgICAgICAgIGVsaWYgbWV0
aG9kID09ICJzeXMiOgorICAgICAgICAgICAgcmV0dXJuIE11bHRpQ2FwdHVyZShvdXQ9VHJ1ZSwg
ZXJyPVRydWUsIENhcHR1cmU9U3lzQ2FwdHVyZSkKKyAgICAgICAgZWxpZiBtZXRob2QgPT0gIm5v
IjoKKyAgICAgICAgICAgIHJldHVybiBNdWx0aUNhcHR1cmUob3V0PUZhbHNlLCBlcnI9RmFsc2Us
IGluXz1GYWxzZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
InVua25vd24gY2FwdHVyaW5nIG1ldGhvZDogJXIiICUgbWV0aG9kKQorCisgICAgZGVmIHN0YXJ0
X2dsb2JhbF9jYXB0dXJpbmcoc2VsZik6CisgICAgICAgIGFzc2VydCBzZWxmLl9nbG9iYWxfY2Fw
dHVyaW5nIGlzIE5vbmUKKyAgICAgICAgc2VsZi5fZ2xvYmFsX2NhcHR1cmluZyA9IHNlbGYuX2dl
dGNhcHR1cmUoc2VsZi5fbWV0aG9kKQorICAgICAgICBzZWxmLl9nbG9iYWxfY2FwdHVyaW5nLnN0
YXJ0X2NhcHR1cmluZygpCisKKyAgICBkZWYgc3RvcF9nbG9iYWxfY2FwdHVyaW5nKHNlbGYpOgor
ICAgICAgICBpZiBzZWxmLl9nbG9iYWxfY2FwdHVyaW5nIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgc2VsZi5fZ2xvYmFsX2NhcHR1cmluZy5wb3Bfb3V0ZXJyX3RvX29yaWcoKQorICAgICAgICAg
ICAgc2VsZi5fZ2xvYmFsX2NhcHR1cmluZy5zdG9wX2NhcHR1cmluZygpCisgICAgICAgICAgICBz
ZWxmLl9nbG9iYWxfY2FwdHVyaW5nID0gTm9uZQorCisgICAgZGVmIHJlc3VtZV9nbG9iYWxfY2Fw
dHVyZShzZWxmKToKKyAgICAgICAgc2VsZi5fZ2xvYmFsX2NhcHR1cmluZy5yZXN1bWVfY2FwdHVy
aW5nKCkKKworICAgIGRlZiBzdXNwZW5kX2dsb2JhbF9jYXB0dXJlKHNlbGYsIGl0ZW09Tm9uZSwg
aW5fPUZhbHNlKToKKyAgICAgICAgaWYgaXRlbSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNl
bGYuZGVhY3RpdmF0ZV9maXh0dXJlKGl0ZW0pCisgICAgICAgIGNhcCA9IGdldGF0dHIoc2VsZiwg
Il9nbG9iYWxfY2FwdHVyaW5nIiwgTm9uZSkKKyAgICAgICAgaWYgY2FwIGlzIG5vdCBOb25lOgor
ICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG91dGVyciA9IGNhcC5yZWFkb3V0ZXJy
KCkKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgY2FwLnN1c3BlbmRfY2Fw
dHVyaW5nKGluXz1pbl8pCisgICAgICAgICAgICByZXR1cm4gb3V0ZXJyCisKKyAgICBkZWYgYWN0
aXZhdGVfZml4dHVyZShzZWxmLCBpdGVtKToKKyAgICAgICAgIiIiSWYgdGhlIGN1cnJlbnQgaXRl
bSBpcyB1c2luZyBgYGNhcHN5c2BgIG9yIGBgY2FwZmRgYCwgYWN0aXZhdGUgdGhlbSBzbyB0aGV5
IHRha2UgcHJlY2VkZW5jZSBvdmVyCisgICAgICAgIHRoZSBnbG9iYWwgY2FwdHVyZS4KKyAgICAg
ICAgIiIiCisgICAgICAgIGZpeHR1cmUgPSBnZXRhdHRyKGl0ZW0sICJfY2FwdHVyZV9maXh0dXJl
IiwgTm9uZSkKKyAgICAgICAgaWYgZml4dHVyZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGZp
eHR1cmUuX3N0YXJ0KCkKKworICAgIGRlZiBkZWFjdGl2YXRlX2ZpeHR1cmUoc2VsZiwgaXRlbSk6
CisgICAgICAgICIiIkRlYWN0aXZhdGVzIHRoZSBgYGNhcHN5c2BgIG9yIGBgY2FwZmRgYCBmaXh0
dXJlIG9mIHRoaXMgaXRlbSwgaWYgYW55LiIiIgorICAgICAgICBmaXh0dXJlID0gZ2V0YXR0cihp
dGVtLCAiX2NhcHR1cmVfZml4dHVyZSIsIE5vbmUpCisgICAgICAgIGlmIGZpeHR1cmUgaXMgbm90
IE5vbmU6CisgICAgICAgICAgICBmaXh0dXJlLmNsb3NlKCkKKworICAgIEBweXRlc3QuaG9va2lt
cGwoaG9va3dyYXBwZXI9VHJ1ZSkKKyAgICBkZWYgcHl0ZXN0X21ha2VfY29sbGVjdF9yZXBvcnQo
c2VsZiwgY29sbGVjdG9yKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShjb2xsZWN0b3IsIHB5dGVz
dC5GaWxlKToKKyAgICAgICAgICAgIHNlbGYucmVzdW1lX2dsb2JhbF9jYXB0dXJlKCkKKyAgICAg
ICAgICAgIG91dGNvbWUgPSB5aWVsZAorICAgICAgICAgICAgb3V0LCBlcnIgPSBzZWxmLnN1c3Bl
bmRfZ2xvYmFsX2NhcHR1cmUoKQorICAgICAgICAgICAgcmVwID0gb3V0Y29tZS5nZXRfcmVzdWx0
KCkKKyAgICAgICAgICAgIGlmIG91dDoKKyAgICAgICAgICAgICAgICByZXAuc2VjdGlvbnMuYXBw
ZW5kKCgiQ2FwdHVyZWQgc3Rkb3V0Iiwgb3V0KSkKKyAgICAgICAgICAgIGlmIGVycjoKKyAgICAg
ICAgICAgICAgICByZXAuc2VjdGlvbnMuYXBwZW5kKCgiQ2FwdHVyZWQgc3RkZXJyIiwgZXJyKSkK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHlpZWxkCisKKyAgICBAcHl0ZXN0Lmhvb2tpbXBs
KGhvb2t3cmFwcGVyPVRydWUpCisgICAgZGVmIHB5dGVzdF9ydW50ZXN0X3NldHVwKHNlbGYsIGl0
ZW0pOgorICAgICAgICBzZWxmLnJlc3VtZV9nbG9iYWxfY2FwdHVyZSgpCisgICAgICAgICMgbm8g
bmVlZCB0byBhY3RpdmF0ZSBhIGNhcHR1cmUgZml4dHVyZSBiZWNhdXNlIHRoZXkgYWN0aXZhdGUg
dGhlbXNlbHZlcyBkdXJpbmcgY3JlYXRpb247IHRoaXMKKyAgICAgICAgIyBvbmx5IG1ha2VzIHNl
bnNlIHdoZW4gYSBmaXh0dXJlIHVzZXMgYSBjYXB0dXJlIGZpeHR1cmUsIG90aGVyd2lzZSB0aGUg
Y2FwdHVyZSBmaXh0dXJlIHdpbGwKKyAgICAgICAgIyBiZSBhY3RpdmF0ZWQgZHVyaW5nIHB5dGVz
dF9ydW50ZXN0X2NhbGwKKyAgICAgICAgeWllbGQKKyAgICAgICAgc2VsZi5zdXNwZW5kX2NhcHR1
cmVfaXRlbShpdGVtLCAic2V0dXAiKQorCisgICAgQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBl
cj1UcnVlKQorICAgIGRlZiBweXRlc3RfcnVudGVzdF9jYWxsKHNlbGYsIGl0ZW0pOgorICAgICAg
ICBzZWxmLnJlc3VtZV9nbG9iYWxfY2FwdHVyZSgpCisgICAgICAgICMgaXQgaXMgaW1wb3J0YW50
IHRvIGFjdGl2YXRlIHRoaXMgZml4dHVyZSBkdXJpbmcgdGhlIGNhbGwgcGhhc2Ugc28gaXQgb3Zl
cndyaXRlcyB0aGUgImdsb2JhbCIKKyAgICAgICAgIyBjYXB0dXJlCisgICAgICAgIHNlbGYuYWN0
aXZhdGVfZml4dHVyZShpdGVtKQorICAgICAgICB5aWVsZAorICAgICAgICBzZWxmLnN1c3BlbmRf
Y2FwdHVyZV9pdGVtKGl0ZW0sICJjYWxsIikKKworICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dy
YXBwZXI9VHJ1ZSkKKyAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfdGVhcmRvd24oc2VsZiwgaXRlbSk6
CisgICAgICAgIHNlbGYucmVzdW1lX2dsb2JhbF9jYXB0dXJlKCkKKyAgICAgICAgc2VsZi5hY3Rp
dmF0ZV9maXh0dXJlKGl0ZW0pCisgICAgICAgIHlpZWxkCisgICAgICAgIHNlbGYuc3VzcGVuZF9j
YXB0dXJlX2l0ZW0oaXRlbSwgInRlYXJkb3duIikKKworICAgIEBweXRlc3QuaG9va2ltcGwodHJ5
Zmlyc3Q9VHJ1ZSkKKyAgICBkZWYgcHl0ZXN0X2tleWJvYXJkX2ludGVycnVwdChzZWxmLCBleGNp
bmZvKToKKyAgICAgICAgc2VsZi5zdG9wX2dsb2JhbF9jYXB0dXJpbmcoKQorCisgICAgQHB5dGVz
dC5ob29raW1wbCh0cnlmaXJzdD1UcnVlKQorICAgIGRlZiBweXRlc3RfaW50ZXJuYWxlcnJvcihz
ZWxmLCBleGNpbmZvKToKKyAgICAgICAgc2VsZi5zdG9wX2dsb2JhbF9jYXB0dXJpbmcoKQorCisg
ICAgZGVmIHN1c3BlbmRfY2FwdHVyZV9pdGVtKHNlbGYsIGl0ZW0sIHdoZW4sIGluXz1GYWxzZSk6
CisgICAgICAgIG91dCwgZXJyID0gc2VsZi5zdXNwZW5kX2dsb2JhbF9jYXB0dXJlKGl0ZW0sIGlu
Xz1pbl8pCisgICAgICAgIGl0ZW0uYWRkX3JlcG9ydF9zZWN0aW9uKHdoZW4sICJzdGRvdXQiLCBv
dXQpCisgICAgICAgIGl0ZW0uYWRkX3JlcG9ydF9zZWN0aW9uKHdoZW4sICJzdGRlcnIiLCBlcnIp
CisKKworY2FwdHVyZV9maXh0dXJlcyA9IHsnY2FwZmQnLCAnY2FwZmRiaW5hcnknLCAnY2Fwc3lz
JywgJ2NhcHN5c2JpbmFyeSd9CisKKworZGVmIF9lbnN1cmVfb25seV9vbmVfY2FwdHVyZV9maXh0
dXJlKHJlcXVlc3QsIG5hbWUpOgorICAgIGZpeHR1cmVzID0gc2V0KHJlcXVlc3QuZml4dHVyZW5h
bWVzKSAmIGNhcHR1cmVfZml4dHVyZXMgLSBzZXQoKG5hbWUsKSkKKyAgICBpZiBmaXh0dXJlczoK
KyAgICAgICAgZml4dHVyZXMgPSBzb3J0ZWQoZml4dHVyZXMpCisgICAgICAgIGZpeHR1cmVzID0g
Zml4dHVyZXNbMF0gaWYgbGVuKGZpeHR1cmVzKSA9PSAxIGVsc2UgZml4dHVyZXMKKyAgICAgICAg
cmFpc2UgcmVxdWVzdC5yYWlzZWVycm9yKAorICAgICAgICAgICAgImNhbm5vdCB1c2UgezB9IGFu
ZCB7MX0gYXQgdGhlIHNhbWUgdGltZSIuZm9ybWF0KAorICAgICAgICAgICAgICAgIGZpeHR1cmVz
LCBuYW1lLAorICAgICAgICAgICAgKSwKKyAgICAgICAgKQorCisKK0BweXRlc3QuZml4dHVyZQor
ZGVmIGNhcHN5cyhyZXF1ZXN0KToKKyAgICAiIiJFbmFibGUgY2FwdHVyaW5nIG9mIHdyaXRlcyB0
byBzeXMuc3Rkb3V0L3N5cy5zdGRlcnIgYW5kIG1ha2UKKyAgICBjYXB0dXJlZCBvdXRwdXQgYXZh
aWxhYmxlIHZpYSBgYGNhcHN5cy5yZWFkb3V0ZXJyKClgYCBtZXRob2QgY2FsbHMKKyAgICB3aGlj
aCByZXR1cm4gYSBgYChvdXQsIGVycilgYCB0dXBsZS4gIGBgb3V0YGAgYW5kIGBgZXJyYGAgd2ls
bCBiZSBgYHRleHRgYAorICAgIG9iamVjdHMuCisgICAgIiIiCisgICAgX2Vuc3VyZV9vbmx5X29u
ZV9jYXB0dXJlX2ZpeHR1cmUocmVxdWVzdCwgJ2NhcHN5cycpCisgICAgd2l0aCBfaW5zdGFsbF9j
YXB0dXJlX2ZpeHR1cmVfb25faXRlbShyZXF1ZXN0LCBTeXNDYXB0dXJlKSBhcyBmaXh0dXJlOgor
ICAgICAgICB5aWVsZCBmaXh0dXJlCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY2Fwc3lzYmlu
YXJ5KHJlcXVlc3QpOgorICAgICIiIkVuYWJsZSBjYXB0dXJpbmcgb2Ygd3JpdGVzIHRvIHN5cy5z
dGRvdXQvc3lzLnN0ZGVyciBhbmQgbWFrZQorICAgIGNhcHR1cmVkIG91dHB1dCBhdmFpbGFibGUg
dmlhIGBgY2Fwc3lzLnJlYWRvdXRlcnIoKWBgIG1ldGhvZCBjYWxscworICAgIHdoaWNoIHJldHVy
biBhIGBgKG91dCwgZXJyKWBgIHR1cGxlLiAgYGBvdXRgYCBhbmQgYGBlcnJgYCB3aWxsIGJlIGBg
Ynl0ZXNgYAorICAgIG9iamVjdHMuCisgICAgIiIiCisgICAgX2Vuc3VyZV9vbmx5X29uZV9jYXB0
dXJlX2ZpeHR1cmUocmVxdWVzdCwgJ2NhcHN5c2JpbmFyeScpCisgICAgIyBDdXJyZW50bHksIHRo
ZSBpbXBsZW1lbnRhdGlvbiB1c2VzIHRoZSBweXRob24zIHNwZWNpZmljIGAuYnVmZmVyYAorICAg
ICMgcHJvcGVydHkgb2YgQ2FwdHVyZUlPLgorICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywp
OgorICAgICAgICByYWlzZSByZXF1ZXN0LnJhaXNlZXJyb3IoJ2NhcHN5c2JpbmFyeSBpcyBvbmx5
IHN1cHBvcnRlZCBvbiBweXRob24gMycpCisgICAgd2l0aCBfaW5zdGFsbF9jYXB0dXJlX2ZpeHR1
cmVfb25faXRlbShyZXF1ZXN0LCBTeXNDYXB0dXJlQmluYXJ5KSBhcyBmaXh0dXJlOgorICAgICAg
ICB5aWVsZCBmaXh0dXJlCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgY2FwZmQocmVxdWVzdCk6
CisgICAgIiIiRW5hYmxlIGNhcHR1cmluZyBvZiB3cml0ZXMgdG8gZmlsZSBkZXNjcmlwdG9ycyAx
IGFuZCAyIGFuZCBtYWtlCisgICAgY2FwdHVyZWQgb3V0cHV0IGF2YWlsYWJsZSB2aWEgYGBjYXBm
ZC5yZWFkb3V0ZXJyKClgYCBtZXRob2QgY2FsbHMKKyAgICB3aGljaCByZXR1cm4gYSBgYChvdXQs
IGVycilgYCB0dXBsZS4gIGBgb3V0YGAgYW5kIGBgZXJyYGAgd2lsbCBiZSBgYHRleHRgYAorICAg
IG9iamVjdHMuCisgICAgIiIiCisgICAgX2Vuc3VyZV9vbmx5X29uZV9jYXB0dXJlX2ZpeHR1cmUo
cmVxdWVzdCwgJ2NhcGZkJykKKyAgICBpZiBub3QgaGFzYXR0cihvcywgJ2R1cCcpOgorICAgICAg
ICBweXRlc3Quc2tpcCgiY2FwZmQgZml4dHVyZSBuZWVkcyBvcy5kdXAgZnVuY3Rpb24gd2hpY2gg
aXMgbm90IGF2YWlsYWJsZSBpbiB0aGlzIHN5c3RlbSIpCisgICAgd2l0aCBfaW5zdGFsbF9jYXB0
dXJlX2ZpeHR1cmVfb25faXRlbShyZXF1ZXN0LCBGRENhcHR1cmUpIGFzIGZpeHR1cmU6CisgICAg
ICAgIHlpZWxkIGZpeHR1cmUKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBjYXBmZGJpbmFyeShy
ZXF1ZXN0KToKKyAgICAiIiJFbmFibGUgY2FwdHVyaW5nIG9mIHdyaXRlIHRvIGZpbGUgZGVzY3Jp
cHRvcnMgMSBhbmQgMiBhbmQgbWFrZQorICAgIGNhcHR1cmVkIG91dHB1dCBhdmFpbGFibGUgdmlh
IGBgY2FwZmRiaW5hcnkucmVhZG91dGVycmBgIG1ldGhvZCBjYWxscworICAgIHdoaWNoIHJldHVy
biBhIGBgKG91dCwgZXJyKWBgIHR1cGxlLiAgYGBvdXRgYCBhbmQgYGBlcnJgYCB3aWxsIGJlCisg
ICAgYGBieXRlc2BgIG9iamVjdHMuCisgICAgIiIiCisgICAgX2Vuc3VyZV9vbmx5X29uZV9jYXB0
dXJlX2ZpeHR1cmUocmVxdWVzdCwgJ2NhcGZkYmluYXJ5JykKKyAgICBpZiBub3QgaGFzYXR0cihv
cywgJ2R1cCcpOgorICAgICAgICBweXRlc3Quc2tpcCgiY2FwZmRiaW5hcnkgZml4dHVyZSBuZWVk
cyBvcy5kdXAgZnVuY3Rpb24gd2hpY2ggaXMgbm90IGF2YWlsYWJsZSBpbiB0aGlzIHN5c3RlbSIp
CisgICAgd2l0aCBfaW5zdGFsbF9jYXB0dXJlX2ZpeHR1cmVfb25faXRlbShyZXF1ZXN0LCBGRENh
cHR1cmVCaW5hcnkpIGFzIGZpeHR1cmU6CisgICAgICAgIHlpZWxkIGZpeHR1cmUKKworCitAY29u
dGV4dGxpYi5jb250ZXh0bWFuYWdlcgorZGVmIF9pbnN0YWxsX2NhcHR1cmVfZml4dHVyZV9vbl9p
dGVtKHJlcXVlc3QsIGNhcHR1cmVfY2xhc3MpOgorICAgICIiIgorICAgIENvbnRleHQgbWFuYWdl
ciB3aGljaCBjcmVhdGVzIGEgYGBDYXB0dXJlRml4dHVyZWBgIGluc3RhbmNlIGFuZCAiaW5zdGFs
bHMiIGl0IG9uCisgICAgdGhlIGl0ZW0vbm9kZSBvZiB0aGUgZ2l2ZW4gcmVxdWVzdC4gVXNlZCBi
eSBgYGNhcHN5c2BgIGFuZCBgYGNhcGZkYGAuCisKKyAgICBUaGUgQ2FwdHVyZUZpeHR1cmUgaXMg
YWRkZWQgYXMgYXR0cmlidXRlIG9mIHRoZSBpdGVtIGJlY2F1c2UgaXQgbmVlZHMgdG8gYWNjZXNz
ZWQKKyAgICBieSBgYENhcHR1cmVNYW5hZ2VyYGAgZHVyaW5nIGl0cyBgYHB5dGVzdF9ydW50ZXN0
XypgYCBob29rcy4KKyAgICAiIiIKKyAgICByZXF1ZXN0Lm5vZGUuX2NhcHR1cmVfZml4dHVyZSA9
IGZpeHR1cmUgPSBDYXB0dXJlRml4dHVyZShjYXB0dXJlX2NsYXNzLCByZXF1ZXN0KQorICAgIGNh
cG1hbmFnZXIgPSByZXF1ZXN0LmNvbmZpZy5wbHVnaW5tYW5hZ2VyLmdldHBsdWdpbignY2FwdHVy
ZW1hbmFnZXInKQorICAgICMgbmVlZCB0byBhY3RpdmUgdGhpcyBmaXh0dXJlIHJpZ2h0IGF3YXkg
aW4gY2FzZSBpdCBpcyBiZWluZyB1c2VkIGJ5IGFub3RoZXIgZml4dHVyZSAoc2V0dXAgcGhhc2Up
CisgICAgIyBpZiB0aGlzIGZpeHR1cmUgaXMgYmVpbmcgdXNlZCBvbmx5IGJ5IGEgdGVzdCBmdW5j
dGlvbiAoY2FsbCBwaGFzZSksIHRoZW4gd2Ugd291bGRuJ3QgbmVlZCB0aGlzCisgICAgIyBhY3Rp
dmF0aW9uLCBidXQgaXQgZG9lc24ndCBodXJ0CisgICAgY2FwbWFuYWdlci5hY3RpdmF0ZV9maXh0
dXJlKHJlcXVlc3Qubm9kZSkKKyAgICB5aWVsZCBmaXh0dXJlCisgICAgZml4dHVyZS5jbG9zZSgp
CisgICAgZGVsIHJlcXVlc3Qubm9kZS5fY2FwdHVyZV9maXh0dXJlCisKKworY2xhc3MgQ2FwdHVy
ZUZpeHR1cmU6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNhcHR1cmVjbGFzcywgcmVxdWVzdCk6
CisgICAgICAgIHNlbGYuY2FwdHVyZWNsYXNzID0gY2FwdHVyZWNsYXNzCisgICAgICAgIHNlbGYu
cmVxdWVzdCA9IHJlcXVlc3QKKworICAgIGRlZiBfc3RhcnQoc2VsZik6CisgICAgICAgIHNlbGYu
X2NhcHR1cmUgPSBNdWx0aUNhcHR1cmUob3V0PVRydWUsIGVycj1UcnVlLCBpbl89RmFsc2UsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FwdHVyZT1zZWxmLmNhcHR1cmVj
bGFzcykKKyAgICAgICAgc2VsZi5fY2FwdHVyZS5zdGFydF9jYXB0dXJpbmcoKQorCisgICAgZGVm
IGNsb3NlKHNlbGYpOgorICAgICAgICBjYXAgPSBzZWxmLl9fZGljdF9fLnBvcCgiX2NhcHR1cmUi
LCBOb25lKQorICAgICAgICBpZiBjYXAgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLl9v
dXRlcnIgPSBjYXAucG9wX291dGVycl90b19vcmlnKCkKKyAgICAgICAgICAgIGNhcC5zdG9wX2Nh
cHR1cmluZygpCisKKyAgICBkZWYgcmVhZG91dGVycihzZWxmKToKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgcmV0dXJuIHNlbGYuX2NhcHR1cmUucmVhZG91dGVycigpCisgICAgICAgIGV4Y2Vw
dCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9vdXRlcnIKKworICAg
IEBjb250ZXh0bGliLmNvbnRleHRtYW5hZ2VyCisgICAgZGVmIGRpc2FibGVkKHNlbGYpOgorICAg
ICAgICBzZWxmLl9jYXB0dXJlLnN1c3BlbmRfY2FwdHVyaW5nKCkKKyAgICAgICAgY2FwbWFuYWdl
ciA9IHNlbGYucmVxdWVzdC5jb25maWcucGx1Z2lubWFuYWdlci5nZXRwbHVnaW4oJ2NhcHR1cmVt
YW5hZ2VyJykKKyAgICAgICAgY2FwbWFuYWdlci5zdXNwZW5kX2dsb2JhbF9jYXB0dXJlKGl0ZW09
Tm9uZSwgaW5fPUZhbHNlKQorICAgICAgICB0cnk6CisgICAgICAgICAgICB5aWVsZAorICAgICAg
ICBmaW5hbGx5OgorICAgICAgICAgICAgY2FwbWFuYWdlci5yZXN1bWVfZ2xvYmFsX2NhcHR1cmUo
KQorICAgICAgICAgICAgc2VsZi5fY2FwdHVyZS5yZXN1bWVfY2FwdHVyaW5nKCkKKworCitkZWYg
c2FmZV90ZXh0X2R1cGZpbGUoZiwgbW9kZSwgZGVmYXVsdF9lbmNvZGluZz0iVVRGOCIpOgorICAg
ICIiIiByZXR1cm4gYSBvcGVuIHRleHQgZmlsZSBvYmplY3QgdGhhdCdzIGEgZHVwbGljYXRlIG9m
IGYgb24gdGhlCisgICAgICAgIEZELWxldmVsIGlmIHBvc3NpYmxlLgorICAgICIiIgorICAgIGVu
Y29kaW5nID0gZ2V0YXR0cihmLCAiZW5jb2RpbmciLCBOb25lKQorICAgIHRyeToKKyAgICAgICAg
ZmQgPSBmLmZpbGVubygpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgaWYgImIiIG5v
dCBpbiBnZXRhdHRyKGYsICJtb2RlIiwgIiIpIGFuZCBoYXNhdHRyKGYsICJlbmNvZGluZyIpOgor
ICAgICAgICAgICAgIyB3ZSBzZWVtIHRvIGhhdmUgYSB0ZXh0IHN0cmVhbSwgbGV0J3MganVzdCB1
c2UgaXQKKyAgICAgICAgICAgIHJldHVybiBmCisgICAgZWxzZToKKyAgICAgICAgbmV3ZmQgPSBv
cy5kdXAoZmQpCisgICAgICAgIGlmICJiIiBub3QgaW4gbW9kZToKKyAgICAgICAgICAgIG1vZGUg
Kz0gImIiCisgICAgICAgIGYgPSBvcy5mZG9wZW4obmV3ZmQsIG1vZGUsIDApICAjIG5vIGJ1ZmZl
cmluZworICAgIHJldHVybiBFbmNvZGVkRmlsZShmLCBlbmNvZGluZyBvciBkZWZhdWx0X2VuY29k
aW5nKQorCisKK2NsYXNzIEVuY29kZWRGaWxlKG9iamVjdCk6CisgICAgZXJyb3JzID0gInN0cmlj
dCIgICMgcG9zc2libHkgbmVlZGVkIGJ5IHB5MyBjb2RlIChpc3N1ZTU1NSkKKworICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBidWZmZXIsIGVuY29kaW5nKToKKyAgICAgICAgc2VsZi5idWZmZXIgPSBi
dWZmZXIKKyAgICAgICAgc2VsZi5lbmNvZGluZyA9IGVuY29kaW5nCisKKyAgICBkZWYgd3JpdGUo
c2VsZiwgb2JqKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShvYmosIHNpeC50ZXh0X3R5cGUpOgor
ICAgICAgICAgICAgb2JqID0gb2JqLmVuY29kZShzZWxmLmVuY29kaW5nLCAicmVwbGFjZSIpCisg
ICAgICAgIHNlbGYuYnVmZmVyLndyaXRlKG9iaikKKworICAgIGRlZiB3cml0ZWxpbmVzKHNlbGYs
IGxpbmVsaXN0KToKKyAgICAgICAgZGF0YSA9ICcnLmpvaW4obGluZWxpc3QpCisgICAgICAgIHNl
bGYud3JpdGUoZGF0YSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBuYW1lKHNlbGYpOgorICAg
ICAgICAiIiJFbnN1cmUgdGhhdCBmaWxlLm5hbWUgaXMgYSBzdHJpbmcuIiIiCisgICAgICAgIHJl
dHVybiByZXByKHNlbGYuYnVmZmVyKQorCisgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIG5hbWUp
OgorICAgICAgICByZXR1cm4gZ2V0YXR0cihvYmplY3QuX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCAi
YnVmZmVyIiksIG5hbWUpCisKKworQ2FwdHVyZVJlc3VsdCA9IGNvbGxlY3Rpb25zLm5hbWVkdHVw
bGUoIkNhcHR1cmVSZXN1bHQiLCBbIm91dCIsICJlcnIiXSkKKworCitjbGFzcyBNdWx0aUNhcHR1
cmUob2JqZWN0KToKKyAgICBvdXQgPSBlcnIgPSBpbl8gPSBOb25lCisKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgb3V0PVRydWUsIGVycj1UcnVlLCBpbl89VHJ1ZSwgQ2FwdHVyZT1Ob25lKToKKyAg
ICAgICAgaWYgaW5fOgorICAgICAgICAgICAgc2VsZi5pbl8gPSBDYXB0dXJlKDApCisgICAgICAg
IGlmIG91dDoKKyAgICAgICAgICAgIHNlbGYub3V0ID0gQ2FwdHVyZSgxKQorICAgICAgICBpZiBl
cnI6CisgICAgICAgICAgICBzZWxmLmVyciA9IENhcHR1cmUoMikKKworICAgIGRlZiBzdGFydF9j
YXB0dXJpbmcoc2VsZik6CisgICAgICAgIGlmIHNlbGYuaW5fOgorICAgICAgICAgICAgc2VsZi5p
bl8uc3RhcnQoKQorICAgICAgICBpZiBzZWxmLm91dDoKKyAgICAgICAgICAgIHNlbGYub3V0LnN0
YXJ0KCkKKyAgICAgICAgaWYgc2VsZi5lcnI6CisgICAgICAgICAgICBzZWxmLmVyci5zdGFydCgp
CisKKyAgICBkZWYgcG9wX291dGVycl90b19vcmlnKHNlbGYpOgorICAgICAgICAiIiIgcG9wIGN1
cnJlbnQgc25hcHNob3Qgb3V0L2VyciBjYXB0dXJlIGFuZCBmbHVzaCB0byBvcmlnIHN0cmVhbXMu
ICIiIgorICAgICAgICBvdXQsIGVyciA9IHNlbGYucmVhZG91dGVycigpCisgICAgICAgIGlmIG91
dDoKKyAgICAgICAgICAgIHNlbGYub3V0LndyaXRlb3JnKG91dCkKKyAgICAgICAgaWYgZXJyOgor
ICAgICAgICAgICAgc2VsZi5lcnIud3JpdGVvcmcoZXJyKQorICAgICAgICByZXR1cm4gb3V0LCBl
cnIKKworICAgIGRlZiBzdXNwZW5kX2NhcHR1cmluZyhzZWxmLCBpbl89RmFsc2UpOgorICAgICAg
ICBpZiBzZWxmLm91dDoKKyAgICAgICAgICAgIHNlbGYub3V0LnN1c3BlbmQoKQorICAgICAgICBp
ZiBzZWxmLmVycjoKKyAgICAgICAgICAgIHNlbGYuZXJyLnN1c3BlbmQoKQorICAgICAgICBpZiBp
bl8gYW5kIHNlbGYuaW5fOgorICAgICAgICAgICAgc2VsZi5pbl8uc3VzcGVuZCgpCisgICAgICAg
ICAgICBzZWxmLl9pbl9zdXNwZW5kZWQgPSBUcnVlCisKKyAgICBkZWYgcmVzdW1lX2NhcHR1cmlu
ZyhzZWxmKToKKyAgICAgICAgaWYgc2VsZi5vdXQ6CisgICAgICAgICAgICBzZWxmLm91dC5yZXN1
bWUoKQorICAgICAgICBpZiBzZWxmLmVycjoKKyAgICAgICAgICAgIHNlbGYuZXJyLnJlc3VtZSgp
CisgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgIl9pbl9zdXNwZW5kZWQiKToKKyAgICAgICAgICAg
IHNlbGYuaW5fLnJlc3VtZSgpCisgICAgICAgICAgICBkZWwgc2VsZi5faW5fc3VzcGVuZGVkCisK
KyAgICBkZWYgc3RvcF9jYXB0dXJpbmcoc2VsZik6CisgICAgICAgICIiIiBzdG9wIGNhcHR1cmlu
ZyBhbmQgcmVzZXQgY2FwdHVyaW5nIHN0cmVhbXMgIiIiCisgICAgICAgIGlmIGhhc2F0dHIoc2Vs
ZiwgJ19yZXNldCcpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigid2FzIGFscmVhZHkg
c3RvcHBlZCIpCisgICAgICAgIHNlbGYuX3Jlc2V0ID0gVHJ1ZQorICAgICAgICBpZiBzZWxmLm91
dDoKKyAgICAgICAgICAgIHNlbGYub3V0LmRvbmUoKQorICAgICAgICBpZiBzZWxmLmVycjoKKyAg
ICAgICAgICAgIHNlbGYuZXJyLmRvbmUoKQorICAgICAgICBpZiBzZWxmLmluXzoKKyAgICAgICAg
ICAgIHNlbGYuaW5fLmRvbmUoKQorCisgICAgZGVmIHJlYWRvdXRlcnIoc2VsZik6CisgICAgICAg
ICIiIiByZXR1cm4gc25hcHNob3QgdW5pY29kZSB2YWx1ZSBvZiBzdGRvdXQvc3RkZXJyIGNhcHR1
cmluZ3MuICIiIgorICAgICAgICByZXR1cm4gQ2FwdHVyZVJlc3VsdChzZWxmLm91dC5zbmFwKCkg
aWYgc2VsZi5vdXQgaXMgbm90IE5vbmUgZWxzZSAiIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5lcnIuc25hcCgpIGlmIHNlbGYuZXJyIGlzIG5vdCBOb25lIGVsc2UgIiIpCisK
KworY2xhc3MgTm9DYXB0dXJlOgorICAgIF9faW5pdF9fID0gc3RhcnQgPSBkb25lID0gc3VzcGVu
ZCA9IHJlc3VtZSA9IGxhbWJkYSAqYXJnczogTm9uZQorCisKK2NsYXNzIEZEQ2FwdHVyZUJpbmFy
eToKKyAgICAiIiJDYXB0dXJlIElPIHRvL2Zyb20gYSBnaXZlbiBvcy1sZXZlbCBmaWxlZGVzY3Jp
cHRvci4KKworICAgIHNuYXAoKSBwcm9kdWNlcyBgYnl0ZXNgCisgICAgIiIiCisKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgdGFyZ2V0ZmQsIHRtcGZpbGU9Tm9uZSk6CisgICAgICAgIHNlbGYudGFy
Z2V0ZmQgPSB0YXJnZXRmZAorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLnRhcmdldGZk
X3NhdmUgPSBvcy5kdXAoc2VsZi50YXJnZXRmZCkKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6Cisg
ICAgICAgICAgICBzZWxmLnN0YXJ0ID0gbGFtYmRhOiBOb25lCisgICAgICAgICAgICBzZWxmLmRv
bmUgPSBsYW1iZGE6IE5vbmUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIHRhcmdldGZk
ID09IDA6CisgICAgICAgICAgICAgICAgYXNzZXJ0IG5vdCB0bXBmaWxlLCAiY2Fubm90IHNldCB0
bXBmaWxlIHdpdGggc3RkaW4iCisgICAgICAgICAgICAgICAgdG1wZmlsZSA9IG9wZW4ob3MuZGV2
bnVsbCwgInIiKQorICAgICAgICAgICAgICAgIHNlbGYuc3lzY2FwdHVyZSA9IFN5c0NhcHR1cmUo
dGFyZ2V0ZmQpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIHRtcGZpbGUg
aXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgZiA9IFRlbXBvcmFyeUZpbGUoKQorICAgICAg
ICAgICAgICAgICAgICB3aXRoIGY6CisgICAgICAgICAgICAgICAgICAgICAgICB0bXBmaWxlID0g
c2FmZV90ZXh0X2R1cGZpbGUoZiwgbW9kZT0id2IrIikKKyAgICAgICAgICAgICAgICBpZiB0YXJn
ZXRmZCBpbiBwYXRjaHN5c2RpY3Q6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuc3lzY2FwdHVy
ZSA9IFN5c0NhcHR1cmUodGFyZ2V0ZmQsIHRtcGZpbGUpCisgICAgICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICAgICAgc2VsZi5zeXNjYXB0dXJlID0gTm9DYXB0dXJlKCkKKyAgICAg
ICAgICAgIHNlbGYudG1wZmlsZSA9IHRtcGZpbGUKKyAgICAgICAgICAgIHNlbGYudG1wZmlsZV9m
ZCA9IHRtcGZpbGUuZmlsZW5vKCkKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAg
cmV0dXJuICI8RkRDYXB0dXJlICVzIG9sZGZkPSVzPiIgJSAoc2VsZi50YXJnZXRmZCwgc2VsZi50
YXJnZXRmZF9zYXZlKQorCisgICAgZGVmIHN0YXJ0KHNlbGYpOgorICAgICAgICAiIiIgU3RhcnQg
Y2FwdHVyaW5nIG9uIHRhcmdldGZkIHVzaW5nIG1lbW9yaXplZCB0bXBmaWxlLiAiIiIKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgb3MuZnN0YXQoc2VsZi50YXJnZXRmZF9zYXZlKQorICAgICAg
ICBleGNlcHQgKEF0dHJpYnV0ZUVycm9yLCBPU0Vycm9yKToKKyAgICAgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoInNhdmVkIGZpbGVkZXNjcmlwdG9yIG5vdCB2YWxpZCBhbnltb3JlIikKKyAgICAg
ICAgb3MuZHVwMihzZWxmLnRtcGZpbGVfZmQsIHNlbGYudGFyZ2V0ZmQpCisgICAgICAgIHNlbGYu
c3lzY2FwdHVyZS5zdGFydCgpCisKKyAgICBkZWYgc25hcChzZWxmKToKKyAgICAgICAgc2VsZi50
bXBmaWxlLnNlZWsoMCkKKyAgICAgICAgcmVzID0gc2VsZi50bXBmaWxlLnJlYWQoKQorICAgICAg
ICBzZWxmLnRtcGZpbGUuc2VlaygwKQorICAgICAgICBzZWxmLnRtcGZpbGUudHJ1bmNhdGUoKQor
ICAgICAgICByZXR1cm4gcmVzCisKKyAgICBkZWYgZG9uZShzZWxmKToKKyAgICAgICAgIiIiIHN0
b3AgY2FwdHVyaW5nLCByZXN0b3JlIHN0cmVhbXMsIHJldHVybiBvcmlnaW5hbCBjYXB0dXJlIGZp
bGUsCisgICAgICAgIHNlZWtlZCB0byBwb3NpdGlvbiB6ZXJvLiAiIiIKKyAgICAgICAgdGFyZ2V0
ZmRfc2F2ZSA9IHNlbGYuX19kaWN0X18ucG9wKCJ0YXJnZXRmZF9zYXZlIikKKyAgICAgICAgb3Mu
ZHVwMih0YXJnZXRmZF9zYXZlLCBzZWxmLnRhcmdldGZkKQorICAgICAgICBvcy5jbG9zZSh0YXJn
ZXRmZF9zYXZlKQorICAgICAgICBzZWxmLnN5c2NhcHR1cmUuZG9uZSgpCisgICAgICAgIHNlbGYu
dG1wZmlsZS5jbG9zZSgpCisKKyAgICBkZWYgc3VzcGVuZChzZWxmKToKKyAgICAgICAgc2VsZi5z
eXNjYXB0dXJlLnN1c3BlbmQoKQorICAgICAgICBvcy5kdXAyKHNlbGYudGFyZ2V0ZmRfc2F2ZSwg
c2VsZi50YXJnZXRmZCkKKworICAgIGRlZiByZXN1bWUoc2VsZik6CisgICAgICAgIHNlbGYuc3lz
Y2FwdHVyZS5yZXN1bWUoKQorICAgICAgICBvcy5kdXAyKHNlbGYudG1wZmlsZV9mZCwgc2VsZi50
YXJnZXRmZCkKKworICAgIGRlZiB3cml0ZW9yZyhzZWxmLCBkYXRhKToKKyAgICAgICAgIiIiIHdy
aXRlIHRvIG9yaWdpbmFsIGZpbGUgZGVzY3JpcHRvci4gIiIiCisgICAgICAgIGlmIGlzaW5zdGFu
Y2UoZGF0YSwgc2l4LnRleHRfdHlwZSk6CisgICAgICAgICAgICBkYXRhID0gZGF0YS5lbmNvZGUo
InV0ZjgiKSAgIyBYWFggdXNlIGVuY29kaW5nIG9mIG9yaWdpbmFsIHN0cmVhbQorICAgICAgICBv
cy53cml0ZShzZWxmLnRhcmdldGZkX3NhdmUsIGRhdGEpCisKKworY2xhc3MgRkRDYXB0dXJlKEZE
Q2FwdHVyZUJpbmFyeSk6CisgICAgIiIiQ2FwdHVyZSBJTyB0by9mcm9tIGEgZ2l2ZW4gb3MtbGV2
ZWwgZmlsZWRlc2NyaXB0b3IuCisKKyAgICBzbmFwKCkgcHJvZHVjZXMgdGV4dAorICAgICIiIgor
ICAgIGRlZiBzbmFwKHNlbGYpOgorICAgICAgICByZXMgPSBGRENhcHR1cmVCaW5hcnkuc25hcChz
ZWxmKQorICAgICAgICBlbmMgPSBnZXRhdHRyKHNlbGYudG1wZmlsZSwgImVuY29kaW5nIiwgTm9u
ZSkKKyAgICAgICAgaWYgZW5jIGFuZCBpc2luc3RhbmNlKHJlcywgYnl0ZXMpOgorICAgICAgICAg
ICAgcmVzID0gc2l4LnRleHRfdHlwZShyZXMsIGVuYywgInJlcGxhY2UiKQorICAgICAgICByZXR1
cm4gcmVzCisKKworY2xhc3MgU3lzQ2FwdHVyZToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZmQs
IHRtcGZpbGU9Tm9uZSk6CisgICAgICAgIG5hbWUgPSBwYXRjaHN5c2RpY3RbZmRdCisgICAgICAg
IHNlbGYuX29sZCA9IGdldGF0dHIoc3lzLCBuYW1lKQorICAgICAgICBzZWxmLm5hbWUgPSBuYW1l
CisgICAgICAgIGlmIHRtcGZpbGUgaXMgTm9uZToKKyAgICAgICAgICAgIGlmIG5hbWUgPT0gInN0
ZGluIjoKKyAgICAgICAgICAgICAgICB0bXBmaWxlID0gRG9udFJlYWRGcm9tSW5wdXQoKQorICAg
ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB0bXBmaWxlID0gQ2FwdHVyZUlPKCkKKyAg
ICAgICAgc2VsZi50bXBmaWxlID0gdG1wZmlsZQorCisgICAgZGVmIHN0YXJ0KHNlbGYpOgorICAg
ICAgICBzZXRhdHRyKHN5cywgc2VsZi5uYW1lLCBzZWxmLnRtcGZpbGUpCisKKyAgICBkZWYgc25h
cChzZWxmKToKKyAgICAgICAgcmVzID0gc2VsZi50bXBmaWxlLmdldHZhbHVlKCkKKyAgICAgICAg
c2VsZi50bXBmaWxlLnNlZWsoMCkKKyAgICAgICAgc2VsZi50bXBmaWxlLnRydW5jYXRlKCkKKyAg
ICAgICAgcmV0dXJuIHJlcworCisgICAgZGVmIGRvbmUoc2VsZik6CisgICAgICAgIHNldGF0dHIo
c3lzLCBzZWxmLm5hbWUsIHNlbGYuX29sZCkKKyAgICAgICAgZGVsIHNlbGYuX29sZAorICAgICAg
ICBzZWxmLnRtcGZpbGUuY2xvc2UoKQorCisgICAgZGVmIHN1c3BlbmQoc2VsZik6CisgICAgICAg
IHNldGF0dHIoc3lzLCBzZWxmLm5hbWUsIHNlbGYuX29sZCkKKworICAgIGRlZiByZXN1bWUoc2Vs
Zik6CisgICAgICAgIHNldGF0dHIoc3lzLCBzZWxmLm5hbWUsIHNlbGYudG1wZmlsZSkKKworICAg
IGRlZiB3cml0ZW9yZyhzZWxmLCBkYXRhKToKKyAgICAgICAgc2VsZi5fb2xkLndyaXRlKGRhdGEp
CisgICAgICAgIHNlbGYuX29sZC5mbHVzaCgpCisKKworY2xhc3MgU3lzQ2FwdHVyZUJpbmFyeShT
eXNDYXB0dXJlKToKKyAgICBkZWYgc25hcChzZWxmKToKKyAgICAgICAgcmVzID0gc2VsZi50bXBm
aWxlLmJ1ZmZlci5nZXR2YWx1ZSgpCisgICAgICAgIHNlbGYudG1wZmlsZS5zZWVrKDApCisgICAg
ICAgIHNlbGYudG1wZmlsZS50cnVuY2F0ZSgpCisgICAgICAgIHJldHVybiByZXMKKworCitjbGFz
cyBEb250UmVhZEZyb21JbnB1dDoKKyAgICAiIiJUZW1wb3Jhcnkgc3R1YiBjbGFzcy4gIElkZWFs
bHkgd2hlbiBzdGRpbiBpcyBhY2Nlc3NlZCwgdGhlCisgICAgY2FwdHVyaW5nIHNob3VsZCBiZSB0
dXJuZWQgb2ZmLCB3aXRoIHBvc3NpYmx5IGFsbCBkYXRhIGNhcHR1cmVkCisgICAgc28gZmFyIHNl
bnQgdG8gdGhlIHNjcmVlbi4gIFRoaXMgc2hvdWxkIGJlIGNvbmZpZ3VyYWJsZSwgdGhvdWdoLAor
ICAgIGJlY2F1c2UgaW4gYXV0b21hdGVkIHRlc3QgcnVucyBpdCBpcyBiZXR0ZXIgdG8gY3Jhc2gg
dGhhbgorICAgIGhhbmcgaW5kZWZpbml0ZWx5LgorICAgICIiIgorCisgICAgZW5jb2RpbmcgPSBO
b25lCisKKyAgICBkZWYgcmVhZChzZWxmLCAqYXJncyk6CisgICAgICAgIHJhaXNlIElPRXJyb3Io
InJlYWRpbmcgZnJvbSBzdGRpbiB3aGlsZSBvdXRwdXQgaXMgY2FwdHVyZWQiKQorICAgIHJlYWRs
aW5lID0gcmVhZAorICAgIHJlYWRsaW5lcyA9IHJlYWQKKyAgICBfX2l0ZXJfXyA9IHJlYWQKKwor
ICAgIGRlZiBmaWxlbm8oc2VsZik6CisgICAgICAgIHJhaXNlIFVuc3VwcG9ydGVkT3BlcmF0aW9u
KCJyZWRpcmVjdGVkIHN0ZGluIGlzIHBzZXVkb2ZpbGUsICIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImhhcyBubyBmaWxlbm8oKSIpCisKKyAgICBkZWYgaXNhdHR5KHNlbGYp
OgorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBjbG9zZShzZWxmKToKKyAgICAgICAg
cGFzcworCisgICAgQHByb3BlcnR5CisgICAgZGVmIGJ1ZmZlcihzZWxmKToKKyAgICAgICAgaWYg
c3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6CisgICAgICAgICAgICByZXR1cm4gc2VsZgorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoJ3JlZGlyZWN0ZWQg
c3RkaW4gaGFzIG5vIGF0dHJpYnV0ZSBidWZmZXInKQorCisKK2RlZiBfY29sb3JhbWFfd29ya2Fy
b3VuZCgpOgorICAgICIiIgorICAgIEVuc3VyZSBjb2xvcmFtYSBpcyBpbXBvcnRlZCBzbyB0aGF0
IGl0IGF0dGFjaGVzIHRvIHRoZSBjb3JyZWN0IHN0ZGlvCisgICAgaGFuZGxlcyBvbiBXaW5kb3dz
LgorCisgICAgY29sb3JhbWEgdXNlcyB0aGUgdGVybWluYWwgb24gaW1wb3J0IHRpbWUuIFNvIGlm
IHNvbWV0aGluZyBkb2VzIHRoZQorICAgIGZpcnN0IGltcG9ydCBvZiBjb2xvcmFtYSB3aGlsZSBJ
L08gY2FwdHVyZSBpcyBhY3RpdmUsIGNvbG9yYW1hIHdpbGwKKyAgICBmYWlsIGluIHZhcmlvdXMg
d2F5cy4KKyAgICAiIiIKKworICAgIGlmIG5vdCBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnd2lu
MzInKToKKyAgICAgICAgcmV0dXJuCisgICAgdHJ5OgorICAgICAgICBpbXBvcnQgY29sb3JhbWEg
ICMgbm9xYQorICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgcGFzcworCisKK2RlZiBf
cmVhZGxpbmVfd29ya2Fyb3VuZCgpOgorICAgICIiIgorICAgIEVuc3VyZSByZWFkbGluZSBpcyBp
bXBvcnRlZCBzbyB0aGF0IGl0IGF0dGFjaGVzIHRvIHRoZSBjb3JyZWN0IHN0ZGlvCisgICAgaGFu
ZGxlcyBvbiBXaW5kb3dzLgorCisgICAgUGRiIHVzZXMgcmVhZGxpbmUgc3VwcG9ydCB3aGVyZSBh
dmFpbGFibGUtLXdoZW4gbm90IHJ1bm5pbmcgZnJvbSB0aGUgUHl0aG9uCisgICAgcHJvbXB0LCB0
aGUgcmVhZGxpbmUgbW9kdWxlIGlzIG5vdCBpbXBvcnRlZCB1bnRpbCBydW5uaW5nIHRoZSBwZGIg
UkVQTC4gIElmCisgICAgcnVubmluZyBweXRlc3Qgd2l0aCB0aGUgLS1wZGIgb3B0aW9uIHRoaXMg
bWVhbnMgdGhlIHJlYWRsaW5lIG1vZHVsZSBpcyBub3QKKyAgICBpbXBvcnRlZCB1bnRpbCBhZnRl
ciBJL08gY2FwdHVyZSBoYXMgYmVlbiBzdGFydGVkLgorCisgICAgVGhpcyBpcyBhIHByb2JsZW0g
Zm9yIHB5cmVhZGxpbmUsIHdoaWNoIGlzIG9mdGVuIHVzZWQgdG8gaW1wbGVtZW50IHJlYWRsaW5l
CisgICAgc3VwcG9ydCBvbiBXaW5kb3dzLCBhcyBpdCBkb2VzIG5vdCBhdHRhY2ggdG8gdGhlIGNv
cnJlY3QgaGFuZGxlcyBmb3Igc3Rkb3V0CisgICAgYW5kL29yIHN0ZGluIGlmIHRoZXkgaGF2ZSBi
ZWVuIHJlZGlyZWN0ZWQgYnkgdGhlIEZEQ2FwdHVyZSBtZWNoYW5pc20uICBUaGlzCisgICAgd29y
a2Fyb3VuZCBlbnN1cmVzIHRoYXQgcmVhZGxpbmUgaXMgaW1wb3J0ZWQgYmVmb3JlIEkvTyBjYXB0
dXJlIGlzIHNldHVwIHNvCisgICAgdGhhdCBpdCBjYW4gYXR0YWNoIHRvIHRoZSBhY3R1YWwgc3Rk
aW4vb3V0IGZvciB0aGUgY29uc29sZS4KKworICAgIFNlZSBodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvcHVsbC8xMjgxCisgICAgIiIiCisKKyAgICBpZiBub3Qgc3lzLnBsYXRm
b3JtLnN0YXJ0c3dpdGgoJ3dpbjMyJyk6CisgICAgICAgIHJldHVybgorICAgIHRyeToKKyAgICAg
ICAgaW1wb3J0IHJlYWRsaW5lICAjIG5vcWEKKyAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAg
ICAgIHBhc3MKKworCitkZWYgX3B5MzZfd2luZG93c2NvbnNvbGVpb193b3JrYXJvdW5kKHN0cmVh
bSk6CisgICAgIiIiCisgICAgUHl0aG9uIDMuNiBpbXBsZW1lbnRlZCB1bmljb2RlIGNvbnNvbGUg
aGFuZGxpbmcgZm9yIFdpbmRvd3MuIFRoaXMgd29ya3MKKyAgICBieSByZWFkaW5nL3dyaXRpbmcg
dG8gdGhlIHJhdyBjb25zb2xlIGhhbmRsZSB1c2luZworICAgIGBge1JlYWQsV3JpdGV9Q29uc29s
ZVdgYC4KKworICAgIFRoZSBwcm9ibGVtIGlzIHRoYXQgd2UgYXJlIGdvaW5nIHRvIGBgZHVwMmBg
IG92ZXIgdGhlIHN0ZGlvIGZpbGUKKyAgICBkZXNjcmlwdG9ycyB3aGVuIGRvaW5nIGBgRkRDYXB0
dXJlYGAgYW5kIHRoaXMgd2lsbCBgYENsb3NlSGFuZGxlYGAgdGhlCisgICAgaGFuZGxlcyB1c2Vk
IGJ5IFB5dGhvbiB0byB3cml0ZSB0byB0aGUgY29uc29sZS4gVGhvdWdoIHRoZXJlIGlzIHN0aWxs
IHNvbWUKKyAgICB3ZWlyZG5lc3MgYW5kIHRoZSBjb25zb2xlIGhhbmRsZSBzZWVtcyB0byBvbmx5
IGJlIGNsb3NlZCByYW5kb21seSBhbmQgbm90CisgICAgb24gdGhlIGZpcnN0IGNhbGwgdG8gYGBD
bG9zZUhhbmRsZWBgLCBvciBtYXliZSBpdCBnZXRzIHJlb3BlbmVkIHdpdGggdGhlCisgICAgc2Ft
ZSBoYW5kbGUgdmFsdWUgd2hlbiB3ZSBzdXNwZW5kIGNhcHR1cmluZy4KKworICAgIFRoZSB3b3Jr
YXJvdW5kIGluIHRoaXMgY2FzZSB3aWxsIHJlb3BlbiBzdGRpbyB3aXRoIGEgZGlmZmVyZW50IGZk
IHdoaWNoCisgICAgYWxzbyBtZWFucyBhIGRpZmZlcmVudCBoYW5kbGUgYnkgcmVwbGljYXRpbmcg
dGhlIGxvZ2ljIGluCisgICAgIlB5X2xpZmVjeWNsZS5jOmluaXRzdGRpby9jcmVhdGVfc3RkaW8i
LgorCisgICAgOnBhcmFtIHN0cmVhbTogaW4gcHJhY3RpY2UgYGBzeXMuc3Rkb3V0YGAgb3IgYGBz
eXMuc3RkZXJyYGAsIGJ1dCBnaXZlbgorICAgICAgICBoZXJlIGFzIHBhcmFtZXRlciBmb3IgdW5p
dHRlc3RpbmcgcHVycG9zZXMuCisKKyAgICBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1k
ZXYvcHkvaXNzdWVzLzEwMworICAgICIiIgorICAgIGlmIG5vdCBzeXMucGxhdGZvcm0uc3RhcnRz
d2l0aCgnd2luMzInKSBvciBzeXMudmVyc2lvbl9pbmZvWzoyXSA8ICgzLCA2KToKKyAgICAgICAg
cmV0dXJuCisKKyAgICAjIGJhaWwgb3V0IGlmIGBgc3RyZWFtYGAgZG9lc24ndCBzZWVtIGxpa2Ug
YSBwcm9wZXIgYGBpb2BgIHN0cmVhbSAoIzI2NjYpCisgICAgaWYgbm90IGhhc2F0dHIoc3RyZWFt
LCAnYnVmZmVyJyk6CisgICAgICAgIHJldHVybgorCisgICAgYnVmZmVyZWQgPSBoYXNhdHRyKHN0
cmVhbS5idWZmZXIsICdyYXcnKQorICAgIHJhd19zdGRvdXQgPSBzdHJlYW0uYnVmZmVyLnJhdyBp
ZiBidWZmZXJlZCBlbHNlIHN0cmVhbS5idWZmZXIKKworICAgIGlmIG5vdCBpc2luc3RhbmNlKHJh
d19zdGRvdXQsIGlvLl9XaW5kb3dzQ29uc29sZUlPKToKKyAgICAgICAgcmV0dXJuCisKKyAgICBk
ZWYgX3Jlb3Blbl9zdGRpbyhmLCBtb2RlKToKKyAgICAgICAgaWYgbm90IGJ1ZmZlcmVkIGFuZCBt
b2RlWzBdID09ICd3JzoKKyAgICAgICAgICAgIGJ1ZmZlcmluZyA9IDAKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIGJ1ZmZlcmluZyA9IC0xCisKKyAgICAgICAgcmV0dXJuIGlvLlRleHRJT1dy
YXBwZXIoCisgICAgICAgICAgICBvcGVuKG9zLmR1cChmLmZpbGVubygpKSwgbW9kZSwgYnVmZmVy
aW5nKSwKKyAgICAgICAgICAgIGYuZW5jb2RpbmcsCisgICAgICAgICAgICBmLmVycm9ycywKKyAg
ICAgICAgICAgIGYubmV3bGluZXMsCisgICAgICAgICAgICBmLmxpbmVfYnVmZmVyaW5nKQorCisg
ICAgc3lzLl9fc3RkaW5fXyA9IHN5cy5zdGRpbiA9IF9yZW9wZW5fc3RkaW8oc3lzLnN0ZGluLCAn
cmInKQorICAgIHN5cy5fX3N0ZG91dF9fID0gc3lzLnN0ZG91dCA9IF9yZW9wZW5fc3RkaW8oc3lz
LnN0ZG91dCwgJ3diJykKKyAgICBzeXMuX19zdGRlcnJfXyA9IHN5cy5zdGRlcnIgPSBfcmVvcGVu
X3N0ZGlvKHN5cy5zdGRlcnIsICd3YicpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L2NvbXBhdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvY29tcGF0LnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1
NjBmYmVjMzk3NTU1NzQ3ZmMxNGEzYWFlMjM4Njg2Njg3OGMxODAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2NvbXBhdC5weQpAQCAtMCwwICsxLDMyMiBAQAorIiIiCitw
eXRob24gdmVyc2lvbiBjb21wYXRpYmlsaXR5IGNvZGUKKyIiIgorZnJvbSBfX2Z1dHVyZV9fIGlt
cG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQg
Y29kZWNzCitpbXBvcnQgZnVuY3Rvb2xzCitpbXBvcnQgaW5zcGVjdAoraW1wb3J0IHJlCitpbXBv
cnQgc3lzCisKK2ltcG9ydCBweQorCitpbXBvcnQgX3B5dGVzdAorZnJvbSBfcHl0ZXN0Lm91dGNv
bWVzIGltcG9ydCBURVNUX09VVENPTUUKKwordHJ5OgorICAgIGltcG9ydCBlbnVtCitleGNlcHQg
SW1wb3J0RXJyb3I6ICAjIHByYWdtYTogbm8gY292ZXIKKyAgICAjIE9ubHkgYXZhaWxhYmxlIGlu
IFB5dGhvbiAzLjQrIG9yIGFzIGEgYmFja3BvcnQKKyAgICBlbnVtID0gTm9uZQorCisKK19QWTMg
PSBzeXMudmVyc2lvbl9pbmZvID4gKDMsIDApCitfUFkyID0gbm90IF9QWTMKKworCitpZiBfUFkz
OgorICAgIGZyb20gaW5zcGVjdCBpbXBvcnQgc2lnbmF0dXJlLCBQYXJhbWV0ZXIgYXMgUGFyYW1l
dGVyCitlbHNlOgorICAgIGZyb20gZnVuY3NpZ3MgaW1wb3J0IHNpZ25hdHVyZSwgUGFyYW1ldGVy
IGFzIFBhcmFtZXRlcgorCisKK05vbmVUeXBlID0gdHlwZShOb25lKQorTk9UU0VUID0gb2JqZWN0
KCkKKworUFkzNSA9IHN5cy52ZXJzaW9uX2luZm9bOjJdID49ICgzLCA1KQorUFkzNiA9IHN5cy52
ZXJzaW9uX2luZm9bOjJdID49ICgzLCA2KQorTU9EVUxFX05PVF9GT1VORF9FUlJPUiA9ICdNb2R1
bGVOb3RGb3VuZEVycm9yJyBpZiBQWTM2IGVsc2UgJ0ltcG9ydEVycm9yJworCisKK2RlZiBfZm9y
bWF0X2FyZ3MoZnVuYyk6CisgICAgcmV0dXJuIHN0cihzaWduYXR1cmUoZnVuYykpCisKKworaXNm
dW5jdGlvbiA9IGluc3BlY3QuaXNmdW5jdGlvbgoraXNjbGFzcyA9IGluc3BlY3QuaXNjbGFzcwor
IyB1c2VkIHRvIHdvcmsgYXJvdW5kIGEgcHl0aG9uMiBleGNlcHRpb24gaW5mbyBsZWFrCitleGNf
Y2xlYXIgPSBnZXRhdHRyKHN5cywgJ2V4Y19jbGVhcicsIGxhbWJkYTogTm9uZSkKKyMgVGhlIHR5
cGUgb2YgcmUuY29tcGlsZSBvYmplY3RzIGlzIG5vdCBleHBvc2VkIGluIFB5dGhvbi4KK1JFR0VY
X1RZUEUgPSB0eXBlKHJlLmNvbXBpbGUoJycpKQorCisKK2RlZiBpc19nZW5lcmF0b3IoZnVuYyk6
CisgICAgZ2VuZnVuYyA9IGluc3BlY3QuaXNnZW5lcmF0b3JmdW5jdGlvbihmdW5jKQorICAgIHJl
dHVybiBnZW5mdW5jIGFuZCBub3QgaXNjb3JvdXRpbmVmdW5jdGlvbihmdW5jKQorCisKK2RlZiBp
c2Nvcm91dGluZWZ1bmN0aW9uKGZ1bmMpOgorICAgICIiIlJldHVybiBUcnVlIGlmIGZ1bmMgaXMg
YSBkZWNvcmF0ZWQgY29yb3V0aW5lIGZ1bmN0aW9uLgorCisgICAgTm90ZTogY29waWVkIGFuZCBt
b2RpZmllZCBmcm9tIFB5dGhvbiAzLjUncyBidWlsdGluIGNvdXJvdXRpbmVzLnB5IHRvIGF2b2lk
IGltcG9ydCBhc3luY2lvIGRpcmVjdGx5LAorICAgIHdoaWNoIGluIHR1cm5zIGFsc28gaW5pdGlh
bGl6ZXMgdGhlICJsb2dnaW5nIiBtb2R1bGUgYXMgc2lkZS1lZmZlY3QgKHNlZSBpc3N1ZSAjOCku
CisgICAgIiIiCisgICAgcmV0dXJuIChnZXRhdHRyKGZ1bmMsICdfaXNfY29yb3V0aW5lJywgRmFs
c2UpIG9yCisgICAgICAgICAgICAoaGFzYXR0cihpbnNwZWN0LCAnaXNjb3JvdXRpbmVmdW5jdGlv
bicpIGFuZCBpbnNwZWN0LmlzY29yb3V0aW5lZnVuY3Rpb24oZnVuYykpKQorCisKK2RlZiBnZXRs
b2NhdGlvbihmdW5jdGlvbiwgY3VyZGlyKToKKyAgICBmbiA9IHB5LnBhdGgubG9jYWwoaW5zcGVj
dC5nZXRmaWxlKGZ1bmN0aW9uKSkKKyAgICBsaW5lbm8gPSBweS5idWlsdGluLl9nZXRjb2RlKGZ1
bmN0aW9uKS5jb19maXJzdGxpbmVubworICAgIGlmIGZuLnJlbHRvKGN1cmRpcik6CisgICAgICAg
IGZuID0gZm4ucmVsdG8oY3VyZGlyKQorICAgIHJldHVybiAiJXM6JWQiICUgKGZuLCBsaW5lbm8g
KyAxKQorCisKK2RlZiBudW1fbW9ja19wYXRjaF9hcmdzKGZ1bmN0aW9uKToKKyAgICAiIiIgcmV0
dXJuIG51bWJlciBvZiBhcmd1bWVudHMgdXNlZCB1cCBieSBtb2NrIGFyZ3VtZW50cyAoaWYgYW55
KSAiIiIKKyAgICBwYXRjaGluZ3MgPSBnZXRhdHRyKGZ1bmN0aW9uLCAicGF0Y2hpbmdzIiwgTm9u
ZSkKKyAgICBpZiBub3QgcGF0Y2hpbmdzOgorICAgICAgICByZXR1cm4gMAorICAgIG1vY2sgPSBz
eXMubW9kdWxlcy5nZXQoIm1vY2siLCBzeXMubW9kdWxlcy5nZXQoInVuaXR0ZXN0Lm1vY2siLCBO
b25lKSkKKyAgICBpZiBtb2NrIGlzIG5vdCBOb25lOgorICAgICAgICByZXR1cm4gbGVuKFtwIGZv
ciBwIGluIHBhdGNoaW5ncworICAgICAgICAgICAgICAgICAgICBpZiBub3QgcC5hdHRyaWJ1dGVf
bmFtZSBhbmQgcC5uZXcgaXMgbW9jay5ERUZBVUxUXSkKKyAgICByZXR1cm4gbGVuKHBhdGNoaW5n
cykKKworCitkZWYgZ2V0ZnVuY2FyZ25hbWVzKGZ1bmN0aW9uLCBpc19tZXRob2Q9RmFsc2UsIGNs
cz1Ob25lKToKKyAgICAiIiJSZXR1cm5zIHRoZSBuYW1lcyBvZiBhIGZ1bmN0aW9uJ3MgbWFuZGF0
b3J5IGFyZ3VtZW50cy4KKworICAgIFRoaXMgc2hvdWxkIHJldHVybiB0aGUgbmFtZXMgb2YgYWxs
IGZ1bmN0aW9uIGFyZ3VtZW50cyB0aGF0OgorICAgICAgICAqIEFyZW4ndCBib3VuZCB0byBhbiBp
bnN0YW5jZSBvciB0eXBlIGFzIGluIGluc3RhbmNlIG9yIGNsYXNzIG1ldGhvZHMuCisgICAgICAg
ICogRG9uJ3QgaGF2ZSBkZWZhdWx0IHZhbHVlcy4KKyAgICAgICAgKiBBcmVuJ3QgYm91bmQgd2l0
aCBmdW5jdG9vbHMucGFydGlhbC4KKyAgICAgICAgKiBBcmVuJ3QgcmVwbGFjZWQgd2l0aCBtb2Nr
cy4KKworICAgIFRoZSBpc19tZXRob2QgYW5kIGNscyBhcmd1bWVudHMgaW5kaWNhdGUgdGhhdCB0
aGUgZnVuY3Rpb24gc2hvdWxkCisgICAgYmUgdHJlYXRlZCBhcyBhIGJvdW5kIG1ldGhvZCBldmVu
IHRob3VnaCBpdCdzIG5vdCB1bmxlc3MsIG9ubHkgaW4KKyAgICB0aGUgY2FzZSBvZiBjbHMsIHRo
ZSBmdW5jdGlvbiBpcyBhIHN0YXRpYyBtZXRob2QuCisKKyAgICBAUm9ubnlQZmFubnNjaG1pZHQ6
IFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIHJlZmFjdG9yZWQgd2hlbiB3ZQorICAgIHJldmlzaXQg
Zml4dHVyZXMuIFRoZSBmaXh0dXJlIG1lY2hhbmlzbSBzaG91bGQgYXNrIHRoZSBub2RlIGZvcgor
ICAgIHRoZSBmaXh0dXJlIG5hbWVzLCBhbmQgbm90IHRyeSB0byBvYnRhaW4gZGlyZWN0bHkgZnJv
bSB0aGUKKyAgICBmdW5jdGlvbiBvYmplY3Qgd2VsbCBhZnRlciBjb2xsZWN0aW9uIGhhcyBvY2N1
cnJlZC4KKworICAgICIiIgorICAgICMgVGhlIHBhcmFtZXRlcnMgYXR0cmlidXRlIG9mIGEgU2ln
bmF0dXJlIG9iamVjdCBjb250YWlucyBhbgorICAgICMgb3JkZXJlZCBtYXBwaW5nIG9mIHBhcmFt
ZXRlciBuYW1lcyB0byBQYXJhbWV0ZXIgaW5zdGFuY2VzLiAgVGhpcworICAgICMgY3JlYXRlcyBh
IHR1cGxlIG9mIHRoZSBuYW1lcyBvZiB0aGUgcGFyYW1ldGVycyB0aGF0IGRvbid0IGhhdmUKKyAg
ICAjIGRlZmF1bHRzLgorICAgIGFyZ19uYW1lcyA9IHR1cGxlKHAubmFtZSBmb3IgcCBpbiBzaWdu
YXR1cmUoZnVuY3Rpb24pLnBhcmFtZXRlcnMudmFsdWVzKCkKKyAgICAgICAgICAgICAgICAgICAg
ICBpZiAocC5raW5kIGlzIFBhcmFtZXRlci5QT1NJVElPTkFMX09SX0tFWVdPUkQgb3IKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgcC5raW5kIGlzIFBhcmFtZXRlci5LRVlXT1JEX09OTFkpIGFu
ZAorICAgICAgICAgICAgICAgICAgICAgIHAuZGVmYXVsdCBpcyBQYXJhbWV0ZXIuZW1wdHkpCisg
ICAgIyBJZiB0aGlzIGZ1bmN0aW9uIHNob3VsZCBiZSB0cmVhdGVkIGFzIGEgYm91bmQgbWV0aG9k
IGV2ZW4gdGhvdWdoCisgICAgIyBpdCdzIHBhc3NlZCBhcyBhbiB1bmJvdW5kIG1ldGhvZCBvciBm
dW5jdGlvbiwgcmVtb3ZlIHRoZSBmaXJzdAorICAgICMgcGFyYW1ldGVyIG5hbWUuCisgICAgaWYg
KGlzX21ldGhvZCBvcgorICAgICAgICAoY2xzIGFuZCBub3QgaXNpbnN0YW5jZShjbHMuX19kaWN0
X18uZ2V0KGZ1bmN0aW9uLl9fbmFtZV9fLCBOb25lKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3RhdGljbWV0aG9kKSkpOgorICAgICAgICBhcmdfbmFtZXMgPSBhcmdfbmFtZXNb
MTpdCisgICAgIyBSZW1vdmUgYW55IG5hbWVzIHRoYXQgd2lsbCBiZSByZXBsYWNlZCB3aXRoIG1v
Y2tzLgorICAgIGlmIGhhc2F0dHIoZnVuY3Rpb24sICJfX3dyYXBwZWRfXyIpOgorICAgICAgICBh
cmdfbmFtZXMgPSBhcmdfbmFtZXNbbnVtX21vY2tfcGF0Y2hfYXJncyhmdW5jdGlvbik6XQorICAg
IHJldHVybiBhcmdfbmFtZXMKKworCitpZiBfUFkzOgorICAgIFNUUklOR19UWVBFUyA9IGJ5dGVz
LCBzdHIKKyAgICBVTklDT0RFX1RZUEVTID0gc3RyLAorCisgICAgaWYgUFkzNToKKyAgICAgICAg
ZGVmIF9ieXRlc190b19hc2NpaSh2YWwpOgorICAgICAgICAgICAgcmV0dXJuIHZhbC5kZWNvZGUo
J2FzY2lpJywgJ2JhY2tzbGFzaHJlcGxhY2UnKQorICAgIGVsc2U6CisgICAgICAgIGRlZiBfYnl0
ZXNfdG9fYXNjaWkodmFsKToKKyAgICAgICAgICAgIGlmIHZhbDoKKyAgICAgICAgICAgICAgICAj
IHNvdXJjZTogaHR0cDovL2dvby5nbC9iR3Nud0MKKyAgICAgICAgICAgICAgICBlbmNvZGVkX2J5
dGVzLCBfID0gY29kZWNzLmVzY2FwZV9lbmNvZGUodmFsKQorICAgICAgICAgICAgICAgIHJldHVy
biBlbmNvZGVkX2J5dGVzLmRlY29kZSgnYXNjaWknKQorICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICAjIGVtcHR5IGJ5dGVzIGNyYXNoZXMgY29kZWNzLmVzY2FwZV9lbmNvZGUgKCMx
MDg3KQorICAgICAgICAgICAgICAgIHJldHVybiAnJworCisgICAgZGVmIGFzY2lpX2VzY2FwZWQo
dmFsKToKKyAgICAgICAgIiIiSWYgdmFsIGlzIHB1cmUgYXNjaWksIHJldHVybnMgaXQgYXMgYSBz
dHIoKS4gIE90aGVyd2lzZSwgZXNjYXBlcworICAgICAgICBieXRlcyBvYmplY3RzIGludG8gYSBz
ZXF1ZW5jZSBvZiBlc2NhcGVkIGJ5dGVzOgorCisgICAgICAgIGInXHhjM1x4YjRceGM1XHhkNicg
LT4gdSdcXHhjM1xceGI0XFx4YzVcXHhkNicKKworICAgICAgICBhbmQgZXNjYXBlcyB1bmljb2Rl
IG9iamVjdHMgaW50byBhIHNlcXVlbmNlIG9mIGVzY2FwZWQgdW5pY29kZQorICAgICAgICBpZHMs
IGUuZy46CisKKyAgICAgICAgJzRcXG5WXFxVMDAwNDNlZmFcXHgwZU1YV0JcXHgxZVxcdTMwMjhc
XHUxNWZkXFx4Y2RcXFUwMDA3ZDk0NCcKKworICAgICAgICBub3RlOgorICAgICAgICAgICB0aGUg
b2J2aW91cyAidi5kZWNvZGUoJ3VuaWNvZGUtZXNjYXBlJykiIHdpbGwgcmV0dXJuCisgICAgICAg
ICAgIHZhbGlkIHV0Zi04IHVuaWNvZGUgaWYgaXQgZmluZHMgdGhlbSBpbiBieXRlcywgYnV0IHdl
CisgICAgICAgICAgIHdhbnQgdG8gcmV0dXJuIGVzY2FwZWQgYnl0ZXMgZm9yIGFueSBieXRlLCBl
dmVuIGlmIHRoZXkgbWF0Y2gKKyAgICAgICAgICAgYSB1dGYtOCBzdHJpbmcuCisKKyAgICAgICAg
IiIiCisgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsLCBieXRlcyk6CisgICAgICAgICAgICByZXR1
cm4gX2J5dGVzX3RvX2FzY2lpKHZhbCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVy
biB2YWwuZW5jb2RlKCd1bmljb2RlX2VzY2FwZScpLmRlY29kZSgnYXNjaWknKQorZWxzZToKKyAg
ICBTVFJJTkdfVFlQRVMgPSBieXRlcywgc3RyLCB1bmljb2RlCisgICAgVU5JQ09ERV9UWVBFUyA9
IHVuaWNvZGUsCisKKyAgICBkZWYgYXNjaWlfZXNjYXBlZCh2YWwpOgorICAgICAgICAiIiJJbiBw
eTIgYnl0ZXMgYW5kIHN0ciBhcmUgdGhlIHNhbWUgdHlwZSwgc28gcmV0dXJuIGlmIGl0J3MgYSBi
eXRlcworICAgICAgICBvYmplY3QsIHJldHVybiBpdCB1bmNoYW5nZWQgaWYgaXQgaXMgYSBmdWxs
IGFzY2lpIHN0cmluZywKKyAgICAgICAgb3RoZXJ3aXNlIGVzY2FwZSBpdCBpbnRvIGl0cyBiaW5h
cnkgZm9ybS4KKworICAgICAgICBJZiBpdCdzIGEgdW5pY29kZSBzdHJpbmcsIGNoYW5nZSB0aGUg
dW5pY29kZSBjaGFyYWN0ZXJzIGludG8KKyAgICAgICAgdW5pY29kZSBlc2NhcGVzLgorCisgICAg
ICAgICIiIgorICAgICAgICBpZiBpc2luc3RhbmNlKHZhbCwgYnl0ZXMpOgorICAgICAgICAgICAg
dHJ5OgorICAgICAgICAgICAgICAgIHJldHVybiB2YWwuZW5jb2RlKCdhc2NpaScpCisgICAgICAg
ICAgICBleGNlcHQgVW5pY29kZURlY29kZUVycm9yOgorICAgICAgICAgICAgICAgIHJldHVybiB2
YWwuZW5jb2RlKCdzdHJpbmctZXNjYXBlJykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJl
dHVybiB2YWwuZW5jb2RlKCd1bmljb2RlLWVzY2FwZScpCisKKworZGVmIGdldF9yZWFsX2Z1bmMo
b2JqKToKKyAgICAiIiIgZ2V0cyB0aGUgcmVhbCBmdW5jdGlvbiBvYmplY3Qgb2YgdGhlIChwb3Nz
aWJseSkgd3JhcHBlZCBvYmplY3QgYnkKKyAgICBmdW5jdG9vbHMud3JhcHMgb3IgZnVuY3Rvb2xz
LnBhcnRpYWwuCisgICAgIiIiCisgICAgc3RhcnRfb2JqID0gb2JqCisgICAgZm9yIGkgaW4gcmFu
Z2UoMTAwKToKKyAgICAgICAgbmV3X29iaiA9IGdldGF0dHIob2JqLCAnX193cmFwcGVkX18nLCBO
b25lKQorICAgICAgICBpZiBuZXdfb2JqIGlzIE5vbmU6CisgICAgICAgICAgICBicmVhaworICAg
ICAgICBvYmogPSBuZXdfb2JqCisgICAgZWxzZToKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigK
KyAgICAgICAgICAgICgiY291bGQgbm90IGZpbmQgcmVhbCBmdW5jdGlvbiBvZiB7c3RhcnR9Igor
ICAgICAgICAgICAgICJcbnN0b3BwZWQgYXQge2N1cnJlbnR9IikuZm9ybWF0KAorICAgICAgICAg
ICAgICAgIHN0YXJ0PXB5LmlvLnNhZmVyZXByKHN0YXJ0X29iaiksCisgICAgICAgICAgICAgICAg
Y3VycmVudD1weS5pby5zYWZlcmVwcihvYmopKSkKKyAgICBpZiBpc2luc3RhbmNlKG9iaiwgZnVu
Y3Rvb2xzLnBhcnRpYWwpOgorICAgICAgICBvYmogPSBvYmouZnVuYworICAgIHJldHVybiBvYmoK
KworCitkZWYgZ2V0ZnNsaW5lbm8ob2JqKToKKyAgICAjIHh4eCBsZXQgZGVjb3JhdG9ycyBldGMg
c3BlY2lmeSBhIHNhbmUgb3JkZXJpbmcKKyAgICBvYmogPSBnZXRfcmVhbF9mdW5jKG9iaikKKyAg
ICBpZiBoYXNhdHRyKG9iaiwgJ3BsYWNlX2FzJyk6CisgICAgICAgIG9iaiA9IG9iai5wbGFjZV9h
cworICAgIGZzbGluZW5vID0gX3B5dGVzdC5fY29kZS5nZXRmc2xpbmVubyhvYmopCisgICAgYXNz
ZXJ0IGlzaW5zdGFuY2UoZnNsaW5lbm9bMV0sIGludCksIG9iagorICAgIHJldHVybiBmc2xpbmVu
bworCisKK2RlZiBnZXRpbWZ1bmMoZnVuYyk6CisgICAgdHJ5OgorICAgICAgICByZXR1cm4gZnVu
Yy5fX2Z1bmNfXworICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgcmV0dXJuIGZ1
bmMKKworCitkZWYgc2FmZV9nZXRhdHRyKG9iamVjdCwgbmFtZSwgZGVmYXVsdCk6CisgICAgIiIi
IExpa2UgZ2V0YXR0ciBidXQgcmV0dXJuIGRlZmF1bHQgdXBvbiBhbnkgRXhjZXB0aW9uIG9yIGFu
eSBPdXRjb21lRXhjZXB0aW9uLgorCisgICAgQXR0cmlidXRlIGFjY2VzcyBjYW4gcG90ZW50aWFs
bHkgZmFpbCBmb3IgJ2V2aWwnIFB5dGhvbiBvYmplY3RzLgorICAgIFNlZSBpc3N1ZSAjMjE0Lgor
ICAgIEl0IGNhdGNoZXMgT3V0Y29tZUV4Y2VwdGlvbiBiZWNhdXNlIG9mICMyNDkwIChpc3N1ZSAj
NTgwKSwgbmV3IG91dGNvbWVzIGFyZSBkZXJpdmVkIGZyb20gQmFzZUV4Y2VwdGlvbgorICAgIGlu
c3RlYWQgb2YgRXhjZXB0aW9uIChmb3IgbW9yZSBkZXRhaWxzIGNoZWNrICMyNzA3KQorICAgICIi
IgorICAgIHRyeToKKyAgICAgICAgcmV0dXJuIGdldGF0dHIob2JqZWN0LCBuYW1lLCBkZWZhdWx0
KQorICAgIGV4Y2VwdCBURVNUX09VVENPTUU6CisgICAgICAgIHJldHVybiBkZWZhdWx0CisKKwor
ZGVmIF9pc191bml0dGVzdF91bmV4cGVjdGVkX3N1Y2Nlc3NfYV9mYWlsdXJlKCk6CisgICAgIiIi
UmV0dXJuIGlmIHRoZSB0ZXN0IHN1aXRlIHNob3VsZCBmYWlsIGlmIGEgQGV4cGVjdGVkRmFpbHVy
ZSB1bml0dGVzdCB0ZXN0IFBBU1NFUy4KKworICAgIEZyb20gaHR0cHM6Ly9kb2NzLnB5dGhvbi5v
cmcvMy9saWJyYXJ5L3VuaXR0ZXN0Lmh0bWw/aGlnaGxpZ2h0PXVuaXR0ZXN0I3VuaXR0ZXN0LlRl
c3RSZXN1bHQud2FzU3VjY2Vzc2Z1bDoKKyAgICAgICAgQ2hhbmdlZCBpbiB2ZXJzaW9uIDMuNDog
UmV0dXJucyBGYWxzZSBpZiB0aGVyZSB3ZXJlIGFueQorICAgICAgICB1bmV4cGVjdGVkU3VjY2Vz
c2VzIGZyb20gdGVzdHMgbWFya2VkIHdpdGggdGhlIGV4cGVjdGVkRmFpbHVyZSgpIGRlY29yYXRv
ci4KKyAgICAiIiIKKyAgICByZXR1cm4gc3lzLnZlcnNpb25faW5mbyA+PSAoMywgNCkKKworCitp
ZiBfUFkzOgorICAgIGRlZiBzYWZlX3N0cih2KToKKyAgICAgICAgIiIicmV0dXJucyB2IGFzIHN0
cmluZyIiIgorICAgICAgICByZXR1cm4gc3RyKHYpCitlbHNlOgorICAgIGRlZiBzYWZlX3N0cih2
KToKKyAgICAgICAgIiIicmV0dXJucyB2IGFzIHN0cmluZywgY29udmVydGluZyB0byBhc2NpaSBp
ZiBuZWNlc3NhcnkiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHN0cih2KQor
ICAgICAgICBleGNlcHQgVW5pY29kZUVycm9yOgorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFu
Y2UodiwgdW5pY29kZSk6CisgICAgICAgICAgICAgICAgdiA9IHVuaWNvZGUodikKKyAgICAgICAg
ICAgIGVycm9ycyA9ICdyZXBsYWNlJworICAgICAgICAgICAgcmV0dXJuIHYuZW5jb2RlKCd1dGYt
OCcsIGVycm9ycykKKworCitDT0xMRUNUX0ZBS0VNT0RVTEVfQVRUUklCVVRFUyA9ICgKKyAgICAn
Q29sbGVjdG9yJywKKyAgICAnTW9kdWxlJywKKyAgICAnR2VuZXJhdG9yJywKKyAgICAnRnVuY3Rp
b24nLAorICAgICdJbnN0YW5jZScsCisgICAgJ1Nlc3Npb24nLAorICAgICdJdGVtJywKKyAgICAn
Q2xhc3MnLAorICAgICdGaWxlJywKKyAgICAnX2ZpbGxmdW5jYXJncycsCispCisKKworZGVmIF9z
ZXR1cF9jb2xsZWN0X2Zha2Vtb2R1bGUoKToKKyAgICBmcm9tIHR5cGVzIGltcG9ydCBNb2R1bGVU
eXBlCisgICAgaW1wb3J0IHB5dGVzdAorICAgIHB5dGVzdC5jb2xsZWN0ID0gTW9kdWxlVHlwZSgn
cHl0ZXN0LmNvbGxlY3QnKQorICAgIHB5dGVzdC5jb2xsZWN0Ll9fYWxsX18gPSBbXSAgIyB1c2Vk
IGZvciBzZXRucworICAgIGZvciBhdHRyIGluIENPTExFQ1RfRkFLRU1PRFVMRV9BVFRSSUJVVEVT
OgorICAgICAgICBzZXRhdHRyKHB5dGVzdC5jb2xsZWN0LCBhdHRyLCBnZXRhdHRyKHB5dGVzdCwg
YXR0cikpCisKKworaWYgX1BZMjoKKyAgICAjIFdpdGhvdXQgdGhpcyB0aGUgdGVzdF9kdXBmaWxl
X29uX3RleHRpbyB3aWxsIGZhaWwsIG90aGVyd2lzZSBDYXB0dXJlSU8gY291bGQgZGlyZWN0bHkg
aW5oZXJpdCBmcm9tIFN0cmluZ0lPLgorICAgIGZyb20gcHkuaW8gaW1wb3J0IFRleHRJTworCisg
ICAgY2xhc3MgQ2FwdHVyZUlPKFRleHRJTyk6CisKKyAgICAgICAgQHByb3BlcnR5CisgICAgICAg
IGRlZiBlbmNvZGluZyhzZWxmKToKKyAgICAgICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYsICdf
ZW5jb2RpbmcnLCAnVVRGLTgnKQorCitlbHNlOgorICAgIGltcG9ydCBpbworCisgICAgY2xhc3Mg
Q2FwdHVyZUlPKGlvLlRleHRJT1dyYXBwZXIpOgorICAgICAgICBkZWYgX19pbml0X18oc2VsZik6
CisgICAgICAgICAgICBzdXBlcihDYXB0dXJlSU8sIHNlbGYpLl9faW5pdF9fKAorICAgICAgICAg
ICAgICAgIGlvLkJ5dGVzSU8oKSwKKyAgICAgICAgICAgICAgICBlbmNvZGluZz0nVVRGLTgnLCBu
ZXdsaW5lPScnLCB3cml0ZV90aHJvdWdoPVRydWUsCisgICAgICAgICAgICApCisKKyAgICAgICAg
ZGVmIGdldHZhbHVlKHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuYnVmZmVyLmdldHZh
bHVlKCkuZGVjb2RlKCdVVEYtOCcpCisKKworY2xhc3MgRnVuY2FyZ25hbWVzQ29tcGF0QXR0cihv
YmplY3QpOgorICAgICIiIiBoZWxwZXIgY2xhc3Mgc28gdGhhdCBNZXRhZnVuYywgRnVuY3Rpb24g
YW5kIEZpeHR1cmVSZXF1ZXN0CisgICAgZG9uJ3QgbmVlZCB0byBlYWNoIGRlZmluZSB0aGUgImZ1
bmNhcmduYW1lcyIgY29tcGF0aWJpbGl0eSBhdHRyaWJ1dGUuCisgICAgIiIiCisgICAgQHByb3Bl
cnR5CisgICAgZGVmIGZ1bmNhcmduYW1lcyhzZWxmKToKKyAgICAgICAgIiIiIGFsaWFzIGF0dHJp
YnV0ZSBmb3IgYGBmaXh0dXJlbmFtZXNgYCBmb3IgcHJlLTIuMyBjb21wYXRpYmlsaXR5IiIiCisg
ICAgICAgIHJldHVybiBzZWxmLmZpeHR1cmVuYW1lcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
X3B5dGVzdC9jb25maWcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2NvbmZpZy5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40OTljODA3OWQ0MTU5ODZjMThiMWYzZmY2NGQyMDc1NDJlNWU0MzFjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9jb25maWcucHkKQEAgLTAsMCArMSwxNDAwIEBA
CisiIiIgY29tbWFuZCBsaW5lIG9wdGlvbnMsIGluaS1maWxlIGFuZCBjb25mdGVzdC5weSBwcm9j
ZXNzaW5nLiAiIiIKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZp
c2lvbiwgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IHNobGV4CitpbXBv
cnQgdHJhY2ViYWNrCitpbXBvcnQgdHlwZXMKK2ltcG9ydCB3YXJuaW5ncworCitpbXBvcnQgc2l4
CitpbXBvcnQgcHkKKyMgRE9OJ3QgaW1wb3J0IHB5dGVzdCBoZXJlIGJlY2F1c2UgaXQgY2F1c2Vz
IGltcG9ydCBjeWNsZSB0cm91YmxlcworaW1wb3J0IHN5cworaW1wb3J0IG9zCitpbXBvcnQgX3B5
dGVzdC5fY29kZQoraW1wb3J0IF9weXRlc3QuaG9va3NwZWMgICMgdGhlIGV4dGVuc2lvbiBwb2lu
dCBkZWZpbml0aW9ucworaW1wb3J0IF9weXRlc3QuYXNzZXJ0aW9uCitmcm9tIHBsdWdneSBpbXBv
cnQgUGx1Z2luTWFuYWdlciwgSG9va2ltcGxNYXJrZXIsIEhvb2tzcGVjTWFya2VyCitmcm9tIF9w
eXRlc3QuY29tcGF0IGltcG9ydCBzYWZlX3N0cgorCitob29raW1wbCA9IEhvb2tpbXBsTWFya2Vy
KCJweXRlc3QiKQoraG9va3NwZWMgPSBIb29rc3BlY01hcmtlcigicHl0ZXN0IikKKworIyBweXRl
c3Qgc3RhcnR1cAorIworCisKK2NsYXNzIENvbmZ0ZXN0SW1wb3J0RmFpbHVyZShFeGNlcHRpb24p
OgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXRoLCBleGNpbmZvKToKKyAgICAgICAgRXhjZXB0
aW9uLl9faW5pdF9fKHNlbGYsIHBhdGgsIGV4Y2luZm8pCisgICAgICAgIHNlbGYucGF0aCA9IHBh
dGgKKyAgICAgICAgc2VsZi5leGNpbmZvID0gZXhjaW5mbworCisgICAgZGVmIF9fc3RyX18oc2Vs
Zik6CisgICAgICAgIGV0eXBlLCBldmFsdWUsIGV0YiA9IHNlbGYuZXhjaW5mbworICAgICAgICBm
b3JtYXR0ZWQgPSB0cmFjZWJhY2suZm9ybWF0X3RiKGV0YikKKyAgICAgICAgIyBUaGUgbGV2ZWwg
b2YgdGhlIHRyYWNlYmFja3Mgd2Ugd2FudCB0byBwcmludCBpcyBoYW5kIGNyYWZ0ZWQgOigKKyAg
ICAgICAgcmV0dXJuIHJlcHIoZXZhbHVlKSArICdcbicgKyAnJy5qb2luKGZvcm1hdHRlZFsyOl0p
CisKKworZGVmIG1haW4oYXJncz1Ob25lLCBwbHVnaW5zPU5vbmUpOgorICAgICIiIiByZXR1cm4g
ZXhpdCBjb2RlLCBhZnRlciBwZXJmb3JtaW5nIGFuIGluLXByb2Nlc3MgdGVzdCBydW4uCisKKyAg
ICA6YXJnIGFyZ3M6IGxpc3Qgb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cy4KKworICAgIDphcmcg
cGx1Z2luczogbGlzdCBvZiBwbHVnaW4gb2JqZWN0cyB0byBiZSBhdXRvLXJlZ2lzdGVyZWQgZHVy
aW5nCisgICAgICAgICAgICAgICAgICBpbml0aWFsaXphdGlvbi4KKyAgICAiIiIKKyAgICB0cnk6
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGNvbmZpZyA9IF9wcmVwYXJlY29uZmlnKGFyZ3Ms
IHBsdWdpbnMpCisgICAgICAgIGV4Y2VwdCBDb25mdGVzdEltcG9ydEZhaWx1cmUgYXMgZToKKyAg
ICAgICAgICAgIHR3ID0gcHkuaW8uVGVybWluYWxXcml0ZXIoc3lzLnN0ZGVycikKKyAgICAgICAg
ICAgIGZvciBsaW5lIGluIHRyYWNlYmFjay5mb3JtYXRfZXhjZXB0aW9uKCplLmV4Y2luZm8pOgor
ICAgICAgICAgICAgICAgIHR3LmxpbmUobGluZS5yc3RyaXAoKSwgcmVkPVRydWUpCisgICAgICAg
ICAgICB0dy5saW5lKCJFUlJPUjogY291bGQgbm90IGxvYWQgJXNcbiIgJSAoZS5wYXRoKSwgcmVk
PVRydWUpCisgICAgICAgICAgICByZXR1cm4gNAorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
dHJ5OgorICAgICAgICAgICAgICAgIHJldHVybiBjb25maWcuaG9vay5weXRlc3RfY21kbGluZV9t
YWluKGNvbmZpZz1jb25maWcpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAg
IGNvbmZpZy5fZW5zdXJlX3VuY29uZmlndXJlKCkKKyAgICBleGNlcHQgVXNhZ2VFcnJvciBhcyBl
OgorICAgICAgICBmb3IgbXNnIGluIGUuYXJnczoKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3Jp
dGUoIkVSUk9SOiAlc1xuIiAlIChtc2csKSkKKyAgICAgICAgcmV0dXJuIDQKKworCitjbGFzcyBj
bWRsaW5lOiAgIyBjb21wYXRpYmlsaXR5IG5hbWVzcGFjZQorICAgIG1haW4gPSBzdGF0aWNtZXRo
b2QobWFpbikKKworCitjbGFzcyBVc2FnZUVycm9yKEV4Y2VwdGlvbik6CisgICAgIiIiIGVycm9y
IGluIHB5dGVzdCB1c2FnZSBvciBpbnZvY2F0aW9uIiIiCisKKworY2xhc3MgUHJpbnRIZWxwKEV4
Y2VwdGlvbik6CisgICAgIiIiUmFpc2VkIHdoZW4gcHl0ZXN0IHNob3VsZCBwcmludCBpdCdzIGhl
bHAgdG8gc2tpcCB0aGUgcmVzdCBvZiB0aGUKKyAgICBhcmd1bWVudCBwYXJzaW5nIGFuZCB2YWxp
ZGF0aW9uLiIiIgorICAgIHBhc3MKKworCitkZWYgZmlsZW5hbWVfYXJnKHBhdGgsIG9wdG5hbWUp
OgorICAgICIiIiBBcmdwYXJzZSB0eXBlIHZhbGlkYXRvciBmb3IgZmlsZW5hbWUgYXJndW1lbnRz
LgorCisgICAgOnBhdGg6IHBhdGggb2YgZmlsZW5hbWUKKyAgICA6b3B0bmFtZTogbmFtZSBvZiB0
aGUgb3B0aW9uCisgICAgIiIiCisgICAgaWYgb3MucGF0aC5pc2RpcihwYXRoKToKKyAgICAgICAg
cmFpc2UgVXNhZ2VFcnJvcigiezB9IG11c3QgYmUgYSBmaWxlbmFtZSwgZ2l2ZW46IHsxfSIuZm9y
bWF0KG9wdG5hbWUsIHBhdGgpKQorICAgIHJldHVybiBwYXRoCisKKworZGVmIGRpcmVjdG9yeV9h
cmcocGF0aCwgb3B0bmFtZSk6CisgICAgIiIiQXJncGFyc2UgdHlwZSB2YWxpZGF0b3IgZm9yIGRp
cmVjdG9yeSBhcmd1bWVudHMuCisKKyAgICA6cGF0aDogcGF0aCBvZiBkaXJlY3RvcnkKKyAgICA6
b3B0bmFtZTogbmFtZSBvZiB0aGUgb3B0aW9uCisgICAgIiIiCisgICAgaWYgbm90IG9zLnBhdGgu
aXNkaXIocGF0aCk6CisgICAgICAgIHJhaXNlIFVzYWdlRXJyb3IoInswfSBtdXN0IGJlIGEgZGly
ZWN0b3J5LCBnaXZlbjogezF9Ii5mb3JtYXQob3B0bmFtZSwgcGF0aCkpCisgICAgcmV0dXJuIHBh
dGgKKworCitkZWZhdWx0X3BsdWdpbnMgPSAoCisgICAgIm1hcmsgbWFpbiB0ZXJtaW5hbCBydW5u
ZXIgcHl0aG9uIGZpeHR1cmVzIGRlYnVnZ2luZyB1bml0dGVzdCBjYXB0dXJlIHNraXBwaW5nICIK
KyAgICAidG1wZGlyIG1vbmtleXBhdGNoIHJlY3dhcm4gcGFzdGViaW4gaGVscGNvbmZpZyBub3Nl
IGFzc2VydGlvbiAiCisgICAgImp1bml0eG1sIHJlc3VsdGxvZyBkb2N0ZXN0IGNhY2hlcHJvdmlk
ZXIgZnJlZXplX3N1cHBvcnQgIgorICAgICJzZXR1cG9ubHkgc2V0dXBwbGFuIHdhcm5pbmdzIGxv
Z2dpbmciKS5zcGxpdCgpCisKKworYnVpbHRpbl9wbHVnaW5zID0gc2V0KGRlZmF1bHRfcGx1Z2lu
cykKK2J1aWx0aW5fcGx1Z2lucy5hZGQoInB5dGVzdGVyIikKKworCitkZWYgZ2V0X2NvbmZpZygp
OgorICAgICMgc3Vic2VxdWVudCBjYWxscyB0byBtYWluIHdpbGwgY3JlYXRlIGEgZnJlc2ggaW5z
dGFuY2UKKyAgICBwbHVnaW5tYW5hZ2VyID0gUHl0ZXN0UGx1Z2luTWFuYWdlcigpCisgICAgY29u
ZmlnID0gQ29uZmlnKHBsdWdpbm1hbmFnZXIpCisgICAgZm9yIHNwZWMgaW4gZGVmYXVsdF9wbHVn
aW5zOgorICAgICAgICBwbHVnaW5tYW5hZ2VyLmltcG9ydF9wbHVnaW4oc3BlYykKKyAgICByZXR1
cm4gY29uZmlnCisKKworZGVmIGdldF9wbHVnaW5fbWFuYWdlcigpOgorICAgICIiIgorICAgIE9i
dGFpbiBhIG5ldyBpbnN0YW5jZSBvZiB0aGUKKyAgICA6cHk6Y2xhc3M6YF9weXRlc3QuY29uZmln
LlB5dGVzdFBsdWdpbk1hbmFnZXJgLCB3aXRoIGRlZmF1bHQgcGx1Z2lucworICAgIGFscmVhZHkg
bG9hZGVkLgorCisgICAgVGhpcyBmdW5jdGlvbiBjYW4gYmUgdXNlZCBieSBpbnRlZ3JhdGlvbiB3
aXRoIG90aGVyIHRvb2xzLCBsaWtlIGhvb2tpbmcKKyAgICBpbnRvIHB5dGVzdCB0byBydW4gdGVz
dHMgaW50byBhbiBJREUuCisgICAgIiIiCisgICAgcmV0dXJuIGdldF9jb25maWcoKS5wbHVnaW5t
YW5hZ2VyCisKKworZGVmIF9wcmVwYXJlY29uZmlnKGFyZ3M9Tm9uZSwgcGx1Z2lucz1Ob25lKToK
KyAgICB3YXJuaW5nID0gTm9uZQorICAgIGlmIGFyZ3MgaXMgTm9uZToKKyAgICAgICAgYXJncyA9
IHN5cy5hcmd2WzE6XQorICAgIGVsaWYgaXNpbnN0YW5jZShhcmdzLCBweS5wYXRoLmxvY2FsKToK
KyAgICAgICAgYXJncyA9IFtzdHIoYXJncyldCisgICAgZWxpZiBub3QgaXNpbnN0YW5jZShhcmdz
LCAodHVwbGUsIGxpc3QpKToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoYXJncywgc3RyKToK
KyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm5vdCBhIHN0cmluZyBvciBhcmd1bWVudCBs
aXN0OiAlciIgJSAoYXJncywpKQorICAgICAgICBhcmdzID0gc2hsZXguc3BsaXQoYXJncywgcG9z
aXg9c3lzLnBsYXRmb3JtICE9ICJ3aW4zMiIpCisgICAgICAgIGZyb20gX3B5dGVzdCBpbXBvcnQg
ZGVwcmVjYXRlZAorICAgICAgICB3YXJuaW5nID0gZGVwcmVjYXRlZC5NQUlOX1NUUl9BUkdTCisg
ICAgY29uZmlnID0gZ2V0X2NvbmZpZygpCisgICAgcGx1Z2lubWFuYWdlciA9IGNvbmZpZy5wbHVn
aW5tYW5hZ2VyCisgICAgdHJ5OgorICAgICAgICBpZiBwbHVnaW5zOgorICAgICAgICAgICAgZm9y
IHBsdWdpbiBpbiBwbHVnaW5zOgorICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UocGx1Z2lu
LCBzaXguc3RyaW5nX3R5cGVzKToKKyAgICAgICAgICAgICAgICAgICAgcGx1Z2lubWFuYWdlci5j
b25zaWRlcl9wbHVnaW5hcmcocGx1Z2luKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgICAgIHBsdWdpbm1hbmFnZXIucmVnaXN0ZXIocGx1Z2luKQorICAgICAgICBpZiB3
YXJuaW5nOgorICAgICAgICAgICAgY29uZmlnLndhcm4oJ0MxJywgd2FybmluZykKKyAgICAgICAg
cmV0dXJuIHBsdWdpbm1hbmFnZXIuaG9vay5weXRlc3RfY21kbGluZV9wYXJzZSgKKyAgICAgICAg
ICAgIHBsdWdpbm1hbmFnZXI9cGx1Z2lubWFuYWdlciwgYXJncz1hcmdzKQorICAgIGV4Y2VwdCBC
YXNlRXhjZXB0aW9uOgorICAgICAgICBjb25maWcuX2Vuc3VyZV91bmNvbmZpZ3VyZSgpCisgICAg
ICAgIHJhaXNlCisKKworY2xhc3MgUHl0ZXN0UGx1Z2luTWFuYWdlcihQbHVnaW5NYW5hZ2VyKToK
KyAgICAiIiIKKyAgICBPdmVyd3JpdGVzIDpweTpjbGFzczpgcGx1Z2d5LlBsdWdpbk1hbmFnZXIg
PHBsdWdneS5QbHVnaW5NYW5hZ2VyPmAgdG8gYWRkIHB5dGVzdC1zcGVjaWZpYworICAgIGZ1bmN0
aW9uYWxpdHk6CisKKyAgICAqIGxvYWRpbmcgcGx1Z2lucyBmcm9tIHRoZSBjb21tYW5kIGxpbmUs
IGBgUFlURVNUX1BMVUdJTmBgIGVudiB2YXJpYWJsZSBhbmQKKyAgICAgIGBgcHl0ZXN0X3BsdWdp
bnNgYCBnbG9iYWwgdmFyaWFibGVzIGZvdW5kIGluIHBsdWdpbnMgYmVpbmcgbG9hZGVkOworICAg
ICogYGBjb25mdGVzdC5weWBgIGxvYWRpbmcgZHVyaW5nIHN0YXJ0LXVwOworICAgICIiIgorCisg
ICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzdXBlcihQeXRlc3RQbHVnaW5NYW5hZ2Vy
LCBzZWxmKS5fX2luaXRfXygicHl0ZXN0IiwgaW1wbHByZWZpeD0icHl0ZXN0XyIpCisgICAgICAg
IHNlbGYuX2NvbmZ0ZXN0X3BsdWdpbnMgPSBzZXQoKQorCisgICAgICAgICMgc3RhdGUgcmVsYXRl
ZCB0byBsb2NhbCBjb25mdGVzdCBwbHVnaW5zCisgICAgICAgIHNlbGYuX3BhdGgyY29uZm1vZHMg
PSB7fQorICAgICAgICBzZWxmLl9jb25mdGVzdHBhdGgybW9kID0ge30KKyAgICAgICAgc2VsZi5f
Y29uZmN1dGRpciA9IE5vbmUKKyAgICAgICAgc2VsZi5fbm9jb25mdGVzdCA9IEZhbHNlCisgICAg
ICAgIHNlbGYuX2R1cGxpY2F0ZXBhdGhzID0gc2V0KCkKKworICAgICAgICBzZWxmLmFkZF9ob29r
c3BlY3MoX3B5dGVzdC5ob29rc3BlYykKKyAgICAgICAgc2VsZi5yZWdpc3RlcihzZWxmKQorICAg
ICAgICBpZiBvcy5lbnZpcm9uLmdldCgnUFlURVNUX0RFQlVHJyk6CisgICAgICAgICAgICBlcnIg
PSBzeXMuc3RkZXJyCisgICAgICAgICAgICBlbmNvZGluZyA9IGdldGF0dHIoZXJyLCAnZW5jb2Rp
bmcnLCAndXRmOCcpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZXJyID0gcHku
aW8uZHVwZmlsZShlcnIsIGVuY29kaW5nPWVuY29kaW5nKQorICAgICAgICAgICAgZXhjZXB0IEV4
Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBzZWxmLnRyYWNlLnJv
b3Quc2V0d3JpdGVyKGVyci53cml0ZSkKKyAgICAgICAgICAgIHNlbGYuZW5hYmxlX3RyYWNpbmco
KQorCisgICAgICAgICMgQ29uZmlnLl9jb25zaWRlcl9pbXBvcnRob29rIHdpbGwgc2V0IGEgcmVh
bCBvYmplY3QgaWYgcmVxdWlyZWQuCisgICAgICAgIHNlbGYucmV3cml0ZV9ob29rID0gX3B5dGVz
dC5hc3NlcnRpb24uRHVtbXlSZXdyaXRlSG9vaygpCisKKyAgICBkZWYgYWRkaG9va3Moc2VsZiwg
bW9kdWxlX29yX2NsYXNzKToKKyAgICAgICAgIiIiCisgICAgICAgIC4uIGRlcHJlY2F0ZWQ6OiAy
LjgKKworICAgICAgICBVc2UgOnB5Om1ldGg6YHBsdWdneS5QbHVnaW5NYW5hZ2VyLmFkZF9ob29r
c3BlY3MgPFBsdWdpbk1hbmFnZXIuYWRkX2hvb2tzcGVjcz5gCisgICAgICAgIGluc3RlYWQuCisg
ICAgICAgICIiIgorICAgICAgICB3YXJuaW5nID0gZGljdChjb2RlPSJJMiIsCisgICAgICAgICAg
ICAgICAgICAgICAgIGZzbG9jYXRpb249X3B5dGVzdC5fY29kZS5nZXRmc2xpbmVubyhzeXMuX2dl
dGZyYW1lKDEpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgbm9kZWlkPU5vbmUsCisgICAgICAg
ICAgICAgICAgICAgICAgIG1lc3NhZ2U9InVzZSBwbHVnaW5tYW5hZ2VyLmFkZF9ob29rc3BlY3Mg
aW5zdGVhZCBvZiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlcHJlY2F0ZWQg
YWRkaG9va3MoKSBtZXRob2QuIikKKyAgICAgICAgc2VsZi5fd2Fybih3YXJuaW5nKQorICAgICAg
ICByZXR1cm4gc2VsZi5hZGRfaG9va3NwZWNzKG1vZHVsZV9vcl9jbGFzcykKKworICAgIGRlZiBw
YXJzZV9ob29raW1wbF9vcHRzKHNlbGYsIHBsdWdpbiwgbmFtZSk6CisgICAgICAgICMgcHl0ZXN0
IGhvb2tzIGFyZSBhbHdheXMgcHJlZml4ZWQgd2l0aCBweXRlc3RfCisgICAgICAgICMgc28gd2Ug
YXZvaWQgYWNjZXNzaW5nIHBvc3NpYmx5IG5vbi1yZWFkYWJsZSBhdHRyaWJ1dGVzCisgICAgICAg
ICMgKHNlZSBpc3N1ZSAjMTA3MykKKyAgICAgICAgaWYgbm90IG5hbWUuc3RhcnRzd2l0aCgicHl0
ZXN0XyIpOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICMgaWdub3JlIHNvbWUgaGlzdG9y
aWMgc3BlY2lhbCBuYW1lcyB3aGljaCBjYW4gbm90IGJlIGhvb2tzIGFueXdheQorICAgICAgICBp
ZiBuYW1lID09ICJweXRlc3RfcGx1Z2lucyIgb3IgbmFtZS5zdGFydHN3aXRoKCJweXRlc3RfZnVu
Y2FyZ19fIik6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBtZXRob2QgPSBnZXRhdHRy
KHBsdWdpbiwgbmFtZSkKKyAgICAgICAgb3B0cyA9IHN1cGVyKFB5dGVzdFBsdWdpbk1hbmFnZXIs
IHNlbGYpLnBhcnNlX2hvb2tpbXBsX29wdHMocGx1Z2luLCBuYW1lKQorICAgICAgICBpZiBvcHRz
IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgZm9yIG5hbWUgaW4gKCJ0cnlmaXJzdCIsICJ0cnls
YXN0IiwgIm9wdGlvbmFsaG9vayIsICJob29rd3JhcHBlciIpOgorICAgICAgICAgICAgICAgIG9w
dHMuc2V0ZGVmYXVsdChuYW1lLCBoYXNhdHRyKG1ldGhvZCwgbmFtZSkpCisgICAgICAgIHJldHVy
biBvcHRzCisKKyAgICBkZWYgcGFyc2VfaG9va3NwZWNfb3B0cyhzZWxmLCBtb2R1bGVfb3JfY2xh
c3MsIG5hbWUpOgorICAgICAgICBvcHRzID0gc3VwZXIoUHl0ZXN0UGx1Z2luTWFuYWdlciwgc2Vs
ZikucGFyc2VfaG9va3NwZWNfb3B0cygKKyAgICAgICAgICAgIG1vZHVsZV9vcl9jbGFzcywgbmFt
ZSkKKyAgICAgICAgaWYgb3B0cyBpcyBOb25lOgorICAgICAgICAgICAgbWV0aG9kID0gZ2V0YXR0
cihtb2R1bGVfb3JfY2xhc3MsIG5hbWUpCisgICAgICAgICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgo
InB5dGVzdF8iKToKKyAgICAgICAgICAgICAgICBvcHRzID0geyJmaXJzdHJlc3VsdCI6IGhhc2F0
dHIobWV0aG9kLCAiZmlyc3RyZXN1bHQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJoaXN0
b3JpYyI6IGhhc2F0dHIobWV0aG9kLCAiaGlzdG9yaWMiKX0KKyAgICAgICAgcmV0dXJuIG9wdHMK
KworICAgIGRlZiByZWdpc3RlcihzZWxmLCBwbHVnaW4sIG5hbWU9Tm9uZSk6CisgICAgICAgIGlm
IG5hbWUgPT0gJ3B5dGVzdF9jYXRjaGxvZyc6CisgICAgICAgICAgICBzZWxmLl93YXJuKCdweXRl
c3QtY2F0Y2hsb2cgcGx1Z2luIGhhcyBiZWVuIG1lcmdlZCBpbnRvIHRoZSBjb3JlLCAnCisgICAg
ICAgICAgICAgICAgICAgICAgICdwbGVhc2UgcmVtb3ZlIGl0IGZyb20geW91ciByZXF1aXJlbWVu
dHMuJykKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICByZXQgPSBzdXBlcihQeXRlc3RQbHVn
aW5NYW5hZ2VyLCBzZWxmKS5yZWdpc3RlcihwbHVnaW4sIG5hbWUpCisgICAgICAgIGlmIHJldDoK
KyAgICAgICAgICAgIHNlbGYuaG9vay5weXRlc3RfcGx1Z2luX3JlZ2lzdGVyZWQuY2FsbF9oaXN0
b3JpYygKKyAgICAgICAgICAgICAgICBrd2FyZ3M9ZGljdChwbHVnaW49cGx1Z2luLCBtYW5hZ2Vy
PXNlbGYpKQorCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHBsdWdpbiwgdHlwZXMuTW9kdWxl
VHlwZSk6CisgICAgICAgICAgICAgICAgc2VsZi5jb25zaWRlcl9tb2R1bGUocGx1Z2luKQorICAg
ICAgICByZXR1cm4gcmV0CisKKyAgICBkZWYgZ2V0cGx1Z2luKHNlbGYsIG5hbWUpOgorICAgICAg
ICAjIHN1cHBvcnQgZGVwcmVjYXRlZCBuYW1pbmcgYmVjYXVzZSBwbHVnaW5zICh4ZGlzdCBlLmcu
KSB1c2UgaXQKKyAgICAgICAgcmV0dXJuIHNlbGYuZ2V0X3BsdWdpbihuYW1lKQorCisgICAgZGVm
IGhhc3BsdWdpbihzZWxmLCBuYW1lKToKKyAgICAgICAgIiIiUmV0dXJuIFRydWUgaWYgdGhlIHBs
dWdpbiB3aXRoIHRoZSBnaXZlbiBuYW1lIGlzIHJlZ2lzdGVyZWQuIiIiCisgICAgICAgIHJldHVy
biBib29sKHNlbGYuZ2V0X3BsdWdpbihuYW1lKSkKKworICAgIGRlZiBweXRlc3RfY29uZmlndXJl
KHNlbGYsIGNvbmZpZyk6CisgICAgICAgICMgWFhYIG5vdyB0aGF0IHRoZSBwbHVnaW5tYW5hZ2Vy
IGV4cG9zZXMgaG9va2ltcGwodHJ5Zmlyc3QuLi4pCisgICAgICAgICMgd2Ugc2hvdWxkIHJlbW92
ZSB0cnlmaXJzdC90cnlsYXN0IGFzIG1hcmtlcnMKKyAgICAgICAgY29uZmlnLmFkZGluaXZhbHVl
X2xpbmUoIm1hcmtlcnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHJ5Zmly
c3Q6IG1hcmsgYSBob29rIGltcGxlbWVudGF0aW9uIGZ1bmN0aW9uIHN1Y2ggdGhhdCB0aGUgIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGx1Z2luIG1hY2hpbmVyeSB3aWxsIHRy
eSB0byBjYWxsIGl0IGZpcnN0L2FzIGVhcmx5IGFzIHBvc3NpYmxlLiIpCisgICAgICAgIGNvbmZp
Zy5hZGRpbml2YWx1ZV9saW5lKCJtYXJrZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInRyeWxhc3Q6IG1hcmsgYSBob29rIGltcGxlbWVudGF0aW9uIGZ1bmN0aW9uIHN1Y2gg
dGhhdCB0aGUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGx1Z2luIG1hY2hp
bmVyeSB3aWxsIHRyeSB0byBjYWxsIGl0IGxhc3QvYXMgbGF0ZSBhcyBwb3NzaWJsZS4iKQorCisg
ICAgZGVmIF93YXJuKHNlbGYsIG1lc3NhZ2UpOgorICAgICAgICBrd2FyZ3MgPSBtZXNzYWdlIGlm
IGlzaW5zdGFuY2UobWVzc2FnZSwgZGljdCkgZWxzZSB7CisgICAgICAgICAgICAnY29kZSc6ICdJ
MScsCisgICAgICAgICAgICAnbWVzc2FnZSc6IG1lc3NhZ2UsCisgICAgICAgICAgICAnZnNsb2Nh
dGlvbic6IE5vbmUsCisgICAgICAgICAgICAnbm9kZWlkJzogTm9uZSwKKyAgICAgICAgfQorICAg
ICAgICBzZWxmLmhvb2sucHl0ZXN0X2xvZ3dhcm5pbmcuY2FsbF9oaXN0b3JpYyhrd2FyZ3M9a3dh
cmdzKQorCisgICAgIworICAgICMgaW50ZXJuYWwgQVBJIGZvciBsb2NhbCBjb25mdGVzdCBwbHVn
aW4gaGFuZGxpbmcKKyAgICAjCisgICAgZGVmIF9zZXRfaW5pdGlhbF9jb25mdGVzdHMoc2VsZiwg
bmFtZXNwYWNlKToKKyAgICAgICAgIiIiIGxvYWQgaW5pdGlhbCBjb25mdGVzdCBmaWxlcyBnaXZl
biBhIHByZXBhcnNlZCAibmFtZXNwYWNlIi4KKyAgICAgICAgICAgIEFzIGNvbmZ0ZXN0IGZpbGVz
IG1heSBhZGQgdGhlaXIgb3duIGNvbW1hbmQgbGluZSBvcHRpb25zCisgICAgICAgICAgICB3aGlj
aCBoYXZlIGFyZ3VtZW50cyAoJy0tbXktb3B0IHNvbWVwYXRoJykgd2UgbWlnaHQgZ2V0IHNvbWUK
KyAgICAgICAgICAgIGZhbHNlIHBvc2l0aXZlcy4gIEFsbCBidWlsdGluIGFuZCAzcmQgcGFydHkg
cGx1Z2lucyB3aWxsIGhhdmUKKyAgICAgICAgICAgIGJlZW4gbG9hZGVkLCBob3dldmVyLCBzbyBj
b21tb24gb3B0aW9ucyB3aWxsIG5vdCBjb25mdXNlIG91ciBsb2dpYworICAgICAgICAgICAgaGVy
ZS4KKyAgICAgICAgIiIiCisgICAgICAgIGN1cnJlbnQgPSBweS5wYXRoLmxvY2FsKCkKKyAgICAg
ICAgc2VsZi5fY29uZmN1dGRpciA9IGN1cnJlbnQuam9pbihuYW1lc3BhY2UuY29uZmN1dGRpciwg
YWJzPVRydWUpIFwKKyAgICAgICAgICAgIGlmIG5hbWVzcGFjZS5jb25mY3V0ZGlyIGVsc2UgTm9u
ZQorICAgICAgICBzZWxmLl9ub2NvbmZ0ZXN0ID0gbmFtZXNwYWNlLm5vY29uZnRlc3QKKyAgICAg
ICAgdGVzdHBhdGhzID0gbmFtZXNwYWNlLmZpbGVfb3JfZGlyCisgICAgICAgIGZvdW5kYW5jaG9y
ID0gRmFsc2UKKyAgICAgICAgZm9yIHBhdGggaW4gdGVzdHBhdGhzOgorICAgICAgICAgICAgcGF0
aCA9IHN0cihwYXRoKQorICAgICAgICAgICAgIyByZW1vdmUgbm9kZS1pZCBzeW50YXgKKyAgICAg
ICAgICAgIGkgPSBwYXRoLmZpbmQoIjo6IikKKyAgICAgICAgICAgIGlmIGkgIT0gLTE6CisgICAg
ICAgICAgICAgICAgcGF0aCA9IHBhdGhbOmldCisgICAgICAgICAgICBhbmNob3IgPSBjdXJyZW50
LmpvaW4ocGF0aCwgYWJzPTEpCisgICAgICAgICAgICBpZiBleGlzdHMoYW5jaG9yKTogICMgd2Ug
Zm91bmQgc29tZSBmaWxlIG9iamVjdAorICAgICAgICAgICAgICAgIHNlbGYuX3RyeV9sb2FkX2Nv
bmZ0ZXN0KGFuY2hvcikKKyAgICAgICAgICAgICAgICBmb3VuZGFuY2hvciA9IFRydWUKKyAgICAg
ICAgaWYgbm90IGZvdW5kYW5jaG9yOgorICAgICAgICAgICAgc2VsZi5fdHJ5X2xvYWRfY29uZnRl
c3QoY3VycmVudCkKKworICAgIGRlZiBfdHJ5X2xvYWRfY29uZnRlc3Qoc2VsZiwgYW5jaG9yKToK
KyAgICAgICAgc2VsZi5fZ2V0Y29uZnRlc3Rtb2R1bGVzKGFuY2hvcikKKyAgICAgICAgIyBsZXQn
cyBhbHNvIGNvbnNpZGVyIHRlc3QqIHN1YmRpcnMKKyAgICAgICAgaWYgYW5jaG9yLmNoZWNrKGRp
cj0xKToKKyAgICAgICAgICAgIGZvciB4IGluIGFuY2hvci5saXN0ZGlyKCJ0ZXN0KiIpOgorICAg
ICAgICAgICAgICAgIGlmIHguY2hlY2soZGlyPTEpOgorICAgICAgICAgICAgICAgICAgICBzZWxm
Ll9nZXRjb25mdGVzdG1vZHVsZXMoeCkKKworICAgIGRlZiBfZ2V0Y29uZnRlc3Rtb2R1bGVzKHNl
bGYsIHBhdGgpOgorICAgICAgICBpZiBzZWxmLl9ub2NvbmZ0ZXN0OgorICAgICAgICAgICAgcmV0
dXJuIFtdCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9wYXRoMmNvbmZt
b2RzW3BhdGhdCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgIGlmIHBhdGgu
aXNmaWxlKCk6CisgICAgICAgICAgICAgICAgY2xpc3QgPSBzZWxmLl9nZXRjb25mdGVzdG1vZHVs
ZXMocGF0aC5kaXJwYXRoKCkpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICMg
WFhYIHRoZXNlIGRheXMgd2UgbWF5IHJhdGhlciB3YW50IHRvIHVzZSBjb25maWcucm9vdGRpcgor
ICAgICAgICAgICAgICAgICMgYW5kIGFsbG93IHVzZXJzIHRvIG9wdCBpbnRvIGxvb2tpbmcgaW50
byB0aGUgcm9vdGRpciBwYXJlbnQKKyAgICAgICAgICAgICAgICAjIGRpcmVjdG9yaWVzIGluc3Rl
YWQgb2YgcmVxdWlyaW5nIHRvIHNwZWNpZnkgY29uZmN1dGRpcgorICAgICAgICAgICAgICAgIGNs
aXN0ID0gW10KKyAgICAgICAgICAgICAgICBmb3IgcGFyZW50IGluIHBhdGgucGFydHMoKToKKyAg
ICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fY29uZmN1dGRpciBhbmQgc2VsZi5fY29uZmN1dGRp
ci5yZWx0byhwYXJlbnQpOgorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAg
ICAgICAgICAgICAgICAgY29uZnRlc3RwYXRoID0gcGFyZW50LmpvaW4oImNvbmZ0ZXN0LnB5IikK
KyAgICAgICAgICAgICAgICAgICAgaWYgY29uZnRlc3RwYXRoLmlzZmlsZSgpOgorICAgICAgICAg
ICAgICAgICAgICAgICAgbW9kID0gc2VsZi5faW1wb3J0Y29uZnRlc3QoY29uZnRlc3RwYXRoKQor
ICAgICAgICAgICAgICAgICAgICAgICAgY2xpc3QuYXBwZW5kKG1vZCkKKworICAgICAgICAgICAg
c2VsZi5fcGF0aDJjb25mbW9kc1twYXRoXSA9IGNsaXN0CisgICAgICAgICAgICByZXR1cm4gY2xp
c3QKKworICAgIGRlZiBfcmdldF93aXRoX2NvbmZtb2Qoc2VsZiwgbmFtZSwgcGF0aCk6CisgICAg
ICAgIG1vZHVsZXMgPSBzZWxmLl9nZXRjb25mdGVzdG1vZHVsZXMocGF0aCkKKyAgICAgICAgZm9y
IG1vZCBpbiByZXZlcnNlZChtb2R1bGVzKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAg
ICAgICByZXR1cm4gbW9kLCBnZXRhdHRyKG1vZCwgbmFtZSkKKyAgICAgICAgICAgIGV4Y2VwdCBB
dHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICByYWlzZSBL
ZXlFcnJvcihuYW1lKQorCisgICAgZGVmIF9pbXBvcnRjb25mdGVzdChzZWxmLCBjb25mdGVzdHBh
dGgpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fY29uZnRlc3RwYXRo
Mm1vZFtjb25mdGVzdHBhdGhdCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAg
IHBrZ3BhdGggPSBjb25mdGVzdHBhdGgucHlwa2dwYXRoKCkKKyAgICAgICAgICAgIGlmIHBrZ3Bh
dGggaXMgTm9uZToKKyAgICAgICAgICAgICAgICBfZW5zdXJlX3JlbW92ZWRfc3lzbW9kdWxlKGNv
bmZ0ZXN0cGF0aC5wdXJlYmFzZW5hbWUpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAg
ICAgbW9kID0gY29uZnRlc3RwYXRoLnB5aW1wb3J0KCkKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNl
cHRpb246CisgICAgICAgICAgICAgICAgcmFpc2UgQ29uZnRlc3RJbXBvcnRGYWlsdXJlKGNvbmZ0
ZXN0cGF0aCwgc3lzLmV4Y19pbmZvKCkpCisKKyAgICAgICAgICAgIHNlbGYuX2NvbmZ0ZXN0X3Bs
dWdpbnMuYWRkKG1vZCkKKyAgICAgICAgICAgIHNlbGYuX2NvbmZ0ZXN0cGF0aDJtb2RbY29uZnRl
c3RwYXRoXSA9IG1vZAorICAgICAgICAgICAgZGlycGF0aCA9IGNvbmZ0ZXN0cGF0aC5kaXJwYXRo
KCkKKyAgICAgICAgICAgIGlmIGRpcnBhdGggaW4gc2VsZi5fcGF0aDJjb25mbW9kczoKKyAgICAg
ICAgICAgICAgICBmb3IgcGF0aCwgbW9kcyBpbiBzZWxmLl9wYXRoMmNvbmZtb2RzLml0ZW1zKCk6
CisgICAgICAgICAgICAgICAgICAgIGlmIHBhdGggYW5kIHBhdGgucmVsdG8oZGlycGF0aCkgb3Ig
cGF0aCA9PSBkaXJwYXRoOgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IG1vZCBub3Qg
aW4gbW9kcworICAgICAgICAgICAgICAgICAgICAgICAgbW9kcy5hcHBlbmQobW9kKQorICAgICAg
ICAgICAgc2VsZi50cmFjZSgibG9hZGVkIGNvbmZ0ZXN0bW9kdWxlICVyIiAlIChtb2QpKQorICAg
ICAgICAgICAgc2VsZi5jb25zaWRlcl9jb25mdGVzdChtb2QpCisgICAgICAgICAgICByZXR1cm4g
bW9kCisKKyAgICAjCisgICAgIyBBUEkgZm9yIGJvb3RzdHJhcHBpbmcgcGx1Z2luIGxvYWRpbmcK
KyAgICAjCisgICAgIworCisgICAgZGVmIGNvbnNpZGVyX3ByZXBhcnNlKHNlbGYsIGFyZ3MpOgor
ICAgICAgICBmb3Igb3B0MSwgb3B0MiBpbiB6aXAoYXJncywgYXJnc1sxOl0pOgorICAgICAgICAg
ICAgaWYgb3B0MSA9PSAiLXAiOgorICAgICAgICAgICAgICAgIHNlbGYuY29uc2lkZXJfcGx1Z2lu
YXJnKG9wdDIpCisKKyAgICBkZWYgY29uc2lkZXJfcGx1Z2luYXJnKHNlbGYsIGFyZyk6CisgICAg
ICAgIGlmIGFyZy5zdGFydHN3aXRoKCJubzoiKToKKyAgICAgICAgICAgIG5hbWUgPSBhcmdbMzpd
CisgICAgICAgICAgICBzZWxmLnNldF9ibG9ja2VkKG5hbWUpCisgICAgICAgICAgICBpZiBub3Qg
bmFtZS5zdGFydHN3aXRoKCJweXRlc3RfIik6CisgICAgICAgICAgICAgICAgc2VsZi5zZXRfYmxv
Y2tlZCgicHl0ZXN0XyIgKyBuYW1lKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5p
bXBvcnRfcGx1Z2luKGFyZykKKworICAgIGRlZiBjb25zaWRlcl9jb25mdGVzdChzZWxmLCBjb25m
dGVzdG1vZHVsZSk6CisgICAgICAgIHNlbGYucmVnaXN0ZXIoY29uZnRlc3Rtb2R1bGUsIG5hbWU9
Y29uZnRlc3Rtb2R1bGUuX19maWxlX18pCisKKyAgICBkZWYgY29uc2lkZXJfZW52KHNlbGYpOgor
ICAgICAgICBzZWxmLl9pbXBvcnRfcGx1Z2luX3NwZWNzKG9zLmVudmlyb24uZ2V0KCJQWVRFU1Rf
UExVR0lOUyIpKQorCisgICAgZGVmIGNvbnNpZGVyX21vZHVsZShzZWxmLCBtb2QpOgorICAgICAg
ICBzZWxmLl9pbXBvcnRfcGx1Z2luX3NwZWNzKGdldGF0dHIobW9kLCAncHl0ZXN0X3BsdWdpbnMn
LCBbXSkpCisKKyAgICBkZWYgX2ltcG9ydF9wbHVnaW5fc3BlY3Moc2VsZiwgc3BlYyk6CisgICAg
ICAgIHBsdWdpbnMgPSBfZ2V0X3BsdWdpbl9zcGVjc19hc19saXN0KHNwZWMpCisgICAgICAgIGZv
ciBpbXBvcnRfc3BlYyBpbiBwbHVnaW5zOgorICAgICAgICAgICAgc2VsZi5pbXBvcnRfcGx1Z2lu
KGltcG9ydF9zcGVjKQorCisgICAgZGVmIGltcG9ydF9wbHVnaW4oc2VsZiwgbW9kbmFtZSk6Cisg
ICAgICAgICMgbW9zdCBvZnRlbiBtb2RuYW1lIHJlZmVycyB0byBidWlsdGluIG1vZHVsZXMsIGUu
Zy4gInB5dGVzdGVyIiwKKyAgICAgICAgIyAidGVybWluYWwiIG9yICJjYXB0dXJlIi4gIFRob3Nl
IHBsdWdpbnMgYXJlIHJlZ2lzdGVyZWQgdW5kZXIgdGhlaXIKKyAgICAgICAgIyBiYXNlbmFtZSBm
b3IgaGlzdG9yaWMgcHVycG9zZXMgYnV0IG11c3QgYmUgaW1wb3J0ZWQgd2l0aCB0aGUKKyAgICAg
ICAgIyBfcHl0ZXN0IHByZWZpeC4KKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobW9kbmFtZSwg
KHNpeC50ZXh0X3R5cGUsIHN0cikpLCAibW9kdWxlIG5hbWUgYXMgdGV4dCByZXF1aXJlZCwgZ290
ICVyIiAlIG1vZG5hbWUKKyAgICAgICAgbW9kbmFtZSA9IHN0cihtb2RuYW1lKQorICAgICAgICBp
ZiBzZWxmLmlzX2Jsb2NrZWQobW9kbmFtZSkgb3Igc2VsZi5nZXRfcGx1Z2luKG1vZG5hbWUpIGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGlmIG1vZG5hbWUgaW4gYnVp
bHRpbl9wbHVnaW5zOgorICAgICAgICAgICAgaW1wb3J0c3BlYyA9ICJfcHl0ZXN0LiIgKyBtb2Ru
YW1lCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpbXBvcnRzcGVjID0gbW9kbmFtZQorICAg
ICAgICBzZWxmLnJld3JpdGVfaG9vay5tYXJrX3Jld3JpdGUoaW1wb3J0c3BlYykKKyAgICAgICAg
dHJ5OgorICAgICAgICAgICAgX19pbXBvcnRfXyhpbXBvcnRzcGVjKQorICAgICAgICBleGNlcHQg
SW1wb3J0RXJyb3IgYXMgZToKKyAgICAgICAgICAgIG5ld19leGNfdHlwZSA9IEltcG9ydEVycm9y
CisgICAgICAgICAgICBuZXdfZXhjX21lc3NhZ2UgPSAnRXJyb3IgaW1wb3J0aW5nIHBsdWdpbiAi
JXMiOiAlcycgJSAobW9kbmFtZSwgc2FmZV9zdHIoZS5hcmdzWzBdKSkKKyAgICAgICAgICAgIG5l
d19leGMgPSBuZXdfZXhjX3R5cGUobmV3X2V4Y19tZXNzYWdlKQorCisgICAgICAgICAgICBzaXgu
cmVyYWlzZShuZXdfZXhjX3R5cGUsIG5ld19leGMsIHN5cy5leGNfaW5mbygpWzJdKQorCisgICAg
ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAg
ICAgICAgICAgIGlmIG5vdCBoYXNhdHRyKHB5dGVzdCwgJ3NraXAnKSBvciBub3QgaXNpbnN0YW5j
ZShlLCBweXRlc3Quc2tpcC5FeGNlcHRpb24pOgorICAgICAgICAgICAgICAgIHJhaXNlCisgICAg
ICAgICAgICBzZWxmLl93YXJuKCJza2lwcGVkIHBsdWdpbiAlcjogJXMiICUgKChtb2RuYW1lLCBl
Lm1zZykpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbW9kID0gc3lzLm1vZHVsZXNbaW1w
b3J0c3BlY10KKyAgICAgICAgICAgIHNlbGYucmVnaXN0ZXIobW9kLCBtb2RuYW1lKQorCisKK2Rl
ZiBfZ2V0X3BsdWdpbl9zcGVjc19hc19saXN0KHNwZWNzKToKKyAgICAiIiIKKyAgICBQYXJzZXMg
YSBsaXN0IG9mICJwbHVnaW4gc3BlY3MiIGFuZCByZXR1cm5zIGEgbGlzdCBvZiBwbHVnaW4gbmFt
ZXMuCisKKyAgICBQbHVnaW4gc3BlY3MgY2FuIGJlIGdpdmVuIGFzIGEgbGlzdCBvZiBzdHJpbmdz
IHNlcGFyYXRlZCBieSAiLCIgb3IgYWxyZWFkeSBhcyBhIGxpc3QvdHVwbGUgaW4KKyAgICB3aGlj
aCBjYXNlIGl0IGlzIHJldHVybmVkIGFzIGEgbGlzdC4gU3BlY3MgY2FuIGFsc28gYmUgYE5vbmVg
IGluIHdoaWNoIGNhc2UgYW4KKyAgICBlbXB0eSBsaXN0IGlzIHJldHVybmVkLgorICAgICIiIgor
ICAgIGlmIHNwZWNzIGlzIG5vdCBOb25lOgorICAgICAgICBpZiBpc2luc3RhbmNlKHNwZWNzLCBz
dHIpOgorICAgICAgICAgICAgc3BlY3MgPSBzcGVjcy5zcGxpdCgnLCcpIGlmIHNwZWNzIGVsc2Ug
W10KKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uoc3BlY3MsIChsaXN0LCB0dXBsZSkpOgorICAg
ICAgICAgICAgcmFpc2UgVXNhZ2VFcnJvcigiUGx1Z2luIHNwZWNzIG11c3QgYmUgYSAnLCctc2Vw
YXJhdGVkIHN0cmluZyBvciBhICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxpc3Qv
dHVwbGUgb2Ygc3RyaW5ncyBmb3IgcGx1Z2luIG5hbWVzLiBHaXZlbjogJXIiICUgc3BlY3MpCisg
ICAgICAgIHJldHVybiBsaXN0KHNwZWNzKQorICAgIHJldHVybiBbXQorCisKK2NsYXNzIFBhcnNl
cjoKKyAgICAiIiIgUGFyc2VyIGZvciBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGFuZCBpbmktZmls
ZSB2YWx1ZXMuCisKKyAgICA6aXZhciBleHRyYV9pbmZvOiBkaWN0IG9mIGdlbmVyaWMgcGFyYW0g
LT4gdmFsdWUgdG8gZGlzcGxheSBpbiBjYXNlCisgICAgICAgIHRoZXJlJ3MgYW4gZXJyb3IgcHJv
Y2Vzc2luZyB0aGUgY29tbWFuZCBsaW5lIGFyZ3VtZW50cy4KKyAgICAiIiIKKworICAgIGRlZiBf
X2luaXRfXyhzZWxmLCB1c2FnZT1Ob25lLCBwcm9jZXNzb3B0PU5vbmUpOgorICAgICAgICBzZWxm
Ll9hbm9ueW1vdXMgPSBPcHRpb25Hcm91cCgiY3VzdG9tIG9wdGlvbnMiLCBwYXJzZXI9c2VsZikK
KyAgICAgICAgc2VsZi5fZ3JvdXBzID0gW10KKyAgICAgICAgc2VsZi5fcHJvY2Vzc29wdCA9IHBy
b2Nlc3NvcHQKKyAgICAgICAgc2VsZi5fdXNhZ2UgPSB1c2FnZQorICAgICAgICBzZWxmLl9pbmlk
aWN0ID0ge30KKyAgICAgICAgc2VsZi5faW5pbmFtZXMgPSBbXQorICAgICAgICBzZWxmLmV4dHJh
X2luZm8gPSB7fQorCisgICAgZGVmIHByb2Nlc3NvcHRpb24oc2VsZiwgb3B0aW9uKToKKyAgICAg
ICAgaWYgc2VsZi5fcHJvY2Vzc29wdDoKKyAgICAgICAgICAgIGlmIG9wdGlvbi5kZXN0OgorICAg
ICAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NvcHQob3B0aW9uKQorCisgICAgZGVmIGdldGdyb3Vw
KHNlbGYsIG5hbWUsIGRlc2NyaXB0aW9uPSIiLCBhZnRlcj1Ob25lKToKKyAgICAgICAgIiIiIGdl
dCAob3IgY3JlYXRlKSBhIG5hbWVkIG9wdGlvbiBHcm91cC4KKworICAgICAgICA6bmFtZTogbmFt
ZSBvZiB0aGUgb3B0aW9uIGdyb3VwLgorICAgICAgICA6ZGVzY3JpcHRpb246IGxvbmcgZGVzY3Jp
cHRpb24gZm9yIC0taGVscCBvdXRwdXQuCisgICAgICAgIDphZnRlcjogbmFtZSBvZiBvdGhlciBn
cm91cCwgdXNlZCBmb3Igb3JkZXJpbmcgLS1oZWxwIG91dHB1dC4KKworICAgICAgICBUaGUgcmV0
dXJuZWQgZ3JvdXAgb2JqZWN0IGhhcyBhbiBgYGFkZG9wdGlvbmBgIG1ldGhvZCB3aXRoIHRoZSBz
YW1lCisgICAgICAgIHNpZ25hdHVyZSBhcyA6cHk6ZnVuYzpgcGFyc2VyLmFkZG9wdGlvbgorICAg
ICAgICA8X3B5dGVzdC5jb25maWcuUGFyc2VyLmFkZG9wdGlvbj5gIGJ1dCB3aWxsIGJlIHNob3du
IGluIHRoZQorICAgICAgICByZXNwZWN0aXZlIGdyb3VwIGluIHRoZSBvdXRwdXQgb2YgYGBweXRl
c3QuIC0taGVscGBgLgorICAgICAgICAiIiIKKyAgICAgICAgZm9yIGdyb3VwIGluIHNlbGYuX2dy
b3VwczoKKyAgICAgICAgICAgIGlmIGdyb3VwLm5hbWUgPT0gbmFtZToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZ3JvdXAKKyAgICAgICAgZ3JvdXAgPSBPcHRpb25Hcm91cChuYW1lLCBkZXNjcmlw
dGlvbiwgcGFyc2VyPXNlbGYpCisgICAgICAgIGkgPSAwCisgICAgICAgIGZvciBpLCBncnAgaW4g
ZW51bWVyYXRlKHNlbGYuX2dyb3Vwcyk6CisgICAgICAgICAgICBpZiBncnAubmFtZSA9PSBhZnRl
cjoKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICBzZWxmLl9ncm91cHMuaW5zZXJ0KGkg
KyAxLCBncm91cCkKKyAgICAgICAgcmV0dXJuIGdyb3VwCisKKyAgICBkZWYgYWRkb3B0aW9uKHNl
bGYsICpvcHRzLCAqKmF0dHJzKToKKyAgICAgICAgIiIiIHJlZ2lzdGVyIGEgY29tbWFuZCBsaW5l
IG9wdGlvbi4KKworICAgICAgICA6b3B0czogb3B0aW9uIG5hbWVzLCBjYW4gYmUgc2hvcnQgb3Ig
bG9uZyBvcHRpb25zLgorICAgICAgICA6YXR0cnM6IHNhbWUgYXR0cmlidXRlcyB3aGljaCB0aGUg
YGBhZGRfb3B0aW9uKClgYCBmdW5jdGlvbiBvZiB0aGUKKyAgICAgICAgICAgYGFyZ3BhcnNlIGxp
YnJhcnkKKyAgICAgICAgICAgPGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvMi9saWJyYXJ5L2FyZ3Bh
cnNlLmh0bWw+YF8KKyAgICAgICAgICAgYWNjZXB0cy4KKworICAgICAgICBBZnRlciBjb21tYW5k
IGxpbmUgcGFyc2luZyBvcHRpb25zIGFyZSBhdmFpbGFibGUgb24gdGhlIHB5dGVzdCBjb25maWcK
KyAgICAgICAgb2JqZWN0IHZpYSBgYGNvbmZpZy5vcHRpb24uTkFNRWBgIHdoZXJlIGBgTkFNRWBg
IGlzIHVzdWFsbHkgc2V0CisgICAgICAgIGJ5IHBhc3NpbmcgYSBgYGRlc3RgYCBhdHRyaWJ1dGUs
IGZvciBleGFtcGxlCisgICAgICAgIGBgYWRkb3B0aW9uKCItLWxvbmciLCBkZXN0PSJOQU1FIiwg
Li4uKWBgLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fYW5vbnltb3VzLmFkZG9wdGlvbigq
b3B0cywgKiphdHRycykKKworICAgIGRlZiBwYXJzZShzZWxmLCBhcmdzLCBuYW1lc3BhY2U9Tm9u
ZSk6CisgICAgICAgIGZyb20gX3B5dGVzdC5fYXJnY29tcGxldGUgaW1wb3J0IHRyeV9hcmdjb21w
bGV0ZQorICAgICAgICBzZWxmLm9wdHBhcnNlciA9IHNlbGYuX2dldHBhcnNlcigpCisgICAgICAg
IHRyeV9hcmdjb21wbGV0ZShzZWxmLm9wdHBhcnNlcikKKyAgICAgICAgcmV0dXJuIHNlbGYub3B0
cGFyc2VyLnBhcnNlX2FyZ3MoW3N0cih4KSBmb3IgeCBpbiBhcmdzXSwgbmFtZXNwYWNlPW5hbWVz
cGFjZSkKKworICAgIGRlZiBfZ2V0cGFyc2VyKHNlbGYpOgorICAgICAgICBmcm9tIF9weXRlc3Qu
X2FyZ2NvbXBsZXRlIGltcG9ydCBmaWxlc2NvbXBsZXRlcgorICAgICAgICBvcHRwYXJzZXIgPSBN
eU9wdGlvblBhcnNlcihzZWxmLCBzZWxmLmV4dHJhX2luZm8pCisgICAgICAgIGdyb3VwcyA9IHNl
bGYuX2dyb3VwcyArIFtzZWxmLl9hbm9ueW1vdXNdCisgICAgICAgIGZvciBncm91cCBpbiBncm91
cHM6CisgICAgICAgICAgICBpZiBncm91cC5vcHRpb25zOgorICAgICAgICAgICAgICAgIGRlc2Mg
PSBncm91cC5kZXNjcmlwdGlvbiBvciBncm91cC5uYW1lCisgICAgICAgICAgICAgICAgYXJnZ3Jv
dXAgPSBvcHRwYXJzZXIuYWRkX2FyZ3VtZW50X2dyb3VwKGRlc2MpCisgICAgICAgICAgICAgICAg
Zm9yIG9wdGlvbiBpbiBncm91cC5vcHRpb25zOgorICAgICAgICAgICAgICAgICAgICBuID0gb3B0
aW9uLm5hbWVzKCkKKyAgICAgICAgICAgICAgICAgICAgYSA9IG9wdGlvbi5hdHRycygpCisgICAg
ICAgICAgICAgICAgICAgIGFyZ2dyb3VwLmFkZF9hcmd1bWVudCgqbiwgKiphKQorICAgICAgICAj
IGJhc2ggbGlrZSBhdXRvY29tcGxldGlvbiBmb3IgZGlycyAoYXBwZW5kaW5nICcvJykKKyAgICAg
ICAgb3B0cGFyc2VyLmFkZF9hcmd1bWVudChGSUxFX09SX0RJUiwgbmFyZ3M9JyonKS5jb21wbGV0
ZXIgPSBmaWxlc2NvbXBsZXRlcgorICAgICAgICByZXR1cm4gb3B0cGFyc2VyCisKKyAgICBkZWYg
cGFyc2Vfc2V0b3B0aW9uKHNlbGYsIGFyZ3MsIG9wdGlvbiwgbmFtZXNwYWNlPU5vbmUpOgorICAg
ICAgICBwYXJzZWRvcHRpb24gPSBzZWxmLnBhcnNlKGFyZ3MsIG5hbWVzcGFjZT1uYW1lc3BhY2Up
CisgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBwYXJzZWRvcHRpb24uX19kaWN0X18uaXRlbXMo
KToKKyAgICAgICAgICAgIHNldGF0dHIob3B0aW9uLCBuYW1lLCB2YWx1ZSkKKyAgICAgICAgcmV0
dXJuIGdldGF0dHIocGFyc2Vkb3B0aW9uLCBGSUxFX09SX0RJUikKKworICAgIGRlZiBwYXJzZV9r
bm93bl9hcmdzKHNlbGYsIGFyZ3MsIG5hbWVzcGFjZT1Ob25lKToKKyAgICAgICAgIiIicGFyc2Vz
IGFuZCByZXR1cm5zIGEgbmFtZXNwYWNlIG9iamVjdCB3aXRoIGtub3duIGFyZ3VtZW50cyBhdCB0
aGlzCisgICAgICAgIHBvaW50LgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYucGFy
c2Vfa25vd25fYW5kX3Vua25vd25fYXJncyhhcmdzLCBuYW1lc3BhY2U9bmFtZXNwYWNlKVswXQor
CisgICAgZGVmIHBhcnNlX2tub3duX2FuZF91bmtub3duX2FyZ3Moc2VsZiwgYXJncywgbmFtZXNw
YWNlPU5vbmUpOgorICAgICAgICAiIiJwYXJzZXMgYW5kIHJldHVybnMgYSBuYW1lc3BhY2Ugb2Jq
ZWN0IHdpdGgga25vd24gYXJndW1lbnRzLCBhbmQKKyAgICAgICAgdGhlIHJlbWFpbmluZyBhcmd1
bWVudHMgdW5rbm93biBhdCB0aGlzIHBvaW50LgorICAgICAgICAiIiIKKyAgICAgICAgb3B0cGFy
c2VyID0gc2VsZi5fZ2V0cGFyc2VyKCkKKyAgICAgICAgYXJncyA9IFtzdHIoeCkgZm9yIHggaW4g
YXJnc10KKyAgICAgICAgcmV0dXJuIG9wdHBhcnNlci5wYXJzZV9rbm93bl9hcmdzKGFyZ3MsIG5h
bWVzcGFjZT1uYW1lc3BhY2UpCisKKyAgICBkZWYgYWRkaW5pKHNlbGYsIG5hbWUsIGhlbHAsIHR5
cGU9Tm9uZSwgZGVmYXVsdD1Ob25lKToKKyAgICAgICAgIiIiIHJlZ2lzdGVyIGFuIGluaS1maWxl
IG9wdGlvbi4KKworICAgICAgICA6bmFtZTogbmFtZSBvZiB0aGUgaW5pLXZhcmlhYmxlCisgICAg
ICAgIDp0eXBlOiB0eXBlIG9mIHRoZSB2YXJpYWJsZSwgY2FuIGJlIGBgcGF0aGxpc3RgYCwgYGBh
cmdzYGAsIGBgbGluZWxpc3RgYAorICAgICAgICAgICAgICAgb3IgYGBib29sYGAuCisgICAgICAg
IDpkZWZhdWx0OiBkZWZhdWx0IHZhbHVlIGlmIG5vIGluaS1maWxlIG9wdGlvbiBleGlzdHMgYnV0
IGlzIHF1ZXJpZWQuCisKKyAgICAgICAgVGhlIHZhbHVlIG9mIGluaS12YXJpYWJsZXMgY2FuIGJl
IHJldHJpZXZlZCB2aWEgYSBjYWxsIHRvCisgICAgICAgIDpweTpmdW5jOmBjb25maWcuZ2V0aW5p
KG5hbWUpIDxfcHl0ZXN0LmNvbmZpZy5Db25maWcuZ2V0aW5pPmAuCisgICAgICAgICIiIgorICAg
ICAgICBhc3NlcnQgdHlwZSBpbiAoTm9uZSwgInBhdGhsaXN0IiwgImFyZ3MiLCAibGluZWxpc3Qi
LCAiYm9vbCIpCisgICAgICAgIHNlbGYuX2luaWRpY3RbbmFtZV0gPSAoaGVscCwgdHlwZSwgZGVm
YXVsdCkKKyAgICAgICAgc2VsZi5faW5pbmFtZXMuYXBwZW5kKG5hbWUpCisKKworY2xhc3MgQXJn
dW1lbnRFcnJvcihFeGNlcHRpb24pOgorICAgICIiIgorICAgIFJhaXNlZCBpZiBhbiBBcmd1bWVu
dCBpbnN0YW5jZSBpcyBjcmVhdGVkIHdpdGggaW52YWxpZCBvcgorICAgIGluY29uc2lzdGVudCBh
cmd1bWVudHMuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbXNnLCBvcHRpb24p
OgorICAgICAgICBzZWxmLm1zZyA9IG1zZworICAgICAgICBzZWxmLm9wdGlvbl9pZCA9IHN0cihv
cHRpb24pCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgaWYgc2VsZi5vcHRpb25f
aWQ6CisgICAgICAgICAgICByZXR1cm4gIm9wdGlvbiAlczogJXMiICUgKHNlbGYub3B0aW9uX2lk
LCBzZWxmLm1zZykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLm1zZwor
CisKK2NsYXNzIEFyZ3VtZW50OgorICAgICIiImNsYXNzIHRoYXQgbWltaWNzIHRoZSBuZWNlc3Nh
cnkgYmVoYXZpb3VyIG9mIG9wdHBhcnNlLk9wdGlvbgorCisgICAgaXRzIGN1cnJlbnRseSBhIGxl
YXN0IGVmZm9ydCBpbXBsZW1lbnRhdGlvbgorICAgIGFuZCBpZ25vcmluZyBjaG9pY2VzIGFuZCBp
bnRlZ2VyIHByZWZpeGVzCisgICAgaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy9saWJyYXJ5L29w
dHBhcnNlLmh0bWwjb3B0cGFyc2Utc3RhbmRhcmQtb3B0aW9uLXR5cGVzCisgICAgIiIiCisgICAg
X3R5cF9tYXAgPSB7CisgICAgICAgICdpbnQnOiBpbnQsCisgICAgICAgICdzdHJpbmcnOiBzdHIs
CisgICAgICAgICdmbG9hdCc6IGZsb2F0LAorICAgICAgICAnY29tcGxleCc6IGNvbXBsZXgsCisg
ICAgfQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICpuYW1lcywgKiphdHRycyk6CisgICAgICAg
ICIiInN0b3JlIHBhcm1zIGluIHByaXZhdGUgdmFycyBmb3IgdXNlIGluIGFkZF9hcmd1bWVudCIi
IgorICAgICAgICBzZWxmLl9hdHRycyA9IGF0dHJzCisgICAgICAgIHNlbGYuX3Nob3J0X29wdHMg
PSBbXQorICAgICAgICBzZWxmLl9sb25nX29wdHMgPSBbXQorICAgICAgICBzZWxmLmRlc3QgPSBh
dHRycy5nZXQoJ2Rlc3QnKQorICAgICAgICBpZiAnJWRlZmF1bHQnIGluIChhdHRycy5nZXQoJ2hl
bHAnKSBvciAnJyk6CisgICAgICAgICAgICB3YXJuaW5ncy53YXJuKAorICAgICAgICAgICAgICAg
ICdweXRlc3Qgbm93IHVzZXMgYXJncGFyc2UuICIlZGVmYXVsdCIgc2hvdWxkIGJlJworICAgICAg
ICAgICAgICAgICcgY2hhbmdlZCB0byAiJShkZWZhdWx0KXMiICcsCisgICAgICAgICAgICAgICAg
RGVwcmVjYXRpb25XYXJuaW5nLAorICAgICAgICAgICAgICAgIHN0YWNrbGV2ZWw9MykKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgdHlwID0gYXR0cnNbJ3R5cGUnXQorICAgICAgICBleGNlcHQg
S2V5RXJyb3I6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAj
IHRoaXMgbWlnaHQgcmFpc2UgYSBrZXllcnJvciBhcyB3ZWxsLCBkb24ndCB3YW50IHRvIGNhdGNo
IHRoYXQKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodHlwLCBzaXguc3RyaW5nX3R5cGVzKToK
KyAgICAgICAgICAgICAgICBpZiB0eXAgPT0gJ2Nob2ljZSc6CisgICAgICAgICAgICAgICAgICAg
IHdhcm5pbmdzLndhcm4oCisgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSBhcmd1bWVudCB0
byBhZGRvcHRpb24oKSBpcyBhIHN0cmluZyAlci4nCisgICAgICAgICAgICAgICAgICAgICAgICAn
IEZvciBwYXJzZWFyZyB0aGlzIGlzIG9wdGlvbmFsIGFuZCB3aGVuIHN1cHBsaWVkJworICAgICAg
ICAgICAgICAgICAgICAgICAgJyBzaG91bGQgYmUgYSB0eXBlLicKKyAgICAgICAgICAgICAgICAg
ICAgICAgICcgKG9wdGlvbnM6ICVzKScgJSAodHlwLCBuYW1lcyksCisgICAgICAgICAgICAgICAg
ICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICBzdGFj
a2xldmVsPTMpCisgICAgICAgICAgICAgICAgICAgICMgYXJncGFyc2UgZXhwZWN0cyBhIHR5cGUg
aGVyZSB0YWtlIGl0IGZyb20KKyAgICAgICAgICAgICAgICAgICAgIyB0aGUgdHlwZSBvZiB0aGUg
Zmlyc3QgZWxlbWVudAorICAgICAgICAgICAgICAgICAgICBhdHRyc1sndHlwZSddID0gdHlwZShh
dHRyc1snY2hvaWNlcyddWzBdKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgICAgIHdhcm5pbmdzLndhcm4oCisgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSBhcmd1
bWVudCB0byBhZGRvcHRpb24oKSBpcyBhIHN0cmluZyAlci4nCisgICAgICAgICAgICAgICAgICAg
ICAgICAnIEZvciBwYXJzZWFyZyB0aGlzIHNob3VsZCBiZSBhIHR5cGUuJworICAgICAgICAgICAg
ICAgICAgICAgICAgJyAob3B0aW9uczogJXMpJyAlICh0eXAsIG5hbWVzKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZywKKyAgICAgICAgICAgICAgICAgICAgICAg
IHN0YWNrbGV2ZWw9MykKKyAgICAgICAgICAgICAgICAgICAgYXR0cnNbJ3R5cGUnXSA9IEFyZ3Vt
ZW50Ll90eXBfbWFwW3R5cF0KKyAgICAgICAgICAgICAgICAjIHVzZWQgaW4gdGVzdF9wYXJzZW9w
dCAtPiB0ZXN0X3BhcnNlX2RlZmF1bHRnZXR0ZXIKKyAgICAgICAgICAgICAgICBzZWxmLnR5cGUg
PSBhdHRyc1sndHlwZSddCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYu
dHlwZSA9IHR5cAorICAgICAgICB0cnk6CisgICAgICAgICAgICAjIGF0dHJpYnV0ZSBleGlzdGVu
Y2UgaXMgdGVzdGVkIGluIENvbmZpZy5fcHJvY2Vzc29wdAorICAgICAgICAgICAgc2VsZi5kZWZh
dWx0ID0gYXR0cnNbJ2RlZmF1bHQnXQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAg
ICAgICBwYXNzCisgICAgICAgIHNlbGYuX3NldF9vcHRfc3RyaW5ncyhuYW1lcykKKyAgICAgICAg
aWYgbm90IHNlbGYuZGVzdDoKKyAgICAgICAgICAgIGlmIHNlbGYuX2xvbmdfb3B0czoKKyAgICAg
ICAgICAgICAgICBzZWxmLmRlc3QgPSBzZWxmLl9sb25nX29wdHNbMF1bMjpdLnJlcGxhY2UoJy0n
LCAnXycpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAg
ICAgICAgICAgICAgc2VsZi5kZXN0ID0gc2VsZi5fc2hvcnRfb3B0c1swXVsxOl0KKyAgICAgICAg
ICAgICAgICBleGNlcHQgSW5kZXhFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgQXJn
dW1lbnRFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICduZWVkIGEgbG9uZyBvciBzaG9y
dCBvcHRpb24nLCBzZWxmKQorCisgICAgZGVmIG5hbWVzKHNlbGYpOgorICAgICAgICByZXR1cm4g
c2VsZi5fc2hvcnRfb3B0cyArIHNlbGYuX2xvbmdfb3B0cworCisgICAgZGVmIGF0dHJzKHNlbGYp
OgorICAgICAgICAjIHVwZGF0ZSBhbnkgYXR0cmlidXRlcyBzZXQgYnkgcHJvY2Vzc29wdAorICAg
ICAgICBhdHRycyA9ICdkZWZhdWx0IGRlc3QgaGVscCcuc3BsaXQoKQorICAgICAgICBpZiBzZWxm
LmRlc3Q6CisgICAgICAgICAgICBhdHRycy5hcHBlbmQoc2VsZi5kZXN0KQorICAgICAgICBmb3Ig
YXR0ciBpbiBhdHRyczoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLl9h
dHRyc1thdHRyXSA9IGdldGF0dHIoc2VsZiwgYXR0cikKKyAgICAgICAgICAgIGV4Y2VwdCBBdHRy
aWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgIGlmIHNlbGYuX2F0dHJz
LmdldCgnaGVscCcpOgorICAgICAgICAgICAgYSA9IHNlbGYuX2F0dHJzWydoZWxwJ10KKyAgICAg
ICAgICAgIGEgPSBhLnJlcGxhY2UoJyVkZWZhdWx0JywgJyUoZGVmYXVsdClzJykKKyAgICAgICAg
ICAgICMgYSA9IGEucmVwbGFjZSgnJXByb2cnLCAnJShwcm9nKXMnKQorICAgICAgICAgICAgc2Vs
Zi5fYXR0cnNbJ2hlbHAnXSA9IGEKKyAgICAgICAgcmV0dXJuIHNlbGYuX2F0dHJzCisKKyAgICBk
ZWYgX3NldF9vcHRfc3RyaW5ncyhzZWxmLCBvcHRzKToKKyAgICAgICAgIiIiZGlyZWN0bHkgZnJv
bSBvcHRwYXJzZQorCisgICAgICAgIG1pZ2h0IG5vdCBiZSBuZWNlc3NhcnkgYXMgdGhpcyBpcyBw
YXNzZWQgdG8gYXJncGFyc2UgbGF0ZXIgb24iIiIKKyAgICAgICAgZm9yIG9wdCBpbiBvcHRzOgor
ICAgICAgICAgICAgaWYgbGVuKG9wdCkgPCAyOgorICAgICAgICAgICAgICAgIHJhaXNlIEFyZ3Vt
ZW50RXJyb3IoCisgICAgICAgICAgICAgICAgICAgICJpbnZhbGlkIG9wdGlvbiBzdHJpbmcgJXI6
ICIKKyAgICAgICAgICAgICAgICAgICAgIm11c3QgYmUgYXQgbGVhc3QgdHdvIGNoYXJhY3RlcnMg
bG9uZyIgJSBvcHQsIHNlbGYpCisgICAgICAgICAgICBlbGlmIGxlbihvcHQpID09IDI6CisgICAg
ICAgICAgICAgICAgaWYgbm90IChvcHRbMF0gPT0gIi0iIGFuZCBvcHRbMV0gIT0gIi0iKToKKyAg
ICAgICAgICAgICAgICAgICAgcmFpc2UgQXJndW1lbnRFcnJvcigKKyAgICAgICAgICAgICAgICAg
ICAgICAgICJpbnZhbGlkIHNob3J0IG9wdGlvbiBzdHJpbmcgJXI6ICIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICJtdXN0IGJlIG9mIHRoZSBmb3JtIC14LCAoeCBhbnkgbm9uLWRhc2ggY2hhciki
ICUgb3B0LAorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZikKKyAgICAgICAgICAgICAgICBz
ZWxmLl9zaG9ydF9vcHRzLmFwcGVuZChvcHQpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgICAgIGlmIG5vdCAob3B0WzA6Ml0gPT0gIi0tIiBhbmQgb3B0WzJdICE9ICItIik6CisgICAg
ICAgICAgICAgICAgICAgIHJhaXNlIEFyZ3VtZW50RXJyb3IoCisgICAgICAgICAgICAgICAgICAg
ICAgICAiaW52YWxpZCBsb25nIG9wdGlvbiBzdHJpbmcgJXI6ICIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICJtdXN0IHN0YXJ0IHdpdGggLS0sIGZvbGxvd2VkIGJ5IG5vbi1kYXNoIiAlIG9wdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYpCisgICAgICAgICAgICAgICAgc2VsZi5fbG9u
Z19vcHRzLmFwcGVuZChvcHQpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIGFy
Z3MgPSBbXQorICAgICAgICBpZiBzZWxmLl9zaG9ydF9vcHRzOgorICAgICAgICAgICAgYXJncyAr
PSBbJ19zaG9ydF9vcHRzOiAnICsgcmVwcihzZWxmLl9zaG9ydF9vcHRzKV0KKyAgICAgICAgaWYg
c2VsZi5fbG9uZ19vcHRzOgorICAgICAgICAgICAgYXJncyArPSBbJ19sb25nX29wdHM6ICcgKyBy
ZXByKHNlbGYuX2xvbmdfb3B0cyldCisgICAgICAgIGFyZ3MgKz0gWydkZXN0OiAnICsgcmVwcihz
ZWxmLmRlc3QpXQorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICd0eXBlJyk6CisgICAgICAgICAg
ICBhcmdzICs9IFsndHlwZTogJyArIHJlcHIoc2VsZi50eXBlKV0KKyAgICAgICAgaWYgaGFzYXR0
cihzZWxmLCAnZGVmYXVsdCcpOgorICAgICAgICAgICAgYXJncyArPSBbJ2RlZmF1bHQ6ICcgKyBy
ZXByKHNlbGYuZGVmYXVsdCldCisgICAgICAgIHJldHVybiAnQXJndW1lbnQoezB9KScuZm9ybWF0
KCcsICcuam9pbihhcmdzKSkKKworCitjbGFzcyBPcHRpb25Hcm91cDoKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgbmFtZSwgZGVzY3JpcHRpb249IiIsIHBhcnNlcj1Ob25lKToKKyAgICAgICAgc2Vs
Zi5uYW1lID0gbmFtZQorICAgICAgICBzZWxmLmRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24KKyAg
ICAgICAgc2VsZi5vcHRpb25zID0gW10KKyAgICAgICAgc2VsZi5wYXJzZXIgPSBwYXJzZXIKKwor
ICAgIGRlZiBhZGRvcHRpb24oc2VsZiwgKm9wdG5hbWVzLCAqKmF0dHJzKToKKyAgICAgICAgIiIi
IGFkZCBhbiBvcHRpb24gdG8gdGhpcyBncm91cC4KKworICAgICAgICBpZiBhIHNob3J0ZW5lZCB2
ZXJzaW9uIG9mIGEgbG9uZyBvcHRpb24gaXMgc3BlY2lmaWVkIGl0IHdpbGwKKyAgICAgICAgYmUg
c3VwcHJlc3NlZCBpbiB0aGUgaGVscC4gYWRkb3B0aW9uKCctLXR3b3dvcmRzJywgJy0tdHdvLXdv
cmRzJykKKyAgICAgICAgcmVzdWx0cyBpbiBoZWxwIHNob3dpbmcgJy0tdHdvLXdvcmRzJyBvbmx5
LCBidXQgLS10d293b3JkcyBnZXRzCisgICAgICAgIGFjY2VwdGVkICoqYW5kKiogdGhlIGF1dG9t
YXRpYyBkZXN0aW5hdGlvbiBpcyBpbiBhcmdzLnR3b3dvcmRzCisgICAgICAgICIiIgorICAgICAg
ICBjb25mbGljdCA9IHNldChvcHRuYW1lcykuaW50ZXJzZWN0aW9uKAorICAgICAgICAgICAgbmFt
ZSBmb3Igb3B0IGluIHNlbGYub3B0aW9ucyBmb3IgbmFtZSBpbiBvcHQubmFtZXMoKSkKKyAgICAg
ICAgaWYgY29uZmxpY3Q6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJvcHRpb24gbmFt
ZXMgJXMgYWxyZWFkeSBhZGRlZCIgJSBjb25mbGljdCkKKyAgICAgICAgb3B0aW9uID0gQXJndW1l
bnQoKm9wdG5hbWVzLCAqKmF0dHJzKQorICAgICAgICBzZWxmLl9hZGRvcHRpb25faW5zdGFuY2Uo
b3B0aW9uLCBzaG9ydHVwcGVyPUZhbHNlKQorCisgICAgZGVmIF9hZGRvcHRpb24oc2VsZiwgKm9w
dG5hbWVzLCAqKmF0dHJzKToKKyAgICAgICAgb3B0aW9uID0gQXJndW1lbnQoKm9wdG5hbWVzLCAq
KmF0dHJzKQorICAgICAgICBzZWxmLl9hZGRvcHRpb25faW5zdGFuY2Uob3B0aW9uLCBzaG9ydHVw
cGVyPVRydWUpCisKKyAgICBkZWYgX2FkZG9wdGlvbl9pbnN0YW5jZShzZWxmLCBvcHRpb24sIHNo
b3J0dXBwZXI9RmFsc2UpOgorICAgICAgICBpZiBub3Qgc2hvcnR1cHBlcjoKKyAgICAgICAgICAg
IGZvciBvcHQgaW4gb3B0aW9uLl9zaG9ydF9vcHRzOgorICAgICAgICAgICAgICAgIGlmIG9wdFsw
XSA9PSAnLScgYW5kIG9wdFsxXS5pc2xvd2VyKCk6CisgICAgICAgICAgICAgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoImxvd2VyY2FzZSBzaG9ydG9wdGlvbnMgcmVzZXJ2ZWQiKQorICAgICAgICBp
ZiBzZWxmLnBhcnNlcjoKKyAgICAgICAgICAgIHNlbGYucGFyc2VyLnByb2Nlc3NvcHRpb24ob3B0
aW9uKQorICAgICAgICBzZWxmLm9wdGlvbnMuYXBwZW5kKG9wdGlvbikKKworCitjbGFzcyBNeU9w
dGlvblBhcnNlcihhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcik6CisgICAgZGVmIF9faW5pdF9fKHNl
bGYsIHBhcnNlciwgZXh0cmFfaW5mbz1Ob25lKToKKyAgICAgICAgaWYgbm90IGV4dHJhX2luZm86
CisgICAgICAgICAgICBleHRyYV9pbmZvID0ge30KKyAgICAgICAgc2VsZi5fcGFyc2VyID0gcGFy
c2VyCisgICAgICAgIGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyLl9faW5pdF9fKHNlbGYsIHVzYWdl
PXBhcnNlci5fdXNhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGFkZF9oZWxwPUZhbHNlLCBmb3JtYXR0ZXJfY2xhc3M9RHJvcFNob3J0ZXJMb25nSGVscEZvcm1h
dHRlcikKKyAgICAgICAgIyBleHRyYV9pbmZvIGlzIGEgZGljdCBvZiAocGFyYW0gLT4gdmFsdWUp
IHRvIGRpc3BsYXkgaWYgdGhlcmUncworICAgICAgICAjIGFuIHVzYWdlIGVycm9yIHRvIHByb3Zp
ZGUgbW9yZSBjb250ZXh0dWFsIGluZm9ybWF0aW9uIHRvIHRoZSB1c2VyCisgICAgICAgIHNlbGYu
ZXh0cmFfaW5mbyA9IGV4dHJhX2luZm8KKworICAgIGRlZiBwYXJzZV9hcmdzKHNlbGYsIGFyZ3M9
Tm9uZSwgbmFtZXNwYWNlPU5vbmUpOgorICAgICAgICAiIiJhbGxvdyBzcGxpdHRpbmcgb2YgcG9z
aXRpb25hbCBhcmd1bWVudHMiIiIKKyAgICAgICAgYXJncywgYXJndiA9IHNlbGYucGFyc2Vfa25v
d25fYXJncyhhcmdzLCBuYW1lc3BhY2UpCisgICAgICAgIGlmIGFyZ3Y6CisgICAgICAgICAgICBm
b3IgYXJnIGluIGFyZ3Y6CisgICAgICAgICAgICAgICAgaWYgYXJnIGFuZCBhcmdbMF0gPT0gJy0n
OgorICAgICAgICAgICAgICAgICAgICBsaW5lcyA9IFsndW5yZWNvZ25pemVkIGFyZ3VtZW50czog
JXMnICUgKCcgJy5qb2luKGFyZ3YpKV0KKyAgICAgICAgICAgICAgICAgICAgZm9yIGssIHYgaW4g
c29ydGVkKHNlbGYuZXh0cmFfaW5mby5pdGVtcygpKToKKyAgICAgICAgICAgICAgICAgICAgICAg
IGxpbmVzLmFwcGVuZCgnICAlczogJXMnICUgKGssIHYpKQorICAgICAgICAgICAgICAgICAgICBz
ZWxmLmVycm9yKCdcbicuam9pbihsaW5lcykpCisgICAgICAgICAgICBnZXRhdHRyKGFyZ3MsIEZJ
TEVfT1JfRElSKS5leHRlbmQoYXJndikKKyAgICAgICAgcmV0dXJuIGFyZ3MKKworCitjbGFzcyBE
cm9wU2hvcnRlckxvbmdIZWxwRm9ybWF0dGVyKGFyZ3BhcnNlLkhlbHBGb3JtYXR0ZXIpOgorICAg
ICIiInNob3J0ZW4gaGVscCBmb3IgbG9uZyBvcHRpb25zIHRoYXQgZGlmZmVyIG9ubHkgaW4gZXh0
cmEgaHlwaGVucworCisgICAgLSBjb2xsYXBzZSAqKmxvbmcqKiBvcHRpb25zIHRoYXQgYXJlIHRo
ZSBzYW1lIGV4Y2VwdCBmb3IgZXh0cmEgaHlwaGVucworICAgIC0gc3BlY2lhbCBhY3Rpb24gYXR0
cmlidXRlIG1hcF9sb25nX29wdGlvbiBhbGxvd3Mgc3VycHJlc3NpbmcgYWRkaXRpb25hbAorICAg
ICAgbG9uZyBvcHRpb25zCisgICAgLSBzaG9ydGN1dCBpZiB0aGVyZSBhcmUgb25seSB0d28gb3B0
aW9ucyBhbmQgb25lIG9mIHRoZW0gaXMgYSBzaG9ydCBvbmUKKyAgICAtIGNhY2hlIHJlc3VsdCBv
biBhY3Rpb24gb2JqZWN0IGFzIHRoaXMgaXMgY2FsbGVkIGF0IGxlYXN0IDIgdGltZXMKKyAgICAi
IiIKKworICAgIGRlZiBfZm9ybWF0X2FjdGlvbl9pbnZvY2F0aW9uKHNlbGYsIGFjdGlvbik6Cisg
ICAgICAgIG9yZ3N0ciA9IGFyZ3BhcnNlLkhlbHBGb3JtYXR0ZXIuX2Zvcm1hdF9hY3Rpb25faW52
b2NhdGlvbihzZWxmLCBhY3Rpb24pCisgICAgICAgIGlmIG9yZ3N0ciBhbmQgb3Jnc3RyWzBdICE9
ICctJzogICMgb25seSBvcHRpb25hbCBhcmd1bWVudHMKKyAgICAgICAgICAgIHJldHVybiBvcmdz
dHIKKyAgICAgICAgcmVzID0gZ2V0YXR0cihhY3Rpb24sICdfZm9ybWF0dGVkX2FjdGlvbl9pbnZv
Y2F0aW9uJywgTm9uZSkKKyAgICAgICAgaWYgcmVzOgorICAgICAgICAgICAgcmV0dXJuIHJlcwor
ICAgICAgICBvcHRpb25zID0gb3Jnc3RyLnNwbGl0KCcsICcpCisgICAgICAgIGlmIGxlbihvcHRp
b25zKSA9PSAyIGFuZCAobGVuKG9wdGlvbnNbMF0pID09IDIgb3IgbGVuKG9wdGlvbnNbMV0pID09
IDIpOgorICAgICAgICAgICAgIyBhIHNob3J0Y3V0IGZvciAnLWgsIC0taGVscCcgb3IgJy0tYWJj
JywgJy1hJworICAgICAgICAgICAgYWN0aW9uLl9mb3JtYXR0ZWRfYWN0aW9uX2ludm9jYXRpb24g
PSBvcmdzdHIKKyAgICAgICAgICAgIHJldHVybiBvcmdzdHIKKyAgICAgICAgcmV0dXJuX2xpc3Qg
PSBbXQorICAgICAgICBvcHRpb25fbWFwID0gZ2V0YXR0cihhY3Rpb24sICdtYXBfbG9uZ19vcHRp
b24nLCB7fSkKKyAgICAgICAgaWYgb3B0aW9uX21hcCBpcyBOb25lOgorICAgICAgICAgICAgb3B0
aW9uX21hcCA9IHt9CisgICAgICAgIHNob3J0X2xvbmcgPSB7fQorICAgICAgICBmb3Igb3B0aW9u
IGluIG9wdGlvbnM6CisgICAgICAgICAgICBpZiBsZW4ob3B0aW9uKSA9PSAyIG9yIG9wdGlvblsy
XSA9PSAnICc6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIG5vdCBv
cHRpb24uc3RhcnRzd2l0aCgnLS0nKToKKyAgICAgICAgICAgICAgICByYWlzZSBBcmd1bWVudEVy
cm9yKCdsb25nIG9wdGlvbmFsIGFyZ3VtZW50IHdpdGhvdXQgIi0tIjogWyVzXScKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKG9wdGlvbiksIHNlbGYpCisgICAgICAgICAg
ICB4eG9wdGlvbiA9IG9wdGlvblsyOl0KKyAgICAgICAgICAgIGlmIHh4b3B0aW9uLnNwbGl0KClb
MF0gbm90IGluIG9wdGlvbl9tYXA6CisgICAgICAgICAgICAgICAgc2hvcnRlbmVkID0geHhvcHRp
b24ucmVwbGFjZSgnLScsICcnKQorICAgICAgICAgICAgICAgIGlmIHNob3J0ZW5lZCBub3QgaW4g
c2hvcnRfbG9uZyBvciBcCisgICAgICAgICAgICAgICAgICAgbGVuKHNob3J0X2xvbmdbc2hvcnRl
bmVkXSkgPCBsZW4oeHhvcHRpb24pOgorICAgICAgICAgICAgICAgICAgICBzaG9ydF9sb25nW3No
b3J0ZW5lZF0gPSB4eG9wdGlvbgorICAgICAgICAjIG5vdyBzaG9ydF9sb25nIGhhcyBiZWVuIGZp
bGxlZCBvdXQgdG8gdGhlIGxvbmdlc3Qgd2l0aCBkYXNoZXMKKyAgICAgICAgIyAqKmFuZCoqIHdl
IGtlZXAgdGhlIHJpZ2h0IG9wdGlvbiBvcmRlcmluZyBmcm9tIGFkZF9hcmd1bWVudAorICAgICAg
ICBmb3Igb3B0aW9uIGluIG9wdGlvbnM6CisgICAgICAgICAgICBpZiBsZW4ob3B0aW9uKSA9PSAy
IG9yIG9wdGlvblsyXSA9PSAnICc6CisgICAgICAgICAgICAgICAgcmV0dXJuX2xpc3QuYXBwZW5k
KG9wdGlvbikKKyAgICAgICAgICAgIGlmIG9wdGlvblsyOl0gPT0gc2hvcnRfbG9uZy5nZXQob3B0
aW9uLnJlcGxhY2UoJy0nLCAnJykpOgorICAgICAgICAgICAgICAgIHJldHVybl9saXN0LmFwcGVu
ZChvcHRpb24ucmVwbGFjZSgnICcsICc9JywgMSkpCisgICAgICAgIGFjdGlvbi5fZm9ybWF0dGVk
X2FjdGlvbl9pbnZvY2F0aW9uID0gJywgJy5qb2luKHJldHVybl9saXN0KQorICAgICAgICByZXR1
cm4gYWN0aW9uLl9mb3JtYXR0ZWRfYWN0aW9uX2ludm9jYXRpb24KKworCitkZWYgX2Vuc3VyZV9y
ZW1vdmVkX3N5c21vZHVsZShtb2RuYW1lKToKKyAgICB0cnk6CisgICAgICAgIGRlbCBzeXMubW9k
dWxlc1ttb2RuYW1lXQorICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgcGFzcworCisKK2Ns
YXNzIENtZE9wdGlvbnMob2JqZWN0KToKKyAgICAiIiIgaG9sZHMgY21kbGluZSBvcHRpb25zIGFz
IGF0dHJpYnV0ZXMuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdmFsdWVzPSgpKToKKyAg
ICAgICAgc2VsZi5fX2RpY3RfXy51cGRhdGUodmFsdWVzKQorCisgICAgZGVmIF9fcmVwcl9fKHNl
bGYpOgorICAgICAgICByZXR1cm4gIjxDbWRPcHRpb25zICVyPiIgJSAoc2VsZi5fX2RpY3RfXywp
CisKKyAgICBkZWYgY29weShzZWxmKToKKyAgICAgICAgcmV0dXJuIENtZE9wdGlvbnMoc2VsZi5f
X2RpY3RfXykKKworCitjbGFzcyBOb3RzZXQ6CisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAg
ICAgICByZXR1cm4gIjxOT1RTRVQ+IgorCisKK25vdHNldCA9IE5vdHNldCgpCitGSUxFX09SX0RJ
UiA9ICdmaWxlX29yX2RpcicKKworCitkZWYgX2l0ZXJfcmV3cml0YWJsZV9tb2R1bGVzKHBhY2th
Z2VfZmlsZXMpOgorICAgIGZvciBmbiBpbiBwYWNrYWdlX2ZpbGVzOgorICAgICAgICBpc19zaW1w
bGVfbW9kdWxlID0gJy8nIG5vdCBpbiBmbiBhbmQgZm4uZW5kc3dpdGgoJy5weScpCisgICAgICAg
IGlzX3BhY2thZ2UgPSBmbi5jb3VudCgnLycpID09IDEgYW5kIGZuLmVuZHN3aXRoKCdfX2luaXRf
Xy5weScpCisgICAgICAgIGlmIGlzX3NpbXBsZV9tb2R1bGU6CisgICAgICAgICAgICBtb2R1bGVf
bmFtZSwgXyA9IG9zLnBhdGguc3BsaXRleHQoZm4pCisgICAgICAgICAgICB5aWVsZCBtb2R1bGVf
bmFtZQorICAgICAgICBlbGlmIGlzX3BhY2thZ2U6CisgICAgICAgICAgICBwYWNrYWdlX25hbWUg
PSBvcy5wYXRoLmRpcm5hbWUoZm4pCisgICAgICAgICAgICB5aWVsZCBwYWNrYWdlX25hbWUKKwor
CitjbGFzcyBDb25maWcob2JqZWN0KToKKyAgICAiIiIgYWNjZXNzIHRvIGNvbmZpZ3VyYXRpb24g
dmFsdWVzLCBwbHVnaW5tYW5hZ2VyIGFuZCBwbHVnaW4gaG9va3MuICAiIiIKKworICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBwbHVnaW5tYW5hZ2VyKToKKyAgICAgICAgIzogYWNjZXNzIHRvIGNvbW1h
bmQgbGluZSBvcHRpb24gYXMgYXR0cmlidXRlcy4KKyAgICAgICAgIzogKGRlcHJlY2F0ZWQpLCB1
c2UgOnB5OmZ1bmM6YGdldG9wdGlvbigpIDxfcHl0ZXN0LmNvbmZpZy5Db25maWcuZ2V0b3B0aW9u
PmAgaW5zdGVhZAorICAgICAgICBzZWxmLm9wdGlvbiA9IENtZE9wdGlvbnMoKQorICAgICAgICBf
YSA9IEZJTEVfT1JfRElSCisgICAgICAgIHNlbGYuX3BhcnNlciA9IFBhcnNlcigKKyAgICAgICAg
ICAgIHVzYWdlPSIlJShwcm9nKXMgW29wdGlvbnNdIFslc10gWyVzXSBbLi4uXSIgJSAoX2EsIF9h
KSwKKyAgICAgICAgICAgIHByb2Nlc3NvcHQ9c2VsZi5fcHJvY2Vzc29wdCwKKyAgICAgICAgKQor
ICAgICAgICAjOiBhIHBsdWdpbm1hbmFnZXIgaW5zdGFuY2UKKyAgICAgICAgc2VsZi5wbHVnaW5t
YW5hZ2VyID0gcGx1Z2lubWFuYWdlcgorICAgICAgICBzZWxmLnRyYWNlID0gc2VsZi5wbHVnaW5t
YW5hZ2VyLnRyYWNlLnJvb3QuZ2V0KCJjb25maWciKQorICAgICAgICBzZWxmLmhvb2sgPSBzZWxm
LnBsdWdpbm1hbmFnZXIuaG9vaworICAgICAgICBzZWxmLl9pbmljYWNoZSA9IHt9CisgICAgICAg
IHNlbGYuX292ZXJyaWRlX2luaSA9ICgpCisgICAgICAgIHNlbGYuX29wdDJkZXN0ID0ge30KKyAg
ICAgICAgc2VsZi5fY2xlYW51cCA9IFtdCisgICAgICAgIHNlbGYuX3dhcm4gPSBzZWxmLnBsdWdp
bm1hbmFnZXIuX3dhcm4KKyAgICAgICAgc2VsZi5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKHNlbGYs
ICJweXRlc3Rjb25maWciKQorICAgICAgICBzZWxmLl9jb25maWd1cmVkID0gRmFsc2UKKworICAg
ICAgICBkZWYgZG9fc2V0bnMoZGljKToKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAg
ICAgICAgIHNldG5zKHB5dGVzdCwgZGljKQorCisgICAgICAgIHNlbGYuaG9vay5weXRlc3RfbmFt
ZXNwYWNlLmNhbGxfaGlzdG9yaWMoZG9fc2V0bnMsIHt9KQorICAgICAgICBzZWxmLmhvb2sucHl0
ZXN0X2FkZG9wdGlvbi5jYWxsX2hpc3RvcmljKGt3YXJncz1kaWN0KHBhcnNlcj1zZWxmLl9wYXJz
ZXIpKQorCisgICAgZGVmIGFkZF9jbGVhbnVwKHNlbGYsIGZ1bmMpOgorICAgICAgICAiIiIgQWRk
IGEgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIGNvbmZpZyBvYmplY3QgZ2V0cyBvdXQg
b2YKKyAgICAgICAgdXNlICh1c3VhbGx5IGNvbmluY2lkaW5nIHdpdGggcHl0ZXN0X3VuY29uZmln
dXJlKS4iIiIKKyAgICAgICAgc2VsZi5fY2xlYW51cC5hcHBlbmQoZnVuYykKKworICAgIGRlZiBf
ZG9fY29uZmlndXJlKHNlbGYpOgorICAgICAgICBhc3NlcnQgbm90IHNlbGYuX2NvbmZpZ3VyZWQK
KyAgICAgICAgc2VsZi5fY29uZmlndXJlZCA9IFRydWUKKyAgICAgICAgc2VsZi5ob29rLnB5dGVz
dF9jb25maWd1cmUuY2FsbF9oaXN0b3JpYyhrd2FyZ3M9ZGljdChjb25maWc9c2VsZikpCisKKyAg
ICBkZWYgX2Vuc3VyZV91bmNvbmZpZ3VyZShzZWxmKToKKyAgICAgICAgaWYgc2VsZi5fY29uZmln
dXJlZDoKKyAgICAgICAgICAgIHNlbGYuX2NvbmZpZ3VyZWQgPSBGYWxzZQorICAgICAgICAgICAg
c2VsZi5ob29rLnB5dGVzdF91bmNvbmZpZ3VyZShjb25maWc9c2VsZikKKyAgICAgICAgICAgIHNl
bGYuaG9vay5weXRlc3RfY29uZmlndXJlLl9jYWxsX2hpc3RvcnkgPSBbXQorICAgICAgICB3aGls
ZSBzZWxmLl9jbGVhbnVwOgorICAgICAgICAgICAgZmluID0gc2VsZi5fY2xlYW51cC5wb3AoKQor
ICAgICAgICAgICAgZmluKCkKKworICAgIGRlZiB3YXJuKHNlbGYsIGNvZGUsIG1lc3NhZ2UsIGZz
bG9jYXRpb249Tm9uZSwgbm9kZWlkPU5vbmUpOgorICAgICAgICAiIiIgZ2VuZXJhdGUgYSB3YXJu
aW5nIGZvciB0aGlzIHRlc3Qgc2Vzc2lvbi4gIiIiCisgICAgICAgIHNlbGYuaG9vay5weXRlc3Rf
bG9nd2FybmluZy5jYWxsX2hpc3RvcmljKGt3YXJncz1kaWN0KAorICAgICAgICAgICAgY29kZT1j
b2RlLCBtZXNzYWdlPW1lc3NhZ2UsCisgICAgICAgICAgICBmc2xvY2F0aW9uPWZzbG9jYXRpb24s
IG5vZGVpZD1ub2RlaWQpKQorCisgICAgZGVmIGdldF90ZXJtaW5hbF93cml0ZXIoc2VsZik6Cisg
ICAgICAgIHJldHVybiBzZWxmLnBsdWdpbm1hbmFnZXIuZ2V0X3BsdWdpbigidGVybWluYWxyZXBv
cnRlciIpLl90dworCisgICAgZGVmIHB5dGVzdF9jbWRsaW5lX3BhcnNlKHNlbGYsIHBsdWdpbm1h
bmFnZXIsIGFyZ3MpOgorICAgICAgICAjIFJFRjEgYXNzZXJ0IHNlbGYgPT0gcGx1Z2lubWFuYWdl
ci5jb25maWcsIChzZWxmLCBwbHVnaW5tYW5hZ2VyLmNvbmZpZykKKyAgICAgICAgc2VsZi5wYXJz
ZShhcmdzKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIG5vdGlmeV9leGNlcHRpb24o
c2VsZiwgZXhjaW5mbywgb3B0aW9uPU5vbmUpOgorICAgICAgICBpZiBvcHRpb24gYW5kIG9wdGlv
bi5mdWxsdHJhY2U6CisgICAgICAgICAgICBzdHlsZSA9ICJsb25nIgorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgc3R5bGUgPSAibmF0aXZlIgorICAgICAgICBleGNyZXByID0gZXhjaW5mby5n
ZXRyZXByKGZ1bmNhcmdzPVRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2hvd2xvY2Fscz1nZXRhdHRyKG9wdGlvbiwgJ3Nob3dsb2NhbHMnLCBGYWxzZSksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9c3R5bGUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKQorICAgICAgICByZXMgPSBzZWxmLmhvb2sucHl0ZXN0X2ludGVy
bmFsZXJyb3IoZXhjcmVwcj1leGNyZXByLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZXhjaW5mbz1leGNpbmZvKQorICAgICAgICBpZiBub3QgYW55KHJlcyk6
CisgICAgICAgICAgICBmb3IgbGluZSBpbiBzdHIoZXhjcmVwcikuc3BsaXQoIlxuIik6CisgICAg
ICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiSU5URVJOQUxFUlJPUj4gJXNcbiIgJSBsaW5l
KQorICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIuZmx1c2goKQorCisgICAgZGVmIGN3ZF9yZWxh
dGl2ZV9ub2RlaWQoc2VsZiwgbm9kZWlkKToKKyAgICAgICAgIyBub2RlaWQncyBhcmUgcmVsYXRp
dmUgdG8gdGhlIHJvb3RwYXRoLCBjb21wdXRlIHJlbGF0aXZlIHRvIGN3ZAorICAgICAgICBpZiBz
ZWxmLmludm9jYXRpb25fZGlyICE9IHNlbGYucm9vdGRpcjoKKyAgICAgICAgICAgIGZ1bGxwYXRo
ID0gc2VsZi5yb290ZGlyLmpvaW4obm9kZWlkKQorICAgICAgICAgICAgbm9kZWlkID0gc2VsZi5p
bnZvY2F0aW9uX2Rpci5iZXN0cmVscGF0aChmdWxscGF0aCkKKyAgICAgICAgcmV0dXJuIG5vZGVp
ZAorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGZyb21kaWN0YXJncyhjbHMsIG9wdGlvbl9k
aWN0LCBhcmdzKToKKyAgICAgICAgIiIiIGNvbnN0cnVjdG9yIHVzZWFibGUgZm9yIHN1YnByb2Nl
c3Nlcy4gIiIiCisgICAgICAgIGNvbmZpZyA9IGdldF9jb25maWcoKQorICAgICAgICBjb25maWcu
b3B0aW9uLl9fZGljdF9fLnVwZGF0ZShvcHRpb25fZGljdCkKKyAgICAgICAgY29uZmlnLnBhcnNl
KGFyZ3MsIGFkZG9wdHM9RmFsc2UpCisgICAgICAgIGZvciB4IGluIGNvbmZpZy5vcHRpb24ucGx1
Z2luczoKKyAgICAgICAgICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2VyLmNvbnNpZGVyX3BsdWdpbmFy
Zyh4KQorICAgICAgICByZXR1cm4gY29uZmlnCisKKyAgICBkZWYgX3Byb2Nlc3NvcHQoc2VsZiwg
b3B0KToKKyAgICAgICAgZm9yIG5hbWUgaW4gb3B0Ll9zaG9ydF9vcHRzICsgb3B0Ll9sb25nX29w
dHM6CisgICAgICAgICAgICBzZWxmLl9vcHQyZGVzdFtuYW1lXSA9IG9wdC5kZXN0CisKKyAgICAg
ICAgaWYgaGFzYXR0cihvcHQsICdkZWZhdWx0JykgYW5kIG9wdC5kZXN0OgorICAgICAgICAgICAg
aWYgbm90IGhhc2F0dHIoc2VsZi5vcHRpb24sIG9wdC5kZXN0KToKKyAgICAgICAgICAgICAgICBz
ZXRhdHRyKHNlbGYub3B0aW9uLCBvcHQuZGVzdCwgb3B0LmRlZmF1bHQpCisKKyAgICBAaG9va2lt
cGwodHJ5bGFzdD1UcnVlKQorICAgIGRlZiBweXRlc3RfbG9hZF9pbml0aWFsX2NvbmZ0ZXN0cyhz
ZWxmLCBlYXJseV9jb25maWcpOgorICAgICAgICBzZWxmLnBsdWdpbm1hbmFnZXIuX3NldF9pbml0
aWFsX2NvbmZ0ZXN0cyhlYXJseV9jb25maWcua25vd25fYXJnc19uYW1lc3BhY2UpCisKKyAgICBk
ZWYgX2luaXRpbmkoc2VsZiwgYXJncyk6CisgICAgICAgIG5zLCB1bmtub3duX2FyZ3MgPSBzZWxm
Ll9wYXJzZXIucGFyc2Vfa25vd25fYW5kX3Vua25vd25fYXJncyhhcmdzLCBuYW1lc3BhY2U9c2Vs
Zi5vcHRpb24uY29weSgpKQorICAgICAgICByID0gZGV0ZXJtaW5lX3NldHVwKG5zLmluaWZpbGVu
YW1lLCBucy5maWxlX29yX2RpciArIHVua25vd25fYXJncywgd2FybmZ1bmM9c2VsZi53YXJuKQor
ICAgICAgICBzZWxmLnJvb3RkaXIsIHNlbGYuaW5pZmlsZSwgc2VsZi5pbmljZmcgPSByCisgICAg
ICAgIHNlbGYuX3BhcnNlci5leHRyYV9pbmZvWydyb290ZGlyJ10gPSBzZWxmLnJvb3RkaXIKKyAg
ICAgICAgc2VsZi5fcGFyc2VyLmV4dHJhX2luZm9bJ2luaWZpbGUnXSA9IHNlbGYuaW5pZmlsZQor
ICAgICAgICBzZWxmLmludm9jYXRpb25fZGlyID0gcHkucGF0aC5sb2NhbCgpCisgICAgICAgIHNl
bGYuX3BhcnNlci5hZGRpbmkoJ2FkZG9wdHMnLCAnZXh0cmEgY29tbWFuZCBsaW5lIG9wdGlvbnMn
LCAnYXJncycpCisgICAgICAgIHNlbGYuX3BhcnNlci5hZGRpbmkoJ21pbnZlcnNpb24nLCAnbWlu
aW1hbGx5IHJlcXVpcmVkIHB5dGVzdCB2ZXJzaW9uJykKKyAgICAgICAgc2VsZi5fb3ZlcnJpZGVf
aW5pID0gbnMub3ZlcnJpZGVfaW5pIG9yICgpCisKKyAgICBkZWYgX2NvbnNpZGVyX2ltcG9ydGhv
b2soc2VsZiwgYXJncyk6CisgICAgICAgICIiIkluc3RhbGwgdGhlIFBFUCAzMDIgaW1wb3J0IGhv
b2sgaWYgdXNpbmcgYXNzZXJ0aW9uIHJld3JpdGluZy4KKworICAgICAgICBOZWVkcyB0byBwYXJz
ZSB0aGUgLS1hc3NlcnQ9PG1vZGU+IG9wdGlvbiBmcm9tIHRoZSBjb21tYW5kbGluZQorICAgICAg
ICBhbmQgZmluZCBhbGwgdGhlIGluc3RhbGxlZCBwbHVnaW5zIHRvIG1hcmsgdGhlbSBmb3IgcmV3
cml0aW5nCisgICAgICAgIGJ5IHRoZSBpbXBvcnRob29rLgorICAgICAgICAiIiIKKyAgICAgICAg
bnMsIHVua25vd25fYXJncyA9IHNlbGYuX3BhcnNlci5wYXJzZV9rbm93bl9hbmRfdW5rbm93bl9h
cmdzKGFyZ3MpCisgICAgICAgIG1vZGUgPSBucy5hc3NlcnRtb2RlCisgICAgICAgIGlmIG1vZGUg
PT0gJ3Jld3JpdGUnOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGhvb2sgPSBf
cHl0ZXN0LmFzc2VydGlvbi5pbnN0YWxsX2ltcG9ydGhvb2soc2VsZikKKyAgICAgICAgICAgIGV4
Y2VwdCBTeXN0ZW1FcnJvcjoKKyAgICAgICAgICAgICAgICBtb2RlID0gJ3BsYWluJworICAgICAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLl9tYXJrX3BsdWdpbnNfZm9yX3Jld3Jp
dGUoaG9vaykKKyAgICAgICAgc2VsZi5fd2Fybl9hYm91dF9taXNzaW5nX2Fzc2VydGlvbihtb2Rl
KQorCisgICAgZGVmIF9tYXJrX3BsdWdpbnNfZm9yX3Jld3JpdGUoc2VsZiwgaG9vayk6CisgICAg
ICAgICIiIgorICAgICAgICBHaXZlbiBhbiBpbXBvcnRob29rLCBtYXJrIGZvciByZXdyaXRlIGFu
eSB0b3AtbGV2ZWwKKyAgICAgICAgbW9kdWxlcyBvciBwYWNrYWdlcyBpbiB0aGUgZGlzdHJpYnV0
aW9uIHBhY2thZ2UgZm9yCisgICAgICAgIGFsbCBweXRlc3QgcGx1Z2lucy4KKyAgICAgICAgIiIi
CisgICAgICAgIGltcG9ydCBwa2dfcmVzb3VyY2VzCisgICAgICAgIHNlbGYucGx1Z2lubWFuYWdl
ci5yZXdyaXRlX2hvb2sgPSBob29rCisKKyAgICAgICAgIyAnUkVDT1JEJyBhdmFpbGFibGUgZm9y
IHBsdWdpbnMgaW5zdGFsbGVkIG5vcm1hbGx5IChwaXAgaW5zdGFsbCkKKyAgICAgICAgIyAnU09V
UkNFUy50eHQnIGF2YWlsYWJsZSBmb3IgcGx1Z2lucyBpbnN0YWxsZWQgaW4gZGV2IG1vZGUgKHBp
cCBpbnN0YWxsIC1lKQorICAgICAgICAjIGZvciBpbnN0YWxsZWQgcGx1Z2lucyAnU09VUkNFUy50
eHQnIHJldHVybnMgYW4gZW1wdHkgbGlzdCwgYW5kIHZpY2UtdmVyc2EKKyAgICAgICAgIyBzbyBp
dCBzaG91bGRuJ3QgYmUgYW4gaXNzdWUKKyAgICAgICAgbWV0YWRhdGFfZmlsZXMgPSAnUkVDT1JE
JywgJ1NPVVJDRVMudHh0JworCisgICAgICAgIHBhY2thZ2VfZmlsZXMgPSAoCisgICAgICAgICAg
ICBlbnRyeS5zcGxpdCgnLCcpWzBdCisgICAgICAgICAgICBmb3IgZW50cnlwb2ludCBpbiBwa2df
cmVzb3VyY2VzLml0ZXJfZW50cnlfcG9pbnRzKCdweXRlc3QxMScpCisgICAgICAgICAgICBmb3Ig
bWV0YWRhdGEgaW4gbWV0YWRhdGFfZmlsZXMKKyAgICAgICAgICAgIGZvciBlbnRyeSBpbiBlbnRy
eXBvaW50LmRpc3QuX2dldF9tZXRhZGF0YShtZXRhZGF0YSkKKyAgICAgICAgKQorCisgICAgICAg
IGZvciBuYW1lIGluIF9pdGVyX3Jld3JpdGFibGVfbW9kdWxlcyhwYWNrYWdlX2ZpbGVzKToKKyAg
ICAgICAgICAgIGhvb2subWFya19yZXdyaXRlKG5hbWUpCisKKyAgICBkZWYgX3dhcm5fYWJvdXRf
bWlzc2luZ19hc3NlcnRpb24oc2VsZiwgbW9kZSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IGFzc2VydCBGYWxzZQorICAgICAgICBleGNlcHQgQXNzZXJ0aW9uRXJyb3I6CisgICAgICAgICAg
ICBwYXNzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBtb2RlID09ICdwbGFpbic6Cisg
ICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiV0FSTklORzogQVNTRVJUSU9OUyBBUkUg
Tk9UIEVYRUNVVEVEIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBhbmQgRkFJ
TElORyBURVNUUyBXSUxMIFBBU1MuICBBcmUgeW91IgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIiB1c2luZyBweXRob24gLU8/IikKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiV0FSTklORzogYXNzZXJ0aW9ucyBub3QgaW4gdGVz
dCBtb2R1bGVzIG9yIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBwbHVnaW5z
IHdpbGwgYmUgaWdub3JlZCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgYmVj
YXVzZSBhc3NlcnQgc3RhdGVtZW50cyBhcmUgbm90IGV4ZWN1dGVkICIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJieSB0aGUgdW5kZXJseWluZyBQeXRob24gaW50ZXJwcmV0ZXIg
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIihhcmUgeW91IHVzaW5nIHB5dGhv
biAtTz8pXG4iKQorCisgICAgZGVmIF9wcmVwYXJzZShzZWxmLCBhcmdzLCBhZGRvcHRzPVRydWUp
OgorICAgICAgICBpZiBhZGRvcHRzOgorICAgICAgICAgICAgYXJnc1s6XSA9IHNobGV4LnNwbGl0
KG9zLmVudmlyb24uZ2V0KCdQWVRFU1RfQURET1BUUycsICcnKSkgKyBhcmdzCisgICAgICAgIHNl
bGYuX2luaXRpbmkoYXJncykKKyAgICAgICAgaWYgYWRkb3B0czoKKyAgICAgICAgICAgIGFyZ3Nb
Ol0gPSBzZWxmLmdldGluaSgiYWRkb3B0cyIpICsgYXJncworICAgICAgICBzZWxmLl9jaGVja3Zl
cnNpb24oKQorICAgICAgICBzZWxmLl9jb25zaWRlcl9pbXBvcnRob29rKGFyZ3MpCisgICAgICAg
IHNlbGYucGx1Z2lubWFuYWdlci5jb25zaWRlcl9wcmVwYXJzZShhcmdzKQorICAgICAgICBzZWxm
LnBsdWdpbm1hbmFnZXIubG9hZF9zZXR1cHRvb2xzX2VudHJ5cG9pbnRzKCdweXRlc3QxMScpCisg
ICAgICAgIHNlbGYucGx1Z2lubWFuYWdlci5jb25zaWRlcl9lbnYoKQorICAgICAgICBzZWxmLmtu
b3duX2FyZ3NfbmFtZXNwYWNlID0gbnMgPSBzZWxmLl9wYXJzZXIucGFyc2Vfa25vd25fYXJncyhh
cmdzLCBuYW1lc3BhY2U9c2VsZi5vcHRpb24uY29weSgpKQorICAgICAgICBpZiBzZWxmLmtub3du
X2FyZ3NfbmFtZXNwYWNlLmNvbmZjdXRkaXIgaXMgTm9uZSBhbmQgc2VsZi5pbmlmaWxlOgorICAg
ICAgICAgICAgY29uZmN1dGRpciA9IHB5LnBhdGgubG9jYWwoc2VsZi5pbmlmaWxlKS5kaXJuYW1l
CisgICAgICAgICAgICBzZWxmLmtub3duX2FyZ3NfbmFtZXNwYWNlLmNvbmZjdXRkaXIgPSBjb25m
Y3V0ZGlyCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuaG9vay5weXRlc3RfbG9hZF9p
bml0aWFsX2NvbmZ0ZXN0cyhlYXJseV9jb25maWc9c2VsZiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPWFyZ3MsIHBhcnNlcj1zZWxmLl9w
YXJzZXIpCisgICAgICAgIGV4Y2VwdCBDb25mdGVzdEltcG9ydEZhaWx1cmU6CisgICAgICAgICAg
ICBlID0gc3lzLmV4Y19pbmZvKClbMV0KKyAgICAgICAgICAgIGlmIG5zLmhlbHAgb3IgbnMudmVy
c2lvbjoKKyAgICAgICAgICAgICAgICAjIHdlIGRvbid0IHdhbnQgdG8gcHJldmVudCAtLWhlbHAv
LS12ZXJzaW9uIHRvIHdvcmsKKyAgICAgICAgICAgICAgICAjIHNvIGp1c3QgbGV0IGlzIHBhc3Mg
YW5kIHByaW50IGEgd2FybmluZyBhdCB0aGUgZW5kCisgICAgICAgICAgICAgICAgc2VsZi5fd2Fy
bigiY291bGQgbm90IGxvYWQgaW5pdGlhbCBjb25mdGVzdHMgKCVzKVxuIiAlIGUucGF0aCkKKyAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UKKworICAgIGRlZiBfY2hlY2t2
ZXJzaW9uKHNlbGYpOgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIG1pbnZlciA9IHNl
bGYuaW5pY2ZnLmdldCgnbWludmVyc2lvbicsIE5vbmUpCisgICAgICAgIGlmIG1pbnZlcjoKKyAg
ICAgICAgICAgIHZlciA9IG1pbnZlci5zcGxpdCgiLiIpCisgICAgICAgICAgICBteXZlciA9IHB5
dGVzdC5fX3ZlcnNpb25fXy5zcGxpdCgiLiIpCisgICAgICAgICAgICBpZiBteXZlciA8IHZlcjoK
KyAgICAgICAgICAgICAgICByYWlzZSBweXRlc3QuVXNhZ2VFcnJvcigKKyAgICAgICAgICAgICAg
ICAgICAgIiVzOiVkOiByZXF1aXJlcyBweXRlc3QtJXMsIGFjdHVhbCBweXRlc3QtJXMnIiAlICgK
KyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaW5pY2ZnLmNvbmZpZy5wYXRoLCBzZWxmLmlu
aWNmZy5saW5lb2YoJ21pbnZlcnNpb24nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1pbnZl
ciwgcHl0ZXN0Ll9fdmVyc2lvbl9fKSkKKworICAgIGRlZiBwYXJzZShzZWxmLCBhcmdzLCBhZGRv
cHRzPVRydWUpOgorICAgICAgICAjIHBhcnNlIGdpdmVuIGNtZGxpbmUgYXJndW1lbnRzIGludG8g
dGhpcyBjb25maWcgb2JqZWN0LgorICAgICAgICBhc3NlcnQgbm90IGhhc2F0dHIoc2VsZiwgJ2Fy
Z3MnKSwgKAorICAgICAgICAgICAgImNhbiBvbmx5IHBhcnNlIGNtZGxpbmUgYXJncyBhdCBtb3N0
IG9uY2UgcGVyIENvbmZpZyBvYmplY3QiKQorICAgICAgICBzZWxmLl9vcmlnYXJncyA9IGFyZ3MK
KyAgICAgICAgc2VsZi5ob29rLnB5dGVzdF9hZGRob29rcy5jYWxsX2hpc3RvcmljKAorICAgICAg
ICAgICAga3dhcmdzPWRpY3QocGx1Z2lubWFuYWdlcj1zZWxmLnBsdWdpbm1hbmFnZXIpKQorICAg
ICAgICBzZWxmLl9wcmVwYXJzZShhcmdzLCBhZGRvcHRzPWFkZG9wdHMpCisgICAgICAgICMgWFhY
IGRlcHJlY2F0ZWQgaG9vazoKKyAgICAgICAgc2VsZi5ob29rLnB5dGVzdF9jbWRsaW5lX3ByZXBh
cnNlKGNvbmZpZz1zZWxmLCBhcmdzPWFyZ3MpCisgICAgICAgIHNlbGYuX3BhcnNlci5hZnRlcl9w
cmVwYXJzZSA9IFRydWUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYXJncyA9IHNlbGYuX3Bh
cnNlci5wYXJzZV9zZXRvcHRpb24oYXJncywgc2VsZi5vcHRpb24sIG5hbWVzcGFjZT1zZWxmLm9w
dGlvbikKKyAgICAgICAgICAgIGlmIG5vdCBhcmdzOgorICAgICAgICAgICAgICAgIGN3ZCA9IG9z
LmdldGN3ZCgpCisgICAgICAgICAgICAgICAgaWYgY3dkID09IHNlbGYucm9vdGRpcjoKKyAgICAg
ICAgICAgICAgICAgICAgYXJncyA9IHNlbGYuZ2V0aW5pKCd0ZXN0cGF0aHMnKQorICAgICAgICAg
ICAgICAgIGlmIG5vdCBhcmdzOgorICAgICAgICAgICAgICAgICAgICBhcmdzID0gW2N3ZF0KKyAg
ICAgICAgICAgIHNlbGYuYXJncyA9IGFyZ3MKKyAgICAgICAgZXhjZXB0IFByaW50SGVscDoKKyAg
ICAgICAgICAgIHBhc3MKKworICAgIGRlZiBhZGRpbml2YWx1ZV9saW5lKHNlbGYsIG5hbWUsIGxp
bmUpOgorICAgICAgICAiIiIgYWRkIGEgbGluZSB0byBhbiBpbmktZmlsZSBvcHRpb24uIFRoZSBv
cHRpb24gbXVzdCBoYXZlIGJlZW4KKyAgICAgICAgZGVjbGFyZWQgYnV0IG1pZ2h0IG5vdCB5ZXQg
YmUgc2V0IGluIHdoaWNoIGNhc2UgdGhlIGxpbmUgYmVjb21lcyB0aGUKKyAgICAgICAgdGhlIGZp
cnN0IGxpbmUgaW4gaXRzIHZhbHVlLiAiIiIKKyAgICAgICAgeCA9IHNlbGYuZ2V0aW5pKG5hbWUp
CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHgsIGxpc3QpCisgICAgICAgIHguYXBwZW5kKGxp
bmUpICAjIG1vZGlmaWVzIHRoZSBjYWNoZWQgbGlzdCBpbmxpbmUKKworICAgIGRlZiBnZXRpbmko
c2VsZiwgbmFtZSk6CisgICAgICAgICIiIiByZXR1cm4gY29uZmlndXJhdGlvbiB2YWx1ZSBmcm9t
IGFuIDpyZWY6YGluaSBmaWxlIDxpbmlmaWxlcz5gLiBJZiB0aGUKKyAgICAgICAgc3BlY2lmaWVk
IG5hbWUgaGFzbid0IGJlZW4gcmVnaXN0ZXJlZCB0aHJvdWdoIGEgcHJpb3IKKyAgICAgICAgOnB5
OmZ1bmM6YHBhcnNlci5hZGRpbmkgPF9weXRlc3QuY29uZmlnLlBhcnNlci5hZGRpbmk+YAorICAg
ICAgICBjYWxsICh1c3VhbGx5IGZyb20gYSBwbHVnaW4pLCBhIFZhbHVlRXJyb3IgaXMgcmFpc2Vk
LiAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2luaWNhY2hlW25h
bWVdCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgIHNlbGYuX2luaWNhY2hl
W25hbWVdID0gdmFsID0gc2VsZi5fZ2V0aW5pKG5hbWUpCisgICAgICAgICAgICByZXR1cm4gdmFs
CisKKyAgICBkZWYgX2dldGluaShzZWxmLCBuYW1lKToKKyAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgZGVzY3JpcHRpb24sIHR5cGUsIGRlZmF1bHQgPSBzZWxmLl9wYXJzZXIuX2luaWRpY3RbbmFt
ZV0KKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cigidW5rbm93biBjb25maWd1cmF0aW9uIHZhbHVlOiAlciIgJSAobmFtZSwpKQorICAgICAgICB2
YWx1ZSA9IHNlbGYuX2dldF9vdmVycmlkZV9pbmlfdmFsdWUobmFtZSkKKyAgICAgICAgaWYgdmFs
dWUgaXMgTm9uZToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IHNl
bGYuaW5pY2ZnW25hbWVdCisgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAg
ICAgICAgaWYgZGVmYXVsdCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGRlZmF1bHQKKyAgICAgICAgICAgICAgICBpZiB0eXBlIGlzIE5vbmU6CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiAnJworICAgICAgICAgICAgICAgIHJldHVybiBbXQorICAgICAgICBpZiB0
eXBlID09ICJwYXRobGlzdCI6CisgICAgICAgICAgICBkcCA9IHB5LnBhdGgubG9jYWwoc2VsZi5p
bmljZmcuY29uZmlnLnBhdGgpLmRpcnBhdGgoKQorICAgICAgICAgICAgdmFsdWVzID0gW10KKyAg
ICAgICAgICAgIGZvciByZWxwYXRoIGluIHNobGV4LnNwbGl0KHZhbHVlKToKKyAgICAgICAgICAg
ICAgICB2YWx1ZXMuYXBwZW5kKGRwLmpvaW4ocmVscGF0aCwgYWJzPVRydWUpKQorICAgICAgICAg
ICAgcmV0dXJuIHZhbHVlcworICAgICAgICBlbGlmIHR5cGUgPT0gImFyZ3MiOgorICAgICAgICAg
ICAgcmV0dXJuIHNobGV4LnNwbGl0KHZhbHVlKQorICAgICAgICBlbGlmIHR5cGUgPT0gImxpbmVs
aXN0IjoKKyAgICAgICAgICAgIHJldHVybiBbdCBmb3IgdCBpbiBtYXAobGFtYmRhIHg6IHguc3Ry
aXAoKSwgdmFsdWUuc3BsaXQoIlxuIikpIGlmIHRdCisgICAgICAgIGVsaWYgdHlwZSA9PSAiYm9v
bCI6CisgICAgICAgICAgICByZXR1cm4gYm9vbChfc3RydG9ib29sKHZhbHVlLnN0cmlwKCkpKQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgYXNzZXJ0IHR5cGUgaXMgTm9uZQorICAgICAgICAg
ICAgcmV0dXJuIHZhbHVlCisKKyAgICBkZWYgX2dldGNvbmZ0ZXN0X3BhdGhsaXN0KHNlbGYsIG5h
bWUsIHBhdGgpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBtb2QsIHJlbHJvb3RzID0gc2Vs
Zi5wbHVnaW5tYW5hZ2VyLl9yZ2V0X3dpdGhfY29uZm1vZChuYW1lLCBwYXRoKQorICAgICAgICBl
eGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBtb2RwYXRo
ID0gcHkucGF0aC5sb2NhbChtb2QuX19maWxlX18pLmRpcnBhdGgoKQorICAgICAgICB2YWx1ZXMg
PSBbXQorICAgICAgICBmb3IgcmVscm9vdCBpbiByZWxyb290czoKKyAgICAgICAgICAgIGlmIG5v
dCBpc2luc3RhbmNlKHJlbHJvb3QsIHB5LnBhdGgubG9jYWwpOgorICAgICAgICAgICAgICAgIHJl
bHJvb3QgPSByZWxyb290LnJlcGxhY2UoIi8iLCBweS5wYXRoLmxvY2FsLnNlcCkKKyAgICAgICAg
ICAgICAgICByZWxyb290ID0gbW9kcGF0aC5qb2luKHJlbHJvb3QsIGFicz1UcnVlKQorICAgICAg
ICAgICAgdmFsdWVzLmFwcGVuZChyZWxyb290KQorICAgICAgICByZXR1cm4gdmFsdWVzCisKKyAg
ICBkZWYgX2dldF9vdmVycmlkZV9pbmlfdmFsdWUoc2VsZiwgbmFtZSk6CisgICAgICAgIHZhbHVl
ID0gTm9uZQorICAgICAgICAjIG92ZXJyaWRlX2luaSBpcyBhIGxpc3Qgb2YgbGlzdCwgdG8gc3Vw
cG9ydCBib3RoIC1vIGZvbzE9YmFyMSBmb28yPWJhcjIgYW5kCisgICAgICAgICMgYW5kIC1vIGZv
bzE9YmFyMSAtbyBmb28yPWJhcjIgb3B0aW9ucworICAgICAgICAjIGFsd2F5cyB1c2UgdGhlIGxh
c3QgaXRlbSBpZiBtdWx0aXBsZSB2YWx1ZSBzZXQgZm9yIHNhbWUgaW5pLW5hbWUsCisgICAgICAg
ICMgZS5nLiAtbyBmb289YmFyMSAtbyBmb289YmFyMiB3aWxsIHNldCBmb28gdG8gYmFyMgorICAg
ICAgICBmb3IgaW5pX2NvbmZpZ19saXN0IGluIHNlbGYuX292ZXJyaWRlX2luaToKKyAgICAgICAg
ICAgIGZvciBpbmlfY29uZmlnIGluIGluaV9jb25maWdfbGlzdDoKKyAgICAgICAgICAgICAgICB0
cnk6CisgICAgICAgICAgICAgICAgICAgIChrZXksIHVzZXJfaW5pX3ZhbHVlKSA9IGluaV9jb25m
aWcuc3BsaXQoIj0iLCAxKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAg
ICAgICAgICAgICAgICAgICByYWlzZSBVc2FnZUVycm9yKCItby8tLW92ZXJyaWRlLWluaSBleHBl
Y3RzIG9wdGlvbj12YWx1ZSBzdHlsZS4iKQorICAgICAgICAgICAgICAgIGlmIGtleSA9PSBuYW1l
OgorICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHVzZXJfaW5pX3ZhbHVlCisgICAgICAgIHJl
dHVybiB2YWx1ZQorCisgICAgZGVmIGdldG9wdGlvbihzZWxmLCBuYW1lLCBkZWZhdWx0PW5vdHNl
dCwgc2tpcD1GYWxzZSk6CisgICAgICAgICIiIiByZXR1cm4gY29tbWFuZCBsaW5lIG9wdGlvbiB2
YWx1ZS4KKworICAgICAgICA6YXJnIG5hbWU6IG5hbWUgb2YgdGhlIG9wdGlvbi4gIFlvdSBtYXkg
YWxzbyBzcGVjaWZ5CisgICAgICAgICAgICB0aGUgbGl0ZXJhbCBgYC0tT1BUYGAgb3B0aW9uIGlu
c3RlYWQgb2YgdGhlICJkZXN0IiBvcHRpb24gbmFtZS4KKyAgICAgICAgOmFyZyBkZWZhdWx0OiBk
ZWZhdWx0IHZhbHVlIGlmIG5vIG9wdGlvbiBvZiB0aGF0IG5hbWUgZXhpc3RzLgorICAgICAgICA6
YXJnIHNraXA6IGlmIFRydWUgcmFpc2UgcHl0ZXN0LnNraXAgaWYgb3B0aW9uIGRvZXMgbm90IGV4
aXN0cworICAgICAgICAgICAgb3IgaGFzIGEgTm9uZSB2YWx1ZS4KKyAgICAgICAgIiIiCisgICAg
ICAgIG5hbWUgPSBzZWxmLl9vcHQyZGVzdC5nZXQobmFtZSwgbmFtZSkKKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgdmFsID0gZ2V0YXR0cihzZWxmLm9wdGlvbiwgbmFtZSkKKyAgICAgICAgICAg
IGlmIHZhbCBpcyBOb25lIGFuZCBza2lwOgorICAgICAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0
ZUVycm9yKG5hbWUpCisgICAgICAgICAgICByZXR1cm4gdmFsCisgICAgICAgIGV4Y2VwdCBBdHRy
aWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIGlmIGRlZmF1bHQgaXMgbm90IG5vdHNldDoKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZGVmYXVsdAorICAgICAgICAgICAgaWYgc2tpcDoKKyAgICAgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICAgICAgcHl0ZXN0LnNraXAoIm5vICVy
IG9wdGlvbiBmb3VuZCIgJSAobmFtZSwpKQorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigi
bm8gb3B0aW9uIG5hbWVkICVyIiAlIChuYW1lLCkpCisKKyAgICBkZWYgZ2V0dmFsdWUoc2VsZiwg
bmFtZSwgcGF0aD1Ob25lKToKKyAgICAgICAgIiIiIChkZXByZWNhdGVkLCB1c2UgZ2V0b3B0aW9u
KCkpICIiIgorICAgICAgICByZXR1cm4gc2VsZi5nZXRvcHRpb24obmFtZSkKKworICAgIGRlZiBn
ZXR2YWx1ZW9yc2tpcChzZWxmLCBuYW1lLCBwYXRoPU5vbmUpOgorICAgICAgICAiIiIgKGRlcHJl
Y2F0ZWQsIHVzZSBnZXRvcHRpb24oc2tpcD1UcnVlKSkgIiIiCisgICAgICAgIHJldHVybiBzZWxm
LmdldG9wdGlvbihuYW1lLCBza2lwPVRydWUpCisKKworZGVmIGV4aXN0cyhwYXRoLCBpZ25vcmU9
RW52aXJvbm1lbnRFcnJvcik6CisgICAgdHJ5OgorICAgICAgICByZXR1cm4gcGF0aC5jaGVjaygp
CisgICAgZXhjZXB0IGlnbm9yZToKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKworZGVmIGdldGNm
ZyhhcmdzLCB3YXJuZnVuYz1Ob25lKToKKyAgICAiIiIKKyAgICBTZWFyY2ggdGhlIGxpc3Qgb2Yg
YXJndW1lbnRzIGZvciBhIHZhbGlkIGluaS1maWxlIGZvciBweXRlc3QsCisgICAgYW5kIHJldHVy
biBhIHR1cGxlIG9mIChyb290ZGlyLCBpbmlmaWxlLCBjZmctZGljdCkuCisKKyAgICBub3RlOiB3
YXJuZnVuYyBpcyBhbiBvcHRpb25hbCBmdW5jdGlvbiB1c2VkIHRvIHdhcm4KKyAgICAgICAgYWJv
dXQgaW5pLWZpbGVzIHRoYXQgdXNlIGRlcHJlY2F0ZWQgZmVhdHVyZXMuCisgICAgICAgIFRoaXMg
cGFyYW1ldGVyIHNob3VsZCBiZSByZW1vdmVkIHdoZW4gcHl0ZXN0CisgICAgICAgIGFkb3B0cyBz
dGFuZGFyZCBkZXByZWNhdGlvbiB3YXJuaW5ncyAoIzE4MDQpLgorICAgICIiIgorICAgIGZyb20g
X3B5dGVzdC5kZXByZWNhdGVkIGltcG9ydCBTRVRVUF9DRkdfUFlURVNUCisgICAgaW5pYmFzZW5h
bWVzID0gWyJweXRlc3QuaW5pIiwgInRveC5pbmkiLCAic2V0dXAuY2ZnIl0KKyAgICBhcmdzID0g
W3ggZm9yIHggaW4gYXJncyBpZiBub3Qgc3RyKHgpLnN0YXJ0c3dpdGgoIi0iKV0KKyAgICBpZiBu
b3QgYXJnczoKKyAgICAgICAgYXJncyA9IFtweS5wYXRoLmxvY2FsKCldCisgICAgZm9yIGFyZyBp
biBhcmdzOgorICAgICAgICBhcmcgPSBweS5wYXRoLmxvY2FsKGFyZykKKyAgICAgICAgZm9yIGJh
c2UgaW4gYXJnLnBhcnRzKHJldmVyc2U9VHJ1ZSk6CisgICAgICAgICAgICBmb3IgaW5pYmFzZW5h
bWUgaW4gaW5pYmFzZW5hbWVzOgorICAgICAgICAgICAgICAgIHAgPSBiYXNlLmpvaW4oaW5pYmFz
ZW5hbWUpCisgICAgICAgICAgICAgICAgaWYgZXhpc3RzKHApOgorICAgICAgICAgICAgICAgICAg
ICBpbmljb25maWcgPSBweS5pbmljb25maWcuSW5pQ29uZmlnKHApCisgICAgICAgICAgICAgICAg
ICAgIGlmICdweXRlc3QnIGluIGluaWNvbmZpZy5zZWN0aW9uczoKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIGluaWJhc2VuYW1lID09ICdzZXR1cC5jZmcnIGFuZCB3YXJuZnVuYzoKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB3YXJuZnVuYygnQzEnLCBTRVRVUF9DRkdfUFlURVNUKQor
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhc2UsIHAsIGluaWNvbmZpZ1sncHl0ZXN0
J10KKyAgICAgICAgICAgICAgICAgICAgaWYgaW5pYmFzZW5hbWUgPT0gJ3NldHVwLmNmZycgYW5k
ICd0b29sOnB5dGVzdCcgaW4gaW5pY29uZmlnLnNlY3Rpb25zOgorICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGJhc2UsIHAsIGluaWNvbmZpZ1sndG9vbDpweXRlc3QnXQorICAgICAgICAg
ICAgICAgICAgICBlbGlmIGluaWJhc2VuYW1lID09ICJweXRlc3QuaW5pIjoKKyAgICAgICAgICAg
ICAgICAgICAgICAgICMgYWxsb3dlZCB0byBiZSBlbXB0eQorICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJhc2UsIHAsIHt9CisgICAgcmV0dXJuIE5vbmUsIE5vbmUsIE5vbmUKKworCitk
ZWYgZ2V0X2NvbW1vbl9hbmNlc3RvcihwYXRocyk6CisgICAgY29tbW9uX2FuY2VzdG9yID0gTm9u
ZQorICAgIGZvciBwYXRoIGluIHBhdGhzOgorICAgICAgICBpZiBub3QgcGF0aC5leGlzdHMoKToK
KyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIGlmIGNvbW1vbl9hbmNlc3RvciBpcyBOb25l
OgorICAgICAgICAgICAgY29tbW9uX2FuY2VzdG9yID0gcGF0aAorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgaWYgcGF0aC5yZWx0byhjb21tb25fYW5jZXN0b3IpIG9yIHBhdGggPT0gY29tbW9u
X2FuY2VzdG9yOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBlbGlmIGNv
bW1vbl9hbmNlc3Rvci5yZWx0byhwYXRoKToKKyAgICAgICAgICAgICAgICBjb21tb25fYW5jZXN0
b3IgPSBwYXRoCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNoYXJlZCA9IHBh
dGguY29tbW9uKGNvbW1vbl9hbmNlc3RvcikKKyAgICAgICAgICAgICAgICBpZiBzaGFyZWQgaXMg
bm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIGNvbW1vbl9hbmNlc3RvciA9IHNoYXJlZAor
ICAgIGlmIGNvbW1vbl9hbmNlc3RvciBpcyBOb25lOgorICAgICAgICBjb21tb25fYW5jZXN0b3Ig
PSBweS5wYXRoLmxvY2FsKCkKKyAgICBlbGlmIGNvbW1vbl9hbmNlc3Rvci5pc2ZpbGUoKToKKyAg
ICAgICAgY29tbW9uX2FuY2VzdG9yID0gY29tbW9uX2FuY2VzdG9yLmRpcnBhdGgoKQorICAgIHJl
dHVybiBjb21tb25fYW5jZXN0b3IKKworCitkZWYgZ2V0X2RpcnNfZnJvbV9hcmdzKGFyZ3MpOgor
ICAgIGRlZiBpc19vcHRpb24oeCk6CisgICAgICAgIHJldHVybiBzdHIoeCkuc3RhcnRzd2l0aCgn
LScpCisKKyAgICBkZWYgZ2V0X2ZpbGVfcGFydF9mcm9tX25vZGVfaWQoeCk6CisgICAgICAgIHJl
dHVybiBzdHIoeCkuc3BsaXQoJzo6JylbMF0KKworICAgIGRlZiBnZXRfZGlyX2Zyb21fcGF0aChw
YXRoKToKKyAgICAgICAgaWYgcGF0aC5pc2RpcigpOgorICAgICAgICAgICAgcmV0dXJuIHBhdGgK
KyAgICAgICAgcmV0dXJuIHB5LnBhdGgubG9jYWwocGF0aC5kaXJuYW1lKQorCisgICAgIyBUaGVz
ZSBsb29rIGxpa2UgcGF0aHMgYnV0IG1heSBub3QgZXhpc3QKKyAgICBwb3NzaWJsZV9wYXRocyA9
ICgKKyAgICAgICAgcHkucGF0aC5sb2NhbChnZXRfZmlsZV9wYXJ0X2Zyb21fbm9kZV9pZChhcmcp
KQorICAgICAgICBmb3IgYXJnIGluIGFyZ3MKKyAgICAgICAgaWYgbm90IGlzX29wdGlvbihhcmcp
CisgICAgKQorCisgICAgcmV0dXJuIFsKKyAgICAgICAgZ2V0X2Rpcl9mcm9tX3BhdGgocGF0aCkK
KyAgICAgICAgZm9yIHBhdGggaW4gcG9zc2libGVfcGF0aHMKKyAgICAgICAgaWYgcGF0aC5leGlz
dHMoKQorICAgIF0KKworCitkZWYgZGV0ZXJtaW5lX3NldHVwKGluaWZpbGUsIGFyZ3MsIHdhcm5m
dW5jPU5vbmUpOgorICAgIGRpcnMgPSBnZXRfZGlyc19mcm9tX2FyZ3MoYXJncykKKyAgICBpZiBp
bmlmaWxlOgorICAgICAgICBpbmljb25maWcgPSBweS5pbmljb25maWcuSW5pQ29uZmlnKGluaWZp
bGUpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGluaWNmZyA9IGluaWNvbmZpZ1sicHl0ZXN0
Il0KKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgaW5pY2ZnID0gTm9uZQor
ICAgICAgICByb290ZGlyID0gZ2V0X2NvbW1vbl9hbmNlc3RvcihkaXJzKQorICAgIGVsc2U6Cisg
ICAgICAgIGFuY2VzdG9yID0gZ2V0X2NvbW1vbl9hbmNlc3RvcihkaXJzKQorICAgICAgICByb290
ZGlyLCBpbmlmaWxlLCBpbmljZmcgPSBnZXRjZmcoW2FuY2VzdG9yXSwgd2FybmZ1bmM9d2FybmZ1
bmMpCisgICAgICAgIGlmIHJvb3RkaXIgaXMgTm9uZToKKyAgICAgICAgICAgIGZvciByb290ZGly
IGluIGFuY2VzdG9yLnBhcnRzKHJldmVyc2U9VHJ1ZSk6CisgICAgICAgICAgICAgICAgaWYgcm9v
dGRpci5qb2luKCJzZXR1cC5weSIpLmV4aXN0cygpOgorICAgICAgICAgICAgICAgICAgICBicmVh
aworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByb290ZGlyLCBpbmlmaWxlLCBp
bmljZmcgPSBnZXRjZmcoZGlycywgd2FybmZ1bmM9d2FybmZ1bmMpCisgICAgICAgICAgICAgICAg
aWYgcm9vdGRpciBpcyBOb25lOgorICAgICAgICAgICAgICAgICAgICByb290ZGlyID0gZ2V0X2Nv
bW1vbl9hbmNlc3RvcihbcHkucGF0aC5sb2NhbCgpLCBhbmNlc3Rvcl0pCisgICAgICAgICAgICAg
ICAgICAgIGlzX2ZzX3Jvb3QgPSBvcy5wYXRoLnNwbGl0ZHJpdmUoc3RyKHJvb3RkaXIpKVsxXSA9
PSAnLycKKyAgICAgICAgICAgICAgICAgICAgaWYgaXNfZnNfcm9vdDoKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJvb3RkaXIgPSBhbmNlc3RvcgorICAgIHJldHVybiByb290ZGlyLCBpbmlmaWxl
LCBpbmljZmcgb3Ige30KKworCitkZWYgc2V0bnMob2JqLCBkaWMpOgorICAgIGltcG9ydCBweXRl
c3QKKyAgICBmb3IgbmFtZSwgdmFsdWUgaW4gZGljLml0ZW1zKCk6CisgICAgICAgIGlmIGlzaW5z
dGFuY2UodmFsdWUsIGRpY3QpOgorICAgICAgICAgICAgbW9kID0gZ2V0YXR0cihvYmosIG5hbWUs
IE5vbmUpCisgICAgICAgICAgICBpZiBtb2QgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBtb2Ru
YW1lID0gInB5dGVzdC4lcyIgJSBuYW1lCisgICAgICAgICAgICAgICAgbW9kID0gdHlwZXMuTW9k
dWxlVHlwZShtb2RuYW1lKQorICAgICAgICAgICAgICAgIHN5cy5tb2R1bGVzW21vZG5hbWVdID0g
bW9kCisgICAgICAgICAgICAgICAgbW9kLl9fYWxsX18gPSBbXQorICAgICAgICAgICAgICAgIHNl
dGF0dHIob2JqLCBuYW1lLCBtb2QpCisgICAgICAgICAgICBvYmouX19hbGxfXy5hcHBlbmQobmFt
ZSkKKyAgICAgICAgICAgIHNldG5zKG1vZCwgdmFsdWUpCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICBzZXRhdHRyKG9iaiwgbmFtZSwgdmFsdWUpCisgICAgICAgICAgICBvYmouX19hbGxfXy5h
cHBlbmQobmFtZSkKKyAgICAgICAgICAgICMgaWYgb2JqICE9IHB5dGVzdDoKKyAgICAgICAgICAg
ICMgICAgcHl0ZXN0Ll9fYWxsX18uYXBwZW5kKG5hbWUpCisgICAgICAgICAgICBzZXRhdHRyKHB5
dGVzdCwgbmFtZSwgdmFsdWUpCisKKworZGVmIGNyZWF0ZV90ZXJtaW5hbF93cml0ZXIoY29uZmln
LCAqYXJncywgKiprd2FyZ3MpOgorICAgICIiIkNyZWF0ZSBhIFRlcm1pbmFsV3JpdGVyIGluc3Rh
bmNlIGNvbmZpZ3VyZWQgYWNjb3JkaW5nIHRvIHRoZSBvcHRpb25zCisgICAgaW4gdGhlIGNvbmZp
ZyBvYmplY3QuIEV2ZXJ5IGNvZGUgd2hpY2ggcmVxdWlyZXMgYSBUZXJtaW5hbFdyaXRlciBvYmpl
Y3QKKyAgICBhbmQgaGFzIGFjY2VzcyB0byBhIGNvbmZpZyBvYmplY3Qgc2hvdWxkIHVzZSB0aGlz
IGZ1bmN0aW9uLgorICAgICIiIgorICAgIHR3ID0gcHkuaW8uVGVybWluYWxXcml0ZXIoKmFyZ3Ms
ICoqa3dhcmdzKQorICAgIGlmIGNvbmZpZy5vcHRpb24uY29sb3IgPT0gJ3llcyc6CisgICAgICAg
IHR3Lmhhc21hcmt1cCA9IFRydWUKKyAgICBpZiBjb25maWcub3B0aW9uLmNvbG9yID09ICdubyc6
CisgICAgICAgIHR3Lmhhc21hcmt1cCA9IEZhbHNlCisgICAgcmV0dXJuIHR3CisKKworZGVmIF9z
dHJ0b2Jvb2wodmFsKToKKyAgICAiIiJDb252ZXJ0IGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9m
IHRydXRoIHRvIHRydWUgKDEpIG9yIGZhbHNlICgwKS4KKworICAgIFRydWUgdmFsdWVzIGFyZSAn
eScsICd5ZXMnLCAndCcsICd0cnVlJywgJ29uJywgYW5kICcxJzsgZmFsc2UgdmFsdWVzCisgICAg
YXJlICduJywgJ25vJywgJ2YnLCAnZmFsc2UnLCAnb2ZmJywgYW5kICcwJy4gIFJhaXNlcyBWYWx1
ZUVycm9yIGlmCisgICAgJ3ZhbCcgaXMgYW55dGhpbmcgZWxzZS4KKworICAgIC4uIG5vdGU6OiBj
b3BpZWQgZnJvbSBkaXN0dXRpbHMudXRpbAorICAgICIiIgorICAgIHZhbCA9IHZhbC5sb3dlcigp
CisgICAgaWYgdmFsIGluICgneScsICd5ZXMnLCAndCcsICd0cnVlJywgJ29uJywgJzEnKToKKyAg
ICAgICAgcmV0dXJuIDEKKyAgICBlbGlmIHZhbCBpbiAoJ24nLCAnbm8nLCAnZicsICdmYWxzZScs
ICdvZmYnLCAnMCcpOgorICAgICAgICByZXR1cm4gMAorICAgIGVsc2U6CisgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoImludmFsaWQgdHJ1dGggdmFsdWUgJXIiICUgKHZhbCwpKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9kZWJ1Z2dpbmcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L2RlYnVnZ2luZy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kN2RjYTc4MDk1NmVjMzk3NjJkMDRjYWExN2Y5ZDBm
YjNiZGVmZmMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9kZWJ1Z2dp
bmcucHkKQEAgLTAsMCArMSwxMjMgQEAKKyIiIiBpbnRlcmFjdGl2ZSBkZWJ1Z2dpbmcgd2l0aCBQ
REIsIHRoZSBQeXRob24gRGVidWdnZXIuICIiIgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNv
bHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgoraW1wb3J0IHBkYgoraW1wb3J0
IHN5cworCisKK2RlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAgZ3JvdXAgPSBwYXJz
ZXIuZ2V0Z3JvdXAoImdlbmVyYWwiKQorICAgIGdyb3VwLl9hZGRvcHRpb24oCisgICAgICAgICct
LXBkYicsIGRlc3Q9InVzZXBkYiIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgIGhlbHA9
InN0YXJ0IHRoZSBpbnRlcmFjdGl2ZSBQeXRob24gZGVidWdnZXIgb24gZXJyb3JzLiIpCisgICAg
Z3JvdXAuX2FkZG9wdGlvbigKKyAgICAgICAgJy0tcGRiY2xzJywgZGVzdD0idXNlcGRiX2NscyIs
IG1ldGF2YXI9Im1vZHVsZW5hbWU6Y2xhc3NuYW1lIiwKKyAgICAgICAgaGVscD0ic3RhcnQgYSBj
dXN0b20gaW50ZXJhY3RpdmUgUHl0aG9uIGRlYnVnZ2VyIG9uIGVycm9ycy4gIgorICAgICAgICAg
ICAgICJGb3IgZXhhbXBsZTogLS1wZGJjbHM9SVB5dGhvbi50ZXJtaW5hbC5kZWJ1Z2dlcjpUZXJt
aW5hbFBkYiIpCisKKworZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKKyAgICBpZiBjb25m
aWcuZ2V0dmFsdWUoInVzZXBkYl9jbHMiKToKKyAgICAgICAgbW9kbmFtZSwgY2xhc3NuYW1lID0g
Y29uZmlnLmdldHZhbHVlKCJ1c2VwZGJfY2xzIikuc3BsaXQoIjoiKQorICAgICAgICBfX2ltcG9y
dF9fKG1vZG5hbWUpCisgICAgICAgIHBkYl9jbHMgPSBnZXRhdHRyKHN5cy5tb2R1bGVzW21vZG5h
bWVdLCBjbGFzc25hbWUpCisgICAgZWxzZToKKyAgICAgICAgcGRiX2NscyA9IHBkYi5QZGIKKwor
ICAgIGlmIGNvbmZpZy5nZXR2YWx1ZSgidXNlcGRiIik6CisgICAgICAgIGNvbmZpZy5wbHVnaW5t
YW5hZ2VyLnJlZ2lzdGVyKFBkYkludm9rZSgpLCAncGRiaW52b2tlJykKKworICAgIG9sZCA9IChw
ZGIuc2V0X3RyYWNlLCBweXRlc3RQREIuX3BsdWdpbm1hbmFnZXIpCisKKyAgICBkZWYgZmluKCk6
CisgICAgICAgIHBkYi5zZXRfdHJhY2UsIHB5dGVzdFBEQi5fcGx1Z2lubWFuYWdlciA9IG9sZAor
ICAgICAgICBweXRlc3RQREIuX2NvbmZpZyA9IE5vbmUKKyAgICAgICAgcHl0ZXN0UERCLl9wZGJf
Y2xzID0gcGRiLlBkYgorCisgICAgcGRiLnNldF90cmFjZSA9IHB5dGVzdFBEQi5zZXRfdHJhY2UK
KyAgICBweXRlc3RQREIuX3BsdWdpbm1hbmFnZXIgPSBjb25maWcucGx1Z2lubWFuYWdlcgorICAg
IHB5dGVzdFBEQi5fY29uZmlnID0gY29uZmlnCisgICAgcHl0ZXN0UERCLl9wZGJfY2xzID0gcGRi
X2NscworICAgIGNvbmZpZy5fY2xlYW51cC5hcHBlbmQoZmluKQorCisKK2NsYXNzIHB5dGVzdFBE
QjoKKyAgICAiIiIgUHNldWRvIFBEQiB0aGF0IGRlZmVycyB0byB0aGUgcmVhbCBwZGIuICIiIgor
ICAgIF9wbHVnaW5tYW5hZ2VyID0gTm9uZQorICAgIF9jb25maWcgPSBOb25lCisgICAgX3BkYl9j
bHMgPSBwZGIuUGRiCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgc2V0X3RyYWNlKGNscyk6
CisgICAgICAgICIiIiBpbnZva2UgUERCIHNldF90cmFjZSBkZWJ1Z2dpbmcsIGRyb3BwaW5nIGFu
eSBJTyBjYXB0dXJpbmcuICIiIgorICAgICAgICBpbXBvcnQgX3B5dGVzdC5jb25maWcKKyAgICAg
ICAgZnJhbWUgPSBzeXMuX2dldGZyYW1lKCkuZl9iYWNrCisgICAgICAgIGlmIGNscy5fcGx1Z2lu
bWFuYWdlciBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGNhcG1hbiA9IGNscy5fcGx1Z2lubWFu
YWdlci5nZXRwbHVnaW4oImNhcHR1cmVtYW5hZ2VyIikKKyAgICAgICAgICAgIGlmIGNhcG1hbjoK
KyAgICAgICAgICAgICAgICBjYXBtYW4uc3VzcGVuZF9nbG9iYWxfY2FwdHVyZShpbl89VHJ1ZSkK
KyAgICAgICAgICAgIHR3ID0gX3B5dGVzdC5jb25maWcuY3JlYXRlX3Rlcm1pbmFsX3dyaXRlcihj
bHMuX2NvbmZpZykKKyAgICAgICAgICAgIHR3LmxpbmUoKQorICAgICAgICAgICAgdHcuc2VwKCI+
IiwgIlBEQiBzZXRfdHJhY2UgKElPLWNhcHR1cmluZyB0dXJuZWQgb2ZmKSIpCisgICAgICAgICAg
ICBjbHMuX3BsdWdpbm1hbmFnZXIuaG9vay5weXRlc3RfZW50ZXJfcGRiKGNvbmZpZz1jbHMuX2Nv
bmZpZykKKyAgICAgICAgY2xzLl9wZGJfY2xzKCkuc2V0X3RyYWNlKGZyYW1lKQorCisKK2NsYXNz
IFBkYkludm9rZToKKyAgICBkZWYgcHl0ZXN0X2V4Y2VwdGlvbl9pbnRlcmFjdChzZWxmLCBub2Rl
LCBjYWxsLCByZXBvcnQpOgorICAgICAgICBjYXBtYW4gPSBub2RlLmNvbmZpZy5wbHVnaW5tYW5h
Z2VyLmdldHBsdWdpbigiY2FwdHVyZW1hbmFnZXIiKQorICAgICAgICBpZiBjYXBtYW46CisgICAg
ICAgICAgICBvdXQsIGVyciA9IGNhcG1hbi5zdXNwZW5kX2dsb2JhbF9jYXB0dXJlKGluXz1UcnVl
KQorICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZShvdXQpCisgICAgICAgICAgICBzeXMuc3Rk
b3V0LndyaXRlKGVycikKKyAgICAgICAgX2VudGVyX3BkYihub2RlLCBjYWxsLmV4Y2luZm8sIHJl
cG9ydCkKKworICAgIGRlZiBweXRlc3RfaW50ZXJuYWxlcnJvcihzZWxmLCBleGNyZXByLCBleGNp
bmZvKToKKyAgICAgICAgZm9yIGxpbmUgaW4gc3RyKGV4Y3JlcHIpLnNwbGl0KCJcbiIpOgorICAg
ICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiSU5URVJOQUxFUlJPUj4gJXNcbiIgJSBsaW5lKQor
ICAgICAgICAgICAgc3lzLnN0ZGVyci5mbHVzaCgpCisgICAgICAgIHRiID0gX3Bvc3Rtb3J0ZW1f
dHJhY2ViYWNrKGV4Y2luZm8pCisgICAgICAgIHBvc3RfbW9ydGVtKHRiKQorCisKK2RlZiBfZW50
ZXJfcGRiKG5vZGUsIGV4Y2luZm8sIHJlcCk6CisgICAgIyBYWFggd2UgcmUtdXNlIHRoZSBUZXJt
aW5hbFJlcG9ydGVyJ3MgdGVybWluYWx3cml0ZXIKKyAgICAjIGJlY2F1c2UgdGhpcyBzZWVtcyB0
byBhdm9pZCBzb21lIGVuY29kaW5nIHJlbGF0ZWQgdHJvdWJsZXMKKyAgICAjIGZvciBub3QgY29t
cGxldGVseSBjbGVhciByZWFzb25zLgorICAgIHR3ID0gbm9kZS5jb25maWcucGx1Z2lubWFuYWdl
ci5nZXRwbHVnaW4oInRlcm1pbmFscmVwb3J0ZXIiKS5fdHcKKyAgICB0dy5saW5lKCkKKyAgICB0
dy5zZXAoIj4iLCAidHJhY2ViYWNrIikKKyAgICByZXAudG90ZXJtaW5hbCh0dykKKyAgICB0dy5z
ZXAoIj4iLCAiZW50ZXJpbmcgUERCIikKKyAgICB0YiA9IF9wb3N0bW9ydGVtX3RyYWNlYmFjayhl
eGNpbmZvKQorICAgIHBvc3RfbW9ydGVtKHRiKQorICAgIHJlcC5fcGRic2hvd24gPSBUcnVlCisg
ICAgcmV0dXJuIHJlcAorCisKK2RlZiBfcG9zdG1vcnRlbV90cmFjZWJhY2soZXhjaW5mbyk6Cisg
ICAgIyBBIGRvY3Rlc3QuVW5leHBlY3RlZEV4Y2VwdGlvbiBpcyBub3QgdXNlZnVsIGZvciBwb3N0
X21vcnRlbS4KKyAgICAjIFVzZSB0aGUgdW5kZXJseWluZyBleGNlcHRpb24gaW5zdGVhZDoKKyAg
ICBmcm9tIGRvY3Rlc3QgaW1wb3J0IFVuZXhwZWN0ZWRFeGNlcHRpb24KKyAgICBpZiBpc2luc3Rh
bmNlKGV4Y2luZm8udmFsdWUsIFVuZXhwZWN0ZWRFeGNlcHRpb24pOgorICAgICAgICByZXR1cm4g
ZXhjaW5mby52YWx1ZS5leGNfaW5mb1syXQorICAgIGVsc2U6CisgICAgICAgIHJldHVybiBleGNp
bmZvLl9leGNpbmZvWzJdCisKKworZGVmIF9maW5kX2xhc3Rfbm9uX2hpZGRlbl9mcmFtZShzdGFj
ayk6CisgICAgaSA9IG1heCgwLCBsZW4oc3RhY2spIC0gMSkKKyAgICB3aGlsZSBpIGFuZCBzdGFj
a1tpXVswXS5mX2xvY2Fscy5nZXQoIl9fdHJhY2ViYWNraGlkZV9fIiwgRmFsc2UpOgorICAgICAg
ICBpIC09IDEKKyAgICByZXR1cm4gaQorCisKK2RlZiBwb3N0X21vcnRlbSh0KToKKyAgICBjbGFz
cyBQZGIocHl0ZXN0UERCLl9wZGJfY2xzKToKKyAgICAgICAgZGVmIGdldF9zdGFjayhzZWxmLCBm
LCB0KToKKyAgICAgICAgICAgIHN0YWNrLCBpID0gcGRiLlBkYi5nZXRfc3RhY2soc2VsZiwgZiwg
dCkKKyAgICAgICAgICAgIGlmIGYgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBpID0gX2ZpbmRf
bGFzdF9ub25faGlkZGVuX2ZyYW1lKHN0YWNrKQorICAgICAgICAgICAgcmV0dXJuIHN0YWNrLCBp
CisgICAgcCA9IFBkYigpCisgICAgcC5yZXNldCgpCisgICAgcC5pbnRlcmFjdGlvbihOb25lLCB0
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9kZXByZWNhdGVkLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC9kZXByZWNhdGVkLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljMGZiZWNhN2JjOWU5NzQx
NzBhOWVjZWFjMzI3Njc3ZjU2MWYxMjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9f
cHl0ZXN0L2RlcHJlY2F0ZWQucHkKQEAgLTAsMCArMSw1MiBAQAorIiIiCitUaGlzIG1vZHVsZSBj
b250YWlucyBkZXByZWNhdGlvbiBtZXNzYWdlcyBhbmQgYml0cyBvZiBjb2RlIHVzZWQgZWxzZXdo
ZXJlIGluIHRoZSBjb2RlYmFzZQordGhhdCBpcyBwbGFubmVkIHRvIGJlIHJlbW92ZWQgaW4gdGhl
IG5leHQgcHl0ZXN0IHJlbGVhc2UuCisKK0tlZXBpbmcgaXQgaW4gYSBjZW50cmFsIGxvY2F0aW9u
IG1ha2VzIGl0IGVhc3kgdG8gdHJhY2sgd2hhdCBpcyBkZXByZWNhdGVkIGFuZCBzaG91bGQKK2Jl
IHJlbW92ZWQgd2hlbiB0aGUgdGltZSBjb21lcy4KKyIiIgorZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCisKK2NsYXNzIFJl
bW92ZWRJblB5dGVzdDRXYXJuaW5nKERlcHJlY2F0aW9uV2FybmluZyk6CisgICAgIiIid2Fybmlu
ZyBjbGFzcyBmb3IgZmVhdHVyZXMgcmVtb3ZlZCBpbiBweXRlc3QgNC4wIiIiCisKKworTUFJTl9T
VFJfQVJHUyA9ICdwYXNzaW5nIGEgc3RyaW5nIHRvIHB5dGVzdC5tYWluKCkgaXMgZGVwcmVjYXRl
ZCwgJyBcCisgICAgJ3Bhc3MgYSBsaXN0IG9mIGFyZ3VtZW50cyBpbnN0ZWFkLicKKworWUlFTERf
VEVTVFMgPSAneWllbGQgdGVzdHMgYXJlIGRlcHJlY2F0ZWQsIGFuZCBzY2hlZHVsZWQgdG8gYmUg
cmVtb3ZlZCBpbiBweXRlc3QgNC4wJworCitGVU5DQVJHX1BSRUZJWCA9ICgKKyAgICAne25hbWV9
OiBkZWNsYXJpbmcgZml4dHVyZXMgdXNpbmcgInB5dGVzdF9mdW5jYXJnX18iIHByZWZpeCBpcyBk
ZXByZWNhdGVkICcKKyAgICAnYW5kIHNjaGVkdWxlZCB0byBiZSByZW1vdmVkIGluIHB5dGVzdCA0
LjAuICAnCisgICAgJ1BsZWFzZSByZW1vdmUgdGhlIHByZWZpeCBhbmQgdXNlIHRoZSBAcHl0ZXN0
LmZpeHR1cmUgZGVjb3JhdG9yIGluc3RlYWQuJykKKworU0VUVVBfQ0ZHX1BZVEVTVCA9ICdbcHl0
ZXN0XSBzZWN0aW9uIGluIHNldHVwLmNmZyBmaWxlcyBpcyBkZXByZWNhdGVkLCB1c2UgW3Rvb2w6
cHl0ZXN0XSBpbnN0ZWFkLicKKworR0VURlVOQ0FSR1ZBTFVFID0gInVzZSBvZiBnZXRmdW5jYXJn
dmFsdWUgaXMgZGVwcmVjYXRlZCwgdXNlIGdldGZpeHR1cmV2YWx1ZSIKKworUkVTVUxUX0xPRyA9
ICgKKyAgICAnLS1yZXN1bHQtbG9nIGlzIGRlcHJlY2F0ZWQgYW5kIHNjaGVkdWxlZCBmb3IgcmVt
b3ZhbCBpbiBweXRlc3QgNC4wLlxuJworICAgICdTZWUgaHR0cHM6Ly9kb2NzLnB5dGVzdC5vcmcv
ZW4vbGF0ZXN0L3VzYWdlLmh0bWwjY3JlYXRpbmctcmVzdWx0bG9nLWZvcm1hdC1maWxlcyBmb3Ig
bW9yZSBpbmZvcm1hdGlvbi4nCispCisKK01BUktfSU5GT19BVFRSSUJVVEUgPSBSZW1vdmVkSW5Q
eXRlc3Q0V2FybmluZygKKyAgICAiTWFya0luZm8gb2JqZWN0cyBhcmUgZGVwcmVjYXRlZCBhcyB0
aGV5IGNvbnRhaW4gdGhlIG1lcmdlZCBtYXJrcyIKKykKKworTUFSS19QQVJBTUVURVJTRVRfVU5Q
QUNLSU5HID0gUmVtb3ZlZEluUHl0ZXN0NFdhcm5pbmcoCisgICAgIkFwcGx5aW5nIG1hcmtzIGRp
cmVjdGx5IHRvIHBhcmFtZXRlcnMgaXMgZGVwcmVjYXRlZCwiCisgICAgIiBwbGVhc2UgdXNlIHB5
dGVzdC5wYXJhbSguLi4sIG1hcmtzPS4uLikgaW5zdGVhZC5cbiIKKyAgICAiRm9yIG1vcmUgZGV0
YWlscywgc2VlOiBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvcGFyYW1ldHJpemUu
aHRtbCIKKykKKworQ09MTEVDVE9SX01BS0VJVEVNID0gUmVtb3ZlZEluUHl0ZXN0NFdhcm5pbmco
CisgICAgInB5Y29sbGVjdG9yIG1ha2VpdGVtIHdhcyByZW1vdmVkICIKKyAgICAiYXMgaXQgaXMg
YW4gYWNjaWRlbnRpYWxseSBsZWFrZWQgaW50ZXJuYWwgYXBpIgorKQorCitNRVRBRlVOQ19BRERf
Q0FMTCA9ICgKKyAgICAiTWV0YWZ1bmMuYWRkY2FsbCBpcyBkZXByZWNhdGVkIGFuZCBzY2hlZHVs
ZWQgdG8gYmUgcmVtb3ZlZCBpbiBweXRlc3QgNC4wLlxuIgorICAgICJQbGVhc2UgdXNlIE1ldGFm
dW5jLnBhcmFtZXRyaXplIGluc3RlYWQuIgorKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5
dGVzdC9kb2N0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9kb2N0ZXN0LnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmJiYTkwZTU1MWM1MDVhZWQ5OTNhNzk5MTlkZDAzOTk5ODYxMGE2ZDAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2RvY3Rlc3QucHkKQEAgLTAsMCArMSwzNjkgQEAK
KyIiIiBkaXNjb3ZlciBhbmQgcnVuIGRvY3Rlc3RzIGluIG1vZHVsZXMgYW5kIHRlc3QgZmlsZXMu
IiIiCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHBy
aW50X2Z1bmN0aW9uCisKK2ltcG9ydCB0cmFjZWJhY2sKKworaW1wb3J0IHB5dGVzdAorZnJvbSBf
cHl0ZXN0Ll9jb2RlLmNvZGUgaW1wb3J0IEV4Y2VwdGlvbkluZm8sIFJlcHJGaWxlTG9jYXRpb24s
IFRlcm1pbmFsUmVwcgorZnJvbSBfcHl0ZXN0LmZpeHR1cmVzIGltcG9ydCBGaXh0dXJlUmVxdWVz
dAorCisKK0RPQ1RFU1RfUkVQT1JUX0NIT0lDRV9OT05FID0gJ25vbmUnCitET0NURVNUX1JFUE9S
VF9DSE9JQ0VfQ0RJRkYgPSAnY2RpZmYnCitET0NURVNUX1JFUE9SVF9DSE9JQ0VfTkRJRkYgPSAn
bmRpZmYnCitET0NURVNUX1JFUE9SVF9DSE9JQ0VfVURJRkYgPSAndWRpZmYnCitET0NURVNUX1JF
UE9SVF9DSE9JQ0VfT05MWV9GSVJTVF9GQUlMVVJFID0gJ29ubHlfZmlyc3RfZmFpbHVyZScKKwor
RE9DVEVTVF9SRVBPUlRfQ0hPSUNFUyA9ICgKKyAgICBET0NURVNUX1JFUE9SVF9DSE9JQ0VfTk9O
RSwKKyAgICBET0NURVNUX1JFUE9SVF9DSE9JQ0VfQ0RJRkYsCisgICAgRE9DVEVTVF9SRVBPUlRf
Q0hPSUNFX05ESUZGLAorICAgIERPQ1RFU1RfUkVQT1JUX0NIT0lDRV9VRElGRiwKKyAgICBET0NU
RVNUX1JFUE9SVF9DSE9JQ0VfT05MWV9GSVJTVF9GQUlMVVJFLAorKQorCisKK2RlZiBweXRlc3Rf
YWRkb3B0aW9uKHBhcnNlcik6CisgICAgcGFyc2VyLmFkZGluaSgnZG9jdGVzdF9vcHRpb25mbGFn
cycsICdvcHRpb24gZmxhZ3MgZm9yIGRvY3Rlc3RzJywKKyAgICAgICAgICAgICAgICAgIHR5cGU9
ImFyZ3MiLCBkZWZhdWx0PVsiRUxMSVBTSVMiXSkKKyAgICBwYXJzZXIuYWRkaW5pKCJkb2N0ZXN0
X2VuY29kaW5nIiwgJ2VuY29kaW5nIHVzZWQgZm9yIGRvY3Rlc3QgZmlsZXMnLCBkZWZhdWx0PSJ1
dGYtOCIpCisgICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImNvbGxlY3QiKQorICAgIGdyb3Vw
LmFkZG9wdGlvbigiLS1kb2N0ZXN0LW1vZHVsZXMiLAorICAgICAgICAgICAgICAgICAgICBhY3Rp
b249InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICBoZWxw
PSJydW4gZG9jdGVzdHMgaW4gYWxsIC5weSBtb2R1bGVzIiwKKyAgICAgICAgICAgICAgICAgICAg
ZGVzdD0iZG9jdGVzdG1vZHVsZXMiKQorICAgIGdyb3VwLmFkZG9wdGlvbigiLS1kb2N0ZXN0LXJl
cG9ydCIsCisgICAgICAgICAgICAgICAgICAgIHR5cGU9c3RyLmxvd2VyLCBkZWZhdWx0PSJ1ZGlm
ZiIsCisgICAgICAgICAgICAgICAgICAgIGhlbHA9ImNob29zZSBhbm90aGVyIG91dHB1dCBmb3Jt
YXQgZm9yIGRpZmZzIG9uIGRvY3Rlc3QgZmFpbHVyZSIsCisgICAgICAgICAgICAgICAgICAgIGNo
b2ljZXM9RE9DVEVTVF9SRVBPUlRfQ0hPSUNFUywKKyAgICAgICAgICAgICAgICAgICAgZGVzdD0i
ZG9jdGVzdHJlcG9ydCIpCisgICAgZ3JvdXAuYWRkb3B0aW9uKCItLWRvY3Rlc3QtZ2xvYiIsCisg
ICAgICAgICAgICAgICAgICAgIGFjdGlvbj0iYXBwZW5kIiwgZGVmYXVsdD1bXSwgbWV0YXZhcj0i
cGF0IiwKKyAgICAgICAgICAgICAgICAgICAgaGVscD0iZG9jdGVzdHMgZmlsZSBtYXRjaGluZyBw
YXR0ZXJuLCBkZWZhdWx0OiB0ZXN0Ki50eHQiLAorICAgICAgICAgICAgICAgICAgICBkZXN0PSJk
b2N0ZXN0Z2xvYiIpCisgICAgZ3JvdXAuYWRkb3B0aW9uKCItLWRvY3Rlc3QtaWdub3JlLWltcG9y
dC1lcnJvcnMiLAorICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZh
dWx0PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICBoZWxwPSJpZ25vcmUgZG9jdGVzdCBJbXBv
cnRFcnJvcnMiLAorICAgICAgICAgICAgICAgICAgICBkZXN0PSJkb2N0ZXN0X2lnbm9yZV9pbXBv
cnRfZXJyb3JzIikKKworCitkZWYgcHl0ZXN0X2NvbGxlY3RfZmlsZShwYXRoLCBwYXJlbnQpOgor
ICAgIGNvbmZpZyA9IHBhcmVudC5jb25maWcKKyAgICBpZiBwYXRoLmV4dCA9PSAiLnB5IjoKKyAg
ICAgICAgaWYgY29uZmlnLm9wdGlvbi5kb2N0ZXN0bW9kdWxlcyBhbmQgbm90IF9pc19zZXR1cF9w
eShjb25maWcsIHBhdGgsIHBhcmVudCk6CisgICAgICAgICAgICByZXR1cm4gRG9jdGVzdE1vZHVs
ZShwYXRoLCBwYXJlbnQpCisgICAgZWxpZiBfaXNfZG9jdGVzdChjb25maWcsIHBhdGgsIHBhcmVu
dCk6CisgICAgICAgIHJldHVybiBEb2N0ZXN0VGV4dGZpbGUocGF0aCwgcGFyZW50KQorCisKK2Rl
ZiBfaXNfc2V0dXBfcHkoY29uZmlnLCBwYXRoLCBwYXJlbnQpOgorICAgIGlmIHBhdGguYmFzZW5h
bWUgIT0gInNldHVwLnB5IjoKKyAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgY29udGVudHMgPSBw
YXRoLnJlYWQoKQorICAgIHJldHVybiAnc2V0dXB0b29scycgaW4gY29udGVudHMgb3IgJ2Rpc3R1
dGlscycgaW4gY29udGVudHMKKworCitkZWYgX2lzX2RvY3Rlc3QoY29uZmlnLCBwYXRoLCBwYXJl
bnQpOgorICAgIGlmIHBhdGguZXh0IGluICgnLnR4dCcsICcucnN0JykgYW5kIHBhcmVudC5zZXNz
aW9uLmlzaW5pdHBhdGgocGF0aCk6CisgICAgICAgIHJldHVybiBUcnVlCisgICAgZ2xvYnMgPSBj
b25maWcuZ2V0b3B0aW9uKCJkb2N0ZXN0Z2xvYiIpIG9yIFsndGVzdCoudHh0J10KKyAgICBmb3Ig
Z2xvYiBpbiBnbG9iczoKKyAgICAgICAgaWYgcGF0aC5jaGVjayhmbm1hdGNoPWdsb2IpOgorICAg
ICAgICAgICAgcmV0dXJuIFRydWUKKyAgICByZXR1cm4gRmFsc2UKKworCitjbGFzcyBSZXByRmFp
bERvY3Rlc3QoVGVybWluYWxSZXByKToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXBybG9j
YXRpb24sIGxpbmVzKToKKyAgICAgICAgc2VsZi5yZXBybG9jYXRpb24gPSByZXBybG9jYXRpb24K
KyAgICAgICAgc2VsZi5saW5lcyA9IGxpbmVzCisKKyAgICBkZWYgdG90ZXJtaW5hbChzZWxmLCB0
dyk6CisgICAgICAgIGZvciBsaW5lIGluIHNlbGYubGluZXM6CisgICAgICAgICAgICB0dy5saW5l
KGxpbmUpCisgICAgICAgIHNlbGYucmVwcmxvY2F0aW9uLnRvdGVybWluYWwodHcpCisKKworY2xh
c3MgRG9jdGVzdEl0ZW0ocHl0ZXN0Lkl0ZW0pOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1l
LCBwYXJlbnQsIHJ1bm5lcj1Ob25lLCBkdGVzdD1Ob25lKToKKyAgICAgICAgc3VwZXIoRG9jdGVz
dEl0ZW0sIHNlbGYpLl9faW5pdF9fKG5hbWUsIHBhcmVudCkKKyAgICAgICAgc2VsZi5ydW5uZXIg
PSBydW5uZXIKKyAgICAgICAgc2VsZi5kdGVzdCA9IGR0ZXN0CisgICAgICAgIHNlbGYub2JqID0g
Tm9uZQorICAgICAgICBzZWxmLmZpeHR1cmVfcmVxdWVzdCA9IE5vbmUKKworICAgIGRlZiBzZXR1
cChzZWxmKToKKyAgICAgICAgaWYgc2VsZi5kdGVzdCBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
IHNlbGYuZml4dHVyZV9yZXF1ZXN0ID0gX3NldHVwX2ZpeHR1cmVzKHNlbGYpCisgICAgICAgICAg
ICBnbG9icyA9IGRpY3QoZ2V0Zml4dHVyZT1zZWxmLmZpeHR1cmVfcmVxdWVzdC5nZXRmaXh0dXJl
dmFsdWUpCisgICAgICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gc2VsZi5maXh0dXJlX3JlcXVl
c3QuZ2V0Zml4dHVyZXZhbHVlKCdkb2N0ZXN0X25hbWVzcGFjZScpLml0ZW1zKCk6CisgICAgICAg
ICAgICAgICAgZ2xvYnNbbmFtZV0gPSB2YWx1ZQorICAgICAgICAgICAgc2VsZi5kdGVzdC5nbG9i
cy51cGRhdGUoZ2xvYnMpCisKKyAgICBkZWYgcnVudGVzdChzZWxmKToKKyAgICAgICAgX2NoZWNr
X2FsbF9za2lwcGVkKHNlbGYuZHRlc3QpCisgICAgICAgIHNlbGYucnVubmVyLnJ1bihzZWxmLmR0
ZXN0KQorCisgICAgZGVmIHJlcHJfZmFpbHVyZShzZWxmLCBleGNpbmZvKToKKyAgICAgICAgaW1w
b3J0IGRvY3Rlc3QKKyAgICAgICAgaWYgZXhjaW5mby5lcnJpc2luc3RhbmNlKChkb2N0ZXN0LkRv
Y1Rlc3RGYWlsdXJlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3Rlc3Qu
VW5leHBlY3RlZEV4Y2VwdGlvbikpOgorICAgICAgICAgICAgZG9jdGVzdGZhaWx1cmUgPSBleGNp
bmZvLnZhbHVlCisgICAgICAgICAgICBleGFtcGxlID0gZG9jdGVzdGZhaWx1cmUuZXhhbXBsZQor
ICAgICAgICAgICAgdGVzdCA9IGRvY3Rlc3RmYWlsdXJlLnRlc3QKKyAgICAgICAgICAgIGZpbGVu
YW1lID0gdGVzdC5maWxlbmFtZQorICAgICAgICAgICAgaWYgdGVzdC5saW5lbm8gaXMgTm9uZToK
KyAgICAgICAgICAgICAgICBsaW5lbm8gPSBOb25lCisgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgIGxpbmVubyA9IHRlc3QubGluZW5vICsgZXhhbXBsZS5saW5lbm8gKyAxCisgICAg
ICAgICAgICBtZXNzYWdlID0gZXhjaW5mby50eXBlLl9fbmFtZV9fCisgICAgICAgICAgICByZXBy
bG9jYXRpb24gPSBSZXByRmlsZUxvY2F0aW9uKGZpbGVuYW1lLCBsaW5lbm8sIG1lc3NhZ2UpCisg
ICAgICAgICAgICBjaGVja2VyID0gX2dldF9jaGVja2VyKCkKKyAgICAgICAgICAgIHJlcG9ydF9j
aG9pY2UgPSBfZ2V0X3JlcG9ydF9jaG9pY2Uoc2VsZi5jb25maWcuZ2V0b3B0aW9uKCJkb2N0ZXN0
cmVwb3J0IikpCisgICAgICAgICAgICBpZiBsaW5lbm8gaXMgbm90IE5vbmU6CisgICAgICAgICAg
ICAgICAgbGluZXMgPSBkb2N0ZXN0ZmFpbHVyZS50ZXN0LmRvY3N0cmluZy5zcGxpdGxpbmVzKEZh
bHNlKQorICAgICAgICAgICAgICAgICMgYWRkIGxpbmUgbnVtYmVycyB0byB0aGUgbGVmdCBvZiB0
aGUgZXJyb3IgbWVzc2FnZQorICAgICAgICAgICAgICAgIGxpbmVzID0gWyIlMDNkICVzIiAlIChp
ICsgdGVzdC5saW5lbm8gKyAxLCB4KQorICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaSwg
eCkgaW4gZW51bWVyYXRlKGxpbmVzKV0KKyAgICAgICAgICAgICAgICAjIHRyaW0gZG9jc3RyaW5n
IGVycm9yIGxpbmVzIHRvIDEwCisgICAgICAgICAgICAgICAgbGluZXMgPSBsaW5lc1ttYXgoZXhh
bXBsZS5saW5lbm8gLSA5LCAwKTpleGFtcGxlLmxpbmVubyArIDFdCisgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgIGxpbmVzID0gWydFWEFNUExFIExPQ0FUSU9OIFVOS05PV04sIG5v
dCBzaG93aW5nIGFsbCB0ZXN0cyBvZiB0aGF0IGV4YW1wbGUnXQorICAgICAgICAgICAgICAgIGlu
ZGVudCA9ICc+Pj4nCisgICAgICAgICAgICAgICAgZm9yIGxpbmUgaW4gZXhhbXBsZS5zb3VyY2Uu
c3BsaXRsaW5lcygpOgorICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoJz8/PyAlcyAl
cycgJSAoaW5kZW50LCBsaW5lKSkKKyAgICAgICAgICAgICAgICAgICAgaW5kZW50ID0gJy4uLicK
KyAgICAgICAgICAgIGlmIGV4Y2luZm8uZXJyaXNpbnN0YW5jZShkb2N0ZXN0LkRvY1Rlc3RGYWls
dXJlKToKKyAgICAgICAgICAgICAgICBsaW5lcyArPSBjaGVja2VyLm91dHB1dF9kaWZmZXJlbmNl
KGV4YW1wbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkb2N0ZXN0ZmFpbHVyZS5nb3QsIHJlcG9ydF9jaG9pY2UpLnNwbGl0KCJcbiIpCisgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlubmVyX2V4Y2luZm8gPSBFeGNlcHRpb25J
bmZvKGV4Y2luZm8udmFsdWUuZXhjX2luZm8pCisgICAgICAgICAgICAgICAgbGluZXMgKz0gWyJV
TkVYUEVDVEVEIEVYQ0VQVElPTjogJXMiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcmVw
cihpbm5lcl9leGNpbmZvLnZhbHVlKV0KKyAgICAgICAgICAgICAgICBsaW5lcyArPSB0cmFjZWJh
Y2suZm9ybWF0X2V4Y2VwdGlvbigqZXhjaW5mby52YWx1ZS5leGNfaW5mbykKKyAgICAgICAgICAg
IHJldHVybiBSZXByRmFpbERvY3Rlc3QocmVwcmxvY2F0aW9uLCBsaW5lcykKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHJldHVybiBzdXBlcihEb2N0ZXN0SXRlbSwgc2VsZikucmVwcl9mYWls
dXJlKGV4Y2luZm8pCisKKyAgICBkZWYgcmVwb3J0aW5mbyhzZWxmKToKKyAgICAgICAgcmV0dXJu
IHNlbGYuZnNwYXRoLCBzZWxmLmR0ZXN0LmxpbmVubywgIltkb2N0ZXN0XSAlcyIgJSBzZWxmLm5h
bWUKKworCitkZWYgX2dldF9mbGFnX2xvb2t1cCgpOgorICAgIGltcG9ydCBkb2N0ZXN0CisgICAg
cmV0dXJuIGRpY3QoRE9OVF9BQ0NFUFRfVFJVRV9GT1JfMT1kb2N0ZXN0LkRPTlRfQUNDRVBUX1RS
VUVfRk9SXzEsCisgICAgICAgICAgICAgICAgRE9OVF9BQ0NFUFRfQkxBTktMSU5FPWRvY3Rlc3Qu
RE9OVF9BQ0NFUFRfQkxBTktMSU5FLAorICAgICAgICAgICAgICAgIE5PUk1BTElaRV9XSElURVNQ
QUNFPWRvY3Rlc3QuTk9STUFMSVpFX1dISVRFU1BBQ0UsCisgICAgICAgICAgICAgICAgRUxMSVBT
SVM9ZG9jdGVzdC5FTExJUFNJUywKKyAgICAgICAgICAgICAgICBJR05PUkVfRVhDRVBUSU9OX0RF
VEFJTD1kb2N0ZXN0LklHTk9SRV9FWENFUFRJT05fREVUQUlMLAorICAgICAgICAgICAgICAgIENP
TVBBUklTT05fRkxBR1M9ZG9jdGVzdC5DT01QQVJJU09OX0ZMQUdTLAorICAgICAgICAgICAgICAg
IEFMTE9XX1VOSUNPREU9X2dldF9hbGxvd191bmljb2RlX2ZsYWcoKSwKKyAgICAgICAgICAgICAg
ICBBTExPV19CWVRFUz1fZ2V0X2FsbG93X2J5dGVzX2ZsYWcoKSwKKyAgICAgICAgICAgICAgICAp
CisKKworZGVmIGdldF9vcHRpb25mbGFncyhwYXJlbnQpOgorICAgIG9wdGlvbmZsYWdzX3N0ciA9
IHBhcmVudC5jb25maWcuZ2V0aW5pKCJkb2N0ZXN0X29wdGlvbmZsYWdzIikKKyAgICBmbGFnX2xv
b2t1cF90YWJsZSA9IF9nZXRfZmxhZ19sb29rdXAoKQorICAgIGZsYWdfYWNjID0gMAorICAgIGZv
ciBmbGFnIGluIG9wdGlvbmZsYWdzX3N0cjoKKyAgICAgICAgZmxhZ19hY2MgfD0gZmxhZ19sb29r
dXBfdGFibGVbZmxhZ10KKyAgICByZXR1cm4gZmxhZ19hY2MKKworCitjbGFzcyBEb2N0ZXN0VGV4
dGZpbGUocHl0ZXN0Lk1vZHVsZSk6CisgICAgb2JqID0gTm9uZQorCisgICAgZGVmIGNvbGxlY3Qo
c2VsZik6CisgICAgICAgIGltcG9ydCBkb2N0ZXN0CisKKyAgICAgICAgIyBpbnNwaXJlZCBieSBk
b2N0ZXN0LnRlc3RmaWxlOyBpZGVhbGx5IHdlIHdvdWxkIHVzZSBpdCBkaXJlY3RseSwKKyAgICAg
ICAgIyBidXQgaXQgZG9lc24ndCBzdXBwb3J0IHBhc3NpbmcgYSBjdXN0b20gY2hlY2tlcgorICAg
ICAgICBlbmNvZGluZyA9IHNlbGYuY29uZmlnLmdldGluaSgiZG9jdGVzdF9lbmNvZGluZyIpCisg
ICAgICAgIHRleHQgPSBzZWxmLmZzcGF0aC5yZWFkX3RleHQoZW5jb2RpbmcpCisgICAgICAgIGZp
bGVuYW1lID0gc3RyKHNlbGYuZnNwYXRoKQorICAgICAgICBuYW1lID0gc2VsZi5mc3BhdGguYmFz
ZW5hbWUKKyAgICAgICAgZ2xvYnMgPSB7J19fbmFtZV9fJzogJ19fbWFpbl9fJ30KKworICAgICAg
ICBvcHRpb25mbGFncyA9IGdldF9vcHRpb25mbGFncyhzZWxmKQorICAgICAgICBydW5uZXIgPSBk
b2N0ZXN0LkRlYnVnUnVubmVyKHZlcmJvc2U9MCwgb3B0aW9uZmxhZ3M9b3B0aW9uZmxhZ3MsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlcj1fZ2V0X2NoZWNrZXIo
KSkKKyAgICAgICAgX2ZpeF9zcG9vZl9weXRob24yKHJ1bm5lciwgZW5jb2RpbmcpCisKKyAgICAg
ICAgcGFyc2VyID0gZG9jdGVzdC5Eb2NUZXN0UGFyc2VyKCkKKyAgICAgICAgdGVzdCA9IHBhcnNl
ci5nZXRfZG9jdGVzdCh0ZXh0LCBnbG9icywgbmFtZSwgZmlsZW5hbWUsIDApCisgICAgICAgIGlm
IHRlc3QuZXhhbXBsZXM6CisgICAgICAgICAgICB5aWVsZCBEb2N0ZXN0SXRlbSh0ZXN0Lm5hbWUs
IHNlbGYsIHJ1bm5lciwgdGVzdCkKKworCitkZWYgX2NoZWNrX2FsbF9za2lwcGVkKHRlc3QpOgor
ICAgICIiInJhaXNlcyBweXRlc3Quc2tpcCgpIGlmIGFsbCBleGFtcGxlcyBpbiB0aGUgZ2l2ZW4g
RG9jVGVzdCBoYXZlIHRoZSBTS0lQCisgICAgb3B0aW9uIHNldC4KKyAgICAiIiIKKyAgICBpbXBv
cnQgZG9jdGVzdAorICAgIGFsbF9za2lwcGVkID0gYWxsKHgub3B0aW9ucy5nZXQoZG9jdGVzdC5T
S0lQLCBGYWxzZSkgZm9yIHggaW4gdGVzdC5leGFtcGxlcykKKyAgICBpZiBhbGxfc2tpcHBlZDoK
KyAgICAgICAgcHl0ZXN0LnNraXAoJ2FsbCB0ZXN0cyBza2lwcGVkIGJ5ICtTS0lQIG9wdGlvbicp
CisKKworY2xhc3MgRG9jdGVzdE1vZHVsZShweXRlc3QuTW9kdWxlKToKKyAgICBkZWYgY29sbGVj
dChzZWxmKToKKyAgICAgICAgaW1wb3J0IGRvY3Rlc3QKKyAgICAgICAgaWYgc2VsZi5mc3BhdGgu
YmFzZW5hbWUgPT0gImNvbmZ0ZXN0LnB5IjoKKyAgICAgICAgICAgIG1vZHVsZSA9IHNlbGYuY29u
ZmlnLnBsdWdpbm1hbmFnZXIuX2ltcG9ydGNvbmZ0ZXN0KHNlbGYuZnNwYXRoKQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG1vZHVsZSA9IHNlbGYuZnNw
YXRoLnB5aW1wb3J0KCkKKyAgICAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAg
ICAgICAgICBpZiBzZWxmLmNvbmZpZy5nZXR2YWx1ZSgnZG9jdGVzdF9pZ25vcmVfaW1wb3J0X2Vy
cm9ycycpOgorICAgICAgICAgICAgICAgICAgICBweXRlc3Quc2tpcCgndW5hYmxlIHRvIGltcG9y
dCBtb2R1bGUgJXInICUgc2VsZi5mc3BhdGgpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgIyB1c2VzIGludGVybmFsIGRvY3Rlc3QgbW9k
dWxlIHBhcnNpbmcgbWVjaGFuaXNtCisgICAgICAgIGZpbmRlciA9IGRvY3Rlc3QuRG9jVGVzdEZp
bmRlcigpCisgICAgICAgIG9wdGlvbmZsYWdzID0gZ2V0X29wdGlvbmZsYWdzKHNlbGYpCisgICAg
ICAgIHJ1bm5lciA9IGRvY3Rlc3QuRGVidWdSdW5uZXIodmVyYm9zZT0wLCBvcHRpb25mbGFncz1v
cHRpb25mbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2Vy
PV9nZXRfY2hlY2tlcigpKQorCisgICAgICAgIGZvciB0ZXN0IGluIGZpbmRlci5maW5kKG1vZHVs
ZSwgbW9kdWxlLl9fbmFtZV9fKToKKyAgICAgICAgICAgIGlmIHRlc3QuZXhhbXBsZXM6ICAjIHNr
aXAgZW1wdHkgZG9jdGVzdHMKKyAgICAgICAgICAgICAgICB5aWVsZCBEb2N0ZXN0SXRlbSh0ZXN0
Lm5hbWUsIHNlbGYsIHJ1bm5lciwgdGVzdCkKKworCitkZWYgX3NldHVwX2ZpeHR1cmVzKGRvY3Rl
c3RfaXRlbSk6CisgICAgIiIiCisgICAgVXNlZCBieSBEb2N0ZXN0VGV4dGZpbGUgYW5kIERvY3Rl
c3RJdGVtIHRvIHNldHVwIGZpeHR1cmUgaW5mb3JtYXRpb24uCisgICAgIiIiCisgICAgZGVmIGZ1
bmMoKToKKyAgICAgICAgcGFzcworCisgICAgZG9jdGVzdF9pdGVtLmZ1bmNhcmdzID0ge30KKyAg
ICBmbSA9IGRvY3Rlc3RfaXRlbS5zZXNzaW9uLl9maXh0dXJlbWFuYWdlcgorICAgIGRvY3Rlc3Rf
aXRlbS5fZml4dHVyZWluZm8gPSBmbS5nZXRmaXh0dXJlaW5mbyhub2RlPWRvY3Rlc3RfaXRlbSwg
ZnVuYz1mdW5jLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjbHM9Tm9uZSwgZnVuY2FyZ3M9RmFsc2UpCisgICAgZml4dHVyZV9yZXF1ZXN0ID0gRml4
dHVyZVJlcXVlc3QoZG9jdGVzdF9pdGVtKQorICAgIGZpeHR1cmVfcmVxdWVzdC5fZmlsbGZpeHR1
cmVzKCkKKyAgICByZXR1cm4gZml4dHVyZV9yZXF1ZXN0CisKKworZGVmIF9nZXRfY2hlY2tlcigp
OgorICAgICIiIgorICAgIFJldHVybnMgYSBkb2N0ZXN0Lk91dHB1dENoZWNrZXIgc3ViY2xhc3Mg
dGhhdCB0YWtlcyBpbiBhY2NvdW50IHRoZQorICAgIEFMTE9XX1VOSUNPREUgb3B0aW9uIHRvIGln
bm9yZSB1JycgcHJlZml4ZXMgaW4gc3RyaW5ncyBhbmQgQUxMT1dfQllURVMKKyAgICB0byBzdHJp
cCBiJycgcHJlZml4ZXMuCisgICAgVXNlZnVsIHdoZW4gdGhlIHNhbWUgZG9jdGVzdCBzaG91bGQg
cnVuIGluIFB5dGhvbiAyIGFuZCBQeXRob24gMy4KKworICAgIEFuIGlubmVyIGNsYXNzIGlzIHVz
ZWQgdG8gYXZvaWQgaW1wb3J0aW5nICJkb2N0ZXN0IiBhdCB0aGUgbW9kdWxlCisgICAgbGV2ZWwu
CisgICAgIiIiCisgICAgaWYgaGFzYXR0cihfZ2V0X2NoZWNrZXIsICdMaXRlcmFsc091dHB1dENo
ZWNrZXInKToKKyAgICAgICAgcmV0dXJuIF9nZXRfY2hlY2tlci5MaXRlcmFsc091dHB1dENoZWNr
ZXIoKQorCisgICAgaW1wb3J0IGRvY3Rlc3QKKyAgICBpbXBvcnQgcmUKKworICAgIGNsYXNzIExp
dGVyYWxzT3V0cHV0Q2hlY2tlcihkb2N0ZXN0Lk91dHB1dENoZWNrZXIpOgorICAgICAgICAiIiIK
KyAgICAgICAgQ29waWVkIGZyb20gZG9jdGVzdF9ub3NlX3BsdWdpbi5weSBmcm9tIHRoZSBubHRr
IHByb2plY3Q6CisgICAgICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vbmx0ay9ubHRrCisKKyAg
ICAgICAgRnVydGhlciBleHRlbmRlZCB0byBhbHNvIHN1cHBvcnQgYnl0ZSBsaXRlcmFscy4KKyAg
ICAgICAgIiIiCisKKyAgICAgICAgX3VuaWNvZGVfbGl0ZXJhbF9yZSA9IHJlLmNvbXBpbGUociIo
XFd8XilbdVVdKFtyUl0/W1wnXCJdKSIsIHJlLlVOSUNPREUpCisgICAgICAgIF9ieXRlc19saXRl
cmFsX3JlID0gcmUuY29tcGlsZShyIihcV3xeKVtiQl0oW3JSXT9bXCdcIl0pIiwgcmUuVU5JQ09E
RSkKKworICAgICAgICBkZWYgY2hlY2tfb3V0cHV0KHNlbGYsIHdhbnQsIGdvdCwgb3B0aW9uZmxh
Z3MpOgorICAgICAgICAgICAgcmVzID0gZG9jdGVzdC5PdXRwdXRDaGVja2VyLmNoZWNrX291dHB1
dChzZWxmLCB3YW50LCBnb3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG9wdGlvbmZsYWdzKQorICAgICAgICAgICAgaWYgcmVzOgorICAgICAg
ICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgICAgIGFsbG93X3VuaWNvZGUgPSBvcHRp
b25mbGFncyAmIF9nZXRfYWxsb3dfdW5pY29kZV9mbGFnKCkKKyAgICAgICAgICAgIGFsbG93X2J5
dGVzID0gb3B0aW9uZmxhZ3MgJiBfZ2V0X2FsbG93X2J5dGVzX2ZsYWcoKQorICAgICAgICAgICAg
aWYgbm90IGFsbG93X3VuaWNvZGUgYW5kIG5vdCBhbGxvd19ieXRlczoKKyAgICAgICAgICAgICAg
ICByZXR1cm4gRmFsc2UKKworICAgICAgICAgICAgZWxzZTogICMgcHJhZ21hOiBubyBjb3Zlcgor
ICAgICAgICAgICAgICAgIGRlZiByZW1vdmVfcHJlZml4ZXMocmVnZXgsIHR4dCk6CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiByZS5zdWIocmVnZXgsIHInXDFcMicsIHR4dCkKKworICAgICAg
ICAgICAgICAgIGlmIGFsbG93X3VuaWNvZGU6CisgICAgICAgICAgICAgICAgICAgIHdhbnQgPSBy
ZW1vdmVfcHJlZml4ZXMoc2VsZi5fdW5pY29kZV9saXRlcmFsX3JlLCB3YW50KQorICAgICAgICAg
ICAgICAgICAgICBnb3QgPSByZW1vdmVfcHJlZml4ZXMoc2VsZi5fdW5pY29kZV9saXRlcmFsX3Jl
LCBnb3QpCisgICAgICAgICAgICAgICAgaWYgYWxsb3dfYnl0ZXM6CisgICAgICAgICAgICAgICAg
ICAgIHdhbnQgPSByZW1vdmVfcHJlZml4ZXMoc2VsZi5fYnl0ZXNfbGl0ZXJhbF9yZSwgd2FudCkK
KyAgICAgICAgICAgICAgICAgICAgZ290ID0gcmVtb3ZlX3ByZWZpeGVzKHNlbGYuX2J5dGVzX2xp
dGVyYWxfcmUsIGdvdCkKKyAgICAgICAgICAgICAgICByZXMgPSBkb2N0ZXN0Lk91dHB1dENoZWNr
ZXIuY2hlY2tfb3V0cHV0KHNlbGYsIHdhbnQsIGdvdCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmZsYWdzKQorICAgICAgICAg
ICAgICAgIHJldHVybiByZXMKKworICAgIF9nZXRfY2hlY2tlci5MaXRlcmFsc091dHB1dENoZWNr
ZXIgPSBMaXRlcmFsc091dHB1dENoZWNrZXIKKyAgICByZXR1cm4gX2dldF9jaGVja2VyLkxpdGVy
YWxzT3V0cHV0Q2hlY2tlcigpCisKKworZGVmIF9nZXRfYWxsb3dfdW5pY29kZV9mbGFnKCk6Cisg
ICAgIiIiCisgICAgUmVnaXN0ZXJzIGFuZCByZXR1cm5zIHRoZSBBTExPV19VTklDT0RFIGZsYWcu
CisgICAgIiIiCisgICAgaW1wb3J0IGRvY3Rlc3QKKyAgICByZXR1cm4gZG9jdGVzdC5yZWdpc3Rl
cl9vcHRpb25mbGFnKCdBTExPV19VTklDT0RFJykKKworCitkZWYgX2dldF9hbGxvd19ieXRlc19m
bGFnKCk6CisgICAgIiIiCisgICAgUmVnaXN0ZXJzIGFuZCByZXR1cm5zIHRoZSBBTExPV19CWVRF
UyBmbGFnLgorICAgICIiIgorICAgIGltcG9ydCBkb2N0ZXN0CisgICAgcmV0dXJuIGRvY3Rlc3Qu
cmVnaXN0ZXJfb3B0aW9uZmxhZygnQUxMT1dfQllURVMnKQorCisKK2RlZiBfZ2V0X3JlcG9ydF9j
aG9pY2Uoa2V5KToKKyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGFjdHVh
bCBgZG9jdGVzdGAgbW9kdWxlIGZsYWcgdmFsdWUsIHdlIHdhbnQgdG8gZG8gaXQgYXMgbGF0ZSBh
cyBwb3NzaWJsZSB0byBhdm9pZAorICAgIGltcG9ydGluZyBgZG9jdGVzdGAgYW5kIGFsbCBpdHMg
ZGVwZW5kZW5jaWVzIHdoZW4gcGFyc2luZyBvcHRpb25zLCBhcyBpdCBhZGRzIG92ZXJoZWFkIGFu
ZCBicmVha3MgdGVzdHMuCisgICAgIiIiCisgICAgaW1wb3J0IGRvY3Rlc3QKKworICAgIHJldHVy
biB7CisgICAgICAgIERPQ1RFU1RfUkVQT1JUX0NIT0lDRV9VRElGRjogZG9jdGVzdC5SRVBPUlRf
VURJRkYsCisgICAgICAgIERPQ1RFU1RfUkVQT1JUX0NIT0lDRV9DRElGRjogZG9jdGVzdC5SRVBP
UlRfQ0RJRkYsCisgICAgICAgIERPQ1RFU1RfUkVQT1JUX0NIT0lDRV9ORElGRjogZG9jdGVzdC5S
RVBPUlRfTkRJRkYsCisgICAgICAgIERPQ1RFU1RfUkVQT1JUX0NIT0lDRV9PTkxZX0ZJUlNUX0ZB
SUxVUkU6IGRvY3Rlc3QuUkVQT1JUX09OTFlfRklSU1RfRkFJTFVSRSwKKyAgICAgICAgRE9DVEVT
VF9SRVBPUlRfQ0hPSUNFX05PTkU6IDAsCisgICAgfVtrZXldCisKKworZGVmIF9maXhfc3Bvb2Zf
cHl0aG9uMihydW5uZXIsIGVuY29kaW5nKToKKyAgICAiIiIKKyAgICBJbnN0YWxscyBhICJTcG9v
Zk91dCIgaW50byB0aGUgZ2l2ZW4gRGVidWdSdW5uZXIgc28gaXQgcHJvcGVybHkgZGVhbHMgd2l0
aCB1bmljb2RlIG91dHB1dC4gVGhpcworICAgIHNob3VsZCBwYXRjaCBvbmx5IGRvY3Rlc3RzIGZv
ciB0ZXh0IGZpbGVzIGJlY2F1c2UgdGhleSBkb24ndCBoYXZlIGEgd2F5IHRvIGRlY2xhcmUgdGhl
aXIKKyAgICBlbmNvZGluZy4gRG9jdGVzdHMgaW4gZG9jc3RyaW5ncyBmcm9tIFB5dGhvbiBtb2R1
bGVzIGRvbid0IGhhdmUgdGhlIHNhbWUgcHJvYmxlbSBnaXZlbiB0aGF0CisgICAgUHl0aG9uIGFs
cmVhZHkgZGVjb2RlZCB0aGUgc3RyaW5ncy4KKworICAgIFRoaXMgZml4ZXMgdGhlIHByb2JsZW0g
cmVsYXRlZCBpbiBpc3N1ZSAjMjQzNC4KKyAgICAiIiIKKyAgICBmcm9tIF9weXRlc3QuY29tcGF0
IGltcG9ydCBfUFkyCisgICAgaWYgbm90IF9QWTI6CisgICAgICAgIHJldHVybgorCisgICAgZnJv
bSBkb2N0ZXN0IGltcG9ydCBfU3Bvb2ZPdXQKKworICAgIGNsYXNzIFVuaWNvZGVTcG9vZihfU3Bv
b2ZPdXQpOgorCisgICAgICAgIGRlZiBnZXR2YWx1ZShzZWxmKToKKyAgICAgICAgICAgIHJlc3Vs
dCA9IF9TcG9vZk91dC5nZXR2YWx1ZShzZWxmKQorICAgICAgICAgICAgaWYgZW5jb2Rpbmc6Cisg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmRlY29kZShlbmNvZGluZykKKyAgICAgICAg
ICAgIHJldHVybiByZXN1bHQKKworICAgIHJ1bm5lci5fZmFrZW91dCA9IFVuaWNvZGVTcG9vZigp
CisKKworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdzZXNzaW9uJykKK2RlZiBkb2N0ZXN0X25hbWVz
cGFjZSgpOgorICAgICIiIgorICAgIEluamVjdCBuYW1lcyBpbnRvIHRoZSBkb2N0ZXN0IG5hbWVz
cGFjZS4KKyAgICAiIiIKKyAgICByZXR1cm4gZGljdCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9fcHl0ZXN0L2ZpeHR1cmVzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9maXh0dXJlcy5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lMDlmZmFkZGJhNzNmZjg0YjIzOWQ0ZjRhYTI5ZTk2ZDA1NmM1ZDhkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9maXh0dXJlcy5weQpAQCAtMCwwICsx
LDExNDcgQEAKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lv
biwgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IGZ1bmN0b29scworaW1wb3J0IGluc3BlY3QKK2lt
cG9ydCBzeXMKK2ltcG9ydCB3YXJuaW5ncworZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgT3JkZXJl
ZERpY3QKKworaW1wb3J0IGF0dHIKK2ltcG9ydCBweQorZnJvbSBweS5fY29kZS5jb2RlIGltcG9y
dCBGb3JtYXR0ZWRFeGNpbmZvCisKK2ltcG9ydCBfcHl0ZXN0Citmcm9tIF9weXRlc3QgaW1wb3J0
IG5vZGVzCitmcm9tIF9weXRlc3QuX2NvZGUuY29kZSBpbXBvcnQgVGVybWluYWxSZXByCitmcm9t
IF9weXRlc3QuY29tcGF0IGltcG9ydCAoCisgICAgTk9UU0VULCBleGNfY2xlYXIsIF9mb3JtYXRf
YXJncywKKyAgICBnZXRmc2xpbmVubywgZ2V0X3JlYWxfZnVuYywKKyAgICBpc19nZW5lcmF0b3Is
IGlzY2xhc3MsIGdldGltZnVuYywKKyAgICBnZXRsb2NhdGlvbiwgZ2V0ZnVuY2FyZ25hbWVzLAor
ICAgIHNhZmVfZ2V0YXR0ciwKKyAgICBGdW5jYXJnbmFtZXNDb21wYXRBdHRyLAorKQorZnJvbSBf
cHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBmYWlsLCBURVNUX09VVENPTUUKKworCitkZWYgcHl0ZXN0
X3Nlc3Npb25zdGFydChzZXNzaW9uKToKKyAgICBpbXBvcnQgX3B5dGVzdC5weXRob24KKworICAg
IHNjb3BlbmFtZTJjbGFzcy51cGRhdGUoeworICAgICAgICAnY2xhc3MnOiBfcHl0ZXN0LnB5dGhv
bi5DbGFzcywKKyAgICAgICAgJ21vZHVsZSc6IF9weXRlc3QucHl0aG9uLk1vZHVsZSwKKyAgICAg
ICAgJ2Z1bmN0aW9uJzogX3B5dGVzdC5tYWluLkl0ZW0sCisgICAgICAgICdzZXNzaW9uJzogX3B5
dGVzdC5tYWluLlNlc3Npb24sCisgICAgfSkKKyAgICBzZXNzaW9uLl9maXh0dXJlbWFuYWdlciA9
IEZpeHR1cmVNYW5hZ2VyKHNlc3Npb24pCisKKworc2NvcGVuYW1lMmNsYXNzID0ge30KKworCitz
Y29wZTJwcm9wcyA9IGRpY3Qoc2Vzc2lvbj0oKSkKK3Njb3BlMnByb3BzWyJtb2R1bGUiXSA9ICgi
ZnNwYXRoIiwgIm1vZHVsZSIpCitzY29wZTJwcm9wc1siY2xhc3MiXSA9IHNjb3BlMnByb3BzWyJt
b2R1bGUiXSArICgiY2xzIiwpCitzY29wZTJwcm9wc1siaW5zdGFuY2UiXSA9IHNjb3BlMnByb3Bz
WyJjbGFzcyJdICsgKCJpbnN0YW5jZSIsICkKK3Njb3BlMnByb3BzWyJmdW5jdGlvbiJdID0gc2Nv
cGUycHJvcHNbImluc3RhbmNlIl0gKyAoImZ1bmN0aW9uIiwgImtleXdvcmRzIikKKworCitkZWYg
c2NvcGVwcm9wZXJ0eShuYW1lPU5vbmUsIGRvYz1Ob25lKToKKyAgICBkZWYgZGVjb3JhdGVzY29w
ZShmdW5jKToKKyAgICAgICAgc2NvcGVuYW1lID0gbmFtZSBvciBmdW5jLl9fbmFtZV9fCisKKyAg
ICAgICAgZGVmIHByb3ZpZGUoc2VsZik6CisgICAgICAgICAgICBpZiBmdW5jLl9fbmFtZV9fIGlu
IHNjb3BlMnByb3BzW3NlbGYuc2NvcGVdOgorICAgICAgICAgICAgICAgIHJldHVybiBmdW5jKHNl
bGYpCisgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigiJXMgbm90IGF2YWlsYWJsZSBp
biAlcy1zY29wZWQgY29udGV4dCIgJSAoCisgICAgICAgICAgICAgICAgc2NvcGVuYW1lLCBzZWxm
LnNjb3BlKSkKKworICAgICAgICByZXR1cm4gcHJvcGVydHkocHJvdmlkZSwgTm9uZSwgTm9uZSwg
ZnVuYy5fX2RvY19fKQorICAgIHJldHVybiBkZWNvcmF0ZXNjb3BlCisKKworZGVmIGdldF9zY29w
ZV9ub2RlKG5vZGUsIHNjb3BlKToKKyAgICBjbHMgPSBzY29wZW5hbWUyY2xhc3MuZ2V0KHNjb3Bl
KQorICAgIGlmIGNscyBpcyBOb25lOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ1bmtub3du
IHNjb3BlIikKKyAgICByZXR1cm4gbm9kZS5nZXRwYXJlbnQoY2xzKQorCisKK2RlZiBhZGRfZnVu
Y2FyZ19wc2V1ZG9fZml4dHVyZV9kZWYoY29sbGVjdG9yLCBtZXRhZnVuYywgZml4dHVyZW1hbmFn
ZXIpOgorICAgICMgdGhpcyBmdW5jdGlvbiB3aWxsIHRyYW5zZm9ybSBhbGwgY29sbGVjdGVkIGNh
bGxzIHRvIGEgZnVuY3Rpb25zCisgICAgIyBpZiB0aGV5IHVzZSBkaXJlY3QgZnVuY2FyZ3MgKGku
ZS4gZGlyZWN0IHBhcmFtZXRyaXphdGlvbikKKyAgICAjIGJlY2F1c2Ugd2Ugd2FudCBsYXRlciB0
ZXN0IGV4ZWN1dGlvbiB0byBiZSBhYmxlIHRvIHJlbHkgb24KKyAgICAjIGFuIGV4aXN0aW5nIEZp
eHR1cmVEZWYgc3RydWN0dXJlIGZvciBhbGwgYXJndW1lbnRzLgorICAgICMgWFhYIHdlIGNhbiBw
cm9iYWJseSBhdm9pZCB0aGlzIGFsZ29yaXRobSAgaWYgd2UgbW9kaWZ5IENhbGxTcGVjMgorICAg
ICMgdG8gZGlyZWN0bHkgY2FyZSBmb3IgY3JlYXRpbmcgdGhlIGZpeHR1cmVkZWZzIHdpdGhpbiBp
dHMgbWV0aG9kcy4KKyAgICBpZiBub3QgbWV0YWZ1bmMuX2NhbGxzWzBdLmZ1bmNhcmdzOgorICAg
ICAgICByZXR1cm4gICMgdGhpcyBmdW5jdGlvbiBjYWxsIGRvZXMgbm90IGhhdmUgZGlyZWN0IHBh
cmFtZXRyaXphdGlvbgorICAgICMgY29sbGVjdCBmdW5jYXJncyBvZiBhbGwgY2FsbHNwZWNzIGlu
dG8gYSBsaXN0IG9mIHZhbHVlcworICAgIGFyZzJwYXJhbXMgPSB7fQorICAgIGFyZzJzY29wZSA9
IHt9CisgICAgZm9yIGNhbGxzcGVjIGluIG1ldGFmdW5jLl9jYWxsczoKKyAgICAgICAgZm9yIGFy
Z25hbWUsIGFyZ3ZhbHVlIGluIGNhbGxzcGVjLmZ1bmNhcmdzLml0ZW1zKCk6CisgICAgICAgICAg
ICBhc3NlcnQgYXJnbmFtZSBub3QgaW4gY2FsbHNwZWMucGFyYW1zCisgICAgICAgICAgICBjYWxs
c3BlYy5wYXJhbXNbYXJnbmFtZV0gPSBhcmd2YWx1ZQorICAgICAgICAgICAgYXJnMnBhcmFtc19s
aXN0ID0gYXJnMnBhcmFtcy5zZXRkZWZhdWx0KGFyZ25hbWUsIFtdKQorICAgICAgICAgICAgY2Fs
bHNwZWMuaW5kaWNlc1thcmduYW1lXSA9IGxlbihhcmcycGFyYW1zX2xpc3QpCisgICAgICAgICAg
ICBhcmcycGFyYW1zX2xpc3QuYXBwZW5kKGFyZ3ZhbHVlKQorICAgICAgICAgICAgaWYgYXJnbmFt
ZSBub3QgaW4gYXJnMnNjb3BlOgorICAgICAgICAgICAgICAgIHNjb3BlbnVtID0gY2FsbHNwZWMu
X2FyZzJzY29wZW51bS5nZXQoYXJnbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlbnVtX2Z1bmN0aW9uKQorICAgICAgICAgICAg
ICAgIGFyZzJzY29wZVthcmduYW1lXSA9IHNjb3Blc1tzY29wZW51bV0KKyAgICAgICAgY2FsbHNw
ZWMuZnVuY2FyZ3MuY2xlYXIoKQorCisgICAgIyByZWdpc3RlciBhcnRpZmljaWFsIEZpeHR1cmVE
ZWYncyBzbyB0aGF0IGxhdGVyIGF0IHRlc3QgZXhlY3V0aW9uCisgICAgIyB0aW1lIHdlIGNhbiBy
ZWx5IG9uIGEgcHJvcGVyIEZpeHR1cmVEZWYgdG8gZXhpc3QgZm9yIGZpeHR1cmUgc2V0dXAuCisg
ICAgYXJnMmZpeHR1cmVkZWZzID0gbWV0YWZ1bmMuX2FyZzJmaXh0dXJlZGVmcworICAgIGZvciBh
cmduYW1lLCB2YWx1ZWxpc3QgaW4gYXJnMnBhcmFtcy5pdGVtcygpOgorICAgICAgICAjIGlmIHdl
IGhhdmUgYSBzY29wZSB0aGF0IGlzIGhpZ2hlciB0aGFuIGZ1bmN0aW9uIHdlIG5lZWQKKyAgICAg
ICAgIyB0byBtYWtlIHN1cmUgd2Ugb25seSBldmVyIGNyZWF0ZSBhbiBhY2NvcmRpbmcgZml4dHVy
ZWRlZiBvbgorICAgICAgICAjIGEgcGVyLXNjb3BlIGJhc2lzLiBXZSB0aHVzIHN0b3JlIGFuZCBj
YWNoZSB0aGUgZml4dHVyZWRlZiBvbiB0aGUKKyAgICAgICAgIyBub2RlIHJlbGF0ZWQgdG8gdGhl
IHNjb3BlLgorICAgICAgICBzY29wZSA9IGFyZzJzY29wZVthcmduYW1lXQorICAgICAgICBub2Rl
ID0gTm9uZQorICAgICAgICBpZiBzY29wZSAhPSAiZnVuY3Rpb24iOgorICAgICAgICAgICAgbm9k
ZSA9IGdldF9zY29wZV9ub2RlKGNvbGxlY3Rvciwgc2NvcGUpCisgICAgICAgICAgICBpZiBub2Rl
IGlzIE5vbmU6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHNjb3BlID09ICJjbGFzcyIgYW5kIGlz
aW5zdGFuY2UoY29sbGVjdG9yLCBfcHl0ZXN0LnB5dGhvbi5Nb2R1bGUpCisgICAgICAgICAgICAg
ICAgIyB1c2UgbW9kdWxlLWxldmVsIGNvbGxlY3RvciBmb3IgY2xhc3Mtc2NvcGUgKGZvciBub3cp
CisgICAgICAgICAgICAgICAgbm9kZSA9IGNvbGxlY3RvcgorICAgICAgICBpZiBub2RlIGFuZCBh
cmduYW1lIGluIG5vZGUuX25hbWUycHNldWRvZml4dHVyZWRlZjoKKyAgICAgICAgICAgIGFyZzJm
aXh0dXJlZGVmc1thcmduYW1lXSA9IFtub2RlLl9uYW1lMnBzZXVkb2ZpeHR1cmVkZWZbYXJnbmFt
ZV1dCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmaXh0dXJlZGVmID0gRml4dHVyZURlZihm
aXh0dXJlbWFuYWdlciwgJycsIGFyZ25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnZXRfZGlyZWN0X3BhcmFtX2ZpeHR1cmVfZnVuYywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFyZzJzY29wZVthcmduYW1lXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZhbHVlbGlzdCwgRmFsc2UsIEZhbHNlKQorICAgICAgICAgICAg
YXJnMmZpeHR1cmVkZWZzW2FyZ25hbWVdID0gW2ZpeHR1cmVkZWZdCisgICAgICAgICAgICBpZiBu
b2RlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIG5vZGUuX25hbWUycHNldWRvZml4dHVy
ZWRlZlthcmduYW1lXSA9IGZpeHR1cmVkZWYKKworCitkZWYgZ2V0Zml4dHVyZW1hcmtlcihvYmop
OgorICAgICIiIiByZXR1cm4gZml4dHVyZW1hcmtlciBvciBOb25lIGlmIGl0IGRvZXNuJ3QgZXhp
c3Qgb3IgcmFpc2VkCisgICAgZXhjZXB0aW9ucy4iIiIKKyAgICB0cnk6CisgICAgICAgIHJldHVy
biBnZXRhdHRyKG9iaiwgIl9weXRlc3RmaXh0dXJlZnVuY3Rpb24iLCBOb25lKQorICAgIGV4Y2Vw
dCBURVNUX09VVENPTUU6CisgICAgICAgICMgc29tZSBvYmplY3RzIHJhaXNlIGVycm9ycyBsaWtl
IHJlcXVlc3QgKGZyb20gZmxhc2sgaW1wb3J0IHJlcXVlc3QpCisgICAgICAgICMgd2UgZG9uJ3Qg
ZXhwZWN0IHRoZW0gdG8gYmUgZml4dHVyZSBmdW5jdGlvbnMKKyAgICAgICAgcmV0dXJuIE5vbmUK
KworCitkZWYgZ2V0X3BhcmFtZXRyaXplZF9maXh0dXJlX2tleXMoaXRlbSwgc2NvcGVudW0pOgor
ICAgICIiIiByZXR1cm4gbGlzdCBvZiBrZXlzIGZvciBhbGwgcGFyYW1ldHJpemVkIGFyZ3VtZW50
cyB3aGljaCBtYXRjaAorICAgIHRoZSBzcGVjaWZpZWQgc2NvcGUuICIiIgorICAgIGFzc2VydCBz
Y29wZW51bSA8IHNjb3BlbnVtX2Z1bmN0aW9uICAjIGZ1bmN0aW9uCisgICAgdHJ5OgorICAgICAg
ICBjcyA9IGl0ZW0uY2FsbHNwZWMKKyAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAg
IHBhc3MKKyAgICBlbHNlOgorICAgICAgICAjIGNzLmluZGljZXMuaXRlbXMoKSBpcyByYW5kb20g
b3JkZXIgb2YgYXJnbmFtZXMuICBOZWVkIHRvCisgICAgICAgICMgc29ydCB0aGlzIHNvIHRoYXQg
ZGlmZmVyZW50IGNhbGxzIHRvCisgICAgICAgICMgZ2V0X3BhcmFtZXRyaXplZF9maXh0dXJlX2tl
eXMgd2lsbCBiZSBkZXRlcm1pbmlzdGljLgorICAgICAgICBmb3IgYXJnbmFtZSwgcGFyYW1faW5k
ZXggaW4gc29ydGVkKGNzLmluZGljZXMuaXRlbXMoKSk6CisgICAgICAgICAgICBpZiBjcy5fYXJn
MnNjb3BlbnVtW2FyZ25hbWVdICE9IHNjb3BlbnVtOgorICAgICAgICAgICAgICAgIGNvbnRpbnVl
CisgICAgICAgICAgICBpZiBzY29wZW51bSA9PSAwOiAgICAjIHNlc3Npb24KKyAgICAgICAgICAg
ICAgICBrZXkgPSAoYXJnbmFtZSwgcGFyYW1faW5kZXgpCisgICAgICAgICAgICBlbGlmIHNjb3Bl
bnVtID09IDE6ICAjIG1vZHVsZQorICAgICAgICAgICAgICAgIGtleSA9IChhcmduYW1lLCBwYXJh
bV9pbmRleCwgaXRlbS5mc3BhdGgpCisgICAgICAgICAgICBlbGlmIHNjb3BlbnVtID09IDI6ICAj
IGNsYXNzCisgICAgICAgICAgICAgICAga2V5ID0gKGFyZ25hbWUsIHBhcmFtX2luZGV4LCBpdGVt
LmZzcGF0aCwgaXRlbS5jbHMpCisgICAgICAgICAgICB5aWVsZCBrZXkKKworCisjIGFsZ29yaXRo
bSBmb3Igc29ydGluZyBvbiBhIHBlci1wYXJhbWV0cml6ZWQgcmVzb3VyY2Ugc2V0dXAgYmFzaXMK
KyMgaXQgaXMgY2FsbGVkIGZvciBzY29wZW51bT09MCAoc2Vzc2lvbikgZmlyc3QgYW5kIHBlcmZv
cm1zIHNvcnRpbmcKKyMgZG93biB0byB0aGUgbG93ZXIgc2NvcGVzIHN1Y2ggYXMgdG8gbWluaW1p
emUgbnVtYmVyIG9mICJoaWdoIHNjb3BlIgorIyBzZXR1cHMgYW5kIHRlYXJkb3ducworCitkZWYg
cmVvcmRlcl9pdGVtcyhpdGVtcyk6CisgICAgYXJna2V5c19jYWNoZSA9IHt9CisgICAgZm9yIHNj
b3BlbnVtIGluIHJhbmdlKDAsIHNjb3BlbnVtX2Z1bmN0aW9uKToKKyAgICAgICAgYXJna2V5c19j
YWNoZVtzY29wZW51bV0gPSBkID0ge30KKyAgICAgICAgZm9yIGl0ZW0gaW4gaXRlbXM6CisgICAg
ICAgICAgICBrZXlzID0gT3JkZXJlZERpY3QuZnJvbWtleXMoZ2V0X3BhcmFtZXRyaXplZF9maXh0
dXJlX2tleXMoaXRlbSwgc2NvcGVudW0pKQorICAgICAgICAgICAgaWYga2V5czoKKyAgICAgICAg
ICAgICAgICBkW2l0ZW1dID0ga2V5cworICAgIHJldHVybiByZW9yZGVyX2l0ZW1zX2F0c2NvcGUo
aXRlbXMsIHNldCgpLCBhcmdrZXlzX2NhY2hlLCAwKQorCisKK2RlZiByZW9yZGVyX2l0ZW1zX2F0
c2NvcGUoaXRlbXMsIGlnbm9yZSwgYXJna2V5c19jYWNoZSwgc2NvcGVudW0pOgorICAgIGlmIHNj
b3BlbnVtID49IHNjb3BlbnVtX2Z1bmN0aW9uIG9yIGxlbihpdGVtcykgPCAzOgorICAgICAgICBy
ZXR1cm4gaXRlbXMKKyAgICBpdGVtc19kb25lID0gW10KKyAgICB3aGlsZSAxOgorICAgICAgICBp
dGVtc19iZWZvcmUsIGl0ZW1zX3NhbWUsIGl0ZW1zX290aGVyLCBuZXdpZ25vcmUgPSBcCisgICAg
ICAgICAgICBzbGljZV9pdGVtcyhpdGVtcywgaWdub3JlLCBhcmdrZXlzX2NhY2hlW3Njb3BlbnVt
XSkKKyAgICAgICAgaXRlbXNfYmVmb3JlID0gcmVvcmRlcl9pdGVtc19hdHNjb3BlKAorICAgICAg
ICAgICAgaXRlbXNfYmVmb3JlLCBpZ25vcmUsIGFyZ2tleXNfY2FjaGUsIHNjb3BlbnVtICsgMSkK
KyAgICAgICAgaWYgaXRlbXNfc2FtZSBpcyBOb25lOgorICAgICAgICAgICAgIyBub3RoaW5nIHRv
IHJlb3JkZXIgaW4gdGhpcyBzY29wZQorICAgICAgICAgICAgYXNzZXJ0IGl0ZW1zX290aGVyIGlz
IE5vbmUKKyAgICAgICAgICAgIHJldHVybiBpdGVtc19kb25lICsgaXRlbXNfYmVmb3JlCisgICAg
ICAgIGl0ZW1zX2RvbmUuZXh0ZW5kKGl0ZW1zX2JlZm9yZSkKKyAgICAgICAgaXRlbXMgPSBpdGVt
c19zYW1lICsgaXRlbXNfb3RoZXIKKyAgICAgICAgaWdub3JlID0gbmV3aWdub3JlCisKKworZGVm
IHNsaWNlX2l0ZW1zKGl0ZW1zLCBpZ25vcmUsIHNjb3BlZF9hcmdrZXlzX2NhY2hlKToKKyAgICAj
IHdlIHBpY2sgdGhlIGZpcnN0IGl0ZW0gd2hpY2ggdXNlcyBhIGZpeHR1cmUgaW5zdGFuY2UgaW4g
dGhlCisgICAgIyByZXF1ZXN0ZWQgc2NvcGUgYW5kIHdoaWNoIHdlIGhhdmVuJ3Qgc2VlbiB5ZXQu
ICBXZSBzbGljZSB0aGUgaW5wdXQKKyAgICAjIGl0ZW1zIGxpc3QgaW50byBhIGxpc3Qgb2YgaXRl
bXNfbm9tYXRjaCwgaXRlbXNfc2FtZSBhbmQKKyAgICAjIGl0ZW1zX290aGVyCisgICAgaWYgc2Nv
cGVkX2FyZ2tleXNfY2FjaGU6ICAjIGRvIHdlIG5lZWQgdG8gZG8gd29yayBhdCBhbGw/CisgICAg
ICAgIGl0ID0gaXRlcihpdGVtcykKKyAgICAgICAgIyBmaXJzdCBmaW5kIGEgc2xpY2luZyBrZXkK
KyAgICAgICAgZm9yIGksIGl0ZW0gaW4gZW51bWVyYXRlKGl0KToKKyAgICAgICAgICAgIGFyZ2tl
eXMgPSBzY29wZWRfYXJna2V5c19jYWNoZS5nZXQoaXRlbSkKKyAgICAgICAgICAgIGlmIGFyZ2tl
eXMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgbmV3YXJna2V5cyA9IE9yZGVyZWREaWN0
LmZyb21rZXlzKGsgZm9yIGsgaW4gYXJna2V5cyBpZiBrIG5vdCBpbiBpZ25vcmUpCisgICAgICAg
ICAgICAgICAgaWYgbmV3YXJna2V5czogICMgZm91bmQgYSBzbGljaW5nIGtleQorICAgICAgICAg
ICAgICAgICAgICBzbGljaW5nX2FyZ2tleSwgXyA9IG5ld2FyZ2tleXMucG9waXRlbSgpCisgICAg
ICAgICAgICAgICAgICAgIGl0ZW1zX2JlZm9yZSA9IGl0ZW1zWzppXQorICAgICAgICAgICAgICAg
ICAgICBpdGVtc19zYW1lID0gW2l0ZW1dCisgICAgICAgICAgICAgICAgICAgIGl0ZW1zX290aGVy
ID0gW10KKyAgICAgICAgICAgICAgICAgICAgIyBub3cgc2xpY2UgdGhlIHJlbWFpbmRlciBvZiB0
aGUgbGlzdAorICAgICAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBpdDoKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGFyZ2tleXMgPSBzY29wZWRfYXJna2V5c19jYWNoZS5nZXQoaXRlbSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIGFyZ2tleXMgYW5kIHNsaWNpbmdfYXJna2V5IGluIGFy
Z2tleXMgYW5kIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpY2luZ19hcmdr
ZXkgbm90IGluIGlnbm9yZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtc19zYW1l
LmFwcGVuZChpdGVtKQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpdGVtc19vdGhlci5hcHBlbmQoaXRlbSkKKyAgICAgICAgICAgICAg
ICAgICAgbmV3aWdub3JlID0gaWdub3JlLmNvcHkoKQorICAgICAgICAgICAgICAgICAgICBuZXdp
Z25vcmUuYWRkKHNsaWNpbmdfYXJna2V5KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGl0
ZW1zX2JlZm9yZSwgaXRlbXNfc2FtZSwgaXRlbXNfb3RoZXIsIG5ld2lnbm9yZSkKKyAgICByZXR1
cm4gaXRlbXMsIE5vbmUsIE5vbmUsIE5vbmUKKworCitkZWYgZmlsbGZpeHR1cmVzKGZ1bmN0aW9u
KToKKyAgICAiIiIgZmlsbCBtaXNzaW5nIGZ1bmNhcmdzIGZvciBhIHRlc3QgZnVuY3Rpb24uICIi
IgorICAgIHRyeToKKyAgICAgICAgcmVxdWVzdCA9IGZ1bmN0aW9uLl9yZXF1ZXN0CisgICAgZXhj
ZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAjIFhYWCB0aGlzIHNwZWNpYWwgY29kZSBwYXRo
IGlzIG9ubHkgZXhwZWN0ZWQgdG8gZXhlY3V0ZQorICAgICAgICAjIHdpdGggdGhlIG9lanNraXQg
cGx1Z2luLiAgSXQgdXNlcyBjbGFzc2VzIHdpdGggZnVuY2FyZ3MKKyAgICAgICAgIyBhbmQgd2Ug
dGh1cyBoYXZlIHRvIHdvcmsgYSBiaXQgdG8gYWxsb3cgdGhpcy4KKyAgICAgICAgZm0gPSBmdW5j
dGlvbi5zZXNzaW9uLl9maXh0dXJlbWFuYWdlcgorICAgICAgICBmaSA9IGZtLmdldGZpeHR1cmVp
bmZvKGZ1bmN0aW9uLnBhcmVudCwgZnVuY3Rpb24ub2JqLCBOb25lKQorICAgICAgICBmdW5jdGlv
bi5fZml4dHVyZWluZm8gPSBmaQorICAgICAgICByZXF1ZXN0ID0gZnVuY3Rpb24uX3JlcXVlc3Qg
PSBGaXh0dXJlUmVxdWVzdChmdW5jdGlvbikKKyAgICAgICAgcmVxdWVzdC5fZmlsbGZpeHR1cmVz
KCkKKyAgICAgICAgIyBwcnVuZSBvdXQgZnVuY2FyZ3MgZm9yIGpzdGVzdHMKKyAgICAgICAgbmV3
ZnVuY2FyZ3MgPSB7fQorICAgICAgICBmb3IgbmFtZSBpbiBmaS5hcmduYW1lczoKKyAgICAgICAg
ICAgIG5ld2Z1bmNhcmdzW25hbWVdID0gZnVuY3Rpb24uZnVuY2FyZ3NbbmFtZV0KKyAgICAgICAg
ZnVuY3Rpb24uZnVuY2FyZ3MgPSBuZXdmdW5jYXJncworICAgIGVsc2U6CisgICAgICAgIHJlcXVl
c3QuX2ZpbGxmaXh0dXJlcygpCisKKworZGVmIGdldF9kaXJlY3RfcGFyYW1fZml4dHVyZV9mdW5j
KHJlcXVlc3QpOgorICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKworY2xhc3MgRnVuY0ZpeHR1
cmVJbmZvOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcmduYW1lcywgbmFtZXNfY2xvc3VyZSwg
bmFtZTJmaXh0dXJlZGVmcyk6CisgICAgICAgIHNlbGYuYXJnbmFtZXMgPSBhcmduYW1lcworICAg
ICAgICBzZWxmLm5hbWVzX2Nsb3N1cmUgPSBuYW1lc19jbG9zdXJlCisgICAgICAgIHNlbGYubmFt
ZTJmaXh0dXJlZGVmcyA9IG5hbWUyZml4dHVyZWRlZnMKKworCitjbGFzcyBGaXh0dXJlUmVxdWVz
dChGdW5jYXJnbmFtZXNDb21wYXRBdHRyKToKKyAgICAiIiIgQSByZXF1ZXN0IGZvciBhIGZpeHR1
cmUgZnJvbSBhIHRlc3Qgb3IgZml4dHVyZSBmdW5jdGlvbi4KKworICAgIEEgcmVxdWVzdCBvYmpl
Y3QgZ2l2ZXMgYWNjZXNzIHRvIHRoZSByZXF1ZXN0aW5nIHRlc3QgY29udGV4dAorICAgIGFuZCBo
YXMgYW4gb3B0aW9uYWwgYGBwYXJhbWBgIGF0dHJpYnV0ZSBpbiBjYXNlCisgICAgdGhlIGZpeHR1
cmUgaXMgcGFyYW1ldHJpemVkIGluZGlyZWN0bHkuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgcHlmdW5jaXRlbSk6CisgICAgICAgIHNlbGYuX3B5ZnVuY2l0ZW0gPSBweWZ1bmNp
dGVtCisgICAgICAgICM6IGZpeHR1cmUgZm9yIHdoaWNoIHRoaXMgcmVxdWVzdCBpcyBiZWluZyBw
ZXJmb3JtZWQKKyAgICAgICAgc2VsZi5maXh0dXJlbmFtZSA9IE5vbmUKKyAgICAgICAgIzogU2Nv
cGUgc3RyaW5nLCBvbmUgb2YgImZ1bmN0aW9uIiwgImNsYXNzIiwgIm1vZHVsZSIsICJzZXNzaW9u
IgorICAgICAgICBzZWxmLnNjb3BlID0gImZ1bmN0aW9uIgorICAgICAgICBzZWxmLl9maXh0dXJl
X3ZhbHVlcyA9IHt9ICAjIGFyZ25hbWUgLT4gZml4dHVyZSB2YWx1ZQorICAgICAgICBzZWxmLl9m
aXh0dXJlX2RlZnMgPSB7fSAgIyBhcmduYW1lIC0+IEZpeHR1cmVEZWYKKyAgICAgICAgZml4dHVy
ZWluZm8gPSBweWZ1bmNpdGVtLl9maXh0dXJlaW5mbworICAgICAgICBzZWxmLl9hcmcyZml4dHVy
ZWRlZnMgPSBmaXh0dXJlaW5mby5uYW1lMmZpeHR1cmVkZWZzLmNvcHkoKQorICAgICAgICBzZWxm
Ll9hcmcyaW5kZXggPSB7fQorICAgICAgICBzZWxmLl9maXh0dXJlbWFuYWdlciA9IHB5ZnVuY2l0
ZW0uc2Vzc2lvbi5fZml4dHVyZW1hbmFnZXIKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBmaXh0
dXJlbmFtZXMoc2VsZik6CisgICAgICAgICMgYmFja3dhcmQgaW5jb21wYXRpYmxlIG5vdGU6IG5v
dyBhIHJlYWRvbmx5IHByb3BlcnR5CisgICAgICAgIHJldHVybiBsaXN0KHNlbGYuX3B5ZnVuY2l0
ZW0uX2ZpeHR1cmVpbmZvLm5hbWVzX2Nsb3N1cmUpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYg
bm9kZShzZWxmKToKKyAgICAgICAgIiIiIHVuZGVybHlpbmcgY29sbGVjdGlvbiBub2RlIChkZXBl
bmRzIG9uIGN1cnJlbnQgcmVxdWVzdCBzY29wZSkiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX2dl
dHNjb3BlaXRlbShzZWxmLnNjb3BlKQorCisgICAgZGVmIF9nZXRuZXh0Zml4dHVyZWRlZihzZWxm
LCBhcmduYW1lKToKKyAgICAgICAgZml4dHVyZWRlZnMgPSBzZWxmLl9hcmcyZml4dHVyZWRlZnMu
Z2V0KGFyZ25hbWUsIE5vbmUpCisgICAgICAgIGlmIGZpeHR1cmVkZWZzIGlzIE5vbmU6CisgICAg
ICAgICAgICAjIHdlIGFycml2ZSBoZXJlIGJlY2F1c2Ugb2YgYSAgYSBkeW5hbWljIGNhbGwgdG8K
KyAgICAgICAgICAgICMgZ2V0Zml4dHVyZXZhbHVlKGFyZ25hbWUpIHVzYWdlIHdoaWNoIHdhcyBu
YXR1cmFsbHkKKyAgICAgICAgICAgICMgbm90IGtub3duIGF0IHBhcnNpbmcvY29sbGVjdGlvbiB0
aW1lCisgICAgICAgICAgICBwYXJlbnRpZCA9IHNlbGYuX3B5ZnVuY2l0ZW0ucGFyZW50Lm5vZGVp
ZAorICAgICAgICAgICAgZml4dHVyZWRlZnMgPSBzZWxmLl9maXh0dXJlbWFuYWdlci5nZXRmaXh0
dXJlZGVmcyhhcmduYW1lLCBwYXJlbnRpZCkKKyAgICAgICAgICAgIHNlbGYuX2FyZzJmaXh0dXJl
ZGVmc1thcmduYW1lXSA9IGZpeHR1cmVkZWZzCisgICAgICAgICMgZml4dHVyZWRlZnMgbGlzdCBp
cyBpbW11dGFibGUgc28gd2UgbWFpbnRhaW4gYSBkZWNyZWFzaW5nIGluZGV4CisgICAgICAgIGlu
ZGV4ID0gc2VsZi5fYXJnMmluZGV4LmdldChhcmduYW1lLCAwKSAtIDEKKyAgICAgICAgaWYgZml4
dHVyZWRlZnMgaXMgTm9uZSBvciAoLWluZGV4ID4gbGVuKGZpeHR1cmVkZWZzKSk6CisgICAgICAg
ICAgICByYWlzZSBGaXh0dXJlTG9va3VwRXJyb3IoYXJnbmFtZSwgc2VsZikKKyAgICAgICAgc2Vs
Zi5fYXJnMmluZGV4W2FyZ25hbWVdID0gaW5kZXgKKyAgICAgICAgcmV0dXJuIGZpeHR1cmVkZWZz
W2luZGV4XQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGNvbmZpZyhzZWxmKToKKyAgICAgICAg
IiIiIHRoZSBweXRlc3QgY29uZmlnIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhpcyByZXF1ZXN0
LiAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX3B5ZnVuY2l0ZW0uY29uZmlnCisKKyAgICBAc2Nv
cGVwcm9wZXJ0eSgpCisgICAgZGVmIGZ1bmN0aW9uKHNlbGYpOgorICAgICAgICAiIiIgdGVzdCBm
dW5jdGlvbiBvYmplY3QgaWYgdGhlIHJlcXVlc3QgaGFzIGEgcGVyLWZ1bmN0aW9uIHNjb3BlLiAi
IiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX3B5ZnVuY2l0ZW0ub2JqCisKKyAgICBAc2NvcGVwcm9w
ZXJ0eSgiY2xhc3MiKQorICAgIGRlZiBjbHMoc2VsZik6CisgICAgICAgICIiIiBjbGFzcyAoY2Fu
IGJlIE5vbmUpIHdoZXJlIHRoZSB0ZXN0IGZ1bmN0aW9uIHdhcyBjb2xsZWN0ZWQuICIiIgorICAg
ICAgICBjbHNjb2wgPSBzZWxmLl9weWZ1bmNpdGVtLmdldHBhcmVudChfcHl0ZXN0LnB5dGhvbi5D
bGFzcykKKyAgICAgICAgaWYgY2xzY29sOgorICAgICAgICAgICAgcmV0dXJuIGNsc2NvbC5vYmoK
KworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBpbnN0YW5jZShzZWxmKToKKyAgICAgICAgIiIiIGlu
c3RhbmNlIChjYW4gYmUgTm9uZSkgb24gd2hpY2ggdGVzdCBmdW5jdGlvbiB3YXMgY29sbGVjdGVk
LiAiIiIKKyAgICAgICAgIyB1bml0dGVzdCBzdXBwb3J0IGhhY2ssIHNlZSBfcHl0ZXN0LnVuaXR0
ZXN0LlRlc3RDYXNlRnVuY3Rpb24KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNl
bGYuX3B5ZnVuY2l0ZW0uX3Rlc3RjYXNlCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoK
KyAgICAgICAgICAgIGZ1bmN0aW9uID0gZ2V0YXR0cihzZWxmLCAiZnVuY3Rpb24iLCBOb25lKQor
ICAgICAgICAgICAgaWYgZnVuY3Rpb24gaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgcmV0
dXJuIHB5LmJ1aWx0aW4uX2dldGltc2VsZihmdW5jdGlvbikKKworICAgIEBzY29wZXByb3BlcnR5
KCkKKyAgICBkZWYgbW9kdWxlKHNlbGYpOgorICAgICAgICAiIiIgcHl0aG9uIG1vZHVsZSBvYmpl
Y3Qgd2hlcmUgdGhlIHRlc3QgZnVuY3Rpb24gd2FzIGNvbGxlY3RlZC4gIiIiCisgICAgICAgIHJl
dHVybiBzZWxmLl9weWZ1bmNpdGVtLmdldHBhcmVudChfcHl0ZXN0LnB5dGhvbi5Nb2R1bGUpLm9i
agorCisgICAgQHNjb3BlcHJvcGVydHkoKQorICAgIGRlZiBmc3BhdGgoc2VsZik6CisgICAgICAg
ICIiIiB0aGUgZmlsZSBzeXN0ZW0gcGF0aCBvZiB0aGUgdGVzdCBtb2R1bGUgd2hpY2ggY29sbGVj
dGVkIHRoaXMgdGVzdC4gIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9weWZ1bmNpdGVtLmZzcGF0
aAorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGtleXdvcmRzKHNlbGYpOgorICAgICAgICAiIiIg
a2V5d29yZHMvbWFya2VycyBkaWN0aW9uYXJ5IGZvciB0aGUgdW5kZXJseWluZyBub2RlLiAiIiIK
KyAgICAgICAgcmV0dXJuIHNlbGYubm9kZS5rZXl3b3JkcworCisgICAgQHByb3BlcnR5CisgICAg
ZGVmIHNlc3Npb24oc2VsZik6CisgICAgICAgICIiIiBweXRlc3Qgc2Vzc2lvbiBvYmplY3QuICIi
IgorICAgICAgICByZXR1cm4gc2VsZi5fcHlmdW5jaXRlbS5zZXNzaW9uCisKKyAgICBkZWYgYWRk
ZmluYWxpemVyKHNlbGYsIGZpbmFsaXplcik6CisgICAgICAgICIiIiBhZGQgZmluYWxpemVyL3Rl
YXJkb3duIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBhZnRlciB0aGUKKyAgICAgICAgbGFzdCB0ZXN0
IHdpdGhpbiB0aGUgcmVxdWVzdGluZyB0ZXN0IGNvbnRleHQgZmluaXNoZWQKKyAgICAgICAgZXhl
Y3V0aW9uLiAiIiIKKyAgICAgICAgIyBYWFggdXN1YWxseSB0aGlzIG1ldGhvZCBpcyBzaGFkb3dl
ZCBieSBmaXh0dXJlZGVmIHNwZWNpZmljIG9uZXMKKyAgICAgICAgc2VsZi5fYWRkZmluYWxpemVy
KGZpbmFsaXplciwgc2NvcGU9c2VsZi5zY29wZSkKKworICAgIGRlZiBfYWRkZmluYWxpemVyKHNl
bGYsIGZpbmFsaXplciwgc2NvcGUpOgorICAgICAgICBjb2xpdGVtID0gc2VsZi5fZ2V0c2NvcGVp
dGVtKHNjb3BlKQorICAgICAgICBzZWxmLl9weWZ1bmNpdGVtLnNlc3Npb24uX3NldHVwc3RhdGUu
YWRkZmluYWxpemVyKAorICAgICAgICAgICAgZmluYWxpemVyPWZpbmFsaXplciwgY29saXRlbT1j
b2xpdGVtKQorCisgICAgZGVmIGFwcGx5bWFya2VyKHNlbGYsIG1hcmtlcik6CisgICAgICAgICIi
IiBBcHBseSBhIG1hcmtlciB0byBhIHNpbmdsZSB0ZXN0IGZ1bmN0aW9uIGludm9jYXRpb24uCisg
ICAgICAgIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bCBpZiB5b3UgZG9uJ3Qgd2FudCB0byBoYXZlIGEg
a2V5d29yZC9tYXJrZXIKKyAgICAgICAgb24gYWxsIGZ1bmN0aW9uIGludm9jYXRpb25zLgorCisg
ICAgICAgIDphcmcgbWFya2VyOiBhIDpweTpjbGFzczpgX3B5dGVzdC5tYXJrLk1hcmtEZWNvcmF0
b3JgIG9iamVjdAorICAgICAgICAgICAgY3JlYXRlZCBieSBhIGNhbGwgdG8gYGBweXRlc3QubWFy
ay5OQU1FKC4uLilgYC4KKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNl
bGYubm9kZS5rZXl3b3Jkc1ttYXJrZXIubWFya25hbWVdID0gbWFya2VyCisgICAgICAgIGV4Y2Vw
dCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IobWFya2VyKQor
CisgICAgZGVmIHJhaXNlZXJyb3Ioc2VsZiwgbXNnKToKKyAgICAgICAgIiIiIHJhaXNlIGEgRml4
dHVyZUxvb2t1cEVycm9yIHdpdGggdGhlIGdpdmVuIG1lc3NhZ2UuICIiIgorICAgICAgICByYWlz
ZSBzZWxmLl9maXh0dXJlbWFuYWdlci5GaXh0dXJlTG9va3VwRXJyb3IoTm9uZSwgc2VsZiwgbXNn
KQorCisgICAgZGVmIF9maWxsZml4dHVyZXMoc2VsZik6CisgICAgICAgIGl0ZW0gPSBzZWxmLl9w
eWZ1bmNpdGVtCisgICAgICAgIGZpeHR1cmVuYW1lcyA9IGdldGF0dHIoaXRlbSwgImZpeHR1cmVu
YW1lcyIsIHNlbGYuZml4dHVyZW5hbWVzKQorICAgICAgICBmb3IgYXJnbmFtZSBpbiBmaXh0dXJl
bmFtZXM6CisgICAgICAgICAgICBpZiBhcmduYW1lIG5vdCBpbiBpdGVtLmZ1bmNhcmdzOgorICAg
ICAgICAgICAgICAgIGl0ZW0uZnVuY2FyZ3NbYXJnbmFtZV0gPSBzZWxmLmdldGZpeHR1cmV2YWx1
ZShhcmduYW1lKQorCisgICAgZGVmIGNhY2hlZF9zZXR1cChzZWxmLCBzZXR1cCwgdGVhcmRvd249
Tm9uZSwgc2NvcGU9Im1vZHVsZSIsIGV4dHJha2V5PU5vbmUpOgorICAgICAgICAiIiIgKGRlcHJl
Y2F0ZWQpIFJldHVybiBhIHRlc3RpbmcgcmVzb3VyY2UgbWFuYWdlZCBieSBgYHNldHVwYGAgJgor
ICAgICAgICBgYHRlYXJkb3duYGAgY2FsbHMuICBgYHNjb3BlYGAgYW5kIGBgZXh0cmFrZXlgYCBk
ZXRlcm1pbmUgd2hlbiB0aGUKKyAgICAgICAgYGB0ZWFyZG93bmBgIGZ1bmN0aW9uIHdpbGwgYmUg
Y2FsbGVkIHNvIHRoYXQgc3Vic2VxdWVudCBjYWxscyB0bworICAgICAgICBgYHNldHVwYGAgd291
bGQgcmVjcmVhdGUgdGhlIHJlc291cmNlLiAgV2l0aCBweXRlc3QtMi4zIHlvdSBvZnRlbgorICAg
ICAgICBkbyBub3QgbmVlZCBgYGNhY2hlZF9zZXR1cCgpYGAgYXMgeW91IGNhbiBkaXJlY3RseSBk
ZWNsYXJlIGEgc2NvcGUKKyAgICAgICAgb24gYSBmaXh0dXJlIGZ1bmN0aW9uIGFuZCByZWdpc3Rl
ciBhIGZpbmFsaXplciB0aHJvdWdoCisgICAgICAgIGBgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoKWBg
LgorCisgICAgICAgIDphcmcgdGVhcmRvd246IGZ1bmN0aW9uIHJlY2VpdmluZyBhIHByZXZpb3Vz
bHkgc2V0dXAgcmVzb3VyY2UuCisgICAgICAgIDphcmcgc2V0dXA6IGEgbm8tYXJndW1lbnQgZnVu
Y3Rpb24gY3JlYXRpbmcgYSByZXNvdXJjZS4KKyAgICAgICAgOmFyZyBzY29wZTogYSBzdHJpbmcg
dmFsdWUgb3V0IG9mIGBgZnVuY3Rpb25gYCwgYGBjbGFzc2BgLCBgYG1vZHVsZWBgCisgICAgICAg
ICAgICBvciBgYHNlc3Npb25gYCBpbmRpY2F0aW5nIHRoZSBjYWNoaW5nIGxpZmVjeWNsZSBvZiB0
aGUgcmVzb3VyY2UuCisgICAgICAgIDphcmcgZXh0cmFrZXk6IGFkZGVkIHRvIGludGVybmFsIGNh
Y2hpbmcga2V5IG9mIChmdW5jYXJnbmFtZSwgc2NvcGUpLgorICAgICAgICAiIiIKKyAgICAgICAg
aWYgbm90IGhhc2F0dHIoc2VsZi5jb25maWcsICdfc2V0dXBjYWNoZScpOgorICAgICAgICAgICAg
c2VsZi5jb25maWcuX3NldHVwY2FjaGUgPSB7fSAgIyBYWFggd2Vha3JlZj8KKyAgICAgICAgY2Fj
aGVrZXkgPSAoc2VsZi5maXh0dXJlbmFtZSwgc2VsZi5fZ2V0c2NvcGVpdGVtKHNjb3BlKSwgZXh0
cmFrZXkpCisgICAgICAgIGNhY2hlID0gc2VsZi5jb25maWcuX3NldHVwY2FjaGUKKyAgICAgICAg
dHJ5OgorICAgICAgICAgICAgdmFsID0gY2FjaGVbY2FjaGVrZXldCisgICAgICAgIGV4Y2VwdCBL
ZXlFcnJvcjoKKyAgICAgICAgICAgIHNlbGYuX2NoZWNrX3Njb3BlKHNlbGYuZml4dHVyZW5hbWUs
IHNlbGYuc2NvcGUsIHNjb3BlKQorICAgICAgICAgICAgdmFsID0gc2V0dXAoKQorICAgICAgICAg
ICAgY2FjaGVbY2FjaGVrZXldID0gdmFsCisgICAgICAgICAgICBpZiB0ZWFyZG93biBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgICAgICBkZWYgZmluYWxpemVyKCk6CisgICAgICAgICAgICAgICAg
ICAgIGRlbCBjYWNoZVtjYWNoZWtleV0KKyAgICAgICAgICAgICAgICAgICAgdGVhcmRvd24odmFs
KQorICAgICAgICAgICAgICAgIHNlbGYuX2FkZGZpbmFsaXplcihmaW5hbGl6ZXIsIHNjb3BlPXNj
b3BlKQorICAgICAgICByZXR1cm4gdmFsCisKKyAgICBkZWYgZ2V0Zml4dHVyZXZhbHVlKHNlbGYs
IGFyZ25hbWUpOgorICAgICAgICAiIiIgRHluYW1pY2FsbHkgcnVuIGEgbmFtZWQgZml4dHVyZSBm
dW5jdGlvbi4KKworICAgICAgICBEZWNsYXJpbmcgZml4dHVyZXMgdmlhIGZ1bmN0aW9uIGFyZ3Vt
ZW50IGlzIHJlY29tbWVuZGVkIHdoZXJlIHBvc3NpYmxlLgorICAgICAgICBCdXQgaWYgeW91IGNh
biBvbmx5IGRlY2lkZSB3aGV0aGVyIHRvIHVzZSBhbm90aGVyIGZpeHR1cmUgYXQgdGVzdAorICAg
ICAgICBzZXR1cCB0aW1lLCB5b3UgbWF5IHVzZSB0aGlzIGZ1bmN0aW9uIHRvIHJldHJpZXZlIGl0
IGluc2lkZSBhIGZpeHR1cmUKKyAgICAgICAgb3IgdGVzdCBmdW5jdGlvbiBib2R5LgorICAgICAg
ICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX2dldF9hY3RpdmVfZml4dHVyZWRlZihhcmduYW1l
KS5jYWNoZWRfcmVzdWx0WzBdCisKKyAgICBkZWYgZ2V0ZnVuY2FyZ3ZhbHVlKHNlbGYsIGFyZ25h
bWUpOgorICAgICAgICAiIiIgRGVwcmVjYXRlZCwgdXNlIGdldGZpeHR1cmV2YWx1ZS4gIiIiCisg
ICAgICAgIGZyb20gX3B5dGVzdCBpbXBvcnQgZGVwcmVjYXRlZAorICAgICAgICB3YXJuaW5ncy53
YXJuKAorICAgICAgICAgICAgZGVwcmVjYXRlZC5HRVRGVU5DQVJHVkFMVUUsCisgICAgICAgICAg
ICBEZXByZWNhdGlvbldhcm5pbmcsCisgICAgICAgICAgICBzdGFja2xldmVsPTIpCisgICAgICAg
IHJldHVybiBzZWxmLmdldGZpeHR1cmV2YWx1ZShhcmduYW1lKQorCisgICAgZGVmIF9nZXRfYWN0
aXZlX2ZpeHR1cmVkZWYoc2VsZiwgYXJnbmFtZSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IHJldHVybiBzZWxmLl9maXh0dXJlX2RlZnNbYXJnbmFtZV0KKyAgICAgICAgZXhjZXB0IEtleUVy
cm9yOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGZpeHR1cmVkZWYgPSBzZWxm
Ll9nZXRuZXh0Zml4dHVyZWRlZihhcmduYW1lKQorICAgICAgICAgICAgZXhjZXB0IEZpeHR1cmVM
b29rdXBFcnJvcjoKKyAgICAgICAgICAgICAgICBpZiBhcmduYW1lID09ICJyZXF1ZXN0IjoKKyAg
ICAgICAgICAgICAgICAgICAgY2xhc3MgUHNldWRvRml4dHVyZURlZjoKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNhY2hlZF9yZXN1bHQgPSAoc2VsZiwgWzBdLCBOb25lKQorICAgICAgICAgICAg
ICAgICAgICAgICAgc2NvcGUgPSAiZnVuY3Rpb24iCisgICAgICAgICAgICAgICAgICAgIHJldHVy
biBQc2V1ZG9GaXh0dXJlRGVmCisgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgIyByZW1v
dmUgaW5kZW50IHRvIHByZXZlbnQgdGhlIHB5dGhvbjMgZXhjZXB0aW9uCisgICAgICAgICMgZnJv
bSBsZWFraW5nIGludG8gdGhlIGNhbGwKKyAgICAgICAgcmVzdWx0ID0gc2VsZi5fZ2V0Zml4dHVy
ZXZhbHVlKGZpeHR1cmVkZWYpCisgICAgICAgIHNlbGYuX2ZpeHR1cmVfdmFsdWVzW2FyZ25hbWVd
ID0gcmVzdWx0CisgICAgICAgIHNlbGYuX2ZpeHR1cmVfZGVmc1thcmduYW1lXSA9IGZpeHR1cmVk
ZWYKKyAgICAgICAgcmV0dXJuIGZpeHR1cmVkZWYKKworICAgIGRlZiBfZ2V0X2ZpeHR1cmVzdGFj
ayhzZWxmKToKKyAgICAgICAgY3VycmVudCA9IHNlbGYKKyAgICAgICAgdmFsdWVzID0gW10KKyAg
ICAgICAgd2hpbGUgMToKKyAgICAgICAgICAgIGZpeHR1cmVkZWYgPSBnZXRhdHRyKGN1cnJlbnQs
ICJfZml4dHVyZWRlZiIsIE5vbmUpCisgICAgICAgICAgICBpZiBmaXh0dXJlZGVmIGlzIE5vbmU6
CisgICAgICAgICAgICAgICAgdmFsdWVzLnJldmVyc2UoKQorICAgICAgICAgICAgICAgIHJldHVy
biB2YWx1ZXMKKyAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoZml4dHVyZWRlZikKKyAgICAgICAg
ICAgIGN1cnJlbnQgPSBjdXJyZW50Ll9wYXJlbnRfcmVxdWVzdAorCisgICAgZGVmIF9nZXRmaXh0
dXJldmFsdWUoc2VsZiwgZml4dHVyZWRlZik6CisgICAgICAgICMgcHJlcGFyZSBhIHN1YnJlcXVl
c3Qgb2JqZWN0IGJlZm9yZSBjYWxsaW5nIGZpeHR1cmUgZnVuY3Rpb24KKyAgICAgICAgIyAobGF0
dGVyIG1hbmFnZWQgYnkgZml4dHVyZWRlZikKKyAgICAgICAgYXJnbmFtZSA9IGZpeHR1cmVkZWYu
YXJnbmFtZQorICAgICAgICBmdW5jaXRlbSA9IHNlbGYuX3B5ZnVuY2l0ZW0KKyAgICAgICAgc2Nv
cGUgPSBmaXh0dXJlZGVmLnNjb3BlCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHBhcmFtID0g
ZnVuY2l0ZW0uY2FsbHNwZWMuZ2V0cGFyYW0oYXJnbmFtZSkKKyAgICAgICAgZXhjZXB0IChBdHRy
aWJ1dGVFcnJvciwgVmFsdWVFcnJvcik6CisgICAgICAgICAgICBwYXJhbSA9IE5PVFNFVAorICAg
ICAgICAgICAgcGFyYW1faW5kZXggPSAwCisgICAgICAgICAgICBpZiBmaXh0dXJlZGVmLnBhcmFt
cyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBmcmFtZSA9IGluc3BlY3Quc3RhY2soKVsz
XQorICAgICAgICAgICAgICAgIGZyYW1laW5mbyA9IGluc3BlY3QuZ2V0ZnJhbWVpbmZvKGZyYW1l
WzBdKQorICAgICAgICAgICAgICAgIHNvdXJjZV9wYXRoID0gZnJhbWVpbmZvLmZpbGVuYW1lCisg
ICAgICAgICAgICAgICAgc291cmNlX2xpbmVubyA9IGZyYW1laW5mby5saW5lbm8KKyAgICAgICAg
ICAgICAgICBzb3VyY2VfcGF0aCA9IHB5LnBhdGgubG9jYWwoc291cmNlX3BhdGgpCisgICAgICAg
ICAgICAgICAgaWYgc291cmNlX3BhdGgucmVsdG8oZnVuY2l0ZW0uY29uZmlnLnJvb3RkaXIpOgor
ICAgICAgICAgICAgICAgICAgICBzb3VyY2VfcGF0aCA9IHNvdXJjZV9wYXRoLnJlbHRvKGZ1bmNp
dGVtLmNvbmZpZy5yb290ZGlyKQorICAgICAgICAgICAgICAgIG1zZyA9ICgKKyAgICAgICAgICAg
ICAgICAgICAgIlRoZSByZXF1ZXN0ZWQgZml4dHVyZSBoYXMgbm8gcGFyYW1ldGVyIGRlZmluZWQg
Zm9yIHRoZSAiCisgICAgICAgICAgICAgICAgICAgICJjdXJyZW50IHRlc3QuXG5cblJlcXVlc3Rl
ZCBmaXh0dXJlICd7MH0nIGRlZmluZWQgaW46XG57MX0iCisgICAgICAgICAgICAgICAgICAgICJc
blxuUmVxdWVzdGVkIGhlcmU6XG57Mn06ezN9Ii5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAg
ICAgICBmaXh0dXJlZGVmLmFyZ25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBnZXRsb2Nh
dGlvbihmaXh0dXJlZGVmLmZ1bmMsIGZ1bmNpdGVtLmNvbmZpZy5yb290ZGlyKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHNvdXJjZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgc291
cmNlX2xpbmVubywKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICkKKyAg
ICAgICAgICAgICAgICBmYWlsKG1zZykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgaW5k
aWNlcyBtaWdodCBub3QgYmUgc2V0IGlmIG9sZC1zdHlsZSBtZXRhZnVuYy5hZGRjYWxsKCkgd2Fz
IHVzZWQKKyAgICAgICAgICAgIHBhcmFtX2luZGV4ID0gZnVuY2l0ZW0uY2FsbHNwZWMuaW5kaWNl
cy5nZXQoYXJnbmFtZSwgMCkKKyAgICAgICAgICAgICMgaWYgYSBwYXJhbWV0cml6ZSBpbnZvY2F0
aW9uIHNldCBhIHNjb3BlIGl0IHdpbGwgb3ZlcnJpZGUKKyAgICAgICAgICAgICMgdGhlIHN0YXRp
YyBzY29wZSBkZWZpbmVkIHdpdGggdGhlIGZpeHR1cmUgZnVuY3Rpb24KKyAgICAgICAgICAgIHBh
cmFtc2NvcGVudW0gPSBmdW5jaXRlbS5jYWxsc3BlYy5fYXJnMnNjb3BlbnVtLmdldChhcmduYW1l
KQorICAgICAgICAgICAgaWYgcGFyYW1zY29wZW51bSBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
ICAgICBzY29wZSA9IHNjb3Blc1twYXJhbXNjb3BlbnVtXQorCisgICAgICAgIHN1YnJlcXVlc3Qg
PSBTdWJSZXF1ZXN0KHNlbGYsIHNjb3BlLCBwYXJhbSwgcGFyYW1faW5kZXgsIGZpeHR1cmVkZWYp
CisKKyAgICAgICAgIyBjaGVjayBpZiBhIGhpZ2hlci1sZXZlbCBzY29wZWQgZml4dHVyZSBhY2Nl
c3NlcyBhIGxvd2VyIGxldmVsIG9uZQorICAgICAgICBzdWJyZXF1ZXN0Ll9jaGVja19zY29wZShh
cmduYW1lLCBzZWxmLnNjb3BlLCBzY29wZSkKKworICAgICAgICAjIGNsZWFyIHN5cy5leGNfaW5m
byBiZWZvcmUgaW52b2tpbmcgdGhlIGZpeHR1cmUgKHB5dGhvbiBidWc/KQorICAgICAgICAjIGlm
IGl0cyBub3QgZXhwbGljaXRseSBjbGVhcmVkIGl0IHdpbGwgbGVhayBpbnRvIHRoZSBjYWxsCisg
ICAgICAgIGV4Y19jbGVhcigpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgY2FsbCB0aGUg
Zml4dHVyZSBmdW5jdGlvbgorICAgICAgICAgICAgdmFsID0gZml4dHVyZWRlZi5leGVjdXRlKHJl
cXVlc3Q9c3VicmVxdWVzdCkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICMgaWYgZml4
dHVyZSBmdW5jdGlvbiBmYWlsZWQgaXQgbWlnaHQgaGF2ZSByZWdpc3RlcmVkIGZpbmFsaXplcnMK
KyAgICAgICAgICAgIHNlbGYuc2Vzc2lvbi5fc2V0dXBzdGF0ZS5hZGRmaW5hbGl6ZXIoZnVuY3Rv
b2xzLnBhcnRpYWwoZml4dHVyZWRlZi5maW5pc2gsIHJlcXVlc3Q9c3VicmVxdWVzdCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnJlcXVlc3Qu
bm9kZSkKKyAgICAgICAgcmV0dXJuIHZhbAorCisgICAgZGVmIF9jaGVja19zY29wZShzZWxmLCBh
cmduYW1lLCBpbnZva2luZ19zY29wZSwgcmVxdWVzdGVkX3Njb3BlKToKKyAgICAgICAgaWYgYXJn
bmFtZSA9PSAicmVxdWVzdCI6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgaWYgc2NvcGVt
aXNtYXRjaChpbnZva2luZ19zY29wZSwgcmVxdWVzdGVkX3Njb3BlKToKKyAgICAgICAgICAgICMg
dHJ5IHRvIHJlcG9ydCBzb21ldGhpbmcgaGVscGZ1bAorICAgICAgICAgICAgbGluZXMgPSBzZWxm
Ll9mYWN0b3J5dHJhY2ViYWNrKCkKKyAgICAgICAgICAgIGZhaWwoIlNjb3BlTWlzbWF0Y2g6IFlv
dSB0cmllZCB0byBhY2Nlc3MgdGhlICVyIHNjb3BlZCAiCisgICAgICAgICAgICAgICAgICJmaXh0
dXJlICVyIHdpdGggYSAlciBzY29wZWQgcmVxdWVzdCBvYmplY3QsICIKKyAgICAgICAgICAgICAg
ICAgImludm9sdmVkIGZhY3Rvcmllc1xuJXMiICUgKAorICAgICAgICAgICAgICAgICAgICAgKHJl
cXVlc3RlZF9zY29wZSwgYXJnbmFtZSwgaW52b2tpbmdfc2NvcGUsICJcbiIuam9pbihsaW5lcykp
KSwKKyAgICAgICAgICAgICAgICAgcHl0cmFjZT1GYWxzZSkKKworICAgIGRlZiBfZmFjdG9yeXRy
YWNlYmFjayhzZWxmKToKKyAgICAgICAgbGluZXMgPSBbXQorICAgICAgICBmb3IgZml4dHVyZWRl
ZiBpbiBzZWxmLl9nZXRfZml4dHVyZXN0YWNrKCk6CisgICAgICAgICAgICBmYWN0b3J5ID0gZml4
dHVyZWRlZi5mdW5jCisgICAgICAgICAgICBmcywgbGluZW5vID0gZ2V0ZnNsaW5lbm8oZmFjdG9y
eSkKKyAgICAgICAgICAgIHAgPSBzZWxmLl9weWZ1bmNpdGVtLnNlc3Npb24uZnNwYXRoLmJlc3Ry
ZWxwYXRoKGZzKQorICAgICAgICAgICAgYXJncyA9IF9mb3JtYXRfYXJncyhmYWN0b3J5KQorICAg
ICAgICAgICAgbGluZXMuYXBwZW5kKCIlczolZDogIGRlZiAlcyVzIiAlICgKKyAgICAgICAgICAg
ICAgICBwLCBsaW5lbm8sIGZhY3RvcnkuX19uYW1lX18sIGFyZ3MpKQorICAgICAgICByZXR1cm4g
bGluZXMKKworICAgIGRlZiBfZ2V0c2NvcGVpdGVtKHNlbGYsIHNjb3BlKToKKyAgICAgICAgaWYg
c2NvcGUgPT0gImZ1bmN0aW9uIjoKKyAgICAgICAgICAgICMgdGhpcyBtaWdodCBhbHNvIGJlIGEg
bm9uLWZ1bmN0aW9uIEl0ZW0gZGVzcGl0ZSBpdHMgYXR0cmlidXRlIG5hbWUKKyAgICAgICAgICAg
IHJldHVybiBzZWxmLl9weWZ1bmNpdGVtCisgICAgICAgIG5vZGUgPSBnZXRfc2NvcGVfbm9kZShz
ZWxmLl9weWZ1bmNpdGVtLCBzY29wZSkKKyAgICAgICAgaWYgbm9kZSBpcyBOb25lIGFuZCBzY29w
ZSA9PSAiY2xhc3MiOgorICAgICAgICAgICAgIyBmYWxsYmFjayB0byBmdW5jdGlvbiBpdGVtIGl0
c2VsZgorICAgICAgICAgICAgbm9kZSA9IHNlbGYuX3B5ZnVuY2l0ZW0KKyAgICAgICAgYXNzZXJ0
IG5vZGUsICdDb3VsZCBub3Qgb2J0YWluIGEgbm9kZSBmb3Igc2NvcGUgInt9IiBmb3IgZnVuY3Rp
b24geyFyfScuZm9ybWF0KHNjb3BlLCBzZWxmLl9weWZ1bmNpdGVtKQorICAgICAgICByZXR1cm4g
bm9kZQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gIjxGaXh0dXJl
UmVxdWVzdCBmb3IgJXI+IiAlIChzZWxmLm5vZGUpCisKKworY2xhc3MgU3ViUmVxdWVzdChGaXh0
dXJlUmVxdWVzdCk6CisgICAgIiIiIGEgc3ViIHJlcXVlc3QgZm9yIGhhbmRsaW5nIGdldHRpbmcg
YSBmaXh0dXJlIGZyb20gYQorICAgIHRlc3QgZnVuY3Rpb24vZml4dHVyZS4gIiIiCisKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCwgc2NvcGUsIHBhcmFtLCBwYXJhbV9pbmRleCwgZml4
dHVyZWRlZik6CisgICAgICAgIHNlbGYuX3BhcmVudF9yZXF1ZXN0ID0gcmVxdWVzdAorICAgICAg
ICBzZWxmLmZpeHR1cmVuYW1lID0gZml4dHVyZWRlZi5hcmduYW1lCisgICAgICAgIGlmIHBhcmFt
IGlzIG5vdCBOT1RTRVQ6CisgICAgICAgICAgICBzZWxmLnBhcmFtID0gcGFyYW0KKyAgICAgICAg
c2VsZi5wYXJhbV9pbmRleCA9IHBhcmFtX2luZGV4CisgICAgICAgIHNlbGYuc2NvcGUgPSBzY29w
ZQorICAgICAgICBzZWxmLl9maXh0dXJlZGVmID0gZml4dHVyZWRlZgorICAgICAgICBzZWxmLl9w
eWZ1bmNpdGVtID0gcmVxdWVzdC5fcHlmdW5jaXRlbQorICAgICAgICBzZWxmLl9maXh0dXJlX3Zh
bHVlcyA9IHJlcXVlc3QuX2ZpeHR1cmVfdmFsdWVzCisgICAgICAgIHNlbGYuX2ZpeHR1cmVfZGVm
cyA9IHJlcXVlc3QuX2ZpeHR1cmVfZGVmcworICAgICAgICBzZWxmLl9hcmcyZml4dHVyZWRlZnMg
PSByZXF1ZXN0Ll9hcmcyZml4dHVyZWRlZnMKKyAgICAgICAgc2VsZi5fYXJnMmluZGV4ID0gcmVx
dWVzdC5fYXJnMmluZGV4CisgICAgICAgIHNlbGYuX2ZpeHR1cmVtYW5hZ2VyID0gcmVxdWVzdC5f
Zml4dHVyZW1hbmFnZXIKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJu
ICI8U3ViUmVxdWVzdCAlciBmb3IgJXI+IiAlIChzZWxmLmZpeHR1cmVuYW1lLCBzZWxmLl9weWZ1
bmNpdGVtKQorCisgICAgZGVmIGFkZGZpbmFsaXplcihzZWxmLCBmaW5hbGl6ZXIpOgorICAgICAg
ICBzZWxmLl9maXh0dXJlZGVmLmFkZGZpbmFsaXplcihmaW5hbGl6ZXIpCisKKworY2xhc3MgU2Nv
cGVNaXNtYXRjaEVycm9yKEV4Y2VwdGlvbik6CisgICAgIiIiIEEgZml4dHVyZSBmdW5jdGlvbiB0
cmllcyB0byB1c2UgYSBkaWZmZXJlbnQgZml4dHVyZSBmdW5jdGlvbiB3aGljaAorICAgIHdoaWNo
IGhhcyBhIGxvd2VyIHNjb3BlIChlLmcuIGEgU2Vzc2lvbiBvbmUgY2FsbHMgYSBmdW5jdGlvbiBv
bmUpCisgICAgIiIiCisKKworc2NvcGVzID0gInNlc3Npb24gbW9kdWxlIGNsYXNzIGZ1bmN0aW9u
Ii5zcGxpdCgpCitzY29wZW51bV9mdW5jdGlvbiA9IHNjb3Blcy5pbmRleCgiZnVuY3Rpb24iKQor
CisKK2RlZiBzY29wZW1pc21hdGNoKGN1cnJlbnRzY29wZSwgbmV3c2NvcGUpOgorICAgIHJldHVy
biBzY29wZXMuaW5kZXgobmV3c2NvcGUpID4gc2NvcGVzLmluZGV4KGN1cnJlbnRzY29wZSkKKwor
CitkZWYgc2NvcGUyaW5kZXgoc2NvcGUsIGRlc2NyLCB3aGVyZT1Ob25lKToKKyAgICAiIiJMb29r
IHVwIHRoZSBpbmRleCBvZiBgYHNjb3BlYGAgYW5kIHJhaXNlIGEgZGVzY3JpcHRpdmUgdmFsdWUg
ZXJyb3IKKyAgICBpZiBub3QgZGVmaW5lZC4KKyAgICAiIiIKKyAgICB0cnk6CisgICAgICAgIHJl
dHVybiBzY29wZXMuaW5kZXgoc2NvcGUpCisgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAiezB9IHsxfWhhcyBhbiB1bnN1cHBvcnRl
ZCBzY29wZSB2YWx1ZSAnezJ9JyIuZm9ybWF0KAorICAgICAgICAgICAgICAgIGRlc2NyLCAnZnJv
bSB7MH0gJy5mb3JtYXQod2hlcmUpIGlmIHdoZXJlIGVsc2UgJycsCisgICAgICAgICAgICAgICAg
c2NvcGUpCisgICAgICAgICkKKworCitjbGFzcyBGaXh0dXJlTG9va3VwRXJyb3IoTG9va3VwRXJy
b3IpOgorICAgICIiIiBjb3VsZCBub3QgcmV0dXJuIGEgcmVxdWVzdGVkIEZpeHR1cmUgKG1pc3Np
bmcgb3IgaW52YWxpZCkuICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFyZ25hbWUsIHJl
cXVlc3QsIG1zZz1Ob25lKToKKyAgICAgICAgc2VsZi5hcmduYW1lID0gYXJnbmFtZQorICAgICAg
ICBzZWxmLnJlcXVlc3QgPSByZXF1ZXN0CisgICAgICAgIHNlbGYuZml4dHVyZXN0YWNrID0gcmVx
dWVzdC5fZ2V0X2ZpeHR1cmVzdGFjaygpCisgICAgICAgIHNlbGYubXNnID0gbXNnCisKKyAgICBk
ZWYgZm9ybWF0cmVwcihzZWxmKToKKyAgICAgICAgdGJsaW5lcyA9IFtdCisgICAgICAgIGFkZGxp
bmUgPSB0YmxpbmVzLmFwcGVuZAorICAgICAgICBzdGFjayA9IFtzZWxmLnJlcXVlc3QuX3B5ZnVu
Y2l0ZW0ub2JqXQorICAgICAgICBzdGFjay5leHRlbmQobWFwKGxhbWJkYSB4OiB4LmZ1bmMsIHNl
bGYuZml4dHVyZXN0YWNrKSkKKyAgICAgICAgbXNnID0gc2VsZi5tc2cKKyAgICAgICAgaWYgbXNn
IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgIyB0aGUgbGFzdCBmaXh0dXJlIHJhaXNlIGFuIGVy
cm9yLCBsZXQncyBwcmVzZW50CisgICAgICAgICAgICAjIGl0IGF0IHRoZSByZXF1ZXN0aW5nIHNp
ZGUKKyAgICAgICAgICAgIHN0YWNrID0gc3RhY2tbOi0xXQorICAgICAgICBmb3IgZnVuY3Rpb24g
aW4gc3RhY2s6CisgICAgICAgICAgICBmc3BhdGgsIGxpbmVubyA9IGdldGZzbGluZW5vKGZ1bmN0
aW9uKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGxpbmVzLCBfID0gaW5zcGVj
dC5nZXRzb3VyY2VsaW5lcyhnZXRfcmVhbF9mdW5jKGZ1bmN0aW9uKSkKKyAgICAgICAgICAgIGV4
Y2VwdCAoSU9FcnJvciwgSW5kZXhFcnJvciwgVHlwZUVycm9yKToKKyAgICAgICAgICAgICAgICBl
cnJvcl9tc2cgPSAiZmlsZSAlcywgbGluZSAlczogc291cmNlIGNvZGUgbm90IGF2YWlsYWJsZSIK
KyAgICAgICAgICAgICAgICBhZGRsaW5lKGVycm9yX21zZyAlIChmc3BhdGgsIGxpbmVubyArIDEp
KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBhZGRsaW5lKCJmaWxlICVzLCBs
aW5lICVzIiAlIChmc3BhdGgsIGxpbmVubyArIDEpKQorICAgICAgICAgICAgICAgIGZvciBpLCBs
aW5lIGluIGVudW1lcmF0ZShsaW5lcyk6CisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5l
LnJzdHJpcCgpCisgICAgICAgICAgICAgICAgICAgIGFkZGxpbmUoIiAgIiArIGxpbmUpCisgICAg
ICAgICAgICAgICAgICAgIGlmIGxpbmUubHN0cmlwKCkuc3RhcnRzd2l0aCgnZGVmJyk6CisgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAgIGlmIG1zZyBpcyBOb25lOgorICAg
ICAgICAgICAgZm0gPSBzZWxmLnJlcXVlc3QuX2ZpeHR1cmVtYW5hZ2VyCisgICAgICAgICAgICBh
dmFpbGFibGUgPSBbXQorICAgICAgICAgICAgcGFyZW50aWQgPSBzZWxmLnJlcXVlc3QuX3B5ZnVu
Y2l0ZW0ucGFyZW50Lm5vZGVpZAorICAgICAgICAgICAgZm9yIG5hbWUsIGZpeHR1cmVkZWZzIGlu
IGZtLl9hcmcyZml4dHVyZWRlZnMuaXRlbXMoKToKKyAgICAgICAgICAgICAgICBmYWNsaXN0ID0g
bGlzdChmbS5fbWF0Y2hmYWN0b3JpZXMoZml4dHVyZWRlZnMsIHBhcmVudGlkKSkKKyAgICAgICAg
ICAgICAgICBpZiBmYWNsaXN0IGFuZCBuYW1lIG5vdCBpbiBhdmFpbGFibGU6CisgICAgICAgICAg
ICAgICAgICAgIGF2YWlsYWJsZS5hcHBlbmQobmFtZSkKKyAgICAgICAgICAgIG1zZyA9ICJmaXh0
dXJlICVyIG5vdCBmb3VuZCIgJSAoc2VsZi5hcmduYW1lLCkKKyAgICAgICAgICAgIG1zZyArPSAi
XG4gYXZhaWxhYmxlIGZpeHR1cmVzOiAlcyIgJSAoIiwgIi5qb2luKHNvcnRlZChhdmFpbGFibGUp
KSwpCisgICAgICAgICAgICBtc2cgKz0gIlxuIHVzZSAncHl0ZXN0IC0tZml4dHVyZXMgW3Rlc3Rw
YXRoXScgZm9yIGhlbHAgb24gdGhlbS4iCisKKyAgICAgICAgcmV0dXJuIEZpeHR1cmVMb29rdXBF
cnJvclJlcHIoZnNwYXRoLCBsaW5lbm8sIHRibGluZXMsIG1zZywgc2VsZi5hcmduYW1lKQorCisK
K2NsYXNzIEZpeHR1cmVMb29rdXBFcnJvclJlcHIoVGVybWluYWxSZXByKToKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgZmlsZW5hbWUsIGZpcnN0bGluZW5vLCB0YmxpbmVzLCBlcnJvcnN0cmluZywg
YXJnbmFtZSk6CisgICAgICAgIHNlbGYudGJsaW5lcyA9IHRibGluZXMKKyAgICAgICAgc2VsZi5l
cnJvcnN0cmluZyA9IGVycm9yc3RyaW5nCisgICAgICAgIHNlbGYuZmlsZW5hbWUgPSBmaWxlbmFt
ZQorICAgICAgICBzZWxmLmZpcnN0bGluZW5vID0gZmlyc3RsaW5lbm8KKyAgICAgICAgc2VsZi5h
cmduYW1lID0gYXJnbmFtZQorCisgICAgZGVmIHRvdGVybWluYWwoc2VsZiwgdHcpOgorICAgICAg
ICAjIHR3LmxpbmUoIkZpeHR1cmVMb29rdXBFcnJvcjogJXMiICUoc2VsZi5hcmduYW1lKSwgcmVk
PVRydWUpCisgICAgICAgIGZvciB0YmxpbmUgaW4gc2VsZi50YmxpbmVzOgorICAgICAgICAgICAg
dHcubGluZSh0YmxpbmUucnN0cmlwKCkpCisgICAgICAgIGxpbmVzID0gc2VsZi5lcnJvcnN0cmlu
Zy5zcGxpdCgiXG4iKQorICAgICAgICBpZiBsaW5lczoKKyAgICAgICAgICAgIHR3LmxpbmUoJ3sw
fSAgICAgICB7MX0nLmZvcm1hdChGb3JtYXR0ZWRFeGNpbmZvLmZhaWxfbWFya2VyLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVzWzBdLnN0cmlwKCkpLCBy
ZWQ9VHJ1ZSkKKyAgICAgICAgICAgIGZvciBsaW5lIGluIGxpbmVzWzE6XToKKyAgICAgICAgICAg
ICAgICB0dy5saW5lKCd7MH0gICAgICAgezF9Jy5mb3JtYXQoRm9ybWF0dGVkRXhjaW5mby5mbG93
X21hcmtlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGluZS5zdHJpcCgpKSwgcmVkPVRydWUpCisgICAgICAgIHR3LmxpbmUoKQorICAgICAgICB0dy5s
aW5lKCIlczolZCIgJSAoc2VsZi5maWxlbmFtZSwgc2VsZi5maXJzdGxpbmVubyArIDEpKQorCisK
K2RlZiBmYWlsX2ZpeHR1cmVmdW5jKGZpeHR1cmVmdW5jLCBtc2cpOgorICAgIGZzLCBsaW5lbm8g
PSBnZXRmc2xpbmVubyhmaXh0dXJlZnVuYykKKyAgICBsb2NhdGlvbiA9ICIlczolcyIgJSAoZnMs
IGxpbmVubyArIDEpCisgICAgc291cmNlID0gX3B5dGVzdC5fY29kZS5Tb3VyY2UoZml4dHVyZWZ1
bmMpCisgICAgZmFpbChtc2cgKyAiOlxuXG4iICsgc3RyKHNvdXJjZS5pbmRlbnQoKSkgKyAiXG4i
ICsgbG9jYXRpb24sCisgICAgICAgICBweXRyYWNlPUZhbHNlKQorCisKK2RlZiBjYWxsX2ZpeHR1
cmVfZnVuYyhmaXh0dXJlZnVuYywgcmVxdWVzdCwga3dhcmdzKToKKyAgICB5aWVsZGN0eCA9IGlz
X2dlbmVyYXRvcihmaXh0dXJlZnVuYykKKyAgICBpZiB5aWVsZGN0eDoKKyAgICAgICAgaXQgPSBm
aXh0dXJlZnVuYygqKmt3YXJncykKKyAgICAgICAgcmVzID0gbmV4dChpdCkKKworICAgICAgICBk
ZWYgdGVhcmRvd24oKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBuZXh0KGl0
KQorICAgICAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246CisgICAgICAgICAgICAgICAgcGFz
cworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBmYWlsX2ZpeHR1cmVmdW5jKGZp
eHR1cmVmdW5jLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInlpZWxkX2ZpeHR1
cmUgZnVuY3Rpb24gaGFzIG1vcmUgdGhhbiBvbmUgJ3lpZWxkJyIpCisKKyAgICAgICAgcmVxdWVz
dC5hZGRmaW5hbGl6ZXIodGVhcmRvd24pCisgICAgZWxzZToKKyAgICAgICAgcmVzID0gZml4dHVy
ZWZ1bmMoKiprd2FyZ3MpCisgICAgcmV0dXJuIHJlcworCisKK2NsYXNzIEZpeHR1cmVEZWY6Cisg
ICAgIiIiIEEgY29udGFpbmVyIGZvciBhIGZhY3RvcnkgZGVmaW5pdGlvbi4gIiIiCisKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgZml4dHVyZW1hbmFnZXIsIGJhc2VpZCwgYXJnbmFtZSwgZnVuYywg
c2NvcGUsIHBhcmFtcywKKyAgICAgICAgICAgICAgICAgdW5pdHRlc3Q9RmFsc2UsIGlkcz1Ob25l
KToKKyAgICAgICAgc2VsZi5fZml4dHVyZW1hbmFnZXIgPSBmaXh0dXJlbWFuYWdlcgorICAgICAg
ICBzZWxmLmJhc2VpZCA9IGJhc2VpZCBvciAnJworICAgICAgICBzZWxmLmhhc19sb2NhdGlvbiA9
IGJhc2VpZCBpcyBub3QgTm9uZQorICAgICAgICBzZWxmLmZ1bmMgPSBmdW5jCisgICAgICAgIHNl
bGYuYXJnbmFtZSA9IGFyZ25hbWUKKyAgICAgICAgc2VsZi5zY29wZSA9IHNjb3BlCisgICAgICAg
IHNlbGYuc2NvcGVudW0gPSBzY29wZTJpbmRleCgKKyAgICAgICAgICAgIHNjb3BlIG9yICJmdW5j
dGlvbiIsCisgICAgICAgICAgICBkZXNjcj0nZml4dHVyZSB7MH0nLmZvcm1hdChmdW5jLl9fbmFt
ZV9fKSwKKyAgICAgICAgICAgIHdoZXJlPWJhc2VpZAorICAgICAgICApCisgICAgICAgIHNlbGYu
cGFyYW1zID0gcGFyYW1zCisgICAgICAgIHNlbGYuYXJnbmFtZXMgPSBnZXRmdW5jYXJnbmFtZXMo
ZnVuYywgaXNfbWV0aG9kPXVuaXR0ZXN0KQorICAgICAgICBzZWxmLnVuaXR0ZXN0ID0gdW5pdHRl
c3QKKyAgICAgICAgc2VsZi5pZHMgPSBpZHMKKyAgICAgICAgc2VsZi5fZmluYWxpemVycyA9IFtd
CisKKyAgICBkZWYgYWRkZmluYWxpemVyKHNlbGYsIGZpbmFsaXplcik6CisgICAgICAgIHNlbGYu
X2ZpbmFsaXplcnMuYXBwZW5kKGZpbmFsaXplcikKKworICAgIGRlZiBmaW5pc2goc2VsZiwgcmVx
dWVzdCk6CisgICAgICAgIGV4Y2VwdGlvbnMgPSBbXQorICAgICAgICB0cnk6CisgICAgICAgICAg
ICB3aGlsZSBzZWxmLl9maW5hbGl6ZXJzOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAg
ICAgICAgICAgICAgZnVuYyA9IHNlbGYuX2ZpbmFsaXplcnMucG9wKCkKKyAgICAgICAgICAgICAg
ICAgICAgZnVuYygpCisgICAgICAgICAgICAgICAgZXhjZXB0OiAgIyBub3FhCisgICAgICAgICAg
ICAgICAgICAgIGV4Y2VwdGlvbnMuYXBwZW5kKHN5cy5leGNfaW5mbygpKQorICAgICAgICAgICAg
aWYgZXhjZXB0aW9uczoKKyAgICAgICAgICAgICAgICBlID0gZXhjZXB0aW9uc1swXQorICAgICAg
ICAgICAgICAgIGRlbCBleGNlcHRpb25zICAjIGVuc3VyZSB3ZSBkb24ndCBrZWVwIGFsbCBmcmFt
ZXMgYWxpdmUgYmVjYXVzZSBvZiB0aGUgdHJhY2ViYWNrCisgICAgICAgICAgICAgICAgcHkuYnVp
bHRpbi5fcmVyYWlzZSgqZSkKKworICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgaG9vayA9
IHNlbGYuX2ZpeHR1cmVtYW5hZ2VyLnNlc3Npb24uZ2V0aG9va3Byb3h5KHJlcXVlc3Qubm9kZS5m
c3BhdGgpCisgICAgICAgICAgICBob29rLnB5dGVzdF9maXh0dXJlX3Bvc3RfZmluYWxpemVyKGZp
eHR1cmVkZWY9c2VsZiwgcmVxdWVzdD1yZXF1ZXN0KQorICAgICAgICAgICAgIyBldmVuIGlmIGZp
bmFsaXphdGlvbiBmYWlscywgd2UgaW52YWxpZGF0ZQorICAgICAgICAgICAgIyB0aGUgY2FjaGVk
IGZpeHR1cmUgdmFsdWUgYW5kIHJlbW92ZQorICAgICAgICAgICAgIyBhbGwgZmluYWxpemVycyBi
ZWNhdXNlIHRoZXkgbWF5IGJlIGJvdW5kIG1ldGhvZHMgd2hpY2ggd2lsbAorICAgICAgICAgICAg
IyBrZWVwIGluc3RhbmNlcyBhbGl2ZQorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAiY2Fj
aGVkX3Jlc3VsdCIpOgorICAgICAgICAgICAgICAgIGRlbCBzZWxmLmNhY2hlZF9yZXN1bHQKKyAg
ICAgICAgICAgIHNlbGYuX2ZpbmFsaXplcnMgPSBbXQorCisgICAgZGVmIGV4ZWN1dGUoc2VsZiwg
cmVxdWVzdCk6CisgICAgICAgICMgZ2V0IHJlcXVpcmVkIGFyZ3VtZW50cyBhbmQgcmVnaXN0ZXIg
b3VyIG93biBmaW5pc2goKQorICAgICAgICAjIHdpdGggdGhlaXIgZmluYWxpemF0aW9uCisgICAg
ICAgIGZvciBhcmduYW1lIGluIHNlbGYuYXJnbmFtZXM6CisgICAgICAgICAgICBmaXh0dXJlZGVm
ID0gcmVxdWVzdC5fZ2V0X2FjdGl2ZV9maXh0dXJlZGVmKGFyZ25hbWUpCisgICAgICAgICAgICBp
ZiBhcmduYW1lICE9ICJyZXF1ZXN0IjoKKyAgICAgICAgICAgICAgICBmaXh0dXJlZGVmLmFkZGZp
bmFsaXplcihmdW5jdG9vbHMucGFydGlhbChzZWxmLmZpbmlzaCwgcmVxdWVzdD1yZXF1ZXN0KSkK
KworICAgICAgICBteV9jYWNoZV9rZXkgPSByZXF1ZXN0LnBhcmFtX2luZGV4CisgICAgICAgIGNh
Y2hlZF9yZXN1bHQgPSBnZXRhdHRyKHNlbGYsICJjYWNoZWRfcmVzdWx0IiwgTm9uZSkKKyAgICAg
ICAgaWYgY2FjaGVkX3Jlc3VsdCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJlc3VsdCwgY2Fj
aGVfa2V5LCBlcnIgPSBjYWNoZWRfcmVzdWx0CisgICAgICAgICAgICBpZiBteV9jYWNoZV9rZXkg
PT0gY2FjaGVfa2V5OgorICAgICAgICAgICAgICAgIGlmIGVyciBpcyBub3QgTm9uZToKKyAgICAg
ICAgICAgICAgICAgICAgcHkuYnVpbHRpbi5fcmVyYWlzZSgqZXJyKQorICAgICAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQKKyAgICAgICAgICAgICMg
d2UgaGF2ZSBhIHByZXZpb3VzIGJ1dCBkaWZmZXJlbnRseSBwYXJhbWV0cml6ZWQgZml4dHVyZSBp
bnN0YW5jZQorICAgICAgICAgICAgIyBzbyB3ZSBuZWVkIHRvIHRlYXIgaXQgZG93biBiZWZvcmUg
Y3JlYXRpbmcgYSBuZXcgb25lCisgICAgICAgICAgICBzZWxmLmZpbmlzaChyZXF1ZXN0KQorICAg
ICAgICAgICAgYXNzZXJ0IG5vdCBoYXNhdHRyKHNlbGYsICJjYWNoZWRfcmVzdWx0IikKKworICAg
ICAgICBob29rID0gc2VsZi5fZml4dHVyZW1hbmFnZXIuc2Vzc2lvbi5nZXRob29rcHJveHkocmVx
dWVzdC5ub2RlLmZzcGF0aCkKKyAgICAgICAgcmV0dXJuIGhvb2sucHl0ZXN0X2ZpeHR1cmVfc2V0
dXAoZml4dHVyZWRlZj1zZWxmLCByZXF1ZXN0PXJlcXVlc3QpCisKKyAgICBkZWYgX19yZXByX18o
c2VsZik6CisgICAgICAgIHJldHVybiAoIjxGaXh0dXJlRGVmIG5hbWU9JXIgc2NvcGU9JXIgYmFz
ZWlkPSVyID4iICUKKyAgICAgICAgICAgICAgICAoc2VsZi5hcmduYW1lLCBzZWxmLnNjb3BlLCBz
ZWxmLmJhc2VpZCkpCisKKworZGVmIHB5dGVzdF9maXh0dXJlX3NldHVwKGZpeHR1cmVkZWYsIHJl
cXVlc3QpOgorICAgICIiIiBFeGVjdXRpb24gb2YgZml4dHVyZSBzZXR1cC4gIiIiCisgICAga3dh
cmdzID0ge30KKyAgICBmb3IgYXJnbmFtZSBpbiBmaXh0dXJlZGVmLmFyZ25hbWVzOgorICAgICAg
ICBmaXhkZWYgPSByZXF1ZXN0Ll9nZXRfYWN0aXZlX2ZpeHR1cmVkZWYoYXJnbmFtZSkKKyAgICAg
ICAgcmVzdWx0LCBhcmdfY2FjaGVfa2V5LCBleGMgPSBmaXhkZWYuY2FjaGVkX3Jlc3VsdAorICAg
ICAgICByZXF1ZXN0Ll9jaGVja19zY29wZShhcmduYW1lLCByZXF1ZXN0LnNjb3BlLCBmaXhkZWYu
c2NvcGUpCisgICAgICAgIGt3YXJnc1thcmduYW1lXSA9IHJlc3VsdAorCisgICAgZml4dHVyZWZ1
bmMgPSBmaXh0dXJlZGVmLmZ1bmMKKyAgICBpZiBmaXh0dXJlZGVmLnVuaXR0ZXN0OgorICAgICAg
ICBpZiByZXF1ZXN0Lmluc3RhbmNlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgIyBiaW5kIHRo
ZSB1bmJvdW5kIG1ldGhvZCB0byB0aGUgVGVzdENhc2UgaW5zdGFuY2UKKyAgICAgICAgICAgIGZp
eHR1cmVmdW5jID0gZml4dHVyZWRlZi5mdW5jLl9fZ2V0X18ocmVxdWVzdC5pbnN0YW5jZSkKKyAg
ICBlbHNlOgorICAgICAgICAjIHRoZSBmaXh0dXJlIGZ1bmN0aW9uIG5lZWRzIHRvIGJlIGJvdW5k
IHRvIHRoZSBhY3R1YWwKKyAgICAgICAgIyByZXF1ZXN0Lmluc3RhbmNlIHNvIHRoYXQgY29kZSB3
b3JraW5nIHdpdGggImZpeHR1cmVkZWYiIGJlaGF2ZXMKKyAgICAgICAgIyBhcyBleHBlY3RlZC4K
KyAgICAgICAgaWYgcmVxdWVzdC5pbnN0YW5jZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGZp
eHR1cmVmdW5jID0gZ2V0aW1mdW5jKGZpeHR1cmVkZWYuZnVuYykKKyAgICAgICAgICAgIGlmIGZp
eHR1cmVmdW5jICE9IGZpeHR1cmVkZWYuZnVuYzoKKyAgICAgICAgICAgICAgICBmaXh0dXJlZnVu
YyA9IGZpeHR1cmVmdW5jLl9fZ2V0X18ocmVxdWVzdC5pbnN0YW5jZSkKKyAgICBteV9jYWNoZV9r
ZXkgPSByZXF1ZXN0LnBhcmFtX2luZGV4CisgICAgdHJ5OgorICAgICAgICByZXN1bHQgPSBjYWxs
X2ZpeHR1cmVfZnVuYyhmaXh0dXJlZnVuYywgcmVxdWVzdCwga3dhcmdzKQorICAgIGV4Y2VwdCBU
RVNUX09VVENPTUU6CisgICAgICAgIGZpeHR1cmVkZWYuY2FjaGVkX3Jlc3VsdCA9IChOb25lLCBt
eV9jYWNoZV9rZXksIHN5cy5leGNfaW5mbygpKQorICAgICAgICByYWlzZQorICAgIGZpeHR1cmVk
ZWYuY2FjaGVkX3Jlc3VsdCA9IChyZXN1bHQsIG15X2NhY2hlX2tleSwgTm9uZSkKKyAgICByZXR1
cm4gcmVzdWx0CisKKworZGVmIF9lbnN1cmVfaW1tdXRhYmxlX2lkcyhpZHMpOgorICAgIGlmIGlk
cyBpcyBOb25lOgorICAgICAgICByZXR1cm4KKyAgICBpZiBjYWxsYWJsZShpZHMpOgorICAgICAg
ICByZXR1cm4gaWRzCisgICAgcmV0dXJuIHR1cGxlKGlkcykKKworCitAYXR0ci5zKGZyb3plbj1U
cnVlKQorY2xhc3MgRml4dHVyZUZ1bmN0aW9uTWFya2VyKG9iamVjdCk6CisgICAgc2NvcGUgPSBh
dHRyLmliKCkKKyAgICBwYXJhbXMgPSBhdHRyLmliKGNvbnZlcnQ9YXR0ci5jb252ZXJ0ZXJzLm9w
dGlvbmFsKHR1cGxlKSkKKyAgICBhdXRvdXNlID0gYXR0ci5pYihkZWZhdWx0PUZhbHNlKQorICAg
IGlkcyA9IGF0dHIuaWIoZGVmYXVsdD1Ob25lLCBjb252ZXJ0PV9lbnN1cmVfaW1tdXRhYmxlX2lk
cykKKyAgICBuYW1lID0gYXR0ci5pYihkZWZhdWx0PU5vbmUpCisKKyAgICBkZWYgX19jYWxsX18o
c2VsZiwgZnVuY3Rpb24pOgorICAgICAgICBpZiBpc2NsYXNzKGZ1bmN0aW9uKToKKyAgICAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAgICAgImNsYXNzIGZpeHR1cmVzIG5v
dCBzdXBwb3J0ZWQgKG1heSBiZSBpbiB0aGUgZnV0dXJlKSIpCisgICAgICAgIGZ1bmN0aW9uLl9w
eXRlc3RmaXh0dXJlZnVuY3Rpb24gPSBzZWxmCisgICAgICAgIHJldHVybiBmdW5jdGlvbgorCisK
K2RlZiBmaXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIsIHBhcmFtcz1Ob25lLCBhdXRvdXNlPUZhbHNl
LCBpZHM9Tm9uZSwgbmFtZT1Ob25lKToKKyAgICAiIiIgKHJldHVybiBhKSBkZWNvcmF0b3IgdG8g
bWFyayBhIGZpeHR1cmUgZmFjdG9yeSBmdW5jdGlvbi4KKworICAgIFRoaXMgZGVjb3JhdG9yIGNh
biBiZSB1c2VkICh3aXRoIG9yIHdpdGhvdXQgcGFyYW1ldGVycykgdG8gZGVmaW5lIGEKKyAgICBm
aXh0dXJlIGZ1bmN0aW9uLiAgVGhlIG5hbWUgb2YgdGhlIGZpeHR1cmUgZnVuY3Rpb24gY2FuIGxh
dGVyIGJlCisgICAgcmVmZXJlbmNlZCB0byBjYXVzZSBpdHMgaW52b2NhdGlvbiBhaGVhZCBvZiBy
dW5uaW5nIHRlc3RzOiB0ZXN0CisgICAgbW9kdWxlcyBvciBjbGFzc2VzIGNhbiB1c2UgdGhlIHB5
dGVzdC5tYXJrLnVzZWZpeHR1cmVzKGZpeHR1cmVuYW1lKQorICAgIG1hcmtlci4gIFRlc3QgZnVu
Y3Rpb25zIGNhbiBkaXJlY3RseSB1c2UgZml4dHVyZSBuYW1lcyBhcyBpbnB1dAorICAgIGFyZ3Vt
ZW50cyBpbiB3aGljaCBjYXNlIHRoZSBmaXh0dXJlIGluc3RhbmNlIHJldHVybmVkIGZyb20gdGhl
IGZpeHR1cmUKKyAgICBmdW5jdGlvbiB3aWxsIGJlIGluamVjdGVkLgorCisgICAgOmFyZyBzY29w
ZTogdGhlIHNjb3BlIGZvciB3aGljaCB0aGlzIGZpeHR1cmUgaXMgc2hhcmVkLCBvbmUgb2YKKyAg
ICAgICAgICAgICAgICAiZnVuY3Rpb24iIChkZWZhdWx0KSwgImNsYXNzIiwgIm1vZHVsZSIgb3Ig
InNlc3Npb24iLgorCisgICAgOmFyZyBwYXJhbXM6IGFuIG9wdGlvbmFsIGxpc3Qgb2YgcGFyYW1l
dGVycyB3aGljaCB3aWxsIGNhdXNlIG11bHRpcGxlCisgICAgICAgICAgICAgICAgaW52b2NhdGlv
bnMgb2YgdGhlIGZpeHR1cmUgZnVuY3Rpb24gYW5kIGFsbCBvZiB0aGUgdGVzdHMKKyAgICAgICAg
ICAgICAgICB1c2luZyBpdC4KKworICAgIDphcmcgYXV0b3VzZTogaWYgVHJ1ZSwgdGhlIGZpeHR1
cmUgZnVuYyBpcyBhY3RpdmF0ZWQgZm9yIGFsbCB0ZXN0cyB0aGF0CisgICAgICAgICAgICAgICAg
Y2FuIHNlZSBpdC4gIElmIEZhbHNlICh0aGUgZGVmYXVsdCkgdGhlbiBhbiBleHBsaWNpdAorICAg
ICAgICAgICAgICAgIHJlZmVyZW5jZSBpcyBuZWVkZWQgdG8gYWN0aXZhdGUgdGhlIGZpeHR1cmUu
CisKKyAgICA6YXJnIGlkczogbGlzdCBvZiBzdHJpbmcgaWRzIGVhY2ggY29ycmVzcG9uZGluZyB0
byB0aGUgcGFyYW1zCisgICAgICAgICAgICAgICAgc28gdGhhdCB0aGV5IGFyZSBwYXJ0IG9mIHRo
ZSB0ZXN0IGlkLiBJZiBubyBpZHMgYXJlIHByb3ZpZGVkCisgICAgICAgICAgICAgICAgdGhleSB3
aWxsIGJlIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20gdGhlIHBhcmFtcy4KKworICAgIDph
cmcgbmFtZTogdGhlIG5hbWUgb2YgdGhlIGZpeHR1cmUuIFRoaXMgZGVmYXVsdHMgdG8gdGhlIG5h
bWUgb2YgdGhlCisgICAgICAgICAgICAgICAgZGVjb3JhdGVkIGZ1bmN0aW9uLiBJZiBhIGZpeHR1
cmUgaXMgdXNlZCBpbiB0aGUgc2FtZSBtb2R1bGUgaW4KKyAgICAgICAgICAgICAgICB3aGljaCBp
dCBpcyBkZWZpbmVkLCB0aGUgZnVuY3Rpb24gbmFtZSBvZiB0aGUgZml4dHVyZSB3aWxsIGJlCisg
ICAgICAgICAgICAgICAgc2hhZG93ZWQgYnkgdGhlIGZ1bmN0aW9uIGFyZyB0aGF0IHJlcXVlc3Rz
IHRoZSBmaXh0dXJlOyBvbmUgd2F5CisgICAgICAgICAgICAgICAgdG8gcmVzb2x2ZSB0aGlzIGlz
IHRvIG5hbWUgdGhlIGRlY29yYXRlZCBmdW5jdGlvbgorICAgICAgICAgICAgICAgIGBgZml4dHVy
ZV88Zml4dHVyZW5hbWU+YGAgYW5kIHRoZW4gdXNlCisgICAgICAgICAgICAgICAgYGBAcHl0ZXN0
LmZpeHR1cmUobmFtZT0nPGZpeHR1cmVuYW1lPicpYGAuCisKKyAgICBGaXh0dXJlcyBjYW4gb3B0
aW9uYWxseSBwcm92aWRlIHRoZWlyIHZhbHVlcyB0byB0ZXN0IGZ1bmN0aW9ucyB1c2luZyBhIGBg
eWllbGRgYCBzdGF0ZW1lbnQsCisgICAgaW5zdGVhZCBvZiBgYHJldHVybmBgLiBJbiB0aGlzIGNh
c2UsIHRoZSBjb2RlIGJsb2NrIGFmdGVyIHRoZSBgYHlpZWxkYGAgc3RhdGVtZW50IGlzIGV4ZWN1
dGVkCisgICAgYXMgdGVhcmRvd24gY29kZSByZWdhcmRsZXNzIG9mIHRoZSB0ZXN0IG91dGNvbWUu
IEEgZml4dHVyZSBmdW5jdGlvbiBtdXN0IHlpZWxkIGV4YWN0bHkgb25jZS4KKyAgICAiIiIKKyAg
ICBpZiBjYWxsYWJsZShzY29wZSkgYW5kIHBhcmFtcyBpcyBOb25lIGFuZCBhdXRvdXNlIGlzIEZh
bHNlOgorICAgICAgICAjIGRpcmVjdCBkZWNvcmF0aW9uCisgICAgICAgIHJldHVybiBGaXh0dXJl
RnVuY3Rpb25NYXJrZXIoCisgICAgICAgICAgICAiZnVuY3Rpb24iLCBwYXJhbXMsIGF1dG91c2Us
IG5hbWU9bmFtZSkoc2NvcGUpCisgICAgaWYgcGFyYW1zIGlzIG5vdCBOb25lIGFuZCBub3QgaXNp
bnN0YW5jZShwYXJhbXMsIChsaXN0LCB0dXBsZSkpOgorICAgICAgICBwYXJhbXMgPSBsaXN0KHBh
cmFtcykKKyAgICByZXR1cm4gRml4dHVyZUZ1bmN0aW9uTWFya2VyKHNjb3BlLCBwYXJhbXMsIGF1
dG91c2UsIGlkcz1pZHMsIG5hbWU9bmFtZSkKKworCitkZWYgeWllbGRfZml4dHVyZShzY29wZT0i
ZnVuY3Rpb24iLCBwYXJhbXM9Tm9uZSwgYXV0b3VzZT1GYWxzZSwgaWRzPU5vbmUsIG5hbWU9Tm9u
ZSk6CisgICAgIiIiIChyZXR1cm4gYSkgZGVjb3JhdG9yIHRvIG1hcmsgYSB5aWVsZC1maXh0dXJl
IGZhY3RvcnkgZnVuY3Rpb24uCisKKyAgICAuLiBkZXByZWNhdGVkOjogMy4wCisgICAgICAgIFVz
ZSA6cHk6ZnVuYzpgcHl0ZXN0LmZpeHR1cmVgIGRpcmVjdGx5IGluc3RlYWQuCisgICAgIiIiCisg
ICAgaWYgY2FsbGFibGUoc2NvcGUpIGFuZCBwYXJhbXMgaXMgTm9uZSBhbmQgbm90IGF1dG91c2U6
CisgICAgICAgICMgZGlyZWN0IGRlY29yYXRpb24KKyAgICAgICAgcmV0dXJuIEZpeHR1cmVGdW5j
dGlvbk1hcmtlcigKKyAgICAgICAgICAgICJmdW5jdGlvbiIsIHBhcmFtcywgYXV0b3VzZSwgaWRz
PWlkcywgbmFtZT1uYW1lKShzY29wZSkKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gRml4dHVy
ZUZ1bmN0aW9uTWFya2VyKHNjb3BlLCBwYXJhbXMsIGF1dG91c2UsIGlkcz1pZHMsIG5hbWU9bmFt
ZSkKKworCitkZWZhdWx0ZnVuY2FyZ3ByZWZpeG1hcmtlciA9IGZpeHR1cmUoKQorCisKK0BmaXh0
dXJlKHNjb3BlPSJzZXNzaW9uIikKK2RlZiBweXRlc3Rjb25maWcocmVxdWVzdCk6CisgICAgIiIi
IHRoZSBweXRlc3QgY29uZmlnIG9iamVjdCB3aXRoIGFjY2VzcyB0byBjb21tYW5kIGxpbmUgb3B0
cy4iIiIKKyAgICByZXR1cm4gcmVxdWVzdC5jb25maWcKKworCitjbGFzcyBGaXh0dXJlTWFuYWdl
cjoKKyAgICAiIiIKKyAgICBweXRlc3QgZml4dHVyZXMgZGVmaW5pdGlvbnMgYW5kIGluZm9ybWF0
aW9uIGlzIHN0b3JlZCBhbmQgbWFuYWdlZAorICAgIGZyb20gdGhpcyBjbGFzcy4KKworICAgIER1
cmluZyBjb2xsZWN0aW9uIGZtLnBhcnNlZmFjdG9yaWVzKCkgaXMgY2FsbGVkIG11bHRpcGxlIHRp
bWVzIHRvIHBhcnNlCisgICAgZml4dHVyZSBmdW5jdGlvbiBkZWZpbml0aW9ucyBpbnRvIEZpeHR1
cmVEZWYgb2JqZWN0cyBhbmQgaW50ZXJuYWwKKyAgICBkYXRhIHN0cnVjdHVyZXMuCisKKyAgICBE
dXJpbmcgY29sbGVjdGlvbiBvZiB0ZXN0IGZ1bmN0aW9ucywgbWV0YWZ1bmMtbWVjaGFuaWNzIGlu
c3RhbnRpYXRlCisgICAgYSBGdW5jRml4dHVyZUluZm8gb2JqZWN0IHdoaWNoIGlzIGNhY2hlZCBw
ZXIgbm9kZS9mdW5jLW5hbWUuCisgICAgVGhpcyBGdW5jRml4dHVyZUluZm8gb2JqZWN0IGlzIGxh
dGVyIHJldHJpZXZlZCBieSBGdW5jdGlvbiBub2RlcworICAgIHdoaWNoIHRoZW1zZWx2ZXMgb2Zm
ZXIgYSBmaXh0dXJlbmFtZXMgYXR0cmlidXRlLgorCisgICAgVGhlIEZ1bmNGaXh0dXJlSW5mbyBv
YmplY3QgaG9sZHMgaW5mb3JtYXRpb24gYWJvdXQgZml4dHVyZXMgYW5kIEZpeHR1cmVEZWZzCisg
ICAgcmVsZXZhbnQgZm9yIGEgcGFydGljdWxhciBmdW5jdGlvbi4gIEFuIGluaXRpYWwgbGlzdCBv
ZiBmaXh0dXJlcyBpcworICAgIGFzc2VtYmxlZCBsaWtlIHRoaXM6CisKKyAgICAtIGluaS1kZWZp
bmVkIHVzZWZpeHR1cmVzCisgICAgLSBhdXRvdXNlLW1hcmtlZCBmaXh0dXJlcyBhbG9uZyB0aGUg
Y29sbGVjdGlvbiBjaGFpbiB1cCBmcm9tIHRoZSBmdW5jdGlvbgorICAgIC0gdXNlZml4dHVyZXMg
bWFya2VycyBhdCBtb2R1bGUvY2xhc3MvZnVuY3Rpb24gbGV2ZWwKKyAgICAtIHRlc3QgZnVuY3Rp
b24gZnVuY2FyZ3MKKworICAgIFN1YnNlcXVlbnRseSB0aGUgZnVuY2ZpeHR1cmVpbmZvLmZpeHR1
cmVuYW1lcyBhdHRyaWJ1dGUgaXMgY29tcHV0ZWQKKyAgICBhcyB0aGUgY2xvc3VyZSBvZiB0aGUg
Zml4dHVyZXMgbmVlZGVkIHRvIHNldHVwIHRoZSBpbml0aWFsIGZpeHR1cmVzLAorICAgIGkuIGUu
IGZpeHR1cmVzIG5lZWRlZCBieSBmaXh0dXJlIGZ1bmN0aW9ucyB0aGVtc2VsdmVzIGFyZSBhcHBl
bmRlZAorICAgIHRvIHRoZSBmaXh0dXJlbmFtZXMgbGlzdC4KKworICAgIFVwb24gdGhlIHRlc3Qt
c2V0dXAgcGhhc2VzIGFsbCBmaXh0dXJlbmFtZXMgYXJlIGluc3RhbnRpYXRlZCwgcmV0cmlldmVk
CisgICAgYnkgYSBsb29rdXAgb2YgdGhlaXIgRnVuY0ZpeHR1cmVJbmZvLgorICAgICIiIgorCisg
ICAgX2FyZ3ByZWZpeCA9ICJweXRlc3RfZnVuY2FyZ19fIgorICAgIEZpeHR1cmVMb29rdXBFcnJv
ciA9IEZpeHR1cmVMb29rdXBFcnJvcgorICAgIEZpeHR1cmVMb29rdXBFcnJvclJlcHIgPSBGaXh0
dXJlTG9va3VwRXJyb3JSZXByCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc2Vzc2lvbik6Cisg
ICAgICAgIHNlbGYuc2Vzc2lvbiA9IHNlc3Npb24KKyAgICAgICAgc2VsZi5jb25maWcgPSBzZXNz
aW9uLmNvbmZpZworICAgICAgICBzZWxmLl9hcmcyZml4dHVyZWRlZnMgPSB7fQorICAgICAgICBz
ZWxmLl9ob2xkZXJvYmpzZWVuID0gc2V0KCkKKyAgICAgICAgc2VsZi5fYXJnMmZpbmlzaCA9IHt9
CisgICAgICAgIHNlbGYuX25vZGVpZF9hbmRfYXV0b3VzZW5hbWVzID0gWygiIiwgc2VsZi5jb25m
aWcuZ2V0aW5pKCJ1c2VmaXh0dXJlcyIpKV0KKyAgICAgICAgc2Vzc2lvbi5jb25maWcucGx1Z2lu
bWFuYWdlci5yZWdpc3RlcihzZWxmLCAiZnVuY21hbmFnZSIpCisKKyAgICBkZWYgZ2V0Zml4dHVy
ZWluZm8oc2VsZiwgbm9kZSwgZnVuYywgY2xzLCBmdW5jYXJncz1UcnVlKToKKyAgICAgICAgaWYg
ZnVuY2FyZ3MgYW5kIG5vdCBoYXNhdHRyKG5vZGUsICJub2Z1bmNhcmdzIik6CisgICAgICAgICAg
ICBhcmduYW1lcyA9IGdldGZ1bmNhcmduYW1lcyhmdW5jLCBjbHM9Y2xzKQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgYXJnbmFtZXMgPSAoKQorICAgICAgICB1c2VmaXh0dXJlcyA9IGdldGF0
dHIoZnVuYywgInVzZWZpeHR1cmVzIiwgTm9uZSkKKyAgICAgICAgaW5pdGlhbG5hbWVzID0gYXJn
bmFtZXMKKyAgICAgICAgaWYgdXNlZml4dHVyZXMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBp
bml0aWFsbmFtZXMgPSB1c2VmaXh0dXJlcy5hcmdzICsgaW5pdGlhbG5hbWVzCisgICAgICAgIGZt
ID0gbm9kZS5zZXNzaW9uLl9maXh0dXJlbWFuYWdlcgorICAgICAgICBuYW1lc19jbG9zdXJlLCBh
cmcyZml4dHVyZWRlZnMgPSBmbS5nZXRmaXh0dXJlY2xvc3VyZShpbml0aWFsbmFtZXMsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG5vZGUpCisgICAgICAgIHJldHVybiBGdW5jRml4dHVyZUluZm8oYXJnbmFtZXMsIG5hbWVzX2Ns
b3N1cmUsIGFyZzJmaXh0dXJlZGVmcykKKworICAgIGRlZiBweXRlc3RfcGx1Z2luX3JlZ2lzdGVy
ZWQoc2VsZiwgcGx1Z2luKToKKyAgICAgICAgbm9kZWlkID0gTm9uZQorICAgICAgICB0cnk6Cisg
ICAgICAgICAgICBwID0gcHkucGF0aC5sb2NhbChwbHVnaW4uX19maWxlX18pCisgICAgICAgIGV4
Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgICMgY29uc3RydWN0IHRoZSBiYXNlIG5vZGVpZCB3aGljaCBpcyBsYXRlciB1c2Vk
IHRvIGNoZWNrCisgICAgICAgICAgICAjIHdoYXQgZml4dHVyZXMgYXJlIHZpc2libGUgZm9yIHBh
cnRpY3VsYXIgdGVzdHMgKGFzIGRlbm90ZWQKKyAgICAgICAgICAgICMgYnkgdGhlaXIgdGVzdCBp
ZCkKKyAgICAgICAgICAgIGlmIHAuYmFzZW5hbWUuc3RhcnRzd2l0aCgiY29uZnRlc3QucHkiKToK
KyAgICAgICAgICAgICAgICBub2RlaWQgPSBwLmRpcnBhdGgoKS5yZWx0byhzZWxmLmNvbmZpZy5y
b290ZGlyKQorICAgICAgICAgICAgICAgIGlmIHAuc2VwICE9IG5vZGVzLlNFUDoKKyAgICAgICAg
ICAgICAgICAgICAgbm9kZWlkID0gbm9kZWlkLnJlcGxhY2UocC5zZXAsIG5vZGVzLlNFUCkKKyAg
ICAgICAgc2VsZi5wYXJzZWZhY3RvcmllcyhwbHVnaW4sIG5vZGVpZCkKKworICAgIGRlZiBfZ2V0
YXV0b3VzZW5hbWVzKHNlbGYsIG5vZGVpZCk6CisgICAgICAgICIiIiByZXR1cm4gYSB0dXBsZSBv
ZiBmaXh0dXJlIG5hbWVzIHRvIGJlIHVzZWQuICIiIgorICAgICAgICBhdXRvdXNlbmFtZXMgPSBb
XQorICAgICAgICBmb3IgYmFzZWlkLCBiYXNlbmFtZXMgaW4gc2VsZi5fbm9kZWlkX2FuZF9hdXRv
dXNlbmFtZXM6CisgICAgICAgICAgICBpZiBub2RlaWQuc3RhcnRzd2l0aChiYXNlaWQpOgorICAg
ICAgICAgICAgICAgIGlmIGJhc2VpZDoKKyAgICAgICAgICAgICAgICAgICAgaSA9IGxlbihiYXNl
aWQpCisgICAgICAgICAgICAgICAgICAgIG5leHRjaGFyID0gbm9kZWlkW2k6aSArIDFdCisgICAg
ICAgICAgICAgICAgICAgIGlmIG5leHRjaGFyIGFuZCBuZXh0Y2hhciBub3QgaW4gIjovIjoKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgYXV0b3VzZW5h
bWVzLmV4dGVuZChiYXNlbmFtZXMpCisgICAgICAgICMgbWFrZSBzdXJlIGF1dG91c2VuYW1lcyBh
cmUgc29ydGVkIGJ5IHNjb3BlLCBzY29wZW51bSAwIGlzIHNlc3Npb24KKyAgICAgICAgYXV0b3Vz
ZW5hbWVzLnNvcnQoCisgICAgICAgICAgICBrZXk9bGFtYmRhIHg6IHNlbGYuX2FyZzJmaXh0dXJl
ZGVmc1t4XVstMV0uc2NvcGVudW0pCisgICAgICAgIHJldHVybiBhdXRvdXNlbmFtZXMKKworICAg
IGRlZiBnZXRmaXh0dXJlY2xvc3VyZShzZWxmLCBmaXh0dXJlbmFtZXMsIHBhcmVudG5vZGUpOgor
ICAgICAgICAjIGNvbGxlY3QgdGhlIGNsb3N1cmUgb2YgYWxsIGZpeHR1cmVzICwgc3RhcnRpbmcg
d2l0aCB0aGUgZ2l2ZW4KKyAgICAgICAgIyBmaXh0dXJlbmFtZXMgYXMgdGhlIGluaXRpYWwgc2V0
LiAgQXMgd2UgaGF2ZSB0byB2aXNpdCBhbGwKKyAgICAgICAgIyBmYWN0b3J5IGRlZmluaXRpb25z
IGFueXdheSwgd2UgYWxzbyByZXR1cm4gYSBhcmcyZml4dHVyZWRlZnMKKyAgICAgICAgIyBtYXBw
aW5nIHNvIHRoYXQgdGhlIGNhbGxlciBjYW4gcmV1c2UgaXQgYW5kIGRvZXMgbm90IGhhdmUKKyAg
ICAgICAgIyB0byByZS1kaXNjb3ZlciBmaXh0dXJlZGVmcyBhZ2FpbiBmb3IgZWFjaCBmaXh0dXJl
bmFtZQorICAgICAgICAjIChkaXNjb3ZlcmluZyBtYXRjaGluZyBmaXh0dXJlcyBmb3IgYSBnaXZl
biBuYW1lL25vZGUgaXMgZXhwZW5zaXZlKQorCisgICAgICAgIHBhcmVudGlkID0gcGFyZW50bm9k
ZS5ub2RlaWQKKyAgICAgICAgZml4dHVyZW5hbWVzX2Nsb3N1cmUgPSBzZWxmLl9nZXRhdXRvdXNl
bmFtZXMocGFyZW50aWQpCisKKyAgICAgICAgZGVmIG1lcmdlKG90aGVybGlzdCk6CisgICAgICAg
ICAgICBmb3IgYXJnIGluIG90aGVybGlzdDoKKyAgICAgICAgICAgICAgICBpZiBhcmcgbm90IGlu
IGZpeHR1cmVuYW1lc19jbG9zdXJlOgorICAgICAgICAgICAgICAgICAgICBmaXh0dXJlbmFtZXNf
Y2xvc3VyZS5hcHBlbmQoYXJnKQorCisgICAgICAgIG1lcmdlKGZpeHR1cmVuYW1lcykKKyAgICAg
ICAgYXJnMmZpeHR1cmVkZWZzID0ge30KKyAgICAgICAgbGFzdGxlbiA9IC0xCisgICAgICAgIHdo
aWxlIGxhc3RsZW4gIT0gbGVuKGZpeHR1cmVuYW1lc19jbG9zdXJlKToKKyAgICAgICAgICAgIGxh
c3RsZW4gPSBsZW4oZml4dHVyZW5hbWVzX2Nsb3N1cmUpCisgICAgICAgICAgICBmb3IgYXJnbmFt
ZSBpbiBmaXh0dXJlbmFtZXNfY2xvc3VyZToKKyAgICAgICAgICAgICAgICBpZiBhcmduYW1lIGlu
IGFyZzJmaXh0dXJlZGVmczoKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAg
ICAgICAgICBmaXh0dXJlZGVmcyA9IHNlbGYuZ2V0Zml4dHVyZWRlZnMoYXJnbmFtZSwgcGFyZW50
aWQpCisgICAgICAgICAgICAgICAgaWYgZml4dHVyZWRlZnM6CisgICAgICAgICAgICAgICAgICAg
IGFyZzJmaXh0dXJlZGVmc1thcmduYW1lXSA9IGZpeHR1cmVkZWZzCisgICAgICAgICAgICAgICAg
ICAgIG1lcmdlKGZpeHR1cmVkZWZzWy0xXS5hcmduYW1lcykKKyAgICAgICAgcmV0dXJuIGZpeHR1
cmVuYW1lc19jbG9zdXJlLCBhcmcyZml4dHVyZWRlZnMKKworICAgIGRlZiBweXRlc3RfZ2VuZXJh
dGVfdGVzdHMoc2VsZiwgbWV0YWZ1bmMpOgorICAgICAgICBmb3IgYXJnbmFtZSBpbiBtZXRhZnVu
Yy5maXh0dXJlbmFtZXM6CisgICAgICAgICAgICBmYWNsaXN0ID0gbWV0YWZ1bmMuX2FyZzJmaXh0
dXJlZGVmcy5nZXQoYXJnbmFtZSkKKyAgICAgICAgICAgIGlmIGZhY2xpc3Q6CisgICAgICAgICAg
ICAgICAgZml4dHVyZWRlZiA9IGZhY2xpc3RbLTFdCisgICAgICAgICAgICAgICAgaWYgZml4dHVy
ZWRlZi5wYXJhbXMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRyaXpl
X2Z1bmMgPSBnZXRhdHRyKG1ldGFmdW5jLmZ1bmN0aW9uLCAncGFyYW1ldHJpemUnLCBOb25lKQor
ICAgICAgICAgICAgICAgICAgICBmdW5jX3BhcmFtcyA9IGdldGF0dHIocGFyYW1ldHJpemVfZnVu
YywgJ2FyZ3MnLCBbW05vbmVdXSkKKyAgICAgICAgICAgICAgICAgICAgZnVuY19rd2FyZ3MgPSBn
ZXRhdHRyKHBhcmFtZXRyaXplX2Z1bmMsICdrd2FyZ3MnLCB7fSkKKyAgICAgICAgICAgICAgICAg
ICAgIyBza2lwIGRpcmVjdGx5IHBhcmFtZXRyaXplZCBhcmd1bWVudHMKKyAgICAgICAgICAgICAg
ICAgICAgaWYgImFyZ25hbWVzIiBpbiBmdW5jX2t3YXJnczoKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGFyZ25hbWVzID0gcGFyYW1ldHJpemVfZnVuYy5rd2FyZ3NbImFyZ25hbWVzIl0KKyAgICAg
ICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGFyZ25hbWVzID0g
ZnVuY19wYXJhbXNbMF0KKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoYXJn
bmFtZXMsICh0dXBsZSwgbGlzdCkpOgorICAgICAgICAgICAgICAgICAgICAgICAgYXJnbmFtZXMg
PSBbeC5zdHJpcCgpIGZvciB4IGluIGFyZ25hbWVzLnNwbGl0KCIsIikgaWYgeC5zdHJpcCgpXQor
ICAgICAgICAgICAgICAgICAgICBpZiBhcmduYW1lIG5vdCBpbiBmdW5jX3BhcmFtcyBhbmQgYXJn
bmFtZSBub3QgaW4gYXJnbmFtZXM6CisgICAgICAgICAgICAgICAgICAgICAgICBtZXRhZnVuYy5w
YXJhbWV0cml6ZShhcmduYW1lLCBmaXh0dXJlZGVmLnBhcmFtcywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGlyZWN0PVRydWUsIHNjb3BlPWZpeHR1cmVk
ZWYuc2NvcGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZHM9Zml4dHVyZWRlZi5pZHMpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGNv
bnRpbnVlICAjIHdpbGwgcmFpc2UgRml4dHVyZUxvb2t1cEVycm9yIGF0IHNldHVwIHRpbWUKKwor
ICAgIGRlZiBweXRlc3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtcyhzZWxmLCBpdGVtcyk6CisgICAg
ICAgICMgc2VwYXJhdGUgcGFyYW1ldHJpemVkIHNldHVwcworICAgICAgICBpdGVtc1s6XSA9IHJl
b3JkZXJfaXRlbXMoaXRlbXMpCisKKyAgICBkZWYgcGFyc2VmYWN0b3JpZXMoc2VsZiwgbm9kZV9v
cl9vYmosIG5vZGVpZD1OT1RTRVQsIHVuaXR0ZXN0PUZhbHNlKToKKyAgICAgICAgaWYgbm9kZWlk
IGlzIG5vdCBOT1RTRVQ6CisgICAgICAgICAgICBob2xkZXJvYmogPSBub2RlX29yX29iagorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgaG9sZGVyb2JqID0gbm9kZV9vcl9vYmoub2JqCisgICAg
ICAgICAgICBub2RlaWQgPSBub2RlX29yX29iai5ub2RlaWQKKyAgICAgICAgaWYgaG9sZGVyb2Jq
IGluIHNlbGYuX2hvbGRlcm9ianNlZW46CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgc2Vs
Zi5faG9sZGVyb2Jqc2Vlbi5hZGQoaG9sZGVyb2JqKQorICAgICAgICBhdXRvdXNlbmFtZXMgPSBb
XQorICAgICAgICBmb3IgbmFtZSBpbiBkaXIoaG9sZGVyb2JqKToKKyAgICAgICAgICAgICMgVGhl
IGF0dHJpYnV0ZSBjYW4gYmUgYW4gYXJiaXRyYXJ5IGRlc2NyaXB0b3IsIHNvIHRoZSBhdHRyaWJ1
dGUKKyAgICAgICAgICAgICMgYWNjZXNzIGJlbG93IGNhbiByYWlzZS4gc2FmZV9nZXRhdHQoKSBp
Z25vcmVzIHN1Y2ggZXhjZXB0aW9ucy4KKyAgICAgICAgICAgIG9iaiA9IHNhZmVfZ2V0YXR0ciho
b2xkZXJvYmosIG5hbWUsIE5vbmUpCisgICAgICAgICAgICAjIGZpeHR1cmUgZnVuY3Rpb25zIGhh
dmUgYSBweXRlc3RfZnVuY2FyZ19fIHByZWZpeCAocHJlLTIuMyBzdHlsZSkKKyAgICAgICAgICAg
ICMgb3IgYXJlICJAcHl0ZXN0LmZpeHR1cmUiIG1hcmtlZAorICAgICAgICAgICAgbWFya2VyID0g
Z2V0Zml4dHVyZW1hcmtlcihvYmopCisgICAgICAgICAgICBpZiBtYXJrZXIgaXMgTm9uZToKKyAg
ICAgICAgICAgICAgICBpZiBub3QgbmFtZS5zdGFydHN3aXRoKHNlbGYuX2FyZ3ByZWZpeCk6Cisg
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgaWYgbm90IGNhbGxh
YmxlKG9iaik6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAg
bWFya2VyID0gZGVmYXVsdGZ1bmNhcmdwcmVmaXhtYXJrZXIKKyAgICAgICAgICAgICAgICBmcm9t
IF9weXRlc3QgaW1wb3J0IGRlcHJlY2F0ZWQKKyAgICAgICAgICAgICAgICBzZWxmLmNvbmZpZy53
YXJuKCdDMScsIGRlcHJlY2F0ZWQuRlVOQ0FSR19QUkVGSVguZm9ybWF0KG5hbWU9bmFtZSksIG5v
ZGVpZD1ub2RlaWQpCisgICAgICAgICAgICAgICAgbmFtZSA9IG5hbWVbbGVuKHNlbGYuX2FyZ3By
ZWZpeCk6XQorICAgICAgICAgICAgZWxpZiBub3QgaXNpbnN0YW5jZShtYXJrZXIsIEZpeHR1cmVG
dW5jdGlvbk1hcmtlcik6CisgICAgICAgICAgICAgICAgIyBtYWdpYyBnbG9iYWxzICB3aXRoIF9f
Z2V0YXR0cl9fIG1pZ2h0IGhhdmUgZ290IHVzIGEgd3JvbmcKKyAgICAgICAgICAgICAgICAjIGZp
eHR1cmUgYXR0cmlidXRlCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgaWYgbWFya2VyLm5hbWU6CisgICAgICAgICAgICAgICAgICAg
IG5hbWUgPSBtYXJrZXIubmFtZQorICAgICAgICAgICAgICAgIG1zZyA9ICdmaXh0dXJlcyBjYW5u
b3QgaGF2ZSAicHl0ZXN0X2Z1bmNhcmdfXyIgcHJlZml4ICcgXAorICAgICAgICAgICAgICAgICAg
ICAgICdhbmQgYmUgZGVjb3JhdGVkIHdpdGggQHB5dGVzdC5maXh0dXJlOlxuJXMnICUgbmFtZQor
ICAgICAgICAgICAgICAgIGFzc2VydCBub3QgbmFtZS5zdGFydHN3aXRoKHNlbGYuX2FyZ3ByZWZp
eCksIG1zZworCisgICAgICAgICAgICBmaXh0dXJlX2RlZiA9IEZpeHR1cmVEZWYoc2VsZiwgbm9k
ZWlkLCBuYW1lLCBvYmosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFy
a2VyLnNjb3BlLCBtYXJrZXIucGFyYW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVuaXR0ZXN0PXVuaXR0ZXN0LCBpZHM9bWFya2VyLmlkcykKKworICAgICAgICAgICAg
ZmFjbGlzdCA9IHNlbGYuX2FyZzJmaXh0dXJlZGVmcy5zZXRkZWZhdWx0KG5hbWUsIFtdKQorICAg
ICAgICAgICAgaWYgZml4dHVyZV9kZWYuaGFzX2xvY2F0aW9uOgorICAgICAgICAgICAgICAgIGZh
Y2xpc3QuYXBwZW5kKGZpeHR1cmVfZGVmKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICAgICAjIGZpeHR1cmVkZWZzIHdpdGggbm8gbG9jYXRpb24gYXJlIGF0IHRoZSBmcm9udAorICAg
ICAgICAgICAgICAgICMgc28gdGhpcyBpbnNlcnRzIHRoZSBjdXJyZW50IGZpeHR1cmVkZWYgYWZ0
ZXIgdGhlCisgICAgICAgICAgICAgICAgIyBleGlzdGluZyBmaXh0dXJlZGVmcyBmcm9tIGV4dGVy
bmFsIHBsdWdpbnMgYnV0CisgICAgICAgICAgICAgICAgIyBiZWZvcmUgdGhlIGZpeHR1cmVkZWZz
IHByb3ZpZGVkIGluIGNvbmZ0ZXN0cy4KKyAgICAgICAgICAgICAgICBpID0gbGVuKFtmIGZvciBm
IGluIGZhY2xpc3QgaWYgbm90IGYuaGFzX2xvY2F0aW9uXSkKKyAgICAgICAgICAgICAgICBmYWNs
aXN0Lmluc2VydChpLCBmaXh0dXJlX2RlZikKKyAgICAgICAgICAgIGlmIG1hcmtlci5hdXRvdXNl
OgorICAgICAgICAgICAgICAgIGF1dG91c2VuYW1lcy5hcHBlbmQobmFtZSkKKworICAgICAgICBp
ZiBhdXRvdXNlbmFtZXM6CisgICAgICAgICAgICBzZWxmLl9ub2RlaWRfYW5kX2F1dG91c2VuYW1l
cy5hcHBlbmQoKG5vZGVpZCBvciAnJywgYXV0b3VzZW5hbWVzKSkKKworICAgIGRlZiBnZXRmaXh0
dXJlZGVmcyhzZWxmLCBhcmduYW1lLCBub2RlaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgR2V0
cyBhIGxpc3Qgb2YgZml4dHVyZXMgd2hpY2ggYXJlIGFwcGxpY2FibGUgdG8gdGhlIGdpdmVuIG5v
ZGUgaWQuCisKKyAgICAgICAgOnBhcmFtIHN0ciBhcmduYW1lOiBuYW1lIG9mIHRoZSBmaXh0dXJl
IHRvIHNlYXJjaCBmb3IKKyAgICAgICAgOnBhcmFtIHN0ciBub2RlaWQ6IGZ1bGwgbm9kZSBpZCBv
ZiB0aGUgcmVxdWVzdGluZyB0ZXN0LgorICAgICAgICA6cmV0dXJuOiBsaXN0W0ZpeHR1cmVEZWZd
CisgICAgICAgICIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICBmaXh0dXJlZGVmcyA9IHNl
bGYuX2FyZzJmaXh0dXJlZGVmc1thcmduYW1lXQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6Cisg
ICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJu
IHR1cGxlKHNlbGYuX21hdGNoZmFjdG9yaWVzKGZpeHR1cmVkZWZzLCBub2RlaWQpKQorCisgICAg
ZGVmIF9tYXRjaGZhY3RvcmllcyhzZWxmLCBmaXh0dXJlZGVmcywgbm9kZWlkKToKKyAgICAgICAg
Zm9yIGZpeHR1cmVkZWYgaW4gZml4dHVyZWRlZnM6CisgICAgICAgICAgICBpZiBub2Rlcy5pc2No
aWxkbm9kZShmaXh0dXJlZGVmLmJhc2VpZCwgbm9kZWlkKToKKyAgICAgICAgICAgICAgICB5aWVs
ZCBmaXh0dXJlZGVmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2ZyZWV6ZV9zdXBw
b3J0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9mcmVlemVfc3VwcG9ydC5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45NzE0N2E4ODI1MGEzNTUzYzg1YzQ0YjE4MjgyM2U1NDJiOWY3NGJjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9mcmVlemVfc3VwcG9ydC5weQpAQCAtMCwwICsxLDQz
IEBACisiIiIKK1Byb3ZpZGVzIGEgZnVuY3Rpb24gdG8gcmVwb3J0IGFsbCBpbnRlcm5hbCBtb2R1
bGVzIGZvciB1c2luZyBmcmVlemluZyB0b29scworcHl0ZXN0CisiIiIKK2Zyb20gX19mdXR1cmVf
XyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKworCitk
ZWYgZnJlZXplX2luY2x1ZGVzKCk6CisgICAgIiIiCisgICAgUmV0dXJucyBhIGxpc3Qgb2YgbW9k
dWxlIG5hbWVzIHVzZWQgYnkgcHkudGVzdCB0aGF0IHNob3VsZCBiZQorICAgIGluY2x1ZGVkIGJ5
IGN4X2ZyZWV6ZS4KKyAgICAiIiIKKyAgICBpbXBvcnQgcHkKKyAgICBpbXBvcnQgX3B5dGVzdAor
ICAgIHJlc3VsdCA9IGxpc3QoX2l0ZXJfYWxsX21vZHVsZXMocHkpKQorICAgIHJlc3VsdCArPSBs
aXN0KF9pdGVyX2FsbF9tb2R1bGVzKF9weXRlc3QpKQorICAgIHJldHVybiByZXN1bHQKKworCitk
ZWYgX2l0ZXJfYWxsX21vZHVsZXMocGFja2FnZSwgcHJlZml4PScnKToKKyAgICAiIiIKKyAgICBJ
dGVyYXRlcyBvdmVyIHRoZSBuYW1lcyBvZiBhbGwgbW9kdWxlcyB0aGF0IGNhbiBiZSBmb3VuZCBp
biB0aGUgZ2l2ZW4KKyAgICBwYWNrYWdlLCByZWN1cnNpdmVseS4KKyAgICBFeGFtcGxlOgorICAg
ICAgICBfaXRlcl9hbGxfbW9kdWxlcyhfcHl0ZXN0KSAtPgorICAgICAgICAgICAgWydfcHl0ZXN0
LmFzc2VydGlvbi5uZXdpbnRlcnByZXQnLAorICAgICAgICAgICAgICdfcHl0ZXN0LmNhcHR1cmUn
LAorICAgICAgICAgICAgICdfcHl0ZXN0LmNvcmUnLAorICAgICAgICAgICAgIC4uLgorICAgICAg
ICAgICAgXQorICAgICIiIgorICAgIGltcG9ydCBvcworICAgIGltcG9ydCBwa2d1dGlsCisgICAg
aWYgdHlwZShwYWNrYWdlKSBpcyBub3Qgc3RyOgorICAgICAgICBwYXRoLCBwcmVmaXggPSBwYWNr
YWdlLl9fcGF0aF9fWzBdLCBwYWNrYWdlLl9fbmFtZV9fICsgJy4nCisgICAgZWxzZToKKyAgICAg
ICAgcGF0aCA9IHBhY2thZ2UKKyAgICBmb3IgXywgbmFtZSwgaXNfcGFja2FnZSBpbiBwa2d1dGls
Lml0ZXJfbW9kdWxlcyhbcGF0aF0pOgorICAgICAgICBpZiBpc19wYWNrYWdlOgorICAgICAgICAg
ICAgZm9yIG0gaW4gX2l0ZXJfYWxsX21vZHVsZXMob3MucGF0aC5qb2luKHBhdGgsIG5hbWUpLCBw
cmVmaXg9bmFtZSArICcuJyk6CisgICAgICAgICAgICAgICAgeWllbGQgcHJlZml4ICsgbQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgeWllbGQgcHJlZml4ICsgbmFtZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvX3B5dGVzdC9oZWxwY29uZmlnLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9o
ZWxwY29uZmlnLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3NDQ2MzdmODY2MGYyNzJjNDg4YTJhYjBjNjhlZTRl
ODU3MThiYmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2hlbHBjb25m
aWcucHkKQEAgLTAsMCArMSwxODQgQEAKKyIiIiB2ZXJzaW9uIGluZm8sIGhlbHAgbWVzc2FnZXMs
IHRyYWNpbmcgY29uZmlndXJhdGlvbi4gICIiIgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNv
bHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQgcHkKK2ltcG9y
dCBweXRlc3QKK2Zyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IFByaW50SGVscAoraW1wb3J0IG9z
CitpbXBvcnQgc3lzCitmcm9tIGFyZ3BhcnNlIGltcG9ydCBBY3Rpb24KKworCitjbGFzcyBIZWxw
QWN0aW9uKEFjdGlvbik6CisgICAgIiIiVGhpcyBpcyBhbiBhcmdwYXJzZSBBY3Rpb24gdGhhdCB3
aWxsIHJhaXNlIGFuIGV4Y2VwdGlvbiBpbgorICAgIG9yZGVyIHRvIHNraXAgdGhlIHJlc3Qgb2Yg
dGhlIGFyZ3VtZW50IHBhcnNpbmcgd2hlbiAtLWhlbHAgaXMgcGFzc2VkLgorICAgIFRoaXMgcHJl
dmVudHMgYXJncGFyc2UgZnJvbSBxdWl0dGluZyBkdWUgdG8gbWlzc2luZyByZXF1aXJlZCBhcmd1
bWVudHMKKyAgICB3aGVuIGFueSBhcmUgZGVmaW5lZCwgZm9yIGV4YW1wbGUgYnkgYGBweXRlc3Rf
YWRkb3B0aW9uYGAuCisgICAgVGhpcyBpcyBzaW1pbGFyIHRvIHRoZSB3YXkgdGhhdCB0aGUgYnVp
bHRpbiBhcmdwYXJzZSAtLWhlbHAgb3B0aW9uIGlzCisgICAgaW1wbGVtZW50ZWQgYnkgcmFpc2lu
ZyBTeXN0ZW1FeGl0LgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsCisgICAgICAg
ICAgICAgICAgIG9wdGlvbl9zdHJpbmdzLAorICAgICAgICAgICAgICAgICBkZXN0PU5vbmUsCisg
ICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgIGhlbHA9Tm9u
ZSk6CisgICAgICAgIHN1cGVyKEhlbHBBY3Rpb24sIHNlbGYpLl9faW5pdF9fKAorICAgICAgICAg
ICAgb3B0aW9uX3N0cmluZ3M9b3B0aW9uX3N0cmluZ3MsCisgICAgICAgICAgICBkZXN0PWRlc3Qs
CisgICAgICAgICAgICBjb25zdD1UcnVlLAorICAgICAgICAgICAgZGVmYXVsdD1kZWZhdWx0LAor
ICAgICAgICAgICAgbmFyZ3M9MCwKKyAgICAgICAgICAgIGhlbHA9aGVscCkKKworICAgIGRlZiBf
X2NhbGxfXyhzZWxmLCBwYXJzZXIsIG5hbWVzcGFjZSwgdmFsdWVzLCBvcHRpb25fc3RyaW5nPU5v
bmUpOgorICAgICAgICBzZXRhdHRyKG5hbWVzcGFjZSwgc2VsZi5kZXN0LCBzZWxmLmNvbnN0KQor
CisgICAgICAgICMgV2Ugc2hvdWxkIG9ubHkgc2tpcCB0aGUgcmVzdCBvZiB0aGUgcGFyc2luZyBh
ZnRlciBwcmVwYXJzZSBpcyBkb25lCisgICAgICAgIGlmIGdldGF0dHIocGFyc2VyLl9wYXJzZXIs
ICdhZnRlcl9wcmVwYXJzZScsIEZhbHNlKToKKyAgICAgICAgICAgIHJhaXNlIFByaW50SGVscAor
CisKK2RlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAgZ3JvdXAgPSBwYXJzZXIuZ2V0
Z3JvdXAoJ2RlYnVnY29uZmlnJykKKyAgICBncm91cC5hZGRvcHRpb24oJy0tdmVyc2lvbicsIGFj
dGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgIGhlbHA9ImRpc3BsYXkgcHl0
ZXN0IGxpYiB2ZXJzaW9uIGFuZCBpbXBvcnQgaW5mb3JtYXRpb24uIikKKyAgICBncm91cC5fYWRk
b3B0aW9uKCItaCIsICItLWhlbHAiLCBhY3Rpb249SGVscEFjdGlvbiwgZGVzdD0iaGVscCIsCisg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSJzaG93IGhlbHAgbWVzc2FnZSBhbmQgY29uZmlndXJh
dGlvbiBpbmZvIikKKyAgICBncm91cC5fYWRkb3B0aW9uKCctcCcsIGFjdGlvbj0iYXBwZW5kIiwg
ZGVzdD0icGx1Z2lucyIsIGRlZmF1bHQ9W10sCisgICAgICAgICAgICAgICAgICAgICBtZXRhdmFy
PSJuYW1lIiwKKyAgICAgICAgICAgICAgICAgICAgIGhlbHA9ImVhcmx5LWxvYWQgZ2l2ZW4gcGx1
Z2luIChtdWx0aS1hbGxvd2VkKS4gIgorICAgICAgICAgICAgICAgICAgICAgIlRvIGF2b2lkIGxv
YWRpbmcgb2YgcGx1Z2lucywgdXNlIHRoZSBgbm86YCBwcmVmaXgsIGUuZy4gIgorICAgICAgICAg
ICAgICAgICAgICAgImBubzpkb2N0ZXN0YC4iKQorICAgIGdyb3VwLmFkZG9wdGlvbignLS10cmFj
ZWNvbmZpZycsICctLXRyYWNlLWNvbmZpZycsCisgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0i
c3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgIGhlbHA9InRy
YWNlIGNvbnNpZGVyYXRpb25zIG9mIGNvbmZ0ZXN0LnB5IGZpbGVzLiIpLAorICAgIGdyb3VwLmFk
ZG9wdGlvbignLS1kZWJ1ZycsCisgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIsIGRlc3Q9ImRlYnVnIiwgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgaGVs
cD0ic3RvcmUgaW50ZXJuYWwgdHJhY2luZyBkZWJ1ZyBpbmZvcm1hdGlvbiBpbiAncHl0ZXN0ZGVi
dWcubG9nJy4iKQorICAgIGdyb3VwLl9hZGRvcHRpb24oCisgICAgICAgICctbycsICctLW92ZXJy
aWRlLWluaScsIG5hcmdzPScqJywgZGVzdD0ib3ZlcnJpZGVfaW5pIiwKKyAgICAgICAgYWN0aW9u
PSJhcHBlbmQiLAorICAgICAgICBoZWxwPSJvdmVycmlkZSBjb25maWcgb3B0aW9uIHdpdGggb3B0
aW9uPXZhbHVlIHN0eWxlLCBlLmcuIGAtbyB4ZmFpbF9zdHJpY3Q9VHJ1ZWAuIikKKworCitAcHl0
ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCitkZWYgcHl0ZXN0X2NtZGxpbmVfcGFyc2Uo
KToKKyAgICBvdXRjb21lID0geWllbGQKKyAgICBjb25maWcgPSBvdXRjb21lLmdldF9yZXN1bHQo
KQorICAgIGlmIGNvbmZpZy5vcHRpb24uZGVidWc6CisgICAgICAgIHBhdGggPSBvcy5wYXRoLmFi
c3BhdGgoInB5dGVzdGRlYnVnLmxvZyIpCisgICAgICAgIGRlYnVnZmlsZSA9IG9wZW4ocGF0aCwg
J3cnKQorICAgICAgICBkZWJ1Z2ZpbGUud3JpdGUoInZlcnNpb25zIHB5dGVzdC0lcywgcHktJXMs
ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJweXRob24tJXNcbmN3ZD0lc1xuYXJncz0lc1xu
XG4iICUgKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5dGVzdC5fX3ZlcnNpb25fXywg
cHkuX192ZXJzaW9uX18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi4iLmpvaW4obWFw
KHN0ciwgc3lzLnZlcnNpb25faW5mbykpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9z
LmdldGN3ZCgpLCBjb25maWcuX29yaWdhcmdzKSkKKyAgICAgICAgY29uZmlnLnRyYWNlLnJvb3Qu
c2V0d3JpdGVyKGRlYnVnZmlsZS53cml0ZSkKKyAgICAgICAgdW5kb190cmFjaW5nID0gY29uZmln
LnBsdWdpbm1hbmFnZXIuZW5hYmxlX3RyYWNpbmcoKQorICAgICAgICBzeXMuc3RkZXJyLndyaXRl
KCJ3cml0aW5nIHB5dGVzdGRlYnVnIGluZm9ybWF0aW9uIHRvICVzXG4iICUgcGF0aCkKKworICAg
ICAgICBkZWYgdW5zZXRfdHJhY2luZygpOgorICAgICAgICAgICAgZGVidWdmaWxlLmNsb3NlKCkK
KyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIndyb3RlIHB5dGVzdGRlYnVnIGluZm9ybWF0
aW9uIHRvICVzXG4iICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWdmaWxlLm5h
bWUpCisgICAgICAgICAgICBjb25maWcudHJhY2Uucm9vdC5zZXR3cml0ZXIoTm9uZSkKKyAgICAg
ICAgICAgIHVuZG9fdHJhY2luZygpCisKKyAgICAgICAgY29uZmlnLmFkZF9jbGVhbnVwKHVuc2V0
X3RyYWNpbmcpCisKKworZGVmIHB5dGVzdF9jbWRsaW5lX21haW4oY29uZmlnKToKKyAgICBpZiBj
b25maWcub3B0aW9uLnZlcnNpb246CisgICAgICAgIHAgPSBweS5wYXRoLmxvY2FsKHB5dGVzdC5f
X2ZpbGVfXykKKyAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiVGhpcyBpcyBweXRlc3QgdmVyc2lv
biAlcywgaW1wb3J0ZWQgZnJvbSAlc1xuIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgKHB5
dGVzdC5fX3ZlcnNpb25fXywgcCkpCisgICAgICAgIHBsdWdpbmluZm8gPSBnZXRwbHVnaW52ZXJz
aW9uaW5mbyhjb25maWcpCisgICAgICAgIGlmIHBsdWdpbmluZm86CisgICAgICAgICAgICBmb3Ig
bGluZSBpbiBwbHVnaW5pbmZvOgorICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUobGlu
ZSArICJcbiIpCisgICAgICAgIHJldHVybiAwCisgICAgZWxpZiBjb25maWcub3B0aW9uLmhlbHA6
CisgICAgICAgIGNvbmZpZy5fZG9fY29uZmlndXJlKCkKKyAgICAgICAgc2hvd2hlbHAoY29uZmln
KQorICAgICAgICBjb25maWcuX2Vuc3VyZV91bmNvbmZpZ3VyZSgpCisgICAgICAgIHJldHVybiAw
CisKKworZGVmIHNob3doZWxwKGNvbmZpZyk6CisgICAgcmVwb3J0ZXIgPSBjb25maWcucGx1Z2lu
bWFuYWdlci5nZXRfcGx1Z2luKCd0ZXJtaW5hbHJlcG9ydGVyJykKKyAgICB0dyA9IHJlcG9ydGVy
Ll90dworICAgIHR3LndyaXRlKGNvbmZpZy5fcGFyc2VyLm9wdHBhcnNlci5mb3JtYXRfaGVscCgp
KQorICAgIHR3LmxpbmUoKQorICAgIHR3LmxpbmUoKQorICAgIHR3LmxpbmUoIltweXRlc3RdIGlu
aS1vcHRpb25zIGluIHRoZSBmaXJzdCAiCisgICAgICAgICAgICAicHl0ZXN0LmluaXx0b3guaW5p
fHNldHVwLmNmZyBmaWxlIGZvdW5kOiIpCisgICAgdHcubGluZSgpCisKKyAgICBmb3IgbmFtZSBp
biBjb25maWcuX3BhcnNlci5faW5pbmFtZXM6CisgICAgICAgIGhlbHAsIHR5cGUsIGRlZmF1bHQg
PSBjb25maWcuX3BhcnNlci5faW5pZGljdFtuYW1lXQorICAgICAgICBpZiB0eXBlIGlzIE5vbmU6
CisgICAgICAgICAgICB0eXBlID0gInN0cmluZyIKKyAgICAgICAgc3BlYyA9ICIlcyAoJXMpIiAl
IChuYW1lLCB0eXBlKQorICAgICAgICBsaW5lID0gIiAgJS0yNHMgJXMiICUgKHNwZWMsIGhlbHAp
CisgICAgICAgIHR3LmxpbmUobGluZVs6dHcuZnVsbHdpZHRoXSkKKworICAgIHR3LmxpbmUoKQor
ICAgIHR3LmxpbmUoImVudmlyb25tZW50IHZhcmlhYmxlczoiKQorICAgIHZhcnMgPSBbCisgICAg
ICAgICgiUFlURVNUX0FERE9QVFMiLCAiZXh0cmEgY29tbWFuZCBsaW5lIG9wdGlvbnMiKSwKKyAg
ICAgICAgKCJQWVRFU1RfUExVR0lOUyIsICJjb21tYS1zZXBhcmF0ZWQgcGx1Z2lucyB0byBsb2Fk
IGR1cmluZyBzdGFydHVwIiksCisgICAgICAgICgiUFlURVNUX0RFQlVHIiwgInNldCB0byBlbmFi
bGUgZGVidWcgdHJhY2luZyBvZiBweXRlc3QncyBpbnRlcm5hbHMiKQorICAgIF0KKyAgICBmb3Ig
bmFtZSwgaGVscCBpbiB2YXJzOgorICAgICAgICB0dy5saW5lKCIgICUtMjRzICVzIiAlIChuYW1l
LCBoZWxwKSkKKyAgICB0dy5saW5lKCkKKyAgICB0dy5saW5lKCkKKworICAgIHR3LmxpbmUoInRv
IHNlZSBhdmFpbGFibGUgbWFya2VycyB0eXBlOiBweXRlc3QgLS1tYXJrZXJzIikKKyAgICB0dy5s
aW5lKCJ0byBzZWUgYXZhaWxhYmxlIGZpeHR1cmVzIHR5cGU6IHB5dGVzdCAtLWZpeHR1cmVzIikK
KyAgICB0dy5saW5lKCIoc2hvd24gYWNjb3JkaW5nIHRvIHNwZWNpZmllZCBmaWxlX29yX2RpciBv
ciBjdXJyZW50IGRpciAiCisgICAgICAgICAgICAiaWYgbm90IHNwZWNpZmllZCkiKQorCisgICAg
Zm9yIHdhcm5pbmdyZXBvcnQgaW4gcmVwb3J0ZXIuc3RhdHMuZ2V0KCd3YXJuaW5ncycsIFtdKToK
KyAgICAgICAgdHcubGluZSgid2FybmluZyA6ICIgKyB3YXJuaW5ncmVwb3J0Lm1lc3NhZ2UsIHJl
ZD1UcnVlKQorICAgIHJldHVybgorCisKK2NvbmZ0ZXN0X29wdGlvbnMgPSBbCisgICAgKCdweXRl
c3RfcGx1Z2lucycsICdsaXN0IG9mIHBsdWdpbiBuYW1lcyB0byBsb2FkJyksCitdCisKKworZGVm
IGdldHBsdWdpbnZlcnNpb25pbmZvKGNvbmZpZyk6CisgICAgbGluZXMgPSBbXQorICAgIHBsdWdp
bmluZm8gPSBjb25maWcucGx1Z2lubWFuYWdlci5saXN0X3BsdWdpbl9kaXN0aW5mbygpCisgICAg
aWYgcGx1Z2luaW5mbzoKKyAgICAgICAgbGluZXMuYXBwZW5kKCJzZXR1cHRvb2xzIHJlZ2lzdGVy
ZWQgcGx1Z2luczoiKQorICAgICAgICBmb3IgcGx1Z2luLCBkaXN0IGluIHBsdWdpbmluZm86Cisg
ICAgICAgICAgICBsb2MgPSBnZXRhdHRyKHBsdWdpbiwgJ19fZmlsZV9fJywgcmVwcihwbHVnaW4p
KQorICAgICAgICAgICAgY29udGVudCA9ICIlcy0lcyBhdCAlcyIgJSAoZGlzdC5wcm9qZWN0X25h
bWUsIGRpc3QudmVyc2lvbiwgbG9jKQorICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIgICIgKyBj
b250ZW50KQorICAgIHJldHVybiBsaW5lcworCisKK2RlZiBweXRlc3RfcmVwb3J0X2hlYWRlcihj
b25maWcpOgorICAgIGxpbmVzID0gW10KKyAgICBpZiBjb25maWcub3B0aW9uLmRlYnVnIG9yIGNv
bmZpZy5vcHRpb24udHJhY2Vjb25maWc6CisgICAgICAgIGxpbmVzLmFwcGVuZCgidXNpbmc6IHB5
dGVzdC0lcyBweWxpYi0lcyIgJQorICAgICAgICAgICAgICAgICAgICAgKHB5dGVzdC5fX3ZlcnNp
b25fXywgcHkuX192ZXJzaW9uX18pKQorCisgICAgICAgIHZlcmluZm8gPSBnZXRwbHVnaW52ZXJz
aW9uaW5mbyhjb25maWcpCisgICAgICAgIGlmIHZlcmluZm86CisgICAgICAgICAgICBsaW5lcy5l
eHRlbmQodmVyaW5mbykKKworICAgIGlmIGNvbmZpZy5vcHRpb24udHJhY2Vjb25maWc6CisgICAg
ICAgIGxpbmVzLmFwcGVuZCgiYWN0aXZlIHBsdWdpbnM6IikKKyAgICAgICAgaXRlbXMgPSBjb25m
aWcucGx1Z2lubWFuYWdlci5saXN0X25hbWVfcGx1Z2luKCkKKyAgICAgICAgZm9yIG5hbWUsIHBs
dWdpbiBpbiBpdGVtczoKKyAgICAgICAgICAgIGlmIGhhc2F0dHIocGx1Z2luLCAnX19maWxlX18n
KToKKyAgICAgICAgICAgICAgICByID0gcGx1Z2luLl9fZmlsZV9fCisgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgIHIgPSByZXByKHBsdWdpbikKKyAgICAgICAgICAgIGxpbmVzLmFw
cGVuZCgiICAgICUtMjBzOiAlcyIgJSAobmFtZSwgcikpCisgICAgcmV0dXJuIGxpbmVzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2hvb2tzcGVjLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5
dGVzdC9ob29rc3BlYy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDBiZjk5ZDM3NWFhNmM3NWVlNzQzZmU2OWVj
Zjc5NzAyMjMyMmNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9ob29r
c3BlYy5weQpAQCAtMCwwICsxLDQyMyBAQAorIiIiIGhvb2sgc3BlY2lmaWNhdGlvbnMgZm9yIHB5
dGVzdCBwbHVnaW5zLCBpbnZva2VkIGZyb20gbWFpbi5weSBhbmQgYnVpbHRpbiBwbHVnaW5zLiAg
IiIiCisKK2Zyb20gcGx1Z2d5IGltcG9ydCBIb29rc3BlY01hcmtlcgorCitob29rc3BlYyA9IEhv
b2tzcGVjTWFya2VyKCJweXRlc3QiKQorCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgSW5pdGlhbGl6
YXRpb24gaG9va3MgY2FsbGVkIGZvciBldmVyeSBwbHVnaW4KKyMgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CisKK0Bob29rc3BlYyhoaXN0b3JpYz1UcnVlKQorZGVmIHB5dGVzdF9hZGRob29rcyhwbHVnaW5t
YW5hZ2VyKToKKyAgICAiIiJjYWxsZWQgYXQgcGx1Z2luIHJlZ2lzdHJhdGlvbiB0aW1lIHRvIGFs
bG93IGFkZGluZyBuZXcgaG9va3MgdmlhIGEgY2FsbCB0bworICAgIHBsdWdpbm1hbmFnZXIuYWRk
X2hvb2tzcGVjcyhtb2R1bGVfb3JfY2xhc3MsIHByZWZpeCkuIiIiCisKKworQGhvb2tzcGVjKGhp
c3RvcmljPVRydWUpCitkZWYgcHl0ZXN0X25hbWVzcGFjZSgpOgorICAgICIiIgorICAgIERFUFJF
Q0FURUQ6IHRoaXMgaG9vayBjYXVzZXMgZGlyZWN0IG1vbmtleXBhdGNoaW5nIG9uIHB5dGVzdCwg
aXRzIHVzZSBpcyBzdHJvbmdseSBkaXNjb3VyYWdlZAorICAgIHJldHVybiBkaWN0IG9mIG5hbWUt
Pm9iamVjdCB0byBiZSBtYWRlIGdsb2JhbGx5IGF2YWlsYWJsZSBpbgorICAgIHRoZSBweXRlc3Qg
bmFtZXNwYWNlLiAgVGhpcyBob29rIGlzIGNhbGxlZCBhdCBwbHVnaW4gcmVnaXN0cmF0aW9uCisg
ICAgdGltZS4KKyAgICAiIiIKKworCitAaG9va3NwZWMoaGlzdG9yaWM9VHJ1ZSkKK2RlZiBweXRl
c3RfcGx1Z2luX3JlZ2lzdGVyZWQocGx1Z2luLCBtYW5hZ2VyKToKKyAgICAiIiIgYSBuZXcgcHl0
ZXN0IHBsdWdpbiBnb3QgcmVnaXN0ZXJlZC4gIiIiCisKKworQGhvb2tzcGVjKGhpc3RvcmljPVRy
dWUpCitkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgorICAgICIiInJlZ2lzdGVyIGFyZ3Bh
cnNlLXN0eWxlIG9wdGlvbnMgYW5kIGluaS1zdHlsZSBjb25maWcgdmFsdWVzLAorICAgIGNhbGxl
ZCBvbmNlIGF0IHRoZSBiZWdpbm5pbmcgb2YgYSB0ZXN0IHJ1bi4KKworICAgIC4uIG5vdGU6Ogor
CisgICAgICAgIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIGltcGxlbWVudGVkIG9ubHkgaW4gcGx1
Z2lucyBvciBgYGNvbmZ0ZXN0LnB5YGAKKyAgICAgICAgZmlsZXMgc2l0dWF0ZWQgYXQgdGhlIHRl
c3RzIHJvb3QgZGlyZWN0b3J5IGR1ZSB0byBob3cgcHl0ZXN0CisgICAgICAgIDpyZWY6YGRpc2Nv
dmVycyBwbHVnaW5zIGR1cmluZyBzdGFydHVwIDxwbHVnaW5vcmRlcj5gLgorCisgICAgOmFyZyBw
YXJzZXI6IFRvIGFkZCBjb21tYW5kIGxpbmUgb3B0aW9ucywgY2FsbAorICAgICAgICA6cHk6ZnVu
YzpgcGFyc2VyLmFkZG9wdGlvbiguLi4pIDxfcHl0ZXN0LmNvbmZpZy5QYXJzZXIuYWRkb3B0aW9u
PmAuCisgICAgICAgIFRvIGFkZCBpbmktZmlsZSB2YWx1ZXMgY2FsbCA6cHk6ZnVuYzpgcGFyc2Vy
LmFkZGluaSguLi4pCisgICAgICAgIDxfcHl0ZXN0LmNvbmZpZy5QYXJzZXIuYWRkaW5pPmAuCisK
KyAgICBPcHRpb25zIGNhbiBsYXRlciBiZSBhY2Nlc3NlZCB0aHJvdWdoIHRoZQorICAgIDpweTpj
bGFzczpgY29uZmlnIDxfcHl0ZXN0LmNvbmZpZy5Db25maWc+YCBvYmplY3QsIHJlc3BlY3RpdmVs
eToKKworICAgIC0gOnB5OmZ1bmM6YGNvbmZpZy5nZXRvcHRpb24obmFtZSkgPF9weXRlc3QuY29u
ZmlnLkNvbmZpZy5nZXRvcHRpb24+YCB0bworICAgICAgcmV0cmlldmUgdGhlIHZhbHVlIG9mIGEg
Y29tbWFuZCBsaW5lIG9wdGlvbi4KKworICAgIC0gOnB5OmZ1bmM6YGNvbmZpZy5nZXRpbmkobmFt
ZSkgPF9weXRlc3QuY29uZmlnLkNvbmZpZy5nZXRpbmk+YCB0byByZXRyaWV2ZQorICAgICAgYSB2
YWx1ZSByZWFkIGZyb20gYW4gaW5pLXN0eWxlIGZpbGUuCisKKyAgICBUaGUgY29uZmlnIG9iamVj
dCBpcyBwYXNzZWQgYXJvdW5kIG9uIG1hbnkgaW50ZXJuYWwgb2JqZWN0cyB2aWEgdGhlIGBgLmNv
bmZpZ2BgCisgICAgYXR0cmlidXRlIG9yIGNhbiBiZSByZXRyaWV2ZWQgYXMgdGhlIGBgcHl0ZXN0
Y29uZmlnYGAgZml4dHVyZSBvciBhY2Nlc3NlZAorICAgIHZpYSAoZGVwcmVjYXRlZCkgYGBweXRl
c3QuY29uZmlnYGAuCisgICAgIiIiCisKKworQGhvb2tzcGVjKGhpc3RvcmljPVRydWUpCitkZWYg
cHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgorICAgICIiIgorICAgIEFsbG93cyBwbHVnaW5zIGFu
ZCBjb25mdGVzdCBmaWxlcyB0byBwZXJmb3JtIGluaXRpYWwgY29uZmlndXJhdGlvbi4KKworICAg
IFRoaXMgaG9vayBpcyBjYWxsZWQgZm9yIGV2ZXJ5IHBsdWdpbiBhbmQgaW5pdGlhbCBjb25mdGVz
dCBmaWxlCisgICAgYWZ0ZXIgY29tbWFuZCBsaW5lIG9wdGlvbnMgaGF2ZSBiZWVuIHBhcnNlZC4K
KworICAgIEFmdGVyIHRoYXQsIHRoZSBob29rIGlzIGNhbGxlZCBmb3Igb3RoZXIgY29uZnRlc3Qg
ZmlsZXMgYXMgdGhleSBhcmUKKyAgICBpbXBvcnRlZC4KKworICAgIDphcmcgY29uZmlnOiBweXRl
c3QgY29uZmlnIG9iamVjdAorICAgIDp0eXBlIGNvbmZpZzogX3B5dGVzdC5jb25maWcuQ29uZmln
CisgICAgIiIiCisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBCb290c3RyYXBwaW5nIGhvb2tzIGNh
bGxlZCBmb3IgcGx1Z2lucyByZWdpc3RlcmVkIGVhcmx5IGVub3VnaDoKKyMgaW50ZXJuYWwgYW5k
IDNyZCBwYXJ0eSBwbHVnaW5zIGFzIHdlbGwgYXMgZGlyZWN0bHkKKyMgZGlzY292ZXJhYmxlIGNv
bmZ0ZXN0LnB5IGxvY2FsIHBsdWdpbnMuCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworCitAaG9va3Nw
ZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKK2RlZiBweXRlc3RfY21kbGluZV9wYXJzZShwbHVnaW5tYW5h
Z2VyLCBhcmdzKToKKyAgICAiIiJyZXR1cm4gaW5pdGlhbGl6ZWQgY29uZmlnIG9iamVjdCwgcGFy
c2luZyB0aGUgc3BlY2lmaWVkIGFyZ3MuCisKKyAgICBTdG9wcyBhdCBmaXJzdCBub24tTm9uZSBy
ZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAgIiIiCisKKworZGVmIHB5dGVzdF9jbWRsaW5l
X3ByZXBhcnNlKGNvbmZpZywgYXJncyk6CisgICAgIiIiKGRlcHJlY2F0ZWQpIG1vZGlmeSBjb21t
YW5kIGxpbmUgYXJndW1lbnRzIGJlZm9yZSBvcHRpb24gcGFyc2luZy4gIiIiCisKKworQGhvb2tz
cGVjKGZpcnN0cmVzdWx0PVRydWUpCitkZWYgcHl0ZXN0X2NtZGxpbmVfbWFpbihjb25maWcpOgor
ICAgICIiIiBjYWxsZWQgZm9yIHBlcmZvcm1pbmcgdGhlIG1haW4gY29tbWFuZCBsaW5lIGFjdGlv
bi4gVGhlIGRlZmF1bHQKKyAgICBpbXBsZW1lbnRhdGlvbiB3aWxsIGludm9rZSB0aGUgY29uZmln
dXJlIGhvb2tzIGFuZCBydW50ZXN0X21haW5sb29wLgorCisgICAgU3RvcHMgYXQgZmlyc3Qgbm9u
LU5vbmUgcmVzdWx0LCBzZWUgOnJlZjpgZmlyc3RyZXN1bHRgICIiIgorCisKK2RlZiBweXRlc3Rf
bG9hZF9pbml0aWFsX2NvbmZ0ZXN0cyhlYXJseV9jb25maWcsIHBhcnNlciwgYXJncyk6CisgICAg
IiIiIGltcGxlbWVudHMgdGhlIGxvYWRpbmcgb2YgaW5pdGlhbCBjb25mdGVzdCBmaWxlcyBhaGVh
ZAorICAgIG9mIGNvbW1hbmQgbGluZSBvcHRpb24gcGFyc2luZy4gIiIiCisKKworIyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisjIGNvbGxlY3Rpb24gaG9va3MKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitAaG9v
a3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKK2RlZiBweXRlc3RfY29sbGVjdGlvbihzZXNzaW9uKToK
KyAgICAiIiIgcGVyZm9ybSB0aGUgY29sbGVjdGlvbiBwcm90b2NvbCBmb3IgdGhlIGdpdmVuIHNl
c3Npb24uCisKKyAgICBTdG9wcyBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBm
aXJzdHJlc3VsdGAgIiIiCisKKworZGVmIHB5dGVzdF9jb2xsZWN0aW9uX21vZGlmeWl0ZW1zKHNl
c3Npb24sIGNvbmZpZywgaXRlbXMpOgorICAgICIiIiBjYWxsZWQgYWZ0ZXIgY29sbGVjdGlvbiBo
YXMgYmVlbiBwZXJmb3JtZWQsIG1heSBmaWx0ZXIgb3IgcmUtb3JkZXIKKyAgICB0aGUgaXRlbXMg
aW4tcGxhY2UuIiIiCisKKworZGVmIHB5dGVzdF9jb2xsZWN0aW9uX2ZpbmlzaChzZXNzaW9uKToK
KyAgICAiIiIgY2FsbGVkIGFmdGVyIGNvbGxlY3Rpb24gaGFzIGJlZW4gcGVyZm9ybWVkIGFuZCBt
b2RpZmllZC4gIiIiCisKKworQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCitkZWYgcHl0ZXN0
X2lnbm9yZV9jb2xsZWN0KHBhdGgsIGNvbmZpZyk6CisgICAgIiIiIHJldHVybiBUcnVlIHRvIHBy
ZXZlbnQgY29uc2lkZXJpbmcgdGhpcyBwYXRoIGZvciBjb2xsZWN0aW9uLgorICAgIFRoaXMgaG9v
ayBpcyBjb25zdWx0ZWQgZm9yIGFsbCBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgcHJpb3IgdG8gY2Fs
bGluZworICAgIG1vcmUgc3BlY2lmaWMgaG9va3MuCisKKyAgICBTdG9wcyBhdCBmaXJzdCBub24t
Tm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAKKyAgICAiIiIKKworCitAaG9va3Nw
ZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKK2RlZiBweXRlc3RfY29sbGVjdF9kaXJlY3RvcnkocGF0aCwg
cGFyZW50KToKKyAgICAiIiIgY2FsbGVkIGJlZm9yZSB0cmF2ZXJzaW5nIGEgZGlyZWN0b3J5IGZv
ciBjb2xsZWN0aW9uIGZpbGVzLgorCisgICAgU3RvcHMgYXQgZmlyc3Qgbm9uLU5vbmUgcmVzdWx0
LCBzZWUgOnJlZjpgZmlyc3RyZXN1bHRgICIiIgorCisKK2RlZiBweXRlc3RfY29sbGVjdF9maWxl
KHBhdGgsIHBhcmVudCk6CisgICAgIiIiIHJldHVybiBjb2xsZWN0aW9uIE5vZGUgb3IgTm9uZSBm
b3IgdGhlIGdpdmVuIHBhdGguIEFueSBuZXcgbm9kZQorICAgIG5lZWRzIHRvIGhhdmUgdGhlIHNw
ZWNpZmllZCBgYHBhcmVudGBgIGFzIGEgcGFyZW50LiIiIgorCisjIGxvZ2dpbmcgaG9va3MgZm9y
IGNvbGxlY3Rpb24KKworCitkZWYgcHl0ZXN0X2NvbGxlY3RzdGFydChjb2xsZWN0b3IpOgorICAg
ICIiIiBjb2xsZWN0b3Igc3RhcnRzIGNvbGxlY3RpbmcuICIiIgorCisKK2RlZiBweXRlc3RfaXRl
bWNvbGxlY3RlZChpdGVtKToKKyAgICAiIiIgd2UganVzdCBjb2xsZWN0ZWQgYSB0ZXN0IGl0ZW0u
ICIiIgorCisKK2RlZiBweXRlc3RfY29sbGVjdHJlcG9ydChyZXBvcnQpOgorICAgICIiIiBjb2xs
ZWN0b3IgZmluaXNoZWQgY29sbGVjdGluZy4gIiIiCisKKworZGVmIHB5dGVzdF9kZXNlbGVjdGVk
KGl0ZW1zKToKKyAgICAiIiIgY2FsbGVkIGZvciB0ZXN0IGl0ZW1zIGRlc2VsZWN0ZWQgYnkga2V5
d29yZC4gIiIiCisKKworQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCitkZWYgcHl0ZXN0X21h
a2VfY29sbGVjdF9yZXBvcnQoY29sbGVjdG9yKToKKyAgICAiIiIgcGVyZm9ybSBgYGNvbGxlY3Rv
ci5jb2xsZWN0KClgYCBhbmQgcmV0dXJuIGEgQ29sbGVjdFJlcG9ydC4KKworICAgIFN0b3BzIGF0
IGZpcnN0IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKKworIyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisjIFB5dGhvbiB0ZXN0IGZ1bmN0aW9uIHJlbGF0ZWQgaG9va3MKKyMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorCisKK0Bob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQorZGVmIHB5
dGVzdF9weWNvbGxlY3RfbWFrZW1vZHVsZShwYXRoLCBwYXJlbnQpOgorICAgICIiIiByZXR1cm4g
YSBNb2R1bGUgY29sbGVjdG9yIG9yIE5vbmUgZm9yIHRoZSBnaXZlbiBwYXRoLgorICAgIFRoaXMg
aG9vayB3aWxsIGJlIGNhbGxlZCBmb3IgZWFjaCBtYXRjaGluZyB0ZXN0IG1vZHVsZSBwYXRoLgor
ICAgIFRoZSBweXRlc3RfY29sbGVjdF9maWxlIGhvb2sgbmVlZHMgdG8gYmUgdXNlZCBpZiB5b3Ug
d2FudCB0bworICAgIGNyZWF0ZSB0ZXN0IG1vZHVsZXMgZm9yIGZpbGVzIHRoYXQgZG8gbm90IG1h
dGNoIGFzIGEgdGVzdCBtb2R1bGUuCisKKyAgICBTdG9wcyBhdCBmaXJzdCBub24tTm9uZSByZXN1
bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAgIiIiCisKKworQGhvb2tzcGVjKGZpcnN0cmVzdWx0
PVRydWUpCitkZWYgcHl0ZXN0X3B5Y29sbGVjdF9tYWtlaXRlbShjb2xsZWN0b3IsIG5hbWUsIG9i
aik6CisgICAgIiIiIHJldHVybiBjdXN0b20gaXRlbS9jb2xsZWN0b3IgZm9yIGEgcHl0aG9uIG9i
amVjdCBpbiBhIG1vZHVsZSwgb3IgTm9uZS4KKworICAgIFN0b3BzIGF0IGZpcnN0IG5vbi1Ob25l
IHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKKworCitAaG9va3NwZWMoZmlyc3Ry
ZXN1bHQ9VHJ1ZSkKK2RlZiBweXRlc3RfcHlmdW5jX2NhbGwocHlmdW5jaXRlbSk6CisgICAgIiIi
IGNhbGwgdW5kZXJseWluZyB0ZXN0IGZ1bmN0aW9uLgorCisgICAgU3RvcHMgYXQgZmlyc3Qgbm9u
LU5vbmUgcmVzdWx0LCBzZWUgOnJlZjpgZmlyc3RyZXN1bHRgICIiIgorCisKK2RlZiBweXRlc3Rf
Z2VuZXJhdGVfdGVzdHMobWV0YWZ1bmMpOgorICAgICIiIiBnZW5lcmF0ZSAobXVsdGlwbGUpIHBh
cmFtZXRyaXplZCBjYWxscyB0byBhIHRlc3QgZnVuY3Rpb24uIiIiCisKKworQGhvb2tzcGVjKGZp
cnN0cmVzdWx0PVRydWUpCitkZWYgcHl0ZXN0X21ha2VfcGFyYW1ldHJpemVfaWQoY29uZmlnLCB2
YWwsIGFyZ25hbWUpOgorICAgICIiIlJldHVybiBhIHVzZXItZnJpZW5kbHkgc3RyaW5nIHJlcHJl
c2VudGF0aW9uIG9mIHRoZSBnaXZlbiBgYHZhbGBgIHRoYXQgd2lsbCBiZSB1c2VkCisgICAgYnkg
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplIGNhbGxzLiBSZXR1cm4gTm9uZSBpZiB0aGUgaG9vayBk
b2Vzbid0IGtub3cgYWJvdXQgYGB2YWxgYC4KKyAgICBUaGUgcGFyYW1ldGVyIG5hbWUgaXMgYXZh
aWxhYmxlIGFzIGBgYXJnbmFtZWBgLCBpZiByZXF1aXJlZC4KKworICAgIFN0b3BzIGF0IGZpcnN0
IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKKworIyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisjIGdlbmVyaWMgcnVudGVzdCByZWxhdGVkIGhvb2tzCisjIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKworCitAaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKK2RlZiBweXRlc3RfcnVudGVz
dGxvb3Aoc2Vzc2lvbik6CisgICAgIiIiIGNhbGxlZCBmb3IgcGVyZm9ybWluZyB0aGUgbWFpbiBy
dW50ZXN0IGxvb3AKKyAgICAoYWZ0ZXIgY29sbGVjdGlvbiBmaW5pc2hlZCkuCisKKyAgICBTdG9w
cyBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAgIiIiCisK
KworZGVmIHB5dGVzdF9pdGVtc3RhcnQoaXRlbSwgbm9kZSk6CisgICAgIiIiIChkZXByZWNhdGVk
LCB1c2UgcHl0ZXN0X3J1bnRlc3RfbG9nc3RhcnQpLiAiIiIKKworCitAaG9va3NwZWMoZmlyc3Ry
ZXN1bHQ9VHJ1ZSkKK2RlZiBweXRlc3RfcnVudGVzdF9wcm90b2NvbChpdGVtLCBuZXh0aXRlbSk6
CisgICAgIiIiIGltcGxlbWVudHMgdGhlIHJ1bnRlc3Rfc2V0dXAvY2FsbC90ZWFyZG93biBwcm90
b2NvbCBmb3IKKyAgICB0aGUgZ2l2ZW4gdGVzdCBpdGVtLCBpbmNsdWRpbmcgY2FwdHVyaW5nIGV4
Y2VwdGlvbnMgYW5kIGNhbGxpbmcKKyAgICByZXBvcnRpbmcgaG9va3MuCisKKyAgICA6YXJnIGl0
ZW06IHRlc3QgaXRlbSBmb3Igd2hpY2ggdGhlIHJ1bnRlc3QgcHJvdG9jb2wgaXMgcGVyZm9ybWVk
LgorCisgICAgOmFyZyBuZXh0aXRlbTogdGhlIHNjaGVkdWxlZC10by1iZS1uZXh0IHRlc3QgaXRl
bSAob3IgTm9uZSBpZiB0aGlzCisgICAgICAgICAgICAgICAgICAgaXMgdGhlIGVuZCBteSBmcmll
bmQpLiAgVGhpcyBhcmd1bWVudCBpcyBwYXNzZWQgb24gdG8KKyAgICAgICAgICAgICAgICAgICA6
cHk6ZnVuYzpgcHl0ZXN0X3J1bnRlc3RfdGVhcmRvd25gLgorCisgICAgOnJldHVybiBib29sZWFu
OiBUcnVlIGlmIG5vIGZ1cnRoZXIgaG9vayBpbXBsZW1lbnRhdGlvbnMgc2hvdWxkIGJlIGludm9r
ZWQuCisKKworICAgIFN0b3BzIGF0IGZpcnN0IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZp
cnN0cmVzdWx0YCAiIiIKKworCitkZWYgcHl0ZXN0X3J1bnRlc3RfbG9nc3RhcnQobm9kZWlkLCBs
b2NhdGlvbik6CisgICAgIiIiIHNpZ25hbCB0aGUgc3RhcnQgb2YgcnVubmluZyBhIHNpbmdsZSB0
ZXN0IGl0ZW0uICIiIgorCisKK2RlZiBweXRlc3RfcnVudGVzdF9zZXR1cChpdGVtKToKKyAgICAi
IiIgY2FsbGVkIGJlZm9yZSBgYHB5dGVzdF9ydW50ZXN0X2NhbGwoaXRlbSlgYC4gIiIiCisKKwor
ZGVmIHB5dGVzdF9ydW50ZXN0X2NhbGwoaXRlbSk6CisgICAgIiIiIGNhbGxlZCB0byBleGVjdXRl
IHRoZSB0ZXN0IGBgaXRlbWBgLiAiIiIKKworCitkZWYgcHl0ZXN0X3J1bnRlc3RfdGVhcmRvd24o
aXRlbSwgbmV4dGl0ZW0pOgorICAgICIiIiBjYWxsZWQgYWZ0ZXIgYGBweXRlc3RfcnVudGVzdF9j
YWxsYGAuCisKKyAgICA6YXJnIG5leHRpdGVtOiB0aGUgc2NoZWR1bGVkLXRvLWJlLW5leHQgdGVz
dCBpdGVtIChOb25lIGlmIG5vIGZ1cnRoZXIKKyAgICAgICAgICAgICAgICAgICB0ZXN0IGl0ZW0g
aXMgc2NoZWR1bGVkKS4gIFRoaXMgYXJndW1lbnQgY2FuIGJlIHVzZWQgdG8KKyAgICAgICAgICAg
ICAgICAgICBwZXJmb3JtIGV4YWN0IHRlYXJkb3ducywgaS5lLiBjYWxsaW5nIGp1c3QgZW5vdWdo
IGZpbmFsaXplcnMKKyAgICAgICAgICAgICAgICAgICBzbyB0aGF0IG5leHRpdGVtIG9ubHkgbmVl
ZHMgdG8gY2FsbCBzZXR1cC1mdW5jdGlvbnMuCisgICAgIiIiCisKKworQGhvb2tzcGVjKGZpcnN0
cmVzdWx0PVRydWUpCitkZWYgcHl0ZXN0X3J1bnRlc3RfbWFrZXJlcG9ydChpdGVtLCBjYWxsKToK
KyAgICAiIiIgcmV0dXJuIGEgOnB5OmNsYXNzOmBfcHl0ZXN0LnJ1bm5lci5UZXN0UmVwb3J0YCBv
YmplY3QKKyAgICBmb3IgdGhlIGdpdmVuIDpweTpjbGFzczpgcHl0ZXN0Lkl0ZW0gPF9weXRlc3Qu
bWFpbi5JdGVtPmAgYW5kCisgICAgOnB5OmNsYXNzOmBfcHl0ZXN0LnJ1bm5lci5DYWxsSW5mb2Au
CisKKyAgICBTdG9wcyBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJl
c3VsdGAgIiIiCisKKworZGVmIHB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydChyZXBvcnQpOgorICAg
ICIiIiBwcm9jZXNzIGEgdGVzdCBzZXR1cC9jYWxsL3RlYXJkb3duIHJlcG9ydCByZWxhdGluZyB0
bworICAgIHRoZSByZXNwZWN0aXZlIHBoYXNlIG9mIGV4ZWN1dGluZyBhIHRlc3QuICIiIgorCisj
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKyMgRml4dHVyZSByZWxhdGVkIGhvb2tzCisjIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKworCitAaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKK2RlZiBweXRlc3RfZml4dHVy
ZV9zZXR1cChmaXh0dXJlZGVmLCByZXF1ZXN0KToKKyAgICAiIiIgcGVyZm9ybXMgZml4dHVyZSBz
ZXR1cCBleGVjdXRpb24uCisKKyAgICBTdG9wcyBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQsIHNl
ZSA6cmVmOmBmaXJzdHJlc3VsdGAgIiIiCisKKworZGVmIHB5dGVzdF9maXh0dXJlX3Bvc3RfZmlu
YWxpemVyKGZpeHR1cmVkZWYsIHJlcXVlc3QpOgorICAgICIiIiBjYWxsZWQgYWZ0ZXIgZml4dHVy
ZSB0ZWFyZG93biwgYnV0IGJlZm9yZSB0aGUgY2FjaGUgaXMgY2xlYXJlZCBzbworICAgIHRoZSBm
aXh0dXJlIHJlc3VsdCBjYWNoZSBgYGZpeHR1cmVkZWYuY2FjaGVkX3Jlc3VsdGBgIGNhbgorICAg
IHN0aWxsIGJlIGFjY2Vzc2VkLiIiIgorCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgdGVzdCBzZXNz
aW9uIHJlbGF0ZWQgaG9va3MKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisKK2RlZiBweXRlc3Rfc2Vz
c2lvbnN0YXJ0KHNlc3Npb24pOgorICAgICIiIiBiZWZvcmUgc2Vzc2lvbi5tYWluKCkgaXMgY2Fs
bGVkLiAiIiIKKworCitkZWYgcHl0ZXN0X3Nlc3Npb25maW5pc2goc2Vzc2lvbiwgZXhpdHN0YXR1
cyk6CisgICAgIiIiIHdob2xlIHRlc3QgcnVuIGZpbmlzaGVzLiAiIiIKKworCitkZWYgcHl0ZXN0
X3VuY29uZmlndXJlKGNvbmZpZyk6CisgICAgIiIiIGNhbGxlZCBiZWZvcmUgdGVzdCBwcm9jZXNz
IGlzIGV4aXRlZC4gICIiIgorCisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBob29rcyBmb3IgY3Vz
dG9taXppbmcgdGhlIGFzc2VydCBtZXRob2RzCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworZGVmIHB5
dGVzdF9hc3NlcnRyZXByX2NvbXBhcmUoY29uZmlnLCBvcCwgbGVmdCwgcmlnaHQpOgorICAgICIi
InJldHVybiBleHBsYW5hdGlvbiBmb3IgY29tcGFyaXNvbnMgaW4gZmFpbGluZyBhc3NlcnQgZXhw
cmVzc2lvbnMuCisKKyAgICBSZXR1cm4gTm9uZSBmb3Igbm8gY3VzdG9tIGV4cGxhbmF0aW9uLCBv
dGhlcndpc2UgcmV0dXJuIGEgbGlzdAorICAgIG9mIHN0cmluZ3MuICBUaGUgc3RyaW5ncyB3aWxs
IGJlIGpvaW5lZCBieSBuZXdsaW5lcyBidXQgYW55IG5ld2xpbmVzCisgICAgKmluKiBhIHN0cmlu
ZyB3aWxsIGJlIGVzY2FwZWQuICBOb3RlIHRoYXQgYWxsIGJ1dCB0aGUgZmlyc3QgbGluZSB3aWxs
CisgICAgYmUgaW5kZW50ZWQgc2xpZ2h0bHksIHRoZSBpbnRlbnRpb24gaXMgZm9yIHRoZSBmaXJz
dCBsaW5lIHRvIGJlIGEgc3VtbWFyeS4KKyAgICAiIiIKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisj
IGhvb2tzIGZvciBpbmZsdWVuY2luZyByZXBvcnRpbmcgKGludm9rZWQgZnJvbSBfcHl0ZXN0X3Rl
cm1pbmFsKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKworZGVmIHB5dGVzdF9yZXBvcnRfaGVhZGVy
KGNvbmZpZywgc3RhcnRkaXIpOgorICAgICIiIiByZXR1cm4gYSBzdHJpbmcgb3IgbGlzdCBvZiBz
dHJpbmdzIHRvIGJlIGRpc3BsYXllZCBhcyBoZWFkZXIgaW5mbyBmb3IgdGVybWluYWwgcmVwb3J0
aW5nLgorCisgICAgOnBhcmFtIGNvbmZpZzogdGhlIHB5dGVzdCBjb25maWcgb2JqZWN0LgorICAg
IDpwYXJhbSBzdGFydGRpcjogcHkucGF0aCBvYmplY3Qgd2l0aCB0aGUgc3RhcnRpbmcgZGlyCisK
KyAgICAuLiBub3RlOjoKKworICAgICAgICBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBpbXBsZW1l
bnRlZCBvbmx5IGluIHBsdWdpbnMgb3IgYGBjb25mdGVzdC5weWBgCisgICAgICAgIGZpbGVzIHNp
dHVhdGVkIGF0IHRoZSB0ZXN0cyByb290IGRpcmVjdG9yeSBkdWUgdG8gaG93IHB5dGVzdAorICAg
ICAgICA6cmVmOmBkaXNjb3ZlcnMgcGx1Z2lucyBkdXJpbmcgc3RhcnR1cCA8cGx1Z2lub3JkZXI+
YC4KKyAgICAiIiIKKworCitkZWYgcHl0ZXN0X3JlcG9ydF9jb2xsZWN0aW9uZmluaXNoKGNvbmZp
Zywgc3RhcnRkaXIsIGl0ZW1zKToKKyAgICAiIiIKKyAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIK
KworICAgIHJldHVybiBhIHN0cmluZyBvciBsaXN0IG9mIHN0cmluZ3MgdG8gYmUgZGlzcGxheWVk
IGFmdGVyIGNvbGxlY3Rpb24gaGFzIGZpbmlzaGVkIHN1Y2Nlc3NmdWxseS4KKworICAgIFRoaXMg
c3RyaW5ncyB3aWxsIGJlIGRpc3BsYXllZCBhZnRlciB0aGUgc3RhbmRhcmQgImNvbGxlY3RlZCBY
IGl0ZW1zIiBtZXNzYWdlLgorCisgICAgOnBhcmFtIGNvbmZpZzogdGhlIHB5dGVzdCBjb25maWcg
b2JqZWN0LgorICAgIDpwYXJhbSBzdGFydGRpcjogcHkucGF0aCBvYmplY3Qgd2l0aCB0aGUgc3Rh
cnRpbmcgZGlyCisgICAgOnBhcmFtIGl0ZW1zOiBsaXN0IG9mIHB5dGVzdCBpdGVtcyB0aGF0IGFy
ZSBnb2luZyB0byBiZSBleGVjdXRlZDsgdGhpcyBsaXN0IHNob3VsZCBub3QgYmUgbW9kaWZpZWQu
CisgICAgIiIiCisKKworQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCitkZWYgcHl0ZXN0X3Jl
cG9ydF90ZXN0c3RhdHVzKHJlcG9ydCk6CisgICAgIiIiIHJldHVybiByZXN1bHQtY2F0ZWdvcnks
IHNob3J0bGV0dGVyIGFuZCB2ZXJib3NlIHdvcmQgZm9yIHJlcG9ydGluZy4KKworICAgIFN0b3Bz
IGF0IGZpcnN0IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKKwor
CitkZWYgcHl0ZXN0X3Rlcm1pbmFsX3N1bW1hcnkodGVybWluYWxyZXBvcnRlciwgZXhpdHN0YXR1
cyk6CisgICAgIiIiIGFkZCBhZGRpdGlvbmFsIHNlY3Rpb24gaW4gdGVybWluYWwgc3VtbWFyeSBy
ZXBvcnRpbmcuICAiIiIKKworCitAaG9va3NwZWMoaGlzdG9yaWM9VHJ1ZSkKK2RlZiBweXRlc3Rf
bG9nd2FybmluZyhtZXNzYWdlLCBjb2RlLCBub2RlaWQsIGZzbG9jYXRpb24pOgorICAgICIiIiBw
cm9jZXNzIGEgd2FybmluZyBzcGVjaWZpZWQgYnkgYSBtZXNzYWdlLCBhIGNvZGUgc3RyaW5nLAor
ICAgIGEgbm9kZWlkIGFuZCBmc2xvY2F0aW9uIChib3RoIG9mIHdoaWNoIG1heSBiZSBOb25lCisg
ICAgaWYgdGhlIHdhcm5pbmcgaXMgbm90IHRpZWQgdG8gYSBwYXJ0aWxhciBub2RlL2xvY2F0aW9u
KS4iIiIKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIGRvY3Rlc3QgaG9va3MKKyMgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCisKK0Bob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQorZGVmIHB5dGVzdF9kb2N0
ZXN0X3ByZXBhcmVfY29udGVudChjb250ZW50KToKKyAgICAiIiIgcmV0dXJuIHByb2Nlc3NlZCBj
b250ZW50IGZvciBhIGdpdmVuIGRvY3Rlc3QKKworICAgIFN0b3BzIGF0IGZpcnN0IG5vbi1Ob25l
IHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKKworIyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisjIGVycm9yIGhhbmRsaW5nIGFuZCBpbnRlcm5hbCBkZWJ1Z2dpbmcgaG9va3MKKyMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorCisKK2RlZiBweXRlc3RfaW50ZXJuYWxlcnJvcihleGNyZXByLCBleGNpbmZv
KToKKyAgICAiIiIgY2FsbGVkIGZvciBpbnRlcm5hbCBlcnJvcnMuICIiIgorCisKK2RlZiBweXRl
c3Rfa2V5Ym9hcmRfaW50ZXJydXB0KGV4Y2luZm8pOgorICAgICIiIiBjYWxsZWQgZm9yIGtleWJv
YXJkIGludGVycnVwdC4gIiIiCisKKworZGVmIHB5dGVzdF9leGNlcHRpb25faW50ZXJhY3Qobm9k
ZSwgY2FsbCwgcmVwb3J0KToKKyAgICAiIiJjYWxsZWQgd2hlbiBhbiBleGNlcHRpb24gd2FzIHJh
aXNlZCB3aGljaCBjYW4gcG90ZW50aWFsbHkgYmUKKyAgICBpbnRlcmFjdGl2ZWx5IGhhbmRsZWQu
CisKKyAgICBUaGlzIGhvb2sgaXMgb25seSBjYWxsZWQgaWYgYW4gZXhjZXB0aW9uIHdhcyByYWlz
ZWQKKyAgICB0aGF0IGlzIG5vdCBhbiBpbnRlcm5hbCBleGNlcHRpb24gbGlrZSBgYHNraXAuRXhj
ZXB0aW9uYGAuCisgICAgIiIiCisKKworZGVmIHB5dGVzdF9lbnRlcl9wZGIoY29uZmlnKToKKyAg
ICAiIiIgY2FsbGVkIHVwb24gcGRiLnNldF90cmFjZSgpLCBjYW4gYmUgdXNlZCBieSBwbHVnaW5z
IHRvIHRha2Ugc3BlY2lhbAorICAgIGFjdGlvbiBqdXN0IGJlZm9yZSB0aGUgcHl0aG9uIGRlYnVn
Z2VyIGVudGVycyBpbiBpbnRlcmFjdGl2ZSBtb2RlLgorCisgICAgOmFyZyBjb25maWc6IHB5dGVz
dCBjb25maWcgb2JqZWN0CisgICAgOnR5cGUgY29uZmlnOiBfcHl0ZXN0LmNvbmZpZy5Db25maWcK
KyAgICAiIiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvanVuaXR4bWwucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9fcHl0ZXN0L2p1bml0eG1sLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmYjQwZGMzNTQ4NzRm
MDM2NGRlMGM4M2FjOWZmNjYxYmNhNzc5ZjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9fcHl0ZXN0L2p1bml0eG1sLnB5CkBAIC0wLDAgKzEsNDUzIEBACisiIiIKKyAgICByZXBvcnQg
dGVzdCByZXN1bHRzIGluIEpVbml0LVhNTCBmb3JtYXQsCisgICAgZm9yIHVzZSB3aXRoIEplbmtp
bnMgYW5kIGJ1aWxkIGludGVncmF0aW9uIHNlcnZlcnMuCisKKworQmFzZWQgb24gaW5pdGlhbCBj
b2RlIGZyb20gUm9zcyBMYXdsZXkuCisKK091dHB1dCBjb25mb3JtcyB0byBodHRwczovL2dpdGh1
Yi5jb20vamVua2luc2NpL3h1bml0LXBsdWdpbi9ibG9iL21hc3Rlci8KK3NyYy9tYWluL3Jlc291
cmNlcy9vcmcvamVua2luc2NpL3BsdWdpbnMveHVuaXQvdHlwZXMvbW9kZWwveHNkL2p1bml0LTEw
LnhzZAorIiIiCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNp
b24sIHByaW50X2Z1bmN0aW9uCisKK2ltcG9ydCBmdW5jdG9vbHMKK2ltcG9ydCBweQoraW1wb3J0
IG9zCitpbXBvcnQgcmUKK2ltcG9ydCBzeXMKK2ltcG9ydCB0aW1lCitpbXBvcnQgcHl0ZXN0Citm
cm9tIF9weXRlc3QgaW1wb3J0IG5vZGVzCitmcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBmaWxl
bmFtZV9hcmcKKworIyBQeXRob24gMi5YIGFuZCAzLlggY29tcGF0aWJpbGl0eQoraWYgc3lzLnZl
cnNpb25faW5mb1swXSA8IDM6CisgICAgZnJvbSBjb2RlY3MgaW1wb3J0IG9wZW4KK2Vsc2U6Cisg
ICAgdW5pY2hyID0gY2hyCisgICAgdW5pY29kZSA9IHN0cgorICAgIGxvbmcgPSBpbnQKKworCitj
bGFzcyBKdW5pdChweS54bWwuTmFtZXNwYWNlKToKKyAgICBwYXNzCisKKworIyBXZSBuZWVkIHRv
IGdldCB0aGUgc3Vic2V0IG9mIHRoZSBpbnZhbGlkIHVuaWNvZGUgcmFuZ2VzIGFjY29yZGluZyB0
bworIyBYTUwgMS4wIHdoaWNoIGFyZSB2YWxpZCBpbiB0aGlzIHB5dGhvbiBidWlsZC4gIEhlbmNl
IHdlIGNhbGN1bGF0ZQorIyB0aGlzIGR5bmFtaWNhbGx5IGluc3RlYWQgb2YgaGFyZGNvZGluZyBp
dC4gIFRoZSBzcGVjIHJhbmdlIG9mIHZhbGlkCisjIGNoYXJzIGlzOiBDaGFyIDo6PSAjeDkgfCAj
eEEgfCAjeEQgfCBbI3gyMC0jeEQ3RkZdIHwgWyN4RTAwMC0jeEZGRkRdCisjICAgICAgICAgICAg
ICAgICAgICB8IFsjeDEwMDAwLSN4MTBGRkZGXQorX2xlZ2FsX2NoYXJzID0gKDB4MDksIDB4MEEs
IDB4MGQpCitfbGVnYWxfcmFuZ2VzID0gKAorICAgICgweDIwLCAweDdFKSwgKDB4ODAsIDB4RDdG
RiksICgweEUwMDAsIDB4RkZGRCksICgweDEwMDAwLCAweDEwRkZGRiksCispCitfbGVnYWxfeG1s
X3JlID0gWworICAgIHVuaWNvZGUoIiVzLSVzIikgJSAodW5pY2hyKGxvdyksIHVuaWNocihoaWdo
KSkKKyAgICBmb3IgKGxvdywgaGlnaCkgaW4gX2xlZ2FsX3JhbmdlcyBpZiBsb3cgPCBzeXMubWF4
dW5pY29kZQorXQorX2xlZ2FsX3htbF9yZSA9IFt1bmljaHIoeCkgZm9yIHggaW4gX2xlZ2FsX2No
YXJzXSArIF9sZWdhbF94bWxfcmUKK2lsbGVnYWxfeG1sX3JlID0gcmUuY29tcGlsZSh1bmljb2Rl
KCdbXiVzXScpICUgdW5pY29kZSgnJykuam9pbihfbGVnYWxfeG1sX3JlKSkKK2RlbCBfbGVnYWxf
Y2hhcnMKK2RlbCBfbGVnYWxfcmFuZ2VzCitkZWwgX2xlZ2FsX3htbF9yZQorCitfcHlfZXh0X3Jl
ID0gcmUuY29tcGlsZShyIlwucHkkIikKKworCitkZWYgYmluX3htbF9lc2NhcGUoYXJnKToKKyAg
ICBkZWYgcmVwbChtYXRjaG9iaik6CisgICAgICAgIGkgPSBvcmQobWF0Y2hvYmouZ3JvdXAoKSkK
KyAgICAgICAgaWYgaSA8PSAweEZGOgorICAgICAgICAgICAgcmV0dXJuIHVuaWNvZGUoJyN4JTAy
WCcpICUgaQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIHVuaWNvZGUoJyN4JTA0
WCcpICUgaQorCisgICAgcmV0dXJuIHB5LnhtbC5yYXcoaWxsZWdhbF94bWxfcmUuc3ViKHJlcGws
IHB5LnhtbC5lc2NhcGUoYXJnKSkpCisKKworY2xhc3MgX05vZGVSZXBvcnRlcihvYmplY3QpOgor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBub2RlaWQsIHhtbCk6CisKKyAgICAgICAgc2VsZi5pZCA9
IG5vZGVpZAorICAgICAgICBzZWxmLnhtbCA9IHhtbAorICAgICAgICBzZWxmLmFkZF9zdGF0cyA9
IHNlbGYueG1sLmFkZF9zdGF0cworICAgICAgICBzZWxmLmR1cmF0aW9uID0gMAorICAgICAgICBz
ZWxmLnByb3BlcnRpZXMgPSBbXQorICAgICAgICBzZWxmLm5vZGVzID0gW10KKyAgICAgICAgc2Vs
Zi50ZXN0Y2FzZSA9IE5vbmUKKyAgICAgICAgc2VsZi5hdHRycyA9IHt9CisKKyAgICBkZWYgYXBw
ZW5kKHNlbGYsIG5vZGUpOgorICAgICAgICBzZWxmLnhtbC5hZGRfc3RhdHModHlwZShub2RlKS5f
X25hbWVfXykKKyAgICAgICAgc2VsZi5ub2Rlcy5hcHBlbmQobm9kZSkKKworICAgIGRlZiBhZGRf
cHJvcGVydHkoc2VsZiwgbmFtZSwgdmFsdWUpOgorICAgICAgICBzZWxmLnByb3BlcnRpZXMuYXBw
ZW5kKChzdHIobmFtZSksIGJpbl94bWxfZXNjYXBlKHZhbHVlKSkpCisKKyAgICBkZWYgbWFrZV9w
cm9wZXJ0aWVzX25vZGUoc2VsZik6CisgICAgICAgICIiIlJldHVybiBhIEp1bml0IG5vZGUgY29u
dGFpbmluZyBjdXN0b20gcHJvcGVydGllcywgaWYgYW55LgorICAgICAgICAiIiIKKyAgICAgICAg
aWYgc2VsZi5wcm9wZXJ0aWVzOgorICAgICAgICAgICAgcmV0dXJuIEp1bml0LnByb3BlcnRpZXMo
WworICAgICAgICAgICAgICAgIEp1bml0LnByb3BlcnR5KG5hbWU9bmFtZSwgdmFsdWU9dmFsdWUp
CisgICAgICAgICAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIHNlbGYucHJvcGVydGllcworICAg
ICAgICAgICAgXSkKKyAgICAgICAgcmV0dXJuICcnCisKKyAgICBkZWYgcmVjb3JkX3Rlc3RyZXBv
cnQoc2VsZiwgdGVzdHJlcG9ydCk6CisgICAgICAgIGFzc2VydCBub3Qgc2VsZi50ZXN0Y2FzZQor
ICAgICAgICBuYW1lcyA9IG1hbmdsZV90ZXN0X2FkZHJlc3ModGVzdHJlcG9ydC5ub2RlaWQpCisg
ICAgICAgIGNsYXNzbmFtZXMgPSBuYW1lc1s6LTFdCisgICAgICAgIGlmIHNlbGYueG1sLnByZWZp
eDoKKyAgICAgICAgICAgIGNsYXNzbmFtZXMuaW5zZXJ0KDAsIHNlbGYueG1sLnByZWZpeCkKKyAg
ICAgICAgYXR0cnMgPSB7CisgICAgICAgICAgICAiY2xhc3NuYW1lIjogIi4iLmpvaW4oY2xhc3Nu
YW1lcyksCisgICAgICAgICAgICAibmFtZSI6IGJpbl94bWxfZXNjYXBlKG5hbWVzWy0xXSksCisg
ICAgICAgICAgICAiZmlsZSI6IHRlc3RyZXBvcnQubG9jYXRpb25bMF0sCisgICAgICAgIH0KKyAg
ICAgICAgaWYgdGVzdHJlcG9ydC5sb2NhdGlvblsxXSBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
IGF0dHJzWyJsaW5lIl0gPSB0ZXN0cmVwb3J0LmxvY2F0aW9uWzFdCisgICAgICAgIGlmIGhhc2F0
dHIodGVzdHJlcG9ydCwgInVybCIpOgorICAgICAgICAgICAgYXR0cnNbInVybCJdID0gdGVzdHJl
cG9ydC51cmwKKyAgICAgICAgc2VsZi5hdHRycyA9IGF0dHJzCisKKyAgICBkZWYgdG9feG1sKHNl
bGYpOgorICAgICAgICB0ZXN0Y2FzZSA9IEp1bml0LnRlc3RjYXNlKHRpbWU9c2VsZi5kdXJhdGlv
biwgKipzZWxmLmF0dHJzKQorICAgICAgICB0ZXN0Y2FzZS5hcHBlbmQoc2VsZi5tYWtlX3Byb3Bl
cnRpZXNfbm9kZSgpKQorICAgICAgICBmb3Igbm9kZSBpbiBzZWxmLm5vZGVzOgorICAgICAgICAg
ICAgdGVzdGNhc2UuYXBwZW5kKG5vZGUpCisgICAgICAgIHJldHVybiB0ZXN0Y2FzZQorCisgICAg
ZGVmIF9hZGRfc2ltcGxlKHNlbGYsIGtpbmQsIG1lc3NhZ2UsIGRhdGE9Tm9uZSk6CisgICAgICAg
IGRhdGEgPSBiaW5feG1sX2VzY2FwZShkYXRhKQorICAgICAgICBub2RlID0ga2luZChkYXRhLCBt
ZXNzYWdlPW1lc3NhZ2UpCisgICAgICAgIHNlbGYuYXBwZW5kKG5vZGUpCisKKyAgICBkZWYgd3Jp
dGVfY2FwdHVyZWRfb3V0cHV0KHNlbGYsIHJlcG9ydCk6CisgICAgICAgIGZvciBjYXBuYW1lIGlu
ICgnb3V0JywgJ2VycicpOgorICAgICAgICAgICAgY29udGVudCA9IGdldGF0dHIocmVwb3J0LCAn
Y2Fwc3RkJyArIGNhcG5hbWUpCisgICAgICAgICAgICBpZiBjb250ZW50OgorICAgICAgICAgICAg
ICAgIHRhZyA9IGdldGF0dHIoSnVuaXQsICdzeXN0ZW0tJyArIGNhcG5hbWUpCisgICAgICAgICAg
ICAgICAgc2VsZi5hcHBlbmQodGFnKGJpbl94bWxfZXNjYXBlKGNvbnRlbnQpKSkKKworICAgIGRl
ZiBhcHBlbmRfcGFzcyhzZWxmLCByZXBvcnQpOgorICAgICAgICBzZWxmLmFkZF9zdGF0cygncGFz
c2VkJykKKworICAgIGRlZiBhcHBlbmRfZmFpbHVyZShzZWxmLCByZXBvcnQpOgorICAgICAgICAj
IG1zZyA9IHN0cihyZXBvcnQubG9uZ3JlcHIucmVwcnRyYWNlYmFjay5leHRyYWxpbmUpCisgICAg
ICAgIGlmIGhhc2F0dHIocmVwb3J0LCAid2FzeGZhaWwiKToKKyAgICAgICAgICAgIHNlbGYuX2Fk
ZF9zaW1wbGUoCisgICAgICAgICAgICAgICAgSnVuaXQuc2tpcHBlZCwKKyAgICAgICAgICAgICAg
ICAieGZhaWwtbWFya2VkIHRlc3QgcGFzc2VzIHVuZXhwZWN0ZWRseSIpCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBpZiBoYXNhdHRyKHJlcG9ydC5sb25ncmVwciwgInJlcHJjcmFzaCIpOgor
ICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSByZXBvcnQubG9uZ3JlcHIucmVwcmNyYXNoLm1lc3Nh
Z2UKKyAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShyZXBvcnQubG9uZ3JlcHIsICh1bmljb2Rl
LCBzdHIpKToKKyAgICAgICAgICAgICAgICBtZXNzYWdlID0gcmVwb3J0LmxvbmdyZXByCisgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBzdHIocmVwb3J0Lmxvbmdy
ZXByKQorICAgICAgICAgICAgbWVzc2FnZSA9IGJpbl94bWxfZXNjYXBlKG1lc3NhZ2UpCisgICAg
ICAgICAgICBmYWlsID0gSnVuaXQuZmFpbHVyZShtZXNzYWdlPW1lc3NhZ2UpCisgICAgICAgICAg
ICBmYWlsLmFwcGVuZChiaW5feG1sX2VzY2FwZShyZXBvcnQubG9uZ3JlcHIpKQorICAgICAgICAg
ICAgc2VsZi5hcHBlbmQoZmFpbCkKKworICAgIGRlZiBhcHBlbmRfY29sbGVjdF9lcnJvcihzZWxm
LCByZXBvcnQpOgorICAgICAgICAjIG1zZyA9IHN0cihyZXBvcnQubG9uZ3JlcHIucmVwcnRyYWNl
YmFjay5leHRyYWxpbmUpCisgICAgICAgIHNlbGYuYXBwZW5kKEp1bml0LmVycm9yKGJpbl94bWxf
ZXNjYXBlKHJlcG9ydC5sb25ncmVwciksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1lc3NhZ2U9ImNvbGxlY3Rpb24gZmFpbHVyZSIpKQorCisgICAgZGVmIGFwcGVuZF9jb2xsZWN0
X3NraXBwZWQoc2VsZiwgcmVwb3J0KToKKyAgICAgICAgc2VsZi5fYWRkX3NpbXBsZSgKKyAgICAg
ICAgICAgIEp1bml0LnNraXBwZWQsICJjb2xsZWN0aW9uIHNraXBwZWQiLCByZXBvcnQubG9uZ3Jl
cHIpCisKKyAgICBkZWYgYXBwZW5kX2Vycm9yKHNlbGYsIHJlcG9ydCk6CisgICAgICAgIGlmIGdl
dGF0dHIocmVwb3J0LCAnd2hlbicsIE5vbmUpID09ICd0ZWFyZG93bic6CisgICAgICAgICAgICBt
c2cgPSAidGVzdCB0ZWFyZG93biBmYWlsdXJlIgorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
bXNnID0gInRlc3Qgc2V0dXAgZmFpbHVyZSIKKyAgICAgICAgc2VsZi5fYWRkX3NpbXBsZSgKKyAg
ICAgICAgICAgIEp1bml0LmVycm9yLCBtc2csIHJlcG9ydC5sb25ncmVwcikKKworICAgIGRlZiBh
cHBlbmRfc2tpcHBlZChzZWxmLCByZXBvcnQpOgorICAgICAgICBpZiBoYXNhdHRyKHJlcG9ydCwg
Indhc3hmYWlsIik6CisgICAgICAgICAgICBzZWxmLl9hZGRfc2ltcGxlKAorICAgICAgICAgICAg
ICAgIEp1bml0LnNraXBwZWQsICJleHBlY3RlZCB0ZXN0IGZhaWx1cmUiLCByZXBvcnQud2FzeGZh
aWwKKyAgICAgICAgICAgICkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGZpbGVuYW1lLCBs
aW5lbm8sIHNraXByZWFzb24gPSByZXBvcnQubG9uZ3JlcHIKKyAgICAgICAgICAgIGlmIHNraXBy
ZWFzb24uc3RhcnRzd2l0aCgiU2tpcHBlZDogIik6CisgICAgICAgICAgICAgICAgc2tpcHJlYXNv
biA9IGJpbl94bWxfZXNjYXBlKHNraXByZWFzb25bOTpdKQorICAgICAgICAgICAgc2VsZi5hcHBl
bmQoCisgICAgICAgICAgICAgICAgSnVuaXQuc2tpcHBlZCgiJXM6JXM6ICVzIiAlIChmaWxlbmFt
ZSwgbGluZW5vLCBza2lwcmVhc29uKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5
cGU9InB5dGVzdC5za2lwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9
c2tpcHJlYXNvbikpCisgICAgICAgIHNlbGYud3JpdGVfY2FwdHVyZWRfb3V0cHV0KHJlcG9ydCkK
KworICAgIGRlZiBmaW5hbGl6ZShzZWxmKToKKyAgICAgICAgZGF0YSA9IHNlbGYudG9feG1sKCku
dW5pY29kZShpbmRlbnQ9MCkKKyAgICAgICAgc2VsZi5fX2RpY3RfXy5jbGVhcigpCisgICAgICAg
IHNlbGYudG9feG1sID0gbGFtYmRhOiBweS54bWwucmF3KGRhdGEpCisKKworQHB5dGVzdC5maXh0
dXJlCitkZWYgcmVjb3JkX3htbF9wcm9wZXJ0eShyZXF1ZXN0KToKKyAgICAiIiJBZGQgZXh0cmEg
eG1sIHByb3BlcnRpZXMgdG8gdGhlIHRhZyBmb3IgdGhlIGNhbGxpbmcgdGVzdC4KKyAgICBUaGUg
Zml4dHVyZSBpcyBjYWxsYWJsZSB3aXRoIGBgKG5hbWUsIHZhbHVlKWBgLCB3aXRoIHZhbHVlIGJl
aW5nIGF1dG9tYXRpY2FsbHkKKyAgICB4bWwtZW5jb2RlZC4KKyAgICAiIiIKKyAgICByZXF1ZXN0
Lm5vZGUud2FybigKKyAgICAgICAgY29kZT0nQzMnLAorICAgICAgICBtZXNzYWdlPSdyZWNvcmRf
eG1sX3Byb3BlcnR5IGlzIGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJlJywKKyAgICApCisgICAgeG1s
ID0gZ2V0YXR0cihyZXF1ZXN0LmNvbmZpZywgIl94bWwiLCBOb25lKQorICAgIGlmIHhtbCBpcyBu
b3QgTm9uZToKKyAgICAgICAgbm9kZV9yZXBvcnRlciA9IHhtbC5ub2RlX3JlcG9ydGVyKHJlcXVl
c3Qubm9kZS5ub2RlaWQpCisgICAgICAgIHJldHVybiBub2RlX3JlcG9ydGVyLmFkZF9wcm9wZXJ0
eQorICAgIGVsc2U6CisgICAgICAgIGRlZiBhZGRfcHJvcGVydHlfbm9vcChuYW1lLCB2YWx1ZSk6
CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgcmV0dXJuIGFkZF9wcm9wZXJ0eV9ub29wCisK
KworZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKKyAgICBncm91cCA9IHBhcnNlci5nZXRn
cm91cCgidGVybWluYWwgcmVwb3J0aW5nIikKKyAgICBncm91cC5hZGRvcHRpb24oCisgICAgICAg
ICctLWp1bml0eG1sJywgJy0tanVuaXQteG1sJywKKyAgICAgICAgYWN0aW9uPSJzdG9yZSIsCisg
ICAgICAgIGRlc3Q9InhtbHBhdGgiLAorICAgICAgICBtZXRhdmFyPSJwYXRoIiwKKyAgICAgICAg
dHlwZT1mdW5jdG9vbHMucGFydGlhbChmaWxlbmFtZV9hcmcsIG9wdG5hbWU9Ii0tanVuaXR4bWwi
KSwKKyAgICAgICAgZGVmYXVsdD1Ob25lLAorICAgICAgICBoZWxwPSJjcmVhdGUganVuaXQteG1s
IHN0eWxlIHJlcG9ydCBmaWxlIGF0IGdpdmVuIHBhdGguIikKKyAgICBncm91cC5hZGRvcHRpb24o
CisgICAgICAgICctLWp1bml0cHJlZml4JywgJy0tanVuaXQtcHJlZml4JywKKyAgICAgICAgYWN0
aW9uPSJzdG9yZSIsCisgICAgICAgIG1ldGF2YXI9InN0ciIsCisgICAgICAgIGRlZmF1bHQ9Tm9u
ZSwKKyAgICAgICAgaGVscD0icHJlcGVuZCBwcmVmaXggdG8gY2xhc3NuYW1lcyBpbiBqdW5pdC14
bWwgb3V0cHV0IikKKyAgICBwYXJzZXIuYWRkaW5pKCJqdW5pdF9zdWl0ZV9uYW1lIiwgIlRlc3Qg
c3VpdGUgbmFtZSBmb3IgSlVuaXQgcmVwb3J0IiwgZGVmYXVsdD0icHl0ZXN0IikKKworCitkZWYg
cHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgorICAgIHhtbHBhdGggPSBjb25maWcub3B0aW9uLnht
bHBhdGgKKyAgICAjIHByZXZlbnQgb3BlbmluZyB4bWxsb2cgb24gc2xhdmUgbm9kZXMgKHhkaXN0
KQorICAgIGlmIHhtbHBhdGggYW5kIG5vdCBoYXNhdHRyKGNvbmZpZywgJ3NsYXZlaW5wdXQnKToK
KyAgICAgICAgY29uZmlnLl94bWwgPSBMb2dYTUwoeG1scGF0aCwgY29uZmlnLm9wdGlvbi5qdW5p
dHByZWZpeCwgY29uZmlnLmdldGluaSgianVuaXRfc3VpdGVfbmFtZSIpKQorICAgICAgICBjb25m
aWcucGx1Z2lubWFuYWdlci5yZWdpc3Rlcihjb25maWcuX3htbCkKKworCitkZWYgcHl0ZXN0X3Vu
Y29uZmlndXJlKGNvbmZpZyk6CisgICAgeG1sID0gZ2V0YXR0cihjb25maWcsICdfeG1sJywgTm9u
ZSkKKyAgICBpZiB4bWw6CisgICAgICAgIGRlbCBjb25maWcuX3htbAorICAgICAgICBjb25maWcu
cGx1Z2lubWFuYWdlci51bnJlZ2lzdGVyKHhtbCkKKworCitkZWYgbWFuZ2xlX3Rlc3RfYWRkcmVz
cyhhZGRyZXNzKToKKyAgICBwYXRoLCBwb3NzaWJsZV9vcGVuX2JyYWNrZXQsIHBhcmFtcyA9IGFk
ZHJlc3MucGFydGl0aW9uKCdbJykKKyAgICBuYW1lcyA9IHBhdGguc3BsaXQoIjo6IikKKyAgICB0
cnk6CisgICAgICAgIG5hbWVzLnJlbW92ZSgnKCknKQorICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgor
ICAgICAgICBwYXNzCisgICAgIyBjb252ZXJ0IGZpbGUgcGF0aCB0byBkb3R0ZWQgcGF0aAorICAg
IG5hbWVzWzBdID0gbmFtZXNbMF0ucmVwbGFjZShub2Rlcy5TRVAsICcuJykKKyAgICBuYW1lc1sw
XSA9IF9weV9leHRfcmUuc3ViKCIiLCBuYW1lc1swXSkKKyAgICAjIHB1dCBhbnkgcGFyYW1zIGJh
Y2sKKyAgICBuYW1lc1stMV0gKz0gcG9zc2libGVfb3Blbl9icmFja2V0ICsgcGFyYW1zCisgICAg
cmV0dXJuIG5hbWVzCisKKworY2xhc3MgTG9nWE1MKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIGxvZ2ZpbGUsIHByZWZpeCwgc3VpdGVfbmFtZT0icHl0ZXN0Iik6CisgICAgICAgIGxv
Z2ZpbGUgPSBvcy5wYXRoLmV4cGFuZHVzZXIob3MucGF0aC5leHBhbmR2YXJzKGxvZ2ZpbGUpKQor
ICAgICAgICBzZWxmLmxvZ2ZpbGUgPSBvcy5wYXRoLm5vcm1wYXRoKG9zLnBhdGguYWJzcGF0aChs
b2dmaWxlKSkKKyAgICAgICAgc2VsZi5wcmVmaXggPSBwcmVmaXgKKyAgICAgICAgc2VsZi5zdWl0
ZV9uYW1lID0gc3VpdGVfbmFtZQorICAgICAgICBzZWxmLnN0YXRzID0gZGljdC5mcm9ta2V5cyhb
CisgICAgICAgICAgICAnZXJyb3InLAorICAgICAgICAgICAgJ3Bhc3NlZCcsCisgICAgICAgICAg
ICAnZmFpbHVyZScsCisgICAgICAgICAgICAnc2tpcHBlZCcsCisgICAgICAgIF0sIDApCisgICAg
ICAgIHNlbGYubm9kZV9yZXBvcnRlcnMgPSB7fSAgIyBub2RlaWQgLT4gX05vZGVSZXBvcnRlcgor
ICAgICAgICBzZWxmLm5vZGVfcmVwb3J0ZXJzX29yZGVyZWQgPSBbXQorICAgICAgICBzZWxmLmds
b2JhbF9wcm9wZXJ0aWVzID0gW10KKyAgICAgICAgIyBMaXN0IG9mIHJlcG9ydHMgdGhhdCBmYWls
ZWQgb24gY2FsbCBidXQgdGVhcmRvd24gaXMgcGVuZGluZy4KKyAgICAgICAgc2VsZi5vcGVuX3Jl
cG9ydHMgPSBbXQorICAgICAgICBzZWxmLmNudF9kb3VibGVfZmFpbF90ZXN0cyA9IDAKKworICAg
IGRlZiBmaW5hbGl6ZShzZWxmLCByZXBvcnQpOgorICAgICAgICBub2RlaWQgPSBnZXRhdHRyKHJl
cG9ydCwgJ25vZGVpZCcsIHJlcG9ydCkKKyAgICAgICAgIyBsb2NhbCBoYWNrIHRvIGhhbmRsZSB4
ZGlzdCByZXBvcnQgb3JkZXIKKyAgICAgICAgc2xhdmVub2RlID0gZ2V0YXR0cihyZXBvcnQsICdu
b2RlJywgTm9uZSkKKyAgICAgICAgcmVwb3J0ZXIgPSBzZWxmLm5vZGVfcmVwb3J0ZXJzLnBvcCgo
bm9kZWlkLCBzbGF2ZW5vZGUpKQorICAgICAgICBpZiByZXBvcnRlciBpcyBub3QgTm9uZToKKyAg
ICAgICAgICAgIHJlcG9ydGVyLmZpbmFsaXplKCkKKworICAgIGRlZiBub2RlX3JlcG9ydGVyKHNl
bGYsIHJlcG9ydCk6CisgICAgICAgIG5vZGVpZCA9IGdldGF0dHIocmVwb3J0LCAnbm9kZWlkJywg
cmVwb3J0KQorICAgICAgICAjIGxvY2FsIGhhY2sgdG8gaGFuZGxlIHhkaXN0IHJlcG9ydCBvcmRl
cgorICAgICAgICBzbGF2ZW5vZGUgPSBnZXRhdHRyKHJlcG9ydCwgJ25vZGUnLCBOb25lKQorCisg
ICAgICAgIGtleSA9IG5vZGVpZCwgc2xhdmVub2RlCisKKyAgICAgICAgaWYga2V5IGluIHNlbGYu
bm9kZV9yZXBvcnRlcnM6CisgICAgICAgICAgICAjIFRPRE86IGJyZWFza3MgZm9yIC0tZGlzdD1l
YWNoCisgICAgICAgICAgICByZXR1cm4gc2VsZi5ub2RlX3JlcG9ydGVyc1trZXldCisKKyAgICAg
ICAgcmVwb3J0ZXIgPSBfTm9kZVJlcG9ydGVyKG5vZGVpZCwgc2VsZikKKworICAgICAgICBzZWxm
Lm5vZGVfcmVwb3J0ZXJzW2tleV0gPSByZXBvcnRlcgorICAgICAgICBzZWxmLm5vZGVfcmVwb3J0
ZXJzX29yZGVyZWQuYXBwZW5kKHJlcG9ydGVyKQorCisgICAgICAgIHJldHVybiByZXBvcnRlcgor
CisgICAgZGVmIGFkZF9zdGF0cyhzZWxmLCBrZXkpOgorICAgICAgICBpZiBrZXkgaW4gc2VsZi5z
dGF0czoKKyAgICAgICAgICAgIHNlbGYuc3RhdHNba2V5XSArPSAxCisKKyAgICBkZWYgX29wZW50
ZXN0Y2FzZShzZWxmLCByZXBvcnQpOgorICAgICAgICByZXBvcnRlciA9IHNlbGYubm9kZV9yZXBv
cnRlcihyZXBvcnQpCisgICAgICAgIHJlcG9ydGVyLnJlY29yZF90ZXN0cmVwb3J0KHJlcG9ydCkK
KyAgICAgICAgcmV0dXJuIHJlcG9ydGVyCisKKyAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfbG9ncmVw
b3J0KHNlbGYsIHJlcG9ydCk6CisgICAgICAgICIiImhhbmRsZSBhIHNldHVwL2NhbGwvdGVhcmRv
d24gcmVwb3J0LCBnZW5lcmF0aW5nIHRoZSBhcHByb3ByaWF0ZQorICAgICAgICB4bWwgdGFncyBh
cyBuZWNlc3NhcnkuCisKKyAgICAgICAgbm90ZTogZHVlIHRvIHBsdWdpbnMgbGlrZSB4ZGlzdCwg
dGhpcyBob29rIG1heSBiZSBjYWxsZWQgaW4gaW50ZXJsYWNlZAorICAgICAgICBvcmRlciB3aXRo
IHJlcG9ydHMgZnJvbSBvdGhlciBub2Rlcy4gZm9yIGV4YW1wbGU6CisKKyAgICAgICAgdXN1YWwg
Y2FsbCBvcmRlcjoKKyAgICAgICAgICAgIC0+IHNldHVwIG5vZGUxCisgICAgICAgICAgICAtPiBj
YWxsIG5vZGUxCisgICAgICAgICAgICAtPiB0ZWFyZG93biBub2RlMQorICAgICAgICAgICAgLT4g
c2V0dXAgbm9kZTIKKyAgICAgICAgICAgIC0+IGNhbGwgbm9kZTIKKyAgICAgICAgICAgIC0+IHRl
YXJkb3duIG5vZGUyCisKKyAgICAgICAgcG9zc2libGUgY2FsbCBvcmRlciBpbiB4ZGlzdDoKKyAg
ICAgICAgICAgIC0+IHNldHVwIG5vZGUxCisgICAgICAgICAgICAtPiBjYWxsIG5vZGUxCisgICAg
ICAgICAgICAtPiBzZXR1cCBub2RlMgorICAgICAgICAgICAgLT4gY2FsbCBub2RlMgorICAgICAg
ICAgICAgLT4gdGVhcmRvd24gbm9kZTIKKyAgICAgICAgICAgIC0+IHRlYXJkb3duIG5vZGUxCisg
ICAgICAgICIiIgorICAgICAgICBjbG9zZV9yZXBvcnQgPSBOb25lCisgICAgICAgIGlmIHJlcG9y
dC5wYXNzZWQ6CisgICAgICAgICAgICBpZiByZXBvcnQud2hlbiA9PSAiY2FsbCI6ICAjIGlnbm9y
ZSBzZXR1cC90ZWFyZG93bgorICAgICAgICAgICAgICAgIHJlcG9ydGVyID0gc2VsZi5fb3BlbnRl
c3RjYXNlKHJlcG9ydCkKKyAgICAgICAgICAgICAgICByZXBvcnRlci5hcHBlbmRfcGFzcyhyZXBv
cnQpCisgICAgICAgIGVsaWYgcmVwb3J0LmZhaWxlZDoKKyAgICAgICAgICAgIGlmIHJlcG9ydC53
aGVuID09ICJ0ZWFyZG93biI6CisgICAgICAgICAgICAgICAgIyBUaGUgZm9sbG93aW5nIHZhcnMg
YXJlIG5lZWRlZCB3aGVuIHhkaXN0IHBsdWdpbiBpcyB1c2VkCisgICAgICAgICAgICAgICAgcmVw
b3J0X3dpZCA9IGdldGF0dHIocmVwb3J0LCAid29ya2VyX2lkIiwgTm9uZSkKKyAgICAgICAgICAg
ICAgICByZXBvcnRfaWkgPSBnZXRhdHRyKHJlcG9ydCwgIml0ZW1faW5kZXgiLCBOb25lKQorICAg
ICAgICAgICAgICAgIGNsb3NlX3JlcG9ydCA9IG5leHQoCisgICAgICAgICAgICAgICAgICAgIChy
ZXAgZm9yIHJlcCBpbiBzZWxmLm9wZW5fcmVwb3J0cworICAgICAgICAgICAgICAgICAgICAgaWYg
KHJlcC5ub2RlaWQgPT0gcmVwb3J0Lm5vZGVpZCBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICBnZXRhdHRyKHJlcCwgIml0ZW1faW5kZXgiLCBOb25lKSA9PSByZXBvcnRfaWkgYW5kCisgICAg
ICAgICAgICAgICAgICAgICAgICAgZ2V0YXR0cihyZXAsICJ3b3JrZXJfaWQiLCBOb25lKSA9PSBy
ZXBvcnRfd2lkCisgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAg
ICAgKSwgTm9uZSkKKyAgICAgICAgICAgICAgICBpZiBjbG9zZV9yZXBvcnQ6CisgICAgICAgICAg
ICAgICAgICAgICMgV2UgbmVlZCB0byBvcGVuIG5ldyB0ZXN0Y2FzZSBpbiBjYXNlIHdlIGhhdmUg
ZmFpbHVyZSBpbgorICAgICAgICAgICAgICAgICAgICAjIGNhbGwgYW5kIGVycm9yIGluIHRlYXJk
b3duIGluIG9yZGVyIHRvIGZvbGxvdyBqdW5pdAorICAgICAgICAgICAgICAgICAgICAjIHNjaGVt
YQorICAgICAgICAgICAgICAgICAgICBzZWxmLmZpbmFsaXplKGNsb3NlX3JlcG9ydCkKKyAgICAg
ICAgICAgICAgICAgICAgc2VsZi5jbnRfZG91YmxlX2ZhaWxfdGVzdHMgKz0gMQorICAgICAgICAg
ICAgcmVwb3J0ZXIgPSBzZWxmLl9vcGVudGVzdGNhc2UocmVwb3J0KQorICAgICAgICAgICAgaWYg
cmVwb3J0LndoZW4gPT0gImNhbGwiOgorICAgICAgICAgICAgICAgIHJlcG9ydGVyLmFwcGVuZF9m
YWlsdXJlKHJlcG9ydCkKKyAgICAgICAgICAgICAgICBzZWxmLm9wZW5fcmVwb3J0cy5hcHBlbmQo
cmVwb3J0KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXBvcnRlci5hcHBl
bmRfZXJyb3IocmVwb3J0KQorICAgICAgICBlbGlmIHJlcG9ydC5za2lwcGVkOgorICAgICAgICAg
ICAgcmVwb3J0ZXIgPSBzZWxmLl9vcGVudGVzdGNhc2UocmVwb3J0KQorICAgICAgICAgICAgcmVw
b3J0ZXIuYXBwZW5kX3NraXBwZWQocmVwb3J0KQorICAgICAgICBzZWxmLnVwZGF0ZV90ZXN0Y2Fz
ZV9kdXJhdGlvbihyZXBvcnQpCisgICAgICAgIGlmIHJlcG9ydC53aGVuID09ICJ0ZWFyZG93biI6
CisgICAgICAgICAgICByZXBvcnRlciA9IHNlbGYuX29wZW50ZXN0Y2FzZShyZXBvcnQpCisgICAg
ICAgICAgICByZXBvcnRlci53cml0ZV9jYXB0dXJlZF9vdXRwdXQocmVwb3J0KQorICAgICAgICAg
ICAgc2VsZi5maW5hbGl6ZShyZXBvcnQpCisgICAgICAgICAgICByZXBvcnRfd2lkID0gZ2V0YXR0
cihyZXBvcnQsICJ3b3JrZXJfaWQiLCBOb25lKQorICAgICAgICAgICAgcmVwb3J0X2lpID0gZ2V0
YXR0cihyZXBvcnQsICJpdGVtX2luZGV4IiwgTm9uZSkKKyAgICAgICAgICAgIGNsb3NlX3JlcG9y
dCA9IG5leHQoCisgICAgICAgICAgICAgICAgKHJlcCBmb3IgcmVwIGluIHNlbGYub3Blbl9yZXBv
cnRzCisgICAgICAgICAgICAgICAgIGlmIChyZXAubm9kZWlkID09IHJlcG9ydC5ub2RlaWQgYW5k
CisgICAgICAgICAgICAgICAgICAgICBnZXRhdHRyKHJlcCwgIml0ZW1faW5kZXgiLCBOb25lKSA9
PSByZXBvcnRfaWkgYW5kCisgICAgICAgICAgICAgICAgICAgICBnZXRhdHRyKHJlcCwgIndvcmtl
cl9pZCIsIE5vbmUpID09IHJlcG9ydF93aWQKKyAgICAgICAgICAgICAgICAgICAgICkKKyAgICAg
ICAgICAgICAgICAgKSwgTm9uZSkKKyAgICAgICAgICAgIGlmIGNsb3NlX3JlcG9ydDoKKyAgICAg
ICAgICAgICAgICBzZWxmLm9wZW5fcmVwb3J0cy5yZW1vdmUoY2xvc2VfcmVwb3J0KQorCisgICAg
ZGVmIHVwZGF0ZV90ZXN0Y2FzZV9kdXJhdGlvbihzZWxmLCByZXBvcnQpOgorICAgICAgICAiIiJh
Y2N1bXVsYXRlcyB0b3RhbCBkdXJhdGlvbiBmb3Igbm9kZWlkIGZyb20gZ2l2ZW4gcmVwb3J0IGFu
ZCB1cGRhdGVzCisgICAgICAgIHRoZSBKdW5pdC50ZXN0Y2FzZSB3aXRoIHRoZSBuZXcgdG90YWwg
aWYgYWxyZWFkeSBjcmVhdGVkLgorICAgICAgICAiIiIKKyAgICAgICAgcmVwb3J0ZXIgPSBzZWxm
Lm5vZGVfcmVwb3J0ZXIocmVwb3J0KQorICAgICAgICByZXBvcnRlci5kdXJhdGlvbiArPSBnZXRh
dHRyKHJlcG9ydCwgJ2R1cmF0aW9uJywgMC4wKQorCisgICAgZGVmIHB5dGVzdF9jb2xsZWN0cmVw
b3J0KHNlbGYsIHJlcG9ydCk6CisgICAgICAgIGlmIG5vdCByZXBvcnQucGFzc2VkOgorICAgICAg
ICAgICAgcmVwb3J0ZXIgPSBzZWxmLl9vcGVudGVzdGNhc2UocmVwb3J0KQorICAgICAgICAgICAg
aWYgcmVwb3J0LmZhaWxlZDoKKyAgICAgICAgICAgICAgICByZXBvcnRlci5hcHBlbmRfY29sbGVj
dF9lcnJvcihyZXBvcnQpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJlcG9y
dGVyLmFwcGVuZF9jb2xsZWN0X3NraXBwZWQocmVwb3J0KQorCisgICAgZGVmIHB5dGVzdF9pbnRl
cm5hbGVycm9yKHNlbGYsIGV4Y3JlcHIpOgorICAgICAgICByZXBvcnRlciA9IHNlbGYubm9kZV9y
ZXBvcnRlcignaW50ZXJuYWwnKQorICAgICAgICByZXBvcnRlci5hdHRycy51cGRhdGUoY2xhc3Nu
YW1lPSJweXRlc3QiLCBuYW1lPSdpbnRlcm5hbCcpCisgICAgICAgIHJlcG9ydGVyLl9hZGRfc2lt
cGxlKEp1bml0LmVycm9yLCAnaW50ZXJuYWwgZXJyb3InLCBleGNyZXByKQorCisgICAgZGVmIHB5
dGVzdF9zZXNzaW9uc3RhcnQoc2VsZik6CisgICAgICAgIHNlbGYuc3VpdGVfc3RhcnRfdGltZSA9
IHRpbWUudGltZSgpCisKKyAgICBkZWYgcHl0ZXN0X3Nlc3Npb25maW5pc2goc2VsZik6CisgICAg
ICAgIGRpcm5hbWUgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5hYnNwYXRoKHNlbGYubG9nZmls
ZSkpCisgICAgICAgIGlmIG5vdCBvcy5wYXRoLmlzZGlyKGRpcm5hbWUpOgorICAgICAgICAgICAg
b3MubWFrZWRpcnMoZGlybmFtZSkKKyAgICAgICAgbG9nZmlsZSA9IG9wZW4oc2VsZi5sb2dmaWxl
LCAndycsIGVuY29kaW5nPSd1dGYtOCcpCisgICAgICAgIHN1aXRlX3N0b3BfdGltZSA9IHRpbWUu
dGltZSgpCisgICAgICAgIHN1aXRlX3RpbWVfZGVsdGEgPSBzdWl0ZV9zdG9wX3RpbWUgLSBzZWxm
LnN1aXRlX3N0YXJ0X3RpbWUKKworICAgICAgICBudW10ZXN0cyA9IChzZWxmLnN0YXRzWydwYXNz
ZWQnXSArIHNlbGYuc3RhdHNbJ2ZhaWx1cmUnXSArCisgICAgICAgICAgICAgICAgICAgIHNlbGYu
c3RhdHNbJ3NraXBwZWQnXSArIHNlbGYuc3RhdHNbJ2Vycm9yJ10gLQorICAgICAgICAgICAgICAg
ICAgICBzZWxmLmNudF9kb3VibGVfZmFpbF90ZXN0cykKKyAgICAgICAgbG9nZmlsZS53cml0ZSgn
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4nKQorCisgICAgICAgIGxvZ2Zp
bGUud3JpdGUoSnVuaXQudGVzdHN1aXRlKAorICAgICAgICAgICAgc2VsZi5fZ2V0X2dsb2JhbF9w
cm9wZXJ0aWVzX25vZGUoKSwKKyAgICAgICAgICAgIFt4LnRvX3htbCgpIGZvciB4IGluIHNlbGYu
bm9kZV9yZXBvcnRlcnNfb3JkZXJlZF0sCisgICAgICAgICAgICBuYW1lPXNlbGYuc3VpdGVfbmFt
ZSwKKyAgICAgICAgICAgIGVycm9ycz1zZWxmLnN0YXRzWydlcnJvciddLAorICAgICAgICAgICAg
ZmFpbHVyZXM9c2VsZi5zdGF0c1snZmFpbHVyZSddLAorICAgICAgICAgICAgc2tpcHM9c2VsZi5z
dGF0c1snc2tpcHBlZCddLAorICAgICAgICAgICAgdGVzdHM9bnVtdGVzdHMsCisgICAgICAgICAg
ICB0aW1lPSIlLjNmIiAlIHN1aXRlX3RpbWVfZGVsdGEsICkudW5pY29kZShpbmRlbnQ9MCkpCisg
ICAgICAgIGxvZ2ZpbGUuY2xvc2UoKQorCisgICAgZGVmIHB5dGVzdF90ZXJtaW5hbF9zdW1tYXJ5
KHNlbGYsIHRlcm1pbmFscmVwb3J0ZXIpOgorICAgICAgICB0ZXJtaW5hbHJlcG9ydGVyLndyaXRl
X3NlcCgiLSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJnZW5lcmF0ZWQg
eG1sIGZpbGU6ICVzIiAlIChzZWxmLmxvZ2ZpbGUpKQorCisgICAgZGVmIGFkZF9nbG9iYWxfcHJv
cGVydHkoc2VsZiwgbmFtZSwgdmFsdWUpOgorICAgICAgICBzZWxmLmdsb2JhbF9wcm9wZXJ0aWVz
LmFwcGVuZCgoc3RyKG5hbWUpLCBiaW5feG1sX2VzY2FwZSh2YWx1ZSkpKQorCisgICAgZGVmIF9n
ZXRfZ2xvYmFsX3Byb3BlcnRpZXNfbm9kZShzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIGEgSnVu
aXQgbm9kZSBjb250YWluaW5nIGN1c3RvbSBwcm9wZXJ0aWVzLCBpZiBhbnkuCisgICAgICAgICIi
IgorICAgICAgICBpZiBzZWxmLmdsb2JhbF9wcm9wZXJ0aWVzOgorICAgICAgICAgICAgcmV0dXJu
IEp1bml0LnByb3BlcnRpZXMoCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICAg
ICBKdW5pdC5wcm9wZXJ0eShuYW1lPW5hbWUsIHZhbHVlPXZhbHVlKQorICAgICAgICAgICAgICAg
ICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gc2VsZi5nbG9iYWxfcHJvcGVydGllcworICAgICAgICAg
ICAgICAgIF0KKyAgICAgICAgICAgICkKKyAgICAgICAgcmV0dXJuICcnCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9fcHl0ZXN0L2xvZ2dpbmcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2xvZ2dp
bmcucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZWQ0ZGIyNWFkNDQzMWVmYjE3NGZjYTVmOGFkNDgxYmQzOTllNGNj
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvbG9nZ2luZy5weQpAQCAt
MCwwICsxLDMzNyBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRp
dmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQgbG9nZ2luZworZnJvbSBjb250ZXh0bGli
IGltcG9ydCBjbG9zaW5nLCBjb250ZXh0bWFuYWdlcgoraW1wb3J0IHN5cworaW1wb3J0IHNpeAor
CitpbXBvcnQgcHl0ZXN0CitpbXBvcnQgcHkKKworCitERUZBVUxUX0xPR19GT1JNQVQgPSAnJShm
aWxlbmFtZSktMjVzICUobGluZW5vKTRkICUobGV2ZWxuYW1lKS04cyAlKG1lc3NhZ2UpcycKK0RF
RkFVTFRfTE9HX0RBVEVfRk9STUFUID0gJyVIOiVNOiVTJworCisKK2RlZiBnZXRfb3B0aW9uX2lu
aShjb25maWcsICpuYW1lcyk6CisgICAgZm9yIG5hbWUgaW4gbmFtZXM6CisgICAgICAgIHJldCA9
IGNvbmZpZy5nZXRvcHRpb24obmFtZSkgICMgJ2RlZmF1bHQnIGFyZyB3b24ndCB3b3JrIGFzIGV4
cGVjdGVkCisgICAgICAgIGlmIHJldCBpcyBOb25lOgorICAgICAgICAgICAgcmV0ID0gY29uZmln
LmdldGluaShuYW1lKQorICAgICAgICBpZiByZXQ6CisgICAgICAgICAgICByZXR1cm4gcmV0CisK
KworZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKKyAgICAiIiJBZGQgb3B0aW9ucyB0byBj
b250cm9sIGxvZyBjYXB0dXJpbmcuIiIiCisgICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoJ2xv
Z2dpbmcnKQorCisgICAgZGVmIGFkZF9vcHRpb25faW5pKG9wdGlvbiwgZGVzdCwgZGVmYXVsdD1O
b25lLCB0eXBlPU5vbmUsICoqa3dhcmdzKToKKyAgICAgICAgcGFyc2VyLmFkZGluaShkZXN0LCBk
ZWZhdWx0PWRlZmF1bHQsIHR5cGU9dHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdk
ZWZhdWx0IHZhbHVlIGZvciAnICsgb3B0aW9uKQorICAgICAgICBncm91cC5hZGRvcHRpb24ob3B0
aW9uLCBkZXN0PWRlc3QsICoqa3dhcmdzKQorCisgICAgYWRkX29wdGlvbl9pbmkoCisgICAgICAg
ICctLW5vLXByaW50LWxvZ3MnLAorICAgICAgICBkZXN0PSdsb2dfcHJpbnQnLCBhY3Rpb249J3N0
b3JlX2NvbnN0JywgY29uc3Q9RmFsc2UsIGRlZmF1bHQ9VHJ1ZSwKKyAgICAgICAgdHlwZT0nYm9v
bCcsCisgICAgICAgIGhlbHA9J2Rpc2FibGUgcHJpbnRpbmcgY2F1Z2h0IGxvZ3Mgb24gZmFpbGVk
IHRlc3RzLicpCisgICAgYWRkX29wdGlvbl9pbmkoCisgICAgICAgICctLWxvZy1sZXZlbCcsCisg
ICAgICAgIGRlc3Q9J2xvZ19sZXZlbCcsIGRlZmF1bHQ9Tm9uZSwKKyAgICAgICAgaGVscD0nbG9n
Z2luZyBsZXZlbCB1c2VkIGJ5IHRoZSBsb2dnaW5nIG1vZHVsZScpCisgICAgYWRkX29wdGlvbl9p
bmkoCisgICAgICAgICctLWxvZy1mb3JtYXQnLAorICAgICAgICBkZXN0PSdsb2dfZm9ybWF0Jywg
ZGVmYXVsdD1ERUZBVUxUX0xPR19GT1JNQVQsCisgICAgICAgIGhlbHA9J2xvZyBmb3JtYXQgYXMg
dXNlZCBieSB0aGUgbG9nZ2luZyBtb2R1bGUuJykKKyAgICBhZGRfb3B0aW9uX2luaSgKKyAgICAg
ICAgJy0tbG9nLWRhdGUtZm9ybWF0JywKKyAgICAgICAgZGVzdD0nbG9nX2RhdGVfZm9ybWF0Jywg
ZGVmYXVsdD1ERUZBVUxUX0xPR19EQVRFX0ZPUk1BVCwKKyAgICAgICAgaGVscD0nbG9nIGRhdGUg
Zm9ybWF0IGFzIHVzZWQgYnkgdGhlIGxvZ2dpbmcgbW9kdWxlLicpCisgICAgYWRkX29wdGlvbl9p
bmkoCisgICAgICAgICctLWxvZy1jbGktbGV2ZWwnLAorICAgICAgICBkZXN0PSdsb2dfY2xpX2xl
dmVsJywgZGVmYXVsdD1Ob25lLAorICAgICAgICBoZWxwPSdjbGkgbG9nZ2luZyBsZXZlbC4nKQor
ICAgIGFkZF9vcHRpb25faW5pKAorICAgICAgICAnLS1sb2ctY2xpLWZvcm1hdCcsCisgICAgICAg
IGRlc3Q9J2xvZ19jbGlfZm9ybWF0JywgZGVmYXVsdD1Ob25lLAorICAgICAgICBoZWxwPSdsb2cg
Zm9ybWF0IGFzIHVzZWQgYnkgdGhlIGxvZ2dpbmcgbW9kdWxlLicpCisgICAgYWRkX29wdGlvbl9p
bmkoCisgICAgICAgICctLWxvZy1jbGktZGF0ZS1mb3JtYXQnLAorICAgICAgICBkZXN0PSdsb2df
Y2xpX2RhdGVfZm9ybWF0JywgZGVmYXVsdD1Ob25lLAorICAgICAgICBoZWxwPSdsb2cgZGF0ZSBm
b3JtYXQgYXMgdXNlZCBieSB0aGUgbG9nZ2luZyBtb2R1bGUuJykKKyAgICBhZGRfb3B0aW9uX2lu
aSgKKyAgICAgICAgJy0tbG9nLWZpbGUnLAorICAgICAgICBkZXN0PSdsb2dfZmlsZScsIGRlZmF1
bHQ9Tm9uZSwKKyAgICAgICAgaGVscD0ncGF0aCB0byBhIGZpbGUgd2hlbiBsb2dnaW5nIHdpbGwg
YmUgd3JpdHRlbiB0by4nKQorICAgIGFkZF9vcHRpb25faW5pKAorICAgICAgICAnLS1sb2ctZmls
ZS1sZXZlbCcsCisgICAgICAgIGRlc3Q9J2xvZ19maWxlX2xldmVsJywgZGVmYXVsdD1Ob25lLAor
ICAgICAgICBoZWxwPSdsb2cgZmlsZSBsb2dnaW5nIGxldmVsLicpCisgICAgYWRkX29wdGlvbl9p
bmkoCisgICAgICAgICctLWxvZy1maWxlLWZvcm1hdCcsCisgICAgICAgIGRlc3Q9J2xvZ19maWxl
X2Zvcm1hdCcsIGRlZmF1bHQ9REVGQVVMVF9MT0dfRk9STUFULAorICAgICAgICBoZWxwPSdsb2cg
Zm9ybWF0IGFzIHVzZWQgYnkgdGhlIGxvZ2dpbmcgbW9kdWxlLicpCisgICAgYWRkX29wdGlvbl9p
bmkoCisgICAgICAgICctLWxvZy1maWxlLWRhdGUtZm9ybWF0JywKKyAgICAgICAgZGVzdD0nbG9n
X2ZpbGVfZGF0ZV9mb3JtYXQnLCBkZWZhdWx0PURFRkFVTFRfTE9HX0RBVEVfRk9STUFULAorICAg
ICAgICBoZWxwPSdsb2cgZGF0ZSBmb3JtYXQgYXMgdXNlZCBieSB0aGUgbG9nZ2luZyBtb2R1bGUu
JykKKworCitAY29udGV4dG1hbmFnZXIKK2RlZiBsb2dnaW5nX3VzaW5nX2hhbmRsZXIoaGFuZGxl
ciwgbG9nZ2VyPU5vbmUpOgorICAgICIiIkNvbnRleHQgbWFuYWdlciB0aGF0IHNhZmVseSByZWdp
c3RlcnMgYSBnaXZlbiBoYW5kbGVyLiIiIgorICAgIGxvZ2dlciA9IGxvZ2dlciBvciBsb2dnaW5n
LmdldExvZ2dlcihsb2dnZXIpCisKKyAgICBpZiBoYW5kbGVyIGluIGxvZ2dlci5oYW5kbGVyczog
ICMgcmVlbnRyYW5jeQorICAgICAgICAjIEFkZGluZyB0aGUgc2FtZSBoYW5kbGVyIHR3aWNlIHdv
dWxkIGNvbmZ1c2UgbG9nZ2luZyBzeXN0ZW0uCisgICAgICAgICMgSnVzdCBkb24ndCBkbyB0aGF0
LgorICAgICAgICB5aWVsZAorICAgIGVsc2U6CisgICAgICAgIGxvZ2dlci5hZGRIYW5kbGVyKGhh
bmRsZXIpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHlpZWxkCisgICAgICAgIGZpbmFsbHk6
CisgICAgICAgICAgICBsb2dnZXIucmVtb3ZlSGFuZGxlcihoYW5kbGVyKQorCisKK0Bjb250ZXh0
bWFuYWdlcgorZGVmIGNhdGNoaW5nX2xvZ3MoaGFuZGxlciwgZm9ybWF0dGVyPU5vbmUsCisgICAg
ICAgICAgICAgICAgICBsZXZlbD1sb2dnaW5nLk5PVFNFVCwgbG9nZ2VyPU5vbmUpOgorICAgICIi
IkNvbnRleHQgbWFuYWdlciB0aGF0IHByZXBhcmVzIHRoZSB3aG9sZSBsb2dnaW5nIG1hY2hpbmVy
eSBwcm9wZXJseS4iIiIKKyAgICBsb2dnZXIgPSBsb2dnZXIgb3IgbG9nZ2luZy5nZXRMb2dnZXIo
bG9nZ2VyKQorCisgICAgaWYgZm9ybWF0dGVyIGlzIG5vdCBOb25lOgorICAgICAgICBoYW5kbGVy
LnNldEZvcm1hdHRlcihmb3JtYXR0ZXIpCisgICAgaGFuZGxlci5zZXRMZXZlbChsZXZlbCkKKwor
ICAgIHdpdGggbG9nZ2luZ191c2luZ19oYW5kbGVyKGhhbmRsZXIsIGxvZ2dlcik6CisgICAgICAg
IG9yaWdfbGV2ZWwgPSBsb2dnZXIubGV2ZWwKKyAgICAgICAgbG9nZ2VyLnNldExldmVsKG1pbihv
cmlnX2xldmVsLCBsZXZlbCkpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHlpZWxkIGhhbmRs
ZXIKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGxvZ2dlci5zZXRMZXZlbChvcmlnX2xl
dmVsKQorCisKK2NsYXNzIExvZ0NhcHR1cmVIYW5kbGVyKGxvZ2dpbmcuU3RyZWFtSGFuZGxlcik6
CisgICAgIiIiQSBsb2dnaW5nIGhhbmRsZXIgdGhhdCBzdG9yZXMgbG9nIHJlY29yZHMgYW5kIHRo
ZSBsb2cgdGV4dC4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgIiIiQ3Jl
YXRlcyBhIG5ldyBsb2cgaGFuZGxlci4iIiIKKyAgICAgICAgbG9nZ2luZy5TdHJlYW1IYW5kbGVy
Ll9faW5pdF9fKHNlbGYsIHB5LmlvLlRleHRJTygpKQorICAgICAgICBzZWxmLnJlY29yZHMgPSBb
XQorCisgICAgZGVmIGVtaXQoc2VsZiwgcmVjb3JkKToKKyAgICAgICAgIiIiS2VlcCB0aGUgbG9n
IHJlY29yZHMgaW4gYSBsaXN0IGluIGFkZGl0aW9uIHRvIHRoZSBsb2cgdGV4dC4iIiIKKyAgICAg
ICAgc2VsZi5yZWNvcmRzLmFwcGVuZChyZWNvcmQpCisgICAgICAgIGxvZ2dpbmcuU3RyZWFtSGFu
ZGxlci5lbWl0KHNlbGYsIHJlY29yZCkKKworCitjbGFzcyBMb2dDYXB0dXJlRml4dHVyZShvYmpl
Y3QpOgorICAgICIiIlByb3ZpZGVzIGFjY2VzcyBhbmQgY29udHJvbCBvZiBsb2cgY2FwdHVyaW5n
LiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGl0ZW0pOgorICAgICAgICAiIiJDcmVhdGVz
IGEgbmV3IGZ1bmNhcmcuIiIiCisgICAgICAgIHNlbGYuX2l0ZW0gPSBpdGVtCisKKyAgICBAcHJv
cGVydHkKKyAgICBkZWYgaGFuZGxlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2l0ZW0u
Y2F0Y2hfbG9nX2hhbmRsZXIKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiB0ZXh0KHNlbGYpOgor
ICAgICAgICAiIiJSZXR1cm5zIHRoZSBsb2cgdGV4dC4iIiIKKyAgICAgICAgcmV0dXJuIHNlbGYu
aGFuZGxlci5zdHJlYW0uZ2V0dmFsdWUoKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHJlY29y
ZHMoc2VsZik6CisgICAgICAgICIiIlJldHVybnMgdGhlIGxpc3Qgb2YgbG9nIHJlY29yZHMuIiIi
CisgICAgICAgIHJldHVybiBzZWxmLmhhbmRsZXIucmVjb3JkcworCisgICAgQHByb3BlcnR5Cisg
ICAgZGVmIHJlY29yZF90dXBsZXMoc2VsZik6CisgICAgICAgICIiIlJldHVybnMgYSBsaXN0IG9m
IGEgc3RyaXBlZCBkb3duIHZlcnNpb24gb2YgbG9nIHJlY29yZHMgaW50ZW5kZWQKKyAgICAgICAg
Zm9yIHVzZSBpbiBhc3NlcnRpb24gY29tcGFyaXNvbi4KKworICAgICAgICBUaGUgZm9ybWF0IG9m
IHRoZSB0dXBsZSBpczoKKworICAgICAgICAgICAgKGxvZ2dlcl9uYW1lLCBsb2dfbGV2ZWwsIG1l
c3NhZ2UpCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gWyhyLm5hbWUsIHIubGV2ZWxubywg
ci5nZXRNZXNzYWdlKCkpIGZvciByIGluIHNlbGYucmVjb3Jkc10KKworICAgIGRlZiBjbGVhcihz
ZWxmKToKKyAgICAgICAgIiIiUmVzZXQgdGhlIGxpc3Qgb2YgbG9nIHJlY29yZHMuIiIiCisgICAg
ICAgIHNlbGYuaGFuZGxlci5yZWNvcmRzID0gW10KKworICAgIGRlZiBzZXRfbGV2ZWwoc2VsZiwg
bGV2ZWwsIGxvZ2dlcj1Ob25lKToKKyAgICAgICAgIiIiU2V0cyB0aGUgbGV2ZWwgZm9yIGNhcHR1
cmluZyBvZiBsb2dzLgorCisgICAgICAgIEJ5IGRlZmF1bHQsIHRoZSBsZXZlbCBpcyBzZXQgb24g
dGhlIGhhbmRsZXIgdXNlZCB0byBjYXB0dXJlCisgICAgICAgIGxvZ3MuIFNwZWNpZnkgYSBsb2dn
ZXIgbmFtZSB0byBpbnN0ZWFkIHNldCB0aGUgbGV2ZWwgb2YgYW55CisgICAgICAgIGxvZ2dlci4K
KyAgICAgICAgIiIiCisgICAgICAgIGlmIGxvZ2dlciBpcyBOb25lOgorICAgICAgICAgICAgbG9n
Z2VyID0gc2VsZi5oYW5kbGVyCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBsb2dnZXIgPSBs
b2dnaW5nLmdldExvZ2dlcihsb2dnZXIpCisgICAgICAgIGxvZ2dlci5zZXRMZXZlbChsZXZlbCkK
KworICAgIEBjb250ZXh0bWFuYWdlcgorICAgIGRlZiBhdF9sZXZlbChzZWxmLCBsZXZlbCwgbG9n
Z2VyPU5vbmUpOgorICAgICAgICAiIiJDb250ZXh0IG1hbmFnZXIgdGhhdCBzZXRzIHRoZSBsZXZl
bCBmb3IgY2FwdHVyaW5nIG9mIGxvZ3MuCisKKyAgICAgICAgQnkgZGVmYXVsdCwgdGhlIGxldmVs
IGlzIHNldCBvbiB0aGUgaGFuZGxlciB1c2VkIHRvIGNhcHR1cmUKKyAgICAgICAgbG9ncy4gU3Bl
Y2lmeSBhIGxvZ2dlciBuYW1lIHRvIGluc3RlYWQgc2V0IHRoZSBsZXZlbCBvZiBhbnkKKyAgICAg
ICAgbG9nZ2VyLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgbG9nZ2VyIGlzIE5vbmU6CisgICAg
ICAgICAgICBsb2dnZXIgPSBzZWxmLmhhbmRsZXIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKGxvZ2dlcikKKworICAgICAgICBvcmlnX2xldmVs
ID0gbG9nZ2VyLmxldmVsCisgICAgICAgIGxvZ2dlci5zZXRMZXZlbChsZXZlbCkKKyAgICAgICAg
dHJ5OgorICAgICAgICAgICAgeWllbGQKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGxv
Z2dlci5zZXRMZXZlbChvcmlnX2xldmVsKQorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGNhcGxv
ZyhyZXF1ZXN0KToKKyAgICAiIiJBY2Nlc3MgYW5kIGNvbnRyb2wgbG9nIGNhcHR1cmluZy4KKwor
ICAgIENhcHR1cmVkIGxvZ3MgYXJlIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSBmb2xsb3dpbmcgbWV0
aG9kczo6CisKKyAgICAqIGNhcGxvZy50ZXh0KCkgICAgICAgICAgLT4gc3RyaW5nIGNvbnRhaW5p
bmcgZm9ybWF0dGVkIGxvZyBvdXRwdXQKKyAgICAqIGNhcGxvZy5yZWNvcmRzKCkgICAgICAgLT4g
bGlzdCBvZiBsb2dnaW5nLkxvZ1JlY29yZCBpbnN0YW5jZXMKKyAgICAqIGNhcGxvZy5yZWNvcmRf
dHVwbGVzKCkgLT4gbGlzdCBvZiAobG9nZ2VyX25hbWUsIGxldmVsLCBtZXNzYWdlKSB0dXBsZXMK
KyAgICAiIiIKKyAgICByZXR1cm4gTG9nQ2FwdHVyZUZpeHR1cmUocmVxdWVzdC5ub2RlKQorCisK
K2RlZiBnZXRfYWN0dWFsX2xvZ19sZXZlbChjb25maWcsICpzZXR0aW5nX25hbWVzKToKKyAgICAi
IiJSZXR1cm4gdGhlIGFjdHVhbCBsb2dnaW5nIGxldmVsLiIiIgorCisgICAgZm9yIHNldHRpbmdf
bmFtZSBpbiBzZXR0aW5nX25hbWVzOgorICAgICAgICBsb2dfbGV2ZWwgPSBjb25maWcuZ2V0b3B0
aW9uKHNldHRpbmdfbmFtZSkKKyAgICAgICAgaWYgbG9nX2xldmVsIGlzIE5vbmU6CisgICAgICAg
ICAgICBsb2dfbGV2ZWwgPSBjb25maWcuZ2V0aW5pKHNldHRpbmdfbmFtZSkKKyAgICAgICAgaWYg
bG9nX2xldmVsOgorICAgICAgICAgICAgYnJlYWsKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4K
KworICAgIGlmIGlzaW5zdGFuY2UobG9nX2xldmVsLCBzaXguc3RyaW5nX3R5cGVzKToKKyAgICAg
ICAgbG9nX2xldmVsID0gbG9nX2xldmVsLnVwcGVyKCkKKyAgICB0cnk6CisgICAgICAgIHJldHVy
biBpbnQoZ2V0YXR0cihsb2dnaW5nLCBsb2dfbGV2ZWwsIGxvZ19sZXZlbCkpCisgICAgZXhjZXB0
IFZhbHVlRXJyb3I6CisgICAgICAgICMgUHl0aG9uIGxvZ2dpbmcgZG9lcyBub3QgcmVjb2duaXNl
IHRoaXMgYXMgYSBsb2dnaW5nIGxldmVsCisgICAgICAgIHJhaXNlIHB5dGVzdC5Vc2FnZUVycm9y
KAorICAgICAgICAgICAgIid7MH0nIGlzIG5vdCByZWNvZ25pemVkIGFzIGEgbG9nZ2luZyBsZXZl
bCBuYW1lIGZvciAiCisgICAgICAgICAgICAiJ3sxfScuIFBsZWFzZSBjb25zaWRlciBwYXNzaW5n
IHRoZSAiCisgICAgICAgICAgICAibG9nZ2luZyBsZXZlbCBudW0gaW5zdGVhZC4iLmZvcm1hdCgK
KyAgICAgICAgICAgICAgICBsb2dfbGV2ZWwsCisgICAgICAgICAgICAgICAgc2V0dGluZ19uYW1l
KSkKKworCitkZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgorICAgIGNvbmZpZy5wbHVnaW5t
YW5hZ2VyLnJlZ2lzdGVyKExvZ2dpbmdQbHVnaW4oY29uZmlnKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnbG9nZ2luZy1wbHVnaW4nKQorCisKK2NsYXNzIExvZ2dpbmdQbHVn
aW4ob2JqZWN0KToKKyAgICAiIiJBdHRhY2hlcyB0byB0aGUgbG9nZ2luZyBtb2R1bGUgYW5kIGNh
cHR1cmVzIGxvZyBtZXNzYWdlcyBmb3IgZWFjaCB0ZXN0LgorICAgICIiIgorCisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGNvbmZpZyk6CisgICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgcGx1Z2luIHRv
IGNhcHR1cmUgbG9nIG1lc3NhZ2VzLgorCisgICAgICAgIFRoZSBmb3JtYXR0ZXIgY2FuIGJlIHNh
ZmVseSBzaGFyZWQgYWNyb3NzIGFsbCBoYW5kbGVycyBzbworICAgICAgICBjcmVhdGUgYSBzaW5n
bGUgb25lIGZvciB0aGUgZW50aXJlIHRlc3Qgc2Vzc2lvbiBoZXJlLgorICAgICAgICAiIiIKKyAg
ICAgICAgc2VsZi5sb2dfY2xpX2xldmVsID0gZ2V0X2FjdHVhbF9sb2dfbGV2ZWwoCisgICAgICAg
ICAgICBjb25maWcsICdsb2dfY2xpX2xldmVsJywgJ2xvZ19sZXZlbCcpIG9yIGxvZ2dpbmcuV0FS
TklORworCisgICAgICAgIHNlbGYucHJpbnRfbG9ncyA9IGdldF9vcHRpb25faW5pKGNvbmZpZywg
J2xvZ19wcmludCcpCisgICAgICAgIHNlbGYuZm9ybWF0dGVyID0gbG9nZ2luZy5Gb3JtYXR0ZXIo
CisgICAgICAgICAgICBnZXRfb3B0aW9uX2luaShjb25maWcsICdsb2dfZm9ybWF0JyksCisgICAg
ICAgICAgICBnZXRfb3B0aW9uX2luaShjb25maWcsICdsb2dfZGF0ZV9mb3JtYXQnKSkKKworICAg
ICAgICBsb2dfY2xpX2hhbmRsZXIgPSBsb2dnaW5nLlN0cmVhbUhhbmRsZXIoc3lzLnN0ZGVycikK
KyAgICAgICAgbG9nX2NsaV9mb3JtYXQgPSBnZXRfb3B0aW9uX2luaSgKKyAgICAgICAgICAgIGNv
bmZpZywgJ2xvZ19jbGlfZm9ybWF0JywgJ2xvZ19mb3JtYXQnKQorICAgICAgICBsb2dfY2xpX2Rh
dGVfZm9ybWF0ID0gZ2V0X29wdGlvbl9pbmkoCisgICAgICAgICAgICBjb25maWcsICdsb2dfY2xp
X2RhdGVfZm9ybWF0JywgJ2xvZ19kYXRlX2Zvcm1hdCcpCisgICAgICAgIGxvZ19jbGlfZm9ybWF0
dGVyID0gbG9nZ2luZy5Gb3JtYXR0ZXIoCisgICAgICAgICAgICBsb2dfY2xpX2Zvcm1hdCwKKyAg
ICAgICAgICAgIGRhdGVmbXQ9bG9nX2NsaV9kYXRlX2Zvcm1hdCkKKyAgICAgICAgc2VsZi5sb2df
Y2xpX2hhbmRsZXIgPSBsb2dfY2xpX2hhbmRsZXIgICMgbmVlZGVkIGZvciBhIHNpbmdsZSB1bml0
dGVzdAorICAgICAgICBzZWxmLmxpdmVfbG9ncyA9IGNhdGNoaW5nX2xvZ3MobG9nX2NsaV9oYW5k
bGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVyPWxv
Z19jbGlfZm9ybWF0dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGV2ZWw9c2VsZi5sb2dfY2xpX2xldmVsKQorCisgICAgICAgIGxvZ19maWxlID0gZ2V0X29wdGlv
bl9pbmkoY29uZmlnLCAnbG9nX2ZpbGUnKQorICAgICAgICBpZiBsb2dfZmlsZToKKyAgICAgICAg
ICAgIHNlbGYubG9nX2ZpbGVfbGV2ZWwgPSBnZXRfYWN0dWFsX2xvZ19sZXZlbCgKKyAgICAgICAg
ICAgICAgICBjb25maWcsICdsb2dfZmlsZV9sZXZlbCcpIG9yIGxvZ2dpbmcuV0FSTklORworCisg
ICAgICAgICAgICBsb2dfZmlsZV9mb3JtYXQgPSBnZXRfb3B0aW9uX2luaSgKKyAgICAgICAgICAg
ICAgICBjb25maWcsICdsb2dfZmlsZV9mb3JtYXQnLCAnbG9nX2Zvcm1hdCcpCisgICAgICAgICAg
ICBsb2dfZmlsZV9kYXRlX2Zvcm1hdCA9IGdldF9vcHRpb25faW5pKAorICAgICAgICAgICAgICAg
IGNvbmZpZywgJ2xvZ19maWxlX2RhdGVfZm9ybWF0JywgJ2xvZ19kYXRlX2Zvcm1hdCcpCisgICAg
ICAgICAgICBzZWxmLmxvZ19maWxlX2hhbmRsZXIgPSBsb2dnaW5nLkZpbGVIYW5kbGVyKAorICAg
ICAgICAgICAgICAgIGxvZ19maWxlLAorICAgICAgICAgICAgICAgICMgRWFjaCBweXRlc3QgcnVu
dGVzdHMgc2Vzc2lvbiB3aWxsIHdyaXRlIHRvIGEgY2xlYW4gbG9nZmlsZQorICAgICAgICAgICAg
ICAgIG1vZGU9J3cnKQorICAgICAgICAgICAgbG9nX2ZpbGVfZm9ybWF0dGVyID0gbG9nZ2luZy5G
b3JtYXR0ZXIoCisgICAgICAgICAgICAgICAgbG9nX2ZpbGVfZm9ybWF0LAorICAgICAgICAgICAg
ICAgIGRhdGVmbXQ9bG9nX2ZpbGVfZGF0ZV9mb3JtYXQpCisgICAgICAgICAgICBzZWxmLmxvZ19m
aWxlX2hhbmRsZXIuc2V0Rm9ybWF0dGVyKGxvZ19maWxlX2Zvcm1hdHRlcikKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHNlbGYubG9nX2ZpbGVfaGFuZGxlciA9IE5vbmUKKworICAgIEBjb250
ZXh0bWFuYWdlcgorICAgIGRlZiBfcnVudGVzdF9mb3Ioc2VsZiwgaXRlbSwgd2hlbik6CisgICAg
ICAgICIiIkltcGxlbWVudHMgdGhlIGludGVybmFscyBvZiBweXRlc3RfcnVudGVzdF94eHgoKSBo
b29rLiIiIgorICAgICAgICB3aXRoIGNhdGNoaW5nX2xvZ3MoTG9nQ2FwdHVyZUhhbmRsZXIoKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlcj1zZWxmLmZvcm1hdHRlcikgYXMg
bG9nX2hhbmRsZXI6CisgICAgICAgICAgICBpdGVtLmNhdGNoX2xvZ19oYW5kbGVyID0gbG9nX2hh
bmRsZXIKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB5aWVsZCAgIyBydW4gdGVz
dAorICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICBkZWwgaXRlbS5jYXRjaF9s
b2dfaGFuZGxlcgorCisgICAgICAgICAgICBpZiBzZWxmLnByaW50X2xvZ3M6CisgICAgICAgICAg
ICAgICAgIyBBZGQgYSBjYXB0dXJlZCBsb2cgc2VjdGlvbiB0byB0aGUgcmVwb3J0LgorICAgICAg
ICAgICAgICAgIGxvZyA9IGxvZ19oYW5kbGVyLnN0cmVhbS5nZXR2YWx1ZSgpLnN0cmlwKCkKKyAg
ICAgICAgICAgICAgICBpdGVtLmFkZF9yZXBvcnRfc2VjdGlvbih3aGVuLCAnbG9nJywgbG9nKQor
CisgICAgQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQorICAgIGRlZiBweXRlc3Rf
cnVudGVzdF9zZXR1cChzZWxmLCBpdGVtKToKKyAgICAgICAgd2l0aCBzZWxmLl9ydW50ZXN0X2Zv
cihpdGVtLCAnc2V0dXAnKToKKyAgICAgICAgICAgIHlpZWxkCisKKyAgICBAcHl0ZXN0Lmhvb2tp
bXBsKGhvb2t3cmFwcGVyPVRydWUpCisgICAgZGVmIHB5dGVzdF9ydW50ZXN0X2NhbGwoc2VsZiwg
aXRlbSk6CisgICAgICAgIHdpdGggc2VsZi5fcnVudGVzdF9mb3IoaXRlbSwgJ2NhbGwnKToKKyAg
ICAgICAgICAgIHlpZWxkCisKKyAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUp
CisgICAgZGVmIHB5dGVzdF9ydW50ZXN0X3RlYXJkb3duKHNlbGYsIGl0ZW0pOgorICAgICAgICB3
aXRoIHNlbGYuX3J1bnRlc3RfZm9yKGl0ZW0sICd0ZWFyZG93bicpOgorICAgICAgICAgICAgeWll
bGQKKworICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKKyAgICBkZWYgcHl0
ZXN0X3J1bnRlc3Rsb29wKHNlbGYsIHNlc3Npb24pOgorICAgICAgICAiIiJSdW5zIGFsbCBjb2xs
ZWN0ZWQgdGVzdCBpdGVtcy4iIiIKKyAgICAgICAgd2l0aCBzZWxmLmxpdmVfbG9nczoKKyAgICAg
ICAgICAgIGlmIHNlbGYubG9nX2ZpbGVfaGFuZGxlciBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
ICAgICB3aXRoIGNsb3Npbmcoc2VsZi5sb2dfZmlsZV9oYW5kbGVyKToKKyAgICAgICAgICAgICAg
ICAgICAgd2l0aCBjYXRjaGluZ19sb2dzKHNlbGYubG9nX2ZpbGVfaGFuZGxlciwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVsPXNlbGYubG9nX2ZpbGVfbGV2ZWwp
OgorICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgICMgcnVuIGFsbCB0aGUgdGVzdHMKKyAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgeWllbGQgICMgcnVuIGFsbCB0aGUgdGVz
dHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvbWFpbi5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L19weXRlc3QvbWFpbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNTU1NDA5OGRhYzI5OWY2ZDljNzFkMmJmMTkz
OWY4YWVhNDMzMTExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9tYWlu
LnB5CkBAIC0wLDAgKzEsODIxIEBACisiIiIgY29yZSBpbXBsZW1lbnRhdGlvbiBvZiB0ZXN0aW5n
IHByb2Nlc3M6IGluaXQsIHNlc3Npb24sIHJ1bnRlc3QgbG9vcC4gIiIiCitmcm9tIF9fZnV0dXJl
X18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCisKK2lt
cG9ydCBmdW5jdG9vbHMKK2ltcG9ydCBvcworaW1wb3J0IHNpeAoraW1wb3J0IHN5cworCitpbXBv
cnQgX3B5dGVzdAorZnJvbSBfcHl0ZXN0IGltcG9ydCBub2RlcworaW1wb3J0IF9weXRlc3QuX2Nv
ZGUKK2ltcG9ydCBweQordHJ5OgorICAgIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IE11dGFibGVN
YXBwaW5nIGFzIE1hcHBpbmdNaXhpbgorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGZyb20gVXNl
ckRpY3QgaW1wb3J0IERpY3RNaXhpbiBhcyBNYXBwaW5nTWl4aW4KKworZnJvbSBfcHl0ZXN0LmNv
bmZpZyBpbXBvcnQgZGlyZWN0b3J5X2FyZywgVXNhZ2VFcnJvciwgaG9va2ltcGwKK2Zyb20gX3B5
dGVzdC5vdXRjb21lcyBpbXBvcnQgZXhpdAorZnJvbSBfcHl0ZXN0LnJ1bm5lciBpbXBvcnQgY29s
bGVjdF9vbmVfbm9kZQorCit0cmFjZWJhY2tjdXRkaXIgPSBweS5wYXRoLmxvY2FsKF9weXRlc3Qu
X19maWxlX18pLmRpcnBhdGgoKQorCisjIGV4aXRjb2RlcyBmb3IgdGhlIGNvbW1hbmQgbGluZQor
RVhJVF9PSyA9IDAKK0VYSVRfVEVTVFNGQUlMRUQgPSAxCitFWElUX0lOVEVSUlVQVEVEID0gMgor
RVhJVF9JTlRFUk5BTEVSUk9SID0gMworRVhJVF9VU0FHRUVSUk9SID0gNAorRVhJVF9OT1RFU1RT
Q09MTEVDVEVEID0gNQorCisKK2RlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAgcGFy
c2VyLmFkZGluaSgibm9yZWN1cnNlZGlycyIsICJkaXJlY3RvcnkgcGF0dGVybnMgdG8gYXZvaWQg
Zm9yIHJlY3Vyc2lvbiIsCisgICAgICAgICAgICAgICAgICB0eXBlPSJhcmdzIiwgZGVmYXVsdD1b
Jy4qJywgJ2J1aWxkJywgJ2Rpc3QnLCAnQ1ZTJywgJ19kYXJjcycsICd7YXJjaH0nLCAnKi5lZ2cn
LCAndmVudiddKQorICAgIHBhcnNlci5hZGRpbmkoInRlc3RwYXRocyIsICJkaXJlY3RvcmllcyB0
byBzZWFyY2ggZm9yIHRlc3RzIHdoZW4gbm8gZmlsZXMgb3IgZGlyZWN0b3JpZXMgYXJlIGdpdmVu
IGluIHRoZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbW1hbmQgbGluZS4i
LAorICAgICAgICAgICAgICAgICAgdHlwZT0iYXJncyIsIGRlZmF1bHQ9W10pCisgICAgIyBwYXJz
ZXIuYWRkaW5pKCJkaXJwYXR0ZXJucyIsCisgICAgIyAgICAicGF0dGVybnMgc3BlY2lmeWluZyBw
b3NzaWJsZSBsb2NhdGlvbnMgb2YgdGVzdCBmaWxlcyIsCisgICAgIyAgICB0eXBlPSJsaW5lbGlz
dCIsIGRlZmF1bHQ9WyIqKi90ZXN0XyoudHh0IiwKKyAgICAjICAgICAgICAgICAgIioqL3Rlc3Rf
Ki5weSIsICIqKi8qX3Rlc3QucHkiXQorICAgICMgKQorICAgIGdyb3VwID0gcGFyc2VyLmdldGdy
b3VwKCJnZW5lcmFsIiwgInJ1bm5pbmcgYW5kIHNlbGVjdGlvbiBvcHRpb25zIikKKyAgICBncm91
cC5fYWRkb3B0aW9uKCcteCcsICctLWV4aXRmaXJzdCcsIGFjdGlvbj0ic3RvcmVfY29uc3QiLAor
ICAgICAgICAgICAgICAgICAgICAgZGVzdD0ibWF4ZmFpbCIsIGNvbnN0PTEsCisgICAgICAgICAg
ICAgICAgICAgICBoZWxwPSJleGl0IGluc3RhbnRseSBvbiBmaXJzdCBlcnJvciBvciBmYWlsZWQg
dGVzdC4iKSwKKyAgICBncm91cC5fYWRkb3B0aW9uKCctLW1heGZhaWwnLCBtZXRhdmFyPSJudW0i
LAorICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZSIsIHR5cGU9aW50LCBkZXN0PSJt
YXhmYWlsIiwgZGVmYXVsdD0wLAorICAgICAgICAgICAgICAgICAgICAgaGVscD0iZXhpdCBhZnRl
ciBmaXJzdCBudW0gZmFpbHVyZXMgb3IgZXJyb3JzLiIpCisgICAgZ3JvdXAuX2FkZG9wdGlvbign
LS1zdHJpY3QnLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAgICAgICAgaGVs
cD0ibWFya3Mgbm90IHJlZ2lzdGVyZWQgaW4gY29uZmlndXJhdGlvbiBmaWxlIHJhaXNlIGVycm9y
cy4iKQorICAgIGdyb3VwLl9hZGRvcHRpb24oIi1jIiwgbWV0YXZhcj0iZmlsZSIsIHR5cGU9c3Ry
LCBkZXN0PSJpbmlmaWxlbmFtZSIsCisgICAgICAgICAgICAgICAgICAgICBoZWxwPSJsb2FkIGNv
bmZpZ3VyYXRpb24gZnJvbSBgZmlsZWAgaW5zdGVhZCBvZiB0cnlpbmcgdG8gbG9jYXRlIG9uZSBv
ZiB0aGUgaW1wbGljaXQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAiY29uZmlndXJhdGlv
biBmaWxlcy4iKQorICAgIGdyb3VwLl9hZGRvcHRpb24oIi0tY29udGludWUtb24tY29sbGVjdGlv
bi1lcnJvcnMiLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAgICAgICAgZGVm
YXVsdD1GYWxzZSwgZGVzdD0iY29udGludWVfb25fY29sbGVjdGlvbl9lcnJvcnMiLAorICAgICAg
ICAgICAgICAgICAgICAgaGVscD0iRm9yY2UgdGVzdCBleGVjdXRpb24gZXZlbiBpZiBjb2xsZWN0
aW9uIGVycm9ycyBvY2N1ci4iKQorCisgICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImNvbGxl
Y3QiLCAiY29sbGVjdGlvbiIpCisgICAgZ3JvdXAuYWRkb3B0aW9uKCctLWNvbGxlY3Rvbmx5Jywg
Jy0tY29sbGVjdC1vbmx5JywgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgICAgICAg
ICAgaGVscD0ib25seSBjb2xsZWN0IHRlc3RzLCBkb24ndCBleGVjdXRlIHRoZW0uIiksCisgICAg
Z3JvdXAuYWRkb3B0aW9uKCctLXB5YXJncycsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAg
ICAgICAgICAgICAgIGhlbHA9InRyeSB0byBpbnRlcnByZXQgYWxsIGFyZ3VtZW50cyBhcyBweXRo
b24gcGFja2FnZXMuIikKKyAgICBncm91cC5hZGRvcHRpb24oIi0taWdub3JlIiwgYWN0aW9uPSJh
cHBlbmQiLCBtZXRhdmFyPSJwYXRoIiwKKyAgICAgICAgICAgICAgICAgICAgaGVscD0iaWdub3Jl
IHBhdGggZHVyaW5nIGNvbGxlY3Rpb24gKG11bHRpLWFsbG93ZWQpLiIpCisgICAgIyB3aGVuIGNo
YW5naW5nIHRoaXMgdG8gLS1jb25mLWN1dC1kaXIsIGNvbmZpZy5weSBDb25mdGVzdC5zZXRpbml0
aWFsCisgICAgIyBuZWVkcyB1cGdyYWRpbmcgYXMgd2VsbAorICAgIGdyb3VwLmFkZG9wdGlvbign
LS1jb25mY3V0ZGlyJywgZGVzdD0iY29uZmN1dGRpciIsIGRlZmF1bHQ9Tm9uZSwKKyAgICAgICAg
ICAgICAgICAgICAgbWV0YXZhcj0iZGlyIiwgdHlwZT1mdW5jdG9vbHMucGFydGlhbChkaXJlY3Rv
cnlfYXJnLCBvcHRuYW1lPSItLWNvbmZjdXRkaXIiKSwKKyAgICAgICAgICAgICAgICAgICAgaGVs
cD0ib25seSBsb2FkIGNvbmZ0ZXN0LnB5J3MgcmVsYXRpdmUgdG8gc3BlY2lmaWVkIGRpci4iKQor
ICAgIGdyb3VwLmFkZG9wdGlvbignLS1ub2NvbmZ0ZXN0JywgYWN0aW9uPSJzdG9yZV90cnVlIiwK
KyAgICAgICAgICAgICAgICAgICAgZGVzdD0ibm9jb25mdGVzdCIsIGRlZmF1bHQ9RmFsc2UsCisg
ICAgICAgICAgICAgICAgICAgIGhlbHA9IkRvbid0IGxvYWQgYW55IGNvbmZ0ZXN0LnB5IGZpbGVz
LiIpCisgICAgZ3JvdXAuYWRkb3B0aW9uKCctLWtlZXBkdXBsaWNhdGVzJywgJy0ta2VlcC1kdXBs
aWNhdGVzJywgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgICAgICAgICAgZGVzdD0i
a2VlcGR1cGxpY2F0ZXMiLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICBoZWxw
PSJLZWVwIGR1cGxpY2F0ZSB0ZXN0cy4iKQorICAgIGdyb3VwLmFkZG9wdGlvbignLS1jb2xsZWN0
LWluLXZpcnR1YWxlbnYnLCBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAgICAgICAgICAgICAg
ICBkZXN0PSdjb2xsZWN0X2luX3ZpcnR1YWxlbnYnLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICAg
ICAgICAgICAgICBoZWxwPSJEb24ndCBpZ25vcmUgdGVzdHMgaW4gYSBsb2NhbCB2aXJ0dWFsZW52
IGRpcmVjdG9yeSIpCisKKyAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgiZGVidWdjb25maWci
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0IHNlc3Npb24gZGVidWdnaW5nIGFu
ZCBjb25maWd1cmF0aW9uIikKKyAgICBncm91cC5hZGRvcHRpb24oJy0tYmFzZXRlbXAnLCBkZXN0
PSJiYXNldGVtcCIsIGRlZmF1bHQ9Tm9uZSwgbWV0YXZhcj0iZGlyIiwKKyAgICAgICAgICAgICAg
ICAgICAgaGVscD0iYmFzZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGZvciB0aGlzIHRlc3QgcnVuLiIp
CisKKworZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKKyAgICBfX2ltcG9ydF9fKCdweXRl
c3QnKS5jb25maWcgPSBjb25maWcgICMgY29tcGF0aWJpbHRpeQorCisKK2RlZiB3cmFwX3Nlc3Np
b24oY29uZmlnLCBkb2l0KToKKyAgICAiIiJTa2VsZXRvbiBjb21tYW5kIGxpbmUgcHJvZ3JhbSIi
IgorICAgIHNlc3Npb24gPSBTZXNzaW9uKGNvbmZpZykKKyAgICBzZXNzaW9uLmV4aXRzdGF0dXMg
PSBFWElUX09LCisgICAgaW5pdHN0YXRlID0gMAorICAgIHRyeToKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgY29uZmlnLl9kb19jb25maWd1cmUoKQorICAgICAgICAgICAgaW5pdHN0YXRlID0g
MQorICAgICAgICAgICAgY29uZmlnLmhvb2sucHl0ZXN0X3Nlc3Npb25zdGFydChzZXNzaW9uPXNl
c3Npb24pCisgICAgICAgICAgICBpbml0c3RhdGUgPSAyCisgICAgICAgICAgICBzZXNzaW9uLmV4
aXRzdGF0dXMgPSBkb2l0KGNvbmZpZywgc2Vzc2lvbikgb3IgMAorICAgICAgICBleGNlcHQgVXNh
Z2VFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlCisgICAgICAgIGV4Y2VwdCBGYWlsZWQ6CisgICAg
ICAgICAgICBzZXNzaW9uLmV4aXRzdGF0dXMgPSBFWElUX1RFU1RTRkFJTEVECisgICAgICAgIGV4
Y2VwdCBLZXlib2FyZEludGVycnVwdDoKKyAgICAgICAgICAgIGV4Y2luZm8gPSBfcHl0ZXN0Ll9j
b2RlLkV4Y2VwdGlvbkluZm8oKQorICAgICAgICAgICAgaWYgaW5pdHN0YXRlIDwgMiBhbmQgaXNp
bnN0YW5jZShleGNpbmZvLnZhbHVlLCBleGl0LkV4Y2VwdGlvbik6CisgICAgICAgICAgICAgICAg
c3lzLnN0ZGVyci53cml0ZSgnezB9OiB7MX1cbicuZm9ybWF0KAorICAgICAgICAgICAgICAgICAg
ICBleGNpbmZvLnR5cGVuYW1lLCBleGNpbmZvLnZhbHVlLm1zZykpCisgICAgICAgICAgICBjb25m
aWcuaG9vay5weXRlc3Rfa2V5Ym9hcmRfaW50ZXJydXB0KGV4Y2luZm89ZXhjaW5mbykKKyAgICAg
ICAgICAgIHNlc3Npb24uZXhpdHN0YXR1cyA9IEVYSVRfSU5URVJSVVBURUQKKyAgICAgICAgZXhj
ZXB0OiAgIyBub3FhCisgICAgICAgICAgICBleGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRp
b25JbmZvKCkKKyAgICAgICAgICAgIGNvbmZpZy5ub3RpZnlfZXhjZXB0aW9uKGV4Y2luZm8sIGNv
bmZpZy5vcHRpb24pCisgICAgICAgICAgICBzZXNzaW9uLmV4aXRzdGF0dXMgPSBFWElUX0lOVEVS
TkFMRVJST1IKKyAgICAgICAgICAgIGlmIGV4Y2luZm8uZXJyaXNpbnN0YW5jZShTeXN0ZW1FeGl0
KToKKyAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJtYWlubG9vcDogY2F1Z2h0IFNw
dXJpb3VzIFN5c3RlbUV4aXQhXG4iKQorCisgICAgZmluYWxseToKKyAgICAgICAgZXhjaW5mbyA9
IE5vbmUgICMgRXhwbGljaXRseSBicmVhayByZWZlcmVuY2UgY3ljbGUuCisgICAgICAgIHNlc3Np
b24uc3RhcnRkaXIuY2hkaXIoKQorICAgICAgICBpZiBpbml0c3RhdGUgPj0gMjoKKyAgICAgICAg
ICAgIGNvbmZpZy5ob29rLnB5dGVzdF9zZXNzaW9uZmluaXNoKAorICAgICAgICAgICAgICAgIHNl
c3Npb249c2Vzc2lvbiwKKyAgICAgICAgICAgICAgICBleGl0c3RhdHVzPXNlc3Npb24uZXhpdHN0
YXR1cykKKyAgICAgICAgY29uZmlnLl9lbnN1cmVfdW5jb25maWd1cmUoKQorICAgIHJldHVybiBz
ZXNzaW9uLmV4aXRzdGF0dXMKKworCitkZWYgcHl0ZXN0X2NtZGxpbmVfbWFpbihjb25maWcpOgor
ICAgIHJldHVybiB3cmFwX3Nlc3Npb24oY29uZmlnLCBfbWFpbikKKworCitkZWYgX21haW4oY29u
ZmlnLCBzZXNzaW9uKToKKyAgICAiIiIgZGVmYXVsdCBjb21tYW5kIGxpbmUgcHJvdG9jb2wgZm9y
IGluaXRpYWxpemF0aW9uLCBzZXNzaW9uLAorICAgIHJ1bm5pbmcgdGVzdHMgYW5kIHJlcG9ydGlu
Zy4gIiIiCisgICAgY29uZmlnLmhvb2sucHl0ZXN0X2NvbGxlY3Rpb24oc2Vzc2lvbj1zZXNzaW9u
KQorICAgIGNvbmZpZy5ob29rLnB5dGVzdF9ydW50ZXN0bG9vcChzZXNzaW9uPXNlc3Npb24pCisK
KyAgICBpZiBzZXNzaW9uLnRlc3RzZmFpbGVkOgorICAgICAgICByZXR1cm4gRVhJVF9URVNUU0ZB
SUxFRAorICAgIGVsaWYgc2Vzc2lvbi50ZXN0c2NvbGxlY3RlZCA9PSAwOgorICAgICAgICByZXR1
cm4gRVhJVF9OT1RFU1RTQ09MTEVDVEVECisKKworZGVmIHB5dGVzdF9jb2xsZWN0aW9uKHNlc3Np
b24pOgorICAgIHJldHVybiBzZXNzaW9uLnBlcmZvcm1fY29sbGVjdCgpCisKKworZGVmIHB5dGVz
dF9ydW50ZXN0bG9vcChzZXNzaW9uKToKKyAgICBpZiAoc2Vzc2lvbi50ZXN0c2ZhaWxlZCBhbmQK
KyAgICAgICAgICAgIG5vdCBzZXNzaW9uLmNvbmZpZy5vcHRpb24uY29udGludWVfb25fY29sbGVj
dGlvbl9lcnJvcnMpOgorICAgICAgICByYWlzZSBzZXNzaW9uLkludGVycnVwdGVkKAorICAgICAg
ICAgICAgIiVkIGVycm9ycyBkdXJpbmcgY29sbGVjdGlvbiIgJSBzZXNzaW9uLnRlc3RzZmFpbGVk
KQorCisgICAgaWYgc2Vzc2lvbi5jb25maWcub3B0aW9uLmNvbGxlY3Rvbmx5OgorICAgICAgICBy
ZXR1cm4gVHJ1ZQorCisgICAgZm9yIGksIGl0ZW0gaW4gZW51bWVyYXRlKHNlc3Npb24uaXRlbXMp
OgorICAgICAgICBuZXh0aXRlbSA9IHNlc3Npb24uaXRlbXNbaSArIDFdIGlmIGkgKyAxIDwgbGVu
KHNlc3Npb24uaXRlbXMpIGVsc2UgTm9uZQorICAgICAgICBpdGVtLmNvbmZpZy5ob29rLnB5dGVz
dF9ydW50ZXN0X3Byb3RvY29sKGl0ZW09aXRlbSwgbmV4dGl0ZW09bmV4dGl0ZW0pCisgICAgICAg
IGlmIHNlc3Npb24uc2hvdWxkZmFpbDoKKyAgICAgICAgICAgIHJhaXNlIHNlc3Npb24uRmFpbGVk
KHNlc3Npb24uc2hvdWxkZmFpbCkKKyAgICAgICAgaWYgc2Vzc2lvbi5zaG91bGRzdG9wOgorICAg
ICAgICAgICAgcmFpc2Ugc2Vzc2lvbi5JbnRlcnJ1cHRlZChzZXNzaW9uLnNob3VsZHN0b3ApCisg
ICAgcmV0dXJuIFRydWUKKworCitkZWYgX2luX3ZlbnYocGF0aCk6CisgICAgIiIiQXR0ZW1wdHMg
dG8gZGV0ZWN0IGlmIGBgcGF0aGBgIGlzIHRoZSByb290IG9mIGEgVmlydHVhbCBFbnZpcm9ubWVu
dCBieQorICAgIGNoZWNraW5nIGZvciB0aGUgZXhpc3RlbmNlIG9mIHRoZSBhcHByb3ByaWF0ZSBh
Y3RpdmF0ZSBzY3JpcHQiIiIKKyAgICBiaW5kaXIgPSBwYXRoLmpvaW4oJ1NjcmlwdHMnIGlmIHN5
cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCd3aW4nKSBlbHNlICdiaW4nKQorICAgIGlmIG5vdCBiaW5k
aXIuZXhpc3RzKCk6CisgICAgICAgIHJldHVybiBGYWxzZQorICAgIGFjdGl2YXRlcyA9ICgnYWN0
aXZhdGUnLCAnYWN0aXZhdGUuY3NoJywgJ2FjdGl2YXRlLmZpc2gnLAorICAgICAgICAgICAgICAg
ICAnQWN0aXZhdGUnLCAnQWN0aXZhdGUuYmF0JywgJ0FjdGl2YXRlLnBzMScpCisgICAgcmV0dXJu
IGFueShbZm5hbWUuYmFzZW5hbWUgaW4gYWN0aXZhdGVzIGZvciBmbmFtZSBpbiBiaW5kaXIubGlz
dGRpcigpXSkKKworCitkZWYgcHl0ZXN0X2lnbm9yZV9jb2xsZWN0KHBhdGgsIGNvbmZpZyk6Cisg
ICAgaWdub3JlX3BhdGhzID0gY29uZmlnLl9nZXRjb25mdGVzdF9wYXRobGlzdCgiY29sbGVjdF9p
Z25vcmUiLCBwYXRoPXBhdGguZGlycGF0aCgpKQorICAgIGlnbm9yZV9wYXRocyA9IGlnbm9yZV9w
YXRocyBvciBbXQorICAgIGV4Y2x1ZGVvcHQgPSBjb25maWcuZ2V0b3B0aW9uKCJpZ25vcmUiKQor
ICAgIGlmIGV4Y2x1ZGVvcHQ6CisgICAgICAgIGlnbm9yZV9wYXRocy5leHRlbmQoW3B5LnBhdGgu
bG9jYWwoeCkgZm9yIHggaW4gZXhjbHVkZW9wdF0pCisKKyAgICBpZiBweS5wYXRoLmxvY2FsKHBh
dGgpIGluIGlnbm9yZV9wYXRoczoKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGFsbG93X2lu
X3ZlbnYgPSBjb25maWcuZ2V0b3B0aW9uKCJjb2xsZWN0X2luX3ZpcnR1YWxlbnYiKQorICAgIGlm
IF9pbl92ZW52KHBhdGgpIGFuZCBub3QgYWxsb3dfaW5fdmVudjoKKyAgICAgICAgcmV0dXJuIFRy
dWUKKworICAgICMgU2tpcCBkdXBsaWNhdGUgcGF0aHMuCisgICAga2VlcGR1cGxpY2F0ZXMgPSBj
b25maWcuZ2V0b3B0aW9uKCJrZWVwZHVwbGljYXRlcyIpCisgICAgZHVwbGljYXRlX3BhdGhzID0g
Y29uZmlnLnBsdWdpbm1hbmFnZXIuX2R1cGxpY2F0ZXBhdGhzCisgICAgaWYgbm90IGtlZXBkdXBs
aWNhdGVzOgorICAgICAgICBpZiBwYXRoIGluIGR1cGxpY2F0ZV9wYXRoczoKKyAgICAgICAgICAg
IHJldHVybiBUcnVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBkdXBsaWNhdGVfcGF0aHMu
YWRkKHBhdGgpCisKKyAgICByZXR1cm4gRmFsc2UKKworCitjbGFzcyBGU0hvb2tQcm94eToKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgZnNwYXRoLCBwbSwgcmVtb3ZlX21vZHMpOgorICAgICAgICBz
ZWxmLmZzcGF0aCA9IGZzcGF0aAorICAgICAgICBzZWxmLnBtID0gcG0KKyAgICAgICAgc2VsZi5y
ZW1vdmVfbW9kcyA9IHJlbW92ZV9tb2RzCisKKyAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgbmFt
ZSk6CisgICAgICAgIHggPSBzZWxmLnBtLnN1YnNldF9ob29rX2NhbGxlcihuYW1lLCByZW1vdmVf
cGx1Z2lucz1zZWxmLnJlbW92ZV9tb2RzKQorICAgICAgICBzZWxmLl9fZGljdF9fW25hbWVdID0g
eAorICAgICAgICByZXR1cm4geAorCisKK2NsYXNzIF9Db21wYXRQcm9wZXJ0eShvYmplY3QpOgor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lKToKKyAgICAgICAgc2VsZi5uYW1lID0gbmFtZQor
CisgICAgZGVmIF9fZ2V0X18oc2VsZiwgb2JqLCBvd25lcik6CisgICAgICAgIGlmIG9iaiBpcyBO
b25lOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYKKworICAgICAgICAjIFRPRE86IHJlZW5hYmxl
IGluIHRoZSBmZWF0dXJlcyBicmFuY2gKKyAgICAgICAgIyB3YXJuaW5ncy53YXJuKAorICAgICAg
ICAjICAgICAidXNhZ2Ugb2Yge293bmVyIXJ9LntuYW1lfSBpcyBkZXByZWNhdGVkLCBwbGVhc2Ug
dXNlIHB5dGVzdC57bmFtZX0gaW5zdGVhZCIuZm9ybWF0KAorICAgICAgICAjICAgICAgICAgbmFt
ZT1zZWxmLm5hbWUsIG93bmVyPXR5cGUob3duZXIpLl9fbmFtZV9fKSwKKyAgICAgICAgIyAgICAg
UGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZywgc3RhY2tsZXZlbD0yKQorICAgICAgICByZXR1cm4g
Z2V0YXR0cihfX2ltcG9ydF9fKCdweXRlc3QnKSwgc2VsZi5uYW1lKQorCisKK2NsYXNzIE5vZGVL
ZXl3b3JkcyhNYXBwaW5nTWl4aW4pOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBub2RlKToKKyAg
ICAgICAgc2VsZi5ub2RlID0gbm9kZQorICAgICAgICBzZWxmLnBhcmVudCA9IG5vZGUucGFyZW50
CisgICAgICAgIHNlbGYuX21hcmtlcnMgPSB7bm9kZS5uYW1lOiBUcnVlfQorCisgICAgZGVmIF9f
Z2V0aXRlbV9fKHNlbGYsIGtleSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBz
ZWxmLl9tYXJrZXJzW2tleV0KKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAg
aWYgc2VsZi5wYXJlbnQgaXMgTm9uZToKKyAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAg
ICAgcmV0dXJuIHNlbGYucGFyZW50LmtleXdvcmRzW2tleV0KKworICAgIGRlZiBfX3NldGl0ZW1f
XyhzZWxmLCBrZXksIHZhbHVlKToKKyAgICAgICAgc2VsZi5fbWFya2Vyc1trZXldID0gdmFsdWUK
KworICAgIGRlZiBfX2RlbGl0ZW1fXyhzZWxmLCBrZXkpOgorICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCJjYW5ub3QgZGVsZXRlIGtleSBpbiBrZXl3b3JkcyBkaWN0IikKKworICAgIGRlZiBfX2l0
ZXJfXyhzZWxmKToKKyAgICAgICAgc2VlbiA9IHNldChzZWxmLl9tYXJrZXJzKQorICAgICAgICBp
ZiBzZWxmLnBhcmVudCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlZW4udXBkYXRlKHNlbGYu
cGFyZW50LmtleXdvcmRzKQorICAgICAgICByZXR1cm4gaXRlcihzZWVuKQorCisgICAgZGVmIF9f
bGVuX18oc2VsZik6CisgICAgICAgIHJldHVybiBsZW4oc2VsZi5fX2l0ZXJfXygpKQorCisgICAg
ZGVmIGtleXMoc2VsZik6CisgICAgICAgIHJldHVybiBsaXN0KHNlbGYpCisKKyAgICBkZWYgX19y
ZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAiPE5vZGVLZXl3b3JkcyBmb3Igbm9kZSAlcz4i
ICUgKHNlbGYubm9kZSwgKQorCisKK2NsYXNzIE5vZGUob2JqZWN0KToKKyAgICAiIiIgYmFzZSBj
bGFzcyBmb3IgQ29sbGVjdG9yIGFuZCBJdGVtIHRoZSB0ZXN0IGNvbGxlY3Rpb24gdHJlZS4KKyAg
ICBDb2xsZWN0b3Igc3ViY2xhc3NlcyBoYXZlIGNoaWxkcmVuLCBJdGVtcyBhcmUgdGVybWluYWwg
bm9kZXMuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgcGFyZW50PU5vbmUsIGNv
bmZpZz1Ob25lLCBzZXNzaW9uPU5vbmUpOgorICAgICAgICAjOiBhIHVuaXF1ZSBuYW1lIHdpdGhp
biB0aGUgc2NvcGUgb2YgdGhlIHBhcmVudCBub2RlCisgICAgICAgIHNlbGYubmFtZSA9IG5hbWUK
KworICAgICAgICAjOiB0aGUgcGFyZW50IGNvbGxlY3RvciBub2RlLgorICAgICAgICBzZWxmLnBh
cmVudCA9IHBhcmVudAorCisgICAgICAgICM6IHRoZSBweXRlc3QgY29uZmlnIG9iamVjdAorICAg
ICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZyBvciBwYXJlbnQuY29uZmlnCisKKyAgICAgICAgIzog
dGhlIHNlc3Npb24gdGhpcyBub2RlIGlzIHBhcnQgb2YKKyAgICAgICAgc2VsZi5zZXNzaW9uID0g
c2Vzc2lvbiBvciBwYXJlbnQuc2Vzc2lvbgorCisgICAgICAgICM6IGZpbGVzeXN0ZW0gcGF0aCB3
aGVyZSB0aGlzIG5vZGUgd2FzIGNvbGxlY3RlZCBmcm9tIChjYW4gYmUgTm9uZSkKKyAgICAgICAg
c2VsZi5mc3BhdGggPSBnZXRhdHRyKHBhcmVudCwgJ2ZzcGF0aCcsIE5vbmUpCisKKyAgICAgICAg
Izoga2V5d29yZHMvbWFya2VycyBjb2xsZWN0ZWQgZnJvbSBhbGwgc2NvcGVzCisgICAgICAgIHNl
bGYua2V5d29yZHMgPSBOb2RlS2V5d29yZHMoc2VsZikKKworICAgICAgICAjOiBhbGxvdyBhZGRp
bmcgb2YgZXh0cmEga2V5d29yZHMgdG8gdXNlIGZvciBtYXRjaGluZworICAgICAgICBzZWxmLmV4
dHJhX2tleXdvcmRfbWF0Y2hlcyA9IHNldCgpCisKKyAgICAgICAgIyB1c2VkIGZvciBzdG9yaW5n
IGFydGlmaWNpYWwgZml4dHVyZWRlZnMgZm9yIGRpcmVjdCBwYXJhbWV0cml6YXRpb24KKyAgICAg
ICAgc2VsZi5fbmFtZTJwc2V1ZG9maXh0dXJlZGVmID0ge30KKworICAgIEBwcm9wZXJ0eQorICAg
IGRlZiBpaG9vayhzZWxmKToKKyAgICAgICAgIiIiIGZzcGF0aCBzZW5zaXRpdmUgaG9vayBwcm94
eSB1c2VkIHRvIGNhbGwgcHl0ZXN0IGhvb2tzIiIiCisgICAgICAgIHJldHVybiBzZWxmLnNlc3Np
b24uZ2V0aG9va3Byb3h5KHNlbGYuZnNwYXRoKQorCisgICAgTW9kdWxlID0gX0NvbXBhdFByb3Bl
cnR5KCJNb2R1bGUiKQorICAgIENsYXNzID0gX0NvbXBhdFByb3BlcnR5KCJDbGFzcyIpCisgICAg
SW5zdGFuY2UgPSBfQ29tcGF0UHJvcGVydHkoIkluc3RhbmNlIikKKyAgICBGdW5jdGlvbiA9IF9D
b21wYXRQcm9wZXJ0eSgiRnVuY3Rpb24iKQorICAgIEZpbGUgPSBfQ29tcGF0UHJvcGVydHkoIkZp
bGUiKQorICAgIEl0ZW0gPSBfQ29tcGF0UHJvcGVydHkoIkl0ZW0iKQorCisgICAgZGVmIF9nZXRj
dXN0b21jbGFzcyhzZWxmLCBuYW1lKToKKyAgICAgICAgbWF5YmVfY29tcGF0cHJvcCA9IGdldGF0
dHIodHlwZShzZWxmKSwgbmFtZSkKKyAgICAgICAgaWYgaXNpbnN0YW5jZShtYXliZV9jb21wYXRw
cm9wLCBfQ29tcGF0UHJvcGVydHkpOgorICAgICAgICAgICAgcmV0dXJuIGdldGF0dHIoX19pbXBv
cnRfXygncHl0ZXN0JyksIG5hbWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjbHMgPSBn
ZXRhdHRyKHNlbGYsIG5hbWUpCisgICAgICAgICAgICAjIFRPRE86IHJlZW5hYmxlIGluIHRoZSBm
ZWF0dXJlcyBicmFuY2gKKyAgICAgICAgICAgICMgd2FybmluZ3Mud2FybigidXNlIG9mIG5vZGUu
JXMgaXMgZGVwcmVjYXRlZCwgIgorICAgICAgICAgICAgIyAgICAidXNlIHB5dGVzdF9weWNvbGxl
Y3RfbWFrZWl0ZW0oLi4uKSB0byBjcmVhdGUgY3VzdG9tICIKKyAgICAgICAgICAgICMgICAgImNv
bGxlY3Rpb24gbm9kZXMiICUgbmFtZSwgY2F0ZWdvcnk9RGVwcmVjYXRpb25XYXJuaW5nKQorICAg
ICAgICByZXR1cm4gY2xzCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVy
biAiPCVzICVyPiIgJSAoc2VsZi5fX2NsYXNzX18uX19uYW1lX18sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ2V0YXR0cihzZWxmLCAnbmFtZScsIE5vbmUpKQorCisgICAgZGVmIHdhcm4o
c2VsZiwgY29kZSwgbWVzc2FnZSk6CisgICAgICAgICIiIiBnZW5lcmF0ZSBhIHdhcm5pbmcgd2l0
aCB0aGUgZ2l2ZW4gY29kZSBhbmQgbWVzc2FnZSBmb3IgdGhpcworICAgICAgICBpdGVtLiAiIiIK
KyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29kZSwgc3RyKQorICAgICAgICBmc2xvY2F0aW9u
ID0gZ2V0YXR0cihzZWxmLCAibG9jYXRpb24iLCBOb25lKQorICAgICAgICBpZiBmc2xvY2F0aW9u
IGlzIE5vbmU6CisgICAgICAgICAgICBmc2xvY2F0aW9uID0gZ2V0YXR0cihzZWxmLCAiZnNwYXRo
IiwgTm9uZSkKKyAgICAgICAgc2VsZi5paG9vay5weXRlc3RfbG9nd2FybmluZy5jYWxsX2hpc3Rv
cmljKGt3YXJncz1kaWN0KAorICAgICAgICAgICAgY29kZT1jb2RlLCBtZXNzYWdlPW1lc3NhZ2Us
CisgICAgICAgICAgICBub2RlaWQ9c2VsZi5ub2RlaWQsIGZzbG9jYXRpb249ZnNsb2NhdGlvbikp
CisKKyAgICAjIG1ldGhvZHMgZm9yIG9yZGVyaW5nIG5vZGVzCisgICAgQHByb3BlcnR5CisgICAg
ZGVmIG5vZGVpZChzZWxmKToKKyAgICAgICAgIiIiIGEgOjotc2VwYXJhdGVkIHN0cmluZyBkZW5v
dGluZyBpdHMgY29sbGVjdGlvbiB0cmVlIGFkZHJlc3MuICIiIgorICAgICAgICB0cnk6CisgICAg
ICAgICAgICByZXR1cm4gc2VsZi5fbm9kZWlkCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJv
cjoKKyAgICAgICAgICAgIHNlbGYuX25vZGVpZCA9IHggPSBzZWxmLl9tYWtlaWQoKQorICAgICAg
ICAgICAgcmV0dXJuIHgKKworICAgIGRlZiBfbWFrZWlkKHNlbGYpOgorICAgICAgICByZXR1cm4g
c2VsZi5wYXJlbnQubm9kZWlkICsgIjo6IiArIHNlbGYubmFtZQorCisgICAgZGVmIF9faGFzaF9f
KHNlbGYpOgorICAgICAgICByZXR1cm4gaGFzaChzZWxmLm5vZGVpZCkKKworICAgIGRlZiBzZXR1
cChzZWxmKToKKyAgICAgICAgcGFzcworCisgICAgZGVmIHRlYXJkb3duKHNlbGYpOgorICAgICAg
ICBwYXNzCisKKyAgICBkZWYgbGlzdGNoYWluKHNlbGYpOgorICAgICAgICAiIiIgcmV0dXJuIGxp
c3Qgb2YgYWxsIHBhcmVudCBjb2xsZWN0b3JzIHVwIHRvIHNlbGYsCisgICAgICAgICAgICBzdGFy
dGluZyBmcm9tIHJvb3Qgb2YgY29sbGVjdGlvbiB0cmVlLiAiIiIKKyAgICAgICAgY2hhaW4gPSBb
XQorICAgICAgICBpdGVtID0gc2VsZgorICAgICAgICB3aGlsZSBpdGVtIGlzIG5vdCBOb25lOgor
ICAgICAgICAgICAgY2hhaW4uYXBwZW5kKGl0ZW0pCisgICAgICAgICAgICBpdGVtID0gaXRlbS5w
YXJlbnQKKyAgICAgICAgY2hhaW4ucmV2ZXJzZSgpCisgICAgICAgIHJldHVybiBjaGFpbgorCisg
ICAgZGVmIGFkZF9tYXJrZXIoc2VsZiwgbWFya2VyKToKKyAgICAgICAgIiIiIGR5bmFtaWNhbGx5
IGFkZCBhIG1hcmtlciBvYmplY3QgdG8gdGhlIG5vZGUuCisKKyAgICAgICAgYGBtYXJrZXJgYCBj
YW4gYmUgYSBzdHJpbmcgb3IgcHl0ZXN0Lm1hcmsuKiBpbnN0YW5jZS4KKyAgICAgICAgIiIiCisg
ICAgICAgIGZyb20gX3B5dGVzdC5tYXJrIGltcG9ydCBNYXJrRGVjb3JhdG9yLCBNQVJLX0dFTgor
ICAgICAgICBpZiBpc2luc3RhbmNlKG1hcmtlciwgc2l4LnN0cmluZ190eXBlcyk6CisgICAgICAg
ICAgICBtYXJrZXIgPSBnZXRhdHRyKE1BUktfR0VOLCBtYXJrZXIpCisgICAgICAgIGVsaWYgbm90
IGlzaW5zdGFuY2UobWFya2VyLCBNYXJrRGVjb3JhdG9yKToKKyAgICAgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoImlzIG5vdCBhIHN0cmluZyBvciBweXRlc3QubWFyay4qIE1hcmtlciIpCisgICAg
ICAgIHNlbGYua2V5d29yZHNbbWFya2VyLm5hbWVdID0gbWFya2VyCisKKyAgICBkZWYgZ2V0X21h
cmtlcihzZWxmLCBuYW1lKToKKyAgICAgICAgIiIiIGdldCBhIG1hcmtlciBvYmplY3QgZnJvbSB0
aGlzIG5vZGUgb3IgTm9uZSBpZgorICAgICAgICB0aGUgbm9kZSBkb2Vzbid0IGhhdmUgYSBtYXJr
ZXIgd2l0aCB0aGF0IG5hbWUuICIiIgorICAgICAgICB2YWwgPSBzZWxmLmtleXdvcmRzLmdldChu
YW1lLCBOb25lKQorICAgICAgICBpZiB2YWwgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBmcm9t
IF9weXRlc3QubWFyayBpbXBvcnQgTWFya0luZm8sIE1hcmtEZWNvcmF0b3IKKyAgICAgICAgICAg
IGlmIGlzaW5zdGFuY2UodmFsLCAoTWFya0RlY29yYXRvciwgTWFya0luZm8pKToKKyAgICAgICAg
ICAgICAgICByZXR1cm4gdmFsCisKKyAgICBkZWYgbGlzdGV4dHJha2V5d29yZHMoc2VsZik6Cisg
ICAgICAgICIiIiBSZXR1cm4gYSBzZXQgb2YgYWxsIGV4dHJhIGtleXdvcmRzIGluIHNlbGYgYW5k
IGFueSBwYXJlbnRzLiIiIgorICAgICAgICBleHRyYV9rZXl3b3JkcyA9IHNldCgpCisgICAgICAg
IGl0ZW0gPSBzZWxmCisgICAgICAgIGZvciBpdGVtIGluIHNlbGYubGlzdGNoYWluKCk6CisgICAg
ICAgICAgICBleHRyYV9rZXl3b3Jkcy51cGRhdGUoaXRlbS5leHRyYV9rZXl3b3JkX21hdGNoZXMp
CisgICAgICAgIHJldHVybiBleHRyYV9rZXl3b3JkcworCisgICAgZGVmIGxpc3RuYW1lcyhzZWxm
KToKKyAgICAgICAgcmV0dXJuIFt4Lm5hbWUgZm9yIHggaW4gc2VsZi5saXN0Y2hhaW4oKV0KKwor
ICAgIGRlZiBhZGRmaW5hbGl6ZXIoc2VsZiwgZmluKToKKyAgICAgICAgIiIiIHJlZ2lzdGVyIGEg
ZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhpcyBub2RlIGlzIGZpbmFsaXplZC4KKworICAg
ICAgICBUaGlzIG1ldGhvZCBjYW4gb25seSBiZSBjYWxsZWQgd2hlbiB0aGlzIG5vZGUgaXMgYWN0
aXZlCisgICAgICAgIGluIGEgc2V0dXAgY2hhaW4sIGZvciBleGFtcGxlIGR1cmluZyBzZWxmLnNl
dHVwKCkuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLnNlc3Npb24uX3NldHVwc3RhdGUuYWRk
ZmluYWxpemVyKGZpbiwgc2VsZikKKworICAgIGRlZiBnZXRwYXJlbnQoc2VsZiwgY2xzKToKKyAg
ICAgICAgIiIiIGdldCB0aGUgbmV4dCBwYXJlbnQgbm9kZSAoaW5jbHVkaW5nIG91cnNlbGYpCisg
ICAgICAgIHdoaWNoIGlzIGFuIGluc3RhbmNlIG9mIHRoZSBnaXZlbiBjbGFzcyIiIgorICAgICAg
ICBjdXJyZW50ID0gc2VsZgorICAgICAgICB3aGlsZSBjdXJyZW50IGFuZCBub3QgaXNpbnN0YW5j
ZShjdXJyZW50LCBjbHMpOgorICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQucGFyZW50Cisg
ICAgICAgIHJldHVybiBjdXJyZW50CisKKyAgICBkZWYgX3BydW5ldHJhY2ViYWNrKHNlbGYsIGV4
Y2luZm8pOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgX3JlcHJfZmFpbHVyZV9weShzZWxmLCBl
eGNpbmZvLCBzdHlsZT1Ob25lKToKKyAgICAgICAgZm0gPSBzZWxmLnNlc3Npb24uX2ZpeHR1cmVt
YW5hZ2VyCisgICAgICAgIGlmIGV4Y2luZm8uZXJyaXNpbnN0YW5jZShmbS5GaXh0dXJlTG9va3Vw
RXJyb3IpOgorICAgICAgICAgICAgcmV0dXJuIGV4Y2luZm8udmFsdWUuZm9ybWF0cmVwcigpCisg
ICAgICAgIHRiZmlsdGVyID0gVHJ1ZQorICAgICAgICBpZiBzZWxmLmNvbmZpZy5vcHRpb24uZnVs
bHRyYWNlOgorICAgICAgICAgICAgc3R5bGUgPSAibG9uZyIKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIHRiID0gX3B5dGVzdC5fY29kZS5UcmFjZWJhY2soW2V4Y2luZm8udHJhY2ViYWNrWy0x
XV0pCisgICAgICAgICAgICBzZWxmLl9wcnVuZXRyYWNlYmFjayhleGNpbmZvKQorICAgICAgICAg
ICAgaWYgbGVuKGV4Y2luZm8udHJhY2ViYWNrKSA9PSAwOgorICAgICAgICAgICAgICAgIGV4Y2lu
Zm8udHJhY2ViYWNrID0gdGIKKyAgICAgICAgICAgIHRiZmlsdGVyID0gRmFsc2UgICMgcHJ1bmV0
cmFjZWJhY2sgYWxyZWFkeSBkb2VzIGl0CisgICAgICAgICAgICBpZiBzdHlsZSA9PSAiYXV0byI6
CisgICAgICAgICAgICAgICAgc3R5bGUgPSAibG9uZyIKKyAgICAgICAgIyBYWFggc2hvdWxkIGV4
Y2luZm8uZ2V0cmVwciByZWNvcmQgYWxsIGRhdGEgYW5kIHRvdGVybWluYWwoKSBwcm9jZXNzIGl0
PworICAgICAgICBpZiBzdHlsZSBpcyBOb25lOgorICAgICAgICAgICAgaWYgc2VsZi5jb25maWcu
b3B0aW9uLnRic3R5bGUgPT0gInNob3J0IjoKKyAgICAgICAgICAgICAgICBzdHlsZSA9ICJzaG9y
dCIKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc3R5bGUgPSAibG9uZyIKKwor
ICAgICAgICB0cnk6CisgICAgICAgICAgICBvcy5nZXRjd2QoKQorICAgICAgICAgICAgYWJzcGF0
aCA9IEZhbHNlCisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICAgICAgYWJzcGF0aCA9
IFRydWUKKworICAgICAgICByZXR1cm4gZXhjaW5mby5nZXRyZXByKGZ1bmNhcmdzPVRydWUsIGFi
c3BhdGg9YWJzcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93bG9jYWxz
PXNlbGYuY29uZmlnLm9wdGlvbi5zaG93bG9jYWxzLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0eWxlPXN0eWxlLCB0YmZpbHRlcj10YmZpbHRlcikKKworICAgIHJlcHJfZmFpbHVy
ZSA9IF9yZXByX2ZhaWx1cmVfcHkKKworCitjbGFzcyBDb2xsZWN0b3IoTm9kZSk6CisgICAgIiIi
IENvbGxlY3RvciBpbnN0YW5jZXMgY3JlYXRlIGNoaWxkcmVuIHRocm91Z2ggY29sbGVjdCgpCisg
ICAgICAgIGFuZCB0aHVzIGl0ZXJhdGl2ZWx5IGJ1aWxkIGEgdHJlZS4KKyAgICAiIiIKKworICAg
IGNsYXNzIENvbGxlY3RFcnJvcihFeGNlcHRpb24pOgorICAgICAgICAiIiIgYW4gZXJyb3IgZHVy
aW5nIGNvbGxlY3Rpb24sIGNvbnRhaW5zIGEgY3VzdG9tIG1lc3NhZ2UuICIiIgorCisgICAgZGVm
IGNvbGxlY3Qoc2VsZik6CisgICAgICAgICIiIiByZXR1cm5zIGEgbGlzdCBvZiBjaGlsZHJlbiAo
aXRlbXMgYW5kIGNvbGxlY3RvcnMpCisgICAgICAgICAgICBmb3IgdGhpcyBjb2xsZWN0aW9uIG5v
ZGUuCisgICAgICAgICIiIgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJhYnN0
cmFjdCIpCisKKyAgICBkZWYgcmVwcl9mYWlsdXJlKHNlbGYsIGV4Y2luZm8pOgorICAgICAgICAi
IiIgcmVwcmVzZW50IGEgY29sbGVjdGlvbiBmYWlsdXJlLiAiIiIKKyAgICAgICAgaWYgZXhjaW5m
by5lcnJpc2luc3RhbmNlKHNlbGYuQ29sbGVjdEVycm9yKToKKyAgICAgICAgICAgIGV4YyA9IGV4
Y2luZm8udmFsdWUKKyAgICAgICAgICAgIHJldHVybiBzdHIoZXhjLmFyZ3NbMF0pCisgICAgICAg
IHJldHVybiBzZWxmLl9yZXByX2ZhaWx1cmVfcHkoZXhjaW5mbywgc3R5bGU9InNob3J0IikKKwor
ICAgIGRlZiBfcHJ1bmV0cmFjZWJhY2soc2VsZiwgZXhjaW5mbyk6CisgICAgICAgIGlmIGhhc2F0
dHIoc2VsZiwgJ2ZzcGF0aCcpOgorICAgICAgICAgICAgdHJhY2ViYWNrID0gZXhjaW5mby50cmFj
ZWJhY2sKKyAgICAgICAgICAgIG50cmFjZWJhY2sgPSB0cmFjZWJhY2suY3V0KHBhdGg9c2VsZi5m
c3BhdGgpCisgICAgICAgICAgICBpZiBudHJhY2ViYWNrID09IHRyYWNlYmFjazoKKyAgICAgICAg
ICAgICAgICBudHJhY2ViYWNrID0gbnRyYWNlYmFjay5jdXQoZXhjbHVkZXBhdGg9dHJhY2ViYWNr
Y3V0ZGlyKQorICAgICAgICAgICAgZXhjaW5mby50cmFjZWJhY2sgPSBudHJhY2ViYWNrLmZpbHRl
cigpCisKKworY2xhc3MgRlNDb2xsZWN0b3IoQ29sbGVjdG9yKToKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgZnNwYXRoLCBwYXJlbnQ9Tm9uZSwgY29uZmlnPU5vbmUsIHNlc3Npb249Tm9uZSk6Cisg
ICAgICAgIGZzcGF0aCA9IHB5LnBhdGgubG9jYWwoZnNwYXRoKSAgIyB4eHggb25seSBmb3IgdGVz
dF9yZXN1bHRsb2cucHk/CisgICAgICAgIG5hbWUgPSBmc3BhdGguYmFzZW5hbWUKKyAgICAgICAg
aWYgcGFyZW50IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmVsID0gZnNwYXRoLnJlbHRvKHBh
cmVudC5mc3BhdGgpCisgICAgICAgICAgICBpZiByZWw6CisgICAgICAgICAgICAgICAgbmFtZSA9
IHJlbAorICAgICAgICAgICAgbmFtZSA9IG5hbWUucmVwbGFjZShvcy5zZXAsIG5vZGVzLlNFUCkK
KyAgICAgICAgc3VwZXIoRlNDb2xsZWN0b3IsIHNlbGYpLl9faW5pdF9fKG5hbWUsIHBhcmVudCwg
Y29uZmlnLCBzZXNzaW9uKQorICAgICAgICBzZWxmLmZzcGF0aCA9IGZzcGF0aAorCisgICAgZGVm
IF9jaGVja19pbml0aWFscGF0aHNfZm9yX3JlbHBhdGgoc2VsZik6CisgICAgICAgIGZvciBpbml0
aWFscGF0aCBpbiBzZWxmLnNlc3Npb24uX2luaXRpYWxwYXRoczoKKyAgICAgICAgICAgIGlmIHNl
bGYuZnNwYXRoLmNvbW1vbihpbml0aWFscGF0aCkgPT0gaW5pdGlhbHBhdGg6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHNlbGYuZnNwYXRoLnJlbHRvKGluaXRpYWxwYXRoLmRpcm5hbWUpCisKKyAg
ICBkZWYgX21ha2VpZChzZWxmKToKKyAgICAgICAgcmVscGF0aCA9IHNlbGYuZnNwYXRoLnJlbHRv
KHNlbGYuY29uZmlnLnJvb3RkaXIpCisKKyAgICAgICAgaWYgbm90IHJlbHBhdGg6CisgICAgICAg
ICAgICByZWxwYXRoID0gc2VsZi5fY2hlY2tfaW5pdGlhbHBhdGhzX2Zvcl9yZWxwYXRoKCkKKyAg
ICAgICAgaWYgb3Muc2VwICE9IG5vZGVzLlNFUDoKKyAgICAgICAgICAgIHJlbHBhdGggPSByZWxw
YXRoLnJlcGxhY2Uob3Muc2VwLCBub2Rlcy5TRVApCisgICAgICAgIHJldHVybiByZWxwYXRoCisK
KworY2xhc3MgRmlsZShGU0NvbGxlY3Rvcik6CisgICAgIiIiIGJhc2UgY2xhc3MgZm9yIGNvbGxl
Y3RpbmcgdGVzdHMgZnJvbSBhIGZpbGUuICIiIgorCisKK2NsYXNzIEl0ZW0oTm9kZSk6CisgICAg
IiIiIGEgYmFzaWMgdGVzdCBpbnZvY2F0aW9uIGl0ZW0uIE5vdGUgdGhhdCBmb3IgYSBzaW5nbGUg
ZnVuY3Rpb24KKyAgICB0aGVyZSBtaWdodCBiZSBtdWx0aXBsZSB0ZXN0IGludm9jYXRpb24gaXRl
bXMuCisgICAgIiIiCisgICAgbmV4dGl0ZW0gPSBOb25lCisKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgbmFtZSwgcGFyZW50PU5vbmUsIGNvbmZpZz1Ob25lLCBzZXNzaW9uPU5vbmUpOgorICAgICAg
ICBzdXBlcihJdGVtLCBzZWxmKS5fX2luaXRfXyhuYW1lLCBwYXJlbnQsIGNvbmZpZywgc2Vzc2lv
bikKKyAgICAgICAgc2VsZi5fcmVwb3J0X3NlY3Rpb25zID0gW10KKworICAgIGRlZiBhZGRfcmVw
b3J0X3NlY3Rpb24oc2VsZiwgd2hlbiwga2V5LCBjb250ZW50KToKKyAgICAgICAgIiIiCisgICAg
ICAgIEFkZHMgYSBuZXcgcmVwb3J0IHNlY3Rpb24sIHNpbWlsYXIgdG8gd2hhdCdzIGRvbmUgaW50
ZXJuYWxseSB0byBhZGQgc3Rkb3V0IGFuZAorICAgICAgICBzdGRlcnIgY2FwdHVyZWQgb3V0cHV0
OjoKKworICAgICAgICAgICAgaXRlbS5hZGRfcmVwb3J0X3NlY3Rpb24oImNhbGwiLCAic3Rkb3V0
IiwgInJlcG9ydCBzZWN0aW9uIGNvbnRlbnRzIikKKworICAgICAgICA6cGFyYW0gc3RyIHdoZW46
CisgICAgICAgICAgICBPbmUgb2YgdGhlIHBvc3NpYmxlIGNhcHR1cmUgc3RhdGVzLCBgYCJzZXR1
cCJgYCwgYGAiY2FsbCJgYCwgYGAidGVhcmRvd24iYGAuCisgICAgICAgIDpwYXJhbSBzdHIga2V5
OgorICAgICAgICAgICAgTmFtZSBvZiB0aGUgc2VjdGlvbiwgY2FuIGJlIGN1c3RvbWl6ZWQgYXQg
d2lsbC4gUHl0ZXN0IHVzZXMgYGAic3Rkb3V0ImBgIGFuZAorICAgICAgICAgICAgYGAic3RkZXJy
ImBgIGludGVybmFsbHkuCisKKyAgICAgICAgOnBhcmFtIHN0ciBjb250ZW50OgorICAgICAgICAg
ICAgVGhlIGZ1bGwgY29udGVudHMgYXMgYSBzdHJpbmcuCisgICAgICAgICIiIgorICAgICAgICBp
ZiBjb250ZW50OgorICAgICAgICAgICAgc2VsZi5fcmVwb3J0X3NlY3Rpb25zLmFwcGVuZCgod2hl
biwga2V5LCBjb250ZW50KSkKKworICAgIGRlZiByZXBvcnRpbmZvKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gc2VsZi5mc3BhdGgsIE5vbmUsICIiCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbG9j
YXRpb24oc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9sb2Nh
dGlvbgorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICBsb2NhdGlv
biA9IHNlbGYucmVwb3J0aW5mbygpCisgICAgICAgICAgICAjIGJlc3RyZWxwYXRoIGlzIGEgcXVp
dGUgc2xvdyBmdW5jdGlvbgorICAgICAgICAgICAgY2FjaGUgPSBzZWxmLmNvbmZpZy5fX2RpY3Rf
Xy5zZXRkZWZhdWx0KCJfYmVzdHJlbHBhdGhjYWNoZSIsIHt9KQorICAgICAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgICAgIGZzcGF0aCA9IGNhY2hlW2xvY2F0aW9uWzBdXQorICAgICAgICAgICAg
ZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgICAgIGZzcGF0aCA9IHNlbGYuc2Vzc2lvbi5m
c3BhdGguYmVzdHJlbHBhdGgobG9jYXRpb25bMF0pCisgICAgICAgICAgICAgICAgY2FjaGVbbG9j
YXRpb25bMF1dID0gZnNwYXRoCisgICAgICAgICAgICBsb2NhdGlvbiA9IChmc3BhdGgsIGxvY2F0
aW9uWzFdLCBzdHIobG9jYXRpb25bMl0pKQorICAgICAgICAgICAgc2VsZi5fbG9jYXRpb24gPSBs
b2NhdGlvbgorICAgICAgICAgICAgcmV0dXJuIGxvY2F0aW9uCisKKworY2xhc3MgTm9NYXRjaChF
eGNlcHRpb24pOgorICAgICIiIiByYWlzZWQgaWYgbWF0Y2hpbmcgY2Fubm90IGxvY2F0ZSBhIG1h
dGNoaW5nIG5hbWVzLiAiIiIKKworCitjbGFzcyBJbnRlcnJ1cHRlZChLZXlib2FyZEludGVycnVw
dCk6CisgICAgIiIiIHNpZ25hbHMgYW4gaW50ZXJydXB0ZWQgdGVzdCBydW4uICIiIgorICAgIF9f
bW9kdWxlX18gPSAnYnVpbHRpbnMnICAjIGZvciBweTMKKworCitjbGFzcyBGYWlsZWQoRXhjZXB0
aW9uKToKKyAgICAiIiIgc2lnbmFscyBhbiBzdG9wIGFzIGZhaWxlZCB0ZXN0IHJ1bi4gIiIiCisK
KworY2xhc3MgU2Vzc2lvbihGU0NvbGxlY3Rvcik6CisgICAgSW50ZXJydXB0ZWQgPSBJbnRlcnJ1
cHRlZAorICAgIEZhaWxlZCA9IEZhaWxlZAorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZp
Zyk6CisgICAgICAgIEZTQ29sbGVjdG9yLl9faW5pdF9fKHNlbGYsIGNvbmZpZy5yb290ZGlyLCBw
YXJlbnQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPWNvbmZpZywg
c2Vzc2lvbj1zZWxmKQorICAgICAgICBzZWxmLnRlc3RzZmFpbGVkID0gMAorICAgICAgICBzZWxm
LnRlc3RzY29sbGVjdGVkID0gMAorICAgICAgICBzZWxmLnNob3VsZHN0b3AgPSBGYWxzZQorICAg
ICAgICBzZWxmLnNob3VsZGZhaWwgPSBGYWxzZQorICAgICAgICBzZWxmLnRyYWNlID0gY29uZmln
LnRyYWNlLnJvb3QuZ2V0KCJjb2xsZWN0aW9uIikKKyAgICAgICAgc2VsZi5fbm9yZWN1cnNlcGF0
dGVybnMgPSBjb25maWcuZ2V0aW5pKCJub3JlY3Vyc2VkaXJzIikKKyAgICAgICAgc2VsZi5zdGFy
dGRpciA9IHB5LnBhdGgubG9jYWwoKQorICAgICAgICBzZWxmLmNvbmZpZy5wbHVnaW5tYW5hZ2Vy
LnJlZ2lzdGVyKHNlbGYsIG5hbWU9InNlc3Npb24iKQorCisgICAgZGVmIF9tYWtlaWQoc2VsZik6
CisgICAgICAgIHJldHVybiAiIgorCisgICAgQGhvb2tpbXBsKHRyeWZpcnN0PVRydWUpCisgICAg
ZGVmIHB5dGVzdF9jb2xsZWN0c3RhcnQoc2VsZik6CisgICAgICAgIGlmIHNlbGYuc2hvdWxkZmFp
bDoKKyAgICAgICAgICAgIHJhaXNlIHNlbGYuRmFpbGVkKHNlbGYuc2hvdWxkZmFpbCkKKyAgICAg
ICAgaWYgc2VsZi5zaG91bGRzdG9wOgorICAgICAgICAgICAgcmFpc2Ugc2VsZi5JbnRlcnJ1cHRl
ZChzZWxmLnNob3VsZHN0b3ApCisKKyAgICBAaG9va2ltcGwodHJ5Zmlyc3Q9VHJ1ZSkKKyAgICBk
ZWYgcHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0KHNlbGYsIHJlcG9ydCk6CisgICAgICAgIGlmIHJl
cG9ydC5mYWlsZWQgYW5kIG5vdCBoYXNhdHRyKHJlcG9ydCwgJ3dhc3hmYWlsJyk6CisgICAgICAg
ICAgICBzZWxmLnRlc3RzZmFpbGVkICs9IDEKKyAgICAgICAgICAgIG1heGZhaWwgPSBzZWxmLmNv
bmZpZy5nZXR2YWx1ZSgibWF4ZmFpbCIpCisgICAgICAgICAgICBpZiBtYXhmYWlsIGFuZCBzZWxm
LnRlc3RzZmFpbGVkID49IG1heGZhaWw6CisgICAgICAgICAgICAgICAgc2VsZi5zaG91bGRmYWls
ID0gInN0b3BwaW5nIGFmdGVyICVkIGZhaWx1cmVzIiAlICgKKyAgICAgICAgICAgICAgICAgICAg
c2VsZi50ZXN0c2ZhaWxlZCkKKyAgICBweXRlc3RfY29sbGVjdHJlcG9ydCA9IHB5dGVzdF9ydW50
ZXN0X2xvZ3JlcG9ydAorCisgICAgZGVmIGlzaW5pdHBhdGgoc2VsZiwgcGF0aCk6CisgICAgICAg
IHJldHVybiBwYXRoIGluIHNlbGYuX2luaXRpYWxwYXRocworCisgICAgZGVmIGdldGhvb2twcm94
eShzZWxmLCBmc3BhdGgpOgorICAgICAgICAjIGNoZWNrIGlmIHdlIGhhdmUgdGhlIGNvbW1vbiBj
YXNlIG9mIHJ1bm5pbmcKKyAgICAgICAgIyBob29rcyB3aXRoIGFsbCBjb25mdGVzdC5weSBmaWxl
c2FsbCBjb25mdGVzdC5weQorICAgICAgICBwbSA9IHNlbGYuY29uZmlnLnBsdWdpbm1hbmFnZXIK
KyAgICAgICAgbXlfY29uZnRlc3Rtb2R1bGVzID0gcG0uX2dldGNvbmZ0ZXN0bW9kdWxlcyhmc3Bh
dGgpCisgICAgICAgIHJlbW92ZV9tb2RzID0gcG0uX2NvbmZ0ZXN0X3BsdWdpbnMuZGlmZmVyZW5j
ZShteV9jb25mdGVzdG1vZHVsZXMpCisgICAgICAgIGlmIHJlbW92ZV9tb2RzOgorICAgICAgICAg
ICAgIyBvbmUgb3IgbW9yZSBjb25mdGVzdHMgYXJlIG5vdCBpbiB1c2UgYXQgdGhpcyBmc3BhdGgK
KyAgICAgICAgICAgIHByb3h5ID0gRlNIb29rUHJveHkoZnNwYXRoLCBwbSwgcmVtb3ZlX21vZHMp
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIGFsbCBwbHVnaXMgYXJlIGFjdGl2ZSBmb3Ig
dGhpcyBmc3BhdGgKKyAgICAgICAgICAgIHByb3h5ID0gc2VsZi5jb25maWcuaG9vaworICAgICAg
ICByZXR1cm4gcHJveHkKKworICAgIGRlZiBwZXJmb3JtX2NvbGxlY3Qoc2VsZiwgYXJncz1Ob25l
LCBnZW5pdGVtcz1UcnVlKToKKyAgICAgICAgaG9vayA9IHNlbGYuY29uZmlnLmhvb2sKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgaXRlbXMgPSBzZWxmLl9wZXJmb3JtX2NvbGxlY3QoYXJncywg
Z2VuaXRlbXMpCisgICAgICAgICAgICBzZWxmLmNvbmZpZy5wbHVnaW5tYW5hZ2VyLmNoZWNrX3Bl
bmRpbmcoKQorICAgICAgICAgICAgaG9vay5weXRlc3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtcyhz
ZXNzaW9uPXNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbmZpZz1zZWxmLmNvbmZpZywgaXRlbXM9aXRlbXMpCisgICAgICAgIGZpbmFsbHk6Cisg
ICAgICAgICAgICBob29rLnB5dGVzdF9jb2xsZWN0aW9uX2ZpbmlzaChzZXNzaW9uPXNlbGYpCisg
ICAgICAgIHNlbGYudGVzdHNjb2xsZWN0ZWQgPSBsZW4oaXRlbXMpCisgICAgICAgIHJldHVybiBp
dGVtcworCisgICAgZGVmIF9wZXJmb3JtX2NvbGxlY3Qoc2VsZiwgYXJncywgZ2VuaXRlbXMpOgor
ICAgICAgICBpZiBhcmdzIGlzIE5vbmU6CisgICAgICAgICAgICBhcmdzID0gc2VsZi5jb25maWcu
YXJncworICAgICAgICBzZWxmLnRyYWNlKCJwZXJmb3JtX2NvbGxlY3QiLCBzZWxmLCBhcmdzKQor
ICAgICAgICBzZWxmLnRyYWNlLnJvb3QuaW5kZW50ICs9IDEKKyAgICAgICAgc2VsZi5fbm90Zm91
bmQgPSBbXQorICAgICAgICBzZWxmLl9pbml0aWFscGF0aHMgPSBzZXQoKQorICAgICAgICBzZWxm
Ll9pbml0aWFscGFydHMgPSBbXQorICAgICAgICBzZWxmLml0ZW1zID0gaXRlbXMgPSBbXQorICAg
ICAgICBmb3IgYXJnIGluIGFyZ3M6CisgICAgICAgICAgICBwYXJ0cyA9IHNlbGYuX3BhcnNlYXJn
KGFyZykKKyAgICAgICAgICAgIHNlbGYuX2luaXRpYWxwYXJ0cy5hcHBlbmQocGFydHMpCisgICAg
ICAgICAgICBzZWxmLl9pbml0aWFscGF0aHMuYWRkKHBhcnRzWzBdKQorICAgICAgICByZXAgPSBj
b2xsZWN0X29uZV9ub2RlKHNlbGYpCisgICAgICAgIHNlbGYuaWhvb2sucHl0ZXN0X2NvbGxlY3Ry
ZXBvcnQocmVwb3J0PXJlcCkKKyAgICAgICAgc2VsZi50cmFjZS5yb290LmluZGVudCAtPSAxCisg
ICAgICAgIGlmIHNlbGYuX25vdGZvdW5kOgorICAgICAgICAgICAgZXJyb3JzID0gW10KKyAgICAg
ICAgICAgIGZvciBhcmcsIGV4YyBpbiBzZWxmLl9ub3Rmb3VuZDoKKyAgICAgICAgICAgICAgICBs
aW5lID0gIihubyBuYW1lICVyIGluIGFueSBvZiAlcikiICUgKGFyZywgZXhjLmFyZ3NbMF0pCisg
ICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgibm90IGZvdW5kOiAlc1xuJXMiICUgKGFyZywg
bGluZSkpCisgICAgICAgICAgICAgICAgIyBYWFg6IHRlc3QgdGhpcworICAgICAgICAgICAgcmFp
c2UgVXNhZ2VFcnJvcigqZXJyb3JzKQorICAgICAgICBpZiBub3QgZ2VuaXRlbXM6CisgICAgICAg
ICAgICByZXR1cm4gcmVwLnJlc3VsdAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgcmVw
LnBhc3NlZDoKKyAgICAgICAgICAgICAgICBmb3Igbm9kZSBpbiByZXAucmVzdWx0OgorICAgICAg
ICAgICAgICAgICAgICBzZWxmLml0ZW1zLmV4dGVuZChzZWxmLmdlbml0ZW1zKG5vZGUpKQorICAg
ICAgICAgICAgcmV0dXJuIGl0ZW1zCisKKyAgICBkZWYgY29sbGVjdChzZWxmKToKKyAgICAgICAg
Zm9yIHBhcnRzIGluIHNlbGYuX2luaXRpYWxwYXJ0czoKKyAgICAgICAgICAgIGFyZyA9ICI6OiIu
am9pbihtYXAoc3RyLCBwYXJ0cykpCisgICAgICAgICAgICBzZWxmLnRyYWNlKCJwcm9jZXNzaW5n
IGFyZ3VtZW50IiwgYXJnKQorICAgICAgICAgICAgc2VsZi50cmFjZS5yb290LmluZGVudCArPSAx
CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZm9yIHggaW4gc2VsZi5fY29sbGVj
dChhcmcpOgorICAgICAgICAgICAgICAgICAgICB5aWVsZCB4CisgICAgICAgICAgICBleGNlcHQg
Tm9NYXRjaDoKKyAgICAgICAgICAgICAgICAjIHdlIGFyZSBpbnNpZGUgYSBtYWtlX3JlcG9ydCBo
b29rIHNvCisgICAgICAgICAgICAgICAgIyB3ZSBjYW5ub3QgZGlyZWN0bHkgcGFzcyB0aHJvdWdo
IHRoZSBleGNlcHRpb24KKyAgICAgICAgICAgICAgICBzZWxmLl9ub3Rmb3VuZC5hcHBlbmQoKGFy
Zywgc3lzLmV4Y19pbmZvKClbMV0pKQorCisgICAgICAgICAgICBzZWxmLnRyYWNlLnJvb3QuaW5k
ZW50IC09IDEKKworICAgIGRlZiBfY29sbGVjdChzZWxmLCBhcmcpOgorICAgICAgICBuYW1lcyA9
IHNlbGYuX3BhcnNlYXJnKGFyZykKKyAgICAgICAgcGF0aCA9IG5hbWVzLnBvcCgwKQorICAgICAg
ICBpZiBwYXRoLmNoZWNrKGRpcj0xKToKKyAgICAgICAgICAgIGFzc2VydCBub3QgbmFtZXMsICJp
bnZhbGlkIGFyZyAlciIgJSAoYXJnLCkKKyAgICAgICAgICAgIGZvciBwYXRoIGluIHBhdGgudmlz
aXQoZmlsPWxhbWJkYSB4OiB4LmNoZWNrKGZpbGU9MSksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlYz1zZWxmLl9yZWN1cnNlLCBiZj1UcnVlLCBzb3J0PVRydWUpOgorICAg
ICAgICAgICAgICAgIGZvciB4IGluIHNlbGYuX2NvbGxlY3RmaWxlKHBhdGgpOgorICAgICAgICAg
ICAgICAgICAgICB5aWVsZCB4CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgcGF0
aC5jaGVjayhmaWxlPTEpCisgICAgICAgICAgICBmb3IgeCBpbiBzZWxmLm1hdGNobm9kZXMoc2Vs
Zi5fY29sbGVjdGZpbGUocGF0aCksIG5hbWVzKToKKyAgICAgICAgICAgICAgICB5aWVsZCB4CisK
KyAgICBkZWYgX2NvbGxlY3RmaWxlKHNlbGYsIHBhdGgpOgorICAgICAgICBpaG9vayA9IHNlbGYu
Z2V0aG9va3Byb3h5KHBhdGgpCisgICAgICAgIGlmIG5vdCBzZWxmLmlzaW5pdHBhdGgocGF0aCk6
CisgICAgICAgICAgICBpZiBpaG9vay5weXRlc3RfaWdub3JlX2NvbGxlY3QocGF0aD1wYXRoLCBj
b25maWc9c2VsZi5jb25maWcpOgorICAgICAgICAgICAgICAgIHJldHVybiAoKQorICAgICAgICBy
ZXR1cm4gaWhvb2sucHl0ZXN0X2NvbGxlY3RfZmlsZShwYXRoPXBhdGgsIHBhcmVudD1zZWxmKQor
CisgICAgZGVmIF9yZWN1cnNlKHNlbGYsIHBhdGgpOgorICAgICAgICBpaG9vayA9IHNlbGYuZ2V0
aG9va3Byb3h5KHBhdGguZGlycGF0aCgpKQorICAgICAgICBpZiBpaG9vay5weXRlc3RfaWdub3Jl
X2NvbGxlY3QocGF0aD1wYXRoLCBjb25maWc9c2VsZi5jb25maWcpOgorICAgICAgICAgICAgcmV0
dXJuCisgICAgICAgIGZvciBwYXQgaW4gc2VsZi5fbm9yZWN1cnNlcGF0dGVybnM6CisgICAgICAg
ICAgICBpZiBwYXRoLmNoZWNrKGZubWF0Y2g9cGF0KToKKyAgICAgICAgICAgICAgICByZXR1cm4g
RmFsc2UKKyAgICAgICAgaWhvb2sgPSBzZWxmLmdldGhvb2twcm94eShwYXRoKQorICAgICAgICBp
aG9vay5weXRlc3RfY29sbGVjdF9kaXJlY3RvcnkocGF0aD1wYXRoLCBwYXJlbnQ9c2VsZikKKyAg
ICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiBfdHJ5Y29udmVydHB5YXJnKHNlbGYsIHgpOgor
ICAgICAgICAiIiJDb252ZXJ0IGEgZG90dGVkIG1vZHVsZSBuYW1lIHRvIHBhdGguCisKKyAgICAg
ICAgIiIiCisgICAgICAgIGltcG9ydCBwa2d1dGlsCisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IGxvYWRlciA9IHBrZ3V0aWwuZmluZF9sb2FkZXIoeCkKKyAgICAgICAgZXhjZXB0IEltcG9ydEVy
cm9yOgorICAgICAgICAgICAgcmV0dXJuIHgKKyAgICAgICAgaWYgbG9hZGVyIGlzIE5vbmU6Cisg
ICAgICAgICAgICByZXR1cm4geAorICAgICAgICAjIFRoaXMgbWV0aG9kIGlzIHNvbWV0aW1lcyBp
bnZva2VkIHdoZW4gQXNzZXJ0aW9uUmV3cml0aW5nSG9vaywgd2hpY2gKKyAgICAgICAgIyBkb2Vz
IG5vdCBkZWZpbmUgYSBnZXRfZmlsZW5hbWUgbWV0aG9kLCBpcyBhbHJlYWR5IGluIHBsYWNlOgor
ICAgICAgICB0cnk6CisgICAgICAgICAgICBwYXRoID0gbG9hZGVyLmdldF9maWxlbmFtZSh4KQor
ICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAjIFJldHJpZXZlIHBh
dGggZnJvbSBBc3NlcnRpb25SZXdyaXRpbmdIb29rOgorICAgICAgICAgICAgcGF0aCA9IGxvYWRl
ci5tb2R1bGVzW3hdWzBdLmNvX2ZpbGVuYW1lCisgICAgICAgIGlmIGxvYWRlci5pc19wYWNrYWdl
KHgpOgorICAgICAgICAgICAgcGF0aCA9IG9zLnBhdGguZGlybmFtZShwYXRoKQorICAgICAgICBy
ZXR1cm4gcGF0aAorCisgICAgZGVmIF9wYXJzZWFyZyhzZWxmLCBhcmcpOgorICAgICAgICAiIiIg
cmV0dXJuIChmc3BhdGgsIG5hbWVzKSB0dXBsZSBhZnRlciBjaGVja2luZyB0aGUgZmlsZSBleGlz
dHMuICIiIgorICAgICAgICBwYXJ0cyA9IHN0cihhcmcpLnNwbGl0KCI6OiIpCisgICAgICAgIGlm
IHNlbGYuY29uZmlnLm9wdGlvbi5weWFyZ3M6CisgICAgICAgICAgICBwYXJ0c1swXSA9IHNlbGYu
X3RyeWNvbnZlcnRweWFyZyhwYXJ0c1swXSkKKyAgICAgICAgcmVscGF0aCA9IHBhcnRzWzBdLnJl
cGxhY2UoIi8iLCBvcy5zZXApCisgICAgICAgIHBhdGggPSBzZWxmLmNvbmZpZy5pbnZvY2F0aW9u
X2Rpci5qb2luKHJlbHBhdGgsIGFicz1UcnVlKQorICAgICAgICBpZiBub3QgcGF0aC5jaGVjaygp
OgorICAgICAgICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9uLnB5YXJnczoKKyAgICAgICAgICAg
ICAgICByYWlzZSBVc2FnZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAiZmlsZSBvciBwYWNr
YWdlIG5vdCBmb3VuZDogIiArIGFyZyArCisgICAgICAgICAgICAgICAgICAgICIgKG1pc3Npbmcg
X19pbml0X18ucHk/KSIpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNl
IFVzYWdlRXJyb3IoImZpbGUgbm90IGZvdW5kOiAiICsgYXJnKQorICAgICAgICBwYXJ0c1swXSA9
IHBhdGgKKyAgICAgICAgcmV0dXJuIHBhcnRzCisKKyAgICBkZWYgbWF0Y2hub2RlcyhzZWxmLCBt
YXRjaGluZywgbmFtZXMpOgorICAgICAgICBzZWxmLnRyYWNlKCJtYXRjaG5vZGVzIiwgbWF0Y2hp
bmcsIG5hbWVzKQorICAgICAgICBzZWxmLnRyYWNlLnJvb3QuaW5kZW50ICs9IDEKKyAgICAgICAg
bm9kZXMgPSBzZWxmLl9tYXRjaG5vZGVzKG1hdGNoaW5nLCBuYW1lcykKKyAgICAgICAgbnVtID0g
bGVuKG5vZGVzKQorICAgICAgICBzZWxmLnRyYWNlKCJtYXRjaG5vZGVzIGZpbmlzaGVkIC0+ICIs
IG51bSwgIm5vZGVzIikKKyAgICAgICAgc2VsZi50cmFjZS5yb290LmluZGVudCAtPSAxCisgICAg
ICAgIGlmIG51bSA9PSAwOgorICAgICAgICAgICAgcmFpc2UgTm9NYXRjaChtYXRjaGluZywgbmFt
ZXNbOjFdKQorICAgICAgICByZXR1cm4gbm9kZXMKKworICAgIGRlZiBfbWF0Y2hub2RlcyhzZWxm
LCBtYXRjaGluZywgbmFtZXMpOgorICAgICAgICBpZiBub3QgbWF0Y2hpbmcgb3Igbm90IG5hbWVz
OgorICAgICAgICAgICAgcmV0dXJuIG1hdGNoaW5nCisgICAgICAgIG5hbWUgPSBuYW1lc1swXQor
ICAgICAgICBhc3NlcnQgbmFtZQorICAgICAgICBuZXh0bmFtZXMgPSBuYW1lc1sxOl0KKyAgICAg
ICAgcmVzdWx0bm9kZXMgPSBbXQorICAgICAgICBmb3Igbm9kZSBpbiBtYXRjaGluZzoKKyAgICAg
ICAgICAgIGlmIGlzaW5zdGFuY2Uobm9kZSwgSXRlbSk6CisgICAgICAgICAgICAgICAgaWYgbm90
IG5hbWVzOgorICAgICAgICAgICAgICAgICAgICByZXN1bHRub2Rlcy5hcHBlbmQobm9kZSkKKyAg
ICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uobm9k
ZSwgQ29sbGVjdG9yKQorICAgICAgICAgICAgcmVwID0gY29sbGVjdF9vbmVfbm9kZShub2RlKQor
ICAgICAgICAgICAgaWYgcmVwLnBhc3NlZDoKKyAgICAgICAgICAgICAgICBoYXNfbWF0Y2hlZCA9
IEZhbHNlCisgICAgICAgICAgICAgICAgZm9yIHggaW4gcmVwLnJlc3VsdDoKKyAgICAgICAgICAg
ICAgICAgICAgIyBUT0RPOiByZW1vdmUgcGFyYW1ldHJpemVkIHdvcmthcm91bmQgb25jZSBjb2xs
ZWN0aW9uIHN0cnVjdHVyZSBjb250YWlucyBwYXJhbWV0cml6YXRpb24KKyAgICAgICAgICAgICAg
ICAgICAgaWYgeC5uYW1lID09IG5hbWUgb3IgeC5uYW1lLnNwbGl0KCJbIilbMF0gPT0gbmFtZToK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdG5vZGVzLmV4dGVuZChzZWxmLm1hdGNobm9k
ZXMoW3hdLCBuZXh0bmFtZXMpKQorICAgICAgICAgICAgICAgICAgICAgICAgaGFzX21hdGNoZWQg
PSBUcnVlCisgICAgICAgICAgICAgICAgIyBYWFggYWNjZXB0IElEcyB0aGF0IGRvbid0IGhhdmUg
IigpIiBmb3IgY2xhc3MgaW5zdGFuY2VzCisgICAgICAgICAgICAgICAgaWYgbm90IGhhc19tYXRj
aGVkIGFuZCBsZW4ocmVwLnJlc3VsdCkgPT0gMSBhbmQgeC5uYW1lID09ICIoKSI6CisgICAgICAg
ICAgICAgICAgICAgIG5leHRuYW1lcy5pbnNlcnQoMCwgbmFtZSkKKyAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0bm9kZXMuZXh0ZW5kKHNlbGYubWF0Y2hub2RlcyhbeF0sIG5leHRuYW1lcykpCisg
ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICMgcmVwb3J0IGNvbGxlY3Rpb24gZmFp
bHVyZXMgaGVyZSB0byBhdm9pZCBmYWlsaW5nIHRvIHJ1biBzb21lIHRlc3QKKyAgICAgICAgICAg
ICAgICAjIHNwZWNpZmllZCBpbiB0aGUgY29tbWFuZCBsaW5lIGJlY2F1c2UgdGhlIG1vZHVsZSBj
b3VsZCBub3QgYmUKKyAgICAgICAgICAgICAgICAjIGltcG9ydGVkICgjMTM0KQorICAgICAgICAg
ICAgICAgIG5vZGUuaWhvb2sucHl0ZXN0X2NvbGxlY3RyZXBvcnQocmVwb3J0PXJlcCkKKyAgICAg
ICAgcmV0dXJuIHJlc3VsdG5vZGVzCisKKyAgICBkZWYgZ2VuaXRlbXMoc2VsZiwgbm9kZSk6Cisg
ICAgICAgIHNlbGYudHJhY2UoImdlbml0ZW1zIiwgbm9kZSkKKyAgICAgICAgaWYgaXNpbnN0YW5j
ZShub2RlLCBJdGVtKToKKyAgICAgICAgICAgIG5vZGUuaWhvb2sucHl0ZXN0X2l0ZW1jb2xsZWN0
ZWQoaXRlbT1ub2RlKQorICAgICAgICAgICAgeWllbGQgbm9kZQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uobm9kZSwgQ29sbGVjdG9yKQorICAgICAgICAgICAg
cmVwID0gY29sbGVjdF9vbmVfbm9kZShub2RlKQorICAgICAgICAgICAgaWYgcmVwLnBhc3NlZDoK
KyAgICAgICAgICAgICAgICBmb3Igc3Vibm9kZSBpbiByZXAucmVzdWx0OgorICAgICAgICAgICAg
ICAgICAgICBmb3IgeCBpbiBzZWxmLmdlbml0ZW1zKHN1Ym5vZGUpOgorICAgICAgICAgICAgICAg
ICAgICAgICAgeWllbGQgeAorICAgICAgICAgICAgbm9kZS5paG9vay5weXRlc3RfY29sbGVjdHJl
cG9ydChyZXBvcnQ9cmVwKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9tYXJrLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9tYXJrLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNmMWYwMWIxYTJlMzRk
YjM1Y2IyNjFhM2ZiNDkwZjFjNDY1N2Q0ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9fcHl0ZXN0L21hcmsucHkKQEAgLTAsMCArMSw0OTYgQEAKKyIiIiBnZW5lcmljIG1lY2hhbmlz
bSBmb3IgbWFya2luZyBhbmQgc2VsZWN0aW5nIHB5dGhvbiBmdW5jdGlvbnMuICIiIgorZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlv
bgorCitpbXBvcnQgaW5zcGVjdAoraW1wb3J0IHdhcm5pbmdzCitpbXBvcnQgYXR0cgorZnJvbSBj
b2xsZWN0aW9ucyBpbXBvcnQgbmFtZWR0dXBsZQorZnJvbSBvcGVyYXRvciBpbXBvcnQgYXR0cmdl
dHRlcgorZnJvbSBzaXgubW92ZXMgaW1wb3J0IG1hcAorZnJvbSAuZGVwcmVjYXRlZCBpbXBvcnQg
TUFSS19QQVJBTUVURVJTRVRfVU5QQUNLSU5HCitmcm9tIC5jb21wYXQgaW1wb3J0IE5PVFNFVCwg
Z2V0ZnNsaW5lbm8KKworCitkZWYgYWxpYXMobmFtZSwgd2FybmluZz1Ob25lKToKKyAgICBnZXR0
ZXIgPSBhdHRyZ2V0dGVyKG5hbWUpCisKKyAgICBkZWYgd2FybmVkKHNlbGYpOgorICAgICAgICB3
YXJuaW5ncy53YXJuKHdhcm5pbmcsIHN0YWNrbGV2ZWw9MikKKyAgICAgICAgcmV0dXJuIGdldHRl
cihzZWxmKQorCisgICAgcmV0dXJuIHByb3BlcnR5KGdldHRlciBpZiB3YXJuaW5nIGlzIE5vbmUg
ZWxzZSB3YXJuZWQsIGRvYz0nYWxpYXMgZm9yICcgKyBuYW1lKQorCisKK2NsYXNzIFBhcmFtZXRl
clNldChuYW1lZHR1cGxlKCdQYXJhbWV0ZXJTZXQnLCAndmFsdWVzLCBtYXJrcywgaWQnKSk6Cisg
ICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHBhcmFtKGNscywgKnZhbHVlcywgKiprdyk6CisgICAg
ICAgIG1hcmtzID0ga3cucG9wKCdtYXJrcycsICgpKQorICAgICAgICBpZiBpc2luc3RhbmNlKG1h
cmtzLCBNYXJrRGVjb3JhdG9yKToKKyAgICAgICAgICAgIG1hcmtzID0gbWFya3MsCisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShtYXJrcywgKHR1cGxlLCBsaXN0
LCBzZXQpKQorCisgICAgICAgIGRlZiBwYXJhbV9leHRyYWN0X2lkKGlkPU5vbmUpOgorICAgICAg
ICAgICAgcmV0dXJuIGlkCisKKyAgICAgICAgaWQgPSBwYXJhbV9leHRyYWN0X2lkKCoqa3cpCisg
ICAgICAgIHJldHVybiBjbHModmFsdWVzLCBtYXJrcywgaWQpCisKKyAgICBAY2xhc3NtZXRob2QK
KyAgICBkZWYgZXh0cmFjdF9mcm9tKGNscywgcGFyYW1ldGVyc2V0LCBsZWdhY3lfZm9yY2VfdHVw
bGU9RmFsc2UpOgorICAgICAgICAiIiIKKyAgICAgICAgOnBhcmFtIHBhcmFtZXRlcnNldDoKKyAg
ICAgICAgICAgIGEgbGVnYWN5IHN0eWxlIHBhcmFtZXRlcnNldCB0aGF0IG1heSBvciBtYXkgbm90
IGJlIGEgdHVwbGUsCisgICAgICAgICAgICBhbmQgbWF5IG9yIG1heSBub3QgYmUgd3JhcHBlZCBp
bnRvIGEgbWVzcyBvZiBtYXJrIG9iamVjdHMKKworICAgICAgICA6cGFyYW0gbGVnYWN5X2ZvcmNl
X3R1cGxlOgorICAgICAgICAgICAgZW5mb3JjZSB0dXBsZSB3cmFwcGluZyBzbyBzaW5nbGUgYXJn
dW1lbnQgdHVwbGUgdmFsdWVzCisgICAgICAgICAgICBkb24ndCBnZXQgZGVjb21wb3NlZCBhbmQg
YnJlYWsgdGVzdHMKKworICAgICAgICAiIiIKKworICAgICAgICBpZiBpc2luc3RhbmNlKHBhcmFt
ZXRlcnNldCwgY2xzKToKKyAgICAgICAgICAgIHJldHVybiBwYXJhbWV0ZXJzZXQKKyAgICAgICAg
aWYgbm90IGlzaW5zdGFuY2UocGFyYW1ldGVyc2V0LCBNYXJrRGVjb3JhdG9yKSBhbmQgbGVnYWN5
X2ZvcmNlX3R1cGxlOgorICAgICAgICAgICAgcmV0dXJuIGNscy5wYXJhbShwYXJhbWV0ZXJzZXQp
CisKKyAgICAgICAgbmV3bWFya3MgPSBbXQorICAgICAgICBhcmd2YWwgPSBwYXJhbWV0ZXJzZXQK
KyAgICAgICAgd2hpbGUgaXNpbnN0YW5jZShhcmd2YWwsIE1hcmtEZWNvcmF0b3IpOgorICAgICAg
ICAgICAgbmV3bWFya3MuYXBwZW5kKE1hcmtEZWNvcmF0b3IoTWFyaygKKyAgICAgICAgICAgICAg
ICBhcmd2YWwubWFya25hbWUsIGFyZ3ZhbC5hcmdzWzotMV0sIGFyZ3ZhbC5rd2FyZ3MpKSkKKyAg
ICAgICAgICAgIGFyZ3ZhbCA9IGFyZ3ZhbC5hcmdzWy0xXQorICAgICAgICBhc3NlcnQgbm90IGlz
aW5zdGFuY2UoYXJndmFsLCBQYXJhbWV0ZXJTZXQpCisgICAgICAgIGlmIGxlZ2FjeV9mb3JjZV90
dXBsZToKKyAgICAgICAgICAgIGFyZ3ZhbCA9IGFyZ3ZhbCwKKworICAgICAgICBpZiBuZXdtYXJr
czoKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oTUFSS19QQVJBTUVURVJTRVRfVU5QQUNLSU5H
KQorCisgICAgICAgIHJldHVybiBjbHMoYXJndmFsLCBtYXJrcz1uZXdtYXJrcywgaWQ9Tm9uZSkK
KworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBfZm9yX3BhcmFtZXRlcml6ZShjbHMsIGFyZ25h
bWVzLCBhcmd2YWx1ZXMsIGZ1bmN0aW9uKToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoYXJn
bmFtZXMsICh0dXBsZSwgbGlzdCkpOgorICAgICAgICAgICAgYXJnbmFtZXMgPSBbeC5zdHJpcCgp
IGZvciB4IGluIGFyZ25hbWVzLnNwbGl0KCIsIikgaWYgeC5zdHJpcCgpXQorICAgICAgICAgICAg
Zm9yY2VfdHVwbGUgPSBsZW4oYXJnbmFtZXMpID09IDEKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIGZvcmNlX3R1cGxlID0gRmFsc2UKKyAgICAgICAgcGFyYW1ldGVycyA9IFsKKyAgICAgICAg
ICAgIFBhcmFtZXRlclNldC5leHRyYWN0X2Zyb20oeCwgbGVnYWN5X2ZvcmNlX3R1cGxlPWZvcmNl
X3R1cGxlKQorICAgICAgICAgICAgZm9yIHggaW4gYXJndmFsdWVzXQorICAgICAgICBkZWwgYXJn
dmFsdWVzCisKKyAgICAgICAgaWYgbm90IHBhcmFtZXRlcnM6CisgICAgICAgICAgICBmcywgbGlu
ZW5vID0gZ2V0ZnNsaW5lbm8oZnVuY3Rpb24pCisgICAgICAgICAgICByZWFzb24gPSAiZ290IGVt
cHR5IHBhcmFtZXRlciBzZXQgJXIsIGZ1bmN0aW9uICVzIGF0ICVzOiVkIiAlICgKKyAgICAgICAg
ICAgICAgICBhcmduYW1lcywgZnVuY3Rpb24uX19uYW1lX18sIGZzLCBsaW5lbm8pCisgICAgICAg
ICAgICBtYXJrID0gTUFSS19HRU4uc2tpcChyZWFzb249cmVhc29uKQorICAgICAgICAgICAgcGFy
YW1ldGVycy5hcHBlbmQoUGFyYW1ldGVyU2V0KAorICAgICAgICAgICAgICAgIHZhbHVlcz0oTk9U
U0VULCkgKiBsZW4oYXJnbmFtZXMpLAorICAgICAgICAgICAgICAgIG1hcmtzPVttYXJrXSwKKyAg
ICAgICAgICAgICAgICBpZD1Ob25lLAorICAgICAgICAgICAgKSkKKyAgICAgICAgcmV0dXJuIGFy
Z25hbWVzLCBwYXJhbWV0ZXJzCisKKworY2xhc3MgTWFya2VyRXJyb3IoRXhjZXB0aW9uKToKKwor
ICAgICIiIkVycm9yIGluIHVzZSBvZiBhIHB5dGVzdCBtYXJrZXIvYXR0cmlidXRlLiIiIgorCisK
K2RlZiBwYXJhbSgqdmFsdWVzLCAqKmt3KToKKyAgICByZXR1cm4gUGFyYW1ldGVyU2V0LnBhcmFt
KCp2YWx1ZXMsICoqa3cpCisKKworZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKKyAgICBn
cm91cCA9IHBhcnNlci5nZXRncm91cCgiZ2VuZXJhbCIpCisgICAgZ3JvdXAuX2FkZG9wdGlvbigK
KyAgICAgICAgJy1rJywKKyAgICAgICAgYWN0aW9uPSJzdG9yZSIsIGRlc3Q9ImtleXdvcmQiLCBk
ZWZhdWx0PScnLCBtZXRhdmFyPSJFWFBSRVNTSU9OIiwKKyAgICAgICAgaGVscD0ib25seSBydW4g
dGVzdHMgd2hpY2ggbWF0Y2ggdGhlIGdpdmVuIHN1YnN0cmluZyBleHByZXNzaW9uLiAiCisgICAg
ICAgICAgICAgIkFuIGV4cHJlc3Npb24gaXMgYSBweXRob24gZXZhbHVhdGFibGUgZXhwcmVzc2lv
biAiCisgICAgICAgICAgICAgIndoZXJlIGFsbCBuYW1lcyBhcmUgc3Vic3RyaW5nLW1hdGNoZWQg
YWdhaW5zdCB0ZXN0IG5hbWVzICIKKyAgICAgICAgICAgICAiYW5kIHRoZWlyIHBhcmVudCBjbGFz
c2VzLiBFeGFtcGxlOiAtayAndGVzdF9tZXRob2Qgb3IgdGVzdF8iCisgICAgICAgICAgICAgIm90
aGVyJyBtYXRjaGVzIGFsbCB0ZXN0IGZ1bmN0aW9ucyBhbmQgY2xhc3NlcyB3aG9zZSBuYW1lICIK
KyAgICAgICAgICAgICAiY29udGFpbnMgJ3Rlc3RfbWV0aG9kJyBvciAndGVzdF9vdGhlcicsIHdo
aWxlIC1rICdub3QgdGVzdF9tZXRob2QnICIKKyAgICAgICAgICAgICAibWF0Y2hlcyB0aG9zZSB0
aGF0IGRvbid0IGNvbnRhaW4gJ3Rlc3RfbWV0aG9kJyBpbiB0aGVpciBuYW1lcy4gIgorICAgICAg
ICAgICAgICJBZGRpdGlvbmFsbHkga2V5d29yZHMgYXJlIG1hdGNoZWQgdG8gY2xhc3NlcyBhbmQg
ZnVuY3Rpb25zICIKKyAgICAgICAgICAgICAiY29udGFpbmluZyBleHRyYSBuYW1lcyBpbiB0aGVp
ciAnZXh0cmFfa2V5d29yZF9tYXRjaGVzJyBzZXQsICIKKyAgICAgICAgICAgICAiYXMgd2VsbCBh
cyBmdW5jdGlvbnMgd2hpY2ggaGF2ZSBuYW1lcyBhc3NpZ25lZCBkaXJlY3RseSB0byB0aGVtLiIK
KyAgICApCisKKyAgICBncm91cC5fYWRkb3B0aW9uKAorICAgICAgICAiLW0iLAorICAgICAgICBh
Y3Rpb249InN0b3JlIiwgZGVzdD0ibWFya2V4cHIiLCBkZWZhdWx0PSIiLCBtZXRhdmFyPSJNQVJL
RVhQUiIsCisgICAgICAgIGhlbHA9Im9ubHkgcnVuIHRlc3RzIG1hdGNoaW5nIGdpdmVuIG1hcmsg
ZXhwcmVzc2lvbi4gICIKKyAgICAgICAgICAgICAiZXhhbXBsZTogLW0gJ21hcmsxIGFuZCBub3Qg
bWFyazInLiIKKyAgICApCisKKyAgICBncm91cC5hZGRvcHRpb24oCisgICAgICAgICItLW1hcmtl
cnMiLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICBoZWxwPSJzaG93IG1hcmtlcnMgKGJ1
aWx0aW4sIHBsdWdpbiBhbmQgcGVyLXByb2plY3Qgb25lcykuIgorICAgICkKKworICAgIHBhcnNl
ci5hZGRpbmkoIm1hcmtlcnMiLCAibWFya2VycyBmb3IgdGVzdCBmdW5jdGlvbnMiLCAnbGluZWxp
c3QnKQorCisKK2RlZiBweXRlc3RfY21kbGluZV9tYWluKGNvbmZpZyk6CisgICAgaW1wb3J0IF9w
eXRlc3QuY29uZmlnCisgICAgaWYgY29uZmlnLm9wdGlvbi5tYXJrZXJzOgorICAgICAgICBjb25m
aWcuX2RvX2NvbmZpZ3VyZSgpCisgICAgICAgIHR3ID0gX3B5dGVzdC5jb25maWcuY3JlYXRlX3Rl
cm1pbmFsX3dyaXRlcihjb25maWcpCisgICAgICAgIGZvciBsaW5lIGluIGNvbmZpZy5nZXRpbmko
Im1hcmtlcnMiKToKKyAgICAgICAgICAgIHBhcnRzID0gbGluZS5zcGxpdCgiOiIsIDEpCisgICAg
ICAgICAgICBuYW1lID0gcGFydHNbMF0KKyAgICAgICAgICAgIHJlc3QgPSBwYXJ0c1sxXSBpZiBs
ZW4ocGFydHMpID09IDIgZWxzZSAnJworICAgICAgICAgICAgdHcud3JpdGUoIkBweXRlc3QubWFy
ay4lczoiICUgbmFtZSwgYm9sZD1UcnVlKQorICAgICAgICAgICAgdHcubGluZShyZXN0KQorICAg
ICAgICAgICAgdHcubGluZSgpCisgICAgICAgIGNvbmZpZy5fZW5zdXJlX3VuY29uZmlndXJlKCkK
KyAgICAgICAgcmV0dXJuIDAKKworCitweXRlc3RfY21kbGluZV9tYWluLnRyeWZpcnN0ID0gVHJ1
ZQorCisKK2RlZiBweXRlc3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtcyhpdGVtcywgY29uZmlnKToK
KyAgICBrZXl3b3JkZXhwciA9IGNvbmZpZy5vcHRpb24ua2V5d29yZC5sc3RyaXAoKQorICAgIG1h
dGNoZXhwciA9IGNvbmZpZy5vcHRpb24ubWFya2V4cHIKKyAgICBpZiBub3Qga2V5d29yZGV4cHIg
YW5kIG5vdCBtYXRjaGV4cHI6CisgICAgICAgIHJldHVybgorICAgICMgcHl0ZXN0IHVzZWQgdG8g
YWxsb3cgIi0iIGZvciBuZWdhdGluZworICAgICMgYnV0IHRvZGF5IHdlIGp1c3QgYWxsb3cgIi0i
IGF0IHRoZSBiZWdpbm5pbmcsIHVzZSAibm90IiBpbnN0ZWFkCisgICAgIyB3ZSBwcm9iYWJseSBy
ZW1vdmUgIi0iIGFsdG9nZXRoZXIgc29vbgorICAgIGlmIGtleXdvcmRleHByLnN0YXJ0c3dpdGgo
Ii0iKToKKyAgICAgICAga2V5d29yZGV4cHIgPSAibm90ICIgKyBrZXl3b3JkZXhwclsxOl0KKyAg
ICBzZWxlY3R1bnRpbCA9IEZhbHNlCisgICAgaWYga2V5d29yZGV4cHJbLTE6XSA9PSAiOiI6Cisg
ICAgICAgIHNlbGVjdHVudGlsID0gVHJ1ZQorICAgICAgICBrZXl3b3JkZXhwciA9IGtleXdvcmRl
eHByWzotMV0KKworICAgIHJlbWFpbmluZyA9IFtdCisgICAgZGVzZWxlY3RlZCA9IFtdCisgICAg
Zm9yIGNvbGl0ZW0gaW4gaXRlbXM6CisgICAgICAgIGlmIGtleXdvcmRleHByIGFuZCBub3QgbWF0
Y2hrZXl3b3JkKGNvbGl0ZW0sIGtleXdvcmRleHByKToKKyAgICAgICAgICAgIGRlc2VsZWN0ZWQu
YXBwZW5kKGNvbGl0ZW0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBzZWxlY3R1bnRp
bDoKKyAgICAgICAgICAgICAgICBrZXl3b3JkZXhwciA9IE5vbmUKKyAgICAgICAgICAgIGlmIG1h
dGNoZXhwcjoKKyAgICAgICAgICAgICAgICBpZiBub3QgbWF0Y2htYXJrKGNvbGl0ZW0sIG1hdGNo
ZXhwcik6CisgICAgICAgICAgICAgICAgICAgIGRlc2VsZWN0ZWQuYXBwZW5kKGNvbGl0ZW0pCisg
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICByZW1haW5pbmcuYXBwZW5k
KGNvbGl0ZW0pCisKKyAgICBpZiBkZXNlbGVjdGVkOgorICAgICAgICBjb25maWcuaG9vay5weXRl
c3RfZGVzZWxlY3RlZChpdGVtcz1kZXNlbGVjdGVkKQorICAgICAgICBpdGVtc1s6XSA9IHJlbWFp
bmluZworCisKK0BhdHRyLnMKK2NsYXNzIE1hcmtNYXBwaW5nKG9iamVjdCk6CisgICAgIiIiUHJv
dmlkZXMgYSBsb2NhbCBtYXBwaW5nIGZvciBtYXJrZXJzIHdoZXJlIGl0ZW0gYWNjZXNzCisgICAg
cmVzb2x2ZXMgdG8gVHJ1ZSBpZiB0aGUgbWFya2VyIGlzIHByZXNlbnQuICIiIgorCisgICAgb3du
X21hcmtfbmFtZXMgPSBhdHRyLmliKCkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBmcm9t
X2tleXdvcmRzKGNscywga2V5d29yZHMpOgorICAgICAgICBtYXJrX25hbWVzID0gc2V0KCkKKyAg
ICAgICAgZm9yIGtleSwgdmFsdWUgaW4ga2V5d29yZHMuaXRlbXMoKToKKyAgICAgICAgICAgIGlm
IGlzaW5zdGFuY2UodmFsdWUsIE1hcmtJbmZvKSBvciBpc2luc3RhbmNlKHZhbHVlLCBNYXJrRGVj
b3JhdG9yKToKKyAgICAgICAgICAgICAgICBtYXJrX25hbWVzLmFkZChrZXkpCisgICAgICAgIHJl
dHVybiBjbHMobWFya19uYW1lcykKKworICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBuYW1lKToK
KyAgICAgICAgcmV0dXJuIG5hbWUgaW4gc2VsZi5vd25fbWFya19uYW1lcworCisKK2NsYXNzIEtl
eXdvcmRNYXBwaW5nKG9iamVjdCk6CisgICAgIiIiUHJvdmlkZXMgYSBsb2NhbCBtYXBwaW5nIGZv
ciBrZXl3b3Jkcy4KKyAgICBHaXZlbiBhIGxpc3Qgb2YgbmFtZXMsIG1hcCBhbnkgc3Vic3RyaW5n
IG9mIG9uZSBvZiB0aGVzZSBuYW1lcyB0byBUcnVlLgorICAgICIiIgorCisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIG5hbWVzKToKKyAgICAgICAgc2VsZi5fbmFtZXMgPSBuYW1lcworCisgICAgZGVm
IF9fZ2V0aXRlbV9fKHNlbGYsIHN1Ym5hbWUpOgorICAgICAgICBmb3IgbmFtZSBpbiBzZWxmLl9u
YW1lczoKKyAgICAgICAgICAgIGlmIHN1Ym5hbWUgaW4gbmFtZToKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gVHJ1ZQorICAgICAgICByZXR1cm4gRmFsc2UKKworCitkZWYgbWF0Y2htYXJrKGNvbGl0
ZW0sIG1hcmtleHByKToKKyAgICAiIiJUcmllcyB0byBtYXRjaCBvbiBhbnkgbWFya2VyIG5hbWVz
LCBhdHRhY2hlZCB0byB0aGUgZ2l2ZW4gY29saXRlbS4iIiIKKyAgICByZXR1cm4gZXZhbChtYXJr
ZXhwciwge30sIE1hcmtNYXBwaW5nLmZyb21fa2V5d29yZHMoY29saXRlbS5rZXl3b3JkcykpCisK
KworZGVmIG1hdGNoa2V5d29yZChjb2xpdGVtLCBrZXl3b3JkZXhwcik6CisgICAgIiIiVHJpZXMg
dG8gbWF0Y2ggZ2l2ZW4ga2V5d29yZCBleHByZXNzaW9uIHRvIGdpdmVuIGNvbGxlY3RvciBpdGVt
LgorCisgICAgV2lsbCBtYXRjaCBvbiB0aGUgbmFtZSBvZiBjb2xpdGVtLCBpbmNsdWRpbmcgdGhl
IG5hbWVzIG9mIGl0cyBwYXJlbnRzLgorICAgIE9ubHkgbWF0Y2hlcyBuYW1lcyBvZiBpdGVtcyB3
aGljaCBhcmUgZWl0aGVyIGEgOmNsYXNzOmBDbGFzc2Agb3IgYQorICAgIDpjbGFzczpgRnVuY3Rp
b25gLgorICAgIEFkZGl0aW9uYWxseSwgbWF0Y2hlcyBvbiBuYW1lcyBpbiB0aGUgJ2V4dHJhX2tl
eXdvcmRfbWF0Y2hlcycgc2V0IG9mCisgICAgYW55IGl0ZW0sIGFzIHdlbGwgYXMgbmFtZXMgZGly
ZWN0bHkgYXNzaWduZWQgdG8gdGVzdCBmdW5jdGlvbnMuCisgICAgIiIiCisgICAgbWFwcGVkX25h
bWVzID0gc2V0KCkKKworICAgICMgQWRkIHRoZSBuYW1lcyBvZiB0aGUgY3VycmVudCBpdGVtIGFu
ZCBhbnkgcGFyZW50IGl0ZW1zCisgICAgaW1wb3J0IHB5dGVzdAorICAgIGZvciBpdGVtIGluIGNv
bGl0ZW0ubGlzdGNoYWluKCk6CisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGl0ZW0sIHB5dGVz
dC5JbnN0YW5jZSk6CisgICAgICAgICAgICBtYXBwZWRfbmFtZXMuYWRkKGl0ZW0ubmFtZSkKKwor
ICAgICMgQWRkIHRoZSBuYW1lcyBhZGRlZCBhcyBleHRyYSBrZXl3b3JkcyB0byBjdXJyZW50IG9y
IHBhcmVudCBpdGVtcworICAgIGZvciBuYW1lIGluIGNvbGl0ZW0ubGlzdGV4dHJha2V5d29yZHMo
KToKKyAgICAgICAgbWFwcGVkX25hbWVzLmFkZChuYW1lKQorCisgICAgIyBBZGQgdGhlIG5hbWVz
IGF0dGFjaGVkIHRvIHRoZSBjdXJyZW50IGZ1bmN0aW9uIHRocm91Z2ggZGlyZWN0IGFzc2lnbm1l
bnQKKyAgICBpZiBoYXNhdHRyKGNvbGl0ZW0sICdmdW5jdGlvbicpOgorICAgICAgICBmb3IgbmFt
ZSBpbiBjb2xpdGVtLmZ1bmN0aW9uLl9fZGljdF9fOgorICAgICAgICAgICAgbWFwcGVkX25hbWVz
LmFkZChuYW1lKQorCisgICAgbWFwcGluZyA9IEtleXdvcmRNYXBwaW5nKG1hcHBlZF9uYW1lcykK
KyAgICBpZiAiICIgbm90IGluIGtleXdvcmRleHByOgorICAgICAgICAjIHNwZWNpYWwgY2FzZSB0
byBhbGxvdyBmb3Igc2ltcGxlICItayBwYXNzIiBhbmQgIi1rIDEuMyIKKyAgICAgICAgcmV0dXJu
IG1hcHBpbmdba2V5d29yZGV4cHJdCisgICAgZWxpZiBrZXl3b3JkZXhwci5zdGFydHN3aXRoKCJu
b3QgIikgYW5kICIgIiBub3QgaW4ga2V5d29yZGV4cHJbNDpdOgorICAgICAgICByZXR1cm4gbm90
IG1hcHBpbmdba2V5d29yZGV4cHJbNDpdXQorICAgIHJldHVybiBldmFsKGtleXdvcmRleHByLCB7
fSwgbWFwcGluZykKKworCitkZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgorICAgIGNvbmZp
Zy5fb2xkX21hcmtfY29uZmlnID0gTUFSS19HRU4uX2NvbmZpZworICAgIGlmIGNvbmZpZy5vcHRp
b24uc3RyaWN0OgorICAgICAgICBNQVJLX0dFTi5fY29uZmlnID0gY29uZmlnCisKKworZGVmIHB5
dGVzdF91bmNvbmZpZ3VyZShjb25maWcpOgorICAgIE1BUktfR0VOLl9jb25maWcgPSBnZXRhdHRy
KGNvbmZpZywgJ19vbGRfbWFya19jb25maWcnLCBOb25lKQorCisKK2NsYXNzIE1hcmtHZW5lcmF0
b3I6CisgICAgIiIiIEZhY3RvcnkgZm9yIDpjbGFzczpgTWFya0RlY29yYXRvcmAgb2JqZWN0cyAt
IGV4cG9zZWQgYXMKKyAgICBhIGBgcHl0ZXN0Lm1hcmtgYCBzaW5nbGV0b24gaW5zdGFuY2UuICBF
eGFtcGxlOjoKKworICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgQHB5dGVzdC5tYXJr
LnNsb3d0ZXN0CisgICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbigpOgorICAgICAgICAgICAgcGFz
cworCisgICAgd2lsbCBzZXQgYSAnc2xvd3Rlc3QnIDpjbGFzczpgTWFya0luZm9gIG9iamVjdAor
ICAgIG9uIHRoZSBgYHRlc3RfZnVuY3Rpb25gYCBvYmplY3QuICIiIgorICAgIF9jb25maWcgPSBO
b25lCisKKyAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgbmFtZSk6CisgICAgICAgIGlmIG5hbWVb
MF0gPT0gIl8iOgorICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoIk1hcmtlciBuYW1l
IG11c3QgTk9UIHN0YXJ0IHdpdGggdW5kZXJzY29yZSIpCisgICAgICAgIGlmIHNlbGYuX2NvbmZp
ZyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX2NoZWNrKG5hbWUpCisgICAgICAgIHJl
dHVybiBNYXJrRGVjb3JhdG9yKE1hcmsobmFtZSwgKCksIHt9KSkKKworICAgIGRlZiBfY2hlY2so
c2VsZiwgbmFtZSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIG5hbWUgaW4gc2VsZi5f
bWFya2VyczoKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0
ZUVycm9yOgorICAgICAgICAgICAgcGFzcworICAgICAgICBzZWxmLl9tYXJrZXJzID0gdmFsdWVz
ID0gc2V0KCkKKyAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5fY29uZmlnLmdldGluaSgibWFya2Vy
cyIpOgorICAgICAgICAgICAgbWFya2VyID0gbGluZS5zcGxpdCgiOiIsIDEpWzBdCisgICAgICAg
ICAgICBtYXJrZXIgPSBtYXJrZXIucnN0cmlwKCkKKyAgICAgICAgICAgIHggPSBtYXJrZXIuc3Bs
aXQoIigiLCAxKVswXQorICAgICAgICAgICAgdmFsdWVzLmFkZCh4KQorICAgICAgICBpZiBuYW1l
IG5vdCBpbiBzZWxmLl9tYXJrZXJzOgorICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3Io
IiVyIG5vdCBhIHJlZ2lzdGVyZWQgbWFya2VyIiAlIChuYW1lLCkpCisKKworZGVmIGlzdGVzdGZ1
bmMoZnVuYyk6CisgICAgcmV0dXJuIGhhc2F0dHIoZnVuYywgIl9fY2FsbF9fIikgYW5kIFwKKyAg
ICAgICAgZ2V0YXR0cihmdW5jLCAiX19uYW1lX18iLCAiPGxhbWJkYT4iKSAhPSAiPGxhbWJkYT4i
CisKKworQGF0dHIucyhmcm96ZW49VHJ1ZSkKK2NsYXNzIE1hcmsob2JqZWN0KToKKyAgICBuYW1l
ID0gYXR0ci5pYigpCisgICAgYXJncyA9IGF0dHIuaWIoKQorICAgIGt3YXJncyA9IGF0dHIuaWIo
KQorCisgICAgZGVmIGNvbWJpbmVkX3dpdGgoc2VsZiwgb3RoZXIpOgorICAgICAgICBhc3NlcnQg
c2VsZi5uYW1lID09IG90aGVyLm5hbWUKKyAgICAgICAgcmV0dXJuIE1hcmsoCisgICAgICAgICAg
ICBzZWxmLm5hbWUsIHNlbGYuYXJncyArIG90aGVyLmFyZ3MsCisgICAgICAgICAgICBkaWN0KHNl
bGYua3dhcmdzLCAqKm90aGVyLmt3YXJncykpCisKKworQGF0dHIucworY2xhc3MgTWFya0RlY29y
YXRvcihvYmplY3QpOgorICAgICIiIiBBIGRlY29yYXRvciBmb3IgdGVzdCBmdW5jdGlvbnMgYW5k
IHRlc3QgY2xhc3Nlcy4gIFdoZW4gYXBwbGllZAorICAgIGl0IHdpbGwgY3JlYXRlIDpjbGFzczpg
TWFya0luZm9gIG9iamVjdHMgd2hpY2ggbWF5IGJlCisgICAgOnJlZjpgcmV0cmlldmVkIGJ5IGhv
b2tzIGFzIGl0ZW0ga2V5d29yZHMgPGV4Y29udHJvbHNraXA+YC4KKyAgICBNYXJrRGVjb3JhdG9y
IGluc3RhbmNlcyBhcmUgb2Z0ZW4gY3JlYXRlZCBsaWtlIHRoaXM6OgorCisgICAgICAgIG1hcmsx
ID0gcHl0ZXN0Lm1hcmsuTkFNRSAgICAgICAgICAgICAgIyBzaW1wbGUgTWFya0RlY29yYXRvcgor
ICAgICAgICBtYXJrMiA9IHB5dGVzdC5tYXJrLk5BTUUobmFtZTE9dmFsdWUpICMgcGFyYW1ldHJp
emVkIE1hcmtEZWNvcmF0b3IKKworICAgIGFuZCBjYW4gdGhlbiBiZSBhcHBsaWVkIGFzIGRlY29y
YXRvcnMgdG8gdGVzdCBmdW5jdGlvbnM6OgorCisgICAgICAgIEBtYXJrMgorICAgICAgICBkZWYg
dGVzdF9mdW5jdGlvbigpOgorICAgICAgICAgICAgcGFzcworCisgICAgV2hlbiBhIE1hcmtEZWNv
cmF0b3IgaW5zdGFuY2UgaXMgY2FsbGVkIGl0IGRvZXMgdGhlIGZvbGxvd2luZzoKKyAgICAgIDEu
IElmIGNhbGxlZCB3aXRoIGEgc2luZ2xlIGNsYXNzIGFzIGl0cyBvbmx5IHBvc2l0aW9uYWwgYXJn
dW1lbnQgYW5kIG5vCisgICAgICAgICBhZGRpdGlvbmFsIGtleXdvcmQgYXJndW1lbnRzLCBpdCBh
dHRhY2hlcyBpdHNlbGYgdG8gdGhlIGNsYXNzIHNvIGl0CisgICAgICAgICBnZXRzIGFwcGxpZWQg
YXV0b21hdGljYWxseSB0byBhbGwgdGVzdCBjYXNlcyBmb3VuZCBpbiB0aGF0IGNsYXNzLgorICAg
ICAgMi4gSWYgY2FsbGVkIHdpdGggYSBzaW5nbGUgZnVuY3Rpb24gYXMgaXRzIG9ubHkgcG9zaXRp
b25hbCBhcmd1bWVudCBhbmQKKyAgICAgICAgIG5vIGFkZGl0aW9uYWwga2V5d29yZCBhcmd1bWVu
dHMsIGl0IGF0dGFjaGVzIGEgTWFya0luZm8gb2JqZWN0IHRvIHRoZQorICAgICAgICAgZnVuY3Rp
b24sIGNvbnRhaW5pbmcgYWxsIHRoZSBhcmd1bWVudHMgYWxyZWFkeSBzdG9yZWQgaW50ZXJuYWxs
eSBpbgorICAgICAgICAgdGhlIE1hcmtEZWNvcmF0b3IuCisgICAgICAzLiBXaGVuIGNhbGxlZCBp
biBhbnkgb3RoZXIgY2FzZSwgaXQgcGVyZm9ybXMgYSAnZmFrZSBjb25zdHJ1Y3Rpb24nIGNhbGws
CisgICAgICAgICBpLmUuIGl0IHJldHVybnMgYSBuZXcgTWFya0RlY29yYXRvciBpbnN0YW5jZSB3
aXRoIHRoZSBvcmlnaW5hbAorICAgICAgICAgTWFya0RlY29yYXRvcidzIGNvbnRlbnQgdXBkYXRl
ZCB3aXRoIHRoZSBhcmd1bWVudHMgcGFzc2VkIHRvIHRoaXMKKyAgICAgICAgIGNhbGwuCisKKyAg
ICBOb3RlOiBUaGUgcnVsZXMgYWJvdmUgcHJldmVudCBNYXJrRGVjb3JhdG9yIG9iamVjdHMgZnJv
bSBzdG9yaW5nIG9ubHkgYQorICAgIHNpbmdsZSBmdW5jdGlvbiBvciBjbGFzcyByZWZlcmVuY2Ug
YXMgdGhlaXIgcG9zaXRpb25hbCBhcmd1bWVudCB3aXRoIG5vCisgICAgYWRkaXRpb25hbCBrZXl3
b3JkIG9yIHBvc2l0aW9uYWwgYXJndW1lbnRzLgorCisgICAgIiIiCisKKyAgICBtYXJrID0gYXR0
ci5pYih2YWxpZGF0b3I9YXR0ci52YWxpZGF0b3JzLmluc3RhbmNlX29mKE1hcmspKQorCisgICAg
bmFtZSA9IGFsaWFzKCdtYXJrLm5hbWUnKQorICAgIGFyZ3MgPSBhbGlhcygnbWFyay5hcmdzJykK
KyAgICBrd2FyZ3MgPSBhbGlhcygnbWFyay5rd2FyZ3MnKQorCisgICAgQHByb3BlcnR5CisgICAg
ZGVmIG1hcmtuYW1lKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5uYW1lICAjIGZvciBiYWNr
d2FyZC1jb21wYXQgKDIuNC4xIGhhZCB0aGlzIGF0dHIpCisKKyAgICBkZWYgX19lcV9fKHNlbGYs
IG90aGVyKToKKyAgICAgICAgcmV0dXJuIHNlbGYubWFyayA9PSBvdGhlci5tYXJrIGlmIGlzaW5z
dGFuY2Uob3RoZXIsIE1hcmtEZWNvcmF0b3IpIGVsc2UgRmFsc2UKKworICAgIGRlZiBfX3JlcHJf
XyhzZWxmKToKKyAgICAgICAgcmV0dXJuICI8TWFya0RlY29yYXRvciAlcj4iICUgKHNlbGYubWFy
aywpCisKKyAgICBkZWYgd2l0aF9hcmdzKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAg
ICIiIiByZXR1cm4gYSBNYXJrRGVjb3JhdG9yIHdpdGggZXh0cmEgYXJndW1lbnRzIGFkZGVkCisK
KyAgICAgICAgdW5saWtlIGNhbGwgdGhpcyBjYW4gYmUgdXNlZCBldmVuIGlmIHRoZSBzb2xlIGFy
Z3VtZW50IGlzIGEgY2FsbGFibGUvY2xhc3MKKworICAgICAgICA6cmV0dXJuOiBNYXJrRGVjb3Jh
dG9yCisgICAgICAgICIiIgorCisgICAgICAgIG1hcmsgPSBNYXJrKHNlbGYubmFtZSwgYXJncywg
a3dhcmdzKQorICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18oc2VsZi5tYXJrLmNvbWJpbmVk
X3dpdGgobWFyaykpCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToK
KyAgICAgICAgIiIiIGlmIHBhc3NlZCBhIHNpbmdsZSBjYWxsYWJsZSBhcmd1bWVudDogZGVjb3Jh
dGUgaXQgd2l0aCBtYXJrIGluZm8uCisgICAgICAgICAgICBvdGhlcndpc2UgYWRkICphcmdzLyoq
a3dhcmdzIGluLXBsYWNlIHRvIG1hcmsgaW5mb3JtYXRpb24uICIiIgorICAgICAgICBpZiBhcmdz
IGFuZCBub3Qga3dhcmdzOgorICAgICAgICAgICAgZnVuYyA9IGFyZ3NbMF0KKyAgICAgICAgICAg
IGlzX2NsYXNzID0gaW5zcGVjdC5pc2NsYXNzKGZ1bmMpCisgICAgICAgICAgICBpZiBsZW4oYXJn
cykgPT0gMSBhbmQgKGlzdGVzdGZ1bmMoZnVuYykgb3IgaXNfY2xhc3MpOgorICAgICAgICAgICAg
ICAgIGlmIGlzX2NsYXNzOgorICAgICAgICAgICAgICAgICAgICBzdG9yZV9tYXJrKGZ1bmMsIHNl
bGYubWFyaykKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBzdG9y
ZV9sZWdhY3lfbWFya2luZm8oZnVuYywgc2VsZi5tYXJrKQorICAgICAgICAgICAgICAgICAgICBz
dG9yZV9tYXJrKGZ1bmMsIHNlbGYubWFyaykKKyAgICAgICAgICAgICAgICByZXR1cm4gZnVuYwor
ICAgICAgICByZXR1cm4gc2VsZi53aXRoX2FyZ3MoKmFyZ3MsICoqa3dhcmdzKQorCisKK2RlZiBn
ZXRfdW5wYWNrZWRfbWFya3Mob2JqKToKKyAgICAiIiIKKyAgICBvYnRhaW4gdGhlIHVucGFja2Vk
IG1hcmtzIHRoYXQgYXJlIHN0b3JlZCBvbiBhIG9iamVjdAorICAgICIiIgorICAgIG1hcmtfbGlz
dCA9IGdldGF0dHIob2JqLCAncHl0ZXN0bWFyaycsIFtdKQorCisgICAgaWYgbm90IGlzaW5zdGFu
Y2UobWFya19saXN0LCBsaXN0KToKKyAgICAgICAgbWFya19saXN0ID0gW21hcmtfbGlzdF0KKyAg
ICByZXR1cm4gWworICAgICAgICBnZXRhdHRyKG1hcmssICdtYXJrJywgbWFyaykgICMgdW5wYWNr
IE1hcmtEZWNvcmF0b3IKKyAgICAgICAgZm9yIG1hcmsgaW4gbWFya19saXN0CisgICAgXQorCisK
K2RlZiBzdG9yZV9tYXJrKG9iaiwgbWFyayk6CisgICAgIiIic3RvcmUgYSBNYXJrIG9uIGEgb2Jq
ZWN0CisgICAgdGhpcyBpcyB1c2VkIHRvIGltcGxlbWVudCB0aGUgTWFyayBkZWNsYXJhdGlvbnMv
ZGVjb3JhdG9ycyBjb3JyZWN0bHkKKyAgICAiIiIKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShtYXJr
LCBNYXJrKSwgbWFyaworICAgICMgYWx3YXlzIHJlYXNzaWduIG5hbWUgdG8gYXZvaWQgdXBkYXRp
bmcgcHl0ZXN0bWFyaworICAgICMgaW4gYSByZWZlcmVuY2UgdGhhdCB3YXMgb25seSBib3Jyb3dl
ZAorICAgIG9iai5weXRlc3RtYXJrID0gZ2V0X3VucGFja2VkX21hcmtzKG9iaikgKyBbbWFya10K
KworCitkZWYgc3RvcmVfbGVnYWN5X21hcmtpbmZvKGZ1bmMsIG1hcmspOgorICAgICIiImNyZWF0
ZSB0aGUgbGVnYWN5IE1hcmtJbmZvIG9iamVjdHMgYW5kIHB1dCB0aGVtIG9udG8gdGhlIGZ1bmN0
aW9uCisgICAgIiIiCisgICAgaWYgbm90IGlzaW5zdGFuY2UobWFyaywgTWFyayk6CisgICAgICAg
IHJhaXNlIFR5cGVFcnJvcigiZ290IHttYXJrIXJ9IGluc3RlYWQgb2YgYSBNYXJrIi5mb3JtYXQo
bWFyaz1tYXJrKSkKKyAgICBob2xkZXIgPSBnZXRhdHRyKGZ1bmMsIG1hcmsubmFtZSwgTm9uZSkK
KyAgICBpZiBob2xkZXIgaXMgTm9uZToKKyAgICAgICAgaG9sZGVyID0gTWFya0luZm8obWFyaykK
KyAgICAgICAgc2V0YXR0cihmdW5jLCBtYXJrLm5hbWUsIGhvbGRlcikKKyAgICBlbHNlOgorICAg
ICAgICBob2xkZXIuYWRkX21hcmsobWFyaykKKworCitjbGFzcyBNYXJrSW5mbyhvYmplY3QpOgor
ICAgICIiIiBNYXJraW5nIG9iamVjdCBjcmVhdGVkIGJ5IDpjbGFzczpgTWFya0RlY29yYXRvcmAg
aW5zdGFuY2VzLiAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtYXJrKToKKyAgICAgICAg
YXNzZXJ0IGlzaW5zdGFuY2UobWFyaywgTWFyayksIHJlcHIobWFyaykKKyAgICAgICAgc2VsZi5j
b21iaW5lZCA9IG1hcmsKKyAgICAgICAgc2VsZi5fbWFya3MgPSBbbWFya10KKworICAgIG5hbWUg
PSBhbGlhcygnY29tYmluZWQubmFtZScpCisgICAgYXJncyA9IGFsaWFzKCdjb21iaW5lZC5hcmdz
JykKKyAgICBrd2FyZ3MgPSBhbGlhcygnY29tYmluZWQua3dhcmdzJykKKworICAgIGRlZiBfX3Jl
cHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICI8TWFya0luZm8gezAhcn0+Ii5mb3JtYXQoc2Vs
Zi5jb21iaW5lZCkKKworICAgIGRlZiBhZGRfbWFyayhzZWxmLCBtYXJrKToKKyAgICAgICAgIiIi
IGFkZCBhIE1hcmtJbmZvIHdpdGggdGhlIGdpdmVuIGFyZ3MgYW5kIGt3YXJncy4gIiIiCisgICAg
ICAgIHNlbGYuX21hcmtzLmFwcGVuZChtYXJrKQorICAgICAgICBzZWxmLmNvbWJpbmVkID0gc2Vs
Zi5jb21iaW5lZC5jb21iaW5lZF93aXRoKG1hcmspCisKKyAgICBkZWYgX19pdGVyX18oc2VsZik6
CisgICAgICAgICIiIiB5aWVsZCBNYXJrSW5mbyBvYmplY3RzIGVhY2ggcmVsYXRpbmcgdG8gYSBt
YXJraW5nLWNhbGwuICIiIgorICAgICAgICByZXR1cm4gbWFwKE1hcmtJbmZvLCBzZWxmLl9tYXJr
cykKKworCitNQVJLX0dFTiA9IE1hcmtHZW5lcmF0b3IoKQorCisKK2RlZiBfbWFya2VkKGZ1bmMs
IG1hcmspOgorICAgICIiIiBSZXR1cm5zIFRydWUgaWYgOmZ1bmM6IGlzIGFscmVhZHkgbWFya2Vk
IHdpdGggOm1hcms6LCBGYWxzZSBvdGhlcndpc2UuCisgICAgVGhpcyBjYW4gaGFwcGVuIGlmIG1h
cmtlciBpcyBhcHBsaWVkIHRvIGNsYXNzIGFuZCB0aGUgdGVzdCBmaWxlIGlzCisgICAgaW52b2tl
ZCBtb3JlIHRoYW4gb25jZS4KKyAgICAiIiIKKyAgICB0cnk6CisgICAgICAgIGZ1bmNfbWFyayA9
IGdldGF0dHIoZnVuYywgbWFyay5uYW1lKQorICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAg
ICAgICAgcmV0dXJuIEZhbHNlCisgICAgcmV0dXJuIG1hcmsuYXJncyA9PSBmdW5jX21hcmsuYXJn
cyBhbmQgbWFyay5rd2FyZ3MgPT0gZnVuY19tYXJrLmt3YXJncworCisKK2RlZiB0cmFuc2Zlcl9t
YXJrZXJzKGZ1bmNvYmosIGNscywgbW9kKToKKyAgICAiIiIKKyAgICB0aGlzIGZ1bmN0aW9uIHRy
YW5zZmVycyBjbGFzcyBsZXZlbCBtYXJrZXJzIGFuZCBtb2R1bGUgbGV2ZWwgbWFya2VycworICAg
IGludG8gZnVuY3Rpb24gbGV2ZWwgbWFya2luZm8gb2JqZWN0cworCisgICAgdGhpcyBpcyB0aGUg
bWFpbiByZWFzb24gd2h5IG1hcmtzIGFyZSBzbyBicm9rZW4KKyAgICB0aGUgcmVzb2x1dGlvbiB3
aWxsIGludm9sdmUgcGhhc2luZyBvdXQgZnVuY3Rpb24gbGV2ZWwgTWFya0luZm8gb2JqZWN0cwor
CisgICAgIiIiCisgICAgZm9yIG9iaiBpbiAoY2xzLCBtb2QpOgorICAgICAgICBmb3IgbWFyayBp
biBnZXRfdW5wYWNrZWRfbWFya3Mob2JqKToKKyAgICAgICAgICAgIGlmIG5vdCBfbWFya2VkKGZ1
bmNvYmosIG1hcmspOgorICAgICAgICAgICAgICAgIHN0b3JlX2xlZ2FjeV9tYXJraW5mbyhmdW5j
b2JqLCBtYXJrKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9tb25rZXlwYXRjaC5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L19weXRlc3QvbW9ua2V5cGF0Y2gucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDBhZTU2
MGYwNzAyYjEzNjBhMzA5ZDkxNDczMDI5MDNiMTE3NGU2YwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L19weXRlc3QvbW9ua2V5cGF0Y2gucHkKQEAgLTAsMCArMSwyNTggQEAKKyIiIiBt
b25rZXlwYXRjaGluZyBhbmQgbW9ja2luZyBmdW5jdGlvbmFsaXR5LiAgIiIiCitmcm9tIF9fZnV0
dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCisK
K2ltcG9ydCBvcworaW1wb3J0IHN5cworaW1wb3J0IHJlCitpbXBvcnQgc2l4Citmcm9tIF9weXRl
c3QuZml4dHVyZXMgaW1wb3J0IGZpeHR1cmUKKworUkVfSU1QT1JUX0VSUk9SX05BTUUgPSByZS5j
b21waWxlKCJeTm8gbW9kdWxlIG5hbWVkICguKikkIikKKworCitAZml4dHVyZQorZGVmIG1vbmtl
eXBhdGNoKCk6CisgICAgIiIiVGhlIHJldHVybmVkIGBgbW9ua2V5cGF0Y2hgYCBmaXh0dXJlIHBy
b3ZpZGVzIHRoZXNlCisgICAgaGVscGVyIG1ldGhvZHMgdG8gbW9kaWZ5IG9iamVjdHMsIGRpY3Rp
b25hcmllcyBvciBvcy5lbnZpcm9uOjoKKworICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG9i
aiwgbmFtZSwgdmFsdWUsIHJhaXNpbmc9VHJ1ZSkKKyAgICAgICAgbW9ua2V5cGF0Y2guZGVsYXR0
cihvYmosIG5hbWUsIHJhaXNpbmc9VHJ1ZSkKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0aXRlbSht
YXBwaW5nLCBuYW1lLCB2YWx1ZSkKKyAgICAgICAgbW9ua2V5cGF0Y2guZGVsaXRlbShvYmosIG5h
bWUsIHJhaXNpbmc9VHJ1ZSkKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KG5hbWUsIHZhbHVl
LCBwcmVwZW5kPUZhbHNlKQorICAgICAgICBtb25rZXlwYXRjaC5kZWxlbnYobmFtZSwgdmFsdWUs
IHJhaXNpbmc9VHJ1ZSkKKyAgICAgICAgbW9ua2V5cGF0Y2guc3lzcGF0aF9wcmVwZW5kKHBhdGgp
CisgICAgICAgIG1vbmtleXBhdGNoLmNoZGlyKHBhdGgpCisKKyAgICBBbGwgbW9kaWZpY2F0aW9u
cyB3aWxsIGJlIHVuZG9uZSBhZnRlciB0aGUgcmVxdWVzdGluZworICAgIHRlc3QgZnVuY3Rpb24g
b3IgZml4dHVyZSBoYXMgZmluaXNoZWQuIFRoZSBgYHJhaXNpbmdgYAorICAgIHBhcmFtZXRlciBk
ZXRlcm1pbmVzIGlmIGEgS2V5RXJyb3Igb3IgQXR0cmlidXRlRXJyb3IKKyAgICB3aWxsIGJlIHJh
aXNlZCBpZiB0aGUgc2V0L2RlbGV0aW9uIG9wZXJhdGlvbiBoYXMgbm8gdGFyZ2V0LgorICAgICIi
IgorICAgIG1wYXRjaCA9IE1vbmtleVBhdGNoKCkKKyAgICB5aWVsZCBtcGF0Y2gKKyAgICBtcGF0
Y2gudW5kbygpCisKKworZGVmIHJlc29sdmUobmFtZSk6CisgICAgIyBzaW1wbGlmaWVkIGZyb20g
em9wZS5kb3R0ZWRuYW1lCisgICAgcGFydHMgPSBuYW1lLnNwbGl0KCcuJykKKworICAgIHVzZWQg
PSBwYXJ0cy5wb3AoMCkKKyAgICBmb3VuZCA9IF9faW1wb3J0X18odXNlZCkKKyAgICBmb3IgcGFy
dCBpbiBwYXJ0czoKKyAgICAgICAgdXNlZCArPSAnLicgKyBwYXJ0CisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIGZvdW5kID0gZ2V0YXR0cihmb3VuZCwgcGFydCkKKyAgICAgICAgZXhjZXB0IEF0
dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgcGFzcworICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgY29udGludWUKKyAgICAgICAgIyB3ZSB1c2UgZXhwbGljaXQgdW4tbmVzdGluZyBvZiB0aGUg
aGFuZGxpbmcgYmxvY2sgaW4gb3JkZXIKKyAgICAgICAgIyB0byBhdm9pZCBuZXN0ZWQgZXhjZXB0
aW9ucyBvbiBweXRob24gMworICAgICAgICB0cnk6CisgICAgICAgICAgICBfX2ltcG9ydF9fKHVz
ZWQpCisgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvciBhcyBleDoKKyAgICAgICAgICAgICMgc3Ry
IGlzIHVzZWQgZm9yIHB5MiB2cyBweTMKKyAgICAgICAgICAgIGV4cGVjdGVkID0gc3RyKGV4KS5z
cGxpdCgpWy0xXQorICAgICAgICAgICAgaWYgZXhwZWN0ZWQgPT0gdXNlZDoKKyAgICAgICAgICAg
ICAgICByYWlzZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBJbXBv
cnRFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgJ2ltcG9ydCBlcnJvciBpbiAlczogJXMnICUg
KHVzZWQsIGV4KQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgZm91bmQgPSBhbm5vdGF0ZWRf
Z2V0YXR0cihmb3VuZCwgcGFydCwgdXNlZCkKKyAgICByZXR1cm4gZm91bmQKKworCitkZWYgYW5u
b3RhdGVkX2dldGF0dHIob2JqLCBuYW1lLCBhbm4pOgorICAgIHRyeToKKyAgICAgICAgb2JqID0g
Z2V0YXR0cihvYmosIG5hbWUpCisgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICBy
YWlzZSBBdHRyaWJ1dGVFcnJvcigKKyAgICAgICAgICAgICclciBvYmplY3QgYXQgJXMgaGFzIG5v
IGF0dHJpYnV0ZSAlcicgJSAoCisgICAgICAgICAgICAgICAgdHlwZShvYmopLl9fbmFtZV9fLCBh
bm4sIG5hbWUKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorICAgIHJldHVybiBvYmoKKworCitk
ZWYgZGVyaXZlX2ltcG9ydHBhdGgoaW1wb3J0X3BhdGgsIHJhaXNpbmcpOgorICAgIGlmIG5vdCBp
c2luc3RhbmNlKGltcG9ydF9wYXRoLCBzaXguc3RyaW5nX3R5cGVzKSBvciAiLiIgbm90IGluIGlt
cG9ydF9wYXRoOgorICAgICAgICByYWlzZSBUeXBlRXJyb3IoIm11c3QgYmUgYWJzb2x1dGUgaW1w
b3J0IHBhdGggc3RyaW5nLCBub3QgJXIiICUKKyAgICAgICAgICAgICAgICAgICAgICAgIChpbXBv
cnRfcGF0aCwpKQorICAgIG1vZHVsZSwgYXR0ciA9IGltcG9ydF9wYXRoLnJzcGxpdCgnLicsIDEp
CisgICAgdGFyZ2V0ID0gcmVzb2x2ZShtb2R1bGUpCisgICAgaWYgcmFpc2luZzoKKyAgICAgICAg
YW5ub3RhdGVkX2dldGF0dHIodGFyZ2V0LCBhdHRyLCBhbm49bW9kdWxlKQorICAgIHJldHVybiBh
dHRyLCB0YXJnZXQKKworCitjbGFzcyBOb3RzZXQ6CisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgor
ICAgICAgICByZXR1cm4gIjxub3RzZXQ+IgorCisKK25vdHNldCA9IE5vdHNldCgpCisKKworY2xh
c3MgTW9ua2V5UGF0Y2g6CisgICAgIiIiIE9iamVjdCByZXR1cm5lZCBieSB0aGUgYGBtb25rZXlw
YXRjaGBgIGZpeHR1cmUga2VlcGluZyBhIHJlY29yZCBvZiBzZXRhdHRyL2l0ZW0vZW52L3N5c3Bh
dGggY2hhbmdlcy4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAg
c2VsZi5fc2V0YXR0ciA9IFtdCisgICAgICAgIHNlbGYuX3NldGl0ZW0gPSBbXQorICAgICAgICBz
ZWxmLl9jd2QgPSBOb25lCisgICAgICAgIHNlbGYuX3NhdmVzeXNwYXRoID0gTm9uZQorCisgICAg
ZGVmIHNldGF0dHIoc2VsZiwgdGFyZ2V0LCBuYW1lLCB2YWx1ZT1ub3RzZXQsIHJhaXNpbmc9VHJ1
ZSk6CisgICAgICAgICIiIiBTZXQgYXR0cmlidXRlIHZhbHVlIG9uIHRhcmdldCwgbWVtb3Jpemlu
ZyB0aGUgb2xkIHZhbHVlLgorICAgICAgICBCeSBkZWZhdWx0IHJhaXNlIEF0dHJpYnV0ZUVycm9y
IGlmIHRoZSBhdHRyaWJ1dGUgZGlkIG5vdCBleGlzdC4KKworICAgICAgICBGb3IgY29udmVuaWVu
Y2UgeW91IGNhbiBzcGVjaWZ5IGEgc3RyaW5nIGFzIGBgdGFyZ2V0YGAgd2hpY2gKKyAgICAgICAg
d2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhIGRvdHRlZCBpbXBvcnQgcGF0aCwgd2l0aCB0aGUgbGFz
dCBwYXJ0CisgICAgICAgIGJlaW5nIHRoZSBhdHRyaWJ1dGUgbmFtZS4gIEV4YW1wbGU6CisgICAg
ICAgIGBgbW9ua2V5cGF0Y2guc2V0YXR0cigib3MuZ2V0Y3dkIiwgbGFtYmRhIHg6ICIvIilgYAor
ICAgICAgICB3b3VsZCBzZXQgdGhlIGBgZ2V0Y3dkYGAgZnVuY3Rpb24gb2YgdGhlIGBgb3NgYCBt
b2R1bGUuCisKKyAgICAgICAgVGhlIGBgcmFpc2luZ2BgIHZhbHVlIGRldGVybWluZXMgaWYgdGhl
IHNldGF0dHIgc2hvdWxkIGZhaWwKKyAgICAgICAgaWYgdGhlIGF0dHJpYnV0ZSBpcyBub3QgYWxy
ZWFkeSBwcmVzZW50IChkZWZhdWx0cyB0byBUcnVlCisgICAgICAgIHdoaWNoIG1lYW5zIGl0IHdp
bGwgcmFpc2UpLgorICAgICAgICAiIiIKKyAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVl
CisgICAgICAgIGltcG9ydCBpbnNwZWN0CisKKyAgICAgICAgaWYgdmFsdWUgaXMgbm90c2V0Ogor
ICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodGFyZ2V0LCBzaXguc3RyaW5nX3R5cGVzKToK
KyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoInVzZSBzZXRhdHRyKHRhcmdldCwgbmFt
ZSwgdmFsdWUpIG9yICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNldGF0dHIo
dGFyZ2V0LCB2YWx1ZSkgd2l0aCB0YXJnZXQgYmVpbmcgYSBkb3R0ZWQgIgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiaW1wb3J0IHN0cmluZyIpCisgICAgICAgICAgICB2YWx1ZSA9
IG5hbWUKKyAgICAgICAgICAgIG5hbWUsIHRhcmdldCA9IGRlcml2ZV9pbXBvcnRwYXRoKHRhcmdl
dCwgcmFpc2luZykKKworICAgICAgICBvbGR2YWwgPSBnZXRhdHRyKHRhcmdldCwgbmFtZSwgbm90
c2V0KQorICAgICAgICBpZiByYWlzaW5nIGFuZCBvbGR2YWwgaXMgbm90c2V0OgorICAgICAgICAg
ICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoIiVyIGhhcyBubyBhdHRyaWJ1dGUgJXIiICUgKHRhcmdl
dCwgbmFtZSkpCisKKyAgICAgICAgIyBhdm9pZCBjbGFzcyBkZXNjcmlwdG9ycyBsaWtlIHN0YXRp
Y21ldGhvZC9jbGFzc21ldGhvZAorICAgICAgICBpZiBpbnNwZWN0LmlzY2xhc3ModGFyZ2V0KToK
KyAgICAgICAgICAgIG9sZHZhbCA9IHRhcmdldC5fX2RpY3RfXy5nZXQobmFtZSwgbm90c2V0KQor
ICAgICAgICBzZWxmLl9zZXRhdHRyLmFwcGVuZCgodGFyZ2V0LCBuYW1lLCBvbGR2YWwpKQorICAg
ICAgICBzZXRhdHRyKHRhcmdldCwgbmFtZSwgdmFsdWUpCisKKyAgICBkZWYgZGVsYXR0cihzZWxm
LCB0YXJnZXQsIG5hbWU9bm90c2V0LCByYWlzaW5nPVRydWUpOgorICAgICAgICAiIiIgRGVsZXRl
IGF0dHJpYnV0ZSBgYG5hbWVgYCBmcm9tIGBgdGFyZ2V0YGAsIGJ5IGRlZmF1bHQgcmFpc2UKKyAg
ICAgICAgQXR0cmlidXRlRXJyb3IgaXQgdGhlIGF0dHJpYnV0ZSBkaWQgbm90IHByZXZpb3VzbHkg
ZXhpc3QuCisKKyAgICAgICAgSWYgbm8gYGBuYW1lYGAgaXMgc3BlY2lmaWVkIGFuZCBgYHRhcmdl
dGBgIGlzIGEgc3RyaW5nCisgICAgICAgIGl0IHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYSBkb3R0
ZWQgaW1wb3J0IHBhdGggd2l0aCB0aGUKKyAgICAgICAgbGFzdCBwYXJ0IGJlaW5nIHRoZSBhdHRy
aWJ1dGUgbmFtZS4KKworICAgICAgICBJZiBgYHJhaXNpbmdgYCBpcyBzZXQgdG8gRmFsc2UsIG5v
IGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCBpZiB0aGUKKyAgICAgICAgYXR0cmlidXRlIGlzIG1p
c3NpbmcuCisgICAgICAgICIiIgorICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKKyAg
ICAgICAgaWYgbmFtZSBpcyBub3RzZXQ6CisgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh0
YXJnZXQsIHNpeC5zdHJpbmdfdHlwZXMpOgorICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJv
cigidXNlIGRlbGF0dHIodGFyZ2V0LCBuYW1lKSBvciAiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJkZWxhdHRyKHRhcmdldCkgd2l0aCB0YXJnZXQgYmVpbmcgYSBkb3R0ZWQgIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW1wb3J0IHN0cmluZyIpCisgICAgICAg
ICAgICBuYW1lLCB0YXJnZXQgPSBkZXJpdmVfaW1wb3J0cGF0aCh0YXJnZXQsIHJhaXNpbmcpCisK
KyAgICAgICAgaWYgbm90IGhhc2F0dHIodGFyZ2V0LCBuYW1lKToKKyAgICAgICAgICAgIGlmIHJh
aXNpbmc6CisgICAgICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IobmFtZSkKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX3NldGF0dHIuYXBwZW5kKCh0YXJnZXQsIG5hbWUs
IGdldGF0dHIodGFyZ2V0LCBuYW1lLCBub3RzZXQpKSkKKyAgICAgICAgICAgIGRlbGF0dHIodGFy
Z2V0LCBuYW1lKQorCisgICAgZGVmIHNldGl0ZW0oc2VsZiwgZGljLCBuYW1lLCB2YWx1ZSk6Cisg
ICAgICAgICIiIiBTZXQgZGljdGlvbmFyeSBlbnRyeSBgYG5hbWVgYCB0byB2YWx1ZS4gIiIiCisg
ICAgICAgIHNlbGYuX3NldGl0ZW0uYXBwZW5kKChkaWMsIG5hbWUsIGRpYy5nZXQobmFtZSwgbm90
c2V0KSkpCisgICAgICAgIGRpY1tuYW1lXSA9IHZhbHVlCisKKyAgICBkZWYgZGVsaXRlbShzZWxm
LCBkaWMsIG5hbWUsIHJhaXNpbmc9VHJ1ZSk6CisgICAgICAgICIiIiBEZWxldGUgYGBuYW1lYGAg
ZnJvbSBkaWN0LiBSYWlzZSBLZXlFcnJvciBpZiBpdCBkb2Vzbid0IGV4aXN0LgorCisgICAgICAg
IElmIGBgcmFpc2luZ2BgIGlzIHNldCB0byBGYWxzZSwgbm8gZXhjZXB0aW9uIHdpbGwgYmUgcmFp
c2VkIGlmIHRoZQorICAgICAgICBrZXkgaXMgbWlzc2luZy4KKyAgICAgICAgIiIiCisgICAgICAg
IGlmIG5hbWUgbm90IGluIGRpYzoKKyAgICAgICAgICAgIGlmIHJhaXNpbmc6CisgICAgICAgICAg
ICAgICAgcmFpc2UgS2V5RXJyb3IobmFtZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNl
bGYuX3NldGl0ZW0uYXBwZW5kKChkaWMsIG5hbWUsIGRpYy5nZXQobmFtZSwgbm90c2V0KSkpCisg
ICAgICAgICAgICBkZWwgZGljW25hbWVdCisKKyAgICBkZWYgc2V0ZW52KHNlbGYsIG5hbWUsIHZh
bHVlLCBwcmVwZW5kPU5vbmUpOgorICAgICAgICAiIiIgU2V0IGVudmlyb25tZW50IHZhcmlhYmxl
IGBgbmFtZWBgIHRvIGBgdmFsdWVgYC4gIElmIGBgcHJlcGVuZGBgCisgICAgICAgIGlzIGEgY2hh
cmFjdGVyLCByZWFkIHRoZSBjdXJyZW50IGVudmlyb25tZW50IHZhcmlhYmxlIHZhbHVlCisgICAg
ICAgIGFuZCBwcmVwZW5kIHRoZSBgYHZhbHVlYGAgYWRqb2luZWQgd2l0aCB0aGUgYGBwcmVwZW5k
YGAgY2hhcmFjdGVyLiIiIgorICAgICAgICB2YWx1ZSA9IHN0cih2YWx1ZSkKKyAgICAgICAgaWYg
cHJlcGVuZCBhbmQgbmFtZSBpbiBvcy5lbnZpcm9uOgorICAgICAgICAgICAgdmFsdWUgPSB2YWx1
ZSArIHByZXBlbmQgKyBvcy5lbnZpcm9uW25hbWVdCisgICAgICAgIHNlbGYuc2V0aXRlbShvcy5l
bnZpcm9uLCBuYW1lLCB2YWx1ZSkKKworICAgIGRlZiBkZWxlbnYoc2VsZiwgbmFtZSwgcmFpc2lu
Zz1UcnVlKToKKyAgICAgICAgIiIiIERlbGV0ZSBgYG5hbWVgYCBmcm9tIHRoZSBlbnZpcm9ubWVu
dC4gUmFpc2UgS2V5RXJyb3IgaXQgZG9lcyBub3QKKyAgICAgICAgZXhpc3QuCisKKyAgICAgICAg
SWYgYGByYWlzaW5nYGAgaXMgc2V0IHRvIEZhbHNlLCBubyBleGNlcHRpb24gd2lsbCBiZSByYWlz
ZWQgaWYgdGhlCisgICAgICAgIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG1pc3NpbmcuCisgICAg
ICAgICIiIgorICAgICAgICBzZWxmLmRlbGl0ZW0ob3MuZW52aXJvbiwgbmFtZSwgcmFpc2luZz1y
YWlzaW5nKQorCisgICAgZGVmIHN5c3BhdGhfcHJlcGVuZChzZWxmLCBwYXRoKToKKyAgICAgICAg
IiIiIFByZXBlbmQgYGBwYXRoYGAgdG8gYGBzeXMucGF0aGBgIGxpc3Qgb2YgaW1wb3J0IGxvY2F0
aW9ucy4gIiIiCisgICAgICAgIGlmIHNlbGYuX3NhdmVzeXNwYXRoIGlzIE5vbmU6CisgICAgICAg
ICAgICBzZWxmLl9zYXZlc3lzcGF0aCA9IHN5cy5wYXRoWzpdCisgICAgICAgIHN5cy5wYXRoLmlu
c2VydCgwLCBzdHIocGF0aCkpCisKKyAgICBkZWYgY2hkaXIoc2VsZiwgcGF0aCk6CisgICAgICAg
ICIiIiBDaGFuZ2UgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgdG8gdGhlIHNwZWNpZmll
ZCBwYXRoLgorICAgICAgICBQYXRoIGNhbiBiZSBhIHN0cmluZyBvciBhIHB5LnBhdGgubG9jYWwg
b2JqZWN0LgorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5fY3dkIGlzIE5vbmU6CisgICAg
ICAgICAgICBzZWxmLl9jd2QgPSBvcy5nZXRjd2QoKQorICAgICAgICBpZiBoYXNhdHRyKHBhdGgs
ICJjaGRpciIpOgorICAgICAgICAgICAgcGF0aC5jaGRpcigpCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICBvcy5jaGRpcihwYXRoKQorCisgICAgZGVmIHVuZG8oc2VsZik6CisgICAgICAgICIi
IiBVbmRvIHByZXZpb3VzIGNoYW5nZXMuICBUaGlzIGNhbGwgY29uc3VtZXMgdGhlCisgICAgICAg
IHVuZG8gc3RhY2suIENhbGxpbmcgaXQgYSBzZWNvbmQgdGltZSBoYXMgbm8gZWZmZWN0IHVubGVz
cworICAgICAgICB5b3UgZG8gbW9yZSBtb25rZXlwYXRjaGluZyBhZnRlciB0aGUgdW5kbyBjYWxs
LgorCisgICAgICAgIFRoZXJlIGlzIGdlbmVyYWxseSBubyBuZWVkIHRvIGNhbGwgYHVuZG8oKWAs
IHNpbmNlIGl0IGlzCisgICAgICAgIGNhbGxlZCBhdXRvbWF0aWNhbGx5IGR1cmluZyB0ZWFyLWRv
d24uCisKKyAgICAgICAgTm90ZSB0aGF0IHRoZSBzYW1lIGBtb25rZXlwYXRjaGAgZml4dHVyZSBp
cyB1c2VkIGFjcm9zcyBhCisgICAgICAgIHNpbmdsZSB0ZXN0IGZ1bmN0aW9uIGludm9jYXRpb24u
IElmIGBtb25rZXlwYXRjaGAgaXMgdXNlZCBib3RoIGJ5CisgICAgICAgIHRoZSB0ZXN0IGZ1bmN0
aW9uIGl0c2VsZiBhbmQgb25lIG9mIHRoZSB0ZXN0IGZpeHR1cmVzLAorICAgICAgICBjYWxsaW5n
IGB1bmRvKClgIHdpbGwgdW5kbyBhbGwgb2YgdGhlIGNoYW5nZXMgbWFkZSBpbgorICAgICAgICBi
b3RoIGZ1bmN0aW9ucy4KKyAgICAgICAgIiIiCisgICAgICAgIGZvciBvYmosIG5hbWUsIHZhbHVl
IGluIHJldmVyc2VkKHNlbGYuX3NldGF0dHIpOgorICAgICAgICAgICAgaWYgdmFsdWUgaXMgbm90
IG5vdHNldDoKKyAgICAgICAgICAgICAgICBzZXRhdHRyKG9iaiwgbmFtZSwgdmFsdWUpCisgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGRlbGF0dHIob2JqLCBuYW1lKQorICAgICAg
ICBzZWxmLl9zZXRhdHRyWzpdID0gW10KKyAgICAgICAgZm9yIGRpY3Rpb25hcnksIG5hbWUsIHZh
bHVlIGluIHJldmVyc2VkKHNlbGYuX3NldGl0ZW0pOgorICAgICAgICAgICAgaWYgdmFsdWUgaXMg
bm90c2V0OgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgZGVsIGRp
Y3Rpb25hcnlbbmFtZV0KKyAgICAgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAg
ICAgICAgICAgICAgIHBhc3MgICMgd2FzIGFscmVhZHkgZGVsZXRlZCwgc28gd2UgaGF2ZSB0aGUg
ZGVzaXJlZCBzdGF0ZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBkaWN0aW9u
YXJ5W25hbWVdID0gdmFsdWUKKyAgICAgICAgc2VsZi5fc2V0aXRlbVs6XSA9IFtdCisgICAgICAg
IGlmIHNlbGYuX3NhdmVzeXNwYXRoIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc3lzLnBhdGhb
Ol0gPSBzZWxmLl9zYXZlc3lzcGF0aAorICAgICAgICAgICAgc2VsZi5fc2F2ZXN5c3BhdGggPSBO
b25lCisKKyAgICAgICAgaWYgc2VsZi5fY3dkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgb3Mu
Y2hkaXIoc2VsZi5fY3dkKQorICAgICAgICAgICAgc2VsZi5fY3dkID0gTm9uZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9ub2Rlcy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvbm9k
ZXMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYWQzYWYyY2U2N2M4OTU4Zjk1MzM1Mjk0NDRlYjJiZjJiMWI3Nzk5
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvbm9kZXMucHkKQEAgLTAs
MCArMSwzNyBAQAorU0VQID0gIi8iCisKKworZGVmIF9zcGxpdG5vZGUobm9kZWlkKToKKyAgICAi
IiJTcGxpdCBhIG5vZGVpZCBpbnRvIGNvbnN0aXR1ZW50ICdwYXJ0cycuCisKKyAgICBOb2RlIElE
cyBhcmUgc3RyaW5ncywgYW5kIGNhbiBiZSB0aGluZ3MgbGlrZToKKyAgICAgICAgJycKKyAgICAg
ICAgJ3Rlc3RpbmcvY29kZScKKyAgICAgICAgJ3Rlc3RpbmcvY29kZS90ZXN0X2V4Y2luZm8ucHkn
CisgICAgICAgICd0ZXN0aW5nL2NvZGUvdGVzdF9leGNpbmZvLnB5OjpUZXN0Rm9ybWF0dGVkRXhj
aW5mbzo6KCknCisKKyAgICBSZXR1cm4gdmFsdWVzIGFyZSBsaXN0cyBlLmcuCisgICAgICAgIFtd
CisgICAgICAgIFsndGVzdGluZycsICdjb2RlJ10KKyAgICAgICAgWyd0ZXN0aW5nJywgJ2NvZGUn
LCAndGVzdF9leGNpbmZvLnB5J10KKyAgICAgICAgWyd0ZXN0aW5nJywgJ2NvZGUnLCAndGVzdF9l
eGNpbmZvLnB5JywgJ1Rlc3RGb3JtYXR0ZWRFeGNpbmZvJywgJygpJ10KKyAgICAiIiIKKyAgICBp
ZiBub2RlaWQgPT0gJyc6CisgICAgICAgICMgSWYgdGhlcmUgaXMgbm8gcm9vdCBub2RlIGF0IGFs
bCwgcmV0dXJuIGFuIGVtcHR5IGxpc3Qgc28gdGhlIGNhbGxlcidzIGxvZ2ljIGNhbiByZW1haW4g
c2FuZQorICAgICAgICByZXR1cm4gW10KKyAgICBwYXJ0cyA9IG5vZGVpZC5zcGxpdChTRVApCisg
ICAgIyBSZXBsYWNlIHNpbmdsZSBsYXN0IGVsZW1lbnQgJ3Rlc3RfZm9vLnB5OjpCYXI6OigpJyB3
aXRoIG11bHRpcGxlIGVsZW1lbnRzICd0ZXN0X2Zvby5weScsICdCYXInLCAnKCknCisgICAgcGFy
dHNbLTE6XSA9IHBhcnRzWy0xXS5zcGxpdCgiOjoiKQorICAgIHJldHVybiBwYXJ0cworCisKK2Rl
ZiBpc2NoaWxkbm9kZShiYXNlaWQsIG5vZGVpZCk6CisgICAgIiIiUmV0dXJuIFRydWUgaWYgdGhl
IG5vZGVpZCBpcyBhIGNoaWxkIG5vZGUgb2YgdGhlIGJhc2VpZC4KKworICAgIEUuZy4gJ2Zvby9i
YXI6OkJhejo6KCknIGlzIGEgY2hpbGQgb2YgJ2ZvbycsICdmb28vYmFyJyBhbmQgJ2Zvby9iYXI6
OkJheicsIGJ1dCBub3Qgb2YgJ2Zvby9ibG9ycCcKKyAgICAiIiIKKyAgICBiYXNlX3BhcnRzID0g
X3NwbGl0bm9kZShiYXNlaWQpCisgICAgbm9kZV9wYXJ0cyA9IF9zcGxpdG5vZGUobm9kZWlkKQor
ICAgIGlmIGxlbihub2RlX3BhcnRzKSA8IGxlbihiYXNlX3BhcnRzKToKKyAgICAgICAgcmV0dXJu
IEZhbHNlCisgICAgcmV0dXJuIG5vZGVfcGFydHNbOmxlbihiYXNlX3BhcnRzKV0gPT0gYmFzZV9w
YXJ0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9ub3NlLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvX3B5dGVzdC9ub3NlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4MTU0MmVhZGYzNzdkMWQzYWRkZmFhZmVh
NWQ2NGE4ODMyOThhMDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L25v
c2UucHkKQEAgLTAsMCArMSw3MiBAQAorIiIiIHJ1biB0ZXN0IHN1aXRlcyB3cml0dGVuIGZvciBu
b3NlLiAiIiIKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lv
biwgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IHN5cworCitmcm9tIF9weXRlc3QgaW1wb3J0IHVu
aXR0ZXN0LCBydW5uZXIsIHB5dGhvbgorZnJvbSBfcHl0ZXN0LmNvbmZpZyBpbXBvcnQgaG9va2lt
cGwKKworCitkZWYgZ2V0X3NraXBfZXhjZXB0aW9ucygpOgorICAgIHNraXBfY2xhc3NlcyA9IHNl
dCgpCisgICAgZm9yIG1vZHVsZV9uYW1lIGluICgndW5pdHRlc3QnLCAndW5pdHRlc3QyJywgJ25v
c2UnKToKKyAgICAgICAgbW9kID0gc3lzLm1vZHVsZXMuZ2V0KG1vZHVsZV9uYW1lKQorICAgICAg
ICBpZiBoYXNhdHRyKG1vZCwgJ1NraXBUZXN0Jyk6CisgICAgICAgICAgICBza2lwX2NsYXNzZXMu
YWRkKG1vZC5Ta2lwVGVzdCkKKyAgICByZXR1cm4gdHVwbGUoc2tpcF9jbGFzc2VzKQorCisKK2Rl
ZiBweXRlc3RfcnVudGVzdF9tYWtlcmVwb3J0KGl0ZW0sIGNhbGwpOgorICAgIGlmIGNhbGwuZXhj
aW5mbyBhbmQgY2FsbC5leGNpbmZvLmVycmlzaW5zdGFuY2UoZ2V0X3NraXBfZXhjZXB0aW9ucygp
KToKKyAgICAgICAgIyBsZXQncyBzdWJzdGl0dXRlIHRoZSBleGNpbmZvIHdpdGggYSBweXRlc3Qu
c2tpcCBvbmUKKyAgICAgICAgY2FsbDIgPSBjYWxsLl9fY2xhc3NfXygKKyAgICAgICAgICAgIGxh
bWJkYTogcnVubmVyLnNraXAoc3RyKGNhbGwuZXhjaW5mby52YWx1ZSkpLCBjYWxsLndoZW4pCisg
ICAgICAgIGNhbGwuZXhjaW5mbyA9IGNhbGwyLmV4Y2luZm8KKworCitAaG9va2ltcGwodHJ5bGFz
dD1UcnVlKQorZGVmIHB5dGVzdF9ydW50ZXN0X3NldHVwKGl0ZW0pOgorICAgIGlmIGlzX3BvdGVu
dGlhbF9ub3NldGVzdChpdGVtKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShpdGVtLnBhcmVudCwg
cHl0aG9uLkdlbmVyYXRvcik6CisgICAgICAgICAgICBnZW4gPSBpdGVtLnBhcmVudAorICAgICAg
ICAgICAgaWYgbm90IGhhc2F0dHIoZ2VuLCAnX25vc2VnZW5zZXR1cCcpOgorICAgICAgICAgICAg
ICAgIGNhbGxfb3B0aW9uYWwoZ2VuLm9iaiwgJ3NldHVwJykKKyAgICAgICAgICAgICAgICBpZiBp
c2luc3RhbmNlKGdlbi5wYXJlbnQsIHB5dGhvbi5JbnN0YW5jZSk6CisgICAgICAgICAgICAgICAg
ICAgIGNhbGxfb3B0aW9uYWwoZ2VuLnBhcmVudC5vYmosICdzZXR1cCcpCisgICAgICAgICAgICAg
ICAgZ2VuLl9ub3NlZ2Vuc2V0dXAgPSBUcnVlCisgICAgICAgIGlmIG5vdCBjYWxsX29wdGlvbmFs
KGl0ZW0ub2JqLCAnc2V0dXAnKToKKyAgICAgICAgICAgICMgY2FsbCBtb2R1bGUgbGV2ZWwgc2V0
dXAgaWYgdGhlcmUgaXMgbm8gb2JqZWN0IGxldmVsIG9uZQorICAgICAgICAgICAgY2FsbF9vcHRp
b25hbChpdGVtLnBhcmVudC5vYmosICdzZXR1cCcpCisgICAgICAgICMgWFhYIHRoaXMgaW1wbGll
cyB3ZSBvbmx5IGNhbGwgdGVhcmRvd24gd2hlbiBzZXR1cCB3b3JrZWQKKyAgICAgICAgaXRlbS5z
ZXNzaW9uLl9zZXR1cHN0YXRlLmFkZGZpbmFsaXplcigobGFtYmRhOiB0ZWFyZG93bl9ub3NlKGl0
ZW0pKSwgaXRlbSkKKworCitkZWYgdGVhcmRvd25fbm9zZShpdGVtKToKKyAgICBpZiBpc19wb3Rl
bnRpYWxfbm9zZXRlc3QoaXRlbSk6CisgICAgICAgIGlmIG5vdCBjYWxsX29wdGlvbmFsKGl0ZW0u
b2JqLCAndGVhcmRvd24nKToKKyAgICAgICAgICAgIGNhbGxfb3B0aW9uYWwoaXRlbS5wYXJlbnQu
b2JqLCAndGVhcmRvd24nKQorICAgICAgICAjIGlmIGhhc2F0dHIoaXRlbS5wYXJlbnQsICdfbm9z
ZWdlbnNldHVwJyk6CisgICAgICAgICMgICAgI2NhbGxfb3B0aW9uYWwoaXRlbS5fbm9zZWdlbnNl
dHVwLCAndGVhcmRvd24nKQorICAgICAgICAjICAgIGRlbCBpdGVtLnBhcmVudC5fbm9zZWdlbnNl
dHVwCisKKworZGVmIHB5dGVzdF9tYWtlX2NvbGxlY3RfcmVwb3J0KGNvbGxlY3Rvcik6CisgICAg
aWYgaXNpbnN0YW5jZShjb2xsZWN0b3IsIHB5dGhvbi5HZW5lcmF0b3IpOgorICAgICAgICBjYWxs
X29wdGlvbmFsKGNvbGxlY3Rvci5vYmosICdzZXR1cCcpCisKKworZGVmIGlzX3BvdGVudGlhbF9u
b3NldGVzdChpdGVtKToKKyAgICAjIGV4dHJhIGNoZWNrIG5lZWRlZCBzaW5jZSB3ZSBkbyBub3Qg
ZG8gbm9zZSBzdHlsZSBzZXR1cC90ZWFyZG93bgorICAgICMgb24gZGlyZWN0IHVuaXR0ZXN0IHN0
eWxlIGNsYXNzZXMKKyAgICByZXR1cm4gaXNpbnN0YW5jZShpdGVtLCBweXRob24uRnVuY3Rpb24p
IGFuZCBcCisgICAgICAgIG5vdCBpc2luc3RhbmNlKGl0ZW0sIHVuaXR0ZXN0LlRlc3RDYXNlRnVu
Y3Rpb24pCisKKworZGVmIGNhbGxfb3B0aW9uYWwob2JqLCBuYW1lKToKKyAgICBtZXRob2QgPSBn
ZXRhdHRyKG9iaiwgbmFtZSwgTm9uZSkKKyAgICBpc2ZpeHR1cmUgPSBoYXNhdHRyKG1ldGhvZCwg
Il9weXRlc3RmaXh0dXJlZnVuY3Rpb24iKQorICAgIGlmIG1ldGhvZCBpcyBub3QgTm9uZSBhbmQg
bm90IGlzZml4dHVyZSBhbmQgY2FsbGFibGUobWV0aG9kKToKKyAgICAgICAgIyBJZiB0aGVyZSdz
IGFueSBwcm9ibGVtcyBhbGxvdyB0aGUgZXhjZXB0aW9uIHRvIHJhaXNlIHJhdGhlciB0aGFuCisg
ICAgICAgICMgc2lsZW50bHkgaWdub3JpbmcgdGhlbQorICAgICAgICBtZXRob2QoKQorICAgICAg
ICByZXR1cm4gVHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9vdXRjb21lcy5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvb3V0Y29tZXMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2YwYzE4ZmE2
YzFiNDg3ODNhM2E5ZDNhNjQ1ZDNlMjQ0ZDY3M2MxNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L19weXRlc3Qvb3V0Y29tZXMucHkKQEAgLTAsMCArMSwxNDcgQEAKKyIiIgorZXhjZXB0
aW9uIGNsYXNzZXMgYW5kIGNvbnN0YW50cyBoYW5kbGluZyB0ZXN0IG91dGNvbWVzCithcyB3ZWxs
IGFzIGZ1bmN0aW9ucyBjcmVhdGluZyB0aGVtCisiIiIKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQg
YWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCBweQoraW1w
b3J0IHN5cworCisKK2NsYXNzIE91dGNvbWVFeGNlcHRpb24oQmFzZUV4Y2VwdGlvbik6CisgICAg
IiIiIE91dGNvbWVFeGNlcHRpb24gYW5kIGl0cyBzdWJjbGFzcyBpbnN0YW5jZXMgaW5kaWNhdGUg
YW5kCisgICAgICAgIGNvbnRhaW4gaW5mbyBhYm91dCB0ZXN0IGFuZCBjb2xsZWN0aW9uIG91dGNv
bWVzLgorICAgICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtc2c9Tm9uZSwgcHl0cmFjZT1U
cnVlKToKKyAgICAgICAgQmFzZUV4Y2VwdGlvbi5fX2luaXRfXyhzZWxmLCBtc2cpCisgICAgICAg
IHNlbGYubXNnID0gbXNnCisgICAgICAgIHNlbGYucHl0cmFjZSA9IHB5dHJhY2UKKworICAgIGRl
ZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgaWYgc2VsZi5tc2c6CisgICAgICAgICAgICB2YWwg
PSBzZWxmLm1zZworICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWwsIGJ5dGVzKToKKyAgICAg
ICAgICAgICAgICB2YWwgPSBweS5fYnVpbHRpbi5fdG90ZXh0KHZhbCwgZXJyb3JzPSdyZXBsYWNl
JykKKyAgICAgICAgICAgIHJldHVybiB2YWwKKyAgICAgICAgcmV0dXJuICI8JXMgaW5zdGFuY2U+
IiAlIChzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywpCisgICAgX19zdHJfXyA9IF9fcmVwcl9fCisK
KworVEVTVF9PVVRDT01FID0gKE91dGNvbWVFeGNlcHRpb24sIEV4Y2VwdGlvbikKKworCitjbGFz
cyBTa2lwcGVkKE91dGNvbWVFeGNlcHRpb24pOgorICAgICMgWFhYIGhhY2tpc2g6IG9uIDNrIHdl
IGZha2UgdG8gbGl2ZSBpbiB0aGUgYnVpbHRpbnMKKyAgICAjIGluIG9yZGVyIHRvIGhhdmUgU2tp
cHBlZCBleGNlcHRpb24gcHJpbnRpbmcgc2hvcnRlci9uaWNlcgorICAgIF9fbW9kdWxlX18gPSAn
YnVpbHRpbnMnCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbXNnPU5vbmUsIHB5dHJhY2U9VHJ1
ZSwgYWxsb3dfbW9kdWxlX2xldmVsPUZhbHNlKToKKyAgICAgICAgT3V0Y29tZUV4Y2VwdGlvbi5f
X2luaXRfXyhzZWxmLCBtc2c9bXNnLCBweXRyYWNlPXB5dHJhY2UpCisgICAgICAgIHNlbGYuYWxs
b3dfbW9kdWxlX2xldmVsID0gYWxsb3dfbW9kdWxlX2xldmVsCisKKworY2xhc3MgRmFpbGVkKE91
dGNvbWVFeGNlcHRpb24pOgorICAgICIiIiByYWlzZWQgZnJvbSBhbiBleHBsaWNpdCBjYWxsIHRv
IHB5dGVzdC5mYWlsKCkgIiIiCisgICAgX19tb2R1bGVfXyA9ICdidWlsdGlucycKKworCitjbGFz
cyBFeGl0KEtleWJvYXJkSW50ZXJydXB0KToKKyAgICAiIiIgcmFpc2VkIGZvciBpbW1lZGlhdGUg
cHJvZ3JhbSBleGl0cyAobm8gdHJhY2ViYWNrcy9zdW1tYXJpZXMpIiIiCisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIG1zZz0idW5rbm93biByZWFzb24iKToKKyAgICAgICAgc2VsZi5tc2cgPSBtc2cK
KyAgICAgICAgS2V5Ym9hcmRJbnRlcnJ1cHQuX19pbml0X18oc2VsZiwgbXNnKQorCisjIGV4cG9z
ZWQgaGVscGVyIG1ldGhvZHMKKworCitkZWYgZXhpdChtc2cpOgorICAgICIiIiBleGl0IHRlc3Rp
bmcgcHJvY2VzcyBhcyBpZiBLZXlib2FyZEludGVycnVwdCB3YXMgdHJpZ2dlcmVkLiAiIiIKKyAg
ICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKKyAgICByYWlzZSBFeGl0KG1zZykKKworCitleGl0
LkV4Y2VwdGlvbiA9IEV4aXQKKworCitkZWYgc2tpcChtc2c9IiIsICoqa3dhcmdzKToKKyAgICAi
IiIgc2tpcCBhbiBleGVjdXRpbmcgdGVzdCB3aXRoIHRoZSBnaXZlbiBtZXNzYWdlLiAgTm90ZTog
aXQncyB1c3VhbGx5CisgICAgYmV0dGVyIHRvIHVzZSB0aGUgcHl0ZXN0Lm1hcmsuc2tpcGlmIG1h
cmtlciB0byBkZWNsYXJlIGEgdGVzdCB0byBiZQorICAgIHNraXBwZWQgdW5kZXIgY2VydGFpbiBj
b25kaXRpb25zIGxpa2UgbWlzbWF0Y2hpbmcgcGxhdGZvcm1zIG9yCisgICAgZGVwZW5kZW5jaWVz
LiAgU2VlIHRoZSBweXRlc3Rfc2tpcHBpbmcgcGx1Z2luIGZvciBkZXRhaWxzLgorCisgICAgOmt3
YXJnIGJvb2wgYWxsb3dfbW9kdWxlX2xldmVsOiBhbGxvd3MgdGhpcyBmdW5jdGlvbiB0byBiZSBj
YWxsZWQgYXQKKyAgICAgICAgbW9kdWxlIGxldmVsLCBza2lwcGluZyB0aGUgcmVzdCBvZiB0aGUg
bW9kdWxlLiBEZWZhdWx0IHRvIEZhbHNlLgorICAgICIiIgorICAgIF9fdHJhY2ViYWNraGlkZV9f
ID0gVHJ1ZQorICAgIGFsbG93X21vZHVsZV9sZXZlbCA9IGt3YXJncy5wb3AoJ2FsbG93X21vZHVs
ZV9sZXZlbCcsIEZhbHNlKQorICAgIGlmIGt3YXJnczoKKyAgICAgICAga2V5cyA9IFtrIGZvciBr
IGluIGt3YXJncy5rZXlzKCldCisgICAgICAgIHJhaXNlIFR5cGVFcnJvcigndW5leHBlY3RlZCBr
ZXl3b3JkIGFyZ3VtZW50czogezB9Jy5mb3JtYXQoa2V5cykpCisgICAgcmFpc2UgU2tpcHBlZCht
c2c9bXNnLCBhbGxvd19tb2R1bGVfbGV2ZWw9YWxsb3dfbW9kdWxlX2xldmVsKQorCisKK3NraXAu
RXhjZXB0aW9uID0gU2tpcHBlZAorCisKK2RlZiBmYWlsKG1zZz0iIiwgcHl0cmFjZT1UcnVlKToK
KyAgICAiIiIgZXhwbGljaXRseSBmYWlsIGFuIGN1cnJlbnRseS1leGVjdXRpbmcgdGVzdCB3aXRo
IHRoZSBnaXZlbiBNZXNzYWdlLgorCisgICAgOmFyZyBweXRyYWNlOiBpZiBmYWxzZSB0aGUgbXNn
IHJlcHJlc2VudHMgdGhlIGZ1bGwgZmFpbHVyZSBpbmZvcm1hdGlvbgorICAgICAgICAgICAgICAg
ICAgYW5kIG5vIHB5dGhvbiB0cmFjZWJhY2sgd2lsbCBiZSByZXBvcnRlZC4KKyAgICAiIiIKKyAg
ICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKKyAgICByYWlzZSBGYWlsZWQobXNnPW1zZywgcHl0
cmFjZT1weXRyYWNlKQorCisKK2ZhaWwuRXhjZXB0aW9uID0gRmFpbGVkCisKKworY2xhc3MgWEZh
aWxlZChmYWlsLkV4Y2VwdGlvbik6CisgICAgIiIiIHJhaXNlZCBmcm9tIGFuIGV4cGxpY2l0IGNh
bGwgdG8gcHl0ZXN0LnhmYWlsKCkgIiIiCisKKworZGVmIHhmYWlsKHJlYXNvbj0iIik6CisgICAg
IiIiIHhmYWlsIGFuIGV4ZWN1dGluZyB0ZXN0IG9yIHNldHVwIGZ1bmN0aW9ucyB3aXRoIHRoZSBn
aXZlbiByZWFzb24uIiIiCisgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgcmFpc2Ug
WEZhaWxlZChyZWFzb24pCisKKworeGZhaWwuRXhjZXB0aW9uID0gWEZhaWxlZAorCisKK2RlZiBp
bXBvcnRvcnNraXAobW9kbmFtZSwgbWludmVyc2lvbj1Ob25lKToKKyAgICAiIiIgcmV0dXJuIGlt
cG9ydGVkIG1vZHVsZSBpZiBpdCBoYXMgYXQgbGVhc3QgIm1pbnZlcnNpb24iIGFzIGl0cworICAg
IF9fdmVyc2lvbl9fIGF0dHJpYnV0ZS4gIElmIG5vIG1pbnZlcnNpb24gaXMgc3BlY2lmaWVkIHRo
ZSBhIHNraXAKKyAgICBpcyBvbmx5IHRyaWdnZXJlZCBpZiB0aGUgbW9kdWxlIGNhbiBub3QgYmUg
aW1wb3J0ZWQuCisgICAgIiIiCisgICAgaW1wb3J0IHdhcm5pbmdzCisgICAgX190cmFjZWJhY2to
aWRlX18gPSBUcnVlCisgICAgY29tcGlsZShtb2RuYW1lLCAnJywgJ2V2YWwnKSAgIyB0byBjYXRj
aCBzeW50YXhlcnJvcnMKKyAgICBzaG91bGRfc2tpcCA9IEZhbHNlCisKKyAgICB3aXRoIHdhcm5p
bmdzLmNhdGNoX3dhcm5pbmdzKCk6CisgICAgICAgICMgbWFrZSBzdXJlIHRvIGlnbm9yZSBJbXBv
cnRXYXJuaW5ncyB0aGF0IG1pZ2h0IGhhcHBlbiBiZWNhdXNlCisgICAgICAgICMgb2YgZXhpc3Rp
bmcgZGlyZWN0b3JpZXMgd2l0aCB0aGUgc2FtZSBuYW1lIHdlJ3JlIHRyeWluZyB0bworICAgICAg
ICAjIGltcG9ydCBidXQgd2l0aG91dCBhIF9faW5pdF9fLnB5IGZpbGUKKyAgICAgICAgd2Fybmlu
Z3Muc2ltcGxlZmlsdGVyKCdpZ25vcmUnKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBfX2lt
cG9ydF9fKG1vZG5hbWUpCisgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgICAg
ICMgRG8gbm90IHJhaXNlIGNoYWluZWQgZXhjZXB0aW9uIGhlcmUoIzE0ODUpCisgICAgICAgICAg
ICBzaG91bGRfc2tpcCA9IFRydWUKKyAgICBpZiBzaG91bGRfc2tpcDoKKyAgICAgICAgcmFpc2Ug
U2tpcHBlZCgiY291bGQgbm90IGltcG9ydCAlciIgJSAobW9kbmFtZSwpLCBhbGxvd19tb2R1bGVf
bGV2ZWw9VHJ1ZSkKKyAgICBtb2QgPSBzeXMubW9kdWxlc1ttb2RuYW1lXQorICAgIGlmIG1pbnZl
cnNpb24gaXMgTm9uZToKKyAgICAgICAgcmV0dXJuIG1vZAorICAgIHZlcmF0dHIgPSBnZXRhdHRy
KG1vZCwgJ19fdmVyc2lvbl9fJywgTm9uZSkKKyAgICBpZiBtaW52ZXJzaW9uIGlzIG5vdCBOb25l
OgorICAgICAgICB0cnk6CisgICAgICAgICAgICBmcm9tIHBrZ19yZXNvdXJjZXMgaW1wb3J0IHBh
cnNlX3ZlcnNpb24gYXMgcHYKKyAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICAg
ICAgcmFpc2UgU2tpcHBlZCgid2UgaGF2ZSBhIHJlcXVpcmVkIHZlcnNpb24gZm9yICVyIGJ1dCBj
YW4gbm90IGltcG9ydCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICJwa2dfcmVzb3VyY2Vz
IHRvIHBhcnNlIHZlcnNpb24gc3RyaW5ncy4iICUgKG1vZG5hbWUsKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgYWxsb3dfbW9kdWxlX2xldmVsPVRydWUpCisgICAgICAgIGlmIHZlcmF0dHIg
aXMgTm9uZSBvciBwdih2ZXJhdHRyKSA8IHB2KG1pbnZlcnNpb24pOgorICAgICAgICAgICAgcmFp
c2UgU2tpcHBlZCgibW9kdWxlICVyIGhhcyBfX3ZlcnNpb25fXyAlciwgcmVxdWlyZWQgaXM6ICVy
IiAlICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kbmFtZSwgdmVyYXR0ciwgbWludmVy
c2lvbiksIGFsbG93X21vZHVsZV9sZXZlbD1UcnVlKQorICAgIHJldHVybiBtb2QKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcGFzdGViaW4ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L3Bhc3RlYmluLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1ODhiMDIxYjEyNDIyZjU1MDdjOWJkZmE1MTFmNjFm
M2QwMjgxZjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3Bhc3RlYmlu
LnB5CkBAIC0wLDAgKzEsMTAwIEBACisiIiIgc3VibWl0IGZhaWx1cmUgb3IgdGVzdCBzZXNzaW9u
IGluZm9ybWF0aW9uIHRvIGEgcGFzdGViaW4gc2VydmljZS4gIiIiCitmcm9tIF9fZnV0dXJlX18g
aW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCisKK2ltcG9y
dCBweXRlc3QKK2ltcG9ydCBzaXgKK2ltcG9ydCBzeXMKK2ltcG9ydCB0ZW1wZmlsZQorCisKK2Rl
ZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAo
InRlcm1pbmFsIHJlcG9ydGluZyIpCisgICAgZ3JvdXAuX2FkZG9wdGlvbignLS1wYXN0ZWJpbics
IG1ldGF2YXI9Im1vZGUiLAorICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZScsIGRl
c3Q9InBhc3RlYmluIiwgZGVmYXVsdD1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgY2hvaWNl
cz1bJ2ZhaWxlZCcsICdhbGwnXSwKKyAgICAgICAgICAgICAgICAgICAgIGhlbHA9InNlbmQgZmFp
bGVkfGFsbCBpbmZvIHRvIGJwYXN0ZS5uZXQgcGFzdGViaW4gc2VydmljZS4iKQorCisKK0BweXRl
c3QuaG9va2ltcGwodHJ5bGFzdD1UcnVlKQorZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToK
KyAgICBpZiBjb25maWcub3B0aW9uLnBhc3RlYmluID09ICJhbGwiOgorICAgICAgICB0ciA9IGNv
bmZpZy5wbHVnaW5tYW5hZ2VyLmdldHBsdWdpbigndGVybWluYWxyZXBvcnRlcicpCisgICAgICAg
ICMgaWYgbm8gdGVybWluYWwgcmVwb3J0ZXIgcGx1Z2luIGlzIHByZXNlbnQsIG5vdGhpbmcgd2Ug
Y2FuIGRvIGhlcmU7CisgICAgICAgICMgdGhpcyBjYW4gaGFwcGVuIHdoZW4gdGhpcyBmdW5jdGlv
biBleGVjdXRlcyBpbiBhIHNsYXZlIG5vZGUKKyAgICAgICAgIyB3aGVuIHVzaW5nIHB5dGVzdC14
ZGlzdCwgZm9yIGV4YW1wbGUKKyAgICAgICAgaWYgdHIgaXMgbm90IE5vbmU6CisgICAgICAgICAg
ICAjIHBhc3RlYmluIGZpbGUgd2lsbCBiZSB1dGYtOCBlbmNvZGVkIGJpbmFyeSBmaWxlCisgICAg
ICAgICAgICBjb25maWcuX3Bhc3RlYmluZmlsZSA9IHRlbXBmaWxlLlRlbXBvcmFyeUZpbGUoJ3cr
YicpCisgICAgICAgICAgICBvbGR3cml0ZSA9IHRyLl90dy53cml0ZQorCisgICAgICAgICAgICBk
ZWYgdGVlX3dyaXRlKHMsICoqa3dhcmdzKToKKyAgICAgICAgICAgICAgICBvbGR3cml0ZShzLCAq
Kmt3YXJncykKKyAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHMsIHNpeC50ZXh0X3R5cGUp
OgorICAgICAgICAgICAgICAgICAgICBzID0gcy5lbmNvZGUoJ3V0Zi04JykKKyAgICAgICAgICAg
ICAgICBjb25maWcuX3Bhc3RlYmluZmlsZS53cml0ZShzKQorCisgICAgICAgICAgICB0ci5fdHcu
d3JpdGUgPSB0ZWVfd3JpdGUKKworCitkZWYgcHl0ZXN0X3VuY29uZmlndXJlKGNvbmZpZyk6Cisg
ICAgaWYgaGFzYXR0cihjb25maWcsICdfcGFzdGViaW5maWxlJyk6CisgICAgICAgICMgZ2V0IHRl
cm1pbmFsIGNvbnRlbnRzIGFuZCBkZWxldGUgZmlsZQorICAgICAgICBjb25maWcuX3Bhc3RlYmlu
ZmlsZS5zZWVrKDApCisgICAgICAgIHNlc3Npb25sb2cgPSBjb25maWcuX3Bhc3RlYmluZmlsZS5y
ZWFkKCkKKyAgICAgICAgY29uZmlnLl9wYXN0ZWJpbmZpbGUuY2xvc2UoKQorICAgICAgICBkZWwg
Y29uZmlnLl9wYXN0ZWJpbmZpbGUKKyAgICAgICAgIyB1bmRvIG91ciBwYXRjaGluZyBpbiB0aGUg
dGVybWluYWwgcmVwb3J0ZXIKKyAgICAgICAgdHIgPSBjb25maWcucGx1Z2lubWFuYWdlci5nZXRw
bHVnaW4oJ3Rlcm1pbmFscmVwb3J0ZXInKQorICAgICAgICBkZWwgdHIuX3R3Ll9fZGljdF9fWyd3
cml0ZSddCisgICAgICAgICMgd3JpdGUgc3VtbWFyeQorICAgICAgICB0ci53cml0ZV9zZXAoIj0i
LCAiU2VuZGluZyBpbmZvcm1hdGlvbiB0byBQYXN0ZSBTZXJ2aWNlIikKKyAgICAgICAgcGFzdGVi
aW51cmwgPSBjcmVhdGVfbmV3X3Bhc3RlKHNlc3Npb25sb2cpCisgICAgICAgIHRyLndyaXRlX2xp
bmUoInBhc3RlYmluIHNlc3Npb24tbG9nOiAlc1xuIiAlIHBhc3RlYmludXJsKQorCisKK2RlZiBj
cmVhdGVfbmV3X3Bhc3RlKGNvbnRlbnRzKToKKyAgICAiIiIKKyAgICBDcmVhdGVzIGEgbmV3IHBh
c3RlIHVzaW5nIGJwYXN0ZS5uZXQgc2VydmljZS4KKworICAgIDpjb250ZW50czogcGFzdGUgY29u
dGVudHMgYXMgdXRmLTggZW5jb2RlZCBieXRlcworICAgIDpyZXR1cm5zOiB1cmwgdG8gdGhlIHBh
c3RlZCBjb250ZW50cworICAgICIiIgorICAgIGltcG9ydCByZQorICAgIGlmIHN5cy52ZXJzaW9u
X2luZm8gPCAoMywgMCk6CisgICAgICAgIGZyb20gdXJsbGliIGltcG9ydCB1cmxvcGVuLCB1cmxl
bmNvZGUKKyAgICBlbHNlOgorICAgICAgICBmcm9tIHVybGxpYi5yZXF1ZXN0IGltcG9ydCB1cmxv
cGVuCisgICAgICAgIGZyb20gdXJsbGliLnBhcnNlIGltcG9ydCB1cmxlbmNvZGUKKworICAgIHBh
cmFtcyA9IHsKKyAgICAgICAgJ2NvZGUnOiBjb250ZW50cywKKyAgICAgICAgJ2xleGVyJzogJ3B5
dGhvbjMnIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPT0gMyBlbHNlICdweXRob24nLAorICAgICAg
ICAnZXhwaXJ5JzogJzF3ZWVrJywKKyAgICB9CisgICAgdXJsID0gJ2h0dHBzOi8vYnBhc3RlLm5l
dCcKKyAgICByZXNwb25zZSA9IHVybG9wZW4odXJsLCBkYXRhPXVybGVuY29kZShwYXJhbXMpLmVu
Y29kZSgnYXNjaWknKSkucmVhZCgpCisgICAgbSA9IHJlLnNlYXJjaChyJ2hyZWY9Ii9yYXcvKFx3
KykiJywgcmVzcG9uc2UuZGVjb2RlKCd1dGYtOCcpKQorICAgIGlmIG06CisgICAgICAgIHJldHVy
biAnJXMvc2hvdy8lcycgJSAodXJsLCBtLmdyb3VwKDEpKQorICAgIGVsc2U6CisgICAgICAgIHJl
dHVybiAnYmFkIHJlc3BvbnNlOiAnICsgcmVzcG9uc2UKKworCitkZWYgcHl0ZXN0X3Rlcm1pbmFs
X3N1bW1hcnkodGVybWluYWxyZXBvcnRlcik6CisgICAgaW1wb3J0IF9weXRlc3QuY29uZmlnCisg
ICAgaWYgdGVybWluYWxyZXBvcnRlci5jb25maWcub3B0aW9uLnBhc3RlYmluICE9ICJmYWlsZWQi
OgorICAgICAgICByZXR1cm4KKyAgICB0ciA9IHRlcm1pbmFscmVwb3J0ZXIKKyAgICBpZiAnZmFp
bGVkJyBpbiB0ci5zdGF0czoKKyAgICAgICAgdGVybWluYWxyZXBvcnRlci53cml0ZV9zZXAoIj0i
LCAiU2VuZGluZyBpbmZvcm1hdGlvbiB0byBQYXN0ZSBTZXJ2aWNlIikKKyAgICAgICAgZm9yIHJl
cCBpbiB0ZXJtaW5hbHJlcG9ydGVyLnN0YXRzLmdldCgnZmFpbGVkJyk6CisgICAgICAgICAgICB0
cnk6CisgICAgICAgICAgICAgICAgbXNnID0gcmVwLmxvbmdyZXByLnJlcHJ0cmFjZWJhY2sucmVw
cmVudHJpZXNbLTFdLnJlcHJmaWxlbG9jCisgICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJy
b3I6CisgICAgICAgICAgICAgICAgbXNnID0gdHIuX2dldGZhaWx1cmVoZWFkbGluZShyZXApCisg
ICAgICAgICAgICB0dyA9IF9weXRlc3QuY29uZmlnLmNyZWF0ZV90ZXJtaW5hbF93cml0ZXIodGVy
bWluYWxyZXBvcnRlci5jb25maWcsIHN0cmluZ2lvPVRydWUpCisgICAgICAgICAgICByZXAudG90
ZXJtaW5hbCh0dykKKyAgICAgICAgICAgIHMgPSB0dy5zdHJpbmdpby5nZXR2YWx1ZSgpCisgICAg
ICAgICAgICBhc3NlcnQgbGVuKHMpCisgICAgICAgICAgICBwYXN0ZWJpbnVybCA9IGNyZWF0ZV9u
ZXdfcGFzdGUocykKKyAgICAgICAgICAgIHRyLndyaXRlX2xpbmUoIiVzIC0tPiAlcyIgJSAobXNn
LCBwYXN0ZWJpbnVybCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3B5dGVzdGVy
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9weXRlc3Rlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMmRkNTk5
NGYxYmJmYjRkZDZiNDI5ZDg2ZWY3NDhjYmQ1NzhkNTdhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvX3B5dGVzdC9weXRlc3Rlci5weQpAQCAtMCwwICsxLDExODcgQEAKKyIiIiAoZGlz
YWJsZWQgYnkgZGVmYXVsdCkgc3VwcG9ydCBmb3IgdGVzdGluZyBweXRlc3QgYW5kIHB5dGVzdCBw
bHVnaW5zLiAiIiIKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZp
c2lvbiwgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IGNvZGVjcworaW1wb3J0IGdjCitpbXBvcnQg
b3MKK2ltcG9ydCBwbGF0Zm9ybQoraW1wb3J0IHJlCitpbXBvcnQgc3VicHJvY2VzcworaW1wb3J0
IHNpeAoraW1wb3J0IHN5cworaW1wb3J0IHRpbWUKK2ltcG9ydCB0cmFjZWJhY2sKK2Zyb20gZm5t
YXRjaCBpbXBvcnQgZm5tYXRjaAorCitmcm9tIHdlYWtyZWYgaW1wb3J0IFdlYWtLZXlEaWN0aW9u
YXJ5CisKK2Zyb20gX3B5dGVzdC5jYXB0dXJlIGltcG9ydCBNdWx0aUNhcHR1cmUsIFN5c0NhcHR1
cmUKK2Zyb20gX3B5dGVzdC5fY29kZSBpbXBvcnQgU291cmNlCitpbXBvcnQgcHkKK2ltcG9ydCBw
eXRlc3QKK2Zyb20gX3B5dGVzdC5tYWluIGltcG9ydCBTZXNzaW9uLCBFWElUX09LCitmcm9tIF9w
eXRlc3QuYXNzZXJ0aW9uLnJld3JpdGUgaW1wb3J0IEFzc2VydGlvblJld3JpdGluZ0hvb2sKKwor
CitQWVRFU1RfRlVMTFBBVEggPSBvcy5wYXRoLmFic3BhdGgocHl0ZXN0Ll9fZmlsZV9fLnJzdHJp
cCgib2MiKSkucmVwbGFjZSgiJHB5LmNsYXNzIiwgIi5weSIpCisKKworZGVmIHB5dGVzdF9hZGRv
cHRpb24ocGFyc2VyKToKKyAgICAjIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJweXRlc3RlciIs
ICJweXRlc3RlciAoc2VsZi10ZXN0cykgb3B0aW9ucyIpCisgICAgcGFyc2VyLmFkZG9wdGlvbign
LS1sc29mJywKKyAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9
Imxzb2YiLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgaGVscD0oInJ1biBG
RCBjaGVja3MgaWYgbHNvZiBpcyBhdmFpbGFibGUiKSkKKworICAgIHBhcnNlci5hZGRvcHRpb24o
Jy0tcnVucHl0ZXN0JywgZGVmYXVsdD0iaW5wcm9jZXNzIiwgZGVzdD0icnVucHl0ZXN0IiwKKyAg
ICAgICAgICAgICAgICAgICAgIGNob2ljZXM9KCJpbnByb2Nlc3MiLCAic3VicHJvY2VzcyIsICks
CisgICAgICAgICAgICAgICAgICAgICBoZWxwPSgicnVuIHB5dGVzdCBzdWIgcnVucyBpbiB0ZXN0
cyB1c2luZyBhbiAnaW5wcm9jZXNzJyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAib3Ig
J3N1YnByb2Nlc3MnIChweXRob24gLW0gbWFpbikgbWV0aG9kIikpCisKKworZGVmIHB5dGVzdF9j
b25maWd1cmUoY29uZmlnKToKKyAgICBpZiBjb25maWcuZ2V0dmFsdWUoImxzb2YiKToKKyAgICAg
ICAgY2hlY2tlciA9IExzb2ZGZExlYWtDaGVja2VyKCkKKyAgICAgICAgaWYgY2hlY2tlci5tYXRj
aGluZ19wbGF0Zm9ybSgpOgorICAgICAgICAgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0
ZXIoY2hlY2tlcikKKworCitjbGFzcyBMc29mRmRMZWFrQ2hlY2tlcihvYmplY3QpOgorICAgIGRl
ZiBnZXRfb3Blbl9maWxlcyhzZWxmKToKKyAgICAgICAgb3V0ID0gc2VsZi5fZXhlY19sc29mKCkK
KyAgICAgICAgb3Blbl9maWxlcyA9IHNlbGYuX3BhcnNlX2xzb2Zfb3V0cHV0KG91dCkKKyAgICAg
ICAgcmV0dXJuIG9wZW5fZmlsZXMKKworICAgIGRlZiBfZXhlY19sc29mKHNlbGYpOgorICAgICAg
ICBwaWQgPSBvcy5nZXRwaWQoKQorICAgICAgICByZXR1cm4gcHkucHJvY2Vzcy5jbWRleGVjKCJs
c29mIC1GZm4wIC1wICVkIiAlIHBpZCkKKworICAgIGRlZiBfcGFyc2VfbHNvZl9vdXRwdXQoc2Vs
Ziwgb3V0KToKKyAgICAgICAgZGVmIGlzb3BlbihsaW5lKToKKyAgICAgICAgICAgIHJldHVybiBs
aW5lLnN0YXJ0c3dpdGgoJ2YnKSBhbmQgKCJkZWxldGVkIiBub3QgaW4gbGluZSBhbmQKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtZW0nIG5vdCBpbiBsaW5l
IGFuZCAidHh0IiBub3QgaW4gbGluZSBhbmQgJ2N3ZCcgbm90IGluIGxpbmUpCisKKyAgICAgICAg
b3Blbl9maWxlcyA9IFtdCisKKyAgICAgICAgZm9yIGxpbmUgaW4gb3V0LnNwbGl0KCJcbiIpOgor
ICAgICAgICAgICAgaWYgaXNvcGVuKGxpbmUpOgorICAgICAgICAgICAgICAgIGZpZWxkcyA9IGxp
bmUuc3BsaXQoJ1wwJykKKyAgICAgICAgICAgICAgICBmZCA9IGZpZWxkc1swXVsxOl0KKyAgICAg
ICAgICAgICAgICBmaWxlbmFtZSA9IGZpZWxkc1sxXVsxOl0KKyAgICAgICAgICAgICAgICBpZiBm
aWxlbmFtZS5zdGFydHN3aXRoKCcvJyk6CisgICAgICAgICAgICAgICAgICAgIG9wZW5fZmlsZXMu
YXBwZW5kKChmZCwgZmlsZW5hbWUpKQorCisgICAgICAgIHJldHVybiBvcGVuX2ZpbGVzCisKKyAg
ICBkZWYgbWF0Y2hpbmdfcGxhdGZvcm0oc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IHB5LnByb2Nlc3MuY21kZXhlYygibHNvZiAtdiIpCisgICAgICAgIGV4Y2VwdCAocHkucHJvY2Vz
cy5jbWRleGVjLkVycm9yLCBVbmljb2RlRGVjb2RlRXJyb3IpOgorICAgICAgICAgICAgIyBjbWRl
eGVjIG1heSByYWlzZSBVbmljb2RlRGVjb2RlRXJyb3Igb24gV2luZG93cyBzeXN0ZW1zCisgICAg
ICAgICAgICAjIHdpdGggbG9jYWxlIG90aGVyIHRoYW4gZW5nbGlzaDoKKyAgICAgICAgICAgICMg
aHR0cHM6Ly9iaXRidWNrZXQub3JnL3B5dGVzdC1kZXYvcHkvaXNzdWVzLzY2CisgICAgICAgICAg
ICByZXR1cm4gRmFsc2UKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisK
KyAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUsIHRyeWZpcnN0PVRydWUpCisg
ICAgZGVmIHB5dGVzdF9ydW50ZXN0X3Byb3RvY29sKHNlbGYsIGl0ZW0pOgorICAgICAgICBsaW5l
czEgPSBzZWxmLmdldF9vcGVuX2ZpbGVzKCkKKyAgICAgICAgeWllbGQKKyAgICAgICAgaWYgaGFz
YXR0cihzeXMsICJweXB5X3ZlcnNpb25faW5mbyIpOgorICAgICAgICAgICAgZ2MuY29sbGVjdCgp
CisgICAgICAgIGxpbmVzMiA9IHNlbGYuZ2V0X29wZW5fZmlsZXMoKQorCisgICAgICAgIG5ld19m
ZHMgPSBzZXQoW3RbMF0gZm9yIHQgaW4gbGluZXMyXSkgLSBzZXQoW3RbMF0gZm9yIHQgaW4gbGlu
ZXMxXSkKKyAgICAgICAgbGVha2VkX2ZpbGVzID0gW3QgZm9yIHQgaW4gbGluZXMyIGlmIHRbMF0g
aW4gbmV3X2Zkc10KKyAgICAgICAgaWYgbGVha2VkX2ZpbGVzOgorICAgICAgICAgICAgZXJyb3Ig
PSBbXQorICAgICAgICAgICAgZXJyb3IuYXBwZW5kKCIqKioqKiAlcyBGRCBsZWFrYWdlIGRldGVj
dGVkIiAlIGxlbihsZWFrZWRfZmlsZXMpKQorICAgICAgICAgICAgZXJyb3IuZXh0ZW5kKFtzdHIo
ZikgZm9yIGYgaW4gbGVha2VkX2ZpbGVzXSkKKyAgICAgICAgICAgIGVycm9yLmFwcGVuZCgiKioq
IEJlZm9yZToiKQorICAgICAgICAgICAgZXJyb3IuZXh0ZW5kKFtzdHIoZikgZm9yIGYgaW4gbGlu
ZXMxXSkKKyAgICAgICAgICAgIGVycm9yLmFwcGVuZCgiKioqIEFmdGVyOiIpCisgICAgICAgICAg
ICBlcnJvci5leHRlbmQoW3N0cihmKSBmb3IgZiBpbiBsaW5lczJdKQorICAgICAgICAgICAgZXJy
b3IuYXBwZW5kKGVycm9yWzBdKQorICAgICAgICAgICAgZXJyb3IuYXBwZW5kKCIqKiogZnVuY3Rp
b24gJXM6JXM6ICVzICIgJSBpdGVtLmxvY2F0aW9uKQorICAgICAgICAgICAgZXJyb3IuYXBwZW5k
KCJTZWUgaXNzdWUgIzIzNjYiKQorICAgICAgICAgICAgaXRlbS53YXJuKCcnLCAiXG4iLmpvaW4o
ZXJyb3IpKQorCisKKyMgWFhYIGNvcGllZCBmcm9tIGV4ZWNuZXQncyBjb25mdGVzdC5weSAtIG5l
ZWRzIHRvIGJlIG1lcmdlZAord2lucHltYXAgPSB7CisgICAgJ3B5dGhvbjIuNyc6IHInQzpcUHl0
aG9uMjdccHl0aG9uLmV4ZScsCisgICAgJ3B5dGhvbjMuNCc6IHInQzpcUHl0aG9uMzRccHl0aG9u
LmV4ZScsCisgICAgJ3B5dGhvbjMuNSc6IHInQzpcUHl0aG9uMzVccHl0aG9uLmV4ZScsCisgICAg
J3B5dGhvbjMuNic6IHInQzpcUHl0aG9uMzZccHl0aG9uLmV4ZScsCit9CisKKworZGVmIGdldGV4
ZWN1dGFibGUobmFtZSwgY2FjaGU9e30pOgorICAgIHRyeToKKyAgICAgICAgcmV0dXJuIGNhY2hl
W25hbWVdCisgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICBleGVjdXRhYmxlID0gcHkucGF0
aC5sb2NhbC5zeXNmaW5kKG5hbWUpCisgICAgICAgIGlmIGV4ZWN1dGFibGU6CisgICAgICAgICAg
ICBpbXBvcnQgc3VicHJvY2VzcworICAgICAgICAgICAgcG9wZW4gPSBzdWJwcm9jZXNzLlBvcGVu
KFtzdHIoZXhlY3V0YWJsZSksICItLXZlcnNpb24iXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bml2ZXJzYWxfbmV3bGluZXM9VHJ1ZSwgc3RkZXJyPXN1YnByb2Nlc3Mu
UElQRSkKKyAgICAgICAgICAgIG91dCwgZXJyID0gcG9wZW4uY29tbXVuaWNhdGUoKQorICAgICAg
ICAgICAgaWYgbmFtZSA9PSAianl0aG9uIjoKKyAgICAgICAgICAgICAgICBpZiBub3QgZXJyIG9y
ICIyLjUiIG5vdCBpbiBlcnI6CisgICAgICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBOb25l
CisgICAgICAgICAgICAgICAgaWYgIjIuNS4yIiBpbiBlcnI6CisgICAgICAgICAgICAgICAgICAg
IGV4ZWN1dGFibGUgPSBOb25lICAjIGh0dHA6Ly9idWdzLmp5dGhvbi5vcmcvaXNzdWUxNzkwCisg
ICAgICAgICAgICBlbGlmIHBvcGVuLnJldHVybmNvZGUgIT0gMDoKKyAgICAgICAgICAgICAgICAj
IEhhbmRsZSBweWVudidzIDEyNy4KKyAgICAgICAgICAgICAgICBleGVjdXRhYmxlID0gTm9uZQor
ICAgICAgICBjYWNoZVtuYW1lXSA9IGV4ZWN1dGFibGUKKyAgICAgICAgcmV0dXJuIGV4ZWN1dGFi
bGUKKworCitAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsncHl0aG9uMi43JywgJ3B5dGhvbjMuNCcs
ICdweXB5JywgJ3B5cHkzJ10pCitkZWYgYW55cHl0aG9uKHJlcXVlc3QpOgorICAgIG5hbWUgPSBy
ZXF1ZXN0LnBhcmFtCisgICAgZXhlY3V0YWJsZSA9IGdldGV4ZWN1dGFibGUobmFtZSkKKyAgICBp
ZiBleGVjdXRhYmxlIGlzIE5vbmU6CisgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAid2luMzIi
OgorICAgICAgICAgICAgZXhlY3V0YWJsZSA9IHdpbnB5bWFwLmdldChuYW1lLCBOb25lKQorICAg
ICAgICAgICAgaWYgZXhlY3V0YWJsZToKKyAgICAgICAgICAgICAgICBleGVjdXRhYmxlID0gcHku
cGF0aC5sb2NhbChleGVjdXRhYmxlKQorICAgICAgICAgICAgICAgIGlmIGV4ZWN1dGFibGUuY2hl
Y2soKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV4ZWN1dGFibGUKKyAgICAgICAgcHl0
ZXN0LnNraXAoIm5vIHN1aXRhYmxlICVzIGZvdW5kIiAlIChuYW1lLCkpCisgICAgcmV0dXJuIGV4
ZWN1dGFibGUKKworIyB1c2VkIGF0IGxlYXN0IGJ5IHB5dGVzdC14ZGlzdCBwbHVnaW4KKworCitA
cHl0ZXN0LmZpeHR1cmUKK2RlZiBfcHl0ZXN0KHJlcXVlc3QpOgorICAgICIiIiBSZXR1cm4gYSBo
ZWxwZXIgd2hpY2ggb2ZmZXJzIGEgZ2V0aG9va3JlY29yZGVyKGhvb2spCisgICAgbWV0aG9kIHdo
aWNoIHJldHVybnMgYSBIb29rUmVjb3JkZXIgaW5zdGFuY2Ugd2hpY2ggaGVscHMKKyAgICB0byBt
YWtlIGFzc2VydGlvbnMgYWJvdXQgY2FsbGVkIGhvb2tzLgorICAgICIiIgorICAgIHJldHVybiBQ
eXRlc3RBcmcocmVxdWVzdCkKKworCitjbGFzcyBQeXRlc3RBcmc6CisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHJlcXVlc3QpOgorICAgICAgICBzZWxmLnJlcXVlc3QgPSByZXF1ZXN0CisKKyAgICBk
ZWYgZ2V0aG9va3JlY29yZGVyKHNlbGYsIGhvb2spOgorICAgICAgICBob29rcmVjb3JkZXIgPSBI
b29rUmVjb3JkZXIoaG9vay5fcG0pCisgICAgICAgIHNlbGYucmVxdWVzdC5hZGRmaW5hbGl6ZXIo
aG9va3JlY29yZGVyLmZpbmlzaF9yZWNvcmRpbmcpCisgICAgICAgIHJldHVybiBob29rcmVjb3Jk
ZXIKKworCitkZWYgZ2V0X3B1YmxpY19uYW1lcyh2YWx1ZXMpOgorICAgICIiIk9ubHkgcmV0dXJu
IG5hbWVzIGZyb20gaXRlcmF0b3IgdmFsdWVzIHdpdGhvdXQgYSBsZWFkaW5nIHVuZGVyc2NvcmUu
IiIiCisgICAgcmV0dXJuIFt4IGZvciB4IGluIHZhbHVlcyBpZiB4WzBdICE9ICJfIl0KKworCitj
bGFzcyBQYXJzZWRDYWxsOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBrd2FyZ3MpOgor
ICAgICAgICBzZWxmLl9fZGljdF9fLnVwZGF0ZShrd2FyZ3MpCisgICAgICAgIHNlbGYuX25hbWUg
PSBuYW1lCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIGQgPSBzZWxmLl9fZGlj
dF9fLmNvcHkoKQorICAgICAgICBkZWwgZFsnX25hbWUnXQorICAgICAgICByZXR1cm4gIjxQYXJz
ZWRDYWxsICVyKCoqJXIpPiIgJSAoc2VsZi5fbmFtZSwgZCkKKworCitjbGFzcyBIb29rUmVjb3Jk
ZXI6CisgICAgIiIiUmVjb3JkIGFsbCBob29rcyBjYWxsZWQgaW4gYSBwbHVnaW4gbWFuYWdlci4K
KworICAgIFRoaXMgd3JhcHMgYWxsIHRoZSBob29rIGNhbGxzIGluIHRoZSBwbHVnaW4gbWFuYWdl
ciwgcmVjb3JkaW5nCisgICAgZWFjaCBjYWxsIGJlZm9yZSBwcm9wYWdhdGluZyB0aGUgbm9ybWFs
IGNhbGxzLgorCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcGx1Z2lubWFuYWdl
cik6CisgICAgICAgIHNlbGYuX3BsdWdpbm1hbmFnZXIgPSBwbHVnaW5tYW5hZ2VyCisgICAgICAg
IHNlbGYuY2FsbHMgPSBbXQorCisgICAgICAgIGRlZiBiZWZvcmUoaG9va19uYW1lLCBob29rX2lt
cGxzLCBrd2FyZ3MpOgorICAgICAgICAgICAgc2VsZi5jYWxscy5hcHBlbmQoUGFyc2VkQ2FsbCho
b29rX25hbWUsIGt3YXJncykpCisKKyAgICAgICAgZGVmIGFmdGVyKG91dGNvbWUsIGhvb2tfbmFt
ZSwgaG9va19pbXBscywga3dhcmdzKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBzZWxm
Ll91bmRvX3dyYXBwaW5nID0gcGx1Z2lubWFuYWdlci5hZGRfaG9va2NhbGxfbW9uaXRvcmluZyhi
ZWZvcmUsIGFmdGVyKQorCisgICAgZGVmIGZpbmlzaF9yZWNvcmRpbmcoc2VsZik6CisgICAgICAg
IHNlbGYuX3VuZG9fd3JhcHBpbmcoKQorCisgICAgZGVmIGdldGNhbGxzKHNlbGYsIG5hbWVzKToK
KyAgICAgICAgaWYgaXNpbnN0YW5jZShuYW1lcywgc3RyKToKKyAgICAgICAgICAgIG5hbWVzID0g
bmFtZXMuc3BsaXQoKQorICAgICAgICByZXR1cm4gW2NhbGwgZm9yIGNhbGwgaW4gc2VsZi5jYWxs
cyBpZiBjYWxsLl9uYW1lIGluIG5hbWVzXQorCisgICAgZGVmIGFzc2VydF9jb250YWlucyhzZWxm
LCBlbnRyaWVzKToKKyAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgICAgIGkg
PSAwCisgICAgICAgIGVudHJpZXMgPSBsaXN0KGVudHJpZXMpCisgICAgICAgIGJhY2tsb2NhbHMg
PSBzeXMuX2dldGZyYW1lKDEpLmZfbG9jYWxzCisgICAgICAgIHdoaWxlIGVudHJpZXM6CisgICAg
ICAgICAgICBuYW1lLCBjaGVjayA9IGVudHJpZXMucG9wKDApCisgICAgICAgICAgICBmb3IgaW5k
LCBjYWxsIGluIGVudW1lcmF0ZShzZWxmLmNhbGxzW2k6XSk6CisgICAgICAgICAgICAgICAgaWYg
Y2FsbC5fbmFtZSA9PSBuYW1lOgorICAgICAgICAgICAgICAgICAgICBwcmludCgiTkFNRU1BVENI
IiwgbmFtZSwgY2FsbCkKKyAgICAgICAgICAgICAgICAgICAgaWYgZXZhbChjaGVjaywgYmFja2xv
Y2FscywgY2FsbC5fX2RpY3RfXyk6CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCgiQ0hF
Q0tFUk1BVENIIiwgcmVwcihjaGVjayksICItPiIsIGNhbGwpCisgICAgICAgICAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCgiTk9DSEVDS0VSTUFUQ0giLCBy
ZXByKGNoZWNrKSwgIi0iLCBjYWxsKQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUK
KyAgICAgICAgICAgICAgICAgICAgaSArPSBpbmQgKyAxCisgICAgICAgICAgICAgICAgICAgIGJy
ZWFrCisgICAgICAgICAgICAgICAgcHJpbnQoIk5PTkFNRU1BVENIIiwgbmFtZSwgIndpdGgiLCBj
YWxsKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBweXRlc3QuZmFpbCgiY291
bGQgbm90IGZpbmQgJXIgY2hlY2sgJXIiICUgKG5hbWUsIGNoZWNrKSkKKworICAgIGRlZiBwb3Bj
YWxsKHNlbGYsIG5hbWUpOgorICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKKyAgICAg
ICAgZm9yIGksIGNhbGwgaW4gZW51bWVyYXRlKHNlbGYuY2FsbHMpOgorICAgICAgICAgICAgaWYg
Y2FsbC5fbmFtZSA9PSBuYW1lOgorICAgICAgICAgICAgICAgIGRlbCBzZWxmLmNhbGxzW2ldCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGNhbGwKKyAgICAgICAgbGluZXMgPSBbImNvdWxkIG5vdCBm
aW5kIGNhbGwgJXIsIGluOiIgJSAobmFtZSwpXQorICAgICAgICBsaW5lcy5leHRlbmQoWyIgICVz
IiAlIHN0cih4KSBmb3IgeCBpbiBzZWxmLmNhbGxzXSkKKyAgICAgICAgcHl0ZXN0LmZhaWwoIlxu
Ii5qb2luKGxpbmVzKSkKKworICAgIGRlZiBnZXRjYWxsKHNlbGYsIG5hbWUpOgorICAgICAgICB2
YWx1ZXMgPSBzZWxmLmdldGNhbGxzKG5hbWUpCisgICAgICAgIGFzc2VydCBsZW4odmFsdWVzKSA9
PSAxLCAobmFtZSwgdmFsdWVzKQorICAgICAgICByZXR1cm4gdmFsdWVzWzBdCisKKyAgICAjIGZ1
bmN0aW9uYWxpdHkgZm9yIHRlc3QgcmVwb3J0cworCisgICAgZGVmIGdldHJlcG9ydHMoc2VsZiwK
KyAgICAgICAgICAgICAgICAgICBuYW1lcz0icHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0IHB5dGVz
dF9jb2xsZWN0cmVwb3J0Iik6CisgICAgICAgIHJldHVybiBbeC5yZXBvcnQgZm9yIHggaW4gc2Vs
Zi5nZXRjYWxscyhuYW1lcyldCisKKyAgICBkZWYgbWF0Y2hyZXBvcnQoc2VsZiwgaW5hbWVwYXJ0
PSIiLAorICAgICAgICAgICAgICAgICAgICBuYW1lcz0icHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0
IHB5dGVzdF9jb2xsZWN0cmVwb3J0Iiwgd2hlbj1Ob25lKToKKyAgICAgICAgIiIiIHJldHVybiBh
IHRlc3RyZXBvcnQgd2hvc2UgZG90dGVkIGltcG9ydCBwYXRoIG1hdGNoZXMgIiIiCisgICAgICAg
IHZhbHVlcyA9IFtdCisgICAgICAgIGZvciByZXAgaW4gc2VsZi5nZXRyZXBvcnRzKG5hbWVzPW5h
bWVzKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBpZiBub3Qgd2hlbiBhbmQg
cmVwLndoZW4gIT0gImNhbGwiIGFuZCByZXAucGFzc2VkOgorICAgICAgICAgICAgICAgICAgICAj
IHNldHVwL3RlYXJkb3duIHBhc3NpbmcgcmVwb3J0cyAtIGxldCdzIGlnbm9yZSB0aG9zZQorICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVy
cm9yOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGlmIHdoZW4gYW5kIGdldGF0
dHIocmVwLCAnd2hlbicsIE5vbmUpICE9IHdoZW46CisgICAgICAgICAgICAgICAgY29udGludWUK
KyAgICAgICAgICAgIGlmIG5vdCBpbmFtZXBhcnQgb3IgaW5hbWVwYXJ0IGluIHJlcC5ub2RlaWQu
c3BsaXQoIjo6Iik6CisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChyZXApCisgICAgICAg
IGlmIG5vdCB2YWx1ZXM6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJjb3VsZCBub3Qg
ZmluZCB0ZXN0IHJlcG9ydCBtYXRjaGluZyAlcjogIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAibm8gdGVzdCByZXBvcnRzIGF0IGFsbCEiICUgKGluYW1lcGFydCwpKQorICAgICAgICBp
ZiBsZW4odmFsdWVzKSA+IDE6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAg
ICAgICAgICAgICJmb3VuZCAyIG9yIG1vcmUgdGVzdHJlcG9ydHMgbWF0Y2hpbmcgJXI6ICVzIiAl
IChpbmFtZXBhcnQsIHZhbHVlcykpCisgICAgICAgIHJldHVybiB2YWx1ZXNbMF0KKworICAgIGRl
ZiBnZXRmYWlsdXJlcyhzZWxmLAorICAgICAgICAgICAgICAgICAgICBuYW1lcz0ncHl0ZXN0X3J1
bnRlc3RfbG9ncmVwb3J0IHB5dGVzdF9jb2xsZWN0cmVwb3J0Jyk6CisgICAgICAgIHJldHVybiBb
cmVwIGZvciByZXAgaW4gc2VsZi5nZXRyZXBvcnRzKG5hbWVzKSBpZiByZXAuZmFpbGVkXQorCisg
ICAgZGVmIGdldGZhaWxlZGNvbGxlY3Rpb25zKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5n
ZXRmYWlsdXJlcygncHl0ZXN0X2NvbGxlY3RyZXBvcnQnKQorCisgICAgZGVmIGxpc3RvdXRjb21l
cyhzZWxmKToKKyAgICAgICAgcGFzc2VkID0gW10KKyAgICAgICAgc2tpcHBlZCA9IFtdCisgICAg
ICAgIGZhaWxlZCA9IFtdCisgICAgICAgIGZvciByZXAgaW4gc2VsZi5nZXRyZXBvcnRzKAorICAg
ICAgICAgICAgICAgICJweXRlc3RfY29sbGVjdHJlcG9ydCBweXRlc3RfcnVudGVzdF9sb2dyZXBv
cnQiKToKKyAgICAgICAgICAgIGlmIHJlcC5wYXNzZWQ6CisgICAgICAgICAgICAgICAgaWYgZ2V0
YXR0cihyZXAsICJ3aGVuIiwgTm9uZSkgPT0gImNhbGwiOgorICAgICAgICAgICAgICAgICAgICBw
YXNzZWQuYXBwZW5kKHJlcCkKKyAgICAgICAgICAgIGVsaWYgcmVwLnNraXBwZWQ6CisgICAgICAg
ICAgICAgICAgc2tpcHBlZC5hcHBlbmQocmVwKQorICAgICAgICAgICAgZWxpZiByZXAuZmFpbGVk
OgorICAgICAgICAgICAgICAgIGZhaWxlZC5hcHBlbmQocmVwKQorICAgICAgICByZXR1cm4gcGFz
c2VkLCBza2lwcGVkLCBmYWlsZWQKKworICAgIGRlZiBjb3VudG91dGNvbWVzKHNlbGYpOgorICAg
ICAgICByZXR1cm4gW2xlbih4KSBmb3IgeCBpbiBzZWxmLmxpc3RvdXRjb21lcygpXQorCisgICAg
ZGVmIGFzc2VydG91dGNvbWUoc2VsZiwgcGFzc2VkPTAsIHNraXBwZWQ9MCwgZmFpbGVkPTApOgor
ICAgICAgICByZWFscGFzc2VkLCByZWFsc2tpcHBlZCwgcmVhbGZhaWxlZCA9IHNlbGYubGlzdG91
dGNvbWVzKCkKKyAgICAgICAgYXNzZXJ0IHBhc3NlZCA9PSBsZW4ocmVhbHBhc3NlZCkKKyAgICAg
ICAgYXNzZXJ0IHNraXBwZWQgPT0gbGVuKHJlYWxza2lwcGVkKQorICAgICAgICBhc3NlcnQgZmFp
bGVkID09IGxlbihyZWFsZmFpbGVkKQorCisgICAgZGVmIGNsZWFyKHNlbGYpOgorICAgICAgICBz
ZWxmLmNhbGxzWzpdID0gW10KKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBsaW5lY29tcChyZXF1
ZXN0KToKKyAgICByZXR1cm4gTGluZUNvbXAoKQorCisKK0BweXRlc3QuZml4dHVyZShuYW1lPSdM
aW5lTWF0Y2hlcicpCitkZWYgTGluZU1hdGNoZXJfZml4dHVyZShyZXF1ZXN0KToKKyAgICByZXR1
cm4gTGluZU1hdGNoZXIKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiB0ZXN0ZGlyKHJlcXVlc3Qs
IHRtcGRpcl9mYWN0b3J5KToKKyAgICByZXR1cm4gVGVzdGRpcihyZXF1ZXN0LCB0bXBkaXJfZmFj
dG9yeSkKKworCityZXhfb3V0Y29tZSA9IHJlLmNvbXBpbGUociIoXGQrKSAoW1x3LV0rKSIpCisK
KworY2xhc3MgUnVuUmVzdWx0OgorICAgICIiIlRoZSByZXN1bHQgb2YgcnVubmluZyBhIGNvbW1h
bmQuCisKKyAgICBBdHRyaWJ1dGVzOgorCisgICAgOnJldDogVGhlIHJldHVybiB2YWx1ZS4KKyAg
ICA6b3V0bGluZXM6IExpc3Qgb2YgbGluZXMgY2FwdHVyZWQgZnJvbSBzdGRvdXQuCisgICAgOmVy
cmxpbmVzOiBMaXN0IG9mIGxpbmVzIGNhcHR1cmVzIGZyb20gc3RkZXJyLgorICAgIDpzdGRvdXQ6
IDpweTpjbGFzczpgTGluZU1hdGNoZXJgIG9mIHN0ZG91dCwgdXNlIGBgc3Rkb3V0LnN0cigpYGAg
dG8KKyAgICAgICByZWNvbnN0cnVjdCBzdGRvdXQgb3IgdGhlIGNvbW1vbmx5IHVzZWQKKyAgICAg
ICBgYHN0ZG91dC5mbm1hdGNoX2xpbmVzKClgYCBtZXRob2QuCisgICAgOnN0ZGVycnI6IDpweTpj
bGFzczpgTGluZU1hdGNoZXJgIG9mIHN0ZGVyci4KKyAgICA6ZHVyYXRpb246IER1cmF0aW9uIGlu
IHNlY29uZHMuCisKKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXQsIG91dGxp
bmVzLCBlcnJsaW5lcywgZHVyYXRpb24pOgorICAgICAgICBzZWxmLnJldCA9IHJldAorICAgICAg
ICBzZWxmLm91dGxpbmVzID0gb3V0bGluZXMKKyAgICAgICAgc2VsZi5lcnJsaW5lcyA9IGVycmxp
bmVzCisgICAgICAgIHNlbGYuc3Rkb3V0ID0gTGluZU1hdGNoZXIob3V0bGluZXMpCisgICAgICAg
IHNlbGYuc3RkZXJyID0gTGluZU1hdGNoZXIoZXJybGluZXMpCisgICAgICAgIHNlbGYuZHVyYXRp
b24gPSBkdXJhdGlvbgorCisgICAgZGVmIHBhcnNlb3V0Y29tZXMoc2VsZik6CisgICAgICAgICIi
IiBSZXR1cm4gYSBkaWN0aW9uYXJ5IG9mIG91dGNvbWVzdHJpbmctPm51bSBmcm9tIHBhcnNpbmcK
KyAgICAgICAgdGhlIHRlcm1pbmFsIG91dHB1dCB0aGF0IHRoZSB0ZXN0IHByb2Nlc3MgcHJvZHVj
ZWQuIiIiCisgICAgICAgIGZvciBsaW5lIGluIHJldmVyc2VkKHNlbGYub3V0bGluZXMpOgorICAg
ICAgICAgICAgaWYgJ3NlY29uZHMnIGluIGxpbmU6CisgICAgICAgICAgICAgICAgb3V0Y29tZXMg
PSByZXhfb3V0Y29tZS5maW5kYWxsKGxpbmUpCisgICAgICAgICAgICAgICAgaWYgb3V0Y29tZXM6
CisgICAgICAgICAgICAgICAgICAgIGQgPSB7fQorICAgICAgICAgICAgICAgICAgICBmb3IgbnVt
LCBjYXQgaW4gb3V0Y29tZXM6CisgICAgICAgICAgICAgICAgICAgICAgICBkW2NhdF0gPSBpbnQo
bnVtKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZAorICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCJQeXRlc3QgdGVybWluYWwgcmVwb3J0IG5vdCBmb3VuZCIpCisKKyAgICBkZWYgYXNzZXJ0
X291dGNvbWVzKHNlbGYsIHBhc3NlZD0wLCBza2lwcGVkPTAsIGZhaWxlZD0wLCBlcnJvcj0wKToK
KyAgICAgICAgIiIiIGFzc2VydCB0aGF0IHRoZSBzcGVjaWZpZWQgb3V0Y29tZXMgYXBwZWFyIHdp
dGggdGhlIHJlc3BlY3RpdmUKKyAgICAgICAgbnVtYmVycyAoMCBtZWFucyBpdCBkaWRuJ3Qgb2Nj
dXIpIGluIHRoZSB0ZXh0IG91dHB1dCBmcm9tIGEgdGVzdCBydW4uIiIiCisgICAgICAgIGQgPSBz
ZWxmLnBhcnNlb3V0Y29tZXMoKQorICAgICAgICBvYnRhaW5lZCA9IHsKKyAgICAgICAgICAgICdw
YXNzZWQnOiBkLmdldCgncGFzc2VkJywgMCksCisgICAgICAgICAgICAnc2tpcHBlZCc6IGQuZ2V0
KCdza2lwcGVkJywgMCksCisgICAgICAgICAgICAnZmFpbGVkJzogZC5nZXQoJ2ZhaWxlZCcsIDAp
LAorICAgICAgICAgICAgJ2Vycm9yJzogZC5nZXQoJ2Vycm9yJywgMCksCisgICAgICAgIH0KKyAg
ICAgICAgYXNzZXJ0IG9idGFpbmVkID09IGRpY3QocGFzc2VkPXBhc3NlZCwgc2tpcHBlZD1za2lw
cGVkLCBmYWlsZWQ9ZmFpbGVkLCBlcnJvcj1lcnJvcikKKworCitjbGFzcyBUZXN0ZGlyOgorICAg
ICIiIlRlbXBvcmFyeSB0ZXN0IGRpcmVjdG9yeSB3aXRoIHRvb2xzIHRvIHRlc3QvcnVuIHB5dGVz
dCBpdHNlbGYuCisKKyAgICBUaGlzIGlzIGJhc2VkIG9uIHRoZSBgYHRtcGRpcmBgIGZpeHR1cmUg
YnV0IHByb3ZpZGVzIGEgbnVtYmVyIG9mCisgICAgbWV0aG9kcyB3aGljaCBhaWQgd2l0aCB0ZXN0
aW5nIHB5dGVzdCBpdHNlbGYuICBVbmxlc3MKKyAgICA6cHk6bWV0aDpgY2hkaXJgIGlzIHVzZWQg
YWxsIG1ldGhvZHMgd2lsbCB1c2UgOnB5OmF0dHI6YHRtcGRpcmAgYXMKKyAgICBjdXJyZW50IHdv
cmtpbmcgZGlyZWN0b3J5LgorCisgICAgQXR0cmlidXRlczoKKworICAgIDp0bXBkaXI6IFRoZSA6
cHk6Y2xhc3M6YHB5LnBhdGgubG9jYWxgIGluc3RhbmNlIG9mIHRoZSB0ZW1wb3JhcnkKKyAgICAg
ICBkaXJlY3RvcnkuCisKKyAgICA6cGx1Z2luczogQSBsaXN0IG9mIHBsdWdpbnMgdG8gdXNlIHdp
dGggOnB5Om1ldGg6YHBhcnNlY29uZmlnYCBhbmQKKyAgICAgICA6cHk6bWV0aDpgcnVucHl0ZXN0
YC4gIEluaXRpYWxseSB0aGlzIGlzIGFuIGVtcHR5IGxpc3QgYnV0CisgICAgICAgcGx1Z2lucyBj
YW4gYmUgYWRkZWQgdG8gdGhlIGxpc3QuICBUaGUgdHlwZSBvZiBpdGVtcyB0byBhZGQgdG8KKyAg
ICAgICB0aGUgbGlzdCBkZXBlbmQgb24gdGhlIG1ldGhvZCB3aGljaCB1c2VzIHRoZW0gc28gcmVm
ZXIgdG8gdGhlbQorICAgICAgIGZvciBkZXRhaWxzLgorCisgICAgIiIiCisKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgcmVxdWVzdCwgdG1wZGlyX2ZhY3RvcnkpOgorICAgICAgICBzZWxmLnJlcXVl
c3QgPSByZXF1ZXN0CisgICAgICAgIHNlbGYuX21vZF9jb2xsZWN0aW9ucyA9IFdlYWtLZXlEaWN0
aW9uYXJ5KCkKKyAgICAgICAgbmFtZSA9IHJlcXVlc3QuZnVuY3Rpb24uX19uYW1lX18KKyAgICAg
ICAgc2VsZi50bXBkaXIgPSB0bXBkaXJfZmFjdG9yeS5ta3RlbXAobmFtZSwgbnVtYmVyZWQ9VHJ1
ZSkKKyAgICAgICAgc2VsZi5wbHVnaW5zID0gW10KKyAgICAgICAgc2VsZi5fc2F2ZXN5c3BhdGgg
PSAobGlzdChzeXMucGF0aCksIGxpc3Qoc3lzLm1ldGFfcGF0aCkpCisgICAgICAgIHNlbGYuX3Nh
dmVtb2R1bGVrZXlzID0gc2V0KHN5cy5tb2R1bGVzKQorICAgICAgICBzZWxmLmNoZGlyKCkgICMg
YWx3YXlzIGNoZGlyCisgICAgICAgIHNlbGYucmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi5maW5h
bGl6ZSkKKyAgICAgICAgbWV0aG9kID0gc2VsZi5yZXF1ZXN0LmNvbmZpZy5nZXRvcHRpb24oIi0t
cnVucHl0ZXN0IikKKyAgICAgICAgaWYgbWV0aG9kID09ICJpbnByb2Nlc3MiOgorICAgICAgICAg
ICAgc2VsZi5fcnVucHl0ZXN0X21ldGhvZCA9IHNlbGYucnVucHl0ZXN0X2lucHJvY2VzcworICAg
ICAgICBlbGlmIG1ldGhvZCA9PSAic3VicHJvY2VzcyI6CisgICAgICAgICAgICBzZWxmLl9ydW5w
eXRlc3RfbWV0aG9kID0gc2VsZi5ydW5weXRlc3Rfc3VicHJvY2VzcworCisgICAgZGVmIF9fcmVw
cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gIjxUZXN0ZGlyICVyPiIgJSAoc2VsZi50bXBkaXIs
KQorCisgICAgZGVmIGZpbmFsaXplKHNlbGYpOgorICAgICAgICAiIiJDbGVhbiB1cCBnbG9iYWwg
c3RhdGUgYXJ0aWZhY3RzLgorCisgICAgICAgIFNvbWUgbWV0aG9kcyBtb2RpZnkgdGhlIGdsb2Jh
bCBpbnRlcnByZXRlciBzdGF0ZSBhbmQgdGhpcworICAgICAgICB0cmllcyB0byBjbGVhbiB0aGlz
IHVwLiAgSXQgZG9lcyBub3QgcmVtb3ZlIHRoZSB0ZW1wb3JhcnkKKyAgICAgICAgZGlyZWN0b3J5
IGhvd2V2ZXIgc28gaXQgY2FuIGJlIGxvb2tlZCBhdCBhZnRlciB0aGUgdGVzdCBydW4KKyAgICAg
ICAgaGFzIGZpbmlzaGVkLgorCisgICAgICAgICIiIgorICAgICAgICBzeXMucGF0aFs6XSwgc3lz
Lm1ldGFfcGF0aFs6XSA9IHNlbGYuX3NhdmVzeXNwYXRoCisgICAgICAgIGlmIGhhc2F0dHIoc2Vs
ZiwgJ19vbGRkaXInKToKKyAgICAgICAgICAgIHNlbGYuX29sZGRpci5jaGRpcigpCisgICAgICAg
IHNlbGYuZGVsZXRlX2xvYWRlZF9tb2R1bGVzKCkKKworICAgIGRlZiBkZWxldGVfbG9hZGVkX21v
ZHVsZXMoc2VsZik6CisgICAgICAgICIiIkRlbGV0ZSBtb2R1bGVzIHRoYXQgaGF2ZSBiZWVuIGxv
YWRlZCBkdXJpbmcgYSB0ZXN0LgorCisgICAgICAgIFRoaXMgYWxsb3dzIHRoZSBpbnRlcnByZXRl
ciB0byBjYXRjaCBtb2R1bGUgY2hhbmdlcyBpbiBjYXNlCisgICAgICAgIHRoZSBtb2R1bGUgaXMg
cmUtaW1wb3J0ZWQuCisgICAgICAgICIiIgorICAgICAgICBmb3IgbmFtZSBpbiBzZXQoc3lzLm1v
ZHVsZXMpLmRpZmZlcmVuY2Uoc2VsZi5fc2F2ZW1vZHVsZWtleXMpOgorICAgICAgICAgICAgIyBz
b21lIHpvcGUgbW9kdWxlcyB1c2VkIGJ5IHR3aXN0ZWQtcmVsYXRlZCB0ZXN0cyBrZWVwcyBpbnRl
cm5hbAorICAgICAgICAgICAgIyBzdGF0ZSBhbmQgY2FuJ3QgYmUgZGVsZXRlZDsgd2UgaGFkIHNv
bWUgdHJvdWJsZSBpbiB0aGUgcGFzdAorICAgICAgICAgICAgIyB3aXRoIHpvcGUuaW50ZXJmYWNl
IGZvciBleGFtcGxlCisgICAgICAgICAgICBpZiBub3QgbmFtZS5zdGFydHN3aXRoKCJ6b3BlIik6
CisgICAgICAgICAgICAgICAgZGVsIHN5cy5tb2R1bGVzW25hbWVdCisKKyAgICBkZWYgbWFrZV9o
b29rX3JlY29yZGVyKHNlbGYsIHBsdWdpbm1hbmFnZXIpOgorICAgICAgICAiIiJDcmVhdGUgYSBu
ZXcgOnB5OmNsYXNzOmBIb29rUmVjb3JkZXJgIGZvciBhIFBsdWdpbk1hbmFnZXIuIiIiCisgICAg
ICAgIGFzc2VydCBub3QgaGFzYXR0cihwbHVnaW5tYW5hZ2VyLCAicmVwcmVjIikKKyAgICAgICAg
cGx1Z2lubWFuYWdlci5yZXByZWMgPSByZXByZWMgPSBIb29rUmVjb3JkZXIocGx1Z2lubWFuYWdl
cikKKyAgICAgICAgc2VsZi5yZXF1ZXN0LmFkZGZpbmFsaXplcihyZXByZWMuZmluaXNoX3JlY29y
ZGluZykKKyAgICAgICAgcmV0dXJuIHJlcHJlYworCisgICAgZGVmIGNoZGlyKHNlbGYpOgorICAg
ICAgICAiIiJDZCBpbnRvIHRoZSB0ZW1wb3JhcnkgZGlyZWN0b3J5LgorCisgICAgICAgIFRoaXMg
aXMgZG9uZSBhdXRvbWF0aWNhbGx5IHVwb24gaW5zdGFudGlhdGlvbi4KKworICAgICAgICAiIiIK
KyAgICAgICAgb2xkID0gc2VsZi50bXBkaXIuY2hkaXIoKQorICAgICAgICBpZiBub3QgaGFzYXR0
cihzZWxmLCAnX29sZGRpcicpOgorICAgICAgICAgICAgc2VsZi5fb2xkZGlyID0gb2xkCisKKyAg
ICBkZWYgX21ha2VmaWxlKHNlbGYsIGV4dCwgYXJncywga3dhcmdzLCBlbmNvZGluZz0ndXRmLTgn
KToKKyAgICAgICAgaXRlbXMgPSBsaXN0KGt3YXJncy5pdGVtcygpKQorCisgICAgICAgIGRlZiB0
b190ZXh0KHMpOgorICAgICAgICAgICAgcmV0dXJuIHMuZGVjb2RlKGVuY29kaW5nKSBpZiBpc2lu
c3RhbmNlKHMsIGJ5dGVzKSBlbHNlIHNpeC50ZXh0X3R5cGUocykKKworICAgICAgICBpZiBhcmdz
OgorICAgICAgICAgICAgc291cmNlID0gdSJcbiIuam9pbih0b190ZXh0KHgpIGZvciB4IGluIGFy
Z3MpCisgICAgICAgICAgICBiYXNlbmFtZSA9IHNlbGYucmVxdWVzdC5mdW5jdGlvbi5fX25hbWVf
XworICAgICAgICAgICAgaXRlbXMuaW5zZXJ0KDAsIChiYXNlbmFtZSwgc291cmNlKSkKKworICAg
ICAgICByZXQgPSBOb25lCisgICAgICAgIGZvciBiYXNlbmFtZSwgdmFsdWUgaW4gaXRlbXM6Cisg
ICAgICAgICAgICBwID0gc2VsZi50bXBkaXIuam9pbihiYXNlbmFtZSkubmV3KGV4dD1leHQpCisg
ICAgICAgICAgICBwLmRpcnBhdGgoKS5lbnN1cmVfZGlyKCkKKyAgICAgICAgICAgIHNvdXJjZSA9
IFNvdXJjZSh2YWx1ZSkKKyAgICAgICAgICAgIHNvdXJjZSA9IHUiXG4iLmpvaW4odG9fdGV4dChs
aW5lKSBmb3IgbGluZSBpbiBzb3VyY2UubGluZXMpCisgICAgICAgICAgICBwLndyaXRlKHNvdXJj
ZS5zdHJpcCgpLmVuY29kZShlbmNvZGluZyksICJ3YiIpCisgICAgICAgICAgICBpZiByZXQgaXMg
Tm9uZToKKyAgICAgICAgICAgICAgICByZXQgPSBwCisgICAgICAgIHJldHVybiByZXQKKworICAg
IGRlZiBtYWtlZmlsZShzZWxmLCBleHQsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICIiIkNy
ZWF0ZSBhIG5ldyBmaWxlIGluIHRoZSB0ZXN0ZGlyLgorCisgICAgICAgIGV4dDogVGhlIGV4dGVu
c2lvbiB0aGUgZmlsZSBzaG91bGQgdXNlLCBpbmNsdWRpbmcgdGhlIGRvdC4KKyAgICAgICAgICAg
RS5nLiAiLnB5Ii4KKworICAgICAgICBhcmdzOiBBbGwgYXJncyB3aWxsIGJlIHRyZWF0ZWQgYXMg
c3RyaW5ncyBhbmQgam9pbmVkIHVzaW5nCisgICAgICAgICAgIG5ld2xpbmVzLiAgVGhlIHJlc3Vs
dCB3aWxsIGJlIHdyaXR0ZW4gYXMgY29udGVudHMgdG8gdGhlCisgICAgICAgICAgIGZpbGUuICBU
aGUgbmFtZSBvZiB0aGUgZmlsZSB3aWxsIGJlIGJhc2VkIG9uIHRoZSB0ZXN0CisgICAgICAgICAg
IGZ1bmN0aW9uIHJlcXVlc3RpbmcgdGhpcyBmaXh0dXJlLgorICAgICAgICAgICBFLmcuICJ0ZXN0
ZGlyLm1ha2VmaWxlKCcudHh0JywgJ2xpbmUxJywgJ2xpbmUyJykiCisKKyAgICAgICAga3dhcmdz
OiBFYWNoIGtleXdvcmQgaXMgdGhlIG5hbWUgb2YgYSBmaWxlLCB3aGlsZSB0aGUgdmFsdWUgb2YK
KyAgICAgICAgICAgaXQgd2lsbCBiZSB3cml0dGVuIGFzIGNvbnRlbnRzIG9mIHRoZSBmaWxlLgor
ICAgICAgICAgICBFLmcuICJ0ZXN0ZGlyLm1ha2VmaWxlKCcuaW5pJywgcHl0ZXN0PSdbcHl0ZXN0
XVxuYWRkb3B0cz0tcnNcbicpIgorCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5f
bWFrZWZpbGUoZXh0LCBhcmdzLCBrd2FyZ3MpCisKKyAgICBkZWYgbWFrZWNvbmZ0ZXN0KHNlbGYs
IHNvdXJjZSk6CisgICAgICAgICIiIldyaXRlIGEgY29udGVzdC5weSBmaWxlIHdpdGggJ3NvdXJj
ZScgYXMgY29udGVudHMuIiIiCisgICAgICAgIHJldHVybiBzZWxmLm1ha2VweWZpbGUoY29uZnRl
c3Q9c291cmNlKQorCisgICAgZGVmIG1ha2Vpbmkoc2VsZiwgc291cmNlKToKKyAgICAgICAgIiIi
V3JpdGUgYSB0b3guaW5pIGZpbGUgd2l0aCAnc291cmNlJyBhcyBjb250ZW50cy4iIiIKKyAgICAg
ICAgcmV0dXJuIHNlbGYubWFrZWZpbGUoJy5pbmknLCB0b3g9c291cmNlKQorCisgICAgZGVmIGdl
dGluaWNmZyhzZWxmLCBzb3VyY2UpOgorICAgICAgICAiIiJSZXR1cm4gdGhlIHB5dGVzdCBzZWN0
aW9uIGZyb20gdGhlIHRveC5pbmkgY29uZmlnIGZpbGUuIiIiCisgICAgICAgIHAgPSBzZWxmLm1h
a2Vpbmkoc291cmNlKQorICAgICAgICByZXR1cm4gcHkuaW5pY29uZmlnLkluaUNvbmZpZyhwKVsn
cHl0ZXN0J10KKworICAgIGRlZiBtYWtlcHlmaWxlKHNlbGYsICphcmdzLCAqKmt3YXJncyk6Cisg
ICAgICAgICIiIlNob3J0Y3V0IGZvciAubWFrZWZpbGUoKSB3aXRoIGEgLnB5IGV4dGVuc2lvbi4i
IiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX21ha2VmaWxlKCcucHknLCBhcmdzLCBrd2FyZ3MpCisK
KyAgICBkZWYgbWFrZXR4dGZpbGUoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIi
U2hvcnRjdXQgZm9yIC5tYWtlZmlsZSgpIHdpdGggYSAudHh0IGV4dGVuc2lvbi4iIiIKKyAgICAg
ICAgcmV0dXJuIHNlbGYuX21ha2VmaWxlKCcudHh0JywgYXJncywga3dhcmdzKQorCisgICAgZGVm
IHN5c3BhdGhpbnNlcnQoc2VsZiwgcGF0aD1Ob25lKToKKyAgICAgICAgIiIiUHJlcGVuZCBhIGRp
cmVjdG9yeSB0byBzeXMucGF0aCwgZGVmYXVsdHMgdG8gOnB5OmF0dHI6YHRtcGRpcmAuCisKKyAg
ICAgICAgVGhpcyBpcyB1bmRvbmUgYXV0b21hdGljYWxseSBhZnRlciB0aGUgdGVzdC4KKyAgICAg
ICAgIiIiCisgICAgICAgIGlmIHBhdGggaXMgTm9uZToKKyAgICAgICAgICAgIHBhdGggPSBzZWxm
LnRtcGRpcgorICAgICAgICBzeXMucGF0aC5pbnNlcnQoMCwgc3RyKHBhdGgpKQorICAgICAgICAj
IGEgY2FsbCB0byBzeXNwYXRoaW5zZXJ0KCkgdXN1YWxseSBtZWFucyB0aGF0IHRoZSBjYWxsZXIK
KyAgICAgICAgIyB3YW50cyB0byBpbXBvcnQgc29tZSBkeW5hbWljYWxseSBjcmVhdGVkIGZpbGVz
LgorICAgICAgICAjIHdpdGggcHl0aG9uMyB3ZSB0aHVzIGludmFsaWRhdGUgaW1wb3J0IGNhY2hl
cy4KKyAgICAgICAgc2VsZi5fcG9zc2libHlfaW52YWxpZGF0ZV9pbXBvcnRfY2FjaGVzKCkKKwor
ICAgIGRlZiBfcG9zc2libHlfaW52YWxpZGF0ZV9pbXBvcnRfY2FjaGVzKHNlbGYpOgorICAgICAg
ICAjIGludmFsaWRhdGUgY2FjaGVzIGlmIHdlIGNhbiAocHkzMyBhbmQgYWJvdmUpCisgICAgICAg
IHRyeToKKyAgICAgICAgICAgIGltcG9ydCBpbXBvcnRsaWIKKyAgICAgICAgZXhjZXB0IEltcG9y
dEVycm9yOgorICAgICAgICAgICAgcGFzcworICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYg
aGFzYXR0cihpbXBvcnRsaWIsICJpbnZhbGlkYXRlX2NhY2hlcyIpOgorICAgICAgICAgICAgICAg
IGltcG9ydGxpYi5pbnZhbGlkYXRlX2NhY2hlcygpCisKKyAgICBkZWYgbWtkaXIoc2VsZiwgbmFt
ZSk6CisgICAgICAgICIiIkNyZWF0ZSBhIG5ldyAoc3ViKWRpcmVjdG9yeS4iIiIKKyAgICAgICAg
cmV0dXJuIHNlbGYudG1wZGlyLm1rZGlyKG5hbWUpCisKKyAgICBkZWYgbWtweWRpcihzZWxmLCBu
YW1lKToKKyAgICAgICAgIiIiQ3JlYXRlIGEgbmV3IHB5dGhvbiBwYWNrYWdlLgorCisgICAgICAg
IFRoaXMgY3JlYXRlcyBhIChzdWIpZGlyZWN0b3J5IHdpdGggYW4gZW1wdHkgYGBfX2luaXRfXy5w
eWBgCisgICAgICAgIGZpbGUgc28gdGhhdCBpcyByZWNvZ25pc2VkIGFzIGEgcHl0aG9uIHBhY2th
Z2UuCisKKyAgICAgICAgIiIiCisgICAgICAgIHAgPSBzZWxmLm1rZGlyKG5hbWUpCisgICAgICAg
IHAuZW5zdXJlKCJfX2luaXRfXy5weSIpCisgICAgICAgIHJldHVybiBwCisKKyAgICBTZXNzaW9u
ID0gU2Vzc2lvbgorCisgICAgZGVmIGdldG5vZGUoc2VsZiwgY29uZmlnLCBhcmcpOgorICAgICAg
ICAiIiJSZXR1cm4gdGhlIGNvbGxlY3Rpb24gbm9kZSBvZiBhIGZpbGUuCisKKyAgICAgICAgOnBh
cmFtIGNvbmZpZzogOnB5OmNsYXNzOmBfcHl0ZXN0LmNvbmZpZy5Db25maWdgIGluc3RhbmNlLCBz
ZWUKKyAgICAgICAgICAgOnB5Om1ldGg6YHBhcnNlY29uZmlnYCBhbmQgOnB5Om1ldGg6YHBhcnNl
Y29uZmlndXJlYCB0bworICAgICAgICAgICBjcmVhdGUgdGhlIGNvbmZpZ3VyYXRpb24uCisKKyAg
ICAgICAgOnBhcmFtIGFyZzogQSA6cHk6Y2xhc3M6YHB5LnBhdGgubG9jYWxgIGluc3RhbmNlIG9m
IHRoZSBmaWxlLgorCisgICAgICAgICIiIgorICAgICAgICBzZXNzaW9uID0gU2Vzc2lvbihjb25m
aWcpCisgICAgICAgIGFzc2VydCAnOjonIG5vdCBpbiBzdHIoYXJnKQorICAgICAgICBwID0gcHku
cGF0aC5sb2NhbChhcmcpCisgICAgICAgIGNvbmZpZy5ob29rLnB5dGVzdF9zZXNzaW9uc3RhcnQo
c2Vzc2lvbj1zZXNzaW9uKQorICAgICAgICByZXMgPSBzZXNzaW9uLnBlcmZvcm1fY29sbGVjdChb
c3RyKHApXSwgZ2VuaXRlbXM9RmFsc2UpWzBdCisgICAgICAgIGNvbmZpZy5ob29rLnB5dGVzdF9z
ZXNzaW9uZmluaXNoKHNlc3Npb249c2Vzc2lvbiwgZXhpdHN0YXR1cz1FWElUX09LKQorICAgICAg
ICByZXR1cm4gcmVzCisKKyAgICBkZWYgZ2V0cGF0aG5vZGUoc2VsZiwgcGF0aCk6CisgICAgICAg
ICIiIlJldHVybiB0aGUgY29sbGVjdGlvbiBub2RlIG9mIGEgZmlsZS4KKworICAgICAgICBUaGlz
IGlzIGxpa2UgOnB5Om1ldGg6YGdldG5vZGVgIGJ1dCB1c2VzCisgICAgICAgIDpweTptZXRoOmBw
YXJzZWNvbmZpZ3VyZWAgdG8gY3JlYXRlIHRoZSAoY29uZmlndXJlZCkgcHl0ZXN0CisgICAgICAg
IENvbmZpZyBpbnN0YW5jZS4KKworICAgICAgICA6cGFyYW0gcGF0aDogQSA6cHk6Y2xhc3M6YHB5
LnBhdGgubG9jYWxgIGluc3RhbmNlIG9mIHRoZSBmaWxlLgorCisgICAgICAgICIiIgorICAgICAg
ICBjb25maWcgPSBzZWxmLnBhcnNlY29uZmlndXJlKHBhdGgpCisgICAgICAgIHNlc3Npb24gPSBT
ZXNzaW9uKGNvbmZpZykKKyAgICAgICAgeCA9IHNlc3Npb24uZnNwYXRoLmJlc3RyZWxwYXRoKHBh
dGgpCisgICAgICAgIGNvbmZpZy5ob29rLnB5dGVzdF9zZXNzaW9uc3RhcnQoc2Vzc2lvbj1zZXNz
aW9uKQorICAgICAgICByZXMgPSBzZXNzaW9uLnBlcmZvcm1fY29sbGVjdChbeF0sIGdlbml0ZW1z
PUZhbHNlKVswXQorICAgICAgICBjb25maWcuaG9vay5weXRlc3Rfc2Vzc2lvbmZpbmlzaChzZXNz
aW9uPXNlc3Npb24sIGV4aXRzdGF0dXM9RVhJVF9PSykKKyAgICAgICAgcmV0dXJuIHJlcworCisg
ICAgZGVmIGdlbml0ZW1zKHNlbGYsIGNvbGl0ZW1zKToKKyAgICAgICAgIiIiR2VuZXJhdGUgYWxs
IHRlc3QgaXRlbXMgZnJvbSBhIGNvbGxlY3Rpb24gbm9kZS4KKworICAgICAgICBUaGlzIHJlY3Vy
c2VzIGludG8gdGhlIGNvbGxlY3Rpb24gbm9kZSBhbmQgcmV0dXJucyBhIGxpc3Qgb2YKKyAgICAg
ICAgYWxsIHRoZSB0ZXN0IGl0ZW1zIGNvbnRhaW5lZCB3aXRoaW4uCisKKyAgICAgICAgIiIiCisg
ICAgICAgIHNlc3Npb24gPSBjb2xpdGVtc1swXS5zZXNzaW9uCisgICAgICAgIHJlc3VsdCA9IFtd
CisgICAgICAgIGZvciBjb2xpdGVtIGluIGNvbGl0ZW1zOgorICAgICAgICAgICAgcmVzdWx0LmV4
dGVuZChzZXNzaW9uLmdlbml0ZW1zKGNvbGl0ZW0pKQorICAgICAgICByZXR1cm4gcmVzdWx0CisK
KyAgICBkZWYgcnVuaXRlbShzZWxmLCBzb3VyY2UpOgorICAgICAgICAiIiJSdW4gdGhlICJ0ZXN0
X2Z1bmMiIEl0ZW0uCisKKyAgICAgICAgVGhlIGNhbGxpbmcgdGVzdCBpbnN0YW5jZSAodGhlIGNs
YXNzIHdoaWNoIGNvbnRhaW5zIHRoZSB0ZXN0CisgICAgICAgIG1ldGhvZCkgbXVzdCBwcm92aWRl
IGEgYGAuZ2V0cnVubmVyKClgYCBtZXRob2Qgd2hpY2ggc2hvdWxkCisgICAgICAgIHJldHVybiBh
IHJ1bm5lciB3aGljaCBjYW4gcnVuIHRoZSB0ZXN0IHByb3RvY29sIGZvciBhIHNpbmdsZQorICAg
ICAgICBpdGVtLCBsaWtlIGUuZy4gOnB5OmZ1bmM6YF9weXRlc3QucnVubmVyLnJ1bnRlc3Rwcm90
b2NvbGAuCisKKyAgICAgICAgIiIiCisgICAgICAgICMgdXNlZCBmcm9tIHJ1bm5lciBmdW5jdGlv
bmFsIHRlc3RzCisgICAgICAgIGl0ZW0gPSBzZWxmLmdldGl0ZW0oc291cmNlKQorICAgICAgICAj
IHRoZSB0ZXN0IGNsYXNzIHdoZXJlIHdlIGFyZSBjYWxsZWQgZnJvbSB3YW50cyB0byBwcm92aWRl
IHRoZSBydW5uZXIKKyAgICAgICAgdGVzdGNsYXNzaW5zdGFuY2UgPSBzZWxmLnJlcXVlc3QuaW5z
dGFuY2UKKyAgICAgICAgcnVubmVyID0gdGVzdGNsYXNzaW5zdGFuY2UuZ2V0cnVubmVyKCkKKyAg
ICAgICAgcmV0dXJuIHJ1bm5lcihpdGVtKQorCisgICAgZGVmIGlubGluZV9ydW5zb3VyY2Uoc2Vs
Ziwgc291cmNlLCAqY21kbGluZWFyZ3MpOgorICAgICAgICAiIiJSdW4gYSB0ZXN0IG1vZHVsZSBp
biBwcm9jZXNzIHVzaW5nIGBgcHl0ZXN0Lm1haW4oKWBgLgorCisgICAgICAgIFRoaXMgcnVuIHdy
aXRlcyAic291cmNlIiBpbnRvIGEgdGVtcG9yYXJ5IGZpbGUgYW5kIHJ1bnMKKyAgICAgICAgYGBw
eXRlc3QubWFpbigpYGAgb24gaXQsIHJldHVybmluZyBhIDpweTpjbGFzczpgSG9va1JlY29yZGVy
YAorICAgICAgICBpbnN0YW5jZSBmb3IgdGhlIHJlc3VsdC4KKworICAgICAgICA6cGFyYW0gc291
cmNlOiBUaGUgc291cmNlIGNvZGUgb2YgdGhlIHRlc3QgbW9kdWxlLgorCisgICAgICAgIDpwYXJh
bSBjbWRsaW5lYXJnczogQW55IGV4dHJhIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgdG8gdXNlLgor
CisgICAgICAgIDpyZXR1cm46IDpweTpjbGFzczpgSG9va1JlY29yZGVyYCBpbnN0YW5jZSBvZiB0
aGUgcmVzdWx0LgorCisgICAgICAgICIiIgorICAgICAgICBwID0gc2VsZi5tYWtlcHlmaWxlKHNv
dXJjZSkKKyAgICAgICAgdmFsdWVzID0gbGlzdChjbWRsaW5lYXJncykgKyBbcF0KKyAgICAgICAg
cmV0dXJuIHNlbGYuaW5saW5lX3J1bigqdmFsdWVzKQorCisgICAgZGVmIGlubGluZV9nZW5pdGVt
cyhzZWxmLCAqYXJncyk6CisgICAgICAgICIiIlJ1biBgYHB5dGVzdC5tYWluKFsnLS1jb2xsZWN0
b25seSddKWBgIGluLXByb2Nlc3MuCisKKyAgICAgICAgUmV0dXJucyBhIHR1cGxlIG9mIHRoZSBj
b2xsZWN0ZWQgaXRlbXMgYW5kIGEKKyAgICAgICAgOnB5OmNsYXNzOmBIb29rUmVjb3JkZXJgIGlu
c3RhbmNlLgorCisgICAgICAgIFRoaXMgcnVucyB0aGUgOnB5OmZ1bmM6YHB5dGVzdC5tYWluYCBm
dW5jdGlvbiB0byBydW4gYWxsIG9mCisgICAgICAgIHB5dGVzdCBpbnNpZGUgdGhlIHRlc3QgcHJv
Y2VzcyBpdHNlbGYgbGlrZQorICAgICAgICA6cHk6bWV0aDpgaW5saW5lX3J1bmAuICBIb3dldmVy
IHRoZSByZXR1cm4gdmFsdWUgaXMgYSB0dXBsZSBvZgorICAgICAgICB0aGUgY29sbGVjdGlvbiBp
dGVtcyBhbmQgYSA6cHk6Y2xhc3M6YEhvb2tSZWNvcmRlcmAgaW5zdGFuY2UuCisKKyAgICAgICAg
IiIiCisgICAgICAgIHJlYyA9IHNlbGYuaW5saW5lX3J1bigiLS1jb2xsZWN0LW9ubHkiLCAqYXJn
cykKKyAgICAgICAgaXRlbXMgPSBbeC5pdGVtIGZvciB4IGluIHJlYy5nZXRjYWxscygicHl0ZXN0
X2l0ZW1jb2xsZWN0ZWQiKV0KKyAgICAgICAgcmV0dXJuIGl0ZW1zLCByZWMKKworICAgIGRlZiBp
bmxpbmVfcnVuKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICIiIlJ1biBgYHB5dGVz
dC5tYWluKClgYCBpbi1wcm9jZXNzLCByZXR1cm5pbmcgYSBIb29rUmVjb3JkZXIuCisKKyAgICAg
ICAgVGhpcyBydW5zIHRoZSA6cHk6ZnVuYzpgcHl0ZXN0Lm1haW5gIGZ1bmN0aW9uIHRvIHJ1biBh
bGwgb2YKKyAgICAgICAgcHl0ZXN0IGluc2lkZSB0aGUgdGVzdCBwcm9jZXNzIGl0c2VsZi4gIFRo
aXMgbWVhbnMgaXQgY2FuCisgICAgICAgIHJldHVybiBhIDpweTpjbGFzczpgSG9va1JlY29yZGVy
YCBpbnN0YW5jZSB3aGljaCBnaXZlcyBtb3JlCisgICAgICAgIGRldGFpbGVkIHJlc3VsdHMgZnJv
bSB0aGVuIHJ1biB0aGVuIGNhbiBiZSBkb25lIGJ5IG1hdGNoaW5nCisgICAgICAgIHN0ZG91dC9z
dGRlcnIgZnJvbSA6cHk6bWV0aDpgcnVucHl0ZXN0YC4KKworICAgICAgICA6cGFyYW0gYXJnczog
QW55IGNvbW1hbmQgbGluZSBhcmd1bWVudHMgdG8gcGFzcyB0bworICAgICAgICAgICA6cHk6ZnVu
YzpgcHl0ZXN0Lm1haW5gLgorCisgICAgICAgIDpwYXJhbSBwbHVnaW46IChrZXl3b3JkLW9ubHkp
IEV4dHJhIHBsdWdpbiBpbnN0YW5jZXMgdGhlCisgICAgICAgICAgIGBgcHl0ZXN0Lm1haW4oKWBg
IGluc3RhbmNlIHNob3VsZCB1c2UuCisKKyAgICAgICAgOnJldHVybjogQSA6cHk6Y2xhc3M6YEhv
b2tSZWNvcmRlcmAgaW5zdGFuY2UuCisgICAgICAgICIiIgorICAgICAgICAjIFdoZW4gcnVubmlu
ZyBweS50ZXN0IGlubGluZSBhbnkgcGx1Z2lucyBhY3RpdmUgaW4gdGhlIG1haW4KKyAgICAgICAg
IyB0ZXN0IHByb2Nlc3MgYXJlIGFscmVhZHkgaW1wb3J0ZWQuICBTbyB0aGlzIGRpc2FibGVzIHRo
ZQorICAgICAgICAjIHdhcm5pbmcgd2hpY2ggd2lsbCB0cmlnZ2VyIHRvIHNheSB0aGV5IGNhbiBu
byBsb25nZXIgYmUKKyAgICAgICAgIyByZXdyaXR0ZW4sIHdoaWNoIGlzIGZpbmUgYXMgdGhleSBh
cmUgYWxyZWFkeSByZXdyaXR0ZW4uCisgICAgICAgIG9yaWdfd2FybiA9IEFzc2VydGlvblJld3Jp
dGluZ0hvb2suX3dhcm5fYWxyZWFkeV9pbXBvcnRlZAorCisgICAgICAgIGRlZiByZXZlcnQoKToK
KyAgICAgICAgICAgIEFzc2VydGlvblJld3JpdGluZ0hvb2suX3dhcm5fYWxyZWFkeV9pbXBvcnRl
ZCA9IG9yaWdfd2FybgorCisgICAgICAgIHNlbGYucmVxdWVzdC5hZGRmaW5hbGl6ZXIocmV2ZXJ0
KQorICAgICAgICBBc3NlcnRpb25SZXdyaXRpbmdIb29rLl93YXJuX2FscmVhZHlfaW1wb3J0ZWQg
PSBsYW1iZGEgKmE6IE5vbmUKKworICAgICAgICByZWMgPSBbXQorCisgICAgICAgIGNsYXNzIENv
bGxlY3Q6CisgICAgICAgICAgICBkZWYgcHl0ZXN0X2NvbmZpZ3VyZSh4LCBjb25maWcpOgorICAg
ICAgICAgICAgICAgIHJlYy5hcHBlbmQoc2VsZi5tYWtlX2hvb2tfcmVjb3JkZXIoY29uZmlnLnBs
dWdpbm1hbmFnZXIpKQorCisgICAgICAgIHBsdWdpbnMgPSBrd2FyZ3MuZ2V0KCJwbHVnaW5zIikg
b3IgW10KKyAgICAgICAgcGx1Z2lucy5hcHBlbmQoQ29sbGVjdCgpKQorICAgICAgICByZXQgPSBw
eXRlc3QubWFpbihsaXN0KGFyZ3MpLCBwbHVnaW5zPXBsdWdpbnMpCisgICAgICAgIHNlbGYuZGVs
ZXRlX2xvYWRlZF9tb2R1bGVzKCkKKyAgICAgICAgaWYgbGVuKHJlYykgPT0gMToKKyAgICAgICAg
ICAgIHJlcHJlYyA9IHJlYy5wb3AoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY2xhc3Mg
cmVwcmVjOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgcmVwcmVjLnJldCA9IHJldAor
CisgICAgICAgICMgdHlwaWNhbGx5IHdlIHJlcmFpc2Uga2V5Ym9hcmQgaW50ZXJydXB0cyBmcm9t
IHRoZSBjaGlsZCBydW4KKyAgICAgICAgIyBiZWNhdXNlIGl0J3Mgb3VyIHVzZXIgcmVxdWVzdGlu
ZyBpbnRlcnJ1cHRpb24gb2YgdGhlIHRlc3RpbmcKKyAgICAgICAgaWYgcmV0ID09IDIgYW5kIG5v
dCBrd2FyZ3MuZ2V0KCJub19yZXJhaXNlX2N0cmxjIik6CisgICAgICAgICAgICBjYWxscyA9IHJl
cHJlYy5nZXRjYWxscygicHl0ZXN0X2tleWJvYXJkX2ludGVycnVwdCIpCisgICAgICAgICAgICBp
ZiBjYWxscyBhbmQgY2FsbHNbLTFdLmV4Y2luZm8udHlwZSA9PSBLZXlib2FyZEludGVycnVwdDoK
KyAgICAgICAgICAgICAgICByYWlzZSBLZXlib2FyZEludGVycnVwdCgpCisgICAgICAgIHJldHVy
biByZXByZWMKKworICAgIGRlZiBydW5weXRlc3RfaW5wcm9jZXNzKHNlbGYsICphcmdzLCAqKmt3
YXJncyk6CisgICAgICAgICIiIiBSZXR1cm4gcmVzdWx0IG9mIHJ1bm5pbmcgcHl0ZXN0IGluLXBy
b2Nlc3MsIHByb3ZpZGluZyBhIHNpbWlsYXIKKyAgICAgICAgaW50ZXJmYWNlIHRvIHdoYXQgc2Vs
Zi5ydW5weXRlc3QoKSBwcm92aWRlcy4gIiIiCisgICAgICAgIGlmIGt3YXJncy5nZXQoInN5c3Bh
dGhpbnNlcnQiKToKKyAgICAgICAgICAgIHNlbGYuc3lzcGF0aGluc2VydCgpCisgICAgICAgIG5v
dyA9IHRpbWUudGltZSgpCisgICAgICAgIGNhcHR1cmUgPSBNdWx0aUNhcHR1cmUoQ2FwdHVyZT1T
eXNDYXB0dXJlKQorICAgICAgICBjYXB0dXJlLnN0YXJ0X2NhcHR1cmluZygpCisgICAgICAgIHRy
eToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXByZWMgPSBzZWxmLmlubGlu
ZV9ydW4oKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICAgICAgZXhjZXB0IFN5c3RlbUV4aXQgYXMg
ZToKKworICAgICAgICAgICAgICAgIGNsYXNzIHJlcHJlYzoKKyAgICAgICAgICAgICAgICAgICAg
cmV0ID0gZS5hcmdzWzBdCisKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAg
ICAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YygpCisKKyAgICAgICAgICAgICAgICBjbGFzcyBy
ZXByZWM6CisgICAgICAgICAgICAgICAgICAgIHJldCA9IDMKKyAgICAgICAgZmluYWxseToKKyAg
ICAgICAgICAgIG91dCwgZXJyID0gY2FwdHVyZS5yZWFkb3V0ZXJyKCkKKyAgICAgICAgICAgIGNh
cHR1cmUuc3RvcF9jYXB0dXJpbmcoKQorICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZShvdXQp
CisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKGVycikKKworICAgICAgICByZXMgPSBSdW5S
ZXN1bHQocmVwcmVjLnJldCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dC5zcGxpdCgiXG4i
KSwgZXJyLnNwbGl0KCJcbiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgdGltZS50aW1lKCkg
LSBub3cpCisgICAgICAgIHJlcy5yZXByZWMgPSByZXByZWMKKyAgICAgICAgcmV0dXJuIHJlcwor
CisgICAgZGVmIHJ1bnB5dGVzdChzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiIg
UnVuIHB5dGVzdCBpbmxpbmUgb3IgaW4gYSBzdWJwcm9jZXNzLCBkZXBlbmRpbmcgb24gdGhlIGNv
bW1hbmQgbGluZQorICAgICAgICBvcHRpb24gIi0tcnVucHl0ZXN0IiBhbmQgcmV0dXJuIGEgOnB5
OmNsYXNzOmBSdW5SZXN1bHRgLgorCisgICAgICAgICIiIgorICAgICAgICBhcmdzID0gc2VsZi5f
ZW5zdXJlX2Jhc2V0ZW1wKGFyZ3MpCisgICAgICAgIHJldHVybiBzZWxmLl9ydW5weXRlc3RfbWV0
aG9kKCphcmdzLCAqKmt3YXJncykKKworICAgIGRlZiBfZW5zdXJlX2Jhc2V0ZW1wKHNlbGYsIGFy
Z3MpOgorICAgICAgICBhcmdzID0gW3N0cih4KSBmb3IgeCBpbiBhcmdzXQorICAgICAgICBmb3Ig
eCBpbiBhcmdzOgorICAgICAgICAgICAgaWYgc3RyKHgpLnN0YXJ0c3dpdGgoJy0tYmFzZXRlbXAn
KToKKyAgICAgICAgICAgICAgICAjIHByaW50KCJiYXNlZHRlbXAgZXhpc3RzOiAlcyIgJShhcmdz
LCkpCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFy
Z3MuYXBwZW5kKCItLWJhc2V0ZW1wPSVzIiAlIHNlbGYudG1wZGlyLmRpcnBhdGgoJ2Jhc2V0ZW1w
JykpCisgICAgICAgICAgICAjIHByaW50KCJhZGRlZCBiYXNldGVtcDogJXMiICUoYXJncywpKQor
ICAgICAgICByZXR1cm4gYXJncworCisgICAgZGVmIHBhcnNlY29uZmlnKHNlbGYsICphcmdzKToK
KyAgICAgICAgIiIiUmV0dXJuIGEgbmV3IHB5dGVzdCBDb25maWcgaW5zdGFuY2UgZnJvbSBnaXZl
biBjb21tYW5kbGluZSBhcmdzLgorCisgICAgICAgIFRoaXMgaW52b2tlcyB0aGUgcHl0ZXN0IGJv
b3RzdHJhcHBpbmcgY29kZSBpbiBfcHl0ZXN0LmNvbmZpZworICAgICAgICB0byBjcmVhdGUgYSBu
ZXcgOnB5OmNsYXNzOmBfcHl0ZXN0LmNvcmUuUGx1Z2luTWFuYWdlcmAgYW5kCisgICAgICAgIGNh
bGwgdGhlIHB5dGVzdF9jbWRsaW5lX3BhcnNlIGhvb2sgdG8gY3JlYXRlIG5ldworICAgICAgICA6
cHk6Y2xhc3M6YF9weXRlc3QuY29uZmlnLkNvbmZpZ2AgaW5zdGFuY2UuCisKKyAgICAgICAgSWYg
OnB5OmF0dHI6YHBsdWdpbnNgIGhhcyBiZWVuIHBvcHVsYXRlZCB0aGV5IHNob3VsZCBiZSBwbHVn
aW4KKyAgICAgICAgbW9kdWxlcyB3aGljaCB3aWxsIGJlIHJlZ2lzdGVyZWQgd2l0aCB0aGUgUGx1
Z2luTWFuYWdlci4KKworICAgICAgICAiIiIKKyAgICAgICAgYXJncyA9IHNlbGYuX2Vuc3VyZV9i
YXNldGVtcChhcmdzKQorCisgICAgICAgIGltcG9ydCBfcHl0ZXN0LmNvbmZpZworICAgICAgICBj
b25maWcgPSBfcHl0ZXN0LmNvbmZpZy5fcHJlcGFyZWNvbmZpZyhhcmdzLCBzZWxmLnBsdWdpbnMp
CisgICAgICAgICMgd2UgZG9uJ3Qga25vdyB3aGF0IHRoZSB0ZXN0IHdpbGwgZG8gd2l0aCB0aGlz
IGhhbGYtc2V0dXAgY29uZmlnCisgICAgICAgICMgb2JqZWN0IGFuZCB0aHVzIHdlIG1ha2Ugc3Vy
ZSBpdCBnZXRzIHVuY29uZmlndXJlZCBwcm9wZXJseSBpbiBhbnkKKyAgICAgICAgIyBjYXNlIChv
dGhlcndpc2UgY2FwdHVyaW5nIGNvdWxkIHN0aWxsIGJlIGFjdGl2ZSwgZm9yIGV4YW1wbGUpCisg
ICAgICAgIHNlbGYucmVxdWVzdC5hZGRmaW5hbGl6ZXIoY29uZmlnLl9lbnN1cmVfdW5jb25maWd1
cmUpCisgICAgICAgIHJldHVybiBjb25maWcKKworICAgIGRlZiBwYXJzZWNvbmZpZ3VyZShzZWxm
LCAqYXJncyk6CisgICAgICAgICIiIlJldHVybiBhIG5ldyBweXRlc3QgY29uZmlndXJlZCBDb25m
aWcgaW5zdGFuY2UuCisKKyAgICAgICAgVGhpcyByZXR1cm5zIGEgbmV3IDpweTpjbGFzczpgX3B5
dGVzdC5jb25maWcuQ29uZmlnYCBpbnN0YW5jZQorICAgICAgICBsaWtlIDpweTptZXRoOmBwYXJz
ZWNvbmZpZ2AsIGJ1dCBhbHNvIGNhbGxzIHRoZQorICAgICAgICBweXRlc3RfY29uZmlndXJlIGhv
b2suCisKKyAgICAgICAgIiIiCisgICAgICAgIGNvbmZpZyA9IHNlbGYucGFyc2Vjb25maWcoKmFy
Z3MpCisgICAgICAgIGNvbmZpZy5fZG9fY29uZmlndXJlKCkKKyAgICAgICAgc2VsZi5yZXF1ZXN0
LmFkZGZpbmFsaXplcihjb25maWcuX2Vuc3VyZV91bmNvbmZpZ3VyZSkKKyAgICAgICAgcmV0dXJu
IGNvbmZpZworCisgICAgZGVmIGdldGl0ZW0oc2VsZiwgc291cmNlLCBmdW5jbmFtZT0idGVzdF9m
dW5jIik6CisgICAgICAgICIiIlJldHVybiB0aGUgdGVzdCBpdGVtIGZvciBhIHRlc3QgZnVuY3Rp
b24uCisKKyAgICAgICAgVGhpcyB3cml0ZXMgdGhlIHNvdXJjZSB0byBhIHB5dGhvbiBmaWxlIGFu
ZCBydW5zIHB5dGVzdCdzCisgICAgICAgIGNvbGxlY3Rpb24gb24gdGhlIHJlc3VsdGluZyBtb2R1
bGUsIHJldHVybmluZyB0aGUgdGVzdCBpdGVtCisgICAgICAgIGZvciB0aGUgcmVxdWVzdGVkIGZ1
bmN0aW9uIG5hbWUuCisKKyAgICAgICAgOnBhcmFtIHNvdXJjZTogVGhlIG1vZHVsZSBzb3VyY2Uu
CisKKyAgICAgICAgOnBhcmFtIGZ1bmNuYW1lOiBUaGUgbmFtZSBvZiB0aGUgdGVzdCBmdW5jdGlv
biBmb3Igd2hpY2ggdGhlCisgICAgICAgICAgIEl0ZW0gbXVzdCBiZSByZXR1cm5lZC4KKworICAg
ICAgICAiIiIKKyAgICAgICAgaXRlbXMgPSBzZWxmLmdldGl0ZW1zKHNvdXJjZSkKKyAgICAgICAg
Zm9yIGl0ZW0gaW4gaXRlbXM6CisgICAgICAgICAgICBpZiBpdGVtLm5hbWUgPT0gZnVuY25hbWU6
CisgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0KKyAgICAgICAgYXNzZXJ0IDAsICIlciBpdGVt
IG5vdCBmb3VuZCBpbiBtb2R1bGU6XG4lc1xuaXRlbXM6ICVzIiAlICgKKyAgICAgICAgICAgICAg
ICAgIGZ1bmNuYW1lLCBzb3VyY2UsIGl0ZW1zKQorCisgICAgZGVmIGdldGl0ZW1zKHNlbGYsIHNv
dXJjZSk6CisgICAgICAgICIiIlJldHVybiBhbGwgdGVzdCBpdGVtcyBjb2xsZWN0ZWQgZnJvbSB0
aGUgbW9kdWxlLgorCisgICAgICAgIFRoaXMgd3JpdGVzIHRoZSBzb3VyY2UgdG8gYSBweXRob24g
ZmlsZSBhbmQgcnVucyBweXRlc3QncworICAgICAgICBjb2xsZWN0aW9uIG9uIHRoZSByZXN1bHRp
bmcgbW9kdWxlLCByZXR1cm5pbmcgYWxsIHRlc3QgaXRlbXMKKyAgICAgICAgY29udGFpbmVkIHdp
dGhpbi4KKworICAgICAgICAiIiIKKyAgICAgICAgbW9kY29sID0gc2VsZi5nZXRtb2R1bGVjb2wo
c291cmNlKQorICAgICAgICByZXR1cm4gc2VsZi5nZW5pdGVtcyhbbW9kY29sXSkKKworICAgIGRl
ZiBnZXRtb2R1bGVjb2woc2VsZiwgc291cmNlLCBjb25maWdhcmdzPSgpLCB3aXRoaW5pdD1GYWxz
ZSk6CisgICAgICAgICIiIlJldHVybiB0aGUgbW9kdWxlIGNvbGxlY3Rpb24gbm9kZSBmb3IgYGBz
b3VyY2VgYC4KKworICAgICAgICBUaGlzIHdyaXRlcyBgYHNvdXJjZWBgIHRvIGEgZmlsZSB1c2lu
ZyA6cHk6bWV0aDpgbWFrZXB5ZmlsZWAKKyAgICAgICAgYW5kIHRoZW4gcnVucyB0aGUgcHl0ZXN0
IGNvbGxlY3Rpb24gb24gaXQsIHJldHVybmluZyB0aGUKKyAgICAgICAgY29sbGVjdGlvbiBub2Rl
IGZvciB0aGUgdGVzdCBtb2R1bGUuCisKKyAgICAgICAgOnBhcmFtIHNvdXJjZTogVGhlIHNvdXJj
ZSBjb2RlIG9mIHRoZSBtb2R1bGUgdG8gY29sbGVjdC4KKworICAgICAgICA6cGFyYW0gY29uZmln
YXJnczogQW55IGV4dHJhIGFyZ3VtZW50cyB0byBwYXNzIHRvCisgICAgICAgICAgIDpweTptZXRo
OmBwYXJzZWNvbmZpZ3VyZWAuCisKKyAgICAgICAgOnBhcmFtIHdpdGhpbml0OiBXaGV0aGVyIHRv
IGFsc28gd3JpdGUgYSBgYF9faW5pdF9fLnB5YGAgZmlsZQorICAgICAgICAgICB0byB0aGUgdGVt
cG9yYXJ5IGRpcmVjdG9yeSB0byBlbnN1cmUgaXQgaXMgYSBwYWNrYWdlLgorCisgICAgICAgICIi
IgorICAgICAgICBrdyA9IHtzZWxmLnJlcXVlc3QuZnVuY3Rpb24uX19uYW1lX186IFNvdXJjZShz
b3VyY2UpLnN0cmlwKCl9CisgICAgICAgIHBhdGggPSBzZWxmLm1ha2VweWZpbGUoKiprdykKKyAg
ICAgICAgaWYgd2l0aGluaXQ6CisgICAgICAgICAgICBzZWxmLm1ha2VweWZpbGUoX19pbml0X189
IiMiKQorICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZyA9IHNlbGYucGFyc2Vjb25maWd1cmUo
cGF0aCwgKmNvbmZpZ2FyZ3MpCisgICAgICAgIG5vZGUgPSBzZWxmLmdldG5vZGUoY29uZmlnLCBw
YXRoKQorCisgICAgICAgIHJldHVybiBub2RlCisKKyAgICBkZWYgY29sbGVjdF9ieV9uYW1lKHNl
bGYsIG1vZGNvbCwgbmFtZSk6CisgICAgICAgICIiIlJldHVybiB0aGUgY29sbGVjdGlvbiBub2Rl
IGZvciBuYW1lIGZyb20gdGhlIG1vZHVsZSBjb2xsZWN0aW9uLgorCisgICAgICAgIFRoaXMgd2ls
bCBzZWFyY2ggYSBtb2R1bGUgY29sbGVjdGlvbiBub2RlIGZvciBhIGNvbGxlY3Rpb24KKyAgICAg
ICAgbm9kZSBtYXRjaGluZyB0aGUgZ2l2ZW4gbmFtZS4KKworICAgICAgICA6cGFyYW0gbW9kY29s
OiBBIG1vZHVsZSBjb2xsZWN0aW9uIG5vZGUsIHNlZQorICAgICAgICAgICA6cHk6bWV0aDpgZ2V0
bW9kdWxlY29sYC4KKworICAgICAgICA6cGFyYW0gbmFtZTogVGhlIG5hbWUgb2YgdGhlIG5vZGUg
dG8gcmV0dXJuLgorCisgICAgICAgICIiIgorICAgICAgICBpZiBtb2Rjb2wgbm90IGluIHNlbGYu
X21vZF9jb2xsZWN0aW9uczoKKyAgICAgICAgICAgIHNlbGYuX21vZF9jb2xsZWN0aW9uc1ttb2Rj
b2xdID0gbGlzdChtb2Rjb2wuY29sbGVjdCgpKQorICAgICAgICBmb3IgY29saXRlbSBpbiBzZWxm
Ll9tb2RfY29sbGVjdGlvbnNbbW9kY29sXToKKyAgICAgICAgICAgIGlmIGNvbGl0ZW0ubmFtZSA9
PSBuYW1lOgorICAgICAgICAgICAgICAgIHJldHVybiBjb2xpdGVtCisKKyAgICBkZWYgcG9wZW4o
c2VsZiwgY21kYXJncywgc3Rkb3V0LCBzdGRlcnIsICoqa3cpOgorICAgICAgICAiIiJJbnZva2Ug
c3VicHJvY2Vzcy5Qb3Blbi4KKworICAgICAgICBUaGlzIGNhbGxzIHN1YnByb2Nlc3MuUG9wZW4g
bWFraW5nIHN1cmUgdGhlIGN1cnJlbnQgd29ya2luZworICAgICAgICBkaXJlY3RvcnkgaXMgdGhl
IFBZVEhPTlBBVEguCisKKyAgICAgICAgWW91IHByb2JhYmx5IHdhbnQgdG8gdXNlIDpweTptZXRo
OmBydW5gIGluc3RlYWQuCisKKyAgICAgICAgIiIiCisgICAgICAgIGVudiA9IG9zLmVudmlyb24u
Y29weSgpCisgICAgICAgIGVudlsnUFlUSE9OUEFUSCddID0gb3MucGF0aHNlcC5qb2luKGZpbHRl
cihOb25lLCBbCisgICAgICAgICAgICBzdHIob3MuZ2V0Y3dkKCkpLCBlbnYuZ2V0KCdQWVRIT05Q
QVRIJywgJycpXSkpCisgICAgICAgIGt3WydlbnYnXSA9IGVudgorCisgICAgICAgIHBvcGVuID0g
c3VicHJvY2Vzcy5Qb3BlbihjbWRhcmdzLCBzdGRpbj1zdWJwcm9jZXNzLlBJUEUsIHN0ZG91dD1z
dGRvdXQsIHN0ZGVycj1zdGRlcnIsICoqa3cpCisgICAgICAgIHBvcGVuLnN0ZGluLmNsb3NlKCkK
KworICAgICAgICByZXR1cm4gcG9wZW4KKworICAgIGRlZiBydW4oc2VsZiwgKmNtZGFyZ3MpOgor
ICAgICAgICAiIiJSdW4gYSBjb21tYW5kIHdpdGggYXJndW1lbnRzLgorCisgICAgICAgIFJ1biBh
IHByb2Nlc3MgdXNpbmcgc3VicHJvY2Vzcy5Qb3BlbiBzYXZpbmcgdGhlIHN0ZG91dCBhbmQKKyAg
ICAgICAgc3RkZXJyLgorCisgICAgICAgIFJldHVybnMgYSA6cHk6Y2xhc3M6YFJ1blJlc3VsdGAu
CisKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9ydW4oKmNtZGFyZ3MpCisKKyAg
ICBkZWYgX3J1bihzZWxmLCAqY21kYXJncyk6CisgICAgICAgIGNtZGFyZ3MgPSBbc3RyKHgpIGZv
ciB4IGluIGNtZGFyZ3NdCisgICAgICAgIHAxID0gc2VsZi50bXBkaXIuam9pbigic3Rkb3V0IikK
KyAgICAgICAgcDIgPSBzZWxmLnRtcGRpci5qb2luKCJzdGRlcnIiKQorICAgICAgICBwcmludCgi
cnVubmluZzoiLCAnICcuam9pbihjbWRhcmdzKSkKKyAgICAgICAgcHJpbnQoIiAgICAgaW46Iiwg
c3RyKHB5LnBhdGgubG9jYWwoKSkpCisgICAgICAgIGYxID0gY29kZWNzLm9wZW4oc3RyKHAxKSwg
InciLCBlbmNvZGluZz0idXRmOCIpCisgICAgICAgIGYyID0gY29kZWNzLm9wZW4oc3RyKHAyKSwg
InciLCBlbmNvZGluZz0idXRmOCIpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG5vdyA9IHRp
bWUudGltZSgpCisgICAgICAgICAgICBwb3BlbiA9IHNlbGYucG9wZW4oY21kYXJncywgc3Rkb3V0
PWYxLCBzdGRlcnI9ZjIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VfZmRz
PShzeXMucGxhdGZvcm0gIT0gIndpbjMyIikpCisgICAgICAgICAgICByZXQgPSBwb3Blbi53YWl0
KCkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGYxLmNsb3NlKCkKKyAgICAgICAgICAg
IGYyLmNsb3NlKCkKKyAgICAgICAgZjEgPSBjb2RlY3Mub3BlbihzdHIocDEpLCAiciIsIGVuY29k
aW5nPSJ1dGY4IikKKyAgICAgICAgZjIgPSBjb2RlY3Mub3BlbihzdHIocDIpLCAiciIsIGVuY29k
aW5nPSJ1dGY4IikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgb3V0ID0gZjEucmVhZCgpLnNw
bGl0bGluZXMoKQorICAgICAgICAgICAgZXJyID0gZjIucmVhZCgpLnNwbGl0bGluZXMoKQorICAg
ICAgICBmaW5hbGx5OgorICAgICAgICAgICAgZjEuY2xvc2UoKQorICAgICAgICAgICAgZjIuY2xv
c2UoKQorICAgICAgICBzZWxmLl9kdW1wX2xpbmVzKG91dCwgc3lzLnN0ZG91dCkKKyAgICAgICAg
c2VsZi5fZHVtcF9saW5lcyhlcnIsIHN5cy5zdGRlcnIpCisgICAgICAgIHJldHVybiBSdW5SZXN1
bHQocmV0LCBvdXQsIGVyciwgdGltZS50aW1lKCkgLSBub3cpCisKKyAgICBkZWYgX2R1bXBfbGlu
ZXMoc2VsZiwgbGluZXMsIGZwKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZm9yIGxpbmUg
aW4gbGluZXM6CisgICAgICAgICAgICAgICAgcHJpbnQobGluZSwgZmlsZT1mcCkKKyAgICAgICAg
ZXhjZXB0IFVuaWNvZGVFbmNvZGVFcnJvcjoKKyAgICAgICAgICAgIHByaW50KCJjb3VsZG4ndCBw
cmludCB0byAlcyBiZWNhdXNlIG9mIGVuY29kaW5nIiAlIChmcCwpKQorCisgICAgZGVmIF9nZXRw
eXRlc3RhcmdzKHNlbGYpOgorICAgICAgICAjIHdlIGNhbm5vdCB1c2UgIihzeXMuZXhlY3V0YWJs
ZSxzY3JpcHQpIgorICAgICAgICAjIGJlY2F1c2Ugb24gd2luZG93cyB0aGUgc2NyaXB0IGlzIGUu
Zy4gYSBweXRlc3QuZXhlCisgICAgICAgIHJldHVybiAoc3lzLmV4ZWN1dGFibGUsIFBZVEVTVF9G
VUxMUEFUSCkgIyBub3FhCisKKyAgICBkZWYgcnVucHl0aG9uKHNlbGYsIHNjcmlwdCk6CisgICAg
ICAgICIiIlJ1biBhIHB5dGhvbiBzY3JpcHQgdXNpbmcgc3lzLmV4ZWN1dGFibGUgYXMgaW50ZXJw
cmV0ZXIuCisKKyAgICAgICAgUmV0dXJucyBhIDpweTpjbGFzczpgUnVuUmVzdWx0YC4KKyAgICAg
ICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLnJ1bihzeXMuZXhlY3V0YWJsZSwgc2NyaXB0KQor
CisgICAgZGVmIHJ1bnB5dGhvbl9jKHNlbGYsIGNvbW1hbmQpOgorICAgICAgICAiIiJSdW4gcHl0
aG9uIC1jICJjb21tYW5kIiwgcmV0dXJuIGEgOnB5OmNsYXNzOmBSdW5SZXN1bHRgLiIiIgorICAg
ICAgICByZXR1cm4gc2VsZi5ydW4oc3lzLmV4ZWN1dGFibGUsICItYyIsIGNvbW1hbmQpCisKKyAg
ICBkZWYgcnVucHl0ZXN0X3N1YnByb2Nlc3Moc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAg
ICAgIiIiUnVuIHB5dGVzdCBhcyBhIHN1YnByb2Nlc3Mgd2l0aCBnaXZlbiBhcmd1bWVudHMuCisK
KyAgICAgICAgQW55IHBsdWdpbnMgYWRkZWQgdG8gdGhlIDpweTphdHRyOmBwbHVnaW5zYCBsaXN0
IHdpbGwgYWRkZWQKKyAgICAgICAgdXNpbmcgdGhlIGBgLXBgYCBjb21tYW5kIGxpbmUgb3B0aW9u
LiAgQWRkdGlvbmFsbHkKKyAgICAgICAgYGAtLWJhc2V0ZW1wYGAgaXMgdXNlZCBwdXQgYW55IHRl
bXBvcmFyeSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMKKyAgICAgICAgaW4gYSBudW1iZXJlZCBkaXJl
Y3RvcnkgcHJlZml4ZWQgd2l0aCAicnVucHl0ZXN0LSIgc28gdGhleSBkbworICAgICAgICBub3Qg
Y29uZmxpY3Qgd2l0aCB0aGUgbm9ybWFsIG51bWJlcmQgcHl0ZXN0IGxvY2F0aW9uIGZvcgorICAg
ICAgICB0ZW1wb3JhcnkgZmlsZXMgYW5kIGRpcmVjdG9yaWVzLgorCisgICAgICAgIFJldHVybnMg
YSA6cHk6Y2xhc3M6YFJ1blJlc3VsdGAuCisKKyAgICAgICAgIiIiCisgICAgICAgIHAgPSBweS5w
YXRoLmxvY2FsLm1ha2VfbnVtYmVyZWRfZGlyKHByZWZpeD0icnVucHl0ZXN0LSIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtlZXA9Tm9uZSwgcm9vdGRpcj1z
ZWxmLnRtcGRpcikKKyAgICAgICAgYXJncyA9ICgnLS1iYXNldGVtcD0lcycgJSBwLCApICsgYXJn
cworICAgICAgICAjIGZvciB4IGluIGFyZ3M6CisgICAgICAgICMgICAgaWYgJy0tY29uZmN1dGRp
cicgaW4gc3RyKHgpOgorICAgICAgICAjICAgICAgICBicmVhaworICAgICAgICAjIGVsc2U6Cisg
ICAgICAgICMgICAgcGFzcworICAgICAgICAjICAgIGFyZ3MgPSAoJy0tY29uZmN1dGRpcj0uJywp
ICsgYXJncworICAgICAgICBwbHVnaW5zID0gW3ggZm9yIHggaW4gc2VsZi5wbHVnaW5zIGlmIGlz
aW5zdGFuY2UoeCwgc3RyKV0KKyAgICAgICAgaWYgcGx1Z2luczoKKyAgICAgICAgICAgIGFyZ3Mg
PSAoJy1wJywgcGx1Z2luc1swXSkgKyBhcmdzCisgICAgICAgIGFyZ3MgPSBzZWxmLl9nZXRweXRl
c3RhcmdzKCkgKyBhcmdzCisgICAgICAgIHJldHVybiBzZWxmLnJ1bigqYXJncykKKworICAgIGRl
ZiBzcGF3bl9weXRlc3Qoc2VsZiwgc3RyaW5nLCBleHBlY3RfdGltZW91dD0xMC4wKToKKyAgICAg
ICAgIiIiUnVuIHB5dGVzdCB1c2luZyBwZXhwZWN0LgorCisgICAgICAgIFRoaXMgbWFrZXMgc3Vy
ZSB0byB1c2UgdGhlIHJpZ2h0IHB5dGVzdCBhbmQgc2V0cyB1cCB0aGUKKyAgICAgICAgdGVtcG9y
YXJ5IGRpcmVjdG9yeSBsb2NhdGlvbnMuCisKKyAgICAgICAgVGhlIHBleHBlY3QgY2hpbGQgaXMg
cmV0dXJuZWQuCisKKyAgICAgICAgIiIiCisgICAgICAgIGJhc2V0ZW1wID0gc2VsZi50bXBkaXIu
bWtkaXIoInRlbXAtcGV4cGVjdCIpCisgICAgICAgIGludm9rZSA9ICIgIi5qb2luKG1hcChzdHIs
IHNlbGYuX2dldHB5dGVzdGFyZ3MoKSkpCisgICAgICAgIGNtZCA9ICIlcyAtLWJhc2V0ZW1wPSVz
ICVzIiAlIChpbnZva2UsIGJhc2V0ZW1wLCBzdHJpbmcpCisgICAgICAgIHJldHVybiBzZWxmLnNw
YXduKGNtZCwgZXhwZWN0X3RpbWVvdXQ9ZXhwZWN0X3RpbWVvdXQpCisKKyAgICBkZWYgc3Bhd24o
c2VsZiwgY21kLCBleHBlY3RfdGltZW91dD0xMC4wKToKKyAgICAgICAgIiIiUnVuIGEgY29tbWFu
ZCB1c2luZyBwZXhwZWN0LgorCisgICAgICAgIFRoZSBwZXhwZWN0IGNoaWxkIGlzIHJldHVybmVk
LgorICAgICAgICAiIiIKKyAgICAgICAgcGV4cGVjdCA9IHB5dGVzdC5pbXBvcnRvcnNraXAoInBl
eHBlY3QiLCAiMy4wIikKKyAgICAgICAgaWYgaGFzYXR0cihzeXMsICdweXB5X3ZlcnNpb25faW5m
bycpIGFuZCAnNjQnIGluIHBsYXRmb3JtLm1hY2hpbmUoKToKKyAgICAgICAgICAgIHB5dGVzdC5z
a2lwKCJweXB5LTY0IGJpdCBub3Qgc3VwcG9ydGVkIikKKyAgICAgICAgaWYgc3lzLnBsYXRmb3Jt
LnN0YXJ0c3dpdGgoImZyZWVic2QiKToKKyAgICAgICAgICAgIHB5dGVzdC54ZmFpbCgicGV4cGVj
dCBkb2VzIG5vdCB3b3JrIHJlbGlhYmx5IG9uIGZyZWVic2QiKQorICAgICAgICBsb2dmaWxlID0g
c2VsZi50bXBkaXIuam9pbigic3Bhd24ub3V0Iikub3Blbigid2IiKQorICAgICAgICBjaGlsZCA9
IHBleHBlY3Quc3Bhd24oY21kLCBsb2dmaWxlPWxvZ2ZpbGUpCisgICAgICAgIHNlbGYucmVxdWVz
dC5hZGRmaW5hbGl6ZXIobG9nZmlsZS5jbG9zZSkKKyAgICAgICAgY2hpbGQudGltZW91dCA9IGV4
cGVjdF90aW1lb3V0CisgICAgICAgIHJldHVybiBjaGlsZAorCisKK2RlZiBnZXRkZWNvZGVkKG91
dCk6CisgICAgdHJ5OgorICAgICAgICByZXR1cm4gb3V0LmRlY29kZSgidXRmLTgiKQorICAgIGV4
Y2VwdCBVbmljb2RlRGVjb2RlRXJyb3I6CisgICAgICAgIHJldHVybiAiSU5URVJOQUwgbm90LXV0
ZjgtZGVjb2RlYWJsZSwgdHJ1bmNhdGVkIHN0cmluZzpcbiVzIiAlICgKKyAgICAgICAgICAgIHB5
LmlvLnNhZmVyZXByKG91dCksKQorCisKK2NsYXNzIExpbmVDb21wOgorICAgIGRlZiBfX2luaXRf
XyhzZWxmKToKKyAgICAgICAgc2VsZi5zdHJpbmdpbyA9IHB5LmlvLlRleHRJTygpCisKKyAgICBk
ZWYgYXNzZXJ0X2NvbnRhaW5zX2xpbmVzKHNlbGYsIGxpbmVzMik6CisgICAgICAgICIiIiBhc3Nl
cnQgdGhhdCBsaW5lczIgYXJlIGNvbnRhaW5lZCAobGluZWFybHkpIGluIGxpbmVzMS4KKyAgICAg
ICAgICAgIHJldHVybiBhIGxpc3Qgb2YgZXh0cmFsaW5lcyBmb3VuZC4KKyAgICAgICAgIiIiCisg
ICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAgICAgICB2YWwgPSBzZWxmLnN0cmlu
Z2lvLmdldHZhbHVlKCkKKyAgICAgICAgc2VsZi5zdHJpbmdpby50cnVuY2F0ZSgwKQorICAgICAg
ICBzZWxmLnN0cmluZ2lvLnNlZWsoMCkKKyAgICAgICAgbGluZXMxID0gdmFsLnNwbGl0KCJcbiIp
CisgICAgICAgIHJldHVybiBMaW5lTWF0Y2hlcihsaW5lczEpLmZubWF0Y2hfbGluZXMobGluZXMy
KQorCisKK2NsYXNzIExpbmVNYXRjaGVyOgorICAgICIiIkZsZXhpYmxlIG1hdGNoaW5nIG9mIHRl
eHQuCisKKyAgICBUaGlzIGlzIGEgY29udmVuaWVuY2UgY2xhc3MgdG8gdGVzdCBsYXJnZSB0ZXh0
cyBsaWtlIHRoZSBvdXRwdXQgb2YKKyAgICBjb21tYW5kcy4KKworICAgIFRoZSBjb25zdHJ1Y3Rv
ciB0YWtlcyBhIGxpc3Qgb2YgbGluZXMgd2l0aG91dCB0aGVpciB0cmFpbGluZworICAgIG5ld2xp
bmVzLCBpLmUuIGBgdGV4dC5zcGxpdGxpbmVzKClgYC4KKworICAgICIiIgorCisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGxpbmVzKToKKyAgICAgICAgc2VsZi5saW5lcyA9IGxpbmVzCisgICAgICAg
IHNlbGYuX2xvZ19vdXRwdXQgPSBbXQorCisgICAgZGVmIHN0cihzZWxmKToKKyAgICAgICAgIiIi
UmV0dXJuIHRoZSBlbnRpcmUgb3JpZ2luYWwgdGV4dC4iIiIKKyAgICAgICAgcmV0dXJuICJcbiIu
am9pbihzZWxmLmxpbmVzKQorCisgICAgZGVmIF9nZXRsaW5lcyhzZWxmLCBsaW5lczIpOgorICAg
ICAgICBpZiBpc2luc3RhbmNlKGxpbmVzMiwgc3RyKToKKyAgICAgICAgICAgIGxpbmVzMiA9IFNv
dXJjZShsaW5lczIpCisgICAgICAgIGlmIGlzaW5zdGFuY2UobGluZXMyLCBTb3VyY2UpOgorICAg
ICAgICAgICAgbGluZXMyID0gbGluZXMyLnN0cmlwKCkubGluZXMKKyAgICAgICAgcmV0dXJuIGxp
bmVzMgorCisgICAgZGVmIGZubWF0Y2hfbGluZXNfcmFuZG9tKHNlbGYsIGxpbmVzMik6CisgICAg
ICAgICIiIkNoZWNrIGxpbmVzIGV4aXN0IGluIHRoZSBvdXRwdXQgdXNpbmcgYGBmbm1hdGNoLmZu
bWF0Y2hgYCwgaW4gYW55IG9yZGVyLgorCisgICAgICAgIFRoZSBhcmd1bWVudCBpcyBhIGxpc3Qg
b2YgbGluZXMgd2hpY2ggaGF2ZSB0byBvY2N1ciBpbiB0aGUKKyAgICAgICAgb3V0cHV0LCBpbiBh
bnkgb3JkZXIuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9tYXRjaF9saW5lc19yYW5kb20o
bGluZXMyLCBmbm1hdGNoKQorCisgICAgZGVmIHJlX21hdGNoX2xpbmVzX3JhbmRvbShzZWxmLCBs
aW5lczIpOgorICAgICAgICAiIiJDaGVjayBsaW5lcyBleGlzdCBpbiB0aGUgb3V0cHV0IHVzaW5n
IGBgcmUubWF0Y2hgYCwgaW4gYW55IG9yZGVyLgorCisgICAgICAgIFRoZSBhcmd1bWVudCBpcyBh
IGxpc3Qgb2YgbGluZXMgd2hpY2ggaGF2ZSB0byBvY2N1ciBpbiB0aGUKKyAgICAgICAgb3V0cHV0
LCBpbiBhbnkgb3JkZXIuCisKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX21hdGNoX2xpbmVz
X3JhbmRvbShsaW5lczIsIGxhbWJkYSBuYW1lLCBwYXQ6IHJlLm1hdGNoKHBhdCwgbmFtZSkpCisK
KyAgICBkZWYgX21hdGNoX2xpbmVzX3JhbmRvbShzZWxmLCBsaW5lczIsIG1hdGNoX2Z1bmMpOgor
ICAgICAgICAiIiJDaGVjayBsaW5lcyBleGlzdCBpbiB0aGUgb3V0cHV0LgorCisgICAgICAgIFRo
ZSBhcmd1bWVudCBpcyBhIGxpc3Qgb2YgbGluZXMgd2hpY2ggaGF2ZSB0byBvY2N1ciBpbiB0aGUK
KyAgICAgICAgb3V0cHV0LCBpbiBhbnkgb3JkZXIuICBFYWNoIGxpbmUgY2FuIGNvbnRhaW4gZ2xv
YiB3aGlsZGNhcmRzLgorCisgICAgICAgICIiIgorICAgICAgICBsaW5lczIgPSBzZWxmLl9nZXRs
aW5lcyhsaW5lczIpCisgICAgICAgIGZvciBsaW5lIGluIGxpbmVzMjoKKyAgICAgICAgICAgIGZv
ciB4IGluIHNlbGYubGluZXM6CisgICAgICAgICAgICAgICAgaWYgbGluZSA9PSB4IG9yIG1hdGNo
X2Z1bmMoeCwgbGluZSk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZygibWF0Y2hlZDog
IiwgcmVwcihsaW5lKSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgc2VsZi5fbG9nKCJsaW5lICVyIG5vdCBmb3VuZCBpbiBvdXRw
dXQiICUgbGluZSkKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKHNlbGYuX2xvZ190
ZXh0KQorCisgICAgZGVmIGdldF9saW5lc19hZnRlcihzZWxmLCBmbmxpbmUpOgorICAgICAgICAi
IiJSZXR1cm4gYWxsIGxpbmVzIGZvbGxvd2luZyB0aGUgZ2l2ZW4gbGluZSBpbiB0aGUgdGV4dC4K
KworICAgICAgICBUaGUgZ2l2ZW4gbGluZSBjYW4gY29udGFpbiBnbG9iIHdpbGRjYXJkcy4KKyAg
ICAgICAgIiIiCisgICAgICAgIGZvciBpLCBsaW5lIGluIGVudW1lcmF0ZShzZWxmLmxpbmVzKToK
KyAgICAgICAgICAgIGlmIGZubGluZSA9PSBsaW5lIG9yIGZubWF0Y2gobGluZSwgZm5saW5lKToK
KyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5saW5lc1tpICsgMTpdCisgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoImxpbmUgJXIgbm90IGZvdW5kIGluIG91dHB1dCIgJSBmbmxpbmUpCisKKyAg
ICBkZWYgX2xvZyhzZWxmLCAqYXJncyk6CisgICAgICAgIHNlbGYuX2xvZ19vdXRwdXQuYXBwZW5k
KCcgJy5qb2luKChzdHIoeCkgZm9yIHggaW4gYXJncykpKQorCisgICAgQHByb3BlcnR5CisgICAg
ZGVmIF9sb2dfdGV4dChzZWxmKToKKyAgICAgICAgcmV0dXJuICdcbicuam9pbihzZWxmLl9sb2df
b3V0cHV0KQorCisgICAgZGVmIGZubWF0Y2hfbGluZXMoc2VsZiwgbGluZXMyKToKKyAgICAgICAg
IiIiU2VhcmNoIGNhcHR1cmVkIHRleHQgZm9yIG1hdGNoaW5nIGxpbmVzIHVzaW5nIGBgZm5tYXRj
aC5mbm1hdGNoYGAuCisKKyAgICAgICAgVGhlIGFyZ3VtZW50IGlzIGEgbGlzdCBvZiBsaW5lcyB3
aGljaCBoYXZlIHRvIG1hdGNoIGFuZCBjYW4KKyAgICAgICAgdXNlIGdsb2Igd2lsZGNhcmRzLiAg
SWYgdGhleSBkbyBub3QgbWF0Y2ggYSBweXRlc3QuZmFpbCgpIGlzCisgICAgICAgIGNhbGxlZC4g
IFRoZSBtYXRjaGVzIGFuZCBub24tbWF0Y2hlcyBhcmUgYWxzbyBwcmludGVkIG9uCisgICAgICAg
IHN0ZG91dC4KKworICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fbWF0Y2hfbGluZXMobGluZXMy
LCBmbm1hdGNoLCAnZm5tYXRjaCcpCisKKyAgICBkZWYgcmVfbWF0Y2hfbGluZXMoc2VsZiwgbGlu
ZXMyKToKKyAgICAgICAgIiIiU2VhcmNoIGNhcHR1cmVkIHRleHQgZm9yIG1hdGNoaW5nIGxpbmVz
IHVzaW5nIGBgcmUubWF0Y2hgYC4KKworICAgICAgICBUaGUgYXJndW1lbnQgaXMgYSBsaXN0IG9m
IGxpbmVzIHdoaWNoIGhhdmUgdG8gbWF0Y2ggdXNpbmcgYGByZS5tYXRjaGBgLgorICAgICAgICBJ
ZiB0aGV5IGRvIG5vdCBtYXRjaCBhIHB5dGVzdC5mYWlsKCkgaXMgY2FsbGVkLgorCisgICAgICAg
IFRoZSBtYXRjaGVzIGFuZCBub24tbWF0Y2hlcyBhcmUgYWxzbyBwcmludGVkIG9uCisgICAgICAg
IHN0ZG91dC4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX21hdGNoX2xpbmVzKGxpbmVzMiwg
bGFtYmRhIG5hbWUsIHBhdDogcmUubWF0Y2gocGF0LCBuYW1lKSwgJ3JlLm1hdGNoJykKKworICAg
IGRlZiBfbWF0Y2hfbGluZXMoc2VsZiwgbGluZXMyLCBtYXRjaF9mdW5jLCBtYXRjaF9uaWNrbmFt
ZSk6CisgICAgICAgICIiIlVuZGVybHlpbmcgaW1wbGVtZW50YXRpb24gb2YgYGBmbm1hdGNoX2xp
bmVzYGAgYW5kIGBgcmVfbWF0Y2hfbGluZXNgYC4KKworICAgICAgICA6cGFyYW0gbGlzdFtzdHJd
IGxpbmVzMjogbGlzdCBvZiBzdHJpbmcgcGF0dGVybnMgdG8gbWF0Y2guIFRoZSBhY3R1YWwgZm9y
bWF0IGRlcGVuZHMgb24KKyAgICAgICAgICAgIGBgbWF0Y2hfZnVuY2BgLgorICAgICAgICA6cGFy
YW0gbWF0Y2hfZnVuYzogYSBjYWxsYWJsZSBgYG1hdGNoX2Z1bmMobGluZSwgcGF0dGVybilgYCB3
aGVyZSBsaW5lIGlzIHRoZSBjYXB0dXJlZAorICAgICAgICAgICAgbGluZSBmcm9tIHN0ZG91dC9z
dGRlcnIgYW5kIHBhdHRlcm4gaXMgdGhlIG1hdGNoaW5nIHBhdHRlcm4uCisKKyAgICAgICAgOnBh
cmFtIHN0ciBtYXRjaF9uaWNrbmFtZTogdGhlIG5pY2tuYW1lIGZvciB0aGUgbWF0Y2ggZnVuY3Rp
b24gdGhhdCB3aWxsIGJlIGxvZ2dlZAorICAgICAgICAgICAgdG8gc3Rkb3V0IHdoZW4gYSBtYXRj
aCBvY2N1cnMuCisgICAgICAgICIiIgorICAgICAgICBsaW5lczIgPSBzZWxmLl9nZXRsaW5lcyhs
aW5lczIpCisgICAgICAgIGxpbmVzMSA9IHNlbGYubGluZXNbOl0KKyAgICAgICAgbmV4dGxpbmUg
PSBOb25lCisgICAgICAgIGV4dHJhbGluZXMgPSBbXQorICAgICAgICBfX3RyYWNlYmFja2hpZGVf
XyA9IFRydWUKKyAgICAgICAgZm9yIGxpbmUgaW4gbGluZXMyOgorICAgICAgICAgICAgbm9tYXRj
aHByaW50ZWQgPSBGYWxzZQorICAgICAgICAgICAgd2hpbGUgbGluZXMxOgorICAgICAgICAgICAg
ICAgIG5leHRsaW5lID0gbGluZXMxLnBvcCgwKQorICAgICAgICAgICAgICAgIGlmIGxpbmUgPT0g
bmV4dGxpbmU6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZygiZXhhY3QgbWF0Y2g6Iiwg
cmVwcihsaW5lKSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBl
bGlmIG1hdGNoX2Z1bmMobmV4dGxpbmUsIGxpbmUpOgorICAgICAgICAgICAgICAgICAgICBzZWxm
Ll9sb2coIiVzOiIgJSBtYXRjaF9uaWNrbmFtZSwgcmVwcihsaW5lKSkKKyAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fbG9nKCIgICB3aXRoOiIsIHJlcHIobmV4dGxpbmUpKQorICAgICAgICAgICAg
ICAgICAgICBicmVhaworICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAg
IGlmIG5vdCBub21hdGNocHJpbnRlZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2xv
Zygibm9tYXRjaDoiLCByZXByKGxpbmUpKQorICAgICAgICAgICAgICAgICAgICAgICAgbm9tYXRj
aHByaW50ZWQgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZygiICAgIGFuZDoi
LCByZXByKG5leHRsaW5lKSkKKyAgICAgICAgICAgICAgICBleHRyYWxpbmVzLmFwcGVuZChuZXh0
bGluZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi5fbG9nKCJyZW1h
aW5zIHVubWF0Y2hlZDogJXIiICUgKGxpbmUsKSkKKyAgICAgICAgICAgICAgICBweXRlc3QuZmFp
bChzZWxmLl9sb2dfdGV4dCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcHl0aG9u
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9weXRob24ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjUwMTcxYTll
OWM5MDkwOWRhM2NlMjdiYTU5NjM4YTVmYzliMTY0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L19weXRlc3QvcHl0aG9uLnB5CkBAIC0wLDAgKzEsMTE3NSBAQAorIiIiIFB5dGhvbiB0
ZXN0IGRpc2NvdmVyeSwgc2V0dXAgYW5kIHJ1biBvZiB0ZXN0IGZ1bmN0aW9ucy4gIiIiCitmcm9t
IF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0
aW9uCisKK2ltcG9ydCBmbm1hdGNoCitpbXBvcnQgaW5zcGVjdAoraW1wb3J0IHN5cworaW1wb3J0
IG9zCitpbXBvcnQgY29sbGVjdGlvbnMKK2ltcG9ydCB3YXJuaW5ncworZnJvbSB0ZXh0d3JhcCBp
bXBvcnQgZGVkZW50Citmcm9tIGl0ZXJ0b29scyBpbXBvcnQgY291bnQKKworCitpbXBvcnQgcHkK
K2ltcG9ydCBzaXgKK2Zyb20gX3B5dGVzdC5tYXJrIGltcG9ydCBNYXJrZXJFcnJvcgorZnJvbSBf
cHl0ZXN0LmNvbmZpZyBpbXBvcnQgaG9va2ltcGwKKworaW1wb3J0IF9weXRlc3QKK2ltcG9ydCBw
bHVnZ3kKK2Zyb20gX3B5dGVzdCBpbXBvcnQgZml4dHVyZXMKK2Zyb20gX3B5dGVzdCBpbXBvcnQg
bWFpbgorZnJvbSBfcHl0ZXN0IGltcG9ydCBkZXByZWNhdGVkCitmcm9tIF9weXRlc3QuY29tcGF0
IGltcG9ydCAoCisgICAgaXNjbGFzcywgaXNmdW5jdGlvbiwgaXNfZ2VuZXJhdG9yLCBhc2NpaV9l
c2NhcGVkLAorICAgIFJFR0VYX1RZUEUsIFNUUklOR19UWVBFUywgTm9uZVR5cGUsIE5PVFNFVCwK
KyAgICBnZXRfcmVhbF9mdW5jLCBnZXRmc2xpbmVubywgc2FmZV9nZXRhdHRyLAorICAgIHNhZmVf
c3RyLCBnZXRsb2NhdGlvbiwgZW51bSwKKykKK2Zyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQg
ZmFpbAorZnJvbSBfcHl0ZXN0Lm1hcmsgaW1wb3J0IHRyYW5zZmVyX21hcmtlcnMKKworY3V0ZGly
MSA9IHB5LnBhdGgubG9jYWwocGx1Z2d5Ll9fZmlsZV9fLnJzdHJpcCgib2MiKSkKK2N1dGRpcjIg
PSBweS5wYXRoLmxvY2FsKF9weXRlc3QuX19maWxlX18pLmRpcnBhdGgoKQorY3V0ZGlyMyA9IHB5
LnBhdGgubG9jYWwocHkuX19maWxlX18pLmRpcnBhdGgoKQorCisKK2RlZiBmaWx0ZXJfdHJhY2Vi
YWNrKGVudHJ5KToKKyAgICAiIiJSZXR1cm4gVHJ1ZSBpZiBhIFRyYWNlYmFja0VudHJ5IGluc3Rh
bmNlIHNob3VsZCBiZSByZW1vdmVkIGZyb20gdHJhY2ViYWNrczoKKyAgICAqIGR5bmFtaWNhbGx5
IGdlbmVyYXRlZCBjb2RlIChubyBjb2RlIHRvIHNob3cgdXAgZm9yIGl0KTsKKyAgICAqIGludGVy
bmFsIHRyYWNlYmFjayBmcm9tIHB5dGVzdCBvciBpdHMgaW50ZXJuYWwgbGlicmFyaWVzLCBweSBh
bmQgcGx1Z2d5LgorICAgICIiIgorICAgICMgZW50cnkucGF0aCBtaWdodCBzb21ldGltZXMgcmV0
dXJuIGEgc3RyIG9iamVjdCB3aGVuIHRoZSBlbnRyeQorICAgICMgcG9pbnRzIHRvIGR5bmFtaWNh
bGx5IGdlbmVyYXRlZCBjb2RlCisgICAgIyBzZWUgaHR0cHM6Ly9iaXRidWNrZXQub3JnL3B5dGVz
dC1kZXYvcHkvaXNzdWVzLzcxCisgICAgcmF3X2ZpbGVuYW1lID0gZW50cnkuZnJhbWUuY29kZS5y
YXcuY29fZmlsZW5hbWUKKyAgICBpc19nZW5lcmF0ZWQgPSAnPCcgaW4gcmF3X2ZpbGVuYW1lIGFu
ZCAnPicgaW4gcmF3X2ZpbGVuYW1lCisgICAgaWYgaXNfZ2VuZXJhdGVkOgorICAgICAgICByZXR1
cm4gRmFsc2UKKyAgICAjIGVudHJ5LnBhdGggbWlnaHQgcG9pbnQgdG8gYW4gaW5leGlzdGluZyBm
aWxlLCBpbiB3aGljaCBjYXNlIGl0IHdpbGwKKyAgICAjIGFsc3NvIHJldHVybiBhIHN0ciBvYmpl
Y3QuIHNlZSAjMTEzMworICAgIHAgPSBweS5wYXRoLmxvY2FsKGVudHJ5LnBhdGgpCisgICAgcmV0
dXJuIHAgIT0gY3V0ZGlyMSBhbmQgbm90IHAucmVsdG8oY3V0ZGlyMikgYW5kIG5vdCBwLnJlbHRv
KGN1dGRpcjMpCisKKworZGVmIHB5b2JqX3Byb3BlcnR5KG5hbWUpOgorICAgIGRlZiBnZXQoc2Vs
Zik6CisgICAgICAgIG5vZGUgPSBzZWxmLmdldHBhcmVudChnZXRhdHRyKF9faW1wb3J0X18oJ3B5
dGVzdCcpLCBuYW1lKSkKKyAgICAgICAgaWYgbm9kZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
IHJldHVybiBub2RlLm9iagorICAgIGRvYyA9ICJweXRob24gJXMgb2JqZWN0IHRoaXMgbm9kZSB3
YXMgY29sbGVjdGVkIGZyb20gKGNhbiBiZSBOb25lKS4iICUgKAorICAgICAgICAgIG5hbWUubG93
ZXIoKSwpCisgICAgcmV0dXJuIHByb3BlcnR5KGdldCwgTm9uZSwgTm9uZSwgZG9jKQorCisKK2Rl
ZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAo
ImdlbmVyYWwiKQorICAgIGdyb3VwLmFkZG9wdGlvbignLS1maXh0dXJlcycsICctLWZ1bmNhcmdz
JywKKyAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0ic2hvd2Zp
eHR1cmVzIiwgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgaGVscD0ic2hvdyBh
dmFpbGFibGUgZml4dHVyZXMsIHNvcnRlZCBieSBwbHVnaW4gYXBwZWFyYW5jZSIpCisgICAgZ3Jv
dXAuYWRkb3B0aW9uKAorICAgICAgICAnLS1maXh0dXJlcy1wZXItdGVzdCcsCisgICAgICAgIGFj
dGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgIGRlc3Q9InNob3dfZml4dHVyZXNfcGVyX3Rlc3Qi
LAorICAgICAgICBkZWZhdWx0PUZhbHNlLAorICAgICAgICBoZWxwPSJzaG93IGZpeHR1cmVzIHBl
ciB0ZXN0IiwKKyAgICApCisgICAgcGFyc2VyLmFkZGluaSgidXNlZml4dHVyZXMiLCB0eXBlPSJh
cmdzIiwgZGVmYXVsdD1bXSwKKyAgICAgICAgICAgICAgICAgIGhlbHA9Imxpc3Qgb2YgZGVmYXVs
dCBmaXh0dXJlcyB0byBiZSB1c2VkIHdpdGggdGhpcyBwcm9qZWN0IikKKyAgICBwYXJzZXIuYWRk
aW5pKCJweXRob25fZmlsZXMiLCB0eXBlPSJhcmdzIiwKKyAgICAgICAgICAgICAgICAgIGRlZmF1
bHQ9Wyd0ZXN0XyoucHknLCAnKl90ZXN0LnB5J10sCisgICAgICAgICAgICAgICAgICBoZWxwPSJn
bG9iLXN0eWxlIGZpbGUgcGF0dGVybnMgZm9yIFB5dGhvbiB0ZXN0IG1vZHVsZSBkaXNjb3Zlcnki
KQorICAgIHBhcnNlci5hZGRpbmkoInB5dGhvbl9jbGFzc2VzIiwgdHlwZT0iYXJncyIsIGRlZmF1
bHQ9WyJUZXN0IiwgXSwKKyAgICAgICAgICAgICAgICAgIGhlbHA9InByZWZpeGVzIG9yIGdsb2Ig
bmFtZXMgZm9yIFB5dGhvbiB0ZXN0IGNsYXNzIGRpc2NvdmVyeSIpCisgICAgcGFyc2VyLmFkZGlu
aSgicHl0aG9uX2Z1bmN0aW9ucyIsIHR5cGU9ImFyZ3MiLCBkZWZhdWx0PVsidGVzdCIsIF0sCisg
ICAgICAgICAgICAgICAgICBoZWxwPSJwcmVmaXhlcyBvciBnbG9iIG5hbWVzIGZvciBQeXRob24g
dGVzdCBmdW5jdGlvbiBhbmQgIgorICAgICAgICAgICAgICAgICAgIm1ldGhvZCBkaXNjb3Zlcnki
KQorCisgICAgZ3JvdXAuYWRkb3B0aW9uKCItLWltcG9ydC1tb2RlIiwgZGVmYXVsdD0icHJlcGVu
ZCIsCisgICAgICAgICAgICAgICAgICAgIGNob2ljZXM9WyJwcmVwZW5kIiwgImFwcGVuZCJdLCBk
ZXN0PSJpbXBvcnRtb2RlIiwKKyAgICAgICAgICAgICAgICAgICAgaGVscD0icHJlcGVuZC9hcHBl
bmQgdG8gc3lzLnBhdGggd2hlbiBpbXBvcnRpbmcgdGVzdCBtb2R1bGVzLCAiCisgICAgICAgICAg
ICAgICAgICAgICJkZWZhdWx0IGlzIHRvIHByZXBlbmQuIikKKworCitkZWYgcHl0ZXN0X2NtZGxp
bmVfbWFpbihjb25maWcpOgorICAgIGlmIGNvbmZpZy5vcHRpb24uc2hvd2ZpeHR1cmVzOgorICAg
ICAgICBzaG93Zml4dHVyZXMoY29uZmlnKQorICAgICAgICByZXR1cm4gMAorICAgIGlmIGNvbmZp
Zy5vcHRpb24uc2hvd19maXh0dXJlc19wZXJfdGVzdDoKKyAgICAgICAgc2hvd19maXh0dXJlc19w
ZXJfdGVzdChjb25maWcpCisgICAgICAgIHJldHVybiAwCisKKworZGVmIHB5dGVzdF9nZW5lcmF0
ZV90ZXN0cyhtZXRhZnVuYyk6CisgICAgIyB0aG9zZSBhbHRlcm5hdGl2ZSBzcGVsbGluZ3MgYXJl
IGNvbW1vbiAtIHJhaXNlIGEgc3BlY2lmaWMgZXJyb3IgdG8gYWxlcnQKKyAgICAjIHRoZSB1c2Vy
CisgICAgYWx0X3NwZWxsaW5ncyA9IFsncGFyYW1ldGVyaXplJywgJ3BhcmFtZXRyaXNlJywgJ3Bh
cmFtZXRlcmlzZSddCisgICAgZm9yIGF0dHIgaW4gYWx0X3NwZWxsaW5nczoKKyAgICAgICAgaWYg
aGFzYXR0cihtZXRhZnVuYy5mdW5jdGlvbiwgYXR0cik6CisgICAgICAgICAgICBtc2cgPSAiezB9
IGhhcyAnezF9Jywgc3BlbGxpbmcgc2hvdWxkIGJlICdwYXJhbWV0cml6ZSciCisgICAgICAgICAg
ICByYWlzZSBNYXJrZXJFcnJvcihtc2cuZm9ybWF0KG1ldGFmdW5jLmZ1bmN0aW9uLl9fbmFtZV9f
LCBhdHRyKSkKKyAgICB0cnk6CisgICAgICAgIG1hcmtlcnMgPSBtZXRhZnVuYy5mdW5jdGlvbi5w
YXJhbWV0cml6ZQorICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgcmV0dXJuCisg
ICAgZm9yIG1hcmtlciBpbiBtYXJrZXJzOgorICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgq
bWFya2VyLmFyZ3MsICoqbWFya2VyLmt3YXJncykKKworCitkZWYgcHl0ZXN0X2NvbmZpZ3VyZShj
b25maWcpOgorICAgIGNvbmZpZy5hZGRpbml2YWx1ZV9saW5lKCJtYXJrZXJzIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAicGFyYW1ldHJpemUoYXJnbmFtZXMsIGFyZ3ZhbHVlcyk6IGNh
bGwgYSB0ZXN0IGZ1bmN0aW9uIG11bHRpcGxlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAidGltZXMgcGFzc2luZyBpbiBkaWZmZXJlbnQgYXJndW1lbnRzIGluIHR1cm4uIGFyZ3ZhbHVl
cyBnZW5lcmFsbHkgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuZWVkcyB0byBiZSBh
IGxpc3Qgb2YgdmFsdWVzIGlmIGFyZ25hbWVzIHNwZWNpZmllcyBvbmx5IG9uZSBuYW1lICIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAib3IgYSBsaXN0IG9mIHR1cGxlcyBvZiB2YWx1ZXMg
aWYgYXJnbmFtZXMgc3BlY2lmaWVzIG11bHRpcGxlIG5hbWVzLiAiCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIkV4YW1wbGU6IEBwYXJhbWV0cml6ZSgnYXJnMScsIFsxLDJdKSB3b3VsZCBs
ZWFkIHRvIHR3byBjYWxscyBvZiB0aGUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJk
ZWNvcmF0ZWQgdGVzdCBmdW5jdGlvbiwgb25lIHdpdGggYXJnMT0xIGFuZCBhbm90aGVyIHdpdGgg
YXJnMT0yLiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VlIGh0dHA6Ly9weXRlc3Qu
b3JnL2xhdGVzdC9wYXJhbWV0cml6ZS5odG1sIGZvciBtb3JlIGluZm8gYW5kICIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiZXhhbXBsZXMuIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICkKKyAgICBjb25maWcuYWRkaW5pdmFsdWVfbGluZSgibWFya2VycyIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInVzZWZpeHR1cmVzKGZpeHR1cmVuYW1lMSwgZml4dHVyZW5hbWUy
LCAuLi4pOiBtYXJrIHRlc3RzIGFzIG5lZWRpbmcgIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJhbGwgb2YgdGhlIHNwZWNpZmllZCBmaXh0dXJlcy4gc2VlIGh0dHA6Ly9weXRlc3Qub3Jn
L2xhdGVzdC9maXh0dXJlLmh0bWwjdXNlZml4dHVyZXMgIgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICkKKworCitAaG9va2ltcGwodHJ5bGFzdD1UcnVlKQorZGVmIHB5dGVzdF9weWZ1bmNf
Y2FsbChweWZ1bmNpdGVtKToKKyAgICB0ZXN0ZnVuY3Rpb24gPSBweWZ1bmNpdGVtLm9iagorICAg
IGlmIHB5ZnVuY2l0ZW0uX2lzeWllbGRlZGZ1bmN0aW9uKCk6CisgICAgICAgIHRlc3RmdW5jdGlv
bigqcHlmdW5jaXRlbS5fYXJncykKKyAgICBlbHNlOgorICAgICAgICBmdW5jYXJncyA9IHB5ZnVu
Y2l0ZW0uZnVuY2FyZ3MKKyAgICAgICAgdGVzdGFyZ3MgPSB7fQorICAgICAgICBmb3IgYXJnIGlu
IHB5ZnVuY2l0ZW0uX2ZpeHR1cmVpbmZvLmFyZ25hbWVzOgorICAgICAgICAgICAgdGVzdGFyZ3Nb
YXJnXSA9IGZ1bmNhcmdzW2FyZ10KKyAgICAgICAgdGVzdGZ1bmN0aW9uKCoqdGVzdGFyZ3MpCisg
ICAgcmV0dXJuIFRydWUKKworCitkZWYgcHl0ZXN0X2NvbGxlY3RfZmlsZShwYXRoLCBwYXJlbnQp
OgorICAgIGV4dCA9IHBhdGguZXh0CisgICAgaWYgZXh0ID09ICIucHkiOgorICAgICAgICBpZiBu
b3QgcGFyZW50LnNlc3Npb24uaXNpbml0cGF0aChwYXRoKToKKyAgICAgICAgICAgIGZvciBwYXQg
aW4gcGFyZW50LmNvbmZpZy5nZXRpbmkoJ3B5dGhvbl9maWxlcycpOgorICAgICAgICAgICAgICAg
IGlmIHBhdGguZm5tYXRjaChwYXQpOgorICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgaWhvb2sgPSBwYXJl
bnQuc2Vzc2lvbi5nZXRob29rcHJveHkocGF0aCkKKyAgICAgICAgcmV0dXJuIGlob29rLnB5dGVz
dF9weWNvbGxlY3RfbWFrZW1vZHVsZShwYXRoPXBhdGgsIHBhcmVudD1wYXJlbnQpCisKKworZGVm
IHB5dGVzdF9weWNvbGxlY3RfbWFrZW1vZHVsZShwYXRoLCBwYXJlbnQpOgorICAgIHJldHVybiBN
b2R1bGUocGF0aCwgcGFyZW50KQorCisKK0Bob29raW1wbChob29rd3JhcHBlcj1UcnVlKQorZGVm
IHB5dGVzdF9weWNvbGxlY3RfbWFrZWl0ZW0oY29sbGVjdG9yLCBuYW1lLCBvYmopOgorICAgIG91
dGNvbWUgPSB5aWVsZAorICAgIHJlcyA9IG91dGNvbWUuZ2V0X3Jlc3VsdCgpCisgICAgaWYgcmVz
IGlzIG5vdCBOb25lOgorICAgICAgICByZXR1cm4KKyAgICAjIG5vdGhpbmcgd2FzIGNvbGxlY3Rl
ZCBlbHNld2hlcmUsIGxldCdzIGRvIGl0IGhlcmUKKyAgICBpZiBpc2NsYXNzKG9iaik6CisgICAg
ICAgIGlmIGNvbGxlY3Rvci5pc3Rlc3RjbGFzcyhvYmosIG5hbWUpOgorICAgICAgICAgICAgQ2xh
c3MgPSBjb2xsZWN0b3IuX2dldGN1c3RvbWNsYXNzKCJDbGFzcyIpCisgICAgICAgICAgICBvdXRj
b21lLmZvcmNlX3Jlc3VsdChDbGFzcyhuYW1lLCBwYXJlbnQ9Y29sbGVjdG9yKSkKKyAgICBlbGlm
IGNvbGxlY3Rvci5pc3Rlc3RmdW5jdGlvbihvYmosIG5hbWUpOgorICAgICAgICAjIG1vY2sgc2Vl
bXMgdG8gc3RvcmUgdW5ib3VuZCBtZXRob2RzIChpc3N1ZTQ3MyksIG5vcm1hbGl6ZSBpdAorICAg
ICAgICBvYmogPSBnZXRhdHRyKG9iaiwgIl9fZnVuY19fIiwgb2JqKQorICAgICAgICAjIFdlIG5l
ZWQgdG8gdHJ5IGFuZCB1bndyYXAgdGhlIGZ1bmN0aW9uIGlmIGl0J3MgYSBmdW5jdG9vbHMucGFy
dGlhbAorICAgICAgICAjIG9yIGEgZnVudG9vbHMud3JhcHBlZC4KKyAgICAgICAgIyBXZSBtdXNu
J3QgaWYgaXQncyBiZWVuIHdyYXBwZWQgd2l0aCBtb2NrLnBhdGNoIChweXRob24gMiBvbmx5KQor
ICAgICAgICBpZiBub3QgKGlzZnVuY3Rpb24ob2JqKSBvciBpc2Z1bmN0aW9uKGdldF9yZWFsX2Z1
bmMob2JqKSkpOgorICAgICAgICAgICAgY29sbGVjdG9yLndhcm4oY29kZT0iQzIiLCBtZXNzYWdl
PSJjYW5ub3QgY29sbGVjdCAlciBiZWNhdXNlIGl0IGlzIG5vdCBhIGZ1bmN0aW9uLiIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICUgbmFtZSwgKQorICAgICAgICBlbGlmIGdldGF0dHIob2Jq
LCAiX190ZXN0X18iLCBUcnVlKToKKyAgICAgICAgICAgIGlmIGlzX2dlbmVyYXRvcihvYmopOgor
ICAgICAgICAgICAgICAgIHJlcyA9IEdlbmVyYXRvcihuYW1lLCBwYXJlbnQ9Y29sbGVjdG9yKQor
ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXMgPSBsaXN0KGNvbGxlY3Rvci5f
Z2VuZnVuY3Rpb25zKG5hbWUsIG9iaikpCisgICAgICAgICAgICBvdXRjb21lLmZvcmNlX3Jlc3Vs
dChyZXMpCisKKworZGVmIHB5dGVzdF9tYWtlX3BhcmFtZXRyaXplX2lkKGNvbmZpZywgdmFsLCBh
cmduYW1lPU5vbmUpOgorICAgIHJldHVybiBOb25lCisKKworY2xhc3MgUHlvYmpDb250ZXh0KG9i
amVjdCk6CisgICAgbW9kdWxlID0gcHlvYmpfcHJvcGVydHkoIk1vZHVsZSIpCisgICAgY2xzID0g
cHlvYmpfcHJvcGVydHkoIkNsYXNzIikKKyAgICBpbnN0YW5jZSA9IHB5b2JqX3Byb3BlcnR5KCJJ
bnN0YW5jZSIpCisKKworY2xhc3MgUHlvYmpNaXhpbihQeW9iakNvbnRleHQpOgorICAgIGRlZiBv
YmooKToKKyAgICAgICAgZGVmIGZnZXQoc2VsZik6CisgICAgICAgICAgICBvYmogPSBnZXRhdHRy
KHNlbGYsICdfb2JqJywgTm9uZSkKKyAgICAgICAgICAgIGlmIG9iaiBpcyBOb25lOgorICAgICAg
ICAgICAgICAgIHNlbGYuX29iaiA9IG9iaiA9IHNlbGYuX2dldG9iaigpCisgICAgICAgICAgICBy
ZXR1cm4gb2JqCisKKyAgICAgICAgZGVmIGZzZXQoc2VsZiwgdmFsdWUpOgorICAgICAgICAgICAg
c2VsZi5fb2JqID0gdmFsdWUKKworICAgICAgICByZXR1cm4gcHJvcGVydHkoZmdldCwgZnNldCwg
Tm9uZSwgInVuZGVybHlpbmcgcHl0aG9uIG9iamVjdCIpCisKKyAgICBvYmogPSBvYmooKQorCisg
ICAgZGVmIF9nZXRvYmooc2VsZik6CisgICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYucGFyZW50
Lm9iaiwgc2VsZi5uYW1lKQorCisgICAgZGVmIGdldG1vZHBhdGgoc2VsZiwgc3RvcGF0bW9kdWxl
PVRydWUsIGluY2x1ZGVtb2R1bGU9RmFsc2UpOgorICAgICAgICAiIiIgcmV0dXJuIHB5dGhvbiBw
YXRoIHJlbGF0aXZlIHRvIHRoZSBjb250YWluaW5nIG1vZHVsZS4gIiIiCisgICAgICAgIGNoYWlu
ID0gc2VsZi5saXN0Y2hhaW4oKQorICAgICAgICBjaGFpbi5yZXZlcnNlKCkKKyAgICAgICAgcGFy
dHMgPSBbXQorICAgICAgICBmb3Igbm9kZSBpbiBjaGFpbjoKKyAgICAgICAgICAgIGlmIGlzaW5z
dGFuY2Uobm9kZSwgSW5zdGFuY2UpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAg
ICAgICBuYW1lID0gbm9kZS5uYW1lCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKG5vZGUsIE1v
ZHVsZSk6CisgICAgICAgICAgICAgICAgbmFtZSA9IG9zLnBhdGguc3BsaXRleHQobmFtZSlbMF0K
KyAgICAgICAgICAgICAgICBpZiBzdG9wYXRtb2R1bGU6CisgICAgICAgICAgICAgICAgICAgIGlm
IGluY2x1ZGVtb2R1bGU6CisgICAgICAgICAgICAgICAgICAgICAgICBwYXJ0cy5hcHBlbmQobmFt
ZSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIHBhcnRzLmFwcGVuZChu
YW1lKQorICAgICAgICBwYXJ0cy5yZXZlcnNlKCkKKyAgICAgICAgcyA9ICIuIi5qb2luKHBhcnRz
KQorICAgICAgICByZXR1cm4gcy5yZXBsYWNlKCIuWyIsICJbIikKKworICAgIGRlZiBfZ2V0ZnNs
aW5lbm8oc2VsZik6CisgICAgICAgIHJldHVybiBnZXRmc2xpbmVubyhzZWxmLm9iaikKKworICAg
IGRlZiByZXBvcnRpbmZvKHNlbGYpOgorICAgICAgICAjIFhYWCBjYWNoaW5nPworICAgICAgICBv
YmogPSBzZWxmLm9iagorICAgICAgICBjb21wYXRfY29fZmlyc3RsaW5lbm8gPSBnZXRhdHRyKG9i
aiwgJ2NvbXBhdF9jb19maXJzdGxpbmVubycsIE5vbmUpCisgICAgICAgIGlmIGlzaW5zdGFuY2Uo
Y29tcGF0X2NvX2ZpcnN0bGluZW5vLCBpbnQpOgorICAgICAgICAgICAgIyBub3NlIGNvbXBhdGli
aWxpdHkKKyAgICAgICAgICAgIGZzcGF0aCA9IHN5cy5tb2R1bGVzW29iai5fX21vZHVsZV9fXS5f
X2ZpbGVfXworICAgICAgICAgICAgaWYgZnNwYXRoLmVuZHN3aXRoKCIucHljIik6CisgICAgICAg
ICAgICAgICAgZnNwYXRoID0gZnNwYXRoWzotMV0KKyAgICAgICAgICAgIGxpbmVubyA9IGNvbXBh
dF9jb19maXJzdGxpbmVubworICAgICAgICBlbHNlOgorICAgICAgICAgICAgZnNwYXRoLCBsaW5l
bm8gPSBnZXRmc2xpbmVubyhvYmopCisgICAgICAgIG1vZHBhdGggPSBzZWxmLmdldG1vZHBhdGgo
KQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShsaW5lbm8sIGludCkKKyAgICAgICAgcmV0dXJu
IGZzcGF0aCwgbGluZW5vLCBtb2RwYXRoCisKKworY2xhc3MgUHlDb2xsZWN0b3IoUHlvYmpNaXhp
biwgbWFpbi5Db2xsZWN0b3IpOgorCisgICAgZGVmIGZ1bmNuYW1lZmlsdGVyKHNlbGYsIG5hbWUp
OgorICAgICAgICByZXR1cm4gc2VsZi5fbWF0Y2hlc19wcmVmaXhfb3JfZ2xvYl9vcHRpb24oJ3B5
dGhvbl9mdW5jdGlvbnMnLCBuYW1lKQorCisgICAgZGVmIGlzbm9zZXRlc3Qoc2VsZiwgb2JqKToK
KyAgICAgICAgIiIiIExvb2sgZm9yIHRoZSBfX3Rlc3RfXyBhdHRyaWJ1dGUsIHdoaWNoIGlzIGFw
cGxpZWQgYnkgdGhlCisgICAgICAgIEBub3NlLnRvb2xzLmlzdGVzdCBkZWNvcmF0b3IKKyAgICAg
ICAgIiIiCisgICAgICAgICMgV2UgZXhwbGljaXRseSBjaGVjayBmb3IgImlzIFRydWUiIGhlcmUg
dG8gbm90IG1pc3Rha2VubHkgdHJlYXQKKyAgICAgICAgIyBjbGFzc2VzIHdpdGggYSBjdXN0b20g
X19nZXRhdHRyX18gcmV0dXJuaW5nIHNvbWV0aGluZyB0cnV0aHkgKGxpa2UgYQorICAgICAgICAj
IGZ1bmN0aW9uKSBhcyB0ZXN0IGNsYXNzZXMuCisgICAgICAgIHJldHVybiBzYWZlX2dldGF0dHIo
b2JqLCAnX190ZXN0X18nLCBGYWxzZSkgaXMgVHJ1ZQorCisgICAgZGVmIGNsYXNzbmFtZWZpbHRl
cihzZWxmLCBuYW1lKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX21hdGNoZXNfcHJlZml4X29yX2ds
b2Jfb3B0aW9uKCdweXRob25fY2xhc3NlcycsIG5hbWUpCisKKyAgICBkZWYgaXN0ZXN0ZnVuY3Rp
b24oc2VsZiwgb2JqLCBuYW1lKToKKyAgICAgICAgaWYgc2VsZi5mdW5jbmFtZWZpbHRlcihuYW1l
KSBvciBzZWxmLmlzbm9zZXRlc3Qob2JqKToKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uob2Jq
LCBzdGF0aWNtZXRob2QpOgorICAgICAgICAgICAgICAgICMgc3RhdGljIG1ldGhvZHMgbmVlZCB0
byBiZSB1bndyYXBwZWQKKyAgICAgICAgICAgICAgICBvYmogPSBzYWZlX2dldGF0dHIob2JqLCAn
X19mdW5jX18nLCBGYWxzZSkKKyAgICAgICAgICAgICAgICBpZiBvYmogaXMgRmFsc2U6CisgICAg
ICAgICAgICAgICAgICAgICMgUHl0aG9uIDIuNiB3cmFwcyBpbiBhIGRpZmZlcmVudCB3YXkgdGhh
dCB3ZSB3b24ndCB0cnkgdG8gaGFuZGxlCisgICAgICAgICAgICAgICAgICAgIG1zZyA9ICJjYW5u
b3QgY29sbGVjdCBzdGF0aWMgbWV0aG9kICVyIGJlY2F1c2UgIiBcCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICJpdCBpcyBub3QgYSBmdW5jdGlvbiAoYWx3YXlzIHRoZSBjYXNlIGluIFB5dGhv
biAyLjYpIgorICAgICAgICAgICAgICAgICAgICBzZWxmLndhcm4oCisgICAgICAgICAgICAgICAg
ICAgICAgICBjb2RlPSJDMiIsIG1lc3NhZ2U9bXNnICUgbmFtZSkKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICByZXR1cm4gKAorICAgICAgICAgICAgICAgIHNh
ZmVfZ2V0YXR0cihvYmosICJfX2NhbGxfXyIsIEZhbHNlKSBhbmQgZml4dHVyZXMuZ2V0Zml4dHVy
ZW1hcmtlcihvYmopIGlzIE5vbmUKKyAgICAgICAgICAgICkKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIGlzdGVzdGNsYXNzKHNlbGYsIG9iaiwgbmFt
ZSk6CisgICAgICAgIHJldHVybiBzZWxmLmNsYXNzbmFtZWZpbHRlcihuYW1lKSBvciBzZWxmLmlz
bm9zZXRlc3Qob2JqKQorCisgICAgZGVmIF9tYXRjaGVzX3ByZWZpeF9vcl9nbG9iX29wdGlvbihz
ZWxmLCBvcHRpb25fbmFtZSwgbmFtZSk6CisgICAgICAgICIiIgorICAgICAgICBjaGVja3MgaWYg
dGhlIGdpdmVuIG5hbWUgbWF0Y2hlcyB0aGUgcHJlZml4IG9yIGdsb2ItcGF0dGVybiBkZWZpbmVk
CisgICAgICAgIGluIGluaSBjb25maWd1cmF0aW9uLgorICAgICAgICAiIiIKKyAgICAgICAgZm9y
IG9wdGlvbiBpbiBzZWxmLmNvbmZpZy5nZXRpbmkob3B0aW9uX25hbWUpOgorICAgICAgICAgICAg
aWYgbmFtZS5zdGFydHN3aXRoKG9wdGlvbik6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUK
KyAgICAgICAgICAgICMgY2hlY2sgdGhhdCBuYW1lIGxvb2tzIGxpa2UgYSBnbG9iLXN0cmluZyBi
ZWZvcmUgY2FsbGluZyBmbm1hdGNoCisgICAgICAgICAgICAjIGJlY2F1c2UgdGhpcyBpcyBjYWxs
ZWQgZm9yIGV2ZXJ5IG5hbWUgaW4gZWFjaCBjb2xsZWN0ZWQgbW9kdWxlLAorICAgICAgICAgICAg
IyBhbmQgZm5tYXRjaCBpcyBzb21ld2hhdCBleHBlbnNpdmUgdG8gY2FsbAorICAgICAgICAgICAg
ZWxpZiAoJyonIGluIG9wdGlvbiBvciAnPycgaW4gb3B0aW9uIG9yICdbJyBpbiBvcHRpb24pIGFu
ZCBcCisgICAgICAgICAgICAgICAgICAgIGZubWF0Y2guZm5tYXRjaChuYW1lLCBvcHRpb24pOgor
ICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAg
ZGVmIGNvbGxlY3Qoc2VsZik6CisgICAgICAgIGlmIG5vdCBnZXRhdHRyKHNlbGYub2JqLCAiX190
ZXN0X18iLCBUcnVlKToKKyAgICAgICAgICAgIHJldHVybiBbXQorCisgICAgICAgICMgTkIuIHdl
IGF2b2lkIHJhbmRvbSBnZXRhdHRycyBhbmQgcGVlayBpbiB0aGUgX19kaWN0X18gaW5zdGVhZAor
ICAgICAgICAjIChYWFggb3JpZ2luYWxseSBpbnRyb2R1Y2VkIGZyb20gYSBQeVB5IG5lZWQsIHN0
aWxsIHRydWU/KQorICAgICAgICBkaWN0cyA9IFtnZXRhdHRyKHNlbGYub2JqLCAnX19kaWN0X18n
LCB7fSldCisgICAgICAgIGZvciBiYXNlY2xzIGluIGluc3BlY3QuZ2V0bXJvKHNlbGYub2JqLl9f
Y2xhc3NfXyk6CisgICAgICAgICAgICBkaWN0cy5hcHBlbmQoYmFzZWNscy5fX2RpY3RfXykKKyAg
ICAgICAgc2VlbiA9IHt9CisgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAgIGZvciBkaWMgaW4g
ZGljdHM6CisgICAgICAgICAgICBmb3IgbmFtZSwgb2JqIGluIGxpc3QoZGljLml0ZW1zKCkpOgor
ICAgICAgICAgICAgICAgIGlmIG5hbWUgaW4gc2VlbjoKKyAgICAgICAgICAgICAgICAgICAgY29u
dGludWUKKyAgICAgICAgICAgICAgICBzZWVuW25hbWVdID0gVHJ1ZQorICAgICAgICAgICAgICAg
IHJlcyA9IHNlbGYuX21ha2VpdGVtKG5hbWUsIG9iaikKKyAgICAgICAgICAgICAgICBpZiByZXMg
aXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBp
ZiBub3QgaXNpbnN0YW5jZShyZXMsIGxpc3QpOgorICAgICAgICAgICAgICAgICAgICByZXMgPSBb
cmVzXQorICAgICAgICAgICAgICAgIHZhbHVlcy5leHRlbmQocmVzKQorICAgICAgICB2YWx1ZXMu
c29ydChrZXk9bGFtYmRhIGl0ZW06IGl0ZW0ucmVwb3J0aW5mbygpWzoyXSkKKyAgICAgICAgcmV0
dXJuIHZhbHVlcworCisgICAgZGVmIG1ha2VpdGVtKHNlbGYsIG5hbWUsIG9iaik6CisgICAgICAg
IHdhcm5pbmdzLndhcm4oZGVwcmVjYXRlZC5DT0xMRUNUT1JfTUFLRUlURU0sIHN0YWNrbGV2ZWw9
MikKKyAgICAgICAgc2VsZi5fbWFrZWl0ZW0obmFtZSwgb2JqKQorCisgICAgZGVmIF9tYWtlaXRl
bShzZWxmLCBuYW1lLCBvYmopOgorICAgICAgICAjIGFzc2VydCBzZWxmLmlob29rLmZzcGF0aCA9
PSBzZWxmLmZzcGF0aCwgc2VsZgorICAgICAgICByZXR1cm4gc2VsZi5paG9vay5weXRlc3RfcHlj
b2xsZWN0X21ha2VpdGVtKAorICAgICAgICAgICAgY29sbGVjdG9yPXNlbGYsIG5hbWU9bmFtZSwg
b2JqPW9iaikKKworICAgIGRlZiBfZ2VuZnVuY3Rpb25zKHNlbGYsIG5hbWUsIGZ1bmNvYmopOgor
ICAgICAgICBtb2R1bGUgPSBzZWxmLmdldHBhcmVudChNb2R1bGUpLm9iagorICAgICAgICBjbHNj
b2wgPSBzZWxmLmdldHBhcmVudChDbGFzcykKKyAgICAgICAgY2xzID0gY2xzY29sIGFuZCBjbHNj
b2wub2JqIG9yIE5vbmUKKyAgICAgICAgdHJhbnNmZXJfbWFya2VycyhmdW5jb2JqLCBjbHMsIG1v
ZHVsZSkKKyAgICAgICAgZm0gPSBzZWxmLnNlc3Npb24uX2ZpeHR1cmVtYW5hZ2VyCisgICAgICAg
IGZpeHR1cmVpbmZvID0gZm0uZ2V0Zml4dHVyZWluZm8oc2VsZiwgZnVuY29iaiwgY2xzKQorICAg
ICAgICBtZXRhZnVuYyA9IE1ldGFmdW5jKGZ1bmNvYmosIGZpeHR1cmVpbmZvLCBzZWxmLmNvbmZp
ZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHM9Y2xzLCBtb2R1bGU9bW9kdWxlKQor
ICAgICAgICBtZXRob2RzID0gW10KKyAgICAgICAgaWYgaGFzYXR0cihtb2R1bGUsICJweXRlc3Rf
Z2VuZXJhdGVfdGVzdHMiKToKKyAgICAgICAgICAgIG1ldGhvZHMuYXBwZW5kKG1vZHVsZS5weXRl
c3RfZ2VuZXJhdGVfdGVzdHMpCisgICAgICAgIGlmIGhhc2F0dHIoY2xzLCAicHl0ZXN0X2dlbmVy
YXRlX3Rlc3RzIik6CisgICAgICAgICAgICBtZXRob2RzLmFwcGVuZChjbHMoKS5weXRlc3RfZ2Vu
ZXJhdGVfdGVzdHMpCisgICAgICAgIGlmIG1ldGhvZHM6CisgICAgICAgICAgICBzZWxmLmlob29r
LnB5dGVzdF9nZW5lcmF0ZV90ZXN0cy5jYWxsX2V4dHJhKG1ldGhvZHMsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpY3QobWV0YWZ1bmM9
bWV0YWZ1bmMpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5paG9vay5weXRlc3Rf
Z2VuZXJhdGVfdGVzdHMobWV0YWZ1bmM9bWV0YWZ1bmMpCisKKyAgICAgICAgRnVuY3Rpb24gPSBz
ZWxmLl9nZXRjdXN0b21jbGFzcygiRnVuY3Rpb24iKQorICAgICAgICBpZiBub3QgbWV0YWZ1bmMu
X2NhbGxzOgorICAgICAgICAgICAgeWllbGQgRnVuY3Rpb24obmFtZSwgcGFyZW50PXNlbGYsIGZp
eHR1cmVpbmZvPWZpeHR1cmVpbmZvKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBhZGQg
ZnVuY2FyZ3MoKSBhcyBmaXh0dXJlZGVmcyB0byBmaXh0dXJlaW5mby5hcmcyZml4dHVyZWRlZnMK
KyAgICAgICAgICAgIGZpeHR1cmVzLmFkZF9mdW5jYXJnX3BzZXVkb19maXh0dXJlX2RlZihzZWxm
LCBtZXRhZnVuYywgZm0pCisKKyAgICAgICAgICAgIGZvciBjYWxsc3BlYyBpbiBtZXRhZnVuYy5f
Y2FsbHM6CisgICAgICAgICAgICAgICAgc3VibmFtZSA9ICIlc1slc10iICUgKG5hbWUsIGNhbGxz
cGVjLmlkKQorICAgICAgICAgICAgICAgIHlpZWxkIEZ1bmN0aW9uKG5hbWU9c3VibmFtZSwgcGFy
ZW50PXNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbHNwZWM9Y2FsbHNw
ZWMsIGNhbGxvYmo9ZnVuY29iaiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXh0
dXJlaW5mbz1maXh0dXJlaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXl3
b3Jkcz17Y2FsbHNwZWMuaWQ6IFRydWV9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG9yaWdpbmFsbmFtZT1uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKwor
CitjbGFzcyBNb2R1bGUobWFpbi5GaWxlLCBQeUNvbGxlY3Rvcik6CisgICAgIiIiIENvbGxlY3Rv
ciBmb3IgdGVzdCBjbGFzc2VzIGFuZCBmdW5jdGlvbnMuICIiIgorCisgICAgZGVmIF9nZXRvYmoo
c2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9pbXBvcnR0ZXN0bW9kdWxlKCkKKworICAgIGRl
ZiBjb2xsZWN0KHNlbGYpOgorICAgICAgICBzZWxmLnNlc3Npb24uX2ZpeHR1cmVtYW5hZ2VyLnBh
cnNlZmFjdG9yaWVzKHNlbGYpCisgICAgICAgIHJldHVybiBzdXBlcihNb2R1bGUsIHNlbGYpLmNv
bGxlY3QoKQorCisgICAgZGVmIF9pbXBvcnR0ZXN0bW9kdWxlKHNlbGYpOgorICAgICAgICAjIHdl
IGFzc3VtZSB3ZSBhcmUgb25seSBjYWxsZWQgb25jZSBwZXIgbW9kdWxlCisgICAgICAgIGltcG9y
dG1vZGUgPSBzZWxmLmNvbmZpZy5nZXRvcHRpb24oIi0taW1wb3J0LW1vZGUiKQorICAgICAgICB0
cnk6CisgICAgICAgICAgICBtb2QgPSBzZWxmLmZzcGF0aC5weWltcG9ydChlbnN1cmVzeXNwYXRo
PWltcG9ydG1vZGUpCisgICAgICAgIGV4Y2VwdCBTeW50YXhFcnJvcjoKKyAgICAgICAgICAgIHJh
aXNlIHNlbGYuQ29sbGVjdEVycm9yKAorICAgICAgICAgICAgICAgIF9weXRlc3QuX2NvZGUuRXhj
ZXB0aW9uSW5mbygpLmdldHJlcHIoc3R5bGU9InNob3J0IikpCisgICAgICAgIGV4Y2VwdCBzZWxm
LmZzcGF0aC5JbXBvcnRNaXNtYXRjaEVycm9yOgorICAgICAgICAgICAgZSA9IHN5cy5leGNfaW5m
bygpWzFdCisgICAgICAgICAgICByYWlzZSBzZWxmLkNvbGxlY3RFcnJvcigKKyAgICAgICAgICAg
ICAgICAiaW1wb3J0IGZpbGUgbWlzbWF0Y2g6XG4iCisgICAgICAgICAgICAgICAgImltcG9ydGVk
IG1vZHVsZSAlciBoYXMgdGhpcyBfX2ZpbGVfXyBhdHRyaWJ1dGU6XG4iCisgICAgICAgICAgICAg
ICAgIiAgJXNcbiIKKyAgICAgICAgICAgICAgICAid2hpY2ggaXMgbm90IHRoZSBzYW1lIGFzIHRo
ZSB0ZXN0IGZpbGUgd2Ugd2FudCB0byBjb2xsZWN0OlxuIgorICAgICAgICAgICAgICAgICIgICVz
XG4iCisgICAgICAgICAgICAgICAgIkhJTlQ6IHJlbW92ZSBfX3B5Y2FjaGVfXyAvIC5weWMgZmls
ZXMgYW5kL29yIHVzZSBhICIKKyAgICAgICAgICAgICAgICAidW5pcXVlIGJhc2VuYW1lIGZvciB5
b3VyIHRlc3QgZmlsZSBtb2R1bGVzIgorICAgICAgICAgICAgICAgICUgZS5hcmdzCisgICAgICAg
ICAgICApCisgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgICAgIGZyb20gX3B5
dGVzdC5fY29kZS5jb2RlIGltcG9ydCBFeGNlcHRpb25JbmZvCisgICAgICAgICAgICBleGNfaW5m
byA9IEV4Y2VwdGlvbkluZm8oKQorICAgICAgICAgICAgaWYgc2VsZi5jb25maWcuZ2V0b3B0aW9u
KCd2ZXJib3NlJykgPCAyOgorICAgICAgICAgICAgICAgIGV4Y19pbmZvLnRyYWNlYmFjayA9IGV4
Y19pbmZvLnRyYWNlYmFjay5maWx0ZXIoZmlsdGVyX3RyYWNlYmFjaykKKyAgICAgICAgICAgIGV4
Y19yZXByID0gZXhjX2luZm8uZ2V0cmVwcihzdHlsZT0nc2hvcnQnKSBpZiBleGNfaW5mby50cmFj
ZWJhY2sgZWxzZSBleGNfaW5mby5leGNvbmx5KCkKKyAgICAgICAgICAgIGZvcm1hdHRlZF90YiA9
IHNhZmVfc3RyKGV4Y19yZXByKQorICAgICAgICAgICAgcmFpc2Ugc2VsZi5Db2xsZWN0RXJyb3Io
CisgICAgICAgICAgICAgICAgIkltcG9ydEVycm9yIHdoaWxlIGltcG9ydGluZyB0ZXN0IG1vZHVs
ZSAne2ZzcGF0aH0nLlxuIgorICAgICAgICAgICAgICAgICJIaW50OiBtYWtlIHN1cmUgeW91ciB0
ZXN0IG1vZHVsZXMvcGFja2FnZXMgaGF2ZSB2YWxpZCBQeXRob24gbmFtZXMuXG4iCisgICAgICAg
ICAgICAgICAgIlRyYWNlYmFjazpcbiIKKyAgICAgICAgICAgICAgICAie3RyYWNlYmFja30iLmZv
cm1hdChmc3BhdGg9c2VsZi5mc3BhdGgsIHRyYWNlYmFjaz1mb3JtYXR0ZWRfdGIpCisgICAgICAg
ICAgICApCisgICAgICAgIGV4Y2VwdCBfcHl0ZXN0LnJ1bm5lci5Ta2lwcGVkIGFzIGU6CisgICAg
ICAgICAgICBpZiBlLmFsbG93X21vZHVsZV9sZXZlbDoKKyAgICAgICAgICAgICAgICByYWlzZQor
ICAgICAgICAgICAgcmFpc2Ugc2VsZi5Db2xsZWN0RXJyb3IoCisgICAgICAgICAgICAgICAgIlVz
aW5nIHB5dGVzdC5za2lwIG91dHNpZGUgb2YgYSB0ZXN0IGlzIG5vdCBhbGxvd2VkLiAiCisgICAg
ICAgICAgICAgICAgIlRvIGRlY29yYXRlIGEgdGVzdCBmdW5jdGlvbiwgdXNlIHRoZSBAcHl0ZXN0
Lm1hcmsuc2tpcCAiCisgICAgICAgICAgICAgICAgIm9yIEBweXRlc3QubWFyay5za2lwaWYgZGVj
b3JhdG9ycyBpbnN0ZWFkLCBhbmQgdG8gc2tpcCBhICIKKyAgICAgICAgICAgICAgICAibW9kdWxl
IHVzZSBgcHl0ZXN0bWFyayA9IHB5dGVzdC5tYXJrLntza2lwLHNraXBpZn0uIgorICAgICAgICAg
ICAgKQorICAgICAgICBzZWxmLmNvbmZpZy5wbHVnaW5tYW5hZ2VyLmNvbnNpZGVyX21vZHVsZSht
b2QpCisgICAgICAgIHJldHVybiBtb2QKKworICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAg
c2V0dXBfbW9kdWxlID0gX2dldF94dW5pdF9zZXR1cF90ZWFyZG93bihzZWxmLm9iaiwgInNldFVw
TW9kdWxlIikKKyAgICAgICAgaWYgc2V0dXBfbW9kdWxlIGlzIE5vbmU6CisgICAgICAgICAgICBz
ZXR1cF9tb2R1bGUgPSBfZ2V0X3h1bml0X3NldHVwX3RlYXJkb3duKHNlbGYub2JqLCAic2V0dXBf
bW9kdWxlIikKKyAgICAgICAgaWYgc2V0dXBfbW9kdWxlIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgc2V0dXBfbW9kdWxlKCkKKworICAgICAgICB0ZWFyZG93bl9tb2R1bGUgPSBfZ2V0X3h1bml0
X3NldHVwX3RlYXJkb3duKHNlbGYub2JqLCAndGVhckRvd25Nb2R1bGUnKQorICAgICAgICBpZiB0
ZWFyZG93bl9tb2R1bGUgaXMgTm9uZToKKyAgICAgICAgICAgIHRlYXJkb3duX21vZHVsZSA9IF9n
ZXRfeHVuaXRfc2V0dXBfdGVhcmRvd24oc2VsZi5vYmosICd0ZWFyZG93bl9tb2R1bGUnKQorICAg
ICAgICBpZiB0ZWFyZG93bl9tb2R1bGUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLmFk
ZGZpbmFsaXplcih0ZWFyZG93bl9tb2R1bGUpCisKKworZGVmIF9nZXRfeHVuaXRfc2V0dXBfdGVh
cmRvd24oaG9sZGVyLCBhdHRyX25hbWUsIHBhcmFtX29iaj1Ob25lKToKKyAgICAiIiIKKyAgICBS
ZXR1cm4gYSBjYWxsYWJsZSB0byBwZXJmb3JtIHh1bml0LXN0eWxlIHNldHVwIG9yIHRlYXJkb3du
IGlmCisgICAgdGhlIGZ1bmN0aW9uIGV4aXN0cyBpbiB0aGUgYGBob2xkZXJgYCBvYmplY3QuCisg
ICAgVGhlIGBgcGFyYW1fb2JqYGAgcGFyYW1ldGVyIGlzIHRoZSBwYXJhbWV0ZXIgd2hpY2ggd2ls
bCBiZSBwYXNzZWQgdG8gdGhlIGZ1bmN0aW9uCisgICAgd2hlbiB0aGUgY2FsbGFibGUgaXMgY2Fs
bGVkIHdpdGhvdXQgYXJndW1lbnRzLCBkZWZhdWx0cyB0byB0aGUgYGBob2xkZXJgYCBvYmplY3Qu
CisgICAgUmV0dXJuIGBgTm9uZWBgIGlmIGEgc3VpdGFibGUgY2FsbGFibGUgaXMgbm90IGZvdW5k
LgorICAgICIiIgorICAgIHBhcmFtX29iaiA9IHBhcmFtX29iaiBpZiBwYXJhbV9vYmogaXMgbm90
IE5vbmUgZWxzZSBob2xkZXIKKyAgICByZXN1bHQgPSBfZ2V0X3h1bml0X2Z1bmMoaG9sZGVyLCBh
dHRyX25hbWUpCisgICAgaWYgcmVzdWx0IGlzIG5vdCBOb25lOgorICAgICAgICBhcmdfY291bnQg
PSByZXN1bHQuX19jb2RlX18uY29fYXJnY291bnQKKyAgICAgICAgaWYgaW5zcGVjdC5pc21ldGhv
ZChyZXN1bHQpOgorICAgICAgICAgICAgYXJnX2NvdW50IC09IDEKKyAgICAgICAgaWYgYXJnX2Nv
dW50OgorICAgICAgICAgICAgcmV0dXJuIGxhbWJkYTogcmVzdWx0KHBhcmFtX29iaikKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQKKworCitkZWYgX2dldF94dW5pdF9m
dW5jKG9iaiwgbmFtZSk6CisgICAgIiIiUmV0dXJuIHRoZSBhdHRyaWJ1dGUgZnJvbSB0aGUgZ2l2
ZW4gb2JqZWN0IHRvIGJlIHVzZWQgYXMgYSBzZXR1cC90ZWFyZG93bgorICAgIHh1bml0LXN0eWxl
IGZ1bmN0aW9uLCBidXQgb25seSBpZiBub3QgbWFya2VkIGFzIGEgZml4dHVyZSB0bworICAgIGF2
b2lkIGNhbGxpbmcgaXQgdHdpY2UuCisgICAgIiIiCisgICAgbWV0aCA9IGdldGF0dHIob2JqLCBu
YW1lLCBOb25lKQorICAgIGlmIGZpeHR1cmVzLmdldGZpeHR1cmVtYXJrZXIobWV0aCkgaXMgTm9u
ZToKKyAgICAgICAgcmV0dXJuIG1ldGgKKworCitjbGFzcyBDbGFzcyhQeUNvbGxlY3Rvcik6Cisg
ICAgIiIiIENvbGxlY3RvciBmb3IgdGVzdCBtZXRob2RzLiAiIiIKKworICAgIGRlZiBjb2xsZWN0
KHNlbGYpOgorICAgICAgICBpZiBub3Qgc2FmZV9nZXRhdHRyKHNlbGYub2JqLCAiX190ZXN0X18i
LCBUcnVlKToKKyAgICAgICAgICAgIHJldHVybiBbXQorICAgICAgICBpZiBoYXNpbml0KHNlbGYu
b2JqKToKKyAgICAgICAgICAgIHNlbGYud2FybigiQzEiLCAiY2Fubm90IGNvbGxlY3QgdGVzdCBj
bGFzcyAlciBiZWNhdXNlIGl0IGhhcyBhICIKKyAgICAgICAgICAgICAgICAgICAgICAiX19pbml0
X18gY29uc3RydWN0b3IiICUgc2VsZi5vYmouX19uYW1lX18pCisgICAgICAgICAgICByZXR1cm4g
W10KKyAgICAgICAgZWxpZiBoYXNuZXcoc2VsZi5vYmopOgorICAgICAgICAgICAgc2VsZi53YXJu
KCJDMSIsICJjYW5ub3QgY29sbGVjdCB0ZXN0IGNsYXNzICVyIGJlY2F1c2UgaXQgaGFzIGEgIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJfX25ld19fIGNvbnN0cnVjdG9yIiAlIHNlbGYu
b2JqLl9fbmFtZV9fKQorICAgICAgICAgICAgcmV0dXJuIFtdCisgICAgICAgIHJldHVybiBbc2Vs
Zi5fZ2V0Y3VzdG9tY2xhc3MoIkluc3RhbmNlIikobmFtZT0iKCkiLCBwYXJlbnQ9c2VsZildCisK
KyAgICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNldHVwX2NsYXNzID0gX2dldF94dW5pdF9m
dW5jKHNlbGYub2JqLCAnc2V0dXBfY2xhc3MnKQorICAgICAgICBpZiBzZXR1cF9jbGFzcyBpcyBu
b3QgTm9uZToKKyAgICAgICAgICAgIHNldHVwX2NsYXNzID0gZ2V0YXR0cihzZXR1cF9jbGFzcywg
J2ltX2Z1bmMnLCBzZXR1cF9jbGFzcykKKyAgICAgICAgICAgIHNldHVwX2NsYXNzID0gZ2V0YXR0
cihzZXR1cF9jbGFzcywgJ19fZnVuY19fJywgc2V0dXBfY2xhc3MpCisgICAgICAgICAgICBzZXR1
cF9jbGFzcyhzZWxmLm9iaikKKworICAgICAgICBmaW5fY2xhc3MgPSBnZXRhdHRyKHNlbGYub2Jq
LCAndGVhcmRvd25fY2xhc3MnLCBOb25lKQorICAgICAgICBpZiBmaW5fY2xhc3MgaXMgbm90IE5v
bmU6CisgICAgICAgICAgICBmaW5fY2xhc3MgPSBnZXRhdHRyKGZpbl9jbGFzcywgJ2ltX2Z1bmMn
LCBmaW5fY2xhc3MpCisgICAgICAgICAgICBmaW5fY2xhc3MgPSBnZXRhdHRyKGZpbl9jbGFzcywg
J19fZnVuY19fJywgZmluX2NsYXNzKQorICAgICAgICAgICAgc2VsZi5hZGRmaW5hbGl6ZXIobGFt
YmRhOiBmaW5fY2xhc3Moc2VsZi5vYmopKQorCisKK2NsYXNzIEluc3RhbmNlKFB5Q29sbGVjdG9y
KToKKyAgICBkZWYgX2dldG9iaihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50Lm9i
aigpCisKKyAgICBkZWYgY29sbGVjdChzZWxmKToKKyAgICAgICAgc2VsZi5zZXNzaW9uLl9maXh0
dXJlbWFuYWdlci5wYXJzZWZhY3RvcmllcyhzZWxmKQorICAgICAgICByZXR1cm4gc3VwZXIoSW5z
dGFuY2UsIHNlbGYpLmNvbGxlY3QoKQorCisgICAgZGVmIG5ld2luc3RhbmNlKHNlbGYpOgorICAg
ICAgICBzZWxmLm9iaiA9IHNlbGYuX2dldG9iaigpCisgICAgICAgIHJldHVybiBzZWxmLm9iagor
CisKK2NsYXNzIEZ1bmN0aW9uTWl4aW4oUHlvYmpNaXhpbik6CisgICAgIiIiIG1peGluIGZvciB0
aGUgY29kZSBjb21tb24gdG8gRnVuY3Rpb24gYW5kIEdlbmVyYXRvci4KKyAgICAiIiIKKworICAg
IGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAgIiIiIHBlcmZvcm0gc2V0dXAgZm9yIHRoaXMgdGVz
dCBmdW5jdGlvbi4gIiIiCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ19wcmVzZXJ2ZWRwYXJl
bnQnKToKKyAgICAgICAgICAgIG9iaiA9IHNlbGYuX3ByZXNlcnZlZHBhcmVudAorICAgICAgICBl
bGlmIGlzaW5zdGFuY2Uoc2VsZi5wYXJlbnQsIEluc3RhbmNlKToKKyAgICAgICAgICAgIG9iaiA9
IHNlbGYucGFyZW50Lm5ld2luc3RhbmNlKCkKKyAgICAgICAgICAgIHNlbGYub2JqID0gc2VsZi5f
Z2V0b2JqKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG9iaiA9IHNlbGYucGFyZW50Lm9i
agorICAgICAgICBpZiBpbnNwZWN0LmlzbWV0aG9kKHNlbGYub2JqKToKKyAgICAgICAgICAgIHNl
dHVwX25hbWUgPSAnc2V0dXBfbWV0aG9kJworICAgICAgICAgICAgdGVhcmRvd25fbmFtZSA9ICd0
ZWFyZG93bl9tZXRob2QnCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZXR1cF9uYW1lID0g
J3NldHVwX2Z1bmN0aW9uJworICAgICAgICAgICAgdGVhcmRvd25fbmFtZSA9ICd0ZWFyZG93bl9m
dW5jdGlvbicKKyAgICAgICAgc2V0dXBfZnVuY19vcl9tZXRob2QgPSBfZ2V0X3h1bml0X3NldHVw
X3RlYXJkb3duKG9iaiwgc2V0dXBfbmFtZSwgcGFyYW1fb2JqPXNlbGYub2JqKQorICAgICAgICBp
ZiBzZXR1cF9mdW5jX29yX21ldGhvZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNldHVwX2Z1
bmNfb3JfbWV0aG9kKCkKKyAgICAgICAgdGVhcmRvd25fZnVuY19vcl9tZXRob2QgPSBfZ2V0X3h1
bml0X3NldHVwX3RlYXJkb3duKG9iaiwgdGVhcmRvd25fbmFtZSwgcGFyYW1fb2JqPXNlbGYub2Jq
KQorICAgICAgICBpZiB0ZWFyZG93bl9mdW5jX29yX21ldGhvZCBpcyBub3QgTm9uZToKKyAgICAg
ICAgICAgIHNlbGYuYWRkZmluYWxpemVyKHRlYXJkb3duX2Z1bmNfb3JfbWV0aG9kKQorCisgICAg
ZGVmIF9wcnVuZXRyYWNlYmFjayhzZWxmLCBleGNpbmZvKToKKyAgICAgICAgaWYgaGFzYXR0cihz
ZWxmLCAnX29iaicpIGFuZCBub3Qgc2VsZi5jb25maWcub3B0aW9uLmZ1bGx0cmFjZToKKyAgICAg
ICAgICAgIGNvZGUgPSBfcHl0ZXN0Ll9jb2RlLkNvZGUoZ2V0X3JlYWxfZnVuYyhzZWxmLm9iaikp
CisgICAgICAgICAgICBwYXRoLCBmaXJzdGxpbmVubyA9IGNvZGUucGF0aCwgY29kZS5maXJzdGxp
bmVubworICAgICAgICAgICAgdHJhY2ViYWNrID0gZXhjaW5mby50cmFjZWJhY2sKKyAgICAgICAg
ICAgIG50cmFjZWJhY2sgPSB0cmFjZWJhY2suY3V0KHBhdGg9cGF0aCwgZmlyc3RsaW5lbm89Zmly
c3RsaW5lbm8pCisgICAgICAgICAgICBpZiBudHJhY2ViYWNrID09IHRyYWNlYmFjazoKKyAgICAg
ICAgICAgICAgICBudHJhY2ViYWNrID0gbnRyYWNlYmFjay5jdXQocGF0aD1wYXRoKQorICAgICAg
ICAgICAgICAgIGlmIG50cmFjZWJhY2sgPT0gdHJhY2ViYWNrOgorICAgICAgICAgICAgICAgICAg
ICAjIG50cmFjZWJhY2sgPSBudHJhY2ViYWNrLmN1dChleGNsdWRlcGF0aD1jdXRkaXIyKQorICAg
ICAgICAgICAgICAgICAgICBudHJhY2ViYWNrID0gbnRyYWNlYmFjay5maWx0ZXIoZmlsdGVyX3Ry
YWNlYmFjaykKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IG50cmFjZWJhY2s6CisgICAgICAg
ICAgICAgICAgICAgICAgICBudHJhY2ViYWNrID0gdHJhY2ViYWNrCisKKyAgICAgICAgICAgIGV4
Y2luZm8udHJhY2ViYWNrID0gbnRyYWNlYmFjay5maWx0ZXIoKQorICAgICAgICAgICAgIyBpc3N1
ZTM2NDogbWFyayBhbGwgYnV0IGZpcnN0IGFuZCBsYXN0IGZyYW1lcyB0bworICAgICAgICAgICAg
IyBvbmx5IHNob3cgYSBzaW5nbGUtbGluZSBtZXNzYWdlIGZvciBlYWNoIGZyYW1lCisgICAgICAg
ICAgICBpZiBzZWxmLmNvbmZpZy5vcHRpb24udGJzdHlsZSA9PSAiYXV0byI6CisgICAgICAgICAg
ICAgICAgaWYgbGVuKGV4Y2luZm8udHJhY2ViYWNrKSA+IDI6CisgICAgICAgICAgICAgICAgICAg
IGZvciBlbnRyeSBpbiBleGNpbmZvLnRyYWNlYmFja1sxOi0xXToKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGVudHJ5LnNldF9yZXByX3N0eWxlKCdzaG9ydCcpCisKKyAgICBkZWYgX3JlcHJfZmFp
bHVyZV9weShzZWxmLCBleGNpbmZvLCBzdHlsZT0ibG9uZyIpOgorICAgICAgICBpZiBleGNpbmZv
LmVycmlzaW5zdGFuY2UoZmFpbC5FeGNlcHRpb24pOgorICAgICAgICAgICAgaWYgbm90IGV4Y2lu
Zm8udmFsdWUucHl0cmFjZToKKyAgICAgICAgICAgICAgICByZXR1cm4gcHkuX2J1aWx0aW4uX3Rv
dGV4dChleGNpbmZvLnZhbHVlKQorICAgICAgICByZXR1cm4gc3VwZXIoRnVuY3Rpb25NaXhpbiwg
c2VsZikuX3JlcHJfZmFpbHVyZV9weShleGNpbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1zdHlsZSkKKworICAgIGRl
ZiByZXByX2ZhaWx1cmUoc2VsZiwgZXhjaW5mbywgb3V0ZXJyPU5vbmUpOgorICAgICAgICBhc3Nl
cnQgb3V0ZXJyIGlzIE5vbmUsICJYWFggb3V0ZXJyIHVzYWdlIGlzIGRlcHJlY2F0ZWQiCisgICAg
ICAgIHN0eWxlID0gc2VsZi5jb25maWcub3B0aW9uLnRic3R5bGUKKyAgICAgICAgaWYgc3R5bGUg
PT0gImF1dG8iOgorICAgICAgICAgICAgc3R5bGUgPSAibG9uZyIKKyAgICAgICAgcmV0dXJuIHNl
bGYuX3JlcHJfZmFpbHVyZV9weShleGNpbmZvLCBzdHlsZT1zdHlsZSkKKworCitjbGFzcyBHZW5l
cmF0b3IoRnVuY3Rpb25NaXhpbiwgUHlDb2xsZWN0b3IpOgorICAgIGRlZiBjb2xsZWN0KHNlbGYp
OgorICAgICAgICAjIHRlc3QgZ2VuZXJhdG9ycyBhcmUgc2VlbiBhcyBjb2xsZWN0b3JzIGJ1dCB0
aGV5IGFsc28KKyAgICAgICAgIyBpbnZva2Ugc2V0dXAvdGVhcmRvd24gb24gcG9wdWxhciByZXF1
ZXN0CisgICAgICAgICMgKGluZHVjZWQgYnkgdGhlIGNvbW1vbiAidGVzdF8qIiBuYW1pbmcgc2hh
cmVkIHdpdGggbm9ybWFsIHRlc3RzKQorICAgICAgICBmcm9tIF9weXRlc3QgaW1wb3J0IGRlcHJl
Y2F0ZWQKKyAgICAgICAgc2VsZi5zZXNzaW9uLl9zZXR1cHN0YXRlLnByZXBhcmUoc2VsZikKKyAg
ICAgICAgIyBzZWUgRnVuY3Rpb25NaXhpbi5zZXR1cCBhbmQgdGVzdF9zZXR1cHN0YXRlX2lzX3By
ZXNlcnZlZF8xMzQKKyAgICAgICAgc2VsZi5fcHJlc2VydmVkcGFyZW50ID0gc2VsZi5wYXJlbnQu
b2JqCisgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAgIHNlZW4gPSB7fQorICAgICAgICBmb3Ig
aSwgeCBpbiBlbnVtZXJhdGUoc2VsZi5vYmooKSk6CisgICAgICAgICAgICBuYW1lLCBjYWxsLCBh
cmdzID0gc2VsZi5nZXRjYWxsYXJncyh4KQorICAgICAgICAgICAgaWYgbm90IGNhbGxhYmxlKGNh
bGwpOgorICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiJXIgeWllbGRlZCBub24gY2Fs
bGFibGUgdGVzdCAlciIgJSAoc2VsZi5vYmosIGNhbGwsKSkKKyAgICAgICAgICAgIGlmIG5hbWUg
aXMgTm9uZToKKyAgICAgICAgICAgICAgICBuYW1lID0gIlslZF0iICUgaQorICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICBuYW1lID0gIlsnJXMnXSIgJSBuYW1lCisgICAgICAgICAg
ICBpZiBuYW1lIGluIHNlZW46CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiJXIg
Z2VuZXJhdGVkIHRlc3RzIHdpdGggbm9uLXVuaXF1ZSBuYW1lICVyIiAlIChzZWxmLCBuYW1lKSkK
KyAgICAgICAgICAgIHNlZW5bbmFtZV0gPSBUcnVlCisgICAgICAgICAgICB2YWx1ZXMuYXBwZW5k
KHNlbGYuRnVuY3Rpb24obmFtZSwgc2VsZiwgYXJncz1hcmdzLCBjYWxsb2JqPWNhbGwpKQorICAg
ICAgICBzZWxmLndhcm4oJ0MxJywgZGVwcmVjYXRlZC5ZSUVMRF9URVNUUykKKyAgICAgICAgcmV0
dXJuIHZhbHVlcworCisgICAgZGVmIGdldGNhbGxhcmdzKHNlbGYsIG9iaik6CisgICAgICAgIGlm
IG5vdCBpc2luc3RhbmNlKG9iaiwgKHR1cGxlLCBsaXN0KSk6CisgICAgICAgICAgICBvYmogPSAo
b2JqLCkKKyAgICAgICAgIyBleHBsaWNpdCBuYW1pbmcKKyAgICAgICAgaWYgaXNpbnN0YW5jZShv
YmpbMF0sIHNpeC5zdHJpbmdfdHlwZXMpOgorICAgICAgICAgICAgbmFtZSA9IG9ialswXQorICAg
ICAgICAgICAgb2JqID0gb2JqWzE6XQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbmFtZSA9
IE5vbmUKKyAgICAgICAgY2FsbCwgYXJncyA9IG9ialswXSwgb2JqWzE6XQorICAgICAgICByZXR1
cm4gbmFtZSwgY2FsbCwgYXJncworCisKK2RlZiBoYXNpbml0KG9iaik6CisgICAgaW5pdCA9IGdl
dGF0dHIob2JqLCAnX19pbml0X18nLCBOb25lKQorICAgIGlmIGluaXQ6CisgICAgICAgIHJldHVy
biBpbml0ICE9IG9iamVjdC5fX2luaXRfXworCisKK2RlZiBoYXNuZXcob2JqKToKKyAgICBuZXcg
PSBnZXRhdHRyKG9iaiwgJ19fbmV3X18nLCBOb25lKQorICAgIGlmIG5ldzoKKyAgICAgICAgcmV0
dXJuIG5ldyAhPSBvYmplY3QuX19uZXdfXworCisKK2NsYXNzIENhbGxTcGVjMihvYmplY3QpOgor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXRhZnVuYyk6CisgICAgICAgIHNlbGYubWV0YWZ1bmMg
PSBtZXRhZnVuYworICAgICAgICBzZWxmLmZ1bmNhcmdzID0ge30KKyAgICAgICAgc2VsZi5faWRs
aXN0ID0gW10KKyAgICAgICAgc2VsZi5wYXJhbXMgPSB7fQorICAgICAgICBzZWxmLl9nbG9iYWxp
ZCA9IE5PVFNFVAorICAgICAgICBzZWxmLl9nbG9iYWxpZF9hcmdzID0gc2V0KCkKKyAgICAgICAg
c2VsZi5fZ2xvYmFscGFyYW0gPSBOT1RTRVQKKyAgICAgICAgc2VsZi5fYXJnMnNjb3BlbnVtID0g
e30gICMgdXNlZCBmb3Igc29ydGluZyBwYXJhbWV0cml6ZWQgcmVzb3VyY2VzCisgICAgICAgIHNl
bGYubWFya3MgPSBbXQorICAgICAgICBzZWxmLmluZGljZXMgPSB7fQorCisgICAgZGVmIGNvcHko
c2VsZiwgbWV0YWZ1bmMpOgorICAgICAgICBjcyA9IENhbGxTcGVjMihzZWxmLm1ldGFmdW5jKQor
ICAgICAgICBjcy5mdW5jYXJncy51cGRhdGUoc2VsZi5mdW5jYXJncykKKyAgICAgICAgY3MucGFy
YW1zLnVwZGF0ZShzZWxmLnBhcmFtcykKKyAgICAgICAgY3MubWFya3MuZXh0ZW5kKHNlbGYubWFy
a3MpCisgICAgICAgIGNzLmluZGljZXMudXBkYXRlKHNlbGYuaW5kaWNlcykKKyAgICAgICAgY3Mu
X2FyZzJzY29wZW51bS51cGRhdGUoc2VsZi5fYXJnMnNjb3BlbnVtKQorICAgICAgICBjcy5faWRs
aXN0ID0gbGlzdChzZWxmLl9pZGxpc3QpCisgICAgICAgIGNzLl9nbG9iYWxpZCA9IHNlbGYuX2ds
b2JhbGlkCisgICAgICAgIGNzLl9nbG9iYWxpZF9hcmdzID0gc2VsZi5fZ2xvYmFsaWRfYXJncwor
ICAgICAgICBjcy5fZ2xvYmFscGFyYW0gPSBzZWxmLl9nbG9iYWxwYXJhbQorICAgICAgICByZXR1
cm4gY3MKKworICAgIGRlZiBfY2hlY2thcmdub3Rjb250YWluZWQoc2VsZiwgYXJnKToKKyAgICAg
ICAgaWYgYXJnIGluIHNlbGYucGFyYW1zIG9yIGFyZyBpbiBzZWxmLmZ1bmNhcmdzOgorICAgICAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcigiZHVwbGljYXRlICVyIiAlIChhcmcsKSkKKworICAgIGRl
ZiBnZXRwYXJhbShzZWxmLCBuYW1lKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJu
IHNlbGYucGFyYW1zW25hbWVdCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAg
IGlmIHNlbGYuX2dsb2JhbHBhcmFtIGlzIE5PVFNFVDoKKyAgICAgICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKG5hbWUpCisgICAgICAgICAgICByZXR1cm4gc2VsZi5fZ2xvYmFscGFyYW0KKwor
ICAgIEBwcm9wZXJ0eQorICAgIGRlZiBpZChzZWxmKToKKyAgICAgICAgcmV0dXJuICItIi5qb2lu
KG1hcChzdHIsIGZpbHRlcihOb25lLCBzZWxmLl9pZGxpc3QpKSkKKworICAgIGRlZiBzZXRtdWx0
aTIoc2VsZiwgdmFsdHlwZXMsIGFyZ25hbWVzLCB2YWxzZXQsIGlkLCBtYXJrcywgc2NvcGVudW0s
CisgICAgICAgICAgICAgICAgICBwYXJhbV9pbmRleCk6CisgICAgICAgIGZvciBhcmcsIHZhbCBp
biB6aXAoYXJnbmFtZXMsIHZhbHNldCk6CisgICAgICAgICAgICBzZWxmLl9jaGVja2FyZ25vdGNv
bnRhaW5lZChhcmcpCisgICAgICAgICAgICB2YWx0eXBlX2Zvcl9hcmcgPSB2YWx0eXBlc1thcmdd
CisgICAgICAgICAgICBnZXRhdHRyKHNlbGYsIHZhbHR5cGVfZm9yX2FyZylbYXJnXSA9IHZhbAor
ICAgICAgICAgICAgc2VsZi5pbmRpY2VzW2FyZ10gPSBwYXJhbV9pbmRleAorICAgICAgICAgICAg
c2VsZi5fYXJnMnNjb3BlbnVtW2FyZ10gPSBzY29wZW51bQorICAgICAgICBzZWxmLl9pZGxpc3Qu
YXBwZW5kKGlkKQorICAgICAgICBzZWxmLm1hcmtzLmV4dGVuZChtYXJrcykKKworICAgIGRlZiBz
ZXRhbGwoc2VsZiwgZnVuY2FyZ3MsIGlkLCBwYXJhbSk6CisgICAgICAgIGZvciB4IGluIGZ1bmNh
cmdzOgorICAgICAgICAgICAgc2VsZi5fY2hlY2thcmdub3Rjb250YWluZWQoeCkKKyAgICAgICAg
c2VsZi5mdW5jYXJncy51cGRhdGUoZnVuY2FyZ3MpCisgICAgICAgIGlmIGlkIGlzIG5vdCBOT1RT
RVQ6CisgICAgICAgICAgICBzZWxmLl9pZGxpc3QuYXBwZW5kKGlkKQorICAgICAgICBpZiBwYXJh
bSBpcyBub3QgTk9UU0VUOgorICAgICAgICAgICAgYXNzZXJ0IHNlbGYuX2dsb2JhbHBhcmFtIGlz
IE5PVFNFVAorICAgICAgICAgICAgc2VsZi5fZ2xvYmFscGFyYW0gPSBwYXJhbQorICAgICAgICBm
b3IgYXJnIGluIGZ1bmNhcmdzOgorICAgICAgICAgICAgc2VsZi5fYXJnMnNjb3BlbnVtW2FyZ10g
PSBmaXh0dXJlcy5zY29wZW51bV9mdW5jdGlvbgorCisKK2NsYXNzIE1ldGFmdW5jKGZpeHR1cmVz
LkZ1bmNhcmduYW1lc0NvbXBhdEF0dHIpOgorICAgICIiIgorICAgIE1ldGFmdW5jIG9iamVjdHMg
YXJlIHBhc3NlZCB0byB0aGUgYGBweXRlc3RfZ2VuZXJhdGVfdGVzdHNgYCBob29rLgorICAgIFRo
ZXkgaGVscCB0byBpbnNwZWN0IGEgdGVzdCBmdW5jdGlvbiBhbmQgdG8gZ2VuZXJhdGUgdGVzdHMg
YWNjb3JkaW5nIHRvCisgICAgdGVzdCBjb25maWd1cmF0aW9uIG9yIHZhbHVlcyBzcGVjaWZpZWQg
aW4gdGhlIGNsYXNzIG9yIG1vZHVsZSB3aGVyZSBhCisgICAgdGVzdCBmdW5jdGlvbiBpcyBkZWZp
bmVkLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZ1bmN0aW9uLCBmaXh0dXJl
aW5mbywgY29uZmlnLCBjbHM9Tm9uZSwgbW9kdWxlPU5vbmUpOgorICAgICAgICAjOiBhY2Nlc3Mg
dG8gdGhlIDpjbGFzczpgX3B5dGVzdC5jb25maWcuQ29uZmlnYCBvYmplY3QgZm9yIHRoZSB0ZXN0
IHNlc3Npb24KKyAgICAgICAgc2VsZi5jb25maWcgPSBjb25maWcKKworICAgICAgICAjOiB0aGUg
bW9kdWxlIG9iamVjdCB3aGVyZSB0aGUgdGVzdCBmdW5jdGlvbiBpcyBkZWZpbmVkIGluLgorICAg
ICAgICBzZWxmLm1vZHVsZSA9IG1vZHVsZQorCisgICAgICAgICM6IHVuZGVybHlpbmcgcHl0aG9u
IHRlc3QgZnVuY3Rpb24KKyAgICAgICAgc2VsZi5mdW5jdGlvbiA9IGZ1bmN0aW9uCisKKyAgICAg
ICAgIzogc2V0IG9mIGZpeHR1cmUgbmFtZXMgcmVxdWlyZWQgYnkgdGhlIHRlc3QgZnVuY3Rpb24K
KyAgICAgICAgc2VsZi5maXh0dXJlbmFtZXMgPSBmaXh0dXJlaW5mby5uYW1lc19jbG9zdXJlCisK
KyAgICAgICAgIzogY2xhc3Mgb2JqZWN0IHdoZXJlIHRoZSB0ZXN0IGZ1bmN0aW9uIGlzIGRlZmlu
ZWQgaW4gb3IgYGBOb25lYGAuCisgICAgICAgIHNlbGYuY2xzID0gY2xzCisKKyAgICAgICAgc2Vs
Zi5fY2FsbHMgPSBbXQorICAgICAgICBzZWxmLl9pZHMgPSBzZXQoKQorICAgICAgICBzZWxmLl9h
cmcyZml4dHVyZWRlZnMgPSBmaXh0dXJlaW5mby5uYW1lMmZpeHR1cmVkZWZzCisKKyAgICBkZWYg
cGFyYW1ldHJpemUoc2VsZiwgYXJnbmFtZXMsIGFyZ3ZhbHVlcywgaW5kaXJlY3Q9RmFsc2UsIGlk
cz1Ob25lLAorICAgICAgICAgICAgICAgICAgICBzY29wZT1Ob25lKToKKyAgICAgICAgIiIiIEFk
ZCBuZXcgaW52b2NhdGlvbnMgdG8gdGhlIHVuZGVybHlpbmcgdGVzdCBmdW5jdGlvbiB1c2luZyB0
aGUgbGlzdAorICAgICAgICBvZiBhcmd2YWx1ZXMgZm9yIHRoZSBnaXZlbiBhcmduYW1lcy4gIFBh
cmFtZXRyaXphdGlvbiBpcyBwZXJmb3JtZWQKKyAgICAgICAgZHVyaW5nIHRoZSBjb2xsZWN0aW9u
IHBoYXNlLiAgSWYgeW91IG5lZWQgdG8gc2V0dXAgZXhwZW5zaXZlIHJlc291cmNlcworICAgICAg
ICBzZWUgYWJvdXQgc2V0dGluZyBpbmRpcmVjdCB0byBkbyBpdCByYXRoZXIgYXQgdGVzdCBzZXR1
cCB0aW1lLgorCisgICAgICAgIDphcmcgYXJnbmFtZXM6IGEgY29tbWEtc2VwYXJhdGVkIHN0cmlu
ZyBkZW5vdGluZyBvbmUgb3IgbW9yZSBhcmd1bWVudAorICAgICAgICAgICAgICAgICAgICAgICBu
YW1lcywgb3IgYSBsaXN0L3R1cGxlIG9mIGFyZ3VtZW50IHN0cmluZ3MuCisKKyAgICAgICAgOmFy
ZyBhcmd2YWx1ZXM6IFRoZSBsaXN0IG9mIGFyZ3ZhbHVlcyBkZXRlcm1pbmVzIGhvdyBvZnRlbiBh
CisgICAgICAgICAgICB0ZXN0IGlzIGludm9rZWQgd2l0aCBkaWZmZXJlbnQgYXJndW1lbnQgdmFs
dWVzLiAgSWYgb25seSBvbmUKKyAgICAgICAgICAgIGFyZ25hbWUgd2FzIHNwZWNpZmllZCBhcmd2
YWx1ZXMgaXMgYSBsaXN0IG9mIHZhbHVlcy4gIElmIE4KKyAgICAgICAgICAgIGFyZ25hbWVzIHdl
cmUgc3BlY2lmaWVkLCBhcmd2YWx1ZXMgbXVzdCBiZSBhIGxpc3Qgb2YgTi10dXBsZXMsCisgICAg
ICAgICAgICB3aGVyZSBlYWNoIHR1cGxlLWVsZW1lbnQgc3BlY2lmaWVzIGEgdmFsdWUgZm9yIGl0
cyByZXNwZWN0aXZlCisgICAgICAgICAgICBhcmduYW1lLgorCisgICAgICAgIDphcmcgaW5kaXJl
Y3Q6IFRoZSBsaXN0IG9mIGFyZ25hbWVzIG9yIGJvb2xlYW4uIEEgbGlzdCBvZiBhcmd1bWVudHMn
CisgICAgICAgICAgICBuYW1lcyAoc3Vic2V0IG9mIGFyZ25hbWVzKS4gSWYgVHJ1ZSB0aGUgbGlz
dCBjb250YWlucyBhbGwgbmFtZXMgZnJvbQorICAgICAgICAgICAgdGhlIGFyZ25hbWVzLiBFYWNo
IGFyZ3ZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gYW4gYXJnbmFtZSBpbiB0aGlzIGxpc3Qgd2lsbAor
ICAgICAgICAgICAgYmUgcGFzc2VkIGFzIHJlcXVlc3QucGFyYW0gdG8gaXRzIHJlc3BlY3RpdmUg
YXJnbmFtZSBmaXh0dXJlCisgICAgICAgICAgICBmdW5jdGlvbiBzbyB0aGF0IGl0IGNhbiBwZXJm
b3JtIG1vcmUgZXhwZW5zaXZlIHNldHVwcyBkdXJpbmcgdGhlCisgICAgICAgICAgICBzZXR1cCBw
aGFzZSBvZiBhIHRlc3QgcmF0aGVyIHRoYW4gYXQgY29sbGVjdGlvbiB0aW1lLgorCisgICAgICAg
IDphcmcgaWRzOiBsaXN0IG9mIHN0cmluZyBpZHMsIG9yIGEgY2FsbGFibGUuCisgICAgICAgICAg
ICBJZiBzdHJpbmdzLCBlYWNoIGlzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGFyZ3ZhbHVlcyBzbyB0
aGF0IHRoZXkgYXJlCisgICAgICAgICAgICBwYXJ0IG9mIHRoZSB0ZXN0IGlkLiBJZiBOb25lIGlz
IGdpdmVuIGFzIGlkIG9mIHNwZWNpZmljIHRlc3QsIHRoZQorICAgICAgICAgICAgYXV0b21hdGlj
YWxseSBnZW5lcmF0ZWQgaWQgZm9yIHRoYXQgYXJndW1lbnQgd2lsbCBiZSB1c2VkLgorICAgICAg
ICAgICAgSWYgY2FsbGFibGUsIGl0IHNob3VsZCB0YWtlIG9uZSBhcmd1bWVudCAoYSBzaW5nbGUg
YXJndmFsdWUpIGFuZCByZXR1cm4KKyAgICAgICAgICAgIGEgc3RyaW5nIG9yIHJldHVybiBOb25l
LiBJZiBOb25lLCB0aGUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWQgZm9yIHRoYXQKKyAgICAg
ICAgICAgIGFyZ3VtZW50IHdpbGwgYmUgdXNlZC4KKyAgICAgICAgICAgIElmIG5vIGlkcyBhcmUg
cHJvdmlkZWQgdGhleSB3aWxsIGJlIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20KKyAgICAg
ICAgICAgIHRoZSBhcmd2YWx1ZXMuCisKKyAgICAgICAgOmFyZyBzY29wZTogaWYgc3BlY2lmaWVk
IGl0IGRlbm90ZXMgdGhlIHNjb3BlIG9mIHRoZSBwYXJhbWV0ZXJzLgorICAgICAgICAgICAgVGhl
IHNjb3BlIGlzIHVzZWQgZm9yIGdyb3VwaW5nIHRlc3RzIGJ5IHBhcmFtZXRlciBpbnN0YW5jZXMu
CisgICAgICAgICAgICBJdCB3aWxsIGFsc28gb3ZlcnJpZGUgYW55IGZpeHR1cmUtZnVuY3Rpb24g
ZGVmaW5lZCBzY29wZSwgYWxsb3dpbmcKKyAgICAgICAgICAgIHRvIHNldCBhIGR5bmFtaWMgc2Nv
cGUgdXNpbmcgdGVzdCBjb250ZXh0IG9yIGNvbmZpZ3VyYXRpb24uCisgICAgICAgICIiIgorICAg
ICAgICBmcm9tIF9weXRlc3QuZml4dHVyZXMgaW1wb3J0IHNjb3BlMmluZGV4CisgICAgICAgIGZy
b20gX3B5dGVzdC5tYXJrIGltcG9ydCBQYXJhbWV0ZXJTZXQKKyAgICAgICAgZnJvbSBweS5pbyBp
bXBvcnQgc2FmZXJlcHIKKyAgICAgICAgYXJnbmFtZXMsIHBhcmFtZXRlcnMgPSBQYXJhbWV0ZXJT
ZXQuX2Zvcl9wYXJhbWV0ZXJpemUoCisgICAgICAgICAgICBhcmduYW1lcywgYXJndmFsdWVzLCBz
ZWxmLmZ1bmN0aW9uKQorICAgICAgICBkZWwgYXJndmFsdWVzCisKKyAgICAgICAgaWYgc2NvcGUg
aXMgTm9uZToKKyAgICAgICAgICAgIHNjb3BlID0gX2ZpbmRfcGFyYW1ldHJpemVkX3Njb3BlKGFy
Z25hbWVzLCBzZWxmLl9hcmcyZml4dHVyZWRlZnMsIGluZGlyZWN0KQorCisgICAgICAgIHNjb3Bl
bnVtID0gc2NvcGUyaW5kZXgoc2NvcGUsIGRlc2NyPSdjYWxsIHRvIHswfScuZm9ybWF0KHNlbGYu
cGFyYW1ldHJpemUpKQorICAgICAgICB2YWx0eXBlcyA9IHt9CisgICAgICAgIGZvciBhcmcgaW4g
YXJnbmFtZXM6CisgICAgICAgICAgICBpZiBhcmcgbm90IGluIHNlbGYuZml4dHVyZW5hbWVzOgor
ICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoaW5kaXJlY3QsICh0dXBsZSwgbGlzdCkpOgor
ICAgICAgICAgICAgICAgICAgICBuYW1lID0gJ2ZpeHR1cmUnIGlmIGFyZyBpbiBpbmRpcmVjdCBl
bHNlICdhcmd1bWVudCcKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAg
ICBuYW1lID0gJ2ZpeHR1cmUnIGlmIGluZGlyZWN0IGVsc2UgJ2FyZ3VtZW50JworICAgICAgICAg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICIlciB1c2VzIG5v
ICVzICVyIiAlICgKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnVuY3Rpb24sIG5hbWUs
IGFyZykpCisKKyAgICAgICAgaWYgaW5kaXJlY3QgaXMgVHJ1ZToKKyAgICAgICAgICAgIHZhbHR5
cGVzID0gZGljdC5mcm9ta2V5cyhhcmduYW1lcywgInBhcmFtcyIpCisgICAgICAgIGVsaWYgaW5k
aXJlY3QgaXMgRmFsc2U6CisgICAgICAgICAgICB2YWx0eXBlcyA9IGRpY3QuZnJvbWtleXMoYXJn
bmFtZXMsICJmdW5jYXJncyIpCisgICAgICAgIGVsaWYgaXNpbnN0YW5jZShpbmRpcmVjdCwgKHR1
cGxlLCBsaXN0KSk6CisgICAgICAgICAgICB2YWx0eXBlcyA9IGRpY3QuZnJvbWtleXMoYXJnbmFt
ZXMsICJmdW5jYXJncyIpCisgICAgICAgICAgICBmb3IgYXJnIGluIGluZGlyZWN0OgorICAgICAg
ICAgICAgICAgIGlmIGFyZyBub3QgaW4gYXJnbmFtZXM6CisgICAgICAgICAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoImluZGlyZWN0IGdpdmVuIHRvICVyOiBmaXh0dXJlICVyIGRvZXNuJ3Qg
ZXhpc3QiICUgKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnVu
Y3Rpb24sIGFyZykpCisgICAgICAgICAgICAgICAgdmFsdHlwZXNbYXJnXSA9ICJwYXJhbXMiCisg
ICAgICAgIGlkZm4gPSBOb25lCisgICAgICAgIGlmIGNhbGxhYmxlKGlkcyk6CisgICAgICAgICAg
ICBpZGZuID0gaWRzCisgICAgICAgICAgICBpZHMgPSBOb25lCisgICAgICAgIGlmIGlkczoKKyAg
ICAgICAgICAgIGlmIGxlbihpZHMpICE9IGxlbihwYXJhbWV0ZXJzKToKKyAgICAgICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCclZCB0ZXN0cyBzcGVjaWZpZWQgd2l0aCAlZCBpZHMnICUgKAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKHBhcmFtZXRlcnMpLCBsZW4oaWRz
KSkpCisgICAgICAgICAgICBmb3IgaWRfdmFsdWUgaW4gaWRzOgorICAgICAgICAgICAgICAgIGlm
IGlkX3ZhbHVlIGlzIG5vdCBOb25lIGFuZCBub3QgaXNpbnN0YW5jZShpZF92YWx1ZSwgc2l4LnN0
cmluZ190eXBlcyk6CisgICAgICAgICAgICAgICAgICAgIG1zZyA9ICdpZHMgbXVzdCBiZSBsaXN0
IG9mIHN0cmluZ3MsIGZvdW5kOiAlcyAodHlwZTogJXMpJworICAgICAgICAgICAgICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKG1zZyAlIChzYWZlcmVwcihpZF92YWx1ZSksIHR5cGUoaWRfdmFsdWUp
Ll9fbmFtZV9fKSkKKyAgICAgICAgaWRzID0gaWRtYWtlcihhcmduYW1lcywgcGFyYW1ldGVycywg
aWRmbiwgaWRzLCBzZWxmLmNvbmZpZykKKyAgICAgICAgbmV3Y2FsbHMgPSBbXQorICAgICAgICBm
b3IgY2FsbHNwZWMgaW4gc2VsZi5fY2FsbHMgb3IgW0NhbGxTcGVjMihzZWxmKV06CisgICAgICAg
ICAgICBlbGVtZW50cyA9IHppcChpZHMsIHBhcmFtZXRlcnMsIGNvdW50KCkpCisgICAgICAgICAg
ICBmb3IgYV9pZCwgcGFyYW0sIHBhcmFtX2luZGV4IGluIGVsZW1lbnRzOgorICAgICAgICAgICAg
ICAgIGlmIGxlbihwYXJhbS52YWx1ZXMpICE9IGxlbihhcmduYW1lcyk6CisgICAgICAgICAgICAg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICAgICAnSW4gInBh
cmFtZXRyaXplIiB0aGUgbnVtYmVyIG9mIHZhbHVlcyAoezB9KSBtdXN0IGJlICcKKyAgICAgICAg
ICAgICAgICAgICAgICAgICdlcXVhbCB0byB0aGUgbnVtYmVyIG9mIG5hbWVzICh7MX0pJy5mb3Jt
YXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW0udmFsdWVzLCBhcmduYW1lcykp
CisgICAgICAgICAgICAgICAgbmV3Y2FsbHNwZWMgPSBjYWxsc3BlYy5jb3B5KHNlbGYpCisgICAg
ICAgICAgICAgICAgbmV3Y2FsbHNwZWMuc2V0bXVsdGkyKHZhbHR5cGVzLCBhcmduYW1lcywgcGFy
YW0udmFsdWVzLCBhX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXJhbS5tYXJrcywgc2NvcGVudW0sIHBhcmFtX2luZGV4KQorICAgICAgICAgICAgICAgIG5ld2Nh
bGxzLmFwcGVuZChuZXdjYWxsc3BlYykKKyAgICAgICAgc2VsZi5fY2FsbHMgPSBuZXdjYWxscwor
CisgICAgZGVmIGFkZGNhbGwoc2VsZiwgZnVuY2FyZ3M9Tm9uZSwgaWQ9Tk9UU0VULCBwYXJhbT1O
T1RTRVQpOgorICAgICAgICAiIiIgQWRkIGEgbmV3IGNhbGwgdG8gdGhlIHVuZGVybHlpbmcgdGVz
dCBmdW5jdGlvbiBkdXJpbmcgdGhlIGNvbGxlY3Rpb24gcGhhc2Ugb2YgYSB0ZXN0IHJ1bi4KKwor
ICAgICAgICAuLiBkZXByZWNhdGVkOjogMy4zCisKKyAgICAgICAgICAgIFVzZSA6bWV0aDpgcGFy
YW1ldHJpemVgIGluc3RlYWQuCisKKyAgICAgICAgTm90ZSB0aGF0IHJlcXVlc3QuYWRkY2FsbCgp
IGlzIGNhbGxlZCBkdXJpbmcgdGhlIHRlc3QgY29sbGVjdGlvbiBwaGFzZSBwcmlvciBhbmQKKyAg
ICAgICAgaW5kZXBlbmRlbnRseSB0byBhY3R1YWwgdGVzdCBleGVjdXRpb24uICBZb3Ugc2hvdWxk
IG9ubHkgdXNlIGFkZGNhbGwoKQorICAgICAgICBpZiB5b3UgbmVlZCB0byBzcGVjaWZ5IG11bHRp
cGxlIGFyZ3VtZW50cyBvZiBhIHRlc3QgZnVuY3Rpb24uCisKKyAgICAgICAgOmFyZyBmdW5jYXJn
czogYXJndW1lbnQga2V5d29yZCBkaWN0aW9uYXJ5IHVzZWQgd2hlbiBpbnZva2luZworICAgICAg
ICAgICAgdGhlIHRlc3QgZnVuY3Rpb24uCisKKyAgICAgICAgOmFyZyBpZDogdXNlZCBmb3IgcmVw
b3J0aW5nIGFuZCBpZGVudGlmaWNhdGlvbiBwdXJwb3Nlcy4gIElmIHlvdQorICAgICAgICAgICAg
ZG9uJ3Qgc3VwcGx5IGFuIGBpZGAgYW4gYXV0b21hdGljIHVuaXF1ZSBpZCB3aWxsIGJlIGdlbmVy
YXRlZC4KKworICAgICAgICA6YXJnIHBhcmFtOiBhIHBhcmFtZXRlciB3aGljaCB3aWxsIGJlIGV4
cG9zZWQgdG8gYSBsYXRlciBmaXh0dXJlIGZ1bmN0aW9uCisgICAgICAgICAgICBpbnZvY2F0aW9u
IHRocm91Z2ggdGhlIGBgcmVxdWVzdC5wYXJhbWBgIGF0dHJpYnV0ZS4KKyAgICAgICAgIiIiCisg
ICAgICAgIGlmIHNlbGYuY29uZmlnOgorICAgICAgICAgICAgc2VsZi5jb25maWcud2FybignQzEn
LCBtZXNzYWdlPWRlcHJlY2F0ZWQuTUVUQUZVTkNfQUREX0NBTEwsIGZzbG9jYXRpb249Tm9uZSkK
KyAgICAgICAgYXNzZXJ0IGZ1bmNhcmdzIGlzIE5vbmUgb3IgaXNpbnN0YW5jZShmdW5jYXJncywg
ZGljdCkKKyAgICAgICAgaWYgZnVuY2FyZ3MgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBmb3Ig
bmFtZSBpbiBmdW5jYXJnczoKKyAgICAgICAgICAgICAgICBpZiBuYW1lIG5vdCBpbiBzZWxmLmZp
eHR1cmVuYW1lczoKKyAgICAgICAgICAgICAgICAgICAgZmFpbCgiZnVuY2FyZyAlciBub3QgdXNl
ZCBpbiB0aGlzIGZ1bmN0aW9uLiIgJSBuYW1lKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
ZnVuY2FyZ3MgPSB7fQorICAgICAgICBpZiBpZCBpcyBOb25lOgorICAgICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcigiaWQ9Tm9uZSBub3QgYWxsb3dlZCIpCisgICAgICAgIGlmIGlkIGlzIE5PVFNF
VDoKKyAgICAgICAgICAgIGlkID0gbGVuKHNlbGYuX2NhbGxzKQorICAgICAgICBpZCA9IHN0cihp
ZCkKKyAgICAgICAgaWYgaWQgaW4gc2VsZi5faWRzOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcigiZHVwbGljYXRlIGlkICVyIiAlIGlkKQorICAgICAgICBzZWxmLl9pZHMuYWRkKGlkKQor
CisgICAgICAgIGNzID0gQ2FsbFNwZWMyKHNlbGYpCisgICAgICAgIGNzLnNldGFsbChmdW5jYXJn
cywgaWQsIHBhcmFtKQorICAgICAgICBzZWxmLl9jYWxscy5hcHBlbmQoY3MpCisKKworZGVmIF9m
aW5kX3BhcmFtZXRyaXplZF9zY29wZShhcmduYW1lcywgYXJnMmZpeHR1cmVkZWZzLCBpbmRpcmVj
dCk6CisgICAgIiIiRmluZCB0aGUgbW9zdCBhcHByb3ByaWF0ZSBzY29wZSBmb3IgYSBwYXJhbWV0
cml6ZWQgY2FsbCBiYXNlZCBvbiBpdHMgYXJndW1lbnRzLgorCisgICAgV2hlbiB0aGVyZSdzIGF0
IGxlYXN0IG9uZSBkaXJlY3QgYXJndW1lbnQsIGFsd2F5cyB1c2UgImZ1bmN0aW9uIiBzY29wZS4K
KworICAgIFdoZW4gYSB0ZXN0IGZ1bmN0aW9uIGlzIHBhcmFtZXRyaXplZCBhbmQgYWxsIGl0cyBh
cmd1bWVudHMgYXJlIGluZGlyZWN0CisgICAgKGUuZy4gZml4dHVyZXMpLCByZXR1cm4gdGhlIG1v
c3QgbmFycm93IHNjb3BlIGJhc2VkIG9uIHRoZSBmaXh0dXJlcyB1c2VkLgorCisgICAgUmVsYXRl
ZCB0byBpc3N1ZSAjMTgzMiwgYmFzZWQgb24gY29kZSBwb3N0ZWQgYnkgQEtpbmdkcmVhZC4KKyAg
ICAiIiIKKyAgICBmcm9tIF9weXRlc3QuZml4dHVyZXMgaW1wb3J0IHNjb3BlcworICAgIGluZGly
ZWN0X2FzX2xpc3QgPSBpc2luc3RhbmNlKGluZGlyZWN0LCAobGlzdCwgdHVwbGUpKQorICAgIGFs
bF9hcmd1bWVudHNfYXJlX2ZpeHR1cmVzID0gaW5kaXJlY3QgaXMgVHJ1ZSBvciBcCisgICAgICAg
IGluZGlyZWN0X2FzX2xpc3QgYW5kIGxlbihpbmRpcmVjdCkgPT0gYXJnbmFtZXMKKyAgICBpZiBh
bGxfYXJndW1lbnRzX2FyZV9maXh0dXJlczoKKyAgICAgICAgZml4dHVyZWRlZnMgPSBhcmcyZml4
dHVyZWRlZnMgb3Ige30KKyAgICAgICAgdXNlZF9zY29wZXMgPSBbZml4dHVyZWRlZlswXS5zY29w
ZSBmb3IgbmFtZSwgZml4dHVyZWRlZiBpbiBmaXh0dXJlZGVmcy5pdGVtcygpXQorICAgICAgICBp
ZiB1c2VkX3Njb3BlczoKKyAgICAgICAgICAgICMgVGFrZXMgdGhlIG1vc3QgbmFycm93IHNjb3Bl
IGZyb20gdXNlZCBmaXh0dXJlcworICAgICAgICAgICAgZm9yIHNjb3BlIGluIHJldmVyc2VkKHNj
b3Blcyk6CisgICAgICAgICAgICAgICAgaWYgc2NvcGUgaW4gdXNlZF9zY29wZXM6CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBzY29wZQorCisgICAgcmV0dXJuICdmdW5jdGlvbicKKworCitk
ZWYgX2lkdmFsKHZhbCwgYXJnbmFtZSwgaWR4LCBpZGZuLCBjb25maWc9Tm9uZSk6CisgICAgaWYg
aWRmbjoKKyAgICAgICAgcyA9IE5vbmUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcyA9IGlk
Zm4odmFsKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgIyBTZWUgaXNz
dWUgaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMTY5CisgICAg
ICAgICAgICBpbXBvcnQgd2FybmluZ3MKKyAgICAgICAgICAgIG1zZyA9ICJSYWlzZWQgd2hpbGUg
dHJ5aW5nIHRvIGRldGVybWluZSBpZCBvZiBwYXJhbWV0ZXIgJXMgYXQgcG9zaXRpb24gJWQuIiAl
IChhcmduYW1lLCBpZHgpCisgICAgICAgICAgICBtc2cgKz0gJ1xuVXBkYXRlIHlvdXIgY29kZSBh
cyB0aGlzIHdpbGwgcmFpc2UgYW4gZXJyb3IgaW4gcHl0ZXN0LTQuMC4nCisgICAgICAgICAgICB3
YXJuaW5ncy53YXJuKG1zZywgRGVwcmVjYXRpb25XYXJuaW5nKQorICAgICAgICBpZiBzOgorICAg
ICAgICAgICAgcmV0dXJuIGFzY2lpX2VzY2FwZWQocykKKworICAgIGlmIGNvbmZpZzoKKyAgICAg
ICAgaG9va19pZCA9IGNvbmZpZy5ob29rLnB5dGVzdF9tYWtlX3BhcmFtZXRyaXplX2lkKAorICAg
ICAgICAgICAgY29uZmlnPWNvbmZpZywgdmFsPXZhbCwgYXJnbmFtZT1hcmduYW1lKQorICAgICAg
ICBpZiBob29rX2lkOgorICAgICAgICAgICAgcmV0dXJuIGhvb2tfaWQKKworICAgIGlmIGlzaW5z
dGFuY2UodmFsLCBTVFJJTkdfVFlQRVMpOgorICAgICAgICByZXR1cm4gYXNjaWlfZXNjYXBlZCh2
YWwpCisgICAgZWxpZiBpc2luc3RhbmNlKHZhbCwgKGZsb2F0LCBpbnQsIGJvb2wsIE5vbmVUeXBl
KSk6CisgICAgICAgIHJldHVybiBzdHIodmFsKQorICAgIGVsaWYgaXNpbnN0YW5jZSh2YWwsIFJF
R0VYX1RZUEUpOgorICAgICAgICByZXR1cm4gYXNjaWlfZXNjYXBlZCh2YWwucGF0dGVybikKKyAg
ICBlbGlmIGVudW0gaXMgbm90IE5vbmUgYW5kIGlzaW5zdGFuY2UodmFsLCBlbnVtLkVudW0pOgor
ICAgICAgICByZXR1cm4gc3RyKHZhbCkKKyAgICBlbGlmIGlzY2xhc3ModmFsKSBhbmQgaGFzYXR0
cih2YWwsICdfX25hbWVfXycpOgorICAgICAgICByZXR1cm4gdmFsLl9fbmFtZV9fCisgICAgcmV0
dXJuIHN0cihhcmduYW1lKSArIHN0cihpZHgpCisKKworZGVmIF9pZHZhbHNldChpZHgsIHBhcmFt
ZXRlcnNldCwgYXJnbmFtZXMsIGlkZm4sIGlkcywgY29uZmlnPU5vbmUpOgorICAgIGlmIHBhcmFt
ZXRlcnNldC5pZCBpcyBub3QgTm9uZToKKyAgICAgICAgcmV0dXJuIHBhcmFtZXRlcnNldC5pZAor
ICAgIGlmIGlkcyBpcyBOb25lIG9yIChpZHggPj0gbGVuKGlkcykgb3IgaWRzW2lkeF0gaXMgTm9u
ZSk6CisgICAgICAgIHRoaXNfaWQgPSBbX2lkdmFsKHZhbCwgYXJnbmFtZSwgaWR4LCBpZGZuLCBj
b25maWcpCisgICAgICAgICAgICAgICAgICAgZm9yIHZhbCwgYXJnbmFtZSBpbiB6aXAocGFyYW1l
dGVyc2V0LnZhbHVlcywgYXJnbmFtZXMpXQorICAgICAgICByZXR1cm4gIi0iLmpvaW4odGhpc19p
ZCkKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gYXNjaWlfZXNjYXBlZChpZHNbaWR4XSkKKwor
CitkZWYgaWRtYWtlcihhcmduYW1lcywgcGFyYW1ldGVyc2V0cywgaWRmbj1Ob25lLCBpZHM9Tm9u
ZSwgY29uZmlnPU5vbmUpOgorICAgIGlkcyA9IFtfaWR2YWxzZXQodmFsaW5kZXgsIHBhcmFtZXRl
cnNldCwgYXJnbmFtZXMsIGlkZm4sIGlkcywgY29uZmlnKQorICAgICAgICAgICBmb3IgdmFsaW5k
ZXgsIHBhcmFtZXRlcnNldCBpbiBlbnVtZXJhdGUocGFyYW1ldGVyc2V0cyldCisgICAgaWYgbGVu
KHNldChpZHMpKSAhPSBsZW4oaWRzKToKKyAgICAgICAgIyBUaGUgaWRzIGFyZSBub3QgdW5pcXVl
CisgICAgICAgIGR1cGxpY2F0ZXMgPSBbdGVzdGlkIGZvciB0ZXN0aWQgaW4gaWRzIGlmIGlkcy5j
b3VudCh0ZXN0aWQpID4gMV0KKyAgICAgICAgY291bnRlcnMgPSBjb2xsZWN0aW9ucy5kZWZhdWx0
ZGljdChsYW1iZGE6IDApCisgICAgICAgIGZvciBpbmRleCwgdGVzdGlkIGluIGVudW1lcmF0ZShp
ZHMpOgorICAgICAgICAgICAgaWYgdGVzdGlkIGluIGR1cGxpY2F0ZXM6CisgICAgICAgICAgICAg
ICAgaWRzW2luZGV4XSA9IHRlc3RpZCArIHN0cihjb3VudGVyc1t0ZXN0aWRdKQorICAgICAgICAg
ICAgICAgIGNvdW50ZXJzW3Rlc3RpZF0gKz0gMQorICAgIHJldHVybiBpZHMKKworCitkZWYgc2hv
d19maXh0dXJlc19wZXJfdGVzdChjb25maWcpOgorICAgIGZyb20gX3B5dGVzdC5tYWluIGltcG9y
dCB3cmFwX3Nlc3Npb24KKyAgICByZXR1cm4gd3JhcF9zZXNzaW9uKGNvbmZpZywgX3Nob3dfZml4
dHVyZXNfcGVyX3Rlc3QpCisKKworZGVmIF9zaG93X2ZpeHR1cmVzX3Blcl90ZXN0KGNvbmZpZywg
c2Vzc2lvbik6CisgICAgaW1wb3J0IF9weXRlc3QuY29uZmlnCisgICAgc2Vzc2lvbi5wZXJmb3Jt
X2NvbGxlY3QoKQorICAgIGN1cmRpciA9IHB5LnBhdGgubG9jYWwoKQorICAgIHR3ID0gX3B5dGVz
dC5jb25maWcuY3JlYXRlX3Rlcm1pbmFsX3dyaXRlcihjb25maWcpCisgICAgdmVyYm9zZSA9IGNv
bmZpZy5nZXR2YWx1ZSgidmVyYm9zZSIpCisKKyAgICBkZWYgZ2V0X2Jlc3RfcmVscGF0aChmdW5j
KToKKyAgICAgICAgbG9jID0gZ2V0bG9jYXRpb24oZnVuYywgY3VyZGlyKQorICAgICAgICByZXR1
cm4gY3VyZGlyLmJlc3RyZWxwYXRoKGxvYykKKworICAgIGRlZiB3cml0ZV9maXh0dXJlKGZpeHR1
cmVfZGVmKToKKyAgICAgICAgYXJnbmFtZSA9IGZpeHR1cmVfZGVmLmFyZ25hbWUKKyAgICAgICAg
aWYgdmVyYm9zZSA8PSAwIGFuZCBhcmduYW1lLnN0YXJ0c3dpdGgoIl8iKToKKyAgICAgICAgICAg
IHJldHVybgorICAgICAgICBpZiB2ZXJib3NlID4gMDoKKyAgICAgICAgICAgIGJlc3RyZWwgPSBn
ZXRfYmVzdF9yZWxwYXRoKGZpeHR1cmVfZGVmLmZ1bmMpCisgICAgICAgICAgICBmdW5jYXJnc3Bl
YyA9ICJ7MH0gLS0gezF9Ii5mb3JtYXQoYXJnbmFtZSwgYmVzdHJlbCkKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIGZ1bmNhcmdzcGVjID0gYXJnbmFtZQorICAgICAgICB0dy5saW5lKGZ1bmNh
cmdzcGVjLCBncmVlbj1UcnVlKQorICAgICAgICBmaXh0dXJlX2RvYyA9IGZpeHR1cmVfZGVmLmZ1
bmMuX19kb2NfXworICAgICAgICBpZiBmaXh0dXJlX2RvYzoKKyAgICAgICAgICAgIHdyaXRlX2Rv
Y3N0cmluZyh0dywgZml4dHVyZV9kb2MpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0dy5s
aW5lKCcgICAgbm8gZG9jc3RyaW5nIGF2YWlsYWJsZScsIHJlZD1UcnVlKQorCisgICAgZGVmIHdy
aXRlX2l0ZW0oaXRlbSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGluZm8gPSBpdGVtLl9m
aXh0dXJlaW5mbworICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAj
IGRvY3Rlc3RzIGl0ZW1zIGhhdmUgbm8gX2ZpeHR1cmVpbmZvIGF0dHJpYnV0ZQorICAgICAgICAg
ICAgcmV0dXJuCisgICAgICAgIGlmIG5vdCBpbmZvLm5hbWUyZml4dHVyZWRlZnM6CisgICAgICAg
ICAgICAjIHRoaXMgdGVzdCBpdGVtIGRvZXMgbm90IHVzZSBhbnkgZml4dHVyZXMKKyAgICAgICAg
ICAgIHJldHVybgorICAgICAgICB0dy5saW5lKCkKKyAgICAgICAgdHcuc2VwKCctJywgJ2ZpeHR1
cmVzIHVzZWQgYnkgezB9Jy5mb3JtYXQoaXRlbS5uYW1lKSkKKyAgICAgICAgdHcuc2VwKCctJywg
Jyh7MH0pJy5mb3JtYXQoZ2V0X2Jlc3RfcmVscGF0aChpdGVtLmZ1bmN0aW9uKSkpCisgICAgICAg
ICMgZGljdCBrZXkgbm90IHVzZWQgaW4gbG9vcCBidXQgbmVlZGVkIGZvciBzb3J0aW5nCisgICAg
ICAgIGZvciBfLCBmaXh0dXJlZGVmcyBpbiBzb3J0ZWQoaW5mby5uYW1lMmZpeHR1cmVkZWZzLml0
ZW1zKCkpOgorICAgICAgICAgICAgYXNzZXJ0IGZpeHR1cmVkZWZzIGlzIG5vdCBOb25lCisgICAg
ICAgICAgICBpZiBub3QgZml4dHVyZWRlZnM6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAg
ICAgICAgICAgICMgbGFzdCBpdGVtIGlzIGV4cGVjdGVkIHRvIGJlIHRoZSBvbmUgdXNlZCBieSB0
aGUgdGVzdCBpdGVtCisgICAgICAgICAgICB3cml0ZV9maXh0dXJlKGZpeHR1cmVkZWZzWy0xXSkK
KworICAgIGZvciBzZXNzaW9uX2l0ZW0gaW4gc2Vzc2lvbi5pdGVtczoKKyAgICAgICAgd3JpdGVf
aXRlbShzZXNzaW9uX2l0ZW0pCisKKworZGVmIHNob3dmaXh0dXJlcyhjb25maWcpOgorICAgIGZy
b20gX3B5dGVzdC5tYWluIGltcG9ydCB3cmFwX3Nlc3Npb24KKyAgICByZXR1cm4gd3JhcF9zZXNz
aW9uKGNvbmZpZywgX3Nob3dmaXh0dXJlc19tYWluKQorCisKK2RlZiBfc2hvd2ZpeHR1cmVzX21h
aW4oY29uZmlnLCBzZXNzaW9uKToKKyAgICBpbXBvcnQgX3B5dGVzdC5jb25maWcKKyAgICBzZXNz
aW9uLnBlcmZvcm1fY29sbGVjdCgpCisgICAgY3VyZGlyID0gcHkucGF0aC5sb2NhbCgpCisgICAg
dHcgPSBfcHl0ZXN0LmNvbmZpZy5jcmVhdGVfdGVybWluYWxfd3JpdGVyKGNvbmZpZykKKyAgICB2
ZXJib3NlID0gY29uZmlnLmdldHZhbHVlKCJ2ZXJib3NlIikKKworICAgIGZtID0gc2Vzc2lvbi5f
Zml4dHVyZW1hbmFnZXIKKworICAgIGF2YWlsYWJsZSA9IFtdCisgICAgc2VlbiA9IHNldCgpCisK
KyAgICBmb3IgYXJnbmFtZSwgZml4dHVyZWRlZnMgaW4gZm0uX2FyZzJmaXh0dXJlZGVmcy5pdGVt
cygpOgorICAgICAgICBhc3NlcnQgZml4dHVyZWRlZnMgaXMgbm90IE5vbmUKKyAgICAgICAgaWYg
bm90IGZpeHR1cmVkZWZzOgorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgZm9yIGZpeHR1
cmVkZWYgaW4gZml4dHVyZWRlZnM6CisgICAgICAgICAgICBsb2MgPSBnZXRsb2NhdGlvbihmaXh0
dXJlZGVmLmZ1bmMsIGN1cmRpcikKKyAgICAgICAgICAgIGlmIChmaXh0dXJlZGVmLmFyZ25hbWUs
IGxvYykgaW4gc2VlbjoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgc2Vl
bi5hZGQoKGZpeHR1cmVkZWYuYXJnbmFtZSwgbG9jKSkKKyAgICAgICAgICAgIGF2YWlsYWJsZS5h
cHBlbmQoKGxlbihmaXh0dXJlZGVmLmJhc2VpZCksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmaXh0dXJlZGVmLmZ1bmMuX19tb2R1bGVfXywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGN1cmRpci5iZXN0cmVscGF0aChsb2MpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZml4dHVyZWRlZi5hcmduYW1lLCBmaXh0dXJlZGVmKSkKKworICAgIGF2YWlsYWJsZS5z
b3J0KCkKKyAgICBjdXJyZW50bW9kdWxlID0gTm9uZQorICAgIGZvciBiYXNlaWQsIG1vZHVsZSwg
YmVzdHJlbCwgYXJnbmFtZSwgZml4dHVyZWRlZiBpbiBhdmFpbGFibGU6CisgICAgICAgIGlmIGN1
cnJlbnRtb2R1bGUgIT0gbW9kdWxlOgorICAgICAgICAgICAgaWYgbm90IG1vZHVsZS5zdGFydHN3
aXRoKCJfcHl0ZXN0LiIpOgorICAgICAgICAgICAgICAgIHR3LmxpbmUoKQorICAgICAgICAgICAg
ICAgIHR3LnNlcCgiLSIsICJmaXh0dXJlcyBkZWZpbmVkIGZyb20gJXMiICUgKG1vZHVsZSwpKQor
ICAgICAgICAgICAgICAgIGN1cnJlbnRtb2R1bGUgPSBtb2R1bGUKKyAgICAgICAgaWYgdmVyYm9z
ZSA8PSAwIGFuZCBhcmduYW1lWzBdID09ICJfIjoKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAg
ICAgIGlmIHZlcmJvc2UgPiAwOgorICAgICAgICAgICAgZnVuY2FyZ3NwZWMgPSAiJXMgLS0gJXMi
ICUgKGFyZ25hbWUsIGJlc3RyZWwsKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZnVuY2Fy
Z3NwZWMgPSBhcmduYW1lCisgICAgICAgIHR3LmxpbmUoZnVuY2FyZ3NwZWMsIGdyZWVuPVRydWUp
CisgICAgICAgIGxvYyA9IGdldGxvY2F0aW9uKGZpeHR1cmVkZWYuZnVuYywgY3VyZGlyKQorICAg
ICAgICBkb2MgPSBmaXh0dXJlZGVmLmZ1bmMuX19kb2NfXyBvciAiIgorICAgICAgICBpZiBkb2M6
CisgICAgICAgICAgICB3cml0ZV9kb2NzdHJpbmcodHcsIGRvYykKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIHR3LmxpbmUoIiAgICAlczogbm8gZG9jc3RyaW5nIGF2YWlsYWJsZSIgJSAobG9j
LCksCisgICAgICAgICAgICAgICAgICAgIHJlZD1UcnVlKQorCisKK2RlZiB3cml0ZV9kb2NzdHJp
bmcodHcsIGRvYyk6CisgICAgSU5ERU5UID0gIiAgICAiCisgICAgZG9jID0gZG9jLnJzdHJpcCgp
CisgICAgaWYgIlxuIiBpbiBkb2M6CisgICAgICAgIGZpcnN0bGluZSwgcmVzdCA9IGRvYy5zcGxp
dCgiXG4iLCAxKQorICAgIGVsc2U6CisgICAgICAgIGZpcnN0bGluZSwgcmVzdCA9IGRvYywgIiIK
KworICAgIGlmIGZpcnN0bGluZS5zdHJpcCgpOgorICAgICAgICB0dy5saW5lKElOREVOVCArIGZp
cnN0bGluZS5zdHJpcCgpKQorCisgICAgaWYgcmVzdDoKKyAgICAgICAgZm9yIGxpbmUgaW4gZGVk
ZW50KHJlc3QpLnNwbGl0KCJcbiIpOgorICAgICAgICAgICAgdHcud3JpdGUoSU5ERU5UICsgbGlu
ZSArICJcbiIpCisKKworY2xhc3MgRnVuY3Rpb24oRnVuY3Rpb25NaXhpbiwgbWFpbi5JdGVtLCBm
aXh0dXJlcy5GdW5jYXJnbmFtZXNDb21wYXRBdHRyKToKKyAgICAiIiIgYSBGdW5jdGlvbiBJdGVt
IGlzIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nIHVwIGFuZCBleGVjdXRpbmcgYQorICAgIFB5dGhv
biB0ZXN0IGZ1bmN0aW9uLgorICAgICIiIgorICAgIF9nZW5pZCA9IE5vbmUKKworICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBuYW1lLCBwYXJlbnQsIGFyZ3M9Tm9uZSwgY29uZmlnPU5vbmUsCisgICAg
ICAgICAgICAgICAgIGNhbGxzcGVjPU5vbmUsIGNhbGxvYmo9Tk9UU0VULCBrZXl3b3Jkcz1Ob25l
LCBzZXNzaW9uPU5vbmUsCisgICAgICAgICAgICAgICAgIGZpeHR1cmVpbmZvPU5vbmUsIG9yaWdp
bmFsbmFtZT1Ob25lKToKKyAgICAgICAgc3VwZXIoRnVuY3Rpb24sIHNlbGYpLl9faW5pdF9fKG5h
bWUsIHBhcmVudCwgY29uZmlnPWNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlc3Npb249c2Vzc2lvbikKKyAgICAgICAgc2VsZi5fYXJncyA9IGFyZ3MKKyAg
ICAgICAgaWYgY2FsbG9iaiBpcyBub3QgTk9UU0VUOgorICAgICAgICAgICAgc2VsZi5vYmogPSBj
YWxsb2JqCisKKyAgICAgICAgc2VsZi5rZXl3b3Jkcy51cGRhdGUoc2VsZi5vYmouX19kaWN0X18p
CisgICAgICAgIGlmIGNhbGxzcGVjOgorICAgICAgICAgICAgc2VsZi5jYWxsc3BlYyA9IGNhbGxz
cGVjCisgICAgICAgICAgICAjIHRoaXMgaXMgdG90YWwgaG9zdGlsZSBhbmQgYSBtZXNzCisgICAg
ICAgICAgICAjIGtleXdvcmRzIGFyZSBicm9rZW4gYnkgZGVzaWduIGJ5IG5vdworICAgICAgICAg
ICAgIyB0aGlzIHdpbGwgYmUgcmVkZWVtZWQgbGF0ZXIKKyAgICAgICAgICAgIGZvciBtYXJrIGlu
IGNhbGxzcGVjLm1hcmtzOgorICAgICAgICAgICAgICAgICMgZmVlbCBmcmVlIHRvIGNyeSwgdGhp
cyB3YXMgYnJva2VuIGZvciB5ZWFycyBiZWZvcmUKKyAgICAgICAgICAgICAgICAjIGFuZCBrZXl3
b3JkcyBjYW50IGZpeCBpdCBwZXIgZGVzaWduCisgICAgICAgICAgICAgICAgc2VsZi5rZXl3b3Jk
c1ttYXJrLm5hbWVdID0gbWFyaworICAgICAgICBpZiBrZXl3b3JkczoKKyAgICAgICAgICAgIHNl
bGYua2V5d29yZHMudXBkYXRlKGtleXdvcmRzKQorCisgICAgICAgIGlmIGZpeHR1cmVpbmZvIGlz
IE5vbmU6CisgICAgICAgICAgICBmaXh0dXJlaW5mbyA9IHNlbGYuc2Vzc2lvbi5fZml4dHVyZW1h
bmFnZXIuZ2V0Zml4dHVyZWluZm8oCisgICAgICAgICAgICAgICAgc2VsZi5wYXJlbnQsIHNlbGYu
b2JqLCBzZWxmLmNscywKKyAgICAgICAgICAgICAgICBmdW5jYXJncz1ub3Qgc2VsZi5faXN5aWVs
ZGVkZnVuY3Rpb24oKSkKKyAgICAgICAgc2VsZi5fZml4dHVyZWluZm8gPSBmaXh0dXJlaW5mbwor
ICAgICAgICBzZWxmLmZpeHR1cmVuYW1lcyA9IGZpeHR1cmVpbmZvLm5hbWVzX2Nsb3N1cmUKKyAg
ICAgICAgc2VsZi5faW5pdHJlcXVlc3QoKQorCisgICAgICAgICM6IG9yaWdpbmFsIGZ1bmN0aW9u
IG5hbWUsIHdpdGhvdXQgYW55IGRlY29yYXRpb25zIChmb3IgZXhhbXBsZQorICAgICAgICAjOiBw
YXJhbWV0cml6YXRpb24gYWRkcyBhIGBgIlsuLi5dImBgIHN1ZmZpeCB0byBmdW5jdGlvbiBuYW1l
cykuCisgICAgICAgICM6CisgICAgICAgICM6IC4uIHZlcnNpb25hZGRlZDo6IDMuMAorICAgICAg
ICBzZWxmLm9yaWdpbmFsbmFtZSA9IG9yaWdpbmFsbmFtZQorCisgICAgZGVmIF9pbml0cmVxdWVz
dChzZWxmKToKKyAgICAgICAgc2VsZi5mdW5jYXJncyA9IHt9CisgICAgICAgIGlmIHNlbGYuX2lz
eWllbGRlZGZ1bmN0aW9uKCk6CisgICAgICAgICAgICBhc3NlcnQgbm90IGhhc2F0dHIoc2VsZiwg
ImNhbGxzcGVjIiksICgKKyAgICAgICAgICAgICAgICAieWllbGRlZCBmdW5jdGlvbnMgKGRlcHJl
Y2F0ZWQpIGNhbm5vdCBoYXZlIGZ1bmNhcmdzIikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IGlmIGhhc2F0dHIoc2VsZiwgImNhbGxzcGVjIik6CisgICAgICAgICAgICAgICAgY2FsbHNwZWMg
PSBzZWxmLmNhbGxzcGVjCisgICAgICAgICAgICAgICAgYXNzZXJ0IG5vdCBjYWxsc3BlYy5mdW5j
YXJncworICAgICAgICAgICAgICAgIHNlbGYuX2dlbmlkID0gY2FsbHNwZWMuaWQKKyAgICAgICAg
ICAgICAgICBpZiBoYXNhdHRyKGNhbGxzcGVjLCAicGFyYW0iKToKKyAgICAgICAgICAgICAgICAg
ICAgc2VsZi5wYXJhbSA9IGNhbGxzcGVjLnBhcmFtCisgICAgICAgIHNlbGYuX3JlcXVlc3QgPSBm
aXh0dXJlcy5GaXh0dXJlUmVxdWVzdChzZWxmKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGZ1
bmN0aW9uKHNlbGYpOgorICAgICAgICAidW5kZXJseWluZyBweXRob24gJ2Z1bmN0aW9uJyBvYmpl
Y3QiCisgICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYub2JqLCAnaW1fZnVuYycsIHNlbGYub2Jq
KQorCisgICAgZGVmIF9nZXRvYmooc2VsZik6CisgICAgICAgIG5hbWUgPSBzZWxmLm5hbWUKKyAg
ICAgICAgaSA9IG5hbWUuZmluZCgiWyIpICAjIHBhcmFtZXRyaXphdGlvbgorICAgICAgICBpZiBp
ICE9IC0xOgorICAgICAgICAgICAgbmFtZSA9IG5hbWVbOmldCisgICAgICAgIHJldHVybiBnZXRh
dHRyKHNlbGYucGFyZW50Lm9iaiwgbmFtZSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBfcHlm
dW5jaXRlbShzZWxmKToKKyAgICAgICAgIihjb21wYXRvbmx5KSBmb3IgY29kZSBleHBlY3Rpbmcg
cHl0ZXN0LTIuMiBzdHlsZSByZXF1ZXN0IG9iamVjdHMiCisgICAgICAgIHJldHVybiBzZWxmCisK
KyAgICBkZWYgX2lzeWllbGRlZGZ1bmN0aW9uKHNlbGYpOgorICAgICAgICByZXR1cm4gZ2V0YXR0
cihzZWxmLCAiX2FyZ3MiLCBOb25lKSBpcyBub3QgTm9uZQorCisgICAgZGVmIHJ1bnRlc3Qoc2Vs
Zik6CisgICAgICAgICIiIiBleGVjdXRlIHRoZSB1bmRlcmx5aW5nIHRlc3QgZnVuY3Rpb24uICIi
IgorICAgICAgICBzZWxmLmlob29rLnB5dGVzdF9weWZ1bmNfY2FsbChweWZ1bmNpdGVtPXNlbGYp
CisKKyAgICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHN1cGVyKEZ1bmN0aW9uLCBzZWxmKS5z
ZXR1cCgpCisgICAgICAgIGZpeHR1cmVzLmZpbGxmaXh0dXJlcyhzZWxmKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvX3B5dGVzdC9weXRob25fYXBpLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9w
eXRob25fYXBpLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxOTYwMjk1YjM4MWJkMGU5OTIzZjdmYjNkMDFhZTEx
MTIxNDJmOWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3B5dGhvbl9h
cGkucHkKQEAgLTAsMCArMSw2MTkgQEAKK2ltcG9ydCBtYXRoCitpbXBvcnQgc3lzCisKK2ltcG9y
dCBweQorZnJvbSBzaXgubW92ZXMgaW1wb3J0IHppcAorCitmcm9tIF9weXRlc3QuY29tcGF0IGlt
cG9ydCBpc2NsYXNzCitmcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IGZhaWwKK2ltcG9ydCBf
cHl0ZXN0Ll9jb2RlCisKKworZGVmIF9jbXBfcmFpc2VzX3R5cGVfZXJyb3Ioc2VsZiwgb3RoZXIp
OgorICAgICIiIl9fY21wX18gaW1wbGVtZW50YXRpb24gd2hpY2ggcmFpc2VzIFR5cGVFcnJvci4g
VXNlZAorICAgIGJ5IEFwcHJveCBiYXNlIGNsYXNzZXMgdG8gaW1wbGVtZW50IG9ubHkgPT0gYW5k
ICE9IGFuZCByYWlzZSBhCisgICAgVHlwZUVycm9yIGZvciBvdGhlciBjb21wYXJpc29ucy4KKwor
ICAgIE5lZWRlZCBpbiBQeXRob24gMiBvbmx5LCBQeXRob24gMyBhbGwgaXQgdGFrZXMgaXMgbm90
IGltcGxlbWVudGluZyB0aGUKKyAgICBvdGhlciBvcGVyYXRvcnMgYXQgYWxsLgorICAgICIiIgor
ICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAgIHJhaXNlIFR5cGVFcnJvcignQ29tcGFy
aXNvbiBvcGVyYXRvcnMgb3RoZXIgdGhhbiA9PSBhbmQgIT0gbm90IHN1cHBvcnRlZCBieSBhcHBy
b3ggb2JqZWN0cycpCisKKworIyBidWlsdGluIHB5dGVzdC5hcHByb3ggaGVscGVyCisKKworY2xh
c3MgQXBwcm94QmFzZShvYmplY3QpOgorICAgICIiIgorICAgIFByb3ZpZGUgc2hhcmVkIHV0aWxp
dGllcyBmb3IgbWFraW5nIGFwcHJveGltYXRlIGNvbXBhcmlzb25zIGJldHdlZW4gbnVtYmVycwor
ICAgIG9yIHNlcXVlbmNlcyBvZiBudW1iZXJzLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIGV4cGVjdGVkLCByZWw9Tm9uZSwgYWJzPU5vbmUsIG5hbl9vaz1GYWxzZSk6CisgICAg
ICAgIHNlbGYuZXhwZWN0ZWQgPSBleHBlY3RlZAorICAgICAgICBzZWxmLmFicyA9IGFicworICAg
ICAgICBzZWxmLnJlbCA9IHJlbAorICAgICAgICBzZWxmLm5hbl9vayA9IG5hbl9vaworCisgICAg
ZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisK
KyAgICBkZWYgX19lcV9fKHNlbGYsIGFjdHVhbCk6CisgICAgICAgIHJldHVybiBhbGwoCisgICAg
ICAgICAgICBhID09IHNlbGYuX2FwcHJveF9zY2FsYXIoeCkKKyAgICAgICAgICAgIGZvciBhLCB4
IGluIHNlbGYuX3lpZWxkX2NvbXBhcmlzb25zKGFjdHVhbCkpCisKKyAgICBfX2hhc2hfXyA9IE5v
bmUKKworICAgIGRlZiBfX25lX18oc2VsZiwgYWN0dWFsKToKKyAgICAgICAgcmV0dXJuIG5vdCAo
YWN0dWFsID09IHNlbGYpCisKKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID09IDI6CisgICAg
ICAgIF9fY21wX18gPSBfY21wX3JhaXNlc190eXBlX2Vycm9yCisKKyAgICBkZWYgX2FwcHJveF9z
Y2FsYXIoc2VsZiwgeCk6CisgICAgICAgIHJldHVybiBBcHByb3hTY2FsYXIoeCwgcmVsPXNlbGYu
cmVsLCBhYnM9c2VsZi5hYnMsIG5hbl9vaz1zZWxmLm5hbl9vaykKKworICAgIGRlZiBfeWllbGRf
Y29tcGFyaXNvbnMoc2VsZiwgYWN0dWFsKToKKyAgICAgICAgIiIiCisgICAgICAgIFlpZWxkIGFs
bCB0aGUgcGFpcnMgb2YgbnVtYmVycyB0byBiZSBjb21wYXJlZC4gIFRoaXMgaXMgdXNlZCB0bwor
ICAgICAgICBpbXBsZW1lbnQgdGhlIGBfX2VxX19gIG1ldGhvZC4KKyAgICAgICAgIiIiCisgICAg
ICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworCitjbGFzcyBBcHByb3hOdW1weShBcHBy
b3hCYXNlKToKKyAgICAiIiIKKyAgICBQZXJmb3JtIGFwcHJveGltYXRlIGNvbXBhcmlzb25zIGZv
ciBudW1weSBhcnJheXMuCisgICAgIiIiCisKKyAgICAjIFRlbGwgbnVtcHkgdG8gdXNlIG91ciBg
X19lcV9fYCBvcGVyYXRvciBpbnN0ZWFkIG9mIGl0cy4KKyAgICBfX2FycmF5X3ByaW9yaXR5X18g
PSAxMDAKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgIyBJdCBtaWdodCBiZSBu
aWNlIHRvIHJld3JpdGUgdGhpcyBmdW5jdGlvbiB0byBhY2NvdW50IGZvciB0aGUKKyAgICAgICAg
IyBzaGFwZSBvZiB0aGUgYXJyYXkuLi4KKyAgICAgICAgcmV0dXJuICJhcHByb3goezAhcn0pIi5m
b3JtYXQobGlzdCgKKyAgICAgICAgICAgIHNlbGYuX2FwcHJveF9zY2FsYXIoeCkgZm9yIHggaW4g
c2VsZi5leHBlY3RlZCkpCisKKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID09IDI6CisgICAg
ICAgIF9fY21wX18gPSBfY21wX3JhaXNlc190eXBlX2Vycm9yCisKKyAgICBkZWYgX19lcV9fKHNl
bGYsIGFjdHVhbCk6CisgICAgICAgIGltcG9ydCBudW1weSBhcyBucAorCisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIGFjdHVhbCA9IG5wLmFzYXJyYXkoYWN0dWFsKQorICAgICAgICBleGNlcHQ6
ICAjIG5vcWEKKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiY2Fubm90IGNvbXBhcmUgJ3sw
fScgdG8gbnVtcHkubmRhcnJheSIuZm9ybWF0KGFjdHVhbCkpCisKKyAgICAgICAgaWYgYWN0dWFs
LnNoYXBlICE9IHNlbGYuZXhwZWN0ZWQuc2hhcGU6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UK
KworICAgICAgICByZXR1cm4gQXBwcm94QmFzZS5fX2VxX18oc2VsZiwgYWN0dWFsKQorCisgICAg
ZGVmIF95aWVsZF9jb21wYXJpc29ucyhzZWxmLCBhY3R1YWwpOgorICAgICAgICBpbXBvcnQgbnVt
cHkgYXMgbnAKKworICAgICAgICAjIFdlIGNhbiBiZSBzdXJlIHRoYXQgYGFjdHVhbGAgaXMgYSBu
dW1weSBhcnJheSwgYmVjYXVzZSBpdCdzCisgICAgICAgICMgY2FzdGVkIGluIGBfX2VxX19gIGJl
Zm9yZSBiZWluZyBwYXNzZWQgdG8gYEFwcHJveEJhc2UuX19lcV9fYCwKKyAgICAgICAgIyB3aGlj
aCBpcyB0aGUgb25seSBtZXRob2QgdGhhdCBjYWxscyB0aGlzIG9uZS4KKyAgICAgICAgZm9yIGkg
aW4gbnAubmRpbmRleChzZWxmLmV4cGVjdGVkLnNoYXBlKToKKyAgICAgICAgICAgIHlpZWxkIGFj
dHVhbFtpXSwgc2VsZi5leHBlY3RlZFtpXQorCisKK2NsYXNzIEFwcHJveE1hcHBpbmcoQXBwcm94
QmFzZSk6CisgICAgIiIiCisgICAgUGVyZm9ybSBhcHByb3hpbWF0ZSBjb21wYXJpc29ucyBmb3Ig
bWFwcGluZ3Mgd2hlcmUgdGhlIHZhbHVlcyBhcmUgbnVtYmVycworICAgICh0aGUga2V5cyBjYW4g
YmUgYW55dGhpbmcpLgorICAgICIiIgorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAg
ICByZXR1cm4gImFwcHJveCh7MCFyfSkiLmZvcm1hdChkaWN0KAorICAgICAgICAgICAgKGssIHNl
bGYuX2FwcHJveF9zY2FsYXIodikpCisgICAgICAgICAgICBmb3IgaywgdiBpbiBzZWxmLmV4cGVj
dGVkLml0ZW1zKCkpKQorCisgICAgZGVmIF9fZXFfXyhzZWxmLCBhY3R1YWwpOgorICAgICAgICBp
ZiBzZXQoYWN0dWFsLmtleXMoKSkgIT0gc2V0KHNlbGYuZXhwZWN0ZWQua2V5cygpKToKKyAgICAg
ICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIHJldHVybiBBcHByb3hCYXNlLl9fZXFfXyhz
ZWxmLCBhY3R1YWwpCisKKyAgICBkZWYgX3lpZWxkX2NvbXBhcmlzb25zKHNlbGYsIGFjdHVhbCk6
CisgICAgICAgIGZvciBrIGluIHNlbGYuZXhwZWN0ZWQua2V5cygpOgorICAgICAgICAgICAgeWll
bGQgYWN0dWFsW2tdLCBzZWxmLmV4cGVjdGVkW2tdCisKKworY2xhc3MgQXBwcm94U2VxdWVuY2Uo
QXBwcm94QmFzZSk6CisgICAgIiIiCisgICAgUGVyZm9ybSBhcHByb3hpbWF0ZSBjb21wYXJpc29u
cyBmb3Igc2VxdWVuY2VzIG9mIG51bWJlcnMuCisgICAgIiIiCisKKyAgICAjIFRlbGwgbnVtcHkg
dG8gdXNlIG91ciBgX19lcV9fYCBvcGVyYXRvciBpbnN0ZWFkIG9mIGl0cy4KKyAgICBfX2FycmF5
X3ByaW9yaXR5X18gPSAxMDAKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgc2Vx
X3R5cGUgPSB0eXBlKHNlbGYuZXhwZWN0ZWQpCisgICAgICAgIGlmIHNlcV90eXBlIG5vdCBpbiAo
dHVwbGUsIGxpc3QsIHNldCk6CisgICAgICAgICAgICBzZXFfdHlwZSA9IGxpc3QKKyAgICAgICAg
cmV0dXJuICJhcHByb3goezAhcn0pIi5mb3JtYXQoc2VxX3R5cGUoCisgICAgICAgICAgICBzZWxm
Ll9hcHByb3hfc2NhbGFyKHgpIGZvciB4IGluIHNlbGYuZXhwZWN0ZWQpKQorCisgICAgZGVmIF9f
ZXFfXyhzZWxmLCBhY3R1YWwpOgorICAgICAgICBpZiBsZW4oYWN0dWFsKSAhPSBsZW4oc2VsZi5l
eHBlY3RlZCk6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJuIEFwcHJv
eEJhc2UuX19lcV9fKHNlbGYsIGFjdHVhbCkKKworICAgIGRlZiBfeWllbGRfY29tcGFyaXNvbnMo
c2VsZiwgYWN0dWFsKToKKyAgICAgICAgcmV0dXJuIHppcChhY3R1YWwsIHNlbGYuZXhwZWN0ZWQp
CisKKworY2xhc3MgQXBwcm94U2NhbGFyKEFwcHJveEJhc2UpOgorICAgICIiIgorICAgIFBlcmZv
cm0gYXBwcm94aW1hdGUgY29tcGFyaXNvbnMgZm9yIHNpbmdsZSBudW1iZXJzIG9ubHkuCisgICAg
IiIiCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1
cm4gYSBzdHJpbmcgY29tbXVuaWNhdGluZyBib3RoIHRoZSBleHBlY3RlZCB2YWx1ZSBhbmQgdGhl
IHRvbGVyYW5jZQorICAgICAgICBmb3IgdGhlIGNvbXBhcmlzb24gYmVpbmcgbWFkZSwgZS5nLiAn
MS4wICstIDFlLTYnLiAgVXNlIHRoZSB1bmljb2RlCisgICAgICAgIHBsdXMvbWludXMgc3ltYm9s
IGlmIHRoaXMgaXMgcHl0aG9uMyAoaXQncyB0b28gaGFyZCB0byBnZXQgcmlnaHQgZm9yCisgICAg
ICAgIHB5dGhvbjIpLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLmV4
cGVjdGVkLCBjb21wbGV4KToKKyAgICAgICAgICAgIHJldHVybiBzdHIoc2VsZi5leHBlY3RlZCkK
KworICAgICAgICAjIEluZmluaXRpZXMgYXJlbid0IGNvbXBhcmVkIHVzaW5nIHRvbGVyYW5jZXMs
IHNvIGRvbid0IHNob3cgYQorICAgICAgICAjIHRvbGVyYW5jZS4KKyAgICAgICAgaWYgbWF0aC5p
c2luZihzZWxmLmV4cGVjdGVkKToKKyAgICAgICAgICAgIHJldHVybiBzdHIoc2VsZi5leHBlY3Rl
ZCkKKworICAgICAgICAjIElmIGEgc2Vuc2libGUgdG9sZXJhbmNlIGNhbid0IGJlIGNhbGN1bGF0
ZWQsIHNlbGYudG9sZXJhbmNlIHdpbGwKKyAgICAgICAgIyByYWlzZSBhIFZhbHVlRXJyb3IuICBJ
biB0aGlzIGNhc2UsIGRpc3BsYXkgJz8/PycuCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHZl
dHRlZF90b2xlcmFuY2UgPSAnezouMWV9Jy5mb3JtYXQoc2VsZi50b2xlcmFuY2UpCisgICAgICAg
IGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgdmV0dGVkX3RvbGVyYW5jZSA9ICc/Pz8n
CisKKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mb1swXSA9PSAyOgorICAgICAgICAgICAgcmV0
dXJuICd7MH0gKy0gezF9Jy5mb3JtYXQoc2VsZi5leHBlY3RlZCwgdmV0dGVkX3RvbGVyYW5jZSkK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiB1J3swfSBcdTAwYjEgezF9Jy5mb3Jt
YXQoc2VsZi5leHBlY3RlZCwgdmV0dGVkX3RvbGVyYW5jZSkKKworICAgIGRlZiBfX2VxX18oc2Vs
ZiwgYWN0dWFsKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiB0cnVlIGlmIHRoZSBnaXZl
biB2YWx1ZSBpcyBlcXVhbCB0byB0aGUgZXhwZWN0ZWQgdmFsdWUgd2l0aGluCisgICAgICAgIHRo
ZSBwcmUtc3BlY2lmaWVkIHRvbGVyYW5jZS4KKyAgICAgICAgIiIiCisKKyAgICAgICAgIyBTaG9y
dC1jaXJjdWl0IGV4YWN0IGVxdWFsaXR5LgorICAgICAgICBpZiBhY3R1YWwgPT0gc2VsZi5leHBl
Y3RlZDoKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgIyBBbGxvdyB0aGUgdXNl
ciB0byBjb250cm9sIHdoZXRoZXIgTmFOcyBhcmUgY29uc2lkZXJlZCBlcXVhbCB0byBlYWNoCisg
ICAgICAgICMgb3RoZXIgb3Igbm90LiAgVGhlIGFicygpIGNhbGxzIGFyZSBmb3IgY29tcGF0aWJp
bGl0eSB3aXRoIGNvbXBsZXgKKyAgICAgICAgIyBudW1iZXJzLgorICAgICAgICBpZiBtYXRoLmlz
bmFuKGFicyhzZWxmLmV4cGVjdGVkKSk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5uYW5fb2sg
YW5kIG1hdGguaXNuYW4oYWJzKGFjdHVhbCkpCisKKyAgICAgICAgIyBJbmZpbml0eSBzaG91bGRu
J3QgYmUgYXBwcm94aW1hdGVseSBlcXVhbCB0byBhbnl0aGluZyBidXQgaXRzZWxmLCBidXQKKyAg
ICAgICAgIyBpZiB0aGVyZSdzIGEgcmVsYXRpdmUgdG9sZXJhbmNlLCBpdCB3aWxsIGJlIGluZmlu
aXRlIGFuZCBpbmZpbml0eQorICAgICAgICAjIHdpbGwgc2VlbSBhcHByb3hpbWF0ZWx5IGVxdWFs
IHRvIGV2ZXJ5dGhpbmcuICBUaGUgZXF1YWwtdG8taXRzZWxmCisgICAgICAgICMgY2FzZSB3b3Vs
ZCBoYXZlIGJlZW4gc2hvcnQgY2lyY3VpdGVkIGFib3ZlLCBzbyBoZXJlIHdlIGNhbiBqdXN0Cisg
ICAgICAgICMgcmV0dXJuIGZhbHNlIGlmIHRoZSBleHBlY3RlZCB2YWx1ZSBpcyBpbmZpbml0ZS4g
IFRoZSBhYnMoKSBjYWxsIGlzCisgICAgICAgICMgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBjb21w
bGV4IG51bWJlcnMuCisgICAgICAgIGlmIG1hdGguaXNpbmYoYWJzKHNlbGYuZXhwZWN0ZWQpKToK
KyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgICMgUmV0dXJuIHRydWUgaWYgdGhl
IHR3byBudW1iZXJzIGFyZSB3aXRoaW4gdGhlIHRvbGVyYW5jZS4KKyAgICAgICAgcmV0dXJuIGFi
cyhzZWxmLmV4cGVjdGVkIC0gYWN0dWFsKSA8PSBzZWxmLnRvbGVyYW5jZQorCisgICAgX19oYXNo
X18gPSBOb25lCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgdG9sZXJhbmNlKHNlbGYpOgorICAg
ICAgICAiIiIKKyAgICAgICAgUmV0dXJuIHRoZSB0b2xlcmFuY2UgZm9yIHRoZSBjb21wYXJpc29u
LiAgVGhpcyBjb3VsZCBiZSBlaXRoZXIgYW4KKyAgICAgICAgYWJzb2x1dGUgdG9sZXJhbmNlIG9y
IGEgcmVsYXRpdmUgdG9sZXJhbmNlLCBkZXBlbmRpbmcgb24gd2hhdCB0aGUgdXNlcgorICAgICAg
ICBzcGVjaWZpZWQgb3Igd2hpY2ggd291bGQgYmUgbGFyZ2VyLgorICAgICAgICAiIiIKKyAgICAg
ICAgZGVmIHNldF9kZWZhdWx0KHgsIGRlZmF1bHQpOgorICAgICAgICAgICAgcmV0dXJuIHggaWYg
eCBpcyBub3QgTm9uZSBlbHNlIGRlZmF1bHQKKworICAgICAgICAjIEZpZ3VyZSBvdXQgd2hhdCB0
aGUgYWJzb2x1dGUgdG9sZXJhbmNlIHNob3VsZCBiZS4gIGBgc2VsZi5hYnNgYCBpcworICAgICAg
ICAjIGVpdGhlciBOb25lIG9yIGEgdmFsdWUgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLgorICAgICAg
ICBhYnNvbHV0ZV90b2xlcmFuY2UgPSBzZXRfZGVmYXVsdChzZWxmLmFicywgMWUtMTIpCisKKyAg
ICAgICAgaWYgYWJzb2x1dGVfdG9sZXJhbmNlIDwgMDoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoImFic29sdXRlIHRvbGVyYW5jZSBjYW4ndCBiZSBuZWdhdGl2ZToge30iLmZvcm1hdChh
YnNvbHV0ZV90b2xlcmFuY2UpKQorICAgICAgICBpZiBtYXRoLmlzbmFuKGFic29sdXRlX3RvbGVy
YW5jZSk6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJhYnNvbHV0ZSB0b2xlcmFuY2Ug
Y2FuJ3QgYmUgTmFOLiIpCisKKyAgICAgICAgIyBJZiB0aGUgdXNlciBzcGVjaWZpZWQgYW4gYWJz
b2x1dGUgdG9sZXJhbmNlIGJ1dCBub3QgYSByZWxhdGl2ZSBvbmUsCisgICAgICAgICMganVzdCBy
ZXR1cm4gdGhlIGFic29sdXRlIHRvbGVyYW5jZS4KKyAgICAgICAgaWYgc2VsZi5yZWwgaXMgTm9u
ZToKKyAgICAgICAgICAgIGlmIHNlbGYuYWJzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAg
IHJldHVybiBhYnNvbHV0ZV90b2xlcmFuY2UKKworICAgICAgICAjIEZpZ3VyZSBvdXQgd2hhdCB0
aGUgcmVsYXRpdmUgdG9sZXJhbmNlIHNob3VsZCBiZS4gIGBgc2VsZi5yZWxgYCBpcworICAgICAg
ICAjIGVpdGhlciBOb25lIG9yIGEgdmFsdWUgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyLiAgVGhpcyBp
cyBkb25lIGFmdGVyCisgICAgICAgICMgd2UndmUgbWFkZSBzdXJlIHRoZSB1c2VyIGRpZG4ndCBh
c2sgZm9yIGFuIGFic29sdXRlIHRvbGVyYW5jZSBvbmx5LAorICAgICAgICAjIGJlY2F1c2Ugd2Ug
ZG9uJ3Qgd2FudCB0byByYWlzZSBlcnJvcnMgYWJvdXQgdGhlIHJlbGF0aXZlIHRvbGVyYW5jZSBp
ZgorICAgICAgICAjIHdlIGFyZW4ndCBldmVuIGdvaW5nIHRvIHVzZSBpdC4KKyAgICAgICAgcmVs
YXRpdmVfdG9sZXJhbmNlID0gc2V0X2RlZmF1bHQoc2VsZi5yZWwsIDFlLTYpICogYWJzKHNlbGYu
ZXhwZWN0ZWQpCisKKyAgICAgICAgaWYgcmVsYXRpdmVfdG9sZXJhbmNlIDwgMDoKKyAgICAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoInJlbGF0aXZlIHRvbGVyYW5jZSBjYW4ndCBiZSBuZWdhdGl2
ZToge30iLmZvcm1hdChhYnNvbHV0ZV90b2xlcmFuY2UpKQorICAgICAgICBpZiBtYXRoLmlzbmFu
KHJlbGF0aXZlX3RvbGVyYW5jZSk6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJyZWxh
dGl2ZSB0b2xlcmFuY2UgY2FuJ3QgYmUgTmFOLiIpCisKKyAgICAgICAgIyBSZXR1cm4gdGhlIGxh
cmdlciBvZiB0aGUgcmVsYXRpdmUgYW5kIGFic29sdXRlIHRvbGVyYW5jZXMuCisgICAgICAgIHJl
dHVybiBtYXgocmVsYXRpdmVfdG9sZXJhbmNlLCBhYnNvbHV0ZV90b2xlcmFuY2UpCisKKworZGVm
IGFwcHJveChleHBlY3RlZCwgcmVsPU5vbmUsIGFicz1Ob25lLCBuYW5fb2s9RmFsc2UpOgorICAg
ICIiIgorICAgIEFzc2VydCB0aGF0IHR3byBudW1iZXJzIChvciB0d28gc2V0cyBvZiBudW1iZXJz
KSBhcmUgZXF1YWwgdG8gZWFjaCBvdGhlcgorICAgIHdpdGhpbiBzb21lIHRvbGVyYW5jZS4KKwor
ICAgIER1ZSB0byB0aGUgYGludHJpY2FjaWVzIG9mIGZsb2F0aW5nLXBvaW50IGFyaXRobWV0aWNg
X18sIG51bWJlcnMgdGhhdCB3ZQorICAgIHdvdWxkIGludHVpdGl2ZWx5IGV4cGVjdCB0byBiZSBl
cXVhbCBhcmUgbm90IGFsd2F5cyBzbzo6CisKKyAgICAgICAgPj4+IDAuMSArIDAuMiA9PSAwLjMK
KyAgICAgICAgRmFsc2UKKworICAgIF9fIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvdHV0b3Jp
YWwvZmxvYXRpbmdwb2ludC5odG1sCisKKyAgICBUaGlzIHByb2JsZW0gaXMgY29tbW9ubHkgZW5j
b3VudGVyZWQgd2hlbiB3cml0aW5nIHRlc3RzLCBlLmcuIHdoZW4gbWFraW5nCisgICAgc3VyZSB0
aGF0IGZsb2F0aW5nLXBvaW50IHZhbHVlcyBhcmUgd2hhdCB5b3UgZXhwZWN0IHRoZW0gdG8gYmUu
ICBPbmUgd2F5IHRvCisgICAgZGVhbCB3aXRoIHRoaXMgcHJvYmxlbSBpcyB0byBhc3NlcnQgdGhh
dCB0d28gZmxvYXRpbmctcG9pbnQgbnVtYmVycyBhcmUKKyAgICBlcXVhbCB0byB3aXRoaW4gc29t
ZSBhcHByb3ByaWF0ZSB0b2xlcmFuY2U6OgorCisgICAgICAgID4+PiBhYnMoKDAuMSArIDAuMikg
LSAwLjMpIDwgMWUtNgorICAgICAgICBUcnVlCisKKyAgICBIb3dldmVyLCBjb21wYXJpc29ucyBs
aWtlIHRoaXMgYXJlIHRlZGlvdXMgdG8gd3JpdGUgYW5kIGRpZmZpY3VsdCB0bworICAgIHVuZGVy
c3RhbmQuICBGdXJ0aGVybW9yZSwgYWJzb2x1dGUgY29tcGFyaXNvbnMgbGlrZSB0aGUgb25lIGFi
b3ZlIGFyZQorICAgIHVzdWFsbHkgZGlzY291cmFnZWQgYmVjYXVzZSB0aGVyZSdzIG5vIHRvbGVy
YW5jZSB0aGF0IHdvcmtzIHdlbGwgZm9yIGFsbAorICAgIHNpdHVhdGlvbnMuICBgYDFlLTZgYCBp
cyBnb29kIGZvciBudW1iZXJzIGFyb3VuZCBgYDFgYCwgYnV0IHRvbyBzbWFsbCBmb3IKKyAgICB2
ZXJ5IGJpZyBudW1iZXJzIGFuZCB0b28gYmlnIGZvciB2ZXJ5IHNtYWxsIG9uZXMuICBJdCdzIGJl
dHRlciB0byBleHByZXNzCisgICAgdGhlIHRvbGVyYW5jZSBhcyBhIGZyYWN0aW9uIG9mIHRoZSBl
eHBlY3RlZCB2YWx1ZSwgYnV0IHJlbGF0aXZlIGNvbXBhcmlzb25zCisgICAgbGlrZSB0aGF0IGFy
ZSBldmVuIG1vcmUgZGlmZmljdWx0IHRvIHdyaXRlIGNvcnJlY3RseSBhbmQgY29uY2lzZWx5Lgor
CisgICAgVGhlIGBgYXBwcm94YGAgY2xhc3MgcGVyZm9ybXMgZmxvYXRpbmctcG9pbnQgY29tcGFy
aXNvbnMgdXNpbmcgYSBzeW50YXgKKyAgICB0aGF0J3MgYXMgaW50dWl0aXZlIGFzIHBvc3NpYmxl
OjoKKworICAgICAgICA+Pj4gZnJvbSBweXRlc3QgaW1wb3J0IGFwcHJveAorICAgICAgICA+Pj4g
MC4xICsgMC4yID09IGFwcHJveCgwLjMpCisgICAgICAgIFRydWUKKworICAgIFRoZSBzYW1lIHN5
bnRheCBhbHNvIHdvcmtzIGZvciBzZXF1ZW5jZXMgb2YgbnVtYmVyczo6CisKKyAgICAgICAgPj4+
ICgwLjEgKyAwLjIsIDAuMiArIDAuNCkgPT0gYXBwcm94KCgwLjMsIDAuNikpCisgICAgICAgIFRy
dWUKKworICAgIERpY3Rpb25hcnkgKnZhbHVlcyo6OgorCisgICAgICAgID4+PiB7J2EnOiAwLjEg
KyAwLjIsICdiJzogMC4yICsgMC40fSA9PSBhcHByb3goeydhJzogMC4zLCAnYic6IDAuNn0pCisg
ICAgICAgIFRydWUKKworICAgIEFuZCBgYG51bXB5YGAgYXJyYXlzOjoKKworICAgICAgICA+Pj4g
aW1wb3J0IG51bXB5IGFzIG5wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICMgZG9jdGVzdDogK1NLSVAKKyAgICAgICAgPj4+IG5wLmFycmF5
KFswLjEsIDAuMl0pICsgbnAuYXJyYXkoWzAuMiwgMC40XSkgPT0gYXBwcm94KG5wLmFycmF5KFsw
LjMsIDAuNl0pKSAjIGRvY3Rlc3Q6ICtTS0lQCisgICAgICAgIFRydWUKKworICAgIEJ5IGRlZmF1
bHQsIGBgYXBwcm94YGAgY29uc2lkZXJzIG51bWJlcnMgd2l0aGluIGEgcmVsYXRpdmUgdG9sZXJh
bmNlIG9mCisgICAgYGAxZS02YGAgKGkuZS4gb25lIHBhcnQgaW4gYSBtaWxsaW9uKSBvZiBpdHMg
ZXhwZWN0ZWQgdmFsdWUgdG8gYmUgZXF1YWwuCisgICAgVGhpcyB0cmVhdG1lbnQgd291bGQgbGVh
ZCB0byBzdXJwcmlzaW5nIHJlc3VsdHMgaWYgdGhlIGV4cGVjdGVkIHZhbHVlIHdhcworICAgIGBg
MC4wYGAsIGJlY2F1c2Ugbm90aGluZyBidXQgYGAwLjBgYCBpdHNlbGYgaXMgcmVsYXRpdmVseSBj
bG9zZSB0byBgYDAuMGBgLgorICAgIFRvIGhhbmRsZSB0aGlzIGNhc2UgbGVzcyBzdXJwcmlzaW5n
bHksIGBgYXBwcm94YGAgYWxzbyBjb25zaWRlcnMgbnVtYmVycworICAgIHdpdGhpbiBhbiBhYnNv
bHV0ZSB0b2xlcmFuY2Ugb2YgYGAxZS0xMmBgIG9mIGl0cyBleHBlY3RlZCB2YWx1ZSB0byBiZQor
ICAgIGVxdWFsLiAgSW5maW5pdHkgYW5kIE5hTiBhcmUgc3BlY2lhbCBjYXNlcy4gIEluZmluaXR5
IGlzIG9ubHkgY29uc2lkZXJlZAorICAgIGVxdWFsIHRvIGl0c2VsZiwgcmVnYXJkbGVzcyBvZiB0
aGUgcmVsYXRpdmUgdG9sZXJhbmNlLiAgTmFOIGlzIG5vdAorICAgIGNvbnNpZGVyZWQgZXF1YWwg
dG8gYW55dGhpbmcgYnkgZGVmYXVsdCwgYnV0IHlvdSBjYW4gbWFrZSBpdCBiZSBlcXVhbCB0bwor
ICAgIGl0c2VsZiBieSBzZXR0aW5nIHRoZSBgYG5hbl9va2BgIGFyZ3VtZW50IHRvIFRydWUuICAo
VGhpcyBpcyBtZWFudCB0bworICAgIGZhY2lsaXRhdGUgY29tcGFyaW5nIGFycmF5cyB0aGF0IHVz
ZSBOYU4gdG8gbWVhbiAibm8gZGF0YSIuKQorCisgICAgQm90aCB0aGUgcmVsYXRpdmUgYW5kIGFi
c29sdXRlIHRvbGVyYW5jZXMgY2FuIGJlIGNoYW5nZWQgYnkgcGFzc2luZworICAgIGFyZ3VtZW50
cyB0byB0aGUgYGBhcHByb3hgYCBjb25zdHJ1Y3Rvcjo6CisKKyAgICAgICAgPj4+IDEuMDAwMSA9
PSBhcHByb3goMSkKKyAgICAgICAgRmFsc2UKKyAgICAgICAgPj4+IDEuMDAwMSA9PSBhcHByb3go
MSwgcmVsPTFlLTMpCisgICAgICAgIFRydWUKKyAgICAgICAgPj4+IDEuMDAwMSA9PSBhcHByb3go
MSwgYWJzPTFlLTMpCisgICAgICAgIFRydWUKKworICAgIElmIHlvdSBzcGVjaWZ5IGBgYWJzYGAg
YnV0IG5vdCBgYHJlbGBgLCB0aGUgY29tcGFyaXNvbiB3aWxsIG5vdCBjb25zaWRlcgorICAgIHRo
ZSByZWxhdGl2ZSB0b2xlcmFuY2UgYXQgYWxsLiAgSW4gb3RoZXIgd29yZHMsIHR3byBudW1iZXJz
IHRoYXQgYXJlIHdpdGhpbgorICAgIHRoZSBkZWZhdWx0IHJlbGF0aXZlIHRvbGVyYW5jZSBvZiBg
YDFlLTZgYCB3aWxsIHN0aWxsIGJlIGNvbnNpZGVyZWQgdW5lcXVhbAorICAgIGlmIHRoZXkgZXhj
ZWVkIHRoZSBzcGVjaWZpZWQgYWJzb2x1dGUgdG9sZXJhbmNlLiAgSWYgeW91IHNwZWNpZnkgYm90
aAorICAgIGBgYWJzYGAgYW5kIGBgcmVsYGAsIHRoZSBudW1iZXJzIHdpbGwgYmUgY29uc2lkZXJl
ZCBlcXVhbCBpZiBlaXRoZXIKKyAgICB0b2xlcmFuY2UgaXMgbWV0OjoKKworICAgICAgICA+Pj4g
MSArIDFlLTggPT0gYXBwcm94KDEpCisgICAgICAgIFRydWUKKyAgICAgICAgPj4+IDEgKyAxZS04
ID09IGFwcHJveCgxLCBhYnM9MWUtMTIpCisgICAgICAgIEZhbHNlCisgICAgICAgID4+PiAxICsg
MWUtOCA9PSBhcHByb3goMSwgcmVsPTFlLTYsIGFicz0xZS0xMikKKyAgICAgICAgVHJ1ZQorCisg
ICAgSWYgeW91J3JlIHRoaW5raW5nIGFib3V0IHVzaW5nIGBgYXBwcm94YGAsIHRoZW4geW91IG1p
Z2h0IHdhbnQgdG8ga25vdyBob3cKKyAgICBpdCBjb21wYXJlcyB0byBvdGhlciBnb29kIHdheXMg
b2YgY29tcGFyaW5nIGZsb2F0aW5nLXBvaW50IG51bWJlcnMuICBBbGwgb2YKKyAgICB0aGVzZSBh
bGdvcml0aG1zIGFyZSBiYXNlZCBvbiByZWxhdGl2ZSBhbmQgYWJzb2x1dGUgdG9sZXJhbmNlcyBh
bmQgc2hvdWxkCisgICAgYWdyZWUgZm9yIHRoZSBtb3N0IHBhcnQsIGJ1dCB0aGV5IGRvIGhhdmUg
bWVhbmluZ2Z1bCBkaWZmZXJlbmNlczoKKworICAgIC0gYGBtYXRoLmlzY2xvc2UoYSwgYiwgcmVs
X3RvbD0xZS05LCBhYnNfdG9sPTAuMClgYDogIFRydWUgaWYgdGhlIHJlbGF0aXZlCisgICAgICB0
b2xlcmFuY2UgaXMgbWV0IHcuci50LiBlaXRoZXIgYGBhYGAgb3IgYGBiYGAgb3IgaWYgdGhlIGFi
c29sdXRlCisgICAgICB0b2xlcmFuY2UgaXMgbWV0LiAgQmVjYXVzZSB0aGUgcmVsYXRpdmUgdG9s
ZXJhbmNlIGlzIGNhbGN1bGF0ZWQgdy5yLnQuCisgICAgICBib3RoIGBgYWBgIGFuZCBgYGJgYCwg
dGhpcyB0ZXN0IGlzIHN5bW1ldHJpYyAoaS5lLiAgbmVpdGhlciBgYGFgYCBub3IKKyAgICAgIGBg
YmBgIGlzIGEgInJlZmVyZW5jZSB2YWx1ZSIpLiAgWW91IGhhdmUgdG8gc3BlY2lmeSBhbiBhYnNv
bHV0ZSB0b2xlcmFuY2UKKyAgICAgIGlmIHlvdSB3YW50IHRvIGNvbXBhcmUgdG8gYGAwLjBgYCBi
ZWNhdXNlIHRoZXJlIGlzIG5vIHRvbGVyYW5jZSBieQorICAgICAgZGVmYXVsdC4gIE9ubHkgYXZh
aWxhYmxlIGluIHB5dGhvbj49My41LiAgYE1vcmUgaW5mb3JtYXRpb24uLi5gX18KKworICAgICAg
X18gaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy9saWJyYXJ5L21hdGguaHRtbCNtYXRoLmlzY2xv
c2UKKworICAgIC0gYGBudW1weS5pc2Nsb3NlKGEsIGIsIHJ0b2w9MWUtNSwgYXRvbD0xZS04KWBg
OiBUcnVlIGlmIHRoZSBkaWZmZXJlbmNlCisgICAgICBiZXR3ZWVuIGBgYWBgIGFuZCBgYGJgYCBp
cyBsZXNzIHRoYXQgdGhlIHN1bSBvZiB0aGUgcmVsYXRpdmUgdG9sZXJhbmNlCisgICAgICB3LnIu
dC4gYGBiYGAgYW5kIHRoZSBhYnNvbHV0ZSB0b2xlcmFuY2UuICBCZWNhdXNlIHRoZSByZWxhdGl2
ZSB0b2xlcmFuY2UKKyAgICAgIGlzIG9ubHkgY2FsY3VsYXRlZCB3LnIudC4gYGBiYGAsIHRoaXMg
dGVzdCBpcyBhc3ltbWV0cmljIGFuZCB5b3UgY2FuCisgICAgICB0aGluayBvZiBgYGJgYCBhcyB0
aGUgcmVmZXJlbmNlIHZhbHVlLiAgU3VwcG9ydCBmb3IgY29tcGFyaW5nIHNlcXVlbmNlcworICAg
ICAgaXMgcHJvdmlkZWQgYnkgYGBudW1weS5hbGxjbG9zZWBgLiAgYE1vcmUgaW5mb3JtYXRpb24u
Li5gX18KKworICAgICAgX18gaHR0cDovL2RvY3Muc2NpcHkub3JnL2RvYy9udW1weS0xLjEwLjAv
cmVmZXJlbmNlL2dlbmVyYXRlZC9udW1weS5pc2Nsb3NlLmh0bWwKKworICAgIC0gYGB1bml0dGVz
dC5UZXN0Q2FzZS5hc3NlcnRBbG1vc3RFcXVhbChhLCBiKWBgOiBUcnVlIGlmIGBgYWBgIGFuZCBg
YGJgYAorICAgICAgYXJlIHdpdGhpbiBhbiBhYnNvbHV0ZSB0b2xlcmFuY2Ugb2YgYGAxZS03YGAu
ICBObyByZWxhdGl2ZSB0b2xlcmFuY2UgaXMKKyAgICAgIGNvbnNpZGVyZWQgYW5kIHRoZSBhYnNv
bHV0ZSB0b2xlcmFuY2UgY2Fubm90IGJlIGNoYW5nZWQsIHNvIHRoaXMgZnVuY3Rpb24KKyAgICAg
IGlzIG5vdCBhcHByb3ByaWF0ZSBmb3IgdmVyeSBsYXJnZSBvciB2ZXJ5IHNtYWxsIG51bWJlcnMu
ICBBbHNvLCBpdCdzIG9ubHkKKyAgICAgIGF2YWlsYWJsZSBpbiBzdWJjbGFzc2VzIG9mIGBgdW5p
dHRlc3QuVGVzdENhc2VgYCBhbmQgaXQncyB1Z2x5IGJlY2F1c2UgaXQKKyAgICAgIGRvZXNuJ3Qg
Zm9sbG93IFBFUDguICBgTW9yZSBpbmZvcm1hdGlvbi4uLmBfXworCisgICAgICBfXyBodHRwczov
L2RvY3MucHl0aG9uLm9yZy8zL2xpYnJhcnkvdW5pdHRlc3QuaHRtbCN1bml0dGVzdC5UZXN0Q2Fz
ZS5hc3NlcnRBbG1vc3RFcXVhbAorCisgICAgLSBgYGEgPT0gcHl0ZXN0LmFwcHJveChiLCByZWw9
MWUtNiwgYWJzPTFlLTEyKWBgOiBUcnVlIGlmIHRoZSByZWxhdGl2ZQorICAgICAgdG9sZXJhbmNl
IGlzIG1ldCB3LnIudC4gYGBiYGAgb3IgaWYgdGhlIGFic29sdXRlIHRvbGVyYW5jZSBpcyBtZXQu
CisgICAgICBCZWNhdXNlIHRoZSByZWxhdGl2ZSB0b2xlcmFuY2UgaXMgb25seSBjYWxjdWxhdGVk
IHcuci50LiBgYGJgYCwgdGhpcyB0ZXN0CisgICAgICBpcyBhc3ltbWV0cmljIGFuZCB5b3UgY2Fu
IHRoaW5rIG9mIGBgYmBgIGFzIHRoZSByZWZlcmVuY2UgdmFsdWUuICBJbiB0aGUKKyAgICAgIHNw
ZWNpYWwgY2FzZSB0aGF0IHlvdSBleHBsaWNpdGx5IHNwZWNpZnkgYW4gYWJzb2x1dGUgdG9sZXJh
bmNlIGJ1dCBub3QgYQorICAgICAgcmVsYXRpdmUgdG9sZXJhbmNlLCBvbmx5IHRoZSBhYnNvbHV0
ZSB0b2xlcmFuY2UgaXMgY29uc2lkZXJlZC4KKworICAgIC4uIHdhcm5pbmc6OgorCisgICAgICAg
Li4gdmVyc2lvbmNoYW5nZWQ6OiAzLjIKKworICAgICAgIEluIG9yZGVyIHRvIGF2b2lkIGluY29u
c2lzdGVudCBiZWhhdmlvciwgYGBUeXBlRXJyb3JgYCBpcworICAgICAgIHJhaXNlZCBmb3IgYGA+
YGAsIGBgPj1gYCwgYGA8YGAgYW5kIGBgPD1gYCBjb21wYXJpc29ucy4KKyAgICAgICBUaGUgZXhh
bXBsZSBiZWxvdyBpbGx1c3RyYXRlcyB0aGUgcHJvYmxlbTo6CisKKyAgICAgICAgICAgYXNzZXJ0
IGFwcHJveCgwLjEpID4gMC4xICsgMWUtMTAgICMgY2FsbHMgYXBwcm94KDAuMSkuX19ndF9fKDAu
MSArIDFlLTEwKQorICAgICAgICAgICBhc3NlcnQgMC4xICsgMWUtMTAgPiBhcHByb3goMC4xKSAg
IyBjYWxscyBhcHByb3goMC4xKS5fX2x0X18oMC4xICsgMWUtMTApCisKKyAgICAgICBJbiB0aGUg
c2Vjb25kIGV4YW1wbGUgb25lIGV4cGVjdHMgYGBhcHByb3goMC4xKS5fX2xlX18oMC4xICsgMWUt
MTApYGAKKyAgICAgICB0byBiZSBjYWxsZWQuIEJ1dCBpbnN0ZWFkLCBgYGFwcHJveCgwLjEpLl9f
bHRfXygwLjEgKyAxZS0xMClgYCBpcyB1c2VkIHRvCisgICAgICAgY29tcGFyaXNvbi4gVGhpcyBp
cyBiZWNhdXNlIHRoZSBjYWxsIGhpZXJhcmNoeSBvZiByaWNoIGNvbXBhcmlzb25zCisgICAgICAg
Zm9sbG93cyBhIGZpeGVkIGJlaGF2aW9yLiBgTW9yZSBpbmZvcm1hdGlvbi4uLmBfXworCisgICAg
ICAgX18gaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy9yZWZlcmVuY2UvZGF0YW1vZGVsLmh0bWwj
b2JqZWN0Ll9fZ2VfXworICAgICIiIgorCisgICAgZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgTWFw
cGluZywgU2VxdWVuY2UKKyAgICBmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBTVFJJTkdfVFlQ
RVMgYXMgU3RyaW5nCisKKyAgICAjIERlbGVnYXRlIHRoZSBjb21wYXJpc29uIHRvIGEgY2xhc3Mg
dGhhdCBrbm93cyBob3cgdG8gZGVhbCB3aXRoIHRoZSB0eXBlCisgICAgIyBvZiB0aGUgZXhwZWN0
ZWQgdmFsdWUgKGUuZy4gaW50LCBmbG9hdCwgbGlzdCwgZGljdCwgbnVtcHkuYXJyYXksIGV0Yyku
CisgICAgIworICAgICMgVGhpcyBhcmNoaXRlY3R1cmUgaXMgcmVhbGx5IGRyaXZlbiBieSB0aGUg
bmVlZCB0byBzdXBwb3J0IG51bXB5IGFycmF5cy4KKyAgICAjIFRoZSBvbmx5IHdheSB0byBvdmVy
cmlkZSBgPT1gIGZvciBhcnJheXMgd2l0aG91dCByZXF1aXJpbmcgdGhhdCBhcHByb3ggYmUKKyAg
ICAjIHRoZSBsZWZ0IG9wZXJhbmQgaXMgdG8gaW5oZXJpdCB0aGUgYXBwcm94IG9iamVjdCBmcm9t
IGBudW1weS5uZGFycmF5YC4KKyAgICAjIEJ1dCB0aGF0IGNhbid0IGJlIGEgZ2VuZXJhbCBzb2x1
dGlvbiwgYmVjYXVzZSBpdCByZXF1aXJlcyAoMSkgbnVtcHkgdG8gYmUKKyAgICAjIGluc3RhbGxl
ZCBhbmQgKDIpIHRoZSBleHBlY3RlZCB2YWx1ZSB0byBiZSBhIG51bXB5IGFycmF5LiAgU28gdGhl
IGdlbmVyYWwKKyAgICAjIHNvbHV0aW9uIGlzIHRvIGRlbGVnYXRlIGVhY2ggdHlwZSBvZiBleHBl
Y3RlZCB2YWx1ZSB0byBhIGRpZmZlcmVudCBjbGFzcy4KKyAgICAjCisgICAgIyBUaGlzIGhhcyB0
aGUgYWR2YW50YWdlIHRoYXQgaXQgbWFkZSBpdCBlYXN5IHRvIHN1cHBvcnQgbWFwcGluZyB0eXBl
cworICAgICMgKGkuZS4gZGljdCkuICBUaGUgb2xkIGNvZGUgYWNjZXB0ZWQgbWFwcGluZyB0eXBl
cywgYnV0IHdvdWxkIG9ubHkgY29tcGFyZQorICAgICMgdGhlaXIga2V5cywgd2hpY2ggaXMgcHJv
YmFibHkgbm90IHdoYXQgbW9zdCBwZW9wbGUgd291bGQgZXhwZWN0LgorCisgICAgaWYgX2lzX251
bXB5X2FycmF5KGV4cGVjdGVkKToKKyAgICAgICAgY2xzID0gQXBwcm94TnVtcHkKKyAgICBlbGlm
IGlzaW5zdGFuY2UoZXhwZWN0ZWQsIE1hcHBpbmcpOgorICAgICAgICBjbHMgPSBBcHByb3hNYXBw
aW5nCisgICAgZWxpZiBpc2luc3RhbmNlKGV4cGVjdGVkLCBTZXF1ZW5jZSkgYW5kIG5vdCBpc2lu
c3RhbmNlKGV4cGVjdGVkLCBTdHJpbmcpOgorICAgICAgICBjbHMgPSBBcHByb3hTZXF1ZW5jZQor
ICAgIGVsc2U6CisgICAgICAgIGNscyA9IEFwcHJveFNjYWxhcgorCisgICAgcmV0dXJuIGNscyhl
eHBlY3RlZCwgcmVsLCBhYnMsIG5hbl9vaykKKworCitkZWYgX2lzX251bXB5X2FycmF5KG9iaik6
CisgICAgIiIiCisgICAgUmV0dXJuIHRydWUgaWYgdGhlIGdpdmVuIG9iamVjdCBpcyBhIG51bXB5
IGFycmF5LiAgTWFrZSBhIHNwZWNpYWwgZWZmb3J0IHRvCisgICAgYXZvaWQgaW1wb3J0aW5nIG51
bXB5IHVubGVzcyBpdCdzIHJlYWxseSBuZWNlc3NhcnkuCisgICAgIiIiCisgICAgaW1wb3J0IGlu
c3BlY3QKKworICAgIGZvciBjbHMgaW4gaW5zcGVjdC5nZXRtcm8odHlwZShvYmopKToKKyAgICAg
ICAgaWYgY2xzLl9fbW9kdWxlX18gPT0gJ251bXB5JzoKKyAgICAgICAgICAgIHRyeToKKyAgICAg
ICAgICAgICAgICBpbXBvcnQgbnVtcHkgYXMgbnAKKyAgICAgICAgICAgICAgICByZXR1cm4gaXNp
bnN0YW5jZShvYmosIG5wLm5kYXJyYXkpCisgICAgICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6
CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgcmV0dXJuIEZhbHNlCisKKworIyBidWlsdGlu
IHB5dGVzdC5yYWlzZXMgaGVscGVyCisKK2RlZiByYWlzZXMoZXhwZWN0ZWRfZXhjZXB0aW9uLCAq
YXJncywgKiprd2FyZ3MpOgorICAgICIiIgorICAgIEFzc2VydCB0aGF0IGEgY29kZSBibG9jay9m
dW5jdGlvbiBjYWxsIHJhaXNlcyBgYGV4cGVjdGVkX2V4Y2VwdGlvbmBgCisgICAgYW5kIHJhaXNl
IGEgZmFpbHVyZSBleGNlcHRpb24gb3RoZXJ3aXNlLgorCisgICAgVGhpcyBoZWxwZXIgcHJvZHVj
ZXMgYSBgYEV4Y2VwdGlvbkluZm8oKWBgIG9iamVjdCAoc2VlIGJlbG93KS4KKworICAgIFlvdSBt
YXkgdXNlIHRoaXMgZnVuY3Rpb24gYXMgYSBjb250ZXh0IG1hbmFnZXI6OgorCisgICAgICAgID4+
PiB3aXRoIHJhaXNlcyhaZXJvRGl2aXNpb25FcnJvcik6CisgICAgICAgIC4uLiAgICAxLzAKKwor
ICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMi4xMAorCisgICAgSW4gdGhlIGNvbnRleHQgbWFuYWdl
ciBmb3JtIHlvdSBtYXkgdXNlIHRoZSBrZXl3b3JkIGFyZ3VtZW50CisgICAgYGBtZXNzYWdlYGAg
dG8gc3BlY2lmeSBhIGN1c3RvbSBmYWlsdXJlIG1lc3NhZ2U6OgorCisgICAgICAgID4+PiB3aXRo
IHJhaXNlcyhaZXJvRGl2aXNpb25FcnJvciwgbWVzc2FnZT0iRXhwZWN0aW5nIFplcm9EaXZpc2lv
bkVycm9yIik6CisgICAgICAgIC4uLiAgICBwYXNzCisgICAgICAgIFRyYWNlYmFjayAobW9zdCBy
ZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgICAuLi4KKyAgICAgICAgRmFpbGVkOiBFeHBlY3Rp
bmcgWmVyb0RpdmlzaW9uRXJyb3IKKworICAgIC4uIG5vdGU6OgorCisgICAgICAgV2hlbiB1c2lu
ZyBgYHB5dGVzdC5yYWlzZXNgYCBhcyBhIGNvbnRleHQgbWFuYWdlciwgaXQncyB3b3J0aHdoaWxl
IHRvCisgICAgICAgbm90ZSB0aGF0IG5vcm1hbCBjb250ZXh0IG1hbmFnZXIgcnVsZXMgYXBwbHkg
YW5kIHRoYXQgdGhlIGV4Y2VwdGlvbgorICAgICAgIHJhaXNlZCAqbXVzdCogYmUgdGhlIGZpbmFs
IGxpbmUgaW4gdGhlIHNjb3BlIG9mIHRoZSBjb250ZXh0IG1hbmFnZXIuCisgICAgICAgTGluZXMg
b2YgY29kZSBhZnRlciB0aGF0LCB3aXRoaW4gdGhlIHNjb3BlIG9mIHRoZSBjb250ZXh0IG1hbmFn
ZXIgd2lsbAorICAgICAgIG5vdCBiZSBleGVjdXRlZC4gRm9yIGV4YW1wbGU6OgorCisgICAgICAg
ICAgID4+PiB2YWx1ZSA9IDE1CisgICAgICAgICAgID4+PiB3aXRoIHJhaXNlcyhWYWx1ZUVycm9y
KSBhcyBleGNfaW5mbzoKKyAgICAgICAgICAgLi4uICAgICBpZiB2YWx1ZSA+IDEwOgorICAgICAg
ICAgICAuLi4gICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ2YWx1ZSBtdXN0IGJlIDw9IDEwIikK
KyAgICAgICAgICAgLi4uICAgICBhc3NlcnQgZXhjX2luZm8udHlwZSA9PSBWYWx1ZUVycm9yICAj
IHRoaXMgd2lsbCBub3QgZXhlY3V0ZQorCisgICAgICAgSW5zdGVhZCwgdGhlIGZvbGxvd2luZyBh
cHByb2FjaCBtdXN0IGJlIHRha2VuIChub3RlIHRoZSBkaWZmZXJlbmNlIGluCisgICAgICAgc2Nv
cGUpOjoKKworICAgICAgICAgICA+Pj4gd2l0aCByYWlzZXMoVmFsdWVFcnJvcikgYXMgZXhjX2lu
Zm86CisgICAgICAgICAgIC4uLiAgICAgaWYgdmFsdWUgPiAxMDoKKyAgICAgICAgICAgLi4uICAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcigidmFsdWUgbXVzdCBiZSA8PSAxMCIpCisgICAgICAgICAg
IC4uLgorICAgICAgICAgICA+Pj4gYXNzZXJ0IGV4Y19pbmZvLnR5cGUgPT0gVmFsdWVFcnJvcgor
CisKKyAgICBTaW5jZSB2ZXJzaW9uIGBgMy4xYGAgeW91IGNhbiB1c2UgdGhlIGtleXdvcmQgYXJn
dW1lbnQgYGBtYXRjaGBgIHRvIGFzc2VydCB0aGF0IHRoZQorICAgIGV4Y2VwdGlvbiBtYXRjaGVz
IGEgdGV4dCBvciByZWdleDo6CisKKyAgICAgICAgPj4+IHdpdGggcmFpc2VzKFZhbHVlRXJyb3Is
IG1hdGNoPSdtdXN0IGJlIDAgb3IgTm9uZScpOgorICAgICAgICAuLi4gICAgIHJhaXNlIFZhbHVl
RXJyb3IoInZhbHVlIG11c3QgYmUgMCBvciBOb25lIikKKworICAgICAgICA+Pj4gd2l0aCByYWlz
ZXMoVmFsdWVFcnJvciwgbWF0Y2g9cidtdXN0IGJlIFxkKyQnKToKKyAgICAgICAgLi4uICAgICBy
YWlzZSBWYWx1ZUVycm9yKCJ2YWx1ZSBtdXN0IGJlIDQyIikKKworICAgICoqTGVnYWN5IGZvcm1z
KioKKworICAgIFRoZSBmb3JtcyBiZWxvdyBhcmUgZnVsbHkgc3VwcG9ydGVkIGJ1dCBhcmUgZGlz
Y291cmFnZWQgZm9yIG5ldyBjb2RlIGJlY2F1c2UgdGhlCisgICAgY29udGV4dCBtYW5hZ2VyIGZv
cm0gaXMgcmVnYXJkZWQgYXMgbW9yZSByZWFkYWJsZSBhbmQgbGVzcyBlcnJvci1wcm9uZS4KKwor
ICAgIEl0IGlzIHBvc3NpYmxlIHRvIHNwZWNpZnkgYSBjYWxsYWJsZSBieSBwYXNzaW5nIGEgdG8t
YmUtY2FsbGVkIGxhbWJkYTo6CisKKyAgICAgICAgPj4+IHJhaXNlcyhaZXJvRGl2aXNpb25FcnJv
ciwgbGFtYmRhOiAxLzApCisgICAgICAgIDxFeGNlcHRpb25JbmZvIC4uLj4KKworICAgIG9yIHlv
dSBjYW4gc3BlY2lmeSBhbiBhcmJpdHJhcnkgY2FsbGFibGUgd2l0aCBhcmd1bWVudHM6OgorCisg
ICAgICAgID4+PiBkZWYgZih4KTogcmV0dXJuIDEveAorICAgICAgICAuLi4KKyAgICAgICAgPj4+
IHJhaXNlcyhaZXJvRGl2aXNpb25FcnJvciwgZiwgMCkKKyAgICAgICAgPEV4Y2VwdGlvbkluZm8g
Li4uPgorICAgICAgICA+Pj4gcmFpc2VzKFplcm9EaXZpc2lvbkVycm9yLCBmLCB4PTApCisgICAg
ICAgIDxFeGNlcHRpb25JbmZvIC4uLj4KKworICAgIEl0IGlzIGFsc28gcG9zc2libGUgdG8gcGFz
cyBhIHN0cmluZyB0byBiZSBldmFsdWF0ZWQgYXQgcnVudGltZTo6CisKKyAgICAgICAgPj4+IHJh
aXNlcyhaZXJvRGl2aXNpb25FcnJvciwgImYoMCkiKQorICAgICAgICA8RXhjZXB0aW9uSW5mbyAu
Li4+CisKKyAgICBUaGUgc3RyaW5nIHdpbGwgYmUgZXZhbHVhdGVkIHVzaW5nIHRoZSBzYW1lIGBg
bG9jYWxzKClgYCBhbmQgYGBnbG9iYWxzKClgYAorICAgIGF0IHRoZSBtb21lbnQgb2YgdGhlIGBg
cmFpc2VzYGAgY2FsbC4KKworICAgIC4uIGF1dG9jbGFzczo6IF9weXRlc3QuX2NvZGUuRXhjZXB0
aW9uSW5mbworICAgICAgICA6bWVtYmVyczoKKworICAgIC4uIG5vdGU6OgorICAgICAgICBTaW1p
bGFyIHRvIGNhdWdodCBleGNlcHRpb24gb2JqZWN0cyBpbiBQeXRob24sIGV4cGxpY2l0bHkgY2xl
YXJpbmcKKyAgICAgICAgbG9jYWwgcmVmZXJlbmNlcyB0byByZXR1cm5lZCBgYEV4Y2VwdGlvbklu
Zm9gYCBvYmplY3RzIGNhbgorICAgICAgICBoZWxwIHRoZSBQeXRob24gaW50ZXJwcmV0ZXIgc3Bl
ZWQgdXAgaXRzIGdhcmJhZ2UgY29sbGVjdGlvbi4KKworICAgICAgICBDbGVhcmluZyB0aG9zZSBy
ZWZlcmVuY2VzIGJyZWFrcyBhIHJlZmVyZW5jZSBjeWNsZQorICAgICAgICAoYGBFeGNlcHRpb25J
bmZvYGAgLS0+IGNhdWdodCBleGNlcHRpb24gLS0+IGZyYW1lIHN0YWNrIHJhaXNpbmcKKyAgICAg
ICAgdGhlIGV4Y2VwdGlvbiAtLT4gY3VycmVudCBmcmFtZSBzdGFjayAtLT4gbG9jYWwgdmFyaWFi
bGVzIC0tPgorICAgICAgICBgYEV4Y2VwdGlvbkluZm9gYCkgd2hpY2ggbWFrZXMgUHl0aG9uIGtl
ZXAgYWxsIG9iamVjdHMgcmVmZXJlbmNlZAorICAgICAgICBmcm9tIHRoYXQgY3ljbGUgKGluY2x1
ZGluZyBhbGwgbG9jYWwgdmFyaWFibGVzIGluIHRoZSBjdXJyZW50CisgICAgICAgIGZyYW1lKSBh
bGl2ZSB1bnRpbCB0aGUgbmV4dCBjeWNsaWMgZ2FyYmFnZSBjb2xsZWN0aW9uIHJ1bi4gU2VlIHRo
ZQorICAgICAgICBvZmZpY2lhbCBQeXRob24gYGB0cnlgYCBzdGF0ZW1lbnQgZG9jdW1lbnRhdGlv
biBmb3IgbW9yZSBkZXRhaWxlZAorICAgICAgICBpbmZvcm1hdGlvbi4KKworICAgICIiIgorICAg
IF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAgIG1zZyA9ICgiZXhjZXB0aW9ucyBtdXN0IGJl
IG9sZC1zdHlsZSBjbGFzc2VzIG9yIgorICAgICAgICAgICAiIGRlcml2ZWQgZnJvbSBCYXNlRXhj
ZXB0aW9uLCBub3QgJXMiKQorICAgIGlmIGlzaW5zdGFuY2UoZXhwZWN0ZWRfZXhjZXB0aW9uLCB0
dXBsZSk6CisgICAgICAgIGZvciBleGMgaW4gZXhwZWN0ZWRfZXhjZXB0aW9uOgorICAgICAgICAg
ICAgaWYgbm90IGlzY2xhc3MoZXhjKToKKyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3Io
bXNnICUgdHlwZShleGMpKQorICAgIGVsaWYgbm90IGlzY2xhc3MoZXhwZWN0ZWRfZXhjZXB0aW9u
KToKKyAgICAgICAgcmFpc2UgVHlwZUVycm9yKG1zZyAlIHR5cGUoZXhwZWN0ZWRfZXhjZXB0aW9u
KSkKKworICAgIG1lc3NhZ2UgPSAiRElEIE5PVCBSQUlTRSB7MH0iLmZvcm1hdChleHBlY3RlZF9l
eGNlcHRpb24pCisgICAgbWF0Y2hfZXhwciA9IE5vbmUKKworICAgIGlmIG5vdCBhcmdzOgorICAg
ICAgICBpZiAibWVzc2FnZSIgaW4ga3dhcmdzOgorICAgICAgICAgICAgbWVzc2FnZSA9IGt3YXJn
cy5wb3AoIm1lc3NhZ2UiKQorICAgICAgICBpZiAibWF0Y2giIGluIGt3YXJnczoKKyAgICAgICAg
ICAgIG1hdGNoX2V4cHIgPSBrd2FyZ3MucG9wKCJtYXRjaCIpCisgICAgICAgICAgICBtZXNzYWdl
ICs9ICIgbWF0Y2hpbmcgJ3swfSciLmZvcm1hdChtYXRjaF9leHByKQorICAgICAgICByZXR1cm4g
UmFpc2VzQ29udGV4dChleHBlY3RlZF9leGNlcHRpb24sIG1lc3NhZ2UsIG1hdGNoX2V4cHIpCisg
ICAgZWxpZiBpc2luc3RhbmNlKGFyZ3NbMF0sIHN0cik6CisgICAgICAgIGNvZGUsID0gYXJncwor
ICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShjb2RlLCBzdHIpCisgICAgICAgIGZyYW1lID0gc3lz
Ll9nZXRmcmFtZSgxKQorICAgICAgICBsb2MgPSBmcmFtZS5mX2xvY2Fscy5jb3B5KCkKKyAgICAg
ICAgbG9jLnVwZGF0ZShrd2FyZ3MpCisgICAgICAgICMgcHJpbnQgInJhaXNlcyBmcmFtZSBzY29w
ZTogJXIiICUgZnJhbWUuZl9sb2NhbHMKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgY29kZSA9
IF9weXRlc3QuX2NvZGUuU291cmNlKGNvZGUpLmNvbXBpbGUoKQorICAgICAgICAgICAgcHkuYnVp
bHRpbi5leGVjXyhjb2RlLCBmcmFtZS5mX2dsb2JhbHMsIGxvYykKKyAgICAgICAgICAgICMgWFhY
IGRpZG4nVCBtZWFuIGZfZ2xvYmFscyA9PSBmX2xvY2FscyBzb21ldGhpbmcgc3BlY2lhbD8KKyAg
ICAgICAgICAgICMgICAgIHRoaXMgaXMgZGVzdHJveWVkIGhlcmUgLi4uCisgICAgICAgIGV4Y2Vw
dCBleHBlY3RlZF9leGNlcHRpb246CisgICAgICAgICAgICByZXR1cm4gX3B5dGVzdC5fY29kZS5F
eGNlcHRpb25JbmZvKCkKKyAgICBlbHNlOgorICAgICAgICBmdW5jID0gYXJnc1swXQorICAgICAg
ICB0cnk6CisgICAgICAgICAgICBmdW5jKCphcmdzWzE6XSwgKiprd2FyZ3MpCisgICAgICAgIGV4
Y2VwdCBleHBlY3RlZF9leGNlcHRpb246CisgICAgICAgICAgICByZXR1cm4gX3B5dGVzdC5fY29k
ZS5FeGNlcHRpb25JbmZvKCkKKyAgICBmYWlsKG1lc3NhZ2UpCisKKworcmFpc2VzLkV4Y2VwdGlv
biA9IGZhaWwuRXhjZXB0aW9uCisKKworY2xhc3MgUmFpc2VzQ29udGV4dChvYmplY3QpOgorICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBleHBlY3RlZF9leGNlcHRpb24sIG1lc3NhZ2UsIG1hdGNoX2V4
cHIpOgorICAgICAgICBzZWxmLmV4cGVjdGVkX2V4Y2VwdGlvbiA9IGV4cGVjdGVkX2V4Y2VwdGlv
bgorICAgICAgICBzZWxmLm1lc3NhZ2UgPSBtZXNzYWdlCisgICAgICAgIHNlbGYubWF0Y2hfZXhw
ciA9IG1hdGNoX2V4cHIKKyAgICAgICAgc2VsZi5leGNpbmZvID0gTm9uZQorCisgICAgZGVmIF9f
ZW50ZXJfXyhzZWxmKToKKyAgICAgICAgc2VsZi5leGNpbmZvID0gb2JqZWN0Ll9fbmV3X18oX3B5
dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKQorICAgICAgICByZXR1cm4gc2VsZi5leGNpbmZvCisK
KyAgICBkZWYgX19leGl0X18oc2VsZiwgKnRwKToKKyAgICAgICAgX190cmFjZWJhY2toaWRlX18g
PSBUcnVlCisgICAgICAgIGlmIHRwWzBdIGlzIE5vbmU6CisgICAgICAgICAgICBmYWlsKHNlbGYu
bWVzc2FnZSkKKyAgICAgICAgc2VsZi5leGNpbmZvLl9faW5pdF9fKHRwKQorICAgICAgICBzdXBw
cmVzc19leGNlcHRpb24gPSBpc3N1YmNsYXNzKHNlbGYuZXhjaW5mby50eXBlLCBzZWxmLmV4cGVj
dGVkX2V4Y2VwdGlvbikKKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mb1swXSA9PSAyIGFuZCBz
dXBwcmVzc19leGNlcHRpb246CisgICAgICAgICAgICBzeXMuZXhjX2NsZWFyKCkKKyAgICAgICAg
aWYgc2VsZi5tYXRjaF9leHByOgorICAgICAgICAgICAgc2VsZi5leGNpbmZvLm1hdGNoKHNlbGYu
bWF0Y2hfZXhwcikKKyAgICAgICAgcmV0dXJuIHN1cHByZXNzX2V4Y2VwdGlvbgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9yZWN3YXJuLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9y
ZWN3YXJuLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmY2ViMTBhN2YzNDA0M2Y0MGRjNDM5NjA4OTFjYWRjMmZl
NDFhMjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3JlY3dhcm4ucHkK
QEAgLTAsMCArMSwyMzYgQEAKKyIiIiByZWNvcmRpbmcgd2FybmluZ3MgZHVyaW5nIHRlc3QgZnVu
Y3Rpb24gZXhlY3V0aW9uLiAiIiIKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1w
b3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IGluc3BlY3QKKworaW1wb3J0
IF9weXRlc3QuX2NvZGUKK2ltcG9ydCBweQoraW1wb3J0IHN5cworaW1wb3J0IHdhcm5pbmdzCisK
K2ltcG9ydCByZQorCitmcm9tIF9weXRlc3QuZml4dHVyZXMgaW1wb3J0IHlpZWxkX2ZpeHR1cmUK
K2Zyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgZmFpbAorCisKK0B5aWVsZF9maXh0dXJlCitk
ZWYgcmVjd2FybigpOgorICAgICIiIlJldHVybiBhIFdhcm5pbmdzUmVjb3JkZXIgaW5zdGFuY2Ug
dGhhdCBwcm92aWRlcyB0aGVzZSBtZXRob2RzOgorCisgICAgKiBgYHBvcChjYXRlZ29yeT1Ob25l
KWBgOiByZXR1cm4gbGFzdCB3YXJuaW5nIG1hdGNoaW5nIHRoZSBjYXRlZ29yeS4KKyAgICAqIGBg
Y2xlYXIoKWBgOiBjbGVhciBsaXN0IG9mIHdhcm5pbmdzCisKKyAgICBTZWUgaHR0cDovL2RvY3Mu
cHl0aG9uLm9yZy9saWJyYXJ5L3dhcm5pbmdzLmh0bWwgZm9yIGluZm9ybWF0aW9uCisgICAgb24g
d2FybmluZyBjYXRlZ29yaWVzLgorICAgICIiIgorICAgIHdyZWMgPSBXYXJuaW5nc1JlY29yZGVy
KCkKKyAgICB3aXRoIHdyZWM6CisgICAgICAgIHdhcm5pbmdzLnNpbXBsZWZpbHRlcignZGVmYXVs
dCcpCisgICAgICAgIHlpZWxkIHdyZWMKKworCitkZWYgZGVwcmVjYXRlZF9jYWxsKGZ1bmM9Tm9u
ZSwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAiIiJjb250ZXh0IG1hbmFnZXIgdGhhdCBjYW4gYmUg
dXNlZCB0byBlbnN1cmUgYSBibG9jayBvZiBjb2RlIHRyaWdnZXJzIGEKKyAgICBgYERlcHJlY2F0
aW9uV2FybmluZ2BgIG9yIGBgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZ2BgOjoKKworICAgICAg
ICA+Pj4gaW1wb3J0IHdhcm5pbmdzCisgICAgICAgID4+PiBkZWYgYXBpX2NhbGxfdjIoKToKKyAg
ICAgICAgLi4uICAgICB3YXJuaW5ncy53YXJuKCd1c2UgdjMgb2YgdGhpcyBhcGknLCBEZXByZWNh
dGlvbldhcm5pbmcpCisgICAgICAgIC4uLiAgICAgcmV0dXJuIDIwMAorCisgICAgICAgID4+PiB3
aXRoIGRlcHJlY2F0ZWRfY2FsbCgpOgorICAgICAgICAuLi4gICAgYXNzZXJ0IGFwaV9jYWxsX3Yy
KCkgPT0gMjAwCisKKyAgICBgYGRlcHJlY2F0ZWRfY2FsbGBgIGNhbiBhbHNvIGJlIHVzZWQgYnkg
cGFzc2luZyBhIGZ1bmN0aW9uIGFuZCBgYCphcmdzYGAgYW5kIGBgKmt3YXJnc2BgLAorICAgIGlu
IHdoaWNoIGNhc2UgaXQgd2lsbCBlbnN1cmUgY2FsbGluZyBgYGZ1bmMoKmFyZ3MsICoqa3dhcmdz
KWBgIHByb2R1Y2VzIG9uZSBvZiB0aGUgd2FybmluZ3MKKyAgICB0eXBlcyBhYm92ZS4KKyAgICAi
IiIKKyAgICBpZiBub3QgZnVuYzoKKyAgICAgICAgcmV0dXJuIF9EZXByZWNhdGVkQ2FsbENvbnRl
eHQoKQorICAgIGVsc2U6CisgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAgICAg
ICB3aXRoIF9EZXByZWNhdGVkQ2FsbENvbnRleHQoKToKKyAgICAgICAgICAgIHJldHVybiBmdW5j
KCphcmdzLCAqKmt3YXJncykKKworCitjbGFzcyBfRGVwcmVjYXRlZENhbGxDb250ZXh0KG9iamVj
dCk6CisgICAgIiIiSW1wbGVtZW50cyB0aGUgbG9naWMgdG8gY2FwdHVyZSBkZXByZWNhdGlvbiB3
YXJuaW5ncyBhcyBhIGNvbnRleHQgbWFuYWdlci4iIiIKKworICAgIGRlZiBfX2VudGVyX18oc2Vs
Zik6CisgICAgICAgIHNlbGYuX2NhcHR1cmVkX2NhdGVnb3JpZXMgPSBbXQorICAgICAgICBzZWxm
Ll9vbGRfd2FybiA9IHdhcm5pbmdzLndhcm4KKyAgICAgICAgc2VsZi5fb2xkX3dhcm5fZXhwbGlj
aXQgPSB3YXJuaW5ncy53YXJuX2V4cGxpY2l0CisgICAgICAgIHdhcm5pbmdzLndhcm5fZXhwbGlj
aXQgPSBzZWxmLl93YXJuX2V4cGxpY2l0CisgICAgICAgIHdhcm5pbmdzLndhcm4gPSBzZWxmLl93
YXJuCisKKyAgICBkZWYgX3dhcm5fZXhwbGljaXQoc2VsZiwgbWVzc2FnZSwgY2F0ZWdvcnksICph
cmdzLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYuX2NhcHR1cmVkX2NhdGVnb3JpZXMuYXBwZW5k
KGNhdGVnb3J5KQorCisgICAgZGVmIF93YXJuKHNlbGYsIG1lc3NhZ2UsIGNhdGVnb3J5PU5vbmUs
ICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UobWVzc2FnZSwgV2Fybmlu
Zyk6CisgICAgICAgICAgICBzZWxmLl9jYXB0dXJlZF9jYXRlZ29yaWVzLmFwcGVuZChtZXNzYWdl
Ll9fY2xhc3NfXykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX2NhcHR1cmVkX2Nh
dGVnb3JpZXMuYXBwZW5kKGNhdGVnb3J5KQorCisgICAgZGVmIF9fZXhpdF9fKHNlbGYsIGV4Y190
eXBlLCBleGNfdmFsLCBleGNfdGIpOgorICAgICAgICB3YXJuaW5ncy53YXJuX2V4cGxpY2l0ID0g
c2VsZi5fb2xkX3dhcm5fZXhwbGljaXQKKyAgICAgICAgd2FybmluZ3Mud2FybiA9IHNlbGYuX29s
ZF93YXJuCisKKyAgICAgICAgaWYgZXhjX3R5cGUgaXMgTm9uZToKKyAgICAgICAgICAgIGRlcHJl
Y2F0aW9uX2NhdGVnb3JpZXMgPSAoRGVwcmVjYXRpb25XYXJuaW5nLCBQZW5kaW5nRGVwcmVjYXRp
b25XYXJuaW5nKQorICAgICAgICAgICAgaWYgbm90IGFueShpc3N1YmNsYXNzKGMsIGRlcHJlY2F0
aW9uX2NhdGVnb3JpZXMpIGZvciBjIGluIHNlbGYuX2NhcHR1cmVkX2NhdGVnb3JpZXMpOgorICAg
ICAgICAgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQorICAgICAgICAgICAgICAgIG1z
ZyA9ICJEaWQgbm90IHByb2R1Y2UgRGVwcmVjYXRpb25XYXJuaW5nIG9yIFBlbmRpbmdEZXByZWNh
dGlvbldhcm5pbmciCisgICAgICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IobXNnKQor
CisKK2RlZiB3YXJucyhleHBlY3RlZF93YXJuaW5nLCAqYXJncywgKiprd2FyZ3MpOgorICAgICIi
IkFzc2VydCB0aGF0IGNvZGUgcmFpc2VzIGEgcGFydGljdWxhciBjbGFzcyBvZiB3YXJuaW5nLgor
CisgICAgU3BlY2lmaWNhbGx5LCB0aGUgaW5wdXQgQGV4cGVjdGVkX3dhcm5pbmcgY2FuIGJlIGEg
d2FybmluZyBjbGFzcyBvcgorICAgIHR1cGxlIG9mIHdhcm5pbmcgY2xhc3NlcywgYW5kIHRoZSBj
b2RlIG11c3QgcmV0dXJuIHRoYXQgd2FybmluZworICAgIChpZiBhIHNpbmdsZSBjbGFzcykgb3Ig
b25lIG9mIHRob3NlIHdhcm5pbmdzIChpZiBhIHR1cGxlKS4KKworICAgIFRoaXMgaGVscGVyIHBy
b2R1Y2VzIGEgbGlzdCBvZiBgYHdhcm5pbmdzLldhcm5pbmdNZXNzYWdlYGAgb2JqZWN0cywKKyAg
ICBvbmUgZm9yIGVhY2ggd2FybmluZyByYWlzZWQuCisKKyAgICBUaGlzIGZ1bmN0aW9uIGNhbiBi
ZSB1c2VkIGFzIGEgY29udGV4dCBtYW5hZ2VyLCBvciBhbnkgb2YgdGhlIG90aGVyIHdheXMKKyAg
ICBgYHB5dGVzdC5yYWlzZXNgYCBjYW4gYmUgdXNlZDo6CisKKyAgICAgICAgPj4+IHdpdGggd2Fy
bnMoUnVudGltZVdhcm5pbmcpOgorICAgICAgICAuLi4gICAgd2FybmluZ3Mud2FybigibXkgd2Fy
bmluZyIsIFJ1bnRpbWVXYXJuaW5nKQorCisgICAgSW4gdGhlIGNvbnRleHQgbWFuYWdlciBmb3Jt
IHlvdSBtYXkgdXNlIHRoZSBrZXl3b3JkIGFyZ3VtZW50IGBgbWF0Y2hgYCB0byBhc3NlcnQKKyAg
ICB0aGF0IHRoZSBleGNlcHRpb24gbWF0Y2hlcyBhIHRleHQgb3IgcmVnZXg6OgorCisgICAgICAg
ID4+PiB3aXRoIHdhcm5zKFVzZXJXYXJuaW5nLCBtYXRjaD0nbXVzdCBiZSAwIG9yIE5vbmUnKToK
KyAgICAgICAgLi4uICAgICB3YXJuaW5ncy53YXJuKCJ2YWx1ZSBtdXN0IGJlIDAgb3IgTm9uZSIs
IFVzZXJXYXJuaW5nKQorCisgICAgICAgID4+PiB3aXRoIHdhcm5zKFVzZXJXYXJuaW5nLCBtYXRj
aD1yJ211c3QgYmUgXGQrJCcpOgorICAgICAgICAuLi4gICAgIHdhcm5pbmdzLndhcm4oInZhbHVl
IG11c3QgYmUgNDIiLCBVc2VyV2FybmluZykKKworICAgICAgICA+Pj4gd2l0aCB3YXJucyhVc2Vy
V2FybmluZywgbWF0Y2g9cidtdXN0IGJlIFxkKyQnKToKKyAgICAgICAgLi4uICAgICB3YXJuaW5n
cy53YXJuKCJ0aGlzIGlzIG5vdCBoZXJlIiwgVXNlcldhcm5pbmcpCisgICAgICAgIFRyYWNlYmFj
ayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgICAuLi4KKyAgICAgICAgRmFpbGVk
OiBESUQgTk9UIFdBUk4uIE5vIHdhcm5pbmdzIG9mIHR5cGUgLi4uVXNlcldhcm5pbmcuLi4gd2Fz
IGVtaXR0ZWQuLi4KKworICAgICIiIgorICAgIG1hdGNoX2V4cHIgPSBOb25lCisgICAgaWYgbm90
IGFyZ3M6CisgICAgICAgIGlmICJtYXRjaCIgaW4ga3dhcmdzOgorICAgICAgICAgICAgbWF0Y2hf
ZXhwciA9IGt3YXJncy5wb3AoIm1hdGNoIikKKyAgICAgICAgcmV0dXJuIFdhcm5pbmdzQ2hlY2tl
cihleHBlY3RlZF93YXJuaW5nLCBtYXRjaF9leHByPW1hdGNoX2V4cHIpCisgICAgZWxpZiBpc2lu
c3RhbmNlKGFyZ3NbMF0sIHN0cik6CisgICAgICAgIGNvZGUsID0gYXJncworICAgICAgICBhc3Nl
cnQgaXNpbnN0YW5jZShjb2RlLCBzdHIpCisgICAgICAgIGZyYW1lID0gc3lzLl9nZXRmcmFtZSgx
KQorICAgICAgICBsb2MgPSBmcmFtZS5mX2xvY2Fscy5jb3B5KCkKKyAgICAgICAgbG9jLnVwZGF0
ZShrd2FyZ3MpCisKKyAgICAgICAgd2l0aCBXYXJuaW5nc0NoZWNrZXIoZXhwZWN0ZWRfd2Fybmlu
ZywgbWF0Y2hfZXhwcj1tYXRjaF9leHByKToKKyAgICAgICAgICAgIGNvZGUgPSBfcHl0ZXN0Ll9j
b2RlLlNvdXJjZShjb2RlKS5jb21waWxlKCkKKyAgICAgICAgICAgIHB5LmJ1aWx0aW4uZXhlY18o
Y29kZSwgZnJhbWUuZl9nbG9iYWxzLCBsb2MpCisgICAgZWxzZToKKyAgICAgICAgZnVuYyA9IGFy
Z3NbMF0KKyAgICAgICAgd2l0aCBXYXJuaW5nc0NoZWNrZXIoZXhwZWN0ZWRfd2FybmluZywgbWF0
Y2hfZXhwcj1tYXRjaF9leHByKToKKyAgICAgICAgICAgIHJldHVybiBmdW5jKCphcmdzWzE6XSwg
Kiprd2FyZ3MpCisKKworY2xhc3MgV2FybmluZ3NSZWNvcmRlcih3YXJuaW5ncy5jYXRjaF93YXJu
aW5ncyk6CisgICAgIiIiQSBjb250ZXh0IG1hbmFnZXIgdG8gcmVjb3JkIHJhaXNlZCB3YXJuaW5n
cy4KKworICAgIEFkYXB0ZWQgZnJvbSBgd2FybmluZ3MuY2F0Y2hfd2FybmluZ3NgLgorICAgICIi
IgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzdXBlcihXYXJuaW5nc1JlY29y
ZGVyLCBzZWxmKS5fX2luaXRfXyhyZWNvcmQ9VHJ1ZSkKKyAgICAgICAgc2VsZi5fZW50ZXJlZCA9
IEZhbHNlCisgICAgICAgIHNlbGYuX2xpc3QgPSBbXQorCisgICAgQHByb3BlcnR5CisgICAgZGVm
IGxpc3Qoc2VsZik6CisgICAgICAgICIiIlRoZSBsaXN0IG9mIHJlY29yZGVkIHdhcm5pbmdzLiIi
IgorICAgICAgICByZXR1cm4gc2VsZi5fbGlzdAorCisgICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYs
IGkpOgorICAgICAgICAiIiJHZXQgYSByZWNvcmRlZCB3YXJuaW5nIGJ5IGluZGV4LiIiIgorICAg
ICAgICByZXR1cm4gc2VsZi5fbGlzdFtpXQorCisgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAg
ICAgICAiIiJJdGVyYXRlIHRocm91Z2ggdGhlIHJlY29yZGVkIHdhcm5pbmdzLiIiIgorICAgICAg
ICByZXR1cm4gaXRlcihzZWxmLl9saXN0KQorCisgICAgZGVmIF9fbGVuX18oc2VsZik6CisgICAg
ICAgICIiIlRoZSBudW1iZXIgb2YgcmVjb3JkZWQgd2FybmluZ3MuIiIiCisgICAgICAgIHJldHVy
biBsZW4oc2VsZi5fbGlzdCkKKworICAgIGRlZiBwb3Aoc2VsZiwgY2xzPVdhcm5pbmcpOgorICAg
ICAgICAiIiJQb3AgdGhlIGZpcnN0IHJlY29yZGVkIHdhcm5pbmcsIHJhaXNlIGV4Y2VwdGlvbiBp
ZiBub3QgZXhpc3RzLiIiIgorICAgICAgICBmb3IgaSwgdyBpbiBlbnVtZXJhdGUoc2VsZi5fbGlz
dCk6CisgICAgICAgICAgICBpZiBpc3N1YmNsYXNzKHcuY2F0ZWdvcnksIGNscyk6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIHNlbGYuX2xpc3QucG9wKGkpCisgICAgICAgIF9fdHJhY2ViYWNraGlk
ZV9fID0gVHJ1ZQorICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigiJXIgbm90IGZvdW5kIGlu
IHdhcm5pbmcgbGlzdCIgJSBjbHMpCisKKyAgICBkZWYgY2xlYXIoc2VsZik6CisgICAgICAgICIi
IkNsZWFyIHRoZSBsaXN0IG9mIHJlY29yZGVkIHdhcm5pbmdzLiIiIgorICAgICAgICBzZWxmLl9s
aXN0WzpdID0gW10KKworICAgIGRlZiBfX2VudGVyX18oc2VsZik6CisgICAgICAgIGlmIHNlbGYu
X2VudGVyZWQ6CisgICAgICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKKyAgICAgICAg
ICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigiQ2Fubm90IGVudGVyICVyIHR3aWNlIiAlIHNlbGYpCisg
ICAgICAgIHNlbGYuX2xpc3QgPSBzdXBlcihXYXJuaW5nc1JlY29yZGVyLCBzZWxmKS5fX2VudGVy
X18oKQorICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoJ2Fsd2F5cycpCisgICAgICAgIHJl
dHVybiBzZWxmCisKKyAgICBkZWYgX19leGl0X18oc2VsZiwgKmV4Y19pbmZvKToKKyAgICAgICAg
aWYgbm90IHNlbGYuX2VudGVyZWQ6CisgICAgICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRy
dWUKKyAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigiQ2Fubm90IGV4aXQgJXIgd2l0aG91
dCBlbnRlcmluZyBmaXJzdCIgJSBzZWxmKQorICAgICAgICBzdXBlcihXYXJuaW5nc1JlY29yZGVy
LCBzZWxmKS5fX2V4aXRfXygqZXhjX2luZm8pCisKKworY2xhc3MgV2FybmluZ3NDaGVja2VyKFdh
cm5pbmdzUmVjb3JkZXIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleHBlY3RlZF93YXJuaW5n
PU5vbmUsIG1hdGNoX2V4cHI9Tm9uZSk6CisgICAgICAgIHN1cGVyKFdhcm5pbmdzQ2hlY2tlciwg
c2VsZikuX19pbml0X18oKQorCisgICAgICAgIG1zZyA9ICgiZXhjZXB0aW9ucyBtdXN0IGJlIG9s
ZC1zdHlsZSBjbGFzc2VzIG9yICIKKyAgICAgICAgICAgICAgICJkZXJpdmVkIGZyb20gV2Fybmlu
Zywgbm90ICVzIikKKyAgICAgICAgaWYgaXNpbnN0YW5jZShleHBlY3RlZF93YXJuaW5nLCB0dXBs
ZSk6CisgICAgICAgICAgICBmb3IgZXhjIGluIGV4cGVjdGVkX3dhcm5pbmc6CisgICAgICAgICAg
ICAgICAgaWYgbm90IGluc3BlY3QuaXNjbGFzcyhleGMpOgorICAgICAgICAgICAgICAgICAgICBy
YWlzZSBUeXBlRXJyb3IobXNnICUgdHlwZShleGMpKQorICAgICAgICBlbGlmIGluc3BlY3QuaXNj
bGFzcyhleHBlY3RlZF93YXJuaW5nKToKKyAgICAgICAgICAgIGV4cGVjdGVkX3dhcm5pbmcgPSAo
ZXhwZWN0ZWRfd2FybmluZywpCisgICAgICAgIGVsaWYgZXhwZWN0ZWRfd2FybmluZyBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcihtc2cgJSB0eXBlKGV4cGVjdGVkX3dh
cm5pbmcpKQorCisgICAgICAgIHNlbGYuZXhwZWN0ZWRfd2FybmluZyA9IGV4cGVjdGVkX3dhcm5p
bmcKKyAgICAgICAgc2VsZi5tYXRjaF9leHByID0gbWF0Y2hfZXhwcgorCisgICAgZGVmIF9fZXhp
dF9fKHNlbGYsICpleGNfaW5mbyk6CisgICAgICAgIHN1cGVyKFdhcm5pbmdzQ2hlY2tlciwgc2Vs
ZikuX19leGl0X18oKmV4Y19pbmZvKQorCisgICAgICAgICMgb25seSBjaGVjayBpZiB3ZSdyZSBu
b3QgY3VycmVudGx5IGhhbmRsaW5nIGFuIGV4Y2VwdGlvbgorICAgICAgICBpZiBhbGwoYSBpcyBO
b25lIGZvciBhIGluIGV4Y19pbmZvKToKKyAgICAgICAgICAgIGlmIHNlbGYuZXhwZWN0ZWRfd2Fy
bmluZyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBpZiBub3QgYW55KGlzc3ViY2xhc3Mo
ci5jYXRlZ29yeSwgc2VsZi5leHBlY3RlZF93YXJuaW5nKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZm9yIHIgaW4gc2VsZik6CisgICAgICAgICAgICAgICAgICAgIF9fdHJhY2ViYWNraGlk
ZV9fID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICBmYWlsKCJESUQgTk9UIFdBUk4uIE5vIHdh
cm5pbmdzIG9mIHR5cGUgezB9IHdhcyBlbWl0dGVkLiAiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIlRoZSBsaXN0IG9mIGVtaXR0ZWQgd2FybmluZ3MgaXM6IHsxfS4iLmZvcm1hdCgKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHBlY3RlZF93YXJuaW5nLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbZWFjaC5tZXNzYWdlIGZvciBlYWNoIGluIHNlbGZdKSkKKyAg
ICAgICAgICAgICAgICBlbGlmIHNlbGYubWF0Y2hfZXhwciBpcyBub3QgTm9uZToKKyAgICAgICAg
ICAgICAgICAgICAgZm9yIHIgaW4gc2VsZjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGlz
c3ViY2xhc3Moci5jYXRlZ29yeSwgc2VsZi5leHBlY3RlZF93YXJuaW5nKToKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiByZS5jb21waWxlKHNlbGYubWF0Y2hfZXhwcikuc2VhcmNoKHN0
cihyLm1lc3NhZ2UpKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAg
ICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwoIkRJ
RCBOT1QgV0FSTi4gTm8gd2FybmluZ3Mgb2YgdHlwZSB7MH0gbWF0Y2hpbmciCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICIgKCd7MX0nKSB3YXMgZW1pdHRlZC4gVGhlIGxpc3Qgb2YgZW1p
dHRlZCB3YXJuaW5ncyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBpczogezJ9LiIu
Zm9ybWF0KHNlbGYuZXhwZWN0ZWRfd2FybmluZywgc2VsZi5tYXRjaF9leHByLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VhY2gubWVzc2FnZSBmb3Ig
ZWFjaCBpbiBzZWxmXSkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3Jlc3VsdGxv
Zy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcmVzdWx0bG9nLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmOWMy
ZDFmNjUzNjBmMzhkMGQ2NDEyM2Q2NDY1N2MwNzI2YTI2NjcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9fcHl0ZXN0L3Jlc3VsdGxvZy5weQpAQCAtMCwwICsxLDExMyBAQAorIiIiIGxv
ZyBtYWNoaW5lLXBhcnNlYWJsZSB0ZXN0IHNlc3Npb24gcmVzdWx0IGluZm9ybWF0aW9uIGluIGEg
cGxhaW4KK3RleHQgZmlsZS4KKyIiIgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9p
bXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQgcHkKK2ltcG9ydCBvcwor
CisKK2RlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAgZ3JvdXAgPSBwYXJzZXIuZ2V0
Z3JvdXAoInRlcm1pbmFsIHJlcG9ydGluZyIsICJyZXN1bHRsb2cgcGx1Z2luIG9wdGlvbnMiKQor
ICAgIGdyb3VwLmFkZG9wdGlvbignLS1yZXN1bHRsb2cnLCAnLS1yZXN1bHQtbG9nJywgYWN0aW9u
PSJzdG9yZSIsCisgICAgICAgICAgICAgICAgICAgIG1ldGF2YXI9InBhdGgiLCBkZWZhdWx0PU5v
bmUsCisgICAgICAgICAgICAgICAgICAgIGhlbHA9IkRFUFJFQ0FURUQgcGF0aCBmb3IgbWFjaGlu
ZS1yZWFkYWJsZSByZXN1bHQgbG9nLiIpCisKKworZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmln
KToKKyAgICByZXN1bHRsb2cgPSBjb25maWcub3B0aW9uLnJlc3VsdGxvZworICAgICMgcHJldmVu
dCBvcGVuaW5nIHJlc3VsdGxvZyBvbiBzbGF2ZSBub2RlcyAoeGRpc3QpCisgICAgaWYgcmVzdWx0
bG9nIGFuZCBub3QgaGFzYXR0cihjb25maWcsICdzbGF2ZWlucHV0Jyk6CisgICAgICAgIGRpcm5h
bWUgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5hYnNwYXRoKHJlc3VsdGxvZykpCisgICAgICAg
IGlmIG5vdCBvcy5wYXRoLmlzZGlyKGRpcm5hbWUpOgorICAgICAgICAgICAgb3MubWFrZWRpcnMo
ZGlybmFtZSkKKyAgICAgICAgbG9nZmlsZSA9IG9wZW4ocmVzdWx0bG9nLCAndycsIDEpICAjIGxp
bmUgYnVmZmVyZWQKKyAgICAgICAgY29uZmlnLl9yZXN1bHRsb2cgPSBSZXN1bHRMb2coY29uZmln
LCBsb2dmaWxlKQorICAgICAgICBjb25maWcucGx1Z2lubWFuYWdlci5yZWdpc3Rlcihjb25maWcu
X3Jlc3VsdGxvZykKKworICAgICAgICBmcm9tIF9weXRlc3QuZGVwcmVjYXRlZCBpbXBvcnQgUkVT
VUxUX0xPRworICAgICAgICBjb25maWcud2FybignQzEnLCBSRVNVTFRfTE9HKQorCisKK2RlZiBw
eXRlc3RfdW5jb25maWd1cmUoY29uZmlnKToKKyAgICByZXN1bHRsb2cgPSBnZXRhdHRyKGNvbmZp
ZywgJ19yZXN1bHRsb2cnLCBOb25lKQorICAgIGlmIHJlc3VsdGxvZzoKKyAgICAgICAgcmVzdWx0
bG9nLmxvZ2ZpbGUuY2xvc2UoKQorICAgICAgICBkZWwgY29uZmlnLl9yZXN1bHRsb2cKKyAgICAg
ICAgY29uZmlnLnBsdWdpbm1hbmFnZXIudW5yZWdpc3RlcihyZXN1bHRsb2cpCisKKworZGVmIGdl
bmVyaWNfcGF0aChpdGVtKToKKyAgICBjaGFpbiA9IGl0ZW0ubGlzdGNoYWluKCkKKyAgICBncGF0
aCA9IFtjaGFpblswXS5uYW1lXQorICAgIGZzcGF0aCA9IGNoYWluWzBdLmZzcGF0aAorICAgIGZz
cGFydCA9IEZhbHNlCisgICAgZm9yIG5vZGUgaW4gY2hhaW5bMTpdOgorICAgICAgICBuZXdmc3Bh
dGggPSBub2RlLmZzcGF0aAorICAgICAgICBpZiBuZXdmc3BhdGggPT0gZnNwYXRoOgorICAgICAg
ICAgICAgaWYgZnNwYXJ0OgorICAgICAgICAgICAgICAgIGdwYXRoLmFwcGVuZCgnOicpCisgICAg
ICAgICAgICAgICAgZnNwYXJ0ID0gRmFsc2UKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgZ3BhdGguYXBwZW5kKCcuJykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGdwYXRo
LmFwcGVuZCgnLycpCisgICAgICAgICAgICBmc3BhcnQgPSBUcnVlCisgICAgICAgIG5hbWUgPSBu
b2RlLm5hbWUKKyAgICAgICAgaWYgbmFtZVswXSBpbiAnKFsnOgorICAgICAgICAgICAgZ3BhdGgu
cG9wKCkKKyAgICAgICAgZ3BhdGguYXBwZW5kKG5hbWUpCisgICAgICAgIGZzcGF0aCA9IG5ld2Zz
cGF0aAorICAgIHJldHVybiAnJy5qb2luKGdwYXRoKQorCisKK2NsYXNzIFJlc3VsdExvZyhvYmpl
Y3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWcsIGxvZ2ZpbGUpOgorICAgICAgICBz
ZWxmLmNvbmZpZyA9IGNvbmZpZworICAgICAgICBzZWxmLmxvZ2ZpbGUgPSBsb2dmaWxlICAjIHBy
ZWZlcmFibHkgbGluZSBidWZmZXJlZAorCisgICAgZGVmIHdyaXRlX2xvZ19lbnRyeShzZWxmLCB0
ZXN0cGF0aCwgbGV0dGVyY29kZSwgbG9uZ3JlcHIpOgorICAgICAgICBwcmludCgiJXMgJXMiICUg
KGxldHRlcmNvZGUsIHRlc3RwYXRoKSwgZmlsZT1zZWxmLmxvZ2ZpbGUpCisgICAgICAgIGZvciBs
aW5lIGluIGxvbmdyZXByLnNwbGl0bGluZXMoKToKKyAgICAgICAgICAgIHByaW50KCIgJXMiICUg
bGluZSwgZmlsZT1zZWxmLmxvZ2ZpbGUpCisKKyAgICBkZWYgbG9nX291dGNvbWUoc2VsZiwgcmVw
b3J0LCBsZXR0ZXJjb2RlLCBsb25ncmVwcik6CisgICAgICAgIHRlc3RwYXRoID0gZ2V0YXR0cihy
ZXBvcnQsICdub2RlaWQnLCBOb25lKQorICAgICAgICBpZiB0ZXN0cGF0aCBpcyBOb25lOgorICAg
ICAgICAgICAgdGVzdHBhdGggPSByZXBvcnQuZnNwYXRoCisgICAgICAgIHNlbGYud3JpdGVfbG9n
X2VudHJ5KHRlc3RwYXRoLCBsZXR0ZXJjb2RlLCBsb25ncmVwcikKKworICAgIGRlZiBweXRlc3Rf
cnVudGVzdF9sb2dyZXBvcnQoc2VsZiwgcmVwb3J0KToKKyAgICAgICAgaWYgcmVwb3J0LndoZW4g
IT0gImNhbGwiIGFuZCByZXBvcnQucGFzc2VkOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAg
IHJlcyA9IHNlbGYuY29uZmlnLmhvb2sucHl0ZXN0X3JlcG9ydF90ZXN0c3RhdHVzKHJlcG9ydD1y
ZXBvcnQpCisgICAgICAgIGNvZGUgPSByZXNbMV0KKyAgICAgICAgaWYgY29kZSA9PSAneCc6Cisg
ICAgICAgICAgICBsb25ncmVwciA9IHN0cihyZXBvcnQubG9uZ3JlcHIpCisgICAgICAgIGVsaWYg
Y29kZSA9PSAnWCc6CisgICAgICAgICAgICBsb25ncmVwciA9ICcnCisgICAgICAgIGVsaWYgcmVw
b3J0LnBhc3NlZDoKKyAgICAgICAgICAgIGxvbmdyZXByID0gIiIKKyAgICAgICAgZWxpZiByZXBv
cnQuZmFpbGVkOgorICAgICAgICAgICAgbG9uZ3JlcHIgPSBzdHIocmVwb3J0LmxvbmdyZXByKQor
ICAgICAgICBlbGlmIHJlcG9ydC5za2lwcGVkOgorICAgICAgICAgICAgbG9uZ3JlcHIgPSBzdHIo
cmVwb3J0LmxvbmdyZXByWzJdKQorICAgICAgICBzZWxmLmxvZ19vdXRjb21lKHJlcG9ydCwgY29k
ZSwgbG9uZ3JlcHIpCisKKyAgICBkZWYgcHl0ZXN0X2NvbGxlY3RyZXBvcnQoc2VsZiwgcmVwb3J0
KToKKyAgICAgICAgaWYgbm90IHJlcG9ydC5wYXNzZWQ6CisgICAgICAgICAgICBpZiByZXBvcnQu
ZmFpbGVkOgorICAgICAgICAgICAgICAgIGNvZGUgPSAiRiIKKyAgICAgICAgICAgICAgICBsb25n
cmVwciA9IHN0cihyZXBvcnQubG9uZ3JlcHIpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgICAgIGFzc2VydCByZXBvcnQuc2tpcHBlZAorICAgICAgICAgICAgICAgIGNvZGUgPSAiUyIK
KyAgICAgICAgICAgICAgICBsb25ncmVwciA9ICIlczolZDogJXMiICUgcmVwb3J0LmxvbmdyZXBy
CisgICAgICAgICAgICBzZWxmLmxvZ19vdXRjb21lKHJlcG9ydCwgY29kZSwgbG9uZ3JlcHIpCisK
KyAgICBkZWYgcHl0ZXN0X2ludGVybmFsZXJyb3Ioc2VsZiwgZXhjcmVwcik6CisgICAgICAgIHJl
cHJjcmFzaCA9IGdldGF0dHIoZXhjcmVwciwgJ3JlcHJjcmFzaCcsIE5vbmUpCisgICAgICAgIHBh
dGggPSBnZXRhdHRyKHJlcHJjcmFzaCwgInBhdGgiLCBOb25lKQorICAgICAgICBpZiBwYXRoIGlz
IE5vbmU6CisgICAgICAgICAgICBwYXRoID0gImN3ZDolcyIgJSBweS5wYXRoLmxvY2FsKCkKKyAg
ICAgICAgc2VsZi53cml0ZV9sb2dfZW50cnkocGF0aCwgJyEnLCBzdHIoZXhjcmVwcikpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3J1bm5lci5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3QvcnVubmVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwN2VkMmEyNDhiMzIyMzllMDU3MzYyMzQwNzE4YjQ1
MjE3ZDdjZjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3J1bm5lci5w
eQpAQCAtMCwwICsxLDUwNiBAQAorIiIiIGJhc2ljIGNvbGxlY3QgYW5kIHJ1bnRlc3QgcHJvdG9j
b2wgaW1wbGVtZW50YXRpb25zICIiIgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9p
bXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQgYmRiCitpbXBvcnQgb3MK
K2ltcG9ydCBzeXMKK2Zyb20gdGltZSBpbXBvcnQgdGltZQorCitpbXBvcnQgcHkKK2Zyb20gX3B5
dGVzdC5fY29kZS5jb2RlIGltcG9ydCBUZXJtaW5hbFJlcHIsIEV4Y2VwdGlvbkluZm8KK2Zyb20g
X3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgc2tpcCwgU2tpcHBlZCwgVEVTVF9PVVRDT01FCisKKyMK
KyMgcHl0ZXN0IHBsdWdpbiBob29rcworCisKK2RlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6
CisgICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoInRlcm1pbmFsIHJlcG9ydGluZyIsICJyZXBv
cnRpbmciLCBhZnRlcj0iZ2VuZXJhbCIpCisgICAgZ3JvdXAuYWRkb3B0aW9uKCctLWR1cmF0aW9u
cycsCisgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmUiLCB0eXBlPWludCwgZGVmYXVs
dD1Ob25lLCBtZXRhdmFyPSJOIiwKKyAgICAgICAgICAgICAgICAgICAgaGVscD0ic2hvdyBOIHNs
b3dlc3Qgc2V0dXAvdGVzdCBkdXJhdGlvbnMgKE49MCBmb3IgYWxsKS4iKSwKKworCitkZWYgcHl0
ZXN0X3Rlcm1pbmFsX3N1bW1hcnkodGVybWluYWxyZXBvcnRlcik6CisgICAgZHVyYXRpb25zID0g
dGVybWluYWxyZXBvcnRlci5jb25maWcub3B0aW9uLmR1cmF0aW9ucworICAgIGlmIGR1cmF0aW9u
cyBpcyBOb25lOgorICAgICAgICByZXR1cm4KKyAgICB0ciA9IHRlcm1pbmFscmVwb3J0ZXIKKyAg
ICBkbGlzdCA9IFtdCisgICAgZm9yIHJlcGxpc3QgaW4gdHIuc3RhdHMudmFsdWVzKCk6CisgICAg
ICAgIGZvciByZXAgaW4gcmVwbGlzdDoKKyAgICAgICAgICAgIGlmIGhhc2F0dHIocmVwLCAnZHVy
YXRpb24nKToKKyAgICAgICAgICAgICAgICBkbGlzdC5hcHBlbmQocmVwKQorICAgIGlmIG5vdCBk
bGlzdDoKKyAgICAgICAgcmV0dXJuCisgICAgZGxpc3Quc29ydChrZXk9bGFtYmRhIHg6IHguZHVy
YXRpb24pCisgICAgZGxpc3QucmV2ZXJzZSgpCisgICAgaWYgbm90IGR1cmF0aW9uczoKKyAgICAg
ICAgdHIud3JpdGVfc2VwKCI9IiwgInNsb3dlc3QgdGVzdCBkdXJhdGlvbnMiKQorICAgIGVsc2U6
CisgICAgICAgIHRyLndyaXRlX3NlcCgiPSIsICJzbG93ZXN0ICVzIHRlc3QgZHVyYXRpb25zIiAl
IGR1cmF0aW9ucykKKyAgICAgICAgZGxpc3QgPSBkbGlzdFs6ZHVyYXRpb25zXQorCisgICAgZm9y
IHJlcCBpbiBkbGlzdDoKKyAgICAgICAgbm9kZWlkID0gcmVwLm5vZGVpZC5yZXBsYWNlKCI6Oigp
OjoiLCAiOjoiKQorICAgICAgICB0ci53cml0ZV9saW5lKCIlMDIuMmZzICUtOHMgJXMiICUKKyAg
ICAgICAgICAgICAgICAgICAgICAocmVwLmR1cmF0aW9uLCByZXAud2hlbiwgbm9kZWlkKSkKKwor
CitkZWYgcHl0ZXN0X3Nlc3Npb25zdGFydChzZXNzaW9uKToKKyAgICBzZXNzaW9uLl9zZXR1cHN0
YXRlID0gU2V0dXBTdGF0ZSgpCisKKworZGVmIHB5dGVzdF9zZXNzaW9uZmluaXNoKHNlc3Npb24p
OgorICAgIHNlc3Npb24uX3NldHVwc3RhdGUudGVhcmRvd25fYWxsKCkKKworCitkZWYgcHl0ZXN0
X3J1bnRlc3RfcHJvdG9jb2woaXRlbSwgbmV4dGl0ZW0pOgorICAgIGl0ZW0uaWhvb2sucHl0ZXN0
X3J1bnRlc3RfbG9nc3RhcnQoCisgICAgICAgIG5vZGVpZD1pdGVtLm5vZGVpZCwgbG9jYXRpb249
aXRlbS5sb2NhdGlvbiwKKyAgICApCisgICAgcnVudGVzdHByb3RvY29sKGl0ZW0sIG5leHRpdGVt
PW5leHRpdGVtKQorICAgIHJldHVybiBUcnVlCisKKworZGVmIHJ1bnRlc3Rwcm90b2NvbChpdGVt
LCBsb2c9VHJ1ZSwgbmV4dGl0ZW09Tm9uZSk6CisgICAgaGFzcmVxdWVzdCA9IGhhc2F0dHIoaXRl
bSwgIl9yZXF1ZXN0IikKKyAgICBpZiBoYXNyZXF1ZXN0IGFuZCBub3QgaXRlbS5fcmVxdWVzdDoK
KyAgICAgICAgaXRlbS5faW5pdHJlcXVlc3QoKQorICAgIHJlcCA9IGNhbGxfYW5kX3JlcG9ydChp
dGVtLCAic2V0dXAiLCBsb2cpCisgICAgcmVwb3J0cyA9IFtyZXBdCisgICAgaWYgcmVwLnBhc3Nl
ZDoKKyAgICAgICAgaWYgaXRlbS5jb25maWcub3B0aW9uLnNldHVwc2hvdzoKKyAgICAgICAgICAg
IHNob3dfdGVzdF9pdGVtKGl0ZW0pCisgICAgICAgIGlmIG5vdCBpdGVtLmNvbmZpZy5vcHRpb24u
c2V0dXBvbmx5OgorICAgICAgICAgICAgcmVwb3J0cy5hcHBlbmQoY2FsbF9hbmRfcmVwb3J0KGl0
ZW0sICJjYWxsIiwgbG9nKSkKKyAgICByZXBvcnRzLmFwcGVuZChjYWxsX2FuZF9yZXBvcnQoaXRl
bSwgInRlYXJkb3duIiwgbG9nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu
ZXh0aXRlbT1uZXh0aXRlbSkpCisgICAgIyBhZnRlciBhbGwgdGVhcmRvd24gaG9va3MgaGF2ZSBi
ZWVuIGNhbGxlZAorICAgICMgd2FudCBmdW5jYXJncyBhbmQgcmVxdWVzdCBpbmZvIHRvIGdvIGF3
YXkKKyAgICBpZiBoYXNyZXF1ZXN0OgorICAgICAgICBpdGVtLl9yZXF1ZXN0ID0gRmFsc2UKKyAg
ICAgICAgaXRlbS5mdW5jYXJncyA9IE5vbmUKKyAgICByZXR1cm4gcmVwb3J0cworCisKK2RlZiBz
aG93X3Rlc3RfaXRlbShpdGVtKToKKyAgICAiIiJTaG93IHRlc3QgZnVuY3Rpb24sIHBhcmFtZXRl
cnMgYW5kIHRoZSBmaXh0dXJlcyBvZiB0aGUgdGVzdCBpdGVtLiIiIgorICAgIHR3ID0gaXRlbS5j
b25maWcuZ2V0X3Rlcm1pbmFsX3dyaXRlcigpCisgICAgdHcubGluZSgpCisgICAgdHcud3JpdGUo
JyAnICogOCkKKyAgICB0dy53cml0ZShpdGVtLl9ub2RlaWQpCisgICAgdXNlZF9maXh0dXJlcyA9
IHNvcnRlZChpdGVtLl9maXh0dXJlaW5mby5uYW1lMmZpeHR1cmVkZWZzLmtleXMoKSkKKyAgICBp
ZiB1c2VkX2ZpeHR1cmVzOgorICAgICAgICB0dy53cml0ZSgnIChmaXh0dXJlcyB1c2VkOiB7MH0p
Jy5mb3JtYXQoJywgJy5qb2luKHVzZWRfZml4dHVyZXMpKSkKKworCitkZWYgcHl0ZXN0X3J1bnRl
c3Rfc2V0dXAoaXRlbSk6CisgICAgX3VwZGF0ZV9jdXJyZW50X3Rlc3RfdmFyKGl0ZW0sICdzZXR1
cCcpCisgICAgaXRlbS5zZXNzaW9uLl9zZXR1cHN0YXRlLnByZXBhcmUoaXRlbSkKKworCitkZWYg
cHl0ZXN0X3J1bnRlc3RfY2FsbChpdGVtKToKKyAgICBfdXBkYXRlX2N1cnJlbnRfdGVzdF92YXIo
aXRlbSwgJ2NhbGwnKQorICAgIHRyeToKKyAgICAgICAgaXRlbS5ydW50ZXN0KCkKKyAgICBleGNl
cHQgRXhjZXB0aW9uOgorICAgICAgICAjIFN0b3JlIHRyYWNlIGluZm8gdG8gYWxsb3cgcG9zdG1v
cnRlbSBkZWJ1Z2dpbmcKKyAgICAgICAgdHlwZSwgdmFsdWUsIHRiID0gc3lzLmV4Y19pbmZvKCkK
KyAgICAgICAgdGIgPSB0Yi50Yl9uZXh0ICAjIFNraXAgKnRoaXMqIGZyYW1lCisgICAgICAgIHN5
cy5sYXN0X3R5cGUgPSB0eXBlCisgICAgICAgIHN5cy5sYXN0X3ZhbHVlID0gdmFsdWUKKyAgICAg
ICAgc3lzLmxhc3RfdHJhY2ViYWNrID0gdGIKKyAgICAgICAgZGVsIHRiICAjIEdldCByaWQgb2Yg
aXQgaW4gdGhpcyBuYW1lc3BhY2UKKyAgICAgICAgcmFpc2UKKworCitkZWYgcHl0ZXN0X3J1bnRl
c3RfdGVhcmRvd24oaXRlbSwgbmV4dGl0ZW0pOgorICAgIF91cGRhdGVfY3VycmVudF90ZXN0X3Zh
cihpdGVtLCAndGVhcmRvd24nKQorICAgIGl0ZW0uc2Vzc2lvbi5fc2V0dXBzdGF0ZS50ZWFyZG93
bl9leGFjdChpdGVtLCBuZXh0aXRlbSkKKyAgICBfdXBkYXRlX2N1cnJlbnRfdGVzdF92YXIoaXRl
bSwgTm9uZSkKKworCitkZWYgX3VwZGF0ZV9jdXJyZW50X3Rlc3RfdmFyKGl0ZW0sIHdoZW4pOgor
ICAgICIiIgorICAgIFVwZGF0ZSBQWVRFU1RfQ1VSUkVOVF9URVNUIHRvIHJlZmxlY3QgdGhlIGN1
cnJlbnQgaXRlbSBhbmQgc3RhZ2UuCisKKyAgICBJZiBgYHdoZW5gYCBpcyBOb25lLCBkZWxldGUg
UFlURVNUX0NVUlJFTlRfVEVTVCBmcm9tIHRoZSBlbnZpcm9ubWVudC4KKyAgICAiIiIKKyAgICB2
YXJfbmFtZSA9ICdQWVRFU1RfQ1VSUkVOVF9URVNUJworICAgIGlmIHdoZW46CisgICAgICAgIHZh
bHVlID0gJ3swfSAoezF9KScuZm9ybWF0KGl0ZW0ubm9kZWlkLCB3aGVuKQorICAgICAgICAjIGRv
bid0IGFsbG93IG51bGwgYnl0ZXMgb24gZW52aXJvbm1lbnQgdmFyaWFibGVzIChzZWUgIzI2NDQs
ICMyOTU3KQorICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoJ1x4MDAnLCAnKG51bGwpJykK
KyAgICAgICAgb3MuZW52aXJvblt2YXJfbmFtZV0gPSB2YWx1ZQorICAgIGVsc2U6CisgICAgICAg
IG9zLmVudmlyb24ucG9wKHZhcl9uYW1lKQorCisKK2RlZiBweXRlc3RfcmVwb3J0X3Rlc3RzdGF0
dXMocmVwb3J0KToKKyAgICBpZiByZXBvcnQud2hlbiBpbiAoInNldHVwIiwgInRlYXJkb3duIik6
CisgICAgICAgIGlmIHJlcG9ydC5mYWlsZWQ6CisgICAgICAgICAgICAjICAgICAgY2F0ZWdvcnks
IHNob3J0bGV0dGVyLCB2ZXJib3NlLXdvcmQKKyAgICAgICAgICAgIHJldHVybiAiZXJyb3IiLCAi
RSIsICJFUlJPUiIKKyAgICAgICAgZWxpZiByZXBvcnQuc2tpcHBlZDoKKyAgICAgICAgICAgIHJl
dHVybiAic2tpcHBlZCIsICJzIiwgIlNLSVBQRUQiCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICByZXR1cm4gIiIsICIiLCAiIgorCisKKyMKKyMgSW1wbGVtZW50YXRpb24KKworZGVmIGNhbGxf
YW5kX3JlcG9ydChpdGVtLCB3aGVuLCBsb2c9VHJ1ZSwgKiprd2RzKToKKyAgICBjYWxsID0gY2Fs
bF9ydW50ZXN0X2hvb2soaXRlbSwgd2hlbiwgKiprd2RzKQorICAgIGhvb2sgPSBpdGVtLmlob29r
CisgICAgcmVwb3J0ID0gaG9vay5weXRlc3RfcnVudGVzdF9tYWtlcmVwb3J0KGl0ZW09aXRlbSwg
Y2FsbD1jYWxsKQorICAgIGlmIGxvZzoKKyAgICAgICAgaG9vay5weXRlc3RfcnVudGVzdF9sb2dy
ZXBvcnQocmVwb3J0PXJlcG9ydCkKKyAgICBpZiBjaGVja19pbnRlcmFjdGl2ZV9leGNlcHRpb24o
Y2FsbCwgcmVwb3J0KToKKyAgICAgICAgaG9vay5weXRlc3RfZXhjZXB0aW9uX2ludGVyYWN0KG5v
ZGU9aXRlbSwgY2FsbD1jYWxsLCByZXBvcnQ9cmVwb3J0KQorICAgIHJldHVybiByZXBvcnQKKwor
CitkZWYgY2hlY2tfaW50ZXJhY3RpdmVfZXhjZXB0aW9uKGNhbGwsIHJlcG9ydCk6CisgICAgcmV0
dXJuIGNhbGwuZXhjaW5mbyBhbmQgbm90ICgKKyAgICAgICAgaGFzYXR0cihyZXBvcnQsICJ3YXN4
ZmFpbCIpIG9yCisgICAgICAgIGNhbGwuZXhjaW5mby5lcnJpc2luc3RhbmNlKHNraXAuRXhjZXB0
aW9uKSBvcgorICAgICAgICBjYWxsLmV4Y2luZm8uZXJyaXNpbnN0YW5jZShiZGIuQmRiUXVpdCkp
CisKKworZGVmIGNhbGxfcnVudGVzdF9ob29rKGl0ZW0sIHdoZW4sICoqa3dkcyk6CisgICAgaG9v
a25hbWUgPSAicHl0ZXN0X3J1bnRlc3RfIiArIHdoZW4KKyAgICBpaG9vayA9IGdldGF0dHIoaXRl
bS5paG9vaywgaG9va25hbWUpCisgICAgcmV0dXJuIENhbGxJbmZvKGxhbWJkYTogaWhvb2soaXRl
bT1pdGVtLCAqKmt3ZHMpLCB3aGVuPXdoZW4pCisKKworY2xhc3MgQ2FsbEluZm86CisgICAgIiIi
IFJlc3VsdC9FeGNlcHRpb24gaW5mbyBhIGZ1bmN0aW9uIGludm9jYXRpb24uICIiIgorICAgICM6
IE5vbmUgb3IgRXhjZXB0aW9uSW5mbyBvYmplY3QuCisgICAgZXhjaW5mbyA9IE5vbmUKKworICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBmdW5jLCB3aGVuKToKKyAgICAgICAgIzogY29udGV4dCBvZiBp
bnZvY2F0aW9uOiBvbmUgb2YgInNldHVwIiwgImNhbGwiLAorICAgICAgICAjOiAidGVhcmRvd24i
LCAibWVtb2NvbGxlY3QiCisgICAgICAgIHNlbGYud2hlbiA9IHdoZW4KKyAgICAgICAgc2VsZi5z
dGFydCA9IHRpbWUoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IGZ1
bmMoKQorICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CisgICAgICAgICAgICBzZWxm
LnN0b3AgPSB0aW1lKCkKKyAgICAgICAgICAgIHJhaXNlCisgICAgICAgIGV4Y2VwdDogICMgbm9x
YQorICAgICAgICAgICAgc2VsZi5leGNpbmZvID0gRXhjZXB0aW9uSW5mbygpCisgICAgICAgIHNl
bGYuc3RvcCA9IHRpbWUoKQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICBpZiBz
ZWxmLmV4Y2luZm86CisgICAgICAgICAgICBzdGF0dXMgPSAiZXhjZXB0aW9uOiAlcyIgJSBzdHIo
c2VsZi5leGNpbmZvLnZhbHVlKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc3RhdHVzID0g
InJlc3VsdDogJXIiICUgKHNlbGYucmVzdWx0LCkKKyAgICAgICAgcmV0dXJuICI8Q2FsbEluZm8g
d2hlbj0lciAlcz4iICUgKHNlbGYud2hlbiwgc3RhdHVzKQorCisKK2RlZiBnZXRzbGF2ZWluZm9s
aW5lKG5vZGUpOgorICAgIHRyeToKKyAgICAgICAgcmV0dXJuIG5vZGUuX3NsYXZlaW5mb2NhY2hl
CisgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICBkID0gbm9kZS5zbGF2ZWluZm8K
KyAgICAgICAgdmVyID0gIiVzLiVzLiVzIiAlIGRbJ3ZlcnNpb25faW5mbyddWzozXQorICAgICAg
ICBub2RlLl9zbGF2ZWluZm9jYWNoZSA9IHMgPSAiWyVzXSAlcyAtLSBQeXRob24gJXMgJXMiICUg
KAorICAgICAgICAgICAgZFsnaWQnXSwgZFsnc3lzcGxhdGZvcm0nXSwgdmVyLCBkWydleGVjdXRh
YmxlJ10pCisgICAgICAgIHJldHVybiBzCisKKworY2xhc3MgQmFzZVJlcG9ydChvYmplY3QpOgor
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3cpOgorICAgICAgICBzZWxmLl9fZGljdF9fLnVw
ZGF0ZShrdykKKworICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIG91dCk6CisgICAgICAgIGlmIGhh
c2F0dHIoc2VsZiwgJ25vZGUnKToKKyAgICAgICAgICAgIG91dC5saW5lKGdldHNsYXZlaW5mb2xp
bmUoc2VsZi5ub2RlKSkKKworICAgICAgICBsb25ncmVwciA9IHNlbGYubG9uZ3JlcHIKKyAgICAg
ICAgaWYgbG9uZ3JlcHIgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIGlm
IGhhc2F0dHIobG9uZ3JlcHIsICd0b3Rlcm1pbmFsJyk6CisgICAgICAgICAgICBsb25ncmVwci50
b3Rlcm1pbmFsKG91dCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAg
ICAgICAgICBvdXQubGluZShsb25ncmVwcikKKyAgICAgICAgICAgIGV4Y2VwdCBVbmljb2RlRW5j
b2RlRXJyb3I6CisgICAgICAgICAgICAgICAgb3V0LmxpbmUoIjx1bnByaW50YWJsZSBsb25ncmVw
cj4iKQorCisgICAgZGVmIGdldF9zZWN0aW9ucyhzZWxmLCBwcmVmaXgpOgorICAgICAgICBmb3Ig
bmFtZSwgY29udGVudCBpbiBzZWxmLnNlY3Rpb25zOgorICAgICAgICAgICAgaWYgbmFtZS5zdGFy
dHN3aXRoKHByZWZpeCk6CisgICAgICAgICAgICAgICAgeWllbGQgcHJlZml4LCBjb250ZW50CisK
KyAgICBAcHJvcGVydHkKKyAgICBkZWYgbG9uZ3JlcHJ0ZXh0KHNlbGYpOgorICAgICAgICAiIiIK
KyAgICAgICAgUmVhZC1vbmx5IHByb3BlcnR5IHRoYXQgcmV0dXJucyB0aGUgZnVsbCBzdHJpbmcg
cmVwcmVzZW50YXRpb24KKyAgICAgICAgb2YgYGBsb25ncmVwcmBgLgorCisgICAgICAgIC4uIHZl
cnNpb25hZGRlZDo6IDMuMAorICAgICAgICAiIiIKKyAgICAgICAgdHcgPSBweS5pby5UZXJtaW5h
bFdyaXRlcihzdHJpbmdpbz1UcnVlKQorICAgICAgICB0dy5oYXNtYXJrdXAgPSBGYWxzZQorICAg
ICAgICBzZWxmLnRvdGVybWluYWwodHcpCisgICAgICAgIGV4YyA9IHR3LnN0cmluZ2lvLmdldHZh
bHVlKCkKKyAgICAgICAgcmV0dXJuIGV4Yy5zdHJpcCgpCisKKyAgICBAcHJvcGVydHkKKyAgICBk
ZWYgY2Fwc3Rkb3V0KHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gY2FwdHVyZWQgdGV4dCBmcm9t
IHN0ZG91dCwgaWYgY2FwdHVyaW5nIGlzIGVuYWJsZWQKKworICAgICAgICAuLiB2ZXJzaW9uYWRk
ZWQ6OiAzLjAKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiAnJy5qb2luKGNvbnRlbnQgZm9y
IChwcmVmaXgsIGNvbnRlbnQpIGluIHNlbGYuZ2V0X3NlY3Rpb25zKCdDYXB0dXJlZCBzdGRvdXQn
KSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBjYXBzdGRlcnIoc2VsZik6CisgICAgICAgICIi
IlJldHVybiBjYXB0dXJlZCB0ZXh0IGZyb20gc3RkZXJyLCBpZiBjYXB0dXJpbmcgaXMgZW5hYmxl
ZAorCisgICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMAorICAgICAgICAiIiIKKyAgICAgICAg
cmV0dXJuICcnLmpvaW4oY29udGVudCBmb3IgKHByZWZpeCwgY29udGVudCkgaW4gc2VsZi5nZXRf
c2VjdGlvbnMoJ0NhcHR1cmVkIHN0ZGVycicpKQorCisgICAgcGFzc2VkID0gcHJvcGVydHkobGFt
YmRhIHg6IHgub3V0Y29tZSA9PSAicGFzc2VkIikKKyAgICBmYWlsZWQgPSBwcm9wZXJ0eShsYW1i
ZGEgeDogeC5vdXRjb21lID09ICJmYWlsZWQiKQorICAgIHNraXBwZWQgPSBwcm9wZXJ0eShsYW1i
ZGEgeDogeC5vdXRjb21lID09ICJza2lwcGVkIikKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBm
c3BhdGgoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLm5vZGVpZC5zcGxpdCgiOjoiKVswXQor
CisKK2RlZiBweXRlc3RfcnVudGVzdF9tYWtlcmVwb3J0KGl0ZW0sIGNhbGwpOgorICAgIHdoZW4g
PSBjYWxsLndoZW4KKyAgICBkdXJhdGlvbiA9IGNhbGwuc3RvcCAtIGNhbGwuc3RhcnQKKyAgICBr
ZXl3b3JkcyA9IGRpY3QoWyh4LCAxKSBmb3IgeCBpbiBpdGVtLmtleXdvcmRzXSkKKyAgICBleGNp
bmZvID0gY2FsbC5leGNpbmZvCisgICAgc2VjdGlvbnMgPSBbXQorICAgIGlmIG5vdCBjYWxsLmV4
Y2luZm86CisgICAgICAgIG91dGNvbWUgPSAicGFzc2VkIgorICAgICAgICBsb25ncmVwciA9IE5v
bmUKKyAgICBlbHNlOgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShleGNpbmZvLCBFeGNlcHRp
b25JbmZvKToKKyAgICAgICAgICAgIG91dGNvbWUgPSAiZmFpbGVkIgorICAgICAgICAgICAgbG9u
Z3JlcHIgPSBleGNpbmZvCisgICAgICAgIGVsaWYgZXhjaW5mby5lcnJpc2luc3RhbmNlKHNraXAu
RXhjZXB0aW9uKToKKyAgICAgICAgICAgIG91dGNvbWUgPSAic2tpcHBlZCIKKyAgICAgICAgICAg
IHIgPSBleGNpbmZvLl9nZXRyZXByY3Jhc2goKQorICAgICAgICAgICAgbG9uZ3JlcHIgPSAoc3Ry
KHIucGF0aCksIHIubGluZW5vLCByLm1lc3NhZ2UpCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICBvdXRjb21lID0gImZhaWxlZCIKKyAgICAgICAgICAgIGlmIGNhbGwud2hlbiA9PSAiY2FsbCI6
CisgICAgICAgICAgICAgICAgbG9uZ3JlcHIgPSBpdGVtLnJlcHJfZmFpbHVyZShleGNpbmZvKQor
ICAgICAgICAgICAgZWxzZTogICMgZXhjZXB0aW9uIGluIHNldHVwIG9yIHRlYXJkb3duCisgICAg
ICAgICAgICAgICAgbG9uZ3JlcHIgPSBpdGVtLl9yZXByX2ZhaWx1cmVfcHkoZXhjaW5mbywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1pdGVt
LmNvbmZpZy5vcHRpb24udGJzdHlsZSkKKyAgICBmb3IgcndoZW4sIGtleSwgY29udGVudCBpbiBp
dGVtLl9yZXBvcnRfc2VjdGlvbnM6CisgICAgICAgIHNlY3Rpb25zLmFwcGVuZCgoIkNhcHR1cmVk
ICVzICVzIiAlIChrZXksIHJ3aGVuKSwgY29udGVudCkpCisgICAgcmV0dXJuIFRlc3RSZXBvcnQo
aXRlbS5ub2RlaWQsIGl0ZW0ubG9jYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAga2V5d29y
ZHMsIG91dGNvbWUsIGxvbmdyZXByLCB3aGVuLAorICAgICAgICAgICAgICAgICAgICAgIHNlY3Rp
b25zLCBkdXJhdGlvbikKKworCitjbGFzcyBUZXN0UmVwb3J0KEJhc2VSZXBvcnQpOgorICAgICIi
IiBCYXNpYyB0ZXN0IHJlcG9ydCBvYmplY3QgKGFsc28gdXNlZCBmb3Igc2V0dXAgYW5kIHRlYXJk
b3duIGNhbGxzIGlmCisgICAgdGhleSBmYWlsKS4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBub2RlaWQsIGxvY2F0aW9uLCBrZXl3b3Jkcywgb3V0Y29tZSwKKyAgICAgICAgICAg
ICAgICAgbG9uZ3JlcHIsIHdoZW4sIHNlY3Rpb25zPSgpLCBkdXJhdGlvbj0wLCAqKmV4dHJhKToK
KyAgICAgICAgIzogbm9ybWFsaXplZCBjb2xsZWN0aW9uIG5vZGUgaWQKKyAgICAgICAgc2VsZi5u
b2RlaWQgPSBub2RlaWQKKworICAgICAgICAjOiBhIChmaWxlc3lzdGVtcGF0aCwgbGluZW5vLCBk
b21haW5pbmZvKSB0dXBsZSBpbmRpY2F0aW5nIHRoZQorICAgICAgICAjOiBhY3R1YWwgbG9jYXRp
b24gb2YgYSB0ZXN0IGl0ZW0gLSBpdCBtaWdodCBiZSBkaWZmZXJlbnQgZnJvbSB0aGUKKyAgICAg
ICAgIzogY29sbGVjdGVkIG9uZSBlLmcuIGlmIGEgbWV0aG9kIGlzIGluaGVyaXRlZCBmcm9tIGEg
ZGlmZmVyZW50IG1vZHVsZS4KKyAgICAgICAgc2VsZi5sb2NhdGlvbiA9IGxvY2F0aW9uCisKKyAg
ICAgICAgIzogYSBuYW1lIC0+IHZhbHVlIGRpY3Rpb25hcnkgY29udGFpbmluZyBhbGwga2V5d29y
ZHMgYW5kCisgICAgICAgICM6IG1hcmtlcnMgYXNzb2NpYXRlZCB3aXRoIGEgdGVzdCBpbnZvY2F0
aW9uLgorICAgICAgICBzZWxmLmtleXdvcmRzID0ga2V5d29yZHMKKworICAgICAgICAjOiB0ZXN0
IG91dGNvbWUsIGFsd2F5cyBvbmUgb2YgInBhc3NlZCIsICJmYWlsZWQiLCAic2tpcHBlZCIuCisg
ICAgICAgIHNlbGYub3V0Y29tZSA9IG91dGNvbWUKKworICAgICAgICAjOiBOb25lIG9yIGEgZmFp
bHVyZSByZXByZXNlbnRhdGlvbi4KKyAgICAgICAgc2VsZi5sb25ncmVwciA9IGxvbmdyZXByCisK
KyAgICAgICAgIzogb25lIG9mICdzZXR1cCcsICdjYWxsJywgJ3RlYXJkb3duJyB0byBpbmRpY2F0
ZSBydW50ZXN0IHBoYXNlLgorICAgICAgICBzZWxmLndoZW4gPSB3aGVuCisKKyAgICAgICAgIzog
bGlzdCBvZiBwYWlycyBgYChzdHIsIHN0cilgYCBvZiBleHRyYSBpbmZvcm1hdGlvbiB3aGljaCBu
ZWVkcyB0bworICAgICAgICAjOiBtYXJzaGFsbGFibGUuIFVzZWQgYnkgcHl0ZXN0IHRvIGFkZCBj
YXB0dXJlZCB0ZXh0CisgICAgICAgICM6IGZyb20gYGBzdGRvdXRgYCBhbmQgYGBzdGRlcnJgYCwg
YnV0IG1heSBiZSB1c2VkIGJ5IG90aGVyIHBsdWdpbnMKKyAgICAgICAgIzogdG8gYWRkIGFyYml0
cmFyeSBpbmZvcm1hdGlvbiB0byByZXBvcnRzLgorICAgICAgICBzZWxmLnNlY3Rpb25zID0gbGlz
dChzZWN0aW9ucykKKworICAgICAgICAjOiB0aW1lIGl0IHRvb2sgdG8gcnVuIGp1c3QgdGhlIHRl
c3QKKyAgICAgICAgc2VsZi5kdXJhdGlvbiA9IGR1cmF0aW9uCisKKyAgICAgICAgc2VsZi5fX2Rp
Y3RfXy51cGRhdGUoZXh0cmEpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJl
dHVybiAiPFRlc3RSZXBvcnQgJXIgd2hlbj0lciBvdXRjb21lPSVyPiIgJSAoCisgICAgICAgICAg
ICBzZWxmLm5vZGVpZCwgc2VsZi53aGVuLCBzZWxmLm91dGNvbWUpCisKKworY2xhc3MgVGVhcmRv
d25FcnJvclJlcG9ydChCYXNlUmVwb3J0KToKKyAgICBvdXRjb21lID0gImZhaWxlZCIKKyAgICB3
aGVuID0gInRlYXJkb3duIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvbmdyZXByLCAqKmV4
dHJhKToKKyAgICAgICAgc2VsZi5sb25ncmVwciA9IGxvbmdyZXByCisgICAgICAgIHNlbGYuc2Vj
dGlvbnMgPSBbXQorICAgICAgICBzZWxmLl9fZGljdF9fLnVwZGF0ZShleHRyYSkKKworCitkZWYg
cHl0ZXN0X21ha2VfY29sbGVjdF9yZXBvcnQoY29sbGVjdG9yKToKKyAgICBjYWxsID0gQ2FsbElu
Zm8oCisgICAgICAgIGxhbWJkYTogbGlzdChjb2xsZWN0b3IuY29sbGVjdCgpKSwKKyAgICAgICAg
J2NvbGxlY3QnKQorICAgIGxvbmdyZXByID0gTm9uZQorICAgIGlmIG5vdCBjYWxsLmV4Y2luZm86
CisgICAgICAgIG91dGNvbWUgPSAicGFzc2VkIgorICAgIGVsc2U6CisgICAgICAgIGZyb20gX3B5
dGVzdCBpbXBvcnQgbm9zZQorICAgICAgICBza2lwX2V4Y2VwdGlvbnMgPSAoU2tpcHBlZCwpICsg
bm9zZS5nZXRfc2tpcF9leGNlcHRpb25zKCkKKyAgICAgICAgaWYgY2FsbC5leGNpbmZvLmVycmlz
aW5zdGFuY2Uoc2tpcF9leGNlcHRpb25zKToKKyAgICAgICAgICAgIG91dGNvbWUgPSAic2tpcHBl
ZCIKKyAgICAgICAgICAgIHIgPSBjb2xsZWN0b3IuX3JlcHJfZmFpbHVyZV9weShjYWxsLmV4Y2lu
Zm8sICJsaW5lIikucmVwcmNyYXNoCisgICAgICAgICAgICBsb25ncmVwciA9IChzdHIoci5wYXRo
KSwgci5saW5lbm8sIHIubWVzc2FnZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG91dGNv
bWUgPSAiZmFpbGVkIgorICAgICAgICAgICAgZXJyb3JpbmZvID0gY29sbGVjdG9yLnJlcHJfZmFp
bHVyZShjYWxsLmV4Y2luZm8pCisgICAgICAgICAgICBpZiBub3QgaGFzYXR0cihlcnJvcmluZm8s
ICJ0b3Rlcm1pbmFsIik6CisgICAgICAgICAgICAgICAgZXJyb3JpbmZvID0gQ29sbGVjdEVycm9y
UmVwcihlcnJvcmluZm8pCisgICAgICAgICAgICBsb25ncmVwciA9IGVycm9yaW5mbworICAgIHJl
cCA9IENvbGxlY3RSZXBvcnQoY29sbGVjdG9yLm5vZGVpZCwgb3V0Y29tZSwgbG9uZ3JlcHIsCisg
ICAgICAgICAgICAgICAgICAgICAgICBnZXRhdHRyKGNhbGwsICdyZXN1bHQnLCBOb25lKSkKKyAg
ICByZXAuY2FsbCA9IGNhbGwgICMgc2VlIGNvbGxlY3Rfb25lX25vZGUKKyAgICByZXR1cm4gcmVw
CisKKworY2xhc3MgQ29sbGVjdFJlcG9ydChCYXNlUmVwb3J0KToKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgbm9kZWlkLCBvdXRjb21lLCBsb25ncmVwciwgcmVzdWx0LAorICAgICAgICAgICAgICAg
ICBzZWN0aW9ucz0oKSwgKipleHRyYSk6CisgICAgICAgIHNlbGYubm9kZWlkID0gbm9kZWlkCisg
ICAgICAgIHNlbGYub3V0Y29tZSA9IG91dGNvbWUKKyAgICAgICAgc2VsZi5sb25ncmVwciA9IGxv
bmdyZXByCisgICAgICAgIHNlbGYucmVzdWx0ID0gcmVzdWx0IG9yIFtdCisgICAgICAgIHNlbGYu
c2VjdGlvbnMgPSBsaXN0KHNlY3Rpb25zKQorICAgICAgICBzZWxmLl9fZGljdF9fLnVwZGF0ZShl
eHRyYSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBsb2NhdGlvbihzZWxmKToKKyAgICAgICAg
cmV0dXJuIChzZWxmLmZzcGF0aCwgTm9uZSwgc2VsZi5mc3BhdGgpCisKKyAgICBkZWYgX19yZXBy
X18oc2VsZik6CisgICAgICAgIHJldHVybiAiPENvbGxlY3RSZXBvcnQgJXIgbGVucmVzdWx0PSVz
IG91dGNvbWU9JXI+IiAlICgKKyAgICAgICAgICAgIHNlbGYubm9kZWlkLCBsZW4oc2VsZi5yZXN1
bHQpLCBzZWxmLm91dGNvbWUpCisKKworY2xhc3MgQ29sbGVjdEVycm9yUmVwcihUZXJtaW5hbFJl
cHIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtc2cpOgorICAgICAgICBzZWxmLmxvbmdyZXBy
ID0gbXNnCisKKyAgICBkZWYgdG90ZXJtaW5hbChzZWxmLCBvdXQpOgorICAgICAgICBvdXQubGlu
ZShzZWxmLmxvbmdyZXByLCByZWQ9VHJ1ZSkKKworCitjbGFzcyBTZXR1cFN0YXRlKG9iamVjdCk6
CisgICAgIiIiIHNoYXJlZCBzdGF0ZSBmb3Igc2V0dGluZyB1cC90ZWFyaW5nIGRvd24gdGVzdCBp
dGVtcyBvciBjb2xsZWN0b3JzLiAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAg
ICAgc2VsZi5zdGFjayA9IFtdCisgICAgICAgIHNlbGYuX2ZpbmFsaXplcnMgPSB7fQorCisgICAg
ZGVmIGFkZGZpbmFsaXplcihzZWxmLCBmaW5hbGl6ZXIsIGNvbGl0ZW0pOgorICAgICAgICAiIiIg
YXR0YWNoIGEgZmluYWxpemVyIHRvIHRoZSBnaXZlbiBjb2xpdGVtLgorICAgICAgICBpZiBjb2xp
dGVtIGlzIE5vbmUsIHRoaXMgd2lsbCBhZGQgYSBmaW5hbGl6ZXIgdGhhdAorICAgICAgICBpcyBj
YWxsZWQgYXQgdGhlIGVuZCBvZiB0ZWFyZG93bl9hbGwoKS4KKyAgICAgICAgIiIiCisgICAgICAg
IGFzc2VydCBjb2xpdGVtIGFuZCBub3QgaXNpbnN0YW5jZShjb2xpdGVtLCB0dXBsZSkKKyAgICAg
ICAgYXNzZXJ0IGNhbGxhYmxlKGZpbmFsaXplcikKKyAgICAgICAgIyBhc3NlcnQgY29saXRlbSBp
biBzZWxmLnN0YWNrICAjIHNvbWUgdW5pdCB0ZXN0cyBkb24ndCBzZXR1cCBzdGFjayA6LworICAg
ICAgICBzZWxmLl9maW5hbGl6ZXJzLnNldGRlZmF1bHQoY29saXRlbSwgW10pLmFwcGVuZChmaW5h
bGl6ZXIpCisKKyAgICBkZWYgX3BvcF9hbmRfdGVhcmRvd24oc2VsZik6CisgICAgICAgIGNvbGl0
ZW0gPSBzZWxmLnN0YWNrLnBvcCgpCisgICAgICAgIHNlbGYuX3RlYXJkb3duX3dpdGhfZmluYWxp
emF0aW9uKGNvbGl0ZW0pCisKKyAgICBkZWYgX2NhbGxmaW5hbGl6ZXJzKHNlbGYsIGNvbGl0ZW0p
OgorICAgICAgICBmaW5hbGl6ZXJzID0gc2VsZi5fZmluYWxpemVycy5wb3AoY29saXRlbSwgTm9u
ZSkKKyAgICAgICAgZXhjID0gTm9uZQorICAgICAgICB3aGlsZSBmaW5hbGl6ZXJzOgorICAgICAg
ICAgICAgZmluID0gZmluYWxpemVycy5wb3AoKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgICAgIGZpbigpCisgICAgICAgICAgICBleGNlcHQgVEVTVF9PVVRDT01FOgorICAgICAgICAg
ICAgICAgICMgWFhYIE9ubHkgZmlyc3QgZXhjZXB0aW9uIHdpbGwgYmUgc2VlbiBieSB1c2VyLAor
ICAgICAgICAgICAgICAgICMgICAgIGlkZWFsbHkgYWxsIHNob3VsZCBiZSByZXBvcnRlZC4KKyAg
ICAgICAgICAgICAgICBpZiBleGMgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgZXhjID0g
c3lzLmV4Y19pbmZvKCkKKyAgICAgICAgaWYgZXhjOgorICAgICAgICAgICAgcHkuYnVpbHRpbi5f
cmVyYWlzZSgqZXhjKQorCisgICAgZGVmIF90ZWFyZG93bl93aXRoX2ZpbmFsaXphdGlvbihzZWxm
LCBjb2xpdGVtKToKKyAgICAgICAgc2VsZi5fY2FsbGZpbmFsaXplcnMoY29saXRlbSkKKyAgICAg
ICAgaWYgaGFzYXR0cihjb2xpdGVtLCAidGVhcmRvd24iKToKKyAgICAgICAgICAgIGNvbGl0ZW0u
dGVhcmRvd24oKQorICAgICAgICBmb3IgY29saXRlbSBpbiBzZWxmLl9maW5hbGl6ZXJzOgorICAg
ICAgICAgICAgYXNzZXJ0IGNvbGl0ZW0gaXMgTm9uZSBvciBjb2xpdGVtIGluIHNlbGYuc3RhY2sg
XAorICAgICAgICAgICAgICAgIG9yIGlzaW5zdGFuY2UoY29saXRlbSwgdHVwbGUpCisKKyAgICBk
ZWYgdGVhcmRvd25fYWxsKHNlbGYpOgorICAgICAgICB3aGlsZSBzZWxmLnN0YWNrOgorICAgICAg
ICAgICAgc2VsZi5fcG9wX2FuZF90ZWFyZG93bigpCisgICAgICAgIGZvciBrZXkgaW4gbGlzdChz
ZWxmLl9maW5hbGl6ZXJzKToKKyAgICAgICAgICAgIHNlbGYuX3RlYXJkb3duX3dpdGhfZmluYWxp
emF0aW9uKGtleSkKKyAgICAgICAgYXNzZXJ0IG5vdCBzZWxmLl9maW5hbGl6ZXJzCisKKyAgICBk
ZWYgdGVhcmRvd25fZXhhY3Qoc2VsZiwgaXRlbSwgbmV4dGl0ZW0pOgorICAgICAgICBuZWVkZWRf
Y29sbGVjdG9ycyA9IG5leHRpdGVtIGFuZCBuZXh0aXRlbS5saXN0Y2hhaW4oKSBvciBbXQorICAg
ICAgICBzZWxmLl90ZWFyZG93bl90b3dhcmRzKG5lZWRlZF9jb2xsZWN0b3JzKQorCisgICAgZGVm
IF90ZWFyZG93bl90b3dhcmRzKHNlbGYsIG5lZWRlZF9jb2xsZWN0b3JzKToKKyAgICAgICAgd2hp
bGUgc2VsZi5zdGFjazoKKyAgICAgICAgICAgIGlmIHNlbGYuc3RhY2sgPT0gbmVlZGVkX2NvbGxl
Y3RvcnNbOmxlbihzZWxmLnN0YWNrKV06CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAg
ICAgIHNlbGYuX3BvcF9hbmRfdGVhcmRvd24oKQorCisgICAgZGVmIHByZXBhcmUoc2VsZiwgY29s
aXRlbSk6CisgICAgICAgICIiIiBzZXR1cCBvYmplY3RzIGFsb25nIHRoZSBjb2xsZWN0b3IgY2hh
aW4gdG8gdGhlIHRlc3QtbWV0aG9kCisgICAgICAgICAgICBhbmQgdGVhcmRvd24gcHJldmlvdXNs
eSBzZXR1cCBvYmplY3RzLiIiIgorICAgICAgICBuZWVkZWRfY29sbGVjdG9ycyA9IGNvbGl0ZW0u
bGlzdGNoYWluKCkKKyAgICAgICAgc2VsZi5fdGVhcmRvd25fdG93YXJkcyhuZWVkZWRfY29sbGVj
dG9ycykKKworICAgICAgICAjIGNoZWNrIGlmIHRoZSBsYXN0IGNvbGxlY3Rpb24gbm9kZSBoYXMg
cmFpc2VkIGFuIGVycm9yCisgICAgICAgIGZvciBjb2wgaW4gc2VsZi5zdGFjazoKKyAgICAgICAg
ICAgIGlmIGhhc2F0dHIoY29sLCAnX3ByZXBhcmVfZXhjJyk6CisgICAgICAgICAgICAgICAgcHku
YnVpbHRpbi5fcmVyYWlzZSgqY29sLl9wcmVwYXJlX2V4YykKKyAgICAgICAgZm9yIGNvbCBpbiBu
ZWVkZWRfY29sbGVjdG9yc1tsZW4oc2VsZi5zdGFjayk6XToKKyAgICAgICAgICAgIHNlbGYuc3Rh
Y2suYXBwZW5kKGNvbCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBjb2wuc2V0
dXAoKQorICAgICAgICAgICAgZXhjZXB0IFRFU1RfT1VUQ09NRToKKyAgICAgICAgICAgICAgICBj
b2wuX3ByZXBhcmVfZXhjID0gc3lzLmV4Y19pbmZvKCkKKyAgICAgICAgICAgICAgICByYWlzZQor
CisKK2RlZiBjb2xsZWN0X29uZV9ub2RlKGNvbGxlY3Rvcik6CisgICAgaWhvb2sgPSBjb2xsZWN0
b3IuaWhvb2sKKyAgICBpaG9vay5weXRlc3RfY29sbGVjdHN0YXJ0KGNvbGxlY3Rvcj1jb2xsZWN0
b3IpCisgICAgcmVwID0gaWhvb2sucHl0ZXN0X21ha2VfY29sbGVjdF9yZXBvcnQoY29sbGVjdG9y
PWNvbGxlY3RvcikKKyAgICBjYWxsID0gcmVwLl9fZGljdF9fLnBvcCgiY2FsbCIsIE5vbmUpCisg
ICAgaWYgY2FsbCBhbmQgY2hlY2tfaW50ZXJhY3RpdmVfZXhjZXB0aW9uKGNhbGwsIHJlcCk6Cisg
ICAgICAgIGlob29rLnB5dGVzdF9leGNlcHRpb25faW50ZXJhY3Qobm9kZT1jb2xsZWN0b3IsIGNh
bGw9Y2FsbCwgcmVwb3J0PXJlcCkKKyAgICByZXR1cm4gcmVwCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9fcHl0ZXN0L3NldHVwb25seS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvc2V0dXBvbmx5
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmExYzc0NTdkN2U1MDZjMDdiN2MxNzVlYjhjOTQ3MGViNjFiNWZkN2EK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3NldHVwb25seS5weQpAQCAt
MCwwICsxLDc0IEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2
aXNpb24sIHByaW50X2Z1bmN0aW9uCisKK2ltcG9ydCBweXRlc3QKK2ltcG9ydCBzeXMKKworCitk
ZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgorICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3Vw
KCJkZWJ1Z2NvbmZpZyIpCisgICAgZ3JvdXAuYWRkb3B0aW9uKCctLXNldHVwb25seScsICctLXNl
dHVwLW9ubHknLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAgICAgICBoZWxw
PSJvbmx5IHNldHVwIGZpeHR1cmVzLCBkbyBub3QgZXhlY3V0ZSB0ZXN0cy4iKQorICAgIGdyb3Vw
LmFkZG9wdGlvbignLS1zZXR1cHNob3cnLCAnLS1zZXR1cC1zaG93JywgYWN0aW9uPSJzdG9yZV90
cnVlIiwKKyAgICAgICAgICAgICAgICAgICAgaGVscD0ic2hvdyBzZXR1cCBvZiBmaXh0dXJlcyB3
aGlsZSBleGVjdXRpbmcgdGVzdHMuIikKKworCitAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVy
PVRydWUpCitkZWYgcHl0ZXN0X2ZpeHR1cmVfc2V0dXAoZml4dHVyZWRlZiwgcmVxdWVzdCk6Cisg
ICAgeWllbGQKKyAgICBjb25maWcgPSByZXF1ZXN0LmNvbmZpZworICAgIGlmIGNvbmZpZy5vcHRp
b24uc2V0dXBzaG93OgorICAgICAgICBpZiBoYXNhdHRyKHJlcXVlc3QsICdwYXJhbScpOgorICAg
ICAgICAgICAgIyBTYXZlIHRoZSBmaXh0dXJlIHBhcmFtZXRlciBzbyAuX3Nob3dfZml4dHVyZV9h
Y3Rpb24oKSBjYW4KKyAgICAgICAgICAgICMgZGlzcGxheSBpdCBub3cgYW5kIGR1cmluZyB0aGUg
dGVhcmRvd24gKGluIC5maW5pc2goKSkuCisgICAgICAgICAgICBpZiBmaXh0dXJlZGVmLmlkczoK
KyAgICAgICAgICAgICAgICBpZiBjYWxsYWJsZShmaXh0dXJlZGVmLmlkcyk6CisgICAgICAgICAg
ICAgICAgICAgIGZpeHR1cmVkZWYuY2FjaGVkX3BhcmFtID0gZml4dHVyZWRlZi5pZHMocmVxdWVz
dC5wYXJhbSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBmaXh0
dXJlZGVmLmNhY2hlZF9wYXJhbSA9IGZpeHR1cmVkZWYuaWRzWworICAgICAgICAgICAgICAgICAg
ICAgICAgcmVxdWVzdC5wYXJhbV9pbmRleF0KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgZml4dHVyZWRlZi5jYWNoZWRfcGFyYW0gPSByZXF1ZXN0LnBhcmFtCisgICAgICAgIF9z
aG93X2ZpeHR1cmVfYWN0aW9uKGZpeHR1cmVkZWYsICdTRVRVUCcpCisKKworZGVmIHB5dGVzdF9m
aXh0dXJlX3Bvc3RfZmluYWxpemVyKGZpeHR1cmVkZWYpOgorICAgIGlmIGhhc2F0dHIoZml4dHVy
ZWRlZiwgImNhY2hlZF9yZXN1bHQiKToKKyAgICAgICAgY29uZmlnID0gZml4dHVyZWRlZi5fZml4
dHVyZW1hbmFnZXIuY29uZmlnCisgICAgICAgIGlmIGNvbmZpZy5vcHRpb24uc2V0dXBzaG93Ogor
ICAgICAgICAgICAgX3Nob3dfZml4dHVyZV9hY3Rpb24oZml4dHVyZWRlZiwgJ1RFQVJET1dOJykK
KyAgICAgICAgICAgIGlmIGhhc2F0dHIoZml4dHVyZWRlZiwgImNhY2hlZF9wYXJhbSIpOgorICAg
ICAgICAgICAgICAgIGRlbCBmaXh0dXJlZGVmLmNhY2hlZF9wYXJhbQorCisKK2RlZiBfc2hvd19m
aXh0dXJlX2FjdGlvbihmaXh0dXJlZGVmLCBtc2cpOgorICAgIGNvbmZpZyA9IGZpeHR1cmVkZWYu
X2ZpeHR1cmVtYW5hZ2VyLmNvbmZpZworICAgIGNhcG1hbiA9IGNvbmZpZy5wbHVnaW5tYW5hZ2Vy
LmdldHBsdWdpbignY2FwdHVyZW1hbmFnZXInKQorICAgIGlmIGNhcG1hbjoKKyAgICAgICAgb3V0
LCBlcnIgPSBjYXBtYW4uc3VzcGVuZF9nbG9iYWxfY2FwdHVyZSgpCisKKyAgICB0dyA9IGNvbmZp
Zy5nZXRfdGVybWluYWxfd3JpdGVyKCkKKyAgICB0dy5saW5lKCkKKyAgICB0dy53cml0ZSgnICcg
KiAyICogZml4dHVyZWRlZi5zY29wZW51bSkKKyAgICB0dy53cml0ZSgne3N0ZXB9IHtzY29wZX0g
e2ZpeHR1cmV9Jy5mb3JtYXQoCisgICAgICAgIHN0ZXA9bXNnLmxqdXN0KDgpLCAgIyBhbGlnbiB0
aGUgb3V0cHV0IHRvIFRFQVJET1dOCisgICAgICAgIHNjb3BlPWZpeHR1cmVkZWYuc2NvcGVbMF0u
dXBwZXIoKSwKKyAgICAgICAgZml4dHVyZT1maXh0dXJlZGVmLmFyZ25hbWUpKQorCisgICAgaWYg
bXNnID09ICdTRVRVUCc6CisgICAgICAgIGRlcHMgPSBzb3J0ZWQoYXJnIGZvciBhcmcgaW4gZml4
dHVyZWRlZi5hcmduYW1lcyBpZiBhcmcgIT0gJ3JlcXVlc3QnKQorICAgICAgICBpZiBkZXBzOgor
ICAgICAgICAgICAgdHcud3JpdGUoJyAoZml4dHVyZXMgdXNlZDogezB9KScuZm9ybWF0KCcsICcu
am9pbihkZXBzKSkpCisKKyAgICBpZiBoYXNhdHRyKGZpeHR1cmVkZWYsICdjYWNoZWRfcGFyYW0n
KToKKyAgICAgICAgdHcud3JpdGUoJ1t7MH1dJy5mb3JtYXQoZml4dHVyZWRlZi5jYWNoZWRfcGFy
YW0pKQorCisgICAgaWYgY2FwbWFuOgorICAgICAgICBjYXBtYW4ucmVzdW1lX2dsb2JhbF9jYXB0
dXJlKCkKKyAgICAgICAgc3lzLnN0ZG91dC53cml0ZShvdXQpCisgICAgICAgIHN5cy5zdGRlcnIu
d3JpdGUoZXJyKQorCisKK0BweXRlc3QuaG9va2ltcGwodHJ5Zmlyc3Q9VHJ1ZSkKK2RlZiBweXRl
c3RfY21kbGluZV9tYWluKGNvbmZpZyk6CisgICAgaWYgY29uZmlnLm9wdGlvbi5zZXR1cG9ubHk6
CisgICAgICAgIGNvbmZpZy5vcHRpb24uc2V0dXBzaG93ID0gVHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvX3B5dGVzdC9zZXR1cHBsYW4ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3NldHVw
cGxhbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lMTFiZDQwNjk4Yjc3MmIwNmEzNzI5N2NmYzM0ZTBhNzhiZDEx
NjQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9zZXR1cHBsYW4ucHkK
QEAgLTAsMCArMSwyNSBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQs
IGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQgcHl0ZXN0CisKKworZGVmIHB5dGVz
dF9hZGRvcHRpb24ocGFyc2VyKToKKyAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgiZGVidWdj
b25maWciKQorICAgIGdyb3VwLmFkZG9wdGlvbignLS1zZXR1cHBsYW4nLCAnLS1zZXR1cC1wbGFu
JywgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgICAgICAgICAgaGVscD0ic2hvdyB3
aGF0IGZpeHR1cmVzIGFuZCB0ZXN0cyB3b3VsZCBiZSBleGVjdXRlZCBidXQgIgorICAgICAgICAg
ICAgICAgICAgICAiZG9uJ3QgZXhlY3V0ZSBhbnl0aGluZy4iKQorCisKK0BweXRlc3QuaG9va2lt
cGwodHJ5Zmlyc3Q9VHJ1ZSkKK2RlZiBweXRlc3RfZml4dHVyZV9zZXR1cChmaXh0dXJlZGVmLCBy
ZXF1ZXN0KToKKyAgICAjIFdpbGwgcmV0dXJuIGEgZHVtbXkgZml4dHVyZSBpZiB0aGUgc2V0dXBv
bmx5IG9wdGlvbiBpcyBwcm92aWRlZC4KKyAgICBpZiByZXF1ZXN0LmNvbmZpZy5vcHRpb24uc2V0
dXBwbGFuOgorICAgICAgICBmaXh0dXJlZGVmLmNhY2hlZF9yZXN1bHQgPSAoTm9uZSwgTm9uZSwg
Tm9uZSkKKyAgICAgICAgcmV0dXJuIGZpeHR1cmVkZWYuY2FjaGVkX3Jlc3VsdAorCisKK0BweXRl
c3QuaG9va2ltcGwodHJ5Zmlyc3Q9VHJ1ZSkKK2RlZiBweXRlc3RfY21kbGluZV9tYWluKGNvbmZp
Zyk6CisgICAgaWYgY29uZmlnLm9wdGlvbi5zZXR1cHBsYW46CisgICAgICAgIGNvbmZpZy5vcHRp
b24uc2V0dXBvbmx5ID0gVHJ1ZQorICAgICAgICBjb25maWcub3B0aW9uLnNldHVwc2hvdyA9IFRy
dWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvc2tpcHBpbmcucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9fcHl0ZXN0L3NraXBwaW5nLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExZTViNDM4MDBiNTRmOGM4YTI5
MDU0MGIxM2RhM2EwMjgyMGQ3ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0
ZXN0L3NraXBwaW5nLnB5CkBAIC0wLDAgKzEsMzk3IEBACisiIiIgc3VwcG9ydCBmb3Igc2tpcC94
ZmFpbCBmdW5jdGlvbnMgYW5kIG1hcmtlcnMuICIiIgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBh
YnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQgb3MKK2lt
cG9ydCBzaXgKK2ltcG9ydCBzeXMKK2ltcG9ydCB0cmFjZWJhY2sKKworZnJvbSBfcHl0ZXN0LmNv
bmZpZyBpbXBvcnQgaG9va2ltcGwKK2Zyb20gX3B5dGVzdC5tYXJrIGltcG9ydCBNYXJrSW5mbywg
TWFya0RlY29yYXRvcgorZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBmYWlsLCBza2lwLCB4
ZmFpbCwgVEVTVF9PVVRDT01FCisKKworZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKKyAg
ICBncm91cCA9IHBhcnNlci5nZXRncm91cCgiZ2VuZXJhbCIpCisgICAgZ3JvdXAuYWRkb3B0aW9u
KCctLXJ1bnhmYWlsJywKKyAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwg
ZGVzdD0icnVueGZhaWwiLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICBoZWxw
PSJydW4gdGVzdHMgZXZlbiBpZiB0aGV5IGFyZSBtYXJrZWQgeGZhaWwiKQorCisgICAgcGFyc2Vy
LmFkZGluaSgieGZhaWxfc3RyaWN0IiwgImRlZmF1bHQgZm9yIHRoZSBzdHJpY3QgcGFyYW1ldGVy
IG9mIHhmYWlsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWFya2VycyB3
aGVuIG5vdCBnaXZlbiBleHBsaWNpdGx5IChkZWZhdWx0OiAiCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIkZhbHNlKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBl
PSJib29sIikKKworCitkZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgorICAgIGlmIGNvbmZp
Zy5vcHRpb24ucnVueGZhaWw6CisgICAgICAgICMgeWF5IGEgaGFjaworICAgICAgICBpbXBvcnQg
cHl0ZXN0CisgICAgICAgIG9sZCA9IHB5dGVzdC54ZmFpbAorICAgICAgICBjb25maWcuX2NsZWFu
dXAuYXBwZW5kKGxhbWJkYTogc2V0YXR0cihweXRlc3QsICJ4ZmFpbCIsIG9sZCkpCisKKyAgICAg
ICAgZGVmIG5vcCgqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAg
IG5vcC5FeGNlcHRpb24gPSB4ZmFpbC5FeGNlcHRpb24KKyAgICAgICAgc2V0YXR0cihweXRlc3Qs
ICJ4ZmFpbCIsIG5vcCkKKworICAgIGNvbmZpZy5hZGRpbml2YWx1ZV9saW5lKCJtYXJrZXJzIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2tpcChyZWFzb249Tm9uZSk6IHNraXAgdGhl
IGdpdmVuIHRlc3QgZnVuY3Rpb24gd2l0aCBhbiBvcHRpb25hbCByZWFzb24uICIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiRXhhbXBsZTogc2tpcChyZWFzb249XCJubyB3YXkgb2YgY3Vy
cmVudGx5IHRlc3RpbmcgdGhpc1wiKSBza2lwcyB0aGUgIgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJ0ZXN0LiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgY29uZmln
LmFkZGluaXZhbHVlX2xpbmUoIm1hcmtlcnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJza2lwaWYoY29uZGl0aW9uKTogc2tpcCB0aGUgZ2l2ZW4gdGVzdCBmdW5jdGlvbiBpZiBldmFs
KGNvbmRpdGlvbikgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZXN1bHRzIGluIGEg
VHJ1ZSB2YWx1ZS4gIEV2YWx1YXRpb24gaGFwcGVucyB3aXRoaW4gdGhlICIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAibW9kdWxlIGdsb2JhbCBjb250ZXh0LiBFeGFtcGxlOiBza2lwaWYo
J3N5cy5wbGF0Zm9ybSA9PSBcIndpbjMyXCInKSAiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInNraXBzIHRoZSB0ZXN0IGlmIHdlIGFyZSBvbiB0aGUgd2luMzIgcGxhdGZvcm0uIHNlZSAi
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly9weXRlc3Qub3JnL2xhdGVzdC9z
a2lwcGluZy5odG1sIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICBjb25maWcu
YWRkaW5pdmFsdWVfbGluZSgibWFya2VycyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InhmYWlsKGNvbmRpdGlvbiwgcmVhc29uPU5vbmUsIHJ1bj1UcnVlLCByYWlzZXM9Tm9uZSwgc3Ry
aWN0PUZhbHNlKTogIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtYXJrIHRoZSB0ZXN0
IGZ1bmN0aW9uIGFzIGFuIGV4cGVjdGVkIGZhaWx1cmUgaWYgZXZhbChjb25kaXRpb24pICIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiaGFzIGEgVHJ1ZSB2YWx1ZS4gT3B0aW9uYWxseSBz
cGVjaWZ5IGEgcmVhc29uIGZvciBiZXR0ZXIgcmVwb3J0aW5nICIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiYW5kIHJ1bj1GYWxzZSBpZiB5b3UgZG9uJ3QgZXZlbiB3YW50IHRvIGV4ZWN1
dGUgdGhlIHRlc3QgZnVuY3Rpb24uICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSWYg
b25seSBzcGVjaWZpYyBleGNlcHRpb24ocykgYXJlIGV4cGVjdGVkLCB5b3UgY2FuIGxpc3QgdGhl
bSBpbiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJhaXNlcywgYW5kIGlmIHRoZSB0
ZXN0IGZhaWxzIGluIG90aGVyIHdheXMsIGl0IHdpbGwgYmUgcmVwb3J0ZWQgYXMgIgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJhIHRydWUgZmFpbHVyZS4gU2VlIGh0dHA6Ly9weXRlc3Qu
b3JnL2xhdGVzdC9za2lwcGluZy5odG1sIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICkK
KworCitjbGFzcyBNYXJrRXZhbHVhdG9yKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IGl0ZW0sIG5hbWUpOgorICAgICAgICBzZWxmLml0ZW0gPSBpdGVtCisgICAgICAgIHNlbGYuX21h
cmtzID0gTm9uZQorICAgICAgICBzZWxmLl9tYXJrID0gTm9uZQorICAgICAgICBzZWxmLl9tYXJr
X25hbWUgPSBuYW1lCisKKyAgICBkZWYgX19ib29sX18oc2VsZik6CisgICAgICAgIHNlbGYuX21h
cmtzID0gc2VsZi5fZ2V0X21hcmtzKCkKKyAgICAgICAgcmV0dXJuIGJvb2woc2VsZi5fbWFya3Mp
CisgICAgX19ub256ZXJvX18gPSBfX2Jvb2xfXworCisgICAgZGVmIHdhc3ZhbGlkKHNlbGYpOgor
ICAgICAgICByZXR1cm4gbm90IGhhc2F0dHIoc2VsZiwgJ2V4YycpCisKKyAgICBkZWYgX2dldF9t
YXJrcyhzZWxmKToKKworICAgICAgICBrZXl3b3JkID0gc2VsZi5pdGVtLmtleXdvcmRzLmdldChz
ZWxmLl9tYXJrX25hbWUpCisgICAgICAgIGlmIGlzaW5zdGFuY2Uoa2V5d29yZCwgTWFya0RlY29y
YXRvcik6CisgICAgICAgICAgICByZXR1cm4gW2tleXdvcmQubWFya10KKyAgICAgICAgZWxpZiBp
c2luc3RhbmNlKGtleXdvcmQsIE1hcmtJbmZvKToKKyAgICAgICAgICAgIHJldHVybiBbeC5jb21i
aW5lZCBmb3IgeCBpbiBrZXl3b3JkXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJu
IFtdCisKKyAgICBkZWYgaW52YWxpZHJhaXNlKHNlbGYsIGV4Yyk6CisgICAgICAgIHJhaXNlcyA9
IHNlbGYuZ2V0KCdyYWlzZXMnKQorICAgICAgICBpZiBub3QgcmFpc2VzOgorICAgICAgICAgICAg
cmV0dXJuCisgICAgICAgIHJldHVybiBub3QgaXNpbnN0YW5jZShleGMsIHJhaXNlcykKKworICAg
IGRlZiBpc3RydWUoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxm
Ll9pc3RydWUoKQorICAgICAgICBleGNlcHQgVEVTVF9PVVRDT01FOgorICAgICAgICAgICAgc2Vs
Zi5leGMgPSBzeXMuZXhjX2luZm8oKQorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLmV4
Y1sxXSwgU3ludGF4RXJyb3IpOgorICAgICAgICAgICAgICAgIG1zZyA9IFsiICIgKiAoc2VsZi5l
eGNbMV0ub2Zmc2V0ICsgNCkgKyAiXiIsIF0KKyAgICAgICAgICAgICAgICBtc2cuYXBwZW5kKCJT
eW50YXhFcnJvcjogaW52YWxpZCBzeW50YXgiKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgICAgICBtc2cgPSB0cmFjZWJhY2suZm9ybWF0X2V4Y2VwdGlvbl9vbmx5KCpzZWxmLmV4Y1s6
Ml0pCisgICAgICAgICAgICBmYWlsKCJFcnJvciBldmFsdWF0aW5nICVyIGV4cHJlc3Npb25cbiIK
KyAgICAgICAgICAgICAgICAgIiAgICAlc1xuIgorICAgICAgICAgICAgICAgICAiJXMiCisgICAg
ICAgICAgICAgICAgICUgKHNlbGYuX21hcmtfbmFtZSwgc2VsZi5leHByLCAiXG4iLmpvaW4obXNn
KSksCisgICAgICAgICAgICAgICAgIHB5dHJhY2U9RmFsc2UpCisKKyAgICBkZWYgX2dldGdsb2Jh
bHMoc2VsZik6CisgICAgICAgIGQgPSB7J29zJzogb3MsICdzeXMnOiBzeXMsICdjb25maWcnOiBz
ZWxmLml0ZW0uY29uZmlnfQorICAgICAgICBpZiBoYXNhdHRyKHNlbGYuaXRlbSwgJ29iaicpOgor
ICAgICAgICAgICAgZC51cGRhdGUoc2VsZi5pdGVtLm9iai5fX2dsb2JhbHNfXykKKyAgICAgICAg
cmV0dXJuIGQKKworICAgIGRlZiBfaXN0cnVlKHNlbGYpOgorICAgICAgICBpZiBoYXNhdHRyKHNl
bGYsICdyZXN1bHQnKToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnJlc3VsdAorICAgICAgICBz
ZWxmLl9tYXJrcyA9IHNlbGYuX2dldF9tYXJrcygpCisKKyAgICAgICAgaWYgc2VsZi5fbWFya3M6
CisgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNlCisgICAgICAgICAgICBmb3IgbWFyayBp
biBzZWxmLl9tYXJrczoKKyAgICAgICAgICAgICAgICBzZWxmLl9tYXJrID0gbWFyaworICAgICAg
ICAgICAgICAgIGlmICdjb25kaXRpb24nIGluIG1hcmsua3dhcmdzOgorICAgICAgICAgICAgICAg
ICAgICBhcmdzID0gKG1hcmsua3dhcmdzWydjb25kaXRpb24nXSwpCisgICAgICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICAgICAgYXJncyA9IG1hcmsuYXJncworCisgICAgICAgICAg
ICAgICAgZm9yIGV4cHIgaW4gYXJnczoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5leHByID0g
ZXhwcgorICAgICAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGV4cHIsIHNpeC5zdHJpbmdf
dHlwZXMpOgorICAgICAgICAgICAgICAgICAgICAgICAgZCA9IHNlbGYuX2dldGdsb2JhbHMoKQor
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gY2FjaGVkX2V2YWwoc2VsZi5pdGVtLmNv
bmZpZywgZXhwciwgZCkKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICJyZWFzb24iIG5vdCBpbiBtYXJrLmt3YXJnczoKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAjIFhYWCBiZXR0ZXIgYmUgY2hlY2tlZCBhdCBjb2xsZWN0aW9uIHRpbWUK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSAieW91IG5lZWQgdG8gc3BlY2lmeSBy
ZWFzb249U1RSSU5HICIgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aGVu
IHVzaW5nIGJvb2xlYW5zIGFzIGNvbmRpdGlvbnMuIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZhaWwobXNnKQorICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gYm9vbChleHBy
KQorICAgICAgICAgICAgICAgICAgICBpZiByZXN1bHQ6CisgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLnJlc3VsdCA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmVhc29u
ID0gbWFyay5rd2FyZ3MuZ2V0KCdyZWFzb24nLCBOb25lKQorICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5leHByID0gZXhwcgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYu
cmVzdWx0CisKKyAgICAgICAgICAgICAgICBpZiBub3QgYXJnczoKKyAgICAgICAgICAgICAgICAg
ICAgc2VsZi5yZXN1bHQgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgIHNlbGYucmVhc29uID0g
bWFyay5rd2FyZ3MuZ2V0KCdyZWFzb24nLCBOb25lKQorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gc2VsZi5yZXN1bHQKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgZ2V0KHNlbGYs
IGF0dHIsIGRlZmF1bHQ9Tm9uZSk6CisgICAgICAgIGlmIHNlbGYuX21hcmsgaXMgTm9uZToKKyAg
ICAgICAgICAgIHJldHVybiBkZWZhdWx0CisgICAgICAgIHJldHVybiBzZWxmLl9tYXJrLmt3YXJn
cy5nZXQoYXR0ciwgZGVmYXVsdCkKKworICAgIGRlZiBnZXRleHBsYW5hdGlvbihzZWxmKToKKyAg
ICAgICAgZXhwbCA9IGdldGF0dHIoc2VsZiwgJ3JlYXNvbicsIE5vbmUpIG9yIHNlbGYuZ2V0KCdy
ZWFzb24nLCBOb25lKQorICAgICAgICBpZiBub3QgZXhwbDoKKyAgICAgICAgICAgIGlmIG5vdCBo
YXNhdHRyKHNlbGYsICdleHByJyk6CisgICAgICAgICAgICAgICAgcmV0dXJuICIiCisgICAgICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiAiY29uZGl0aW9uOiAiICsgc3RyKHNl
bGYuZXhwcikKKyAgICAgICAgcmV0dXJuIGV4cGwKKworCitAaG9va2ltcGwodHJ5Zmlyc3Q9VHJ1
ZSkKK2RlZiBweXRlc3RfcnVudGVzdF9zZXR1cChpdGVtKToKKyAgICAjIENoZWNrIGlmIHNraXAg
b3Igc2tpcGlmIGFyZSBzcGVjaWZpZWQgYXMgcHl0ZXN0IG1hcmtzCisgICAgaXRlbS5fc2tpcHBl
ZF9ieV9tYXJrID0gRmFsc2UKKyAgICBza2lwaWZfaW5mbyA9IGl0ZW0ua2V5d29yZHMuZ2V0KCdz
a2lwaWYnKQorICAgIGlmIGlzaW5zdGFuY2Uoc2tpcGlmX2luZm8sIChNYXJrSW5mbywgTWFya0Rl
Y29yYXRvcikpOgorICAgICAgICBldmFsX3NraXBpZiA9IE1hcmtFdmFsdWF0b3IoaXRlbSwgJ3Nr
aXBpZicpCisgICAgICAgIGlmIGV2YWxfc2tpcGlmLmlzdHJ1ZSgpOgorICAgICAgICAgICAgaXRl
bS5fc2tpcHBlZF9ieV9tYXJrID0gVHJ1ZQorICAgICAgICAgICAgc2tpcChldmFsX3NraXBpZi5n
ZXRleHBsYW5hdGlvbigpKQorCisgICAgc2tpcF9pbmZvID0gaXRlbS5rZXl3b3Jkcy5nZXQoJ3Nr
aXAnKQorICAgIGlmIGlzaW5zdGFuY2Uoc2tpcF9pbmZvLCAoTWFya0luZm8sIE1hcmtEZWNvcmF0
b3IpKToKKyAgICAgICAgaXRlbS5fc2tpcHBlZF9ieV9tYXJrID0gVHJ1ZQorICAgICAgICBpZiAn
cmVhc29uJyBpbiBza2lwX2luZm8ua3dhcmdzOgorICAgICAgICAgICAgc2tpcChza2lwX2luZm8u
a3dhcmdzWydyZWFzb24nXSkKKyAgICAgICAgZWxpZiBza2lwX2luZm8uYXJnczoKKyAgICAgICAg
ICAgIHNraXAoc2tpcF9pbmZvLmFyZ3NbMF0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBz
a2lwKCJ1bmNvbmRpdGlvbmFsIHNraXAiKQorCisgICAgaXRlbS5fZXZhbHhmYWlsID0gTWFya0V2
YWx1YXRvcihpdGVtLCAneGZhaWwnKQorICAgIGNoZWNrX3hmYWlsX25vX3J1bihpdGVtKQorCisK
K0Bob29raW1wbChob29rd3JhcHBlcj1UcnVlKQorZGVmIHB5dGVzdF9weWZ1bmNfY2FsbChweWZ1
bmNpdGVtKToKKyAgICBjaGVja194ZmFpbF9ub19ydW4ocHlmdW5jaXRlbSkKKyAgICBvdXRjb21l
ID0geWllbGQKKyAgICBwYXNzZWQgPSBvdXRjb21lLmV4Y2luZm8gaXMgTm9uZQorICAgIGlmIHBh
c3NlZDoKKyAgICAgICAgY2hlY2tfc3RyaWN0X3hmYWlsKHB5ZnVuY2l0ZW0pCisKKworZGVmIGNo
ZWNrX3hmYWlsX25vX3J1bihpdGVtKToKKyAgICAiIiJjaGVjayB4ZmFpbChydW49RmFsc2UpIiIi
CisgICAgaWYgbm90IGl0ZW0uY29uZmlnLm9wdGlvbi5ydW54ZmFpbDoKKyAgICAgICAgZXZhbHhm
YWlsID0gaXRlbS5fZXZhbHhmYWlsCisgICAgICAgIGlmIGV2YWx4ZmFpbC5pc3RydWUoKToKKyAg
ICAgICAgICAgIGlmIG5vdCBldmFseGZhaWwuZ2V0KCdydW4nLCBUcnVlKToKKyAgICAgICAgICAg
ICAgICB4ZmFpbCgiW05PVFJVTl0gIiArIGV2YWx4ZmFpbC5nZXRleHBsYW5hdGlvbigpKQorCisK
K2RlZiBjaGVja19zdHJpY3RfeGZhaWwocHlmdW5jaXRlbSk6CisgICAgIiIiY2hlY2sgeGZhaWwo
c3RyaWN0PVRydWUpIGZvciB0aGUgZ2l2ZW4gUEFTU0lORyB0ZXN0IiIiCisgICAgZXZhbHhmYWls
ID0gcHlmdW5jaXRlbS5fZXZhbHhmYWlsCisgICAgaWYgZXZhbHhmYWlsLmlzdHJ1ZSgpOgorICAg
ICAgICBzdHJpY3RfZGVmYXVsdCA9IHB5ZnVuY2l0ZW0uY29uZmlnLmdldGluaSgneGZhaWxfc3Ry
aWN0JykKKyAgICAgICAgaXNfc3RyaWN0X3hmYWlsID0gZXZhbHhmYWlsLmdldCgnc3RyaWN0Jywg
c3RyaWN0X2RlZmF1bHQpCisgICAgICAgIGlmIGlzX3N0cmljdF94ZmFpbDoKKyAgICAgICAgICAg
IGRlbCBweWZ1bmNpdGVtLl9ldmFseGZhaWwKKyAgICAgICAgICAgIGV4cGxhbmF0aW9uID0gZXZh
bHhmYWlsLmdldGV4cGxhbmF0aW9uKCkKKyAgICAgICAgICAgIGZhaWwoJ1tYUEFTUyhzdHJpY3Qp
XSAnICsgZXhwbGFuYXRpb24sIHB5dHJhY2U9RmFsc2UpCisKKworQGhvb2tpbXBsKGhvb2t3cmFw
cGVyPVRydWUpCitkZWYgcHl0ZXN0X3J1bnRlc3RfbWFrZXJlcG9ydChpdGVtLCBjYWxsKToKKyAg
ICBvdXRjb21lID0geWllbGQKKyAgICByZXAgPSBvdXRjb21lLmdldF9yZXN1bHQoKQorICAgIGV2
YWx4ZmFpbCA9IGdldGF0dHIoaXRlbSwgJ19ldmFseGZhaWwnLCBOb25lKQorICAgICMgdW5pdHR0
ZXN0IHNwZWNpYWwgY2FzZSwgc2VlIHNldHRpbmcgb2YgX3VuZXhwZWN0ZWRzdWNjZXNzCisgICAg
aWYgaGFzYXR0cihpdGVtLCAnX3VuZXhwZWN0ZWRzdWNjZXNzJykgYW5kIHJlcC53aGVuID09ICJj
YWxsIjoKKyAgICAgICAgZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgX2lzX3VuaXR0ZXN0X3Vu
ZXhwZWN0ZWRfc3VjY2Vzc19hX2ZhaWx1cmUKKyAgICAgICAgaWYgaXRlbS5fdW5leHBlY3RlZHN1
Y2Nlc3M6CisgICAgICAgICAgICByZXAubG9uZ3JlcHIgPSAiVW5leHBlY3RlZCBzdWNjZXNzOiB7
MH0iLmZvcm1hdChpdGVtLl91bmV4cGVjdGVkc3VjY2VzcykKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIHJlcC5sb25ncmVwciA9ICJVbmV4cGVjdGVkIHN1Y2Nlc3MiCisgICAgICAgIGlmIF9p
c191bml0dGVzdF91bmV4cGVjdGVkX3N1Y2Nlc3NfYV9mYWlsdXJlKCk6CisgICAgICAgICAgICBy
ZXAub3V0Y29tZSA9ICJmYWlsZWQiCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXAub3V0
Y29tZSA9ICJwYXNzZWQiCisgICAgICAgICAgICByZXAud2FzeGZhaWwgPSByZXAubG9uZ3JlcHIK
KyAgICBlbGlmIGl0ZW0uY29uZmlnLm9wdGlvbi5ydW54ZmFpbDoKKyAgICAgICAgcGFzcyAgICMg
ZG9uJ3QgaW50ZXJlZmVyZQorICAgIGVsaWYgY2FsbC5leGNpbmZvIGFuZCBjYWxsLmV4Y2luZm8u
ZXJyaXNpbnN0YW5jZSh4ZmFpbC5FeGNlcHRpb24pOgorICAgICAgICByZXAud2FzeGZhaWwgPSAi
cmVhc29uOiAiICsgY2FsbC5leGNpbmZvLnZhbHVlLm1zZworICAgICAgICByZXAub3V0Y29tZSA9
ICJza2lwcGVkIgorICAgIGVsaWYgZXZhbHhmYWlsIGFuZCBub3QgcmVwLnNraXBwZWQgYW5kIGV2
YWx4ZmFpbC53YXN2YWxpZCgpIGFuZCBcCisgICAgICAgICAgICBldmFseGZhaWwuaXN0cnVlKCk6
CisgICAgICAgIGlmIGNhbGwuZXhjaW5mbzoKKyAgICAgICAgICAgIGlmIGV2YWx4ZmFpbC5pbnZh
bGlkcmFpc2UoY2FsbC5leGNpbmZvLnZhbHVlKToKKyAgICAgICAgICAgICAgICByZXAub3V0Y29t
ZSA9ICJmYWlsZWQiCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJlcC5vdXRj
b21lID0gInNraXBwZWQiCisgICAgICAgICAgICAgICAgcmVwLndhc3hmYWlsID0gZXZhbHhmYWls
LmdldGV4cGxhbmF0aW9uKCkKKyAgICAgICAgZWxpZiBjYWxsLndoZW4gPT0gImNhbGwiOgorICAg
ICAgICAgICAgc3RyaWN0X2RlZmF1bHQgPSBpdGVtLmNvbmZpZy5nZXRpbmkoJ3hmYWlsX3N0cmlj
dCcpCisgICAgICAgICAgICBpc19zdHJpY3RfeGZhaWwgPSBldmFseGZhaWwuZ2V0KCdzdHJpY3Qn
LCBzdHJpY3RfZGVmYXVsdCkKKyAgICAgICAgICAgIGV4cGxhbmF0aW9uID0gZXZhbHhmYWlsLmdl
dGV4cGxhbmF0aW9uKCkKKyAgICAgICAgICAgIGlmIGlzX3N0cmljdF94ZmFpbDoKKyAgICAgICAg
ICAgICAgICByZXAub3V0Y29tZSA9ICJmYWlsZWQiCisgICAgICAgICAgICAgICAgcmVwLmxvbmdy
ZXByID0gIltYUEFTUyhzdHJpY3QpXSB7MH0iLmZvcm1hdChleHBsYW5hdGlvbikKKyAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmVwLm91dGNvbWUgPSAicGFzc2VkIgorICAgICAg
ICAgICAgICAgIHJlcC53YXN4ZmFpbCA9IGV4cGxhbmF0aW9uCisgICAgZWxpZiBpdGVtLl9za2lw
cGVkX2J5X21hcmsgYW5kIHJlcC5za2lwcGVkIGFuZCB0eXBlKHJlcC5sb25ncmVwcikgaXMgdHVw
bGU6CisgICAgICAgICMgc2tpcHBlZCBieSBtYXJrLnNraXBpZjsgY2hhbmdlIHRoZSBsb2NhdGlv
biBvZiB0aGUgZmFpbHVyZQorICAgICAgICAjIHRvIHBvaW50IHRvIHRoZSBpdGVtIGRlZmluaXRp
b24sIG90aGVyd2lzZSBpdCB3aWxsIGRpc3BsYXkKKyAgICAgICAgIyB0aGUgbG9jYXRpb24gb2Yg
d2hlcmUgdGhlIHNraXAgZXhjZXB0aW9uIHdhcyByYWlzZWQgd2l0aGluIHB5dGVzdAorICAgICAg
ICBmaWxlbmFtZSwgbGluZSwgcmVhc29uID0gcmVwLmxvbmdyZXByCisgICAgICAgIGZpbGVuYW1l
LCBsaW5lID0gaXRlbS5sb2NhdGlvbls6Ml0KKyAgICAgICAgcmVwLmxvbmdyZXByID0gZmlsZW5h
bWUsIGxpbmUsIHJlYXNvbgorCisjIGNhbGxlZCBieSB0ZXJtaW5hbHJlcG9ydGVyIHByb2dyZXNz
IHJlcG9ydGluZworCisKK2RlZiBweXRlc3RfcmVwb3J0X3Rlc3RzdGF0dXMocmVwb3J0KToKKyAg
ICBpZiBoYXNhdHRyKHJlcG9ydCwgIndhc3hmYWlsIik6CisgICAgICAgIGlmIHJlcG9ydC5za2lw
cGVkOgorICAgICAgICAgICAgcmV0dXJuICJ4ZmFpbGVkIiwgIngiLCAieGZhaWwiCisgICAgICAg
IGVsaWYgcmVwb3J0LnBhc3NlZDoKKyAgICAgICAgICAgIHJldHVybiAieHBhc3NlZCIsICJYIiwg
KCJYUEFTUyIsIHsneWVsbG93JzogVHJ1ZX0pCisKKyMgY2FsbGVkIGJ5IHRoZSB0ZXJtaW5hbHJl
cG9ydGVyIGluc3RhbmNlL3BsdWdpbgorCisKK2RlZiBweXRlc3RfdGVybWluYWxfc3VtbWFyeSh0
ZXJtaW5hbHJlcG9ydGVyKToKKyAgICB0ciA9IHRlcm1pbmFscmVwb3J0ZXIKKyAgICBpZiBub3Qg
dHIucmVwb3J0Y2hhcnM6CisgICAgICAgICMgZm9yIG5hbWUgaW4gInhmYWlsZWQgc2tpcHBlZCBm
YWlsZWQgeHBhc3NlZCI6CisgICAgICAgICMgICAgaWYgbm90IHRyLnN0YXRzLmdldChuYW1lLCAw
KToKKyAgICAgICAgIyAgICAgICAgdHIud3JpdGVfbGluZSgiSElOVDogdXNlICctcicgb3B0aW9u
IHRvIHNlZSBleHRyYSAiCisgICAgICAgICMgICAgICAgICAgICAgICJzdW1tYXJ5IGluZm8gYWJv
dXQgdGVzdHMiKQorICAgICAgICAjICAgICAgICBicmVhaworICAgICAgICByZXR1cm4KKworICAg
IGxpbmVzID0gW10KKyAgICBmb3IgY2hhciBpbiB0ci5yZXBvcnRjaGFyczoKKyAgICAgICAgaWYg
Y2hhciA9PSAieCI6CisgICAgICAgICAgICBzaG93X3hmYWlsZWQodGVybWluYWxyZXBvcnRlciwg
bGluZXMpCisgICAgICAgIGVsaWYgY2hhciA9PSAiWCI6CisgICAgICAgICAgICBzaG93X3hwYXNz
ZWQodGVybWluYWxyZXBvcnRlciwgbGluZXMpCisgICAgICAgIGVsaWYgY2hhciBpbiAiZkYiOgor
ICAgICAgICAgICAgc2hvd19zaW1wbGUodGVybWluYWxyZXBvcnRlciwgbGluZXMsICdmYWlsZWQn
LCAiRkFJTCAlcyIpCisgICAgICAgIGVsaWYgY2hhciBpbiAic1MiOgorICAgICAgICAgICAgc2hv
d19za2lwcGVkKHRlcm1pbmFscmVwb3J0ZXIsIGxpbmVzKQorICAgICAgICBlbGlmIGNoYXIgPT0g
IkUiOgorICAgICAgICAgICAgc2hvd19zaW1wbGUodGVybWluYWxyZXBvcnRlciwgbGluZXMsICdl
cnJvcicsICJFUlJPUiAlcyIpCisgICAgICAgIGVsaWYgY2hhciA9PSAncCc6CisgICAgICAgICAg
ICBzaG93X3NpbXBsZSh0ZXJtaW5hbHJlcG9ydGVyLCBsaW5lcywgJ3Bhc3NlZCcsICJQQVNTRUQg
JXMiKQorCisgICAgaWYgbGluZXM6CisgICAgICAgIHRyLl90dy5zZXAoIj0iLCAic2hvcnQgdGVz
dCBzdW1tYXJ5IGluZm8iKQorICAgICAgICBmb3IgbGluZSBpbiBsaW5lczoKKyAgICAgICAgICAg
IHRyLl90dy5saW5lKGxpbmUpCisKKworZGVmIHNob3dfc2ltcGxlKHRlcm1pbmFscmVwb3J0ZXIs
IGxpbmVzLCBzdGF0LCBmb3JtYXQpOgorICAgIGZhaWxlZCA9IHRlcm1pbmFscmVwb3J0ZXIuc3Rh
dHMuZ2V0KHN0YXQpCisgICAgaWYgZmFpbGVkOgorICAgICAgICBmb3IgcmVwIGluIGZhaWxlZDoK
KyAgICAgICAgICAgIHBvcyA9IHRlcm1pbmFscmVwb3J0ZXIuY29uZmlnLmN3ZF9yZWxhdGl2ZV9u
b2RlaWQocmVwLm5vZGVpZCkKKyAgICAgICAgICAgIGxpbmVzLmFwcGVuZChmb3JtYXQgJSAocG9z
LCkpCisKKworZGVmIHNob3dfeGZhaWxlZCh0ZXJtaW5hbHJlcG9ydGVyLCBsaW5lcyk6CisgICAg
eGZhaWxlZCA9IHRlcm1pbmFscmVwb3J0ZXIuc3RhdHMuZ2V0KCJ4ZmFpbGVkIikKKyAgICBpZiB4
ZmFpbGVkOgorICAgICAgICBmb3IgcmVwIGluIHhmYWlsZWQ6CisgICAgICAgICAgICBwb3MgPSB0
ZXJtaW5hbHJlcG9ydGVyLmNvbmZpZy5jd2RfcmVsYXRpdmVfbm9kZWlkKHJlcC5ub2RlaWQpCisg
ICAgICAgICAgICByZWFzb24gPSByZXAud2FzeGZhaWwKKyAgICAgICAgICAgIGxpbmVzLmFwcGVu
ZCgiWEZBSUwgJXMiICUgKHBvcywpKQorICAgICAgICAgICAgaWYgcmVhc29uOgorICAgICAgICAg
ICAgICAgIGxpbmVzLmFwcGVuZCgiICAiICsgc3RyKHJlYXNvbikpCisKKworZGVmIHNob3dfeHBh
c3NlZCh0ZXJtaW5hbHJlcG9ydGVyLCBsaW5lcyk6CisgICAgeHBhc3NlZCA9IHRlcm1pbmFscmVw
b3J0ZXIuc3RhdHMuZ2V0KCJ4cGFzc2VkIikKKyAgICBpZiB4cGFzc2VkOgorICAgICAgICBmb3Ig
cmVwIGluIHhwYXNzZWQ6CisgICAgICAgICAgICBwb3MgPSB0ZXJtaW5hbHJlcG9ydGVyLmNvbmZp
Zy5jd2RfcmVsYXRpdmVfbm9kZWlkKHJlcC5ub2RlaWQpCisgICAgICAgICAgICByZWFzb24gPSBy
ZXAud2FzeGZhaWwKKyAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgiWFBBU1MgJXMgJXMiICUgKHBv
cywgcmVhc29uKSkKKworCitkZWYgY2FjaGVkX2V2YWwoY29uZmlnLCBleHByLCBkKToKKyAgICBp
ZiBub3QgaGFzYXR0cihjb25maWcsICdfZXZhbGNhY2hlJyk6CisgICAgICAgIGNvbmZpZy5fZXZh
bGNhY2hlID0ge30KKyAgICB0cnk6CisgICAgICAgIHJldHVybiBjb25maWcuX2V2YWxjYWNoZVtl
eHByXQorICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgaW1wb3J0IF9weXRlc3QuX2NvZGUK
KyAgICAgICAgZXhwcmNvZGUgPSBfcHl0ZXN0Ll9jb2RlLmNvbXBpbGUoZXhwciwgbW9kZT0iZXZh
bCIpCisgICAgICAgIGNvbmZpZy5fZXZhbGNhY2hlW2V4cHJdID0geCA9IGV2YWwoZXhwcmNvZGUs
IGQpCisgICAgICAgIHJldHVybiB4CisKKworZGVmIGZvbGRlZF9za2lwcyhza2lwcGVkKToKKyAg
ICBkID0ge30KKyAgICBmb3IgZXZlbnQgaW4gc2tpcHBlZDoKKyAgICAgICAga2V5ID0gZXZlbnQu
bG9uZ3JlcHIKKyAgICAgICAgYXNzZXJ0IGxlbihrZXkpID09IDMsIChldmVudCwga2V5KQorICAg
ICAgICBrZXl3b3JkcyA9IGdldGF0dHIoZXZlbnQsICdrZXl3b3JkcycsIHt9KQorICAgICAgICAj
IGZvbGRpbmcgcmVwb3J0cyB3aXRoIGdsb2JhbCBweXRlc3RtYXJrIHZhcmlhYmxlCisgICAgICAg
ICMgdGhpcyBpcyB3b3JrYXJvdW5kLCBiZWNhdXNlIGZvciBub3cgd2UgY2Fubm90IGlkZW50aWZ5
IHRoZSBzY29wZSBvZiBhIHNraXAgbWFya2VyCisgICAgICAgICMgVE9ETzogcmV2aXNpdCBhZnRl
ciBtYXJrcyBzY29wZSB3b3VsZCBiZSBmaXhlZAorICAgICAgICB3aGVuID0gZ2V0YXR0cihldmVu
dCwgJ3doZW4nLCBOb25lKQorICAgICAgICBpZiB3aGVuID09ICdzZXR1cCcgYW5kICdza2lwJyBp
biBrZXl3b3JkcyBhbmQgJ3B5dGVzdG1hcmsnIG5vdCBpbiBrZXl3b3JkczoKKyAgICAgICAgICAg
IGtleSA9IChrZXlbMF0sIE5vbmUsIGtleVsyXSwgKQorICAgICAgICBkLnNldGRlZmF1bHQoa2V5
LCBbXSkuYXBwZW5kKGV2ZW50KQorICAgIHZhbHVlcyA9IFtdCisgICAgZm9yIGtleSwgZXZlbnRz
IGluIGQuaXRlbXMoKToKKyAgICAgICAgdmFsdWVzLmFwcGVuZCgobGVuKGV2ZW50cyksKSArIGtl
eSkKKyAgICByZXR1cm4gdmFsdWVzCisKKworZGVmIHNob3dfc2tpcHBlZCh0ZXJtaW5hbHJlcG9y
dGVyLCBsaW5lcyk6CisgICAgdHIgPSB0ZXJtaW5hbHJlcG9ydGVyCisgICAgc2tpcHBlZCA9IHRy
LnN0YXRzLmdldCgnc2tpcHBlZCcsIFtdKQorICAgIGlmIHNraXBwZWQ6CisgICAgICAgICMgaWYg
bm90IHRyLmhhc29wdCgnc2tpcHBlZCcpOgorICAgICAgICAjICAgIHRyLndyaXRlX2xpbmUoCisg
ICAgICAgICMgICAgICAgICIlZCBza2lwcGVkIHRlc3RzLCBzcGVjaWZ5IC1ycyBmb3IgbW9yZSBp
bmZvIiAlCisgICAgICAgICMgICAgICAgIGxlbihza2lwcGVkKSkKKyAgICAgICAgIyAgICByZXR1
cm4KKyAgICAgICAgZnNraXBzID0gZm9sZGVkX3NraXBzKHNraXBwZWQpCisgICAgICAgIGlmIGZz
a2lwczoKKyAgICAgICAgICAgICMgdHIud3JpdGVfc2VwKCJfIiwgInNraXBwZWQgdGVzdCBzdW1t
YXJ5IikKKyAgICAgICAgICAgIGZvciBudW0sIGZzcGF0aCwgbGluZW5vLCByZWFzb24gaW4gZnNr
aXBzOgorICAgICAgICAgICAgICAgIGlmIHJlYXNvbi5zdGFydHN3aXRoKCJTa2lwcGVkOiAiKToK
KyAgICAgICAgICAgICAgICAgICAgcmVhc29uID0gcmVhc29uWzk6XQorICAgICAgICAgICAgICAg
IGlmIGxpbmVubyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5k
KAorICAgICAgICAgICAgICAgICAgICAgICAgIlNLSVAgWyVkXSAlczolZDogJXMiICUKKyAgICAg
ICAgICAgICAgICAgICAgICAgIChudW0sIGZzcGF0aCwgbGluZW5vICsgMSwgcmVhc29uKSkKKyAg
ICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoCisg
ICAgICAgICAgICAgICAgICAgICAgICAiU0tJUCBbJWRdICVzOiAlcyIgJQorICAgICAgICAgICAg
ICAgICAgICAgICAgKG51bSwgZnNwYXRoLCByZWFzb24pKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvX3B5dGVzdC90ZXJtaW5hbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdGVybWluYWwucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMWFiYTVlODQ1ZTUxOTBhZjQ2YmRmNDRhMDM1MmY5Y2Q0MDc2OWI2MQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdGVybWluYWwucHkKQEAgLTAsMCAr
MSw3MDMgQEAKKyIiIiB0ZXJtaW5hbCByZXBvcnRpbmcgb2YgdGhlIGZ1bGwgdGVzdGluZyBwcm9j
ZXNzLgorCitUaGlzIGlzIGEgZ29vZCBzb3VyY2UgZm9yIGxvb2tpbmcgYXQgdGhlIHZhcmlvdXMg
cmVwb3J0aW5nIGhvb2tzLgorIiIiCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2lt
cG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCisKK2ltcG9ydCBpdGVydG9vbHMKK2ltcG9y
dCBwbGF0Zm9ybQoraW1wb3J0IHN5cworaW1wb3J0IHRpbWUKKworaW1wb3J0IHBsdWdneQoraW1w
b3J0IHB5CitpbXBvcnQgc2l4CisKK2ltcG9ydCBweXRlc3QKK2Zyb20gX3B5dGVzdCBpbXBvcnQg
bm9kZXMKK2Zyb20gX3B5dGVzdC5tYWluIGltcG9ydCBFWElUX09LLCBFWElUX1RFU1RTRkFJTEVE
LCBFWElUX0lOVEVSUlVQVEVELCBcCisgICAgRVhJVF9VU0FHRUVSUk9SLCBFWElUX05PVEVTVFND
T0xMRUNURUQKKworCitkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgorICAgIGdyb3VwID0g
cGFyc2VyLmdldGdyb3VwKCJ0ZXJtaW5hbCByZXBvcnRpbmciLCAicmVwb3J0aW5nIiwgYWZ0ZXI9
ImdlbmVyYWwiKQorICAgIGdyb3VwLl9hZGRvcHRpb24oJy12JywgJy0tdmVyYm9zZScsIGFjdGlv
bj0iY291bnQiLAorICAgICAgICAgICAgICAgICAgICAgZGVzdD0idmVyYm9zZSIsIGRlZmF1bHQ9
MCwgaGVscD0iaW5jcmVhc2UgdmVyYm9zaXR5LiIpLAorICAgIGdyb3VwLl9hZGRvcHRpb24oJy1x
JywgJy0tcXVpZXQnLCBhY3Rpb249ImNvdW50IiwKKyAgICAgICAgICAgICAgICAgICAgIGRlc3Q9
InF1aWV0IiwgZGVmYXVsdD0wLCBoZWxwPSJkZWNyZWFzZSB2ZXJib3NpdHkuIiksCisgICAgZ3Jv
dXAuX2FkZG9wdGlvbignLXInLAorICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZSIs
IGRlc3Q9InJlcG9ydGNoYXJzIiwgZGVmYXVsdD0nJywgbWV0YXZhcj0iY2hhcnMiLAorICAgICAg
ICAgICAgICAgICAgICAgaGVscD0ic2hvdyBleHRyYSB0ZXN0IHN1bW1hcnkgaW5mbyBhcyBzcGVj
aWZpZWQgYnkgY2hhcnMgKGYpYWlsZWQsICIKKyAgICAgICAgICAgICAgICAgICAgICIoRSllcnJv
ciwgKHMpc2tpcHBlZCwgKHgpZmFpbGVkLCAoWClwYXNzZWQsICIKKyAgICAgICAgICAgICAgICAg
ICAgICIocClwYXNzZWQsIChQKXBhc3NlZCB3aXRoIG91dHB1dCwgKGEpYWxsIGV4Y2VwdCBwUC4g
IgorICAgICAgICAgICAgICAgICAgICAgIldhcm5pbmdzIGFyZSBkaXNwbGF5ZWQgYXQgYWxsIHRp
bWVzIGV4Y2VwdCB3aGVuICIKKyAgICAgICAgICAgICAgICAgICAgICItLWRpc2FibGUtd2Fybmlu
Z3MgaXMgc2V0IikKKyAgICBncm91cC5fYWRkb3B0aW9uKCctLWRpc2FibGUtd2FybmluZ3MnLCAn
LS1kaXNhYmxlLXB5dGVzdC13YXJuaW5ncycsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAg
ICAgICAgICBkZXN0PSdkaXNhYmxlX3dhcm5pbmdzJywgYWN0aW9uPSdzdG9yZV90cnVlJywKKyAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9J2Rpc2FibGUgd2FybmluZ3Mgc3VtbWFyeScpCisgICAg
Z3JvdXAuX2FkZG9wdGlvbignLWwnLCAnLS1zaG93bG9jYWxzJywKKyAgICAgICAgICAgICAgICAg
ICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9InNob3dsb2NhbHMiLCBkZWZhdWx0PUZhbHNl
LAorICAgICAgICAgICAgICAgICAgICAgaGVscD0ic2hvdyBsb2NhbHMgaW4gdHJhY2ViYWNrcyAo
ZGlzYWJsZWQgYnkgZGVmYXVsdCkuIikKKyAgICBncm91cC5fYWRkb3B0aW9uKCctLXRiJywgbWV0
YXZhcj0ic3R5bGUiLAorICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZSIsIGRlc3Q9
InRic3R5bGUiLCBkZWZhdWx0PSdhdXRvJywKKyAgICAgICAgICAgICAgICAgICAgIGNob2ljZXM9
WydhdXRvJywgJ2xvbmcnLCAnc2hvcnQnLCAnbm8nLCAnbGluZScsICduYXRpdmUnXSwKKyAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9InRyYWNlYmFjayBwcmludCBtb2RlIChhdXRvL2xvbmcvc2hv
cnQvbGluZS9uYXRpdmUvbm8pLiIpCisgICAgZ3JvdXAuX2FkZG9wdGlvbignLS1mdWxsdHJhY2Un
LCAnLS1mdWxsLXRyYWNlJywKKyAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICBoZWxwPSJkb24ndCBjdXQg
YW55IHRyYWNlYmFja3MgKGRlZmF1bHQgaXMgdG8gY3V0KS4iKQorICAgIGdyb3VwLl9hZGRvcHRp
b24oJy0tY29sb3InLCBtZXRhdmFyPSJjb2xvciIsCisgICAgICAgICAgICAgICAgICAgICBhY3Rp
b249InN0b3JlIiwgZGVzdD0iY29sb3IiLCBkZWZhdWx0PSdhdXRvJywKKyAgICAgICAgICAgICAg
ICAgICAgIGNob2ljZXM9Wyd5ZXMnLCAnbm8nLCAnYXV0byddLAorICAgICAgICAgICAgICAgICAg
ICAgaGVscD0iY29sb3IgdGVybWluYWwgb3V0cHV0ICh5ZXMvbm8vYXV0bykuIikKKworICAgIHBh
cnNlci5hZGRpbmkoImNvbnNvbGVfb3V0cHV0X3N0eWxlIiwKKyAgICAgICAgICAgICAgICAgIGhl
bHA9ImNvbnNvbGUgb3V0cHV0OiBjbGFzc2ljIG9yIHdpdGggYWRkaXRpb25hbCBwcm9ncmVzcyBp
bmZvcm1hdGlvbiAoY2xhc3NpY3xwcm9ncmVzcykuIiwKKyAgICAgICAgICAgICAgICAgIGRlZmF1
bHQ9J3Byb2dyZXNzJykKKworCitkZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgorICAgIGNv
bmZpZy5vcHRpb24udmVyYm9zZSAtPSBjb25maWcub3B0aW9uLnF1aWV0CisgICAgcmVwb3J0ZXIg
PSBUZXJtaW5hbFJlcG9ydGVyKGNvbmZpZywgc3lzLnN0ZG91dCkKKyAgICBjb25maWcucGx1Z2lu
bWFuYWdlci5yZWdpc3RlcihyZXBvcnRlciwgJ3Rlcm1pbmFscmVwb3J0ZXInKQorICAgIGlmIGNv
bmZpZy5vcHRpb24uZGVidWcgb3IgY29uZmlnLm9wdGlvbi50cmFjZWNvbmZpZzoKKyAgICAgICAg
ZGVmIG15d3JpdGVyKHRhZ3MsIGFyZ3MpOgorICAgICAgICAgICAgbXNnID0gIiAiLmpvaW4obWFw
KHN0ciwgYXJncykpCisgICAgICAgICAgICByZXBvcnRlci53cml0ZV9saW5lKCJbdHJhY2Vjb25m
aWddICIgKyBtc2cpCisgICAgICAgIGNvbmZpZy50cmFjZS5yb290LnNldHByb2Nlc3NvcigicHl0
ZXN0OmNvbmZpZyIsIG15d3JpdGVyKQorCisKK2RlZiBnZXRyZXBvcnRvcHQoY29uZmlnKToKKyAg
ICByZXBvcnRvcHRzID0gIiIKKyAgICByZXBvcnRjaGFycyA9IGNvbmZpZy5vcHRpb24ucmVwb3J0
Y2hhcnMKKyAgICBpZiBub3QgY29uZmlnLm9wdGlvbi5kaXNhYmxlX3dhcm5pbmdzIGFuZCAndycg
bm90IGluIHJlcG9ydGNoYXJzOgorICAgICAgICByZXBvcnRjaGFycyArPSAndycKKyAgICBlbGlm
IGNvbmZpZy5vcHRpb24uZGlzYWJsZV93YXJuaW5ncyBhbmQgJ3cnIGluIHJlcG9ydGNoYXJzOgor
ICAgICAgICByZXBvcnRjaGFycyA9IHJlcG9ydGNoYXJzLnJlcGxhY2UoJ3cnLCAnJykKKyAgICBp
ZiByZXBvcnRjaGFyczoKKyAgICAgICAgZm9yIGNoYXIgaW4gcmVwb3J0Y2hhcnM6CisgICAgICAg
ICAgICBpZiBjaGFyIG5vdCBpbiByZXBvcnRvcHRzIGFuZCBjaGFyICE9ICdhJzoKKyAgICAgICAg
ICAgICAgICByZXBvcnRvcHRzICs9IGNoYXIKKyAgICAgICAgICAgIGVsaWYgY2hhciA9PSAnYSc6
CisgICAgICAgICAgICAgICAgcmVwb3J0b3B0cyA9ICdmRXN4WHcnCisgICAgcmV0dXJuIHJlcG9y
dG9wdHMKKworCitkZWYgcHl0ZXN0X3JlcG9ydF90ZXN0c3RhdHVzKHJlcG9ydCk6CisgICAgaWYg
cmVwb3J0LnBhc3NlZDoKKyAgICAgICAgbGV0dGVyID0gIi4iCisgICAgZWxpZiByZXBvcnQuc2tp
cHBlZDoKKyAgICAgICAgbGV0dGVyID0gInMiCisgICAgZWxpZiByZXBvcnQuZmFpbGVkOgorICAg
ICAgICBsZXR0ZXIgPSAiRiIKKyAgICAgICAgaWYgcmVwb3J0LndoZW4gIT0gImNhbGwiOgorICAg
ICAgICAgICAgbGV0dGVyID0gImYiCisgICAgcmV0dXJuIHJlcG9ydC5vdXRjb21lLCBsZXR0ZXIs
IHJlcG9ydC5vdXRjb21lLnVwcGVyKCkKKworCitjbGFzcyBXYXJuaW5nUmVwb3J0OgorICAgICIi
IgorICAgIFNpbXBsZSBzdHJ1Y3R1cmUgdG8gaG9sZCB3YXJuaW5ncyBpbmZvcm1hdGlvbiBjYXB0
dXJlZCBieSBgYHB5dGVzdF9sb2d3YXJuaW5nYGAuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgY29kZSwgbWVzc2FnZSwgbm9kZWlkPU5vbmUsIGZzbG9jYXRpb249Tm9uZSk6Cisg
ICAgICAgICIiIgorICAgICAgICA6cGFyYW0gY29kZTogdW51c2VkCisgICAgICAgIDpwYXJhbSBz
dHIgbWVzc2FnZTogdXNlciBmcmllbmRseSBtZXNzYWdlIGFib3V0IHRoZSB3YXJuaW5nCisgICAg
ICAgIDpwYXJhbSBzdHJ8Tm9uZSBub2RlaWQ6IG5vZGUgaWQgdGhhdCBnZW5lcmF0ZWQgdGhlIHdh
cm5pbmcgKHNlZSBgYGdldF9sb2NhdGlvbmBgKS4KKyAgICAgICAgOnBhcmFtIHR1cGxlfHB5LnBh
dGgubG9jYWwgZnNsb2NhdGlvbjoKKyAgICAgICAgICAgIGZpbGUgc3lzdGVtIGxvY2F0aW9uIG9m
IHRoZSBzb3VyY2Ugb2YgdGhlIHdhcm5pbmcgKHNlZSBgYGdldF9sb2NhdGlvbmBgKS4KKyAgICAg
ICAgIiIiCisgICAgICAgIHNlbGYuY29kZSA9IGNvZGUKKyAgICAgICAgc2VsZi5tZXNzYWdlID0g
bWVzc2FnZQorICAgICAgICBzZWxmLm5vZGVpZCA9IG5vZGVpZAorICAgICAgICBzZWxmLmZzbG9j
YXRpb24gPSBmc2xvY2F0aW9uCisKKyAgICBkZWYgZ2V0X2xvY2F0aW9uKHNlbGYsIGNvbmZpZyk6
CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIHRoZSBtb3JlIHVzZXItZnJpZW5kbHkgaW5m
b3JtYXRpb24gYWJvdXQgdGhlIGxvY2F0aW9uCisgICAgICAgIG9mIGEgd2FybmluZywgb3IgTm9u
ZS4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYubm9kZWlkOgorICAgICAgICAgICAgcmV0
dXJuIHNlbGYubm9kZWlkCisgICAgICAgIGlmIHNlbGYuZnNsb2NhdGlvbjoKKyAgICAgICAgICAg
IGlmIGlzaW5zdGFuY2Uoc2VsZi5mc2xvY2F0aW9uLCB0dXBsZSkgYW5kIGxlbihzZWxmLmZzbG9j
YXRpb24pID49IDI6CisgICAgICAgICAgICAgICAgZmlsZW5hbWUsIGxpbmVudW0gPSBzZWxmLmZz
bG9jYXRpb25bOjJdCisgICAgICAgICAgICAgICAgcmVscGF0aCA9IHB5LnBhdGgubG9jYWwoZmls
ZW5hbWUpLnJlbHRvKGNvbmZpZy5pbnZvY2F0aW9uX2RpcikKKyAgICAgICAgICAgICAgICByZXR1
cm4gJyVzOiVzJyAlIChyZWxwYXRoLCBsaW5lbnVtKQorICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gc3RyKHNlbGYuZnNsb2NhdGlvbikKKyAgICAgICAgcmV0dXJuIE5v
bmUKKworCitjbGFzcyBUZXJtaW5hbFJlcG9ydGVyOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBj
b25maWcsIGZpbGU9Tm9uZSk6CisgICAgICAgIGltcG9ydCBfcHl0ZXN0LmNvbmZpZworICAgICAg
ICBzZWxmLmNvbmZpZyA9IGNvbmZpZworICAgICAgICBzZWxmLnZlcmJvc2l0eSA9IHNlbGYuY29u
ZmlnLm9wdGlvbi52ZXJib3NlCisgICAgICAgIHNlbGYuc2hvd2hlYWRlciA9IHNlbGYudmVyYm9z
aXR5ID49IDAKKyAgICAgICAgc2VsZi5zaG93ZnNwYXRoID0gc2VsZi52ZXJib3NpdHkgPj0gMAor
ICAgICAgICBzZWxmLnNob3dsb25ndGVzdGluZm8gPSBzZWxmLnZlcmJvc2l0eSA+IDAKKyAgICAg
ICAgc2VsZi5fbnVtY29sbGVjdGVkID0gMAorICAgICAgICBzZWxmLl9zZXNzaW9uID0gTm9uZQor
CisgICAgICAgIHNlbGYuc3RhdHMgPSB7fQorICAgICAgICBzZWxmLnN0YXJ0ZGlyID0gcHkucGF0
aC5sb2NhbCgpCisgICAgICAgIGlmIGZpbGUgaXMgTm9uZToKKyAgICAgICAgICAgIGZpbGUgPSBz
eXMuc3Rkb3V0CisgICAgICAgIHNlbGYuX3R3ID0gX3B5dGVzdC5jb25maWcuY3JlYXRlX3Rlcm1p
bmFsX3dyaXRlcihjb25maWcsIGZpbGUpCisgICAgICAgICMgc2VsZi53cml0ZXIgd2lsbCBiZSBk
ZXByZWNhdGVkIGluIHB5dGVzdC0zLjQKKyAgICAgICAgc2VsZi53cml0ZXIgPSBzZWxmLl90dwor
ICAgICAgICBzZWxmLl9zY3JlZW5fd2lkdGggPSBzZWxmLl90dy5mdWxsd2lkdGgKKyAgICAgICAg
c2VsZi5jdXJyZW50ZnNwYXRoID0gTm9uZQorICAgICAgICBzZWxmLnJlcG9ydGNoYXJzID0gZ2V0
cmVwb3J0b3B0KGNvbmZpZykKKyAgICAgICAgc2VsZi5oYXNtYXJrdXAgPSBzZWxmLl90dy5oYXNt
YXJrdXAKKyAgICAgICAgc2VsZi5pc2F0dHkgPSBmaWxlLmlzYXR0eSgpCisgICAgICAgIHNlbGYu
X3Byb2dyZXNzX2l0ZW1zX3JlcG9ydGVkID0gMAorICAgICAgICBzZWxmLl9zaG93X3Byb2dyZXNz
X2luZm8gPSBzZWxmLmNvbmZpZy5nZXRpbmkoJ2NvbnNvbGVfb3V0cHV0X3N0eWxlJykgPT0gJ3By
b2dyZXNzJworCisgICAgZGVmIGhhc29wdChzZWxmLCBjaGFyKToKKyAgICAgICAgY2hhciA9IHsn
eGZhaWxlZCc6ICd4JywgJ3NraXBwZWQnOiAncyd9LmdldChjaGFyLCBjaGFyKQorICAgICAgICBy
ZXR1cm4gY2hhciBpbiBzZWxmLnJlcG9ydGNoYXJzCisKKyAgICBkZWYgd3JpdGVfZnNwYXRoX3Jl
c3VsdChzZWxmLCBub2RlaWQsIHJlcyk6CisgICAgICAgIGZzcGF0aCA9IHNlbGYuY29uZmlnLnJv
b3RkaXIuam9pbihub2RlaWQuc3BsaXQoIjo6IilbMF0pCisgICAgICAgIGlmIGZzcGF0aCAhPSBz
ZWxmLmN1cnJlbnRmc3BhdGg6CisgICAgICAgICAgICBpZiBzZWxmLmN1cnJlbnRmc3BhdGggaXMg
bm90IE5vbmU6CisgICAgICAgICAgICAgICAgc2VsZi5fd3JpdGVfcHJvZ3Jlc3NfaW5mb3JtYXRp
b25fZmlsbGluZ19zcGFjZSgpCisgICAgICAgICAgICBzZWxmLmN1cnJlbnRmc3BhdGggPSBmc3Bh
dGgKKyAgICAgICAgICAgIGZzcGF0aCA9IHNlbGYuc3RhcnRkaXIuYmVzdHJlbHBhdGgoZnNwYXRo
KQorICAgICAgICAgICAgc2VsZi5fdHcubGluZSgpCisgICAgICAgICAgICBzZWxmLl90dy53cml0
ZShmc3BhdGggKyAiICIpCisgICAgICAgIHNlbGYuX3R3LndyaXRlKHJlcykKKworICAgIGRlZiB3
cml0ZV9lbnN1cmVfcHJlZml4KHNlbGYsIHByZWZpeCwgZXh0cmE9IiIsICoqa3dhcmdzKToKKyAg
ICAgICAgaWYgc2VsZi5jdXJyZW50ZnNwYXRoICE9IHByZWZpeDoKKyAgICAgICAgICAgIHNlbGYu
X3R3LmxpbmUoKQorICAgICAgICAgICAgc2VsZi5jdXJyZW50ZnNwYXRoID0gcHJlZml4CisgICAg
ICAgICAgICBzZWxmLl90dy53cml0ZShwcmVmaXgpCisgICAgICAgIGlmIGV4dHJhOgorICAgICAg
ICAgICAgc2VsZi5fdHcud3JpdGUoZXh0cmEsICoqa3dhcmdzKQorICAgICAgICAgICAgc2VsZi5j
dXJyZW50ZnNwYXRoID0gLTIKKyAgICAgICAgICAgIHNlbGYuX3dyaXRlX3Byb2dyZXNzX2luZm9y
bWF0aW9uX2ZpbGxpbmdfc3BhY2UoKQorCisgICAgZGVmIGVuc3VyZV9uZXdsaW5lKHNlbGYpOgor
ICAgICAgICBpZiBzZWxmLmN1cnJlbnRmc3BhdGg6CisgICAgICAgICAgICBzZWxmLl90dy5saW5l
KCkKKyAgICAgICAgICAgIHNlbGYuY3VycmVudGZzcGF0aCA9IE5vbmUKKworICAgIGRlZiB3cml0
ZShzZWxmLCBjb250ZW50LCAqKm1hcmt1cCk6CisgICAgICAgIHNlbGYuX3R3LndyaXRlKGNvbnRl
bnQsICoqbWFya3VwKQorCisgICAgZGVmIHdyaXRlX2xpbmUoc2VsZiwgbGluZSwgKiptYXJrdXAp
OgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShsaW5lLCBzaXgudGV4dF90eXBlKToKKyAgICAg
ICAgICAgIGxpbmUgPSBzaXgudGV4dF90eXBlKGxpbmUsIGVycm9ycz0icmVwbGFjZSIpCisgICAg
ICAgIHNlbGYuZW5zdXJlX25ld2xpbmUoKQorICAgICAgICBzZWxmLl90dy5saW5lKGxpbmUsICoq
bWFya3VwKQorCisgICAgZGVmIHJld3JpdGUoc2VsZiwgbGluZSwgKiptYXJrdXApOgorICAgICAg
ICAiIiIKKyAgICAgICAgUmV3aW5kcyB0aGUgdGVybWluYWwgY3Vyc29yIHRvIHRoZSBiZWdpbm5p
bmcgYW5kIHdyaXRlcyB0aGUgZ2l2ZW4gbGluZS4KKworICAgICAgICA6a3dhcmcgZXJhc2U6IGlm
IFRydWUsIHdpbGwgYWxzbyBhZGQgc3BhY2VzIHVudGlsIHRoZSBmdWxsIHRlcm1pbmFsIHdpZHRo
IHRvIGVuc3VyZQorICAgICAgICAgICAgcHJldmlvdXMgbGluZXMgYXJlIHByb3Blcmx5IGVyYXNl
ZC4KKworICAgICAgICBUaGUgcmVzdCBvZiB0aGUga2V5d29yZCBhcmd1bWVudHMgYXJlIG1hcmt1
cCBpbnN0cnVjdGlvbnMuCisgICAgICAgICIiIgorICAgICAgICBlcmFzZSA9IG1hcmt1cC5wb3Ao
J2VyYXNlJywgRmFsc2UpCisgICAgICAgIGlmIGVyYXNlOgorICAgICAgICAgICAgZmlsbF9jb3Vu
dCA9IHNlbGYuX3R3LmZ1bGx3aWR0aCAtIGxlbihsaW5lKSAtIDEKKyAgICAgICAgICAgIGZpbGwg
PSAnICcgKiBmaWxsX2NvdW50CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmaWxsID0gJycK
KyAgICAgICAgbGluZSA9IHN0cihsaW5lKQorICAgICAgICBzZWxmLl90dy53cml0ZSgiXHIiICsg
bGluZSArIGZpbGwsICoqbWFya3VwKQorCisgICAgZGVmIHdyaXRlX3NlcChzZWxmLCBzZXAsIHRp
dGxlPU5vbmUsICoqbWFya3VwKToKKyAgICAgICAgc2VsZi5lbnN1cmVfbmV3bGluZSgpCisgICAg
ICAgIHNlbGYuX3R3LnNlcChzZXAsIHRpdGxlLCAqKm1hcmt1cCkKKworICAgIGRlZiBzZWN0aW9u
KHNlbGYsIHRpdGxlLCBzZXA9Ij0iLCAqKmt3KToKKyAgICAgICAgc2VsZi5fdHcuc2VwKHNlcCwg
dGl0bGUsICoqa3cpCisKKyAgICBkZWYgbGluZShzZWxmLCBtc2csICoqa3cpOgorICAgICAgICBz
ZWxmLl90dy5saW5lKG1zZywgKiprdykKKworICAgIGRlZiBweXRlc3RfaW50ZXJuYWxlcnJvcihz
ZWxmLCBleGNyZXByKToKKyAgICAgICAgZm9yIGxpbmUgaW4gc2l4LnRleHRfdHlwZShleGNyZXBy
KS5zcGxpdCgiXG4iKToKKyAgICAgICAgICAgIHNlbGYud3JpdGVfbGluZSgiSU5URVJOQUxFUlJP
Uj4gIiArIGxpbmUpCisgICAgICAgIHJldHVybiAxCisKKyAgICBkZWYgcHl0ZXN0X2xvZ3dhcm5p
bmcoc2VsZiwgY29kZSwgZnNsb2NhdGlvbiwgbWVzc2FnZSwgbm9kZWlkKToKKyAgICAgICAgd2Fy
bmluZ3MgPSBzZWxmLnN0YXRzLnNldGRlZmF1bHQoIndhcm5pbmdzIiwgW10pCisgICAgICAgIHdh
cm5pbmcgPSBXYXJuaW5nUmVwb3J0KGNvZGU9Y29kZSwgZnNsb2NhdGlvbj1mc2xvY2F0aW9uLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPW1lc3NhZ2UsIG5vZGVpZD1u
b2RlaWQpCisgICAgICAgIHdhcm5pbmdzLmFwcGVuZCh3YXJuaW5nKQorCisgICAgZGVmIHB5dGVz
dF9wbHVnaW5fcmVnaXN0ZXJlZChzZWxmLCBwbHVnaW4pOgorICAgICAgICBpZiBzZWxmLmNvbmZp
Zy5vcHRpb24udHJhY2Vjb25maWc6CisgICAgICAgICAgICBtc2cgPSAiUExVR0lOIHJlZ2lzdGVy
ZWQ6ICVzIiAlIChwbHVnaW4sKQorICAgICAgICAgICAgIyBYWFggdGhpcyBldmVudCBtYXkgaGFw
cGVuIGR1cmluZyBzZXR1cC90ZWFyZG93biB0aW1lCisgICAgICAgICAgICAjICAgICB3aGljaCB1
bmZvcnR1bmF0ZWx5IGNhcHR1cmVzIG91ciBvdXRwdXQgaGVyZQorICAgICAgICAgICAgIyAgICAg
d2hpY2ggZ2FyYmxlcyBvdXIgb3V0cHV0IGlmIHdlIHVzZSBzZWxmLndyaXRlX2xpbmUKKyAgICAg
ICAgICAgIHNlbGYud3JpdGVfbGluZShtc2cpCisKKyAgICBkZWYgcHl0ZXN0X2Rlc2VsZWN0ZWQo
c2VsZiwgaXRlbXMpOgorICAgICAgICBzZWxmLnN0YXRzLnNldGRlZmF1bHQoJ2Rlc2VsZWN0ZWQn
LCBbXSkuZXh0ZW5kKGl0ZW1zKQorCisgICAgZGVmIHB5dGVzdF9ydW50ZXN0X2xvZ3N0YXJ0KHNl
bGYsIG5vZGVpZCwgbG9jYXRpb24pOgorICAgICAgICAjIGVuc3VyZSB0aGF0IHRoZSBwYXRoIGlz
IHByaW50ZWQgYmVmb3JlIHRoZQorICAgICAgICAjIDFzdCB0ZXN0IG9mIGEgbW9kdWxlIHN0YXJ0
cyBydW5uaW5nCisgICAgICAgIGlmIHNlbGYuc2hvd2xvbmd0ZXN0aW5mbzoKKyAgICAgICAgICAg
IGxpbmUgPSBzZWxmLl9sb2NhdGlvbmxpbmUobm9kZWlkLCAqbG9jYXRpb24pCisgICAgICAgICAg
ICBzZWxmLndyaXRlX2Vuc3VyZV9wcmVmaXgobGluZSwgIiIpCisgICAgICAgIGVsaWYgc2VsZi5z
aG93ZnNwYXRoOgorICAgICAgICAgICAgZnNpZCA9IG5vZGVpZC5zcGxpdCgiOjoiKVswXQorICAg
ICAgICAgICAgc2VsZi53cml0ZV9mc3BhdGhfcmVzdWx0KGZzaWQsICIiKQorCisgICAgZGVmIHB5
dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydChzZWxmLCByZXBvcnQpOgorICAgICAgICByZXAgPSByZXBv
cnQKKyAgICAgICAgcmVzID0gc2VsZi5jb25maWcuaG9vay5weXRlc3RfcmVwb3J0X3Rlc3RzdGF0
dXMocmVwb3J0PXJlcCkKKyAgICAgICAgY2F0LCBsZXR0ZXIsIHdvcmQgPSByZXMKKyAgICAgICAg
aWYgaXNpbnN0YW5jZSh3b3JkLCB0dXBsZSk6CisgICAgICAgICAgICB3b3JkLCBtYXJrdXAgPSB3
b3JkCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBtYXJrdXAgPSBOb25lCisgICAgICAgIHNl
bGYuc3RhdHMuc2V0ZGVmYXVsdChjYXQsIFtdKS5hcHBlbmQocmVwKQorICAgICAgICBzZWxmLl90
ZXN0c19yYW4gPSBUcnVlCisgICAgICAgIGlmIG5vdCBsZXR0ZXIgYW5kIG5vdCB3b3JkOgorICAg
ICAgICAgICAgIyBwcm9iYWJseSBwYXNzZWQgc2V0dXAvdGVhcmRvd24KKyAgICAgICAgICAgIHJl
dHVybgorICAgICAgICBydW5uaW5nX3hkaXN0ID0gaGFzYXR0cihyZXAsICdub2RlJykKKyAgICAg
ICAgc2VsZi5fcHJvZ3Jlc3NfaXRlbXNfcmVwb3J0ZWQgKz0gMQorICAgICAgICBpZiBzZWxmLnZl
cmJvc2l0eSA8PSAwOgorICAgICAgICAgICAgaWYgbm90IHJ1bm5pbmdfeGRpc3QgYW5kIHNlbGYu
c2hvd2ZzcGF0aDoKKyAgICAgICAgICAgICAgICBzZWxmLndyaXRlX2ZzcGF0aF9yZXN1bHQocmVw
Lm5vZGVpZCwgbGV0dGVyKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxm
Ll90dy53cml0ZShsZXR0ZXIpCisgICAgICAgICAgICBzZWxmLl93cml0ZV9wcm9ncmVzc19pZl9w
YXN0X2VkZ2UoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgbWFya3VwIGlzIE5vbmU6
CisgICAgICAgICAgICAgICAgaWYgcmVwLnBhc3NlZDoKKyAgICAgICAgICAgICAgICAgICAgbWFy
a3VwID0geydncmVlbic6IFRydWV9CisgICAgICAgICAgICAgICAgZWxpZiByZXAuZmFpbGVkOgor
ICAgICAgICAgICAgICAgICAgICBtYXJrdXAgPSB7J3JlZCc6IFRydWV9CisgICAgICAgICAgICAg
ICAgZWxpZiByZXAuc2tpcHBlZDoKKyAgICAgICAgICAgICAgICAgICAgbWFya3VwID0geyd5ZWxs
b3cnOiBUcnVlfQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIG1h
cmt1cCA9IHt9CisgICAgICAgICAgICBsaW5lID0gc2VsZi5fbG9jYXRpb25saW5lKHJlcC5ub2Rl
aWQsICpyZXAubG9jYXRpb24pCisgICAgICAgICAgICBpZiBub3QgcnVubmluZ194ZGlzdDoKKyAg
ICAgICAgICAgICAgICBzZWxmLndyaXRlX2Vuc3VyZV9wcmVmaXgobGluZSwgd29yZCwgKiptYXJr
dXApCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuZW5zdXJlX25ld2xp
bmUoKQorICAgICAgICAgICAgICAgIHNlbGYuX3R3LndyaXRlKCJbJXNdIiAlIHJlcC5ub2RlLmdh
dGV3YXkuaWQpCisgICAgICAgICAgICAgICAgaWYgc2VsZi5fc2hvd19wcm9ncmVzc19pbmZvOgor
ICAgICAgICAgICAgICAgICAgICBzZWxmLl90dy53cml0ZShzZWxmLl9nZXRfcHJvZ3Jlc3NfaW5m
b3JtYXRpb25fbWVzc2FnZSgpICsgIiAiLCBjeWFuPVRydWUpCisgICAgICAgICAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fdHcud3JpdGUoJyAnKQorICAgICAgICAgICAg
ICAgIHNlbGYuX3R3LndyaXRlKHdvcmQsICoqbWFya3VwKQorICAgICAgICAgICAgICAgIHNlbGYu
X3R3LndyaXRlKCIgIiArIGxpbmUpCisgICAgICAgICAgICAgICAgc2VsZi5jdXJyZW50ZnNwYXRo
ID0gLTIKKworICAgIGRlZiBfd3JpdGVfcHJvZ3Jlc3NfaWZfcGFzdF9lZGdlKHNlbGYpOgorICAg
ICAgICBpZiBub3Qgc2VsZi5fc2hvd19wcm9ncmVzc19pbmZvOgorICAgICAgICAgICAgcmV0dXJu
CisgICAgICAgIGxhc3RfaXRlbSA9IHNlbGYuX3Byb2dyZXNzX2l0ZW1zX3JlcG9ydGVkID09IHNl
bGYuX3Nlc3Npb24udGVzdHNjb2xsZWN0ZWQKKyAgICAgICAgaWYgbGFzdF9pdGVtOgorICAgICAg
ICAgICAgc2VsZi5fd3JpdGVfcHJvZ3Jlc3NfaW5mb3JtYXRpb25fZmlsbGluZ19zcGFjZSgpCisg
ICAgICAgICAgICByZXR1cm4KKworICAgICAgICBwYXN0X2VkZ2UgPSBzZWxmLl90dy5jaGFyc19v
bl9jdXJyZW50X2xpbmUgKyBzZWxmLl9QUk9HUkVTU19MRU5HVEggKyAxID49IHNlbGYuX3NjcmVl
bl93aWR0aAorICAgICAgICBpZiBwYXN0X2VkZ2U6CisgICAgICAgICAgICBtc2cgPSBzZWxmLl9n
ZXRfcHJvZ3Jlc3NfaW5mb3JtYXRpb25fbWVzc2FnZSgpCisgICAgICAgICAgICBzZWxmLl90dy53
cml0ZShtc2cgKyAnXG4nLCBjeWFuPVRydWUpCisKKyAgICBfUFJPR1JFU1NfTEVOR1RIID0gbGVu
KCcgWzEwMCVdJykKKworICAgIGRlZiBfZ2V0X3Byb2dyZXNzX2luZm9ybWF0aW9uX21lc3NhZ2Uo
c2VsZik6CisgICAgICAgIGNvbGxlY3RlZCA9IHNlbGYuX3Nlc3Npb24udGVzdHNjb2xsZWN0ZWQK
KyAgICAgICAgaWYgY29sbGVjdGVkOgorICAgICAgICAgICAgcHJvZ3Jlc3MgPSBzZWxmLl9wcm9n
cmVzc19pdGVtc19yZXBvcnRlZCAqIDEwMCAvLyBjb2xsZWN0ZWQKKyAgICAgICAgICAgIHJldHVy
biAnIFt7OjNkfSVdJy5mb3JtYXQocHJvZ3Jlc3MpCisgICAgICAgIHJldHVybiAnIFsxMDAlXScK
KworICAgIGRlZiBfd3JpdGVfcHJvZ3Jlc3NfaW5mb3JtYXRpb25fZmlsbGluZ19zcGFjZShzZWxm
KToKKyAgICAgICAgaWYgbm90IHNlbGYuX3Nob3dfcHJvZ3Jlc3NfaW5mbzoKKyAgICAgICAgICAg
IHJldHVybgorICAgICAgICBtc2cgPSBzZWxmLl9nZXRfcHJvZ3Jlc3NfaW5mb3JtYXRpb25fbWVz
c2FnZSgpCisgICAgICAgIGZpbGwgPSAnICcgKiAoc2VsZi5fdHcuZnVsbHdpZHRoIC0gc2VsZi5f
dHcuY2hhcnNfb25fY3VycmVudF9saW5lIC0gbGVuKG1zZykgLSAxKQorICAgICAgICBzZWxmLndy
aXRlKGZpbGwgKyBtc2csIGN5YW49VHJ1ZSkKKworICAgIGRlZiBweXRlc3RfY29sbGVjdGlvbihz
ZWxmKToKKyAgICAgICAgaWYgbm90IHNlbGYuaXNhdHR5IGFuZCBzZWxmLmNvbmZpZy5vcHRpb24u
dmVyYm9zZSA+PSAxOgorICAgICAgICAgICAgc2VsZi53cml0ZSgiY29sbGVjdGluZyAuLi4gIiwg
Ym9sZD1UcnVlKQorCisgICAgZGVmIHB5dGVzdF9jb2xsZWN0cmVwb3J0KHNlbGYsIHJlcG9ydCk6
CisgICAgICAgIGlmIHJlcG9ydC5mYWlsZWQ6CisgICAgICAgICAgICBzZWxmLnN0YXRzLnNldGRl
ZmF1bHQoImVycm9yIiwgW10pLmFwcGVuZChyZXBvcnQpCisgICAgICAgIGVsaWYgcmVwb3J0LnNr
aXBwZWQ6CisgICAgICAgICAgICBzZWxmLnN0YXRzLnNldGRlZmF1bHQoInNraXBwZWQiLCBbXSku
YXBwZW5kKHJlcG9ydCkKKyAgICAgICAgaXRlbXMgPSBbeCBmb3IgeCBpbiByZXBvcnQucmVzdWx0
IGlmIGlzaW5zdGFuY2UoeCwgcHl0ZXN0Lkl0ZW0pXQorICAgICAgICBzZWxmLl9udW1jb2xsZWN0
ZWQgKz0gbGVuKGl0ZW1zKQorICAgICAgICBpZiBzZWxmLmlzYXR0eToKKyAgICAgICAgICAgICMg
c2VsZi53cml0ZV9mc3BhdGhfcmVzdWx0KHJlcG9ydC5ub2RlaWQsICdFJykKKyAgICAgICAgICAg
IHNlbGYucmVwb3J0X2NvbGxlY3QoKQorCisgICAgZGVmIHJlcG9ydF9jb2xsZWN0KHNlbGYsIGZp
bmFsPUZhbHNlKToKKyAgICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9uLnZlcmJvc2UgPCAwOgor
ICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgZXJyb3JzID0gbGVuKHNlbGYuc3RhdHMuZ2V0
KCdlcnJvcicsIFtdKSkKKyAgICAgICAgc2tpcHBlZCA9IGxlbihzZWxmLnN0YXRzLmdldCgnc2tp
cHBlZCcsIFtdKSkKKyAgICAgICAgaWYgZmluYWw6CisgICAgICAgICAgICBsaW5lID0gImNvbGxl
Y3RlZCAiCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBsaW5lID0gImNvbGxlY3RpbmcgIgor
ICAgICAgICBsaW5lICs9IHN0cihzZWxmLl9udW1jb2xsZWN0ZWQpICsgIiBpdGVtIiArICgnJyBp
ZiBzZWxmLl9udW1jb2xsZWN0ZWQgPT0gMSBlbHNlICdzJykKKyAgICAgICAgaWYgZXJyb3JzOgor
ICAgICAgICAgICAgbGluZSArPSAiIC8gJWQgZXJyb3JzIiAlIGVycm9ycworICAgICAgICBpZiBz
a2lwcGVkOgorICAgICAgICAgICAgbGluZSArPSAiIC8gJWQgc2tpcHBlZCIgJSBza2lwcGVkCisg
ICAgICAgIGlmIHNlbGYuaXNhdHR5OgorICAgICAgICAgICAgc2VsZi5yZXdyaXRlKGxpbmUsIGJv
bGQ9VHJ1ZSwgZXJhc2U9VHJ1ZSkKKyAgICAgICAgICAgIGlmIGZpbmFsOgorICAgICAgICAgICAg
ICAgIHNlbGYud3JpdGUoJ1xuJykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYud3Jp
dGVfbGluZShsaW5lKQorCisgICAgZGVmIHB5dGVzdF9jb2xsZWN0aW9uX21vZGlmeWl0ZW1zKHNl
bGYpOgorICAgICAgICBzZWxmLnJlcG9ydF9jb2xsZWN0KFRydWUpCisKKyAgICBAcHl0ZXN0Lmhv
b2tpbXBsKHRyeWxhc3Q9VHJ1ZSkKKyAgICBkZWYgcHl0ZXN0X3Nlc3Npb25zdGFydChzZWxmLCBz
ZXNzaW9uKToKKyAgICAgICAgc2VsZi5fc2Vzc2lvbiA9IHNlc3Npb24KKyAgICAgICAgc2VsZi5f
c2Vzc2lvbnN0YXJ0dGltZSA9IHRpbWUudGltZSgpCisgICAgICAgIGlmIG5vdCBzZWxmLnNob3do
ZWFkZXI6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgc2VsZi53cml0ZV9zZXAoIj0iLCAi
dGVzdCBzZXNzaW9uIHN0YXJ0cyIsIGJvbGQ9VHJ1ZSkKKyAgICAgICAgdmVyaW5mbyA9IHBsYXRm
b3JtLnB5dGhvbl92ZXJzaW9uKCkKKyAgICAgICAgbXNnID0gInBsYXRmb3JtICVzIC0tIFB5dGhv
biAlcyIgJSAoc3lzLnBsYXRmb3JtLCB2ZXJpbmZvKQorICAgICAgICBpZiBoYXNhdHRyKHN5cywg
J3B5cHlfdmVyc2lvbl9pbmZvJyk6CisgICAgICAgICAgICB2ZXJpbmZvID0gIi4iLmpvaW4obWFw
KHN0ciwgc3lzLnB5cHlfdmVyc2lvbl9pbmZvWzozXSkpCisgICAgICAgICAgICBtc2cgKz0gIltw
eXB5LSVzLSVzXSIgJSAodmVyaW5mbywgc3lzLnB5cHlfdmVyc2lvbl9pbmZvWzNdKQorICAgICAg
ICBtc2cgKz0gIiwgcHl0ZXN0LSVzLCBweS0lcywgcGx1Z2d5LSVzIiAlICgKKyAgICAgICAgICAg
ICAgIHB5dGVzdC5fX3ZlcnNpb25fXywgcHkuX192ZXJzaW9uX18sIHBsdWdneS5fX3ZlcnNpb25f
XykKKyAgICAgICAgaWYgc2VsZi52ZXJib3NpdHkgPiAwIG9yIHNlbGYuY29uZmlnLm9wdGlvbi5k
ZWJ1ZyBvciBcCisgICAgICAgICAgIGdldGF0dHIoc2VsZi5jb25maWcub3B0aW9uLCAncGFzdGVi
aW4nLCBOb25lKToKKyAgICAgICAgICAgIG1zZyArPSAiIC0tICIgKyBzdHIoc3lzLmV4ZWN1dGFi
bGUpCisgICAgICAgIHNlbGYud3JpdGVfbGluZShtc2cpCisgICAgICAgIGxpbmVzID0gc2VsZi5j
b25maWcuaG9vay5weXRlc3RfcmVwb3J0X2hlYWRlcigKKyAgICAgICAgICAgIGNvbmZpZz1zZWxm
LmNvbmZpZywgc3RhcnRkaXI9c2VsZi5zdGFydGRpcikKKyAgICAgICAgc2VsZi5fd3JpdGVfcmVw
b3J0X2xpbmVzX2Zyb21faG9va3MobGluZXMpCisKKyAgICBkZWYgX3dyaXRlX3JlcG9ydF9saW5l
c19mcm9tX2hvb2tzKHNlbGYsIGxpbmVzKToKKyAgICAgICAgbGluZXMucmV2ZXJzZSgpCisgICAg
ICAgIGZvciBsaW5lIGluIGZsYXR0ZW4obGluZXMpOgorICAgICAgICAgICAgc2VsZi53cml0ZV9s
aW5lKGxpbmUpCisKKyAgICBkZWYgcHl0ZXN0X3JlcG9ydF9oZWFkZXIoc2VsZiwgY29uZmlnKToK
KyAgICAgICAgaW5pZmlsZSA9ICIiCisgICAgICAgIGlmIGNvbmZpZy5pbmlmaWxlOgorICAgICAg
ICAgICAgaW5pZmlsZSA9ICIgIiArIGNvbmZpZy5yb290ZGlyLmJlc3RyZWxwYXRoKGNvbmZpZy5p
bmlmaWxlKQorICAgICAgICBsaW5lcyA9IFsicm9vdGRpcjogJXMsIGluaWZpbGU6JXMiICUgKGNv
bmZpZy5yb290ZGlyLCBpbmlmaWxlKV0KKworICAgICAgICBwbHVnaW5pbmZvID0gY29uZmlnLnBs
dWdpbm1hbmFnZXIubGlzdF9wbHVnaW5fZGlzdGluZm8oKQorICAgICAgICBpZiBwbHVnaW5pbmZv
OgorCisgICAgICAgICAgICBsaW5lcy5hcHBlbmQoCisgICAgICAgICAgICAgICAgInBsdWdpbnM6
ICVzIiAlICIsICIuam9pbihfcGx1Z2luX25hbWV2ZXJzaW9ucyhwbHVnaW5pbmZvKSkpCisgICAg
ICAgIHJldHVybiBsaW5lcworCisgICAgZGVmIHB5dGVzdF9jb2xsZWN0aW9uX2ZpbmlzaChzZWxm
LCBzZXNzaW9uKToKKyAgICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9uLmNvbGxlY3Rvbmx5Ogor
ICAgICAgICAgICAgc2VsZi5fcHJpbnRjb2xsZWN0ZWRpdGVtcyhzZXNzaW9uLml0ZW1zKQorICAg
ICAgICAgICAgaWYgc2VsZi5zdGF0cy5nZXQoJ2ZhaWxlZCcpOgorICAgICAgICAgICAgICAgIHNl
bGYuX3R3LnNlcCgiISIsICJjb2xsZWN0aW9uIGZhaWx1cmVzIikKKyAgICAgICAgICAgICAgICBm
b3IgcmVwIGluIHNlbGYuc3RhdHMuZ2V0KCdmYWlsZWQnKToKKyAgICAgICAgICAgICAgICAgICAg
cmVwLnRvdGVybWluYWwoc2VsZi5fdHcpCisgICAgICAgICAgICAgICAgcmV0dXJuIDEKKyAgICAg
ICAgICAgIHJldHVybiAwCisgICAgICAgIGxpbmVzID0gc2VsZi5jb25maWcuaG9vay5weXRlc3Rf
cmVwb3J0X2NvbGxlY3Rpb25maW5pc2goCisgICAgICAgICAgICBjb25maWc9c2VsZi5jb25maWcs
IHN0YXJ0ZGlyPXNlbGYuc3RhcnRkaXIsIGl0ZW1zPXNlc3Npb24uaXRlbXMpCisgICAgICAgIHNl
bGYuX3dyaXRlX3JlcG9ydF9saW5lc19mcm9tX2hvb2tzKGxpbmVzKQorCisgICAgZGVmIF9wcmlu
dGNvbGxlY3RlZGl0ZW1zKHNlbGYsIGl0ZW1zKToKKyAgICAgICAgIyB0byBwcmludCBvdXQgaXRl
bXMgYW5kIHRoZWlyIHBhcmVudCBjb2xsZWN0b3JzCisgICAgICAgICMgd2UgdGFrZSBjYXJlIHRv
IGxlYXZlIG91dCBJbnN0YW5jZXMgYWthICgpCisgICAgICAgICMgYmVjYXVzZSBsYXRlciB2ZXJz
aW9ucyBhcmUgZ29pbmcgdG8gZ2V0IHJpZCBvZiB0aGVtIGFueXdheQorICAgICAgICBpZiBzZWxm
LmNvbmZpZy5vcHRpb24udmVyYm9zZSA8IDA6CisgICAgICAgICAgICBpZiBzZWxmLmNvbmZpZy5v
cHRpb24udmVyYm9zZSA8IC0xOgorICAgICAgICAgICAgICAgIGNvdW50cyA9IHt9CisgICAgICAg
ICAgICAgICAgZm9yIGl0ZW0gaW4gaXRlbXM6CisgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBp
dGVtLm5vZGVpZC5zcGxpdCgnOjonLCAxKVswXQorICAgICAgICAgICAgICAgICAgICBjb3VudHNb
bmFtZV0gPSBjb3VudHMuZ2V0KG5hbWUsIDApICsgMQorICAgICAgICAgICAgICAgIGZvciBuYW1l
LCBjb3VudCBpbiBzb3J0ZWQoY291bnRzLml0ZW1zKCkpOgorICAgICAgICAgICAgICAgICAgICBz
ZWxmLl90dy5saW5lKCIlczogJWQiICUgKG5hbWUsIGNvdW50KSkKKyAgICAgICAgICAgIGVsc2U6
CisgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gaXRlbXM6CisgICAgICAgICAgICAgICAgICAg
IG5vZGVpZCA9IGl0ZW0ubm9kZWlkCisgICAgICAgICAgICAgICAgICAgIG5vZGVpZCA9IG5vZGVp
ZC5yZXBsYWNlKCI6OigpOjoiLCAiOjoiKQorICAgICAgICAgICAgICAgICAgICBzZWxmLl90dy5s
aW5lKG5vZGVpZCkKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBzdGFjayA9IFtdCisgICAg
ICAgIGluZGVudCA9ICIiCisgICAgICAgIGZvciBpdGVtIGluIGl0ZW1zOgorICAgICAgICAgICAg
bmVlZGVkX2NvbGxlY3RvcnMgPSBpdGVtLmxpc3RjaGFpbigpWzE6XSAgIyBzdHJpcCByb290IG5v
ZGUKKyAgICAgICAgICAgIHdoaWxlIHN0YWNrOgorICAgICAgICAgICAgICAgIGlmIHN0YWNrID09
IG5lZWRlZF9jb2xsZWN0b3JzWzpsZW4oc3RhY2spXToKKyAgICAgICAgICAgICAgICAgICAgYnJl
YWsKKyAgICAgICAgICAgICAgICBzdGFjay5wb3AoKQorICAgICAgICAgICAgZm9yIGNvbCBpbiBu
ZWVkZWRfY29sbGVjdG9yc1tsZW4oc3RhY2spOl06CisgICAgICAgICAgICAgICAgc3RhY2suYXBw
ZW5kKGNvbCkKKyAgICAgICAgICAgICAgICAjIGlmIGNvbC5uYW1lID09ICIoKSI6CisgICAgICAg
ICAgICAgICAgIyAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIGluZGVudCA9IChsZW4oc3Rh
Y2spIC0gMSkgKiAiICAiCisgICAgICAgICAgICAgICAgc2VsZi5fdHcubGluZSgiJXMlcyIgJSAo
aW5kZW50LCBjb2wpKQorCisgICAgQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQor
ICAgIGRlZiBweXRlc3Rfc2Vzc2lvbmZpbmlzaChzZWxmLCBleGl0c3RhdHVzKToKKyAgICAgICAg
b3V0Y29tZSA9IHlpZWxkCisgICAgICAgIG91dGNvbWUuZ2V0X3Jlc3VsdCgpCisgICAgICAgIHNl
bGYuX3R3LmxpbmUoIiIpCisgICAgICAgIHN1bW1hcnlfZXhpdF9jb2RlcyA9ICgKKyAgICAgICAg
ICAgIEVYSVRfT0ssIEVYSVRfVEVTVFNGQUlMRUQsIEVYSVRfSU5URVJSVVBURUQsIEVYSVRfVVNB
R0VFUlJPUiwKKyAgICAgICAgICAgIEVYSVRfTk9URVNUU0NPTExFQ1RFRCkKKyAgICAgICAgaWYg
ZXhpdHN0YXR1cyBpbiBzdW1tYXJ5X2V4aXRfY29kZXM6CisgICAgICAgICAgICBzZWxmLmNvbmZp
Zy5ob29rLnB5dGVzdF90ZXJtaW5hbF9zdW1tYXJ5KHRlcm1pbmFscmVwb3J0ZXI9c2VsZiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpdHN0
YXR1cz1leGl0c3RhdHVzKQorICAgICAgICAgICAgc2VsZi5zdW1tYXJ5X2Vycm9ycygpCisgICAg
ICAgICAgICBzZWxmLnN1bW1hcnlfZmFpbHVyZXMoKQorICAgICAgICAgICAgc2VsZi5zdW1tYXJ5
X3dhcm5pbmdzKCkKKyAgICAgICAgICAgIHNlbGYuc3VtbWFyeV9wYXNzZXMoKQorICAgICAgICBp
ZiBleGl0c3RhdHVzID09IEVYSVRfSU5URVJSVVBURUQ6CisgICAgICAgICAgICBzZWxmLl9yZXBv
cnRfa2V5Ym9hcmRpbnRlcnJ1cHQoKQorICAgICAgICAgICAgZGVsIHNlbGYuX2tleWJvYXJkaW50
ZXJydXB0X21lbW8KKyAgICAgICAgc2VsZi5zdW1tYXJ5X2Rlc2VsZWN0ZWQoKQorICAgICAgICBz
ZWxmLnN1bW1hcnlfc3RhdHMoKQorCisgICAgZGVmIHB5dGVzdF9rZXlib2FyZF9pbnRlcnJ1cHQo
c2VsZiwgZXhjaW5mbyk6CisgICAgICAgIHNlbGYuX2tleWJvYXJkaW50ZXJydXB0X21lbW8gPSBl
eGNpbmZvLmdldHJlcHIoZnVuY2FyZ3M9VHJ1ZSkKKworICAgIGRlZiBweXRlc3RfdW5jb25maWd1
cmUoc2VsZik6CisgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ19rZXlib2FyZGludGVycnVwdF9t
ZW1vJyk6CisgICAgICAgICAgICBzZWxmLl9yZXBvcnRfa2V5Ym9hcmRpbnRlcnJ1cHQoKQorCisg
ICAgZGVmIF9yZXBvcnRfa2V5Ym9hcmRpbnRlcnJ1cHQoc2VsZik6CisgICAgICAgIGV4Y3JlcHIg
PSBzZWxmLl9rZXlib2FyZGludGVycnVwdF9tZW1vCisgICAgICAgIG1zZyA9IGV4Y3JlcHIucmVw
cmNyYXNoLm1lc3NhZ2UKKyAgICAgICAgc2VsZi53cml0ZV9zZXAoIiEiLCBtc2cpCisgICAgICAg
IGlmICJLZXlib2FyZEludGVycnVwdCIgaW4gbXNnOgorICAgICAgICAgICAgaWYgc2VsZi5jb25m
aWcub3B0aW9uLmZ1bGx0cmFjZToKKyAgICAgICAgICAgICAgICBleGNyZXByLnRvdGVybWluYWwo
c2VsZi5fdHcpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuX3R3Lmxp
bmUoInRvIHNob3cgYSBmdWxsIHRyYWNlYmFjayBvbiBLZXlib2FyZEludGVycnVwdCB1c2UgLS1m
dWxsdHJhY2UiLCB5ZWxsb3c9VHJ1ZSkKKyAgICAgICAgICAgICAgICBleGNyZXByLnJlcHJjcmFz
aC50b3Rlcm1pbmFsKHNlbGYuX3R3KQorCisgICAgZGVmIF9sb2NhdGlvbmxpbmUoc2VsZiwgbm9k
ZWlkLCBmc3BhdGgsIGxpbmVubywgZG9tYWluKToKKyAgICAgICAgZGVmIG1rcmVsKG5vZGVpZCk6
CisgICAgICAgICAgICBsaW5lID0gc2VsZi5jb25maWcuY3dkX3JlbGF0aXZlX25vZGVpZChub2Rl
aWQpCisgICAgICAgICAgICBpZiBkb21haW4gYW5kIGxpbmUuZW5kc3dpdGgoZG9tYWluKToKKyAg
ICAgICAgICAgICAgICBsaW5lID0gbGluZVs6LWxlbihkb21haW4pXQorICAgICAgICAgICAgICAg
IHZhbHVlcyA9IGRvbWFpbi5zcGxpdCgiWyIpCisgICAgICAgICAgICAgICAgdmFsdWVzWzBdID0g
dmFsdWVzWzBdLnJlcGxhY2UoJy4nLCAnOjonKSAgIyBkb24ndCByZXBsYWNlICcuJyBpbiBwYXJh
bXMKKyAgICAgICAgICAgICAgICBsaW5lICs9ICJbIi5qb2luKHZhbHVlcykKKyAgICAgICAgICAg
IHJldHVybiBsaW5lCisgICAgICAgICMgY29sbGVjdF9mc3BhdGggY29tZXMgZnJvbSB0ZXN0aWQg
d2hpY2ggaGFzIGEgIi8iLW5vcm1hbGl6ZWQgcGF0aAorCisgICAgICAgIGlmIGZzcGF0aDoKKyAg
ICAgICAgICAgIHJlcyA9IG1rcmVsKG5vZGVpZCkucmVwbGFjZSgiOjooKSIsICIiKSAgIyBwYXJl
bnMtbm9ybWFsaXphdGlvbgorICAgICAgICAgICAgaWYgbm9kZWlkLnNwbGl0KCI6OiIpWzBdICE9
IGZzcGF0aC5yZXBsYWNlKCJcXCIsIG5vZGVzLlNFUCk6CisgICAgICAgICAgICAgICAgcmVzICs9
ICIgPC0gIiArIHNlbGYuc3RhcnRkaXIuYmVzdHJlbHBhdGgoZnNwYXRoKQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgcmVzID0gIltsb2NhdGlvbl0iCisgICAgICAgIHJldHVybiByZXMgKyAi
ICIKKworICAgIGRlZiBfZ2V0ZmFpbHVyZWhlYWRsaW5lKHNlbGYsIHJlcCk6CisgICAgICAgIGlm
IGhhc2F0dHIocmVwLCAnbG9jYXRpb24nKToKKyAgICAgICAgICAgIGZzcGF0aCwgbGluZW5vLCBk
b21haW4gPSByZXAubG9jYXRpb24KKyAgICAgICAgICAgIHJldHVybiBkb21haW4KKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIHJldHVybiAidGVzdCBzZXNzaW9uIiAgIyBYWFg/CisKKyAgICBk
ZWYgX2dldGNyYXNobGluZShzZWxmLCByZXApOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBy
ZXR1cm4gc3RyKHJlcC5sb25ncmVwci5yZXByY3Jhc2gpCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1
dGVFcnJvcjoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXR1cm4gc3RyKHJl
cC5sb25ncmVwcilbOjUwXQorICAgICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAg
ICAgICAgICAgICAgIHJldHVybiAiIgorCisgICAgIworICAgICMgc3VtbWFyaWVzIGZvciBzZXNz
aW9uZmluaXNoCisgICAgIworICAgIGRlZiBnZXRyZXBvcnRzKHNlbGYsIG5hbWUpOgorICAgICAg
ICB2YWx1ZXMgPSBbXQorICAgICAgICBmb3IgeCBpbiBzZWxmLnN0YXRzLmdldChuYW1lLCBbXSk6
CisgICAgICAgICAgICBpZiBub3QgaGFzYXR0cih4LCAnX3BkYnNob3duJyk6CisgICAgICAgICAg
ICAgICAgdmFsdWVzLmFwcGVuZCh4KQorICAgICAgICByZXR1cm4gdmFsdWVzCisKKyAgICBkZWYg
c3VtbWFyeV93YXJuaW5ncyhzZWxmKToKKyAgICAgICAgaWYgc2VsZi5oYXNvcHQoInciKToKKyAg
ICAgICAgICAgIGFsbF93YXJuaW5ncyA9IHNlbGYuc3RhdHMuZ2V0KCJ3YXJuaW5ncyIpCisgICAg
ICAgICAgICBpZiBub3QgYWxsX3dhcm5pbmdzOgorICAgICAgICAgICAgICAgIHJldHVybgorCisg
ICAgICAgICAgICBncm91cGVkID0gaXRlcnRvb2xzLmdyb3VwYnkoYWxsX3dhcm5pbmdzLCBrZXk9
bGFtYmRhIHdyOiB3ci5nZXRfbG9jYXRpb24oc2VsZi5jb25maWcpKQorCisgICAgICAgICAgICBz
ZWxmLndyaXRlX3NlcCgiPSIsICJ3YXJuaW5ncyBzdW1tYXJ5IiwgeWVsbG93PVRydWUsIGJvbGQ9
RmFsc2UpCisgICAgICAgICAgICBmb3IgbG9jYXRpb24sIHdhcm5pbmdfcmVjb3JkcyBpbiBncm91
cGVkOgorICAgICAgICAgICAgICAgIHNlbGYuX3R3LmxpbmUoc3RyKGxvY2F0aW9uKSBvciAnPHVu
ZGV0ZXJtaW5lZCBsb2NhdGlvbj4nKQorICAgICAgICAgICAgICAgIGZvciB3IGluIHdhcm5pbmdf
cmVjb3JkczoKKyAgICAgICAgICAgICAgICAgICAgbGluZXMgPSB3Lm1lc3NhZ2Uuc3BsaXRsaW5l
cygpCisgICAgICAgICAgICAgICAgICAgIGluZGVudGVkID0gJ1xuJy5qb2luKCcgICcgKyB4IGZv
ciB4IGluIGxpbmVzKQorICAgICAgICAgICAgICAgICAgICBzZWxmLl90dy5saW5lKGluZGVudGVk
KQorICAgICAgICAgICAgICAgIHNlbGYuX3R3LmxpbmUoKQorICAgICAgICAgICAgc2VsZi5fdHcu
bGluZSgnLS0gRG9jczogaHR0cDovL2RvYy5weXRlc3Qub3JnL2VuL2xhdGVzdC93YXJuaW5ncy5o
dG1sJykKKworICAgIGRlZiBzdW1tYXJ5X3Bhc3NlcyhzZWxmKToKKyAgICAgICAgaWYgc2VsZi5j
b25maWcub3B0aW9uLnRic3R5bGUgIT0gIm5vIjoKKyAgICAgICAgICAgIGlmIHNlbGYuaGFzb3B0
KCJQIik6CisgICAgICAgICAgICAgICAgcmVwb3J0cyA9IHNlbGYuZ2V0cmVwb3J0cygncGFzc2Vk
JykKKyAgICAgICAgICAgICAgICBpZiBub3QgcmVwb3J0czoKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuCisgICAgICAgICAgICAgICAgc2VsZi53cml0ZV9zZXAoIj0iLCAiUEFTU0VTIikKKyAg
ICAgICAgICAgICAgICBmb3IgcmVwIGluIHJlcG9ydHM6CisgICAgICAgICAgICAgICAgICAgIG1z
ZyA9IHNlbGYuX2dldGZhaWx1cmVoZWFkbGluZShyZXApCisgICAgICAgICAgICAgICAgICAgIHNl
bGYud3JpdGVfc2VwKCJfIiwgbXNnKQorICAgICAgICAgICAgICAgICAgICBzZWxmLl9vdXRyZXBf
c3VtbWFyeShyZXApCisKKyAgICBkZWYgcHJpbnRfdGVhcmRvd25fc2VjdGlvbnMoc2VsZiwgcmVw
KToKKyAgICAgICAgZm9yIHNlY25hbWUsIGNvbnRlbnQgaW4gcmVwLnNlY3Rpb25zOgorICAgICAg
ICAgICAgaWYgJ3RlYXJkb3duJyBpbiBzZWNuYW1lOgorICAgICAgICAgICAgICAgIHNlbGYuX3R3
LnNlcCgnLScsIHNlY25hbWUpCisgICAgICAgICAgICAgICAgaWYgY29udGVudFstMTpdID09ICJc
biI6CisgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQgPSBjb250ZW50WzotMV0KKyAgICAgICAg
ICAgICAgICBzZWxmLl90dy5saW5lKGNvbnRlbnQpCisKKyAgICBkZWYgc3VtbWFyeV9mYWlsdXJl
cyhzZWxmKToKKyAgICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9uLnRic3R5bGUgIT0gIm5vIjoK
KyAgICAgICAgICAgIHJlcG9ydHMgPSBzZWxmLmdldHJlcG9ydHMoJ2ZhaWxlZCcpCisgICAgICAg
ICAgICBpZiBub3QgcmVwb3J0czoKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAg
IHNlbGYud3JpdGVfc2VwKCI9IiwgIkZBSUxVUkVTIikKKyAgICAgICAgICAgIGZvciByZXAgaW4g
cmVwb3J0czoKKyAgICAgICAgICAgICAgICBpZiBzZWxmLmNvbmZpZy5vcHRpb24udGJzdHlsZSA9
PSAibGluZSI6CisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBzZWxmLl9nZXRjcmFzaGxpbmUo
cmVwKQorICAgICAgICAgICAgICAgICAgICBzZWxmLndyaXRlX2xpbmUobGluZSkKKyAgICAgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBtc2cgPSBzZWxmLl9nZXRmYWlsdXJl
aGVhZGxpbmUocmVwKQorICAgICAgICAgICAgICAgICAgICBtYXJrdXAgPSB7J3JlZCc6IFRydWUs
ICdib2xkJzogVHJ1ZX0KKyAgICAgICAgICAgICAgICAgICAgc2VsZi53cml0ZV9zZXAoIl8iLCBt
c2csICoqbWFya3VwKQorICAgICAgICAgICAgICAgICAgICBzZWxmLl9vdXRyZXBfc3VtbWFyeShy
ZXApCisgICAgICAgICAgICAgICAgICAgIGZvciByZXBvcnQgaW4gc2VsZi5nZXRyZXBvcnRzKCcn
KToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHJlcG9ydC5ub2RlaWQgPT0gcmVwLm5vZGVp
ZCBhbmQgcmVwb3J0LndoZW4gPT0gJ3RlYXJkb3duJzoKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmLnByaW50X3RlYXJkb3duX3NlY3Rpb25zKHJlcG9ydCkKKworICAgIGRlZiBzdW1t
YXJ5X2Vycm9ycyhzZWxmKToKKyAgICAgICAgaWYgc2VsZi5jb25maWcub3B0aW9uLnRic3R5bGUg
IT0gIm5vIjoKKyAgICAgICAgICAgIHJlcG9ydHMgPSBzZWxmLmdldHJlcG9ydHMoJ2Vycm9yJykK
KyAgICAgICAgICAgIGlmIG5vdCByZXBvcnRzOgorICAgICAgICAgICAgICAgIHJldHVybgorICAg
ICAgICAgICAgc2VsZi53cml0ZV9zZXAoIj0iLCAiRVJST1JTIikKKyAgICAgICAgICAgIGZvciBy
ZXAgaW4gc2VsZi5zdGF0c1snZXJyb3InXToKKyAgICAgICAgICAgICAgICBtc2cgPSBzZWxmLl9n
ZXRmYWlsdXJlaGVhZGxpbmUocmVwKQorICAgICAgICAgICAgICAgIGlmIG5vdCBoYXNhdHRyKHJl
cCwgJ3doZW4nKToKKyAgICAgICAgICAgICAgICAgICAgIyBjb2xsZWN0CisgICAgICAgICAgICAg
ICAgICAgIG1zZyA9ICJFUlJPUiBjb2xsZWN0aW5nICIgKyBtc2cKKyAgICAgICAgICAgICAgICBl
bGlmIHJlcC53aGVuID09ICJzZXR1cCI6CisgICAgICAgICAgICAgICAgICAgIG1zZyA9ICJFUlJP
UiBhdCBzZXR1cCBvZiAiICsgbXNnCisgICAgICAgICAgICAgICAgZWxpZiByZXAud2hlbiA9PSAi
dGVhcmRvd24iOgorICAgICAgICAgICAgICAgICAgICBtc2cgPSAiRVJST1IgYXQgdGVhcmRvd24g
b2YgIiArIG1zZworICAgICAgICAgICAgICAgIHNlbGYud3JpdGVfc2VwKCJfIiwgbXNnKQorICAg
ICAgICAgICAgICAgIHNlbGYuX291dHJlcF9zdW1tYXJ5KHJlcCkKKworICAgIGRlZiBfb3V0cmVw
X3N1bW1hcnkoc2VsZiwgcmVwKToKKyAgICAgICAgcmVwLnRvdGVybWluYWwoc2VsZi5fdHcpCisg
ICAgICAgIGZvciBzZWNuYW1lLCBjb250ZW50IGluIHJlcC5zZWN0aW9uczoKKyAgICAgICAgICAg
IHNlbGYuX3R3LnNlcCgiLSIsIHNlY25hbWUpCisgICAgICAgICAgICBpZiBjb250ZW50Wy0xOl0g
PT0gIlxuIjoKKyAgICAgICAgICAgICAgICBjb250ZW50ID0gY29udGVudFs6LTFdCisgICAgICAg
ICAgICBzZWxmLl90dy5saW5lKGNvbnRlbnQpCisKKyAgICBkZWYgc3VtbWFyeV9zdGF0cyhzZWxm
KToKKyAgICAgICAgc2Vzc2lvbl9kdXJhdGlvbiA9IHRpbWUudGltZSgpIC0gc2VsZi5fc2Vzc2lv
bnN0YXJ0dGltZQorICAgICAgICAobGluZSwgY29sb3IpID0gYnVpbGRfc3VtbWFyeV9zdGF0c19s
aW5lKHNlbGYuc3RhdHMpCisgICAgICAgIG1zZyA9ICIlcyBpbiAlLjJmIHNlY29uZHMiICUgKGxp
bmUsIHNlc3Npb25fZHVyYXRpb24pCisgICAgICAgIG1hcmt1cCA9IHtjb2xvcjogVHJ1ZSwgJ2Jv
bGQnOiBUcnVlfQorCisgICAgICAgIGlmIHNlbGYudmVyYm9zaXR5ID49IDA6CisgICAgICAgICAg
ICBzZWxmLndyaXRlX3NlcCgiPSIsIG1zZywgKiptYXJrdXApCisgICAgICAgIGlmIHNlbGYudmVy
Ym9zaXR5ID09IC0xOgorICAgICAgICAgICAgc2VsZi53cml0ZV9saW5lKG1zZywgKiptYXJrdXAp
CisKKyAgICBkZWYgc3VtbWFyeV9kZXNlbGVjdGVkKHNlbGYpOgorICAgICAgICBpZiAnZGVzZWxl
Y3RlZCcgaW4gc2VsZi5zdGF0czoKKyAgICAgICAgICAgIHNlbGYud3JpdGVfc2VwKCI9IiwgIiVk
IHRlc3RzIGRlc2VsZWN0ZWQiICUgKAorICAgICAgICAgICAgICAgIGxlbihzZWxmLnN0YXRzWydk
ZXNlbGVjdGVkJ10pKSwgYm9sZD1UcnVlKQorCisKK2RlZiByZXByX3B5dGhvbnZlcnNpb24odj1O
b25lKToKKyAgICBpZiB2IGlzIE5vbmU6CisgICAgICAgIHYgPSBzeXMudmVyc2lvbl9pbmZvCisg
ICAgdHJ5OgorICAgICAgICByZXR1cm4gIiVzLiVzLiVzLSVzLSVzIiAlIHYKKyAgICBleGNlcHQg
KFR5cGVFcnJvciwgVmFsdWVFcnJvcik6CisgICAgICAgIHJldHVybiBzdHIodikKKworCitkZWYg
ZmxhdHRlbih2YWx1ZXMpOgorICAgIGZvciB4IGluIHZhbHVlczoKKyAgICAgICAgaWYgaXNpbnN0
YW5jZSh4LCAobGlzdCwgdHVwbGUpKToKKyAgICAgICAgICAgIGZvciB5IGluIGZsYXR0ZW4oeCk6
CisgICAgICAgICAgICAgICAgeWllbGQgeQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgeWll
bGQgeAorCisKK2RlZiBidWlsZF9zdW1tYXJ5X3N0YXRzX2xpbmUoc3RhdHMpOgorICAgIGtleXMg
PSAoImZhaWxlZCBwYXNzZWQgc2tpcHBlZCBkZXNlbGVjdGVkICIKKyAgICAgICAgICAgICJ4ZmFp
bGVkIHhwYXNzZWQgd2FybmluZ3MgZXJyb3IiKS5zcGxpdCgpCisgICAgdW5rbm93bl9rZXlfc2Vl
biA9IEZhbHNlCisgICAgZm9yIGtleSBpbiBzdGF0cy5rZXlzKCk6CisgICAgICAgIGlmIGtleSBu
b3QgaW4ga2V5czoKKyAgICAgICAgICAgIGlmIGtleTogICMgc2V0dXAvdGVhcmRvd24gcmVwb3J0
cyBoYXZlIGFuIGVtcHR5IGtleSwgaWdub3JlIHRoZW0KKyAgICAgICAgICAgICAgICBrZXlzLmFw
cGVuZChrZXkpCisgICAgICAgICAgICAgICAgdW5rbm93bl9rZXlfc2VlbiA9IFRydWUKKyAgICBw
YXJ0cyA9IFtdCisgICAgZm9yIGtleSBpbiBrZXlzOgorICAgICAgICB2YWwgPSBzdGF0cy5nZXQo
a2V5LCBOb25lKQorICAgICAgICBpZiB2YWw6CisgICAgICAgICAgICBwYXJ0cy5hcHBlbmQoIiVk
ICVzIiAlIChsZW4odmFsKSwga2V5KSkKKworICAgIGlmIHBhcnRzOgorICAgICAgICBsaW5lID0g
IiwgIi5qb2luKHBhcnRzKQorICAgIGVsc2U6CisgICAgICAgIGxpbmUgPSAibm8gdGVzdHMgcmFu
IgorCisgICAgaWYgJ2ZhaWxlZCcgaW4gc3RhdHMgb3IgJ2Vycm9yJyBpbiBzdGF0czoKKyAgICAg
ICAgY29sb3IgPSAncmVkJworICAgIGVsaWYgJ3dhcm5pbmdzJyBpbiBzdGF0cyBvciB1bmtub3du
X2tleV9zZWVuOgorICAgICAgICBjb2xvciA9ICd5ZWxsb3cnCisgICAgZWxpZiAncGFzc2VkJyBp
biBzdGF0czoKKyAgICAgICAgY29sb3IgPSAnZ3JlZW4nCisgICAgZWxzZToKKyAgICAgICAgY29s
b3IgPSAneWVsbG93JworCisgICAgcmV0dXJuIChsaW5lLCBjb2xvcikKKworCitkZWYgX3BsdWdp
bl9uYW1ldmVyc2lvbnMocGx1Z2luaW5mbyk6CisgICAgdmFsdWVzID0gW10KKyAgICBmb3IgcGx1
Z2luLCBkaXN0IGluIHBsdWdpbmluZm86CisgICAgICAgICMgZ2V0cyB1cyBuYW1lIGFuZCB2ZXJz
aW9uIQorICAgICAgICBuYW1lID0gJ3tkaXN0LnByb2plY3RfbmFtZX0te2Rpc3QudmVyc2lvbn0n
LmZvcm1hdChkaXN0PWRpc3QpCisgICAgICAgICMgcXVlc3Rpb25hYmxlIGNvbnZlbmllbmNlLCBi
dXQgaXQga2VlcHMgdGhpbmdzIHNob3J0CisgICAgICAgIGlmIG5hbWUuc3RhcnRzd2l0aCgicHl0
ZXN0LSIpOgorICAgICAgICAgICAgbmFtZSA9IG5hbWVbNzpdCisgICAgICAgICMgd2UgZGVjaWRl
ZCB0byBwcmludCBweXRob24gcGFja2FnZSBuYW1lcworICAgICAgICAjIHRoZXkgY2FuIGhhdmUg
bW9yZSB0aGFuIG9uZSBwbHVnaW4KKyAgICAgICAgaWYgbmFtZSBub3QgaW4gdmFsdWVzOgorICAg
ICAgICAgICAgdmFsdWVzLmFwcGVuZChuYW1lKQorICAgIHJldHVybiB2YWx1ZXMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdG1wZGlyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC90
bXBkaXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZGExYjAzMjIzN2FmYmY0NjhjYzBlMzQ5ZDJiMjYyYjkyODNl
OTc4MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdG1wZGlyLnB5CkBA
IC0wLDAgKzEsMTI2IEBACisiIiIgc3VwcG9ydCBmb3IgcHJvdmlkaW5nIHRlbXBvcmFyeSBkaXJl
Y3RvcmllcyB0byB0ZXN0IGZ1bmN0aW9ucy4gICIiIgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBh
YnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQgcmUKKwor
aW1wb3J0IHB5dGVzdAoraW1wb3J0IHB5Citmcm9tIF9weXRlc3QubW9ua2V5cGF0Y2ggaW1wb3J0
IE1vbmtleVBhdGNoCisKKworY2xhc3MgVGVtcGRpckZhY3Rvcnk6CisgICAgIiIiRmFjdG9yeSBm
b3IgdGVtcG9yYXJ5IGRpcmVjdG9yaWVzIHVuZGVyIHRoZSBjb21tb24gYmFzZSB0ZW1wIGRpcmVj
dG9yeS4KKworICAgIFRoZSBiYXNlIGRpcmVjdG9yeSBjYW4gYmUgY29uZmlndXJlZCB1c2luZyB0
aGUgYGAtLWJhc2V0ZW1wYGAgb3B0aW9uLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNl
bGYsIGNvbmZpZyk6CisgICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnCisgICAgICAgIHNlbGYu
dHJhY2UgPSBjb25maWcudHJhY2UuZ2V0KCJ0bXBkaXIiKQorCisgICAgZGVmIGVuc3VyZXRlbXAo
c2VsZiwgc3RyaW5nLCBkaXI9MSk6CisgICAgICAgICIiIiAoZGVwcmVjYXRlZCkgcmV0dXJuIHRl
bXBvcmFyeSBkaXJlY3RvcnkgcGF0aCB3aXRoCisgICAgICAgICAgICB0aGUgZ2l2ZW4gc3RyaW5n
IGFzIHRoZSB0cmFpbGluZyBwYXJ0LiAgSXQgaXMgdXN1YWxseQorICAgICAgICAgICAgYmV0dGVy
IHRvIHVzZSB0aGUgJ3RtcGRpcicgZnVuY3Rpb24gYXJndW1lbnQgd2hpY2gKKyAgICAgICAgICAg
IHByb3ZpZGVzIGFuIGVtcHR5IHVuaXF1ZS1wZXItdGVzdC1pbnZvY2F0aW9uIGRpcmVjdG9yeQor
ICAgICAgICAgICAgYW5kIGlzIGd1YXJhbnRlZWQgdG8gYmUgZW1wdHkuCisgICAgICAgICIiIgor
ICAgICAgICAjIHB5LmxvZy5fYXBpd2FybigiPjEuMSIsICJ1c2UgdG1wZGlyIGZ1bmN0aW9uIGFy
Z3VtZW50IikKKyAgICAgICAgcmV0dXJuIHNlbGYuZ2V0YmFzZXRlbXAoKS5lbnN1cmUoc3RyaW5n
LCBkaXI9ZGlyKQorCisgICAgZGVmIG1rdGVtcChzZWxmLCBiYXNlbmFtZSwgbnVtYmVyZWQ9VHJ1
ZSk6CisgICAgICAgICIiIkNyZWF0ZSBhIHN1YmRpcmVjdG9yeSBvZiB0aGUgYmFzZSB0ZW1wb3Jh
cnkgZGlyZWN0b3J5IGFuZCByZXR1cm4gaXQuCisgICAgICAgIElmIGBgbnVtYmVyZWRgYCwgZW5z
dXJlIHRoZSBkaXJlY3RvcnkgaXMgdW5pcXVlIGJ5IGFkZGluZyBhIG51bWJlcgorICAgICAgICBw
cmVmaXggZ3JlYXRlciB0aGFuIGFueSBleGlzdGluZyBvbmUuCisgICAgICAgICIiIgorICAgICAg
ICBiYXNldGVtcCA9IHNlbGYuZ2V0YmFzZXRlbXAoKQorICAgICAgICBpZiBub3QgbnVtYmVyZWQ6
CisgICAgICAgICAgICBwID0gYmFzZXRlbXAubWtkaXIoYmFzZW5hbWUpCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBwID0gcHkucGF0aC5sb2NhbC5tYWtlX251bWJlcmVkX2RpcihwcmVmaXg9
YmFzZW5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBrZWVwPTAsIHJvb3RkaXI9YmFzZXRlbXAsIGxvY2tfdGltZW91dD1Ob25lKQorICAgICAgICBz
ZWxmLnRyYWNlKCJta3RlbXAiLCBwKQorICAgICAgICByZXR1cm4gcAorCisgICAgZGVmIGdldGJh
c2V0ZW1wKHNlbGYpOgorICAgICAgICAiIiIgcmV0dXJuIGJhc2UgdGVtcG9yYXJ5IGRpcmVjdG9y
eS4gIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9iYXNldGVtcAor
ICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICBiYXNldGVtcCA9IHNl
bGYuY29uZmlnLm9wdGlvbi5iYXNldGVtcAorICAgICAgICAgICAgaWYgYmFzZXRlbXA6CisgICAg
ICAgICAgICAgICAgYmFzZXRlbXAgPSBweS5wYXRoLmxvY2FsKGJhc2V0ZW1wKQorICAgICAgICAg
ICAgICAgIGlmIGJhc2V0ZW1wLmNoZWNrKCk6CisgICAgICAgICAgICAgICAgICAgIGJhc2V0ZW1w
LnJlbW92ZSgpCisgICAgICAgICAgICAgICAgYmFzZXRlbXAubWtkaXIoKQorICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICB0ZW1wcm9vdCA9IHB5LnBhdGgubG9jYWwuZ2V0X3RlbXBy
b290KCkKKyAgICAgICAgICAgICAgICB1c2VyID0gZ2V0X3VzZXIoKQorICAgICAgICAgICAgICAg
IGlmIHVzZXI6CisgICAgICAgICAgICAgICAgICAgICMgdXNlIGEgc3ViLWRpcmVjdG9yeSBpbiB0
aGUgdGVtcHJvb3QgdG8gc3BlZWQtdXAKKyAgICAgICAgICAgICAgICAgICAgIyBtYWtlX251bWJl
cmVkX2RpcigpIGNhbGwKKyAgICAgICAgICAgICAgICAgICAgcm9vdGRpciA9IHRlbXByb290Lmpv
aW4oJ3B5dGVzdC1vZi0lcycgJSB1c2VyKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgICAgIHJvb3RkaXIgPSB0ZW1wcm9vdAorICAgICAgICAgICAgICAgIHJvb3RkaXIu
ZW5zdXJlKGRpcj0xKQorICAgICAgICAgICAgICAgIGJhc2V0ZW1wID0gcHkucGF0aC5sb2NhbC5t
YWtlX251bWJlcmVkX2RpcihwcmVmaXg9J3B5dGVzdC0nLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb290ZGlyPXJvb3RkaXIpCisg
ICAgICAgICAgICBzZWxmLl9iYXNldGVtcCA9IHQgPSBiYXNldGVtcC5yZWFscGF0aCgpCisgICAg
ICAgICAgICBzZWxmLnRyYWNlKCJuZXcgYmFzZXRlbXAiLCB0KQorICAgICAgICAgICAgcmV0dXJu
IHQKKworICAgIGRlZiBmaW5pc2goc2VsZik6CisgICAgICAgIHNlbGYudHJhY2UoImZpbmlzaCIp
CisKKworZGVmIGdldF91c2VyKCk6CisgICAgIiIiUmV0dXJuIHRoZSBjdXJyZW50IHVzZXIgbmFt
ZSwgb3IgTm9uZSBpZiBnZXR1c2VyKCkgZG9lcyBub3Qgd29yaworICAgIGluIHRoZSBjdXJyZW50
IGVudmlyb25tZW50IChzZWUgIzEwMTApLgorICAgICIiIgorICAgIGltcG9ydCBnZXRwYXNzCisg
ICAgdHJ5OgorICAgICAgICByZXR1cm4gZ2V0cGFzcy5nZXR1c2VyKCkKKyAgICBleGNlcHQgKElt
cG9ydEVycm9yLCBLZXlFcnJvcik6CisgICAgICAgIHJldHVybiBOb25lCisKKworIyBiYWNrd2Fy
ZCBjb21wYXRpYmlsaXR5CitUZW1wZGlySGFuZGxlciA9IFRlbXBkaXJGYWN0b3J5CisKKworZGVm
IHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKKyAgICAiIiJDcmVhdGUgYSBUZW1wZGlyRmFjdG9y
eSBhbmQgYXR0YWNoIGl0IHRvIHRoZSBjb25maWcgb2JqZWN0LgorCisgICAgVGhpcyBpcyB0byBj
b21wbHkgd2l0aCBleGlzdGluZyBwbHVnaW5zIHdoaWNoIGV4cGVjdCB0aGUgaGFuZGxlciB0byBi
ZQorICAgIGF2YWlsYWJsZSBhdCBweXRlc3RfY29uZmlndXJlIHRpbWUsIGJ1dCBpZGVhbGx5IHNo
b3VsZCBiZSBtb3ZlZCBlbnRpcmVseQorICAgIHRvIHRoZSB0bXBkaXJfZmFjdG9yeSBzZXNzaW9u
IGZpeHR1cmUuCisgICAgIiIiCisgICAgbXAgPSBNb25rZXlQYXRjaCgpCisgICAgdCA9IFRlbXBk
aXJGYWN0b3J5KGNvbmZpZykKKyAgICBjb25maWcuX2NsZWFudXAuZXh0ZW5kKFttcC51bmRvLCB0
LmZpbmlzaF0pCisgICAgbXAuc2V0YXR0cihjb25maWcsICdfdG1wZGlyaGFuZGxlcicsIHQsIHJh
aXNpbmc9RmFsc2UpCisgICAgbXAuc2V0YXR0cihweXRlc3QsICdlbnN1cmV0ZW1wJywgdC5lbnN1
cmV0ZW1wLCByYWlzaW5nPUZhbHNlKQorCisKK0BweXRlc3QuZml4dHVyZShzY29wZT0nc2Vzc2lv
bicpCitkZWYgdG1wZGlyX2ZhY3RvcnkocmVxdWVzdCk6CisgICAgIiIiUmV0dXJuIGEgVGVtcGRp
ckZhY3RvcnkgaW5zdGFuY2UgZm9yIHRoZSB0ZXN0IHNlc3Npb24uCisgICAgIiIiCisgICAgcmV0
dXJuIHJlcXVlc3QuY29uZmlnLl90bXBkaXJoYW5kbGVyCisKKworQHB5dGVzdC5maXh0dXJlCitk
ZWYgdG1wZGlyKHJlcXVlc3QsIHRtcGRpcl9mYWN0b3J5KToKKyAgICAiIiJSZXR1cm4gYSB0ZW1w
b3JhcnkgZGlyZWN0b3J5IHBhdGggb2JqZWN0CisgICAgd2hpY2ggaXMgdW5pcXVlIHRvIGVhY2gg
dGVzdCBmdW5jdGlvbiBpbnZvY2F0aW9uLAorICAgIGNyZWF0ZWQgYXMgYSBzdWIgZGlyZWN0b3J5
IG9mIHRoZSBiYXNlIHRlbXBvcmFyeQorICAgIGRpcmVjdG9yeS4gIFRoZSByZXR1cm5lZCBvYmpl
Y3QgaXMgYSBgcHkucGF0aC5sb2NhbGBfCisgICAgcGF0aCBvYmplY3QuCisgICAgIiIiCisgICAg
bmFtZSA9IHJlcXVlc3Qubm9kZS5uYW1lCisgICAgbmFtZSA9IHJlLnN1YihyIltcV10iLCAiXyIs
IG5hbWUpCisgICAgTUFYVkFMID0gMzAKKyAgICBpZiBsZW4obmFtZSkgPiBNQVhWQUw6CisgICAg
ICAgIG5hbWUgPSBuYW1lWzpNQVhWQUxdCisgICAgeCA9IHRtcGRpcl9mYWN0b3J5Lm1rdGVtcChu
YW1lLCBudW1iZXJlZD1UcnVlKQorICAgIHJldHVybiB4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9fcHl0ZXN0L3VuaXR0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC91bml0dGVzdC5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zZGRiMzk0OTVlMzk3MDM0NGI0YTZkOGY5MmE4NjgwODdiNWZlZjI5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC91bml0dGVzdC5weQpAQCAtMCwwICsx
LDIzNyBAQAorIiIiIGRpc2NvdmVyeSBhbmQgcnVubmluZyBvZiBzdGQtbGlicmFyeSAidW5pdHRl
c3QiIHN0eWxlIHRlc3RzLiAiIiIKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1w
b3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IHN5cworaW1wb3J0IHRyYWNl
YmFjaworCisjIGZvciB0cmFuc2ZlcnJpbmcgbWFya2VycworaW1wb3J0IF9weXRlc3QuX2NvZGUK
K2Zyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IGhvb2tpbXBsCitmcm9tIF9weXRlc3Qub3V0Y29t
ZXMgaW1wb3J0IGZhaWwsIHNraXAsIHhmYWlsCitmcm9tIF9weXRlc3QucHl0aG9uIGltcG9ydCB0
cmFuc2Zlcl9tYXJrZXJzLCBDbGFzcywgTW9kdWxlLCBGdW5jdGlvbgorCisKK2RlZiBweXRlc3Rf
cHljb2xsZWN0X21ha2VpdGVtKGNvbGxlY3RvciwgbmFtZSwgb2JqKToKKyAgICAjIGhhcyB1bml0
dGVzdCBiZWVuIGltcG9ydGVkIGFuZCBpcyBvYmogYSBzdWJjbGFzcyBvZiBpdHMgVGVzdENhc2U/
CisgICAgdHJ5OgorICAgICAgICBpZiBub3QgaXNzdWJjbGFzcyhvYmosIHN5cy5tb2R1bGVzWyJ1
bml0dGVzdCJdLlRlc3RDYXNlKToKKyAgICAgICAgICAgIHJldHVybgorICAgIGV4Y2VwdCBFeGNl
cHRpb246CisgICAgICAgIHJldHVybgorICAgICMgeWVzLCBzbyBsZXQncyBjb2xsZWN0IGl0Cisg
ICAgcmV0dXJuIFVuaXRUZXN0Q2FzZShuYW1lLCBwYXJlbnQ9Y29sbGVjdG9yKQorCisKK2NsYXNz
IFVuaXRUZXN0Q2FzZShDbGFzcyk6CisgICAgIyBtYXJrZXIgZm9yIGZpeHR1cmVtYW5nZXIuZ2V0
Zml4dHVyZWluZm8oKQorICAgICMgdG8gZGVjbGFyZSB0aGF0IG91ciBjaGlsZHJlbiBkbyBub3Qg
c3VwcG9ydCBmdW5jYXJncworICAgIG5vZnVuY2FyZ3MgPSBUcnVlCisKKyAgICBkZWYgc2V0dXAo
c2VsZik6CisgICAgICAgIGNscyA9IHNlbGYub2JqCisgICAgICAgIGlmIGdldGF0dHIoY2xzLCAn
X191bml0dGVzdF9za2lwX18nLCBGYWxzZSk6CisgICAgICAgICAgICByZXR1cm4gICMgc2tpcHBl
ZAorICAgICAgICBzZXR1cCA9IGdldGF0dHIoY2xzLCAnc2V0VXBDbGFzcycsIE5vbmUpCisgICAg
ICAgIGlmIHNldHVwIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2V0dXAoKQorICAgICAgICB0
ZWFyZG93biA9IGdldGF0dHIoY2xzLCAndGVhckRvd25DbGFzcycsIE5vbmUpCisgICAgICAgIGlm
IHRlYXJkb3duIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5hZGRmaW5hbGl6ZXIodGVh
cmRvd24pCisgICAgICAgIHN1cGVyKFVuaXRUZXN0Q2FzZSwgc2VsZikuc2V0dXAoKQorCisgICAg
ZGVmIGNvbGxlY3Qoc2VsZik6CisgICAgICAgIGZyb20gdW5pdHRlc3QgaW1wb3J0IFRlc3RMb2Fk
ZXIKKyAgICAgICAgY2xzID0gc2VsZi5vYmoKKyAgICAgICAgaWYgbm90IGdldGF0dHIoY2xzLCAi
X190ZXN0X18iLCBUcnVlKToKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBzZWxmLnNlc3Np
b24uX2ZpeHR1cmVtYW5hZ2VyLnBhcnNlZmFjdG9yaWVzKHNlbGYsIHVuaXR0ZXN0PVRydWUpCisg
ICAgICAgIGxvYWRlciA9IFRlc3RMb2FkZXIoKQorICAgICAgICBtb2R1bGUgPSBzZWxmLmdldHBh
cmVudChNb2R1bGUpLm9iagorICAgICAgICBmb3VuZHNvbWV0aGluZyA9IEZhbHNlCisgICAgICAg
IGZvciBuYW1lIGluIGxvYWRlci5nZXRUZXN0Q2FzZU5hbWVzKHNlbGYub2JqKToKKyAgICAgICAg
ICAgIHggPSBnZXRhdHRyKHNlbGYub2JqLCBuYW1lKQorICAgICAgICAgICAgaWYgbm90IGdldGF0
dHIoeCwgJ19fdGVzdF9fJywgVHJ1ZSk6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAg
ICAgICAgIGZ1bmNvYmogPSBnZXRhdHRyKHgsICdpbV9mdW5jJywgeCkKKyAgICAgICAgICAgIHRy
YW5zZmVyX21hcmtlcnMoZnVuY29iaiwgY2xzLCBtb2R1bGUpCisgICAgICAgICAgICB5aWVsZCBU
ZXN0Q2FzZUZ1bmN0aW9uKG5hbWUsIHBhcmVudD1zZWxmKQorICAgICAgICAgICAgZm91bmRzb21l
dGhpbmcgPSBUcnVlCisKKyAgICAgICAgaWYgbm90IGZvdW5kc29tZXRoaW5nOgorICAgICAgICAg
ICAgcnVudGVzdCA9IGdldGF0dHIoc2VsZi5vYmosICdydW5UZXN0JywgTm9uZSkKKyAgICAgICAg
ICAgIGlmIHJ1bnRlc3QgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgdXQgPSBzeXMubW9k
dWxlcy5nZXQoInR3aXN0ZWQudHJpYWwudW5pdHRlc3QiLCBOb25lKQorICAgICAgICAgICAgICAg
IGlmIHV0IGlzIE5vbmUgb3IgcnVudGVzdCAhPSB1dC5UZXN0Q2FzZS5ydW5UZXN0OgorICAgICAg
ICAgICAgICAgICAgICB5aWVsZCBUZXN0Q2FzZUZ1bmN0aW9uKCdydW5UZXN0JywgcGFyZW50PXNl
bGYpCisKKworY2xhc3MgVGVzdENhc2VGdW5jdGlvbihGdW5jdGlvbik6CisgICAgX2V4Y2luZm8g
PSBOb25lCisKKyAgICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RjYXNlID0g
c2VsZi5wYXJlbnQub2JqKHNlbGYubmFtZSkKKyAgICAgICAgc2VsZi5fZml4X3VuaXR0ZXN0X3Nr
aXBfZGVjb3JhdG9yKCkKKyAgICAgICAgc2VsZi5fb2JqID0gZ2V0YXR0cihzZWxmLl90ZXN0Y2Fz
ZSwgc2VsZi5uYW1lKQorICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX3Rlc3RjYXNlLCAnc2V0dXBf
bWV0aG9kJyk6CisgICAgICAgICAgICBzZWxmLl90ZXN0Y2FzZS5zZXR1cF9tZXRob2Qoc2VsZi5f
b2JqKQorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJfcmVxdWVzdCIpOgorICAgICAgICAgICAg
c2VsZi5fcmVxdWVzdC5fZmlsbGZpeHR1cmVzKCkKKworICAgIGRlZiBfZml4X3VuaXR0ZXN0X3Nr
aXBfZGVjb3JhdG9yKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhlIEB1bml0dGVzdC5z
a2lwIGRlY29yYXRvciBjYWxscyBmdW5jdG9vbHMud3JhcHMoc2VsZi5fdGVzdGNhc2UpCisgICAg
ICAgIFRoZSBjYWxsIHRvIGZ1bmN0b29scy53cmFwcygpIGZhaWxzIHVubGVzcyBzZWxmLl90ZXN0
Y2FzZQorICAgICAgICBoYXMgYSBfX25hbWVfXyBhdHRyaWJ1dGUuIFRoaXMgaXMgdXN1YWxseSBh
dXRvbWF0aWNhbGx5IHN1cHBsaWVkCisgICAgICAgIGlmIHRoZSB0ZXN0IGlzIGEgZnVuY3Rpb24g
b3IgbWV0aG9kLCBidXQgd2UgbmVlZCB0byBhZGQgbWFudWFsbHkKKyAgICAgICAgaGVyZS4KKwor
ICAgICAgICBTZWUgaXNzdWUgIzExNjkKKyAgICAgICAgIiIiCisgICAgICAgIGlmIHN5cy52ZXJz
aW9uX2luZm9bMF0gPT0gMjoKKyAgICAgICAgICAgIHNldGF0dHIoc2VsZi5fdGVzdGNhc2UsICJf
X25hbWVfXyIsIHNlbGYubmFtZSkKKworICAgIGRlZiB0ZWFyZG93bihzZWxmKToKKyAgICAgICAg
aWYgaGFzYXR0cihzZWxmLl90ZXN0Y2FzZSwgJ3RlYXJkb3duX21ldGhvZCcpOgorICAgICAgICAg
ICAgc2VsZi5fdGVzdGNhc2UudGVhcmRvd25fbWV0aG9kKHNlbGYuX29iaikKKyAgICAgICAgIyBB
bGxvdyBnYXJiYWdlIGNvbGxlY3Rpb24gb24gVGVzdENhc2UgaW5zdGFuY2UgYXR0cmlidXRlcy4K
KyAgICAgICAgc2VsZi5fdGVzdGNhc2UgPSBOb25lCisgICAgICAgIHNlbGYuX29iaiA9IE5vbmUK
KworICAgIGRlZiBzdGFydFRlc3Qoc2VsZiwgdGVzdGNhc2UpOgorICAgICAgICBwYXNzCisKKyAg
ICBkZWYgX2FkZGV4Y2luZm8oc2VsZiwgcmF3ZXhjaW5mbyk6CisgICAgICAgICMgdW53cmFwIHBv
dGVudGlhbCBleGNlcHRpb24gaW5mbyAoc2VlIHR3aXN0ZWQgdHJpYWwgc3VwcG9ydCBiZWxvdykK
KyAgICAgICAgcmF3ZXhjaW5mbyA9IGdldGF0dHIocmF3ZXhjaW5mbywgJ19yYXdleGNpbmZvJywg
cmF3ZXhjaW5mbykKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZXhjaW5mbyA9IF9weXRlc3Qu
X2NvZGUuRXhjZXB0aW9uSW5mbyhyYXdleGNpbmZvKQorICAgICAgICBleGNlcHQgVHlwZUVycm9y
OgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAg
ICAgICAgdmFsdWVzID0gdHJhY2ViYWNrLmZvcm1hdF9leGNlcHRpb24oKnJhd2V4Y2luZm8pCisg
ICAgICAgICAgICAgICAgICAgIHZhbHVlcy5pbnNlcnQoMCwgIk5PVEU6IEluY29tcGF0aWJsZSBF
eGNlcHRpb24gUmVwcmVzZW50YXRpb24sICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiZGlzcGxheWluZyBuYXRpdmVseTpcblxuIikKKyAgICAgICAgICAgICAgICAgICAgZmFp
bCgiIi5qb2luKHZhbHVlcyksIHB5dHJhY2U9RmFsc2UpCisgICAgICAgICAgICAgICAgZXhjZXB0
IChmYWlsLkV4Y2VwdGlvbiwgS2V5Ym9hcmRJbnRlcnJ1cHQpOgorICAgICAgICAgICAgICAgICAg
ICByYWlzZQorICAgICAgICAgICAgICAgIGV4Y2VwdDogICMgbm9xYQorICAgICAgICAgICAgICAg
ICAgICBmYWlsKCJFUlJPUjogVW5rbm93biBJbmNvbXBhdGlibGUgRXhjZXB0aW9uICIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAicmVwcmVzZW50YXRpb246XG4lciIgJSAocmF3ZXhjaW5mbywp
LCBweXRyYWNlPUZhbHNlKQorICAgICAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0Ogor
ICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICBleGNlcHQgZmFpbC5FeGNlcHRpb246
CisgICAgICAgICAgICAgICAgZXhjaW5mbyA9IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mbygp
CisgICAgICAgIHNlbGYuX19kaWN0X18uc2V0ZGVmYXVsdCgnX2V4Y2luZm8nLCBbXSkuYXBwZW5k
KGV4Y2luZm8pCisKKyAgICBkZWYgYWRkRXJyb3Ioc2VsZiwgdGVzdGNhc2UsIHJhd2V4Y2luZm8p
OgorICAgICAgICBzZWxmLl9hZGRleGNpbmZvKHJhd2V4Y2luZm8pCisKKyAgICBkZWYgYWRkRmFp
bHVyZShzZWxmLCB0ZXN0Y2FzZSwgcmF3ZXhjaW5mbyk6CisgICAgICAgIHNlbGYuX2FkZGV4Y2lu
Zm8ocmF3ZXhjaW5mbykKKworICAgIGRlZiBhZGRTa2lwKHNlbGYsIHRlc3RjYXNlLCByZWFzb24p
OgorICAgICAgICB0cnk6CisgICAgICAgICAgICBza2lwKHJlYXNvbikKKyAgICAgICAgZXhjZXB0
IHNraXAuRXhjZXB0aW9uOgorICAgICAgICAgICAgc2VsZi5fc2tpcHBlZF9ieV9tYXJrID0gVHJ1
ZQorICAgICAgICAgICAgc2VsZi5fYWRkZXhjaW5mbyhzeXMuZXhjX2luZm8oKSkKKworICAgIGRl
ZiBhZGRFeHBlY3RlZEZhaWx1cmUoc2VsZiwgdGVzdGNhc2UsIHJhd2V4Y2luZm8sIHJlYXNvbj0i
Iik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHhmYWlsKHN0cihyZWFzb24pKQorICAgICAg
ICBleGNlcHQgeGZhaWwuRXhjZXB0aW9uOgorICAgICAgICAgICAgc2VsZi5fYWRkZXhjaW5mbyhz
eXMuZXhjX2luZm8oKSkKKworICAgIGRlZiBhZGRVbmV4cGVjdGVkU3VjY2VzcyhzZWxmLCB0ZXN0
Y2FzZSwgcmVhc29uPSIiKToKKyAgICAgICAgc2VsZi5fdW5leHBlY3RlZHN1Y2Nlc3MgPSByZWFz
b24KKworICAgIGRlZiBhZGRTdWNjZXNzKHNlbGYsIHRlc3RjYXNlKToKKyAgICAgICAgcGFzcwor
CisgICAgZGVmIHN0b3BUZXN0KHNlbGYsIHRlc3RjYXNlKToKKyAgICAgICAgcGFzcworCisgICAg
ZGVmIF9oYW5kbGVfc2tpcChzZWxmKToKKyAgICAgICAgIyBpbXBsZW1lbnRzIHRoZSBza2lwcGlu
ZyBtYWNoaW5lcnkgKHNlZSAjMjEzNykKKyAgICAgICAgIyBhbmFsb2cgdG8gcHl0aG9ucyBMaWIv
dW5pdHRlc3QvY2FzZS5weTpydW4KKyAgICAgICAgdGVzdE1ldGhvZCA9IGdldGF0dHIoc2VsZi5f
dGVzdGNhc2UsIHNlbGYuX3Rlc3RjYXNlLl90ZXN0TWV0aG9kTmFtZSkKKyAgICAgICAgaWYgKGdl
dGF0dHIoc2VsZi5fdGVzdGNhc2UuX19jbGFzc19fLCAiX191bml0dGVzdF9za2lwX18iLCBGYWxz
ZSkgb3IKKyAgICAgICAgICAgICAgICBnZXRhdHRyKHRlc3RNZXRob2QsICJfX3VuaXR0ZXN0X3Nr
aXBfXyIsIEZhbHNlKSk6CisgICAgICAgICAgICAjIElmIHRoZSBjbGFzcyBvciBtZXRob2Qgd2Fz
IHNraXBwZWQuCisgICAgICAgICAgICBza2lwX3doeSA9IChnZXRhdHRyKHNlbGYuX3Rlc3RjYXNl
Ll9fY2xhc3NfXywgJ19fdW5pdHRlc3Rfc2tpcF93aHlfXycsICcnKSBvcgorICAgICAgICAgICAg
ICAgICAgICAgICAgZ2V0YXR0cih0ZXN0TWV0aG9kLCAnX191bml0dGVzdF9za2lwX3doeV9fJywg
JycpKQorICAgICAgICAgICAgdHJ5OiAgIyBQWTMsIHVuaXR0ZXN0MiBvbiBQWTIKKyAgICAgICAg
ICAgICAgICBzZWxmLl90ZXN0Y2FzZS5fYWRkU2tpcChzZWxmLCBzZWxmLl90ZXN0Y2FzZSwgc2tp
cF93aHkpCisgICAgICAgICAgICBleGNlcHQgVHlwZUVycm9yOiAgIyBQWTIKKyAgICAgICAgICAg
ICAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdICE9IDI6CisgICAgICAgICAgICAgICAgICAgIHJh
aXNlCisgICAgICAgICAgICAgICAgc2VsZi5fdGVzdGNhc2UuX2FkZFNraXAoc2VsZiwgc2tpcF93
aHkpCisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAg
IGRlZiBydW50ZXN0KHNlbGYpOgorICAgICAgICBpZiBzZWxmLmNvbmZpZy5wbHVnaW5tYW5hZ2Vy
LmdldF9wbHVnaW4oInBkYmludm9rZSIpIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLl90ZXN0
Y2FzZShyZXN1bHQ9c2VsZikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgZGlzYWJsZXMg
dGVhckRvd24gYW5kIGNsZWFudXBzIGZvciBwb3N0IG1vcnRlbSBkZWJ1Z2dpbmcgKHNlZSAjMTg5
MCkKKyAgICAgICAgICAgIGlmIHNlbGYuX2hhbmRsZV9za2lwKCk6CisgICAgICAgICAgICAgICAg
cmV0dXJuCisgICAgICAgICAgICBzZWxmLl90ZXN0Y2FzZS5kZWJ1ZygpCisKKyAgICBkZWYgX3By
dW5ldHJhY2ViYWNrKHNlbGYsIGV4Y2luZm8pOgorICAgICAgICBGdW5jdGlvbi5fcHJ1bmV0cmFj
ZWJhY2soc2VsZiwgZXhjaW5mbykKKyAgICAgICAgdHJhY2ViYWNrID0gZXhjaW5mby50cmFjZWJh
Y2suZmlsdGVyKAorICAgICAgICAgICAgbGFtYmRhIHg6IG5vdCB4LmZyYW1lLmZfZ2xvYmFscy5n
ZXQoJ19fdW5pdHRlc3QnKSkKKyAgICAgICAgaWYgdHJhY2ViYWNrOgorICAgICAgICAgICAgZXhj
aW5mby50cmFjZWJhY2sgPSB0cmFjZWJhY2sKKworCitAaG9va2ltcGwodHJ5Zmlyc3Q9VHJ1ZSkK
K2RlZiBweXRlc3RfcnVudGVzdF9tYWtlcmVwb3J0KGl0ZW0sIGNhbGwpOgorICAgIGlmIGlzaW5z
dGFuY2UoaXRlbSwgVGVzdENhc2VGdW5jdGlvbik6CisgICAgICAgIGlmIGl0ZW0uX2V4Y2luZm86
CisgICAgICAgICAgICBjYWxsLmV4Y2luZm8gPSBpdGVtLl9leGNpbmZvLnBvcCgwKQorICAgICAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGRlbCBjYWxsLnJlc3VsdAorICAgICAgICAgICAg
ZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgICAgIHBhc3MKKworIyB0d2lzdGVk
IHRyaWFsIHN1cHBvcnQKKworCitAaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKK2RlZiBweXRl
c3RfcnVudGVzdF9wcm90b2NvbChpdGVtKToKKyAgICBpZiBpc2luc3RhbmNlKGl0ZW0sIFRlc3RD
YXNlRnVuY3Rpb24pIGFuZCBcCisgICAgICAgJ3R3aXN0ZWQudHJpYWwudW5pdHRlc3QnIGluIHN5
cy5tb2R1bGVzOgorICAgICAgICB1dCA9IHN5cy5tb2R1bGVzWyd0d2lzdGVkLnB5dGhvbi5mYWls
dXJlJ10KKyAgICAgICAgRmFpbHVyZV9faW5pdF9fID0gdXQuRmFpbHVyZS5fX2luaXRfXworICAg
ICAgICBjaGVja190ZXN0Y2FzZV9pbXBsZW1lbnRzX3RyaWFsX3JlcG9ydGVyKCkKKworICAgICAg
ICBkZWYgZXhjc3RvcmUoc2VsZiwgZXhjX3ZhbHVlPU5vbmUsIGV4Y190eXBlPU5vbmUsIGV4Y190
Yj1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgY2FwdHVyZVZhcnM9Tm9uZSk6CisgICAgICAg
ICAgICBpZiBleGNfdmFsdWUgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBzZWxmLl9yYXdleGNp
bmZvID0gc3lzLmV4Y19pbmZvKCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg
aWYgZXhjX3R5cGUgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgZXhjX3R5cGUgPSB0eXBl
KGV4Y192YWx1ZSkKKyAgICAgICAgICAgICAgICBzZWxmLl9yYXdleGNpbmZvID0gKGV4Y190eXBl
LCBleGNfdmFsdWUsIGV4Y190YikKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBG
YWlsdXJlX19pbml0X18oc2VsZiwgZXhjX3ZhbHVlLCBleGNfdHlwZSwgZXhjX3RiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjYXB0dXJlVmFycz1jYXB0dXJlVmFycykKKyAgICAg
ICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6CisgICAgICAgICAgICAgICAgRmFpbHVyZV9faW5pdF9f
KHNlbGYsIGV4Y192YWx1ZSwgZXhjX3R5cGUsIGV4Y190YikKKworICAgICAgICB1dC5GYWlsdXJl
Ll9faW5pdF9fID0gZXhjc3RvcmUKKyAgICAgICAgeWllbGQKKyAgICAgICAgdXQuRmFpbHVyZS5f
X2luaXRfXyA9IEZhaWx1cmVfX2luaXRfXworICAgIGVsc2U6CisgICAgICAgIHlpZWxkCisKKwor
ZGVmIGNoZWNrX3Rlc3RjYXNlX2ltcGxlbWVudHNfdHJpYWxfcmVwb3J0ZXIoZG9uZT1bXSk6Cisg
ICAgaWYgZG9uZToKKyAgICAgICAgcmV0dXJuCisgICAgZnJvbSB6b3BlLmludGVyZmFjZSBpbXBv
cnQgY2xhc3NJbXBsZW1lbnRzCisgICAgZnJvbSB0d2lzdGVkLnRyaWFsLml0cmlhbCBpbXBvcnQg
SVJlcG9ydGVyCisgICAgY2xhc3NJbXBsZW1lbnRzKFRlc3RDYXNlRnVuY3Rpb24sIElSZXBvcnRl
cikKKyAgICBkb25lLmFwcGVuZCgxKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdzNjLWltcG9ydC5sb2cKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODgwZWZjMGM5MTBmZDA3NjJlZjYwMTNmNDhlZmQzMzQ2M2Y0Mzk4ZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSw1
MSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
KwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAor
CitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xp
c3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fX2luaXRfXy5weQorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3QvX2FyZ2NvbXBsZXRlLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9jYWNoZXBy
b3ZpZGVyLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9jYXB0dXJlLnB5CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
X3B5dGVzdC9jb21wYXQucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2NvbmZpZy5weQorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L19weXRlc3QvZGVidWdnaW5nLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9kZXByZWNh
dGVkLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9kb2N0ZXN0LnB5CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5
dGVzdC9maXh0dXJlcy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvZnJlZXplX3N1cHBvcnQucHkK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2hlbHBjb25maWcucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L2hvb2tzcGVjLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9qdW5pdHhtbC5weQorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3QvbG9nZ2luZy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvbWFpbi5weQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L19weXRlc3QvbWFyay5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvbW9ua2V5cGF0
Y2gucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L25vZGVzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVz
dC9ub3NlLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9vdXRjb21lcy5weQorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L19weXRlc3QvcGFzdGViaW4ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3B5dGVzdGVyLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvX3B5dGVzdC9weXRob24ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3B5dGhv
bl9hcGkucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3JlY3dhcm4ucHkKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9f
cHl0ZXN0L3Jlc3VsdGxvZy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcnVubmVyLnB5CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvX3B5dGVzdC9zZXR1cG9ubHkucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3NldHVw
cGxhbi5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvc2tpcHBpbmcucHkKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9f
cHl0ZXN0L3Rlcm1pbmFsLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC90bXBkaXIucHkKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L3VuaXR0ZXN0LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC93YXJuaW5n
cy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC93YXJuaW5ncy5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L19weXRlc3Qvd2FybmluZ3MucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2MyYjE5MTRmYjY5MTY0YjM4
MGYxZjUyOTRmNTc0OWVkM2U0OTI5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19w
eXRlc3Qvd2FybmluZ3MucHkKQEAgLTAsMCArMSw5NiBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorCitpbXBvcnQgd2Fy
bmluZ3MKK2Zyb20gY29udGV4dGxpYiBpbXBvcnQgY29udGV4dG1hbmFnZXIKKworaW1wb3J0IHB5
dGVzdAorCitmcm9tIF9weXRlc3QgaW1wb3J0IGNvbXBhdAorCisKK2RlZiBfc2V0b3B0aW9uKHdt
b2QsIGFyZyk6CisgICAgIiIiCisgICAgQ29weSBvZiB0aGUgd2FybmluZy5fc2V0b3B0aW9uIGZ1
bmN0aW9uIGJ1dCBkb2VzIG5vdCBlc2NhcGUgYXJndW1lbnRzLgorICAgICIiIgorICAgIHBhcnRz
ID0gYXJnLnNwbGl0KCc6JykKKyAgICBpZiBsZW4ocGFydHMpID4gNToKKyAgICAgICAgcmFpc2Ug
d21vZC5fT3B0aW9uRXJyb3IoInRvbyBtYW55IGZpZWxkcyAobWF4IDUpOiAlciIgJSAoYXJnLCkp
CisgICAgd2hpbGUgbGVuKHBhcnRzKSA8IDU6CisgICAgICAgIHBhcnRzLmFwcGVuZCgnJykKKyAg
ICBhY3Rpb24sIG1lc3NhZ2UsIGNhdGVnb3J5LCBtb2R1bGUsIGxpbmVubyA9IFtzLnN0cmlwKCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgcyBp
biBwYXJ0c10KKyAgICBhY3Rpb24gPSB3bW9kLl9nZXRhY3Rpb24oYWN0aW9uKQorICAgIGNhdGVn
b3J5ID0gd21vZC5fZ2V0Y2F0ZWdvcnkoY2F0ZWdvcnkpCisgICAgaWYgbGluZW5vOgorICAgICAg
ICB0cnk6CisgICAgICAgICAgICBsaW5lbm8gPSBpbnQobGluZW5vKQorICAgICAgICAgICAgaWYg
bGluZW5vIDwgMDoKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yCisgICAgICAgIGV4
Y2VwdCAoVmFsdWVFcnJvciwgT3ZlcmZsb3dFcnJvcik6CisgICAgICAgICAgICByYWlzZSB3bW9k
Ll9PcHRpb25FcnJvcigiaW52YWxpZCBsaW5lbm8gJXIiICUgKGxpbmVubywpKQorICAgIGVsc2U6
CisgICAgICAgIGxpbmVubyA9IDAKKyAgICB3bW9kLmZpbHRlcndhcm5pbmdzKGFjdGlvbiwgbWVz
c2FnZSwgY2F0ZWdvcnksIG1vZHVsZSwgbGluZW5vKQorCisKK2RlZiBweXRlc3RfYWRkb3B0aW9u
KHBhcnNlcik6CisgICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoInB5dGVzdC13YXJuaW5ncyIp
CisgICAgZ3JvdXAuYWRkb3B0aW9uKAorICAgICAgICAnLVcnLCAnLS1weXRob253YXJuaW5ncycs
IGFjdGlvbj0nYXBwZW5kJywKKyAgICAgICAgaGVscD0ic2V0IHdoaWNoIHdhcm5pbmdzIHRvIHJl
cG9ydCwgc2VlIC1XIG9wdGlvbiBvZiBweXRob24gaXRzZWxmLiIpCisgICAgcGFyc2VyLmFkZGlu
aSgiZmlsdGVyd2FybmluZ3MiLCB0eXBlPSJsaW5lbGlzdCIsCisgICAgICAgICAgICAgICAgICBo
ZWxwPSJFYWNoIGxpbmUgc3BlY2lmaWVzIGEgcGF0dGVybiBmb3IgIgorICAgICAgICAgICAgICAg
ICAgIndhcm5pbmdzLmZpbHRlcndhcm5pbmdzLiAiCisgICAgICAgICAgICAgICAgICAiUHJvY2Vz
c2VkIGFmdGVyIC1XIGFuZCAtLXB5dGhvbndhcm5pbmdzLiIpCisKKworQGNvbnRleHRtYW5hZ2Vy
CitkZWYgY2F0Y2hfd2FybmluZ3NfZm9yX2l0ZW0oaXRlbSk6CisgICAgIiIiCisgICAgY2F0Y2hl
cyB0aGUgd2FybmluZ3MgZ2VuZXJhdGVkIGR1cmluZyBzZXR1cC9jYWxsL3RlYXJkb3duIGV4ZWN1
dGlvbgorICAgIG9mIHRoZSBnaXZlbiBpdGVtIGFuZCBhZnRlciBpdCBpcyBkb25lIHBvc3RzIHRo
ZW0gYXMgd2FybmluZ3MgdG8gdGhpcworICAgIGl0ZW0uCisgICAgIiIiCisgICAgYXJncyA9IGl0
ZW0uY29uZmlnLmdldG9wdGlvbigncHl0aG9ud2FybmluZ3MnKSBvciBbXQorICAgIGluaWZpbHRl
cnMgPSBpdGVtLmNvbmZpZy5nZXRpbmkoImZpbHRlcndhcm5pbmdzIikKKyAgICB3aXRoIHdhcm5p
bmdzLmNhdGNoX3dhcm5pbmdzKHJlY29yZD1UcnVlKSBhcyBsb2c6CisgICAgICAgIGZvciBhcmcg
aW4gYXJnczoKKyAgICAgICAgICAgIHdhcm5pbmdzLl9zZXRvcHRpb24oYXJnKQorCisgICAgICAg
IGZvciBhcmcgaW4gaW5pZmlsdGVyczoKKyAgICAgICAgICAgIF9zZXRvcHRpb24od2FybmluZ3Ms
IGFyZykKKworICAgICAgICBtYXJrID0gaXRlbS5nZXRfbWFya2VyKCdmaWx0ZXJ3YXJuaW5ncycp
CisgICAgICAgIGlmIG1hcms6CisgICAgICAgICAgICBmb3IgYXJnIGluIG1hcmsuYXJnczoKKyAg
ICAgICAgICAgICAgICB3YXJuaW5ncy5fc2V0b3B0aW9uKGFyZykKKworICAgICAgICB5aWVsZAor
CisgICAgICAgIGZvciB3YXJuaW5nIGluIGxvZzoKKyAgICAgICAgICAgIHdhcm5fbXNnID0gd2Fy
bmluZy5tZXNzYWdlCisgICAgICAgICAgICB1bmljb2RlX3dhcm5pbmcgPSBGYWxzZQorCisgICAg
ICAgICAgICBpZiBjb21wYXQuX1BZMiBhbmQgYW55KGlzaW5zdGFuY2UobSwgY29tcGF0LlVOSUNP
REVfVFlQRVMpIGZvciBtIGluIHdhcm5fbXNnLmFyZ3MpOgorICAgICAgICAgICAgICAgIG5ld19h
cmdzID0gW10KKyAgICAgICAgICAgICAgICBmb3IgbSBpbiB3YXJuX21zZy5hcmdzOgorICAgICAg
ICAgICAgICAgICAgICBuZXdfYXJncy5hcHBlbmQoY29tcGF0LmFzY2lpX2VzY2FwZWQobSkgaWYg
aXNpbnN0YW5jZShtLCBjb21wYXQuVU5JQ09ERV9UWVBFUykgZWxzZSBtKQorICAgICAgICAgICAg
ICAgIHVuaWNvZGVfd2FybmluZyA9IGxpc3Qod2Fybl9tc2cuYXJncykgIT0gbmV3X2FyZ3MKKyAg
ICAgICAgICAgICAgICB3YXJuX21zZy5hcmdzID0gbmV3X2FyZ3MKKworICAgICAgICAgICAgbXNn
ID0gd2FybmluZ3MuZm9ybWF0d2FybmluZygKKyAgICAgICAgICAgICAgICB3YXJuX21zZywgd2Fy
bmluZy5jYXRlZ29yeSwKKyAgICAgICAgICAgICAgICB3YXJuaW5nLmZpbGVuYW1lLCB3YXJuaW5n
LmxpbmVubywgd2FybmluZy5saW5lKQorICAgICAgICAgICAgaXRlbS53YXJuKCJ1bnVzZWQiLCBt
c2cpCisKKyAgICAgICAgICAgIGlmIHVuaWNvZGVfd2FybmluZzoKKyAgICAgICAgICAgICAgICB3
YXJuaW5ncy53YXJuKAorICAgICAgICAgICAgICAgICAgICAiV2FybmluZyBpcyB1c2luZyB1bmlj
b2RlIG5vbiBjb252ZXJ0aWJsZSB0byBhc2NpaSwgIgorICAgICAgICAgICAgICAgICAgICAiY29u
dmVydGluZyB0byBhIHNhZmUgcmVwcmVzZW50YXRpb246XG4gICVzIiAlIG1zZywKKyAgICAgICAg
ICAgICAgICAgICAgVW5pY29kZVdhcm5pbmcpCisKKworQHB5dGVzdC5ob29raW1wbChob29rd3Jh
cHBlcj1UcnVlKQorZGVmIHB5dGVzdF9ydW50ZXN0X3Byb3RvY29sKGl0ZW0pOgorICAgIHdpdGgg
Y2F0Y2hfd2FybmluZ3NfZm9yX2l0ZW0oaXRlbSk6CisgICAgICAgIHlpZWxkCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9hcHB2ZXlvci55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9hcHB2ZXlvci55bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGY0YWZlMTVjMzgzMzRlNzQzMmI1YWI2NjVhZjI3YWU1ZjE1YjM5YQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2FwcHZleW9yLnltbApAQCAtMCwwICsxLDQ0IEBACitl
bnZpcm9ubWVudDoKKyAgQ09WRVJBTExTX1JFUE9fVE9LRU46CisgICAgc2VjdXJlOiAyTko1Q3Q1
NWNISjlXRWczeGJTcUN1djByZGd6emI2cG56T0lHNU9rTWJUbmR3M3dPQnJYbnRXRm9RclhpTUZp
CisgICAgIyB0aGlzIGlzIHB5dGVzdCdzIHRva2VuIGluIGNvdmVyYWxscy5pbywgZW5jcnlwdGVk
CisgICAgIyB1c2luZyBweXRlc3Rib3QgYWNjb3VudCBhcyBkZXRhaWxlZCBoZXJlOgorICAgICMg
aHR0cHM6Ly93d3cuYXBwdmV5b3IuY29tL2RvY3MvYnVpbGQtY29uZmlndXJhdGlvbiNzZWN1cmUt
dmFyaWFibGVzCisKKyAgbWF0cml4OgorICAjIGNvdmVyYWxscyBpcyBub3QgaW4gdGhlIGRlZmF1
bHQgZW52IGxpc3QKKyAgLSBUT1hFTlY6ICJjb3ZlcmFsbHMiCisgICMgbm90ZTogcGxlYXNlIHVz
ZSAidG94IC0tbGlzdGVudnMiIHRvIHBvcHVsYXRlIHRoZSBidWlsZCBtYXRyaXggYmVsb3cKKyAg
LSBUT1hFTlY6ICJsaW50aW5nIgorICAtIFRPWEVOVjogInB5MjciCisgIC0gVE9YRU5WOiAicHkz
NCIKKyAgLSBUT1hFTlY6ICJweTM1IgorICAtIFRPWEVOVjogInB5MzYiCisgIC0gVE9YRU5WOiAi
cHlweSIKKyAgLSBUT1hFTlY6ICJweTI3LXBleHBlY3QiCisgIC0gVE9YRU5WOiAicHkyNy14ZGlz
dCIKKyAgLSBUT1hFTlY6ICJweTI3LXRyaWFsIgorICAtIFRPWEVOVjogInB5MjctbnVtcHkiCisg
IC0gVE9YRU5WOiAicHkyNy1wbHVnZ3ltYXN0ZXIiCisgIC0gVE9YRU5WOiAicHkzNi1wZXhwZWN0
IgorICAtIFRPWEVOVjogInB5MzYteGRpc3QiCisgIC0gVE9YRU5WOiAicHkzNi10cmlhbCIKKyAg
LSBUT1hFTlY6ICJweTM2LW51bXB5IgorICAtIFRPWEVOVjogInB5MzYtcGx1Z2d5bWFzdGVyIgor
ICAtIFRPWEVOVjogInB5Mjctbm9ieXRlIgorICAtIFRPWEVOVjogImRvY3Rlc3RpbmciCisgIC0g
VE9YRU5WOiAicHkzNS1mcmVlemUiCisgIC0gVE9YRU5WOiAiZG9jcyIKKworaW5zdGFsbDoKKyAg
LSBlY2hvIEluc3RhbGxlZCBQeXRob25zCisgIC0gZGlyIGM6XFB5dGhvbioKKworICAtIGlmICIl
VE9YRU5WJSIgPT0gInB5cHkiIGNhbGwgc2NyaXB0c1xpbnN0YWxsLXB5cHkuYmF0CisKKyAgLSBD
OlxQeXRob24zNlxweXRob24gLW0gcGlwIGluc3RhbGwgLS11cGdyYWRlIC0tcHJlIHRveAorCiti
dWlsZDogZmFsc2UgICMgTm90IGEgQyMgcHJvamVjdCwgYnVpbGQgc3R1ZmYgYXQgdGhlIHRlc3Qg
c3RlcCBpbnN0ZWFkLgorCit0ZXN0X3NjcmlwdDoKKyAgLSBjYWxsIHNjcmlwdHNcY2FsbC10b3gu
YmF0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9iZW5jaC9iZW5jaC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2JlbmNoL2JlbmNoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNlOTQ5NjQxNzJmMGRiMzUzYTYyOWRiNWNhYjQ1
ODMxZWU0YzE5ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9iZW5jaC9iZW5jaC5w
eQpAQCAtMCwwICsxLDEyIEBACitpbXBvcnQgc3lzCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5f
Xyc6CisgICAgaW1wb3J0IGNQcm9maWxlCisgICAgaW1wb3J0IHB5dGVzdAorICAgIGltcG9ydCBw
c3RhdHMKKyAgICBzY3JpcHQgPSBzeXMuYXJndlsxOl0gaWYgbGVuKHN5cy5hcmd2KSA+IDEgZWxz
ZSAiZW1wdHkucHkiCisgICAgc3RhdHMgPSBjUHJvZmlsZS5ydW4oJ3B5dGVzdC5jbWRsaW5lLm1h
aW4oJXIpJyAlIHNjcmlwdCwgJ3Byb2YnKQorICAgIHAgPSBwc3RhdHMuU3RhdHMoInByb2YiKQor
ICAgIHAuc3RyaXBfZGlycygpCisgICAgcC5zb3J0X3N0YXRzKCdjdW11bGF0aXZlJykKKyAgICBw
cmludChwLnByaW50X3N0YXRzKDUwMCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9iZW5jaC9i
ZW5jaF9hcmdjb21wbGV0ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2JlbmNoL2JlbmNoX2FyZ2NvbXBsZXRl
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ2NmM2NjRmMzQ2ZWZkYzYyODFmMWIyNzEwOWRkY2FjMDkyMzIzNzIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9iZW5jaC9iZW5jaF9hcmdjb21wbGV0ZS5w
eQpAQCAtMCwwICsxLDE5IEBACisKKworIyAxMDAwMCBpdGVyYXRpb25zLCBqdXN0IGZvciByZWxh
dGl2ZSBjb21wYXJpc29uCisjICAgICAgICAgICAgICAgICAgICAgIDIuNy41ICAgICAzLjMuMgor
IyBGaWxlc0NvbXBsZXRlciAgICAgICA3NS4xMTA5ICAgNjkuMjExNgorIyBGYXN0RmlsZXNDb21w
bGV0ZXIgICAgMC43MzgzICAgIDEuMDc2MAorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6
CisgICAgaW1wb3J0IHN5cworICAgIGltcG9ydCB0aW1laXQKKyAgICBmcm9tIGFyZ2NvbXBsZXRl
LmNvbXBsZXRlcnMgaW1wb3J0IEZpbGVzQ29tcGxldGVyCisgICAgZnJvbSBfcHl0ZXN0Ll9hcmdj
b21wbGV0ZSBpbXBvcnQgRmFzdEZpbGVzQ29tcGxldGVyCisgICAgY291bnQgPSAxMDAwICMgb25s
eSBhIGZldyBzZWNvbmRzCisgICAgc2V0dXAgPSAnZnJvbSBfX21haW5fXyBpbXBvcnQgRmFzdEZp
bGVzQ29tcGxldGVyXG5mYyA9IEZhc3RGaWxlc0NvbXBsZXRlcigpJworICAgIHJ1biA9ICdmYygi
L2QiKScKKyAgICBzeXMuc3Rkb3V0LndyaXRlKCclc1xuJyAlICh0aW1laXQudGltZWl0KHJ1biwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0dXA9c2V0dXAucmVwbGFjZSgnRmFz
dCcsICcnKSwgbnVtYmVyPWNvdW50KSkpCisgICAgc3lzLnN0ZG91dC53cml0ZSgnJXNcbicgJSAo
dGltZWl0LnRpbWVpdChydW4sIHNldHVwPXNldHVwLCBudW1iZXI9Y291bnQpKSkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2JlbmNoL2VtcHR5LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvYmVuY2gvZW1wdHku
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYWM1ZTI1NzAxZGE5ZmMzMjg5NDRlZjdkYjdkNzJiMGZiNDczNDAwNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2JlbmNoL2VtcHR5LnB5CkBAIC0wLDAgKzEs
MyBAQAoraW1wb3J0IHB5Citmb3IgaSBpbiByYW5nZSgxMDAwKToKKyAgICBweS5idWlsdGluLmV4
ZWNfKCJkZWYgdGVzdF9mdW5jXyVkKCk6IHBhc3MiICUgaSkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2JlbmNoL21hbnlwYXJhbS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2JlbmNoL21hbnlwYXJhbS5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kMmJjYTBlOGFjZDFlMzk0Y2QzYTg1ODUyNTEyYmRhYjE4MWJiODJlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvYmVuY2gvbWFueXBhcmFtLnB5CkBAIC0wLDAgKzEs
MTIgQEAKKworaW1wb3J0IHB5dGVzdAorCitAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J21vZHVsZScs
IHBhcmFtcz1yYW5nZSg5NjYpKQorZGVmIGZvbyhyZXF1ZXN0KToKKyAgICByZXR1cm4gcmVxdWVz
dC5wYXJhbQorCitkZWYgdGVzdF9pdChmb28pOgorICAgIHBhc3MKK2RlZiB0ZXN0X2l0Mihmb28p
OgorICAgIHBhc3MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvYmVuY2gvc2tpcC5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2JlbmNoL3NraXAucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTYwYjMwODY0NWEyY2VkMTlmZThl
YWM2NzM5NDk4OWNkOGMwYWRiMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2JlbmNo
L3NraXAucHkKQEAgLTAsMCArMSwxMCBAQAorCitpbXBvcnQgcHl0ZXN0CisKKworU0tJUCA9IFRy
dWUKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ4IiwgeHJhbmdlKDUwMDApKQorZGVmIHRl
c3RfZm9vKHgpOgorICAgIGlmIFNLSVA6CisgICAgICAgIHB5dGVzdC5za2lwKCJoZWgiKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvYmVuY2gvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9i
ZW5jaC93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYmUwY2E4ZGIwOGY1YTcxNzE0ZGY1NGNm
YzU0OGI4ZDAzZTM0NzVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvYmVuY2gvdzNj
LWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitO
b25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvYmVuY2gv
YmVuY2gucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9iZW5jaC9iZW5jaF9hcmdjb21wbGV0ZS5weQorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2JlbmNoL2VtcHR5LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvYmVuY2gvbWFueXBhcmFtLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvYmVuY2gvc2tpcC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvY2hhbmdl
bG9nLzI5MjAuYnVnZml4IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvY2hhbmdlbG9nLzI5MjAuYnVnZml4Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjljNTIxNzI3OGFlZDdlMTZlNjIwMDE4MTJmNzhlNzUyMGRlYjZkMjUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9jaGFuZ2Vsb2cvMjkyMC5idWdmaXgKQEAgLTAsMCArMSBA
QAorRml4IGlzc3VlIGFib3V0IGBgLXAgbm86PHBsdWdpbj5gYCBoYXZpbmcgbm8gZWZmZWN0Lgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvY2hhbmdlbG9nLzI5NDkudHJpdmlhbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2NoYW5nZWxvZy8yOTQ5LnRyaXZpYWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzk3ODllNzJiN2E5YWI0ODIz
OTQ3ODJmZDJhMzg0ZGI3YThlNjhkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2No
YW5nZWxvZy8yOTQ5LnRyaXZpYWwKQEAgLTAsMCArMSBAQAorVXBkYXRlIGdpdGh1YiAiYnVncyIg
bGluayBpbiBDT05UUklCVVRJTkcucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9jaGFuZ2Vs
b2cvMjk1Ni5idWdmaXggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9jaGFuZ2Vsb2cvMjk1Ni5idWdmaXgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTM3MTc2NTdiZjE2ODE1OWVlNWUzMDlmOTU0YWY5ODBlYjhkNmM1MwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2NoYW5nZWxvZy8yOTU2LmJ1Z2ZpeApAQCAtMCwwICsxIEBA
CitGaXggcmVncmVzc2lvbiB3aXRoIHdhcm5pbmdzIHRoYXQgY29udGFpbmVkIG5vbi1zdHJpbmdz
IGluIHRoZWlyIGFyZ3VtZW50cyBpbiBQeXRob24gMi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2NoYW5nZWxvZy8yOTU3LmJ1Z2ZpeCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2NoYW5nZWxvZy8yOTU3LmJ1Z2Zp
eApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41ODk2NjViNjkyYWU3M2IzYmMwNWE2NGUyMDM1MDIxMTQ2NmMxYTQ5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvY2hhbmdlbG9nLzI5NTcuYnVnZml4CkBAIC0w
LDAgKzEgQEAKK0Fsd2F5cyBlc2NhcGUgbnVsbCBieXRlcyB3aGVuIHNldHRpbmcgYGBQWVRFU1Rf
Q1VSUkVOVF9URVNUYGAuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9jaGFuZ2Vsb2cvMjk2My5k
b2MgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9jaGFuZ2Vsb2cvMjk2My5kb2MKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzlhMWQ2NjFi
NjQxODNiMzI5OWQ0MTAyNWQ5YTAzZWIxNmM0NzY1NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2NoYW5nZWxvZy8yOTYzLmRvYwpAQCAtMCwwICsxIEBACitGaXggYnJva2VuIGxpbmsg
dG8gcGx1Z2luIHB5dGVzdC1sb2NhbHNlcnZlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2No
YW5nZWxvZy8yOTcxLmJ1Z2ZpeCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2NoYW5nZWxvZy8yOTcxLmJ1Z2ZpeApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zNjY4NGU4Yzg4MDMzNGNjZTQyZTFkOTE0MDJkOTRiYmY4YmViMzY0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvY2hhbmdlbG9nLzI5NzEuYnVnZml4CkBAIC0wLDAg
KzEgQEAKK0ZpeCBgYFplcm9EaXZpc2lvbkVycm9yYGAgd2hlbiB1c2luZyB0aGUgYGB0ZXN0bW9u
YGAgcGx1Z2luIHdoZW4gbm8gdGVzdHMgd2VyZSBhY3R1YWxseSBjb2xsZWN0ZWQuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9jaGFuZ2Vsb2cvMjk4NC5idWdmaXggYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9jaGFu
Z2Vsb2cvMjk4NC5idWdmaXgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjFmNTc0OGQ1MjM5NzM3ZDkxM2NiMWM0MGVi
M2QxNzQzZWU3YzIwZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2NoYW5nZWxvZy8y
OTg0LmJ1Z2ZpeApAQCAtMCwwICsxIEBACitCcmluZyBiYWNrIGBgVGVybWluYWxSZXBvcnRlci53
cml0ZXJgYCBhcyBhbiBhbGlhcyB0byBgYFRlcm1pbmFsUmVwb3J0ZXIuX3R3YGAuIFRoaXMgYWxp
YXMgd2FzIHJlbW92ZWQgYnkgYWNjaWRlbnQgaW4gdGhlIGBgMy4zLjBgYCByZWxlYXNlLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvY2hhbmdlbG9nL190ZW1wbGF0ZS5yc3QgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9jaGFuZ2Vsb2cvX3RlbXBsYXRlLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hODk4YWJjMTVhZjE3MTIzZTdh
NDdmYTRkODk2NjE1Y2E1YmMwYTVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvY2hh
bmdlbG9nL190ZW1wbGF0ZS5yc3QKQEAgLTAsMCArMSw0MCBAQAoreyUgZm9yIHNlY3Rpb24gaW4g
c2VjdGlvbnMgJX0KK3slIHNldCB1bmRlcmxpbmUgPSAiLSIgJX0KK3slIGlmIHNlY3Rpb24gJX0K
K3t7c2VjdGlvbn19Cit7eyB1bmRlcmxpbmUgKiBzZWN0aW9ufGxlbmd0aCB9fXslIHNldCB1bmRl
cmxpbmUgPSAifiIgJX0KKworeyUgZW5kaWYgJX0KK3slIGlmIHNlY3Rpb25zW3NlY3Rpb25dICV9
Cit7JSBmb3IgY2F0ZWdvcnksIHZhbCBpbiBkZWZpbml0aW9ucy5pdGVtcygpIGlmIGNhdGVnb3J5
IGluIHNlY3Rpb25zW3NlY3Rpb25dICV9CisKK3t7IGRlZmluaXRpb25zW2NhdGVnb3J5XVsnbmFt
ZSddIH19Cit7eyB1bmRlcmxpbmUgKiBkZWZpbml0aW9uc1tjYXRlZ29yeV1bJ25hbWUnXXxsZW5n
dGggfX0KKworeyUgaWYgZGVmaW5pdGlvbnNbY2F0ZWdvcnldWydzaG93Y29udGVudCddICV9Cit7
JSBmb3IgdGV4dCwgdmFsdWVzIGluIHNlY3Rpb25zW3NlY3Rpb25dW2NhdGVnb3J5XXxkaWN0c29y
dChieT0ndmFsdWUnKSAlfQoreyUgc2V0IGlzc3VlX2pvaW5lciA9IGpvaW5lcignLCAnKSAlfQor
LSB7eyB0ZXh0IH19eyUgaWYgY2F0ZWdvcnkgIT0gJ3ZlbmRvcicgJX0gKHslIGZvciB2YWx1ZSBp
biB2YWx1ZXN8c29ydCAlfXt7IGlzc3VlX2pvaW5lcigpIH19YHt7IHZhbHVlIH19IDxodHRwczov
L2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzL3t7IHZhbHVlWzE6XSB9fT5gX3sl
IGVuZGZvciAlfSl7JSBlbmRpZiAlfQorCisKK3slIGVuZGZvciAlfQoreyUgZWxzZSAlfQorLSB7
eyBzZWN0aW9uc1tzZWN0aW9uXVtjYXRlZ29yeV1bJyddfHNvcnR8am9pbignLCAnKSB9fQorCisK
K3slIGVuZGlmICV9Cit7JSBpZiBzZWN0aW9uc1tzZWN0aW9uXVtjYXRlZ29yeV18bGVuZ3RoID09
IDAgJX0KKworTm8gc2lnbmlmaWNhbnQgY2hhbmdlcy4KKworCit7JSBlbHNlICV9Cit7JSBlbmRp
ZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbHNlICV9CisKK05vIHNpZ25pZmljYW50IGNoYW5nZXMu
CisKKworeyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
Y2hhbmdlbG9nL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvY2hhbmdlbG9nL3czYy1pbXBv
cnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmIwMDU3ZTBiZGY2YTc3ZDc1OTJiNjIxZjljOTM5NGMwY2RmZjlk
NTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9jaGFuZ2Vsb2cvdzNjLWltcG9ydC5s
b2cKQEAgLTAsMCArMSwyNCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9u
ZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvY2hhbmdlbG9nLzI5MjAu
YnVnZml4CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvY2hhbmdlbG9nLzI5NDkudHJpdmlhbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2NoYW5nZWxvZy8yOTU2LmJ1Z2ZpeAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2NoYW5nZWxvZy8yOTU3LmJ1Z2Zp
eAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2NoYW5nZWxvZy8yOTYzLmRvYworL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2NoYW5nZWxv
Zy8yOTcxLmJ1Z2ZpeAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2NoYW5nZWxvZy8yOTg0LmJ1Z2ZpeAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2NoYW5nZWxvZy9fdGVtcGxhdGUucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vTWFrZWZpbGUgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vTWFrZWZpbGUKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZmE4ZTgyNjZhMjllNzFmNDlkNzBlNzljYWZlZTBkYTQ0ZTVmNzhlYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9NYWtlZmlsZQpAQCAtMCwwICsxLDE1MCBAQAorIyBNYWtl
ZmlsZSBmb3IgU3BoaW54IGRvY3VtZW50YXRpb24KKyMKKworIyBZb3UgY2FuIHNldCB0aGVzZSB2
YXJpYWJsZXMgZnJvbSB0aGUgY29tbWFuZCBsaW5lLgorU1BISU5YT1BUUyAgICA9CitTUEhJTlhC
VUlMRCAgID0gc3BoaW54LWJ1aWxkCitQQVBFUiAgICAgICAgID0KK0JVSUxERElSICAgICAgPSBf
YnVpbGQKKworIyBJbnRlcm5hbCB2YXJpYWJsZXMuCitQQVBFUk9QVF9hNCAgICAgPSAtRCBsYXRl
eF9wYXBlcl9zaXplPWE0CitQQVBFUk9QVF9sZXR0ZXIgPSAtRCBsYXRleF9wYXBlcl9zaXplPWxl
dHRlcgorQUxMU1BISU5YT1BUUyAgID0gLWQgJChCVUlMRERJUikvZG9jdHJlZXMgJChQQVBFUk9Q
VF8kKFBBUEVSKSkgJChTUEhJTlhPUFRTKSAuCisKK1JFR0VORE9DX0FSR1MgOj0gXAorCS0tbm9y
bWFsaXplICIvaW4gXGQrLlxkKyBzZWNvbmRzL2luIDAuMTIgc2Vjb25kcy8iIFwKKwktLW5vcm1h
bGl6ZSAiQC90bXAvcHl0ZXN0LW9mLS4qL3B5dGVzdC1cZCtAUFlURVNUX1RNUERJUkAiIFwKKwkt
LW5vcm1hbGl6ZSAiQHB5dGVzdC0oXGQrKVxcLlteICxdK0BweXRlc3QtXDEueC55QCIgXAorCS0t
bm9ybWFsaXplICJAKFRoaXMgaXMgcHl0ZXN0IHZlcnNpb24gKShcZCspXFwuW14gLF0rQFwxXDIu
eC55QCIgXAorCS0tbm9ybWFsaXplICJAcHktKFxkKylcXC5bXiAsXStAcHktXDEueC55QCIgXAor
CS0tbm9ybWFsaXplICJAcGx1Z2d5LShcZCspXFwuWy5cZCxdK0BwbHVnZ3ktXDEueC55QCIgXAor
CS0tbm9ybWFsaXplICJAaHlwb3RoZXNpcy0oXGQrKVxcLlsuXGQsXStAaHlwb3RoZXNpcy1cMS54
LnlAIiBcCisJLS1ub3JtYWxpemUgIkBQeXRob24gKFxkKylcXC5bXiAsXStAUHl0aG9uIFwxLngu
eUAiCisKKy5QSE9OWTogaGVscCBjbGVhbiBodG1sIGRpcmh0bWwgc2luZ2xlaHRtbCBwaWNrbGUg
anNvbiBodG1saGVscCBxdGhlbHAgZGV2aGVscCBlcHViIGxhdGV4IGxhdGV4cGRmIHRleHQgbWFu
IGNoYW5nZXMgbGlua2NoZWNrIGRvY3Rlc3QKKworCitoZWxwOgorCUBlY2hvICJQbGVhc2UgdXNl
IFxgbWFrZSA8dGFyZ2V0Picgd2hlcmUgPHRhcmdldD4gaXMgb25lIG9mIgorCUBlY2hvICIgIGh0
bWwgICAgICAgdG8gbWFrZSBzdGFuZGFsb25lIEhUTUwgZmlsZXMiCisJQGVjaG8gIiAgbGF0ZXhw
ZGYgICB0byBtYWtlIExhVGVYIGZpbGVzIGFuZCBydW4gdGhlbSB0aHJvdWdoIHBkZmxhdGV4Igor
CUBlY2hvICIgIHNob3d0YXJnZXQgdG8gc2hvdyB0aGUgcHl0ZXN0Lm9yZyB0YXJnZXQgZGlyZWN0
b3J5IgorCUBlY2hvICIgIGluc3RhbGwgICAgdG8gaW5zdGFsbCBkb2NzIHRvIHB5dGVzdC5vcmcv
U0lURVRBUkdFVCIKKwlAZWNobyAiICBpbnN0YWxsLWxkZiB0byBpbnN0YWxsIHRoZSBkb2MgcGRm
IHRvIHB5dGVzdC5vcmcvU0lURVRBUkdFVCIKKwlAZWNobyAiICByZWdlbiAgICAgIHRvIHJlZ2Vu
ZXJhdGUgcHl0ZXN0IGV4YW1wbGVzIHVzaW5nIHRoZSBpbnN0YWxsZWQgcHl0ZXN0IgorCUBlY2hv
ICIgIGxpbmtjaGVjayAgdG8gY2hlY2sgYWxsIGV4dGVybmFsIGxpbmtzIGZvciBpbnRlZ3JpdHki
CisKK2NsZWFuOgorCS1ybSAtcmYgJChCVUlMRERJUikvKgorCityZWdlbjoKKwlQWVRIT05ET05U
V1JJVEVCWVRFQ09ERT0xIFBZVEVTVF9BRERPUFQ9LXBubzpoeXBvdGhlc2lzIENPTFVNTlM9NzYg
cmVnZW5kb2MgLS11cGRhdGUgKi5yc3QgKi8qLnJzdCAke1JFR0VORE9DX0FSR1N9CisKK2h0bWw6
CisJJChTUEhJTlhCVUlMRCkgLWIgaHRtbCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2h0
bWwKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIEhUTUwgcGFnZXMgYXJlIGlu
ICQoQlVJTERESVIpL2h0bWwuIgorCitkaXJodG1sOgorCSQoU1BISU5YQlVJTEQpIC1iIGRpcmh0
bWwgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9kaXJodG1sCisJQGVjaG8KKwlAZWNobyAi
QnVpbGQgZmluaXNoZWQuIFRoZSBIVE1MIHBhZ2VzIGFyZSBpbiAkKEJVSUxERElSKS9kaXJodG1s
LiIKKworc2luZ2xlaHRtbDoKKwkkKFNQSElOWEJVSUxEKSAtYiBzaW5nbGVodG1sICQoQUxMU1BI
SU5YT1BUUykgJChCVUlMRERJUikvc2luZ2xlaHRtbAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZp
bmlzaGVkLiBUaGUgSFRNTCBwYWdlIGlzIGluICQoQlVJTERESVIpL3NpbmdsZWh0bWwuIgorCitw
aWNrbGU6CisJJChTUEhJTlhCVUlMRCkgLWIgcGlja2xlICQoQUxMU1BISU5YT1BUUykgJChCVUlM
RERJUikvcGlja2xlCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQ7IG5vdyB5b3UgY2Fu
IHByb2Nlc3MgdGhlIHBpY2tsZSBmaWxlcy4iCisKK2pzb246CisJJChTUEhJTlhCVUlMRCkgLWIg
anNvbiAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2pzb24KKwlAZWNobworCUBlY2hvICJC
dWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcHJvY2VzcyB0aGUgSlNPTiBmaWxlcy4iCisKK2h0
bWxoZWxwOgorCSQoU1BISU5YQlVJTEQpIC1iIGh0bWxoZWxwICQoQUxMU1BISU5YT1BUUykgJChC
VUlMRERJUikvaHRtbGhlbHAKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgbm93IHlv
dSBjYW4gcnVuIEhUTUwgSGVscCBXb3Jrc2hvcCB3aXRoIHRoZSIgXAorCSAgICAgICIuaGhwIHBy
b2plY3QgZmlsZSBpbiAkKEJVSUxERElSKS9odG1saGVscC4iCisKK3F0aGVscDoKKwkkKFNQSElO
WEJVSUxEKSAtYiBxdGhlbHAgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9xdGhlbHAKKwlA
ZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcnVuICJxY29sbGVjdGlv
bmdlbmVyYXRvciIgd2l0aCB0aGUiIFwKKwkgICAgICAiLnFoY3AgcHJvamVjdCBmaWxlIGluICQo
QlVJTERESVIpL3F0aGVscCwgbGlrZSB0aGlzOiIKKwlAZWNobyAiIyBxY29sbGVjdGlvbmdlbmVy
YXRvciAkKEJVSUxERElSKS9xdGhlbHAvcHl0ZXN0LnFoY3AiCisJQGVjaG8gIlRvIHZpZXcgdGhl
IGhlbHAgZmlsZToiCisJQGVjaG8gIiMgYXNzaXN0YW50IC1jb2xsZWN0aW9uRmlsZSAkKEJVSUxE
RElSKS9xdGhlbHAvcHl0ZXN0LnFoYyIKKworZGV2aGVscDoKKwkkKFNQSElOWEJVSUxEKSAtYiBk
ZXZoZWxwICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvZGV2aGVscAorCUBlY2hvCisJQGVj
aG8gIkJ1aWxkIGZpbmlzaGVkLiIKKwlAZWNobyAiVG8gdmlldyB0aGUgaGVscCBmaWxlOiIKKwlA
ZWNobyAiIyBta2RpciAtcCAkJEhPTUUvLmxvY2FsL3NoYXJlL2RldmhlbHAvcHl0ZXN0IgorCUBl
Y2hvICIjIGxuIC1zICQoQlVJTERESVIpL2RldmhlbHAgJCRIT01FLy5sb2NhbC9zaGFyZS9kZXZo
ZWxwL3B5dGVzdCIKKwlAZWNobyAiIyBkZXZoZWxwIgorCitlcHViOgorCSQoU1BISU5YQlVJTEQp
IC1iIGVwdWIgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9lcHViCisJQGVjaG8KKwlAZWNo
byAiQnVpbGQgZmluaXNoZWQuIFRoZSBlcHViIGZpbGUgaXMgaW4gJChCVUlMRERJUikvZXB1Yi4i
CisKK2xhdGV4OgorCSQoU1BISU5YQlVJTEQpIC1iIGxhdGV4ICQoQUxMU1BISU5YT1BUUykgJChC
VUlMRERJUikvbGF0ZXgKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgdGhlIExhVGVY
IGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS9sYXRleC4iCisJQGVjaG8gIlJ1biBcYG1ha2UnIGlu
IHRoYXQgZGlyZWN0b3J5IHRvIHJ1biB0aGVzZSB0aHJvdWdoIChwZGYpbGF0ZXgiIFwKKwkgICAg
ICAiKHVzZSBcYG1ha2UgbGF0ZXhwZGYnIGhlcmUgdG8gZG8gdGhhdCBhdXRvbWF0aWNhbGx5KS4i
CisKK2xhdGV4cGRmOgorCSQoU1BISU5YQlVJTEQpIC1iIGxhdGV4ICQoQUxMU1BISU5YT1BUUykg
JChCVUlMRERJUikvbGF0ZXgKKwlAZWNobyAiUnVubmluZyBMYVRlWCBmaWxlcyB0aHJvdWdoIHBk
ZmxhdGV4Li4uIgorCW1ha2UgLUMgJChCVUlMRERJUikvbGF0ZXggYWxsLXBkZgorCUBlY2hvICJw
ZGZsYXRleCBmaW5pc2hlZDsgdGhlIFBERiBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvbGF0ZXgu
IgorCit0ZXh0OgorCSQoU1BISU5YQlVJTEQpIC1iIHRleHQgJChBTExTUEhJTlhPUFRTKSAkKEJV
SUxERElSKS90ZXh0CisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSB0ZXh0IGZp
bGVzIGFyZSBpbiAkKEJVSUxERElSKS90ZXh0LiIKKworbWFuOgorCSQoU1BISU5YQlVJTEQpIC1i
IG1hbiAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL21hbgorCUBlY2hvCisJQGVjaG8gIkJ1
aWxkIGZpbmlzaGVkLiBUaGUgbWFudWFsIHBhZ2VzIGFyZSBpbiAkKEJVSUxERElSKS9tYW4uIgor
CitjaGFuZ2VzOgorCSQoU1BISU5YQlVJTEQpIC1iIGNoYW5nZXMgJChBTExTUEhJTlhPUFRTKSAk
KEJVSUxERElSKS9jaGFuZ2VzCisJQGVjaG8KKwlAZWNobyAiVGhlIG92ZXJ2aWV3IGZpbGUgaXMg
aW4gJChCVUlMRERJUikvY2hhbmdlcy4iCisKK2xpbmtjaGVjazoKKwkkKFNQSElOWEJVSUxEKSAt
YiBsaW5rY2hlY2sgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9saW5rY2hlY2sKKwlAZWNo
bworCUBlY2hvICJMaW5rIGNoZWNrIGNvbXBsZXRlOyBsb29rIGZvciBhbnkgZXJyb3JzIGluIHRo
ZSBhYm92ZSBvdXRwdXQgIiBcCisJICAgICAgIm9yIGluICQoQlVJTERESVIpL2xpbmtjaGVjay9v
dXRwdXQudHh0LiIKKworZG9jdGVzdDoKKwkkKFNQSElOWEJVSUxEKSAtYiBkb2N0ZXN0ICQoQUxM
U1BISU5YT1BUUykgJChCVUlMRERJUikvZG9jdGVzdAorCUBlY2hvICJUZXN0aW5nIG9mIGRvY3Rl
c3RzIGluIHRoZSBzb3VyY2VzIGZpbmlzaGVkLCBsb29rIGF0IHRoZSAiIFwKKwkgICAgICAicmVz
dWx0cyBpbiAkKEJVSUxERElSKS9kb2N0ZXN0L291dHB1dC50eHQuIgorCit0ZXhpbmZvOgorCW1r
ZGlyIC1wICQoQlVJTERESVIpL3RleGluZm8KKwkkKFNQSElOWEJVSUxEKSAtYiB0ZXhpbmZvICQo
QUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvdGV4aW5mbworCUBlY2hvCisJQGVjaG8gIkJ1aWxk
IGZpbmlzaGVkLiBUaGUgVGV4aW5mbyBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvdGV4aW5mby4i
CisJQGVjaG8gIlJ1biBcYG1ha2UnIGluIHRoYXQgZGlyZWN0b3J5IHRvIHJ1biB0aGVzZSB0aHJv
dWdoIG1ha2VpbmZvIiBcCisJICAgICAgIih1c2UgXGBtYWtlIGluZm8nIGhlcmUgdG8gZG8gdGhh
dCBhdXRvbWF0aWNhbGx5KS4iCisKK2luZm86CisJbWtkaXIgLXAgJChCVUlMRERJUikvdGV4aW5m
bworCSQoU1BISU5YQlVJTEQpIC1iIHRleGluZm8gJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElS
KS90ZXhpbmZvCisJQGVjaG8gIlJ1bm5pbmcgVGV4aW5mbyBmaWxlcyB0aHJvdWdoIG1ha2VpbmZv
Li4uIgorCW1ha2UgLUMgJChCVUlMRERJUikvdGV4aW5mbyBpbmZvCisJQGVjaG8gIm1ha2VpbmZv
IGZpbmlzaGVkOyB0aGUgSW5mbyBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvdGV4aW5mby4iCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RlbXBsYXRlcy9nbG9iYWx0b2MuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9fdGVtcGxhdGVzL2dsb2JhbHRvYy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmZkZDRkZDU5YjMyNGJkYjRlMjFhZDUyZmM2OTExOGYyZTA2OGI0NjYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RlbXBsYXRlcy9nbG9iYWx0b2MuaHRtbApAQCAtMCww
ICsxLDE5IEBACis8aDM+PGEgaHJlZj0ie3sgcGF0aHRvKG1hc3Rlcl9kb2MpIH19Ij57eyBfKCdU
YWJsZSBPZiBDb250ZW50cycpIH19PC9hPjwvaDM+CisKKzx1bD4KKyAgPGxpPjxhIGhyZWY9Int7
IHBhdGh0bygnaW5kZXgnKSB9fSI+SG9tZTwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0ie3sgcGF0
aHRvKCdjb250ZW50cycpIH19Ij5Db250ZW50czwvYT48L2xpPgorICA8bGk+PGEgaHJlZj0ie3sg
cGF0aHRvKCdnZXR0aW5nLXN0YXJ0ZWQnKSB9fSI+SW5zdGFsbDwvYT48L2xpPgorICA8bGk+PGEg
aHJlZj0ie3sgcGF0aHRvKCdleGFtcGxlL2luZGV4JykgfX0iPkV4YW1wbGVzPC9hPjwvbGk+Cisg
IDxsaT48YSBocmVmPSJ7eyBwYXRodG8oJ2N1c3RvbWl6ZScpIH19Ij5DdXN0b21pemU8L2E+PC9s
aT4KKyAgPGxpPjxhIGhyZWY9Int7IHBhdGh0bygnY29udGFjdCcpIH19Ij5Db250YWN0PC9hPjwv
bGk+CisgIDxsaT48YSBocmVmPSJ7eyBwYXRodG8oJ3RhbGtzJykgfX0iPlRhbGtzL1Bvc3RzPC9h
PjwvbGk+CisgIDxsaT48YSBocmVmPSJ7eyBwYXRodG8oJ2NoYW5nZWxvZycpIH19Ij5DaGFuZ2Vs
b2c8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9Int7IHBhdGh0bygnYmFja3dhcmRzLWNvbXBhdGli
aWxpdHknKSB9fSI+QmFja3dhcmRzIENvbXBhdGliaWxpdHk8L2E+PC9saT4KKyAgPGxpPjxhIGhy
ZWY9Int7IHBhdGh0bygnbGljZW5zZScpIH19Ij5MaWNlbnNlPC9hPjwvbGk+Cis8L3VsPgorCit7
JS0gaWYgZGlzcGxheV90b2MgJX0KKyAgPGhyPgorICB7eyB0b2MgfX0KK3slLSBlbmRpZiAlfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190ZW1wbGF0ZXMvbGF5b3V0Lmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vX3RlbXBsYXRlcy9sYXlvdXQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZmM4
ZTJhN2ZiNGMwMjY0ZjY3YTQzZTAwNGI3NGU1OGQyN2IxYTVhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL190ZW1wbGF0ZXMvbGF5b3V0Lmh0bWwKQEAgLTAsMCArMSwyMCBA
QAoreyUgZXh0ZW5kcyAiIWxheW91dC5odG1sIiAlfQoreyUgYmxvY2sgaGVhZGVyICV9CisgIHt7
c3VwZXIoKX19Cit7JSBlbmRibG9jayAlfQoreyUgYmxvY2sgZm9vdGVyICV9Cit7eyBzdXBlcigp
IH19Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKKyAgdmFyIF9nYXEgPSBfZ2Fx
IHx8IFtdOworICBfZ2FxLnB1c2goWydfc2V0QWNjb3VudCcsICdVQS03NTk3Mjc0LTEzJ10pOwor
ICBfZ2FxLnB1c2goWydfdHJhY2tQYWdldmlldyddKTsKKworICAoZnVuY3Rpb24oKSB7CisgICAg
dmFyIGdhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7IGdhLnR5cGUgPSAndGV4
dC9qYXZhc2NyaXB0JzsgZ2EuYXN5bmMgPSB0cnVlOworICAgIGdhLnNyYyA9ICgnaHR0cHM6JyA9
PSBkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCA/ICdodHRwczovL3NzbCcgOiAnaHR0cDovL3d3
dycpICsgJy5nb29nbGUtYW5hbHl0aWNzLmNvbS9nYS5qcyc7CisgICAgdmFyIHMgPSBkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07IHMucGFyZW50Tm9kZS5pbnNlcnRC
ZWZvcmUoZ2EsIHMpOworICB9KSgpOworCis8L3NjcmlwdD4KK3slIGVuZGJsb2NrICV9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RlbXBsYXRlcy9saW5rcy5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL190ZW1wbGF0ZXMvbGlua3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kODU1YTAxM2Yz
NDA2ZjU1YTFiOTI0OTQ4MWExZWYxYTcxN2E0NDE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL190ZW1wbGF0ZXMvbGlua3MuaHRtbApAQCAtMCwwICsxLDExIEBACis8aDM+
VXNlZnVsIExpbmtzPC9oMz4KKzx1bD4KKyAgPGxpPjxhIGhyZWY9Int7IHBhdGh0bygnaW5kZXgn
KSB9fSI+VGhlIHB5dGVzdCBXZWJzaXRlPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSJ7eyBwYXRo
dG8oJ2NvbnRyaWJ1dGluZycpIH19Ij5Db250cmlidXRpb24gR3VpZGU8L2E+PC9saT4KKyAgPGxp
PjxhIGhyZWY9Imh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcHl0ZXN0Ij5weXRlc3QgQCBQ
eVBJPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRl
di9weXRlc3QvIj5weXRlc3QgQCBHaXRIdWI8L2E+PC9saT4KKyAgPGxpPjxhIGhyZWY9Imh0dHA6
Ly9wbHVnaW5jb21wYXQuaGVyb2t1YXBwLmNvbS8iPjNyZCBwYXJ0eSBwbHVnaW5zPC9hPjwvbGk+
CisgIDxsaT48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWVzIj5Jc3N1ZSBUcmFja2VyPC9hPjwvbGk+CisgIDxsaT48YSBocmVmPSJodHRwczovL21lZGlh
LnJlYWR0aGVkb2NzLm9yZy9wZGYvcHl0ZXN0L2xhdGVzdC9weXRlc3QucGRmIj5QREYgRG9jdW1l
bnRhdGlvbjwvYT4KKzwvdWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGVt
cGxhdGVzL3NpZGViYXJpbnRyby5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190ZW1wbGF0ZXMv
c2lkZWJhcmludHJvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWU4NjBjMTcyZjBmNjg0ZTAyZTVmN2Q0YmI5
YmI2MjdhMDU3ZDE5OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGVt
cGxhdGVzL3NpZGViYXJpbnRyby5odG1sCkBAIC0wLDAgKzEsNSBAQAorPGgzPkFib3V0IHB5dGVz
dDwvaDM+Cis8cD4KKyAgcHl0ZXN0IGlzIGEgbWF0dXJlIGZ1bGwtZmVhdHVyZWQgUHl0aG9uIHRl
c3RpbmcgdG9vbCB0aGF0IGhlbHBzCisgIHlvdSB3cml0ZSBiZXR0ZXIgcHJvZ3JhbXMuCis8L3A+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RlbXBsYXRlcy93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGVtcGxhdGVzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmMyMGYxNmVjMDNhMTUxZmI1NzAwZjBlMGM4YmFhYTJlNjA5MzViOTcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RlbXBsYXRlcy93M2MtaW1wb3J0LmxvZwpAQCAt
MCwwICsxLDIwIEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1Ro
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RlbXBsYXRlcy9nbG9i
YWx0b2MuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGVtcGxhdGVzL2xheW91dC5odG1sCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL190ZW1wbGF0ZXMvbGlua3MuaHRtbAorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9fdGVtcGxhdGVzL3NpZGViYXJpbnRyby5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vX3RoZW1lcy9MSUNFTlNFIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvTElD
RU5TRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44ZGFhYjdlZTZlZmUzYjZmM2MyYTI1OTRiNzExZTdhOTAyNmViNWUy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvTElDRU5TRQpA
QCAtMCwwICsxLDM3IEBACitDb3B5cmlnaHQgKGMpIDIwMTAgYnkgQXJtaW4gUm9uYWNoZXIuCisK
K1NvbWUgcmlnaHRzIHJlc2VydmVkLgorCitSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zIG9mIHRoZSB0aGVtZSwgd2l0aCBvcgord2l0aG91dCBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKK2FyZSBtZXQ6CisKKyogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorCisqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAgY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAgZGlzY2xhaW1lciBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkCisgIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKworKiBUaGUgbmFtZXMgb2YgdGhlIGNvbnRyaWJ1dG9ycyBt
YXkgbm90IGJlIHVzZWQgdG8gZW5kb3JzZSBvcgorICBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMKKyAgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorCitXZSBraW5kbHkgYXNrIHlvdSB0byBvbmx5IHVzZSB0aGVzZSB0aGVtZXMgaW4g
YW4gdW5tb2RpZmllZCBtYW5uZXIganVzdAorZm9yIEZsYXNrIGFuZCBGbGFzay1yZWxhdGVkIHBy
b2R1Y3RzLCBub3QgZm9yIHVucmVsYXRlZCBwcm9qZWN0cy4gIElmIHlvdQorbGlrZSB0aGUgdmlz
dWFsIHN0eWxlIGFuZCB3YW50IHRvIHVzZSBpdCBmb3IgeW91ciBvd24gcHJvamVjdHMsIHBsZWFz
ZQorY29uc2lkZXIgbWFraW5nIHNvbWUgbGFyZ2VyIGNoYW5nZXMgdG8gdGhlIHRoZW1lcyAoc3Vj
aCBhcyBjaGFuZ2luZworZm9udCBmYWNlcywgc2l6ZXMsIGNvbG9ycyBvciBtYXJnaW5zKS4KKwor
VEhJUyBUSEVNRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUyAiQVMgSVMiCitBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCitJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFCitMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCitDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCitJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKK0FSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFRIRU1FLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCitQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVz
L1JFQURNRSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL1JFQURNRQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
MzI5MmJkZmY4ZWQ1NDI5ZWVkZDdmNDA5ODM5OTc5ZDQwOGJlYjZhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvUkVBRE1FCkBAIC0wLDAgKzEsMzEgQEAKK0Zs
YXNrIFNwaGlueCBTdHlsZXMKKz09PT09PT09PT09PT09PT09PT0KKworVGhpcyByZXBvc2l0b3J5
IGNvbnRhaW5zIHNwaGlueCBzdHlsZXMgZm9yIEZsYXNrIGFuZCBGbGFzayByZWxhdGVkCitwcm9q
ZWN0cy4gIFRvIHVzZSB0aGlzIHN0eWxlIGluIHlvdXIgU3BoaW54IGRvY3VtZW50YXRpb24sIGZv
bGxvdwordGhpcyBndWlkZToKKworMS4gcHV0IHRoaXMgZm9sZGVyIGFzIF90aGVtZXMgaW50byB5
b3VyIGRvY3MgZm9sZGVyLiAgQWx0ZXJuYXRpdmVseQorICAgeW91IGNhbiBhbHNvIHVzZSBnaXQg
c3VibW9kdWxlcyB0byBjaGVjayBvdXQgdGhlIGNvbnRlbnRzIHRoZXJlLgorMi4gYWRkIHRoaXMg
dG8geW91ciBjb25mLnB5OgorCisgICBzeXMucGF0aC5hcHBlbmQob3MucGF0aC5hYnNwYXRoKCdf
dGhlbWVzJykpCisgICBodG1sX3RoZW1lX3BhdGggPSBbJ190aGVtZXMnXQorICAgaHRtbF90aGVt
ZSA9ICdmbGFzaycKKworVGhlIGZvbGxvd2luZyB0aGVtZXMgZXhpc3Q6CisKKy0gJ2ZsYXNrJyAt
IHRoZSBzdGFuZGFyZCBmbGFzayBkb2N1bWVudGF0aW9uIHRoZW1lIGZvciBsYXJnZQorICBwcm9q
ZWN0cworLSAnZmxhc2tfc21hbGwnIC0gc21hbGwgb25lLXBhZ2UgdGhlbWUuICBJbnRlbmRlZCB0
byBiZSB1c2VkIGJ5CisgIHZlcnkgc21hbGwgYWRkb24gbGlicmFyaWVzIGZvciBmbGFzay4KKwor
VGhlIGZvbGxvd2luZyBvcHRpb25zIGV4aXN0IGZvciB0aGUgZmxhc2tfc21hbGwgdGhlbWU6CisK
KyAgIFtvcHRpb25zXQorICAgaW5kZXhfbG9nbyA9ICcnICAgICAgICAgICAgICBmaWxlbmFtZSBv
ZiBhIHBpY3R1cmUgaW4gX3N0YXRpYworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
byBiZSB1c2VkIGFzIHJlcGxhY2VtZW50IGZvciB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaDEgaW4gdGhlIGluZGV4LnJzdCBmaWxlLgorICAgaW5kZXhfbG9nb19oZWlnaHQg
PSAxMjBweCAgICBoZWlnaHQgb2YgdGhlIGluZGV4IGxvZ28KKyAgIGdpdGh1Yl9mb3JrID0gJycg
ICAgICAgICAgICAgcmVwb3NpdG9yeSBuYW1lIG9uIGdpdGh1YiBmb3IgdGhlCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJmb3JrIG1lIiBiYWRnZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2svbGF5b3V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vX3RoZW1lcy9mbGFzay9sYXlvdXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOWM0M2ZiYmVmYzFmOTM1
ZGQ0ZTk5M2U1N2VmMGRlYTYwNGI5NDU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL190aGVtZXMvZmxhc2svbGF5b3V0Lmh0bWwKQEAgLTAsMCArMSwyNCBAQAoreyUtIGV4
dGVuZHMgImJhc2ljL2xheW91dC5odG1sIiAlfQoreyUtIGJsb2NrIGV4dHJhaGVhZCAlfQorICB7
eyBzdXBlcigpIH19CisgIHslIGlmIHRoZW1lX3RvdWNoX2ljb24gJX0KKyAgPGxpbmsgcmVsPSJh
cHBsZS10b3VjaC1pY29uIiBocmVmPSJ7eyBwYXRodG8oJ19zdGF0aWMvJyB+IHRoZW1lX3RvdWNo
X2ljb24sIDEpIH19IiAvPgorICB7JSBlbmRpZiAlfQorICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg
Y29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTAuOSwgbWF4aW11bS1z
Y2FsZT0wLjkiPgoreyUgZW5kYmxvY2sgJX0KK3slLSBibG9jayByZWxiYXIyICV9eyUgZW5kYmxv
Y2sgJX0KK3slIGJsb2NrIGhlYWRlciAlfQorICB7eyBzdXBlcigpIH19CisgIHslIGlmIHBhZ2Vu
YW1lID09ICdpbmRleCcgJX0KKyAgPGRpdiBjbGFzcz1pbmRleHdyYXBwZXI+CisgIHslIGVuZGlm
ICV9Cit7JSBlbmRibG9jayAlfQoreyUtIGJsb2NrIGZvb3RlciAlfQorICA8ZGl2IGNsYXNzPSJm
b290ZXIiPgorICAgICZjb3B5OyBDb3B5cmlnaHQge3sgY29weXJpZ2h0IH19LgorICAgIENyZWF0
ZWQgdXNpbmcgPGEgaHJlZj0iaHR0cDovL3NwaGlueC5wb2Nvby5vcmcvIj5TcGhpbng8L2E+Lgor
ICA8L2Rpdj4KKyAgeyUgaWYgcGFnZW5hbWUgPT0gJ2luZGV4JyAlfQorICA8L2Rpdj4KKyAgeyUg
ZW5kaWYgJX0KK3slLSBlbmRibG9jayAlfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L190aGVtZXMvZmxhc2svcmVsYXRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1l
cy9mbGFzay9yZWxhdGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYmJjZGU4NWJiNDhkM2Y4YmRmZDA2
NjEwNGQ4ZjJlYWU1ODRlNzJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L190aGVtZXMvZmxhc2svcmVsYXRpb25zLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPGgzPlJlbGF0
ZWQgVG9waWNzPC9oMz4KKzx1bD4KKyAgPGxpPjxhIGhyZWY9Int7IHBhdGh0byhtYXN0ZXJfZG9j
KSB9fSI+RG9jdW1lbnRhdGlvbiBvdmVydmlldzwvYT48dWw+CisgIHslLSBmb3IgcGFyZW50IGlu
IHBhcmVudHMgJX0KKyAgPGxpPjxhIGhyZWY9Int7IHBhcmVudC5saW5rfGUgfX0iPnt7IHBhcmVu
dC50aXRsZSB9fTwvYT48dWw+CisgIHslLSBlbmRmb3IgJX0KKyAgICB7JS0gaWYgcHJldiAlfQor
ICAgICAgPGxpPlByZXZpb3VzOiA8YSBocmVmPSJ7eyBwcmV2Lmxpbmt8ZSB9fSIgdGl0bGU9Int7
IF8oJ3ByZXZpb3VzIGNoYXB0ZXInKQorICAgICAgICB9fSI+e3sgcHJldi50aXRsZSB9fTwvYT48
L2xpPgorICAgIHslLSBlbmRpZiAlfQorICAgIHslLSBpZiBuZXh0ICV9CisgICAgICA8bGk+TmV4
dDogPGEgaHJlZj0ie3sgbmV4dC5saW5rfGUgfX0iIHRpdGxlPSJ7eyBfKCduZXh0IGNoYXB0ZXIn
KQorICAgICAgICB9fSI+e3sgbmV4dC50aXRsZSB9fTwvYT48L2xpPgorICAgIHslLSBlbmRpZiAl
fQorICB7JS0gZm9yIHBhcmVudCBpbiBwYXJlbnRzICV9CisgIDwvdWw+PC9saT4KKyAgeyUtIGVu
ZGZvciAlfQorICA8L3VsPjwvbGk+Cis8L3VsPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL190aGVtZXMvZmxhc2svc3RhdGljL2ZsYXNreS5jc3NfdCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9fdGhlbWVzL2ZsYXNrL3N0YXRpYy9mbGFza3kuY3NzX3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmI1OTNkYTI5
OWE4MzUzZTMxYzJlYWZiNWIwNDQ1MDU2MjVlMDUxNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9fdGhlbWVzL2ZsYXNrL3N0YXRpYy9mbGFza3kuY3NzX3QKQEAgLTAsMCAr
MSw1NTcgQEAKKy8qCisgKiBmbGFza3kuY3NzX3QKKyAqIH5+fn5+fn5+fn5+fgorICoKKyAqIDpj
b3B5cmlnaHQ6IENvcHlyaWdodCAyMDEwIGJ5IEFybWluIFJvbmFjaGVyLgorICogOmxpY2Vuc2U6
IEZsYXNrIERlc2lnbiBMaWNlbnNlLCBzZWUgTElDRU5TRSBmb3IgZGV0YWlscy4KKyAqLworCit7
JSBzZXQgcGFnZV93aWR0aCA9ICcxMDIwcHgnICV9Cit7JSBzZXQgc2lkZWJhcl93aWR0aCA9ICcy
MjBweCcgJX0KKy8qIG9yYW5nZSBvZiBsb2dvIGlzICNkNjdjMjkgYnV0IHdlIHVzZSBibGFjayBm
b3IgbGlua3MgZm9yIG5vdyAqLworeyUgc2V0IGxpbmtfY29sb3IgPSAnIzAwMCcgJX0KK3slIHNl
dCBsaW5rX2hvdmVyX2NvbG9yID0gJyMwMDAnICV9Cit7JSBzZXQgYmFzZV9mb250ID0gJ3NhbnMt
c2VyaWYnICV9Cit7JSBzZXQgaGVhZGVyX2ZvbnQgPSAnc2VyaWYnICV9CisKK0BpbXBvcnQgdXJs
KCJiYXNpYy5jc3MiKTsKKworLyogLS0gcGFnZSBsYXlvdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworYm9keSB7CisgICAg
Zm9udC1mYW1pbHk6IHt7IGJhc2VfZm9udCB9fTsKKyAgICBmb250LXNpemU6IDE3cHg7CisgICAg
YmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CisgICAgY29sb3I6ICMwMDA7CisgICAgbWFyZ2luOiAw
OworICAgIHBhZGRpbmc6IDA7Cit9CisKK2Rpdi5kb2N1bWVudCB7CisgICAgd2lkdGg6IHt7IHBh
Z2Vfd2lkdGggfX07CisgICAgbWFyZ2luOiAzMHB4IGF1dG8gMCBhdXRvOworfQorCitkaXYuZG9j
dW1lbnR3cmFwcGVyIHsKKyAgICBmbG9hdDogbGVmdDsKKyAgICB3aWR0aDogMTAwJTsKK30KKwor
ZGl2LmJvZHl3cmFwcGVyIHsKKyAgICBtYXJnaW46IDAgMCAwIHt7IHNpZGViYXJfd2lkdGggfX07
Cit9CisKK2Rpdi5zcGhpbnhzaWRlYmFyIHsKKyAgICB3aWR0aDoge3sgc2lkZWJhcl93aWR0aCB9
fTsKK30KKworaHIgeworICAgIGJvcmRlcjogMDsKKyAgICBib3JkZXItdG9wOiAxcHggc29saWQg
I0IxQjRCNjsKK30KKworZGl2LmJvZHkgeworICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7
CisgICAgY29sb3I6ICMzRTQzNDk7CisgICAgcGFkZGluZzogMCAzMHB4IDAgMzBweDsKK30KKwor
aW1nLmZsb2F0aW5nZmxhc2sgeworICAgIHBhZGRpbmc6IDAgMCAxMHB4IDEwcHg7CisgICAgZmxv
YXQ6IHJpZ2h0OworfQorCitkaXYuZm9vdGVyIHsKKyAgICB3aWR0aDoge3sgcGFnZV93aWR0aCB9
fTsKKyAgICBtYXJnaW46IDIwcHggYXV0byAzMHB4IGF1dG87CisgICAgZm9udC1zaXplOiAxNHB4
OworICAgIGNvbG9yOiAjODg4OworICAgIHRleHQtYWxpZ246IHJpZ2h0OworfQorCitkaXYuZm9v
dGVyIGEgeworICAgIGNvbG9yOiAjODg4OworfQorCitkaXYucmVsYXRlZCB7CisgICAgZGlzcGxh
eTogbm9uZTsKK30KKworZGl2LnNwaGlueHNpZGViYXIgYSB7CisgICAgY29sb3I6ICM0NDQ7Cisg
ICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOworICAgIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQg
Izk5OTsKK30KKworZGl2LnNwaGlueHNpZGViYXIgYTpob3ZlciB7CisgICAgYm9yZGVyLWJvdHRv
bTogMXB4IHNvbGlkICM5OTk7Cit9CisKK2Rpdi5zcGhpbnhzaWRlYmFyIHsKKyAgICBmb250LXNp
emU6IDE0cHg7CisgICAgbGluZS1oZWlnaHQ6IDEuNTsKK30KKworZGl2LnNwaGlueHNpZGViYXJ3
cmFwcGVyIHsKKyAgICBwYWRkaW5nOiAxOHB4IDEwcHg7Cit9CisKK2Rpdi5zcGhpbnhzaWRlYmFy
d3JhcHBlciBwLmxvZ28geworICAgIHBhZGRpbmc6IDAgMCAyMHB4IDA7CisgICAgbWFyZ2luOiAw
OworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKK30KKworZGl2LnNwaGlueHNpZGViYXIgaDMsCitk
aXYuc3BoaW54c2lkZWJhciBoNCB7CisgICAgZm9udC1mYW1pbHk6IHt7IGhlYWRlcl9mb250IH19
OworICAgIGNvbG9yOiAjNDQ0OworICAgIGZvbnQtc2l6ZTogMjRweDsKKyAgICBmb250LXdlaWdo
dDogbm9ybWFsOworICAgIG1hcmdpbjogMCAwIDVweCAwOworICAgIHBhZGRpbmc6IDA7Cit9CisK
K2Rpdi5zcGhpbnhzaWRlYmFyIGg0IHsKKyAgICBmb250LXNpemU6IDIwcHg7Cit9CisKK2Rpdi5z
cGhpbnhzaWRlYmFyIGgzIGEgeworICAgIGNvbG9yOiAjNDQ0OworfQorCitkaXYuc3BoaW54c2lk
ZWJhciBwLmxvZ28gYSwKK2Rpdi5zcGhpbnhzaWRlYmFyIGgzIGEsCitkaXYuc3BoaW54c2lkZWJh
ciBwLmxvZ28gYTpob3ZlciwKK2Rpdi5zcGhpbnhzaWRlYmFyIGgzIGE6aG92ZXIgeworICAgIGJv
cmRlcjogbm9uZTsKK30KKworZGl2LnNwaGlueHNpZGViYXIgcCB7CisgICAgY29sb3I6ICM1NTU7
CisgICAgbWFyZ2luOiAxMHB4IDA7Cit9CisKK2Rpdi5zcGhpbnhzaWRlYmFyIHVsIHsKKyAgICBt
YXJnaW46IDEwcHggMDsKKyAgICBwYWRkaW5nOiAwOworICAgIGNvbG9yOiAjMDAwOworfQorCitk
aXYuc3BoaW54c2lkZWJhciBpbnB1dCB7CisgICAgYm9yZGVyOiAxcHggc29saWQgI2NjYzsKKyAg
ICBmb250LWZhbWlseToge3sgYmFzZV9mb250IH19OworICAgIGZvbnQtc2l6ZTogMWVtOworfQor
CisvKiAtLSBib2R5IHN0eWxlcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworCithIHsKKyAgICBjb2xvcjoge3sgbGlua19jb2xv
ciB9fTsKKyAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKK30KKworYTpob3ZlciB7Cisg
ICAgY29sb3I6IHt7IGxpbmtfaG92ZXJfY29sb3IgfX07CisgICAgdGV4dC1kZWNvcmF0aW9uOiB1
bmRlcmxpbmU7Cit9CisKK2EucmVmZXJlbmNlLmludGVybmFsIGVtIHsKKyAgICBmb250LXN0eWxl
OiBub3JtYWw7Cit9CisKK2Rpdi5ib2R5IGgxLAorZGl2LmJvZHkgaDIsCitkaXYuYm9keSBoMywK
K2Rpdi5ib2R5IGg0LAorZGl2LmJvZHkgaDUsCitkaXYuYm9keSBoNiB7CisgICAgZm9udC1mYW1p
bHk6IHt7IGhlYWRlcl9mb250IH19OworICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CisgICAgbWFy
Z2luOiAzMHB4IDBweCAxMHB4IDBweDsKKyAgICBwYWRkaW5nOiAwOworfQorCit7JSBpZiB0aGVt
ZV9pbmRleF9sb2dvICV9CitkaXYuaW5kZXh3cmFwcGVyIGgxIHsKKyAgICB0ZXh0LWluZGVudDog
LTk5OTk5OXB4OworICAgIGJhY2tncm91bmQ6IHVybCh7eyB0aGVtZV9pbmRleF9sb2dvIH19KSBu
by1yZXBlYXQgY2VudGVyIGNlbnRlcjsKKyAgICBoZWlnaHQ6IHt7IHRoZW1lX2luZGV4X2xvZ29f
aGVpZ2h0IH19OworfQoreyUgZWxzZSAlfQorZGl2LmluZGV4d3JhcHBlciBkaXYuYm9keSBoMSB7
CisgICAgZm9udC1zaXplOiAyMDAlOworfQoreyUgZW5kaWYgJX0KK2Rpdi5ib2R5IGgxIHsgbWFy
Z2luLXRvcDogMDsgcGFkZGluZy10b3A6IDA7IGZvbnQtc2l6ZTogMjQwJTsgfQorZGl2LmJvZHkg
aDIgeyBmb250LXNpemU6IDE4MCU7IH0KK2Rpdi5ib2R5IGgzIHsgZm9udC1zaXplOiAxNTAlOyB9
CitkaXYuYm9keSBoNCB7IGZvbnQtc2l6ZTogMTMwJTsgfQorZGl2LmJvZHkgaDUgeyBmb250LXNp
emU6IDEwMCU7IH0KK2Rpdi5ib2R5IGg2IHsgZm9udC1zaXplOiAxMDAlOyB9CisKK2EuaGVhZGVy
bGluayB7CisgICAgY29sb3I6ICNkZGQ7CisgICAgcGFkZGluZzogMCA0cHg7CisgICAgdGV4dC1k
ZWNvcmF0aW9uOiBub25lOworfQorCithLmhlYWRlcmxpbms6aG92ZXIgeworICAgIGNvbG9yOiAj
NDQ0OworICAgIGJhY2tncm91bmQ6ICNlYWVhZWE7Cit9CisKK2Rpdi5ib2R5IHAsIGRpdi5ib2R5
IGRkLCBkaXYuYm9keSBsaSB7CisgICAgbGluZS1oZWlnaHQ6IDEuNGVtOworfQorCitkaXYuYWRt
b25pdGlvbiB7CisgICAgYmFja2dyb3VuZDogI2ZhZmFmYTsKKyAgICBtYXJnaW46IDIwcHggLTMw
cHg7CisgICAgcGFkZGluZzogMTBweCAzMHB4OworICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAj
Y2NjOworICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjOworfQorCitkaXYuYWRtb25p
dGlvbiB0dC54cmVmLCBkaXYuYWRtb25pdGlvbiBhIHR0IHsKKyAgICBib3JkZXItYm90dG9tOiAx
cHggc29saWQgI2ZhZmFmYTsKK30KKworZGQgZGl2LmFkbW9uaXRpb24geworICAgIG1hcmdpbi1s
ZWZ0OiAtNjBweDsKKyAgICBwYWRkaW5nLWxlZnQ6IDYwcHg7Cit9CisKK2Rpdi5hZG1vbml0aW9u
IHAuYWRtb25pdGlvbi10aXRsZSB7CisgICAgZm9udC1mYW1pbHk6IHt7IGhlYWRlcl9mb250IH19
OworICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7CisgICAgZm9udC1zaXplOiAyNHB4OworICAgIG1h
cmdpbjogMCAwIDEwcHggMDsKKyAgICBwYWRkaW5nOiAwOworICAgIGxpbmUtaGVpZ2h0OiAxOwor
fQorCitkaXYuYWRtb25pdGlvbiBwLmxhc3QgeworICAgIG1hcmdpbi1ib3R0b206IDA7Cit9CisK
K2Rpdi5oaWdobGlnaHQgeworICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOworfQorCitkdDp0
YXJnZXQsIC5oaWdobGlnaHQgeworICAgIGJhY2tncm91bmQ6ICNGQUYzRTg7Cit9CisKK2Rpdi5u
b3RlIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOworICAgIGJvcmRlcjogMXB4IHNvbGlk
ICNjY2M7Cit9CisKK2Rpdi5zZWVhbHNvIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZjOwor
ICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZjY7Cit9CisKK2Rpdi50b3BpYyB7CisgICAgYmFja2dy
b3VuZC1jb2xvcjogI2VlZTsKK30KKworcC5hZG1vbml0aW9uLXRpdGxlIHsKKyAgICBkaXNwbGF5
OiBpbmxpbmU7Cit9CisKK3AuYWRtb25pdGlvbi10aXRsZTphZnRlciB7CisgICAgY29udGVudDog
IjoiOworfQorCitwcmUsIHR0LCBjb2RlIHsKKyAgICBmb250LWZhbWlseTogJ0NvbnNvbGFzJywg
J01lbmxvJywgJ0RlamEgVnUgU2FucyBNb25vJywgJ0JpdHN0cmVhbSBWZXJhIFNhbnMgTW9ubycs
IG1vbm9zcGFjZTsKKyAgICBmb250LXNpemU6IDAuOWVtOworICAgIGJhY2tncm91bmQ6ICNlZWU7
Cit9CisKK2ltZy5zY3JlZW5zaG90IHsKK30KKwordHQuZGVzY25hbWUsIHR0LmRlc2NjbGFzc25h
bWUgeworICAgIGZvbnQtc2l6ZTogMC45NWVtOworfQorCit0dC5kZXNjbmFtZSB7CisgICAgcGFk
ZGluZy1yaWdodDogMC4wOGVtOworfQorCitpbWcuc2NyZWVuc2hvdCB7CisgICAgLW1vei1ib3gt
c2hhZG93OiAycHggMnB4IDRweCAjZWVlOworICAgIC13ZWJraXQtYm94LXNoYWRvdzogMnB4IDJw
eCA0cHggI2VlZTsKKyAgICBib3gtc2hhZG93OiAycHggMnB4IDRweCAjZWVlOworfQorCit0YWJs
ZS5kb2N1dGlscyB7CisgICAgYm9yZGVyOiAxcHggc29saWQgIzg4ODsKKyAgICAtbW96LWJveC1z
aGFkb3c6IDJweCAycHggNHB4ICNlZWU7CisgICAgLXdlYmtpdC1ib3gtc2hhZG93OiAycHggMnB4
IDRweCAjZWVlOworICAgIGJveC1zaGFkb3c6IDJweCAycHggNHB4ICNlZWU7Cit9CisKK3RhYmxl
LmRvY3V0aWxzIHRkLCB0YWJsZS5kb2N1dGlscyB0aCB7CisgICAgYm9yZGVyOiAxcHggc29saWQg
Izg4ODsKKyAgICBwYWRkaW5nOiAwLjI1ZW0gMC43ZW07Cit9CisKK3RhYmxlLmZpZWxkLWxpc3Qs
IHRhYmxlLmZvb3Rub3RlIHsKKyAgICBib3JkZXI6IG5vbmU7CisgICAgLW1vei1ib3gtc2hhZG93
OiBub25lOworICAgIC13ZWJraXQtYm94LXNoYWRvdzogbm9uZTsKKyAgICBib3gtc2hhZG93OiBu
b25lOworfQorCit0YWJsZS5mb290bm90ZSB7CisgICAgbWFyZ2luOiAxNXB4IDA7CisgICAgd2lk
dGg6IDEwMCU7CisgICAgYm9yZGVyOiAxcHggc29saWQgI2VlZTsKKyAgICBiYWNrZ3JvdW5kOiAj
ZmRmZGZkOworICAgIGZvbnQtc2l6ZTogMC45ZW07Cit9CisKK3RhYmxlLmZvb3Rub3RlICsgdGFi
bGUuZm9vdG5vdGUgeworICAgIG1hcmdpbi10b3A6IC0xNXB4OworICAgIGJvcmRlci10b3A6IG5v
bmU7Cit9CisKK3RhYmxlLmZpZWxkLWxpc3QgdGggeworICAgIHBhZGRpbmc6IDAgMC44ZW0gMCAw
OworfQorCit0YWJsZS5maWVsZC1saXN0IHRkIHsKKyAgICBwYWRkaW5nOiAwOworfQorCit0YWJs
ZS5mb290bm90ZSB0ZC5sYWJlbCB7CisgICAgd2lkdGg6IDBweDsKKyAgICBwYWRkaW5nOiAwLjNl
bSAwIDAuM2VtIDAuNWVtOworfQorCit0YWJsZS5mb290bm90ZSB0ZCB7CisgICAgcGFkZGluZzog
MC4zZW0gMC41ZW07Cit9CisKK2RsIHsKKyAgICBtYXJnaW46IDA7CisgICAgcGFkZGluZzogMDsK
K30KKworZGwgZGQgeworICAgIG1hcmdpbi1sZWZ0OiAzMHB4OworfQorCitibG9ja3F1b3RlIHsK
KyAgICBtYXJnaW46IDAgMCAwIDMwcHg7CisgICAgcGFkZGluZzogMDsKK30KKwordWwsIG9sIHsK
KyAgICBtYXJnaW46IDEwcHggMCAxMHB4IDMwcHg7CisgICAgcGFkZGluZzogMDsKK30KKworcHJl
IHsKKyAgICBiYWNrZ3JvdW5kOiAjZWVlOworICAgIHBhZGRpbmc6IDdweCAzMHB4OworICAgIG1h
cmdpbjogMTVweCAtMzBweDsKKyAgICBsaW5lLWhlaWdodDogMS4zZW07Cit9CisKK2RsIHByZSwg
YmxvY2txdW90ZSBwcmUsIGxpIHByZSB7CisgICAgbWFyZ2luLWxlZnQ6IC02MHB4OworICAgIHBh
ZGRpbmctbGVmdDogNjBweDsKK30KKworZGwgZGwgcHJlIHsKKyAgICBtYXJnaW4tbGVmdDogLTkw
cHg7CisgICAgcGFkZGluZy1sZWZ0OiA5MHB4OworfQorCit0dCB7CisgICAgYmFja2dyb3VuZC1j
b2xvcjogI2VjZjBmMzsKKyAgICBjb2xvcjogIzIyMjsKKyAgICAvKiBwYWRkaW5nOiAxcHggMnB4
OyAqLworfQorCit0dC54cmVmLCBhIHR0IHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkJGQkZC
OworICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB3aGl0ZTsKK30KKworYS5yZWZlcmVuY2Ug
eworICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKKyAgICBib3JkZXItYm90dG9tOiAxcHggZG90
dGVkIHt7IGxpbmtfY29sb3IgfX07Cit9CisKK2EucmVmZXJlbmNlOmhvdmVyIHsKKyAgICBib3Jk
ZXItYm90dG9tOiAxcHggc29saWQge3sgbGlua19ob3Zlcl9jb2xvciB9fTsKK30KKworYS5mb290
bm90ZS1yZWZlcmVuY2UgeworICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKKyAgICBmb250LXNp
emU6IDAuN2VtOworICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7CisgICAgYm9yZGVyLWJvdHRvbTog
MXB4IGRvdHRlZCB7eyBsaW5rX2NvbG9yIH19OworfQorCithLmZvb3Rub3RlLXJlZmVyZW5jZTpo
b3ZlciB7CisgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHt7IGxpbmtfaG92ZXJfY29sb3Ig
fX07Cit9CisKK2E6aG92ZXIgdHQgeworICAgIGJhY2tncm91bmQ6ICNFRUU7Cit9CisKKworQG1l
ZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODcwcHgpIHsKKworICAgIGRpdi5zcGhpbnhzaWRl
YmFyIHsKKyAgICAgICAgZGlzcGxheTogbm9uZTsKKyAgICB9CisKKyAgICBkaXYuZG9jdW1lbnQg
eworICAgICAgIHdpZHRoOiAxMDAlOworCisgICAgfQorCisgICAgZGl2LmRvY3VtZW50d3JhcHBl
ciB7CisgICAgICAgIG1hcmdpbi1sZWZ0OiAwOworICAgICAgICBtYXJnaW4tdG9wOiAwOworICAg
ICAgICBtYXJnaW4tcmlnaHQ6IDA7CisgICAgICAgIG1hcmdpbi1ib3R0b206IDA7CisgICAgfQor
CisgICAgZGl2LmJvZHl3cmFwcGVyIHsKKyAgICAgICAgbWFyZ2luLXRvcDogMDsKKyAgICAgICAg
bWFyZ2luLXJpZ2h0OiAwOworICAgICAgICBtYXJnaW4tYm90dG9tOiAwOworICAgICAgICBtYXJn
aW4tbGVmdDogMDsKKyAgICB9CisKKyAgICB1bCB7CisgICAgICAgIG1hcmdpbi1sZWZ0OiAwOwor
ICAgIH0KKworICAgIC5kb2N1bWVudCB7CisgICAgICAgIHdpZHRoOiBhdXRvOworICAgIH0KKwor
ICAgIC5mb290ZXIgeworICAgICAgICB3aWR0aDogYXV0bzsKKyAgICB9CisKKyAgICAuYm9keXdy
YXBwZXIgeworICAgICAgICBtYXJnaW46IDA7CisgICAgfQorCisgICAgLmZvb3RlciB7CisgICAg
ICAgIHdpZHRoOiBhdXRvOworICAgIH0KKworICAgIC5naXRodWIgeworICAgICAgICBkaXNwbGF5
OiBub25lOworICAgIH0KKworCisKK30KKworCisKK0BtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lk
dGg6IDg3NXB4KSB7CisKKyAgICBib2R5IHsKKyAgICAgICAgbWFyZ2luOiAwOworICAgICAgICBw
YWRkaW5nOiAyMHB4IDMwcHg7CisgICAgfQorCisgICAgZGl2LmRvY3VtZW50d3JhcHBlciB7Cisg
ICAgICAgIGZsb2F0OiBub25lOworICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKKyAgICB9CisK
KyAgICBkaXYuc3BoaW54c2lkZWJhciB7CisgICAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAg
ICBmbG9hdDogbm9uZTsKKyAgICAgICAgd2lkdGg6IDEwMi41JTsKKyAgICAgICAgbWFyZ2luOiA1
MHB4IC0zMHB4IC0yMHB4IC0zMHB4OworICAgICAgICBwYWRkaW5nOiAxMHB4IDIwcHg7CisgICAg
ICAgIGJhY2tncm91bmQ6ICMzMzM7CisgICAgICAgIGNvbG9yOiB3aGl0ZTsKKyAgICB9CisKKyAg
ICBkaXYuc3BoaW54c2lkZWJhciBoMywgZGl2LnNwaGlueHNpZGViYXIgaDQsIGRpdi5zcGhpbnhz
aWRlYmFyIHAsCisgICAgZGl2LnNwaGlueHNpZGViYXIgaDMgYSwgZGl2LnNwaGlueHNpZGViYXIg
dWwgeworICAgICAgICBjb2xvcjogd2hpdGU7CisgICAgfQorCisgICAgZGl2LnNwaGlueHNpZGVi
YXIgYSB7CisgICAgICAgIGNvbG9yOiAjYWFhOworICAgIH0KKworICAgIGRpdi5zcGhpbnhzaWRl
YmFyIHAubG9nbyB7CisgICAgICAgIGRpc3BsYXk6IG5vbmU7CisgICAgfQorCisgICAgZGl2LmRv
Y3VtZW50IHsKKyAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgIG1hcmdpbjogMDsKKyAgICB9
CisKKyAgICBkaXYucmVsYXRlZCB7CisgICAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgICBt
YXJnaW46IDA7CisgICAgICAgIHBhZGRpbmc6IDEwcHggMCAyMHB4IDA7CisgICAgfQorCisgICAg
ZGl2LnJlbGF0ZWQgdWwsCisgICAgZGl2LnJlbGF0ZWQgdWwgbGkgeworICAgICAgICBtYXJnaW46
IDA7CisgICAgICAgIHBhZGRpbmc6IDA7CisgICAgfQorCisgICAgZGl2LmZvb3RlciB7CisgICAg
ICAgIGRpc3BsYXk6IG5vbmU7CisgICAgfQorCisgICAgZGl2LmJvZHl3cmFwcGVyIHsKKyAgICAg
ICAgbWFyZ2luOiAwOworICAgIH0KKworICAgIGRpdi5ib2R5IHsKKyAgICAgICAgbWluLWhlaWdo
dDogMDsKKyAgICAgICAgcGFkZGluZzogMDsKKyAgICB9CisKKyAgICAucnRkX2RvY19mb290ZXIg
eworICAgICAgICBkaXNwbGF5OiBub25lOworICAgIH0KKworICAgIC5kb2N1bWVudCB7CisgICAg
ICAgIHdpZHRoOiBhdXRvOworICAgIH0KKworICAgIC5mb290ZXIgeworICAgICAgICB3aWR0aDog
YXV0bzsKKyAgICB9CisKKyAgICAuZm9vdGVyIHsKKyAgICAgICAgd2lkdGg6IGF1dG87CisgICAg
fQorCisgICAgLmdpdGh1YiB7CisgICAgICAgIGRpc3BsYXk6IG5vbmU7CisgICAgfQorfQorCisv
KiBtaXNjLiAqLworCisucmV2c3lzLWlubGluZSB7CisgICAgZGlzcGxheTogbm9uZSFpbXBvcnRh
bnQ7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFzay9zdGF0
aWMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFzay9zdGF0
aWMvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjE0OGFkMTQzODU1MjY5Nzc5MDViN2E3YWZk
M2QyOGZlZTEyNmYwYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhl
bWVzL2ZsYXNrL3N0YXRpYy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE3IEBACitUaGUgdGVz
dHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9y
eS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVh
ZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0
aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3Jp
cHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2Rp
Znkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFzay9zdGF0aWMvZmxhc2t5LmNzc190CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFzay90aGVtZS5jb25mIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2svdGhlbWUuY29uZgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
OGM3MjBmODA0YzZmMDM0Y2RiMWVlMDJhNjE2Y2MxZTI3MWE0MDA3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2svdGhlbWUuY29uZgpAQCAtMCwwICsx
LDkgQEAKK1t0aGVtZV0KK2luaGVyaXQgPSBiYXNpYworc3R5bGVzaGVldCA9IGZsYXNreS5jc3MK
K3B5Z21lbnRzX3N0eWxlID0gZmxhc2tfdGhlbWVfc3VwcG9ydC5GbGFza3lTdHlsZQorCitbb3B0
aW9uc10KK2luZGV4X2xvZ28gPSAnJworaW5kZXhfbG9nb19oZWlnaHQgPSAxMjBweAordG91Y2hf
aWNvbiA9IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2svdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFzay93M2MtaW1wb3J0
LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wMmE4MWU0YzQ3YWMxODc0NDhmNDMxOTYwMjlkNjQ2OGYzNjI3ZDk0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2svdzNj
LWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitO
b25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L190aGVtZXMvZmxhc2svbGF5b3V0Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9m
bGFzay9yZWxhdGlvbnMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL2ZsYXNrL3Ro
ZW1lLmNvbmYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL2ZsYXNrX3Ro
ZW1lX3N1cHBvcnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFza190aGVtZV9z
dXBwb3J0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzZjQ3NDQ5YzExZDI0MWUzNmM4M2Q3Zjk1ZDgxOWJiZTU2
ZTJjOGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFz
a190aGVtZV9zdXBwb3J0LnB5CkBAIC0wLDAgKzEsODYgQEAKKyMgZmxhc2t5IGV4dGVuc2lvbnMu
ICBmbGFza3kgcHlnbWVudHMgc3R5bGUgYmFzZWQgb24gdGFuZ28gc3R5bGUKK2Zyb20gcHlnbWVu
dHMuc3R5bGUgaW1wb3J0IFN0eWxlCitmcm9tIHB5Z21lbnRzLnRva2VuIGltcG9ydCBLZXl3b3Jk
LCBOYW1lLCBDb21tZW50LCBTdHJpbmcsIEVycm9yLCBcCisgICAgIE51bWJlciwgT3BlcmF0b3Is
IEdlbmVyaWMsIFdoaXRlc3BhY2UsIFB1bmN0dWF0aW9uLCBPdGhlciwgTGl0ZXJhbAorCisKK2Ns
YXNzIEZsYXNreVN0eWxlKFN0eWxlKToKKyAgICBiYWNrZ3JvdW5kX2NvbG9yID0gIiNmOGY4Zjgi
CisgICAgZGVmYXVsdF9zdHlsZSA9ICIiCisKKyAgICBzdHlsZXMgPSB7CisgICAgICAgICMgTm8g
Y29ycmVzcG9uZGluZyBjbGFzcyBmb3IgdGhlIGZvbGxvd2luZzoKKyAgICAgICAgI1RleHQ6ICAg
ICAgICAgICAgICAgICAgICAgIiIsICMgY2xhc3M6ICAnJworICAgICAgICBXaGl0ZXNwYWNlOiAg
ICAgICAgICAgICAgICAidW5kZXJsaW5lICNmOGY4ZjgiLCAgICAgICMgY2xhc3M6ICd3JworICAg
ICAgICBFcnJvcjogICAgICAgICAgICAgICAgICAgICAiI2E0MDAwMCBib3JkZXI6I2VmMjkyOSIs
ICMgY2xhc3M6ICdlcnInCisgICAgICAgIE90aGVyOiAgICAgICAgICAgICAgICAgICAgICIjMDAw
MDAwIiwgICAgICAgICAgICAgICAgIyBjbGFzcyAneCcKKworICAgICAgICBDb21tZW50OiAgICAg
ICAgICAgICAgICAgICAiaXRhbGljICM4ZjU5MDIiLCAjIGNsYXNzOiAnYycKKyAgICAgICAgQ29t
bWVudC5QcmVwcm9jOiAgICAgICAgICAgIm5vaXRhbGljIiwgICAgICAgIyBjbGFzczogJ2NwJwor
CisgICAgICAgIEtleXdvcmQ6ICAgICAgICAgICAgICAgICAgICJib2xkICMwMDQ0NjEiLCAgICMg
Y2xhc3M6ICdrJworICAgICAgICBLZXl3b3JkLkNvbnN0YW50OiAgICAgICAgICAiYm9sZCAjMDA0
NDYxIiwgICAjIGNsYXNzOiAna2MnCisgICAgICAgIEtleXdvcmQuRGVjbGFyYXRpb246ICAgICAg
ICJib2xkICMwMDQ0NjEiLCAgICMgY2xhc3M6ICdrZCcKKyAgICAgICAgS2V5d29yZC5OYW1lc3Bh
Y2U6ICAgICAgICAgImJvbGQgIzAwNDQ2MSIsICAgIyBjbGFzczogJ2tuJworICAgICAgICBLZXl3
b3JkLlBzZXVkbzogICAgICAgICAgICAiYm9sZCAjMDA0NDYxIiwgICAjIGNsYXNzOiAna3AnCisg
ICAgICAgIEtleXdvcmQuUmVzZXJ2ZWQ6ICAgICAgICAgICJib2xkICMwMDQ0NjEiLCAgICMgY2xh
c3M6ICdrcicKKyAgICAgICAgS2V5d29yZC5UeXBlOiAgICAgICAgICAgICAgImJvbGQgIzAwNDQ2
MSIsICAgIyBjbGFzczogJ2t0JworCisgICAgICAgIE9wZXJhdG9yOiAgICAgICAgICAgICAgICAg
ICIjNTgyODAwIiwgICAjIGNsYXNzOiAnbycKKyAgICAgICAgT3BlcmF0b3IuV29yZDogICAgICAg
ICAgICAgImJvbGQgIzAwNDQ2MSIsICAgIyBjbGFzczogJ293JyAtIGxpa2Uga2V5d29yZHMKKwor
ICAgICAgICBQdW5jdHVhdGlvbjogICAgICAgICAgICAgICAiYm9sZCAjMDAwMDAwIiwgICAjIGNs
YXNzOiAncCcKKworICAgICAgICAjIGJlY2F1c2Ugc3BlY2lhbCBuYW1lcyBzdWNoIGFzIE5hbWUu
Q2xhc3MsIE5hbWUuRnVuY3Rpb24sIGV0Yy4KKyAgICAgICAgIyBhcmUgbm90IHJlY29nbml6ZWQg
YXMgc3VjaCBsYXRlciBpbiB0aGUgcGFyc2luZywgd2UgY2hvb3NlIHRoZW0KKyAgICAgICAgIyB0
byBsb29rIHRoZSBzYW1lIGFzIG9yZGluYXJ5IHZhcmlhYmxlcy4KKyAgICAgICAgTmFtZTogICAg
ICAgICAgICAgICAgICAgICAgIiMwMDAwMDAiLCAgICAgICAgIyBjbGFzczogJ24nCisgICAgICAg
IE5hbWUuQXR0cmlidXRlOiAgICAgICAgICAgICIjYzRhMDAwIiwgICAgICAgICMgY2xhc3M6ICdu
YScgLSB0byBiZSByZXZpc2VkCisgICAgICAgIE5hbWUuQnVpbHRpbjogICAgICAgICAgICAgICIj
MDA0NDYxIiwgICAgICAgICMgY2xhc3M6ICduYicKKyAgICAgICAgTmFtZS5CdWlsdGluLlBzZXVk
bzogICAgICAgIiMzNDY1YTQiLCAgICAgICAgIyBjbGFzczogJ2JwJworICAgICAgICBOYW1lLkNs
YXNzOiAgICAgICAgICAgICAgICAiIzAwMDAwMCIsICAgICAgICAjIGNsYXNzOiAnbmMnIC0gdG8g
YmUgcmV2aXNlZAorICAgICAgICBOYW1lLkNvbnN0YW50OiAgICAgICAgICAgICAiIzAwMDAwMCIs
ICAgICAgICAjIGNsYXNzOiAnbm8nIC0gdG8gYmUgcmV2aXNlZAorICAgICAgICBOYW1lLkRlY29y
YXRvcjogICAgICAgICAgICAiIzg4OCIsICAgICAgICAgICAjIGNsYXNzOiAnbmQnIC0gdG8gYmUg
cmV2aXNlZAorICAgICAgICBOYW1lLkVudGl0eTogICAgICAgICAgICAgICAiI2NlNWMwMCIsICAg
ICAgICAjIGNsYXNzOiAnbmknCisgICAgICAgIE5hbWUuRXhjZXB0aW9uOiAgICAgICAgICAgICJi
b2xkICNjYzAwMDAiLCAgICMgY2xhc3M6ICduZScKKyAgICAgICAgTmFtZS5GdW5jdGlvbjogICAg
ICAgICAgICAgIiMwMDAwMDAiLCAgICAgICAgIyBjbGFzczogJ25mJworICAgICAgICBOYW1lLlBy
b3BlcnR5OiAgICAgICAgICAgICAiIzAwMDAwMCIsICAgICAgICAjIGNsYXNzOiAncHknCisgICAg
ICAgIE5hbWUuTGFiZWw6ICAgICAgICAgICAgICAgICIjZjU3OTAwIiwgICAgICAgICMgY2xhc3M6
ICdubCcKKyAgICAgICAgTmFtZS5OYW1lc3BhY2U6ICAgICAgICAgICAgIiMwMDAwMDAiLCAgICAg
ICAgIyBjbGFzczogJ25uJyAtIHRvIGJlIHJldmlzZWQKKyAgICAgICAgTmFtZS5PdGhlcjogICAg
ICAgICAgICAgICAgIiMwMDAwMDAiLCAgICAgICAgIyBjbGFzczogJ254JworICAgICAgICBOYW1l
LlRhZzogICAgICAgICAgICAgICAgICAiYm9sZCAjMDA0NDYxIiwgICAjIGNsYXNzOiAnbnQnIC0g
bGlrZSBhIGtleXdvcmQKKyAgICAgICAgTmFtZS5WYXJpYWJsZTogICAgICAgICAgICAgIiMwMDAw
MDAiLCAgICAgICAgIyBjbGFzczogJ252JyAtIHRvIGJlIHJldmlzZWQKKyAgICAgICAgTmFtZS5W
YXJpYWJsZS5DbGFzczogICAgICAgIiMwMDAwMDAiLCAgICAgICAgIyBjbGFzczogJ3ZjJyAtIHRv
IGJlIHJldmlzZWQKKyAgICAgICAgTmFtZS5WYXJpYWJsZS5HbG9iYWw6ICAgICAgIiMwMDAwMDAi
LCAgICAgICAgIyBjbGFzczogJ3ZnJyAtIHRvIGJlIHJldmlzZWQKKyAgICAgICAgTmFtZS5WYXJp
YWJsZS5JbnN0YW5jZTogICAgIiMwMDAwMDAiLCAgICAgICAgIyBjbGFzczogJ3ZpJyAtIHRvIGJl
IHJldmlzZWQKKworICAgICAgICBOdW1iZXI6ICAgICAgICAgICAgICAgICAgICAiIzk5MDAwMCIs
ICAgICAgICAjIGNsYXNzOiAnbScKKworICAgICAgICBMaXRlcmFsOiAgICAgICAgICAgICAgICAg
ICAiIzAwMDAwMCIsICAgICAgICAjIGNsYXNzOiAnbCcKKyAgICAgICAgTGl0ZXJhbC5EYXRlOiAg
ICAgICAgICAgICAgIiMwMDAwMDAiLCAgICAgICAgIyBjbGFzczogJ2xkJworCisgICAgICAgIFN0
cmluZzogICAgICAgICAgICAgICAgICAgICIjNGU5YTA2IiwgICAgICAgICMgY2xhc3M6ICdzJwor
ICAgICAgICBTdHJpbmcuQmFja3RpY2s6ICAgICAgICAgICAiIzRlOWEwNiIsICAgICAgICAjIGNs
YXNzOiAnc2InCisgICAgICAgIFN0cmluZy5DaGFyOiAgICAgICAgICAgICAgICIjNGU5YTA2Iiwg
ICAgICAgICMgY2xhc3M6ICdzYycKKyAgICAgICAgU3RyaW5nLkRvYzogICAgICAgICAgICAgICAg
Iml0YWxpYyAjOGY1OTAyIiwgIyBjbGFzczogJ3NkJyAtIGxpa2UgYSBjb21tZW50CisgICAgICAg
IFN0cmluZy5Eb3VibGU6ICAgICAgICAgICAgICIjNGU5YTA2IiwgICAgICAgICMgY2xhc3M6ICdz
MicKKyAgICAgICAgU3RyaW5nLkVzY2FwZTogICAgICAgICAgICAgIiM0ZTlhMDYiLCAgICAgICAg
IyBjbGFzczogJ3NlJworICAgICAgICBTdHJpbmcuSGVyZWRvYzogICAgICAgICAgICAiIzRlOWEw
NiIsICAgICAgICAjIGNsYXNzOiAnc2gnCisgICAgICAgIFN0cmluZy5JbnRlcnBvbDogICAgICAg
ICAgICIjNGU5YTA2IiwgICAgICAgICMgY2xhc3M6ICdzaScKKyAgICAgICAgU3RyaW5nLk90aGVy
OiAgICAgICAgICAgICAgIiM0ZTlhMDYiLCAgICAgICAgIyBjbGFzczogJ3N4JworICAgICAgICBT
dHJpbmcuUmVnZXg6ICAgICAgICAgICAgICAiIzRlOWEwNiIsICAgICAgICAjIGNsYXNzOiAnc3In
CisgICAgICAgIFN0cmluZy5TaW5nbGU6ICAgICAgICAgICAgICIjNGU5YTA2IiwgICAgICAgICMg
Y2xhc3M6ICdzMScKKyAgICAgICAgU3RyaW5nLlN5bWJvbDogICAgICAgICAgICAgIiM0ZTlhMDYi
LCAgICAgICAgIyBjbGFzczogJ3NzJworCisgICAgICAgIEdlbmVyaWM6ICAgICAgICAgICAgICAg
ICAgICIjMDAwMDAwIiwgICAgICAgICMgY2xhc3M6ICdnJworICAgICAgICBHZW5lcmljLkRlbGV0
ZWQ6ICAgICAgICAgICAiI2E0MDAwMCIsICAgICAgICAjIGNsYXNzOiAnZ2QnCisgICAgICAgIEdl
bmVyaWMuRW1waDogICAgICAgICAgICAgICJpdGFsaWMgIzAwMDAwMCIsICMgY2xhc3M6ICdnZScK
KyAgICAgICAgR2VuZXJpYy5FcnJvcjogICAgICAgICAgICAgIiNlZjI5MjkiLCAgICAgICAgIyBj
bGFzczogJ2dyJworICAgICAgICBHZW5lcmljLkhlYWRpbmc6ICAgICAgICAgICAiYm9sZCAjMDAw
MDgwIiwgICAjIGNsYXNzOiAnZ2gnCisgICAgICAgIEdlbmVyaWMuSW5zZXJ0ZWQ6ICAgICAgICAg
ICIjMDBBMDAwIiwgICAgICAgICMgY2xhc3M6ICdnaScKKyAgICAgICAgR2VuZXJpYy5PdXRwdXQ6
ICAgICAgICAgICAgIiM4ODgiLCAgICAgICAgICAgIyBjbGFzczogJ2dvJworICAgICAgICBHZW5l
cmljLlByb21wdDogICAgICAgICAgICAiIzc0NTMzNCIsICAgICAgICAjIGNsYXNzOiAnZ3AnCisg
ICAgICAgIEdlbmVyaWMuU3Ryb25nOiAgICAgICAgICAgICJib2xkICMwMDAwMDAiLCAgICMgY2xh
c3M6ICdncycKKyAgICAgICAgR2VuZXJpYy5TdWJoZWFkaW5nOiAgICAgICAgImJvbGQgIzgwMDA4
MCIsICAgIyBjbGFzczogJ2d1JworICAgICAgICBHZW5lcmljLlRyYWNlYmFjazogICAgICAgICAi
Ym9sZCAjYTQwMDAwIiwgICAjIGNsYXNzOiAnZ3QnCisgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL190aGVtZXMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
X3RoZW1lcy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMmQ3MDljMmU4ZGFiNDhjOGEyYzgx
OTQwZmI4M2EwNzJkMDZhNTBhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L190aGVtZXMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOSBAQAorVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20v
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL190aGVtZXMvTElDRU5TRQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVz
L1JFQURNRQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL2ZsYXNrX3RoZW1lX3N1cHBvcnQu
cHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hZG9wdC5yc3QgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vYWRvcHQucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxMGY0MzFiZTMwYmNkZjQ0ZjVmNTFhZTMz
M2ZlZmQzYzQ1YmE0MDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYWRv
cHQucnN0CkBAIC0wLDAgKzEsODIgQEAKKzpvcnBoYW46CisKKy4uIHdhcm5pbmdzIGFib3V0IHRo
aXMgZmlsZSBub3QgYmVpbmcgaW5jbHVkZWQgaW4gYW55IHRvY3RyZWUgd2lsbCBiZSBzdXBwcmVz
c2VkIGJ5IDpvcnBoYW46CisKKworQXByaWwgMjAxNSBpcyAiYWRvcHQgcHl0ZXN0IG1vbnRoIgor
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK0FyZSB5b3Ug
YW4gZW50aHVzaWFzdGljIHB5dGVzdCB1c2VyLCB0aGUgbG9jYWwgdGVzdGluZyBndXJ1IGluIHlv
dXIgd29ya3BsYWNlPyBPciBhcmUgeW91IGNvbnNpZGVyaW5nIHVzaW5nIHB5dGVzdCBmb3IgeW91
ciBvcGVuIHNvdXJjZSBwcm9qZWN0LCBidXQgbm90IHN1cmUgaG93IHRvIGdldCBzdGFydGVkPyBU
aGVuIHlvdSBtYXkgYmUgaW50ZXJlc3RlZCBpbiAiYWRvcHQgcHl0ZXN0IG1vbnRoIiEKKworV2Ug
d2lsbCBwYWlyIGV4cGVyaWVuY2VkIHB5dGVzdCB1c2VycyB3aXRoIG9wZW4gc291cmNlIHByb2pl
Y3RzLCBmb3IgYSBtb250aCdzIGVmZm9ydCBvZiBnZXR0aW5nIG5ldyBkZXZlbG9wbWVudCB0ZWFt
cyBzdGFydGVkIHdpdGggcHl0ZXN0LgorCitJbiAyMDE1IHdlIGFyZSB0cnlpbmcgdGhpcyBmb3Ig
dGhlIGZpcnN0IHRpbWUuIEluIEZlYnJ1YXJ5IGFuZCBNYXJjaCAyMDE1IHdlIHdpbGwgZ2F0aGVy
IHZvbHVudGVlcnMgb24gYm90aCBzaWRlcywgaW4gQXByaWwgd2Ugd2lsbCBkbyB0aGUgd29yaywg
YW5kIGluIE1heSB3ZSB3aWxsIGV2YWx1YXRlIGhvdyBpdCB3ZW50LiBUaGlzIGVmZm9ydCBpcyBi
ZWluZyBjb29yZGluYXRlZCBieSBCcmlhbm5hIExhdWdoZXIuIElmIHlvdSBoYXZlIGFueSBxdWVz
dGlvbnMgb3IgY29tbWVudHMsIHlvdSBjYW4gcmFpc2UgdGhlbSBvbiB0aGUgYEBweXRlc3Rkb3Rv
cmcgdHdpdHRlciBhY2NvdW50IDxodHRwczovL3R3aXR0ZXIuY29tL3B5dGVzdGRvdG9yZz5gXyB0
aGUgYGlzc3VlIHRyYWNrZXJgXyBvciB0aGUgYHB5dGVzdC1kZXYgbWFpbGluZyBsaXN0YF8uCisK
KworLi4gX2Bpc3N1ZSB0cmFja2VyYDogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0
ZXN0L2lzc3Vlcy82NzYKKy4uIF9gcHl0ZXN0LWRldiBtYWlsaW5nIGxpc3RgOiBodHRwczovL21h
aWwucHl0aG9uLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3B5dGVzdC1kZXYKKworCitUaGUgaWRlYWwg
cHl0ZXN0IGhlbHBlcgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworIC0gd2lsbCBiZSBhYmxlIHRvIGNvbW1pdCAyLTQgaG91cnMgYSB3ZWVrIHRvIHdvcmtpbmcg
d2l0aCB0aGVpciBwYXJ0aWN1bGFyIHByb2plY3QgKHRoaXMgbWlnaHQgaW52b2x2ZSBqb2luaW5n
IHRoZWlyIG1haWxpbmcgbGlzdCwgaW5zdGFsbGluZyB0aGUgc29mdHdhcmUgYW5kIGV4cGxvcmlu
ZyBhbnkgZXhpc3RpbmcgdGVzdHMsIG9mZmVyaW5nIGFkdmljZSwgd3JpdGluZyBzb21lIGV4YW1w
bGUgdGVzdHMpCisgLSBmZWVscyBjb25maWRlbnQgaW4gdXNpbmcgcHl0ZXN0IChlLmcuIGhhcyBl
eHBsb3JlZCBjb21tYW5kIGxpbmUgb3B0aW9ucywga25vd3MgaG93IHRvIHdyaXRlIHBhcmFtZXRy
aXplZCB0ZXN0cywgaGFzIGFuIGlkZWEgYWJvdXQgY29uZnRlc3QgY29udGVudHMpCisgLSBkb2Vz
IG5vdCBuZWVkIHRvIGJlIGFuIGV4cGVydCBpbiBldmVyeSBhc3BlY3QhCisKK2BQeXRlc3QgaGVs
cGVycywgc2lnbiB1cCBoZXJlYF8hIChwcmVmZXJhYmx5IGluIEZlYnJ1YXJ5LCBoYXJkIGRlYWRs
aW5lIDIyIE1hcmNoKQorCisKKy4uIF9gUHl0ZXN0IGhlbHBlcnMsIHNpZ24gdXAgaGVyZWA6IGh0
dHA6Ly9nb28uZ2wvZm9ybXMvbnhxQWhxV3QxUAorCisKK1RoZSBpZGVhbCBwYXJ0bmVyIHByb2pl
Y3QKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAtIGlzIG9w
ZW4gc291cmNlLCBhbmQgcHJlZG9taW5hbnRseSB3cml0dGVuIGluIFB5dGhvbgorIC0gaGFzIGFu
IGF1dG9tYXRlZC9kb2N1bWVudGVkIGluc3RhbGwgcHJvY2VzcyBmb3IgZGV2ZWxvcGVycworIC0g
aGFzIG1vcmUgdGhhbiBvbmUgY29yZSBkZXZlbG9wZXIKKyAtIGhhcyBhdCBsZWFzdCBvbmUgb2Zm
aWNpYWwgcmVsZWFzZSAoZS5nLiBpcyBhdmFpbGFibGUgb24gcHlwaSkKKyAtIGhhcyB0aGUgc3Vw
cG9ydCBvZiB0aGUgY29yZSBkZXZlbG9wbWVudCB0ZWFtLCBpbiB0cnlpbmcgb3V0IHB5dGVzdCBh
ZG9wdGlvbgorIC0gaGFzIG5vIHRlc3RzLi4uIG9yIDEwMCUgdGVzdCBjb3ZlcmFnZS4uLiBvciBz
b21ld2hlcmUgaW4gYmV0d2VlbiEKKworYFBhcnRuZXIgcHJvamVjdHMsIHNpZ24gdXAgaGVyZWBf
ISAoYnkgMjIgTWFyY2gpCisKKworLi4gX2BQYXJ0bmVyIHByb2plY3RzLCBzaWduIHVwIGhlcmVg
OiAgaHR0cDovL2dvby5nbC9mb3Jtcy9aR3lxbEhpd2szCisKKworV2hhdCBkb2VzIGl0IG1lYW4g
dG8gImFkb3B0IHB5dGVzdCI/CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCitUaGVyZSBjYW4gYmUgbWFueSBkaWZmZXJlbnQgZGVmaW5pdGlvbnMgb2YgInN1Y2Nl
c3MiLiBQeXRlc3QgY2FuIHJ1biBtYW55IGBub3NlIGFuZCB1bml0dGVzdGBfIHRlc3RzIGJ5IGRl
ZmF1bHQsIHNvIHVzaW5nIHB5dGVzdCBhcyB5b3VyIHRlc3RydW5uZXIgbWF5IGJlIHBvc3NpYmxl
IGZyb20gZGF5IDEuIEpvYiBkb25lLCByaWdodD8KKworUHJvZ3Jlc3NpdmUgc3VjY2VzcyBtaWdo
dCBsb29rIGxpa2U6CisKKyAtIHRlc3RzIGNhbiBiZSBydW4gKGJ5IHB5dGVzdCkgd2l0aG91dCBl
cnJvcnMgKHRoZXJlIG1heSBiZSBmYWlsdXJlcykKKyAtIHRlc3RzIGNhbiBiZSBydW4gKGJ5IHB5
dGVzdCkgd2l0aG91dCBmYWlsdXJlcworIC0gdGVzdCBydW5uZXIgaXMgaW50ZWdyYXRlZCBpbnRv
IENJIHNlcnZlcgorIC0gZXhpc3RpbmcgdGVzdHMgYXJlIHJld3JpdHRlbiB0byB0YWtlIGFkdmFu
dGFnZSBvZiBweXRlc3QgZmVhdHVyZXMgLSB0aGlzIGNhbiBoYXBwZW4gaW4gc2V2ZXJhbCBpdGVy
YXRpb25zLCBmb3IgZXhhbXBsZToKKyAgICAtIGNoYW5naW5nIHRvIG5hdGl2ZSBhc3NlcnRfIHN0
YXRlbWVudHMgKHB5Y21kXyBoYXMgYSBzY3JpcHQgdG8gaGVscCB3aXRoIHRoYXQsIGBgcHljb252
ZXJ0X3VuaXR0ZXN0LnB5YGApCisgICAgLSBjaGFuZ2luZyBgc2V0VXAvdGVhckRvd24gbWV0aG9k
c2BfIHRvIGZpeHR1cmVzXworICAgIC0gYWRkaW5nIG1hcmtlcnNfCisgICAgLSBvdGhlciBjaGFu
Z2VzIHRvIHJlZHVjZSBib2lsZXJwbGF0ZQorIC0gYXNzZXNzIG5lZWRzIGZvciBmdXR1cmUgdGVz
dHMgdG8gYmUgd3JpdHRlbiwgZS5nLiBuZXcgZml4dHVyZXMsIGRpc3RyaWJ1dGVkXyB0ZXN0aW5n
IHR3ZWFrcworCisiU3VjY2VzcyIgc2hvdWxkIGFsc28gaW5jbHVkZSB0aGF0IHRoZSBkZXZlbG9w
bWVudCB0ZWFtIGZlZWxzIGNvbWZvcnRhYmxlIHdpdGggdGhlaXIga25vd2xlZGdlIG9mIGhvdyB0
byB1c2UgcHl0ZXN0LiBJbiBmYWN0IHRoaXMgaXMgcHJvYmFibHkgbW9yZSBpbXBvcnRhbnQgdGhh
biBhbnl0aGluZyBlbHNlLiBTbyBzcGVuZGluZyBhIGxvdCBvZiB0aW1lIG9uIGNvbW11bmljYXRp
b24sIGdpdmluZyBleGFtcGxlcywgZXRjIHdpbGwgcHJvYmFibHkgYmUgaW1wb3J0YW50IC0gYm90
aCBpbiBydW5uaW5nIHRoZSB0ZXN0cywgYW5kIGluIHdyaXRpbmcgdGhlbS4KKworSXQgbWF5IGJl
IGFmdGVyIHRoZSBtb250aCBpcyB1cCwgdGhlIHBhcnRuZXIgcHJvamVjdCBkZWNpZGVzIHRoYXQg
cHl0ZXN0IGlzIG5vdCByaWdodCBmb3IgaXQuIFRoYXQncyBva2F5IC0gaG9wZWZ1bGx5IHRoZSBw
eXRlc3QgdGVhbSB3aWxsIGFsc28gbGVhcm4gc29tZXRoaW5nIGFib3V0IGl0cyB3ZWFrbmVzc2Vz
IG9yIGRlZmljaWVuY2llcy4KKworLi4gX2Bub3NlIGFuZCB1bml0dGVzdGA6IGZhcS5odG1sI2hv
dy1kb2VzLXB5dGVzdC1yZWxhdGUtdG8tbm9zZS1hbmQtdW5pdHRlc3QKKy4uIF9hc3NlcnQ6IGFz
c2VydHMuaHRtbAorLi4gX3B5Y21kOiBodHRwczovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHljbWQv
b3ZlcnZpZXcKKy4uIF9gc2V0VXAvdGVhckRvd24gbWV0aG9kc2A6IHh1bml0X3NldHVwLmh0bWwK
Ky4uIF9maXh0dXJlczogZml4dHVyZS5odG1sCisuLiBfbWFya2VyczogbWFya2Vycy5odG1sCisu
LiBfZGlzdHJpYnV0ZWQ6IHhkaXN0Lmh0bWwKKworCitPdGhlciB3YXlzIHRvIGhlbHAKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1Byb21vdGUhIERvIHlvdXIg
ZmF2b3VyaXRlIG9wZW4gc291cmNlIFB5dGhvbiBwcm9qZWN0cyB1c2UgcHl0ZXN0PyBJZiBub3Qs
IHdoeSBub3QgdGVsbCB0aGVtIGFib3V0IHRoaXMgcGFnZT8KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9hbm5vdW5jZS9pbmRleC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3Vu
Y2UvaW5kZXgucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhNWYzNzYwYjY4ZTA1NDJlZTk5ZTcwNzJiMGQ4YmU4
YTEyOTFhMzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2Uv
aW5kZXgucnN0CkBAIC0wLDAgKzEsNjggQEAKKworUmVsZWFzZSBhbm5vdW5jZW1lbnRzCis9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIHRvY3RyZWU6Ogor
ICAgOm1heGRlcHRoOiAyCisKKyAgIAorICAgcmVsZWFzZS0zLjMuMAorICAgcmVsZWFzZS0zLjIu
NQorICAgcmVsZWFzZS0zLjIuNAorICAgcmVsZWFzZS0zLjIuMworICAgcmVsZWFzZS0zLjIuMgor
ICAgcmVsZWFzZS0zLjIuMQorICAgcmVsZWFzZS0zLjIuMAorICAgcmVsZWFzZS0zLjEuMworICAg
cmVsZWFzZS0zLjEuMgorICAgcmVsZWFzZS0zLjEuMQorICAgcmVsZWFzZS0zLjEuMAorICAgcmVs
ZWFzZS0zLjAuNworICAgcmVsZWFzZS0zLjAuNgorICAgcmVsZWFzZS0zLjAuNQorICAgcmVsZWFz
ZS0zLjAuNAorICAgcmVsZWFzZS0zLjAuMworICAgcmVsZWFzZS0zLjAuMgorICAgcmVsZWFzZS0z
LjAuMQorICAgcmVsZWFzZS0zLjAuMAorICAgc3ByaW50MjAxNgorICAgcmVsZWFzZS0yLjkuMgor
ICAgcmVsZWFzZS0yLjkuMQorICAgcmVsZWFzZS0yLjkuMAorICAgcmVsZWFzZS0yLjguNworICAg
cmVsZWFzZS0yLjguNgorICAgcmVsZWFzZS0yLjguNQorICAgcmVsZWFzZS0yLjguNAorICAgcmVs
ZWFzZS0yLjguMworICAgcmVsZWFzZS0yLjguMgorICAgcmVsZWFzZS0yLjcuMgorICAgcmVsZWFz
ZS0yLjcuMQorICAgcmVsZWFzZS0yLjcuMAorICAgcmVsZWFzZS0yLjYuMworICAgcmVsZWFzZS0y
LjYuMgorICAgcmVsZWFzZS0yLjYuMQorICAgcmVsZWFzZS0yLjYuMAorICAgcmVsZWFzZS0yLjUu
MgorICAgcmVsZWFzZS0yLjUuMQorICAgcmVsZWFzZS0yLjUuMAorICAgcmVsZWFzZS0yLjQuMgor
ICAgcmVsZWFzZS0yLjQuMQorICAgcmVsZWFzZS0yLjQuMAorICAgcmVsZWFzZS0yLjMuNQorICAg
cmVsZWFzZS0yLjMuNAorICAgcmVsZWFzZS0yLjMuMworICAgcmVsZWFzZS0yLjMuMgorICAgcmVs
ZWFzZS0yLjMuMQorICAgcmVsZWFzZS0yLjMuMAorICAgcmVsZWFzZS0yLjIuNAorICAgcmVsZWFz
ZS0yLjIuMgorICAgcmVsZWFzZS0yLjIuMQorICAgcmVsZWFzZS0yLjIuMAorICAgcmVsZWFzZS0y
LjEuMworICAgcmVsZWFzZS0yLjEuMgorICAgcmVsZWFzZS0yLjEuMQorICAgcmVsZWFzZS0yLjEu
MAorICAgcmVsZWFzZS0yLjAuMworICAgcmVsZWFzZS0yLjAuMgorICAgcmVsZWFzZS0yLjAuMQor
ICAgcmVsZWFzZS0yLjAuMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3JlbGVhc2UtMi4wLjAucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
Mi4wLjAucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmNzQ1ZmM1OWIyODkxNTA4NTkwNGJkZjI3NWMwMjgyMTQ4
NWVkMDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVs
ZWFzZS0yLjAuMC5yc3QKQEAgLTAsMCArMSwxMjkgQEAKK3B5LnRlc3QgMi4wLjA6IGFzc2VydHMr
KywgdW5pdHRlc3QrKywgcmVwb3J0aW5nKyssIGNvbmZpZysrLCBkb2NzKysKKz09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorCitXZWxjb21lIHRvIHB5dGVzdC0yLjAuMCwgYSBtYWpvciBuZXcgcmVsZWFzZSBv
ZiAicHkudGVzdCIsIHRoZSByYXBpZAorZWFzeSBQeXRob24gdGVzdGluZyB0b29sLiAgVGhlcmUg
YXJlIG1hbnkgbmV3IGZlYXR1cmVzIGFuZCBlbmhhbmNlbWVudHMsCitzZWUgYmVsb3cgZm9yIHN1
bW1hcnkgYW5kIGRldGFpbGVkIGxpc3RzLiAgQSBsb3Qgb2YgbG9uZy1kZXByZWNhdGVkIGNvZGUK
K2hhcyBiZWVuIHJlbW92ZWQsIHJlc3VsdGluZyBpbiBhIG11Y2ggc21hbGxlciBhbmQgY2xlYW5l
cgoraW1wbGVtZW50YXRpb24uICBTZWUgdGhlIG5ldyBkb2NzIHdpdGggZXhhbXBsZXMgaGVyZToK
KworICAgIGh0dHA6Ly9weXRlc3Qub3JnLzIuMC4wL2luZGV4Lmh0bWwKKworQSBub3RlIG9uIHBh
Y2thZ2luZzogcHl0ZXN0IHVzZWQgdG8gcGFydCBvZiB0aGUgInB5IiBkaXN0cmlidXRpb24gdXAK
K3VudGlsIHZlcnNpb24gcHktMS4zLjQgYnV0IHRoaXMgaGFzIGNoYW5nZWQgbm93OiAgcHl0ZXN0
LTIuMC4wIG9ubHkKK2NvbnRhaW5zIHB5LnRlc3QgcmVsYXRlZCBjb2RlIGFuZCBpcyBleHBlY3Rl
ZCB0byBiZSBiYWNrd2FyZC1jb21wYXRpYmxlCit0byBleGlzdGluZyB0ZXN0IGNvZGUuIElmIHlv
dSB3YW50IHRvIGluc3RhbGwgcHl0ZXN0LCBqdXN0IHR5cGUgb25lIG9mOjoKKworICAgIHBpcCBp
bnN0YWxsIC1VIHB5dGVzdAorICAgIGVhc3lfaW5zdGFsbCAtVSBweXRlc3QKKworTWFueSB0aGFu
a3MgdG8gYWxsIGlzc3VlIHJlcG9ydGVycyBhbmQgcGVvcGxlIGFza2luZyBxdWVzdGlvbnMgb3IK
K2NvbXBsYWluaW5nLiAgUGFydGljdWxhciB0aGFua3MgdG8gRmxvcmlzIEJydXlub29naGUgYW5k
IFJvbm55IFBmYW5uc2NobWlkdAorZm9yIHRoZWlyIGdyZWF0IGNvZGluZyBjb250cmlidXRpb25z
IGFuZCBtYW55IG90aGVycyBmb3IgZmVlZGJhY2sgYW5kIGhlbHAuCisKK2Jlc3QsCitob2xnZXIg
a3Jla2VsCisKKworTmV3IEZlYXR1cmVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIG5l
dyBpbnZvY2F0aW9ucyB0aHJvdWdoIFB5dGhvbiBpbnRlcnByZXRlciBhbmQgZnJvbSBQeXRob246
OgorCisgICAgcHl0aG9uIC1tIHB5dGVzdCAgICAgICMgb24gYWxsIHB5dGhvbnMgPj0gMi41CisK
KyAgb3IgZnJvbSBhIHB5dGhvbiBwcm9ncmFtOjoKKworICAgIGltcG9ydCBweXRlc3QgOyBweXRl
c3QubWFpbihhcmdsaXN0LCBwbHVnaW5saXN0KQorCisgIHNlZSBodHRwOi8vcHl0ZXN0Lm9yZy8y
LjAuMC91c2FnZS5odG1sIGZvciBkZXRhaWxzLgorCistIG5ldyBhbmQgYmV0dGVyIHJlcG9ydGlu
ZyBpbmZvcm1hdGlvbiBpbiBhc3NlcnQgZXhwcmVzc2lvbnMKKyAgaWYgY29tcGFyaW5nIGxpc3Rz
LCBzZXF1ZW5jZXMgb3Igc3RyaW5ncy4KKworICBzZWUgaHR0cDovL3B5dGVzdC5vcmcvMi4wLjAv
YXNzZXJ0Lmh0bWwjbmV3cmVwb3J0CisKKy0gbmV3IGNvbmZpZ3VyYXRpb24gdGhyb3VnaCBpbmkt
ZmlsZXMgKHNldHVwLmNmZyBvciB0b3guaW5pIHJlY29nbml6ZWQpLAorICBmb3IgZXhhbXBsZTo6
CisKKyAgICBbcHl0ZXN0XQorICAgIG5vcmVjdXJzZWRpcnMgPSAuaGcgZGF0YSogICMgZG9uJ3Qg
ZXZlciByZWN1cnNlIGluIHN1Y2ggZGlycworICAgIGFkZG9wdHMgPSAteCAtLXB5YXJncyAgICAg
ICMgYWRkIHRoZXNlIGNvbW1hbmQgbGluZSBvcHRpb25zIGJ5IGRlZmF1bHQKKworICBzZWUgaHR0
cDovL3B5dGVzdC5vcmcvMi4wLjAvY3VzdG9taXplLmh0bWwKKworLSBpbXByb3ZlZCBzdGFuZGFy
ZCB1bml0dGVzdCBzdXBwb3J0LiAgSW4gZ2VuZXJhbCBweS50ZXN0IHNob3VsZCBub3cKKyAgYmV0
dGVyIGJlIGFibGUgdG8gcnVuIGN1c3RvbSB1bml0dGVzdC5UZXN0Q2FzZXMgbGlrZSB0d2lzdGVk
IHRyaWFsCisgIG9yIERqYW5nbyBiYXNlZCBUZXN0Q2FzZXMuICBBbHNvIHlvdSBjYW4gbm93IHJ1
biB0aGUgdGVzdHMgb2YgYW4KKyAgaW5zdGFsbGVkICd1bml0dGVzdCcgcGFja2FnZSB3aXRoIHB5
LnRlc3Q6OgorCisgICAgcHkudGVzdCAtLXB5YXJncyB1bml0dGVzdAorCistIG5ldyAiLXEiIG9w
dGlvbiB3aGljaCBkZWNyZWFzZXMgdmVyYm9zaXR5IGFuZCBwcmludHMgYSBtb3JlCisgIG5vc2Uv
dW5pdHRlc3Qtc3R5bGUgImRvdCIgb3V0cHV0LgorCistIG1hbnkgbWFueSBtb3JlIGRldGFpbGVk
IGltcHJvdmVtZW50cyBkZXRhaWxzCisKK0ZpeGVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CistIGZpeCBpc3N1ZTEyNiAtIGludHJvZHVjZSBweS50ZXN0LnNldF90cmFjZSgpIHRvIHRyYWNl
IGV4ZWN1dGlvbiB2aWEKKyAgUERCIGR1cmluZyB0aGUgcnVubmluZyBvZiB0ZXN0cyBldmVuIGlm
IGNhcHR1cmluZyBpcyBvbmdvaW5nLgorLSBmaXggaXNzdWUxMjQgLSBtYWtlIHJlcG9ydGluZyBt
b3JlIHJlc2lsaWVudCBhZ2FpbnN0IHRlc3RzIG9wZW5pbmcKKyAgZmlsZXMgb24gZmlsZWRlc2Ny
aXB0b3IgMSAoc3Rkb3V0KS4KKy0gZml4IGlzc3VlMTA5IC0gc2libGluZyBjb25mdGVzdC5weSBm
aWxlcyB3aWxsIG5vdCBiZSBsb2FkZWQuCisgIChhbmQgRGlyZWN0b3J5IGNvbGxlY3RvcnMgY2Fu
bm90IGJlIGN1c3RvbWl6ZWQgYW55bW9yZSBmcm9tIGEgRGlyZWN0b3J5J3MKKyAgY29uZnRlc3Qu
cHkgLSB0aGlzIG5lZWRzIHRvIGhhcHBlbiBhdCBsZWFzdCBvbmUgbGV2ZWwgdXApLgorLSBmaXgg
aXNzdWU4OCAoZmluZGluZyBjdXN0b20gdGVzdCBub2RlcyBmcm9tIGNvbW1hbmQgbGluZSBhcmcp
CistIGZpeCBpc3N1ZTkzIHN0ZG91dC9zdGRlcnIgaXMgY2FwdHVyZWQgd2hpbGUgaW1wb3J0aW5n
IGNvbmZ0ZXN0LnB5CistIGZpeCBidWc6IHVuaXR0ZXN0IGNvbGxlY3RlZCBmdW5jdGlvbnMgbm93
IGFsc28gY2FuIGhhdmUgInB5dGVzdG1hcmsiCisgIGFwcGxpZWQgYXQgY2xhc3MvbW9kdWxlIGxl
dmVsCisKK0ltcG9ydGFudCBOb3RlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworKiBUaGUgdXN1
YWwgd2F5IGluIHByZS0yLjAgdGltZXMgdG8gdXNlIHB5LnRlc3QgaW4gcHl0aG9uIGNvZGUgd2Fz
CisgIHRvIGltcG9ydCAicHkiIGFuZCB0aGVuIGUuZy4gdXNlICJweS50ZXN0LnJhaXNlcyIgZm9y
IHRoZSBoZWxwZXIuCisgIFRoaXMgcmVtYWlucyB2YWxpZCBhbmQgaXMgbm90IHBsYW5uZWQgdG8g
YmUgZGVwcmVjYXRlZC4gIEhvd2V2ZXIsCisgIGluIG1vc3QgZXhhbXBsZXMgYW5kIGludGVybmFs
IGNvZGUgeW91J2xsIGZpbmQgImltcG9ydCBweXRlc3QiCisgIGFuZCAicHl0ZXN0LnJhaXNlcyIg
dXNlZCBhcyB0aGUgcmVjb21tZW5kZWQgZGVmYXVsdCB3YXkuCisKKyogcHl0ZXN0IG5vdyBmaXJz
dCBwZXJmb3JtcyBjb2xsZWN0aW9uIG9mIHRoZSBjb21wbGV0ZSB0ZXN0IHN1aXRlCisgIGJlZm9y
ZSBydW5uaW5nIGFueSB0ZXN0LiBUaGlzIGNoYW5nZXMgZm9yIGV4YW1wbGUgdGhlIHNlbWFudGlj
cyBvZiB3aGVuCisgIHB5dGVzdF9jb2xsZWN0c3RhcnQvcHl0ZXN0X2NvbGxlY3RyZXBvcnQgYXJl
IGNhbGxlZC4gIFNvbWUgcGx1Z2lucyBtYXkKKyAgbmVlZCB1cGdyYWRpbmcuCisKKyogVGhlIHB5
dGVzdCBwYWNrYWdlIGNvbnNpc3RzIG9mIGEgNDAwIExPQyBjb3JlLnB5IGFuZCBhYm91dCAyMCBi
dWlsdGluIHBsdWdpbnMsCisgIHN1bW1pbmcgdXAgdG8gcm91Z2hseSA1MDAwIExPQ3MsIGluY2x1
ZGluZyBkb2NzdHJpbmdzLiBUbyBiZSBmYWlyLCBpdCBhbHNvCisgIHVzZXMgZ2VuZXJpYyBjb2Rl
IGZyb20gdGhlICJweWxpYiIsIGFuZCB0aGUgbmV3ICJweSIgcGFja2FnZSB0byBoZWxwCisgIHdp
dGggZmlsZXN5c3RlbSBhbmQgaW50cm9zcGVjdGlvbi9jb2RlIG1hbmlwdWxhdGlvbi4KKworKElu
Y29tcGF0aWJsZSkgUmVtb3ZhbHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0g
cHkudGVzdC5jb25maWcgaXMgbm93IG9ubHkgYXZhaWxhYmxlIGlmIHlvdSBhcmUgaW4gYSB0ZXN0
IHJ1bi4KKworLSB0aGUgZm9sbG93aW5nIChtb3N0bHkgYWxyZWFkeSBkZXByZWNhdGVkKSBmdW5j
dGlvbmFsaXR5IHdhcyByZW1vdmVkOgorCisgIC0gcmVtb3ZlZCBzdXBwb3J0IGZvciBNb2R1bGUv
Q2xhc3MvLi4uIGNvbGxlY3Rpb24gbm9kZSBkZWZpbml0aW9ucworICAgIGluIGNvbmZ0ZXN0LnB5
IGZpbGVzLiAgVGhleSB3aWxsIGNhdXNlIG5vdGhpbmcgc3BlY2lhbC4KKyAgLSByZW1vdmVkIHN1
cHBvcnQgZm9yIGNhbGxpbmcgdGhlIHByZS0xLjAgY29sbGVjdGlvbiBBUEkgb2YgInJ1bigpIiBh
bmQgImpvaW4iCisgIC0gcmVtb3ZlZCByZWFkaW5nIG9wdGlvbiB2YWx1ZXMgZnJvbSBjb25mdGVz
dC5weSBmaWxlcyBvciBlbnYgdmFyaWFibGVzLgorICAgIFRoaXMgY2FuIG5vdyBiZSBkb25lIG11
Y2ggbXVjaCBiZXR0ZXIgYW5kIGVhc2llciB0aHJvdWdoIHRoZSBpbmktZmlsZQorICAgIG1lY2hh
bmlzbSBhbmQgdGhlICJhZGRvcHRzIiBlbnRyeSBpbiBwYXJ0aWN1bGFyLgorICAtIHJlbW92ZWQg
dGhlICJkaXNhYmxlZCIgYXR0cmlidXRlIGluIHRlc3QgY2xhc3Nlcy4gIFVzZSB0aGUgc2tpcHBp
bmcKKyAgICBhbmQgcHl0ZXN0bWFyayBtZWNoYW5pc20gdG8gc2tpcCBvciB4ZmFpbCBhIHRlc3Qg
Y2xhc3MuCisKKy0gcHkudGVzdC5jb2xsZWN0LkRpcmVjdG9yeSBkb2VzIG5vdCBleGlzdCBhbnlt
b3JlIGFuZCBpdAorICBpcyBub3QgcG9zc2libGUgdG8gcHJvdmlkZSBhbiBvd24gIkRpcmVjdG9y
eSIgb2JqZWN0LgorICBJZiB5b3UgaGF2ZSB1c2VkIHRoaXMgYW5kIGRvbid0IGtub3cgd2hhdCB0
byBkbywgZ2V0CisgIGluIGNvbnRhY3QuICBXZSdsbCBmaWd1cmUgc29tZXRoaW5nIG91dC4KKwor
ICBOb3RlIHRoYXQgcHl0ZXN0X2NvbGxlY3RfZGlyZWN0b3J5KCkgaXMgc3RpbGwgY2FsbGVkIGJ1
dAorICBhbnkgcmV0dXJuIHZhbHVlIHdpbGwgYmUgaWdub3JlZC4gIFRoaXMgYWxsb3dzIHRvIGtl
ZXAKKyAgb2xkIGNvZGUgd29ya2luZyB0aGF0IHBlcmZvcm1lZCBmb3IgZXhhbXBsZSAicHkudGVz
dC5za2lwKCkiCisgIGluIGNvbGxlY3QoKSB0byBwcmV2ZW50IHJlY3Vyc2lvbiBpbnRvIGRpcmVj
dG9yeSB0cmVlcworICBpZiBhIGNlcnRhaW4gZGVwZW5kZW5jeSBvciBjb21tYW5kIGxpbmUgb3B0
aW9uIGlzIG1pc3NpbmcuCisKKworc2VlIDpyZWY6YGNoYW5nZWxvZ2AgZm9yIG1vcmUgZGV0YWls
ZWQgY2hhbmdlcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxl
YXNlLTIuMC4xLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMC4x
LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yZjQxZWY5NDM1ZWQ4ZGU0MGE1YmY4ZTA3NmFlZTY1YzU3M2RmNzA3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
Mi4wLjEucnN0CkBAIC0wLDAgKzEsNjcgQEAKK3B5LnRlc3QgMi4wLjE6IGJ1ZyBmaXhlcworPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CisKK1dlbGNvbWUgdG8gcHl0ZXN0LTIuMC4xLCBhIG1haW50ZW5hbmNl
IGFuZCBidWcgZml4IHJlbGVhc2Ugb2YgcHl0ZXN0LAorYSBtYXR1cmUgdGVzdGluZyB0b29sIGZv
ciBQeXRob24sIHN1cHBvcnRpbmcgQ1B5dGhvbiAyLjQtMy4yLCBKeXRob24KK2FuZCBsYXRlc3Qg
UHlQeSBpbnRlcnByZXRlcnMuICBTZWUgZXh0ZW5zaXZlIGRvY3Mgd2l0aCB0ZXN0ZWQgZXhhbXBs
ZXMgaGVyZToKKworICAgIGh0dHA6Ly9weXRlc3Qub3JnLworCitJZiB5b3Ugd2FudCB0byBpbnN0
YWxsIG9yIHVwZ3JhZGUgcHl0ZXN0LCBqdXN0IHR5cGUgb25lIG9mOjoKKworICAgIHBpcCBpbnN0
YWxsIC1VIHB5dGVzdCAjIG9yCisgICAgZWFzeV9pbnN0YWxsIC1VIHB5dGVzdAorCitNYW55IHRo
YW5rcyB0byBhbGwgaXNzdWUgcmVwb3J0ZXJzIGFuZCBwZW9wbGUgYXNraW5nIHF1ZXN0aW9ucyBv
cgorY29tcGxhaW5pbmcuICBQYXJ0aWN1bGFyIHRoYW5rcyB0byBGbG9yaXMgQnJ1eW5vb2doZSBh
bmQgUm9ubnkgUGZhbm5zY2htaWR0Citmb3IgdGhlaXIgZ3JlYXQgY29kaW5nIGNvbnRyaWJ1dGlv
bnMgYW5kIG1hbnkgb3RoZXJzIGZvciBmZWVkYmFjayBhbmQgaGVscC4KKworYmVzdCwKK2hvbGdl
ciBrcmVrZWwKKworQ2hhbmdlcyBiZXR3ZWVuIDIuMC4wIGFuZCAyLjAuMQorLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIHJlZmluZSBhbmQgdW5pZnkg
aW5pdGlhbCBjYXB0dXJpbmcgc28gdGhhdCBpdCB3b3JrcyBuaWNlbHkKKyAgZXZlbiBpZiB0aGUg
bG9nZ2luZyBtb2R1bGUgaXMgdXNlZCBvbiBhbiBlYXJseS1sb2FkZWQgY29uZnRlc3QucHkKKyAg
ZmlsZSBvciBwbHVnaW4uCistIGZpeCBpc3N1ZTEyIC0gc2hvdyBwbHVnaW4gdmVyc2lvbnMgd2l0
aCAiLS12ZXJzaW9uIiBhbmQKKyAgIi0tdHJhY2Vjb25maWciIGFuZCBhbHNvIGRvY3VtZW50IGhv
dyB0byBhZGQgZXh0cmEgaW5mb3JtYXRpb24KKyAgdG8gcmVwb3J0aW5nIHRlc3QgaGVhZGVyCist
IGZpeCBpc3N1ZTE3IChpbXBvcnQtKiByZXBvcnRpbmcgaXNzdWUgb24gcHl0aG9uMykgYnkKKyAg
cmVxdWlyaW5nIHB5PjEuNC4wICgxLjQuMSBpcyBnb2luZyB0byBpbmNsdWRlIGl0KQorLSBmaXgg
aXNzdWUxMCAobnVtcHkgYXJyYXlzIHRydXRoIGNoZWNraW5nKSBieSByZWZpbmluZworICBhc3Nl
cnRpb24gaW50ZXJwcmV0YXRpb24gaW4gcHkgbGliCistIGZpeCBpc3N1ZTE1OiBtYWtlIG5vc2Ug
Y29tcGF0aWJpbGl0eSB0ZXN0cyBjb21wYXRpYmxlCisgIHdpdGggcHl0aG9uMyAobm93IHRoYXQg
bm9zZS0xLjAgc3VwcG9ydHMgcHl0aG9uMykKKy0gcmVtb3ZlIHNvbWV3aGF0IHN1cnByaXNpbmcg
InNhbWUtY29uZnRlc3QiIGRldGVjdGlvbiBiZWNhdXNlCisgIGl0IGlnbm9yZXMgY29uZnRlc3Qu
cHkgd2hlbiB0aGV5IGFwcGVhciBpbiBzZXZlcmFsIHN1YmRpcnMuCistIGltcHJvdmUgYXNzZXJ0
aW9ucyAoIm5vdCBpbiIpLCB0aGFua3MgRmxvcmlzIEJydXlub29naGUKKy0gaW1wcm92ZSBiZWhh
dmlvdXIvd2FybmluZ3Mgd2hlbiBydW5uaW5nIG9uIHRvcCBvZiAicHl0aG9uIC1PTyIKKyAgKGFz
c2VydGlvbnMgYW5kIGRvY3N0cmluZ3MgYXJlIHR1cm5lZCBvZmYsIGxlYWRpbmcgdG8gcG90ZW50
aWFsCisgIGZhbHNlIHBvc2l0aXZlcykKKy0gaW50cm9kdWNlIGEgcHl0ZXN0X2NtZGxpbmVfcHJv
Y2Vzc2FyZ3MoYXJncykgaG9vaworICB0byBhbGxvdyBkeW5hbWljIGNvbXB1dGF0aW9uIG9mIGNv
bW1hbmQgbGluZSBhcmd1bWVudHMuCisgIFRoaXMgZml4ZXMgYSByZWdyZXNzaW9uIGJlY2F1c2Ug
cHkudGVzdCBwcmlvciB0byAyLjAKKyAgYWxsb3dlZCB0byBzZXQgY29tbWFuZCBsaW5lIG9wdGlv
bnMgZnJvbSBjb25mdGVzdC5weQorICBmaWxlcyB3aGljaCBzbyBmYXIgcHl0ZXN0LTIuMCBvbmx5
IGFsbG93ZWQgZnJvbSBpbmktZmlsZXMgbm93LgorLSBmaXggaXNzdWU3OiBhc3NlcnQgZmFpbHVy
ZXMgaW4gZG9jdGVzdCBtb2R1bGVzLgorICB1bmV4cGVjdGVkIGZhaWx1cmVzIGluIGRvY3Rlc3Rz
IHdpbGwgbm90IGdlbmVyYWxseQorICBzaG93IG5pY2VyLCBpLmUuIHdpdGhpbiB0aGUgZG9jdGVz
dCBmYWlsaW5nIGNvbnRleHQuCistIGZpeCBpc3N1ZTk6IHNldHVwL3RlYXJkb3duIGZ1bmN0aW9u
cyBmb3IgYW4geGZhaWwtbWFya2VkCisgIHRlc3Qgd2lsbCByZXBvcnQgYXMgeGZhaWwgaWYgdGhl
eSBmYWlsIGJ1dCByZXBvcnQgYXMgbm9ybWFsbHkKKyAgcGFzc2luZyAobm90IHhwYXNzaW5nKSBp
ZiB0aGV5IHN1Y2NlZWQuICBUaGlzIG9ubHkgaXMgdHJ1ZQorICBmb3IgImRpcmVjdCIgc2V0dXAv
dGVhcmRvd24gaW52b2NhdGlvbnMgYmVjYXVzZSB0ZWFyZG93bl9jbGFzcy8KKyAgdGVhcmRvd25f
bW9kdWxlIGNhbm5vdCBjbG9zZWx5IHJlbGF0ZSB0byBhIHNpbmdsZSB0ZXN0LgorLSBmaXggaXNz
dWUxNDogbm8gbG9nZ2luZyBlcnJvcnMgYXQgcHJvY2VzcyBleGl0CistIHJlZmluZW1lbnRzIHRv
ICJjb2xsZWN0aW5nIiBvdXRwdXQgb24gbm9uLXR0eXMKKy0gcmVmaW5lIGludGVybmFsIHBsdWdp
biByZWdpc3RyYXRpb24gYW5kIC0tdHJhY2Vjb25maWcgb3V0cHV0CistIGludHJvZHVjZSBhIG1l
Y2hhbmlzbSB0byBwcmV2ZW50L3VucmVnaXN0ZXIgcGx1Z2lucyBmcm9tIHRoZQorICBjb21tYW5k
IGxpbmUsIHNlZSBodHRwOi8vcHl0ZXN0Lm9yZy9sYXRlc3QvcGx1Z2lucy5odG1sI2NtZHVucmVn
aXN0ZXIKKy0gYWN0aXZhdGUgcmVzdWx0bG9nIHBsdWdpbiBieSBkZWZhdWx0CistIGZpeCByZWdy
ZXNzaW9uIHdydCB5aWVsZGVkIHRlc3RzIHdoaWNoIGR1ZSB0byB0aGUKKyAgY29sbGVjdGlvbi1i
ZWZvcmUtcnVubmluZyBzZW1hbnRpY3Mgd2VyZSBub3QKKyAgc2V0dXAgYXMgd2l0aCBweXRlc3Qg
MS4zLjQuICBOb3RlLCBob3dldmVyLCB0aGF0CisgIHRoZSByZWNvbW1lbmRlZCBhbmQgbXVjaCBj
bGVhbmVyIHdheSB0byBkbyB0ZXN0CisgIHBhcmFtZXRyaXphdGlvbiByZW1haW5zIHRoZSAicHl0
ZXN0X2dlbmVyYXRlX3Rlc3RzIgorICBtZWNoYW5pc20sIHNlZSB0aGUgZG9jcy4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMC4yLnJzdCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMC4yLnJzdApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMWY0
NGYzNGY0ZjdkZjIxMzE2MjBlMjQzZDAyZmEwY2RlYWNkNWQwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4wLjIucnN0CkBAIC0wLDAgKzEs
NzMgQEAKK3B5LnRlc3QgMi4wLjI6IGJ1ZyBmaXhlcywgaW1wcm92ZWQgeGZhaWwvc2tpcCBleHBy
ZXNzaW9ucywgc3BlZWQgdXBzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworV2VsY29tZSB0byBweXRl
c3QtMi4wLjIsIGEgbWFpbnRlbmFuY2UgYW5kIGJ1ZyBmaXggcmVsZWFzZSBvZiBweXRlc3QsCith
IG1hdHVyZSB0ZXN0aW5nIHRvb2wgZm9yIFB5dGhvbiwgc3VwcG9ydGluZyBDUHl0aG9uIDIuNC0z
LjIsIEp5dGhvbgorYW5kIGxhdGVzdCBQeVB5IGludGVycHJldGVycy4gIFNlZSB0aGUgZXh0ZW5z
aXZlIGRvY3Mgd2l0aCB0ZXN0ZWQgZXhhbXBsZXMgaGVyZToKKworICAgIGh0dHA6Ly9weXRlc3Qu
b3JnLworCitJZiB5b3Ugd2FudCB0byBpbnN0YWxsIG9yIHVwZ3JhZGUgcHl0ZXN0LCBqdXN0IHR5
cGUgb25lIG9mOjoKKworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdCAjIG9yCisgICAgZWFzeV9p
bnN0YWxsIC1VIHB5dGVzdAorCitNYW55IHRoYW5rcyB0byBhbGwgaXNzdWUgcmVwb3J0ZXJzIGFu
ZCBwZW9wbGUgYXNraW5nIHF1ZXN0aW9ucworb3IgY29tcGxhaW5pbmcsIHBhcnRpY3VsYXJseSBK
dXJrbyBmb3IgaGlzIGluc2lzdGVuY2UsCitMYXVyYSwgVmljdG9yIGFuZCBCcmlhbm5hIGZvciBo
ZWxwaW5nIHdpdGggaW1wcm92aW5nCithbmQgUm9ubnkgZm9yIGhpcyBnZW5lcmFsIGFkdmlzZS4K
KworYmVzdCwKK2hvbGdlciBrcmVrZWwKKworQ2hhbmdlcyBiZXR3ZWVuIDIuMC4xIGFuZCAyLjAu
MgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIHRh
Y2tsZSBpc3N1ZTMyIC0gc3BlZWQgdXAgdGVzdCBydW5zIG9mIHZlcnkgcXVpY2sgdGVzdCBmdW5j
dGlvbnMKKyAgYnkgcmVkdWNpbmcgdGhlIHJlbGF0aXZlIG92ZXJoZWFkCisKKy0gZml4IGlzc3Vl
MzAgLSBleHRlbmRlZCB4ZmFpbC9za2lwaWYgaGFuZGxpbmcgYW5kIGltcHJvdmVkIHJlcG9ydGlu
Zy4KKyAgSWYgeW91IGhhdmUgYSBzeW50YXggZXJyb3IgaW4geW91ciBza2lwL3hmYWlsCisgIGV4
cHJlc3Npb25zIHlvdSBub3cgZ2V0IG5pY2UgZXJyb3IgcmVwb3J0cy4KKworICBBbHNvIHlvdSBj
YW4gbm93IGFjY2VzcyBtb2R1bGUgZ2xvYmFscyBmcm9tIHhmYWlsL3NraXBpZgorICBleHByZXNz
aW9ucyBzbyB0aGF0IHRoaXMgZm9yIGV4YW1wbGUgd29ya3Mgbm93OjoKKworICAgIGltcG9ydCBw
eXRlc3QKKyAgICBpbXBvcnQgbXltb2R1bGUKKyAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKCJteW1v
ZHVsZS5fX3ZlcnNpb25fX1swXSA9PSAiMSIpCisgICAgZGVmIHRlc3RfZnVuY3Rpb24oKToKKyAg
ICAgICAgcGFzcworCisgIFRoaXMgd2lsbCBub3QgcnVuIHRoZSB0ZXN0IGZ1bmN0aW9uIGlmIHRo
ZSBtb2R1bGUncyB2ZXJzaW9uIHN0cmluZworICBkb2VzIG5vdCBzdGFydCB3aXRoIGEgIjEiLiAg
Tm90ZSB0aGF0IHNwZWNpZnlpbmcgYSBzdHJpbmcgaW5zdGVhZAorICBvZiBhIGJvb2xlYW4gZXhw
cmVzc2lvbnMgYWxsb3dzIHB5LnRlc3QgdG8gcmVwb3J0IG1lYW5pbmdmdWwgaW5mb3JtYXRpb24K
KyAgd2hlbiBzdW1tYXJpemluZyBhIHRlc3QgcnVuIGFzIHRvIHdoYXQgY29uZGl0aW9ucyBsZWFk
IHRvIHNraXBwaW5nCisgIChvciB4ZmFpbC1pbmcpIHRlc3RzLgorCistIGZpeCBpc3N1ZTI4IC0g
c2V0dXBfbWV0aG9kIGFuZCBweXRlc3RfZ2VuZXJhdGVfdGVzdHMgd29yayB0b2dldGhlcgorICBU
aGUgc2V0dXBfbWV0aG9kIGZpeHR1cmUgbWV0aG9kIG5vdyBnZXRzIGNhbGxlZCBhbHNvIGZvcgor
ICB0ZXN0IGZ1bmN0aW9uIGludm9jYXRpb25zIGdlbmVyYXRlZCBmcm9tIHRoZSBweXRlc3RfZ2Vu
ZXJhdGVfdGVzdHMKKyAgaG9vay4KKworLSBmaXggaXNzdWUyNyAtIGNvbGxlY3Rvbmx5IGFuZCBr
ZXl3b3JkLXNlbGVjdGlvbiAoLWspIG5vdyB3b3JrIHRvZ2V0aGVyCisgIEFsc28sIGlmIHlvdSBk
byAicHkudGVzdCAtLWNvbGxlY3Rvbmx5IC1xIiB5b3Ugbm93IGdldCBhIGZsYXQgbGlzdAorICBv
ZiB0ZXN0IGlkcyB0aGF0IHlvdSBjYW4gdXNlIHRvIHBhc3RlIHRvIHRoZSBweS50ZXN0IGNvbW1h
bmRsaW5lCisgIGluIG9yZGVyIHRvIGV4ZWN1dGUgYSBwYXJ0aWN1bGFyIHRlc3QuCisKKy0gZml4
IGlzc3VlMjUgYXZvaWQgcmVwb3J0ZWQgcHJvYmxlbXMgd2l0aCAtLXBkYiBhbmQgcHl0aG9uMy4y
L2VuY29kaW5ncyBvdXRwdXQKKworLSBmaXggaXNzdWUyMyAtIHRtcGRpciBhcmd1bWVudCBub3cg
d29ya3Mgb24gUHl0aG9uMy4yIGFuZCBXaW5kb3dzWFAKKyAgU3RhcnRpbmcgd2l0aCBQeXRob24z
LjIgb3Muc3ltbGluayBtYXkgYmUgc3VwcG9ydGVkLiBCeSByZXF1aXJpbmcKKyAgYSBuZXdlciBw
eSBsaWIgdmVyc2lvbiB0aGUgcHkucGF0aC5sb2NhbCgpIGltcGxlbWVudGF0aW9uIGFja25vd2xl
ZGdlcworICB0aGlzLgorCistIGZpeGVkIHR5cG9zIGluIHRoZSBkb2NzICh0aGFua3MgVmljdG9y
IEdhcmNpYSwgQnJpYW5uYSBMYXVnaGVyKSBhbmQgcGFydGljdWxhcgorICB0aGFua3MgdG8gTGF1
cmEgQ3JlaWdodG9uIHdobyBhbHNvIHJldmlld2VkIHBhcnRzIG9mIHRoZSBkb2N1bWVudGF0aW9u
LgorCistIGZpeCBzbGlnaHRseSB3cm9uZyBvdXRwdXQgb2YgdmVyYm9zZSBwcm9ncmVzcyByZXBv
cnRpbmcgZm9yIGNsYXNzZXMKKyAgKHRoYW5rcyBBbWF1cnkpCisKKy0gbW9yZSBwcmVjaXNlIChh
dm9pZGluZyBvZikgZGVwcmVjYXRpb24gd2FybmluZ3MgZm9yIG5vZGUuQ2xhc3N8RnVuY3Rpb24g
YWNjZXNzZXMKKworLSBhdm9pZCBzdGQgdW5pdHRlc3QgYXNzZXJ0aW9uIGhlbHBlciBjb2RlIGlu
IHRyYWNlYmFja3MgKHRoYW5rcyBSb25ueSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9hbm5vdW5jZS9yZWxlYXNlLTIuMC4zLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5j
ZS9yZWxlYXNlLTIuMC4zLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YmJmZGFhYjM2MWFhNjljYmYwNjI0MDFj
NTIxZWMwNGU2ZTY2NTg2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fu
bm91bmNlL3JlbGVhc2UtMi4wLjMucnN0CkBAIC0wLDAgKzEsNDAgQEAKK3B5LnRlc3QgMi4wLjM6
IGJ1ZyBmaXhlcyBhbmQgc3BlZWQgdXBzIAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1dlbGNvbWUg
dG8gcHl0ZXN0LTIuMC4zLCBhIG1haW50ZW5hbmNlIGFuZCBidWcgZml4IHJlbGVhc2Ugb2YgcHl0
ZXN0LAorYSBtYXR1cmUgdGVzdGluZyB0b29sIGZvciBQeXRob24sIHN1cHBvcnRpbmcgQ1B5dGhv
biAyLjQtMy4yLCBKeXRob24KK2FuZCBsYXRlc3QgUHlQeSBpbnRlcnByZXRlcnMuICBTZWUgdGhl
IGV4dGVuc2l2ZSBkb2NzIHdpdGggdGVzdGVkIGV4YW1wbGVzIGhlcmU6CisKKyAgICBodHRwOi8v
cHl0ZXN0Lm9yZy8KKworSWYgeW91IHdhbnQgdG8gaW5zdGFsbCBvciB1cGdyYWRlIHB5dGVzdCwg
anVzdCB0eXBlIG9uZSBvZjo6CisKKyAgICBwaXAgaW5zdGFsbCAtVSBweXRlc3QgIyBvcgorICAg
IGVhc3lfaW5zdGFsbCAtVSBweXRlc3QKKworVGhlcmUgYWxzbyBpcyBhIGJ1Z2ZpeCByZWxlYXNl
IDEuNiBvZiBweXRlc3QteGRpc3QsIHRoZSBwbHVnaW4KK3RoYXQgZW5hYmxlcyBzZWFtbGVzcyBk
aXN0cmlidXRlZCBhbmQgImxvb3BvbmZhaWwiIHRlc3RpbmcgZm9yIFB5dGhvbi4KKworYmVzdCwK
K2hvbGdlciBrcmVrZWwKKworQ2hhbmdlcyBiZXR3ZWVuIDIuMC4yIGFuZCAyLjAuMworLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGZpeCBpc3N1ZTM4
OiBuaWNlciB0cmFjZWJhY2tzIG9uIGNhbGxzIHRvIGhvb2tzLCBwYXJ0aWN1bGFybHkgZWFybHkK
KyAgY29uZmlndXJlL3Nlc3Npb25zdGFydCBvbmVzCisKKy0gZml4IG1pc3Npbmcgc2tpcCByZWFz
b24vbWV0YSBpbmZvcm1hdGlvbiBpbiBqdW5pdHhtbCBmaWxlcywgcmVwb3J0ZWQKKyAgdmlhIGh0
dHA6Ly9saXN0cy5pZHlsbC5vcmcvcGlwZXJtYWlsL3Rlc3RpbmctaW4tcHl0aG9uLzIwMTEtTWFy
Y2gvMDAzOTI4Lmh0bWwKKworLSBmaXggaXNzdWUzNDogYXZvaWQgY29sbGVjdGlvbiBmYWlsdXJl
IHdpdGggInRlc3QiIHByZWZpeGVkIGNsYXNzZXMKKyAgZGVyaXZpbmcgZnJvbSBvYmplY3QuCisK
Ky0gZG9uJ3QgcmVxdWlyZSB6bGliIChhbmQgb3RoZXIgbGlicykgZm9yIGdlbnNjcmlwdCBwbHVn
aW4gd2l0aG91dAorICAtLWdlbnNjcmlwdCBhY3R1YWxseSBiZWluZyB1c2VkLgorCistIHNwZWVk
IHVwIHNraXBzIChieSBub3QgZG9pbmcgYSBmdWxsIHRyYWNlYmFjayByZXByZXNlbnRhdGlvbgor
ICBpbnRlcm5hbGx5KQorCistIGZpeCBpc3N1ZTM3OiBhdm9pZCBpbnZhbGlkIGNoYXJhY3RlcnMg
aW4ganVuaXR4bWwncyBvdXRwdXQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fu
bm91bmNlL3JlbGVhc2UtMi4xLjAucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtMi4xLjAucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzMTU0OGFjMmZmNDJkNmYwZTZiYmVhNjIwMWJh
MDJhMzc5OWFmYzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3Vu
Y2UvcmVsZWFzZS0yLjEuMC5yc3QKQEAgLTAsMCArMSw0NyBAQAorcHkudGVzdCAyLjEuMDogcGVy
ZmVjdGVkIGFzc2VydGlvbnMgYW5kIGJ1ZyBmaXhlcworPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1dl
bGNvbWUgdG8gdGhlIHJlbGVhc2Ugb2YgcHl0ZXN0LTIuMSwgYSBtYXR1cmUgdGVzdGluZyB0b29s
IGZvciBQeXRob24sCitzdXBwb3J0aW5nIENQeXRob24gMi40LTMuMiwgSnl0aG9uIGFuZCBsYXRl
c3QgUHlQeSBpbnRlcnByZXRlcnMuICBTZWUKK3RoZSBpbXByb3ZlZCBleHRlbnNpdmUgZG9jcyAo
bm93IGFsc28gYXMgUERGISkgd2l0aCB0ZXN0ZWQgZXhhbXBsZXMgaGVyZToKKworICAgICBodHRw
Oi8vcHl0ZXN0Lm9yZy8KKworVGhlIHNpbmdsZSBiaWdnZXN0IG5ld3MgYWJvdXQgdGhpcyByZWxl
YXNlIGFyZSAqKnBlcmZlY3RlZCBhc3NlcnRpb25zKioKK2NvdXJ0ZXN5IG9mIEJlbmphbWluIFBl
dGVyc29uLiAgWW91IGNhbiBub3cgc2FmZWx5IHVzZSBgYGFzc2VydGBgCitzdGF0ZW1lbnRzIGlu
IHRlc3QgbW9kdWxlcyB3aXRob3V0IGhhdmluZyB0byB3b3JyeSBhYm91dCBzaWRlIGVmZmVjdHMK
K29yIHB5dGhvbiBvcHRpbWl6YXRpb24gKCItT08iKSBvcHRpb25zLiAgVGhpcyBpcyBhY2hpZXZl
ZCBieSByZXdyaXRpbmcKK2Fzc2VydCBzdGF0ZW1lbnRzIGluIHRlc3QgbW9kdWxlcyB1cG9uIGlt
cG9ydCwgdXNpbmcgYSBQRVAzMDIgaG9vay4KK1NlZSBodHRwOi8vcHl0ZXN0Lm9yZy9hc3NlcnQu
aHRtbCNhZHZhbmNlZC1hc3NlcnRpb24taW50cm9zcGVjdGlvbiBmb3IKK2RldGFpbGVkIGluZm9y
bWF0aW9uLiAgVGhlIHdvcmsgaGFzIGJlZW4gcGFydGx5IHNwb25zb3JlZCBieSBteSBjb21wYW55
LAorbWVybGludXggR21iSC4KKworRm9yIGZ1cnRoZXIgZGV0YWlscyBvbiBidWcgZml4ZXMgYW5k
IHNtYWxsZXIgZW5oYW5jZW1lbnRzIHNlZSBiZWxvdy4KKworSWYgeW91IHdhbnQgdG8gaW5zdGFs
bCBvciB1cGdyYWRlIHB5dGVzdCwganVzdCB0eXBlIG9uZSBvZjo6CisKKyAgICBwaXAgaW5zdGFs
bCAtVSBweXRlc3QgIyBvcgorICAgIGVhc3lfaW5zdGFsbCAtVSBweXRlc3QKKworYmVzdCwKK2hv
bGdlciBrcmVrZWwgLyBodHRwOi8vbWVybGludXguZXUKKworQ2hhbmdlcyBiZXR3ZWVuIDIuMC4z
IGFuZCAyLjEuMAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCistIGZpeCBpc3N1ZTUzIGNhbGwgbm9zZXN0eWxlIHNldHVwIGZ1bmN0aW9ucyB3aXRoIGNv
cnJlY3Qgb3JkZXJpbmcKKy0gZml4IGlzc3VlNTggYW5kIGlzc3VlNTk6IG5ldyBhc3NlcnRpb24g
Y29kZSBmaXhlcworLSBtZXJnZSBCZW5qYW1pbidzIGFzc2VydGlvbnJld3JpdGUgYnJhbmNoOiBu
b3cgYXNzZXJ0aW9ucworICBmb3IgdGVzdCBtb2R1bGVzIG9uIHB5dGhvbiAyLjYgYW5kIGFib3Zl
IGFyZSBkb25lIGJ5IHJld3JpdGluZworICB0aGUgQVNUIGFuZCBzYXZpbmcgdGhlIHB5YyBmaWxl
IGJlZm9yZSB0aGUgdGVzdCBtb2R1bGUgaXMgaW1wb3J0ZWQuCisgIHNlZSBkb2MvYXNzZXJ0LnR4
dCBmb3IgbW9yZSBpbmZvLgorLSBmaXggaXNzdWU0MzogaW1wcm92ZSBkb2N0ZXN0cyB3aXRoIGJl
dHRlciB0cmFjZWJhY2sgcmVwb3J0aW5nIG9uCisgIHVuZXhwZWN0ZWQgZXhjZXB0aW9ucworLSBm
aXggaXNzdWU0NzogdGltaW5nIG91dHB1dCBpbiBqdW5pdHhtbCBmb3IgdGVzdCBjYXNlcyBpcyBu
b3cgY29ycmVjdAorLSBmaXggaXNzdWU0ODogdHlwbyBpbiBNYXJrSW5mbyByZXByIGxlYWRpbmcg
dG8gZXhjZXB0aW9uCistIGZpeCBpc3N1ZTQ5OiBhdm9pZCBjb25mdXNpbmcgZXJyb3Igd2hlbiBp
bml0aWFsaXphdGlvbiBwYXJ0aWFsbHkgZmFpbHMKKy0gZml4IGlzc3VlNDQ6IGVudi91c2VybmFt
ZSBleHBhbnNpb24gZm9yIGp1bml0eG1sIGZpbGUgcGF0aAorLSBzaG93IHJlbGVhc2VsZXZlbCBp
bmZvcm1hdGlvbiBpbiB0ZXN0IHJ1bnMgZm9yIHB5cHkKKy0gcmV3b3JrZWQgZG9jIHBhZ2VzIGZv
ciBiZXR0ZXIgbmF2aWdhdGlvbiBhbmQgUERGIGdlbmVyYXRpb24KKy0gcmVwb3J0IEtleWJvYXJk
SW50ZXJydXB0IGV2ZW4gaWYgaW50ZXJydXB0ZWQgZHVyaW5nIHNlc3Npb24gc3RhcnR1cAorLSBm
aXggaXNzdWUgMzUgLSBwcm92aWRlIFBERiBkb2MgdmVyc2lvbiBhbmQgZG93bmxvYWQgbGluayBm
cm9tIGluZGV4IHBhZ2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9y
ZWxlYXNlLTIuMS4xLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIu
MS4xLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lY2RkNjlmNGRjOTNmNTYwNmViYjgyZTE3YTYwMmI5OWVlOWFl
YTYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVh
c2UtMi4xLjEucnN0CkBAIC0wLDAgKzEsMzcgQEAKK3B5LnRlc3QgMi4xLjE6IGFzc2VydGlvbiBm
aXhlcyBhbmQgaW1wcm92ZWQganVuaXR4bWwgb3V0cHV0Cis9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKwor
cHl0ZXN0LTIuMS4xIGlzIGEgYmFja3dhcmQgY29tcGF0aWJsZSBtYWludGVuYW5jZSByZWxlYXNl
IG9mIHRoZQorcG9wdWxhciBweS50ZXN0IHRlc3RpbmcgdG9vbC4gIFNlZSBleHRlbnNpdmUgZG9j
cyB3aXRoIGV4YW1wbGVzIGhlcmU6CisKKyAgICAgaHR0cDovL3B5dGVzdC5vcmcvCisKK01vc3Qg
YnVnIGZpeGVzIGFkZHJlc3MgcmVtYWluaW5nIGlzc3VlcyB3aXRoIHRoZSBwZXJmZWN0ZWQgYXNz
ZXJ0aW9ucworaW50cm9kdWNlZCB3aXRoIDIuMS4wIC0gbWFueSB0aGFua3MgdG8gdGhlIGJ1ZyBy
ZXBvcnRlcnMgYW5kIHRvIEJlbmphbWluCitQZXRlcnNvbiBmb3IgaGVscGluZyB0byBmaXggdGhl
bS4gIEFsc28sIGp1bml0eG1sIG91dHB1dCBub3cgcHJvZHVjZXMKK3N5c3RlbS1vdXQvZXJyIHRh
Z3Mgd2hpY2ggbGVhZCB0byBiZXR0ZXIgZGlzcGxheXMgb2YgdHJhY2ViYWNrcyB3aXRoIEplbmtp
bnMuCisKK0Fsc28gYSBxdWljayBub3RlIHRvIHBhY2thZ2UgbWFpbnRhaW5lcnMgYW5kIG90aGVy
cyBpbnRlcmVzdGVkOiB0aGVyZSBub3cKK2lzIGEgInB5dGVzdCIgbWFuIHBhZ2Ugd2hpY2ggY2Fu
IGJlIGdlbmVyYXRlZCB3aXRoICJtYWtlIG1hbiIgaW4gZG9jLy4KKworSWYgeW91IHdhbnQgdG8g
aW5zdGFsbCBvciB1cGdyYWRlIHB5dGVzdCwganVzdCB0eXBlIG9uZSBvZjo6CisKKyAgICBwaXAg
aW5zdGFsbCAtVSBweXRlc3QgIyBvcgorICAgIGVhc3lfaW5zdGFsbCAtVSBweXRlc3QKKworYmVz
dCwKK2hvbGdlciBrcmVrZWwgLyBodHRwOi8vbWVybGludXguZXUKKworQ2hhbmdlcyBiZXR3ZWVu
IDIuMS4wIGFuZCAyLjEuMQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCistIGZpeCBpc3N1ZTY0IC8gcHl0ZXN0LnNldF90cmFjZSBub3cgd29ya3Mgd2l0
aGluIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyBob29rcworLSBmaXggaXNzdWU2MCAvIGZpeCBlcnJv
ciBjb25kaXRpb25zIGludm9sdmluZyB0aGUgY3JlYXRpb24gb2YgX19weWNhY2hlX18KKy0gZml4
IGlzc3VlNjMgLyBhc3NlcnRpb24gcmV3cml0aW5nIG9uIGluc2VydHMgaW52b2x2aW5nIHN0cmlu
Z3MgY29udGFpbmluZyAnJScKKy0gZml4IGFzc2VydGlvbiByZXdyaXRpbmcgb24gY2FsbHMgd2l0
aCBhICoqIGFyZworLSBkb24ndCBjYWNoZSByZXdyaXR0ZW4gbW9kdWxlcyBpZiBieXRlY29kZSBn
ZW5lcmF0aW9uIGlzIGRpc2FibGVkCistIGZpeCBhc3NlcnRpb24gcmV3cml0aW5nIGluIHJlYWQt
b25seSBkaXJlY3RvcmllcworLSBmaXggaXNzdWU1OTogcHJvdmlkZSBzeXN0ZW0tb3V0L2VyciB0
YWdzIGZvciBqdW5pdHhtbCBvdXRwdXQKKy0gZml4IGlzc3VlNjE6IGFzc2VydGlvbiByZXdyaXRp
bmcgb24gYm9vbGVhbiBvcGVyYXRpb25zIHdpdGggMyBvciBtb3JlIG9wZXJhbmRzCistIHlvdSBj
YW4gbm93IGJ1aWxkIGEgbWFuIHBhZ2Ugd2l0aCAiY2QgZG9jIDsgbWFrZSBtYW4iCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMS4yLnJzdCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMS4yLnJzdApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
MWI3NTkxZDM2NjcwMDRhZTk2MmY2ODJmZTZjZWQ4MzVjNGIxYjUzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4xLjIucnN0CkBAIC0wLDAg
KzEsMzMgQEAKK3B5LnRlc3QgMi4xLjI6IGJ1ZyBmaXhlcyBhbmQgZml4ZXMgZm9yIGp5dGhvbgor
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdC0yLjEuMiBpcyBhIG1pbm9yIGJhY2t3YXJkIGNv
bXBhdGlibGUgbWFpbnRlbmFuY2UgcmVsZWFzZSBvZiB0aGUKK3BvcHVsYXIgcHkudGVzdCB0ZXN0
aW5nIHRvb2wuICBweXRlc3QgaXMgY29tbW9ubHkgdXNlZCBmb3IgdW5pdCwKK2Z1bmN0aW9uYWwt
IGFuZCBpbnRlZ3JhdGlvbiB0ZXN0aW5nLiAgU2VlIGV4dGVuc2l2ZSBkb2NzIHdpdGggZXhhbXBs
ZXMKK2hlcmU6CisKKyAgICAgaHR0cDovL3B5dGVzdC5vcmcvCisKK01vc3QgYnVnIGZpeGVzIGFk
ZHJlc3MgcmVtYWluaW5nIGlzc3VlcyB3aXRoIHRoZSBwZXJmZWN0ZWQgYXNzZXJ0aW9ucworaW50
cm9kdWNlZCBpbiB0aGUgMi4xIHNlcmllcyAtIG1hbnkgdGhhbmtzIHRvIHRoZSBidWcgcmVwb3J0
ZXJzIGFuZCB0byBCZW5qYW1pbgorUGV0ZXJzb24gZm9yIGhlbHBpbmcgdG8gZml4IHRoZW0uICBw
eXRlc3Qgc2hvdWxkIGFsc28gd29yayBiZXR0ZXIgd2l0aAorSnl0aG9uLTIuNS4xIChhbmQgSnl0
aG9uIHRydW5rKS4KKworSWYgeW91IHdhbnQgdG8gaW5zdGFsbCBvciB1cGdyYWRlIHB5dGVzdCwg
anVzdCB0eXBlIG9uZSBvZjo6CisKKyAgICBwaXAgaW5zdGFsbCAtVSBweXRlc3QgIyBvcgorICAg
IGVhc3lfaW5zdGFsbCAtVSBweXRlc3QKKworYmVzdCwKK2hvbGdlciBrcmVrZWwgLyBodHRwOi8v
bWVybGludXguZXUKKworQ2hhbmdlcyBiZXR3ZWVuIDIuMS4xIGFuZCAyLjEuMgorLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGZpeCBhc3NlcnRpb24gcmV3cml0
aW5nIG9uIGZpbGVzIHdpdGggd2luZG93cyBuZXdsaW5lcyBvbiBzb21lIFB5dGhvbiB2ZXJzaW9u
cworLSByZWZpbmUgdGVzdCBkaXNjb3ZlcnkgYnkgcGFja2FnZS9tb2R1bGUgbmFtZSAoLS1weWFy
Z3MpLCB0aGFua3MgRmxvcmlhbiBNYXllcgorLSBmaXggaXNzdWU2OSAvIGFzc2VydGlvbiByZXdy
aXRpbmcgZml4ZWQgb24gc29tZSBib29sZWFuIG9wZXJhdGlvbnMKKy0gZml4IGlzc3VlNjggLyBw
YWNrYWdlcyBub3cgd29yayB3aXRoIGFzc2VydGlvbiByZXdyaXRpbmcKKy0gZml4IGlzc3VlNjY6
IHVzZSBkaWZmZXJlbnQgYXNzZXJ0aW9uIHJld3JpdGluZyBjYWNoZXMgd2hlbiB0aGUgLU8gb3B0
aW9uIGlzIHBhc3NlZAorLSBkb24ndCB0cnkgYXNzZXJ0aW9uIHJld3JpdGluZyBvbiBKeXRob24s
IHVzZSByZWludGVycAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2Uv
cmVsZWFzZS0yLjEuMy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0y
LjEuMy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjRkYTYwYjhiYTRmYTdjZGE0NDZmZmJiM2I4NTRkNTk1NWE4
OTQ0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxl
YXNlLTIuMS4zLnJzdApAQCAtMCwwICsxLDMyIEBACitweS50ZXN0IDIuMS4zOiBqdXN0IHNvbWUg
bW9yZSBmaXhlcworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdC0yLjEuMyBpcyBhIG1pbm9y
IGJhY2t3YXJkIGNvbXBhdGlibGUgbWFpbnRlbmFuY2UgcmVsZWFzZSBvZiB0aGUKK3BvcHVsYXIg
cHkudGVzdCB0ZXN0aW5nIHRvb2wuICBJdCBpcyBjb21tb25seSB1c2VkIGZvciB1bml0LCBmdW5j
dGlvbmFsLQorYW5kIGludGVncmF0aW9uIHRlc3RpbmcuICBTZWUgZXh0ZW5zaXZlIGRvY3Mgd2l0
aCBleGFtcGxlcyBoZXJlOgorCisgICAgIGh0dHA6Ly9weXRlc3Qub3JnLworCitUaGUgcmVsZWFz
ZSBjb250YWlucyBhbm90aGVyIGZpeCB0byB0aGUgcGVyZmVjdGVkIGFzc2VydGlvbnMgaW50cm9k
dWNlZAord2l0aCB0aGUgMi4xIHNlcmllcyBhcyB3ZWxsIGFzIHRoZSBuZXcgcG9zc2liaWxpdHkg
dG8gY3VzdG9taXplIHJlcG9ydGluZworZm9yIGFzc2VydGlvbiBleHByZXNzaW9ucyBvbiBhIHBl
ci1kaXJlY3RvcnkgbGV2ZWwuICAKKworSWYgeW91IHdhbnQgdG8gaW5zdGFsbCBvciB1cGdyYWRl
IHB5dGVzdCwganVzdCB0eXBlIG9uZSBvZjo6CisKKyAgICBwaXAgaW5zdGFsbCAtVSBweXRlc3Qg
IyBvcgorICAgIGVhc3lfaW5zdGFsbCAtVSBweXRlc3QKKworVGhhbmtzIHRvIHRoZSBidWcgcmVw
b3J0ZXJzIGFuZCB0byBSb25ueSBQZmFubnNjaG1pZHQsIEJlbmphbWluIFBldGVyc29uCithbmQg
RmxvcmlzIEJydXlub29naGUgd2hvIGltcGxlbWVudGVkIHRoZSBmaXhlcy4KKworYmVzdCwKK2hv
bGdlciBrcmVrZWwKKworQ2hhbmdlcyBiZXR3ZWVuIDIuMS4yIGFuZCAyLjEuMworLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGZpeCBpc3N1ZTc5OiBhc3NlcnRp
b24gcmV3cml0aW5nIGZhaWxlZCBvbiBzb21lIGNvbXBhcmlzb25zIGluIGJvb2xvcHMsCistIGNv
cnJlY3RseSBoYW5kbGUgemVybyBsZW5ndGggYXJndW1lbnRzIChhIGxhIHB5dGVzdCAnJykKKy0g
Zml4IGlzc3VlNjcgLyBqdW5pdHhtbCBub3cgY29udGFpbnMgY29ycmVjdCB0ZXN0IGR1cmF0aW9u
cworLSBmaXggaXNzdWU3NSAvIHNraXBwaW5nIHRlc3QgZmFpbHVyZSBvbiBqeXRob24KKy0gZml4
IGlzc3VlNzcgLyBBbGxvdyBhc3NlcnRyZXByX2NvbXBhcmUgaG9vayB0byBhcHBseSB0byBhIHN1
YnNldCBvZiB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtMi4yLjAucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4y
LjAucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjIwYmZlMGExOTE1NzQ0MjI5YThlNTdjNDEzODliZGQ3YjJmNTUy
MDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFz
ZS0yLjIuMC5yc3QKQEAgLTAsMCArMSw5NSBAQAorcHkudGVzdCAyLjIuMDogdGVzdCBtYXJraW5n
KyssIHBhcmFtZXRyaXphdGlvbisrIGFuZCBkdXJhdGlvbiBwcm9maWxpbmcKKz09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorCitweXRlc3QtMi4yLjAgaXMgYSB0ZXN0LXN1aXRlIGNvbXBhdGlibGUgcmVsZWFz
ZSBvZiB0aGUgcG9wdWxhcgorcHkudGVzdCB0ZXN0aW5nIHRvb2wuICBQbHVnaW5zIG1pZ2h0IG5l
ZWQgdXBncmFkZXMuIEl0IGNvbWVzCit3aXRoIHRoZXNlIGltcHJvdmVtZW50czoKKworKiBlYXNp
ZXIgYW5kIG1vcmUgcG93ZXJmdWwgcGFyYW1ldHJpemF0aW9uIG9mIHRlc3RzOgorCisgIC0gbmV3
IEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSBkZWNvcmF0b3IgdG8gcnVuIHRlc3RzIHdpdGggZGlm
ZmVyZW50IGFyZ3VtZW50cworICAtIG5ldyBtZXRhZnVuYy5wYXJhbWV0cml6ZSgpIEFQSSBmb3Ig
cGFyYW1ldHJpemluZyBhcmd1bWVudHMgaW5kZXBlbmRlbnRseQorICAtIHNlZSBleGFtcGxlcyBh
dCBodHRwOi8vcHl0ZXN0Lm9yZy9sYXRlc3QvZXhhbXBsZS9wYXJhbWV0cml6ZS5odG1sCisgIC0g
Tk9URSB0aGF0IHBhcmFtZXRyaXplKCkgcmVsYXRlZCBBUElzIGFyZSBzdGlsbCBhIGJpdCBleHBl
cmltZW50YWwKKyAgICBhbmQgbWlnaHQgY2hhbmdlIGluIGZ1dHVyZSByZWxlYXNlcy4KKworKiBp
bXByb3ZlZCBoYW5kbGluZyBvZiB0ZXN0IG1hcmtlcnMgYW5kIHJlZmluZWQgbWFya2luZyBtZWNo
YW5pc206CisKKyAgLSAiLW0gbWFya2V4cHIiIG9wdGlvbiBmb3Igc2VsZWN0aW5nIHRlc3RzIGFj
Y29yZGluZyB0byB0aGVpciBtYXJrCisgIC0gYSBuZXcgIm1hcmtlcnMiIGluaS12YXJpYWJsZSBm
b3IgcmVnaXN0ZXJpbmcgdGVzdCBtYXJrZXJzIGZvciB5b3VyIHByb2plY3QKKyAgLSB0aGUgbmV3
ICItLXN0cmljdCIgYmFpbHMgb3V0IHdpdGggYW4gZXJyb3IgaWYgdXNpbmcgdW5yZWdpc3RlcmVk
IG1hcmtlcnMuCisgIC0gc2VlIGV4YW1wbGVzIGF0IGh0dHA6Ly9weXRlc3Qub3JnL2xhdGVzdC9l
eGFtcGxlL21hcmtlcnMuaHRtbAorCisqIGR1cmF0aW9uIHByb2ZpbGluZzogbmV3ICItLWR1cmF0
aW9uPU4iIG9wdGlvbiBzaG93aW5nIHRoZSBOIHNsb3dlc3QgdGVzdAorICBleGVjdXRpb24gb3Ig
c2V0dXAvdGVhcmRvd24gY2FsbHMuIFRoaXMgaXMgbW9zdCB1c2VmdWwgaWYgeW91IHdhbnQgdG8K
KyAgZmluZCBvdXQgd2hlcmUgeW91ciBzbG93ZXN0IHRlc3QgY29kZSBpcy4KKworKiBhbHNvIDIu
Mi4wIHBlcmZvcm1zIG1vcmUgZWFnZXIgY2FsbGluZyBvZiB0ZWFyZG93bi9maW5hbGl6ZXJzIGZ1
bmN0aW9ucworICByZXN1bHRpbmcgaW4gYmV0dGVyIGFuZCBtb3JlIGFjY3VyYXRlIHJlcG9ydGlu
ZyB3aGVuIHRoZXkgZmFpbAorCitCZXNpZGVzIHRoZXJlIGlzIHRoZSB1c3VhbCBzZXQgb2YgYnVn
IGZpeGVzIGFsb25nIHdpdGggYSBjbGVhbnVwIG9mCitweXRlc3QncyBvd24gdGVzdCBzdWl0ZSBh
bGxvd2luZyBpdCB0byBydW4gb24gYSB3aWRlciByYW5nZSBvZiBlbnZpcm9ubWVudHMuCisKK0Zv
ciBnZW5lcmFsIGluZm9ybWF0aW9uLCBzZWUgZXh0ZW5zaXZlIGRvY3Mgd2l0aCBleGFtcGxlcyBo
ZXJlOgorCisgICAgIGh0dHA6Ly9weXRlc3Qub3JnLworCitJZiB5b3Ugd2FudCB0byBpbnN0YWxs
IG9yIHVwZ3JhZGUgcHl0ZXN0IHlvdSBtaWdodCBqdXN0IHR5cGU6OgorCisgICAgcGlwIGluc3Rh
bGwgLVUgcHl0ZXN0ICMgb3IKKyAgICBlYXN5X2luc3RhbGwgLVUgcHl0ZXN0CisKK1RoYW5rcyB0
byBSb25ueSBQZmFubnNjaG1pZHQsIERhdmlkIEJ1cm5zLCBKZWZmIERvbm5lciwgRGFuaWVsIE5v
dXJpLCBBbGZyZWRvIERlemEgYW5kIGFsbCB3aG8gZ2F2ZSBmZWVkYmFjayBvciBzZW50IGJ1ZyBy
ZXBvcnRzLgorCitiZXN0LAoraG9sZ2VyIGtyZWtlbAorCisKK25vdGVzIG9uIGluY29tcGF0aWJp
bGl0eQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1doaWxlIHRlc3Qgc3VpdGVz
IHNob3VsZCB3b3JrIHVuY2hhbmdlZCB5b3UgbWlnaHQgbmVlZCB0byB1cGdyYWRlIHBsdWdpbnM6
CisKKyogWW91IG5lZWQgYSBuZXcgdmVyc2lvbiBvZiB0aGUgcHl0ZXN0LXhkaXN0IHBsdWdpbiAo
MS43KSBmb3IgZGlzdHJpYnV0aW5nCisgIHRlc3QgcnVucy4KKworKiBPdGhlciBwbHVnaW5zIG1p
Z2h0IG5lZWQgYW4gdXBncmFkZSBpZiB0aGV5IGltcGxlbWVudAorICB0aGUgYGBweXRlc3RfcnVu
dGVzdF9sb2dyZXBvcnRgYCBob29rIHdoaWNoIG5vdyBpcyBjYWxsZWQgdW5jb25kaXRpb25hbGx5
CisgIGZvciB0aGUgc2V0dXAvdGVhcmRvd24gZml4dHVyZSBwaGFzZXMgb2YgYSB0ZXN0LiBZb3Ug
bWF5IGNob29zZSB0bworICBpZ25vcmUgc2V0dXAvdGVhcmRvd24gZmFpbHVyZXMgYnkgaW5zZXJ0
aW5nICJpZiByZXAud2hlbiAhPSAnY2FsbCc6IHJldHVybiIKKyAgb3Igc29tZXRoaW5nIHNpbWls
YXIuIE5vdGUgdGhhdCBtb3N0IGNvZGUgcHJvYmFibHkgImp1c3QiIHdvcmtzIGJlY2F1c2UKKyAg
dGhlIGhvb2sgd2FzIGFscmVhZHkgY2FsbGVkIGZvciBmYWlsaW5nIHNldHVwL3RlYXJkb3duIHBo
YXNlcyBvZiBhIHRlc3QKKyAgc28gYSBwbHVnaW4gc2hvdWxkIGhhdmUgYmVlbiByZWFkeSB0byBn
cm9rIHN1Y2ggcmVwb3J0cyBhbHJlYWR5LgorCisKK0NoYW5nZXMgYmV0d2VlbiAyLjEuMyBhbmQg
Mi4yLjAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBmaXgg
aXNzdWU5MDogaW50cm9kdWNlIGVhZ2VyIHRlYXJpbmcgZG93biBvZiB0ZXN0IGl0ZW1zIHNvIHRo
YXQKKyAgdGVhcmRvd24gZnVuY3Rpb24gYXJlIGNhbGxlZCBlYXJsaWVyLgorLSBhZGQgYW4gYWxs
LXBvd2VyZnVsIG1ldGFmdW5jLnBhcmFtZXRyaXplIGZ1bmN0aW9uIHdoaWNoIGFsbG93cyB0bwor
ICBwYXJhbWV0cml6ZSB0ZXN0IGZ1bmN0aW9uIGFyZ3VtZW50cyBpbiBtdWx0aXBsZSBzdGVwcyBh
bmQgdGhlcmVmb3JlCisgIGZyb20gaW5kZXBlbmRlbnQgcGx1Z2lucyBhbmQgcGxhY2VzLgorLSBh
ZGQgYSBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUgaGVscGVyIHdoaWNoIGFsbG93cyB0byBlYXNp
bHkKKyAgY2FsbCBhIHRlc3QgZnVuY3Rpb24gd2l0aCBkaWZmZXJlbnQgYXJndW1lbnQgdmFsdWVz
LgorLSBBZGQgZXhhbXBsZXMgdG8gdGhlICJwYXJhbWV0cml6ZSIgZXhhbXBsZSBwYWdlLCBpbmNs
dWRpbmcgYSBxdWljayBwb3J0CisgIG9mIFRlc3Qgc2NlbmFyaW9zIGFuZCB0aGUgbmV3IHBhcmFt
ZXRyaXplIGZ1bmN0aW9uIGFuZCBkZWNvcmF0b3IuCistIGludHJvZHVjZSByZWdpc3RyYXRpb24g
Zm9yICJweXRlc3QubWFyay4qIiBoZWxwZXJzIHZpYSBpbmktZmlsZXMKKyAgb3IgdGhyb3VnaCBw
bHVnaW4gaG9va3MuICBBbHNvIGludHJvZHVjZSBhICItLXN0cmljdCIgb3B0aW9uIHdoaWNoCisg
IHdpbGwgdHJlYXQgdW5yZWdpc3RlcmVkIG1hcmtlcnMgYXMgZXJyb3JzCisgIGFsbG93aW5nIHRv
IGF2b2lkIHR5cG9zIGFuZCBtYWludGFpbiBhIHdlbGwgZGVzY3JpYmVkIHNldCBvZiBtYXJrZXJz
CisgIGZvciB5b3VyIHRlc3Qgc3VpdGUuICBTZWUgZXhhbXBsZXMgYXQgaHR0cDovL3B5dGVzdC5v
cmcvbGF0ZXN0L21hcmsuaHRtbAorICBhbmQgaXRzIGxpbmtzLgorLSBpc3N1ZTUwOiBpbnRyb2R1
Y2UgIi1tIG1hcmtlciIgb3B0aW9uIHRvIHNlbGVjdCB0ZXN0cyBiYXNlZCBvbiBtYXJrZXJzCisg
ICh0aGlzIGlzIGEgc3RyaWN0ZXIgYW5kIG1vcmUgcHJlZGljdGFibGUgdmVyc2lvbiBvZiAiLWsi
IGluIHRoYXQgIi1tIgorICBvbmx5IG1hdGNoZXMgY29tcGxldGUgbWFya2VycyBhbmQgaGFzIG1v
cmUgb2J2aW91cyBydWxlcyBmb3IgYW5kL29yCisgIHNlbWFudGljcy4KKy0gbmV3IGZlYXR1cmUg
dG8gaGVscCBvcHRpbWl6aW5nIHRoZSBzcGVlZCBvZiB5b3VyIHRlc3RzOgorICAtLWR1cmF0aW9u
cz1OIG9wdGlvbiBmb3IgZGlzcGxheWluZyBOIHNsb3dlc3QgdGVzdCBjYWxscworICBhbmQgc2V0
dXAvdGVhcmRvd24gbWV0aG9kcy4KKy0gZml4IGlzc3VlODc6IC0tcGFzdGViaW4gbm93IHdvcmtz
IHdpdGggcHl0aG9uMworLSBmaXggaXNzdWU4OTogLS1wZGIgd2l0aCB1bmV4cGVjdGVkIGV4Y2Vw
dGlvbnMgaW4gZG9jdGVzdCB3b3JrIG1vcmUgc2Vuc2libHkKKy0gZml4IGFuZCBjbGVhbnVwIHB5
dGVzdCdzIG93biB0ZXN0IHN1aXRlIHRvIG5vdCBsZWFrIEZEcworLSBmaXggaXNzdWU4MzogbGlu
ayB0byBnZW5lcmF0ZWQgZnVuY2FyZyBsaXN0CistIGZpeCBpc3N1ZTc0OiBweWFyZyBtb2R1bGUg
bmFtZXMgYXJlIG5vdyBjaGVja2VkIGFnYWluc3QgaW1wLmZpbmRfbW9kdWxlIGZhbHNlIHBvc2l0
aXZlcworLSBmaXggY29tcGF0aWJpbGl0eSB3aXRoIHR3aXN0ZWQvdHJpYWwtMTEuMS4wIHVzZSBj
YXNlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4y
LjEucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4yLjEucnN0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjVkMjhiY2IwMWY0YTY3NWUzMDczMDY4MzY5NzlmOTA1ZGY2NzYyMTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjIuMS5y
c3QKQEAgLTAsMCArMSw0MSBAQAorcHl0ZXN0LTIuMi4xOiBidWcgZml4ZXMsIHBlcmZlY3QgdGVh
cmRvd25zCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworCitweXRlc3QtMi4yLjEgaXMgYSBtaW5vciBi
YWNrd2FyZC1jb21wYXRpYmxlIHJlbGVhc2Ugb2YgdGhlIHB5LnRlc3QKK3Rlc3RpbmcgdG9vbC4g
ICBJdCBjb250YWlucyBidWcgZml4ZXMgYW5kIGxpdHRsZSBpbXByb3ZlbWVudHMsIGluY2x1ZGlu
ZworZG9jdW1lbnRhdGlvbiBmaXhlcy4gIElmIHlvdSBhcmUgdXNpbmcgdGhlIGRpc3RyaWJ1dGVk
IHRlc3RpbmcKK3BsdWdpbm1ha2Ugc3VyZSB0byB1cGdyYWRlIGl0IHRvIHB5dGVzdC14ZGlzdC0x
LjguCisKK0ZvciBnZW5lcmFsIGluZm9ybWF0aW9uIHNlZSBoZXJlOgorCisgICAgIGh0dHA6Ly9w
eXRlc3Qub3JnLworCitUbyBpbnN0YWxsIG9yIHVwZ3JhZGUgcHl0ZXN0OgorCisgICAgcGlwIGlu
c3RhbGwgLVUgcHl0ZXN0ICMgb3IKKyAgICBlYXN5X2luc3RhbGwgLVUgcHl0ZXN0CisKK1NwZWNp
YWwgdGhhbmtzIGZvciBoZWxwaW5nIG9uIHRoaXMgcmVsZWFzZSB0byBSb25ueSBQZmFubnNjaG1p
ZHQsIEp1cmtvCitHb3Nwb2RuZXRpYyBhbmQgUmFsZiBTY2htaXR0LgorCitiZXN0LAoraG9sZ2Vy
IGtyZWtlbAorCisKK0NoYW5nZXMgYmV0d2VlbiAyLjIuMCBhbmQgMi4yLjEKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBmaXggaXNzdWU5OSAoaW4gcHl0ZXN0
IGFuZCBweSkgaW50ZXJuYWxsZXJyb3JzIHdpdGggcmVzdWx0bG9nIG5vdworICBwcm9kdWNlIGJl
dHRlciBvdXRwdXQgLSBmaXhlZCBieSBub3JtYWxpemluZyBweXRlc3RfaW50ZXJuYWxlcnJvciAK
KyAgaW5wdXQgYXJndW1lbnRzLgorLSBmaXggaXNzdWU5NyAvIHRyYWNlYmFjayBpc3N1ZXMgKGlu
IHB5dGVzdCBhbmQgcHkpIGltcHJvdmUgdHJhY2ViYWNrIG91dHB1dAorICBpbiBjb25qdW5jdGlv
biB3aXRoIGppbmphMiBhbmQgY3l0aG9uIHdoaWNoIGhhY2sgdHJhY2ViYWNrcworLSBmaXggaXNz
dWU5MyAoaW4gcHl0ZXN0IGFuZCBweXRlc3QteGRpc3QpIGF2b2lkICJkZWxheWVkIHRlYXJkb3du
cyI6CisgIHRoZSBmaW5hbCB0ZXN0IGluIGEgdGVzdCBub2RlIHdpbGwgbm93IHJ1biBpdHMgdGVh
cmRvd24gZGlyZWN0bHkKKyAgaW5zdGVhZCBvZiB3YWl0aW5nIGZvciB0aGUgZW5kIG9mIHRoZSBz
ZXNzaW9uLiBUaGFua3MgRGF2ZSBIdW50IGZvcgorICB0aGUgZ29vZCByZXBvcnRpbmcgYW5kIGZl
ZWRiYWNrLiAgVGhlIHB5dGVzdF9ydW50ZXN0X3Byb3RvY29sIGFzIHdlbGwKKyAgYXMgdGhlIHB5
dGVzdF9ydW50ZXN0X3RlYXJkb3duIGhvb2tzIG5vdyBoYXZlICJuZXh0aXRlbSIgYXZhaWxhYmxl
IAorICB3aGljaCB3aWxsIGJlIE5vbmUgaW5kaWNhdGluZyB0aGUgZW5kIG9mIHRoZSB0ZXN0IHJ1
bi4KKy0gZml4IGNvbGxlY3Rpb24gY3Jhc2ggZHVlIHRvIHVua25vd24tc291cmNlIGNvbGxlY3Rl
ZCBpdGVtcywgdGhhbmtzCisgIHRvIFJhbGYgU2NobWl0dCAoZml4ZWQgYnkgZGVwZW5kaW5nIG9u
IGEgbW9yZSByZWNlbnQgcHlsaWIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5u
b3VuY2UvcmVsZWFzZS0yLjIuMi5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVs
ZWFzZS0yLjIuMi5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzMzYWVkZWM0MTM1MTI0NGVkODY3MzU0OTk1NzZi
MmM2Y2M4ZTI4YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5j
ZS9yZWxlYXNlLTIuMi4yLnJzdApAQCAtMCwwICsxLDQzIEBACitweXRlc3QtMi4yLjI6IGJ1ZyBm
aXhlcworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdC0yLjIuMiAodXBkYXRlZCB0byAyLjIu
MyB0byBmaXggcGFja2FnaW5nIGlzc3VlcykgaXMgYSBtaW5vcgorYmFja3dhcmQtY29tcGF0aWJs
ZSByZWxlYXNlIG9mIHRoZSB2ZXJzYXRpbGUgcHkudGVzdCB0ZXN0aW5nIHRvb2wuICAgSXQKK2Nv
bnRhaW5zIGJ1ZyBmaXhlcyBhbmQgYSBmZXcgcmVmaW5lbWVudHMgcGFydGljdWxhcmx5IHRvIHJl
cG9ydGluZyB3aXRoCisiLS1jb2xsZWN0b25seSIsIHNlZSBiZWxvdyBmb3IgYmV0YWlscy4gIAor
CitGb3IgZ2VuZXJhbCBpbmZvcm1hdGlvbiBzZWUgaGVyZToKKworICAgICBodHRwOi8vcHl0ZXN0
Lm9yZy8KKworVG8gaW5zdGFsbCBvciB1cGdyYWRlIHB5dGVzdDoKKworICAgIHBpcCBpbnN0YWxs
IC1VIHB5dGVzdCAjIG9yCisgICAgZWFzeV9pbnN0YWxsIC1VIHB5dGVzdAorCitTcGVjaWFsIHRo
YW5rcyBmb3IgaGVscGluZyBvbiB0aGlzIHJlbGVhc2UgdG8gUm9ubnkgUGZhbm5zY2htaWR0Cith
bmQgUmFsZiBTY2htaXR0IGFuZCB0aGUgY29udHJpYnV0b3JzIG9mIGlzc3Vlcy4KKworYmVzdCwK
K2hvbGdlciBrcmVrZWwKKworCitDaGFuZ2VzIGJldHdlZW4gMi4yLjEgYW5kIDIuMi4yCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gZml4IGlzc3VlMTAxOiB3
cm9uZyBhcmdzIHRvIHVuaXR0ZXN0LlRlc3RDYXNlIHRlc3QgZnVuY3Rpb24gbm93CisgIHByb2R1
Y2UgYmV0dGVyIG91dHB1dAorLSBmaXggaXNzdWUxMDI6IHJlcG9ydCBtb3JlIHVzZWZ1bCBlcnJv
cnMgYW5kIGhpbnRzIGZvciB3aGVuIGEgCisgIHRlc3QgZGlyZWN0b3J5IHdhcyByZW5hbWVkIGFu
ZCBzb21lIHB5Yy9fX3B5Y2FjaGVfXyByZW1haW4KKy0gZml4IGlzc3VlMTA2OiBhbGxvdyBwYXJh
bWV0cml6ZSB0byBiZSBhcHBsaWVkIG11bHRpcGxlIHRpbWVzCisgIGUuZy4gZnJvbSBtb2R1bGUs
IGNsYXNzIGFuZCBhdCBmdW5jdGlvbiBsZXZlbC4KKy0gZml4IGlzc3VlMTA3OiBhY3R1YWxseSBw
ZXJmb3JtIHNlc3Npb24gc2NvcGUgZmluYWxpemF0aW9uCistIGRvbid0IGNoZWNrIGluIHBhcmFt
ZXRyaXplIGlmIGluZGlyZWN0IHBhcmFtZXRlcnMgYXJlIGZ1bmNhcmcgbmFtZXMKKy0gYWRkIGNo
ZGlyIG1ldGhvZCB0byBtb25rZXlwYXRjaCBmdW5jYXJnCistIGZpeCBjcmFzaCByZXN1bHRpbmcg
ZnJvbSBjYWxsaW5nIG1vbmtleXBhdGNoIHVuZG8gYSBzZWNvbmQgdGltZQorLSBmaXggaXNzdWUx
MTU6IG1ha2UgLS1jb2xsZWN0b25seSByb2J1c3QgYWdhaW5zdCBlYXJseSBmYWlsdXJlCisgICht
aXNzaW5nIGZpbGVzL2RpcmVjdG9yaWVzKQorLSAiLXFxIC0tY29sbGVjdG9ubHkiIG5vdyBzaG93
cyBvbmx5IGZpbGVzIGFuZCB0aGUgbnVtYmVyIG9mIHRlc3RzIGluIHRoZW0KKy0gIi1xIC0tY29s
bGVjdG9ubHkiIG5vdyBzaG93cyB0ZXN0IGlkcyAKKy0gYWxsb3cgYWRkaW5nIG9mIGF0dHJpYnV0
ZXMgdG8gdGVzdCByZXBvcnRzIHN1Y2ggdGhhdCBpdCBhbHNvIHdvcmtzCisgIHdpdGggZGlzdHJp
YnV0ZWQgdGVzdGluZyAobm8gdXBncmFkZSBvZiBweXRlc3QteGRpc3QgbmVlZGVkKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4yLjQucnN0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4yLjQucnN0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3
ZjBmZWIyN2M3ZmQwMjhhZTI1NmM3MzI4NzVjYTk3YzgzODAwZmQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjIuNC5yc3QKQEAgLTAsMCAr
MSwzOSBAQAorcHl0ZXN0LTIuMi40OiBidWcgZml4ZXMsIGJldHRlciBqdW5pdHhtbC91bml0dGVz
dC9weXRob24zIGNvbXBhdAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdC0yLjIuNCBpcyBh
IG1pbm9yIGJhY2t3YXJkLWNvbXBhdGlibGUgcmVsZWFzZSBvZiB0aGUgdmVyc2F0aWxlCitweS50
ZXN0IHRlc3RpbmcgdG9vbC4gICBJdCBjb250YWlucyBidWcgZml4ZXMgYW5kIGEgZmV3IHJlZmlu
ZW1lbnRzCit0byBqdW5pdHhtbCByZXBvcnRpbmcsIGJldHRlciB1bml0dGVzdC0gYW5kIHB5dGhv
bjMgY29tcGF0aWJpbGl0eS4KKworRm9yIGdlbmVyYWwgaW5mb3JtYXRpb24gc2VlIGhlcmU6CisK
KyAgICAgaHR0cDovL3B5dGVzdC5vcmcvCisKK1RvIGluc3RhbGwgb3IgdXBncmFkZSBweXRlc3Q6
CisKKyAgICBwaXAgaW5zdGFsbCAtVSBweXRlc3QgIyBvcgorICAgIGVhc3lfaW5zdGFsbCAtVSBw
eXRlc3QKKworU3BlY2lhbCB0aGFua3MgZm9yIGhlbHBpbmcgb24gdGhpcyByZWxlYXNlIHRvIFJv
bm55IFBmYW5uc2NobWlkdAorYW5kIEJlbmphbWluIFBldGVyc29uIGFuZCB0aGUgY29udHJpYnV0
b3JzIG9mIGlzc3Vlcy4KKworYmVzdCwKK2hvbGdlciBrcmVrZWwKKworQ2hhbmdlcyBiZXR3ZWVu
IDIuMi4zIGFuZCAyLjIuNAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
LSBmaXggZXJyb3IgbWVzc2FnZSBmb3IgcmV3cml0dGVuIGFzc2VydGlvbnMgaW52b2x2aW5nIHRo
ZSAlIG9wZXJhdG9yCistIGZpeCBpc3N1ZSAxMjY6IGNvcnJlY3RseSBtYXRjaCBhbGwgaW52YWxp
ZCB4bWwgY2hhcmFjdGVycyBmb3IganVuaXR4bWwKKyAgYmluYXJ5IGVzY2FwZQorLSBmaXggaXNz
dWUgd2l0aCB1bml0dGVzdDogbm93IEB1bml0dGVzdC5leHBlY3RlZEZhaWx1cmUgbWFya2VycyBz
aG91bGQKKyAgYmUgcHJvY2Vzc2VkIGNvcnJlY3RseSAoeW91IGNhbiBhbHNvIHVzZSBAcHl0ZXN0
Lm1hcmsgbWFya2VycykKKy0gZG9jdW1lbnQgaW50ZWdyYXRpb24gd2l0aCB0aGUgZXh0ZW5kZWQg
ZGlzdHJpYnV0ZS9zZXR1cHRvb2xzIHRlc3QgY29tbWFuZHMKKy0gZml4IGlzc3VlIDE0MDogcHJv
cGVybHkgZ2V0IHRoZSByZWFsIGZ1bmN0aW9ucworICBvZiBib3VuZCBjbGFzc21ldGhvZHMgZm9y
IHNldHVwL3RlYXJkb3duX2NsYXNzCistIGZpeCBpc3N1ZSAjMTQxOiBzd2l0Y2ggZnJvbSB0aGUg
ZGVjZWFzZWQgcGFzdGUucG9jb28ub3JnIHRvIGJwYXN0ZS5uZXQKKy0gZml4IGlzc3VlICMxNDM6
IGNhbGwgdW5jb25maWd1cmUvc2Vzc2lvbmZpbmlzaCBhbHdheXMgd2hlbgorICBjb25maWd1cmUv
c2Vzc2lvbnN0YXJ0IHdoZXJlIGNhbGxlZAorLSBmaXggaXNzdWUgIzE0NDogYmV0dGVyIG1hbmds
ZSB0ZXN0IGlkcyB0byBqdW5pdHhtbCBjbGFzc25hbWVzCistIHVwZ3JhZGUgZGlzdHJpYnV0ZV9z
ZXR1cC5weSB0byAwLjYuMjcKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtMi4zLjAucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVh
c2UtMi4zLjAucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4NjNhYWQwYWNlOTQ1ZmZlMWEyY2UzZDgwZTlmNmNj
YzNiNjRiZDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2Uv
cmVsZWFzZS0yLjMuMC5yc3QKQEAgLTAsMCArMSwxMzQgQEAKK3B5dGVzdC0yLjM6IGltcHJvdmVk
IGZpeHR1cmVzIC8gYmV0dGVyIHVuaXR0ZXN0IGludGVncmF0aW9uCis9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorCitweXRlc3QtMi4zIGNvbWVzIHdpdGggbWFueSBtYWpvciBpbXByb3ZlbWVudHMgZm9y
IGZpeHR1cmUvZnVuY2FyZyBtYW5hZ2VtZW50IAorYW5kIHBhcmFtZXRyaXplZCB0ZXN0aW5nIGlu
IFB5dGhvbi4gIEl0IGlzIG5vdyBlYXNpZXIsIG1vcmUgZWZmaWNpZW50IGFuZAorbW9yZSBwcmVk
aWNhdGFibGUgdG8gcmUtcnVuIHRoZSBzYW1lIHRlc3RzIHdpdGggZGlmZmVyZW50IGZpeHR1cmUK
K2luc3RhbmNlcy4gIEFsc28sIHlvdSBjYW4gZGlyZWN0bHkgZGVjbGFyZSB0aGUgY2FjaGluZyAi
c2NvcGUiIG9mCitmaXh0dXJlcyBzbyB0aGF0IGRlcGVuZGVudCB0ZXN0cyB0aHJvdWdob3V0IHlv
dXIgd2hvbGUgdGVzdCBzdWl0ZSBjYW4KK3JlLXVzZSBkYXRhYmFzZSBvciBvdGhlciBleHBlbnNp
dmUgZml4dHVyZSBvYmplY3RzIHdpdGggZWFzZS4gIExhc3RseSwKK2l0J3MgcG9zc2libGUgZm9y
IGZpeHR1cmUgZnVuY3Rpb25zIChmb3JtZXJseSBrbm93biBhcyBmdW5jYXJnCitmYWN0b3JpZXMp
IHRvIHVzZSBvdGhlciBmaXh0dXJlcywgYWxsb3dpbmcgZm9yIGEgY29tcGxldGVseSBtb2R1bGFy
IGFuZAorcmUtdXNlYWJsZSBmaXh0dXJlIGRlc2lnbi4gCisKK0ZvciBkZXRhaWxlZCBpbmZvIGFu
ZCB0dXRvcmlhbC1zdHlsZSBleGFtcGxlcywgc2VlOgorCisgICAgaHR0cDovL3B5dGVzdC5vcmcv
bGF0ZXN0L2ZpeHR1cmUuaHRtbAorCitNb3Jlb3ZlciwgdGhlcmUgaXMgbm93IHN1cHBvcnQgZm9y
IHVzaW5nIHB5dGVzdCBmaXh0dXJlcy9mdW5jYXJncyB3aXRoCit1bml0dGVzdC1zdHlsZSBzdWl0
ZXMsIHNlZSBoZXJlIGZvciBleGFtcGxlczoKKworICAgIGh0dHA6Ly9weXRlc3Qub3JnL2xhdGVz
dC91bml0dGVzdC5odG1sCisKK0Jlc2lkZXMsIG1vcmUgdW5pdHRlc3QtdGVzdCBzdWl0ZXMgYXJl
IG5vdyBleHBlY3RlZCB0byAic2ltcGx5IHdvcmsiCit3aXRoIHB5dGVzdC4KKworQWxsIGNoYW5n
ZXMgYXJlIGJhY2t3YXJkIGNvbXBhdGlibGUgYW5kIHlvdSBzaG91bGQgYmUgYWJsZSB0byBjb250
aW51ZQordG8gcnVuIHlvdXIgdGVzdCBzdWl0ZXMgYW5kIDNyZCBwYXJ0eSBwbHVnaW5zIHRoYXQg
d29ya2VkIHdpdGgKK3B5dGVzdC0yLjIuNC4KKworSWYgeW91IGFyZSBpbnRlcmVzdGVkIGluIHRo
ZSBwcmVjaXNlIHJlYXNvbmluZyAoaW5jbHVkaW5nIGV4YW1wbGVzKSBvZiB0aGUgCitweXRlc3Qt
Mi4zIGZpeHR1cmUgZXZvbHV0aW9uLCBwbGVhc2UgY29uc3VsdAoraHR0cDovL3B5dGVzdC5vcmcv
bGF0ZXN0L2Z1bmNhcmdfY29tcGFyZS5odG1sCisKK0ZvciBnZW5lcmFsIGluZm8gb24gaW5zdGFs
bGF0aW9uIGFuZCBnZXR0aW5nIHN0YXJ0ZWQ6CisKKyAgICBodHRwOi8vcHl0ZXN0Lm9yZy9sYXRl
c3QvZ2V0dGluZy1zdGFydGVkLmh0bWwKKworRG9jcyBhbmQgUERGIGFjY2VzcyBhcyB1c3VhbCBh
dDoKKworICAgIGh0dHA6Ly9weXRlc3Qub3JnCisKK2FuZCBtb3JlIGRldGFpbHMgZm9yIHRob3Nl
IGFscmVhZHkgaW4gdGhlIGtub3dpbmcgb2YgcHl0ZXN0IGNhbiBiZSBmb3VuZAoraW4gdGhlIENI
QU5HRUxPRyBiZWxvdy4KKworUGFydGljdWxhciB0aGFua3MgZm9yIHRoaXMgcmVsZWFzZSBnbyB0
byBGbG9yaXMgQnJ1eW5vb2doZSwgQWxleCBPa3J1c2hrbworQ2FybCBNZXllciwgUm9ubnkgUGZh
bm5zY2htaWR0LCBCZW5qYW1pbiBQZXRlcnNvbiBhbmQgQWxleCBHYXlub3IgZm9yIGhlbHBpbmcg
Cit0byBnZXQgdGhlIG5ldyBmZWF0dXJlcyByaWdodCBhbmQgd2VsbCBpbnRlZ3JhdGVkLiAgUm9u
bnkgYW5kIEZsb3JpcworYWxzbyBoZWxwZWQgdG8gZml4IGEgbnVtYmVyIG9mIGJ1Z3MgYW5kIHll
dCBtb3JlIHBlb3BsZSBoZWxwZWQgYnkKK3Byb3ZpZGluZyBidWcgcmVwb3J0cy4KKworaGF2ZSBm
dW4sCitob2xnZXIga3Jla2VsCisKKworQ2hhbmdlcyBiZXR3ZWVuIDIuMi40IGFuZCAyLjMuMAor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBmaXggaXNzdWUyMDIgLSBi
ZXR0ZXIgYXV0b21hdGljIG5hbWVzIGZvciBwYXJhbWV0cml6ZWQgdGVzdCBmdW5jdGlvbnMKKy0g
Zml4IGlzc3VlMTM5IC0gaW50cm9kdWNlIEBweXRlc3QuZml4dHVyZSB3aGljaCBhbGxvd3MgZGly
ZWN0IHNjb3BpbmcKKyAgYW5kIHBhcmFtZXRyaXphdGlvbiBvZiBmdW5jYXJnIGZhY3Rvcmllcy4g
IEludHJvZHVjZSBuZXcgQHB5dGVzdC5zZXR1cAorICBtYXJrZXIgdG8gYWxsb3cgdGhlIHdyaXRp
bmcgb2Ygc2V0dXAgZnVuY3Rpb25zIHdoaWNoIGFjY2VwdCBmdW5jYXJncy4KKy0gZml4IGlzc3Vl
MTk4IC0gY29uZnRlc3QgZml4dHVyZXMgd2VyZSBub3QgZm91bmQgb24gd2luZG93czMyIGluIHNv
bWUKKyAgY2lyY3Vtc3RhbmNlcyB3aXRoIG5lc3RlZCBkaXJlY3Rvcnkgc3RydWN0dXJlcyBkdWUg
dG8gcGF0aCBtYW5pcHVsYXRpb24gaXNzdWVzCistIGZpeCBpc3N1ZTE5MyBza2lwIHRlc3QgZnVu
Y3Rpb25zIHdpdGggd2VyZSBwYXJhbWV0cml6ZWQgd2l0aCBlbXB0eQorICBwYXJhbWV0ZXIgc2V0
cworLSBmaXggcHl0aG9uMy4zIGNvbXBhdCwgbW9zdGx5IHJlcG9ydGluZyBiaXRzIHRoYXQgcHJl
dmlvdXNseSBkZXBlbmRlZAorICBvbiBkaWN0IG9yZGVyaW5nCistIGludHJvZHVjZSByZS1vcmRl
cmluZyBvZiB0ZXN0cyBieSByZXNvdXJjZSBhbmQgcGFyYW1ldHJpemF0aW9uIHNldHVwCisgIHdo
aWNoIHRha2VzIHByZWNlZGVuY2UgdG8gdGhlIHVzdWFsIGZpbGUtb3JkZXJpbmcKKy0gZml4IGlz
c3VlMTg1IG1vbmtleXBhdGNoaW5nIHRpbWUudGltZSBkb2VzIG5vdCBjYXVzZSBweXRlc3QgdG8g
ZmFpbAorLSBmaXggaXNzdWUxNzIgZHVwbGljYXRlIGNhbGwgb2YgcHl0ZXN0LnNldHVwLWRlY29y
YXRvcmVkIHNldHVwX21vZHVsZQorICBmdW5jdGlvbnMKKy0gZml4IGp1bml0eG1sPXBhdGggY29u
c3RydWN0aW9uIHNvIHRoYXQgaWYgdGVzdHMgY2hhbmdlIHRoZQorICBjdXJyZW50IHdvcmtpbmcg
ZGlyZWN0b3J5IGFuZCB0aGUgcGF0aCBpcyBhIHJlbGF0aXZlIHBhdGgKKyAgaXQgaXMgY29uc3Ry
dWN0ZWQgY29ycmVjdGx5IGZyb20gdGhlIG9yaWdpbmFsIGN1cnJlbnQgd29ya2luZyBkaXIuCist
IGZpeCAicHl0aG9uIHNldHVwLnB5IHRlc3QiIGV4YW1wbGUgdG8gY2F1c2UgYSBwcm9wZXIgImVy
cm5vIiByZXR1cm4KKy0gZml4IGlzc3VlMTY1IC0gZml4IGJyb2tlbiBkb2MgbGlua3MgYW5kIG1l
bnRpb24gc3RhY2tvdmVyZmxvdyBmb3IgRkFRCistIGNhdGNoIHVuaWNvZGUtaXNzdWVzIHdoZW4g
d3JpdGluZyBmYWlsdXJlIHJlcHJlc2VudGF0aW9ucworICB0byB0ZXJtaW5hbCB0byBwcmV2ZW50
IHRoZSB3aG9sZSBzZXNzaW9uIGZyb20gY3Jhc2hpbmcKKy0gZml4IHhmYWlsL3NraXAgY29uZnVz
aW9uOiBhIHNraXAtbWFyayBvciBhbiBpbXBlcmF0aXZlIHB5dGVzdC5za2lwCisgIHdpbGwgbm93
IHRha2UgcHJlY2VkZW5jZSBiZWZvcmUgeGZhaWwtbWFya2VycyBiZWNhdXNlIHdlCisgIGNhbid0
IGRldGVybWluZSB4ZmFpbC94cGFzcyBzdGF0dXMgaW4gY2FzZSBvZiBhIHNraXAuIHNlZSBhbHNv
OgorICBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzExMTA1ODI4L2luLXB5LXRl
c3Qtd2hlbi1pLWV4cGxpY2l0bHktc2tpcC1hLXRlc3QtdGhhdC1pcy1tYXJrZWQtYXMteGZhaWwt
aG93LWNhbi1pLWdldAorCistIGFsd2F5cyByZXBvcnQgaW5zdGFsbGVkIDNyZCBwYXJ0eSBwbHVn
aW5zIGluIHRoZSBoZWFkZXIgb2YgYSB0ZXN0IHJ1bgorCistIGZpeCBpc3N1ZTE2MDogYSBmYWls
aW5nIHNldHVwIG9mIGFuIHhmYWlsLW1hcmtlZCB0ZXN0cyBzaG91bGQKKyAgYmUgcmVwb3J0ZWQg
YXMgeGZhaWwgKG5vdCB4cGFzcykKKworLSBmaXggaXNzdWUxMjg6IHNob3cgY2FwdHVyZWQgb3V0
cHV0IHdoZW4gY2Fwc3lzL2NhcGZkIGFyZSB1c2VkCisKKy0gZml4IGlzc3VlMTc5OiBwcm9wZXJs
eSBzaG93IHRoZSBkZXBlbmRlbmN5IGNoYWluIG9mIGZhY3RvcmllcworCistIHBsdWdpbm1hbmFn
ZXIucmVnaXN0ZXIoLi4uKSBub3cgcmFpc2VzIFZhbHVlRXJyb3IgaWYgdGhlCisgIHBsdWdpbiBo
YXMgYmVlbiBhbHJlYWR5IHJlZ2lzdGVyZWQgb3IgdGhlIG5hbWUgaXMgdGFrZW4KKworLSBmaXgg
aXNzdWUxNTk6IGltcHJvdmUgaHR0cDovL3B5dGVzdC5vcmcvbGF0ZXN0L2ZhcS5odG1sIAorICBl
c3BlY2lhbGx5IHdpdGggcmVzcGVjdCB0byB0aGUgIm1hZ2ljIiBoaXN0b3J5LCBhbHNvIG1lbnRp
b24KKyAgcHl0ZXN0LWRqYW5nbywgdHJpYWwgYW5kIHVuaXR0ZXN0IGludGVncmF0aW9uLgorCist
IG1ha2UgcmVxdWVzdC5rZXl3b3JkcyBhbmQgbm9kZS5rZXl3b3JkcyB3cml0YWJsZS4gIEFsbCBk
ZXNjZW5kYW50CisgIGNvbGxlY3Rpb24gbm9kZXMgd2lsbCBzZWUga2V5d29yZCB2YWx1ZXMuICBL
ZXl3b3JkcyBhcmUgZGljdGlvbmFyaWVzCisgIGNvbnRhaW5pbmcgbWFya2VycyBhbmQgb3RoZXIg
aW5mby4KKworLSBmaXggaXNzdWUgMTc4OiB4bWwgYmluYXJ5IGVzY2FwZXMgYXJlIG5vdyB3cmFw
cGVkIGluIHB5LnhtbC5yYXcKKworLSBmaXggaXNzdWUgMTc2OiBjb3JyZWN0bHkgY2F0Y2ggdGhl
IGJ1aWx0aW4gQXNzZXJ0aW9uRXJyb3IKKyAgZXZlbiB3aGVuIHdlIHJlcGxhY2VkIEFzc2VydGlv
bkVycm9yIHdpdGggYSBzdWJjbGFzcyBvbiB0aGUKKyAgcHl0aG9uIGxldmVsCisKKy0gZmFjdG9y
eSBkaXNjb3Zlcnkgbm8gbG9uZ2VyIGZhaWxzIHdpdGggbWFnaWMgZ2xvYmFsIGNhbGxhYmxlcwor
ICB0aGF0IHByb3ZpZGUgbm8gc2FuZSBfX2NvZGVfXyBvYmplY3QgKG1vY2suY2FsbCBmb3IgZXhh
bXBsZSkKKworLSBmaXggaXNzdWUgMTgyOiB0ZXN0ZGlyLmlucHJvY2Vzc19ydW4gbm93IGNvbnNp
ZGVycyBwYXNzZWQgcGx1Z2lucworCistIGZpeCBpc3N1ZSAxODg6IGVuc3VyZSBzeXMuZXhjX2lu
Zm8gaXMgY2xlYXIgb24gcHl0aG9uMgorICAgICAgICAgICAgICAgICBiZWZvcmUgY2FsbGluZyBp
bnRvIGEgdGVzdAorCistIGZpeCBpc3N1ZSAxOTE6IGFkZCB1bml0dGVzdCBUZXN0Q2FzZSBydW5U
ZXN0IG1ldGhvZCBzdXBwb3J0CistIGZpeCBpc3N1ZSAxNTY6IG1vbmtleXBhdGNoIGNvcnJlY3Rs
eSBoYW5kbGVzIGNsYXNzIGxldmVsIGRlc2NyaXB0b3JzCisKKy0gcmVwb3J0aW5nIHJlZmluZW1l
bnRzOgorCisgIC0gcHl0ZXN0X3JlcG9ydF9oZWFkZXIgbm93IHJlY2VpdmVzIGEgInN0YXJ0ZGly
IiBzbyB0aGF0CisgICAgeW91IGNhbiB1c2Ugc3RhcnRkaXIuYmVzdHJlbHBhdGgoeW91cnBhdGgp
IHRvIHNob3cKKyAgICBuaWNlIHJlbGF0aXZlIHBhdGgKKworICAtIGFsbG93IHBsdWdpbnMgdG8g
aW1wbGVtZW50IGJvdGggcHl0ZXN0X3JlcG9ydF9oZWFkZXIgYW5kIAorICAgIHB5dGVzdF9zZXNz
aW9uc3RhcnQgKHNlc3Npb25zdGFydCBpcyBpbnZva2VkIGZpcnN0KS4KKworICAtIGRvbid0IHNo
b3cgZGVzZWxlY3RlZCByZWFzb24gbGluZSBpZiB0aGVyZSBpcyBub25lCisKKyAgLSBweS50ZXN0
IC12diB3aWxsIHNob3cgYWxsIG9mIGFzc2VydCBjb21wYXJpc29ucyBpbnN0ZWFkIG9mIHRydW5j
YXRpbmcKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
Mi4zLjEucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4zLjEucnN0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmI3ODdkYzIwM2Y0NDI2Yzc3MDhjMzFhMGZjNGQ2NTdlYmEyNDI4ZWQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjMu
MS5yc3QKQEAgLTAsMCArMSwzOSBAQAorcHl0ZXN0LTIuMy4xOiBmaXggcmVncmVzc2lvbiB3aXRo
IGZhY3RvcnkgZnVuY3Rpb25zCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworcHl0ZXN0LTIuMy4xIGlz
IGEgcXVpY2sgZm9sbG93LXVwIHJlbGVhc2U6CisKKy0gZml4IGlzc3VlMjAyIC0gcmVncmVzc2lv
biB3aXRoIGZpeHR1cmUgZnVuY3Rpb25zL2Z1bmNhcmcgZmFjdG9yaWVzOiAgCisgIHVzaW5nICJz
ZWxmIiBpcyBub3cgc2FmZSBhZ2FpbiBhbmQgd29ya3MgYXMgaW4gMi4yLjQuICBUaGFua3MgCisg
IHRvIEVkdWFyZCBTY2hldHRpbm8gZm9yIHRoZSBxdWljayBidWcgcmVwb3J0LgorCistIGRpc2Fi
bGUgcGV4cGVjdCBweXRlc3Qgc2VsZiB0ZXN0cyBvbiBGcmVlYnNkIC0gdGhhbmtzIEtvb2IgZm9y
IHRoZSAKKyAgcXVpY2sgcmVwb3J0aW5nCisKKy0gZml4L2ltcHJvdmUgaW50ZXJhY3RpdmUgZG9j
cyB3aXRoIC0tbWFya2VycworCitTZWUgCisKKyAgICAgaHR0cDovL3B5dGVzdC5vcmcvCisKK2Zv
ciBnZW5lcmFsIGluZm9ybWF0aW9uLiAgVG8gaW5zdGFsbCBvciB1cGdyYWRlIHB5dGVzdDoKKwor
ICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdCAjIG9yCisgICAgZWFzeV9pbnN0YWxsIC1VIHB5dGVz
dAorCitiZXN0LAoraG9sZ2VyIGtyZWtlbAorCisKK0NoYW5nZXMgYmV0d2VlbiAyLjMuMCBhbmQg
Mi4zLjEKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gZml4IGlzc3Vl
MjAyIC0gZml4IHJlZ3Jlc3Npb246IHVzaW5nICJzZWxmIiBmcm9tIGZpeHR1cmUgZnVuY3Rpb25z
IG5vdworICB3b3JrcyBhcyBleHBlY3RlZCAoaXQncyB0aGUgc2FtZSAic2VsZiIgaW5zdGFuY2Ug
dGhhdCBhIHRlc3QgbWV0aG9kCisgIHdoaWNoIHVzZXMgdGhlIGZpeHR1cmUgc2VlcykKKworLSBz
a2lwIHBleHBlY3QgdXNpbmcgdGVzdHMgKHRlc3RfcGRiLnB5IG1vc3RseSkgb24gZnJlZWJzZCog
c3lzdGVtcworICBkdWUgdG8gcGV4cGVjdCBub3Qgc3VwcG9ydGluZyBpdCBwcm9wZXJseSAoaGFu
Z2luZykKKworLSBsaW5rIHRvIHdlYiBwYWdlcyBmcm9tIC0tbWFya2VycyBvdXRwdXQgd2hpY2gg
cHJvdmlkZXMgaGVscCBmb3IKKyAgcHl0ZXN0Lm1hcmsuKiB1c2FnZS4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMy4yLnJzdCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMy4yLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NTMxMmI0Mjlj
ZGQ3NDY4MzBhMmU1YzdjZDc1OTkxMmE4ODQ2ODM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4zLjIucnN0CkBAIC0wLDAgKzEsNTcgQEAK
K3B5dGVzdC0yLjMuMjogc29tZSBmaXhlcyBhbmQgbW9yZSB0cmFjZWJhY2stcHJpbnRpbmcgc3Bl
ZWQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QtMi4zLjIgaXMgYW5vdGhlciBzdGFiaWxp
emF0aW9uIHJlbGVhc2U6CisKKy0gaXNzdWUgMjA1OiBmaXhlcyBhIHJlZ3Jlc3Npb24gd2l0aCBj
b25mdGVzdCBkZXRlY3Rpb24KKy0gaXNzdWUgMjA4LzI5OiBmaXhlcyB0cmFjZWJhY2stcHJpbnRp
bmcgc3BlZWQgaW4gc29tZSBiYWQgY2FzZXMKKy0gZml4IHRlYXJkb3duLW9yZGVyaW5nIGZvciBw
YXJhbWV0cml6ZWQgc2V0dXBzCistIGZpeCB1bml0dGVzdCBhbmQgdHJpYWwgY29tcGF0IGJlaGF2
aW91ciB3aXRoIHJlc3BlY3QgIHRvIHJ1blRlc3QoKSBtZXRob2RzCistIGlzc3VlIDIwNiBhbmQg
b3RoZXJzOiBzb21lIGltcHJvdmVtZW50cyB0byBwYWNrYWdpbmcKKy0gZml4IGlzc3VlMTI3IGFu
ZCBvdGhlcnM6IGltcHJvdmUgc29tZSBkb2NzIAorCitTZWUgCisKKyAgICAgaHR0cDovL3B5dGVz
dC5vcmcvCisKK2ZvciBnZW5lcmFsIGluZm9ybWF0aW9uLiAgVG8gaW5zdGFsbCBvciB1cGdyYWRl
IHB5dGVzdDoKKworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdCAjIG9yCisgICAgZWFzeV9pbnN0
YWxsIC1VIHB5dGVzdAorCitiZXN0LAoraG9sZ2VyIGtyZWtlbAorCisKK0NoYW5nZXMgYmV0d2Vl
biAyLjMuMSBhbmQgMi4zLjIKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
Ky0gZml4IGlzc3VlMjA4IGFuZCBmaXggaXNzdWUyOSB1c2UgbmV3IHB5IHZlcnNpb24gdG8gYXZv
aWQgbG9uZyBwYXVzZXMgCisgIHdoZW4gcHJpbnRpbmcgdHJhY2ViYWNrcyBpbiBsb25nIG1vZHVs
ZXMKKworLSBmaXggaXNzdWUyMDUgLSBjb25mdGVzdHMgaW4gc3ViZGlycyBjdXN0b21pemluZwor
ICBweXRlc3RfcHljb2xsZWN0X21ha2Vtb2R1bGUgYW5kIHB5dGVzdF9weWNvbGxlY3RfbWFrZWl0
ZW0KKyAgbm93IHdvcmsgcHJvcGVybHkKKworLSBmaXggdGVhcmRvd24tb3JkZXJpbmcgZm9yIHBh
cmFtZXRyaXplZCBzZXR1cHMKKworLSBmaXggaXNzdWUxMjcgLSBiZXR0ZXIgZG9jdW1lbnRhdGlv
biBmb3IgcHl0ZXN0X2FkZG9wdGlvbgorICBhbmQgcmVsYXRlZCBvYmplY3RzLgorCistIGZpeCB1
bml0dGVzdCBiZWhhdmlvdXI6IFRlc3RDYXNlLnJ1bnRlc3Qgb25seSBjYWxsZWQgaWYgdGhlcmUg
YXJlCisgIHRlc3QgbWV0aG9kcyBkZWZpbmVkCisKKy0gaW1wcm92ZSB0cmlhbCBzdXBwb3J0OiBk
b24ndCBjb2xsZWN0IGl0cyBlbXB0eQorICB1bml0dGVzdC5UZXN0Q2FzZS5ydW5UZXN0KCkgbWV0
aG9kCisKKy0gInB5dGhvbiBzZXR1cC5weSB0ZXN0IiBub3cgd29ya3Mgd2l0aCBweXRlc3QgaXRz
ZWxmCisKKy0gZml4L2ltcHJvdmUgaW50ZXJuYWwvcGFja2FnaW5nIHJlbGF0ZWQgYml0czoKKwor
ICAtIGV4Y2VwdGlvbiBtZXNzYWdlIGNoZWNrIG9mIHRlc3Rfbm9zZS5weSBub3cgcGFzc2VzIG9u
IHB5dGhvbjMzIGFzIHdlbGwKKworICAtIGlzc3VlMjA2IC0gZml4IHRlc3RfYXNzZXJ0cmV3cml0
ZS5weSB0byB3b3JrIHdoZW4gYSBnbG9iYWwKKyAgICBQWVRIT05ET05UV1JJVEVCWVRFQ09ERT0x
IGlzIHByZXNlbnQKKworICAtIGFkZCB0b3guaW5pIHRvIHB5dGVzdCBkaXN0cmlidXRpb24gc28g
dGhhdCBpZ25vcmUtZGlycyBhbmQgb3RoZXJzIGNvbmZpZworICAgIGJpdHMgYXJlIHByb3Blcmx5
IGRpc3RyaWJ1dGVkIGZvciBtYWludGFpbmVycyB3aG8gcnVuIHB5dGVzdC1vd24gdGVzdHMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMy4zLnJzdCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMy4zLnJzdApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zYTQ4YjZhYzRiYWY5MTk1OGQ2NjU5NTkxYjRlM2FjYTVjZThlZjcyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4zLjMucnN0CkBAIC0w
LDAgKzEsNjIgQEAKK3B5dGVzdC0yLjMuMzogaW50ZWdyYXRpb24gZml4ZXMsIHB5MjQgc3VwcG9y
dCwgYGAqLyoqYGAgc2hvd24gaW4gdHJhY2ViYWNrCis9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworcHl0
ZXN0LTIuMy4zIGlzIGFub3RoZXIgc3RhYmlsaXphdGlvbiByZWxlYXNlIG9mIHRoZSBweS50ZXN0
IHRvb2wKK3doaWNoIG9mZmVycyB1ZWJlcnNpbXBsZSBhc3NlcnRpb25zLCBzY2FsYWJsZSBmaXh0
dXJlIG1lY2hhbmlzbXMKK2FuZCBkZWVwIGN1c3RvbWl6YXRpb24gZm9yIHRlc3Rpbmcgd2l0aCBQ
eXRob24uICBQYXJ0aWN1bGFybHksCit0aGlzIHJlbGVhc2UgcHJvdmlkZXM6CisKKy0gaW50ZWdy
YXRpb24gZml4ZXMgYW5kIGltcHJvdmVtZW50cyByZWxhdGVkIHRvIGZsYXNrLCBudW1weSwgbm9z
ZSwgCisgIHVuaXR0ZXN0LCBtb2NrCisKKy0gbWFrZXMgcHl0ZXN0IHdvcmsgb24gcHkyNCBhZ2Fp
biAoeWVzLCBwZW9wbGUgc29tZXRpbWVzIHN0aWxsIG5lZWQgdG8gdXNlIGl0KQorCistIHNob3cg
YGAqLCoqYGAgYXJncyBpbiBweXRlc3QgdHJhY2ViYWNrcworCitUaGFua3MgdG8gTWFudWVsIEph
Y29iLCBUaG9tYXMgV2FsZG1hbm4sIFJvbm55IFBmYW5uc2NobWlkdCwgUGF2ZWwgUmVwaW4KK2Fu
ZCBBbmRyZWFzIFRhdW1vZWZvbGF1IGZvciBwcm92aWRpbmcgcGF0Y2hlcyBhbmQgYWxsIGZvciB0
aGUgaXNzdWVzLgorCitTZWUgCisKKyAgICAgaHR0cDovL3B5dGVzdC5vcmcvCisKK2ZvciBnZW5l
cmFsIGluZm9ybWF0aW9uLiAgVG8gaW5zdGFsbCBvciB1cGdyYWRlIHB5dGVzdDoKKworICAgIHBp
cCBpbnN0YWxsIC1VIHB5dGVzdCAjIG9yCisgICAgZWFzeV9pbnN0YWxsIC1VIHB5dGVzdAorCiti
ZXN0LAoraG9sZ2VyIGtyZWtlbAorCitDaGFuZ2VzIGJldHdlZW4gMi4zLjIgYW5kIDIuMy4zCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGZpeCBpc3N1ZTIxNCAtIHBh
cnNlIG1vZHVsZXMgdGhhdCBjb250YWluIHNwZWNpYWwgb2JqZWN0cyBsaWtlIGUuIGcuCisgIGZs
YXNrJ3MgcmVxdWVzdCBvYmplY3Qgd2hpY2ggYmxvd3MgdXAgb24gZ2V0YXR0ciBhY2Nlc3MgaWYg
bm8gcmVxdWVzdAorICBpcyBhY3RpdmUuIHRoYW5rcyBUaG9tYXMgV2FsZG1hbm4uCisKKy0gZml4
IGlzc3VlMjEzIC0gYWxsb3cgdG8gcGFyYW1ldHJpemUgd2l0aCB2YWx1ZXMgbGlrZSBudW1weSBh
cnJheXMgdGhhdAorICBkbyBub3Qgc3VwcG9ydCBhbiBfX2VxX18gb3BlcmF0b3IKKworLSBmaXgg
aXNzdWUyMTUgLSBzcGxpdCB0ZXN0X3B5dGhvbi5vcmcgaW50byBtdWx0aXBsZSBmaWxlcworCist
IGZpeCBpc3N1ZTE0OCAtIEB1bml0dGVzdC5za2lwIG9uIGNsYXNzZXMgaXMgbm93IHJlY29nbml6
ZWQgYW5kIGF2b2lkcworICBjYWxsaW5nIHNldFVwQ2xhc3MvdGVhckRvd25DbGFzcywgdGhhbmtz
IFBhdmVsIFJlcGluCisKKy0gZml4IGlzc3VlMjA5IC0gcmVpbnRyb2R1Y2UgcHl0aG9uMi40IHN1
cHBvcnQgYnkgZGVwZW5kaW5nIG9uIG5ld2VyCisgIHB5bGliIHdoaWNoIHJlLWludHJvZHVjZWQg
c3RhdGVtZW50LWZpbmRpbmcgZm9yIHByZS1BU1QgaW50ZXJwcmV0ZXJzCisKKy0gbm9zZSBzdXBw
b3J0OiBvbmx5IGNhbGwgc2V0dXAgaWYgaXQncyBhIGNhbGxhYmxlLCB0aGFua3MgQW5kcmV3Cisg
IFRhdW1vZWZvbGF1CisKKy0gZml4IGlzc3VlMjE5IC0gYWRkIHB5Mi40LTMuMyBjbGFzc2lmaWVy
cyB0byBUUk9WRSBsaXN0CisKKy0gaW4gdHJhY2ViYWNrcyAqLCoqIGFyZyB2YWx1ZXMgYXJlIG5v
dyBzaG93biBuZXh0IHRvIG5vcm1hbCBhcmd1bWVudHMKKyAgKHRoYW5rcyBNYW51ZWwgSmFjb2Ip
CisKKy0gZml4IGlzc3VlMjE3IC0gc3VwcG9ydCBtb2NrLnBhdGNoIHdpdGggcHl0ZXN0J3MgZml4
dHVyZXMgLSBub3RlIHRoYXQKKyAgeW91IG5lZWQgZWl0aGVyIG1vY2stMS4wLjEgb3IgdGhlIHB5
dGhvbjMuMyBidWlsdGluIHVuaXR0ZXN0Lm1vY2suCisKKy0gZml4IGlzc3VlMTI3IC0gaW1wcm92
ZSBkb2N1bWVudGF0aW9uIGZvciBweXRlc3RfYWRkb3B0aW9uKCkgYW5kCisgIGFkZCBhIGBgY29u
ZmlnLmdldG9wdGlvbihuYW1lKWBgIGhlbHBlciBmdW5jdGlvbiBmb3IgY29uc2lzdGVuY3kuCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMy40LnJz
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMy40LnJzdApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kNmM1OTdiNTQ4OTA5NDllMWQ0MGRlYWU0YmRiMzZlOWJjNjFjZDZlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4zLjQucnN0CkBA
IC0wLDAgKzEsMzkgQEAKK3B5dGVzdC0yLjMuNDogc3RhYmlsaXphdGlvbiwgbW9yZSBmbGV4aWJs
ZSBzZWxlY3Rpb24gdmlhICItayBleHByIgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdC0y
LjMuNCBpcyBhIHNtYWxsIHN0YWJpbGl6YXRpb24gcmVsZWFzZSBvZiB0aGUgcHkudGVzdCB0b29s
Cit3aGljaCBvZmZlcnMgdWViZXJzaW1wbGUgYXNzZXJ0aW9ucywgc2NhbGFibGUgZml4dHVyZSBt
ZWNoYW5pc21zCithbmQgZGVlcCBjdXN0b21pemF0aW9uIGZvciB0ZXN0aW5nIHdpdGggUHl0aG9u
LiAgVGhpcyByZWxlYXNlCitjb21lcyB3aXRoIHRoZSBmb2xsb3dpbmcgZml4ZXMgYW5kIGZlYXR1
cmVzOgorCistIG1ha2UgIi1rIiBvcHRpb24gYWNjZXB0IGFuIGV4cHJlc3Npb25zIHRoZSBzYW1l
IGFzIHdpdGggIi1tIiBzbyB0aGF0IG9uZQorICBjYW4gd3JpdGU6IC1rICJuYW1lMSBvciBuYW1l
MiIgZXRjLiAgVGhpcyBpcyBhIHNsaWdodCB1c2FnZSBpbmNvbXBhdGliaWxpdHkKKyAgaWYgeW91
IHVzZWQgc3BlY2lhbCBzeW50YXggbGlrZSAiVGVzdENsYXNzLnRlc3RfbWV0aG9kIiB3aGljaCB5
b3Ugbm93CisgIG5lZWQgdG8gd3JpdGUgYXMgLWsgIlRlc3RDbGFzcyBhbmQgdGVzdF9tZXRob2Qi
IHRvIG1hdGNoIGEgY2VydGFpbgorICBtZXRob2QgaW4gYSBjZXJ0YWluIHRlc3QgY2xhc3MuICAK
Ky0gYWxsb3cgdG8gZHluYW1pY2FsbHkgZGVmaW5lIG1hcmtlcnMgdmlhCisgIGl0ZW0ua2V5d29y
ZHNbLi4uXT1hc3NpZ25tZW50IGludGVncmF0aW5nIHdpdGggIi1tIiBvcHRpb24KKy0geWllbGRl
ZCB0ZXN0IGZ1bmN0aW9ucyB3aWxsIG5vdyBoYXZlIGF1dG91c2UtZml4dHVyZXMgYWN0aXZlIGJ1
dCAKKyAgY2Fubm90IGFjY2VwdCBmaXh0dXJlcyBhcyBmdW5jYXJncyAtIGl0J3MgYW55d2F5IHJl
Y29tbWVuZGVkIHRvCisgIHJhdGhlciB1c2UgdGhlIHBvc3QtMi4wIHBhcmFtZXRyaXplIGZlYXR1
cmVzIGluc3RlYWQgb2YgeWllbGQsIHNlZToKKyAgaHR0cDovL3B5dGVzdC5vcmcvbGF0ZXN0L2V4
YW1wbGUvcGFyYW1ldHJpemUuaHRtbAorLSBmaXggYXV0b3VzZS1pc3N1ZSB3aGVyZSBhdXRvdXNl
LWZpeHR1cmVzIHdvdWxkIG5vdCBiZSBkaXNjb3ZlcmVkCisgIGlmIGRlZmluZWQgaW4gYSBhL2Nv
bmZ0ZXN0LnB5IGZpbGUgYW5kIHRlc3RzIGluIGEvdGVzdHMvdGVzdF9zb21lLnB5CistIGZpeCBp
c3N1ZTIyNiAtIExJRk8gb3JkZXJpbmcgZm9yIGZpeHR1cmUgdGVhcmRvd25zCistIGZpeCBpc3N1
ZTIyNCAtIGludm9jYXRpb25zIHdpdGggPjI1NiBjaGFyIGFyZ3VtZW50cyBub3cgd29yaworLSBm
aXggaXNzdWU5MSAtIGFkZC9kaXNjdXNzIHBhY2thZ2UvZGlyZWN0b3J5IGxldmVsIHNldHVwcyBp
biBleGFtcGxlCistIGZpeGVzIHJlbGF0ZWQgdG8gYXV0b3VzZSBkaXNjb3ZlcnkgYW5kIGNhbGxp
bmcKKworVGhhbmtzIGluIHBhcnRpY3VsYXIgdG8gVGhvbWFzIFdhbGRtYW5uIGZvciBzcG90dGlu
ZyBhbmQgcmVwb3J0aW5nIGlzc3Vlcy4KKworU2VlIAorCisgICAgIGh0dHA6Ly9weXRlc3Qub3Jn
LworCitmb3IgZ2VuZXJhbCBpbmZvcm1hdGlvbi4gIFRvIGluc3RhbGwgb3IgdXBncmFkZSBweXRl
c3Q6CisKKyAgICBwaXAgaW5zdGFsbCAtVSBweXRlc3QgIyBvcgorICAgIGVhc3lfaW5zdGFsbCAt
VSBweXRlc3QKKworYmVzdCwKK2hvbGdlciBrcmVrZWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMy41LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9h
bm5vdW5jZS9yZWxlYXNlLTIuMy41LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMTIzOTllZjNjYTdlOTE0Yjkz
ZTRjNmIzOGU4ZTMxNjAyY2YzMzIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Fubm91bmNlL3JlbGVhc2UtMi4zLjUucnN0CkBAIC0wLDAgKzEsOTcgQEAKK3B5dGVzdC0y
LjMuNTogYnVnIGZpeGVzIGFuZCBsaXR0bGUgaW1wcm92ZW1lbnRzCis9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKworcHl0ZXN0LTIuMy41IGlzIGEgbWFpbnRlbmFuY2UgcmVsZWFzZSB3aXRoIG1hbnkgYnVn
IGZpeGVzIGFuZCBsaXR0bGUKK2ltcHJvdmVtZW50cy4gIFNlZSB0aGUgY2hhbmdlbG9nIGJlbG93
IGZvciBkZXRhaWxzLiAgTm8gYmFja3dhcmQKK2NvbXBhdGliaWxpdHkgaXNzdWVzIGFyZSBmb3Jl
c2VlbiBhbmQgYWxsIHBsdWdpbnMgd2hpY2ggd29ya2VkIHdpdGggdGhlCitwcmlvciB2ZXJzaW9u
IGFyZSBleHBlY3RlZCB0byB3b3JrIHVubW9kaWZpZWQuICAgU3BlYWtpbmcgb2Ygd2hpY2gsIGEK
K2ZldyBpbnRlcmVzdGluZyBuZXcgcGx1Z2lucyBzYXcgdGhlIGxpZ2h0IGxhc3QgbW9udGg6CisK
Ky0gcHl0ZXN0LWluc3RhZmFpbDogc2hvdyBmYWlsdXJlIGluZm9ybWF0aW9uIHdoaWxlIHRlc3Rz
IGFyZSBydW5uaW5nCistIHB5dGVzdC1xdDogdGVzdGluZyBvZiBHVUkgYXBwbGljYXRpb25zIHdy
aXR0ZW4gd2l0aCBRVC9QeXNpZGUKKy0gcHl0ZXN0LXhwcm9jZXNzOiBtYW5hZ2luZyBleHRlcm5h
bCBwcm9jZXNzZXMgYWNyb3NzIHRlc3QgcnVucworLSBweXRlc3QtcmFuZG9tOiByYW5kb21pemUg
dGVzdCBvcmRlcmluZworCitBbmQgc2V2ZXJhbCBvdGhlcnMgbGlrZSBweXRlc3QtZGphbmdvIHNh
dyBtYWludGVuYW5jZSByZWxlYXNlcy4KK0ZvciBhIG1vcmUgY29tcGxldGUgbGlzdCwgY2hlY2sg
b3V0IAoraHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaT8lM0FhY3Rpb249c2VhcmNoJnRlcm09
cHl0ZXN0JnN1Ym1pdD1zZWFyY2guCisKK0ZvciBnZW5lcmFsIGluZm9ybWF0aW9uIHNlZToKKwor
ICAgICBodHRwOi8vcHl0ZXN0Lm9yZy8KKworVG8gaW5zdGFsbCBvciB1cGdyYWRlIHB5dGVzdDoK
KworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdCAjIG9yCisgICAgZWFzeV9pbnN0YWxsIC1VIHB5
dGVzdAorCitQYXJ0aWN1bGFyIHRoYW5rcyB0byBGbG9yaXMsIFJvbm55LCBCZW5qYW1pbiBhbmQg
dGhlIG1hbnkgYnVnIHJlcG9ydGVycworYW5kIGZpeCBwcm92aWRlcnMuCisKK21heSB0aGUgZml4
dHVyZXMgYmUgd2l0aCB5b3UsCitob2xnZXIga3Jla2VsCisKKworQ2hhbmdlcyBiZXR3ZWVuIDIu
My40IGFuZCAyLjMuNQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBu
ZXZlciBjb25zaWRlciBhIGZpeHR1cmUgZnVuY3Rpb24gZm9yIHRlc3QgZnVuY3Rpb24gY29sbGVj
dGlvbgorCistIGFsbG93IHJlLXJ1bm5pbmcgb2YgdGVzdCBpdGVtcyAvIGhlbHBzIHRvIGZpeCBw
eXRlc3QtcmVydW50ZXN0cyBwbHVnaW4KKyAgYW5kIGFsc28gaGVscCB0byBrZWVwIGxlc3MgZml4
dHVyZS9yZXNvdXJjZSByZWZlcmVuY2VzIGFsaXZlCisKKy0gcHV0IGNhcHR1cmVkIHN0ZG91dC9z
dGRlcnIgaW50byBqdW5pdHhtbCBvdXRwdXQgZXZlbiBmb3IgcGFzc2luZyB0ZXN0cworICAodGhh
bmtzIEFkYW0gR291Y2hlcikKKworLSBJc3N1ZSAyNjUgLSBpbnRlZ3JhdGUgbm9zZSBzZXR1cC90
ZWFyZG93biB3aXRoIHNldHVwc3RhdGUKKyAgc28gaXQgZG9lc24ndCB0cnkgdG8gdGVhcmRvd24g
aWYgaXQgZGlkIG5vdCBzZXR1cAorCistIGlzc3VlIDI3MSAtIGRvbid0IHdyaXRlIGp1bml0eG1s
IG9uIHNsYXZlIG5vZGVzCisKKy0gSXNzdWUgMjc0IC0gZG9uJ3QgdHJ5IHRvIHNob3cgZnVsbCBk
b2N0ZXN0IGV4YW1wbGUKKyAgd2hlbiBkb2N0ZXN0IGRvZXMgbm90IGtub3cgdGhlIGV4YW1wbGUg
bG9jYXRpb24KKworLSBpc3N1ZSAyODAgLSBkaXNhYmxlIGFzc2VydGlvbiByZXdyaXRpbmcgb24g
YnVnZ3kgQ1B5dGhvbiAyLjYuMAorCistIGluamVjdCAiZ2V0Zml4dHVyZSgpIiBoZWxwZXIgdG8g
cmV0cmlldmUgZml4dHVyZXMgZnJvbSBkb2N0ZXN0cywKKyAgdGhhbmtzIEFuZHJlYXMgWmVpZGxl
cgorCistIGlzc3VlIDI1OSAtIHdoZW4gYXNzZXJ0aW9uIHJld3JpdGluZywgYmUgY29uc2lzdGVu
dCB3aXRoIHRoZSBkZWZhdWx0CisgIHNvdXJjZSBlbmNvZGluZyBvZiBBU0NJSSBvbiBQeXRob24g
MgorCistIGlzc3VlIDI1MSAtIHJlcG9ydCBhIHNraXAgaW5zdGVhZCBvZiBpZ25vcmluZyBjbGFz
c2VzIHdpdGggaW5pdAorCistIGlzc3VlMjUwIHVuaWNvZGUvc3RyIG1peGVzIGluIHBhcmFtZXRy
aXphdGlvbiBuYW1lcyBhbmQgdmFsdWVzIG5vdyB3b3JrcworCistIGlzc3VlMjU3LCBhc3NlcnRp
b24tdHJpZ2dlcmVkIGNvbXBpbGF0aW9uIG9mIHNvdXJjZSBlbmRpbmcgaW4gYQorICBjb21tZW50
IGxpbmUgZG9lc24ndCBibG93IHVwIGluIHB5dGhvbjIuNSAoZml4ZWQgdGhyb3VnaCBweT49MS40
LjEzLmRldjYpCisKKy0gZml4IC0tZ2Vuc2NyaXB0IG9wdGlvbiB0byBnZW5lcmF0ZSBzdGFuZGFs
b25lIHNjcmlwdHMgdGhhdCBhbHNvCisgIHdvcmsgd2l0aCBweXRob24zLjMgKGltcG9ydGVyIG9y
ZGVyaW5nKQorCistIGlzc3VlMTcxIC0gaW4gYXNzZXJ0aW9uIHJld3JpdGluZywgc2hvdyB0aGUg
cmVwciBvZiBzb21lCisgIGdsb2JhbCB2YXJpYWJsZXMKKworLSBmaXggb3B0aW9uIGhlbHAgZm9y
ICItayIKKworLSBtb3ZlIGxvbmcgZGVzY3JpcHRpb24gb2YgZGlzdHJpYnV0aW9uIGludG8gUkVB
RE1FLnJzdAorCistIGltcHJvdmUgZG9jc3RyaW5nIGZvciBtZXRhZnVuYy5wYXJhbWV0cml6ZSgp
CisKKy0gZml4IGJ1ZyB3aGVyZSB1c2luZyBjYXBzeXMgd2l0aCBweXRlc3Quc2V0X3RyYWNlKCkg
aW4gYSB0ZXN0CisgIGZ1bmN0aW9uIHdvdWxkIGJyZWFrIHdoZW4gbG9va2luZyBhdCBjYXBzeXMu
cmVhZG91dGVycigpCisKKy0gYWxsb3cgdG8gc3BlY2lmeSBwcmVmaXhlcyBzdGFydGluZyB3aXRo
ICJfIiB3aGVuIAorICBjdXN0b21pemluZyBweXRob25fZnVuY3Rpb25zIHRlc3QgZGlzY292ZXJ5
LiAodGhhbmtzIEdyYWhhbSBIb3JsZXIpCisKKy0gaW1wcm92ZSBQWVRFU1RfREVCVUcgdHJhY2lu
ZyBvdXRwdXQgYnkgcHV0dGluZworICBleHRyYSBkYXRhIG9uIGEgbmV3IGxpbmVzIHdpdGggYWRk
aXRpb25hbCBpbmRlbnQKKworLSBlbnN1cmUgT3V0Y29tZUV4Y2VwdGlvbnMgbGlrZSBza2lwL2Zh
aWwgaGF2ZSBpbml0aWFsaXplZCBleGNlcHRpb24gYXR0cmlidXRlcworCistIGlzc3VlIDI2MCAt
IGRvbid0IHVzZSBub3NlIHNwZWNpYWwgc2V0dXAgb24gcGxhaW4gdW5pdHRlc3QgY2FzZXMKKwor
LSBmaXggaXNzdWUxMzQgLSBwcmludCB0aGUgY29sbGVjdCBlcnJvcnMgdGhhdCBwcmV2ZW50IHJ1
bm5pbmcgc3BlY2lmaWVkIHRlc3QgaXRlbXMKKworLSBmaXggaXNzdWUyNjYgLSBhY2NlcHQgdW5p
Y29kZSBpbiBNYXJrRXZhbHVhdG9yIGV4cHJlc3Npb25zCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNC4wLnJzdCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9hbm5vdW5jZS9yZWxlYXNlLTIuNC4wLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZTNhYWVkYjA5ZmY3ZjZj
ZWFlZGUyNDdhNjBmOTcxNGQ2MGQ0ZWVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi40LjAucnN0CkBAIC0wLDAgKzEsMjI1IEBACitweXRl
c3QtMi40LjA6IG5ldyBmaXh0dXJlIGZlYXR1cmVzL2hvb2tzIGFuZCBidWcgZml4ZXMKKz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorCitUaGUganVzdCByZWxlYXNlZCBweXRlc3QtMi40LjAgYnJpbmdzIG1h
bnkgaW1wcm92ZW1lbnRzIGFuZCBudW1lcm91cyAKK2J1ZyBmaXhlcyB3aGlsZSByZW1haW5pbmcg
cGx1Z2luLSBhbmQgdGVzdC1zdWl0ZSBjb21wYXRpYmxlIGFwYXJ0Citmcm9tIGEgZmV3IHN1cHBv
c2VkbHkgdmVyeSBtaW5vciBpbmNvbXBhdGliaWxpdGllcy4gIFNlZSBiZWxvdyBmb3IgCithIGZ1
bGwgbGlzdCBvZiBkZXRhaWxzLiAgQSBmZXcgZmVhdHVyZSBoaWdobGlnaHRzOgorCistIG5ldyB5
aWVsZC1zdHlsZSBmaXh0dXJlcyBgcHl0ZXN0LnlpZWxkX2ZpeHR1cmUKKyAgPGh0dHA6Ly9weXRl
c3Qub3JnL2xhdGVzdC95aWVsZGZpeHR1cmUuaHRtbD5gXywgYWxsb3dpbmcgdG8gdXNlCisgIGV4
aXN0aW5nIHdpdGgtc3R5bGUgY29udGV4dCBtYW5hZ2VycyBpbiBmaXh0dXJlIGZ1bmN0aW9ucy4K
KworLSBpbXByb3ZlZCBwZGIgc3VwcG9ydDogYGBpbXBvcnQgcGRiIDsgcGRiLnNldF90cmFjZSgp
YGAgbm93IHdvcmtzCisgIHdpdGhvdXQgcmVxdWlyaW5nIHByaW9yIGRpc2FibGluZyBvZiBzdGRv
dXQvc3RkZXJyIGNhcHR1cmluZy4KKyAgQWxzbyB0aGUgYGAtLXBkYmBgIG9wdGlvbnMgd29ya3Mg
bm93IG9uIGNvbGxlY3Rpb24gYW5kIGludGVybmFsIGVycm9ycworICBhbmQgd2UgaW50cm9kdWNl
ZCBhIG5ldyBleHBlcmltZW50YWwgaG9vayBmb3IgSURFcy9wbHVnaW5zIHRvIAorICBpbnRlcmNl
cHQgZGVidWdnaW5nOiBgYHB5dGVzdF9leGNlcHRpb25faW50ZXJhY3Qobm9kZSwgY2FsbCwgcmVw
b3J0KWBgLgorCistIHNob3J0ZXIgbW9ua2V5cGF0Y2ggdmFyaWFudCB0byBhbGxvdyBzcGVjaWZ5
aW5nIGFuIGltcG9ydCBwYXRoIGFzCisgIGEgdGFyZ2V0LCBmb3IgZXhhbXBsZTogYGBtb25rZXlw
YXRjaC5zZXRhdHRyKCJyZXF1ZXN0cy5nZXQiLCBteWZ1bmMpYGAKKworLSBiZXR0ZXIgdW5pdHRl
c3Qvbm9zZSBjb21wYXRpYmlsaXR5OiBhbGwgdGVhcmRvd24gbWV0aG9kcyBhcmUgbm93IG9ubHkK
KyAgY2FsbGVkIGlmIHRoZSBjb3JyZXNwb25kaW5nIHNldHVwIG1ldGhvZCBzdWNjZWVkZWQuCisK
Ky0gaW50ZWdyYXRlIHRhYi1jb21wbGV0aW9uIG9uIGNvbW1hbmQgbGluZSBvcHRpb25zIGlmIHlv
dQorICBoYXZlIGBhcmdjb21wbGV0ZSA8aHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL2FyZ2Nv
bXBsZXRlPmBfIAorICBjb25maWd1cmVkLgorCistIGFsbG93IGJvb2xlYW4gZXhwcmVzc2lvbiBk
aXJlY3RseSB3aXRoIHNraXBpZi94ZmFpbAorICBpZiBhICJyZWFzb24iIGlzIGFsc28gc3BlY2lm
aWVkLgorCistIGEgbmV3IGhvb2sgYGBweXRlc3RfbG9hZF9pbml0aWFsX2NvbmZ0ZXN0c2BgIGFs
bG93cyBwbHVnaW5zIGxpa2UKKyAgYHB5dGVzdC1kamFuZ28gPGh0dHA6Ly9weXBpLnB5dGhvbi5v
cmcvcHlwaS9weXRlc3QtZGphbmdvPmBfIHRvCisgIGluZmx1ZW5jZSB0aGUgZW52aXJvbm1lbnQg
YmVmb3JlIGNvbmZ0ZXN0IGZpbGVzIGltcG9ydCBgYGRqYW5nb2BgLgorCistIHJlcG9ydGluZzog
Y29sb3IgdGhlIGxhc3QgbGluZSByZWQgb3IgZ3JlZW4gZGVwZW5kaW5nIGlmCisgIGZhaWx1cmVz
L2Vycm9ycyBvY2N1cnJlZCBvciBldmVyeXRoaW5nIHBhc3NlZC4KKworVGhlIGRvY3VtZW50YXRp
b24gaGFzIGJlZW4gdXBkYXRlZCB0byBhY2NvbW1vZGF0ZSB0aGUgY2hhbmdlcywgCitzZWUgYGh0
dHA6Ly9weXRlc3Qub3JnIDxodHRwOi8vcHl0ZXN0Lm9yZz5gXyAKKworVG8gaW5zdGFsbCBvciB1
cGdyYWRlIHB5dGVzdDo6CisKKyAgICBwaXAgaW5zdGFsbCAtVSBweXRlc3QgIyBvcgorICAgIGVh
c3lfaW5zdGFsbCAtVSBweXRlc3QKKworCisqKk1hbnkgdGhhbmtzIHRvIGFsbCB3aG8gaGVscGVk
LCBpbmNsdWRpbmcgRmxvcmlzIEJydXlub29naGUsIAorQnJpYW5uYSBMYXVnaGVyLCBBbmRyZWFz
IFBlbG1lLCBBbnRob24gdmFuIGRlciBOZXV0LCBBbmF0b2x5IEJ1YmVua29mZiwgCitWbGFkaW1p
ciBLZWxlc2hldiwgTWF0aGlldSBBZ29waWFuLCBSb25ueSBQZmFubnNjaG1pZHQsIENocmlzdGlh
bgorVGhldW5lcnQgYW5kIG1hbnkgb3RoZXJzLioqCisKK21heSBwYXNzaW5nIHRlc3RzIGJlIHdp
dGggeW91LAorCitob2xnZXIga3Jla2VsCisKK0NoYW5nZXMgYmV0d2VlbiAyLjMuNSBhbmQgMi40
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitrbm93biBpbmNvbXBhdGli
aWxpdGllczoKKworLSBpZiBjYWxsaW5nIC0tZ2Vuc2NyaXB0IGZyb20gcHl0aG9uMi43IG9yIGFi
b3ZlLCB5b3Ugb25seSBnZXQgYQorICBzdGFuZGFsb25lIHNjcmlwdCB3aGljaCB3b3JrcyBvbiBw
eXRob24yLjcgb3IgYWJvdmUuICBVc2UgUHl0aG9uMi42CisgIHRvIGFsc28gZ2V0IGEgcHl0aG9u
Mi41IGNvbXBhdGlibGUgdmVyc2lvbi4KKworLSBhbGwgeHVuaXQtc3R5bGUgdGVhcmRvd24gbWV0
aG9kcyAobm9zZS1zdHlsZSwgcHl0ZXN0LXN0eWxlLAorICB1bml0dGVzdC1zdHlsZSkgd2lsbCBu
b3QgYmUgY2FsbGVkIGlmIHRoZSBjb3JyZXNwb25kaW5nIHNldHVwIG1ldGhvZCBmYWlsZWQsCisg
IHNlZSBpc3N1ZTMyMiBiZWxvdy4KKworLSB0aGUgcHl0ZXN0X3BsdWdpbl91bnJlZ2lzdGVyIGhv
b2sgd2Fzbid0IGV2ZXIgcHJvcGVybHkgY2FsbGVkCisgIGFuZCB0aGVyZSBpcyBubyBrbm93biBp
bXBsZW1lbnRhdGlvbiBvZiB0aGUgaG9vayAtIHNvIGl0IGdvdCByZW1vdmVkLgorCistIHB5dGVz
dC5maXh0dXJlLWRlY29yYXRlZCBmdW5jdGlvbnMgY2Fubm90IGJlIGdlbmVyYXRvcnMgKGkuZS4g
dXNlCisgIHlpZWxkKSBhbnltb3JlLiAgVGhpcyBjaGFuZ2UgbWlnaHQgYmUgcmV2ZXJzZWQgaW4g
Mi40LjEgaWYgaXQgY2F1c2VzCisgIHVuZm9yZXNlZW4gcmVhbC1saWZlIGlzc3Vlcy4gIEhvd2V2
ZXIsIHlvdSBjYW4gYWx3YXlzIHdyaXRlIGFuZCByZXR1cm4KKyAgYW4gaW5uZXIgZnVuY3Rpb24v
Z2VuZXJhdG9yIGFuZCBjaGFuZ2UgdGhlIGZpeHR1cmUgY29uc3VtZXIgdG8gaXRlcmF0ZQorICBv
dmVyIHRoZSByZXR1cm5lZCBnZW5lcmF0b3IuICBUaGlzIGNoYW5nZSB3YXMgZG9uZSBpbiBsaWV1
IG9mIHRoZSBuZXcKKyAgYGBweXRlc3QueWllbGRfZml4dHVyZWBgIGRlY29yYXRvciwgc2VlIGJl
bG93LgorCituZXcgZmVhdHVyZXM6CisKKy0gZXhwZXJpbWVudGFsbHkgaW50cm9kdWNlIGEgbmV3
IGBgcHl0ZXN0LnlpZWxkX2ZpeHR1cmVgYCBkZWNvcmF0b3IKKyAgd2hpY2ggYWNjZXB0cyBleGFj
dGx5IHRoZSBzYW1lIHBhcmFtZXRlcnMgYXMgcHl0ZXN0LmZpeHR1cmUgYnV0CisgIG1hbmRhdGVz
IGEgYGB5aWVsZGBgIHN0YXRlbWVudCBpbnN0ZWFkIG9mIGEgYGByZXR1cm4gc3RhdGVtZW50YGAg
ZnJvbQorICBmaXh0dXJlIGZ1bmN0aW9ucy4gIFRoaXMgYWxsb3dzIGRpcmVjdCBpbnRlZ3JhdGlv
biB3aXRoICJ3aXRoLXN0eWxlIgorICBjb250ZXh0IG1hbmFnZXJzIGluIGZpeHR1cmUgZnVuY3Rp
b25zIGFuZCBnZW5lcmFsbHkgYXZvaWRzIHJlZ2lzdGVyaW5nCisgIG9mIGZpbmFsaXphdGlvbiBj
YWxsYmFja3MgaW4gZmF2b3VyIG9mIHRyZWF0aW5nIHRoZSAiYWZ0ZXIteWllbGQiIGFzCisgIHRl
YXJkb3duIGNvZGUuICBUaGFua3MgQW5kcmVhcyBQZWxtZSwgVmxhZGltaXIgS2VsZXNoZXYsIEZs
b3JpcworICBCcnV5bm9vZ2hlLCBSb25ueSBQZmFubnNjaG1pZHQgYW5kIG1hbnkgb3RoZXJzIGZv
ciBkaXNjdXNzaW9ucy4KKworLSBhbGxvdyBib29sZWFuIGV4cHJlc3Npb24gZGlyZWN0bHkgd2l0
aCBza2lwaWYveGZhaWwKKyAgaWYgYSAicmVhc29uIiBpcyBhbHNvIHNwZWNpZmllZC4gIFJld29y
ayBza2lwcGluZyBkb2N1bWVudGF0aW9uCisgIHRvIHJlY29tbWVuZCAiY29uZGl0aW9uIGFzIGJv
b2xlYW5zIiBiZWNhdXNlIGl0IHByZXZlbnRzIHN1cnByaXNlcworICB3aGVuIGltcG9ydGluZyBt
YXJrZXJzIGJldHdlZW4gbW9kdWxlcy4gIFNwZWNpZnlpbmcgY29uZGl0aW9ucworICBhcyBzdHJp
bmdzIHdpbGwgcmVtYWluIGZ1bGx5IHN1cHBvcnRlZC4KKworLSByZXBvcnRpbmc6IGNvbG9yIHRo
ZSBsYXN0IGxpbmUgcmVkIG9yIGdyZWVuIGRlcGVuZGluZyBpZgorICBmYWlsdXJlcy9lcnJvcnMg
b2NjdXJyZWQgb3IgZXZlcnl0aGluZyBwYXNzZWQuICB0aGFua3MgQ2hyaXN0aWFuCisgIFRoZXVu
ZXJ0LgorCistIG1ha2UgImltcG9ydCBwZGIgOyBwZGIuc2V0X3RyYWNlKCkiIHdvcmsgbmF0aXZl
bHkgd3J0IGNhcHR1cmluZyAobm8KKyAgIi1zIiBuZWVkZWQgYW55bW9yZSksIG1ha2luZyBgYHB5
dGVzdC5zZXRfdHJhY2UoKWBgIGEgbWVyZSBzaG9ydGN1dC4KKworLSBmaXggaXNzdWUxODE6IC0t
cGRiIG5vdyBhbHNvIHdvcmtzIG9uIGNvbGxlY3QgZXJyb3JzIChhbmQgCisgIG9uIGludGVybmFs
IGVycm9ycykgLiAgVGhpcyB3YXMgaW1wbGVtZW50ZWQgYnkgYSBzbGlnaHQgaW50ZXJuYWwgCisg
IHJlZmFjdG9yaW5nIGFuZCB0aGUgaW50cm9kdWN0aW9uIG9mIGEgbmV3IGhvb2sgCisgIGBgcHl0
ZXN0X2V4Y2VwdGlvbl9pbnRlcmFjdGBgIGhvb2sgKHNlZSBuZXh0IGl0ZW0pLgorCistIGZpeCBp
c3N1ZTM0MTogaW50cm9kdWNlIG5ldyBleHBlcmltZW50YWwgaG9vayBmb3IgSURFcy90ZXJtaW5h
bHMgdG8gCisgIGludGVyY2VwdCBkZWJ1Z2dpbmc6IGBgcHl0ZXN0X2V4Y2VwdGlvbl9pbnRlcmFj
dChub2RlLCBjYWxsLCByZXBvcnQpYGAuCisKKy0gbmV3IG1vbmtleXBhdGNoLnNldGF0dHIoKSB2
YXJpYW50IHRvIHByb3ZpZGUgYSBzaG9ydGVyCisgIGludm9jYXRpb24gZm9yIHBhdGNoaW5nIG91
dCBjbGFzc2VzL2Z1bmN0aW9ucyBmcm9tIG1vZHVsZXM6CisKKyAgICAgbW9ua2V5cGF0Y2guc2V0
YXR0cigicmVxdWVzdHMuZ2V0IiwgbXlmdW5jKQorCisgIHdpbGwgcmVwbGFjZSB0aGUgImdldCIg
ZnVuY3Rpb24gb2YgdGhlICJyZXF1ZXN0cyIgbW9kdWxlIHdpdGggYGBteWZ1bmNgYC4KKworLSBm
aXggaXNzdWUzMjI6IHRlYXJEb3duQ2xhc3MgaXMgbm90IHJ1biBpZiBzZXRVcENsYXNzIGZhaWxl
ZC4gVGhhbmtzCisgIE1hdGhpZXUgQWdvcGlhbiBmb3IgdGhlIGluaXRpYWwgZml4LiAgQWxzbyBt
YWtlIGFsbCBvZiBweXRlc3Qvbm9zZQorICBmaW5hbGl6ZXIgbWltaWMgdGhlIHNhbWUgZ2VuZXJp
YyBiZWhhdmlvdXI6IGlmIGEgc2V0dXBYIGV4aXN0cyBhbmQKKyAgZmFpbHMsIGRvbid0IHJ1biB0
ZWFyZG93blguICBUaGlzIGludGVybmFsbHkgaW50cm9kdWNlcyBhIG5ldyBtZXRob2QKKyAgIm5v
ZGUuYWRkZmluYWxpemVyKCkiIGhlbHBlciB3aGljaCBjYW4gb25seSBiZSBjYWxsZWQgZHVyaW5n
IHRoZSBzZXR1cAorICBwaGFzZSBvZiBhIG5vZGUuCisKKy0gc2ltcGxpZnkgcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoKSBzaWduYXR1cmU6IGFsbG93IHRvIHBhc3MgYQorICBDU1Ytc2VwYXJhdGVk
IHN0cmluZyB0byBzcGVjaWZ5IGFyZ25hbWVzLiAgRm9yIGV4YW1wbGU6IAorICBgYHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCJpbnB1dCxleHBlY3RlZCIsICBbKDEsMiksICgyLDMpXSlgYAorICB3
b3JrcyBhcyB3ZWxsIGFzIHRoZSBwcmV2aW91czoKKyAgYGBweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgoImlucHV0IiwgImV4cGVjdGVkIiksIC4uLilgYC4KKworLSBhZGQgc3VwcG9ydCBmb3Igc2V0
VXBNb2R1bGUvdGVhckRvd25Nb2R1bGUgZGV0ZWN0aW9uLCB0aGFua3MgQnJpYW4gT2trZW4uCisK
Ky0gaW50ZWdyYXRlIHRhYi1jb21wbGV0aW9uIG9uIG9wdGlvbnMgdGhyb3VnaCB1c2Ugb2YgImFy
Z2NvbXBsZXRlIi4KKyAgVGhhbmtzIEFudGhvbiB2YW4gZGVyIE5ldXQgZm9yIHRoZSBQUi4KKwor
LSBjaGFuZ2Ugb3B0aW9uIG5hbWVzIHRvIGJlIGh5cGhlbi1zZXBhcmF0ZWQgbG9uZyBvcHRpb25z
IGJ1dCBrZWVwIHRoZQorICBvbGQgc3BlbGxpbmcgYmFja3dhcmQgY29tcGF0aWJsZS4gIHB5LnRl
c3QgLWggd2lsbCBvbmx5IHNob3cgdGhlCisgIGh5cGhlbmF0ZWQgdmVyc2lvbiwgZm9yIGV4YW1w
bGUgIi0tY29sbGVjdC1vbmx5IiBidXQgIi0tY29sbGVjdG9ubHkiCisgIHdpbGwgcmVtYWluIHZh
bGlkIGFzIHdlbGwgKGZvciBiYWNrd2FyZC1jb21wYXQgcmVhc29ucykuICBNYW55IHRoYW5rcyB0
bworICBBbnRob24gdmFuIGRlciBOZXV0IGZvciB0aGUgaW1wbGVtZW50YXRpb24gYW5kIHRvIEh5
bmVrIFNjaGxhd2FjayBmb3IKKyAgcHVzaGluZyB1cy4KKworLSBmaXggaXNzdWUgMzA4IC0gYWxs
b3cgdG8gbWFyay94ZmFpbC9za2lwIGluZGl2aWR1YWwgcGFyYW1ldGVyIHNldHMKKyAgd2hlbiBw
YXJhbWV0cml6aW5nLiAgVGhhbmtzIEJyaWFubmEgTGF1Z2hlci4KKworLSBjYWxsIG5ldyBleHBl
cmltZW50YWwgcHl0ZXN0X2xvYWRfaW5pdGlhbF9jb25mdGVzdHMgaG9vayB0byBhbGxvdworICAz
cmQgcGFydHkgcGx1Z2lucyB0byBkbyBzb21ldGhpbmcgYmVmb3JlIGEgY29uZnRlc3QgaXMgbG9h
ZGVkLgorCitCdWcgZml4ZXM6CisKKy0gZml4IGlzc3VlMzU4IC0gY2FwdHVyaW5nIG9wdGlvbnMg
YXJlIG5vdyBwYXJzZWQgbW9yZSBwcm9wZXJseSAKKyAgYnkgdXNpbmcgYSBuZXcgcGFyc2VyLnBh
cnNlX2tub3duX2FyZ3MgbWV0aG9kLgorCistIHB5dGVzdCBub3cgdXNlcyBhcmdwYXJzZSBpbnN0
ZWFkIG9mIG9wdHBhcnNlICh0aGFua3MgQW50aG9uKSB3aGljaCAKKyAgbWVhbnMgdGhhdCAiYXJn
cGFyc2UiIGlzIGFkZGVkIGFzIGEgZGVwZW5kZW5jeSBpZiBpbnN0YWxsaW5nIGludG8gcHl0aG9u
Mi42CisgIGVudmlyb25tZW50cyBvciBiZWxvdy4KKworLSBmaXggaXNzdWUzMzM6IGZpeCBhIGNh
c2Ugb2YgYmFkIHVuaXR0ZXN0L3B5dGVzdCBob29rIGludGVyYWN0aW9uLgorCistIFBSMjc6IGNv
cnJlY3RseSBoYW5kbGUgbm9zZS5Ta2lwVGVzdCBkdXJpbmcgY29sbGVjdGlvbi4gIFRoYW5rcwor
ICBBbnRvbmlvIEN1bmksIFJvbm55IFBmYW5uc2NobWlkdC4KKworLSBmaXggaXNzdWUzNTU6IGp1
bml0eG1sIHB1dHMgbmFtZT0icHl0ZXN0IiBhdHRyaWJ1dGUgdG8gdGVzdHN1aXRlIHRhZy4KKwor
LSBmaXggaXNzdWUzMzY6IGF1dG91c2UgZml4dHVyZSBpbiBwbHVnaW5zIHNob3VsZCB3b3JrIGFn
YWluLgorCistIGZpeCBpc3N1ZTI3OTogaW1wcm92ZSBvYmplY3QgY29tcGFyaXNvbnMgb24gYXNz
ZXJ0aW9uIGZhaWx1cmUKKyAgZm9yIHN0YW5kYXJkIGRhdGF0eXBlcyBhbmQgcmVjb2duaXNlIGNv
bGxlY3Rpb25zLmFiYy4gIFRoYW5rcyB0bworICBCcmlhbm5hIExhdWdoZXIgYW5kIE1hdGhpZXUg
QWdvcGlhbi4KKworLSBmaXggaXNzdWUzMTc6IGFzc2VydGlvbiByZXdyaXRlciBzdXBwb3J0IGZv
ciB0aGUgaXNfcGFja2FnZSBtZXRob2QKKworLSBmaXggaXNzdWUzMzU6IGRvY3VtZW50IHB5LmNv
ZGUuRXhjZXB0aW9uSW5mbygpIG9iamVjdCByZXR1cm5lZAorICBmcm9tIHB5dGVzdC5yYWlzZXMo
KSwgdGhhbmtzIE1hdGhpZXUgQWdvcGlhbi4KKworLSByZW1vdmUgaW1wbGljaXQgZGlzdHJpYnV0
ZV9zZXR1cCBzdXBwb3J0IGZyb20gc2V0dXAucHkuCisKKy0gZml4IGlzc3VlMzA1OiBpZ25vcmUg
YW55IHByb2JsZW1zIHdoZW4gd3JpdGluZyBweWMgZmlsZXMuCisKKy0gU08tMTc2NjQ3MDI6IGNh
bGwgZml4dHVyZSBmaW5hbGl6ZXJzIGV2ZW4gaWYgdGhlIGZpeHR1cmUgZnVuY3Rpb24KKyAgcGFy
dGlhbGx5IGZhaWxlZCAoZmluYWxpemVycyB3b3VsZCBub3QgYWx3YXlzIGJlIGNhbGxlZCBiZWZv
cmUpCisKKy0gZml4IGlzc3VlMzIwIC0gZml4IGNsYXNzIHNjb3BlIGZvciBmaXh0dXJlcyB3aGVu
IG1peGVkIHdpdGgKKyAgbW9kdWxlLWxldmVsIGZ1bmN0aW9ucy4gIFRoYW5rcyBBbmF0bG95IEJ1
YmVua29mZi4KKworLSB5b3UgY2FuIHNwZWNpZnkgIi1xIiBvciAiLXFxIiB0byBnZXQgZGlmZmVy
ZW50IGxldmVscyBvZiAicXVpZXRlciIKKyAgcmVwb3J0aW5nICh0aGFua3MgS2F0YXJ6eW5hIEph
Y2hpbSkKKworLSBmaXggaXNzdWUzMDAgLSBGaXggb3JkZXIgb2YgY29uZnRlc3QgbG9hZGluZyB3
aGVuIHN0YXJ0aW5nIHB5LnRlc3QKKyAgaW4gYSBzdWJkaXJlY3RvcnkuCisKKy0gZml4IGlzc3Vl
MzIzIC0gc29ydGluZyBvZiBtYW55IG1vZHVsZS1zY29wZWQgYXJnIHBhcmFtZXRyaXphdGlvbnMK
KworLSBtYWtlIHNlc3Npb25maW5pc2ggaG9va3MgZXhlY3V0ZSB3aXRoIHRoZSBzYW1lIGN3ZC1j
b250ZXh0IGFzIGF0CisgIHNlc3Npb24gc3RhcnQgKGhlbHBzIGZpeCBwbHVnaW4gYmVoYXZpb3Vy
IHdoaWNoIHdyaXRlIG91dHB1dCBmaWxlcyAKKyAgd2l0aCByZWxhdGl2ZSBwYXRoIHN1Y2ggYXMg
cHl0ZXN0LWNvdikKKworLSBmaXggaXNzdWUzMTYgLSBwcm9wZXJseSByZWZlcmVuY2UgY29sbGVj
dGlvbiBob29rcyBpbiBkb2NzCisKKy0gZml4IGlzc3VlIDMwNiAtIGNsZWFudXAgb2YgLWsvLW0g
b3B0aW9ucyB0byBvbmx5IG1hdGNoIG1hcmtlcnMvdGVzdAorICBuYW1lcy9rZXl3b3JkcyByZXNw
ZWN0aXZlbHkuICBUaGFua3MgV291dGVyIHZhbiBBY2tvb3kuCisKKy0gaW1wcm92ZWQgZG9jdGVz
dCBjb3VudGluZyBmb3IgZG9jdGVzdHMgaW4gcHl0aG9uIG1vZHVsZXMgLS0gCisgIGZpbGVzIHdp
dGhvdXQgYW55IGRvY3Rlc3QgaXRlbXMgd2lsbCBub3Qgc2hvdyB1cCBhbnltb3JlCisgIGFuZCBk
b2N0ZXN0IGV4YW1wbGVzIGFyZSBjb3VudGVkIGFzIHNlcGFyYXRlIHRlc3QgaXRlbXMuCisgIHRo
YW5rcyBEYW5pbG8gQmVsbGluaS4KKworLSBmaXggaXNzdWUyNDUgYnkgZGVwZW5kaW5nIG9uIHRo
ZSByZWxlYXNlZCBweS0xLjQuMTQKKyAgd2hpY2ggZml4ZXMgcHkuaW8uZHVwZmlsZSB0byB3b3Jr
IHdpdGggZmlsZXMgd2l0aCBubworICBtb2RlLiBUaGFua3MgSmFzb24gUi4gQ29vbWJzLgorCist
IGZpeCBqdW5pdHhtbCBnZW5lcmF0aW9uIHdoZW4gdGVzdCBvdXRwdXQgY29udGFpbnMgY29udHJv
bCBjaGFyYWN0ZXJzLAorICBhZGRyZXNzaW5nIGlzc3VlMjY3LCB0aGFua3MgSmFhcCBCcm9la2h1
aXplbiAKKworLSBmaXggaXNzdWUzMzg6IGhvbm9yIC0tdGIgc3R5bGUgZm9yIHNldHVwL3RlYXJk
b3duIGVycm9ycyBhcyB3ZWxsLiAgVGhhbmtzIE1haG8uCisKKy0gZml4IGlzc3VlMzA3IC0gdXNl
IHlhbWwuc2FmZV9sb2FkIGluIGV4YW1wbGUsIHRoYW5rcyBNYXJrIEVpY2hpbi4KKworLSBiZXR0
ZXIgcGFyYW1ldHJpemUgZXJyb3IgbWVzc2FnZXMsIHRoYW5rcyBCcmlhbm5hIExhdWdoZXIKKwor
LSBweXRlc3RfdGVybWluYWxfc3VtbWFyeSh0ZXJtaW5hbHJlcG9ydGVyKSBob29rcyBjYW4gbm93
IHVzZQorICAiLnNlY3Rpb24odGl0bGUpIiBhbmQgIi5saW5lKG1zZykiIG1ldGhvZHMgdG8gcHJp
bnQgZXh0cmEgCisgIGluZm9ybWF0aW9uIGF0IHRoZSBlbmQgb2YgYSB0ZXN0IHJ1bi4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi40LjEucnN0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi40LjEucnN0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY0YmExNzBmODk3NzI3YjgxNGJkMzQyYmVjZDU3ZjNjZTVjYWU5NjEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjQuMS5yc3QKQEAgLTAs
MCArMSwyNSBAQAorcHl0ZXN0LTIuNC4xOiBmaXhpbmcgdGhyZWUgcmVncmVzc2lvbnMgY29tcGFy
ZWQgdG8gMi4zLjUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QtMi40LjEgaXMgYSBxdWlj
ayBmb2xsb3cgdXAgcmVsZWFzZSB0byBmaXggdGhyZWUgcmVncmVzc2lvbnMKK2NvbXBhcmVkIHRv
IDIuMy41IGJlZm9yZSB0aGV5IGhpdCBtb3JlIHBlb3BsZToKKworLSBXaGVuIHVzaW5nIHBhcnNl
ci5hZGRvcHRpb24oKSB1bmljb2RlIGFyZ3VtZW50cyB0byB0aGUKKyAgInR5cGUiIGtleXdvcmQg
c2hvdWxkIGFsc28gYmUgY29udmVydGVkIHRvIHRoZSByZXNwZWN0aXZlIHR5cGVzLgorICB0aGFu
a3MgRmxvcmlzIEJydXlub29naGUsIEBkbm96YXkuIChmaXhlcyBpc3N1ZTM2MCBhbmQgaXNzdWUz
NjIpCisKKy0gZml4IGRvdHRlZCBmaWxlbmFtZSBjb21wbGV0aW9uIHdoZW4gdXNpbmcgYXJnY29t
cGxldGUgCisgIHRoYW5rcyBBbnRob24gdmFuIGRlciBOZXV0aC4gKGZpeGVzIGlzc3VlMzYxKQor
CistIGZpeCByZWdyZXNzaW9uIHdoZW4gYSAxLXR1cGxlICgiYXJnIiwpIGlzIHVzZWQgZm9yIHNw
ZWNpZnlpbmcKKyAgcGFyYW1ldHJpemF0aW9uICh0aGUgdmFsdWVzIG9mIHRoZSBwYXJhbWV0cml6
YXRpb24gd2VyZSBwYXNzZWQKKyAgbmVzdGVkIGluIGEgdHVwbGUpLiAgVGhhbmtzIERvbmFsZCBT
dHVmZnQuCisKKy0gYWxzbyBtZXJnZSBkb2MgdHlwbyBmaXhlcywgdGhhbmtzIEFuZHkgRGlybmJl
cmdlcgorCithcyB1c3VhbCwgZG9jcyBhdCBodHRwOi8vcHl0ZXN0Lm9yZyBhbmQgdXBncmFkZXMg
dmlhOjoKKworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdAorCitoYXZlIGZ1biwKK2hvbGdlciBr
cmVrZWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIu
NC4yLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNC4yLnJzdApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zYjRhYTk1YWJiY2M0ZGZjNWI0ZDBkNmZhMjdiYWE3ZWY0ODRhNjczCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi40LjIu
cnN0CkBAIC0wLDAgKzEsMzkgQEAKK3B5dGVzdC0yLjQuMjogY29sb3JhbWEgb24gd2luZG93cywg
cGx1Z2luL3RtcGRpciBmaXhlcworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdC0yLjQuMiBp
cyBhbm90aGVyIGJ1Zy1maXhpbmcgcmVsZWFzZToKKworLSBvbiBXaW5kb3dzIHJlcXVpcmUgY29s
b3JhbWEgYW5kIGEgbmV3ZXIgcHkgbGliIHNvIHRoYXQgcHkuaW8uVGVybWluYWxXcml0ZXIoKQor
ICBub3cgdXNlcyBjb2xvcmFtYSBpbnN0ZWFkIG9mIGl0cyBvd24gY3R5cGVzIGhhY2tzLiAoZml4
ZXMgaXNzdWUzNjUpCisgIHRoYW5rcyBQYXVsIE1vb3JlIGZvciBicmluZ2luZyBpdCB1cC4KKwor
LSBmaXggIi1rIiBtYXRjaGluZyBvZiB0ZXN0cyB3aGVyZSAicmVwciIgYW5kICJhdHRyIiBhbmQg
b3RoZXIgbmFtZXMgd291bGQKKyAgY2F1c2Ugd3JvbmcgbWF0Y2hlcyBiZWNhdXNlIG9mIGFuIGlu
dGVybmFsIGltcGxlbWVudGF0aW9uIHF1aXJrCisgIChkb24ndCBhc2spIHdoaWNoIGlzIG5vdyBw
cm9wZXJseSBpbXBsZW1lbnRlZC4gZml4ZXMgaXNzdWUzNDUuCisKKy0gYXZvaWQgdG1wZGlyIGZp
eHR1cmUgdG8gY3JlYXRlIHRvbyBsb25nIGZpbGVuYW1lcyBlc3BlY2lhbGx5CisgIHdoZW4gcGFy
YW1ldHJpemF0aW9uIGlzIHVzZWQgKGlzc3VlMzU0KQorCistIGZpeCBweXRlc3QtcGVwOCBhbmQg
cHl0ZXN0LWZsYWtlcyAvIHB5dGVzdCBpbnRlcmFjdGlvbnMKKyAgKGNvbGxlY3Rpb24gbmFtZXMg
aW4gbWFyayBwbHVnaW4gd2FzIGFzc3VtaW5nIGFuIGl0ZW0gYWx3YXlzCisgIGhhcyBhIGZ1bmN0
aW9uIHdoaWNoIGlzIG5vdCB0cnVlIGZvciB0aG9zZSBwbHVnaW5zIGV0Yy4pCisgIFRoYW5rcyBB
bmRpIFplaWRsZXIuCisKKy0gaW50cm9kdWNlIG5vZGUuZ2V0X21hcmtlci9ub2RlLmFkZF9tYXJr
ZXIgQVBJIGZvciBwbHVnaW5zCisgIGxpa2UgcHl0ZXN0LXBlcDggYW5kIHB5dGVzdC1mbGFrZXMg
dG8gYXZvaWQgdGhlIG1lc3N5CisgIGRldGFpbHMgb2YgdGhlIG5vZGUua2V5d29yZHMgIHBzZXVk
by1kaWN0cy4gIEFkYXB0ZWQKKyAgZG9jcy4KKworLSByZW1vdmUgYXR0ZW1wdCB0byAiZHVwIiBz
dGRvdXQgYXQgc3RhcnR1cCBhcyBpdCdzIGlja3kuCisgIHRoZSBub3JtYWwgY2FwdHVyaW5nIHNo
b3VsZCBjYXRjaCBlbm91Z2ggcG9zc2liaWxpdGllcworICBvZiB0ZXN0cyBtZXNzaW5nIHVwIHN0
YW5kYXJkIEZEcy4gCisKKy0gYWRkIHBsdWdpbm1hbmFnZXIuZG9fY29uZmlndXJlKGNvbmZpZykg
YXMgYSBsaW5rIHRvIAorICBjb25maWcuZG9fY29uZmlndXJlKCkgZm9yIHBsdWdpbi1jb21wYXRp
YmlsaXR5CisKK2FzIHVzdWFsLCBkb2NzIGF0IGh0dHA6Ly9weXRlc3Qub3JnIGFuZCB1cGdyYWRl
cyB2aWE6OgorCisgICAgcGlwIGluc3RhbGwgLVUgcHl0ZXN0CisKK2hhdmUgZnVuLAoraG9sZ2Vy
IGtyZWtlbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
Mi41LjAucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi41LjAucnN0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmIwNGE4MjVjZDhlNGZmMWU0MzFhNjA2Y2NlMjRlNjZkNjhjNmQ4NTcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjUu
MC5yc3QKQEAgLTAsMCArMSwxNzUgQEAKK3B5dGVzdC0yLjUuMDogbm93IGRvd24gdG8gWkVSTyBy
ZXBvcnRlZCBidWdzIQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdC0yLjUuMCBpcyBhIGJp
ZyBmaXhpbmcgcmVsZWFzZSwgdGhlIHJlc3VsdCBvZiB0d28gY29tbXVuaXR5IGJ1ZworZml4aW5n
IGRheXMgcGx1cyBudW1lcm91cyBhZGRpdGlvbmFsIHdvcmtzIGZyb20gbWFueSBwZW9wbGUgYW5k
CityZXBvcnRlcnMuICBUaGUgcmVsZWFzZSBzaG91bGQgYmUgZnVsbHkgY29tcGF0aWJsZSB0byAy
LjQuMiwgZXhpc3RpbmcKK3BsdWdpbnMgYW5kIHRlc3Qgc3VpdGVzLiAgV2UgYWltIGF0IG1haW50
YWluaW5nIHRoaXMgbGV2ZWwgb2YgWkVSTyByZXBvcnRlZCAKK2J1Z3MgYmVjYXVzZSBpdCdzIG5v
IGZ1biBpZiB5b3VyIHRlc3RpbmcgdG9vbCBoYXMgYnVncywgaXMgaXQ/ICBVbmRlciBhCitjb25k
aXRpb24sIHRob3VnaDogd2hlbiBzdWJtaXR0aW5nIGEgYnVnIHJlcG9ydCBwbGVhc2UgcHJvdmlk
ZQorY2xlYXIgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNpcmN1bXN0YW5jZXMgYW5kIGEgc2ltcGxl
IGV4YW1wbGUgd2hpY2gKK3JlcHJvZHVjZXMgdGhlIHByb2JsZW0uCisKK1RoZSBpc3N1ZSB0cmFj
a2VyIGlzIG9mIGNvdXJzZSBub3QgZW1wdHkgbm93LiAgV2UgaGF2ZSBtYW55IHJlbWFpbmluZwor
ImVuaGFjZW1lbnQiIGlzc3VlcyB3aGljaCB3ZSdsbCBob3BlZnVsbHkgY2FuIHRhY2tsZSBpbiAy
MDE0IHdpdGggeW91cgoraGVscC4KKworRm9yIHRob3NlIHdobyB1c2Ugb2xkZXIgUHl0aG9uIHZl
cnNpb25zLCBwbGVhc2Ugbm90ZSB0aGF0IHB5dGVzdCBpcyBub3QKK2F1dG9tYXRpY2FsbHkgdGVz
dGVkIG9uIHB5dGhvbjIuNSBkdWUgdG8gdmlydHVhbGVudiwgc2V0dXB0b29scyBhbmQgdG94Citu
b3Qgc3VwcG9ydGluZyBpdCBhbnltb3JlLiAgTWFudWFsIHZlcmlmaWNhdGlvbiBzaG93cyB0aGF0
IGl0IG1vc3RseQord29ya3MgZmluZSBidXQgaXQncyBub3QgZ29pbmcgdG8gYmUgcGFydCBvZiB0
aGUgYXV0b21hdGVkIHJlbGVhc2UgCitwcm9jZXNzIGFuZCB0aHVzIGxpa2VseSB0byBicmVhayBp
biB0aGUgZnV0dXJlLgorCitBcyB1c3VhbCwgY3VycmVudCBkb2NzIGFyZSBhdCAKKworICAgIGh0
dHA6Ly9weXRlc3Qub3JnIAorCithbmQgeW91IGNhbiB1cGdyYWRlIGZyb20gcHlwaSB2aWE6Ogor
CisgICAgcGlwIGluc3RhbGwgLVUgcHl0ZXN0CisKK1BhcnRpY3VsYXIgdGhhbmtzIGZvciBoZWxw
aW5nIHdpdGggdGhpcyByZWxlYXNlIGdvIHRvIEFuYXRvbHkgQnViZW5rb2ZmLAorRmxvcmlzIEJy
dXlub29naGUsIE1hcmMgQWJyYW1vd2l0eiwgUmFscGggU2NobWl0dCwgUm9ubnkgUGZhbm5zY2ht
aWR0LAorRG9uYWxkIFN0dWZmdCwgSmFtZXMgTGFuLCBSb2IgRGVubmlzLCBKYXNvbiBSLiBDb29t
YnMsIE1hdGhpZXUgQWdvcGlhbiwKK1ZpcmdpbCBEdXByYXMsIEJydW5vIE9saXZlaXJhLCBBbGV4
IEdheW5vciBhbmQgb3RoZXJzLgorCitoYXZlIGZ1biwKK2hvbGdlciBrcmVrZWwKKworCisyLjUu
MAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBkcm9wcGVkIHB5dGhv
bjIuNSBmcm9tIGF1dG9tYXRlZCByZWxlYXNlIHRlc3Rpbmcgb2YgcHl0ZXN0IGl0c2VsZiAKKyAg
d2hpY2ggbWVhbnMgaXQncyBwcm9iYWJseSBnb2luZyB0byBicmVhayBzb29uIChidXQgc3RpbGwg
d29ya3MgCisgIHdpdGggdGhpcyByZWxlYXNlIHdlIGJlbGlldmUpLgorCistIHNpbXBsaWZpZWQg
YW5kIGZpeGVkIGltcGxlbWVudGF0aW9uIGZvciBjYWxsaW5nIGZpbmFsaXplcnMgd2hlbgorICBw
YXJhbWV0cml6ZWQgZml4dHVyZXMgb3IgZnVuY3Rpb24gYXJndW1lbnRzIGFyZSBpbnZvbHZlZC4g
IGZpbmFsaXphdGlvbiAKKyAgaXMgbm93IHBlcmZvcm1lZCBsYXppbHkgYXQgc2V0dXAgdGltZSBp
bnN0ZWFkIG9mIGluIHRoZSAidGVhcmRvd24gcGhhc2UiLgorICBXaGlsZSB0aGlzIG1pZ2h0IHNv
dW5kIG9kZCBhdCBmaXJzdCwgaXQgaGVscHMgdG8gZW5zdXJlIHRoYXQgd2UgYXJlIAorICBjb3Jy
ZWN0bHkgaGFuZGxpbmcgc2V0dXAvdGVhcmRvd24gZXZlbiBpbiBjb21wbGV4IGNvZGUuICBVc2Vy
LWxldmVsIGNvZGUKKyAgc2hvdWxkIG5vdCBiZSBhZmZlY3RlZCB1bmxlc3MgaXQncyBpbXBsZW1l
bnRpbmcgdGhlIHB5dGVzdF9ydW50ZXN0X3RlYXJkb3duCisgIGhvb2sgYW5kIGV4cGVjdGluZyBj
ZXJ0YWluIGZpeHR1cmUgaW5zdGFuY2VzIGFyZSB0b3JuIGRvd24gd2l0aGluICh2ZXJ5CisgIHVu
bGlrZWx5IGFuZCB3b3VsZCBoYXZlIGJlZW4gdW5yZWxpYWJsZSBhbnl3YXkpLgorCistIFBSOTA6
IGFkZCAtLWNvbG9yPXllc3xub3xhdXRvIG9wdGlvbiB0byBmb3JjZSB0ZXJtaW5hbCBjb2xvcmlu
ZyAKKyAgbW9kZSAoImF1dG8iIGlzIGRlZmF1bHQpLiAgVGhhbmtzIE1hcmMgQWJyYW1vd2l0ei4K
KworLSBmaXggaXNzdWUzMTkgLSBjb3JyZWN0bHkgc2hvdyB1bmljb2RlIGluIGFzc2VydGlvbiBl
cnJvcnMuICBNYW55CisgIHRoYW5rcyB0byBGbG9yaXMgQnJ1eW5vb2doZSBmb3IgdGhlIGNvbXBs
ZXRlIFBSLiAgQWxzbyBtZWFucworICB3ZSBkZXBlbmQgb24gcHk+PTEuNC4xOSBub3cuCisKKy0g
Zml4IGlzc3VlMzk2IC0gY29ycmVjdGx5IHNvcnQgYW5kIGZpbmFsaXplIGNsYXNzLXNjb3BlZCBw
YXJhbWV0cml6ZWQgCisgIHRlc3RzIGluZGVwZW5kZW50bHkgZnJvbSBudW1iZXIgb2YgbWV0aG9k
cyBvbiB0aGUgY2xhc3MuICAKKworLSByZWZpeCBpc3N1ZTMyMyBpbiBhIGJldHRlciB3YXkgLS0g
cGFyYW1ldHJpemF0aW9uIHNob3VsZCBub3cgbmV2ZXIKKyAgY2F1c2UgUnVudGltZSBSZWN1cnNp
b24gZXJyb3JzIGJlY2F1c2UgdGhlIHVuZGVybHlpbmcgYWxnb3JpdGhtCisgIGZvciByZS1vcmRl
cmluZyB0ZXN0cyBwZXItc2NvcGUvcGVyLWZpeHR1cmUgaXMgbm90IHJlY3Vyc2l2ZQorICBhbnlt
b3JlIChpdCB3YXMgdGFpbC1jYWxsIHJlY3Vyc2l2ZSBiZWZvcmUgd2hpY2ggY291bGQgbGVhZAor
ICB0byBwcm9ibGVtcyBmb3IgbW9yZSB0aGFuID45NjYgbm9uLWZ1bmN0aW9uIHNjb3BlZCBwYXJh
bWV0ZXJzKS4KKworLSBmaXggaXNzdWUyOTAgLSB0aGVyZSBpcyBwcmVsaW1pbmFyeSBzdXBwb3J0
IG5vdyBmb3IgcGFyYW1ldHJpemluZworICB3aXRoIHJlcGVhdGVkIHNhbWUgdmFsdWVzIChzb21l
dGltZXMgdXNlZnVsIHRvIHRlc3QgaWYgY2FsbGluZyAKKyAgYSBzZWNvbmQgdGltZSB3b3JrcyBh
cyB3aXRoIHRoZSBmaXJzdCB0aW1lKS4KKworLSBjbG9zZSBpc3N1ZTI0MCAtIGRvY3VtZW50IHBy
ZWNpc2VseSBob3cgcHl0ZXN0IG1vZHVsZSBpbXBvcnRpbmcKKyAgd29ya3MsIGRpc2N1c3MgdGhl
IHR3byBjb21tb24gdGVzdCBkaXJlY3RvcnkgbGF5b3V0cywgYW5kIGhvdyBpdCAKKyAgaW50ZXJh
Y3RzIHdpdGggUEVQNDIwLW5hbWVzcGFjZSBwYWNrYWdlcy4KKworLSBmaXggaXNzdWUyNDYgZml4
IGZpbmFsaXplciBvcmRlciB0byBiZSBMSUZPIG9uIGluZGVwZW5kZW50IGZpeHR1cmVzCisgIGRl
cGVuZGluZyBvbiBhIHBhcmFtZXRyaXplZCBoaWdoZXItdGhhbi1mdW5jdGlvbiBzY29wZWQgZml4
dHVyZS4gCisgICh3YXMgcXVpdGUgc29tZSBlZmZvcnQgc28gcGxlYXNlIGJlYXIgd2l0aCB0aGUg
Y29tcGxleGl0eSBvZiB0aGlzIHNlbnRlbmNlIDopCisgIFRoYW5rcyBSYWxwaCBTY2htaXR0IGZv
ciB0aGUgcHJlY2lzZSBmYWlsdXJlIGV4YW1wbGUuCisgCistIGZpeCBpc3N1ZTI0NCBieSBpbXBs
ZW1lbnRpbmcgc3BlY2lhbCBpbmRleCBmb3IgcGFyYW1ldGVycyB0byBvbmx5IHVzZQorICBpbmRp
Y2VzIGZvciBwYXJhbWVudHJpemVkIHRlc3QgaWRzCisKKy0gZml4IGlzc3VlMjg3IGJ5IHJ1bm5p
bmcgYWxsIGZpbmFsaXplcnMgYnV0IHNhdmluZyB0aGUgZXhjZXB0aW9uCisgIGZyb20gdGhlIGZp
cnN0IGZhaWxpbmcgZmluYWxpemVyIGFuZCByZS1yYWlzaW5nIGl0IHNvIHRlYXJkb3duIHdpbGwK
KyAgc3RpbGwgaGF2ZSBmYWlsZWQuICBXZSByZXJhaXNlIHRoZSBmaXJzdCBmYWlsaW5nIGV4Y2Vw
dGlvbiBiZWNhdXNlCisgIGl0IG1pZ2h0IGJlIHRoZSBjYXVzZSBmb3Igb3RoZXIgZmluYWxpemVy
cyB0byBmYWlsLgorCistIGZpeCBvcmRlcmluZyB3aGVuIG1vY2sucGF0Y2ggb3Igb3RoZXIgc3Rh
bmRhcmQgZGVjb3JhdG9yLXdyYXBwaW5ncworICBhcmUgdXNlZCB3aXRoIHRlc3QgbWV0aG9kcy4g
IFRoaXMgZml4dWVzIGlzc3VlMzQ2IGFuZCBzaG91bGQKKyAgaGVscCB3aXRoIHJhbmRvbSAieGRp
c3QiIGNvbGxlY3Rpb24gZmFpbHVyZXMuICBUaGFua3MgdG8KKyAgUm9ubnkgUGZhbm5zY2htaWR0
IGFuZCBEb25hbGQgU3R1ZmZ0IGZvciBoZWxwaW5nIHRvIGlzb2xhdGUgaXQuCisKKy0gZml4IGlz
c3VlMzU3IC0gc3BlY2lhbCBjYXNlICItayIgZXhwcmVzc2lvbnMgdG8gYWxsb3cgZm9yCisgIGZp
bHRlcmluZyB3aXRoIHNpbXBsZSBzdHJpbmdzIHRoYXQgYXJlIG5vdCB2YWxpZCBweXRob24gZXhw
cmVzc2lvbnMuCisgIEV4YW1wbGVzOiAiLWsgMS4zIiBtYXRjaGVzIGFsbCB0ZXN0cyBwYXJhbWV0
cml6ZWQgd2l0aCAxLjMuCisgICItayBOb25lIiBmaWx0ZXJzIGFsbCB0ZXN0cyB0aGF0IGhhdmUg
Ik5vbmUiIGluIHRoZWlyIG5hbWUKKyAgYW5kIGNvbnZlcnNlbHkgIi1rICdub3QgTm9uZSciLiAK
KyAgUHJldmlvdXNseSB0aGVzZSBleGFtcGxlcyB3b3VsZCByYWlzZSBzeW50YXggZXJyb3JzLgor
ICAKKy0gZml4IGlzc3VlMzg0IGJ5IHJlbW92aW5nIHRoZSB0cmlhbCBzdXBwb3J0IGNvZGUKKyAg
c2luY2UgdGhlIHVuaXR0ZXN0IGNvbXBhdCBlbmhhbmNlbWVudHMgYWxsb3cKKyAgdHJpYWwgdG8g
aGFuZGxlIGl0IG9uIGl0cyBvd24KKworLSBkb24ndCBoaWRlIGFuIEltcG9ydEVycm9yIHdoZW4g
aW1wb3J0aW5nIGEgcGx1Z2luIHByb2R1Y2VzIG9uZS4KKyAgZml4ZXMgaXNzdWUzNzUuCisKKy0g
Zml4IGlzc3VlMjc1IC0gYWxsb3cgdXNlZml4dHVyZXMgYW5kIGF1dG91c2UgZml4dHVyZXMgCisg
IGZvciBydW5uaW5nIGRvY3Rlc3QgdGV4dCBmaWxlcy4KKworLSBmaXggaXNzdWUzODAgYnkgbWFr
aW5nIC0tcmVzdWx0bG9nIG9ubHkgcmVseSBvbiBsb25ncmVwciBpbnN0ZWFkCisgIG9mIHRoZSAi
cmVwcmNyYXNoIiBhdHRyaWJ1dGUgd2hpY2ggb25seSBleGlzdHMgc29tZXRpbWVzLgorCistIGFk
ZHJlc3MgaXNzdWUxMjI6IGFsbG93IEBweXRlc3QuZml4dHVyZShwYXJhbXM9aXRlcmF0b3IpIGJ5
IGV4cGxvZGluZworICBpbnRvIGEgbGlzdCBlYXJseSBvbi4KKworLSBmaXggcGV4cGVjdC0zLjAg
Y29tcGF0aWJpbGl0eSBmb3IgcHl0ZXN0J3Mgb3duIHRlc3RzLgorICAoZml4ZXMgaXNzdWUzODYp
CisKKy0gYWxsb3cgbmVzdGVkIHBhcmFtZXRyaXplLXZhbHVlIG1hcmtlcnMsIHRoYW5rcyBKYW1l
cyBMYW4gZm9yIHRoZSBQUi4KKworLSBmaXggdW5pY29kZSBoYW5kbGluZyB3aXRoIG5ldyBtb25r
ZXlwYXRjaC5zZXRhdHRyKGltcG9ydF9wYXRoLCB2YWx1ZSkKKyAgQVBJLiAgVGhhbmtzIFJvYiBE
ZW5uaXMuICBGaXhlcyBpc3N1ZTM3MS4KKworLSBmaXggdW5pY29kZSBoYW5kbGluZyB3aXRoIGp1
bml0eG1sLCBmaXhlcyBpc3N1ZTM2OC4KKworLSBJbiBhc3NlcnRpb24gcmV3cml0aW5nIG1vZGUg
b24gUHl0aG9uIDIsIGZpeCB0aGUgZGV0ZWN0aW9uIG9mIGNvZGluZworICBjb29raWVzLiBTZWUg
aXNzdWUgIzMzMC4KKworLSBtYWtlICItLXJ1bnhmYWlsIiB0dXJuIGltcGVyYXRpdmUgcHl0ZXN0
LnhmYWlsIGNhbGxzIGludG8gbm8gb3BzCisgIChpdCBhbHJlYWR5IGRpZCBuZXV0cmFsaXplIHB5
dGVzdC5tYXJrLnhmYWlsIG1hcmtlcnMpCisKKy0gcmVmaW5lIHB5dGVzdCAvIHBrZ19yZXNvdXJj
ZXMgaW50ZXJhY3Rpb25zOiBUaGUgQXNzZXJ0aW9uUmV3cml0aW5nSG9vaworICBQRVAzMDIgY29t
cGxpYW50IGxvYWRlciBub3cgcmVnaXN0ZXJzIGl0c2VsZiB3aXRoIHNldHVwdG9vbHMvcGtnX3Jl
c291cmNlcyAKKyAgcHJvcGVybHkgc28gdGhhdCB0aGUgcGtnX3Jlc291cmNlcy5yZXNvdXJjZV9z
dHJlYW0gbWV0aG9kIHdvcmtzIHByb3Blcmx5LgorICBGaXhlcyBpc3N1ZTM2Ni4gIFRoYW5rcyBm
b3IgdGhlIGludmVzdGlnYXRpb25zIGFuZCBmdWxsIFBSIHRvIEphc29uIFIuIENvb21icy4KKwor
LSBweXRlc3Rjb25maWcgZml4dHVyZSBpcyBub3cgc2Vzc2lvbi1zY29wZWQgYXMgaXQgaXMgdGhl
IHNhbWUgb2JqZWN0IGR1cmluZyB0aGUKKyAgd2hvbGUgdGVzdCBydW4uICBGaXhlcyBpc3N1ZTM3
MC4gCisKKy0gYXZvaWQgb25lIHN1cnByaXNpbmcgY2FzZSBvZiBtYXJrZXIgbWFsZnVuY3Rpb24v
Y29uZnVzaW9uOjoKKyAgCisgICAgICBAcHl0ZXN0Lm1hcmsuc29tZShsYW1iZGEgYXJnOiAuLi4p
CisgICAgICBkZWYgdGVzdF9mdW5jdGlvbigpOgorCisgIHdvdWxkIG5vdCB3b3JrIGNvcnJlY3Rs
eSBiZWNhdXNlIHB5dGVzdCBhc3N1bWVzIEBweXRlc3QubWFyay5zb21lIAorICBnZXRzIGEgZnVu
Y3Rpb24gdG8gYmUgZGVjb3JhdGVkIGFscmVhZHkuICBXZSBub3cgYXQgbGVhc3QgZGV0ZWN0IGlm
IHRoaXMgCisgIGFyZyBpcyBhIGxhbWJkYSBhbmQgdGh1cyB0aGUgZXhhbXBsZSB3aWxsIHdvcmsu
ICBUaGFua3MgQWxleCBHYXlub3IKKyAgZm9yIGJyaW5naW5nIGl0IHVwLgorCistIHhmYWlsIGEg
dGVzdCBvbiBweXB5IHRoYXQgY2hlY2tzIHdyb25nIGVuY29kaW5nL2FzY2lpIChweXB5IGRvZXMK
KyAgbm90IGVycm9yIG91dCkuIGZpeGVzIGlzc3VlMzg1LgorCistIGludGVybmFsbHkgbWFrZSB2
YXJuYW1lcygpIGRlYWwgd2l0aCBjbGFzc2VzJ3MgX19pbml0X18sCisgIGFsdGhvdWdoIGl0J3Mg
bm90IG5lZWRlZCBieSBweXRlc3QgaXRzZWxmIGF0bS4gIEFsc28KKyAgZml4IGNhY2hpbmcuICBG
aXhlcyBpc3N1ZTM3Ni4KKworLSBmaXggaXNzdWUyMjEgLSBoYW5kbGUgaW1wb3J0aW5nIG9mIG5h
bWVzcGFjZS1wYWNrYWdlIHdpdGggbm8gCisgIF9faW5pdF9fLnB5IHByb3Blcmx5LgorCistIHJl
ZmFjdG9yIGludGVybmFsIEZpeHR1cmVSZXF1ZXN0IGhhbmRsaW5nIHRvIGF2b2lkIG1vbmtleXBh
dGNoaW5nLgorICBPbmUgb2YgdGhlIHBvc2l0aXZlIHVzZXItZmFjaW5nIGVmZmVjdHMgaXMgdGhh
dCB0aGUgInJlcXVlc3QiIG9iamVjdCAKKyAgY2FuIG5vdyBiZSB1c2VkIGluIGNsb3N1cmVzLgor
CistIGZpeGVkIHZlcnNpb24gY29tcGFyaXNvbiBpbiBweXRlc3QuaW1wb3J0c2tpcChtb2RuYW1l
LCBtaW52ZXJzdHJpbmcpCisKKy0gZml4IGlzc3VlMzc3IGJ5IGNsYXJpZnlpbmcgaW4gdGhlIG5v
c2UtY29tcGF0IGRvY3MgdGhhdCBweXRlc3QKKyAgZG9lcyBub3QgZHVwbGljYXRlIHRoZSB1bml0
dGVzdC1BUEkgaW50byB0aGUgInBsYWluIiBuYW1lc3BhY2UuCisKKy0gZml4IHZlcmJvc2UgcmVw
b3J0aW5nIGZvciBAbW9jaydkIHRlc3QgZnVuY3Rpb25zCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNS4xLnJzdCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9hbm5vdW5jZS9yZWxlYXNlLTIuNS4xLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hM2E3NGNlYzYyNjU2Y2M1
MDE2ZDY4YmU3ZTk2ODFmMDU3MjkyZTcyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi41LjEucnN0CkBAIC0wLDAgKzEsNDcgQEAKK3B5dGVz
dC0yLjUuMTogZml4ZXMgYW5kIG5ldyBob21lIHBhZ2Ugc3R5bGluZworPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CisKK3B5dGVzdCBpcyBhIG1hdHVyZSBQeXRob24gdGVzdGluZyB0b29sIHdpdGggbW9yZSB0
aGFuIGEgMTAwMCB0ZXN0cyAKK2FnYWluc3QgaXRzZWxmLCBwYXNzaW5nIG9uIG1hbnkgZGlmZmVy
ZW50IGludGVycHJldGVycyBhbmQgcGxhdGZvcm1zLiAgCisKK1RoZSAyLjUuMSByZWxlYXNlIG1h
aW50YWlucyB0aGUgInplcm8tcmVwb3J0ZWQtYnVncyIgcHJvbWlzZSBieSBmaXhpbmcKK3RoZSB0
aHJlZSBidWdzIHJlcG9ydGVkIHNpbmNlIHRoZSBsYXN0IHJlbGVhc2UgYSBmZXcgZGF5cyBhZ28u
ICBJdCBhbHNvCitmZWF0dXJlcyBhIG5ldyBob21lIHBhZ2Ugc3R5bGluZyBpbXBsZW1lbnRlZCBi
eSBUb2JpYXMgQmllbmllaywgYmFzZWQgb24KK3RoZSBmbGFzayB0aGVtZSBmcm9tIEFybWluIFJv
bmFjaGVyOgorCisgICAgaHR0cDovL3B5dGVzdC5vcmcKKworSWYgeW91IGhhdmUgYW55dGhpbmcg
bW9yZSB0byBpbXByb3ZlIHN0eWxpbmcgYW5kIGRvY3MsIAord2UnZCBiZSB2ZXJ5IGhhcHB5IHRv
IG1lcmdlIGZ1cnRoZXIgcHVsbCByZXF1ZXN0cy4KKworT24gdGhlIGNvZGluZyBzaWRlLCB0aGUg
cmVsZWFzZSBhbHNvIGNvbnRhaW5zIGEgbGl0dGxlIGVuaGFuY2VtZW50IHRvCitmaXh0dXJlIGRl
Y29yYXRvcnMgYWxsb3dpbmcgdG8gZGlyZWN0bHkgaW5mbHVlbmNlIGdlbmVyYXRpb24gb2YgdGVz
dAoraWRzLCB0aGFua3MgdG8gRmxvcmlzIEJydXlub29naGUuICBPdGhlciB0aGFua3MgZm9yIGhl
bHBpbmcgd2l0aCAKK3RoaXMgcmVsZWFzZSBnbyB0byBBbmF0b2x5IEJ1YmVua29mZiBhbmQgUm9u
bnkgUGZhbm5zY2htaWR0LgorCitBcyB1c3VhbCwgeW91IGNhbiB1cGdyYWRlIGZyb20gcHlwaSB2
aWE6OgorCisgICAgcGlwIGluc3RhbGwgLVUgcHl0ZXN0CisKK2hhdmUgZnVuIGFuZCBhIG5pY2Ug
cmVtYWluaW5nICJidWctZnJlZSIgdGltZSBvZiB0aGUgeWVhciA6KQoraG9sZ2VyIGtyZWtlbAor
CisyLjUuMQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBtZXJnZSBu
ZXcgZG9jdW1lbnRhdGlvbiBzdHlsaW5nIFBSIGZyb20gVG9iaWFzIEJpZW5pZWsuCisKKy0gZml4
IGlzc3VlNDAzOiBhbGxvdyBwYXJhbWV0cml6ZSBvZiBtdWx0aXBsZSBzYW1lLW5hbWUgZnVuY3Rp
b25zIHdpdGhpbgorICBhIGNvbGxlY3Rpb24gbm9kZS4gIFRoYW5rcyBBbmRyZWFzIEtsb2Vja25l
ciBhbmQgQWxleCBHYXlub3IgZm9yIHJlcG9ydGluZworICBhbmQgYW5hbHlzaXMuCisKKy0gQWxs
b3cgcGFyYW1ldGVyaXplZCBmaXh0dXJlcyB0byBzcGVjaWZ5IHRoZSBJRCBvZiB0aGUgcGFyYW1l
dGVycyBieQorICBhZGRpbmcgYW4gaWRzIGFyZ3VtZW50IHRvIHB5dGVzdC5maXh0dXJlKCkgYW5k
IHB5dGVzdC55aWVsZF9maXh0dXJlKCkuCisgIFRoYW5rcyBGbG9yaXMgQnJ1eW5vb2doZS4gCisK
Ky0gZml4IGlzc3VlNDA0IGJ5IGFsd2F5cyB1c2luZyB0aGUgYmluYXJ5IHhtbCBlc2NhcGUgaW4g
dGhlIGp1bml0eG1sCisgIHBsdWdpbi4gIFRoYW5rcyBSb25ueSBQZmFubnNjaG1pZHQuCisKKy0g
Zml4IGlzc3VlNDA3OiBmaXggYWRkb3B0aW9uIGRvY3N0cmluZyB0byBwb2ludCB0byBhcmdwYXJz
ZSBpbnN0ZWFkIG9mCisgIG9wdHBhcnNlLiBUaGFua3MgRGFuaWVsIEQuIFdyaWdodC4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi41LjIucnN0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi41LjIucnN0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQ1Y2ZjYTJkYmRhZDYxYTc2ZmYxNzdlMzFkMDhjOTc5MmZjZTJjYjAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjUuMi5yc3QKQEAgLTAs
MCArMSw2NCBAQAorcHl0ZXN0LTIuNS4yOiBmaXhlcyAKKz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitw
eXRlc3QgaXMgYSBtYXR1cmUgUHl0aG9uIHRlc3RpbmcgdG9vbCB3aXRoIG1vcmUgdGhhbiBhIDEw
MDAgdGVzdHMgCithZ2FpbnN0IGl0c2VsZiwgcGFzc2luZyBvbiBtYW55IGRpZmZlcmVudCBpbnRl
cnByZXRlcnMgYW5kIHBsYXRmb3Jtcy4gIAorCitUaGUgMi41LjIgcmVsZWFzZSBmaXhlcyBhIGZl
dyBidWdzIHdpdGggdHdvIG1heWJlLWJ1Z3MgcmVtYWluaW5nIGFuZAorYWN0aXZlbHkgYmVpbmcg
d29ya2VkIG9uIChhbmQgd2FpdGluZyBmb3IgdGhlIGJ1ZyByZXBvcnRlcidzIGlucHV0KS4KK1dl
IGFsc28gaGF2ZSBhIG5ldyBjb250cmlidXRpb24gZ3VpZGUgdGhhbmtzIHRvIFBpb3RyIEJhbmFz
emtpZXdpY3oKK2FuZCBvdGhlcnMuCisKK1NlZSBkb2NzIGF0OgorCisgICAgaHR0cDovL3B5dGVz
dC5vcmcKKworQXMgdXN1YWwsIHlvdSBjYW4gdXBncmFkZSBmcm9tIHB5cGkgdmlhOjoKKworICAg
IHBpcCBpbnN0YWxsIC1VIHB5dGVzdAorCitUaGFua3MgdG8gdGhlIGZvbGxvd2luZyBwZW9wbGUg
d2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZToKKworICAgIEFuYXRvbHkgQnViZW5rb3Yg
CisgICAgUm9ubnkgUGZhbm5zY2htaWR0CisgICAgRmxvcmlzIEJydXlub29naGUKKyAgICBCcnVu
byBPbGl2ZWlyYSAKKyAgICBBbmRyZWFzIFBlbG1lIAorICAgIEp1cmtvIEdvc3BvZG5ldGnEhwor
ICAgIFBpb3RyIEJhbmFzemtpZXdpY3ogCisgICAgU2ltb24gTGllZHRrZSAKKyAgICBsYWtrYSAK
KyAgICBMdWthc3ogQmFsY2VyemFrIAorICAgIFBoaWxpcHBlIE11bGxlciAKKyAgICBEYW5pZWwg
SGFobGVyIAorCitoYXZlIGZ1biwKK2hvbGdlciBrcmVrZWwKKworMi41LjIKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gZml4IGlzc3VlNDA5IC0tIGJldHRlciBpbnRl
cm9wZXJhdGUgd2l0aCBjeF9mcmVlemUgYnkgbm90CisgIHRyeWluZyB0byBpbXBvcnQgZnJvbSBj
b2xsZWN0aW9ucy5hYmMgd2hpY2ggY2F1c2VzIHByb2JsZW1zIAorICBmb3IgcHkyNy9jeF9mcmVl
emUuICBUaGFua3MgV29sZmdhbmcgTC4gZm9yIHJlcG9ydGluZyBhbmQgdHJhY2tpbmcgaXQgZG93
bi4KKworLSBmaXhlZCBkb2NzIGFuZCBjb2RlIHRvIHVzZSAicHl0ZXN0IiBpbnN0ZWFkIG9mICJw
eS50ZXN0IiBhbG1vc3QgZXZlcnl3aGVyZS4KKyAgVGhhbmtzIEp1cmtvIEdvc3BvZG5ldGljIGZv
ciB0aGUgY29tcGxldGUgUFIuICAKKworLSBmaXggaXNzdWU0MjU6IG1lbnRpb24gYXQgZW5kIG9m
ICJweS50ZXN0IC1oIiB0aGF0IC0tbWFya2VycworICBhbmQgLS1maXh0dXJlcyB3b3JrIGFjY29y
ZGluZyB0byBzcGVjaWZpZWQgdGVzdCBwYXRoIChvciBjdXJyZW50IGRpcikKKworLSBmaXggaXNz
dWU0MTM6IGV4Y2VwdGlvbnMgd2l0aCB1bmljb2RlIGF0dHJpYnV0ZXMgYXJlIG5vdyBwcmludGVk
CisgIGNvcnJlY3RseSBhbHNvIG9uIHB5dGhvbjIgYW5kIHdpdGggcHl0ZXN0LXhkaXN0IHJ1bnMu
ICh0aGUgZml4CisgIHJlcXVpcmVzIHB5LTEuNC4yMCkKKworLSBjb3B5LCBjbGVhbnVwIGFuZCBp
bnRlZ3JhdGUgcHkuaW8gY2FwdHVyZQorICBmcm9tIHB5bGliIDEuNC4yMC5kZXYyIChyZXYgMTNk
OWFmOTU1NDdlKQorICAKKy0gYWRkcmVzcyBpc3N1ZTQxNjogY2xhcmlmeSBkb2NzIGFzIHRvIGNv
bmZ0ZXN0LnB5IGxvYWRpbmcgc2VtYW50aWNzCisKKy0gZml4IGlzc3VlNDI5OiBjb21wYXJpbmcg
Ynl0ZSBzdHJpbmdzIHdpdGggbm9uLWFzY2lpIGNoYXJzIGluIGFzc2VydAorICBleHByZXNzaW9u
cyBub3cgd29yayBiZXR0ZXIuICBUaGFua3MgRmxvcmlzIEJydXlub29naGUuCisKKy0gbWFrZSBj
YXBmZC9jYXBzeXMuY2FwdHVyZSBwcml2YXRlLCBpdHMgdW51c2VkIGFuZCBzaG91bGRuJ3QgYmUg
ZXhwb3NlZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFz
ZS0yLjYuMC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjYuMC5y
c3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzZiNTQ1YTI4YjRiNzUwNTk3YzY2YjI5NWM4YmNkZjc2OGEzOTcwOAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIu
Ni4wLnJzdApAQCAtMCwwICsxLDE1MyBAQAorcHl0ZXN0LTIuNi4wOiBzaG9ydGVyIHRyYWNlYmFj
a3MsIG5ldyB3YXJuaW5nIHN5c3RlbSwgdGVzdCBydW5uZXIgY29tcGF0Cis9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKworcHl0ZXN0IGlzIGEgbWF0dXJlIFB5dGhvbiB0ZXN0aW5nIHRvb2wgd2l0aCBtb3Jl
IHRoYW4gYSAxMDAwIHRlc3RzCithZ2FpbnN0IGl0c2VsZiwgcGFzc2luZyBvbiBtYW55IGRpZmZl
cmVudCBpbnRlcnByZXRlcnMgYW5kIHBsYXRmb3Jtcy4KKworVGhlIDIuNi4wIHJlbGVhc2Ugc2hv
dWxkIGJlIGRyb3AtaW4gYmFja3dhcmQgY29tcGF0aWJsZSB0byAyLjUuMiBhbmQKK2ZpeGVzIGEg
bnVtYmVyIG9mIGJ1Z3MgYW5kIGJyaW5ncyBzb21lIG5ldyBmZWF0dXJlcywgbWFpbmx5OgorCist
IHNob3J0ZXIgdHJhY2ViYWNrcyBieSBkZWZhdWx0OiBvbmx5IHRoZSBmaXJzdCAodGVzdCBmdW5j
dGlvbikgZW50cnkKKyAgYW5kIHRoZSBsYXN0IChmYWlsdXJlIGxvY2F0aW9uKSBlbnRyeSBhcmUg
c2hvd24sIHRoZSBvbmVzIGJldHdlZW4KKyAgb25seSBpbiAic2hvcnQiIGZvcm1hdC4gIFVzZSBg
YC0tdGI9bG9uZ2BgIHRvIGdldCBiYWNrIHRoZSBvbGQKKyAgYmVoYXZpb3VyIG9mIHNob3dpbmcg
ImxvbmciIGVudHJpZXMgZXZlcnl3aGVyZS4KKworLSBhIG5ldyB3YXJuaW5nIHN5c3RlbSB3aGlj
aCByZXBvcnRzIG9kZGl0aWVzIGR1cmluZyBjb2xsZWN0aW9uCisgIGFuZCBleGVjdXRpb24uICBG
b3IgZXhhbXBsZSwgaWdub3JpbmcgY29sbGVjdGluZyBUZXN0KiBjbGFzc2VzIHdpdGggYW4KKyAg
YGBfX2luaXRfX2BgIG5vdyBwcm9kdWNlcyBhIHdhcm5pbmcuCisKKy0gdmFyaW91cyBpbXByb3Zl
bWVudHMgdG8gbm9zZS9tb2NrL3VuaXR0ZXN0IGludGVncmF0aW9uCisKK05vdGUgYWxzbyB0aGF0
IDIuNi4wIGRlcGFydHMgd2l0aCB0aGUgInplcm8gcmVwb3J0ZWQgYnVncyIgcG9saWN5CitiZWNh
dXNlIGl0IGhhcyBiZWVuIHRvbyBoYXJkIHRvIGtlZXAgdXAgd2l0aCBpdCwgdW5mb3J0dW5hdGVs
eS4KK0luc3RlYWQgd2UgYXJlIGZvciBub3cgcmF0aGVyIGJvdW5kIHRvIHdvcmsgb24gInVwdm90
ZWQiIGlzc3VlcyBpbgordGhlIGh0dHBzOi8vYml0YnVja2V0Lm9yZy9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXM/c3RhdHVzPW5ldyZzdGF0dXM9b3BlbiZzb3J0PS12b3RlcworaXNzdWUgdHJhY2tl
ci4KKworU2VlIGRvY3MgYXQ6CisKKyAgICBodHRwOi8vcHl0ZXN0Lm9yZworCitBcyB1c3VhbCwg
eW91IGNhbiB1cGdyYWRlIGZyb20gcHlwaSB2aWE6OgorCisgICAgcGlwIGluc3RhbGwgLVUgcHl0
ZXN0CisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkLCBhbW9uZyB0aGVtOgorCisgICAg
QmVuamFtaW4gUGV0ZXJzb24KKyAgICBKdXJrbyBHb3Nwb2RuZXRpxIcKKyAgICBGbG9yaXMgQnJ1
eW5vb2doZQorICAgIE1hcmMgQWJyYW1vd2l0egorICAgIE1hcmMgU2NobGFpY2gKKyAgICBUcmV2
b3IgQmVrb2xheQorICAgIEJydW5vIE9saXZlaXJhCisgICAgQWxleCBHcm9lbmhvbG0KKworaGF2
ZSBmdW4sCitob2xnZXIga3Jla2VsCisKKzIuNi4wCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorCistIGZpeCBpc3N1ZTUzNzogQXZvaWQgaW1wb3J0aW5nIG9sZCBhc3NlcnRp
b24gcmVpbnRlcnByZXRhdGlvbiBjb2RlIGJ5IGRlZmF1bHQuCisgIFRoYW5rcyBCZW5qYW1pbiBQ
ZXRlcnNvbi4KKworLSBmaXggaXNzdWUzNjQ6IHNob3J0ZW4gYW5kIGVuaGFuY2UgdHJhY2ViYWNr
cyByZXByZXNlbnRhdGlvbiBieSBkZWZhdWx0LgorICBUaGUgbmV3ICItLXRiPWF1dG8iIG9wdGlv
biAoZGVmYXVsdCkgd2lsbCBvbmx5IGRpc3BsYXkgbG9uZyB0cmFjZWJhY2tzCisgIGZvciB0aGUg
Zmlyc3QgYW5kIGxhc3QgZW50cnkuICBZb3UgY2FuIGdldCB0aGUgb2xkIGJlaGF2aW91ciBvZiBw
cmludGluZworICBhbGwgZW50cmllcyBhcyBsb25nIGVudHJpZXMgd2l0aCAiLS10Yj1sb25nIi4g
IEFsc28gc2hvcnQgZW50cmllcyBieQorICBkZWZhdWx0IGFyZSBub3cgcHJpbnRlZCB2ZXJ5IHNp
bWlsYXJseSB0byAiLS10Yj1uYXRpdmUiIG9uZXMuCisKKy0gZml4IGlzc3VlNTE0OiB0ZWFjaCBh
c3NlcnRpb24gcmVpbnRlcnByZXRhdGlvbiBhYm91dCBwcml2YXRlIGNsYXNzIGF0dHJpYnV0ZXMK
KyAgVGhhbmtzIEJlbmphbWluIFBldGVyc29uLgorCistIGNoYW5nZSAtdiBvdXRwdXQgdG8gaW5j
bHVkZSBmdWxsIG5vZGUgSURzIG9mIHRlc3RzLiAgVXNlcnMgY2FuIGNvcHkKKyAgYSBub2RlIElE
IGZyb20gYSB0ZXN0IHJ1biwgaW5jbHVkaW5nIGxpbmUgbnVtYmVyLCBhbmQgdXNlIGl0IGFzIGEK
KyAgcG9zaXRpb25hbCBhcmd1bWVudCBpbiBvcmRlciB0byBydW4gb25seSBhIHNpbmdsZSB0ZXN0
LgorCistIGZpeCBpc3N1ZSA0NzU6IGZhaWwgZWFybHkgYW5kIGNvbXByZWhlbnNpYmxlIGlmIGNh
bGxpbmcKKyAgcHl0ZXN0LnJhaXNlcyB3aXRoIHdyb25nIGV4Y2VwdGlvbiB0eXBlLgorCistIGZp
eCBpc3N1ZTUxNjogdGVsbCBpbiBnZXR0aW5nLXN0YXJ0ZWQgYWJvdXQgY3VycmVudCBkZXBlbmRl
bmNpZXMuCisKKy0gY2xlYW51cCBzZXR1cC5weSBhIGJpdCBhbmQgc3BlY2lmeSBzdXBwb3J0ZWQg
dmVyc2lvbnMuIFRoYW5rcyBKdXJrbworICBHb3Nwb2RuZXRpYyBmb3IgdGhlIFBSLgorCistIGNo
YW5nZSBYUEFTUyBjb2xvdXIgdG8geWVsbG93IHJhdGhlciB0aGVuIHJlZCB3aGVuIHRlc3RzIGFy
ZSBydW4KKyAgd2l0aCAtdi4KKworLSBmaXggaXNzdWU0NzM6IHdvcmsgYXJvdW5kIG1vY2sgcHV0
dGluZyBhbiB1bmJvdW5kIG1ldGhvZCBpbnRvIGEgY2xhc3MKKyAgZGljdCB3aGVuIGRvdWJsZS1w
YXRjaGluZy4KKworLSBmaXggaXNzdWU0OTg6IGlmIGEgZml4dHVyZSBmaW5hbGl6ZXIgZmFpbHMs
IG1ha2Ugc3VyZSB0aGF0CisgIHRoZSBmaXh0dXJlIGlzIHN0aWxsIGludmFsaWRhdGVkLgorCist
IGZpeCBpc3N1ZTQ1MzogdGhlIHJlc3VsdCBvZiB0aGUgcHl0ZXN0X2Fzc2VydHJlcHJfY29tcGFy
ZSBob29rIG5vdyBnZXRzCisgIGl0J3MgbmV3bGluZXMgZXNjYXBlZCBzbyB0aGF0IGZvcm1hdF9l
eGNlcHRpb24gZG9lcyBub3QgYmxvdyB1cC4KKworLSBpbnRlcm5hbCBuZXcgd2FybmluZyBzeXN0
ZW06IHB5dGVzdCB3aWxsIG5vdyBwcm9kdWNlIHdhcm5pbmdzIHdoZW4KKyAgaXQgZGV0ZWN0cyBv
ZGRpdGllcyBpbiB5b3VyIHRlc3QgY29sbGVjdGlvbiBvciBleGVjdXRpb24uCisgIFdhcm5pbmdz
IGFyZSB1bHRpbWF0ZWx5IHNlbnQgdG8gYSBuZXcgcHl0ZXN0X2xvZ3dhcm5pbmcgaG9vayB3aGlj
aCBpcworICBjdXJyZW50bHkgb25seSBpbXBsZW1lbnRlZCBieSB0aGUgdGVybWluYWwgcGx1Z2lu
IHdoaWNoIGRpc3BsYXlzCisgIHdhcm5pbmdzIGluIHRoZSBzdW1tYXJ5IGxpbmUgYW5kIHNob3dz
IG1vcmUgZGV0YWlscyB3aGVuIC1ydyAocmVwb3J0IG9uCisgIHdhcm5pbmdzKSBpcyBzcGVjaWZp
ZWQuCisKKy0gY2hhbmdlIHNraXBzIGludG8gd2FybmluZ3MgZm9yIHRlc3QgY2xhc3NlcyB3aXRo
IGFuIF9faW5pdF9fIGFuZAorICBjYWxsYWJsZXMgaW4gdGVzdCBtb2R1bGVzIHdoaWNoIGxvb2sg
bGlrZSBhIHRlc3QgYnV0IGFyZSBub3QgZnVuY3Rpb25zLgorCistIGZpeCBpc3N1ZTQzNjogaW1w
cm92ZWQgZmluZGluZyBvZiBpbml0aWFsIGNvbmZ0ZXN0IGZpbGVzIGZyb20gY29tbWFuZAorICBs
aW5lIGFyZ3VtZW50cyBieSB1c2luZyB0aGUgcmVzdWx0IG9mIHBhcnNlX2tub3duX2FyZ3MgcmF0
aGVyIHRoYW4KKyAgdGhlIHByZXZpb3VzIGZsYWt5IGhldXJpc3RpY3MuICBUaGFua3MgTWFyYyBB
YnJhbW93aXR6IGZvciB0ZXN0cworICBhbmQgaW5pdGlhbCBmaXhpbmcgYXBwcm9hY2hlcyBpbiB0
aGlzIGFyZWEuCisKKy0gZml4IGlzc3VlICM0Nzk6IHByb3Blcmx5IGhhbmRsZSBub3NlL3VuaXR0
ZXN0KDIpIFNraXBUZXN0IGV4Y2VwdGlvbnMKKyAgZHVyaW5nIGNvbGxlY3Rpb24vbG9hZGluZyBv
ZiB0ZXN0IG1vZHVsZXMuICBUaGFua3MgdG8gTWFyYyBTY2hsYWljaAorICBmb3IgdGhlIGNvbXBs
ZXRlIFBSLgorCistIGZpeCBpc3N1ZTQ5MDogaW5jbHVkZSBweXRlc3RfbG9hZF9pbml0aWFsX2Nv
bmZ0ZXN0cyBpbiBkb2N1bWVudGF0aW9uCisgIGFuZCBpbXByb3ZlIGRvY3N0cmluZy4KKworLSBm
aXggaXNzdWU0NzI6IGNsYXJpZnkgdGhhdCBgYHB5dGVzdC5jb25maWcuZ2V0dmFsdWUoKWBgIGNh
bm5vdCB3b3JrCisgIGlmIGl0J3MgdHJpZ2dlcmVkIGFoZWFkIG9mIGNvbW1hbmQgbGluZSBwYXJz
aW5nLgorCistIG1lcmdlIFBSMTIzOiBpbXByb3ZlZCBpbnRlZ3JhdGlvbiB3aXRoIG1vY2sucGF0
Y2ggZGVjb3JhdG9yIG9uIHRlc3RzLgorCistIGZpeCBpc3N1ZTQxMjogbWVzc2luZyB3aXRoIHN0
ZG91dC9zdGRlcnIgRkQtbGV2ZWwgc3RyZWFtcyBpcyBub3cKKyAgY2FwdHVyZWQgd2l0aG91dCBj
cmFzaGVzLgorCistIGZpeCBpc3N1ZTQ4MzogdHJpYWwvcHkzMyB3b3JrcyBub3cgcHJvcGVybHku
ICBUaGFua3MgRGFuaWVsIEdyYW5hIGZvciBQUi4KKworLSBpbXByb3ZlIGV4YW1wbGUgZm9yIHB5
dGVzdCBpbnRlZ3JhdGlvbiB3aXRoICJweXRob24gc2V0dXAucHkgdGVzdCIKKyAgd2hpY2ggbm93
IGhhcyBhIGdlbmVyaWMgIi1hIiBvciAiLS1weXRlc3QtYXJncyIgb3B0aW9uIHdoZXJlIHlvdQor
ICBjYW4gcGFzcyBhZGRpdGlvbmFsIG9wdGlvbnMgYXMgYSBxdW90ZWQgc3RyaW5nLiAgVGhhbmtz
IFRyZXZvciBCZWtvbGF5LgorCistIHNpbXBsaWZpZWQgaW50ZXJuYWwgY2FwdHVyaW5nIG1lY2hh
bmlzbSBhbmQgbWFkZSBpdCBtb3JlIHJvYnVzdAorICBhZ2FpbnN0IHRlc3RzIG9yIHNldHVwcyBj
aGFuZ2luZyBGRDEvRkQyLCBhbHNvIGJldHRlciBpbnRlZ3JhdGVkCisgIG5vdyB3aXRoIHB5dGVz
dC5wZGIoKSBpbiBzaW5nbGUgdGVzdHMuCisKKy0gaW1wcm92ZW1lbnRzIHRvIHB5dGVzdCdzIG93
biB0ZXN0LXN1aXRlIGxlYWthZ2UgZGV0ZWN0aW9uLCBjb3VydGVzeSBvZiBQUnMKKyAgZnJvbSBN
YXJjIEFicmFtb3dpdHoKKworLSBmaXggaXNzdWU0OTI6IGF2b2lkIGxlYWsgaW4gdGVzdF93cml0
ZW9yZy4gIFRoYW5rcyBNYXJjIEFicmFtb3dpdHouCisKKy0gZml4IGlzc3VlNDkzOiBkb24ndCBy
dW4gdGVzdHMgaW4gZG9jIGRpcmVjdG9yeSB3aXRoIGBgcHl0aG9uIHNldHVwLnB5IHRlc3RgYAor
ICAodXNlIHRveCAtZSBkb2N0ZXN0aW5nIGZvciB0aGF0KQorCistIGZpeCBpc3N1ZTQ4NjogYmV0
dGVyIHJlcG9ydGluZyBhbmQgaGFuZGxpbmcgb2YgZWFybHkgY29uZnRlc3QgbG9hZGluZyBmYWls
dXJlcworCistIHNvbWUgY2xlYW51cCBhbmQgc2ltcGxpZmljYXRpb24gb2YgaW50ZXJuYWwgY29u
ZnRlc3QgaGFuZGxpbmcuCisKKy0gd29yayBhIGJpdCBoYXJkZXIgdG8gYnJlYWsgcmVmZXJlbmNl
IGN5Y2xlcyB3aGVuIGNhdGNoaW5nIGV4Y2VwdGlvbnMuCisgIFRoYW5rcyBKdXJrbyBHb3Nwb2Ru
ZXRpYy4KKworLSBmaXggaXNzdWU0NDM6IGZpeCBza2lwIGV4YW1wbGVzIHRvIHVzZSBwcm9wZXIg
Y29tcGFyaXNvbi4gIFRoYW5rcyBBbGV4CisgIEdyb2VuaG9sbS4KKworLSBzdXBwb3J0IG5vc2Ut
c3R5bGUgYGBfX3Rlc3RfX2BgIGF0dHJpYnV0ZSBvbiBtb2R1bGVzLCBjbGFzc2VzIGFuZAorICBm
dW5jdGlvbnMsIGluY2x1ZGluZyB1bml0dGVzdC1zdHlsZSBDbGFzc2VzLiAgSWYgc2V0IHRvIEZh
bHNlLCB0aGUKKyAgdGVzdCB3aWxsIG5vdCBiZSBjb2xsZWN0ZWQuCisKKy0gZml4IGlzc3VlNTEy
OiBzaG93ICI8bm90c2V0PiIgZm9yIGFyZ3VtZW50cyB3aGljaCBtaWdodCBub3QgYmUgc2V0Cisg
IGluIG1vbmtleXBhdGNoIHBsdWdpbi4gIEltcHJvdmVzIG91dHB1dCBpbiBkb2N1bWVudGF0aW9u
LgorCistIGF2b2lkIGltcG9ydGluZyAicHkudGVzdCIgKGFuIG9sZCBhbGlhcyBtb2R1bGUgZm9y
ICJweXRlc3QiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVh
c2UtMi42LjEucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi42LjEu
cnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjZmMjdjNTg2MWNhZTUzMGQzZWI2M2M2ZGRiMDI3MWJmMDdlNzM0NjIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0y
LjYuMS5yc3QKQEAgLTAsMCArMSw1OSBAQAorcHl0ZXN0LTIuNi4xOiBmaXhlcyBhbmQgbmV3IHhm
YWlsIGZlYXR1cmUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QgaXMgYSBtYXR1cmUgUHl0
aG9uIHRlc3RpbmcgdG9vbCB3aXRoIG1vcmUgdGhhbiBhIDExMDAgdGVzdHMKK2FnYWluc3QgaXRz
ZWxmLCBwYXNzaW5nIG9uIG1hbnkgZGlmZmVyZW50IGludGVycHJldGVycyBhbmQgcGxhdGZvcm1z
LgorVGhlIDIuNi4xIHJlbGVhc2UgaXMgZHJvcC1pbiBjb21wYXRpYmxlIHRvIDIuNS4yIGFuZCBh
Y3R1YWxseSBmaXhlcyBzb21lCityZWdyZXNzaW9ucyBpbnRyb2R1Y2VkIHdpdGggMi42LjAuICBJ
dCBhbHNvIGJyaW5ncyBhIGxpdHRsZSBmZWF0dXJlCit0byB0aGUgeGZhaWwgbWFya2VyIHdoaWNo
IG5vdyByZWNvZ25pemVzIGV4cGVjdGVkIGV4Y2VwdGlvbnMsCitzZWUgdGhlIENIQU5HRUxPRyBi
ZWxvdy4KKworU2VlIGRvY3MgYXQ6CisKKyAgICBodHRwOi8vcHl0ZXN0Lm9yZworCitBcyB1c3Vh
bCwgeW91IGNhbiB1cGdyYWRlIGZyb20gcHlwaSB2aWE6OgorCisgICAgcGlwIGluc3RhbGwgLVUg
cHl0ZXN0CisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkLCBhbW9uZyB0aGVtOgorCisg
ICAgRmxvcmlzIEJydXlub29naGUKKyAgICBCcnVubyBPbGl2ZWlyYQorICAgIE5pY29sYXMgRGVs
YWJ5CisKK2hhdmUgZnVuLAoraG9sZ2VyIGtyZWtlbAorCitDaGFuZ2VzIDIuNi4xCis9PT09PT09
PT09PT09PT09PQorCistIE5vIGxvbmdlciBzaG93IGxpbmUgbnVtYmVycyBpbiB0aGUgLS12ZXJi
b3NlIG91dHB1dCwgdGhlIG91dHB1dCBpcyBub3cKKyAgcHVyZWx5IHRoZSBub2RlaWQuICBUaGUg
bGluZSBudW1iZXIgaXMgc3RpbGwgc2hvd24gaW4gZmFpbHVyZSByZXBvcnRzLgorICBUaGFua3Mg
RmxvcmlzIEJydXlub29naGUuCisKKy0gZml4IGlzc3VlNDM3IHdoZXJlIGFzc2VydGlvbiByZXdy
aXRpbmcgY291bGQgY2F1c2UgcHl0ZXN0LXhkaXN0IHNsYXZlcworICB0byBjb2xsZWN0IGRpZmZl
cmVudCB0ZXN0cy4gVGhhbmtzIEJydW5vIE9saXZlaXJhLgorCistIGZpeCBpc3N1ZTU1NTogYWRk
ICJlcnJvcnMiIGF0dHJpYnV0ZSB0byBjYXB0dXJlLXN0cmVhbXMgdG8gc2F0aXNmeQorICBzb21l
IGRpc3R1dGlscyBhbmQgcG9zc2libHkgb3RoZXIgY29kZSBhY2Nlc3Npbmcgc3lzLnN0ZG91dC5l
cnJvcnMuCisKKy0gZml4IGlzc3VlNTQ3IGNhcHN5cy9jYXBmZCBhbHNvIHdvcmsgd2hlbiBvdXRw
dXQgY2FwdHVyaW5nICgiLXMiKSBpcyBkaXNhYmxlZC4KKworLSBhZGRyZXNzIGlzc3VlMTcwOiBh
bGxvdyBweXRlc3QubWFyay54ZmFpbCguLi4pIHRvIHNwZWNpZnkgZXhwZWN0ZWQgZXhjZXB0aW9u
cyB2aWEKKyAgYW4gb3B0aW9uYWwgInJhaXNlcz1FWEMiIGFyZ3VtZW50IHdoZXJlIEVYQyBjYW4g
YmUgYSBzaW5nbGUgZXhjZXB0aW9uCisgIG9yIGEgdHVwbGUgb2YgZXhjZXB0aW9uIGNsYXNzZXMu
ICBUaGFua3MgRGF2aWQgTW9ociBmb3IgdGhlIGNvbXBsZXRlCisgIFBSLgorCistIGZpeCBpbnRl
Z3JhdGlvbiBvZiBweXRlc3Qgd2l0aCB1bml0dGVzdC5tb2NrLnBhdGNoIGRlY29yYXRvciB3aGVu
CisgIGl0IHVzZXMgdGhlICJuZXciIGFyZ3VtZW50LiAgVGhhbmtzIE5pY29sYXMgRGVsYWJ5IGZv
ciB0ZXN0IGFuZCBQUi4KKworLSBmaXggaXNzdWUgd2l0aCBkZXRlY3RpbmcgY29uZnRlc3QgZmls
ZXMgaWYgdGhlIGFyZ3VtZW50cyBjb250YWluCisgICI6OiIgbm9kZSBpZCBzcGVjaWZpY2F0aW9u
cyAoY29weSBwYXN0ZWQgZnJvbSAiLXYiIG91dHB1dCkKKworLSBmaXggaXNzdWU1NDQgYnkgb25s
eSByZW1vdmluZyAiQE5VTSIgYXQgdGhlIGVuZCBvZiAiOjoiIHNlcGFyYXRlZCBwYXJ0cworICBh
bmQgaWYgdGhlIHBhcnQgaGFzIGFuICIucHkiIGV4dGVuc2lvbgorCistIGRvbid0IHVzZSBweS5z
dGQgaW1wb3J0IGhlbHBlciwgcmF0aGVyIGltcG9ydCB0aGluZ3MgZGlyZWN0bHkuCisgIFRoYW5r
cyBCcnVubyBPbGl2ZWlyYS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtMi42LjIucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVh
c2UtMi42LjIucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlZmM3M2E0ZWFhZGI2NWFiZTFiMDI4OWY4YTUzYzM4
ZmYxYTRkNTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2Uv
cmVsZWFzZS0yLjYuMi5yc3QKQEAgLTAsMCArMSw1MiBAQAorcHl0ZXN0LTIuNi4yOiBmZXcgZml4
ZXMgYW5kIGN4X2ZyZWV6ZSBzdXBwb3J0Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworcHl0ZXN0IGlz
IGEgbWF0dXJlIFB5dGhvbiB0ZXN0aW5nIHRvb2wgd2l0aCBtb3JlIHRoYW4gYSAxMTAwIHRlc3Rz
CithZ2FpbnN0IGl0c2VsZiwgcGFzc2luZyBvbiBtYW55IGRpZmZlcmVudCBpbnRlcnByZXRlcnMg
YW5kIHBsYXRmb3Jtcy4KK1RoaXMgcmVsZWFzZSBpcyBkcm9wLWluIGNvbXBhdGlibGUgdG8gMi41
LjIgYW5kIDIuNi5YLiAgSXQgYWxzbworYnJpbmdzIHN1cHBvcnQgZm9yIGluY2x1ZGluZyBweXRl
c3Qgd2l0aCBjeF9mcmVlemUgb3Igc2ltaWxhcgorZnJlZXppbmcgdG9vbHMgaW50byB5b3VyIHNp
bmdsZS1maWxlIGFwcCBkaXN0cmlidXRpb24uICBGb3IgZGV0YWlscworc2VlIHRoZSBDSEFOR0VM
T0cgYmVsb3cuCisKK1NlZSBkb2NzIGF0OgorCisgICAgaHR0cDovL3B5dGVzdC5vcmcKKworQXMg
dXN1YWwsIHlvdSBjYW4gdXBncmFkZSBmcm9tIHB5cGkgdmlhOjoKKworICAgIHBpcCBpbnN0YWxs
IC1VIHB5dGVzdAorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCwgYW1vbmcgdGhlbToK
KworICAgIEZsb3JpcyBCcnV5bm9vZ2hlCisgICAgQmVuamFtaW4gUGV0ZXJzb24KKyAgICBCcnVu
byBPbGl2ZWlyYQorCitoYXZlIGZ1biwKK2hvbGdlciBrcmVrZWwKKworMi42LjIKKy0tLS0tLS0t
LS0tCisKKy0gQWRkZWQgZnVuY3Rpb24gcHl0ZXN0LmZyZWV6ZV9pbmNsdWRlcygpLCB3aGljaCBt
YWtlcyBpdCBlYXN5IHRvIGVtYmVkCisgIHB5dGVzdCBpbnRvIGV4ZWN1dGFibGVzIHVzaW5nIHRv
b2xzIGxpa2UgY3hfZnJlZXplLgorICBTZWUgZG9jcyBmb3IgZXhhbXBsZXMgYW5kIHJhdGlvbmFs
ZS4gVGhhbmtzIEJydW5vIE9saXZlaXJhLgorCistIEltcHJvdmUgYXNzZXJ0aW9uIHJld3JpdGlu
ZyBjYWNoZSBpbnZhbGlkYXRpb24gcHJlY2lzaW9uLgorCistIGZpeGVkIGlzc3VlNTYxOiBhZGFw
dCBhdXRvdXNlIGZpeHR1cmUgZXhhbXBsZSBmb3IgcHl0aG9uMy4KKworLSBmaXhlZCBpc3N1ZTQ1
MzogYXNzZXJ0aW9uIHJld3JpdGluZyBpc3N1ZSB3aXRoIF9fcmVwcl9fIGNvbnRhaW5pbmcKKyAg
IlxueyIsICJcbn0iIGFuZCAiXG5+Ii4KKworLSBmaXggaXNzdWU1NjA6IGNvcnJlY3RseSBkaXNw
bGF5IGNvZGUgaWYgYW4gImVsc2U6IiBvciAiZmluYWxseToiIGlzCisgIGZvbGxvd2VkIGJ5IHN0
YXRlbWVudHMgb24gdGhlIHNhbWUgbGluZS4KKworLSBGaXggZXhhbXBsZSBpbiBtb25rZXlwYXRj
aCBkb2N1bWVudGF0aW9uLCB0aGFua3MgdC04Y2guCisKKy0gZml4IGlzc3VlNTcyOiBjb3JyZWN0
IHRtcGRpciBkb2MgZXhhbXBsZSBmb3IgcHl0aG9uMy4KKworLSBEbyBub3QgbWFyayBhcyB1bml2
ZXJzYWwgd2hlZWwgYmVjYXVzZSBQeXRob24gMi42IGlzIGRpZmZlcmVudCBmcm9tCisgIG90aGVy
IGJ1aWxkcyBkdWUgdG8gdGhlIGV4dHJhIGFyZ3BhcnNlIGRlcGVuZGVuY3kuICBGaXhlcyBpc3N1
ZTU2Ni4KKyAgVGhhbmtzIHNvbnRlay4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2Fubm91bmNlL3JlbGVhc2UtMi42LjMucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3JlbGVhc2UtMi42LjMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlMGQyNjkyYzQ3NDVjM2UzYzA0OTg1ZGYx
ZmIyN2E3ZjFjMDdhOGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5u
b3VuY2UvcmVsZWFzZS0yLjYuMy5yc3QKQEAgLTAsMCArMSw1MiBAQAorcHl0ZXN0LTIuNi4zOiBm
aXhlcyBhbmQgbGl0dGxlIGltcHJvdmVtZW50cworPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVz
dCBpcyBhIG1hdHVyZSBQeXRob24gdGVzdGluZyB0b29sIHdpdGggbW9yZSB0aGFuIGEgMTEwMCB0
ZXN0cworYWdhaW5zdCBpdHNlbGYsIHBhc3Npbmcgb24gbWFueSBkaWZmZXJlbnQgaW50ZXJwcmV0
ZXJzIGFuZCBwbGF0Zm9ybXMuCitUaGlzIHJlbGVhc2UgaXMgZHJvcC1pbiBjb21wYXRpYmxlIHRv
IDIuNS4yIGFuZCAyLjYuWC4KK1NlZSBiZWxvdyBmb3IgdGhlIGNoYW5nZXMgYW5kIHNlZSBkb2Nz
IGF0OgorCisgICAgaHR0cDovL3B5dGVzdC5vcmcKKworQXMgdXN1YWwsIHlvdSBjYW4gdXBncmFk
ZSBmcm9tIHB5cGkgdmlhOjoKKworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdAorCitUaGFua3Mg
dG8gYWxsIHdobyBjb250cmlidXRlZCwgYW1vbmcgdGhlbToKKworICAgIEZsb3JpcyBCcnV5bm9v
Z2hlCisgICAgT2xlZyBTaW55YXZza2l5CisgICAgVXdlIFNjaG1pdHQKKyAgICBDaGFybGVzIENs
b3VkCisgICAgV29sZmdhbmcgU2NobmVycmluZworCitoYXZlIGZ1biwKK2hvbGdlciBrcmVrZWwK
KworQ2hhbmdlcyAyLjYuMworPT09PT09PT09PT09PT09PT09PT09PQorCistIGZpeCBpc3N1ZTU3
NTogeHVuaXQteG1sIHdhcyByZXBvcnRpbmcgY29sbGVjdGlvbiBlcnJvcnMgYXMgZmFpbHVyZXMK
KyAgaW5zdGVhZCBvZiBlcnJvcnMsIHRoYW5rcyBPbGVnIFNpbnlhdnNraXkuCisKKy0gZml4IGlz
c3VlNTgyOiBmaXggc2V0dXB0b29scyBleGFtcGxlLCB0aGFua3MgTGFzemxvIFBhcHAgYW5kIFJv
bm55CisgIFBmYW5uc2NobWlkdC4KKworLSBGaXggaW5maW5pdGUgcmVjdXJzaW9uIGJ1ZyB3aGVu
IHBpY2tsaW5nIGNhcHR1cmUuRW5jb2RlZEZpbGUsIHRoYW5rcworICBVd2UgU2NobWl0dC4KKwor
LSBmaXggaXNzdWU1ODk6IGZpeCBiYWQgaW50ZXJhY3Rpb24gd2l0aCBudW1weSBhbmQgb3RoZXJz
IHdoZW4gc2hvd2luZworICBleGNlcHRpb25zLiAgQ2hlY2sgZm9yIHByZWNpc2UgIm1heGltdW0g
cmVjdXJzaW9uIGRlcHRoIGV4Y2VlZCIgZXhjZXB0aW9uCisgIGluc3RlYWQgb2YgcHJlc3VtaW5n
IGFueSBSdW50aW1lRXJyb3IgaXMgdGhhdCBvbmUgKGltcGxlbWVudGVkIGluIHB5CisgIGRlcCku
ICBUaGFua3MgQ2hhcmxlcyBDbG91ZCBmb3IgYW5hbHlzaW5nIHRoZSBpc3N1ZS4KKworLSBmaXgg
Y29uZnRlc3QgcmVsYXRlZCBmaXh0dXJlIHZpc2liaWxpdHkgaXNzdWU6IHdoZW4gcnVubmluZyB3
aXRoIGEKKyAgQ1dEIG91dHNpZGUgb2YgYSB0ZXN0IHBhY2thZ2UgcHl0ZXN0IHdvdWxkIGdldCBm
aXh0dXJlIGRpc2NvdmVyeSB3cm9uZy4KKyAgVGhhbmtzIHRvIFdvbGZnYW5nIFNjaG5lcnJpbmcg
Zm9yIGZpZ3VyaW5nIG91dCBhIHJlcHJvZHVjaWJsZSBleGFtcGxlLgorCistIEludHJvZHVjZSBw
eXRlc3RfZW50ZXJfcGRiIGhvb2sgKG5lZWRlZCBlLmcuIGJ5IHB5dGVzdF90aW1lb3V0IHRvIGNh
bmNlbCB0aGUKKyAgdGltZW91dCB3aGVuIGludGVyYWN0aXZlbHkgZW50ZXJpbmcgcGRiKS4gIFRo
YW5rcyBXb2xmZ2FuZyBTY2huZXJyaW5nLgorCistIGNoZWNrIHhmYWlsL3NraXAgYWxzbyB3aXRo
IG5vbi1weXRob24gZnVuY3Rpb24gdGVzdCBpdGVtcy4gVGhhbmtzCisgIEZsb3JpcyBCcnV5bm9v
Z2hlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0y
LjcuMC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjcuMC5yc3QK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNGUzMTdmZjhmMzQ3NWFhNWYzNzBjMDY2MGRjNmFhNjNjZjE4NTU0ZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNy4w
LnJzdApAQCAtMCwwICsxLDEwMSBAQAorcHl0ZXN0LTIuNy4wOiBmaXhlcywgZmVhdHVyZXMsIHNw
ZWVkIGltcHJvdmVtZW50cworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdCBpcyBhIG1hdHVy
ZSBQeXRob24gdGVzdGluZyB0b29sIHdpdGggbW9yZSB0aGFuIGEgMTEwMCB0ZXN0cworYWdhaW5z
dCBpdHNlbGYsIHBhc3Npbmcgb24gbWFueSBkaWZmZXJlbnQgaW50ZXJwcmV0ZXJzIGFuZCBwbGF0
Zm9ybXMuCitUaGlzIHJlbGVhc2UgaXMgc3VwcG9zZWQgdG8gYmUgZHJvcC1pbiBjb21wYXRpYmxl
IHRvIDIuNi5YLgorCitTZWUgYmVsb3cgZm9yIHRoZSBjaGFuZ2VzIGFuZCBzZWUgZG9jcyBhdDoK
KworICAgIGh0dHA6Ly9weXRlc3Qub3JnCisKK0FzIHVzdWFsLCB5b3UgY2FuIHVwZ3JhZGUgZnJv
bSBweXBpIHZpYTo6CisKKyAgICBwaXAgaW5zdGFsbCAtVSBweXRlc3QKKworVGhhbmtzIHRvIGFs
bCB3aG8gY29udHJpYnV0ZWQsIGFtb25nIHRoZW06CisKKyAgICBBbmF0b2x5IEJ1YmVua29mZgor
ICAgIEZsb3JpcyBCcnV5bm9vZ2hlCisgICAgQnJpYW5uYSBMYXVnaGVyCisgICAgRXJpYyBTaWVn
ZXJtYW4KKyAgICBEYW5pZWwgSGFobGVyCisgICAgQ2hhcmxlcyBDbG91ZAorICAgIFRvbSBWaW5l
cgorICAgIEhvbGdlciBQZXRlcnMKKyAgICBMZGlhcnkgVHJhbnNsYXRpb25zCisgICAgYWxtYXJr
bGVpbgorCitoYXZlIGZ1biwKK2hvbGdlciBrcmVrZWwKKworMi43LjAgKGNvbXBhcmVkIHRvIDIu
Ni40KQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBmaXggaXNzdWU0MzU6IG1h
a2UgcmVsb2FkKCkgd29yayB3aGVuIGFzc2VydCByZXdyaXRpbmcgaXMgYWN0aXZlLgorICBUaGFu
a3MgRGFuaWVsIEhhaGxlci4KKworLSBmaXggaXNzdWU2MTY6IGNvbmZ0ZXN0LnB5IGZpbGVzIGFu
ZCB0aGVpciBjb250YWluZWQgZml4dXRyZXMgYXJlIG5vdworICBwcm9wZXJseSBjb25zaWRlcmVk
IGZvciB2aXNpYmlsaXR5LCBpbmRlcGVuZGVudGx5IGZyb20gdGhlIGV4YWN0CisgIGN1cnJlbnQg
d29ya2luZyBkaXJlY3RvcnkgYW5kIHRlc3QgYXJndW1lbnRzIHRoYXQgYXJlIHVzZWQuCisgIE1h
bnkgdGhhbmtzIHRvIEVyaWMgU2llZ2VybWFuIGFuZCBoaXMgUFIyMzUgd2hpY2ggY29udGFpbnMK
KyAgc3lzdGVtYXRpYyB0ZXN0cyBmb3IgY29uZnRlc3QgdmlzaWJpbGl0eSBhbmQgbm93IHBhc3Nl
cy4KKyAgVGhpcyBjaGFuZ2UgYWxzbyBpbnRyb2R1Y2VzIHRoZSBjb25jZXB0IG9mIGEgYGByb290
ZGlyYGAgd2hpY2gKKyAgaXMgcHJpbnRlZCBhcyBhIG5ldyBweXRlc3QgaGVhZGVyIGFuZCBkb2N1
bWVudGVkIGluIHRoZSBweXRlc3QKKyAgY3VzdG9taXplIHdlYiBwYWdlLgorCistIGNoYW5nZSBy
ZXBvcnRpbmcgb2YgImRpdmVydGVkIiB0ZXN0cywgaS5lLiB0ZXN0cyB0aGF0IGFyZSBjb2xsZWN0
ZWQKKyAgaW4gb25lIGZpbGUgYnV0IGFjdHVhbGx5IGNvbWUgZnJvbSBhbm90aGVyIChlLmcuIHdo
ZW4gdGVzdHMgaW4gYSB0ZXN0IGNsYXNzCisgIGNvbWUgZnJvbSBhIGJhc2UgY2xhc3MgaW4gYSBk
aWZmZXJlbnQgZmlsZSkuICBXZSBub3cgc2hvdyB0aGUgbm9kZWlkCisgIGFuZCBpbmRpY2F0ZSB2
aWEgYSBwb3N0Zml4IHRoZSBvdGhlciBmaWxlLgorCistIGFkZCBhYmlsaXR5IHRvIHNldCBjb21t
YW5kIGxpbmUgb3B0aW9ucyBieSBlbnZpcm9ubWVudCB2YXJpYWJsZSBQWVRFU1RfQURET1BUUy4K
KworLSBhZGRlZCBkb2N1bWVudGF0aW9uIG9uIHRoZSBuZXcgcHl0ZXN0LWRldiB0ZWFtcyBvbiBi
aXRidWNrZXQgYW5kCisgIGdpdGh1Yi4gIFNlZSBodHRwczovL3B5dGVzdC5vcmcvbGF0ZXN0L2Nv
bnRyaWJ1dGluZy5odG1sIC4KKyAgVGhhbmtzIHRvIEFuYXRvbHkgZm9yIHB1c2hpbmcgYW5kIGlu
aXRpYWwgd29yayBvbiB0aGlzLgorCistIGZpeCBpc3N1ZTY1MDogbmV3IG9wdGlvbiBgYC0tZG9j
dHRlc3QtaWdub3JlLWltcG9ydC1lcnJvcnNgYCB3aGljaAorICB3aWxsIHR1cm4gaW1wb3J0IGVy
cm9ycyBpbiBkb2N0ZXN0cyBpbnRvIHNraXBzLiAgVGhhbmtzIENoYXJsZXMgQ2xvdWQKKyAgZm9y
IHRoZSBjb21wbGV0ZSBQUi4KKworLSBmaXggaXNzdWU2NTU6IHdvcmsgYXJvdW5kIGRpZmZlcmVu
dCB3YXlzIHRoYXQgY2F1c2UgcHl0aG9uMi8zCisgIHRvIGxlYWsgc3lzLmV4Y19pbmZvIGludG8g
Zml4dHVyZXMvdGVzdHMgY2F1c2luZyBmYWlsdXJlcyBpbiAzcmQgcGFydHkgY29kZQorCistIGZp
eCBpc3N1ZTYxNTogYXNzZXJ0aW9uIHJld3JpdGluZyBkaWQgbm90IGNvcnJlY3RseSBlc2NhcGUg
JSBzaWducworICB3aGVuIGZvcm1hdHRpbmcgYm9vbGVhbiBvcGVyYXRpb25zLCB3aGljaCB0cmlw
cGVkIG92ZXIgbWl4aW5nCisgIGJvb2xlYW5zIHdpdGggbW9kdWxvIG9wZXJhdG9ycy4gIFRoYW5r
cyB0byBUb20gVmluZXIgZm9yIHRoZSByZXBvcnQsCisgIHRyaWFnaW5nIGFuZCBmaXguCisKKy0g
aW1wbGVtZW50IGlzc3VlMzUxOiBhZGQgYWJpbGl0eSB0byBzcGVjaWZ5IHBhcmFtZXRyaXplIGlk
cyBhcyBhIGNhbGxhYmxlCisgIHRvIGdlbmVyYXRlIGN1c3RvbSB0ZXN0IGlkcy4gIFRoYW5rcyBC
cmlhbm5hIExhdWdoZXIgZm9yIHRoZSBpZGVhIGFuZAorICBpbXBsZW1lbnRhdGlvbi4KKworLSBp
bnRyb2R1Y2UgYW5kIGRvY3VtZW50IG5ldyBob29rd3JhcHBlciBtZWNoYW5pc20gdXNlZnVsIGZv
ciBwbHVnaW5zCisgIHdoaWNoIHdhbnQgdG8gd3JhcCB0aGUgZXhlY3V0aW9uIG9mIGNlcnRhaW4g
aG9va3MgZm9yIHRoZWlyIHB1cnBvc2VzLgorICBUaGlzIHN1cGVyc2VkZXMgdGhlIHVuZG9jdW1l
bnRlZCBgYF9fbXVsdGljYWxsX19gYCBwcm90b2NvbCB3aGljaAorICBweXRlc3QgaXRzZWxmIGFu
ZCBzb21lIGV4dGVybmFsIHBsdWdpbnMgdXNlLiAgTm90ZSB0aGF0IHB5dGVzdC0yLjgKKyAgaXMg
c2NoZWR1bGVkIHRvIGRyb3Agc3VwcG9ydGluZyB0aGUgb2xkIGBgX19tdWx0aWNhbGxfX2BgCisg
IGFuZCBvbmx5IHN1cHBvcnQgdGhlIGhvb2t3cmFwcGVyIHByb3RvY29sLgorCistIG1ham9ybHkg
c3BlZWQgdXAgaW52b2NhdGlvbiBvZiBwbHVnaW4gaG9va3MKKworLSB1c2UgaG9va3dyYXBwZXIg
bWVjaGFuaXNtIGluIGJ1aWx0aW4gcHl0ZXN0IHBsdWdpbnMuCisKKy0gYWRkIGEgZG9jdGVzdCBp
bmkgb3B0aW9uIGZvciBkb2N0ZXN0IGZsYWdzLCB0aGFua3MgSG9sZ2VyIFBldGVycy4KKworLSBh
ZGQgbm90ZSB0byBkb2NzIHRoYXQgaWYgeW91IHdhbnQgdG8gbWFyayBhIHBhcmFtZXRlciBhbmQg
dGhlCisgIHBhcmFtZXRlciBpcyBhIGNhbGxhYmxlLCB5b3UgYWxzbyBuZWVkIHRvIHBhc3MgaW4g
YSByZWFzb24gdG8gZGlzYW1iaWd1YXRlCisgIGl0IGZyb20gdGhlICJkZWNvcmF0b3IiIGNhc2Uu
ICBUaGFua3MgVG9tIFZpbmVyLgorCistICJweXRob25fY2xhc3NlcyIgYW5kICJweXRob25fZnVu
Y3Rpb25zIiBvcHRpb25zIG5vdyBzdXBwb3J0IGdsb2ItcGF0dGVybnMKKyAgZm9yIHRlc3QgZGlz
Y292ZXJ5LCBhcyBkaXNjdXNzZWQgaW4gaXNzdWU2MDAuIFRoYW5rcyBMZGlhcnkgVHJhbnNsYXRp
b25zLgorCistIGFsbG93IHRvIG92ZXJyaWRlIHBhcmFtZXRyaXplZCBmaXh0dXJlcyB3aXRoIG5v
bi1wYXJhbWV0cml6ZWQgb25lcyBhbmQgdmljZSB2ZXJzYSAoYnViZW5rb2ZmKS4KKworLSBmaXgg
aXNzdWU0NjM6IHJhaXNlIHNwZWNpZmljIGVycm9yIGZvciAncGFyYW1ldGVyaXplJyBtaXNzcGVs
bGluZyAocGZjdGRheWVsaXNlKS4KKworLSBPbiBmYWlsdXJlLCB0aGUgYGBzeXMubGFzdF92YWx1
ZWBgLCBgYHN5cy5sYXN0X3R5cGVgYCBhbmQKKyAgYGBzeXMubGFzdF90cmFjZWJhY2tgYCBhcmUg
c2V0LCBzbyB0aGF0IGEgdXNlciBjYW4gaW5zcGVjdCB0aGUgZXJyb3IKKyAgdmlhIHBvc3Rtb3J0
ZW0gZGVidWdnaW5nIChhbG1hcmtsZWluKS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Fubm91bmNlL3JlbGVhc2UtMi43LjEucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtMi43LjEucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkYzcxZWViYmE5NWYzMzExOTRlNWY0
ZjE5MjYxMjUzYjUyZmE5MjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
YW5ub3VuY2UvcmVsZWFzZS0yLjcuMS5yc3QKQEAgLTAsMCArMSw1OCBAQAorcHl0ZXN0LTIuNy4x
OiBidWcgZml4ZXMKKz09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdCBpcyBhIG1hdHVy
ZSBQeXRob24gdGVzdGluZyB0b29sIHdpdGggbW9yZSB0aGFuIGEgMTEwMCB0ZXN0cworYWdhaW5z
dCBpdHNlbGYsIHBhc3Npbmcgb24gbWFueSBkaWZmZXJlbnQgaW50ZXJwcmV0ZXJzIGFuZCBwbGF0
Zm9ybXMuCitUaGlzIHJlbGVhc2UgaXMgc3VwcG9zZWQgdG8gYmUgZHJvcC1pbiBjb21wYXRpYmxl
IHRvIDIuNy4wLgorCitTZWUgYmVsb3cgZm9yIHRoZSBjaGFuZ2VzIGFuZCBzZWUgZG9jcyBhdDoK
KworICAgIGh0dHA6Ly9weXRlc3Qub3JnCisKK0FzIHVzdWFsLCB5b3UgY2FuIHVwZ3JhZGUgZnJv
bSBweXBpIHZpYTo6CisKKyAgICBwaXAgaW5zdGFsbCAtVSBweXRlc3QKKworVGhhbmtzIHRvIGFs
bCB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisgICAgQnJ1
bm8gT2xpdmVpcmEKKyAgICBIb2xnZXIgS3Jla2VsCisgICAgSW9uZWwgTWFyaWVzIENyaXN0aWFu
CisgICAgRmxvcmlzIEJydXlub29naGUKKworSGFwcHkgdGVzdGluZywKK1RoZSBweS50ZXN0IERl
dmVsb3BtZW50IFRlYW0KKworCisyLjcuMSAoY29tcGFyZWQgdG8gMi43LjApCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKKy0gZml4IGlzc3VlNzMxOiBkbyBub3QgZ2V0IGNvbmZ1c2VkIGJ5
IHRoZSBicmFjZXMgd2hpY2ggbWF5IGJlIHByZXNlbnQKKyAgYW5kIHVuYmFsYW5jZWQgaW4gYW4g
b2JqZWN0J3MgcmVwciB3aGlsZSBjb2xsYXBzaW5nIEZhbHNlCisgIGV4cGxhbmF0aW9ucy4gIFRo
YW5rcyBDYXJsIE1leWVyIGZvciB0aGUgcmVwb3J0IGFuZCB0ZXN0IGNhc2UuCisKKy0gZml4IGlz
c3VlNTUzOiBwcm9wZXJseSBoYW5kbGluZyBpbnNwZWN0LmdldHNvdXJjZWxpbmVzIGZhaWx1cmVz
IGluCisgIEZpeHR1cmVMb29rdXBFcnJvciB3aGljaCB3b3VsZCBsZWFkIHRvIGFuIGludGVybmFs
IGVycm9yLAorICBvYmZ1c2NhdGluZyB0aGUgb3JpZ2luYWwgcHJvYmxlbS4gVGhhbmtzIHRhbGxq
b3NoIGZvciBpbml0aWFsCisgIGRpYWdub3NlL3BhdGNoIGFuZCBCcnVubyBPbGl2ZWlyYSBmb3Ig
ZmluYWwgcGF0Y2guCisKKy0gZml4IGlzc3VlNjYwOiBwcm9wZXJseSByZXBvcnQgc2NvcGUtbWlz
bWF0Y2gtYWNjZXNzIGVycm9ycworICBpbmRlcGVuZGVudGx5IGZyb20gb3JkZXJpbmcgb2YgZml4
dHVyZSBhcmd1bWVudHMuICBBbHNvCisgIGF2b2lkIHRoZSBweXRlc3QgaW50ZXJuYWwgdHJhY2Vi
YWNrIHdoaWNoIGRvZXMgbm90IHByb3ZpZGUKKyAgaW5mb3JtYXRpb24gdG8gdGhlIHVzZXIuIFRo
YW5rcyBIb2xnZXIgS3Jla2VsLgorCistIHN0cmVhbWxpbmVkIGFuZCBkb2N1bWVudGVkIHJlbGVh
c2UgcHJvY2Vzcy4gIEFsc28gYWxsIHZlcnNpb25zCisgIChpbiBzZXR1cC5weSBhbmQgZG9jdW1l
bnRhdGlvbiBnZW5lcmF0aW9uKSBhcmUgbm93IHJlYWQKKyAgZnJvbSBfcHl0ZXN0L19faW5pdF9f
LnB5LiBUaGFua3MgSG9sZ2VyIEtyZWtlbC4KKworLSBmaXhlZCBkb2NzIHRvIHJlbW92ZSB0aGUg
bm90aW9uIHRoYXQgeWllbGQtZml4dHVyZXMgYXJlIGV4cGVyaW1lbnRhbC4KKyAgVGhleSBhcmUg
aGVyZSB0byBzdGF5IDopICBUaGFua3MgQnJ1bm8gT2xpdmVpcmEuCisKKy0gU3VwcG9ydCBidWls
ZGluZyB3aGVlbHMgYnkgdXNpbmcgZW52aXJvbm1lbnQgbWFya2VycyBmb3IgdGhlCisgIHJlcXVp
cmVtZW50cy4gIFRoYW5rcyBJb25lbCBNYXJpZXMgQ3Jpc3RpYW4uCisKKy0gZml4ZWQgcmVncmVz
c2lvbiB0byAyLjYuNCB3aGljaCBzdXJmYWNlZCBlLmcuIGluIGxvc3Qgc3Rkb3V0IGNhcHR1cmUg
cHJpbnRpbmcKKyAgd2hlbiB0ZXN0cyByYWlzZWQgU3lzdGVtRXhpdC4gVGhhbmtzIEhvbGdlciBL
cmVrZWwuCisKKy0gcmVpbnRyb2R1Y2VkIF9weXRlc3QgZml4dHVyZSBvZiB0aGUgcHl0ZXN0ZXIg
cGx1Z2luIHdoaWNoIGlzIHVzZWQKKyAgYXQgbGVhc3QgYnkgcHl0ZXN0LXhkaXN0LgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi43LjIucnN0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi43LjIucnN0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5
MTMwYWQ2MjNmNTJlYzg5MDRhYmI1M2JhNjUyN2UyMDQ1OWVkNmMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjcuMi5yc3QKQEAgLTAsMCAr
MSw1OCBAQAorcHl0ZXN0LTIuNy4yOiBidWcgZml4ZXMKKz09PT09PT09PT09PT09PT09PT09PT09
CisKK3B5dGVzdCBpcyBhIG1hdHVyZSBQeXRob24gdGVzdGluZyB0b29sIHdpdGggbW9yZSB0aGFu
IGEgMTEwMCB0ZXN0cworYWdhaW5zdCBpdHNlbGYsIHBhc3Npbmcgb24gbWFueSBkaWZmZXJlbnQg
aW50ZXJwcmV0ZXJzIGFuZCBwbGF0Zm9ybXMuCitUaGlzIHJlbGVhc2UgaXMgc3VwcG9zZWQgdG8g
YmUgZHJvcC1pbiBjb21wYXRpYmxlIHRvIDIuNy4xLgorCitTZWUgYmVsb3cgZm9yIHRoZSBjaGFu
Z2VzIGFuZCBzZWUgZG9jcyBhdDoKKworICAgIGh0dHA6Ly9weXRlc3Qub3JnCisKK0FzIHVzdWFs
LCB5b3UgY2FuIHVwZ3JhZGUgZnJvbSBweXBpIHZpYTo6CisKKyAgICBwaXAgaW5zdGFsbCAtVSBw
eXRlc3QKKworVGhhbmtzIHRvIGFsbCB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBh
bW9uZyB0aGVtOgorCisgICAgQnJ1bm8gT2xpdmVpcmEKKyAgICBGbG9yaXMgQnJ1eW5vb2doZQor
ICAgIFB1bnlhc2hsb2thIEJpc3dhbAorICAgIEFyb24gQ3Vyem9uCisgICAgQmVuamFtaW4gUGV0
ZXJzb24KKyAgICBUaG9tYXMgRGUgU2NoYW1waGVsZWlyZQorICAgIEVkaXNvbiBHdXN0YXZvIE11
ZW56CisgICAgSG9sZ2VyIEtyZWtlbAorCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5LnRlc3QgRGV2
ZWxvcG1lbnQgVGVhbQorCisKKzIuNy4yIChjb21wYXJlZCB0byAyLjcuMSkKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gZml4IGlzc3VlNzY3OiBweXRlc3QucmFpc2VzIHZhbHVl
IGF0dHJpYnV0ZSBkb2VzIG5vdCBjb250YWluIHRoZSBleGNlcHRpb24KKyAgaW5zdGFuY2Ugb24g
UHl0aG9uIDIuNi4gVGhhbmtzIEVyaWMgU2llZ2VybWFuIGZvciBwcm92aWRpbmcgdGhlIHRlc3QK
KyAgY2FzZSBhbmQgQnJ1bm8gT2xpdmVpcmEgZm9yIFBSLgorCistIEF1dG9tYXRpY2FsbHkgY3Jl
YXRlIGRpcmVjdG9yeSBmb3IganVuaXR4bWwgYW5kIHJlc3VsdHMgbG9nLgorICBUaGFua3MgQXJv
biBDdXJ6b24uCisKKy0gZml4IGlzc3VlNzEzOiBKVW5pdCBYTUwgcmVwb3J0cyBmb3IgZG9jdGVz
dCBmYWlsdXJlcy4KKyAgVGhhbmtzIFB1bnlhc2hsb2thIEJpc3dhbC4KKworLSBmaXggaXNzdWU3
MzU6IGFzc2VydGlvbiBmYWlsdXJlcyBvbiBkZWJ1ZyB2ZXJzaW9ucyBvZiBQeXRob24gMy40Kwor
ICBUaGFua3MgQmVuamFtaW4gUGV0ZXJzb24uCisKKy0gZml4IGlzc3VlMTE0OiBza2lwaWYgbWFy
a2VyIHJlcG9ydHMgdG8gaW50ZXJuYWwgc2tpcHBpbmcgcGx1Z2luOworICBUaGFua3MgRmxvcmlz
IEJydXlub29naGUgZm9yIHJlcG9ydGluZyBhbmQgQnJ1bm8gT2xpdmVpcmEgZm9yIHRoZSBQUi4K
KworLSBmaXggaXNzdWU3NDg6IHVuaXR0ZXN0LlNraXBUZXN0IHJlcG9ydHMgdG8gaW50ZXJuYWwg
cHl0ZXN0IHVuaXR0ZXN0IHBsdWdpbi4KKyAgVGhhbmtzIFRob21hcyBEZSBTY2hhbXBoZWxlaXJl
IGZvciByZXBvcnRpbmcgYW5kIEJydW5vIE9saXZlaXJhIGZvciB0aGUgUFIuCisKKy0gZml4IGlz
c3VlNzE4OiBmYWlsZWQgdG8gY3JlYXRlIHJlcHJlc2VudGF0aW9uIG9mIHNldHMgY29udGFpbmlu
ZyB1bnNvcnRhYmxlCisgIGVsZW1lbnRzIGluIHB5dGhvbiAyLiBUaGFua3MgRWRpc29uIEd1c3Rh
dm8gTXVlbnoKKworLSBmaXggaXNzdWU3NTYsIGZpeCBpc3N1ZTc1MiAoYW5kIHNpbWlsYXIgaXNz
dWVzKTogZGVwZW5kIG9uIHB5LTEuNC4yOQorICB3aGljaCBoYXMgYSByZWZpbmVkIGFsZ29yaXRo
bSBmb3IgdHJhY2ViYWNrIGdlbmVyYXRpb24uCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuOC4yLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5v
dW5jZS9yZWxlYXNlLTIuOC4yLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzAyODYxNjE0MjI1ZGNmZmZmYzYz
YjM0MmY3MjI4NzZmYzRjZWY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2Fubm91bmNlL3JlbGVhc2UtMi44LjIucnN0CkBAIC0wLDAgKzEsNDQgQEAKK3B5dGVzdC0yLjgu
MjogYnVnIGZpeGVzCis9PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QgaXMgYSBtYXR1
cmUgUHl0aG9uIHRlc3RpbmcgdG9vbCB3aXRoIG1vcmUgdGhhbiBhIDExMDAgdGVzdHMKK2FnYWlu
c3QgaXRzZWxmLCBwYXNzaW5nIG9uIG1hbnkgZGlmZmVyZW50IGludGVycHJldGVycyBhbmQgcGxh
dGZvcm1zLgorVGhpcyByZWxlYXNlIGlzIHN1cHBvc2VkIHRvIGJlIGRyb3AtaW4gY29tcGF0aWJs
ZSB0byAyLjguMS4KKworU2VlIGJlbG93IGZvciB0aGUgY2hhbmdlcyBhbmQgc2VlIGRvY3MgYXQ6
CisKKyAgICBodHRwOi8vcHl0ZXN0Lm9yZworCitBcyB1c3VhbCwgeW91IGNhbiB1cGdyYWRlIGZy
b20gcHlwaSB2aWE6OgorCisgICAgcGlwIGluc3RhbGwgLVUgcHl0ZXN0CisKK1RoYW5rcyB0byBh
bGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKworICAgIEJy
dW5vIE9saXZlaXJhCisgICAgRGVtaWFuIEJyZWNodAorICAgIEZsb3JpYW4gQnJ1aGluCisgICAg
SW9uZWwgQ3Jpc3RpYW4gTcSDcmllyJkKKyAgICBSYXBoYWVsIFBpZXJ6aW5hCisgICAgUm9ubnkg
UGZhbm5zY2htaWR0CisgICAgaG9sZ2VyIGtyZWtlbAorCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5
LnRlc3QgRGV2ZWxvcG1lbnQgVGVhbQorCisKKzIuOC4yIChjb21wYXJlZCB0byAyLjcuMikKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gZml4ICMxMDg1OiBwcm9wZXIgaGFuZGxp
bmcgb2YgZW5jb2RpbmcgZXJyb3JzIHdoZW4gcGFzc2luZyBlbmNvZGVkIGJ5dGUKKyAgc3RyaW5n
cyB0byBweXRlc3QucGFyYW1ldHJpemUgaW4gUHl0aG9uIDIuCisgIFRoYW5rcyBUaGVtYW53aXRo
b3V0YXBsYW4gZm9yIHRoZSByZXBvcnQgYW5kIEJydW5vIE9saXZlaXJhIGZvciB0aGUgUFIuCisK
Ky0gZml4ICMxMDg3OiBoYW5kbGluZyBTeXN0ZW1FcnJvciB3aGVuIHBhc3NpbmcgZW1wdHkgYnl0
ZSBzdHJpbmdzIHRvCisgIHB5dGVzdC5wYXJhbWV0cml6ZSBpbiBQeXRob24gMy4KKyAgVGhhbmtz
IFBhdWwgS2VocmVyIGZvciB0aGUgcmVwb3J0IGFuZCBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIFBS
LgorCistIGZpeCAjOTk1OiBmaXhlZCBpbnRlcm5hbCBlcnJvciB3aGVuIGZpbHRlcmluZyB0cmFj
ZWJhY2tzIHdoZXJlIG9uZSBlbnRyeQorICB3YXMgZ2VuZXJhdGVkIGJ5IGFuIGV4ZWMoKSBzdGF0
ZW1lbnQuCisgIFRoYW5rcyBEYW5pZWwgSGFobGVyLCBBc2hsZXkgQyBTdHJhdywgUGhpbGlwcGUg
R2F1dGhpZXIgYW5kIFBhdmVsIFNhdmNoZW5rbworICBmb3IgY29udHJpYnV0aW5nIGFuZCBCcnVu
byBPbGl2ZWlyYSBmb3IgdGhlIFBSLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fu
bm91bmNlL3JlbGVhc2UtMi44LjMucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtMi44LjMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwODBhYzcyNGMxZDkyMDI5YTJkODE2ODYyMGRi
MDkwMTA3NThkMmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3Vu
Y2UvcmVsZWFzZS0yLjguMy5yc3QKQEAgLTAsMCArMSw1OSBAQAorcHl0ZXN0LTIuOC4zOiBidWcg
Zml4ZXMKKz09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdCBpcyBhIG1hdHVyZSBQeXRo
b24gdGVzdGluZyB0b29sIHdpdGggbW9yZSB0aGFuIGEgMTEwMCB0ZXN0cworYWdhaW5zdCBpdHNl
bGYsIHBhc3Npbmcgb24gbWFueSBkaWZmZXJlbnQgaW50ZXJwcmV0ZXJzIGFuZCBwbGF0Zm9ybXMu
CitUaGlzIHJlbGVhc2UgaXMgc3VwcG9zZWQgdG8gYmUgZHJvcC1pbiBjb21wYXRpYmxlIHRvIDIu
OC4yLgorCitTZWUgYmVsb3cgZm9yIHRoZSBjaGFuZ2VzIGFuZCBzZWUgZG9jcyBhdDoKKworICAg
IGh0dHA6Ly9weXRlc3Qub3JnCisKK0FzIHVzdWFsLCB5b3UgY2FuIHVwZ3JhZGUgZnJvbSBweXBp
IHZpYTo6CisKKyAgICBwaXAgaW5zdGFsbCAtVSBweXRlc3QKKworVGhhbmtzIHRvIGFsbCB3aG8g
Y29udHJpYnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisgICAgICAgIEJydW5v
IE9saXZlaXJhCisgICAgICAgIEZsb3JpYW4gQnJ1aGluCisgICAgICAgIEdhYmUgSG9sbG9tYmUK
KyAgICAgICAgR2FicmllbCBSZWlzCisgICAgICAgIEhhcnRtdXQgR29lYmVsCisgICAgICAgIEpv
aG4gVmFuZGVuYmVyZworICAgICAgICBMZWUgS2FtZW50c2t5CisgICAgICAgIE1pY2hhZWwgQmly
dHdlbGwKKyAgICAgICAgUmFwaGFlbCBQaWVyemluYQorICAgICAgICBSb25ueSBQZmFubnNjaG1p
ZHQKKyAgICAgICAgV2lsbGlhbSBNYXJ0aW4gU3Rld2FydAorCitIYXBweSB0ZXN0aW5nLAorVGhl
IHB5LnRlc3QgRGV2ZWxvcG1lbnQgVGVhbQorCisKKzIuOC4zIChjb21wYXJlZCB0byAyLjguMikK
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gZml4ICMxMTY5OiBhZGQgX19uYW1l
X18gYXR0cmlidXRlIHRvIHRlc3RjYXNlcyBpbiBUZXN0Q2FzZUZ1bmN0aW9uIHRvCisgIHN1cHBv
cnQgdGhlIEB1bml0dGVzdC5za2lwIGRlY29yYXRvciBvbiBmdW5jdGlvbnMgYW5kIG1ldGhvZHMu
CisgIFRoYW5rcyBMZWUgS2FtZW50c2t5IGZvciB0aGUgUFIuCisKKy0gZml4ICMxMDM1OiBjb2xs
ZWN0aW5nIHRlc3RzIGlmIHRlc3QgbW9kdWxlIGxldmVsIG9iaiBoYXMgX19nZXRhdHRyX18oKS4K
KyAgVGhhbmtzIFN1b3IgZm9yIHRoZSByZXBvcnQgYW5kIEJydW5vIE9saXZlaXJhIC8gVG9tIFZp
bmVyIGZvciB0aGUgUFIuCisKKy0gZml4ICMzMzE6IGRvbid0IGNvbGxlY3QgdGVzdHMgaWYgdGhl
aXIgZmFpbHVyZSBjYW5ub3QgYmUgcmVwb3J0ZWQgY29ycmVjdGx5CisgIGUuZy4gdGhleSBhcmUg
YSBjYWxsYWJsZSBpbnN0YW5jZSBvZiBhIGNsYXNzLgorCistIGZpeCAjMTEzMzogZml4ZWQgaW50
ZXJuYWwgZXJyb3Igd2hlbiBmaWx0ZXJpbmcgdHJhY2ViYWNrcyB3aGVyZSBvbmUgZW50cnkKKyAg
YmVsb25ncyB0byBhIGZpbGUgd2hpY2ggaXMgbm8gbG9uZ2VyIGF2YWlsYWJsZS4KKyAgVGhhbmtz
IEJydW5vIE9saXZlaXJhIGZvciB0aGUgUFIuCisKKy0gZW5oYW5jZW1lbnQgbWFkZSB0byBoaWdo
bGlnaHQgaW4gcmVkIHRoZSBuYW1lIG9mIHRoZSBmYWlsaW5nIHRlc3RzIHNvCisgIHRoZXkgc3Rh
bmQgb3V0IGluIHRoZSBvdXRwdXQuCisgIFRoYW5rcyBHYWJyaWVsIFJlaXMgZm9yIHRoZSBQUi4K
KworLSBhZGQgbW9yZSB0YWxrcyB0byB0aGUgZG9jdW1lbnRhdGlvbgorLSBleHRlbmQgZG9jdW1l
bnRhdGlvbiBvbiB0aGUgLS1pZ25vcmUgY2xpIG9wdGlvbiAKKy0gdXNlIHB5dGVzdC1ydW5uZXIg
Zm9yIHNldHVwdG9vbHMgaW50ZWdyYXRpb24gCistIG1pbm9yIGZpeGVzIGZvciBpbnRlcmFjdGlv
biB3aXRoIE9TIFggRWwgQ2FwaXRhbiBzeXN0ZW0gaW50ZWdyaXR5IHByb3RlY3Rpb24gKHRoYW5r
cyBGbG9yaWFuKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVs
ZWFzZS0yLjguNC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjgu
NC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTA5NjI5Y2VmMDk5M2NkNDc1ZjljNzczYTliMzI4NzQyM2YxODk2
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNl
LTIuOC40LnJzdApAQCAtMCwwICsxLDUyIEBACitweXRlc3QtMi44LjQKKz09PT09PT09PT09PQor
CitweXRlc3QgaXMgYSBtYXR1cmUgUHl0aG9uIHRlc3RpbmcgdG9vbCB3aXRoIG1vcmUgdGhhbiBh
IDExMDAgdGVzdHMKK2FnYWluc3QgaXRzZWxmLCBwYXNzaW5nIG9uIG1hbnkgZGlmZmVyZW50IGlu
dGVycHJldGVycyBhbmQgcGxhdGZvcm1zLgorVGhpcyByZWxlYXNlIGlzIHN1cHBvc2VkIHRvIGJl
IGRyb3AtaW4gY29tcGF0aWJsZSB0byAyLjguMi4KKworU2VlIGJlbG93IGZvciB0aGUgY2hhbmdl
cyBhbmQgc2VlIGRvY3MgYXQ6CisKKyAgICBodHRwOi8vcHl0ZXN0Lm9yZworCitBcyB1c3VhbCwg
eW91IGNhbiB1cGdyYWRlIGZyb20gcHlwaSB2aWE6OgorCisgICAgcGlwIGluc3RhbGwgLVUgcHl0
ZXN0CisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1v
bmcgdGhlbToKKworICBCcnVubyBPbGl2ZWlyYQorICBGbG9yaWFuIEJydWhpbgorICBKZWZmIFdp
ZG1hbgorICBNZWhkeSBLaG9zaG5vb2R5CisgIE5pY2hvbGFzIENoYW1tYXMKKyAgUm9ubnkgUGZh
bm5zY2htaWR0CisgIFRpbSBDaGFuCisKKworSGFwcHkgdGVzdGluZywKK1RoZSBweS50ZXN0IERl
dmVsb3BtZW50IFRlYW0KKworCisyLjguNCAoY29tcGFyZWQgdG8gMi44LjMpCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGZpeCAjMTE5MDogYGBkZXByZWNhdGVkX2NhbGwoKWBg
IG5vdyB3b3JrcyB3aGVuIHRoZSBkZXByZWNhdGVkCisgIGZ1bmN0aW9uIGhhcyBiZWVuIGFscmVh
ZHkgY2FsbGVkIGJ5IGFub3RoZXIgdGVzdCBpbiB0aGUgc2FtZQorICBtb2R1bGUuIFRoYW5rcyBN
aWtoYWlsIENoZXJueWtoIGZvciB0aGUgcmVwb3J0IGFuZCBCcnVubyBPbGl2ZWlyYSBmb3IgdGhl
CisgIFBSLgorCistIGZpeCAjMTE5ODogYGAtLXBhc3RlYmluYGAgb3B0aW9uIG5vdyB3b3JrcyBv
biBQeXRob24gMy4gVGhhbmtzCisgIE1laGR5IEtob3Nobm9vZHkgZm9yIHRoZSBQUi4KKworLSBm
aXggIzEyMTk6IGBgLS1wYXN0ZWJpbmBgIG5vdyB3b3JrcyBjb3JyZWN0bHkgd2hlbiBjYXB0dXJl
ZCBvdXRwdXQgY29udGFpbnMKKyAgbm9uLWFzY2lpIGNoYXJhY3RlcnMuIFRoYW5rcyBCcnVubyBP
bGl2ZWlyYSBmb3IgdGhlIFBSLgorCistIGZpeCAjMTIwNDogYW5vdGhlciBlcnJvciB3aGVuIGNv
bGxlY3Rpbmcgd2l0aCBhIG5hc3R5IF9fZ2V0YXR0cl9fKCkuCisgIFRoYW5rcyBGbG9yaWFuIEJy
dWhpbiBmb3IgdGhlIFBSLgorCistIGZpeCB0aGUgc3VtbWFyeSBwcmludGVkIHdoZW4gbm8gdGVz
dHMgZGlkIHJ1bi4KKyAgVGhhbmtzIEZsb3JpYW4gQnJ1aGluIGZvciB0aGUgUFIuCisKKy0gYSBu
dW1iZXIgb2YgZG9jdW1lbnRhdGlvbiBtb2Rlcm5pemF0aW9ucyB3cnQgZ29vZCBwcmFjdGljZXMu
CisgIFRoYW5rcyBCcnVubyBPbGl2ZWlyYSBmb3IgdGhlIFBSLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi44LjUucnN0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Fubm91bmNlL3JlbGVhc2UtMi44LjUucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc0MDkwMjJhMTM3MWU4
MjBjNGY3YWE4OTMwZjBiZjU4ZDIwODU1NDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjguNS5yc3QKQEAgLTAsMCArMSwzOSBAQAorcHl0
ZXN0LTIuOC41Cis9PT09PT09PT09PT0KKworcHl0ZXN0IGlzIGEgbWF0dXJlIFB5dGhvbiB0ZXN0
aW5nIHRvb2wgd2l0aCBtb3JlIHRoYW4gYSAxMTAwIHRlc3RzCithZ2FpbnN0IGl0c2VsZiwgcGFz
c2luZyBvbiBtYW55IGRpZmZlcmVudCBpbnRlcnByZXRlcnMgYW5kIHBsYXRmb3Jtcy4KK1RoaXMg
cmVsZWFzZSBpcyBzdXBwb3NlZCB0byBiZSBkcm9wLWluIGNvbXBhdGlibGUgdG8gMi44LjQuCisK
K1NlZSBiZWxvdyBmb3IgdGhlIGNoYW5nZXMgYW5kIHNlZSBkb2NzIGF0OgorCisgICAgaHR0cDov
L3B5dGVzdC5vcmcKKworQXMgdXN1YWwsIHlvdSBjYW4gdXBncmFkZSBmcm9tIHB5cGkgdmlhOjoK
KworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdAorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmli
dXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyAgQWxleCBHYXlub3IKKyAgYXNl
bHVzLWh1YgorICBCcnVubyBPbGl2ZWlyYQorICBSb25ueSBQZmFubnNjaG1pZHQKKworCitIYXBw
eSB0ZXN0aW5nLAorVGhlIHB5LnRlc3QgRGV2ZWxvcG1lbnQgVGVhbQorCisKKzIuOC41IChjb21w
YXJlZCB0byAyLjguNCkKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBmaXggIzEyNDM6
IGZpeGVkIGlzc3VlIHdoZXJlIGNsYXNzIGF0dHJpYnV0ZXMgaW5qZWN0ZWQgZHVyaW5nIGNvbGxl
Y3Rpb24gY291bGQgYnJlYWsgcHl0ZXN0LgorICBQUiBieSBBbGV4ZWkgS296bGVub2ssIHRoYW5r
cyBSb25ueSBQZmFubnNjaG1pZHQgYW5kIEJydW5vIE9saXZlaXJhIGZvciB0aGUgcmV2aWV3IGFu
ZCBoZWxwLgorCistIGZpeCAjMTA3NDogcHJlY29tcHV0ZSBqdW5pdHhtbCBjaHVua3MgaW5zdGVh
ZCBvZiBzdG9yaW5nIHRoZSB3aG9sZSB0cmVlIGluIG9iamVjdHMKKyAgVGhhbmtzIEJydW5vIE9s
aXZlaXJhIGZvciB0aGUgcmVwb3J0IGFuZCBSb25ueSBQZmFubnNjaG1pZHQgZm9yIHRoZSBQUgor
CistIGZpeCAjMTIzODogZml4IGBgcHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbCgpYGAgcmVjZWl2aW5n
IG11bHRpcGxlIGFyZ3VtZW50cworICAoUmVncmVzc2lvbiBpbnRyb2R1Y2VkIGluIDIuOC40KS4g
VGhhbmtzIEFsZXggR2F5bm9yIGZvciB0aGUgcmVwb3J0IGFuZAorICBCcnVubyBPbGl2ZWlyYSBm
b3IgdGhlIFBSLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVh
c2UtMi44LjYucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi44LjYu
cnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjIxNWZhZTUxZWFjMDZiZjUzN2M4MDM3ZDEzMTFiMDA1ZWE0ZTljMTAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0y
LjguNi5yc3QKQEAgLTAsMCArMSw2NyBAQAorcHl0ZXN0LTIuOC42Cis9PT09PT09PT09PT0KKwor
cHl0ZXN0IGlzIGEgbWF0dXJlIFB5dGhvbiB0ZXN0aW5nIHRvb2wgd2l0aCBtb3JlIHRoYW4gYSAx
MTAwIHRlc3RzCithZ2FpbnN0IGl0c2VsZiwgcGFzc2luZyBvbiBtYW55IGRpZmZlcmVudCBpbnRl
cnByZXRlcnMgYW5kIHBsYXRmb3Jtcy4KK1RoaXMgcmVsZWFzZSBpcyBzdXBwb3NlZCB0byBiZSBk
cm9wLWluIGNvbXBhdGlibGUgdG8gMi44LjUuCisKK1NlZSBiZWxvdyBmb3IgdGhlIGNoYW5nZXMg
YW5kIHNlZSBkb2NzIGF0OgorCisgICAgaHR0cDovL3B5dGVzdC5vcmcKKworQXMgdXN1YWwsIHlv
dSBjYW4gdXBncmFkZSBmcm9tIHB5cGkgdmlhOjoKKworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVz
dAorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25n
IHRoZW06CisKKyAgICBBTWlUIEt1bWFyCisgICAgQnJ1bm8gT2xpdmVpcmEKKyAgICBFcmlrIE0u
IEJyYXkKKyAgICBGbG9yaWFuIEJydWhpbgorICAgIEdlb3JneSBEeXVsZGluCisgICAgSmVmZiBX
aWRtYW4KKyAgICBLYXJ0aWsgU2luZ2hhbAorICAgIExvw69jIEVzdMOodmUKKyAgICBNYW51IFBo
YXRhaworICAgIFBldGVyIERlbWluCisgICAgUmljayB2YW4gSGF0dGVtCisgICAgUm9ubnkgUGZh
bm5zY2htaWR0CisgICAgVWxyaWNoIFBldHJpCisgICAgZm94eAorCisKK0hhcHB5IHRlc3Rpbmcs
CitUaGUgcHkudGVzdCBEZXZlbG9wbWVudCBUZWFtCisKKworMi44LjYgKGNvbXBhcmVkIHRvIDIu
OC41KQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGZpeCAjMTI1OTogYWxsb3cgZm9y
IGRvdWJsZSBub2RlaWRzIGluIGp1bml0eG1sLAorICB0aGlzIHdhcyBhIHJlZ3Jlc3Npb24gZmFp
bGluZyBwbHVnaW5zIGNvbWJpbmF0aW9ucworICBsaWtlIHB5dGVzdC1wZXA4ICsgcHl0ZXN0LWZs
YWtlcworCistIFdvcmthcm91bmQgZm9yIGV4Y2VwdGlvbiB0aGF0IG9jY3VycyBpbiBweXJlYWRs
aW5lIHdoZW4gdXNpbmcKKyAgYGAtLXBkYmBgIHdpdGggc3RhbmRhcmQgSS9PIGNhcHR1cmUgZW5h
YmxlZC4KKyAgVGhhbmtzIEVyaWsgTS4gQnJheSBmb3IgdGhlIFBSLgorCistIGZpeCAjOTAwOiBC
ZXR0ZXIgZXJyb3IgbWVzc2FnZSBpbiBjYXNlIHRoZSB0YXJnZXQgb2YgYSBgYG1vbmtleXBhdGNo
YGAgY2FsbAorICByYWlzZXMgYW4gYGBJbXBvcnRFcnJvcmBgLgorCistIGZpeCAjMTI5MjogbW9u
a2V5cGF0Y2ggY2FsbHMgKHNldGF0dHIsIHNldGVudiwgZXRjLikgYXJlIG5vdyBPKDEpLgorICBU
aGFua3MgRGF2aWQgUi4gTWFjSXZlciBmb3IgdGhlIHJlcG9ydCBhbmQgQnJ1bm8gT2xpdmVpcmEg
Zm9yIHRoZSBQUi4KKworLSBmaXggIzEyMjM6IGNhcHR1cmVkIHN0ZG91dCBhbmQgc3RkZXJyIGFy
ZSBub3cgcHJvcGVybHkgZGlzcGxheWVkIGJlZm9yZQorICBlbnRlcmluZyBwZGIgd2hlbiBgYC0t
cGRiYGAgaXMgdXNlZCBpbnN0ZWFkIG9mIGJlaW5nIHRocm93biBhd2F5LgorICBUaGFua3MgQ2Fs
IExlZW1pbmcgZm9yIHRoZSBQUi4KKworLSBmaXggIzEzMDU6IHB5dGVzdCB3YXJuaW5ncyBlbWl0
dGVkIGR1cmluZyBgYHB5dGVzdF90ZXJtaW5hbF9zdW1tYXJ5YGAgYXJlIG5vdworICBwcm9wZXJs
eSBkaXNwbGF5ZWQuCisgIFRoYW5rcyBJb25lbCBNYXJpZXMgQ3Jpc3RpYW4gZm9yIHRoZSByZXBv
cnQgYW5kIEJydW5vIE9saXZlaXJhIGZvciB0aGUgUFIuCisKKy0gZml4ICM2Mjg6IGZpeGVkIGlu
dGVybmFsIFVuaWNvZGVEZWNvZGVFcnJvciB3aGVuIGRvY3Rlc3RzIGNvbnRhaW4gdW5pY29kZS4K
KyAgVGhhbmtzIEphc29uIFIuIENvb21icyBmb3IgdGhlIHJlcG9ydCBhbmQgQnJ1bm8gT2xpdmVp
cmEgZm9yIHRoZSBQUi4KKworLSBmaXggIzEzMzQ6IEFkZCBjYXB0dXJlZCBzdGRvdXQgdG8galVu
aXQgWE1MIHJlcG9ydCBvbiBzZXR1cCBlcnJvci4KKyAgVGhhbmtzIEdlb3JneSBEeXVsZGluIGZv
ciB0aGUgUFIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFz
ZS0yLjguNy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjguNy5y
c3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDk4ZDczMTA2NGIzZTEzM2IwMGFkMDE2MzU0MTc2YmE0OGE0ODg0NQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIu
OC43LnJzdApAQCAtMCwwICsxLDMxIEBACitweXRlc3QtMi44LjcKKz09PT09PT09PT09PQorCitU
aGlzIGlzIGEgaG90Zml4IHJlbGVhc2UgdG8gc29sdmUgYSByZWdyZXNzaW9uCitpbiB0aGUgYnVp
bHRpbiBtb25rZXlwYXRjaCBwbHVnaW4gdGhhdCBnb3QgaW50cm9kdWNlZCBpbiAyLjguNi4KKwor
cHl0ZXN0IGlzIGEgbWF0dXJlIFB5dGhvbiB0ZXN0aW5nIHRvb2wgd2l0aCBtb3JlIHRoYW4gYSAx
MTAwIHRlc3RzCithZ2FpbnN0IGl0c2VsZiwgcGFzc2luZyBvbiBtYW55IGRpZmZlcmVudCBpbnRl
cnByZXRlcnMgYW5kIHBsYXRmb3Jtcy4KK1RoaXMgcmVsZWFzZSBpcyBzdXBwb3NlZCB0byBiZSBk
cm9wLWluIGNvbXBhdGlibGUgdG8gMi44LjUuCisKK1NlZSBiZWxvdyBmb3IgdGhlIGNoYW5nZXMg
YW5kIHNlZSBkb2NzIGF0OgorCisgICAgaHR0cDovL3B5dGVzdC5vcmcKKworQXMgdXN1YWwsIHlv
dSBjYW4gdXBncmFkZSBmcm9tIHB5cGkgdmlhOjoKKworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVz
dAorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25n
IHRoZW06CisKKyAgICBSb25ueSBQZmFubnNjaG1pZHQKKworCitIYXBweSB0ZXN0aW5nLAorVGhl
IHB5LnRlc3QgRGV2ZWxvcG1lbnQgVGVhbQorCisKKzIuOC43IChjb21wYXJlZCB0byAyLjguNikK
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLSBmaXggIzEzMzg6IHVzZSBwcmVkaWN0YWJs
ZSBvYmplY3QgcmVzb2x1dGlvbiBmb3IgbW9ua2V5cGF0Y2gKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0y
LjkuMC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjkuMC5yc3QK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDExYjFmZmI5ZDI5ZDdlZmUzNWZlMzJlNmQ2MzE2MDhiZDM3OGE5ZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuOS4w
LnJzdApAQCAtMCwwICsxLDE1OSBAQAorcHl0ZXN0LTIuOS4wCis9PT09PT09PT09PT0KKworcHl0
ZXN0IGlzIGEgbWF0dXJlIFB5dGhvbiB0ZXN0aW5nIHRvb2wgd2l0aCBtb3JlIHRoYW4gYSAxMTAw
IHRlc3RzCithZ2FpbnN0IGl0c2VsZiwgcGFzc2luZyBvbiBtYW55IGRpZmZlcmVudCBpbnRlcnBy
ZXRlcnMgYW5kIHBsYXRmb3Jtcy4KKworU2VlIGJlbG93IGZvciB0aGUgY2hhbmdlcyBhbmQgc2Vl
IGRvY3MgYXQ6CisKKyAgICBodHRwOi8vcHl0ZXN0Lm9yZworCitBcyB1c3VhbCwgeW91IGNhbiB1
cGdyYWRlIGZyb20gcHlwaSB2aWE6OgorCisgICAgcGlwIGluc3RhbGwgLVUgcHl0ZXN0CisKK1Ro
YW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToK
KworICAgIEFuYXRvbHkgQnViZW5rb3YgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAg
ICBCcnVubyBPbGl2ZWlyYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgQnVj
ayBHb2xlbW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIERhdmlkIFZp
ZXJyYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBGbG9yaWFuIEJydWhp
biAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgR2FsYWN6aSBFbmRyZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIEdlb3JneSBEeXVsZGluICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBMdWthcyBCZWRuYXIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCisgICAgTHVrZSBNdXJwaHkgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAorICAgIE1hcmNpbiBCaWVybmF0ICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKKyAgICBNYXR0IFdpbGxpYW1zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCisgICAgTWljaGFlbCBBcXVpbGluYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAor
ICAgIFJhcGhhZWwgUGllcnppbmEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBS
b25ueSBQZmFubnNjaG1pZHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgUnlhbiBX
b29kZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIFRpZW1vIEtpZWZ0
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBUb21WICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgaG9sZ2VyIGtyZWtlbCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgIGphYiAgIAorCisKK0hhcHB5IHRlc3Rpbmcs
CitUaGUgcHkudGVzdCBEZXZlbG9wbWVudCBUZWFtCisKKworMi45LjAgKGNvbXBhcmVkIHRvIDIu
OC43KQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisqKk5ldyBGZWF0dXJlcyoqCisKKyog
TmV3IGBgcHl0ZXN0Lm1hcmsuc2tpcGBgIG1hcmssIHdoaWNoIHVuY29uZGl0aW9uYWxseSBza2lw
cyBtYXJrZWQgdGVzdHMuCisgIFRoYW5rcyBgQE1pY2hhZWxBcXVpbGluYWBfIGZvciB0aGUgY29t
cGxldGUgUFIgKGAjMTA0MGBfKS4KKworKiBgYC0tZG9jdGVzdC1nbG9iYGAgbWF5IG5vdyBiZSBw
YXNzZWQgbXVsdGlwbGUgdGltZXMgaW4gdGhlIGNvbW1hbmQtbGluZS4KKyAgVGhhbmtzIGBAamFi
YF8gYW5kIGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIuCisKKyogTmV3IGBgLXJwYGAgYW5kIGBg
LXJQYGAgcmVwb3J0aW5nIG9wdGlvbnMgZ2l2ZSB0aGUgc3VtbWFyeSBhbmQgZnVsbCBvdXRwdXQK
KyAgb2YgcGFzc2luZyB0ZXN0cywgcmVzcGVjdGl2ZWx5LiBUaGFua3MgdG8gYEBjb2Rld2Fycmlv
cjBgXyBmb3IgdGhlIFBSLgorCisqIGBgcHl0ZXN0Lm1hcmsueGZhaWxgYCBub3cgaGFzIGEgYGBz
dHJpY3RgYCBvcHRpb24gd2hpY2ggbWFrZXMgYGBYUEFTU2BgCisgIHRlc3RzIHRvIGZhaWwgdGhl
IHRlc3Qgc3VpdGUsIGRlZmF1bHRpbmcgdG8gYGBGYWxzZWBgLiBUaGVyZSdzIGFsc28gYQorICBg
YHhmYWlsX3N0cmljdGBgIGluaSBvcHRpb24gdGhhdCBjYW4gYmUgdXNlZCB0byBjb25maWd1cmUg
aXQgcHJvamVjdC13aXNlLgorICBUaGFua3MgYEByYWJiYml0YF8gZm9yIHRoZSByZXF1ZXN0IGFu
ZCBgQG5pY29kZGVtdXNgXyBmb3IgdGhlIFBSIChgIzEzNTVgXykuCisKKyogYGBQYXJzZXIuYWRk
aW5pYGAgbm93IHN1cHBvcnRzIG9wdGlvbnMgb2YgdHlwZSBgYGJvb2xgYC4gVGhhbmtzCisgIGBA
bmljb2RkZW11c2BfIGZvciB0aGUgUFIuCisKKyogTmV3IGBgQUxMT1dfQllURVNgYCBkb2N0ZXN0
IG9wdGlvbiBzdHJpcHMgYGBiYGAgcHJlZml4ZXMgZnJvbSBieXRlIHN0cmluZ3MKKyAgaW4gZG9j
dGVzdCBvdXRwdXQgKHNpbWlsYXIgdG8gYGBBTExPV19VTklDT0RFYGApLgorICBUaGFua3MgYEBq
YXJhY29gXyBmb3IgdGhlIHJlcXVlc3QgYW5kIGBAbmljb2RkZW11c2BfIGZvciB0aGUgUFIgKGAj
MTI4N2BfKS4KKworKiBnaXZlIGEgaGludCBvbiBLZXlib2FyZEludGVycnVwdCB0byB1c2UgdGhl
IC0tZnVsbHRyYWNlIG9wdGlvbiB0byBzaG93IHRoZSBlcnJvcnMsCisgIHRoaXMgZml4ZXMgYCMx
MzY2YF8uCisgIFRoYW5rcyB0byBgQGhwazQyYF8gZm9yIHRoZSByZXBvcnQgYW5kIGBAUm9ubnlQ
ZmFubnNjaG1pZHRgXyBmb3IgdGhlIFBSLgorCisqIGNhdGNoIEluZGV4RXJyb3IgZXhjZXB0aW9u
cyB3aGVuIGdldHRpbmcgZXhjZXB0aW9uIHNvdXJjZSBsb2NhdGlvbi4gVGhpcyBmaXhlcworICBw
eXRlc3QgaW50ZXJuYWwgZXJyb3IgZm9yIGR5bmFtaWNhbGx5IGdlbmVyYXRlZCBjb2RlIChmaXh0
dXJlcyBhbmQgdGVzdHMpCisgIHdoZXJlIHNvdXJjZSBsaW5lcyBhcmUgZmFrZSBieSBpbnRlbnRp
b24KKworKipDaGFuZ2VzKioKKworKiAqKkltcG9ydGFudCoqOiBgcHkuY29kZSA8aHR0cHM6Ly9w
eWxpYi5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvY29kZS5odG1sPmBfIGhhcyBiZWVuCisgIG1l
cmdlZCBpbnRvIHRoZSBgYHB5dGVzdGBgIHJlcG9zaXRvcnkgYXMgYGBweXRlc3QuX2NvZGVgYC4g
VGhpcyBkZWNpc2lvbiAKKyAgd2FzIG1hZGUgYmVjYXVzZSBgYHB5LmNvZGVgYCBoYWQgdmVyeSBm
ZXcgdXNlcyBvdXRzaWRlIGBgcHl0ZXN0YGAgYW5kIHRoZSAKKyAgZmFjdCB0aGF0IGl0IHdhcyBp
biBhIGRpZmZlcmVudCByZXBvc2l0b3J5IG1hZGUgaXQgZGlmZmljdWx0IHRvIGZpeCBidWdzIG9u
IAorICBpdHMgY29kZSBpbiBhIHRpbWVseSBtYW5uZXIuIFRoZSB0ZWFtIGhvcGVzIHdpdGggdGhp
cyB0byBiZSBhYmxlIHRvIGJldHRlcgorICByZWZhY3RvciBvdXQgYW5kIGltcHJvdmUgdGhhdCBj
b2RlLgorICBUaGlzIGNoYW5nZSBzaG91bGRuJ3QgYWZmZWN0IHVzZXJzLCBidXQgaXQgaXMgdXNl
ZnVsIHRvIGxldCB1c2VycyBhd2FyZQorICBpZiB0aGV5IGVuY291bnRlciBhbnkgc3RyYW5nZSBi
ZWhhdmlvci4KKyAgCisgIEtlZXAgaW4gbWluZCB0aGF0IHRoZSBjb2RlIGZvciBgYHB5dGVzdC5f
Y29kZWBgIGlzICoqcHJpdmF0ZSoqIGFuZCAKKyAgKipleHBlcmltZW50YWwqKiwgc28geW91IGRl
ZmluaXRlbHkgc2hvdWxkIG5vdCBpbXBvcnQgaXQgZXhwbGljaXRseSEKKworICBQbGVhc2Ugbm90
ZSB0aGF0IHRoZSBvcmlnaW5hbCBgYHB5LmNvZGVgYCBpcyBzdGlsbCBhdmFpbGFibGUgaW4gCisg
IGBweWxpYiA8aHR0cHM6Ly9weWxpYi5yZWFkdGhlZG9jcy5pbz5gXy4KKworKiBgYHB5dGVzdF9l
bnRlcl9wZGJgYCBub3cgb3B0aW9uYWxseSByZWNlaXZlcyB0aGUgcHl0ZXN0IGNvbmZpZyBvYmpl
Y3QuCisgIFRoYW5rcyBgQG5pY29kZGVtdXNgXyBmb3IgdGhlIFBSLgorCisqIFJlbW92ZWQgY29k
ZSBhbmQgZG9jdW1lbnRhdGlvbiBmb3IgUHl0aG9uIDIuNSBvciBsb3dlciB2ZXJzaW9ucywKKyAg
aW5jbHVkaW5nIHJlbW92YWwgb2YgdGhlIG9ic29sZXRlIGBgX3B5dGVzdC5hc3NlcnRpb24ub2xk
aW50ZXJwcmV0YGAgbW9kdWxlLgorICBUaGFua3MgYEBuaWNvZGRlbXVzYF8gZm9yIHRoZSBQUiAo
YCMxMjI2YF8pLgorCisqIENvbXBhcmlzb25zIG5vdyBhbHdheXMgc2hvdyB1cCBpbiBmdWxsIHdo
ZW4gYGBDSWBgIG9yIGBgQlVJTERfTlVNQkVSYGAgaXMKKyAgZm91bmQgaW4gdGhlIGVudmlyb25t
ZW50LCBldmVuIHdoZW4gLXZ2IGlzbid0IHVzZWQuCisgIFRoYW5rcyBgQFRoZS1Db21waWxlcmBf
IGZvciB0aGUgUFIuCisKKyogYGAtLWxmYGAgYW5kIGBgLS1mZmBgIG5vdyBzdXBwb3J0IGxvbmcg
bmFtZXM6IGBgLS1sYXN0LWZhaWxlZGBgIGFuZAorICBgYC0tZmFpbGVkLWZpcnN0YGAgcmVzcGVj
dGl2ZWx5LgorICBUaGFua3MgYEBNaWNoYWVsQXF1aWxpbmFgXyBmb3IgdGhlIFBSLgorCisqIEFk
ZGVkIGV4cGVjdGVkIGV4Y2VwdGlvbnMgdG8gcHl0ZXN0LnJhaXNlcyBmYWlsIG1lc3NhZ2UKKwor
KiBDb2xsZWN0aW9uIG9ubHkgZGlzcGxheXMgcHJvZ3Jlc3MgKCJjb2xsZWN0aW5nIFggaXRlbXMi
KSB3aGVuIGluIGEgdGVybWluYWwuCisgIFRoaXMgYXZvaWRzIGNsdXR0ZXJpbmcgdGhlIG91dHB1
dCB3aGVuIHVzaW5nIGBgLS1jb2xvcj15ZXNgYCB0byBvYnRhaW4KKyAgY29sb3JzIGluIENJIGlu
dGVncmF0aW9ucyBzeXN0ZW1zIChgIzEzOTdgXykuCisKKyoqQnVnIEZpeGVzKioKKworKiBUaGUg
YGAtc2BgIGFuZCBgYC1jYGAgb3B0aW9ucyBzaG91bGQgbm93IHdvcmsgdW5kZXIgYGB4ZGlzdGBg
OworICBgYENvbmZpZy5mcm9tZGljdGFyZ3NgYCBub3cgcmVwcmVzZW50cyBpdHMgaW5wdXQgbXVj
aCBtb3JlIGZhaXRoZnVsbHkuCisgIFRoYW5rcyB0byBgQGJ1a3pvcmBfIGZvciB0aGUgY29tcGxl
dGUgUFIgKGAjNjgwYF8pLgorCisqIEZpeCAoYCMxMjkwYF8pOiBzdXBwb3J0IFB5dGhvbiAzLjUn
cyBgYEBgYCBvcGVyYXRvciBpbiBhc3NlcnRpb24gcmV3cml0aW5nLgorICBUaGFua3MgYEBTaGlu
a2Vuam9lYF8gZm9yIHJlcG9ydCB3aXRoIHRlc3QgY2FzZSBhbmQgYEB0b212aW5lcmBfIGZvciB0
aGUgUFIuCisKKyogRml4IGZvcm1hdHRpbmcgdXRmLTggZXhwbGFuYXRpb24gbWVzc2FnZXMgKGAj
MTM3OWBfKS4KKyAgVGhhbmtzIGBAYmllcm5gXyBmb3IgdGhlIFBSLgorCisqIEZpeCBgdHJhY2Vi
YWNrIHN0eWxlIGRvY3NgXyB0byBkZXNjcmliZSBhbGwgb2YgdGhlIGF2YWlsYWJsZSBvcHRpb25z
CisgIChhdXRvL2xvbmcvc2hvcnQvbGluZS9uYXRpdmUvbm8pLCB3aXRoIGBhdXRvYCBiZWluZyB0
aGUgZGVmYXVsdCBzaW5jZSB2Mi42LgorICBUaGFua3MgYEBoYWNrZWJyb3RgXyBmb3IgdGhlIFBS
LgorCisqIEZpeCAoYCMxNDIyYF8pOiBqdW5pdCByZWNvcmRfeG1sX3Byb3BlcnR5IGRvZXNuJ3Qg
YWxsb3cgbXVsdGlwbGUgcmVjb3JkcworICB3aXRoIHNhbWUgbmFtZS4KKyAgCisgIAorLi4gX2B0
cmFjZWJhY2sgc3R5bGUgZG9jc2A6IGh0dHBzOi8vcHl0ZXN0Lm9yZy9sYXRlc3QvdXNhZ2UuaHRt
bCNtb2RpZnlpbmctcHl0aG9uLXRyYWNlYmFjay1wcmludGluZworCisuLiBfIzE0MjI6IGh0dHBz
Oi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMTQyMgorLi4gXyMxMzc5OiBo
dHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzEzNzkKKy4uIF8jMTM2
NjogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xMzY2CisuLiBf
IzEwNDA6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9wdWxsLzEwNDAKKy4u
IF8jNjgwOiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzY4MAor
Li4gXyMxMjg3OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVsbC8xMjg3
CisuLiBfIzEyMjY6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9wdWxsLzEy
MjYKKy4uIF8jMTI5MDogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L3B1bGwv
MTI5MAorLi4gXyMxMzU1OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvcHVs
bC8xMzU1CisuLiBfIzEzOTc6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9p
c3N1ZXMvMTM5NworLi4gX0BiaWVybjogaHR0cHM6Ly9naXRodWIuY29tL2JpZXJuCisuLiBfQE1p
Y2hhZWxBcXVpbGluYTogaHR0cHM6Ly9naXRodWIuY29tL01pY2hhZWxBcXVpbGluYQorLi4gX0Bi
dWt6b3I6IGh0dHBzOi8vZ2l0aHViLmNvbS9idWt6b3IKKy4uIF9AaHBrNDI6IGh0dHBzOi8vZ2l0
aHViLmNvbS9ocGs0MgorLi4gX0BuaWNvZGRlbXVzOiBodHRwczovL2dpdGh1Yi5jb20vbmljb2Rk
ZW11cworLi4gX0BqYWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9qYWIKKy4uIF9AY29kZXdhcnJpb3Iw
OiBodHRwczovL2dpdGh1Yi5jb20vY29kZXdhcnJpb3IwCisuLiBfQGphcmFjbzogaHR0cHM6Ly9n
aXRodWIuY29tL2phcmFjbworLi4gX0BUaGUtQ29tcGlsZXI6IGh0dHBzOi8vZ2l0aHViLmNvbS9U
aGUtQ29tcGlsZXIKKy4uIF9AU2hpbmtlbmpvZTogaHR0cHM6Ly9naXRodWIuY29tL1NoaW5rZW5q
b2UKKy4uIF9AdG9tdmluZXI6IGh0dHBzOi8vZ2l0aHViLmNvbS90b212aW5lcgorLi4gX0BSb25u
eVBmYW5uc2NobWlkdDogaHR0cHM6Ly9naXRodWIuY29tL1Jvbm55UGZhbm5zY2htaWR0CisuLiBf
QHJhYmJiaXQ6IGh0dHBzOi8vZ2l0aHViLmNvbS9yYWJiYml0CisuLiBfQGhhY2tlYnJvdDogaHR0
cHM6Ly9naXRodWIuY29tL2hhY2tlYnJvdApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuOS4xLnJzdCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuOS4xLnJzdApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zMjc3ZGExZTliMGYxNTVjZjdhYjgxYmE2MTVjYjZkODVjNzEzODM0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi45LjEucnN0CkBAIC0w
LDAgKzEsNjcgQEAKK3B5dGVzdC0yLjkuMQorPT09PT09PT09PT09CisKK3B5dGVzdCBpcyBhIG1h
dHVyZSBQeXRob24gdGVzdGluZyB0b29sIHdpdGggbW9yZSB0aGFuIGEgMTEwMCB0ZXN0cworYWdh
aW5zdCBpdHNlbGYsIHBhc3Npbmcgb24gbWFueSBkaWZmZXJlbnQgaW50ZXJwcmV0ZXJzIGFuZCBw
bGF0Zm9ybXMuCisKK1NlZSBiZWxvdyBmb3IgdGhlIGNoYW5nZXMgYW5kIHNlZSBkb2NzIGF0Ogor
CisgICAgaHR0cDovL3B5dGVzdC5vcmcKKworQXMgdXN1YWwsIHlvdSBjYW4gdXBncmFkZSBmcm9t
IHB5cGkgdmlhOjoKKworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdAorCitUaGFua3MgdG8gYWxs
IHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyAgICBCcnVu
byBPbGl2ZWlyYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKKyAgICBEYW5pZWwgSGFobGVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKKyAgICBEbWl0cnkgTWFsaW5vdnNreSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBGbG9yaWFuIEJydWhpbiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBGbG9yaXMgQnJ1eW5v
b2doZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBN
YXR0IEJhY2htYW5uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKKyAgICBSb25ueSBQZmFubnNjaG1pZHQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKKyAgICBUb21WICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBWbGFkaW1pciBCb2xzaGFrb3YgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICBaZWFyaW4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisg
ICAgcGFsYXZpdiAgIAorCisKK0hhcHB5IHRlc3RpbmcsCitUaGUgcHkudGVzdCBEZXZlbG9wbWVu
dCBUZWFtCisKKworMi45LjEgKGNvbXBhcmVkIHRvIDIuOS4wKQorLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCisqKkJ1ZyBGaXhlcyoqCisKKyogSW1wcm92ZSBlcnJvciBtZXNzYWdlIHdoZW4g
YSBwbHVnaW4gZmFpbHMgdG8gbG9hZC4KKyAgVGhhbmtzIGBAbmljb2RkZW11c2BfIGZvciB0aGUg
UFIuCisKKyogRml4IChgIzExNzggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvMTE3OD5gXyk6CisgIGBgcHl0ZXN0LmZhaWxgYCB3aXRoIG5vbi1hc2NpaSBjaGFy
YWN0ZXJzIHJhaXNlcyBhbiBpbnRlcm5hbCBweXRlc3QgZXJyb3IuCisgIFRoYW5rcyBgQG5pY29k
ZGVtdXNgXyBmb3IgdGhlIFBSLgorCisqIEZpeCAoYCM0NjlgXyk6IGp1bml0IHBhcnNlcyByZXBv
cnQubm9kZWlkIGluY29ycmVjdGx5LCB3aGVuIHBhcmFtcyBJRHMKKyAgY29udGFpbiBgYDo6YGAu
IFRoYW5rcyBgQHRvbXZpbmVyYF8gZm9yIHRoZSBQUiAoYCMxNDMxYF8pLgorCisqIEZpeCAoYCM1
NzggPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvNTc4PmBfKTog
U3ludGF4RXJyb3JzCisgIGNvbnRhaW5pbmcgbm9uLWFzY2lpIGxpbmVzIGF0IHRoZSBwb2ludCBv
ZiBmYWlsdXJlIGdlbmVyYXRlZCBhbiBpbnRlcm5hbAorICBweS50ZXN0IGVycm9yLgorICBUaGFu
a3MgYEBhc290dGlsZWBfIGZvciB0aGUgcmVwb3J0IGFuZCBgQG5pY29kZGVtdXNgXyBmb3IgdGhl
IFBSLgorCisqIEZpeCAoYCMxNDM3YF8pOiBXaGVuIHBhc3NpbmcgaW4gYSBieXRlc3RyaW5nIHJl
Z2V4IHBhdHRlcm4gdG8gcGFyYW1ldGVyaXplCisgIGF0dGVtcHQgdG8gZGVjb2RlIGl0IGFzIHV0
Zi04IGlnbm9yaW5nIGVycm9ycy4KKworKiBGaXggKGAjNjQ5YF8pOiBwYXJhbWV0cml6ZWQgdGVz
dCBub2RlcyBjYW5ub3QgYmUgc3BlY2lmaWVkIHRvIHJ1biBvbiB0aGUgY29tbWFuZCBsaW5lLgor
CisKKy4uIF8jMTQzNzogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy8xNDM3CisuLiBfIzQ2OTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lz
c3Vlcy80NjkKKy4uIF8jMTQzMTogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L3B1bGwvMTQzMQorLi4gXyM2NDk6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC9pc3N1ZXMvNjQ5CisKKy4uIF9AYXNvdHRpbGU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hc290dGls
ZQorLi4gX0BuaWNvZGRlbXVzOiBodHRwczovL2dpdGh1Yi5jb20vbmljb2RkZW11cworLi4gX0B0
b212aW5lcjogaHR0cHM6Ly9naXRodWIuY29tL3RvbXZpbmVyCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjkuMi5yc3QgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vYW5ub3VuY2UvcmVsZWFzZS0yLjkuMi5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGYyNzRjZGYzOTgxZjA1
OGI4NDVjYTYwZDc2ZmRiYTZlZDdiZTAzZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuOS4yLnJzdApAQCAtMCwwICsxLDc4IEBACitweXRl
c3QtMi45LjIKKz09PT09PT09PT09PQorCitweXRlc3QgaXMgYSBtYXR1cmUgUHl0aG9uIHRlc3Rp
bmcgdG9vbCB3aXRoIG1vcmUgdGhhbiBhIDExMDAgdGVzdHMKK2FnYWluc3QgaXRzZWxmLCBwYXNz
aW5nIG9uIG1hbnkgZGlmZmVyZW50IGludGVycHJldGVycyBhbmQgcGxhdGZvcm1zLgorCitTZWUg
YmVsb3cgZm9yIHRoZSBjaGFuZ2VzIGFuZCBzZWUgZG9jcyBhdDoKKworICAgIGh0dHA6Ly9weXRl
c3Qub3JnCisKK0FzIHVzdWFsLCB5b3UgY2FuIHVwZ3JhZGUgZnJvbSBweXBpIHZpYTo6CisKKyAg
ICBwaXAgaW5zdGFsbCAtVSBweXRlc3QKKworVGhhbmtzIHRvIGFsbCB3aG8gY29udHJpYnV0ZWQg
dG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisgICAgICBBZGFtIENoYWluegorICAgICAg
QmVuamFtaW4gRG9wcGxpbmdlcgorICAgICAgQnJ1bm8gT2xpdmVpcmEKKyAgICAgIEZsb3JpYW4g
QnJ1aGluCisgICAgICBKb2huIFRvd2xlcgorICAgICAgTWFydGluIFBydXNzZQorICAgICAgTWVu
ZyBKdWUKKyAgICAgIE1lbmdKdWVNCisgICAgICBPbWFyIEtvaGwKKyAgICAgIFF1ZW50aW4gUHJh
ZGV0CisgICAgICBSb25ueSBQZmFubnNjaG1pZHQKKyAgICAgIFRob21hcyBHw7x0dGxlcgorICAg
ICAgVG9tVgorICAgICAgVHlsZXIgR29vZGxldAorCisKK0hhcHB5IHRlc3RpbmcsCitUaGUgcHku
dGVzdCBEZXZlbG9wbWVudCBUZWFtCisKKworMi45LjIgKGNvbXBhcmVkIHRvIDIuOS4xKQorLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyoqQnVnIEZpeGVzKioKKworKiBmaXggYCM1MTBg
Xzogc2tpcCB0ZXN0cyB3aGVyZSBvbmUgcGFyYW1ldGVyaXplIGRpbWVuc2lvbiB3YXMgZW1wdHkK
KyAgdGhhbmtzIEFsZXggU3RhcGxldG9uIGZvciB0aGUgUmVwb3J0IGFuZCBgQFJvbm55UGZhbm5z
Y2htaWR0YF8gZm9yIHRoZSBQUgorCisqIEZpeCBYZmFpbCBkb2VzIG5vdCB3b3JrIHdpdGggY29u
ZGl0aW9uIGtleXdvcmQgYXJndW1lbnQuCisgIFRoYW5rcyBgQGFzdHJhdzM4YF8gZm9yIHJlcG9y
dGluZyB0aGUgaXNzdWUgKGAjMTQ5NmBfKSBhbmQgYEB0b212aW5lcmBfCisgIGZvciBQUiB0aGUg
KGAjMTUyNGBfKS4KKworKiBGaXggd2luMzIgcGF0aCBpc3N1ZSB3aGVuIHB1dHRpbmcgY3VzdG9t
IGNvbmZpZyBmaWxlIHdpdGggYWJzb2x1dGUgcGF0aAorICBpbiBgYHB5dGVzdC5tYWluKCItYyB5
b3VyX2Fic29sdXRlX3BhdGgiKWBgLgorCisqIEZpeCBtYXhpbXVtIHJlY3Vyc2lvbiBkZXB0aCBk
ZXRlY3Rpb24gd2hlbiByYWlzZWQgZXJyb3IgY2xhc3MgaXMgbm90IGF3YXJlCisgIG9mIHVuaWNv
ZGUvZW5jb2RlZCBieXRlcy4KKyAgVGhhbmtzIGBAcHJ1c3NlLW1hcnRpbmBfIGZvciB0aGUgUFIg
KGAjMTUwNmBfKS4KKworKiBGaXggYGBweXRlc3QubWFyay5za2lwYGAgbWFyayB3aGVuIHVzZWQg
aW4gc3RyaWN0IG1vZGUuCisgIFRoYW5rcyBgQHBxdWVudGluYF8gZm9yIHRoZSBQUiBhbmQgYEBS
b25ueVBmYW5uc2NobWlkdGBfIGZvcgorICBzaG93aW5nIGhvdyB0byBmaXggdGhlIGJ1Zy4KKwor
KiBNaW5vciBpbXByb3ZlbWVudHMgYW5kIGZpeGVzIHRvIHRoZSBkb2N1bWVudGF0aW9uLgorICBU
aGFua3MgYEBvbWFya29obGBfIGZvciB0aGUgUFIuCisKKyogRml4IGBgLS1maXh0dXJlc2BgIHRv
IHNob3cgYWxsIGZpeHR1cmUgZGVmaW5pdGlvbnMgYXMgb3Bwb3NlZCB0byBqdXN0CisgIG9uZSBw
ZXIgZml4dHVyZSBuYW1lLgorICBUaGFua3MgdG8gYEBoYWNrZWJyb3RgXyBmb3IgdGhlIFBSLgor
CisuLiBfIzUxMDogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy81
MTAKKy4uIF8jMTUwNjogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L3B1bGwv
MTUwNgorLi4gXyMxNDk2OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNz
dWUvMTQ5NgorLi4gXyMxNTI0OiBodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Qv
aXNzdWUvMTUyNAorCisuLiBfQGFzdHJhdzM4OiBodHRwczovL2dpdGh1Yi5jb20vYXN0cmF3MzgK
Ky4uIF9AaGFja2Vicm90OiBodHRwczovL2dpdGh1Yi5jb20vaGFja2Vicm90CisuLiBfQG9tYXJr
b2hsOiBodHRwczovL2dpdGh1Yi5jb20vb21hcmtvaGwKKy4uIF9AcHF1ZW50aW46IGh0dHBzOi8v
Z2l0aHViLmNvbS9wcXVlbnRpbgorLi4gX0BwcnVzc2UtbWFydGluOiBodHRwczovL2dpdGh1Yi5j
b20vcHJ1c3NlLW1hcnRpbgorLi4gX0BSb25ueVBmYW5uc2NobWlkdDogaHR0cHM6Ly9naXRodWIu
Y29tL1Jvbm55UGZhbm5zY2htaWR0CisuLiBfQHRvbXZpbmVyOiBodHRwczovL2dpdGh1Yi5jb20v
dG9tdmluZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNl
LTMuMC4wLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMC4wLnJz
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40YmYxZTg1MzRlYzM4NWZiMDNhZjlmOWY3N2RjZWE4YjljMDIxMmU2Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4w
LjAucnN0CkBAIC0wLDAgKzEsODIgQEAKK3B5dGVzdC0zLjAuMAorPT09PT09PT09PT09CisKK1Ro
ZSBweXRlc3QgdGVhbSBpcyBwcm91ZCB0byBhbm5vdW5jZSB0aGUgMy4wLjAgcmVsZWFzZSEKKwor
cHl0ZXN0IGlzIGEgbWF0dXJlIFB5dGhvbiB0ZXN0aW5nIHRvb2wgd2l0aCBtb3JlIHRoYW4gYSAx
NjAwIHRlc3RzCithZ2FpbnN0IGl0c2VsZiwgcGFzc2luZyBvbiBtYW55IGRpZmZlcmVudCBpbnRl
cnByZXRlcnMgYW5kIHBsYXRmb3Jtcy4KKworVGhpcyByZWxlYXNlIGNvbnRhaW5zIGEgbG90IG9m
IGJ1Z3MgZml4ZXMgYW5kIGltcHJvdmVtZW50cywgYW5kIG11Y2ggb2YKK3RoZSB3b3JrIGRvbmUg
b24gaXQgd2FzIHBvc3NpYmxlIGJlY2F1c2Ugb2YgdGhlIDIwMTYgU3ByaW50WzFdLCB3aGljaAor
d2FzIGZ1bmRlZCBieSBhbiBpbmRpZWdvZ28gY2FtcGFpZ24gd2hpY2ggcmFpc2VkIG92ZXIgVVMk
MTIsMDAwIHdpdGggCituZWFybHkgMTAwIGJhY2tlcnMuIAorCitUaGVyZSdzIGEgIldoYXQncyBu
ZXcgaW4gcHl0ZXN0IDMuMCIgWzJdIGJsb2cgcG9zdCBoaWdobGlnaHRpbmcgdGhlIAorbWFqb3Ig
ZmVhdHVyZXMgaW4gdGhpcyByZWxlYXNlLgorCitUbyBzZWUgdGhlIGNvbXBsZXRlIGNoYW5nZWxv
ZyBhbmQgZG9jdW1lbnRhdGlvbiwgcGxlYXNlIHZpc2l0OgorCisgICAgaHR0cDovL2RvY3MucHl0
ZXN0Lm9yZworCitBcyB1c3VhbCwgeW91IGNhbiB1cGdyYWRlIGZyb20gcHlwaSB2aWE6CisKKyAg
ICBwaXAgaW5zdGFsbCAtVSBweXRlc3QKKworVGhhbmtzIHRvIGFsbCB3aG8gY29udHJpYnV0ZWQg
dG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisgICAgQWJkZWFsaUpLCisgICAgQW5hIFJp
YmVpcm8KKyAgICBBbnRvbnkgTGVlCisgICAgQnJhbmRvbiBXIE1haXN0ZXIKKyAgICBCcmlhbm5h
IExhdWdoZXIKKyAgICBCcnVubyBPbGl2ZWlyYQorICAgIENlcmlkd2VuCisgICAgQ2hyaXN0aWFu
IEJvZWxzZW4KKyAgICBEYW5pZWwgSGFobGVyCisgICAgRGFuaWVsbGUgSmVua2lucworICAgIERh
dmUgSHVudAorICAgIERpZWdvIFJ1c3NvCisgICAgRG1pdHJ5IER5Z2FsbworICAgIEVkb2FyZG8g
QmF0aW5pCisgICAgRWxpIEJveWFyc2tpCisgICAgRmxvcmlhbiBCcnVoaW4KKyAgICBGbG9yaXMg
QnJ1eW5vb2doZQorICAgIEdyZWcgUHJpY2UKKyAgICBHdXl6bW8KKyAgICBIRUFEIEtBTkdBUk9P
CisgICAgSkoKKyAgICBKYXZpIFJvbWVybworICAgIEphdmllciBEb21pbmdvIENhbnNpbm8KKyAg
ICBLYWxlIEt1bmRlcnQKKyAgICBLYWxsZSBCcm9uc2VuCisgICAgTWFyaXVzIEdlZG1pbmFzCisg
ICAgTWF0dCBXaWxsaWFtcworICAgIE1pa2UgTHVuZHkKKyAgICBPbGl2ZXIgQmVzdHdhbHRlcgor
ICAgIE9tYXIgS29obAorICAgIFJhcGhhZWwgUGllcnppbmEKKyAgICBSZWRCZWFyZENvZGUKKyAg
ICBSb2JlcnRvIFBvbGxpCisgICAgUm9tYWluIERvcmd1ZWlsCisgICAgUm9tYW4gQm9sc2hha292
CisgICAgUm9ubnkgUGZhbm5zY2htaWR0CisgICAgU3RlZmFuIFppbW1lcm1hbm4KKyAgICBTdGVm
ZmVuIEFsbG5lcgorICAgIFRhcmVxIEFsYXlhbgorICAgIFRlZCBYaWFvCisgICAgVGhvbWFzIEdy
YWluZ2VyCisgICAgVG9tIFZpbmVyCisgICAgVG9tVgorICAgIFZhc2lseSBLdXpuZXRzb3YKKyAg
ICBhb3N0cgorICAgIG1hcnNjaGVyCisgICAgcGFsYXZpdgorICAgIHNhdG9ydQorICAgIHRhc2No
aW5pCisKKworSGFwcHkgdGVzdGluZywKK1RoZSBQeXRlc3QgRGV2ZWxvcG1lbnQgVGVhbQorCitb
MV0gaHR0cDovL2Jsb2cucHl0ZXN0Lm9yZy8yMDE2L3B5dGVzdC1kZXZlbG9wbWVudC1zcHJpbnQv
CitbMl0gaHR0cDovL2Jsb2cucHl0ZXN0Lm9yZy8yMDE2L3doYXRzLW5ldy1pbi1weXRlc3QtMzAv
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjAuMS5y
c3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjAuMS5yc3QKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWZiMzgwNDdiOWNhZTY3NjVkZWU3YjZjYjNjMTVkMzdkNGMxMjU1YQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMC4xLnJzdApA
QCAtMCwwICsxLDI2IEBACitweXRlc3QtMy4wLjEKKz09PT09PT09PT09PQorCitweXRlc3QgMy4w
LjEgaGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgorCitUaGlzIHJlbGVhc2UgZml4ZXMg
c29tZSByZWdyZXNzaW9ucyByZXBvcnRlZCBpbiB2ZXJzaW9uIDMuMC4wLCBiZWluZyBhCitkcm9w
LWluIHJlcGxhY2VtZW50LiBUbyB1cGdyYWRlOgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBw
eXRlc3QKKyAgCitUaGUgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vZG9jLnB5dGVz
dC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sLgorCitUaGFua3MgdG8gYWxsIHdobyBjb250
cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyAgICAgIEFkYW0gQ2hhaW56
CisgICAgICBBbmRyZXcgU3ZldGxvdgorICAgICAgQnJ1bm8gT2xpdmVpcmEKKyAgICAgIERhbmll
bCBIYWhsZXIKKyAgICAgIERtaXRyeSBEeWdhbG8KKyAgICAgIEZsb3JpYW4gQnJ1aGluCisgICAg
ICBNYXJjaW4gQmFjaHJ5CisgICAgICBSb25ueSBQZmFubnNjaG1pZHQKKyAgICAgIG1hdHRoaWFz
aGEKKworSGFwcHkgdGVzdGluZywKK1RoZSBweS50ZXN0IERldmVsb3BtZW50IFRlYW0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMC4yLnJzdCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMC4yLnJzdApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
ZDFjMDVmMmQ0NTMxZmY4NWE2M2Y0ZGE3NGIxMTIyOTAyZGE1MTg3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4wLjIucnN0CkBAIC0wLDAg
KzEsMjQgQEAKK3B5dGVzdC0zLjAuMgorPT09PT09PT09PT09CisKK3B5dGVzdCAzLjAuMiBoYXMg
anVzdCBiZWVuIHJlbGVhc2VkIHRvIFB5UEkuCisKK1RoaXMgcmVsZWFzZSBmaXhlcyBzb21lIHJl
Z3Jlc3Npb25zIGFuZCBidWdzIHJlcG9ydGVkIGluIHZlcnNpb24gMy4wLjEsIGJlaW5nIGEKK2Ry
b3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFk
ZSBweXRlc3QKKyAgCitUaGUgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vZG9jLnB5
dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sLgorCitUaGFua3MgdG8gYWxsIHdobyBj
b250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyogQWhuIEtpLVdvb2sK
KyogQnJ1bm8gT2xpdmVpcmEKKyogRmxvcmlhbiBCcnVoaW4KKyogSm9yZGFuIEd1eW1vbgorKiBS
YXBoYWVsIFBpZXJ6aW5hCisqIFJvbm55IFBmYW5uc2NobWlkdAorKiBtYnl0CisKK0hhcHB5IHRl
c3RpbmcsCitUaGUgcHl0ZXN0IERldmVsb3BtZW50IFRlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMC4zLnJzdCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9hbm5vdW5jZS9yZWxlYXNlLTMuMC4zLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDAxNzIxOTVkYjhjYjM5
YmVmNWI0ZDgyZTZkNzk1ZjQwMzAxZTE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4wLjMucnN0CkBAIC0wLDAgKzEsMjcgQEAKK3B5dGVz
dC0zLjAuMworPT09PT09PT09PT09CisKK3B5dGVzdCAzLjAuMyBoYXMganVzdCBiZWVuIHJlbGVh
c2VkIHRvIFB5UEkuCisKK1RoaXMgcmVsZWFzZSBmaXhlcyBzb21lIHJlZ3Jlc3Npb25zIGFuZCBi
dWdzIHJlcG9ydGVkIGluIHRoZSBsYXN0IHZlcnNpb24sIAorYmVpbmcgYSBkcm9wLWluIHJlcGxh
Y2VtZW50LiBUbyB1cGdyYWRlOjoKKworICBwaXAgaW5zdGFsbCAtLXVwZ3JhZGUgcHl0ZXN0Cisg
IAorVGhlIGNoYW5nZWxvZyBpcyBhdmFpbGFibGUgYXQgaHR0cDovL2RvYy5weXRlc3Qub3JnL2Vu
L2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbC4KKworVGhhbmtzIHRvIGFsbCB3aG8gY29udHJpYnV0ZWQg
dG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisqIEJydW5vIE9saXZlaXJhCisqIEZsb3Jp
YW4gQnJ1aGluCisqIEZsb3JpcyBCcnV5bm9vZ2hlCisqIEh1YXlpIFpoYW5nCisqIExldiBNYXhp
bW92CisqIFJhcXVlbCBBbGVncmUKKyogUm9ubnkgUGZhbm5zY2htaWR0CisqIFJveSBXaWxsaWFt
cworKiBUeWxlciBHb29kbGV0CisqIG1ieXQKKworSGFwcHkgdGVzdGluZywKK1RoZSBweXRlc3Qg
RGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3JlbGVhc2UtMy4wLjQucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
My4wLjQucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1MjA1NzAzN2RkNGZmNWIxNWI3YmM1MjQ3MTQ0MWI3Mjgx
YzA0ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVs
ZWFzZS0zLjAuNC5yc3QKQEAgLTAsMCArMSwyOSBAQAorcHl0ZXN0LTMuMC40Cis9PT09PT09PT09
PT0KKworcHl0ZXN0IDMuMC40IGhhcyBqdXN0IGJlZW4gcmVsZWFzZWQgdG8gUHlQSS4KKworVGhp
cyByZWxlYXNlIGZpeGVzIHNvbWUgcmVncmVzc2lvbnMgYW5kIGJ1Z3MgcmVwb3J0ZWQgaW4gdGhl
IGxhc3QgdmVyc2lvbiwgCitiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6
OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QKKyAgCitUaGUgY2hhbmdlbG9nIGlz
IGF2YWlsYWJsZSBhdCBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5o
dG1sLgorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFt
b25nIHRoZW06CisKKyogQnJ1bm8gT2xpdmVpcmEKKyogRGFuIFdhbmRzY2huZWlkZXIKKyogRmxv
cmlhbiBCcnVoaW4KKyogR2Vvcmd5IER5dWxkaW4KKyogR3JpZ29yaWkgRXJlbWVldgorKiBKYXNv
biBSLiBDb29tYnMKKyogTWFudWVsIEphY29iCisqIE1hdGhpZXUgQ2xhYmF1dAorKiBNaWNoYWVs
IFNlaWZlcnQKKyogTmlrb2xhdXMgUmF0aAorKiBSb25ueSBQZmFubnNjaG1pZHQKKyogVG9tIFYK
KworSGFwcHkgdGVzdGluZywKK1RoZSBweXRlc3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4wLjUucnN0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4wLjUucnN0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNlMjQx
OWQ3ZTVkYzcwMmY4OGNjYjlkY2Y4Y2IzNzMzYjZlMDgwZGUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjAuNS5yc3QKQEAgLTAsMCArMSwy
NyBAQAorcHl0ZXN0LTMuMC41Cis9PT09PT09PT09PT0KKworcHl0ZXN0IDMuMC41IGhhcyBqdXN0
IGJlZW4gcmVsZWFzZWQgdG8gUHlQSS4KKworVGhpcyBpcyBhIGJ1Zy1maXggcmVsZWFzZSwgYmVp
bmcgYSBkcm9wLWluIHJlcGxhY2VtZW50LiBUbyB1cGdyYWRlOjoKKworICBwaXAgaW5zdGFsbCAt
LXVwZ3JhZGUgcHl0ZXN0CisgIAorVGhlIGNoYW5nZWxvZyBpcyBhdmFpbGFibGUgYXQgaHR0cDov
L2RvYy5weXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbC4KKworVGhhbmtzIHRvIGFs
bCB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisqIEFuYSBW
b2pub3ZpYworKiBCcnVubyBPbGl2ZWlyYQorKiBEYW5pZWwgSGFobGVyCisqIER1bmNhbiBCZXR0
cworKiBJZ29yIFN0YXJpa292CisqIElzbWFpbAorKiBMdWtlIE11cnBoeQorKiBOZWQgQmF0Y2hl
bGRlcgorKiBSb25ueSBQZmFubnNjaG1pZHQKKyogU2ViYXN0aWFuIFJhbWFjaGVyCisqIG5tdW5k
YXIKKworSGFwcHkgdGVzdGluZywKK1RoZSBweXRlc3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4wLjYucnN0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4wLjYucnN0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5
ODhiOWNiM2I4ZjNlZDIzZjYxOTU1NzYwMmY3YTNiOGVkY2I2ODMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjAuNi5yc3QKQEAgLTAsMCAr
MSwzMyBAQAorcHl0ZXN0LTMuMC42Cis9PT09PT09PT09PT0KKworcHl0ZXN0IDMuMC42IGhhcyBq
dXN0IGJlZW4gcmVsZWFzZWQgdG8gUHlQSS4KKworVGhpcyBpcyBhIGJ1Zy1maXggcmVsZWFzZSwg
YmVpbmcgYSBkcm9wLWluIHJlcGxhY2VtZW50LiBUbyB1cGdyYWRlOjoKKworICBwaXAgaW5zdGFs
bCAtLXVwZ3JhZGUgcHl0ZXN0CisgIAorVGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBh
dCBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sLgorCisKK1Ro
YW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToK
KworKiBBbmRyZWFzIFBlbG1lCisqIEJydW5vIE9saXZlaXJhCisqIERtaXRyeSBNYWxpbm92c2t5
CisqIEVsaSBCb3lhcnNraQorKiBKYWt1YiBXaWxrCisqIEplZmYgV2lkbWFuCisqIExvw69jIEVz
dMOodmUKKyogTHVrZSBNdXJwaHkKKyogTWlybyBIcm9uxI1vaworKiBPc2NhciBIZWxsc3Ryw7Zt
CisqIFBldGVyIEhlYXR3b2xlCisqIFBoaWxpcHBlIE9tYnJlZGFubmUKKyogUm9ubnkgUGZhbm5z
Y2htaWR0CisqIFJ1dGdlciBQcmlucworKiBTdGVmYW4gU2NoZXJma2UKKworCitIYXBweSB0ZXN0
aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjAuNy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
YW5ub3VuY2UvcmVsZWFzZS0zLjAuNy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTkxNTU3YWE3ODczZDNjZjA3
YWQ5NzBjMjk3ZDljZjdlYjFiZTliOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMC43LnJzdApAQCAtMCwwICsxLDMzIEBACitweXRlc3Qt
My4wLjcKKz09PT09PT09PT09PQorCitweXRlc3QgMy4wLjcgaGFzIGp1c3QgYmVlbiByZWxlYXNl
ZCB0byBQeVBJLgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCBiZWluZyBhIGRyb3AtaW4g
cmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRl
c3QKKyAgCitUaGUgZnVsbCBjaGFuZ2Vsb2cgaXMgYXZhaWxhYmxlIGF0IGh0dHA6Ly9kb2MucHl0
ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwuCisKK1RoYW5rcyB0byBhbGwgd2hvIGNv
bnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhlbToKKworKiBBbnRob255IFNvdHRp
bGUKKyogQmFybmV5IEdhbGUKKyogQnJ1bm8gT2xpdmVpcmEKKyogRmxvcmlhbiBCcnVoaW4KKyog
RmxvcmlzIEJydXlub29naGUKKyogSW9uZWwgQ3Jpc3RpYW4gTcSDcmllyJkKKyogS2F0ZXJpbmEg
S291a2lvdQorKiBOT0RBLCBLYWkKKyogT21lciBIYWRhcmkKKyogUGF0cmljayBIYXllcworKiBS
YW4gQmVuaXRhCisqIFJvbm55IFBmYW5uc2NobWlkdAorKiBWaWN0b3IgVXJpYXJ0ZQorKiBWaWRh
ciBUb25hYXMgRmF1c2tlCisqIFZpbGxlIFNreXR0w6QKKyogZmJqb3JuCisqIG1ieXQKKworSGFw
cHkgdGVzdGluZywKK1RoZSBweXRlc3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4xLjAucnN0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4xLjAucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5Y2M2YmRiZTIw
NzdmMTBlZTE0NmVmZjA0Y2NmYmJjZjFmODk3MTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjEuMC5yc3QKQEAgLTAsMCArMSw2MSBAQAor
cHl0ZXN0LTMuMS4wCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKwor
VGhlIHB5dGVzdCB0ZWFtIGlzIHByb3VkIHRvIGFubm91bmNlIHRoZSAzLjEuMCByZWxlYXNlIQor
CitweXRlc3QgaXMgYSBtYXR1cmUgUHl0aG9uIHRlc3RpbmcgdG9vbCB3aXRoIG1vcmUgdGhhbiBh
IDE2MDAgdGVzdHMKK2FnYWluc3QgaXRzZWxmLCBwYXNzaW5nIG9uIG1hbnkgZGlmZmVyZW50IGlu
dGVycHJldGVycyBhbmQgcGxhdGZvcm1zLgorCitUaGlzIHJlbGVhc2UgY29udGFpbnMgYSBidWdz
IGZpeGVzIGFuZCBpbXByb3ZlbWVudHMsIHNvIHVzZXJzIGFyZSBlbmNvdXJhZ2VkCit0byB0YWtl
IGEgbG9vayBhdCB0aGUgQ0hBTkdFTE9HOgorCitodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4vbGF0
ZXN0L2NoYW5nZWxvZy5odG1sCisKK0ZvciBjb21wbGV0ZSBkb2N1bWVudGF0aW9uLCBwbGVhc2Ug
dmlzaXQ6CisKKyAgICBodHRwOi8vZG9jcy5weXRlc3Qub3JnCisKK0FzIHVzdWFsLCB5b3UgY2Fu
IHVwZ3JhZGUgZnJvbSBweXBpIHZpYToKKworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdAorCitU
aGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06
CisKKyogQW50aG9ueSBTb3R0aWxlCisqIEJlbiBMbG95ZAorKiBCcnVubyBPbGl2ZWlyYQorKiBE
YXZpZCBHaWVzZQorKiBEYXZpZCBTem90dGVuCisqIERtaXRyaSBQcmlieXNoCisqIEZsb3JpYW4g
QnJ1aGluCisqIEZsb3JpYW4gU2NodWx6ZQorKiBGbG9yaXMgQnJ1eW5vb2doZQorKiBKb2huIFRv
d2xlcgorKiBKb25hcyBPYnJpc3QKKyogS2F0ZXJpbmEgS291a2lvdQorKiBLb2RpIEFyZmVyCisq
IEtyenlzenRvZiBTenVsYXJ6CisqIExldiBNYXhpbW92CisqIExvw69jIEVzdMOodmUKKyogTHVr
ZSBNdXJwaHkKKyogTWFudWVsIEtyZWJiZXIKKyogTWF0dGhldyBEdWNrCisqIE1hdHRoaWFzIEJ1
c3Nvbm5pZXIKKyogTWljaGFlbCBIb3dpdHoKKyogTWljaGFsIFdhanN6Y3p1aworKiBQYXdlxYIg
QWRhbWN6YWsKKyogUmFmYWVsIEJlcnRvbGRpCisqIFJhdmkgQ2hhbmRyYQorKiBSb25ueSBQZmFu
bnNjaG1pZHQKKyogU2t5bGFyIERvd25lcworKiBUaG9tYXMgS3JpZWNoYmF1bWVyCisqIFZpdGFs
eSBMYXNobWFub3YKKyogVmxhZCBEcmFnb3MKKyogV2hlZXJkCisqIFhhbmRlciBKb2huc29uCisq
IG1hbmRlZXAKKyogcmV1dAorCisKK0hhcHB5IHRlc3RpbmcsCitUaGUgUHl0ZXN0IERldmVsb3Bt
ZW50IFRlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNl
LTMuMS4xLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMS4xLnJz
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zNzBiOGZkNzM1NTAyNmM3ODQ3Y2MyYzUwZTQ5NTZhYzNhODQ0NjM4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4x
LjEucnN0CkBAIC0wLDAgKzEsMjMgQEAKK3B5dGVzdC0zLjEuMQorPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdCAzLjEuMSBoYXMganVzdCBiZWVuIHJlbGVh
c2VkIHRvIFB5UEkuCisKK1RoaXMgaXMgYSBidWctZml4IHJlbGVhc2UsIGJlaW5nIGEgZHJvcC1p
biByZXBsYWNlbWVudC4gVG8gdXBncmFkZTo6CisKKyAgcGlwIGluc3RhbGwgLS11cGdyYWRlIHB5
dGVzdAorICAKK1RoZSBmdWxsIGNoYW5nZWxvZyBpcyBhdmFpbGFibGUgYXQgaHR0cDovL2RvYy5w
eXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbC4KKworVGhhbmtzIHRvIGFsbCB3aG8g
Y29udHJpYnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisqIEJydW5vIE9saXZl
aXJhCisqIEZsb3JpYW4gQnJ1aGluCisqIEZsb3JpcyBCcnV5bm9vZ2hlCisqIEphc29uIFIuIENv
b21icworKiBSb25ueSBQZmFubnNjaG1pZHQKKyogd2FuZ2h1aQorCisKK0hhcHB5IHRlc3Rpbmcs
CitUaGUgcHl0ZXN0IERldmVsb3BtZW50IFRlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMS4yLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5v
dW5jZS9yZWxlYXNlLTMuMS4yLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MDE2OGE4NTdiYWJmNmMyODdiNTE3
ODYyZTk1NDM3YzBiNTNkNDRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2Fubm91bmNlL3JlbGVhc2UtMy4xLjIucnN0CkBAIC0wLDAgKzEsMjMgQEAKK3B5dGVzdC0zLjEu
MgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdCAzLjEu
MiBoYXMganVzdCBiZWVuIHJlbGVhc2VkIHRvIFB5UEkuCisKK1RoaXMgaXMgYSBidWctZml4IHJl
bGVhc2UsIGJlaW5nIGEgZHJvcC1pbiByZXBsYWNlbWVudC4gVG8gdXBncmFkZTo6CisKKyAgcGlw
IGluc3RhbGwgLS11cGdyYWRlIHB5dGVzdAorICAKK1RoZSBmdWxsIGNoYW5nZWxvZyBpcyBhdmFp
bGFibGUgYXQgaHR0cDovL2RvYy5weXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbC4K
KworVGhhbmtzIHRvIGFsbCB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0
aGVtOgorCisqIEFuZHJlYXMgUGVsbWUKKyogQXBhRG9jdG9yCisqIEJydW5vIE9saXZlaXJhCisq
IEZsb3JpYW4gQnJ1aGluCisqIFJvbm55IFBmYW5uc2NobWlkdAorKiBTZWdldiBGaW5lcgorCisK
K0hhcHB5IHRlc3RpbmcsCitUaGUgcHl0ZXN0IERldmVsb3BtZW50IFRlYW0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMS4zLnJzdCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMS4zLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTUyODA2
MjZiYTk4ZDZkMjE0MDdkYjI4MmQ4M2M1NDUzNjAzOTRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4xLjMucnN0CkBAIC0wLDAgKzEsMjMg
QEAKK3B5dGVzdC0zLjEuMworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CisKK3B5dGVzdCAzLjEuMyBoYXMganVzdCBiZWVuIHJlbGVhc2VkIHRvIFB5UEkuCisKK1RoaXMg
aXMgYSBidWctZml4IHJlbGVhc2UsIGJlaW5nIGEgZHJvcC1pbiByZXBsYWNlbWVudC4gVG8gdXBn
cmFkZTo6CisKKyAgcGlwIGluc3RhbGwgLS11cGdyYWRlIHB5dGVzdAorICAKK1RoZSBmdWxsIGNo
YW5nZWxvZyBpcyBhdmFpbGFibGUgYXQgaHR0cDovL2RvYy5weXRlc3Qub3JnL2VuL2xhdGVzdC9j
aGFuZ2Vsb2cuaHRtbC4KKworVGhhbmtzIHRvIGFsbCB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcyBy
ZWxlYXNlLCBhbW9uZyB0aGVtOgorCisqIEFudG9pbmUgTGVncmFuZAorKiBCcnVubyBPbGl2ZWly
YQorKiBNYXggTW9yb3oKKyogUmFwaGFlbCBQaWVyemluYQorKiBSb25ueSBQZmFubnNjaG1pZHQK
KyogUnlhbiBGaXR6cGF0cmljaworCisKK0hhcHB5IHRlc3RpbmcsCitUaGUgcHl0ZXN0IERldmVs
b3BtZW50IFRlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxl
YXNlLTMuMi4wLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMi4w
LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40ZDI4MzBlZGQyZGVkZTc4N2UyZTFlZGNjZjNhMjhlOTMyYmUxNGYz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
My4yLjAucnN0CkBAIC0wLDAgKzEsNDggQEAKK3B5dGVzdC0zLjIuMAorPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisKK1RoZSBweXRlc3QgdGVhbSBpcyBwcm91ZCB0byBh
bm5vdW5jZSB0aGUgMy4yLjAgcmVsZWFzZSEKKworcHl0ZXN0IGlzIGEgbWF0dXJlIFB5dGhvbiB0
ZXN0aW5nIHRvb2wgd2l0aCBtb3JlIHRoYW4gYSAxNjAwIHRlc3RzCithZ2FpbnN0IGl0c2VsZiwg
cGFzc2luZyBvbiBtYW55IGRpZmZlcmVudCBpbnRlcnByZXRlcnMgYW5kIHBsYXRmb3Jtcy4KKwor
VGhpcyByZWxlYXNlIGNvbnRhaW5zIGEgbnVtYmVyIG9mIGJ1Z3MgZml4ZXMgYW5kIGltcHJvdmVt
ZW50cywgc28gdXNlcnMgYXJlIGVuY291cmFnZWQKK3RvIHRha2UgYSBsb29rIGF0IHRoZSBDSEFO
R0VMT0c6CisKKyAgICBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5o
dG1sCisKK0ZvciBjb21wbGV0ZSBkb2N1bWVudGF0aW9uLCBwbGVhc2UgdmlzaXQ6CisKKyAgICBo
dHRwOi8vZG9jcy5weXRlc3Qub3JnCisKK0FzIHVzdWFsLCB5b3UgY2FuIHVwZ3JhZGUgZnJvbSBw
eXBpIHZpYToKKworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdAorCitUaGFua3MgdG8gYWxsIHdo
byBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyogQWxleCBIYXJ0
b3RvCisqIEFuZHJhcyBUaW0KKyogQnJ1bm8gT2xpdmVpcmEKKyogRGFuaWVsIEhhaGxlcgorKiBG
bG9yaWFuIEJydWhpbgorKiBGbG9yaXMgQnJ1eW5vb2doZQorKiBKb2huIFN0aWxsCisqIEpvcmRh
biBNb2xkb3cKKyogS2FsZSBLdW5kZXJ0CisqIExhd3JlbmNlIE1pdGNoZWxsCisqIExsYW5keSBS
aXZlcm9uIERlbCBSaXNjbworKiBNYWlrIEZpZ3VyYQorKiBNYXJ0aW4gQWx0bWF5ZXIKKyogTWlo
YWkgQ2Fwb3TEgworKiBOYXRoYW5pZWwgV2Fpc2Jyb3QKKyogTmd1eeG7hW4gSOG7k25nIFF1w6Ju
CisqIFBhdWxpIFZpcnRhbmVuCisqIFJhcGhhZWwgUGllcnppbmEKKyogUm9ubnkgUGZhbm5zY2ht
aWR0CisqIFNlZ2V2IEZpbmVyCisqIFYuS3V6bmV0c292CisKKworSGFwcHkgdGVzdGluZywKK1Ro
ZSBQeXRlc3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2Fubm91bmNlL3JlbGVhc2UtMy4yLjEucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3JlbGVhc2UtMy4yLjEucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5OWZmY2Q0YjRhYWNkODg2ZTdmYjcyNWI5
ODRiZGU5MTVjNjNhMjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5u
b3VuY2UvcmVsZWFzZS0zLjIuMS5yc3QKQEAgLTAsMCArMSwyMiBAQAorcHl0ZXN0LTMuMi4xCis9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworcHl0ZXN0IDMuMi4xIGhh
cyBqdXN0IGJlZW4gcmVsZWFzZWQgdG8gUHlQSS4KKworVGhpcyBpcyBhIGJ1Zy1maXggcmVsZWFz
ZSwgYmVpbmcgYSBkcm9wLWluIHJlcGxhY2VtZW50LiBUbyB1cGdyYWRlOjoKKworICBwaXAgaW5z
dGFsbCAtLXVwZ3JhZGUgcHl0ZXN0CisgIAorVGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJs
ZSBhdCBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sLgorCitU
aGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06
CisKKyogQWxleCBHYXlub3IKKyogQnJ1bm8gT2xpdmVpcmEKKyogRmxvcmlhbiBCcnVoaW4KKyog
Um9ubnkgUGZhbm5zY2htaWR0CisqIFNyaW5pdmFzIFJlZGR5IFRoYXRpcGFydGh5CisKKworSGFw
cHkgdGVzdGluZywKK1RoZSBweXRlc3QgRGV2ZWxvcG1lbnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4yLjIucnN0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4yLjIucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5OWJmODcyNzc1
Y2IyYjA0NWZlN2EyZDYwYjY5ZTQ2ZGYyZDVmZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjIuMi5yc3QKQEAgLTAsMCArMSwyOCBAQAor
cHl0ZXN0LTMuMi4yCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKwor
cHl0ZXN0IDMuMi4yIGhhcyBqdXN0IGJlZW4gcmVsZWFzZWQgdG8gUHlQSS4KKworVGhpcyBpcyBh
IGJ1Zy1maXggcmVsZWFzZSwgYmVpbmcgYSBkcm9wLWluIHJlcGxhY2VtZW50LiBUbyB1cGdyYWRl
OjoKKworICBwaXAgaW5zdGFsbCAtLXVwZ3JhZGUgcHl0ZXN0CisgIAorVGhlIGZ1bGwgY2hhbmdl
bG9nIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vZG9jLnB5dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5n
ZWxvZy5odG1sLgorCitUaGFua3MgdG8gYWxsIHdobyBjb250cmlidXRlZCB0byB0aGlzIHJlbGVh
c2UsIGFtb25nIHRoZW06CisKKyogQW5kcmVhcyBQZWxtZQorKiBBbnRvbmlvIEhpZGFsZ28KKyog
QnJ1bm8gT2xpdmVpcmEKKyogRmVsaXBlIERhdQorKiBGZXJuYW5kbyBNYWNlZG8KKyogSmVzw7pz
IEVzcGlubworKiBKb2FuIE1hc3NpY2gKKyogSm9lIFRhbGJvdHQKKyogS2lyaWxsIFBpbmNodWsK
KyogUm9ubnkgUGZhbm5zY2htaWR0CisqIFh1YW4gTHVvbmcKKworCitIYXBweSB0ZXN0aW5nLAor
VGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjIuMy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3Vu
Y2UvcmVsZWFzZS0zLjIuMy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTg5Mzc0OTc0ZDkxZDk1MTBiMjU5ZTc5
ZGM1ZDVkN2RhZmQzZGMzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9h
bm5vdW5jZS9yZWxlYXNlLTMuMi4zLnJzdApAQCAtMCwwICsxLDIzIEBACitweXRlc3QtMy4yLjMK
Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QgMy4yLjMg
aGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgorCitUaGlzIGlzIGEgYnVnLWZpeCByZWxl
YXNlLCBiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6OgorCisgIHBpcCBp
bnN0YWxsIC0tdXBncmFkZSBweXRlc3QKKyAgCitUaGUgZnVsbCBjaGFuZ2Vsb2cgaXMgYXZhaWxh
YmxlIGF0IGh0dHA6Ly9kb2MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9nLmh0bWwuCisK
K1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwgYW1vbmcgdGhl
bToKKworKiBCcnVubyBPbGl2ZWlyYQorKiBFdmFuCisqIEpvZSBIYW1tYW4KKyogT2xpdmVyIEJl
c3R3YWx0ZXIKKyogUm9ubnkgUGZhbm5zY2htaWR0CisqIFh1YW4gTHVvbmcKKworCitIYXBweSB0
ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjIuNC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjIuNC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRiZmNjMjdlMjliNWZl
YjljZTI3OGIzMmIyZGViYjE4NTA3ZmU2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMi40LnJzdApAQCAtMCwwICsxLDM2IEBACitweXRl
c3QtMy4yLjQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitweXRl
c3QgMy4yLjQgaGFzIGp1c3QgYmVlbiByZWxlYXNlZCB0byBQeVBJLgorCitUaGlzIGlzIGEgYnVn
LWZpeCByZWxlYXNlLCBiZWluZyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQuIFRvIHVwZ3JhZGU6Ogor
CisgIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBweXRlc3QKKyAgCitUaGUgZnVsbCBjaGFuZ2Vsb2cg
aXMgYXZhaWxhYmxlIGF0IGh0dHA6Ly9kb2MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvY2hhbmdlbG9n
Lmh0bWwuCisKK1RoYW5rcyB0byBhbGwgd2hvIGNvbnRyaWJ1dGVkIHRvIHRoaXMgcmVsZWFzZSwg
YW1vbmcgdGhlbToKKworKiBCcnVubyBPbGl2ZWlyYQorKiBDaHJpc3RpYW4gQm9lbHNlbgorKiBD
aHJpc3RvcGggQnVjaG5lcgorKiBEYXctUmFuIExpb3UKKyogRmxvcmlhbiBCcnVoaW4KKyogRnJh
bmNrIE1pY2hlYQorKiBMZW9uYXJkIExhdXNlbgorKiBNYXR0eSBHCisqIE93ZW4gVHV6CisqIFBh
dmVsIEthcmF0ZWV2CisqIFBpZXJyZSBHSVJBVUQKKyogUm9ubnkgUGZhbm5zY2htaWR0CisqIFN0
ZXBoZW4gRmludWNhbmUKKyogU3ZpYXRvc2xhdiBBYmFrdW1vdgorKiBUaG9tYXMgSGlzY2gKKyog
VG9tIERhbHRvbgorKiBYdWFuIEx1b25nCisqIFlvcmdvcyBQYWdsZXMKKyog0KHQtdC80ZHQvSDQ
nNCw0YDRjNGP0YHQuNC9CisKKworSGFwcHkgdGVzdGluZywKK1RoZSBweXRlc3QgRGV2ZWxvcG1l
bnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
My4yLjUucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4yLjUucnN0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmE1MjBjZTJiMzMzZDU2YmY1MjY0ZWNmYjZkYWVlMDA5Njg1Mjc4NDUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjIu
NS5yc3QKQEAgLTAsMCArMSwxOCBAQAorcHl0ZXN0LTMuMi41Cis9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KKworcHl0ZXN0IDMuMi41IGhhcyBqdXN0IGJlZW4gcmVsZWFz
ZWQgdG8gUHlQSS4KKworVGhpcyBpcyBhIGJ1Zy1maXggcmVsZWFzZSwgYmVpbmcgYSBkcm9wLWlu
IHJlcGxhY2VtZW50LiBUbyB1cGdyYWRlOjoKKworICBwaXAgaW5zdGFsbCAtLXVwZ3JhZGUgcHl0
ZXN0CisgIAorVGhlIGZ1bGwgY2hhbmdlbG9nIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vZG9jLnB5
dGVzdC5vcmcvZW4vbGF0ZXN0L2NoYW5nZWxvZy5odG1sLgorCitUaGFua3MgdG8gYWxsIHdobyBj
b250cmlidXRlZCB0byB0aGlzIHJlbGVhc2UsIGFtb25nIHRoZW06CisKKyogQnJ1bm8gT2xpdmVp
cmEKKworCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjMuMC5yc3QgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvcmVsZWFzZS0zLjMuMC5yc3QKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTA3NDBlN2Q1OTI5NWZlNWIwY2NjYmY3NmU3ZDFlYzZjMGZhZDhkMQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMy4wLnJzdApAQCAtMCww
ICsxLDUwIEBACitweXRlc3QtMy4zLjAKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorCitUaGUgcHl0ZXN0IHRlYW0gaXMgcHJvdWQgdG8gYW5ub3VuY2UgdGhlIDMuMy4w
IHJlbGVhc2UhCisKK3B5dGVzdCBpcyBhIG1hdHVyZSBQeXRob24gdGVzdGluZyB0b29sIHdpdGgg
bW9yZSB0aGFuIGEgMTYwMCB0ZXN0cworYWdhaW5zdCBpdHNlbGYsIHBhc3Npbmcgb24gbWFueSBk
aWZmZXJlbnQgaW50ZXJwcmV0ZXJzIGFuZCBwbGF0Zm9ybXMuCisKK1RoaXMgcmVsZWFzZSBjb250
YWlucyBhIG51bWJlciBvZiBidWdzIGZpeGVzIGFuZCBpbXByb3ZlbWVudHMsIHNvIHVzZXJzIGFy
ZSBlbmNvdXJhZ2VkCit0byB0YWtlIGEgbG9vayBhdCB0aGUgQ0hBTkdFTE9HOgorCisgICAgaHR0
cDovL2RvYy5weXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbAorCitGb3IgY29tcGxl
dGUgZG9jdW1lbnRhdGlvbiwgcGxlYXNlIHZpc2l0OgorCisgICAgaHR0cDovL2RvY3MucHl0ZXN0
Lm9yZworCitBcyB1c3VhbCwgeW91IGNhbiB1cGdyYWRlIGZyb20gcHlwaSB2aWE6CisKKyAgICBw
aXAgaW5zdGFsbCAtVSBweXRlc3QKKworVGhhbmtzIHRvIGFsbCB3aG8gY29udHJpYnV0ZWQgdG8g
dGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCisqIEFudGhvbnkgU290dGlsZQorKiBCcnVubyBP
bGl2ZWlyYQorKiBDZXJpZHdlbgorKiBEYW5pZWwgSGFobGVyCisqIERpcmsgVGhvbWFzCisqIERt
aXRyeSBNYWxpbm92c2t5CisqIEZsb3JpYW4gQnJ1aGluCisqIEdlb3JnZSBZLiBLdXNzdW1vdG8K
KyogSHVnbworKiBKZXPDunMgRXNwaW5vCisqIEpvYW4gTWFzc2ljaAorKiBPZmlyCisqIE9maXJP
c2hpcgorKiBSb25ueSBQZmFubnNjaG1pZHQKKyogU2FtdWVsIERpb24tR2lyYXJkZWF1CisqIFNy
aW5pdmFzIFJlZGR5IFRoYXRpcGFydGh5CisqIFN2aWF0b3NsYXYgQWJha3Vtb3YKKyogVGFyY2lz
aW8gRmlzY2hlcgorKiBUaG9tYXMgSGlzY2gKKyogVHlsZXIgR29vZGxldAorKiBodWdvdmsKKyog
amUKKyogcHJva2FrdHVzCisKKworSGFwcHkgdGVzdGluZywKK1RoZSBQeXRlc3QgRGV2ZWxvcG1l
bnQgVGVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3NwcmludDIw
MTYucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3NwcmludDIwMTYucnN0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjhlNzA2NTg5ODc2NzEwZDQwZTc2ZDc2YTdiNjJhMjZhZmI4YTU3Y2MKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2Uvc3ByaW50MjAxNi5yc3QKQEAg
LTAsMCArMSw2NCBAQAorcHl0aG9uIHRlc3Rpbmcgc3ByaW50IEp1bmUgMjB0aC0yNnRoIDIwMTYK
Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor
CisuLiBpbWFnZTo6IC4uL2ltZy9mcmVpYnVyZzIuanBnCisgICA6d2lkdGg6IDQwMAorCitUaGUg
cHl0ZXN0IGNvcmUgZ3JvdXAgaGVsZCB0aGUgYmlnZ2VzdCBzcHJpbnQKK2luIGl0cyBoaXN0b3J5
IGluIEp1bmUgMjAxNiwgdGFraW5nIHBsYWNlIGluIHRoZSBibGFjayBmb3Jlc3QgdG93biBGcmVp
YnVyZworaW4gR2VybWFueS4gIEluIEZlYnJ1YXJ5IDIwMTYgd2Ugc3RhcnRlZCBhIGBmdW5kaW5n
CitjYW1wYWlnbiBvbiBJbmRpZWdvZ28gdG8gY292ZXIgZXhwZW5zZXMKKzxodHRwOi8vaWdnLm1l
L2F0L3B5dGVzdC1zcHJpbnQveC80MDM0ODQ4PmBfIFRoZSBwYWdlIGFsc28gbWVudGlvbnMKK3Nv
bWUgcHJlbGltaW5hcnkgdG9waWNzOgorCistIGltcHJvdmluZyBweXRlc3QteGRpc3QgdGVzdCBz
Y2hlZHVsaW5nIHRvIHRha2UgaW50byBhY2NvdW50CisgIGZpeHR1cmUgc2V0dXBzIGFuZCBleHBs
aWNpdCB1c2VyIGhpbnRzLgorCistIHByb3ZpZGUgaW5mbyBvbiBmaXh0dXJlIGRlcGVuZGVuY2ll
cyBkdXJpbmcgLS1jb2xsZWN0LW9ubHkKKworLSB0eWluZyBweXRlc3QteGRpc3QgdG8gdG94IHNv
IHRoYXQgeW91IGNhbiBkbyAicHkudGVzdCAtZSBweTM0IgorICB0byBydW4gdGVzdHMgaW4gYSBw
YXJ0aWN1bGFyIHRveC1tYW5hZ2VkIHZpcnR1YWxlbnYuICBBbHNvCisgIGxvb2sgaW50byBtYWtp
bmcgcHl0ZXN0LXhkaXN0IHVzZSB0b3ggZW52aXJvbm1lbnRzIG9uCisgIHJlbW90ZSBzc2gtc2lk
ZXMgc28gdGhhdCByZW1vdGUgZGVwZW5kZW5jeSBtYW5hZ2VtZW50IGJlY29tZXMKKyAgZWFzaWVy
LgorCistIHJlZmFjdG9yaW5nIHRoZSBmaXh0dXJlIHN5c3RlbSBzbyBtb3JlIHBlb3BsZSB1bmRl
cnN0YW5kIGl0IDopCisKKy0gaW50ZWdyYXRpbmcgUHlVbml0IHNldHVwIG1ldGhvZHMgYXMgYXV0
b3VzZSBmaXh0dXJlcy4KKyAgcG9zc2libHkgYWRkaW5nIHdheXMgdG8gaW5mbHVlbmNlIG9yZGVy
aW5nIG9mIHNhbWUtc2NvcGVkCisgIGZpeHR1cmVzIChzbyB5b3UgY2FuIG1ha2UgYSBjaG9pY2Ug
b2Ygd2hpY2ggZml4dHVyZXMgY29tZQorICBiZWZvcmUgb3RoZXJzKQorCistIGZpeGluZyBidWdz
IGFuZCBpc3N1ZXMgZnJvbSB0aGUgdHJhY2tlciwgcmVhbGx5IGFuIGVuZGxlc3Mgc291cmNlIDop
CisKKworUGFydGljaXBhbnRzCistLS0tLS0tLS0tLS0tLQorCitPdmVyIDIwIHBhcnRpY2lwYW50
cyB0b29rIHBhcnQgZnJvbSA0IGNvbnRpbmVudHMsIGluY2x1ZGluZyBlbXBsb3llZXMKK2Zyb20g
U3BsdW5rLCBQZXJzb25hbGtvbGxlbiwgQ29iZS5pbywgRmFuRHVlbCBhbmQgRG9sYnkuIFNvbWUg
bmV3Y29tZXJzCittaXhlZCB3aXRoIGRldmVsb3BlcnMgd2hvIGhhdmUgd29ya2VkIG9uIHB5dGVz
dCBzaW5jZSBpdHMgYmVnaW5uaW5nLCBhbmQKK29mIGNvdXJzZSBldmVyeW9uZSBpbiBiZXR3ZWVu
LgorCisKK1NwcmludCBvcmdhbmlzYXRpb24sIHNjaGVkdWxlCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKK1Blb3BsZSBhcnJpdmVkIGluIEZyZWlidXJnIG9uIHRoZSAxOXRoLCB3
aXRoIHNwcmludCBkZXZlbG9wbWVudCB0YWtpbmcKK3BsYWNlIG9uIDIwdGgsIDIxc3QsIDIybmQs
IDI0dGggYW5kIDI1dGguIE9uIHRoZSAyM3JkIHdlIHRvb2sgYSBicmVhaworZGF5IGZvciBzb21l
IGhvdCBoaWtpbmcgaW4gdGhlIEJsYWNrIEZvcmVzdC4KKworU3ByaW50IGFjdGl2aXR5IHdhcyBv
cmdhbmlzZWQgaGVhdmlseSBhcm91bmQgcGFpcmluZywgd2l0aCBwbGVudHkgb2YgZ3JvdXAKK2Rp
c2N1c3NzaW9ucyB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGUgaGlnaCBiYW5kd2lkdGgsIGFuZCBs
aWdodG5pbmcgdGFsa3MKK2FzIHdlbGwuCisKKworTW9uZXkgLyBmdW5kaW5nCistLS0tLS0tLS0t
LS0tLS0KKworCitUaGUgSW5kaWVnb2dvIGNhbXBhaWduIGFpbWVkIGZvciAxMTAwMCBVU0QgYW5k
IGluIHRoZSBlbmQgcmFpc2VkIG92ZXIKKzEyMDAwLCB0byByZWltYnVyc2UgdHJhdmVsIGNvc3Rz
LCBwYXkgZm9yIGEgc3ByaW50IHZlbnVlIGFuZCBjYXRlcmluZy4KKworRXhjZXNzIG1vbmV5IGlz
IHJlc2VydmVkIGZvciBmdXJ0aGVyIHNwcmludC90cmF2ZWwgZnVuZGluZyBmb3IgcHl0ZXN0L3Rv
eAorY29udHJpYnV0b3JzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3czYy1pbXBvcnQu
bG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFjNDU2NzY3MTNjNGZiYzZiZTRhYzVjZGExOTI1MTcxMDc4ZWIzNmEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvdzNjLWltcG9y
dC5sb2cKQEAgLTAsMCArMSw3NyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisK
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgor
Tm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL2luZGV4LnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMC4w
LnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMC4xLnJzdAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMC4yLnJzdAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMC4zLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9h
bm5vdW5jZS9yZWxlYXNlLTIuMS4wLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9y
ZWxlYXNlLTIuMS4xLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIu
MS4yLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMS4zLnJzdAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMi4wLnJzdAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMi4xLnJzdAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9hbm5vdW5jZS9yZWxlYXNlLTIuMi4yLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5j
ZS9yZWxlYXNlLTIuMi40LnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNl
LTIuMy4wLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMy4xLnJz
dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMy4yLnJzdAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMy4zLnJzdAorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuMy40LnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5v
dW5jZS9yZWxlYXNlLTIuMy41LnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxl
YXNlLTIuNC4wLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNC4x
LnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNC4yLnJzdAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNS4wLnJzdAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNS4xLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9h
bm5vdW5jZS9yZWxlYXNlLTIuNS4yLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9y
ZWxlYXNlLTIuNi4wLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIu
Ni4xLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNi4yLnJzdAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNi4zLnJzdAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuNy4wLnJzdAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9hbm5vdW5jZS9yZWxlYXNlLTIuNy4xLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5j
ZS9yZWxlYXNlLTIuNy4yLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNl
LTIuOC4yLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuOC4zLnJz
dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuOC40LnJzdAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuOC41LnJzdAorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuOC42LnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5v
dW5jZS9yZWxlYXNlLTIuOC43LnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxl
YXNlLTIuOS4wLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuOS4x
LnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTIuOS4yLnJzdAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMC4wLnJzdAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMC4xLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9h
bm5vdW5jZS9yZWxlYXNlLTMuMC4yLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9y
ZWxlYXNlLTMuMC4zLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMu
MC40LnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMC41LnJzdAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMC42LnJzdAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMC43LnJzdAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9hbm5vdW5jZS9yZWxlYXNlLTMuMS4wLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5j
ZS9yZWxlYXNlLTMuMS4xLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNl
LTMuMS4yLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMS4zLnJz
dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMi4wLnJzdAorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMi4xLnJzdAorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMi4yLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5v
dW5jZS9yZWxlYXNlLTMuMi4zLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxl
YXNlLTMuMi40LnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMi41
LnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLTMuMy4wLnJzdAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS9zcHJpbnQyMDE2LnJzdApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fzc2VydC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYXNzZXJ0LnJz
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40YTg1Mjk3OGVkMjE5YmU1MzRjMWNkY2RkMzQ1ZTA0YWRiNjRkYzMxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fzc2VydC5yc3QKQEAgLTAsMCAr
MSwyOTkgQEAKKworVGhlIHdyaXRpbmcgYW5kIHJlcG9ydGluZyBvZiBhc3NlcnRpb25zIGluIHRl
c3RzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor
CisuLiBfYGFzc2VydGZlZWRiYWNrYDoKKy4uIF9gYXNzZXJ0IHdpdGggdGhlIGFzc2VydCBzdGF0
ZW1lbnRgOgorLi4gX2Bhc3NlcnRgOgorCisKK0Fzc2VydGluZyB3aXRoIHRoZSBgYGFzc2VydGBg
IHN0YXRlbWVudAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKK2BgcHl0ZXN0YGAgYWxsb3dzIHlvdSB0byB1c2UgdGhlIHN0YW5kYXJk
IHB5dGhvbiBgYGFzc2VydGBgIGZvciB2ZXJpZnlpbmcKK2V4cGVjdGF0aW9ucyBhbmQgdmFsdWVz
IGluIFB5dGhvbiB0ZXN0cy4gIEZvciBleGFtcGxlLCB5b3UgY2FuIHdyaXRlIHRoZQorZm9sbG93
aW5nOjoKKworICAgICMgY29udGVudCBvZiB0ZXN0X2Fzc2VydDEucHkKKyAgICBkZWYgZigpOgor
ICAgICAgICByZXR1cm4gMworCisgICAgZGVmIHRlc3RfZnVuY3Rpb24oKToKKyAgICAgICAgYXNz
ZXJ0IGYoKSA9PSA0CisKK3RvIGFzc2VydCB0aGF0IHlvdXIgZnVuY3Rpb24gcmV0dXJucyBhIGNl
cnRhaW4gdmFsdWUuIElmIHRoaXMgYXNzZXJ0aW9uIGZhaWxzCit5b3Ugd2lsbCBzZWUgdGhlIHJl
dHVybiB2YWx1ZSBvZiB0aGUgZnVuY3Rpb24gY2FsbDo6CisKKyAgICAkIHB5dGVzdCB0ZXN0X2Fz
c2VydDEucHkKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0
YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgcGxhdGZvcm0gbGludXggLS0g
UHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICBy
b290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIGNvbGxlY3RlZCAxIGl0ZW0K
KyAgICAKKyAgICB0ZXN0X2Fzc2VydDEucHkgRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKyAgICAKKyAgICA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0gRkFJTFVSRVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CisgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIHRlc3RfZnVuY3Rpb24gX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXworICAgIAorICAgICAgICBkZWYgdGVzdF9mdW5j
dGlvbigpOgorICAgID4gICAgICAgYXNzZXJ0IGYoKSA9PSA0CisgICAgRSAgICAgICBhc3NlcnQg
MyA9PSA0CisgICAgRSAgICAgICAgKyAgd2hlcmUgMyA9IGYoKQorICAgIAorICAgIHRlc3RfYXNz
ZXJ0MS5weTo1OiBBc3NlcnRpb25FcnJvcgorICAgID09PT09PT09PT09PT09PT09PT09PT09PT0g
MSBmYWlsZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09PT0KKworYGBw
eXRlc3RgYCBoYXMgc3VwcG9ydCBmb3Igc2hvd2luZyB0aGUgdmFsdWVzIG9mIHRoZSBtb3N0IGNv
bW1vbiBzdWJleHByZXNzaW9ucworaW5jbHVkaW5nIGNhbGxzLCBhdHRyaWJ1dGVzLCBjb21wYXJp
c29ucywgYW5kIGJpbmFyeSBhbmQgdW5hcnkKK29wZXJhdG9ycy4gKFNlZSA6cmVmOmB0YnJlcG9y
dGRlbW9gKS4gIFRoaXMgYWxsb3dzIHlvdSB0byB1c2UgdGhlCitpZGlvbWF0aWMgcHl0aG9uIGNv
bnN0cnVjdHMgd2l0aG91dCBib2lsZXJwbGF0ZSBjb2RlIHdoaWxlIG5vdCBsb3NpbmcKK2ludHJv
c3BlY3Rpb24gaW5mb3JtYXRpb24uCisKK0hvd2V2ZXIsIGlmIHlvdSBzcGVjaWZ5IGEgbWVzc2Fn
ZSB3aXRoIHRoZSBhc3NlcnRpb24gbGlrZSB0aGlzOjoKKworICAgIGFzc2VydCBhICUgMiA9PSAw
LCAidmFsdWUgd2FzIG9kZCwgc2hvdWxkIGJlIGV2ZW4iCisKK3RoZW4gbm8gYXNzZXJ0aW9uIGlu
dHJvc3BlY3Rpb24gdGFrZXMgcGxhY2VzIGF0IGFsbCBhbmQgdGhlIG1lc3NhZ2UKK3dpbGwgYmUg
c2ltcGx5IHNob3duIGluIHRoZSB0cmFjZWJhY2suCisKK1NlZSA6cmVmOmBhc3NlcnQtZGV0YWls
c2AgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gYXNzZXJ0aW9uIGludHJvc3BlY3Rpb24uCisKKy4u
IF9gYXNzZXJ0cmFpc2VzYDoKKworQXNzZXJ0aW9ucyBhYm91dCBleHBlY3RlZCBleGNlcHRpb25z
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworSW4gb3JkZXIg
dG8gd3JpdGUgYXNzZXJ0aW9ucyBhYm91dCByYWlzZWQgZXhjZXB0aW9ucywgeW91IGNhbiB1c2UK
K2BgcHl0ZXN0LnJhaXNlc2BgIGFzIGEgY29udGV4dCBtYW5hZ2VyIGxpa2UgdGhpczo6CisKKyAg
ICBpbXBvcnQgcHl0ZXN0CisKKyAgICBkZWYgdGVzdF96ZXJvX2RpdmlzaW9uKCk6CisgICAgICAg
IHdpdGggcHl0ZXN0LnJhaXNlcyhaZXJvRGl2aXNpb25FcnJvcik6CisgICAgICAgICAgICAxIC8g
MAorCithbmQgaWYgeW91IG5lZWQgdG8gaGF2ZSBhY2Nlc3MgdG8gdGhlIGFjdHVhbCBleGNlcHRp
b24gaW5mbyB5b3UgbWF5IHVzZTo6CisKKyAgICBkZWYgdGVzdF9yZWN1cnNpb25fZGVwdGgoKToK
KyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvcikgYXMgZXhjaW5mbzoKKyAg
ICAgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICAgICAgZigpCisgICAgICAgICAgICBmKCkK
KyAgICAgICAgYXNzZXJ0ICdtYXhpbXVtIHJlY3Vyc2lvbicgaW4gc3RyKGV4Y2luZm8udmFsdWUp
CisKK2BgZXhjaW5mb2BgIGlzIGEgYGBFeGNlcHRpb25JbmZvYGAgaW5zdGFuY2UsIHdoaWNoIGlz
IGEgd3JhcHBlciBhcm91bmQKK3RoZSBhY3R1YWwgZXhjZXB0aW9uIHJhaXNlZC4gIFRoZSBtYWlu
IGF0dHJpYnV0ZXMgb2YgaW50ZXJlc3QgYXJlCitgYC50eXBlYGAsIGBgLnZhbHVlYGAgYW5kIGBg
LnRyYWNlYmFja2BgLgorCisuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMAorCitJbiB0aGUgY29udGV4
dCBtYW5hZ2VyIGZvcm0geW91IG1heSB1c2UgdGhlIGtleXdvcmQgYXJndW1lbnQKK2BgbWVzc2Fn
ZWBgIHRvIHNwZWNpZnkgYSBjdXN0b20gZmFpbHVyZSBtZXNzYWdlOjoKKworICAgICA+Pj4gd2l0
aCByYWlzZXMoWmVyb0RpdmlzaW9uRXJyb3IsIG1lc3NhZ2U9IkV4cGVjdGluZyBaZXJvRGl2aXNp
b25FcnJvciIpOgorICAgICAuLi4gICAgcGFzcworICAgICAuLi4gRmFpbGVkOiBFeHBlY3Rpbmcg
WmVyb0RpdmlzaW9uRXJyb3IKKworSWYgeW91IHdhbnQgdG8gd3JpdGUgdGVzdCBjb2RlIHRoYXQg
d29ya3Mgb24gUHl0aG9uIDIuNCBhcyB3ZWxsLAoreW91IG1heSBhbHNvIHVzZSB0d28gb3RoZXIg
d2F5cyB0byB0ZXN0IGZvciBhbiBleHBlY3RlZCBleGNlcHRpb246OgorCisgICAgcHl0ZXN0LnJh
aXNlcyhFeHBlY3RlZEV4Y2VwdGlvbiwgZnVuYywgKmFyZ3MsICoqa3dhcmdzKQorICAgIHB5dGVz
dC5yYWlzZXMoRXhwZWN0ZWRFeGNlcHRpb24sICJmdW5jKCphcmdzLCAqKmt3YXJncykiKQorCiti
b3RoIG9mIHdoaWNoIGV4ZWN1dGUgdGhlIHNwZWNpZmllZCBmdW5jdGlvbiB3aXRoIGFyZ3MgYW5k
IGt3YXJncyBhbmQKK2Fzc2VydHMgdGhhdCB0aGUgZ2l2ZW4gYGBFeHBlY3RlZEV4Y2VwdGlvbmBg
IGlzIHJhaXNlZC4gIFRoZSByZXBvcnRlciB3aWxsCitwcm92aWRlIHlvdSB3aXRoIGhlbHBmdWwg
b3V0cHV0IGluIGNhc2Ugb2YgZmFpbHVyZXMgc3VjaCBhcyAqbm8KK2V4Y2VwdGlvbiogb3IgKndy
b25nIGV4Y2VwdGlvbiouCisKK05vdGUgdGhhdCBpdCBpcyBhbHNvIHBvc3NpYmxlIHRvIHNwZWNp
ZnkgYSAicmFpc2VzIiBhcmd1bWVudCB0bworYGBweXRlc3QubWFyay54ZmFpbGBgLCB3aGljaCBj
aGVja3MgdGhhdCB0aGUgdGVzdCBpcyBmYWlsaW5nIGluIGEgbW9yZQorc3BlY2lmaWMgd2F5IHRo
YW4ganVzdCBoYXZpbmcgYW55IGV4Y2VwdGlvbiByYWlzZWQ6OgorCisgICAgQHB5dGVzdC5tYXJr
LnhmYWlsKHJhaXNlcz1JbmRleEVycm9yKQorICAgIGRlZiB0ZXN0X2YoKToKKyAgICAgICAgZigp
CisKK1VzaW5nIGBgcHl0ZXN0LnJhaXNlc2BgIGlzIGxpa2VseSB0byBiZSBiZXR0ZXIgZm9yIGNh
c2VzIHdoZXJlIHlvdSBhcmUgdGVzdGluZworZXhjZXB0aW9ucyB5b3VyIG93biBjb2RlIGlzIGRl
bGliZXJhdGVseSByYWlzaW5nLCB3aGVyZWFzIHVzaW5nCitgYEBweXRlc3QubWFyay54ZmFpbGBg
IHdpdGggYSBjaGVjayBmdW5jdGlvbiBpcyBwcm9iYWJseSBiZXR0ZXIgZm9yIHNvbWV0aGluZwor
bGlrZSBkb2N1bWVudGluZyB1bmZpeGVkIGJ1Z3MgKHdoZXJlIHRoZSB0ZXN0IGRlc2NyaWJlcyB3
aGF0ICJzaG91bGQiIGhhcHBlbikKK29yIGJ1Z3MgaW4gZGVwZW5kZW5jaWVzLgorCitBbHNvLCB0
aGUgY29udGV4dCBtYW5hZ2VyIGZvcm0gYWNjZXB0cyBhIGBgbWF0Y2hgYCBrZXl3b3JkIHBhcmFt
ZXRlciB0byB0ZXN0Cit0aGF0IGEgcmVndWxhciBleHByZXNzaW9uIG1hdGNoZXMgb24gdGhlIHN0
cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbiBleGNlcHRpb24KKyhsaWtlIHRoZSBgYFRlc3RDYXNl
LmFzc2VydFJhaXNlc1JlZ2V4cGBgIG1ldGhvZCBmcm9tIGBgdW5pdHRlc3RgYCk6OgorCisgICAg
aW1wb3J0IHB5dGVzdAorCisgICAgZGVmIG15ZnVuYygpOgorICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCJFeGNlcHRpb24gMTIzIHJhaXNlZCIpCisKKyAgICBkZWYgdGVzdF9tYXRjaCgpOgorICAg
ICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgbWF0Y2g9cicuKiAxMjMgLionKToK
KyAgICAgICAgICAgIG15ZnVuYygpCisKK1RoZSByZWdleHAgcGFyYW1ldGVyIG9mIHRoZSBgYG1h
dGNoYGAgbWV0aG9kIGlzIG1hdGNoZWQgd2l0aCB0aGUgYGByZS5zZWFyY2hgYAorZnVuY3Rpb24u
IFNvIGluIHRoZSBhYm92ZSBleGFtcGxlIGBgbWF0Y2g9JzEyMydgYCB3b3VsZCBoYXZlIHdvcmtl
ZCBhcword2VsbC4KKworCisuLiBfYGFzc2VydHdhcm5zYDoKKworQXNzZXJ0aW9ucyBhYm91dCBl
eHBlY3RlZCB3YXJuaW5ncworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworLi4gdmVyc2lvbmFkZGVkOjogMi44CisKK1lvdSBjYW4gY2hlY2sgdGhhdCBjb2RlIHJh
aXNlcyBhIHBhcnRpY3VsYXIgd2FybmluZyB1c2luZworOnJlZjpgcHl0ZXN0Lndhcm5zIDx3YXJu
cz5gLgorCisKKy4uIF9uZXdyZXBvcnQ6CisKK01ha2luZyB1c2Ugb2YgY29udGV4dC1zZW5zaXRp
dmUgY29tcGFyaXNvbnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKworLi4gdmVyc2lvbmFkZGVkOjogMi4wCisKK2BgcHl0ZXN0YGAgaGFzIHJpY2gg
c3VwcG9ydCBmb3IgcHJvdmlkaW5nIGNvbnRleHQtc2Vuc2l0aXZlIGluZm9ybWF0aW9uCit3aGVu
IGl0IGVuY291bnRlcnMgY29tcGFyaXNvbnMuICBGb3IgZXhhbXBsZTo6CisKKyAgICAjIGNvbnRl
bnQgb2YgdGVzdF9hc3NlcnQyLnB5CisKKyAgICBkZWYgdGVzdF9zZXRfY29tcGFyaXNvbigpOgor
ICAgICAgICBzZXQxID0gc2V0KCIxMzA4IikKKyAgICAgICAgc2V0MiA9IHNldCgiODAzNSIpCisg
ICAgICAgIGFzc2VydCBzZXQxID09IHNldDIKKworaWYgeW91IHJ1biB0aGlzIG1vZHVsZTo6CisK
KyAgICAkIHB5dGVzdCB0ZXN0X2Fzc2VydDIucHkKKyAgICA9PT09PT09PT09PT09PT09PT09PT09
PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09Cisg
ICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55
LCBwbHVnZ3ktMC54LnkKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgor
ICAgIGNvbGxlY3RlZCAxIGl0ZW0KKyAgICAKKyAgICB0ZXN0X2Fzc2VydDIucHkgRiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKyAgICAK
KyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRkFJTFVSRVMgPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19f
IHRlc3Rfc2V0X2NvbXBhcmlzb24gX19fX19fX19fX19fX19fX19fX19fX19fX19fXworICAgIAor
ICAgICAgICBkZWYgdGVzdF9zZXRfY29tcGFyaXNvbigpOgorICAgICAgICAgICAgc2V0MSA9IHNl
dCgiMTMwOCIpCisgICAgICAgICAgICBzZXQyID0gc2V0KCI4MDM1IikKKyAgICA+ICAgICAgIGFz
c2VydCBzZXQxID09IHNldDIKKyAgICBFICAgICAgIEFzc2VydGlvbkVycm9yOiBhc3NlcnQgeycw
JywgJzEnLCAnMycsICc4J30gPT0geycwJywgJzMnLCAnNScsICc4J30KKyAgICBFICAgICAgICAg
RXh0cmEgaXRlbXMgaW4gdGhlIGxlZnQgc2V0OgorICAgIEUgICAgICAgICAnMScKKyAgICBFICAg
ICAgICAgRXh0cmEgaXRlbXMgaW4gdGhlIHJpZ2h0IHNldDoKKyAgICBFICAgICAgICAgJzUnCisg
ICAgRSAgICAgICAgIFVzZSAtdiB0byBnZXQgdGhlIGZ1bGwgZGlmZgorICAgIAorICAgIHRlc3Rf
YXNzZXJ0Mi5weTo1OiBBc3NlcnRpb25FcnJvcgorICAgID09PT09PT09PT09PT09PT09PT09PT09
PT0gMSBmYWlsZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09PT0KKwor
U3BlY2lhbCBjb21wYXJpc29ucyBhcmUgZG9uZSBmb3IgYSBudW1iZXIgb2YgY2FzZXM6CisKKyog
Y29tcGFyaW5nIGxvbmcgc3RyaW5nczogYSBjb250ZXh0IGRpZmYgaXMgc2hvd24KKyogY29tcGFy
aW5nIGxvbmcgc2VxdWVuY2VzOiBmaXJzdCBmYWlsaW5nIGluZGljZXMKKyogY29tcGFyaW5nIGRp
Y3RzOiBkaWZmZXJlbnQgZW50cmllcworCitTZWUgdGhlIDpyZWY6YHJlcG9ydGluZyBkZW1vIDx0
YnJlcG9ydGRlbW8+YCBmb3IgbWFueSBtb3JlIGV4YW1wbGVzLgorCitEZWZpbmluZyB5b3VyIG93
biBhc3NlcnRpb24gY29tcGFyaXNvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorCitJdCBpcyBwb3NzaWJsZSB0byBhZGQgeW91ciBvd24gZGV0YWlsZWQg
ZXhwbGFuYXRpb25zIGJ5IGltcGxlbWVudGluZwordGhlIGBgcHl0ZXN0X2Fzc2VydHJlcHJfY29t
cGFyZWBgIGhvb2suCisKKy4uIGF1dG9mdW5jdGlvbjo6IF9weXRlc3QuaG9va3NwZWMucHl0ZXN0
X2Fzc2VydHJlcHJfY29tcGFyZQorICAgOm5vaW5kZXg6CisKK0FzIGFuIGV4YW1wbGUgY29uc2lk
ZXIgYWRkaW5nIHRoZSBmb2xsb3dpbmcgaG9vayBpbiBhIDpyZWY6YGNvbmZ0ZXN0LnB5IDxjb25m
dGVzdC5weT5gIAorZmlsZSB3aGljaCBwcm92aWRlcyBhbiBhbHRlcm5hdGl2ZSBleHBsYW5hdGlv
biBmb3IgYGBGb29gYCBvYmplY3RzOjoKKworICAgIyBjb250ZW50IG9mIGNvbmZ0ZXN0LnB5Cisg
ICBmcm9tIHRlc3RfZm9vY29tcGFyZSBpbXBvcnQgRm9vCisgICBkZWYgcHl0ZXN0X2Fzc2VydHJl
cHJfY29tcGFyZShvcCwgbGVmdCwgcmlnaHQpOgorICAgICAgIGlmIGlzaW5zdGFuY2UobGVmdCwg
Rm9vKSBhbmQgaXNpbnN0YW5jZShyaWdodCwgRm9vKSBhbmQgb3AgPT0gIj09IjoKKyAgICAgICAg
ICAgcmV0dXJuIFsnQ29tcGFyaW5nIEZvbyBpbnN0YW5jZXM6JywKKyAgICAgICAgICAgICAgICAg
ICAnICAgdmFsczogJXMgIT0gJXMnICUgKGxlZnQudmFsLCByaWdodC52YWwpXQorCitub3csIGdp
dmVuIHRoaXMgdGVzdCBtb2R1bGU6OgorCisgICAjIGNvbnRlbnQgb2YgdGVzdF9mb29jb21wYXJl
LnB5CisgICBjbGFzcyBGb28ob2JqZWN0KToKKyAgICAgICBkZWYgX19pbml0X18oc2VsZiwgdmFs
KToKKyAgICAgICAgICAgc2VsZi52YWwgPSB2YWwKKworICAgICAgIGRlZiBfX2VxX18oc2VsZiwg
b3RoZXIpOgorICAgICAgICAgICByZXR1cm4gc2VsZi52YWwgPT0gb3RoZXIudmFsCisKKyAgIGRl
ZiB0ZXN0X2NvbXBhcmUoKToKKyAgICAgICBmMSA9IEZvbygxKQorICAgICAgIGYyID0gRm9vKDIp
CisgICAgICAgYXNzZXJ0IGYxID09IGYyCisKK3lvdSBjYW4gcnVuIHRoZSB0ZXN0IG1vZHVsZSBh
bmQgZ2V0IHRoZSBjdXN0b20gb3V0cHV0IGRlZmluZWQgaW4KK3RoZSBjb25mdGVzdCBmaWxlOjoK
KworICAgJCBweXRlc3QgLXEgdGVzdF9mb29jb21wYXJlLnB5CisgICBGICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAw
JV0KKyAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgIF9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18gdGVzdF9jb21wYXJlIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KKyAgIAor
ICAgICAgIGRlZiB0ZXN0X2NvbXBhcmUoKToKKyAgICAgICAgICAgZjEgPSBGb28oMSkKKyAgICAg
ICAgICAgZjIgPSBGb28oMikKKyAgID4gICAgICAgYXNzZXJ0IGYxID09IGYyCisgICBFICAgICAg
IGFzc2VydCBDb21wYXJpbmcgRm9vIGluc3RhbmNlczoKKyAgIEUgICAgICAgICAgICB2YWxzOiAx
ICE9IDIKKyAgIAorICAgdGVzdF9mb29jb21wYXJlLnB5OjExOiBBc3NlcnRpb25FcnJvcgorICAg
MSBmYWlsZWQgaW4gMC4xMiBzZWNvbmRzCisKKy4uIF9hc3NlcnQtZGV0YWlsczoKKy4uIF9gYXNz
ZXJ0IGludHJvc3BlY3Rpb25gOgorCitBZHZhbmNlZCBhc3NlcnRpb24gaW50cm9zcGVjdGlvbgor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiB2ZXJzaW9uYWRkZWQ6OiAy
LjEKKworCitSZXBvcnRpbmcgZGV0YWlscyBhYm91dCBhIGZhaWxpbmcgYXNzZXJ0aW9uIGlzIGFj
aGlldmVkIGJ5IHJld3JpdGluZyBhc3NlcnQKK3N0YXRlbWVudHMgYmVmb3JlIHRoZXkgYXJlIHJ1
bi4gIFJld3JpdHRlbiBhc3NlcnQgc3RhdGVtZW50cyBwdXQgaW50cm9zcGVjdGlvbgoraW5mb3Jt
YXRpb24gaW50byB0aGUgYXNzZXJ0aW9uIGZhaWx1cmUgbWVzc2FnZS4gIGBgcHl0ZXN0YGAgb25s
eSByZXdyaXRlcyB0ZXN0Cittb2R1bGVzIGRpcmVjdGx5IGRpc2NvdmVyZWQgYnkgaXRzIHRlc3Qg
Y29sbGVjdGlvbiBwcm9jZXNzLCBzbyBhc3NlcnRzIGluCitzdXBwb3J0aW5nIG1vZHVsZXMgd2hp
Y2ggYXJlIG5vdCB0aGVtc2VsdmVzIHRlc3QgbW9kdWxlcyB3aWxsIG5vdCBiZSByZXdyaXR0ZW4u
CisKKy4uIG5vdGU6OgorCisgICBgYHB5dGVzdGBgIHJld3JpdGVzIHRlc3QgbW9kdWxlcyBvbiBp
bXBvcnQgYnkgdXNpbmcgYW4gaW1wb3J0CisgICBob29rIHRvIHdyaXRlIG5ldyBgYHB5Y2BgIGZp
bGVzLiBNb3N0IG9mIHRoZSB0aW1lIHRoaXMgd29ya3MgdHJhbnNwYXJlbnRseS4KKyAgIEhvd2V2
ZXIsIGlmIHlvdSBhcmUgbWVzc2luZyB3aXRoIGltcG9ydCB5b3Vyc2VsZiwgdGhlIGltcG9ydCBo
b29rIG1heQorICAgaW50ZXJmZXJlLgorCisgICBJZiB0aGlzIGlzIHRoZSBjYXNlIHlvdSBoYXZl
IHR3byBvcHRpb25zOgorCisgICAqIERpc2FibGUgcmV3cml0aW5nIGZvciBhIHNwZWNpZmljIG1v
ZHVsZSBieSBhZGRpbmcgdGhlIHN0cmluZworICAgICBgYFBZVEVTVF9ET05UX1JFV1JJVEVgYCB0
byBpdHMgZG9jc3RyaW5nLgorCisgICAqIERpc2FibGUgcmV3cml0aW5nIGZvciBhbGwgbW9kdWxl
cyBieSB1c2luZyBgYC0tYXNzZXJ0PXBsYWluYGAuCisKKyAgIEFkZGl0aW9uYWxseSwgcmV3cml0
aW5nIHdpbGwgZmFpbCBzaWxlbnRseSBpZiBpdCBjYW5ub3Qgd3JpdGUgbmV3IGBgLnB5Y2BgIGZp
bGVzLAorICAgaS5lLiBpbiBhIHJlYWQtb25seSBmaWxlc3lzdGVtIG9yIGEgemlwZmlsZS4KKwor
CitGb3IgZnVydGhlciBpbmZvcm1hdGlvbiwgQmVuamFtaW4gUGV0ZXJzb24gd3JvdGUgdXAgYEJl
aGluZCB0aGUgc2NlbmVzIG9mIHB5dGVzdCdzIG5ldyBhc3NlcnRpb24gcmV3cml0aW5nIDxodHRw
Oi8vcHliaXRlcy5ibG9nc3BvdC5jb20vMjAxMS8wNy9iZWhpbmQtc2NlbmVzLW9mLXB5dGVzdHMt
bmV3LWFzc2VydGlvbi5odG1sPmBfLgorCisuLiB2ZXJzaW9uYWRkZWQ6OiAyLjEKKyAgIEFkZCBh
c3NlcnQgcmV3cml0aW5nIGFzIGFuIGFsdGVybmF0ZSBpbnRyb3NwZWN0aW9uIHRlY2huaXF1ZS4K
KworLi4gdmVyc2lvbmNoYW5nZWQ6OiAyLjEKKyAgIEludHJvZHVjZSB0aGUgYGAtLWFzc2VydGBg
IG9wdGlvbi4gRGVwcmVjYXRlIGBgLS1uby1hc3NlcnRgYCBhbmQKKyAgIGBgLS1ub21hZ2ljYGAu
CisKKy4uIHZlcnNpb25jaGFuZ2VkOjogMy4wCisgICBSZW1vdmVzIHRoZSBgYC0tbm8tYXNzZXJ0
YGAgYW5kIGBgLS1ub21hZ2ljYGAgb3B0aW9ucy4KKyAgIFJlbW92ZXMgdGhlIGBgLS1hc3NlcnQ9
cmVpbnRlcnBgYCBvcHRpb24uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYmFja3dh
cmRzLWNvbXBhdGliaWxpdHkucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2JhY2t3YXJkcy1jb21w
YXRpYmlsaXR5LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NGYyYzQzZWRhYTFiMDk0NDA0MzU1MDE1ZWFiN2U1
MDBjOWFiOWVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2JhY2t3YXJk
cy1jb21wYXRpYmlsaXR5LnJzdApAQCAtMCwwICsxLDEwNSBAQAorLi4gX2JhY2t3YXJkcy1jb21w
YXRpYmlsaXR5OgorCitCYWNrd2FyZHMgQ29tcGF0aWJpbGl0eSBQb2xpY3kKKz09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQorCitLZWVwaW5nIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGhh
cyBhIHZlcnkgaGlnaCBwcmlvcml0eSBpbiB0aGUgcHl0ZXN0IHByb2plY3QuIEFsdGhvdWdoIHdl
IGhhdmUgZGVwcmVjYXRlZCBmdW5jdGlvbmFsaXR5IG92ZXIgdGhlIHllYXJzLCBtb3N0IG9mIGl0
IGlzIHN0aWxsIHN1cHBvcnRlZC4gQWxsIGRlcHJlY2F0aW9ucyBpbiBweXRlc3Qgd2VyZSBkb25l
IGJlY2F1c2Ugc2ltcGxlciBvciBtb3JlIGVmZmljaWVudCB3YXlzIG9mIGFjY29tcGxpc2hpbmcg
dGhlIHNhbWUgdGFza3MgaGF2ZSBlbWVyZ2VkLCBtYWtpbmcgdGhlIG9sZCB3YXkgb2YgZG9pbmcg
dGhpbmdzIHVubmVjZXNzYXJ5LgorCitXaXRoIHRoZSBweXRlc3QgMy4wIHJlbGVhc2Ugd2UgaW50
cm9kdWNlZCBhIGNsZWFyIGNvbW11bmljYXRpb24gc2NoZW1lIGZvciB3aGVuIHdlIHdpbGwgYWN0
dWFsbHkgcmVtb3ZlIHRoZSBvbGQgYnVzdGVkIGpvaW50IGFuZCBwb2xpdGVseSBhc2sgeW91IHRv
IHVzZSB0aGUgbmV3IGhvdG5lc3MgaW5zdGVhZCwgd2hpbGUgZ2l2aW5nIHlvdSBlbm91Z2ggdGlt
ZSB0byBhZGp1c3QgeW91ciB0ZXN0cyBvciByYWlzZSBjb25jZXJucyBpZiB0aGVyZSBhcmUgdmFs
aWQgcmVhc29ucyB0byBrZWVwIGRlcHJlY2F0ZWQgZnVuY3Rpb25hbGl0eSBhcm91bmQuCisKK1Rv
IGNvbW11bmljYXRlIGNoYW5nZXMgd2UgYXJlIGFscmVhZHkgaXNzdWluZyBkZXByZWNhdGlvbiB3
YXJuaW5ncywgYnV0IHRoZXkgYXJlIG5vdCBkaXNwbGF5ZWQgYnkgZGVmYXVsdC4gSW4gcHl0ZXN0
IDMuMCB3ZSBjaGFuZ2VkIHRoZSBkZWZhdWx0IHNldHRpbmcgc28gdGhhdCBweXRlc3QgZGVwcmVj
YXRpb24gd2FybmluZ3MgYXJlIGRpc3BsYXllZCBpZiBub3QgZXhwbGljaXRseSBzaWxlbmNlZCAo
d2l0aCBgYC0tZGlzYWJsZS1weXRlc3Qtd2FybmluZ3NgYCkuCisKK1dlIHdpbGwgb25seSByZW1v
dmUgZGVwcmVjYXRlZCBmdW5jdGlvbmFsaXR5IGluIG1ham9yIHJlbGVhc2VzIChlLmcuIGlmIHdl
IGRlcHJlY2F0ZSBzb21ldGhpbmcgaW4gMy4wIHdlIHdpbGwgcmVtb3ZlIGl0IGluIDQuMCksIGFu
ZCBrZWVwIGl0IGFyb3VuZCBmb3IgYXQgbGVhc3QgdHdvIG1pbm9yIHJlbGVhc2VzIChlLmcuIGlm
IHdlIGRlcHJlY2F0ZSBzb21ldGhpbmcgaW4gMy45IGFuZCA0LjAgaXMgdGhlIG5leHQgcmVsZWFz
ZSwgd2Ugd2lsbCBub3QgcmVtb3ZlIGl0IGluIDQuMCBidXQgaW4gNS4wKS4KKworCitEZXByZWNh
dGlvbiBSb2FkbWFwCistLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoaXMgcGFnZSBsaXN0cyBkZXBy
ZWNhdGVkIGZlYXR1cmVzIGFuZCB3aGVuIHdlIHBsYW4gdG8gcmVtb3ZlIHRoZW0uIEl0IGlzIGlt
cG9ydGFudCB0byBsaXN0IHRoZSBmZWF0dXJlLCB0aGUgdmVyc2lvbiB3aGVyZSBpdCBnb3QgZGVw
cmVjYXRlZCBhbmQgdGhlIHZlcnNpb24gd2UgcGxhbiB0byByZW1vdmUgaXQuCisKK0ZvbGxvd2lu
ZyBvdXIgZGVwcmVjYXRpb24gcG9saWN5LCB3ZSBzaG91bGQgYWltIHRvIGtlZXAgZmVhdHVyZXMg
Zm9yICphdCBsZWFzdCogdHdvIG1pbm9yIHZlcnNpb25zIGFmdGVyIGl0IHdhcyBjb25zaWRlcmVk
IGRlcHJlY2F0ZWQuCisKKworRnV0dXJlIFJlbGVhc2VzCit+fn5+fn5+fn5+fn5+fn4KKworMy40
CiteXl4KKworKipPbGQgc3R5bGUgY2xhc3NlcyoqCisKK0lzc3VlOiBgIzIxNDcgPGh0dHBzOi8v
Z2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjE0Nz5gXy4KKworRGVwcmVjYXRl
ZCBpbiBgYDMuMmBgLgorCis0LjAKK15eXgorCisqKllpZWxkIHRlc3RzKioKKworRGVwcmVjYXRl
ZCBpbiBgYDMuMGBgLgorCisqKnB5dGVzdC1uYW1lc3BhY2UgaG9vayoqCisKK2RlcHJlY2F0ZWQg
aW4gYGAzLjJgYC4KKworKipNYXJrcyBpbiBwYXJhbWV0ZXIgc2V0cyoqCisKK0RlcHJlY2F0ZWQg
aW4gYGAzLjJgYC4KKworKiotLXJlc3VsdC1sb2cqKgorCitEZXByZWNhdGVkIGluIGBgMy4wYGAu
CisKK1NlZSBgIzgzMCA8aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vl
cy84MzA+YF8gZm9yIG1vcmUgaW5mb3JtYXRpb24uIFN1Z2dlc3RlZCBhbHRlcm5hdGl2ZTogYHB5
dGVzdC10YXAgPGh0dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcHl0ZXN0LXRhcD5gXy4KKwor
KiptZXRhZnVuYy5hZGRjYWxsKioKKworSXNzdWU6IGAjMjg3NiA8aHR0cHM6Ly9naXRodWIuY29t
L3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yODc2PmBfLgorCitEZXByZWNhdGVkIGluIGBgMy4z
YGAuCisKKyoqcHl0ZXN0X3BsdWdpbnMgaW4gbm9uLXRvcGxldmVsIGNvbmZ0ZXN0cyoqCisKK1Ro
ZXJlIGlzIGEgZGVlcCBjb25jZXB0dWFsIGNvbmZ1c2lvbiBhcyBgYGNvbmZ0ZXN0LnB5YGAgZmls
ZXMgdGhlbXNlbHZlcyBhcmUgYWN0aXZhdGVkL2RlYWN0aXZhdGVkIGJhc2VkIG9uIHBhdGgsIGJ1
dCB0aGUgcGx1Z2lucyB0aGV5IGRlcGVuZCBvbiBhcmVuJ3QuCisKK0lzc3VlOiBgIzI2MzkgPGh0
dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjYzOT5gXy4KKworTm90
IHlldCBvZmZpY2lhbGx5IGRlcHJlY2F0ZWQuCisKKyoqcGFzc2luZyBhIHNpbmdsZSBzdHJpbmcg
dG8gcHl0ZXN0Lm1haW4oKSoqCisKK1Bhc3MgYSBsaXN0IG9mIHN0cmluZ3MgdG8gYGBweXRlc3Qu
bWFpbigpYGAgaW5zdGVhZC4KKworRGVwcmVjYXRlZCBpbiBgYDMuMWBgLgorCisqKltweXRlc3Rd
IHNlY3Rpb24gaW4gc2V0dXAuY2ZnKioKKworVXNlIGBgW3Rvb2w6cHl0ZXN0XWBgIGluc3RlYWQg
Zm9yIGNvbXBhdGliaWxpdHkgd2l0aCBvdGhlciB0b29scy4KKworRGVwcmVjYXRlZCBpbiBgYDMu
MGBgLgorCitQYXN0IFJlbGVhc2VzCit+fn5+fn5+fn5+fn5+CisKKzMuMAorXl5eCisKKyogVGhl
IGZvbGxvd2luZyBkZXByZWNhdGVkIGNvbW1hbmRsaW5lIG9wdGlvbnMgd2VyZSByZW1vdmVkOgor
CisgICogYGAtLWdlbnNjcmlwdGBgOiBubyBsb25nZXIgc3VwcG9ydGVkOworICAqIGBgLS1uby1h
c3NlcnRgYDogdXNlIGBgLS1hc3NlcnQ9cGxhaW5gYCBpbnN0ZWFkOworICAqIGBgLS1ub21hZ2lj
YGA6IHVzZSBgYC0tYXNzZXJ0PXBsYWluYGAgaW5zdGVhZDsKKyAgKiBgYC0tcmVwb3J0YGA6IHVz
ZSBgYC1yYGAgaW5zdGVhZDsKKworKiBSZW1vdmVkIGFsbCBgYHB5LnRlc3QtWCpgYCBlbnRyeSBw
b2ludHMuIFRoZSB2ZXJzaW9uZWQsIHN1ZmZpeGVkIGVudHJ5IHBvaW50cworICB3ZXJlIG5ldmVy
IGRvY3VtZW50ZWQgYW5kIGEgbGVmdG92ZXIgZnJvbSBhIHByZS12aXJ0dWFsZW52IGVyYS4gVGhl
c2UgZW50cnkKKyAgcG9pbnRzIGFsc28gY3JlYXRlZCBicm9rZW4gZW50cnkgcG9pbnRzIGluIHdo
ZWVscywgc28gcmVtb3ZpbmcgdGhlbSBhbHNvCisgIHJlbW92ZXMgYSBzb3VyY2Ugb2YgY29uZnVz
aW9uIGZvciB1c2Vycy4KKworCisKKzMuMworXl5eCisKKyogRHJvcHBlZCBzdXBwb3J0IGZvciBF
T0wgUHl0aG9uIDIuNiBhbmQgMy4zLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9iYXNoLWNvbXBsZXRpb24ucnN0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2Jhc2gtY29tcGxldGlvbi5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODFmZTYyMTgzZmIwOTNl
NWNmOGFhZmVhMTE2Y2ZlZThhZTVkMWUyMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9iYXNoLWNvbXBsZXRpb24ucnN0CkBAIC0wLDAgKzEsMjggQEAKKworLi4gX2Jhc2hf
Y29tcGxldGlvbjoKKworU2V0dGluZyB1cCBiYXNoIGNvbXBsZXRpb24KKz09PT09PT09PT09PT09
PT09PT09PT09PT09CisKK1doZW4gdXNpbmcgYmFzaCBhcyB5b3VyIHNoZWxsLCBgYHB5dGVzdGBg
IGNhbiB1c2UgYXJnY29tcGxldGUKKyhodHRwczovL2FyZ2NvbXBsZXRlLnJlYWR0aGVkb2NzLmlv
LykgZm9yIGF1dG8tY29tcGxldGlvbi4KK0ZvciB0aGlzIGBgYXJnY29tcGxldGVgYCBuZWVkcyB0
byBiZSBpbnN0YWxsZWQgKiphbmQqKiBlbmFibGVkLgorCitJbnN0YWxsIGFyZ2NvbXBsZXRlIHVz
aW5nOjoKKworICAgICAgICBzdWRvIHBpcCBpbnN0YWxsICdhcmdjb21wbGV0ZT49MC41LjcnCisK
K0ZvciBnbG9iYWwgYWN0aXZhdGlvbiBvZiBhbGwgYXJnY29tcGxldGUgZW5hYmxlZCBweXRob24g
YXBwbGljYXRpb25zIHJ1bjo6CisKKwlzdWRvIGFjdGl2YXRlLWdsb2JhbC1weXRob24tYXJnY29t
cGxldGUKKworRm9yIHBlcm1hbmVudCAoYnV0IG5vdCBnbG9iYWwpIGBgcHl0ZXN0YGAgYWN0aXZh
dGlvbiwgdXNlOjoKKworICAgICAgICByZWdpc3Rlci1weXRob24tYXJnY29tcGxldGUgcHl0ZXN0
ID4+IH4vLmJhc2hyYworCitGb3Igb25lLXRpbWUgYWN0aXZhdGlvbiBvZiBhcmdjb21wbGV0ZSBm
b3IgYGBweXRlc3RgYCBvbmx5LCB1c2U6OgorCisgICAgICAgIGV2YWwgIiQocmVnaXN0ZXItcHl0
aG9uLWFyZ2NvbXBsZXRlIHB5dGVzdCkiCisKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vYnVpbHRpbi5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYnVpbHRpbi5yc3QKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDExZWI1NjA2ZTA5ZTUxZDM5ODg5MzIyODQ0ZmVlMzVhNjZjZjUyYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9idWlsdGluLnJzdApAQCAtMCwwICsxLDE2MSBA
QAorCisuLiBfYHB5dGVzdCBoZWxwZXJzYDoKKworUHl0ZXN0IEFQSSBhbmQgYnVpbHRpbiBmaXh0
dXJlcworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisK
K1RoaXMgaXMgYSBsaXN0IG9mIGBgcHl0ZXN0LipgYCBBUEkgZnVuY3Rpb25zIGFuZCBmaXh0dXJl
cy4KKworRm9yIGluZm9ybWF0aW9uIG9uIHBsdWdpbiBob29rcyBhbmQgb2JqZWN0cywgc2VlIDpy
ZWY6YHBsdWdpbnNgLgorCitGb3IgaW5mb3JtYXRpb24gb24gdGhlIGBgcHl0ZXN0Lm1hcmtgYCBt
ZWNoYW5pc20sIHNlZSA6cmVmOmBtYXJrYC4KKworRm9yIHRoZSBiZWxvdyBvYmplY3RzLCB5b3Ug
Y2FuIGFsc28gaW50ZXJhY3RpdmVseSBhc2sgZm9yIGhlbHAsIGUuZy4gYnkKK3R5cGluZyBvbiB0
aGUgUHl0aG9uIGludGVyYWN0aXZlIHByb21wdCBzb21ldGhpbmcgbGlrZTo6CisKKyAgICBpbXBv
cnQgcHl0ZXN0CisgICAgaGVscChweXRlc3QpCisKKy4uIGN1cnJlbnRtb2R1bGU6OiBweXRlc3QK
KworSW52b2tpbmcgcHl0ZXN0IGludGVyYWN0aXZlbHkKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiBhdXRvZnVuY3Rpb246OiBtYWluCisK
K01vcmUgZXhhbXBsZXMgYXQgOnJlZjpgcHl0ZXN0Lm1haW4tdXNhZ2VgCisKKworSGVscGVycyBm
b3IgYXNzZXJ0aW9ucyBhYm91dCBFeGNlcHRpb25zL1dhcm5pbmdzCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiBhdXRvZnVuY3Rp
b246OiByYWlzZXMKKworRXhhbXBsZXMgYXQgOnJlZjpgYXNzZXJ0cmFpc2VzYC4KKworLi4gYXV0
b2Z1bmN0aW9uOjogZGVwcmVjYXRlZF9jYWxsCisKK0NvbXBhcmluZyBmbG9hdGluZyBwb2ludCBu
dW1iZXJzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiBhdXRvZnVuY3Rp
b246OiBhcHByb3gKKworUmFpc2luZyBhIHNwZWNpZmljIHRlc3Qgb3V0Y29tZQorLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworWW91IGNhbiB1c2UgdGhlIGZvbGxvd2lu
ZyBmdW5jdGlvbnMgaW4geW91ciB0ZXN0LCBmaXh0dXJlIG9yIHNldHVwCitmdW5jdGlvbnMgdG8g
Zm9yY2UgYSBjZXJ0YWluIHRlc3Qgb3V0Y29tZS4gIE5vdGUgdGhhdCBtb3N0IG9mdGVuCit5b3Ug
Y2FuIHJhdGhlciB1c2UgZGVjbGFyYXRpdmUgbWFya3MsIHNlZSA6cmVmOmBza2lwcGluZ2AuCisK
Ky4uIGF1dG9mdW5jdGlvbjo6IF9weXRlc3Qub3V0Y29tZXMuZmFpbAorLi4gYXV0b2Z1bmN0aW9u
OjogX3B5dGVzdC5vdXRjb21lcy5za2lwCisuLiBhdXRvZnVuY3Rpb246OiBfcHl0ZXN0Lm91dGNv
bWVzLmltcG9ydG9yc2tpcAorLi4gYXV0b2Z1bmN0aW9uOjogX3B5dGVzdC5vdXRjb21lcy54ZmFp
bAorLi4gYXV0b2Z1bmN0aW9uOjogX3B5dGVzdC5vdXRjb21lcy5leGl0CisKK0ZpeHR1cmVzIGFu
ZCByZXF1ZXN0cworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKworVG8gbWFyayBhIGZpeHR1cmUgZnVuY3Rpb246CisKKy4uIGF1dG9mdW5jdGlv
bjo6IF9weXRlc3QuZml4dHVyZXMuZml4dHVyZQorCitUdXRvcmlhbCBhdCA6cmVmOmBmaXh0dXJl
c2AuCisKK1RoZSBgYHJlcXVlc3RgYCBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCBmcm9tIGZpeHR1
cmUgZnVuY3Rpb25zLgorCisuLiBhdXRvY2xhc3M6OiBfcHl0ZXN0LmZpeHR1cmVzLkZpeHR1cmVS
ZXF1ZXN0KCkKKyAgICA6bWVtYmVyczoKKworCisuLiBfYnVpbHRpbmZpeHR1cmVzOgorLi4gX2J1
aWx0aW5mdW5jYXJnczoKKworQnVpbHRpbiBmaXh0dXJlcy9mdW5jdGlvbiBhcmd1bWVudHMKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1lvdSBjYW4gYXNrIGZv
ciBhdmFpbGFibGUgYnVpbHRpbiBvciBwcm9qZWN0LWN1c3RvbQorOnJlZjpgZml4dHVyZXMgPGZp
eHR1cmVzPmAgYnkgdHlwaW5nOjoKKworICAgICQgcHl0ZXN0IC1xIC0tZml4dHVyZXMKKyAgICBj
YWNoZQorICAgICAgICBSZXR1cm4gYSBjYWNoZSBvYmplY3QgdGhhdCBjYW4gcGVyc2lzdCBzdGF0
ZSBiZXR3ZWVuIHRlc3Rpbmcgc2Vzc2lvbnMuCisgICAgICAgIAorICAgICAgICBjYWNoZS5nZXQo
a2V5LCBkZWZhdWx0KQorICAgICAgICBjYWNoZS5zZXQoa2V5LCB2YWx1ZSkKKyAgICAgICAgCisg
ICAgICAgIEtleXMgbXVzdCBiZSBhIGBgL2BgIHNlcGFyYXRlZCB2YWx1ZSwgd2hlcmUgdGhlIGZp
cnN0IHBhcnQgaXMgdXN1YWxseSB0aGUKKyAgICAgICAgbmFtZSBvZiB5b3VyIHBsdWdpbiBvciBh
cHBsaWNhdGlvbiB0byBhdm9pZCBjbGFzaGVzIHdpdGggb3RoZXIgY2FjaGUgdXNlcnMuCisgICAg
ICAgIAorICAgICAgICBWYWx1ZXMgY2FuIGJlIGFueSBvYmplY3QgaGFuZGxlZCBieSB0aGUganNv
biBzdGRsaWIgbW9kdWxlLgorICAgIGNhcHN5cworICAgICAgICBFbmFibGUgY2FwdHVyaW5nIG9m
IHdyaXRlcyB0byBzeXMuc3Rkb3V0L3N5cy5zdGRlcnIgYW5kIG1ha2UKKyAgICAgICAgY2FwdHVy
ZWQgb3V0cHV0IGF2YWlsYWJsZSB2aWEgYGBjYXBzeXMucmVhZG91dGVycigpYGAgbWV0aG9kIGNh
bGxzCisgICAgICAgIHdoaWNoIHJldHVybiBhIGBgKG91dCwgZXJyKWBgIHR1cGxlLiAgYGBvdXRg
YCBhbmQgYGBlcnJgYCB3aWxsIGJlIGBgdGV4dGBgCisgICAgICAgIG9iamVjdHMuCisgICAgY2Fw
c3lzYmluYXJ5CisgICAgICAgIEVuYWJsZSBjYXB0dXJpbmcgb2Ygd3JpdGVzIHRvIHN5cy5zdGRv
dXQvc3lzLnN0ZGVyciBhbmQgbWFrZQorICAgICAgICBjYXB0dXJlZCBvdXRwdXQgYXZhaWxhYmxl
IHZpYSBgYGNhcHN5cy5yZWFkb3V0ZXJyKClgYCBtZXRob2QgY2FsbHMKKyAgICAgICAgd2hpY2gg
cmV0dXJuIGEgYGAob3V0LCBlcnIpYGAgdHVwbGUuICBgYG91dGBgIGFuZCBgYGVycmBgIHdpbGwg
YmUgYGBieXRlc2BgCisgICAgICAgIG9iamVjdHMuCisgICAgY2FwZmQKKyAgICAgICAgRW5hYmxl
IGNhcHR1cmluZyBvZiB3cml0ZXMgdG8gZmlsZSBkZXNjcmlwdG9ycyAxIGFuZCAyIGFuZCBtYWtl
CisgICAgICAgIGNhcHR1cmVkIG91dHB1dCBhdmFpbGFibGUgdmlhIGBgY2FwZmQucmVhZG91dGVy
cigpYGAgbWV0aG9kIGNhbGxzCisgICAgICAgIHdoaWNoIHJldHVybiBhIGBgKG91dCwgZXJyKWBg
IHR1cGxlLiAgYGBvdXRgYCBhbmQgYGBlcnJgYCB3aWxsIGJlIGBgdGV4dGBgCisgICAgICAgIG9i
amVjdHMuCisgICAgY2FwZmRiaW5hcnkKKyAgICAgICAgRW5hYmxlIGNhcHR1cmluZyBvZiB3cml0
ZSB0byBmaWxlIGRlc2NyaXB0b3JzIDEgYW5kIDIgYW5kIG1ha2UKKyAgICAgICAgY2FwdHVyZWQg
b3V0cHV0IGF2YWlsYWJsZSB2aWEgYGBjYXBmZGJpbmFyeS5yZWFkb3V0ZXJyYGAgbWV0aG9kIGNh
bGxzCisgICAgICAgIHdoaWNoIHJldHVybiBhIGBgKG91dCwgZXJyKWBgIHR1cGxlLiAgYGBvdXRg
YCBhbmQgYGBlcnJgYCB3aWxsIGJlCisgICAgICAgIGBgYnl0ZXNgYCBvYmplY3RzLgorICAgIGRv
Y3Rlc3RfbmFtZXNwYWNlCisgICAgICAgIEluamVjdCBuYW1lcyBpbnRvIHRoZSBkb2N0ZXN0IG5h
bWVzcGFjZS4KKyAgICBweXRlc3Rjb25maWcKKyAgICAgICAgdGhlIHB5dGVzdCBjb25maWcgb2Jq
ZWN0IHdpdGggYWNjZXNzIHRvIGNvbW1hbmQgbGluZSBvcHRzLgorICAgIHJlY29yZF94bWxfcHJv
cGVydHkKKyAgICAgICAgQWRkIGV4dHJhIHhtbCBwcm9wZXJ0aWVzIHRvIHRoZSB0YWcgZm9yIHRo
ZSBjYWxsaW5nIHRlc3QuCisgICAgICAgIFRoZSBmaXh0dXJlIGlzIGNhbGxhYmxlIHdpdGggYGAo
bmFtZSwgdmFsdWUpYGAsIHdpdGggdmFsdWUgYmVpbmcgYXV0b21hdGljYWxseQorICAgICAgICB4
bWwtZW5jb2RlZC4KKyAgICBjYXBsb2cKKyAgICAgICAgQWNjZXNzIGFuZCBjb250cm9sIGxvZyBj
YXB0dXJpbmcuCisgICAgICAgIAorICAgICAgICBDYXB0dXJlZCBsb2dzIGFyZSBhdmFpbGFibGUg
dGhyb3VnaCB0aGUgZm9sbG93aW5nIG1ldGhvZHM6OgorICAgICAgICAKKyAgICAgICAgKiBjYXBs
b2cudGV4dCgpICAgICAgICAgIC0+IHN0cmluZyBjb250YWluaW5nIGZvcm1hdHRlZCBsb2cgb3V0
cHV0CisgICAgICAgICogY2FwbG9nLnJlY29yZHMoKSAgICAgICAtPiBsaXN0IG9mIGxvZ2dpbmcu
TG9nUmVjb3JkIGluc3RhbmNlcworICAgICAgICAqIGNhcGxvZy5yZWNvcmRfdHVwbGVzKCkgLT4g
bGlzdCBvZiAobG9nZ2VyX25hbWUsIGxldmVsLCBtZXNzYWdlKSB0dXBsZXMKKyAgICBtb25rZXlw
YXRjaAorICAgICAgICBUaGUgcmV0dXJuZWQgYGBtb25rZXlwYXRjaGBgIGZpeHR1cmUgcHJvdmlk
ZXMgdGhlc2UKKyAgICAgICAgaGVscGVyIG1ldGhvZHMgdG8gbW9kaWZ5IG9iamVjdHMsIGRpY3Rp
b25hcmllcyBvciBvcy5lbnZpcm9uOjoKKyAgICAgICAgCisgICAgICAgICAgICBtb25rZXlwYXRj
aC5zZXRhdHRyKG9iaiwgbmFtZSwgdmFsdWUsIHJhaXNpbmc9VHJ1ZSkKKyAgICAgICAgICAgIG1v
bmtleXBhdGNoLmRlbGF0dHIob2JqLCBuYW1lLCByYWlzaW5nPVRydWUpCisgICAgICAgICAgICBt
b25rZXlwYXRjaC5zZXRpdGVtKG1hcHBpbmcsIG5hbWUsIHZhbHVlKQorICAgICAgICAgICAgbW9u
a2V5cGF0Y2guZGVsaXRlbShvYmosIG5hbWUsIHJhaXNpbmc9VHJ1ZSkKKyAgICAgICAgICAgIG1v
bmtleXBhdGNoLnNldGVudihuYW1lLCB2YWx1ZSwgcHJlcGVuZD1GYWxzZSkKKyAgICAgICAgICAg
IG1vbmtleXBhdGNoLmRlbGVudihuYW1lLCB2YWx1ZSwgcmFpc2luZz1UcnVlKQorICAgICAgICAg
ICAgbW9ua2V5cGF0Y2guc3lzcGF0aF9wcmVwZW5kKHBhdGgpCisgICAgICAgICAgICBtb25rZXlw
YXRjaC5jaGRpcihwYXRoKQorICAgICAgICAKKyAgICAgICAgQWxsIG1vZGlmaWNhdGlvbnMgd2ls
bCBiZSB1bmRvbmUgYWZ0ZXIgdGhlIHJlcXVlc3RpbmcKKyAgICAgICAgdGVzdCBmdW5jdGlvbiBv
ciBmaXh0dXJlIGhhcyBmaW5pc2hlZC4gVGhlIGBgcmFpc2luZ2BgCisgICAgICAgIHBhcmFtZXRl
ciBkZXRlcm1pbmVzIGlmIGEgS2V5RXJyb3Igb3IgQXR0cmlidXRlRXJyb3IKKyAgICAgICAgd2ls
bCBiZSByYWlzZWQgaWYgdGhlIHNldC9kZWxldGlvbiBvcGVyYXRpb24gaGFzIG5vIHRhcmdldC4K
KyAgICByZWN3YXJuCisgICAgICAgIFJldHVybiBhIFdhcm5pbmdzUmVjb3JkZXIgaW5zdGFuY2Ug
dGhhdCBwcm92aWRlcyB0aGVzZSBtZXRob2RzOgorICAgICAgICAKKyAgICAgICAgKiBgYHBvcChj
YXRlZ29yeT1Ob25lKWBgOiByZXR1cm4gbGFzdCB3YXJuaW5nIG1hdGNoaW5nIHRoZSBjYXRlZ29y
eS4KKyAgICAgICAgKiBgYGNsZWFyKClgYDogY2xlYXIgbGlzdCBvZiB3YXJuaW5ncworICAgICAg
ICAKKyAgICAgICAgU2VlIGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvbGlicmFyeS93YXJuaW5ncy5o
dG1sIGZvciBpbmZvcm1hdGlvbgorICAgICAgICBvbiB3YXJuaW5nIGNhdGVnb3JpZXMuCisgICAg
dG1wZGlyX2ZhY3RvcnkKKyAgICAgICAgUmV0dXJuIGEgVGVtcGRpckZhY3RvcnkgaW5zdGFuY2Ug
Zm9yIHRoZSB0ZXN0IHNlc3Npb24uCisgICAgdG1wZGlyCisgICAgICAgIFJldHVybiBhIHRlbXBv
cmFyeSBkaXJlY3RvcnkgcGF0aCBvYmplY3QKKyAgICAgICAgd2hpY2ggaXMgdW5pcXVlIHRvIGVh
Y2ggdGVzdCBmdW5jdGlvbiBpbnZvY2F0aW9uLAorICAgICAgICBjcmVhdGVkIGFzIGEgc3ViIGRp
cmVjdG9yeSBvZiB0aGUgYmFzZSB0ZW1wb3JhcnkKKyAgICAgICAgZGlyZWN0b3J5LiAgVGhlIHJl
dHVybmVkIG9iamVjdCBpcyBhIGBweS5wYXRoLmxvY2FsYF8KKyAgICAgICAgcGF0aCBvYmplY3Qu
CisgICAgCisgICAgbm8gdGVzdHMgcmFuIGluIDAuMTIgc2Vjb25kcwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2NhY2hlLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jYWNoZS5yc3QK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzg4NzIxYjExYjA4OWUxMmI4ODEyNDI2OWEyYWMxOTEwMDNmYzI2MAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jYWNoZS5yc3QKQEAgLTAsMCArMSwy
NjggQEAKKy4uIF9gY2FjaGVfcHJvdmlkZXJgOgorLi4gX2NhY2hlOgorCisKK0NhY2hlOiB3b3Jr
aW5nIHdpdGggY3Jvc3MtdGVzdHJ1biBzdGF0ZQorPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CisKKy4uIHZlcnNpb25hZGRlZDo6IDIuOAorCitVc2FnZQorLS0tLS0tLS0t
CisKK1RoZSBwbHVnaW4gcHJvdmlkZXMgdHdvIGNvbW1hbmQgbGluZSBvcHRpb25zIHRvIHJlcnVu
IGZhaWx1cmVzIGZyb20gdGhlCitsYXN0IGBgcHl0ZXN0YGAgaW52b2NhdGlvbjoKKworKiBgYC0t
bGZgYCwgYGAtLWxhc3QtZmFpbGVkYGAgLSB0byBvbmx5IHJlLXJ1biB0aGUgZmFpbHVyZXMuCisq
IGBgLS1mZmBgLCBgYC0tZmFpbGVkLWZpcnN0YGAgLSB0byBydW4gdGhlIGZhaWx1cmVzIGZpcnN0
IGFuZCB0aGVuIHRoZSByZXN0IG9mCisgIHRoZSB0ZXN0cy4KKworRm9yIGNsZWFudXAgKHVzdWFs
bHkgbm90IG5lZWRlZCksIGEgYGAtLWNhY2hlLWNsZWFyYGAgb3B0aW9uIGFsbG93cyB0byByZW1v
dmUKK2FsbCBjcm9zcy1zZXNzaW9uIGNhY2hlIGNvbnRlbnRzIGFoZWFkIG9mIGEgdGVzdCBydW4u
CisKK090aGVyIHBsdWdpbnMgbWF5IGFjY2VzcyB0aGUgYGNvbmZpZy5jYWNoZWBfIG9iamVjdCB0
byBzZXQvZ2V0IAorKipqc29uIGVuY29kYWJsZSoqIHZhbHVlcyBiZXR3ZWVuIGBgcHl0ZXN0YGAg
aW52b2NhdGlvbnMuCisKKy4uIG5vdGU6OgorCisgICAgVGhpcyBwbHVnaW4gaXMgZW5hYmxlZCBi
eSBkZWZhdWx0LCBidXQgY2FuIGJlIGRpc2FibGVkIGlmIG5lZWRlZDogc2VlCisgICAgOnJlZjpg
Y21kdW5yZWdpc3RlcmAgKHRoZSBpbnRlcm5hbCBuYW1lIGZvciB0aGlzIHBsdWdpbiBpcworICAg
IGBgY2FjaGVwcm92aWRlcmBgKS4KKworCitSZXJ1bm5pbmcgb25seSBmYWlsdXJlcyBvciBmYWls
dXJlcyBmaXJzdAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworRmlyc3QsIGxldCdzIGNyZWF0ZSA1MCB0ZXN0IGludm9jYXRpb24gb2Ygd2hpY2ggb25s
eSAyIGZhaWw6OgorCisgICAgIyBjb250ZW50IG9mIHRlc3RfNTAucHkKKyAgICBpbXBvcnQgcHl0
ZXN0CisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImkiLCByYW5nZSg1MCkpCisgICAg
ZGVmIHRlc3RfbnVtKGkpOgorICAgICAgICBpZiBpIGluICgxNywgMjUpOgorICAgICAgICAgICBw
eXRlc3QuZmFpbCgiYmFkIGx1Y2siKQorCitJZiB5b3UgcnVuIHRoaXMgZm9yIHRoZSBmaXJzdCB0
aW1lIHlvdSB3aWxsIHNlZSB0d28gZmFpbHVyZXM6OgorCisgICAgJCBweXRlc3QgLXEKKyAgICAu
Li4uLi4uLi4uLi4uLi4uLkYuLi4uLi4uRi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiAgICAgICAg
ICAgICAgICAgICBbMTAwJV0KKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0g
RkFJTFVSRVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXyB0ZXN0X251bVsxN10gX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXworICAgIAorICAgIGkgPSAxNworICAgIAorICAgICAgICBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoImkiLCByYW5nZSg1MCkpCisgICAgICAgIGRlZiB0ZXN0X251bShpKToKKyAg
ICAgICAgICAgIGlmIGkgaW4gKDE3LCAyNSk6CisgICAgPiAgICAgICAgICBweXRlc3QuZmFpbCgi
YmFkIGx1Y2siKQorICAgIEUgICAgICAgICAgRmFpbGVkOiBiYWQgbHVjaworICAgIAorICAgIHRl
c3RfNTAucHk6NjogRmFpbGVkCisgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyB0
ZXN0X251bVsyNV0gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXworICAgIAorICAgIGkg
PSAyNQorICAgIAorICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImkiLCByYW5nZSg1
MCkpCisgICAgICAgIGRlZiB0ZXN0X251bShpKToKKyAgICAgICAgICAgIGlmIGkgaW4gKDE3LCAy
NSk6CisgICAgPiAgICAgICAgICBweXRlc3QuZmFpbCgiYmFkIGx1Y2siKQorICAgIEUgICAgICAg
ICAgRmFpbGVkOiBiYWQgbHVjaworICAgIAorICAgIHRlc3RfNTAucHk6NjogRmFpbGVkCisgICAg
MiBmYWlsZWQsIDQ4IHBhc3NlZCBpbiAwLjEyIHNlY29uZHMKKworSWYgeW91IHRoZW4gcnVuIGl0
IHdpdGggYGAtLWxmYGA6OgorCisgICAgJCBweXRlc3QgLS1sZgorICAgID09PT09PT09PT09PT09
PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwg
cHktMS54LnksIHBsdWdneS0wLngueQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGlu
aWZpbGU6CisgICAgY29sbGVjdGVkIDUwIGl0ZW1zCisgICAgcnVuLWxhc3QtZmFpbHVyZTogcmVy
dW4gcHJldmlvdXMgMiBmYWlsdXJlcworICAgIAorICAgIHRlc3RfNTAucHkgRkYgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAg
IAorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fIHRlc3RfbnVtWzE3XSBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgICAg
CisgICAgaSA9IDE3CisgICAgCisgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiaSIs
IHJhbmdlKDUwKSkKKyAgICAgICAgZGVmIHRlc3RfbnVtKGkpOgorICAgICAgICAgICAgaWYgaSBp
biAoMTcsIDI1KToKKyAgICA+ICAgICAgICAgIHB5dGVzdC5mYWlsKCJiYWQgbHVjayIpCisgICAg
RSAgICAgICAgICBGYWlsZWQ6IGJhZCBsdWNrCisgICAgCisgICAgdGVzdF81MC5weTo2OiBGYWls
ZWQKKyAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIHRlc3RfbnVtWzI1XSBfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgaSA9IDI1CisgICAgCisgICAg
ICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiaSIsIHJhbmdlKDUwKSkKKyAgICAgICAgZGVm
IHRlc3RfbnVtKGkpOgorICAgICAgICAgICAgaWYgaSBpbiAoMTcsIDI1KToKKyAgICA+ICAgICAg
ICAgIHB5dGVzdC5mYWlsKCJiYWQgbHVjayIpCisgICAgRSAgICAgICAgICBGYWlsZWQ6IGJhZCBs
dWNrCisgICAgCisgICAgdGVzdF81MC5weTo2OiBGYWlsZWQKKyAgICA9PT09PT09PT09PT09PT09
PT09PT09PT09PT0gNDggdGVzdHMgZGVzZWxlY3RlZCA9PT09PT09PT09PT09PT09PT09PT09PT09
PT09CisgICAgPT09PT09PT09PT09PT09PT0gMiBmYWlsZWQsIDQ4IGRlc2VsZWN0ZWQgaW4gMC4x
MiBzZWNvbmRzID09PT09PT09PT09PT09PT09PQorCitZb3UgaGF2ZSBydW4gb25seSB0aGUgdHdv
IGZhaWxpbmcgdGVzdCBmcm9tIHRoZSBsYXN0IHJ1biwgd2hpbGUgNDggdGVzdHMgaGF2ZQorbm90
IGJlZW4gcnVuICgiZGVzZWxlY3RlZCIpLgorCitOb3csIGlmIHlvdSBydW4gd2l0aCB0aGUgYGAt
LWZmYGAgb3B0aW9uLCBhbGwgdGVzdHMgd2lsbCBiZSBydW4gYnV0IHRoZSBmaXJzdAorcHJldmlv
dXMgZmFpbHVyZXMgd2lsbCBiZSBleGVjdXRlZCBmaXJzdCAoYXMgY2FuIGJlIHNlZW4gZnJvbSB0
aGUgc2VyaWVzCitvZiBgYEZGYGAgYW5kIGRvdHMpOjoKKworICAgICQgcHl0ZXN0IC0tZmYKKyAg
ICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55
LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICByb290ZGlyOiAkUkVH
RU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIGNvbGxlY3RlZCA1MCBpdGVtcworICAgIHJ1bi1s
YXN0LWZhaWx1cmU6IHJlcnVuIHByZXZpb3VzIDIgZmFpbHVyZXMgZmlyc3QKKyAgICAKKyAgICB0
ZXN0XzUwLnB5IEZGLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uICAgICAgICBbMTAwJV0KKyAgICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0gRkFJTFVSRVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXyB0ZXN0X251bVsxN10gX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXworICAgIAorICAgIGkgPSAxNworICAgIAorICAgICAgICBAcHl0ZXN0
Lm1hcmsucGFyYW1ldHJpemUoImkiLCByYW5nZSg1MCkpCisgICAgICAgIGRlZiB0ZXN0X251bShp
KToKKyAgICAgICAgICAgIGlmIGkgaW4gKDE3LCAyNSk6CisgICAgPiAgICAgICAgICBweXRlc3Qu
ZmFpbCgiYmFkIGx1Y2siKQorICAgIEUgICAgICAgICAgRmFpbGVkOiBiYWQgbHVjaworICAgIAor
ICAgIHRlc3RfNTAucHk6NjogRmFpbGVkCisgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXyB0ZXN0X251bVsyNV0gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXworICAgIAor
ICAgIGkgPSAyNQorICAgIAorICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImkiLCBy
YW5nZSg1MCkpCisgICAgICAgIGRlZiB0ZXN0X251bShpKToKKyAgICAgICAgICAgIGlmIGkgaW4g
KDE3LCAyNSk6CisgICAgPiAgICAgICAgICBweXRlc3QuZmFpbCgiYmFkIGx1Y2siKQorICAgIEUg
ICAgICAgICAgRmFpbGVkOiBiYWQgbHVjaworICAgIAorICAgIHRlc3RfNTAucHk6NjogRmFpbGVk
CisgICAgPT09PT09PT09PT09PT09PT09PSAyIGZhaWxlZCwgNDggcGFzc2VkIGluIDAuMTIgc2Vj
b25kcyA9PT09PT09PT09PT09PT09PT09PQorCisuLiBfYGNvbmZpZy5jYWNoZWA6CisKK1RoZSBu
ZXcgY29uZmlnLmNhY2hlIG9iamVjdAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworLi4gcmVnZW5kb2M6d2lwZQorCitQbHVnaW5zIG9yIGNvbmZ0ZXN0LnB5IHN1cHBvcnQgY29k
ZSBjYW4gZ2V0IGEgY2FjaGVkIHZhbHVlIHVzaW5nIHRoZQorcHl0ZXN0IGBgY29uZmlnYGAgb2Jq
ZWN0LiAgSGVyZSBpcyBhIGJhc2ljIGV4YW1wbGUgcGx1Z2luIHdoaWNoCitpbXBsZW1lbnRzIGEg
OnJlZjpgZml4dHVyZWAgd2hpY2ggcmUtdXNlcyBwcmV2aW91c2x5IGNyZWF0ZWQgc3RhdGUKK2Fj
cm9zcyBweXRlc3QgaW52b2NhdGlvbnM6OgorCisgICAgIyBjb250ZW50IG9mIHRlc3RfY2FjaGlu
Zy5weQorICAgIGltcG9ydCBweXRlc3QKKyAgICBpbXBvcnQgdGltZQorCisgICAgQHB5dGVzdC5m
aXh0dXJlCisgICAgZGVmIG15ZGF0YShyZXF1ZXN0KToKKyAgICAgICAgdmFsID0gcmVxdWVzdC5j
b25maWcuY2FjaGUuZ2V0KCJleGFtcGxlL3ZhbHVlIiwgTm9uZSkKKyAgICAgICAgaWYgdmFsIGlz
IE5vbmU6CisgICAgICAgICAgICB0aW1lLnNsZWVwKDkqMC42KSAjIGV4cGVuc2l2ZSBjb21wdXRh
dGlvbiA6KQorICAgICAgICAgICAgdmFsID0gNDIKKyAgICAgICAgICAgIHJlcXVlc3QuY29uZmln
LmNhY2hlLnNldCgiZXhhbXBsZS92YWx1ZSIsIHZhbCkKKyAgICAgICAgcmV0dXJuIHZhbAorCisg
ICAgZGVmIHRlc3RfZnVuY3Rpb24obXlkYXRhKToKKyAgICAgICAgYXNzZXJ0IG15ZGF0YSA9PSAy
MworCitJZiB5b3UgcnVuIHRoaXMgY29tbWFuZCBvbmNlLCBpdCB3aWxsIHRha2UgYSB3aGlsZSBi
ZWNhdXNlCitvZiB0aGUgc2xlZXA6OgorCisgICAgJCBweXRlc3QgLXEKKyAgICBGICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbMTAwJV0KKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRkFJTFVSRVMg
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fIHRlc3RfZnVuY3Rpb24gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
XworICAgIAorICAgIG15ZGF0YSA9IDQyCisgICAgCisgICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9u
KG15ZGF0YSk6CisgICAgPiAgICAgICBhc3NlcnQgbXlkYXRhID09IDIzCisgICAgRSAgICAgICBh
c3NlcnQgNDIgPT0gMjMKKyAgICAKKyAgICB0ZXN0X2NhY2hpbmcucHk6MTQ6IEFzc2VydGlvbkVy
cm9yCisgICAgMSBmYWlsZWQgaW4gMC4xMiBzZWNvbmRzCisKK0lmIHlvdSBydW4gaXQgYSBzZWNv
bmQgdGltZSB0aGUgdmFsdWUgd2lsbCBiZSByZXRyaWV2ZWQgZnJvbQordGhlIGNhY2hlIGFuZCB0
aGlzIHdpbGwgYmUgcXVpY2s6OgorCisgICAgJCBweXRlc3QgLXEKKyAgICBGICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb
MTAwJV0KKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRkFJTFVSRVMgPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fIHRlc3RfZnVuY3Rpb24gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwor
ICAgIAorICAgIG15ZGF0YSA9IDQyCisgICAgCisgICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKG15
ZGF0YSk6CisgICAgPiAgICAgICBhc3NlcnQgbXlkYXRhID09IDIzCisgICAgRSAgICAgICBhc3Nl
cnQgNDIgPT0gMjMKKyAgICAKKyAgICB0ZXN0X2NhY2hpbmcucHk6MTQ6IEFzc2VydGlvbkVycm9y
CisgICAgMSBmYWlsZWQgaW4gMC4xMiBzZWNvbmRzCisKK1NlZSB0aGUgYGNhY2hlLWFwaWBfIGZv
ciBtb3JlIGRldGFpbHMuCisKKworSW5zcGVjdGluZyBDYWNoZSBjb250ZW50CistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1lvdSBjYW4gYWx3YXlzIHBlZWsgYXQgdGhlIGNvbnRl
bnQgb2YgdGhlIGNhY2hlIHVzaW5nIHRoZQorYGAtLWNhY2hlLXNob3dgYCBjb21tYW5kIGxpbmUg
b3B0aW9uOjoKKworICAgICQgcHkudGVzdCAtLWNhY2hlLXNob3cKKyAgICA9PT09PT09PT09PT09
PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54Lnks
IHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBp
bmlmaWxlOgorICAgIGNhY2hlZGlyOiAkUkVHRU5ET0NfVE1QRElSLy5jYWNoZQorICAgIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gY2FjaGUgdmFsdWVzIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKyAgICBjYWNoZS9sYXN0ZmFpbGVkIGNvbnRhaW5zOgorICAgICAgeyd0
ZXN0X2NhY2hpbmcucHk6OnRlc3RfZnVuY3Rpb24nOiBUcnVlfQorICAgIGV4YW1wbGUvdmFsdWUg
Y29udGFpbnM6CisgICAgICA0MgorICAgIAorICAgID09PT09PT09PT09PT09PT09PT09PT09IG5v
IHRlc3RzIHJhbiBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09PT09PT0KKworQ2xl
YXJpbmcgQ2FjaGUgY29udGVudAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitZ
b3UgY2FuIGluc3RydWN0IHB5dGVzdCB0byBjbGVhciBhbGwgY2FjaGUgZmlsZXMgYW5kIHZhbHVl
cworYnkgYWRkaW5nIHRoZSBgYC0tY2FjaGUtY2xlYXJgYCBvcHRpb24gbGlrZSB0aGlzOjoKKwor
ICAgIHB5dGVzdCAtLWNhY2hlLWNsZWFyCisKK1RoaXMgaXMgcmVjb21tZW5kZWQgZm9yIGludm9j
YXRpb25zIGZyb20gQ29udGludW91cyBJbnRlZ3JhdGlvbgorc2VydmVycyB3aGVyZSBpc29sYXRp
b24gYW5kIGNvcnJlY3RuZXNzIGlzIG1vcmUgaW1wb3J0YW50Cit0aGFuIHNwZWVkLgorCisKKy4u
IF9gY2FjaGUtYXBpYDoKKworY29uZmlnLmNhY2hlIEFQSQorLS0tLS0tLS0tLS0tLS0tLS0tCisK
K1RoZSBgYGNvbmZpZy5jYWNoZWBgIG9iamVjdCBhbGxvd3Mgb3RoZXIgcGx1Z2lucywKK2luY2x1
ZGluZyBgYGNvbmZ0ZXN0LnB5YGAgZmlsZXMsCit0byBzYWZlbHkgYW5kIGZsZXhpYmx5IHN0b3Jl
IGFuZCByZXRyaWV2ZSB2YWx1ZXMgYWNyb3NzCit0ZXN0IHJ1bnMgYmVjYXVzZSB0aGUgYGBjb25m
aWdgYCBvYmplY3QgaXMgYXZhaWxhYmxlCitpbiBtYW55IHBsYWNlcy4KKworVW5kZXIgdGhlIGhv
b2QsIHRoZSBjYWNoZSBwbHVnaW4gdXNlcyB0aGUgc2ltcGxlCitkdW1wcy9sb2FkcyBBUEkgb2Yg
dGhlIGpzb24gc3RkbGliIG1vZHVsZQorCisuLiBjdXJyZW50bW9kdWxlOjogX3B5dGVzdC5jYWNo
ZXByb3ZpZGVyCisKKy4uIGF1dG9tZXRob2Q6OiBDYWNoZS5nZXQKKy4uIGF1dG9tZXRob2Q6OiBD
YWNoZS5zZXQKKy4uIGF1dG9tZXRob2Q6OiBDYWNoZS5tYWtlZGlyCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vY2FwdHVyZS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY2FwdHVyZS5y
c3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTg3YjU3ZjhmYzA2MWI4MDc4YjlmN2UzM2FjZTdlZDBlNDdhMjhlNwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jYXB0dXJlLnJzdApAQCAtMCww
ICsxLDE0OCBAQAorCisuLiBfYGNhcHR1cmVzYDoKKworQ2FwdHVyaW5nIG9mIHRoZSBzdGRvdXQv
c3RkZXJyIG91dHB1dAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CisKK0RlZmF1bHQgc3Rkb3V0L3N0ZGVyci9zdGRpbiBjYXB0dXJpbmcg
YmVoYXZpb3VyCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworRHVyaW5nIHRlc3QgZXhlY3V0aW9uIGFueSBvdXRwdXQgc2VudCB0byBg
YHN0ZG91dGBgIGFuZCBgYHN0ZGVycmBgIGlzCitjYXB0dXJlZC4gIElmIGEgdGVzdCBvciBhIHNl
dHVwIG1ldGhvZCBmYWlscyBpdHMgYWNjb3JkaW5nIGNhcHR1cmVkCitvdXRwdXQgd2lsbCB1c3Vh
bGx5IGJlIHNob3duIGFsb25nIHdpdGggdGhlIGZhaWx1cmUgdHJhY2ViYWNrLgorCitJbiBhZGRp
dGlvbiwgYGBzdGRpbmBgIGlzIHNldCB0byBhICJudWxsIiBvYmplY3Qgd2hpY2ggd2lsbAorZmFp
bCBvbiBhdHRlbXB0cyB0byByZWFkIGZyb20gaXQgYmVjYXVzZSBpdCBpcyByYXJlbHkgZGVzaXJl
ZAordG8gd2FpdCBmb3IgaW50ZXJhY3RpdmUgaW5wdXQgd2hlbiBydW5uaW5nIGF1dG9tYXRlZCB0
ZXN0cy4KKworQnkgZGVmYXVsdCBjYXB0dXJpbmcgaXMgZG9uZSBieSBpbnRlcmNlcHRpbmcgd3Jp
dGVzIHRvIGxvdyBsZXZlbAorZmlsZSBkZXNjcmlwdG9ycy4gIFRoaXMgYWxsb3dzIHRvIGNhcHR1
cmUgb3V0cHV0IGZyb20gc2ltcGxlCitwcmludCBzdGF0ZW1lbnRzIGFzIHdlbGwgYXMgb3V0cHV0
IGZyb20gYSBzdWJwcm9jZXNzIHN0YXJ0ZWQgYnkKK2EgdGVzdC4KKworU2V0dGluZyBjYXB0dXJp
bmcgbWV0aG9kcyBvciBkaXNhYmxpbmcgY2FwdHVyaW5nCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZXJlIGFyZSB0d28gd2F5cyBpbiB3aGlj
aCBgYHB5dGVzdGBgIGNhbiBwZXJmb3JtIGNhcHR1cmluZzoKKworKiBmaWxlIGRlc2NyaXB0b3Ig
KEZEKSBsZXZlbCBjYXB0dXJpbmcgKGRlZmF1bHQpOiBBbGwgd3JpdGVzIGdvaW5nIHRvIHRoZQor
ICBvcGVyYXRpbmcgc3lzdGVtIGZpbGUgZGVzY3JpcHRvcnMgMSBhbmQgMiB3aWxsIGJlIGNhcHR1
cmVkLgorCisqIGBgc3lzYGAgbGV2ZWwgY2FwdHVyaW5nOiBPbmx5IHdyaXRlcyB0byBQeXRob24g
ZmlsZXMgYGBzeXMuc3Rkb3V0YGAKKyAgYW5kIGBgc3lzLnN0ZGVycmBgIHdpbGwgYmUgY2FwdHVy
ZWQuICBObyBjYXB0dXJpbmcgb2Ygd3JpdGVzIHRvCisgIGZpbGVkZXNjcmlwdG9ycyBpcyBwZXJm
b3JtZWQuCisKKy4uIF9gZGlzYWJsZSBjYXB0dXJpbmdgOgorCitZb3UgY2FuIGluZmx1ZW5jZSBv
dXRwdXQgY2FwdHVyaW5nIG1lY2hhbmlzbXMgZnJvbSB0aGUgY29tbWFuZCBsaW5lOjoKKworICAg
IHB5dGVzdCAtcyAgICAgICAgICAgICMgZGlzYWJsZSBhbGwgY2FwdHVyaW5nCisgICAgcHl0ZXN0
IC0tY2FwdHVyZT1zeXMgIyByZXBsYWNlIHN5cy5zdGRvdXQvc3RkZXJyIHdpdGggaW4tbWVtIGZp
bGVzCisgICAgcHl0ZXN0IC0tY2FwdHVyZT1mZCAgIyBhbHNvIHBvaW50IGZpbGVkZXNjcmlwdG9y
cyAxIGFuZCAyIHRvIHRlbXAgZmlsZQorCisuLiBfcHJpbnRkZWJ1Z2dpbmc6CisKK1VzaW5nIHBy
aW50IHN0YXRlbWVudHMgZm9yIGRlYnVnZ2luZworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK09uZSBwcmltYXJ5IGJlbmVmaXQgb2YgdGhlIGRl
ZmF1bHQgY2FwdHVyaW5nIG9mIHN0ZG91dC9zdGRlcnIgb3V0cHV0CitpcyB0aGF0IHlvdSBjYW4g
dXNlIHByaW50IHN0YXRlbWVudHMgZm9yIGRlYnVnZ2luZzo6CisKKyAgICAjIGNvbnRlbnQgb2Yg
dGVzdF9tb2R1bGUucHkKKworICAgIGRlZiBzZXR1cF9mdW5jdGlvbihmdW5jdGlvbik6CisgICAg
ICAgIHByaW50ICgic2V0dGluZyB1cCAlcyIgJSBmdW5jdGlvbikKKworICAgIGRlZiB0ZXN0X2Z1
bmMxKCk6CisgICAgICAgIGFzc2VydCBUcnVlCisKKyAgICBkZWYgdGVzdF9mdW5jMigpOgorICAg
ICAgICBhc3NlcnQgRmFsc2UKKworYW5kIHJ1bm5pbmcgdGhpcyBtb2R1bGUgd2lsbCBzaG93IHlv
dSBwcmVjaXNlbHkgdGhlIG91dHB1dAorb2YgdGhlIGZhaWxpbmcgZnVuY3Rpb24gYW5kIGhpZGUg
dGhlIG90aGVyIG9uZTo6CisKKyAgICAkIHB5dGVzdAorICAgID09PT09PT09PT09PT09PT09PT09
PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
KyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54
LnksIHBsdWdneS0wLngueQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6
CisgICAgY29sbGVjdGVkIDIgaXRlbXMKKyAgICAKKyAgICB0ZXN0X21vZHVsZS5weSAuRiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKyAg
ICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRkFJTFVSRVMgPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18gdGVzdF9mdW5jMiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXworICAg
IAorICAgICAgICBkZWYgdGVzdF9mdW5jMigpOgorICAgID4gICAgICAgYXNzZXJ0IEZhbHNlCisg
ICAgRSAgICAgICBhc3NlcnQgRmFsc2UKKyAgICAKKyAgICB0ZXN0X21vZHVsZS5weTo5OiBBc3Nl
cnRpb25FcnJvcgorICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENhcHR1cmVkIHN0ZG91
dCBzZXR1cCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBzZXR0aW5nIHVwIDxmdW5j
dGlvbiB0ZXN0X2Z1bmMyIGF0IDB4ZGVhZGJlZWY+CisgICAgPT09PT09PT09PT09PT09PT09PT0g
MSBmYWlsZWQsIDEgcGFzc2VkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PQor
CitBY2Nlc3NpbmcgY2FwdHVyZWQgb3V0cHV0IGZyb20gYSB0ZXN0IGZ1bmN0aW9uCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhlIGBgY2Fw
c3lzYGAsIGBgY2Fwc3lzYmluYXJ5YGAsIGBgY2FwZmRgYCwgYW5kIGBgY2FwZmRiaW5hcnlgYCBm
aXh0dXJlcworYWxsb3cgYWNjZXNzIHRvIHN0ZG91dC9zdGRlcnIgb3V0cHV0IGNyZWF0ZWQgZHVy
aW5nIHRlc3QgZXhlY3V0aW9uLiAgSGVyZSBpcworYW4gZXhhbXBsZSB0ZXN0IGZ1bmN0aW9uIHRo
YXQgcGVyZm9ybXMgc29tZSBvdXRwdXQgcmVsYXRlZCBjaGVja3M6CisKKy4uIGNvZGUtYmxvY2s6
OiBweXRob24KKworICAgIGRlZiB0ZXN0X215b3V0cHV0KGNhcHN5cyk6ICMgb3IgdXNlICJjYXBm
ZCIgZm9yIGZkLWxldmVsCisgICAgICAgIHByaW50ICgiaGVsbG8iKQorICAgICAgICBzeXMuc3Rk
ZXJyLndyaXRlKCJ3b3JsZFxuIikKKyAgICAgICAgb3V0LCBlcnIgPSBjYXBzeXMucmVhZG91dGVy
cigpCisgICAgICAgIGFzc2VydCBvdXQgPT0gImhlbGxvXG4iCisgICAgICAgIGFzc2VydCBlcnIg
PT0gIndvcmxkXG4iCisgICAgICAgIHByaW50ICgibmV4dCIpCisgICAgICAgIG91dCwgZXJyID0g
Y2Fwc3lzLnJlYWRvdXRlcnIoKQorICAgICAgICBhc3NlcnQgb3V0ID09ICJuZXh0XG4iCisKK1Ro
ZSBgYHJlYWRvdXRlcnIoKWBgIGNhbGwgc25hcHNob3RzIHRoZSBvdXRwdXQgc28gZmFyIC0KK2Fu
ZCBjYXB0dXJpbmcgd2lsbCBiZSBjb250aW51ZWQuICBBZnRlciB0aGUgdGVzdAorZnVuY3Rpb24g
ZmluaXNoZXMgdGhlIG9yaWdpbmFsIHN0cmVhbXMgd2lsbAorYmUgcmVzdG9yZWQuICBVc2luZyBg
YGNhcHN5c2BgIHRoaXMgd2F5IGZyZWVzIHlvdXIKK3Rlc3QgZnJvbSBoYXZpbmcgdG8gY2FyZSBh
Ym91dCBzZXR0aW5nL3Jlc2V0dGluZworb3V0cHV0IHN0cmVhbXMgYW5kIGFsc28gaW50ZXJhY3Rz
IHdlbGwgd2l0aCBweXRlc3Qncworb3duIHBlci10ZXN0IGNhcHR1cmluZy4KKworSWYgeW91IHdh
bnQgdG8gY2FwdHVyZSBvbiBmaWxlZGVzY3JpcHRvciBsZXZlbCB5b3UgY2FuIHVzZQordGhlIGBg
Y2FwZmRgYCBmaXh0dXJlIHdoaWNoIG9mZmVycyB0aGUgZXhhY3QKK3NhbWUgaW50ZXJmYWNlIGJ1
dCBhbGxvd3MgdG8gYWxzbyBjYXB0dXJlIG91dHB1dCBmcm9tCitsaWJyYXJpZXMgb3Igc3VicHJv
Y2Vzc2VzIHRoYXQgZGlyZWN0bHkgd3JpdGUgdG8gb3BlcmF0aW5nCitzeXN0ZW0gbGV2ZWwgb3V0
cHV0IHN0cmVhbXMgKEZEMSBhbmQgRkQyKS4KKworLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKK0lm
IHRoZSBjb2RlIHVuZGVyIHRlc3Qgd3JpdGVzIG5vbi10ZXh0dWFsIGRhdGEsIHlvdSBjYW4gY2Fw
dHVyZSB0aGlzIHVzaW5nCit0aGUgYGBjYXBzeXNiaW5hcnlgYCBmaXh0dXJlIHdoaWNoIGluc3Rl
YWQgcmV0dXJucyBgYGJ5dGVzYGAgZnJvbQordGhlIGBgcmVhZG91dGVycmBgIG1ldGhvZC4gIFRo
ZSBgYGNhcGZzeXNiaW5hcnlgYCBmaXh0dXJlIGlzIGN1cnJlbnRseSBvbmx5CithdmFpbGFibGUg
aW4gcHl0aG9uIDMuCisKKworLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKK0lmIHRoZSBjb2RlIHVu
ZGVyIHRlc3Qgd3JpdGVzIG5vbi10ZXh0dWFsIGRhdGEsIHlvdSBjYW4gY2FwdHVyZSB0aGlzIHVz
aW5nCit0aGUgYGBjYXBmZGJpbmFyeWBgIGZpeHR1cmUgd2hpY2ggaW5zdGVhZCByZXR1cm5zIGBg
Ynl0ZXNgYCBmcm9tCit0aGUgYGByZWFkb3V0ZXJyYGAgbWV0aG9kLiAgVGhlIGBgY2FwZmRiaW5h
cnlgYCBmaXh0dXJlIG9wZXJhdGVzIG9uIHRoZQorZmlsZWRlc2NyaXB0b3IgbGV2ZWwuCisKKwor
Li4gdmVyc2lvbmFkZGVkOjogMy4wCisKK1RvIHRlbXBvcmFyaWx5IGRpc2FibGUgY2FwdHVyZSB3
aXRoaW4gYSB0ZXN0LCBib3RoIGBgY2Fwc3lzYGAKK2FuZCBgYGNhcGZkYGAgaGF2ZSBhIGBgZGlz
YWJsZWQoKWBgIG1ldGhvZCB0aGF0IGNhbiBiZSB1c2VkCithcyBhIGNvbnRleHQgbWFuYWdlciwg
ZGlzYWJsaW5nIGNhcHR1cmUgaW5zaWRlIHRoZSBgYHdpdGhgYCBibG9jazoKKworLi4gY29kZS1i
bG9jazo6IHB5dGhvbgorCisgICAgZGVmIHRlc3RfZGlzYWJsaW5nX2NhcHR1cmluZyhjYXBzeXMp
OgorICAgICAgICBwcmludCgndGhpcyBvdXRwdXQgaXMgY2FwdHVyZWQnKQorICAgICAgICB3aXRo
IGNhcHN5cy5kaXNhYmxlZCgpOgorICAgICAgICAgICAgcHJpbnQoJ291dHB1dCBub3QgY2FwdHVy
ZWQsIGdvaW5nIGRpcmVjdGx5IHRvIHN5cy5zdGRvdXQnKQorICAgICAgICBwcmludCgndGhpcyBv
dXRwdXQgaXMgYWxzbyBjYXB0dXJlZCcpCisKKy4uIGluY2x1ZGU6OiBsaW5rcy5pbmMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jaGFuZ2Vsb2cucnN0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2NoYW5nZWxvZy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTU5YjNjN2UyNTBlZWFhMTExZTJiZjNmZWRm
MGE0NDlmZmIzOGIzZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jaGFu
Z2Vsb2cucnN0CkBAIC0wLDAgKzEsNyBAQAorCisuLiBfY2hhbmdlbG9nOgorCitDaGFuZ2Vsb2cg
aGlzdG9yeQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIGluY2x1ZGU6
OiAuLi8uLi9DSEFOR0VMT0cucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY2hl
Y2tfc3BoaW54LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NoZWNrX3NwaGlueC5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wZjUzNmZmYTZhYzA2MWU1M2M5ZTM0NDhmYzdhNTlkNjM0MzI1YjBhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NoZWNrX3NwaGlueC5weQpAQCAtMCwwICsxLDE3
IEBACitpbXBvcnQgcHkKK2ltcG9ydCBzdWJwcm9jZXNzCitkZWYgdGVzdF9idWlsZF9kb2NzKHRt
cGRpcik6CisgICAgZG9jdHJlZXMgPSB0bXBkaXIuam9pbigiZG9jdHJlZXMiKQorICAgIGh0bWxk
aXIgPSB0bXBkaXIuam9pbigiaHRtbCIpCisgICAgc3VicHJvY2Vzcy5jaGVja19jYWxsKFsKKyAg
ICAgICAgInNwaGlueC1idWlsZCIsICItVyIsICItYmh0bWwiLAorICAgICAgICAgICItZCIsIHN0
cihkb2N0cmVlcyksICIuIiwgc3RyKGh0bWxkaXIpXSkKKworZGVmIHRlc3RfbGlua2NoZWNrKHRt
cGRpcik6CisgICAgZG9jdHJlZXMgPSB0bXBkaXIuam9pbigiZG9jdHJlZXMiKQorICAgIGh0bWxk
aXIgPSB0bXBkaXIuam9pbigiaHRtbCIpCisgICAgc3VicHJvY2Vzcy5jaGVja19jYWxsKAorICAg
ICAgICBbInNwaGlueC1idWlsZCIsICItYmxpbmtjaGVjayIsCisgICAgICAgICAgIi1kIiwgc3Ry
KGRvY3RyZWVzKSwgIi4iLCBzdHIoaHRtbGRpcildKQorCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9jb25mLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NvbmYucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDBmMWU0MTY1ZTQ0MjA5YjgwNDU2YTRiNTg2YjAyOGE2MzBlYWFlZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jb25mLnB5CkBAIC0wLDAgKzEsMzIzIEBACisjIC0q
LSBjb2Rpbmc6IHV0Zi04IC0qLQorIworIyBweXRlc3QgZG9jdW1lbnRhdGlvbiBidWlsZCBjb25m
aWd1cmF0aW9uIGZpbGUsIGNyZWF0ZWQgYnkKKyMgc3BoaW54LXF1aWNrc3RhcnQgb24gRnJpIE9j
dCAgOCAxNzo1NDoyOCAyMDEwLgorIworIyBUaGlzIGZpbGUgaXMgZXhlY2ZpbGUoKWQgd2l0aCB0
aGUgY3VycmVudCBkaXJlY3Rvcnkgc2V0IHRvIGl0cyBjb250YWluaW5nIGRpci4KKyMKKyMgTm90
ZSB0aGF0IG5vdCBhbGwgcG9zc2libGUgY29uZmlndXJhdGlvbiB2YWx1ZXMgYXJlIHByZXNlbnQg
aW4gdGhpcworIyBhdXRvZ2VuZXJhdGVkIGZpbGUuCisjCisjIEFsbCBjb25maWd1cmF0aW9uIHZh
bHVlcyBoYXZlIGEgZGVmYXVsdDsgdmFsdWVzIHRoYXQgYXJlIGNvbW1lbnRlZCBvdXQKKyMgc2Vy
dmUgdG8gc2hvdyB0aGUgZGVmYXVsdC4KKworIyBUaGUgdmVyc2lvbiBpbmZvIGZvciB0aGUgcHJv
amVjdCB5b3UncmUgZG9jdW1lbnRpbmcsIGFjdHMgYXMgcmVwbGFjZW1lbnQgZm9yCisjIHx2ZXJz
aW9ufCBhbmQgfHJlbGVhc2V8LCBhbHNvIHVzZWQgaW4gdmFyaW91cyBvdGhlciBwbGFjZXMgdGhy
b3VnaG91dCB0aGUKKyMgYnVpbHQgZG9jdW1lbnRzLgorIworIyBUaGUgZnVsbCB2ZXJzaW9uLCBp
bmNsdWRpbmcgYWxwaGEvYmV0YS9yYyB0YWdzLgorIyBUaGUgc2hvcnQgWC5ZIHZlcnNpb24uCisK
K2ltcG9ydCBvcywgc3lzCitmcm9tIF9weXRlc3QgaW1wb3J0IF9fdmVyc2lvbl9fIGFzIHZlcnNp
b24KK3JlbGVhc2UgPSAiLiIuam9pbih2ZXJzaW9uLnNwbGl0KCIuIilbOjJdKQorCisjIElmIGV4
dGVuc2lvbnMgKG9yIG1vZHVsZXMgdG8gZG9jdW1lbnQgd2l0aCBhdXRvZG9jKSBhcmUgaW4gYW5v
dGhlciBkaXJlY3RvcnksCisjIGFkZCB0aGVzZSBkaXJlY3RvcmllcyB0byBzeXMucGF0aCBoZXJl
LiBJZiB0aGUgZGlyZWN0b3J5IGlzIHJlbGF0aXZlIHRvIHRoZQorIyBkb2N1bWVudGF0aW9uIHJv
b3QsIHVzZSBvcy5wYXRoLmFic3BhdGggdG8gbWFrZSBpdCBhYnNvbHV0ZSwgbGlrZSBzaG93biBo
ZXJlLgorI3N5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmFic3BhdGgoJy4nKSkKKworYXV0b2Rv
Y19tZW1iZXJfb3JkZXIgPSAiYnlzb3VyY2UiCit0b2RvX2luY2x1ZGVfdG9kb3MgPSAxCisKKyMg
LS0gR2VuZXJhbCBjb25maWd1cmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgSWYgeW91ciBkb2N1bWVudGF0aW9uIG5lZWRzIGEg
bWluaW1hbCBTcGhpbnggdmVyc2lvbiwgc3RhdGUgaXQgaGVyZS4KKyNuZWVkc19zcGhpbnggPSAn
MS4wJworCisjIEFkZCBhbnkgU3BoaW54IGV4dGVuc2lvbiBtb2R1bGUgbmFtZXMgaGVyZSwgYXMg
c3RyaW5ncy4gVGhleSBjYW4gYmUgZXh0ZW5zaW9ucworIyBjb21pbmcgd2l0aCBTcGhpbnggKG5h
bWVkICdzcGhpbnguZXh0LionKSBvciB5b3VyIGN1c3RvbSBvbmVzLgorZXh0ZW5zaW9ucyA9IFsn
c3BoaW54LmV4dC5hdXRvZG9jJywgJ3NwaGlueC5leHQudG9kbycsICdzcGhpbnguZXh0LmF1dG9z
dW1tYXJ5JywKKyAgICAnc3BoaW54LmV4dC5pbnRlcnNwaGlueCcsICdzcGhpbnguZXh0LnZpZXdj
b2RlJ10KKworIyBBZGQgYW55IHBhdGhzIHRoYXQgY29udGFpbiB0ZW1wbGF0ZXMgaGVyZSwgcmVs
YXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuCit0ZW1wbGF0ZXNfcGF0aCA9IFsnX3RlbXBsYXRlcydd
CisKKyMgVGhlIHN1ZmZpeCBvZiBzb3VyY2UgZmlsZW5hbWVzLgorc291cmNlX3N1ZmZpeCA9ICcu
cnN0JworCisjIFRoZSBlbmNvZGluZyBvZiBzb3VyY2UgZmlsZXMuCisjc291cmNlX2VuY29kaW5n
ID0gJ3V0Zi04LXNpZycKKworIyBUaGUgbWFzdGVyIHRvY3RyZWUgZG9jdW1lbnQuCittYXN0ZXJf
ZG9jID0gJ2NvbnRlbnRzJworCisjIEdlbmVyYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHByb2pl
Y3QuCitwcm9qZWN0ID0gdSdweXRlc3QnCitjb3B5cmlnaHQgPSB1JzIwMTUsIGhvbGdlciBrcmVr
ZWwgYW5kIHB5dGVzdC1kZXYgdGVhbScKKworCisKKyMgVGhlIGxhbmd1YWdlIGZvciBjb250ZW50
IGF1dG9nZW5lcmF0ZWQgYnkgU3BoaW54LiBSZWZlciB0byBkb2N1bWVudGF0aW9uCisjIGZvciBh
IGxpc3Qgb2Ygc3VwcG9ydGVkIGxhbmd1YWdlcy4KKyNsYW5ndWFnZSA9IE5vbmUKKworIyBUaGVy
ZSBhcmUgdHdvIG9wdGlvbnMgZm9yIHJlcGxhY2luZyB8dG9kYXl8OiBlaXRoZXIsIHlvdSBzZXQg
dG9kYXkgdG8gc29tZQorIyBub24tZmFsc2UgdmFsdWUsIHRoZW4gaXQgaXMgdXNlZDoKKyN0b2Rh
eSA9ICcnCisjIEVsc2UsIHRvZGF5X2ZtdCBpcyB1c2VkIGFzIHRoZSBmb3JtYXQgZm9yIGEgc3Ry
ZnRpbWUgY2FsbC4KKyN0b2RheV9mbXQgPSAnJUIgJWQsICVZJworCisjIExpc3Qgb2YgcGF0dGVy
bnMsIHJlbGF0aXZlIHRvIHNvdXJjZSBkaXJlY3RvcnksIHRoYXQgbWF0Y2ggZmlsZXMgYW5kCisj
IGRpcmVjdG9yaWVzIHRvIGlnbm9yZSB3aGVuIGxvb2tpbmcgZm9yIHNvdXJjZSBmaWxlcy4KK2V4
Y2x1ZGVfcGF0dGVybnMgPSBbJ2xpbmtzLmluYycsICdfYnVpbGQnLCAnbmFtaW5nMjAucnN0Jywg
J3Rlc3QvKicsCisgICAgIm9sZF8qIiwKKyAgICAnKmF0dGljKicsCisgICAgJyovYXR0aWMqJywK
KyAgICAnZnVuY2FyZ3MucnN0JywKKyAgICAnc2V0dXAucnN0JywKKyAgICAnZXhhbXBsZS9yZW1v
dGVpbnRlcnAucnN0JywKKyAgICBdCisKKworIyBUaGUgcmVTVCBkZWZhdWx0IHJvbGUgKHVzZWQg
Zm9yIHRoaXMgbWFya3VwOiBgdGV4dGApIHRvIHVzZSBmb3IgYWxsIGRvY3VtZW50cy4KKyNkZWZh
dWx0X3JvbGUgPSBOb25lCisKKyMgSWYgdHJ1ZSwgJygpJyB3aWxsIGJlIGFwcGVuZGVkIHRvIDpm
dW5jOiBldGMuIGNyb3NzLXJlZmVyZW5jZSB0ZXh0LgorI2FkZF9mdW5jdGlvbl9wYXJlbnRoZXNl
cyA9IFRydWUKKworIyBJZiB0cnVlLCB0aGUgY3VycmVudCBtb2R1bGUgbmFtZSB3aWxsIGJlIHBy
ZXBlbmRlZCB0byBhbGwgZGVzY3JpcHRpb24KKyMgdW5pdCB0aXRsZXMgKHN1Y2ggYXMgLi4gZnVu
Y3Rpb246OikuCithZGRfbW9kdWxlX25hbWVzID0gRmFsc2UKKworIyBJZiB0cnVlLCBzZWN0aW9u
YXV0aG9yIGFuZCBtb2R1bGVhdXRob3IgZGlyZWN0aXZlcyB3aWxsIGJlIHNob3duIGluIHRoZQor
IyBvdXRwdXQuIFRoZXkgYXJlIGlnbm9yZWQgYnkgZGVmYXVsdC4KKyNzaG93X2F1dGhvcnMgPSBG
YWxzZQorCisjIFRoZSBuYW1lIG9mIHRoZSBQeWdtZW50cyAoc3ludGF4IGhpZ2hsaWdodGluZykg
c3R5bGUgdG8gdXNlLgorcHlnbWVudHNfc3R5bGUgPSAnc3BoaW54JworCisKKworIyBBIGxpc3Qg
b2YgaWdub3JlZCBwcmVmaXhlcyBmb3IgbW9kdWxlIGluZGV4IHNvcnRpbmcuCisjbW9kaW5kZXhf
Y29tbW9uX3ByZWZpeCA9IFtdCisKKworIyAtLSBPcHRpb25zIGZvciBIVE1MIG91dHB1dCAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworc3lzLnBh
dGguYXBwZW5kKG9zLnBhdGguYWJzcGF0aCgnX3RoZW1lcycpKQoraHRtbF90aGVtZV9wYXRoID0g
WydfdGhlbWVzJ10KKworIyBUaGUgdGhlbWUgdG8gdXNlIGZvciBIVE1MIGFuZCBIVE1MIEhlbHAg
cGFnZXMuICBTZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yCisjIGEgbGlzdCBvZiBidWlsdGluIHRo
ZW1lcy4KK2h0bWxfdGhlbWUgPSAnZmxhc2snCisKKyMgVGhlbWUgb3B0aW9ucyBhcmUgdGhlbWUt
c3BlY2lmaWMgYW5kIGN1c3RvbWl6ZSB0aGUgbG9vayBhbmQgZmVlbCBvZiBhIHRoZW1lCisjIGZ1
cnRoZXIuICBGb3IgYSBsaXN0IG9mIG9wdGlvbnMgYXZhaWxhYmxlIGZvciBlYWNoIHRoZW1lLCBz
ZWUgdGhlCisjIGRvY3VtZW50YXRpb24uCitodG1sX3RoZW1lX29wdGlvbnMgPSB7CisgICdpbmRl
eF9sb2dvJzogTm9uZQorfQorCisjIEFkZCBhbnkgcGF0aHMgdGhhdCBjb250YWluIGN1c3RvbSB0
aGVtZXMgaGVyZSwgcmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuCisjaHRtbF90aGVtZV9wYXRo
ID0gW10KKworIyBUaGUgbmFtZSBmb3IgdGhpcyBzZXQgb2YgU3BoaW54IGRvY3VtZW50cy4gIElm
IE5vbmUsIGl0IGRlZmF1bHRzIHRvCisjICI8cHJvamVjdD4gdjxyZWxlYXNlPiBkb2N1bWVudGF0
aW9uIi4KK2h0bWxfdGl0bGUgPSAncHl0ZXN0IGRvY3VtZW50YXRpb24nCisKKyMgQSBzaG9ydGVy
IHRpdGxlIGZvciB0aGUgbmF2aWdhdGlvbiBiYXIuICBEZWZhdWx0IGlzIHRoZSBzYW1lIGFzIGh0
bWxfdGl0bGUuCitodG1sX3Nob3J0X3RpdGxlID0gInB5dGVzdC0lcyIgJSByZWxlYXNlCisKKyMg
VGhlIG5hbWUgb2YgYW4gaW1hZ2UgZmlsZSAocmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkpIHRv
IHBsYWNlIGF0IHRoZSB0b3AKKyMgb2YgdGhlIHNpZGViYXIuCitodG1sX2xvZ28gPSAiaW1nL3B5
dGVzdDEucG5nIgorCisjIFRoZSBuYW1lIG9mIGFuIGltYWdlIGZpbGUgKHdpdGhpbiB0aGUgc3Rh
dGljIHBhdGgpIHRvIHVzZSBhcyBmYXZpY29uIG9mIHRoZQorIyBkb2NzLiAgVGhpcyBmaWxlIHNo
b3VsZCBiZSBhIFdpbmRvd3MgaWNvbiBmaWxlICguaWNvKSBiZWluZyAxNngxNiBvciAzMngzMgor
IyBwaXhlbHMgbGFyZ2UuCitodG1sX2Zhdmljb24gPSAiaW1nL3B5dGVzdDFmYXZpLmljbyIKKwor
IyBBZGQgYW55IHBhdGhzIHRoYXQgY29udGFpbiBjdXN0b20gc3RhdGljIGZpbGVzIChzdWNoIGFz
IHN0eWxlIHNoZWV0cykgaGVyZSwKKyMgcmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuIFRoZXkg
YXJlIGNvcGllZCBhZnRlciB0aGUgYnVpbHRpbiBzdGF0aWMgZmlsZXMsCisjIHNvIGEgZmlsZSBu
YW1lZCAiZGVmYXVsdC5jc3MiIHdpbGwgb3ZlcndyaXRlIHRoZSBidWlsdGluICJkZWZhdWx0LmNz
cyIuCisjIGh0bWxfc3RhdGljX3BhdGggPSBbJ19zdGF0aWMnXQorCisjIElmIG5vdCAnJywgYSAn
TGFzdCB1cGRhdGVkIG9uOicgdGltZXN0YW1wIGlzIGluc2VydGVkIGF0IGV2ZXJ5IHBhZ2UgYm90
dG9tLAorIyB1c2luZyB0aGUgZ2l2ZW4gc3RyZnRpbWUgZm9ybWF0LgorI2h0bWxfbGFzdF91cGRh
dGVkX2ZtdCA9ICclYiAlZCwgJVknCisKKyMgSWYgdHJ1ZSwgU21hcnR5UGFudHMgd2lsbCBiZSB1
c2VkIHRvIGNvbnZlcnQgcXVvdGVzIGFuZCBkYXNoZXMgdG8KKyMgdHlwb2dyYXBoaWNhbGx5IGNv
cnJlY3QgZW50aXRpZXMuCisjaHRtbF91c2Vfc21hcnR5cGFudHMgPSBUcnVlCisKKyMgQ3VzdG9t
IHNpZGViYXIgdGVtcGxhdGVzLCBtYXBzIGRvY3VtZW50IG5hbWVzIHRvIHRlbXBsYXRlIG5hbWVz
LgorI2h0bWxfc2lkZWJhcnMgPSB7fQorI2h0bWxfc2lkZWJhcnMgPSB7J2luZGV4JzogJ2luZGV4
c2lkZWJhci5odG1sJ30KKworaHRtbF9zaWRlYmFycyA9IHsKKyAgICAnaW5kZXgnOiBbCisgICAg
ICAgICdzaWRlYmFyaW50cm8uaHRtbCcsCisgICAgICAgICdnbG9iYWx0b2MuaHRtbCcsCisgICAg
ICAgICdsaW5rcy5odG1sJywKKyAgICAgICAgJ3NvdXJjZWxpbmsuaHRtbCcsCisgICAgICAgICdz
ZWFyY2hib3guaHRtbCcKKyAgICBdLAorICAgICcqKic6IFsKKyAgICAgICAgJ2dsb2JhbHRvYy5o
dG1sJywKKyAgICAgICAgJ3JlbGF0aW9ucy5odG1sJywKKyAgICAgICAgJ2xpbmtzLmh0bWwnLAor
ICAgICAgICAnc291cmNlbGluay5odG1sJywKKyAgICAgICAgJ3NlYXJjaGJveC5odG1sJworICAg
IF0KK30KKworIyBBZGRpdGlvbmFsIHRlbXBsYXRlcyB0aGF0IHNob3VsZCBiZSByZW5kZXJlZCB0
byBwYWdlcywgbWFwcyBwYWdlIG5hbWVzIHRvCisjIHRlbXBsYXRlIG5hbWVzLgorI2h0bWxfYWRk
aXRpb25hbF9wYWdlcyA9IHt9CisjaHRtbF9hZGRpdGlvbmFsX3BhZ2VzID0geydpbmRleCc6ICdp
bmRleC5odG1sJ30KKworCisjIElmIGZhbHNlLCBubyBtb2R1bGUgaW5kZXggaXMgZ2VuZXJhdGVk
LgoraHRtbF9kb21haW5faW5kaWNlcyA9IFRydWUKKworIyBJZiBmYWxzZSwgbm8gaW5kZXggaXMg
Z2VuZXJhdGVkLgoraHRtbF91c2VfaW5kZXggPSBGYWxzZQorCisjIElmIHRydWUsIHRoZSBpbmRl
eCBpcyBzcGxpdCBpbnRvIGluZGl2aWR1YWwgcGFnZXMgZm9yIGVhY2ggbGV0dGVyLgorI2h0bWxf
c3BsaXRfaW5kZXggPSBGYWxzZQorCisjIElmIHRydWUsIGxpbmtzIHRvIHRoZSByZVNUIHNvdXJj
ZXMgYXJlIGFkZGVkIHRvIHRoZSBwYWdlcy4KK2h0bWxfc2hvd19zb3VyY2VsaW5rID0gRmFsc2UK
KworIyBJZiB0cnVlLCAiQ3JlYXRlZCB1c2luZyBTcGhpbngiIGlzIHNob3duIGluIHRoZSBIVE1M
IGZvb3Rlci4gRGVmYXVsdCBpcyBUcnVlLgorI2h0bWxfc2hvd19zcGhpbnggPSBUcnVlCisKKyMg
SWYgdHJ1ZSwgIihDKSBDb3B5cmlnaHQgLi4uIiBpcyBzaG93biBpbiB0aGUgSFRNTCBmb290ZXIu
IERlZmF1bHQgaXMgVHJ1ZS4KKyNodG1sX3Nob3dfY29weXJpZ2h0ID0gVHJ1ZQorCisjIElmIHRy
dWUsIGFuIE9wZW5TZWFyY2ggZGVzY3JpcHRpb24gZmlsZSB3aWxsIGJlIG91dHB1dCwgYW5kIGFs
bCBwYWdlcyB3aWxsCisjIGNvbnRhaW4gYSA8bGluaz4gdGFnIHJlZmVycmluZyB0byBpdC4gIFRo
ZSB2YWx1ZSBvZiB0aGlzIG9wdGlvbiBtdXN0IGJlIHRoZQorIyBiYXNlIFVSTCBmcm9tIHdoaWNo
IHRoZSBmaW5pc2hlZCBIVE1MIGlzIHNlcnZlZC4KKyNodG1sX3VzZV9vcGVuc2VhcmNoID0gJycK
KworIyBUaGlzIGlzIHRoZSBmaWxlIG5hbWUgc3VmZml4IGZvciBIVE1MIGZpbGVzIChlLmcuICIu
eGh0bWwiKS4KKyNodG1sX2ZpbGVfc3VmZml4ID0gTm9uZQorCisjIE91dHB1dCBmaWxlIGJhc2Ug
bmFtZSBmb3IgSFRNTCBoZWxwIGJ1aWxkZXIuCitodG1saGVscF9iYXNlbmFtZSA9ICdweXRlc3Rk
b2MnCisKKworIyAtLSBPcHRpb25zIGZvciBMYVRlWCBvdXRwdXQgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBUaGUgcGFwZXIgc2l6ZSAoJ2xl
dHRlcicgb3IgJ2E0JykuCisjbGF0ZXhfcGFwZXJfc2l6ZSA9ICdsZXR0ZXInCisKKyMgVGhlIGZv
bnQgc2l6ZSAoJzEwcHQnLCAnMTFwdCcgb3IgJzEycHQnKS4KKyNsYXRleF9mb250X3NpemUgPSAn
MTBwdCcKKworIyBHcm91cGluZyB0aGUgZG9jdW1lbnQgdHJlZSBpbnRvIExhVGVYIGZpbGVzLiBM
aXN0IG9mIHR1cGxlcworIyAoc291cmNlIHN0YXJ0IGZpbGUsIHRhcmdldCBuYW1lLCB0aXRsZSwg
YXV0aG9yLCBkb2N1bWVudGNsYXNzIFtob3d0by9tYW51YWxdKS4KK2xhdGV4X2RvY3VtZW50cyA9
IFsKKyAgKCdjb250ZW50cycsICdweXRlc3QudGV4JywgdSdweXRlc3QgRG9jdW1lbnRhdGlvbics
CisgICB1J2hvbGdlciBrcmVrZWwsIHRyYWluZXIgYW5kIGNvbnN1bHRhbnQsIGh0dHA6Ly9tZXJs
aW51eC5ldScsICdtYW51YWwnKSwKK10KKworIyBUaGUgbmFtZSBvZiBhbiBpbWFnZSBmaWxlIChy
ZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeSkgdG8gcGxhY2UgYXQgdGhlIHRvcCBvZgorIyB0aGUg
dGl0bGUgcGFnZS4KK2xhdGV4X2xvZ28gPSAnaW1nL3B5dGVzdDEucG5nJworCisjIEZvciAibWFu
dWFsIiBkb2N1bWVudHMsIGlmIHRoaXMgaXMgdHJ1ZSwgdGhlbiB0b3BsZXZlbCBoZWFkaW5ncyBh
cmUgcGFydHMsCisjIG5vdCBjaGFwdGVycy4KKyNsYXRleF91c2VfcGFydHMgPSBGYWxzZQorCisj
IElmIHRydWUsIHNob3cgcGFnZSByZWZlcmVuY2VzIGFmdGVyIGludGVybmFsIGxpbmtzLgorI2xh
dGV4X3Nob3dfcGFnZXJlZnMgPSBGYWxzZQorCisjIElmIHRydWUsIHNob3cgVVJMIGFkZHJlc3Nl
cyBhZnRlciBleHRlcm5hbCBsaW5rcy4KKyNsYXRleF9zaG93X3VybHMgPSBGYWxzZQorCisjIEFk
ZGl0aW9uYWwgc3R1ZmYgZm9yIHRoZSBMYVRlWCBwcmVhbWJsZS4KKyNsYXRleF9wcmVhbWJsZSA9
ICcnCisKKyMgRG9jdW1lbnRzIHRvIGFwcGVuZCBhcyBhbiBhcHBlbmRpeCB0byBhbGwgbWFudWFs
cy4KKyNsYXRleF9hcHBlbmRpY2VzID0gW10KKworIyBJZiBmYWxzZSwgbm8gbW9kdWxlIGluZGV4
IGlzIGdlbmVyYXRlZC4KK2xhdGV4X2RvbWFpbl9pbmRpY2VzID0gRmFsc2UKKworIyAtLSBPcHRp
b25zIGZvciBtYW51YWwgcGFnZSBvdXRwdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKworIyBPbmUgZW50cnkgcGVyIG1hbnVhbCBwYWdlLiBMaXN0IG9mIHR1
cGxlcworIyAoc291cmNlIHN0YXJ0IGZpbGUsIG5hbWUsIGRlc2NyaXB0aW9uLCBhdXRob3JzLCBt
YW51YWwgc2VjdGlvbikuCittYW5fcGFnZXMgPSBbCisgICAgKCd1c2FnZScsICdweXRlc3QnLCB1
J3B5dGVzdCB1c2FnZScsCisgICAgIFt1J2hvbGdlciBrcmVrZWwgYXQgbWVybGludXggZXUnXSwg
MSkKK10KKworCisjIC0tIE9wdGlvbnMgZm9yIEVwdWIgb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisjIEJpYmxpb2dyYXBoaWMgRHVi
bGluIENvcmUgaW5mby4KK2VwdWJfdGl0bGUgPSB1J3B5dGVzdCcKK2VwdWJfYXV0aG9yID0gdSdo
b2xnZXIga3Jla2VsIGF0IG1lcmxpbnV4IGV1JworZXB1Yl9wdWJsaXNoZXIgPSB1J2hvbGdlciBr
cmVrZWwgYXQgbWVybGludXggZXUnCitlcHViX2NvcHlyaWdodCA9IHUnMjAxMywgaG9sZ2VyIGty
ZWtlbCBldCBhbGlpJworCisjIFRoZSBsYW5ndWFnZSBvZiB0aGUgdGV4dC4gSXQgZGVmYXVsdHMg
dG8gdGhlIGxhbmd1YWdlIG9wdGlvbgorIyBvciBlbiBpZiB0aGUgbGFuZ3VhZ2UgaXMgbm90IHNl
dC4KKyNlcHViX2xhbmd1YWdlID0gJycKKworIyBUaGUgc2NoZW1lIG9mIHRoZSBpZGVudGlmaWVy
LiBUeXBpY2FsIHNjaGVtZXMgYXJlIElTQk4gb3IgVVJMLgorI2VwdWJfc2NoZW1lID0gJycKKwor
IyBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHRleHQuIFRoaXMgY2FuIGJlIGEgSVNCTiBu
dW1iZXIKKyMgb3IgdGhlIHByb2plY3QgaG9tZXBhZ2UuCisjZXB1Yl9pZGVudGlmaWVyID0gJycK
KworIyBBIHVuaXF1ZSBpZGVudGlmaWNhdGlvbiBmb3IgdGhlIHRleHQuCisjZXB1Yl91aWQgPSAn
JworCisjIEhUTUwgZmlsZXMgdGhhdCBzaG91bGQgYmUgaW5zZXJ0ZWQgYmVmb3JlIHRoZSBwYWdl
cyBjcmVhdGVkIGJ5IHNwaGlueC4KKyMgVGhlIGZvcm1hdCBpcyBhIGxpc3Qgb2YgdHVwbGVzIGNv
bnRhaW5pbmcgdGhlIHBhdGggYW5kIHRpdGxlLgorI2VwdWJfcHJlX2ZpbGVzID0gW10KKworIyBI
VE1MIGZpbGVzIHNoYXQgc2hvdWxkIGJlIGluc2VydGVkIGFmdGVyIHRoZSBwYWdlcyBjcmVhdGVk
IGJ5IHNwaGlueC4KKyMgVGhlIGZvcm1hdCBpcyBhIGxpc3Qgb2YgdHVwbGVzIGNvbnRhaW5pbmcg
dGhlIHBhdGggYW5kIHRpdGxlLgorI2VwdWJfcG9zdF9maWxlcyA9IFtdCisKKyMgQSBsaXN0IG9m
IGZpbGVzIHRoYXQgc2hvdWxkIG5vdCBiZSBwYWNrZWQgaW50byB0aGUgZXB1YiBmaWxlLgorI2Vw
dWJfZXhjbHVkZV9maWxlcyA9IFtdCisKKyMgVGhlIGRlcHRoIG9mIHRoZSB0YWJsZSBvZiBjb250
ZW50cyBpbiB0b2MubmN4LgorI2VwdWJfdG9jZGVwdGggPSAzCisKKyMgQWxsb3cgZHVwbGljYXRl
IHRvYyBlbnRyaWVzLgorI2VwdWJfdG9jZHVwID0gVHJ1ZQorCisKKyMgLS0gT3B0aW9ucyBmb3Ig
dGV4aW5mbyBvdXRwdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKK3RleGluZm9fZG9jdW1lbnRzID0gWworICAobWFzdGVyX2RvYywgJ3B5dGVzdCcs
ICdweXRlc3QgRG9jdW1lbnRhdGlvbicsCisgICAoJ0hvbGdlciBLcmVrZWxAKkJlbmphbWluIFBl
dGVyc29uQCpSb25ueSBQZmFubnNjaG1pZHRAKicKKyAgICAnRmxvcmlzIEJydXlub29naGVAKm90
aGVycycpLAorICAgJ3B5dGVzdCcsCisgICAnc2ltcGxlIHBvd2VyZnVsIHRlc3Rpbmcgd2l0aCBQ
eXRob24nLAorICAgJ1Byb2dyYW1taW5nJywKKyAgIDEpLAorXQorCisKKyMgRXhhbXBsZSBjb25m
aWd1cmF0aW9uIGZvciBpbnRlcnNwaGlueDogcmVmZXIgdG8gdGhlIFB5dGhvbiBzdGFuZGFyZCBs
aWJyYXJ5LgoraW50ZXJzcGhpbnhfbWFwcGluZyA9IHsncHl0aG9uJzogKCdodHRwOi8vZG9jcy5w
eXRob24ub3JnLycsIE5vbmUpLAorIyAgICAgICAgICAgICAgICAgICAgICAgJ2xpYic6ICgiaHR0
cDovL2RvY3MucHl0aG9uLm9yZy8yLjdsaWJyYXJ5LyIsIE5vbmUpLAorICAgICAgICAgICAgICAg
ICAgICB9CisKKworZGVmIHNldHVwKGFwcCk6CisgICAgI2Zyb20gc3BoaW54LmV4dC5hdXRvZG9j
IGltcG9ydCBjdXRfbGluZXMKKyAgICAjYXBwLmNvbm5lY3QoJ2F1dG9kb2MtcHJvY2Vzcy1kb2Nz
dHJpbmcnLCBjdXRfbGluZXMoNCwgd2hhdD1bJ21vZHVsZSddKSkKKyAgICBhcHAuYWRkX2Rlc2Ny
aXB0aW9uX3VuaXQoJ2NvbmZ2YWwnLCAnY29uZnZhbCcsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG9iam5hbWU9J2NvbmZpZ3VyYXRpb24gdmFsdWUnLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbmRleHRlbXBsYXRlPSdwYWlyOiAlczsgY29uZmlndXJhdGlvbiB2YWx1ZScp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY29uZnRlc3QucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vY29uZnRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWE2MmUxYjVkZjUzNTAzZThlMzNlNWUx
MDU5NWMzYjUxYjVjODYxMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9j
b25mdGVzdC5weQpAQCAtMCwwICsxIEBACitjb2xsZWN0X2lnbm9yZSA9IFsiY29uZi5weSJdCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY29udGFjdC5yc3QgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vY29udGFjdC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODNkNDk2NjQwZDVlYmU3MmMzNWIwYjMwODU0
OGRhYzdiYTIwYWJiYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jb250
YWN0LnJzdApAQCAtMCwwICsxLDUwIEBACisKKy4uIF9gY29udGFjdCBjaGFubmVsc2A6CisuLiBf
YGNvbnRhY3RgOgorCitDb250YWN0IGNoYW5uZWxzCis9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQorCistIGBweXRlc3QgaXNzdWUgdHJhY2tlcmBfIHRvIHJlcG9ydCBidWdzIG9y
IHN1Z2dlc3QgZmVhdHVyZXMgKGZvciB2ZXJzaW9uCisgIDIuMCBhbmQgYWJvdmUpLgorCistIGBw
eXRlc3Qgb24gc3RhY2tvdmVyZmxvdy5jb20gPGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9zZWFy
Y2g/cT1weXRlc3Q+YF8gCisgIHRvIHBvc3QgcXVlc3Rpb25zIHdpdGggdGhlIHRhZyBgYHB5dGVz
dGBgLiAgTmV3IFF1ZXN0aW9ucyB3aWxsIHVzdWFsbHkgCisgIGJlIHNlZW4gYnkgcHl0ZXN0IHVz
ZXJzIG9yIGRldmVsb3BlcnMgYW5kIGFuc3dlcmVkIHF1aWNrbHkuIAorCistIGBUZXN0aW5nIElu
IFB5dGhvbmBfOiBhIG1haWxpbmcgbGlzdCBmb3IgUHl0aG9uIHRlc3RpbmcgdG9vbHMgYW5kIGRp
c2N1c3Npb24uCisKKy0gYHB5dGVzdC1kZXYgYXQgcHl0aG9uLm9yZyAobWFpbGluZyBsaXN0KWBf
IHB5dGVzdCBzcGVjaWZpYyBhbm5vdW5jZW1lbnRzIGFuZCBkaXNjdXNzaW9ucy4KKworLSBgcHl0
ZXN0LWNvbW1pdCBhdCBweXRob24ub3JnIChtYWlsaW5nIGxpc3QpYF86IGZvciBjb21taXRzIGFu
ZCBuZXcgaXNzdWVzCisKKy0gOmRvYzpgY29udHJpYnV0aW9uIGd1aWRlIDxjb250cmlidXRpbmc+
YCBmb3IgaGVscCBvbiBzdWJtaXR0aW5nIHB1bGwKKyAgcmVxdWVzdHMgdG8gR2l0SHViLgorCist
IGBgI3B5bGliYGAgb24gaXJjLmZyZWVub2RlLm5ldCBJUkMgY2hhbm5lbCBmb3IgcmFuZG9tIHF1
ZXN0aW9ucy4KKworLSBwcml2YXRlIG1haWwgdG8gSG9sZ2VyLktyZWtlbCBhdCBnbWFpbCBjb20g
aWYgeW91IHdhbnQgdG8gY29tbXVuaWNhdGUgc2Vuc2l0aXZlIGlzc3VlcworCisKKy0gYG1lcmxp
bnV4LmV1YF8gb2ZmZXJzIHB5dGVzdCBhbmQgdG94LXJlbGF0ZWQgcHJvZmVzc2lvbmFsIHRlYWNo
aW5nIGFuZAorICBjb25zdWx0aW5nLgorCisuLiBfYHB5dGVzdCBpc3N1ZSB0cmFja2VyYDogaHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3VlcworLi4gX2BvbGQgaXNzdWUg
dHJhY2tlcmA6IGh0dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5LXRydW5rL2lzc3Vlcy8KKwor
Li4gX2BtZXJsaW51eC5ldWA6IGh0dHA6Ly9tZXJsaW51eC5ldQorCisuLiBfYGdldCBhbiBhY2Nv
dW50YDoKKworLi4gX3RldGFtYXA6IGh0dHA6Ly90ZXRhbWFwLndvcmRwcmVzcy5jb20KKworLi4g
X2BAcHlsaWJjb21taXRgOiBodHRwOi8vdHdpdHRlci5jb20vcHlsaWJjb21taXQKKworCisuLiBf
YFRlc3RpbmcgaW4gUHl0aG9uYDogaHR0cDovL2xpc3RzLmlkeWxsLm9yZy9saXN0aW5mby90ZXN0
aW5nLWluLXB5dGhvbgorLi4gX0ZPQUY6IGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRk9B
RgorLi4gX2BweS1kZXZgOgorLi4gX2BkZXZlbG9wbWVudCBtYWlsaW5nIGxpc3RgOgorLi4gX2Bw
eXRlc3QtZGV2IGF0IHB5dGhvbi5vcmcgKG1haWxpbmcgbGlzdClgOiBodHRwOi8vbWFpbC5weXRo
b24ub3JnL21haWxtYW4vbGlzdGluZm8vcHl0ZXN0LWRldgorLi4gX2BweXRlc3QtY29tbWl0IGF0
IHB5dGhvbi5vcmcgKG1haWxpbmcgbGlzdClgOiBodHRwOi8vbWFpbC5weXRob24ub3JnL21haWxt
YW4vbGlzdGluZm8vcHl0ZXN0LWNvbW1pdAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vY29udGVudHMucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NvbnRlbnRzLnJzdApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43YTY1NzBlMGJjNWI5MjRlMzQyODIxYWViMTZjNmUyMjlmZWFhYzk5Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NvbnRlbnRzLnJzdApAQCAtMCwwICsxLDY1IEBA
CisuLiBfdG9jOgorCitGdWxsIHB5dGVzdCBkb2N1bWVudGF0aW9uCis9PT09PT09PT09PT09PT09
PT09PT09PT09PT0KKworYERvd25sb2FkIGxhdGVzdCB2ZXJzaW9uIGFzIFBERiA8aHR0cHM6Ly9t
ZWRpYS5yZWFkdGhlZG9jcy5vcmcvcGRmL3B5dGVzdC9sYXRlc3QvcHl0ZXN0LnBkZj5gXworCisu
LiBgRG93bmxvYWQgbGF0ZXN0IHZlcnNpb24gYXMgRVBVQiA8aHR0cDovL21lZGlhLnJlYWR0aGVk
b2NzLm9yZy9lcHViL3B5dGVzdC9sYXRlc3QvcHl0ZXN0LmVwdWI+YF8KKworLi4gdG9jdHJlZTo6
CisgICA6bWF4ZGVwdGg6IDIKKworICAgZ2V0dGluZy1zdGFydGVkCisgICB1c2FnZQorICAgZXhp
c3Rpbmd0ZXN0c3VpdGUKKyAgIGFzc2VydAorICAgYnVpbHRpbgorICAgZml4dHVyZQorICAgbW9u
a2V5cGF0Y2gKKyAgIHRtcGRpcgorICAgY2FwdHVyZQorICAgd2FybmluZ3MKKyAgIGRvY3Rlc3QK
KyAgIG1hcmsKKyAgIHNraXBwaW5nCisgICBwYXJhbWV0cml6ZQorICAgY2FjaGUKKyAgIHVuaXR0
ZXN0CisgICBub3NlCisgICB4dW5pdF9zZXR1cAorICAgcGx1Z2lucworICAgd3JpdGluZ19wbHVn
aW5zCisgICBsb2dnaW5nCisKKyAgIGdvb2RwcmFjdGljZXMKKyAgIHB5dGhvbnBhdGgKKyAgIGN1
c3RvbWl6ZQorICAgZXhhbXBsZS9pbmRleAorICAgYmFzaC1jb21wbGV0aW9uCisKKyAgIGJhY2t3
YXJkcy1jb21wYXRpYmlsaXR5CisgICBoaXN0b3JpY2FsLW5vdGVzCisgICBsaWNlbnNlCisgICBj
b250cmlidXRpbmcKKyAgIGRldmVsb3BtZW50X2d1aWRlCisgICB0YWxrcworICAgcHJvamVjdHMK
KyAgIGZhcQorICAgY29udGFjdAorCisuLiBvbmx5OjogaHRtbAorCisgICAuLiB0b2N0cmVlOjoK
KyAgICAgIDptYXhkZXB0aDogMQorCisgICAgICBhbm5vdW5jZS9pbmRleAorCisuLiBvbmx5Ojog
aHRtbAorCisgICAuLiB0b2N0cmVlOjoKKyAgICAgIDpoaWRkZW46CisgICAgICA6bWF4ZGVwdGg6
IDEKKworICAgICAgY2hhbmdlbG9nCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9j
b250cmlidXRpbmcucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NvbnRyaWJ1dGluZy5yc3QKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMmI2NTc4ZjZiOTc4ODMzNjM2NDk2OGI4YzNiNmJmNGM1ZmNiZTRkMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jb250cmlidXRpbmcucnN0CkBAIC0wLDAg
KzEsMyBAQAorLi4gX2NvbnRyaWJ1dGluZzoKKworLi4gaW5jbHVkZTo6IC4uLy4uL0NPTlRSSUJV
VElORy5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jdXN0b21pemUucnN0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2N1c3RvbWl6ZS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODEzMzcwNGE1MmMy
ZTcxYzQzOWU5OGMzYjMxOTJhNGIzZmQ3YzVmMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9jdXN0b21pemUucnN0CkBAIC0wLDAgKzEsMzMzIEBACitDb25maWd1cmF0aW9u
Cis9PT09PT09PT09PT09CisKK0NvbW1hbmQgbGluZSBvcHRpb25zIGFuZCBjb25maWd1cmF0aW9u
IGZpbGUgc2V0dGluZ3MKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1lvdSBjYW4gZ2V0IGhlbHAgb24gY29tbWFuZCBs
aW5lIG9wdGlvbnMgYW5kIHZhbHVlcyBpbiBJTkktc3R5bGUKK2NvbmZpZ3VyYXRpb25zIGZpbGVz
IGJ5IHVzaW5nIHRoZSBnZW5lcmFsIGhlbHAgb3B0aW9uOjoKKworICAgIHB5dGVzdCAtaCAgICMg
cHJpbnRzIG9wdGlvbnMgX2FuZF8gY29uZmlnIGZpbGUgc2V0dGluZ3MKKworVGhpcyB3aWxsIGRp
c3BsYXkgY29tbWFuZCBsaW5lIGFuZCBjb25maWd1cmF0aW9uIGZpbGUgc2V0dGluZ3MKK3doaWNo
IHdlcmUgcmVnaXN0ZXJlZCBieSBpbnN0YWxsZWQgcGx1Z2lucy4KKworLi4gX3Jvb3RkaXI6Cisu
LiBfaW5pZmlsZXM6CisKK0luaXRpYWxpemF0aW9uOiBkZXRlcm1pbmluZyByb290ZGlyIGFuZCBp
bmlmaWxlCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CisuLiB2ZXJzaW9uYWRkZWQ6OiAyLjcKKworcHl0ZXN0IGRldGVybWluZXMgYSBgYHJvb3RkaXJg
YCBmb3IgZWFjaCB0ZXN0IHJ1biB3aGljaCBkZXBlbmRzIG9uCit0aGUgY29tbWFuZCBsaW5lIGFy
Z3VtZW50cyAoc3BlY2lmaWVkIHRlc3QgZmlsZXMsIHBhdGhzKSBhbmQgb24KK3RoZSBleGlzdGVu
Y2Ugb2YgKmluaS1maWxlcyouICBUaGUgZGV0ZXJtaW5lZCBgYHJvb3RkaXJgYCBhbmQgKmluaS1m
aWxlKiBhcmUKK3ByaW50ZWQgYXMgcGFydCBvZiB0aGUgcHl0ZXN0IGhlYWRlciBkdXJpbmcgc3Rh
cnR1cC4KKworSGVyZSdzIGEgc3VtbWFyeSB3aGF0IGBgcHl0ZXN0YGAgdXNlcyBgYHJvb3RkaXJg
YCBmb3I6CisKKyogQ29uc3RydWN0ICpub2RlaWRzKiBkdXJpbmcgY29sbGVjdGlvbjsgZWFjaCB0
ZXN0IGlzIGFzc2lnbmVkCisgIGEgdW5pcXVlICpub2RlaWQqIHdoaWNoIGlzIHJvb3RlZCBhdCB0
aGUgYGByb290ZGlyYGAgYW5kIHRha2VzIGluIGFjY291bnQgZnVsbCBwYXRoLAorICBjbGFzcyBu
YW1lLCBmdW5jdGlvbiBuYW1lIGFuZCBwYXJhbWV0cml6YXRpb24gKGlmIGFueSkuCisKKyogSXMg
dXNlZCBieSBwbHVnaW5zIGFzIGEgc3RhYmxlIGxvY2F0aW9uIHRvIHN0b3JlIHByb2plY3QvdGVz
dCBydW4gc3BlY2lmaWMgaW5mb3JtYXRpb247CisgIGZvciBleGFtcGxlLCB0aGUgaW50ZXJuYWwg
OnJlZjpgY2FjaGUgPGNhY2hlPmAgcGx1Z2luIGNyZWF0ZXMgYSBgYC5jYWNoZWBgIHN1YmRpcmVj
dG9yeQorICBpbiBgYHJvb3RkaXJgYCB0byBzdG9yZSBpdHMgY3Jvc3MtdGVzdCBydW4gc3RhdGUu
CisKK0ltcG9ydGFudCB0byBlbXBoYXNpemUgdGhhdCBgYHJvb3RkaXJgYCBpcyAqKk5PVCoqIHVz
ZWQgdG8gbW9kaWZ5IGBgc3lzLnBhdGhgYC9gYFBZVEhPTlBBVEhgYCBvcgoraW5mbHVlbmNlIGhv
dyBtb2R1bGVzIGFyZSBpbXBvcnRlZC4gU2VlIDpyZWY6YHB5dGhvbnBhdGhgIGZvciBtb3JlIGRl
dGFpbHMuCisKK0ZpbmRpbmcgdGhlIGBgcm9vdGRpcmBgCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+
fgorCitIZXJlIGlzIHRoZSBhbGdvcml0aG0gd2hpY2ggZmluZHMgdGhlIHJvb3RkaXIgZnJvbSBg
YGFyZ3NgYDoKKworLSBkZXRlcm1pbmUgdGhlIGNvbW1vbiBhbmNlc3RvciBkaXJlY3RvcnkgZm9y
IHRoZSBzcGVjaWZpZWQgYGBhcmdzYGAgdGhhdCBhcmUKKyAgcmVjb2duaXNlZCBhcyBwYXRocyB0
aGF0IGV4aXN0IGluIHRoZSBmaWxlIHN5c3RlbS4gSWYgbm8gc3VjaCBwYXRocyBhcmUKKyAgZm91
bmQsIHRoZSBjb21tb24gYW5jZXN0b3IgZGlyZWN0b3J5IGlzIHNldCB0byB0aGUgY3VycmVudCB3
b3JraW5nIGRpcmVjdG9yeS4KKworLSBsb29rIGZvciBgYHB5dGVzdC5pbmlgYCwgYGB0b3guaW5p
YGAgYW5kIGBgc2V0dXAuY2ZnYGAgZmlsZXMgaW4gdGhlIGFuY2VzdG9yCisgIGRpcmVjdG9yeSBh
bmQgdXB3YXJkcy4gIElmIG9uZSBpcyBtYXRjaGVkLCBpdCBiZWNvbWVzIHRoZSBpbmktZmlsZSBh
bmQgaXRzCisgIGRpcmVjdG9yeSBiZWNvbWVzIHRoZSByb290ZGlyLgorCistIGlmIG5vIGluaS1m
aWxlIHdhcyBmb3VuZCwgbG9vayBmb3IgYGBzZXR1cC5weWBgIHVwd2FyZHMgZnJvbSB0aGUgY29t
bW9uCisgIGFuY2VzdG9yIGRpcmVjdG9yeSB0byBkZXRlcm1pbmUgdGhlIGBgcm9vdGRpcmBgLgor
CistIGlmIG5vIGBgc2V0dXAucHlgYCB3YXMgZm91bmQsIGxvb2sgZm9yIGBgcHl0ZXN0LmluaWBg
LCBgYHRveC5pbmlgYCBhbmQKKyAgYGBzZXR1cC5jZmdgYCBpbiBlYWNoIG9mIHRoZSBzcGVjaWZp
ZWQgYGBhcmdzYGAgYW5kIHVwd2FyZHMuIElmIG9uZSBpcworICBtYXRjaGVkLCBpdCBiZWNvbWVz
IHRoZSBpbmktZmlsZSBhbmQgaXRzIGRpcmVjdG9yeSBiZWNvbWVzIHRoZSByb290ZGlyLgorCist
IGlmIG5vIGluaS1maWxlIHdhcyBmb3VuZCwgdXNlIHRoZSBhbHJlYWR5IGRldGVybWluZWQgY29t
bW9uIGFuY2VzdG9yIGFzIHJvb3QKKyAgZGlyZWN0b3J5LiBUaGlzIGFsbG93cyB0aGUgdXNlIG9m
IHB5dGVzdCBpbiBzdHJ1Y3R1cmVzIHRoYXQgYXJlIG5vdCBwYXJ0IG9mCisgIGEgcGFja2FnZSBh
bmQgZG9uJ3QgaGF2ZSBhbnkgcGFydGljdWxhciBpbmktZmlsZSBjb25maWd1cmF0aW9uLgorCitJ
ZiBubyBgYGFyZ3NgYCBhcmUgZ2l2ZW4sIHB5dGVzdCBjb2xsZWN0cyB0ZXN0IGJlbG93IHRoZSBj
dXJyZW50IHdvcmtpbmcKK2RpcmVjdG9yeSBhbmQgYWxzbyBzdGFydHMgZGV0ZXJtaW5pbmcgdGhl
IHJvb3RkaXIgZnJvbSB0aGVyZS4KKworOndhcm5pbmc6IGN1c3RvbSBweXRlc3QgcGx1Z2luIGNv
bW1hbmRsaW5lIGFyZ3VtZW50cyBtYXkgaW5jbHVkZSBhIHBhdGgsIGFzIGluCisgICAgYGBweXRl
c3QgLS1sb2ctb3V0cHV0IC4uLy4uL3Rlc3QubG9nIGFyZ3NgYC4gVGhlbiBgYGFyZ3NgYCBpcyBt
YW5kYXRvcnksCisgICAgb3RoZXJ3aXNlIHB5dGVzdCB1c2VzIHRoZSBmb2xkZXIgb2YgdGVzdC5s
b2cgZm9yIHJvb3RkaXIgZGV0ZXJtaW5hdGlvbgorICAgIChzZWUgYWxzbyBgaXNzdWUgMTQzNSA8
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xNDM1PmBfKS4KKyAg
ICBBIGRvdCBgYC5gYCBmb3IgcmVmZXJlbmNpbmcgdG8gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJl
Y3RvcnkgaXMgYWxzbworICAgIHBvc3NpYmxlLgorCitOb3RlIHRoYXQgYW4gZXhpc3RpbmcgYGBw
eXRlc3QuaW5pYGAgZmlsZSB3aWxsIGFsd2F5cyBiZSBjb25zaWRlcmVkIGEgbWF0Y2gsCit3aGVy
ZWFzIGBgdG94LmluaWBgIGFuZCBgYHNldHVwLmNmZ2BgIHdpbGwgb25seSBtYXRjaCBpZiB0aGV5
IGNvbnRhaW4gYQorYGBbcHl0ZXN0XWBgIG9yIGBgW3Rvb2w6cHl0ZXN0XWBgIHNlY3Rpb24sIHJl
c3BlY3RpdmVseS4gT3B0aW9ucyBmcm9tIG11bHRpcGxlIGluaS1maWxlcyBjYW5kaWRhdGVzIGFy
ZSBuZXZlcgorbWVyZ2VkIC0gdGhlIGZpcnN0IG9uZSB3aW5zIChgYHB5dGVzdC5pbmlgYCBhbHdh
eXMgd2lucywgZXZlbiBpZiBpdCBkb2VzIG5vdAorY29udGFpbiBhIGBgW3B5dGVzdF1gYCBzZWN0
aW9uKS4KKworVGhlIGBgY29uZmlnYGAgb2JqZWN0IHdpbGwgc3Vic2VxdWVudGx5IGNhcnJ5IHRo
ZXNlIGF0dHJpYnV0ZXM6CisKKy0gYGBjb25maWcucm9vdGRpcmBgOiB0aGUgZGV0ZXJtaW5lZCBy
b290IGRpcmVjdG9yeSwgZ3VhcmFudGVlZCB0byBleGlzdC4KKworLSBgYGNvbmZpZy5pbmlmaWxl
YGA6IHRoZSBkZXRlcm1pbmVkIGluaS1maWxlLCBtYXkgYmUgYGBOb25lYGAuCisKK1RoZSByb290
ZGlyIGlzIHVzZWQgYSByZWZlcmVuY2UgZGlyZWN0b3J5IGZvciBjb25zdHJ1Y3RpbmcgdGVzdAor
YWRkcmVzc2VzICgibm9kZWlkcyIpIGFuZCBjYW4gYmUgdXNlZCBhbHNvIGJ5IHBsdWdpbnMgZm9y
IHN0b3JpbmcKK3Blci10ZXN0cnVuIGluZm9ybWF0aW9uLgorCitFeGFtcGxlOjoKKworICAgIHB5
dGVzdCBwYXRoL3RvL3Rlc3RkaXIgcGF0aC9vdGhlci8KKword2lsbCBkZXRlcm1pbmUgdGhlIGNv
bW1vbiBhbmNlc3RvciBhcyBgYHBhdGhgYCBhbmQgdGhlbgorY2hlY2sgZm9yIGluaS1maWxlcyBh
cyBmb2xsb3dzOjoKKworICAgICMgZmlyc3QgbG9vayBmb3IgcHl0ZXN0LmluaSBmaWxlcworICAg
IHBhdGgvcHl0ZXN0LmluaQorICAgIHBhdGgvc2V0dXAuY2ZnICAjIG11c3QgYWxzbyBjb250YWlu
IFt0b29sOnB5dGVzdF0gc2VjdGlvbiB0byBtYXRjaAorICAgIHBhdGgvdG94LmluaSAgICAjIG11
c3QgYWxzbyBjb250YWluIFtweXRlc3RdIHNlY3Rpb24gdG8gbWF0Y2gKKyAgICBweXRlc3QuaW5p
CisgICAgLi4uICMgYWxsIHRoZSB3YXkgZG93biB0byB0aGUgcm9vdAorCisgICAgIyBub3cgbG9v
ayBmb3Igc2V0dXAucHkKKyAgICBwYXRoL3NldHVwLnB5CisgICAgc2V0dXAucHkKKyAgICAuLi4g
IyBhbGwgdGhlIHdheSBkb3duIHRvIHRoZSByb290CisKKworLi4gX2Bob3cgdG8gY2hhbmdlIGNv
bW1hbmQgbGluZSBvcHRpb25zIGRlZmF1bHRzYDoKKy4uIF9gYWRkaW5nIGRlZmF1bHQgb3B0aW9u
c2A6CisKKworCitIb3cgdG8gY2hhbmdlIGNvbW1hbmQgbGluZSBvcHRpb25zIGRlZmF1bHRzCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworSXQgY2Fu
IGJlIHRlZGlvdXMgdG8gdHlwZSB0aGUgc2FtZSBzZXJpZXMgb2YgY29tbWFuZCBsaW5lIG9wdGlv
bnMKK2V2ZXJ5IHRpbWUgeW91IHVzZSBgYHB5dGVzdGBgLiAgRm9yIGV4YW1wbGUsIGlmIHlvdSBh
bHdheXMgd2FudCB0byBzZWUKK2RldGFpbGVkIGluZm8gb24gc2tpcHBlZCBhbmQgeGZhaWxlZCB0
ZXN0cywgYXMgd2VsbCBhcyBoYXZlIHRlcnNlciAiZG90IgorcHJvZ3Jlc3Mgb3V0cHV0LCB5b3Ug
Y2FuIHdyaXRlIGl0IGludG8gYSBjb25maWd1cmF0aW9uIGZpbGU6CisKKy4uIGNvZGUtYmxvY2s6
OiBpbmkKKworICAgICMgY29udGVudCBvZiBweXRlc3QuaW5pCisgICAgIyAob3IgdG94LmluaSBv
ciBzZXR1cC5jZmcpCisgICAgW3B5dGVzdF0KKyAgICBhZGRvcHRzID0gLXJhIC1xCisKK0FsdGVy
bmF0aXZlbHksIHlvdSBjYW4gc2V0IGEgYGBQWVRFU1RfQURET1BUU2BgIGVudmlyb25tZW50IHZh
cmlhYmxlIHRvIGFkZCBjb21tYW5kCitsaW5lIG9wdGlvbnMgd2hpbGUgdGhlIGVudmlyb25tZW50
IGlzIGluIHVzZTo6CisKKyAgICBleHBvcnQgUFlURVNUX0FERE9QVFM9Ii12IgorCitIZXJlJ3Mg
aG93IHRoZSBjb21tYW5kLWxpbmUgaXMgYnVpbHQgaW4gdGhlIHByZXNlbmNlIG9mIGBgYWRkb3B0
c2BgIG9yIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZTo6CisKKyAgICA8cHl0ZXN0LmluaTphZGRv
cHRzPiAkUFlURVNUX0FERE9UUFMgPGV4dHJhIGNvbW1hbmQtbGluZSBhcmd1bWVudHM+CisKK1Nv
IGlmIHRoZSB1c2VyIGV4ZWN1dGVzIGluIHRoZSBjb21tYW5kLWxpbmU6OgorCisgICAgcHl0ZXN0
IC1tIHNsb3cKKworVGhlIGFjdHVhbCBjb21tYW5kIGxpbmUgZXhlY3V0ZWQgaXM6OgorCisgICAg
cHl0ZXN0IC1yYSAtcSAtdiAtbSBzbG93CisKK05vdGUgdGhhdCBhcyB1c3VhbCBmb3Igb3RoZXIg
Y29tbWFuZC1saW5lIGFwcGxpY2F0aW9ucywgaW4gY2FzZSBvZiBjb25mbGljdGluZyBvcHRpb25z
IHRoZSBsYXN0IG9uZSB3aW5zLCBzbyB0aGUgZXhhbXBsZQorYWJvdmUgd2lsbCBzaG93IHZlcmJv
c2Ugb3V0cHV0IGJlY2F1c2UgYGAtdmBgIG92ZXJ3cml0ZXMgYGAtcWBgLgorCisKK0J1aWx0aW4g
Y29uZmlndXJhdGlvbiBmaWxlIG9wdGlvbnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKworLi4gY29uZnZhbDo6IG1pbnZlcnNpb24KKworICAgU3BlY2lm
aWVzIGEgbWluaW1hbCBweXRlc3QgdmVyc2lvbiByZXF1aXJlZCBmb3IgcnVubmluZyB0ZXN0cy4K
KworICAgICAgICBtaW52ZXJzaW9uID0gMi4xICAjIHdpbGwgZmFpbCBpZiB3ZSBydW4gd2l0aCBw
eXRlc3QtMi4wCisKKy4uIGNvbmZ2YWw6OiBhZGRvcHRzCisKKyAgIEFkZCB0aGUgc3BlY2lmaWVk
IGBgT1BUU2BgIHRvIHRoZSBzZXQgb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyBhcyBpZiB0aGV5
CisgICBoYWQgYmVlbiBzcGVjaWZpZWQgYnkgdGhlIHVzZXIuIEV4YW1wbGU6IGlmIHlvdSBoYXZl
IHRoaXMgaW5pIGZpbGUgY29udGVudDoKKworICAgLi4gY29kZS1ibG9jazo6IGluaQorCisgICAg
ICAgIFtweXRlc3RdCisgICAgICAgIGFkZG9wdHMgPSAtLW1heGZhaWw9MiAtcmYgICMgZXhpdCBh
ZnRlciAyIGZhaWx1cmVzLCByZXBvcnQgZmFpbCBpbmZvCisKKyAgIGlzc3VpbmcgYGBweXRlc3Qg
dGVzdF9oZWxsby5weWBgIGFjdHVhbGx5IG1lYW5zOjoKKworICAgICAgICBweXRlc3QgLS1tYXhm
YWlsPTIgLXJmIHRlc3RfaGVsbG8ucHkKKworICAgRGVmYXVsdCBpcyB0byBhZGQgbm8gb3B0aW9u
cy4KKworLi4gY29uZnZhbDo6IG5vcmVjdXJzZWRpcnMKKworICAgU2V0IHRoZSBkaXJlY3Rvcnkg
YmFzZW5hbWUgcGF0dGVybnMgdG8gYXZvaWQgd2hlbiByZWN1cnNpbmcKKyAgIGZvciB0ZXN0IGRp
c2NvdmVyeS4gIFRoZSBpbmRpdmlkdWFsIChmbm1hdGNoLXN0eWxlKSBwYXR0ZXJucyBhcmUKKyAg
IGFwcGxpZWQgdG8gdGhlIGJhc2VuYW1lIG9mIGEgZGlyZWN0b3J5IHRvIGRlY2lkZSBpZiB0byBy
ZWN1cnNlIGludG8gaXQuCisgICBQYXR0ZXJuIG1hdGNoaW5nIGNoYXJhY3RlcnM6OgorCisgICAg
ICAgICogICAgICAgbWF0Y2hlcyBldmVyeXRoaW5nCisgICAgICAgID8gICAgICAgbWF0Y2hlcyBh
bnkgc2luZ2xlIGNoYXJhY3RlcgorICAgICAgICBbc2VxXSAgIG1hdGNoZXMgYW55IGNoYXJhY3Rl
ciBpbiBzZXEKKyAgICAgICAgWyFzZXFdICBtYXRjaGVzIGFueSBjaGFyIG5vdCBpbiBzZXEKKwor
ICAgRGVmYXVsdCBwYXR0ZXJucyBhcmUgYGAnLionLCAnYnVpbGQnLCAnZGlzdCcsICdDVlMnLCAn
X2RhcmNzJywgJ3thcmNofScsICcqLmVnZycsICd2ZW52J2BgLgorICAgU2V0dGluZyBhIGBgbm9y
ZWN1cnNlZGlyc2BgIHJlcGxhY2VzIHRoZSBkZWZhdWx0LiAgSGVyZSBpcyBhbiBleGFtcGxlIG9m
CisgICBob3cgdG8gYXZvaWQgY2VydGFpbiBkaXJlY3RvcmllczoKKworICAgLi4gY29kZS1ibG9j
azo6IGluaQorCisgICAgICAgICMgY29udGVudCBvZiBweXRlc3QuaW5pCisgICAgICAgIFtweXRl
c3RdCisgICAgICAgIG5vcmVjdXJzZWRpcnMgPSAuc3ZuIF9idWlsZCB0bXAqCisKKyAgIFRoaXMg
d291bGQgdGVsbCBgYHB5dGVzdGBgIHRvIG5vdCBsb29rIGludG8gdHlwaWNhbCBzdWJ2ZXJzaW9u
IG9yCisgICBzcGhpbngtYnVpbGQgZGlyZWN0b3JpZXMgb3IgaW50byBhbnkgYGB0bXBgYCBwcmVm
aXhlZCBkaXJlY3RvcnkuICAKKyAgIAorICAgQWRkaXRpb25hbGx5LCBgYHB5dGVzdGBgIHdpbGwg
YXR0ZW1wdCB0byBpbnRlbGxpZ2VudGx5IGlkZW50aWZ5IGFuZCBpZ25vcmUgYQorICAgdmlydHVh
bGVudiBieSB0aGUgcHJlc2VuY2Ugb2YgYW4gYWN0aXZhdGlvbiBzY3JpcHQuICBBbnkgZGlyZWN0
b3J5IGRlZW1lZCB0bworICAgYmUgdGhlIHJvb3Qgb2YgYSB2aXJ0dWFsIGVudmlyb25tZW50IHdp
bGwgbm90IGJlIGNvbnNpZGVyZWQgZHVyaW5nIHRlc3QKKyAgIGNvbGxlY3Rpb24gdW5sZXNzIGBg
4oCR4oCRY29sbGVjdOKAkWlu4oCRdmlydHVhbGVudmBgIGlzIGdpdmVuLiAgTm90ZSBhbHNvIHRo
YXQKKyAgIGBgbm9yZWN1cnNlZGlyc2BgIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBgYOKAkeKAkWNv
bGxlY3TigJFpbuKAkXZpcnR1YWxlbnZgYDsgZS5nLiBpZgorICAgeW91IGludGVuZCB0byBydW4g
dGVzdHMgaW4gYSB2aXJ0dWFsZW52IHdpdGggYSBiYXNlIGRpcmVjdG9yeSB0aGF0IG1hdGNoZXMK
KyAgIGBgJy4qJ2BgIHlvdSAqbXVzdCogb3ZlcnJpZGUgYGBub3JlY3Vyc2VkaXJzYGAgaW4gYWRk
aXRpb24gdG8gdXNpbmcgdGhlCisgICBgYOKAkeKAkWNvbGxlY3TigJFpbuKAkXZpcnR1YWxlbnZg
YCBmbGFnLgorCisuLiBjb25mdmFsOjogdGVzdHBhdGhzCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6
IDIuOAorCisgICBTZXRzIGxpc3Qgb2YgZGlyZWN0b3JpZXMgdGhhdCBzaG91bGQgYmUgc2VhcmNo
ZWQgZm9yIHRlc3RzIHdoZW4KKyAgIG5vIHNwZWNpZmljIGRpcmVjdG9yaWVzLCBmaWxlcyBvciB0
ZXN0IGlkcyBhcmUgZ2l2ZW4gaW4gdGhlIGNvbW1hbmQgbGluZSB3aGVuCisgICBleGVjdXRpbmcg
cHl0ZXN0IGZyb20gdGhlIDpyZWY6YHJvb3RkaXIgPHJvb3RkaXI+YCBkaXJlY3RvcnkuCisgICBV
c2VmdWwgd2hlbiBhbGwgcHJvamVjdCB0ZXN0cyBhcmUgaW4gYSBrbm93biBsb2NhdGlvbiB0byBz
cGVlZCB1cAorICAgdGVzdCBjb2xsZWN0aW9uIGFuZCB0byBhdm9pZCBwaWNraW5nIHVwIHVuZGVz
aXJlZCB0ZXN0cyBieSBhY2NpZGVudC4KKworICAgLi4gY29kZS1ibG9jazo6IGluaQorCisgICAg
ICAgICMgY29udGVudCBvZiBweXRlc3QuaW5pCisgICAgICAgIFtweXRlc3RdCisgICAgICAgIHRl
c3RwYXRocyA9IHRlc3RpbmcgZG9jCisKKyAgIFRoaXMgdGVsbHMgcHl0ZXN0IHRvIG9ubHkgbG9v
ayBmb3IgdGVzdHMgaW4gYGB0ZXN0aW5nYGAgYW5kIGBgZG9jYGAKKyAgIGRpcmVjdG9yaWVzIHdo
ZW4gZXhlY3V0aW5nIGZyb20gdGhlIHJvb3QgZGlyZWN0b3J5LgorCisuLiBjb25mdmFsOjogcHl0
aG9uX2ZpbGVzCisKKyAgIE9uZSBvciBtb3JlIEdsb2Itc3R5bGUgZmlsZSBwYXR0ZXJucyBkZXRl
cm1pbmluZyB3aGljaCBweXRob24gZmlsZXMKKyAgIGFyZSBjb25zaWRlcmVkIGFzIHRlc3QgbW9k
dWxlcy4gQnkgZGVmYXVsdCwgcHl0ZXN0IHdpbGwgY29uc2lkZXIKKyAgIGFueSBmaWxlIG1hdGNo
aW5nIHdpdGggYGB0ZXN0XyoucHlgYCBhbmQgYGAqX3Rlc3QucHlgYCBnbG9icyBhcyBhIHRlc3QK
KyAgIG1vZHVsZS4KKworLi4gY29uZnZhbDo6IHB5dGhvbl9jbGFzc2VzCisKKyAgIE9uZSBvciBt
b3JlIG5hbWUgcHJlZml4ZXMgb3IgZ2xvYi1zdHlsZSBwYXR0ZXJucyBkZXRlcm1pbmluZyB3aGlj
aCBjbGFzc2VzCisgICBhcmUgY29uc2lkZXJlZCBmb3IgdGVzdCBjb2xsZWN0aW9uLiBCeSBkZWZh
dWx0LCBweXRlc3Qgd2lsbCBjb25zaWRlciBhbnkKKyAgIGNsYXNzIHByZWZpeGVkIHdpdGggYGBU
ZXN0YGAgYXMgYSB0ZXN0IGNvbGxlY3Rpb24uICBIZXJlIGlzIGFuIGV4YW1wbGUgb2YgaG93Cisg
ICB0byBjb2xsZWN0IHRlc3RzIGZyb20gY2xhc3NlcyB0aGF0IGVuZCBpbiBgYFN1aXRlYGA6CisK
KyAgIC4uIGNvZGUtYmxvY2s6OiBpbmkKKworICAgICAgICAjIGNvbnRlbnQgb2YgcHl0ZXN0Lmlu
aQorICAgICAgICBbcHl0ZXN0XQorICAgICAgICBweXRob25fY2xhc3NlcyA9ICpTdWl0ZQorCisg
ICBOb3RlIHRoYXQgYGB1bml0dGVzdC5UZXN0Q2FzZWBgIGRlcml2ZWQgY2xhc3NlcyBhcmUgYWx3
YXlzIGNvbGxlY3RlZAorICAgcmVnYXJkbGVzcyBvZiB0aGlzIG9wdGlvbiwgYXMgYGB1bml0dGVz
dGBgJ3Mgb3duIGNvbGxlY3Rpb24gZnJhbWV3b3JrIGlzIHVzZWQKKyAgIHRvIGNvbGxlY3QgdGhv
c2UgdGVzdHMuCisKKy4uIGNvbmZ2YWw6OiBweXRob25fZnVuY3Rpb25zCisKKyAgIE9uZSBvciBt
b3JlIG5hbWUgcHJlZml4ZXMgb3IgZ2xvYi1wYXR0ZXJucyBkZXRlcm1pbmluZyB3aGljaCB0ZXN0
IGZ1bmN0aW9ucworICAgYW5kIG1ldGhvZHMgYXJlIGNvbnNpZGVyZWQgdGVzdHMuIEJ5IGRlZmF1
bHQsIHB5dGVzdCB3aWxsIGNvbnNpZGVyIGFueQorICAgZnVuY3Rpb24gcHJlZml4ZWQgd2l0aCBg
YHRlc3RgYCBhcyBhIHRlc3QuICBIZXJlIGlzIGFuIGV4YW1wbGUgb2YgaG93CisgICB0byBjb2xs
ZWN0IHRlc3QgZnVuY3Rpb25zIGFuZCBtZXRob2RzIHRoYXQgZW5kIGluIGBgX3Rlc3RgYDoKKwor
ICAgLi4gY29kZS1ibG9jazo6IGluaQorCisgICAgICAgICMgY29udGVudCBvZiBweXRlc3QuaW5p
CisgICAgICAgIFtweXRlc3RdCisgICAgICAgIHB5dGhvbl9mdW5jdGlvbnMgPSAqX3Rlc3QKKwor
ICAgTm90ZSB0aGF0IHRoaXMgaGFzIG5vIGVmZmVjdCBvbiBtZXRob2RzIHRoYXQgbGl2ZSBvbiBh
IGBgdW5pdHRlc3QKKyAgIC5UZXN0Q2FzZWBgIGRlcml2ZWQgY2xhc3MsIGFzIGBgdW5pdHRlc3Rg
YCdzIG93biBjb2xsZWN0aW9uIGZyYW1ld29yayBpcyB1c2VkCisgICB0byBjb2xsZWN0IHRob3Nl
IHRlc3RzLgorCisgICBTZWUgOnJlZjpgY2hhbmdlIG5hbWluZyBjb252ZW50aW9uc2AgZm9yIG1v
cmUgZGV0YWlsZWQgZXhhbXBsZXMuCisKKy4uIGNvbmZ2YWw6OiBkb2N0ZXN0X29wdGlvbmZsYWdz
CisKKyAgIE9uZSBvciBtb3JlIGRvY3Rlc3QgZmxhZyBuYW1lcyBmcm9tIHRoZSBzdGFuZGFyZCBg
YGRvY3Rlc3RgYCBtb2R1bGUuCisgICA6ZG9jOmBTZWUgaG93IHB5dGVzdCBoYW5kbGVzIGRvY3Rl
c3RzIDxkb2N0ZXN0PmAuCisKKy4uIGNvbmZ2YWw6OiBjb25mY3V0ZGlyCisKKyAgIFNldHMgYSBk
aXJlY3Rvcnkgd2hlcmUgc2VhcmNoIHVwd2FyZHMgZm9yIGBgY29uZnRlc3QucHlgYCBmaWxlcyBz
dG9wcy4KKyAgIEJ5IGRlZmF1bHQsIHB5dGVzdCB3aWxsIHN0b3Agc2VhcmNoaW5nIGZvciBgYGNv
bmZ0ZXN0LnB5YGAgZmlsZXMgdXB3YXJkcworICAgZnJvbSBgYHB5dGVzdC5pbmlgYC9gYHRveC5p
bmlgYC9gYHNldHVwLmNmZ2BgIG9mIHRoZSBwcm9qZWN0IGlmIGFueSwKKyAgIG9yIHVwIHRvIHRo
ZSBmaWxlLXN5c3RlbSByb290LgorCisKKy4uIGNvbmZ2YWw6OiBmaWx0ZXJ3YXJuaW5ncworCisg
ICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjEKKworICAgU2V0cyBhIGxpc3Qgb2YgZmlsdGVycyBhbmQg
YWN0aW9ucyB0aGF0IHNob3VsZCBiZSB0YWtlbiBmb3IgbWF0Y2hlZAorICAgd2FybmluZ3MuIEJ5
IGRlZmF1bHQgYWxsIHdhcm5pbmdzIGVtaXR0ZWQgZHVyaW5nIHRoZSB0ZXN0IHNlc3Npb24KKyAg
IHdpbGwgYmUgZGlzcGxheWVkIGluIGEgc3VtbWFyeSBhdCB0aGUgZW5kIG9mIHRoZSB0ZXN0IHNl
c3Npb24uCisKKyAgIC4uIGNvZGUtYmxvY2s6OiBpbmkKKworICAgICAgICAjIGNvbnRlbnQgb2Yg
cHl0ZXN0LmluaQorICAgICAgICBbcHl0ZXN0XQorICAgICAgICBmaWx0ZXJ3YXJuaW5ncyA9Cisg
ICAgICAgICAgICBlcnJvcgorICAgICAgICAgICAgaWdub3JlOjpEZXByZWNhdGlvbldhcm5pbmcK
KworICAgVGhpcyB0ZWxscyBweXRlc3QgdG8gaWdub3JlIGRlcHJlY2F0aW9uIHdhcm5pbmdzIGFu
ZCB0dXJuIGFsbCBvdGhlciB3YXJuaW5ncworICAgaW50byBlcnJvcnMuIEZvciBtb3JlIGluZm9y
bWF0aW9uIHBsZWFzZSByZWZlciB0byA6cmVmOmB3YXJuaW5nc2AuCisKKy4uIGNvbmZ2YWw6OiBj
YWNoZV9kaXIKKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4yCisKKyAgIFNldHMgYSBkaXJlY3Rv
cnkgd2hlcmUgc3RvcmVzIGNvbnRlbnQgb2YgY2FjaGUgcGx1Z2luLiBEZWZhdWx0IGRpcmVjdG9y
eSBpcworICAgYGAuY2FjaGVgYCB3aGljaCBpcyBjcmVhdGVkIGluIDpyZWY6YHJvb3RkaXIgPHJv
b3RkaXI+YC4gRGlyZWN0b3J5IG1heSBiZQorICAgcmVsYXRpdmUgb3IgYWJzb2x1dGUgcGF0aC4g
SWYgc2V0dGluZyByZWxhdGl2ZSBwYXRoLCB0aGVuIGRpcmVjdG9yeSBpcyBjcmVhdGVkCisgICBy
ZWxhdGl2ZSB0byA6cmVmOmByb290ZGlyIDxyb290ZGlyPmAuIEFkZGl0aW9uYWxseSBwYXRoIG1h
eSBjb250YWluIGVudmlyb25tZW50CisgICB2YXJpYWJsZXMsIHRoYXQgd2lsbCBiZSBleHBhbmRl
ZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgY2FjaGUgcGx1Z2luCisgICBwbGVhc2UgcmVm
ZXIgdG8gOnJlZjpgY2FjaGVfcHJvdmlkZXJgLgorCisKKy4uIGNvbmZ2YWw6OiBjb25zb2xlX291
dHB1dF9zdHlsZQorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworICAgU2V0cyB0aGUgY29u
c29sZSBvdXRwdXQgc3R5bGUgd2hpbGUgcnVubmluZyB0ZXN0czoKKworICAgKiBgYGNsYXNzaWNg
YDogY2xhc3NpYyBweXRlc3Qgb3V0cHV0LgorICAgKiBgYHByb2dyZXNzYGA6IGxpa2UgY2xhc3Np
YyBweXRlc3Qgb3V0cHV0LCBidXQgd2l0aCBhIHByb2dyZXNzIGluZGljYXRvci4KKworICAgVGhl
IGRlZmF1bHQgaXMgYGBwcm9ncmVzc2BgLCBidXQgeW91IGNhbiBmYWxsYmFjayB0byBgYGNsYXNz
aWNgYCBpZiB5b3UgcHJlZmVyIG9yCisgICB0aGUgbmV3IG1vZGUgaXMgY2F1c2luZyB1bmV4cGVj
dGVkIHByb2JsZW1zOgorCisgICAuLiBjb2RlLWJsb2NrOjogaW5pCisKKyAgICAgICAgIyBjb250
ZW50IG9mIHB5dGVzdC5pbmkKKyAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgY29uc29sZV9vdXRw
dXRfc3R5bGUgPSBjbGFzc2ljCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZGV2ZWxv
cG1lbnRfZ3VpZGUucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2RldmVsb3BtZW50X2d1aWRlLnJz
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40NjVlOTdkZTBmOWNlMDkwZjBhNjM0MTA3OGJhMzIyODdiYTFhOTg4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2RldmVsb3BtZW50X2d1aWRlLnJz
dApAQCAtMCwwICsxLDEwOCBAQAorPT09PT09PT09PT09PT09PT0KK0RldmVsb3BtZW50IEd1aWRl
Cis9PT09PT09PT09PT09PT09PQorCitTb21lIGdlbmVyYWwgZ3VpZGVsaW5lcyByZWdhcmRpbmcg
ZGV2ZWxvcG1lbnQgaW4gcHl0ZXN0IGZvciBjb3JlIG1haW50YWluZXJzIGFuZCBnZW5lcmFsIGNv
bnRyaWJ1dG9ycy4gTm90aGluZyBoZXJlCitpcyBzZXQgaW4gc3RvbmUgYW5kIGNhbid0IGJlIGNo
YW5nZWQsIGZlZWwgZnJlZSB0byBzdWdnZXN0IGltcHJvdmVtZW50cyBvciBjaGFuZ2VzIGluIHRo
ZSB3b3JrZmxvdy4KKworCitDb2RlIFN0eWxlCistLS0tLS0tLS0tCisKKyogYFBFUC04IDxodHRw
czovL3d3dy5weXRob24ub3JnL2Rldi9wZXBzL3BlcC0wMDA4PmBfCisqIGBmbGFrZTggPGh0dHBz
Oi8vcHlwaS5weXRob24ub3JnL3B5cGkvZmxha2U4PmBfIGZvciBxdWFsaXR5IGNoZWNrcworKiBg
aW52b2tlIDxodHRwOi8vd3d3LnB5aW52b2tlLm9yZy8+YF8gdG8gYXV0b21hdGUgZGV2ZWxvcG1l
bnQgdGFza3MKKworCitCcmFuY2hlcworLS0tLS0tLS0KKworV2UgaGF2ZSB0d28gbG9uZyB0ZXJt
IGJyYW5jaGVzOgorCisqIGBgbWFzdGVyYGA6IGNvbnRhaW5zIHRoZSBjb2RlIGZvciB0aGUgbmV4
dCBidWdmaXggcmVsZWFzZS4KKyogYGBmZWF0dXJlc2BgOiBjb250YWlucyB0aGUgY29kZSB3aXRo
IG5ldyBmZWF0dXJlcyBmb3IgdGhlIG5leHQgbWlub3IgcmVsZWFzZS4KKworVGhlIG9mZmljaWFs
IHJlcG9zaXRvcnkgdXN1YWxseSBkb2VzIG5vdCBjb250YWluIHRvcGljIGJyYW5jaGVzLCBkZXZl
bG9wZXJzIGFuZCBjb250cmlidXRvcnMgc2hvdWxkIGNyZWF0ZSB0b3BpYworYnJhbmNoZXMgaW4g
dGhlaXIgb3duIGZvcmtzLgorCitFeGNlcHRpb25zIGNhbiBiZSBtYWRlIGZvciBjYXNlcyB3aGVy
ZSBtb3JlIHRoYW4gb25lIGNvbnRyaWJ1dG9yIGlzIHdvcmtpbmcgb24gdGhlIHNhbWUKK3RvcGlj
IG9yIHdoZXJlIGl0IG1ha2VzIHNlbnNlIHRvIHVzZSBzb21lIGF1dG9tYXRpYyBjYXBhYmlsaXR5
IG9mIHRoZSBtYWluIHJlcG9zaXRvcnksIHN1Y2ggYXMgYXV0b21hdGljIGRvY3MgZnJvbQorYHJl
YWR0aGVkb2NzIDxyZWFkdGhlZG9jcy5vcmc+YF8gZm9yIGEgYnJhbmNoIGRlYWxpbmcgd2l0aCBk
b2N1bWVudGF0aW9uIHJlZmFjdG9yaW5nLgorCitJc3N1ZXMKKy0tLS0tLQorCitBbnkgcXVlc3Rp
b24sIGZlYXR1cmUsIGJ1ZyBvciBwcm9wb3NhbCBpcyB3ZWxjb21lIGFzIGFuIGlzc3VlLiBVc2Vy
cyBhcmUgZW5jb3VyYWdlZCB0byB1c2UgdGhlbSB3aGVuZXZlciB0aGV5IG5lZWQuCisKK0dpdEh1
YiBpc3N1ZXMgc2hvdWxkIHVzZSBsYWJlbHMgdG8gY2F0ZWdvcml6ZSB0aGVtLiBMYWJlbHMgc2hv
dWxkIGJlIGNyZWF0ZWQgc3BvcmFkaWNhbGx5LCB0byBmaWxsIGEgbmljaGU7IHdlIHNob3VsZAor
YXZvaWQgY3JlYXRpbmcgbGFiZWxzIGp1c3QgZm9yIHRoZSBzYWtlIG9mIGNyZWF0aW5nIHRoZW0u
CisKK0hlcmUgaXMgYSBsaXN0IG9mIGxhYmVscyBhbmQgYSBicmllZiBkZXNjcmlwdGlvbiBtZW50
aW9uaW5nIHRoZWlyIGludGVudC4KKworCisqKlR5cGUqKgorCisqIGBgdHlwZTogYmFja3dhcmQg
Y29tcGF0aWJpbGl0eWBgOiBpc3N1ZSB0aGF0IHdpbGwgY2F1c2UgcHJvYmxlbXMgd2l0aCBvbGQg
cHl0ZXN0IHZlcnNpb25zLgorKiBgYHR5cGU6IGJ1Z2BgOiBwcm9ibGVtIHRoYXQgbmVlZHMgdG8g
YmUgYWRkcmVzc2VkLgorKiBgYHR5cGU6IGRlcHJlY2F0aW9uYGA6IGZlYXR1cmUgdGhhdCB3aWxs
IGJlIGRlcHJlY2F0ZWQgaW4gdGhlIGZ1dHVyZS4KKyogYGB0eXBlOiBkb2NzYGA6IGRvY3VtZW50
YXRpb24gbWlzc2luZyBvciBuZWVkaW5nIGNsYXJpZmljYXRpb24uCisqIGBgdHlwZTogZW5oYW5j
ZW1lbnRgYDogbmV3IGZlYXR1cmUgb3IgQVBJIGNoYW5nZSwgc2hvdWxkIGJlIG1lcmdlZCBpbnRv
IGBgZmVhdHVyZXNgYC4KKyogYGB0eXBlOiBmZWF0dXJlLWJyYW5jaGBgOiBuZXcgZmVhdHVyZSBv
ciBBUEkgY2hhbmdlLCBzaG91bGQgYmUgbWVyZ2VkIGludG8gYGBmZWF0dXJlc2BgLgorKiBgYHR5
cGU6IGluZnJhc3RydWN0dXJlYGA6IGltcHJvdmVtZW50IHRvIGRldmVsb3BtZW50L3JlbGVhc2Vz
L0NJIHN0cnVjdHVyZS4KKyogYGB0eXBlOiBwZXJmb3JtYW5jZWBgOiBwZXJmb3JtYW5jZSBvciBt
ZW1vcnkgcHJvYmxlbS9pbXByb3ZlbWVudC4KKyogYGB0eXBlOiBwcm9wb3NhbGBgOiBwcm9wb3Nh
bCBmb3IgYSBuZXcgZmVhdHVyZSwgb2Z0ZW4gdG8gZ2F0aGVyIG9waW5pb25zIG9yIGRlc2lnbiB0
aGUgQVBJIGFyb3VuZCB0aGUgbmV3IGZlYXR1cmUuCisqIGBgdHlwZTogcXVlc3Rpb25gYDogcXVl
c3Rpb24gcmVnYXJkaW5nIHVzYWdlLCBpbnN0YWxsYXRpb24sIGludGVybmFscyBvciBob3cgdG8g
dGVzdCBzb21ldGhpbmcuCisqIGBgdHlwZTogcmVmYWN0b3JpbmdgYDogaW50ZXJuYWwgaW1wcm92
ZW1lbnRzIHRvIHRoZSBjb2RlLgorKiBgYHR5cGU6IHJlZ3Jlc3Npb25gYDogaW5kaWNhdGVzIGEg
cHJvYmxlbSB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIGEgcmVsZWFzZSB3aGljaCB3YXMgd29ya2lu
ZyBwcmV2aW91c2x5LgorCisqKlN0YXR1cyoqCisKKyogYGBzdGF0dXM6IGNyaXRpY2FsYGA6IGdy
YXZlIHByb2JsZW0gb3IgdXNhYmlsaXR5IGlzc3VlIHRoYXQgYWZmZWN0cyBsb3RzIG9mIHVzZXJz
LgorKiBgYHN0YXR1czogZWFzeWBgOiBlYXN5IGlzc3VlIHRoYXQgaXMgZnJpZW5kbHkgdG8gbmV3
IGNvbnRyaWJ1dG9ycy4KKyogYGBzdGF0dXM6IGhlbHAgd2FudGVkYGA6IGNvcmUgZGV2ZWxvcGVy
cyBuZWVkIGhlbHAgZnJvbSBleHBlcnRzIG9uIHRoaXMgdG9waWMuCisqIGBgc3RhdHVzOiBuZWVk
cyBpbmZvcm1hdGlvbmBgOiByZXBvcnRlciBuZWVkcyB0byBwcm92aWRlIG1vcmUgaW5mb3JtYXRp
b247IGNhbiBiZSBjbG9zZWQgYWZ0ZXIgMiBvciBtb3JlIHdlZWtzIG9mIGluYWN0aXZpdHkuCisK
KyoqVG9waWMqKgorCisqIGBgdG9waWM6IGNvbGxlY3Rpb25gYAorKiBgYHRvcGljOiBmaXh0dXJl
c2BgCisqIGBgdG9waWM6IHBhcmFtZXRyaXplYGAKKyogYGB0b3BpYzogcmVwb3J0aW5nYGAKKyog
YGB0b3BpYzogc2VsZWN0aW9uYGAKKyogYGB0b3BpYzogdHJhY2ViYWNrc2BgCisKKyoqUGx1Z2lu
IChpbnRlcm5hbCBvciBleHRlcm5hbCkqKgorCisqIGBgcGx1Z2luOiBjYWNoZWBgCisqIGBgcGx1
Z2luOiBjYXB0dXJlYGAKKyogYGBwbHVnaW46IGRvY3Rlc3RzYGAKKyogYGBwbHVnaW46IGp1bml0
eG1sYGAKKyogYGBwbHVnaW46IG1vbmtleXBhdGNoYGAKKyogYGBwbHVnaW46IG5vc2VgYAorKiBg
YHBsdWdpbjogcGFzdGViaW5gYAorKiBgYHBsdWdpbjogcHl0ZXN0ZXJgYAorKiBgYHBsdWdpbjog
dG1wZGlyYGAKKyogYGBwbHVnaW46IHVuaXR0ZXN0YGAKKyogYGBwbHVnaW46IHdhcm5pbmdzYGAK
KyogYGBwbHVnaW46IHhkaXN0YGAKKworCisqKk9TKioKKworSXNzdWVzIHNwZWNpZmljIHRvIGEg
c2luZ2xlIG9wZXJhdGluZyBzeXN0ZW0uIERvIG5vdCB1c2UgYXMgYSBtZWFucyB0byBpbmRpY2F0
ZSB3aGVyZSBhbiBpc3N1ZSBvcmlnaW5hdGVkIGZyb20sIG9ubHkKK2ZvciBwcm9ibGVtcyB0aGF0
IGhhcHBlbiAqKm9ubHkqKiBpbiB0aGF0IHN5c3RlbS4KKworKiBgYG9zOiBsaW51eGBgCisqIGBg
b3M6IG1hY2BgCisqIGBgb3M6IHdpbmRvd3NgYAorCisqKlRlbXBvcmFyeSoqCisKK1VzZWQgdG8g
Y2xhc3NpZnkgaXNzdWVzIGZvciBsaW1pdGVkIHRpbWUsIHRvIGhlbHAgZmluZCBpc3N1ZXMgcmVs
YXRlZCBpbiBldmVudHMgZm9yIGV4YW1wbGUuCitUaGV5IHNob3VsZCBiZSByZW1vdmVkIGFmdGVy
IHRoZXkgYXJlIG5vIGxvbmdlciByZWxldmFudC4KKworKiBgYHRlbXBvcmFyeTogRVAyMDE3IHNw
cmludGBgOgorKiBgYHRlbXBvcmFyeTogc3ByaW50LWNhbmRpZGF0ZWBgOgorCisKKy4uIGluY2x1
ZGU6OiAuLi8uLi9IT1dUT1JFTEVBU0UucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vZG9jdGVzdC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZG9jdGVzdC5yc3QKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNGM1YTg3OGRkNjEzZWFmMjQyN2RhNGVhMzNkZDQ4ZmIyOWU2MGMzMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9kb2N0ZXN0LnJzdApAQCAtMCwwICsxLDE2NSBAQAor
CitEb2N0ZXN0IGludGVncmF0aW9uIGZvciBtb2R1bGVzIGFuZCB0ZXN0IGZpbGVzCis9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworQnkg
ZGVmYXVsdCBhbGwgZmlsZXMgbWF0Y2hpbmcgdGhlIGBgdGVzdCoudHh0YGAgcGF0dGVybiB3aWxs
CitiZSBydW4gdGhyb3VnaCB0aGUgcHl0aG9uIHN0YW5kYXJkIGBgZG9jdGVzdGBgIG1vZHVsZS4g
IFlvdQorY2FuIGNoYW5nZSB0aGUgcGF0dGVybiBieSBpc3N1aW5nOjoKKworICAgIHB5dGVzdCAt
LWRvY3Rlc3QtZ2xvYj0nKi5yc3QnCisKK29uIHRoZSBjb21tYW5kIGxpbmUuIFNpbmNlIHZlcnNp
b24gYGAyLjlgYCwgYGAtLWRvY3Rlc3QtZ2xvYmBgCitjYW4gYmUgZ2l2ZW4gbXVsdGlwbGUgdGlt
ZXMgaW4gdGhlIGNvbW1hbmQtbGluZS4KKworLi4gdmVyc2lvbmFkZGVkOjogMy4xCisKKyAgICBZ
b3UgY2FuIHNwZWNpZnkgdGhlIGVuY29kaW5nIHRoYXQgd2lsbCBiZSB1c2VkIGZvciB0aG9zZSBk
b2N0ZXN0IGZpbGVzCisgICAgdXNpbmcgdGhlIGBgZG9jdGVzdF9lbmNvZGluZ2BgIGluaSBvcHRp
b246CisKKyAgICAuLiBjb2RlLWJsb2NrOjogaW5pCisKKyAgICAgICAgIyBjb250ZW50IG9mIHB5
dGVzdC5pbmkKKyAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgZG9jdGVzdF9lbmNvZGluZyA9IGxh
dGluMQorCisgICAgVGhlIGRlZmF1bHQgZW5jb2RpbmcgaXMgVVRGLTguCisKK1lvdSBjYW4gYWxz
byB0cmlnZ2VyIHJ1bm5pbmcgb2YgZG9jdGVzdHMKK2Zyb20gZG9jc3RyaW5ncyBpbiBhbGwgcHl0
aG9uIG1vZHVsZXMgKGluY2x1ZGluZyByZWd1bGFyCitweXRob24gdGVzdCBtb2R1bGVzKTo6CisK
KyAgICBweXRlc3QgLS1kb2N0ZXN0LW1vZHVsZXMKKworWW91IGNhbiBtYWtlIHRoZXNlIGNoYW5n
ZXMgcGVybWFuZW50IGluIHlvdXIgcHJvamVjdCBieQorcHV0dGluZyB0aGVtIGludG8gYSBweXRl
c3QuaW5pIGZpbGUgbGlrZSB0aGlzOgorCisuLiBjb2RlLWJsb2NrOjogaW5pCisKKyAgICAjIGNv
bnRlbnQgb2YgcHl0ZXN0LmluaQorICAgIFtweXRlc3RdCisgICAgYWRkb3B0cyA9IC0tZG9jdGVz
dC1tb2R1bGVzCisKK0lmIHlvdSB0aGVuIGhhdmUgYSB0ZXh0IGZpbGUgbGlrZSB0aGlzOjoKKwor
ICAgICMgY29udGVudCBvZiBleGFtcGxlLnJzdAorCisgICAgaGVsbG8gdGhpcyBpcyBhIGRvY3Rl
c3QKKyAgICA+Pj4geCA9IDMKKyAgICA+Pj4geAorICAgIDMKKworYW5kIGFub3RoZXIgbGlrZSB0
aGlzOjoKKworICAgICMgY29udGVudCBvZiBteW1vZHVsZS5weQorICAgIGRlZiBzb21ldGhpbmco
KToKKyAgICAgICAgIiIiIGEgZG9jdGVzdCBpbiBhIGRvY3N0cmluZworICAgICAgICA+Pj4gc29t
ZXRoaW5nKCkKKyAgICAgICAgNDIKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiA0MgorCit0
aGVuIHlvdSBjYW4ganVzdCBpbnZva2UgYGBweXRlc3RgYCB3aXRob3V0IGNvbW1hbmQgbGluZSBv
cHRpb25zOjoKKworICAgICQgcHl0ZXN0CisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09
IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBs
YXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1
Z2d5LTAueC55CisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZTogcHl0ZXN0
LmluaQorICAgIGNvbGxlY3RlZCAxIGl0ZW0KKyAgICAKKyAgICBteW1vZHVsZS5weSAuICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0K
KyAgICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09IDEgcGFzc2VkIGluIDAuMTIgc2Vj
b25kcyA9PT09PT09PT09PT09PT09PT09PT09PT09CisKK0l0IGlzIHBvc3NpYmxlIHRvIHVzZSBm
aXh0dXJlcyB1c2luZyB0aGUgYGBnZXRmaXh0dXJlYGAgaGVscGVyOjoKKworICAgICMgY29udGVu
dCBvZiBleGFtcGxlLnJzdAorICAgID4+PiB0bXAgPSBnZXRmaXh0dXJlKCd0bXBkaXInKQorICAg
ID4+PiAuLi4KKyAgICA+Pj4KKworQWxzbywgOnJlZjpgdXNlZml4dHVyZXNgIGFuZCA6cmVmOmBh
dXRvdXNlYCBmaXh0dXJlcyBhcmUgc3VwcG9ydGVkCit3aGVuIGV4ZWN1dGluZyB0ZXh0IGRvY3Rl
c3QgZmlsZXMuCisKK1RoZSBzdGFuZGFyZCBgYGRvY3Rlc3RgYCBtb2R1bGUgcHJvdmlkZXMgc29t
ZSBzZXR0aW5nIGZsYWdzIHRvIGNvbmZpZ3VyZSB0aGUKK3N0cmljdG5lc3Mgb2YgZG9jdGVzdCB0
ZXN0cy4gSW4gcHl0ZXN0IFlvdSBjYW4gZW5hYmxlIHRob3NlIGZsYWdzIHRob3NlIGZsYWdzCit1
c2luZyB0aGUgY29uZmlndXJhdGlvbiBmaWxlLiBUbyBtYWtlIHB5dGVzdCBpZ25vcmUgdHJhaWxp
bmcgd2hpdGVzcGFjZXMgYW5kCitpZ25vcmUgbGVuZ3RoeSBleGNlcHRpb24gc3RhY2sgdHJhY2Vz
IHlvdSBjYW4ganVzdCB3cml0ZToKKworLi4gY29kZS1ibG9jazo6IGluaQorCisgICAgW3B5dGVz
dF0KKyAgICBkb2N0ZXN0X29wdGlvbmZsYWdzPSBOT1JNQUxJWkVfV0hJVEVTUEFDRSBJR05PUkVf
RVhDRVBUSU9OX0RFVEFJTAorCitweXRlc3QgYWxzbyBpbnRyb2R1Y2VzIG5ldyBvcHRpb25zIHRv
IGFsbG93IGRvY3Rlc3RzIHRvIHJ1biBpbiBQeXRob24gMiBhbmQKK1B5dGhvbiAzIHVuY2hhbmdl
ZDoKKworKiBgYEFMTE9XX1VOSUNPREVgYDogd2hlbiBlbmFibGVkLCB0aGUgYGB1YGAgcHJlZml4
IGlzIHN0cmlwcGVkIGZyb20gdW5pY29kZQorICBzdHJpbmdzIGluIGV4cGVjdGVkIGRvY3Rlc3Qg
b3V0cHV0LgorCisqIGBgQUxMT1dfQllURVNgYDogd2hlbiBlbmFibGVkLCB0aGUgYGBiYGAgcHJl
Zml4IGlzIHN0cmlwcGVkIGZyb20gYnl0ZSBzdHJpbmdzCisgIGluIGV4cGVjdGVkIGRvY3Rlc3Qg
b3V0cHV0LgorCitBcyB3aXRoIGFueSBvdGhlciBvcHRpb24gZmxhZywgdGhlc2UgZmxhZ3MgY2Fu
IGJlIGVuYWJsZWQgaW4gYGBweXRlc3QuaW5pYGAgdXNpbmcKK3RoZSBgYGRvY3Rlc3Rfb3B0aW9u
ZmxhZ3NgYCBpbmkgb3B0aW9uOgorCisuLiBjb2RlLWJsb2NrOjogaW5pCisKKyAgICBbcHl0ZXN0
XQorICAgIGRvY3Rlc3Rfb3B0aW9uZmxhZ3MgPSBBTExPV19VTklDT0RFIEFMTE9XX0JZVEVTCisK
KworQWx0ZXJuYXRpdmVseSwgaXQgY2FuIGJlIGVuYWJsZWQgYnkgYW4gaW5saW5lIGNvbW1lbnQg
aW4gdGhlIGRvYyB0ZXN0CitpdHNlbGY6OgorCisgICAgIyBjb250ZW50IG9mIGV4YW1wbGUucnN0
CisgICAgPj4+IGdldF91bmljb2RlX2dyZWV0aW5nKCkgICMgZG9jdGVzdDogK0FMTE9XX1VOSUNP
REUKKyAgICAnSGVsbG8nCisKKworVGhlICdkb2N0ZXN0X25hbWVzcGFjZScgZml4dHVyZQorLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiB2ZXJzaW9uYWRkZWQ6OiAzLjAKKwor
VGhlIGBgZG9jdGVzdF9uYW1lc3BhY2VgYCBmaXh0dXJlIGNhbiBiZSB1c2VkIHRvIGluamVjdCBp
dGVtcyBpbnRvIHRoZQorbmFtZXNwYWNlIGluIHdoaWNoIHlvdXIgZG9jdGVzdHMgcnVuLiBJdCBp
cyBpbnRlbmRlZCB0byBiZSB1c2VkIHdpdGhpbgoreW91ciBvd24gZml4dHVyZXMgdG8gcHJvdmlk
ZSB0aGUgdGVzdHMgdGhhdCB1c2UgdGhlbSB3aXRoIGNvbnRleHQuCisKK2BgZG9jdGVzdF9uYW1l
c3BhY2VgYCBpcyBhIHN0YW5kYXJkIGBgZGljdGBgIG9iamVjdCBpbnRvIHdoaWNoIHlvdQorcGxh
Y2UgdGhlIG9iamVjdHMgeW91IHdhbnQgdG8gYXBwZWFyIGluIHRoZSBkb2N0ZXN0IG5hbWVzcGFj
ZTo6CisKKyAgICAjIGNvbnRlbnQgb2YgY29uZnRlc3QucHkKKyAgICBpbXBvcnQgbnVtcHkKKyAg
ICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQorICAgIGRlZiBhZGRfbnAoZG9jdGVzdF9u
YW1lc3BhY2UpOgorICAgICAgICBkb2N0ZXN0X25hbWVzcGFjZVsnbnAnXSA9IG51bXB5CisKK3do
aWNoIGNhbiB0aGVuIGJlIHVzZWQgaW4geW91ciBkb2N0ZXN0cyBkaXJlY3RseTo6CisKKyAgICAj
IGNvbnRlbnQgb2YgbnVtcHkucHkKKyAgICBkZWYgYXJhbmdlKCk6CisgICAgICAgICIiIgorICAg
ICAgICA+Pj4gYSA9IG5wLmFyYW5nZSgxMCkKKyAgICAgICAgPj4+IGxlbihhKQorICAgICAgICAx
MAorICAgICAgICAiIiIKKyAgICAgICAgcGFzcworCisKK091dHB1dCBmb3JtYXQKKy0tLS0tLS0t
LS0tLS0KKworLi4gdmVyc2lvbmFkZGVkOjogMy4wCisKK1lvdSBjYW4gY2hhbmdlIHRoZSBkaWZm
IG91dHB1dCBmb3JtYXQgb24gZmFpbHVyZSBmb3IgeW91ciBkb2N0ZXN0cworYnkgdXNpbmcgb25l
IG9mIHN0YW5kYXJkIGRvY3Rlc3QgbW9kdWxlcyBmb3JtYXQgaW4gb3B0aW9ucworKHNlZSA6ZGF0
YTpgcHl0aG9uOmRvY3Rlc3QuUkVQT1JUX1VESUZGYCwgOmRhdGE6YHB5dGhvbjpkb2N0ZXN0LlJF
UE9SVF9DRElGRmAsCis6ZGF0YTpgcHl0aG9uOmRvY3Rlc3QuUkVQT1JUX05ESUZGYCwgOmRhdGE6
YHB5dGhvbjpkb2N0ZXN0LlJFUE9SVF9PTkxZX0ZJUlNUX0ZBSUxVUkVgKTo6CisKKyAgICBweXRl
c3QgLS1kb2N0ZXN0LW1vZHVsZXMgLS1kb2N0ZXN0LXJlcG9ydCBub25lCisgICAgcHl0ZXN0IC0t
ZG9jdGVzdC1tb2R1bGVzIC0tZG9jdGVzdC1yZXBvcnQgdWRpZmYKKyAgICBweXRlc3QgLS1kb2N0
ZXN0LW1vZHVsZXMgLS1kb2N0ZXN0LXJlcG9ydCBjZGlmZgorICAgIHB5dGVzdCAtLWRvY3Rlc3Qt
bW9kdWxlcyAtLWRvY3Rlc3QtcmVwb3J0IG5kaWZmCisgICAgcHl0ZXN0IC0tZG9jdGVzdC1tb2R1
bGVzIC0tZG9jdGVzdC1yZXBvcnQgb25seV9maXJzdF9mYWlsdXJlCisKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL2ZhaWx1cmVfZGVtby5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2VydGlvbi9mYWlsdXJlX2RlbW8ucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDMxZmJhMmFkYWEyZThjODgxYjc3ZWUxNTRhODMxYjUxYjc1ZWM3MQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2VydGlvbi9mYWlsdXJlX2Rl
bW8ucHkKQEAgLTAsMCArMSwyMzggQEAKK2Zyb20gcHl0ZXN0IGltcG9ydCByYWlzZXMKK2ltcG9y
dCBfcHl0ZXN0Ll9jb2RlCitpbXBvcnQgcHkKKworZGVmIG90aGVyZnVuYyhhLGIpOgorICAgIGFz
c2VydCBhPT1iCisKK2RlZiBzb21lZnVuYyh4LHkpOgorICAgIG90aGVyZnVuYyh4LHkpCisKK2Rl
ZiBvdGhlcmZ1bmNfbXVsdGkoYSxiKToKKyAgICBhc3NlcnQgKGEgPT0KKyAgICAgICAgICAgIGIp
CisKK2RlZiB0ZXN0X2dlbmVyYXRpdmUocGFyYW0xLCBwYXJhbTIpOgorICAgIGFzc2VydCBwYXJh
bTEgKiAyIDwgcGFyYW0yCisKK2RlZiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMobWV0YWZ1bmMpOgor
ICAgIGlmICdwYXJhbTEnIGluIG1ldGFmdW5jLmZpeHR1cmVuYW1lczoKKyAgICAgICAgbWV0YWZ1
bmMuYWRkY2FsbChmdW5jYXJncz1kaWN0KHBhcmFtMT0zLCBwYXJhbTI9NikpCisKK2NsYXNzIFRl
c3RGYWlsaW5nKG9iamVjdCk6CisgICAgZGVmIHRlc3Rfc2ltcGxlKHNlbGYpOgorICAgICAgICBk
ZWYgZigpOgorICAgICAgICAgICAgcmV0dXJuIDQyCisgICAgICAgIGRlZiBnKCk6CisgICAgICAg
ICAgICByZXR1cm4gNDMKKworICAgICAgICBhc3NlcnQgZigpID09IGcoKQorCisgICAgZGVmIHRl
c3Rfc2ltcGxlX211bHRpbGluZShzZWxmKToKKyAgICAgICAgb3RoZXJmdW5jX211bHRpKAorICAg
ICAgICAgICAgICAgICAgNDIsCisgICAgICAgICAgICAgICAgICA2KjkpCisKKyAgICBkZWYgdGVz
dF9ub3Qoc2VsZik6CisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICByZXR1cm4gNDIKKyAg
ICAgICAgYXNzZXJ0IG5vdCBmKCkKKworY2xhc3MgVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25z
KG9iamVjdCk6CisgICAgZGVmIHRlc3RfZXFfdGV4dChzZWxmKToKKyAgICAgICAgYXNzZXJ0ICdz
cGFtJyA9PSAnZWdncycKKworICAgIGRlZiB0ZXN0X2VxX3NpbWlsYXJfdGV4dChzZWxmKToKKyAg
ICAgICAgYXNzZXJ0ICdmb28gMSBiYXInID09ICdmb28gMiBiYXInCisKKyAgICBkZWYgdGVzdF9l
cV9tdWx0aWxpbmVfdGV4dChzZWxmKToKKyAgICAgICAgYXNzZXJ0ICdmb29cbnNwYW1cbmJhcicg
PT0gJ2Zvb1xuZWdnc1xuYmFyJworCisgICAgZGVmIHRlc3RfZXFfbG9uZ190ZXh0KHNlbGYpOgor
ICAgICAgICBhID0gJzEnKjEwMCArICdhJyArICcyJyoxMDAKKyAgICAgICAgYiA9ICcxJyoxMDAg
KyAnYicgKyAnMicqMTAwCisgICAgICAgIGFzc2VydCBhID09IGIKKworICAgIGRlZiB0ZXN0X2Vx
X2xvbmdfdGV4dF9tdWx0aWxpbmUoc2VsZik6CisgICAgICAgIGEgPSAnMVxuJyoxMDAgKyAnYScg
KyAnMlxuJyoxMDAKKyAgICAgICAgYiA9ICcxXG4nKjEwMCArICdiJyArICcyXG4nKjEwMAorICAg
ICAgICBhc3NlcnQgYSA9PSBiCisKKyAgICBkZWYgdGVzdF9lcV9saXN0KHNlbGYpOgorICAgICAg
ICBhc3NlcnQgWzAsIDEsIDJdID09IFswLCAxLCAzXQorCisgICAgZGVmIHRlc3RfZXFfbGlzdF9s
b25nKHNlbGYpOgorICAgICAgICBhID0gWzBdKjEwMCArIFsxXSArIFszXSoxMDAKKyAgICAgICAg
YiA9IFswXSoxMDAgKyBbMl0gKyBbM10qMTAwCisgICAgICAgIGFzc2VydCBhID09IGIKKworICAg
IGRlZiB0ZXN0X2VxX2RpY3Qoc2VsZik6CisgICAgICAgIGFzc2VydCB7J2EnOiAwLCAnYic6IDEs
ICdjJzogMH0gPT0geydhJzogMCwgJ2InOiAyLCAnZCc6IDB9CisKKyAgICBkZWYgdGVzdF9lcV9z
ZXQoc2VsZik6CisgICAgICAgIGFzc2VydCBzZXQoWzAsIDEwLCAxMSwgMTJdKSA9PSBzZXQoWzAs
IDIwLCAyMV0pCisKKyAgICBkZWYgdGVzdF9lcV9sb25nZXJfbGlzdChzZWxmKToKKyAgICAgICAg
YXNzZXJ0IFsxLDJdID09IFsxLDIsM10KKworICAgIGRlZiB0ZXN0X2luX2xpc3Qoc2VsZik6Cisg
ICAgICAgIGFzc2VydCAxIGluIFswLCAyLCAzLCA0LCA1XQorCisgICAgZGVmIHRlc3Rfbm90X2lu
X3RleHRfbXVsdGlsaW5lKHNlbGYpOgorICAgICAgICB0ZXh0ID0gJ3NvbWUgbXVsdGlsaW5lXG50
ZXh0XG53aGljaFxuaW5jbHVkZXMgZm9vXG5hbmQgYVxudGFpbCcKKyAgICAgICAgYXNzZXJ0ICdm
b28nIG5vdCBpbiB0ZXh0CisKKyAgICBkZWYgdGVzdF9ub3RfaW5fdGV4dF9zaW5nbGUoc2VsZik6
CisgICAgICAgIHRleHQgPSAnc2luZ2xlIGZvbyBsaW5lJworICAgICAgICBhc3NlcnQgJ2Zvbycg
bm90IGluIHRleHQKKworICAgIGRlZiB0ZXN0X25vdF9pbl90ZXh0X3NpbmdsZV9sb25nKHNlbGYp
OgorICAgICAgICB0ZXh0ID0gJ2hlYWQgJyAqIDUwICsgJ2ZvbyAnICsgJ3RhaWwgJyAqIDIwCisg
ICAgICAgIGFzc2VydCAnZm9vJyBub3QgaW4gdGV4dAorCisgICAgZGVmIHRlc3Rfbm90X2luX3Rl
eHRfc2luZ2xlX2xvbmdfdGVybShzZWxmKToKKyAgICAgICAgdGV4dCA9ICdoZWFkICcgKiA1MCAr
ICdmJyo3MCArICd0YWlsICcgKiAyMAorICAgICAgICBhc3NlcnQgJ2YnKjcwIG5vdCBpbiB0ZXh0
CisKKworZGVmIHRlc3RfYXR0cmlidXRlKCk6CisgICAgY2xhc3MgRm9vKG9iamVjdCk6CisgICAg
ICAgIGIgPSAxCisgICAgaSA9IEZvbygpCisgICAgYXNzZXJ0IGkuYiA9PSAyCisKKworZGVmIHRl
c3RfYXR0cmlidXRlX2luc3RhbmNlKCk6CisgICAgY2xhc3MgRm9vKG9iamVjdCk6CisgICAgICAg
IGIgPSAxCisgICAgYXNzZXJ0IEZvbygpLmIgPT0gMgorCisKK2RlZiB0ZXN0X2F0dHJpYnV0ZV9m
YWlsdXJlKCk6CisgICAgY2xhc3MgRm9vKG9iamVjdCk6CisgICAgICAgIGRlZiBfZ2V0X2Ioc2Vs
Zik6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0ZhaWxlZCB0byBnZXQgYXR0cmliJykK
KyAgICAgICAgYiA9IHByb3BlcnR5KF9nZXRfYikKKyAgICBpID0gRm9vKCkKKyAgICBhc3NlcnQg
aS5iID09IDIKKworCitkZWYgdGVzdF9hdHRyaWJ1dGVfbXVsdGlwbGUoKToKKyAgICBjbGFzcyBG
b28ob2JqZWN0KToKKyAgICAgICAgYiA9IDEKKyAgICBjbGFzcyBCYXIob2JqZWN0KToKKyAgICAg
ICAgYiA9IDIKKyAgICBhc3NlcnQgRm9vKCkuYiA9PSBCYXIoKS5iCisKKworZGVmIGdsb2JmKHgp
OgorICAgIHJldHVybiB4KzEKKworY2xhc3MgVGVzdFJhaXNlcyhvYmplY3QpOgorICAgIGRlZiB0
ZXN0X3JhaXNlcyhzZWxmKToKKyAgICAgICAgcyA9ICdxd2UnCisgICAgICAgIHJhaXNlcyhUeXBl
RXJyb3IsICJpbnQocykiKQorCisgICAgZGVmIHRlc3RfcmFpc2VzX2RvZXNudChzZWxmKToKKyAg
ICAgICAgcmFpc2VzKElPRXJyb3IsICJpbnQoJzMnKSIpCisKKyAgICBkZWYgdGVzdF9yYWlzZShz
ZWxmKToKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiZGVtbyBlcnJvciIpCisKKyAgICBkZWYg
dGVzdF90dXBsZWVycm9yKHNlbGYpOgorICAgICAgICBhLGIgPSBbMV0KKworICAgIGRlZiB0ZXN0
X3JlaW50ZXJwcmV0X2ZhaWxzX3dpdGhfcHJpbnRfZm9yX3RoZV9mdW5fb2ZfaXQoc2VsZik6Cisg
ICAgICAgIGwgPSBbMSwyLDNdCisgICAgICAgIHByaW50ICgibCBpcyAlciIgJSBsKQorICAgICAg
ICBhLGIgPSBsLnBvcCgpCisKKyAgICBkZWYgdGVzdF9zb21lX2Vycm9yKHNlbGYpOgorICAgICAg
ICBpZiBuYW1lbm90ZXhpOgorICAgICAgICAgICAgcGFzcworCisgICAgZGVmIGZ1bmMxKHNlbGYp
OgorICAgICAgICBhc3NlcnQgNDEgPT0gNDIKKworCisjIHRoYW5rcyB0byBNYXR0aGV3IFNjb3R0
IGZvciB0aGlzIHRlc3QKK2RlZiB0ZXN0X2R5bmFtaWNfY29tcGlsZV9zaG93c19uaWNlbHkoKToK
KyAgICBzcmMgPSAnZGVmIGZvbygpOlxuIGFzc2VydCAxID09IDBcbicKKyAgICBuYW1lID0gJ2Fi
Yy0xMjMnCisgICAgbW9kdWxlID0gcHkuc3RkLmltcC5uZXdfbW9kdWxlKG5hbWUpCisgICAgY29k
ZSA9IF9weXRlc3QuX2NvZGUuY29tcGlsZShzcmMsIG5hbWUsICdleGVjJykKKyAgICBweS5idWls
dGluLmV4ZWNfKGNvZGUsIG1vZHVsZS5fX2RpY3RfXykKKyAgICBweS5zdGQuc3lzLm1vZHVsZXNb
bmFtZV0gPSBtb2R1bGUKKyAgICBtb2R1bGUuZm9vKCkKKworCisKK2NsYXNzIFRlc3RNb3JlRXJy
b3JzKG9iamVjdCk6CisgICAgZGVmIHRlc3RfY29tcGxleF9lcnJvcihzZWxmKToKKyAgICAgICAg
ZGVmIGYoKToKKyAgICAgICAgICAgIHJldHVybiA0NAorICAgICAgICBkZWYgZygpOgorICAgICAg
ICAgICAgcmV0dXJuIDQzCisgICAgICAgIHNvbWVmdW5jKGYoKSwgZygpKQorCisgICAgZGVmIHRl
c3RfejFfdW5wYWNrX2Vycm9yKHNlbGYpOgorICAgICAgICBsID0gW10KKyAgICAgICAgYSxiICA9
IGwKKworICAgIGRlZiB0ZXN0X3oyX3R5cGVfZXJyb3Ioc2VsZik6CisgICAgICAgIGwgPSAzCisg
ICAgICAgIGEsYiAgPSBsCisKKyAgICBkZWYgdGVzdF9zdGFydHN3aXRoKHNlbGYpOgorICAgICAg
ICBzID0gIjEyMyIKKyAgICAgICAgZyA9ICI0NTYiCisgICAgICAgIGFzc2VydCBzLnN0YXJ0c3dp
dGgoZykKKworICAgIGRlZiB0ZXN0X3N0YXJ0c3dpdGhfbmVzdGVkKHNlbGYpOgorICAgICAgICBk
ZWYgZigpOgorICAgICAgICAgICAgcmV0dXJuICIxMjMiCisgICAgICAgIGRlZiBnKCk6CisgICAg
ICAgICAgICByZXR1cm4gIjQ1NiIKKyAgICAgICAgYXNzZXJ0IGYoKS5zdGFydHN3aXRoKGcoKSkK
KworICAgIGRlZiB0ZXN0X2dsb2JhbF9mdW5jKHNlbGYpOgorICAgICAgICBhc3NlcnQgaXNpbnN0
YW5jZShnbG9iZig0MiksIGZsb2F0KQorCisgICAgZGVmIHRlc3RfaW5zdGFuY2Uoc2VsZik6Cisg
ICAgICAgIHNlbGYueCA9IDYqNworICAgICAgICBhc3NlcnQgc2VsZi54ICE9IDQyCisKKyAgICBk
ZWYgdGVzdF9jb21wYXJlKHNlbGYpOgorICAgICAgICBhc3NlcnQgZ2xvYmYoMTApIDwgNQorCisg
ICAgZGVmIHRlc3RfdHJ5X2ZpbmFsbHkoc2VsZik6CisgICAgICAgIHggPSAxCisgICAgICAgIHRy
eToKKyAgICAgICAgICAgIGFzc2VydCB4ID09IDAKKyAgICAgICAgZmluYWxseToKKyAgICAgICAg
ICAgIHggPSAwCisKKworY2xhc3MgVGVzdEN1c3RvbUFzc2VydE1zZyhvYmplY3QpOgorCisgICAg
ZGVmIHRlc3Rfc2luZ2xlX2xpbmUoc2VsZik6CisgICAgICAgIGNsYXNzIEEob2JqZWN0KToKKyAg
ICAgICAgICAgIGEgPSAxCisgICAgICAgIGIgPSAyCisgICAgICAgIGFzc2VydCBBLmEgPT0gYiwg
IkEuYSBhcHBlYXJzIG5vdCB0byBiZSBiIgorCisgICAgZGVmIHRlc3RfbXVsdGlsaW5lKHNlbGYp
OgorICAgICAgICBjbGFzcyBBKG9iamVjdCk6CisgICAgICAgICAgICBhID0gMQorICAgICAgICBi
ID0gMgorICAgICAgICBhc3NlcnQgQS5hID09IGIsICJBLmEgYXBwZWFycyBub3QgdG8gYmUgYlxu
IiBcCisgICAgICAgICAgICAib3IgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGJcbm9uZSBvZiB0aG9z
ZSIKKworICAgIGRlZiB0ZXN0X2N1c3RvbV9yZXByKHNlbGYpOgorICAgICAgICBjbGFzcyBKU09O
KG9iamVjdCk6CisgICAgICAgICAgICBhID0gMQorICAgICAgICAgICAgZGVmIF9fcmVwcl9fKHNl
bGYpOgorICAgICAgICAgICAgICAgIHJldHVybiAiVGhpcyBpcyBKU09OXG57XG4gICdmb28nOiAn
YmFyJ1xufSIKKyAgICAgICAgYSA9IEpTT04oKQorICAgICAgICBiID0gMgorICAgICAgICBhc3Nl
cnQgYS5hID09IGIsIGEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fz
c2VydGlvbi9nbG9iYWxfdGVzdG1vZHVsZV9jb25maWcvY29uZnRlc3QucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vZXhhbXBsZS9hc3NlcnRpb24vZ2xvYmFsX3Rlc3Rtb2R1bGVfY29uZmlnL2NvbmZ0
ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjcxZThjNTRiZTUzODM1ZmE3MGRlNTBhZGNjOGNlNmI5NDQzZjFm
YmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hc3NlcnRp
b24vZ2xvYmFsX3Rlc3Rtb2R1bGVfY29uZmlnL2NvbmZ0ZXN0LnB5CkBAIC0wLDAgKzEsMTAgQEAK
K2ltcG9ydCBweXRlc3QsIHB5CitteWRpciA9IHB5LnBhdGgubG9jYWwoX19maWxlX18pLmRpcnBh
dGgoKQorCitkZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoaXRlbSk6CisgICAgaWYgaXNpbnN0YW5j
ZShpdGVtLCBweXRlc3QuRnVuY3Rpb24pOgorICAgICAgICBpZiBub3QgaXRlbS5mc3BhdGgucmVs
dG8obXlkaXIpOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIG1vZCA9IGl0ZW0uZ2V0cGFy
ZW50KHB5dGVzdC5Nb2R1bGUpLm9iagorICAgICAgICBpZiBoYXNhdHRyKG1vZCwgJ2hlbGxvJyk6
CisgICAgICAgICAgICBwcmludCAoIm1vZC5oZWxsbyAlciIgJSAobW9kLmhlbGxvLCkpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hc3NlcnRpb24vZ2xvYmFsX3Rlc3Rt
b2R1bGVfY29uZmlnL3Rlc3RfaGVsbG8ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9h
c3NlcnRpb24vZ2xvYmFsX3Rlc3Rtb2R1bGVfY29uZmlnL3Rlc3RfaGVsbG8ucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODI4ZTZiOWZkN2Q3YmUzYzI3MjBjOWIxZGU1ZWJlMzZkZjE3MzczYQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2VydGlvbi9nbG9iYWxfdGVzdG1v
ZHVsZV9jb25maWcvdGVzdF9oZWxsby5weQpAQCAtMCwwICsxLDUgQEAKKworaGVsbG8gPSAid29y
bGQiCisKK2RlZiB0ZXN0X2Z1bmMoKToKKyAgICBwYXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vZXhhbXBsZS9hc3NlcnRpb24vZ2xvYmFsX3Rlc3Rtb2R1bGVfY29uZmlnL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL2dsb2JhbF90
ZXN0bW9kdWxlX2NvbmZpZy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDViNGQ4MDVlYmU0
NzVlYTg1ZDdlNDE3ZWZhZTQ2NTRjNzQwYTExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL2dsb2JhbF90ZXN0bW9kdWxlX2NvbmZpZy93M2Mt
aW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
ZXhhbXBsZS9hc3NlcnRpb24vZ2xvYmFsX3Rlc3Rtb2R1bGVfY29uZmlnL2NvbmZ0ZXN0LnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL2dsb2JhbF90ZXN0bW9kdWxlX2Nv
bmZpZy90ZXN0X2hlbGxvLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBs
ZS9hc3NlcnRpb24vdGVzdF9mYWlsdXJlcy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxl
L2Fzc2VydGlvbi90ZXN0X2ZhaWx1cmVzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlNWNkMjBiMTk0NTgwYjdk
NGVmNmFmOTM0NjMwMzViNTc3MWFhMWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vZXhhbXBsZS9hc3NlcnRpb24vdGVzdF9mYWlsdXJlcy5weQpAQCAtMCwwICsxLDE0IEBA
CisKK2ltcG9ydCBweQorZmFpbHVyZV9kZW1vID0gcHkucGF0aC5sb2NhbChfX2ZpbGVfXykuZGly
cGF0aCgnZmFpbHVyZV9kZW1vLnB5JykKK3B5dGVzdF9wbHVnaW5zID0gJ3B5dGVzdGVyJywKKwor
ZGVmIHRlc3RfZmFpbHVyZV9kZW1vX2ZhaWxzX3Byb3Blcmx5KHRlc3RkaXIpOgorICAgIHRhcmdl
dCA9IHRlc3RkaXIudG1wZGlyLmpvaW4oZmFpbHVyZV9kZW1vLmJhc2VuYW1lKQorICAgIGZhaWx1
cmVfZGVtby5jb3B5KHRhcmdldCkKKyAgICBmYWlsdXJlX2RlbW8uY29weSh0ZXN0ZGlyLnRtcGRp
ci5qb2luKGZhaWx1cmVfZGVtby5iYXNlbmFtZSkpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QodGFyZ2V0LCBzeXNwYXRoaW5zZXJ0PVRydWUpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKFsKKyAgICAgICAgIio0MiBmYWlsZWQqIgorICAgIF0pCisgICAgYXNzZXJ0IHJl
c3VsdC5yZXQgIT0gMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNz
ZXJ0aW9uL3Rlc3Rfc2V0dXBfZmxvd19leGFtcGxlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4
YW1wbGUvYXNzZXJ0aW9uL3Rlc3Rfc2V0dXBfZmxvd19leGFtcGxlLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEw
MGVmZmE0OTlmM2U0YmE4ZTQyYzk1ZjUwZWMxMTI4OGNhNWMwZjMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hc3NlcnRpb24vdGVzdF9zZXR1cF9mbG93X2V4
YW1wbGUucHkKQEAgLTAsMCArMSw0MiBAQAorZGVmIHNldHVwX21vZHVsZShtb2R1bGUpOgorICAg
IG1vZHVsZS5UZXN0U3RhdGVGdWxsVGhpbmcuY2xhc3Njb3VudCA9IDAKKworY2xhc3MgVGVzdFN0
YXRlRnVsbFRoaW5nKG9iamVjdCk6CisgICAgZGVmIHNldHVwX2NsYXNzKGNscyk6CisgICAgICAg
IGNscy5jbGFzc2NvdW50ICs9IDEKKworICAgIGRlZiB0ZWFyZG93bl9jbGFzcyhjbHMpOgorICAg
ICAgICBjbHMuY2xhc3Njb3VudCAtPSAxCisKKyAgICBkZWYgc2V0dXBfbWV0aG9kKHNlbGYsIG1l
dGhvZCk6CisgICAgICAgIHNlbGYuaWQgPSBldmFsKG1ldGhvZC5fX25hbWVfX1s1Ol0pCisKKyAg
ICBkZWYgdGVzdF80MihzZWxmKToKKyAgICAgICAgYXNzZXJ0IHNlbGYuY2xhc3Njb3VudCA9PSAx
CisgICAgICAgIGFzc2VydCBzZWxmLmlkID09IDQyCisKKyAgICBkZWYgdGVzdF8yMyhzZWxmKToK
KyAgICAgICAgYXNzZXJ0IHNlbGYuY2xhc3Njb3VudCA9PSAxCisgICAgICAgIGFzc2VydCBzZWxm
LmlkID09IDIzCisKK2RlZiB0ZWFyZG93bl9tb2R1bGUobW9kdWxlKToKKyAgICBhc3NlcnQgbW9k
dWxlLlRlc3RTdGF0ZUZ1bGxUaGluZy5jbGFzc2NvdW50ID09IDAKKworIiIiIEZvciB0aGlzIGV4
YW1wbGUgdGhlIGNvbnRyb2wgZmxvdyBoYXBwZW5zIGFzIGZvbGxvd3M6OgorICAgIGltcG9ydCB0
ZXN0X3NldHVwX2Zsb3dfZXhhbXBsZQorICAgIHNldHVwX21vZHVsZSh0ZXN0X3NldHVwX2Zsb3df
ZXhhbXBsZSkKKyAgICAgICBzZXR1cF9jbGFzcyhUZXN0U3RhdGVGdWxsVGhpbmcpCisgICAgICAg
ICAgIGluc3RhbmNlID0gVGVzdFN0YXRlRnVsbFRoaW5nKCkKKyAgICAgICAgICAgc2V0dXBfbWV0
aG9kKGluc3RhbmNlLCBpbnN0YW5jZS50ZXN0XzQyKQorICAgICAgICAgICAgICBpbnN0YW5jZS50
ZXN0XzQyKCkKKyAgICAgICAgICAgc2V0dXBfbWV0aG9kKGluc3RhbmNlLCBpbnN0YW5jZS50ZXN0
XzIzKQorICAgICAgICAgICAgICBpbnN0YW5jZS50ZXN0XzIzKCkKKyAgICAgICB0ZWFyZG93bl9j
bGFzcyhUZXN0U3RhdGVGdWxsVGhpbmcpCisgICAgdGVhcmRvd25fbW9kdWxlKHRlc3Rfc2V0dXBf
Zmxvd19leGFtcGxlKQorCitOb3RlIHRoYXQgYGBzZXR1cF9jbGFzcyhUZXN0U3RhdGVGdWxsVGhp
bmcpYGAgaXMgY2FsbGVkIGFuZCBub3QKK2BgVGVzdFN0YXRlRnVsbFRoaW5nLnNldHVwX2NsYXNz
KClgYCB3aGljaCB3b3VsZCByZXF1aXJlIHlvdQordG8gaW5zZXJ0IGBgc2V0dXBfY2xhc3MgPSBj
bGFzc21ldGhvZChzZXR1cF9jbGFzcylgYCB0byBtYWtlCit5b3VyIHNldHVwIGZ1bmN0aW9uIGNh
bGxhYmxlLgorIiIiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fz
c2VydGlvbi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2Vy
dGlvbi93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZDlmNGE2NmI1OTUzM2RmYzViZmMzZWI2
ZmNkYmJhNGM1MDc2ZWRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4
YW1wbGUvYXNzZXJ0aW9uL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTkgQEAKK1RoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRo
dWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2VydGlvbi9mYWlsdXJlX2RlbW8ucHkKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hc3NlcnRpb24vdGVzdF9mYWlsdXJlcy5weQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2VydGlvbi90ZXN0X3NldHVwX2Zsb3dfZXhhbXBs
ZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXR0aWMucnN0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXR0aWMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllMTI0YTVk
MDlkMzVhMzQ2NmMyMDI1MDM3NzVjMTZmOTBhYjExMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hdHRpYy5yc3QKQEAgLTAsMCArMSw3OSBAQAorCisuLiBf
YGFjY2VwdCBleGFtcGxlYDoKKworZXhhbXBsZTogc3BlY2lmeWluZyBhbmQgc2VsZWN0aW5nIGFj
Y2VwdGFuY2UgdGVzdHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIHNvdXJjZWNvZGU6OiBweXRob24KKworICAgICMg
Li9jb25mdGVzdC5weQorICAgIGRlZiBweXRlc3Rfb3B0aW9uKHBhcnNlcik6CisgICAgICAgIGdy
b3VwID0gcGFyc2VyLmdldGdyb3VwKCJteXByb2plY3QiKQorICAgICAgICBncm91cC5hZGRvcHRp
b24oIi1BIiwgZGVzdD0iYWNjZXB0YW5jZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAg
ICAgICBoZWxwPSJydW4gKHNsb3cpIGFjY2VwdGFuY2UgdGVzdHMiKQorCisgICAgZGVmIHB5dGVz
dF9mdW5jYXJnX19hY2NlcHQocmVxdWVzdCk6CisgICAgICAgIHJldHVybiBBY2NlcHRGaXh0dXJl
KHJlcXVlc3QpCisKKyAgICBjbGFzcyBBY2NlcHRGaXh0dXJlKG9iamVjdCk6CisgICAgICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgICAgIGlmIG5vdCByZXF1ZXN0LmNv
bmZpZy5nZXRvcHRpb24oJ2FjY2VwdGFuY2UnKToKKyAgICAgICAgICAgICAgICBweXRlc3Quc2tp
cCgic3BlY2lmeSAtQSB0byBydW4gYWNjZXB0YW5jZSB0ZXN0cyIpCisgICAgICAgICAgICBzZWxm
LnRtcGRpciA9IHJlcXVlc3QuY29uZmlnLm1rdGVtcChyZXF1ZXN0LmZ1bmN0aW9uLl9fbmFtZV9f
LCBudW1iZXJlZD1UcnVlKQorCisgICAgICAgIGRlZiBydW4oc2VsZiwgY21kKToKKyAgICAgICAg
ICAgICIiIiBjYWxsZWQgYnkgdGVzdCBjb2RlIHRvIGV4ZWN1dGUgYW4gYWNjZXB0YW5jZSB0ZXN0
LiAiIiIKKyAgICAgICAgICAgIHNlbGYudG1wZGlyLmNoZGlyKCkKKyAgICAgICAgICAgIHJldHVy
biBweS5wcm9jZXNzLmNtZGV4ZWMoY21kKQorCisKK2FuZCB0aGUgYWN0dWFsIHRlc3QgZnVuY3Rp
b24gZXhhbXBsZToKKworLi4gc291cmNlY29kZTo6IHB5dGhvbgorCisgICAgZGVmIHRlc3Rfc29t
ZV9hY2NlcHRhbmNlX2FzcGVjdChhY2NlcHQpOgorICAgICAgICBhY2NlcHQudG1wZGlyLm1rZGly
KCJzb21lc3ViIikKKyAgICAgICAgcmVzdWx0ID0gYWNjZXB0LnJ1bigibHMgLWxhIikKKyAgICAg
ICAgYXNzZXJ0ICJzb21lc3ViIiBpbiByZXN1bHQKKworSWYgeW91IHJ1biB0aGlzIHRlc3Qgd2l0
aG91dCBzcGVjaWZ5aW5nIGEgY29tbWFuZCBsaW5lIG9wdGlvbgordGhlIHRlc3Qgd2lsbCBnZXQg
c2tpcHBlZCB3aXRoIGFuIGFwcHJvcHJpYXRlIG1lc3NhZ2UuIE90aGVyd2lzZQoreW91IGNhbiBz
dGFydCB0byBhZGQgY29udmVuaWVuY2UgYW5kIHRlc3Qgc3VwcG9ydCBtZXRob2RzCit0byB5b3Vy
IEFjY2VwdEZpeHR1cmUgYW5kIGRyaXZlIHJ1bm5pbmcgb2YgdG9vbHMgb3IKK2FwcGxpY2F0aW9u
cyBhbmQgcHJvdmlkZSB3YXlzIHRvIGRvIGFzc2VydGlvbnMgYWJvdXQKK3RoZSBvdXRwdXQuCisK
Ky4uIF9gZGVjb3JhdGUgYSBmdW5jYXJnYDoKKworZXhhbXBsZTogZGVjb3JhdGluZyBhIGZ1bmNh
cmcgaW4gYSB0ZXN0IG1vZHVsZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRm9yIGxhcmdlciBzY2FsZSBzZXR1cHMgaXQn
cyBzb21ldGltZXMgdXNlZnVsIHRvIGRlY29yYXRlCithIGZ1bmNhcmcganVzdCBmb3IgYSBwYXJ0
aWN1bGFyIHRlc3QgbW9kdWxlLiAgV2UgY2FuCitleHRlbmQgdGhlIGBhY2NlcHQgZXhhbXBsZWBf
IGJ5IHB1dHRpbmcgdGhpcyBpbiBvdXIgdGVzdCBtb2R1bGU6CisKKy4uIHNvdXJjZWNvZGU6OiBw
eXRob24KKworICAgIGRlZiBweXRlc3RfZnVuY2FyZ19fYWNjZXB0KHJlcXVlc3QpOgorICAgICAg
ICAjIGNhbGwgdGhlIG5leHQgZmFjdG9yeSAobGl2aW5nIGluIG91ciBjb25mdGVzdC5weSkKKyAg
ICAgICAgYXJnID0gcmVxdWVzdC5nZXRmdW5jYXJndmFsdWUoImFjY2VwdCIpCisgICAgICAgICMg
Y3JlYXRlIGEgc3BlY2lhbCBsYXlvdXQgaW4gb3VyIHRlbXBkaXIKKyAgICAgICAgYXJnLnRtcGRp
ci5ta2Rpcigic3BlY2lhbCIpCisgICAgICAgIHJldHVybiBhcmcKKworICAgIGNsYXNzIFRlc3RT
cGVjaWFsQWNjZXB0YW5jZShvYmplY3QpOgorICAgICAgICBkZWYgdGVzdF9zb21ldGVzdChzZWxm
LCBhY2NlcHQpOgorICAgICAgICAgICAgYXNzZXJ0IGFjY2VwdC50bXBkaXIuam9pbigic3BlY2lh
bCIpLmNoZWNrKCkKKworT3VyIG1vZHVsZSBsZXZlbCBmYWN0b3J5IHdpbGwgYmUgaW52b2tlZCBm
aXJzdCBhbmQgaXQgY2FuCithc2sgaXRzIHJlcXVlc3Qgb2JqZWN0IHRvIGNhbGwgdGhlIG5leHQg
ZmFjdG9yeSBhbmQgdGhlbgorZGVjb3JhdGUgaXRzIHJlc3VsdC4gIFRoaXMgbWVjaGFuaXNtIGFs
bG93cyB1cyB0byBzdGF5CitpZ25vcmFudCBvZiBob3cvd2hlcmUgdGhlIGZ1bmN0aW9uIGFyZ3Vt
ZW50IGlzIHByb3ZpZGVkIC0KK2luIG91ciBleGFtcGxlIGZyb20gYSBgY29uZnRlc3QgcGx1Z2lu
YF8uCisKK3NpZGVub3RlOiB0aGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSB1c2VkIGhlcmUgYXJlIGlu
c3RhbmNlcyBvZgordGhlIGBweS5wYXRoLmxvY2FsYF8gY2xhc3Mgd2hpY2ggcHJvdmlkZXMgbWFu
eSBvZiB0aGUgb3MucGF0aAorbWV0aG9kcyBpbiBhIGNvbnZlbmllbnQgd2F5LgorCisuLiBfYHB5
LnBhdGgubG9jYWxgOiAuLi9wYXRoLmh0bWwjbG9jYWwKKy4uIF9gY29uZnRlc3QgcGx1Z2luYDog
Y3VzdG9taXplLmh0bWwjY29uZnRlc3RwbHVnaW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9leGFtcGxlL2NvbmZ0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29u
ZnRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjkwNTczOGM0ZjZjN2FlNWVmNmQ4OWIxOWZlYjE4MzVkNzQ5
ZTAwNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2NvbmZ0
ZXN0LnB5CkBAIC0wLDAgKzEgQEAKK2NvbGxlY3RfaWdub3JlID0gWyJub25weXRob24iXQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvY29uZnRlc3Qu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9jb25mdGVzdC5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lYTNjMWNmZmI3MmZhNTJmOGIwZTQwODIwZDg3NzY2N2ZjN2FmMmE1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvY29u
ZnRlc3QucHkKQEAgLTAsMCArMSwxOCBAQAorCitpbXBvcnQgcHl0ZXN0CisKK0BweXRlc3QuZml4
dHVyZSgic2Vzc2lvbiIpCitkZWYgc2V0dXAocmVxdWVzdCk6CisgICAgc2V0dXAgPSBDb3N0bHlT
ZXR1cCgpCisgICAgeWllbGQgc2V0dXAKKyAgICBzZXR1cC5maW5hbGl6ZSgpCisKK2NsYXNzIENv
c3RseVNldHVwKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBpbXBv
cnQgdGltZQorICAgICAgICBwcmludCAoInBlcmZvcm1pbmcgY29zdGx5IHNldHVwIikKKyAgICAg
ICAgdGltZS5zbGVlcCg1KQorICAgICAgICBzZWxmLnRpbWVjb3N0bHkgPSAxCisKKyAgICBkZWYg
ZmluYWxpemUoc2VsZik6CisgICAgICAgIGRlbCBzZWxmLnRpbWVjb3N0bHkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjEvX19pbml0X18ucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIxL19faW5pdF9fLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjc5MmQ2MDA1NDg5ZWJlZTYyY2RlMDIwNjZmMTljNTUyMWU2MjA0NTEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9z
dWIxL19faW5pdF9fLnB5CkBAIC0wLDAgKzEgQEAKKyMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjEvdGVzdF9xdWljay5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjEvdGVzdF9xdWljay5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kOTc2NTc4NjdlMDIxZGJlOGM2NDI2N2U1ZWI0Nzc4NDJkNjczYzNhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMS90ZXN0
X3F1aWNrLnB5CkBAIC0wLDAgKzEsMyBAQAorCitkZWYgdGVzdF9xdWljayhzZXR1cCk6CisgICAg
cGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAv
c3ViMS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNl
dHVwL3N1YjEvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTM3ZjY2YTE4YmE3MjA5MDQ4Mjg0
OWVmZjQ4Y2Q3MmMzNGM3NzgzZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjEvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOCBA
QAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlo
dHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitE
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qg
b2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMS9f
X2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjEv
dGVzdF9xdWljay5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29z
dGx5c2V0dXAvc3ViMi9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nv
c3RseXNldHVwL3N1YjIvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzkyZDYwMDU0ODllYmVlNjJj
ZGUwMjA2NmYxOWM1NTIxZTYyMDQ1MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjIvX19pbml0X18ucHkKQEAgLTAsMCArMSBAQAor
IwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3Vi
Mi90ZXN0X3R3by5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1
YjIvdGVzdF90d28ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmVkNmVlNGQ4OThmZjZlZmE3NmU2YTFkNDkwYzRj
ZDFiMGU4YzA0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxl
L2Nvc3RseXNldHVwL3N1YjIvdGVzdF90d28ucHkKQEAgLTAsMCArMSw2IEBACitkZWYgdGVzdF9z
b21ldGhpbmcoc2V0dXApOgorICAgIGFzc2VydCBzZXR1cC50aW1lY29zdGx5ID09IDEKKworZGVm
IHRlc3Rfc29tZXRoaW5nX21vcmUoc2V0dXApOgorICAgIGFzc2VydCBzZXR1cC50aW1lY29zdGx5
ID09IDEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0
dXAvc3ViMi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3Rs
eXNldHVwL3N1YjIvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmE2NDIwZWM4M2Q4Nzc4YmI1
MGJiZWEwYTcwZjUyZWZiOTlmNzI2YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjIvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwx
OCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
KwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAor
CitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xp
c3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3Vi
Mi9fX2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1
YjIvdGVzdF90d28ucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nv
c3RseXNldHVwL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29z
dGx5c2V0dXAvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODljOGM5OWNjOGJjOWY3MmFhMDM2
NTJmOTNlMGRkM2Q5MThmNjE4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9leGFtcGxlL2Nvc3RseXNldHVwL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTcgQEAKK1Ro
ZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBv
c2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJ
bnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6
Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xz
L1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9U
IG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRp
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZp
bGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL2NvbmZ0ZXN0LnB5
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9pbmRleC5yc3QgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9pbmRleC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjYzY2I4MjJhNDFj
YmVjNzY0OWU3YjA3YWI0ZDk0NjFhZWRkY2JhNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9leGFtcGxlL2luZGV4LnJzdApAQCAtMCwwICsxLDM0IEBACisKKy4uIF9leGFt
cGxlczoKKworRXhhbXBsZXMgYW5kIGN1c3RvbWl6YXRpb24gdHJpY2tzCis9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KKworSGVyZSBpcyBhIChncm93aW5nKSBsaXN0IG9mIGV4YW1w
bGVzLiA6cmVmOmBDb250YWN0IDxjb250YWN0PmAgdXMgaWYgeW91CituZWVkIG1vcmUgZXhhbXBs
ZXMgb3IgaGF2ZSBxdWVzdGlvbnMuIEFsc28gdGFrZSBhIGxvb2sgYXQgdGhlCis6cmVmOmBjb21w
cmVoZW5zaXZlIGRvY3VtZW50YXRpb24gPHRvYz5gIHdoaWNoIGNvbnRhaW5zIG1hbnkgZXhhbXBs
ZQorc25pcHBldHMgYXMgd2VsbC4gIEFsc28sIGBweXRlc3Qgb24gc3RhY2tvdmVyZmxvdy5jb20K
KzxodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vc2VhcmNoP3E9cHl0ZXN0PmBfIG9mdGVuIGNvbWVz
IHdpdGggZXhhbXBsZQorYW5zd2Vycy4KKworRm9yIGJhc2ljIGV4YW1wbGVzLCBzZWUKKworLSA6
ZG9jOmAuLi9nZXR0aW5nLXN0YXJ0ZWRgIGZvciBiYXNpYyBpbnRyb2R1Y3RvcnkgZXhhbXBsZXMK
Ky0gOnJlZjpgYXNzZXJ0YCBmb3IgYmFzaWMgYXNzZXJ0aW9uIGV4YW1wbGVzCistIDpyZWY6YGZp
eHR1cmVzYCBmb3IgYmFzaWMgZml4dHVyZS9zZXR1cCBleGFtcGxlcworLSA6cmVmOmBwYXJhbWV0
cml6ZWAgZm9yIGJhc2ljIHRlc3QgZnVuY3Rpb24gcGFyYW1ldHJpemF0aW9uCistIDpkb2M6YC4u
L3VuaXR0ZXN0YCBmb3IgYmFzaWMgdW5pdHRlc3QgaW50ZWdyYXRpb24KKy0gOmRvYzpgLi4vbm9z
ZWAgZm9yIGJhc2ljIG5vc2V0ZXN0cyBpbnRlZ3JhdGlvbgorCitUaGUgZm9sbG93aW5nIGV4YW1w
bGVzIGFpbSBhdCB2YXJpb3VzIHVzZSBjYXNlcyB5b3UgbWlnaHQgZW5jb3VudGVyLgorCisuLiB0
b2N0cmVlOjoKKyAgIDptYXhkZXB0aDogMgorCisgICByZXBvcnRpbmdkZW1vCisgICBzaW1wbGUK
KyAgIHBhcmFtZXRyaXplCisgICBtYXJrZXJzCisgICBzcGVjaWFsCisgICBweXRob25jb2xsZWN0
aW9uCisgICBub25weXRob24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxl
L21hcmtlcnMucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvbWFya2Vycy5yc3QKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDNjMjBkNWI3ZGMxOGNhNzM2YmM1NzA5ODFkZjBkODJkMDI5OGRhZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL21hcmtlcnMucnN0CkBAIC0w
LDAgKzEsNjQyIEBACisKKy4uIF9gbWFyayBleGFtcGxlc2A6CisKK1dvcmtpbmcgd2l0aCBjdXN0
b20gbWFya2VycworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorCitIZXJlIGFyZSBzb21lIGV4YW1wbGUgdXNpbmcgdGhlIDpyZWY6YG1hcmtgIG1lY2hh
bmlzbS4KKworTWFya2luZyB0ZXN0IGZ1bmN0aW9ucyBhbmQgc2VsZWN0aW5nIHRoZW0gZm9yIGEg
cnVuCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisKK1lvdSBjYW4gIm1hcmsiIGEgdGVzdCBmdW5jdGlvbiB3aXRoIGN1c3RvbSBtZXRhZGF0YSBs
aWtlIHRoaXM6OgorCisgICAgIyBjb250ZW50IG9mIHRlc3Rfc2VydmVyLnB5CisKKyAgICBpbXBv
cnQgcHl0ZXN0CisgICAgQHB5dGVzdC5tYXJrLndlYnRlc3QKKyAgICBkZWYgdGVzdF9zZW5kX2h0
dHAoKToKKyAgICAgICAgcGFzcyAjIHBlcmZvcm0gc29tZSB3ZWJ0ZXN0IHRlc3QgZm9yIHlvdXIg
YXBwCisgICAgZGVmIHRlc3Rfc29tZXRoaW5nX3F1aWNrKCk6CisgICAgICAgIHBhc3MKKyAgICBk
ZWYgdGVzdF9hbm90aGVyKCk6CisgICAgICAgIHBhc3MKKyAgICBjbGFzcyBUZXN0Q2xhc3Mob2Jq
ZWN0KToKKyAgICAgICAgZGVmIHRlc3RfbWV0aG9kKHNlbGYpOgorICAgICAgICAgICAgcGFzcwor
CisuLiB2ZXJzaW9uYWRkZWQ6OiAyLjIKKworWW91IGNhbiB0aGVuIHJlc3RyaWN0IGEgdGVzdCBy
dW4gdG8gb25seSBydW4gdGVzdHMgbWFya2VkIHdpdGggYGB3ZWJ0ZXN0YGA6OgorCisgICAgJCBw
eXRlc3QgLXYgLW0gd2VidGVzdAorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0
IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBwbGF0Zm9y
bSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0w
LngueSAtLSAkUFlUSE9OX1BSRUZJWC9iaW4vcHl0aG9uMy41CisgICAgY2FjaGVkaXI6IC5jYWNo
ZQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgY29sbGVjdGlu
ZyAuLi4gY29sbGVjdGVkIDQgaXRlbXMKKyAgICAKKyAgICB0ZXN0X3NlcnZlci5weTo6dGVzdF9z
ZW5kX2h0dHAgUEFTU0VEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKyAg
ICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09IDMgdGVzdHMgZGVzZWxlY3RlZCA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgPT09PT09PT09PT09PT09PT09IDEgcGFz
c2VkLCAzIGRlc2VsZWN0ZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PQorCitP
ciB0aGUgaW52ZXJzZSwgcnVubmluZyBhbGwgdGVzdHMgZXhjZXB0IHRoZSB3ZWJ0ZXN0IG9uZXM6
OgorCisgICAgJCBweXRlc3QgLXYgLW0gIm5vdCB3ZWJ0ZXN0IgorICAgID09PT09PT09PT09PT09
PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwg
cHktMS54LnksIHBsdWdneS0wLngueSAtLSAkUFlUSE9OX1BSRUZJWC9iaW4vcHl0aG9uMy41Cisg
ICAgY2FjaGVkaXI6IC5jYWNoZQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZp
bGU6CisgICAgY29sbGVjdGluZyAuLi4gY29sbGVjdGVkIDQgaXRlbXMKKyAgICAKKyAgICB0ZXN0
X3NlcnZlci5weTo6dGVzdF9zb21ldGhpbmdfcXVpY2sgUEFTU0VEICAgICAgICAgICAgICAgICAg
ICAgICAgICBbIDMzJV0KKyAgICB0ZXN0X3NlcnZlci5weTo6dGVzdF9hbm90aGVyIFBBU1NFRCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbIDY2JV0KKyAgICB0ZXN0X3NlcnZlci5w
eTo6VGVzdENsYXNzOjp0ZXN0X21ldGhvZCBQQVNTRUQgICAgICAgICAgICAgICAgICAgICAgICBb
MTAwJV0KKyAgICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09IDEgdGVzdHMgZGVz
ZWxlY3RlZCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgPT09PT09PT09PT09PT09
PT09IDMgcGFzc2VkLCAxIGRlc2VsZWN0ZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09
PT09PQorCitTZWxlY3RpbmcgdGVzdHMgYmFzZWQgb24gdGhlaXIgbm9kZSBJRAorLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworWW91IGNhbiBwcm92aWRlIG9uZSBvciBt
b3JlIDpyZWY6YG5vZGUgSURzIDxub2RlLWlkPmAgYXMgcG9zaXRpb25hbAorYXJndW1lbnRzIHRv
IHNlbGVjdCBvbmx5IHNwZWNpZmllZCB0ZXN0cy4gVGhpcyBtYWtlcyBpdCBlYXN5IHRvIHNlbGVj
dAordGVzdHMgYmFzZWQgb24gdGhlaXIgbW9kdWxlLCBjbGFzcywgbWV0aG9kLCBvciBmdW5jdGlv
biBuYW1lOjoKKworICAgICQgcHl0ZXN0IC12IHRlc3Rfc2VydmVyLnB5OjpUZXN0Q2xhc3M6OnRl
c3RfbWV0aG9kCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBz
dGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0t
IFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55IC0tICRQ
WVRIT05fUFJFRklYL2Jpbi9weXRob24zLjUKKyAgICBjYWNoZWRpcjogLmNhY2hlCisgICAgcm9v
dGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBjb2xsZWN0aW5nIC4uLiBjb2xs
ZWN0ZWQgMSBpdGVtCisgICAgCisgICAgdGVzdF9zZXJ2ZXIucHk6OlRlc3RDbGFzczo6dGVzdF9t
ZXRob2QgUEFTU0VEICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCisgICAgCisgICAgPT09
PT09PT09PT09PT09PT09PT09PT09PSAxIHBhc3NlZCBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09
PT09PT09PT09PT09PT09PQorCitZb3UgY2FuIGFsc28gc2VsZWN0IG9uIHRoZSBjbGFzczo6CisK
KyAgICAkIHB5dGVzdCAtdiB0ZXN0X3NlcnZlci5weTo6VGVzdENsYXNzCisgICAgPT09PT09PT09
PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09
PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMu
eC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55IC0tICRQWVRIT05fUFJFRklYL2Jpbi9weXRob24z
LjUKKyAgICBjYWNoZWRpcjogLmNhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwg
aW5pZmlsZToKKyAgICBjb2xsZWN0aW5nIC4uLiBjb2xsZWN0ZWQgMSBpdGVtCisgICAgCisgICAg
dGVzdF9zZXJ2ZXIucHk6OlRlc3RDbGFzczo6dGVzdF9tZXRob2QgUEFTU0VEICAgICAgICAgICAg
ICAgICAgICAgICAgWzEwMCVdCisgICAgCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PSAx
IHBhc3NlZCBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09PT09PT09PQorCitPciBz
ZWxlY3QgbXVsdGlwbGUgbm9kZXM6OgorCisgICQgcHl0ZXN0IC12IHRlc3Rfc2VydmVyLnB5OjpU
ZXN0Q2xhc3MgdGVzdF9zZXJ2ZXIucHk6OnRlc3Rfc2VuZF9odHRwCisgID09PT09PT09PT09PT09
PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKyAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5
LTEueC55LCBwbHVnZ3ktMC54LnkgLS0gJFBZVEhPTl9QUkVGSVgvYmluL3B5dGhvbjMuNQorICBj
YWNoZWRpcjogLmNhY2hlCisgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6Cisg
IGNvbGxlY3RpbmcgLi4uIGNvbGxlY3RlZCAyIGl0ZW1zCisgIAorICB0ZXN0X3NlcnZlci5weTo6
VGVzdENsYXNzOjp0ZXN0X21ldGhvZCBQQVNTRUQgICAgICAgICAgICAgICAgICAgICAgICBbIDUw
JV0KKyAgdGVzdF9zZXJ2ZXIucHk6OnRlc3Rfc2VuZF9odHRwIFBBU1NFRCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgWzEwMCVdCisgIAorICA9PT09PT09PT09PT09PT09PT09PT09PT09
IDIgcGFzc2VkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4u
IF9ub2RlLWlkOgorCisuLiBub3RlOjoKKworICAgIE5vZGUgSURzIGFyZSBvZiB0aGUgZm9ybSBg
YG1vZHVsZS5weTo6Y2xhc3M6Om1ldGhvZGBgIG9yCisgICAgYGBtb2R1bGUucHk6OmZ1bmN0aW9u
YGAuICBOb2RlIElEcyBjb250cm9sIHdoaWNoIHRlc3RzIGFyZQorICAgIGNvbGxlY3RlZCwgc28g
YGBtb2R1bGUucHk6OmNsYXNzYGAgd2lsbCBzZWxlY3QgYWxsIHRlc3QgbWV0aG9kcworICAgIG9u
IHRoZSBjbGFzcy4gIE5vZGVzIGFyZSBhbHNvIGNyZWF0ZWQgZm9yIGVhY2ggcGFyYW1ldGVyIG9m
IGEKKyAgICBwYXJhbWV0cml6ZWQgZml4dHVyZSBvciB0ZXN0LCBzbyBzZWxlY3RpbmcgYSBwYXJh
bWV0cml6ZWQgdGVzdAorICAgIG11c3QgaW5jbHVkZSB0aGUgcGFyYW1ldGVyIHZhbHVlLCBlLmcu
CisgICAgYGBtb2R1bGUucHk6OmZ1bmN0aW9uW3BhcmFtXWBgLgorCisgICAgTm9kZSBJRHMgZm9y
IGZhaWxpbmcgdGVzdHMgYXJlIGRpc3BsYXllZCBpbiB0aGUgdGVzdCBzdW1tYXJ5IGluZm8KKyAg
ICB3aGVuIHJ1bm5pbmcgcHl0ZXN0IHdpdGggdGhlIGBgLXJmYGAgb3B0aW9uLiAgWW91IGNhbiBh
bHNvCisgICAgY29uc3RydWN0IE5vZGUgSURzIGZyb20gdGhlIG91dHB1dCBvZiBgYHB5dGVzdCAt
LWNvbGxlY3Rvbmx5YGAuCisKK1VzaW5nIGBgLWsgZXhwcmBgIHRvIHNlbGVjdCB0ZXN0cyBiYXNl
ZCBvbiB0aGVpciBuYW1lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKKy4uIHZlcnNpb25hZGRlZDogMi4wLzIuMy40CisKK1lvdSBjYW4g
dXNlIHRoZSBgYC1rYGAgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBzcGVjaWZ5IGFuIGV4cHJlc3Np
b24KK3doaWNoIGltcGxlbWVudHMgYSBzdWJzdHJpbmcgbWF0Y2ggb24gdGhlIHRlc3QgbmFtZXMg
aW5zdGVhZCBvZiB0aGUKK2V4YWN0IG1hdGNoIG9uIG1hcmtlcnMgdGhhdCBgYC1tYGAgcHJvdmlk
ZXMuICBUaGlzIG1ha2VzIGl0IGVhc3kgdG8KK3NlbGVjdCB0ZXN0cyBiYXNlZCBvbiB0aGVpciBu
YW1lczo6CisKKyAgICAkIHB5dGVzdCAtdiAtayBodHRwICAjIHJ1bm5pbmcgd2l0aCB0aGUgYWJv
dmUgZGVmaW5lZCBleGFtcGxlIG1vZHVsZQorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09
PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBw
bGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBs
dWdneS0wLngueSAtLSAkUFlUSE9OX1BSRUZJWC9iaW4vcHl0aG9uMy41CisgICAgY2FjaGVkaXI6
IC5jYWNoZQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgY29s
bGVjdGluZyAuLi4gY29sbGVjdGVkIDQgaXRlbXMKKyAgICAKKyAgICB0ZXN0X3NlcnZlci5weTo6
dGVzdF9zZW5kX2h0dHAgUEFTU0VEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAw
JV0KKyAgICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09IDMgdGVzdHMgZGVzZWxl
Y3RlZCA9PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgPT09PT09PT09PT09PT09PT09
IDEgcGFzc2VkLCAzIGRlc2VsZWN0ZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09
PQorCitBbmQgeW91IGNhbiBhbHNvIHJ1biBhbGwgdGVzdHMgZXhjZXB0IHRoZSBvbmVzIHRoYXQg
bWF0Y2ggdGhlIGtleXdvcmQ6OgorCisgICAgJCBweXRlc3QgLWsgIm5vdCBzZW5kX2h0dHAiIC12
CisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAz
LngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55IC0tICRQWVRIT05fUFJF
RklYL2Jpbi9weXRob24zLjUKKyAgICBjYWNoZWRpcjogLmNhY2hlCisgICAgcm9vdGRpcjogJFJF
R0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBjb2xsZWN0aW5nIC4uLiBjb2xsZWN0ZWQgNCBp
dGVtcworICAgIAorICAgIHRlc3Rfc2VydmVyLnB5Ojp0ZXN0X3NvbWV0aGluZ19xdWljayBQQVNT
RUQgICAgICAgICAgICAgICAgICAgICAgICAgIFsgMzMlXQorICAgIHRlc3Rfc2VydmVyLnB5Ojp0
ZXN0X2Fub3RoZXIgUEFTU0VEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsgNjYl
XQorICAgIHRlc3Rfc2VydmVyLnB5OjpUZXN0Q2xhc3M6OnRlc3RfbWV0aG9kIFBBU1NFRCAgICAg
ICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgIAorICAgID09PT09PT09PT09PT09PT09PT09
PT09PT09PT0gMSB0ZXN0cyBkZXNlbGVjdGVkID09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
KyAgICA9PT09PT09PT09PT09PT09PT0gMyBwYXNzZWQsIDEgZGVzZWxlY3RlZCBpbiAwLjEyIHNl
Y29uZHMgPT09PT09PT09PT09PT09PT09CisKK09yIHRvIHNlbGVjdCAiaHR0cCIgYW5kICJxdWlj
ayIgdGVzdHM6OgorCisgICAgJCBweXRlc3QgLWsgImh0dHAgb3IgcXVpY2siIC12CisgICAgPT09
PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09
PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0
ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55IC0tICRQWVRIT05fUFJFRklYL2Jpbi9w
eXRob24zLjUKKyAgICBjYWNoZWRpcjogLmNhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RN
UERJUiwgaW5pZmlsZToKKyAgICBjb2xsZWN0aW5nIC4uLiBjb2xsZWN0ZWQgNCBpdGVtcworICAg
IAorICAgIHRlc3Rfc2VydmVyLnB5Ojp0ZXN0X3NlbmRfaHR0cCBQQVNTRUQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFsgNTAlXQorICAgIHRlc3Rfc2VydmVyLnB5Ojp0ZXN0X3NvbWV0
aGluZ19xdWljayBQQVNTRUQgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgIAor
ICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT0gMiB0ZXN0cyBkZXNlbGVjdGVkID09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICA9PT09PT09PT09PT09PT09PT0gMiBwYXNzZWQs
IDIgZGVzZWxlY3RlZCBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09CisKKy4uIG5v
dGU6OgorCisgICAgSWYgeW91IGFyZSB1c2luZyBleHByZXNzaW9ucyBzdWNoIGFzIGBgIlggYW5k
IFkiYGAgdGhlbiBib3RoIGBgWGBgIGFuZCBgYFlgYAorICAgIG5lZWQgdG8gYmUgc2ltcGxlIG5v
bi1rZXl3b3JkIG5hbWVzLiBGb3IgZXhhbXBsZSwgYGAicGFzcyJgYCBvciBgYCJmcm9tImBgCisg
ICAgd2lsbCByZXN1bHQgaW4gU3ludGF4RXJyb3JzIGJlY2F1c2UgYGAiLWsiYGAgZXZhbHVhdGVz
IHRoZSBleHByZXNzaW9uIHVzaW5nCisgICAgUHl0aG9uJ3MgYGV2YWxgXyBmdW5jdGlvbi4KKwor
Li4gX2BldmFsYDogaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy42L2xpYnJhcnkvZnVuY3Rpb25z
Lmh0bWwjZXZhbAorCisKKyAgICBIb3dldmVyLCBpZiB0aGUgYGAiLWsiYGAgYXJndW1lbnQgaXMg
YSBzaW1wbGUgc3RyaW5nLCBubyBzdWNoIHJlc3RyaWN0aW9ucworICAgIGFwcGx5LiBBbHNvIGBg
Ii1rICdub3QgU1RSSU5HJyJgYCBoYXMgbm8gcmVzdHJpY3Rpb25zLiAgWW91IGNhbiBhbHNvCisg
ICAgc3BlY2lmeSBudW1iZXJzIGxpa2UgYGAiLWsgMS4zImBgIHRvIG1hdGNoIHRlc3RzIHdoaWNo
IGFyZSBwYXJhbWV0cml6ZWQKKyAgICB3aXRoIHRoZSBmbG9hdCBgYCIxLjMiYGAuCisKK1JlZ2lz
dGVyaW5nIG1hcmtlcnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
Li4gdmVyc2lvbmFkZGVkOjogMi4yCisKKy4uIGluaS1zeW50YXggZm9yIGN1c3RvbSBtYXJrZXJz
OgorCitSZWdpc3RlcmluZyBtYXJrZXJzIGZvciB5b3VyIHRlc3Qgc3VpdGUgaXMgc2ltcGxlOjoK
KworICAgICMgY29udGVudCBvZiBweXRlc3QuaW5pCisgICAgW3B5dGVzdF0KKyAgICBtYXJrZXJz
ID0KKyAgICAgICAgd2VidGVzdDogbWFyayBhIHRlc3QgYXMgYSB3ZWJ0ZXN0LgorCitZb3UgY2Fu
IGFzayB3aGljaCBtYXJrZXJzIGV4aXN0IGZvciB5b3VyIHRlc3Qgc3VpdGUgLSB0aGUgbGlzdCBp
bmNsdWRlcyBvdXIganVzdCBkZWZpbmVkIGBgd2VidGVzdGBgIG1hcmtlcnM6OgorCisgICAgJCBw
eXRlc3QgLS1tYXJrZXJzCisgICAgQHB5dGVzdC5tYXJrLndlYnRlc3Q6IG1hcmsgYSB0ZXN0IGFz
IGEgd2VidGVzdC4KKyAgICAKKyAgICBAcHl0ZXN0Lm1hcmsuc2tpcChyZWFzb249Tm9uZSk6IHNr
aXAgdGhlIGdpdmVuIHRlc3QgZnVuY3Rpb24gd2l0aCBhbiBvcHRpb25hbCByZWFzb24uIEV4YW1w
bGU6IHNraXAocmVhc29uPSJubyB3YXkgb2YgY3VycmVudGx5IHRlc3RpbmcgdGhpcyIpIHNraXBz
IHRoZSB0ZXN0LgorICAgIAorICAgIEBweXRlc3QubWFyay5za2lwaWYoY29uZGl0aW9uKTogc2tp
cCB0aGUgZ2l2ZW4gdGVzdCBmdW5jdGlvbiBpZiBldmFsKGNvbmRpdGlvbikgcmVzdWx0cyBpbiBh
IFRydWUgdmFsdWUuICBFdmFsdWF0aW9uIGhhcHBlbnMgd2l0aGluIHRoZSBtb2R1bGUgZ2xvYmFs
IGNvbnRleHQuIEV4YW1wbGU6IHNraXBpZignc3lzLnBsYXRmb3JtID09ICJ3aW4zMiInKSBza2lw
cyB0aGUgdGVzdCBpZiB3ZSBhcmUgb24gdGhlIHdpbjMyIHBsYXRmb3JtLiBzZWUgaHR0cDovL3B5
dGVzdC5vcmcvbGF0ZXN0L3NraXBwaW5nLmh0bWwKKyAgICAKKyAgICBAcHl0ZXN0Lm1hcmsueGZh
aWwoY29uZGl0aW9uLCByZWFzb249Tm9uZSwgcnVuPVRydWUsIHJhaXNlcz1Ob25lLCBzdHJpY3Q9
RmFsc2UpOiBtYXJrIHRoZSB0ZXN0IGZ1bmN0aW9uIGFzIGFuIGV4cGVjdGVkIGZhaWx1cmUgaWYg
ZXZhbChjb25kaXRpb24pIGhhcyBhIFRydWUgdmFsdWUuIE9wdGlvbmFsbHkgc3BlY2lmeSBhIHJl
YXNvbiBmb3IgYmV0dGVyIHJlcG9ydGluZyBhbmQgcnVuPUZhbHNlIGlmIHlvdSBkb24ndCBldmVu
IHdhbnQgdG8gZXhlY3V0ZSB0aGUgdGVzdCBmdW5jdGlvbi4gSWYgb25seSBzcGVjaWZpYyBleGNl
cHRpb24ocykgYXJlIGV4cGVjdGVkLCB5b3UgY2FuIGxpc3QgdGhlbSBpbiByYWlzZXMsIGFuZCBp
ZiB0aGUgdGVzdCBmYWlscyBpbiBvdGhlciB3YXlzLCBpdCB3aWxsIGJlIHJlcG9ydGVkIGFzIGEg
dHJ1ZSBmYWlsdXJlLiBTZWUgaHR0cDovL3B5dGVzdC5vcmcvbGF0ZXN0L3NraXBwaW5nLmh0bWwK
KyAgICAKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoYXJnbmFtZXMsIGFyZ3ZhbHVlcyk6
IGNhbGwgYSB0ZXN0IGZ1bmN0aW9uIG11bHRpcGxlIHRpbWVzIHBhc3NpbmcgaW4gZGlmZmVyZW50
IGFyZ3VtZW50cyBpbiB0dXJuLiBhcmd2YWx1ZXMgZ2VuZXJhbGx5IG5lZWRzIHRvIGJlIGEgbGlz
dCBvZiB2YWx1ZXMgaWYgYXJnbmFtZXMgc3BlY2lmaWVzIG9ubHkgb25lIG5hbWUgb3IgYSBsaXN0
IG9mIHR1cGxlcyBvZiB2YWx1ZXMgaWYgYXJnbmFtZXMgc3BlY2lmaWVzIG11bHRpcGxlIG5hbWVz
LiBFeGFtcGxlOiBAcGFyYW1ldHJpemUoJ2FyZzEnLCBbMSwyXSkgd291bGQgbGVhZCB0byB0d28g
Y2FsbHMgb2YgdGhlIGRlY29yYXRlZCB0ZXN0IGZ1bmN0aW9uLCBvbmUgd2l0aCBhcmcxPTEgYW5k
IGFub3RoZXIgd2l0aCBhcmcxPTIuc2VlIGh0dHA6Ly9weXRlc3Qub3JnL2xhdGVzdC9wYXJhbWV0
cml6ZS5odG1sIGZvciBtb3JlIGluZm8gYW5kIGV4YW1wbGVzLgorICAgIAorICAgIEBweXRlc3Qu
bWFyay51c2VmaXh0dXJlcyhmaXh0dXJlbmFtZTEsIGZpeHR1cmVuYW1lMiwgLi4uKTogbWFyayB0
ZXN0cyBhcyBuZWVkaW5nIGFsbCBvZiB0aGUgc3BlY2lmaWVkIGZpeHR1cmVzLiBzZWUgaHR0cDov
L3B5dGVzdC5vcmcvbGF0ZXN0L2ZpeHR1cmUuaHRtbCN1c2VmaXh0dXJlcyAKKyAgICAKKyAgICBA
cHl0ZXN0Lm1hcmsudHJ5Zmlyc3Q6IG1hcmsgYSBob29rIGltcGxlbWVudGF0aW9uIGZ1bmN0aW9u
IHN1Y2ggdGhhdCB0aGUgcGx1Z2luIG1hY2hpbmVyeSB3aWxsIHRyeSB0byBjYWxsIGl0IGZpcnN0
L2FzIGVhcmx5IGFzIHBvc3NpYmxlLgorICAgIAorICAgIEBweXRlc3QubWFyay50cnlsYXN0OiBt
YXJrIGEgaG9vayBpbXBsZW1lbnRhdGlvbiBmdW5jdGlvbiBzdWNoIHRoYXQgdGhlIHBsdWdpbiBt
YWNoaW5lcnkgd2lsbCB0cnkgdG8gY2FsbCBpdCBsYXN0L2FzIGxhdGUgYXMgcG9zc2libGUuCisg
ICAgCisKK0ZvciBhbiBleGFtcGxlIG9uIGhvdyB0byBhZGQgYW5kIHdvcmsgd2l0aCBtYXJrZXJz
IGZyb20gYSBwbHVnaW4sIHNlZQorOnJlZjpgYWRkaW5nIGEgY3VzdG9tIG1hcmtlciBmcm9tIGEg
cGx1Z2luYC4KKworLi4gbm90ZTo6CisKKyAgICBJdCBpcyByZWNvbW1lbmRlZCB0byBleHBsaWNp
dGx5IHJlZ2lzdGVyIG1hcmtlcnMgc28gdGhhdDoKKworICAgICogVGhlcmUgaXMgb25lIHBsYWNl
IGluIHlvdXIgdGVzdCBzdWl0ZSBkZWZpbmluZyB5b3VyIG1hcmtlcnMKKworICAgICogQXNraW5n
IGZvciBleGlzdGluZyBtYXJrZXJzIHZpYSBgYHB5dGVzdCAtLW1hcmtlcnNgYCBnaXZlcyBnb29k
IG91dHB1dAorCisgICAgKiBUeXBvcyBpbiBmdW5jdGlvbiBtYXJrZXJzIGFyZSB0cmVhdGVkIGFz
IGFuIGVycm9yIGlmIHlvdSB1c2UKKyAgICAgIHRoZSBgYC0tc3RyaWN0YGAgb3B0aW9uLiAKKwor
Li4gX2BzY29wZWQtbWFya2luZ2A6CisKK01hcmtpbmcgd2hvbGUgY2xhc3NlcyBvciBtb2R1bGVz
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
K1lvdSBtYXkgdXNlIGBgcHl0ZXN0Lm1hcmtgYCBkZWNvcmF0b3JzIHdpdGggY2xhc3NlcyB0byBh
cHBseSBtYXJrZXJzIHRvIGFsbCBvZgoraXRzIHRlc3QgbWV0aG9kczo6CisKKyAgICAjIGNvbnRl
bnQgb2YgdGVzdF9tYXJrX2NsYXNzbGV2ZWwucHkKKyAgICBpbXBvcnQgcHl0ZXN0CisgICAgQHB5
dGVzdC5tYXJrLndlYnRlc3QKKyAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAg
ZGVmIHRlc3Rfc3RhcnR1cChzZWxmKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZGVmIHRl
c3Rfc3RhcnR1cF9hbmRfbW9yZShzZWxmKToKKyAgICAgICAgICAgIHBhc3MKKworVGhpcyBpcyBl
cXVpdmFsZW50IHRvIGRpcmVjdGx5IGFwcGx5aW5nIHRoZSBkZWNvcmF0b3IgdG8gdGhlCit0d28g
dGVzdCBmdW5jdGlvbnMuCisKK1RvIHJlbWFpbiBiYWNrd2FyZC1jb21wYXRpYmxlIHdpdGggUHl0
aG9uIDIuNCB5b3UgY2FuIGFsc28gc2V0IGEKK2BgcHl0ZXN0bWFya2BgIGF0dHJpYnV0ZSBvbiBh
IFRlc3RDbGFzcyBsaWtlIHRoaXM6OgorCisgICAgaW1wb3J0IHB5dGVzdAorCisgICAgY2xhc3Mg
VGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgIHB5dGVzdG1hcmsgPSBweXRlc3QubWFyay53ZWJ0
ZXN0CisKK29yIGlmIHlvdSBuZWVkIHRvIHVzZSBtdWx0aXBsZSBtYXJrZXJzIHlvdSBjYW4gdXNl
IGEgbGlzdDo6CisKKyAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICBjbGFzcyBUZXN0Q2xhc3Mob2Jq
ZWN0KToKKyAgICAgICAgcHl0ZXN0bWFyayA9IFtweXRlc3QubWFyay53ZWJ0ZXN0LCBweXRlc3Qu
bWFyay5zbG93dGVzdF0KKworWW91IGNhbiBhbHNvIHNldCBhIG1vZHVsZSBsZXZlbCBtYXJrZXI6
OgorCisgICAgaW1wb3J0IHB5dGVzdAorICAgIHB5dGVzdG1hcmsgPSBweXRlc3QubWFyay53ZWJ0
ZXN0CisKK2luIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBhcHBsaWVkIHRvIGFsbCBmdW5jdGlvbnMg
YW5kCittZXRob2RzIGRlZmluZWQgaW4gdGhlIG1vZHVsZS4KKworLi4gX2BtYXJraW5nIGluZGl2
aWR1YWwgdGVzdHMgd2hlbiB1c2luZyBwYXJhbWV0cml6ZWA6CisKK01hcmtpbmcgaW5kaXZpZHVh
bCB0ZXN0cyB3aGVuIHVzaW5nIHBhcmFtZXRyaXplCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitXaGVuIHVzaW5nIHBhcmFtZXRyaXplLCBhcHBseWlu
ZyBhIG1hcmsgd2lsbCBtYWtlIGl0IGFwcGx5Cit0byBlYWNoIGluZGl2aWR1YWwgdGVzdC4gSG93
ZXZlciBpdCBpcyBhbHNvIHBvc3NpYmxlIHRvCithcHBseSBhIG1hcmtlciB0byBhbiBpbmRpdmlk
dWFsIHRlc3QgaW5zdGFuY2U6OgorCisgICAgaW1wb3J0IHB5dGVzdAorCisgICAgQHB5dGVzdC5t
YXJrLmZvbworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgoIm4iLCAiZXhwZWN0ZWQiKSwg
WworICAgICAgICAoMSwgMiksCisgICAgICAgIHB5dGVzdC5tYXJrLmJhcigoMSwgMykpLAorICAg
ICAgICAoMiwgMyksCisgICAgXSkKKyAgICBkZWYgdGVzdF9pbmNyZW1lbnQobiwgZXhwZWN0ZWQp
OgorICAgICAgICAgYXNzZXJ0IG4gKyAxID09IGV4cGVjdGVkCisKK0luIHRoaXMgZXhhbXBsZSB0
aGUgbWFyayAiZm9vIiB3aWxsIGFwcGx5IHRvIGVhY2ggb2YgdGhlIHRocmVlCit0ZXN0cywgd2hl
cmVhcyB0aGUgImJhciIgbWFyayBpcyBvbmx5IGFwcGxpZWQgdG8gdGhlIHNlY29uZCB0ZXN0Lgor
U2tpcCBhbmQgeGZhaWwgbWFya3MgY2FuIGFsc28gYmUgYXBwbGllZCBpbiB0aGlzIHdheSwgc2Vl
IDpyZWY6YHNraXAveGZhaWwgd2l0aCBwYXJhbWV0cml6ZWAuCisKKy4uIG5vdGU6OgorCisgICAg
SWYgdGhlIGRhdGEgeW91IGFyZSBwYXJhbWV0cml6aW5nIGhhcHBlbiB0byBiZSBzaW5nbGUgY2Fs
bGFibGVzLCB5b3UgbmVlZCB0byBiZSBjYXJlZnVsCisgICAgd2hlbiBtYXJraW5nIHRoZXNlIGl0
ZW1zLiBgcHl0ZXN0Lm1hcmsueGZhaWwobXlfZnVuYylgIHdvbid0IHdvcmsgYmVjYXVzZSBpdCdz
IGFsc28gdGhlCisgICAgc2lnbmF0dXJlIG9mIGEgZnVuY3Rpb24gYmVpbmcgZGVjb3JhdGVkLiBU
byByZXNvbHZlIHRoaXMgYW1iaWd1aXR5LCB5b3UgbmVlZCB0byBwYXNzIGEKKyAgICByZWFzb24g
YXJndW1lbnQ6CisgICAgYHB5dGVzdC5tYXJrLnhmYWlsKGZ1bmNfYmFyLCByZWFzb249Iklzc3Vl
IzciKWAuCisKKworLi4gX2BhZGRpbmcgYSBjdXN0b20gbWFya2VyIGZyb20gYSBwbHVnaW5gOgor
CitDdXN0b20gbWFya2VyIGFuZCBjb21tYW5kIGxpbmUgb3B0aW9uIHRvIGNvbnRyb2wgdGVzdCBy
dW5zCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKKy4uIHJlZ2VuZG9jOndpcGUKKworUGx1Z2lucyBjYW4gcHJvdmlkZSBjdXN0b20g
bWFya2VycyBhbmQgaW1wbGVtZW50IHNwZWNpZmljIGJlaGF2aW91cgorYmFzZWQgb24gaXQuIFRo
aXMgaXMgYSBzZWxmLWNvbnRhaW5lZCBleGFtcGxlIHdoaWNoIGFkZHMgYSBjb21tYW5kCitsaW5l
IG9wdGlvbiBhbmQgYSBwYXJhbWV0cml6ZWQgdGVzdCBmdW5jdGlvbiBtYXJrZXIgdG8gcnVuIHRl
c3RzCitzcGVjaWZpZXMgdmlhIG5hbWVkIGVudmlyb25tZW50czo6CisKKyAgICAjIGNvbnRlbnQg
b2YgY29uZnRlc3QucHkKKworICAgIGltcG9ydCBweXRlc3QKKyAgICBkZWYgcHl0ZXN0X2FkZG9w
dGlvbihwYXJzZXIpOgorICAgICAgICBwYXJzZXIuYWRkb3B0aW9uKCItRSIsIGFjdGlvbj0ic3Rv
cmUiLCBtZXRhdmFyPSJOQU1FIiwKKyAgICAgICAgICAgIGhlbHA9Im9ubHkgcnVuIHRlc3RzIG1h
dGNoaW5nIHRoZSBlbnZpcm9ubWVudCBOQU1FLiIpCisKKyAgICBkZWYgcHl0ZXN0X2NvbmZpZ3Vy
ZShjb25maWcpOgorICAgICAgICAjIHJlZ2lzdGVyIGFuIGFkZGl0aW9uYWwgbWFya2VyCisgICAg
ICAgIGNvbmZpZy5hZGRpbml2YWx1ZV9saW5lKCJtYXJrZXJzIiwKKyAgICAgICAgICAgICJlbnYo
bmFtZSk6IG1hcmsgdGVzdCB0byBydW4gb25seSBvbiBuYW1lZCBlbnZpcm9ubWVudCIpCisKKyAg
ICBkZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoaXRlbSk6CisgICAgICAgIGVudm1hcmtlciA9IGl0
ZW0uZ2V0X21hcmtlcigiZW52IikKKyAgICAgICAgaWYgZW52bWFya2VyIGlzIG5vdCBOb25lOgor
ICAgICAgICAgICAgZW52bmFtZSA9IGVudm1hcmtlci5hcmdzWzBdCisgICAgICAgICAgICBpZiBl
bnZuYW1lICE9IGl0ZW0uY29uZmlnLmdldG9wdGlvbigiLUUiKToKKyAgICAgICAgICAgICAgICBw
eXRlc3Quc2tpcCgidGVzdCByZXF1aXJlcyBlbnYgJXIiICUgZW52bmFtZSkKKworQSB0ZXN0IGZp
bGUgdXNpbmcgdGhpcyBsb2NhbCBwbHVnaW46OgorCisgICAgIyBjb250ZW50IG9mIHRlc3Rfc29t
ZWVudi5weQorCisgICAgaW1wb3J0IHB5dGVzdAorICAgIEBweXRlc3QubWFyay5lbnYoInN0YWdl
MSIpCisgICAgZGVmIHRlc3RfYmFzaWNfZGJfb3BlcmF0aW9uKCk6CisgICAgICAgIHBhc3MKKwor
YW5kIGFuIGV4YW1wbGUgaW52b2NhdGlvbnMgc3BlY2lmeWluZyBhIGRpZmZlcmVudCBlbnZpcm9u
bWVudCB0aGFuIHdoYXQKK3RoZSB0ZXN0IG5lZWRzOjoKKworICAgICQgcHl0ZXN0IC1FIHN0YWdl
MgorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24g
My54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIHJvb3RkaXI6
ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgY29sbGVjdGVkIDEgaXRlbQorICAgIAor
ICAgIHRlc3Rfc29tZWVudi5weSBzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFsxMDAlXQorICAgIAorICAgID09PT09PT09PT09PT09PT09PT09PT09
PSAxIHNraXBwZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09PT0KKwor
YW5kIGhlcmUgaXMgb25lIHRoYXQgc3BlY2lmaWVzIGV4YWN0bHkgdGhlIGVudmlyb25tZW50IG5l
ZWRlZDo6CisKKyAgICAkIHB5dGVzdCAtRSBzdGFnZTEKKyAgICA9PT09PT09PT09PT09PT09PT09
PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEu
eC55LCBwbHVnZ3ktMC54LnkKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxl
OgorICAgIGNvbGxlY3RlZCAxIGl0ZW0KKyAgICAKKyAgICB0ZXN0X3NvbWVlbnYucHkgLiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKyAg
ICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09IDEgcGFzc2VkIGluIDAuMTIgc2Vjb25k
cyA9PT09PT09PT09PT09PT09PT09PT09PT09CisKK1RoZSBgYC0tbWFya2Vyc2BgIG9wdGlvbiBh
bHdheXMgZ2l2ZXMgeW91IGEgbGlzdCBvZiBhdmFpbGFibGUgbWFya2Vyczo6CisKKyAgICAkIHB5
dGVzdCAtLW1hcmtlcnMKKyAgICBAcHl0ZXN0Lm1hcmsuZW52KG5hbWUpOiBtYXJrIHRlc3QgdG8g
cnVuIG9ubHkgb24gbmFtZWQgZW52aXJvbm1lbnQKKyAgICAKKyAgICBAcHl0ZXN0Lm1hcmsuc2tp
cChyZWFzb249Tm9uZSk6IHNraXAgdGhlIGdpdmVuIHRlc3QgZnVuY3Rpb24gd2l0aCBhbiBvcHRp
b25hbCByZWFzb24uIEV4YW1wbGU6IHNraXAocmVhc29uPSJubyB3YXkgb2YgY3VycmVudGx5IHRl
c3RpbmcgdGhpcyIpIHNraXBzIHRoZSB0ZXN0LgorICAgIAorICAgIEBweXRlc3QubWFyay5za2lw
aWYoY29uZGl0aW9uKTogc2tpcCB0aGUgZ2l2ZW4gdGVzdCBmdW5jdGlvbiBpZiBldmFsKGNvbmRp
dGlvbikgcmVzdWx0cyBpbiBhIFRydWUgdmFsdWUuICBFdmFsdWF0aW9uIGhhcHBlbnMgd2l0aGlu
IHRoZSBtb2R1bGUgZ2xvYmFsIGNvbnRleHQuIEV4YW1wbGU6IHNraXBpZignc3lzLnBsYXRmb3Jt
ID09ICJ3aW4zMiInKSBza2lwcyB0aGUgdGVzdCBpZiB3ZSBhcmUgb24gdGhlIHdpbjMyIHBsYXRm
b3JtLiBzZWUgaHR0cDovL3B5dGVzdC5vcmcvbGF0ZXN0L3NraXBwaW5nLmh0bWwKKyAgICAKKyAg
ICBAcHl0ZXN0Lm1hcmsueGZhaWwoY29uZGl0aW9uLCByZWFzb249Tm9uZSwgcnVuPVRydWUsIHJh
aXNlcz1Ob25lLCBzdHJpY3Q9RmFsc2UpOiBtYXJrIHRoZSB0ZXN0IGZ1bmN0aW9uIGFzIGFuIGV4
cGVjdGVkIGZhaWx1cmUgaWYgZXZhbChjb25kaXRpb24pIGhhcyBhIFRydWUgdmFsdWUuIE9wdGlv
bmFsbHkgc3BlY2lmeSBhIHJlYXNvbiBmb3IgYmV0dGVyIHJlcG9ydGluZyBhbmQgcnVuPUZhbHNl
IGlmIHlvdSBkb24ndCBldmVuIHdhbnQgdG8gZXhlY3V0ZSB0aGUgdGVzdCBmdW5jdGlvbi4gSWYg
b25seSBzcGVjaWZpYyBleGNlcHRpb24ocykgYXJlIGV4cGVjdGVkLCB5b3UgY2FuIGxpc3QgdGhl
bSBpbiByYWlzZXMsIGFuZCBpZiB0aGUgdGVzdCBmYWlscyBpbiBvdGhlciB3YXlzLCBpdCB3aWxs
IGJlIHJlcG9ydGVkIGFzIGEgdHJ1ZSBmYWlsdXJlLiBTZWUgaHR0cDovL3B5dGVzdC5vcmcvbGF0
ZXN0L3NraXBwaW5nLmh0bWwKKyAgICAKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoYXJn
bmFtZXMsIGFyZ3ZhbHVlcyk6IGNhbGwgYSB0ZXN0IGZ1bmN0aW9uIG11bHRpcGxlIHRpbWVzIHBh
c3NpbmcgaW4gZGlmZmVyZW50IGFyZ3VtZW50cyBpbiB0dXJuLiBhcmd2YWx1ZXMgZ2VuZXJhbGx5
IG5lZWRzIHRvIGJlIGEgbGlzdCBvZiB2YWx1ZXMgaWYgYXJnbmFtZXMgc3BlY2lmaWVzIG9ubHkg
b25lIG5hbWUgb3IgYSBsaXN0IG9mIHR1cGxlcyBvZiB2YWx1ZXMgaWYgYXJnbmFtZXMgc3BlY2lm
aWVzIG11bHRpcGxlIG5hbWVzLiBFeGFtcGxlOiBAcGFyYW1ldHJpemUoJ2FyZzEnLCBbMSwyXSkg
d291bGQgbGVhZCB0byB0d28gY2FsbHMgb2YgdGhlIGRlY29yYXRlZCB0ZXN0IGZ1bmN0aW9uLCBv
bmUgd2l0aCBhcmcxPTEgYW5kIGFub3RoZXIgd2l0aCBhcmcxPTIuc2VlIGh0dHA6Ly9weXRlc3Qu
b3JnL2xhdGVzdC9wYXJhbWV0cml6ZS5odG1sIGZvciBtb3JlIGluZm8gYW5kIGV4YW1wbGVzLgor
ICAgIAorICAgIEBweXRlc3QubWFyay51c2VmaXh0dXJlcyhmaXh0dXJlbmFtZTEsIGZpeHR1cmVu
YW1lMiwgLi4uKTogbWFyayB0ZXN0cyBhcyBuZWVkaW5nIGFsbCBvZiB0aGUgc3BlY2lmaWVkIGZp
eHR1cmVzLiBzZWUgaHR0cDovL3B5dGVzdC5vcmcvbGF0ZXN0L2ZpeHR1cmUuaHRtbCN1c2VmaXh0
dXJlcyAKKyAgICAKKyAgICBAcHl0ZXN0Lm1hcmsudHJ5Zmlyc3Q6IG1hcmsgYSBob29rIGltcGxl
bWVudGF0aW9uIGZ1bmN0aW9uIHN1Y2ggdGhhdCB0aGUgcGx1Z2luIG1hY2hpbmVyeSB3aWxsIHRy
eSB0byBjYWxsIGl0IGZpcnN0L2FzIGVhcmx5IGFzIHBvc3NpYmxlLgorICAgIAorICAgIEBweXRl
c3QubWFyay50cnlsYXN0OiBtYXJrIGEgaG9vayBpbXBsZW1lbnRhdGlvbiBmdW5jdGlvbiBzdWNo
IHRoYXQgdGhlIHBsdWdpbiBtYWNoaW5lcnkgd2lsbCB0cnkgdG8gY2FsbCBpdCBsYXN0L2FzIGxh
dGUgYXMgcG9zc2libGUuCisgICAgCisKKy4uIF9gcGFzc2luZyBjYWxsYWJsZXMgdG8gY3VzdG9t
IG1hcmtlcnNgOgorCitQYXNzaW5nIGEgY2FsbGFibGUgdG8gY3VzdG9tIG1hcmtlcnMKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIHJlZ2VuZG9jOndp
cGUKKworQmVsb3cgaXMgdGhlIGNvbmZpZyBmaWxlIHRoYXQgd2lsbCBiZSB1c2VkIGluIHRoZSBu
ZXh0IGV4YW1wbGVzOjoKKworICAgICMgY29udGVudCBvZiBjb25mdGVzdC5weQorICAgIGltcG9y
dCBzeXMKKworICAgIGRlZiBweXRlc3RfcnVudGVzdF9zZXR1cChpdGVtKToKKyAgICAgICAgbWFy
a2VyID0gaXRlbS5nZXRfbWFya2VyKCdteV9tYXJrZXInKQorICAgICAgICBpZiBtYXJrZXIgaXMg
bm90IE5vbmU6CisgICAgICAgICAgICBmb3IgaW5mbyBpbiBtYXJrZXI6CisgICAgICAgICAgICAg
ICAgcHJpbnQoJ01hcmtlciBpbmZvIG5hbWU9e30gYXJncz17fSBrd2Fycz17fScuZm9ybWF0KGlu
Zm8ubmFtZSwgaW5mby5hcmdzLCBpbmZvLmt3YXJncykpCisgICAgICAgICAgICAgICAgc3lzLnN0
ZG91dC5mbHVzaCgpCisKK0EgY3VzdG9tIG1hcmtlciBjYW4gaGF2ZSBpdHMgYXJndW1lbnQgc2V0
LCBpLmUuIGBgYXJnc2BgIGFuZCBgYGt3YXJnc2BgIHByb3BlcnRpZXMsIGRlZmluZWQgYnkgZWl0
aGVyIGludm9raW5nIGl0IGFzIGEgY2FsbGFibGUgb3IgdXNpbmcgYGBweXRlc3QubWFyay5NQVJL
RVJfTkFNRS53aXRoX2FyZ3NgYC4gVGhlc2UgdHdvIG1ldGhvZHMgYWNoaWV2ZSB0aGUgc2FtZSBl
ZmZlY3QgbW9zdCBvZiB0aGUgdGltZS4KKworSG93ZXZlciwgaWYgdGhlcmUgaXMgYSBjYWxsYWJs
ZSBhcyB0aGUgc2luZ2xlIHBvc2l0aW9uYWwgYXJndW1lbnQgd2l0aCBubyBrZXl3b3JkIGFyZ3Vt
ZW50cywgdXNpbmcgdGhlIGBgcHl0ZXN0Lm1hcmsuTUFSS0VSX05BTUUoYylgYCB3aWxsIG5vdCBw
YXNzIGBgY2BgIGFzIGEgcG9zaXRpb25hbCBhcmd1bWVudCBidXQgZGVjb3JhdGUgYGBjYGAgd2l0
aCB0aGUgY3VzdG9tIG1hcmtlciAoc2VlIDpyZWY6YE1hcmtEZWNvcmF0b3IgPG1hcms+YCkuIEZv
cnR1bmF0ZWx5LCBgYHB5dGVzdC5tYXJrLk1BUktFUl9OQU1FLndpdGhfYXJnc2BgIGNvbWVzIHRv
IHRoZSByZXNjdWU6OgorCisgICAgIyBjb250ZW50IG9mIHRlc3RfY3VzdG9tX21hcmtlci5weQor
ICAgIGltcG9ydCBweXRlc3QKKworICAgIGRlZiBoZWxsb193b3JsZCgqYXJncywgKiprd2FyZ3Mp
OgorICAgICAgICByZXR1cm4gJ0hlbGxvIFdvcmxkJworCisgICAgQHB5dGVzdC5tYXJrLm15X21h
cmtlci53aXRoX2FyZ3MoaGVsbG9fd29ybGQpCisgICAgZGVmIHRlc3Rfd2l0aF9hcmdzKCk6Cisg
ICAgICAgIHBhc3MKKworVGhlIG91dHB1dCBpcyBhcyBmb2xsb3dzOjoKKworICAgICQgcHl0ZXN0
IC1xIC1zCisgICAgTWFya2VyIGluZm8gbmFtZT1teV9tYXJrZXIgYXJncz0oPGZ1bmN0aW9uIGhl
bGxvX3dvcmxkIGF0IDB4ZGVhZGJlZWY+LCkga3dhcnM9e30KKyAgICAuICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAw
JV0KKyAgICAxIHBhc3NlZCBpbiAwLjEyIHNlY29uZHMKKworV2UgY2FuIHNlZSB0aGF0IHRoZSBj
dXN0b20gbWFya2VyIGhhcyBpdHMgYXJndW1lbnQgc2V0IGV4dGVuZGVkIHdpdGggdGhlIGZ1bmN0
aW9uIGBgaGVsbG9fd29ybGRgYC4gVGhpcyBpcyB0aGUga2V5IGRpZmZlcmVuY2UgYmV0d2VlbiBj
cmVhdGluZyBhIGN1c3RvbSBtYXJrZXIgYXMgYSBjYWxsYWJsZSwgd2hpY2ggaW52b2tlcyBgYF9f
Y2FsbF9fYGAgYmVoaW5kIHRoZSBzY2VuZXMsIGFuZCB1c2luZyBgYHdpdGhfYXJnc2BgLgorCisK
K1JlYWRpbmcgbWFya2VycyB3aGljaCB3ZXJlIHNldCBmcm9tIG11bHRpcGxlIHBsYWNlcworLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiB2
ZXJzaW9uYWRkZWQ6IDIuMi4yCisKKy4uIHJlZ2VuZG9jOndpcGUKKworSWYgeW91IGFyZSBoZWF2
aWx5IHVzaW5nIG1hcmtlcnMgaW4geW91ciB0ZXN0IHN1aXRlIHlvdSBtYXkgZW5jb3VudGVyIHRo
ZSBjYXNlIHdoZXJlIGEgbWFya2VyIGlzIGFwcGxpZWQgc2V2ZXJhbCB0aW1lcyB0byBhIHRlc3Qg
ZnVuY3Rpb24uICBGcm9tIHBsdWdpbgorY29kZSB5b3UgY2FuIHJlYWQgb3ZlciBhbGwgc3VjaCBz
ZXR0aW5ncy4gIEV4YW1wbGU6OgorCisgICAgIyBjb250ZW50IG9mIHRlc3RfbWFya190aHJlZV90
aW1lcy5weQorICAgIGltcG9ydCBweXRlc3QKKyAgICBweXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsu
Z2xvYigibW9kdWxlIiwgeD0xKQorCisgICAgQHB5dGVzdC5tYXJrLmdsb2IoImNsYXNzIiwgeD0y
KQorICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICBAcHl0ZXN0Lm1hcmsuZ2xv
YigiZnVuY3Rpb24iLCB4PTMpCisgICAgICAgIGRlZiB0ZXN0X3NvbWV0aGluZyhzZWxmKToKKyAg
ICAgICAgICAgIHBhc3MKKworSGVyZSB3ZSBoYXZlIHRoZSBtYXJrZXIgImdsb2IiIGFwcGxpZWQg
dGhyZWUgdGltZXMgdG8gdGhlIHNhbWUKK3Rlc3QgZnVuY3Rpb24uICBGcm9tIGEgY29uZnRlc3Qg
ZmlsZSB3ZSBjYW4gcmVhZCBpdCBsaWtlIHRoaXM6OgorCisgICAgIyBjb250ZW50IG9mIGNvbmZ0
ZXN0LnB5CisgICAgaW1wb3J0IHN5cworCisgICAgZGVmIHB5dGVzdF9ydW50ZXN0X3NldHVwKGl0
ZW0pOgorICAgICAgICBnID0gaXRlbS5nZXRfbWFya2VyKCJnbG9iIikKKyAgICAgICAgaWYgZyBp
cyBub3QgTm9uZToKKyAgICAgICAgICAgIGZvciBpbmZvIGluIGc6CisgICAgICAgICAgICAgICAg
cHJpbnQgKCJnbG9iIGFyZ3M9JXMga3dhcmdzPSVzIiAlKGluZm8uYXJncywgaW5mby5rd2FyZ3Mp
KQorICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQuZmx1c2goKQorCitMZXQncyBydW4gdGhpcyB3
aXRob3V0IGNhcHR1cmluZyBvdXRwdXQgYW5kIHNlZSB3aGF0IHdlIGdldDo6CisKKyAgICAkIHB5
dGVzdCAtcSAtcworICAgIGdsb2IgYXJncz0oJ2Z1bmN0aW9uJywpIGt3YXJncz17J3gnOiAzfQor
ICAgIGdsb2IgYXJncz0oJ2NsYXNzJywpIGt3YXJncz17J3gnOiAyfQorICAgIGdsb2IgYXJncz0o
J21vZHVsZScsKSBrd2FyZ3M9eyd4JzogMX0KKyAgICAuICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKyAgICAx
IHBhc3NlZCBpbiAwLjEyIHNlY29uZHMKKworbWFya2luZyBwbGF0Zm9ybSBzcGVjaWZpYyB0ZXN0
cyB3aXRoIHB5dGVzdAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gcmVnZW5kb2M6d2lwZQorCitDb25zaWRlciB5b3Ug
aGF2ZSBhIHRlc3Qgc3VpdGUgd2hpY2ggbWFya3MgdGVzdHMgZm9yIHBhcnRpY3VsYXIgcGxhdGZv
cm1zLAorbmFtZWx5IGBgcHl0ZXN0Lm1hcmsuZGFyd2luYGAsIGBgcHl0ZXN0Lm1hcmsud2luMzJg
YCBldGMuIGFuZCB5b3UKK2Fsc28gaGF2ZSB0ZXN0cyB0aGF0IHJ1biBvbiBhbGwgcGxhdGZvcm1z
IGFuZCBoYXZlIG5vIHNwZWNpZmljCittYXJrZXIuICBJZiB5b3Ugbm93IHdhbnQgdG8gaGF2ZSBh
IHdheSB0byBvbmx5IHJ1biB0aGUgdGVzdHMKK2ZvciB5b3VyIHBhcnRpY3VsYXIgcGxhdGZvcm0s
IHlvdSBjb3VsZCB1c2UgdGhlIGZvbGxvd2luZyBwbHVnaW46OgorCisgICAgIyBjb250ZW50IG9m
IGNvbmZ0ZXN0LnB5CisgICAgIworICAgIGltcG9ydCBzeXMKKyAgICBpbXBvcnQgcHl0ZXN0CisK
KyAgICBBTEwgPSBzZXQoImRhcndpbiBsaW51eCB3aW4zMiIuc3BsaXQoKSkKKworICAgIGRlZiBw
eXRlc3RfcnVudGVzdF9zZXR1cChpdGVtKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShpdGVtLCBp
dGVtLkZ1bmN0aW9uKToKKyAgICAgICAgICAgIHBsYXQgPSBzeXMucGxhdGZvcm0KKyAgICAgICAg
ICAgIGlmIG5vdCBpdGVtLmdldF9tYXJrZXIocGxhdCk6CisgICAgICAgICAgICAgICAgaWYgQUxM
LmludGVyc2VjdGlvbihpdGVtLmtleXdvcmRzKToKKyAgICAgICAgICAgICAgICAgICAgcHl0ZXN0
LnNraXAoImNhbm5vdCBydW4gb24gcGxhdGZvcm0gJXMiICUocGxhdCkpCisKK3RoZW4gdGVzdHMg
d2lsbCBiZSBza2lwcGVkIGlmIHRoZXkgd2VyZSBzcGVjaWZpZWQgZm9yIGEgZGlmZmVyZW50IHBs
YXRmb3JtLgorTGV0J3MgZG8gYSBsaXR0bGUgdGVzdCBmaWxlIHRvIHNob3cgaG93IHRoaXMgbG9v
a3MgbGlrZTo6CisKKyAgICAjIGNvbnRlbnQgb2YgdGVzdF9wbGF0LnB5CisKKyAgICBpbXBvcnQg
cHl0ZXN0CisKKyAgICBAcHl0ZXN0Lm1hcmsuZGFyd2luCisgICAgZGVmIHRlc3RfaWZfYXBwbGVf
aXNfZXZpbCgpOgorICAgICAgICBwYXNzCisKKyAgICBAcHl0ZXN0Lm1hcmsubGludXgKKyAgICBk
ZWYgdGVzdF9pZl9saW51eF93b3JrcygpOgorICAgICAgICBwYXNzCisKKyAgICBAcHl0ZXN0Lm1h
cmsud2luMzIKKyAgICBkZWYgdGVzdF9pZl93aW4zMl9jcmFzaGVzKCk6CisgICAgICAgIHBhc3MK
KworICAgIGRlZiB0ZXN0X3J1bnNfZXZlcnl3aGVyZSgpOgorICAgICAgICBwYXNzCisKK3RoZW4g
eW91IHdpbGwgc2VlIHR3byB0ZXN0cyBza2lwcGVkIGFuZCB0d28gZXhlY3V0ZWQgdGVzdHMgYXMg
ZXhwZWN0ZWQ6OgorCisgICAgJCBweXRlc3QgLXJzICMgdGhpcyBvcHRpb24gcmVwb3J0cyBza2lw
IHJlYXNvbnMKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0
YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgcGxhdGZvcm0gbGludXggLS0g
UHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICBy
b290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIGNvbGxlY3RlZCA0IGl0ZW1z
CisgICAgCisgICAgdGVzdF9wbGF0LnB5IHMucy4gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCisgICAgPT09PT09PT09PT09PT09PT09PT09
PT09PSBzaG9ydCB0ZXN0IHN1bW1hcnkgaW5mbyA9PT09PT09PT09PT09PT09PT09PT09PT09PQor
ICAgIFNLSVAgWzJdICRSRUdFTkRPQ19UTVBESVIvY29uZnRlc3QucHk6MTM6IGNhbm5vdCBydW4g
b24gcGxhdGZvcm0gbGludXgKKyAgICAKKyAgICA9PT09PT09PT09PT09PT09PT09IDIgcGFzc2Vk
LCAyIHNraXBwZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09CisKK05vdGUg
dGhhdCBpZiB5b3Ugc3BlY2lmeSBhIHBsYXRmb3JtIHZpYSB0aGUgbWFya2VyLWNvbW1hbmQgbGlu
ZSBvcHRpb24gbGlrZSB0aGlzOjoKKworICAgICQgcHl0ZXN0IC1tIGxpbnV4CisgICAgPT09PT09
PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0
LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RN
UERJUiwgaW5pZmlsZToKKyAgICBjb2xsZWN0ZWQgNCBpdGVtcworICAgIAorICAgIHRlc3RfcGxh
dC5weSAuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFsxMDAlXQorICAgIAorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT0gMyB0ZXN0
cyBkZXNlbGVjdGVkID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICA9PT09PT09PT09
PT09PT09PT0gMSBwYXNzZWQsIDMgZGVzZWxlY3RlZCBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09
PT09PT09PT09CisKK3RoZW4gdGhlIHVubWFya2VkLXRlc3RzIHdpbGwgbm90IGJlIHJ1bi4gIEl0
IGlzIHRodXMgYSB3YXkgdG8gcmVzdHJpY3QgdGhlIHJ1biB0byB0aGUgc3BlY2lmaWMgdGVzdHMu
CisKK0F1dG9tYXRpY2FsbHkgYWRkaW5nIG1hcmtlcnMgYmFzZWQgb24gdGVzdCBuYW1lcworLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
Li4gcmVnZW5kb2M6d2lwZQorCitJZiB5b3UgYSB0ZXN0IHN1aXRlIHdoZXJlIHRlc3QgZnVuY3Rp
b24gbmFtZXMgaW5kaWNhdGUgYSBjZXJ0YWluCit0eXBlIG9mIHRlc3QsIHlvdSBjYW4gaW1wbGVt
ZW50IGEgaG9vayB0aGF0IGF1dG9tYXRpY2FsbHkgZGVmaW5lcworbWFya2VycyBzbyB0aGF0IHlv
dSBjYW4gdXNlIHRoZSBgYC1tYGAgb3B0aW9uIHdpdGggaXQuIExldCdzIGxvb2sKK2F0IHRoaXMg
dGVzdCBtb2R1bGU6OgorCisgICAgIyBjb250ZW50IG9mIHRlc3RfbW9kdWxlLnB5CisKKyAgICBk
ZWYgdGVzdF9pbnRlcmZhY2Vfc2ltcGxlKCk6CisgICAgICAgIGFzc2VydCAwCisKKyAgICBkZWYg
dGVzdF9pbnRlcmZhY2VfY29tcGxleCgpOgorICAgICAgICBhc3NlcnQgMAorCisgICAgZGVmIHRl
c3RfZXZlbnRfc2ltcGxlKCk6CisgICAgICAgIGFzc2VydCAwCisKKyAgICBkZWYgdGVzdF9zb21l
dGhpbmdfZWxzZSgpOgorICAgICAgICBhc3NlcnQgMAorCitXZSB3YW50IHRvIGR5bmFtaWNhbGx5
IGRlZmluZSB0d28gbWFya2VycyBhbmQgY2FuIGRvIGl0IGluIGEKK2BgY29uZnRlc3QucHlgYCBw
bHVnaW46OgorCisgICAgIyBjb250ZW50IG9mIGNvbmZ0ZXN0LnB5CisKKyAgICBpbXBvcnQgcHl0
ZXN0CisgICAgZGVmIHB5dGVzdF9jb2xsZWN0aW9uX21vZGlmeWl0ZW1zKGl0ZW1zKToKKyAgICAg
ICAgZm9yIGl0ZW0gaW4gaXRlbXM6CisgICAgICAgICAgICBpZiAiaW50ZXJmYWNlIiBpbiBpdGVt
Lm5vZGVpZDoKKyAgICAgICAgICAgICAgICBpdGVtLmFkZF9tYXJrZXIocHl0ZXN0Lm1hcmsuaW50
ZXJmYWNlKQorICAgICAgICAgICAgZWxpZiAiZXZlbnQiIGluIGl0ZW0ubm9kZWlkOgorICAgICAg
ICAgICAgICAgIGl0ZW0uYWRkX21hcmtlcihweXRlc3QubWFyay5ldmVudCkKKworV2UgY2FuIG5v
dyB1c2UgdGhlIGBgLW0gb3B0aW9uYGAgdG8gc2VsZWN0IG9uZSBzZXQ6OgorCisgICQgcHl0ZXN0
IC1tIGludGVyZmFjZSAtLXRiPXNob3J0CisgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0
ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgcGxhdGZv
cm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3kt
MC54LnkKKyAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgY29sbGVjdGVk
IDQgaXRlbXMKKyAgCisgIHRlc3RfbW9kdWxlLnB5IEZGICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAKKyAgPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09IEZBSUxVUkVTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQorICBfX19fX19fX19fX19fX19fX19fX19fX19fXyB0ZXN0X2ludGVyZmFjZV9zaW1wbGUg
X19fX19fX19fX19fX19fX19fX19fX19fX19fCisgIHRlc3RfbW9kdWxlLnB5OjM6IGluIHRlc3Rf
aW50ZXJmYWNlX3NpbXBsZQorICAgICAgYXNzZXJ0IDAKKyAgRSAgIGFzc2VydCAwCisgIF9fX19f
X19fX19fX19fX19fX19fX19fX19fIHRlc3RfaW50ZXJmYWNlX2NvbXBsZXggX19fX19fX19fX19f
X19fX19fX19fX19fX18KKyAgdGVzdF9tb2R1bGUucHk6NjogaW4gdGVzdF9pbnRlcmZhY2VfY29t
cGxleAorICAgICAgYXNzZXJ0IDAKKyAgRSAgIGFzc2VydCAwCisgID09PT09PT09PT09PT09PT09
PT09PT09PT09PT0gMiB0ZXN0cyBkZXNlbGVjdGVkID09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKyAgPT09PT09PT09PT09PT09PT09IDIgZmFpbGVkLCAyIGRlc2VsZWN0ZWQgaW4gMC4xMiBz
ZWNvbmRzID09PT09PT09PT09PT09PT09PQorCitvciB0byBzZWxlY3QgYm90aCAiZXZlbnQiIGFu
ZCAiaW50ZXJmYWNlIiB0ZXN0czo6CisKKyAgJCBweXRlc3QgLW0gImludGVyZmFjZSBvciBldmVu
dCIgLS10Yj1zaG9ydAorICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9u
IHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgIHBsYXRmb3JtIGxpbnV4IC0t
IFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgIHJv
b3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgIGNvbGxlY3RlZCA0IGl0ZW1zCisg
IAorICB0ZXN0X21vZHVsZS5weSBGRkYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbMTAwJV0KKyAgCisgID09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PSBGQUlMVVJFUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgX19f
X19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9pbnRlcmZhY2Vfc2ltcGxlIF9fX19fX19fX19f
X19fX19fX19fX19fX19fXworICB0ZXN0X21vZHVsZS5weTozOiBpbiB0ZXN0X2ludGVyZmFjZV9z
aW1wbGUKKyAgICAgIGFzc2VydCAwCisgIEUgICBhc3NlcnQgMAorICBfX19fX19fX19fX19fX19f
X19fX19fX19fXyB0ZXN0X2ludGVyZmFjZV9jb21wbGV4IF9fX19fX19fX19fX19fX19fX19fX19f
X19fCisgIHRlc3RfbW9kdWxlLnB5OjY6IGluIHRlc3RfaW50ZXJmYWNlX2NvbXBsZXgKKyAgICAg
IGFzc2VydCAwCisgIEUgICBhc3NlcnQgMAorICBfX19fX19fX19fX19fX19fX19fX19fX19fX19f
IHRlc3RfZXZlbnRfc2ltcGxlIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgIHRlc3Rf
bW9kdWxlLnB5Ojk6IGluIHRlc3RfZXZlbnRfc2ltcGxlCisgICAgICBhc3NlcnQgMAorICBFICAg
YXNzZXJ0IDAKKyAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PSAxIHRlc3RzIGRlc2VsZWN0
ZWQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICA9PT09PT09PT09PT09PT09PT0gMyBm
YWlsZWQsIDEgZGVzZWxlY3RlZCBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9tdWx0aXB5dGhvbi5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL211bHRpcHl0aG9uLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2MDc5
YmU3ZTM3YzA1NjE4ZjYyZjllNWNlMDFiYjQ3MjRkNjllYzQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9tdWx0aXB5dGhvbi5weQpAQCAtMCwwICsxLDUyIEBA
CisiIiIKK21vZHVsZSBjb250YWluaW5nIGEgcGFyYW1ldHJpemVkIHRlc3RzIHRlc3RpbmcgY3Jv
c3MtcHl0aG9uCitzZXJpYWxpemF0aW9uIHZpYSB0aGUgcGlja2xlIG1vZHVsZS4KKyIiIgoraW1w
b3J0IHB5CitpbXBvcnQgcHl0ZXN0CitpbXBvcnQgX3B5dGVzdC5fY29kZQorCitweXRob25saXN0
ID0gWydweXRob24yLjcnLCAncHl0aG9uMy40JywgJ3B5dGhvbjMuNSddCitAcHl0ZXN0LmZpeHR1
cmUocGFyYW1zPXB5dGhvbmxpc3QpCitkZWYgcHl0aG9uMShyZXF1ZXN0LCB0bXBkaXIpOgorICAg
IHBpY2tsZWZpbGUgPSB0bXBkaXIuam9pbigiZGF0YS5waWNrbGUiKQorICAgIHJldHVybiBQeXRo
b24ocmVxdWVzdC5wYXJhbSwgcGlja2xlZmlsZSkKKworQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1w
eXRob25saXN0KQorZGVmIHB5dGhvbjIocmVxdWVzdCwgcHl0aG9uMSk6CisgICAgcmV0dXJuIFB5
dGhvbihyZXF1ZXN0LnBhcmFtLCBweXRob24xLnBpY2tsZWZpbGUpCisKK2NsYXNzIFB5dGhvbihv
YmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2ZXJzaW9uLCBwaWNrbGVmaWxlKToKKyAg
ICAgICAgc2VsZi5weXRob25wYXRoID0gcHkucGF0aC5sb2NhbC5zeXNmaW5kKHZlcnNpb24pCisg
ICAgICAgIGlmIG5vdCBzZWxmLnB5dGhvbnBhdGg6CisgICAgICAgICAgICBweXRlc3Quc2tpcCgi
JXIgbm90IGZvdW5kIiAlKHZlcnNpb24sKSkKKyAgICAgICAgc2VsZi5waWNrbGVmaWxlID0gcGlj
a2xlZmlsZQorICAgIGRlZiBkdW1wcyhzZWxmLCBvYmopOgorICAgICAgICBkdW1wZmlsZSA9IHNl
bGYucGlja2xlZmlsZS5kaXJwYXRoKCJkdW1wLnB5IikKKyAgICAgICAgZHVtcGZpbGUud3JpdGUo
X3B5dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisgICAgICAgICAgICBpbXBvcnQgcGlja2xlCisgICAg
ICAgICAgICBmID0gb3BlbiglciwgJ3diJykKKyAgICAgICAgICAgIHMgPSBwaWNrbGUuZHVtcCgl
ciwgZiwgcHJvdG9jb2w9MikKKyAgICAgICAgICAgIGYuY2xvc2UoKQorICAgICAgICAiIiIgJSAo
c3RyKHNlbGYucGlja2xlZmlsZSksIG9iaikpKQorICAgICAgICBweS5wcm9jZXNzLmNtZGV4ZWMo
IiVzICVzIiAlKHNlbGYucHl0aG9ucGF0aCwgZHVtcGZpbGUpKQorCisgICAgZGVmIGxvYWRfYW5k
X2lzX3RydWUoc2VsZiwgZXhwcmVzc2lvbik6CisgICAgICAgIGxvYWRmaWxlID0gc2VsZi5waWNr
bGVmaWxlLmRpcnBhdGgoImxvYWQucHkiKQorICAgICAgICBsb2FkZmlsZS53cml0ZShfcHl0ZXN0
Ll9jb2RlLlNvdXJjZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBwaWNrbGUKKyAgICAgICAgICAg
IGYgPSBvcGVuKCVyLCAncmInKQorICAgICAgICAgICAgb2JqID0gcGlja2xlLmxvYWQoZikKKyAg
ICAgICAgICAgIGYuY2xvc2UoKQorICAgICAgICAgICAgcmVzID0gZXZhbCglcikKKyAgICAgICAg
ICAgIGlmIG5vdCByZXM6CisgICAgICAgICAgICAgICAgcmFpc2UgU3lzdGVtRXhpdCgxKQorICAg
ICAgICAiIiIgJSAoc3RyKHNlbGYucGlja2xlZmlsZSksIGV4cHJlc3Npb24pKSkKKyAgICAgICAg
cHJpbnQgKGxvYWRmaWxlKQorICAgICAgICBweS5wcm9jZXNzLmNtZGV4ZWMoIiVzICVzIiAlKHNl
bGYucHl0aG9ucGF0aCwgbG9hZGZpbGUpKQorCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoIm9i
aiIsIFs0Miwge30sIHsxOjN9LF0pCitkZWYgdGVzdF9iYXNpY19vYmplY3RzKHB5dGhvbjEsIHB5
dGhvbjIsIG9iaik6CisgICAgcHl0aG9uMS5kdW1wcyhvYmopCisgICAgcHl0aG9uMi5sb2FkX2Fu
ZF9pc190cnVlKCJvYmogPT0gJXMiICUgb2JqKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2V4YW1wbGUvbm9ucHl0aG9uLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL25v
bnB5dGhvbi5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Y3MmM3MjE5ZTE1NGQ1ZDdmN2I1YTc5NTgwMzY4NmQ2
Yjk5ODM5ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL25v
bnB5dGhvbi5yc3QKQEAgLTAsMCArMSw5MSBAQAorCisuLiBfYG5vbi1weXRob24gdGVzdHNgOgor
CitXb3JraW5nIHdpdGggbm9uLXB5dGhvbiB0ZXN0cworPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBfYHlhbWwgcGx1Z2luYDoKKworQSBi
YXNpYyBleGFtcGxlIGZvciBzcGVjaWZ5aW5nIHRlc3RzIGluIFlhbWwgZmlsZXMKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
Ky4uIF9gcHl0ZXN0LXlhbWx3c2dpYDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvYWFmc2hhci9weXRl
c3QteWFtbHdzZ2kvc3JjL3RpcC9weXRlc3RfeWFtbHdzZ2kucHkKKy4uIF9gUHlZQU1MYDogaHR0
cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL1B5WUFNTC8KKworSGVyZSBpcyBhbiBleGFtcGxlIGBg
Y29uZnRlc3QucHlgYCAoZXh0cmFjdGVkIGZyb20gQWxpIEFmc2huYXJzIHNwZWNpYWwgcHVycG9z
ZSBgcHl0ZXN0LXlhbWx3c2dpYF8gcGx1Z2luKS4gICBUaGlzIGBgY29uZnRlc3QucHlgYCB3aWxs
ICBjb2xsZWN0IGBgdGVzdCoueW1sYGAgZmlsZXMgYW5kIHdpbGwgZXhlY3V0ZSB0aGUgeWFtbC1m
b3JtYXR0ZWQgY29udGVudCBhcyBjdXN0b20gdGVzdHM6CisKKy4uIGluY2x1ZGU6OiBub25weXRo
b24vY29uZnRlc3QucHkKKyAgICA6bGl0ZXJhbDoKKworWW91IGNhbiBjcmVhdGUgYSBzaW1wbGUg
ZXhhbXBsZSBmaWxlOgorCisuLiBpbmNsdWRlOjogbm9ucHl0aG9uL3Rlc3Rfc2ltcGxlLnltbAor
ICAgIDpsaXRlcmFsOgorCithbmQgaWYgeW91IGluc3RhbGxlZCBgUHlZQU1MYF8gb3IgYSBjb21w
YXRpYmxlIFlBTUwtcGFyc2VyIHlvdSBjYW4KK25vdyBleGVjdXRlIHRoZSB0ZXN0IHNwZWNpZmlj
YXRpb246OgorCisgICAgbm9ucHl0aG9uICQgcHl0ZXN0IHRlc3Rfc2ltcGxlLnltbAorICAgID09
PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5
dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIHJvb3RkaXI6ICRSRUdFTkRP
Q19UTVBESVIvbm9ucHl0aG9uLCBpbmlmaWxlOgorICAgIGNvbGxlY3RlZCAyIGl0ZW1zCisgICAg
CisgICAgdGVzdF9zaW1wbGUueW1sIEYuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgWzEwMCVdCisgICAgCisgICAgPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09IEZBSUxVUkVTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor
ICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyB1c2VjYXNlOiBoZWxsbyBfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KKyAgICB1c2VjYXNlIGV4ZWN1dGlvbiBmYWlsZWQKKyAg
ICAgICBzcGVjIGZhaWxlZDogJ3NvbWUnOiAnb3RoZXInCisgICAgICAgbm8gZnVydGhlciBkZXRh
aWxzIGtub3duIGF0IHRoaXMgcG9pbnQuCisgICAgPT09PT09PT09PT09PT09PT09PT0gMSBmYWls
ZWQsIDEgcGFzc2VkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PQorCisuLiBy
ZWdlbmRvYzp3aXBlCisKK1lvdSBnZXQgb25lIGRvdCBmb3IgdGhlIHBhc3NpbmcgYGBzdWIxOiBz
dWIxYGAgY2hlY2sgYW5kIG9uZSBmYWlsdXJlLgorT2J2aW91c2x5IGluIHRoZSBhYm92ZSBgYGNv
bmZ0ZXN0LnB5YGAgeW91J2xsIHdhbnQgdG8gaW1wbGVtZW50IGEgbW9yZQoraW50ZXJlc3Rpbmcg
aW50ZXJwcmV0YXRpb24gb2YgdGhlIHlhbWwtdmFsdWVzLiAgWW91IGNhbiBlYXNpbHkgd3JpdGUK
K3lvdXIgb3duIGRvbWFpbiBzcGVjaWZpYyB0ZXN0aW5nIGxhbmd1YWdlIHRoaXMgd2F5LgorCisu
LiBub3RlOjoKKworICAgIGBgcmVwcl9mYWlsdXJlKGV4Y2luZm8pYGAgaXMgY2FsbGVkIGZvciBy
ZXByZXNlbnRpbmcgdGVzdCBmYWlsdXJlcy4KKyAgICBJZiB5b3UgY3JlYXRlIGN1c3RvbSBjb2xs
ZWN0aW9uIG5vZGVzIHlvdSBjYW4gcmV0dXJuIGFuIGVycm9yCisgICAgcmVwcmVzZW50YXRpb24g
c3RyaW5nIG9mIHlvdXIgY2hvaWNlLiAgSXQKKyAgICB3aWxsIGJlIHJlcG9ydGVkIGFzIGEgKHJl
ZCkgc3RyaW5nLgorCitgYHJlcG9ydGluZm8oKWBgIGlzIHVzZWQgZm9yIHJlcHJlc2VudGluZyB0
aGUgdGVzdCBsb2NhdGlvbiBhbmQgaXMgYWxzbworY29uc3VsdGVkIHdoZW4gcmVwb3J0aW5nIGlu
IGBgdmVyYm9zZWBgIG1vZGU6OgorCisgICAgbm9ucHl0aG9uICQgcHl0ZXN0IC12CisgICAgPT09
PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09
PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0
ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55IC0tICRQWVRIT05fUFJFRklYL2Jpbi9w
eXRob24zLjUKKyAgICBjYWNoZWRpcjogLmNhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RN
UERJUi9ub25weXRob24sIGluaWZpbGU6CisgICAgY29sbGVjdGluZyAuLi4gY29sbGVjdGVkIDIg
aXRlbXMKKyAgICAKKyAgICB0ZXN0X3NpbXBsZS55bWw6OmhlbGxvIEZBSUxFRCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbIDUwJV0KKyAgICB0ZXN0X3NpbXBsZS55bWw6
Om9rIFBBU1NFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAw
JV0KKyAgICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRkFJTFVSRVMg
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fIHVzZWNhc2U6IGhlbGxvIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
XworICAgIHVzZWNhc2UgZXhlY3V0aW9uIGZhaWxlZAorICAgICAgIHNwZWMgZmFpbGVkOiAnc29t
ZSc6ICdvdGhlcicKKyAgICAgICBubyBmdXJ0aGVyIGRldGFpbHMga25vd24gYXQgdGhpcyBwb2lu
dC4KKyAgICA9PT09PT09PT09PT09PT09PT09PSAxIGZhaWxlZCwgMSBwYXNzZWQgaW4gMC4xMiBz
ZWNvbmRzID09PT09PT09PT09PT09PT09PT09CisKKy4uIHJlZ2VuZG9jOndpcGUKKworV2hpbGUg
ZGV2ZWxvcGluZyB5b3VyIGN1c3RvbSB0ZXN0IGNvbGxlY3Rpb24gYW5kIGV4ZWN1dGlvbiBpdCdz
IGFsc28KK2ludGVyZXN0aW5nIHRvIGp1c3QgbG9vayBhdCB0aGUgY29sbGVjdGlvbiB0cmVlOjoK
KworICAgIG5vbnB5dGhvbiAkIHB5dGVzdCAtLWNvbGxlY3Qtb25seQorICAgID09PT09PT09PT09
PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngu
eSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIv
bm9ucHl0aG9uLCBpbmlmaWxlOgorICAgIGNvbGxlY3RlZCAyIGl0ZW1zCisgICAgPFlhbWxGaWxl
ICd0ZXN0X3NpbXBsZS55bWwnPgorICAgICAgPFlhbWxJdGVtICdoZWxsbyc+CisgICAgICA8WWFt
bEl0ZW0gJ29rJz4KKyAgICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PSBubyB0ZXN0cyBy
YW4gaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9ub25weXRob24vX19pbml0X18ucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vZXhhbXBsZS9ub25weXRob24vX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTY4
MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL25vbnB5dGhvbi9fX2luaXRfXy5weQpAQCAtMCww
ICsxIEBACisjIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlz
IGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9ub25weXRob24vY29uZnRlc3QucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9ub25weXRob24vY29uZnRlc3QucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYmFmZjMwMDE1NTA5M2UyZmM4MzUwYmY1NzViOGYzOWViZjNjMjMwYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL25vbnB5dGhvbi9jb25mdGVzdC5w
eQpAQCAtMCwwICsxLDQwIEBACisjIGNvbnRlbnQgb2YgY29uZnRlc3QucHkKKworaW1wb3J0IHB5
dGVzdAorCitkZWYgcHl0ZXN0X2NvbGxlY3RfZmlsZShwYXJlbnQsIHBhdGgpOgorICAgIGlmIHBh
dGguZXh0ID09ICIueW1sIiBhbmQgcGF0aC5iYXNlbmFtZS5zdGFydHN3aXRoKCJ0ZXN0Iik6Cisg
ICAgICAgIHJldHVybiBZYW1sRmlsZShwYXRoLCBwYXJlbnQpCisKK2NsYXNzIFlhbWxGaWxlKHB5
dGVzdC5GaWxlKToKKyAgICBkZWYgY29sbGVjdChzZWxmKToKKyAgICAgICAgaW1wb3J0IHlhbWwg
IyB3ZSBuZWVkIGEgeWFtbCBwYXJzZXIsIGUuZy4gUHlZQU1MCisgICAgICAgIHJhdyA9IHlhbWwu
c2FmZV9sb2FkKHNlbGYuZnNwYXRoLm9wZW4oKSkKKyAgICAgICAgZm9yIG5hbWUsIHNwZWMgaW4g
c29ydGVkKHJhdy5pdGVtcygpKToKKyAgICAgICAgICAgIHlpZWxkIFlhbWxJdGVtKG5hbWUsIHNl
bGYsIHNwZWMpCisKK2NsYXNzIFlhbWxJdGVtKHB5dGVzdC5JdGVtKToKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgbmFtZSwgcGFyZW50LCBzcGVjKToKKyAgICAgICAgc3VwZXIoWWFtbEl0ZW0sIHNl
bGYpLl9faW5pdF9fKG5hbWUsIHBhcmVudCkKKyAgICAgICAgc2VsZi5zcGVjID0gc3BlYworCisg
ICAgZGVmIHJ1bnRlc3Qoc2VsZik6CisgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBzb3J0ZWQo
c2VsZi5zcGVjLml0ZW1zKCkpOgorICAgICAgICAgICAgIyBzb21lIGN1c3RvbSB0ZXN0IGV4ZWN1
dGlvbiAoZHVtYiBleGFtcGxlIGZvbGxvd3MpCisgICAgICAgICAgICBpZiBuYW1lICE9IHZhbHVl
OgorICAgICAgICAgICAgICAgIHJhaXNlIFlhbWxFeGNlcHRpb24oc2VsZiwgbmFtZSwgdmFsdWUp
CisKKyAgICBkZWYgcmVwcl9mYWlsdXJlKHNlbGYsIGV4Y2luZm8pOgorICAgICAgICAiIiIgY2Fs
bGVkIHdoZW4gc2VsZi5ydW50ZXN0KCkgcmFpc2VzIGFuIGV4Y2VwdGlvbi4gIiIiCisgICAgICAg
IGlmIGlzaW5zdGFuY2UoZXhjaW5mby52YWx1ZSwgWWFtbEV4Y2VwdGlvbik6CisgICAgICAgICAg
ICByZXR1cm4gIlxuIi5qb2luKFsKKyAgICAgICAgICAgICAgICAidXNlY2FzZSBleGVjdXRpb24g
ZmFpbGVkIiwKKyAgICAgICAgICAgICAgICAiICAgc3BlYyBmYWlsZWQ6ICVyOiAlciIgJSBleGNp
bmZvLnZhbHVlLmFyZ3NbMTozXSwKKyAgICAgICAgICAgICAgICAiICAgbm8gZnVydGhlciBkZXRh
aWxzIGtub3duIGF0IHRoaXMgcG9pbnQuIgorICAgICAgICAgICAgXSkKKworICAgIGRlZiByZXBv
cnRpbmZvKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5mc3BhdGgsIDAsICJ1c2VjYXNlOiAl
cyIgJSBzZWxmLm5hbWUKKworY2xhc3MgWWFtbEV4Y2VwdGlvbihFeGNlcHRpb24pOgorICAgICIi
IiBjdXN0b20gZXhjZXB0aW9uIGZvciBlcnJvciByZXBvcnRpbmcuICIiIgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvbm9ucHl0aG9uL3Rlc3Rfc2ltcGxlLnltbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL25vbnB5dGhvbi90ZXN0X3NpbXBsZS55bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjBkOGQxMWZjM2UxZjUyYmQ1N2MzMDI0NTU5ZTRhZDU3OWRiZWY5YwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL25vbnB5dGhvbi90ZXN0X3NpbXBs
ZS55bWwKQEAgLTAsMCArMSw3IEBACisjIHRlc3Rfc2ltcGxlLnltbAorb2s6CisgICAgc3ViMTog
c3ViMQorCitoZWxsbzoKKyAgICB3b3JsZDogd29ybGQKKyAgICBzb21lOiBvdGhlcgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvbm9ucHl0aG9uL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvbm9ucHl0aG9uL3czYy1pbXBvcnQubG9nCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmRlNWQ3NDcxMGMzNDIxZGIwMDNhYjMwNzQ3YjEzNmVkNDRhN2UyMzYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9ub25weXRob24vdzNjLWlt
cG9ydC5sb2cKQEAgLTAsMCArMSwxOSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25l
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4
YW1wbGUvbm9ucHl0aG9uL19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUv
bm9ucHl0aG9uL2NvbmZ0ZXN0LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvbm9ucHl0
aG9uL3Rlc3Rfc2ltcGxlLnltbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1w
bGUvcGFyYW1ldHJpemUucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcGFyYW1ldHJp
emUucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRkMDFiMjUyNzdhOGFhMDFlYzViMjMyY2I3MTc5MTY5NzliZTcw
ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9wYXJhbWV0
cml6ZS5yc3QKQEAgLTAsMCArMSw1MzYgQEAKKworLi4gX3BhcmFtZXhhbXBsZXM6CisKK1BhcmFt
ZXRyaXppbmcgdGVzdHMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KKworLi4gY3VycmVudG1vZHVsZTo6IF9weXRlc3QucHl0aG9uCisKK2BgcHl0ZXN0
YGAgYWxsb3dzIHRvIGVhc2lseSBwYXJhbWV0cml6ZSB0ZXN0IGZ1bmN0aW9ucy4KK0ZvciBiYXNp
YyBkb2NzLCBzZWUgOnJlZjpgcGFyYW1ldHJpemUtYmFzaWNzYC4KKworSW4gdGhlIGZvbGxvd2lu
ZyB3ZSBwcm92aWRlIHNvbWUgZXhhbXBsZXMgdXNpbmcKK3RoZSBidWlsdGluIG1lY2hhbmlzbXMu
CisKK0dlbmVyYXRpbmcgcGFyYW1ldGVycyBjb21iaW5hdGlvbnMsIGRlcGVuZGluZyBvbiBjb21t
YW5kIGxpbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gcmVnZW5kb2M6d2lwZQorCitMZXQn
cyBzYXkgd2Ugd2FudCB0byBleGVjdXRlIGEgdGVzdCB3aXRoIGRpZmZlcmVudCBjb21wdXRhdGlv
bgorcGFyYW1ldGVycyBhbmQgdGhlIHBhcmFtZXRlciByYW5nZSBzaGFsbCBiZSBkZXRlcm1pbmVk
IGJ5IGEgY29tbWFuZAorbGluZSBhcmd1bWVudC4gIExldCdzIGZpcnN0IHdyaXRlIGEgc2ltcGxl
IChkby1ub3RoaW5nKSBjb21wdXRhdGlvbiB0ZXN0OjoKKworICAgICMgY29udGVudCBvZiB0ZXN0
X2NvbXB1dGUucHkKKworICAgIGRlZiB0ZXN0X2NvbXB1dGUocGFyYW0xKToKKyAgICAgICAgYXNz
ZXJ0IHBhcmFtMSA8IDQKKworTm93IHdlIGFkZCBhIHRlc3QgY29uZmlndXJhdGlvbiBsaWtlIHRo
aXM6OgorCisgICAgIyBjb250ZW50IG9mIGNvbmZ0ZXN0LnB5CisKKyAgICBkZWYgcHl0ZXN0X2Fk
ZG9wdGlvbihwYXJzZXIpOgorICAgICAgICBwYXJzZXIuYWRkb3B0aW9uKCItLWFsbCIsIGFjdGlv
bj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICBoZWxwPSJydW4gYWxsIGNvbWJpbmF0aW9ucyIp
CisKKyAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAgaWYg
J3BhcmFtMScgaW4gbWV0YWZ1bmMuZml4dHVyZW5hbWVzOgorICAgICAgICAgICAgaWYgbWV0YWZ1
bmMuY29uZmlnLmdldG9wdGlvbignYWxsJyk6CisgICAgICAgICAgICAgICAgZW5kID0gNQorICAg
ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBlbmQgPSAyCisgICAgICAgICAgICBtZXRh
ZnVuYy5wYXJhbWV0cml6ZSgicGFyYW0xIiwgcmFuZ2UoZW5kKSkKKworVGhpcyBtZWFucyB0aGF0
IHdlIG9ubHkgcnVuIDIgdGVzdHMgaWYgd2UgZG8gbm90IHBhc3MgYGAtLWFsbGBgOjoKKworICAg
ICQgcHl0ZXN0IC1xIHRlc3RfY29tcHV0ZS5weQorICAgIC4uICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAg
IDIgcGFzc2VkIGluIDAuMTIgc2Vjb25kcworCitXZSBydW4gb25seSB0d28gY29tcHV0YXRpb25z
LCBzbyB3ZSBzZWUgdHdvIGRvdHMuCitsZXQncyBydW4gdGhlIGZ1bGwgbW9udHk6OgorCisgICAg
JCBweXRlc3QgLXEgLS1hbGwKKyAgICAuLi4uRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKyAgICA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0gRkFJTFVSRVMgPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CisgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9jb21wdXRl
WzRdIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fXworICAgIAorICAgIHBhcmFtMSA9IDQK
KyAgICAKKyAgICAgICAgZGVmIHRlc3RfY29tcHV0ZShwYXJhbTEpOgorICAgID4gICAgICAgYXNz
ZXJ0IHBhcmFtMSA8IDQKKyAgICBFICAgICAgIGFzc2VydCA0IDwgNAorICAgIAorICAgIHRlc3Rf
Y29tcHV0ZS5weTozOiBBc3NlcnRpb25FcnJvcgorICAgIDEgZmFpbGVkLCA0IHBhc3NlZCBpbiAw
LjEyIHNlY29uZHMKKworQXMgZXhwZWN0ZWQgd2hlbiBydW5uaW5nIHRoZSBmdWxsIHJhbmdlIG9m
IGBgcGFyYW0xYGAgdmFsdWVzCit3ZSdsbCBnZXQgYW4gZXJyb3Igb24gdGhlIGxhc3Qgb25lLgor
CisKK0RpZmZlcmVudCBvcHRpb25zIGZvciB0ZXN0IElEcworLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKK3B5dGVzdCB3aWxsIGJ1aWxkIGEgc3RyaW5nIHRoYXQgaXMgdGhl
IHRlc3QgSUQgZm9yIGVhY2ggc2V0IG9mIHZhbHVlcyBpbiBhCitwYXJhbWV0cml6ZWQgdGVzdC4g
VGhlc2UgSURzIGNhbiBiZSB1c2VkIHdpdGggYGAta2BgIHRvIHNlbGVjdCBzcGVjaWZpYyBjYXNl
cwordG8gcnVuLCBhbmQgdGhleSB3aWxsIGFsc28gaWRlbnRpZnkgdGhlIHNwZWNpZmljIGNhc2Ug
d2hlbiBvbmUgaXMgZmFpbGluZy4KK1J1bm5pbmcgcHl0ZXN0IHdpdGggYGAtLWNvbGxlY3Qtb25s
eWBgIHdpbGwgc2hvdyB0aGUgZ2VuZXJhdGVkIElEcy4KKworTnVtYmVycywgc3RyaW5ncywgYm9v
bGVhbnMgYW5kIE5vbmUgd2lsbCBoYXZlIHRoZWlyIHVzdWFsIHN0cmluZyByZXByZXNlbnRhdGlv
bgordXNlZCBpbiB0aGUgdGVzdCBJRC4gRm9yIG90aGVyIG9iamVjdHMsIHB5dGVzdCB3aWxsIG1h
a2UgYSBzdHJpbmcgYmFzZWQgb24KK3RoZSBhcmd1bWVudCBuYW1lOjoKKworICAgICMgY29udGVu
dCBvZiB0ZXN0X3RpbWUucHkKKworICAgIGltcG9ydCBweXRlc3QKKworICAgIGZyb20gZGF0ZXRp
bWUgaW1wb3J0IGRhdGV0aW1lLCB0aW1lZGVsdGEKKworICAgIHRlc3RkYXRhID0gWworICAgICAg
ICAoZGF0ZXRpbWUoMjAwMSwgMTIsIDEyKSwgZGF0ZXRpbWUoMjAwMSwgMTIsIDExKSwgdGltZWRl
bHRhKDEpKSwKKyAgICAgICAgKGRhdGV0aW1lKDIwMDEsIDEyLCAxMSksIGRhdGV0aW1lKDIwMDEs
IDEyLCAxMiksIHRpbWVkZWx0YSgtMSkpLAorICAgIF0KKworCisgICAgQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCJhLGIsZXhwZWN0ZWQiLCB0ZXN0ZGF0YSkKKyAgICBkZWYgdGVzdF90aW1lZGlz
dGFuY2VfdjAoYSwgYiwgZXhwZWN0ZWQpOgorICAgICAgICBkaWZmID0gYSAtIGIKKyAgICAgICAg
YXNzZXJ0IGRpZmYgPT0gZXhwZWN0ZWQKKworCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJhLGIsZXhwZWN0ZWQiLCB0ZXN0ZGF0YSwgaWRzPVsiZm9yd2FyZCIsICJiYWNrd2FyZCJdKQor
ICAgIGRlZiB0ZXN0X3RpbWVkaXN0YW5jZV92MShhLCBiLCBleHBlY3RlZCk6CisgICAgICAgIGRp
ZmYgPSBhIC0gYgorICAgICAgICBhc3NlcnQgZGlmZiA9PSBleHBlY3RlZAorCisKKyAgICBkZWYg
aWRmbih2YWwpOgorICAgICAgICBpZiBpc2luc3RhbmNlKHZhbCwgKGRhdGV0aW1lLCkpOgorICAg
ICAgICAgICAgIyBub3RlIHRoaXMgd291bGRuJ3Qgc2hvdyBhbnkgaG91cnMvbWludXRlcy9zZWNv
bmRzCisgICAgICAgICAgICByZXR1cm4gdmFsLnN0cmZ0aW1lKCclWSVtJWQnKQorCisKKyAgICBA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImEsYixleHBlY3RlZCIsIHRlc3RkYXRhLCBpZHM9aWRm
bikKKyAgICBkZWYgdGVzdF90aW1lZGlzdGFuY2VfdjIoYSwgYiwgZXhwZWN0ZWQpOgorICAgICAg
ICBkaWZmID0gYSAtIGIKKyAgICAgICAgYXNzZXJ0IGRpZmYgPT0gZXhwZWN0ZWQKKworICAgIEBw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSgiYSxiLGV4cGVjdGVkIiwgWworICAgICAgICBweXRlc3Qu
cGFyYW0oZGF0ZXRpbWUoMjAwMSwgMTIsIDEyKSwgZGF0ZXRpbWUoMjAwMSwgMTIsIDExKSwKKyAg
ICAgICAgICAgICAgICAgICAgIHRpbWVkZWx0YSgxKSwgaWQ9J2ZvcndhcmQnKSwKKyAgICAgICAg
cHl0ZXN0LnBhcmFtKGRhdGV0aW1lKDIwMDEsIDEyLCAxMSksIGRhdGV0aW1lKDIwMDEsIDEyLCAx
MiksCisgICAgICAgICAgICAgICAgICAgICB0aW1lZGVsdGEoLTEpLCBpZD0nYmFja3dhcmQnKSwK
KyAgICBdKQorICAgIGRlZiB0ZXN0X3RpbWVkaXN0YW5jZV92MyhhLCBiLCBleHBlY3RlZCk6Cisg
ICAgICAgIGRpZmYgPSBhIC0gYgorICAgICAgICBhc3NlcnQgZGlmZiA9PSBleHBlY3RlZAorCitJ
biBgYHRlc3RfdGltZWRpc3RhbmNlX3YwYGAsIHdlIGxldCBweXRlc3QgZ2VuZXJhdGUgdGhlIHRl
c3QgSURzLgorCitJbiBgYHRlc3RfdGltZWRpc3RhbmNlX3YxYGAsIHdlIHNwZWNpZmllZCBgYGlk
c2BgIGFzIGEgbGlzdCBvZiBzdHJpbmdzIHdoaWNoIHdlcmUKK3VzZWQgYXMgdGhlIHRlc3QgSURz
LiBUaGVzZSBhcmUgc3VjY2luY3QsIGJ1dCBjYW4gYmUgYSBwYWluIHRvIG1haW50YWluLgorCitJ
biBgYHRlc3RfdGltZWRpc3RhbmNlX3YyYGAsIHdlIHNwZWNpZmllZCBgYGlkc2BgIGFzIGEgZnVu
Y3Rpb24gdGhhdCBjYW4gZ2VuZXJhdGUgYQorc3RyaW5nIHJlcHJlc2VudGF0aW9uIHRvIG1ha2Ug
cGFydCBvZiB0aGUgdGVzdCBJRC4gU28gb3VyIGBgZGF0ZXRpbWVgYCB2YWx1ZXMgdXNlIHRoZQor
bGFiZWwgZ2VuZXJhdGVkIGJ5IGBgaWRmbmBgLCBidXQgYmVjYXVzZSB3ZSBkaWRuJ3QgZ2VuZXJh
dGUgYSBsYWJlbCBmb3IgYGB0aW1lZGVsdGFgYAorb2JqZWN0cywgdGhleSBhcmUgc3RpbGwgdXNp
bmcgdGhlIGRlZmF1bHQgcHl0ZXN0IHJlcHJlc2VudGF0aW9uOjoKKworCisgICAgJCBweXRlc3Qg
dGVzdF90aW1lLnB5IC0tY29sbGVjdC1vbmx5CisgICAgPT09PT09PT09PT09PT09PT09PT09PT09
PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAg
IHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwg
cGx1Z2d5LTAueC55CisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAg
ICBjb2xsZWN0ZWQgOCBpdGVtcworICAgIDxNb2R1bGUgJ3Rlc3RfdGltZS5weSc+CisgICAgICA8
RnVuY3Rpb24gJ3Rlc3RfdGltZWRpc3RhbmNlX3YwW2EwLWIwLWV4cGVjdGVkMF0nPgorICAgICAg
PEZ1bmN0aW9uICd0ZXN0X3RpbWVkaXN0YW5jZV92MFthMS1iMS1leHBlY3RlZDFdJz4KKyAgICAg
IDxGdW5jdGlvbiAndGVzdF90aW1lZGlzdGFuY2VfdjFbZm9yd2FyZF0nPgorICAgICAgPEZ1bmN0
aW9uICd0ZXN0X3RpbWVkaXN0YW5jZV92MVtiYWNrd2FyZF0nPgorICAgICAgPEZ1bmN0aW9uICd0
ZXN0X3RpbWVkaXN0YW5jZV92MlsyMDAxMTIxMi0yMDAxMTIxMS1leHBlY3RlZDBdJz4KKyAgICAg
IDxGdW5jdGlvbiAndGVzdF90aW1lZGlzdGFuY2VfdjJbMjAwMTEyMTEtMjAwMTEyMTItZXhwZWN0
ZWQxXSc+CisgICAgICA8RnVuY3Rpb24gJ3Rlc3RfdGltZWRpc3RhbmNlX3YzW2ZvcndhcmRdJz4K
KyAgICAgIDxGdW5jdGlvbiAndGVzdF90aW1lZGlzdGFuY2VfdjNbYmFja3dhcmRdJz4KKyAgICAK
KyAgICA9PT09PT09PT09PT09PT09PT09PT09PSBubyB0ZXN0cyByYW4gaW4gMC4xMiBzZWNvbmRz
ID09PT09PT09PT09PT09PT09PT09PT09CisKK0luIGBgdGVzdF90aW1lZGlzdGFuY2VfdjNgYCwg
d2UgdXNlZCBgYHB5dGVzdC5wYXJhbWBgIHRvIHNwZWNpZnkgdGhlIHRlc3QgSURzCit0b2dldGhl
ciB3aXRoIHRoZSBhY3R1YWwgZGF0YSwgaW5zdGVhZCBvZiBsaXN0aW5nIHRoZW0gc2VwYXJhdGVs
eS4KKworQSBxdWljayBwb3J0IG9mICJ0ZXN0c2NlbmFyaW9zIgorLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIF9gdGVzdCBzY2VuYXJpb3NgOiBodHRwOi8vcHlwaS5w
eXRob24ub3JnL3B5cGkvdGVzdHNjZW5hcmlvcy8KKworSGVyZSBpcyBhIHF1aWNrIHBvcnQgdG8g
cnVuIHRlc3RzIGNvbmZpZ3VyZWQgd2l0aCBgdGVzdCBzY2VuYXJpb3NgXywKK2FuIGFkZC1vbiBm
cm9tIFJvYmVydCBDb2xsaW5zIGZvciB0aGUgc3RhbmRhcmQgdW5pdHRlc3QgZnJhbWV3b3JrLiBX
ZQorb25seSBoYXZlIHRvIHdvcmsgYSBiaXQgdG8gY29uc3RydWN0IHRoZSBjb3JyZWN0IGFyZ3Vt
ZW50cyBmb3IgcHl0ZXN0J3MKKzpweTpmdW5jOmBNZXRhZnVuYy5wYXJhbWV0cml6ZWA6OgorCisg
ICAgIyBjb250ZW50IG9mIHRlc3Rfc2NlbmFyaW9zLnB5CisKKyAgICBkZWYgcHl0ZXN0X2dlbmVy
YXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAgaWRsaXN0ID0gW10KKyAgICAgICAgYXJndmFs
dWVzID0gW10KKyAgICAgICAgZm9yIHNjZW5hcmlvIGluIG1ldGFmdW5jLmNscy5zY2VuYXJpb3M6
CisgICAgICAgICAgICBpZGxpc3QuYXBwZW5kKHNjZW5hcmlvWzBdKQorICAgICAgICAgICAgaXRl
bXMgPSBzY2VuYXJpb1sxXS5pdGVtcygpCisgICAgICAgICAgICBhcmduYW1lcyA9IFt4WzBdIGZv
ciB4IGluIGl0ZW1zXQorICAgICAgICAgICAgYXJndmFsdWVzLmFwcGVuZCgoW3hbMV0gZm9yIHgg
aW4gaXRlbXNdKSkKKyAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoYXJnbmFtZXMsIGFyZ3Zh
bHVlcywgaWRzPWlkbGlzdCwgc2NvcGU9ImNsYXNzIikKKworICAgIHNjZW5hcmlvMSA9ICgnYmFz
aWMnLCB7J2F0dHJpYnV0ZSc6ICd2YWx1ZSd9KQorICAgIHNjZW5hcmlvMiA9ICgnYWR2YW5jZWQn
LCB7J2F0dHJpYnV0ZSc6ICd2YWx1ZTInfSkKKworICAgIGNsYXNzIFRlc3RTYW1wbGVXaXRoU2Nl
bmFyaW9zKG9iamVjdCk6CisgICAgICAgIHNjZW5hcmlvcyA9IFtzY2VuYXJpbzEsIHNjZW5hcmlv
Ml0KKworICAgICAgICBkZWYgdGVzdF9kZW1vMShzZWxmLCBhdHRyaWJ1dGUpOgorICAgICAgICAg
ICAgYXNzZXJ0IGlzaW5zdGFuY2UoYXR0cmlidXRlLCBzdHIpCisKKyAgICAgICAgZGVmIHRlc3Rf
ZGVtbzIoc2VsZiwgYXR0cmlidXRlKToKKyAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGF0
dHJpYnV0ZSwgc3RyKQorCit0aGlzIGlzIGEgZnVsbHkgc2VsZi1jb250YWluZWQgZXhhbXBsZSB3
aGljaCB5b3UgY2FuIHJ1biB3aXRoOjoKKworICAgICQgcHl0ZXN0IHRlc3Rfc2NlbmFyaW9zLnB5
CisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAz
LngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgcm9vdGRpcjog
JFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBjb2xsZWN0ZWQgNCBpdGVtcworICAgIAor
ICAgIHRlc3Rfc2NlbmFyaW9zLnB5IC4uLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFsxMDAlXQorICAgIAorICAgID09PT09PT09PT09PT09PT09PT09PT09
PT0gNCBwYXNzZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09PT0KKwor
SWYgeW91IGp1c3QgY29sbGVjdCB0ZXN0cyB5b3UnbGwgYWxzbyBuaWNlbHkgc2VlICdhZHZhbmNl
ZCcgYW5kICdiYXNpYycgYXMgdmFyaWFudHMgZm9yIHRoZSB0ZXN0IGZ1bmN0aW9uOjoKKworCisg
ICAgJCBweXRlc3QgLS1jb2xsZWN0LW9ubHkgdGVzdF9zY2VuYXJpb3MucHkKKyAgICA9PT09PT09
PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3Qt
My54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1Q
RElSLCBpbmlmaWxlOgorICAgIGNvbGxlY3RlZCA0IGl0ZW1zCisgICAgPE1vZHVsZSAndGVzdF9z
Y2VuYXJpb3MucHknPgorICAgICAgPENsYXNzICdUZXN0U2FtcGxlV2l0aFNjZW5hcmlvcyc+Cisg
ICAgICAgIDxJbnN0YW5jZSAnKCknPgorICAgICAgICAgIDxGdW5jdGlvbiAndGVzdF9kZW1vMVti
YXNpY10nPgorICAgICAgICAgIDxGdW5jdGlvbiAndGVzdF9kZW1vMltiYXNpY10nPgorICAgICAg
ICAgIDxGdW5jdGlvbiAndGVzdF9kZW1vMVthZHZhbmNlZF0nPgorICAgICAgICAgIDxGdW5jdGlv
biAndGVzdF9kZW1vMlthZHZhbmNlZF0nPgorICAgIAorICAgID09PT09PT09PT09PT09PT09PT09
PT09IG5vIHRlc3RzIHJhbiBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09PT09PT0K
KworTm90ZSB0aGF0IHdlIHRvbGQgYGBtZXRhZnVuYy5wYXJhbWV0cml6ZSgpYGAgdGhhdCB5b3Vy
IHNjZW5hcmlvIHZhbHVlcworc2hvdWxkIGJlIGNvbnNpZGVyZWQgY2xhc3Mtc2NvcGVkLiAgV2l0
aCBweXRlc3QtMi4zIHRoaXMgbGVhZHMgdG8gYQorcmVzb3VyY2UtYmFzZWQgb3JkZXJpbmcuCisK
K0RlZmVycmluZyB0aGUgc2V0dXAgb2YgcGFyYW1ldHJpemVkIHJlc291cmNlcworLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIHJlZ2VuZG9j
OndpcGUKKworVGhlIHBhcmFtZXRyaXphdGlvbiBvZiB0ZXN0IGZ1bmN0aW9ucyBoYXBwZW5zIGF0
IGNvbGxlY3Rpb24KK3RpbWUuICBJdCBpcyBhIGdvb2QgaWRlYSB0byBzZXR1cCBleHBlbnNpdmUg
cmVzb3VyY2VzIGxpa2UgREIKK2Nvbm5lY3Rpb25zIG9yIHN1YnByb2Nlc3Mgb25seSB3aGVuIHRo
ZSBhY3R1YWwgdGVzdCBpcyBydW4uCitIZXJlIGlzIGEgc2ltcGxlIGV4YW1wbGUgaG93IHlvdSBj
YW4gYWNoaWV2ZSB0aGF0LCBmaXJzdAordGhlIGFjdHVhbCB0ZXN0IHJlcXVpcmluZyBhIGBgZGJg
YCBvYmplY3Q6OgorCisgICAgIyBjb250ZW50IG9mIHRlc3RfYmFja2VuZHMucHkKKworICAgIGlt
cG9ydCBweXRlc3QKKyAgICBkZWYgdGVzdF9kYl9pbml0aWFsaXplZChkYik6CisgICAgICAgICMg
YSBkdW1teSB0ZXN0CisgICAgICAgIGlmIGRiLl9fY2xhc3NfXy5fX25hbWVfXyA9PSAiREIyIjoK
KyAgICAgICAgICAgIHB5dGVzdC5mYWlsKCJkZWxpYmVyYXRlbHkgZmFpbGluZyBmb3IgZGVtbyBw
dXJwb3NlcyIpCisKK1dlIGNhbiBub3cgYWRkIGEgdGVzdCBjb25maWd1cmF0aW9uIHRoYXQgZ2Vu
ZXJhdGVzIHR3byBpbnZvY2F0aW9ucyBvZgordGhlIGBgdGVzdF9kYl9pbml0aWFsaXplZGBgIGZ1
bmN0aW9uIGFuZCBhbHNvIGltcGxlbWVudHMgYSBmYWN0b3J5IHRoYXQKK2NyZWF0ZXMgYSBkYXRh
YmFzZSBvYmplY3QgZm9yIHRoZSBhY3R1YWwgdGVzdCBpbnZvY2F0aW9uczo6CisKKyAgICAjIGNv
bnRlbnQgb2YgY29uZnRlc3QucHkKKyAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICBkZWYgcHl0ZXN0
X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAgaWYgJ2RiJyBpbiBtZXRhZnVuYy5m
aXh0dXJlbmFtZXM6CisgICAgICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgiZGIiLCBbJ2Qx
JywgJ2QyJ10sIGluZGlyZWN0PVRydWUpCisKKyAgICBjbGFzcyBEQjEob2JqZWN0KToKKyAgICAg
ICAgIm9uZSBkYXRhYmFzZSBvYmplY3QiCisgICAgY2xhc3MgREIyKG9iamVjdCk6CisgICAgICAg
ICJhbHRlcm5hdGl2ZSBkYXRhYmFzZSBvYmplY3QiCisKKyAgICBAcHl0ZXN0LmZpeHR1cmUKKyAg
ICBkZWYgZGIocmVxdWVzdCk6CisgICAgICAgIGlmIHJlcXVlc3QucGFyYW0gPT0gImQxIjoKKyAg
ICAgICAgICAgIHJldHVybiBEQjEoKQorICAgICAgICBlbGlmIHJlcXVlc3QucGFyYW0gPT0gImQy
IjoKKyAgICAgICAgICAgIHJldHVybiBEQjIoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigiaW52YWxpZCBpbnRlcm5hbCB0ZXN0IGNvbmZpZyIpCisKK0xldCdz
IGZpcnN0IHNlZSBob3cgaXQgbG9va3MgbGlrZSBhdCBjb2xsZWN0aW9uIHRpbWU6OgorCisgICAg
JCBweXRlc3QgdGVzdF9iYWNrZW5kcy5weSAtLWNvbGxlY3Qtb25seQorICAgID09PT09PT09PT09
PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngu
eSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIs
IGluaWZpbGU6CisgICAgY29sbGVjdGVkIDIgaXRlbXMKKyAgICA8TW9kdWxlICd0ZXN0X2JhY2tl
bmRzLnB5Jz4KKyAgICAgIDxGdW5jdGlvbiAndGVzdF9kYl9pbml0aWFsaXplZFtkMV0nPgorICAg
ICAgPEZ1bmN0aW9uICd0ZXN0X2RiX2luaXRpYWxpemVkW2QyXSc+CisgICAgCisgICAgPT09PT09
PT09PT09PT09PT09PT09PT0gbm8gdGVzdHMgcmFuIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09
PT09PT09PT09PT09PQorCitBbmQgdGhlbiB3aGVuIHdlIHJ1biB0aGUgdGVzdDo6CisKKyAgICAk
IHB5dGVzdCAtcSB0ZXN0X2JhY2tlbmRzLnB5CisgICAgLkYgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCisgICAg
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEZBSUxVUkVTID09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQorICAgIF9fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9k
Yl9pbml0aWFsaXplZFtkMl0gX19fX19fX19fX19fX19fX19fX19fX19fX18KKyAgICAKKyAgICBk
YiA9IDxjb25mdGVzdC5EQjIgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CisgICAgCisgICAgICAgIGRl
ZiB0ZXN0X2RiX2luaXRpYWxpemVkKGRiKToKKyAgICAgICAgICAgICMgYSBkdW1teSB0ZXN0Cisg
ICAgICAgICAgICBpZiBkYi5fX2NsYXNzX18uX19uYW1lX18gPT0gIkRCMiI6CisgICAgPiAgICAg
ICAgICAgcHl0ZXN0LmZhaWwoImRlbGliZXJhdGVseSBmYWlsaW5nIGZvciBkZW1vIHB1cnBvc2Vz
IikKKyAgICBFICAgICAgICAgICBGYWlsZWQ6IGRlbGliZXJhdGVseSBmYWlsaW5nIGZvciBkZW1v
IHB1cnBvc2VzCisgICAgCisgICAgdGVzdF9iYWNrZW5kcy5weTo2OiBGYWlsZWQKKyAgICAxIGZh
aWxlZCwgMSBwYXNzZWQgaW4gMC4xMiBzZWNvbmRzCisKK1RoZSBmaXJzdCBpbnZvY2F0aW9uIHdp
dGggYGBkYiA9PSAiREIxImBgIHBhc3NlZCB3aGlsZSB0aGUgc2Vjb25kIHdpdGggYGBkYiA9PSAi
REIyImBgIGZhaWxlZC4gIE91ciBgYGRiYGAgZml4dHVyZSBmdW5jdGlvbiBoYXMgaW5zdGFudGlh
dGVkIGVhY2ggb2YgdGhlIERCIHZhbHVlcyBkdXJpbmcgdGhlIHNldHVwIHBoYXNlIHdoaWxlIHRo
ZSBgYHB5dGVzdF9nZW5lcmF0ZV90ZXN0c2BgIGdlbmVyYXRlZCB0d28gYWNjb3JkaW5nIGNhbGxz
IHRvIHRoZSBgYHRlc3RfZGJfaW5pdGlhbGl6ZWRgYCBkdXJpbmcgdGhlIGNvbGxlY3Rpb24gcGhh
c2UuCisKKy4uIHJlZ2VuZG9jOndpcGUKKworQXBwbHkgaW5kaXJlY3Qgb24gcGFydGljdWxhciBh
cmd1bWVudHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCitWZXJ5IG9mdGVuIHBhcmFtZXRyaXphdGlvbiB1c2VzIG1vcmUgdGhhbiBvbmUgYXJn
dW1lbnQgbmFtZS4gVGhlcmUgaXMgb3Bwb3J0dW5pdHkgdG8gYXBwbHkgYGBpbmRpcmVjdGBgCitw
YXJhbWV0ZXIgb24gcGFydGljdWxhciBhcmd1bWVudHMuIEl0IGNhbiBiZSBkb25lIGJ5IHBhc3Np
bmcgbGlzdCBvciB0dXBsZSBvZgorYXJndW1lbnRzJyBuYW1lcyB0byBgYGluZGlyZWN0YGAuIElu
IHRoZSBleGFtcGxlIGJlbG93IHRoZXJlIGlzIGEgZnVuY3Rpb24gYGB0ZXN0X2luZGlyZWN0YGAg
d2hpY2ggdXNlcwordHdvIGZpeHR1cmVzOiBgYHhgYCBhbmQgYGB5YGAuIEhlcmUgd2UgZ2l2ZSB0
byBpbmRpcmVjdCB0aGUgbGlzdCwgd2hpY2ggY29udGFpbnMgdGhlIG5hbWUgb2YgdGhlCitmaXh0
dXJlIGBgeGBgLiBUaGUgaW5kaXJlY3QgcGFyYW1ldGVyIHdpbGwgYmUgYXBwbGllZCB0byB0aGlz
IGFyZ3VtZW50IG9ubHksIGFuZCB0aGUgdmFsdWUgYGBhYGAKK3dpbGwgYmUgcGFzc2VkIHRvIHJl
c3BlY3RpdmUgZml4dHVyZSBmdW5jdGlvbjo6CisKKyAgICAjIGNvbnRlbnQgb2YgdGVzdF9pbmRp
cmVjdF9saXN0LnB5CisKKyAgICBpbXBvcnQgcHl0ZXN0CisgICAgQHB5dGVzdC5maXh0dXJlKHNj
b3BlPSdmdW5jdGlvbicpCisgICAgZGVmIHgocmVxdWVzdCk6CisgICAgICAgIHJldHVybiByZXF1
ZXN0LnBhcmFtICogMworCisgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdmdW5jdGlvbicpCisg
ICAgZGVmIHkocmVxdWVzdCk6CisgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtICogMgorCisg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd4LCB5JywgWygnYScsICdiJyldLCBpbmRpcmVj
dD1bJ3gnXSkKKyAgICBkZWYgdGVzdF9pbmRpcmVjdCh4LHkpOgorICAgICAgICBhc3NlcnQgeCA9
PSAnYWFhJworICAgICAgICBhc3NlcnQgeSA9PSAnYicKKworVGhlIHJlc3VsdCBvZiB0aGlzIHRl
c3Qgd2lsbCBiZSBzdWNjZXNzZnVsOjoKKworICAgICQgcHl0ZXN0IHRlc3RfaW5kaXJlY3RfbGlz
dC5weSAtLWNvbGxlY3Qtb25seQorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0
IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBwbGF0Zm9y
bSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0w
LngueQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgY29sbGVj
dGVkIDEgaXRlbQorICAgIDxNb2R1bGUgJ3Rlc3RfaW5kaXJlY3RfbGlzdC5weSc+CisgICAgICA8
RnVuY3Rpb24gJ3Rlc3RfaW5kaXJlY3RbYS1iXSc+CisgICAgCisgICAgPT09PT09PT09PT09PT09
PT09PT09PT0gbm8gdGVzdHMgcmFuIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09
PT09PQorCisuLiByZWdlbmRvYzp3aXBlCisKK1BhcmFtZXRyaXppbmcgdGVzdCBtZXRob2RzIHRo
cm91Z2ggcGVyLWNsYXNzIGNvbmZpZ3VyYXRpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIF9gdW5pdHRlc3QgcGFy
YW1ldHJpemVyYDogaHR0cHM6Ly9naXRodWIuY29tL3Rlc3RpbmctY2FiYWwvdW5pdHRlc3QtZXh0
L2Jsb2IvbWFzdGVyL3BhcmFtcy5weQorCisKK0hlcmUgaXMgYW4gZXhhbXBsZSBgYHB5dGVzdF9n
ZW5lcmF0ZV90ZXN0c2BgIGZ1bmN0aW9uIGltcGxlbWVudGluZyBhCitwYXJhbWV0cml6YXRpb24g
c2NoZW1lIHNpbWlsYXIgdG8gTWljaGFlbCBGb29yZCdzIGB1bml0dGVzdAorcGFyYW1ldHJpemVy
YF8gYnV0IGluIGEgbG90IGxlc3MgY29kZTo6CisKKyAgICAjIGNvbnRlbnQgb2YgLi90ZXN0X3Bh
cmFtZXRyaXplLnB5CisgICAgaW1wb3J0IHB5dGVzdAorCisgICAgZGVmIHB5dGVzdF9nZW5lcmF0
ZV90ZXN0cyhtZXRhZnVuYyk6CisgICAgICAgICMgY2FsbGVkIG9uY2UgcGVyIGVhY2ggdGVzdCBm
dW5jdGlvbgorICAgICAgICBmdW5jYXJnbGlzdCA9IG1ldGFmdW5jLmNscy5wYXJhbXNbbWV0YWZ1
bmMuZnVuY3Rpb24uX19uYW1lX19dCisgICAgICAgIGFyZ25hbWVzID0gc29ydGVkKGZ1bmNhcmds
aXN0WzBdKQorICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZShhcmduYW1lcywgW1tmdW5jYXJn
c1tuYW1lXSBmb3IgbmFtZSBpbiBhcmduYW1lc10KKyAgICAgICAgICAgICAgICBmb3IgZnVuY2Fy
Z3MgaW4gZnVuY2FyZ2xpc3RdKQorCisgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAg
ICAgICMgYSBtYXAgc3BlY2lmeWluZyBtdWx0aXBsZSBhcmd1bWVudCBzZXRzIGZvciBhIHRlc3Qg
bWV0aG9kCisgICAgICAgIHBhcmFtcyA9IHsKKyAgICAgICAgICAgICd0ZXN0X2VxdWFscyc6IFtk
aWN0KGE9MSwgYj0yKSwgZGljdChhPTMsIGI9MyksIF0sCisgICAgICAgICAgICAndGVzdF96ZXJv
ZGl2aXNpb24nOiBbZGljdChhPTEsIGI9MCksIF0sCisgICAgICAgIH0KKworICAgICAgICBkZWYg
dGVzdF9lcXVhbHMoc2VsZiwgYSwgYik6CisgICAgICAgICAgICBhc3NlcnQgYSA9PSBiCisKKyAg
ICAgICAgZGVmIHRlc3RfemVyb2RpdmlzaW9uKHNlbGYsIGEsIGIpOgorICAgICAgICAgICAgcHl0
ZXN0LnJhaXNlcyhaZXJvRGl2aXNpb25FcnJvciwgImEvYiIpCisKK091ciB0ZXN0IGdlbmVyYXRv
ciBsb29rcyB1cCBhIGNsYXNzLWxldmVsIGRlZmluaXRpb24gd2hpY2ggc3BlY2lmaWVzIHdoaWNo
Cithcmd1bWVudCBzZXRzIHRvIHVzZSBmb3IgZWFjaCB0ZXN0IGZ1bmN0aW9uLiAgTGV0J3MgcnVu
IGl0OjoKKworICAgICQgcHl0ZXN0IC1xCisgICAgRi4uICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCisgICAgPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEZBSUxVUkVTID09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQorICAgIF9fX19fX19fX19fX19fX19fX19fX19fXyBUZXN0Q2xhc3Mu
dGVzdF9lcXVhbHNbMS0yXSBfX19fX19fX19fX19fX19fX19fX19fX18KKyAgICAKKyAgICBzZWxm
ID0gPHRlc3RfcGFyYW1ldHJpemUuVGVzdENsYXNzIG9iamVjdCBhdCAweGRlYWRiZWVmPiwgYSA9
IDEsIGIgPSAyCisgICAgCisgICAgICAgIGRlZiB0ZXN0X2VxdWFscyhzZWxmLCBhLCBiKToKKyAg
ICA+ICAgICAgIGFzc2VydCBhID09IGIKKyAgICBFICAgICAgIGFzc2VydCAxID09IDIKKyAgICAK
KyAgICB0ZXN0X3BhcmFtZXRyaXplLnB5OjE4OiBBc3NlcnRpb25FcnJvcgorICAgIDEgZmFpbGVk
LCAyIHBhc3NlZCBpbiAwLjEyIHNlY29uZHMKKworSW5kaXJlY3QgcGFyYW1ldHJpemF0aW9uIHdp
dGggbXVsdGlwbGUgZml4dHVyZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0hlcmUgaXMgYSBzdHJpcHBlZCBkb3duIHJl
YWwtbGlmZSBleGFtcGxlIG9mIHVzaW5nIHBhcmFtZXRyaXplZAordGVzdGluZyBmb3IgdGVzdGlu
ZyBzZXJpYWxpemF0aW9uIG9mIG9iamVjdHMgYmV0d2VlbiBkaWZmZXJlbnQgcHl0aG9uCitpbnRl
cnByZXRlcnMuICBXZSBkZWZpbmUgYSBgYHRlc3RfYmFzaWNfb2JqZWN0c2BgIGZ1bmN0aW9uIHdo
aWNoCitpcyB0byBiZSBydW4gd2l0aCBkaWZmZXJlbnQgc2V0cyBvZiBhcmd1bWVudHMgZm9yIGl0
cyB0aHJlZSBhcmd1bWVudHM6CisKKyogYGBweXRob24xYGA6IGZpcnN0IHB5dGhvbiBpbnRlcnBy
ZXRlciwgcnVuIHRvIHBpY2tsZS1kdW1wIGFuIG9iamVjdCB0byBhIGZpbGUKKyogYGBweXRob24y
YGA6IHNlY29uZCBpbnRlcnByZXRlciwgcnVuIHRvIHBpY2tsZS1sb2FkIGFuIG9iamVjdCBmcm9t
IGEgZmlsZQorKiBgYG9iamBgOiBvYmplY3QgdG8gYmUgZHVtcGVkL2xvYWRlZAorCisuLiBsaXRl
cmFsaW5jbHVkZTo6IG11bHRpcHl0aG9uLnB5CisKK1J1bm5pbmcgaXQgcmVzdWx0cyBpbiBzb21l
IHNraXBzIGlmIHdlIGRvbid0IGhhdmUgYWxsIHRoZSBweXRob24gaW50ZXJwcmV0ZXJzIGluc3Rh
bGxlZCBhbmQgb3RoZXJ3aXNlIHJ1bnMgYWxsIGNvbWJpbmF0aW9ucyAoNSBpbnRlcnByZXRlcnMg
dGltZXMgNSBpbnRlcnByZXRlcnMgdGltZXMgMyBvYmplY3RzIHRvIHNlcmlhbGl6ZS9kZXNlcmlh
bGl6ZSk6OgorCisgICAuICQgcHl0ZXN0IC1ycyAtcSBtdWx0aXB5dGhvbi5weQorICAgLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWzEwMCVdCisgICAyNyBwYXNzZWQgaW4gMC4xMiBzZWNvbmRzCisKK0luZGlyZWN0IHBh
cmFtZXRyaXphdGlvbiBvZiBvcHRpb25hbCBpbXBsZW1lbnRhdGlvbnMvaW1wb3J0cworLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKworSWYgeW91IHdhbnQgdG8gY29tcGFyZSB0aGUgb3V0Y29tZXMgb2Ygc2V2ZXJhbCBp
bXBsZW1lbnRhdGlvbnMgb2YgYSBnaXZlbgorQVBJLCB5b3UgY2FuIHdyaXRlIHRlc3QgZnVuY3Rp
b25zIHRoYXQgcmVjZWl2ZSB0aGUgYWxyZWFkeSBpbXBvcnRlZCBpbXBsZW1lbnRhdGlvbnMKK2Fu
ZCBnZXQgc2tpcHBlZCBpbiBjYXNlIHRoZSBpbXBsZW1lbnRhdGlvbiBpcyBub3QgaW1wb3J0YWJs
ZS9hdmFpbGFibGUuICBMZXQncworc2F5IHdlIGhhdmUgYSAiYmFzZSIgaW1wbGVtZW50YXRpb24g
YW5kIHRoZSBvdGhlciAocG9zc2libHkgb3B0aW1pemVkIG9uZXMpCituZWVkIHRvIHByb3ZpZGUg
c2ltaWxhciByZXN1bHRzOjoKKworICAgICMgY29udGVudCBvZiBjb25mdGVzdC5weQorCisgICAg
aW1wb3J0IHB5dGVzdAorCisgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIikKKyAg
ICBkZWYgYmFzZW1vZChyZXF1ZXN0KToKKyAgICAgICAgcmV0dXJuIHB5dGVzdC5pbXBvcnRvcnNr
aXAoImJhc2UiKQorCisgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIiwgcGFyYW1z
PVsib3B0MSIsICJvcHQyIl0pCisgICAgZGVmIG9wdG1vZChyZXF1ZXN0KToKKyAgICAgICAgcmV0
dXJuIHB5dGVzdC5pbXBvcnRvcnNraXAocmVxdWVzdC5wYXJhbSkKKworQW5kIHRoZW4gYSBiYXNl
IGltcGxlbWVudGF0aW9uIG9mIGEgc2ltcGxlIGZ1bmN0aW9uOjoKKworICAgICMgY29udGVudCBv
ZiBiYXNlLnB5CisgICAgZGVmIGZ1bmMxKCk6CisgICAgICAgIHJldHVybiAxCisKK0FuZCBhbiBv
cHRpbWl6ZWQgdmVyc2lvbjo6CisKKyAgICAjIGNvbnRlbnQgb2Ygb3B0MS5weQorICAgIGRlZiBm
dW5jMSgpOgorICAgICAgICByZXR1cm4gMS4wMDAxCisKK0FuZCBmaW5hbGx5IGEgbGl0dGxlIHRl
c3QgbW9kdWxlOjoKKworICAgICMgY29udGVudCBvZiB0ZXN0X21vZHVsZS5weQorCisgICAgZGVm
IHRlc3RfZnVuYzEoYmFzZW1vZCwgb3B0bW9kKToKKyAgICAgICAgYXNzZXJ0IHJvdW5kKGJhc2Vt
b2QuZnVuYzEoKSwgMykgPT0gcm91bmQob3B0bW9kLmZ1bmMxKCksIDMpCisKKworSWYgeW91IHJ1
biB0aGlzIHdpdGggcmVwb3J0aW5nIGZvciBza2lwcyBlbmFibGVkOjoKKworICAgICQgcHl0ZXN0
IC1ycyB0ZXN0X21vZHVsZS5weQorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0
IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBwbGF0Zm9y
bSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0w
LngueQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgY29sbGVj
dGVkIDIgaXRlbXMKKyAgICAKKyAgICB0ZXN0X21vZHVsZS5weSAucyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKyAgICA9PT09PT09PT09
PT09PT09PT09PT09PT09IHNob3J0IHRlc3Qgc3VtbWFyeSBpbmZvID09PT09PT09PT09PT09PT09
PT09PT09PT09CisgICAgU0tJUCBbMV0gJFJFR0VORE9DX1RNUERJUi9jb25mdGVzdC5weToxMTog
Y291bGQgbm90IGltcG9ydCAnb3B0MicKKyAgICAKKyAgICA9PT09PT09PT09PT09PT09PT09IDEg
cGFzc2VkLCAxIHNraXBwZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09CisK
K1lvdSdsbCBzZWUgdGhhdCB3ZSBkb24ndCBoYXZlIGEgYGBvcHQyYGAgbW9kdWxlIGFuZCB0aHVz
IHRoZSBzZWNvbmQgdGVzdCBydW4KK29mIG91ciBgYHRlc3RfZnVuYzFgYCB3YXMgc2tpcHBlZC4g
IEEgZmV3IG5vdGVzOgorCistIHRoZSBmaXh0dXJlIGZ1bmN0aW9ucyBpbiB0aGUgYGBjb25mdGVz
dC5weWBgIGZpbGUgYXJlICJzZXNzaW9uLXNjb3BlZCIgYmVjYXVzZSB3ZQorICBkb24ndCBuZWVk
IHRvIGltcG9ydCBtb3JlIHRoYW4gb25jZQorCistIGlmIHlvdSBoYXZlIG11bHRpcGxlIHRlc3Qg
ZnVuY3Rpb25zIGFuZCBhIHNraXBwZWQgaW1wb3J0LCB5b3Ugd2lsbCBzZWUKKyAgdGhlIGBgWzFd
YGAgY291bnQgaW5jcmVhc2luZyBpbiB0aGUgcmVwb3J0CisKKy0geW91IGNhbiBwdXQgOnJlZjpg
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplIDxAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemU+YCBzdHls
ZQorICBwYXJhbWV0cml6YXRpb24gb24gdGhlIHRlc3QgZnVuY3Rpb25zIHRvIHBhcmFtZXRyaXpl
IGlucHV0L291dHB1dAorICB2YWx1ZXMgYXMgd2VsbC4KKworCitTZXQgbWFya3Mgb3IgdGVzdCBJ
RCBmb3IgaW5kaXZpZHVhbCBwYXJhbWV0cml6ZWQgdGVzdAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVXNlIGBg
cHl0ZXN0LnBhcmFtYGAgdG8gYXBwbHkgbWFya3Mgb3Igc2V0IHRlc3QgSUQgdG8gaW5kaXZpZHVh
bCBwYXJhbWV0cml6ZWQgdGVzdC4KK0ZvciBleGFtcGxlOjoKKworICAgICMgY29udGVudCBvZiB0
ZXN0X3B5dGVzdF9wYXJhbV9leGFtcGxlLnB5CisgICAgaW1wb3J0IHB5dGVzdAorICAgIEBweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgndGVzdF9pbnB1dCxleHBlY3RlZCcsIFsKKyAgICAgICAgKCcz
KzUnLCA4KSwKKyAgICAgICAgcHl0ZXN0LnBhcmFtKCcxKzcnLCA4LAorICAgICAgICAgICAgICAg
ICAgICAgbWFya3M9cHl0ZXN0Lm1hcmsuYmFzaWMpLAorICAgICAgICBweXRlc3QucGFyYW0oJzIr
NCcsIDYsCisgICAgICAgICAgICAgICAgICAgICBtYXJrcz1weXRlc3QubWFyay5iYXNpYywKKyAg
ICAgICAgICAgICAgICAgICAgIGlkPSdiYXNpY18yKzQnKSwKKyAgICAgICAgcHl0ZXN0LnBhcmFt
KCc2KjknLCA0MiwKKyAgICAgICAgICAgICAgICAgICAgIG1hcmtzPVtweXRlc3QubWFyay5iYXNp
YywgcHl0ZXN0Lm1hcmsueGZhaWxdLAorICAgICAgICAgICAgICAgICAgICAgaWQ9J2Jhc2ljXzYq
OScpLAorICAgIF0pCisgICAgZGVmIHRlc3RfZXZhbCh0ZXN0X2lucHV0LCBleHBlY3RlZCk6Cisg
ICAgICAgIGFzc2VydCBldmFsKHRlc3RfaW5wdXQpID09IGV4cGVjdGVkCisgICAgCitJbiB0aGlz
IGV4YW1wbGUsIHdlIGhhdmUgNCBwYXJhbWV0cml6ZWQgdGVzdHMuIEV4Y2VwdCBmb3IgdGhlIGZp
cnN0IHRlc3QsCit3ZSBtYXJrIHRoZSByZXN0IHRocmVlIHBhcmFtZXRyaXplZCB0ZXN0cyB3aXRo
IHRoZSBjdXN0b20gbWFya2VyIGBgYmFzaWNgYCwKK2FuZCBmb3IgdGhlIGZvdXJ0aCB0ZXN0IHdl
IGFsc28gdXNlIHRoZSBidWlsdC1pbiBtYXJrIGBgeGZhaWxgYCB0byBpbmRpY2F0ZSB0aGlzIAor
dGVzdCBpcyBleHBlY3RlZCB0byBmYWlsLiBGb3IgZXhwbGljaXRuZXNzLCB3ZSBzZXQgdGVzdCBp
ZHMgZm9yIHNvbWUgdGVzdHMuCisKK1RoZW4gcnVuIGBgcHl0ZXN0YGAgd2l0aCB2ZXJib3NlIG1v
ZGUgYW5kIHdpdGggb25seSB0aGUgYGBiYXNpY2BgIG1hcmtlcjo6CisKKyAgICBweXRlc3QgLXYg
LW0gYmFzaWMKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMu
eC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJ
UiwgaW5pZmlsZToKKyAgICBjb2xsZWN0ZWQgNCBpdGVtcworCisgICAgdGVzdF9weXRlc3RfcGFy
YW1fZXhhbXBsZS5weTo6dGVzdF9ldmFsWzErNy04XSBQQVNTRUQKKyAgICB0ZXN0X3B5dGVzdF9w
YXJhbV9leGFtcGxlLnB5Ojp0ZXN0X2V2YWxbYmFzaWNfMis0XSBQQVNTRUQKKyAgICB0ZXN0X3B5
dGVzdF9wYXJhbV9leGFtcGxlLnB5Ojp0ZXN0X2V2YWxbYmFzaWNfNio5XSB4ZmFpbAorICAgID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBzaG9ydCB0ZXN0IHN1bW1h
cnkgaW5mbyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAg
WEZBSUwgdGVzdF9weXRlc3RfcGFyYW1fZXhhbXBsZS5weTo6dGVzdF9ldmFsW2Jhc2ljXzYqOV0K
KworICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAxIHRl
c3RzIGRlc2VsZWN0ZWQgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CisKK0FzIHRoZSByZXN1bHQ6CisKKy0gRm91ciB0ZXN0cyB3ZXJlIGNvbGxlY3RlZAorLSBP
bmUgdGVzdCB3YXMgZGVzZWxlY3RlZCBiZWNhdXNlIGl0IGRvZXNuJ3QgaGF2ZSB0aGUgYGBiYXNp
Y2BgIG1hcmsuCistIFRocmVlIHRlc3RzIHdpdGggdGhlIGBgYmFzaWNgYCBtYXJrIHdhcyBzZWxl
Y3RlZC4KKy0gVGhlIHRlc3QgYGB0ZXN0X2V2YWxbMSs3LThdYGAgcGFzc2VkLCBidXQgdGhlIG5h
bWUgaXMgYXV0b2dlbmVyYXRlZCBhbmQgY29uZnVzaW5nLgorLSBUaGUgdGVzdCBgYHRlc3RfZXZh
bFtiYXNpY18yKzRdYGAgcGFzc2VkLgorLSBUaGUgdGVzdCBgYHRlc3RfZXZhbFtiYXNpY182Kjld
YGAgd2FzIGV4cGVjdGVkIHRvIGZhaWwgYW5kIGRpZCBmYWlsLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2V4YW1wbGUvcHkycHkzL2NvbmZ0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2V4YW1wbGUvcHkycHkzL2NvbmZ0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxY2QxZmIxMWVhNzkw
MjEwNzM4Y2EyMDNkZWY3Y2M5NDE4MGZkZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vZXhhbXBsZS9weTJweTMvY29uZnRlc3QucHkKQEAgLTAsMCArMSwxNiBAQAoraW1w
b3J0IHN5cworaW1wb3J0IHB5dGVzdAorCitweTMgPSBzeXMudmVyc2lvbl9pbmZvWzBdID49IDMK
KworY2xhc3MgRHVtbXlDb2xsZWN0b3IocHl0ZXN0LmNvbGxlY3QuRmlsZSk6CisgICAgZGVmIGNv
bGxlY3Qoc2VsZik6CisgICAgICAgIHJldHVybiBbXQorCitkZWYgcHl0ZXN0X3B5Y29sbGVjdF9t
YWtlbW9kdWxlKHBhdGgsIHBhcmVudCk6CisgICAgYm4gPSBwYXRoLmJhc2VuYW1lCisgICAgaWYg
InB5MyIgaW4gYm4gYW5kIG5vdCBweTMgb3IgKCJweTIiIGluIGJuIGFuZCBweTMpOgorICAgICAg
ICByZXR1cm4gRHVtbXlDb2xsZWN0b3IocGF0aCwgcGFyZW50PXBhcmVudCkKKworCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3B5MnB5My90ZXN0X3B5Mi5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3B5MnB5My90ZXN0X3B5Mi5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
MDllZDk0NjYyNzUzNGMzMWE5MTdhNDE1MDY2ZGRmNmFhNWU5MDAxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHkycHkzL3Rlc3RfcHkyLnB5CkBAIC0wLDAg
KzEsNyBAQAorCitkZWYgdGVzdF9leGNlcHRpb25fc3ludGF4KCk6CisgICAgdHJ5OgorICAgICAg
ICAwLzAKKyAgICBleGNlcHQgWmVyb0RpdmlzaW9uRXJyb3IsIGU6CisgICAgICAgIHBhc3MKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHkycHkzL3Rlc3RfcHkzLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHkycHkzL3Rlc3RfcHkzLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmE4MTFmMmJiYzU1ZmRkZGEyMWYyYTJlYmM4MTM4N2IxYzljYzAzZWYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9weTJweTMvdGVzdF9weTMucHkKQEAg
LTAsMCArMSw3IEBACisKK2RlZiB0ZXN0X2V4Y2VwdGlvbl9zeW50YXgoKToKKyAgICB0cnk6Cisg
ICAgICAgIDAvMAorICAgIGV4Y2VwdCBaZXJvRGl2aXNpb25FcnJvciBhcyBlOgorICAgICAgICBw
YXNzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3B5MnB5My93M2Mt
aW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3B5MnB5My93M2MtaW1wb3J0
LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xNzkxZjBjYzRkMDZlNDNmMmJmNGY3Nzg4ZTZkNWM0NDAwNDUwNWE2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHkycHkzL3cz
Yy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTkgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgor
Tm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9leGFtcGxlL3B5MnB5My9jb25mdGVzdC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxl
L3B5MnB5My90ZXN0X3B5Mi5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3B5MnB5My90
ZXN0X3B5My5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHl0aG9u
Y29sbGVjdGlvbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3B5dGhvbmNvbGxlY3Rp
b24ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOWM0YmQzMWNlYTAyNmE4Y2E3NThmMWRmZTRiYmE0M2QyMGFhZDQ0
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3B5dGhvbmNv
bGxlY3Rpb24ucHkKQEAgLTAsMCArMSwxMSBAQAorCisjIHJ1biB0aGlzIHdpdGggJCBweXRlc3Qg
LS1jb2xsZWN0LW9ubHkgdGVzdF9jb2xsZWN0b25seS5weQorIworZGVmIHRlc3RfZnVuY3Rpb24o
KToKKyAgICBwYXNzCisKK2NsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X21l
dGhvZChzZWxmKToKKyAgICAgICAgcGFzcworICAgIGRlZiB0ZXN0X2Fub3RoZXJtZXRob2Qoc2Vs
Zik6CisgICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxl
L3B5dGhvbmNvbGxlY3Rpb24ucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHl0aG9u
Y29sbGVjdGlvbi5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzlkMzFkN2M0MjA4NjMwMjc2MDRkMDc0MDc0YzNj
ZWZkN2RkNTVlMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxl
L3B5dGhvbmNvbGxlY3Rpb24ucnN0CkBAIC0wLDAgKzEsMjM5IEBACitDaGFuZ2luZyBzdGFuZGFy
ZCAoUHl0aG9uKSB0ZXN0IGRpc2NvdmVyeQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KKworSWdub3JlIHBhdGhzIGR1cmluZyB0ZXN0IGNvbGxlY3Rpb24K
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1lvdSBjYW4gZWFzaWx5IGln
bm9yZSBjZXJ0YWluIHRlc3QgZGlyZWN0b3JpZXMgYW5kIG1vZHVsZXMgZHVyaW5nIGNvbGxlY3Rp
b24KK2J5IHBhc3NpbmcgdGhlIGBgLS1pZ25vcmU9cGF0aGBgIG9wdGlvbiBvbiB0aGUgY2xpLiBg
YHB5dGVzdGBgIGFsbG93cyBtdWx0aXBsZQorYGAtLWlnbm9yZWBgIG9wdGlvbnMuIEV4YW1wbGU6
OgorCisgICAgdGVzdHMvCisgICAgfC0tIGV4YW1wbGUKKyAgICB8ICAgfC0tIHRlc3RfZXhhbXBs
ZV8wMS5weQorICAgIHwgICB8LS0gdGVzdF9leGFtcGxlXzAyLnB5CisgICAgfCAgICctLSB0ZXN0
X2V4YW1wbGVfMDMucHkKKyAgICB8LS0gZm9vYmFyCisgICAgfCAgIHwtLSB0ZXN0X2Zvb2Jhcl8w
MS5weQorICAgIHwgICB8LS0gdGVzdF9mb29iYXJfMDIucHkKKyAgICB8ICAgJy0tIHRlc3RfZm9v
YmFyXzAzLnB5CisgICAgJy0tIGhlbGxvCisgICAgICAgICctLSB3b3JsZAorICAgICAgICAgICAg
fC0tIHRlc3Rfd29ybGRfMDEucHkKKyAgICAgICAgICAgIHwtLSB0ZXN0X3dvcmxkXzAyLnB5Cisg
ICAgICAgICAgICAnLS0gdGVzdF93b3JsZF8wMy5weQorCitOb3cgaWYgeW91IGludm9rZSBgYHB5
dGVzdGBgIHdpdGggYGAtLWlnbm9yZT10ZXN0cy9mb29iYXIvdGVzdF9mb29iYXJfMDMucHkgLS1p
Z25vcmU9dGVzdHMvaGVsbG8vYGAsCit5b3Ugd2lsbCBzZWUgdGhhdCBgYHB5dGVzdGBgIG9ubHkg
Y29sbGVjdHMgdGVzdC1tb2R1bGVzLCB3aGljaCBkbyBub3QgbWF0Y2ggdGhlIHBhdHRlcm5zIHNw
ZWNpZmllZDo6CisKKyAgICA9PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09
CisgICAgcGxhdGZvcm0gZGFyd2luIC0tIFB5dGhvbiAyLjcuMTAsIHB5dGVzdC0yLjguMiwgcHkt
MS40LjMwLCBwbHVnZ3ktMC4zLjEKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlm
aWxlOgorICAgIGNvbGxlY3RlZCA1IGl0ZW1zCisKKyAgICB0ZXN0cy9leGFtcGxlL3Rlc3RfZXhh
bXBsZV8wMS5weSAuCisgICAgdGVzdHMvZXhhbXBsZS90ZXN0X2V4YW1wbGVfMDIucHkgLgorICAg
IHRlc3RzL2V4YW1wbGUvdGVzdF9leGFtcGxlXzAzLnB5IC4KKyAgICB0ZXN0cy9mb29iYXIvdGVz
dF9mb29iYXJfMDEucHkgLgorICAgIHRlc3RzL2Zvb2Jhci90ZXN0X2Zvb2Jhcl8wMi5weSAuCisK
KyAgICA9PT09PT09IDUgcGFzc2VkIGluIDAuMDIgc2Vjb25kcyA9PT09PT09CisKKworS2VlcGlu
ZyBkdXBsaWNhdGUgcGF0aHMgc3BlY2lmaWVkIGZyb20gY29tbWFuZCBsaW5lCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0RlZmF1bHQgYmVo
YXZpb3Igb2YgYGBweXRlc3RgYCBpcyB0byBpZ25vcmUgZHVwbGljYXRlIHBhdGhzIHNwZWNpZmll
ZCBmcm9tIHRoZSBjb21tYW5kIGxpbmUuCitFeGFtcGxlOjoKKworICAgIHB5LnRlc3QgcGF0aF9h
IHBhdGhfYQorCisgICAgLi4uCisgICAgY29sbGVjdGVkIDEgaXRlbQorICAgIC4uLgorCitKdXN0
IGNvbGxlY3QgdGVzdHMgb25jZS4KKworVG8gY29sbGVjdCBkdXBsaWNhdGUgdGVzdHMsIHVzZSB0
aGUgYGAtLWtlZXAtZHVwbGljYXRlc2BgIG9wdGlvbiBvbiB0aGUgY2xpLgorRXhhbXBsZTo6CisK
KyAgICBweS50ZXN0IC0ta2VlcC1kdXBsaWNhdGVzIHBhdGhfYSBwYXRoX2EKKworICAgIC4uLgor
ICAgIGNvbGxlY3RlZCAyIGl0ZW1zCisgICAgLi4uCisKK0FzIHRoZSBjb2xsZWN0b3IganVzdCB3
b3JrcyBvbiBkaXJlY3RvcmllcywgaWYgeW91IHNwZWNpZnkgdHdpY2UgYSBzaW5nbGUgdGVzdCBm
aWxlLCBgYHB5dGVzdGBgIHdpbGwKK3N0aWxsIGNvbGxlY3QgaXQgdHdpY2UsIG5vIG1hdHRlciBp
ZiB0aGUgYGAtLWtlZXAtZHVwbGljYXRlc2BgIGlzIG5vdCBzcGVjaWZpZWQuCitFeGFtcGxlOjoK
KworICAgIHB5LnRlc3QgdGVzdF9hLnB5IHRlc3RfYS5weQorCisgICAgLi4uCisgICAgY29sbGVj
dGVkIDIgaXRlbXMKKyAgICAuLi4KKworCitDaGFuZ2luZyBkaXJlY3RvcnkgcmVjdXJzaW9uCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitZ
b3UgY2FuIHNldCB0aGUgOmNvbmZ2YWw6YG5vcmVjdXJzZWRpcnNgIG9wdGlvbiBpbiBhbiBpbmkt
ZmlsZSwgZm9yIGV4YW1wbGUgeW91ciBgYHB5dGVzdC5pbmlgYCBpbiB0aGUgcHJvamVjdCByb290
IGRpcmVjdG9yeTo6CisKKyAgICAjIGNvbnRlbnQgb2YgcHl0ZXN0LmluaQorICAgIFtweXRlc3Rd
CisgICAgbm9yZWN1cnNlZGlycyA9IC5zdm4gX2J1aWxkIHRtcCoKKworVGhpcyB3b3VsZCB0ZWxs
IGBgcHl0ZXN0YGAgdG8gbm90IHJlY3Vyc2UgaW50byB0eXBpY2FsIHN1YnZlcnNpb24gb3Igc3Bo
aW54LWJ1aWxkIGRpcmVjdG9yaWVzIG9yIGludG8gYW55IGBgdG1wYGAgcHJlZml4ZWQgZGlyZWN0
b3J5LgorCisuLiBfYGNoYW5nZSBuYW1pbmcgY29udmVudGlvbnNgOgorCitDaGFuZ2luZyBuYW1p
bmcgY29udmVudGlvbnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKK1lvdSBjYW4gY29uZmlndXJlIGRpZmZlcmVudCBuYW1pbmcgY29udmVu
dGlvbnMgYnkgc2V0dGluZwordGhlIDpjb25mdmFsOmBweXRob25fZmlsZXNgLCA6Y29uZnZhbDpg
cHl0aG9uX2NsYXNzZXNgIGFuZAorOmNvbmZ2YWw6YHB5dGhvbl9mdW5jdGlvbnNgIGNvbmZpZ3Vy
YXRpb24gb3B0aW9ucy4gIEV4YW1wbGU6OgorCisgICAgIyBjb250ZW50IG9mIHB5dGVzdC5pbmkK
KyAgICAjIGNhbiBhbHNvIGJlIGRlZmluZWQgaW4gdG94LmluaSBvciBzZXR1cC5jZmcgZmlsZSwg
YWx0aG91Z2ggdGhlIHNlY3Rpb24KKyAgICAjIG5hbWUgaW4gc2V0dXAuY2ZnIGZpbGVzIHNob3Vs
ZCBiZSAidG9vbDpweXRlc3QiCisgICAgW3B5dGVzdF0KKyAgICBweXRob25fZmlsZXM9Y2hlY2tf
Ki5weQorICAgIHB5dGhvbl9jbGFzc2VzPUNoZWNrCisgICAgcHl0aG9uX2Z1bmN0aW9ucz0qX2No
ZWNrCisKK1RoaXMgd291bGQgbWFrZSBgYHB5dGVzdGBgIGxvb2sgZm9yIHRlc3RzIGluIGZpbGVz
IHRoYXQgbWF0Y2ggdGhlIGBgY2hlY2tfKgorLnB5YGAgZ2xvYi1wYXR0ZXJuLCBgYENoZWNrYGAg
cHJlZml4ZXMgaW4gY2xhc3NlcywgYW5kIGZ1bmN0aW9ucyBhbmQgbWV0aG9kcwordGhhdCBtYXRj
aCBgYCpfY2hlY2tgYC4gIEZvciBleGFtcGxlLCBpZiB3ZSBoYXZlOjoKKworICAgICMgY29udGVu
dCBvZiBjaGVja19teWFwcC5weQorICAgIGNsYXNzIENoZWNrTXlBcHAob2JqZWN0KToKKyAgICAg
ICAgZGVmIHNpbXBsZV9jaGVjayhzZWxmKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZGVm
IGNvbXBsZXhfY2hlY2soc2VsZik6CisgICAgICAgICAgICBwYXNzCisKK3RoZW4gdGhlIHRlc3Qg
Y29sbGVjdGlvbiBsb29rcyBsaWtlIHRoaXM6OgorCisgICAgJCBweXRlc3QgLS1jb2xsZWN0LW9u
bHkKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9u
IDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICByb290ZGly
OiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOiBweXRlc3QuaW5pCisgICAgY29sbGVjdGVkIDIg
aXRlbXMKKyAgICA8TW9kdWxlICdjaGVja19teWFwcC5weSc+CisgICAgICA8Q2xhc3MgJ0NoZWNr
TXlBcHAnPgorICAgICAgICA8SW5zdGFuY2UgJygpJz4KKyAgICAgICAgICA8RnVuY3Rpb24gJ3Np
bXBsZV9jaGVjayc+CisgICAgICAgICAgPEZ1bmN0aW9uICdjb21wbGV4X2NoZWNrJz4KKyAgICAK
KyAgICA9PT09PT09PT09PT09PT09PT09PT09PSBubyB0ZXN0cyByYW4gaW4gMC4xMiBzZWNvbmRz
ID09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIG5vdGU6OgorCisgICB0aGUgYGBweXRob25f
ZnVuY3Rpb25zYGAgYW5kIGBgcHl0aG9uX2NsYXNzZXNgYCBvcHRpb25zIGhhcyBubyBlZmZlY3QK
KyAgIGZvciBgYHVuaXR0ZXN0LlRlc3RDYXNlYGAgdGVzdCBkaXNjb3ZlcnkgYmVjYXVzZSBweXRl
c3QgZGVsZWdhdGVzCisgICBkZXRlY3Rpb24gb2YgdGVzdCBjYXNlIG1ldGhvZHMgdG8gdW5pdHRl
c3QgY29kZS4KKworSW50ZXJwcmV0aW5nIGNtZGxpbmUgYXJndW1lbnRzIGFzIFB5dGhvbiBwYWNr
YWdlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworWW91IGNhbiB1c2UgdGhlIGBgLS1weWFyZ3NgYCBvcHRpb24gdG8gbWFrZSBgYHB5dGVz
dGBgIHRyeQoraW50ZXJwcmV0aW5nIGFyZ3VtZW50cyBhcyBweXRob24gcGFja2FnZSBuYW1lcywg
ZGVyaXZpbmcKK3RoZWlyIGZpbGUgc3lzdGVtIHBhdGggYW5kIHRoZW4gcnVubmluZyB0aGUgdGVz
dC4gRm9yCitleGFtcGxlIGlmIHlvdSBoYXZlIHVuaXR0ZXN0MiBpbnN0YWxsZWQgeW91IGNhbiB0
eXBlOjoKKworICAgIHB5dGVzdCAtLXB5YXJncyB1bml0dGVzdDIudGVzdC50ZXN0X3NraXBwaW5n
IC1xCisKK3doaWNoIHdvdWxkIHJ1biB0aGUgcmVzcGVjdGl2ZSB0ZXN0IG1vZHVsZS4gIExpa2Ug
d2l0aAorb3RoZXIgb3B0aW9ucywgdGhyb3VnaCBhbiBpbmktZmlsZSBhbmQgdGhlIDpjb25mdmFs
OmBhZGRvcHRzYCBvcHRpb24geW91CitjYW4gbWFrZSB0aGlzIGNoYW5nZSBtb3JlIHBlcm1hbmVu
dGx5OjoKKworICAgICMgY29udGVudCBvZiBweXRlc3QuaW5pCisgICAgW3B5dGVzdF0KKyAgICBh
ZGRvcHRzID0gLS1weWFyZ3MKKworTm93IGEgc2ltcGxlIGludm9jYXRpb24gb2YgYGBweXRlc3Qg
TkFNRWBgIHdpbGwgY2hlY2sKK2lmIE5BTUUgZXhpc3RzIGFzIGFuIGltcG9ydGFibGUgcGFja2Fn
ZS9tb2R1bGUgYW5kIG90aGVyd2lzZQordHJlYXQgaXQgYXMgYSBmaWxlc3lzdGVtIHBhdGguCisK
K0ZpbmRpbmcgb3V0IHdoYXQgaXMgY29sbGVjdGVkCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitZb3UgY2FuIGFsd2F5cyBwZWVrIGF0IHRoZSBjb2xs
ZWN0aW9uIHRyZWUgd2l0aG91dCBydW5uaW5nIHRlc3RzIGxpa2UgdGhpczo6CisKKyAgICAuICQg
cHl0ZXN0IC0tY29sbGVjdC1vbmx5IHB5dGhvbmNvbGxlY3Rpb24ucHkKKyAgICA9PT09PT09PT09
PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54
LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElS
LCBpbmlmaWxlOiBweXRlc3QuaW5pCisgICAgY29sbGVjdGVkIDMgaXRlbXMKKyAgICA8TW9kdWxl
ICdDV0QvcHl0aG9uY29sbGVjdGlvbi5weSc+CisgICAgICA8RnVuY3Rpb24gJ3Rlc3RfZnVuY3Rp
b24nPgorICAgICAgPENsYXNzICdUZXN0Q2xhc3MnPgorICAgICAgICA8SW5zdGFuY2UgJygpJz4K
KyAgICAgICAgICA8RnVuY3Rpb24gJ3Rlc3RfbWV0aG9kJz4KKyAgICAgICAgICA8RnVuY3Rpb24g
J3Rlc3RfYW5vdGhlcm1ldGhvZCc+CisgICAgCisgICAgPT09PT09PT09PT09PT09PT09PT09PT0g
bm8gdGVzdHMgcmFuIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT09PQorCisu
LiBfY3VzdG9taXppbmctdGVzdC1jb2xsZWN0aW9uOgorCitDdXN0b21pemluZyB0ZXN0IGNvbGxl
Y3Rpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiByZWdlbmRvYzp3aXBlCisK
K1lvdSBjYW4gZWFzaWx5IGluc3RydWN0IGBgcHl0ZXN0YGAgdG8gZGlzY292ZXIgdGVzdHMgZnJv
bSBldmVyeSBQeXRob24gZmlsZTo6CisKKyAgICAjIGNvbnRlbnQgb2YgcHl0ZXN0LmluaQorICAg
IFtweXRlc3RdCisgICAgcHl0aG9uX2ZpbGVzID0gKi5weQorCitIb3dldmVyLCBtYW55IHByb2pl
Y3RzIHdpbGwgaGF2ZSBhIGBgc2V0dXAucHlgYCB3aGljaCB0aGV5IGRvbid0IHdhbnQgdG8gYmUK
K2ltcG9ydGVkLiBNb3Jlb3ZlciwgdGhlcmUgbWF5IGZpbGVzIG9ubHkgaW1wb3J0YWJsZSBieSBh
IHNwZWNpZmljIHB5dGhvbgordmVyc2lvbi4gRm9yIHN1Y2ggY2FzZXMgeW91IGNhbiBkeW5hbWlj
YWxseSBkZWZpbmUgZmlsZXMgdG8gYmUgaWdub3JlZCBieQorbGlzdGluZyB0aGVtIGluIGEgYGBj
b25mdGVzdC5weWBgIGZpbGU6OgorCisgICAgIyBjb250ZW50IG9mIGNvbmZ0ZXN0LnB5CisgICAg
aW1wb3J0IHN5cworCisgICAgY29sbGVjdF9pZ25vcmUgPSBbInNldHVwLnB5Il0KKyAgICBpZiBz
eXMudmVyc2lvbl9pbmZvWzBdID4gMjoKKyAgICAgICAgY29sbGVjdF9pZ25vcmUuYXBwZW5kKCJw
a2cvbW9kdWxlX3B5Mi5weSIpCisKK2FuZCB0aGVuIGlmIHlvdSBoYXZlIGEgbW9kdWxlIGZpbGUg
bGlrZSB0aGlzOjoKKworICAgICMgY29udGVudCBvZiBwa2cvbW9kdWxlX3B5Mi5weQorICAgIGRl
ZiB0ZXN0X29ubHlfb25fcHl0aG9uMigpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBhc3Nl
cnQgMAorICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgcGFzcworCith
bmQgYSBgYHNldHVwLnB5YGAgZHVtbXkgZmlsZSBsaWtlIHRoaXM6OgorCisgICAgIyBjb250ZW50
IG9mIHNldHVwLnB5CisgICAgMC8wICAjIHdpbGwgcmFpc2UgZXhjZXB0aW9uIGlmIGltcG9ydGVk
CisKK0lmIHlvdSBydW4gd2l0aCBhIFB5dGhvbiAyIGludGVycHJldGVyIHRoZW4geW91IHdpbGwg
ZmluZCB0aGUgb25lIHRlc3QgYW5kIHdpbGwKK2xlYXZlIG91dCB0aGUgYGBzZXR1cC5weWBgIGZp
bGU6OgorCisgICAgIyQgcHl0ZXN0IC0tY29sbGVjdC1vbmx5CisgICAgPT09PT09IHRlc3Qgc2Vz
c2lvbiBzdGFydHMgPT09PT09CisgICAgcGxhdGZvcm0gbGludXgyIC0tIFB5dGhvbiAyLjcuMTAs
IHB5dGVzdC0yLjkuMSwgcHktMS40LjMxLCBwbHVnZ3ktMC4zLjEKKyAgICByb290ZGlyOiAkUkVH
RU5ET0NfVE1QRElSLCBpbmlmaWxlOiBweXRlc3QuaW5pCisgICAgY29sbGVjdGVkIDEgaXRlbXMK
KyAgICA8TW9kdWxlICdwa2cvbW9kdWxlX3B5Mi5weSc+CisgICAgICA8RnVuY3Rpb24gJ3Rlc3Rf
b25seV9vbl9weXRob24yJz4KKworICAgID09PT09PSBubyB0ZXN0cyByYW4gaW4gMC4wNCBzZWNv
bmRzID09PT09PQorCitJZiB5b3UgcnVuIHdpdGggYSBQeXRob24gMyBpbnRlcnByZXRlciBib3Ro
IHRoZSBvbmUgdGVzdCBhbmQgdGhlIGBgc2V0dXAucHlgYAorZmlsZSB3aWxsIGJlIGxlZnQgb3V0
OjoKKworICAgICQgcHl0ZXN0IC0tY29sbGVjdC1vbmx5CisgICAgPT09PT09PT09PT09PT09PT09
PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09
PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0x
LngueSwgcGx1Z2d5LTAueC55CisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmls
ZTogcHl0ZXN0LmluaQorICAgIGNvbGxlY3RlZCAwIGl0ZW1zCisgICAgCisgICAgPT09PT09PT09
PT09PT09PT09PT09PT0gbm8gdGVzdHMgcmFuIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09
PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcmVwb3J0
aW5nZGVtby5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9yZXBvcnRpbmdkZW1vLnJz
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45ZWRjMDJiM2NkNGJkNWUwNDIzYThlNTIwYWE2NWExOTc1YWVmZmFmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcmVwb3J0aW5nZGVt
by5yc3QKQEAgLTAsMCArMSw2MDQgQEAKKworLi4gX2B0YnJlcG9ydGRlbW9gOgorCitEZW1vIG9m
IFB5dGhvbiBmYWlsdXJlIHJlcG9ydHMgd2l0aCBweXRlc3QKKz09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK0hlcmUgaXMgYSBuaWNlIHJ1biBvZiBz
ZXZlcmFsIHRlbnMgb2YgZmFpbHVyZXMKK2FuZCBob3cgYGBweXRlc3RgYCBwcmVzZW50cyB0aGlu
Z3MgKHVuZm9ydHVuYXRlbHkKK25vdCBzaG93aW5nIHRoZSBuaWNlIGNvbG9ycyBoZXJlIGluIHRo
ZSBIVE1MIHRoYXQgeW91CitnZXQgb24gdGhlIHRlcm1pbmFsIC0gd2UgYXJlIHdvcmtpbmcgb24g
dGhhdCk6OgorCisgICAgYXNzZXJ0aW9uICQgcHl0ZXN0IGZhaWx1cmVfZGVtby5weQorICAgID09
PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5
dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIHJvb3RkaXI6ICRSRUdFTkRP
Q19UTVBESVIvYXNzZXJ0aW9uLCBpbmlmaWxlOgorICAgIGNvbGxlY3RlZCA0MiBpdGVtcworICAg
IAorICAgIGZhaWx1cmVfZGVtby5weSBGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZG
RkZGRkZGRkYgICAgICAgICAgIFsxMDAlXQorICAgIAorICAgID09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
KyAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fIHRlc3RfZ2VuZXJhdGl2ZVswXSBfX19f
X19fX19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgcGFyYW0xID0gMywgcGFyYW0yID0g
NgorICAgIAorICAgICAgICBkZWYgdGVzdF9nZW5lcmF0aXZlKHBhcmFtMSwgcGFyYW0yKToKKyAg
ICA+ICAgICAgIGFzc2VydCBwYXJhbTEgKiAyIDwgcGFyYW0yCisgICAgRSAgICAgICBhc3NlcnQg
KDMgKiAyKSA8IDYKKyAgICAKKyAgICBmYWlsdXJlX2RlbW8ucHk6MTY6IEFzc2VydGlvbkVycm9y
CisgICAgX19fX19fX19fX19fX19fX19fX19fX19fXyBUZXN0RmFpbGluZy50ZXN0X3NpbXBsZSBf
X19fX19fX19fX19fX19fX19fX19fX19fXworICAgIAorICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1v
LlRlc3RGYWlsaW5nIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIAorICAgICAgICBkZWYgdGVz
dF9zaW1wbGUoc2VsZik6CisgICAgICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgICAgIHJl
dHVybiA0MgorICAgICAgICAgICAgZGVmIGcoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gNDMK
KyAgICAgICAgCisgICAgPiAgICAgICBhc3NlcnQgZigpID09IGcoKQorICAgIEUgICAgICAgYXNz
ZXJ0IDQyID09IDQzCisgICAgRSAgICAgICAgKyAgd2hlcmUgNDIgPSA8ZnVuY3Rpb24gVGVzdEZh
aWxpbmcudGVzdF9zaW1wbGUuPGxvY2Fscz4uZiBhdCAweGRlYWRiZWVmPigpCisgICAgRSAgICAg
ICAgKyAgYW5kICAgNDMgPSA8ZnVuY3Rpb24gVGVzdEZhaWxpbmcudGVzdF9zaW1wbGUuPGxvY2Fs
cz4uZyBhdCAweGRlYWRiZWVmPigpCisgICAgCisgICAgZmFpbHVyZV9kZW1vLnB5OjI5OiBBc3Nl
cnRpb25FcnJvcgorICAgIF9fX19fX19fX19fX19fX19fX19fIFRlc3RGYWlsaW5nLnRlc3Rfc2lt
cGxlX211bHRpbGluZSBfX19fX19fX19fX19fX19fX19fX18KKyAgICAKKyAgICBzZWxmID0gPGZh
aWx1cmVfZGVtby5UZXN0RmFpbGluZyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAgICAKKyAgICAg
ICAgZGVmIHRlc3Rfc2ltcGxlX211bHRpbGluZShzZWxmKToKKyAgICAgICAgICAgIG90aGVyZnVu
Y19tdWx0aSgKKyAgICAgICAgICAgICAgICAgICAgICA0MiwKKyAgICA+ICAgICAgICAgICAgICAg
ICA2KjkpCisgICAgCisgICAgZmFpbHVyZV9kZW1vLnB5OjM0OiAKKyAgICBfIF8gXyBfIF8gXyBf
IF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8g
XyBfIF8gCisgICAgCisgICAgYSA9IDQyLCBiID0gNTQKKyAgICAKKyAgICAgICAgZGVmIG90aGVy
ZnVuY19tdWx0aShhLGIpOgorICAgID4gICAgICAgYXNzZXJ0IChhID09CisgICAgICAgICAgICAg
ICAgICAgIGIpCisgICAgRSAgICAgICBhc3NlcnQgNDIgPT0gNTQKKyAgICAKKyAgICBmYWlsdXJl
X2RlbW8ucHk6MTI6IEFzc2VydGlvbkVycm9yCisgICAgX19fX19fX19fX19fX19fX19fX19fX19f
X19fIFRlc3RGYWlsaW5nLnRlc3Rfbm90IF9fX19fX19fX19fX19fX19fX19fX19fX19fXworICAg
IAorICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RGYWlsaW5nIG9iamVjdCBhdCAweGRlYWRi
ZWVmPgorICAgIAorICAgICAgICBkZWYgdGVzdF9ub3Qoc2VsZik6CisgICAgICAgICAgICBkZWYg
ZigpOgorICAgICAgICAgICAgICAgIHJldHVybiA0MgorICAgID4gICAgICAgYXNzZXJ0IG5vdCBm
KCkKKyAgICBFICAgICAgIGFzc2VydCBub3QgNDIKKyAgICBFICAgICAgICArICB3aGVyZSA0MiA9
IDxmdW5jdGlvbiBUZXN0RmFpbGluZy50ZXN0X25vdC48bG9jYWxzPi5mIGF0IDB4ZGVhZGJlZWY+
KCkKKyAgICAKKyAgICBmYWlsdXJlX2RlbW8ucHk6Mzk6IEFzc2VydGlvbkVycm9yCisgICAgX19f
X19fX19fX19fX19fX18gVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25zLnRlc3RfZXFfdGV4dCBf
X19fX19fX19fX19fX19fXworICAgIAorICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RTcGVj
aWFsaXNlZEV4cGxhbmF0aW9ucyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAgICAKKyAgICAgICAg
ZGVmIHRlc3RfZXFfdGV4dChzZWxmKToKKyAgICA+ICAgICAgIGFzc2VydCAnc3BhbScgPT0gJ2Vn
Z3MnCisgICAgRSAgICAgICBBc3NlcnRpb25FcnJvcjogYXNzZXJ0ICdzcGFtJyA9PSAnZWdncycK
KyAgICBFICAgICAgICAgLSBzcGFtCisgICAgRSAgICAgICAgICsgZWdncworICAgIAorICAgIGZh
aWx1cmVfZGVtby5weTo0MzogQXNzZXJ0aW9uRXJyb3IKKyAgICBfX19fX19fX19fX19fIFRlc3RT
cGVjaWFsaXNlZEV4cGxhbmF0aW9ucy50ZXN0X2VxX3NpbWlsYXJfdGV4dCBfX19fX19fX19fX19f
CisgICAgCisgICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRp
b25zIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIAorICAgICAgICBkZWYgdGVzdF9lcV9zaW1p
bGFyX3RleHQoc2VsZik6CisgICAgPiAgICAgICBhc3NlcnQgJ2ZvbyAxIGJhcicgPT0gJ2ZvbyAy
IGJhcicKKyAgICBFICAgICAgIEFzc2VydGlvbkVycm9yOiBhc3NlcnQgJ2ZvbyAxIGJhcicgPT0g
J2ZvbyAyIGJhcicKKyAgICBFICAgICAgICAgLSBmb28gMSBiYXIKKyAgICBFICAgICAgICAgPyAg
ICAgXgorICAgIEUgICAgICAgICArIGZvbyAyIGJhcgorICAgIEUgICAgICAgICA/ICAgICBeCisg
ICAgCisgICAgZmFpbHVyZV9kZW1vLnB5OjQ2OiBBc3NlcnRpb25FcnJvcgorICAgIF9fX19fX19f
X19fXyBUZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMudGVzdF9lcV9tdWx0aWxpbmVfdGV4dCBf
X19fX19fX19fX18KKyAgICAKKyAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0U3BlY2lhbGlz
ZWRFeHBsYW5hdGlvbnMgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CisgICAgCisgICAgICAgIGRlZiB0
ZXN0X2VxX211bHRpbGluZV90ZXh0KHNlbGYpOgorICAgID4gICAgICAgYXNzZXJ0ICdmb29cbnNw
YW1cbmJhcicgPT0gJ2Zvb1xuZWdnc1xuYmFyJworICAgIEUgICAgICAgQXNzZXJ0aW9uRXJyb3I6
IGFzc2VydCAnZm9vXG5zcGFtXG5iYXInID09ICdmb29cbmVnZ3NcbmJhcicKKyAgICBFICAgICAg
ICAgICBmb28KKyAgICBFICAgICAgICAgLSBzcGFtCisgICAgRSAgICAgICAgICsgZWdncworICAg
IEUgICAgICAgICAgIGJhcgorICAgIAorICAgIGZhaWx1cmVfZGVtby5weTo0OTogQXNzZXJ0aW9u
RXJyb3IKKyAgICBfX19fX19fX19fX19fXyBUZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMudGVz
dF9lcV9sb25nX3RleHQgX19fX19fX19fX19fX19fCisgICAgCisgICAgc2VsZiA9IDxmYWlsdXJl
X2RlbW8uVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25zIG9iamVjdCBhdCAweGRlYWRiZWVmPgor
ICAgIAorICAgICAgICBkZWYgdGVzdF9lcV9sb25nX3RleHQoc2VsZik6CisgICAgICAgICAgICBh
ID0gJzEnKjEwMCArICdhJyArICcyJyoxMDAKKyAgICAgICAgICAgIGIgPSAnMScqMTAwICsgJ2In
ICsgJzInKjEwMAorICAgID4gICAgICAgYXNzZXJ0IGEgPT0gYgorICAgIEUgICAgICAgQXNzZXJ0
aW9uRXJyb3I6IGFzc2VydCAnMTExMTExMTExMTExLi4uMjIyMjIyMjIyMjIyMicgPT0gJzExMTEx
MTExMTExMTEuLi4yMjIyMjIyMjIyMjIyJworICAgIEUgICAgICAgICBTa2lwcGluZyA5MCBpZGVu
dGljYWwgbGVhZGluZyBjaGFyYWN0ZXJzIGluIGRpZmYsIHVzZSAtdiB0byBzaG93CisgICAgRSAg
ICAgICAgIFNraXBwaW5nIDkxIGlkZW50aWNhbCB0cmFpbGluZyBjaGFyYWN0ZXJzIGluIGRpZmYs
IHVzZSAtdiB0byBzaG93CisgICAgRSAgICAgICAgIC0gMTExMTExMTExMWEyMjIyMjIyMjIKKyAg
ICBFICAgICAgICAgPyAgICAgICAgICAgXgorICAgIEUgICAgICAgICArIDExMTExMTExMTFiMjIy
MjIyMjIyCisgICAgRSAgICAgICAgID8gICAgICAgICAgIF4KKyAgICAKKyAgICBmYWlsdXJlX2Rl
bW8ucHk6NTQ6IEFzc2VydGlvbkVycm9yCisgICAgX19fX19fX19fIFRlc3RTcGVjaWFsaXNlZEV4
cGxhbmF0aW9ucy50ZXN0X2VxX2xvbmdfdGV4dF9tdWx0aWxpbmUgX19fX19fX19fXworICAgIAor
ICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucyBvYmpl
Y3QgYXQgMHhkZWFkYmVlZj4KKyAgICAKKyAgICAgICAgZGVmIHRlc3RfZXFfbG9uZ190ZXh0X211
bHRpbGluZShzZWxmKToKKyAgICAgICAgICAgIGEgPSAnMVxuJyoxMDAgKyAnYScgKyAnMlxuJyox
MDAKKyAgICAgICAgICAgIGIgPSAnMVxuJyoxMDAgKyAnYicgKyAnMlxuJyoxMDAKKyAgICA+ICAg
ICAgIGFzc2VydCBhID09IGIKKyAgICBFICAgICAgIEFzc2VydGlvbkVycm9yOiBhc3NlcnQgJzFc
bjFcbjFcbjFcbi4uLm4yXG4yXG4yXG4yXG4nID09ICcxXG4xXG4xXG4xXG4xLi4ubjJcbjJcbjJc
bjJcbicKKyAgICBFICAgICAgICAgU2tpcHBpbmcgMTkwIGlkZW50aWNhbCBsZWFkaW5nIGNoYXJh
Y3RlcnMgaW4gZGlmZiwgdXNlIC12IHRvIHNob3cKKyAgICBFICAgICAgICAgU2tpcHBpbmcgMTkx
IGlkZW50aWNhbCB0cmFpbGluZyBjaGFyYWN0ZXJzIGluIGRpZmYsIHVzZSAtdiB0byBzaG93Cisg
ICAgRSAgICAgICAgICAgMQorICAgIEUgICAgICAgICAgIDEKKyAgICBFICAgICAgICAgICAxCisg
ICAgRSAgICAgICAgICAgMQorICAgIEUgICAgICAgICAgIDEuLi4KKyAgICBFICAgICAgICAgCisg
ICAgRSAgICAgICAgIC4uLkZ1bGwgb3V0cHV0IHRydW5jYXRlZCAoNyBsaW5lcyBoaWRkZW4pLCB1
c2UgJy12dicgdG8gc2hvdworICAgIAorICAgIGZhaWx1cmVfZGVtby5weTo1OTogQXNzZXJ0aW9u
RXJyb3IKKyAgICBfX19fX19fX19fX19fX19fXyBUZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMu
dGVzdF9lcV9saXN0IF9fX19fX19fX19fX19fX19fCisgICAgCisgICAgc2VsZiA9IDxmYWlsdXJl
X2RlbW8uVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25zIG9iamVjdCBhdCAweGRlYWRiZWVmPgor
ICAgIAorICAgICAgICBkZWYgdGVzdF9lcV9saXN0KHNlbGYpOgorICAgID4gICAgICAgYXNzZXJ0
IFswLCAxLCAyXSA9PSBbMCwgMSwgM10KKyAgICBFICAgICAgIGFzc2VydCBbMCwgMSwgMl0gPT0g
WzAsIDEsIDNdCisgICAgRSAgICAgICAgIEF0IGluZGV4IDIgZGlmZjogMiAhPSAzCisgICAgRSAg
ICAgICAgIFVzZSAtdiB0byBnZXQgdGhlIGZ1bGwgZGlmZgorICAgIAorICAgIGZhaWx1cmVfZGVt
by5weTo2MjogQXNzZXJ0aW9uRXJyb3IKKyAgICBfX19fX19fX19fX19fXyBUZXN0U3BlY2lhbGlz
ZWRFeHBsYW5hdGlvbnMudGVzdF9lcV9saXN0X2xvbmcgX19fX19fX19fX19fX19fCisgICAgCisg
ICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25zIG9iamVj
dCBhdCAweGRlYWRiZWVmPgorICAgIAorICAgICAgICBkZWYgdGVzdF9lcV9saXN0X2xvbmcoc2Vs
Zik6CisgICAgICAgICAgICBhID0gWzBdKjEwMCArIFsxXSArIFszXSoxMDAKKyAgICAgICAgICAg
IGIgPSBbMF0qMTAwICsgWzJdICsgWzNdKjEwMAorICAgID4gICAgICAgYXNzZXJ0IGEgPT0gYgor
ICAgIEUgICAgICAgYXNzZXJ0IFswLCAwLCAwLCAwLCAwLCAwLCAuLi5dID09IFswLCAwLCAwLCAw
LCAwLCAwLCAuLi5dCisgICAgRSAgICAgICAgIEF0IGluZGV4IDEwMCBkaWZmOiAxICE9IDIKKyAg
ICBFICAgICAgICAgVXNlIC12IHRvIGdldCB0aGUgZnVsbCBkaWZmCisgICAgCisgICAgZmFpbHVy
ZV9kZW1vLnB5OjY3OiBBc3NlcnRpb25FcnJvcgorICAgIF9fX19fX19fX19fX19fX19fIFRlc3RT
cGVjaWFsaXNlZEV4cGxhbmF0aW9ucy50ZXN0X2VxX2RpY3QgX19fX19fX19fX19fX19fX18KKyAg
ICAKKyAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMg
b2JqZWN0IGF0IDB4ZGVhZGJlZWY+CisgICAgCisgICAgICAgIGRlZiB0ZXN0X2VxX2RpY3Qoc2Vs
Zik6CisgICAgPiAgICAgICBhc3NlcnQgeydhJzogMCwgJ2InOiAxLCAnYyc6IDB9ID09IHsnYSc6
IDAsICdiJzogMiwgJ2QnOiAwfQorICAgIEUgICAgICAgQXNzZXJ0aW9uRXJyb3I6IGFzc2VydCB7
J2EnOiAwLCAnYic6IDEsICdjJzogMH0gPT0geydhJzogMCwgJ2InOiAyLCAnZCc6IDB9CisgICAg
RSAgICAgICAgIE9taXR0aW5nIDEgaWRlbnRpY2FsIGl0ZW1zLCB1c2UgLXZ2IHRvIHNob3cKKyAg
ICBFICAgICAgICAgRGlmZmVyaW5nIGl0ZW1zOgorICAgIEUgICAgICAgICB7J2InOiAxfSAhPSB7
J2InOiAyfQorICAgIEUgICAgICAgICBMZWZ0IGNvbnRhaW5zIG1vcmUgaXRlbXM6CisgICAgRSAg
ICAgICAgIHsnYyc6IDB9CisgICAgRSAgICAgICAgIFJpZ2h0IGNvbnRhaW5zIG1vcmUgaXRlbXM6
CisgICAgRSAgICAgICAgIHsnZCc6IDB9Li4uCisgICAgRSAgICAgICAgIAorICAgIEUgICAgICAg
ICAuLi5GdWxsIG91dHB1dCB0cnVuY2F0ZWQgKDIgbGluZXMgaGlkZGVuKSwgdXNlICctdnYnIHRv
IHNob3cKKyAgICAKKyAgICBmYWlsdXJlX2RlbW8ucHk6NzA6IEFzc2VydGlvbkVycm9yCisgICAg
X19fX19fX19fX19fX19fX18gVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25zLnRlc3RfZXFfc2V0
IF9fX19fX19fX19fX19fX19fXworICAgIAorICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RT
cGVjaWFsaXNlZEV4cGxhbmF0aW9ucyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAgICAKKyAgICAg
ICAgZGVmIHRlc3RfZXFfc2V0KHNlbGYpOgorICAgID4gICAgICAgYXNzZXJ0IHNldChbMCwgMTAs
IDExLCAxMl0pID09IHNldChbMCwgMjAsIDIxXSkKKyAgICBFICAgICAgIEFzc2VydGlvbkVycm9y
OiBhc3NlcnQgezAsIDEwLCAxMSwgMTJ9ID09IHswLCAyMCwgMjF9CisgICAgRSAgICAgICAgIEV4
dHJhIGl0ZW1zIGluIHRoZSBsZWZ0IHNldDoKKyAgICBFICAgICAgICAgMTAKKyAgICBFICAgICAg
ICAgMTEKKyAgICBFICAgICAgICAgMTIKKyAgICBFICAgICAgICAgRXh0cmEgaXRlbXMgaW4gdGhl
IHJpZ2h0IHNldDoKKyAgICBFICAgICAgICAgMjAKKyAgICBFICAgICAgICAgMjEuLi4KKyAgICBF
ICAgICAgICAgCisgICAgRSAgICAgICAgIC4uLkZ1bGwgb3V0cHV0IHRydW5jYXRlZCAoMiBsaW5l
cyBoaWRkZW4pLCB1c2UgJy12dicgdG8gc2hvdworICAgIAorICAgIGZhaWx1cmVfZGVtby5weTo3
MzogQXNzZXJ0aW9uRXJyb3IKKyAgICBfX19fX19fX19fX19fIFRlc3RTcGVjaWFsaXNlZEV4cGxh
bmF0aW9ucy50ZXN0X2VxX2xvbmdlcl9saXN0IF9fX19fX19fX19fX19fCisgICAgCisgICAgc2Vs
ZiA9IDxmYWlsdXJlX2RlbW8uVGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25zIG9iamVjdCBhdCAw
eGRlYWRiZWVmPgorICAgIAorICAgICAgICBkZWYgdGVzdF9lcV9sb25nZXJfbGlzdChzZWxmKToK
KyAgICA+ICAgICAgIGFzc2VydCBbMSwyXSA9PSBbMSwyLDNdCisgICAgRSAgICAgICBhc3NlcnQg
WzEsIDJdID09IFsxLCAyLCAzXQorICAgIEUgICAgICAgICBSaWdodCBjb250YWlucyBtb3JlIGl0
ZW1zLCBmaXJzdCBleHRyYSBpdGVtOiAzCisgICAgRSAgICAgICAgIFVzZSAtdiB0byBnZXQgdGhl
IGZ1bGwgZGlmZgorICAgIAorICAgIGZhaWx1cmVfZGVtby5weTo3NjogQXNzZXJ0aW9uRXJyb3IK
KyAgICBfX19fX19fX19fX19fX19fXyBUZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMudGVzdF9p
bl9saXN0IF9fX19fX19fX19fX19fX19fCisgICAgCisgICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8u
VGVzdFNwZWNpYWxpc2VkRXhwbGFuYXRpb25zIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIAor
ICAgICAgICBkZWYgdGVzdF9pbl9saXN0KHNlbGYpOgorICAgID4gICAgICAgYXNzZXJ0IDEgaW4g
WzAsIDIsIDMsIDQsIDVdCisgICAgRSAgICAgICBhc3NlcnQgMSBpbiBbMCwgMiwgMywgNCwgNV0K
KyAgICAKKyAgICBmYWlsdXJlX2RlbW8ucHk6Nzk6IEFzc2VydGlvbkVycm9yCisgICAgX19fX19f
X19fXyBUZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMudGVzdF9ub3RfaW5fdGV4dF9tdWx0aWxp
bmUgX19fX19fX19fXworICAgIAorICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RTcGVjaWFs
aXNlZEV4cGxhbmF0aW9ucyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAgICAKKyAgICAgICAgZGVm
IHRlc3Rfbm90X2luX3RleHRfbXVsdGlsaW5lKHNlbGYpOgorICAgICAgICAgICAgdGV4dCA9ICdz
b21lIG11bHRpbGluZVxudGV4dFxud2hpY2hcbmluY2x1ZGVzIGZvb1xuYW5kIGFcbnRhaWwnCisg
ICAgPiAgICAgICBhc3NlcnQgJ2Zvbycgbm90IGluIHRleHQKKyAgICBFICAgICAgIEFzc2VydGlv
bkVycm9yOiBhc3NlcnQgJ2Zvbycgbm90IGluICdzb21lIG11bHRpbGluZVxudGV4dFxudy4uLm5j
bHVkZXMgZm9vXG5hbmQgYVxudGFpbCcKKyAgICBFICAgICAgICAgJ2ZvbycgaXMgY29udGFpbmVk
IGhlcmU6CisgICAgRSAgICAgICAgICAgc29tZSBtdWx0aWxpbmUKKyAgICBFICAgICAgICAgICB0
ZXh0CisgICAgRSAgICAgICAgICAgd2hpY2gKKyAgICBFICAgICAgICAgICBpbmNsdWRlcyBmb28K
KyAgICBFICAgICAgICAgPyAgICAgICAgICArKysKKyAgICBFICAgICAgICAgICBhbmQgYS4uLgor
ICAgIEUgICAgICAgICAKKyAgICBFICAgICAgICAgLi4uRnVsbCBvdXRwdXQgdHJ1bmNhdGVkICgy
IGxpbmVzIGhpZGRlbiksIHVzZSAnLXZ2JyB0byBzaG93CisgICAgCisgICAgZmFpbHVyZV9kZW1v
LnB5OjgzOiBBc3NlcnRpb25FcnJvcgorICAgIF9fX19fX19fX19fIFRlc3RTcGVjaWFsaXNlZEV4
cGxhbmF0aW9ucy50ZXN0X25vdF9pbl90ZXh0X3NpbmdsZSBfX19fX19fX19fX18KKyAgICAKKyAg
ICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMgb2JqZWN0
IGF0IDB4ZGVhZGJlZWY+CisgICAgCisgICAgICAgIGRlZiB0ZXN0X25vdF9pbl90ZXh0X3Npbmds
ZShzZWxmKToKKyAgICAgICAgICAgIHRleHQgPSAnc2luZ2xlIGZvbyBsaW5lJworICAgID4gICAg
ICAgYXNzZXJ0ICdmb28nIG5vdCBpbiB0ZXh0CisgICAgRSAgICAgICBBc3NlcnRpb25FcnJvcjog
YXNzZXJ0ICdmb28nIG5vdCBpbiAnc2luZ2xlIGZvbyBsaW5lJworICAgIEUgICAgICAgICAnZm9v
JyBpcyBjb250YWluZWQgaGVyZToKKyAgICBFICAgICAgICAgICBzaW5nbGUgZm9vIGxpbmUKKyAg
ICBFICAgICAgICAgPyAgICAgICAgKysrCisgICAgCisgICAgZmFpbHVyZV9kZW1vLnB5Ojg3OiBB
c3NlcnRpb25FcnJvcgorICAgIF9fX19fX19fXyBUZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMu
dGVzdF9ub3RfaW5fdGV4dF9zaW5nbGVfbG9uZyBfX19fX19fX18KKyAgICAKKyAgICBzZWxmID0g
PGZhaWx1cmVfZGVtby5UZXN0U3BlY2lhbGlzZWRFeHBsYW5hdGlvbnMgb2JqZWN0IGF0IDB4ZGVh
ZGJlZWY+CisgICAgCisgICAgICAgIGRlZiB0ZXN0X25vdF9pbl90ZXh0X3NpbmdsZV9sb25nKHNl
bGYpOgorICAgICAgICAgICAgdGV4dCA9ICdoZWFkICcgKiA1MCArICdmb28gJyArICd0YWlsICcg
KiAyMAorICAgID4gICAgICAgYXNzZXJ0ICdmb28nIG5vdCBpbiB0ZXh0CisgICAgRSAgICAgICBB
c3NlcnRpb25FcnJvcjogYXNzZXJ0ICdmb28nIG5vdCBpbiAnaGVhZCBoZWFkIGhlYWQgaGVhZCBo
ZWEuLi5haWwgdGFpbCB0YWlsIHRhaWwgdGFpbCAnCisgICAgRSAgICAgICAgICdmb28nIGlzIGNv
bnRhaW5lZCBoZXJlOgorICAgIEUgICAgICAgICAgIGhlYWQgaGVhZCBmb28gdGFpbCB0YWlsIHRh
aWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWls
IHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWlsIAorICAgIEUgICAgICAgICA/ICAgICAgICAg
ICArKysKKyAgICAKKyAgICBmYWlsdXJlX2RlbW8ucHk6OTE6IEFzc2VydGlvbkVycm9yCisgICAg
X19fX19fIFRlc3RTcGVjaWFsaXNlZEV4cGxhbmF0aW9ucy50ZXN0X25vdF9pbl90ZXh0X3Npbmds
ZV9sb25nX3Rlcm0gX19fX19fXworICAgIAorICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RT
cGVjaWFsaXNlZEV4cGxhbmF0aW9ucyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAgICAKKyAgICAg
ICAgZGVmIHRlc3Rfbm90X2luX3RleHRfc2luZ2xlX2xvbmdfdGVybShzZWxmKToKKyAgICAgICAg
ICAgIHRleHQgPSAnaGVhZCAnICogNTAgKyAnZicqNzAgKyAndGFpbCAnICogMjAKKyAgICA+ICAg
ICAgIGFzc2VydCAnZicqNzAgbm90IGluIHRleHQKKyAgICBFICAgICAgIEFzc2VydGlvbkVycm9y
OiBhc3NlcnQgJ2ZmZmZmZmZmZmZmLi4uZmZmZmZmZmZmZmZmJyBub3QgaW4gJ2hlYWQgaGVhZCBo
ZS4uLmwgdGFpbCB0YWlsICcKKyAgICBFICAgICAgICAgJ2ZmZmZmZmZmZmZmZmZmZmZmZi4uLmZm
ZmZmZmZmZmZmZmZmZmZmZmYnIGlzIGNvbnRhaW5lZCBoZXJlOgorICAgIEUgICAgICAgICAgIGhl
YWQgaGVhZCBmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm
ZmZmZmZmZmZmZmZmZmZmZmZmZmZmdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0
YWlsIHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFpbCB0YWlsIHRhaWwgdGFp
bCB0YWlsIAorICAgIEUgICAgICAgICA/ICAgICAgICAgICArKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisgICAgCisg
ICAgZmFpbHVyZV9kZW1vLnB5Ojk1OiBBc3NlcnRpb25FcnJvcgorICAgIF9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXyB0ZXN0X2F0dHJpYnV0ZSBfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KKyAgICAKKyAgICAgICAgZGVmIHRlc3RfYXR0cmlidXRlKCk6CisgICAgICAgICAgICBj
bGFzcyBGb28ob2JqZWN0KToKKyAgICAgICAgICAgICAgICBiID0gMQorICAgICAgICAgICAgaSA9
IEZvbygpCisgICAgPiAgICAgICBhc3NlcnQgaS5iID09IDIKKyAgICBFICAgICAgIGFzc2VydCAx
ID09IDIKKyAgICBFICAgICAgICArICB3aGVyZSAxID0gPGZhaWx1cmVfZGVtby50ZXN0X2F0dHJp
YnV0ZS48bG9jYWxzPi5Gb28gb2JqZWN0IGF0IDB4ZGVhZGJlZWY+LmIKKyAgICAKKyAgICBmYWls
dXJlX2RlbW8ucHk6MTAyOiBBc3NlcnRpb25FcnJvcgorICAgIF9fX19fX19fX19fX19fX19fX19f
X19fX18gdGVzdF9hdHRyaWJ1dGVfaW5zdGFuY2UgX19fX19fX19fX19fX19fX19fX19fX19fX18K
KyAgICAKKyAgICAgICAgZGVmIHRlc3RfYXR0cmlidXRlX2luc3RhbmNlKCk6CisgICAgICAgICAg
ICBjbGFzcyBGb28ob2JqZWN0KToKKyAgICAgICAgICAgICAgICBiID0gMQorICAgID4gICAgICAg
YXNzZXJ0IEZvbygpLmIgPT0gMgorICAgIEUgICAgICAgQXNzZXJ0aW9uRXJyb3I6IGFzc2VydCAx
ID09IDIKKyAgICBFICAgICAgICArICB3aGVyZSAxID0gPGZhaWx1cmVfZGVtby50ZXN0X2F0dHJp
YnV0ZV9pbnN0YW5jZS48bG9jYWxzPi5Gb28gb2JqZWN0IGF0IDB4ZGVhZGJlZWY+LmIKKyAgICBF
ICAgICAgICArICAgIHdoZXJlIDxmYWlsdXJlX2RlbW8udGVzdF9hdHRyaWJ1dGVfaW5zdGFuY2Uu
PGxvY2Fscz4uRm9vIG9iamVjdCBhdCAweGRlYWRiZWVmPiA9IDxjbGFzcyAnZmFpbHVyZV9kZW1v
LnRlc3RfYXR0cmlidXRlX2luc3RhbmNlLjxsb2NhbHM+LkZvbyc+KCkKKyAgICAKKyAgICBmYWls
dXJlX2RlbW8ucHk6MTA4OiBBc3NlcnRpb25FcnJvcgorICAgIF9fX19fX19fX19fX19fX19fX19f
X19fX19fIHRlc3RfYXR0cmlidXRlX2ZhaWx1cmUgX19fX19fX19fX19fX19fX19fX19fX19fX18K
KyAgICAKKyAgICAgICAgZGVmIHRlc3RfYXR0cmlidXRlX2ZhaWx1cmUoKToKKyAgICAgICAgICAg
IGNsYXNzIEZvbyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiBfZ2V0X2Ioc2VsZik6Cisg
ICAgICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRmFpbGVkIHRvIGdldCBhdHRyaWIn
KQorICAgICAgICAgICAgICAgIGIgPSBwcm9wZXJ0eShfZ2V0X2IpCisgICAgICAgICAgICBpID0g
Rm9vKCkKKyAgICA+ICAgICAgIGFzc2VydCBpLmIgPT0gMgorICAgIAorICAgIGZhaWx1cmVfZGVt
by5weToxMTc6IAorICAgIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBf
IF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyAKKyAgICAKKyAgICBzZWxmID0gPGZh
aWx1cmVfZGVtby50ZXN0X2F0dHJpYnV0ZV9mYWlsdXJlLjxsb2NhbHM+LkZvbyBvYmplY3QgYXQg
MHhkZWFkYmVlZj4KKyAgICAKKyAgICAgICAgZGVmIF9nZXRfYihzZWxmKToKKyAgICA+ICAgICAg
IHJhaXNlIEV4Y2VwdGlvbignRmFpbGVkIHRvIGdldCBhdHRyaWInKQorICAgIEUgICAgICAgRXhj
ZXB0aW9uOiBGYWlsZWQgdG8gZ2V0IGF0dHJpYgorICAgIAorICAgIGZhaWx1cmVfZGVtby5weTox
MTQ6IEV4Y2VwdGlvbgorICAgIF9fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9hdHRyaWJ1
dGVfbXVsdGlwbGUgX19fX19fX19fX19fX19fX19fX19fX19fX18KKyAgICAKKyAgICAgICAgZGVm
IHRlc3RfYXR0cmlidXRlX211bHRpcGxlKCk6CisgICAgICAgICAgICBjbGFzcyBGb28ob2JqZWN0
KToKKyAgICAgICAgICAgICAgICBiID0gMQorICAgICAgICAgICAgY2xhc3MgQmFyKG9iamVjdCk6
CisgICAgICAgICAgICAgICAgYiA9IDIKKyAgICA+ICAgICAgIGFzc2VydCBGb28oKS5iID09IEJh
cigpLmIKKyAgICBFICAgICAgIEFzc2VydGlvbkVycm9yOiBhc3NlcnQgMSA9PSAyCisgICAgRSAg
ICAgICAgKyAgd2hlcmUgMSA9IDxmYWlsdXJlX2RlbW8udGVzdF9hdHRyaWJ1dGVfbXVsdGlwbGUu
PGxvY2Fscz4uRm9vIG9iamVjdCBhdCAweGRlYWRiZWVmPi5iCisgICAgRSAgICAgICAgKyAgICB3
aGVyZSA8ZmFpbHVyZV9kZW1vLnRlc3RfYXR0cmlidXRlX211bHRpcGxlLjxsb2NhbHM+LkZvbyBv
YmplY3QgYXQgMHhkZWFkYmVlZj4gPSA8Y2xhc3MgJ2ZhaWx1cmVfZGVtby50ZXN0X2F0dHJpYnV0
ZV9tdWx0aXBsZS48bG9jYWxzPi5Gb28nPigpCisgICAgRSAgICAgICAgKyAgYW5kICAgMiA9IDxm
YWlsdXJlX2RlbW8udGVzdF9hdHRyaWJ1dGVfbXVsdGlwbGUuPGxvY2Fscz4uQmFyIG9iamVjdCBh
dCAweGRlYWRiZWVmPi5iCisgICAgRSAgICAgICAgKyAgICB3aGVyZSA8ZmFpbHVyZV9kZW1vLnRl
c3RfYXR0cmlidXRlX211bHRpcGxlLjxsb2NhbHM+LkJhciBvYmplY3QgYXQgMHhkZWFkYmVlZj4g
PSA8Y2xhc3MgJ2ZhaWx1cmVfZGVtby50ZXN0X2F0dHJpYnV0ZV9tdWx0aXBsZS48bG9jYWxzPi5C
YXInPigpCisgICAgCisgICAgZmFpbHVyZV9kZW1vLnB5OjEyNTogQXNzZXJ0aW9uRXJyb3IKKyAg
ICBfX19fX19fX19fX19fX19fX19fX19fX19fXyBUZXN0UmFpc2VzLnRlc3RfcmFpc2VzIF9fX19f
X19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVz
dFJhaXNlcyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAgICAKKyAgICAgICAgZGVmIHRlc3RfcmFp
c2VzKHNlbGYpOgorICAgICAgICAgICAgcyA9ICdxd2UnCisgICAgPiAgICAgICByYWlzZXMoVHlw
ZUVycm9yLCAiaW50KHMpIikKKyAgICAKKyAgICBmYWlsdXJlX2RlbW8ucHk6MTM0OiAKKyAgICBf
IF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8g
XyBfIF8gXyBfIF8gXyBfIF8gCisgICAgCisgICAgPiAgIGludChzKQorICAgIEUgICBWYWx1ZUVy
cm9yOiBpbnZhbGlkIGxpdGVyYWwgZm9yIGludCgpIHdpdGggYmFzZSAxMDogJ3F3ZScKKyAgICAK
KyAgICA8MC1jb2RlZ2VuICRQWVRIT05fUFJFRklYL2xpYi9weXRob24zLjUvc2l0ZS1wYWNrYWdl
cy9fcHl0ZXN0L3B5dGhvbl9hcGkucHk6NTgwPjoxOiBWYWx1ZUVycm9yCisgICAgX19fX19fX19f
X19fX19fX19fX19fXyBUZXN0UmFpc2VzLnRlc3RfcmFpc2VzX2RvZXNudCBfX19fX19fX19fX19f
X19fX19fX19fXworICAgIAorICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RSYWlzZXMgb2Jq
ZWN0IGF0IDB4ZGVhZGJlZWY+CisgICAgCisgICAgICAgIGRlZiB0ZXN0X3JhaXNlc19kb2VzbnQo
c2VsZik6CisgICAgPiAgICAgICByYWlzZXMoSU9FcnJvciwgImludCgnMycpIikKKyAgICBFICAg
ICAgIEZhaWxlZDogRElEIE5PVCBSQUlTRSA8Y2xhc3MgJ09TRXJyb3InPgorICAgIAorICAgIGZh
aWx1cmVfZGVtby5weToxMzc6IEZhaWxlZAorICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19f
IFRlc3RSYWlzZXMudGVzdF9yYWlzZSBfX19fX19fX19fX19fX19fX19fX19fX19fX18KKyAgICAK
KyAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0UmFpc2VzIG9iamVjdCBhdCAweGRlYWRiZWVm
PgorICAgIAorICAgICAgICBkZWYgdGVzdF9yYWlzZShzZWxmKToKKyAgICA+ICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoImRlbW8gZXJyb3IiKQorICAgIEUgICAgICAgVmFsdWVFcnJvcjogZGVtbyBl
cnJvcgorICAgIAorICAgIGZhaWx1cmVfZGVtby5weToxNDA6IFZhbHVlRXJyb3IKKyAgICBfX19f
X19fX19fX19fX19fX19fX19fX18gVGVzdFJhaXNlcy50ZXN0X3R1cGxlZXJyb3IgX19fX19fX19f
X19fX19fX19fX19fX19fCisgICAgCisgICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVzdFJhaXNl
cyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAgICAKKyAgICAgICAgZGVmIHRlc3RfdHVwbGVlcnJv
cihzZWxmKToKKyAgICA+ICAgICAgIGEsYiA9IFsxXQorICAgIEUgICAgICAgVmFsdWVFcnJvcjog
bm90IGVub3VnaCB2YWx1ZXMgdG8gdW5wYWNrIChleHBlY3RlZCAyLCBnb3QgMSkKKyAgICAKKyAg
ICBmYWlsdXJlX2RlbW8ucHk6MTQzOiBWYWx1ZUVycm9yCisgICAgX19fX19fIFRlc3RSYWlzZXMu
dGVzdF9yZWludGVycHJldF9mYWlsc193aXRoX3ByaW50X2Zvcl90aGVfZnVuX29mX2l0IF9fX19f
XworICAgIAorICAgIHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RSYWlzZXMgb2JqZWN0IGF0IDB4
ZGVhZGJlZWY+CisgICAgCisgICAgICAgIGRlZiB0ZXN0X3JlaW50ZXJwcmV0X2ZhaWxzX3dpdGhf
cHJpbnRfZm9yX3RoZV9mdW5fb2ZfaXQoc2VsZik6CisgICAgICAgICAgICBsID0gWzEsMiwzXQor
ICAgICAgICAgICAgcHJpbnQgKCJsIGlzICVyIiAlIGwpCisgICAgPiAgICAgICBhLGIgPSBsLnBv
cCgpCisgICAgRSAgICAgICBUeXBlRXJyb3I6ICdpbnQnIG9iamVjdCBpcyBub3QgaXRlcmFibGUK
KyAgICAKKyAgICBmYWlsdXJlX2RlbW8ucHk6MTQ4OiBUeXBlRXJyb3IKKyAgICAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0gQ2FwdHVyZWQgc3Rkb3V0IGNhbGwgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisgICAgbCBpcyBbMSwgMiwgM10KKyAgICBfX19fX19fX19fX19fX19fX19fX19f
X18gVGVzdFJhaXNlcy50ZXN0X3NvbWVfZXJyb3IgX19fX19fX19fX19fX19fX19fX19fX19fCisg
ICAgCisgICAgc2VsZiA9IDxmYWlsdXJlX2RlbW8uVGVzdFJhaXNlcyBvYmplY3QgYXQgMHhkZWFk
YmVlZj4KKyAgICAKKyAgICAgICAgZGVmIHRlc3Rfc29tZV9lcnJvcihzZWxmKToKKyAgICA+ICAg
ICAgIGlmIG5hbWVub3RleGk6CisgICAgRSAgICAgICBOYW1lRXJyb3I6IG5hbWUgJ25hbWVub3Rl
eGknIGlzIG5vdCBkZWZpbmVkCisgICAgCisgICAgZmFpbHVyZV9kZW1vLnB5OjE1MTogTmFtZUVy
cm9yCisgICAgX19fX19fX19fX19fX19fX19fX18gdGVzdF9keW5hbWljX2NvbXBpbGVfc2hvd3Nf
bmljZWx5IF9fX19fX19fX19fX19fX19fX19fXworICAgIAorICAgICAgICBkZWYgdGVzdF9keW5h
bWljX2NvbXBpbGVfc2hvd3NfbmljZWx5KCk6CisgICAgICAgICAgICBzcmMgPSAnZGVmIGZvbygp
OlxuIGFzc2VydCAxID09IDBcbicKKyAgICAgICAgICAgIG5hbWUgPSAnYWJjLTEyMycKKyAgICAg
ICAgICAgIG1vZHVsZSA9IHB5LnN0ZC5pbXAubmV3X21vZHVsZShuYW1lKQorICAgICAgICAgICAg
Y29kZSA9IF9weXRlc3QuX2NvZGUuY29tcGlsZShzcmMsIG5hbWUsICdleGVjJykKKyAgICAgICAg
ICAgIHB5LmJ1aWx0aW4uZXhlY18oY29kZSwgbW9kdWxlLl9fZGljdF9fKQorICAgICAgICAgICAg
cHkuc3RkLnN5cy5tb2R1bGVzW25hbWVdID0gbW9kdWxlCisgICAgPiAgICAgICBtb2R1bGUuZm9v
KCkKKyAgICAKKyAgICBmYWlsdXJlX2RlbW8ucHk6MTY2OiAKKyAgICBfIF8gXyBfIF8gXyBfIF8g
XyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBf
IF8gCisgICAgCisgICAgICAgIGRlZiBmb28oKToKKyAgICA+ICAgIGFzc2VydCAxID09IDAKKyAg
ICBFICAgIEFzc2VydGlvbkVycm9yCisgICAgCisgICAgPDItY29kZWdlbiAnYWJjLTEyMycgJFJF
R0VORE9DX1RNUERJUi9hc3NlcnRpb24vZmFpbHVyZV9kZW1vLnB5OjE2Mz46MjogQXNzZXJ0aW9u
RXJyb3IKKyAgICBfX19fX19fX19fX19fX19fX19fXyBUZXN0TW9yZUVycm9ycy50ZXN0X2NvbXBs
ZXhfZXJyb3IgX19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgc2VsZiA9IDxmYWlsdXJl
X2RlbW8uVGVzdE1vcmVFcnJvcnMgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CisgICAgCisgICAgICAg
IGRlZiB0ZXN0X2NvbXBsZXhfZXJyb3Ioc2VsZik6CisgICAgICAgICAgICBkZWYgZigpOgorICAg
ICAgICAgICAgICAgIHJldHVybiA0NAorICAgICAgICAgICAgZGVmIGcoKToKKyAgICAgICAgICAg
ICAgICByZXR1cm4gNDMKKyAgICA+ICAgICAgIHNvbWVmdW5jKGYoKSwgZygpKQorICAgIAorICAg
IGZhaWx1cmVfZGVtby5weToxNzY6IAorICAgIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBf
IF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyAKKyAgICBmYWls
dXJlX2RlbW8ucHk6OTogaW4gc29tZWZ1bmMKKyAgICAgICAgb3RoZXJmdW5jKHgseSkKKyAgICBf
IF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8g
XyBfIF8gXyBfIF8gXyBfIF8gCisgICAgCisgICAgYSA9IDQ0LCBiID0gNDMKKyAgICAKKyAgICAg
ICAgZGVmIG90aGVyZnVuYyhhLGIpOgorICAgID4gICAgICAgYXNzZXJ0IGE9PWIKKyAgICBFICAg
ICAgIGFzc2VydCA0NCA9PSA0MworICAgIAorICAgIGZhaWx1cmVfZGVtby5weTo2OiBBc3NlcnRp
b25FcnJvcgorICAgIF9fX19fX19fX19fX19fX19fX18gVGVzdE1vcmVFcnJvcnMudGVzdF96MV91
bnBhY2tfZXJyb3IgX19fX19fX19fX19fX19fX19fX18KKyAgICAKKyAgICBzZWxmID0gPGZhaWx1
cmVfZGVtby5UZXN0TW9yZUVycm9ycyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAgICAKKyAgICAg
ICAgZGVmIHRlc3RfejFfdW5wYWNrX2Vycm9yKHNlbGYpOgorICAgICAgICAgICAgbCA9IFtdCisg
ICAgPiAgICAgICBhLGIgID0gbAorICAgIEUgICAgICAgVmFsdWVFcnJvcjogbm90IGVub3VnaCB2
YWx1ZXMgdG8gdW5wYWNrIChleHBlY3RlZCAyLCBnb3QgMCkKKyAgICAKKyAgICBmYWlsdXJlX2Rl
bW8ucHk6MTgwOiBWYWx1ZUVycm9yCisgICAgX19fX19fX19fX19fX19fX19fX18gVGVzdE1vcmVF
cnJvcnMudGVzdF96Ml90eXBlX2Vycm9yIF9fX19fX19fX19fX19fX19fX19fXworICAgIAorICAg
IHNlbGYgPSA8ZmFpbHVyZV9kZW1vLlRlc3RNb3JlRXJyb3JzIG9iamVjdCBhdCAweGRlYWRiZWVm
PgorICAgIAorICAgICAgICBkZWYgdGVzdF96Ml90eXBlX2Vycm9yKHNlbGYpOgorICAgICAgICAg
ICAgbCA9IDMKKyAgICA+ICAgICAgIGEsYiAgPSBsCisgICAgRSAgICAgICBUeXBlRXJyb3I6ICdp
bnQnIG9iamVjdCBpcyBub3QgaXRlcmFibGUKKyAgICAKKyAgICBmYWlsdXJlX2RlbW8ucHk6MTg0
OiBUeXBlRXJyb3IKKyAgICBfX19fX19fX19fX19fX19fX19fX19fIFRlc3RNb3JlRXJyb3JzLnRl
c3Rfc3RhcnRzd2l0aCBfX19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgc2VsZiA9IDxm
YWlsdXJlX2RlbW8uVGVzdE1vcmVFcnJvcnMgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CisgICAgCisg
ICAgICAgIGRlZiB0ZXN0X3N0YXJ0c3dpdGgoc2VsZik6CisgICAgICAgICAgICBzID0gIjEyMyIK
KyAgICAgICAgICAgIGcgPSAiNDU2IgorICAgID4gICAgICAgYXNzZXJ0IHMuc3RhcnRzd2l0aChn
KQorICAgIEUgICAgICAgQXNzZXJ0aW9uRXJyb3I6IGFzc2VydCBGYWxzZQorICAgIEUgICAgICAg
ICsgIHdoZXJlIEZhbHNlID0gPGJ1aWx0LWluIG1ldGhvZCBzdGFydHN3aXRoIG9mIHN0ciBvYmpl
Y3QgYXQgMHhkZWFkYmVlZj4oJzQ1NicpCisgICAgRSAgICAgICAgKyAgICB3aGVyZSA8YnVpbHQt
aW4gbWV0aG9kIHN0YXJ0c3dpdGggb2Ygc3RyIG9iamVjdCBhdCAweGRlYWRiZWVmPiA9ICcxMjMn
LnN0YXJ0c3dpdGgKKyAgICAKKyAgICBmYWlsdXJlX2RlbW8ucHk6MTg5OiBBc3NlcnRpb25FcnJv
cgorICAgIF9fX19fX19fX19fX19fX19fXyBUZXN0TW9yZUVycm9ycy50ZXN0X3N0YXJ0c3dpdGhf
bmVzdGVkIF9fX19fX19fX19fX19fX19fX18KKyAgICAKKyAgICBzZWxmID0gPGZhaWx1cmVfZGVt
by5UZXN0TW9yZUVycm9ycyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAgICAKKyAgICAgICAgZGVm
IHRlc3Rfc3RhcnRzd2l0aF9uZXN0ZWQoc2VsZik6CisgICAgICAgICAgICBkZWYgZigpOgorICAg
ICAgICAgICAgICAgIHJldHVybiAiMTIzIgorICAgICAgICAgICAgZGVmIGcoKToKKyAgICAgICAg
ICAgICAgICByZXR1cm4gIjQ1NiIKKyAgICA+ICAgICAgIGFzc2VydCBmKCkuc3RhcnRzd2l0aChn
KCkpCisgICAgRSAgICAgICBBc3NlcnRpb25FcnJvcjogYXNzZXJ0IEZhbHNlCisgICAgRSAgICAg
ICAgKyAgd2hlcmUgRmFsc2UgPSA8YnVpbHQtaW4gbWV0aG9kIHN0YXJ0c3dpdGggb2Ygc3RyIG9i
amVjdCBhdCAweGRlYWRiZWVmPignNDU2JykKKyAgICBFICAgICAgICArICAgIHdoZXJlIDxidWls
dC1pbiBtZXRob2Qgc3RhcnRzd2l0aCBvZiBzdHIgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+ID0gJzEy
Mycuc3RhcnRzd2l0aAorICAgIEUgICAgICAgICsgICAgICB3aGVyZSAnMTIzJyA9IDxmdW5jdGlv
biBUZXN0TW9yZUVycm9ycy50ZXN0X3N0YXJ0c3dpdGhfbmVzdGVkLjxsb2NhbHM+LmYgYXQgMHhk
ZWFkYmVlZj4oKQorICAgIEUgICAgICAgICsgICAgYW5kICAgJzQ1NicgPSA8ZnVuY3Rpb24gVGVz
dE1vcmVFcnJvcnMudGVzdF9zdGFydHN3aXRoX25lc3RlZC48bG9jYWxzPi5nIGF0IDB4ZGVhZGJl
ZWY+KCkKKyAgICAKKyAgICBmYWlsdXJlX2RlbW8ucHk6MTk2OiBBc3NlcnRpb25FcnJvcgorICAg
IF9fX19fX19fX19fX19fX19fX19fXyBUZXN0TW9yZUVycm9ycy50ZXN0X2dsb2JhbF9mdW5jIF9f
X19fX19fX19fX19fX19fX19fX18KKyAgICAKKyAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0
TW9yZUVycm9ycyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAgICAKKyAgICAgICAgZGVmIHRlc3Rf
Z2xvYmFsX2Z1bmMoc2VsZik6CisgICAgPiAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShnbG9iZig0
MiksIGZsb2F0KQorICAgIEUgICAgICAgYXNzZXJ0IEZhbHNlCisgICAgRSAgICAgICAgKyAgd2hl
cmUgRmFsc2UgPSBpc2luc3RhbmNlKDQzLCBmbG9hdCkKKyAgICBFICAgICAgICArICAgIHdoZXJl
IDQzID0gZ2xvYmYoNDIpCisgICAgCisgICAgZmFpbHVyZV9kZW1vLnB5OjE5OTogQXNzZXJ0aW9u
RXJyb3IKKyAgICBfX19fX19fX19fX19fX19fX19fX19fXyBUZXN0TW9yZUVycm9ycy50ZXN0X2lu
c3RhbmNlIF9fX19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgc2VsZiA9IDxmYWlsdXJl
X2RlbW8uVGVzdE1vcmVFcnJvcnMgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CisgICAgCisgICAgICAg
IGRlZiB0ZXN0X2luc3RhbmNlKHNlbGYpOgorICAgICAgICAgICAgc2VsZi54ID0gNio3CisgICAg
PiAgICAgICBhc3NlcnQgc2VsZi54ICE9IDQyCisgICAgRSAgICAgICBhc3NlcnQgNDIgIT0gNDIK
KyAgICBFICAgICAgICArICB3aGVyZSA0MiA9IDxmYWlsdXJlX2RlbW8uVGVzdE1vcmVFcnJvcnMg
b2JqZWN0IGF0IDB4ZGVhZGJlZWY+LngKKyAgICAKKyAgICBmYWlsdXJlX2RlbW8ucHk6MjAzOiBB
c3NlcnRpb25FcnJvcgorICAgIF9fX19fX19fX19fX19fX19fX19fX19fIFRlc3RNb3JlRXJyb3Jz
LnRlc3RfY29tcGFyZSBfX19fX19fX19fX19fX19fX19fX19fX18KKyAgICAKKyAgICBzZWxmID0g
PGZhaWx1cmVfZGVtby5UZXN0TW9yZUVycm9ycyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAgICAK
KyAgICAgICAgZGVmIHRlc3RfY29tcGFyZShzZWxmKToKKyAgICA+ICAgICAgIGFzc2VydCBnbG9i
ZigxMCkgPCA1CisgICAgRSAgICAgICBhc3NlcnQgMTEgPCA1CisgICAgRSAgICAgICAgKyAgd2hl
cmUgMTEgPSBnbG9iZigxMCkKKyAgICAKKyAgICBmYWlsdXJlX2RlbW8ucHk6MjA2OiBBc3NlcnRp
b25FcnJvcgorICAgIF9fX19fX19fX19fX19fX19fX19fXyBUZXN0TW9yZUVycm9ycy50ZXN0X3Ry
eV9maW5hbGx5IF9fX19fX19fX19fX19fX19fX19fX18KKyAgICAKKyAgICBzZWxmID0gPGZhaWx1
cmVfZGVtby5UZXN0TW9yZUVycm9ycyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAgICAKKyAgICAg
ICAgZGVmIHRlc3RfdHJ5X2ZpbmFsbHkoc2VsZik6CisgICAgICAgICAgICB4ID0gMQorICAgICAg
ICAgICAgdHJ5OgorICAgID4gICAgICAgICAgIGFzc2VydCB4ID09IDAKKyAgICBFICAgICAgICAg
ICBhc3NlcnQgMSA9PSAwCisgICAgCisgICAgZmFpbHVyZV9kZW1vLnB5OjIxMTogQXNzZXJ0aW9u
RXJyb3IKKyAgICBfX19fX19fX19fX19fX19fX19fIFRlc3RDdXN0b21Bc3NlcnRNc2cudGVzdF9z
aW5nbGVfbGluZSBfX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgc2VsZiA9IDxmYWlsdXJl
X2RlbW8uVGVzdEN1c3RvbUFzc2VydE1zZyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAgICAKKyAg
ICAgICAgZGVmIHRlc3Rfc2luZ2xlX2xpbmUoc2VsZik6CisgICAgICAgICAgICBjbGFzcyBBKG9i
amVjdCk6CisgICAgICAgICAgICAgICAgYSA9IDEKKyAgICAgICAgICAgIGIgPSAyCisgICAgPiAg
ICAgICBhc3NlcnQgQS5hID09IGIsICJBLmEgYXBwZWFycyBub3QgdG8gYmUgYiIKKyAgICBFICAg
ICAgIEFzc2VydGlvbkVycm9yOiBBLmEgYXBwZWFycyBub3QgdG8gYmUgYgorICAgIEUgICAgICAg
YXNzZXJ0IDEgPT0gMgorICAgIEUgICAgICAgICsgIHdoZXJlIDEgPSA8Y2xhc3MgJ2ZhaWx1cmVf
ZGVtby5UZXN0Q3VzdG9tQXNzZXJ0TXNnLnRlc3Rfc2luZ2xlX2xpbmUuPGxvY2Fscz4uQSc+LmEK
KyAgICAKKyAgICBmYWlsdXJlX2RlbW8ucHk6MjIyOiBBc3NlcnRpb25FcnJvcgorICAgIF9fX19f
X19fX19fX19fX19fX19fIFRlc3RDdXN0b21Bc3NlcnRNc2cudGVzdF9tdWx0aWxpbmUgX19fX19f
X19fX19fX19fX19fX18KKyAgICAKKyAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0Q3VzdG9t
QXNzZXJ0TXNnIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIAorICAgICAgICBkZWYgdGVzdF9t
dWx0aWxpbmUoc2VsZik6CisgICAgICAgICAgICBjbGFzcyBBKG9iamVjdCk6CisgICAgICAgICAg
ICAgICAgYSA9IDEKKyAgICAgICAgICAgIGIgPSAyCisgICAgPiAgICAgICBhc3NlcnQgQS5hID09
IGIsICJBLmEgYXBwZWFycyBub3QgdG8gYmUgYlxuIiBcCisgICAgICAgICAgICAgICAgIm9yIGRv
ZXMgbm90IGFwcGVhciB0byBiZSBiXG5vbmUgb2YgdGhvc2UiCisgICAgRSAgICAgICBBc3NlcnRp
b25FcnJvcjogQS5hIGFwcGVhcnMgbm90IHRvIGJlIGIKKyAgICBFICAgICAgICAgb3IgZG9lcyBu
b3QgYXBwZWFyIHRvIGJlIGIKKyAgICBFICAgICAgICAgb25lIG9mIHRob3NlCisgICAgRSAgICAg
ICBhc3NlcnQgMSA9PSAyCisgICAgRSAgICAgICAgKyAgd2hlcmUgMSA9IDxjbGFzcyAnZmFpbHVy
ZV9kZW1vLlRlc3RDdXN0b21Bc3NlcnRNc2cudGVzdF9tdWx0aWxpbmUuPGxvY2Fscz4uQSc+LmEK
KyAgICAKKyAgICBmYWlsdXJlX2RlbW8ucHk6MjI4OiBBc3NlcnRpb25FcnJvcgorICAgIF9fX19f
X19fX19fX19fX19fX18gVGVzdEN1c3RvbUFzc2VydE1zZy50ZXN0X2N1c3RvbV9yZXByIF9fX19f
X19fX19fX19fX19fX18KKyAgICAKKyAgICBzZWxmID0gPGZhaWx1cmVfZGVtby5UZXN0Q3VzdG9t
QXNzZXJ0TXNnIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIAorICAgICAgICBkZWYgdGVzdF9j
dXN0b21fcmVwcihzZWxmKToKKyAgICAgICAgICAgIGNsYXNzIEpTT04ob2JqZWN0KToKKyAgICAg
ICAgICAgICAgICBhID0gMQorICAgICAgICAgICAgICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuICJUaGlzIGlzIEpTT05cbntcbiAgJ2Zvbyc6ICdiYXIn
XG59IgorICAgICAgICAgICAgYSA9IEpTT04oKQorICAgICAgICAgICAgYiA9IDIKKyAgICA+ICAg
ICAgIGFzc2VydCBhLmEgPT0gYiwgYQorICAgIEUgICAgICAgQXNzZXJ0aW9uRXJyb3I6IFRoaXMg
aXMgSlNPTgorICAgIEUgICAgICAgICB7CisgICAgRSAgICAgICAgICAgJ2Zvbyc6ICdiYXInCisg
ICAgRSAgICAgICAgIH0KKyAgICBFICAgICAgIGFzc2VydCAxID09IDIKKyAgICBFICAgICAgICAr
ICB3aGVyZSAxID0gVGhpcyBpcyBKU09OXG57XG4gICdmb28nOiAnYmFyJ1xufS5hCisgICAgCisg
ICAgZmFpbHVyZV9kZW1vLnB5OjIzODogQXNzZXJ0aW9uRXJyb3IKKyAgICA9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PSB3YXJuaW5ncyBzdW1tYXJ5ID09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CisgICAgTm9uZQorICAgICAgTWV0YWZ1bmMuYWRkY2FsbCBpcyBkZXByZWNhdGVkIGFu
ZCBzY2hlZHVsZWQgdG8gYmUgcmVtb3ZlZCBpbiBweXRlc3QgNC4wLgorICAgICAgUGxlYXNlIHVz
ZSBNZXRhZnVuYy5wYXJhbWV0cml6ZSBpbnN0ZWFkLgorICAgIAorICAgIC0tIERvY3M6IGh0dHA6
Ly9kb2MucHl0ZXN0Lm9yZy9lbi9sYXRlc3Qvd2FybmluZ3MuaHRtbAorICAgID09PT09PT09PT09
PT09PT09PSA0MiBmYWlsZWQsIDEgd2FybmluZ3MgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09
PT09PT09PT0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3NpbXBsZS5y
c3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9zaW1wbGUucnN0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3
OGEwZGIwMDk0YjkyYzA4Y2JmZmZmZDYyZTZjNzFmMThkYTE4YzAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9zaW1wbGUucnN0CkBAIC0wLDAgKzEsODQ3IEBA
CisKKworQmFzaWMgcGF0dGVybnMgYW5kIGV4YW1wbGVzCis9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1Bhc3MgZGlmZmVyZW50IHZh
bHVlcyB0byBhIHRlc3QgZnVuY3Rpb24sIGRlcGVuZGluZyBvbiBjb21tYW5kIGxpbmUgb3B0aW9u
cworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiByZWdlbmRvYzp3aXBlCisKK1N1cHBvc2Ugd2Ug
d2FudCB0byB3cml0ZSBhIHRlc3QgdGhhdCBkZXBlbmRzIG9uIGEgY29tbWFuZCBsaW5lIG9wdGlv
bi4KK0hlcmUgaXMgYSBiYXNpYyBwYXR0ZXJuIHRvIGFjaGlldmUgdGhpczoKKworLi4gY29kZS1i
bG9jazo6IHB5dGhvbgorCisgICAgIyBjb250ZW50IG9mIHRlc3Rfc2FtcGxlLnB5CisgICAgZGVm
IHRlc3RfYW5zd2VyKGNtZG9wdCk6CisgICAgICAgIGlmIGNtZG9wdCA9PSAidHlwZTEiOgorICAg
ICAgICAgICAgcHJpbnQgKCJmaXJzdCIpCisgICAgICAgIGVsaWYgY21kb3B0ID09ICJ0eXBlMiI6
CisgICAgICAgICAgICBwcmludCAoInNlY29uZCIpCisgICAgICAgIGFzc2VydCAwICMgdG8gc2Vl
IHdoYXQgd2FzIHByaW50ZWQKKworCitGb3IgdGhpcyB0byB3b3JrIHdlIG5lZWQgdG8gYWRkIGEg
Y29tbWFuZCBsaW5lIG9wdGlvbiBhbmQKK3Byb3ZpZGUgdGhlIGBgY21kb3B0YGAgdGhyb3VnaCBh
IDpyZWY6YGZpeHR1cmUgZnVuY3Rpb24gPGZpeHR1cmUgZnVuY3Rpb24+YDoKKworLi4gY29kZS1i
bG9jazo6IHB5dGhvbgorCisgICAgIyBjb250ZW50IG9mIGNvbmZ0ZXN0LnB5CisgICAgaW1wb3J0
IHB5dGVzdAorCisgICAgZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKKyAgICAgICAgcGFy
c2VyLmFkZG9wdGlvbigiLS1jbWRvcHQiLCBhY3Rpb249InN0b3JlIiwgZGVmYXVsdD0idHlwZTEi
LAorICAgICAgICAgICAgaGVscD0ibXkgb3B0aW9uOiB0eXBlMSBvciB0eXBlMiIpCisKKyAgICBA
cHl0ZXN0LmZpeHR1cmUKKyAgICBkZWYgY21kb3B0KHJlcXVlc3QpOgorICAgICAgICByZXR1cm4g
cmVxdWVzdC5jb25maWcuZ2V0b3B0aW9uKCItLWNtZG9wdCIpCisKK0xldCdzIHJ1biB0aGlzIHdp
dGhvdXQgc3VwcGx5aW5nIG91ciBuZXcgb3B0aW9uOjoKKworICAgICQgcHl0ZXN0IC1xIHRlc3Rf
c2FtcGxlLnB5CisgICAgRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCisgICAgPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09IEZBSUxVUkVTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQorICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9hbnN3ZXIgX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KKyAgICAKKyAgICBjbWRvcHQgPSAndHlwZTEnCisg
ICAgCisgICAgICAgIGRlZiB0ZXN0X2Fuc3dlcihjbWRvcHQpOgorICAgICAgICAgICAgaWYgY21k
b3B0ID09ICJ0eXBlMSI6CisgICAgICAgICAgICAgICAgcHJpbnQgKCJmaXJzdCIpCisgICAgICAg
ICAgICBlbGlmIGNtZG9wdCA9PSAidHlwZTIiOgorICAgICAgICAgICAgICAgIHByaW50ICgic2Vj
b25kIikKKyAgICA+ICAgICAgIGFzc2VydCAwICMgdG8gc2VlIHdoYXQgd2FzIHByaW50ZWQKKyAg
ICBFICAgICAgIGFzc2VydCAwCisgICAgCisgICAgdGVzdF9zYW1wbGUucHk6NjogQXNzZXJ0aW9u
RXJyb3IKKyAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ2FwdHVyZWQgc3Rkb3V0IGNh
bGwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgZmlyc3QKKyAgICAxIGZhaWxlZCBp
biAwLjEyIHNlY29uZHMKKworQW5kIG5vdyB3aXRoIHN1cHBseWluZyBhIGNvbW1hbmQgbGluZSBv
cHRpb246OgorCisgICAgJCBweXRlc3QgLXEgLS1jbWRvcHQ9dHlwZTIKKyAgICBGICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbMTAwJV0KKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRkFJTFVSRVMg
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXyB0ZXN0X2Fuc3dlciBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
XworICAgIAorICAgIGNtZG9wdCA9ICd0eXBlMicKKyAgICAKKyAgICAgICAgZGVmIHRlc3RfYW5z
d2VyKGNtZG9wdCk6CisgICAgICAgICAgICBpZiBjbWRvcHQgPT0gInR5cGUxIjoKKyAgICAgICAg
ICAgICAgICBwcmludCAoImZpcnN0IikKKyAgICAgICAgICAgIGVsaWYgY21kb3B0ID09ICJ0eXBl
MiI6CisgICAgICAgICAgICAgICAgcHJpbnQgKCJzZWNvbmQiKQorICAgID4gICAgICAgYXNzZXJ0
IDAgIyB0byBzZWUgd2hhdCB3YXMgcHJpbnRlZAorICAgIEUgICAgICAgYXNzZXJ0IDAKKyAgICAK
KyAgICB0ZXN0X3NhbXBsZS5weTo2OiBBc3NlcnRpb25FcnJvcgorICAgIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSBDYXB0dXJlZCBzdGRvdXQgY2FsbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyAgICBzZWNvbmQKKyAgICAxIGZhaWxlZCBpbiAwLjEyIHNlY29uZHMKKworWW91IGNh
biBzZWUgdGhhdCB0aGUgY29tbWFuZCBsaW5lIG9wdGlvbiBhcnJpdmVkIGluIG91ciB0ZXN0LiAg
VGhpcworY29tcGxldGVzIHRoZSBiYXNpYyBwYXR0ZXJuLiAgSG93ZXZlciwgb25lIG9mdGVuIHJh
dGhlciB3YW50cyB0byBwcm9jZXNzCitjb21tYW5kIGxpbmUgb3B0aW9ucyBvdXRzaWRlIG9mIHRo
ZSB0ZXN0IGFuZCByYXRoZXIgcGFzcyBpbiBkaWZmZXJlbnQgb3IKK21vcmUgY29tcGxleCBvYmpl
Y3RzLgorCitEeW5hbWljYWxseSBhZGRpbmcgY29tbWFuZCBsaW5lIG9wdGlvbnMKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
Ky4uIHJlZ2VuZG9jOndpcGUKKworVGhyb3VnaCA6Y29uZnZhbDpgYWRkb3B0c2AgeW91IGNhbiBz
dGF0aWNhbGx5IGFkZCBjb21tYW5kIGxpbmUKK29wdGlvbnMgZm9yIHlvdXIgcHJvamVjdC4gIFlv
dSBjYW4gYWxzbyBkeW5hbWljYWxseSBtb2RpZnkKK3RoZSBjb21tYW5kIGxpbmUgYXJndW1lbnRz
IGJlZm9yZSB0aGV5IGdldCBwcm9jZXNzZWQ6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKwor
ICAgICMgY29udGVudCBvZiBjb25mdGVzdC5weQorICAgIGltcG9ydCBzeXMKKyAgICBkZWYgcHl0
ZXN0X2NtZGxpbmVfcHJlcGFyc2UoYXJncyk6CisgICAgICAgIGlmICd4ZGlzdCcgaW4gc3lzLm1v
ZHVsZXM6ICMgcHl0ZXN0LXhkaXN0IHBsdWdpbgorICAgICAgICAgICAgaW1wb3J0IG11bHRpcHJv
Y2Vzc2luZworICAgICAgICAgICAgbnVtID0gbWF4KG11bHRpcHJvY2Vzc2luZy5jcHVfY291bnQo
KSAvIDIsIDEpCisgICAgICAgICAgICBhcmdzWzpdID0gWyItbiIsIHN0cihudW0pXSArIGFyZ3MK
KworSWYgeW91IGhhdmUgdGhlIGB4ZGlzdCBwbHVnaW4gPGh0dHBzOi8vcHlwaS5weXRob24ub3Jn
L3B5cGkvcHl0ZXN0LXhkaXN0PmBfIGluc3RhbGxlZAoreW91IHdpbGwgbm93IGFsd2F5cyBwZXJm
b3JtIHRlc3QgcnVucyB1c2luZyBhIG51bWJlcgorb2Ygc3VicHJvY2Vzc2VzIGNsb3NlIHRvIHlv
dXIgQ1BVLiBSdW5uaW5nIGluIGFuIGVtcHR5CitkaXJlY3Rvcnkgd2l0aCB0aGUgYWJvdmUgY29u
ZnRlc3QucHk6OgorCisgICAgJCBweXRlc3QKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09
PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAg
cGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBw
bHVnZ3ktMC54LnkKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAg
IGNvbGxlY3RlZCAwIGl0ZW1zCisgICAgCisgICAgPT09PT09PT09PT09PT09PT09PT09PT0gbm8g
dGVzdHMgcmFuIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBf
YGV4Y29udHJvbHNraXBgOgorCitDb250cm9sIHNraXBwaW5nIG9mIHRlc3RzIGFjY29yZGluZyB0
byBjb21tYW5kIGxpbmUgb3B0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiByZWdlbmRvYzp3aXBlCisKK0hlcmUg
aXMgYSBgYGNvbmZ0ZXN0LnB5YGAgZmlsZSBhZGRpbmcgYSBgYC0tcnVuc2xvd2BgIGNvbW1hbmQK
K2xpbmUgb3B0aW9uIHRvIGNvbnRyb2wgc2tpcHBpbmcgb2YgYGBweXRlc3QubWFyay5zbG93YGAg
bWFya2VkIHRlc3RzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAjIGNvbnRlbnQg
b2YgY29uZnRlc3QucHkKKworICAgIGltcG9ydCBweXRlc3QKKyAgICBkZWYgcHl0ZXN0X2FkZG9w
dGlvbihwYXJzZXIpOgorICAgICAgICBwYXJzZXIuYWRkb3B0aW9uKCItLXJ1bnNsb3ciLCBhY3Rp
b249InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2Us
IGhlbHA9InJ1biBzbG93IHRlc3RzIikKKworICAgIGRlZiBweXRlc3RfY29sbGVjdGlvbl9tb2Rp
ZnlpdGVtcyhjb25maWcsIGl0ZW1zKToKKyAgICAgICAgaWYgY29uZmlnLmdldG9wdGlvbigiLS1y
dW5zbG93Iik6CisgICAgICAgICAgICAjIC0tcnVuc2xvdyBnaXZlbiBpbiBjbGk6IGRvIG5vdCBz
a2lwIHNsb3cgdGVzdHMKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBza2lwX3Nsb3cgPSBw
eXRlc3QubWFyay5za2lwKHJlYXNvbj0ibmVlZCAtLXJ1bnNsb3cgb3B0aW9uIHRvIHJ1biIpCisg
ICAgICAgIGZvciBpdGVtIGluIGl0ZW1zOgorICAgICAgICAgICAgaWYgInNsb3ciIGluIGl0ZW0u
a2V5d29yZHM6CisgICAgICAgICAgICAgICAgaXRlbS5hZGRfbWFya2VyKHNraXBfc2xvdykKKwor
V2UgY2FuIG5vdyB3cml0ZSBhIHRlc3QgbW9kdWxlIGxpa2UgdGhpczoKKworLi4gY29kZS1ibG9j
azo6IHB5dGhvbgorCisgICAgIyBjb250ZW50IG9mIHRlc3RfbW9kdWxlLnB5CisgICAgaW1wb3J0
IHB5dGVzdAorCisKKyAgICBkZWYgdGVzdF9mdW5jX2Zhc3QoKToKKyAgICAgICAgcGFzcworCisK
KyAgICBAcHl0ZXN0Lm1hcmsuc2xvdworICAgIGRlZiB0ZXN0X2Z1bmNfc2xvdygpOgorICAgICAg
ICBwYXNzCisKK2FuZCB3aGVuIHJ1bm5pbmcgaXQgd2lsbCBzZWUgYSBza2lwcGVkICJzbG93IiB0
ZXN0OjoKKworICAgICQgcHl0ZXN0IC1ycyAgICAjICItcnMiIG1lYW5zIHJlcG9ydCBkZXRhaWxz
IG9uIHRoZSBsaXR0bGUgJ3MnCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qg
c2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3Jt
IGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAu
eC55CisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBjb2xsZWN0
ZWQgMiBpdGVtcworICAgIAorICAgIHRlc3RfbW9kdWxlLnB5IC5zICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgID09PT09PT09PT09
PT09PT09PT09PT09PT0gc2hvcnQgdGVzdCBzdW1tYXJ5IGluZm8gPT09PT09PT09PT09PT09PT09
PT09PT09PT0KKyAgICBTS0lQIFsxXSB0ZXN0X21vZHVsZS5weTo4OiBuZWVkIC0tcnVuc2xvdyBv
cHRpb24gdG8gcnVuCisgICAgCisgICAgPT09PT09PT09PT09PT09PT09PSAxIHBhc3NlZCwgMSBz
a2lwcGVkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PQorCitPciBydW4gaXQg
aW5jbHVkaW5nIHRoZSBgYHNsb3dgYCBtYXJrZWQgdGVzdDo6CisKKyAgICAkIHB5dGVzdCAtLXJ1
bnNsb3cKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0
cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0
aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICByb290
ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIGNvbGxlY3RlZCAyIGl0ZW1zCisg
ICAgCisgICAgdGVzdF9tb2R1bGUucHkgLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCisgICAgCisgICAgPT09PT09PT09PT09PT09PT09
PT09PT09PSAyIHBhc3NlZCBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09PT09PT09
PQorCitXcml0aW5nIHdlbGwgaW50ZWdyYXRlZCBhc3NlcnRpb24gaGVscGVycworLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gcmVnZW5kb2M6
d2lwZQorCitJZiB5b3UgaGF2ZSBhIHRlc3QgaGVscGVyIGZ1bmN0aW9uIGNhbGxlZCBmcm9tIGEg
dGVzdCB5b3UgY2FuCit1c2UgdGhlIGBgcHl0ZXN0LmZhaWxgYCBtYXJrZXIgdG8gZmFpbCBhIHRl
c3Qgd2l0aCBhIGNlcnRhaW4gbWVzc2FnZS4KK1RoZSB0ZXN0IHN1cHBvcnQgZnVuY3Rpb24gd2ls
bCBub3Qgc2hvdyB1cCBpbiB0aGUgdHJhY2ViYWNrIGlmIHlvdQorc2V0IHRoZSBgYF9fdHJhY2Vi
YWNraGlkZV9fYGAgb3B0aW9uIHNvbWV3aGVyZSBpbiB0aGUgaGVscGVyIGZ1bmN0aW9uLgorRXhh
bXBsZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgIyBjb250ZW50IG9mIHRlc3Rf
Y2hlY2tjb25maWcucHkKKyAgICBpbXBvcnQgcHl0ZXN0CisgICAgZGVmIGNoZWNrY29uZmlnKHgp
OgorICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKKyAgICAgICAgaWYgbm90IGhhc2F0
dHIoeCwgImNvbmZpZyIpOgorICAgICAgICAgICAgcHl0ZXN0LmZhaWwoIm5vdCBjb25maWd1cmVk
OiAlcyIgJSh4LCkpCisKKyAgICBkZWYgdGVzdF9zb21ldGhpbmcoKToKKyAgICAgICAgY2hlY2tj
b25maWcoNDIpCisKK1RoZSBgYF9fdHJhY2ViYWNraGlkZV9fYGAgc2V0dGluZyBpbmZsdWVuY2Vz
IGBgcHl0ZXN0YGAgc2hvd2luZworb2YgdHJhY2ViYWNrczogdGhlIGBgY2hlY2tjb25maWdgYCBm
dW5jdGlvbiB3aWxsIG5vdCBiZSBzaG93bgordW5sZXNzIHRoZSBgYC0tZnVsbC10cmFjZWBgIGNv
bW1hbmQgbGluZSBvcHRpb24gaXMgc3BlY2lmaWVkLgorTGV0J3MgcnVuIG91ciBsaXR0bGUgZnVu
Y3Rpb246OgorCisgICAgJCBweXRlc3QgLXEgdGVzdF9jaGVja2NvbmZpZy5weQorICAgIEYgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFsxMDAlXQorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBGQUlM
VVJFUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18gdGVzdF9zb21ldGhpbmcgX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCisgICAgCisgICAgICAgIGRlZiB0ZXN0X3NvbWV0aGluZygpOgorICAgID4gICAgICAg
Y2hlY2tjb25maWcoNDIpCisgICAgRSAgICAgICBGYWlsZWQ6IG5vdCBjb25maWd1cmVkOiA0Mgor
ICAgIAorICAgIHRlc3RfY2hlY2tjb25maWcucHk6ODogRmFpbGVkCisgICAgMSBmYWlsZWQgaW4g
MC4xMiBzZWNvbmRzCisKK0lmIHlvdSBvbmx5IHdhbnQgdG8gaGlkZSBjZXJ0YWluIGV4Y2VwdGlv
bnMsIHlvdSBjYW4gc2V0IGBgX190cmFjZWJhY2toaWRlX19gYAordG8gYSBjYWxsYWJsZSB3aGlj
aCBnZXRzIHRoZSBgYEV4Y2VwdGlvbkluZm9gYCBvYmplY3QuIFlvdSBjYW4gZm9yIGV4YW1wbGUg
dXNlCit0aGlzIHRvIG1ha2Ugc3VyZSB1bmV4cGVjdGVkIGV4Y2VwdGlvbiB0eXBlcyBhcmVuJ3Qg
aGlkZGVuOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBpbXBvcnQgb3BlcmF0b3IK
KyAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICBjbGFzcyBDb25maWdFeGNlcHRpb24oRXhjZXB0aW9u
KToKKyAgICAgICAgcGFzcworCisgICAgZGVmIGNoZWNrY29uZmlnKHgpOgorICAgICAgICBfX3Ry
YWNlYmFja2hpZGVfXyA9IG9wZXJhdG9yLm1ldGhvZGNhbGxlcignZXJyaXNpbnN0YW5jZScsIENv
bmZpZ0V4Y2VwdGlvbikKKyAgICAgICAgaWYgbm90IGhhc2F0dHIoeCwgImNvbmZpZyIpOgorICAg
ICAgICAgICAgcmFpc2UgQ29uZmlnRXhjZXB0aW9uKCJub3QgY29uZmlndXJlZDogJXMiICUoeCwp
KQorCisgICAgZGVmIHRlc3Rfc29tZXRoaW5nKCk6CisgICAgICAgIGNoZWNrY29uZmlnKDQyKQor
CitUaGlzIHdpbGwgYXZvaWQgaGlkaW5nIHRoZSBleGNlcHRpb24gdHJhY2ViYWNrIG9uIHVucmVs
YXRlZCBleGNlcHRpb25zIChpLmUuCitidWdzIGluIGFzc2VydGlvbiBoZWxwZXJzKS4KKworCitE
ZXRlY3QgaWYgcnVubmluZyBmcm9tIHdpdGhpbiBhIHB5dGVzdCBydW4KKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIHJl
Z2VuZG9jOndpcGUKKworVXN1YWxseSBpdCBpcyBhIGJhZCBpZGVhIHRvIG1ha2UgYXBwbGljYXRp
b24gY29kZQorYmVoYXZlIGRpZmZlcmVudGx5IGlmIGNhbGxlZCBmcm9tIGEgdGVzdC4gIEJ1dCBp
ZiB5b3UKK2Fic29sdXRlbHkgbXVzdCBmaW5kIG91dCBpZiB5b3VyIGFwcGxpY2F0aW9uIGNvZGUg
aXMKK3J1bm5pbmcgZnJvbSBhIHRlc3QgeW91IGNhbiBkbyBzb21ldGhpbmcgbGlrZSB0aGlzOgor
CisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAjIGNvbnRlbnQgb2YgY29uZnRlc3QucHkK
KworICAgIGRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6CisgICAgICAgIGltcG9ydCBzeXMK
KyAgICAgICAgc3lzLl9jYWxsZWRfZnJvbV90ZXN0ID0gVHJ1ZQorCisgICAgZGVmIHB5dGVzdF91
bmNvbmZpZ3VyZShjb25maWcpOgorICAgICAgICBpbXBvcnQgc3lzCisgICAgICAgIGRlbCBzeXMu
X2NhbGxlZF9mcm9tX3Rlc3QKKworYW5kIHRoZW4gY2hlY2sgZm9yIHRoZSBgYHN5cy5fY2FsbGVk
X2Zyb21fdGVzdGBgIGZsYWc6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGlmIGhh
c2F0dHIoc3lzLCAnX2NhbGxlZF9mcm9tX3Rlc3QnKToKKyAgICAgICAgIyBjYWxsZWQgZnJvbSB3
aXRoaW4gYSB0ZXN0IHJ1bgorICAgIGVsc2U6CisgICAgICAgICMgY2FsbGVkICJub3JtYWxseSIK
KworYWNjb3JkaW5nbHkgaW4geW91ciBhcHBsaWNhdGlvbi4gIEl0J3MgYWxzbyBhIGdvb2QgaWRl
YQordG8gdXNlIHlvdXIgb3duIGFwcGxpY2F0aW9uIG1vZHVsZSByYXRoZXIgdGhhbiBgYHN5c2Bg
Citmb3IgaGFuZGxpbmcgZmxhZy4KKworQWRkaW5nIGluZm8gdG8gdGVzdCByZXBvcnQgaGVhZGVy
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCisuLiByZWdlbmRvYzp3aXBlCisKK0l0J3MgZWFzeSB0byBwcmVzZW50IGV4dHJh
IGluZm9ybWF0aW9uIGluIGEgYGBweXRlc3RgYCBydW46CisKKy4uIGNvZGUtYmxvY2s6OiBweXRo
b24KKworICAgICMgY29udGVudCBvZiBjb25mdGVzdC5weQorCisgICAgZGVmIHB5dGVzdF9yZXBv
cnRfaGVhZGVyKGNvbmZpZyk6CisgICAgICAgIHJldHVybiAicHJvamVjdCBkZXBzOiBteWxpYi0x
LjEiCisKK3doaWNoIHdpbGwgYWRkIHRoZSBzdHJpbmcgdG8gdGhlIHRlc3QgaGVhZGVyIGFjY29y
ZGluZ2x5OjoKKworICAgICQgcHl0ZXN0CisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09
IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBs
YXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1
Z2d5LTAueC55CisgICAgcHJvamVjdCBkZXBzOiBteWxpYi0xLjEKKyAgICByb290ZGlyOiAkUkVH
RU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIGNvbGxlY3RlZCAwIGl0ZW1zCisgICAgCisgICAg
PT09PT09PT09PT09PT09PT09PT09PT0gbm8gdGVzdHMgcmFuIGluIDAuMTIgc2Vjb25kcyA9PT09
PT09PT09PT09PT09PT09PT09PQorCisuLiByZWdlbmRvYzp3aXBlCisKK0l0IGlzIGFsc28gcG9z
c2libGUgdG8gcmV0dXJuIGEgbGlzdCBvZiBzdHJpbmdzIHdoaWNoIHdpbGwgYmUgY29uc2lkZXJl
ZCBhcyBzZXZlcmFsCitsaW5lcyBvZiBpbmZvcm1hdGlvbi4gWW91IG1heSBjb25zaWRlciBgYGNv
bmZpZy5nZXRvcHRpb24oJ3ZlcmJvc2UnKWBgIGluIG9yZGVyIHRvCitkaXNwbGF5IG1vcmUgaW5m
b3JtYXRpb24gaWYgYXBwbGljYWJsZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAg
IyBjb250ZW50IG9mIGNvbmZ0ZXN0LnB5CisKKyAgICBkZWYgcHl0ZXN0X3JlcG9ydF9oZWFkZXIo
Y29uZmlnKToKKyAgICAgICAgaWYgY29uZmlnLmdldG9wdGlvbigndmVyYm9zZScpID4gMDoKKyAg
ICAgICAgICAgIHJldHVybiBbImluZm8xOiBkaWQgeW91IGtub3cgdGhhdCAuLi4iLCAiZGlkIHlv
dT8iXQorCit3aGljaCB3aWxsIGFkZCBpbmZvIG9ubHkgd2hlbiBydW4gd2l0aCAiLS12Ijo6CisK
KyAgICAkIHB5dGVzdCAtdgorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNl
c3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBwbGF0Zm9ybSBs
aW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngu
eSAtLSAkUFlUSE9OX1BSRUZJWC9iaW4vcHl0aG9uMy41CisgICAgY2FjaGVkaXI6IC5jYWNoZQor
ICAgIGluZm8xOiBkaWQgeW91IGtub3cgdGhhdCAuLi4KKyAgICBkaWQgeW91PworICAgIHJvb3Rk
aXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgY29sbGVjdGluZyAuLi4gY29sbGVj
dGVkIDAgaXRlbXMKKyAgICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PSBubyB0ZXN0cyBy
YW4gaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09CisKK2FuZCBub3RoaW5n
IHdoZW4gcnVuIHBsYWlubHk6OgorCisgICAgJCBweXRlc3QKKyAgICA9PT09PT09PT09PT09PT09
PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09
PT09CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5
LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICByb290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlm
aWxlOgorICAgIGNvbGxlY3RlZCAwIGl0ZW1zCisgICAgCisgICAgPT09PT09PT09PT09PT09PT09
PT09PT0gbm8gdGVzdHMgcmFuIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT09
PQorCitwcm9maWxpbmcgdGVzdCBkdXJhdGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworLi4gcmVnZW5kb2M6d2lwZQorCisuLiB2ZXJzaW9uYWRkZWQ6IDIuMgorCitJZiB5b3UgaGF2
ZSBhIHNsb3cgcnVubmluZyBsYXJnZSB0ZXN0IHN1aXRlIHlvdSBtaWdodCB3YW50IHRvIGZpbmQK
K291dCB3aGljaCB0ZXN0cyBhcmUgdGhlIHNsb3dlc3QuIExldCdzIG1ha2UgYW4gYXJ0aWZpY2lh
bCB0ZXN0IHN1aXRlOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAjIGNvbnRlbnQg
b2YgdGVzdF9zb21lX2FyZV9zbG93LnB5CisgICAgaW1wb3J0IHRpbWUKKworICAgIGRlZiB0ZXN0
X2Z1bmNmYXN0KCk6CisgICAgICAgIHRpbWUuc2xlZXAoMC4xKQorCisgICAgZGVmIHRlc3RfZnVu
Y3Nsb3cxKCk6CisgICAgICAgIHRpbWUuc2xlZXAoMC4yKQorCisgICAgZGVmIHRlc3RfZnVuY3Ns
b3cyKCk6CisgICAgICAgIHRpbWUuc2xlZXAoMC4zKQorCitOb3cgd2UgY2FuIHByb2ZpbGUgd2hp
Y2ggdGVzdCBmdW5jdGlvbnMgZXhlY3V0ZSB0aGUgc2xvd2VzdDo6CisKKyAgICAkIHB5dGVzdCAt
LWR1cmF0aW9ucz0zCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lv
biBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4
IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55Cisg
ICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBjb2xsZWN0ZWQgMyBp
dGVtcworICAgIAorICAgIHRlc3Rfc29tZV9hcmVfc2xvdy5weSAuLi4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgIAorICAgID09PT09PT09PT09
PT09PT09PT09PT09PT0gc2xvd2VzdCAzIHRlc3QgZHVyYXRpb25zID09PT09PT09PT09PT09PT09
PT09PT09PT0KKyAgICAwLjMwcyBjYWxsICAgICB0ZXN0X3NvbWVfYXJlX3Nsb3cucHk6OnRlc3Rf
ZnVuY3Nsb3cyCisgICAgMC4yMHMgY2FsbCAgICAgdGVzdF9zb21lX2FyZV9zbG93LnB5Ojp0ZXN0
X2Z1bmNzbG93MQorICAgIDAuMTBzIGNhbGwgICAgIHRlc3Rfc29tZV9hcmVfc2xvdy5weTo6dGVz
dF9mdW5jZmFzdAorICAgID09PT09PT09PT09PT09PT09PT09PT09PT0gMyBwYXNzZWQgaW4gMC4x
MiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09PT0KKworaW5jcmVtZW50YWwgdGVzdGlu
ZyAtIHRlc3Qgc3RlcHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorCisuLiByZWdlbmRvYzp3aXBlCisKK1NvbWV0aW1lcyB5b3UgbWF5IGhhdmUg
YSB0ZXN0aW5nIHNpdHVhdGlvbiB3aGljaCBjb25zaXN0cyBvZiBhIHNlcmllcworb2YgdGVzdCBz
dGVwcy4gIElmIG9uZSBzdGVwIGZhaWxzIGl0IG1ha2VzIG5vIHNlbnNlIHRvIGV4ZWN1dGUgZnVy
dGhlcgorc3RlcHMgYXMgdGhleSBhcmUgYWxsIGV4cGVjdGVkIHRvIGZhaWwgYW55d2F5IGFuZCB0
aGVpciB0cmFjZWJhY2tzCithZGQgbm8gaW5zaWdodC4gIEhlcmUgaXMgYSBzaW1wbGUgYGBjb25m
dGVzdC5weWBgIGZpbGUgd2hpY2ggaW50cm9kdWNlcworYW4gYGBpbmNyZW1lbnRhbGBgIG1hcmtl
ciB3aGljaCBpcyB0byBiZSB1c2VkIG9uIGNsYXNzZXM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRo
b24KKworICAgICMgY29udGVudCBvZiBjb25mdGVzdC5weQorCisgICAgaW1wb3J0IHB5dGVzdAor
CisgICAgZGVmIHB5dGVzdF9ydW50ZXN0X21ha2VyZXBvcnQoaXRlbSwgY2FsbCk6CisgICAgICAg
IGlmICJpbmNyZW1lbnRhbCIgaW4gaXRlbS5rZXl3b3JkczoKKyAgICAgICAgICAgIGlmIGNhbGwu
ZXhjaW5mbyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBwYXJlbnQgPSBpdGVtLnBhcmVu
dAorICAgICAgICAgICAgICAgIHBhcmVudC5fcHJldmlvdXNmYWlsZWQgPSBpdGVtCisKKyAgICBk
ZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoaXRlbSk6CisgICAgICAgIGlmICJpbmNyZW1lbnRhbCIg
aW4gaXRlbS5rZXl3b3JkczoKKyAgICAgICAgICAgIHByZXZpb3VzZmFpbGVkID0gZ2V0YXR0cihp
dGVtLnBhcmVudCwgIl9wcmV2aW91c2ZhaWxlZCIsIE5vbmUpCisgICAgICAgICAgICBpZiBwcmV2
aW91c2ZhaWxlZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBweXRlc3QueGZhaWwoInBy
ZXZpb3VzIHRlc3QgZmFpbGVkICglcykiICVwcmV2aW91c2ZhaWxlZC5uYW1lKQorCitUaGVzZSB0
d28gaG9vayBpbXBsZW1lbnRhdGlvbnMgd29yayB0b2dldGhlciB0byBhYm9ydCBpbmNyZW1lbnRh
bC1tYXJrZWQKK3Rlc3RzIGluIGEgY2xhc3MuICBIZXJlIGlzIGEgdGVzdCBtb2R1bGUgZXhhbXBs
ZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgIyBjb250ZW50IG9mIHRlc3Rfc3Rl
cC5weQorCisgICAgaW1wb3J0IHB5dGVzdAorCisgICAgQHB5dGVzdC5tYXJrLmluY3JlbWVudGFs
CisgICAgY2xhc3MgVGVzdFVzZXJIYW5kbGluZyhvYmplY3QpOgorICAgICAgICBkZWYgdGVzdF9s
b2dpbihzZWxmKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZGVmIHRlc3RfbW9kaWZpY2F0
aW9uKHNlbGYpOgorICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgZGVmIHRlc3RfZGVsZXRp
b24oc2VsZik6CisgICAgICAgICAgICBwYXNzCisKKyAgICBkZWYgdGVzdF9ub3JtYWwoKToKKyAg
ICAgICAgcGFzcworCitJZiB3ZSBydW4gdGhpczo6CisKKyAgICAkIHB5dGVzdCAtcngKKyAgICA9
PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBw
eXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICByb290ZGlyOiAkUkVHRU5E
T0NfVE1QRElSLCBpbmlmaWxlOgorICAgIGNvbGxlY3RlZCA0IGl0ZW1zCisgICAgCisgICAgdGVz
dF9zdGVwLnB5IC5GeC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgWzEwMCVdCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PSBzaG9ydCB0ZXN0
IHN1bW1hcnkgaW5mbyA9PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIFhGQUlMIHRlc3Rf
c3RlcC5weTo6VGVzdFVzZXJIYW5kbGluZzo6KCk6OnRlc3RfZGVsZXRpb24KKyAgICAgIHJlYXNv
bjogcHJldmlvdXMgdGVzdCBmYWlsZWQgKHRlc3RfbW9kaWZpY2F0aW9uKQorICAgIAorICAgID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KKyAgICBfX19fX19fX19fX19fX19fX19fXyBUZXN0VXNlckhhbmRs
aW5nLnRlc3RfbW9kaWZpY2F0aW9uIF9fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgc2Vs
ZiA9IDx0ZXN0X3N0ZXAuVGVzdFVzZXJIYW5kbGluZyBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAg
ICAKKyAgICAgICAgZGVmIHRlc3RfbW9kaWZpY2F0aW9uKHNlbGYpOgorICAgID4gICAgICAgYXNz
ZXJ0IDAKKyAgICBFICAgICAgIGFzc2VydCAwCisgICAgCisgICAgdGVzdF9zdGVwLnB5Ojk6IEFz
c2VydGlvbkVycm9yCisgICAgPT09PT09PT09PT09PT0gMSBmYWlsZWQsIDIgcGFzc2VkLCAxIHhm
YWlsZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PQorCitXZSdsbCBzZWUgdGhhdCBg
YHRlc3RfZGVsZXRpb25gYCB3YXMgbm90IGV4ZWN1dGVkIGJlY2F1c2UgYGB0ZXN0X21vZGlmaWNh
dGlvbmBgCitmYWlsZWQuICBJdCBpcyByZXBvcnRlZCBhcyBhbiAiZXhwZWN0ZWQgZmFpbHVyZSIu
CisKKworUGFja2FnZS9EaXJlY3RvcnktbGV2ZWwgZml4dHVyZXMgKHNldHVwcykKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworSWYgeW91
IGhhdmUgbmVzdGVkIHRlc3QgZGlyZWN0b3JpZXMsIHlvdSBjYW4gaGF2ZSBwZXItZGlyZWN0b3J5
IGZpeHR1cmUgc2NvcGVzCitieSBwbGFjaW5nIGZpeHR1cmUgZnVuY3Rpb25zIGluIGEgYGBjb25m
dGVzdC5weWBgIGZpbGUgaW4gdGhhdCBkaXJlY3RvcnkKK1lvdSBjYW4gdXNlIGFsbCB0eXBlcyBv
ZiBmaXh0dXJlcyBpbmNsdWRpbmcgOnJlZjpgYXV0b3VzZSBmaXh0dXJlcworPGF1dG91c2UgZml4
dHVyZXM+YCB3aGljaCBhcmUgdGhlIGVxdWl2YWxlbnQgb2YgeFVuaXQncyBzZXR1cC90ZWFyZG93
bgorY29uY2VwdC4gIEl0J3MgaG93ZXZlciByZWNvbW1lbmRlZCB0byBoYXZlIGV4cGxpY2l0IGZp
eHR1cmUgcmVmZXJlbmNlcyBpbiB5b3VyCit0ZXN0cyBvciB0ZXN0IGNsYXNzZXMgcmF0aGVyIHRo
YW4gcmVseWluZyBvbiBpbXBsaWNpdGx5IGV4ZWN1dGluZworc2V0dXAvdGVhcmRvd24gZnVuY3Rp
b25zLCBlc3BlY2lhbGx5IGlmIHRoZXkgYXJlIGZhciBhd2F5IGZyb20gdGhlIGFjdHVhbCB0ZXN0
cy4KKworSGVyZSBpcyBhbiBleGFtcGxlIGZvciBtYWtpbmcgYSBgYGRiYGAgZml4dHVyZSBhdmFp
bGFibGUgaW4gYSBkaXJlY3Rvcnk6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgICMg
Y29udGVudCBvZiBhL2NvbmZ0ZXN0LnB5CisgICAgaW1wb3J0IHB5dGVzdAorCisgICAgY2xhc3Mg
REIob2JqZWN0KToKKyAgICAgICAgcGFzcworCisgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJz
ZXNzaW9uIikKKyAgICBkZWYgZGIoKToKKyAgICAgICAgcmV0dXJuIERCKCkKKworYW5kIHRoZW4g
YSB0ZXN0IG1vZHVsZSBpbiB0aGF0IGRpcmVjdG9yeToKKworLi4gY29kZS1ibG9jazo6IHB5dGhv
bgorCisgICAgIyBjb250ZW50IG9mIGEvdGVzdF9kYi5weQorICAgIGRlZiB0ZXN0X2ExKGRiKToK
KyAgICAgICAgYXNzZXJ0IDAsIGRiICAjIHRvIHNob3cgdmFsdWUKKworYW5vdGhlciB0ZXN0IG1v
ZHVsZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgIyBjb250ZW50IG9mIGEvdGVz
dF9kYjIucHkKKyAgICBkZWYgdGVzdF9hMihkYik6CisgICAgICAgIGFzc2VydCAwLCBkYiAgIyB0
byBzaG93IHZhbHVlCisKK2FuZCB0aGVuIGEgbW9kdWxlIGluIGEgc2lzdGVyIGRpcmVjdG9yeSB3
aGljaCB3aWxsIG5vdCBzZWUKK3RoZSBgYGRiYGAgZml4dHVyZToKKworLi4gY29kZS1ibG9jazo6
IHB5dGhvbgorCisgICAgIyBjb250ZW50IG9mIGIvdGVzdF9lcnJvci5weQorICAgIGRlZiB0ZXN0
X3Jvb3QoZGIpOiAgIyBubyBkYiBoZXJlLCB3aWxsIGVycm9yIG91dAorICAgICAgICBwYXNzCisK
K1dlIGNhbiBydW4gdGhpczo6CisKKyAgICAkIHB5dGVzdAorICAgID09PT09PT09PT09PT09PT09
PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHkt
MS54LnksIHBsdWdneS0wLngueQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZp
bGU6CisgICAgY29sbGVjdGVkIDcgaXRlbXMKKyAgICAKKyAgICB0ZXN0X3N0ZXAucHkgLkZ4LiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbIDU3JV0K
KyAgICBhL3Rlc3RfZGIucHkgRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbIDcxJV0KKyAgICBhL3Rlc3RfZGIyLnB5IEYgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbIDg1JV0KKyAgICBiL3Rl
c3RfZXJyb3IucHkgRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbMTAwJV0KKyAgICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09IEVSUk9SUyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgX19fX19f
X19fX19fX19fX19fX19fX18gRVJST1IgYXQgc2V0dXAgb2YgdGVzdF9yb290IF9fX19fX19fX19f
X19fX19fX19fX19fXworICAgIGZpbGUgJFJFR0VORE9DX1RNUERJUi9iL3Rlc3RfZXJyb3IucHks
IGxpbmUgMQorICAgICAgZGVmIHRlc3Rfcm9vdChkYik6ICAjIG5vIGRiIGhlcmUsIHdpbGwgZXJy
b3Igb3V0CisgICAgRSAgICAgICBmaXh0dXJlICdkYicgbm90IGZvdW5kCisgICAgPiAgICAgICBh
dmFpbGFibGUgZml4dHVyZXM6IGNhY2hlLCBjYXBmZCwgY2FwZmRiaW5hcnksIGNhcGxvZywgY2Fw
c3lzLCBjYXBzeXNiaW5hcnksIGRvY3Rlc3RfbmFtZXNwYWNlLCBtb25rZXlwYXRjaCwgcHl0ZXN0
Y29uZmlnLCByZWNvcmRfeG1sX3Byb3BlcnR5LCByZWN3YXJuLCB0bXBkaXIsIHRtcGRpcl9mYWN0
b3J5CisgICAgPiAgICAgICB1c2UgJ3B5dGVzdCAtLWZpeHR1cmVzIFt0ZXN0cGF0aF0nIGZvciBo
ZWxwIG9uIHRoZW0uCisgICAgCisgICAgJFJFR0VORE9DX1RNUERJUi9iL3Rlc3RfZXJyb3IucHk6
MQorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBfX19fX19fX19fX19fX19fX19fXyBUZXN0
VXNlckhhbmRsaW5nLnRlc3RfbW9kaWZpY2F0aW9uIF9fX19fX19fX19fX19fX19fX19fCisgICAg
CisgICAgc2VsZiA9IDx0ZXN0X3N0ZXAuVGVzdFVzZXJIYW5kbGluZyBvYmplY3QgYXQgMHhkZWFk
YmVlZj4KKyAgICAKKyAgICAgICAgZGVmIHRlc3RfbW9kaWZpY2F0aW9uKHNlbGYpOgorICAgID4g
ICAgICAgYXNzZXJ0IDAKKyAgICBFICAgICAgIGFzc2VydCAwCisgICAgCisgICAgdGVzdF9zdGVw
LnB5Ojk6IEFzc2VydGlvbkVycm9yCisgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fIHRlc3RfYTEgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXworICAgIAorICAg
IGRiID0gPGNvbmZ0ZXN0LkRCIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIAorICAgICAgICBk
ZWYgdGVzdF9hMShkYik6CisgICAgPiAgICAgICBhc3NlcnQgMCwgZGIgICMgdG8gc2hvdyB2YWx1
ZQorICAgIEUgICAgICAgQXNzZXJ0aW9uRXJyb3I6IDxjb25mdGVzdC5EQiBvYmplY3QgYXQgMHhk
ZWFkYmVlZj4KKyAgICBFICAgICAgIGFzc2VydCAwCisgICAgCisgICAgYS90ZXN0X2RiLnB5OjI6
IEFzc2VydGlvbkVycm9yCisgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIHRl
c3RfYTIgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXworICAgIAorICAgIGRiID0g
PGNvbmZ0ZXN0LkRCIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIAorICAgICAgICBkZWYgdGVz
dF9hMihkYik6CisgICAgPiAgICAgICBhc3NlcnQgMCwgZGIgICMgdG8gc2hvdyB2YWx1ZQorICAg
IEUgICAgICAgQXNzZXJ0aW9uRXJyb3I6IDxjb25mdGVzdC5EQiBvYmplY3QgYXQgMHhkZWFkYmVl
Zj4KKyAgICBFICAgICAgIGFzc2VydCAwCisgICAgCisgICAgYS90ZXN0X2RiMi5weToyOiBBc3Nl
cnRpb25FcnJvcgorICAgID09PT09PT09PT0gMyBmYWlsZWQsIDIgcGFzc2VkLCAxIHhmYWlsZWQs
IDEgZXJyb3IgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT0KKworVGhlIHR3byB0ZXN0IG1vZHVs
ZXMgaW4gdGhlIGBgYWBgIGRpcmVjdG9yeSBzZWUgdGhlIHNhbWUgYGBkYmBgIGZpeHR1cmUgaW5z
dGFuY2UKK3doaWxlIHRoZSBvbmUgdGVzdCBpbiB0aGUgc2lzdGVyLWRpcmVjdG9yeSBgYGJgYCBk
b2Vzbid0IHNlZSBpdC4gIFdlIGNvdWxkIG9mIGNvdXJzZQorYWxzbyBkZWZpbmUgYSBgYGRiYGAg
Zml4dHVyZSBpbiB0aGF0IHNpc3RlciBkaXJlY3RvcnkncyBgYGNvbmZ0ZXN0LnB5YGAgZmlsZS4K
K05vdGUgdGhhdCBlYWNoIGZpeHR1cmUgaXMgb25seSBpbnN0YW50aWF0ZWQgaWYgdGhlcmUgaXMg
YSB0ZXN0IGFjdHVhbGx5IG5lZWRpbmcKK2l0ICh1bmxlc3MgeW91IHVzZSAiYXV0b3VzZSIgZml4
dHVyZSB3aGljaCBhcmUgYWx3YXlzIGV4ZWN1dGVkIGFoZWFkIG9mIHRoZSBmaXJzdCB0ZXN0Citl
eGVjdXRpbmcpLgorCisKK3Bvc3QtcHJvY2VzcyB0ZXN0IHJlcG9ydHMgLyBmYWlsdXJlcworLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0lmIHlvdSB3YW50IHRvIHBv
c3Rwcm9jZXNzIHRlc3QgcmVwb3J0cyBhbmQgbmVlZCBhY2Nlc3MgdG8gdGhlIGV4ZWN1dGluZwor
ZW52aXJvbm1lbnQgeW91IGNhbiBpbXBsZW1lbnQgYSBob29rIHRoYXQgZ2V0cyBjYWxsZWQgd2hl
biB0aGUgdGVzdAorInJlcG9ydCIgb2JqZWN0IGlzIGFib3V0IHRvIGJlIGNyZWF0ZWQuICBIZXJl
IHdlIHdyaXRlIG91dCBhbGwgZmFpbGluZwordGVzdCBjYWxscyBhbmQgYWxzbyBhY2Nlc3MgYSBm
aXh0dXJlIChpZiBpdCB3YXMgdXNlZCBieSB0aGUgdGVzdCkgaW4KK2Nhc2UgeW91IHdhbnQgdG8g
cXVlcnkvbG9vayBhdCBpdCBkdXJpbmcgeW91ciBwb3N0IHByb2Nlc3NpbmcuICBJbiBvdXIKK2Nh
c2Ugd2UganVzdCB3cml0ZSBzb21lIGluZm9ybWF0aW9uIG91dCB0byBhIGBgZmFpbHVyZXNgYCBm
aWxlOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAjIGNvbnRlbnQgb2YgY29uZnRl
c3QucHkKKworICAgIGltcG9ydCBweXRlc3QKKyAgICBpbXBvcnQgb3MucGF0aAorCisgICAgQHB5
dGVzdC5ob29raW1wbCh0cnlmaXJzdD1UcnVlLCBob29rd3JhcHBlcj1UcnVlKQorICAgIGRlZiBw
eXRlc3RfcnVudGVzdF9tYWtlcmVwb3J0KGl0ZW0sIGNhbGwpOgorICAgICAgICAjIGV4ZWN1dGUg
YWxsIG90aGVyIGhvb2tzIHRvIG9idGFpbiB0aGUgcmVwb3J0IG9iamVjdAorICAgICAgICBvdXRj
b21lID0geWllbGQKKyAgICAgICAgcmVwID0gb3V0Y29tZS5nZXRfcmVzdWx0KCkKKworICAgICAg
ICAjIHdlIG9ubHkgbG9vayBhdCBhY3R1YWwgZmFpbGluZyB0ZXN0IGNhbGxzLCBub3Qgc2V0dXAv
dGVhcmRvd24KKyAgICAgICAgaWYgcmVwLndoZW4gPT0gImNhbGwiIGFuZCByZXAuZmFpbGVkOgor
ICAgICAgICAgICAgbW9kZSA9ICJhIiBpZiBvcy5wYXRoLmV4aXN0cygiZmFpbHVyZXMiKSBlbHNl
ICJ3IgorICAgICAgICAgICAgd2l0aCBvcGVuKCJmYWlsdXJlcyIsIG1vZGUpIGFzIGY6CisgICAg
ICAgICAgICAgICAgIyBsZXQncyBhbHNvIGFjY2VzcyBhIGZpeHR1cmUgZm9yIHRoZSBmdW4gb2Yg
aXQKKyAgICAgICAgICAgICAgICBpZiAidG1wZGlyIiBpbiBpdGVtLmZpeHR1cmVuYW1lczoKKyAg
ICAgICAgICAgICAgICAgICAgZXh0cmEgPSAiICglcykiICUgaXRlbS5mdW5jYXJnc1sidG1wZGly
Il0KKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBleHRyYSA9ICIi
CisKKyAgICAgICAgICAgICAgICBmLndyaXRlKHJlcC5ub2RlaWQgKyBleHRyYSArICJcbiIpCisK
KworaWYgeW91IHRoZW4gaGF2ZSBmYWlsaW5nIHRlc3RzOgorCisuLiBjb2RlLWJsb2NrOjogcHl0
aG9uCisKKyAgICAjIGNvbnRlbnQgb2YgdGVzdF9tb2R1bGUucHkKKyAgICBkZWYgdGVzdF9mYWls
MSh0bXBkaXIpOgorICAgICAgICBhc3NlcnQgMAorICAgIGRlZiB0ZXN0X2ZhaWwyKCk6CisgICAg
ICAgIGFzc2VydCAwCisKK2FuZCBydW4gdGhlbTo6CisKKyAgICAkIHB5dGVzdCB0ZXN0X21vZHVs
ZS5weQorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRz
ID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRo
b24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgIHJvb3Rk
aXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgY29sbGVjdGVkIDIgaXRlbXMKKyAg
ICAKKyAgICB0ZXN0X21vZHVsZS5weSBGRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKyAgICAKKyAgICA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0gRkFJTFVSRVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CisgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9mYWlsMSBfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXworICAgIAorICAgIHRtcGRpciA9IGxvY2FsKCdQWVRF
U1RfVE1QRElSL3Rlc3RfZmFpbDEwJykKKyAgICAKKyAgICAgICAgZGVmIHRlc3RfZmFpbDEodG1w
ZGlyKToKKyAgICA+ICAgICAgIGFzc2VydCAwCisgICAgRSAgICAgICBhc3NlcnQgMAorICAgIAor
ICAgIHRlc3RfbW9kdWxlLnB5OjI6IEFzc2VydGlvbkVycm9yCisgICAgX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18gdGVzdF9mYWlsMiBfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXworICAgIAorICAgICAgICBkZWYgdGVzdF9mYWlsMigpOgorICAgID4gICAgICAgYXNzZXJ0
IDAKKyAgICBFICAgICAgIGFzc2VydCAwCisgICAgCisgICAgdGVzdF9tb2R1bGUucHk6NDogQXNz
ZXJ0aW9uRXJyb3IKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09IDIgZmFpbGVkIGluIDAu
MTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT09PT09CisKK3lvdSB3aWxsIGhhdmUgYSAi
ZmFpbHVyZXMiIGZpbGUgd2hpY2ggY29udGFpbnMgdGhlIGZhaWxpbmcgdGVzdCBpZHM6OgorCisg
ICAgJCBjYXQgZmFpbHVyZXMKKyAgICB0ZXN0X21vZHVsZS5weTo6dGVzdF9mYWlsMSAoUFlURVNU
X1RNUERJUi90ZXN0X2ZhaWwxMCkKKyAgICB0ZXN0X21vZHVsZS5weTo6dGVzdF9mYWlsMgorCitN
YWtpbmcgdGVzdCByZXN1bHQgaW5mb3JtYXRpb24gYXZhaWxhYmxlIGluIGZpeHR1cmVzCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CisuLiByZWdlbmRvYzp3aXBlCisKK0lmIHlvdSB3YW50IHRvIG1ha2UgdGVzdCByZXN1bHQgcmVw
b3J0cyBhdmFpbGFibGUgaW4gZml4dHVyZSBmaW5hbGl6ZXJzCitoZXJlIGlzIGEgbGl0dGxlIGV4
YW1wbGUgaW1wbGVtZW50ZWQgdmlhIGEgbG9jYWwgcGx1Z2luOgorCisuLiBjb2RlLWJsb2NrOjog
cHl0aG9uCisKKyAgICAjIGNvbnRlbnQgb2YgY29uZnRlc3QucHkKKworICAgIGltcG9ydCBweXRl
c3QKKworICAgIEBweXRlc3QuaG9va2ltcGwodHJ5Zmlyc3Q9VHJ1ZSwgaG9va3dyYXBwZXI9VHJ1
ZSkKKyAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfbWFrZXJlcG9ydChpdGVtLCBjYWxsKToKKyAgICAg
ICAgIyBleGVjdXRlIGFsbCBvdGhlciBob29rcyB0byBvYnRhaW4gdGhlIHJlcG9ydCBvYmplY3QK
KyAgICAgICAgb3V0Y29tZSA9IHlpZWxkCisgICAgICAgIHJlcCA9IG91dGNvbWUuZ2V0X3Jlc3Vs
dCgpCisKKyAgICAgICAgIyBzZXQgYSByZXBvcnQgYXR0cmlidXRlIGZvciBlYWNoIHBoYXNlIG9m
IGEgY2FsbCwgd2hpY2ggY2FuCisgICAgICAgICMgYmUgInNldHVwIiwgImNhbGwiLCAidGVhcmRv
d24iCisKKyAgICAgICAgc2V0YXR0cihpdGVtLCAicmVwXyIgKyByZXAud2hlbiwgcmVwKQorCisK
KyAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICBkZWYgc29tZXRoaW5nKHJlcXVlc3QpOgorICAgICAg
ICB5aWVsZAorICAgICAgICAjIHJlcXVlc3Qubm9kZSBpcyBhbiAiaXRlbSIgYmVjYXVzZSB3ZSB1
c2UgdGhlIGRlZmF1bHQKKyAgICAgICAgIyAiZnVuY3Rpb24iIHNjb3BlCisgICAgICAgIGlmIHJl
cXVlc3Qubm9kZS5yZXBfc2V0dXAuZmFpbGVkOgorICAgICAgICAgICAgcHJpbnQgKCJzZXR0aW5n
IHVwIGEgdGVzdCBmYWlsZWQhIiwgcmVxdWVzdC5ub2RlLm5vZGVpZCkKKyAgICAgICAgZWxpZiBy
ZXF1ZXN0Lm5vZGUucmVwX3NldHVwLnBhc3NlZDoKKyAgICAgICAgICAgIGlmIHJlcXVlc3Qubm9k
ZS5yZXBfY2FsbC5mYWlsZWQ6CisgICAgICAgICAgICAgICAgcHJpbnQgKCJleGVjdXRpbmcgdGVz
dCBmYWlsZWQiLCByZXF1ZXN0Lm5vZGUubm9kZWlkKQorCisKK2lmIHlvdSB0aGVuIGhhdmUgZmFp
bGluZyB0ZXN0czoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgIyBjb250ZW50IG9m
IHRlc3RfbW9kdWxlLnB5CisKKyAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICBAcHl0ZXN0LmZpeHR1
cmUKKyAgICBkZWYgb3RoZXIoKToKKyAgICAgICAgYXNzZXJ0IDAKKworICAgIGRlZiB0ZXN0X3Nl
dHVwX2ZhaWxzKHNvbWV0aGluZywgb3RoZXIpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgdGVz
dF9jYWxsX2ZhaWxzKHNvbWV0aGluZyk6CisgICAgICAgIGFzc2VydCAwCisKKyAgICBkZWYgdGVz
dF9mYWlsMigpOgorICAgICAgICBhc3NlcnQgMAorCithbmQgcnVuIGl0OjoKKworICAgICQgcHl0
ZXN0IC1zIHRlc3RfbW9kdWxlLnB5CisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRl
c3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRm
b3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5
LTAueC55CisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBjb2xs
ZWN0ZWQgMyBpdGVtcworICAgIAorICAgIHRlc3RfbW9kdWxlLnB5IEVzZXR0aW5nIHVwIGEgdGVz
dCBmYWlsZWQhIHRlc3RfbW9kdWxlLnB5Ojp0ZXN0X3NldHVwX2ZhaWxzCisgICAgRmV4ZWN1dGlu
ZyB0ZXN0IGZhaWxlZCB0ZXN0X21vZHVsZS5weTo6dGVzdF9jYWxsX2ZhaWxzCisgICAgRiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAg
IAorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRVJST1JTID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBfX19fX19fX19fX19fX19fX19fXyBFUlJP
UiBhdCBzZXR1cCBvZiB0ZXN0X3NldHVwX2ZhaWxzIF9fX19fX19fX19fX19fX19fX19fCisgICAg
CisgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICBkZWYgb3RoZXIoKToKKyAgICA+ICAg
ICAgIGFzc2VydCAwCisgICAgRSAgICAgICBhc3NlcnQgMAorICAgIAorICAgIHRlc3RfbW9kdWxl
LnB5OjY6IEFzc2VydGlvbkVycm9yCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09IEZBSUxVUkVTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIF9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fIHRlc3RfY2FsbF9mYWlscyBfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KKyAgICAKKyAgICBzb21ldGhpbmcgPSBOb25lCisgICAgCisgICAgICAg
IGRlZiB0ZXN0X2NhbGxfZmFpbHMoc29tZXRoaW5nKToKKyAgICA+ICAgICAgIGFzc2VydCAwCisg
ICAgRSAgICAgICBhc3NlcnQgMAorICAgIAorICAgIHRlc3RfbW9kdWxlLnB5OjEyOiBBc3NlcnRp
b25FcnJvcgorICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIHRlc3RfZmFpbDIg
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KKyAgICAKKyAgICAgICAgZGVmIHRlc3Rf
ZmFpbDIoKToKKyAgICA+ICAgICAgIGFzc2VydCAwCisgICAgRSAgICAgICBhc3NlcnQgMAorICAg
IAorICAgIHRlc3RfbW9kdWxlLnB5OjE1OiBBc3NlcnRpb25FcnJvcgorICAgID09PT09PT09PT09
PT09PT09PT09IDIgZmFpbGVkLCAxIGVycm9yIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09
PT09PT09PT0KKworWW91J2xsIHNlZSB0aGF0IHRoZSBmaXh0dXJlIGZpbmFsaXplcnMgY291bGQg
dXNlIHRoZSBwcmVjaXNlIHJlcG9ydGluZworaW5mb3JtYXRpb24uCisKK2BgUFlURVNUX0NVUlJF
TlRfVEVTVGBgIGVudmlyb25tZW50IHZhcmlhYmxlCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKKworU29tZXRpbWVz
IGEgdGVzdCBzZXNzaW9uIG1pZ2h0IGdldCBzdHVjayBhbmQgdGhlcmUgbWlnaHQgYmUgbm8gZWFz
eSB3YXkgdG8gZmlndXJlIG91dAord2hpY2ggdGVzdCBnb3Qgc3R1Y2ssIGZvciBleGFtcGxlIGlm
IHB5dGVzdCB3YXMgcnVuIGluIHF1aWV0IG1vZGUgKGBgLXFgYCkgb3IgeW91IGRvbid0IGhhdmUg
YWNjZXNzIHRvIHRoZSBjb25zb2xlCitvdXRwdXQuIFRoaXMgaXMgcGFydGljdWxhcmx5IGEgcHJv
YmxlbSBpZiB0aGUgcHJvYmxlbSBoZWxwcyBvbmx5IHNwb3JhZGljYWxseSwgdGhlIGZhbW91cyAi
Zmxha3kiIGtpbmQgb2YgdGVzdHMuCisKK2BgcHl0ZXN0YGAgc2V0cyBhIGBgUFlURVNUX0NVUlJF
TlRfVEVTVGBgIGVudmlyb25tZW50IHZhcmlhYmxlIHdoZW4gcnVubmluZyB0ZXN0cywgd2hpY2gg
Y2FuIGJlIGluc3BlY3RlZAorYnkgcHJvY2VzcyBtb25pdG9yaW5nIHV0aWxpdGllcyBvciBsaWJy
YXJpZXMgbGlrZSBgcHN1dGlsIDxodHRwczovL3B5cGkucHl0aG9uLm9yZy9weXBpL3BzdXRpbD5g
XyB0byBkaXNjb3ZlciB3aGljaAordGVzdCBnb3Qgc3R1Y2sgaWYgbmVjZXNzYXJ5OgorCisuLiBj
b2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBpbXBvcnQgcHN1dGlsCisKKyAgICBmb3IgcGlkIGlu
IHBzdXRpbC5waWRzKCk6CisgICAgICAgIGVudmlyb24gPSBwc3V0aWwuUHJvY2VzcyhwaWQpLmVu
dmlyb24oKQorICAgICAgICBpZiAnUFlURVNUX0NVUlJFTlRfVEVTVCcgaW4gZW52aXJvbjoKKyAg
ICAgICAgICAgIHByaW50KGYncHl0ZXN0IHByb2Nlc3Mge3BpZH0gcnVubmluZzoge2Vudmlyb25b
IlBZVEVTVF9DVVJSRU5UX1RFU1QiXX0nKQorCitEdXJpbmcgdGhlIHRlc3Qgc2Vzc2lvbiBweXRl
c3Qgd2lsbCBzZXQgYGBQWVRFU1RfQ1VSUkVOVF9URVNUYGAgdG8gdGhlIGN1cnJlbnQgdGVzdAor
OnJlZjpgbm9kZWlkIDxub2RlaWRzPmAgYW5kIHRoZSBjdXJyZW50IHN0YWdlLCB3aGljaCBjYW4g
YmUgYGBzZXR1cGBgLCBgYGNhbGxgYAorYW5kIGBgdGVhcmRvd25gYC4KKworRm9yIGV4YW1wbGUs
IHdoZW4gcnVubmluZyBhIHNpbmdsZSB0ZXN0IGZ1bmN0aW9uIG5hbWVkIGBgdGVzdF9mb29gYCBm
cm9tIGBgZm9vX21vZHVsZS5weWBgLAorYGBQWVRFU1RfQ1VSUkVOVF9URVNUYGAgd2lsbCBiZSBz
ZXQgdG86CisKKyMuIGBgZm9vX21vZHVsZS5weTo6dGVzdF9mb28gKHNldHVwKWBgCisjLiBgYGZv
b19tb2R1bGUucHk6OnRlc3RfZm9vIChjYWxsKWBgCisjLiBgYGZvb19tb2R1bGUucHk6OnRlc3Rf
Zm9vICh0ZWFyZG93bilgYAorCitJbiB0aGF0IG9yZGVyLgorCisuLiBub3RlOjoKKworICAgIFRo
ZSBjb250ZW50cyBvZiBgYFBZVEVTVF9DVVJSRU5UX1RFU1RgYCBpcyBtZWFudCB0byBiZSBodW1h
biByZWFkYWJsZSBhbmQgdGhlIGFjdHVhbCBmb3JtYXQKKyAgICBjYW4gYmUgY2hhbmdlZCBiZXR3
ZWVuIHJlbGVhc2VzIChldmVuIGJ1ZyBmaXhlcykgc28gaXQgc2hvdWxkbid0IGJlIHJlbGllZCBv
biBmb3Igc2NyaXB0aW5nCisgICAgb3IgYXV0b21hdGlvbi4KKworRnJlZXppbmcgcHl0ZXN0IAor
LS0tLS0tLS0tLS0tLS0tCisKK0lmIHlvdSBmcmVlemUgeW91ciBhcHBsaWNhdGlvbiB1c2luZyBh
IHRvb2wgbGlrZQorYFB5SW5zdGFsbGVyIDxodHRwczovL3B5aW5zdGFsbGVyLnJlYWR0aGVkb2Nz
LmlvPmBfCitpbiBvcmRlciB0byBkaXN0cmlidXRlIGl0IHRvIHlvdXIgZW5kLXVzZXJzLCBpdCBp
cyBhIGdvb2QgaWRlYSB0byBhbHNvIHBhY2thZ2UKK3lvdXIgdGVzdCBydW5uZXIgYW5kIHJ1biB5
b3VyIHRlc3RzIHVzaW5nIHRoZSBmcm96ZW4gYXBwbGljYXRpb24uIFRoaXMgd2F5IHBhY2thZ2lu
ZworZXJyb3JzIHN1Y2ggYXMgZGVwZW5kZW5jaWVzIG5vdCBiZWluZyBpbmNsdWRlZCBpbnRvIHRo
ZSBleGVjdXRhYmxlIGNhbiBiZSBkZXRlY3RlZCBlYXJseQord2hpbGUgYWxzbyBhbGxvd2luZyB5
b3UgdG8gc2VuZCB0ZXN0IGZpbGVzIHRvIHVzZXJzIHNvIHRoZXkgY2FuIHJ1biB0aGVtIGluIHRo
ZWlyCittYWNoaW5lcywgd2hpY2ggY2FuIGJlIHVzZWZ1bCB0byBvYnRhaW4gbW9yZSBpbmZvcm1h
dGlvbiBhYm91dCBhIGhhcmQgdG8gcmVwcm9kdWNlIGJ1Zy4KKworRm9ydHVuYXRlbHkgcmVjZW50
IGBgUHlJbnN0YWxsZXJgYCByZWxlYXNlcyBhbHJlYWR5IGhhdmUgYSBjdXN0b20gaG9vaworZm9y
IHB5dGVzdCwgYnV0IGlmIHlvdSBhcmUgdXNpbmcgYW5vdGhlciB0b29sIHRvIGZyZWV6ZSBleGVj
dXRhYmxlcyAKK3N1Y2ggYXMgYGBjeF9mcmVlemVgYCBvciBgYHB5MmV4ZWBgLCB5b3UgY2FuIHVz
ZSBgYHB5dGVzdC5mcmVlemVfaW5jbHVkZXMoKWBgCit0byBvYnRhaW4gdGhlIGZ1bGwgbGlzdCBv
ZiBpbnRlcm5hbCBweXRlc3QgbW9kdWxlcy4gSG93IHRvIGNvbmZpZ3VyZSB0aGUgdG9vbHMKK3Rv
IGZpbmQgdGhlIGludGVybmFsIG1vZHVsZXMgdmFyaWVzIGZyb20gdG9vbCB0byB0b29sLCBob3dl
dmVyLgorCitJbnN0ZWFkIG9mIGZyZWV6aW5nIHRoZSBweXRlc3QgcnVubmVyIGFzIGEgc2VwYXJh
dGUgZXhlY3V0YWJsZSwgeW91IGNhbiBtYWtlIAoreW91ciBmcm96ZW4gcHJvZ3JhbSB3b3JrIGFz
IHRoZSBweXRlc3QgcnVubmVyIGJ5IHNvbWUgY2xldmVyCithcmd1bWVudCBoYW5kbGluZyBkdXJp
bmcgcHJvZ3JhbSBzdGFydHVwLiBUaGlzIGFsbG93cyB5b3UgdG8gCitoYXZlIGEgc2luZ2xlIGV4
ZWN1dGFibGUsIHdoaWNoIGlzIHVzdWFsbHkgbW9yZSBjb252ZW5pZW50LgorCisuLiBjb2RlLWJs
b2NrOjogcHl0aG9uCisKKyAgICAjIGNvbnRlbnRzIG9mIGFwcF9tYWluLnB5CisgICAgaW1wb3J0
IHN5cworCisgICAgaWYgbGVuKHN5cy5hcmd2KSA+IDEgYW5kIHN5cy5hcmd2WzFdID09ICctLXB5
dGVzdCc6CisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgc3lzLmV4aXQocHl0ZXN0Lm1h
aW4oc3lzLmFyZ3ZbMjpdKSkKKyAgICBlbHNlOgorICAgICAgICAjIG5vcm1hbCBhcHBsaWNhdGlv
biBleGVjdXRpb246IGF0IHRoaXMgcG9pbnQgYXJndiBjYW4gYmUgcGFyc2VkCisgICAgICAgICMg
YnkgeW91ciBhcmd1bWVudC1wYXJzaW5nIGxpYnJhcnkgb2YgY2hvaWNlIGFzIHVzdWFsCisgICAg
ICAgIC4uLgorCisKK1RoaXMgYWxsb3dzIHlvdSB0byBleGVjdXRlIHRlc3RzIHVzaW5nIHRoZSBm
cm96ZW4KK2FwcGxpY2F0aW9uIHdpdGggc3RhbmRhcmQgYGBweXRlc3RgYCBjb21tYW5kLWxpbmUg
b3B0aW9uczo6CisKKyAgICAuL2FwcF9tYWluIC0tcHl0ZXN0IC0tdmVyYm9zZSAtLXRiPWxvbmcg
LS1qdW5pdHhtbD1yZXN1bHRzLnhtbCB0ZXN0LXN1aXRlLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2V4YW1wbGUvc3BlY2lhbC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBs
ZS9zcGVjaWFsLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDM3ZTFjYzMwZWExODRhNWMyMzM3MTEwMTNjZDE2
NmYzOTU1ZDY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUv
c3BlY2lhbC5yc3QKQEAgLTAsMCArMSw3MiBAQAorQSBzZXNzaW9uLWZpeHR1cmUgd2hpY2ggY2Fu
IGxvb2sgYXQgYWxsIGNvbGxlY3RlZCB0ZXN0cworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitBIHNlc3Npb24tc2NvcGVk
IGZpeHR1cmUgZWZmZWN0aXZlbHkgaGFzIGFjY2VzcyB0byBhbGwKK2NvbGxlY3RlZCB0ZXN0IGl0
ZW1zLiAgSGVyZSBpcyBhbiBleGFtcGxlIG9mIGEgZml4dHVyZQorZnVuY3Rpb24gd2hpY2ggd2Fs
a3MgYWxsIGNvbGxlY3RlZCB0ZXN0cyBhbmQgbG9va3MKK2lmIHRoZWlyIHRlc3QgY2xhc3MgZGVm
aW5lcyBhIGBgY2FsbG1lYGAgbWV0aG9kIGFuZAorY2FsbHMgaXQ6OgorCisgICAgIyBjb250ZW50
IG9mIGNvbmZ0ZXN0LnB5CisKKyAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICBAcHl0ZXN0LmZpeHR1
cmUoc2NvcGU9InNlc3Npb24iLCBhdXRvdXNlPVRydWUpCisgICAgZGVmIGNhbGxhdHRyX2FoZWFk
X29mX2FsbHRlc3RzKHJlcXVlc3QpOgorICAgICAgICBwcmludCAoImNhbGxhdHRyX2FoZWFkX29m
X2FsbHRlc3RzIGNhbGxlZCIpCisgICAgICAgIHNlZW4gPSBzZXQoW05vbmVdKQorICAgICAgICBz
ZXNzaW9uID0gcmVxdWVzdC5ub2RlCisgICAgICAgIGZvciBpdGVtIGluIHNlc3Npb24uaXRlbXM6
CisgICAgICAgICAgICBjbHMgPSBpdGVtLmdldHBhcmVudChweXRlc3QuQ2xhc3MpCisgICAgICAg
ICAgICBpZiBjbHMgbm90IGluIHNlZW46CisgICAgICAgICAgICAgICAgaWYgaGFzYXR0cihjbHMu
b2JqLCAiY2FsbG1lIik6CisgICAgICAgICAgICAgICAgICAgY2xzLm9iai5jYWxsbWUoKQorICAg
ICAgICAgICAgICAgIHNlZW4uYWRkKGNscykKKwordGVzdCBjbGFzc2VzIG1heSBub3cgZGVmaW5l
IGEgYGBjYWxsbWVgYCBtZXRob2Qgd2hpY2gKK3dpbGwgYmUgY2FsbGVkIGFoZWFkIG9mIHJ1bm5p
bmcgYW55IHRlc3RzOjoKKworICAgICMgY29udGVudCBvZiB0ZXN0X21vZHVsZS5weQorCisgICAg
Y2xhc3MgVGVzdEhlbGxvKG9iamVjdCk6CisgICAgICAgIEBjbGFzc21ldGhvZAorICAgICAgICBk
ZWYgY2FsbG1lKGNscyk6CisgICAgICAgICAgICBwcmludCAoImNhbGxtZSBjYWxsZWQhIikKKwor
ICAgICAgICBkZWYgdGVzdF9tZXRob2QxKHNlbGYpOgorICAgICAgICAgICAgcHJpbnQgKCJ0ZXN0
X21ldGhvZDEgY2FsbGVkIikKKworICAgICAgICBkZWYgdGVzdF9tZXRob2QyKHNlbGYpOgorICAg
ICAgICAgICAgcHJpbnQgKCJ0ZXN0X21ldGhvZDEgY2FsbGVkIikKKworICAgIGNsYXNzIFRlc3RP
dGhlcihvYmplY3QpOgorICAgICAgICBAY2xhc3NtZXRob2QKKyAgICAgICAgZGVmIGNhbGxtZShj
bHMpOgorICAgICAgICAgICAgcHJpbnQgKCJjYWxsbWUgb3RoZXIgY2FsbGVkIikKKyAgICAgICAg
ZGVmIHRlc3Rfb3RoZXIoc2VsZik6CisgICAgICAgICAgICBwcmludCAoInRlc3Qgb3RoZXIiKQor
CisgICAgIyB3b3JrcyB3aXRoIHVuaXR0ZXN0IGFzIHdlbGwgLi4uCisgICAgaW1wb3J0IHVuaXR0
ZXN0CisKKyAgICBjbGFzcyBTb21lVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgICAgIEBj
bGFzc21ldGhvZAorICAgICAgICBkZWYgY2FsbG1lKHNlbGYpOgorICAgICAgICAgICAgcHJpbnQg
KCJTb21lVGVzdCBjYWxsbWUgY2FsbGVkIikKKworICAgICAgICBkZWYgdGVzdF91bml0MShzZWxm
KToKKyAgICAgICAgICAgIHByaW50ICgidGVzdF91bml0MSBtZXRob2QgY2FsbGVkIikKKworSWYg
eW91IHJ1biB0aGlzIHdpdGhvdXQgb3V0cHV0IGNhcHR1cmluZzo6CisKKyAgICAkIHB5dGVzdCAt
cSAtcyB0ZXN0X21vZHVsZS5weQorICAgIGNhbGxhdHRyX2FoZWFkX29mX2FsbHRlc3RzIGNhbGxl
ZAorICAgIGNhbGxtZSBjYWxsZWQhCisgICAgY2FsbG1lIG90aGVyIGNhbGxlZAorICAgIFNvbWVU
ZXN0IGNhbGxtZSBjYWxsZWQKKyAgICB0ZXN0X21ldGhvZDEgY2FsbGVkCisgICAgLnRlc3RfbWV0
aG9kMSBjYWxsZWQKKyAgICAudGVzdCBvdGhlcgorICAgIC50ZXN0X3VuaXQxIG1ldGhvZCBjYWxs
ZWQKKyAgICAuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbMTAwJV0KKyAgICA0IHBhc3NlZCBpbiAwLjEyIHNlY29uZHMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjg2OTUx
ZmU4YjRiZGQzYjRlMmU0ODgzZDAwMjI4MmQ5MDg1OTZlNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjkgQEAK
K1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyBy
ZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQu
CitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0
cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8g
Tk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3Bl
cnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9m
IGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2F0dGljLnJzdAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9leGFtcGxlL2NvbmZ0ZXN0LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1w
bGUvaW5kZXgucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvbWFya2Vycy5yc3QKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9tdWx0aXB5dGhvbi5weQorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9leGFtcGxlL25vbnB5dGhvbi5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9w
YXJhbWV0cml6ZS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9weXRob25jb2xsZWN0
aW9uLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcHl0aG9uY29sbGVjdGlvbi5yc3QK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9yZXBvcnRpbmdkZW1vLnJzdAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9leGFtcGxlL3NpbXBsZS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBs
ZS9zcGVjaWFsLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3hmYWlsX2RlbW8ucHkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3hmYWlsX2RlbW8ucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS94ZmFpbF9kZW1vLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2NDg1
NzVlODc4NzZiOWI0OWZlZjdjODBhYjRjNWZmZDYzZjFiYzQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS94ZmFpbF9kZW1vLnB5CkBAIC0wLDAgKzEsMzAgQEAK
K2ltcG9ydCBweXRlc3QKK3hmYWlsID0gcHl0ZXN0Lm1hcmsueGZhaWwKKworQHhmYWlsCitkZWYg
dGVzdF9oZWxsbygpOgorICAgIGFzc2VydCAwCisKK0B4ZmFpbChydW49RmFsc2UpCitkZWYgdGVz
dF9oZWxsbzIoKToKKyAgICBhc3NlcnQgMAorCitAeGZhaWwoImhhc2F0dHIob3MsICdzZXAnKSIp
CitkZWYgdGVzdF9oZWxsbzMoKToKKyAgICBhc3NlcnQgMAorCitAeGZhaWwocmVhc29uPSJidWcg
MTEwIikKK2RlZiB0ZXN0X2hlbGxvNCgpOgorICAgIGFzc2VydCAwCisKK0B4ZmFpbCgncHl0ZXN0
Ll9fdmVyc2lvbl9fWzBdICE9ICIxNyInKQorZGVmIHRlc3RfaGVsbG81KCk6CisgICAgYXNzZXJ0
IDAKKworZGVmIHRlc3RfaGVsbG82KCk6CisgICAgcHl0ZXN0LnhmYWlsKCJyZWFzb24iKQorCitA
eGZhaWwocmFpc2VzPUluZGV4RXJyb3IpCitkZWYgdGVzdF9oZWxsbzcoKToKKyAgICB4ID0gW10K
KyAgICB4WzFdID0gMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4aXN0aW5ndGVz
dHN1aXRlLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGlzdGluZ3Rlc3RzdWl0ZS5yc3QKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDMwNGIzMGM5YTYwZDYzYWFjZjA2YmI2ZWMwZDdmNzYyYTAwYWYxZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGlzdGluZ3Rlc3RzdWl0ZS5yc3QKQEAg
LTAsMCArMSwzNCBAQAorLi4gX2V4aXN0aW5ndGVzdHN1aXRlOgorCitVc2luZyBweXRlc3Qgd2l0
aCBhbiBleGlzdGluZyB0ZXN0IHN1aXRlCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CisKK1B5dGVzdCBjYW4gYmUgdXNlZCB3aXRoIG1vc3QgZXhpc3RpbmcgdGVz
dCBzdWl0ZXMsIGJ1dCBpdHMKK2JlaGF2aW9yIGRpZmZlcnMgZnJvbSBvdGhlciB0ZXN0IHJ1bm5l
cnMgc3VjaCBhcyA6cmVmOmBub3NlIDxub3NlaW50ZWdyYXRpb24+YCBvcgorUHl0aG9uJ3MgZGVm
YXVsdCB1bml0dGVzdCBmcmFtZXdvcmsuCisKK0JlZm9yZSB1c2luZyB0aGlzIHNlY3Rpb24geW91
IHdpbGwgd2FudCB0byA6cmVmOmBpbnN0YWxsIHB5dGVzdCA8Z2V0c3RhcnRlZD5gLgorCitSdW5u
aW5nIGFuIGV4aXN0aW5nIHRlc3Qgc3VpdGUgd2l0aCBweXRlc3QKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitTYXkgeW91IHdhbnQgdG8gY29udHJpYnV0
ZSB0byBhbiBleGlzdGluZyByZXBvc2l0b3J5IHNvbWV3aGVyZS4KK0FmdGVyIHB1bGxpbmcgdGhl
IGNvZGUgaW50byB5b3VyIGRldmVsb3BtZW50IHNwYWNlIHVzaW5nIHNvbWUKK2ZsYXZvciBvZiB2
ZXJzaW9uIGNvbnRyb2wgYW5kIChvcHRpb25hbGx5KSBzZXR0aW5nIHVwIGEgdmlydHVhbGVudgor
eW91IHdpbGwgd2FudCB0byBydW46OgorCisgICAgY2QgPHJlcG9zaXRvcnk+CisgICAgcGlwIGlu
c3RhbGwgLWUgLiAgIyBFbnZpcm9ubWVudCBkZXBlbmRlbnQgYWx0ZXJuYXRpdmVzIGluY2x1ZGUK
KyAgICAgICAgICAgICAgICAgICAgICAjICdweXRob24gc2V0dXAucHkgZGV2ZWxvcCcgYW5kICdj
b25kYSBkZXZlbG9wJworCitpbiB5b3VyIHByb2plY3Qgcm9vdC4gIFRoaXMgd2lsbCBzZXQgdXAg
YSBzeW1saW5rIHRvIHlvdXIgY29kZSBpbgorc2l0ZS1wYWNrYWdlcywgYWxsb3dpbmcgeW91IHRv
IGVkaXQgeW91ciBjb2RlIHdoaWxlIHlvdXIgdGVzdHMKK3J1biBhZ2FpbnN0IGl0IGFzIGlmIGl0
IHdlcmUgaW5zdGFsbGVkLgorCitTZXR0aW5nIHVwIHlvdXIgcHJvamVjdCBpbiBkZXZlbG9wbWVu
dCBtb2RlIGxldHMgeW91IGF2b2lkIGhhdmluZyB0bworcmVpbnN0YWxsIGV2ZXJ5IHRpbWUgeW91
IHdhbnQgdG8gcnVuIHlvdXIgdGVzdHMsIGFuZCBpcyBsZXNzIGJyaXR0bGUgdGhhbgorbXVja2lu
ZyBhYm91dCB3aXRoIHN5cy5wYXRoIHRvIHBvaW50IHlvdXIgdGVzdHMgYXQgbG9jYWwgY29kZS4K
KworQWxzbyBjb25zaWRlciB1c2luZyA6cmVmOmB0b3ggPHVzZSB0b3g+YC4KKworLi4gaW5jbHVk
ZTo6IGxpbmtzLmluYwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ZhcS5yc3QgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vZmFxLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yN2Q3NGUxMTQ4YzUxOTE4ZDhm
MzMwZmFlMTVhNWVlZWNhMjNjNDczCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2ZhcS5yc3QKQEAgLTAsMCArMSwxNTYgQEAKK1NvbWUgSXNzdWVzIGFuZCBRdWVzdGlvbnMK
Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gbm90ZTo6CisKKyAgICBU
aGlzIEZBUSBpcyBoZXJlIG9ubHkgbW9zdGx5IGZvciBoaXN0b3JpYyByZWFzb25zLiAgQ2hlY2tv
dXQKKyAgICBgcHl0ZXN0IFEmQSBhdCBTdGFja292ZXJmbG93IDxodHRwOi8vc3RhY2tvdmVyZmxv
dy5jb20vc2VhcmNoP3E9cHl0ZXN0PmBfCisgICAgZm9yIG1hbnkgcXVlc3Rpb25zIGFuZCBhbnN3
ZXJzIHJlbGF0ZWQgdG8gcHl0ZXN0IGFuZC9vciB1c2UKKyAgICA6cmVmOmBjb250YWN0IGNoYW5u
ZWxzYCB0byBnZXQgaGVscC4KKworT24gbmFtaW5nLCBub3NldGVzdHMsIGxpY2Vuc2luZyBhbmQg
bWFnaWMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CitIb3cgZG9lcyBweXRlc3QgcmVsYXRlIHRvIG5vc2UgYW5kIHVuaXR0ZXN0PworKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworCitgYHB5dGVzdGBgIGFu
ZCBub3NlXyBzaGFyZSBiYXNpYyBwaGlsb3NvcGh5IHdoZW4gaXQgY29tZXMKK3RvIHJ1bm5pbmcg
YW5kIHdyaXRpbmcgUHl0aG9uIHRlc3RzLiAgSW4gZmFjdCwgeW91IGNhbiBydW4gbWFueSB0ZXN0
cword3JpdHRlbiBmb3Igbm9zZSB3aXRoIGBgcHl0ZXN0YGAuICBub3NlXyB3YXMgb3JpZ2luYWxs
eSBjcmVhdGVkCithcyBhIGNsb25lIG9mIGBgcHl0ZXN0YGAgd2hlbiBgYHB5dGVzdGBgIHdhcyBp
biB0aGUgYGAwLjhgYCByZWxlYXNlCitjeWNsZS4gIE5vdGUgdGhhdCBzdGFydGluZyB3aXRoIHB5
dGVzdC0yLjAgc3VwcG9ydCBmb3IgcnVubmluZyB1bml0dGVzdAordGVzdCBzdWl0ZXMgaXMgbWFq
b3JseSBpbXByb3ZlZC4KKworaG93IGRvZXMgcHl0ZXN0IHJlbGF0ZSB0byB0d2lzdGVkJ3MgdHJp
YWw/CisrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisKK1Np
bmNlIHNvbWUgdGltZSBgYHB5dGVzdGBgIGhhcyBidWlsdGluIHN1cHBvcnQgZm9yIHN1cHBvcnRp
bmcgdGVzdHMKK3dyaXR0ZW4gdXNpbmcgdHJpYWwuIEl0IGRvZXMgbm90IGl0c2VsZiBzdGFydCBh
IHJlYWN0b3IsIGhvd2V2ZXIsCithbmQgZG9lcyBub3QgaGFuZGxlIERlZmVycmVkcyByZXR1cm5l
ZCBmcm9tIGEgdGVzdCBpbiBweXRlc3Qgc3R5bGUuCitJZiB5b3UgYXJlIHVzaW5nIHRyaWFsJ3Mg
dW5pdHRlc3QuVGVzdENhc2UgY2hhbmNlcyBhcmUgdGhhdCB5b3UgY2FuCitqdXN0IHJ1biB5b3Vy
IHRlc3RzIGV2ZW4gaWYgeW91IHJldHVybiBEZWZlcnJlZHMuICBJbiBhZGRpdGlvbiwKK3RoZXJl
IGFsc28gaXMgYSBkZWRpY2F0ZWQgYHB5dGVzdC10d2lzdGVkCis8aHR0cDovL3B5cGkucHl0aG9u
Lm9yZy9weXBpL3B5dGVzdC10d2lzdGVkPmBfIHBsdWdpbiB3aGljaCBhbGxvd3MgeW91IHRvCity
ZXR1cm4gZGVmZXJyZWRzIGZyb20gcHl0ZXN0LXN0eWxlIHRlc3RzLCBhbGxvd2luZyB0aGUgdXNl
IG9mCis6cmVmOmBmaXh0dXJlc2AgYW5kIG90aGVyIGZlYXR1cmVzLgorCitob3cgZG9lcyBweXRl
c3Qgd29yayB3aXRoIERqYW5nbz8KKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysKKworSW4gMjAxMiwgc29tZSB3b3JrIGlzIGdvaW5nIGludG8gdGhlIGBweXRl
c3QtZGphbmdvIHBsdWdpbiA8aHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3B5dGVzdC1kamFu
Z28+YF8uICBJdCBzdWJzdGl0dXRlcyB0aGUgdXNhZ2Ugb2YgRGphbmdvJ3MKK2BgbWFuYWdlLnB5
IHRlc3RgYCBhbmQgYWxsb3dzIHRoZSB1c2Ugb2YgYWxsIHB5dGVzdCBmZWF0dXJlc18gbW9zdCBv
ZiB3aGljaAorYXJlIG5vdCBhdmFpbGFibGUgZnJvbSBEamFuZ28gZGlyZWN0bHkuCisKKy4uIF9m
ZWF0dXJlczogZmVhdHVyZXMuaHRtbAorCisKK1doYXQncyB0aGlzICJtYWdpYyIgd2l0aCBweXRl
c3Q/IChoaXN0b3JpYyBub3RlcykKKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrCisKK0Fyb3VuZCAyMDA3ICh2ZXJzaW9uIGBgMC44YGApIHNv
bWUgcGVvcGxlIHRob3VnaHQgdGhhdCBgYHB5dGVzdGBgCit3YXMgdXNpbmcgdG9vIG11Y2ggIm1h
Z2ljIi4gIEl0IGhhZCBiZWVuIHBhcnQgb2YgdGhlIGBweWxpYmBfIHdoaWNoCitjb250YWlucyBh
IGxvdCBvZiB1bnJlbGF0ZWQgcHl0aG9uIGxpYnJhcnkgY29kZS4gIEFyb3VuZCAyMDEwIHRoZXJl
Cit3YXMgYSBtYWpvciBjbGVhbnVwIHJlZmFjdG9yaW5nLCB3aGljaCByZW1vdmVkIHVudXNlZCBv
ciBkZXByZWNhdGVkIGNvZGUKK2FuZCByZXN1bHRlZCBpbiB0aGUgbmV3IGBgcHl0ZXN0YGAgUHlQ
SSBwYWNrYWdlIHdoaWNoIHN0cmljdGx5IGNvbnRhaW5zCitvbmx5IHRlc3QtcmVsYXRlZCBjb2Rl
LiAgVGhpcyByZWxlYXNlIGFsc28gYnJvdWdodCBhIGNvbXBsZXRlIHBsdWdpbmlmaWNhdGlvbgor
c3VjaCB0aGF0IHRoZSBjb3JlIGlzIGFyb3VuZCAzMDAgbGluZXMgb2YgY29kZSBhbmQgZXZlcnl0
aGluZyBlbHNlIGlzCitpbXBsZW1lbnRlZCBpbiBwbHVnaW5zLiAgVGh1cyBgYHB5dGVzdGBgIHRv
ZGF5IGlzIGEgc21hbGwsIHVuaXZlcnNhbGx5IHJ1bm5hYmxlCithbmQgY3VzdG9taXphYmxlIHRl
c3RpbmcgZnJhbWV3b3JrIGZvciBQeXRob24uICAgTm90ZSwgaG93ZXZlciwgdGhhdAorYGBweXRl
c3RgYCB1c2VzIG1ldGFwcm9ncmFtbWluZyB0ZWNobmlxdWVzIGFuZCByZWFkaW5nIGl0cyBzb3Vy
Y2UgaXMKK3RodXMgbGlrZWx5IG5vdCBzb21ldGhpbmcgZm9yIFB5dGhvbiBiZWdpbm5lcnMuCisK
K0Egc2Vjb25kICJtYWdpYyIgaXNzdWUgd2FzIHRoZSBhc3NlcnQgc3RhdGVtZW50IGRlYnVnZ2lu
ZyBmZWF0dXJlLgorTm93YWRheXMsIGBgcHl0ZXN0YGAgZXhwbGljaXRseSByZXdyaXRlcyBhc3Nl
cnQgc3RhdGVtZW50cyBpbiB0ZXN0IG1vZHVsZXMKK2luIG9yZGVyIHRvIHByb3ZpZGUgbW9yZSB1
c2VmdWwgOnJlZjpgYXNzZXJ0IGZlZWRiYWNrIDxhc3NlcnRmZWVkYmFjaz5gLgorVGhpcyBjb21w
bGV0ZWx5IGF2b2lkcyBwcmV2aW91cyBpc3N1ZXMgb2YgY29uZnVzaW5nIGFzc2VydGlvbi1yZXBv
cnRpbmcuCitJdCBhbHNvIG1lYW5zLCB0aGF0IHlvdSBjYW4gdXNlIFB5dGhvbidzIGBgLU9gYCBv
cHRpbWl6YXRpb24gd2l0aG91dCBsb3NpbmcKK2Fzc2VydGlvbnMgaW4gdGVzdCBtb2R1bGVzLgor
CitZb3UgY2FuIGFsc28gdHVybiBvZmYgYWxsIGFzc2VydGlvbiBpbnRlcmFjdGlvbiB1c2luZyB0
aGUKK2BgLS1hc3NlcnQ9cGxhaW5gYCBvcHRpb24uCisKKy4uIF9gcHkgbmFtZXNwYWNlc2A6IGlu
ZGV4Lmh0bWwKKy4uIF9gcHkvX19pbml0X18ucHlgOiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0
Mi9weS10cnVuay9zcmMvdHJ1bmsvcHkvX19pbml0X18ucHkKKworCitXaHkgY2FuIEkgdXNlIGJv
dGggYGBweXRlc3RgYCBhbmQgYGBweS50ZXN0YGAgY29tbWFuZHM/CisrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisKK3B5dGVzdCB1c2VkIHRv
IGJlIHBhcnQgb2YgdGhlIHB5IHBhY2thZ2UsIHdoaWNoIHByb3ZpZGVkIHNldmVyYWwgZGV2ZWxv
cGVyCit1dGlsaXRpZXMsIGFsbCBzdGFydGluZyB3aXRoIGBgcHkuPFRBQj5gYCwgdGh1cyBwcm92
aWRpbmcgbmljZSBUQUItY29tcGxldGlvbi4KK0lmIHlvdSBpbnN0YWxsIGBgcGlwIGluc3RhbGwg
cHljbWRgYCB5b3UgZ2V0IHRoZXNlIHRvb2xzIGZyb20gYSBzZXBhcmF0ZQorcGFja2FnZS4gT25j
ZSBgYHB5dGVzdGBgIGJlY2FtZSBhIHNlcGFyYXRlIHBhY2thZ2UsIHRoZSBgYHB5LnRlc3RgYCBu
YW1lIHdhcworcmV0YWluZWQgZHVlIHRvIGF2b2lkIGEgbmFtaW5nIGNvbmZsaWN0IHdpdGggYW5v
dGhlciB0b29sLiBUaGlzIGNvbmZsaWN0IHdhcworZXZlbnR1YWxseSByZXNvbHZlZCwgYW5kIHRo
ZSBgYHB5dGVzdGBgIGNvbW1hbmQgd2FzIHRoZXJlZm9yZSBpbnRyb2R1Y2VkLiBJbgorZnV0dXJl
IHZlcnNpb25zIG9mIHB5dGVzdCwgd2UgbWF5IGRlcHJlY2F0ZSBhbmQgbGF0ZXIgcmVtb3ZlIHRo
ZSBgYHB5LnRlc3RgYAorY29tbWFuZCB0byBhdm9pZCBwZXJwZXR1YXRpbmcgdGhlIGNvbmZ1c2lv
bi4KKworcHl0ZXN0IGZpeHR1cmVzLCBwYXJhbWV0cml6ZWQgdGVzdHMKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gX2Z1bmNhcmdz
OiBmdW5jYXJncy5odG1sCisKK0lzIHVzaW5nIHB5dGVzdCBmaXh0dXJlcyB2ZXJzdXMgeFVuaXQg
c2V0dXAgYSBzdHlsZSBxdWVzdGlvbj8KKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKworRm9yIHNpbXBsZSBhcHBsaWNh
dGlvbnMgYW5kIGZvciBwZW9wbGUgZXhwZXJpZW5jZWQgd2l0aCBub3NlXyBvcgordW5pdHRlc3Qt
c3R5bGUgdGVzdCBzZXR1cCB1c2luZyBgeFVuaXQgc3R5bGUgc2V0dXBgXyBwcm9iYWJseQorZmVl
bHMgbmF0dXJhbC4gIEZvciBsYXJnZXIgdGVzdCBzdWl0ZXMsIHBhcmFtZXRyaXplZCB0ZXN0aW5n
CitvciBzZXR1cCBvZiBjb21wbGV4IHRlc3QgcmVzb3VyY2VzIHVzaW5nIGZpeHR1cmVzXyBtYXkg
ZmVlbCBtb3JlIG5hdHVyYWwuCitNb3Jlb3ZlciwgZml4dHVyZXMgYXJlIGlkZWFsIGZvciB3cml0
aW5nIGFkdmFuY2VkIHRlc3Qgc3VwcG9ydAorY29kZSAobGlrZSBlLmcuIHRoZSBtb25rZXlwYXRj
aF8sIHRoZSB0bXBkaXJfIG9yIGNhcHR1cmVfIGZpeHR1cmVzKQorYmVjYXVzZSB0aGUgc3VwcG9y
dCBjb2RlIGNhbiByZWdpc3RlciBzZXR1cC90ZWFyZG93biBmdW5jdGlvbnMKK2luIGEgbWFuYWdl
ZCBjbGFzcy9tb2R1bGUvZnVuY3Rpb24gc2NvcGUuCisKKy4uIF9tb25rZXlwYXRjaDogbW9ua2V5
cGF0Y2guaHRtbAorLi4gX3RtcGRpcjogdG1wZGlyLmh0bWwKKy4uIF9jYXB0dXJlOiBjYXB0dXJl
Lmh0bWwKKy4uIF9maXh0dXJlczogZml4dHVyZS5odG1sCisKKy4uIF9gd2h5IHB5dGVzdF9weWZ1
bmNhcmdfXyBtZXRob2RzP2A6CisKKy4uIF9gQ29udmVudGlvbiBvdmVyIENvbmZpZ3VyYXRpb25g
OiBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0NvbnZlbnRpb25fb3Zlcl9Db25maWd1cmF0
aW9uCisKK0NhbiBJIHlpZWxkIG11bHRpcGxlIHZhbHVlcyBmcm9tIGEgZml4dHVyZSBmdW5jdGlv
bj8KKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrCisKK1RoZXJlIGFyZSB0d28gY29uY2VwdHVhbCByZWFzb25zIHdoeSB5aWVsZGlu
ZyBmcm9tIGEgZmFjdG9yeSBmdW5jdGlvbgoraXMgbm90IHBvc3NpYmxlOgorCisqIElmIG11bHRp
cGxlIGZhY3RvcmllcyB5aWVsZGVkIHZhbHVlcyB0aGVyZSB3b3VsZAorICBiZSBubyBuYXR1cmFs
IHBsYWNlIHRvIGRldGVybWluZSB0aGUgY29tYmluYXRpb24KKyAgcG9saWN5IC0gaW4gcmVhbC13
b3JsZCBleGFtcGxlcyBzb21lIGNvbWJpbmF0aW9ucworICBvZnRlbiBzaG91bGQgbm90IHJ1bi4K
KworKiBDYWxsaW5nIGZhY3RvcmllcyBmb3Igb2J0YWluaW5nIHRlc3QgZnVuY3Rpb24gYXJndW1l
bnRzCisgIGlzIHBhcnQgb2Ygc2V0dGluZyB1cCBhbmQgcnVubmluZyBhIHRlc3QuICBBdCB0aGF0
CisgIHBvaW50IGl0IGlzIG5vdCBwb3NzaWJsZSB0byBhZGQgbmV3IHRlc3QgY2FsbHMgdG8KKyAg
dGhlIHRlc3QgY29sbGVjdGlvbiBhbnltb3JlLgorCitIb3dldmVyLCB3aXRoIHB5dGVzdC0yLjMg
eW91IGNhbiB1c2UgdGhlIDpyZWY6YEBweXRlc3QuZml4dHVyZWAgZGVjb3JhdG9yCithbmQgc3Bl
Y2lmeSBgYHBhcmFtc2BgIHNvIHRoYXQgYWxsIHRlc3RzIGRlcGVuZGluZyBvbiB0aGUgZmFjdG9y
eS1jcmVhdGVkCityZXNvdXJjZSB3aWxsIHJ1biBtdWx0aXBsZSB0aW1lcyB3aXRoIGRpZmZlcmVu
dCBwYXJhbWV0ZXJzLgorCitZb3UgY2FuIGFsc28gdXNlIHRoZSBgYHB5dGVzdF9nZW5lcmF0ZV90
ZXN0c2BgIGhvb2sgdG8KK2ltcGxlbWVudCB0aGUgYHBhcmFtZXRyaXphdGlvbiBzY2hlbWUgb2Yg
eW91ciBjaG9pY2VgXy4gU2VlIGFsc28KKzpyZWY6YHBhcmFtZXhhbXBsZXNgIGZvciBtb3JlIGV4
YW1wbGVzLgorCisuLiBfYHBhcmFtZXRyaXphdGlvbiBzY2hlbWUgb2YgeW91ciBjaG9pY2VgOiBo
dHRwOi8vdGV0YW1hcC53b3JkcHJlc3MuY29tLzIwMDkvMDUvMTMvcGFyYW1ldHJpemluZy1weXRo
b24tdGVzdHMtZ2VuZXJhbGl6ZWQvCisKK3B5dGVzdCBpbnRlcmFjdGlvbiB3aXRoIG90aGVyIHBh
Y2thZ2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworSXNzdWVzIHdpdGggcHl0ZXN0LCBtdWx0aXByb2Nlc3MgYW5kIHNldHVwdG9vbHM/Cisr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK
KworT24gV2luZG93cyB0aGUgbXVsdGlwcm9jZXNzIHBhY2thZ2Ugd2lsbCBpbnN0YW50aWF0ZSBz
dWIgcHJvY2Vzc2VzCitieSBwaWNrbGluZyBhbmQgdGh1cyBpbXBsaWNpdGx5IHJlLWltcG9ydCBh
IGxvdCBvZiBsb2NhbCBtb2R1bGVzLgorVW5mb3J0dW5hdGVseSwgc2V0dXB0b29scy0wLjYuMTEg
ZG9lcyBub3QgYGBpZiBfX25hbWVfXz09J19fbWFpbl9fJ2BgCitwcm90ZWN0IGl0cyBnZW5lcmF0
ZWQgY29tbWFuZCBsaW5lIHNjcmlwdC4gIFRoaXMgbGVhZHMgdG8gaW5maW5pdGUKK3JlY3Vyc2lv
biB3aGVuIHJ1bm5pbmcgYSB0ZXN0IHRoYXQgaW5zdGFudGlhdGVzIFByb2Nlc3Nlcy4KKworQXMg
b2YgbWlkLTIwMTMsIHRoZXJlIHNob3VsZG4ndCBiZSBhIHByb2JsZW0gYW55bW9yZSB3aGVuIHlv
dQordXNlIHRoZSBzdGFuZGFyZCBzZXR1cHRvb2xzIChub3RlIHRoYXQgZGlzdHJpYnV0ZSBoYXMg
YmVlbiBtZXJnZWQKK2JhY2sgaW50byBzZXR1cHRvb2xzIHdoaWNoIGlzIG5vdyBzaGlwcGVkIGRp
cmVjdGx5IHdpdGggdmlydHVhbGVudikuCisKKy4uIGluY2x1ZGU6OiBsaW5rcy5pbmMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9maXh0dXJlLnJzdCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9maXh0dXJlLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMWE5NDFkZGY2NTZmMmI5NjkwZjMzODc5ODkxYWI0
NTliZTJjZWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ZpeHR1cmUu
cnN0CkBAIC0wLDAgKzEsMTA4OCBAQAorLi4gX2ZpeHR1cmU6CisuLiBfZml4dHVyZXM6CisuLiBf
YGZpeHR1cmUgZnVuY3Rpb25zYDoKKworcHl0ZXN0IGZpeHR1cmVzOiBleHBsaWNpdCwgbW9kdWxh
ciwgc2NhbGFibGUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09CisKKy4uIGN1cnJlbnRtb2R1bGU6OiBfcHl0ZXN0LnB5dGhvbgorCisuLiB2
ZXJzaW9uYWRkZWQ6OiAyLjAvMi4zLzIuNAorCisuLiBfYHhVbml0YDogaHR0cDovL2VuLndpa2lw
ZWRpYS5vcmcvd2lraS9YVW5pdAorLi4gX2BwdXJwb3NlIG9mIHRlc3QgZml4dHVyZXNgOiBodHRw
Oi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1Rlc3RfZml4dHVyZSNTb2Z0d2FyZQorLi4gX2BEZXBl
bmRlbmN5IGluamVjdGlvbmA6IGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRGVwZW5kZW5j
eV9pbmplY3Rpb24KKworVGhlIGBwdXJwb3NlIG9mIHRlc3QgZml4dHVyZXNgXyBpcyB0byBwcm92
aWRlIGEgZml4ZWQgYmFzZWxpbmUKK3Vwb24gd2hpY2ggdGVzdHMgY2FuIHJlbGlhYmx5IGFuZCBy
ZXBlYXRlZGx5IGV4ZWN1dGUuICAgcHl0ZXN0IGZpeHR1cmVzCitvZmZlciBkcmFtYXRpYyBpbXBy
b3ZlbWVudHMgb3ZlciB0aGUgY2xhc3NpYyB4VW5pdCBzdHlsZSBvZiBzZXR1cC90ZWFyZG93bgor
ZnVuY3Rpb25zOgorCisqIGZpeHR1cmVzIGhhdmUgZXhwbGljaXQgbmFtZXMgYW5kIGFyZSBhY3Rp
dmF0ZWQgYnkgZGVjbGFyaW5nIHRoZWlyIHVzZQorICBmcm9tIHRlc3QgZnVuY3Rpb25zLCBtb2R1
bGVzLCBjbGFzc2VzIG9yIHdob2xlIHByb2plY3RzLgorCisqIGZpeHR1cmVzIGFyZSBpbXBsZW1l
bnRlZCBpbiBhIG1vZHVsYXIgbWFubmVyLCBhcyBlYWNoIGZpeHR1cmUgbmFtZQorICB0cmlnZ2Vy
cyBhICpmaXh0dXJlIGZ1bmN0aW9uKiB3aGljaCBjYW4gaXRzZWxmIHVzZSBvdGhlciBmaXh0dXJl
cy4KKworKiBmaXh0dXJlIG1hbmFnZW1lbnQgc2NhbGVzIGZyb20gc2ltcGxlIHVuaXQgdG8gY29t
cGxleAorICBmdW5jdGlvbmFsIHRlc3RpbmcsIGFsbG93aW5nIHRvIHBhcmFtZXRyaXplIGZpeHR1
cmVzIGFuZCB0ZXN0cyBhY2NvcmRpbmcKKyAgdG8gY29uZmlndXJhdGlvbiBhbmQgY29tcG9uZW50
IG9wdGlvbnMsIG9yIHRvIHJlLXVzZSBmaXh0dXJlcworICBhY3Jvc3MgZnVuY3Rpb24sIGNsYXNz
LCBtb2R1bGUgb3Igd2hvbGUgdGVzdCBzZXNzaW9uIHNjb3Blcy4KKworSW4gYWRkaXRpb24sIHB5
dGVzdCBjb250aW51ZXMgdG8gc3VwcG9ydCA6cmVmOmB4dW5pdHNldHVwYC4gIFlvdSBjYW4gbWl4
Citib3RoIHN0eWxlcywgbW92aW5nIGluY3JlbWVudGFsbHkgZnJvbSBjbGFzc2ljIHRvIG5ldyBz
dHlsZSwgYXMgeW91CitwcmVmZXIuICBZb3UgY2FuIGFsc28gc3RhcnQgb3V0IGZyb20gZXhpc3Rp
bmcgOnJlZjpgdW5pdHRlc3QuVGVzdENhc2UKK3N0eWxlIDx1bml0dGVzdC5UZXN0Q2FzZT5gIG9y
IDpyZWY6YG5vc2UgYmFzZWQgPG5vc2VzdHlsZT5gIHByb2plY3RzLgorCisKKy4uIF9gZnVuY2Fy
Z3NgOgorLi4gX2BmdW5jYXJnIG1lY2hhbmlzbWA6CisuLiBfYGZpeHR1cmUgZnVuY3Rpb25gOgor
Li4gX2BAcHl0ZXN0LmZpeHR1cmVgOgorLi4gX2BweXRlc3QuZml4dHVyZWA6CisKK0ZpeHR1cmVz
IGFzIEZ1bmN0aW9uIGFyZ3VtZW50cworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKworVGVzdCBmdW5jdGlvbnMgY2FuIHJlY2VpdmUgZml4dHVyZSBvYmplY3RzIGJ5
IG5hbWluZyB0aGVtIGFzIGFuIGlucHV0Cithcmd1bWVudC4gRm9yIGVhY2ggYXJndW1lbnQgbmFt
ZSwgYSBmaXh0dXJlIGZ1bmN0aW9uIHdpdGggdGhhdCBuYW1lIHByb3ZpZGVzCit0aGUgZml4dHVy
ZSBvYmplY3QuICBGaXh0dXJlIGZ1bmN0aW9ucyBhcmUgcmVnaXN0ZXJlZCBieSBtYXJraW5nIHRo
ZW0gd2l0aAorOnB5OmZ1bmM6YEBweXRlc3QuZml4dHVyZSA8X3B5dGVzdC5weXRob24uZml4dHVy
ZT5gLiAgTGV0J3MgbG9vayBhdCBhIHNpbXBsZQorc2VsZi1jb250YWluZWQgdGVzdCBtb2R1bGUg
Y29udGFpbmluZyBhIGZpeHR1cmUgYW5kIGEgdGVzdCBmdW5jdGlvbgordXNpbmcgaXQ6OgorCisg
ICAgIyBjb250ZW50IG9mIC4vdGVzdF9zbXRwc2ltcGxlLnB5CisgICAgaW1wb3J0IHB5dGVzdAor
CisgICAgQHB5dGVzdC5maXh0dXJlCisgICAgZGVmIHNtdHAoKToKKyAgICAgICAgaW1wb3J0IHNt
dHBsaWIKKyAgICAgICAgcmV0dXJuIHNtdHBsaWIuU01UUCgic210cC5nbWFpbC5jb20iLCA1ODcs
IHRpbWVvdXQ9NSkKKworICAgIGRlZiB0ZXN0X2VobG8oc210cCk6CisgICAgICAgIHJlc3BvbnNl
LCBtc2cgPSBzbXRwLmVobG8oKQorICAgICAgICBhc3NlcnQgcmVzcG9uc2UgPT0gMjUwCisgICAg
ICAgIGFzc2VydCAwICMgZm9yIGRlbW8gcHVycG9zZXMKKworSGVyZSwgdGhlIGBgdGVzdF9laGxv
YGAgbmVlZHMgdGhlIGBgc210cGBgIGZpeHR1cmUgdmFsdWUuICBweXRlc3QKK3dpbGwgZGlzY292
ZXIgYW5kIGNhbGwgdGhlIDpweTpmdW5jOmBAcHl0ZXN0LmZpeHR1cmUgPF9weXRlc3QucHl0aG9u
LmZpeHR1cmU+YAorbWFya2VkIGBgc210cGBgIGZpeHR1cmUgZnVuY3Rpb24uICBSdW5uaW5nIHRo
ZSB0ZXN0IGxvb2tzIGxpa2UgdGhpczo6CisKKyAgICAkIHB5dGVzdCB0ZXN0X3NtdHBzaW1wbGUu
cHkKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9u
IDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICByb290ZGly
OiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIGNvbGxlY3RlZCAxIGl0ZW0KKyAgICAK
KyAgICB0ZXN0X3NtdHBzaW1wbGUucHkgRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbMTAwJV0KKyAgICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0gRkFJTFVSRVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cisg
ICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9laGxvIF9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXworICAgIAorICAgIHNtdHAgPSA8c210cGxpYi5TTVRQIG9i
amVjdCBhdCAweGRlYWRiZWVmPgorICAgIAorICAgICAgICBkZWYgdGVzdF9laGxvKHNtdHApOgor
ICAgICAgICAgICAgcmVzcG9uc2UsIG1zZyA9IHNtdHAuZWhsbygpCisgICAgICAgICAgICBhc3Nl
cnQgcmVzcG9uc2UgPT0gMjUwCisgICAgPiAgICAgICBhc3NlcnQgMCAjIGZvciBkZW1vIHB1cnBv
c2VzCisgICAgRSAgICAgICBhc3NlcnQgMAorICAgIAorICAgIHRlc3Rfc210cHNpbXBsZS5weTox
MTogQXNzZXJ0aW9uRXJyb3IKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09IDEgZmFpbGVk
IGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT09PT09CisKK0luIHRoZSBmYWls
dXJlIHRyYWNlYmFjayB3ZSBzZWUgdGhhdCB0aGUgdGVzdCBmdW5jdGlvbiB3YXMgY2FsbGVkIHdp
dGggYQorYGBzbXRwYGAgYXJndW1lbnQsIHRoZSBgYHNtdHBsaWIuU01UUCgpYGAgaW5zdGFuY2Ug
Y3JlYXRlZCBieSB0aGUgZml4dHVyZQorZnVuY3Rpb24uICBUaGUgdGVzdCBmdW5jdGlvbiBmYWls
cyBvbiBvdXIgZGVsaWJlcmF0ZSBgYGFzc2VydCAwYGAuICBIZXJlIGlzCit0aGUgZXhhY3QgcHJv
dG9jb2wgdXNlZCBieSBgYHB5dGVzdGBgIHRvIGNhbGwgdGhlIHRlc3QgZnVuY3Rpb24gdGhpcyB3
YXk6CisKKzEuIHB5dGVzdCA6cmVmOmBmaW5kcyA8dGVzdCBkaXNjb3Zlcnk+YCB0aGUgYGB0ZXN0
X2VobG9gYCBiZWNhdXNlCisgICBvZiB0aGUgYGB0ZXN0X2BgIHByZWZpeC4gIFRoZSB0ZXN0IGZ1
bmN0aW9uIG5lZWRzIGEgZnVuY3Rpb24gYXJndW1lbnQKKyAgIG5hbWVkIGBgc210cGBgLiAgQSBt
YXRjaGluZyBmaXh0dXJlIGZ1bmN0aW9uIGlzIGRpc2NvdmVyZWQgYnkKKyAgIGxvb2tpbmcgZm9y
IGEgZml4dHVyZS1tYXJrZWQgZnVuY3Rpb24gbmFtZWQgYGBzbXRwYGAuCisKKzIuIGBgc210cCgp
YGAgaXMgY2FsbGVkIHRvIGNyZWF0ZSBhbiBpbnN0YW5jZS4KKworMy4gYGB0ZXN0X2VobG8oPFNN
VFAgaW5zdGFuY2U+KWBgIGlzIGNhbGxlZCBhbmQgZmFpbHMgaW4gdGhlIGxhc3QKKyAgIGxpbmUg
b2YgdGhlIHRlc3QgZnVuY3Rpb24uCisKK05vdGUgdGhhdCBpZiB5b3UgbWlzc3BlbGwgYSBmdW5j
dGlvbiBhcmd1bWVudCBvciB3YW50Cit0byB1c2Ugb25lIHRoYXQgaXNuJ3QgYXZhaWxhYmxlLCB5
b3UnbGwgc2VlIGFuIGVycm9yCit3aXRoIGEgbGlzdCBvZiBhdmFpbGFibGUgZnVuY3Rpb24gYXJn
dW1lbnRzLgorCisuLiBub3RlOjoKKworICAgIFlvdSBjYW4gYWx3YXlzIGlzc3VlOjoKKworICAg
ICAgICBweXRlc3QgLS1maXh0dXJlcyB0ZXN0X3NpbXBsZWZhY3RvcnkucHkKKworICAgIHRvIHNl
ZSBhdmFpbGFibGUgZml4dHVyZXMuCisKK0ZpeHR1cmVzOiBhIHByaW1lIGV4YW1wbGUgb2YgZGVw
ZW5kZW5jeSBpbmplY3Rpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorCitGaXh0dXJlcyBhbGxvdyB0ZXN0IGZ1bmN0aW9ucyB0byBlYXNpbHkg
cmVjZWl2ZSBhbmQgd29yaworYWdhaW5zdCBzcGVjaWZpYyBwcmUtaW5pdGlhbGl6ZWQgYXBwbGlj
YXRpb24gb2JqZWN0cyB3aXRob3V0IGhhdmluZwordG8gY2FyZSBhYm91dCBpbXBvcnQvc2V0dXAv
Y2xlYW51cCBkZXRhaWxzLgorSXQncyBhIHByaW1lIGV4YW1wbGUgb2YgYGRlcGVuZGVuY3kgaW5q
ZWN0aW9uYF8gd2hlcmUgZml4dHVyZQorZnVuY3Rpb25zIHRha2UgdGhlIHJvbGUgb2YgdGhlICpp
bmplY3RvciogYW5kIHRlc3QgZnVuY3Rpb25zIGFyZSB0aGUKKypjb25zdW1lcnMqIG9mIGZpeHR1
cmUgb2JqZWN0cy4KKworLi4gX2Bjb25mdGVzdC5weWA6CisuLiBfYGNvbmZ0ZXN0YDoKKworYGBj
b25mdGVzdC5weWBgOiBzaGFyaW5nIGZpeHR1cmUgZnVuY3Rpb25zCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworSWYgZHVyaW5nIGltcGxlbWVudGluZyB5b3Vy
IHRlc3RzIHlvdSByZWFsaXplIHRoYXQgeW91Cit3YW50IHRvIHVzZSBhIGZpeHR1cmUgZnVuY3Rp
b24gZnJvbSBtdWx0aXBsZSB0ZXN0IGZpbGVzIHlvdSBjYW4gbW92ZSBpdAordG8gYSBgYGNvbmZ0
ZXN0LnB5YGAgZmlsZS4KK1lvdSBkb24ndCBuZWVkIHRvIGltcG9ydCB0aGUgZml4dHVyZSB5b3Ug
d2FudCB0byB1c2UgaW4gYSB0ZXN0LCBpdAorYXV0b21hdGljYWxseSBnZXRzIGRpc2NvdmVyZWQg
YnkgcHl0ZXN0LiBUaGUgZGlzY292ZXJ5IG9mCitmaXh0dXJlIGZ1bmN0aW9ucyBzdGFydHMgYXQg
dGVzdCBjbGFzc2VzLCB0aGVuIHRlc3QgbW9kdWxlcywgdGhlbgorYGBjb25mdGVzdC5weWBgIGZp
bGVzIGFuZCBmaW5hbGx5IGJ1aWx0aW4gYW5kIHRoaXJkIHBhcnR5IHBsdWdpbnMuCisKK1lvdSBj
YW4gYWxzbyB1c2UgdGhlIGBgY29uZnRlc3QucHlgYCBmaWxlIHRvIGltcGxlbWVudCAKKzpyZWY6
YGxvY2FsIHBlci1kaXJlY3RvcnkgcGx1Z2lucyA8Y29uZnRlc3QucHkgcGx1Z2lucz5gLgorCitT
aGFyaW5nIHRlc3QgZGF0YQorLS0tLS0tLS0tLS0tLS0tLS0KKworSWYgeW91IHdhbnQgdG8gbWFr
ZSB0ZXN0IGRhdGEgZnJvbSBmaWxlcyBhdmFpbGFibGUgdG8geW91ciB0ZXN0cywgYSBnb29kIHdh
eQordG8gZG8gdGhpcyBpcyBieSBsb2FkaW5nIHRoZXNlIGRhdGEgaW4gYSBmaXh0dXJlIGZvciB1
c2UgYnkgeW91ciB0ZXN0cy4KK1RoaXMgbWFrZXMgdXNlIG9mIHRoZSBhdXRvbWF0aWMgY2FjaGlu
ZyBtZWNoYW5pc21zIG9mIHB5dGVzdC4KKworQW5vdGhlciBnb29kIGFwcHJvYWNoIGlzIGJ5IGFk
ZGluZyB0aGUgZGF0YSBmaWxlcyBpbiB0aGUgYGB0ZXN0c2BgIGZvbGRlci4KK1RoZXJlIGFyZSBh
bHNvIGNvbW11bml0eSBwbHVnaW5zIGF2YWlsYWJsZSB0byBoZWxwIG1hbmFnaW5nIHRoaXMgYXNw
ZWN0IG9mIAordGVzdGluZywgZS5nLiBgcHl0ZXN0LWRhdGFkaXIgPGh0dHBzOi8vZ2l0aHViLmNv
bS9nYWJyaWVsY25yL3B5dGVzdC1kYXRhZGlyPmBfXyAKK2FuZCBgcHl0ZXN0LWRhdGFmaWxlcyA8
aHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9weXRlc3QtZGF0YWZpbGVzPmBfXy4gCisKKy4u
IF9zbXRwc2hhcmVkOgorCitTY29wZTogc2hhcmluZyBhIGZpeHR1cmUgaW5zdGFuY2UgYWNyb3Nz
IHRlc3RzIGluIGEgY2xhc3MsIG1vZHVsZSBvciBzZXNzaW9uCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisKKy4uIHJlZ2VuZG9jOndpcGUKKworRml4dHVyZXMgcmVxdWlyaW5nIG5ldHdvcmsgYWNjZXNz
IGRlcGVuZCBvbiBjb25uZWN0aXZpdHkgYW5kIGFyZQordXN1YWxseSB0aW1lLWV4cGVuc2l2ZSB0
byBjcmVhdGUuICBFeHRlbmRpbmcgdGhlIHByZXZpb3VzIGV4YW1wbGUsIHdlCitjYW4gYWRkIGEg
YGBzY29wZT0nbW9kdWxlJ2BgIHBhcmFtZXRlciB0byB0aGUKKzpweTpmdW5jOmBAcHl0ZXN0LmZp
eHR1cmUgPF9weXRlc3QucHl0aG9uLmZpeHR1cmU+YCBpbnZvY2F0aW9uCit0byBjYXVzZSB0aGUg
ZGVjb3JhdGVkIGBgc210cGBgIGZpeHR1cmUgZnVuY3Rpb24gdG8gb25seSBiZSBpbnZva2VkIG9u
Y2UKK3BlciB0ZXN0ICptb2R1bGUqICh0aGUgZGVmYXVsdCBpcyB0byBpbnZva2Ugb25jZSBwZXIg
dGVzdCAqZnVuY3Rpb24qKS4KK011bHRpcGxlIHRlc3QgZnVuY3Rpb25zIGluIGEgdGVzdCBtb2R1
bGUgd2lsbCB0aHVzCitlYWNoIHJlY2VpdmUgdGhlIHNhbWUgYGBzbXRwYGAgZml4dHVyZSBpbnN0
YW5jZSwgdGh1cyBzYXZpbmcgdGltZS4KKworVGhlIG5leHQgZXhhbXBsZSBwdXRzIHRoZSBmaXh0
dXJlIGZ1bmN0aW9uIGludG8gYSBzZXBhcmF0ZSBgYGNvbmZ0ZXN0LnB5YGAgZmlsZSAKK3NvIHRo
YXQgdGVzdHMgZnJvbSBtdWx0aXBsZSB0ZXN0IG1vZHVsZXMgaW4gdGhlIGRpcmVjdG9yeSBjYW4K
K2FjY2VzcyB0aGUgZml4dHVyZSBmdW5jdGlvbjo6CisKKyAgICAjIGNvbnRlbnQgb2YgY29uZnRl
c3QucHkKKyAgICBpbXBvcnQgcHl0ZXN0CisgICAgaW1wb3J0IHNtdHBsaWIKKworICAgIEBweXRl
c3QuZml4dHVyZShzY29wZT0ibW9kdWxlIikKKyAgICBkZWYgc210cCgpOgorICAgICAgICByZXR1
cm4gc210cGxpYi5TTVRQKCJzbXRwLmdtYWlsLmNvbSIsIDU4NywgdGltZW91dD01KQorCitUaGUg
bmFtZSBvZiB0aGUgZml4dHVyZSBhZ2FpbiBpcyBgYHNtdHBgYCBhbmQgeW91IGNhbiBhY2Nlc3Mg
aXRzIHJlc3VsdCBieQorbGlzdGluZyB0aGUgbmFtZSBgYHNtdHBgYCBhcyBhbiBpbnB1dCBwYXJh
bWV0ZXIgaW4gYW55IHRlc3Qgb3IgZml4dHVyZQorZnVuY3Rpb24gKGluIG9yIGJlbG93IHRoZSBk
aXJlY3Rvcnkgd2hlcmUgYGBjb25mdGVzdC5weWBgIGlzIGxvY2F0ZWQpOjoKKworICAgICMgY29u
dGVudCBvZiB0ZXN0X21vZHVsZS5weQorCisgICAgZGVmIHRlc3RfZWhsbyhzbXRwKToKKyAgICAg
ICAgcmVzcG9uc2UsIG1zZyA9IHNtdHAuZWhsbygpCisgICAgICAgIGFzc2VydCByZXNwb25zZSA9
PSAyNTAKKyAgICAgICAgYXNzZXJ0IGIic210cC5nbWFpbC5jb20iIGluIG1zZworICAgICAgICBh
c3NlcnQgMCAgIyBmb3IgZGVtbyBwdXJwb3NlcworCisgICAgZGVmIHRlc3Rfbm9vcChzbXRwKToK
KyAgICAgICAgcmVzcG9uc2UsIG1zZyA9IHNtdHAubm9vcCgpCisgICAgICAgIGFzc2VydCByZXNw
b25zZSA9PSAyNTAKKyAgICAgICAgYXNzZXJ0IDAgICMgZm9yIGRlbW8gcHVycG9zZXMKKworV2Ug
ZGVsaWJlcmF0ZWx5IGluc2VydCBmYWlsaW5nIGBgYXNzZXJ0IDBgYCBzdGF0ZW1lbnRzIGluIG9y
ZGVyIHRvCitpbnNwZWN0IHdoYXQgaXMgZ29pbmcgb24gYW5kIGNhbiBub3cgcnVuIHRoZSB0ZXN0
czo6CisKKyAgICAkIHB5dGVzdCB0ZXN0X21vZHVsZS5weQorICAgID09PT09PT09PT09PT09PT09
PT09PT09PT09PSB0ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKyAgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHkt
MS54LnksIHBsdWdneS0wLngueQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZp
bGU6CisgICAgY29sbGVjdGVkIDIgaXRlbXMKKyAgICAKKyAgICB0ZXN0X21vZHVsZS5weSBGRiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0K
KyAgICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRkFJTFVSRVMgPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18gdGVzdF9laGxvIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwor
ICAgIAorICAgIHNtdHAgPSA8c210cGxpYi5TTVRQIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAg
IAorICAgICAgICBkZWYgdGVzdF9laGxvKHNtdHApOgorICAgICAgICAgICAgcmVzcG9uc2UsIG1z
ZyA9IHNtdHAuZWhsbygpCisgICAgICAgICAgICBhc3NlcnQgcmVzcG9uc2UgPT0gMjUwCisgICAg
ICAgICAgICBhc3NlcnQgYiJzbXRwLmdtYWlsLmNvbSIgaW4gbXNnCisgICAgPiAgICAgICBhc3Nl
cnQgMCAgIyBmb3IgZGVtbyBwdXJwb3NlcworICAgIEUgICAgICAgYXNzZXJ0IDAKKyAgICAKKyAg
ICB0ZXN0X21vZHVsZS5weTo2OiBBc3NlcnRpb25FcnJvcgorICAgIF9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fIHRlc3Rfbm9vcCBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KKyAgICAKKyAgICBzbXRwID0gPHNtdHBsaWIuU01UUCBvYmplY3QgYXQgMHhkZWFkYmVlZj4K
KyAgICAKKyAgICAgICAgZGVmIHRlc3Rfbm9vcChzbXRwKToKKyAgICAgICAgICAgIHJlc3BvbnNl
LCBtc2cgPSBzbXRwLm5vb3AoKQorICAgICAgICAgICAgYXNzZXJ0IHJlc3BvbnNlID09IDI1MAor
ICAgID4gICAgICAgYXNzZXJ0IDAgICMgZm9yIGRlbW8gcHVycG9zZXMKKyAgICBFICAgICAgIGFz
c2VydCAwCisgICAgCisgICAgdGVzdF9tb2R1bGUucHk6MTE6IEFzc2VydGlvbkVycm9yCisgICAg
PT09PT09PT09PT09PT09PT09PT09PT09PSAyIGZhaWxlZCBpbiAwLjEyIHNlY29uZHMgPT09PT09
PT09PT09PT09PT09PT09PT09PQorCitZb3Ugc2VlIHRoZSB0d28gYGBhc3NlcnQgMGBgIGZhaWxp
bmcgYW5kIG1vcmUgaW1wb3J0YW50bHkgeW91IGNhbiBhbHNvIHNlZQordGhhdCB0aGUgc2FtZSAo
bW9kdWxlLXNjb3BlZCkgYGBzbXRwYGAgb2JqZWN0IHdhcyBwYXNzZWQgaW50byB0aGUgdHdvCit0
ZXN0IGZ1bmN0aW9ucyBiZWNhdXNlIHB5dGVzdCBzaG93cyB0aGUgaW5jb21pbmcgYXJndW1lbnQg
dmFsdWVzIGluIHRoZQordHJhY2ViYWNrLiAgQXMgYSByZXN1bHQsIHRoZSB0d28gdGVzdCBmdW5j
dGlvbnMgdXNpbmcgYGBzbXRwYGAgcnVuIGFzCitxdWljayBhcyBhIHNpbmdsZSBvbmUgYmVjYXVz
ZSB0aGV5IHJldXNlIHRoZSBzYW1lIGluc3RhbmNlLgorCitJZiB5b3UgZGVjaWRlIHRoYXQgeW91
IHJhdGhlciB3YW50IHRvIGhhdmUgYSBzZXNzaW9uLXNjb3BlZCBgYHNtdHBgYAoraW5zdGFuY2Us
IHlvdSBjYW4gc2ltcGx5IGRlY2xhcmUgaXQ6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKwor
ICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ic2Vzc2lvbiIpCisgICAgZGVmIHNtdHAoLi4uKToK
KyAgICAgICAgIyB0aGUgcmV0dXJuZWQgZml4dHVyZSB2YWx1ZSB3aWxsIGJlIHNoYXJlZCBmb3IK
KyAgICAgICAgIyBhbGwgdGVzdHMgbmVlZGluZyBpdAorCitGaW5hbGx5LCB0aGUgYGBjbGFzc2Bg
IHNjb3BlIHdpbGwgaW52b2tlIHRoZSBmaXh0dXJlIG9uY2UgcGVyIHRlc3QgKmNsYXNzKi4KKwor
Li4gX2BmaW5hbGl6YXRpb25gOgorCitGaXh0dXJlIGZpbmFsaXphdGlvbiAvIGV4ZWN1dGluZyB0
ZWFyZG93biBjb2RlCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKK3B5dGVzdCBzdXBwb3J0cyBleGVjdXRpb24gb2YgZml4dHVy
ZSBzcGVjaWZpYyBmaW5hbGl6YXRpb24gY29kZQord2hlbiB0aGUgZml4dHVyZSBnb2VzIG91dCBv
ZiBzY29wZS4gIEJ5IHVzaW5nIGEgYGB5aWVsZGBgIHN0YXRlbWVudCBpbnN0ZWFkIG9mIGBgcmV0
dXJuYGAsIGFsbAordGhlIGNvZGUgYWZ0ZXIgdGhlICp5aWVsZCogc3RhdGVtZW50IHNlcnZlcyBh
cyB0aGUgdGVhcmRvd24gY29kZToKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgIyBj
b250ZW50IG9mIGNvbmZ0ZXN0LnB5CisKKyAgICBpbXBvcnQgc210cGxpYgorICAgIGltcG9ydCBw
eXRlc3QKKworICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIikKKyAgICBkZWYgc210
cCgpOgorICAgICAgICBzbXRwID0gc210cGxpYi5TTVRQKCJzbXRwLmdtYWlsLmNvbSIsIDU4Nywg
dGltZW91dD01KQorICAgICAgICB5aWVsZCBzbXRwICAjIHByb3ZpZGUgdGhlIGZpeHR1cmUgdmFs
dWUKKyAgICAgICAgcHJpbnQoInRlYXJkb3duIHNtdHAiKQorICAgICAgICBzbXRwLmNsb3NlKCkK
KworVGhlIGBgcHJpbnRgYCBhbmQgYGBzbXRwLmNsb3NlKClgYCBzdGF0ZW1lbnRzIHdpbGwgZXhl
Y3V0ZSB3aGVuIHRoZSBsYXN0IHRlc3QgaW4KK3RoZSBtb2R1bGUgaGFzIGZpbmlzaGVkIGV4ZWN1
dGlvbiwgcmVnYXJkbGVzcyBvZiB0aGUgZXhjZXB0aW9uIHN0YXR1cyBvZiB0aGUKK3Rlc3RzLgor
CitMZXQncyBleGVjdXRlIGl0OjoKKworICAgICQgcHl0ZXN0IC1zIC1xIC0tdGI9bm8KKyAgICBG
RiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbMTAwJV10ZWFyZG93biBzbXRwCisgICAgCisgICAgMiBmYWlsZWQgaW4gMC4x
MiBzZWNvbmRzCisKK1dlIHNlZSB0aGF0IHRoZSBgYHNtdHBgYCBpbnN0YW5jZSBpcyBmaW5hbGl6
ZWQgYWZ0ZXIgdGhlIHR3bwordGVzdHMgZmluaXNoZWQgZXhlY3V0aW9uLiAgTm90ZSB0aGF0IGlm
IHdlIGRlY29yYXRlZCBvdXIgZml4dHVyZQorZnVuY3Rpb24gd2l0aCBgYHNjb3BlPSdmdW5jdGlv
bidgYCB0aGVuIGZpeHR1cmUgc2V0dXAgYW5kIGNsZWFudXAgd291bGQKK29jY3VyIGFyb3VuZCBl
YWNoIHNpbmdsZSB0ZXN0LiAgSW4gZWl0aGVyIGNhc2UgdGhlIHRlc3QKK21vZHVsZSBpdHNlbGYg
ZG9lcyBub3QgbmVlZCB0byBjaGFuZ2Ugb3Iga25vdyBhYm91dCB0aGVzZSBkZXRhaWxzCitvZiBm
aXh0dXJlIHNldHVwLgorCitOb3RlIHRoYXQgd2UgY2FuIGFsc28gc2VhbWxlc3NseSB1c2UgdGhl
IGBgeWllbGRgYCBzeW50YXggd2l0aCBgYHdpdGhgYCBzdGF0ZW1lbnRzOgorCisuLiBjb2RlLWJs
b2NrOjogcHl0aG9uCisKKyAgICAjIGNvbnRlbnQgb2YgdGVzdF95aWVsZDIucHkKKworICAgIGlt
cG9ydCBzbXRwbGliCisgICAgaW1wb3J0IHB5dGVzdAorCisgICAgQHB5dGVzdC5maXh0dXJlKHNj
b3BlPSJtb2R1bGUiKQorICAgIGRlZiBzbXRwKCk6CisgICAgICAgIHdpdGggc210cGxpYi5TTVRQ
KCJzbXRwLmdtYWlsLmNvbSIsIDU4NywgdGltZW91dD01KSBhcyBzbXRwOgorICAgICAgICAgICAg
eWllbGQgc210cCAgIyBwcm92aWRlIHRoZSBmaXh0dXJlIHZhbHVlCisKKworVGhlIGBgc210cGBg
IGNvbm5lY3Rpb24gd2lsbCBiZSBjbG9zZWQgYWZ0ZXIgdGhlIHRlc3QgZmluaXNoZWQgZXhlY3V0
aW9uCitiZWNhdXNlIHRoZSBgYHNtdHBgYCBvYmplY3QgYXV0b21hdGljYWxseSBjbG9zZXMgd2hl
bgordGhlIGBgd2l0aGBgIHN0YXRlbWVudCBlbmRzLgorCitOb3RlIHRoYXQgaWYgYW4gZXhjZXB0
aW9uIGhhcHBlbnMgZHVyaW5nIHRoZSAqc2V0dXAqIGNvZGUgKGJlZm9yZSB0aGUgYGB5aWVsZGBg
IGtleXdvcmQpLCB0aGUKKyp0ZWFyZG93biogY29kZSAoYWZ0ZXIgdGhlIGBgeWllbGRgYCkgd2ls
bCBub3QgYmUgY2FsbGVkLgorCitBbiBhbHRlcm5hdGl2ZSBvcHRpb24gZm9yIGV4ZWN1dGluZyAq
dGVhcmRvd24qIGNvZGUgaXMgdG8KK21ha2UgdXNlIG9mIHRoZSBgYGFkZGZpbmFsaXplcmBgIG1l
dGhvZCBvZiB0aGUgYHJlcXVlc3QtY29udGV4dGBfIG9iamVjdCB0byByZWdpc3RlcgorZmluYWxp
emF0aW9uIGZ1bmN0aW9ucy4KKworSGVyZSdzIHRoZSBgYHNtdHBgYCBmaXh0dXJlIGNoYW5nZWQg
dG8gdXNlIGBgYWRkZmluYWxpemVyYGAgZm9yIGNsZWFudXA6CisKKy4uIGNvZGUtYmxvY2s6OiBw
eXRob24KKworICAgICMgY29udGVudCBvZiBjb25mdGVzdC5weQorICAgIGltcG9ydCBzbXRwbGli
CisgICAgaW1wb3J0IHB5dGVzdAorCisgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUi
KQorICAgIGRlZiBzbXRwKHJlcXVlc3QpOgorICAgICAgICBzbXRwID0gc210cGxpYi5TTVRQKCJz
bXRwLmdtYWlsLmNvbSIsIDU4NywgdGltZW91dD01KQorICAgICAgICBkZWYgZmluKCk6CisgICAg
ICAgICAgICBwcmludCAoInRlYXJkb3duIHNtdHAiKQorICAgICAgICAgICAgc210cC5jbG9zZSgp
CisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGZpbikKKyAgICAgICAgcmV0dXJuIHNtdHAg
ICMgcHJvdmlkZSB0aGUgZml4dHVyZSB2YWx1ZQorCisKK0JvdGggYGB5aWVsZGBgIGFuZCBgYGFk
ZGZpbmFsaXplcmBgIG1ldGhvZHMgd29yayBzaW1pbGFybHkgYnkgY2FsbGluZyB0aGVpciBjb2Rl
IGFmdGVyIHRoZSB0ZXN0CitlbmRzLCBidXQgYGBhZGRmaW5hbGl6ZXJgYCBoYXMgdHdvIGtleSBk
aWZmZXJlbmNlcyBvdmVyIGBgeWllbGRgYDoKKworMS4gSXQgaXMgcG9zc2libGUgdG8gcmVnaXN0
ZXIgbXVsdGlwbGUgZmluYWxpemVyIGZ1bmN0aW9ucy4KKworMi4gRmluYWxpemVycyB3aWxsIGFs
d2F5cyBiZSBjYWxsZWQgcmVnYXJkbGVzcyBpZiB0aGUgZml4dHVyZSAqc2V0dXAqIGNvZGUgcmFp
c2VzIGFuIGV4Y2VwdGlvbi4KKyAgIFRoaXMgaXMgaGFuZHkgdG8gcHJvcGVybHkgY2xvc2UgYWxs
IHJlc291cmNlcyBjcmVhdGVkIGJ5IGEgZml4dHVyZSBldmVuIGlmIG9uZSBvZiB0aGVtCisgICBm
YWlscyB0byBiZSBjcmVhdGVkL2FjcXVpcmVkOjoKKworICAgICAgICBAcHl0ZXN0LmZpeHR1cmUK
KyAgICAgICAgZGVmIGVxdWlwbWVudHMocmVxdWVzdCk6CisgICAgICAgICAgICByID0gW10KKyAg
ICAgICAgICAgIGZvciBwb3J0IGluICgnQzEnLCAnQzMnLCAnQzI4Jyk6CisgICAgICAgICAgICAg
ICAgZXF1aXAgPSBjb25uZWN0KHBvcnQpCisgICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5h
bGl6ZXIoZXF1aXAuZGlzY29ubmVjdCkKKyAgICAgICAgICAgICAgICByLmFwcGVuZChlcXVpcCkK
KyAgICAgICAgICAgIHJldHVybiByCisKKyAgIEluIHRoZSBleGFtcGxlIGFib3ZlLCBpZiBgYCJD
MjgiYGAgZmFpbHMgd2l0aCBhbiBleGNlcHRpb24sIGBgIkMxImBgIGFuZCBgYCJDMyJgYCB3aWxs
IHN0aWxsCisgICBiZSBwcm9wZXJseSBjbG9zZWQuIE9mIGNvdXJzZSwgaWYgYW4gZXhjZXB0aW9u
IGhhcHBlbnMgYmVmb3JlIHRoZSBmaW5hbGl6ZSBmdW5jdGlvbiBpcworICAgcmVnaXN0ZXJlZCB0
aGVuIGl0IHdpbGwgbm90IGJlIGV4ZWN1dGVkLgorCisKKy4uIF9gcmVxdWVzdC1jb250ZXh0YDoK
KworRml4dHVyZXMgY2FuIGludHJvc3BlY3QgdGhlIHJlcXVlc3RpbmcgdGVzdCBjb250ZXh0Cist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisKK0ZpeHR1cmUgZnVuY3Rpb24gY2FuIGFjY2VwdCB0aGUgOnB5OmNsYXNzOmByZXF1ZXN0
IDxGaXh0dXJlUmVxdWVzdD5gIG9iamVjdAordG8gaW50cm9zcGVjdCB0aGUgInJlcXVlc3Rpbmci
IHRlc3QgZnVuY3Rpb24sIGNsYXNzIG9yIG1vZHVsZSBjb250ZXh0LgorRnVydGhlciBleHRlbmRp
bmcgdGhlIHByZXZpb3VzIGBgc210cGBgIGZpeHR1cmUgZXhhbXBsZSwgbGV0J3MKK3JlYWQgYW4g
b3B0aW9uYWwgc2VydmVyIFVSTCBmcm9tIHRoZSB0ZXN0IG1vZHVsZSB3aGljaCB1c2VzIG91ciBm
aXh0dXJlOjoKKworICAgICMgY29udGVudCBvZiBjb25mdGVzdC5weQorICAgIGltcG9ydCBweXRl
c3QKKyAgICBpbXBvcnQgc210cGxpYgorCisgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1
bGUiKQorICAgIGRlZiBzbXRwKHJlcXVlc3QpOgorICAgICAgICBzZXJ2ZXIgPSBnZXRhdHRyKHJl
cXVlc3QubW9kdWxlLCAic210cHNlcnZlciIsICJzbXRwLmdtYWlsLmNvbSIpCisgICAgICAgIHNt
dHAgPSBzbXRwbGliLlNNVFAoc2VydmVyLCA1ODcsIHRpbWVvdXQ9NSkKKyAgICAgICAgeWllbGQg
c210cAorICAgICAgICBwcmludCAoImZpbmFsaXppbmcgJXMgKCVzKSIgJSAoc210cCwgc2VydmVy
KSkKKyAgICAgICAgc210cC5jbG9zZSgpCisKK1dlIHVzZSB0aGUgYGByZXF1ZXN0Lm1vZHVsZWBg
IGF0dHJpYnV0ZSB0byBvcHRpb25hbGx5IG9idGFpbiBhbgorYGBzbXRwc2VydmVyYGAgYXR0cmli
dXRlIGZyb20gdGhlIHRlc3QgbW9kdWxlLiAgSWYgd2UganVzdCBleGVjdXRlCithZ2Fpbiwgbm90
aGluZyBtdWNoIGhhcyBjaGFuZ2VkOjoKKworICAgICQgcHl0ZXN0IC1zIC1xIC0tdGI9bm8KKyAg
ICBGRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbMTAwJV1maW5hbGl6aW5nIDxzbXRwbGliLlNNVFAgb2JqZWN0IGF0IDB4
ZGVhZGJlZWY+IChzbXRwLmdtYWlsLmNvbSkKKyAgICAKKyAgICAyIGZhaWxlZCBpbiAwLjEyIHNl
Y29uZHMKKworTGV0J3MgcXVpY2tseSBjcmVhdGUgYW5vdGhlciB0ZXN0IG1vZHVsZSB0aGF0IGFj
dHVhbGx5IHNldHMgdGhlCitzZXJ2ZXIgVVJMIGluIGl0cyBtb2R1bGUgbmFtZXNwYWNlOjoKKwor
ICAgICMgY29udGVudCBvZiB0ZXN0X2Fub3RoZXJzbXRwLnB5CisKKyAgICBzbXRwc2VydmVyID0g
Im1haWwucHl0aG9uLm9yZyIgICMgd2lsbCBiZSByZWFkIGJ5IHNtdHAgZml4dHVyZQorCisgICAg
ZGVmIHRlc3Rfc2hvd2hlbG8oc210cCk6CisgICAgICAgIGFzc2VydCAwLCBzbXRwLmhlbG8oKQor
CitSdW5uaW5nIGl0OjoKKworICAgICQgcHl0ZXN0IC1xcSAtLXRiPXNob3J0IHRlc3RfYW5vdGhl
cnNtdHAucHkKKyAgICBGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKyAgICA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0gRkFJTFVSRVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CisgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIHRlc3Rfc2hvd2hlbG8gX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXworICAgIHRlc3RfYW5vdGhlcnNtdHAucHk6NTogaW4g
dGVzdF9zaG93aGVsbworICAgICAgICBhc3NlcnQgMCwgc210cC5oZWxvKCkKKyAgICBFICAgQXNz
ZXJ0aW9uRXJyb3I6ICgyNTAsIGInbWFpbC5weXRob24ub3JnJykKKyAgICBFICAgYXNzZXJ0IDAK
KyAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENhcHR1cmVkIHN0ZG91dCB0ZWFyZG93biAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgZmluYWxpemluZyA8c210cGxpYi5TTVRQIG9i
amVjdCBhdCAweGRlYWRiZWVmPiAobWFpbC5weXRob24ub3JnKQorCit2b2lsYSEgVGhlIGBgc210
cGBgIGZpeHR1cmUgZnVuY3Rpb24gcGlja2VkIHVwIG91ciBtYWlsIHNlcnZlciBuYW1lCitmcm9t
IHRoZSBtb2R1bGUgbmFtZXNwYWNlLgorCisuLiBfYGZpeHR1cmUtcGFyYW1ldHJpemVgOgorCitQ
YXJhbWV0cml6aW5nIGZpeHR1cmVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitGaXh0dXJlIGZ1bmN0aW9ucyBjYW4g
YmUgcGFyYW1ldHJpemVkIGluIHdoaWNoIGNhc2UgdGhleSB3aWxsIGJlIGNhbGxlZAorbXVsdGlw
bGUgdGltZXMsIGVhY2ggdGltZSBleGVjdXRpbmcgdGhlIHNldCBvZiBkZXBlbmRlbnQgdGVzdHMs
IGkuIGUuIHRoZQordGVzdHMgdGhhdCBkZXBlbmQgb24gdGhpcyBmaXh0dXJlLiAgVGVzdCBmdW5j
dGlvbnMgZG8gdXN1YWxseSBub3QgbmVlZAordG8gYmUgYXdhcmUgb2YgdGhlaXIgcmUtcnVubmlu
Zy4gIEZpeHR1cmUgcGFyYW1ldHJpemF0aW9uIGhlbHBzIHRvCit3cml0ZSBleGhhdXN0aXZlIGZ1
bmN0aW9uYWwgdGVzdHMgZm9yIGNvbXBvbmVudHMgd2hpY2ggdGhlbXNlbHZlcyBjYW4gYmUKK2Nv
bmZpZ3VyZWQgaW4gbXVsdGlwbGUgd2F5cy4KKworRXh0ZW5kaW5nIHRoZSBwcmV2aW91cyBleGFt
cGxlLCB3ZSBjYW4gZmxhZyB0aGUgZml4dHVyZSB0byBjcmVhdGUgdHdvCitgYHNtdHBgYCBmaXh0
dXJlIGluc3RhbmNlcyB3aGljaCB3aWxsIGNhdXNlIGFsbCB0ZXN0cyB1c2luZyB0aGUgZml4dHVy
ZQordG8gcnVuIHR3aWNlLiAgVGhlIGZpeHR1cmUgZnVuY3Rpb24gZ2V0cyBhY2Nlc3MgdG8gZWFj
aCBwYXJhbWV0ZXIKK3Rocm91Z2ggdGhlIHNwZWNpYWwgOnB5OmNsYXNzOmByZXF1ZXN0IDxGaXh0
dXJlUmVxdWVzdD5gIG9iamVjdDo6CisKKyAgICAjIGNvbnRlbnQgb2YgY29uZnRlc3QucHkKKyAg
ICBpbXBvcnQgcHl0ZXN0CisgICAgaW1wb3J0IHNtdHBsaWIKKworICAgIEBweXRlc3QuZml4dHVy
ZShzY29wZT0ibW9kdWxlIiwKKyAgICAgICAgICAgICAgICAgICAgcGFyYW1zPVsic210cC5nbWFp
bC5jb20iLCAibWFpbC5weXRob24ub3JnIl0pCisgICAgZGVmIHNtdHAocmVxdWVzdCk6CisgICAg
ICAgIHNtdHAgPSBzbXRwbGliLlNNVFAocmVxdWVzdC5wYXJhbSwgNTg3LCB0aW1lb3V0PTUpCisg
ICAgICAgIHlpZWxkIHNtdHAKKyAgICAgICAgcHJpbnQgKCJmaW5hbGl6aW5nICVzIiAlIHNtdHAp
CisgICAgICAgIHNtdHAuY2xvc2UoKQorCitUaGUgbWFpbiBjaGFuZ2UgaXMgdGhlIGRlY2xhcmF0
aW9uIG9mIGBgcGFyYW1zYGAgd2l0aAorOnB5OmZ1bmM6YEBweXRlc3QuZml4dHVyZSA8X3B5dGVz
dC5weXRob24uZml4dHVyZT5gLCBhIGxpc3Qgb2YgdmFsdWVzCitmb3IgZWFjaCBvZiB3aGljaCB0
aGUgZml4dHVyZSBmdW5jdGlvbiB3aWxsIGV4ZWN1dGUgYW5kIGNhbiBhY2Nlc3MKK2EgdmFsdWUg
dmlhIGBgcmVxdWVzdC5wYXJhbWBgLiAgTm8gdGVzdCBmdW5jdGlvbiBjb2RlIG5lZWRzIHRvIGNo
YW5nZS4KK1NvIGxldCdzIGp1c3QgZG8gYW5vdGhlciBydW46OgorCisgICAgJCBweXRlc3QgLXEg
dGVzdF9tb2R1bGUucHkKKyAgICBGRkZGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKyAgICA9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0gRkFJTFVSRVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09CisgICAgX19fX19fX19fX19fX19fX19fX19fX19fIHRlc3RfZWhsb1tzbXRwLmdtYWls
LmNvbV0gX19fX19fX19fX19fX19fX19fX19fX19fXworICAgIAorICAgIHNtdHAgPSA8c210cGxp
Yi5TTVRQIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIAorICAgICAgICBkZWYgdGVzdF9laGxv
KHNtdHApOgorICAgICAgICAgICAgcmVzcG9uc2UsIG1zZyA9IHNtdHAuZWhsbygpCisgICAgICAg
ICAgICBhc3NlcnQgcmVzcG9uc2UgPT0gMjUwCisgICAgICAgICAgICBhc3NlcnQgYiJzbXRwLmdt
YWlsLmNvbSIgaW4gbXNnCisgICAgPiAgICAgICBhc3NlcnQgMCAgIyBmb3IgZGVtbyBwdXJwb3Nl
cworICAgIEUgICAgICAgYXNzZXJ0IDAKKyAgICAKKyAgICB0ZXN0X21vZHVsZS5weTo2OiBBc3Nl
cnRpb25FcnJvcgorICAgIF9fX19fX19fX19fX19fX19fX19fX19fXyB0ZXN0X25vb3Bbc210cC5n
bWFpbC5jb21dIF9fX19fX19fX19fX19fX19fX19fX19fX18KKyAgICAKKyAgICBzbXRwID0gPHNt
dHBsaWIuU01UUCBvYmplY3QgYXQgMHhkZWFkYmVlZj4KKyAgICAKKyAgICAgICAgZGVmIHRlc3Rf
bm9vcChzbXRwKToKKyAgICAgICAgICAgIHJlc3BvbnNlLCBtc2cgPSBzbXRwLm5vb3AoKQorICAg
ICAgICAgICAgYXNzZXJ0IHJlc3BvbnNlID09IDI1MAorICAgID4gICAgICAgYXNzZXJ0IDAgICMg
Zm9yIGRlbW8gcHVycG9zZXMKKyAgICBFICAgICAgIGFzc2VydCAwCisgICAgCisgICAgdGVzdF9t
b2R1bGUucHk6MTE6IEFzc2VydGlvbkVycm9yCisgICAgX19fX19fX19fX19fX19fX19fX19fX19f
IHRlc3RfZWhsb1ttYWlsLnB5dGhvbi5vcmddIF9fX19fX19fX19fX19fX19fX19fX19fXworICAg
IAorICAgIHNtdHAgPSA8c210cGxpYi5TTVRQIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIAor
ICAgICAgICBkZWYgdGVzdF9laGxvKHNtdHApOgorICAgICAgICAgICAgcmVzcG9uc2UsIG1zZyA9
IHNtdHAuZWhsbygpCisgICAgICAgICAgICBhc3NlcnQgcmVzcG9uc2UgPT0gMjUwCisgICAgPiAg
ICAgICBhc3NlcnQgYiJzbXRwLmdtYWlsLmNvbSIgaW4gbXNnCisgICAgRSAgICAgICBBc3NlcnRp
b25FcnJvcjogYXNzZXJ0IGInc210cC5nbWFpbC5jb20nIGluIGInbWFpbC5weXRob24ub3JnXG5Q
SVBFTElOSU5HXG5TSVpFIDUxMjAwMDAwXG5FVFJOXG5TVEFSVFRMU1xuQVVUSCBESUdFU1QtTUQ1
IE5UTE0gQ1JBTS1NRDVcbkVOSEFOQ0VEU1RBVFVTQ09ERVNcbjhCSVRNSU1FXG5EU05cblNNVFBV
VEY4JworICAgIAorICAgIHRlc3RfbW9kdWxlLnB5OjU6IEFzc2VydGlvbkVycm9yCisgICAgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ2FwdHVyZWQgc3Rkb3V0IHNldHVwIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorICAgIGZpbmFsaXppbmcgPHNtdHBsaWIuU01UUCBvYmplY3QgYXQg
MHhkZWFkYmVlZj4KKyAgICBfX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9ub29wW21haWwu
cHl0aG9uLm9yZ10gX19fX19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgc210cCA9IDxz
bXRwbGliLlNNVFAgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CisgICAgCisgICAgICAgIGRlZiB0ZXN0
X25vb3Aoc210cCk6CisgICAgICAgICAgICByZXNwb25zZSwgbXNnID0gc210cC5ub29wKCkKKyAg
ICAgICAgICAgIGFzc2VydCByZXNwb25zZSA9PSAyNTAKKyAgICA+ICAgICAgIGFzc2VydCAwICAj
IGZvciBkZW1vIHB1cnBvc2VzCisgICAgRSAgICAgICBhc3NlcnQgMAorICAgIAorICAgIHRlc3Rf
bW9kdWxlLnB5OjExOiBBc3NlcnRpb25FcnJvcgorICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gQ2FwdHVyZWQgc3Rkb3V0IHRlYXJkb3duIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg
ICBmaW5hbGl6aW5nIDxzbXRwbGliLlNNVFAgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CisgICAgNCBm
YWlsZWQgaW4gMC4xMiBzZWNvbmRzCisKK1dlIHNlZSB0aGF0IG91ciB0d28gdGVzdCBmdW5jdGlv
bnMgZWFjaCByYW4gdHdpY2UsIGFnYWluc3QgdGhlIGRpZmZlcmVudAorYGBzbXRwYGAgaW5zdGFu
Y2VzLiAgTm90ZSBhbHNvLCB0aGF0IHdpdGggdGhlIGBgbWFpbC5weXRob24ub3JnYGAKK2Nvbm5l
Y3Rpb24gdGhlIHNlY29uZCB0ZXN0IGZhaWxzIGluIGBgdGVzdF9laGxvYGAgYmVjYXVzZSBhCitk
aWZmZXJlbnQgc2VydmVyIHN0cmluZyBpcyBleHBlY3RlZCB0aGFuIHdoYXQgYXJyaXZlZC4KKwor
cHl0ZXN0IHdpbGwgYnVpbGQgYSBzdHJpbmcgdGhhdCBpcyB0aGUgdGVzdCBJRCBmb3IgZWFjaCBm
aXh0dXJlIHZhbHVlCitpbiBhIHBhcmFtZXRyaXplZCBmaXh0dXJlLCBlLmcuIGBgdGVzdF9laGxv
W3NtdHAuZ21haWwuY29tXWBgIGFuZAorYGB0ZXN0X2VobG9bbWFpbC5weXRob24ub3JnXWBgIGlu
IHRoZSBhYm92ZSBleGFtcGxlcy4gIFRoZXNlIElEcyBjYW4KK2JlIHVzZWQgd2l0aCBgYC1rYGAg
dG8gc2VsZWN0IHNwZWNpZmljIGNhc2VzIHRvIHJ1biwgYW5kIHRoZXkgd2lsbAorYWxzbyBpZGVu
dGlmeSB0aGUgc3BlY2lmaWMgY2FzZSB3aGVuIG9uZSBpcyBmYWlsaW5nLiAgUnVubmluZyBweXRl
c3QKK3dpdGggYGAtLWNvbGxlY3Qtb25seWBgIHdpbGwgc2hvdyB0aGUgZ2VuZXJhdGVkIElEcy4K
KworTnVtYmVycywgc3RyaW5ncywgYm9vbGVhbnMgYW5kIE5vbmUgd2lsbCBoYXZlIHRoZWlyIHVz
dWFsIHN0cmluZworcmVwcmVzZW50YXRpb24gdXNlZCBpbiB0aGUgdGVzdCBJRC4gRm9yIG90aGVy
IG9iamVjdHMsIHB5dGVzdCB3aWxsCittYWtlIGEgc3RyaW5nIGJhc2VkIG9uIHRoZSBhcmd1bWVu
dCBuYW1lLiAgSXQgaXMgcG9zc2libGUgdG8gY3VzdG9taXNlCit0aGUgc3RyaW5nIHVzZWQgaW4g
YSB0ZXN0IElEIGZvciBhIGNlcnRhaW4gZml4dHVyZSB2YWx1ZSBieSB1c2luZyB0aGUKK2BgaWRz
YGAga2V5d29yZCBhcmd1bWVudDo6CisKKyAgICMgY29udGVudCBvZiB0ZXN0X2lkcy5weQorICAg
aW1wb3J0IHB5dGVzdAorCisgICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVswLCAxXSwgaWRzPVsi
c3BhbSIsICJoYW0iXSkKKyAgIGRlZiBhKHJlcXVlc3QpOgorICAgICAgIHJldHVybiByZXF1ZXN0
LnBhcmFtCisKKyAgIGRlZiB0ZXN0X2EoYSk6CisgICAgICAgcGFzcworCisgICBkZWYgaWRmbihm
aXh0dXJlX3ZhbHVlKToKKyAgICAgICBpZiBmaXh0dXJlX3ZhbHVlID09IDA6CisgICAgICAgICAg
IHJldHVybiAiZWdncyIKKyAgICAgICBlbHNlOgorICAgICAgICAgICByZXR1cm4gTm9uZQorCisg
ICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVswLCAxXSwgaWRzPWlkZm4pCisgICBkZWYgYihyZXF1
ZXN0KToKKyAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisgICBkZWYgdGVzdF9iKGIpOgor
ICAgICAgIHBhc3MKKworVGhlIGFib3ZlIHNob3dzIGhvdyBgYGlkc2BgIGNhbiBiZSBlaXRoZXIg
YSBsaXN0IG9mIHN0cmluZ3MgdG8gdXNlIG9yCithIGZ1bmN0aW9uIHdoaWNoIHdpbGwgYmUgY2Fs
bGVkIHdpdGggdGhlIGZpeHR1cmUgdmFsdWUgYW5kIHRoZW4KK2hhcyB0byByZXR1cm4gYSBzdHJp
bmcgdG8gdXNlLiAgSW4gdGhlIGxhdHRlciBjYXNlIGlmIHRoZSBmdW5jdGlvbgorcmV0dXJuIGBg
Tm9uZWBgIHRoZW4gcHl0ZXN0J3MgYXV0by1nZW5lcmF0ZWQgSUQgd2lsbCBiZSB1c2VkLgorCitS
dW5uaW5nIHRoZSBhYm92ZSB0ZXN0cyByZXN1bHRzIGluIHRoZSBmb2xsb3dpbmcgdGVzdCBJRHMg
YmVpbmcgdXNlZDo6CisKKyAgICQgcHl0ZXN0IC0tY29sbGVjdC1vbmx5CisgICA9PT09PT09PT09
PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09CisgICBwbGF0Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngu
eSwgcHktMS54LnksIHBsdWdneS0wLngueQorICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwg
aW5pZmlsZToKKyAgIGNvbGxlY3RlZCAxMCBpdGVtcworICAgPE1vZHVsZSAndGVzdF9hbm90aGVy
c210cC5weSc+CisgICAgIDxGdW5jdGlvbiAndGVzdF9zaG93aGVsb1tzbXRwLmdtYWlsLmNvbV0n
PgorICAgICA8RnVuY3Rpb24gJ3Rlc3Rfc2hvd2hlbG9bbWFpbC5weXRob24ub3JnXSc+CisgICA8
TW9kdWxlICd0ZXN0X2lkcy5weSc+CisgICAgIDxGdW5jdGlvbiAndGVzdF9hW3NwYW1dJz4KKyAg
ICAgPEZ1bmN0aW9uICd0ZXN0X2FbaGFtXSc+CisgICAgIDxGdW5jdGlvbiAndGVzdF9iW2VnZ3Nd
Jz4KKyAgICAgPEZ1bmN0aW9uICd0ZXN0X2JbMV0nPgorICAgPE1vZHVsZSAndGVzdF9tb2R1bGUu
cHknPgorICAgICA8RnVuY3Rpb24gJ3Rlc3RfZWhsb1tzbXRwLmdtYWlsLmNvbV0nPgorICAgICA8
RnVuY3Rpb24gJ3Rlc3Rfbm9vcFtzbXRwLmdtYWlsLmNvbV0nPgorICAgICA8RnVuY3Rpb24gJ3Rl
c3RfZWhsb1ttYWlsLnB5dGhvbi5vcmddJz4KKyAgICAgPEZ1bmN0aW9uICd0ZXN0X25vb3BbbWFp
bC5weXRob24ub3JnXSc+CisgICAKKyAgID09PT09PT09PT09PT09PT09PT09PT09IG5vIHRlc3Rz
IHJhbiBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gX2BpbnRl
cmRlcGVuZGVudCBmaXh0dXJlc2A6CisKK01vZHVsYXJpdHk6IHVzaW5nIGZpeHR1cmVzIGZyb20g
YSBmaXh0dXJlIGZ1bmN0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1lvdSBjYW4gbm90IG9ubHkgdXNlIGZpeHR1cmVzIGlu
IHRlc3QgZnVuY3Rpb25zIGJ1dCBmaXh0dXJlIGZ1bmN0aW9ucworY2FuIHVzZSBvdGhlciBmaXh0
dXJlcyB0aGVtc2VsdmVzLiAgVGhpcyBjb250cmlidXRlcyB0byBhIG1vZHVsYXIgZGVzaWduCitv
ZiB5b3VyIGZpeHR1cmVzIGFuZCBhbGxvd3MgcmUtdXNlIG9mIGZyYW1ld29yay1zcGVjaWZpYyBm
aXh0dXJlcyBhY3Jvc3MKK21hbnkgcHJvamVjdHMuICBBcyBhIHNpbXBsZSBleGFtcGxlLCB3ZSBj
YW4gZXh0ZW5kIHRoZSBwcmV2aW91cyBleGFtcGxlCithbmQgaW5zdGFudGlhdGUgYW4gb2JqZWN0
IGBgYXBwYGAgd2hlcmUgd2Ugc3RpY2sgdGhlIGFscmVhZHkgZGVmaW5lZAorYGBzbXRwYGAgcmVz
b3VyY2UgaW50byBpdDo6CisKKyAgICAjIGNvbnRlbnQgb2YgdGVzdF9hcHBzZXR1cC5weQorCisg
ICAgaW1wb3J0IHB5dGVzdAorCisgICAgY2xhc3MgQXBwKG9iamVjdCk6CisgICAgICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBzbXRwKToKKyAgICAgICAgICAgIHNlbGYuc210cCA9IHNtdHAKKworICAg
IEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIikKKyAgICBkZWYgYXBwKHNtdHApOgorICAg
ICAgICByZXR1cm4gQXBwKHNtdHApCisKKyAgICBkZWYgdGVzdF9zbXRwX2V4aXN0cyhhcHApOgor
ICAgICAgICBhc3NlcnQgYXBwLnNtdHAKKworSGVyZSB3ZSBkZWNsYXJlIGFuIGBgYXBwYGAgZml4
dHVyZSB3aGljaCByZWNlaXZlcyB0aGUgcHJldmlvdXNseSBkZWZpbmVkCitgYHNtdHBgYCBmaXh0
dXJlIGFuZCBpbnN0YW50aWF0ZXMgYW4gYGBBcHBgYCBvYmplY3Qgd2l0aCBpdC4gIExldCdzIHJ1
biBpdDo6CisKKyAgICAkIHB5dGVzdCAtdiB0ZXN0X2FwcHNldHVwLnB5CisgICAgPT09PT09PT09
PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09
PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMu
eC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55IC0tICRQWVRIT05fUFJFRklYL2Jpbi9weXRob24z
LjUKKyAgICBjYWNoZWRpcjogLmNhY2hlCisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwg
aW5pZmlsZToKKyAgICBjb2xsZWN0aW5nIC4uLiBjb2xsZWN0ZWQgMiBpdGVtcworICAgIAorICAg
IHRlc3RfYXBwc2V0dXAucHk6OnRlc3Rfc210cF9leGlzdHNbc210cC5nbWFpbC5jb21dIFBBU1NF
RCAgICAgICAgICAgIFsgNTAlXQorICAgIHRlc3RfYXBwc2V0dXAucHk6OnRlc3Rfc210cF9leGlz
dHNbbWFpbC5weXRob24ub3JnXSBQQVNTRUQgICAgICAgICAgIFsxMDAlXQorICAgIAorICAgID09
PT09PT09PT09PT09PT09PT09PT09PT0gMiBwYXNzZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09
PT09PT09PT09PT09PT09PT0KKworRHVlIHRvIHRoZSBwYXJhbWV0cml6YXRpb24gb2YgYGBzbXRw
YGAgdGhlIHRlc3Qgd2lsbCBydW4gdHdpY2Ugd2l0aCB0d28KK2RpZmZlcmVudCBgYEFwcGBgIGlu
c3RhbmNlcyBhbmQgcmVzcGVjdGl2ZSBzbXRwIHNlcnZlcnMuICBUaGVyZSBpcyBubworbmVlZCBm
b3IgdGhlIGBgYXBwYGAgZml4dHVyZSB0byBiZSBhd2FyZSBvZiB0aGUgYGBzbXRwYGAgcGFyYW1l
dHJpemF0aW9uCithcyBweXRlc3Qgd2lsbCBmdWxseSBhbmFseXNlIHRoZSBmaXh0dXJlIGRlcGVu
ZGVuY3kgZ3JhcGguCisKK05vdGUsIHRoYXQgdGhlIGBgYXBwYGAgZml4dHVyZSBoYXMgYSBzY29w
ZSBvZiBgYG1vZHVsZWBgIGFuZCB1c2VzIGEKK21vZHVsZS1zY29wZWQgYGBzbXRwYGAgZml4dHVy
ZS4gIFRoZSBleGFtcGxlIHdvdWxkIHN0aWxsIHdvcmsgaWYgYGBzbXRwYGAKK3dhcyBjYWNoZWQg
b24gYSBgYHNlc3Npb25gYCBzY29wZTogaXQgaXMgZmluZSBmb3IgZml4dHVyZXMgdG8gdXNlCisi
YnJvYWRlciIgc2NvcGVkIGZpeHR1cmVzIGJ1dCBub3QgdGhlIG90aGVyIHdheSByb3VuZDoKK0Eg
c2Vzc2lvbi1zY29wZWQgZml4dHVyZSBjb3VsZCBub3QgdXNlIGEgbW9kdWxlLXNjb3BlZCBvbmUg
aW4gYQorbWVhbmluZ2Z1bCB3YXkuCisKKworLi4gX2BhdXRvbWF0aWMgcGVyLXJlc291cmNlIGdy
b3VwaW5nYDoKKworQXV0b21hdGljIGdyb3VwaW5nIG9mIHRlc3RzIGJ5IGZpeHR1cmUgaW5zdGFu
Y2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKKy4uIHJlZ2VuZG9jOiB3aXBlCisKK3B5dGVzdCBtaW5pbWl6ZXMgdGhlIG51bWJl
ciBvZiBhY3RpdmUgZml4dHVyZXMgZHVyaW5nIHRlc3QgcnVucy4KK0lmIHlvdSBoYXZlIGEgcGFy
YW1ldHJpemVkIGZpeHR1cmUsIHRoZW4gYWxsIHRoZSB0ZXN0cyB1c2luZyBpdCB3aWxsCitmaXJz
dCBleGVjdXRlIHdpdGggb25lIGluc3RhbmNlIGFuZCB0aGVuIGZpbmFsaXplcnMgYXJlIGNhbGxl
ZAorYmVmb3JlIHRoZSBuZXh0IGZpeHR1cmUgaW5zdGFuY2UgaXMgY3JlYXRlZC4gIEFtb25nIG90
aGVyIHRoaW5ncywKK3RoaXMgZWFzZXMgdGVzdGluZyBvZiBhcHBsaWNhdGlvbnMgd2hpY2ggY3Jl
YXRlIGFuZCB1c2UgZ2xvYmFsIHN0YXRlLgorCitUaGUgZm9sbG93aW5nIGV4YW1wbGUgdXNlcyB0
d28gcGFyYW1ldHJpemVkIGZpeHR1cmUsIG9uZSBvZiB3aGljaCBpcworc2NvcGVkIG9uIGEgcGVy
LW1vZHVsZSBiYXNpcywgYW5kIGFsbCB0aGUgZnVuY3Rpb25zIHBlcmZvcm0gYGBwcmludGBgIGNh
bGxzCit0byBzaG93IHRoZSBzZXR1cC90ZWFyZG93biBmbG93OjoKKworICAgICMgY29udGVudCBv
ZiB0ZXN0X21vZHVsZS5weQorICAgIGltcG9ydCBweXRlc3QKKworICAgIEBweXRlc3QuZml4dHVy
ZShzY29wZT0ibW9kdWxlIiwgcGFyYW1zPVsibW9kMSIsICJtb2QyIl0pCisgICAgZGVmIG1vZGFy
ZyhyZXF1ZXN0KToKKyAgICAgICAgcGFyYW0gPSByZXF1ZXN0LnBhcmFtCisgICAgICAgIHByaW50
ICgiICBTRVRVUCBtb2RhcmcgJXMiICUgcGFyYW0pCisgICAgICAgIHlpZWxkIHBhcmFtCisgICAg
ICAgIHByaW50ICgiICBURUFSRE9XTiBtb2RhcmcgJXMiICUgcGFyYW0pCisKKyAgICBAcHl0ZXN0
LmZpeHR1cmUoc2NvcGU9ImZ1bmN0aW9uIiwgcGFyYW1zPVsxLDJdKQorICAgIGRlZiBvdGhlcmFy
ZyhyZXF1ZXN0KToKKyAgICAgICAgcGFyYW0gPSByZXF1ZXN0LnBhcmFtCisgICAgICAgIHByaW50
ICgiICBTRVRVUCBvdGhlcmFyZyAlcyIgJSBwYXJhbSkKKyAgICAgICAgeWllbGQgcGFyYW0KKyAg
ICAgICAgcHJpbnQgKCIgIFRFQVJET1dOIG90aGVyYXJnICVzIiAlIHBhcmFtKQorCisgICAgZGVm
IHRlc3RfMChvdGhlcmFyZyk6CisgICAgICAgIHByaW50ICgiICBSVU4gdGVzdDAgd2l0aCBvdGhl
cmFyZyAlcyIgJSBvdGhlcmFyZykKKyAgICBkZWYgdGVzdF8xKG1vZGFyZyk6CisgICAgICAgIHBy
aW50ICgiICBSVU4gdGVzdDEgd2l0aCBtb2RhcmcgJXMiICUgbW9kYXJnKQorICAgIGRlZiB0ZXN0
XzIob3RoZXJhcmcsIG1vZGFyZyk6CisgICAgICAgIHByaW50ICgiICBSVU4gdGVzdDIgd2l0aCBv
dGhlcmFyZyAlcyBhbmQgbW9kYXJnICVzIiAlIChvdGhlcmFyZywgbW9kYXJnKSkKKworCitMZXQn
cyBydW4gdGhlIHRlc3RzIGluIHZlcmJvc2UgbW9kZSBhbmQgd2l0aCBsb29raW5nIGF0IHRoZSBw
cmludC1vdXRwdXQ6OgorCisgICAgJCBweXRlc3QgLXYgLXMgdGVzdF9tb2R1bGUucHkKKyAgICA9
PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBw
eXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkgLS0gJFBZVEhPTl9QUkVGSVgvYmlu
L3B5dGhvbjMuNQorICAgIGNhY2hlZGlyOiAuY2FjaGUKKyAgICByb290ZGlyOiAkUkVHRU5ET0Nf
VE1QRElSLCBpbmlmaWxlOgorICAgIGNvbGxlY3RpbmcgLi4uIGNvbGxlY3RlZCA4IGl0ZW1zCisg
ICAgCisgICAgdGVzdF9tb2R1bGUucHk6OnRlc3RfMFsxXSAgIFNFVFVQIG90aGVyYXJnIDEKKyAg
ICAgIFJVTiB0ZXN0MCB3aXRoIG90aGVyYXJnIDEKKyAgICBQQVNTRUQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgWyAxMiVdICBURUFSRE9XTiBvdGhlcmFyZyAxCisgICAgCisg
ICAgdGVzdF9tb2R1bGUucHk6OnRlc3RfMFsyXSAgIFNFVFVQIG90aGVyYXJnIDIKKyAgICAgIFJV
TiB0ZXN0MCB3aXRoIG90aGVyYXJnIDIKKyAgICBQQVNTRUQgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgWyAyNSVdICBURUFSRE9XTiBvdGhlcmFyZyAyCisgICAgCisgICAgdGVz
dF9tb2R1bGUucHk6OnRlc3RfMVttb2QxXSAgIFNFVFVQIG1vZGFyZyBtb2QxCisgICAgICBSVU4g
dGVzdDEgd2l0aCBtb2RhcmcgbW9kMQorICAgIFBBU1NFRCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbIDM3JV0KKyAgICB0ZXN0X21vZHVsZS5weTo6dGVzdF8yWzEtbW9kMV0gICBT
RVRVUCBvdGhlcmFyZyAxCisgICAgICBSVU4gdGVzdDIgd2l0aCBvdGhlcmFyZyAxIGFuZCBtb2Rh
cmcgbW9kMQorICAgIFBBU1NFRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyA1MCVd
ICBURUFSRE9XTiBvdGhlcmFyZyAxCisgICAgCisgICAgdGVzdF9tb2R1bGUucHk6OnRlc3RfMlsy
LW1vZDFdICAgU0VUVVAgb3RoZXJhcmcgMgorICAgICAgUlVOIHRlc3QyIHdpdGggb3RoZXJhcmcg
MiBhbmQgbW9kYXJnIG1vZDEKKyAgICBQQVNTRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFsgNjIlXSAgVEVBUkRPV04gb3RoZXJhcmcgMgorICAgIAorICAgIHRlc3RfbW9kdWxlLnB5
Ojp0ZXN0XzFbbW9kMl0gICBURUFSRE9XTiBtb2RhcmcgbW9kMQorICAgICAgU0VUVVAgbW9kYXJn
IG1vZDIKKyAgICAgIFJVTiB0ZXN0MSB3aXRoIG1vZGFyZyBtb2QyCisgICAgUEFTU0VEICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsgNzUlXQorICAgIHRlc3RfbW9kdWxlLnB5Ojp0
ZXN0XzJbMS1tb2QyXSAgIFNFVFVQIG90aGVyYXJnIDEKKyAgICAgIFJVTiB0ZXN0MiB3aXRoIG90
aGVyYXJnIDEgYW5kIG1vZGFyZyBtb2QyCisgICAgUEFTU0VEICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbIDg3JV0gIFRFQVJET1dOIG90aGVyYXJnIDEKKyAgICAKKyAgICB0ZXN0X21v
ZHVsZS5weTo6dGVzdF8yWzItbW9kMl0gICBTRVRVUCBvdGhlcmFyZyAyCisgICAgICBSVU4gdGVz
dDIgd2l0aCBvdGhlcmFyZyAyIGFuZCBtb2RhcmcgbW9kMgorICAgIFBBU1NFRCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgWzEwMCVdICBURUFSRE9XTiBvdGhlcmFyZyAyCisgICAgICBU
RUFSRE9XTiBtb2RhcmcgbW9kMgorICAgIAorICAgIAorICAgID09PT09PT09PT09PT09PT09PT09
PT09PT0gOCBwYXNzZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PT09PT0K
KworWW91IGNhbiBzZWUgdGhhdCB0aGUgcGFyYW1ldHJpemVkIG1vZHVsZS1zY29wZWQgYGBtb2Rh
cmdgYCByZXNvdXJjZSBjYXVzZWQgYW4KK29yZGVyaW5nIG9mIHRlc3QgZXhlY3V0aW9uIHRoYXQg
bGVhZCB0byB0aGUgZmV3ZXN0IHBvc3NpYmxlICJhY3RpdmUiIHJlc291cmNlcy4KK1RoZSBmaW5h
bGl6ZXIgZm9yIHRoZSBgYG1vZDFgYCBwYXJhbWV0cml6ZWQgcmVzb3VyY2Ugd2FzIGV4ZWN1dGVk
IGJlZm9yZSB0aGUKK2BgbW9kMmBgIHJlc291cmNlIHdhcyBzZXR1cC4KKworSW4gcGFydGljdWxh
ciBub3RpY2UgdGhhdCB0ZXN0XzAgaXMgY29tcGxldGVseSBpbmRlcGVuZGVudCBhbmQgZmluaXNo
ZXMgZmlyc3QuCitUaGVuIHRlc3RfMSBpcyBleGVjdXRlZCB3aXRoIGBgbW9kMWBgLCB0aGVuIHRl
c3RfMiB3aXRoIGBgbW9kMWBgLCB0aGVuIHRlc3RfMQord2l0aCBgYG1vZDJgYCBhbmQgZmluYWxs
eSB0ZXN0XzIgd2l0aCBgYG1vZDJgYC4KKworVGhlIGBgb3RoZXJhcmdgYCBwYXJhbWV0cml6ZWQg
cmVzb3VyY2UgKGhhdmluZyBmdW5jdGlvbiBzY29wZSkgd2FzIHNldCB1cCBiZWZvcmUKK2FuZCB0
ZWFyZWQgZG93biBhZnRlciBldmVyeSB0ZXN0IHRoYXQgdXNlZCBpdC4KKworCisuLiBfYHVzZWZp
eHR1cmVzYDoKKworVXNpbmcgZml4dHVyZXMgZnJvbSBjbGFzc2VzLCBtb2R1bGVzIG9yIHByb2pl
Y3RzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIHJlZ2VuZG9jOndpcGUKKworU29tZXRpbWVzIHRlc3Qg
ZnVuY3Rpb25zIGRvIG5vdCBkaXJlY3RseSBuZWVkIGFjY2VzcyB0byBhIGZpeHR1cmUgb2JqZWN0
LgorRm9yIGV4YW1wbGUsIHRlc3RzIG1heSByZXF1aXJlIHRvIG9wZXJhdGUgd2l0aCBhbiBlbXB0
eSBkaXJlY3RvcnkgYXMgdGhlCitjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IGJ1dCBvdGhlcndp
c2UgZG8gbm90IGNhcmUgZm9yIHRoZSBjb25jcmV0ZQorZGlyZWN0b3J5LiAgSGVyZSBpcyBob3cg
eW91IGNhbiB1c2UgdGhlIHN0YW5kYXJkIGB0ZW1wZmlsZQorPGh0dHA6Ly9kb2NzLnB5dGhvbi5v
cmcvbGlicmFyeS90ZW1wZmlsZS5odG1sPmBfIGFuZCBweXRlc3QgZml4dHVyZXMgdG8KK2FjaGll
dmUgaXQuICBXZSBzZXBhcmF0ZSB0aGUgY3JlYXRpb24gb2YgdGhlIGZpeHR1cmUgaW50byBhIGNv
bmZ0ZXN0LnB5CitmaWxlOjoKKworICAgICMgY29udGVudCBvZiBjb25mdGVzdC5weQorCisgICAg
aW1wb3J0IHB5dGVzdAorICAgIGltcG9ydCB0ZW1wZmlsZQorICAgIGltcG9ydCBvcworCisgICAg
QHB5dGVzdC5maXh0dXJlKCkKKyAgICBkZWYgY2xlYW5kaXIoKToKKyAgICAgICAgbmV3cGF0aCA9
IHRlbXBmaWxlLm1rZHRlbXAoKQorICAgICAgICBvcy5jaGRpcihuZXdwYXRoKQorCithbmQgZGVj
bGFyZSBpdHMgdXNlIGluIGEgdGVzdCBtb2R1bGUgdmlhIGEgYGB1c2VmaXh0dXJlc2BgIG1hcmtl
cjo6CisKKyAgICAjIGNvbnRlbnQgb2YgdGVzdF9zZXRlbnYucHkKKyAgICBpbXBvcnQgb3MKKyAg
ICBpbXBvcnQgcHl0ZXN0CisKKyAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoImNsZWFuZGly
IikKKyAgICBjbGFzcyBUZXN0RGlyZWN0b3J5SW5pdChvYmplY3QpOgorICAgICAgICBkZWYgdGVz
dF9jd2Rfc3RhcnRzX2VtcHR5KHNlbGYpOgorICAgICAgICAgICAgYXNzZXJ0IG9zLmxpc3RkaXIo
b3MuZ2V0Y3dkKCkpID09IFtdCisgICAgICAgICAgICB3aXRoIG9wZW4oIm15ZmlsZSIsICJ3Iikg
YXMgZjoKKyAgICAgICAgICAgICAgICBmLndyaXRlKCJoZWxsbyIpCisKKyAgICAgICAgZGVmIHRl
c3RfY3dkX2FnYWluX3N0YXJ0c19lbXB0eShzZWxmKToKKyAgICAgICAgICAgIGFzc2VydCBvcy5s
aXN0ZGlyKG9zLmdldGN3ZCgpKSA9PSBbXQorCitEdWUgdG8gdGhlIGBgdXNlZml4dHVyZXNgYCBt
YXJrZXIsIHRoZSBgYGNsZWFuZGlyYGAgZml4dHVyZQord2lsbCBiZSByZXF1aXJlZCBmb3IgdGhl
IGV4ZWN1dGlvbiBvZiBlYWNoIHRlc3QgbWV0aG9kLCBqdXN0IGFzIGlmCit5b3Ugc3BlY2lmaWVk
IGEgImNsZWFuZGlyIiBmdW5jdGlvbiBhcmd1bWVudCB0byBlYWNoIG9mIHRoZW0uICBMZXQncyBy
dW4gaXQKK3RvIHZlcmlmeSBvdXIgZml4dHVyZSBpcyBhY3RpdmF0ZWQgYW5kIHRoZSB0ZXN0cyBw
YXNzOjoKKworICAgICQgcHl0ZXN0IC1xCisgICAgLi4gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCisgICAgMiBw
YXNzZWQgaW4gMC4xMiBzZWNvbmRzCisKK1lvdSBjYW4gc3BlY2lmeSBtdWx0aXBsZSBmaXh0dXJl
cyBsaWtlIHRoaXM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIEBweXRlc3QubWFy
ay51c2VmaXh0dXJlcygiY2xlYW5kaXIiLCAiYW5vdGhlcmZpeHR1cmUiKQorCithbmQgeW91IG1h
eSBzcGVjaWZ5IGZpeHR1cmUgdXNhZ2UgYXQgdGhlIHRlc3QgbW9kdWxlIGxldmVsLCB1c2luZwor
YSBnZW5lcmljIGZlYXR1cmUgb2YgdGhlIG1hcmsgbWVjaGFuaXNtOgorCisuLiBjb2RlLWJsb2Nr
OjogcHl0aG9uCisKKyAgICBweXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoImNs
ZWFuZGlyIikKKworTm90ZSB0aGF0IHRoZSBhc3NpZ25lZCB2YXJpYWJsZSAqbXVzdCogYmUgY2Fs
bGVkIGBgcHl0ZXN0bWFya2BgLCBhc3NpZ25pbmcgZS5nLgorYGBmb29tYXJrYGAgd2lsbCBub3Qg
YWN0aXZhdGUgdGhlIGZpeHR1cmVzLgorCitMYXN0bHkgeW91IGNhbiBwdXQgZml4dHVyZXMgcmVx
dWlyZWQgYnkgYWxsIHRlc3RzIGluIHlvdXIgcHJvamVjdAoraW50byBhbiBpbmktZmlsZToKKwor
Li4gY29kZS1ibG9jazo6IGluaQorCisgICAgIyBjb250ZW50IG9mIHB5dGVzdC5pbmkKKyAgICBb
cHl0ZXN0XQorICAgIHVzZWZpeHR1cmVzID0gY2xlYW5kaXIKKworCisuLiBfYGF1dG91c2VgOgor
Li4gX2BhdXRvdXNlIGZpeHR1cmVzYDoKKworQXV0b3VzZSBmaXh0dXJlcyAoeFVuaXQgc2V0dXAg
b24gc3Rlcm9pZHMpCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIHJlZ2VuZG9jOndpcGUKKworT2NjYXNp
b25hbGx5LCB5b3UgbWF5IHdhbnQgdG8gaGF2ZSBmaXh0dXJlcyBnZXQgaW52b2tlZCBhdXRvbWF0
aWNhbGx5Cit3aXRob3V0IGRlY2xhcmluZyBhIGZ1bmN0aW9uIGFyZ3VtZW50IGV4cGxpY2l0bHkg
b3IgYSBgdXNlZml4dHVyZXNgXyBkZWNvcmF0b3IuCitBcyBhIHByYWN0aWNhbCBleGFtcGxlLCBz
dXBwb3NlIHdlIGhhdmUgYSBkYXRhYmFzZSBmaXh0dXJlIHdoaWNoIGhhcyBhCitiZWdpbi9yb2xs
YmFjay9jb21taXQgYXJjaGl0ZWN0dXJlIGFuZCB3ZSB3YW50IHRvIGF1dG9tYXRpY2FsbHkgc3Vy
cm91bmQKK2VhY2ggdGVzdCBtZXRob2QgYnkgYSB0cmFuc2FjdGlvbiBhbmQgYSByb2xsYmFjay4g
IEhlcmUgaXMgYSBkdW1teQorc2VsZi1jb250YWluZWQgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBp
ZGVhOjoKKworICAgICMgY29udGVudCBvZiB0ZXN0X2RiX3RyYW5zYWN0LnB5CisKKyAgICBpbXBv
cnQgcHl0ZXN0CisKKyAgICBjbGFzcyBEQihvYmplY3QpOgorICAgICAgICBkZWYgX19pbml0X18o
c2VsZik6CisgICAgICAgICAgICBzZWxmLmludHJhbnNhY3Rpb24gPSBbXQorICAgICAgICBkZWYg
YmVnaW4oc2VsZiwgbmFtZSk6CisgICAgICAgICAgICBzZWxmLmludHJhbnNhY3Rpb24uYXBwZW5k
KG5hbWUpCisgICAgICAgIGRlZiByb2xsYmFjayhzZWxmKToKKyAgICAgICAgICAgIHNlbGYuaW50
cmFuc2FjdGlvbi5wb3AoKQorCisgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiKQor
ICAgIGRlZiBkYigpOgorICAgICAgICByZXR1cm4gREIoKQorCisgICAgY2xhc3MgVGVzdENsYXNz
KG9iamVjdCk6CisgICAgICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUpCisgICAgICAg
IGRlZiB0cmFuc2FjdChzZWxmLCByZXF1ZXN0LCBkYik6CisgICAgICAgICAgICBkYi5iZWdpbihy
ZXF1ZXN0LmZ1bmN0aW9uLl9fbmFtZV9fKQorICAgICAgICAgICAgeWllbGQKKyAgICAgICAgICAg
IGRiLnJvbGxiYWNrKCkKKworICAgICAgICBkZWYgdGVzdF9tZXRob2QxKHNlbGYsIGRiKToKKyAg
ICAgICAgICAgIGFzc2VydCBkYi5pbnRyYW5zYWN0aW9uID09IFsidGVzdF9tZXRob2QxIl0KKwor
ICAgICAgICBkZWYgdGVzdF9tZXRob2QyKHNlbGYsIGRiKToKKyAgICAgICAgICAgIGFzc2VydCBk
Yi5pbnRyYW5zYWN0aW9uID09IFsidGVzdF9tZXRob2QyIl0KKworVGhlIGNsYXNzLWxldmVsIGBg
dHJhbnNhY3RgYCBmaXh0dXJlIGlzIG1hcmtlZCB3aXRoICphdXRvdXNlPXRydWUqCit3aGljaCBp
bXBsaWVzIHRoYXQgYWxsIHRlc3QgbWV0aG9kcyBpbiB0aGUgY2xhc3Mgd2lsbCB1c2UgdGhpcyBm
aXh0dXJlCit3aXRob3V0IGEgbmVlZCB0byBzdGF0ZSBpdCBpbiB0aGUgdGVzdCBmdW5jdGlvbiBz
aWduYXR1cmUgb3Igd2l0aCBhCitjbGFzcy1sZXZlbCBgYHVzZWZpeHR1cmVzYGAgZGVjb3JhdG9y
LgorCitJZiB3ZSBydW4gaXQsIHdlIGdldCB0d28gcGFzc2luZyB0ZXN0czo6CisKKyAgICAkIHB5
dGVzdCAtcQorICAgIC4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgIDIgcGFzc2VkIGluIDAuMTIgc2Vj
b25kcworCitIZXJlIGlzIGhvdyBhdXRvdXNlIGZpeHR1cmVzIHdvcmsgaW4gb3RoZXIgc2NvcGVz
OgorCistIGF1dG91c2UgZml4dHVyZXMgb2JleSB0aGUgYGBzY29wZT1gYCBrZXl3b3JkLWFyZ3Vt
ZW50OiBpZiBhbiBhdXRvdXNlIGZpeHR1cmUKKyAgaGFzIGBgc2NvcGU9J3Nlc3Npb24nYGAgaXQg
d2lsbCBvbmx5IGJlIHJ1biBvbmNlLCBubyBtYXR0ZXIgd2hlcmUgaXQgaXMKKyAgZGVmaW5lZC4g
YGBzY29wZT0nY2xhc3MnYGAgbWVhbnMgaXQgd2lsbCBiZSBydW4gb25jZSBwZXIgY2xhc3MsIGV0
Yy4KKworLSBpZiBhbiBhdXRvdXNlIGZpeHR1cmUgaXMgZGVmaW5lZCBpbiBhIHRlc3QgbW9kdWxl
LCBhbGwgaXRzIHRlc3QKKyAgZnVuY3Rpb25zIGF1dG9tYXRpY2FsbHkgdXNlIGl0LgorCistIGlm
IGFuIGF1dG91c2UgZml4dHVyZSBpcyBkZWZpbmVkIGluIGEgY29uZnRlc3QucHkgZmlsZSB0aGVu
IGFsbCB0ZXN0cyBpbgorICBhbGwgdGVzdCBtb2R1bGVzIGJlbG93IGl0cyBkaXJlY3Rvcnkgd2ls
bCBpbnZva2UgdGhlIGZpeHR1cmUuCisKKy0gbGFzdGx5LCBhbmQgKipwbGVhc2UgdXNlIHRoYXQg
d2l0aCBjYXJlKio6IGlmIHlvdSBkZWZpbmUgYW4gYXV0b3VzZQorICBmaXh0dXJlIGluIGEgcGx1
Z2luLCBpdCB3aWxsIGJlIGludm9rZWQgZm9yIGFsbCB0ZXN0cyBpbiBhbGwgcHJvamVjdHMKKyAg
d2hlcmUgdGhlIHBsdWdpbiBpcyBpbnN0YWxsZWQuICBUaGlzIGNhbiBiZSB1c2VmdWwgaWYgYSBm
aXh0dXJlIG9ubHkKKyAgYW55d2F5IHdvcmtzIGluIHRoZSBwcmVzZW5jZSBvZiBjZXJ0YWluIHNl
dHRpbmdzIGUuIGcuIGluIHRoZSBpbmktZmlsZS4gIFN1Y2gKKyAgYSBnbG9iYWwgZml4dHVyZSBz
aG91bGQgYWx3YXlzIHF1aWNrbHkgZGV0ZXJtaW5lIGlmIGl0IHNob3VsZCBkbworICBhbnkgd29y
ayBhbmQgYXZvaWQgb3RoZXJ3aXNlIGV4cGVuc2l2ZSBpbXBvcnRzIG9yIGNvbXB1dGF0aW9uLgor
CitOb3RlIHRoYXQgdGhlIGFib3ZlIGBgdHJhbnNhY3RgYCBmaXh0dXJlIG1heSB2ZXJ5IHdlbGwg
YmUgYSBmaXh0dXJlIHRoYXQKK3lvdSB3YW50IHRvIG1ha2UgYXZhaWxhYmxlIGluIHlvdXIgcHJv
amVjdCB3aXRob3V0IGhhdmluZyBpdCBnZW5lcmFsbHkKK2FjdGl2ZS4gIFRoZSBjYW5vbmljYWwg
d2F5IHRvIGRvIHRoYXQgaXMgdG8gcHV0IHRoZSB0cmFuc2FjdCBkZWZpbml0aW9uCitpbnRvIGEg
Y29uZnRlc3QucHkgZmlsZSAqKndpdGhvdXQqKiB1c2luZyBgYGF1dG91c2VgYDo6CisKKyAgICAj
IGNvbnRlbnQgb2YgY29uZnRlc3QucHkKKyAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICBkZWYgdHJh
bnNhY3QocmVxdWVzdCwgZGIpOgorICAgICAgICBkYi5iZWdpbigpCisgICAgICAgIHlpZWxkCisg
ICAgICAgIGRiLnJvbGxiYWNrKCkKKworYW5kIHRoZW4gZS5nLiBoYXZlIGEgVGVzdENsYXNzIHVz
aW5nIGl0IGJ5IGRlY2xhcmluZyB0aGUgbmVlZDo6CisKKyAgICBAcHl0ZXN0Lm1hcmsudXNlZml4
dHVyZXMoInRyYW5zYWN0IikKKyAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAg
ZGVmIHRlc3RfbWV0aG9kMShzZWxmKToKKyAgICAgICAgICAgIC4uLgorCitBbGwgdGVzdCBtZXRo
b2RzIGluIHRoaXMgVGVzdENsYXNzIHdpbGwgdXNlIHRoZSB0cmFuc2FjdGlvbiBmaXh0dXJlIHdo
aWxlCitvdGhlciB0ZXN0IGNsYXNzZXMgb3IgZnVuY3Rpb25zIGluIHRoZSBtb2R1bGUgd2lsbCBu
b3QgdXNlIGl0IHVubGVzcwordGhleSBhbHNvIGFkZCBhIGBgdHJhbnNhY3RgYCByZWZlcmVuY2Uu
CisKK092ZXJyaWRpbmcgZml4dHVyZXMgb24gdmFyaW91cyBsZXZlbHMKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworSW4gcmVsYXRpdmVseSBsYXJnZSB0ZXN0IHN1aXRl
LCB5b3UgbW9zdCBsaWtlbHkgbmVlZCB0byBgYG92ZXJyaWRlYGAgYSBgYGdsb2JhbGBgIG9yIGBg
cm9vdGBgIGZpeHR1cmUgd2l0aCBhIGBgbG9jYWxseWBgCitkZWZpbmVkIG9uZSwga2VlcGluZyB0
aGUgdGVzdCBjb2RlIHJlYWRhYmxlIGFuZCBtYWludGFpbmFibGUuCisKK092ZXJyaWRlIGEgZml4
dHVyZSBvbiBhIGZvbGRlciAoY29uZnRlc3QpIGxldmVsCiteXl5eXl5eXl5eXl5eXl5eXl5eXl5e
Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgorCitHaXZlbiB0aGUgdGVzdHMgZmlsZSBzdHJ1Y3R1
cmUgaXM6CisKKzo6CisKKyAgICB0ZXN0cy8KKyAgICAgICAgX19pbml0X18ucHkKKworICAgICAg
ICBjb25mdGVzdC5weQorICAgICAgICAgICAgIyBjb250ZW50IG9mIHRlc3RzL2NvbmZ0ZXN0LnB5
CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZQorICAgICAgICAgICAgZGVmIHVzZXJuYW1lKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuICd1
c2VybmFtZScKKworICAgICAgICB0ZXN0X3NvbWV0aGluZy5weQorICAgICAgICAgICAgIyBjb250
ZW50IG9mIHRlc3RzL3Rlc3Rfc29tZXRoaW5nLnB5CisgICAgICAgICAgICBkZWYgdGVzdF91c2Vy
bmFtZSh1c2VybmFtZSk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHVzZXJuYW1lID09ICd1c2Vy
bmFtZScKKworICAgICAgICBzdWJmb2xkZXIvCisgICAgICAgICAgICBfX2luaXRfXy5weQorCisg
ICAgICAgICAgICBjb25mdGVzdC5weQorICAgICAgICAgICAgICAgICMgY29udGVudCBvZiB0ZXN0
cy9zdWJmb2xkZXIvY29uZnRlc3QucHkKKyAgICAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisK
KyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgICAgICBkZWYgdXNl
cm5hbWUodXNlcm5hbWUpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ292ZXJyaWRkZW4t
JyArIHVzZXJuYW1lCisKKyAgICAgICAgICAgIHRlc3Rfc29tZXRoaW5nLnB5CisgICAgICAgICAg
ICAgICAgIyBjb250ZW50IG9mIHRlc3RzL3N1YmZvbGRlci90ZXN0X3NvbWV0aGluZy5weQorICAg
ICAgICAgICAgICAgIGRlZiB0ZXN0X3VzZXJuYW1lKHVzZXJuYW1lKToKKyAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0IHVzZXJuYW1lID09ICdvdmVycmlkZGVuLXVzZXJuYW1lJworCitBcyB5b3Ug
Y2FuIHNlZSwgYSBmaXh0dXJlIHdpdGggdGhlIHNhbWUgbmFtZSBjYW4gYmUgb3ZlcnJpZGRlbiBm
b3IgY2VydGFpbiB0ZXN0IGZvbGRlciBsZXZlbC4KK05vdGUgdGhhdCB0aGUgYGBiYXNlYGAgb3Ig
YGBzdXBlcmBgIGZpeHR1cmUgY2FuIGJlIGFjY2Vzc2VkIGZyb20gdGhlIGBgb3ZlcnJpZGluZ2Bg
CitmaXh0dXJlIGVhc2lseSAtIHVzZWQgaW4gdGhlIGV4YW1wbGUgYWJvdmUuCisKK092ZXJyaWRl
IGEgZml4dHVyZSBvbiBhIHRlc3QgbW9kdWxlIGxldmVsCiteXl5eXl5eXl5eXl5eXl5eXl5eXl5e
Xl5eXl5eXl5eXl5eXl5eXl5eXgorCitHaXZlbiB0aGUgdGVzdHMgZmlsZSBzdHJ1Y3R1cmUgaXM6
CisKKzo6CisKKyAgICB0ZXN0cy8KKyAgICAgICAgX19pbml0X18ucHkKKworICAgICAgICBjb25m
dGVzdC5weQorICAgICAgICAgICAgIyBjb250ZW50IG9mIHRlc3RzL2NvbmZ0ZXN0LnB5CisgICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiB1c2VybmFtZSgpOgorICAg
ICAgICAgICAgICAgIHJldHVybiAndXNlcm5hbWUnCisKKyAgICAgICAgdGVzdF9zb21ldGhpbmcu
cHkKKyAgICAgICAgICAgICMgY29udGVudCBvZiB0ZXN0cy90ZXN0X3NvbWV0aGluZy5weQorICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAg
ICAgICAgICAgIGRlZiB1c2VybmFtZSh1c2VybmFtZSk6CisgICAgICAgICAgICAgICAgcmV0dXJu
ICdvdmVycmlkZGVuLScgKyB1c2VybmFtZQorCisgICAgICAgICAgICBkZWYgdGVzdF91c2VybmFt
ZSh1c2VybmFtZSk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHVzZXJuYW1lID09ICdvdmVycmlk
ZGVuLXVzZXJuYW1lJworCisgICAgICAgIHRlc3Rfc29tZXRoaW5nX2Vsc2UucHkKKyAgICAgICAg
ICAgICMgY29udGVudCBvZiB0ZXN0cy90ZXN0X3NvbWV0aGluZ19lbHNlLnB5CisgICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAg
ICAgZGVmIHVzZXJuYW1lKHVzZXJuYW1lKToKKyAgICAgICAgICAgICAgICByZXR1cm4gJ292ZXJy
aWRkZW4tZWxzZS0nICsgdXNlcm5hbWUKKworICAgICAgICAgICAgZGVmIHRlc3RfdXNlcm5hbWUo
dXNlcm5hbWUpOgorICAgICAgICAgICAgICAgIGFzc2VydCB1c2VybmFtZSA9PSAnb3ZlcnJpZGRl
bi1lbHNlLXVzZXJuYW1lJworCitJbiB0aGUgZXhhbXBsZSBhYm92ZSwgYSBmaXh0dXJlIHdpdGgg
dGhlIHNhbWUgbmFtZSBjYW4gYmUgb3ZlcnJpZGRlbiBmb3IgY2VydGFpbiB0ZXN0IG1vZHVsZS4K
KworCitPdmVycmlkZSBhIGZpeHR1cmUgd2l0aCBkaXJlY3QgdGVzdCBwYXJhbWV0cml6YXRpb24K
K15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgorCitH
aXZlbiB0aGUgdGVzdHMgZmlsZSBzdHJ1Y3R1cmUgaXM6CisKKzo6CisKKyAgICB0ZXN0cy8KKyAg
ICAgICAgX19pbml0X18ucHkKKworICAgICAgICBjb25mdGVzdC5weQorICAgICAgICAgICAgIyBj
b250ZW50IG9mIHRlc3RzL2NvbmZ0ZXN0LnB5CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisK
KyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIHVzZXJuYW1lKCk6
CisgICAgICAgICAgICAgICAgcmV0dXJuICd1c2VybmFtZScKKworICAgICAgICAgICAgQHB5dGVz
dC5maXh0dXJlCisgICAgICAgICAgICBkZWYgb3RoZXJfdXNlcm5hbWUodXNlcm5hbWUpOgorICAg
ICAgICAgICAgICAgIHJldHVybiAnb3RoZXItJyArIHVzZXJuYW1lCisKKyAgICAgICAgdGVzdF9z
b21ldGhpbmcucHkKKyAgICAgICAgICAgICMgY29udGVudCBvZiB0ZXN0cy90ZXN0X3NvbWV0aGlu
Zy5weQorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoJ3VzZXJuYW1lJywgWydkaXJlY3RseS1vdmVycmlkZGVuLXVzZXJuYW1l
J10pCisgICAgICAgICAgICBkZWYgdGVzdF91c2VybmFtZSh1c2VybmFtZSk6CisgICAgICAgICAg
ICAgICAgYXNzZXJ0IHVzZXJuYW1lID09ICdkaXJlY3RseS1vdmVycmlkZGVuLXVzZXJuYW1lJwor
CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3VzZXJuYW1lJywgWydkaXJl
Y3RseS1vdmVycmlkZGVuLXVzZXJuYW1lLW90aGVyJ10pCisgICAgICAgICAgICBkZWYgdGVzdF91
c2VybmFtZV9vdGhlcihvdGhlcl91c2VybmFtZSk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IG90
aGVyX3VzZXJuYW1lID09ICdvdGhlci1kaXJlY3RseS1vdmVycmlkZGVuLXVzZXJuYW1lLW90aGVy
JworCitJbiB0aGUgZXhhbXBsZSBhYm92ZSwgYSBmaXh0dXJlIHZhbHVlIGlzIG92ZXJyaWRkZW4g
YnkgdGhlIHRlc3QgcGFyYW1ldGVyIHZhbHVlLiBOb3RlIHRoYXQgdGhlIHZhbHVlIG9mIHRoZSBm
aXh0dXJlCitjYW4gYmUgb3ZlcnJpZGRlbiB0aGlzIHdheSBldmVuIGlmIHRoZSB0ZXN0IGRvZXNu
J3QgdXNlIGl0IGRpcmVjdGx5IChkb2Vzbid0IG1lbnRpb24gaXQgaW4gdGhlIGZ1bmN0aW9uIHBy
b3RvdHlwZSkuCisKKworT3ZlcnJpZGUgYSBwYXJhbWV0cml6ZWQgZml4dHVyZSB3aXRoIG5vbi1w
YXJhbWV0cml6ZWQgb25lIGFuZCB2aWNlIHZlcnNhCiteXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e
Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KKworR2l2ZW4g
dGhlIHRlc3RzIGZpbGUgc3RydWN0dXJlIGlzOgorCis6OgorCisgICAgdGVzdHMvCisgICAgICAg
IF9faW5pdF9fLnB5CisKKyAgICAgICAgY29uZnRlc3QucHkKKyAgICAgICAgICAgICMgY29udGVu
dCBvZiB0ZXN0cy9jb25mdGVzdC5weQorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsnb25lJywgJ3R3bycsICd0aHJlZSddKQor
ICAgICAgICAgICAgZGVmIHBhcmFtZXRyaXplZF91c2VybmFtZShyZXF1ZXN0KToKKyAgICAgICAg
ICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUKKyAgICAgICAgICAgIGRlZiBub25fcGFyYW1ldHJpemVkX3VzZXJuYW1lKHJlcXVlc3QpOgor
ICAgICAgICAgICAgICAgIHJldHVybiAndXNlcm5hbWUnCisKKyAgICAgICAgdGVzdF9zb21ldGhp
bmcucHkKKyAgICAgICAgICAgICMgY29udGVudCBvZiB0ZXN0cy90ZXN0X3NvbWV0aGluZy5weQor
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUK
KyAgICAgICAgICAgIGRlZiBwYXJhbWV0cml6ZWRfdXNlcm5hbWUoKToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gJ292ZXJyaWRkZW4tdXNlcm5hbWUnCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZShwYXJhbXM9WydvbmUnLCAndHdvJywgJ3RocmVlJ10pCisgICAgICAgICAgICBkZWYgbm9u
X3BhcmFtZXRyaXplZF91c2VybmFtZShyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4g
cmVxdWVzdC5wYXJhbQorCisgICAgICAgICAgICBkZWYgdGVzdF91c2VybmFtZShwYXJhbWV0cml6
ZWRfdXNlcm5hbWUpOgorICAgICAgICAgICAgICAgIGFzc2VydCBwYXJhbWV0cml6ZWRfdXNlcm5h
bWUgPT0gJ292ZXJyaWRkZW4tdXNlcm5hbWUnCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X3BhcmFt
ZXRyaXplZF91c2VybmFtZShub25fcGFyYW1ldHJpemVkX3VzZXJuYW1lKToKKyAgICAgICAgICAg
ICAgICBhc3NlcnQgbm9uX3BhcmFtZXRyaXplZF91c2VybmFtZSBpbiBbJ29uZScsICd0d28nLCAn
dGhyZWUnXQorCisgICAgICAgIHRlc3Rfc29tZXRoaW5nX2Vsc2UucHkKKyAgICAgICAgICAgICMg
Y29udGVudCBvZiB0ZXN0cy90ZXN0X3NvbWV0aGluZ19lbHNlLnB5CisgICAgICAgICAgICBkZWYg
dGVzdF91c2VybmFtZShwYXJhbWV0cml6ZWRfdXNlcm5hbWUpOgorICAgICAgICAgICAgICAgIGFz
c2VydCBwYXJhbWV0cml6ZWRfdXNlcm5hbWUgaW4gWydvbmUnLCAndHdvJywgJ3RocmVlJ10KKwor
ICAgICAgICAgICAgZGVmIHRlc3RfdXNlcm5hbWUobm9uX3BhcmFtZXRyaXplZF91c2VybmFtZSk6
CisgICAgICAgICAgICAgICAgYXNzZXJ0IG5vbl9wYXJhbWV0cml6ZWRfdXNlcm5hbWUgPT0gJ3Vz
ZXJuYW1lJworCitJbiB0aGUgZXhhbXBsZSBhYm92ZSwgYSBwYXJhbWV0cml6ZWQgZml4dHVyZSBp
cyBvdmVycmlkZGVuIHdpdGggYSBub24tcGFyYW1ldHJpemVkIHZlcnNpb24sIGFuZAorYSBub24t
cGFyYW1ldHJpemVkIGZpeHR1cmUgaXMgb3ZlcnJpZGRlbiB3aXRoIGEgcGFyYW1ldHJpemVkIHZl
cnNpb24gZm9yIGNlcnRhaW4gdGVzdCBtb2R1bGUuCitUaGUgc2FtZSBhcHBsaWVzIGZvciB0aGUg
dGVzdCBmb2xkZXIgbGV2ZWwgb2J2aW91c2x5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Z1bmNhcmdfY29tcGFyZS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZnVuY2FyZ19jb21w
YXJlLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iODU3YTAxNGQzMTg3Nzc4MjdjZTNmMmE2NTliYjAxM2YxYjhm
ZDVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Z1bmNhcmdfY29tcGFy
ZS5yc3QKQEAgLTAsMCArMSwyMTggQEAKKzpvcnBoYW46CisKKy4uIF9gZnVuY2FyZ2NvbXBhcmVg
OgorCitweXRlc3QtMi4zOiByZWFzb25pbmcgZm9yIGZpeHR1cmUvZnVuY2FyZyBldm9sdXRpb24K
Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKworKipUYXJnZXQgYXVkaWVuY2UqKjogUmVhZGluZyB0aGlzIGRvY3VtZW50IHJlcXVp
cmVzIGJhc2ljIGtub3dsZWRnZSBvZiAKK3B5dGhvbiB0ZXN0aW5nLCB4VW5pdCBzZXR1cCBtZXRo
b2RzIGFuZCB0aGUgKHByZXZpb3VzKSBiYXNpYyBweXRlc3QgCitmdW5jYXJnIG1lY2hhbmlzbSwg
c2VlIGh0dHA6Ly9weXRlc3Qub3JnLzIuMi40L2Z1bmNhcmdzLmh0bWwgCitJZiB5b3UgYXJlIG5l
dyB0byBweXRlc3QsIHRoZW4geW91IGNhbiBzaW1wbHkgaWdub3JlIHRoaXMKK3NlY3Rpb24gYW5k
IHJlYWQgdGhlIG90aGVyIHNlY3Rpb25zLgorCisuLiBjdXJyZW50bW9kdWxlOjogX3B5dGVzdAor
CitTaG9ydGNvbWluZ3Mgb2YgdGhlIHByZXZpb3VzIGBgcHl0ZXN0X2Z1bmNhcmdfX2BgIG1lY2hh
bmlzbQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKworVGhlIHByZSBweXRlc3QtMi4zIGZ1bmNhcmcgbWVjaGFuaXNtIGNhbGxz
IGEgZmFjdG9yeSBlYWNoIHRpbWUgYQorZnVuY2FyZyBmb3IgYSB0ZXN0IGZ1bmN0aW9uIGlzIHJl
cXVpcmVkLiAgSWYgYSBmYWN0b3J5IHdhbnRzIHRvCityZS11c2UgYSByZXNvdXJjZSBhY3Jvc3Mg
ZGlmZmVyZW50IHNjb3BlcywgaXQgb2Z0ZW4gdXNlZCAKK3RoZSBgYHJlcXVlc3QuY2FjaGVkX3Nl
dHVwKClgYCBoZWxwZXIgdG8gbWFuYWdlIGNhY2hpbmcgb2YgCityZXNvdXJjZXMuICBIZXJlIGlz
IGEgYmFzaWMgZXhhbXBsZSBob3cgd2UgY291bGQgaW1wbGVtZW50IAorYSBwZXItc2Vzc2lvbiBE
YXRhYmFzZSBvYmplY3Q6OgorCisgICAgIyBjb250ZW50IG9mIGNvbmZ0ZXN0LnB5IAorICAgIGNs
YXNzIERhdGFiYXNlKG9iamVjdCk6CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAg
ICAgICAgIHByaW50ICgiZGF0YWJhc2UgaW5zdGFuY2UgY3JlYXRlZCIpCisgICAgICAgIGRlZiBk
ZXN0cm95KHNlbGYpOgorICAgICAgICAgICAgcHJpbnQgKCJkYXRhYmFzZSBpbnN0YW5jZSBkZXN0
cm95ZWQiKQorCisgICAgZGVmIHB5dGVzdF9mdW5jYXJnX19kYihyZXF1ZXN0KToKKyAgICAgICAg
cmV0dXJuIHJlcXVlc3QuY2FjaGVkX3NldHVwKHNldHVwPURhdGFCYXNlLCAKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRlYXJkb3duPWxhbWJkYSBkYjogZGIuZGVzdHJveSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlPSJzZXNzaW9uIikKKwor
VGhlcmUgYXJlIHNldmVyYWwgbGltaXRhdGlvbnMgYW5kIGRpZmZpY3VsdGllcyB3aXRoIHRoaXMg
YXBwcm9hY2g6CisKKzEuIFNjb3BpbmcgZnVuY2FyZyByZXNvdXJjZSBjcmVhdGlvbiBpcyBub3Qg
c3RyYWlnaHQgZm9yd2FyZCwgaW5zdGVhZCBvbmUgbXVzdAorICAgdW5kZXJzdGFuZCB0aGUgaW50
cmljYXRlIGNhY2hlZF9zZXR1cCgpIG1ldGhvZCBtZWNoYW5pY3MuCisKKzIuIHBhcmFtZXRyaXpp
bmcgdGhlICJkYiIgcmVzb3VyY2UgaXMgbm90IHN0cmFpZ2h0IGZvcndhcmQ6IAorICAgeW91IG5l
ZWQgdG8gYXBwbHkgYSAicGFyYW1ldHJpemUiIGRlY29yYXRvciBvciBpbXBsZW1lbnQgYQorICAg
OnB5OmZ1bmM6YH5ob29rc3BlYy5weXRlc3RfZ2VuZXJhdGVfdGVzdHNgIGhvb2sgCisgICBjYWxs
aW5nIDpweTpmdW5jOmB+cHl0aG9uLk1ldGFmdW5jLnBhcmFtZXRyaXplYCB3aGljaAorICAgcGVy
Zm9ybXMgcGFyYW1ldHJpemF0aW9uIGF0IHRoZSBwbGFjZXMgd2hlcmUgdGhlIHJlc291cmNlIAor
ICAgaXMgdXNlZC4gIE1vcmVvdmVyLCB5b3UgbmVlZCB0byBtb2RpZnkgdGhlIGZhY3RvcnkgdG8g
dXNlIGFuIAorICAgYGBleHRyYWtleWBgIHBhcmFtZXRlciBjb250YWluaW5nIGBgcmVxdWVzdC5w
YXJhbWBgIHRvIHRoZSAKKyAgIDpweTpmdW5jOmB+cHl0aG9uLlJlcXVlc3QuY2FjaGVkX3NldHVw
YCBjYWxsLgorCiszLiBNdWx0aXBsZSBwYXJhbWV0cml6ZWQgc2Vzc2lvbi1zY29wZWQgcmVzb3Vy
Y2VzIHdpbGwgYmUgYWN0aXZlCisgICBhdCB0aGUgc2FtZSB0aW1lLCBtYWtpbmcgaXQgaGFyZCBm
b3IgdGhlbSB0byBhZmZlY3QgZ2xvYmFsIHN0YXRlCisgICBvZiB0aGUgYXBwbGljYXRpb24gdW5k
ZXIgdGVzdC4KKworNC4gdGhlcmUgaXMgbm8gd2F5IGhvdyB5b3UgY2FuIG1ha2UgdXNlIG9mIGZ1
bmNhcmcgZmFjdG9yaWVzCisgICBpbiB4VW5pdCBzZXR1cCBtZXRob2RzLgorCis1LiBBIG5vbi1w
YXJhbWV0cml6ZWQgZml4dHVyZSBmdW5jdGlvbiBjYW5ub3QgdXNlIGEgcGFyYW1ldHJpemVkIAor
ICAgZnVuY2FyZyByZXNvdXJjZSBpZiBpdCBpc24ndCBzdGF0ZWQgaW4gdGhlIHRlc3QgZnVuY3Rp
b24gc2lnbmF0dXJlLgorCitBbGwgb2YgdGhlc2UgbGltaXRhdGlvbnMgYXJlIGFkZHJlc3NlZCB3
aXRoIHB5dGVzdC0yLjMgYW5kIGl0cworaW1wcm92ZWQgOnJlZjpgZml4dHVyZSBtZWNoYW5pc20g
PGZpeHR1cmU+YC4KKworCitEaXJlY3Qgc2NvcGluZyBvZiBmaXh0dXJlL2Z1bmNhcmcgZmFjdG9y
aWVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCitJbnN0ZWFkIG9mIGNhbGxpbmcgY2FjaGVkX3NldHVwKCkgd2l0aCBhIGNhY2hlIHNj
b3BlLCB5b3UgY2FuIHVzZSB0aGUKKzpyZWY6YEBweXRlc3QuZml4dHVyZSA8cHl0ZXN0LmZpeHR1
cmU+YCBkZWNvcmF0b3IgYW5kIGRpcmVjdGx5IHN0YXRlCit0aGUgc2NvcGU6OgorCisgICAgQHB5
dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIikKKyAgICBkZWYgZGIocmVxdWVzdCk6CisgICAg
ICAgICMgZmFjdG9yeSB3aWxsIG9ubHkgYmUgaW52b2tlZCBvbmNlIHBlciBzZXNzaW9uIC0gCisg
ICAgICAgIGRiID0gRGF0YUJhc2UoKQorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihkYi5k
ZXN0cm95KSAgIyBkZXN0cm95IHdoZW4gc2Vzc2lvbiBpcyBmaW5pc2hlZAorICAgICAgICByZXR1
cm4gZGIKKworVGhpcyBmYWN0b3J5IGltcGxlbWVudGF0aW9uIGRvZXMgbm90IG5lZWQgdG8gY2Fs
bCBgYGNhY2hlZF9zZXR1cCgpYGAgYW55bW9yZQorYmVjYXVzZSBpdCB3aWxsIG9ubHkgYmUgaW52
b2tlZCBvbmNlIHBlciBzZXNzaW9uLiAgTW9yZW92ZXIsIHRoZSAKK2BgcmVxdWVzdC5hZGRmaW5h
bGl6ZXIoKWBgIHJlZ2lzdGVycyBhIGZpbmFsaXplciBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmll
ZAorcmVzb3VyY2Ugc2NvcGUgb24gd2hpY2ggdGhlIGZhY3RvcnkgZnVuY3Rpb24gaXMgb3BlcmF0
aW5nLgorCisKK0RpcmVjdCBwYXJhbWV0cml6YXRpb24gb2YgZnVuY2FyZyByZXNvdXJjZSBmYWN0
b3JpZXMgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKK1ByZXZpb3VzbHksIGZ1bmNhcmcgZmFjdG9yaWVzIGNvdWxkIG5vdCBkaXJl
Y3RseSBjYXVzZSBwYXJhbWV0cml6YXRpb24uCitZb3UgbmVlZGVkIHRvIHNwZWNpZnkgYSBgYEBw
YXJhbWV0cml6ZWBgIGRlY29yYXRvciBvbiB5b3VyIHRlc3QgZnVuY3Rpb24KK29yIGltcGxlbWVu
dCBhIGBgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzYGAgaG9vayB0byBwZXJmb3JtCitwYXJhbWV0cml6
YXRpb24sIGkuZS4gY2FsbGluZyBhIHRlc3QgbXVsdGlwbGUgdGltZXMgd2l0aCBkaWZmZXJlbnQg
dmFsdWUKK3NldHMuICBweXRlc3QtMi4zIGludHJvZHVjZXMgYSBkZWNvcmF0b3IgZm9yIHVzZSBv
biB0aGUgZmFjdG9yeSBpdHNlbGY6OgorCisgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bIm15
c3FsIiwgInBnIl0pCisgICAgZGVmIGRiKHJlcXVlc3QpOgorICAgICAgICAuLi4gIyB1c2UgcmVx
dWVzdC5wYXJhbQorCitIZXJlIHRoZSBmYWN0b3J5IHdpbGwgYmUgaW52b2tlZCB0d2ljZSAod2l0
aCB0aGUgcmVzcGVjdGl2ZSAibXlzcWwiIAorYW5kICJwZyIgdmFsdWVzIHNldCBhcyBgYHJlcXVl
c3QucGFyYW1gYCBhdHRyaWJ1dGVzKSBhbmQgYWxsIG9mIAordGhlIHRlc3RzIHJlcXVpcmluZyAi
ZGIiIHdpbGwgcnVuIHR3aWNlIGFzIHdlbGwuICBUaGUgIm15c3FsIiBhbmQgCisicGciIHZhbHVl
cyB3aWxsIGFsc28gYmUgdXNlZCBmb3IgcmVwb3J0aW5nIHRoZSB0ZXN0LWludm9jYXRpb24gdmFy
aWFudHMuCisKK1RoaXMgbmV3IHdheSBvZiBwYXJhbWV0cml6aW5nIGZ1bmNhcmcgZmFjdG9yaWVz
IHNob3VsZCBpbiBtYW55IGNhc2VzCithbGxvdyB0byByZS11c2UgYWxyZWFkeSB3cml0dGVuIGZh
Y3RvcmllcyBiZWNhdXNlIGVmZmVjdGl2ZWx5CitgYHJlcXVlc3QucGFyYW1gYCB3YXMgYWxyZWFk
eSB1c2VkIHdoZW4gdGVzdCBmdW5jdGlvbnMvY2xhc3NlcyB3ZXJlCitwYXJhbWV0cml6ZWQgdmlh
Cis6cHk6ZnVuYzpgfl9weXRlc3QucHl0aG9uLk1ldGFmdW5jLnBhcmFtZXRyaXplKGluZGlyZWN0
PVRydWUpYCBjYWxscy4KKworT2YgY291cnNlIGl0J3MgcGVyZmVjdGx5IGZpbmUgdG8gY29tYmlu
ZSBwYXJhbWV0cml6YXRpb24gYW5kIHNjb3Bpbmc6OgorCisgICAgQHB5dGVzdC5maXh0dXJlKHNj
b3BlPSJzZXNzaW9uIiwgcGFyYW1zPVsibXlzcWwiLCAicGciXSkKKyAgICBkZWYgZGIocmVxdWVz
dCk6CisgICAgICAgIGlmIHJlcXVlc3QucGFyYW0gPT0gIm15c3FsIjoKKyAgICAgICAgICAgIGRi
ID0gTXlTUUwoKQorICAgICAgICBlbGlmIHJlcXVlc3QucGFyYW0gPT0gInBnIjoKKyAgICAgICAg
ICAgIGRiID0gUEcoKQorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihkYi5kZXN0cm95KSAg
IyBkZXN0cm95IHdoZW4gc2Vzc2lvbiBpcyBmaW5pc2hlZAorICAgICAgICByZXR1cm4gZGIKKwor
VGhpcyB3b3VsZCBleGVjdXRlIGFsbCB0ZXN0cyByZXF1aXJpbmcgdGhlIHBlci1zZXNzaW9uICJk
YiIgcmVzb3VyY2UgdHdpY2UsCityZWNlaXZpbmcgdGhlIHZhbHVlcyBjcmVhdGVkIGJ5IHRoZSB0
d28gcmVzcGVjdGl2ZSBpbnZvY2F0aW9ucyB0byB0aGUKK2ZhY3RvcnkgZnVuY3Rpb24uCisKKwor
Tm8gYGBweXRlc3RfZnVuY2FyZ19fYGAgcHJlZml4IHdoZW4gdXNpbmcgQGZpeHR1cmUgZGVjb3Jh
dG9yCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisKK1doZW4gdXNpbmcgdGhlIGBgQGZpeHR1cmVgYCBkZWNvcmF0b3Ig
dGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uCitkZW5vdGVzIHRoZSBuYW1lIHVuZGVyIHdoaWNoIHRo
ZSByZXNvdXJjZSBjYW4gYmUgYWNjZXNzZWQgYXMgYSBmdW5jdGlvbgorYXJndW1lbnQ6OgorCisg
ICAgQHB5dGVzdC5maXh0dXJlKCkKKyAgICBkZWYgZGIocmVxdWVzdCk6CisgICAgICAgIC4uLgor
CitUaGUgbmFtZSB1bmRlciB3aGljaCB0aGUgZnVuY2FyZyByZXNvdXJjZSBjYW4gYmUgcmVxdWVz
dGVkIGlzIGBgZGJgYC4KKworWW91IGNhbiBzdGlsbCB1c2UgdGhlICJvbGQiIG5vbi1kZWNvcmF0
b3Igd2F5IG9mIHNwZWNpZnlpbmcgZnVuY2FyZyBmYWN0b3JpZXMgCitha2E6OgorCisgICAgZGVm
IHB5dGVzdF9mdW5jYXJnX19kYihyZXF1ZXN0KToKKyAgICAgICAgLi4uCisKKworQnV0IGl0IGlz
IHRoZW4gbm90IHBvc3NpYmxlIHRvIGRlZmluZSBzY29waW5nIGFuZCBwYXJhbWV0cml6YXRpb24u
CitJdCBpcyB0aHVzIHJlY29tbWVuZGVkIHRvIHVzZSB0aGUgZmFjdG9yeSBkZWNvcmF0b3IuCisK
Kworc29sdmluZyBwZXItc2Vzc2lvbiBzZXR1cCAvIGF1dG91c2UgZml4dHVyZXMKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
K3B5dGVzdCBmb3IgYSBsb25nIHRpbWUgb2ZmZXJlZCBhIHB5dGVzdF9jb25maWd1cmUgYW5kIGEg
cHl0ZXN0X3Nlc3Npb25zdGFydAoraG9vayB3aGljaCBhcmUgb2Z0ZW4gdXNlZCB0byBzZXR1cCBn
bG9iYWwgcmVzb3VyY2VzLiAgVGhpcyBzdWZmZXJzIGZyb20KK3NldmVyYWwgcHJvYmxlbXM6CisK
KzEuIGluIGRpc3RyaWJ1dGVkIHRlc3RpbmcgdGhlIG1hc3RlciBwcm9jZXNzIHdvdWxkIHNldHVw
IHRlc3QgcmVzb3VyY2VzCisgICB0aGF0IGFyZSBuZXZlciBuZWVkZWQgYmVjYXVzZSBpdCBvbmx5
IGNvLW9yZGluYXRlcyB0aGUgdGVzdCBydW4KKyAgIGFjdGl2aXRpZXMgb2YgdGhlIHNsYXZlIHBy
b2Nlc3Nlcy4gIAorCisyLiBpZiB5b3Ugb25seSBwZXJmb3JtIGEgY29sbGVjdGlvbiAod2l0aCAi
LS1jb2xsZWN0LW9ubHkiKSAKKyAgIHJlc291cmNlLXNldHVwIHdpbGwgc3RpbGwgYmUgZXhlY3V0
ZWQuICAKKworMy4gSWYgYSBweXRlc3Rfc2Vzc2lvbnN0YXJ0IGlzIGNvbnRhaW5lZCBpbiBzb21l
IHN1YmRpcmVjdG9yaWVzCisgICBjb25mdGVzdC5weSBmaWxlLCBpdCB3aWxsIG5vdCBiZSBjYWxs
ZWQuICBUaGlzIHN0ZW1zIGZyb20gdGhlCisgICBmYWN0IHRoYXQgdGhpcyBob29rIGlzIGFjdHVh
bGx5IHVzZWQgZm9yIHJlcG9ydGluZywgaW4gcGFydGljdWxhcgorICAgdGhlIHRlc3QtaGVhZGVy
IHdpdGggcGxhdGZvcm0vY3VzdG9tIGluZm9ybWF0aW9uLgorCitNb3Jlb3ZlciwgaXQgd2FzIG5v
dCBlYXN5IHRvIGRlZmluZSBhIHNjb3BlZCBzZXR1cCBmcm9tIHBsdWdpbnMgb3IKK2NvbmZ0ZXN0
IGZpbGVzIG90aGVyIHRoYW4gdG8gaW1wbGVtZW50IGEgYGBweXRlc3RfcnVudGVzdF9zZXR1cCgp
YGAgaG9vaworYW5kIGNhcmluZyBmb3Igc2NvcGluZy9jYWNoaW5nIHlvdXJzZWxmLiAgQW5kIGl0
J3MgdmlydHVhbGx5IGltcG9zc2libGUKK3RvIGRvIHRoaXMgd2l0aCBwYXJhbWV0cml6YXRpb24g
YXMgYGBweXRlc3RfcnVudGVzdF9zZXR1cCgpYGAgaXMgY2FsbGVkCitkdXJpbmcgdGVzdCBleGVj
dXRpb24gYW5kIHBhcmFtZXRyaXphdGlvbiBoYXBwZW5zIGF0IGNvbGxlY3Rpb24gdGltZS4KKwor
SXQgZm9sbG93cyB0aGF0IHB5dGVzdF9jb25maWd1cmUvc2Vzc2lvbi9ydW50ZXN0X3NldHVwIGFy
ZSBvZnRlbiBub3QKK2FwcHJvcHJpYXRlIGZvciBpbXBsZW1lbnRpbmcgY29tbW9uIGZpeHR1cmUg
bmVlZHMuICBUaGVyZWZvcmUsCitweXRlc3QtMi4zIGludHJvZHVjZXMgOnJlZjpgYXV0b3VzZSBm
aXh0dXJlc2Agd2hpY2ggZnVsbHkKK2ludGVncmF0ZSB3aXRoIHRoZSBnZW5lcmljIDpyZWY6YGZp
eHR1cmUgbWVjaGFuaXNtIDxmaXh0dXJlPmAKK2FuZCBvYnNvbGV0ZSBtYW55IHByaW9yIHVzZXMg
b2YgcHl0ZXN0IGhvb2tzLgorCitmdW5jYXJncy9maXh0dXJlIGRpc2NvdmVyeSBub3cgaGFwcGVu
cyBhdCBjb2xsZWN0aW9uIHRpbWUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitTaW5jZSBweXRlc3QtMi4zLCBk
aXNjb3Zlcnkgb2YgZml4dHVyZS9mdW5jYXJnIGZhY3RvcmllcyBhcmUgdGFrZW4gY2FyZSBvZgor
YXQgY29sbGVjdGlvbiB0aW1lLiAgVGhpcyBpcyBtb3JlIGVmZmljaWVudCBlc3BlY2lhbGx5IGZv
ciBsYXJnZSB0ZXN0IHN1aXRlcy4KK01vcmVvdmVyLCBhIGNhbGwgdG8gInB5dGVzdCAtLWNvbGxl
Y3Qtb25seSIgc2hvdWxkIGJlIGFibGUgdG8gaW4gdGhlIGZ1dHVyZQorc2hvdyBhIGxvdCBvZiBz
ZXR1cC1pbmZvcm1hdGlvbiBhbmQgdGh1cyBwcmVzZW50cyBhIG5pY2UgbWV0aG9kIHRvIGdldCBh
bgorb3ZlcnZpZXcgb2YgZml4dHVyZSBtYW5hZ2VtZW50IGluIHlvdXIgcHJvamVjdC4KKworLi4g
X2Bjb21wYXRpYmlsaXR5IG5vdGVzYDoKKworLi4gX2BmdW5jYXJnc2NvbXBhdGA6CisKK0NvbmNs
dXNpb24gYW5kIGNvbXBhdGliaWxpdHkgbm90ZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisqKmZ1bmNhcmdzKiogd2VyZSBvcmln
aW5hbGx5IGludHJvZHVjZWQgdG8gcHl0ZXN0LTIuMC4gIEluIHB5dGVzdC0yLjMgCit0aGUgbWVj
aGFuaXNtIHdhcyBleHRlbmRlZCBhbmQgcmVmaW5lZCBhbmQgaXMgbm93IGRlc2NyaWJlZCBhcwor
Zml4dHVyZXM6CisKKyogcHJldmlvdXNseSBmdW5jYXJnIGZhY3RvcmllcyB3ZXJlIHNwZWNpZmll
ZCB3aXRoIGEgc3BlY2lhbCAKKyAgYGBweXRlc3RfZnVuY2FyZ19fTkFNRWBgIHByZWZpeCBpbnN0
ZWFkIG9mIHVzaW5nIHRoZSAKKyAgYGBAcHl0ZXN0LmZpeHR1cmVgYCBkZWNvcmF0b3IuCisKKyog
RmFjdG9yaWVzIHJlY2VpdmVkIGEgYGByZXF1ZXN0YGAgb2JqZWN0IHdoaWNoIG1hbmFnZWQgY2Fj
aGluZyB0aHJvdWdoCisgIGBgcmVxdWVzdC5jYWNoZWRfc2V0dXAoKWBgIGNhbGxzIGFuZCBhbGxv
d2VkIHVzaW5nIG90aGVyIGZ1bmNhcmdzIHZpYSAKKyAgYGByZXF1ZXN0LmdldGZ1bmNhcmd2YWx1
ZSgpYGAgY2FsbHMuICBUaGVzZSBpbnRyaWNhdGUgQVBJcyBtYWRlIGl0IGhhcmQgCisgIHRvIGRv
IHByb3BlciBwYXJhbWV0cml6YXRpb24gYW5kIGltcGxlbWVudCByZXNvdXJjZSBjYWNoaW5nLiBU
aGUKKyAgbmV3IDpweTpmdW5jOmBweXRlc3QuZml4dHVyZWAgZGVjb3JhdG9yIGFsbG93cyB0byBk
ZWNsYXJlIHRoZSBzY29wZQorICBhbmQgbGV0IHB5dGVzdCBmaWd1cmUgdGhpbmdzIG91dCBmb3Ig
eW91LgorCisqIGlmIHlvdSB1c2VkIHBhcmFtZXRyaXphdGlvbiBhbmQgZnVuY2FyZyBmYWN0b3Jp
ZXMgd2hpY2ggbWFkZSB1c2Ugb2YKKyAgYGByZXF1ZXN0LmNhY2hlZF9zZXR1cCgpYGAgaXQgaXMg
cmVjb21tZW5kZWQgdG8gaW52ZXN0IGEgZmV3IG1pbnV0ZXMKKyAgYW5kIHNpbXBsaWZ5IHlvdXIg
Zml4dHVyZSBmdW5jdGlvbiBjb2RlIHRvIHVzZSB0aGUgOnJlZjpgQHB5dGVzdC5maXh0dXJlYAor
ICBkZWNvcmF0b3IgaW5zdGVhZC4gIFRoaXMgd2lsbCBhbHNvIGFsbG93IHRvIHRha2UgYWR2YW50
YWdlIG9mIAorICB0aGUgYXV0b21hdGljIHBlci1yZXNvdXJjZSBncm91cGluZyBvZiB0ZXN0cy4K
KworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZnVuY2FyZ3MucnN0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Z1bmNhcmdzLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzJjMDQzMDIzOTAzYmNjNGIy
Njk5NzQwMDg0YjBlOWMxNTI0N2Q1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Z1bmNhcmdzLnJzdApAQCAtMCwwICsxLDE0IEBACisKKz09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK2Z1bmNhcmdzOiByZXNvdXJjZSBp
bmplY3Rpb24gYW5kIHBhcmFtZXRyaXphdGlvbgorPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitweXRlc3QtMi4zIGludHJvZHVjZXMgbWFq
b3IgcmVmaW5lbWVudHMgdG8gZml4dHVyZSBtYW5hZ2VtZW50CitvZiB3aGljaCB0aGUgZnVuY2Fy
ZyBtZWNoYW5pc20gaW50cm9kdWNlZCB3aXRoIHB5dGVzdC0yLjAgcmVtYWlucworYSBjb3JlIHBh
cnQuICBUaGUgZG9jdW1lbnRhdGlvbiBoYXMgYmVlbiByZWZhY3RvcmVkIGFzIHdlbGwKK2FuZCB5
b3UgY2FuIHJlYWQgb24gaGVyZToKKworLSA6cmVmOmBmaXh0dXJlc2AKKy0gOnJlZjpgcGFyYW1l
dHJpemVgCistIDpyZWY6YGZ1bmNhcmdjb21wYXJlYAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vZ2VuYXBpLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2dlbmFwaS5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wZWRlNDRmYTJkZWU3MzBiZWU1ZTI3OTA5NGRjZDdhMzc2YzFkZmU2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2dlbmFwaS5weQpAQCAtMCwwICsxLDQxIEBACitp
bXBvcnQgdGV4dHdyYXAKK2ltcG9ydCBpbnNwZWN0CisKK2NsYXNzIFdyaXRlcihvYmplY3QpOgor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjbHNuYW1lKToKKyAgICAgICAgc2VsZi5jbHNuYW1lID0g
Y2xzbmFtZQorCisgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAgICAgICAgc2VsZi5maWxlID0g
b3BlbigiJXMuYXBpIiAlIHNlbGYuY2xzbmFtZSwgInciKQorICAgICAgICByZXR1cm4gc2VsZgor
CisgICAgZGVmIF9fZXhpdF9fKHNlbGYsICphcmdzKToKKyAgICAgICAgc2VsZi5maWxlLmNsb3Nl
KCkKKyAgICAgICAgcHJpbnQgIndyb3RlIiwgc2VsZi5maWxlLm5hbWUKKworICAgIGRlZiBsaW5l
KHNlbGYsIGxpbmUpOgorICAgICAgICBzZWxmLmZpbGUud3JpdGUobGluZSsiXG4iKQorCisgICAg
ZGVmIGRvY21ldGhvZChzZWxmLCBtZXRob2QpOgorICAgICAgICBkb2MgPSAiICIuam9pbihtZXRo
b2QuX19kb2NfXy5zcGxpdCgpKQorICAgICAgICBpbmRlbnQgPSAiICAgICAgICAgIgorICAgICAg
ICB3ID0gdGV4dHdyYXAuVGV4dFdyYXBwZXIoaW5pdGlhbF9pbmRlbnQ9aW5kZW50LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2VxdWVudF9pbmRlbnQ9aW5kZW50KQorCisg
ICAgICAgIHNwZWMgPSBpbnNwZWN0LmdldGFyZ3NwZWMobWV0aG9kKQorICAgICAgICBkZWwgc3Bl
Yy5hcmdzWzBdCisgICAgICAgIHNlbGYubGluZSgiLi4gcHk6bWV0aG9kOjogIiArIG1ldGhvZC5f
X25hbWVfXyArCisgICAgICAgICAgICAgICAgICBpbnNwZWN0LmZvcm1hdGFyZ3NwZWMoKnNwZWMp
KQorICAgICAgICBzZWxmLmxpbmUoIiIpCisgICAgICAgIHNlbGYubGluZSh3LmZpbGwoZG9jKSkK
KyAgICAgICAgc2VsZi5saW5lKCIiKQorCitkZWYgcHl0ZXN0X2Z1bmNhcmdfX2EocmVxdWVzdCk6
CisgICAgd2l0aCBXcml0ZXIoInJlcXVlc3QiKSBhcyB3cml0ZXI6CisgICAgICAgIHdyaXRlci5k
b2NtZXRob2QocmVxdWVzdC5nZXRmaXh0dXJldmFsdWUpCisgICAgICAgIHdyaXRlci5kb2NtZXRo
b2QocmVxdWVzdC5jYWNoZWRfc2V0dXApCisgICAgICAgIHdyaXRlci5kb2NtZXRob2QocmVxdWVz
dC5hZGRmaW5hbGl6ZXIpCisgICAgICAgIHdyaXRlci5kb2NtZXRob2QocmVxdWVzdC5hcHBseW1h
cmtlcikKKworZGVmIHRlc3RfaGVsbG8oYSk6CisgICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2dldHRpbmctc3RhcnRlZC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZ2V0
dGluZy1zdGFydGVkLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NGIwMTA4MjYyZDhhZGVjNDA5NzZiZDZlZjg4
Y2NkYzRhMDRmNTU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2dldHRp
bmctc3RhcnRlZC5yc3QKQEAgLTAsMCArMSwxOTggQEAKK0luc3RhbGxhdGlvbiBhbmQgR2V0dGlu
ZyBTdGFydGVkCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisqKlB5dGhv
bnMqKjogUHl0aG9uIDIuNywgMy40LCAzLjUsIDMuNiwgSnl0aG9uLCBQeVB5LTIuMworCisqKlBs
YXRmb3JtcyoqOiBVbml4L1Bvc2l4IGFuZCBXaW5kb3dzCisKKyoqUHlQSSBwYWNrYWdlIG5hbWUq
KjogYHB5dGVzdCA8aHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3B5dGVzdD5gXworCisqKmRl
cGVuZGVuY2llcyoqOiBgcHkgPGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9weT5gXywKK2Bj
b2xvcmFtYSAoV2luZG93cykgPGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9jb2xvcmFtYT5g
XywKKworKipkb2N1bWVudGF0aW9uIGFzIFBERioqOiBgZG93bmxvYWQgbGF0ZXN0IDxodHRwczov
L21lZGlhLnJlYWR0aGVkb2NzLm9yZy9wZGYvcHl0ZXN0L2xhdGVzdC9weXRlc3QucGRmPmBfCisK
Ky4uIF9gZ2V0c3RhcnRlZGA6CisuLiBfaW5zdGFsbGF0aW9uOgorCitJbnN0YWxsYXRpb24KKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworSW5zdGFsbGF0aW9uOjoK
KworICAgIHBpcCBpbnN0YWxsIC1VIHB5dGVzdAorCitUbyBjaGVjayB5b3VyIGluc3RhbGxhdGlv
biBoYXMgaW5zdGFsbGVkIHRoZSBjb3JyZWN0IHZlcnNpb246OgorCisgICAgJCBweXRlc3QgLS12
ZXJzaW9uCisgICAgVGhpcyBpcyBweXRlc3QgdmVyc2lvbiAzLngueSwgaW1wb3J0ZWQgZnJvbSAk
UFlUSE9OX1BSRUZJWC9saWIvcHl0aG9uMy41L3NpdGUtcGFja2FnZXMvcHl0ZXN0LnB5CisKKy4u
IF9gc2ltcGxldGVzdGA6CisKK091ciBmaXJzdCB0ZXN0IHJ1bgorLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitMZXQncyBjcmVhdGUg
YSBmaXJzdCB0ZXN0IGZpbGUgd2l0aCBhIHNpbXBsZSB0ZXN0IGZ1bmN0aW9uOjoKKworICAgICMg
Y29udGVudCBvZiB0ZXN0X3NhbXBsZS5weQorICAgIGRlZiBmdW5jKHgpOgorICAgICAgICByZXR1
cm4geCArIDEKKworICAgIGRlZiB0ZXN0X2Fuc3dlcigpOgorICAgICAgICBhc3NlcnQgZnVuYygz
KSA9PSA1CisKK1RoYXQncyBpdC4gWW91IGNhbiBleGVjdXRlIHRoZSB0ZXN0IGZ1bmN0aW9uIG5v
dzo6CisKKyAgICAkIHB5dGVzdAorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0
IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBwbGF0Zm9y
bSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0w
LngueQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgY29sbGVj
dGVkIDEgaXRlbQorICAgIAorICAgIHRlc3Rfc2FtcGxlLnB5IEYgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgIAorICAgID09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KKyAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIHRlc3Rf
YW5zd2VyIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgICAgIGRl
ZiB0ZXN0X2Fuc3dlcigpOgorICAgID4gICAgICAgYXNzZXJ0IGZ1bmMoMykgPT0gNQorICAgIEUg
ICAgICAgYXNzZXJ0IDQgPT0gNQorICAgIEUgICAgICAgICsgIHdoZXJlIDQgPSBmdW5jKDMpCisg
ICAgCisgICAgdGVzdF9zYW1wbGUucHk6NTogQXNzZXJ0aW9uRXJyb3IKKyAgICA9PT09PT09PT09
PT09PT09PT09PT09PT09IDEgZmFpbGVkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09
PT09PT09PT09CisKK1dlIGdvdCBhIGZhaWx1cmUgcmVwb3J0IGJlY2F1c2Ugb3VyIGxpdHRsZSBg
YGZ1bmMoMylgYCBjYWxsIGRpZCBub3QgcmV0dXJuIGBgNWBgLgorCisuLiBub3RlOjoKKworICAg
IFlvdSBjYW4gc2ltcGx5IHVzZSB0aGUgYGBhc3NlcnRgYCBzdGF0ZW1lbnQgZm9yIGFzc2VydGlu
ZyB0ZXN0CisgICAgZXhwZWN0YXRpb25zLiAgcHl0ZXN0J3MgOnJlZjpgYXNzZXJ0IGludHJvc3Bl
Y3Rpb25gIHdpbGwgaW50ZWxsaWdlbnRseQorICAgIHJlcG9ydCBpbnRlcm1lZGlhdGUgdmFsdWVz
IG9mIHRoZSBhc3NlcnQgZXhwcmVzc2lvbiBmcmVlaW5nCisgICAgeW91IGZyb20gdGhlIG5lZWQg
dG8gbGVhcm4gdGhlIG1hbnkgbmFtZXMgb2YgYEpVbml0IGxlZ2FjeSBtZXRob2RzYF8uCisKKy4u
IF9gSlVuaXQgbGVnYWN5IG1ldGhvZHNgOiBodHRwOi8vZG9jcy5weXRob24ub3JnL2xpYnJhcnkv
dW5pdHRlc3QuaHRtbCN0ZXN0LWNhc2VzCisKKy4uIF9gYXNzZXJ0IHN0YXRlbWVudGA6IGh0dHA6
Ly9kb2NzLnB5dGhvbi5vcmcvcmVmZXJlbmNlL3NpbXBsZV9zdG10cy5odG1sI3RoZS1hc3NlcnQt
c3RhdGVtZW50CisKK1J1bm5pbmcgbXVsdGlwbGUgdGVzdHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworYGBweXRlc3RgYCB3aWxs
IHJ1biBhbGwgZmlsZXMgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGFuZCBpdHMgc3ViZGlyZWN0
b3JpZXMgb2YgdGhlIGZvcm0gdGVzdF8qLnB5IG9yIFwqX3Rlc3QucHkuIE1vcmUgZ2VuZXJhbGx5
LCBpdCBmb2xsb3dzIDpyZWY6YHN0YW5kYXJkIHRlc3QgZGlzY292ZXJ5IHJ1bGVzIDx0ZXN0IGRp
c2NvdmVyeT5gLgorCisKK0Fzc2VydGluZyB0aGF0IGEgY2VydGFpbiBleGNlcHRpb24gaXMgcmFp
c2VkCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorCitJZiB5b3Ugd2FudCB0byBhc3NlcnQgdGhhdCBzb21lIGNvZGUgcmFpc2Vz
IGFuIGV4Y2VwdGlvbiB5b3UgY2FuCit1c2UgdGhlIGBgcmFpc2VzYGAgaGVscGVyOjoKKworICAg
ICMgY29udGVudCBvZiB0ZXN0X3N5c2V4aXQucHkKKyAgICBpbXBvcnQgcHl0ZXN0CisgICAgZGVm
IGYoKToKKyAgICAgICAgcmFpc2UgU3lzdGVtRXhpdCgxKQorCisgICAgZGVmIHRlc3RfbXl0ZXN0
KCk6CisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhTeXN0ZW1FeGl0KToKKyAgICAgICAgICAg
IGYoKQorCitSdW5uaW5nIGl0IHdpdGgsIHRoaXMgdGltZSBpbiAicXVpZXQiIHJlcG9ydGluZyBt
b2RlOjoKKworICAgICQgcHl0ZXN0IC1xIHRlc3Rfc3lzZXhpdC5weQorICAgIC4gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFsxMDAlXQorICAgIDEgcGFzc2VkIGluIDAuMTIgc2Vjb25kcworCitHcm91cGluZyBtdWx0aXBs
ZSB0ZXN0cyBpbiBhIGNsYXNzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitPbmNlIHlvdSBzdGFydCB0byBoYXZlIG1vcmUg
dGhhbiBhIGZldyB0ZXN0cyBpdCBvZnRlbiBtYWtlcyBzZW5zZQordG8gZ3JvdXAgdGVzdHMgbG9n
aWNhbGx5LCBpbiBjbGFzc2VzIGFuZCBtb2R1bGVzLiAgTGV0J3Mgd3JpdGUgYSBjbGFzcworY29u
dGFpbmluZyB0d28gdGVzdHM6OgorCisgICAgIyBjb250ZW50IG9mIHRlc3RfY2xhc3MucHkKKyAg
ICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgZGVmIHRlc3Rfb25lKHNlbGYpOgor
ICAgICAgICAgICAgeCA9ICJ0aGlzIgorICAgICAgICAgICAgYXNzZXJ0ICdoJyBpbiB4CisKKyAg
ICAgICAgZGVmIHRlc3RfdHdvKHNlbGYpOgorICAgICAgICAgICAgeCA9ICJoZWxsbyIKKyAgICAg
ICAgICAgIGFzc2VydCBoYXNhdHRyKHgsICdjaGVjaycpCisKK1RoZSB0d28gdGVzdHMgYXJlIGZv
dW5kIGJlY2F1c2Ugb2YgdGhlIHN0YW5kYXJkIDpyZWY6YHRlc3QgZGlzY292ZXJ5YC4KK1RoZXJl
IGlzIG5vIG5lZWQgdG8gc3ViY2xhc3MgYW55dGhpbmcuICBXZSBjYW4gc2ltcGx5CitydW4gdGhl
IG1vZHVsZSBieSBwYXNzaW5nIGl0cyBmaWxlbmFtZTo6CisKKyAgICAkIHB5dGVzdCAtcSB0ZXN0
X2NsYXNzLnB5CisgICAgLkYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCisgICAgPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09IEZBSUxVUkVTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQorICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX18gVGVzdENsYXNzLnRlc3RfdHdvIF9f
X19fX19fX19fX19fX19fX19fX19fX19fX18KKyAgICAKKyAgICBzZWxmID0gPHRlc3RfY2xhc3Mu
VGVzdENsYXNzIG9iamVjdCBhdCAweGRlYWRiZWVmPgorICAgIAorICAgICAgICBkZWYgdGVzdF90
d28oc2VsZik6CisgICAgICAgICAgICB4ID0gImhlbGxvIgorICAgID4gICAgICAgYXNzZXJ0IGhh
c2F0dHIoeCwgJ2NoZWNrJykKKyAgICBFICAgICAgIEFzc2VydGlvbkVycm9yOiBhc3NlcnQgRmFs
c2UKKyAgICBFICAgICAgICArICB3aGVyZSBGYWxzZSA9IGhhc2F0dHIoJ2hlbGxvJywgJ2NoZWNr
JykKKyAgICAKKyAgICB0ZXN0X2NsYXNzLnB5Ojg6IEFzc2VydGlvbkVycm9yCisgICAgMSBmYWls
ZWQsIDEgcGFzc2VkIGluIDAuMTIgc2Vjb25kcworCitUaGUgZmlyc3QgdGVzdCBwYXNzZWQsIHRo
ZSBzZWNvbmQgZmFpbGVkLiBBZ2FpbiB3ZSBjYW4gZWFzaWx5IHNlZQordGhlIGludGVybWVkaWF0
ZSB2YWx1ZXMgdXNlZCBpbiB0aGUgYXNzZXJ0aW9uLCBoZWxwaW5nIHVzIHRvCit1bmRlcnN0YW5k
IHRoZSByZWFzb24gZm9yIHRoZSBmYWlsdXJlLgorCitHb2luZyBmdW5jdGlvbmFsOiByZXF1ZXN0
aW5nIGEgdW5pcXVlIHRlbXBvcmFyeSBkaXJlY3RvcnkKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0ZvciBmdW5jdGlvbmFs
IHRlc3RzIG9uZSBvZnRlbiBuZWVkcyB0byBjcmVhdGUgc29tZSBmaWxlcworYW5kIHBhc3MgdGhl
bSB0byBhcHBsaWNhdGlvbiBvYmplY3RzLiAgcHl0ZXN0IHByb3ZpZGVzCis6cmVmOmBidWlsdGlu
Zml4dHVyZXNgIHdoaWNoIGFsbG93IHRvIHJlcXVlc3QgYXJiaXRyYXJ5CityZXNvdXJjZXMsIGZv
ciBleGFtcGxlIGEgdW5pcXVlIHRlbXBvcmFyeSBkaXJlY3Rvcnk6OgorCisgICAgIyBjb250ZW50
IG9mIHRlc3RfdG1wZGlyLnB5CisgICAgZGVmIHRlc3RfbmVlZHNmaWxlcyh0bXBkaXIpOgorICAg
ICAgICBwcmludCAodG1wZGlyKQorICAgICAgICBhc3NlcnQgMAorCitXZSBsaXN0IHRoZSBuYW1l
IGBgdG1wZGlyYGAgaW4gdGhlIHRlc3QgZnVuY3Rpb24gc2lnbmF0dXJlIGFuZAorYGBweXRlc3Rg
YCB3aWxsIGxvb2t1cCBhbmQgY2FsbCBhIGZpeHR1cmUgZmFjdG9yeSB0byBjcmVhdGUgdGhlIHJl
c291cmNlCitiZWZvcmUgcGVyZm9ybWluZyB0aGUgdGVzdCBmdW5jdGlvbiBjYWxsLiAgTGV0J3Mg
anVzdCBydW4gaXQ6OgorCisgICAgJCBweXRlc3QgLXEgdGVzdF90bXBkaXIucHkKKyAgICBGICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbMTAwJV0KKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRkFJ
TFVSRVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18gdGVzdF9uZWVkc2ZpbGVzIF9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fXworICAgIAorICAgIHRtcGRpciA9IGxvY2FsKCdQWVRFU1RfVE1QRElSL3Rlc3RfbmVl
ZHNmaWxlczAnKQorICAgIAorICAgICAgICBkZWYgdGVzdF9uZWVkc2ZpbGVzKHRtcGRpcik6Cisg
ICAgICAgICAgICBwcmludCAodG1wZGlyKQorICAgID4gICAgICAgYXNzZXJ0IDAKKyAgICBFICAg
ICAgIGFzc2VydCAwCisgICAgCisgICAgdGVzdF90bXBkaXIucHk6MzogQXNzZXJ0aW9uRXJyb3IK
KyAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ2FwdHVyZWQgc3Rkb3V0IGNhbGwgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgUFlURVNUX1RNUERJUi90ZXN0X25lZWRzZmls
ZXMwCisgICAgMSBmYWlsZWQgaW4gMC4xMiBzZWNvbmRzCisKK0JlZm9yZSB0aGUgdGVzdCBydW5z
LCBhIHVuaXF1ZS1wZXItdGVzdC1pbnZvY2F0aW9uIHRlbXBvcmFyeSBkaXJlY3RvcnkKK3dhcyBj
cmVhdGVkLiAgTW9yZSBpbmZvIGF0IDpyZWY6YHRtcGRpciBoYW5kbGluZ2AuCisKK1lvdSBjYW4g
ZmluZCBvdXQgd2hhdCBraW5kIG9mIGJ1aWx0aW4gOnJlZjpgZml4dHVyZXNgIGV4aXN0IGJ5IHR5
cGluZzo6CisKKyAgICBweXRlc3QgLS1maXh0dXJlcyAgICMgc2hvd3MgYnVpbHRpbiBhbmQgY3Vz
dG9tIGZpeHR1cmVzCisKK1doZXJlIHRvIGdvIG5leHQKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKworSGVyZSBhcmUgYSBmZXcgc3VnZ2VzdGlvbnMgd2hlcmUgdG8gZ28g
bmV4dDoKKworKiA6cmVmOmBjbWRsaW5lYCBmb3IgY29tbWFuZCBsaW5lIGludm9jYXRpb24gZXhh
bXBsZXMKKyogOnJlZjpgZ29vZCBwcmFjdGljZXMgPGdvb2RwcmFjdGljZXM+YCBmb3IgdmlydHVh
bGVudiwgdGVzdCBsYXlvdXQKKyogOnJlZjpgZXhpc3Rpbmd0ZXN0c3VpdGVgIGZvciB3b3JraW5n
IHdpdGggcHJlLWV4aXN0aW5nIHRlc3RzCisqIDpyZWY6YGZpeHR1cmVzYCBmb3IgcHJvdmlkaW5n
IGEgZnVuY3Rpb25hbCBiYXNlbGluZSB0byB5b3VyIHRlc3RzCisqIDpyZWY6YHBsdWdpbnNgIG1h
bmFnaW5nIGFuZCB3cml0aW5nIHBsdWdpbnMKKworLi4gaW5jbHVkZTo6IGxpbmtzLmluYwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2dvb2RwcmFjdGljZXMucnN0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2dvb2RwcmFjdGljZXMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2ZmRkMjRjMzkyNzI1OTgy
MWQ0YjdjNDQ3NWJiYzk5NzRhNzY1YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vZ29vZHByYWN0aWNlcy5yc3QKQEAgLTAsMCArMSwyOTkgQEAKKy4uIGhpZ2hsaWdodGxh
bmc6OiBweXRob24KKy4uIF9gZ29vZHByYWN0aWNlc2A6CisKK0dvb2QgSW50ZWdyYXRpb24gUHJh
Y3RpY2VzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
CisKKworLi4gX2B0ZXN0IGRpc2NvdmVyeWA6CisuLiBfYFB5dGhvbiB0ZXN0IGRpc2NvdmVyeWA6
CisKK0NvbnZlbnRpb25zIGZvciBQeXRob24gdGVzdCBkaXNjb3ZlcnkKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworYGBweXRlc3RgYCBpbXBsZW1l
bnRzIHRoZSBmb2xsb3dpbmcgc3RhbmRhcmQgdGVzdCBkaXNjb3Zlcnk6CisKKyogSWYgbm8gYXJn
dW1lbnRzIGFyZSBzcGVjaWZpZWQgdGhlbiBjb2xsZWN0aW9uIHN0YXJ0cyBmcm9tIDpjb25mdmFs
OmB0ZXN0cGF0aHNgCisgIChpZiBjb25maWd1cmVkKSBvciB0aGUgY3VycmVudCBkaXJlY3Rvcnku
IEFsdGVybmF0aXZlbHksIGNvbW1hbmQgbGluZSBhcmd1bWVudHMKKyAgY2FuIGJlIHVzZWQgaW4g
YW55IGNvbWJpbmF0aW9uIG9mIGRpcmVjdG9yaWVzLCBmaWxlIG5hbWVzIG9yIG5vZGUgaWRzLgor
KiBSZWN1cnNlIGludG8gZGlyZWN0b3JpZXMsIHVubGVzcyB0aGV5IG1hdGNoIDpjb25mdmFsOmBu
b3JlY3Vyc2VkaXJzYC4KKyogSW4gdGhvc2UgZGlyZWN0b3JpZXMsIHNlYXJjaCBmb3IgYGB0ZXN0
XyoucHlgYCBvciBgYCpfdGVzdC5weWBgIGZpbGVzLCBpbXBvcnRlZCBieSB0aGVpciBgdGVzdCBw
YWNrYWdlIG5hbWVgXy4KKyogRnJvbSB0aG9zZSBmaWxlcywgY29sbGVjdCB0ZXN0IGl0ZW1zOgor
CisgICogYGB0ZXN0X2BgIHByZWZpeGVkIHRlc3QgZnVuY3Rpb25zIG9yIG1ldGhvZHMgb3V0c2lk
ZSBvZiBjbGFzcworICAqIGBgdGVzdF9gYCBwcmVmaXhlZCB0ZXN0IGZ1bmN0aW9ucyBvciBtZXRo
b2RzIGluc2lkZSBgYFRlc3RgYCBwcmVmaXhlZCB0ZXN0IGNsYXNzZXMgKHdpdGhvdXQgYW4gYGBf
X2luaXRfX2BgIG1ldGhvZCkKKworRm9yIGV4YW1wbGVzIG9mIGhvdyB0byBjdXN0b21pemUgeW91
ciB0ZXN0IGRpc2NvdmVyeSA6ZG9jOmBleGFtcGxlL3B5dGhvbmNvbGxlY3Rpb25gLgorCitXaXRo
aW4gUHl0aG9uIG1vZHVsZXMsIGBgcHl0ZXN0YGAgYWxzbyBkaXNjb3ZlcnMgdGVzdHMgdXNpbmcg
dGhlIHN0YW5kYXJkCis6cmVmOmB1bml0dGVzdC5UZXN0Q2FzZSA8dW5pdHRlc3QuVGVzdENhc2U+
YCBzdWJjbGFzc2luZyB0ZWNobmlxdWUuCisKKworQ2hvb3NpbmcgYSB0ZXN0IGxheW91dCAvIGlt
cG9ydCBydWxlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitgYHB5
dGVzdGBgIHN1cHBvcnRzIHR3byBjb21tb24gdGVzdCBsYXlvdXRzOgorCitUZXN0cyBvdXRzaWRl
IGFwcGxpY2F0aW9uIGNvZGUKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgorCitQdXR0
aW5nIHRlc3RzIGludG8gYW4gZXh0cmEgZGlyZWN0b3J5IG91dHNpZGUgeW91ciBhY3R1YWwgYXBw
bGljYXRpb24gY29kZQorbWlnaHQgYmUgdXNlZnVsIGlmIHlvdSBoYXZlIG1hbnkgZnVuY3Rpb25h
bCB0ZXN0cyBvciBmb3Igb3RoZXIgcmVhc29ucyB3YW50Cit0byBrZWVwIHRlc3RzIHNlcGFyYXRl
IGZyb20gYWN0dWFsIGFwcGxpY2F0aW9uIGNvZGUgKG9mdGVuIGEgZ29vZCBpZGVhKTo6CisKKyAg
ICBzZXR1cC5weQorICAgIG15cGtnLworICAgICAgICBfX2luaXRfXy5weQorICAgICAgICBhcHAu
cHkKKyAgICAgICAgdmlldy5weQorICAgIHRlc3RzLworICAgICAgICB0ZXN0X2FwcC5weQorICAg
ICAgICB0ZXN0X3ZpZXcucHkKKyAgICAgICAgLi4uCisKK1RoaXMgd2F5IHlvdXIgdGVzdHMgY2Fu
IHJ1biBlYXNpbHkgYWdhaW5zdCBhbiBpbnN0YWxsZWQgdmVyc2lvbgorb2YgYGBteXBrZ2BgLgor
CitOb3RlIHRoYXQgdXNpbmcgdGhpcyBzY2hlbWUgeW91ciB0ZXN0IGZpbGVzIG11c3QgaGF2ZSAq
KnVuaXF1ZSBuYW1lcyoqLCBiZWNhdXNlCitgYHB5dGVzdGBgIHdpbGwgaW1wb3J0IHRoZW0gYXMg
KnRvcC1sZXZlbCogbW9kdWxlcyBzaW5jZSB0aGVyZSBhcmUgbm8gcGFja2FnZXMKK3RvIGRlcml2
ZSBhIGZ1bGwgcGFja2FnZSBuYW1lIGZyb20uIEluIG90aGVyIHdvcmRzLCB0aGUgdGVzdCBmaWxl
cyBpbiB0aGUgZXhhbXBsZSBhYm92ZSB3aWxsCitiZSBpbXBvcnRlZCBhcyBgYHRlc3RfYXBwYGAg
YW5kIGBgdGVzdF92aWV3YGAgdG9wLWxldmVsIG1vZHVsZXMgYnkgYWRkaW5nIGBgdGVzdHMvYGAg
dG8KK2Bgc3lzLnBhdGhgYC4KKworSWYgeW91IG5lZWQgdG8gaGF2ZSB0ZXN0IG1vZHVsZXMgd2l0
aCB0aGUgc2FtZSBuYW1lLCB5b3UgbWlnaHQgYWRkIGBgX19pbml0X18ucHlgYCBmaWxlcyB0byB5
b3VyCitgYHRlc3RzYGAgZm9sZGVyIGFuZCBzdWJmb2xkZXJzLCBjaGFuZ2luZyB0aGVtIHRvIHBh
Y2thZ2VzOjoKKworICAgIHNldHVwLnB5CisgICAgbXlwa2cvCisgICAgICAgIC4uLgorICAgIHRl
c3RzLworICAgICAgICBfX2luaXRfXy5weQorICAgICAgICBmb28vCisgICAgICAgICAgICBfX2lu
aXRfXy5weQorICAgICAgICAgICAgdGVzdF92aWV3LnB5CisgICAgICAgIGJhci8KKyAgICAgICAg
ICAgIF9faW5pdF9fLnB5CisgICAgICAgICAgICB0ZXN0X3ZpZXcucHkKKworTm93IHB5dGVzdCB3
aWxsIGxvYWQgdGhlIG1vZHVsZXMgYXMgYGB0ZXN0cy5mb28udGVzdF92aWV3YGAgYW5kIGBgdGVz
dHMuYmFyLnRlc3Rfdmlld2BgLCBhbGxvd2luZworeW91IHRvIGhhdmUgbW9kdWxlcyB3aXRoIHRo
ZSBzYW1lIG5hbWUuIEJ1dCBub3cgdGhpcyBpbnRyb2R1Y2VzIGEgc3VidGxlIHByb2JsZW06IGlu
IG9yZGVyIHRvIGxvYWQKK3RoZSB0ZXN0IG1vZHVsZXMgZnJvbSB0aGUgYGB0ZXN0c2BgIGRpcmVj
dG9yeSwgcHl0ZXN0IHByZXBlbmRzIHRoZSByb290IG9mIHRoZSByZXBvc2l0b3J5IHRvCitgYHN5
cy5wYXRoYGAsIHdoaWNoIGFkZHMgdGhlIHNpZGUtZWZmZWN0IHRoYXQgbm93IGBgbXlwa2dgYCBp
cyBhbHNvIGltcG9ydGFibGUuCitUaGlzIGlzIHByb2JsZW1hdGljIGlmIHlvdSBhcmUgdXNpbmcg
YSB0b29sIGxpa2UgYHRveGBfIHRvIHRlc3QgeW91ciBwYWNrYWdlIGluIGEgdmlydHVhbCBlbnZp
cm9ubWVudCwKK2JlY2F1c2UgeW91IHdhbnQgdG8gdGVzdCB0aGUgKmluc3RhbGxlZCogdmVyc2lv
biBvZiB5b3VyIHBhY2thZ2UsIG5vdCB0aGUgbG9jYWwgY29kZSBmcm9tIHRoZSByZXBvc2l0b3J5
LgorCitJbiB0aGlzIHNpdHVhdGlvbiwgaXQgaXMgKipzdHJvbmdseSoqIHN1Z2dlc3RlZCB0byB1
c2UgYSBgYHNyY2BgIGxheW91dCB3aGVyZSBhcHBsaWNhdGlvbiByb290IHBhY2thZ2UgcmVzaWRl
cyBpbiBhCitzdWItZGlyZWN0b3J5IG9mIHlvdXIgcm9vdDo6CisKKyAgICBzZXR1cC5weQorICAg
IHNyYy8KKyAgICAgICAgbXlwa2cvCisgICAgICAgICAgICBfX2luaXRfXy5weQorICAgICAgICAg
ICAgYXBwLnB5CisgICAgICAgICAgICB2aWV3LnB5CisgICAgdGVzdHMvCisgICAgICAgIF9faW5p
dF9fLnB5CisgICAgICAgIGZvby8KKyAgICAgICAgICAgIF9faW5pdF9fLnB5CisgICAgICAgICAg
ICB0ZXN0X3ZpZXcucHkKKyAgICAgICAgYmFyLworICAgICAgICAgICAgX19pbml0X18ucHkKKyAg
ICAgICAgICAgIHRlc3Rfdmlldy5weQorCisKK1RoaXMgbGF5b3V0IHByZXZlbnRzIGEgbG90IG9m
IGNvbW1vbiBwaXRmYWxscyBhbmQgaGFzIG1hbnkgYmVuZWZpdHMsIHdoaWNoIGFyZSBiZXR0ZXIg
ZXhwbGFpbmVkIGluIHRoaXMgZXhjZWxsZW50CitgYmxvZyBwb3N0IGJ5IElvbmVsIENyaXN0aWFu
IE3Eg3JpZciZIDxodHRwczovL2Jsb2cuaW9uZWxtYy5yby8yMDE0LzA1LzI1L3B5dGhvbi1wYWNr
YWdpbmcvI3RoZS1zdHJ1Y3R1cmU+YF8uCisKK1Rlc3RzIGFzIHBhcnQgb2YgYXBwbGljYXRpb24g
Y29kZQorXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCisKK0lubGluaW5nIHRlc3Qg
ZGlyZWN0b3JpZXMgaW50byB5b3VyIGFwcGxpY2F0aW9uIHBhY2thZ2UKK2lzIHVzZWZ1bCBpZiB5
b3UgaGF2ZSBkaXJlY3QgcmVsYXRpb24gYmV0d2VlbiB0ZXN0cyBhbmQgYXBwbGljYXRpb24gbW9k
dWxlcyBhbmQKK3dhbnQgdG8gZGlzdHJpYnV0ZSB0aGVtIGFsb25nIHdpdGggeW91ciBhcHBsaWNh
dGlvbjo6CisKKyAgICBzZXR1cC5weQorICAgIG15cGtnLworICAgICAgICBfX2luaXRfXy5weQor
ICAgICAgICBhcHAucHkKKyAgICAgICAgdmlldy5weQorICAgICAgICB0ZXN0LworICAgICAgICAg
ICAgX19pbml0X18ucHkKKyAgICAgICAgICAgIHRlc3RfYXBwLnB5CisgICAgICAgICAgICB0ZXN0
X3ZpZXcucHkKKyAgICAgICAgICAgIC4uLgorCitJbiB0aGlzIHNjaGVtZSwgaXQgaXMgZWFzeSB0
byBydW4geW91ciB0ZXN0cyB1c2luZyB0aGUgYGAtLXB5YXJnc2BgIG9wdGlvbjo6CisKKyAgICBw
eXRlc3QgLS1weWFyZ3MgbXlwa2cKKworYGBweXRlc3RgYCB3aWxsIGRpc2NvdmVyIHdoZXJlIGBg
bXlwa2dgYCBpcyBpbnN0YWxsZWQgYW5kIGNvbGxlY3QgdGVzdHMgZnJvbSB0aGVyZS4KKworTm90
ZSB0aGF0IHRoaXMgbGF5b3V0IGFsc28gd29ya3MgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgYGBz
cmNgYCBsYXlvdXQgbWVudGlvbmVkIGluIHRoZSBwcmV2aW91cyBzZWN0aW9uLgorCisKKy4uIG5v
dGU6OgorCisgICAgWW91IGNhbiB1c2UgUHl0aG9uMyBuYW1lc3BhY2UgcGFja2FnZXMgKFBFUDQy
MCkgZm9yIHlvdXIgYXBwbGljYXRpb24KKyAgICBidXQgcHl0ZXN0IHdpbGwgc3RpbGwgcGVyZm9y
bSBgdGVzdCBwYWNrYWdlIG5hbWVgXyBkaXNjb3ZlcnkgYmFzZWQgb24gdGhlCisgICAgcHJlc2Vu
Y2Ugb2YgYGBfX2luaXRfXy5weWBgIGZpbGVzLiAgSWYgeW91IHVzZSBvbmUgb2YgdGhlCisgICAg
dHdvIHJlY29tbWVuZGVkIGZpbGUgc3lzdGVtIGxheW91dHMgYWJvdmUgYnV0IGxlYXZlIGF3YXkg
dGhlIGBgX19pbml0X18ucHlgYAorICAgIGZpbGVzIGZyb20geW91ciBkaXJlY3RvcmllcyBpdCBz
aG91bGQganVzdCB3b3JrIG9uIFB5dGhvbjMuMyBhbmQgYWJvdmUuICBGcm9tCisgICAgImlubGlu
ZWQgdGVzdHMiLCBob3dldmVyLCB5b3Ugd2lsbCBuZWVkIHRvIHVzZSBhYnNvbHV0ZSBpbXBvcnRz
IGZvcgorICAgIGdldHRpbmcgYXQgeW91ciBhcHBsaWNhdGlvbiBjb2RlLgorCisuLiBfYHRlc3Qg
cGFja2FnZSBuYW1lYDoKKworLi4gbm90ZTo6CisKKyAgICBJZiBgYHB5dGVzdGBgIGZpbmRzIGEg
ImEvYi90ZXN0X21vZHVsZS5weSIgdGVzdCBmaWxlIHdoaWxlCisgICAgcmVjdXJzaW5nIGludG8g
dGhlIGZpbGVzeXN0ZW0gaXQgZGV0ZXJtaW5lcyB0aGUgaW1wb3J0IG5hbWUKKyAgICBhcyBmb2xs
b3dzOgorCisgICAgKiBkZXRlcm1pbmUgYGBiYXNlZGlyYGA6IHRoaXMgaXMgdGhlIGZpcnN0ICJ1
cHdhcmQiICh0b3dhcmRzIHRoZSByb290KQorICAgICAgZGlyZWN0b3J5IG5vdCBjb250YWluaW5n
IGFuIGBgX19pbml0X18ucHlgYC4gIElmIGUuZy4gYm90aCBgYGFgYAorICAgICAgYW5kIGBgYmBg
IGNvbnRhaW4gYW4gYGBfX2luaXRfXy5weWBgIGZpbGUgdGhlbiB0aGUgcGFyZW50IGRpcmVjdG9y
eQorICAgICAgb2YgYGBhYGAgd2lsbCBiZWNvbWUgdGhlIGBgYmFzZWRpcmBgLgorCisgICAgKiBw
ZXJmb3JtIGBgc3lzLnBhdGguaW5zZXJ0KDAsIGJhc2VkaXIpYGAgdG8gbWFrZSB0aGUgdGVzdCBt
b2R1bGUKKyAgICAgIGltcG9ydGFibGUgdW5kZXIgdGhlIGZ1bGx5IHF1YWxpZmllZCBpbXBvcnQg
bmFtZS4KKworICAgICogYGBpbXBvcnQgYS5iLnRlc3RfbW9kdWxlYGAgd2hlcmUgdGhlIHBhdGgg
aXMgZGV0ZXJtaW5lZAorICAgICAgYnkgY29udmVydGluZyBwYXRoIHNlcGFyYXRvcnMgYGAvYGAg
aW50byAiLiIgY2hhcmFjdGVycy4gIFRoaXMgbWVhbnMKKyAgICAgIHlvdSBtdXN0IGZvbGxvdyB0
aGUgY29udmVudGlvbiBvZiBoYXZpbmcgZGlyZWN0b3J5IGFuZCBmaWxlCisgICAgICBuYW1lcyBt
YXAgZGlyZWN0bHkgdG8gdGhlIGltcG9ydCBuYW1lcy4KKworICAgIFRoZSByZWFzb24gZm9yIHRo
aXMgc29tZXdoYXQgZXZvbHZlZCBpbXBvcnRpbmcgdGVjaG5pcXVlIGlzCisgICAgdGhhdCBpbiBs
YXJnZXIgcHJvamVjdHMgbXVsdGlwbGUgdGVzdCBtb2R1bGVzIG1pZ2h0IGltcG9ydAorICAgIGZy
b20gZWFjaCBvdGhlciBhbmQgdGh1cyBkZXJpdmluZyBhIGNhbm9uaWNhbCBpbXBvcnQgbmFtZSBo
ZWxwcworICAgIHRvIGF2b2lkIHN1cnByaXNlcyBzdWNoIGFzIGEgdGVzdCBtb2R1bGUgZ2V0dGlu
ZyBpbXBvcnRlZCB0d2ljZS4KKworCisuLiBfYHZpcnR1YWxlbnZgOiBodHRwOi8vcHlwaS5weXRo
b24ub3JnL3B5cGkvdmlydHVhbGVudgorLi4gX2BidWlsZG91dGA6IGh0dHA6Ly93d3cuYnVpbGRv
dXQub3JnLworLi4gX3BpcDogaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3BpcAorCisuLiBf
YHVzZSB0b3hgOgorCitUb3gKKy0tLS0tLQorCitGb3IgZGV2ZWxvcG1lbnQsIHdlIHJlY29tbWVu
ZCB0byB1c2UgdmlydHVhbGVudl8gZW52aXJvbm1lbnRzIGFuZCBwaXBfCitmb3IgaW5zdGFsbGlu
ZyB5b3VyIGFwcGxpY2F0aW9uIGFuZCBhbnkgZGVwZW5kZW5jaWVzCithcyB3ZWxsIGFzIHRoZSBg
YHB5dGVzdGBgIHBhY2thZ2UgaXRzZWxmLiBUaGlzIGVuc3VyZXMgeW91ciBjb2RlIGFuZAorZGVw
ZW5kZW5jaWVzIGFyZSBpc29sYXRlZCBmcm9tIHRoZSBzeXN0ZW0gUHl0aG9uIGluc3RhbGxhdGlv
bi4KKworWW91IGNhbiB0aGVuIGluc3RhbGwgeW91ciBwYWNrYWdlIGluICJlZGl0YWJsZSIgbW9k
ZTo6CisKKyAgICAgcGlwIGluc3RhbGwgLWUgLgorCit3aGljaCBsZXRzIHlvdSBjaGFuZ2UgeW91
ciBzb3VyY2UgY29kZSAoYm90aCB0ZXN0cyBhbmQgYXBwbGljYXRpb24pIGFuZCByZXJ1biB0ZXN0
cyBhdCB3aWxsLgorVGhpcyBpcyBzaW1pbGFyIHRvIHJ1bm5pbmcgYHB5dGhvbiBzZXR1cC5weSBk
ZXZlbG9wYCBvciBgY29uZGEgZGV2ZWxvcGAgaW4gdGhhdCBpdCBpbnN0YWxscworeW91ciBwYWNr
YWdlIHVzaW5nIGEgc3ltbGluayB0byB5b3VyIGRldmVsb3BtZW50IGNvZGUuCisKK09uY2UgeW91
IGFyZSBkb25lIHdpdGggeW91ciB3b3JrIGFuZCB3YW50IHRvIG1ha2Ugc3VyZSB0aGF0IHlvdXIg
YWN0dWFsCitwYWNrYWdlIHBhc3NlcyBhbGwgdGVzdHMgeW91IG1heSB3YW50IHRvIGxvb2sgaW50
byBgdG94YF8sIHRoZQordmlydHVhbGVudiB0ZXN0IGF1dG9tYXRpb24gdG9vbCBhbmQgaXRzIGBw
eXRlc3Qgc3VwcG9ydAorPGh0dHBzOi8vdG94LnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC9leGFt
cGxlL3B5dGVzdC5odG1sPmBfLgorVG94IGhlbHBzIHlvdSB0byBzZXR1cCB2aXJ0dWFsZW52IGVu
dmlyb25tZW50cyB3aXRoIHByZS1kZWZpbmVkCitkZXBlbmRlbmNpZXMgYW5kIHRoZW4gZXhlY3V0
aW5nIGEgcHJlLWNvbmZpZ3VyZWQgdGVzdCBjb21tYW5kIHdpdGgKK29wdGlvbnMuICBJdCB3aWxs
IHJ1biB0ZXN0cyBhZ2FpbnN0IHRoZSBpbnN0YWxsZWQgcGFja2FnZSBhbmQgbm90CithZ2FpbnN0
IHlvdXIgc291cmNlIGNvZGUgY2hlY2tvdXQsIGhlbHBpbmcgdG8gZGV0ZWN0IHBhY2thZ2luZwor
Z2xpdGNoZXMuCisKKworSW50ZWdyYXRpbmcgd2l0aCBzZXR1cHRvb2xzIC8gYGBweXRob24gc2V0
dXAucHkgdGVzdGBgIC8gYGBweXRlc3QtcnVubmVyYGAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1lv
dSBjYW4gaW50ZWdyYXRlIHRlc3QgcnVucyBpbnRvIHlvdXIgc2V0dXB0b29scyBiYXNlZCBwcm9q
ZWN0Cit3aXRoIHRoZSBgcHl0ZXN0LXJ1bm5lciA8aHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlw
aS9weXRlc3QtcnVubmVyPmBfIHBsdWdpbi4KKworQWRkIHRoaXMgdG8gYGBzZXR1cC5weWBgIGZp
bGU6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGZyb20gc2V0dXB0b29scyBpbXBv
cnQgc2V0dXAKKworICAgIHNldHVwKAorICAgICAgICAjLi4uLAorICAgICAgICBzZXR1cF9yZXF1
aXJlcz1bJ3B5dGVzdC1ydW5uZXInLCAuLi5dLAorICAgICAgICB0ZXN0c19yZXF1aXJlPVsncHl0
ZXN0JywgLi4uXSwKKyAgICAgICAgIy4uLiwKKyAgICApCisKKworQW5kIGNyZWF0ZSBhbiBhbGlh
cyBpbnRvIGBgc2V0dXAuY2ZnYGAgZmlsZToKKworCisuLiBjb2RlLWJsb2NrOjogaW5pCisKKyAg
ICBbYWxpYXNlc10KKyAgICB0ZXN0PXB5dGVzdAorCitJZiB5b3Ugbm93IHR5cGU6OgorCisgICAg
cHl0aG9uIHNldHVwLnB5IHRlc3QKKwordGhpcyB3aWxsIGV4ZWN1dGUgeW91ciB0ZXN0cyB1c2lu
ZyBgYHB5dGVzdC1ydW5uZXJgYC4gQXMgdGhpcyBpcyBhCitzdGFuZGFsb25lIHZlcnNpb24gb2Yg
YGBweXRlc3RgYCBubyBwcmlvciBpbnN0YWxsYXRpb24gd2hhdHNvZXZlciBpcworcmVxdWlyZWQg
Zm9yIGNhbGxpbmcgdGhlIHRlc3QgY29tbWFuZC4gWW91IGNhbiBhbHNvIHBhc3MgYWRkaXRpb25h
bAorYXJndW1lbnRzIHRvIHB5dGVzdCBzdWNoIGFzIHlvdXIgdGVzdCBkaXJlY3Rvcnkgb3Igb3Ro
ZXIKK29wdGlvbnMgdXNpbmcgYGAtLWFkZG9wdHNgYC4KKworWW91IGNhbiBhbHNvIHNwZWNpZnkg
b3RoZXIgcHl0ZXN0LWluaSBvcHRpb25zIGluIHlvdXIgYGBzZXR1cC5jZmdgYCBmaWxlCitieSBw
dXR0aW5nIHRoZW0gaW50byBhIGBgW3Rvb2w6cHl0ZXN0XWBgIHNlY3Rpb246CisKKy4uIGNvZGUt
YmxvY2s6OiBpbmkKKworICAgIFt0b29sOnB5dGVzdF0KKyAgICBhZGRvcHRzID0gLS12ZXJib3Nl
CisgICAgcHl0aG9uX2ZpbGVzID0gdGVzdGluZy8qLyoucHkKKworCitNYW51YWwgSW50ZWdyYXRp
b24KK15eXl5eXl5eXl5eXl5eXl5eXgorCitJZiBmb3Igc29tZSByZWFzb24geW91IGRvbid0IHdh
bnQvY2FuJ3QgdXNlIGBgcHl0ZXN0LXJ1bm5lcmBgLCB5b3UgY2FuIHdyaXRlCit5b3VyIG93biBz
ZXR1cHRvb2xzIFRlc3QgY29tbWFuZCBmb3IgaW52b2tpbmcgcHl0ZXN0LgorCisuLiBjb2RlLWJs
b2NrOjogcHl0aG9uCisKKyAgICBpbXBvcnQgc3lzCisKKyAgICBmcm9tIHNldHVwdG9vbHMuY29t
bWFuZC50ZXN0IGltcG9ydCB0ZXN0IGFzIFRlc3RDb21tYW5kCisKKworICAgIGNsYXNzIFB5VGVz
dChUZXN0Q29tbWFuZCk6CisgICAgICAgIHVzZXJfb3B0aW9ucyA9IFsoJ3B5dGVzdC1hcmdzPScs
ICdhJywgIkFyZ3VtZW50cyB0byBwYXNzIHRvIHB5dGVzdCIpXQorCisgICAgICAgIGRlZiBpbml0
aWFsaXplX29wdGlvbnMoc2VsZik6CisgICAgICAgICAgICBUZXN0Q29tbWFuZC5pbml0aWFsaXpl
X29wdGlvbnMoc2VsZikKKyAgICAgICAgICAgIHNlbGYucHl0ZXN0X2FyZ3MgPSAnJworCisgICAg
ICAgIGRlZiBydW5fdGVzdHMoc2VsZik6CisgICAgICAgICAgICBpbXBvcnQgc2hsZXgKKyAgICAg
ICAgICAgICNpbXBvcnQgaGVyZSwgY2F1c2Ugb3V0c2lkZSB0aGUgZWdncyBhcmVuJ3QgbG9hZGVk
CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBlcnJubyA9IHB5dGVzdC5t
YWluKHNobGV4LnNwbGl0KHNlbGYucHl0ZXN0X2FyZ3MpKQorICAgICAgICAgICAgc3lzLmV4aXQo
ZXJybm8pCisKKworICAgIHNldHVwKAorICAgICAgICAjLi4uLAorICAgICAgICB0ZXN0c19yZXF1
aXJlPVsncHl0ZXN0J10sCisgICAgICAgIGNtZGNsYXNzID0geyd0ZXN0JzogUHlUZXN0fSwKKyAg
ICAgICAgKQorCitOb3cgaWYgeW91IHJ1bjo6CisKKyAgICBweXRob24gc2V0dXAucHkgdGVzdAor
Cit0aGlzIHdpbGwgZG93bmxvYWQgYGBweXRlc3RgYCBpZiBuZWVkZWQgYW5kIHRoZW4gcnVuIHlv
dXIgdGVzdHMKK2FzIHlvdSB3b3VsZCBleHBlY3QgaXQgdG8uIFlvdSBjYW4gcGFzcyBhIHNpbmds
ZSBzdHJpbmcgb2YgYXJndW1lbnRzCit1c2luZyB0aGUgYGAtLXB5dGVzdC1hcmdzYGAgb3IgYGAt
YWBgIGNvbW1hbmQtbGluZSBvcHRpb24uIEZvciBleGFtcGxlOjoKKworICAgIHB5dGhvbiBzZXR1
cC5weSB0ZXN0IC1hICItLWR1cmF0aW9ucz01IgorCitpcyBlcXVpdmFsZW50IHRvIHJ1bm5pbmcg
YGBweXRlc3QgLS1kdXJhdGlvbnM9NWBgLgorCisKKy4uIGluY2x1ZGU6OiBsaW5rcy5pbmMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9oaXN0b3JpY2FsLW5vdGVzLnJzdCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9oaXN0b3JpY2FsLW5vdGVzLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMjhjZWZmOWIx
NzQ4NjFiY2Q5NTBlYTllN2E4NzM0NTM4ZTMzMmE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2hpc3RvcmljYWwtbm90ZXMucnN0CkBAIC0wLDAgKzEsMTc3IEBACitIaXN0
b3JpY2FsIE5vdGVzCis9PT09PT09PT09PT09PT09CisKK1RoaXMgcGFnZSBsaXN0cyBmZWF0dXJl
cyBvciBiZWhhdmlvciBmcm9tIHByZXZpb3VzIHZlcnNpb25zIG9mIHB5dGVzdCB3aGljaCBoYXZl
IGNoYW5nZWQgb3ZlciB0aGUgeWVhcnMuIFRoZXkgYXJlCitrZXB0IGhlcmUgYXMgYSBoaXN0b3Jp
Y2FsIG5vdGUgc28gdXNlcnMgbG9va2luZyBhdCBvbGQgY29kZSBjYW4gZmluZCBkb2N1bWVudGF0
aW9uIHJlbGF0ZWQgdG8gdGhlbS4KKworY2FjaGUgcGx1Z2luIGludGVncmF0ZWQgaW50byB0aGUg
Y29yZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiB2ZXJzaW9u
YWRkZWQ6OiAyLjgKKworVGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIDpyZWY6YGNvcmUgY2FjaGUg
PGNhY2hlPmAgcGx1Z2luIHdhcyBwcmV2aW91c2x5IGRpc3RyaWJ1dGVkCithcyBhIHRoaXJkIHBh
cnR5IHBsdWdpbiBuYW1lZCBgYHB5dGVzdC1jYWNoZWBgLiAgVGhlIGNvcmUgcGx1Z2luCitpcyBj
b21wYXRpYmxlIHJlZ2FyZGluZyBjb21tYW5kIGxpbmUgb3B0aW9ucyBhbmQgQVBJIHVzYWdlIGV4
Y2VwdCB0aGF0IHlvdQorY2FuIG9ubHkgc3RvcmUvcmVjZWl2ZSBkYXRhIGJldHdlZW4gdGVzdCBy
dW5zIHRoYXQgaXMganNvbi1zZXJpYWxpemFibGUuCisKKworZnVuY2FyZ3MgYW5kIGBgcHl0ZXN0
X2Z1bmNhcmdfX2BgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gdmVy
c2lvbmNoYW5nZWQ6OiAyLjMKKworSW4gdmVyc2lvbnMgcHJpb3IgdG8gMi4zIHRoZXJlIHdhcyBu
byBgYEBweXRlc3QuZml4dHVyZWBgIG1hcmtlcgorYW5kIHlvdSBoYWQgdG8gdXNlIGEgbWFnaWMg
YGBweXRlc3RfZnVuY2FyZ19fTkFNRWBgIHByZWZpeAorZm9yIHRoZSBmaXh0dXJlIGZhY3Rvcnku
ICBUaGlzIHJlbWFpbnMgYW5kIHdpbGwgcmVtYWluIHN1cHBvcnRlZAorYnV0IGlzIG5vdCBhbnlt
b3JlIGFkdmVydGlzZWQgYXMgdGhlIHByaW1hcnkgbWVhbnMgb2YgZGVjbGFyaW5nIGZpeHR1cmUK
K2Z1bmN0aW9ucy4KKworCitgYEBweXRlc3QueWllbGRfZml4dHVyZWBgIGRlY29yYXRvcgorLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gdmVyc2lvbmNoYW5nZWQ6OiAy
LjEwCisKK1ByaW9yIHRvIHZlcnNpb24gMi4xMCwgaW4gb3JkZXIgdG8gdXNlIGEgYGB5aWVsZGBg
IHN0YXRlbWVudCB0byBleGVjdXRlIHRlYXJkb3duIGNvZGUgb25lCitoYWQgdG8gbWFyayBhIGZp
eHR1cmUgdXNpbmcgdGhlIGBgeWllbGRfZml4dHVyZWBgIG1hcmtlci4gRnJvbSAyLjEwIG9ud2Fy
ZCwgbm9ybWFsCitmaXh0dXJlcyBjYW4gdXNlIGBgeWllbGRgYCBkaXJlY3RseSBzbyB0aGUgYGB5
aWVsZF9maXh0dXJlYGAgZGVjb3JhdG9yIGlzIG5vIGxvbmdlciBuZWVkZWQKK2FuZCBjb25zaWRl
cmVkIGRlcHJlY2F0ZWQuCisKKworYGBbcHl0ZXN0XWBgIGhlYWRlciBpbiBgYHNldHVwLmNmZ2Bg
CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gdmVyc2lvbmNoYW5n
ZWQ6OiAzLjAKKworUHJpb3IgdG8gMy4wLCB0aGUgc3VwcG9ydGVkIHNlY3Rpb24gbmFtZSB3YXMg
YGBbcHl0ZXN0XWBgLiBEdWUgdG8gaG93Cit0aGlzIG1heSBjb2xsaWRlIHdpdGggc29tZSBkaXN0
dXRpbHMgY29tbWFuZHMsIHRoZSByZWNvbW1lbmRlZAorc2VjdGlvbiBuYW1lIGZvciBgYHNldHVw
LmNmZ2BgIGZpbGVzIGlzIG5vdyBgYFt0b29sOnB5dGVzdF1gYC4KKworTm90ZSB0aGF0IGZvciBg
YHB5dGVzdC5pbmlgYCBhbmQgYGB0b3guaW5pYGAgZmlsZXMgdGhlIHNlY3Rpb24KK25hbWUgaXMg
YGBbcHl0ZXN0XWBgLgorCisKK0FwcGx5aW5nIG1hcmtzIHRvIGBgQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplYGAgcGFyYW1ldGVycworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIHZlcnNpb25jaGFuZ2VkOjogMy4xCisKK1ByaW9y
IHRvIHZlcnNpb24gMy4xIHRoZSBzdXBwb3J0ZWQgbWVjaGFuaXNtIGZvciBtYXJraW5nIHZhbHVl
cwordXNlZCB0aGUgc3ludGF4OjoKKworICAgIGltcG9ydCBweXRlc3QKKyAgICBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoInRlc3RfaW5wdXQsZXhwZWN0ZWQiLCBbCisgICAgICAgICgiMys1Iiwg
OCksCisgICAgICAgICgiMis0IiwgNiksCisgICAgICAgIHB5dGVzdC5tYXJrLnhmYWlsKCgiNio5
IiwgNDIpLCksCisgICAgXSkKKyAgICBkZWYgdGVzdF9ldmFsKHRlc3RfaW5wdXQsIGV4cGVjdGVk
KToKKyAgICAgICAgYXNzZXJ0IGV2YWwodGVzdF9pbnB1dCkgPT0gZXhwZWN0ZWQKKworCitUaGlz
IHdhcyBhbiBpbml0aWFsIGhhY2sgdG8gc3VwcG9ydCB0aGUgZmVhdHVyZSBidXQgc29vbiB3YXMg
ZGVtb25zdHJhdGVkIHRvIGJlIGluY29tcGxldGUsCiticm9rZW4gZm9yIHBhc3NpbmcgZnVuY3Rp
b25zIG9yIGFwcGx5aW5nIG11bHRpcGxlIG1hcmtzIHdpdGggdGhlIHNhbWUgbmFtZSBidXQgZGlm
ZmVyZW50IHBhcmFtZXRlcnMuCisKK1RoZSBvbGQgc3ludGF4IGlzIHBsYW5uZWQgdG8gYmUgcmVt
b3ZlZCBpbiBweXRlc3QtNC4wLgorCisKK2BgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplYGAgYXJn
dW1lbnQgbmFtZXMgYXMgYSB0dXBsZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIHZlcnNpb25jaGFuZ2VkOjogMi40CisKK0luIHZl
cnNpb25zIHByaW9yIHRvIDIuNCBvbmUgbmVlZGVkIHRvIHNwZWNpZnkgdGhlIGFyZ3VtZW50Citu
YW1lcyBhcyBhIHR1cGxlLiAgVGhpcyByZW1haW5zIHZhbGlkIGJ1dCB0aGUgc2ltcGxlciBgYCJu
YW1lMSxuYW1lMiwuLi4iYGAKK2NvbW1hLXNlcGFyYXRlZC1zdHJpbmcgc3ludGF4IGlzIG5vdyBh
ZHZlcnRpc2VkIGZpcnN0IGJlY2F1c2UKK2l0J3MgZWFzaWVyIHRvIHdyaXRlIGFuZCBwcm9kdWNl
cyBsZXNzIGxpbmUgbm9pc2UuCisKKworc2V0dXA6IGlzIG5vdyBhbiAiYXV0b3VzZSBmaXh0dXJl
IgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiB2ZXJzaW9uY2hhbmdl
ZDo6IDIuMworCitEdXJpbmcgZGV2ZWxvcG1lbnQgcHJpb3IgdG8gdGhlIHB5dGVzdC0yLjMgcmVs
ZWFzZSB0aGUgbmFtZQorYGBweXRlc3Quc2V0dXBgYCB3YXMgdXNlZCBidXQgYmVmb3JlIHRoZSBy
ZWxlYXNlIGl0IHdhcyByZW5hbWVkCithbmQgbW92ZWQgdG8gYmVjb21lIHBhcnQgb2YgdGhlIGdl
bmVyYWwgZml4dHVyZSBtZWNoYW5pc20sCituYW1lbHkgOnJlZjpgYXV0b3VzZSBmaXh0dXJlc2AK
KworCisuLiBfc3RyaW5nIGNvbmRpdGlvbnM6CisKK0NvbmRpdGlvbnMgYXMgc3RyaW5ncyBpbnN0
ZWFkIG9mIGJvb2xlYW5zCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCisuLiB2ZXJzaW9uY2hhbmdlZDo6IDIuNAorCitQcmlvciB0byBweXRlc3QtMi40IHRoZSBv
bmx5IHdheSB0byBzcGVjaWZ5IHNraXBpZi94ZmFpbCBjb25kaXRpb25zIHdhcwordG8gdXNlIHN0
cmluZ3M6OgorCisgICAgaW1wb3J0IHN5cworICAgIEBweXRlc3QubWFyay5za2lwaWYoInN5cy52
ZXJzaW9uX2luZm8gPj0gKDMsMykiKQorICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKCk6CisgICAgICAg
IC4uLgorCitEdXJpbmcgdGVzdCBmdW5jdGlvbiBzZXR1cCB0aGUgc2tpcGlmIGNvbmRpdGlvbiBp
cyBldmFsdWF0ZWQgYnkgY2FsbGluZworYGBldmFsKCdzeXMudmVyc2lvbl9pbmZvID49ICgzLDAp
JywgbmFtZXNwYWNlKWBgLiAgVGhlIG5hbWVzcGFjZSBjb250YWlucworYWxsIHRoZSBtb2R1bGUg
Z2xvYmFscywgYW5kIGBgb3NgYCBhbmQgYGBzeXNgYCBhcyBhIG1pbmltdW0uCisKK1NpbmNlIHB5
dGVzdC0yLjQgOnJlZjpgYm9vbGVhbiBjb25kaXRpb25zIDxjb25kaXRpb24gYm9vbGVhbnM+YCBh
cmUgY29uc2lkZXJlZCBwcmVmZXJhYmxlCitiZWNhdXNlIG1hcmtlcnMgY2FuIHRoZW4gYmUgZnJl
ZWx5IGltcG9ydGVkIGJldHdlZW4gdGVzdCBtb2R1bGVzLgorV2l0aCBzdHJpbmdzIHlvdSBuZWVk
IHRvIGltcG9ydCBub3Qgb25seSB0aGUgbWFya2VyIGJ1dCBhbGwgdmFyaWFibGVzCit1c2VkIGJ5
IHRoZSBtYXJrZXIsIHdoaWNoIHZpb2xhdGVzIGVuY2Fwc3VsYXRpb24uCisKK1RoZSByZWFzb24g
Zm9yIHNwZWNpZnlpbmcgdGhlIGNvbmRpdGlvbiBhcyBhIHN0cmluZyB3YXMgdGhhdCBgYHB5dGVz
dGBgIGNhbgorcmVwb3J0IGEgc3VtbWFyeSBvZiBza2lwIGNvbmRpdGlvbnMgYmFzZWQgcHVyZWx5
IG9uIHRoZSBjb25kaXRpb24gc3RyaW5nLgorV2l0aCBjb25kaXRpb25zIGFzIGJvb2xlYW5zIHlv
dSBhcmUgcmVxdWlyZWQgdG8gc3BlY2lmeSBhIGBgcmVhc29uYGAgc3RyaW5nLgorCitOb3RlIHRo
YXQgc3RyaW5nIGNvbmRpdGlvbnMgd2lsbCByZW1haW4gZnVsbHkgc3VwcG9ydGVkIGFuZCB5b3Ug
YXJlIGZyZWUKK3RvIHVzZSB0aGVtIGlmIHlvdSBoYXZlIG5vIG5lZWQgZm9yIGNyb3NzLWltcG9y
dGluZyBtYXJrZXJzLgorCitUaGUgZXZhbHVhdGlvbiBvZiBhIGNvbmRpdGlvbiBzdHJpbmcgaW4g
YGBweXRlc3QubWFyay5za2lwaWYoY29uZGl0aW9uc3RyaW5nKWBgCitvciBgYHB5dGVzdC5tYXJr
LnhmYWlsKGNvbmRpdGlvbnN0cmluZylgYCB0YWtlcyBwbGFjZSBpbiBhIG5hbWVzcGFjZQorZGlj
dGlvbmFyeSB3aGljaCBpcyBjb25zdHJ1Y3RlZCBhcyBmb2xsb3dzOgorCisqIHRoZSBuYW1lc3Bh
Y2UgaXMgaW5pdGlhbGl6ZWQgYnkgcHV0dGluZyB0aGUgYGBzeXNgYCBhbmQgYGBvc2BgIG1vZHVs
ZXMKKyAgYW5kIHRoZSBweXRlc3QgYGBjb25maWdgYCBvYmplY3QgaW50byBpdC4KKworKiB1cGRh
dGVkIHdpdGggdGhlIG1vZHVsZSBnbG9iYWxzIG9mIHRoZSB0ZXN0IGZ1bmN0aW9uIGZvciB3aGlj
aCB0aGUKKyAgZXhwcmVzc2lvbiBpcyBhcHBsaWVkLgorCitUaGUgcHl0ZXN0IGBgY29uZmlnYGAg
b2JqZWN0IGFsbG93cyB5b3UgdG8gc2tpcCBiYXNlZCBvbiBhIHRlc3QKK2NvbmZpZ3VyYXRpb24g
dmFsdWUgd2hpY2ggeW91IG1pZ2h0IGhhdmUgYWRkZWQ6OgorCisgICAgQHB5dGVzdC5tYXJrLnNr
aXBpZigibm90IGNvbmZpZy5nZXR2YWx1ZSgnZGInKSIpCisgICAgZGVmIHRlc3RfZnVuY3Rpb24o
Li4uKToKKyAgICAgICAgLi4uCisKK1RoZSBlcXVpdmFsZW50IHdpdGggImJvb2xlYW4gY29uZGl0
aW9ucyIgaXM6OgorCisgICAgQHB5dGVzdC5tYXJrLnNraXBpZihub3QgcHl0ZXN0LmNvbmZpZy5n
ZXR2YWx1ZSgiZGIiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iLS1kYiB3YXMg
bm90IHNwZWNpZmllZCIpCisgICAgZGVmIHRlc3RfZnVuY3Rpb24oLi4uKToKKyAgICAgICAgcGFz
cworCisuLiBub3RlOjoKKworICAgIFlvdSBjYW5ub3QgdXNlIGBgcHl0ZXN0LmNvbmZpZy5nZXR2
YWx1ZSgpYGAgaW4gY29kZQorICAgIGltcG9ydGVkIGJlZm9yZSBweXRlc3QncyBhcmd1bWVudCBw
YXJzaW5nIHRha2VzIHBsYWNlLiAgRm9yIGV4YW1wbGUsCisgICAgYGBjb25mdGVzdC5weWBgIGZp
bGVzIGFyZSBpbXBvcnRlZCBiZWZvcmUgY29tbWFuZCBsaW5lIHBhcnNpbmcgYW5kIHRodXMKKyAg
ICBgYGNvbmZpZy5nZXR2YWx1ZSgpYGAgd2lsbCBub3QgZXhlY3V0ZSBjb3JyZWN0bHkuCisKK2Bg
cHl0ZXN0LnNldF90cmFjZSgpYGAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gdmVyc2lv
bmNoYW5nZWQ6OiAyLjQKKworUHJldmlvdXMgdG8gdmVyc2lvbiAyLjQgdG8gc2V0IGEgYnJlYWsg
cG9pbnQgaW4gY29kZSBvbmUgbmVlZGVkIHRvIHVzZSBgYHB5dGVzdC5zZXRfdHJhY2UoKWBgOjoK
KworICAgIGltcG9ydCBweXRlc3QKKyAgICBkZWYgdGVzdF9mdW5jdGlvbigpOgorICAgICAgICAu
Li4KKyAgICAgICAgcHl0ZXN0LnNldF90cmFjZSgpICAgICMgaW52b2tlIFBEQiBkZWJ1Z2dlciBh
bmQgdHJhY2luZworCisKK1RoaXMgaXMgbm8gbG9uZ2VyIG5lZWRlZCBhbmQgb25lIGNhbiB1c2Ug
dGhlIG5hdGl2ZSBgYGltcG9ydCBwZGI7cGRiLnNldF90cmFjZSgpYGAgY2FsbCBkaXJlY3RseS4K
KworRm9yIG1vcmUgZGV0YWlscyBzZWUgOnJlZjpgYnJlYWtwb2ludHNgLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2ltZy9jcmFtZXIyLnBuZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9p
bWcvY3JhbWVyMi5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmJmMGU5MmUyMGQ5YTdmZTc1NzljM2M4YjU2ZjU2
ZGUxZmIxNDI2OApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjUyOTEKemNtYjVWV21zRm03QjBN
bEx2YmpALTZfVDBEZWtWdERlbXNqTFVEJXojb2U5YT8oWGhaKz0+TjxvMVhLV0FLJi11Cnotc0RO
TFhPaGBfbWhHQUt0flgmeTNYJipEXyglVyVwaCEhSnNRPl5KSkxFVk0wU2ZZN2RJXjZFYDJhYnFO
UXdmTAp6Nk5FPlEyQXJ8MXEhe3FfQDBzMFJsbU97TGJkYl9eMjdxXjF8NlUqPEg2MGh5M0dYNTtG
QWwjQmh5OU0xQWEyMXoKejlzbyFJWCl6SHNrQ29GNWNiYFBAKlRHSVUjbnExRzgtO2gkaGVPY2Ns
PTh6KyNEKTlMIV8xJEttUU9zM0xOZUU5Cno+JUxzdDZjcmhON04/Xn1wbGA8X01XbD9+TkVrbWlk
bExNKmU+WEA/TXZJOEpMdi05YFB7cjNQSTYxKn5vcENXewp6Wm9iY1ZPKTVqampFZjh4PXQlJFY3
dmpIej8hS15ZTHI1MzMhb1A7JFBUIyk8OTJVKkwjYERhVXd7d0UlQXA9JEEKei0zV2h3cmojJjZD
PV5zU2Zhe1dncWNCNCpVRWZhIWRsSkgpeXFDKFhOU0IqYC1JfU5wOTxVNFo5VVdHVG1PSyVpCno2
b0hKRzM+Z1NnJUI3SU81WTswSU1ASz9iYDhJbkhPTX4zfWNQSGghV1JKZSY0dSY0LUV8WkpoTThp
JTlUMWdsSQp6K1BIb1FHSntURCRJXkdEMm1iMGNpfEBuZlFBQkMhNiMjNWl5JjFMUFM/b190YWlX
M3xsPDR4KXAqWmdnaWhGPF8Kej5+Qm5qMjskaHske2MhJmgtN05YViQjPyFRKDt9c0lDV3U/KF5Y
MF4yLSRpTDJ3Tn1fQnt7aWNvbz1ASEkwRHFWCnpqXmd1dyVSIWNpbXVISD89eTIhJnc/K2EpMGhj
RWpNV0c2bDU0RmFmM35NfUBJV1h1QGEmJURpaHA4Tj0ye1B8eQp6YmdXc1doSnJ6c3loYERAR2VP
S2I9bztfc053PzVgeWpOZHokJmRoeklBUmJ4QyEjQihfbXQ5S3dYR1pYVTtgRnYKenppNUdsLWBw
WnNBd0hFZTxQTHBpM010JWxZQFVDKjY0X2hCQjlMJWxRQUtkTyM2VUZ8KiM4dFIofDJTNXVnak5N
CnpRZz19X3R1NjJrR1hiQktgLUV0b3N5VVU5MnBkWnx1ZykwKDBGREJfaHdvZkhAY1ZWPDlfM1R+
SVBfPGlrNU04NQp6JFhrZX4peFBhfHB6MjEjTVdSQz9WRiMjVzktSFkmP15HVzw9ZEZaZWZQVzFg
ISpRUWRoZWA0YS18IUZ5QWdEbzgKelIqI3I2PDM8e1VhV20zZzZGJEhmMVNxKSNeKFklSlA9RXM+
JUlLdnYrYm41fkRVY1I4dkote1h2Sz9yMW83eUBTCnpJSUd9KjZuaGRoU0FqU3ZrZj5BPGR3d1lm
KXl4anVTVSYrSkQ4THZYJXFYQTU9M0AjRCY4X0U9cDlvSXVlKHs5Uwp6YCVzS3RLc1dgYVYqWmF+
ayNqNEE9ekV4b3FQNTdTbFlQVXE/anpZUFhQWndwNDtfLUBoJn5LZSQlc2RvZWxPRzgKemEoP3gm
Q2ZKRko7Q09+OTZfWHpYa08+MF8wN1Z4cl92ekp4P3o0VllyMzc8MEt0KV4xNlBua2pwcisjTHVg
S0tGCnpzK3N0JFI3fHs1bVVCNmhfQDdjIUJAe3FXRjROUj1iY21ReENTQkd4Q0RMbFhzTENIYHI7
OTYxT3NpTEJTbFAlKwp6e1NGPHBvcmdBWXpeWXZVZj45KnNsNW8oT3pla0c3aT1Gd3FsNHl3bmgm
eilqTU9AV3NDdzRsSWtmbVlaYyU/TTMKejA1YyNJMUtvSlA4YTJQWHF3dzR6dGltOHo4SXcrb2Yr
bTE4QTFEczZEUUNxKWhUR0w3U0oyQnpZPUVDdDk+RyNhCnpfVns+Uz11KGFzUjtlbH4mY2ZxOEhU
OFZDO1ApY005SUslfHVjZilVdmc2ViFBWHBfdGh6d0VjKG1zbUVPR319dwp6Uz44TSpnO2VnZURa
NmUzT0xSKDgtK2ZiMVAqN2pyKHI+a0NEK00/MmNxSCUjbzBaYWdENXdITERzbS1nUUYhcUEKekN+
bVUoP15RWmpxIWpYZUA7fnNqJlIjVHFZQFd2ZHRld1JUMCFXYnAwTUcmbComaS09e3hHUzcmX2M0
ckJtcjcpCno2fkNFS3FqY3FQbjg7eFh2UUtPcm45KUlqK2Z1YVVMNyZ5OyheMUE8PVEobmVuNEp5
JUJ9TG40V3Bid3RuZWtBbAp6XkdyRXFCKFB9eXdrPn41aypuY00+byEmZ01qRm5pKWAoRi1hOWI+
I1kyenNlPlNIQVUzPCFoYCRHc0lARX5MZTAKemJmdShgQGh7LTRGXlZYPk87JX1jNSNZS35NfTdv
S1B9eUo9PDB1PHI4bmExOE4jUH4reykkcGxCfk9MPlpXdm5nCnpEPSRKOEpLIzcpdn0+MU9YKHYq
d043fU40eCh0czNsXmZNYTN9Yz5kOTtCd1hzMTk0a1pfb1pLOT9PWVp7eDMlKAp6SX1YV1E0QE05
PXp9aTBtOCNpQGArQyt7WWl1dTxebWJ0Ql9yQDN6SlZhaWteP0xVIV5QTHFpX017Ri1sQ3lvc1EK
endnRHNnP1ZyYChpWk9HSU8yN1V3clRTYCkkakxDUkNQTyNQQTw4WnFoUXlBKTY5UXJ1JkZ6aUhG
b3pGZiYkU2pTCnpOPnN7SyV9e31YeEs5d0VFYVFAa0JAPl9gPiFzN1YtUDxQNW43UDZtI0p0XnZ1
Ykl8ZU0oRUBmbytlPFZBNzgkSgp6cFh+MGdvKj88dnpUaUtXaVEtPVY0RkRwRVBeOTBQI2liK3om
P2lmZmlwdDM2RzNHcjM2RkR1aSQxeSZHNUpiZ2gKeml6fkBzNUczI0JSRGYoQFMwS3Y1TkRtcWFy
eWFsKlZQfGdsd0ZwTHMlSTJNQm0hR0JXWnREVWA2RD9KPkZpKT5mCnpoMDtwMntYTUlFODQwUygw
UlFvPVJGZHtwX2k9SzlkSDJaJURYaSFvNEAyZj82WHklcU9hTCg1eFN4aCFMX01fQQp6KU5vaThG
eURCViN8MCNXWVFYY19aYTUqM2AqUkJTT1lGQmY+cU1BdTJkK3FkUjZCP2FmPEgrRSl1K0BtKFRN
fDgKenRpcyR3NWloa2M+QnhqZClZVXswcVY0KCQwQm1KYTFRUXVWKEcyR3hUdERXeXUqfDMrTTYl
UmVpNXxGMlhyaklwCnpUb1dIY2R2XkwpPUopd0pSa2Z8OSFeeCZyM3FQdXRHMig1SU5LcyZLSGMt
PD16MkFJWj9TLXhoVSZ1SzdeMXFAOAp6RzF7LTNkTEJlZCRONW96N3cpfn4pOXxASihvQXpCRFly
cFUyRFdUVm1oKSZiOUpfbTlScEM7V0R3IWFASHV9RFoKekA2ITtRbGF7YmwoYmklS1RXJkpmNF4j
fjwmLTk8aEwhKEZkMXVYJnRwSGshI2NVP3I7XzEtYUhoKzBhKmxNdng8CnpBTn5eOFFeWERiV2F1
aHpgY3NLQzV2cXI5QTlTNjlCfm1uRyRsQVh8bTR8KXZOVm1faTtnSD1oajFgdn1oYl4zWQp6akI8
IWc3Y0BnczUxa3cmITEwNT84aX52QWJ3S0ZLLXNAXypZO1p9QFpFPlAjKCklPmFsTUhEb0orOX5O
QFE9ay0Kem1wOXRSPChrKWxhK2NNYDxJWEx+YD5NQ1lhbTI+Z3ZsNTJqKUwrNlpraWFlRW1SRT5+
JFRYRyZWSXpxVWVXfGdzCnpqbFY+PGJrdytQITt3ZmxARjJiPGJsP3thVjhOaztifDYlS3BLRmFS
YkBScyY1WFN2e15Da0R0MEBlZiZMbzcmeQp6dGNPTz9BM1F7cSptcUZNdGZvd21PS0t6JTs7Xyk4
aTEkTCFkdGo3a2F+fjttd0FoUkppITZmeHI3ZXExI2Y0dCYKejB8Tm55QU1sdSRePWNuJWJ2dnQr
O2Vve0B8MWJXJl9uWT81bitWc15NOFphQEUxYH4tRzt9TiN1WFJzVnsmdXAoCnowIUtrYzM0P28t
eTR7Kn17PEhnXl4/fD4zekwpI2AhejY7UFd9O2tJVmxMbWdlVU1OdzZxaDMqIWx9eG5tcnJqVgp6
MFNIfUBVRVFCY15AZ0l0Q1EpeWdYcnJzPnJxRDZAS1EtM25ndnJFblZPcllSJldxK353VF8hezsp
eC1lV0c3O1oKeihvJWBoLX51TXRRQ3NnTXV8PFdrc3IwZXdwaFBXbm5iKVJOYm9EbTE3N3VTaTVg
I1JSRVNHdVFBXys+WmR2Y2Z1CnpqZ1cpXis4eD9gZ2FPX2led2A3ZzB+Jk54QkxZdE0+RCM8V3E3
MzZ+bXR+NFp7KkgkQ3p7dGtedGdkO1J6aVB2aAp6PEc4IVMtYnN+VGxpNlQqQXR8aD4zP0FvRSt2
ZUkkbms2MF9qTW9kaT1EMjRlNERkSGF2Y3V6SHRxR01RYDwkYmIKekA4RThnOWwmK0VJSXkzJWVZ
P2lCUiVyMl9nckRyWnBJQ1ZySD9sYnErSE5iZVp6ZXgpVndHSlokVUlTXj9vQ1A0Cnpfaj0/aT5V
U3dgcUtpNnRiNlpgUDlZTUo3QEM0dVgoQX53YmkrWEhnSWFmWGAhSUh7KlRSekN3RTNVc2h1TitI
Rgp6eWZBRiYkM31ZNzt7KERUWiY9UGF6TmIqSmcmakEwI3dSMTR7NGV7ZCN6b3xtaz0lREpvMH1Y
PXg9eXlmeVRiPVUKelRLLUZVdlVGRSV5Mk5kX1Y9Z3NwTUo/dVVTNnJ7e0h6eWhKWEBQKlQmcU97
P1hadjMyKEohS355STdWNSRafCVsCnpBbUdeYmUkRXZJZ2JVa2tnaVZBPXFodGs+bjMyQXZDfnQk
d0VuTTd4XnBUMCkmWUBNN2ZXWkJYS0BIbj5FNUkpaAp6eyReNTZGKE0rMDEoen0haSYtTWQpendW
O3c9TkBwNDk0SWgqRjFjMCspQHhfTGpUUz83IypGQWtrTH1OX29zWGcKeil4U0coIzNfRkpkLSln
K004WlZnP3dqUzhiVUU/e09rQzU0YTBEVGNoUTEyOVdTWUZATnBTOTtLRSQtbXNra2tkCnp7UkVX
U1ohJnh9ZzsqRDBmUEM5a0hxR15DPEBHcWNkYyk3I3NoU3RkTilEVWVPIXxwcmw9OTduTHVgczkw
Tz0yZAp6diUzdG8zVzE8K2s2P2YwWSFKfSgqUnpQbSsyS0JmZTBUTnNJaFNDZyU9UnQwKGRqekFw
WU5SK0A9USNnZUM0PzgKejB6QmwwKzxRNFJtNGJ8Z3ZXbE9tdjswbisoWVElZ0VyPkZOOUEkWFhm
Qi02MEg3MFYjcl9IdnZwWWAoQGJWTmxLCnpLIUE4MV9EZn0qJE05S0lkeTZKNDBNdmhkR21xSVU5
fjh1WW56P3ZZZWdFUT1aP3lQP3ckQGtSPVA+QUM7Xk5WYAp6XktKOF57PXZETm9AMHtGXiswPT8r
dmEwZHJAPkZFK2U4K35LOGliPHlTPSlaOVIyU2xWMHA9NjAjN0x+KkVzTncKektjdEheJSZhYyVL
d09ATlE/Z3RMbnx8NCNzbE0zYj1Ab2l8bmFhOXhOdmBLX1BQNkJnV3BCdXohYjBsN2VxT2d6Cnpo
N21haCspT3NEU2gxam96XmBCRHFiaDJgaFZpJUJmQXFLQm9tTikzOHdKNWMhaFkwKFJxRVh+V0h5
d08jcSNfbAp6K0k0YmNmdUs1XntmXnUraTtSLXl1M0Q0TXh8X3A5LWB8MUBeIUkjMkVpWkIkTHhr
c00hRFJZO0hQUWQ9QnhaOF8KeiNAPVZZKFZmWFVfOzBsVHYtTTxpJT5KKjAhWkQpOW57VVFJIUIk
eWR4OD8zUTBIRCpwOGYoRztLdW8zKDRATXczCnp1JkNyRzNJQjRYOUMtR15YYUMmIWlIQHBGLSgl
fHNpcCpwKWE8VjtiU1NIPXFVcnRCKU8oZUpoaWZLPnhMaT10bgp6RnBnKGo/X1VtbDlsTnZfNGJy
cDUha1JVMXIlbmR4QFBYYFR4YHRmO19CN2Bzd2hOfVFWIXlpJVo9ckgxOzRie2gKejkqZ2FSVjls
UV41ZnFYJnxIWEpHcHhCX25eYklCRTtGcXd5KUB6WWFsYH1Mej5AKXZ2YSs2dGJwPkB9d2FzQTR5
CnpNQ0VVeldiKE1qKl5XIWNZR2pTSDAzQF5HY1U7bGN2MH12KVVNI2I9TWtTI3c5WClnM1BFQDln
P3xTIyRrVWZ5Sgp6PjE5THVhfHJVVVNXUHc2dnN1QGBhVTJjVDxmNGtnTGJ1Nys5ZjJvVldHSCkl
emFfKCRXX2I/Tj5DMSNuaGUzYUYKemV8KFEpVENnZCVjUks+WTN5fXprSTgzYGpiM1VgcXNNd2Uj
MVlpdHljaWx2bT1rJXJgTWNpQHRFfXVHdTVhRWNSCnpkcWlTVDNFdiFnKjRgWGBlKUMpVkpJdzNo
IWdeVz41MTRDNUFufWwySHR1WkM3OTlZckc1MlNsZmZmOChIMlM8Vwp6elJUQTJLKnROOyQ8TVpL
PEMqO0Mta2NfTShyVn1OP1d1Y1oyPj5DPHVVLUhFeC12TlpqaH0wPCloZWBHT0NoOyUKelBAREln
ISpCe1dHVnwrSSRaUGUldi1lXyVIJEx+biQjTEU7d0c8eT8/QH1YRj9sNDtDXk1TVXEydTA9aUFm
d0xXCnoxdlMoMj9EJVkqN19RNTFNTUNtPXkpcD0zYm5EKkhIVUNPTGBxWipvJGtjazRNaz42ZTxR
UzIoN15DSWBVTFltewp6TlpsclU3eCF0VDBtTk5AQDMtZkAjZ0RkQktTO187R3lQd0xiSjhHLTI9
YWhxe31IJTM7ZiExWWZjUCtNfDQpSyYKemBraT1IYX0qaW90MlJSeGxmMDdKVCRfV0E5PytFfk1l
elBXS09jVmpfX2g9YnpfMEhnKE9PWWMocD1lNFN5JXwzCnokfDs9X09SRnM5NTVkUipTfH40VEJ1
cG5HTX5COXdXTSQ+MDYoUz5DbWwofkl3YGo9X3pLeHJXai04cX1YelBmUAp6V3VKYE9aaUtSdyEk
WlRCWUlfaU42WHMtdHFKbC0hXkdRfjxZSEBTQEVzZXpDMFliaEBfWlVVfjcyfHltKl8kZFEKei00
cDsmTk4wRGFxK2dUbFpyQDl6fEVnQXJ1dzZUIXdoQj5lJT9FezAwa2RSKyh6UkteOTReQlpEYWp7
QlpuR1FoCnomcl4+QTA8P19rcUN9cT1oUnFJam4rcUkyQz4meDNZK3pUc2kqQlIpTUdnUzBgM0ta
SjEzRXg7eHxgUXFhZUV7bAp6TWZgU302TSliWDJvcmpAKWN+SGsmMEB+fUVEe0F4ams9JUlhSURs
YEdVYV5NNj1jVWMwNzw/Ri14c2FUMT97aSEKej0yMXFFTnBYX2lFQz40PF98fSEhR0k1ZDNjUV45
I0J1dXxZeC1gUyRCcnF7MTNaKVM0eGtaVlJBMExOX21FUUA8CnpVK1RqPk50eTE9X3wofkoxeU5Y
MzJZakhfTis9bCpBKj56XmI9fExCQzJuayR3Iz8lSlVVbF9JWTctUnxtR1g1Zgp6YmtFNFJXam5T
TjZaUm13PjlER0s/Yl51JGh4bUluUlVmT14xaHA7Mk9wY3A/KzA2fC1vdjNMUyVjalRHeDMqXysK
eklPQzY3IUlgTGhEIUZ0JSUoR1M1OUx0eDFsezlEZ25VUSh8VEBjWE1fVUBYbkRVSFRjcytFKlZt
KE59I19AMHQyCnpwZmpYOXJrbVhMRnBXWDFZZFUwbyZAbTcqem1uSmVJaFV3QSl4eT52Nks1cWt5
ZXI8cW1QLSZ2e3RUSy1oOEF7eAp6YiF5P1llZkA1ZEBHaGBWMmVyTzlIbFNxYDdtYCZIN01VfVor
UiR6STReYk8+NGg1dVJPQTsxY3RrekRhVEk/OTMKejcrY0dfcztZKjVYQjNSKU57YnokaHtWPSZf
dXtBOGAmcEB4T2Uka213b1hqMiR8UnNpT210QTRZSTNITGpaSz5hCnohI2I8Rk9ONSN3R19+V0R0
Zn16PDJQZm9ORnJwdXMoNTtWR3RedjJ9MyVpXldKRlo2X09aaURvZ0dPRHFBP1hIQQp6JXMjM287
PFF7elZCMSska1B6TDxwUzlMSG89NVlVU1deJSV4MXhDN2J7Y2tPMU9Pfk48YCFuPFZLSC1PT0xf
JncKejFxem9+YF9WbiM/LTEwZ1J5VyNjMSlrVTRxV35abkBrOHw0ZDFTfnJvTWd+VklvNDctJU1f
ZnJLMldAX1BUV0t9Cno0fU83SG5tLTlvKzQoM2B1QWAzYHl8Jmh4PisxT3o/Y01qNXNFPzshLSp6
N14pKDY1JEMwWkFqbUdNajxJcCVLbwp6WV95ZlR3cURzIWBlRFpmajl7XmpgaH40aD40X2w/LX1C
UFhSNmpaOStvbmw+anBMZEMhZmpuPzxAQClFa3YySWwKengyYU4xajRaI2YlQTtkKmI+eEdeTGdY
PCRXRHNHcTZHXntFIyVDOHA7ZlZkajYyTkZMWiFeMCZvVk5VaGNQV2o/CnpHSGpfSyR4am9DNUw7
KzFxSVlkQUx3UUopbndYSDhybWBKJVQza3xBc2BqenUjYURfe1NSdDZzIWY+PG9qbX56bAp6YUYo
VkI1IWk7ZGVfPmVoKWl2WFA4QlNtYFcobS01e2QzaGtOa3JybXZVYDBIR1hVRilte18/biYlUk9E
MDAocmoKelRYdEtuU0RjJFRyQHgwcjJYOyNDanQjPzVXa1drVkp9byhPcUNnaSMjVjZUXjB6c1Za
Kllje2J1KX5ydThGUSV4CnpqVVBRNCRlbmppLSZNOFFaOHQ2MU5vY2UpdHtgP1Z0QyM/I0FtQmpZ
PX5rI3ZDJm58bUN6Uy1VbnV8RSVeTTIkegp6YnNtKVlCNUlZb2QwfEotZlJ8XyhAcVc1MVh3Q3ll
UnNQKiQrYl5DI3N5czNEX21LbU1IPDlfVCVaYF9iLVBJfj8KemhZa3tOcG9hdSVsKiNkezEmelBC
cEJKbFBXcTQydHE2KlgzNjNnUnVjVGB2Zi18a2hkWlB1MmFyU2x8V1NZXl84CnpUdmRiVWwodS1S
VnVRM0tDQTxkeSUraGVie343OSlBYSZmdk5KJDdJNEhlbCE1X1dAJGBTSW1HJDZHS21JXys9aAp6
PTlmZSZzM2B9TlcoRj8tLT0xb1ZBeD13MUVyVnNBITEpcjZuJSNxcGZ3UFQqJnpHZkRuJTwpejtH
Xm4oJXFpeTsKekc5SF5HUmQxeWlLJiN0Vz00eGFgNGhQS0NkT20jSHtlIShjcHZTeyEqR3AzWTk4
YmBrYHw+PEE2QVRReHRMNHI3CnpKdXxyUVgkUz8+P0RYcG9kUU88bUhOdzMwZXEoYGpvZD9Yaklg
OUZOaihUIS0qTCh+aGZQVENISzRhLVRHJTZ5Wgp6S0dkY2gwJHdVO3I0UF5xQDt8WDcpOGZ2Iyok
SnhZPjYqeWE3OEZwPHN9dExtbU1QK00xSHpMO1RvUE14ZyhvUT0KeiMmUipqczU0P35KVXp8SSNf
aWxxJX1pSXktVEY7b1g4ZkdFZEMzKktvRk9PPmIoIWF2NGVyTGVfaGd8cHREZE1RCnpyU3dSY3Ul
JmNYI3hmJitGRmpFQE5GQ1BQKD5ObnoyWUtiPEYpKyQ4XmJwQzBRNEB1fWM/dyotI3UmVURuMU5g
Kwp6Pyh0PEJlT3VkRzFmJiFRZVY7eCUmdzJwRHhmSHw1PXMtWXQ2Xy1XXkFKY2Y8P3MhUCUjeG43
VF5HfGUrbUszVWEKelg8PnhCMmN5ckdYUT5VPkJ2bnZBZmJEU2BNJCRQNjZQVjlMPEN3c0g5e1I4
fiVrei1xRGRXSTJDP2Znb183fkpsCnpLbVZXeCZGdFp1X3U9PWJNJkFZRz9EdWFeYCpsTDJuY1F3
dDtWQUlPNXVFbSlaWTNeaTw9UVZRaG9rS1Jrc3A8UQp6Vn5MI2x6a2ExS0BWNm9YOVl+QEhXTHl1
cXM8SjcpM34yaGx7WE10XlZydmY5QDlaYXglSCR3ZVIjM20/TCU2LU0KekBvbz5WWWVTUCZJR0Nj
ZWYzKlUkQFVzKEtUR1lUIT9fTnRgYTQkeH1jcUJeKmF9bX1iK3Z+KGNWeWtOcE9rKSNECnpYKURY
KGVpYDloYmwrUXZuPn0wekl3P2FaOTt6eHopPnpmRHlhIW9VKWo4XkdEdVhUSiMlfF90KF9tZTRF
cz5iOwp6THV0SkBlJGJsVVNtdnFEc3R+TXhtcnpGTShWTGJZak5wOEhtZCM0NmRRXk5zNk83OTZJ
Qnx+QVc2ayNNLXtpTDAKektGeXllO1JKfl8yc3V2d3AjY0NudFA0Tig/STxDP2VKRU4jdEJEe3Fg
KTd5WWRUN2AjbWZpaTQ5PFomfFF4ZiVICnpxLVU/MzBDLWI3Y35paTxLWjhMUl5xdFMzYE1PcFUw
TEREOHVmcWtHaTIqPjU7eTF4fmYzKTtuQ3ojVXpmSjh7Sgp6OTI4TElhKHo2TFhENX43Y0pWR0lK
ei05QFQ8anRveW5qVClUYSliN3o0T0dTX2lgYDZIMjJCPkNVcX17X184VHkKelFLKjQ3alNlZllg
PGBWLU89b3MmekxpNi1RT2R7NDJVJUtpVHVSfEVJalA1NU0mOHg2dGQxKFQqc2dLVmpzeU5WCnpO
NWtCQGkpMElTQlk7ZVJDMjI2Rm12R1dpM3h5MEJBcGxiVkdtSkxlbV5sP2pJVWhpdnJBYCROP0gl
SHFOcE8pdAp6RUQqajhaZG9ieE4+NUVQVzVyX15VRz9kcEYyYlVLM0Y7ZGhMPEQ8QzF9ZUk5bnEo
R1hnS2BtR254eDY2R3ZnUSgKemBBc0pKdWNeUHtEPSYoU29WfEk7Y3BZRDQqX0Q4eW0qQ2A1eT9n
YnojXmtKSm13ZE0tdmwxVWdNc1UrTntNeldGCnpAd2dPbThmPkVtdT0+Vys2VEgqcXJNU1UyTFR3
TFVYNHNlKipPaiZsaEVqaVZKKn43Pmp5XyhFNm15cSFYRCpscQp6JjlWOHRNZi1IOCN0Nzs+b1Bs
M0woeDZ+flk5MmM4dXttZF43OF5nbSRJSUw/Wl9WRSVNKFFsaXVMZ3ByWjxoPkoKens/QktiUFJV
Uks2P2wwPzwxZ2NgJHFJNWBSbE9pQyR4VWNKY0RjcEgqSn1pOzlEaUtoQUU/b0V7O3VebmlfaDF8
CnoqPiFLPmo4QkhYUktWN0BhbnQzcStkXzZ5KCpEU21sWXdzOXl2Pk41eW9fQXYyVHhRQndFelN2
LVZvKWZpfFohNgp6eEtLPWo1QjgwI0FUcCMtaU9wak9hd3R5dDBhK1loU0k3R0ojUF4kJGhNT0NC
PipFO1dOeXFCX0BCemFQVlJZaHMKejNmQDZfODZGWGQ/Zk0oSTFBbGh4TV5zeWVBdTI3XlZ6bFl9
QFZ8MEtjLShDTj80VDc0SDtmcmYlUDNWbl41JDxWCnpaRk5gTWA1ZXxOQ2d5QWRHWlNaM3owYmJK
Iy1pTVdQXkElc3Y+XkstXkwpMj1xUSpCc2goJlJ1Zn5CcEFZRlhWcAp6MkcoYTxiVyF2e2tQLXx3
dCYtP0I2JlV1QHlOOSgzcWZSRXdYdGtmb0d9SHFXM0o1PCRZZ2t5OG16TjlSQlYtcyMKemVGdWNx
YnlISCN3QWg3al5uKDlZZEcycFJScEVxUEJ2N0ZQPTB7P1BafkhASjdrbkM3NCZBZ1BYOUR2Mz8o
ZHN3CnohXjVBWXZFV1MkUU89VktnVEpSPjUqeWBPQyZxJnBRQj0wNWhMP3w1PlpAPThyO3IjMkVr
LWRSciFHMXhwKkBoWQp6c1BRUmg+cENZVDdmcjZKMFZ6NU9pS2VwTjJQQW01blZBX2pSPTJhfGNH
dElWcTtaZVhtQl4hSmo2VVVYVDZEdX0KenZIdW9iWHg+ZU1KJXZPO2Qze1l5RUdFfHRLNmUlUDIh
fH5pRG1xcm9RcylodlJEPUAzZDZGQlQ+R30oJUtkUEJuCnpmKEE5VTlYV0pETFBCJnJSSHhVa2ZC
T1RLZVJyNlpnbUtYKW9lPmNjPDlvTG1LVXZ6Pyp0aithbUw0eTU/UDtSWAp6cjhBSFhyMUV4Xjk0
RSVXRjsjYSVMZVRLcGlGQExrU3FjPDxEMEg5RTdAMTlDPFRhQnszSj5rNVZUfSU5XndLP2QKeldO
Z3YraVFSUTY/PX4hbUxYMXV2VH45TG43PTwqKkJ8fmY2dGFXfF9iazklUip2aGVXQyVITjVfczBt
cWY7fCtDCnpSeT0/d2t7Y0RsKXRnXkdPQSNCVFo4KUNTKVd1V3lQQUIxaCUlOzsrOEFJX0teVmsy
dHl+KjR9dSVaYU5iOHxPNQp6KlpieHVjIWlqO1YrJEJYISNVTH1RKilUJXdDU1llVzF3dWU7VCVi
UXNOJHBKYCE+aGpmb0stSXtLNWdhPzRYMEQKeiVEbDItWVZvaHN5anMyZEFzJk1IJE1wKTA1VTR5
N0ZEOVBWejQ1LWkhOER5ayVib0hHcXNxaWhoeFZWbVApRkNDCnp2TjlzWCR3ZWl7bEApMGVlcE90
I0F1aCFnX0UmSkMzbSR3dVUofUxULVdHRiZmLUdMMSVtO1cwWkhkdktqOUd0KQp6REY7emh3UFpf
NUM9JlNfPlVaVlZHJjZiPm1zQVlCU0I3cDklcTlfSUZARjEhST4rPWU2Pzx6KjwpMzFpOWxzWisK
enw3fk0tOTY2RjY5IX0lM0RYdUlYOHljfjVeODh9RWFnKSM4PVhrYiNSOXJTaTNqQnFLZih0Wk5r
Uzd6bnokTnAmCnp6P3M5cTEwazQxZS1MSVJ2QDUyJkY2R21tKkx5bWxrTz1ZWUl8YD5EPnl5VVZM
aHFSbD5yU3w0e2NudkB1QWgjYwp6SThnOyl3e1RGPGFRajUyVzlmTTV1a1hFbDxUQmUwJjZCQiNB
dEA1XmkzMyFDalZ9NnlHTUJVQV9mbXlNPnAwfjgKem19blR1P0JqbzgoPmd7UCM0PHBMKX4yUFRl
fVlwIT9BYVc9PUUlNzg9ZCh7SklUMTR1b19XIW1fXihGbGNlVyFJCnowMGt1QHQlbUpfTUEhcGVU
VSQtcSt9MHQ/Wk5yTXNBd0V3b0I4TW5PTDRaeWpzQHIoVSpMUWghc0JFVE5VUHVvbQp6MGY/YzV4
YWlxJDdPI0B8MXUxbkE0ISNUUl5eM3h1VzlKfUd6KTZecWZJJDwtN2xrbn5vYn4oezM9QUtOQ1Fe
OHoKekxZMWE0NG5ydnByRDdxdGN0NkAwcWgpMjMmPSlwRmQqbXdVOTw2dXFia3BkZjI7V0xlUUtG
KD9scWQ7NXQjeE1nCnpsN3s4PitSNGh4ezcjaWArNyViVTRwMCYlb1JvJiFGb3cyMVU1Rm92Rktq
VEI2Q3pBSXtvTTgpSForcUtBYD04dAp6dUgmQWJfeyRVSTA9eVNOJno+UGRSIzlMTWpTbVYjQl5Q
emZxZEMxbG9nSn12I35rKjBqQ35+XmB+bSF5M08mWSQKejlVKThQR1cqU2hLSTV1NEtVYllBaEZ3
ckctZktkTUxgUiojXjd2ZjwzZ01GOW87bHBpSjJuQT0jYH0wS3d8SCQtCnpRayRYPW1qYTNgdVlP
WT1nUigwfVZQWGxZajljWXBDSDhpPV9vRFFXNFApdz1WXnw1XnVWR0hgNzJpS30lZTl7bAp6ODNB
MjlmSHB3MTgqNiUwU0p6IyRINjAwN2A0Nm18dDN3SzxvPWExQyRAYH53Sj1QNkR6MXZ+VUZMSXBs
RngtclgKekclZGp4ayVhTkhyIzJQVlIjc04xOV9AbVdXUCtSO3Y2TWxNPzApR2A1XmJiOUFEMnZS
ayojIVBXcmZ5ai1NI1krCnpDVyM3cDw5bnMxViYzMEl1U2hFVVlFb21gM0FSLWdZdCQ1ZEhBNXZi
PHN5S1FvMEd+T1UpSXVWWD5ZTmNOfH1CKwp6PEh3QD9IJXFHaTUoI2wyYlRHUihkPXsodDdLWHNy
X0V5a2VJPElKajItT09LPkBlJWxLfSM7fmtCQ2ZLTCZMRyoKentMSzdmMkE3R0dvIVIlezVzR3tg
QTJDJUo3fkdyZSNubSs+PXROd3F8OFc1PnojZH1DX3lTSSpHQlVNOGpgKEVRCnpqKVk5JThmbnpP
JTJzPTw/fj9wI0VoamdVbCVBVlBhKVNLQTRLLS10PH59THQxK29HZXZGeV9ocFNRdCotRzg+Ugp6
Pk0pVGQqPCpJYTFERTRjUWRLKDQ/PXMwdlVXWko+aFd+fFZgdUNrMSpFfl9nZFRzOUhJQGh+TzxL
I3UoPCkzeFYKejt9VHowRlNtVk5eKkBxRWV2YmNuZlRFeUcxcyVLXnw4JXhsY00xMFFidldAPCNa
a2FaY3oqIUVoKllJbnY8JXplCnpQWUx6ZnU+UilHeiExa2BvXmoxSmxFY14rUT82YXxFWHlseUlX
bDFBKVVFRiVQb0VOY05Qb3dsJWFMdkopMjs3Qwp6cjA4UlAjMkRpRWV3Xlg+WXY0dnUrJUVoZUJJ
VDVsaWktWFAodmcmdD17Xz4yYFdiQ3FXQ3BqZiElMCVEbUgmPCoKemdUfjJYTV9zTyowNTlUZDNo
YWxkczZEQV95VW0zJkB0PSQhbHhofmd0PlEyJk5sTTkwXzMwTlhlN21KcUtORkR4CnpUfWI5SGFA
Q2pLUHx0dT9HfSZ4cCNYN2tiMmwwRl9EZ2BGU3g4T2shTG9AdURgS3hgLXlrI0ElWmVvbTcjMURO
Ywp6eGJLOHJER31tRGMzX255amZSYTBTZEJfbUBiMD1iUFolUD1kYzQqbmNuPkQhSEs+P0tmdDZH
UnZFNGleM2JkcVMKemopVzJqPSVVfDtARkk9QUM7UFc9TkJ1TmRCKDs3VnNgO2BYdDE7MDxWVHUo
aWFtemdZS0FkKENWPU1ZfUBvWl4oCnp1Q1lSKXc1KiZ3az1lIzJUXk0+RWJgfFhobWF+TVM0RXdD
YFpxQ200N1dDUlh3bzVwWiFXVn1oWjB0aTtJRzhtMAp6OSt5a3R4c3YweHJ9LTYzQmpNbTUmPXA/
fnU3MUw5LV8pPSU1ZlRuUSg3WEg5ZEc7cn1iVSktN0g9USRXY1d0e0cKeippXjtmY0BESVopJT9E
bGluaXghZik0Tz5ufUxQK3o+UiktWU9KPWZwKEpKdVBtSDFDKGEhMi1xNX5vTFVlczJLCnpHQyk0
bUROYyFVT0Z+e2dlc1IoJHwyVndndW9gdVlNQGpFLWpYLXZ4JTBTMy1aMEhgaGI9YF51NTFEQHc4
WChLSQp6T2Y0PGxtZn1XN1RJQURoSlpGNVkreWJLSElqQzBXdm97VSYlU3x2U154QEg/YUU2Smli
T2AtcSlQLVRUIUt6ZFcKejc5azE4bUEzdVRDZFJQJUJ8O3VjQ2NfZ1hzZGwwT3NoTyR5b0lVO2Yt
RXd8WHQ2QnNycjVyPUo0VTBOUzB8S2VmCno+WUtLN1ZmcGZjX0JRYmQrYXIyVXQ5fDlwWDNAajNL
b3tAeGpVfVRpIXlPSmdURT4zeSRAej8kd1gwRXU4SWdlTgp6U3tGQkptIUtRbT9+YzJBUDFFUnFF
RThZIXFISUdQM2BDUEtjKjMyMD02RF53eEkrO1BDe1lQVXNQbG9WXkA4RkcKekQodF55ck5RNkcw
WXBfMU9gclBQO01oXkFNM2AzQiN6ODg+SzlrNWkxX0BxM0IyaChzN0dWJXAmRFk9WjtvQShXCnpZ
QXJQa2Q7ZTU2ZFVnUXE0ZyU/ej5gK3xhU0pafUUwenp+LTREPWdSLSh4PG5zWGJgI1Vfe2t8YFUj
WTE0QyVzWAp6UzFKaDFMQn1afTNJdzV0SHt9Smh3Rzx0bVJMTUc/XlJSXzFAY2BxeEN2KGNyMGV1
cjZxOVl0JWNCWE8pO1d+UjwKentTaTV5MCVUPXM4YWhSWUBLa0dlYSNsdE98R0QtZnNSRGZ1P3pk
b08oc0VGZHYzQFQ8RVZHZ3hRdkcmdGMtSj85Cno/THJ2PjNtakM2QU95MVRRcHtYT0lBfXojWngp
VkBqLVB7M09LNFg8VC02X0tYT3x1Yyg/TS1Qcz1GVDFBM29POQp6XmNuSzU5YTUmXmdJbU5Dcm8m
eDxKXzxQdUN9RXhhQGVebWJGSHReMjx8RC03bG14SnVGNEh0Q3gxcjBzIXQ9NHoKelQ0S29UaHds
T3R0PEtwMl4pKkhqbntpZlNwY0t8T0hJZHIyNmYwYFp7PmpOJV5+PVV7N35acnZSaklnSV9PMTFY
CnoqV013IylKRXQ9WiRWIXVULSk0Tm9FUj0jJjtMQEFkQCpQYSpRX0l5KWFVXktuZ2ppWmIpXlFf
Q1V6dTNXbzhISwp6UjNtUGVkKDBeRWA4OG01SEByP1pVcG5VZ1N0NV59JT5RfW1ebVVzdjg1OE5h
UkQhTT5mamZFXjIybURubnBwU2oKenMkI3ZDMnhIc2BDKmUjWVpUK0s2ZUFpYGFyNmEjMGhUWX07
MnRJP0p1Rmo0enB+QDkwZUpWQipIcW1zbjtFeipyCnpkdlJSUXltWE84R3NFYT11fkJ2JGJvVGND
TiZ3eVJHKUIza1ByK3ZTQ3BFWVg3SVFWNWtaeUUpWSt6OUY3YU5jRQp6VkxXRn55IWM7dHt9VEJ2
VmEqJGc9Nk1SRXNBalQldjhTQkE7KGF4TjcwMypXMiliWVUpKztXJCpSOTxBVmxwb0oKeis0WERQ
PmlEJjJXR0ArbHNPeDExb0N2fj8/PXNCUXpFNzMqbyRKaHdWd0xtNnZnMF4xSHtlREFCVjxCSj93
by1tCno/VShVSypHPDA8VlRWPi0yQ21naEhZYC1zbHlKfXhjZCkzfWlIfWMhPzs5QXo/Vz4yVSo4
IWkme1RAJmpRMzFLYQp6QzZuK3hLaT9ZOykwZihVUHw2NEh3UUA+cDNhS2Mjek08OHRDODxmQSF1
Xj9kV245eSM+eShxbmA/VnN0VUJyM3UKelh5c2VLX3EofFdqaClDNy1DajI4MDcqflpoR0Bydmkj
K1cyTHVofVdiSk1EPFIwTE5xblkoajl7LTdhe3kmY0BrCnoyLXVBTytkKU50KktQQX5MYHg9Rm8q
ZWBBRXF9eGY5aTEoN2YtMG5odnl7PFImVG5IQG9edyomeSp1Q1Z5cjBfTQp6UHJAbWhVMHohfHo0
UmNEbE9qYnxCMWJDTnhfeGxGU2V+OFJ4JXhvP2loQHg7anlQMkNaPnA/NjZhSVIobkFYdHcKemJh
WFlAQHd+RzQ0aHNvI0ljJWd5cE57PilMZGJiJF9ibnxRZ0dFSzg2S3o7ZjY8Q3smUV9DJiFoS3d+
bXIzZColCno1ZHhxSjA7WUNZcX15cWtGej1RMCNPcT95a0VeKiltdm1LaW9RbTVUKUVtKFZHY3pk
ZjJ9ViRwN3JoKSomV0V9JAp6RmApcWJeODUyXmBDSVZ4Pj4jQlApbDc2UVMre0FVXzBLMTgoZ08t
PURATkp0e153T3F8Sz1QfiFvJm9kbngmVEoKekx9UUw0anZwYXFZaE9nYXpsWFhOUGl0OEdMNGxF
JiFwQT41TWg9RnM/KCp7TCZVeUF4SXlGZWlRIV9JQUZlPUpSCnpJbWV7PXNjTzgyOGVKSTtJPUR1
V2hSTDx4KjVScmFXbW9jQUFtSiZCS3R9MGgjVF5ubXc5RFBQWmRhM25rfUk7cwp6RUQ8elNFel5e
X2p+MmA/WHJSa245N299dXZ8XndoaVleKzhZMFJQdmhjWXNQJnBLRCZuRCViZXhHKXtJZEgxOz8K
ejl8JVB0bGVxPE4mKD4zVHN+aDluKEpweEBvaU4yNSszIVg+Vz8xMD0mND5gU2RSY01UT3IrY0Zx
JSZMVmZpM0Q2CnpGN3xzJUl7V2N7OTdHaCpOUXB3MiR6PiFLNGd2djNWOVpOUm48cTBfJDNPJGdm
dVBmeGhabjAodEBVKWlpPUFoZgp6aFJKYFB6LXcwSU1QcjFFRT1sU1lPJDZkViZJeW9tJjlnd2Iq
WGk5PnheZHRhN0RnPW9RJXFGR1RZI1olWntmPHAKenQ0OWIoMWZWTWM4TmlYJl55Qkx7Jnh+NFc1
R2AjdUNUZDclQl8zN1dadD0xNnlFc3l+THl4YV5pJWhxTEFBfHBGCno9UnRXUnghS3NCMnZyLSVk
fCZVUTA3JEstNGprKio3WiNnPyh4MGI/amF9ZHJyN31Fa1pgb1I5TV5rdk0yRyoxWgp6KW8kJlck
VVl3ellreFEoJG5CQU9mayFQaHs3dH5LOXw3NSFQd1A2ZVVUYU5ER3Zed1lOPCNsWlNDVjVWI1Ze
RkIKelAqVlNpekxGdHE3LWBHN3g+ZiEkPDFuPlVJPTkjfEhKMjgwUzlOdUQ0VF4yTHpqdlZncU9W
Vms5TCZwbVFPUE99Cno1Pyp3THV5ZUBCTHR1emNhKTJzJis8SnFrNGZGUjslcndDO2tfJF49ajtg
OzJ7YDYpRFJ8ODsjTERkI3ZWVHhuOAp6ODQwRXp7QSoxakxPY0lOKyR9YTFNclV4azhKNmRfakpu
JnxaX2dCKHI3bnBgfENeP0BCUjtZOStBXmt2P0tLJUcKej8qS01nSFVjRXFKYDRTUGNvWWQyNngr
TDwhdFV1TENucmFWc2ZedSFhRSYyYVRVKXpPdUFQdlEhZmkyPzlVS2Y3CnpHbCskfVApez4rPX5n
c3hMdDdBcEVgdGI5WU9LV21KflRSNGFSOXlES2MjbzcoYUJedUY3OU0jMnNYRUBSMDVwXwp6ZiZZ
flcwakE7NDcleHx3clNBNjFTM1h4QEJjN1dYUW1WMGVyKSZRJit1ZXdte2k8RUZuaV49RSF3aUtL
M0xoQ0QKemMxUCEwSShhd0klNz4pNHNQfTJIIX1zWV4oLXVfVGJkJWZKJUgha1g+Rk1kcCUxVWwt
RX1kIzI0QWkmZFcyPVBlCnpwY2VZSXhQQlYzKX5TYiRGRG82NUNCRkdUMDBUaTx1LU49fXRvKm0q
TTEwbyM9dTk0YWM0dFR9dyktJjB7YH0kVQp6bVp5Zm9JMTJqYDxgUlpFTmBqN2I/c21PP29qTTkq
S25ndTVCXyQ7e21wbz1MQXRAOy1GJWJyIWtjZ0MkbFQqVmsKeiRqJnpHZVoya297d0lSY1E7KyhH
PShZbzllNTJ7KiZQSmllbSszclhsKk5PQStMciYyQ25MQ30zM1hoLTBuPzZmCnohbkY5fWxDJlZ3
MEU/Un1CNnYpcXooZWVlZXllZSFjd0g1aG9sNmdWMHM+dGY5Yz1ORSgkWHVoX0hWK1pHJkpWbQp6
KGBDPXlZZyhtOU42aXZ6a18xcUpGZHxpPTU7alZGYzFEUlJ6fEZZT3ZAYFpmWmY0RS1GRjczRHpN
dUI4cSY4WkcKejRLeHMoZGVtPCZUNiNhak9XdjViNjJLQnt3fj9rbXg1dkY8VCVWc2AkalFNYFFp
X2xDZ0ZGc2xWQ2xeNT0+P0t7CnppaSY8R01jXmdGMjF3YytUPDZydCZMWVJHe1gtSk93fVNncEs4
LXFrJHMhcDJaPkRSTWptNVdgMjhtUEwkU2hQRwp6cygoZW57fUZfbDlVLT4tQTMrI0cxY01ZXjtS
M197bGs/LXNyVD1VRXt9eyNwJmpiRUg2eSpQI0VCdHJCeiNDNUgKenVkUmN5ampNNnoyIXF1eEl2
VHFSS3JueXhhbTdRfWVGX1B5P21xJW02RX13YyFAZkYwJERgWm8jPnxNOVYhaTtaCnpzKlNPWFNM
ZTR0STVhJT5nKkc7KV4zTGp3U2h4dU5oeFBGKVAxS0g4ZCF9YyVWI0V5YzxzSG56JkZqMFB7Rzs3
Ngp6R2E8KzdLe1dwfWBpPVgmRUlTVm0jeGJ3XmQ3K0c3TG85Kk1QfEIhcFBoaF55NzN+WH1HbUAw
VFhVYCpwaTZmb1cKemVBbzR6dzlHSE1gXlNlM3IhUGg4ND5LbHBzd3RBc3J+UDRZdk8+T0ItLTxO
VnQhQT9FSntZKU5vYU1uNDRRUnY2CnpVejlVMnRUZy1HaE8xfVVZMWgzVVAjaGhgQEhkSiE9KHc4
b15ASCpqZTVrenwkQHhzUiZuOHMwaURUPDZfKnw8MQp6dDk5RiokIUNfYUNwPD5rJD1fRWx7Jnck
ITthYig8d2dCeDcwPV5TdWRLbE5Rc2JATkBNTT9eJFQhIWwwP3RsSHoKekAjYGY8SiFiRCQlRFJI
MTdzcHU2dztvTnFybUlXIXBPakNme3ZRcGxaWXErfmRGK00pZSlrM1N7UlZ4JG9AaEVPCnpsK0BT
aklOcStJRTxMKEF1dGxBQFMjfnd3c097ZHxxb0Fgcy0rTEh0bT5icHsheThJR0dLVVl4YkQjZ1Fq
NEJCaAp6Kk5teWxka2dNO1ItQXB2O3omPj4pJFZofEJ8V0lFIXtZbD5xVyN0X2tuJVp6YCEoND52
Sj0lWV9mPiN0PExNWWcKemcjM1deYT1ZS1FXRCpfN0dkUl96cmEmUWR0KnB7dCtYKGpQJl93dFF7
PmZDS2JAeTxjezFzMihTa2E0LWtaY1UoCno/fVprVjElOUhrVWlqRS1GWjEjQmZfdjxaSXBmV1Vq
WW05UXluJSZGentkI2Y+Vn1+dCZtZV5SMiZGOVp0cUJpTQp6IVApUkpRKXkpVEVxZVRXNmVsfDNP
P3o/KzQlfjZBZUN4bD5saUtSQUppRDBIeGZQYi1IfVdOeFhVdT42UXNLelYKenNXIWc5cEB4ZW9H
dWZlYkA5MDJYdkopWWl1VmVtcihmMTI3NVgqaSZfRHo3MU1qSEN5aXtNfUhQTDkrQENmX3JtCnpF
WkBlfmEmLWAoZE50TD9oViNYRi0xRDw3RSllUnl6SjdoN2NMNUZJKTwxPFhNZSgjZj9AbnNrRkRk
V09KbHRhKAp6dGx3PHU5aVh4MkkhdGYreCE8a0FHQWUobCVse01rPiNtNVZheVNWez82clRwakVp
dzZEen5MREI9QXxObkVhVFQKel82YX50c19AKTN4YlVsflo9eXBXclRQO29ebUxWMCR3eEM5MWwk
eT1xckduS21YLUFhJT1lWChuO28mNmptSXgmCnpnNCpATkpQJHtiR2Y0dFo7MSZwQlpePj0mY01T
azYtfSR8WXVKQ3BHP35rX0U+bSRZYlVSKlZQRDBGQmExOz5GQAp6XjZocTh0Sj5Pflc7XkkoOzdD
X2cqYikrSktQeDJxaitlUGQpISM1cldBb2djb0F8I3RaUlQ5KnhJPUokNCZTKk8KelMtV1EyWksp
P3xUK2t1UHM5cDJAXnFCfHtGaC1FdiNAfXEhS1FwT1d3ZHVFMTVQe2VgKFI2Jj8lMCFJeEsyNWB+
CnohRDstX19SMEUxT15WPDReKD99a2s0K3hKd0xTQntFTnRDYXo2Z0pmUFEtKiRZYFUzTHtQTDQz
elFKfkteRGVteAp6dHAxejZpelloZHVCK30mPyk1ZGAyWVhlTTxAcnRxNStIbVkpdFJOJTtkSHlP
Z0lAKXd2TkpYTztwNX1GZWNATUoKenVrdnlffEY9SkFkQn10QSVtR2Brb3RyTzEyZTl1ZWtPR2Io
e2UyJCgjUWd9KWVFdVYpMGxsflIoZXRgQFVLZ3l7CnpeZDZXbmJmKE98QSNtKldePjNwc3hmdV4z
ZEhVQS0oY2p3JE4jbUhTP1YpaXxYak4kcjg7VmtBU0MhUlN2R2NXQwp6bXp2MT5qfEI5T15AODVw
Kzw/SlVwV19UcSNiUCtgaThEdWVuYncqeXY2M2JsaXVBNVMlVHZhUDFHXl5BVSlMZWwKeml0Q1oj
VWJXWWIkQT0tVkQ7ZHghR1d5TD0tRG5OITRheHk9Rl9vUyNIdDxrOD4jc1g2e3RzNjZwMFk1Y1pt
JEdjCnpMZCtgTTlTMyhLLXV8eXNuUGlwb2khbGpid0lAMWwxN3BBLSUjV1RZRXotNjh1UU4xQlhZ
fCQ8ckEoezA0fE5nTAp6cXFSUSFGSjxfMTtNVSohUmQmUDRVJHJ5K1VmWDFHKV9vUSlOUz0yRTdB
Sl5sTXIlSiNgWlh8UHc9KjxkbCs9Q0kKelBBWW1jRHZLZH1OJElNVG9RT1Q+KUcxVndwX159Uyl6
eytJTkhYN2Vkfn1EbWhWV29EMXphej13SV5EU0gkIT9kCnpIa2FIa3VwdUtpQDRLU1JOM1omezU1
Xk1yZSNNK3hTKFhZdXVrUmlWKSQrU2QmK0w+ITk+KT97NV9BUCNDbklIJAp6T0VKQTw+en1BTCY9
dXMmR34oPXlJPSFraGx7MzErZVliVU9PPEg0PFA1U3lVTWd4WTZGJWh8RklpWiRvZjdxKlgKekJk
VD13KUUoe2NiSVNaVT5lPX5IdFJVYk52KGE/cHFAQT9LQVpSel57clZVOHV3cndBTys0dTxrTkAh
ditrdCt8Cno7bFNxMGN9cWtnTUFGZiNgKWVqJTF8azNiYmNoITJUaHNqY3tBRiV0V2o5T0pUMmZ4
T2YxUWFWNUBwejNVcz08bgp6YCVNT08mYV51ZGRPN0VPZ3k/YUI8NCkqdXJ9T24/QT8/ailYUTl+
PmE8VCtGRWZ3T1U9MzFvaD9RWUM2bVE4PDQKej5QKXBXb2ktYlUlfjhGI1kxRktCPmg2NllZU0Yq
ejNEXjYyOF5zWDx3dElaZWEhO3BJWSZPPm91ekVHJmlgLX1kCnotPzVvYEp+RzxkQFQrWlZjXjRh
PWJ6WT0lb2FiX3QmNiVYLXd6QG5qYnp5UFpaKDNKQnRyMmhMM3VxTlNuTGRmRgp6RS1zRmsqZ3NF
NUxSN2lCQTdWWlhuVEBLUSFUajg+TTRnd2NoKERIUz1TVmpOTWFRYig9dn4wLSo4ZnhkUzhlXjkK
ekE3djRhZnZzPXNkUCNmUUZ8SGI3WHFsU343Y1chfXtFcCM/dVA+MDlldGxSdzImZUZzOyE/U1N7
Q0RQflYjezh7CnpKX1FsdzwoYmNwamRzJHR7ZDJrVU5wYXYpO1NmWTBzeXtOXnNKYGBsKmRNQz5u
Nj5fcHF3QEwpMXU/PyZydGticAp6ZUo3UEkhOV87dVUwVGVGSSkmUShEUDs3ZFhLRDhBVTFGYH57
JX4jam4/RDJKKSUwdU12LXNQSihuZ181PjNtMXkKejtkaH1BRm16RmJrNTdjIU5yVVVaSHs1P1d6
NmhzI3tqelB9cDUyVTJgMSVtdlNqUDgreHVmcz9Cbkh1e1Ahb2olCnpxMnVGdWdLUVNWdjdDWHV3
cUhIT3pJIUFLQ3A0MWp5czNTV3tqR3N8R005R3tLfUo+Mm07VlVGPWJwMyokdzdpWgp6fDZYQXtQ
TV90PSVfJEckSjJzTkBtNCVYeC0he3x0Y3haTmFjbGkrJGQhMkQjd0w0NnUqVyk7ZTEpbXF4Y1RG
TGwKelpmMlJgd2w7RUg1Sik3Tz96S3khdnAjYnw0UlAjP2krKCtTQG5VcypKXnF0U2FBTmN9digr
dSUyWithTEMoRiM+CnozdzlWeT4jN1NCNTM+K2UtTkV1WlVTfSR5NVZKSzdhdmZjTW9SdlN9UStD
VyV5Uio/KkJVNURIYCpSZXNHYmhWOwp6JExUJURWME9gOCFaJiVMJlU2PkM8LXNRQSlyQSl0NDco
S05pXn5mNEY0OyM1KV5NIVQpVHQqPGw1fSheZzZTQU8KemBfI2kqeTwrN29kbzlzKlVgYEJoU1p0
e1chJmRrbT15fkc5REspZ1VIZTMhN3ZPMyFQK1VGJj9LU1VtP1hqTEJ1Cnp6SztTQlhVel4kcWQp
JFQkTmxnd2AmM2BzPEt7NyUoUzQ9fiM3UF89RUFXUFBIPSp6fTRmLW9JIyhEZGBZQ3tzaAp6OUVn
LVlPJjFoak5OPHdee15GY2xzKEgmemN8Qmdzb154WmlMYFQpSWtPTGtCekFNdGkwdSp4dip2a2hL
PWtTMD8Kems+blhXdTNNeWxlSXk4Mm4/SSpPT1JvS3RsNzxMbXkyez0/dzh9QnEtc2RqfkkoSXVi
OGBQMVo9czJ1O3ZIKmA4CnpYZFJXYVVYfHF9eU4yelQyfnh4SGl8JUNzNXt4PnJDYTFoOG5mJSs0
YWw8TiZAKj1qMykqd0t9cVVmP0l8Mm9VbAp6Tys8JFR5M2JEejxaWmk9cGJeOzRkP1p+YlNHQWFW
aWU+alNZWGM5IWFQZEYlWHw5KEdXWjNYIXtWXnUpeT8mWSoKemVkJlFGbS0yU3U3QT9OcCQpQkBi
S1o2YUpRXnUyJlkoa1cjYTJeTWdZSEVmU2ViP1R4WUVjNEg+TjdAYD5DOSYlCnptZWNeUG0lYUdV
bllqOS0rbCEwJUxjTz8pRSYjQ0ZKcmB2SGBwbztePjNMITRoNyRxNV9wS0RVODFqYnJFcHt3dgp6
REJeZFltWmB0dHBuKDlCTlJXSGBzMnU8eEc9SFlTZSl2NDNjO2NzM0QrS142JTE9PFM3QzR7KTMl
I3NRVjdgTU0Kejh7bl9LUj9GKEBZeDczYT51bWdlLTJ1XmohNXotKm1nUSR5cG08R1hNVmBYQz5j
M2pURHNieTlHeXtma2d+bDlSCnp1clRWWFVQZCRXU3tUIX1oOHpJbHFzPFNVOVRuMStfUHBRY2pn
SXNEVXhza3piZ3doPkBsVF9xNl9kVWA/dUBXSgp6eGJ3VCUkdGhtQiUkeitaeXN1bG9Se1dqKEw9
fSFAP2omfjBiTmNTQ0JieG9kaHo3IWxvXz1pUy05RUUpMHw0YHsKeik+KGRVNnN0YFBXYG9lZXc9
XlV+JGxAZF9jZW44MyhhWHV2Yn17cnk+K15PJTBDZGRjMWl8V1goN1FKYzVSZmhZCnpgd2VXNVdL
KWQ/MDZpTyhnP1ZJKDJ0WmY1O25ES0YlcTtqV3RMMUZ1LTkhcXotYFl9KiQpR35KWW9KcjxrSjxj
Owp6OFY1PV4xWTcrVTNWaFF0NHhpVFlrOSpITmZlSlJWRFkjajkmX0pLfFlUPXQyPkg+ayN2PEBs
PHE7MS1GYXxYfHAKekNIUztiZilsV0h1NCRKa1ZBNVRvKm5YfHw+a2heYmYqYXR0KmojNih8NCky
YyNle1FATG1PfGtPayR5Nnt0T3FzCnp4NEN9KUorSjBCcXU8MD9ERzhDO2FvQHtrTmAmbmR7WWtC
KVYxWF8xYk1JY3BLM05FdjJWZD5VTFZQemk7P3djbAp6dj1Cb14qfmFSJUtMeiM1K3tqUGFRTU9N
JHtIPTh1YlJ3Xy0+QX1Qc0tnYUZVNkp3bUFFY1dZWWdMcU9wOzstdGUKem1nZWtnYiZeemtTSEVN
Uy0rNkdyJmgtRypUYFhDPFc1NGVRclZWdGRqRi1WcUxHT2lYRl5iQD5lTW1ON14lI1Z1CnomYEdK
ZCl+TFA9cDJrX2NhbyZ9RlhfPSZGSX1sakRmSDlaR3V0eF5+YSotZDtybDw/PWd1LWFNRWdzPT1W
bEVaRwp6Pn1iYnlRbmJJV1o2PXBqQSMyKmM5ektrZDJ4Tkg7eWk1d1pZO1NjMHNrfnFfOTtXT0lA
TmdgcDZ9cmNOb1loMmcKem1GdXw5VmRMN1lVbTtrI3xGZGZsKXAxdFRhSUw1fXJkcEJ3TD12NHxa
TSQ+PzRGSExPdDUpUmczTEx6TUZzV0JCCno2Y29reTVHI3ctRWlJO0VLNCFXMSg7fW5hZ0VRblNE
MThvUkMpMHhVLVIkPGBNJHFMVTxrdDhkbUR2dE90SzhkOAp6fEFDNG58QmF+R0YjdWx3YiN4SEVq
VGI7dnVreVRYTSF+Mzc9ektYUTZMQEE8bSlVJGUybk10IW8/aXI8QmBOVjAKeipMUlU+T25Sc2k8
YmxWXmcweXQ4aVdlX1crbDMkST4zPjxGWjApX15CNyohYDtaSl5LODN4V254YWdPNnpJcDhOCnpH
ZXcmPlljdXY1T3JHY0d2UkE0PV9VajNheXtEZ0lIazBwfjs+YERHJVomdDt6OzxnZG50b1BhX3Zz
fSVjT21Yawp6SUd7VTlRU2kwaFM1ZkZraFgwQ2pyYz9YY24/aWJrQkh3TjwxX0ZAVXNxYWE8KSpJ
IXV7PE8mQ21CO19jTjltYDsKejQrSztWLT9lfUh5YFpyTzJoY2hpK0dKND8oPHI9K0E1akNZUHAj
SWRBQUZpdGd1dm1KZFR5fGRsaT1AVngjfE15Cno8IVFfKGxVM2BTRHR7fmVBNGwrWnVkbDhPJEtI
MH5QVmwmJVU1OER+P3wkRVl6YVAyZDAwfCF0YDM8UDllVCVnbgp6PnR7TyFUc0NMeSVOUjdPRWJ3
YSRiKj5PNnQwWjtHMU9VPVA2cWxRJjV4PmE1K1gyTyhgfGU4czdeZlBpSWhHWioKejBVc3I9ejNm
T3taMVNjPEpOVWg1T0UpcEc7UntLPjwxT0A1NmgjNDc5S0NSbHJwTk5qdz9EPE9SUkhLfmtIX0JY
CnpMaFR2O0o7c15lfDB9IWZGVy1aJm1jVWZvJkJJPih4PypScndWTmkpJH1FO0QlQDdOcSlZLWBF
YXVhRTMoJWxVSgp6cnQoQnFDcmBLXm1JdzdjNiRrLUJwUj8ociNoJXtgMU1jZ0t3M058OXRSVWcq
e1YzTlduZjgqWGxURUxTenA+dVEKendqMG11RW1hKmxqWWNPOF5CMDFpPnhxZkdhO2ZNVSExR052
OFYmNGhiO05gO09hU3luPWpGZ2JDQnszTiFLfVorCnpPa2JLR1YmTVdwNmVpRGtSODl4RXdkfGs4
cjB+MmBwI2h4Xkotdm1aUHZSd0N6e2lWdlAlPzJ3UXhEMGdAQnkoagp6WXNvQjI1VWFQYSooLTdz
ZHpWRl5FeD56RWMtelopPHQ4MWUhJHElLV9zaDU1cHxPMkBnWEpUc04oc2Z7MV5+d0wKek9yPSU5
X3VrRUs4UWRWJnNRYj0/YjMke05pbWo1Pk94O1olSXA1c1puZWwjRyglK003c2xqPyklMGRCdWxr
VHxLCnpOZ05yRFNEIyk3PVlnNU52SStqMFVuSHxyNWckeVVnbW9TMyYoZFdqaHxYO0hGK1BrKGYm
en1ZdlVHSEMmYntYOwp6eEBpSTZsS253KDFkMDBBKV87RlIkWT1SPEQ5VWs+KTY9SXJkdmFkUXor
aUxnNmNKM1E4YVBnOFgkQk47ZHxDMkwKek4jMXdPeXVyT24yc0hZO2MwQ0txX0xeVWB6M1JzenEk
IW99dEtaQTAoZ0U0ajttRkgoNFhYQkd4bVIhOGhkQ2JaCnpCX2wleDQ3bFRUd3Y4OXV0ciYkaVQw
Ql5ubUExTU52fihgUjE5VE1le1Q8dkohfWNOcURVR2Y4bCRFWSVVenAhWQp6OFRMUFZJMkZaIVZe
e1Q0WmFrOEIldWV7czsxclpIJkROZW1FY2RiOEA7QlUyMk58ZiVySzFsKCoqNUVUaS1APFoKekxK
aTRKYystNkZUKnhncTReKVV1MHs0ZWNCcFc+TDJWPGo1elhXVjs/N1o2NHIrZys+IWw3Wik3WDRu
MlQ2I3I+CnomY0E0MipId0M1TVN0SVhic2c8KDZzbFBGVWhiM29vYjVHOCF6QjAraEpgdXRJIWlK
cyRLNmRWY2oqNTVwMkVQXwp6aFhrK01AT0E1Z2FmTEwoWFl7a1ArdURRWVpseVZzYzlaN0AmbzEw
UlNuQjVkN3RNSyMmZ1g0aU5uLVBHSVZvSjAKekZ9Ui1fQGdNeCZPanBiMHs+O0xTdztObHtBalV2
TCUwSU5nb2JQPkNFP1RHbWJnSis5eFBPYmlVLVUhREZvRS1kCnpUeiFAUGU4WCtgJEB2Q2JNZHd6
QCRFRGlNS3s4LVVSM3olVjJZclNySVhGdXw9O1haUytxP2c5MGQ3Ql8xPldCTAp6Rm5QUztuPkEy
WChISTt8NldeJj0wWi1TKFI5dEBeXyUzLWRCSn0jT0UhNU5Qd01WbmwjZ050SmUhLXo9fEg9UGcK
ei0/PGFkZVNkQm04ZiVRLUxkMEZ+dEwodE1lO2Q2blomR2klMEgkYiZMQnx1dWM3dj1ydk9HKUJp
SlJ9JCtVVEJQCnpuJlUzKSVhMEQ4NFFVSUpjMjBYUDQmMExFLT1weDVuNj5wejs5YTExJVVhIUZa
enBEUzl5N2hoa0JSJGM9Wnxidgp6aWkleXIzKEZuK3dzcnNPUFFjKzJFTDR0YDhBezxnJVJeWjlj
RGZBdU5XbkQzV3coc0pAO29UfSFCQGFCXzl1KmgKentMY2BFKGwjTGJOQUY0dm9CeCRwYX40TUUl
dGl6ZyVLWHtBQCQhaFBFfGAkRSVIQkdMVXtebDZaKkJ8fTc9bGJmCnpySV5hJVhfMVZsUXtYdWBT
aysjQ3kxTT9nNXt5K2dGc1Z+KnE1TCMjSU07Z0o/QGp6LXMlWi1WVTgjYWprR0M7YAp6NGhAIXIq
TFFEVV9iTip7ayR7MUB4UHkoP0liWElHUE87KyRASHgrMj54Q0Ewck9uaSorfjU8dSN7WCZTdGZK
fSYKem1OaChCQWk7dz4hRjNiZGcxZnVCMjZ4dkRneTBZZTFaVSVIKz1FTVNDJThrOTtPQD5QX253
RklhTm5rOE8tdDM5CnpITTY/RD8hUXtrN051LUdoXl5raWYtJTFIKzhze1V2YjM2eSV+UXFLbUhG
TzN6Y2ArPj1IPkZXXjhfQCYlQUp0RQp6Z0wwQDtGO1YxKFY8UXR2QW18O1lefkA3X0pjVXx5SXNg
TCZOVHtlXyFYU3VaViErZUNpPUBrKU0hP2xKRV5leyYKektlLThlaFlTblMmVUY/SGJMSDdfX0M2
V1NeZ2lLdHtrK31ZKEZJe14wc3hNMyFNK2d2MkpmLUdyUkE7T3E/PyFKCnojd0RSclQ8TWBWQSV7
aHkjT2kpNEVRMCl5dDNyV2M+KzU0fm14d1VldV5mVFA2fFNLMWFHdEhSaj9UeUgyazlZQAp6bCoz
N2x7Zm03cHJANnQhcUNYZDNCfX07TjhfaEJIZk9+S0MhOUpPbW4lOUIpJD1aSD9fM1hQaTNefC1E
eFdXZjgKemxDR2lecT9vak14QXhBRT9hQEdJJVlTWkg7cWYmNlVwanZYYitnTTchVD9yJEc7c2FD
aGokVmVTI3lyPEdDSStPCnpEOFBXdDgjcWEoKTgmMF9jZ3Y7Y1FgKlgqUzE7WlBBaHdqUClIPUh6
JSMmITZIaEx2Xjc5WFZrQXFncUNRJCpBQgp6X2RNZW5YQ2stMFFueGtOYllUVXVaQnBoTk5BQkRz
cTlSfjFmZ1pBd0dJWHZnUHNqUDQyTHJyaXM3PDxGPCMmJXMKentTTzt5QmoxcVE4X2RZc21eT184
QD17QUhPSFB9T1h4e0h7aW9ZKmVlPmBUPzxsfXNrY15UKlhOWVBOSTI+fGUrCnpxKEFac25SS340
JjVQb2ZaXm1qcDNKY3o9NDhlS354MUJ1NndRdnNqeyV4XmJtX1NLWShOakUxcE4qUWxUayR3bgp6
Yj1GOFlpQkpAblREMn4ySSRHKVV0KiU9fXd3KkpPWDc7NyE9VXtmN1liKVl2ZWFZKDZlKGBFTjhO
bTFGYkRQN14KeiNVb09jYS1TfXc1ej8wTG9HPD9EZDIlSVo+PWFhRCZETFhDSD1Pd1BFNG42QXF3
K2YtYCpgOytKTG4wbFJLI3BsCnpHVyYyOExNY2Q9VFlgdmEkOyl5JVlNKm89SjdPanYqZlFge3Vf
KjNUZGkjO35VRjF4IXFmPzY0WDtXUU8rdj94Qgp6UjZPO3dnXlRpNUlpb3R4cT5Idz83S2dAJFFx
Rk1VJEVDZH00NjxzJVV9eWhzejg5TT8mZntgIWpgdFFFVmUkfUwKejUjWX1aPU9abCpYTFZXfjck
dF5ZRXZCWFVOXnw9MWp2SUJ1QGtmJU1tSFR9bD1IQU5FNXVyR19BZjl4RkFjUEE/CnozZnxuclQj
WX5QMkZAViZ6SmB4amN2JHxWMUxGZzMoaWZ1PGp1aFVCPnx0QW5HblM3elFEXighSz15PUkkYXgj
NQp6TmIkPGooYHo1IWM+SH1VM01RZElacHA/QytuTW9VZXJAdE8qcUNkMEgyaHhTaHImb31sWik5
X2BkPi1kS0ttMGoKem9OS3hNe2NyNmhNRVZfIXNjXnU/O3hhNm5hMiNleCN9U0szZkZvITQ/ZVBh
bkpVQF9odmwlWDUpKU1Bcz9LOFR6Cno7T01ObFJzQEFqODdMdDJ7YSlhaWhoQG42YlghPSFxbGEm
YV9HdEdlO2BsNXw/cENNfjU+dmc8dTdHK3FCWVhBagp6NGtfUHkqSEJ7VEV9cDxjYXpAN15wJXJE
YSFpKGVzJW5EOzBfVkxyZUtpfUM2YmohbmI4RktmZHYhZW4mKylUTnEKeklDXkFiUz9qaXFtTEpr
S2p5ZShDcUsyaGI0SSN6eEVeUklWPkxpUmVfNTUwVmF4YnNQOTRrJjFJZzM7b1MxWWEpCnpyI0p9
UHkqbFJIb3xOYGNxcCF4ZEJ8Nz53VXBNTW1AVUhKTDl+N25oWmphTmRPZ3cle2BRSiE9eig5aUVY
bmBOKQp6e2RXTnlmZCVgQGdmT0h0e3V4MCVafnF4Y1JFcXgkO2YqaTw0RVhvN3t8c194KFNPRnEr
Vih8ME9WPEd6JD1WKVAKeld+I3Y/a2o+aTc/V09pfEBeUHM7MSF1RmlwSm1WNShuTFViJjBSIW1g
fD5maVJ3OURZNEJhPE4hNiEqZXBBdlNyCnpmcUJGOzRSQGM9QTRJcmVkZ0lgOF9vPU5BUWBvK0BZ
Z2tZfmEycDBZY2BMJihLSTZXc0UoUGBYK1RMV0lpR2NEfgp6P1ZiakRNUkBBY0IqQTM3QV9zendQ
aVlVbGokfUs2TFR4VStPYEBBZHYzRT9ZRkdLSUF6dHNgWHozZiRlXmMkU2QKek9vYk4yYkM3VjZk
VWk1Nmo2eGNCe3gmZEY3MGhpbjhQdVAoKWh9S34/Y0R6Z292Q2pzOShoZFd3Q0loQShNTGY5CnpE
MEI/Zkxgb3xxKksmTGNFemM3bXNjT1ZXZjBGbnAleDI/YlYxa3ZESnB+ayE1ekAhbl9ZVlgrPldF
JUkzPEw4dgp6bXt9OEFxQkNFdig2NmIpQzZsKyFITUhoNzBieWx6aj1FIWtkIyZ7MTNQTyUpWW1y
V0YkZ1JkVkc5VWgwJSNpNUwKeno7YD5UPjNNTXo8YnArOU5oPS1TRD4/Z1dafTJvfVJCI1Q/JGA3
fHRWI3soVzdMM0xFV2c+QFUpZm91ekk1PWlMCnomTGhPaG4pPG56YFI+TFQmYWE2PTklbjJ0dSZZ
aSQoRjE/IzFxVkwmS2l6VFklPUh8M0Aqa300bXpheV9vRmwqMwp6JEFPbElBM3NPNWpLOVU9T2U3
O1lpOzRPa0ooMC1VeX4lPTJGcSprNkM3TjBsYEtSQ19jTCROUVVoVEg/WkdNQmUKei0lMHE7Iz50
ai0lbylkSEBaeSlLMUB1fWBQX29NZGUoWnc3UVlCdE4obHZCcThnKUE2RiF+VWB4NE5rSSpuNGlL
Cnp0ZVJsdnIxVzA3QTtwPkZSLTlzWCUhck8tTjNCQmNYdGZVITc0ZUUjb3xjJilPViM2ZSV6NXJG
S2d+YzZfVEMhKgp6K0M4ODxZclo8cyF1bGNiJCU9fGBMVz5kVWQ9JVE3emMoWGVBOTBIZ2pgRGhS
KEUxNXcwI088SGp4QDNxREt0VlUKekQyfDItKiFIeSM1UXMpYm0qfmB4O2RUNjwmZUZxbHBgMypm
cFgtdWkjLVhpfHojb1R5YnNZRFkqMmRQaElLU2RJCno+PU87Xj5oanptMDBCZEg9UVB2V21gMWBH
Tk1CZiU1alE/dndHN18mezBNalNwSTdeaVF9PmNBYkw+bVg+MmRPeAp6Knxjd2t7eHw4di1AM1B6
ZmhtfDZKKHtHU2tHTGVucDJnNF5Me3dhLURnMzwrQ0gleFFjWn52b2JoNjVHVGk1cnoKekxRVCh5
eDJyYzxJNEJKfVc2cVAteyR8K1QwYDM0e0M/a085aipwcjdfM0V+QSV6b0wwSCk3KHAmQDZBfWJM
WHhfCnppdlRnbGxERzBMJWVlZyYrTmpUe0Z8eD8wKSU1YTs/KyNIJSVOTGFDdyNjezBOUmgzTz5r
P2dRXiNrdGJvdWwtWAp6ayokY3xteGx4QXJ+JWB2ZXNOZ2w5NU1FbUMjJnBoO2dLXjFrTSghUDsr
Nyl5ejxANVVTXzg9PGs4MWdtMkNLKSQKekY5cFBCWihZP214RD5sKVNNUlQmYDB3cyNvfFZJX2w/
TzI3N0FzYmFWOSE3c3RuTlBrMko5K1R4R30/Yj9Uez1qCnpXJmxXd1pLfCgqKnl0NVhWWFNYUHJY
U1UlV099Pll6RntuMTM8eFhFeGxIfkxCYylWZFc1LUtJQ3tNZVNWISM4MAp6VSo8fF9yRXBoSmtz
X2olTWxHVT4pMUVTU2U3IzBFIWgoQiN8TT9CUVA1ZXc5IXl7cFBUMzRUQyt4UFJDMGxqWkQKemla
NV9xKjZUZCM5UzlzPHhMMC1OYHMzeCRib3k9KlFAPk5iKGQkcyhzcH0kPWhGbHFrKTlxP2hAfk9z
a0NWWlEzCnpTTXdKP050Y0lAWGM8a1AqPCNgQzh2eHZIPnF0eko7SmMkS1o3IS15c3dZMk5iISYx
cmhXaDxwYGImXmd6K01Qcgp6NWxhfTJDR0pjbDBGQFFFdFZpJiFFSmRQOzhuPiViLUpMRGY/VEt6
dGc5PG5fZUJtPDVjJF9jQWF9KmMhKF5SR2UKeiRPanBVWlQxUFo4eSF8el5VJiomeHNKbFJ3SXhn
Zmwxd1F0MkVSfDZReXB2VDQrb0hATFh2ZFViZnxqKFZhKy1GCno2SnZqISpZcH0+SE4+MyZlTnZY
ODIpWmtxay0+ekJuIyR0JV4yQmtpWGt5cnUweGo2QWJMfWNBO056ZSRFKlIlWgp6VUgweG0xVV9D
OUo3IzkkO1BvPERuMntHKnY2PWpkR3doYmFTSzskV1BWdUkoeD4oRiQ2OWwpcXlkWjNQS0Z3JlEK
eiZRRkhkeWRYN3lzTnQoQ1Aze2BKbz0mYDZqY34zT01nb010Q0M3YHtRZWI1TWdkekEmRWQ+a2ZG
KENzOHlVcmczCnpLNVozUlREOyNmVDUwdnVxQj1PRDlrM1lyTEVPR3whWSZxTytUTUZKdzBfc2Vq
NHRJcEtaZXRCU0Q/WCZrNlBPPgp6VFYjNThTbWpAZVVja0tweFpzd3V6LU1OPjkkd0VyZSFlLWY0
Y2pKQ2ZkTkI1Kip5JiYxVDRLIythZmB+aHBhdWUKenYldnI9X0MxQlFLYDxTOSh0WEBNTzhRcX1N
ZGBRejIyK0N9OFZVK1o+KGRUQXZucWY1SCNGdzZMYWsmP01aRXg/CnpGOUtlNylrTDElJElDb3o2
WSZgdjRZdHBoTjkldF8rZj9hQ1NIbVZSIVplVn02U3d2YkR5MmQqKX1+YCRobWkzYwp6aWY5fVZp
eyRgfUdoUXJhKTM3RylDPXtsR3sxYihoPz4tJj05KFZuJEtyR34jOUg/NiRVa0wrO1lESTJ0cH0r
UVgKenFDPVc0TTs+KnJBOXIqeWZZbzU7RDMwLTBqen5Le2FTdUFeI2NfO25PK1NGUEtET0ZTVjVl
THR2K1NeYT9uVGsrCnp3NyRjMGpEdHh8ZSNFezx1O3ZlbSV7cm96dzdVQnpWdj1LZklSdFIpZz5C
JTw1ayNmUG9OcHdjM1FhfSppcGdxagp6enIoMGJ6Vlg3KSRkSm9fQzQjUX4+RXwlISo8MDJSe1Er
RU45VGk8N3spO34oO0JaPVFYMGNlIVBIXnw0JChHNiMKek9mQGYkN3VkTlZrXk0pcnElRj8wOTBN
O1MmK2NrSVNefX1ZPmVUemUzVyVXZm96KVRnWnRTbTUmYFF4QyhCSEh5Cno2LVV5c3FrbzE4X08r
dmJlP3RKPWFTRkRqVnlIP1RMQ0MwZm1JbmkqIXp8YGchSExvRFFkYnBlTEtGdEBPRiFBbgp6VHck
STA1cmQoaG94eFhBTj40Qz1BIUxYXzw+K3NuJCl5dGlTQ3B5RSo1PDJEKk1YUiZoMEpCVDsob3ZX
MSsqRnQKei08P191TSEjNVRJeEsqRHVsK2A0PDhzKkpEZ1VMdDA8NVAwN1Jjc1RSbHNkYSF2cUgr
SWxLNE5uN0h3K2o4VyNHCnoqJE5LJTFgTEVNN1FKfHRpJTxKU0x0TmJeUHJZR0FKZihRKCh+b3hE
P2k+QWVTfWxvMENYJjIwVXotSEA1KkEkKgp6PzwjZihaQSUrQVAqX2NUPzlWS1lBIX1eOzlxUHVI
RGZyLVhWUjJVKHImS3QjQ3pqbUw/VSF3SnE8aWxBb0YhUV8KekJ+fHdCYjN7NzJEUWV0eGJrV3Bh
Y09XVlYmJUdDPXpvWio/ViRiYSFyTmVZUm94ZWg2YW5wd1RWZzk/JVMoeUh+CnohcG1yb1ZpQ1Zq
cD0pfCY9T0NZOGpBR0gkNWZ7eURnSUFEJFYyZkMzPV52aWVNMFlFU09od095b0JXMEg7TU9VJQp6
KlJEPTJhPn4kSEs8MmxqYEJRc0J0SHhhRTtYQEEwMjN2WW1ocE5CJHBfUylnLWhYcXcoRnw/ME1S
VG09SE9YTHQKejRGMD4qZXdXPk5jJTZ7ciNeKm40QXo0ZFhtNmxUZl5WTW1TJnhEOTR4THNZeSQ2
flooZnhVcXtAc25WUHtjQ0tkCnpIKDQ0SkVHNjM2YHxhZXtyUn1GK0Q3RnV4PGl6NSM9cDFkbEg+
JnoqbUJ6fnkhJDwhaHVAZCg/dEhfS3M3MzkjNAp6WCgybmt0KXYjQFkyeyNHeFVuWnZmT3ZPQ1k7
cFIjVE14cXhSSDlXfnlISSM1V2EtXnJTTTxiU2NESDNuOHd4IzQKeipRdHt2eVJZO3V5KkBhNT83
WUEpR15ealZEfUxAJEJNPFUtbTBfaXw/flJaVkdwKTYkOzx8fmVNdDxJSko0cyVfCnpgU2QhZF5X
ZHt1YEV6eGk+UTIkSz0oIThVKEB7RWc3aUt2NjRQYGAkKmgqUDN1JD1nMzxWfGFucnc/fW0wPkNS
JAp6Sj5xRz1EQj9XUSMkWXl3eHRMaUZUWDJjTFhPMEJLJG01PEk0VnAqbTd3eTZjK3NnfUVuI3It
bUN0PSkqRSk0cEUKekFDcXh4OWNFe1VCbWtIMCZvUE5lTSg/cWlKfVl0cTgySldoakZfXkgqTT9m
KW81Z1huMmVERzJTbXB5IUdERmliCnp1clBiLSN8WiN2KVRrRzJFcj19KHpeNmI0SUhTYCVYTVh0
eUpVUUAhd3w2NWY+dV50JlAmRDgkXjIwM01jYGhpKgp6IyFCRzxWJXN9JEhXfVpeQWhCWn5eV0Fg
N0xXfUUxezlpNCU+PyNvZVBITTtEODFCfmFrc2cyfTN9dTMlVldkQXIKel9XKH1WVXNKTkZpYSRu
RitsOGVMK0o5VTkjdTFWSkZ7NTs2R0VeQTlhYlFLPWcpZytzWX0ybXpnNjE3PGpEblFlCnorPHNX
RVR7Yj4xYm9oTjVaVDhUfi1IK210Pl5NU2stJiRSTFdmZThfWSYtZXk7VWllIzxgZSt2KnUzaiYz
RVBNUQp6OUtlSHMrTnd5aXcjN2t2KVMmKGJnSTFzJnZiTVZDV2IoWU9YQmh1UnVsdyshdjxgJGFk
dWU0Um94Y3NXQylHN3IKelNvIzJKJiZXY3w9SUlgK0MpMVVWe2JuTnFGVmJzTVFaTFd3WnNTOGh0
Zmx9OTQ0Xmg/LUVZXkVHc1ElaTYxMnFMCnpjSyFeNm01N0F9JGxwaC0yQHQ4bjtjO1VEUmBOKkZt
NFV2PmBsTnlVUWY4MHBZRTNLJD1weG9HSl81aWN7KFB5cwp6Y35HdnNINFFwfGZTJCF8SmVrKFU5
cH5oRFF7dE5jeDFURmNefXNfdWxQLV5ac3hKci0mS14+TzBrQkxRKGNjWUUKeikkWVJ4Y1QwPHp2
SjJfUlhifU03T3BAaHxkQi02KEVFPDU5YHxeZHBZJHk8QFhCfUM+cF5Fby1GLVdwJTsrbWxHCno0
RjskX3dRcGlvdnx4UyV4Rz5hKyVQP0IjME59IzMhZWpZNVdJMHBPRDQlR3V5Y2YtTWM8USRpT3Uj
TkBTenZrIQp6KTY3OzskTn1QempQO1pYUW9QPTItQ01kNm4pfWhfNURtJFc1eX5yazJrTSgre2Ym
RWxHJkQ5b3A5RUxZIyV2TEkKejtVNmIlMVk4bjlAVUwrJiVkOXwmdWw+bEgxMW1nfUgqJXdhUXJl
OTN2cDJudyQ4T29faC08RlB3bWJLRk88bCp1Cno4IURuQD5ibFlPeCZLQj5FR3xnVEZGSkFKM3pq
SUtHaT5tQ3wzeFI+eDklSjVOUmhQaV5FSk4jOzlNKmhVLVVLawp6KEpRNW4tP0hkSU9PMntDPyl7
WS1Hbjx+Q3tBamU8S31BUGpJcU51byg3KXNJcj49XkkwfWNRVnskWk5GTn5FS3MKekw7eiUkUk93
UWM+eSsqXmVZbHVURTYzRXgyKncqSjlQZTF2KChaPUIwMFktcVJgeFR8Ri16NjJRWW5+NSgtWHwh
CnpkPSghRDRQbjZQMFkxSXJRYTNYWGtIPFNSVyhKcXp3NFJPQU0+PzdeeEJ5c2R5cW9IQ3ktaGoq
WTtvYz1Qa2FpYwp6WDNncEtWUDFzSzloemVUZkZ3Zig1KWZUTlVtO3U/QXdDbWVqfmNVYCUtP1k+
cXghdXApTm9pRDkhfkAzNmlpLU8Kel5rSSopRWRDYzxPPm83Mmt5cHp3LVFfZEB3RE1JSnlHeS1z
bCNnQkdkZjt0b1hEQ3ZoRkM7TWUlUGFNeGIjamZ7Cnp4PCY/MVFwaWhlVlRORnhVfjg0fWdAOVdn
JWljKjtucHNnO25mUX1FND1PbUZJQVp8fU18PEckZXNGY3ZgeTg3Ugp6RmtYJV5NLW88bENlS35B
SXVBY0NrZlhHVE98d3V5entwP3I4fFZZWE1eZ1RYSns1IUI3PTRtS3B8Tn0ySnBIWk0Kejl1RXQx
ZkRJYn1LNF51QCswdXlnM1V6b2RjY0VDbyV6clQ0c2NEMjVXV25waDBOfWxRSWd3eFhaK1NXT0k9
Wio0CnpzTEd2SjB9eWZKKmIpKWA7ODNxVCtJR3dMKTliKyt4O3BQWXl9cCtxY1g7KCoofkBMPndv
Kis9RlNGeStvT0xnZAp6WjZjc3ZiaWxqKnJGWV5yZ3EhYEJIVilBIztEX3hqM3gyflBuaXZIe3Yr
KD0tSF5nKmw/PyVtcFJDSyZtQ2BEWXMKenFRaiVlSk94WXVydn5SQlc9Z25QQX10bGMhUVB+eDFS
VFhUYjBgMT1PRkE+WUIhNX5IVnVvWVMxRHV9a0lMfEVkCnp3b29+R28oWnE1MjJ2RCtpZSlQWWNw
NGJJYFpVKGB5RGk9eFM4U1ZLRG9WT1pXUHIxK2M8dTlIaDFGYn5FWEFJdAp6ST9ZUXEmREE2WGlp
I30oPEBkT1QwflhZdyQoUWFWSVNacDhCOSQ0LVMhcUo+dCtUS3g0aD5VOHlQRTBOY0c9QmUKekol
JSN7RkJFWkQ9WDdvZyhBSFpSMEQ3KC1UeGE+N1Z8IT4rITE7TGhoWTFAbiFXZ0pPaXNpU1JwbHEl
RkleQWQ9CnpedFBYdXpmfSlNPmZ1d2YoMXlfd2RuNjQ3NHEwcypMQlBrbm5+SG5Ka1B5JGpLYWpy
bE54VVZle21RKCpGZn5lfgp6dHd7emZ1ZDxCekRwRnspcnk+KDNNX21DMVdEJj93ZEVJaUNgYyFw
cSEpcWQ2KH08Nkt1Pz81OVc+WjBCb00oNHsKengmPlJjX3AoLXgxM1pDM2d2azNAP2VQc2pNb1hm
R1JLajg7U3ApayFZWmA+NnA5KkJOMFM2NHcpaGtBKll0Z3FuCnpPRkAzMHgkJU8jNjIkX20pQVZY
flhRcVpkeV9jY0NkMjNlM3d6ZVR7JFVrNCU7SE02NXFwPkJPeXs9SSRYM301MAp6V2xJanB1XnFj
RHRRTzdiMm5lV1k3elF9QjA3NFlLaGIqOGwqbnN1a3A8cHMyQE04aUBMaEtVPEdHUDM1TyhwYEYK
em5KZGslYm03UGVSPlhRaFVkalVhIzctV29nNWxrZTN3Zn4wM15kVkFFU3UxUjFGfn4rYjRLJXtw
JXJ5IzBGdGklCnpHfkh5SE8hbXVePEFwcXFUYzVxSXI2TXJFenY8dGllYVZZXz95LStGazEqNDlv
RnpKSEtGdChJJF5FMi1QN2Izawp6ZncqKHB0YTdUZmQwRytPKXFnMTEod0NyMCkpQVBzYE8oKGF3
I0F6TkokN2REdi1nWmB0TEJfdUF7WjBMYUJgfHcKek0+SExyWWZ8PHFFakRFMHpOPT8jJEVSQXYm
MT4rTVMrLXtqPyVRQUw+KnNMb0x0UXtaPjwpTVEmdG91dUc+ektTCnpkTGV8KWdyfkIpP2oxMUR7
QTZBMyFgNFUxP2VQMUA5SmtTMzNrVzlySDE0JE9SaHxPSD45QVhMMVA1dFYhREY0MQp6SXNsWUJy
bXBRJUFXIS1eeD0laipJMDk8YEo7a09IPCtzflE9ZCpaMEhQKmZJPnE1ZH1oYnNrMSsxWWsmYTlO
Tm4KelBYUTE8NUwlSHkyNU8kaEE/UE4wQmx5SzxqYEM1ZXpWcDh8MFB0UG4xWWJ5RykjSVFYOGky
byQmV01ATWBRMS12CnowdHlkZzwyTzFRV1RUVWhlZXhrc3hGVHJ5ckI9cmpaM1Q0N2BZMTBKR357
Sn0rPzk5cGojOT1qZV41KyYpc3stTAp6QHomO2tfaVJuUG52fHBILUZpfkw5RlFLSWtae35ERjVX
eyRSVX5lPkBLQm94czwqJDVLSEgkYWZHYjlWP15SaFoKejVIUUhfbTEjZXRaYEtVYWZYUVk5dkJr
fkJ6WjZ2TVdrWUQ+c05zPEkoPzI2UGk/a3NEYyQ+X0tMekF7JmZPOUB8CnpSbzUtSENrZ3FXPUJa
JUFBcVo1aWV8JkhwNDtJNSszZThTbkliVzZUXj4xQF5LVnduSTNXaT5lcX5SciowKVhzYAp6TzB4
Sjs/JFdjfSotOVBeQFJ8fStvJSg0dEcwQUk1MXo7cmFXTDkrJE80blhReGM7MEtrdDRAZyFLMk4t
YSY9Y20KejA4N1M+Y19sYWFWbiohJEprflNeTF5RdGROIWVoNSVneiNJMVlwM0p4Q1QtWD4hfkF8
bTQqWUQ+Y3ZST3ZWJExXCnomJFVIRnokeGlIdCtXOzU+Z25fZ0V9VT9tJEZzSVQmODZpTCZYbkQr
KzJWYm1IOXNVITBEOStsUFVYbkRCNyo/bgp6PEp9LV5vI2pMN2Y5KnJvYyF+UEhWUUBIOG1janNU
JXgrTEp3Tm9eSFlSTEgpRlJ9ZH4kal9IPFJaZ3tIYGVMYTQKejl+WXV8OUNAMUJYcFB8ezsjOEJ2
NiNJJik/ZVdhUipGXj1+PlI9OzFNYUZfX3V2K0Q4OXd6U3ZafHl5LWExJiVfCno1Wm1NN2ZWODA2
OFpWKEhmZGMzI3RNPDB8QGNPT1IpMkhpJSo8bTA0OSFuYzR1bXkpPHZGNGAtaT5Ffl4pUGg0Xgp6
cWJtU35FWWlNPEhwIV4jOSR4Pz0rM29Dby1KQkhEIz4laWxyaCF8YF9AZUY+dF9USnV1WWteTE5q
RHxtNkwjRTEKektMLVBnMHwtTUZQezFQVXclKE0/b18/NTVpbWh6XyhPVW5hbkw0K216Si0mTVFe
c29EPTMjPThxLTRGdlQ1PjBMCnpEfGlEK0FlUHd0bCZIZU5lOXRJaTt2WUxjK3ZhWHxgNCU7fFUy
U3tPX0lwNytNX1B5SCU2SUJPIUFKazJmUWRwZgp6YHpzNkg9KDxpeVUkfDBYKkdFVkd6Vjs7SjU7
d351bk9xQTAxPFU+YzE9ZyMwVSZVdEIxeVFZQXJnKUVGU3BTKDkKem54Yi1hYGFuT2MrMzVVWWtr
fHVNTyhNb2woXntxSkpZITh1JiFhVl5pVCk8UEEyZ0o8NVdDJTYoPm1FNzZzRUt0CnpsQ1c3PkBp
ajR5IUFvbDluTztlbmR8MVRecGxocVBwTlJQeHNMcWpFd2Izdi1DSTJefmxTUj5RYElUVkYlOUxh
MQp6KCpOdUBtc0d8a1A/QCFMKFgpcm16RHtsTW9TTiE9XzxzSlJESVpTNEh5ZlojcnJeeU0tcEUt
SG4kKDdTb1o/NzkKem5XV0duQGxFVHY5TXhoWihqflMlZmRVNGNaJSYweWFNZz5xc2M2e210c3Zl
TzVrZjRqKUNHeVdzST5TKEBTWjVqCnpXPyRXeCpPQm58IXpTKlleRXQhMjNtRj8oc0BBVmh3PHBs
PEFpc308SENJaiQjVm0wSS12PHF+K1E1I3tDPERAJAp6a2RAbkBBeXE/SmJ2RmpDdj4+PzYpc29l
bE1mVHJATmV1JXQwQlRYWXFqWGtRbU1VXjtxfE0jUkg8fHxLczR5ci0KengqNWopSWc2dHRCbDla
OXV6WSZ+UDg2ZnJiQD9eVioqOWtSS1l8XjJzVXltU2R8Zkd0P3hyaGd7dFloYUFIaFJtCnpEaUlS
MHZtUy0tN3Z7cXc3a2szeS1oVG48JkdILXMoN0Q4Rl5wYT5kM19mVFoyVm5wdVNSdWlBMn5tayp1
XiZ+eAp6T15fUFQtKlJ3OTRHeFRYc25FPDs1bkZ1RFN2anRkbEopJmpxd1lSampmR2gxV1lvTEQ8
OWp+UiVnOE9OJH5hP1IKejJ3TTdFS1ZBNWpwQjtWKGFUR3B1dF51P1p6fW9UXzVoQGVtcnxyMVNw
fEFBakdjRUR1PCFBe2VqOHBCJllJQWE+Cnp4IUdFIXtsXzxAP0h6JEp7bmZYIUZufHkoLXpRTSFp
dGpZSiU1OD1GUVhLcj4zbiViVSYqe0xIVSg8KTVLNmtWTgp6diVXXzE2fVlnY0V+ZEdZM35xTXpz
TWhmMDB8Zkk9I3psO2x3RzhMJXF5PmRrKVAtJGo3Pnd6UUUjcmhhbUJSYVUKenlfXndENl9wbCg1
JCg9PHhoRUR2Rk1rcWNOeTVES1pweiVmTj41YT1UTHBUT3M+OFVCYyUwYnMhRXRjdilUXmpiCnph
YGMpY0hkQV84eDQqRDl1SHNfTDN8KjxKYiEmTDlhRWN6QUppMnBRUHl+VUdvMFEpZj4rR2QySERg
YTt1dE9FMQp6aEFYQH43K0loSlBrIyhVZCkzMVgqfDJkODk8QU1NTGVIVHxNOVlZNzgxSnlRP3RH
MCpsQHt5Zld2PkxfNV5QP28KekU0VVVuN0h1QDJZb2ptd2l8R2ZJM35PJj9ZNFZDJTdCMm5SXlcq
eXArcE9OQ19PUyR9OFQzIT1UUlJBVTA3TjlFCnpMXjlPSSVCVG0zXzdfMDh7M3UhJj9GPDI5ODFZ
RShrPEIoOEdQcXs2YF9QOGZCYFY4cDsjWH1TS1hAc20tLSp8Mwp6cHZkeEZ0TGQ8d1BlT25EQ1pA
YDBQezY1VmN6djJ+WStTMENlPjBWMm09RndneWZAOyNqODMtRmB5cXZfVFZXdmcKelcjXz9KKFds
WWFqczB4MCVJRTZKajQoS0wrI2JwRT0jfjVacD48QnJKVHpqdWF2V0hXTTJXMDFrbT9iOEZpNlRU
CnprUnZeailHWkVLKlQzKzJRWXtgSHp+fHFlU1A5R0FgbUt1cCkzUGV7b2k2RV96Z1h2NEMwKTBt
QSo5TkFOTn5saAp6Zmgrc3U0TWxUVUJqNEcwUXI1VkVWcGF4QXdIKEB9bWYrYl4+JkEoRVBGZVRh
MDk/MH5rdnFaWntXPEBPKzw0eHUKeiFkY3hSXkdvWDUxVXtgeHtgai17TX1mQmVjfmMyMHIwfmtu
Tn1IfGRuUzJDdUVCVnlwJlQtPGArNUAhelk2UkZzCnpDJSZCIV8hNTBVRzwmRFRVKl8hQzdNTTwj
JDdfRENqfD5ZYFIqMmx6Q2tKUWVBQU1BZFQydjxWJFo2YmBUUFk4eAp6bCpBSHY8dyE/REItSEQ4
PzVMS0M5TkYxRUI1cTNRayg5N0NBOFUjO0NtekhvUnMzfkcoNlRLR1g+WUZaekdQZG0KekpNRl87
c0EkZT1LKHM8TCVoRz4rTnVwPGdNS2UhNjdyYWd8UWJSJXJ4QHsxZTAkSHg9VWxnNUpfP3lqeWxO
JkV6CnozdT40SThrZUNCLUd9Y3c3KThuRSFHQFBhOWB0MVlFK0h9Ylp3a25hOVYpIVhJJXR7WTtn
TW89ZHtvfStMeTV8fgp6bjxqdllqY3FMcz09Wkc4dXBPa1o9PHcyKShTISkxYnpJSmhrKV4mZXVs
c3lzUFZfamtQa1FYKHViVkREUjgybzsKei16Wn5XTnhCZ3c5SClmRj9zKVh2bWM3OUpQXiNzZSg4
dnVaRVI4Wk02dSZvVyYwSHwlYVgtbCs+Jk9oXjRhKD1UCno+bS0mN1h9Iz9sbkdPeXw8VmBSbUIy
ZHI+MzJONDQ5N1N+PkFpRWooVjs/fD9WST1rTnFKPH1Kb2IpUV98RmdkcQp6MkZqOy1aMGxMIUh2
M0JkTWZ8WTs4eGJaYlYqRDIoZ3IxPj5NWUI0cWt3OW9XLShzXlY9elA3V2hlWmk0MyopRWgKekV5
QytxYEFXU2NYMWhDVXlfOCY+Vn19fWtWKEA+ZyZrQ19fOVE3YVdgdyNwMzVBT1I5YH0rXj5gdyNw
MyNgRktjCmghdkFYIVVZWXA8Y2paeVFHey0mOXw1fEFSa2RhVW51TWptM3t2V09jOz9uPkMKCmxp
dGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9pbWcv
ZnJlaWJ1cmcyLmpwZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9pbWcvZnJlaWJ1cmcyLmpwZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zMzgzZDMwMjNkYWFmNjI2Y2U0YjIwNGE3OGVjNWZmNWNlYzJhZDVjCkdJVCBiaW5h
cnkgcGF0Y2gKbGl0ZXJhbCAxMDQwNTcKemNtZFNBY1RgaFAqRG9GajVOaGExMnxjdWNOR0c4ZTFy
aXxpaio0XjtmcS07VGlYZFI8TVpuT2NIPGI8fDNXOXsqCnpMOE9VPGoofCMmcloreSVfcXAlPXRA
VzxFZSlzLSZjUVY8WiUkYj85X25kdV9KJHZAfkd5Nyo1ejx8PDA+SHRWYwp6TkMwfW83dlJyVkYh
em1NNF81I0hpRyU/dDBSUjlzMDhCeSg7M0p8flZ4Y0V1YXcwRHk3NnV7KTZMfTQ+RnAmVE8KekJ0
LXRWYUZVUyFpQHptZXU3N1kzNXNVdVFoTG5oOWg8I2F6ZTI3Pz5OJm5zVlpAdEc4dlZaa21DU3Fx
fDE+Z1VrCnowQUB5TDh2c0R0TShjKkRuVnlrM3ZEYVRCRClPJlV7PTtSWXEtMiQoPGR2aXFfQG9x
KzxmV0Q1V0MzaHwrXkIhYwp6eGtuVF8/O21faiF+JHt1QzZDQkkqIWwwVURJZnFEa3g5dSZPOTR+
PEUmcCN+ZCROQnA2SCM4MClQSmBqQT9pZSQKemB0UnxEaVM9WUApYz14NWw4RExFeyN+eT8jR3Ro
UUl2Mz9YYDB1SHh7dWZPQlBrU3xEZHFDa29HRHU1RmtyZSpkCnpvUmIjKmQqMSRER1Q/dE8xQFQ8
fVY0YzV4aSRWWEEwWjQ9LXxLUHZaPm81Sn4oIT51QEJCdiZufDhCPHF5U2wlXwp6eyU0SDh7cj5a
UDstN0l5aUFQRVFIRVg1X0kxJkFxXnV6fGxHWGVqeDM4Slh+KTMjUUtnWiMmfkhpYEpadiNucG0K
emB2MkcjZlQrLWFYSXFyU2RKQHVxJmtIdlpsbTNIJHtTfWwqfE0jezdfJXIpdzlgRzJ6S3RsX3Jy
RGchcmZ0ZVQ/CnpuQXRAKysxYzNHcjNIbiFNVWBZI1JTPmRwTUdaWkJ3OG5MLTg7V3FfZG5RKTU5
b15qQilDQDVwelJ0bitFXmJhRgp6ajcmYEl0bkFrfklqPWNzIUxeK0prTGdiaiRxUztBPGl6ezs/
PUFjZjVzaTxHb0J+OGlNTlB2MUFTRDM7TnkmaVoKejxZWXdLQj88cCltfUhGUE8jSVRDNndEQGZL
bXImUm5hST40TjxwbzxFPl9kPT9AKERzemJHbmR3a3p4JG9JPTdQCnpxR0IqUGM/Q3J7TFBgN2o0
SU4hUUIrQVUoIXFVcHgjQDVOJSNuc0stIV8pdE1Ld3dhQ05ORHVxbkFqKEFAZDtfXgp6OEpTdG52
VTc0QDZxbDVpbH4rXyYpaSpSWUhNZ3wzejRfNEheUlhBLSpGUHtaSVc7fT1ZNC1FbipBPkYqK1dO
LWsKeio3bEV8Mlp1KztDJTtiNU5RZyU5QU5zZEt8QkY3MU0xNHJmJGJlKl56eHQ0bjFgIUw4ayZL
KlFudTFCdzFhdD8oCnpFRmNwfSQpYzU3Uk0kbCVDfk53aSl6TlI5bmhoJVZScGBmR21Id3NDfDM4
Skl7O3hGcHA5PWo/ZWcxUjs3JTJoNAp6Zkk9ViVLWSl+eDFqdEQ4WEFWRk1CO0ZXfEt0X04lO1BY
THZyREJWPnhJWU9rUnl9U2FldHdGUjlLKSUjWCFPLV4KekBrWjNMWk1zfmlFSGFtanFnYnhmVX1C
PGAoKU17UyEpKTcxeD9CJU9hZXglfXk2OHoraj9vPlAzYE5CMXEpaU1CCnpoVSlFRXU4QVB7TlEq
XihTQVlIN219REpAVWlgPShYQUxnUHkqKCloQEcxUmJVYDJRNlQ/aDtpX0sweEJqYDJVUQp6bDxg
RS1qKV5qfjRod143I2dqaHBoez5XP1ViaHRvREV+ZHFIX1RCK0ArTlQjOzlhXz9MOXdsOU96TjYw
RkdRbnsKenFjJmlPWCtZKXp5eGtXSyRTRCN1Z2dxNExaNV9DX1h3Sj1BcXIpWUMtMXo5UUFVWjV7
TWI1ajd8Nnk1JUwpZ3J7CnpFSFQ4e3Fgd3g0dGZuV3ghKXQ7encrT3RZaFlwPj5kZFRIZUZ9TmxH
bHFURipCNG40K0YpVS0qP1ZGMVJSMUpGOAp6USo0Uj5UJE9RI3ozRm40Vng3eXpVNFRuPjV0ZGxG
VCRDZ0FFbTBEeGtIWVJHdmN1T3swNX4mYExXJXMwZnlXOSQKenRYa0E0ZlVTfS1YKWVgOU1Uczwz
UyRlTCE3U15lV1omIW1fcWltSTBnSmI4VGFDblJxTTg8PnVKeGRCNWxoaSYrCno9IWlGeWplez9F
KUtCZTJpVGcxdHFWRz1YcmlaLTtLZEd+PyMpKXUtIyhkT3xeZ1lwNXp4WHZBcEBUYkFeZ0BoMAp6
ZG9uK31XY0tyIzV2I3NOMTRIJHJgQGhYODdtYEBVP342LUd3e0Rqd1h3YDFyODFyam5fZiUreFoo
K3ZeWlF7Jk4Kekt1Yn5PNkhnTzV3Vm0mQzZwOUl8VHpZX3E2NEdtcFZ9QGFNcld7REpgK1NFYks8
dipuV0ZZall6eC0oeWZpTFZ3CnpmYHBvQFNsZHVjLUlxa1hhN2tpIXBUZkhkQk13NHRSPDQrRzY4
e3I+YTFMb28xNDtCUk1vc2pKdFZ8cyF4KiMrdAp6cnhpIW9gVGVsYis2dEs3PkQxUihSKDg4K3Z7
Sj1iZDRZdk5Naj5ARipWbXY5T289eHw7NSRnfTZsdHBTIXxgJHEKemZvPnctU3dOYW5IVDEpaTVK
bjlQOWo8SSVXNmQpMDBJfjdJR0ZNU2M1ZGJyYUZ9QFJXU2pOV3MhV1RoaVQ0TkJwCnpgakYrTkdV
KFpNY2tYUW9AXmdIa2QrUkJaa3tePnF4dnp0a1A5aUN5RTBYZmw2QT5JVXJjbH1fSypgYV9TS05E
Swp6Tl9BVyptPkIxQzt6enxrPk1mPkJDcnErdkMqRyh5VyojfUcpdD5ufGErUGcmX2pKTzgmZmQk
PmJ4P3EpKGJubEMKemppU25yezNwM2BwZkt1KiFrZVkrdj5WWlgwNWZJTEppfmlQdWdlOFl2Ylh6
YDxlUVdpWkwxOCQ5b01xRFh+ODt9CnoleUteb1JyNzxhSjRybyRwMjFoVTZNd2UkKGhzKU1teFl2
a011T1h7aTthdFBiViRULTgoLXZVdzhtNFFtSCt9TQp6RiFiUVloaz9+Wlp2el5VRWM5THNUNyNF
aEVKZmI7NmA8bHc9JThBLVhZSyF6OEExNEAhVT4+fEB9cSF7Z3BPbjgKek9AMyomKERqa3MyZFF0
IWxfXmtoclN1QD9ERTFtKEUhKyFhQilHWmArIzZNVWR+UFpfMmQwPSZxMi1+dyF1dDRmCno+RCR9
IWY7JWE/VE00O0hkbVooLXYoP3xjd3UpREAkWWZNcDRGdkcqLWVLI3cqUnJuPCp6YXV6ekZzei0o
fEQkXgp6Vig3RG11cFo1QkM2a2ktNUVGVGUjU0tTWVN8d0RpM0t9dzFxPG5yRz5zK34+LUtHMVly
TE0xMT8zan1+QF9kJSMKel9tTFZgUkwjJjlCO3NoSHZHSHxWSm08RGZxNyNwVTElJVgoe0NmUnNo
aWB1WEdHfiRhNE1WUmhRfXEoMUR8KC07Cno4QyVgPlFqSjRPKHJteXBoYTBDOGhCN3RkMHdFZHtr
fl9qLSpadSUqSiNHUWxJSmdBZHZSP2wyWTV2c0kmcHEoRQp6bXZnKnQyYClja3k1Z2whaiY4UWVn
U3d4NHtRanJZQD4zYn1XNV8jXylOIylBUSpYVmt7ZGIxVi1Qc2lzcWchd1EKeiV9ZSg7Y0x3PyVg
QEFPISo8RV9vK2hUZnNSSj9iZ3FKTCp9YSFiM09FVzIwZ292RVckTDF1Y3Y9IytVezdkdikwCnpM
cT9RP0NtSWZNJG9+VHZOeCNTSCskJVJPP3F4bGx7ZmgzKGp+NXs8PzhYRX5lQXt+LWNWdjglQUVH
M3xWbk44Ngp6ND1jdCZmU2Vwdj1SUm5UOG5+YTYoJnlpbDZRVUFXdlZXSHAoPWxNOUh6PTNsIX4y
MXI9R1dBVHooT1l7amZhQ0gKek5uYnhDRGZFMiY2VU5SRWR6ZlBwP2B5cjBTVkdHP1AlMnk4Tnsk
bGFSaU05SllHI2x6VWUwPHtrdGs+Ynh1Y2FmCno3PHVNZVVqbnxPPUJTaGVwcjhDK2s8YypKcmQm
JlBrSUJRQ0xWfHFOYCVXZSNYcio5bmttbiQoXlA7Mi1iMnt5VAp6NXVkZCN5IV5AQmwhTmFwSiV0
fGtaVCpAfDZ9Zyt2O2NPNGcoeENVVDw+SV48ND9RVFJQI0dCQytsa1YoYnlAdloKelEtflVSOCh8
YXVOY3RuMjBoZkM8PiFlX3NyU0wqfjJyJDgrQlU/O1VVPjZEcm1yWSlHWiFZbmRuYSgpZ2JpU2gz
CnooQGVeJHNfSCtpcGtLTiE0WV5+dDUwRERwSTVYM35zVCsyY0JIazUtNjEtOypZYGxNMWstSzd1
aGk9VCZUMGZXbQp6aWJiaGlydyQ9TmUjPitFcSVjXikoQlR2d0xRfkN5NStsdj8oNUhVUFEoMWp5
eytEN19XQDAxfUZUWFk+cTRuNjAKekR0cndkOTFGdz9VVmhEJGpfJX10P1NKVmhyeXI+RUNEVGBK
LXdTaE4maU9OdC1QI2Q4ZjM9ZnJiJVVqejQ3Xj5ACnpyN1AlKi0hUXRmREtFKlgqbXVMbEJucCVJ
WWlpPUF5ey1UT057RFdrdiRoSlNwJFpeckkoXzt5TElJYVRaa2NlSQp6SHJ1PVdgZGFJUVMrKHF2
WFBBfiprRzQ0fm45PmkhWV96I311UWBDTDlRRCVxIyZkeVNLezllejV5K3wmPSVBYygKemQ1JHVE
ZU4/TiV7b2Q/TF5TRChII3NPKlo8ZTN1YmNobF4mczZBeXB3YVpHY3RHWjdCZlNiP0FifWRXSiZB
WnAhCnp6KmF5SSZVRFNsQDNjbGluQSV0MFNDZGVfV0BjRDE2ITgmS0s1eiZ1cEE8fDh0OC03aXgj
cHA5YjdZeEUpUGt4Iwp6KjNfM3wqWUtFMHQ2ODc5bTtSbHtNQDhCUUVeZ0hMPnUmLWZwNDt9YGZZ
cWQmT0hjcDAldkBTcEZ3MXckdz9gakoKem1ybGcyQkw+cXJhMWgkaUZ7byZKa19QWW4lQj8tKyQj
TGMoalVpMnZXRChyQ1gpbH1CWVYoKjlePDdna3NFZEVaCnp5RyNLP0lUc3VJM2ZfVH5lSylePURQ
VDJUanVOPj9MNFVmUXJ+WCs1cnY7XkBjPStoeVI5WnV3eEJYbF8mNUgmKAp6RlJiRzBaZHhhYkVX
TjxxPGs8KSpffUwjb2ZzO2o7R0lQZ2c2K2Zsa3FOIUhSJGFXQ04qYD1ZSiZTTyU0KyMkUnEKenQ1
bihnJnU2MDdzfF9GbjB7Xn49TTA2XzJLe094YDFxQkY5Ty0pSXwwQV4lbDA1aX10djJlMDZGfCN3
JUdxQ1lxCnpWZHZ1Rj1IX04oO31oVjgyeWpCVUElNiFVQXR4c1hRR248YEFVWCZXMH42JWBuRXZI
ZWshK0dDMDcoUz88NWwkbAp6Yz5sTX5AU2gkKSlCbDRHRjtRJlp8RSpLfVNGaXNVOXBuRng3a3RK
Q04zZ1ZDS0hffXckd1V7fDNZP1RALWNJMj0KenxCUD02Q207WDE9aSMmUVA4UnZEP3Uhak5QelMk
YlZweWYkJFYlRDl2QVF9d2x6UjJ+am4xO2gmMF4/c1NuZFkmCnpVRVY8c1RENyVtU28hXnVxZnVN
d1huMEp+X2A3bTR3fCZ5XkQmQWtuKSN5dU9EMHEwLUtUKCkrSiNqVUMyZjApNgp6WUlmYFBNPVIm
KGRNVHFPb3A8Nkx4OEsmSzlAZGI0SEN5TjcpdClJMXNoZ34qTEBtIUxuR2s0N01XbDdscm9JT2MK
enh0K3t4QEtqOXFwNjJYcHEoZyFadEppY007RVUjaVVrcnBPJGc9a0BgPl54b2N+UHowakxBZCN5
bExDSHJUPD00CnokLUhoK3BJTiooKD8hTHBOJGtlRjR6LTdKIXdsITY+PFZaWXdidkM3SWRORFl3
U29wYVVPVkNFKk5SMVA9Ykk/QAp6Zl8rWilyZEtxNzBRak5EOHxNcF8tbmZFcENreEFLe15RXig4
JTF7TEFBdDRYKmFxO3x5ViUkQXlpRTRwJTF+NVEKemFwOWY1dnJxN1Z1dWs8KWItPFpJazBzWWRl
eShLR3VuRFlpIVRZLSolJj4kUmRHODBCTDRobnRWRX1eWF9NaXBYCnpEKH5BTl82R35VPCZvS0xn
JT1lenRWVVlGd1dnTTFGKE9rZmcxOXZRXndBKyVRd318Mm4rUlpKIVNeYWRVck8/Tgp6MDZTXitM
RyVjdmBZbzhQa0IqYF5YVmU8eW12JGpFMXNwRVZAVEw9MT09QCNRTGgjS0ViYD9te1JCeHREQnUo
bTYKemBvZmVCPVVsZyQlbEJec05Kc2xhKSVjUlRaTEUxVkBweXgyaSNHQklMR281OEhpbDxmWmth
dDJqclFNREhWc3VxCnooJnV5LXBJK25FOXFNZWtNUTQkPHs5WllmKjM5TlpCPjtlbDNpbCprQVY8
dUZlRG9sRHJzWDF4emFydTEwZjdGOQp6SGFJIz5nZlhVWkF5Z0BrWUcyTHZRLTIxZmV9cGt2T1h8
P1NAXnJRRzlxfD9XKGFSMEMxRjZ2NExjVFJ8WVQhWWkKeiMjVH1ncW9AYStreXRRVEV6XkZAKDct
dWNVJmpFZ2RyLUNxUXIodWlwcTd6UkhNQlVSJHF4QWdJR1hUUXpZTylyCnowUVBVfkJIc3NUUCpz
X0Y4R2AkflRaYDQmS0ZZISZMSGluQjtmNHpSTFpJazw5VjY1ZTQ5aE5GVyNTREA/VVEmSgp6M35z
YF5ZZ3A/MkRhLVNRVXg4KVd1Ti18cGs5ZD9QTF9iMlQ8TG1eTlYjNHZtbkFIVHMjbWIxSkZxMGlh
Sj0+KGsKelE8SncyTnVDMVQ/KVd0Z3w0LWFYKTZHfUQ4UkV7Jmtld0FSeyppTyg2Mzg5QWlIM2Nf
QmI0Rn50aHVNfSFeWU4pCnpTRkRvWj5eR0FvIXZmMTFqI1k1dW5ZVChEMD9UcV9eWi11cFVAVCp2
MkV0eW4+NSZ0KXdoSkxMQWhHdj1xcEgtKgp6V1pAZiZzVlAqSzklWXRTYVM/XlQxMlQ0bj9zN0F7
NFBVcC1hX1UwQmQjTmdmaDQ4ZGhBWENydzx6fHxMVTZYelIKeiNefnNzMVZKdEBeUXYyeWFYRTFr
aCUmZHlRbn4hI2VaJGQqV3A3TXxBRmslbi14NTxpTlM/X19HcVFFfXFXNjVMCnpDNCR0dDFSKkxQ
enNwbWVtZyFjQElWIWNHS0hOZn4pfmQzYFRHcFRGZE5FYmBDcSVybk9ZcDAreyFuP283YGBwQQp6
QFV6cTV4WUY9eWxwWHoyPXdhRWpldlkhTktEXjMtMl4qcVVNYGA4ZClmX2dtMihUX2V8THJ7eS1A
WiopXkthPjsKelNZS0ktQW00VjBrbXFqPmJhUTVwdEpjeDdPTm1wfEo/QjVoIylNJG5mdE40PHt1
SylfU0tDczgzIUJ+d3tLJUlRCnptSzw3eDZmUWBpU0thejF6Sk5wR1I+IXltNWY/RGg4KnM9WVpw
aDMra1dpbn4obGZQOHN1VSt4cz44QjlwNyp0bwp6I1JUKmB3e0hyP01uUHslcEgqZjVNfiZnZzJ0
UVNmcF5QKl4jZm9qaUU+K2ZebklGMHU+aUJITERJJnhJUEZoe3IKelBweTFESWdvajs7TnlaPjs0
SkRxSjtJcjYxS19XPlR+e1JaUkwlRnc+eCNeUTdQRm0lRVlhekRvNFBMdkJjXk1JCnp1dXJxKmFS
Vn1lNzJOJW02UVgxRlFIQSVSSU5USzF3OUc4QDhXNCt9PE8kP2NfPm5yQiZ9Kjh9OTEyVylWZ08o
bAp6TiFubUZpM1ZXTzZQblVrK0dVbXgzRiNLTCVoN3tqbUBPK1IpenMmNEw7MkdBcTZfcjVub1Bz
Qk02KkxgaWJZdF8KemhUZmtre0VYbldzeE1AeEp9bz9haylmYjhiS1EycDtRMHJJZ19TZno3aVBj
NUxLJW4wYH0qXmBjYXQrYTREJmpwCno0TSYhYTs7K1FqPHtqKHRzQjQ4PFcoMilQNl8oViE3T1ox
TXJyM1Umb0hBPm56WGZ+dWJ3P1g2MD9jKTQ8TSVaRAp6LU5nN1ghPCsyUGZ+SGIoQDlodGliUUUm
XjFwPlpyVjcyVCYrSHZMRWw/RCs+UTBVREtvKTBnVUxwZnpJZVV+MlkKeiVKcHs7biFQZ045KW9A
YSlyUFphRllKVmBST3FFPko9a3JtVkZUOSFofXwoPFlVfVRaSzAyJFNgejZBZ3J4PlZmCnpmPDRJ
ZjtQKz5Danl4KGQrQS1OOVR6SV41Q0UzWTtKR3IxQigkJncoaGZQbF93Skl+VExNbGdqST03S1lg
UjdYfgp6ajk2YCYtPHdLWiMxJnt5dHJUVVooP3NZKHJwZ1M4VllwP0MjblRGUVhsT1hoMG5ibWh0
SzxLTHkmP3pAeTF+PCEKeklMfEV9S0dmdj0ralVQPiolVS1iQmRJYCtFez1HcGJXUXJnaSM3TV8r
KHJvQTZ3LUpXRjxRaUwzJWkjSHl2b1dtCnpXaCYoc0NKJnFZcT5qRytoRC0jdFh7cj4kbSNxWXlK
RTtyI3AweHtCUT9HZU5ZOSRaeShXPXxjLXx+cyFwVypxKQp6Rj1LJkdwYmtaLVRkZjleSHlMSFAy
TSFOKypXK356fDZMWSFMMkZMbzdARzdoPEJOMVhXXl5MXk87IS1hQCk2NjcKemlaYyhuUjF+dkJt
KiFGRlFzZ0prRVFvVkBAPGg/Snt5byVjVV8wazktbFUqWko8eHZ2OTk3K3JvPnJzXz88KD0mCnoy
cWs+NEk8Q3UjVWMxVVJyfFVLOHpiPDluMXdIMjhlalR1YkpOYkNDQXVxNmpqYUwpQClkY2JScllI
UXZGMClZaQp6I2kwWHhBU0JtNitoTChmJkJ4U1RrKjFPS0RgSTU0fEg4OUAwckh3V2B3dCtyNHZZ
S3ApYHpfcFRCZShGLXdXS3YKeiR+OXNxSzVrQGhNJVEpUCl9MnBQRiZMcXY3Rjg/bTlkVUMmSVky
I0FleFVMYzZVJSpXPTBFNiVJNCl8QXFMOVVsCnokVW9RfEZeRWF9ZGxOIz1DZj8/ZHBlYk1pM3JE
cHQ0eVcrTF5vI2lnaU5icWZRejRLTzdOMCk9PktDX2pMPzFwWAp6PEA1VDFTS1lxYUV5Q0BnNGc1
bE9ab0tRNW5KNT43ejImTWlLNldDbnF1biVtU1dUJmFvcGhCQGJ1M1QqTDUyfVcKemR5dWVFRXsr
PDBaZ2xzQilXeSstbXx9RStjVHskO3MtWXI9ZWY8cXY4OD1kJlpzYHdUQVQ8c1dSQUNiZlFrbTNH
CnpBMkMkKylMK1E0Xk9vfF5Db0R8K3Q/QUMtZ3ckPShEP1YqWExzcFJ5JGBodzA3aG0kcy1BMk03
Vl5CT35DNlQ+QAp6aEpWeSZCMnNhOU9zWE9pQEJKbEhfIyN8diE2aXFNSHAwel5DekkqeztiTnIt
RWFQc3FpaEowRVdQNW9peWhPNXYKekdrZCU1UyN3KWV1aVFEdld0ZEk3VVRKcUJrVGc5Z0d8ez9f
a0pNMDRwc1FhbnNXOC12KkBJaUQ8NExofFZ5alJSCnpWJUwoY0p0UVleWEMmMHpROylhM2I4JX4/
bHdZOVJrbCMldU1MYSkxOyFxQVhwOHpuM2pDeGxYUF9CfDEweFJhOQp6VEZ1OHpCZkpyKGNfdHRy
JkxaVTY/b3x5QnctRy18bytleiRuLTFOZUBoZF83dlVmdEFucT1JMklHRXVlNkBVQXEKelB3fWZ9
JkN7ZX1lWTdEPyk8SF41dDFremtGPiZ5JjRIZ2xUM3N+UDFYamJ7e3BvJE4xJFBAQFRWdXAzUz9B
IUJICnotZ1Z4SCE8eTt7N2xHP3UpeEg0citTP2dEREliITg5R241WmJsMnpXKlV1anhPXnV3Wm9Y
e1VNeSE1NW13fHk8dwp6PUEzQGxNVF9LM2BDVVRPaGdTZUJfe2ZqRkpTNyR1Z2FUeyhRcjJ3NVJr
Rl5TbG9lJDY3MyRxeylfYXJ4SUpjciMKenNNKkVST3BJTHVHMX1+RCF8RnNRQHcxd0I7SVQ7cm9l
MnJRKVNKREd4KUd6blV5ZnpxeSVRTEU0ci1icig/JipJCnplfHp1WXJnSSRzMEJwTTxFZFlQPmRm
Q1lXK3J2OSpGODtZekgpZkItRGBNR1B5TihjKnV9eSkxJU1JPGA4IW9GKwp6aHs5JSN6RXVrdz03
KGpZN3RreCNuPm5LPSFLRkxgWjV3T0pCQTItej0/Yil3RFdGI2AjciQ2MmE+bGgrdzVyYyUKemY2
aWB+bGF7SXAjKF5FWmFzS3gyeldZN09nRyt0OCE4Vm9lUk5wKnZ1bCh0ZDQyKkh3YG1veU1tYWdR
M080aGgtCnprfVoyaTJpNCVwcUJwX3BEc0hzTzM4aTY0OF5RYlVRQGdmSVYhS3VrUlghPkV0ZExm
YVJwXjc0a0UmRGVEJTF4IQp6eklDSEJGTnM+VGRGZ3hfaX1zazBnb0FQaUlaTjklaFJxSkVzVDd8
X1E3QG0ydlB6YSVlayZhczYjQX5vWjc3ViEKempGeV5ab3IlVk9mJDxnJVlYd3dmRmpVUFI3Zy1w
RjZ8YVZJYzNmRXFKMVVXSkIxPShnTn1IUSN6VjZMWjtBUT9nCnpTelR1NlZ8c25gQVNXOUEkKVB4
JGojYVhJOX04QSVmfX5nYzBvLU41PmZLKGQoQGNXKnMjRGlZWU9rZHEkUyhWRAp6KkAoNXRxT0ZU
WUY8M3xoe3JBWFd6QmNKcS0wSE9IR1BWI1FRWSspM18hPH1pU1MreGVtVjloQCVwKGFvZmUrZ0AK
em5UZU55UyRLUzVJQ3IjcXlYX0NoaypuPX55SVhTJndRNHM3VFBxanFiKChhWCtWWlUwTSU2UGQh
PmN9Q3BZOGZCCnpKKEdMamcwe25xZ2UqXyVENCQ2MGV0Q0hwPHs1NU50YmZDQ3VoKj5xbWE2cm12
cldJYSRvdzFaLXt8RXtYQklhUQp6UzB+ZkEjZkNsV1E+c3NfclVLKn1ZVGV3ZmIpdT1aUXgwVW4j
MSVAJW17JHhPZFM9PiN0K3xlPT1FPlBmczZTPz8KenM+RFRMdk9kcTF0X2JxUnU/WEZ4X1ZDbUY7
ak5Day1YOEZjJk57YzMlKCEydigxOCpoYXVIRSs8MyVDWURtMk5yCnpJNy0kMzV8I3phakwlZXhr
TmJxKGkyeDlDJHJxeGhmT3l1dGZZOEcxNzFPR1l2KW5TdChnbD5QKF5BdXV3PWMoVwp6JnlEPU9N
eXhPSklNYlpqVzxPMipudkhsY1NgaXpUQExHfldYX2EjdmRNcStFbWI3dCkzPlBfPGJ+aUo3P1d3
bWEKeiMkNHNRZT01Ri0kMkMrRDlUaHtDSCNAYWhXNSpPZFlufkxUTEVWJG0ySCU3Z1Z4b0lKWGlH
NXBqaylpLWhIOHIoCnozPCQtTF5RcnomUWtnY2RiWD5HSyVgVzZldTkwbHwmVyo9YXZjYClhKkly
SU8rMFZWNnFObmZuRV9COFd6OUVSJQp6TUkkeFRWRiMxWng8Wi1iNTY0Pzd0REh4TiZgS0RUM24r
cnBYPT10Sig/fm58YTchWntqTiErPjNlQ1MmXlVqZUYKekM3bG9VV0xvVTF4YUE2QUB7c0FnX3tf
ME1YTHwzZCFDV3wlUDJFeXImLXRhTmZPTm1OKCV+amRLSy1FPEY4ezQxCno/JGgtcXAqRHFZa3Qy
R1Ela2MlWWFRaD9HP1ZMdiQmSlAwdTJiU1lfRzBSUzVRJloxUC1hdDVnT3VMODFfcEk/PQp6dTd5
RmFVYSMzekhzcU95e3M2PSZBU1VZXkVjdXtVNkxxTSRYSlZlVF5HYCZHcTM8N2A+azw7UGcmKVBg
JVA1PD4KenkhK20jcDZLO2xVfD1uRmpzPXFCREd+WEp2QERMb21eIWgwclYhYGx0I2BDQC1LOTFA
NEt3QXZoZTttbzVjVD0jCnpzV14lbW1UTHhaOCRHYnQoQChqR1JyeDhwWitII1E2MHdTekpiSk94
eTQ9WiNVQj8tey0hUlZWSSpsczxgPkMxYQp6bWJVNGV5OGhudEg0MnFaSSVWYSNoelByMUQpVW9n
UjhASUFrbW1LYlctJGQrc0pQUXl5MUY5M0laen5fO1RSaHoKelM4QSY3PnstKklnd0dMI0NAa1VT
WTMjIUBYQDl6dlgoZzNkRzBQS0QwSXAwdCRZRGU3c1Jea0E9UjBlWCgpbXM2CnpgVVJQSkZIel4q
UzRaQSM+UDNqZ2lIZktgJSZHQyZ5PDNma0NCez1pdjRxSF9oUk5ZKSEzS259Z2JkVkdWRz12Iwp6
OzBPOGQtZGYlaFVBJF5qQW02WEQxLVBIQDgyRk9+dk5+PHwrMkUoTUZTKU1WM3RkO1VzWXlsVnNV
S1RiP0JPcSoKel94Rm1KZWNlMFBHRkhQcUtZZD1qTSk4dmR2R0pwZGFRV2NZRWhOK198NDElZjA9
K1NgRDl5ZWNLNCtIaC1JdkthCnopZFVmdjZ+Z1ZnSzx9QU4lRn0+YStqPHZrQz8/WiFqKWc0O2sm
ZGw9O1ZXcFI9QFJUPHojRUMoPFZ1bCFqMUJUPAp6ZCRVSkpuKWREczxePkFyI3pHI3dPfHwhI3gz
aVlASHJGRDMxREFPflAzQm9FO3NOcyVXSXB9SV9edGskJih+SSgKek8kRUU5eTRYZTF0XkpnZSkq
Z3RDWFZZWV9UbEQpODBOLUtSc2c0ZHBCK1ZgQ3lONU5FdWU/aGZlen1hNlRIZWsxCnp0fWwoflQ+
V0dxd0t2bS1EYChtQkZ1YWUtcUJWRStSYkh0dzNlPG00NHdTYj5lT293RVZZdEMlZUs4Kz1fJWcw
Ygp6KkkmJXMkSSUmPSpVaTsyPlMtcU9mTl4yXjVoOFV1cThJRmM5Y3pHI3FCXlFKRzg2eWUqU3Ap
el9nJmRFcSNSIUwKentQXnFiUjNuPX0tIT8oXkQoMFY4ZiUoZHU4YS1mZzMhOHFCM1pZY2hnJUlI
dlQqIXooYVAqeGVYbj1LKUF+UD19CnpyRi1kVFZqZWkzUUcyeDBTMVJtM0x5UmEtaFY7JGhSa3RH
SlJoVEgwQ1h3P2FnZn09bE1oODdCNHgrI0dSMmlWdgp6MX5fNmhhcHsjWWdiemB3KGtZVyhyQWQ3
MiY2akpMSS1sbUJlYEdkSE0kMzV7PyFPVERrdyZCQUBhbz10TFlueHEKenhUcXhhQileaGBHOWt6
K1dXeExSX3gtdTVsUUhDeFBTTGJtcHM/PGVrXk4tdjMqTFFGYWdtVHdwMms9TSNgZ0NwCno3U21a
enN+fFY2WDkjdm5HQj4kYzJWTyt+VkdUPW10ZFBCVDx4Mlp+bF8oRn0/KUFPPGpQKHRYbGt5PU9y
eShqfQp6WTVTRjEtbTRHRiRFTT9iSURUQHhyPTV7NG80MCpOPHlVTnJCdUomU1Y7fSNCSDBGMlE9
Vz5ZWT5RaXk4JntkS1UKenZndTJWYXxDJnJ6QU57PkxmdiExUERycVNge3RebCp9S31AbUNZKGc9
X3VKWWU1dChpen1OVWI2fXM4fXFuZkV7CnpLME9qQE8jKUBlKnxiO3khKT8oSkw5JnlZM2BreFk3
dFlHOy1wZXMoTmoqQEx3cXotWHJOcSFNVWFlYEFWP0BlYAp6PEk9O1Yqa1o2NXNZPGVDZHJzRExY
Wk1eNzw1Xk1pM19OQH1BKX5HYHI4cE90N2chQV4rbnt9ZjhpX0JLcG5fez8KemJqbHF1ekMkbHhR
OEJMa0FoWFV0Kzs5N0plUXlKX1czV1ZaUXFJaD9FU25OYFdfRlc3WkNZTDR2bj0pTDt9KGNzCno9
WHlHbmhpV0M7WVY4ZDNzWj1DOCljTEB8RkpSbCtEdThhM2xgcFJ6ZWxsIXNnLX1UX1Q+WCplYVVk
cm9TJGcxMAp6O3BlVlR7MVlnMj04R1ZRPihebT1qbSNGdE1+K3xIemltaGdRQWVxYlBvfHNDWk5U
bHBjXllNPmp+UkA8TXdeJTkKeloqc2FFSnVpMU1JKjlEKiFgbHVxZGprJEIzZjd0NjlBXzNic3hl
ezhvTDI+d294aDchVW4+cnFYNHBrSkJZdkN2Cno5WGhSQndtbGxYKkFwY1pud3k0TEMwbVglOyF3
I1F3Vl4mem5SdVE9TFEmZkxtNG94QDFKWWZ3KWBFdkg2NW9vNAp6ZFl6WV5EYkw5QUs5fGI2TVl4
KyFqSSlrPmNHWnZkNHFRb2ZmcEA5YlN9cGxjTz1OTHd5bE9IWHZ5emJMKDEyZmYKenRPcmBhKnE0
dTNqYk5iPVBBVUx8TXxyJFJgUHViMD9HKUw9aVczJD1mSjVsQ3prKV9yWEwoNEBoQHQjejttLWsq
CnptPygyekpiVGVndE1uR0tYK2RFT2VyPWQ5SnFYeGdCKFUmY0IyPll+Z0VkYTFSUTkyNHc2UER6
NHplezNHZl8hWgp6VnNMdzF0cX47aHZxRmhiRmNPTDlrbFJ5cF55ZXByZjMlaXhqeFV4Iy1sOCYo
RDlpRjVtbCg5YzU2a0pnJVdiMHIKem0yeW8pYCRsY0syaXcjeHpTQlEhXmlnWkZEU0BWbUooJTJW
I0NlTz8jZypXcyZoZHdwSnZ1NTQ/Kn4zI2N5TyM+CnoqWXg8My0jKz9LbjY9Q3AqX2R4Nmw1aFo3
WGpWUW93R3goSGxUS3JJejxnbjRKZElyO3Eka3ZUOz00eFF1bGZXUAp6fDRLKm9WMlpscFczOCFC
I29YPlFKd1hUJFQ5ajhvVzlPMUVYNmQpc00+VTVJLT5PeV8oJTdjPV5wQGRBaU4yfD8KekZ7T344
aU4/Iy1EeiNueEJvZjRIVE5wQ0o/elYqbiVWdjQ7JXlOZWhnSDwpKEhPc3tlb08mdEJoXmRKRjRq
QGJGCnojRz0rXmtPKT1KOU4yPS0maDcqYkJQYzEwI2lWMStWSURNak9eelFIU208SH51YzZgY3cz
ODBOJW1wT2J2YXU1Xwp6a2l1SmU8RGlOIyRVI2ZoSEVMVD8rS1M3SXhmYG4tYF9PRjE8T3c/dnlP
Ri01WFE2KjVZPCFLSlB3Yi1GRDFaYU8KemM1bF5pJFR+ZUsoc013c0J4PV44USlOMkxvZVQjdSMm
aGR4VDdLM19qME8pRjRkKkw7UWJtZT89QiVEMEBVVkxBCnotb3dNOHZgKHNaN09xQWFkazwybDxF
ck9yRmRTRTxmaWNUJlhXd0JCVER3dikwKEBabXh8SXhBJj5oaSp2ZWVUVwp6JXN8RD9tVWlXbl5s
bzB5YXFIcWxuKEc/JnRHRURgc1QtTFEpRXtGI0ZZN31PbmFiTDh5NlZmNSNLMmJXNVUwNSYKeiVm
NjZ5TlFnc2ZZe2x5MmxrOUlMYXA/ZWBaTzwlJEQrfWxoPzdBMG9YVE4lJDxvN0coWUU3eWk4KzFu
Jm9hJllkCnpHdTBfTjN4SlByRnQpdVkpTW9xKnlrPU1BcmVDPDJAOT9NciMtdlJzTFMzOSVMK0Ax
TXFBRVF8YDBSNVVIWD97SQp6YnI7MyViVU1YeHVaPzJfZ010bmF5fXJ0aSVDJFdQbHdJKFBFJmIl
WmdhYCNmYlhSIXs2dkN0R0B1azgjZWZWVksKemxeajcjdTtLeStwdkc7OzYtVk14TDNhRlhpcShv
Kjkkaz9ISU90UThnPU9jcUoyZChCa0Z1MHppNmxefEl6fE5SCnpHKmNDaVQrVWFlZ0VNfFgydihH
cjkmemdYYEE4aSo8dWB0blVJOy17Jn0kYVZxKDhodSs9MTgwVnFKVm5wXmM0SQp6SHd5TFdTRlgj
JndpSiFieHU/OTt5UXN2IVZnMmtEOy1JJT5OSD9NKmkpRyQxJlhKS3Ete0FMUnVtVUNfVXYkLXAK
el9CLXdHRVQhRHJZRTdOVlMkT2NwKTxmYDFFK0VoUDhie3d6QSFPQXBEU3cqbjFBdH5DMComXihv
ekNQX3FfKFYtCnpkZE13U3JlekhYdVpKPHNhKStvamxFUzs+Szl8ZVotNXVfZzNjKWAtVCtQOT5X
aXkzd1JfSmtgQG5wPjA+d2N2Xgp6UEBKX3xzWEFDWC00TlkkJl5POTVETS02MkJ+VGZ+IWs4YnJZ
OHRFakBJO19pb1A1dVFESWVhJnk9OGtWY3ZFQFcKenU7JmxwM0pWKjZ2emxNZ2FVUXxQVl5tVDJg
blcxVGtQPEt2dUxsUFNLTkhRJCYxeDlzSjN1Y09AZ0VSWiFBNFRpCno9fX1AVGR4ZTF+cjJ+Nmhu
fWRWV3JySVI8UGBXLSlCcmVvS1Q2Qkh7RFdafmwhPFRZZmBmVCNgd18zK3ZkQUFYOAp6KXZmc3FT
Xyo+dl59ZG9MXzdadzVVPjNlVlM4MCNfSURybkVJT0dvNXg0NTN6OD1eYEA1dyVBRygtQXVlVnR1
T0YKejh8bykyO2o1SlU1XztrQiFVQkxUPXVOdCNKbGlhYypmQHwmNmJ8WENUSmxAPV8wWVc0clol
LWxwWmw+JCp5dlZTCnotZ2A8YXFCSGZ1eXZ6R04kfHBhJm0tNHJIJjUwZ01qKSRGVVhxZWY+Mnoq
MnI/VjBpJV45X0RmJUgrVUFDdFA0cwp6ZDQ8I0JtYkowNzwpJnhLZ1hOI2Q1KCN3Wnh2YHEjdk0m
YCFmNE4pdmQoV2N2SF9WJmxhQz1QdXshKUhQP35UaEAKelJwUkZCOzs9Y2grZEZ6JjZLT3l8eG5F
bjtTVXMwdUVwUEJmTU9FKmVGN0BBVUd+cnZqU1BTdkdNWWlhKFcwdjtGCnplR0JiOUFiZnNuRFdt
bGRLO1M4QkNGcU9tTEo7JTNUJEtSZTJfUXtyeSlhR1ZSVk1jJVRiZXkhaX5QcHRKZ2kwYAp6ZmtX
ai0wPiskTzFXfmZNIz5UTlZtSnE1YHIoQWFzYlhYcXJNcXJARioodEt+X3g7QnkhRE51NV4yR1B8
OEl4QF8Kelc0Vkd+dGlKMloqMEZeVSl9MTxrSCU+JFY5ekFgaFdPbl9AOVMjSn47UnBFbjA/KUtr
KHBIaz9DVXZGUlI1QmBjCnpwNShkdlRyS3UmM2dDY2NxTGJ3S2skJSkpbCNYJUIhTz0xJSVfMXQ0
YyhxT0ljY0lHK3N1ZVdFT2I3cWBtNiNWfQp6QlNoYENMcG9SVEoyJXczaz9yZlpqWV9TWG0tYU5+
ZUAzNlFtV3MpfTk2K3xYU35xR0xRQnBeeThFSX5yJHExeCUKelNZdSkhJXFTYTI1Kl9yMl8zPnpf
Iz9NMjlhQFg+Rz95eWhILVVlR0hOVmFBN1UxRT83dExXc3VjdFFOOWlNMlUjCnokOzlSM2l7IX5f
dilzR1ItPV9hJmIpPm5IQjhqeUExaEBZPWVPMl4pIWx+VzZQeWVveUBhMW1pPW54ZyokNDhybQp6
RC1gbHEtfStpNXpRNlIkYWlYVHF3NkckdVk4fiR8Tm5rMktaRTdGdE9hdDdVdCooZylOP05iZzU5
dlpUZXcxUWcKektYRGZ2MVA5OVU1TTleJG1GTkE1Y19ZVW5ZYTZBYXhtck5wT29jU1c/dnxhQnA/
bWptP2xhTEFLWiMqbjdYT29xCnotcnpFJVF+akU/bSR9NlBZeHRYb0A7TlJRaE95QVpJPnQ5TzNy
bUotWXc+WnxPYVMza2hYYGx0Z1VVQHFnM3lwKgp6a2s5KD0wYShacEpmUmFCWUdMI0I5UGF4bGor
RjhAV1NxOVgyb2BDcGYhLT04MVJOZSRvaUdwVnl8NWdKIz01P1EKem9TQEVfPTQ/eGx7Kz5ARVp2
TmlKaXF+cSpISzFAPjhVSz9pIUZBXi02ZkVgQWB3bHJUMTM9SGdSS1V4TWdCdiNPCnpJUm5USjZI
enxkJDNrKUNGI3VYVVR3ZCRodzdVJXV2NUglRW5eZG53dUFZYCVrN0ZKUWxITXwzcElRQzZjPFYj
Vwp6O3w5UGwwNmAjMl9rTigod2x4TWpObXBAUSlPbz9eMlJNQD5pQV9hVCtUSX5aP2RhQ0hxVk1Z
RChDZS1RQCV2PTEKemsqI0ZoTlJCUEVqUm5FTkl9USFyaSpBeEBoV0t6bTlLP0JHdFI4ezk0UiZl
bGFtTUglQ3VtXlZNUnokV3VKcit9CnolVUtGYyFNK2E8bnFyYnRDbyEpXiV7fjZnKGxJZmtWVHxs
TFJOZG0jc0d7TSk8aH5OclUzWDs2Nyhzdm4xbm98WAp6cU1rYDBtNkhifVBZKjExWk1CWj83UCZM
eyRFczRlY2xCRTMhX3FFWnc+cyl7VzVLb2lTe3lJcERqWD5CMTdRfGIKeilzQGY3b31jS1NZclQz
SXpHPkRFYGRMTDJ4KlcwbUJMIW4qSCFYOGRKPGxfKjReI0t4b2BlKjwpUy09Pzh6JDdNCnotNVhw
RXFEOSs5cWVmUDRleCUzMF4zPHx9THI2XmE9RFJXWm18VThLeiZkZncmbm84ISE7KnhnOUolNG5Y
OEt6Qgp6ZnxPOUZteGdSQHgxMDtjP3o2PGkzeXVZcnVAUnpeWkN6SjFpODB0fWAlb2BFdDA8Q0U2
LWsmQks1fFEmaG1nUE0KekEpfWp+NnBMTSpxPElaRitTMmI7SUBtR3IzTTdGJXlkUHRQcDU0KD9H
WVR+bUBxVCtPeDdVQUh2b3dNQ0VtQm5zCnokVl93eVpeXzZlbD8wWjFhcUNjKVchcXJNcVdwWXl3
PV42bl9ySXxHMWVKRzRDIyR8fHkhR2BTWGY/OGIrZTQ4dAp6TyorfXVXQU80VGFmNDEzU3JvYHpG
VGB8Xnw4ODJXYj03JkxOfVJBQ3hSMVY/MkhNR0dYTH5wWCN3MnhneEchPE4KekxSREJ9enJLZzUz
XntucVN0SHVCR0MkJCtidF9BKUlRU1RVTyZpR3lyMVM7ZEExeHwoPHQjMF91YyFPdEFxJG5aCnpe
SyFhSF51e09QT2lXNS1gczdUQ18+bDskT2JMWGlAZWVAN0F2KDlWSillSFY7OTg/RW8jXzwlPDUz
RHAlMGlMewp6U3IxUWVtNm0zJmt5XiVEJUg8N1o4cEVmO2otamNpIyYhfXFoK31SVGQxfVo+Y31R
YFReaWQlUFklb2JXQXQpT1UKej1ZfSFoQ3pDeUlaZzNOKW1OI1dXJFBxMUA1YEtnMEVWN1Q0NExM
JENkaGhNd0BraEI/Q0xnWnxXYSpifU04JCpOCnp6RlV1QXo5fW8hKl5SZ0w5STxyKTNzUlRAK3Iq
Ozhwbz57UFhhNiZFVlRZbWxyO1BLJCszKCtLSHo4R2olKUVXQgp6QTJfT3dqeE08bG1Pe2dqd2dN
SGIpLXU+fCZtdW01SDJvKH4/JlB6ZnllRXVVJSY7KEZ2WT1FPnhfP2c7RDFpPD4KekQmS2EhaF5I
Uz1gYVo9bDNwcjE0aHhka15vQkRRd2I7T2s4VXQpdDdMYng/SHhaUGR1PCoycnMwYU1XSWd3dShU
CnokS09kI1BEKDJ4bX5vKjghXypmKWVRJUswQmZBS3ZXX0h9YVpzbkFUZG0yST5TMzVXfSYod1ZH
T0I/dzMpSjJuegp6cSZMaSp0KitOdkhxR1JycXg2WFE0UiNiJjsqQFM9I19nUm1EXjs3KTA0R24o
bypgPmpOKmopfU8xZyNoPUdDe1MKemF+aVo1KE94NT1zO2V0ayZtUlNVXkZ5aiEpcz4kZF4xSUUh
ckZrU2olSEZ1b08mOCs1SCNrNzEtQGNEWT43S35ECnpFTV5IZGttfT88QWNqQk5HNnZMeD1jUXZ2
OSVmcE4+aXRSPFlEb0sxWVNkdE0+JG5zRjlzSyNGO2k4YSozP2pPJQp6SmJsSCpPKGhsb2dFTnZ1
ISNkQDJ1YTEkdFQrVjFGbkU4PTA9cioxaDM5MGE0TGNGUjN1bGQkVEpaUikmdSE7Ji0KellaNWVL
eyR8P3FqR0xUUmZVI2JYaztuZ2wyZiZsakNCUmBed2Z9JHMtezZASkdJLWtiYGRvJCM8UVdNfmo0
Qy1rCnpEb0p4PyZrVUA5RX5uPH17O1YzN1pQcUZ1I250aDJoPCUmU0VIPXNiRWtQUWpfYHFaXkN7
WGdBZ3dvUDdRZCVucgp6cjkrI2k0dHU0dCZmcjlkMm0hdjVPWnNobiR+cSs7MW88NmNYPzArbzZx
dDBtPDhFZzRVVz0+I0t3YHZoWG50TE0KeilqdHwlYW88JmlBRFgmQDRWIT5ed0U4UyZaQ2NqRXJB
ZCg0X3dVYCtuWC1zK0pyYXVOVlIybXwwWm00bU13dnJpCnpEdnw9NkJFJmZBRTI9aSg5RER3fDdJ
UWFEck18Wk9MQFM/SmFgdWdUKUNvSDhud24/OVMyLVA9OWEpJkpBbUVvYAp6Y0I+bXtKckJ4dmpB
YUUjbio0ZTtnc1lVayhZM1VHNHgoIUEpdzUoQFNhMjxJQ1lnfT09MiFCKW1FKXVBRjhSfkAKento
aCRkNjxqQFcmamplOWxLVmNhIXJOQTNvPUpXTGFHRjYme0ZUcD5BQiNOeTNga05fQz5sfWtkbSU9
O0E+TEg0CnpETzdKZzBqbl5VVnQzME5IQjBEZjM2IXRtVihWS0FhcH0+ZFNrcThEWCg4UEJ2QWBn
KE9ENjhDT2Vva2UmQ3hMWgp6I2w/VllEUV5OPjYhU1EmVWQkdTZqIU1kMyQhYmheNmVJWEBlJElZ
cWg3ST9pXkhKbSQ0dH59Rl96cjY9JENRKigKek83YFdqYHotTyZMOX5QSWZ7XmNPblotNXA5Z1Zf
cjt+ZSNfZiN5UTVnWi1vXiFtSFRnUUZWOVBCQnxscXUpJjNACnowbXNDNTRrM2lPcygzZGtWRzxA
dHo3RzVhYkpwJiZMNiozTCpPc0NTVV9JYFJpWXNYIXRiRi1CKTtUMWpKfkd7Iwp6bGQ7QjBLNVYr
QDVKaFJTbU9oLVIoUDxYSmJ2QmRDUlEjQEhjKjR7JVZrOGRGM20qdndwYHlhRnpYSD5HMHpOQTMK
ejVre1gzMCh+P1RGN0hZUEViWStgSFVjUjhiTUo0WDk8ZkU7fEhfPj89d3VTdEpsPWkqOCFkPVMp
NiY2ajhpaUtnCnpFeU1mOShMUShmTj91RmV2Mjx5PUwjPnEtQHwyZmpGNFJRQU5QTnY4MkRNR2Qo
JiUycFB4JXt4dW16fnR4dl8/cQp6dnotPjU1QEBoa2kjbHxhI21mJHFobVNkfk5gaXN5VSk7QTNr
WUVDNz0yQ0dpNlhxJiZubDtpQyQ9XnRaU3Y9Wj4Kekt2PjFVKU91QyorQSRHP3NedzAmSk0kbHYl
OW43Y0k5cmZVblR4dVA3I2d1YDRyVTZqP14rR1RWY1oqYClVfSlSCnpKY2twNXNYSSVCeHl4RUlj
RUVEKFZYTzF8cnAkdmJwfUNvcy0wVyo7SjJgaTZMaUFHTnJRTjRtU0F9dmEyeT13Mgp6bmIzIUty
MEl2TXA2VChESlUxcjNoPnJNY0sqT2Z4VFROI2RNLUFMTVJHbDNhblNiVSNKfWZJfmYwfGxtMUh6
P3cKeiRsP3g4RWRyaGVuTmw4P0tRWS1lOzxGRzVfb2xLKlc5I0heJEY4UmY9QFBTfmQrRV8pdzVf
OXZsZDQwdW99JXZpCnpEQGg9Y05hSmBhMnFVVUsxO0dKfmZPJnJtdEp7YlE3WD1hJVQ0U1gyWUds
eSNwNyMwdiR2KEUjaU14ZXQ5M1FaZAp6dT9nbGg1QU47PXN4MVFxZkpzS0lpMFIxQFZKNUdZZDhT
YUpCU3VPPWhuJWZkXn1iNjRZcGoyUW5oVHR3X3pRODUKeklDMCg9eCQtb3ZLTjVaPEhAeHZtLVBV
aiQofShaaT5qRlp8RyZjPzAjR198JCZwQGhHP3xCeWVeP0Q5Uk51TFZLCnpFVnF0bSRjM0NFUGFD
JCg4fXtkR3hxYyptbVY/SVQxUkdGbzBDSTF1VSN3UyZOOF9VMG5UNkglZjBuSn09IyZxegp6WVZi
KyVOXl5UdWlVVmRKVm4kIz5CdnUlOHNmJUgwWER+aWNMdz0ocV5hQG1pYGw0N3dFX3oqJUVRKCV4
PjNKdXcKejc9SVhXRGZoTXJmY2BAeiEtUX4zUl9iJjF7I0VlUVZ0MH1iOXFHTi0xQD1jMyk3PWNu
TjtfJnhnWGVHIzV4Sk9PCnpjJig1ZjFLd0wxQS1GS3QpR0lUNmZxUDBuUChqUz95YWFUa1A3dGlu
U0h7IVBBakhLIXdLb2lXI0ZVSGZZd2dhbAp6Y1EkNGtEOFlQNipTQHAoXlU3TChYVzxSOzVUcERq
UzRZJlQ5fmhVb0xfaHAtKER3fW5JYT9TdmBebSZgJTNzezQKem8pNFN5OyV8MURHcyVmbTRreTNQ
I1UjdG4pZXhEUUpuPnckRF5WZTQoMlg2RSZeMF9mKkJmdFZ2TnhhKU9LcHFRCnpKR303TmhsRU1a
LVlpeExzOUZrY2ohO3s2Iz41JmNKdiFRTW5XeW9pcG9FajxgeVVwa25OOT1tSWApK05KJDRndQp6
LSZ2VF8/MVBtOD13Y3hMTV4mR2c+LSRyej5qLUx4KmZkISQtKz9iWns9MnBuSGxFcitTMz9SKERK
R054SFlpZUcKenNgU2dJdzh4IT5NZVoycHg8Q0VNZDJRZm42ZnNxRUk+NEQtZEB3YzIrPk9TSmVl
dmNDVGxkI2gyZk0wSUchMWxsCnpKVlpHbiRSb0RxM2FDaSojclQlTkEkKEslVHN+JXVyQHtTI3VS
NXJmUEMjNjktTmBhMy1fVWxuUitJQnZzRUs8bgp6IyVpWGEkKVVVak9BYi0rR3UtNFkqOD5lejNi
MFhPKGFvc0Q3QU5iUDI4TGhLbD9haUAtQHozUld9V3lRWihmZHMKemhsfVF8eCVzcDZnSnJeaWhJ
VCM7JnNARTU0X2V2SlgyJEMreWBjRiR7aTRBeFVpSX5fPyN3KT1yZCZNYGRITStPCno3PDQrVmlD
T0ZHX0ZXQ2Q3fDAkdnBidXRoSE1nOytGWUpUaiohVGZmZTNnZ0NyQWdhTUVSS35xUkhIZHR6YnFm
Kwp6dmAxMGVQZy0ybTVJNiokN3xPZVQ5NkZJcFRUJHJxJHcqQmtFOyt2cTZoJEhzZllkR1hsZHBD
OF5kUHo4eiZKMEoKenV0JkJKNXxzRy0tYzAzN2NxPGRyZCtKR15RdG82clB6cU09KnpDdihEP2t7
PiZQK0RzVnl2SyVyX15SbzlaSiZMCnpZTilhOEtQZHV2UEFrKENERk1ffi1EXjs2T1FuMVkle3dy
Zjk+RHAyQk5AZyUmJVpKZnlnUyFjUFNOYUlfZUAkawp6MGlJZ2k/PUFJKz1nPlAmOGNOYSpPaXgz
SFQpXnNZPlBeSU9hSUJ1Mms4NFUpKnM1cDAjKjN1eCtzT01RSzRZekAKeno2YzNsJkZaWUVrTmZP
RWRGJTBFaDVhZFE8VT0/MTVtaz9HK0VoQE4xJT5hKFduU0JmZztLd2d4NGpLN3VEQWUpCnpSOGxQ
X2NHdFpgVUh2cXVSbyU1QWJxfDAxY0l7PXc8bF5rTFRAKkc9UCZ5QXlhSTB0T3cqSXpUO2BRPk9X
IyRTZQp6VHtPKkZPbiZWViZ9NSR2RlYme19NMWZyWC0qaVFDdD53MV9mP1B9cTA5P1ZSOXBnVSRQ
Yjk8P2V1TVUqMGJeZHIKek45e30tV3E3KUtaSH4pO1I2ckxySSljTFJgcWRLeWVgZChwcH4rRnJy
fEUyX1pvWDk+a05ybSpJenVLY3ZKWk9sCnopdzBWZihhSGhqclY/I0ZaPGlgKlRqQHJXIXpgK3c5
el9vKXUjdElwTGpBM2c7VktmZ2ZefD1MTVNFZVEmVTlfTQp6bEhKZiReRyReRXByZkZMJFAweX1o
UDU3YHE7O0RBU2glI2dkZ0QtPFRtbVgwJGYtaU9mZD90bmtBTiYrZFRPJWAKelM3JDxoaExnTCRL
M3Z3V1I1K1l7UGZxQ0wkYShJR0JmK2wzPTRxY15rMENvcT9YU3tycCMtdlZDNH4+YCVJdmtlCnp4
Yj0tX2IwViVOTTJhPTBoT2JCSEZ7V3lnVlVwWXYqNXtfWFdoZXg+YlJIRlNtfl5GR0EjOHYhdTd2
TXBRbEJCewp6ZyUmOGlfdGRHdFZMU05sVUJ7MnAybGdlQVA5TkxeUmk+YmdrSGtzK3FhSi1Ja0E/
S0dRdXhaQ2w1ZjRBc218Xi0KenVwM2x8d3ZAcE5TMnx8bjU5RURnJFloRUJ4eHk4e0d4R2BrPGB0
PmhEVkk5KSswIV9eTjcqPzRTJk5EY0p0bTxaCnpTOXppQVh4d0IkQWZ2NntILVVsVWhCc050YWgr
JFRkNH0wLXVCalA2KGs/KzBgNGd2Y1BwfH1VNDdSMSNFR30qXwp6JkhAQGU0PEdlPmV4dGhJNkF7
Km8ldz49fSpNdEh6JEBhR1gwNnJEaj8pYiV8dklERiktdXZgc2V9bjRTJXR8aDQKelRfZnEoekxH
MlY3ezs3PU9aTCslUjl4R0FuMkRpfTxNUjdkPmV5c3h6RnVZODRgOzc/RjJGSiFTXktqXnoycn44
CnpjT0k0QCZlVn5fMz1BdlYlcDJ7OUhqXm87YlJQfD1QKTFXSykocFQ2fEdJV2NYU2E7Z3hMe3op
IXpPNlpKYD5ZTQp6NXh6cy1MVis2R3lGKUpXcSlaeXEje3J6SEJnfE9EZndRK3BQakBYUiYwPXFT
ZmNGdmU/REhTYjdYPVM9Zih4X18KelkjUT9MP3A0Mm9RP1MwRTRaVmpDMGBWJS0/JUlKQElVPV9E
JlArcXY7TXthcHJjIzxDQWkwblR4fX1Ue1hQITNyCnpfYmY0ZWtiX2k8VkxTayFEZmNjSTs5V0hw
QnJGcC0lQ1YpNXZNUyMmajtDUDlgdUJQJDUmJTNOMl9ycjQ5dGxUXgp6YUxhZnF4YDQoZUx5a0Rx
RjJ5I0x2Jml4U1E7b0NgQjg1OF5pc2IjU1d6VkJETyhJbDE2c1V4NkFeYFdpUmt2dGYKemg5KHJS
eDl6OXo8UW19KVN8YD9CZXdOK21geVMqczxxZGpHaSYme1hlRz0/SVFjMn0lbUlDVlZvdi17LStR
PnNXCnplfmBZREkrT1o1PldoTGg/VzdfYnBwRjl3MiVUVkU5RmMoJkg8JEcoOTNMOSVhU1dxYV43
Qn1YYEpWLXtETGBAZQp6Uzg4anErb2R7RU1pVGYpbn5Ac0paIUN9JkBvbztzX21ZNnN7T1ExQCFJ
Nn0rZlIoWitjb0RubCRtam1QbUdXfjwKej40cX1XdnFOQUwjPUotSXlQJm1NdmRJVWJgMFNUNSUz
eXorayRPR1VPUHduUzZ8aVN0ZmdkbzxOREdyWmskYztiCno4IXdLSHAyR1FDX3hjJiM5Q1cjdio4
NGk9Q1RmRVpJRnN3MHd7QWZ4ZyYrZ1I9Nmg1M3V+KWgrdnd8WCYlPy1NMgp6anhWUjc1cVVDcWdQ
VlV0UUd0Kz90NTdAYjJjM2tBK15VVX09UndUVFgtMV93SDx0b1ZVKU0rJTd6QzZgQmh0ZlMKejBi
ckkjd3gzMTJiQGNEMD4xYGp0JnhpMWMoTUtxKWFqXjlSMD8yYSR4SkdWbkY+MFRsaiF5Yz4mMTJs
dCQ0KDlgCnpJemtsWlUwc1QtSj49WXJPWWBuaj9XajA3KGZTZkZ6dDFCVD5hWFdEbHItTyg3eXxq
fVFJcCF1TVVtbiUwXmMzPQp6eWFzQXNvb0B+Q2pIe303SEByI1EkVylsTkFsRUFBKWAyeHtDUSRk
I3RwM1FvYl5YcFFjfW5UQTwmQkJoYmJZJnwKelZPNSRgeUVobFYtUTghPzh9cHx7NkxlQHw9ZjIj
cFNheiVxdVpOUWc9b0ZAb2dnYD9sb3U+P0g3IS16eEEtdlB8CnpJP3YpemZrfjV2bCFDZnVtdUM7
Mnl5ak13d3FXdkRieGpXZnlfbj93eWVlNF94WThVTlg8UXVRRUc/d0YpVD1aegp6cDdkPG5iPEoo
ezx9PCU0dHlqQGdna1NNaEtUK1F9TExZTzVZPG5fSDclY2ZAdiRBZ2hZdnJNSHNiIylCWH4/WiUK
eityJG99VSthZ30jQzlFJFVmQmVUYDtmPmVSVU9hakdeKjdDbCs/cjRtcnZQK2B5KUJYZXlZayZx
JFo7UUMjPnZGCnp4SXBlTE1RM2RFPXF1dGc4O3NIXjRFfEYldGh0V2k1UzRuT2p2Vz4oamxAQik+
eG9MeUs/e3V1dDR0SWNocjRFNAp6SWswYWU4WDtBdzE1V0hCV2NsUE8he1U1ZV9gJVZ5Q2VXcXMj
MV99SW4hQihscGVWPXU3UDErcz10T01+cGJ1MXcKeiRgdyNIJCQ4enFTOUsmV1haWDZmZEVNYkg8
R2s5dFVvVU0/MTZ2Q19ZYnsjMDg/d0xseHlOM1JqIXVDT0llcmd2Cnp5e1VpM1MzITEmQ3E2KHs+
MWpuJHg2VHNgeFRYUTRhP3ZYS3VFP1pGJXJmXnVePXB9O0YxN3Npd1R2MnY+UjxRRwp6ayNzPzVT
QmtRYmNfeDBPe1VoTypWaVFydXsyeT8qYkp1aH49cTVkRXdwU09tWG0+dipYZHl9SE11cmRubFVH
fU0KejkzLWcmMXJuPGpzLUNxfEpwPXZZPUQrMSN6S2xkKEMzS1NlNEpWPCtiIXpWKCQpTlckPypw
RSlZa2BBIWY7WXVsCnpCdkJYTFdSUjgpKXY0YXZTZHMrbmRjI0pKQjZIcStvNT1oR0VfPyVuLXRA
Z3lnSzZQZCReR2RRTlI8Kz8+VGZoIwp6KXN4QU8xaUEwUU5ZT0xPekV8cXg4KmhIalNfRDEwKTUm
dnFBantwSmprUzJOb1c9YkhHTGJ7YFlBbTNyTUMkXnsKelcyeGVFOHQkKWBlWUw7dTgkSFVeQkM7
Mk9Ta0VzdGNwT0VWP2B6Wn5LQ2ZBfUE4Nj9IdkFgMlI+bHR6K1BibkpuCnpHZjNeckdyQE51PDxM
VSRJfXRRVmQ3ZmdeIyN2KyRNJXB0XlojSF5kZG1MNnh6SiFsYl5iMGtnSW5iZmU9VWIpRQp6Mih3
X2kqI2BrZUN7NlpAdmtVM1Y2IWUqOWNzSSRLQXtXfFJkSHc0RzBaRSRORnZLemJVPVFLaVBpVjRB
ODVOXnoKemlvIXs1WFdqSnwjZzheVnNFKFh6WGV0ZEh6UzhZJUFlY1BEaTBBTVFmKmlgPDlgJEti
MDVlKDV4NmZKLXlwRiVgCnpKdE9zP0FhUjZNT1gjSCpuKk18PU09elhJSmYxd0A2fVFjRHJEMXhr
KlJBJk93cjJAYylXWWNvLV4tOUEkWWU+SAp6dTdmI0BtO3hHaUpaeD52RyQkNDBFaCZXIzx7JlB1
VWVwfVh4Z08zfFU9SnZRRU1RZlNsdX5ya3lFKXNQWGopVDMKem9SWldfYj9TOUpzaklXaD1HQk0r
WjZyfFAwSSkhT3AhWFl7U15LPUUtTVQ9cDsxZTBBTjxjbzxOeVdGVylDQi0zCnowbDRrKU9hckV5
IWA9JDErfSpWam19amtHMSVrRGlMSnhQJD1TX350eCEhOUAjVWdsUUl2cHRCZCpRSjBybSklMQp6
SGhNRyUlcWh+Uik4aFJmNWNmc3lybT02eCNYNHNGPShETnN5ZVArPVBwUEA0ODx+YDRqIWx4JXZY
Yk1aSWV1cl8Kel9ZVUFhKnZ8K29ueGU/d20yT0RubSkhZEF5U2BseSZBS2Ulb2t6N1ZTSDJDTWhH
ZFFkK0IyeW0mWGN7U2A+eElWCnojWnlveSY0aUYtQ1hoNnQjZnFFe3NQOEYxQGY9NGo4aVpJSj5D
Q3AjcFYrO1o3Yilte1dNSExZfDRPK0haKVBkQAp6JmNQU0lOJHkjdURgPSRjRmhJR0xqQj9OMytm
TyFfQ1ZSc2FLSDB5TUtQQG4jaThyZGZjY3R2SGMtYndSPytiX1cKenUjd3N7LWQ5XlR7ZTBmXkNh
NDwha0hUKmZfTUoyZ3Z9c2VpPHA/clohWWQhb1ZIP1c2dHQ3diZ1fU5vZTVjNEw/Cno/dnU5T2V4
UG0wWSs2e1RuYVlHVTdHaU8pQ3ZTbE9TeDxFVmF5VXYpcyYyaiFHaVpGWnNaT29aZCZHTHZqUXx2
eAp6JD1QdUdNTkVyaXBBVHBKXnVpbFohN2pwNGVyb0NzbGZpN2xDS3sjcmdhVWhJQmJTflpaJSNQ
Xys4ZDRwLW5OKiQKemtHYVdIVVoxZC1ycyoxZT18aXB3S2F6Sns1Pk9PWjVgRDF6VUdKbUlVPEdZ
S3d0b1p+UTVMYFVvSEFpfVRWdk58CnpmSHwkKk1URmVqKylLVndHckpkK29TN14pMl5TTWFlbkAl
UHdybC11R0ZCPzQ2OWkzMDwqYTdyRi1aYFRTWFN3NAp6d08+M2w0UWFhOD88KilXdzNaQkt3T2Ax
Z2k5bDczMClDcXBJNVFjWlp3TVFOX3c0VEdrfT5HcTxuP0ZIRD5DQSEKekxeQj54RUZRdjJGUjxv
SnZtO1c8R2k2ZkBLRj5tezZ7SjhUT2FCOSZLdy1hdytOKCF0WCRlPTVARTE3R0IlZk16CnpudUll
Mnp+RnYzP145OCFLWEdVITdQbEI+VUhIaWthemB+QE5tUXNAOTYzQT1iNHU2ZiNCN1pZNCtuMWBg
Z18jawp6ZT1NbSkzZF9UMXBkP2tNPElvI1RaYk5CbEVUeUdMPGRzK0RJNzVMYDdHPWcmbU4wWDt7
e1IqJDMzVXlIVj18bUIKelBYaHFmV3lSNXpscXFlWFJZbnQ9eUNVKDVINkc8KyVJcUZ2YlJfMiRV
RlZXajUkKyhDentqUjRzPlRkXi1IdmhoCnpkLVNRfGhDKylWJFgrPWtwc01BQlItO1k1Z213O0dg
SGlxKDlDYkEwUkYjKHMhWkpiS2pROz9mKXotSSkjYUlIMgp6UyNuaExzeDIkWiFjNT07KD4hQ2g2
KUt7ZHgrJXVuP2tnMiYtXikwMWQxS3EhcD1we3swVChRVGpROTdiLWRPb2YKej1RJWsmR3RFc0gx
JF5BNy08ODJOcmlvbjV5WCsqMDl6Kml5WHZYYUYjK2RQXyREREY8YkJhPiVMPSQ7KE5ZN3NOCno5
Tkt+VG1OQW11TmZicjV1PklicGhqNVhFUCEmUmEjQ3JiI2xUP2hKVjx0ditmeHRCQnJndG4rZ0FO
OTJ0R09XSwp6ODZAeUtSbCt0fWxSMCRnSil8S3Y0REFPIURlWjhxMmd7TmQ0ZXdRJWkhZFllcldW
PWgmd0FDUVdwKyZNX3p5dXoKenlQaTEzTHw4WC0pMjFtNDt7YWZheUF5SSEhPj4mN08pZkF3PEUx
ZFN1P0Q3ITVoY1BRSVlZX3o7KWQ1enRJST8qCnpKXzdudjspVWNyMDh5VFBtMV5GeyY1ViopZ1RW
Q19XV21hLTZNKCFaPDhlSlh0UzUreShRYXl9X2JOdk9YeG45Vgp6Jk51Xn1ZVz1OKUorbUUhS151
cGRHMXQ5MzdfRlpQOUFKUTxvMm1FYW57ailAZzsjTG4zYFRLXjxlZ2QxTlNZKn4KendJK34zOGl3
N3dYeUU/PDRuMW0+e3FjIW9TYjgzSzlDVzlxPV5gcjw8ZzBFdyZOMjhAWnhreGF4RCUzaUNwaC19
CnpEazw0SiZyIUt1VXQ+QilkeDhLTkp4OEAkaFQxczlsRHZjRUtRMjMqUks/T0xfOVN+NU1vdWAk
X3M+dHh0Q1V3OAp6Uyh7KWJ2ZllKbT9IaylmTFIjSUFYJSpzRVpkZVg7ITYmcz5HQlhDMDAkTVMr
dndFTFQlQVlpbHB5VSRkZ1M0TWMKeillTnJKMGFpNlRpT0I9ZnN5bDJzSD5sfk5oYjwoVElvcHcq
ckBjQX00MmBmTk1pbCt5e28wMT1MX25kMj1JI2pWCnokNkFVO2xedEdrUUNxZS0jWnBiSDVpSjwk
U2wlLWJMZEteVl81VDFvUmNZY19uQyM5KklibGcxJVNQQ2I/Z059cwp6elVpY0EyaU9ERCl+ZjRI
aEhgZ2FXUCklWiN0Q3ZUNG11Qk5qWCF3Nmt+N0lVPj96Rjdrd1FePDFkPFBiTn4tT1gKenBTbm9M
NjtaUjtRZzNFSExYNzhjSlJIKitLKkptWTRKJDteMXI2M2Y0az9HX0J9TypgPX5fbjIlVSt8JjNL
cypZCnpfM0tEbXdzezxKT2R5cEVOQyh6ezBMam1PKUxQP1gqS3VXMGo4ZFE4R1A1enVvPTJnbW09
O2lYYkwtbGkxRWZiaQp6OF4zQj1VZ04pVk5aZHowKSlAPUlyR2BRWVd6TnlwOUNmSXNmdWJuUGQz
NlcjcmBnRXl2TSZUUDAhT1YobnJpNDQKel85a24jZnl4IW0obH5CXkkoRnVjU1JMM29jRnhZJj9N
ISViUClqMUlDeSstXnR8Pm15aCQxbEAkVE9CSnsoRHdWCnomdHokTHYpRyRlbmRMRjdGI3xsMFlP
aW1TKzE/OGtJUGJAJEJiNDVjQk50PHFIMHgkcXI0dHpUdV5eezgwOD9KPAp6RVEwT0k+fmxpQ1pa
ZFc8QDtWVmojaHkhYWBeZH19azhmSSNPd0RxZWstWCEldlBLRH1HdDlRfDdidlBvO0M8aSkKek0/
MkV4VF90MmZWT1pgck5JIUdial4+Z0pAY3tzLUJSYGo9UGM0TTxHK31eWCQwcjc+d1c+ZX1rWnkz
cFpWJW9TCnpOXnB8WisqWG8mJFZlNHJqYEJ3M21+Qzgre3BzRiRgeSN8dGtDejtiQDtsUyttOH12
YTBPUmtsJDNzPGF1M2xLeAp6ZmRQMnxSQ2NFeWUkU3lUXjdZaFlRT2s3QTNYbnBLcDF7ekleMilL
UWtEPX5xVk9mZm9RYkdfeHpeMjZgOC14PEUKeipiWmBRTSgpYD9Sci0mKFJVVFVkbktxQmQ+c0R2
bFpKOXkrOyp3dlYoeEdDOSZTMlpIYUtBJVFPTDc4U1krdF4+Cnp7VmBlRCQpdmcjPzUtKi1GYSN0
c09PUXkmK3N7RXZjOVlNUEJJUzs5NmxTWmVGRiQtXm56P1IjdmRZWHYoaXtfPgp6bjVgYXtjZV40
VV9tVXhLNylCbE4yfE50KlFIYVgxJHNaYH4qaSlyXzxTeTx8cFBTWl9DRUZ0eGxMYG10PkcpTUMK
enc2NGklSiY0TShFPUVvfT1CeT5yQn1BQXc+VjBhbygoWld4PCNWMVczUERZenYwOyV+REspdStq
bykoR1VFdD8kCnpDJSRVZW8rTTlgXnNJSmBodV5eZHcyM1FXdXlgSzU+YmQlQE1gVnFiYXNkT0Fg
UDY3d0FETV9iPX49P3lmSFUmYwp6aTgxPHYpMUgrfFM1X3NoYlQ0X0Y1RENzezQ1ZHk8PGFWbGxZ
TFpFOFJFN0VEbiR6N0dGcC1XPD4+aztyIT03LXoKem9tRlNmR3R7MXhAMC13N1RJMUtMPW5eeF9C
eU1tSmF3Kj57WjJ+TkEkTzliSVo2cHplXjI8QiZhNzhyVkpqOGl2CnpnMXlNZUtHb3Z0KWA8MUc/
cGxpeHh9QSE/U3A7I29ud2B2ciUmejNiYXpmeytzdmx+Wm5OSURhcGE1ZiZPcDxORAp6WjxHflps
bVk4ZUItXmBYVCsmc0VBTG43VSE2WHlmbkFoPmdHb29OZE1fISQpRXR0KE56I0JhYDl0SjZiMGBW
Qz4KelFhUWpLZGlCTEZTWl5qdmxVZ0tSazVOUUA+fnxjVnh2MCpkNCZiWVZabGtIc3dOTmEkJmRn
LXMxP1BgaWUpIWRoCnowT0p8X1lUUko4djcyJmElPCtPJWhZJEt3ZTR5SmBjRzVHRytaZHtnYTZ4
MSFmVlVpKXZYakptelIoOU1OQTtfNgp6dkxZKHdzQk5QVSNEJVp7OTg/Yj4hP05kZXhkM18oVDA/
YntqSHFHTG8taFNPdWsrPUFaWmF8M251TyhodnNZeFMKemdyRGJSTUxGNnEmRkBQVXlwSkpgSWoy
TyEkJnI8U0FtbyRsUHokTUpXQmJHTmtPPnR8YXtESDJFOG5AUDZVNUheCnpeU2hTenJxNmM3RjtA
JmgrclN0ajlqaCtsWiFvZmUwX1NNPGBxVF91NFd9NGhnISl0fUhgU0V0VFNSSjEoRk1iOQp6WCpU
ckY2JUBERzQ2Jn08YWxwbEFHPnA8XmJHc1Nsb0EhcWNqN3d5R20xPmJQc1B7I35FSzJONVZEM0RF
WThJYiYKekV1RGo+NiRhcyFCJDdgJl5HI1JKVXJ2Pj5OWTl6RlFybyY/MU17T0I3bWBUeTZ2Y2Rq
KH4rN1BqXkhXejZRSH08CnpQRT9ST3BSRXFxME9QR1JheGhRN0JCTzJDQ3l8ZHpWdFo7eDgwUXxu
SWlSczQ8e3NEOzd6QVVkTHFfN0ViSEUqUQp6UjVoaT01XmQhNXJnQG1hJndlUjQxXn1LJj18SmMr
Uml7IzA+YDApeTVEIUR3KHl2LUw0MDFEKUlYUz1yc0lMYnIKens2ZWhScmBtMT1ZO2hQbGR7Izl6
aUBCczMoXzFwZzJJZFVGNGhLUDB1VnE7X2BDbD1Ga0BBamRSJX1+a1B3PGlHCnpZSnNfRTE3UzlX
O05XbWAteGNPbHJ0YUMrLWtPZTxIO2pnbWZmKXBhJm8hSmNCdFdRKWE1S1RDVDs1ND88Tj0+Kgp6
NS0mMHJVNF43PDBnbHpeTEw5TzgmVXM0dUJIUnc+JXVBZHclUDhSRXszPXZ0Qn0wfSVLXnZQYm9i
fnBxP0ZeQ3oKekc2anp1MjRuc2VkRWpQWFdxcjtEKUtuUUdrOXh2d0NRP3NpTTx2MkczWFJOJWwy
MGVubkprTVRKSWclJTNqQGJtCnpreWpFVCN+RTIlO0gjZ3lKQEg4JHB8Xnl9OWhzR2hFMDVfQCVA
eWlmeUJpTGZfSjtGakJ+dzIpdTF7Kjc9NTwpeAp6WVYwN0RDQWowRDAtMU1xXjJIJF5FR1JHbDlj
cUs4byhzRE5VOGV3MmlqPnt2I05EKCk1e3dNdGE7dEAwX3Awfm8KektHMVVAQWRjcmU7LTdlMFBi
ZXdjeSQ4S2xAKFU2UWxFNyFLWXB4bnZTMjNHdy05a2JZMzFaa2Q9TjxqM1hPJHgqCnpxNGBgS0Bf
REV2LTVhKTQxdzRXfDZ4REVNTFJXVHM5YCNMTVIlV2cmQD1HK009RSVvRV5ydEVUOHk5fDAtNUI3
fAp6O2x6d2V1dHc+ZTNSei1SRHA4cl5WWnB+YXJfOGlNdiU3NEtXRClgIWFLfSV8cVo/SmVRUCFN
RFdkc2tLcmcyaDEKejlCcl5aUkR5QyhlbVllKlo5e2c1KXlvfjIyUnZlZVAjP05MVVoqezImSmhx
WTZYcjchb09CZkN3K2orRTFaMCZ0Cno/ckMhJnIwdUMrZGgmUCZwY0laPmZYNj03REtXJnhKKUA1
MWhFaU97cWtlZjlJbUpHME8hLSpYViZONmZNWmdzIwp6Zi12YTc2KEhqdG9oZSFnQ2dyaTYje2hU
NVRhTVh+VzxaJDAzSkx0cUp3PDBLa3gxR3daKilhPTwpd19xbkl2WioKemJIUyMwT2NxZE04PVU+
KGRVdlRqdystZT1BYW9mRDE3cDI5UGNDQzVWVlV2cnMybH11Xl4+MUwkI1hZeTJTcjkkCnoqWEwq
WEswJVpFKXs7UlRseTdidmQ0dkVQQmUhcCpRTXxZP1ZPM0VkZiR8KndJaWV9cXp0VU1vUngkQGF0
d2d6YAp6bGZJdnNhazYkTWs7X2RTPmwqeVNWdi0zelQ2TH5HJkNVeFhJbGA2YUhBLTgrbz4qK2lj
eD5sQGVYMHJYbz1jZUkKekFuazVXZChySHJDMUZaLWNQLXZzVChRODhMYEZROD5PVUg2JmM7LWRI
UkF2ZVFfVFlMOVZKPEpLSUgmMm99V3NxCnpITll+bGk5U1JhOVEzTTtKYyk5JHozeDh0U3BwZVlW
fHglc3BzR15BQ3o4X2NSU1ZIYzxrZzZ6XkFzazxJT3REMgp6UXRkS19qJTVIWjNVXn5+O29ofjNv
Sz1rOXpDUEhHdjI2QEY7RXRQZVk5fTVeK35laEpzdURqc2xGPTVfdDRAQWsKemEkX1daMWw0UVh2
cEx6KFMwI05aRTRmLWJjUD5wUkNjQGB3VjJnIVMxQ2lkRXZvRDw0ajFtK3MpNWt1dmt4ZCs3CnpD
RThpZlVFRzFgUm5wQFpFYk9DaVV1eE1hcml8TikpaVY2fFpAYjZ7djgtZH0zT2R2V0dSVmh9UGRU
U1kxZ3UoRgp6TklAYU08MFIrM05nYlQqQiM/fUorVzxVcz5WMnkoYXdeQ3ktdW8xMGppUXJqSl5H
R0BuOWchPmxnRDlLV1ZMQGYKejI/LTNpOD9idEYlYDRsby0kPkFkQVd7ZnI+NV4rdFlhT3EwOTNB
WEhtUSVmcFRucmZjNVBJPVpUUWFuPEU0Q0UyCnozRiphWnN5KWp8WnFLcz55TWY2MTNXMlB4PE41
R0BRYEdhYnA3b2xxZCNQPyRDZTNaO0stU1ZwSmN5cmpkQllEKAp6KURnIWRsMDBEcztvR041KG80
N19rdEE1JlgtLU1jMTNrX0tSKzhuRUdtKjw0NH1ZZDwjLXo1ZlFqQmBDcXZVKiMKeiErTGlWIXV3
ZlJYQ3p9NGQ2eXxXMXgwdkElPjhtdFlOciFDI0JCcDcme3B4Q14mKEtTKTJQIXY8ezFZU0FlYVZS
Cno5MDUhZztGY3FleS0lZV4kflVzSD4mPEFTd25URWElVSpVPWZPPlRJc1JYJEtzSWd1P1khRjU8
T1VVKjc+cU9yewp6PzBQVClIdiF2aj9zNiZpJHQ7byhrKEo9IXc7aWZEe0tsTE87eFVkMTllJE80
cnh4az1pO182PjcyO0tAX1VkfUUKemljWkNHVz1VM2QtTTR+Xj5xPTVNbE11cDQwfG0rRktEQXVq
Tkp0Qn1kRjhSKmsyeEZWRU82WnNkanNvUHpJT0VzCno+UTZQISFHVnp9O2drJU1SWU4rMTg2UHRZ
V1MpWVlXUVdScXM+QnhCUy04THpTJVRhUnNMVW05SzwhbG95QWEjQwp6OG1xPnswMWkkd1BZVC08
SCZEYkEtbFdmJGZ+YUA+KH1VbUlwcTVmV0EraXkxP3B3TDd1SF5KSFgoOTxFK2t1UiMKemdOYHwt
aEd4TThqQyM7dGF9a2gzY2o9S3k8YGFORzlsbiomd2xpO0ErKDYpOTZacTFMakZabExiND4mYD82
Q0cyCnpxWDNkZyF5MCQpT34tOypVfU93KDJURD1xNFpJVmNJNjBgKTkhXjBYcW9xbD9maj9ka3I3
TSEjQlZ4KkBCQSpqUwp6Q1FRNH05Z1pqciNmVGojeUt8aExPI3FlMVMlYExBa1RieGlocnQ8YUZJ
KTt9Xn1zRWp2PXV7K29ESyRSdHxmRlUKenhHJkp7P3NHKFBaRT04YylNdmRwM2haeH1BYXU8JWtz
JHpaZChuSTdKS3Q3NiU7bkZnTCl3I1lSUjxAVWlQVUZsCnpBWk1WKDN4Vj1DRF5FZSk2UDUmYiVe
YDN3ZEk0Mzhoais/NFhCNmFweiFHPlBuc3llQ1ZwYW9pOE9EMjRUV3wrRgp6cDEpY2BfK1Q7ejta
RGwxN3xIcilpWjVWWnEtQihYY218eXEzXkk3bE1xNn0mU2UkaD1EZ2F2Oz9mNnF9JFZwdDAKemRX
QDtiPXFwMGdXdEBgdnE7QXtMamBkUDA1b0x7LXNYZjd+d15QRzFCK1Mxc2BHPmUxUzB6YXw/JVBJ
ZjJzTm41CnpGQnc1QV5EXyo5MmkqZHh3OT8hPHU1Y3drYz40TygtZVJfOCFtN0lNM3l5O249Jmxl
ZiYjKlNvYzlZeGJMYk8lVgp6RGFGMn1iZDN1elJAeDk4YTdqTih3KislWHdfLTJeZl5mTFc5ViNF
Uk9DKlVLTTZyPks5QWw8dyhNPTx2M3tKPzgKeiV6Yns4UG5uQHxCMUA2RF5sekFyISNUbkFzVUdD
UklOOEc8dWhnMlE8fno2eiFVWkhRZCg+OE9OamVhQkYlNkJyCnpvSyZiUWQmTmNBKFQ0NnpzaHdk
JDZePWB7WVBGVExveXIwZ2hnTl5qMDs3aUNgI3ItV2BJNTIpKzFDeCtsVHxPSgp6UjZ4aDA5NUxx
JWYzMEhEb1VJTHdjOHxUZGBKYztHbDEwZ087NF4wY2RzUzxKX0opLTFBKXtXYSMobDkod3xKJFUK
ejVVP21SKnY1TlJjZT9XQmFHYUtMLT5xKjU+dChyPXE/bzM4Vn5JcUYhO2tAfkV6NVpkZ3lZTnlm
XnFDQkRPVGMxCnoraUozY2F0UzxCNDB4SjZ6ZExkPC1uRnU1JjBSal4jciVrNCVZNE0xeW8hWDlx
c3EjSGQtZnlpT2dYckpFcG9uQwp6JDtrWmJEYSMkTSNIZTlgI3MoP0lEKXd4Tkp2MWRRU3lATnts
eE1HaFBzKmJjP3thVylvWnhaIVI5TV90c3w9Q1EKemBxUn5NMD4zI1kxWT9ZVWpjSF93WlMpKUAq
Xn4xWD55REtvVHk2eitveTZmKGRlYjkybW1yUWZCaUd1UF43MTszCnpxeHxCUWs0cHpQTGdhOTxs
cTw0YF5PRCpBbD9DajsjRX5sJkNgKUlpYjVaJCkpNXtIajR0RX1kKX1rST9vd2k1Zwp6cmE7YnA9
fChSMVdsbD8kJWMhRlk7RENPSW53eEduRHYqdUdlemdTQkxYNCNlPWhXMSZMUzttaGtPUV9vTkNV
ayMKej81QG1gY2QrR3hTQzR5MHMpSU5yO2xDPS1hT1REYztAVzVLe3IkUEJhZnIqUiNVblI3azZL
fkFpWm0haj5eSXl6Cno9a2N6MnIjVU5yTSR4b1p4KVEzZ0UrKlB2YzZYN0hpakhYdVcjZUlxNnFD
UmgjWWFBKXpCTlFlPFlPIzMkRHBWWgp6N01mKiokTnxSZzJleHJuMnRTSGkxXk8qYko2TSs5Q05j
elV7S2VtcXp+fWAoP0NCJWBNJEU0Iyt5IzIoc0VKRU0KekJ5M0tgME9MS3kyM0ljfCM1U3s/JHs2
JGx2djhIfmI1YFFDTkszY15lNV4rM3UlQ00lYHFUdERBVUBTcTgoVGZTCnpEZjMmZm95X2hLMHVM
UFNyX0xpWXhAPlF8aylIZmsoNExtdSVGOXgobX1WTDMlZ0cleFFvXlBBVUJNNHN5elZyfQp6P00k
cFRsRk5fQHRCQEd0NCY0R3swQ3ZaSnR2U3o2YlIhb2w0Uld4djJ2SzdwYyopNSlyPiZXZEpsUDR6
UXBFYDgKektqK3I3aktzYGpUeUZtTWRROylKa1ZQVWg5bWomJSZsTF81d1VeODt1Vnl9VWAoJili
T3RIZU00eVd0ckNeb1JoCnokfFNpIyg+cTJfPVRjYlB2Zk8+LUVPYHQmM2EyYXdKZTtAJSpiYkNO
VEpvbzRPSW1YQEp1UllAcmFwNDRWWCVQcAp6Q1o1KC08JChKQCZLUXpMR0o5NWhPfX1fdnIxeiU0
IUpQdldoRn1UJllnWSt0c2dofipJdlhKekdvIWwoKng4THEKejtNMXAkT1plSComemIoUzJZXlRV
XnNMTUlsKUZYLSt6anNic1AxKEtWK3lQTXNHdE1XckU7bj1sJDRYeS1PWCZ4CnpPK0V1MHVKPGtF
PmBaTG5tTHp8TExlfnFZIUYzWlpCdyE5aFhPRkVAUCs3IzIkVmdAMGFuKmYzd05+YkRHRmV5Owp6
eXIyUH1yQ2V6OU4hXk41dmUzez0qc2JsSk9LOGspS3ZLK2UqUjMpc0IpV29rY2l3ayR6b3w2e2Z1
MEw+ajlAd1cKemk5QllqIz9uQ1lwZUgxZE1rPHYhPnV0IzlZa2lGdldrKX1CcGhYeGVhaHc2eUB+
VzQycmM0SGpMS1h5THdNMEQ3CnozamxUbyFUUkUranVfXiltJnxZXmpFcGE+UWpCOG0hT0g1eDRk
WCEpR0xUaURDMl8mQGBxZmIralZHQTdQYHZaUwp6QkZGWklTaSoodG9TSz58UT9nY1VzUT93cDtF
TDY5JEpCKT5KdyVwUFk7QFlncFRlTDZkfH1JczFHZ1E+cjFRdmoKenp+Rzh+IVdEdWQ1Q3RReFhy
Qz5SQ3ZoWXBSZEE8cTxlJFFtJldFQDtyJD1pdkByUjZWUX5BPUpKKFE4PU41Pm8hCnp7dUpEISst
PyV5KzgoNT42aWM8Xk10LTVzT3gwKCZvdnNiTHV2TERuSnYjQTMkc1l7ejA2R082O0NHfkgxRkx5
IQp6eztZVDRWQXFDfikkTWNEWkwhbkE2aHFCY2YwJT1UPkU1YjZ7QSlPTFRydW1PbD40aUphSCR3
Ui1GVD1TMGNDQjAKekpmVihIVXdZUEBib2IxZypXRDZad3N6WDh5QnA9bTk4eFRFWnJpdU5VWjFU
d1RgaVRpbyMmfElmSzR6dnM8fFcjCno1SiVSdj4xZ2FgKkhRQjFIZ0BoazRtJW94TXU/SkdNKzJX
KVdWNDtoUkdzSU5OJFAxNDhQaj9CU29KPWx0d3plXgp6JTIoS1lHRGQtbHojVzA+Um10LUpgOVNO
Xm87TjxvX2kjPXNIKnk/LSkyOU5oRX53NHl0eypYQWM4OzVQeyZlST0Kekw2KilzKDlvRklKcXxL
Rz1vPHVVJHZGZ2BEekRmU2R4Knt5ayVOcm0rTUd5U0Z1XiZmSUxSeChDJXA8XkNwZy1ECnpZMXRD
SSQpc1kqJEEzelF2dmx2Kkd+KiMpYUI/JStoVUhFVVB4N0g/T00yPXRlcjZ8PEs8eipUP0hKQmFU
KyM7ZQp6bzF3KVphTGIkPVhRZXlidHI7bmlCT0dUbW8/eTskMXRHe18ycCtXeUEhRTJINyZNWjs7
PEdGVT9ofURjKyNHPFEKejAoKD59PGR5QEJiQWVBI0Zmelk0T3AjUyFkYzZsY0x2e2VjYHFVP01Z
dHRVcFZ9aGgpUjc4Plc+QlMwSDZZUFg4CnpwczUoYTlNWEJNZ09rVSM0eDVNfnJBUCh+RzMocDRS
bmkpc3F5VWBjUmg5RCF4IyYkUWBEayM3by0+aXdscXF9QAp6b19PWT0kWjZQeiVYfHpIM2lIOUtS
VHhFc2xaQyg7PXhHVGZJMmooc29zdmNlMyFHJGdMeSlob2ZTYCtoUHQyIX0KelBISzJ8IWk9dWpF
SUpDUlMlM2pVVjBYbngyUEBgZT1iXjwhdyQheXpxVyNOVGBBVEVTbTRRLUVlQGN1WWc0Wm1CCnpI
c1ZmZHlCTDs4Kj5jUlMhMG5GSlpkK0BFZn1uKGNgUlk1RyNAd2tabj88PjZWeFVvZyQmSjdhX1Fx
Oy1FKmp4Wgp6O0g3PzY+NiV1ODgyWW9lZX1APzk+cSN4YysmfDc0MjBycitsPCYrdGFfKHJAeGwy
Y0ZwJGlAdW8tdFgpKn5gU3AKenVlamtreitaWXVyMi1SXzgrY1cyZlAyI3gyKDgxRytSfGlAY059
QS1XZiplRnV5UyhTcHhHcTwwN3NGUFJVSTF1CnpBbkdhQHFJbiZgalFOezRIYj4tWSNeQDU/ZSRy
RmFgcU51YyN1KkNrMzQle2s+MDJpTCR8YT9LWCklJlMkSUk7Rgp6X3pRak53JFI0eyFpfkdfQm9u
WD94X3Y1O3hTbTg7NXdRaF44eSZ8XllSZmN9eFktamwmJkU1YjZgYnleY1ZKRkIKempHaSRHMite
fCt0X0teNV4pKFBnZHdBckhTO3lUd3hnKnlVYDsjJndHPVQkU2E4QH5IPk18OztLe0QrNWgkc08p
CnpmSWdxQ1JDUCgqaHI0TTcpRGckR0AyTXZOTENFQD1vbXdkJFc0Rmlga1E8RFhRQWA/M2IpVill
U21jZyNAQT1kLQp6ODZaJjNMd1NQKDJPRHJKTWVpJGg3VDIqZl9iQHwqandXQ309PyZsM3ZVOzRV
QDg4bjJFYVdvRnUqdE1DPGVYPWsKenJ6ckJBQVFgUGByNURRZ0dNJTVpNSR6O14jMU1aOW1LI1Ek
bllTdjAxZE5gdzBCXnQ9Y2cjLVckQn5YfC1QWGpYCnpeRFdEemAzNW04dENreXhQSC13MUVhYVdt
SERJe1VCPTlRZTVzTzhUO3peaGdMdnhSQnR5OHoxZTh8O18qeGhoJgp6TVBSMlhDVGltcCh5KS1N
KSgrMnVsREd9cW52JmtnSEtnKU5uVSgoTGRXeH1xZTtZJXdOIXVZTGB3RUtBVnopNnkKeiY2NFkh
PWtDPD1OeVc8NmY4O0p5b3deaVcoblZ6c2oxTihzd1B3Y05NVnZ9OGh7akpOS2IxYzJAcz9QXktU
KEVrCnpkKH1tYGxfb24qTmorOyRZTGJzYWJjfkl3WGRfS0ZOVHBtfEkzLUN2SXE2ZyNXd1ZtcCVO
WEJ7aGo4Z3UqKUErZgp6ODRQVWleV15lV2BjKF8xeHc/XkFxaW0tK0FvMV45d0RvUGJxYyl1TV45
QDRhVH08cjZ7WkYrfWsodTgrblR8T3YKelQ4Jl45LSlvSnR0OS0rYDJjPTdFcHwjcFBrKz1tJUxP
UnooWVFtZyMqaXdZI15mUk5JJEAwYnJuWSk5Wj1UK2p8CnpAeU1qfWpQYyZEd1N4eFRrUGQkQ0lq
R2pmZmBCdlcpfisqJGF2V09HbklNckVLa2EoZil7UzU7NnF5dkBBRTA1MQp6MkFMeTlRWnlUYT9y
ZTNmRGBAN2l3KyFrT3NeRWkpJU0qeWFaNU9GanNXazU7cGBSRiNVJnReOSNOa0k2NjxLNEoKek19
Q1NOP2FBUENTRCskMSU7aWZ1Z35LMHVPWTdGV0l8TilIe3ZMcE8pXlZKPHR6ejYmdVg4QkQ8dnVz
NSQ7TlRvCnpyV1d2fShpeytyZ1YoUlVFdXhtMnthMlg3cUxHfXxoVGwzUmtAaEh6ZkUwM1lZZjY8
R2NEYS13LWwpbCkxaFcmOQp6JnVVaylSWGFseXd+e3sheHBaeDxRXzU4bU5LUTxJayZiIStQbSk3
O0BxWDxmUEsyK2d5KVNEbThyWVhsVFJxQmcKejYtSDcoVTxOVXNsXm0kQUJNPmtSVFhTbFlHO0Y3
NGN5KWVIOXNhYyFvb3VwKSR3ZVEpciQ0UFZDd3J2RERDdVRmCnp2YlRHSzNNKGlQSHMmWFFJak4r
IVMjUj0lT1NHOUprTzNzczZ1JUwlRDk2Z2srOEJOQVhwLXE+eSl0PSlLPDlWKQp6P15zR1JaTX1e
bkRBYD1HZHVYczNRK2FnXk81P2ZwcClGdk4mU28qUmxkJUxoSyVqTn09X1p5O3hRPFhyOFNDMWMK
ekptJWltQjRMUmVqISl4NGEmfSF5PGNlK0VMYSo3ezk3PHd2dEltMzdAJW1KLVMofSVUNThhaGch
eU16I1JETmxtCno5NWJPcj1OWU1ebztXfntDdj4+Ukc1ezUkbCloJGhqOWM7ezhlfmxxJWUjbyFa
YUMrZnQ5dlkwWldUX3tVSH04Rgp6WGRCNEhZO1lLbTBSeTRPZHtzTm9udDA/dnY1M3pEMXBYQ0ps
KTB9amt5MSp7TF9+OUkyIytLPElsfk5RcD1oOGkKelB1ZGk3UmopMmdsSX57YjckPmIkXk44YlY8
SiE3b1AxfkNMbkVPdEx1UVhBQCgzeVRgPnc8cU9OdDgtS0x5JWkoCnoxQSRJUzFrdVlQa29lazZo
bilLZ2NHTyVtbEFMXl9JS1YhPl8yUDVjPiQmUSsoOVY4QzYkJTFeMFZ+Tz5rfnJESwp6bX53dD4p
e0xHPlcqYjY8PDhlSWhzKiooLXM2ITZzPlBiQTQrbTYtS1BIVTwkbDR6e0UkQDl3c0ZqOz88QX5S
clEKenFOfGdmXk5QNVYlSXY2LSMtKU16ZEpJJSp1X0t1IVh2O3EoSnZzSFFsfT9Ra18wPHFaM29g
KXQzIUxzZ3BHdEo/CnpscSY3PnttPk9+YzxHOUN2JiRAQGhVM09kVzF5KVpQfV5rNFNybCQwb1Im
VmdzZyZLaG5ITzZrbEJ0Zyk/elR1RQp6XmBIZXFeUzJIVEZuUyErXkcmKV4jQkJwUDgxOCtsd3A2
R2JWfElEKFRTMno5R2dqRGlrfD1UK2NpezIjczgmRjYKem9Mfjw5PmZBKlUzdUZPfHtOM28wO1Z5
NmlDKSROT1g9MXNUTGFRKTRvakBHV2NWU0xfYGNsNW94V0dCJjk9TjB8CnpjNEdpQT5zbHYkZ3U0
TDRlO3h8O19uPEpeY0o9O3M4WGtlVTJlKFI5K3N8d2MyZmJTZHtLVGdxZkUofk44Xml6dQp6YVR6
cSRtNEYxRU5XfXIhdW5PK19fb2MxMTZTYWl7PC0tQmp0cUEhbjRAMm9yUlYrXjw+Nihrfnk4O09P
RFBOJkMKelN8UnhYIWk/bmMlfTgqJDhDKGo0cHlZci0mSDxAOypmV2VDSVckfilFZTlNZjIyTXt5
UVNBQEYxZG1abzJqPkMpCnpANFk7PlNMST57cHpKQWFzc0AkcmtvQWQ5MzFUciRWfnpwaV4pJnx5
KmN8TiNyQW1Pdk54JXcmQiVidTdgbW8lUQp6Nnlie0Y3eStuZFlAPXJZQDtScj1HO2s7PTBvO1Io
Y2RDLWhDZXxEajkpaEFTUGcwI1VtYUxxXypqNUFYYGt0bmsKej9kQU5XNSUxVFVaMDFLUU1seVJa
NyZOaU88OCtjSDtJRmkpSjxVP3U+fWBLM0JGMUN9TEwxNSpjSldPVERMSGtACno0Z2U7ZmpBMzFY
TW1nZjRvQFNZZFhKJTJIazRqMGxeJUp1NzBQc2JVaXNaTGtec048Vm1BK3ErRDNrPiFqPWdHQAp6
blFwZmlOVEUwUEJPTHs2dmRLN2AwYWBmTlU+PzdQV207KUZiQE10WCNvRlp3a2JIJCgxOEs9Vz1o
Q2FLcH1DU1kKek08ck51eU5wJGQ8eCNsZj93JmQ2JntjNk9ER35fQFZCbkhFUTMqPWRLfFdpT2km
PExBOzQ9Wl87fmVLWHFffkUyCno2Mn1+Nnd5MCo+Z3IwcnM4MUNkakQoQ2xhITMxT0pSJG9faWxq
V2FqK3E5SiE9fUclVV53ZipPI0J5byMkNyloUgp6YHtyJU1OJDReQj5jKlc3eWl0PFRoTWV2Sm9N
YktzciVjcDBIO3IrJmQwaU9wXzJzRmJZS3pFMnhCfEh3TU5HTm4KejNxUWJXUCkzYVJPaV5Qe058
VzxEQURFaGtJaSprfGp6WFhVU29kUztwR3UoPitQajU2YUdhZ2c4XnYzZGN1QElaCno7ezx8RnR4
QlYxWVhYI0J0ZHo+bTFFPjFYTntvKCFAdT5+TVRiWWNFcGZKUV9lTDJsbWs+aWRPQUA+QXNQQkJA
egp6ND0/V3RRO2VNYkRfR04wQ0NWfU5FeVo+YzdsXmh9UHJRNE5yQThUK0t2cUQoYz5zPng+YXZ0
bntffCUlX05FZDYKelFPQEZlY0NMaktvemEmJigzNUZXJlYocl42KHAkeEY1JFM1JU15Q2lCdHN1
UFNGITFlaU4xNW0xeEt3P099bk47CnpSPXZxWU1fYGpfRDApKS15I1VLRzs4YTMoUUchU3ZESClr
VER4YCVZa3w+Z1dOb2RzYW5oRXlkS34mRHcjITFDVAp6RypMeHVaN2l4cj9CITJtPlZJMFY0ZjZA
NGs7eF8zQTQ8Q31xQW54SUsrXiVjSVF6QkM8MjJUV0AjVGAtWXc2S2sKeitvWXRkWGdMNiRlWDU8
YlRrYWpCYlhGTXtLaG1UN1cwWkFtKmQkYm9kZEEpO2xtI2VCJFE0Ujg2an4rbnktT3twCnpMYmw+
Jnk4WkRkMm5SfV4lQ0BvJj5aPmFlZlcrZW0qMFJ2Y0o4ZXVCPWMlU2psRWhiZ3JXKig0WUR6TWVs
OTF5Iwp6dClnYHs3ZGFBNEB+VyVDISlXQl4+c1dCYypBcUkySzNiZiVKdHs5Yk9pMj10b2xoS25A
Mn19c3FxZFI1dmxXM14Kek17YVJrKz1gUUx4dWJtY05maVhDSjx9Q3UqZ0c/M3VFIzkhY198QTZ6
YV9UeCNhR198TjRKQ2tRPGpqZk52Z3xtCnpgPDBifF43elQ9azYoSiN3PjU1X1Z2TTxabE1KaVJh
VWBJc0ZrUHBUYktheUVhMlREVm10WShabSt5VyNzQlg0Zwp6TSQmb1FDPDZuekJCfipfOGhhfU0m
UmNJSXAhVE9eKSFDZXFQb2E1cjJ5T1B9UiRgK0t2PUNke3R3NDJlRnRJO3oKem1+Z3sycEEqOGJ6
aS1UfTJxY193UGw4Q0t4TXo/TG9SU29EJjE+dnB4P0NNc1dSbzhAcTlAcCFLbWNPXlY0dWNgCnpI
RC14Q3hNTnR4YTg3YzFSRE5WaEVKVmkmZypncF5OOCV+fmk4UD1RQClxMXFhbThBTUk7e3dEZCM5
LVF1TzwkeAp6MnBkaWIwQWAlaSR0YVBSQUc7WU9wR3VZfnBvLW4wMEhWN0ImRDhQZkxyWjIlZjtC
MXQ7SVpXOW1vP3FfTTtyR2sKelR1eDwwWSNpc1VFS0ppbVE2fTZlVzBUZ0k2fSohJVFPRio+dnNO
dV9WKn5lKzFZajVkZDtiOVN0NjU0aFJ4P1M+CnorQGo5WDU9JnprNmYrUEdlQDtiZVRpRHFQTnUt
YG5ebjtNNzQrPyMxNkxBdTQhWVk2PGZNYGB5YzF2T01ITW9nMQp6anwzMUVDTjVrOEtNSWEwTjB+
UyUkOEppWDJha0d8WXVNeU9BJkJJU3B6PVJEemlpT2g7eV92VjUxc1MrM2RVMSQKelRXWjJGeVJo
NE04U3lzcGcta0ZiczY3UWZDfD5VN01QTEYlMngxMERKdmdQWEspeiNuZzwqMDc3OHYpJVgrPzFp
CnpifX5KKCRncWJYal56Nk9SbVdEZGkrVVhxTnZrfiEranwoLTRFd20/NHg1aW9ZZD10c25HbGR2
bDVqRFBZVDdaKQp6ZHleYT9jQnlaanZCKjRrOztQP2l1Qnt1aCtrK3FuVmxsPSZkLUl5QVJsViFV
Z3g5PDdxYyRtYUw/aFhwcFNfUkwKenQobnAkam92bkFQRS0tP1F0cG4kVzBFcWhCQ2hlQ299N0FC
Wnx4WkZCaSk2SypDNUtuQy00PSQtMVNSQlI5Jnx0CnpjLW5PZWsoM0xKWld6dktxZjM7R2coTXpf
S21CVGw/ZTA5Ylh7Mm4pbDFTKTFOOHdpZzBKSXloWTxCcjhOcHJfVQp6Q21NM3F2I1BaNUM3REZ6
TGxfX0d6e2wlWHB9d2AwZEJPYkc9USV3YFl9Yl5tdGpKQ2BERUgjNSQ5UGJaaGhaSHQKem4mZyVu
VEA2KXZFeiMpbiZMZFNxNiZMU2VKXnVqeFJiQjMoa3tKbyE5R24mJm1CKylZK15POTFtKmJGbXNa
KENoCnotYXZXZWdJNX1CVyk3e3soISh6RHU/Wk1ONHExVGI2KGR8KU1xNnhUeEVvM0o2Xmk9aGpg
T3E0M1B3Mn1uWDNfQQp6U3h1aVV3PXdDQF5ydk1mZU1RV1RNM0ZXI3U+bEphQDYoRHp4cmpGZTAp
NDc5dnA0T3MmTkdmIT9yZGElJm94LXYKeiRnQlpFMjtrPFdNaTtZVWElKjBNazhsSXp1YGtnMlFn
MmMrU0JBejM5YCN+UDhkZ1A+aTRtMl4yYStART1+ak5zCnoqRD9rYENHeD1rMENqemo8d3YhR1Q1
NSEjLXNxeD90byMwUXN0IU9JPEo4bklCQ3lCLU4lWERqc3xsWGJaZHN2JQp6Q2l7XnRObmsmdlJm
LSNWVj9+Z3VhISVBOXZfYHg+QnZoJWlgQW85TTJXfCM+KU8jZHdhNnNkKGRSNUVJNWUjZVAKenZ1
eyFKZjs7PEU0RnNgVWhFIXN3eENldD41dlpFSE5sSHNXQCFKMEFHcz5hSnooSkJweypge2BNVVBJ
NUhQcFlvCnpiPFc3d0F3SHp7ezN8JWNKLWtzZ2t1bktEV00meExKdzxqX1NKdTwlZm0jU3xDamZr
dEY1JU9Ha0lkSHxEeiE+Pgp6WTI3IV89JXIzR08rNlhKc3o0O2UkbEZJdTNUUWojK1BESzlhZjtF
cnVueWFpU0k9QDtxZHxiYSFuVztmRVVqZiQKencyNGlgTk92XlBrbGI9ZFp1TkNCUUhvRD8lO1Ex
SD5DbktvdmxDNHExYn5BZTZPWUU5ZyE3cVh3RzA1amBPWSl6Cno/QDQha0dfeTt4SHFKKXVFPjFf
aVc7fjhyXjJhQ0V3MldzemQ2N08/eSVBI0pOTnpUT0ZAKjw7Vns5KnNsailrVAp6XlMmckN5QW5u
KUpDaj9iWjVmYEkpZlIjb0I+fig4JEU3MWpsNEZkQUN4Q0heaUtDYlJSYX1BOG9Adkd6OCkqdk8K
em9qWCEjcj9AdCpOUChnIyVEYXElcHoza3wwUDNrOE4jfm4ham4yPnM4MTM0dD98NHtYaytmcXFi
UzFeWU9LQERyCno1RSU/ZC0jJnR+bzNeZ1MjaTVnIUAmTi1aeU5rYmtfN3piaUVERU1SWlYybzdS
UThhcTwtfXJuT21eenVKOXBkUAp6OWB6TDF3VUxBZTxsSl8hPnMxR0RiOU40Mlh3aSM2KWJETUAj
a0lSbXY4Z1N5XzxjVTdvYGFnUnNBKUlhTEwlT1gKeihuJUIqMGY3Sj4kSXk+TVJ7UzQjZWBrOUVt
TmBEaTQqV001PEV7Xl9iUTsjS255bDtnVE1LYiRzdmI4Zm1SMkw0CnpkLXR6MHR9M2k1ZHA0Nnh2
RCtGbm9nUkMmRjJAQjhxP2ZZblJ2UXFVJCZVNElKOX5KcnY4Wl9XNGVzWnRgY3tzaQp6YTtxIz5S
PE9MMU9oVXc/M0pFLThAaWt7JSY8MnJaOFgzakteS0M1QER0NHpGPWVoMEUtbVh9ZUhscjtzeEF+
ZC0KekVnWTclLUkpPUltZ1U4JnElbzI2Ynt8aCUpUkgyfTZHb0ckTXEmdklsSFpMfmZKP0dEQj8y
Vi0lPE9yOHIrVSRkCnojMnp3LV9pT1Y4SnJCflJaS3JlKVMwVGN9dkJ1RGNteUcwUjlfRmJgQzZL
ZCskSU1ycmZEWkxMLS1RPG4lclpgTAp6MjY0fCVPMyU4d2t0VEIoJG1fY3ExMndIVU84VHV4bCVy
eHYoc0toYmMtQXU1MyYxVi1SVHlEKGJZbH0+RitWV2kKemloU30qMnZzdk5CPW80SG1UaWo2JXpC
VXVlQGc0OGJnZ3EyQiVZKn5hcUwkciVGRFl2RjlYPEJEOHRFeE1QYDAqCno2Y2JKa091ST1XQTUm
VVZzTUZPOVZVP1U8bHwyNCt3VllPako0O2sjZ05EdkEtPHNIZj8xZHlxISFzWT1HMHArPgp6c18k
d3BCNm9Re1dnZmhtQTVmTWtrYCFlS29pSCh6PlQ1Y3hRJU9ZXjR8NyVeTmhZNiQqJjg/KiZ0SDBt
O0BxUlYKem1mYVg2Mk9aNXUqRFFXcnBrI0tZR21qeyEmT0l8IzYocT1WaSRwRipRSWN1PHd2M0xy
PX1KcyhqeG9rS3smYil0CnpAdGsxdWo8dV9MNTs5M2kkcGIjTHJ7clopTnl5SmlreVJBcmpEZyN3
QiNNfGckWHMjbE9QT3FoTTFFaHEwOF95QQp6cnh4MHsze1NEKmw8dDR4K3owMUNhRlRxdlYqR01B
cH1UQGc8VlNqKGwpKmlYTyRfRVdkPmpUQ1pZai1reDtHQT8Kem5lbTQxRi0/V2JtNVZ6Z0MrMG5C
VWJ+XmlkKXRXQEAwYkthTkV6JGVvUCVmWTQxVT1Ed0I/dnZ5biMtMG1FK1FwCnp1OVFYUDRCJkQ+
JDJCaFA9IVROJiFEZipoeC1LI2JsWjtVZHUySV9zcWFjaSlEbWdFbjx3QjVscHVodlFLeEFXJgp6
a1B9YWxfMFV8fS04LTdvLU5ObDAkOFJuMzQoNnltPWJzPXpQNkt1Uj0lKyVfczhfJSZObkNtaWRR
ekUlaDtKPUgKelg1aDlmSDNjMShybjxGdVMoMyZtTzNJPkEjQmErUzB6UkkjMD5LLT9Tcl9LdHU7
aVk7KVhTWXRYIyg/Jj5OQ2VyCnpyOD9IJjFaUzA1ZmFFV3l4dW9NWTg/aXwpWjN7UCVMPT91YV5E
PV9QZEpHRHc3TVRHJVVnJlZTQWIqVzlVU34zeAp6QVN9JEtuPHQmV2pWeEF5KFFhaiVZTiEwTzFD
dnYlQmRtZj1PSXV1O0VqdiQ+Z0N4TytCJDVLMi1rKiY9YWJ6QUwKejFWfj4hM0NZSm1OdiFMO2df
VHVRdlVUN04xdyN4I2h9cTtJYkRSdi1zIWpYU2xPQCFPKElaVTNZMj1zTzBhM150CnpsaVB2WSl8
c2ZoTF8tb3IlRy1XcG54ayhLamhXMSNrZiYlb3smakI3SEZWIUQ1PFhNfklidU5sST8mPnZgSjI2
Zwp6TmxrTDNSNUElNkA8STdqP29yPTg+Q3hJb3ZaSzd3YEQjRjUyX2UzaXFVUDdeYXVqdj5fI2dx
ITI8VXozdF58PnAKelNzNTMweiFNelMqU2h6MVdHaytrcD5IUlFZN1d0b3ZGOU9fVj5DKn5RTWZB
KkM3NXNyUSVaRkFoJE5HdDNSQFQ/CnpYWSVWO0cqKEZVQzNzWWYySUN3Sys/dmkpajhgO3V2SXhk
Zm0lWExna2tMcjEjfElwWV5HcHloYTNsPTdmYX1JPAp6VipQLTtHUjczYEkzLVIrUjV4OyV7XyM4
aTBFRGtWNFFRJiRPNzt9djZ5NGNoP0F4KnhTZUQ9dSh6b0gjUVYzeT8KenhvP3pqP3pOZD5sSEpK
JkNgdU9EeFNSXngpSFF7KFJaQ0U8Zj5meUVjbUR1ZHhiWmI9SVZ5MkFxWmxPUkZ9RVNhCnpOZ0FT
e1I+PSVGS2pYKnBzVioqXmtoeSkpbGZpSFg+fVIkc29WbkwtV3Mha3A4Oz5VKGltVWQ/Qk1ke2FG
VHdnIQp6U1VFSmdoZFJybCp1WXx1M1EyT3g4OXJ3bUAjJDFqNm91TSVaIVh2ekxeb3UoJnJ8O1op
fjtlWnNaZENGRiQ3fmQKenNtI3xtN1YhbWc/eCU+PWNePkFQIU1IYmhYdSgmRXdfNnZrQWReekxM
ey1FaWpIbSNBSSpJSSgkKGxKQENkUE9LCnpwVlU9RVRadEd0SzNAZiNnTj5OPUhMcjdOWlohQTsh
YVRgMkpJKShGVEdtdEt2QGZUU2xKPCRUUWp6fUZCYVN0Tgp6QnVwc0JSO09tPkthYHZtO340NHNS
VXM3Q213ODNxRkh3JDE7WWVSbSQ+TEFld144aVhqUEFQYlA9TUBHbmZ1NHIKeih4cXQmcFBPJldj
PXJfbWpTNFp8Um4rd0xzblgmd3llZmN0NTs/NW9efTA2SXZLSzdKMyFIYTdzclY+NEJsOCVmCno1
KUk4QzBJfWQ9ZipUPFMzYEgoeGhgU0k+ITFJbmVWeUEqdjN8JmBkZEZPLXBSWV4rJTZ0OF5hNihu
cClDamckRAp6XnJ0QVJZRCFpe2o5UjQ3T2RjOEpOZHxEbXg+clhSalUtKHo4I3lndW5ze0JEKz4l
MztBYmcmZjJQWnZ3X08yd2oKekwhMUowakFOfWhOPVgyTnBHO1A2bHdQUX5SQiplQy0xVTE4OUI2
O283a1lpd29iY1ZkIyQmcFZfbDEta3VzTENYCnpJUDd6ZClVaipZVyFmO2NsJmR4c1JGYj5fanp7
TlNSSTskWlZwSSt8dDRWVE0xRUphPzxQcD8hU3A4aXNlckhlRAp6V2JNcnE/V1ZgOWVZOzZ1a2xn
KkR3eCQjUzA3TDI0cT5vT3FoVDxmNURDR28qV0g9PUxScHlEfUU5anREUWVgUS0KekVNNzJKYCpZ
ZzF3Q0A9X253bmx9RntSNU8rTndUS0p2aXd+UlFZMSU4PUo9KVBIaWJjZWMhMytJeVolMyl+PkUx
Cnp2emtMUmM1Kz9Ld00mRHNjV3ZZREB0JUZYPmIySUpacldVTnpOVSRFQnJ6dE4ze1UwOz1XN3kx
MnFYZDVJWHg/KQp6QENTX2FuS2V0aDlWMUEmKVVTMGJTK3dYST9vQVB1Sz1WU2I/QmtXJmsmdEBU
RkIxNFlHXk16PWxHZmBAKUxCRUkKenhlWGY8R2xQY2IyTTNXe2FILTh4bVFtSTF2Rk8jcFF9ITtj
SGsjfUkwMDg3flowPEN4czFwNysldFVUVTVQfUFLCnpnWk5ZQ04hJjR4SyUxU1ZYWEluQjl7SypZ
bjxDJWJuOVN9YmVZPjVjZTNiKiZKJHFKXlREc3wwbGorbTQ4NjJ6MQp6UWJObDg4OFFiTVQlVj4q
WnFreG15MG1le1FqXnUkNHU/c2E4KXMqVTVfUVYzRUpqQ3VkUjBZP1U4entJZTYje1cKem5MOV9S
SUkxVTVucF5DfDhkUEQ4dCh+cCk5K2xKaFZeZjFveHJRQXwtcmoyaC17fWhzIUNGa1A8ZVZJWjFC
SyhpCnpKaz81QHl+aHwrbzNnciE+VD9meEB3VjZ3JGpLcHQ5dFlOK1d1O0dsYlJmNjFvX1VJdlJa
K0FOPnl1cnN2dHs3UAp6V0QhX3UqVjVaMXhvM0dJKyhmfkwlNVZsKDgyOEVSUn0peyorU0dsVU8r
OyVvUjRwfmpBKHx8S3hTKCFaYVImPjcKemooWndYdHRmbUVXeTFqKWpgTnlHXlgxYz5yZyolVzZ+
SFcxX1F6VmlLRTw/NE5QLTU4Wis3Rjg9bnMxREpRMWdPCnpVUl5gJi1ZTEFldkM+QChxQlc0YS1K
VVpMVX47X1ZAO0wrWHU0aCtXR1M9Y05UYEsrV3RzSTdDWG0qfDh4RVNDTwp6QHt5NjteR1ZoQXZR
Yy1fJCYpKy1nZ0xMai1nRUlMKElqbW5WKnMqcWZfckU0cT4/IzlgQVpOQ3orPm1adTc+XiUKekFO
d2o1RzJJUE0lfHVCc3E5O0wrJUVPWGFsRElqKjBQJFgjMkNMdipSXnwodi12KC1Ta2lsc3B4N2Fs
WW9YR2Y0CnprYC0pWTBiZHx6Zik2O1NRbW04cmJxTTlrTiF7QVZpaHJzKkxANm0oRGd6IXxrRlJS
RWN5Rih1aVd5aFNSMlhEVAp6MGlNOGZVVz8pekhqM097Pkchcz0+Q21GRyp2JVImJCgzRSVEIVo1
JEVKb3FldCNKMEBPLVliPnZSZ1pveEoqRWQKemZ6S3hkO340RSYhTWVXc3d4NXwqdW52V3dAMns0
TyNnQGtga3lec0MxeCZaaT5EMlk3IW5VISlCU1EhaD1WNXAxCnpJSVhYPEtARnN+P0lhSDFsQl57
dnkpJUtlYShVeEREUXFuKnJudklGdnZxaGA4Vmd2RXcoQHU/YSFKbnY4MSolTgp6e0ZSJDlga1Q3
M2dLJXp6KmJ6PXtHQzxzbyRASXZsVHdQOVdaUjM9WFMmbCY8MHVRazBEKXpkVGs5UmFTKT5ybkQK
eiNOe1Q2Uy1+Tko8UUBodmYwYX1jK0ZGWnNwTDBCejd6N1pVai0rKl87aU93Y2B6TG08cF9hYFV6
ZWt5SHN4ckhlCno5QFVffUEtUnd9eXZvanUzVF97SjkpUTxFSlUwWTRPS0JWYChpQ05tTmUpIUY0
Uyl8SEUoVVktdG58QEZyRWV3cQp6bFZvdFhSKmFOSkI7O14yb30hTHVSTlk/MnZjVGRnP2JPQj4z
dnB8LSF+cmphVzZsOFdTK2k7fjd8Y3V5NUo8XjUKeiExUyQyejt0TXAzfkB3IXluJlg7Pnp+KH1m
QllrVWItOUApZyYySUlIZ0IxfEBzSTBXR0B6RVZSeWtjN3Q+fXotCno/aDt0UVV5IXFYLXBoXiRe
e0Q1TiQwRWpMRkFEWlF0IT5BbitkJkk3d3wzKyY3eS0rWWVYKVR+a0hjMmlGT3okZAp6eno+bXpL
VDVTWUMzbXBuZ3MpWkZEKHZVQ2hqbisoen0oPXxIejs5QGs9ciVhemstPEI4LSV6bTVOKXx3JC0o
IT4KelBBZmZwR1FNbWg/UCNqdz0zKSpPc2FCQGJZM3grOD5fVD9ze0VSTEMwSzY9QDFiNlJONEQz
YEFUYmBBJC1XOFpNCnohYTNHaGxNR308Q2omVT0pM3J8aTU0bG5xclVgQSg2VCR4ZzQpbVRQb3dw
JWlhV31Va0lwWk1iQStnZStaS1VLNgp6JGskRCZYbiRxNWc+N1BLWEpmUnd4TUloei01bn41PXJY
JFFrJX1fXjAwPj5qe05qYGA1cG1gK3NmNFd0KH5oUHQKejtFRiZVZVFCJC1IJHoqbl8rSWoySz4z
VUN0QiFOQCV8bWdaTmZhXjRDeW13ayRZSzFtbnotVUF5KVU/WlFueFFSCnpCUVo5QyZuemkkcW56
PlNUUVRTIVlHcDEya0dLcFY7RSFUKXBRVD1wITU1Yml3OXVIdUs0K0pTQ1F3KDh5blZaNQp6Y2NK
MVRkdDhzSlJlTUs2bkp0YGdpYiVeZEc1ai1LTVcyUmtYMVF4JkdfJXxSZ0IoaEZgaT9WIVRVdisx
XnM8NT0KeldzKWcybDc3PTAhQEMoYzBJeVNAVEZkTFNaXzF6R2JrZlZLKUxpZ2FOWjx8PjVYNikx
T2JXWmYkO0VhbjtHRDRuCno7P19WNWU4U155Yyp4QCh3TztTVE52R0w4I0xFSyFSWHxDXm9SUjF+
SkQqeSRpS058PTlQLVJXVzZkYiZhfTZxPwp6JE4tI2pUYmMkJE0xQGliJFQ8R0IpTDNZMHpEPz57
bklxVS1XPGM1RkE5dlMwOzt2MCtCPkhxdkVydj0wUG82TnQKejlacjNJb3Z+M29MWDREQnhlRzY9
RXBffkNhQnw+ZT9aIVJ2bnBQckV4TGtJfkFMbGpLRXteYkN1RkZgYkRzVH56CnpmX3J1QVJ3dk9W
b2ZfZm90eComTE54fWQjK24jeD9LQ3lSWHpZdmFCUztlJURCcSQwQSQ7V0tkO0YmXjdIVWUwMQp6
UGlwOTJPQGUwPXVhPVJqPCttV2lIPXFMP2QodDMrVFE7Oz9ENUZlPEdHfmA+UUojTSlQUDE+OW1o
Yld+YG1FekMKekduKl8xUkE8KmNnKzlAZyRzbkN+RS1+TmJfcFFqUio7TiY2WlFXUylafUhGNWo8
c14kN3s7OHwoT1c/R21vS3d5CnpZQnclOzAzTkBFTz45UmV5NEw+eSl4e2J1ejA0U3VFbzkhd3pD
Z2RiTW0lR19ZTzM1eDxoKT1pcT5NPSpiREhRcAp6TVE8amI2YGlge1lEVFAjKiFrT3xXN3tMWXJB
T2k5aiZuUl9BMzlVfSpeRylkcylOb3k1O0kzVDxvMW5Sd30rUnQKel9Jb29ILU9NbUs+JH5MI0Nt
PlE4QnF7YC1hbFRiOCtPTyk3YFBXaTI/SGYtRzY4eC10NG40bj5UaHFLWWJ2QWJeCnpCRWZEe0k+
ZT0lc1VMVV9kWXBGU0hDKUxuJVMpMXwmQ2w3VHY0PD16NTtWYnBCPHU7Q0AjfEhVSHZGWFNWYjsx
Qwp6Xm58dyhDQ3JUckROLVlOKjt3YzVJUjYwYVM1PjY9THJjQE4lfGAxflh7RVdqaVkyaXlWMkU2
fUUjP0UkRkBeJnAKenNUQ2h0akQ2UGlFfHZ6UlgqOUd2PyVFPm17e1YwVzJQTXk2WUdpVn1GOzJQ
THlhVUc+dUJ5e1h1KDtNMlB0JXBJCnpDejtrTCk/UFFlNUNIViphcF9RTXhAZ21IOXlAaTRTc04p
WFc1PD95SWBWc1QlP2BjaDtiTU5SSUw3XnNjdHI3Qgp6RFk7PUxjKmdBSGBldjVtKXUyNGNpcCRP
ZWJvTChnJmAwNj57WmM2Mkoze2dYeiZTeWErbz1jaXF9OC0tVXJEeHQKellwVy0+d1V4PiVrY1Y/
KUJ5ZS11c1pMVX1VenJNb3lCeigqajNHJTJoVGI8MkkqK1hfelJPIXhhP1p+dS1XPndeCno0fVI2
S2BtKUBeMEQ7bXVuMXNYT2FEOGByV3x9Ti1GTT0ofVY8JU5zazlPNExsM1RhYXpJIzswUXN1T2pr
bGgoNAp6cEAzWU9VTnp4fS1NYyZpU3w4YUdya0A/bWtqaD9CeSNPTnRmQmpXKi1ZY2xeQXdAR3A4
SlNjOUt0S01XUTV7QmgKek1UU0xYIWgpZ0hpfkBVNkR3QlQoITVUNVl6cT5QJFdyXyF4OGNvcmhq
PSp9PGFhcHo4aCF4fjdBdmckeHAxbXNVCnpfVll+d016SSE+UnloRDwqNTtDXzZibDQhN1BeMkZ5
c2lTREw7ZSgxdUlhO15CWnJqZCU1dXxiS3IxQFAhNTVSZQp6ODZTbDtHfXdPQzx3PFpPVHk4OCFM
eXE7KllQdVdnNWxZdlElN1F7dyh7NFBzOE9TOF9wS01scnE/JlhWZkBpZzkKelpvfmZvdGRXUWQ+
QmYxYjk4eyRYI18hUHVOKnUxeig5MyVtWlRGfDEoaz9vcGJ3OGc8TyU/e1ltVVEje3BwaHxWCnpe
ZEo3YlNFVDl3Nl5Ce1U5eyZKV0B0JWpINihrRF94Zz18Yjd6OCVlN3tTalJeJWNUdV5CeyFEWExn
ZVllPGhTNwp6QmFrQF5MRnw3enheKlg3SHQqTl5Sdms8YHJTQ256dWJEVDhwKGFWPCRkRVNEb1p2
QzxrNWZ7I0FLSlEqZms5QXYKenJhMCNtbmcpWmItJFF2TnM9R3l8c0dpYGVHNGpTaD1OLU9hNTcq
TUhYOzRMSEpsYyFnP3UpIUp0XyEkNyVlYH5mCnpUKFhxbj8qOU4mcmt5I3VhWlBBYjNidDMlKyZL
alRuQiNCWkVJUSEoZV9Fe0N1X1RobUM7ZyNhV35+cmQrM3hLVAp6cklBaCpsc0E/UmUme0VJZm18
fn1ufm8qN1FKdylAOzsjKWdRRkJjU3I4IWY0dE1XMmRPb3MhRV9yKXIoNWhed2MKel4haW5BeGNG
bjAyY34kWjNgcGdQM2NXQjVjMzk8M1RPIVduMSVxSWJfWHpEd1QoUjd3bFlgQWRUOyFHSU41NUte
Cno/aCYzbmNKISMmaj1HNXxKZG1eUyRmeGdtUF80MnR4TlQhZmxiRUF1VntsY14lfTxnSXNEIXBs
QCh5WDtFZGdrPgp6QSlVNlVEMCs0R3I+KTM5MFAxXnpSczUlTCUqc00zPWNPTXN2YVozJXsjOHcx
S3tRVFh3ezJtWil5cWdwNWAqJD4KejFwTFIwOy1RUWljdzJnYSZERD5zTC12O3syMlVNKj5vKGli
MChSSnUpP1kzOzkzOFQ5SiE8V3xYb3lTV0J4UUZWCnpLVDQrQD0xQmF1VCRTbVEkUTB4dD9SUjMk
K3JCQUVQUyQ4IyZmMXFFeHdfTmtPVXFrX3g0RGV2VUlffWFBNWNkaQp6YC08KGdGTnxJeEBlUXE/
X1R8akZqcVJqbjZ9cHZ6eDBYcHxRLVA4fVhYbnM/K1B3MDFlZHtXZHc0TyshWXN0MjMKelg4OVFC
MXhIYFVudzNmdVh+fUE3UFBFe2hRKXgycilGeWp7a1Z0O15OTW4oVipSbEwwQG8kMGNDJTNXalpK
cFJfCnp5VFR7RGhDbX5aQkFfbmVqbzF5eiQ4VFBoO09WcUZ7S3E4cDZAVHFhZkVlVG9HbW09Q3km
cXswV31VcT5ITiNANgp6VmR1e2pwUS1pVmlTKGE/dzt5VjY0e0lPa2NDdGVMVSlsPnJFTm5uX1Ik
ejBDPWk4MWUlbHVucTtoaGh9bndGZz4KemghU3xCY1c3PWJTVnxvPzlmMGleLWQ2PGshT3M9cHVZ
Vn1xcTBaMkhXfCs1KnlvTmRKPj87fkxEd09TZGpvWktaCnpvcG9+PCR2YWE/cDYlZm0oWFp2WGxH
eyQzUW5zQGJOaTtWPHh8TCFtITZYY3ZvdX1wX29gO0lUbFQqK3tGKGZ4UAp6RWg0YzMqYE9YOzY4
YHtySWIpbyFRTTcoRjx1VTNLMm05bUBJK01gVmh+e0tjJG9xPjc1Snd+RlRARGpjWk4xRTgKemps
M2ZzVH58fXpyUFRGM00oMG80Wllgd0hWLVE9M1NTU2J5QVolM3xqIzt1dl55aCg5cXxofjFpTEso
JntMN09JCnpPKVJtKk0ycFgyZGVAIWtKflF6PTVGfm5UclIxMHUtTTd3eHBEb2FEe3pBSH5KNi1W
Ji1SLU0/IWI1Vz1yOVJhTgp6dytMQkZlLUJnbWlwQGZ6eXt3bUcoNUdJRSgmdFVMKkg2SF5ZfCZ8
Mmd8KClzWExXbVBZSzVZLW00P3ZBcWNIfnUKem9faDVhYSFxUk1OQFNZRyhXOURqVVNqQjJFKHJo
LTQrSHt3YHVERERRdF9SJXhBOU1OYjFtTWMlODx5ezd6IXxRCnpJJnElYXNrS2RhUm4tbTU8Jm9h
dk1Se0kzZz1TKkpWMWI7bUNqKlN1NiV8RCFgRVQ+a2FqZ1dMWTJXVkdeKmMtNQp6ZSQmS09JeGQ/
bUgrb2pIPVNjK0RhNF89Y2h+TiQyXmRSSjlhZT5wKWtIaldUTV9HbV9YVmEjJncxcTZ+V3tvXyMK
ekNPYG1Ia1NgNCZDakB7cXBRVGpTezFmOHNJPnFtR29pNl4pI0A9N0MlUVVraUVOezNTdFdAOX13
LXZfUi0kN3xMCnpsRy0laXlPKylSK2RuQFhmSVkoZ1JPbVFxQ0RRKFhpQiZOKFNCJFVvUntSWl9Z
JVZOcVdtKGItTU9PZyV3P01Xcwp6S151OEpSbDhAVVowUHMqVElJQnMoWj0jWVdKOHYtQ3doVzcm
cDlMSEotaHVZbiFuWF94d1EkSj5FKVRFYzQ9P3wKempGI0xfemYpUztNeWNWOE1vRzZfI1BUfFdB
WXE4cmNeTz1NKzNEQnRxRXFMT0hKJHdlb2RCcG5TSERfKCtfKDJ2CnpwMTxUdmQ4WFE0WUhxck4t
MDYrOTRmajdiX0I8U3hKR2RqQndWTTx8V0VPRFJuYTB3XiUlZVY7JG0xRkg9QzZOaAp6PT8kYmAt
OEclLSNVITYqd1YldkpYaTUzNztPODVMO2x+XnZefj1GXz8ta0h6YTJ4PUlOOFV7S19WQE94PVNl
I3oKekN0NEt6YE0pQ1J5TCoycnpTT2N8ZkR5WU5sbiRKOXVBZmJkTlZDKXR3UjtQaHR1QyRuXyt4
RiNTcDM4VklPQjBwCnpHQ31IaXRgPEFIaUBCSks2RWVidWdnXzdnSl51aFJuJCs7bHIqU1QhMTtj
JSZHaGpVTzA8K35LIUVkMClVcUVXKgp6V31pPCgzX1YtVSYjdT07WTJzfkMkfUxYVEZBaEVKek1Y
TXY4I0gkYW59SSloSz4hdn0jfiMwMCNDVn5EJnNTITsKemx6IzleIXlBYkg1VE5pcSYwUVdwKERm
JDB3NFh9OGc1Y1pGN016ZT9EVFd6ZGIxSSMkX2YhTTNaY2F4JWQ4fTxxCnpTYzE7VHl4NW1qV3E5
UWhEemNTMDJ1QX5IUHpsZCtONDtTY0c/Wkx6X19OWGQpfn1sWDBEP0Nwal42NTZHXj4zJQp6KF5S
fWcreStCUDc7aGR+PjRGckZgUlVmTnI7Z2V2dCgzKGliNmlMbCR9QU87MjJfUl5gQSo7dUp3PDAo
Xz5LKSQKejI4UVoxaCU5VnYrVDk1LWxHfWpKTjZWSVQtMkJ6RXJ8VkUlVCY9YS0pfUNBOFc0eVNH
IVhoflVvVHBHblQjczdXCnpEdjNRRmhINngkdil9c2VaRnFaN25AcDFHJF93YzI7PCFkaDxCYGlP
eU1BR2tKQXlkRCRGRmYhP2UpQHBLXkM5KAp6WWFjZDZSVzdsVEh5JSQrcFEteFNLUWRnfiQ4I2Np
YUtmV3hHTHdTcFNja2BRNF88MW16NVY1O3E0d0tnV3hRYUAKel5EPjZ9ezFPMWApfXdvPHlSJGlC
SWIzWURPIVlsVjg9VnNGYVhpYHMrKnA4aSFJPkdHQTFPUDRRXjZ5KyReMmBPCnpPU3RaM3lTZGUr
KWFfRHVqR0xpX0E5YCs0dV9HbHc8JD5VZzRfY3FhSChDWTlocGpjTVR9eE0mVCFASVNxUEAwQQp6
KHJufWhrODJWIWo5fTsyaitLdmpYNz9JPmhfe0gjPHw3R3JQbWR0dlVeWVBQTTtfRnVzWVFGc0A2
ZnpQQ0MmMkYKeng5OWxfWkt6c0ZBWHwmVTZsPEpFPCZ8VEFOYHRoVldRPXZzR2BmJDdwNlh3O0Zj
OE1qaHpVcHYlQnM4IUc1ZyZDCnomais8VyVTcTkrP0hjV2B1ZEtlPCNHKjhFR2A/cjMmSHojfXI+
fHFqcjYwN3wtUH5CQ0Iocz4kJm5AKGZzNlpnIwp6c09NPz1qUVdiek88bFdlVj05I19xVTRkUXF3
M2MxcUo0PUI1LTxnMm4mVTRLIU8yaDsxM0ItTD9rakhWI2FlfjAKemhpMXw0YnpNNT1PcSU1aGpf
VDI4bms7MypNKGpUQjttX0J3Q2IrdztTdzdvIV9Ien1vK2BOdXJ1PyhAb1NtWXsoCnpDKiVWRmJK
RDVtbytRJTxjb3hEfCRzYVY1bFpGU2M+VXZaLUROUXVJX0JaPE1WTkp0LW4+eGsqJUdNRz9YQkZh
Swp6JEI3QXpILVAtLVk2VGxxZnN4TWB0O256UnNXZUg3JVhHSnZ0ZyVMcGlyIy1HRUpDUkhoSkV3
K1J1X1JoTVFOdk0KeihjTWltU3RZOHBtbDBjKmZfWDs2QH16KXF5QzhjNFlOZ2hANnwqRWF1LTt4
PHpuQ3AhYz80YDNgWm8pTE1paylzCnpTMmJBUFk3KUpfNjUpIWMycXYxbCg/TjhKOHFXSVc7VWFq
YW0+Nzsham1YNHEwQVRhcUBVMl5+NT8jcjVBWjwhagp6eDg3eGclYDhZRFpOP2FYY2ZVJT1AVElu
eWU9WFlUWkZYPFdhOz5DI2Q/QFliMXRjQD47Ml82MT1qbF47WVJ8KlYKejdOTSY2Z0kxVU9NJCN+
QlpET19hNT9oWC0lWjNNRiN0MFpjSD98OUxqSEtHPntlTWh8UiZie25VMEoqVDBLPU80Cno0fnct
bXo0OVdDV1NTcURXbUdhQDJWeSZQQlBZMlB0OTllfmI8SG1DTjdVaGhZbzlmciV4ZnNzK2FiUENL
PjB2eQp6NDA7cGpFMHcjfCZaKHRvXlZfelpaKGNedHdXfn4kIyNEM1dEPmc4Q2pCKDkjX1Y4Uj1Z
RDtyOHMpaU8wQ1JaeGIKejVgVHVIKmhYSWFjRExTaU9CV2NXMjx2fjZ4OC14WXckeCNfKDsle3lF
VFJjKjZlPE8+RTImWThmPHtANkdFWEdhCno/ZXg3dWAlKzY9VHtaYGVxYm5tJGMxOCpRRSV7dHkp
U3BgOXVrfFp0KWFCSD89PFVBRjdCb2x+ZjZ1VW5EbEA/Ngp6KlJNNWBzQXxRcFArUEB0USgpZSp1
X1NAY08qcWhCWDY/Vlo4ZFN8PTE8MDRYd3g4eTdiezszTihrRStlTHF8KS0Kel5Odlpua3wjdzI4
eTUheWs8e219TzBCUWwqazNaLUw4WiVXMFVRVW82RlAmP2xnQnxecTtreFd0Pko+emtSTyM/Cnpa
YXNTTyRnSyRWUz9zazQ/cnohfWczMjIrTk0rbVVrUWpTI1lnb315X29EVW5YOUxFe3RVYUFnN29v
UmhyQTBoJQp6PHtObEx4fmooPGBIfG10TSolP3RwST1jP1VhU3pMaTZ4UnRhVGU4T2I9c2cyKUcr
e0hXQSY9cXd+RyN8WkVPezcKenQqIXcxLXFQNylDIUNDc0dFUk56PD9pUV9UX3coXmV8MD15QkY2
a2hrYSNGbWxhRTEpKE5kTjlyMSRrNXNsXzxNCnpWeiNRMVhfMShvLVZ7aktPMz5oZnRWYWomOW1Q
ZVlaMVVHdVo3cE1wREdZeVRaIXBIdlYwPyN5R2xRT2MzWVN5NAp6aFRgaHRPK2hEfmMrZHhYaTVj
V3BMOXtGSXhFVE50UEROOWlTSEpyX0hyNlZJa0tEOX1WTHJKaG1pJGReTnxSYmwKej1DWHtycVNP
MUk9cyFAP1RKcVUkVndPS0tOSkkhJkQmeVJOK1BkRWxfJHw9Y08xaj5WYnNhJWsxcjIrSGtfWEYl
CnpUeiktMkQmXippPnJKfUZ6MSZmfTwlMVdNYkEhJUdfVngjLTZ9dHdyQms3X1d0eDRzR0kmVFdA
JEFOKWAmSWVwfQp6cVkkYiUjeFomYFQzKjNVUE5hNEczSChkcE9YUnV4Sj58dXlvRTAmfTFrdD1p
NUQ4e3ZKUkJWSyV+clMyJEFAaU8KelJrRlhGQ2V7JFVBUEZ1d0pjR14tZFVeYDBWRF9Ve0ktUyVQ
VEErcUVhUnVid1R5aD4lMCNzI0JKQkI/NFM4WU5pCnp3Nj5XN0wzR1liI1ZtcVZBZkpfaEJMbmgx
R3Y1YEBRWjttbmNVXlM7bldCeyZ4a0BSd3d5I2dTTG97bCQlZXFfWAp6ck1iVjhnbXpydWNFeyNe
bTB9NjZ0WFhHKk91fEF0cjE2NVg3MEpWVUE0PDJYK3N8ITEtXipgdEp8aVkqN3h6KnEKemA5e0pO
YnRsa3R0R2FLNEZaRmFyd0dpRjtGKlV7RWllSCl+QnlvJnFBUmQxVGEqd2w0YzJASCtwLXowdEcx
Z0NHCnpGe2hVUE1ZfiZUVFdIIXRDaEolVFJVYFlQPU4kR09EKyhLMitAeE0mN2pvR35rWWdVNi0t
azg1dD5fbVRSLWtsVQp6S0pqTlcjLUltUVNCYVkmbCY/LTBGIWV2QlRDbmdeZV9eekM8O35HNT88
NHRVTXtJTW5YSysjSipDd2dnPGMwZ30KelR9Jms5ZXxLMiN1VGd2KmJFanlVdGtZXiVkVlotVSso
UWstdmp2M3JVPSltITRncWNsVWJ2Pi0qKTgrays+dERoCnpUZXZwJS1nNmFmQHNZVGFLK2J5aDhM
bj5ZTSUxQl5TX0BnMyh9IX4oTFB0VisxTVFzQiNkVU5kZnVvKjlqdj45SAp6a3khSzd1V19HV3JB
bWFgPVl6ZSlNLVlAZmx9UEJCKVpoM1AoQEdFPHlOZTVweG5tUFpCQTgxSUw0aEgxaFh3Zj0KejFv
MndCRWBmMmNYX0JNcj1fWitfdmFeRzV1KEM5eytadSpCQyo+PjcwUUlqdnYoejshclVGWkVGPWRw
TVZ6fnZCCnplYkwqJE5+eDs4c3ByUGcjKjRqcmtmNHdjT21gZzlfQkd9MXhlaXQ2JWlkNkpifi1E
SUNfSj41PW9CfXgyQEp7egp6IWh6OU9BUThxaD9OKVRISjRlNWlMM3lqbzNkMGgjR0RRYTVIc0Et
Q2NWdk8+bGxmRyh1cChPQlpgNXQ/V3J0NloKei01fWg7OUY8K1VEZ2ZvclBCPUJqJiNUJXMpPzxh
cz9vYy0+eCFPSEE8TTYxYjhrY2MqKDh7ZjdMOHI9QCpoejBiCnppbTl5SEdEbnU8PzklVHNGbTIw
Pj1PQzAqJnVYS2xYJWs8bXh0ajFtKjk+SEF2Wnore1hXVG1EeFc7UnJ3WCt2OAp6Tml0YlRCYkFG
UnZoV21qQiFCZypkZT5RZjFIJShUVkhjWVpubSpFNU0laX18UDt4bVRrZXx3fS1yVFUmZyh9Z00K
enlgQHl0RXUhPU0zcDNlUi0pcWt2ciEhMTtuSUBDJUs2SGgkYW9oJHh7S3dlaHhtJD9zUiNxQGE8
flNLNDZ0TSpLCnohMWZobz9+X3QjWE9gRk8mXm00XzhpPm1gcVVYMGNzflNyc2pQWDJFbXtmOS0x
fTBVezg1cWE7SEJ4U3koKU0zKgp6Jm8td21CWDV5Y1ByaX13O2ROLSROTkUyNmMlYX44ayZqd05w
WTBkM00rMiZhVXpuN0AjKDRafFI/fU92KDs+YlcKemgtZHBsanFKJDJWPF8mZGRWZX4+aSZLJila
JWpyT1MtRHIqSH1sJiljb2F0UmxXN0V8bTZpTz9sVFB1Jj1AIT5FCnpAWlFlU1Q/YjJ2PUlYKEw0
MGghRi0zRHtlUnp7MCRiOWhnYjRFOVNQYSl7WiVKcUYpaUR4SSV+WjRKSDVtJTR8Uwp6Rm8oXjc2
JDVXPiRsVVJ0VEhwQTh0eXQtbmxRR2d9bnBNMWxOaEZTNGYjNilUI2djRmQwTn4pYENhITdgakdZ
fXoKenI3MmFaMi1TOXZtZ1JldXpNQTR4b19sTH15dGdDbUV3bzlHLX5mTFM+PD03dXRTOFhleUFa
Ykk1X3dxJDU3TkMpCnpOWXtKP3N7QnV1RW5kUjwlZmJrZ3tmTUhMZHdGRGhxPl48a3N0RmorVHBv
aDZ3WVR0YFRHcGJMKjRMTDclVyl1egp6V1JxZ1p5Tih6eUkwU1F5QG1FVHRnWEReOUx+U31XV1Z5
TmV6ZjsxKG5JczUwdV5nVWleVl81ZTwlaHtValFaMVUKenQ9dFhkWjllclJqU2ZnOHU/S19Gd1Zn
fUskbnBHJj5BRSg9aU5OT3ZwKl5aZVA7LVZ8JkQzTG9RK2U/cjJPRWc+Cno9fmJuNThRVDg8ZjlB
JDlpWCE+NzY0IUNZKyR4cGF0YjV8NFZoSUdYO34/fFduZGQxM0M1biRxOE5na248eGZ2cQp6dDJe
MDtEPG96akp+UShVe3BuV0w7QHpOYDwwX0k5dz58MWU8NT98VDxYSmZUcTsmZXl3eTg5VzBeayE0
MnRQX00KeiY9QVFrMmA2ezFGLVZMZkJhT1dBXmBfaWhtWEk3X2swJTJhOGNVdG9LVDJfMDN6Wmgr
K1IoRUNPczl8IWRWKTVTCno8X2QqRDllcFkkYn4hbCoyWkFhezxSZHZKOFE+YUxDZiRTMiM/azcx
RCFgUT0wemdANnRMJjV4S00tb2ZYJVplfQp6Q2o7YE4rRSNyKnN9Wl9AO0hzV0U5UTNJenJCKC1j
JD9QY0Z2ekBgblJxOHJaU1JlcF4wNmo1N2w0e0klQiQ8ez8KenF5PC1RM0VSYStqajxhITBrZVFR
UW1lMzFnRHV9VSZTXjBEIX1SSXlEV18jJlpKQDwpTmkzbmI8S0N1Kl9GRX1kCnpOU2tUKFFKPSE4
MiNaU0tXQ2lHYnNwX29BSHR1M05rPEQ5KmRKVXk9PExWTWgjJHJPZEA8SSR8bHVOV0w3SWtHRwp6
IXFfNkk3Uk53RzYqTndjckl+anpKYWJVfSl1NWk1azBpdX0lIUhISHJuMCFYdzc3PXEpPTZXVTdG
aU5WJm5VcDsKejVQZDx4czY2RkQwOTdiPiE1YE03VGI7MjRoPXM7U1QyZ09xISZ0a20mdDFGdHt7
WjVCWXJ9ZlJsZFp7WHNRJjxICnpUYGt2e0hLSFZtRHVvLWVwYnl8KUcwIzQ9PWc7Ql4/cnMrMHAt
QnV3RXdvPyhwN2BtPnRSciQrM1NlekxlempnRgp6RVVraTJiUi0oV21Ldk5CPHlKPVpGKlJ6bT1Q
VElnVzRsWSlXcytObnFUPzgyJEBkanhMbGd8ZnRgc3ApJGVHPXsKekBFbmlFeHJIJlJIfU1udFE8
YD4rdER9KEpIen5tdChBQyMwTmFwVVlkWTZaOyhRT1A7N34rYVhTa1I4VWlUUihOCno7Y0h1M2o+
KUZGaXElJFZBZXJLWXFkWUpVUlk+JiY0RXh1UCR2YiYhcF9weXtAI3xZITdOPlY+MUNpJGFubD1y
JQp6MUF1ZVdLaik9K2IrQShBYnp1SFNidTQ2Z0opRVFTSnRFYnZ5ckU/Yig3WmRobUo5cEJkbnNa
IzFKSDVwVHw5YSYKenFQfDxqSTwlSiZGPHAmfURIdj1ZZXV3SFMlNT17YmBDZTxXUWdlfW0kb2Ah
eCgqN0hLVlQjYDcrUkU/NC1gY21UCnpgKSNDLS1EUTshdXg8aDVePktteXt7VSpAdVo2RjdCQDZs
PG8pV2VldDVLWSt7KDJsMCZZNkQmK3YqUSRBJXItMQp6Kn5zfkZJUjV9OXdgUDA0NVZnTGNkd0ZZ
Y1V8OFN9OTd+dVhQKFQ0ZDBOQGpqYFJgdFp0TjRkYkB4UDMlO0xAfjkKenQyPzZiK2dzYlRZWXlV
RXRNNzxeOFA1YkAwNkYhbDh2Vl9kcFF2N0czbXYoKykyXmgyaDFIcnEpPClaZkFkdVBNCno/PiVf
cHh8U2xNdn1GeCNfWj9CZVFxYCl5P2YoQSY+KEorK0BVRGhxaSYzKGtkJUsyXztKSiRJY19BRDQw
OTgkLQp6Vk0jNXhjZzxsfi1DSkpTIylleUhFK259PkdjWk1zSXVLNGMmdHZ0aXBBNSZSWUZidE5H
aXVYVk5SIUxDbH1pYW0Kek5lViNENHtwUGcmdVg+ZlBYKWBOI2lQWSNjYyRPTnM5TUV2bXVTR1Vt
ZmljZFFQQUs1YkpMM0dyQk9MM084NVQwCnpNLV4mdSl9JmZWYllJb1g0LXgxJEhuJFE8OEAxSnxH
Tz1qblg/QkIqe0tSOWdzcjBPOyl+ez9lR2pBMkdwTzxYeAp6ZlY/VlZCJUUjfHJGUzNqbigzQ2Ru
ckBwZW9oUkckKkxrbipPflZMdjZEQTYqbjg4aGlWTk9wfD5ydmg3dyUjSlgKemt3PUhFRWJYQyVM
Xml+O0Fwbm10dz8xKzVqLSRVaylYSCpGd0NVO1VpbD5GNFFGQndOWFh3bTA/azt0QyUhJlAjCnoy
IVQoV21nZyVnYkI1ZDd3QFNUeEJJK1gyLXRIfHYrVXZ7dFpldnAlTl9mV2g+UTI9PmRZXmpjbTJO
QnZqY3J2Tgp6TiMmV0AxMXc7a0s0SGlzb2JqNCV3Nk5VVk01Xm1+QjlkbF9pSCZkdU5acihXWDFa
bDFiIzEqJnhwezd6djhlaGcKek8/TVRRek8kc1g0cXRxUSo8bnh0Q3dtcTQjcytnKVRHcDkwK2Qj
NXZjSzBHTTE5Pygzbl5iWU01Ji1HaXlYX21wCnp6dVVUQXh2Tj4malhKfGh3TzVpPFBkeGRydj9P
SDZkWSUwR1c3bXIwRllUXnU5dyY8cDh9UTdtTlhgeUgwfFQ2bgp6KWV4QD1sXlJifURkRE5waXNu
dDx6SkB6Rnd+MitGJUs0PkFKWWA1Rk4zVysoVENTUXt4UWJhYFpMK2ZrUTZLPTYKej9zNTg3I3E+
WWZRQyZSRHUqfTBJSE9KMCFLY09lU0Y8QiM1eTN8YmhVR2tMLWEmWFFVZlM/Ymt7SHUzT3JKPV91
CnpRY2BfaVdPZT0+QE1nSzw0TjRlbzlidlYmYVRuVX1XZjRPZEtnM1VOMHM3K3V3TUQ5RjdvSFE7
cl5+T35ZJFkqJAp6c0xab1FTYW0yZGhFd25LdGFhNDlLQCR8YXlxNFlfJWpPcCRqeCZNQmUhdEdD
Pk5jK1RDOVdydGsmb1piR0NoNSgKemxBU3R8byZEUHpOXnM9OEk5ZDdJQDszRCE4cnx5X0ghJDRs
OHp1b3ZPQjR+SmZ1RVFTc3QhN0VlZD5lQDAkISFFCnpxXzxKS3NkK2FMdFV1amZLdTtaTjwmS3Fv
O29GTlY/SmFIPU5mZ0M1K0dBRXBHNlFfMWJ5NWliMDI1bDstU3FkQAp6SHJGIVAlV1gwXjM0JnRf
ZkRUU05SK1RCaXc0MmsmbnBrPHNeR2tvdz43ZWtBaT0rTFd1RG5hN05ucFVxY09JVzkKek4jT3V2
WC0zKXNDai1+MXN4ZiNIJnMoeXpgIT1QZ3lzJGk8KzdtM3AlZVJhbGwxOyZ3a1peWW4qJTxDPzU1
e3UlCnpYWUgjY2pnOzBHS34tZGk2PE1Ob0JiUWNaQnhHWUoqUElJSWQ+WTtnenE2WHRTYWhAMnJg
PjJvSGJnODdqd1o7Rgp6Y1Ehe0xqQzhKUEt8eTsoY0tyYFZAUmE/Vmo4VUMxdngzZk83U2x0d1hs
X3hLPmVscm9jVSV6UTEhaTVOQWVQMj4KeiEwJH1lSDJwRFYoZUNXN1pSS1d6ZWRJSD88d3B7QDNk
ZjlzZmYpMEZ5UkJzRWRUb2I9elI9byFwKUs2UyZBZjY1CnpmezltbSlTUjNTaHJNKUdlazhXQlgh
UTUre2tgMGA1JnIxSzU9el5NJkl0NyMkNkR4fUNDcj4oezR0ZHJMe2UkUAp6XjhXeE1wVnNjUXta
ZThydzZTRm43Pld5VXlBUkFyWk5zbWpeJipvLUBjcCF9emYhb2l3aHFjZU50Y1EpTENkMUAKekte
JDsrJCpPd1pxcERrSk8/R1YoR197PlV4Ty1uTHB+KFNNb31pclA5KWhWX19AUS1zIXoxYUlrWHdj
MjMxRk1LCno4X0NaPFBIREpHb2oxdiV7NzlaTWw8SG9qWnYzcnBwWm8pKyZ+O1ZPSlV5Pnp4NnZp
bWskRUM1JXJHaGpYK1M8eAp6dEslYlNCIVFmRDxFPno2Yko8SSVpPmNjQkN4JFIhMG0mflFCanFv
UWpFd1dzaiV5ejJBIX5xNSR8Xkdlc1ItUGQKejBRJmRHUHB4e05md2FGNGMkKEVUJVV4JnRLVHR7
SE5UYXtDNGtTbCN4aHgtT0FST2JeKT5VeTRnZEQ4ai09U0RsCnpeX3I/T3ZiVE0yPDxSN3tlUkF1
Pm4pfSZZS0pQd2xoO21nRj1ZcSVaPGx7QX48SWY3fXt1emViUSMhNGt7Z21KWAp6QzR9RTNQNmw9
cTtEUGkyZGtXcTdtRW9OaSFgQW1VKTtBV35tQmU/VHdaKkp0cU8kSCVqUTl0VXtvSWR5KkFaYGcK
ekY3Q2g1MUkyM18yXm5LVUNfcGpTSitlVUxfb3tfZUU/VmtaYnpPaFYrMGN5JU57clU4WFNJeEZH
aW55LVVpI012CnpjWmtXJXBVZTUwZVd0QjxyKDg7dyg8SW5VdX1aKWI5IX0lOEp2a0B5dVQ5Wj5T
KkpAS290JHUzTyljLXRreE9BMQp6P3BHdzc8TD5zd09ASEJDNGZQOFcpXl4lTmJFbE9ZVEQwQyZP
IShjdURVIUp1PlVocztwUlB1NmxxJUQqYHxmRjEKekUzIzY8KWx6U0wpeFB1MUI+dnBJdzRVUE9F
PFZwQmZJWSZnVjVnMS00bDhRUSMxfDE+WTMyPFpPYDdoPSNNfCMyCnp2N0FQN0g+VTJIPnheZD0p
Y0NXKVNLMjFHWik8UDtvT0crZj0wJHlIRj9ETnc8dmhXSSpNcEpJUE55fTBgeTt7KQp6ZFlUSGUr
QkFzciF7VXBtQipvMFU2cG1ZUktYUkdLRUhAczZASj1RO29JR05qQmN0dXUkfmtwcUMkOE9me3tT
UEMKem81VjkrLXJvJndkd1k4PU81dnVGYm9YRnduQz5gQFVBQyV7YWY4NGVJI3M8M1RlIzV0a0wt
Sj9aU1FVJjVRbUVHCnpMcmtzSTtHQiUkZVJ8aDNzX05JOGhOJk51clAjK01rYGB+VSttPjFPcFBB
JGI/flhIJjFfZ0FRJllgOTErR080Kgp6KD54bVhUNzlgb0RlZ1NrQig7KSR0fm9oVndZcF5YXnt3
YTBicS14NntjWXc7YjVFSHxScHN+Vjw/PWhkUSVjcjYKektqQislOEA4WFRZMVVWbDJuM09eNHVq
PClYT0x5b0lXNHJ+MWR3eWMmITApKyFhT3grckNuKW8+TUxuQHd7TFhUCnokWWhwQUVkRT1ganBi
VnstPUd6V28tNVUkeXF6WSEzI01OfTdVSVRmJWZpdjglISpMdGU1RlJ3PklFfVZfPW00fQp6a2BP
UGkoOFFMYSokUEQqTjZLOTc3Kkh9bTwwbUg9Nl4kQnFjWG9mKW1qM3tVM1lnZmRzNHNpXno0eyUk
aXRsdjIKelBlYW1TdmU1TFRXe2pEZzcyfWl+PWpUOHxoVWN5aU82U3s1YjwpaCplWSolb0tHUWQh
XjJ8ZGhSMHc8Smh2WkxWCnpTPVpXfVNLYj00emV7RlduVCEqPmNTWmNrRmBka3ElNEJwTGdTNkxN
QFhPKTt1ajJWYEItNUpKPzRnQmJTOElvZgp6T3otbDx4RnFHPm11RU5fJD5SYz1zSHN3RSooQ2Fo
RTNhNGluOyZRNDl+Sm5RIX1qO35rO2lkb1daUztUPSoyRGUKej1SMjJYSThsPyZJVUg5UGNYMSh+
ZXk/cTU1MUpVcUV1RXNQRzEtTnsjeHtlNCg+LWZgQDVaVURTPWlfcnVaTj9PCno9U3ExWWxIeE0p
T0ZEd3ROckVzQndUfSNXODFJdnVTYTB2d09eWnF9VC17alBOP0lWVD1TSTAwK0BQRitqPjdfbwp6
TXNkNWh7NU8rMllCKHNVI3EwWHtxVT85bSVjT1hRP2xxMShIaTgoO3ZQWHEtKHY3aT8/KX1ueF5m
a0FtXyVgY1MKeihsdT5QZUx+cVR0WEZoNFIoSjNWbkxvZFVFRXUzKGE9OW08NE9sa3x0NEN9YSlo
P0ZiViNfcDlwblBtTlVEMVFACnprKUsre0BoSF4xJEd4Jkd7aDQoakh0UjR6PEJrRV4yZEFKRmpY
Mko3ZG15UCUjdXQpeVQzTFEjXz00R0B5ZTlpdAp6al4qUXoldkZgLUdKdHBpdyppeUZ3ZyFDPHJF
MDkyWk94bi1VWWprPGNJTSVCZVZgK1FELWFsaWZ6QW9SOz1KVDcKei1OUTtJbHIqeXRzcTwkJWB0
JSZ2THY/WClyQ0N8Vl9ofiRlbl9NMTRGY3wjMzRSekZabHpFPUw0PU5SdVJHZ0sqCnpkWXlYY1N9
dktXVDNYJWY1VzN1M25HKWhgJlZhR08xSXFfdGBHMVI9PmlqTEY9LUxuNDw8bTd5N2dkRld5RzQ0
awp6Rzs7K0VlcE8mVFZVQyZWYTRYQmFKKmpIWSEpPFMrVDxuczBqNm9nMUt3QkxQY0VSaEJqOHxj
Q2FkN3VLYU1VSU8Kej9pJmxLQiNJVHo9TkB2WCFzSHhvNGZHKF5ISzhySiZmRzBuUmdYV2opcVVu
WndjLTZiM2t6JUFPR2IkJXpoLWM0Cno9VUBuS0t9RnxrZ1U0RlAoPS1uWC1iQ2dMVTE2cSNaazk9
STdzLSMqb3V+Kk0wTGtpVj99RHx2dEJhUE1iKEdWdAp6WSh+Z1phZk5qdHUwcytBZEcxJjFVOH18
Ny12IylLYCljUCh2QUJacihuTjdKKyVwMjlhP0hYdUN3RVZuai09TUEKenk7eG9vWVcrM2IhWmF2
VlQ9OT51bShUdEk9aHdhKihAMikrPm50S3Y0NiNOLXZKWllnTHhiO0V0bUwhJTZ8VGl0CnpWfktH
blhqdWV8ckgxQXRvfnk8T3B7fXBQe3tSJVVvaHdMOUtJZyleVUdnVThYKWYoalkxP0Alb1VqPkQq
eXEzRgp6VCEpRH5QWXcybnhARU17TTYkfWNFfUg7Y19zNzUycjg8N252d3FlYnclRkZCQ31FVWtN
Vyl7N3lge0g/ZGBVQX0Kej5Hb1FjLVB1bm4tJXFyZEslenB9VTk4SUchOTMkNXVUZk1KTllKKH5u
YDViQHhjUVZgIVQ+JFRCQTNIWi1YK3ZoCnpYJlNoPHlSP3hQQVM1QTxlcHdhQ0pPVCRlQj5FMU8q
MXlBVjRAQiZmYyZ8KShSUEE8SW4xVi1BS1hxMiFDOEtaZwp6OTRYWUE9ODlpKEs3TkVmKU5sTExR
b05wZSltTSUqZWFffGMqbTBWIWt+RElXQTY2Wj9zVylYI2F0PC1pQ2JlKzAKenglMmsyOCEqfWRM
K3leQG48QGJxPERYR1pjLUJOeGpmYy1VP0Bue19De01mdzRsMHppTGNZWDcxMGQmYEslX0coCno5
dFc+X1FNciNEYWdKJHtaZHxgaWFCOT1EdX1lbTJDQ1MqYXlCe01Nen5fbyZtb1ROaiswajg2JmYr
PXo+WVAmcgp6TyFYJEFjVUUlVSQ0WiNOXiVQP0VXdSk1RFhWODd4Wl9kKCM/WjduMSslRzR1eSh5
SG8zayhgK19aR34wcl9ZdmIKejU7ejBhb1hWaj5eeWljN1B7e2xNSXM/VEBuX0hGe0oke3Mpbnlf
bHhrJWl3V1A8UnlTQj93QlVJXmRkUz89RDY/CnpiSXwpI2lFcm8wX215JXRiNSFsNl82c2hlaU9M
UDleUCVQXjlTXkMrTTk5RXJqaUNDfXRtUmRIVHF4O05xaGhkJgp6R2xDZ082IXtBfkdqM0hVXikm
X3cxO0RgV1hoJGNnPX5yYStMcjhpem1SS0J1UGMtK04wMGo5KndOe2FkVn1hSjMKeiQ4Zjt3XmBu
O0lWJF5RVjc+NCUycllvdl5uOHdyVilZSi1EZmE4SkVvMEhHVSk0ZEttZ15OPC1fJVZefFFwRjt1
Cnoxd2RJOGVlVSZDMD9he2RhWUFHZTJsQT00KXJEXnskUW5pJVVeZ0J+cl5eQWZaR3FNQyZnSkEp
JChBOHZxQlg7ZQp6NjR+VU0mRCMwbzVEJE1eWUR0ZXZTYlIoemtsNyR9UWJ0NS1Sey1fb2Bjd3Ja
aGBSSXgoRDZAJkpreVc2JDVUWUAKelozUUs4Xjl2S3l1NlYxcXd9UmVQMz41Nzx2VT94dlJUa0Nx
eiVKbEFse3YqQ00kSVJkNl99bT8xMD88dy1JQDwwCnplXnVBbFFAMWZzOTRncSNuND0wdTt3am9E
cmtZRU9rUm98ZHtEdHwpO3Ioazc/Q3ghWUdzODQtPUxFRCYya0kobwp6U3RlI156KSMpKXhxZCVo
KVN8eE8jIVg5XjktQ3cxYEBJeTJxbm1aYnp9fmFQeVVtRDxqbXFrTlFgZTtfQHI+Rz4Kel9hMTFC
I0xEY2dKVkImNlVKRShOQyl8QDxKVVMrJGQ8bHgkTnMmZ0BGclBETiMoQnEyIzx6NFJwYFQxeEI7
Syt0Cnp2Vn53eT9wMDFjZzlRQytwQWleQkV2O0dYVkN6biMpaXR1JHNpKXgmM3R4RGA+cntydlFu
OW8jVThHPUtOV2pTTQp6U1NWZWZAJCNJV29RbC1lSDRTcHdZZzspWHV+eVJ8aWFtX3U9UXt4bUx0
e0tSMk9NPiVlaF8lME4kYGh7anJJSDcKeiRFTEowIW1aXlEzTzRidnVzdHcmP2FnIUVGdVJLTFRl
Kl9yPTEoelRnXzlCSWVxJnNXPFlWPSNqezJFYnBSPTxqCnp3YnJNLWx2bz1KWDFKTn4oPSUtd3Yo
JWpKITBucG9ITk8qVDJ8ayY4KSlzYl8pPTM/KiQ4NXs4Umc4NkRHclhNUwp6bGwtYEA4JCs3VD01
cmVma1B1aSVrQVo+TT1hMC0rUGNfO0kzdFFkPUMqQD1qaEhUXlNacFowVUl1eHFRVGJSY2EKelJW
Jmt4LSswI2hMZjNSe0xpMD99Wj4rVSNSe2wlTnlYSktlZDFVVn5XMlFrbCt5SmoybnJ8e29WWStD
b0gtIypLCnpad3NEJnJ4bStsS0JLRVcrRlF3V2JoZWk3YVZufFdzflJ1Tk84UjU0c3V1ZFNvR0Jj
I00+TWR6O3pVaWtEbHdkUQp6ODUhb1A3KzY3RGE7eEhKVWZrUCVVNXk8TiNGdl8wcFF6YmQlWD1s
SWBVSUdDU3JqKGwycHhGP0B2S3xsNT1+fUIKendZVnxvP31sRFVeczhQWHowJX5vbEslaXB4TDlv
TlNXMT5pMnJ5KUZ4akR4PCQ2bUVGX3xIWHw4cGJVU0FoTk08Cnp2YGo8SHVafVJ8MkxzY2c/QFFS
elolQzBrcyFOeUpZOypReylUdyVJRT9eZmlwa1Q0ZzMwNWIhVC1TR0R0TFJUfQp6QiQ4P05WKDMy
UVNpXnFrVXxAYVlrfSFXaVlUfnMhcVVGVit1YXV1Tm5EZGBYPWRHb0A2UEFTOyg+Tio1JXFwdFUK
emItbVF1djVoKjg0JT9vQ2VXKk9RPzJ1Y1IqeU1jaTwjVjFKSjslTFotIXQzMSZeNXxSPDtMZCZv
dz8qXnkrRkZBCnp2Mmc2ZyomOyo9LWVKbXg9bSRTdXdOQExVWEMjciFZP21AZnIpZHFIcjJoYX4l
QU91bm03P3QpckFucFUtaUskWAp6LWRPOGJfWk8pUExvPk14NTxWNmBQa2FJVDNkcSMmSmhJM1o8
OUwoR25hPTwqPk9ESmdSQmJKJE9TbCsyJip0K1kKekJyTF53SVVlYGA5RkNkeHRDdVpmWkUkV1B4
ey0kTD8ydjlIXldQJmg7WjNWTXd2TElgZ3dvd1V6R21LJEcmKihCCnpLNn1hTCN1Ym01djVAe0Fs
PGlOJmxpTFpRaTZYZyhEUXImJmsmcUcoNHRzam1FOTxkbyl9cSMzRCVNLUVBZCRTLQp6LVpAWlg/
dmU9TGpDN301X0BuIU9TLVlBJFRZRmU4UG5mbik0VWp8dDx5UnotMDJteWMoYG1MSStMV1dEdG9z
JnAKeklUcV5iLWc3JWpSRCNPR0o5emk+SE42SSpjY3xXPlBjS2RnXz5KdzwyMyZFKkt8UStyKjlv
WlYhRE52d2x+b1E4Cno/JD5WN3tuUGFJP15Je2p1V2l5VChtRHtNNFpEXkQqVnBsXkI/ezhgR2BX
aGEzJDBIPypDdzlqV1MwS2BQP3FwTQp6KW0zQnxPbXk1amFofTdpYSZ9ciZrfGdnaz82PXhnU2hz
ITs7ZigmWlBlfDF4eEApNjJtX248JjBrVH5CWEJ9JG8Kej1aVVBPKGAyJUB2WHs7KjhhWXxYQz1O
RmFjaDElNHdtcy1qdU5iJldUK1JBdVl0MlJiJkYjP2lQWGw8dEpUK3NoCnpEcUx5dSM0UXlUKCky
V21hPmhVfm44cFlNdzxLfHFeQDE2LXk9cUI1IUtkM3RhP0cte0YkNDx8OzFUN1ZvUlNJbwp6Y19T
U3dsa2kyeG04KUcjWkxIWmB5fVV9QlFXKmpSaTIqeTlrJF9aQCoxTVF8T1EtMTsrUGU1ZyFyfXt9
QnR6ek4KekVHaXMpc1VUeUsofj5qQ1RvWVc9cTNxPF5TOHUrQHI5ISt0bER4RF9XeHdRZChCNWpB
PUMkPyluXkJoTGNsJGNUCnp4bHNgWjBlMFhGQCFxY005dXg2PiY3ZypSWkFHSnJPQnAwTmladWp8
TXNOPXFgZzc4YC02USoyPnMtNlBZciQhRQp6byRXbFZiR3RzYztRUUJGZHteUilDcmBoekkrZmso
LXZGLXYwQktfaFFeUktgcDJNWVVUQU5jJkh1UHBOc1pNWnkKeihMNEVuUzIzKTB5LVA7MDdFe1Fn
NytPSWMrO0paXkhnR3lOZjd1OzZXWWVfRXQ0U3hAdFh5N0E3WEpYOSlNMjFaCnpWO34mKzhuPEps
LUQlZld4e0JWfG5jJFFZWSRZcns+YjZQZktLMmhlI2RMRmdQU2xjRSU5fXhQM3BDRSthOD5ZbAp6
YDNVRT4yUld7SlIrRi1YWn1ZZTRSQjVIOVM4cHZ9PlRUIyNjcHBvVFd1MyQmTSVmWHlJOTtVckY0
KHEhZEZucUoKel5mbUUrIVFVRTc5an1RWEkpMTRYJSZePlBrVnReM1JVRTEqODdEbSM5Q3Fmc2lx
R09EJnghQnRIMHpCK09oeyE2CnpAX25rXkEmb1EwJSFQVWAzSChrZm9XMiNtKXBkQXZFaU5jN3Fn
JEVuX3Z2Vmw2dVVxUyEtZUFxQk9udm5pcUAmNgp6VXY9QW1fJT1OWEZfZEJaeVVCRyRvb21DXzU4
YGBeWjYtJjkhanteTW1pR0ZLNGN7KkVCT21xQWx5P0k/YGM/UHcKemhsI3UpQjVDP2xTa0drKGRH
WG41UUtaT1E4KEdTKnorPXhpPXpmKldfKmNSZ2taWSl5Nzg/RURuNnBUeCZKfXBuCnpPM0dGKm9R
PEd7V28pPDh6R35OcV52SkNCN1NuOXdwM0ohMSF1Q2FKN2xXTFk+SU1te3JGaFM0clJEaFZkejl8
cwp6P21JV3E+QSYpXis1QXJORk16ZVpRJGYxNnZNP2oqJTVOZ0ZpYTJENz1PbW4rZyt+RUBoWD5m
I21LezR5WXFlVkAKenhSJkxeSllxIU94cHs4T298eUZZdVNMPG1BODNjY3dwenhlc0AlaE9hRSVM
RiVWUX1YY0hIcERQWGo1KjBDUVg+CnpyS3VrZCRkOUlfIytgRXZORithS1dfQmM7dmF1a3A/bFg9
ISN5WnlZdDgmd3xKTCNzVUhGfE4yeStgTmlhe2goawp6YWpJJC04ZkVTTnBRYztmViYkJFJicU4+
P2tRbnZIUE1fWlQqUl5+WUBFaHREQHlWeV5QLShoK19Zd3o9JmYmemoKejRIfnhBO2x8WkRXNWFy
SmdQUXJ1XjVxX0QkP2hmRzx4NH59ZiFxKnNGYHVQJF83RW5nVituXjxmO2k+MzIxcFdPCnoxUy1K
Zzdfakh+TmR0Z010fiZJcFNCQTU8PGFGViZQXjgqflJzRDdRYFc+JnY0LU0tJlNCPk0wNy1XazRG
dG0raQp6NTxBMF93cGBAa21NX0xtRTBGT0hoaX5DWT49TmBVPks3MkN1UU5QfDJJYkcpSndeeTE7
fmRpYE8tc3FyTX43fjEKekhUI1A9NjxYZGtXQStqYmFlX3xkPGxgNnM9RDdhPTViNkZYKWE5QnpQ
U1coeDh4N0JObitsOCE0c1pZaHgrcEBXCnpSVFQqPEUlbXFIWE5iam45JSgzWkh7USkyKGMhIVEw
MGExbyFgN0NzYio1UEJIa1NvdnpQTlQtPFY8QShrUWllcAp6OVMxP3J1UHVNQllGLWk3VVNBSnRP
KUZZVnpEMzF+Qmt4dUZ0YTYtO2RYSFh9PTZZOSNDWCMzdEVCazA7bS14M2MKekYoN2wpMHI/dXl4
enlqbyZlbzk2X05SQHVkNVNQZm98KEBYYGcmSllKVCpGM2pZKUdTKGR2MmlHYilwYClLcClRCnop
WlN8dnVac0xvSE5Pe1Z0KnBnLShuJUpkMWZzPUpmZitJfnJ1fj0pM0skY1B6UFEmcTc0cGpGKCNL
RCp3VWNubgp6WHVse1Y7WW58cC1+cXwoWThnQ1M9OzQwU29HJGhfOzAlNmIqSzs/M0pXQj1QZT9Q
PDVQXjd6IXl3fWVqXlBGTTAKelFgZmpQcXJ+Q3BOcG41Y3BWUUZGb2ZgT2BmblU0ens3ejN5QE5T
KVdGRDxXaUtQcVZMWDFZZzIkWX4+OCEyI24wCnpqRWRDcGc0bFJjX1FfK3ZtaFZydGQ5OSEtbjxV
eC07NHRaZUZuPTF7OX1nfWR5MEUtRG5wdFhYYUkqY0wyLWZOZAp6UDhyaTxpRWBnXzg5ajZDWWN0
e3BnMWxMSm1SNlJ4dz50Z1huTWsmViRpfnQxYXo7LW9jTWI8YUp1OE0tcyYlVFEKenFePFhVSG4t
dz82ek5wTFZkVF53S2JGNio9eX1HT3NhI3RKZzNpKU1mekJpazR0Jjkhe04yNmxxSTtjQk5gfjZ8
CnpSRlVtMXlvTzY/N0IqbngyankmRkR2KFpqJnBkazhtWG9HPHg1MUZkY1hnLWhtUjk/aD9TNCYr
JCtiYmA/e0VfJQp6cnp8dTApKSRIVmF4VVo0WkMrUU4oJjNlKGAlRyVIIyhoVyhNdGdVeXIkMjJx
P3Q4d3ZvSnVnSU9QWndHcEc0TXwKemA3PSslLVo5ZXJWSV9vYFIpZVEjbFVxcEpfVDkra3h5Ym9r
XzhxZz5iNmkhenpOWiRVYVE7a2xFVXp8WUI/TzkzCnpNTEZjO15kTkVHczYob0tzXmEwKzZFMFl9
IVVCSVI4cnR4MyNlSiNWKytPKWZWUF9iU0tgTT4ySCM8fWc0PiZvOwp6UFc5PSFrKWFFJW1ydX47
ckFneElNbEprWHpNaUZkWkZNIVZ2eSQ9YG4kVXNkRHpHXktAR3VUYHtZN3syPXpIVHYKem5fY2tL
NkVGcWhWSzZiYmJzJEhLZ1UxfEtQYWxMV3dPdXw3dDhXWmcrKGhvR099V0QrUGI4fUgyPV5KVGZQ
Nm1GCnpofDZqQjEmPnFZVHlsVCM5PXRpe1FFJVEmZFJ6UzJANV9oMW0lJmo9ez1lanBrPDtiQ0t1
SkFGckQ9QUk2Wk5SWAp6bj1edVc/a1lFTypmfCpvZ0lAMEpfX1Q/VTlnN305XiNZdUIxfThpcFQ4
cXFQOW5PQ21YNjdaQWt+Jmhlek1ge3gKemxnV1NxVWNHVHFkN0heckpSVWd8c155YnVKd0tmPXNZ
VjMtYUEtKyYzdj9lVU4zI2pSXzAyfCs/LT91c0tENForCnpMQlEkbFBEZVpwYW5sdF9PKURsbHlB
Qlo7KDYtPm0mPGJMWjRoPX5YdnltODZtKzY3Y0lONz58WEZDQkk4S3JqSAp6T2tTbU9Hb0U9Syla
cUlAMlNaanElZC15WiNlSHlhWW88PkMtb0ohbEBpPmdObkAoYjdQRCZebDQxSkczZlh5Y34KenRm
WDlHPWR3OTl7dyhwSG9LbUZ3MnFVUUo+c3NlWlg8dkZsRE9+VW1yQzNjNFI8ejUqOGI9ZGo9MDdu
Zno2VF82CnpfKjNfSFlgPFhvbTw9Z2xQRVMyKUwhRSNZPkRzIVJYMTdhRXYhJH1rQEE1RE03JEVW
RUltcT5gLXdwZ1Z5Nzg2dAp6Z0hOKiZ0LWpBYVQzYFNxcFRgXz9mdHBrMGcxeTJSY30/MGpKb1N1
bWZyMFgjITFiJFJPIyZlOEYyYTk8ODh6dmIKemUrWH0zKlBsJklIYzh9MDFBVmxtcWc/ZGRUbVQy
d3ZHcT5gLVJiJjsjZntteGc1b1p0M248MlY8eE9EZ0MtQWQ+Cno/Q1FIRnBVP2Q0ZEVBaClLRnEw
WkkjQVpycyY0WTE5PU5YUlp2cERJYGVXK3h4QjRSemkwdWhiZTtVc3w2VnwxVgp6JngkcGc1MF40
ViNmRXZ+cj9xYVhKcX4lJXNScStxOU5PNFMySWdGRyg0SXxCQV8qU2MwVSRvUHR0JmV6Ul4/RzsK
elIlcm9FcD52VngmMWtvVi1yYjh5V1d8YitoZ1ppdVhObiEjX2ttJWpIRF95P2BYN2dyUntLelVo
IylhUyhrT0d4CnomTXx+dkxVTVVMYXFuN3BvKWsrdkp0X0NFcE1IaS12QUEmKGhieER7JUN7TkVx
WTlxaU9SPXo5VyhEUyMwaTdIYgp6UmQ0Un4kc2QoISEoXkk2ODs+JjU/T3ApbkJYMUcmX2VzWU0j
d2t1fUowMHxKTnZsaDlrOXtnUGt9KDN6UmFYKz0KemY9ZHFMK0tfM0l1SVZMPWx7b305Y01uNil1
NHx5VF5BY0leNjViJlRJbVhrQ3kjOTUkWXZrSk1IZGs+LXd7WENZCnpYU09iNVM3Myg+Y3N2NGcp
M0JyM3lJQ1BtM1pSXnQpcWgkWFIrcHZFc29hfXVUU3VOITgwPUtaIWk8eW4wWmA1Jgp6Yzw9QFI8
UFpuU2VYRkxvKWVmSU9uSEJaVG1CZjQmVCUhWiZrYUpuflpqdEpYRyFhMXtqQ3NDZU40c2RwciV0
fXoKellMdT9eMWZ0QGp4c3RqcHY2NGRFYEo4ZElqejduZFVYOT9MTihsOT5Bfih9bFBxJktQUygj
KHA5IyNkNXZtVSRpCnpvYTJzendSNiZIQD1ZVk88SVpVdD1KUTUhZWR4VHVEYGpoUzEqKm83JXBj
NTsxMSE5cF5PTUZhM2lFU15EcThuQwp6dT1zZEZUPHh0bzlTQDc9YCpyLTBVU0N8elp4bit0OEQw
M31xVmhBMG4mZFNkM0dGU1NudDYyZS1iaD9LR29NXzYKel9mTjVARTthVkt6TE5HZ2IoeHFqZVom
Pk83JEFlIUhDOClreXB+K05re1FuRElOYXB0SW0hMnshXnpVN2x9RDtGCnp1Uit3QzxYUlRBTz0w
d2hrbE5oYkwzMStmWDE4c2lXNiptMllmRFlrOEVATkJjR3xQZUEjNUcxOD91RWljcyktegp6PEU8
c0hncnFOUEEtR3VnSGVgKGF5QXdUX1hYWmFvIzxqbilyOGhyaVVvS1U+bHQmZz01SismfUZ+X3oj
YnYyJE0KenR0ciFYbDRrZiFIRTJ+emFjTyFTdlN7Klk4cFcocW0ya25HTlhtdkEqPm19PmMmcGRD
M14laS17bCkjUXZaUUFxCnpmX0g3dCVZWlRvPmB4c2s/fkc/P3dXdGRaYDEyQSlBYHtHaXptdyVZ
b29hQClZWCotek97VS0yWUd6VkhHKlEwTAp6MFR8RGkyMShDdkxyKUpvI1k/JUtEdlQ3fEl3REo1
UzR+U2ZBJHVFamsoNE1hNzh7T3B5Yjx8aDY7fENLZlY4cFEKejFiRztaZ25pWlFhI1puLXozU3JJ
VEhQdyR2ezZRamc+X1pIRk1AR18mPmcmSUB2UXMlTlpgMSpRcU9EbFdkY1Q9CnpaQlhhPE19TWNV
SE4wbGBXKWhfWSNKJHowKHh0bjdFJDVDYWtnKnZ6O2ZqbkxXTUNlOEBseDdmZWA+YFhQLSUtTgp6
a2h8Vk41cTFneiZPcVpGY2RHe0MhdDJBWVdAQj9HUHwoUEBBaW5OTiZNfVpxSUBWcDVuS0tmV3Qy
QzBaKyhiLXIKeks8fE8rTjtNQFUrPzk7SWxaQGBRTUAqaiZIMEBKRG4mOWZ6KV9UO1NPPW9FJWch
M2M4YEB5O3MrdilGSWNBYVk7CnpsUVJxM1NtcXpaJTtYZHA8Tl4oQXJQaWJOODwrI2cqN3pRM2Z9
fVBOODY4aEo9fkNOVzhgJilFWSsjSHVuMXZ5QAp6K1Vpe09FNFgyRE5iQnVZJlhqZjIlI31zQy1W
MExZKVljYUFxckl4Rmc5NlklN2RRdjZDKV5IfFZMVTtsSE1BIUcKejA4SU51eEpkI202UFJ8Zjd6
X1lqTn1RZn1yTXZLY3Y3fE4yWVpmO2F4M0owT219UiNrWlVONmQwVD4qNiktO3llCnpydClYYEJR
NXVvYTVHdUx0dlVRVXtMYmxNWWcxbSp1QVA7TmE5LU8tN0gma2hQS3BGJmo/TyZ9SSotYm04WVpp
Qwp6NDBrTSslRDYyZ1lsRkF3MjEpbTthT2pjVCUycHs/Y34pP2VOUH1ufHE+d1pHYHdHPzV0P3Bq
TjxNKkspaGViZ0cKem1MdkBOYTV7e0drKCR6VGZ6MFNtZTtUXmAlOF8xTmN5QyNZUTFJJnleZlk5
SVQ+a1RaPzF1U0k5RGBRMGVTTlA/CnoqODByMHdsOTVoQ1Bfd3xqdip0XjxZVHtNLT0xbEBBQlVk
JkhPMG5PKWk0N0BjaylqezBUfDw8SXAtQ05kN3heQQp6bF9yS3Z3bm9fNHU/TiFfe3tTTWh6YyFJ
KFE+VnppK3hpd2ZTWnFaMCgjM3JEeDNoZT1IJlFVPzd6MilZJER1dGMKenZ1SVlmO2cmMSF3MHh3
cURxKFphT3JEJD8rUiVPPFlrSDJIQDRRODVXKHZfZk17fV5+SyptcEIpfTFsY3RwM3A3CnpYMUdM
QkF1PnhGVlZFMm81OzUzU0VeQSR+PXxUPHJAej0zfEN4eX1HU0Ficm54azAlZDB9Xm1LMWE+YG4+
Ri1SdAp6KGUmYTwlUGpHLTlCbi1GPXpHXiRFdihqQlZaM1gqZTxtQ3VpOShpbEFZPkVVOWB6Mkxi
IVA8QS1Ofm9oVSZ0amAKeihNLTVsX1hHUko8MTdJS3I+YGAqbnxDJnkzX21VNUFNNVhDV3syVlpK
NVkqQ0xTJHp8ZEEhQXdYeGdKViN0JEBVCno4aXQ/WSlZTDYhKGJyUEJrLSgxUlQpYlhWZkpPaXIy
UlIzeU57JmN4RS1wVVZadEVFbmZffjEjNDQ8MylKdTlIcgp6enVfZCpaNG82R1FvQFF9WDkxTiNK
YnxBNDU3d3BJbiRKfUgjbUtDczgxbDhKZHpuKWBwPVhvbDUjZXgkRVRFT28KelRtem5RXjs2Y3Bo
djY9bkNEKzRXaCokUlpmaTVKfFczeyF4MjEpbkxge3EmOTszRFQ5d2Q4dHI8V1ZHWC1SWH1jCnpL
fWhxOXVxcmR4KDI8ZVN6TUFraHBRemRWN3J4YldLT2hfWGNwfGxwbFAtbUIkYCVlbDAyZ007QDw8
MWYhTEw2Ygp6UllFYX4+bSsmQFlCSDxMPHQ+ciY/ZncxNXFiZlJ1a1R4KEUyYWpDVlZaU2oqUWR2
S0YqK34xcE82PmVhO0N0Tj8Kelo/QG1oWiN9YGRtZm1INzFmfmElOUtMITcyUDJNdilxT0tmKH10
YU48Y0ZSXkAqJVdGaUhmNTs/cykrcWZTQyQ5CnpeVjVwJnlmPT1nb2VCLVJ5RHc5aFhQKVFuY04x
TDhpQVMxY0RxQ34/KGZwfXhaRjhwbXU2WkZAJSFMbW04fmB1Pwp6JDZtZWJZU1B6SClzXm1hbFd6
bk80ZEc8bEFJaU01PCZOR3M4MHZCYDQ+aDtwLXc0YUI+UUZfaCthc0k4Kjk5OGsKejZDMCE3PTN7
VXdxJVEyXjFMOyNLI3RRT2o4cDRJOyV9eT0rdl5mSWAkKGIwU2lERTdIZm5rQmIjJmVRekRgRmpk
Cnpjd0hAeW58fjl7Y1c5NDArQio9QU55OyFkPFh+aUFrNF9DfllkI0ZxdzlEZ2RCeXooZlBGYGlW
YzleVXtXSWlfTQp6NytgbH0xUUN1b3U1PyZ3JUopJG5CVDxneDJmJUJGQXhpWStjN2h1e3MtWmVs
ajtpUllzJlJMMiYtKDBvci1wb1cKenJBZVdHWFdSSkNSPGhUJTA8NiotS3deZVA8Tno+MnUwWipO
WFF4aDs8fWp8UkpWJlEkYzkqU1hlZG5RJVJCflpjCnpFXkBFQ3dzRl9MZGZ4RVY5dzU9S3FTa2JL
YiteKmZiVytgdk1GQ2sjSS1TSDQyeUEwTHtjMVBUPz1AVGElK1c8WAp6Zj1oejE2NC0kPV5PMkdp
WXxsYl5iREVrfHFlViRBbkg0SH5TdyZzbGRZODJpOGhEUkwpLUUqdExoOVk2WCZkY3UKek50Nnlx
MEZkbCgqI0trTHdSM2xSVWE4X0shYCEkQUVUI3x1Nm1gTUo5OUsoWTtoaCVlIVA/SFR0WkVsfWpw
ZSFzCnpZQFJ0YnFBRzB3OUl3b05aKGFiZFomVUVDJlhwMmdUO0luJXdCYzRNdCgkNj1CT3xYVDFL
TzE7XmMxQkVkVVhFKQp6aDhgbWFVUWt0UFVlPj9NJiNgOWohZ2V+UWc+aVBlcT9iM2tkfjUhUEYk
JT4ySW9kKE45WiM+bFYlIyo9Rl5lZHoKekpoaEFtM0tTe2kxTWItUioySihgM2t4a1U+PSNmLTBT
Szx3NSl5RCVqPk88I15nUmIkIXliPCtZcXlzQWZgP3t1Cno2PmVGVVYxSypFZjZ0ez93V2tRYGpN
ZiZWTXdMQ14kZ0t5N0hFVmxRMWFUX3c9WG40KUomeD5XWmdhOyZwSjcoRAp6VWx2e00zcThEfElV
OzZrKyF3Pj1mKGApI3J5alpiU0VBY3xKbituMzhOS2xacm4rYTt2PyR9ZG5Aa0E2dkdXdXYKejlw
ZWwpOSZtYlJmbXJZRyYlfENKKGs/dD45K1AoI258UlZwJnVHZlk4YW99XlYrNlUzWEJvaSY0e0dJ
RCsmZyEqCnptKXYoT3d6fDl9R35lSCslPTVia25eUzllbEdeQ0pPNEI9fVc8c04+STJrd3FYRWF7
dkBvSC1tK2VzfFFCPm0hcQp6RFUyV1BfYypRUzFlVGc0cThyPUdUayRZZmt6Sko8R3NwbWcmSCZ8
bDVKaEhxaThZSlo/a0JzUCsrOVkoNUpBZkAKelF+VzI+LW52eipINyQtV1dsZGRBUj1zV2BfIWA+
USYrV0g1bTUtT1RxJkUzdUNAYTdXRn4pan42WXBJKj5tRTZACnpAYTR0cm1ibWBfKj5SRWBVaURV
MDBmc2lsVFg1PD09O0B6Jj1YNkJWeWdsTjNDX0dIfWppdD5aaTxoO1A4K3RHdAp6PU8rYjg5RkJO
M3l8M0luQmduSWMocFJ+aSk1d3hYWHFxcnNCYUY1JUxXYnVqQ2J7Y1RRaiUzUV8xTTtvcCZ4cFoK
elh9LV4+anF6OC1fcVZBbXYpUDNoQzx9JWw/TythMD8yZGNxd1FvPUhQU1YjXnV7eFloQlNOa2kj
Y0xUYXklQmQxCnpLd0olPDtmfEglSEBhcXxGNkMpazZGSjw9Wm8/UW9LNyszdylrZnlnPDFVdnNR
cnBVQChuJklLNCo9dSZRMWJqRQp6VVMzODBjTmEtRnVLajxjZG1vQl5FTCFTWFpsa0IjVEUrSFQp
ZSlANzY8dFZpQTs/eEVBMUxHQXlpKEBUXj0oO2AKeiV2MSFIRjVRUnRgYy0pNWplbUN3eGk3KEg/
ZUFTNWdSRjFvbFUzQkx0ZXdgdkJKNDsqN31fI0oyTHYlQUk4bzBXCnpSTDJickUmWUBHJlJVcU08
MGx0YVRPUTVlP0lZbzMmN0Ykc0k8Pz0yP0BCeyRIdD5jeXJjXn58JFFlK19FJVJ+RAp6VWJWNkRp
QHt6QyZARlZralNJej1fc2MxZitTV0UlekVRTFNTeEVvYHBTKHMlX09BYG53MFdYMllDcWRDVGlz
aG4Kel9NdlllWiMhdHtNbl96YVRJfkU/c2MwSTFnPClNTz8mOCM/aSozWW4rK2A7REt8Rmk1TkMm
NCtkZ2hLQElMJTJeCnpadk95Kj0qS3M7RE0yTTRFd0F6fGN0WFh6TnE0SFFwVzxCKCgmYTQ7I0Bv
QXZoMzxlTD85T3NkTXNSby08a3cpewp6NCVYc2drSyM9e3h8fWdLKjcreT97e1VDYXhCQTRGLSg8
VSorNlIkLVNrWTV4ITB0ZnJuc0BmYnVseUAydVY1cUsKelFne21VY1QhKDhpPX57I256TXNgal5C
WW8/JGhrOylIWCpAZFFAPTYydip3NnglcjQwI2MyNzw2ayRrTlRSKFY7CnprTD9jWXhkPkpJOz1O
ZWJaJVpGQmUjY1I5cilVLXNCJEh8fkpHVWt7KU1TNSFRYEYre2ApU3VFJGxPYko4ZlNDeAp6MG5j
QT9UK2lFKVplQi1sJDJAJiVTYW5JR1hCYnZUO2dwVVRYUThkKytnNXVUTj4xQXFwK1BmcFBhTyFX
TUJBJDQKelc9U345OGpNVVBifDN9TUJtc2F2bD8xdXw0M0luNE88bXNoRj4zRDIrTz0maFEqNXpI
VD5rKFh3O3okTWkjLW9ZCnptSWZBamtJeWJRZDRtTGRTMEI3QVdISUdOMX1acTYjJC1uO2peTjxj
TU9uN1o7YTFDM3pwcTJQbzU4bWJTKTAhfgp6REpfO29penZWbFBvTz0wQHpTVz5YLWNvPEIrfEt6
PDBkaXo5Pj1hTDEkN0lqMDZlVlRVUHVNezlfTn4jJiV7QC0KemhLKistSzw2VmxyfGwjKUQ3U2w5
Pj83MDRCcT0yRWUpPSZjTGszamBwZU0xZXIkJiMmRmxkd01Sdl5CVWVDJlohCnpZZUhDJG8xUkdI
aXR7WnUjMWJYSyNkMz4wUVhXUm83PUFVc2I5O1NiPFZqKW5uX0Q8Wmt2QkZKR2h9RGVJS2NkQwp6
RE1PIUdTbX4hO3tfPExFJlk/VVNIM0kwRE0rdU9LZ0xeWTVDaik2Q3dSMEQ/bFc1WX1nTHd8P3El
dj1nPDJ6OEMKejY/fTRwOU9NdVVDRzJ7eHVZQl59WUxSYFFXIzFEakhjMDtmWFJUcjElPzYlKXdP
Rm9ZWm42U1RAO0VnfmFfSn1YCnpDUkpkeXYydGtiZ1hpckB4U1Y4VnZDcFppbmtLb2JfO1hOYSh7
JX1MQ2QhdVNeSShEdzRfY3c1VSZWY0tZaUF2Pwp6WW5qfGNwOzFPeW9HOWRYQnYtZlMtP1IxSmxK
TSQyS0FyU2k4NzdmXyE1TDRyNi07SkVhKDFlNjA0dW9yM1l5aVMKejFAQz51KHhFRWEocUUzcDBq
cXBLQGtYYUQ8OyFZfFlTJF9qVW15c300eFhmZV5zRyt7X0BgTFliKT9pQz1lJihoCnoqXj9+WllJ
R2AyZUxaV35HK3pWd1plSkVRbntvRHRkPj9kJG5eMyY3YCVUJn5LUEpYbEBCdChma0ByRkdpdUNe
Zwp6aTVoUSVIQjAhdnZoX1BAd21efX5HRDZ2cmxPVyhPR1QkZzlvWW94aWEjMnVze0VtcD5GWW5H
PGVfOV91T1hFRVAKej14UnxOOGhISFpuQSkoQmx0bkloKyY1czNOJDFudnhIfXV6WjFyZj9fVWR6
TEJtIUEybTt3fXhvdz98SGI2KCptCnpnWnd3VD1fRTZ7dnw+blpKZCVaRTJjZnxuYUM0bUowQU97
bTFufj9MTnZjZm8/TlkhaUR8NjM2TW1ybzwlQU5JRgp6b2NPNDxaKVdkcj50bSplI1RxdTFZalkt
PkUmYUBsPCRsamA1KHcwOElCbW43KnZDd0R0PXxwIXVFZnJsd3wzQ1cKejFFWW9uXkFed3YkP2NM
eEs5JUszVntyIU40JkdhQEQhbm1WU3t8RXVhVExCcFlfSmptKztPYDstVHQrc3JtZ1FpCno0Q3lN
PHBEYjNWUHBFdU8ocj1fa1Vrej1KTEFIM3MrPXA8XjgpLVNsUHl4PHhNUEFmPU9YMj9qM3UrUCMy
R2FVaQp6PyVgdDAqSlN4WSN7cmlaQm0jYmk3JFVLKXt2N0pwN1ZVQnQ3WD1BYk5tTGEoaXQtT3Fh
bnNPPiVsYG1gWVd+NkcKejd1cyM9Z2M7YjFlc0F+PzJha0huNC1WVWtwVz0xWSEoJUImbnNJallF
bmpMe001WntjVDcyT0NeJVUpUUFkJkslCnp3X0Yye2V6aUZSTDk/SWooIzttVlh6THFWTm8+SlZL
dSVTZ3JhJjlMPkFvODl0VFJVMWpOVUQ9KEp0KzdSWjwoNgp6PCFRJFNnbyo7PTBFYH1UNG4wTHxf
Py1Ccl5gK0MrQF9reT9TKWlIaktGWXswQ0pFKUU7Z21CeihpZUFwKXlgQGIKejw9RHNBKVM3TmR3
dDAyZnhWcFROLWEjWURtUyFpZmEhellRUG5nPit6PlpKQHBpO1F0anR9ens9PEQjU1U1K1cqCno/
ZXk2MHBtUHx0WW5hNTYwbzlYbjBtZ0RUQ3p7MiZAUSRIdDdWQz1AUDNRUXJrOFZfLUxzRnwjbVhU
I0ZCPE9xQQp6dkNqPWdhVmNmO25DRXI/P31QcTdyRWg2QUczJUN5bDZoYzlCTUFhN1VCRGZXUEVC
bUQhYFB3bHE/KklyKn1rRHwKemRMbkh1KnB7OChXWTMrdUkzUEY2djwhfCh1Nl9zXy1XIS05d1lX
ZzJPUXxINDxhNShDRT5WKkFiVVNITnBXNF52CnpRTXxCQ0dnNW1nPDNqKyRLcz4oemFMRDY9Uk9i
TnVAbUZsYEVhVC1Pa3B8TV9FVEg2TGZ5Y2Q5eVBEZWk2MCNXTQp6eFF2SE0lYUJMX3tKbkFDKD5i
Y0FNODNET2AmcU5QYHkqU0lqJG9WNl5UXng9R3RjMm8rRUdlbXJ6JiN5SFN7YDAKeipJfElpa3ZK
P0RlJTF9T2s0NV57cTwkJjF3KkppNzlGSH1YIU1KeVNtdldHfVBRM0thZWQtU2JkXnY5cllHUXAq
CnokaHNeUihjVnRXQVhicVhIJUEoPXt3RihFMUR9fDJTfkdZPyk1SDMjYntkdEx4NzJudSkkUDJL
bXhqaEwmNG4oJQp6ZDVCU3ZHc1p5WWs7T1JTYEo4WDZKSzxYdD9XWDVCPEN+Y0VGQT9oM1gpYT0j
ZjByajImTj0rK0hacDlpRT5ZVmkKemVZbnE5JFR8NmEmIyRJeDw/Z2xOYDVFSzQocSp9V1gobVEy
ck8kV2shMFVtSUlMPTYte3tZNU5VV2pweytBPj9RCnpGLUxJNGx+KSk4ajEhSkpvX3A3SUlOQXl9
KEg/YnMmWkNwSCpfNzlrTHVgVVc4eHxTYjdib0BSdD1aV291V2Z5SQp6X00yIX4wOUp4WWFNRSRx
RGU1QHVueHItS2RzZXI3OHBlQnVWdG9DcTkxTHs4QVhpMTxUbG49R1g+MnNCQ0B1QmIKejt4XiZs
QyFCNUV0LVRIcG1jWFY3SVIjeVo4TE8jMk1hPzIoTERseSFmOXI0UWxXM1ppckluSWZZQzBTKjle
eXBNCnohPEdRXzg5QSledWNDYGx4fCs/ejVlRnNgbn1jb2EzRkR1QFJ7c0VyezJuWVZDN01UYFMp
eSs7T1Q1UCNWYH02Jgp6PERla3AxTmdiRlcrYyZXVnUyO3JFaUlUSUVfUio/Q1JQVk9JKjdxTTN+
fWx6RGJ9WjJKa1pvQ1ZYOSYwJVRxPmUKelg7KVV8T3d6IyFRSXUhTTJhKFVlTHMwNzRld31ANUIp
VWJUbE5jVWptJjlPYTlWP1d3dyFKfEN2d34/dU5Lc3htCnpJRiluM0ExVH4oazxVJm09YFYlOzhu
ZntxIU90NCUrTkhoUzw9az9NREREJChCWlVSQ2h7cHBBT1o2WSE9aWkkVgp6SEFZY3N5PE0kOyhD
VmlCdFF3U2NPUn5TLWMlaiNJbjB6d1U+dndqNzMtM0E8NjA7UiZMRk9JWmVxaj5sPXwrdj4KenQj
Pys2QERnc0p3dXNHZkI9SVo5M311M1gjSHFrNiVBK1QlMHA3RXUpfSpvMT9fZ19xckh3OXB5aF4w
PiRqUnE5Cno+QytYYHs0JiZVSEVtWnsoNCkxfXRASTZRKl5aKnEjI19zUktiPnx5YXY1QUIwbztM
eyl7fl9iMn0pNX5HcFhYTAp6ciU2KHFPTzx7NHtEPjBrIXRIJCoraFQ+U2twQjB9aUtDSVJqdDE2
YyE4IWJeWiR7TztEST1LZmJ4Nz0qVztse0cKemtPK3A/Qn4/eXlsZUlfOV4qQXttY20wZ3xyUn53
dkNQYXlEOVUrUWhSbXViTWwxUldMVzdDP3lzZUM+MDkqcnpaCnpKKER4TWQlaV5zcyF0ZHZyZz00
LT11eF9pcyNeVW97JF90JHQwZChiZUFlb2N7U0pkbik7dWUhPWB2ZENucndAOAp6PF9ZfU9iJWxi
MzthM2d3RihsKzRNYU8haGVXck1SJTJZT2ImRW0+X14yRlg/aUByQnhXYzEpeEV6Zzl0LTglbC0K
ekUyfj9IQjMrKHJRbEJxeGEtNSF7djhOYFR0WkNZYHd6c2ZLaUVvKDZYcTJZfT1jZmxncCFjbiNL
fUdZXnNPe1M0Cno0NiFPe0xhakFeX1NFV3BLQStuJGMlVlY5VSk8bTV4XnJKeEI8eXhoVnw0UlNE
Snt9NiVzb290dUA4KGo9eDwqOAp6UF9+QlpGYjRSWWZ9O1ZgPHAmLTVWO3Q5fmNxaFUzSTtOIylk
Xmt+akw9MkllU2NAWT4rWWF0dUNfQFpeaDlLa3YKeioxMFJ8UFkybEVOVWcwaG5CO2hUbG56KzNA
cUBWKHM0ZDEkRzAjal41WEdyVlJOOE9se3pwVD4ke2UkY2pDfTlACnpXXn4laitOWCFfSEZ4bD5p
ZkEhVVozWDB3OCpjTjZhKUJnVjcwVH44PkJ7Rm5FZ0pUKDtmKlM1WD8heW9XeF9QQQp6RGkoYHJV
Tk9xQ2I7LSFqUUNlNCpgZHMhMllpKCNCTXROQi17PzlPV1JSc0JRMXxAUGI2fUtHbnFwZWAtc29A
cmEKei1LX05hI25NUXp5fVZMM1coNCZCaEVUd0liPzs3YFZ5Nl8tVVEySkNgaj1YeTx4V29WWl9R
ZD9EfDlMOXpCUHwkCnpfRmIkUmVBWT5IVyYyc1FWRG9AQkNST0JNN2g7YzswQ155ail8Yk9SSF4x
PTVpIUMqYTgrYksyWktVJXBWJGBHYQp6O1NiUWJPYmlpQElMaUclSEReaDwoSGBnUSFeM1MxZEgo
Pjlva0hvODcjQEhDJEc4SG9VZyh6KHJrMnhlP1BsX3AKeklLK152S0VpVFkmSVN9NTB5Qlp2dCMj
QyQyKX0xOHp0PTtLb2poR24tYSV9MCtUVj9AdWwyb0NTQj9tRGA4NkJxCnpaZTl5Zz5sfCQ0bVBH
e2NxPl4hNzw+MEhBQGVqZjZkZkhER01gTChVM3dTPSNCTjIjQ292XjlGYVAwZWJqRTt2Swp6U0N3
MSVadHFvbkNlS2Z+KEpsP19ZU01ZKiQ9Tlg2U31eNDhXZFEqVmtRKllJN04zOGpUNTE+M09RY15+
TXVfclMKelBLREkyZW8lSFlnfj1uMytAMXp7UzF1eHpKVmF1dHlFWGstLXcla1pobiY1dHpNcz1P
ZERDODdzS2dmMj5KalFPCnp1b0o5R3ZPSjFhU2NWKktFWkk8YiN5RzY2NzVIWk5MSy1jXzxUc2pR
JU5tYHhPYVBRMno7YiN2ZEZsRkFSKkI9Xgp6NU5md2sraTVyVWBmYmNpJjErPVI2cEJaRDdZWXRr
WEpZOzBHQzxfa1puPi04JjJldzFjJC1VQ3lWSUdvNEFMQHsKeiYrdmpEOWtZPzF5aWAkeGd4WUNH
PCooKXlZeF90ayQtNkdNKTYreS0pdD10XjN5YUdzKmlGOT9UYlRvaTJ8WW5BCnpAe1VnJl9OPU0y
b3BSM2RENXNWSihmfUFtRGlXaWkzX0I2WEFtZ1B2YGRnYl9IVmV5NUUrfW97QVQqSSgkdldpbgp6
cnYhWXM5Q2h0aDxKMkA2PkA0Mm9PbUZkbVl7LWxqQ25xMy1wSDNeSFQ+UTZeTW9eWD9vaFomcmBz
aTVqO0BuKG8KeihPVFQhd3cjamdNIUlhWFkqYVZ8REgrSUJUeFNGNUU3fFApNW55fkt3Xmx3Uyhl
QURfMD54I1A7Zztua0I7fF5VCnowdSVNIXBUeVVLdGFfRkcpS2M1V2NecFdhUkxkdzxANm1fQHU2
dExkWCVjelh3c3RYX0VmOCF+bl5DeThkemF0Kgp6UDRjbGdDJGYrJCUmZ1I7bnMpcXU7R01DYkcr
SWZ1KCl4ZUVJeEdKR2hvZWdJUmp0O3lkN1RicVI9VHI+TTxWU0EKekpCa3k5RTxwbz5sX05jSVRm
UjgoZHxuYW92dDQqZjt7TDxJZGIye2VSPTNsbmxGMndPUCV1emtQeWxjWDU3dyh7Cnp7e1JUc1h1
XkZyI0Z1bTMrXjlaJXsrKU1ZMnAjekhXRitBNWNkZEUhe3V8UH5EdzlRanVWfWh0YSlkSXpvMmxI
fgp6eXg4U1FNMmJWNjQtZEVMUzVBSmBOdmZCOXRAP0NrZSRIQEtscXxkN1UldG1mcyVqUkpfJWw8
fVZnQ1MreG5keV8Kejg1bDwwSzJSQiRga2ElK2Q0OFh1VVJ1UzAxbGB7ZkNoJnt+YT0wflBgKSh5
SHckZ3VTVEtTKFdsaThKV3lTa0RKCnpeTmV0UFlobUBUNFZWZFFuVzM5KmM5QDlJWn47amxBQ0kq
WkBiemRaRDY4R3l4eEhMbkVLN0AmeHBgSE57e1g7MAp6NTtZRzYtTSo9M3FycjB9KXRHYHxjTzxk
QUA4PDZeSX48Vk1gRWs8IzlBYFB2QGg4VUpPSU5rfld9bzFIMVg8aWYKek1CaSs9USp5YGBsNSUy
UnpQU1dfWXMjKip7UlNvaTlaeD9mQWpMWnMyYnswV2ZicWMzd1AlZkw7XkEzc0hBQCMjCnp4RzU7
fUlQY1U5Z1hsJGJMayVmPSQkakBhQ3lKIUJkY1B8KHVramJlSnU+ZHY3UUU1KVo3KStZdSRpPV5e
OTtNTgp6ZShjT2I5UGo1Tj98V0FfdU87ckhibEVnM3k7Y2lkZyhWaD14NjIlR0xMNDREYm1FT1Jg
QF49e2w9bUp0KEd5Vz8KeihtYjJuZHpPYnwwMHRRWEdWfEImX04peW0+ZWZ3YWN2amhCZ3ZEe1U/
OWFFUFpvfXB8XmM7YStvZi0rUWN3YktUCnp2O0F+RGRmMWtxQiRjbih3QVpncU1xRVRKQ3ojJG9w
cWdSPyUxPl58PH5INUFCUFNVMzhSREBvSldwPHRrcmwqLQp6KmZRO2NIeX5yYU4jXy1RPVU7fFJq
TDVUJHtuOy1YVHp4PnJhcig5R29PKnozZUo7XzIqPlZ9QSFrcUp1cFFVV0AKelIoI3lnKTFrJWZy
cT90IT9yR2g0bzZlU1MrWFFgM0FfTEQqR0pPd3Y+OWo4cllKTUJOKHNpcXc0TDRHbklTd0BLCnpM
TyhTZjhBZGxwcEhJclVlS1N3LTA7RzRBU3slMFYmY0NecUIkNlFHdX5zZWY0az8hWTRlPG9DTmNW
PUBQRTYmYwp6KVVIK35DLUtmdEs5JFdwSlIwUnZMI0hmQ2NaenA5aFMmYzl3fHFxPyh6TGomTUFC
fVMpWkRPJUZnWEY3bEF8MEIKek89TjE1WD5ZMi1DQTFUfUhzb2s3M2RxWVFhNC1NPmZ5ZFc1c19v
JitJfGNJSlNyOz1hWkZJN0x2SlFIUTQrcndDCnpUfmFHNntXaSU0amM7VzdXRig4WSskNkplbDRh
IVhLUzc+Mj9ee0MrSE1ZJFBScTlQenF0IWVBMDlxQWUoaV9iWgp6K3VKTW9pTVB4flJPfGxGdHYy
NUZad0VgVWZEZCV4b0dZRWROQVVoUnR2Zjk7Sjd7Qjs7alQpXmF3bG9YUEBATmMKengjUWZBIW1l
dCo1fXduPUl2dS1RU2F9LW0pciM+TCZNaTxMcnshRTlZPEBMVHIjQmxrdD1HQXFHbUIwLWRLfFVw
CnptM2NNOW0jayo4UmdDUXVEe3Fpcz1afTI8MDZPZFJwTSFvYUBlWjQ3c2xsUEB4fFd9Sjg4QSY0
K3omVmAwNkQtUQp6X1diRVFRUjFDcjtvaFlfbGNqaXZRTSEhODdHb0xONDF0RG11PGlwTHtjQVMr
OztyU0RmVnhoZnNfS29VdS1kUloKemcoSFdJdlp7bEMzMS1lWih5SlVwYzgkTHVfI2NfcVAybDZL
bFlpIU94e2paRnFVdmRHYGdqLUNySWJRYkVRfmxpCnpmanp3ck1QWiQ1UilDbTtVTU5xTzg7PTtP
d18zQVkkPnUzI2wkP2pwSFBwd2Q9IX1ZRndaM1R4MSZgWVokP3lMRgp6RWJDcnIjVmYrJXF8PEZG
RDZjYntjYWxXSUZHMVIhOUJtPmh1VXZRU1MxcD0zUmg1QHVNSWhpM09McUxMc2YpdncKemM4cml9
NSlmY2deUmk0b2Nue3MlYFN6bDdRUENjQ0kjUV9BVnNJWn54dGN9YDFHZHhFUkZWMURNV3BFTj88
VkdrCnpDeTUhcWN6QFAxak8tWkNDJTA8dkVHQzBiNXk3V2tHRGVAbT1uQz5WSXEmfWYqUXhIRi1i
PE9URktzTylNaj8hOwp6QCZ5Q3ZJSDsrSmRNaDVCR1c2SEhfV09ASHhZSCN1ZVhHbEg1bndydGZz
Xm1qZ3dyRXlhPV4kOE54bnM1N3BjYnsKenl9dyVaTTsyT2p4JSk8eVlIYipvamw5KXhTSj9qbV8z
QXRIQGN5WWZIUlpndnQqfU5DMHArMWwmcTJaYllKUm04Cnp6Mzg/NWRZWFNeeGdfYnpGVXN1bGAl
YEtpTTJMP1pLUVVKNGNkQFJVIX1ATkVzaE5gRTJlbC1MVzB4UnxXMDhhVAp6Z0c9STE0ZH1Lb25l
OHFubzZtQncjRip7UTgyZX0xeHJCS2psbE90IzcxKmk/OV5GUzthSHtHe25qM3dgNE5OXzEKekd2
dUFWTjEkS254K2FeWSt2LXE3Ym9SZTg4S1d1I0p+JmdIXip5QFFFYHZVVXQ/RDBWeXdke3RrLTh+
YWduSnxfCnpna25oS1hCaWNZK1AmNHppRXA3WXQ2SVozbD49dlpiSCsyQVcxNFB7VkFFPDQwZHJ8
O1dffDU2amhgVkBveT44UAp6RmZ3cENJTzhXM3FAd1FTQyFwVXRYPk5+UHcpaDJvc0E8O0g+OSNS
PnVgSDleLTk8bTFIVndHaWlnRXp3d05VWF8KeiF2NnBlVUUyTUUqRGtneVdPSVlJTVpyNmx4ZDFC
QCN7Z0R0cHsobH5SUUVRfV9eTnlCOCg7O3MmWGhJQGdEN0N4CnpKNlR0cDlQJG9FRDtERVkpfjlH
Yio/RnVfOCMjWTJZc2JSQCN6dH5GV00+QXN7ZUBRZnFkaHVaOXNic2JCWlEtRgp6X1ZWO05gPmlU
X1NCXjd0WjBKcm0jVXxpQSYzbEt6dVozRGhzYkRwNDU/WXlOUyZ7N0ZkQkJjbiRZR2FAODZjN0oK
em9RJi19NW5La0RyRC0kWExGWn4wM24tQ1U8NEEjNiZVMjNZaHRPQmt4fVVAXjBOei1aWW55MHFy
R2M2U2hUY0lXCnpZIUlVREJ7cV5iNUhyfUM9Rkc4RHFON2ZuVGZYZ2RIT2pLdVJhfmt+ckVRYVlv
SGUoQHtSMj89bTNJYzJyZHdIQgp6WClrRTxLMyFzMkdyYUlKMiolRyZQZUw8flcmTmVeQkF4cyNj
TlAlfVU0bzx6Tk1zb04hTEtwVmQ+ZCF0NEk5RyMKejZ3PFl5P0FVZD9XeEJ0PW49Sz1ebSR9QXJL
YWJffjN0bz98ezFEVl5iZW1ZPnlqQH1LP1p+cj1QMFlAS0Q+NXJGCnojIUUzSClDfT5gdSZzJXdn
c0R6KVpKamptLXI2LU9xQCMxc3c0RURVKVZ3YHlzYVI8am1zVFE4azNGO25fTFUyZgp6QClDYmNS
dCEqVDdnc3tvOC1GdDlCeDU4ZFchd1hGOyFGfW9jPnxHTnA9O3RsN0prcHkoRCt2QihqOHZYYDZT
Z0wKem1NZUVxN19kZiE5JnhtUiZKUDN9YkhfTEZLalpSdiRgfnw1cmJuaH5taXVPU1poYFlSPEVs
OXlhfGFgI0o7eFFiCno5OTRQTF9hTTFuUXdzRngjZTMzc1RARSk+d2JuR2ErRmVHQEVqfERwOGQ+
TXE2bmRPLXs4aEAhPEN2YFZkN28wNwp6TCk3ZU5ncnJkMFRPJFkjMDlHeXI7QD5ZaF4qQUZZdjN5
XnVZRSMqendjZX10dDlSUUZqd3lGNlV9MmtzKEN8TWgKejtfanU8XlJmfGx5TE5LSzAwJkhkYj0+
UjFQbkpzbGhuR0BINChhTjRueS1tR0hmP1RPP0FDZ1A8bV8yaURgdGYpCnohdm1haiN5Ry17Jngq
bCs3RFFzVWh9bEh1Qi1tdWoyWXp+PGRpSmtTXyY0d1l7dnpESCtUWXI/bmBeWDZPT09edgp6QTBv
R1lhQyE9LTs/SUx0SSVkQjttOSlZakVAaWg3YE16bzRfTmZKZV80bGN6UWk3WU5ue1JXbnFfR28o
WDYlO1EKejk1dFZnbmg5V3pIbzlBTjxJOSN7JUJRZyRYVE47Y2YyNFMhWj0pKVpUKWcwKlNtRlY8
V2FIRXY9TnhtSTsoVC1QCnoqNWtvaUklO29xNnAqfmpaZW40WEdRZ2Jpa15DbVAmakBSSm1ZYzVX
KlZlMFkxKzEkaVBaJjU+VVAwLU8yKn48WQp6SUVvYWpkKUJpcjUxVXVSJHkxaUE/PlpsZEg/bXN6
d3JnIWMzXiY/eiZ1ZXZPIVNiM21JUihNUFhPb2ZiVVYtN2kKejhRPE1yWD9ITWI4aVkzMkc3fCpw
cE87XzxEbzNIdUphcHJzdGkqJUVgc2EtLUhFbX4yeTFQbGxQaj8pMGQ0NkdECnpHRVV3SiFzbWdV
ZClMeDJ7MHhPSFRVK3BNcUF4Nk5CJGVhUzx7TF5FeE1KbUdFc1UhQ25AOXVYPnQyM2lJIzh0Owp6
SU53ZUJlcktoWVZyNWRTcyFEY0VvXlAtQ14peVdpXmAlUW0/eGNiSXBTNDFnVHFLeWBxaWsrZzFj
USl4SmxCWF8Kemp+ZmVGSEhxd31oU3ByTW5wbV5SPFF5RVorKF5NQWw1MyMmbldrVEF7d2NoKVoj
dkVOIXEkd2d6eWx5LXhiZDhmCnpfWmJ7a0dtUz5VOzV3Rzg0ZFB2fkdUYk1kQWxufkJWcE0oTjAw
ZWR3d3BSJCFyPSsqdntzQjN8amNOUUJPSn52Zgp6dkFVTDw8QmMtRlUqQ3pXdCl3QVFyajIxVDlq
ZUR+JH5YYm5DI05FXkhTNTA9Y3hHSzlUZGlWWGBpLUMzdDxBbVAKem5ZOV8yM2I5aiNhOHM0KUdC
ZWgjPlJSdUtGOG5UK1g/SndLOFQpJSNNezFLZGx4TnhJaytYSmkkXnArJGx5Pz14CnpUd2dfVXNP
KytxVCN5NUN5eipPO2N7dD92dVdGbmUqU3ltX0laaWEpcCZLKTktcD42YjUyKXpjaDIkM3Z6Y0ch
Pwp6QmxDfSMxSnNeLW4lVU92ZH1EWDRZST5jJWk+UFVFLXAqJWhUVEhCUjd2JF8hI3V0LX00aEl6
PGdSYnM4eVN1QVIKekxlfG9JRUR0Sz9id2V0Z3tLYClVN35+SVFVQX52JSl6ITYyWjg+ZnRwSFBe
UHRwJnR2a35SdztPY1QjYTs+RkliCnpEUEF5NWU5dUQjM19XI2UpTnk/X0k2RkBhWUZlJE5zRjZK
UGg0U0k5M05SU3NhPF5QIy1vMEIqQFYlbyRxKzA5dQp6R3N8VVh2RkB5KngpSH44czU5bFc/Y0s9
OCRaazZVUmBwanBSTE50bFNpQ3htNTBXY3tGaVB2ITBnZWVqamQzXk0KejRzM2l9MUBARHZ3VFVp
TztFYEo0MituLUsjcSpQcyRGTW8oeXZLPDQtdHxkeEY4bHI4QFctKUYxTUZfOEZLSCp6CnpfV3Ip
fG14filobXNgMkZAYjdgRz9leGdXS0A7bnJZTHxhelNwZl9lODJKd0Q5T1VQVSM9RS1+ZXFfMypn
bHlycgp6RC09PTJXTzEtNEFkb3xERVgzcm8/QD9kO0ZZeWtDYjNNaGhtZSs3dWhMcF88a2lsMSs/
SVIte2MrR1RIOX4zUlQKekxFfH1aZH1Tb015XllqekxwOCo0TSRAWV9FZ3pvfXVtfkl5dE58YXd5
flRRSk56Pj0yQDFAemh7JTRPayZKfSU+Cnp7bURNKkhUZkt6U05hMFZfait4JF5eTnBQbjNLJkNN
WjREfDF8T05PeUchX2lzYCQ1OEZLNEllbm8/TTQlcUw0Vwp6WG5mXkQzNmUlfit2UWB6XnV9XkFq
TWkoWGZeYGRKZihVTXslMWxGRCRtfUZBaGkkSWQlSXsmY1U7K1dwckF1PyoKelo4Izs4WH03SHsj
b0B7Y3F4PE1ORjNiPHo3ez8zQUhKcXhebVglYGY9bCo5KkYhaUZwYjJhQzBeM2N8fil2ZExDCnoz
aUBYXmxQZSZQPzk5ISklRXlofUBWaVRPPjw0PF8/WXRgYCNuZ1V1I1Z0MzFFQlM2MjJVWjtDa1Nv
PEIpU3R1dAp6OT1mPkhWN0ZgT2gpWVlJKm8rWCRObUokbnlCV3dSK3pAYSYpbXUqISp9SnFgOVZD
RSslMWo2eiooMHdSPiY7PEMKendNdFFMb05wSnwtMEg3fnJDWEwyOWk8LVgqRFMlUEc8cj8wJV9R
MkFgQit7O3E4bnxYZk96fWRmXip4UF5JTWkpCnpCZX5OcVohR1Fha009VTRjQTdhSkF0TSExJTQ1
enhSdlNxQGM3aSlzRkA1NEs5aHpsck8+SCROYDIqYWhhNTA0fQp6JTE7MWVnSXFvQSU9KUdIelZS
ZExmPjN1R05oSHxaXj00bylJUDVFKUlBM2E7WHxJJDIwRVlaY1hOIzJ2dGtrXzQKemA+Y0MqdkdD
cUlPK0VFfUwmQ1ZRVmtJfG0rS0ZSKiN7bGsrQW1vcS1zV3BwZjtYTk9WdDRKbGNHR3JFeE07SXJK
Cno1T09vXlR6O14rci1EMnE7ZH1pWCNFfE43PkpUKVM3U0o7dj9EPGlQRU5yOCUlMTZ2YzQ2VG1E
PT1kOTZfPzU0Qwp6VGcxQUk1XjklUENZJSVQcjZkWFJ4bzVAKzg8KnVJYGViXzVRbytfeT1Kdksl
Pyo5TkxPPFpMT0h5UDdjd3tPKHMKemR8PnVeUGx6c2JteD8kZmpFOWMpQmBmQUQ0NjZ+SWRYN2Ry
KlB3V0JUPTdQeFowdDA8NzFpISNoaXBrQEl+azs5CnpRZzsrTjJhWmt2PjBEUWJISCp1TUtlUk5Q
WjkwOFBaQmhpOTtYX0ZoamhKOF5jSTBmcD1jQk4jdVk+O3AyfFAheQp6ezZeRE84d2kjPVNObTkh
TmxNMzwkWW91fmEtQDtMX084clJnWFo/T2U3a0ZfZXV0WmJyJjV4UHNZJSpUVHtLSkEKelc0UDZQ
SFJHSyVFb0pkOWdtc19uYXBnOz42dHlISTBsO3p8SEVwZWNUaWNWMF5TZDJrd1ZgfTBQMU0mR0A0
JTZaCnpCciYkJnhxc3MxMGd5U2JafmRxPXpZdCQpX2klfXwzIU5pUSgtTGNpVGFUNn0rfmdNbjNW
MG9jYTdCRk9HJmF7Uwp6cWByJUNFI0I1V2xEdz5wPHFIU2kqZTgoMXZUIWdsJDlpfXJEd0h8cHJ9
Z0xtMDA0fCNOYEJlPHlNRGNOSjFzTDwKekBmSDRvWXBIbHxRWW9vfCo3dH59ODZIODklUE1ZQnVg
OztZYShFY2RZblJ1MkZSZn5ObyNwPHFlNzcybmBGcSppCnojOHV1I1c0a3twP2otaEpJfGBtX3tV
NXtqaztnV2o8WjhEUHcyQ2RLYyRPI3ZmZiEmOSV1Z3BIOEw2elV0VU4tTgp6Q3NFWDluaSQmPXNi
biVsISs7a2JGO25VNypGNHNYb3tYSCtOazEpcVkqaXlwdFE5biEqUHJCYUdpIUdgSipsJlYKelBp
Xz9hJHMleDFzclJreDRQTihId3pTKjYtV2Y/Z2JSel42MlJKPUZ0RW8+MSopZHRLSDJiKSVYUFF9
TVdNVSZvCnohNWRmU0pGcyNfR3V4PigqTGRuZyZ+PSp+MHVMWisxZjFLJkJ4TTRLaXZZfjBacnFm
fjJpTVpMPig9KHxRbGxSPgp6LXBKaSRAVFgxSHQ1ViZQKXhYSGBVMSFGM21TdF9DV0gzTlVqN1Vz
ezgxUWtzelhPYG4oTDdaPCtnVlElJUw9Q0cKeitIfU5tJHZiRTc5RXsteTFFMEwhd2JSLTdaXkUt
ajktKCFrbn5DTChqRyN+RUxRZXNrWG0wMHJHMUt4am8ycXklCnpSX2ZsPkt9e19zNEhRYUlrcD1A
V1YhaSVzY1JkRDlEcnFWPDxuNmwoR19oRURkcSpxWnJ+RW11OzN1OzJLYUJMdgp6Nzh9YnVaP3FY
eVBiK0xld2wqVzRtXmk/dCh0S2chPytjQWohfWh2ZXoyQWd4aUhsT1ZZaU5wSUF6VCpvb2tJYyMK
ekRmMGxOV00tYEJKe2EpTWtEfmFNWFRMVUQ/YUhMdUIqSX5gRXZgIWpRYGRVdEZ4V1dmekh5Y3t5
QiU4ZT45Xlc4Cnpwe0J6cz49IWEwLUlvSnlPQUlnRklQfk4zcncmTC0mTVRSRF56LU8tUmdDSUpe
TCg8fiReN2lqSjZHX0R3QUNOYAp6R2Y7K1lKWitaVj9hNDxmTSZYc2xjTENJbkdCYER0O3lwXl5S
M2JaemZxaShhIVJgV2AlMVFPXjQ+anpYcmxhN2kKek9QZllwYzxvdnVtZ19jXnNtUXNKUXlDJnVr
JEoodSRpezAkSn5HfC05QkcjQkA8VjUjJDFgYmJBS0IoKzV8Zyt+Cnp6eX49Yjk+bnhEd0RUN3Zy
bFdxPihmK3FRPVl4elE8NUc1Q2RFbU1wdnc1VDIkcGxjZiY3LW88PHhHVztJMmhnMgp6b0NmLUhU
WHM2dHsqJFdkOHE4cUAocD8+QCo0UXhsY3AtLXY9VypseG9APkBeemlLVEM+UD0xXkxxQCVkJmY/
KFEKekJ2Rlh2UzlacW88MHpxeTJQKEtlbTlPR1krREdCWGkpVnVTVGt2IW1oTm97VmNNQ011cG1+
ZyM7biNVciteZStZCnpVPFQ+TkRySH5WT1cmZ1FHZ1JuN0NrbUBhPXYzN0ZaKlFzaUdWKXVkbmpL
LSpHPlJ9SWshOHlSeEReR0k7Wkdqawp6bUZFIyZPNGBrZT5VdzBpbVYkST90KTwpcXZGRFleSWwm
JkN0OUw7MHpyJmwyVTJrRXcpb3JmP3Bydz5CTXYjJWEKejFtbnlLUFMhbm47fXwpdms2UThLLX1z
e2MwOX1KWGdIWDcrd0tqO0YjQnN8N2x2fXYrcUU+Q0NRfjshJGZ5Yj4pCnozVH1keEklYEwtUnJl
aiQ+JSRjJilzd3FqNmAkU3tZbn5tYHs0dUd2aG99RGxXOyNVMDdUJFR8ajV4PjIkaUV8VAp6b31e
Y2YtRlZYU1JoQDs+cS1lYlBjdFUjY0cwRXg9VWUpYVN7LU5SPHhMKCVwVDlWR2Y9Pm9jMVRFJVE8
akI9dDwKenFjNHNRVFBOUFJvb0ImKkFGfVhXI29ANG09VTJMaXt3M2Ajei1jQ0JrU2hnQEtWZ3hg
Nn19UlRYK3ZGR2QqMSY1CnpuYV9ge0lgNz1+UWQ/VHprPnl0VT5nclNlXkNuVyslYm5mRmI2NlUt
dDBLO150OSt9MCpOJkJVUk1lKW5pfHBURwp6VFFhZXZhdyYmbnZnM2w7PG4lbihKdzNkYTFoU3Je
cCZjdkhyOGM3Wl5nZXlIdzE+JWQ8IyVVLWFnYn1QKDZwVXIKelNHMlU3TzQ5V1UqJE9hbVoqS0My
QTs9djgxQiYqYSsyYFRNZzd1R3dgcmZfYj9Ifkk+X1MwNjUtWUU+eTF6MVlRCnp4RCoqKjsmWU5j
R0kza3E1JlRWVzs0T09WIWtReDhPYHpFejdTWXtZWkJWa0pOSV53S2A+Zj15Yz9QX2RrQnhlKwp6
ZyV6eEt7e1ZuYHdEUGA2RCFvWnJKKjtAWHdjLUImNUwjKD5EUzR2YksrclRyZ0ZzNnpRellQYTRh
UiNDMSNAfiQKemBDVUxmbWt4e31scGoofFklen5+PE1GUlR3KCg0YFQocCs5QExSakY7VH0+SVNl
JHtFQVBufSFkZ3NGKmc/Y31VCnp2PWlnS1NJcEcpWClZZXpUaWtoS0FSX3JqMGVIdE1QZ1hlV0lJ
ZklGRTt1VDh0Rjg5K0hLUmchblcpbCF0XlF9cwp6K0oyOGMlSzRYTCU4IztPMjAhb34tO0grdTd1
S3gySV5JPnJmdT9IfjU0ZyozZGwyMEZmRS1FJl5kbEpzUHY+NmcKenNDK1o8ajxHWSNWV255PzxR
NVV5VHJBblomS0p2UCR0UXEya31JNmxlaThVeUNgbkN3UH02UCs3PmBxZHBhNXJfCno/P3BLUDl4
S1Y3WCRyQm1NKHpEfUoqcFhodkdgVHxfY1Q1Zz4pTVp3SlZjciVuUXZpaDR3cV9nSDFeYVg3akk8
SQp6bD8meSNeNz9OV0MhUlNidD9UfikwNmJmKFVBQEhteWBCOD8zPlRnYGttSUk0UkEyen4mTVBD
c0pgbUtyNntAelUKejtlUWg3VDd5ZHdqaDU7ZWwmWTJvPz8hazgwQ0VyRVVxWEJAKWl1OHYmOHR+
IXR6fV4pc3p6YShNIXREYCUkNXo2CnpuT0xxaXVSaXRUVnNSTCNScCFHPGF5eHFlMEdac1FPO2Rk
OVF9ZzJVISQwdGhZQztTQlN9UiRFalNgM3ZxfkVvTwp6QjxDRHd5Kmwjc3BfdnZUPTd8YERGKipX
QXNYMWFsTzc9Z0ZwOT4tSUZPOUR0KCE0alQ+ZTFYZiRkfFlBbzAhPjMKemhrYyp+OFEkYkBhbHh6
dkBRdjEmcl5QTyU7OUhueG5NMWAwdzdHJCNVc1dwMXkhKCNUX09CRGtQQk5DUXVJdXRYCnpOO3Bu
PnZRWDBBTjFXPDkpI1JWcWRUNm8rUmMpcVp7ck1ZQHhIemo0PkRIRkl3WilhandTNjFNQSZzTzM1
Tj1YSwp6NVFYd3JCWkc/VVckPVpAbSpKYk9POFVuMzMqU0NDQkN9fU5OejM3eHFhWUZKMHJ4KFhj
KDM3Z2s9MEdebnwmMyUKempFcDZvLUk7Zno3OHx5Y19wezA4enBacHB5K3pIb29lb1N3UkclYXI/
OUt9NWJuOWtsPEpCN0NQMXhMR0FoNzQwCno/IW9PKGxIKkklPzV6e2R1P0UjVnNHXj9NTWx2XjZG
NWB9O0JMaj96eVE8cFUrSDBvYihqPjVKSWRMN2MwclNGSgp6QWh7WGpqQ1FWelE/I3x6Vm8zJi1a
cjV3YEdfaHQ4QT9qT2tEIUNaKz1DelpKYEJ7UkNkWXJZTmdZPTh0bEZoREoKeitzKzVnOChJPyo5
JnZ8TF56Qj5jO29YUU5FTzV4OXE9TWB5Wit2I29yRF5ETF8tc2NLekxxYlllc18kc05+ME9oCnpj
X1RSUEteM012T1d9M153VWh5bUJvX3c8PnNaUUgoSmpCT2hnPk0jVXdgWSs7QitrdFNHYWp+N2tk
T2VqajxObwp6ZU1rcVRRYGF1LUUla1hCWldpOylaSz1IcXRESXdZSTNveDdTRWwkej8/JH12I1BN
cj5DQk1AKFZFS2t2RUUwUU4KenhFeDhBLUk5TzBJUU9vWFNAMExhRTk/Q35RJDlBaHchTSlJbWt+
NThiOE9CTzRjTHFhZ2NIY3pyPUBWIVFIQDdhCnpUfEV3blQyIzNkUWhvM0pGVG5GP3s0MyheREAq
JXFjMk5EMmBYRHopOG9TMEQoUnpZP3RBTV9+KU5RNiVGNkZxMAp6P1BVUmg3IytxZCp0fFdpISo2
PnZ0KilsYGRRSDVvPHRTblVFXnItbHtZVHxuUFpwbzU+Rip3e0UjQkhrQmd0YGAKeldBMl45KlhU
TFRWKTR9PkNaIWJwRz1GaX5eKHItfntebzhrJnMyUTxxKHY1YGV6dUo/YUcrTHlHNXY7ZFU4YUhZ
CnpLSlExZXh6Wip2VWZEO0tpUk8kKihHTDRiP2RARz10PztZRVFidUk3XkkmcUhEPz14a3gjeXxw
OFQ4YDBva1FVcgp6Jjc9dTdwQ1ApMWQwP09pVyptfFJhZ1dGRnQ9PkxgWGdKUFJeKkhDMlY8PGIq
U00+Z19UKTVSQkBkY2lyMT1YI3AKemA0R0RzbHVlcmhlK2s5YEk4b1o0O0teKz95Oz9peHZXPCg0
a3NGWEQzWnRuQ2NwUGBAPjBCaDVQUGU5OSZ1LURuCnoyP1ZyfCVzQXR4UDdlcFFZUjdZVlc+R0lM
dClqWEUkcT5lUGplNDxUXnkzMSFEcSR4RGN1NiRMckIrVSZvWXQkawp6Ky1tK08oWFV7YiQpdj9+
PFM8NWdCVD41Xz9SRTl5dDBzeHpKJCk8PXBKPlRFbzhJYU8yQEMtJDVHZj8+IyFobE8KemlzNk9n
dC0tUmtkcURzJDtwRSlAVkl6ZWdYUC1+anQ9TGBLPkUyOUczeiMpMkMzY3AxblBaQz5RbGtTV0lT
dGd+CnprPHpOMzhtdHpRWXEkSXFiaktGeiVsR2BQZV9JfkVXQU82WTt3eTJjI1BebnYhZU97clpW
PEB3WmYocTFhO3glOwp6M31jVWFBQEhgSGIqSTMoZGRvbEE3JWtNMnUjbHU3MjMxUHFZaT5GRGZ4
engtI052djVMS35UJVROYDQ9X3xASDsKekNwPSgoSzkjZktgJCtWZ1NKblJqd2VLek1fWFVsdWo+
OVZzU1AqKnkkNFY8dXQ0MThzdD84cngwNWErMGFJJSReCnpLVjQ1eHhiVmIyNnc8RDRebmJSMFo3
WGUhV2BaUzZwfX1wXkhnWjU3ZmNDRT5sVUFEa0hBMz5GWW1Nck1jSUk1Kwp6aChBOzlVRkZCZGxj
e01zektMYGlkdDFtbnczKilvTng0YHRBTWc/fEcxazEmSndkRXZSaDVGNUlhMSU8dHVwQHIKelo2
enNJUzlqM004Iyl5bmV5PVMqUV89N0liM2NoIU5VP2BTZ0hPMSF2YFopX3Uka2VRIytmSEBRV2Nv
PCRzZTYhCnomOF9LUzg5JWJHP28zQntZdW1DKTl0WC1tPExXdSl6Smw9USNyK2ljWXI8Tjd4Izco
K19Seng+cT8wWU9PMmpIQwp6JksqRTQ/ak9IT15xbnsxZjVGZCk3JmFPPG9VKXdlM3JRTFlxYUxM
YVUpTzFAWE81S3kpaztwPyk0ODs4KFd8VSMKell5RSMrUG5AKVdpNWxPSkMzfGJYNVpUIXpBUERZ
IUw5QV94MSE0dl9LZ3w2PGc/YSY+VEpOOVd3d29RT281VVh3Cnp7MTxJP0dZS1N+SkQ7X2BsdjUq
T3tfTUFHY0VRYmdVSDxAdV5lclJCOHFebExWNHFMWj94blZDaV4rPklreSFrdwp6eUtxMW9LX3xV
U0htUFdaZ0A9KTY3PnB2b2dKM1E/e25FSlZJaipIdmcrPEhsRVczWmZ7e1Z0U1ZPQX41SDJJJloK
entFdCtoITJiWE90QE1qNFk0dlhxWVNVU1ZeQTRNQkJyKGp5PGUlT3kyUzdNXzs1PFglLS1YdiNM
M314O189ZWZUCno8XktTKlp5fUxEOE9uJiRhfDUyYHpZNkV0WXVsTEFGfUN3QGhHbW0tbDUlXmxh
bVRHXj5ia3U4UVMpeXVLaF4/NQp6Znk0YmJHM25vbS1WYHcwd31ucnshbzVvSWUqRzt3KiFsPEhY
TiZ3ZEBZZGZ7djV3bTlBLX16fmBOTXxfTHY3QnwKejdhZWA7bDx+SCY0ZDtzSXhyeGdwbnVMPV94
bGkzUTU7X0JwNTRDcyV7eVl9UD9EakpOVURmPjMwXzxSTjIqQnRLCnpSbiZaMmU2Uz5Ud3tsIUQx
VTFhZnghc084NUo+cShkUjg9fTJ2NDNWdyNAM3w5TzI1a2J+YF9hSzAzU2N5MzM8IQp6YFpVZExa
RXotQWYoYX1YNUtodUMyaDRmUlpze0tqSlpxfXpSeUhIVV9kMDZMd0lIXiolN3hHSVplPEYxPVp5
VTsKeiRASmU2WVpgNnhVME9VUVpKVihnNT49MGBkWFI4P2dJPFQ+dWk2dkVSPD5+MT5iQ35eLXFL
fmJ3Y2swblNjLSN7CnotbmVZP0ZhZV8lTn5MSiY5bHgmU1ZPPSNsKVZ7eWhMWjZDJDh1KzhiNktl
RDdMZ2cmPD53fDRBPmM9bkhMKzJSdAp6YWY2ZWA5cVVgZXpxRWdqSnxFZXBvdV47dipWWnVaK0sr
QnpLLX5jWmc+SnowI2REcUBAcWRRM29uWSRMX0J5VmQKel9iXz5QNWRFWX44T31xVT9UbzdvYUM3
VUVUPlp3WXFGSnI5dylRc0hQTUZId05ZMD1EMn5ybVhfWV9BQjJUZXgyCnpVY0Q/U04pK1ZYN2pI
WjdAQEt2JD9RXjh+aXB9KUAwMiVsbSF0b348bDFvLTd7VEJvaSRVQzxqaFZCUXdMO2JobAp6ZVNj
b0Vadz1udiNpQm1oRkppZmtUSCsjbHN5SEM8RmIzQFI9RHY3PilMeF5AQi1aeHJjRzViY01aO31l
OzFBJigKejs4Jm57Y2ZvZiR3dmk+cHo0bzZIaSVyckBWdiFqWG9SWnJTdz5FZ2w9cXJ8YWVGX1E2
bnohRiR1TTNVRE9HaE4lCnpxMjczbzQtR0A0dFR4KVVtY0lufHRjX3RJQCtGUSVUIXsqOUluTTIm
ZiNtKSokO0VCcWRtUnRObmorWUxYSEJaYgp6OTh6M2QxM1o/LUlZZikoPWlDazBCT3s5Rj8wO3VK
NT0kKzxwezdzYT9NQzVLJTx8eVd7e1ZaX3QwUlR5MWJzMnMKej1DSmlvaE1KfjxkMnVnQEgyTGtN
aUp9cjBBOzREelomSTYoc095Iz5vRSFAMHJ1fiFVPVdwazJlSyEwS2BtP1c2CnpJPkpBOT4kI3Vz
LUArYWx2ZXNfeWR9U1AoaExkeHElPn1BaUFTezs+QzxgVkQ+V1dEbUBXZFh+PWtzXyZRTD5xcwp6
K2RRekwmJmV1PUFhRis8MTZ8Z1k7fmdoTlRaPTdPcF47c2ROTDxFVk9jQzlie0puQk9DbTY/QyhZ
XjZAaz5jJGEKej85cGtsKiUlMHU/R2VTYjxwVmhxRjxkYW1JMylEelVhY3pGcjF8Wm0tfT9VbUJo
SU55M24tfVNuKGVSb3t3RkVtCnotLWV6bUBkbC1PK0JUZ3VeSTYpPGRnYCltY2VldjsxbWBUfEhX
aGxZOy1+KXJndlMwWUdVQ3JqOGtaNldpZT58SQp6K3UtZnNXVUZJbTBHPXs0KEEydTBoKyhpWENY
O3k7JkIxSj56RzRYKGJKcm00OU9zUFpqK0ZibUVBNHM8TmhHKjcKejx1X3REcWluVlMrO2Z+OWRY
QU1vLVBmUCpzakdDa3I2ajA5YHg9cmBebV5hVFktQE9YJDlsR3V6SUVKTilXJWxrCno+M3xfWURp
TkBIZnM+S088TWlpQCpMKlhmPm4yO2ozfHskcWd4N3Z0ZFU8U3otT3hyOWU3UHJwUGZZcSZ4QGMp
QAp6NXNqfklCIUhsNEFPSUB0JlE5ek1wMCR+I0hLd1ZwTVdAQEM/QWxUcURJNVdoT3F9cD5RNEMh
ckh5VUBjP1lHUnIKellFXjkteTI8c25xYHdtVzZsP3pnM2o5SEJxaVBwWFQqKkN6Y2hUSGk1PmVF
SHltNm5wPmclNTExSUJCZChDQFgmCnpEYm4pRlRiVVghbXZtXihHc3lzZms0KmpeKXpFNmI1MXVW
eFRnQEg2bE0tKWZWM2tMa3AxXzBEOUQrTGNzK0srPAp6YCFrISE3Vi11c2E5Rj5DQWRtcyVvJm0w
P1ZrIUdTZDhZamRgaSR3K3kqczdydWl8dTl5OGklLWIqfjdZM1RoRGYKeitBST1fc0ZmXn4rKG1I
N3k8eyNqI0ZiI0FBS2AzdjcwNSRsYWJvNTxGMjJ0cjUweiN7THlwLVBJUEg7TD4+ZkN7CnooXnQj
Q3YxfEFpTFg5K3ZXMEJwTW10RVpuPG8zPS1yRHhyYjZpRCsrWlJXPm1lSmUpPGNUQTJJOUFxZiMq
YllWagp6el5ySzBzVEEhTTgxSF9FUmVFQExYRjBoYHZwQzUjKHtqPz4kI29mc2E/JnEzQmFOZXtD
LUNjMT0+amJ4PjFUVjMKekhocyFSbm5TOUxeflhJcnA3XlZge3RIYGFCWjVzKHkhaFFHbTJUMndm
ejQyRjQ2RHEtLWRTIUhQRlZSeEs9alR9Cno2fSZOWXQza0M+UGZMRGhwQlREeklpVUBfJiFFNUlv
YVhUbGh3ZzlFMyk/Qnxxd3tXN0NUfUFJV0hkfW0yPn1eRAp6RV4mQH1pc28lUkZ8R0k+PmhEYWxA
al5VRWs4M3J2SkFDbS1uO0RnSTZ8dkB3PE5ecGstTmtkI2Q+cnhiaUY4NVkKejNxM3F1WDsjbnsz
MlNoTHFLLWU1cENxdGcySHdEcUQ+QiFfOGxJSXBZNF9TaEg8TWFTJVBjeUhFeEVZKVRXJHsrCno5
c1BRQzs4M1kwYD98ZEF2Kj4kciM4S1gqSzM4b1QpQjU/SXBRSFJkbEpSY2YoaylgWSlTfSR9T19V
YGEpa3l+awp6MlJfR2U3M0BDLXlka0xnT1g5QVo0eXQ4Pk5wJCg4aXFzREBFPWRRPmUzMlZ+S0pV
NWJqMzFjMUU5MExRY3dZRnUKenBWQDdaUiNATjl2c248d0FvLShqR21eTUdXYml4VXpPTUshQHN+
JXt3V3plNHQjZUpkWmQ2PUh6VEZFZGt9KHN4CnpSTElAUmoxJTlHRH5sQ310cUNiPFlwKHMqYV9N
N2ZOPDR8YCk5dn5VYDBGalk+aSNjVHV3Q3RLbHtmQXFxMGErNgp6VkVQfVdlNiE9ZjJsIUc/NV44
ckVIO04+Vil1I0N0Wjg+OThrQEVscWZQZkRORGxeSVV1V1JfQDtgbnZYaXJVd1AKekV4P1pIIzR2
QiZ4SF5kVW5GYUA3ITtYMyRZWnQ7ZG1UPUUmZDgqak9FfTMqKHtePmxLcE0lck8yTH48PlJ3bj47
Cnp1UyQmNlFoS05VWE8ldjhJWWxMSktsbGZ0PS1TN18mLWhkfSgmKTM9TiNZR0EqNGhjS0E1UmZV
QmRJfG5lOThsNAp6WlhvM0wmcjApNmNqN19PdHVDVXgqSDZpfm18X3JiRURpPyZHdTFMV1p+PzdM
alNZTkRxTz5RKEJGXzNpJkBfTTkKemxhc1JfREl6NnkyWk5IISowfWs5V2hUQFRYO1p+XiglbmpU
RCtgMSE0ey02JTxndzRMWH1XbDc1VlZ1Sz95Zn5pCno7X0ZGIUotbkY7YzwjJV4rSHxXSWlrZDBi
KzIpIWx0PH5Jc1JQSCRkZTd1WVhAQU5neT0jeUY0WUNEZ0paRXhkXgp6b05RJCh2Vmd+NzElYmt6
eElGZikteHEkeVVNfSNab3dTelBpKXhvdzhOX3k0ZTVAaEIybHR5ZGsoYGgpMnFibXkKelVTRnZF
SmstMjNyKDgqfFQxI2JmWXtXP0lJN1VIXj1zO31wMX5LKTtZV31aUW97cnYmYGVzVkxDa29UNHVk
RHc2CnpnSlp3ZkpZVDJTK3MwKnE8JkhUQXA3RWxNam5nPj8xI3szM1lVZ2h9UUZSbm9qSk1XcjMj
QFUoPHlvRFJmLXV9RAp6VXw2dnByMX1jLSpxNjw/amZWZEtEWThSTF5KRVZ9K300JUp3WTFiVT0y
Km1GRmxpWF9yfHtASGAmNm9RWGgpU1IKengzMHY/QTZsI0NkTHpfc2J1Q0lDM0V5Zl8qPWVeM3Zq
fWFvNDBEdyNSQmRFdFZpeUdVOVF2QmAlTHxfcyQkMndjCnp7aUBsYzt6SX5BRHU2bDI3IyM7U00m
fHcyUyN+JGJ3QHIrbSszVXErOWNGbTE9Ylh6U2whZ3Q0QlpJfmNGflJBSQp6I3xfVUc/LWNLQCNi
VTlPcERJbk9GWF42eHNwYDZ2ZE1kQEs+R3FzMzUjMihJPUNmZXU9Zzs+Kz4oO3BLVEo5WX0KejtK
aE05VUdmQlo8WjtGWklQSVVNUUhEKWRTUiZycFhTeU9xS0AyS2ZoSFQqQWVMQl5QalRjbllCJDZ4
SlkxZEdWCnp5dTR0dU1uKkNRKTc1aT4qQXklflY/U3g3YHkteUxzQE0wUCQzSHRAbH44d04zO3xZ
XytFJndrKlBJYWBLIW8rPAp6cFhwWXZGUT5EJGkoIXM3V0BhOCgwSTFGfW4lP2xPeWtCR2NZZG41
cEhiSXZ4c0tAdyVgajNCRil+K2tyKF5JeVcKemBeQDFFWjRTZldONVgwVENUcTdiVGp+KjhVMEIk
QHFNfUlNbSprTmJBMFJBQS1fUSkjKXEwUF51TVlTcmJTdTQ5CnomZUhUPEo5KzZSbnt4PzxKYjhy
YF9QUkpgVG10eShvWn1Wb3pKYypXVGxqUDAyPURYQHB0bVVta1Y7Q2pFVFRjawp6QXhmTUJ3Mnds
ZF5OUWBSZWAqYlhTSkFZcVUxQUAkKypyampFekdtRmAzI0p0PG5fbk0yVjlRVCF6dlo9NjspWSQK
ekomIylwakc7ITRDOU5tOShRNXUyUUs7VFlFVFk9ZiVFYzk3Mm96XzQ4ZGVMQnJDWXU1U04yUmN3
Pk1CKzIoPWlSCnpYYj89JjI5Rj9UWSU5UllBOSMrVilLI3d1ZHt5eyY7PyVtRFp2KSVkPmpsNGps
SW45JDcrbW5eUyNxU0ZJXjxWcAp6QGlXOTQ5OzR3K0JUTGgtSEYkTDdjUWZnOCZMb0hlZ0JVeEIw
T1hPPXVSKXNiamNHY09pLVdnYXplWTdpRSl0clcKekA7cXpEbVhUX0A5NSZFRWhVTiMyQX1JPXFM
SmkrOGNlOV95dmFrTFNZZ1IlbHQ2ZkoteFNuNjFiYUZXPWVIbVI4CnpoV3NuSUBWfGlAU2speDMo
NWBJYWJwV0pOSk1WU3BqT2AkaWooOFAhI0N7MiUhQjx2dGMheC18d30kMSl0b0d0NQp6OFRKNU1w
JlgyWmYoQ08kdjZOSHhGX09QLXRpJFJ4VEsxRVQpOWIwaT0kaEF4SnxCMm5QfCtARGh7MUR1bXMj
PzYKenN9TDlYb2s4al9mMVBGYypUd0AtQGcoO2JOfWg4cE82RGFCcVk8YkYxS0NBO0UmYXhxdDY4
bkBncmlHO3ZtWVltCnpFJWY9JW4xT2hpa2g3d2FhdEtrPmI+X1N1Oy07T2JVVS1jS3h8dyFEcH10
QH5leTZYdElMI1AlKFl1XiVyPj5ueAp6aWc9WXhRKERKTWJ3KnlKO3VXe0leUF5fTEpZZTxmVVoz
IWojUnAlcjl2aXM3b0xJS2Aoa0xYN0NxYHJRWkZLM0oKeldQXn0+eTRSYXtBSGZtcFQ4eChkQ1hW
dEFKVklKT3YkX1pLSHcrOU1vTVNjYW8mKSQ8QFN7aTU/YH0xSjdpKEhaCnp0MkI9bG5wJl83USh9
PmpzTFdXZ0JkOG4teW1hWiMzWkEjcVdwZ3xxSStKVSFMY0hEdyhEWkteKzFoRkg+SzVCeQp6JSNM
WDgkYXZYOHVwenhjPVJVJSZVLTs3SjtmQXB7KnpiSHRzTXVaa3BLRmItdT4kVm9tU09VPHZCfXs3
MDZPQXMKej9tUj1MX0BMWkhYUkFHJjV4PGJ5c3lxfDArMSEqVEpSRVFhMldzMTI4KGl3ek1aXzxu
WTk+Tms/R29OZjRaNSllCnpxTDs9Jkoxe2JHTmNRNmdObERzR05xWTQrZ1BPWm5SezApJXB+dkVf
Y1R0fk03RlU7Yyo5PTMqdXtWXmhfbm5TNwp6VG52LXdEfU1JdzlWJU54WWs2bHBsZ01JcWpJJVA4
JlJBYDEtfmJNS15VfVFiXlR5WktueGkkM3BLamAxQlojUjQKejIyIUw5YkJ1OWNMVlBDaHprdksj
O0phX18zciRCIypLVT9xdig7PjQkZGspUUkwUy01M0NDUXEkRipmcmJCcEpjCnpaUExzMnt7Vm4/
O2VNfUw5RlQyM3ReUzdyQyZVakJNNWAyPC1uQCM0NUN5IU8zS1hzYWt7cWJ7TSojTjZPNURARgp6
RiErV2h3VFhPM2FIMk5ZVDNrK0YqTFJzQjxKMDg7KlE+JHN6QiUraTR0UkBCKW5tMXE7Yk9TSSgp
QkJHN25CI3YKelMzdDU1ej5+ZWNaJlFxblM1PHJQUzR6flMpTmZ8Y0E9ViR4XkJgKyZNSSNFWFBz
LShwQmVwcD90ZjgyfntJWlJ7CnpmOTZJYjFrPTRMb1heYyRAbDUmT1FgUzY5dWluVnxleHN7dmE9
ZDxQb2lAIyN1eWNeZGFVZylDPWJpO35eWFBpTQp6cnpPMUN4XjBidVBSazVhWWQyKj45dEpgJEly
YUgjKS1BNjVBSy0wVF4oQHdWMkwrTnZ3N2h2RlFseVF6YTdTX3UKejc+O1ZLemxRV3I3bUZRU1Uy
MWsoWE5JKjRQY3xxbVJQUXAqc0RLZlNheWRCbEk1cH0jTTxxOHBtKWxHQT81KGxwCnpkayVWdU0l
VFchVnhOSiFyLVNyc2picEBHdUFRYzdfVkliIT58I1BDUlZvOyhmYy1PYEtxc2F2b3ppP3c7OChZ
dgp6THdqeGdxPj0kfDFlI1VGe0ZnKG9HTypiaCYhWVIreGM8Pk1tYnlwN089e2Fya18oRyMlTCRw
VDN+YEFqV3xTT34KenEjaWs1UkNHT1M7X219bz9ZcSpYeXxfeno3UU9rTyZKa19NUUp2amE5b3g1
aDs9cDMrVmtrUGJIQHtDcXpZflV+CnpoTGx0bGBNY2tfcktVRUVyRHs1Yj9jUzRyYVJrdmlNd2M8
NlJAYH1FKDAzVUIwMi0rdWd5KV8jbUpiTil1TEZTNQp6dlJrPVVRX3pFc242Ry1iQE1mKWhzUyRC
eVZ8IStrMjg7VlhfUmB7RGZRRFF1Tj1mN25JUShuci19cWhId3x8RW8KekI/cXxzSkQ9cDAoXm9Z
MVpxY15DRzlpfkt7N0lpTGN5SGhweyl3aHx2aXxfWllea1FgQjwrZ1ViI3B4R1MxODFlCno2QWxq
R0lPbyQ5PD0zN1opQVNlQU9VSDd0ZDdHOXdCXiFlRj1sRzUqPXgtQnpaUE8hfld4a0o0KTl2RHBi
OTFLTwp6K25DLSlicDcwJFNPVkVTYE56RntyTEZ1JXd6P016ayhXdS1NI0ZidVVVbSFHUzV1V18/
KSFnTTl5d0ZQeFQ7b1YKelRtSnd4PzswX3d0VHdXc0Etd0l0ZnpUWHg4OSQ5aDk7QipQJk49M0VV
Qkp4PntMJnR2XlVxcSNoZ3E7ZmM0X2doCnohSWRuPEBfb2xqKnptcnVlWFpYJHVBZCNQamwhWENG
ZktrKGpEaGM3bnhgSGA4N0ElTWszR34rU3BLSkRyKSM/Mwp6K1VAVHdednpEfFBQS0g1YExjT1VD
OyQ/VEI5OGJ4anpGcEhKVn5rbDBCUFVJWnRrR0JYV3R4aSFXfjlRQn18RygKekJheEJVNnxIUnl2
RHdMe1k3SGdBTUc/N3V2eGYlPTR0cnk7cyYqYT56dHl4R1RkU1FhO0BaS1BpV0BtaGlXZk9LCnpk
PVh4NE9oaldoQ2s0eStvfiZ1JnI0PC1kKkx5Q1hmen56Rmd7PGkhWXg3fWVzQHVUcnpUKTV7XkNO
eEtqeTYyOAp6Jmx2MExVTDktVSszKVl+Wk00Z0tzczZ+T1NyeU8lNXFnIyY7ZD1WX3Q/VD0xRWg9
JVJ3Nm9tRXZWNTt8Q09HVHsKekpwc2ktSG5SOHJXdER9V25HPH1eRUtGQzl4R2E4fF5gJTE9c2l4
XkN1WUhsbGlLd2N5cyV2bFNwLUxPT1lpcFMhCnp2OWQ4dDVUdEZpdmxjeXZhKGkpRFIjdDYkY1Ji
ZzM0UX48PnRhRkpOYFQmMkt1OG5Oa0QrX29lSHFjeCVgSDRENgp6JV9MYW9AQmBZYSFLNypXaFBO
eVJRelFfQDx+KSV4YzlmMzRuZT9PRSE4dUp5LUBmTXpwcS1MQWlTfTdZO3QzZ3AKemxBfUZHKlZl
bHw3USpecDFLeGU2RTU7dmFrTCpnOCU8KUwxSD1CdEUtN0FHU0AxSlU9c0BaNl5QJjk4NVgoYWle
Cno4fTFEN3F0ZGwzd1hIXmN1OXZMWVg7IylxSmgta2RKZGpRPmFlPDdIKjBvck5oPlQmJS1uKzEq
O1lMck5UbFA1aQp6KTIzPE1MYjc+YWxDMH5udT1UO0dFYD1uWjg5NVNpMl8qNlREXy18bGhVcFom
IUgoZXhBMGdafTRAMitVckEwT00Kem9WTV9vV0Zsb143KFhmKCpFUSl3NkdjbXJDLSlnX15rbSox
KkNnPCgkfEN8cnhFcHFzIz08JWdqJSU9KyNYYygwCnpxcVdySnlBb1BEaTlYTEhmI2QpbCUyYmVo
KjgtWH4/ZSkjRmFVNjBVQm5LYzJAPCo7S3F1MERlV1hgQj1CejlRQgp6byFAKG9JbWRIY0lMZTlA
cVVmdSl6Zy1UeFJVZmwpbGVNLXclYiQlSnJsRDxSWFhSUG0mWElXI3dDSndVQk45c0YKejBpNW9+
SmRheDNvOHY0dEBha35JcUc7QiN1SVgpK1ZTbjZ7ZnN7TTN6eXQ1OHtBPWdrSlZ8ZT0henhIb0h+
Iz52CnpeYXN8aVVRWjN4JWM/PyM3fD98dHJgQH1uPWJpPTt0OFFIeHFSZVprKi1LTnVAWWJgWD4t
dlQxKX14ZiR2YCU7MQp6eCtJR3U5PVJYYGpGVypASlg1NTJIVjdAaHYtTysxKmArfHtDVXlTK01g
QWYlb1BxMF9eSFU3XmlHcz0qdD5LUDEKentgQWZmTEY/REtzViQwRiR0a202S2c8fGNrdXQrMG99
WjAlcyM4Z09KRXAmX05zYzBKSGshWWdaRFB7JntidWYxCno9TThMdGkqR09vWX5YVG4jeiFAKTtw
LVc3bzIkdXcpRGx6KiYqeGZpRmAqKzMkPlRmPCVoVUFQWkVqQWpkI0J6Xwp6NFk+fGZMZHpJRXc+
Ql8yeyM5YjxTPTYtKSQhOzheND0mIUxYNXBTV155OXF9ciZVenVodWB7Sl5EdzAwMkJsRzUKemJ+
QGtxTU9gallXV1NPfExOY1h7U2tHVHZSUENxT0RTJUptbT9hUGZUdHpyZD1kbU9CeEBTRmtzKjc+
Mk0yfSZwCnpfYDJFenh8RlBlKnhXSD1qRlM2TFVFTT09SzkhWFd4KDx0fVBacHRsYWVXTCg/N0x6
TEIjO3NVPG03O1E8UjhNYwp6UFB8JURuIWpzKiF5VUQmVlZjcXtlRSRJOEdycU8+Y1hpQF8zMGBW
PzRZdGVxRWBeKnJVOEQlfGc7ZDxeXy0oO1IKejRmNnJDWjZOaW9aTjNYPyhkZDhNbWsoPFduSHxC
bG89R1FPQ0U0WiM3JCtwNSZVcWNXQG17Z31IdSM0P0BlaGRYCnoxVT9eeyEmYjlQbjRgS3xsT3ol
WVgpZiVrI3ZGb0FyXy1BQmA5MnpHY1d7UTYhPzVmUTMxemNqM2xhQ1QwZGRmRQp6JjNXfitTeH45
VEhUZk8lR1RJZlhzbmdmWi0xI0YqQFVEbWNpKnV+clQqc3dFTTNNXyZpN2NvTyUhdGo9JGpBaW8K
emBDX0EtWTMoTWxzZCM/aFVwZj53RDsyIWdPY2kxV0MxUlE1QnlaWGQydFVKfFcyZT8lM2o4X1ko
I0dRVSVHJT1RCnpKekRQQnQtaSR8Tm4lRURrKlJwa25Dcjh1d2h3PHdnOFJkc0IhM0pecH4wQHBa
S2NVXl9OKk5AJVBSWUpwUGROZgp6bzw9Qkh2PmUpLXtLb1M2REJoQV4qUS04WVoteyFHPFg+Z0Qp
aEBLPnd9a3xFUnVmOVRYd1RsNTF8XlJtPCNDT20KelcxTm0rYCY3NVJvdnY8ZmJxIUFEUEZgRTVF
Wk9JYyV0PF84KkxVS0Moc2FGbFB8fVVJdCpYbXQtYnw2KE0jfkVqCnpxYXt2Qj1pUG00Z1Z5eyQl
XytLcSlhaUUyYyhzfmg/dG8rRkN2TzBnVWQkJlJSVmJ9THViSmY0UlY2blI/KjlPPAp6ay11Ziok
U2liZFB4ZndAQiM4TkghWFZRKTlvWDsmSTBLQkZTRkx6cyNDe0ZlZD85VFlpK25oZC1DUUY9eEE5
JikKelBGY3cpIzM/RkFJT0duVT4lYi1PLTEmezhhWERsU2A9bCZTKE1+QH5yRlZDJEwwfnRlamNZ
UiN4YjtgPG9FfHRJCnpibVFxPF8yXyQ1YypeP1VkdDJAPG9xRV8tK303JmI5LVB7TGdZPk9WQCRU
JUlHfTJeOTFmRjEhb00xSyZBT3FafQp6YFdwMzVoVDIhZDRSPW40KF5jMzEwSjNGe0MydXZhNiYx
R3oxeTdpfWNwIUpeZUwxaDFxYHVlbiFmKWtmbDAmcj4KejxpX1Y9JDl9bChZdFhjQjczdFU0SSYk
aGRleER2dzdhbVFvPytGN085ellsd0tEbi1KT2VJPkpxZiVDRHYpSSFDCnpoQEMwOWE9U2t4PnUo
QUMzSFdKJHMjPl8jQWxJWDFDT0NmR2BeaCUpY0xYM1ghKm1MYDBDSD1+cXkzdEVRKT9gRAp6QFh3
XiZsSUQxJGllbkxuZElzN3VHSSNAeCRCfj9PdVE9NXRARmJER3FqQk81TGV4c2tBY2hydihTOy1e
K0R7d34KekZfRDVrbTN2Rl44ZnA0TSZFZnc1OH5ETm1rJVVDSDwlcTcqTSQqSj8xRC1tNWI+PmVH
VDlyTyFSPn04UUokUGJpCnp4IXVRYUc8NyRCMj5mNFozPndVdWVkTExCa3R8WTBkYU5KSjcqQ2dX
S191fiEhOE9rN28oMXMtaHdYMSh7e1RuVQp6PzVzZzcpNWAkU0tyWCk9Zyg2UHBka2ttWEAkRkVq
P0hBJXQzK1VGR0xoQmJkKEFofkIrMHlSUDUpfnNMJEFTaVUKekFheTUtPXckdHtKViZrUT9fJDxn
WDhDMEVneiFZaWFMI3RMY19EXjxLXnpSJDlGP3RtQ1lQIXJjJnNGKVpseypMCnptR18xOHRBVEl+
dihDc094MChheXclfHgzZ1ghQjklfCtyVkJ5fmlaWD8wN3NGQD00QFZhXmQwZFh4SCpVckFaJAp6
Sn0zQ207TjJfNUkkd3I3S2MtMTcjT3BRSHBoI3I2YVZzWTZyMHs9LW9ebEQjSlUtTG1xKDJOYW0p
MU48O1ZuYk4KelJ9UlV0TXdLRTxDaz10TlNsSHh9TT55YiRibiVxdUNrZTtpXzUyS1I3KntANVAx
Kj9fMUFFfCk4RUUkeFIrXyFNCnorRnF1Q1VQJGpINSYwPk1nMnlMek17NElFIXV9PEV7aEg9MGx8
MjZIPVkjcDt5fDJWTnd5RUx8N0I7LXJIdHxOcAp6ZDJubFR7a1VLTjBBVCtCZTIjRT5qQDZpU3lS
YWEoeXcobDhhM198bFlaQWheMmQzXyVAXkVyJStvTWopWlRDRT8Kemx2Y0tGK2hkNWtAbj96Y14h
UGs3eTQzbl5ueDFmeUo2UmJTIX5FPXklaGhyK1JPaEVrPWItVnU/djx6OVNeM1g3CnprZy1ZUlFN
aShOPWtJcHpZdG5ERHVNZ1IxZGNsVEJKb0w0aHtPaDNYKHplcnBneSRAQ24oKnk1LVZKOV93fXlN
VAp6O3pfZikmSmtBdHBUbmhHWGlEfmJjX1NNMkI7PW5we3tTRDZ2MTZePVlFalBEKlltc3FoVWl0
PmJld2FINSFpRTQKej5IK2tyI21xM0dFUV42fUI4RExkJElRTD5KXmdBT0c4ZUZ2K3tZWkUtYkhC
c1doenQ9KUhXKFd2clRmN3dDV2lqCno5I1dyfmYkTUBzR3Q9ey0pMml4cTx1WmdodmAyMDVsS1JA
KSNtJVd8SGc2O2xUM2tEYnF2YnohZzx1RHYhVGMtUQp6Yik4XmErZ2pVTDg3XmJLaXtge3FZPml2
RjJXVFc/STBTPT9YMUtxRGNtNUk1ZTBjPChFV2VWfE9mYkE9Sko4RCQKejJITHgxSkFVYT57UERf
O21HdmcyO1NVTTt6ZXMmUTtye0BRWjdlTmlYeT15U1BQIUxzQ3pZTHRaZylsakV1Rm8xCnoyYz08
S0FONlhNbHl2bWBrOGNsX3h7eWlBK3k0TWckSTNKNjR7RlAwc0spQj4/TEl9dHJIYkdIY0FxV28x
X20zOQp6MHF0RTVtRSkoPWt3dWpFN0lINjFFaVU3T0FNaENVNVdsNSpQbCRoSj9SIT8kMWhWKzZP
Vm5ORGk2b0w7KjYtREUKemtQcG0yQVkoa142QH11RCszVXEjOHE9O093YmdXO1ZBPnNtKjNFKzZK
MkFsZFN3SkxiSmgkZ3RNPnhZKF9qTXc5CnpPPT4/Mzt7N2xGTSkheVIwQjl8NDRTTEcmUm4jciNN
dnZed0NWTDJpc3Mxb2xTdFpYczE3a1NpeCRsY1E/d19kbQp6eTdFPUZpZUsjczNlVURVK0RCN3Rx
PUhPdGUoQHg3b2EyJSlVTXNHQUU3an5MWW1Ia14pQEA7JT01fWoyNWtkYXwKemQ1e0NtV25GMzd0
bj1IITR4PVJTTG5KWjUxNF9sVnFKUmR+JGo8fFRUfnVxflpybUJvVWt7M3NOfXwxdmdUO1JjCnp5
Y2VOcCpJSzVSOyQyeXpsVntraUg0UWMzbmFOPzAoZzR3dzM2Pi1mYzxFZFgtLTlFI2hgeVB1VDBU
JFFtQVVRUQp6WFF3XjhTRj5uOzVqNzFhJXRiQTxGQV8hfVB2NGFqSHJfVl4yTilncVJtLW80bnJe
UXdhY2FIXndZcmowNCVCR20KenooM3Q+eHl+fGlpcHArRjtnJGE0KWhjYjtiblcrXjMzPWNANW9u
cjxUaTtuYXE3ZHdeM1oxIyhpbShVdHNrRTtUCnolR1FAcnlffmFNK2Bxfkk8YTI/OCs+Jn44VWhn
KWllV3UrX0hMakpaJWkra1JCVHRJQF51c05MWj93ODJNYWZvVwp6MW1wcW9pZXw1PV8qPXgqNkc/
Mj5ub2hpXnVeV3JLKXRjUjdUKEppIXlkR0dCM0ZQfSVFb1dNIVJvMCErcz41TzAKenc+Nyt2RWJ6
fmJZQHBGNCgwe1RSWUY2aEtfb1I3cCM8Kj9qYDFge3JxamN1RHR5NXByRXA9dl5KSU5NUkMrPGl8
CnpUO243MCEwQkNYc2R3U0syWmF7bTMrZGg8OGNSNiRZfV5pV0JMVFVHMTBXd2BUUk1OaU9hQX5C
Y3IjYm12Xl9pUgp6Ujw9I09yWmE0b0J2MT5JanpQIUcpTVJqZjBZO3F9RGImJEV7bitZSnNhYk1E
TiVGM1RqIWdkbVhfaCE1UzFqJFkKekNQcCQoODJuOWJVJlEoP3lxYVZlJUkmfVJyYSF2cD4pI2FY
VF5pY2NRaXhxQFApbzgrc3d+XyRJTipqT1paZEpzCnpiSW9zUVAyaTEwT0tHbWp1VU9vP3B0WiVj
NVpuYiZUWn1XSzRwPFk2XnpCYEJWQjZXYXVqPVFZM1RqXktYK0traQp6eTFUZlhtUzlRKXZfM2Vg
cmZOdiszJDlHdDh7QX1tb1kkfUYqQiVqOzRLfmQjcUhXUX1sVjtQKWpiej1vSkd7ZSUKejUjYVJC
O3o4aSV3JTVSWjcrKCV9al9UVElqPUshI2BiQ3coTlh2NShBVj9YOSRPP20lJk5IPDhRLSZmQ2tH
fiNNCnp2LT5Ae2UoRmtIX2RIS1RqTSZlWXcpPDBAR2JVU1Iwc2JKUTU7S25DeVVrdzVRcW5DZndU
cCFRJUczMjBVQGhZOwp6Jk5rcE9mWEQ4Uno+O3U0S0RHN2QhSlJWMCEjQCp6Q2t+bVdTbFR3RnFG
ZzI4TGw2NFJxOUAyWDxLYGF5ZTtUIyUKemdITiNWJmMxWlN3X0Upek02KlhAc04yUFAxLW5SQ3ch
dGQ9ZlJHUX45UVVqI1c4TlptcnhrQkwjPFFVdUVMKXFgCnokb1RGWk82a0ArYCYtTSRwMnkzWT00
Nmx+RFE2YEwwNVVLejRfPGskX2c/V0FpYWJAU1h9Vi17SG4jI3EqSUlqUAp6N2NBO2dtdzhyWkRt
VXh7S1F+fGl1VXlvJGV9KCFWZ1M8NnljaUA+VXJxcnl7P1UjI1hhfmZUPyNYSGdBQnJ3VGkKem9f
SGdyYX4+ZW96OHl5S29odGZpQlVMfX5EN1NmTWp5QkB9TEw9VjJHcyl7dzc8KzM/TGhybGpfWnVx
RnF3ZHN9CnpvdEJATz1iaXg4ezc+UH02WmwoTlkpeC0jQSNySkdjcTgtUksmKjEoYTNKcWR3Mlll
aXF2NGx+dUthSFh6b19hRwp6VDFSb0lZOHhRODYye25zQjFqUVpSVjlFfFcraFc2WCFhSEk3T0NQ
NU9VM2I2VEhCPyUtQl5QaEs0ck94I1RlK2cKejEwVm84YTRWaEZ7N2I2bipWZUptczNmO0JzNDwm
alFETXBacG1oWGV3aHYwQHVhd0laRV5EUFBGQ3ljYVFsbDVpCno3VDJHaiRvbUp4S0xkMSs1byRB
fnVaITtPWjtPX0RhPC1EQlRlbG99YyFgdjdHM2xIUmhPcW8/QE4rYCZobGd5bgp6SkpXazVqaEB1
SGN2fnt2N2MwcEcxWUJuVzRhWW4tNFNDUFB7e1c5cXBsV21LSTwkOD5nITVYWnZZKWlOcE9sZ30K
ejdneF89Kk5ANyo1OH1WWXt7UlZpdWlANDc4Wl8qPm5AP31AJHFacU48fl8lOWJ7cjBJb0RTSHBL
aU9tSFJnRjB8Cno8Sns8bUJNVlpTb05hIV4teHpRQlF7ZjhAY1NlQHN1NUc0YDxGdlpJZDJKZFFu
VXRZYD9MdGJaMSVUYzI1eThRKQp6MmlKVUdkKll1SlUyQ3RXKnktKGd3VnV9MjdCPDZiO0N6bXlQ
SWx6dm89TEIjekFOOCh7e1hZa2h2KGktPngqbyoKemJDYT5wVHZWUzJ7ND1MJihYRXFjU3xpKERY
KXM7PXJ0NDFnKzEkb31raT9GRGEhdl42b0spYTNrKjd2QURsNXVPCnp0TmhKelJESDkyelVxbk1l
aWhlcl8lRSRpVWo7I1IzN0t1S0Ayd1NMV21tfF4lTFBufmpJUGhFZFMmSz07M3gjdwp6KTVvam5R
cHk+VFooKjZDVThGRXc/eWlaLWtHa1dKWVdlUiZffWl+Wj0wZ05fbUtKaWtucWRUNzAyR2g5YXY1
LVcKelR3XkBxeUg1en5UQXpzU14kVkxnPDRkPypCWGckTTgmalRsV0xlNy1qQDxjajRffHVDdSho
S1hTfktOS3FIa1liCnpwTWpvVGhAamB9UjlsblE/SnZPUUpiQnxBe1dEcC12KGF4YUZDd3toeGsr
dVYkd2V8TSVRN05JYEBOeXF1TEYhPwp6eUFPc1J3RCpaeVNofmBAVFBqVllyTVd2cUFIRlc3MDtu
WmA5QV9nM0lPJCRmPEJPVCpAd1RwKU8qRUhrZXxXUE8KelZ5OXlGbWAyM29gQD1yUnQjQ1NpdSo8
SF8lSXZufUhxfCY+Ym1JVmxfO2Q4SExrfjtxNnImb0VTRitjeSRtaGsrCnoqaCRvYj4kZ01LXj9n
Kz9IRWEzZGlTczs/SXdMOzhoUT5HcVczUSlmKXoqQTY4dXFFTENZX3tTK2lDV2BhJFZpRAp6eyUq
JWU9MFg0cThPYTNYOUlpalNHQXFwSClUNVRyV3lXMUxGakloXzF2biEoJEAqOFd7Pns0N21jQklB
dTVHVTMKenZ6YXZhaUE7IzRXWHp+ZUx2ODJmMlpQJFo0QUhuPzxrdilhYEZ5I3RRUCtFJktrWU4o
YHc2QG9lV3BGdDxocTt8CnpycSE4YWNZKmd2dUI7P3RkRTFhZEI7KjB1KlU3I1N3TSlHb05NQDJH
aERuTFpBelB+RmxnMkNBS1dVd0tZOTE9Xwp6RU9OajRMIzRXZWk5KkgxWTA4ZEl4I3pCSCRoLX0y
WExCOUE3ZWpNUEpmQyR+R2JqTjQ7bX5IWCVWO1FKcWkoPEMKelpKQWJjb31YcEByP3pRYzQpQU59
VipjeUpUNWh6Y3RnPmo9MjNBTzEwX0M5KmthcGw+Qm10YV5Wek83bnt1TF53CnpLTCpZYWtDY0NE
RClITmNIYj5DY0UzVjdvJT9DLUk7aH5OPjxWVEpjNClRK1l5bWZQciVONkJrI1AtQ0ojckdiJAp6
MD1pYVRiJFE5Wnk/I3Y8NDhnVChha3UwN3F2P3lDNFpLYVFDR2A0LW9oJVJ0bUspOUpCKiN8VSZR
Q2IhKHolWnAKens0JD5VJChCRDMqZy0zaXsrQVNyZmsjflNIUGQqYCVmPzw5KEp5YXJHJUwkaWZH
eyZQeUFfT3JHNG8+Xz1obklICnpaJj1tKk4jTjlxI2hfY2V6QHxYWXY/Xm5xOUNmY1Y0P0h+TT9O
aGIxLTFZR192MmprQ3dDfUlOazFmfXs2PzVVOAp6RF5FanBZZGt1ZiNaJH00V25jJFdmenYlSnVK
RkNLbSpLNHEtcDxLcSlhNm5uem1oZ0FHdHBQNVFUbSRUeWdfZlEKelh+fUo0c0pgaGUoPWpnSyta
Nk5FZGdoWnNAdWx2VGhUMmVHKkojM3lOSXQpPGRhek5QWistUFhVYVQ5RlJXQjJfCnpJKERJYFRV
PWJVPlNFcEBsX2ZZUWEzcGN1ZTVkbFByXyhpPzdGITw9Pkp2SEM8bDVIakYydjhOQjwleTlydnMm
UAp6bSEzSiladGQ8WmMjYXV9Wko9XjdvT0FlXmB5Y2lrQFJxNWpIb0w4QUkoXkptKlMwcTElNlZn
RGpwS0o+ITVIdiEKendNcU9kbjtsdihyfCVeRDhlczV7bH00Yzd0PFJseEtZfjYhdmt7I2BMQkY9
IUFEQ3Y4Rz9DfHptPXB7I2dIfFQrCnpSLT5pKExxc3Q+d2ExJXZCMyh4bD9iPCpEbGIlbj1ON0R3
c1BpNH5WWmwrMTN3VDAlNGcwZ0hJbWpAI1JiSlAjWQp6ekI+SipKe3xhUCEqYGRCcS1wV2x5cFRh
VFdfY2VCJmckMzwrKysrX2s0Q2VeK01QdmpMKCMyPHIkI1B1SzBvbV8Keit+WnhEYUxFX2tQfmQ9
OSk5R0N7bFcjME85YGhyYjgxRjlGaTZ1V2I/dVhtfTR1Wld1I1MrSkhAWHR6bmkjdlBNCnpCZFJ5
cjlhRHE1RXhtfXI8RjBkRk19MiE5b28yRTlxU2ZKeiFwOXNeaUErbjlNbzg9UTcxZkh2JX5PbVp1
Vjw7fQp6USpleWpyX3wyOXZgQjFCKCVjeT9RY3ZCYyZKVT8xXzNkMlUleCt1Rk07VSVoV0I2PDY0
fkFhP3loWlVJKD9zekwKelh0eChXNXhLaW14fUZQfCk/KjZEUiM2JmZjMGRHa2s4SWJ0Kj8hRVEy
RTBTNi1TfSV1enQ/b3s2NTZreEBhaEdgCnpuK2BHWmtnQ0hOPkNPJm1Qe2VYd1MtMH40MER4PSNw
REZ3QihSdGtYSF9EcFlNQGUhZEp4U15LUjw0O0hnb3YkbQp6ZG8oVCYrITFlRmQqT2t2dit3QF5W
Qm9nX3RoYFdWZ2M0OE1Remc5eUZ+e2R6ISt5Jj9ERGJWLV50S3VrVHR6ZlMKekM2RyN6NXVUKGZs
Nm1AOHVRN31sSE1SNXthPU1iMnl3VCRwUnhsdCo8dypSZig0RndLKEtnJjNmeCV0P0o/bmVMCnpV
ayR0OzR+NnZhNXFOWE5URDlIWEBKIWlXKn5BUFdmPWVARzM8MyFDdGUrRzMzJnF8NmVMP1Rebn5N
IU9QVDQyRwp6S2BQfG4+P2QjcysqaDdvX3sma1l5byZQTD9TI3N1TDM5bS1CTilOUj16cHlXKXZC
cGNSe2VhNGJmSGN6NiZBbWQKeihWTklMaSVWIXtYY1UwVCZrMHZBKjkzcmIqMDE7fl9ycTcwRTtW
fXl7R35mZiM/MlAmZnNTKjRiTTBLXmhtTjkpCnpQPTsrc05ZayQpYyoyTiRtRGArUEFETEtuPGN4
aypMc19gZXR7JjNVTXdhKik3ail9KHNFWnVBSVM1ZXYkXzZvegp6NTRCdDxkcDcyaXYtQUYkbTdI
MnxtSHRPVmQyIStXMUhgdSRfViZ3dFhrclQoY01walFqIURLMjJ8WVN1dUlMKjYKeng4Z3EmTVd5
KEVQUGc0T1k+ak1AMHlZSCEteTlNXjg/WmdgKjA4SyNsRzU4e2hsaWg0bnJKfmM0SDE3VXVQZXRI
Cnpee2FqYXk0SExuO0BDQnsoQyhSfGp6dXgzK21PcUhnVV92V1FMTzZnKUI2Nms3cVVzSz52T2Q2
d1lRNER3KG9Sewp6NXEmMGBhT05vKFRBMVUhVkN7eShmTip3KDBRQVFeaXNWem1tIWRWNnteQFA0
RSkrZ3huKnYxKnp5VSpoe1ZVeHIKemJZRjtINU9wbSNgeTBYNiZUVS0wO19nVn0ydDtNVjdBJFpg
YjtkX0kwPSlCSEBKXzkhWUgoP3VDRExfNnMkMFVPCnpYPzYtRzd8UlUxQ2dNKkFBJD0tcVYmZylS
dip3ckgmV0JFT2RNO0o+NzxTKGM8OSk5OD0rUWRNd1czVWRReUJTfQp6PEwxcUJVTCgrOVl2PzE9
Q2IqcCVHM0kmNWNOaExGYW10UkxnPnx8e3A+P2U0XklKPTFfN1BiYE9wN1lBayZYaFkKemstO045
dDI8dXRISXg4YiN8IXpOLXBMS083e1NlT3RrU0lOYXlva2NMdldefSVgSHlqX0ZZIThfYFJndE08
a0RGCnpCc1ppKz4odT80UEVUVGNXNH11SnJmVnhKN3xnJWZfViNFVWFBZEskdV4/bGQlV2dgWlBo
NFBvKlR+PHFFUiMzSwp6S01wVVFCZiMpcTBFYFg/YFlnTy16dFg8OGZpMU1yQnkrcmFZT0EwdjU/
PCtITjRNVUxAI3RgUypPIXx+SV9nJkcKeihFMUZlc2JUYjEpV2BUd2NORWEtaXcqUXt2VEsqQlJX
JlAjSC1qWCtHQ0pZXjBOc3A/XzRUY0x5I2BHU0g+QDwoCnpWPj45N2JlV05lOE5udnEmSWVwRTBD
Rm9jO2VHTUI4b0NXWjwmQVpfIUw7aGFPZXZDRldlU2ElJi19OWBrNiY3Xwp6a1hkUF51KHNBSHJ6
TVBjeD9qITZgXlpAY3VSZzImPEo5ekZARlY0NGlrRVVYa05pYiM8fSs9Jis5VUpzQ1NBSyEKejsz
PmghZW9sUkJ1bFFeNV5IfG1WOD8xUHElSEdOP0tUbClsTG5KRUBlV2VLcGF7OyR6eyZLe3kxMDJe
RUBncTx6CnpAZEx6P0IoT0AtTj1hdEZIJWVEKDxibzZ5PE1Ac1Z1MERTallaXndCeEBDajtkVVVj
Ry1ydlkhOCNkQ1VmVytrQwp6azJuTisqViszQ1NIbmh9VTdlQmdhS3VLMkNSSERxKm0lRUVwNXBJ
N21SVD12WX5YbiNlZXhNTCM0I3FzSTZGV0QKemslNTNvSU98eDZzOSkrPUg7SGh6KjNQVSNyUi0k
TCVBbiZzNlAkSjluJitVbTd3YV4jPklFWiRKQFNiZG1IX1ktCnpOQVZpQlpRKz04S01xZitlYHd1
N0Q5QDB4I3VQWUcwVjklZSpWQ0hLKDJZN3QlMWNjKEg+cj1TQ2Z6cnEqNEVTVgp6SG5kRyFSZEk3
P3Fndl50dzdhQSk5Qm1QN2JeWU1eTW07Z292dFhaNikyP0NFWiFCV0RPUXM/T2lycXxkNXJlbUEK
ejEwI3sheFVPY3tPRSNBc29NI2g2PGghaCZEfSZRMz5PRm55cl87NHB2VnRoMmQxYm9GTUg1SWlx
JldhKmNWV09rCno8NCgwWERsTik3ZWxPMUVGfnF7OWx9RD05Pi0/OzNUV0YmMChnP0x6cEc/JSs8
ZkhrSyRyJWImdk5HUSQrXiN6dgp6JSVoc3hKYCZYOSh2czVMTUE1e2ZLZkI0bjVpK1VSUGUxN3FG
Rm81R0s/OUR8SnxYSU1tKTRTTF9ZdFglRkN8RkgKel5+cEtVUnhKN1RJaj5DY3JeWmhqVGp8I2o+
JFpBNnhvUCVkdkNGR0tsVFFISyEka1BXQWVgWmU4VDlMM2JFUShHCnpTMHEpdEh+Izx0PlY8NDB4
XzktcnsxZU17ZSpvJWxlMSRlX2tkfjQ2MXJkJEtiQXlBN3N9M3tEaz1tKXRiOEYkSwp6QiFiRnlk
ekt8JFd4I1NjJE9McD0xJCVGZGVrNXEjQiEoTGVFNWxae2VgdF5RXkRKe2x2NHZ2RiQra2x0Y1Fn
RkIKenp+MDFsdU5sQGYlTGkrbE9NM0A8JDt2ISklUmJWODZTI0Jva1ZRQ2klQSUhUE03bj5PJjBk
cnZAOFB4bngqdD0xCnomcCNBbShMTkhgWCVafDxWYm1tKU5pNG96NntwQG9KT1JsKGwwTz5zLS0+
PWQoelMxZlM1WlQ3N1ZiLWtOUX15fAp6MUJwUjZiJi1MPEFLdl5zU0h3T08qWSZsUGJTKXl8YCMo
KChoTThfOE1HUkhkakBRVGBpK1ZSQXlAJGtGUG1QYSoKelpTSnBhdUNEWkcoe3kqJV9YJX5CQiVF
YSZ3Z0dPM3JaSFN+RmpRJlJqYWxnMXgkNURpUW9SWEFIbzlGfVUjWlhFCnpfPVEkdlgpWjhidW5S
VDs9ZUh+VVluIzxQTlZlc15XbVp2PncxTD9BV0JIb3FaZUFOdHZgMSN3NjdPKFB1T3F7dAp6PmNj
JGE9SVFKT0dmfm9YWHRjY15fNj1tVF9pWmRYdTktMCtTWH5JKUR6Tkh+dFN9RUNoOCkrP1FeWnFL
PD5pMG8KemMkTShEZyZ0PlhiP3h7Wl8wTm5ZeHd9OFE2RGVTUHltSGBtMmY0X3ZSUVArT2Y1TGc4
PnZ4KU9nJk9XezkzK3hRCnpaN1FONzlvPD5UM0ola2ZiQigwP1J8JXE+R1Y8OzFFYlNjSyshY1oo
anEkeVM7T0JyYik5NmltS1l+NjA+SmZOVwp6VG1Kd05jKyp0eTw/TnYyTTdKaDZDSjZiRGU0RXQ9
QihUVUpYRV9HNHVaeFJZeFc3bUc3bFhwNXNgcj02XilqdCgKejgmY0ZEKCk+cChlaDslS0NOSFI/
T1ZFckJzSlo4Xk5DU2lJUDFONS0oKFlhMmpAdDZsKT5qZVZNe2JVbjVzYSNfCnokaVU3c2ooWVE1
IWd2OFN0IVR+VCZsQm56IWNBXnNOb0BBSiFxYFB0bVFERUo5elpgZkc3ZldEeDZ1NEtAYWtWXwp6
dnJsN25fQ1V+PnVJfndrTW4/UEp5R0RIRTRucSQ5cSo5R1pQRkdpTEV2JjhiPi1VeyozWXxWJVN2
UzRrPE5wOHYKejw4SEtsZCZMbD1fKCNEfC1ydUIpPH00YjJuOS0/SWptantmZU1VUTBleExCSmUt
WX53RX4zXzI2czdrfFhsNnFjCnoxZD5rSSR3ZTNoZylDMlFhYkEoKjU4NlVxMypzTShsZiF5LW5y
S3FvQkZVPDBVUnFDYUB7TyljaWclQys3I1FHbgp6NzNiUUkjPVRuN2I8X3JwNlJxQHJCJEcpTD17
emRyNWlCWTR1Z3BsbjBQPWVwUk5nOHZaS1p5ZWRpP0wkUWtAQFkKenhtKGtJLXt5TXZnRkc5Y188
bCgmdTYkZHJUKig3Tz0kYyVeX2IjcVU0VjVHUzBea0FISmN7JXZFVzklSkIyQDh9CnolcmJAendA
fFJqOWslYWR5WCgoPm1HTmVzdUlwWVhAZD5qP1ZgYTw4VEg4O0xDXz1OfkhzNj0tO0EwckE0LUR6
dgp6QWNGU1I8QElleE53IUI+MGxkMTdDdmBtVnRsMnBTKDI2Vko7SSo4dD59PzU2dVhZKy1gKiVn
UEBsS25tZVdPUDQKenJqZEs2eH11OWV2XmU+TDU9ZDlkakU8cGtee1hCLSpXJU5CR2tKQzZlK0tE
U1I7P0czbXkhOFdtVWx1R1IxUUpUCnphNj00eGIqfmlBezczTjlLc3NLejt0NiNQY1ZEKVkleHZ2
e2QyZntAQ0BxeSU5VUdQRiFOeyYjOyh2fWJLTmEzVwp6YlVVSWdadGhMUFRlezk9ZnR3K2QlZk1V
IU09SUdrOz1IT0AxJk1zcWsxT2VQKlchJlVWalVSWEl7Zlo/TX42cWkKenBCdWIhOVIpMld3QCly
JFVESUd6en4wZTAmcDxhRzR0bSE4endHYnUkSGhAZ0s5Z35GdV95ejVqLWEhdVdGRjF0CnpibGNF
e3VhUnhfblk0e1lia2xWRVo4WW8oRSp7dDwkRUhUPDMkcFgqZFJGJDQ7eSk1d1R9T0ZzOyNzWlRo
c2BXZgp6PGl+fTsmZituX3ohKkppdE5TamNsWkA+QlRRbU9BTnFnITIkRDtnRntoUkUoQmpOWnA4
JFQ5bT51UFFVQ2ZaMUwKem1LenpmbGVCKmlfZkp+b1o3alN5cDw3MnxhaTwlJj9jKUk0T0tPR1cm
cCRKT0lzQUc3U1k5c3AtRzQyTypNQGElCnpWJmVLWlN7c05ha3xhXlJxaXA9cXMzKFJQJD9qPyYz
aldweSFNNChBbGxWZipUKypod0h3YDd2PyZlVFk1YmZaTQp6ZTRucGM+M0RvaGFPeFVQT1NgZD51
Ul43NmVyRlVAemteNyV4Tz1TJk02fFY8WCowRj9TaExQU0M1e0o3WDBoKHwKekZDT1lwbl9GRjA/
I2tINlcmMVVpPiFRMio+e0loIzRsKmxlI2VXJWUteH0qOzw0ViUzPzRnPCstYmBfRTcqSShFCnpJ
bT40YEtUS0NrZC0wM21CdnpLMWopOX08X0J5YjRUWj9KSkZvfCkxUD1rVT1LYWYydWw5biRLJSVN
N2VkY0JRaAp6OTQ5UUNDZ2J4dzdXWX14dHU7P0I9RWdadjF9UCgzPF53Nj9hWG09bmR0O3VOI2R8
TnFQWWZSJiNVYXBpK2JPPXcKejhJaj5KWno+ZyNAfVY4cm8hSEpzRzAjejFle1Q0QnNPITN4eGp1
I2N3PUw2JlJpKEhJMDxyQVQ8VHF+TUBAd2RTCnoqIzdgYykxPmdQazhpRSlXNDN0am5YVEZ7bUY8
SmF4U317MlJtZEM7STI+MUlIeGNhTStXY1JZJlJpN15YKkpCNgp6QDtzTVAoNSFVcHhVRFpkRDs9
Zlh3MyhGMFo3Zm99V2lmPV5eOD1PNmEwbTV2cFFUK2lrPSgmJjFAKWhwQiNKcloKek13a0pOTSN7
YEdGY1leUjlAKCFee2oyQUxPITFENjRFSX5WdnFZJC09MFowS0IqRFFyPzBXanclbzxuNUUzRipy
Cnptc2lteC1QR1d1Wkd9PT5JWGsyU0I7eXt3b0w4U0lOfmA2enp2dE5PU2NwKVhQMSUyMnBJWkRu
U1I/cXc7TWxGMQp6cDR2U28/UDZ4K2xuUV9uYXEwQl9tNiFXV0wtd3pUMDY4VyY/ViV3PDVJKmFB
Qk9sOGpUSCQ7UEBwblNkejlle2EKelJLMG1rekxUUU53LXtVPkcwfGByYVQoLXdfcEZiS3t7Uj4/
dVphRjNsVT5yNVNacm1EQW9BfEt1Knl8PSRSd3sqCnp7QDJwQyVCYW9+WUQoSDF4dm5DY1BnfnVj
QUg/ZW9SQGNHYTZSXk0yP2hsZk0pKzQ1RkZ8a0YtRksyUCk1PUs1fAp6UH4zdD5QYWFwVFUwdk48
JVdUcUxUdD1oKkomZH0lOzRWNk9FRiVEWVQmOzdPKlRqWF50Z1NUSkVvfD1OdXd7YlQKejglbmsl
KWE/b3lNRHBFOzFBPW1XYEtrMn1DaGlGI3hWK1A/OzdzQnY7a2w1TG99dzlVOGIxQkFec2RZLXBA
eEsyCnpOaFIwJU07PER3dVJkc09IXkNafCtDOWFgbXRybT5tZkE9akRHN3lSTTtJamVqa0k3TSZH
XiYyNSU4KXs4MCZEQAp6TnExPis5R014aHhKaDAhKDxGP2shUV9uZSYxTEVPUDFHP29ATDVaSFk/
O3tCd3NBO0tKTTVFa0MpWFR5dWMpOCkKelF9TFNWOyVsOUQrfVpnaVM1fUBgQzZEQ0VQPyQqNl9X
NChAd1FXKHQmQ2B7b0NCRlh2ZnhaXkNTdyZObD03TWBZCno0K1FiPWdFWVR9clN4Z2h0QFZZd2Mj
UDlaKzFQfmJrTnwqZmFtdFViY0AoIT0pfElFPFNAP2NgMndMOSUwQkI1Ngp6VVE3QWJYaWlsfT8t
ajV7UmdNYComVjRLQnJ0ck97cGpaMjYjJj1nYnY8USZIQ0IzcDtnaGdJNTJpPEg4Wm8lVzsKemky
TlBsSjYlLUU7dDJHc3QjUXlhYjZjISYtMnQ+SEJvc1lCPkg/bSlIT0U0Z1JVVFFWQylaY01gNkpO
OVNEe2hmCnpGXnFRRUV9IU9uKiNARGc+bCMmXm1YQi1XQ0BwUXY3fnFjVFlueCNwSTN5JXs2LWRE
IWNSZyRDLWBWemkkdS0hOwp6KUtVd3lAYT8jbCV+UiRYSGJzemZkaXomMVd1allPK3N8YmVnbCVw
WVBgTF9heXhSKnJmdz5Xb2htKzFnQmQ8OEMKemVpaGZXPyp2YHp2Z3RRZ1BiYGAlK3YhJVRiUmBX
ZVZINUArb3VDamhTZDhHO0NPLSEhNylta1BPUmY1c2hzOHowCnphY18wbiRIbCVJKjlEd0BSOFQx
bzg4V3VhRmF2U21mITc9aXAxZkI+cS1aYGIqS09wdSg0dz5RWk9YK3AmQnJRUgp6ODwlTTBwT0BS
SHRzaktuMlgxXnhzPnk1T2VQLUs0Jj5eKndkJTRuOGQwOXx7d0Y3V21fVXI0azs9OD5YWjRiZyUK
ekleTFAyPlROIWlDRTh1dU5qWE41QWAkSGZfI0p3YXY8ITV3Vz5LZHBOKG89UilgeUFEU35CKnsq
PXVjMklsVEJZCno7Pn5YMCYjR3o+I1ZudlNqK1UrRWpDYFF2dXBLYWFSPSRuPEtqYC1FdVkyTjRz
bWJCZSRpez9eS3lmRnhZVSFgTQp6VjtxK3Y7ZExjQGdpe3pjbnRRaigkMmNYRjFKSDk+SHtMaENr
aklPPXpAQGdsYSFleHhkbmole0JsTkRRKH1aS24Kem99Tm1fSEE/anluYGR6IWZQNCZlVD9hOytP
fVU9cVBMNU1+Ryk4KyVpSHdmaDd8Kj4hMEhYakR6e2gmaF8rOD1hCnpGOSFUVCkpejstelAhPEEo
c0xxZTUtckQmeyhzeXUjVTQ1Z3tPZXYoYj5kUGFSa3BOQUI8Rmp8KG13MmExc01HNQp6WWshSVVB
a3VXI3d6ajtxdnlOOFktY14oPERMdVktQ0EkamIjOS1CMkpnQzlGZCQtPV9SdiNYclJaZ1g+eUNS
cHkKenR2Y187VU42PH1HPCE+KkU/RSpkVnZTSCtsfnZrVUlWKnhsJilmaiNAaXsma18rI1FiNC1W
TXRIeVZ6RVVgNT19CnpDOG5Xcj0zK3ZyKypVTVQ1Ym9nVHNJN1ojTzdCKkk/KFhqO2woUFd0QCp2
JkYmcDhNM3FmbW9SdnRKVFRaNWs5dgp6cUhuKnI8ZyQqV3t7Uzt2KHhvXjtHP1VTSmUyaXNRb2FI
SVdVaSRDLWVyR0A4OXxwZDtkWFp8ckMkdVNRbk1KZEsKem1ebkRndUhwYFVxYTBMMjtWKj80MHlW
OThnV094aSY7Qzc4Uz9nQnR0RTZfZSNHR2I4cV9UWjYjYX5UOWJ9I1NaCno5MWdCQ1Uwa3lKVEtA
b0VNP2Jlb2QlN2QpellGK3tePFJobktHTj4+QllBSGVGdn1Fa3hnLStnSl9+WTMzO3M9Ywp6bSYx
UjZfcjVyQHoxMXU9dkwlQ0k1WnVkJSpDJmh4Mlo0ZXhNUishc3IzPjUxcF9mPT9kfF9IdkJYSz1C
dUlJcD4KektrPVchWkRNck5ITl9DaHopdThfYE8oTjFJTEpKWHI9Y0JkPHxVUj9ybUF+N3A3Z0VM
e3Y3JlA8TFMrJjxGfWFxCnowRWt9KHlrQnFRNE40Nn4+YD1oIWhHbCQpVTRXP281QU9jOCVyQzwq
PTFYTF92JTkqRjhEP19fUUp4RVJ1Ui17VQp6QHQkODVfPTU4R0dTKmh9aHtKQ0BoRXhqOGZOX0oy
PExPIWM1QlFnOTtxNENvY2V0QTRSZV9jNTVAXnlgbzNtJGUKei1+cUBPSj9wWlNZTEtIQ3k7QHo1
S0R3dD90R29HfSlyWjNmaCN6UWVKfGBGaWhrSnJnO2wrSnhgIUMoIVRrRXB1CnoocTJuN2ppIXt8
UVYzY1U3P0wxOVVFR2lmPU5hVkoka0JOSjA5RHgtaiE3T18kPUhnY2w2b2lyU0VLJlY5fXg5Rgp6
MzRCQW4pVVdpYE9LRyYocUhqSUNxYT1uJSpkTGdUcE9sUE5ISS1WYSFKfHFRQ3t1cHNodj1Wdk8/
PDJTUl96bloKenpXX0Nydz4pd0MqWX5lZWxsRn1HZXs1dCt0emdeRjM/QGxaTloxOG5OWkZvK2s4
RSY4SWo7QDxxa0xEVmMmfDtkCnopb2YtRFg/dnR2T19VKnU3TG5VJkJhT3AySzhDI1AxdiEwVURW
dCpDeUBhSGg7cj42RUZUeCF4dHtFMlVFUFhRZAp6I1FaYXQheTE+M1o2b20+azhedlhsIyE+bWhV
fl8yN3YrNyEoQnFEVnkxeEBrNGQyNXsyeEx9eDFnWGklSlFsOEYKek9TWlNzSlVKJF5FbzRRek5n
ez9vSDxuZHhxPkxVdVZVQlVxejA3VWxQSThYdGt4bjxMb3dQb24oZiV+fVlycXkhCno9LSYteila
JkU4QiQ4P1J4USphbXIqZV4mJDtNQzNVS3taezsjUSZKQUJ0PEBkRGBBUGpnWk4qKmYzUW5wK053
Vwp6ZEQ9VWdAfCpqWClwZ1g0M3hKWUh7e1NmKl4mWl9pUkM9SmpeQmhRcC1yWVdWMDREJChhJmNW
UElIKihScDBhKC0KekYqdiVEX2hQSihgWk4xS3tBUlRIblJUcSZFVmxgSlo0NUdiNSlxN0xnQjlS
K0FhbD0zPi04Xjs4Zkp+LU9IVF5pCnpZNzh8U3hyfFl4PkYqLSRBZUNQLUgkMHFVP3Zndj16ZGUy
cl9gZ3syMypLdipNIWRSUSpITV5vX1VSI3o0blZfJAp6a1dZTWR0LVZnPyM5R2RfLVlTfiFSQk9o
USYxP0k2YzhTQjApayoqbUAoeEJpKk5wSD03QDE4QChlMUFQMEZtbGIKeiMhZ2h6bHk1R2woKkZS
b3JMTEsoRUx4X2JWU0FMZWhUV31VcExYT0kwR3o4VHV4K3c4MmQ1U0NLZ0JOKD1APEhqCnpuPHM9
Yz13UCFKJXF7Pk1HVWh7cWNOfishODZLNXVRfUgySlg0WT0/VHw+JE5xZjRofCt7WVdZN1UhSFZm
OGlDIQp6LWd2LVk+SCphaVZQYWZ7TyFPUmd1ViNpUG1JezwlZHYpMElAbSFMcT5UUHFFeW5eI2pt
Nzx5QDB4b2VJMjRCbl4KejhmfWZuPnpLQzJpbVJOU3BSY1c2KXZnbXp3bkMqTmIhSStYVkRzKkNS
RmRqRE5KMV9LSTQjYFFPeCRNOzV5WWtaCnp5UG5faCRLd1FsMyRFVm9lS3lrbSo1KUFAam1QZ1d4
I2Rzcm9iaz9odTdkT1NuKCpJPEgwXjZrendrQWNxdntaMQp6LXVmYVA/UGVkd0dQezZvMG0xOSpV
b3FXWkYoN2IyPkZyR31Va2FkWWBnMkBWXjRkeys/UTdpaEJhWHlJbnh9dHMKel9ZRVYoVDZUZWBO
M0JAMnUja219a1RGNz5XNFhzQzB+al5nVXduUz5jWnpoJFFeYjAxdV9nUldDYmhYcWdafS1hCnor
VjBKe05hWVg/NytgZUhiTXQ8ZWNGdHFCb0V3TztRREhkKWFYYl9GKCZgI2dUVSV5WFV3Q1cpbkBC
JVFBTCZpdQp6UT1qaTt1VDc5Zzg5SG0wSG4qQk8/LT07PD1UTncyTy1sMGIkfFdGQDteNHtVcCN2
ZHYpMUcrMXVYWHFwQFQ8VlMKekMtNmdmZ1U4blQ8PmEhPD1jVlNIdnBoRVQtfnFOIXB5Mk9VQjtm
SW1jczI2Z2l3Mm88YmhoYDE7YmJeaDFmOGNICnp6fjtSUUlweSVpcEVCdEJpYHUpfXY/dUtRcGxL
Q3tEI3N2QGJLYlBZUWpCN2BiWXNJIURMS3ReQTdPWWE7WGxFVAp6M2l5SzAjJEZ4cWtoNkZvY1kt
fXE+JmI8ZFh2JjVAWGpVTWtvTVlPKDglT1lFI3BRJW97dkV1dXl3bH4rbTJzdE8KejU7U1olUWJO
QXlfJiVLb3VnfjIjO2BmU3RMIzFpSDU3JXtqIT1sP05kMmxnT3EocXBGS19laD1JMHZBcEdAbHZF
CnpxY29Pa1YrSzI+bHUzens7RXtwNEU8byMheS0lJXEoIWwjI2lXTjhWWn1xdzkhIWQ7entfUjxN
RSZmKE09PHRfPgp6Slg3SW1GNSVUUSV+QWFBUEo2aFdCI1Brek5iV319ZlcmQGJsRFJkQl9RYkp+
bUtSdU5qbiN9dnNvaHd5PG5VNUoKelNNY0xDXkghVnRRMjNYQG1LTjUmQUgySmI/YihgRHlTZ19+
UElLRk9nMW01WmxhTV90KVRhSGNKWSVUZSNYWFBxCnpIbGc5PXdNaXJ6bTYzJktsJmJsV1U9bnZM
N1JDK15HSlB3T3o2bkIyJCtoZCQ+WjYmJFgoZ31xXkU/O2hDWmk+ewp6a05pWVR0eyFXKSQkMzx9
M0A3bSohK0xIUXVSTlE/NkpnPUNhKjtVT0N6UXtKOXthbDIqMWtSWG9BQnF2Y1h4SzQKekNHaE1i
KVR8TjJgVklKN1hLKil7I0Byclg4UU0/RFJEMyh8ZCUrJHN3JCRkKz9eIVBgbzxfOU9abFBPYEl4
VU9rCnptZEJSQ2kjOW1wPyl1YHJZQl97KF56QmtEVGQoITA9MmdIdHdPcHltSGB3YDdEQUxrcVgl
IzFtUjFEdUswVHF1egp6ZHZ2SV5aQy1TbS1YVko9Pms1QUFMUVpnZGVqT3w1cEI/LXYoWXp0Mi1Q
P2J7VzFgK0F4ZT8xX1pwe19TNSh5aWwKeiFOKlNMNzNBOUkheCY8PllyUVYhWChObVljMSojKWNa
fXEpMGVmXz14O1V6TXQhO0ZfdUJoT3ZobipLYHptYlJHCnp6WjJaKUlZe0hUK2EjJFpsOEN7YURD
IVdsSzxhdnF3STdNfm42RlhIRzJWVFpOS3xXPTRuZjwlQm1mNlB6ITw5OQp6VyR1ZCUob0p+eyNN
MWV5KFFJST12fj5ofil5Q0hDelRUNj8xYVJiQG9CXk0xbyQ5SnJ6d1leNmsmUVVoVEZMNVcKek1X
PFhAZ19kPVhXUlplU05laUJVPER0Y0wrR1dQOHNNO01pJmVBS2REa0k5byZQTkF+a15uVW9teE1l
PTt3RlM/CnpubDdQdVpnVXV0NzUmP3VxYzhWST1VLW9iJDxYTkAxQExjKFdBVG9lX0FQRXA9TWpD
VmhGaHE3aEBEa2VDMG1maAp6NSE1JGNLJjsqX2JtTXNIYHkxaSN1QmBSYUo8cExMaGY+bndoVzZo
fClGSXg0OER6SSU4O34rczktclpXZClCNmYKelh8OHpkU1gmRHs5TnBAZE1jJl5LdUVpaVR1c1Ah
eDJhPz1scTNLX3ZURUR+MzJtRFFtQ0VuNTh7e1V2Mllqek9ACnpUVlRhbVNPNVZHcX5JPiNGaSFg
bF9gY2kzZFVsSUdxV1RQKWgyOERFI1VyeypMbDdpMztJMEBrMUV4dEppbj12Ygp6V2FtLX1GU34h
IUoxUzZ9N05aOF95Q3RkUl9WJX1TUWNWVCtuUDR1VzBWRWtkVkhnOTI8I1UwWUBKQFp9ck97SUMK
ekVaMnVvbFNlaiszPk48WT5lZloqPCoqS0wwLWwqQ0d+R3Y4KjF9dmdpKWtjQU1KOEJkM2VBdytt
PCVXYjlPUUtOCnp1MHZlY3dSIUZkeVN8PDwyfXZUa0J0SmNQKzVxZU4paXB1TytCZiVxazteJCVy
PTtUYkohOFdrNUglUn0wVWY1TAp6cnM+eiRRdigoMEVNdFVgd3xmPihteVh+UEdnLVEoZ1JBUzgo
YG9XV3tqbEBPdHNfVF9VVDI/e0wkcm9GZFhiWiMKelpnP3c/aHlFa0dsRiNpclVDb3VYeigkU3ly
aj1QKzF6Mk4pKU9ZVitRfnY8TjdoaC1eTCVgbEVIP3xRKj1IeDdtCnpZRkwwPDIhJFVVZjNeWTdD
bWRFYVJWZDkkX0k1aDMpI29hMUZvbzZucEQjaC1UfClNSVo5N1dQd0lRZ3lrMEw+fAp6P1FOeHJL
UVI2ZjBQQnUzVWJ+fXdUbGpfSHR4Z049VShkWipWUzYhWGt8flphbWtQbH5SSShONi0hLUAzYD5Q
Kl4Kelo4Kl5OTTcyZztmKn1kTlZIMDd0bVlmOTdBZDsjJkE1JXcqSmJ3RFZuOUhaPSs1cHgqUlhV
fkNuUSFMcDFlUl44CnpuK3AmQyRzNyl4XkhFejVNeHdQP1UoV1Zzdn0pOSU/QG1jSyglSyN8PERW
QW05eWFrVSZhdGt3PC04SV5pfXB4Mgp6TS0tKCZRcmlkMHFrKW1zPVJOQz0pTzZAPlN1ZjwwVFdm
YShWPz5LO0oxI1BhJEZJS31TS09DQjEzWVZNO09wejEKelhJcyZBYGAxKXheb3hzIXgzKnclRnRU
N0d1YEI9XjArV3hKYis0UGVYVz8tXnBKOFdoOzJGRng7Iyl9PVU3TzhBCnpke1MqVld7TShyYT5K
ZGYtbykwbERuZlF0cnFXOD11aGh6fDhqa1hwVW9ZfnxAdEcmS09UPTVkZENKT25GYi1BbAp6ZEom
UHh7Jm5qZzApODZWZF9lSztwUUZpaGNOSylQblB0UXcpcjR3WEUxWmwyamwyK2Y7LWtGcUYwcmds
WWQ0OEMKem07S3RYaCNPJUYjSlNHWl5TckROX2YoNFprSi0xdmBjSD5gRGA+eEJ5MSRsclY3TSZC
LV55fDJvKHxMc2RYc2ByCnpWX0Q7QmRwYXxlQ2h1WX1jeE1gXnpLMlZCQGJZVWY2SjJQMjcxZX1W
bUcjeGVuRCtPRHJuanw+TCpeaF5rcU87ewp6JVZUbiQ3QGk2N2A4KnErdlByQjtDemIjJCpgcm9Q
WHdZcCQ0RXxtSzAxVn1gaXV6TEtVX0xmVXg8dVlKZDJuNkUKejxeS1JkODJpJSgxRmt0eSpKJGJv
aThaZ0NlSmZrMiZ6TTFZdXVnTmBrckA3UjNncFl7T0h8K2Fve2x+WnNJYDUxCnpiVUJFMC01U2s5
TmZkQkRLKGp8MEc0fiMwSXJhUmlvOWVkYT1GUG1hQDgrUzZrKjlRQUc5U0ZFcG1oRWJrNnRyZQp6
dzA8SHA+bDEwKE14VXpRLVRCNU9pJXFkbVdNVzdQM007I0hfMiNpV1E+KnhnIWBFPHNZR35KMVM4
fHxhVH05KioKekM+d2YqQWRYazIyZnVwdXhua1h4PVpXdUluRUdTRjl9JWFYKjUxUDZjKDFLalZR
WHU8eE5iJjJhMVk2SzVNVnhMCnomS010P0p5PkkrZS1pdkJ5N0hJQkl3cWZ8JkorbUA3TUBFVUJQ
YWVuPVJFVHU7MVFvP2BNbSFDX0hfNyg7aFRMOQp6ez9FdFMxYjRiXj9BZj11cDQ0N1A1MDszbTgr
UFZWXkM4Ym54MnNtYSNtfFAyYyFTMzlMR2I2b2pJcWNmZnlLMy0Kemw/dCVQWjA9cExePFNGPHJ7
aThMajRFT3I5Qz1kdk51STxmQ3thYFJ5cDlqejJaO1YyVDs2SHo7YUloc2J4N29kCno7U3hhOG0y
SUdUZlJla0k0Nng0TCF4aUtBOXZfMkprfGVqV2YoKUZXR1Z7JXJLeSY7TmY9NDUhMSRzWS17dElp
cQp6N282VUJuQE80ejJ3NmxpT2U5R0RaMD5TMW8mZzs7XlZZbmVZVSV5N1FZPHFgRjtxbSFSPj9S
MzM/OFN9eUtxJTAKelE9RjtZemM+RDhsYTh4V2EhdGJDTXV4TClkQEUlbmFCMjIySjBWaVc5an05
cWdedXBeTDlEZHRlampRWXFnan0+Cno3KSZCNWNYMGNrM2BvSDJKeChoM2g7KGEoU3dUby1VX1de
c3grO2F2R24zU3dKeHlsWCZTMH0kQ2dPV1JXMDNNUQp6Rj9eQjhQKFZHO1pZIWJVYUg7ZGhRPHQ4
bWsodFpiJHVoKkRTOWJIZlV9cSt+NEw4S1A/VW5MR0g4cjx9SFdKOTkKelc9UTJEb0c/eUZIRzJP
NVBXeFR0N1BEUFRJN3FoSlRVJVN+TThHKjVwU2xsentQZTdROVJ8a2d7eWpYcz82PTlFCnpIWmFQ
RjBQVVBgSl44T1hjJmIlWGEka2ticTN0Nigoez8qUTc8XkJrI2RnK21ZdWVTO3gyUmpmWk4jKFc0
ViMmPAp6b35JaitIUmJ4anYlNVpSaz1uISQrPWJlcyo5UnYqamRqfHRtMWt2UllPK25GcUM+Z095
anotRyErO3N+QD57UHsKelNlR0IhbDFYRUlFU0IoKmc3JU9eS250QW1iSUhlRnR4ZyhIaHJKdUp0
NGRPenkhQVB8SiFXa19EWip0dTsxUW80CnpGbXNJNmpYenR4NW5SVStWK0AxbCF5SUllXzBkblA9
O0dsYHllX3N4NkNfY015Tl8lRk5jP0tYbmQwcF8lRl49RQp6VHt1WSUhNTlIb3UqVz1kZGlDfE1N
dEdFPSZyU2A/dyNJZ1pufmF5dCQ/I15TMS03dGV4fDdPezBVfWwtWVBOZyYKem9EK3xGbGY+R1I+
TmomPSE/Oz9PSX5XfTIyTzBKNCpWZGZadXhtSFlsZGxZU0U8b1Zwak5sSHtFSUtCZWMoKllxCnps
Kj0zQUIxe0cyKDtVKTw4V2txNzY1aUlaYFA3I3VMbmx0WGMlX1p4aEIrMDszK0hFeW9NZHUydWk1
PT9VKHN4Qgp6KCEpXkh0emVlKlVJZENzZnxxVFhFN3koKXt7WCYrc0lTTS07Z19Da2Irb29wKGNv
fU5DJUhWRlhZI0g2YkgoeV8Kem1zeiFJJHpgfl4pR2tyKThiPj51Yjc2Kz0tOCREa0Ytbn0qdnM8
ZnI5ZThUZHI1Nl51cFBAYzBAYUJ1QmReeSYmCnpKcCVHWGcyUSY4cnJ0enclIXEkPEh6XjNHYzFR
eWAhTE82JUB3VFVMVlNqQ0hKa2h+K2luOHZ4YUFaXkBxTyooPQp6MjJXcDhSV3ZVajNIJTNQcmY2
NkNvQyRMcmkrPT55Vz1JYjgzUDRaY0FaUE8oIyVsKW9eeFluSWs2MWREIWI9TFkKemFvTk4kI0Y3
WGt7djJgRXQxTntgTGUtXnZ6TXstNFVTR1FXMnRWTzkpYTlCclluPj1PRn1uY3xAOEBSMElWez1T
CnpOMnYjYVQmOXVZdHk8IyQwOFVZPC1eNTtJTV84UHdhQWFOenRecHBeeXtjPVBFfWY9YkV3Ni1i
cWVmUFFUd0tsKgp6Vi1iTE0wJnxiY2l1MGBeYmRPbG1ub05rNmMrMkR2MGBEMGxfVHMmV3M1cllj
e1NQSjdzYHF3MUtVY1ZwRW9TeyQKejVKbVFoRnNfS1dKQzhpSz1taz55ZEdoV3l4Zl5sSHZGRCVt
SygyU2hRKSlBS3FmfWNhNGBsTVkkMUZlKGwkP1JRCnpeJn1wLXMqITI7UXJieTEmQ2l6K2YwKW05
U2ZJZkdrZ0xYaXdYfnJIQX09e0RQSnlxXyVwRlVYOW4qfGBVQjlKNgp6RjBsajs5QTt2WUcweEU2
JnVaaD55PnNleHMwNjB0UiohS1hDKXVxYHBFbz57Qk9oK21VZHczPm98fHxkUT1McHMKel5PVkdE
PFUxKG4yMEM9MSN0Q2NHQlQ5Mzx6cHVkRXkzXz5IP3A1NTEqJm4kcmtJZHE7RTtTcDdxbXljWXNn
UXFwCno4ZWBMZEtkb2RuX0xqd2gjJEhMSlI1M3wyeH5kVko/KUV0MmxoQEx1dnBSO1ZAV0UkZTgo
ckxrPFY2Kj8lXihAJQp6bGlZIzg+VCo0M19MUVJTQkd3WUs+M3szVmx9QCpOYSo/cE0kdmM7S0M0
UUI1Jn14IzBPTld9bDNYSDE1eFZhfjsKejBhNHF6dGs7KU9IaUFkZztrSDNKd3xpcFlCfC1vc244
KFolWEJvIyhNXlI4LVVmVzl+YS1fX3JKJk10PVhBU190Cnplc0IoWTtOemBRb0xrZGxiJXY3WW0t
WGchR1RCKXFWWG4xVjx5bi0xaXl9Zn08TUBacSRASHdUVldRdz9TeWVzOQp6bXo7aCU9Q0lhI2Ju
PjEhK3NxNVc3ez5oWiN0I14hZDsybyVlM3syNWptbU5PP0I9UmY2NnlHcjk2U0RFXnFRTG8Kek98
b0loJFVjPjtZcGQjN2d6WH11JT15TXQ5IzJseT08RCNtIWtTSF5UeHZTaFprRW0+YTw5OC1KcThD
a3VTZldLCno0fW9uZ3dmaFV9K2JjKmQtM35BME05Vk5kdVF9KkRTQ05hVUVIeVYjTWEjPm4qTVkm
Ul4/alJ+anJ5fn48QGtIegp6JX5NNVBQOH5iVXdJcWZxST1xcE5kMSUyYjJnLVZtZ0ZQej1KUmAw
JD9QV3d6ST1nZnFtMzxBVyt4U3lVeHFHYngKeiNAYylyRmZXPDY/T2kra3VEeUQ2I2IpVDxDJGFI
I0A8KUdUVlc+JE03YHxjVHdnTE80I3xPN2lQYWZwZzk1Sz4jCnotQStlaygjPTFfP3coYTJYc1A9
fWNqbFY+NDs0KXNeR0olJnJUdnxhXmV3dDReQkd5JkojKjEodT5SSFlqPFc9aQp6VUVXJlZLYH5y
OGxaZVFgK3o0RmIqMTY5WiFEZ0Q/c1MzTmFEUlNhSCY1fT90K21DRWpaOHUhZj5AOUVOejAmUzQK
elp8Qit8eFFeP341UjdBJCE0MkVmckZzaFdWeTJkLTZzVz9TKyt7NWh1ajJoWFNuJjE1dGFxMD5i
PVJOc0IpV0NkCnomWSV1NXo7ZFUpN3olPlIjcXFfWUhMZG1LK1pjd308NW9MNT1hSnM2ejRvPUtU
dnx0Q3F1Tj5CK1UmSkkrM142Xgp6NCF+bzYyQGREalI0P0pKZGhTKHduO0hEcHBYfWs5Nk8lNz0k
UkJ1UHIlXj5KM1l5aX5vY2B9VTtHMExnPkRGRW4KekBqdD9pVzVmMG1xNDUtSW1yJmlMO3hldkox
OEtvdmM/PEBCTDB4QnN5YWMwOEBYQX07IyR3ZDBVU205UkdRNSgrCnpQJlFTQEZtbD1hSWpAPVJK
UnglZnRkaVk0QnBkQDhrYVA5KnVjclBFY29XOFl7e1YpcUg5cmt9SyFROFhKKkt2Ywp6T31+Z3M8
dGZ7ZiEzUyQjOUFoNSZ1YiN8czZRdjFHb2xCPGdXfW9QTkhVfXx7TXghV2wqO19fKEswV3cqWlF4
eDMKemVOKmptQ0g+bCUpKE44QktIPj5EYTB1RkBicnxobUhFS0dWVH1XOzE8KDVNcitVeXZYbGg9
MSpJTCY9c0ByVTV3CnojX3R3NXA2XlczSDg3RnZeN1B4RUVNekdnZzJ7eyVvfCYoaEhJSWJlSkBB
OD53VH12Rm1hM3JUeW5eOTlfYnh+NAp6U1k+bEBTRktTd2JZSXF8OSZJVmtjY21ZN0E2V2opSmBD
e3gwRXhhQlQxaiZYVHdNIT5mPjBzejNaUnNAMk12YFMKekdEPzV9ITZZMTRyOG1QfThWQDRaT0Bi
WGg8NTRBRU9EbD11UmRXa1N0bnUoTDhDUWxKZyY2fUNAaSlRRzd8WT5aCnphQHRYWFZWeCNxYnZP
VnZkRD1zTkwwQDxIVGdDUTFDTFM1UXZEQj9EKFBtWVZ0KismZU1CaXRWYzItVk1XTj1BMgp6JDJH
Jjc7cF5lKnh+YVFNUV87KEA1dkByQHR4PC0qM0NAd0x1QkxBO3RgZ29pTmc9cWs0e0pFdF5Fb2tX
Wm1zZyoKensmPXNTZWt1R3U4ZHI+TndIdTIpSFkrPV5BQ3FZPHcoJFRZTW8yciFJQXZ+RmxnWjx5
ZVhEaFFKV3xoYjNnPTt4CnpMPyN6eGRAN0s0THszS1Q8I0t1Zi0yQnR+TiEtZUgmRWlGTjVoemU0
XkVUcFVgOUxaKjwybD5USiF4ZWF4fEopYQp6JD1eYkEzUV9oPlQpTGtoezZmKkt5ZUYoZldvc2s2
ZW42RihgaiNiIV5zWUo/Ul5pbT1oMig9P3VqMzZSZHwjX2EKeloqM28kc20+I3xoX0V8VW1OK2Ja
SUBObiQwe0JNOU18dGpiaUNYXnZkNHlVPmNDakZqb2RfUT0/VHEpWXU5YXZ+CnpOfVFqKGB5Vnc1
S0dVMCpPTUgoJU8laSpeV3g3TzlFPEwjJGZYT0V1M1ZfMmtuZj5hTzFLKXljPS1uVVM0RWBxNQp6
QjAzJCF2JXo7N258NldIVnkrdSZXajg0VTNnQH10ZGdpIWE4Ky0pdVhOQmFRRktqTi0jVT9TdWNY
MCM0a18/PDIKem9RI2smak9NdnZrRWM0MG9UUWhSUXREdV81VnRnTGsxXjhxQTE3OX1uOHZLQ2F6
UzAkPEV7QENyPk5AbFk5VzVzCnolMytMPThoezZ1R0VOMnV5PjBqLTtwTHNyaW5RQihiNWUlR05F
Zzx6VWRuRWZBSU9xV2pgOE8/K0E+TVUkfmh3eAp6cEFvenZxai1QRHk1NW9Ee1ozNnNNenAkaz9Y
TnU4PHVmTl54b3s4RTN8Q0M0TXBJMkttZ2hYLXJqRSRyaDFaYkMKej40bE9ya2p2e0BQPFZwc0Rg
T2ltbGc7T0p5cGk8Sk8wfW8+SHNiQTwlQ2ZrKTElaSNoZnMkfHM5PF4lcyFNN29sCnppeH5vdWxA
TERlSiNjYnNTO2hAb012LWRQaXpDd1JyPUhxb2w1Wmw8YnxqR3gleXsodGVfQjwkbHF8a1dHLTZP
Tgp6OE01d0Y7ZCVPKyhiMnBrc2EhbUlVQX5Rfi1weDE5Nn1ffWZXcFVocXM+SnJ+UDFQKXt3NXpr
SEhqfUFveH4tKDIKenl0bVhCVk9BTDhPfkZgcD4/Pys8bzFORjtaTkJrNUpsPzw4XzQ2WHRVTXFO
UUJZMDl2ciVAIUhaX2FiS2tiQ35NCnoyPVJXU2I4WH1odCMyNUAyeEc+PF5jfWlhc19IKW5KVm9L
SEQoWmd9WD9sZ1U8U1JkdzJJTzNAJHIxb25odFFzIwp6WVp+anE1OCYtNVExVyRfVFczP31NOypF
PnVESiZyaiEjZk1EfmdNd1UpYE9Yekt4eHEqX2VueSY4c2dmZXBmdWcKel9mfm9CTVl+Nn0pciU1
eW9jJHxPKlRudVcpP35NXig9TjMrb3B6WXZoRV4/KkhqRUNyey0oTko2OEI3TmNyQzdACnp3IWMm
Sk83bUw7bkdhMiYlV14yWC1FRlQoYmQ1MXkkfjdPbWMhNEw1YXQ0MXhVZ1JtbEg+Vn05O3I/Ylpy
Xl4qbQp6RllgPzJibExVR1JKdy1kK1R0bEBRVmgzSUdVUX1gNkxJVSR5O19zdjc0NWQzRz99N0Yw
PmshczlLWHpaZnIyPjMKejU5d1hhe25oNylHLTBOVFJrTn4mNVZKOyR5b0tKUkdYUDI4O2M8QHJE
aTRQbUREVz9pRUlkc2xhbypXaiQyeHRRCnpeNGska3ZPQDg7T29lZmNgNVljVnRTSG11bC1qbDVM
Xl95Z2IwKFghezB9cCpAYjNHNktKdytEUDtzJGhFV21vXwp6QWJRdG47Qj5MQFo7UTA4YV5nNXxw
fGptRXZlZSlQOC1QKU8tbnIjVEFvPkNVdFgqcnV5MCh8NCpfZmBFUWA0UHkKekpvZFo3QldJT3p6
enE5Pk40PFJrdG9UZGVKYncrWD8pKkZBZHduOz0oVUBiSiVLRzNESzNIIW8yK2tMQzVXdD1uCnpv
PSpsVXg0Tk5raVE0STItbFdtTyl8e045KHtEZFJ5enNCWiZ4YVNuKmooc3k9b2QwQ249UkYjYyYr
M21HT1VuXgp6Nz1nfEtEcyFDVSg9V3dlNk1oK0pkYkYwJSY4cG4jRnNtd1JBN08mIzhPdGErK1Rq
fl9STFNZSWVNZj1YRyFrNykKejE2K0NXdUk7eEx0Y0BGQjAhSDlUPXpFVHBeX1QzbztMaW0zbzVJ
JTg+dnxyV3NBXktwYU00TTcyJDdzZUI2MEleCnojXko/eilpNHd6Qjt3QFR2Zmp3YERifXdnJU9z
ViljUjhPMz09V0RMS1p7UE87IWgzdWI1QHZMWH57Sz1aKTVnSgp6S3hId0koc0BtU0t2bz93JX4r
RytSPHp6Rih5dWZvKTRXTmdTOzRxaVlGNG52Wno3PU9lJHlCIyNIaH5LK0RFUXkKemhsfUVXaH5r
RVFKNFckR2ZePTtwcXEpLVRAMitrbU5YfDA1QX4qfHgxX3h+Vm52JSFIK1U/RCYqOztzI04zXj5y
CnpXczY0ZW1CWFopYkJ3Izc7QUhoWj4hc2w5R2BafjhubFZfYTNoNmVWJi0kXnNheHxUSFQ5WiVJ
ZWlaMlhFSX1Fagp6dnxVRXhVcHgpbFVNN2l6RVRzQT9rK2tHPGZ6KWF+M0dsQ3E3Y3pLJFR7PlZ3
eGUmXz5HMUBsbGtwbzg5MERiN3gKejlEMyV3I149UD53KSg2WlZyeVBJazY0bClIWWhGUWdIRGxT
MUZxK2o8USQkZEpNbWRKN2p7PjcwZD9FIV9KSUVZCnp0YkpxMCZ+Nj5TKXk0X3hKISEpUDwqWiRv
V3BERXYkMGVuJSZpQ1JFIX5YeWZjdjhtQkVmMi04THZTTmhTWl5kWQp6QDw1VT5iRz9GPy0xWGB+
OWZ4VyhGQkV2UVAwKzZOLUUtb1BoMyYyVXI/KVhLdkxyR2ckVChCZUtFIVp4RTZXeDkKejZLKzZg
K3JYflVIVVZrMUp5Rj1fKEcmdUk4dD1SI3FGbjEqVyNyeCpAYTMoPGNDNCNCeEBVc2Q8emZrM0Uh
NFo0CnpmTyowOXU3XmNKcERkcj57e1JOJlVzIWN5PGRAdmZFYilFKnFoI2A+aDRyPVcpYmtebiF4
RiZpNnJLd0tsYmo0LQp6big4eiFnOG4lWWpZR3RtZ3tffjVyP3hyT1kqWUl9Nm40aE5iJWdGcm1j
Y21TX0JHSj5rSFkjbGo0bXxtWWx6fnAKenpEc2l6P2FrXm1EJVN3PGA/dnVSMEw/JSR6biFIPCkl
a0tWY3sjMyMhTERkRloqVk1iWnRTOW9xa0dMYyo3N1ZWCnoxOEhkVHtURGNIISFfcGVhLXxye3VV
JnI9YncpOWxKZEBNekkhX3E+KGNVTC01NDwrfEotJj9eQV91c1UoZWkrUgp6TkFKYGk0MHo9bXMy
eXcxSFFTRkJ7Nm09UFM5YnwmQng1NWE3dmtPe3hiSGJzJHprKClec2hlZ1BzOV43d3hhZXwKekFU
emxBOyE0UlA1d3NFVkRSbi0qXyNjT3RZa28xKndIdUBvVH4xT1oyKXtkVj4mZlN6UShNISlkbm9m
a0J0Pmo9Cno3ck5FfDAwWmpaNDFVZllCSm1jYWByTkZ4Yn5jKUdQb196dnY/ZT5yVGtrfkpBO0NR
fCt+QE1IaHI9Mk5oa2hKKgp6LXJITWBSSk9YO0dgWGFMY0RjViNCSH1rZV5QbXY0Zlo+Tm1CUHpw
K184KXtnXnYmP2chSU1pMlBWO0ZOQClsVHAKenVpK2Z5c1hYI302T3VTSl5DIWd9SipXN1c7emVV
fjN7JjBRKyV3SHszfVAlWm9FNitwSjlzJGd6QEdLWmZzKTJmCnpiZ0pFQCp4TUl1RUVQenQmc2Ur
aC0tbVNuMDNTPUBIdF9ePFNffURabEdAY0wtcEo0aHk1Y25sQVU4dnZndGhAMwp6QnpffEJEKGtr
Qj5RZEBEd1N2an0qZCZLO1JPZ1U8KkMydkg7fkIreWVXc2hIe2l7aF5pRENaJGlHZSQjTiN2RS0K
eldDYld1TFhkT1JvRFhgZ3YpSUxWWWJCa0FxYnd+Y1UtPFhneU5eZFgkTk9DPypya0A/O0daZ2dI
fiM8KGQyYEtjCnpPez8yTy0ja3o4cXJ3X0NwSlU8dzAxb0xeeGB2c2hBaCZ7aHZlSFB0U0B+SGNN
LTdqQmdUO0J5disqNmdMbn0qaAp6O2ZvOURpTy1wUFh4RVMxX0BePkBSISF1VihyWCU0VHc2IXlO
d19BVWltcFNoKW85Z3NOSE5vQzlBYGFpM05+QU4KekQ+cEZNMmFAb1olbCllTGh7Nkl4Ymx2e3xq
KmRPK1lCKlI/aWkoWlFZVThSQG1HNUp2eGNIQ2EyKCswa1I5YjE7CnpSXlM+WDVaYzc3NyU8QGlW
QzRaRnshIV5wUFpNfig8Iz1ZK3RfbD4lZ31scHl5QCgzbUZrJFA+V2F7JFllUy0wagp6LSkoISlR
NmpPb2psZGk3Tk9PYiF7e1pGSW1nYGNEXj1wOWxMNmRaMll3Q3MyZUJGXm9MRncxOE82aktfUGxh
MzIKekJibkJleDBUM3MzNEJ2YFgqKm5NbnleTT0xSH0heCFIX31jPTRKVkQtMEB5NTskMHJzIVg3
MWZ0I3Y0eitPb1Z6CnpOMHswQWZ3JGFPdElJdSYpfUpfckQrJDU5OFMtcWRGOXZZbS15QCZVYjYj
b2pPNGBBLSVpR1BAQktlJiV0UHhPKwp6cG1MKUhQdHppbClUSVdWenRAO2ttbyY5QEZnMEpjTVF2
fCFDRENgN3YxcktVSSVCX2FTcCFzO2Q2MUgmZFZ9bGgKelEoUzZ1LSZ4IUZ1QjZCRWhDaEVGKWJa
QXtYU0hjU2M1dEpwQy17WVYpTF9AVVE1X3R5WnBfaHQ1WjwkSEgmVV8yCnpHOG0yellPY0U3KyU4
QGpxPT1wbDh3SUx8KzFRUHtAYHNfUnF0bEZfdjB9aCpjc3kyKWxeQVlZald3JHVjUmFFdgp6UnhC
Uj87akB2UntNOUc4VTxsN3FqPHdSKiRFTXN9TTdySUAleXd2c3F7NXFAZkR7M3FwT0xDPjRVPUN3
K0FGb1gKenZEakhiSjl9cnx2e0dFUk9HMEIoRjxUaWlPeHBfWDt+Zz1fPX43MjRwVyE2PmlxVDdT
VCE0an1zVG04Myl2Pm0+Cnp4dzU8NFo4KkxnVEhVZ09BXzRpc1dhcHZDJER5ZnBBZndINjk/Pl9W
OWkrKT9iJGgwKiUtPl4lM3R9WD01cE5gbwp6I1BCaGFjbXBUdVlXMyoqTXhgYUBtMlctMGY9V3Q8
a1VXOFVXVX1MKXs/IUNfQFdyUCshYTdORDdzQGx5e2N0O3UKem9pa0UrZFJOekVuT0chSCNMRmI3
cUFISHhrRUxfVjlablF2O25UVkBiZitucm1iU015RU50Sz1JYXJeWmNLLWxxCnpwWCpYLS1VcXMj
P20ySFNCU2lDKyshV3NPXlBHKEU3bFlMTEBsO2Q5UnZLYz1fUSVZK2Vjd0VZYUpsRkw9ZU1uMwp6
emwoMztvPnUhQHt7WCZSSGVARlUqUGlAVzliOFQpNlp7elJgTXUzNHNIZHVKbyZKaUpub1ozMW51
T3dlSjkqVEAKejglNzNIPVBYVnpSQTMkbEpsMjFTXzMxOGRCVEY0WEpqQWR2eXVrdEVCeSskVmFu
RW9vaWomMGlIPGxWKG1KJHQ7CnprdGZXXmNxJDFQPjZ+I31eNk9xNFNkIWFNKTZfdWQ0OWA0YXIz
N2FtSGg5bGBWeGBmTmFIKDRJWXFoUU9IKkdqdQp6VzFKV0ZUYjQoLUpRQ099YkhfXjl2eVJfZnYk
fGAmUUtGalA0eD94I19qYm58Mz9CWEtYKl41ZVlZNVpHQFo9THIKenJ3ckYwRkA4QjxJdTN1R1Zk
fVMxXz9HR2s7TCZqbnVeYDYrOWdMOzN3VGdqe3o9S3xtSHwtKCZ0SGFqREUwUWR1CnpEX1M8Qzx3
M2RmeE1ebDNhdDhwQUkwRzIzVjZ4S3gwSnBTVjY4Yy1xRWxeKnhTJk1pXiRzJX5kPHotd2goU30/
JQp6TE9id2wjLTdJSiNGZGdIeEFRa0hDMUlZdUpEd181al9ibnskQTE7bGVYdSYxelJ4Yzg4MFY1
V2BWTz9RSUM8MkgKelFrTDV0NytUUyNKLUwocXdtcHxuXyFYPmFjRl5pRlghYDZIZnhPWGk4aWA/
TDE5Mk9XNXNXSnc9Y2E0WkpaSXdICnpnbmxqM3VCO3thYmFaV01XQ2w2KCQlNGVKNy11U18wcGxT
MndjKEhQbzVhXmtkbkJnajxfVD9NeDRCbHBJWj1kZgp6UWdUfjM8YiVuczkmS1kqeTFTQjRCIy05
WXomPGliJklqZ2UkYytxTFM7a2VLLUY1IX1HdUJ2fFBgOXpBcXUpZDcKejl9UmRUO0dNPm8waDMr
VGJadVRwM1M5WT9yZjM8RFFUSEVAJEJjVGBiPzNuVTAxRTFmYlRraSZKeyEyVzJgYG10CnpicitK
djU0LWJqSX5hZ0YweFFTd2R+b2lUWHtjTjJjUG5wZEV4fklUeGZ+NFQxWj5WZnpJaHotWWZyJmkm
JV5pQAp6XztgfT8/JCtTIzVLWDdWXkFWT2clOURadTtQdEQ5Mk5lWUJNeSM4RGtNbWJJYHNOLXxf
SEgmYGImbWUkX0VeXyQKejEpKjRGeHQ+O0wpYjMqMGJnKVZnOWcxTzwtTlB8RmxuZ2l8U0Rucjll
XnQ9I0g5YlJDdjZ8bWMpN25fdDN4QGtGCnptbnUzbU9ESVFtSVVJbWIyUDE9OHdfWkIlayZ7bztk
Xj5TYEZKaEgoc0B4V3tTLUJfWFAwfEV4a1QoSlYjIXF1egp6cTJacXdke2w9LXhZcTQmYndpP0Ij
NnY5RmdtKCtjVmk+SDFeJnAmcSZNS1pPQUJTSDJtYzhgPDA1U2JqMlVXZ1IKel9hOGNWbSV2KVRo
amtlMkY2X0xna3w4V2BPOGNeO2srP1dKUGF5SVJFMXJLMT5kP0RKKjNnRFJSRjY0TUc0IXZYCnp7
Mn1wQFp4PEBaOz1jYGVRJk8xNng2WnJMO2ZkcnEkPWNBZUlCdU1mTjdBe1F6WlU0PFlvRSNSX0xt
JTYraFF3Nwp6TFg3WVJUUmVOI3dRfnk4ck84JCpge305VyU4bjZnbj5hekJUYT9lNklwWmhnSzl3
TlFFVztkYCRSRihFKlplRWYKemRAYi1GI3JgcVZaZ25qeF5GQHtgUWRWMUV2QF47RShBZ1VtZmhW
OUQmUDh6QXd2X3JkcCpFWVNUckk4aVkhc3hoCnokZSVXUGU4NzczX09EaExzOG50LW8hYVA2dX1M
UT1USytgflQ/UStPa3tENyMjUGEwZlJCXzJVX3BhKnUjYWVmUQp6dmA4IzheSiNzbyN+JntNOXo7
QyNLaV99d3UycG43KCZpZih1MCR5QDQ2SXlqV2hhSXNzUnlsT1lNTllXR2UlPyUKekB3cnt1O05w
Y0MmOH5lPkdFIyhFcT5fRWlZdW1mNlBVZFU3eG4hMVU0KDR8YENhcnlyK0J1PzQoPStXMTJ1eVJE
CnpyK3N0fjd+JGomOWxkXikydVpHX2pLZG88Vip5bzNIUVFeZ2JVZ1JWMmkpcntRRFo3WSQrPEAj
REZ1SEtUXjVAJQp6ITZiT3FaPj02U0V8Tm0kPFlGKmJiaXFFTnh0JUEmZWs4ZGclRn1LKHt7VlZM
Q19nZjV1KyNoeDtzOFRqTz5ZbDkKejxTKW5KVCh1fjNKcztlNFFwSDl1LVpYOGN4cSs9eCVmPDZY
RSFJSC0kUVRIPntyI2dQNGNYP0NRQDhPZ21ZKVV2Cnp1WlNXfj9DN3k/Q0EpMjlQOy1vZGw1JT5T
cEwqeC07TUJCUiRmM0twOERxNT0wOUhmQ1BrKEIkZCF9bWQxaCVoYwp6KjdDPikkc3JNdyhEV3p6
Un18XldFbmFfcHpzVTRxUWs2KlE1NHBlZEozUn5icTQ9eGV3Yj1lNm1yX0NWNnVOPnIKenpjeWpK
QUJlM0ImKVcwaUNIJDlgX2k8QClpPW5aam1LTy1CTWhGUj5nbXdEWWxqP3A2QGc5WHxfVSVWVUJF
X1ItCnpTemN3P0JDalV9TiRIVlRjNiFjX0orO045ekora3dvI0hmY08wdEl0UFhHbFleRXU2SDhh
UV5qcVhqUiFQdGZ6fgp6UklIYFM8OyhZO3dgMWBhen1rfG1VTHcmZ3tQX21jQ1hTOWtBTUZQfSVE
VmpATURUcE5YfVIha2g7ezIxdjZKbkkKelpEQUQ0Qnl0YERaMzcocEBxJSsrREV8TnRGTUs8ciVZ
UG9SMGxiTWYkcUs/PFJBVk8kY3FEeCprUSM9IVkkY1UtCno5WXpUNWMjeXtMNjNSMzhQNipHZ0Rf
WWQ0Jk1pallKLSp8Zm00OVY1RFNqRnNNUWNBREpYRW1EM3V7X0Q3aX1XUQp6WmxuU1doZCp7Z0A8
dm9FNiZOMlc/YkVHdS1ZV1JIVzI/emA9WGd8Sy1kZF4kKVpARjdQXndvcyU4KXZyVHZ2ZXgKenco
fVc1PiZNUEFkaXM0VXUoO1F3KDZwOzxIJW9ZOWFzLW8zZ1oqaEVyVmRBQFluRn17bD9iXzBPWVg2
KkNvcSp7CnpsJnxAa3cqTFNTXn1SejxoN0MwcS0lc0pAWDQtJU8ram4xVlhQVzJiKlcmd2dPeSpa
bSorbTJAaFV2UT5PI1hHVAp6c2B5Yk4mQElmdUoxdDRKSkdfUVI3e2hNSHooK3FYckI/OVFnMCMo
UV5YJF48JFlsZiUtJEA7IXhqaTwjajdNQmAKeiNXfkBySWRlJkw5VnUwKjZ1RGJIeEF1N1dyS2Yz
QFM2WChiVmBeM19oQF50KSVQaTZVQHBsayZ3QlUzZGUrdjNiCno8OE9nPFBaRD8hI0NNVlNrNkwh
bj9XRFQ8SE1YZUkjM2NaX25HbHZhIVEodUUoIU44dl8lVzwkVDNUdXtUND5TTwp6Nk89UCtzfXNz
bDVBfD02OHhoOX5sa0hQQFZeRF9MRXAlUCN6OVEydF5AfEJ+YD8qO256WilFNUJyYCZJP2FCNzkK
ejJOaSZmdEVAJklSJXJIViZiUEFtYnQ5dGxOMTVDdnA5U0s9V3xIQXpsa1VwRlAtTnFsS2R2al5l
Z1MrWChMT0s5Cnp1Z2c4YG1VOEg7WSo4VWkoUWM1KWJHSVg+bU5FNk9wTHxYNV40YD9PYFZXZ097
NmVsLXE9RzkrWlJVZCokQyQ1Xwp6ME8kQiF4KkZkMkRlOyQ1XyVvPk09R349Kl4lYWR8Z3M1Yz05
e2dAYj4mdV5kXmY4eyt5Y2U7WnJ5b2BMOSE0NTQKenJCU00+U15VcD93bUxxNnFnPX5yNHhPeDct
ZnB4SHQ9WSo4Xzc0fj9KaUhOdGU5Jj9VMmFiNUlGOGI7JURrIWNECnp2RDtlQU9HZWgjJVdqZkBO
RitXOVpnfUNwRHRFIUpqOHspQGFpU0tveHE7O0tlJEEtY3JORVc4aDJ3VzRmQ2QhUgp6NH55T0B1
KVdveGxHbnI5T0B2V2Y/e0JlM2dfMShWRilHQzE7NGtHfmJgTFBBRU45Zn1ybHNHeD1+ayhSX0ZW
TVYKeiREQDIxXz9QaDQhMXVCMHhgYk4yKk5EezM2bC1qVFlpT2NuMDFgNHVWfT0+KjNGNXJ9MEt+
ZlBrRSFjN1FgemBoCnpPTDtYdmwxcj0wZ3B5YCloRWs9Rlc0fGZeI35oMEI1Qk4qPGszWT9oY1p7
fXZRR2hYJSNzfTJhe3tafFpPIWslKwp6R01fRiVJNHkjfTFKZ1duYEV5P1ZFSWQ3QEhvRXNgbkxL
MndMOUc/TWs0UnE+YyVKUUl7e1ZAZXdKZG15Zml8VCgKekFYZ2A8a0N5fFNfVTloZXEya1lwbili
RWVlUDIlMj9ybyRwUztHX3Q8JWdOTVpkY181dTZKT04rMj9QcitWTT95CnpUZV8xPUlEfFpMc3hP
JCl6c2ZmOyZSRng0a15LM3JqfVAxSEp8YmZVcS1gYDdgKD1eYmctQyFuMWhFfGZKdnI7cwp6biVm
ek1weTZxeXJxOGpDOG9ualYrLT17ZGJNOVJhO1RNNTVLWjlCeHpqdEY4eW9XKUxTR3Q8az4+MX5q
Q1E2bE0Keko3WGpmQC1wS21qK09IVXVYfTlgISQlWlc+Yk1WeTFkfjR9YD88ekYkKnQ/fWlraW9U
ezA5emA5PU1aRGVRcCo9CnpaREJ+YG1MZ2JrJUErSEoqUk82WCRAUU5YSG1QZD9Vez5QVEpjWk5j
NXxUIzsqa2crMHpgPz4mUUBvU2V6dyRjcQp6dnl6LSh6MjUlLUBhTGxGUiMhVWppOE94Pk1TbVBP
OGwqeTEjRjUmbmVkRmJ3cWRVaz42ck9ocXF3I0krI25xT1oKenJAKm50cSg7YDZja15iSlVKSFdi
SkYmOyZQbztWMWhBZyRNYV4mNHgxZEdYS2IoJXhCYW1XRXotPDs+UkR8KlczCnpQfTIyekZaSXw+
eWNzR2EzQkVBZzl2RWI5Jk83Jn5pSmEtbFJEYGJNX0VEPnBWQHNBV3c9PnBIVHxlUTx1eXxWYgp6
OCE+cnpFNWgtQmAqRzhaPExnKlNHen5RSi1gcUBoNT4hUzg9MDJ4QUtNTD52MEpMVitFK3U8ck1+
WXdFIz5ueyEKeiF2dkc+aXNRVVJyRD9ZSmE+WDMxLVQ3PmBlKnMrQmR+STU/YUgjY3R4KllaNCU5
RG8xVnsxWVElaTZAUyNLJDI5CnpiQn1YZ3gjMXMtdz59KXVFRytEOSY3YClpR3YhOEM0PGYhWEAz
QkdyWXI+P21idzRBNWRmQGh7XiFCJW9Zaj9sagp6RXgyJUFENFQwS19aeiFAUnA/YTFeVGwzSVB3
UjZTJkJaPWZ4JGUzYmp5MnNeUDRtKzgjOEw+IS1ZanBkPnxwPkwKel5iem1yUyhwQWx3d3cySSRF
d3stciNhUHBMdjxuIW0/Uis/OVFMaG0wUUBQUiNueDZqaGxNcShjd3g5RDl2aigmCnpFZ218bklO
YHE+UzJnaGB6KmwrPndFQXAlRX5nJTs4RXh6Vm5pcFElU3dqWlRLdHA0dFp0TDF7cnh3SnAoJlRq
JAp6UnlrZEojNVU2RiZgKW5gWUVsSHxCdil2NjUhODh2dkZufnNUSDRlNk9MZUJ7R1VfbTEzcHM5
eU1VRT50VUVTOW8KekY9dCpCPG4lZT54UW59Y2pVTWQ3ZVBIbjNxSnFtaGtpWl85MmV2NEApPmA7
UThBIyVhRmhabiEwYSNTMERzeGhUCno+U0NqSz0jNDluNW87UWpycWBaKitfJTRkcmJqQ0gxRmw5
ZmpDKXQ7TjVObCtgbFp4Jj8ta3c1d3V4bkU7KE0oOwp6VCpafXpSRCg2U15Bbk42JUIpOGAqWExx
ZVlJYldDI0NEZXI0Wl5VNiVubmkxQE5qWDR7e1pWKFpRKnx6LTAzQGEKelBMe1hQP0wmeTl3VWd6
PihkUkAjQztqa2ltbHViMTw7d3xiakAlVnJ0R2lBKkd4WkppYHd0YWJ3WjVfOGArWksjCnoyI1pa
Kj4zdGQoUWdnSGNEJnlCP2NeTDFIb2M9MjdlamQ7QGl+QWlhOWJWcERGX3ZwcF5Xe1p+Qk1QKFFD
KEh+Xgp6RnUkUGJUI3RpKEdIVEZpXldTKWcmdkBEI21mKV9nb194d0FFKFJfbDNuP0p5NDhZKUx1
MSM+QzVqPFRjdjhkfDAKempJc3JtOz83M1RuKF90dEZiNE1kK1ctTiRAXlBNfnUpeUpLIzthQWVN
e1h8QE87Tm9rdDFBM1QqNmxvUHBmJVI1CnplUV5NPi1qVFRqJjYlKmM0Q2peXjFGbjFZdWJ5T2g8
WW8mZyVYT318I0YxYT1vKXl4NSoyeGdtUk52Yz9EU3RYNQp6I1kxdyReOzV5WTxFMygxSi03Q1Mm
YEJabFJUUT89PmRudiZKP3ElMUlMMGxsan58azQtZ30+M3swc2V7QUBIX34KenJnKGVBZ3ViNmBZ
PmB7c00qZWYjMDZ5ej8rbi1Pbnp+bDwmezZYO19MRGY4MkpAPzU1cHtZamRWVEwzQzF9PVFQCno8
UUIkQjtQdWE7dU0+eUNUNz1lKy1Da1ZUPSs9IVBMYERTNnBsMi0wKUJ0JC1oJHBwUj4tdHJrSHhk
MWhRSV9ecwp6bE1FekBQIVd2JHIqWTVZVVZhTEFTWFB3Ynl0bSVwPGFBPUNVWnA3MHNfZDVDJnZ2
PS1XeFBxSSNIMis0ayQxXjEKenEjYGs+YWx3elMycHNfQVdMRV8qaCYxJm91UWh8T25ZczcqKkY9
QkA0KWN1dDJObGFgM2ZFZWQ8Zz0qcVpQbEhUCnpSMV4kKTB6aylkYXFhYkBZZ3g2Nmd8KUc8RXFA
cGlWa0Z3NEtVMl9rQVpOY0UqUCVTaGxBamA1WnUlWnthTUg0VQp6JnFiVCFVWSVgbG18THJ2Ul5t
d19eNmxiPzF1T158Jk96Z25LUHNCJVVQKEw/OT1Qd1EzeFRTJUsxOD9WQVZDbHkKejVQKkVTP2Uy
TjVLU1o8QT81JF4kUn5GNXZKR3l5bi0hZFNfK3tTKWxMRmVBRndPPGtsOTllRCMlSDdPezItOWo4
Cnp6IV9qaUN4TT4pZCh3dHczQytTVmRWVkVLMlFGMUJ0eGNeJSM0anZUJFRadE92Jn1Fc0IrTUBe
U1pBaUBBT1gxWAp6ekAqZHNPUjRHOy1RQihQKjZGKTFCb0lYI05QUk1ebDVsKFV0fTUzMVM9YThT
aj9wRVZfSSYjVzY7cX5JXmFJQDIKelYrTSZPaE1IaVJSXjx3flF2LW5CVjxfNmlQQk4tTiZKS0Uz
SEw8bT0lTEoydWZ4UnJjcT9QUy1Xblh4WD5mcE5FCno+bGFoNTt0SSloJSVsR1J0QHVgRF5+YHNU
MStjZ2kyXjEyTSRDNnkwNm5ncXFzNGV3TF4mekp4KzFsWmMrKlhLZwp6K05FfUA5UTdOOShidFgt
NiNNVEY+S2E9YFo+VV5EWVlvc0JJRSlyUm9QeVg8X2xERSpASikweylvQ2h+RXZNaTMKejF3MU9m
bUZ+WC1DZXVXX3pMNnVndShePSFjTDwkQXVPKm11UlJmWXc3X1g7dnBWO0ByN0hGM1hhYmN+Q3lI
eyZ4CnopODxMeEt2TSp8bz1GPnkzWChFOV5zZmB0eWd6QGFjITFtNWglWVNjLTdNcHxTKGU/ZFZn
dXhtMj8jNV9OSGAkbAp6SUh2ZXAjcm5zQ180eEgmMShNVElpUHxYNHZNXk8qYXV0cThwI1lRR3hO
QXxaUUFkKD9Kdj09S0U2UHk0eU5SbSYKekU3eEBXZGduXk4odVI/N1d9d1AlUykpKDc0XzU5JjFC
YGQ9U3ZSJmZ7dlN1dnVRWiE/eHxGVExLM1lQa0tedCVtCnohYU1aTksqN2Zjcz1vTjI8NCtncyk4
NT1fOGYtV0JBazZhXmx8MHdsMnR3byorOzl7T2Z1MXV8dGJBMi10VWMxfQp6KkZ4I1VLQHZfd3Ri
X1E2LTZ0R140bzl+YFVZd0hVKldQSTVqUnZLNT83WXJpLSVyPE53U09XeCkoYll2b0NHblIKejRe
eEFqcCF9PVN2QEgoaD9XYSFAPUBHPVE5QE0/S3dFMUlZK2w0SGtmTGpiVkg/fmhhYU5iXzYxJiFw
PS1yOT45Cnp2WFY4JU50RXM8cGkqPHMyaC1fWXdiI1hLRFlPWVJgREI+UDx3PExHWkdldHtoXmFh
RTcwcnBJSTspbGBUZyFCNwp6TFQ7Mz1LZT9MYHsyPGN4T0ckMXRpI2dJTCs8RFZsLTJJX3FReSR7
UDBAd3FMPUt2NSFNbGc5IzdKTGl3bXhsRncKeitabkI4QD9uWkFndH5ZZ1FSOSN7KjI/WnNLMUxn
ZjBGWGQ2KjMwcENPMG4+K2xMUDVATV5ifjRDPHF4PkI+bXVXCnpHNj9xX2hfNmkzemlnPHFlSmV+
NXF+YSlheE5RdEZNdUp+NUZoKTEqQzZncko/I1J6aHdkMztRVk5PKmR4JXtfKAp6bmJsRj9zPnhg
UksyKD1nez4jJU5mM1FwPit2S2RRTjB5XyQyPExJQCpuTWohTSU0YiF4YH4kSk5DczQtUVNeNGAK
emJNMV9lIz1TKitMMSpIcUEmK1pJNzNLUnprOys7XzFZZ3wrJkgqNVcreUUtMXAwJiQtUmA3SmJB
RylAX3gzd143CnptbXNRYlRwKHBVc1BfWEk+LUZaaz1+Sk9NP0NvYlFiPkJ7aEdRdjtVeGB9RHw5
NXd5byVgK0l8UHpnTmVJcmpXMAp6KD1fKGdaXz9jelYrMGFlaENzbTBNSXRxanc3SykpY2JQb1V2
QSNAdmslc2c8WEM4IUJwTkg8eT5QZEJTKngxe1AKekhoRE5XS1lefkFrI3dvUFVIPEA2MWk1M1Qj
NSZmTGBoMTBCWDwxeyY9NDlLOSlLLT0pYVE0T0pYc3phOGwxeHsyCnpKOzM4TllYMFUrYF9ocG9u
OXFeZTdkPm4wNH1oUHR1bHl+KWhEcVhCYil+WUBxUHY+Zz8wMWtDaU1IKi0yVVowXgp6NGJ1JT0/
eGY+TWI4aTB0dCY1PmZSVyFRTEA9cHxMeCYmJkxtVWVMb2t7SDVWTSpqZjNVPFY5VEBLfXN6OUdk
NUMKekJ5QjU2R1IxSk1FVWxHe0E+Mm5pZ1YybkYoRHRzRVJgX1lIUz5ONSstfEg0PV9LWH5+VGJN
RCtrJUItWmoxbHozCnpWPlhkI3I4Mn5TKHI7Y3o0RFRQXzg2WDgqQHk5JUsmMEp8YjF2TSY/PTZD
Sj5XPnVVaylNK0NwUFpvQkA+aSs7IQp6aVl0a3BieUlCSTtZckVxPk4rMDdIUzFuQih8akdSWTZ+
eGhIRUF2TUM/UWM1dD1nY0wwemxweVhDSGV3PDBLMDQKenRMVH49cFdlZXtrd3o0Pk9hTnx+K3ck
fHNANitDckp4VTgzalg+RDBBLWlGPUZefn4zTkZWUDVeJk0pUjNEeTFtCnpIMkokZHdLaz1SdDNm
ekpNZ0Iqa0ZOYnNoWmktI3Are0o4KVQxYzVmbUx2X0pvLT18QEdCe0lPK0FvNE1PLW9WSQp6KHN8
eT9QUTFCRFdXSnRYLU4yME1oMk5rN09SamwyJXxxfXskQ35HWEJpNjJUciRjOXtzPjZHMmJwVXdo
Q3xJS2IKeilOUn5IUT1JZVpSZDQpI3JZNjNaOHM/blIrY2I+dyY4SWghRV9ZLVE2b3RxPWkyOFB+
SXBWOChTPHZkY2VeJmZYCnpffkl6YTV0VVomKjM1NT9ednhyfCtWJDApZ0s3NyVTfkVvKl57YV55
aWt1ZSh4YFUyQVl0NjVHTnE7ck9KMShUJQp6QTI3UEcyMHJ7MTEwMDshdnsrYkpffkoqcXZEZDlN
ZHBIJUFGQDhNYyN7QiV1YzlEfEFvYWQ1eEhKXkZsLXdwVWkKej9KUlo4TipPaVJwOV9EY3ZMZjQo
eG1FKWhhOEN6M2RWMUdJN1U/XzY/Zm19JCVFdlktTFFtUjRTe2BTbndkU0s2CnpTY0BzJV9Ud1Je
MiplZColTXk0TW48YSYrRjxFY0o/ZGdiI0A2Y3pWX1dJVm9odkUldU0lSk8kQj1UPDcrRWA/bwp6
MzQrTlMkamxxZEVBTjVgOUY5ajcoMEghKkxhP2ArUVBaQFdDfmpyRVgra2hBNmNXZDFTSV4xYDlu
VjQyem9+PGkKeit+Oy1ZejBOdCppY3p6N2BCPnI5WTNwI2ZkI1MrTWNBfHRRcnMxQSgtdm5tMEJ5
QkxyPCRPUD4xdGoxIT9ub1p6CnpaemlyPWRgUSk4YmhuVyNxSXJKVj1aaz49KzcxcDt4V09NYzty
VVdyYz5lRDRkMlV9I2pKKFdiQm5RU3gmI2hhbgp6MmAqX3tAM31IPGJUeGJkdH5JYF9FKmt4O2ZS
Rn4rQXgweTw3PEJzQXYtcSMjRSRqRntRcXJOLUZFdG8kcXc+fX0KenhsUEY9b3tDPjJBRTZjVjlu
fFk4P3VySGpydGVlbE1WMDJPcmNWJF9DMDdsVTNpJnpEckRJMTgyTTZ0QT5Fc0xCCnpNT3JkKF5n
UjtxTURmNnZjKDlRdHY0TGRyUCRgbGFgeTYldFgwdjB7YiErUHJlUjxgcDdzPn1YWC19WFM9QVMk
Mwp6Jj9ubGp3TWlrb25Ldm98VDFGVnAldHR9fkhTQXZ0Rlo+Oz5jdGNMSypNdWBfeyVuYVB6SDcl
T05uKmJ+MjtvNUUKejZ9PjlkcmtiU3J0U2lrK1MkKmY3ZF5gOX1kKmttTFhffGJqd2lmen48fDgp
SDt4Q2w4YzRzKV9BQn14c1k1T2E5CnppXkE1dlJmV34ycV5GKDhSUyh5WUtiZnU8UW5CIzIhfjVH
a0xkVjI8b3RDRG85eXNETCVfI2FmOzE4KGlZUCl7aQp6by1XZi10ISM4SEkld201WFQwOS07MnVz
QllLKHc7OHQwdV9qI3NBYSpHODMmaGxIZ25mNHRLRFpnZS1GM0F9YzcKelhlPnBBJjlwTUdQY31P
PEdYaV8kdXdRO3BZUWVudGEpUmRhK2Yoc2YpTkA8aE9LJFBaUXJqZ1F1MGspJnp+aT1TCnopSEw3
UWI0P2x4VUZ6Tis3TWlGfUYpV1NBUmdAbF5VdSQjZjJwRiVLSmIoTDR7e1V8NWRYNFUlWDRjfjdO
aEJHUQp6PThKbjBLc15wSyl9azI3bDlOKyt7e1JqRDBMPGQ4ZyFYWXRqUENyPmYxJkFpcEFTNElW
fDUobT9yKkxXX2xuVEsKei1eMVRAcS1XfDRkVXVHdGQjTCE5K3NlTXY/SXBMNEZ2PDNuTEMwXnBw
bzlNYTFGd3AxSn1LKlpXUmB8NFRKVysmCnpMJkQmSUh4akBNXlcxYVp5NF40MEUhTHNvdV9mJXw/
RzAoPG1Tek9MOURxKUheeSh8QmZ9eDZjYW9mNV82UV4xYwp6WW8xUjJmOH1HUl9eSVFZOCpOUUlE
KXh8REwzWVM0Wm1kIWB6KChQUiZBOVooSVRoc0JkY0s5QS1RITJJNFJ2cGEKempfejMqd3puQztJ
MHV+ZT9fN19IQ0ErPVd1Vm9XRyZ6VGB9QXk1T0pfe0M9blMhSCFINl59UnR5NnFtUD1+QWkyCnpI
fDE5SkowbjY7akJmTmR3STNMMkkrZWhhP1hvT15KaEJ3dlY7Sk5QRC1MWj1YQGJkZEVSSTNRMSsk
TFNgRTtXVQp6dD5vUSN2OTx0bW5ASy1Qa05Za0xtUDl1IStnTzhAKzApYj57PyhMfl4+MEkwTWxg
ak9FTk0wfVlCI3A+PzA+VHYKejAtTylNbGc+Wi0pIUYjKCFsPFNoRzwhbX0mP292dGpefTdSMXp2
ZzIlMVFUWCk5Pz9FWk0yVUlqVkB+QEZoPWo/CnpVQzZ0WTlHJSRkITVKVCZiOSYjMnR+RVAqJikk
JjxmMGFpPEs3emRiTVFXYmlNdn5FUCZXSmNESDZeUnR5MFBBQQp6NVgrPSN3KERzc28zKTVNO0Bh
KkBicClPaTA5aUBLYkNIZkoranlmK145YS11M3lJS2BHMlE5Vit5P28wJWYrencKekA2USMoWCE8
cVl6b1ZfVG5HTVg2VFNXSTRRJGp4Y3E9aVYtX1clTSY5eyFjWlUxfUg1UGI/RVd1KihATUF+LTYq
CnpgVnJReW0kYTRSUWM2JHE5Tz19alh+aV8zKzxLPm9abldEeUdCYyZnWVlnaWNYJWFFRU1tJT5P
cW5nZHFiP2Ejfgp6Jm8ySiZVO3VAVG1NQFppYHlQS0c9fiRqMChNfGpvbXlhIXFUUDk0Iz1IITYr
STJwJj8jfmdSN3BWe15uN0hOMk8Kekl9NHhlX2g3Oyg5bX42QzNqMi0tOWppeHxeM21qfVFNRyZB
JilQOyk9WCRad2MjVWk9Q0E1TkJpIV85XnFZNFc4CnpaTzh1clViI0VNV2B1cEEtKkl4R2thMz40
JjI+SDx4WURrelo2NDw0PmVeZHI5JDVDUU5nbkt1akAqLXR5K0ghRAp6UEtCYmppRjAjI2IjZVdp
Zj1NRHJufGUhZFNFMjt+Nk9ifWA0MG8remhOVm1RJiN6dFglQk13RFk3cElpMmNCdXwKekV8O2pt
Slc2KUxjVihOWT8wKlc8KWpVekM+UTJ0YEoxMFNmPikjYmxYOzh3JSRpV2tYd0VGUXxAajxOV3t2
WHJyCnpFbnVAPEtFPFVHeEdKUXZFNGFCSWRBeyFfb1A4KihobEh4Q21jT1hzaFByOyVSPH5fI1Zf
N3ReIXVPWTZUekNYUgp6cjxRbTZic2MtdnlTUSFVVGdIYT1SeU12fGtjUjx4c1VTI2pQZiRwfTll
RipldkxhdHgrMVclPDcrYHNfRSg1PCgKektjemJKIXhMTXJ5dj08UGNsb3Z8bDhNSDdaYm1DOyZN
O1JrTn03JE1hcmNeNHQ9Kjs1O155QXAmTSQ4KiEhR1lICnoxT1FNVE5oZGshaitOZDEmO0l9dF51
TEFvekFjfHFqOXRUaHAtVytKNkdYMCRFNnAyeCFIeGpodD9TTT5ITzJWRAp6eiNic2NxSzxqKXR1
RW5NNDNiSDJBU2pCWWZ5dWAxMDMoWHFARV5pU0ZaRTlqJWleZ0dyajQhWChyUStRSWd+WlIKekVR
VC0lJiZxY0tlUX1SaztnJSo5QW5Id355Q1lme1lWflU8TDBPKVNiQDdrRVMybFdXJD8oUk1ud1F5
OUlUa0FACnppQmhZdTJWJUc8MENFU3Y2fl5uVztoJV8pS0RQdWpUM3ckaTdQT0FnbCF6KDskeDsr
JjJMdW5WSFBMdkpfSWNCMQp6aH1gSEpveUQxdiFvX0tMSmtjVGNWUz5IU0FvMHktPT44NFd7MUA9
Xjt2VFBhZHVJanFoa3MjaF81ant1VTVRVzQKendTZm05STxeU3V5VjlvKmppRlFjYTxgUkBAbVhG
amxsfUJBeVBQaHM7X3ZMYyVgLXV8d3ZLSFZOQkkpZUh7TTFpCnpvOTY0ZD9rN0lKKSElNzg1NFk0
SHlTbmkxc2NlZlJMdUowSW8xNXEzM2QxOGo9Y2FoO1RSS09HR34zLU8qNlVIUQp6KHhSSkRmbS1k
QiVNclMrK3lLfk1TT1IhR0ojdVJ6PkoxdzUtdE9iVF5UIVd9NXJuQ3l0bDV1WjZRN2xkYExXbnoK
enMySGI5NWdsUHQ0JWdwKnl3YXZ1SUskZXxzR0dMa2VuJmxmQFJQKXZFSj01elVxZn1NVXJYaGlK
N1FNfno/Tjt5CnphZlFKOGRlO30/OX1EPTQhKl9BNngyOVpMaEM0KiVlOGBgayhrQGl+MkQ/b2c7
P0FMXk5nVk41MnttQXtDRDZIMAp6UkEqb1hhZjhPZyEqRC0zPj51TzE5UnBLX1o3SmNveHdtKj5Y
ciRob218JGRNb0QtZmkoeCR4ZWsqJj42bDV1YHwKemB1X2sob0lWYylRaXR6cXdMZVdnS2M7WTY3
TUoxcEd8VEJWK2dOVHpze2BqakF4UmZHMEIxTzBhQ3F5KlF0PUxwCnpYWDJZUnl6c1klWih5e3cx
enRvMWkzdVlJb1JmfjZSU2dAJmNENmN3P1ZoMmduUEl0JUQmMHFmbztDfUNoSFFlbgp6TiNoeWtn
STxILT44NnZ5SSYlMH55dndfRUZFa1RqVFhBUmttNVg1VDdtUmYkK08/QDFSM2x8Oy17Zi04cCtV
OW4KelgzfFRkSTNFVDRNYmBXWTRiN2R0JE1hdXJrdjIkKWp8QWheejJ7MnRsPX1VSnE/NVF3VX5l
ajRBZU1+RGdUVW5FCnphaG1kLVZATDY0aXRudU1AMVdESVdVfmokQ1BmRjYoQlA4Q0U4ZXlCJnh1
fGsoSmlkQlRkMkd8RWhHWnJDNVNNZAp6Rzd4ZlFPZ2VfPjJPfWRtPDJCT2lWdzZ8Mlgtbl9AMCts
PWB3M29IS3EyO0lSYGtiJUQ0SHNDeUBsIypAbm07Yn0KelJ5ZWp3dTE+YE9AdCFnN1M5TEUwNEZr
YmlIblRLO1hTP3dRKk93RDJ3IyNAPndufndaJXUwOyZeN1B9SGtSSnxzCno9SHBGa3k9dnd3aGR4
ci0lOzZUOzZVa3t4WjZpR0F0XnYoZSl4MH5ZVElve1NfPHFrKFlnZjN+dU59e3R1RjhkJgp6aD1K
Zl5vJXNCRlI4KlloJUlpK2o+KmlYODhnaUdocnNXPTtaUj5DODk/OV96ZU5XK2lySkN4TkZ3Rz48
IW5Tc2EKekZtV242PFFCajxZeXgoWCk5WVY2WWh6UHVzV2w2K0oybCh5XkhvU3QmNXs9K1dCJmxH
RHomRHdIa19uZ3kjRH1oCnpLJj1iUE5IRzhiPXpIYDcoLWdXLWgrPTUmcEhhNDN5UmA7TDlfWDFE
STUtN1ExWjBsaHdUMkgzUEo/T2gtPzxxNAp6WV9WNDZSIURreXlJblJ7UUFlb1paaTw9STQ5Tz4h
Ki1WXmdnNkFDaSlxOV4zWVAhMyl4c2ohbUUqT1A3eSpiNEAKek51SzgzTnZeRlhsRn5pRTgxakJg
b2J+P2JyZlQ9VSpeMD5ucWZJJm9kd19EfmswJlNrY0NMIUoqdmltPyliczdsCno/JTBBYG5kOCZx
U0dBRXtpITUme2tnUE0jR3cpWmxPO1c+M21KdTJBWmw7a352cW11PEdzWmpoQDh+SzE5OXhlUQp6
WHpRaVBDTEohenQ+dyQmRGBZRXxCPkoyYWp7Ynp2dEU1XkdNQUdpPD9tVmMjayVTdnRjNm5lfWF5
b05kNiZqbSMKenA4bypYc2pHKTNzSzJYZ255LWl+QDl6SEMxKWZTT047YTdZSVYxdH4+KzQqZHd3
VyF9IVhASzF2QHlsSWFVJjs7CnpzOEQ7OE9ucSo3QmEkYlh7SVc2XnUmVEJlKlA3Ty13d0FiZzxP
Qz5wM09FX1lQWG5jRUxrJjc8I2FWb2NOPT47eAp6I09VPTZlSVR9YklNPkxzK00hfiVhZV94NUh5
clZyYihYcj9SRktRMWQ3Z1oraEBNNno8WksrezkrPT1AYm9aPFkKekd6KypqdERQJVIqPUlHSmpV
QzRLMVIreWAwfU8tc2FCSEsyKy1XeWYqU2J0SFAyfmNNYVFTNi0jdDI/OGRpRThLCnpjdkdnaUgq
ZkJLcUgkNVNybVVKfW05P2F8bndtV0tQWktkbEM0OHdeZilAaiEzek9Ic1BBaTdFd09mPHNlWGMw
TQp6JkkxI2w8eXUhNykjYiFmIzRieFQmJVJDa3ZtOWU1LW1+cD1vNHI5b2pnYy0tP2BBal5yVmZv
Kng2TGhDRj0+MCgKenZGY3c1ZHxoU212UCskQSNfVXtibXpITUVYZVNFTTYqNDF9dSYqTnRqMSRn
dCNlRiM1SFRZeFctdmlHel9rJVJaCnpIM01xTD9ZOGFxWE5+WCFJNFRCMGxiamNDcTNLXjNMKlF4
SjJfOCQpcFcjJUc/O2JqbUttKj5pWS1nODJ4NDUqcwp6KVU5N21tMDJXLU9CUWZAVX1HSVMpPjZV
SGI9PlBwQD9VP1poZ2JINk5Zbk9sZE5acmlkPyhARVFzJllQSEZ3PEkKek5VMGwzYXNiTzd7RSNe
M0J6X2c+YHVEPT9lTnlrancpVDF6PntibmFpSyY9bk4jYU4hPCFNcFdvTTI+KSQzR35ACno+c31w
bVphJT9uZVBSV0xtZTVzTG02NjdBeUtuQGJXQTlle0trKSF+QzBeI2tSRis5dmFRO3N9eWlmKkpr
RWQkVgp6dCQ5fipse0RfTzl0eHNfeGhnSUNgNXUrNmQ7bEkzKjZ5T3o8SjhrZ1FMXjNjO2JfZGMx
TG9oZkZRQD0jdHRIUkgKelo4bXBDdzc8TnhqTz0tMTFVZzlaZiklKkkmbktMb09DST5JZWZWTWZV
cXxEO0tUeHV7KTBKPVNWMkAoVzIkMmdBCnpMMnMwZHB5fGxaQmlEd0ZUZiUtU3pLYHdOSiklbTtU
MW05XzVXNnV3ZXxOWDBNXnRab0BtXzZabnRNa2xFc3Z8Zwp6KjJgbExYSHVIaXMmNDFUeTVFR2FH
O0tuQUpHPHpaJGk4O3lhKDlGR01sZGtQcFlnNVJLTHAlSm14b2kxYHJkbSsKemR3S3JQOGM0b2th
Q2JPdDFJcHgjXns9aGBEZXpuMj94RkU2Um4rYl5FbCUzKkgoT1pkbztjSEBmeWZCPzhUb2VlCnpv
fTthQ3BCK0RFLUIhejRmLWVIdFlacUReNVZCcmZ0RjY/SkY3OUpnTFMoeyVwemQ2NUtVKGpoblly
M0VVb0UkOQp6TCgwWUFEYmJ0dURaQXtTYEpYYTtPVjskOG9uP05fWmpzXiQobWAoSlZgb15eY2tT
cEg8MGx2ZGw1eCMoQ2lDcTgKek16LWxJT1kkZkhnU2Vhd2QpSzkyXyFpblotV2ckKkRQI0Z3QjU9
VV5sd3B6amJCZTJfPXlPP1d3ayopY2QhXmY0Cno8c3U8PkJONmhtRGQyJkRvTylNT0ReclhrOGdr
cFk9MyszRlQ+MGYyLT8xZ2ZmYCp4KThTa3xsaTchJVFqbDhKVAp6cGVMUVZCWGI7Zj59IXRIRkxm
QkxFe244cFp6XzIjJE5eT3U7Qj9eZVU2IS1xJnhqZ15vMmNzRiohcn5rNFYyOWwKeiZaSHBCM2M8
cGMtfDdmbkt8TSNVR3NGSDN2YlpVMGVYUTkmbytLP1NWJmx0e299ZGBwb15qVHIyTUl3K1E8OVV2
CnpQeHVDTmdlNUJ8K3RsY1BYVSFZSy1ZZTkjSnVnemF5TS0pdDM7ai0zZ3MlU3BIYTFLdT9pbDNA
NDBgJWtwIWBDZwp6e3R9SFk7KEtkSlpiQ3hEK1koRXYySE5xRF9TWFJDKXE4X3A1bzR+dSEldjdh
TnVYUnhpbHFAKXVyMEJRbDchJm8KemNKfiRaKk4mfkFUbDA2SUNDfk88PzlEaTYqaFlOU2g4WlB7
PU52YmskOHJ9UHN8eFVSQGR+cUJlXiZYUHJWZyhACno5JDAwaXt7WDk+QjEhZnFoRV9uUEt5VmB+
Xkw8WWhuSDl0R2FFYm8jdThZUTZOQV9RY1ooY2x6Q3Z4IStjeShAagp6YWUjT3UrUE1jQFA1Wi16
PjREejhvSjM8JW55OE5qUVJJfU0tb0ApX3l0e3smVzNKSmpJVGgmczRnSHxKV0FPZFoKelg8RFYh
UntRdDdOaSEtRUZ9TE9FZndnIWJmJm09fnVRNHt4KGY7NlZXO29faSRKVl93O29ya2VIXm4rbXZt
TU91Cnp7a2Ryd1hrIW5CRVgkTlc7MXdldHJvOEhycVR8bXxVZk95Y1NaWSRLS2kkMjNPVlc2djw1
NjRyd1FHaWxRSTtVWAp6YVJmSTlaZzZfP056SDcwMU0mV3k7UXMmQFlMb2JtLXBeVW1yOX0tNTxT
T3dAMkomI00ydlQ8K1VVOSolQkduP2cKeihKI0ttSXotZGtJR0tTYGFCdlJPeUJtUFZ4YS0hVG10
VlAoQCs7WFJ3PSpNZEowbDlPe21AbCMxfko8ZXp0cm5nCnprMVhaUUEzeVdvQGlDeypOX140V152
QFQzSz01fEVkdiZoYmNzb3dmdHx5KClYXjt9QDRpUHxYOUFsaUVVfmAtYgp6Pkhac09pfTVTTykq
Mj4reF4wIzJzUiE9LT4/fjAtTT1YcE9mVyZhREl2KEF0IUl4RklvJk54UDx4RTtiR1lMXn0Kej9U
JCQjYjZWYUtAdmdEcCVsbUNaT3FwVzN2fmNoeyN2Z0NXJTBTNWJxJWoweyYxcVc9UWB4bWokPWJg
UkklKEJoCnp7TThSe18/aHNCO3k9VG8zfEhEclpEJSl+QWg/Uj1IaShjezxfOTMpN1k3Nmt7Jm5T
QSpNJjl4RG0/MTFZaDwlYgp6PlR2cytjTFNCY3t0aH40OU17cEJtJlE1JUhGI2RlLWQyKns7PzVV
fU5FdFNXYkxJV2skSUs2eCQ5XiV6ZDYkbm8KekZ7fG97PVJwZlE+XkNBZkBMN0tGMEl3TmhNP3Nx
TlhqTjJ3K1B0Y0w/V3dnfkhBOyh+ajlXKHE7bS0/Y3k0fWxKCnotdVF7Rlc0RGNeOD0kfkV7S0Yq
aT55dWhPRCk1KHZebGNrWkhoUEA1SV5ER1kwSik5azg4SSQ1bERIaThAQXl+Sgp6OX5yelFAUT1k
WTBud0w5aig5YiNZU21VcXQhX3p6Q2tuZ0YhTTdEVCRPO09hX1ExalVZUW9GSUg7O0JDWkFNQWQK
ektiRnJaRCVld2tQNndka3k2fjhwU0NVbSoqS1dycUUtfU5jYnZZPD5gPlZOR2w2NUhvXkJ6I0ZN
K1hAa2RVTS0+CnpUQUdIWXh9MHs9P1RvbFdCdl95O3hxfW12Z1VMUj1tOCleN1kwPkg4Iz5HU2VJ
Q3NvS21UNFIpYEh3dGc9TityMQp6KCo3IUcrOGZ2I1lYZmxoREpXTnQ2QGJjNDYqR247ZTR2c31k
RWsyMlcqeTdnUDZ7PyM5TVZwNE8tSi1PNEY+KWoKemk2XnpYQmclPE8ydWEka2Q7VkRJVTVlZ0N2
fHtFWjd+dyFuNHtvKlJfUFJFc3NBPkAwJEQhWmNCUk1pZzU9QmBfCnpDLXtJRT4rOTU0S183JkNS
fTU8eHszMip9MEopTWRTbVZfMD50MHFYRDIrO3UjJVY4K3lqXzs4I0klayRVS2Z7Zgp6Ri1lYFEt
QThVUVR9T3VlQXZjWnVPSylYa0QjeiFAc0FlRHFMO2Q1UGx8dGcqTDl+bV9uKGtaYSswTnlLd3Ql
Q2oKekN6ezJkI1NmKTYlX2NYdS1oT1BwO3omR0t0NkVjPlUkVzhwPnxGfDtAPkxibD5eakdXRUgm
RmJDcnQzOWc2OD5yCnoofD5WIUF9ITMwQTdFMHM+R0g3KEdyPCtwK2pzYHRjeilVQSpDVm85Tlp3
ZHNjIVlEamljYURmYXo7cjJjZHduYQp6WXlEQTApJSpgTVNGcCtzO0hNei0pODk0Zjl1QEl+SHk0
cHpjJE5heiZfYn1meGhjRT1QNmp5fjtQR0I4c1g3YlgKenBUcF5VcDJOcWB0bGMqUzYhaH0zKko/
VS1rQjJUSmleV3B2TFA/aXoraW4zXzlhczwhMFlBWmtVT30jRmBoSmxPCnopeE1QU093LV5BUyts
aFAtfnNGWUhSfkdwIzlzdis2NW1UcGAtfHYybENTMz5YOWNzbGEoeV8jX09CR3lxfGp9Tgp6OGVf
PllFQkVlNElwP043M2Y3SDloPT1jIVA1d1RvbTVsYXJlNipkP0Z5Xz9uRld5REM0KCtmaT8jUzdM
cFl4alIKekpVT09tbnMka0F0ejBCYG53MFglWD1RNjBFM3ZvJFZWT0ZHOC1ALSFLVDZAR290WGFz
dFM1RnhEIVdgZlcrWXNLCnp0Kys3am4oQjA7SjRRTSRCTU1LSlQtSDQhVWh3OXo3TzhuQGRreVd5
KjJITXBsfWA4TEpDMXF8YWEzMnNsZl5sYQp6P2U8JDN7SVRjVkF8RSN4KztQfCphYWh3e1VPUmJx
bGd7I3gyPzZwKEZ+fm5xWU5FPntOfnYpMmFyMTBCSkhHKjQKemw7dXRfVSM1bD9Ec3dqQng4aU1I
NzFIbClSSVFEYGkyIyNxJWA5QGFLUW0oKD4oRntzK0hfV3BZTytzJTZoQ0I7CnolQitAfm5uUkpu
Qjtic1dodSpvQm1LI1FwdTFnV1o5KWd9UFo0NzkjYEg5RmN2NURpYC1sOD91dF5BMzY/XztfOQp6
SEkmayVVdShhV240OEQpNTtnTVZefXktSlZPLXtgWD18IW9pMWc4TCpOV19KQiVWTjhPcjgoZHR3
VjNEUG96bjgKejd9S1lXS2dqRFVGbD5SNWw2Jiktc0ZLTDheOVlxMVVBVilMei1LKV81N3hQNVVi
UlV5cWlGUSVaJSV+bm5+UGBDCnotd3ltS1glQipBcEYpfWZaTHVEeTE9dGVYUGNlO0tjYkVvYStf
QE5WUXk+aVd1S0A4QT4zV3VAc2IxO3YzbVhKRwp6QmVnQGs4MzZmK15pbn1KWnI4PmR3dj5ZSkw7
fWdKX056czB4d2p4d15FbHxpYXJ7fjJpbDR5UmU3KztIKV4mWUMKeklzWDgjRy0kIVBkbyo3KHlx
XyMtaihgPiZOYlFXKm9+WGA/b21xQU10YV4yMkpXTF5tajRhb0c+cURkUCRCciRhCnpATkpjWkhq
cExPb2k1ZThmeTZmezdGb3xkQm1+TypJTzdBSkQrPXF5RTNJRSQ+VXpXNU8/QEg9cGlRNiV6eUtF
Ugp6SVJwOUItWSlQel84cjcycihNWjtaN2ZTOXlVI0pjR0RHOHhgd0dVQiFaKmBlZWB2YFN1I0hA
eDN4SUsrcy12ak0KektiM1N4M2t2WSZPNHN8dlFDNm4/b216Xl5yc2hWaXNMM1M3KjVLfCEwTlFZ
Klc0R20zXnZFd1l3MVpFTVdgLU5yCnowal58XiVlUlN0aWJvKVEpZnB1RTE2d3pLOWdnMmhTa2hh
MD8lRVlFOCFHYWZ6RW4pfXBQTS10e1Y0RVAjSlJqRAp6RSZaJXxQTUBlKS1Qa155RWlZfXYlRGJG
NDw8QjkzOWRxOFJtVlY4MFMqODdVSU5jfmxyQHIqPWtydTFyYCE1ZzIKekV8MDArK05RQihgP1ok
TlEjMzlRJlAoQll0QUdnU0RuWUh5SHt1P1BZdytxMTNoS0lKPlNFcW9pNkQwWU98Z311CnpWbztL
Q290KXJpeHx7MzI0dFNEWFBnSCpsWF97NWVxXn5mNmM3PShaTjZMJSRsbnpNZWtKN287OXZOTDRM
a15lYQp6LSNUbSZ3WWdfSkh9NGRhJUtXJmBzVEgmO1EtYkF8dWtaVll1PUE1e256SCt9SVo1QDtD
aSo9fSZxb3F6YXdeOEsKeiZtWU9aNyRIaklxMFR3XylWSk95KUdsdE1eMFhePlZ3cWt6cWNGQig0
JjlyS29SUUIkZHNYe3NGWU1aTFpLQkZQCnorPyF3a3dxak5YaDEtRitgVnJnU3R6MnRmRXU3aGx4
YjV4ISUtXzN0KGxzRTEhRU4xMEhOMGh+RkRtPVZTWiF8MQp6Vzh0M18mMH1qRD18Ykhza0lOJjc7
JjUxdVphRDw9KD4qSjArclp2NClhVXpFJlp9PCR5dWVgaDJOS3xlZn1taUcKemZOTVRtb25yRTlr
dVFpWGdXVCojamIkdjtWREs9Mmp0eF99KDxHOTNxUGYmQlchdTQ2OyR8VzchVGBpXiQ1Qko2Cnol
QjxRfkAtPFghYGpgQWl0N2BDQk9RK3Q/MkJVMHt0SH5AK2Z0ZDs4Z1VLNm4kND5TMVUmRF9QWDx6
VjxYalU1Ygp6bVp3ez8oO341bzs3WUNudEdOdXwwdGdfbFZ0IXR1SFMqaysyPGRLTnd6KzIjRDNp
Xj9EKl5gNEluTyY9b1l1WCgKeipIR1J4YGVsT0kkdE5pM0UwVVFUaEIzISU5eTt+S2FNakRIKW0q
RFo8XktReW9tNFMwcHhvMmZQMS0qMncodzRlCno7X0djaV5veGNVNSF1WCg0WWtRaHA9WFZQR0xs
TjFOS29aaWRKKT5iS2skeTNzQG1GWCRIWTJhLVI7SnhSdz98Kwp6bFBweTdTbmtlMkpiR1hubGZ4
ZXd5aWVoc1QrOFEwQ0NHPzYkc0M/YnAkcDNZMEpNNyo9UldscCF5ZypLN21Ed3UKekBwNE4oaTdY
Q0dQY2UjVXJGVFombjhydk0wM0haRUR+ZzV8clZwSihiNEJYQS1FPXpaVy1BdmNNYXh+QT0pRllI
Cnp2X0JFfUhaTF9gbyRUYjAlSEwqeHY9fGptYWBFdz03ZChHaj1COyh4TyNAb2dKVjktS2c2YEBe
UXZ7YVY4WnpmfAp6V2VhP357KzBBKCtCU28jVWw7SlZoLTc0IWxvIz1zZEVAMmotMF9rV2U3JCtE
RTg8VXNXWUlNMSVnLTExZWtxaGoKelduME4oQWomfCg7JGBZTkpzNkloYVlRby1zcSlwMG9XSEtS
R2ZNZSVXbHI+YHg2T1pGQmdiYURoZn55eykrfXhzCnpUZ20wayUoRFFJJE1TcntAczdWLSlPelFQ
YmVaTTRmaD9OaDd6JkY/U1NrV1Q0ZHY4cyRSbHRWQW9NNUZ4bV5QSgp6YmlgJTN3MnRjNG9uS19Z
PzlLQDctdismSk5NOCZLSUFARGF2dSgjWUc0M1F9XnZEPF45RXxpR08/eShfKWZNZnIKel5Tc0dq
OTFXKzhrX2pTZkZBcih7WUU5LWc9LU5RKm0xUnRJNyVGKU9Cc016PVdgbjh0bXF1JV4/MSgwZnVH
aChQCnpfRiUqWVk+bE9YK0h5RH0yTkBtQmRPUEB3UDE2UWY/OW50KHt7WUolbzQpWmw8JSFRZD55
ZiRtdmo+PiFtaUlmaQp6c218YUEwWH5AWj4wMHxxe3tTaXkpJSZEWmhzUVRrVEZ0MGslP2N1VVlW
JH5fSFkoJHcjXk13b0BAcGVXdStzSGkKekxUR2hjYEp8OXokI3JkXiQybDBtI3RtLUk7d1pLMlg9
UTAra2p7aDtFUiE/fTNCY0smPkAoa2tUeFAlRj54fn1tCnpSdz4kTTNCOD9BazF3Q3xgUFYxNWx5
TSZab3I7d3lGTTBMcWRKVF87SlM0PEQtT2JncT88ZFN6THVWWTBwI0dKdwp6O3liU28hSipxflVM
RGt+PGhoYlZadD5pQDBSWF4xRmFRd1FDIUF2ZGElKyolejgtal5TbiN5ayRqO1NZK31XOWMKenA1
YG9rJlhKTHA5RFg/Q0lJYl5NdyFOfjcwVzEhWVQ7PGk3TFh2dU97e1l2bUYpKmgpSkx+S0hUPFYy
KTJzSH5QCnpaK09vQHpTNS1nd1FzWmV3O3dYZTlOdVlTSTZWNFIyOG0lbHl7ZyZVTmg4TXRIcVNL
Vmc7QnstP35kTn1yS0xPVAp6JHRjdk1YYCEtPlFWP0hebyZmYmRLVDZWdStVbXxKRllRYj09PS1D
SDZoOXxDaz1iKk93YWJhY01tTUlud1VoSFcKej1UUnY9MllBfX42Nk5oOWg5IWpwO0R5fkYxRj4o
JXB5UF8qPCZ4JnxRM0A9UklYRjxEbU9vNVdeJjlKJXVCQl8yCnpXfEAhOSM8eDV1ZTUpTnM8VmRr
TChIVSVJazktZTckMG53Z0tkUkFFLUlzMWU9RllffT5+eFFabWV2PERrI1FrNgp6Njl+WkY5SWVx
PWFod0lsYktpa3BaRkA3QE9qRkhTRmdSaThNLT1PZV9tVDBPa2EpK1hSK0s4cGNMM3lwJD9SKWYK
ekpzd05CPndRWVFuQCh1YUBVRFJgaUZKcjx6YDYzdXcyfldHNER5OWhvUD1JYUkzQyVfdUQwJlhY
Ozt5cj0obn5wCnpCdUlvI2hqVEM9R2FSYm5rMDwpb0FCRnhpZX18cWNrNkhAWlNSe1oxSTNQRnhw
VVM8KiNkPytSI08lb3lxOXVtTAp6Kjw+LXokJj9vKUN+Uy1sNHN2X2ZOM15MNFRfc31XOGRXMzlK
PGtjaG5WPyZWNDNjQDVFeEMhdDBQSGlAS0REdUoKejxGIyFqOCtFbWtDeGx9JEBgVTVBSjlQWiZa
eXY5UT1GfUc3UERabn5TdExTWW5XalFSa1Bwc3RmQ3BhVm4heGJwCnokPk4/SGsyWEMlK15maih3
aSVmSCZeQHR9cEs5bUUhaXtQXih4aTF5KDhmd0l5bEwhbjZXb2F9Vypge1ImUFk5Ugp6X3x9WTl2
dWFHWCFnJTk/NmtAKC1MNV58bU88QzZGdll0ezdvZzhIYilvOXAqazVsVmVuc20xSVh5IXpEQmB5
ancKek53O1ZuSX4/O3dDKFRhakd7dk4mZG1UPSozcWh0PndWRk9JU1NCNkdKTWMyTklROHB9WVpH
MTRVcll1enljNXA2CnokUHJFeWBlKGdlelNvbEMpa0tQOXlMYTYzSW1yazhrfmpuS3N1JWpxbSQp
dG9vUGEoPF42fX5gb3t6U1NsbDhkPwp6R31rSTFlUjZ3XkY1MT1iMVIkY1o+eH07Wl8zSkhSbWlw
by1aUjJPMSRWRWdQdXtHTFRfOypnI2JrdWNFdmZTKGgKej4/RXJFLUFGdzFee2tsbW82UTRVd35g
NDI/LU9yfmcrRGUycl8jTW9YNmUmJXJvN0V6U3tIQXJ4bz5HfTtLMm1aCnpUdSVEWCR1QXB6PXw8
akRnVSR8bHJzLVphKXlBbDlDZjY/XyF3dVZDZG1pfjI7e3lZP3I9PytDWVl6OH5HPldZKwp6QlBC
PVUjYnReNyVhMWl3PEAyfkcrNlVvV2JtTGMlXlUyK2Qta3NZJHpmQXEyWiE5a0NXeDJHTDs2ViNQ
QUBmeXkKeiUkMzYmcVhLWmYyKkpzKFVqRzF2X3VgMEY4PiNoYyVYMEdYN1NjYF4kVzYjWDAqVkpC
RmdsQ3xJS2pueVBifE1OCnoheHJiYiNkPFY4RW5BeUFjOXNffFpOd159aFMmbSgwLTRGJks7KW1v
eGlQZFM3e31RIVUrSkF2IzhnVzJrQGghKQp6ZW1yPTg7KG9Na3lrVExkTm8jZipDNjQ+Y2w9K1BD
czxlMWV6P0l3cUVXUGtZSFBgNj4wMEYhTTtAUk44KEpwbEAKekY0aTBPZiVOTndCfj1QfU1pTyRU
MUZyWSEoPGcweWVWS0pGOHVIZmhBeX5ZRXZuUU5YbWNpWX5Kd3wmRytQJS1pCnpVT0NvMEtjX3tq
dUE/TTM1MWx8Yk92WElTQEZPYCtnbUk3TDRSSzw8b0dKVDdEPnZKKCstLXgkTytIIWR4fVJQQQp6
SFBJJmNlRSRGdnljYUhgQ0h7fFBaNj4xKDV4fVN8Umx9V2BtMDZAXzBDUl55dnByaUNAfUleWjBv
bk13IWcyVlcKeitDaV5GWjUoazBhMW9HeTE3elI7SHhQTEEkNGNqUCYpTl5nUVJAMkx7LTFvMi18
S2U5JmhpLSlHRj0wVnhmc0JHCnp4ZntDdCM8cTFvOFpGUG0lTFFmdj1adkIjRUkxJGxJblM/OCM9
WSNHM2hoMW5kNEd8P25QUnp8V2Q/bGRiKkQjWAp6cm1mfVJ4ZmNeZzl5aSFGMmpCTnxvPGAxZD4m
MU9EQE1gWn5fPSMkZXZXUnBHWkttZSF4IW97Q1AhclhQdWgzXkYKendTNCllK2dkaU1aNH1ENEFV
YXxSUkRrNFQ8IzJoeSN0MGJkZDlKSkJyXldxSztqUXhNPUBxK1o0fHd3MmZTR2NLCnpnMj50RTBM
VUhqP19HODEjO2I3T2BzaSY9UmJaN31uYlo3c18tUXdRO2tkYmsmM29iZHh3bCUqPVBoUkV0WnFS
Mwp6azRFfX5VSSNvZ0VLNEZgaEJMcTBIVDk/TTJqV1k4VzhzZC0/aU5VPXluJklCaDdQLTJmPEJf
WVJKRjgoKyR1Y0cKem1XdFVmJChKa1cyVGEjaE5UXmJ+K1ElZCVjSGZ6aCZkMld6NEIhI295fkUq
TT9BQjA4c3UwRiZnPTtwSWFDV0Z0CnoqLV9BdEsqIWQoenhZRyRISnVob3c3b2h0dipaRGk0UT14
TXFUJHRkMG8pVlo7UG01KV5nalQyS0YlKT1PSlQwKwp6N1RSWEI0VDFqNVItYV5ZJSt+PyZGKzNC
b207dU1CYD1ZKkx3cXJ1MTkyfjghdDw/M2hfU0khUlVxajcyTnZjMmcKemgxaz9CakdKQkxqX3lQ
fDx7N3tNa1RATHZIRkwhY1h7QkNTVypiJVdRQypmWTdeWlFKIUJ9bkpiUmhqSitAI1VgCnpDdlZf
QVZfMzdqdyR8aXJAbWZhTExLKkYoTSRZMzcyejRQXzFlX2Y5SFF9MUJmXnxKTU87PUpudWxEVFFu
SWFhKgp6Wk9fZn1qcjtkPiRvc3F6LW58P3FFKk88ez94bXM0aj5BVGJ1WTJFOD05UjQ1PjdFJDVu
YjhjSCtfX2FiJDNDYU8KemBSIUNaSkU7cnBEX0RgQk1uWXBPcSMpfl9JdD1FeVlkYkF3M0ZDRk55
TEYwQ2B4KylPdjBzfTZiUno/JnJGOHhWCnpAYX56WVk4UCRkWHxIVC1VSkBjUFRTIVhDI3tpeEg4
JU45clBJNWkjcUV6Q1J0bVRUY3gjQGFMSG5ZV3xEJDZWKQp6PyQmOCVNUkxse28zQD4tTkY5Z0R6
bTA1WlNDZFZxKzNGODtrVjc8cjF3YkF9NSYhQCMhNlB7YnBGYDYlPHZ0YkMKej00UTNEeCg7bl5A
NSZqYWlkRnMyPHRPQz5KbWl5LTImLVFaYlMxS1QqbVRMKD9AdyFwPGNZI2N5SCRwODFgbz1PCnpr
KGBzJHQkQ0dqM1orTCl6blNtaD5uYzxnTUxsaXMrcWEkMVRoXnFDJWduUkFJJklhJlE/dEFfQGAr
WDRnT1coeAp6akIqYkpmeW8/dGErPGUrSlV4NzY1SnhWVEclOHw2eDA3VVRDX2coQWEpZlJFQDE8
fXRjc28rbGQ/fDZTTHZYV2QKekhuJH4qbDx2dUszQnZtdmhSTWI9KlY+O0MjVi0+QHJQJTRPcXJv
Z3o+WT82Q0xTPmFRST0oanleditMTyYtKiVYCnoqQUcpfWBVJkh4KjMlSVMte3lQZmgyeU8lS00h
a08xbDI3cF4/UHxAXkFXREM1cmgoIVV6aiF5OHZ5VitqKER6MQp6U0FxcU8hTDsyYkc+anZYKXxT
e0NMYjJgcz5GYlZeXkwxfmpjeSVuXyEtbXZKRlEyNGMhPmRDaiFZZ3Z7bEVEXksKekJRMkFMMzxu
czx0dCZxant7VWs2T0lPZVo/WXl2RkcqQ1VmJjE0JVc7eX16OWZGeHk8YXRIK1Y3MXUmRihvcy1X
CnpkLXdKMWE5NXJaVFM/dTAta3JAPCktXyM2TnVPSE5FTT5nMHg0ZDBDVT58SWVOPmd9ZGgjK3U7
WlVLZnREOHFzfAp6dH5HQkZGYSt1ME4jdS02JExuME9ZQXt8fEpUbChkUFpKTTBwbEl3XkU1LTsk
SUZ8JmRYMkk+YV5zVzgzZkFrWXkKenswNHtyMEZHQiVSYyZrQSlCWHZfcz92X3B6cDMtSiRBfk5+
KG56Yz1WXn47aUpCUTQxPnJyQEcrSEdeaEZyfCE4CnpxPjhPMWxFQEMma1BjanJAYWwwejczTmY/
c25NTDFjZW1mX0l5QlZnbFI5Zz9LVEohQGZpfE9lRXVqVGEzP3FwPAp6RzQwYmxiKmg+cWBXPT8w
WFBWbWNRaT9kdE9CMz5AVztqeFB5SkN0Zm1WYE9nbi10b05tNjlLR2Fkb2RpRXJxO2sKejk0akUm
dSY0Pjt7TGhvZUxDTE5tOyM7O3NZWkRuMTY4YGA8WnxPeDktNTRyU2U3eXhJK1J7MioyZzEpaUAr
N1g3Cno+eVM1MEgqNmhBMDNKPiVtYSpXaVZeM0dSTllaT2hGQFB+Mm5MeV8oSjdqdSNRQUpAIXkh
bikkUV8hYmBycyVvNwp6JSRQcGE1UE94RkNjKUQ8RSVjJU8rP0xDR0JQZHlUUCpgcVlKLVh0R0U0
NVUyPD99cCo/KTY3K3FJZ3E4eVYwZSkKenl0IWswR3p2bSowYTRoVDVJVTJBcEd2WHRjN0YtQGY4
d0p7OztUMipKVChrPUZmZCNmUXRgNFJmbHBHVDxhISh0CnokUGBndGJzMGBfc1RvUE1jUDYxSSom
V1lgZF5lfSpubz89SGo9ZGY4LU42UT1teSZMcE9pZEN4QWJmbkowdDApQgp6PWxuaDR7e1Jve1lt
M0VKeDRWJHIhUkUxNCZtXjRsb09JKElENUFZRDtiRWdGPyQxdlNvK2BVbEI8I0J+ait1WEgKenJu
NWIjaGkpJCtvcCE5VU5AR2JCSVVtOX44NmIxKlJlVVE0aCYwKT84VDRCT2w8SXFLT2FWTzUlTiZe
cTVDZmxeCno5MSlYPkQ1ZFNDJCNhXndFanBIclFQX19UezZvSzxlTERYRD9LV31STjlReUcqbkAh
RzB1VD1HbW0/I2tkRytQZgp6I2A5V1RZWnAleFFmeDd0cnNORGRqJk8wNGdYdSpUcjdFKFRQNCpe
X3piM1l+cCs7WnEqJlFSZDdnTmcyITJAS00KejElfDxvcmJvVk4jcUc2ez4yYjFYbWtgTWs/YHlk
KEZ9eEIwYEVrPU16bnY2VD5FQ2p5TUl+cGl0N1VDVSElfSU5CnppWnl3K0lva3xVbkxfWGc8YVhx
OVRXIz9sUmNOJSRHRkRiUEV2ZEFIUyYjMDFWcTlrJjxlRGdgbUw4bnE7VSVITwp6bUY0Y349ejNS
Jkc9JVhOaDRpZ1g0LXtRa1lQVDFYJDIyWkNCQkhBbGJ6eT1JUXlCak04c2cqN15peTx9KkVjZHIK
emUxN3tuMFAtXzFhQ1lVZ2MqaC0+PTg3czZEQUo2aWk7WT47b04zQUVXQjhWRjtUejxGNyRYejNV
U0p+KXV9ZDZoCnpqdktHODIwNSZhUShsQHFNUEIxZWJZaERuYThEemdmLSlINjFjUkw3aVlxdW02
PGo0YS1MPlh0Umslc1BKck55Kgp6ZGhQdHR5X0tFTmtURTA1UTt2QVkpQmdha1RrLWYpJDUoQVFI
biVDfmYrU1hQJFVHNSVQYU8yM2l0REZRJEs4JkkKejtkTllBaEBDeldjI1VGSGNPKjhqc21LI1Ao
N0RFT3hSM0hHb35QajVLU0JfO3FwdnxVKCMjPGQrbU9WMyMxPVR1CnowfnoobiNTflhlO3JxVThu
WEUrUkU/Yj44djJGaFYzaHp8WEVVaG11dTRCSDEtTmRSKyk+I04jREZBX2lVYTxjRgp6Nn04amc+
enlOMXhMZDZ7Typ5VUI4OElydnJJZG0+JFk0UG49TmFrSmlZdFFgMnp5QXUjV1pfWkR3Qi1+TmxC
a1AKellGZnN2dWlVSH1Me0IxbGsxVExVOSRPPE16Q01LZ0QtSy07IzFxSVpRJT04PFJEdyZWamJx
I2ROeXxTUzZuOFhICnpROUR6TnJ5YjhXNjZkSjdnVGVZaSl3TUl7TUJpaCNQY34qUCVNUSE8XnJw
fEMkRWFSaEV3IXFweX1Hb2w7R0M3ewp6Sk58Pi1pWXZ7cFVVOUVHSig0PSoxZlpuMTYyd1QwMkN3
IUxDQjIpZnV+ayR8dVE8VCNfM09feShgJXBFK0tLeF8Keih0eClHT1NtTDV0fmRadU1MYk5NTnZT
dHhvczQ5eHRhbGU0Si14OGdZJGJ+NSE1QF5kIyQtRUswbDtKRiEyRH4qCnpITjg7WnlGTjxHQiYz
anwydUcrTHlVfDVzZktIXkhOeFFxVWN+aFVEe1Y/NmZkMjN9QjhLamdrPWRaNkwrY252RQp6b25v
fHROYlh7fWoyNlVZUF4hajI7Qyp3OV5gZVMrPGk1RUdBIyRseD02a2NzWlhffkglKjVyN0hLfTdl
RXhTaD8KemZqfks4I3ttMCMoTTVYb3FQPzAlXl4pVyhPQ2J7TyFXUGREaitGYXdaKVpyRDxkYyll
STJ+eEJzKVNSTEM5NlRTCnpZZ3NfRS1VI0tsbDI/QE5OYUp2JTleQnk4dDtMKTM5aDBofXRfdWQr
emw+emAmVCpme2lZdzhjbnhtaFdSTFUyYwp6VUZeXzhUang9YjdgVmNtKXw0fTlzYkcrY1hxY2Nt
e3B5MU0wTnAyXipjNEctUnc5Z1FPV3JoYk5pIURqTUFhc2QKeit9Z0hKTFMkMnVgUERgNl9OdXIp
VlVAT0BXQnE4TnN4VlBqTXo3cW1NM1FNNW5ndWBFdyptV1lVYld+eDcxMW9UCno+eClVXmlLVj8z
O3BEbE1hM0dZTntePGA9MFJ0enYkaSk7XzRsKjNqYWxNZX4+ZFh5VV5eSFJEcHRnP1g8ciRRUQp6
VUFhfXFKbztwUWI9Mnd+MyVxRl9pPSptUzdQZmtQOGtffj15MTNOZ0s1N2hQP04oLTlxbF5RSkQ2
UjAzdzNRe1oKek1wQn4pO3IrSyUlRD9jYVppVFp4dD5QVXJERFhDelcwRjxfK2JYfSN4bztKQ0Fg
SnlDcEdWWkIpIX0zJjt6ZmhZCno3VlchZ3NULVRHUUlrYSMqK3djPHMhaV5sakF+U3NEdl5ZQ1lV
ZTYrdENsJXYqcT1fN3pvbUZyU1dSQmUoSldmKAp6PXItfUV0N2NYSjdDJEZrMDE1bWtxUGJMXk9S
MDc9Zz10aUx0bjBMRzUmVEs3Qzd1NHBSZmJhZWE3dGlzPCRhQ14KelVqRzF2WkU3KClTe29WbDct
aFApaV52dnskZEVrYTg0UmxVMWRheT5DJDE9PnlxYzZFQGdDMmpOdSR4RE1qdXpeCnp3eW1eczl0
Nl42eCR5KitfZmJzKSF4P2hTeE1kKVlhREIycjhoPyRgT3Q7bitZZkVVT2FIQz98JXlKSnZQQl9S
cwp6QGtKRClJVnsyMStRe09TbG9oKE5KRG8+Wih5Z3AtXipkPGd3MipAeHoxbDA2UE1JSyNqUWFJ
R1lue3x9M3dnQigKeitUUEE5ZHdIQyZpP1ZgcWZzJU9xWHJqSEdyWWpLJU5gSHJ3MmB7cXR7e1Ym
KFhUUH05QUlyTHMqKWA3NTQ/QSlmCnpBK2doZCohKmRidXtPZGRqTEVhX0YqcVE0UUFLbntxZiY5
YHU0NX1MNjQ+Kyk0fTQ0ZTZ9NSRvdSMmIVpXR0o4bwp6S21jOCVyeWpvYm5XJE9vby1ofnBiYGVR
RDV3UXh9QHdualUwR0BIfU1IUyM7dSsqQFViKlY+SnslM3Y/bEVsP2kKenN5QXl+YClBXnxvOGNk
WkpgYzk+OS1IQWZCRD1BYy0lUGxNM0FSTiFrXyU9cHUhNT5Wb1AmWVI0b15JTVhZb3I+CnpvNVNB
X3s2KGMmbVhBJWd5X3ooUTRnIXF5QUM3cFVpdUFDc2leMFgmWXJvI2RqQEd7e28mTngmUTFDYTN3
RT1OKQp6ciZ7QHB2dC0xSTxRPkVqZk9lRDRlQGdZSEBVODh+aDJLYHh0fkQ1QWlkYlpqbn0jdkth
dVl2elU9blorSnZiZGAKenFQYTB4c25EcWtQfSUrRl96V2RGb2N6bWMzMU5TI2N6YXhrWUxfPUxZ
NGhDTjVrMWJMUEU/S3YyUlMoRUlOZW96CnpXI1UrNCZ+MnN1KCR5aWNjI19gVWFLdUpnUG5jNX5C
eiZ3MFUmZXxtc3BCZUNiWTklZiUrbkVyaDkwITNNWWZ7NAp6b18lSFVJYytDfWtNQGt3aEFkVShU
PXlkZi07Q0UpWTROKCFZdnwwSGU1KGY3KEgrYj9tdGgzJUF2d3RkMUU7WCsKejNNPCNDZ3tKanVR
PGdETyhVfl4/MDJpVz1MY2U4fFN8YWl0X1lIXlBqQCpPRUolPiE8cCs2WCk0JGloMEs0K2MwCnpa
biEmazt9fF5qX1VUMHh5ZGJ5aWIyPjEjIWI5PFAzRURLZHg0KEA2ZWE3MThmPGZ1WXt7U1BrSSF9
dyVvNy12RQpVSHNzXnxJKktYc3J6VUYoNnghSlQrMUhjTGp7cER3CgpsaXRlcmFsIDAKSGNtVj9k
MDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vaW1nL2dheW5vcjMucG5nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2ltZy9nYXlub3IzLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTc3YzE2OGIz
OTFjNTQxMTNjZGMwOGNlZDVlYjc0MzZiMTZjZTRiCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAy
MzAzMgp6Y21iVGVXbUg/O145Q0JFNUx9RDl5U3ExN2E0UyQ4Tl55NTlGMiRqXnlTdXh6WG5fTDc5
ZzBoRV9nd200QDkpRj8KemNHcTI1TnpSOztsYkpKVD8+I2ZtSlZ9SkF2TWRAaDVpJFMoSyQ4UFlz
UklEOEVOfE98Sy1qbGVJQHtAdHc+S0NVCnpieSpPZ1dgZ0FLTytmZ3BBUyhyY3soSXpnbW5PZExM
Mj9BXnhCdmhzSVJCbjdmUSY0SHgxRVR0YSFTJk9ZWTRhfgp6IXRuMH5LUnk1ZTZhWUQ/NDw5fDNr
RiEwfWFIU3VJZG99MFE2OFkjOz5KJClRSzcwWWRlNzZMXkElQzk4SVlqbHkKemRCQTwmcFJVfH1y
VG1oOEBzUl9Ecyg9OFQmXlNPbFk+K2JVV2tLKWlxNTFOOXV3O2Y1I1pyWkE9JHFyXjhNZENECnpR
UGJNang+Mzx1NXVTdk45MTMhKHN4cylqRWljVzw7SXE/UmRwfXBuNUtDNTI1ZTNSdVckPEd6O3xs
ekBrcHlKSwp6ZWZ3eGN7NjdJI0tJRVR9RjlyVDVBayV7VzM5M3tAfEFiSSUlNnxkX21paitvPihm
OzFybSVqdlM3JDV4KnQoe2IKejRxTlJvWU4kZSNMUGNmOFlSOG1fWG0+LT8+aSFrNGczP3ZUbil5
SWdQMVc8ezIyYGlYOUhvKnxIYjsxPz1qallHCnpUa29QfjsqYGFvVSYyTEYtaGs+XlpnKCgxcTI5
PE1qOUlaY0Q/YlVZMWIqemtVY1MwWWN+I1p6Uj40JWo5d3xtKwp6bG1NMH5tcW49dT4hRV9FNkNT
PkRpZ3RNUEpSWUlnY2ZVQ0l8SXV0YCFiS2lEKCtGWHItdD9HZm5QZy1TalZFaT4KelRXfntAcU1g
OUx1dW5BXjcjdnpNbmMrWlgzXkNLdWNhJE5WQSglLW8+Wis9OEdAM1pnRFJxeSFYbG88QT9RcHwp
Cno2XjU1VnZZakErJWRnTG5KKnJWPHhTdSlGPn51Y14hb3dsakdmU2NTWCNYXyE5RT9PMFhXY2xU
TE54TGRlMkt3aAp6JWA3al9XV2JIWSRzSXgpVUlLTUJ4X2c7JHtOK016OVVDTV9ST2NHe3tGUEhL
Qkk0cldCRnd+N2dzZ1ExNEhTWnoKenFAS0Y2Pig8R21xQExDO3hVeFV+WUNrcUtONW5+c2ZraWw5
Uj9XR3hQMWlBailDYFpMNWxuMmF1QzcqUnlCcVlwCnopbT1nd1lhTTRSQGVMP3BjX1E4NXc+SG1O
Y3A1RkdzTSsqKHpiPF5QTFE/aWxNYH4rNkMjbElKUUhFZ0p1WXs7Nwp6JjZMJlBOWFE+TGNOJkR7
Vjw5c1Y3RXtiX0pFPlVfWEdES1l0JERKI2gpY0lCYnZ4NiszMEUhbXhuQUAlbDMkNkEKek8kZz9x
dkxsTlF4IWMySShYSUV+P1R8TDwlJkB8MkRQKUpJMnlwJGZrR1d3OTlZbGspelRUfmtjJnhnYEZk
NGohCnprYjhyT0tPSX1KQHtFKnVBKC0rSk5xdWArTDdlaXlAQWB7PFQmVnJxP3ZtZylkKD5lTXIr
S3JfckU7MDRBb0ZHbgp6SGdqOWdZa0U7cHFZPCs+VGswJDM/Zz1rX05LV1BVNHZLQ1pPe1JBPnA9
MD58OyYpRzcoO31ANHtSSCo0Z3ZzUHkKeld6U09ZISlON2pEZEZSRHtyTSNTWnZhMjlPTz4lO1Bj
Z3RyRndQTWFRaDxRU0FWI3chY35BKE4hMz5XUVBSbkBxCno4VGludDZXZXQ0UF9hY3hNRkFYYzVy
Vmc4eU9GQWdpTHtpfCk+M1dNWTNES0A1R2QpfD5NXyRvSTtLX3FkJTJ+NAp6dzg5OzdTfEplO2tO
WER6dDEyO0BOVXFCYW4pTnlaVm98XyFjeHwpJj1YUlhAYTVKRn1zJCF8P1RVOXYqTl9aTmYKelBj
cF9VRXgxQUk2Oz5IRkdrYj90TVZqN1dBQjAtMXImeEctaGFmWE5FaVVffkh4Unp2LVE9eypoNy1M
NytxSXRaCnp4KUx0VGghNz1WK3NwKUBeI1BgU0J3UkBfeD5GZDVJMW10NjZjQ2FgUTkhMyE3XihG
KDUmYXlmekdVSlJDVU1DaQp6KFctO01BamFZbEZxamNaZns+YWIlU0REXkNhdUpaczh+KTtaaGZC
YzcwK3NJcjZ1O0pnRXhrNVYySDRmP2JrWF4Kem5LNWpZNUQ4RHtBVD1kN2NCSkQzQj9WVENic0hg
aGxWQntkUX58cjM0WWNeQ2k7Q21gPEtPelFidz4rUTJiTXJPCnpZQldJRSlIO2xtTnZmRXQwYSlA
I2F9MnYjOGdIdUE8ITJncldLXzxrM1JUUm5laCZ5Wk0hfF4xKE5uViluYFRCawp6RHA/dy13Znt7
Q3NKNVg8IUNqPmIzQlZyWFc4XkxScUNTZnVUNlBtYzE1QDczMEUzQXNGOUFANEI+WWJ1KEZ7UngK
emxCenJzN0NnVyQzajt8V1NwMmF0VDFJeDVnZnU+QUNDc0dCWm9OeFc3YVEkZUJ1ZUJEeU9uNW9D
TUh2Wm53fFRfCnphOVhiQTV+PVZXPmxyUD1scTVBaEZqNEBmZF54NjYoNklgOGclRXJ8UXFsWmZL
NWh+aTc4QXF9QUBrPmQ+ZXZrRQp6REgyZT9OMD5LQ0s7VTIwUTcxfFFReEZoU2JyaVRNbWRsUENp
VGdlfFo3XzY2eGFCN29UPU1TUUpWdX5vb3UxWmgKenclQHFtQHQ2M2MpRDlnVTglM0g0WD0rUH53
Z08yK21ZeDU0WTVXaWlFMiF9eTJ+I0ZRclRfPXpDPE8tWUJFMmFiCnpKV34hS2greEJUZWtSKSYk
OTEjKjBpO3cxc2BLOzBGJjZFQllJSXNuakErdXBNVT5LMiEtOz5kYStYZyVCQntUUgp6I0JgYCl1
aWptNmtncnteTDBVLSk7Z1hkOWxybVZ4TXVWa31pSygtSkJOU2NPWHB+Qzw4Sl47MC1EX0RHSGhs
UiYKejdWdWtgJmZpWiN1bGQ4ajxeNEk1TnthRF9ROGstUkBOc3x1ai1zZmokKDxTakw9elpySmxu
M3woQEk3IUt0LTc9CnpCUyhXeG9AKGhyc1k0Xnh3NiZHc00lKVZEa0h3K25qTSoyMGlIKH5fXkdG
b31LODVke2l+V1c0ZmtMa1AxaVF7Qwp6YUhybihIPEE4UnRBaFBRIXx3LWB5Xn08LS1zVXdWTi1w
PEBrfG0/QjdibmxqST5NSX5FQzNFe1VBS2RJaShsX2QKemh0YmJTaENpfXVHMmxYfXNkZiZ+MW1o
cEl6cXM7ITZBOz96biZLJn1xb3tTTysqYGpWc0ZiSDBxO0RlKHwyeSZPCno5SipWKWYpWXZafDhS
NUt7UkV0STlxcSYwMkxWMTdXK1l8QTxBd3gqIUJqPXVlYEZ8WnM5T3RoQnpFZWlSJH10JAp6WT51
KVRJLXQ4PlUpRH5FUG1qSmx3K3ZFS0ZMQ0VVJDdWS21ORGh8TC0/d010P2MzYDw/eypzMF8jS2tf
bGNnMWUKenlvSkI0RVM/RWQzVCZEVmV7PzZoejtPOEw2fThlN0EpU0lHPmtqKzJ3VEhwTUsqdnVt
P1gpST1zYDA5LUFiezExCnptSD44M3NEWnZOM0Y8ZjIzMEFmP09tKnhTJU9ubjFCRDchWTxoY2d5
R1dsJUVBTGQ2P1VjeWc/VDxfKX1KISN0Uwp6MDhaJipmTTF5eDxGVVVTXmFRI3I9VytPQllCbG9P
Wll7RVdFX1NzSSNVNTlDUENnZX1IJDVjIW9PJGB7LTR8N1EKejFYV3JJaGtebzQ3b35sQVZkdCNs
dUU9NzZOTlROR3ZoczRrRFl2emdvOHpVLU1qaVRjdlEreV8mRW5uUCVKVEJeCnpKRDdOX3VCcjF+
WDVPYDgtTV8xPCtYdnJvaEJNbVcxQ1NefjMkMC1qZkgwS0I7Y1Zmd050ajBtWW4kY35NOWlSdQp6
JWhIamtWOEVabEEpa3F+JWZCSGF4VzN8YzVjMUMzYkNNWHtrR0EpWkZIcSg1WmZnWktPYiZJU1Qp
YHVaeUh5ZE0Kejg2fClrKlZTZnkrJCNhIyZzTjVyY3hVVWtSNnpWM2I4aGMob1E0OGBDZmRfJmRM
fXBsLUhSayViTHtvdUlnMUdaCnpmUDdzT2V8NmRxWHpKTWZRMGFON2NsV1h6SmtENDUwJTZxQWVy
ZmhsPFFYZ1E5KmUkUFB2XjFPUDNnO256dS1HXwp6LXdXa21fM0RwRDxxeGROQF9AZD5VOylCZS1q
JFo7PmdWZHtKdlYldkg9dXMpMiFibWItc1dCeHR2dyU5PE0mbFYKelhoVlFMZWR9JTNmOElsWnJu
aGB7ITFRKWJIQ2NHd3tifVAoZCkldk13YTE/T3liJj84VSVSZWo0ZU1DeWUkMEVuCnoxK2djYXA9
VWprMzBue3NLaVhwLTF1VnEtYH08bSlNcXhhPUNAVTlUUUV3O2BXWSl3c3N4dV9mJno3a088QUJg
UQp6YkA4KVJpNmJObVd+OXtSRGQ3UTFHYWBsIyVJaUpTVjx8Tm9Ufm9OTEo2Y0t0NDF7UGE8X3No
fWByYX4tPXJLMCgKem04PEkrPzhMM35pTEBhZ0NDR1dBb20hQnEhZl8laXpMNm5aVF5eJH5AdnZT
ckV3d2hTaXY8LT5zXypSSGl6M3FrCnpBSjhERSFULSt4d2JPbF8tQHA1fiM2biFCdUszcU9sVE8z
VUBFdilfPHRkVWQ2fko8SSQ9fjtLUlJIa28+MyNgbQp6ZyZPZE0xSlozI2teKyNKRS1OSmBOdDQz
eFAqOStzQ2BTTWdfPiVrRm9PJmF9T1FAVmNoeThtVlItPlNBSnxFR0oKekpKcnFgLVN6TGlUYHJ9
WSp3ODAlMT8+YnM9cnBjLW9tY2NLRjRANCleeFcrUmUrQj9MJkRvZkArKHpiWGJDTCZQCnowJkBI
ZzE5MFdoYSF+LTdqQjg+eWA4TVFGVWsyQUgwSDJDOHtYSWAmI2ckZUtJXzI4U15sIzJHKzFqN1RI
QnRxVQp6O1ZKYUhkYEZUfXBgSWZyNGkwNWJTKUBtb0xlOTkxPipxaEkqKFhMSyVHXnM7OERpeF4y
PWIlVldlVjhVRDx4eGIKel5XQ3dfbHRaIytOS3BJcEkkREBMJlNKQWZkK3lVX3AwNGV1bjFYPzdJ
QXR8Uj9gWGUjKXdrV35AbSszcSRWfHllCnpObE1zPmlyXz9qJUwlZU1CXk0wQlJ7byVsNXxsQEln
b2xPQmJpezFPZE5gSzNqd0JgSDBiR2VpOFA7WVZ5SEwxYgp6QHxAVDRBK1h+NkBWb3ZtSktRY35G
bj9rZnBndSFlPy1oRHx3dWg4KUlUbV9la0RLJn4wWksmQWZBNm53MExCWlEKemxWNXY9cW1SPz5l
LURUTnp7RlJfLTdpfWhkY2UpPkR9RXVTTztPMFEkdkFyVWptYiMmMW5HTEdLfCNJdi1RRnoqCnps
K1RNQztRMXRlY15FZl89bF5tXllYIWhHZUF2Xm91PzdyV3g3bTc5MGdOR2NtR1UrZzg2ZV5QRGtS
dXxgS1JnRQp6NW5Ld000OWpeKXRwbWhvQlU3VSU9a2NfXkthc0BMRWAhNiMxcWhIQGRmcTN5d2A0
fD9TZFI5LWs1TVU2JmMwdm4Kej93PGt0U1V0YSRnYz9FXkN7M25GPzRKKUJTNmxZaVpoemc9bFhk
M0hSX1RydnQxPUo/bE1IOD53M1NVdS1HcEljCnpmLXhDczhFREZpSl83V0NOPGFoPEZKNU1SVDR1
QV4hKmFFT3UmYUljUWNGPTRtJllVPG4xKksoWWBNTX51Q3g8Xgp6MDFHM3prYnJ7JnZMX0IyQC1r
JV90KU1ETkdVblU9b3IwQzlocGpGVE14dU98ZThVc2JyXjVoR01mcWo+a3pjTEoKemFudT9uO0Zg
YyFpfEYwQnorRTRvTHZLNGBWNW1gNSVASUZDJkYwU1VINiExKUZrIWF3ez89PVVKeWBZMGAralFF
CnpvKnBteEA/VmU3RF9OWWElYCtjeDVaOXNDV3hNX3ZoRGBqdWcwREJRU0IoYU1LaEtkQyZ7X0pe
XkdPKTBJKEdofQp6dTskQ3dZSk5KKUpAeTledDNXcGlPMWY7bXVjfCllPypyQW5rTilJbWZCM292
YnU9ME5nak5xJUxve2MtK31TUjEKejZRPTI5ejdaU04zTXI8Wj9zO3FpSSZYV31GdGRzOU41R20t
SmlwKEs5ZG9uVjc9U3lZLSVReGc+OE1ESjFFaCpRCnp8QUBPSEgheStRQ0ZXMUxvWUFFYGQtQio1
cGp4fjZ4akAhZ01HRmAyYil2elpZVHd9cDU+dEo/ayp6I0U3RyRYRAp6WCVzcHlobDtvO0h4UHd0
RnlJYztmRChsRVh+Nz9nOG83Z0xxPUo5fXN4a3lQZVJ4VHNaTEJtRihYaW5tTDdlTFoKejc0N3sm
dyhFXnx7Wjw+Tnp1ODUqXjsrLW1fZUxVKz5YOU8zXnNESUVPcE41QEB8WHpGTHlxZ0A7TTBidish
eFB9Cnohb0kxaWc4UGJAWkhlWHJqWDd9WlpJejNSTHhOUG5PZj5tPEBiSXs+MzdCJFYpNG9CXipF
byNeSylAfUR1UX5GJgp6eWpDSGZrNUJ5Mld9SkxsNEp8RUhsQUp9PVRFPmJObVB4bnVtUDJqJl9j
PCthTEpmPz9CIVc/bU8haWkoQC1SZGoKelhYX1MyRVMpYWEtP01LPFhhRXZKWnZMSCs+JEk/SXJI
cjQ7b2FgUTVvJEZgY18rUmVJX3ZjQ09IKFR6bU5meV4tCnp0KT5HeWJCUF58QTBFe3w3cHlDcmVG
NmtqXzdDRT5KWVQ9fnspUDBjVkczOXtsR0xONXUjT0BFSmJEIzs9dCg+IQp6byMxMyNGUWkrfnFE
fnlXUUwyOHlWNnZiJnxIQEZoYXU+KXdhe2MrXlN9M1k+MSZ1aEtYRVRiNnFRU340UmA2aTwKemd8
WHZOZV80Z2BFbFV6VyQ0Y1BwJn4lJGNgOTZpJmVuMlBNMHVLaSkmYWdpU3ByZiRNM180YDEtTWlH
JUx8bXwmCnpMYFJ5aFVMY0k5VUxqQF5XZUJsPzx6ci1HVmByfUJrVGkrMHt7NSNkRElYampLJWxy
I2hKWjsmTmkqbHhNXiM3cQp6MDAjYGBVWj8mNWJqcVVxQVZKSjRYMGJvPD11OFp0NVZQTj9sRkw7
QylHPWRzT0pNRkBqd3A8VTw+WEZGT3BhN3UKekc4Wn4laSp0Mk5RdT8jNjhgQElOeSN3Jm5PcDI8
KzxVb2huNjxgMnwrVHk7SUlFOVgkO2xlfWplVGlBQnZBYGxzCnpJPzA8XlVnUiRwZWYkY0ltbGVk
aXdLaCVkIylfU0gmfkI4eXFjZ3NGKVlDSzhDI3pGN3omU2RCJWl+WEZCVCFVRwp6Mk5NV2xGOSQ/
Z2RAbzJsO2I2KGd4KCEqJk5sOGx3Q2Mle2JzOyYhc2FuVHQkKEotaE9YVComKCNpeHxvaEFuX2IK
eiNmQ350Z01wanl6Y14qdzArOGcyalZZeDF7LUNXbjlAXktRQGAzT2N5NlpWMzdeQ304emV4fXhN
eDwlY2UwSSolCnokbz9RPztzbFpoZzQmVipTJWhAM3NgM1FpbUNKJi0oY1p9dzVGLVcjVT1uN3Qz
Q2FJSEtJQElsNSZJfHhVRE10dAp6WFdfMGFXbm0rOWE/KnVFTzdQQytuYHNLfWE1VnBQYHdIRnh1
ZDZgaFpKLSk7cExPaHVkYGMwWHo4dS1pQHUzcX0KejAoUG52dkR6diR6dyheNFpKdCU+P3QodkRU
b2NRUmJ6NENfcyNlU0kzfF5paUlSRkhRKmA0TmVVZF9MSGt9RGdsCno7bHtlPTFXaH1pcE5od1VI
VE5jWj1nfTw/MyVocCNYQFJFUldKMmZReFYoS2RaPlEkWDE7biU1cUlPcWF0VCR7Vgp6KSohXlgo
P0VSemlVfiRpI2lYU0RFQGVTZk00PUM2e1BgfDx6JlBYUUNaflFfJkc2dEx1Wm5fUGN1YU05SVZV
U08KekNFR20yJHRGcWdvMHRHWnVpYjdYMFI8Yikyaz03PkEwKTU+I2V8aGREd2NYSD1GczI2JkpN
K3JIelM8blQjVDwlCnpgJHwrbktPNm9HTz5Hc1pxVkw8JXIyejs2RUh8e3hkaiRuckhlRXJQOHt+
SXl4Nn5Mey0qe01XVGE0Zyg+TGh5Jgp6P2QkclFBSn02JWJDQXhNP2N3anJZTXsyK3YlWEYhenlF
em9wIyoyWVZhOCkkOVMhcE5zIUMxISZLeFA/biVpVWkKem4yUF5ISWQ2Z1c7Y3JzMlU8PFApeiFw
TnhEY01YfU1QbUdTKDA2SjtDcXJwYXpxU28hQ3JqdDVTTCY+Z2otQm00CnpIJUwrQVM3TkxDbjUm
IV5CNUBKSFE/d182K0ZUezY7antXMSVIIUdPeUU4dHRnfiFEeGdoJDApY3BJP3MpQUkyMQp6eDBh
TzEwQmJuKysmZnteNEt5YDFHJGVyK28/VUZJM1A1fEU2cjlmJTN3QHp6OzJ7UkhCbXJ1TkI0dmoh
RlR4Xl4KenA2JXg/d0xOMnFmR19LdVIpLWFqRVJTYnFqRFA/b3F0YFNHZSZlM1MzNXpjUnkzSUNB
cj5aQzJZMGBRTjQkQz4mCnpNbm9LaWNraD80VSklMEg7M1M/X0hoZHZyaWgjd05pRVZPUUU1fmZj
MiNDd3RGR35eS2RGSCFVVXVGQkU5Jkppawp6VkdFVkNoVjZqLXdqaEhrUWdZb0okWD9ZQlI8UkJL
dkVWT0o3enZHdXU0aHlAaU5nWHltbVdQKl87YCs7MXBBJkwKeiY5RjltTm5yczhrRlR3RGQySCoj
WjcxSWJWfVRGZUlkaSZieT5JaVQxU2RhdUVDMEA2V3QqZyNmfGVSeXxBNH05Cno/Y0FFcGRRM3Yr
QSRDMFQlSHtTYjxNaFV4blZJP09eNksqUGErUiVoMHBqeFR3V3NOJGloMlI3NmF4V09oLVZqPgp6
ITl4RmN1bURNWmw5MjM8KTVOPnxHSnw0eU14ZHklZ2VfRkpfYHUjLUhvZi1tOT1wWVJWSW0mcVBl
WHchQyNTTGQKejcpbDVMVGQ0RUFBPjxzMXo+Y2s+MU15dXohaVkqMmtEYWZmbSlHbCVnSklpbE1y
TGpBKFI3c2tnSlVhXzFPazUjCnpfaTY3RTtMcWhGZWEqQEdSZiZgNyUpaGl8ZHdxayV4LTlZVHJv
KDNTVlM8JDZEZTQ9JDtON0ojeCRqPGFzP3A7TAp6NCN1a2MobUFFSiRtMGtkeSpwKjBOLTh8XlhC
eGghKE87KWFRNFJmbEVUM0xhK2Z1Y3BaeUxXczx7Tnw8aXo2KWIKentZdm05ZSZSY1Apa0NNU1RC
SjRUaW01YFdkaGx2Ul5UO1k0dU42REw8Y0JtfElrJlJoOD9WQThrfGVnWVUreClsCnpSeiRwY2w8
cD9QZFo5PlcxNnpScDBXNEdZbE9ReHttNStkemZmcHtZVGlDcnV4OWo+X1pTUFd0bXg3V1RaeCpY
Kwp6cHpxVkk5QmwwKks2PEZUe2R5TktiN2Uhcl5vZzVJMXxCTHhCQD1UKnlqWDNqK1VVRmVFQ29p
dUFxZ2VmaXpYTloKejA3XiZ8O3ZDNnIkTDNeSW01Wm15QD4rVGh7aUskQyh6S2teLVowQlZ5Qj1V
PUJaTDA+QHM/ITJKVDdJKlgxaCNDCnpeTmE5YFZnJF9Kd0RoamNqPVVyTT9RTzl0RCtxfTlLRSZi
b3hDdDF6PyVKOzFBQjZkbGIyckBHJH5nTjJvc1ktcgp6UG4kPEI7VClZVm43MzI9X3B8bDFNUGtw
aGB9KXpeMWVjYmxra1J3djAyMFBeT2txSWokfVQ8Kzk2KEEtI0REMlcKejQ7KSg7PGIran0tMUdN
SGFQSVE7UisoUkZjanM3UzJXS31NRipZTEwwe3xAUV5PMFU8bl58USNQdThmWEpfPHA/CnpIZG97
b0JRPl5UWFpndntORUhFcTZpbnVPZ09ReT97eCpwLT01WnBDUmxEb2lFeHlOb05qZX1oMS16Zm1p
fmlRPAp6d1h8ZlRVOENQPGAldXloREtiLV8/OTBiJndVZTxAYjg8Mj5sY3ZFUTg2VkgpX1BQQ2kq
MU02SSVeRV9KcSszR0IKenNuan5RZCplTUdaWThiQTdARVlAQXQlWWhSLSt0RzZUVGBnekgzUnZL
cTtIWnVHOCMzYGRvcClUaEBib2w2aTQ2Cno1ak91b29OajhFYkEyMFpJJEBkbU1RWnFmJWlGK3Ao
bmUjV3lTWHk7KldhKyNBKkRxV3p5JnE9bFBNMmZDUzhgLQp6bkl4UGpBcFlmTm4rTS1KOyRgc29G
TUB7d2l3Knp0Kj1xZFRsaUE8ZW5hbSNRPTY0P285ZWdnVTQ7JCZrIzIlOWYKel9KdUJQeVk4eS1Z
YXpMWlpSQWRObFU9VyY1JnBlZlN1NW1aR21Ib1RlTF87YngjQ1RUKmxrd1AhSVN5RTtwflg3Cno7
djlYP294eiFzJnNDMkNxTn0zMl5oQGpCVDl8P09ZaGdLaSt6OExkciNFQz15cCY8V3VUWFlgKiM9
Sm9RLTxONAp6UyVgSEFtYiVYK0JQRWUoKmljYGZNOGMlQGNjVjclaXxPfVFfejNjJkFXY29OUnl9
N3VNP0xCZ2I7fVUzPWtzOFQKeitjUngte1Z3Ty1RMyhvRkVpRkV1KTc2VGpmTl5PfTNkXj1OTGtD
MylSWGJAI3UmUjk4NUtVblZZYWlBYTVBQSppCnpnKmBBWG97aD5OS3BEdzJ7RkczTnFPen0xXk48
V25fJGohTyZEV1BkMEZVMn5ZeGgpSHA2ZDtNcyNQaEJhfUV5IQp6QnxkSCZ4cGsmR1F2czwlVjBx
YH1MWjI9cHVQKGIzUmFFNTRrdjt9PE8zcU5VeCMoSihuM3ljYHRoQ3I8clhfdEAKenAxPDRobD82
N2xEMWIzUndxd1pPZn0qKlUlazdwWE0hYUdua188cSU1RSVlJEpvZERwNkVGZGNxfFdaQ0dMPVY2
CnpAYWdXTnY9YXRFSXV2Vk5pdSheLWZ1fTBjSylkbW5paygwZTlDa29+OVUrKGp6RHM/cGglM3Mh
eDEzeCh3cG0lewp6ZzwjdlNxYGJmSVQ7MHF0e194PzA1PUh6fWc7fllRSTEoZTw4fihXNVZ5QnpN
c1dmd0ElPCtYRjN8QWU8UiV9ZFUKek1ubnl0QXA+S2IhR3FueGF9PFY0NWhOdUlvVCVUKkNfIUpl
MDtxTXtvYWBtMlBETXU0RHpkJTxZfTUmfVNyOz8qCnp6YWpSQzUrUnRQPklfMTY+ZD1hJEFRdms9
eThWPjhAYDx2UUtmb2ZwakptZT9wZGRrSnBEZFVrTUBKRzJ4RDlyaAp6RjZjdmotfE1WbzFva0pl
S2d1d2dSYEoxcWtmI2RXa3k1OSR3VUF+aEsqVDM/WFpiR0M0bml8QVM5eWhHQ3FtfGIKemRuMVpE
WnM8ZjwpMDRoK1g0Snp+eUUmUig+WCNFe2dfU2hyTjdMWCU/NnM+Vlo0TlNVVktIT2x3ejQ+QWln
RHAtCnomNUR4KXQhS0ZHQ1FSfjZPNlcrP1NGKitxaEV9ODFofV96TlFtentJZGgrTn05KUlYfklA
SjBEQDQoNEdRbHlJRQp6QXNkRWY3PjYtMntJJUQ9WXQlRXozdVVTZCUxbF8hVkxqSDliMlRxR3Y9
Z3Q7ajNGUzY+Qmt2ZmAzT3U8c1o7PEUKek9FaHooI2cwLSsmZE4kIVQ2JXlkb0I1fFAkN2RiYmdz
RnE/Um5jNi0zKlkwX29oaD87QmA4OFQ8WV4wdXNOKk13CnorX3NFVSFBd316ZldvV24jRlZ4MjxH
ZVJMQHJjXyk1dnBzRGNvUG1KRmU1eVREUTxqPG5OR15jSk4ocz41WCZUPwp6KzxeRU5HZFc1b3Jx
UXZ7KFYpJXYwM0tGbStjITVSc1NncCpDU2h+djNqZmA9MT1FSyU+VnxVYFNTaWs9bSlKQ1MKeiZY
WVFCd087O2ZPPktGd2ZlQEs3MHxTfnV8RWdvbDd2YnskbCVULTsrY04keFJiNUA0cCYtRXxKdGR3
QzZOc0NQCnp0RjVJZV9oWU5ZTihXbmdoUjB3Z3lVaFVeN0hmQERRPVNuJTYkRDY3PCVxRSluJkZp
cD5KdDlISHJHWXhUV0VndAp6blZsR3NURWhlWlZhJWVyQFBQOWw1bit8fTEyST5aSmQ7JDlMV35x
QnNqKFclJUYzRldXfHY0Tzhkdn1zQzdlVGwKenYpLSVqQllyQHBZI1g8Ozd5Z2RZVCkhbzZfMEx4
U1FKZSZkeDhZJkJiTDBjYzMqcCNqSF9wSUE1QUVCR3VZbn1SCnpobnBjWVgwPztabXZoZmhoY0dh
KXVgd19KV3ZNcDcxNUdUOW4qJWdKJTg8V208aUwyNEduPkdFaWtZQnJ4Xjljcgp6TntMLTJxVmhX
PSY4KVhaa0NVXkw7KmBea2M/Z2dPQ2Q4I0hFKHJ1Z2hYd1dKZzlVN1pJMjFtOEh+di1hNkNOIT8K
ekIyZSMmLU95MGMme1FEdUlzTlNtVDQqVmRpdTByLTxTRm1Zcm5qWXJrYmFpWU1URzFtSUkpRz5W
UFZDTENuZjtwCnppZkdpNiVsPCplX1I/VHliYjhBU09mZDJ4JD9adTk9Mzd+fnQ4TzgreE42SzZM
LV5BZTkmMyM2VTE3KTBZNn1iSQp6O2Y8JUYzQWFKKHlIPGhIRiFVSlJBWnwkPF9gYTVRJXEwMkxu
JFo2SWE2K3NFOztAT1ZJeStGZ2M+bj5RTmxSRWYKenFlTzkxZitRZUY0VUZXNz41Zlk2SGVKS0cp
WEhDNSk+SSgkMXFtPkZLMWc1TXtPZ3h1b056X3M7JkZqPXVGfWY8CnphUyZ2fXMkNitXP1FRMGs7
OFFadTc3VUx8OHpyZSliZ0k2IVhXJkZXI3p8MkxQNE5fRChrOytYfDhefCMxWDR6Rwp6cm1tRXNC
MW85JVlIe0c9Zjs+JlglOGlWP2RsJE84MXN9cCQhTzBYX1hQYng7I2opa3l1SE8tKkNLR3xzJE1U
ezAKem9xVDgjVXcqdDRjbXhTNjhxNjQ7bC1LYXgjZWhuYCRARkROcFMjRCorPGY4b0xhYkZlXm5I
MGIzKiliKTdBZ3kpCnpDcXZQZDBVSyolYEZ7LT40WG8pOFNeNFpoI19VMXkzMUxQYG4jfXxrTj0j
SE90dVVzX2EpflZkcCtRdTg4QyFifAp6QEVTKiYzP25zTGVfYVNFbDU3UTJXIzNPQGRISkpxZ1Ut
e3s3RkdnSXZeN2sxWXV4K3swRjRLczVPPjx4dUNvbzkKekpSJHJoWSlkPXtuQ1QqPUxYd0tERTtI
JEJgUERUR2I+RV9UNW5FQipQMiRfZkpITU9IOEpvQVhDQyEjU0hzZVJVCnojRylAZ01WKDJnYX5Y
PFlQJWBob05XY1FwR1VMVD44RT5+KiFEOVhfISFtPWFocXZEe3M1Rk0yTnJuOSNPUyEjXwp6aDRz
byhIIzNFYG5Aejx7KTY3ZEohaUNGIzBULXsyRjY0bFNuXy1UWWh0ZSgycUUhUmBjYXxNdVExcHRx
MFFAS28KenpvYGc8K282PGMydUVMcC1PNmYkZWdGIXJZSyZFWStiU09CJnUtJERrSHhuRmd7QlFg
KXxhakpZc3VQcFRMWn55CnpPWU1kSEtEIWZYPnU/PCZFQ3dDaV56cmtZRFh7VUlMMStyOFcrI2x1
cDgjKDNXO3gzYSMqPG94LWo7biZeWHopewp6UEFYMEBYaCg4Wjk/Sm5SWWNwJVcoPTEqcVd4cFhX
WkImflJ4JllNdS08ajdocj9acil4ZUpWOFdPNTcodGU9fFAKelJvZGxOOEJib3xndFJCcD5rSD9+
RGlLUjx6Vih1T1B9blM2Q3soU2Q4cThPXlltKlZLLWl7QW4hSW0wdSZFXlJECnpZRy0wZWVye25p
WGV8fD9EcmZJaj0qQHB3OENDflMjVyRLQ1IqVmJNZW4zQWB3cH17QmUoZV5mdjg7PjJeWEllawp6
ZkhYY1dHVU1DVCtLWCpIVWReZVl5KTZqWmM9QCRyeGltaSVFQHt2SSN7fiREMk87WUB1SGZsXiUy
RjY8bXI0S1cKek4qM3x5WEx1JjMwWEV0IWdsbnx9RlRTOWxMUzJGPTQ0bn44PkI/JkAyYEVnJCRq
VmExeiQjajdsZDdDZjc9fit9CnpIfmspR01uc1UybXNjNyYtQUpGTCFCI245VCMhSDFZUG5fYjlw
WDIwOUR+dTRNVGE0I20zSEJ6PCFYeHRIWEc7cAp6bm5mflkkbS1RXnA0PStOI1U4N1o5P1NAYmxl
eUtMLX1qYFEzWk41SC07VzMkdWxGWW4mJEhfbWFhT3NPPVNRbyYKekY4SUZVRD14ZEMySXdNRXZ1
dVZwSF9eP1RUSFc3X21PMFprJnZiNks2QzhSe1AxJUs1XlZmZC0/NCtPNnQ/Um5sCno0YzJZMWRR
TGBaaUpJPzZhMSNpRXtWOyE9X091cSs2KyZoYWNiWSg+Jnt+Xy1UR3hmfXV9fnVUJlBEIWRNd2Qw
Vwp6KGFTfEg0I3B9WTVqP1Q/SEdUQ2dOeS07UihzNEx9KldmWU5WfD1OOztXSCR3N1ZvIy1WJU9q
PWNRUilHaz9TLTUKekAzQztRPXdzM0pmeFp5QC08aVVxVS1aUmpHKWpyMko8cEVEU3llPnV3d2V+
PGN+OU58TytQb1IzS2orJCt6P2dGCnp0Km9efHdTJEJKNGlndVhXeTV8PGB2TjNKUmBqMj07WUhE
JE1EP3UxQVAhTElVeT5qXzUkcVB+JjRRaFFoQXQ1YAp6ITwrLT5aMUp4Xmp5NS1RXlM3ODJKKmxt
ISQhb0xUSENYOTQlRjJTQjdveEdoTChMe041RyZQWUNkVS12bHd9SWkKel4wSF5ObmBmM3d7b2No
WSU9QjY0PTReUlgwWUVeUSYyQD9BekAxPnFpK0xDYFJoYEdVM0ZsO3kjazxGfnNUOXIpCnozfE8y
Zl4pUEk4SWpPPCE5RGB4UG9fTWo2RVNAc2lJWDVJXjFKc3dJNlJDR080MFNZMTgrX3hyWWF0WFU+
TXRWUwp6dDNDRlY4X3Mmal55K00hdl8yRF9yYigkOTg1d09oXis3K0tWTX5YKD0+Qz59Sitxe1Y1
SjBgRWt7TGEtKytsOUoKekBvNz1HeCk+JjA7PGZ+b0E9YyowNWB6aGwkJFdqQ2NPbldIYTlgNzk4
RFNpKStfVT9CSElvdzEzTW1VVG1+akplCnpXPE8lRWp6Mml9RkNYXzFrfX1YQG5tY2QydUlWITF6
b21CMWJXfVVWODdgbVYtfiZWOHprYElIM3wlTkE7PmsqIQp6Vm1LJn5PcipkRkFTNTZ5LTlFMjUl
QD5gNDdOa319MFR6WUNSckpzQEoxWT4pO0MpIU87MTc9TGtQdUkkMSpINloKeiRHKTdiLSlNUyNT
MFhFVEEmeU02U1NAdlNDVH5+Py1OOzJRQGokVElUPT9YPHg+ZD80ditVPFBeWSFKb2xuSn0wCnoy
cCU2TTFUJXB7bWNDM214Vjx2PElaYSNaSj9hWHFJYEReMDZ4X1cybDRkKD9SI0I1dXJTUWZ3Kmdq
amExJUQ0dwp6PlBxVHBmYHBAS0NoNSNDdCo1XzFEOWdpS0A5Z3s0UGRNcDA8TUU3UDgzWFl4dDk4
bkVmfH13azstfWBLTGNfPDQKek8oc1RBSmk5Zm5Jdjx5YTZlb0tkQCg9S1UyJGlAPil+Xit2SmQx
ZFV3WkVCaGN4YjgxQyZzNj9eeW5KVkxMY1YzCnpmPylzPWdtVXRNWiE1MEBFeSgrWHZyMWopbzJA
VndPaEQ0ZEFXail0I1RnbjNnYypXRCU7fWN1YTVMd2lhNitWUwp6Zj5AeCRBbT1GTE99ZjhXVl52
NXB1eWRQNzYtNU5PRDxAcDhPNWx+STxCU1NxZ3c0MEBuS25qJng0UDlIV2QjcVUKemlXJFE+RjE4
KmNVO010fGg5RFMoUH0lUjtkX0sxJW5YeDxnZm9TRVlCI2FlZXJKYzN7e3lTcyorTnteezRzZk5S
CnpNZk11cygqRVpMQ1l2RkMyIWBCMz81QjlJTXpPQz9LT2kqfjtRKXM0JmNYOFImI2wkZng3cHMt
M1hfdiZwayp4TAp6NDI2fGk9WnV4WWVCP0xCPSZHbU0lUiNobGYxJFM9VEFuUUg/JURJX2clVWdS
UUkmcHNHKm4rVUE8bjR1bE10RmgKek1HKmRzTEk1YlVGRWJfbz1Ma0JHMnVUPURvPkpsVzwtRiN4
RmR6WGY8fC1kR1l6UUdtdzNHY3hpSjNEcUMrJCpMCnpTJFNGZkRxWTR+JT54MmMrUTBAVEphPEl+
MXRrPHZETiU+VjY7Q3IkITE0eTcqPVYwRmJxaXlvNkwjM1U9d1NqIwp6cmgtR0AhKWY0XjhVJVBk
MElBcXV3eGZhYXVhaDxNaHhZcD4walQpOV5QViN9MkptJWJFcTFrM3RZSygzdHU5VWQKej0qemVI
UkBtYyghNmpMfCoyZG0xP0ttSTxQOW5nMFdLN2lqMCFAPkEjZEAydSFNPyl0aCU1X1lwRFRqPjx4
QmhTCnpfcXdZfSomY0dEZz9pYmo8U1Z8QDhieCNtIzwpV3Nudi1BbHM4Z2FzJEtrWSlHMXF+eCky
WER9eDFffT1YeX1HRAp6dE9UTz8jeSVwTFZLQUxReDV0aThTWk57VHElQTczYERodmhqI18hXmtO
aW5VTlBOMElUZ2NiYl9WfTY9JnhNV2oKem1iKD10TnBScFl1YH1jN3RJRHMxRE9qKnpxd2spcXcw
aDV0dmlEfjZjI2RwNktZdnxtYEglPGM3flhkQlM8TlZzCnpgPn5mb2glXj9nO3Nfe15qVXo3PlFx
ISg3KEc9WFlrQElkZGM1bih1Vk9ESzNlWXBqOVdkYktvOTFtO0lnc2I7Ugp6XipyVVdITVREMSpA
KERNVDk0NTs8SD17WWJjO0NENDVVcVFZJEVRfGswTEx1MGlGK0c/YWNEKDY5UStlU0M2SUkKenVS
SW4/Xn1haXUqVHdoN3NyWWtKeXl7X0I5PUhvMDJ9RTd3VFh0KU9GPWAzVGtFTmAwTkN3SnN1anYt
KGNuZWUhCnprPClMQGA4PihhdU1YdlRhOyNmKGBJMnY4dks1fmFvc0F8bjBwKHxDVTh0KmFJIT9l
QkF+UFloT3B+PUAxdHZrUAp6S2pFYGpkKjs/cjxgIXJ8bTZ+SChgYW55ZkRJT1NBa1NocD9aJDd9
cU5gX0J2ZnIxNEwzbz5iSnRKKWZWN299Q1IKeihRZGNqPE5GfDhUeGBaME5Ib1N9X1pEemZMQShg
ZVohe0tBNWlYYUleZ0F8cVRCKF8pIVpgfDZCaSVAP2JQYSs4CnpVQz1QdSR1PClvK3BFKVFmdHdm
MlJnP1hSOXt0I0hHRD9iVmpwRmZnckFFU3h6cypIO0xWMl50K0ktTkZ2RD9NTwp6YF5KPVMrfU1G
ZiZzI159bXV8PV50Qjshc3VxdzBMYWw1RENOSjcpZmUqVCRWSm9ubF9EPlQ1TSNxVl5xVlcmczMK
elc1fWt5NmppOERYRCZtcTU7K2RuTSVoJT9Mc3xOYlpVdTIzZ1ZVdC0oU28pV2glbktNYC1zPXpp
MylqRnhfPzJgCnpQJnB5RWIxN0M1QSQrYWolcGJxUGI2X20xZFBfcVc4fTVnZGV4fFgjRCNxI0p6
VHI4M1BuJkp0OFhPWiMlUjcwXgp6YFJlajhqN1QocjZxb15NUnd5fUgyfXg7YiMrSkhManV4XjRk
aCtFe19YOG4yPUhwRFRubmJqMzFlY0gwb3NELWEKejJLQ082U09jUEZMQ1ROVkdDVVFXYHoreS0y
IUdMNmAxdU9AaXxWVXxZMW1kMGwxVm96bHxIWkpTaFE1JXdNT1N5CnptYE49MUhONkNANEpgUGIk
TSo+O3Ekb21OayM2YFBzfiFqT1RGREJSN1dTYHgpO3BgNHIhUGtIR3V9cTdgOEoxPAp6JV5OQkB6
aFBLUWJVT1g7WnlgQXBeOE9pfTRKXz92aX1weVVmUzVDYHd6SiFqdkFycj1RRm49fUZvWkVue1pe
TD0KenF+fHUqbzdPfmFZISZPJF8yNEl+amQ3Tk9vJHghQ1M1MXBudH5ePmQrd0hZQi1nYTVONEsp
IWJnMk5YIXZRNkV0CnomJTZBJj8zajckTnFwVjF3YFdWTTtTKTQoajIhNzFQPzdDRypYWFkrY0Vg
dGklUCZOZmpgUVFQNytVZEpFPCooUwp6WiNZOT8oI2s1Jl9gcXlaWV5rZUd7cFkhYyFLbVEoVz1Z
dUFFXzVMdTxUfHhqcFlEWFo2LXY+Z3IrQCFPMSVjOz4KenM+dHp3UHApVGZKOW9sdSkqO2RIMVle
ZDB6PTNWQ2wyc0o4OVJicDNhZys9clRaNlk/Xj5OdmhoIWxASFg0OHd6CnpfT3hYeXRGI15fY3hA
VzFpfSs0LWBCaD4oV0xpU3JTSmZ+dXY7QTdwRjdZX3M7OWszcjVyd2dtMS0wekMyXlc2bQp6c2BG
Wj1ONz87UkRlRHBRJmAhKmFmflM8eFEjeE04akdtU0EyMWk5RVBVMU1YdVdkUk9YKkJ+c1Q+bT1w
VyY+aEAKemdvcD5fV0Q5XnUyJEpGeDhIdVU2Nz9jY1YzM31NcihhM3B1T30weEp5elFaKG9NSH42
SWtzYUImZCQhYUpOUDwoCnpedXRvK05gbUV3elBNKGAkQ3I2VFRsYlR4Q3t+cVgzMDJYJUFCYStU
WkpkaHclJTd9VjNSMG57UXF4aD12S0N0Rwp6bl91KD4hNkwwUmRCSUo+aDVZJGRiMCUpMng/Rkc8
emtaVVN1a30hKSRzRE9PX0FefTteI3NwNnVjTnxzZjdDMVUKengwYS1MM0ZFc3IpOUpmYFctYSNK
VylMazkme2AhYUY8dUlycVFqMihKM0w1VDdvUzd8TlNVQVVDIzVRZXVobEleCnpDbj0pQEskI0g0
Z3x+VVRveyV1QVRJU3s1Y3dEZW1AZWkkYD5kPHAocUBlR2hrQ2oqcWw5V0lPR2owbWwhXj97Rwp6
S1BBPHEkOGZ7QihWQXhecSZYcU94M2NKQW1PeiRrK3hhc3orcytlZlRRa3Z+PVh7UDFtP3MzcXlG
OSgtdiNjcncKekAmPTJWQV5zKiVZUCYxQUBFPDh9N289NCgqbkheb2BadCE3c1lCQHYqP09rcGBG
aWsmUmoqWmVKKzJVOEt5WVZQCnphOWNTaiRvVkg+ekxZdUBAY1R6PFQ+KlYreUclIVBNJXcpbE9y
XnBVKSpuUisra0U9PW5kKmxaVk5+V1pIMk5OJAp6c00/RTdMSFVqYVczcXA8aiN4PCRYXkYxaGZm
KFAxQFg8KTc4dH5vfG9QMDw+ZU1FIShkQSVwOyZ9RGI8VTN8dm4Kent2YW8yTHsyfWh6ViR8eFNP
M2tES1JsLX01NnxESm16JUJOeipNeCFkRHd+cCZUe1FFYHEtNHxHI2BUa1JWaXVsCno2K3NLR0Nk
LSZYZFJYPXsxYk4mc3M+cloyNFomRDUxcTBiPnMmLTIpSDlwdmhgYzRzYU8rWDhFbSR7SVdARFVz
UQp6MFU2Mj1SZTZUdVh0TEttcFJEPVlGdWUmND5CPXtYYTQkZEJ3QTsmKSNnSz5QTi1USippPXJN
SEx4Q0cyLXpPMFAKenU+QWwobH07RHgkVHtBUjhmVnw7K1B+TGd3Z2loVU05cjRucmF1Y29rIU4p
NGV+KjZfc1lHRil5QkJwY1NjPSl0CnolOD0tfGIlPzIlVFh5R216dTdrOT9WaVNTQkc+PXQ8SjNR
clotaCNyRmVHVmJYVGl8TlkkKkN7WiZFS1VGJmhVeAp6NmtgNGpBb3FiME5TJWEmUFJTVDdMK345
Tl52Tjlsazg0YzNMRCt+TGVNK1ZhKX4xTjlPYUpiP3NGPUspaUxAZjYKeldKeHVhV2VEZUpjIyN3
c2dqQWZNaXYyemhadldpVylLfDJfeT1VKGQlbTJQVl5rMzJ6eTdlWEJpRXtiPk5ZT2wkCnpPcVR6
T3tRdktpPkhqI157fUhiTDw1PlNreGMtbDB7VTcxX0thVFooZ3pOdG9MO0xeRip7fVRabnc1c29F
NE5oQwp6bGVKRWR2dnEzMldkZ3hYWT8xS3U2cHlvQmxpempnLTlDNHhxUEVXJmYxdUdPQDg1WGUh
d1lvNSMyWCE2OzA9QDMKem89ISVGV0k8JkR1Pk0pNlFSZXdibCFjR1ZFSWRZXj88aX5TKlpZZ2ch
WXpONUZ3TkBpUG47Z2xjTjEhb2tHRDBaCnplfmZ5VnctQ1FkQn5BRWxNWT5FQEp4VFIkbnYkbn5w
RyplNm9OMTtRYVFFbndWYHwhemAxS0JkKyo0KXYyKGc1WAp6TSg2SnFeaipLeW5hc3hQIz8tJW16
VChEK3JfMnlKS0FmfipHa2hGZXYlXyooJnFQVFhQcnZNWUg9ZDUyWiR6JGsKektVY2xLLXBGeElP
YmE9MzlOflNMKzE1cXZhe25tMkFnQWowWkczX0tPTWhiYU15cFAmbjgmZEZ4NVIzPEVKdTVLCnpR
ezAyRUh7bmhGcXchYVNxZD8leT5vQEVCMnMrVC1zVEZ4bUljQmR4IT5SSlolVHMzaTRBamRGQG93
YlkoITFeSgp6M3k0cVRrYksqcHlBaml5WVdMTGhfI0NBZi1SY2BQbD1+KW07SEtsTVRwXkFebEhM
UmpZN243MS1WdUBMcU1ZJFgKek1iWUtPa1h4Xm81TkVvez9RYV5raDxEbzFGUWdlcUtTXk57XmlD
MCpXcmJEKXA0JGhfS3huIVM5bnIjNSV8KVJgCnpyZiEoPmFAWW4jdHFRS00lUmNTNGJ+P2F1bCs8
NjtXZyQ5IWpQSW5uVk4pST1iaVMyJitHN0ZeJUxMQDNLfDhLcQp6Qlp4O3k8bEt3aGszSHROQ3lo
M0tWa1ZENEFJYF9idDJQWCpLPylHRCQwPTx4bEMrUE5LQERffTtMPXc8bGhhISEKenohO1JQaCMl
blVlRT5tOTwrbGlVTHIhajlefm44T1o4YzBWOWdFJD9PYjIqOSlgYzJeVFUoflUrenkrRndZXyg5
CnplS0Rid25BQ2o1VVZEdGVfQ0MpIUZmfmZEO009XzhXTENlMns5Z1pGd3BNd3ZgfThudWFxYkFS
JlNjTmMpO1E9egp6ZCVCPHJmYj1YXlkqWEZ0cjhVPUE+fUYrPCl9b3Y5cmhhQnM7QnlVekxyckg2
ZENTOSMzVk8kVj5BcEFnez9hMGIKekM2KzxOZV8yI3BxPn5CPU5jWkA5bkgjdllwX25lX0AtdmR1
WSEhVXNldFV4PDt3WV9zWSQmb19OIVc8VHZKcD1sCnpANGI5emRQKWwyY2hNc1BWNkgjayFvflVi
ZHtycmlfWkFVYGJZbiVwN2chSldsNmdJUmJMKSh4bVk3YnZELX5aWgp6SlQyRnFKJH00TSNHbzcz
Pz1iT2JOODwzJXw3PzlWenNCejh4dz9CMj9WVVV5SSU/PEFvNlRqbl9uZj5VJnpkbzcKekhjJVpX
YHRee3ByKGF5MUd+YiVrSCVNRiRFXmhXUFpLVnt0OWI5WTl3eExTYDZKekNjbHdONHh3IVFwO0BZ
SCtiCno8LVBVJiNuUHJAd1Blenl1a21rNWxuUik8bStyKlpISmpsREJnTmN5JEs0NjhucXRAOV5O
SGNKLW0rezllPiRALQp6OHdHSjJJVUpASmtIXlR3OTl6MHlfXyNnbioodE5fe3F8cWlJYzF4NnUj
UiFvPztxRE42aEctNVUrOzJgMypRbUYKej58RjdDSUslQTRCNW1pcVprNGpPQyZOMENQQ21fUzM+
IV8kaXgtcn42PT9Gc0BYdFF3VCVAdmUrMzNuU1plQzRKCnpVaVhTe29ta05NfDFObTF2SG8mVWBC
M1NSa14kJkNHPGVEcHoxXz1YS1BIbSh1ZWxQckFaSUdKb3JNY1dKLUkmXgp6VnVwNihmQ1cjb0Ng
RElGaENCUGJEKmYtQkZBVUs9Jll0TD5BciZuTTBDO1YyKFc5MmJfaDdROFNNOWojR0h2JlEKemBe
KipEN3R4Q3xxaDB9eSgqV0lKbzUpTSM3UjlkcDlgO0NaVCgyS2JQYU1XVEBAIzwpRCRaUGBRU2Ff
O29jbUMmCnoqRktJJSZjYyMqe2JRbTxQRjdRfVl2PEU7dEhiZU1TYz1pVCp2e2twYm10IWlsaDBP
Q2gkPjF5PWNVUUomLWQxQwp6TzE/VHZqKTVnZF8qOXExZFMzZTVSY3k8Jkx1QTFzOHAyfUNseDxz
XlNSTkJkTHBPcjhTMl5UYlRDfk1wcW1obW0KeksxU2t4OFQlSF96TW90TWhaOEhkYHB4Kko1NE9y
MnpDWG4ySjQwNn5xU00rSTJkK35OTjVsLTxvTmo4RTBKPjRgCnpOVk0obCl7eChMakUyayhGVSFY
aTBtfVo1VG0yOXskZHYzX0glPC1OJVd7bm5tTlQlTChFbiVrIz5ZOClOPCpIZgp6QnxXa1NBQC03
bTg7b0ApbGlDeStDNmtGZ1NgOTtnazJ4eWBLZDhEOWQlKWpGUygjTnFWWChTeHQ2YTItJkcoI1IK
ejk5a1V8dCh+K3R2TDtsfnc8fEVWWU99JkUzRi1BS251dGgjdng8QEQqdE5YcDNJQFVRZSR4RS1t
TC1NN2MtM0spCnppfHhUMF4hfUJZLXtYU0o+YF9VKktXK3Y2bi0lSGJMMmp0P01XS1M/Sz1VdSNs
PDVMOT99WHRBQlc/JCFLKWBoRQp6dEsrRWVURVFHXipHcitXIX5LR3tZdj0yZCk1NWgpdjlAaV8j
aVhvWng/YjIke2g1a1MoWUpqdEBeI31hbEFXajMKelo+N1hZRWRIJlMhXnRjczMwYDIwLWA+e0J5
ZG1kZHF1JW5OdGFnJkRXJUJVU24kfiFgK2FtUkhyVEZWYzl6bDNUCnpAbm1lYmcqVnx9UUFqJFk4
YHFiIVl7IzJ9SX42YVZwXyVTM3gzIVRMcSZNRUZRUlJ1VURmSUVqdTBfKSZ5bzxKeQp6JnI3ayZ7
SWBUanVmMlc/bkd6ZWMpTUwzIzxQbilaZ2BTP0RYTG5EdiZ0R3k0SlVGfHlgeW8mRkZSd2xQRCZe
Zm8Kej4tVkdKLWk8VHoqSTU8Ym5fZmVLbE0/UFEoSDwodCNSMk0tNFQ5YWZyPkU4U0phNmNyPk8z
PzQrZXpRcVlwTkF+Cnp0dj1qWl9ISnhJPEczVCtsQlAkfkp3ckZuZGNEPWpZRnxSS3BAUyM8ekct
JjZTKzxmNyUtSyRiOCl0ViRIKG9pMwp6aU1hflRaQi11fHBFbnp5e3JzVnM+JCtgfigrU2ZQRlZg
aGV4ak11bThUJFAzd2Z6PmlYXzNfT2p5SCp0Rk1pT3YKemlefH5VUjRKdS1WJCl+OFVUNzV9elY/
WXF3ZTczdityZUp3V3JQblQrSTA3O1l4PGp0amNiRSswaCkxXypBX1AxCno9RUVNdyo0d002bSVA
IWorXlZ9M3Q9bihmU3l6OEFHdkkhXnR3LXI+Y0JySCtrc0I/bm9aVnNnKl93QEdhWEVRNQp6a3tB
VFpZVCRpcVVDayZCZHc2LXhTRTtFPEVkfTJldHZvJXc4TTRed0E+KCZMPFJ7YFRwYT5Db19LO1Na
dzwmeHgKeiR6TihzSXRSSy17YGxxQFg4TjYzTypBI0p5TEZoaTB8KG8oRUZGYW56M3FfaGRjU3xK
SXdoQmZxPXVMMlU7cHtyCnohPjxeLWV4fi1gdGlTcnd2cG1aO3NgcmxjczwzNExlYmpMN19UQUlW
WXZYQ1FuJnBCR3lDaGxkZitEcFopRkZEfgp6TyNDWTY+fVpaeHReNFEhJWRmVz1OXjEwZUczSW52
bkkqJHFgUFpEXmFXMTxlO0ojemg7O2I9U2Z0ME8+MjFqQ1cKemxAUzdXNklPd3p5b018T158LXZK
UCs3UmA7PnJPelYzcmE7T1Q5SmVnVHF2PDNidGBnJmlEODYwaCUzKzFPZDJECnotOXEhbjEtLXBv
RXllRTdVTiMqQTdeY014UE5pOChyRkt+ZWIkSXhxd30wTlQjdVNkWVpUb2QxTUhhNHl6K0FXcwp6
TDQpUTJMQTM5KyoxRz07dG1FSDAhIWItVXdpMHt6ZjNNRSVZRiZtRUpTbk5xaEtTbytBSEdiU2Vt
QG9KMUlNZz8KensoSF5gZmMyOHpxKVhRbnAhckcxaEMrUns8eD5rcnRhfT0+NX5paz9LeSZjISQ5
RE1FaColMjRGZDNyLXVoVlV7Cno9TTdWSWR6N3JARi1GdGt2WWBtailVaVJYK0NHOC1ibC0kN1dH
bG5DOTFnbzYtPk5pKFV6Kzh6SDlRJHxSfXRFewp6cyp4PS1XcVI4KV5sYXFqYzJRdFNJQnVkJExq
VXwmUnBvI3IkfUkoeUxYK1YlP21RTX5OYH5MM0hZNUJfI18xVnYKelI9eU4kcHB6ZTdhUk9fVHs+
VWpfRFdKNyNCSjtBTTJMeSZ7WGxZQk1xfmYjT0pLS3pnUGk0b2dTMnJWVFMhbHc1Cno1OTEzS0Fl
bWJrISpGI2AmUClQJV55VzBNaT8+N2ZjUGFRODZBb0NTZHtabTk2UDZsdWVyM3QlUnl7cXBhTE90
cwp6dldYQkdjVjh0OWt8KlhePUFuMGhtVHx+IzIhUit9SyVNazwyUD9QNzxgeHh6KDg1KGdxKXdo
Rit1ck07aFo7UT8KemJGR2x2bnxfI0UlR1dya1MzPjZ0YG9TaWdZTG1IMz0+M1YhSi1mLUx0eW18
Unpna1VIO1RjPVZGaDNJaW1mVlFICnpLU0t5bV4jWVM8ViptbjUoQSh8OUBxWX1kXnA1YUJXSFJ4
Oy1YX31vWUpTUHFiKnF2bHZgZy1seFhiKGxXbW4wewp6YikrSFd4P3xOZGMkWVY1TVRqXjdKezxT
WCtKZFh8bkhvQXU2bUZeO0F1RWJiYFZHJipoKTNJPU9vQnVOc05QKmwKeno0SlUteTc/Yz82PlBG
VW5jMzMjQWckOHVGaEIlWEROOyVUOzFsPXd1KDZMR1F5c0Mwe1lUSGhhcUtVfkBIakA1CnotJXx+
V242PkVOZn5uTTRRYTchcUhhZkxXKXI+Z2V2K34wXmtmRlVveHlXdCZLREtwM2NtTlYxKHNJUFNs
d1UqeAp6KmZKUn5vNSQ1VkVwek4oKEM/cjgmQT1tejd8XkZfcVVMfHZMPEpBJW5JLVVFeWBee1p0
Pzh5UEpLYWdoRG88P0gKenpqTVVFRmgwd0NjXkRjJUlYeHJIcmc/bDlkM2tTa0BWaSVwXllleDho
Qmc5eiYtcDR3d35ecjgtJWgzX0hDTzxyCnpSWHQqUDleTThRUz1vbj85Q2N6ajFaQ1pmc3U3Jj1Z
QiZpUiVsVWIoNDU1UzNvfW92eHwxblhpRjhCUEo+MFBjLQp6cyleMG14aC1LT19NZ1BPb2c3NjM/
eyEkJmxue1NSUHgjbXVLKVNVej8hV3haYWxCMCFmJERRVDxnIWxxP0loRSkKem9nOWRzPUZPQlNL
NjdYWi1Sa3FWYm53ZUxKI3p1TUVueCFvPTB9aGdXSE5lS2ZIUT1FTUg5VW8wUG5NUXo8fSMlCnpZ
USZBOHZgd1NEKjg8KkQrMDJqSVdGTUhLPnl5TTl7PWdTZTFHZGhwQGczLWojXnAoPSZGaUFDTHtf
dUtQPzc7Kgp6c0BUSEY0R0xmN2M1NDFXO0dMK2BYfkw2Kik7cyp9d2AmKUxlcFF7UjExWm1OcHZQ
WChYREE+N21AVHRjciVzZ1UKekt3UD4jcnYmKEc0KG9vfT0rfHRTI0xyZnZUTTFiRWghKzBZRTFN
MEMjRGRYd29AZi1YVGtgZig0TFpTLTNJbFcyCnoyaWRqZy1PYVd1KTlFd3h7P0FMKCZzfElHdDJo
ZyVRTjZkOXEjbzNFWnxqUmlAJUFxX1F5VSl+KytwXmNKUTReKAp6UCZobWxZKDQkcm1HNFl5WCFP
VCNaPT85Mm18aEFFYGFYS217RitvISUrR2F3NThDeENlUnEtUzl6bVUtd0ZMRWMKekdsOCN7Sm5P
RUhzKzJwZlpFWmhhbz59KkhIeUgxVmgqRWUkVnx7a15IZClZe240STtXR018SFE3Qyk+KUJvbnQt
CnozVH5famlaYi05ODU9fUk5YVpiTTBBTVpCckFvWGNxLVpVfDB7U2hvUCR3eTZmQjk/Qjt4ZGt4
MUJ7eiZRYD5zQQp6c2h6ck8yPUZqfC1EdkZYOV9LdExuV1daQlA4MEp0NXN7K0ZFfWMjbnJ1b2V6
M1pacGUyS3A8Izk7PWpjPCRieDsKeio2VVpZc0g2aXcqSiVsej5YU0Y4a0AtNzRnQU4hO0gyYF4q
SGQ5RmFCYWJMYShuWCNzZmBDSEpaKG0tZERtSHM5CnpSVDh9P3hYKWhPelpvfEZFcnhfO1Bxakwx
RyE4fVU1JX1EbUs8e0BQc0FKb31DN2ZeZ3lRQmxiJmJ6QWo8ZGUodwp6PyRmXnwmVFBLJW5EI24w
VDROSXVKXnlJaXRPbz4qdHZ+UVEwcilBNGVVU2tsQHdMYyNPdXVOS1I+RGg2RlZofGgKenErMm16
QSlvMHF0Ull3fjxZJUxZSChrMVMrSX1HbDd8LXA3ekZzJCtyZVl7QUw4SDJ1RU1gKT17KGNgV3pI
VH10Cno/RSp4bXVxLWRBNHN6WnBgZEdNayN9alBYYCVoXz4hVThvejsoU0pINzt6a2EkcXkkJU9n
RilVN1liK3R2dUw4RQp6Q1Z3T3gpfU9BVzBFMVdOcnleNUFiMHpGaT1jant1dE80JFhldnhQSld0
K1gmVDBlc0AjTWg+Rl5Re3o4ZSY7XioKelc0UGU2PjR7eCE8SipmP3dvaXJKKHFEQWY1fnJnWWs5
QUo9QEV9VW9oISh5K0xibG1QM3kmSU50RXJYQUY4YFNKCnplQDVSJVkmcUNoMG1RZW0oWXdackY0
JmpEezRzR3s1WkZiNkRYPXtwQWVScXBiRm5BTkAtfEw1alpNe2BNVjZSbwp6WkRmQVl6T0liJiNX
ciZ4QEFtd0N2ayopNClLX3R8eXZ8NHpONm14YD1lQnpjQG1vNUYyTUNnUDM3Rzl+bm8zTDAKejRi
XlZFQFJiQGladl9AdTFJOVpgaVAzMCR1RHpicDJRbWxiemQ3UXorZnh8SFBTe0VnVVgxPHhKZ3Zi
NDVaPHEwCnp2c3J4MXNhZW9wQjlyKHpafkBnWnloUy1TQCtXY29UUSp2TkhKNHwoPyUmSiZaY0Z5
cjFrQ2koWTsqNl85Sik7cQp6UC1TPj1yJF9lRyEqRyFsYT1GP1VkMVBHSVFOX1d8JmZaJV9eKCVB
c2ItaE1BZEtfTjBvc3ImdEMlSlR4JDNUcyYKeld6MVRoa20mWjBzcFF2aFVYRVF5NGY3SjdoWlpQ
TlFsaH4lUHNkUnRLWTBIPnhAMlNCWT9PVjszXjJ7WDFSayQtCnp4YTZqNmFaNzM1VVhJajArdH52
TU8+P19AcCs5R1FJaE9Tfk84Un1FJVlsbUBRdHlgOG0lZXZMYEJ4d1c2em5vMQp6U0ZoSjIwMW5G
Nkl0Tld1PUg/ZShBMz9pPD18Iykte3YqeDdGTHhyRyoxTnRsRDFQMyVxaHFQaldKeyQ2NEpMQEEK
emsrKXt9MTRkVn54bW1eWWBKXzs8emc5MWsrR3ZwRlJucW1sbk9TWFVCWl5jMVg8SiomeF5jc0p0
azlYUFZ3WTh3CnpFNyVDajEtRCUrOE1eeGkwM2JCfV9yQ3lOZHQkU2U1Wj1QVlRpaE9lNW1tcXNP
TnM3MERwYFZDOSojN1ktcG5FRwp6WV4oJDxacX1WZHlBcSQmXy15OThAJUpgO1NzM1Y/Zll3ajgy
bTc9cisqczhHPz5ebilUQzU3M0p9TTk2X2pgRWkKejRVIzRNa3QqcXNPa0lyX2JsV3pra1puJkxO
M007UGJZMU5BUUpncmdNUFhkSzlRKFQtQH5mZVZxWUlOUGEwbCM3CnooRlhWP2w2Nn42fE1aVk9h
ZVh5VjVmZHFLZm0+bllvcXFMKE1BZSpKT3Q/VSNTTCNpTEl4Xn1RRmptWlhsX1R3PAp6QihXaVht
JEcjVTxxMlFVM3hsO3BTfH5oP0ZfdCRVQG4wTD5lJUFFcWFraVUlM0J5Mj9WI1hrYChmTyM/Rmlr
Z1QKejdFMntvbkV6NDJyPmxGXzBnK2hUQDlYdzQhU2UwZ2ZSe0F6eSthUTRQfHU8SlpnWEk9bCR7
Wkw+fldaejxHKGtRCnpiTWRXUWhOcCRsO1BEVi12cVNBSyo2QyU/VDIwVEIzZiktdUxYZEteYl4z
b1FJamYqTHBRTWV5Mk1KRGFjbTNsfAp6YU0kNE8/aUxfR2ExOF9xP3N8WT0yWH1WfT8oUEpGeVNz
a3UpPmlHX2VzfEx+R2QoPlFHZD1hSWRIUStQO2t3YHMKeks4Jm09SzxUdGM5MVVHRSpFRncpTi04
QCZSbC1hPlA4Klg4b2s4fjYjdU5pZDgkKD99cSZHbGplPVoxflRmX3cwCnpKa1ZnY3JeZW93bG8x
cjx3M09TeSs4SHheRWE+dk9IPTQlcGUhOTkrOUt2e1YhN3ZaWVl1JX5jU1V8dzlVQkFaNgp6U1o/
dkIpJEp+QXZDRjBubDI9e1FRbjJUJHF7YXJ4eTRqejw9P1BsUiV6YXw0WlVBZDNTQX5ZYFVWV2VG
RDw3LXgKekU4Ykkta149Sik2Qnx0JFo/K3E2UmREQGJxMXdOKF42bWk5Kn5xV3NWJk00d2I2YnJE
RWI9O0VYa0NAbzh9dSg3CnokVUhxZTxGYHxOa3kpdnd6YTl7WE1obm5OaiEjV0RwbTkyUG8lVWBI
aVltVURJYTtgcG81YE9Uemh4ZGNxVlllRAp6WSVkbDZYdSVCK0BSODtsJTYxT25eU3Y3N0dWcUlX
bFNYPj9yYSpDUz4mcClMPWtGZVdkRUotVVVwXm83WCtSNWoKekJSakUwQUwoNk5gJURaaUtRPXJF
RHM2Rno4N2U2KyokcF5WUEMxWWg0fDEjN3tNaWlOTnVlfWpEMSNgfVhidWR2Cno8b1FATjw0MHNI
LU5jLSh3c15qYWNSUVFmSXVlOUBkTk1eQ0A2O0MhKjQmdD12dGB7Y3M7RTw1QG9LeSNMVmx0bQp6
aD1+ODAlZH5BTmcmM1I+cmclVHYmY2Q1YWtCe35HI21iOUI3KHpUK1p1ODJvSXE3YS0hPjFxPTZQ
ZkshWSE/JHgKekxCQkFDXippQFVKdDwhYVQlUDgxKzBkQ3xOSUE+PDVSNHI2PEFgMVBsU1ZTY1A8
TnxaODtFSWBAQlBNRiFYendkCnpmbXpHSz9iXnNTITVfQVM5MEUpazV6fVd9RkUxb3dVQ2F8NXth
PiV8Tkd7Vkc8RXVkcis0JnxWRkp2P2RQYyE5Ngp6UVpGWSY1ST9gcSk2JHheTGd3aUR2ejB2Nm0l
Xm91Rk52ZDI5PzQjcDNwMzczTDw0bEV7ZWw+MUdnVHlKan5rfUMKejtKTF8kS2IxOUBkNThRRGs1
Tjs5MT83ZF51TG1wUnRqNExheGM2SGhTWFFkOUkyeUh9YHZLRHAxTXp0P1o9QnhoCnpVWUhDU1VH
QGRmcnhUVmZJWER6e2tBbztTXyNLZnBVeH0hdHJ5eVMoTmUkTnNlendsbns7OXElSmtqMzR5TiM0
QQp6RDQpJiFYdmh4OTl4WVN5aX5yZTg/elo8fDV4dkp9KyUpdHVMJD41YWI5QiZ4eDtrISZ3UWpn
TyVzSCk7Tj5FMXoKekBBKyhwZnpJYHMjSV8tIztpSG1hPVlMbW5BekJvMmpDJjZ7cyZLISYzKGkq
YyUpamZSX082dE9EI2U/OXJwRHF8CnpCRTBGOEhiMUp4cCRtdj5aemxNUE1LNlhacnRqXzdfbjVl
K19YfW47OzsoUlJvNnI+KElpKiE2YVYkfC1xdE5LJgp6dFBQT2NQcz0zTypkeG8rRVVseW9XbDJo
OEVpTjhTa2NqTWE3TSQyY1dpKn1XPyhzSE49JiE8MW5IZzRvdX1wZkoKejgtbHt6aUUlTWEydDU/
JihIZzVqJWFaUDRGU2lfNnp1dDJSLTJFK2RFaCZuNis0ZDl0PzdIMkRRSVlnXjh1b0ZqCnp7bFZC
bWd0USkwVTd9cCkjZkFLKzU1TH5fMmUoPHVAZno8eXVKcEFHTEE+fiQ8TT1pKERVVDs9KkhDZkpN
az88QAp6NmxDYi1MVCY5ZDY2aGd+Ul8pailuV1o/YF5wSkQ9KEUzS0BtaUxQaS0qNShNUG0kT21m
RjZ4cjM/MnE1UF44VVMKelcpU3dARWxLI21faXZefUBaQE8hR0ptNEljYWtaaWk7P315IzN1ak8q
Y14pQl9Zdj9nfEN1VmVaeT4jVHshWGBjCnpwT242dHZFbXszMlE3TGJWNl5qMyZtVjxxdlpTN2o4
TUVSPShzX15ZIUt0aU1OMlJUb0tQcWlKb2cjbnUtbVJURgp6OElaZTBOPSQzYkRJeXVCVHl7MD1Y
VU57fHdtRl5XP3VwMVY4ZmRAWXsoN0U8MVgpPDJ0b0RZPjxJcDdIeG1oNzAKeno0Nnl5ZmNmfXch
dSktKSVDUUJ7X1IhQW1gK0ImJWFtZm4mPXVNR2QmYmI/bW5wcHEjSW9XbHdmN3V0JEVxaGVICnpD
fG0qfkxsI1Y9ZHxpR0cwPE96JXJrMmVBaTlqIWN6WD1NKT93b2JFKDl9IXVTRktKSF5lO25MdnRP
MHdENCVqKQp6Sz5JNCRtfG9wWDB9TUBteylrUTltcnBDSWo2KWVWZnhVan1iS3RCJFRXJmNNdmk3
UnRifDNVYyF6P21Rd2pFbUgKelNPNnpkJVgjY1ZDYjM/UkMqcC02QSo7aVBlRjAwUWZuQXI0eFEw
TCVjRG4rWjtFNE5oaEpraypMbDgmVGxLY1ZoCnp7bnorYTBsKklIeVg5em5AUE0tXkZ7QDZ7Y3NH
TUQrRkheMD4tKmFqSTV0P3peWDdpU3MkelRIO3NRYGRLNnc/aQp6YyljdThiQ19pVldZdSk3TVlM
JmYwcHJEVm1wOFlIQ1JjS0Q+ZThaayUwZklJTVdZVjRIRG8oM2BESF9iWDVZUXkKeng9VCZxQU5h
SGAwS2cramNJdFkqPylVWHleO0BRZyNVdUg0RnNyWHRsYlRmTHJzSUtfQERYU0AhY2NAJntUIWI9
CnooTkQ5KD18dkt+Q1pKblM+Z2BwcUhRdjIqcWAyPCtUQ2J3YVJfRkcja3pzKTNVPiU8dk1CMV5N
dCQmJXkxcEpLNAp6ZG4qalAqfUM+Qm9sekJhKEFAckljQTtaWWhUM0pWYD1KbyRjMXc3eldtXjJE
bzhfMEAxZGUqVzNARWRzLU9LKGIKel5OMEJQcDZgVVd3Q2pHZWxMJEd1UDY4JGdtPkwpMExtdjxP
bW1nfSlxa0RGPUJ+dFVLbjkwN0ZoWXBKbzU4JTVQCnoyam90RC1TS1VCKEZ4MEU+R2Zrbj5uQzsr
Xl8oM09UfiZHZyZyKHozNFlCIzNPb3lrKGo2TiplI2NxRkg3RmpfJgp6TF42eGNpa3hXRDhOdllx
VDgzbl92VTh+QTNTO3NVZkJeclAqYVFzX3Q0MURxJU9NZmNOcmp9O0lwZTN0Z2ApZSYKemx7cUV+
QWpjKm4mMklMTl9AY0xSUVFFJUVidldTbk9eRUd8KWk9TDRZMXhON2h5d1VzWTN9NyU9WUJwcz1L
YCppCno3MiFPQ05CcTBOS05GcjNtLT5mTmtPaUQ+eDlwITg1UyZtZVRxY2MhJCQ2Jlg9UWVNaXtq
Zjg7bE5vPCNpNEhgNAp6dXsyPlVWc3p+TiFTZGluRVJMRHI9NmJrPUJQVXh6OT01dVVpc2dKMTE/
X14qQlY7cEk5cj5obWwkQSh4bEN+R0wKelJlX3xHY3hDaClVTEBxWHFmSXA2ZTFgd3A5cjIjRW9z
V2BsdmhTTldjJXJ4YiY8bHVGaWA4ZlFPKlBHZm1ITTFCCnp0OWY/NnhWZ0Q7KWtaVktlPWJtRWQl
QzBgOG8ybTRLTDY5dXUmJGtLNiFZRTkjM3hATipudUAjQzI7VW8hWiltfAp6dXFEYypwR1QmPFRS
aFNKdTdUOGs0Kyk8ZGx6TjxyPyQrRXxeU3Q0WFNiUjZSe2RfZWV3KEZVVmphR1FqMmltbnIKekNZ
VVNCeT4kKEpQSXtNem18WkFKTCpBcEgkN1dYPT97KzNLQChHI1FxNG9JR2RFNCpvYjIrWStsRitF
dWp5TGMwCnpwciVETUFTbTlkeDMxJCFXNTBCM28/TFgpeCVNKFg7bjRrJUJKX3BqZSk+SlN7d0kp
VmNTSzYlVDlleVIlRTxHOwp6PUtDJWE4Z1pTZXp3JD5wPV4+bm4mWj5TU2RiQCpiLVRiMDFXSHpW
eU08el5MMENtODU5WXVCYG4xdWt7d1dqR3sKekg+OCU9LSVZPSMpcWl1Vm5rVnxIPzRHVzxzaXZA
QEBOdyQ8cmZ8PVQ2VlUpfT8/UXlwblpCdmtGKWc+Ymg5LVNkCnpMbWB2ZikjSWtqV3o8aHlNVFM7
KHc/XlVVdHFSaVlPM3dvZjNRdVh9dW11UWhIT35RODFWVEQoKGw+IWZUPitlZAp6MGNIV0c2QjlI
MyU3V2N+JDBPUiNzI015JHtuLWBrOUR6QnM3bWtlYHA0V0R4UENnd3Z1NWBqYHlDRHlMbSNzU34K
ejFyITckVGhMfldRQWd8VENLcG84azd6enYwSi1xXkAjU3RTXmZ2VkQtdHZyUFBteiVtRX0qM31n
QEdTNU5GWEt0CnpCaF5MPzFnTFFrbjctPisqbXxgU1J3cjVuSjc+UFcjQElhWSh4djJ6ZndMdzsh
eG0+NDQpY052QGooRFQqWGZzcQp6bSk3fEgpa1hlOEx6bihacWZkUzRiTlVhfDErZDQtNCRtPjZR
TmA4R1dCY0pxXlp1dTB5eXRYcnglYHNURT1hdn0Kekt3SG9+IztLN1Y0ajlgUlFpKTk/UTd7KyYp
PFJzPWEhV2gjRWpkKWhKXk0mJCklbyF+UXB6NnA8SGVWKXJUdXpKCnpIYjdCI14jIz12RVkoej1C
VmZETG8jQ1QjPUskQVokKlkldm0hYGA8MG5kOWM5IXArVD1+cFdsUEU5aVR3UlN1Owp6cCF1fHRa
fFVMdXspYyFVUkYmYmFUSksmKlVpcH4oN34+Q0FjUDljVnQ9VilIO2M5WjFDTVpEMWNmVntXIVVy
NmgKemM0JktgPEwlJHBpIVAjMWx5WCZxQUp8NnVrM3tGZWwyWWRON2gkJDVEbVZYUVVVZHAhV29N
bF4rcSQlfUxoNiRYCno+WXV0UEhQYD8haEZYN3V5UXxtbDVefTZwYDdvXy0rfHtVRVBDP2wocjM8
aHttUzMyP2ZTYDtOSWlwVjlofmt4ZAp6NH02ZnclblZJais1R2cwcCNHMChJPjVYWktqWmlGczc9
aVpiZEQqOVVCa1A0OFBiPmRUPm1EbW52THpQPCpnZH4KenoyQS15YVZaR31BV00zX1FQSGlyaTFi
QWwtQSF5PHFsPlNRJVY4KiYjQDxZIUV1NGshYHJhZ0xYVmhZTlBJYVEyCnpjZiRCX3RBcGYrQD5z
dEA0T0JxR3ZSOCs/QV9VIUdneUgyeHBEU1FfYWxfZF82TjYwdztfMVEmZnt9IzhYQ2R4Kgp6M19I
e0JBXi0/Um5+dnB+Tnx8Pzxna09VaHRmU3VrSHBhJFBlJCRTZnk+XygqQ1VwbCs3X3otYV8mcGA0
QE13Yn0KekNqSn5zIXxmVFc2ZCtkRFpgQHU8Tn55YDxRZHBvYWBBLVFaeWBRVVV0fVQyQkYxZzl0
KnQ5MFZUNk9TUGxwXitOCno/Z09BQVNsYis5THRqYEAzPGEzfWtedHFKNWQyO3B6PkQzZmhPPHNx
Z0FSb2ooYkY2cW81JHIyS1ZvTVFWb2x3Mgp6Z3Y/OGlBRH5YYjI4NHotNTtHVmhXUFIhXyhycjIx
WmR8OTY1Qis7cUdGXmA3d2k9XmttSC0waUYpSFErQ1J8TXYKejlfUEdQYlYjSXBrNzg4amlVNUVq
UE1hUHcxSylyPnlTOzc/MylEYER0R0R2NkVlO3QlMTArQHsmSzYpVk1CN1Y4Cno3ZnsjcSVSPzxT
XmB5Sn5BYStIaUhfV3NWLSVZJnhXdGFAQlZwIXZlTm1oUlFGQzhlcm1haW5nIW9RIyM1dHk4cwp6
QzBCWGd6dXdnbEFNOVdnVUZAfW8wLUE3N19YdTleVDkqfjQyKHojVHR2PmR4VDI7JmhJP0N+VkhU
Iyk5cGZGN3gKenhVYmAtVXZMbjReODBhbFRGIUlnNDcwTGAzRSR6OXwzbEFOZSEmeStUVVNuNile
OUJDaWxJNVckWXs3b2pTPEI/Cno/QXtiNyFUdT8+S1drMCRfUkJ2YzMtfkVaTnZaV00jQH45PT5B
ak5FTXIlO01lVHdmayN8S01RbF4wZCNxNX5vYAp6R05zYjg1YkYjKD1zSXlUWSZ7cStfTyRgeyE7
dkZVZlZwdlRVWVFvPVY+QyowQjZieWA4UmRsaklGcTtmIVpja24KeiVoV2N5JUY+TGZNJDNCdm4k
RCM0Zj5qeSpiYmJLZk1DT3dIc1lGQ3dAPFo3SjlTV29iMExHMkMrYXhSd1dxVXFoCnpVIzwoKzVm
VWR6O3tWPG9ZdzV+JTxaU3FtNDB4dnA9NXNUMzRFT2pxVENBSDlFJHpSWSYoSUhhQElVS1dWdDRa
MAp6SiU0UTheSmwkVUxjN3EmREhwcFA5LU8wLXgwQ1BFelBhVyFeeiVWakZlN1RkSGYzSjI+enQ2
IXNFdmM4UFl0SVYKejRhd0c8eDF3RUdnN0wlflFzPWdDQzglenxGYlBFaTA+bWlxaihIP1E1Q083
bjFQZ2h1OztNMjNXQmBpYGQqQHtFCnpsJUx5TlEmVF9YZXk3YnI9ZnUpYXVPcjY4S1FXRX5WY0E4
VHJnQXZgZihPYnxMWStDYTVTIyY8JGEpa1p4M24yJgp6SWd1M0trYzJBOzAtJntVRi10SG9xfkNM
RHFIM2A5QSFtU01tLV9ZQ1h3LVYzUnt3VGdYI05xN2ZURXlxbHNoRjIKeiNDZSQwQFVRXkY/Yygk
My18KVMtWkxqXkF8RXdUMClSUFdqWiRlXkV1dkI1S0pecVdZTm5ZKVQraHFPXzgoIUdSCno4RkBM
SWtyPFowZH52MiVIa2NvbVpQRXp1UzRiRCMtKXlGbk48dSg9VDNNKF89ZDZoOyFhODg3ZTVVWTFR
UnNiYAp6STEkRV5TRGEkP0wwbCtjbEdCPnEzeS1vP25HR2xvVl5RQi10JmRza2RRVXYoPVhjcFAl
YzMqeFRhUWM4PjQ/cEwKelc1cCQ/QSQzVl9kemo8KXBGNz5uLShVd0UweDk+aztXJXpLKzt6WT9K
TUVUSkBZcCs0KGRfRXRYcHd6XkZBb3VZCnpZOHdLVU5iOWd5SX1MRG97MVh7UEN9ZDNHdlF8UWh2
Z1Qzbj5CZUZuU0BMcylMUDkqKDh4USokc09BQ3Z2LWZiJQp6PyFWTzFxaVkyWjBPQU1TKzhTbzhr
fCs1XzY7TXNNUnNiYjFZdUt6Rj4tUHtvQ2hzbnVIWH07e3h0VTJlV2dQezgKemZSVzh4WjUhUEIq
KlhCUUctdFgoN2Y+ZzU7UjlyTmwtOWYwe1QhPndPS1VKcl5EdUNMUjk+QUR4PyFPUTNacjdQCnpf
YGxuWihHfWx2OCFTJV5TVEVLcURrYCEtZE5wLUVMUWspYVY3MTc+VlBZXj1GQGN6QDxseHx4NmZ0
bjxRZnYxSQp6UnVzIVA9Q08hWkVlaEIkeXVSMiVBUjFgaUxWbW1vJiFJbkVtfVBEU3YoMUBzMnNy
QCgoVXUpQjA0c1lFR0MrMHwKenNyUmFBISpsTyMxTU87bHlwa2IpMmV3cHoySUF3YUh0O1pqcW48
MkU/REAtQ3ZiMFI4RHlGZWZsbSRAMF4yK0ZHCnp0OGEpfi1geHRSdEtXYF9JQUxtdDl3KlgtM2g+
Qk9uZFVxbkxrWEB9ZTd8QUokfE0qO1dLe0AlcXIhe1NnV2J8cAp6STwrRjxCU3l4P1dhSmJUTX19
RXNjeCUwakEjQDZ8O2R4fHB6MiYyPWNYcG9FQk1vMDgoNSFqSilBRkgjKExxN0IKekIlY1M+JkF1
IUdTJm1XIyVlRDlJbTdFO29wTWR9bHhfYTJgeX4zNEJJalZBdGx4UH5aKjUxNlBAKz41dkZxKCFG
CnpBaFMheVF3RE9fUGlVa3N6d3MzYW5JPDxmMTlrTm9AQGNqPTBgOVZwcj1yTSswWGZ5YjZ+X3N2
elIhZDtYcHI3Pwp6NlVoTzdoT1V8XkczXyRWamQ/N3JBb1ckO008RkJqX2BWQDNnR09GNjROJmhW
S0xOalh4MTRGVDdTczFNbl4hfUgKenFVTTRFODFFKT9jZWQzUCl5RllGUVU1Rm95R3tockg5RD0r
WDFvPEcpR3llMDRjcVFzZGchQjtIWjxKb187TShmCno8QGMldCtoUW0jN3dVa0pnd3lmc3A3P01i
SDFPYnw0V1JvdUZPclBMNzxEdDAtNjwoTnpFciVhPEokU0E3ZSVRVgp6c1Ruezd7aCNPfEFWeXFl
NmtfU0FVbk11KWZsO2tgRzx3R1JRJm1mKG8rJFFIOHRBdV5XelNJZChacHB5YEdwSmsKekFlZTs1
Umg8WjdQMU45fXlFbT98PG9XJFV3TkM1X2F+KztOUUlpVj1TbzRoJGxxUlJsI2tLQnk/PCtxMlR9
UmJzCnpzajFQb2IqS3JUVHw3fE8yd1Bkdz1jdzc8YT9sPE9eaT9yZ3dLPEE8YkE0JDImXihSazUp
eGd6eHw0TjF5dW9TZQp6VjhlfiU5Klg3dj9FQn1JJVVqWmZ2Xy1GfGZnezU3PDd1PTUleF5qKSN8
dktfSz9gU2dTd31KTHtpY1U/JUxUQlcKejVYNXgxJSg9bTlKRyVke3JZQUJLMENLLXxHe3QhMGNR
ZjRMNlNDOG5TXztwfEBsekw1YHlXa0Q+UzJ9QGpjTjNHCnp4O0wzNDB9e2puYWFpV3dpdGBZKGJf
Z1c3TXclKXpTMUppZ1dVTl5zViZkam1zcj5JdSRObDM3ej5nQjJpeilxTwp6anhUJEFicHJ+UiNs
QC0jTXJJPFFYQVh3QXpianF8amJuPit5Y0YqXnYwVjt6ViFqeCNGYjxCPHdNPH54dCQ0ITEKemRU
VSQ5fEdJaFgpK3FoQlROTUpkKSE1TkokaFNsY3VzVjAmKzA5RSp2R2FwK3hIK2heRXNqc3cpVzJJ
RThfI2BmCnp0KlQ0KkpleXkkR0tDSX0rWjZ1aHhhUmkxOUZNRDwmeHx8ZEMzT0hEPlU+eGdMIz1p
TTF+cDYzJWlRITxoVHRfNAp6ZXg+RzJyZXtsJFBRKjtuUk1vMisoKlU+ZW0lKE9neko+aG9sYntA
citpelJhbk85T0NXQW1SKV8wMGBESD4qUX4Kek1RVl98RWhHWkBIZUNERmB1PiZGJU57QlFFeDVB
N2FZMzVXaExVdlg3SUF8QDc4SGN9cGBRJTktOyN9QEJnP0I/CnokLSFANStlZzZedGVlV051MTZT
e2R7Q2JsbyMpQmhidUFfcm4qND41STthPklKNFJqK29XKzszRz04eH1kNks2dwp6SEQzP0omVXJK
ZHlVRzlybWxlQ31HWHtidWB8U01YLWZhNyZPajJ8MW1wNm9ZenI5b2FQV1IpQ0M/XylJezt7OFEK
enpjT2t0K3EzI29ESW4xYEcoU1Y1YkdLUzlRQEVud3YjIzxVZVBQWUVteDxxPm5AZ04xXmNpNmtS
ZlNHbkleI1hDCnpWM0k9RyN3ViRtUnF5UlBlQFJrM0NmV0JSN0V6UD42Q1prXnRYV017TjVrKUsr
PkNqeCt1ISNkeDFySCpxRylmZQp6LUlYSHhmRzQ0d1BtSkA3KWxeS2BKQWJiVHkoYkA+QGYzeHJW
Q1VTa0sta2wyI2tRdW5iNkpRY3dybGYwNVlYP3gKejVITDRyaEBHJDlrYHZEXmsxMHV1dDBjUGtg
a083ZW9jSHJqSCZOOChlVG1oOylmYjk8UmF2PVJLRjdgJWkrIVNeCnpQdXJaXlBGTjM+bEMhRHBF
UT9rdT5YTSlHZFk+TiZyRXkjVEB8PmNsdVNYe21qIz5AOFY4KEdgX3BQJDBvO1hHYgp6Yj4zS0p7
dmU4YGN5b2hLdnN3c3xzQlBEUmJNdHBoJk50bGAqclN3MjRwe0d6WUBMMFQmN3B1SF5ZV3N1PkhW
Nk8KelAzPzdYSmpSMjxPQzxTZlhFJkwhb3ZNbl5IJEVmdmE8PHpiV0VUZzh4MEYjemV4aSoyQ0Bs
UlNJX0k3RlVwZ2xgCnooKThKZDs0OUJocENEKXExQEgkbFRjN0ReN2x6RT4xbitCZVlVQTdQSzxA
cUdIKGBXZnZYalBxeTBpMXdKY1lNaAp6TysjTEV5eyZyVFJZQGVAJStHMHg7OzdQYk4tI0FDK21l
X3U0em0xSnd8ZCRuOCR6cHppckRxbCp7ZHV2O244aXsKekpAdUZDIzI0ZigtKFJmKVdlZEpMRFlm
UjReU1p3NyVBKjJmIVJVM0NNfkl7QG9RPGw1R3FKeF93bFNyOUpGc3kqCnpgTiszK3pjMjZZUztv
I3J7ZklYQVAoYUckY2RHLUhpMlI0TntVViN9aHhzNDZyWEt1bnt3REpPI2N9czxUbUkyPQpYYXpE
bTwmOFhrWUc2Uy1iaVZfdUsjekZyRjZeX1EwCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vaW1nL2tlbGVzaGV2LnBuZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9pbWcva2VsZXNoZXYucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkNWU1NzFlMjYxNThiMjIzOTg3
ODc0MmRjYzUxNjY0MjIxYzkxNmQKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDIzMjQ2CnpjbWEl
aldtRnROKTkmb3p0XnRDfTUrRkRQY1MzTHshOExlcmNNVEU8P2hzcjkhUUl7NjNHVkpMaShLLTQt
K089Rgp6YkkrV2U+NiRhV1hTJURxdE5NQVdDUFl6UTB1N2xFODJ8dEBETT5NOTAwN2chbUo8PWR1
VipjLUYhazM5JFUje2AKejZldH1mLWhVT356c2c5NjBXYmZLJSQ5PUsqRT5rSWt7UypHZlAoWXky
TGUpMzMwYGpeSTctUVZMUmZ+IU1kOEgtCnpuTDh+MzA2OEVmQ2kyO0o7Vjh8O1NOcUhUWkg5Xzxh
JH0yODY/SUR0N3pUOyUzWWBLJTBSbjtHO1BNSzh8RFgmZAp6Jm45cEZ1QFJYYCs0NTZaNmIlK0JI
YHIpdT12fnZWa3JOWj51emJVSCstPkFNRjFjfElJcCl9SSo+YlhuTGRJcHcKem1feGI7ZFdeRWFY
cUYtXj91JTNUSCpueTtCQWhaVUVeP3FVYEcxNXNGeHsmbE4qREU/aG90QGYzMGIoM3w3d0sjCnp6
Xz1zTU4kYn4rUyFURXE8OXNGZmtYLSRUPih0ZUJ8S1VLK3NabCUjdCZvdFR4Y0xLZnN6cGl7UjFM
OE01SDxtWQp6VkNgc1FwRSp0QzFkVG4pWVJONDc5fmA4V3BiY05mbjB0N3JIT0R1a2gjeXNOPWFU
SE9pPDxTTEtHYkdabE8oZUQKejVeUFk/NVJgaWZTdjNVfU8yRGk/ZG0rZzNKVDNoa1pJWWImRnE4
S0JNKDF6OSpCOVpSPjJoKUUwKzxuZDFITDZ9CnptaSNmLVpaTHBHJXlNKHN1RXdOQm1Fcl9JKW97
MFY7anVDPUl6X2BrMEJ2NTlxQSszcjVDLUI4VitZPDJFUWlJcQp6STxIdiM8U2EofDF5UjgwWmFP
WW1tVT42TFlBfTJiaXd9I0hIdHg3RWE3Umo+aUFlRXx6d1pgNnFgOy1aPzdYZXQKeno1NVBEXlJ+
WkgkP001MGw2WnEweE4lbkwyalI5T2cyZmJOdDhIczNiaD1JbUl2ek98JWxRc3tiNHghfGNBKC01
CnphZGdoMzZjRz9jMDxpczZpbGx0U1R3RS0pRU16UVhUd0drWnZGUjl4UHFqISNNeTZPcjJ8MWBW
cXdjLXd0OEJlIwp6d2JjezhvMm03bz5yNyNHcm4wVjBVaD1eQmYkWUVncjdIR2MtYlc7RzRzaEVG
Z0heKWxkTCkwJHszJllsLWxpXmwKeiora1FzYCU+Xjg3ckFGV040V0xhTDYwfG1aWl5LUyZ9TEQy
RjZLTnt2WVZLLXs0e0RYPTI1YkpvTVgoQ3c8QyNNCno4Wil6YWdzTl80cmV3TD8qPG1FVkg9aVUj
akZKSFBudlJ5KHNvT1dsdW5RaTh3ZzMjRHM0N3FKcF9wK3dUdjhFfQp6SnEwSmNQOHVVPW51V1lH
PUBpOyhnNHd+ZHEwQk5HKmlJLUM3V3t6X25JTmJYXmw+QFdneEYpVl9nYURmdk83TGUKenVhTmk0
Pm5LN2VnUl5IeCRGSFBIKks4Pj9AUkd+UFUqQyopJWJENXlufXcjPlZBeWslME4tRHQ2RnZfWVZv
U2s3CnohS2JDUTt0Q3oxcmNkfSMhXnNvVF5WVCN+M2lNfC16UGU1aFJaZ0kheCFCQkI8NGRibFFf
U3FfPn1YQWkrfitBWQp6XzdxOEhnSFNBbHpEc0pgdjsqYlBRS0wkTT1yfnhWQFNPbSM3bTVSXzNK
JGpSdVNHISZfeHowV20tfnlLe342Kk4Kejw7dDBrRjdOPkJEa0Q5elQwJUlYXzYhWGQ/cDcpKjFA
UmFIOWN3MmQxPCszTDloT2MrbElQez1IbGI4fkE/Kk1pCno7YlI8VHVqaGAzWS1kRG1EYzduTl9K
P2E1OW9DT0hxQXZCXzRiRjtWMW0+JTlZTi02M2k7V2ElMlI4eTN4dV5sZAp6TXdHYDVyQ1dnUzQr
eUE+bjRfR010QkF8eFU1Y31faTg1eWxxSjxibnJqXnM7PWc1QndHe19UPDctMzV3VlkjTXcKelc2
VnA8bl4oSClGdj09VUt0VGIqPl9tanwjZmB4UDE4RilUR2whfSFQQStieEk5Y0xSTiNWKDtHMShB
ZWRzSGxpCnp5bzNAQnAmQjwmSjhOdDVfYkswYT4kc3E2JFJqcVNudTxHYmNCJXhpZlFneGo8PmQp
UiM8NncrcUJ5ZUBnRlV6UAp6QCVtXk93JD8qd2F9QnstVi1NMzk2ZU07MyFrY141KlNYJiU+Jkwo
RDh1cEVNY2EzY3sye0F4Yzd5dTl6SWR7K3UKeiFteipxOWtuMz9Sd05mRTJUdWU/ekpmLXYtaXN0
OyQqQUQlWnI1TmFUUykxckxyIU9paWp8ZEI7M3YxTiRJZVBnCnpobylJJF4ycERxb0grWHZBMD12
YFIqWTdCKz8mYXsjflE2fip9XmxHRz9qRH0pc0A+eW9WfUpLVnA2cUwlbVMhfQp6RXxhIyV7Ump6
PkZsVGFKUnslUzhJIXJeK0lYVCR3VFIzbj87NTFzZWF1XkYzZko5QDhPNEF7VSgtSDt3SV9sc24K
ekRAVmF4VVBqVX47LXNZR2pMYFJFe0s5byVRTmoqJjlSYERhJVQyXmtleD9kMDwwPzNHNEpVU3Y0
JHpOdUd0eklyCnorYkVQPnhKZDQydWc9VTtxST4kPkUxazsqaGVhaXskMHMjK0V4SGFNbCZlRy1D
PDtxbnw5KUt9aUZKez9zaV59ewp6MDQ3OW5eNHZyQkJtIUkoS3IkKnkyUUZxak1+WXh1RVQ8dXcp
fkZHTTNKZChaQ2Epezh4cm44KUQkaHtEQFRjSi0KelR3dGBNSlFGLXYzPzt4YGJlKHcwNz5mI0RH
KTt0XnhzTV4yZCsmfWtFNiQ5YzVKX0xVYWUrXjMkKGNVUSotQmBXCnpTOEQ3QTNqLUVTNC10ZklJ
THgyI3tgdWRXcUs1LWhCKEV0OzJPej5uNWoyIWFBZDB7MUIjQCFRNjdfWjB3U0ZVdAp6Tlp9ODFQ
KyM+WGlOVkxpSFJIaWJ1THctTE5lIzFANTQoQGZqODtqKU44MlNBMUt2dHZBQXpwVFgkZlgxTVdu
K2oKekExXktoemcmbVFIOX1KNHp3P09uOFJ+PT55KkNiKUVuJCFFPHxDU0hyVEgpezA4YXBKMDV2
VC1sUExVOFhRKDNRCnpUOEwyIUJNS3Umc1V4cTZeNDd7QXkkZ0NMPj5uajY0VEp6bWVGVD9pRG5n
ZmdoSVF0LU1hN25YQDlZZGlyOFB8ZAp6PTstT0spRDEhbTgrby1mazA1WG1FY28jTjA5Q2RSKXdu
K1BCNEQweWtwQjFrKGdqdVJ4fld5dCE2OHJAMEgocVEKeiVaOyZle0hvZVg7R1UpMVQmbVRQJVJ2
TlBDSXlWflZ8T2ZHNmVReWRFdWFHTnQ4VktKSHJGby0mZChKSSZ2I2NBCnpzfTZ3dms8UkohYn5X
K1UranF8ejM3MTImKV9OeD8/e1AhTkgyaj5NWWNad0t4O3s3dzVUVGZ3QHBpTmFJdHU5Nwp6TXpB
OyZGUzRNTE9HP3RnMCt8TXo1d2FoK1VKcXI7X3dlWGpvTFYpX3l3T0tUYjJNQy0oPjBsSTJMP1dv
USVpUEAKelF5UWM9SFZFJmxQU3MzdFAqIW1xeU02TDw1UXYtQ218SE0jSV92O01WSTMwV1RfYms9
VjBDZyojNk5ebnFGT0lkCnpIQ2xgTHgwTFRUdH44I2NZOS10UVE5alI5V3pVWSlfdmZiP1U3UHIw
dTk8aiVlKW90MkRXVFYwQipeMk1XTE5pSQp6OFZ1TnZLXklmQ2BlMUs3ZC0oN2xQZU9fR3pKVVFt
Z350SVptb1p9ZnE4aVJ1WXF8UDRHZFNISFVQWTg2NE9eNmoKejZMc1crWT1FdFgpSUBYX0xMfSls
ODc0VHVFMFFBM1JvalJgMD5GSzw2QVhgUHNXSmNWcGYwKDhDKjZwSXElYXxeCnpXKzF8TCkmREhC
PXJofTxOMEBTMVhecmAocmBjSnQheWxtUG5kMXsjMj1PV29WVEM4MmpSSCswYC1HJW9qPUMqfgp6
QFNeXlY4elRfaEM9WTYxbXdnQTk2fGc0fGpmRFcoQ0dxSGhiKGpZdVdMazdBKV5KNlQ4WFBAdypn
VHokRUYxKyYKempQa1l5eWJ+UGpXek8qNGVGPzlrVVFfJTtfRnlkYWprIWVrNHIpVnh1U0FRaFJ9
Nmp8dHQ/SEsxeHAxPj95RGJFCnpjPkk4Y3pee2kpQXRGc3o5O0oqLTdoblgyZmM9YXpLcmp9WkMx
bjw3JGlWfT9sUUJpIXBFQCF2aGE0fDQ4NHZXbgp6Q2JpY0dtKFB4OWFDSiQtYzV3TzxoT0xFZF5P
Yko5JWV1Q3t7cVB8aUdzNiVkYH5hN2c5flVIb0IkfEhNUCNYKnoKekJnUzJlKDRzXnhKbl5AOVF4
cyojNys2XktYZ1VlUD5iaCF5R2d+THAwc3Z0P2xpNkhSKVFrZX55OGZ6Qy1fO1pJCnpKTC1EalQo
eGptJUdTSHFLZHJaLS0oJCNMNzFIeTVkX3AzOGlZX1ktODxoWWdCSyU+fVlMTz9PNmdAfkshRDcj
Wgp6S2JgX001WChyTEllaEB1cEt6Qzw/S2dRK1Z4NCk4cTFFeVUxI1Z1NylrWkVnR0hPZEV3KnJA
KSlfVzJLPWIxaCYKemhFKmc9TFdOdnlPVE59cWAlekNuP1lGRX4mQ085WjRheE96MVdHQ2UxUXhC
I3h0UXMlJllNbUk8VkhLUEw2RVd+CnpnLVhlMmNzU04hWEpqQVZFS1I4RkltT19rdnJOPlVgb25g
YjBJPCp1NkpgVz10bG5Pd0U/aDBGSzNfYUdafnhMewp6TTU2c2B4fEtfcHNPTkFXXjJTNE1sRTN3
ITBaUWgydjBQKD85Jnk5eEpqaGwwO0AmfSUtNlBiSnlJJE80YWxyTDUKejBqSG1PKjJpVkB2LXQr
dk0zej5VKWlvNj1wN3dOe0BvZjhtblBWfFApejxSVDBIPWtzdzFATXtgPkJMMFJrIXElCnpyald4
JHU0Ukt2Mmp+cylOcCtDaEpvUj5iWCtrPzB8RnRXflQ2TDhmRUU+e1hEV3ZWeVJkdE9KTVY3QTR3
O1NFbwp6Yn5oUi1YTkJqaCVrNE5oTzwmZndrdmotOEd+SUM7PEp7JE1gZ303P15tQV8zc1I3VyhM
bm1mOzg+Q2ojPCpwY2AKenhsUjI8QEhoK1Moe0xFYz81VW16WlpYPmBPa0JDXkRoblV6WGM+cyQ1
XnxaSl9UWXA4MVBeWXdOT195fD1YQlR2CnpQYUNWZTh7PElqWFRObTR1S2R9cUJhOzhBUkkjbTZe
eHU0VGw5bW5zaEhLR2k0SkV9M3lMWjsme1N4enMhP2BhKwp6ezZWbz9wc2g8RHpwOHZJTSFBR3NE
RHZBdzwzYjQ8Tmc4em4pfmJDdVpxfXNlQUNDRmk8ZHhaIz43fmg1ZnQ3VVcKemYrQGo7IWE1Smd2
Yml4RTZNSyFtPGopeDJlcjgwK2I4RD9qJm5ScSYyc3chTzdnOFU3RTcwemJHSXgkQ2l0QnpLCnpN
QHIxSWREWTNvPjxEfmw8TVpqOGAzUWRfWW58O2R6ak9AJW0/YH0xYypgIXx2T1Y/JTVfTz1XUXpz
YT9INGUrbwp6Wkk1QH40PkleSytsIUdJPjZPVHFVcT0zOW0+KUd6WHwoT19GUkZnZDtFeTYzaite
K1hrJihHcnZBJSEkYT9TancKejNWRS10JXhqeCM/JjQ4el92TzU/dWc7WCYkO0pFWFhzbmROYzxn
RUlONHNEd29CekNLIT82V2YlbCowd2teOGFkCnpxMyhJWHNxWEZQbEJLckNAfF5+dXJwTWEqYXs8
a1RpdSlEYFl0OHpMcGd5dUAlY3pRczAxdnhGSEU0SERCN2VDRgp6XlJmJFhFdSteeGhSbXc9LURV
eDRlZmZiUVdrQVZ4OCsyIzZ0bVlhcit4bVBCWkVaO3RkWU99Zm56IV9xWnE7N34KenR2Y0xfMH5J
R0ZISEI2MyF2bktRYExuR2BYPW4jUlVtd28lcWBoQylgYERHVj09WlFPVjgzP0J1YyhNSGE5Q29K
CnpGeF5xck5TZ3RDZ2Y2ck5AUWxPWkg7aTspQE55SmI8a3wkTjUkX00jaTwqYUJtYU18VmtDJX5m
akw3NVhEe1pnOAp6YD1tbjQpUVl6OCs4RDRYT1RKRCRCd1JhezZvd3I7WClMM2klTy12dFJ2ZXM4
O2xuPUdGXnxCXj97QEhsVjc/KDIKelNrRno0SDVsR1IxYVRuaGNZbV9eVn0ralA/MG16SilteWh9
YXBtSFh0fiN0aTQrNjRqTXV+fiQ+aXs+NyRtUWh0CnpqSjFHWThFIVRNb2poJEJzO0l5ayFeYEUt
bSpuRUYoP1lrNHIxdHxuJiVNRVZVYmBqdVdSRUwlYFMoTl5ncDkybwp6YlFWdVgxKnM/fVphNDkh
cj4mWHFwO0RlRkJkWjw+K09+NjNXJkEjO0p1c0NTOUJxJFJuaWY3JShkblopRkx6YnAKelBoPDU1
SkIhfFNMKSRyMjJ6Y2h7biU2I2ErTHh+MytgZ0NMcj5VMWlkXj4kMDBIZ0lOdlchdT9fQVZUdWpU
SUtnCnpiO2pyNmRNRiZ+TSlRWnVCfk9rMllLfXQ/eilmPmwrJDxaPkRfPmh5Qld1X1c2OXNIbGBF
NmYxeVpiKHA1SXd1Uwp6QE5aV0NAcChTZih7XiF3dkRFMiM9Knc3R3lMISozWWA7e0VIQlZhTlo4
M0VzSzVYZl9OcmV2cGshaD9BPkxlNyEKemlrfDFseGFqY1VlMW41Vl5GNUZiIyRLYmpTJD51fEFz
UmZHaFg8PVR4O2ZQaGcyfT1tJjRRPEYtIWJDNXAzQXRlCnpWR1AlP0RTP3M5O2tLazxENHpib2JL
RVdgNz14NjU5TmclN3lgWitze0M3YzdadiNKITFeeGlOSUs5cmVaX3JpRgp6aVR5UyZ8RUZ1UzVg
dkkrVG8qXlYpdVBtNT4rIXJme2UxZTMzWF9aMTQqTG5hSEJeaXxPXzkhPkIpa004aUxIaT4KekZT
NGEzR3hfPjFUYDtCVWJAa2xKYURWUTkzWVpDVHEhSFo2amd7eCEtPWJTPnY+c2VUPGFtJjZIdjdm
ezBKKmNKCnpXO2EwbD5pTmxgNjk4bX1IfC1+c2skZyRlOG49MCpabVp2Unl+SzNTencrMTleX2F8
VHtWeEE3aVdjaVpgbFJ0Wgp6eWxCbUJDQWtXc0BxfktONyFNXkQmWDBTSyYpSDZGPT9PVVllUEoo
PFA0ais7OHUhRVBVJTBDflk9eiNBWGkkKjMKeiZxTmxTU3soUU5Aen0yVExKV31tOTROR01XT2NW
fFBUYk1rcSQ+ZnkqSlh6P3VBP2MzYENtPTBfN1hYOGZiVVFyCnozMTJhVTVPcFVtVDx8bT4+Z0By
d0llfWlqPW1fb0w9eVdkVSptJktJKzk+Y2o5Ql9IeHpqKDckT0JCcU5vXkdgYQp6TSNSYWNJRSZS
e3NTUGlGeVJCfGRzN28qZ2ZjfExxY1g7blglQ3hQcCROfVhMMCt0dj1oLWVIWUlVK0B2aGApc2cK
ek5sOGVfdWZzWVVPSXdeOzMrUW9MTk4pblZPbE5Qbik5c1FGXnpfQm1AU19Tc1FuZEZJeWxUU2o1
ZEdmYiZWSEc5CnpefGcoU19qdDZkZGctMDUhXnJIYFhpP30hUmN7MjVWdjM1fFJQQDEzZU5ARCpY
N1VIOz1GKGMmTH02TUU0bzJiTQp6emlMQ0cpK05iUGFpJXt8QHtqNl9ZUUdhWEBMUTRhR21rZndD
cWVgT0NtWmtiU2RnISo+ZSRHR1VnJWdWPVpFcSgKel9ATkJmV3QpP1ItRUB6Vyo1a0A3alpheHdv
d2hlSk9eYUI3eyNAQz9kRTIjK291alMtJmdOMnVEZUNFeXJ1Unp5Cno9S0VLRDhZTilScFNXUmpV
KSpgbUdyK3ZiYWdYPzN2b1lKakFoZWx1OE9nWiFNWiFaWFZmSkxVWVVGbkhxOG8yXwp6M09qWUZ5
MUt5bURkTT44UGNyejQyTDBWRDxiKk91ZVdSNEF5WmtCcCVeTUtfczVuVCgqTThueTY/bEFYZXAz
X0QKemV4QD1lXztoRU5nUnBmLVg0QVVYe1dGNG9hUH11SW5MdUgyZmUwXnF2JjtQWWhTWmNlNzJ0
Y2ZhYS0jRjBIZHthCnpfKWFpQG5NOCg8V2gqdiQ7RCRyS25oSXk0SGxpNGsyJT1RfjJgQ3I+QiFa
PX5xfER2WWB3QHErSzAkSlN0cXQ2dAp6bWleWVB7Sks2Iy02Pn1eajhYUXR2VzExWSYrZj5tX2Ry
QD48WGxYS2t8X31LPEFYQjxmNXM5V1ZkTnJwRGQqdWoKelpMdlcmcng5ek0kXylmdGBHPzF2eSgw
aD5tXz1Hd1IrYkx6Xn09amozJHJfNkV3WD9KKkZeUXxjcTRNMGRLfXokCnprPTEpcHdhP0RzKlht
eD9SMVQqIWtodVlYdkM4UTNzVXwhaVMrSzRiRFJrQW4pTmAxazAhQDglJWctXno/cnE0Ngp6VVk7
VWdMeS17JF9FKzk4RC0tVylkfmVxcl5HNlQoTmhSPFVjJiRKN0Rge1RNNEAwdH1vaWdXa2d3MUZ0
K19YLT4KekB4PnFWMH1iUE90PF53Ym5WLVZ0dkBuVXIjcmdLSjtiS1E2O3tHJUVuQiFPdypLNSNX
P29VJnZncX14TjBDayZBCnpEb0UxV15FNUYwd0JeLWA5dGZRYCVhcTtVIzJHfEslN3tNdVpZJj4p
TFh3Q1V3cGtOZU1uLTg8eFVEe0RSJXdiSgp6YGVQODRrI0d2bndtfVZPMEFJbkFNPnt1WlUpKWdV
SyhHYERuK2t4JW1oeXYkRHc5SiVRaXpISW5iRm59T1ImaF8Kei1oSlg7TiZCbmI7QHkhPXQ7SzBt
LVc7fTclI084TT8tZ3ZWN3w/TylIRnBfXjg9JnZjM2hvWUVRZVB6fFUpYWllCnpxUE5mZiNOJF9n
TittYClLfjdQYm0kZllDaypRPmFEYXY5aWpCVTxhTG1iSTJQbiE9fldedXxqZk5mdj9JRkJDQAp6
bShGYypiWlMkRVNINkFTVl51WiFgJlV5WjlJKGZBVDxpQE1JI3smdi0wJUgpczx7SUlkd0N4dktK
T3FERT4/U1AKei0/VnJ0S3gxSmsjNz0rS01QYH5gb2dPeiFxbT9BeVBFLWhhP3t1SSVTblB8Rz0o
UWFyendAMDx2fkZ+fHRHYm10Cnp7ZDI0bitPaU5lc1F7NjQlI2dac2wkMHp4MGtfIWlKZThzUFRx
ZmBDakswe3E+OTllS15RfFlRPlg8ZFBVOzE8QQp6QjNCa2VlKGRYN1U0YFdEPnAwaCt7V1Vpe0pO
TzFkeUcqUntzIzxiO2RCT3ZMJWZGWUFxZT5PSyRVVFctZSFpQGIKenM0WW9GTn5Eamwte1opRWg3
X2R5TFc4ZzVPcTIjb2U8eiNRejhmPlFUKTAwKUBPRl9DaXVndzNfVHcrdlNwcCRnCnpsJn1eKkIl
X3I1VkdFVUZZRm49UFFrLTs5OEdxbk9fJW91RjZmekF9c2s0YTZlS2g1cTB5cEw+MFNzT3BJenN2
Ywp6NSE7bWgtK0FEdlZQV2hvNlo0WDckUjxafj51b1FKYjd+SFoxdWZrenpObD0reXVrejdxeEs4
RjlRaFJCbntGQ2IKelJiQWkrLWsmNlRkKU4hWXVaMWg8dV5xUlRjdWI8YjVvN1RNRmhoMUEhTTN3
V1NvPUhnNHU9RT9KSEs+RXFycWJHCno5NWgwJClqaUgoNCFRc1NKWihOX3t7SGczT3l3YFkmSzhv
ZTRnTFRDcSVObT9LN3RnTEhhO3NmK3BUSVlBUnVaZgp6ZGVgJnojLVNDM2Y0U0xzV1UlTTdgUj96
WkxwSCFrTDdANj41PHl8KWFDenp6YjUmTyRqITlWMDNfWUJzOCNISjMKekpqQkhYMEFPaUdffVF7
eUNBMDF4X3V+c1hXP2djdGtMZ00lXjAqKm9VTnJOdzVmOzRUSkQpUTxCOThqRVdAOWYjCnp7YkZn
d18rSVgzaGEma2VLVT1CRChUWDkoI0lUUGhNflF4d3JPVyU9bD5+QHBAM092dShXaWpxKSQ8KH18
RksjJgp6SClSM2hGPlBkem1TJj81cytDQyt2ZGphY2d+Z19wc3V5U0NyKTkkbEFPcyhySzJxXmMk
Yzc0a3JHTm4wIThfYW8Keil7KEUpPV96JD9oZS1ocGdlQlM4elpMTEJEOXgqLWhubjczUCp0dGFP
PXpAYWRlX09JMCphYVR2U2FUQFlWWE9NCnpadkZ+bmRyaFE8Pm19UDZwZishdkVYb2hkRkQ7VGJv
Unw2PjdzMFJma0R0R3BDIUFwX3RhOU45bzJ6dmoyfShLVQp6PEN8SihtMkY+SHFIYyp1aUFUfShj
XipoQyFVNmpSMzxXOHErVj9QJSlfWX5jMU1QZ3lgNXVTSCQ0KFM+JnYqTTAKeipubHJ1Uz0qKHZH
Z3NKfDlsSlJGS05JJT5kME1xT3pzNXw/VlpBODdgT1FjSlM8TyFBeDFxOFZUSFZ6em04fTljCnpV
UjQjWDZZNnNXK1IkITNnfDtSJFp7RnAlPSFkZWw2blVgMV5OZXlMJGRJYU1JPWJqTWE9MHI3ZU13
O2VUV3FwJgp6Wm5qUDslKEhoblpkQyluP0IyfWRxbnc0c05CLXJMWVJnRVFHSys4Kk5DUz1iOz9G
SmtCS1UtYXN7ekItNDAkYTwKek5rMCpre2F7dC0oRzRRNyNgcHB+SlJZeVk4M1YwPU1CSF95I0Bz
KEheTzBHKjFrNj1sbD9rPFplMlA0TnYpYko3Cno2U1ZpR0FVIzBgZjB6RkJ6REV6PWEkYyEhciRs
SmtRe21kMENpVUB4WSkza0Q/NTx9Uy17e1o4YnVTfkFrayp7eAp6K31faEBpfFlxP1Y5I3xPLT0o
Y05wTkRqeyFUWkZmJjF2OUdxS0BOcCE+VzYrYnEyKzVPVEEzS1ZCXmFJayZvVCYKelEoTUQ2N2p2
bSlte3ZzRSR3SX0md2M2WjAwQXpgTHpqUC10cEY5LVpYZys4RWlWT1M9Nj8hcDcwZmVzdF9II1BG
CnpuSkU3Mi1FSzR5Ukt6e0QtI05aUDlIQUA7KmVISF5WJnNeMmtgUTdHaUtvJWUlfHNCeEM3ajhg
NyVCKjZpfnpsKQp6czNhVyhGKGQkJUUoJXU/ODR5O01fN2kzc1AycD93cThKOVkhKVIwQCtIPVJF
VndQZjNCZ0Jlb3NHe1pobEI9aGQKemxiS0t2TE43WT1yU2ZvPGtyXmROSmdZS2BHOUM1TERPODE7
MWkqa1YwRXxiWmJMX1dNKWNaeF9yPmVZP0tfYF8+CnpDVVRAKWM3cnQtSGlYYXx5XktUKjAzaDxf
eThmJS1RfVhGTSlCT1l3OTAySC14WmRedEVFc0Z0TmEoWlo4enp7YAp6KE09NjBZakBrPWJ7fEgm
KSNVQGowSXEqZG4kOHZJdEReQzlrRDM+KSh+MDIjdigoRSZgdXVkfmdAKGtKZ0JjU2IKemxkODF3
XjRHXjNre2pFekNmZzF2cD1SZXxiVV4zd3dEc0c5ZDdweWROJXZITi1aa18jN1Foc0U0eFNfTkxo
S3hXCno/YjBRfntHUTZQYXhmc2dHQjcwcEtodkc1PTs/K19ZdGVqIU98Kn1FIW1gNzUhZS01RyFu
JExoZSRLej57TUp5RQp6V3o+cjxTeG5tPmgoZkhTdG1kUEJ3TzZAZjtIWjlZZTtAJDFAMHVOKjlo
SFApaSNPRSlGJGs1ZTxCaCtKNmJDamsKemtzbW8pYTwkJFVnSFB0XkF3THEmPHZ5WVdqYChOVy1Z
SHM8QDZENUQ/Yj0tYU1NMXt7MV5PR2QyfC07RjwkbiokCnoyVGVUM0dDX31IWj8jPClXYHZTaUEq
Z2A8WEgrSChnSCllSyM+Zj95cDdXPDFMX2pndXsmQ0x3MSoqZHkqKn1vSwp6cGB7bzdKIzRybWFy
dFJ6diNQT1NiRCErX1VfPSFpJFckQT5kJUREVWFxWWJXLU1kSDV7bl9+S1ExO1IjPE1WWCQKelc2
az9YNFdVaGoleXU5e0AzOU1RSD1JbnBuKko+ekJibjFob3stTzBQZzZreCR3SWBSN0RtWFpmUWhe
MT9WdyU8Cnpva31wPWJhU1RTcXN0elQ+UGI3bHgoN3tPZXtSNTZoekskaDAxezJvbSZOUXcjM2F3
a0QpN0RARSNqJio7JF9TPgp6aChlP2EjcTdrK083RXZfZklnRGFjfXljeHtBRTs3TXg9QW9sfTl3
ZFFxVX0yPEhfc0Q5e2RxdVl3RShBUi1IcHAKelJtX24xNl8/YCppNiQoUVBeYWVXVmtOYSFTU0lO
eCgkMD1WYW9wMV4lRnlUa0ZndDRnRH10KCZBdVBRfjxPNGp0CnoxZWhfdFNtZFpsTWl7QFIlKmZ9
KTlVKGpqezs8Mms1T0gtJTFgNDlWQFNGYX5JRG9DbWM5bHc7SlArNWBYdDQ2NQp6TlpRdlVfdHNj
alcyTjU7Wkk5SypjbG9tZzNec1JCZmB6VUBKajNrKSVFVGNBYVE3N0pla04zUEwoVXs+e3s/cnEK
elNvOUZYZ3lBezlWVClxc0h9KGI/aDI0aX5xX1BqZDdeSjhYdndjcyYjbT5iUXdILXlHMiozPE9C
IX41X1RCKS1uCnpzRXE/KEtUPiFjdkN2X2BYUTFAcSVPVlJhdnc8UXxsTismRSE9aEFeJFRtblY9
STZmPEFrVVdCOUxRPWdyVldeSgp6Q3lebUtiK2V+TWxwcnwlN3dsSmp6blJoKWdxNVdad2dxLUgo
P19Ad1V3MDF5IWp5d1hRbEczZCQ9aXw0Mnc8PjkKelozbjJ5a3FGQVdvQUNXQlB3ST1ZQVJmPDRQ
azF6NztuRzkpVVAkNl9BXy0mUj9RViVwbTIhQFJzKDRvaT5UUSNOCno+RUg1SnJybHxCMHVkUjlS
TlFSOyR7IVhKVipEbGxNYjxBbzx5cXshO0ZaPE1jP18yfShlPFRSMkdhP3wlMSFSdwp6TVFBQDBX
Yj57bz4tJSNmdFF2fCs+Y0U1YE4lfmRWJXtBcDxETFRXXihGLTdnMDgjUT5GfTl7VFJReHNlV0ll
KEoKel5taGl+IUlCXkphZ1JgNGRaKUklRjZ9UjxoKCZzRFJBUCk1SGFlUTQhZT5rI3s7P2FiYld2
bH1fRmlqfilKWjdvCnorKVJlM1NaRkd0OUFRWTU+aD1jZ3Y5SzJ+OykqV1ZPbkZLQW94YmU3IXFV
PWtLKEVHa3g8OHpWUUFnM0ZhWE9Gfgp6diY4Vn05Qz1DYlpKc3MzJEtXP19GbGN8XjF7d0Vxel9e
cD1JYH11QD4+S3E/UGBiTTtebDt1JVlecH5iRDgxNlcKeit8OVRAa1dURSMqdXoqOCpXNl8ocktx
V3R6bHlOKjVUSn4wMjhxfjlRKVRmXzloNzVINkhwWGskJS1LRXk5LWlfCnpRSENMUEFWUTJkX0hn
KXFCTyVRKl9GIyQ8N2A3dXlxM19HbiliVUhoNUR1VyZleExNTHswLXNTZ2p4O0FeMmVWQwp6M2dj
bykpZWxYMzlRfHUpSnpkbntlTEhMbkttaDlYI3ArUGtobjJKK14+ZEllazB7NVJiJTJXSmN1Xml9
SE5MdnMKemlsVyhZcG0qdkxHTkJGdWJjMDAtayN5RGNVaGBGdXhiVSEjaHowP2VATF5iI2h9Nnl8
ezdjMzB1I18rdFNCalkxCnp6cX4oPklsOXNRanopRC1tV0wyV0Z8a3V+ZGRtSEdKUjUwb0NJSHgm
b25sanRBMDRkNVExX0JCbkYzRFAjVy0+fAp6dDJibCQqfGlDPzJuU01sVDhCbjUtfWNXMEw+PT1A
Mjk7OFRJckZWbyRfT2MmKVNkMX1sWlFwYyooWFloYUMqd0sKemhkKllVTzs0K29BcE4xcmxSO2Bs
LTJiNFNkYm9xNkMpdmE8Nl90LTs0RU1eY19wSWokTkJoI3tacHBmbUk8UTZUCnotVVoyZkV0O1pW
QH4+WDxXMTtwZFQyKF9Ae35IVDFLMmpnQ3JXdWhSajVLNlJ7LWFeaT1ga2s4VXMwKCUmcEo+SAp6
OWBNQmxXNVBxNkhBRTA4PXMqOyglRShOSjZvYHM5KkkhMD9kYnd3b1RGeSgqIzUpUTM+dFZNZ1Fz
WGVfdFpBJn4KengrfV4xKn1XJChFYXwxOUwmZzN2YGVtcHNlN3grKDktSSF1VzRDVnMlckdRc1Nl
ITdIcDZPe2hvdz5KJF4xWW0zCnpPQG8pbSQzZnk5N0ZjelpzTCVZZE4wTnNAU2c2NVg4U0s0MU91
MTFSZjFeUFowVzVnMFd8czk7YjwhY1F6UUxNQQp6SThJSmhAK29NTyRQTnRIMV9BYkdtZHg+ej89
PC1zaGlYV0szPTZyR3xDY3NqJUI1biNDWmA2QVZyNiZNWGF8KFgKeiNXLX4ybyY3Q2t7fC1VazRu
e2A2PVBXVVlpJU85djkjV2BYJT07MjNrPFFsYXpNX2gqRWdnbXhMeDYlZ0ZSK2ZlCnpAQ0l3bjVh
Vj8+bUReMSlhSEsxVWpVfjJSeXtiOHZDJkNoMiZXKUliQzVgM21CPyg+SE0jUCtXS19pbF5sJERy
QAp6KnJePkE4QHohN15hYktuNnR6e0FHemdhK0R2MnpoWFkrfTVhajZkYj0zWDk2dnNYNHRtMFpt
aF9tfEEycVhMKGUKelJxdG0hWUczSm9BMnEqI0p9KE1ATn58MntXfm92fW1qblZSNHB+MF9ffTB5
V3chPW1eOVU3RDwySVZ4O0JvUmVvCno+MU59e290OThJWUlDI3VackdxSzRGWihFUnYlV3czbG1n
QVpeIzF4bUlUcSktM0tNQ0JxYSNAbSlNa21XVWJAZQp6UCZKSn1wUnZCODJvfEBYTDRSJmFCc0dH
YVNxO0FZO3c7QUBRQT11VGRee0VXUEprPkwlSWIpdE9aNWoham9JLUoKelhUS3wrPzA7KSZ5QHFt
eEdSeWtgcGp+WnlWWHo/YCZxd0ZwSGA8dWVzNERFVFhxYUctemc+bXtkKj00LSg0bUxYCnplZzBn
bnpDVlhRWWEqPVR5fDJHOz17fUZRR3JjN1I5M1lOcFk9e1g8JmNOQyFGZUY1PG5WeUQmRFQlMkpt
fUloeAp6Q0dGVztTemBDeTxuRj9KWUdzRGFSRGBVTk1AeHxvelJqSlNaP0srIV92aCtJJG9KNDtm
ZlkkbkMteWlzP2IhbjcKem5aWWxJRmdXNmdnd28kJXFlKFY/RHdDaEViX0J4RzUjWFI+aWhkQnln
VTl5OHsoMztUPkYrUWdLbjZrI0UwbCtsCnpEcGcpVDUkQFg7OD9OczE5WDFnakBPc0UyNHhWZ008
d1glMlI/PF9WMlckYkF5SEM/Q1V3NyhYJCFELUVZcD1SQQp6Z2R2ekpeZzB5P19eXjdPJTB5MnYk
enN8T0hRe21Ed0B+NCVRZllRfCo4IUsoZjMoIXhQfT94SCk4R0d4bjN1Y1cKej4lUjdFMCFJU3ZN
N3owIUxXaUgqVSZ6VH04T2w4SkNwP1ZyXnIjfVJgPHJIIShmcV4xNEpyJlZFaXNHOU16PlBsCnp5
OWRXMFhvRDstLXlETnhXb2ZIRzdhJjwpWnJ7eHMrcEI2NmBDSF9ObGh4eH5fTz0hO2FlSyQpSSp2
aiozd2hYVwp6Vm9KSXViaiVlMCh2VF8xJkIkNkkrU3EtUVVjcEQ3ak9XdGRAWnc4U2taOUgmQF9S
K3pYZWAqbnAhfnhXcHFsX2MKeiMtYjQmWGRQO0xMTnkjN00tOWFpQ3I/SjstSFE3KDc8dHJHKWZt
cT1kM2ByWjY0RmJPd2wyIXZ6KXNad2ZscnUhCnpyR3tZVmI5an1kZCo2YkU1dmRyZWYmfkZFX3le
TWJhKz4qUm9TJl9qPys9M2ZYIzR+TkRreyhRYG9GakE9TVlJcQp6K0RpSGNzYHAkaVo8RT45VSRD
NEJWTnYxP2NoQVFAYFM8N3B2Tjl0PDJrKGZzS2ZAS2l7WElPZEljSTxvN0kyZTUKenpGJC05YGps
MyhsU0Y0NEt7dUBxdD5oe0QhblpBdlZnSX1hancjWVJVJihIOzhCRUBkNzxmfG1GODFuYVdnYT58
CnpUPWcrRHgzfnxPaVl5RG1aZmkwPj9oTGVQdkNgI3NxNkdqT3leMF5gO2J8UTdAMCZQJT9wOUs2
QHZpbkFXX15LRwp6Zz5OfHo3fGdubDI2OCZ+dlhRVk12UihPe3tRQFNvclReajRAXlZ+RWIwM3pm
YlpDeSVyR30oVTA+O3wkYnRtbmMKenJqbExSPUZfKTBGUmokTFchKmIobGVmODEjbzl1P3RqQXp0
dTd4Y2s2fF51LXkhMTttN1RwJWxVTEEhbjJJOSl2CnpqYEFkZTBTWW05KzEmSzBmVCt6VERya0l+
a29pKFFSK2xvYSVWRi1LZUd8XlVtPHctd3xKXz9Je2lIWlV1S2h8IQp6OHd+SHUmRzVBUFRzRk59
PiFKTFRraDNUJWlNVS1qTX1aX1kpPzg2ak9va3RkIVhGNGBKJTwrZ3Y9dTd2OV9zWVUKelppM1Jp
WnxWaSUhM0YwekhPbWl+dT9qcHpNZGE5e2pDPm4rSTB6UDJmQnF+IU1zQy09MzxiPCFuZFh9SE1f
dUAqCnpucHFxNF5seSUoMl4hbFE+bkVhcDthdn00e3FvN3B0cF9HRF50enx7NF5QaSsxfGh+NUgw
RG5zRFVDK1hCQzx2WQp6VHMwcnBmQX1kQzJRfEo5dCM5dSE7ZDNjRWIkMFNlKT9KNWhDVXB1d15Q
M2tpdGxMdllVQlNKXkdfajNCM19IKkgKemhpPGBNcVMyd21neWI7fXREOUNlYzQ4SXpoT1pGcWFR
ZHQtJFJMY2hiSDNmJEE0JENGTnAwUT1NXlNrMEE+b1J5CnpwQUxzfCt6S2o3I2dPWDtANjI8bmdE
JlhIZD15fDxLczxLZ3A9TSQybHQqNWBAKns2PDl5aHBvRmxJVH1NNEFwbAp6O01NPj9uNFRRbXVQ
WDsodDNsRCNuJTN+JVhvJnNlanxpdyZSKCNMdGVDfXlsX0hoXmEwPHpiMSQtaE1wPCEoMm8KelJp
MHJVYlpMZWpHKmVzRGFuS05waDw/Zm9UdTtBNGgqTHskcW1NIS0wLStfMVZaXjFOcylwQC1jYWUm
Y29VPUxjCnpqbHBgTmU4dDw0ZCg+dTdgVUUyQU02azxZODk8JlZlNTlTaVNkKWtvc0ErYiswOzh9
bjZvbjh9OEYoLVlALTVRNwp6NzY7OGJCR2JsKjZrJT0qa3w8MDJOdEtja0NyZyRveT5oIzY8dTBl
dTM9a0VOKDtGZjFlNzktLVpjMXx6bTYhRTkKekpsXkRIcndoTHw+bFZ1QEp+PyRxUW5xZHtzXnFH
UHJnfFRGTmdSeTAjKlkpYmlrP01BOzx2YyVLI1ReUiRyWHBRCnohbTFeLT9HP3FVdzUmWldTS0Uw
WXxGdFZ7YkpvWXM1Pnh0RFcqTmdWUyhWck87cCViNWZeJncrJDdTVEphRiFyZAp6TURobn5Oa01v
KDgyMG9GXzRILX56d2tIT0khYGdaMztFYVNGJnNWZGBEc1U5K3U3YiZHVnFAdkNAVGdWUGpiJUMK
eiZDcXRMK3FWLVcybCsraV4zSUB6YSF8dEZZUU4qVGplPk5LZTs3YDdPZVQ3ZDhXajNuSE1sM2FK
WFV1cU1mSFRXCnpUfmc4eWYqRHVDRT0teUhoSH1+PVJQaEdZSFo8QktYMXJjMFJ6QWhtKCh+fFFM
NEs3NXJvJVRgS0RYVU9wRlFFYwp6ZW5fO0RHJE4lQDF+YWp4JTxWPXcwODVnfG5PPiMyd05AKHkx
YEkzQVlaYWNYWkAhfE5XIXZGTGxnP1ZibktxWD0KejNqSUJIVyFGUFVQQjskV2xYNXhQQDJ7TGJs
M05EUUlVZTc/MnElSUZLN0gmPlY+MlJWYElBJGE/PjtmPEdxTjUxCnpeVzhDNShTfm0hZyhoY3FZ
VT54MzRFfTdycnlWOXVaJXNFdnF9UkJgeTk0KzJgYWI/NEN4KkV9PyZQPip6RSUrPQp6LSp5NUQq
PDFqXjU+MDdqbU1geV4ySjBrO0FTQGczUSMyNmY7KEgpUEZFX3hGaCFPJHxqOzwrKSFYQGBXSCpZ
N1AKempwbENScHYlJSEjSzhONjV8cj5JWSpwOTcjP3hpc1d9JVUzUEw3NnplJXIrUC1LOCl5KGtL
N1ZJSVcwcGQwb008CnpfMDVVVmg8fF9WZDl4OVRDelNDcEAtMHt+SnZ0dUZhJlRCamd1dzAmPy0l
UGRqaHdSQVRiQUFiTjxjbC1geiZ9Owp6dD9yJWV6T29ATTBTLUBpZ0I+bHNBLVRlMj9AdklxelNm
dWYxU0QxJUlhcGMhVkZVb1BeNzMhUFRqeVR3PGAjOWcKekZXO3NfKmZea0p6byY3dTRxYXd2eUs0
cnFqUG5WJVUrcFdzQn1fNlg/Yn5OYlRrU0NpRkZJSXEwUmxHRy1wTmZ3CnpuUSZvaWN9M1MkMlRi
JVRmdF5ORmI2QXhhdEB5O0hXTz5kNE95Q19YN0NVcFEwP1ZrblUwOzxqOCFROzZeOU9lSgp6VlQh
P2xrYDZQYUlQMyhfK1pjSSV2MmVaa2kobFlkb0BDdSZvPWFfQlhqckNTYyh0S2NmKCU1bHkpWjdF
Wmd5REwKelRHMDFuUGhmUmMpK0BsKVByfm4+UyFlTG5jPyprI2B4KjV1SktOdEA+K1BMdzZ6OFAt
SCZoWFhOaVh+RypAMT0lCnpZMiNOTDghbSEtOXZ5YCtQKlJUZng3IUNVZnswe1hgRTBATkF3ZTh1
T2JiUGs4NX54IXVCVWlRdEghJSVXMHY9NAp6WCR6P25lYz9wUCohZkd9Uit9NSZoKkMqXk17d24y
eHk+K1ZmKitSJlFoUXJncUdMVThAKj9HaCVGK01rYnJJMDsKeiVRbCNEUFMqRlFFR0J9X2A8cUY0
a3IkUTlpbDIpSj56SXIxX1NQI0JmZXVaKWkkN2l9LSloZERFYE9wQHZmNzRRCnpEV2pKVm1HKnJK
MHx+WEF3QGw/P1VsPndrMTBJKz4wNlcweCkjMShoI0k0YCF4aG5VdCNAZ3hwbSsyLXBpQDElMgp6
dSRvfHV4aiUkdlFvZVRyaTF1QkZyWHEmJldhPiY3WmM1SCVIZEZ0YXdIbzZvKCRqc1poPCFNeyo2
STFYYENnYT4KektKRypVUFYlSGJIcXlwQFVHRjhPdHp6IzhPQ3AxPk40PmZEVkZWeEY5dzIwVFlr
TCVERDYjIWotKHhsViVfKUA0CnotPH5HVEJmSXN0YEB8QVFEUXZzbjxBcVd8RGx6PmxjNzk4RGxj
PWZTY0Q9RndHP0Y0R1pgKnpMKWsqaHRrOVJsZQp6RklkNX5DJjtzI3VmbW88MUtMbClXMnckR20m
QTxOcXpxdX56P0txYVdwejRYVTNiVjxWJDU3am9zU3JNVEw2cGwKeik1JmBPbzdTWX5Ndj8oc3Y8
UWkrUUdwelQ2cE5AZkB8Y1c0MElOUEdZREwoVmw9dyRrJTNrZUpEQGR7ZD58YDx8CnpANFEpP3RG
MWtnTGRBQXxKX1MmS2J5XjskeT4qb140UlZOeChyIyFpUDJAPVFfRk9ERklRSTUjMUFYeGR3ZkR5
Ygp6YEpSPTAmaT5QcSpIOT0hI0F7JCNTZWxedCZ1MnViQGU3RmI5UDNMMERBWG1wMUxNRl9kcHJ1
aXUqcV53cCMqK24KentXVXR3UngpQWJyNCU4VWlTQ2xqYHgkeU1ZWCNfSjYodDxYdkdVSUlxQDFF
K1VqWWM1P1YyZHQ4YW5ueyUhcEhJCnpzU2pad3N4PFBjWCl4MGI9NDhNYkJ2dkhUWVRzSE9HRW9s
ZkpCKUpRQCsqSj9zRz5pUD5vVkdtUHZEQFc5Ml57fgp6JjZWN2BraiNmKCtnY21nXzU5N0U9NlFg
SWAxZntkbk1JVyNBYDMyaztVcHZxdWY9UD51Zl50cXlHI3h1aGdqSFEKenRpRCVYQyQ1NEJFWXVZ
OUQpT3g4SklUZnBhWlpyPyFOd2dFOEEtWD1iUSgtN2I7KjViSSgxVER3NHBLK0NSUWhuCnpgckw1
Mkk3fmhzVyt4Wl9QSDEoY2M0V3dqdEYpdnd5d2dyZFNXZmBgMlk8KiRvWX1gOUdge0t1TCNuY2A+
YmdCRgp6bWBrX0d1VjZaQFlHY21wKT1yTlVqQFJxKUV5cDY0Sz90b3JzLSpOako0SGh1eDJaQ3M5
JVZxb2tPPXI0IUR8ZFYKenFAIWpAenheIUYpQHYqd3MmajhTZWtQcXtgZFMtaWAmOyspaHA4Uzsy
aiRZbV4jKGhDRD40fkIoSH12TSM0TT1uCnpzVmM8aTtzUldvUVgpd3RoXiohJm5rdmJQa1JRMk0o
WUMpfiF5cHxkZjImRGUhbTBgJGV+dEt0bkVkdiNffTQ+aQp6KHEtOGRWYDx6QHdtcGhyRVV9I3pP
SlJtaDVrRmFHenZyOExCZnl6ciEzNmlkLVBBXj1ZdFN6cDw1eSNRKk1RbDIKekNVQW0lNjNqNG5U
QU9Dd3JfamoxRlNfN19vJX50bXtTMnorSjhoSHR7S1VOenF0LX53dFEyYENHKCVqKEFTV3R2CnpT
YX18QVdqMVV5Jkd0TmIpUXt7UjckQXxSI2NAVXo+WHgmYEdYRlFPbVQ8PH4+KU5KQmBvWFQzd2xg
WHMxc0N4eQp6KXMhdjU7PVVpSjZRP29YSmRQNCtYfHJ7Y3kpUUBFZWdgRUlEVlRLO00+ZEtEPitr
TVRkPEBMamgrcE1MXn1BWjQKeiglO05GSmxRb1p6cVhUT2lHUCtwWW1rQkFXa25tT0dsT1VTPyoy
aTQyVGxncnpBTU9EcFNVO0lfdXh+Yi1PKFBeCno+Q0BCNGx6aHN6ZXw8c15iRys+byp6bjJjZEI0
ajZ1bGJeNUBQMzRaRkRBTUFedUJaeEMhcEd3c1g+XjREajtBagp6UmZkazU4a1AjZW9mc3FZJlF9
SiQpZFg5WDA1SG9wMm9sfHdePUJ1LURLWngrYGJhS0Q4RXhpTDV+WWt0IUwhQEMKeml4TmMpT1ps
MC1RPEkjUyZDfW01JTVWKDdHbSZSfkZWcCl3alYhTyVBUDstdEtNeStWUEl9XnhuZE5JaWt5Zy1R
CnpJKUM2NWxGM3A7JlYzejAkYSV2NTUmcG1QMU84aiNlYF4wWHEyVHtGeVdzeS1gK3c2Qnt3RnRL
IXs9PkwlRyYxSAp6JkZ4OWthb052VyVTOXx4cHYmanghSF8qUFVZN3BWKn4yZHQ/a3YoZT50dHRj
WWNpNlBiQ15UYCN3a0E7emt2eE4KelgxKHdIISVZMF5Afnp5PXF+XjwrKTcqMjNfdF9WcGhwdT1r
fEdsPCheNHpeI0c5bEwodiFfMWUtS0NvUyVoNiM0Cnp0MHQhfXlXTXskUjZZXl8hbnUwZHRAZEF9
aj98dCtnViVGOUBhSWNIJUxyZlRndDM7NWpCX3VxRkQhPT5ZVG90JQp6ZyRzSz12VlA0JFlUblBz
ZF47e1gjMmtsJThNPDd4ZFJlMmZqOVJMI3crQl5hITs5cSg/WmUzIyR6WnBkdkxePlEKeiZHdz9p
bUV0elhacDYpVXQwJm9hJD9hSm5hZkskU2chIUZ+UjtBNmVZU3xhbCNANyZmJnNwU2QhdHxHVWwx
c2prCnprVUR7PG07QVY+Yk9pKTdCMGpmNDk7IUNoci04OWIjb2tRd0x8T0gtK3ZEJThmPT0hMHsw
aXFjKT5gblBHQT1kdwp6clprIXFtPyR4MF5sZXg5dkNrU0ZRLVApbTZLeXw/VWVwP3wmcVMoUT9Y
VUFyd1FuWkxCMmojPjx+UFQ7bmxqcCsKel9TJEkjI2smI2RWREBCSVRyd0tLNzVWcE5tZiVjQDUm
bzwjOTMwM2Y1IVRebHZiPyFJZGMjJHUxR0IoVi07Yis8CnpERiQ0MDNITHsoTzF9Nn12LVM3SzRp
XmdOO2xFVVUqMkp0SUklQSR6X2h2czUhdyNSOW58c25GNjFGclpsNC1eNwp6SW4zaiQwPWE+ZDZL
MEN4Rj1oSXoqQUp7WWI7IzRwYVI2WVFDdlpNK2RMQCMkO3N1PiVkb3lrT1RjeGgwQ24jcEEKem8j
fWR+MWM/YUZ7LStRUFBRT0txJWcwLV9jaz9lR2I8Z0Q/N2RAd3c7VT9BRz9aZ1Z0PFFhdzVAeXkx
M2BUQDBxCnpRK0lrSWgmRDBrJEl5WTBQX155ak5aJVZ6JVlAdX1tfClMQSNPbTQrNTJHNnU4OzFH
dVp+cSs3ejZgZWtqI1dWbQp6TU5IN3k/M35UaGlPcV8mRXVlcGZxMzU7WCp8PjlVbiZHajM5WjFx
QWFKUyh5PDxxI0kmWldsbmo9RFlTKkFCbSgKek5RUXUkbzdJcis8S2JwbWJETzxaMFJxcjVpTTEp
OD1HT0JATU89Jig7M2d0X28rdWUoRUlDYThhKG8wJVpBXkQ0CnpGYjlrPW1MOCNYcyZsblh6JiQm
dStxRyVWTmIlRmVWQEhuOSF5LUxkdX11d1ZLZXwmZXpBS3tiVkRed15gJjFfTwp6eENUU312V3NU
VSp8PXdwbWVCTClsZ3BDUkpoX2V8YklTYCZufiNOQFA2MHgtPi0xSHxHSVZwYDlzJHAzTGIyJl8K
elJOUTNAO2E4JWs+RSNOKFd2aDlJJHEmP0xrLWVPWG12N0Q+ME5FeCh5Q0tXdWFQZkc2M0ZOMFoh
U2dZKSp9fTMtCno8ZHV8KiQjV1Jmbndte1c+b0J1KnkjR3ozQFJtS2FmMyVtbjNlUVJfd1ZiJSE+
bkRQKShuZWNsb185RDM1V1h3Owp6enliKCY8VVpfRXtiQkxGbnpQY245OyhxPXdOQHdxZmpjXjw7
S0x1QkVZRTFJQjB0WXNsfEFubGpXe2UkejZEZTsKelJKWlpjSipKVmBOKzkkX3Q4TCQkbVJuPD0j
QT0lR3AxbWBjLU9XZyVkckk2Nk1xaDRzUWNAT3I+cm51MVd4PGA/CnpHTSQkZTYhQmVzVjJ3fCZe
fEAxenhlNVRAd19SUitqSUE1PEktalktWElOYjV4ejNJKig3bmthKThQZ207SS1aaQp6VDNxNVc9
cXg1QlhyNCMyeEI0dkolQVoyKkswZGQ5bStSaHJHMyU4PmRDbUVQWD91QWppKEtIe0JgYSV2PmJT
N2QKek55VXB1dV4lWkI7JiYwJms3VDdeJmQxMWJ6WUNlZUUxZ2YqMmkmV1JFNHZwfXJ+SERuJmxB
Wj1ObWRHR3BrJTZCCnpMSWwtcFJWTmRBJWxGLW5ERy0zK3NVdClKPTRqYWghOTJPUFZOU05tRGk4
citJcFB5YWB3VSVKbDtKIypXTWNgSAp6a1FGQHJISypoS0hTcXJhUXg+dEF3Y0NDST55QWkle3Q5
WmpacDdsNF4mfDE1JjZkelg2TGFUaWU1SzJuLWJ3LWoKemJOJF9FSH5fM0d2NnRTRD1CWSMhQkEl
M3VRYFRINHRUc05KVGsqdH0tdUd+cnFNfWkmM1ZRVzFYUkw7Yj4pdVh4Cnp0ckVvUHo/M0lFWjRG
emopTVdSaXZRfEhyWSE1dGMyJiltTC1xIUtkTUlpYV54anpqfmBCZEMmcz5IVyFobih1MQp6d0BZ
Jng/SWAjLWNIQ1h+JmVVJmczb1NvZzVqTCQ9Xk59YGY3QXFxST9hdXNtPVR9MTBDI3NwR2EyaWdG
SmdlIXkKem1QJi1QRXVQMHJtIz1ENVU1YG4pUWg4e2olO3o4MUhgfF5yQlY9P3ZBMTxVKm9VJTt9
KktiMDVZZ0piU3VaekBoCno2aj81Iyl2UVRkNjNIfkgkNkRNRTFsKD9pQDBZanNJKCMoUFZoYD9V
d14wREQ8dlYyKlN5RHlhWGU7cV9fb21WfQp6d3tMQn5BKnhXPlhwNkw7Nzc1PDs3I3spO2FwKn5e
RFFmMUpeZk1SM2A5VVJNZWA2ZkFSSHRyUkZjN3RKQEJQQl8Kemk7dyhuYExndzlIPlFQQEY4Qkl4
WUptLTZzOy1ZRiZwPDhfP2AtUCpZfHVOfWA/anw8PkJYUlRlJT1PWShsI0JICnpZNnt4UlVsaVNq
UzBoTVdiNTl1NW83T0lfYiQrYHA0Ym1BKEM7P0Y9UEx+cCtpfF5qfDNoO1EzKDtqZCpheFB1Mgp6
VSEqQUVlfnR8UTN6Y3llPmVeNlFie34pVU9IKzdUJUtOMUR6fiR9U1E8KEZCUGpxaFZiM2RWPVll
c0hwXlN0fCEKei1Hamt5O2AoYEglQTAhP0VJPUgtNkBTQ1hoPEhBR08+WXFrMm9KJDtJZSkwa0Uq
aC10JXZeMkdjVzs2TkszZD1QCno4NzYpP1IkZzh+PDZMPlohNUQ/a1EofE5yJDVSSXlkJnlrRlNu
ZH0ybHpoVmleNi1VakhvfmJxZjxqYS0/Pkd7TAp6JUhoUnpad0BvYD5ANkQte0B5Si1ham8qVHAm
KitHVVI7ZGl6I3pFbC07Y2UmSTdRYj9IQEMyIXp1TE95ZGRAKSQKemY4TzckQmYkWTFaNihHQk5S
P0BkRktDZ3ledipya3FoO0MtbzZ8JWI+IWxjU2tJPTZePn5AazY1OWojWWI7SUNhCnozO2tZUChR
dyN4PEFQWkdKZil1cHA5SiE/RkhRYWArK1R3XiglLXpQQXtHak1BaUJxWnAwdTM/cEQ8RTM5QUgj
Xgp6Xnt+Nj41cWpgcFc/R0ozJnVFPDFidmZtIVAoTGJPe2JLNnV3UG9ldT5kdGBvPnVoOyQhTSR7
aDtjMzlgKSM+WngKekdXQWhoSmVDPEMlKCZsaWJOUV5MRUlxKWQyTmg/KWA+QXVLJjMtNz16V25J
Sns8WSQ3PyV9SDBWci1VVk4mVnJsCnpJc0BsQVVzPCZnXkEhPGsjKyNvI1VzcFlJV1JCPmZZQXpD
S2RjSWFub29IS2BHUF9ATnN4dnNCVXlkfXplJnVfeQp6eVhHUVdKaF49dygkWn4pO1FqMXJlVTYt
NlBVSnAzNmArNVc8bkwhQmwzVSZuWTNWKWgre04xSEJxUmpHK1o1P0oKeiZ1cFlMPmcrQEo4P3sj
U0YwfTB4aiRLVklAOCt1dlpjdUpkdWRgK30xV3dsSFMpazBadm9zI2toam1ecjFNQDUlCnomZypS
e3Veel9sbFNETCsrWjhndW1lTXl8bjIxPEJJUWJ0SmgrVzF3bDRuMX5TREFMamw2bWhQa0pjUWpq
ZzFEKQp6YHZeRzYxV0Qxay1MXjBmMmhHMkB2ZVl5USt+MSUleSElWWt7NnkyI19USHliM3U2VGYz
Yn12Mldvb28oc3A2WnoKejthVUNoK0UkcXg+SExCfGc7dU0pOGpvX0xTcGphVSpYQmUoJnBRUTx5
UEg8cHdzWH1QQFM0XkpOU2ZHPnhBaGt9CnpnMndLYWN9PmYtcElKQ3dwQnI2enFGQjhqcW1LO2Zg
S3NyVVpRejFWRGZqfSNGfDdEMlJtVV8mVHQ0eiM3NVlmPwp6ZVlWOFNfOFM4cC0lYmkjVlQ8NkEm
ZF54fFBoI0p6UFVoMEJ6al9RLVVSTWw3eSNCKnhzakZSPyFma05OISgyZysKemUzSHtkXjs4NUF7
O1BIPj9FMkVZcFgwZmZwXnVlI1lRJFNCUGgqVE5ESmtmQD9kWTc9TFBPYDVIYyNUdXY4XzwlCnpE
VVRfWFByYlVndypAdzdjNEYxTC0lbXpQMT5FTDFyc1IyRmBYYXJqZHYza0s4WlMjcmMpcjs8Vntk
RHI9Ynp+TAp6Wmp3OSFue0E2aiFJUF45XmswcyRGU0t5diM9OSVfUSNAWGBtekc4KTl1TjEmZkZG
fEhGWVc0clZPc3UmUEtfX1gKeiRfMChDJjZTN0ZuPkdoNkswdmFmQDBwNXZjZzVqIXhEfi0ya3Ao
YERze3xYc3pTUHI+VUFiaEx6distNnZYQFZHCno2V2hiZyh7cyF2SFdJJWpJRnshezdtcyZ+QjFQ
Sll0VCs5RU0yPVRsUmBOemJldztwZDh4V1JRNChlRyttLXZ9fgp6ezdXX0lzWkdWeHc/Tktreygl
dDxGbilxM3Q2QUkpcUFJdlcxSX0oTzc4KmdxPlcyKEtsJjZCJGRUM1RiOHlqV3oKeih7N35EaT5g
JDUpKlVxQ3hnKmBvbnooOyMyMUdzfF5FSEY4IylJQHMkK214Zl9jTz9NQ2k/OTVeU2plTUkqRFdl
CnopODxGam4wfFRJVEJlRXVFeGZPKnBAS1ZHJkg2RDFJQ0psSlBVd0VSLXFnNVZKUEBUX1NDcHAp
Ykd1czlael5jXgp6bDlRM2VZUClscnpYZCo8OEVjdjlNc0V+VWJub09VWk08N1R2OGxmdFF7YWFs
c3JiQkg+ZGEtUiUtcFhgd0x3cCYKelo2NTdEKSRNJlU3WlJ3dXZqNHtXN3ZTciFmMEZHUllyN305
UGMwYUtAckg9clk+WT07ZGYpNlZVWnl1ZkFLcUAjCnpkc3c9K1puZztOSlk2clk5eyVOY19tfmlX
N3l+R0J8RiRpWTNLZlRMMGYyPnQ8bTFjRENfaHQ/YF4hdCZ7NEZUUgp6RF9ZSmRTWCZWYkVwR2FB
PnhzcEAkPlE8MVokRFFDbkB6MEUzek5DRFEwWmt4cmkrTDE1KVZKSSFzMlF4Ykd9WFIKejZMQl4l
eXkzWm84VWxXPkBGY0B9LXN1PUc5YkxxdUpRPXNVUFk9emo4TWtoY2N8VDI9X2NCPWVrN3BPcCNO
QTl2CnprJHVOdG9fSj5zRCl8ayYtfmowe1RAe3NeNkA7T0AzPjRwTmwwUG9TR1h5MSEjJDEkJXE9
VDlCQVJOO21AT1VvUwp6O0ZwQEQ/fEJjeXd9STk7YE44TXpedWpeKlg8cn4pSFF1OHwofGZ+flMq
QnlnaHtiPH1Ue3dZSEo9PUlLMV81WTQKelRtaiNUJDQjUTMxZUJaKTYzN1FGQTFVRlQzPTg2UldK
Xkg0YnBmbUxgRmwqRj1zPkt2a147IV8xWXEoRmRTaX5TCnpWOCp+VzdDUCF8JTBwQDhgM3EpWj0y
JWV4NjFQdUdmZENBZiRUWTN5Uj1gO1RhU2hqLUVAcVk9Tn4yKWZ6a2NIKAp6bzYjPUYxa08/eSVi
M2l4WF8kYiQ2dnhrfXJYXmxuOEA0JHVRfEEzLUVXOXlybk1jfTZrdjtnYmt4RyQqRk9Rb2wKemVX
PkIrWGg9dnUtek07VDREMU1HMjwpSzlPc0xzLU1vcy1XMiorRXNaej9VVUBeaUFPaT5NKSE3e1Rn
bTlCLTVLCnoofVcrVVgxRWBDIS1ybXd3JCF3fkE1OUFRRUBhR0UzNjwzZmtnQ0tNQkxOcCZ4dWAh
YXNKd1RBXjhrSSRCJTdTRwp6SzVhZDEzX3VoXnNRX1dqQHhscjBgJW5wQXdkfUglY3dyZlhJbGdu
RTlUJnJJRl8xNCVrb1RVQ1JCKzFXQ3s+KnwKemJCTm5mUnxNcEhGVFF9R2ReKGA9dT13SlFWJDUw
P0NZfnB2UVhISGxWWmxpbEZQPH5gSkYpT2V8Qn5RYyZaT0RyCno8Uip1Rjs/YElxO0Uhc05PQG1u
aT9jRkJATGo3aygxemo2QkFVMjwmTShPVkpaeTZXKS1mYTN3a2cpdU47TGQxVAp6YiVJYWZgZ357
dDNZOyokNUcoZ00oKWQjVStjcTFRP2xSTjVJMVd5cEJGOTVjZ2lpST83TjRvZnpKZHI2OSMxb0UK
elpFWWN6JDFWVU08b3gkdDBQVj5iI35oZzUwSzslSiRJPkpleiYqWm94a1NTV25GSyZ3M2lONyVK
SHBJeW52T01TCnp5NjF6KkpmTSVxUXk8WitEWik4MHBfKW1IPks7eGJnVXtVV19NOyFFISpXPk1Q
alAxfUtSTGN4dX5xZjVvTjtOdgp6SjVlUWJMTUxpRmQlREJvT1pUI05MNWVIelZWRmpYKz1PQkk3
N2skRTQ2Nk4jTiMoVjJte2s4N3hoVDErXyUwMHoKek5Ve3spI2JNKU4wOWVmQlpsSXJuYG5yZzJZ
QE14XkReNnZUVGxxS0ZZUXclU2RpSilxOHFXLWFtTnxjQkhQTVVgCnpefHI+QzVBKFd+KzZfYXZp
Vm1oRGppMEJ1O1F6a3g7KHBPY19vJXs/UGwyWFhLUGx9dUdTQzQoTHt+fCtzMUxyOAp6UDl8R3c/
VGh9QnBNWl9jQCM1aSNjWHdOMSlmcVNSdkBrYX1ATj8ofT9WakxFJE5pcl56QiglRUMraHBWZ2Rp
PjUKekFmUU50bHImMC1iaSkhVyh3JjBqRS1FRzlBfGNXeG96bHpGTkpeKG0laER+fkpuUWVnPWUr
K3M9YjY5ZSZZNSMmCno9QTQ8JntvSCUhLVlfaUtiTXx9fHE5eU19NTZLVlBZSXlReiNIdkc8N0ot
a2g7T3FvbW1QIWolcFBGb1BtZip+cQp6ez85JHZGJEFKcC1uYmF2QklmKG56Z254bXxFeWtgYWtW
YCtSfDM4Mkt8PVd1a0FYcGhtVTx0flEjR1N6I0s4TVMKem1oWWAtJUp3PUImX0srdil3TU90d0Zs
KEJ7VC1oemd1b28lSzhBOClRIU81WHtKa21PI0pte3ImY1FlLU4hZlJjCnpoNCkxXiphKW9jX0tO
S0ViUUZiNyolN0xBLTkyVVlGYnJ+PGd4VX5JezVAS0pQR357TDM1PU1UN3UzJUt2dFAldgp6SjxO
Z3ZyT0BieWpaQ0F0dipiakE0MURSI2FnKlEwTDRheDdVWDB2I2tMenlVSXNYbDQmelh6NG5BPUJq
U2FDYzkKempUYGQhK3pzdUJgU048cUdXT1JyaDFPfWt7UWhgM2dSbFh7KzA8eT5gQShAbzVBTypx
MnM3KC1Zczd9cT14OV88CnpFPX1sX0FKKXdeeVIjaHM9S2gjUSpuKj1Gb3dITD9ZTXRXSUw2b0s/
TlBue0RYPDRXKTZTc2JzQWBhZX1WM1lVawp6V29xe2w/eChKSHJhTjRNLSheUnNDXmAySHhLfkRU
XjJHdChYZk96dmN0aTs4Xk4jK3R6Ymo4MClwR0h5blhjb24KejgqZTV4eF92dzl5blZGMG48VllG
IXlYaVMqU0VIUlhoMDFjPihne3pPbVQoVDUyJEc9OXMzMUROUXJ+UFckMnV1CnphTkktZHVTb2RR
MmtrJkc5ak1nYTd8RkRDTEM5T0hgbTt+ZlRVSXB3Tm1SWT1FPVFQO2YlPzhCOH1Rd2s7cmxAUAp6
dWxsa2BRfVFIeFVLalZATCk3REN0cWVlKyg/cSYldCE8diFlYzBMcVVQTWVTaFo9ZHhHZEktZmhw
UXctVmMyRTcKejlROVUhO0p2Pn5oKDFsJk5xQEc4JD4hZiYoRmZKYTBWbXctemc4dWIpWGJXbWh3
I3d0YTdRTS1lRGYje1VwOUo0Cno4SHQ8O2peMyZoT3x2S3wjY0x4fHMhZTRQYEZ5c18kYDZaZnNA
bTJWbjsmIX4jMTU1dE10OUUqQU8jI0xDOFpgbAp6Pyl7OyE8Z25DVERFLXM5MzlHWUNWej1ATXo8
YU5vV0w1LVBxRmB2LUV8S2AtWmszQ0tvMkU5M2U5ZTxRK0MlcXMKemg3JldLRT00RDk9S1EjTzJW
SzBwQTlRbTIhenlNPE4yX347UlMkVDVicV5ge0ZuRlZ5NVZ+QioyanU4cWFCNU9KCnotMHJ3Tk4h
S0w+LVV4Vz9LYmp6IW8+MFJeQ2VBTWk0e2VuPGozODtTYiFNc3ZzbHJUb29zSzhGaD1GU35tYX4p
QAp6Rlo+JnNFTm12YStFWWM5WT9kPVBMS3MmMz4jMkZxZmFeKSNkdDJiND5YJGU0MFI0dzkwUHls
djxGRz1KV35QXzYKek5SV3VRLXUxeTF1fThSJFdvKFR2YmdEVzFmIUBXdGkqKiV4dEY+clBXWHhu
NTBfXmhvUD5LSW9PaDw+dXpLSW57Cno5ayV3cVV6dE1RbXo0ZkBgKWxKKUhpYmFZMWpIUXJxcTFB
clE1UDtHWC0rMCEzNXFyOWVidzBMN1I0cjd1UTt7JAp6MVZVYW5mZWtCSzI8KkF+U30jUEY1UT89
XkRBflohWjdaST9DNSZ3NGBnfWYzTj1IfHEjVSRtIUVoRF5yejdSN2sKenYkMTUwZndkYW5Ua0Im
Unk2SGhjIyM3eSUpWm0/PSE1JlImPiVkaWZsPDQlVFlBcH5McmgrYGFyUVkkLUlIZmZ7CnpeVnY0
T0xhXklTNzhuTGlTRyV1OzRka05Vcms1eFlKejlqT3hCXmJTKk81MTEjdkU0TFEtdllHOHNhTCtG
PUAmcQp6NjNVIysxWilpTllFPzh9JSQwNVp4QHdJRnJHNGI9b348R3YlMSZhU2ZGMHwqU3x5PHNp
cHA7aUV+ODQqaU5QWVoKemo9K01EaDBHUHM5P1QqQjJJdml6Q31NbW4tcn5ZV3RKWSM3PjB4WlAr
KGNaayNWYj5ZdXFYfiFvUzFAI0o4RXkxCnpuKkJnQlpSQEA9TGdYMH15MDRLQzljPGJRMjJMTn56
NSk3Vzkkayo9MVQhPGkkMk5HeWZSZEp1LShubSk9WV8xfAp6Syk7JjZueTkxT0UmJmxMNmFsR1V5
ITs7Umk0RXY5I2lGXyNifEk2O3s7VjVWWlYoVikocnV1JEV0K2dfOyNoNVUKelF5Yks2JVZQTlVH
Kz87cCFuOTFTIUFzOTM9MCh8TEZAc1phYWsxK0pjZzxJJT1ySG8+JXBNeWpINT9iRkoyNk0zCnp3
NzFjeDlrWUpRPW1oKmtRKiQ4QisoOUJAbk1GLUwqfk0xUW5xMCVzPTJwdHJCPnRZWjJmS3k3IXt2
U2EqeFQpewp6T3BiRSh0RUcmeEswenVLeDMtO01qMCgmJlE9fGZQbXpPe21ZPm5sT09KfHVhPWZe
THpDKyFZcllWfkZzKkdFMW8KelAqPGRRLVheazdOfD4kPF9JO0R9dSY/QnFFcDtlT09mciVoZ2Ep
WVk/NT00MmV5SFVmY3JobHRwQlpxSz1SMGBrCnpGVmRibCVQUiRhY2glaV87K31haCkmSUJiRjwq
NEw8YT1MIV5RMGUjVXZOMW9FfkIyNTw+WiQoKVJeSjZsfUBMWQp6MG1RS0teTFFJNFY+SzRsJiZP
KzlzfWtZJCFNYSE7aGxHMEF5QWNZZzVIOF50Sn12QGJQZHRXfT5URXRCKjNSfiEKejZ9aG5HJmVA
aTkoWEZuTGE9VkRoKG5Qdz1qR1ZkISgzKWUrbW81cyNvZDVrZHlzcX0jKisqU09QVnFVT0omNUR8
CnpYIzdhXmgxMnpnJDMqTCNZI2lIRl56OV5PRUF4bWQ3fmNWSF93JGhLO0VUUiQ7K3lvMWQpKGE4
S0UtRFQ9OVVJfQp6Z3JXe347VzspQmopS2drPUBNUXxvOD9TMmJWc0FDdzx9KmVuIVN+ZDV0ZzxN
THFAbjY9QjtMJFBVMGtHSFExJFgKem5yQlNpVVkwTUE7ME9mMWlXfm42TmwzbTZjMTNsS2hWVXco
XjFQc2hiUnZMbGBqbTRoeUM+P0RKfmM9fUBHO3k1Cnptc1BJdk8/JGA/bz5GIV5iQFJ6Z3dCVTJk
bklmV2cpUTNUXnArXy1OQyFoT3pESkdgaDw1cns9YWFZcTU9WU03YAp6TEtVaGpGfE5eO3VmSi03
UzY/Y1pfcV4zKStrKXdqOzxuRTFJZDZSNmV6OW1ZZilwTT47RXB5aUlDTHI/NExtZGYKeiVVcyh2
UlJfPVApQElqcWlsUTd8JihELTg/NV9LeUM5LSQjQG11O0RHMyF+aXF0S2l+KSlxfk1gZTJpU0k9
KiopCnpkcEIwZj5mZXI1PUR4Iyp4TDk1I0xYVkZvSzUhMUxQdXFoayh7Nkg/O35vI0JpOVpeTypP
Kk5BS1JhPTB3SjBDTQp6MHY2ZmR3WTMlVDchTDBiLXomVlY4RlVMeV96S1o9R0wxVyRgQHA2d2dJ
cWZhWis2eSo4RzxHP1VXTTB+SWFzT2IKejxeRG4yQCk/aShEMChwWUV4cGtQbyNDQks/UistVXt4
X0ZYR25NazQmdUJjUDd0fCl8aGkqQitDVHpYNmhrYFhOCnpld2JPfSRXdlZZZTVgNERGeDtjO1NN
OVIrI2I0fk0oTSQ9SEMzUWk5JnV9cllXZlZXbHhsXj4mc2luMlJudDYkVwp6XldmRHNxaWw7V0h5
NExuZn51Jj12fVBgalFyZ1k4T0xZdXRtZ0FtRUBSdlcqUTckXlFnPldCN255d0RwYFNiPSoKektp
WDBLZypDND1Ve0dBXiRPREFjbW4+ZD9ZZT5YNGJDWmJWT1MlNFhIS3h7NGtpZy04UV5YfUBWRE1E
fUp1dH5ECnpeVVo4czJsUW5kb2xFe3EjRiR0QGlEdWVAPWZiVTc4NT1mNGR+JVJYUExBTGhDfTY/
UHMlYlRzeT9jJnxBJmU+Wgp6JEdCQV5uO3dVZ24kY3t0dn44U1gwKC19MDtjcVd1PDdDVzw2e24r
S29KX2grUmNPZD84R1BVO2lDfmFnTjNFMGQKekJ4elpBUTJ9JEQqTEhXbXkwdDh6Y2hnYWNedVNV
O3NIfnRSTkBeSCs9WCt5ezZmVztpYz48YGIkeytWfjhudTJnCnp5Ri0yUWcqTk4hbSpFMjBpJj5F
WiZERFk0WUdLNnpSQEtHKSZYQVRwY1RGMiVBbWFLPms5NGJSN3RaYTRPTkhDNQp6TTFoJERacmYz
MGB0ZXgpYmxra2RKPTcxclV4ck0zWT9HVEo5Iz5+aDxoUHsrYGtrOStqMmBVc2JUME1BVGJpd3sK
emZ4RVhRMWNHVDtfWnw7fGtIX1lXaDJ9RkhVV3pnWFVIK0xnWUNreEx3PWRxUnAjPHRvP1hRMWMy
dUtTSE89TyV6Cno+aURkNUdQU055ek8pZXNGTVBgKFk8aHR3XlVQcm5Fc1BGJlIjUlNxUCtOUWhj
Z2pJb3pRJnMoN1BqOG04K0IhfQp6bWFGS3QqdVA7ISNRIzlmOHNCZFkqVWoqSXRLUHFzOFlCaDJn
THBacF5+WEx1SXlIUWopMmAlWGwranM0LUBpYU8Kem99X2k8eGp6UGBwdncpd19xc3V5dDtHYTZg
Zy02NntNY352KHh2JUhPODMteXJEfFpVYjskbmV7WnpSJHs3JjJJCnpBekk3KnI0ZSgtcHB5Umhn
I3lpZHo2USZ8YFVgT04pWCZJdHBfJG4pUkdSd0wmOWkkYGw3MUdGYUBUJUZoWj1OZQp6QiMlK2A2
KWpEem1JR3JaT2J9Mz4qQnN0KEZtS3FzallQK0JoKGs/S3hRU2dJSVUoel9lRGFWSCR1ZSV9JkVj
IUkKenhkYSVBZ1loZHBQc2JofXgzbjFXP1dzT1hffUFheS1TblJjaj5DQ2RCWlZXe1BtOWxEMFJ1
KVVANUREQEdQSDs1Cno2RzxqLTYmIUctSkEoWTZGezd0SlZXRzRAJGRlSCF0MEt3czx3SkRjdlNq
WWc2PjtWaSRCazhCazJ0cjhvZXtyQQp6dnlmeHdmXldmeiluWUFTWnZTQyReMjZISUswWVBmJjV+
NT9NVW4/YF8hfH19bWQ+JmFnNDBHJXEtYWBuVig1dz4KenM/UH5DI2YzbEtCKz5HUDkyaEMyQntv
WSRkcjY1RWghSTw+TFR7RVVyNSVwS3ZVNUpDV19SZUFMZTs7WSNibylgCnokOStIVThMfSVLXzQ3
ejZaO2h8V2N6VDt7RWs7KXNhNmp5PHAmLXQ7TyF9bXFYUz5vfWA5KSM8SD04TERlTSlQbAp6I2s8
dXJxbHU3bGFhWD9ASTk1RCFPZGFWNTdJS15pSX57eEFoQVVJKClAUSFkeVJ+RngqZTtkJGJ7QDMj
KjtHQ0oKenJmQyhmKXwkN3slTEFTb1JBKjZiNzRNTyQ4N1llWVg7U2hEUEFYfCZMRm9RYm1KbSVM
anVWQmpackdDO0FmfHp5CnpkayVqWU19ISpHKFRyXmQhbjFsQ3pOLXFhc3xVOGxvY0ljWDhNPkZ9
MV44fTZrb2xfeSVvemNfNWUxOXBhPGlGQQp6SjF9fDUyemdkQXs0KVk7bWo2MTZBXjEzMEFeJmRf
Q3JBRkR6KUZEMGxmbiRedT5LUnNhTX1JfEF5M0h1M0FjQTQKei1tNT1ZSWA2OVA+WUtoeHNAVU0x
M3V2YUV2NSsxZlY8IUQraTQwTTkrfXlVU2Z7V0EjUHR4UWBCKW5aNHRnPTB0CnpLUyFxdGJ2YCF4
Q2dDZFBBbkBZZjR6alVDI1ktcj9wOT5iT1IrWCpVN0tRQmJ0aWBfbWgqPXs3PnhBcDhXWnFEfQp6
bSNkU0krWFI8bTh7ejdpITdzbjRlQWQ2KWtrOW15PjZpXzUxZU1EaFN8eFkka2BiNSY0NDVXNVk2
ej4qd3IlQlIKejlEVGlofDcrOSM0YWF9eT5jdj5zP2M+U1FHdTh7YnhnKD9SaE0wcFd2Rk0hWVI9
QUxvRkxOS0RBQ2xwSmw8TFRFCnp2bTA1KjFUKipEc3swY1JTJCphcyVfKz82di1EQjNrajIwcVB0
fGwjPzc7YlQ/PGVET0tKfXRrY1paJGthYH0qdwp6KFU1THhneF4mLXJ8aksrN3lCYlZ1IT0oLXJ0
aUk5az9iYzVoTX0zbzB6MGxsaGMkQClfXnlzfW5lPChwQiEpNFUKej54ZUFiSlJmU1M7bD42VSVJ
SD16ZVZmblVyNUFzfShwdChPN3UhZT0zMztkdnRQUGFyPlF6aWsmQTZ1WSFCMyk0CnpNPGR1bUx7
MTdlWWRiYG41fX01cWpUSV8pMXVgMFApUVJRfWNYczl+VXAzJGFtQSZnYjdaK0tvPU18Zko3emZO
PAp6cH1mRTFnMHt3fV54VFZ1U0J3fCQ4SWJBVU99U1Y3b0NJaT81dT9UfnB0ZUtidnZlajJkITw2
OyQ5cnZIQlkpeyoKek1GaSVuTjI7QmN4K0N4UF9zVyVtOyVATSN6MTtfbXs5S2tIZ3o+JE1BQFU4
d1JRU0xFNit9Kyo9MGx0cVpkRXEyCnpMMj96NVRQJWl+TCQ2aHFjMmp8I2BsI2ZUcT5sZWIpUUJl
SSN1MlNUYndzKXdGcVV+QXJuPz98ejlaS1hDbUNiYgp6O1B8SzA1PSZ7WHJQaHQ8TnhvOFpnWVVa
RCEhKi1kOD5pfDxTcndOWTs2d2hReVFuaG0payF0TkZZNUIwMU0kNG4KenlIZVFETiZ9SkNZQkll
KjdmWEsmIU1neGx0c35GQj53K35+VFckb19VNmtqdF9ofXcwdDYra05VVEUoVHQ8YU9ECnpKRmwl
S3hiIVRRa1p+OyVJI2Q1cXl1fj88Q0QoKyNyMWp8Xjt8I19PbVNOaVQwaiVfUExkdlMtJEVqSER2
blcoTAp6SX0hUHpxTT9mcXFOeHxfcGhJJnxnTU9TbURfSDw/RUJiSWR0V1dlMXtqdCNGJX4hQk5F
eml9P204Zm1TKG57JEgKejhCYE1aUnkpP1djenFeTCRpYz1iKllkPTttcUw1JXhYTGteaW1jbXVr
V01IJSE1RE1aU19NYz4rLSl4XnF+SlVjCnpQRz1hakp8RXt9OX49e2QlWGBoVDlTSE1mTy1+WGh3
dUowe05vbVFvO1ZudTFUX3NMVF9MNk9gXlYpeyQkKT5GWQp6bSF6PzN1ekc0eWcwaFBIU0huXktx
P2hNN0dqcU9QczZKaUkoeGhRfm9uUHpVJXJKPXw5MkdJRDdCaVFiWmkqSm4Kekh8Qjt1MjVWbFNB
Y3JxKGs2RkZwZiRHYH5XaE1jWVMrNE5+XkBWKTRxeTRnRkhkXlRgdDV9amElYjxIQ2N0RmY1Cnpy
d19zSV49e21DYTt7eFhHcFYpeXQ8ZDREN21hc2IoYUMrUUt4NSNUSUJDc3hlJml7cDJFKCZNOW4q
SzVgMTRQNwp6M2d6NjcoUSlJMW13cnJ5NmktMnFxaisrI3NjJjtoMmM0eC1eVG9EOVNvbzlkemVC
YEhuM09GZkZwdlU7RmdCN30KekpIfTNkRHN7IXQrK3BpMFhMU1JJSGR3SUpuUj1CSChBZzswcFgo
XyFae35TNmRFMitFQkxmWjZjM09qcXNxdSM4CnpEUjFVemUrYE9mcGdDc081WUVVemZkb1NCUnRP
SyprN2t2aDNET2pNSTlWK3NgKlZZbTt3NFFAT0lZRj94TnIrLQp6bDkxXyYrJUchVmp+YkxTRX0l
RVhHRUQjcWZxMV97P3kkd3wpO3tafXQ0d1AmPElRVzdQU3F4dFJzIVQ5cjNEY28KejxvRm13Slo8
O2ZUKnUwP0A3WGRwNW1pcGo4Wmw8MEZ8RG1Ca359TFdmU0U+XkI3RyYzLT8odk5sRmdEayMrbWBU
Cnp7PG5yLVZ0YnNaaTFMKX1ZemJ1b18hVkF2LUR8N3tKPmxsQi15bWpwbWo4KGpNNmE/ZTNmQURX
PFZvbWk/PXo3TAp6WlRSR25ndkVqWSt0Z0Y9TTJ7T1NmYTUzZVM0d3NfNyElcTYydkJ8cylCYjgh
bDB0eUNeNU08cUtQLS1JN1FFNVQKeiY+K1d9bk07cS1qa0R1Sil2VlgoUHU2YEY3d3Q+SWw8aVJI
dVdTJW93aEp+VTBCaz1YMipjRygpVlh0WTk3WlUmCnpBRmhxMiMzPCpEN0smYHlhTGZGYjQobHJ2
cCpPSENYN0M7U0JaVUF9SV84ej47SHB0eD1XcjRXLWhKaClzMU1+IQp6c2hVdiFxbkZMIUJuMmYm
STQhMEkocnxWKEotZTRiblN0YX1FNzw9TVZfOyM/VkBDfFQ2YTl4YzsyRS1SQDMoS2gKekl3WnJ4
LUwkKmlNYi0ra1NtbjN8JFB6MTtKcGVpXkUqJG1aXmF7OEk9KyQ7U3dxMz5iWlQkOEkhNUUoOEc8
Sz96Cnp3X1d1ZVU/bTloalpHPm4kJENGempTVytwJih7LWFVJEtYMVlVRWpEX15RKCEoPUxMK1ZC
O2w1azJjaFUjQ2dOMAp6WlkrVEpVaHxSNTcrb0ZEc1BSamYhYW9mbkt+M018SHFjUkttRXB1ST4z
aU1WLWg0R1lVbnEoMmAwP3g8RFNtSksKemNjOXA3QU9eakstZ2ZYa1AmenZ4ZiRUVT5pNmpPLXc3
WjVWekpfVkE0fTRPPE8/MUFDO0NnY3B4VG5YdXE0X31sCno5YElVSFhvZk9tP0dIX1FOM3BiWEB1
aEtvNVhYZGZwKjlyLTcyezZxeDdjbm5WVVZ5b2J3OXl+cSope2lBMFFJPwp6S25iUzZ8OUYpeT4o
OEZ9PSlPaTt6NEtOM2phbSshezdvTVY7WWtAJTUjeCN5Slh0ZHslaDBSJip+TEtGNVo3S0YKelhC
XjNhTiEob08jQ05TaG1oQVF2eHwoKXcqN299WUxeX280MXg9bzI4YXhrPl4tN3wtVGlsK2prMTZk
Rj9gWVFYCnppX3QocFRaQlFYUiRZe0NmKjQ/cFNQX2MmYHszVU5fVGs/KXNjWklXRjR7aStAPyQ0
X1NrcktrX2Vxdz1sfnluWgp6SnhudlpwelNjP3t2WWhaIURsPztDI1JCd2xhQVEmMC1vOVJrKU9j
TihZUEt2aCt3YmhIbzVuK2thKXk5dV5VI3oKelFBQkBud1ZgaXN4O3A1RzNzblIweCppZFl6SHtT
O2pYNWZMZzx+Z19IZF40eWxNNXp7QmxXPWdSWlpgP2BCMmlCCnoqTiMjNUxMVigkKXF5Y1JNMnZh
a15IKjxvM25uMWV5RE1FZU1GIVhocFp+dFdlKlg8Y0R1RXB2Z3hITUxVbn5oQwp6ZG5HV2J6fjtF
IXFhYSU3WkNMKCR7PEhsMUYjfWh3RFhjVUVIZz0lb0UyMmZ3enp8eFByJmVVSmNTNUYwUHAqaCQK
ejZtZVR8I2x+QTVkTUE1ell1Yz1gQ2pYaj9ITV9GenR6QXF0NEdHS0ZGU1hzP1laZD5VXyo1akVA
eUB4d0c9XnJ2CnpgVlBaYHVGV2ZAYn4qa31nV3B0NCtQZj4wKlImSVNgT0A+ZHhSSm9ITUFKejtj
fDwocTgrfFZwRGBWQlckJUxaewp6Iy1idEFRI1p9LTw0QT1NPHx0Yll0Rm9yMThIZHxod0txcyFo
M2JecnJ8azIzNk5YXmhAK24jcT1gWCpeSzJUZUUKekRDcGYhN3FCJT5yQSg5PiU3Zll8ek8rODkz
IVdRbDlkWnc1ZHJgJC1AP2ZWO1goM0hoMSUoQi1XVGQzc08zSVg7Cno5YSlUWSZDMlBwRHd2QGB4
PEE0dXtiPlhyQ15iOG4tT3Y5Yk0zTUg1SjFAe34zWiskaGE5e1AzeDUwUDVpSX1RJgp6eSUzWm8j
KUlzcDxhfFNjZTF5U1l5cSg+Q1k/JE1LcmE5Nj50NUtiPkU/e0huZTNZVTxnRnFVJihJPkQxRVR1
R2cKekVNQTYkTFpDSHJlNEdgPTwkX3BRX2stUzA2ITR2fFRqZSZQI0w/ZmNiMkFIPXI5RVVAbD9o
PzFKMWtVNUI5PzFTCnpUcGslYXtQQ31xNE1zbnleeytIRWR7dn4mbkBKNVM4c1QoSmx4dUROczVf
Sk1RTzNhfT5uYWxRc0BCajJ4OXp+Xgp6QiRiN3QtVjtfYlVaJnxieCZvZ3x2TEtodTt9fSZ0Rk9W
d2R7Kn5zaj1KPUlhejVKKlVjQSU4ZT8/TXY9SEEpM3cKemU0Njw1UmNHeT5eMChgRD4wSDs0XyRl
SU4hdzVwPU9CWT54S18qeVU2KnFKfj8+JnBGJFcrWn5YZXghb00kRmUxCnpjbCtaMEc+PzIlNEk1
fFFJeDxVeHdZMkRNMlpDbFFLcmV4ZTlfbnIjMyh2TWM4LXcxaXZ2S31DKEdubHJQLSVHeAp6bXVI
PnhDR2clS0ZQN2djSXgzSzF1WE5KdWFmfWBPNEhiSm1tZ2NoZXtTSmVHdGFBbiFlfHVfOTNZVjE0
QiQjdHAKelo5UUNXfEo2JFBlfCVOfnhUMShFbVBzbUIkYkYlKGA0Z2o4RmNffVE2MFR6NypFJGU4
MTcwQCVMQDtJfmpAUUQoCnojX2B9RSZ6PWpxJjFrN2R2UE8pdE5NLSZ8VWhpXmZ5d3o7Kz8+YFRa
USsxJWpPdF99SGNId0AmM3BLbXNkISVBOQp6ZE1Me350fT9iaT10MFdveSt5aDV6dHt+dzNJMEVj
LSglXmVtaX57Oyk4RGRtQ2pIPzM5USRlcHolKjRRT352dlQKSHVpeVU8O15XTzsKCmxpdGVyYWwg
MApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9pbWcvcHVsbHJl
cXVlc3QucG5nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ltZy9wdWxscmVxdWVzdC5wbmcKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNGFmMjkzYjIxMzc3MDc4ZGU2NDhmODJlMTJjN2I1ZDI3NDVkYTgzNwpHSVQgYmluYXJ5
IHBhdGNoCmxpdGVyYWwgMTcwMzUKemNtYmB1MXlFZDMoPjYlWjAwOXpRNjVRUC1TT1VRPHhKeigl
ODlXZiZlUTwoMTFoKVlLMWgqZ3EzX2lISz5yUnNRCnotTDAqIXcpV3FAX0VmPlNiTFk7dnJ+Q0F8
e3EpbSkhI151WlZXMUpDIU5Je3skVmgpdWZyQ1MhaGFHcG5nb3BpUwp6JCNxKFJidVYwMHF7UUg9
I0BfRDJKfEozclJRTCE3Un0raT1AQzZDPjhQIW8qK1hXNXx2Kip2PmkrK2FeUWBrdkQKelJ8emR3
UlI/b2RrMXgoPGFFQFFCPnxJJnkmME5YM1M9bXs2JXpgPTE7TlUoISRiOTshMX41M3ghZzlweCYp
Uk9YCnp1NGVSVCZ+NEQmRSptIVJXYiVNNDNAc2xtRWs4e2hzPUZwZlgwXndTTi1EWkxzV2N7SHhN
S18yZSRHQCk9dFgtaQp6ejZ6MEtldCFFQUheWk1NQFhkM083LUVlWDNQbilSWiRraCk7Pih+UEd8
V00tP196QGgzNkRwIXtebXZBTUhiNzYKeiVWZ0Iyazd+MSlNUXozUnZ6PHE/PWYxK3tsQVU7ZVdQ
eVhUZGVNI2tyemNuVjBDQDR8cGFBdEgrbkBkYF9ZM0lYCnpPWDZ0Qkw0UXViTyhGJm57T0xjV2U/
OXI1RUk0VkwqOUwhakk0ayk3NHVYaFFlTj8tTnt6KDVhQD96NiRpUEt9QQp6KDNWQkZeQjUkUWl1
X2BtUFJxNVJEZmg+Qno0ejM1PGU7UnReP0FoLSZXRm0tYiFzR3VAXnoqT01JfjBOVEZLcW8KelUt
elA9XiFuPzlSb0hHU2NOdil9I0VBa25WLS1yaDdpbkooclQ1ZVg9MDUtNiYoUC10OV89UzclWlEh
b3B0MUZLCnpOWUZpNERTSGJDVzJEQ2FZRzNRXiVVal5NPyRAckVgNlBsNXlSbENGcG98UlZYPHAq
ezNgXj8wTXQqNT1Kaz9iWgp6dDtGdEpvX0REejFwPEVTajk9JnFJfHI+d203Vm5TTSppTio+UUgp
MTRXZzQ7PVhpUUY2REF+Mlg/MiE8M3tiZTMKejs/JEhwdUsjK1hCMiZNRXRHRjBXa1RuQU5NMkNe
e29tLTZxPkY2NXwhJnt4SDBNOEhVPndIeiU/KkhiR0glbGAjCnphO0dNcmxRdDckcytlMyNxV1cq
RmROVVdaMyZxR14hTHZ1e3dHVnxwM19SWGVldVc3WGxpSiFwXnIkejImYDcrQAp6PlhGJVUzdnhM
UG5mdUp5biRFSXtrNVRVP25JaXx3Zz1FYU4yMUgxTklAeSU2SkdlVjVlM1BVJnktM2krMXlXdWgK
elozK2VSXm1LIV9tI0o2cXFaKVBYaXIkflFwV30pfFE3PFoyMnIwK2RuemNaYk9wN1dedF43UD9J
PS0tYk42O3FxCnp2NVlRd197QiolS2Q4TCo9QntBPHEwP0lieX5yYk96RiQ4KkUzcysoYmpRLSRH
bDFGYSVhdCsySzUpU1RQbmVpPgp6S3MjMFNIfkllTXt5V3Z9V0B3U0pIXk9eYFJZNjFfMXp2Wmtr
KjZpSmB2R30jbT8zaEkhOFRiNnt1X190bWtOJkwKenRtVyNhMTgpYXxMTkd4KkB0Km0xOUw/NzND
eEFEKT85aUUoMzxMPXAxfnd+dHhefTNJZkRFaGRvR3BoZWN9Xi1eCno/N0gzIT9oJHdNU0dgaHtK
KHd+YiF1e1o9bkomKkVweHhFPEJ5R2BSYWtjZ2ZgbzZvRyUlc1VmWEZVI2pLSCtqbgp6YnNmc1Rn
YFopKmA7KXFSb1lYeDxfX3Q9WUlUMiNFKTJDUDJEPWhjY0g2cCkjWTJQbyQkUFFRZkBNRWNIbXtt
bWoKenllUDclVnZrKnpLO3w4VnNQQHBgZWA+UXBnTm1hd3skQS0jMGs9cyttSn1eKlhCODNhe1hF
bkN7MDc3XlIpWE9rCnotSURNZnZVREVzUz1YRn4pfEVvVDhucmVkbmpUVn15SlhlfGo3WVNnS3Qq
Ukd3IWhfUnpYKj9UUDVHXjc1bXxWfAp6YDV4YGkjPmBoX3R+Q31qNkZ2R0hKJSNRQDxpKlUhbCtt
KFJ3eSglNytGXiUjZTYoWWctb3hBQnI4UTFBbWU8P0UKejZYU3xuSWBuO3V0R0NeU052biZQKlNv
QU5nSDFAXmwwRUFVJEkxJWM1QVR3empwNFlgb3UyaiNxbitTOUtNWllRCnopJXRkRzRINC1+RUN2
PF5McThVU2stbXVWS2RSei1iOTFpO3ArWD9GaDw+U2N4KTw+MFFpXl9zbVJDbW1fVXshTQp6N28w
TTdWbEdwdkUpTChWajc9REE0KU5MdT1kWCgqSn02eDZpampefCN8NkZmSGRoc0UzZ014KEBEPUUr
Mm4pYkkKenlEfiFYVHd6VWZMJkV6Xzl5NVE8Zi1mJVREcDMrN09NR0N+JGU+P3o+SGleN3tRPDxo
N3J3TF5mM0VBWWxZI2UpCnpfPSMjTThBTGtITUkqOTR2e34+PU1CeXB6O3BMOShiRSU5PVpHXipQ
SmFYJm04N1dTN295aEVJJVVCY0h4XjRCKgp6VDYxNlN2KHp7XlJ1PHdqJVApc1FnRVU3cT04VzlC
ajJTKVZZZkFBPEVRTGUyU15KQ29JP2dIMjxuVmlVdSFLK1QKekRENkF0ekxEMXc2JElfP2o5Uzt3
cDFabW1XPm95YnVeQzZLbl99SjxKP0t8eHZ4cHtZczZPZ18mbU95filMQzxoCnpFPkJwNkVaeVhP
KjJRUDF4eTlyTWAhKFNFR3FzaThZUDx0a3AhVmp9aDVyZiRhPDxlJk1pUW5OaT5QZCZPLTtWJgp6
bEtaVUxzS3R9X1FlQEdUQWJkSEklSFdWcTc+OG59bXAqNUpoUnUkNkAwSztHOzQzfm0yezQ2RkdW
aDRtb3FUQW0KenhBZyYrKFpyQm1Zc2k/dm1UPUBARTxhTzFUekZXVT5fU1FUYUFMSmowSzwlaS1w
XzslUlcoaU1iTWxXaHJXVjBACnojZERRTFBSUlhMNDFkP08wNU5saFpKa082YFpMOUFCVGshP1F1
SXAkUDFjJEJXanNGVnhgcm5IYlg/NGg/MTA5fgp6WnV2N09kZlp4aDdvRVhLXn1nX1ZHd1d2Klpm
eXhJc31vTTh1JSU1T3tWfV9rTml0X200aSN9VkhmLSFpP3B1cXEKei1mRV9BTVlNJkk/PmdAIVlH
anE5Kkljc3ZNZilISTs5alF+YWlAc2d7UWY8KUo3dEU5PDgld0Y9S154Pzh8P2AxCnpxKmxFakhL
cHo7NTxmcm5HZHFIWU1qaURBWkxyQ0R6R15fS1VKXjVfYyhKZnFWWmBhQEcyNiZQSHFvWmQ+IXs3
RAp6X0VAIzhBLW1ofmhwdnJtSHNNZlc3YTkoOGp9QCVvPGhZWXl0PHY2RSpfN3s1XmRqSFl7S3Nn
cUBlUW1VMVUkemEKeis/M3V7U2hPIX52d2pAVz5JTj1XUGdkSHBobVF4JTdgN2ttaHN+NlotOUQ3
ZFVZJE1vQCpMeypFbSVIUT0ySWlwCnpmQSFETVp7fk5mKFFiQjhXNzJXSzdKT31YZGx4PkFtZCty
Yj0oK1RYVUxzUCUxfHUkRVJ5Nm51X1ZDaj9HNzYxJgp6cCVZb015SHR0Nlc3Z0tSNzVYY15tT3F4
RENiSismSig+S3dobVc5P2N1bFdhcTRAOUR0QXEreSQ2fngrMkh5OW8KemdUSj9OK3N1N1g3Vyh1
ZnQ9cFNhUTBmKUR0ZjllLVlfTi1Ha0ZfIyFzVntMNz4taHoySkZxLX00eERLUClwV2psCnpjJCly
cl5ieD05czZfR3t6OCZmYEU/Y31MKCRyeElfZSsxXkxOWW9VYGQldkkmPkNwP2N6fTQ/e182d3RF
WWdLWgp6PUFtMWdSQDBLaCtkSDJOeX5tUUlRRm1ZU3pzcztfUUZ7MSQ3ND5YQ0xpWUVrP1kmUiEr
T2k1eU1TfE9pODJIRkoKektUKz0rMHx+JXl7UnomZ15LbWEtMHtxQEQ1SCRSOVJgfE1ublhffm1s
U0kjZ299UkdRX0xgflRNdGt0blNNISVaCnoofT41cUBCJElOPEJjIWcySzhVWVBUZCY9UnFxbUZ0
KUs4QCExfnR5cn19S1F2eXwtXl9oLUhCUEo0aHVSRHpyJQp6bTRyWkRfQm92bmFCRUtHQklhITdN
KlhpUFM7MzUxKyk2fHxubEFtZjZzbkpeOGAtJUtSdVZsNE9LP2FAN2JIXnIKelJgKXUmJC1Te28t
SiNnYGxqV249Vk1iMXJKQyM+fHU/c2hAdUFhdHdNMiQ2dlNfZ3UmbiFabDV5TTVNQzslWiVBCnor
bENAck1qIV4yeVI8NF4jYGc7NCFnfGZgTnRKRyZKfHchMDdgUE1kbCtCYnthZjk0QXZWZTYkKWtZ
ckw7QCVGPwp6X1RMc1MtKyVaJSh8cmE9OCE4QGI+ViMpXkg7WkhOaWhrZEJfYyVgcSs7OUV7OHR7
dU1abnIxY0ZEZlp6NmRARFYKemRAJSVSP0IjVmdfKyNkYTc3VDg/ZkpnJHVIRW15XnEyKUlfPyh7
c0shJDBiKjFxfntrPFVTRmo0YTV0eU1OYzcwCnpAa2xqRSpmY3NNPGQkTXp5M3pxRElfPDxoSmEq
TiFPfjRoSmZ2RE0zb0J0fWdiZWlyclRCPSNXWFRZcj1qK3ptVAp6PHFDY0NUJj5SX2Z0UVM8Umpa
c0Utd0taKCQ+Jl4kWUBQPip0WGJCPXFRMHooNEA7UDk9eWhjPWt3JXI0amlORDEKek9xISZxUnBs
bzJrMlEoPiNzOFlHQmc5JkJffTtpPlFoakleIXZJa2lWSjMldmJFM3dwQTFwdXwhTlNWKTR4U059
Cno2VmUzXm8rPE9SYEZiPjIhUW8lMHhuKWttOCtDNGpFTXMtNXk4QTEkYCtVUF9eb3gkTkVSZi1t
PzY7fD9EX2RMVQp6WnJNeSN4TTFHKkY2Q2NDdDc+RClRUFpEb3pJYkJhYjMqYGtPbU0yMiRaNXRe
JTJNU2spanlpYGBycU10VSFocjYKekAyJWJSPUxZWlJfc3syRDxnNCY1VCY1TDFDSSVqU3VfKDIm
N1VUdjVjMWU4MSR0dVVXRy11JHMle2E8anBZNm15CnpwdnA+Mj9ENlUhQTFAUFZXem5oZ08/PVMl
by09a08hQlY0VlFiOWQpUH59blokdHRaZ3A3QTRyYVVzNGFRKDdJNQp6Yyt+a1ZHbGZLVldHdktZ
NklyekwtQkVqXmIxQF58azZYQzdfaTBfbnhDRlFacHxNRVR7XjdePEwjWW5NTUMxSDQKejl4OE9H
MylBUU5eZklUN0FMZn1BQ28/eXEkb3hmWFA8NjZNdzduWkRjJiNUWXo9T1ZoIXtIdSg2dU1UfmU/
WVd7Cno7b2hgUnEyIyNPelV+P21Wak1Ydml9V2xUQ19rZ3o4bi0mYGdwMGR6elghOT08K1p1LThG
bH5gRjdDaktGLTUmPgp6QWFHciswJW9BRFg+SEh6QiR2ZEVLPmFhU2IoYDU9PyRhVHEtJjYmcEk4
PUpwM3hZJXhoYHMhZ2pDT3t8UlVkNG8Kell4WFVJKTNRJF4jQChFKl45e1gpU3p7ZERtaHI8KGE9
bTNSJig8Sz9HdiFKTnQrd0FPO0RjUSNyYzM8cDNwI3dWCno2WUBrQWVuSG09NFFuKlpXTTlSVFc7
MDI0JnJ6NHNTX3VpQnsqXyk8RV9GZWVyfUs8SDk4Tkg0PyRiaERLdT0hKwp6a0pUI2NfQW5+IWgq
ZUNsU3JrcndkPCExWG1XbGA+eGNxaDBpfCNUNUpUO15aR1plNlZxPVlJcV99dil+XzRVJmwKelVN
MEw0ZCkkfiV6N3UrLVE4ak1SPn1yRzE+Q05vdE1rencpR2M7TyN1KGQ/KCQ0PWlMO05CNkZ2YXRZ
ZmomdDlZCnpLJWY1SEQmfmg8REZyVkhhVW1NSkw1MU5JajxCbklCMEYwRk9ObiEoKT45OXJDeClY
XytiXio7MG1CO29ZQlNjUwp6MyZoVUZePWVtPDhpPUJDTl58I0BHNSpfQF5vQHdGPkJwfk12T194
MmlQbXJxdEswTnVQSHk/T3Nzfj5fRXE+ZU4Kej1IKzhDNUFFb2ZaNTt0V2B6ZElnVWU/WVNXP0xW
IVpyaWBeb1FzcmZnPWtTMHMzeTdpXmQmRklwISVpPC12Nj1QCnpKMCpxbU0wS0QyKnBxUiM+bypk
S3gpUUZMUnAqRU97MG9CN1BDSjcxc1R8WCVZN0NLQj1nRnYkWTlFbDYjNkJzeQp6R31AMVRwMHot
Y0NGYiYqUzVuOX1OdUomUWNgaWxGRihOYE8/SHN5PW5kX29qc3I1ZlorI2R2Sj5uPkRBUGQjZXgK
elJTVntKX3U7YGQlKDFGK2FXKjUjS1ZBXjl4MFBwXjtqQVFXaF8yUWZYai0yKENBNFZZWngteUg3
RDdHXzFyYjw5CnpUc2h4OTthcXpRemluMlhKI0poY2c/Y0hZZjIlfmJZSztzfTdSJVB9dEcoVkZ1
JU17Rk0hO3hIKl5EZ0tOcWFIMAp6QWd7TXd6OVp3dTY4M3syRl5vfD1ZYVpTRHJwQFhHY1J3bn1O
TDFpQlJvaF9oYX4wTm1xeXxlZFVzYnR8UjAzKjAKemhOQEhCKyRmdW5WVTFxM2RwdChhPXc+Q3hM
RVRYMlZPeFh8UDhBRUhrNV8rX2k8Kzcpe1FGVj1tcDImKUU1V2F4CnptU28kcys4bmo+K3BFTCZH
PjI4KnNPQVphKX09K2hIUVJRTiNpPCs/ZFVVWF80VCVNPUEzMXdsKjRCQ08pdSY5awp6aVRtN1lq
R1lvYEJHYntGU2U9Yi1vVGowaFh4PUYqdStqPE1rZCVWQDx5YVY1WFd4aUM1KDxnZjY+KHVjaWg2
eSEKellEPzZUbj1gUz5HclI/R2o4REZoM0NhPTlSeiR5WjY9YlYlIyZGJUQ/RDxxMldmPH13eT1S
JF9HVjhmQll9Tjk7CnpCa1hrQy1NVlIrZHRee0twIVUpRzRqQTI+ZlNiS2gheG4wQGZobTFFMzNu
RVRHLXc5IThxK0V8dD07ZG5kQyRYagp6MGZvcTtySUteJWRMNGt4N2htPCRFWHFUMiNEQ2EtKT9E
cy1SbiU1TVpnZUswTnZyc2lgSkZkPlBSKXElKVFlQ24KemchUksqP1ZxbSozfmJGTj89TX1CZXJt
MkN4QHF8LWIjTD9ITnN+TmUkTTNmQnIzU2JIblhod3ZDWHhyP3kzdDRBCnpaWFYoSGt3TUtBZC1x
ck1NQl5pUDFgbjdnLUx7dnt6PiR4MCYtdEduN3pob147VTx3Zz99Nj1lUG8wIVRBeldKOAp6dExN
Nll1NGM4YzIlSFE0Tit+PWtCZ0xzKilqWSZHQy1gcXt7X2A4Y3w5Zz1CS08rNCVhKTFWSWs9QkJW
WkdBY2YKenlNQ0tVKjJ1XjNfXlVjbWt4NSQyQkkkKD9mPHMweFN3MSEzKXhiQX55bT5BUlklOCZj
bDR1MXFWWjQzaz1tWG4kCnowZDVgbHQqeHJeUlo/P3twezFQQGFLeDxLX0VEcllqOFhXU183VDNq
ZUVUNGVDWWZYZG9RMF5tbmNyNGFzNTdyKgp6YW9Gc3RiYndfRGZObmE1JmdDJHMzcn4+OyhFZl5A
cFdGQnU0QWVHRmB5MiU5I3pwQF9POGwmRWUobytgOXwkTWQKekw7bSZEVU5tMlVGZzJ9VENrN351
Uj4xenRMSHcrc0FjZCtNJk1jPFopdCpoekIlZj17KnRRNm5fU087TnlZdHhwCnp4TmVhfUtoN0pG
Qms8RXM/ND0/Jjs5dWJGbGNQISVRZ05VeXlUKyY2YEd2dVBRJE9ucXh8X2hUKnglbkgwMWUwdgp6
JT5VTH04REdsPkRwfDBVdkt8Pz9WZEpaTVMxMzB+ZyV0OyEjT3J3OHJRYzByK1ZoJl5qYSFmOXZ0
PHVKK19EI0QKend5WG1+bSt1Z0cmZHNiRUIhRGNacFp3LXR2a0hGfWo/SnV0R0MjOUxHOGNuUyZV
KnpKT0RTZ2o0YkAwOG4ybHxVCnpJIT5QNGhVWjU2JjJrVSVYc1cmS2N7b3xqVSE0QS1VSkJ2Pkw3
SlBPMmdlMlctUnl1bmVMQ3EtXn5oKHItT2piJQp6cHhKfldJdUFZTD1MZ1RgZUVKKyZldXQ7b0Al
aUBObXtCR2gzOCp7KGF3K0sqYkk1PFhHdHxjfW1uVzMwTUF8YU8Kej5CUmIkfEoxVDhffDUjKDBU
RWhhRGJzJUo8d35VRnVeUyhGK3xiJEJNRyRDelNpSD92eTNDdzM8I0BsdmxkTyQwCno1QXBqUXB9
QTVNSU9KKWc3I2Y7MiR5Pzc0QEFfMFZPb2g5JEI2WFAlJHl8NWUrPWRISDkqOTttRz01bnZaOEgo
RQp6MnpzcFNzVGNLV3hLSjt1KCg5SHg1X0EydGheNGZvUGBBN1JkfnspcDk1WGJAQk5RfD94dHVy
NSNjbkF2P2haOW4KejQrVXxiUlJFPC15MCNMc2l2fDFxRHZ2dXVRdnsjNVhUT3xuV216an0wJHpY
dFgtcTdBTDZ6ZnghT0tmZGdJK15HCnpMKFo2dnYkMCZMITh8Yyp1Rno5JTNadVpucHBZKHIjKzM/
OFA/aCVUQkB2SV9xeERoNTxDeUNDeUYhWTsjTVl8Ywp6bzdqX3ReM1NpLTdaSzZmNCZSKlpPUiND
T3o4XztkQl8zOysyJjloQjNMVGBmYkYhQFczUlFuUHhxWWlxdD1EMEUKek8kNCF5Rjtga1NCP2gp
cVBFWnxGVHhBeTlwN1R4PEBhUHskJlleeyQ7MkQ2cEFEPktJZ2o8NWE8QFhpXlZgVVBZCnolMVR2
bi1FdWF6WEQ/XnU0fHZ6RUItQEBwe2lEenZ7WnJSXkU+Rj9mNnVOJD5DN3c3UnV9SjE0XnJLfUtR
cWg3awp6clNiYDcofnwwKG10JSZoND5JcWdme2R7WVhOO1EhRk85JXB7fSMob3BJMXlhOz1YQTw1
NXQtTyZ1Rk1VUkxOJWQKejMzX1JiOWk3SDl1MT5RNVVCbjB2aV97SWJCbj1lSytKTit6IzRDdU9N
ckZHVSk7UzNJe3Q+YCVqaGBQY1NEcn17CnpycT1+Q1hpT1lrX3VLM0F7cH1oZ3g9aiUoRDg0fkQ5
SCYhdF80PWVhcnx2UmQpPiNDQnB4bXw2PytEPWhvR0VyaQp6bmg9dmdyRyhiJDl8cko8ZkMweEtB
Xzd9VVBYSjN5SjVJPVhUMSMkU05hRGhBUSUjbGpoeXB1KXhJOUl6JTk9UGkKel5aYDt6O0xhbXJ3
UEhjNzx+XyRVdXQmTEIlNncmLTNTYjtZcyNBRUZ7SCtQLV8zRCM1amNxRiY8MSl9T050RjN2CnpQ
RiVIQUEtb1AmUGU9SkgheSs0T3QzTXVtREZ0blgkSmdYcSk7RHFJUjY5cHdNOEFZSzZyNGQyPzBu
eX1VWXJ+OQp6OTVydWZBNTB2dkJxUy1qQ2NpZEZLNXhvQTQlNnppbztKaytpcFZpJCE4OGg2JHJf
Z0FeQkx9JEl6dH1Dc1FPUl8KekR8TVc8IVp9VS1eUFFvMjZKWmVSWF4qJmU/Rj9lcHN2JUZBb1pp
N34ocEJ0LWdfITlQRGt7ampKIzJjaSUlaVN1Cnomaz43dzNuWlNKSCYxMFgpcSZYVkFeOWRJU0tn
djkjbFhlNiFYYGAyZDI/U0xiVnA9bXdaUyVPRWNhTytQLSheNwp6WGtnSz5eSyg8ZzNBc3lsbH1S
NDlYSkgxJldUVUE5ME5WPyZ1QjtjZnFzc3JCTmxDaG9kTm9SVkJ+b2NQYlBYOFEKeil2ang0MGQ3
K3UmJlNNKUdBKng1Jj0zVW0kV3dEbilBR0JeUEcxQVN6KChFNik/ZmxDczZVZH1wem8tKXZCa2ND
Cno3TE9HYXJEYml+K35EZEcpOz9nUFpSdmZlK1pWY0BaXkNsI25LSWZTYDxMZT5afjI5N0ZlVD1o
PWFjUlQtTmZkOAp6empzVnohRm4qa2VPWVBwTS1vNj5UNkF+aFFnOFcrbzNZPjdOX2FCK2dWaGdw
eDF8U2w7ezFtcSk5Nn1UV1l8Py0KelFQTHJGcGN7dSpPbSU0OE07V25QZiFePWpFKE8+JFlYITZB
N2BMfDxqPzRaRzF9N2M7azI7MWtgMlJwRXt8fHJsCnp6ciMlYmszcnN1MH44YiR1UCFlMStUMUpP
e2hpJmZ6I3lES0kpKHpGVSN8YExffUFDaCZqfG1YemorPTBOdCVCTgp6PGYlJlA5WXo2P1pkUUpD
X1YpYG9MezFTQXpyJVNSJnNCPVhsTFlVLUMmQEE0SCpvJnJnKmdOTUFGMTtIRmBAc3YKelJBMUFe
SGEwZDI8JHl5MV4qQVJFN0MmRUV1JWNJIUBZelNqIzRMQ0N3dzBGZCZlZlBtI2daMVg5SUIzbGxL
SWhkCnp5QC0zMm97P2UyVGZwKl5nfX4wcSVqPHImQShJfUFTZyp2dmlTZD02eXZGVjcwRF84bl8m
Wmt+dH1lUVQ4OGpkIQp6RnpFUip3NVJ6KUFocSsrcVFEKXo+X1NXb0NLMXdDRiRJT19KQVgwRDlP
TGlwQUxRK3FUSFBMUVA5cX1GaH1yWT0Kel5DPVZEY2o3MSshYTJqRio+ekx6eVVSaEslcUBQM0k/
RHdKTTIwR1BqZjh+Y1RtOV9HWDwtQD4oS3kqcmE9LW1ECnppPGhMX2tzWUpZbFokSH4paX11Y00q
a3xkI35WdkQyV3RFJTVQdlE1VGVYSk8heTswTWtoSVM+JDV5WDlHOSpPewp6TEQyV0UtWGItK2lC
I3xJNiR2dkBUOD8rZWszcF9xXjwlT3hOP0ZOTEUkIV55NWZpXjNCcUFqKE4tZWN3R24xNjwKelVK
VEA1bXV2UG9IdF9YKmd6SU1sZUcpU0paY0RqcjRyPHM1alRJRldyI2czbS01bihOJF5EKGIjRTZo
PFJfJDZzCno8bkVkPVIlMjsmWWx9fS1kUkAxVGtCe0M8dyhmPjl8TGRjcmBGV2opUFVwPnRDfSVE
fGAkclNvX2dyWXooM3V8NQp6VFNnTCk7QFFjOXNIcWZwIW5tQ21eTG93WWNJcmojOGBVaT9sJEdU
RT4qU2NwKlhEfkdFP1hsKyNMRCR9b1JKJkEKejY9SzNAbVVQUzwoU2YzTlh1MmpSN2IlLTk5c35Z
czFEN31IRj00IXpoaFlRRjRaeEtzP3hod2E2UWgqeFh3QCk8CnpVdXNhaml2V0IoQSRHYDE+dXNU
KWMkd1E/KWRVb0k4Wmc8PD0qIW9hWn1xMGw0aG5hM082eEFrU2Y2Rl5NbjIoZQp6MylhKkc3SCNX
ZXhyS2shUSYlX2g1QkxxWlVnZmUpSTlHSn0pcENpT2JOZ185QVh1Q3soaXQjPmtvX2Jab2UlbnoK
emw9a3BaTDsoaWtqUWJRc0V9WTFyWDghYz5LfG98T2YhTE5sPGUqdS1wdVdEN2xPT0dDNjJfNkhA
OW93bjRNZXltCnpGU2haYzB3Q1gtIVAyZkM5IS1zbndObUBUISZhZX41K0pBc1JnUEJrZDsrazV0
Zk53WTIjXlVxT0NoWGJXbVAzfgp6YjlzMnJWLVhEMF4xRTY2aFY/NX5jcjt2bUAoYXs0XiheJSRy
ajlLPk8lQ3w8VFpuVFVrSlojOHZfN0NiZjw8SkYKenB3QHZIekpvQk9sI3dHZWQ7VCFqdGZpJFRj
aDwoK1JFP1c+d2BAN1AtYEU5TXhqPVNncVU7MGVweTZhZ3gycnpmCnpiSDJJX0tRKigyYFhsPHQk
Mk8hPztQMz1EWVB6bmJINmMycFIhZFdfPV4kYCpxbDlWJCtTVHY5MktJPH10cj90YAp6Izt7NDd4
WmR1ZkFOI3VAOWsodTtkRkk3Snc1eCQ/VlEoNjJePH5ObF9kX15uaGRzOHtQeis/NCs2WTQ0Qnop
U0QKeld3XmRee2JWZm5JYHJ4K0JtUTk8LT95STdEPCRAWWxSbnBfX2NaJVlBN3EzTzE9JS1jaz4m
fC11alh3WTdLezJKCnptaG5zbVkyKjg/aylqTUhJJkBoPkc9bj9+S2o+ZU9YempmZVFmNVVWQSMp
MiE4enFqSTJ7MV4/Y2BeMnFFWnVHMAp6NHp+QnBITER8aCg8Z1J4aXdOQCg0Xj58a1BJZmZtSjsr
Z0czPkt8Y0JiSkApYERVPkE0O0N+M0l3IWNJQkc1bDUKekZTe1JOQiZfbnx4ZHgqVkZBRjxWNGxu
NjM2OygoQnlwSkxkcWtYdm5sPT0/cz4yMWNNSmJ8JTJaWncoPCE7WE9NCnpoe1orQ21BJC1JS0Ft
QkI/PStEKUxYc1ZARDx4V1Q2VXVFPEc1UEdyXzUwO3RPI1B3KGdgcEYkZXdQMzN0VF93YQp6aFA+
TSEoTS1RIXFCfGJONllRREppMF95YFdZUmRXNEcpdFIoVzg3TDt0YXM1YHpVcj01dTQxaDh1Zk9h
a1phMm8KejNqfFYwdWozRilLI15nPil+Y3NjQlJISXo3MWVie3ZTZUUhVmxjOC1tV3ImZyZfKSkp
QVhKUzs3fnY7bXdeZk8xCno5PUJYXk9zYVclUG4kbSVVJkRKJD5pNldyWjUlZktTUm08aGhQMkgp
UUdlZEQ5alBONj0mSip5cmMtSGVFfXtCTwp6WUFaQyFUe29EUjxXITJnPkZ8fT1BM3ZyRU1HTyFm
NlZuPCooMGxXZXQrOGw0WENrNW9wUVFOMj52fm53Kkc9PSMKeit9bjJIKD92aiF6M1d0RktRZzJv
UGpCYmtfWSV6LVliVFpIN3JPQFgxXkFLNGA4PVltK0M5MzQxMERNI29gTEpmCnpjRiomb28zNDAz
KWNqWDl7aTVUbmluPk5WOWJhUVkxWSUpXyV+TVA7PWZEJGg0Mk92I0A1JE0rM1dgQlZKcHZWVgp6
Xz8qfU5TZTlWcE9EYmNsfDQ3fDd3XiYhWjtIJHpAQHhxKz02KE1oRlFFdSorT2UlTCU9S2RJNUt+
OWFJSWoyS0QKeiFLa2JxdCh6VjE/NG1OYVhhLTU7P1YpQzdLYypsdFBVZVlwTTNFNzhLYmhZO3hN
JX17ZCVvT0h1d0olRy16LV88CnorVDhVK2VyRSlwVjUxYzJNbjkwZEIlVHNUJT4oS2pDNUZVI1d8
fkVWVWt6RCY+dT9LXzwyfFFZR3xMPz1KZDQzZQp6I1dlbl51QmxtbWpkVCFNb15rNTNQZ1lGUEx5
R1RlRlN9NDhZKVE1b0FEXjhQayZ1Xm5TUkhic0JQI2NzbFRmTWwKeldPejV3dG1+eD1aUjFzfiRB
SlchaWl2VW08I2ckRDZmU3BEaU41V1RIcSRxeSZKNSZLRHxWeH4wJUJycD8oJGNkCnptPGpkUnkx
R2A3X0BzY15LXio+ZG9AI3p6S34pY1dKSzdSJVglc1B2V2BXU09AZ1Z+NnE/VTg7ZXFNVmY5Xlo8
TAp6VXQqVnpYZ3U5Xy1FSXU2eH56PXhHI3xAcDJpcE1HIUs+TXpMWmdOS2BMa3tZKGsqJDRhVUAt
WiFgaTl3T3tDUlMKejR7b1B7KjArJkEhal8lWGhGJDJoRy15UDIpeFNtPCsxZU9QRWIyIT1ZSWxo
Mld6RkJDMVh1KWIyM1dsc1p+I0RPCnpWbWhFVHRZKkUjTV9RaCVvb2pmOGlYPjVTKVgrJS1fPDRl
fE5PeDBfYUZ9ZlRGeGxQO0EmLT55eSllJnpoNVJaKgp6WkU5KnQ5S3BvV3ZaU05xWD1ebTI+P0JW
LXFKVm5uMTdyZz1iRk1xRzh0QThQWHZjU0RlanUwTkApfiU7SWNqXncKem5jNHM8IV5JMUlmblIz
PDhyNm9uWjRUa0pLN25VdW1mTzk3bkNlaXh7KGI2fj5lPytHSGs9cHFCQkVZfmJZMXpyCnpfUT0y
NG85cyhzZ0ZVTFdZNzk1ZDdST253IU4tOWwqVHIhR3FvdXxOU2hGNDNaSGdpVDlFOzVeTmQ3X3lA
PnIregp6a0VpU1hgcn1eK0VtPTAka083T0FsVyRPRnZ8RmxFX1FzWHltKnpFMyVNT3xjKmZUN2ha
JFg3dVpONWZ0UDVMclQKenhaNEs8MitSc3VeTjkkbHNQUmhYPHNSMWhyUUJOQjxwbnhpQklrUkh2
ZlZnU1JiVSVjPTxpMVR0eU5FQjwjc1N2Cnp2JHRubSl6JH58Mm4tMlY2M0N1YFVwdmh8YFA5YE5H
dUVPVWFjeEgwPlkkVGQzcHB1U0RDe1J9eXlZaCNWRU5XUQp6P2s+YmRHTnBDYSFnbCgjd3lpYDlk
OEZAQCpDSlN4OHIjYSY3SShJTFkpdFZePVFVPWk3MEVIV1Q2PyRMXkokIUoKekJ0e08/cX5aND1N
K0BodisyKk9zVk5UPFV7TyRgSj5+VjRwbT9rSkRUWFA8PGdaeWlWPns7U1BePXRpRzVSMFZyCnoq
a1ZfdW1rUVQoKUhicyZIRzBpIVRzIUl9eFJDM35xOGxfRSM/XkQ/cTVMUXo5OXhPMXg0VXVlMkM7
N3Z1eCQ/dQp6TUdWPWRkP3FYc1M2ZHxaamFBMVBpQykyJGUyZVJrJj1IbThGUl51RGhJTmg2OWpX
TVp7UjV5fmM5dm87c014ODwKekFpb1Ywa0RoPmwyUFU0IUIzRmlubTBOZ0kkc0Y9WCN+O3hNeThP
bV8kVHJUelA2TnRATTspaWBFRkw9YTtNd3RECnpLQFVZZWtRQF8/TUVZNDtJc1J3REVYeHh2IT5t
cS12P3FLaiMpdWhJO3kxdyVeK1YhOzZLJmhyN2I2NyE2USRaTgp6SEghQWE0IXpmM2ppbUo8PCVX
SWd0VDJHS3s8azxJNihNZjJtWjBePTVLc0M0SFlXWEZzeyMyaHVuaTlpbnE3SkwKekAkJHVnOGIk
VysqO3kyNUBZakRXRShZJVpJeGhOT0lnVHFpQG5VdXpQXlgwZFBZZExAeFZ8PVFiNX1yUHp+VHMr
CnpqVjlyZlJtfTlZSzc2QkBgfGBpNz5PXmJqdnhtcF5YYS0rbCt9WjJEcGctWT81O313VjdweG45
RVF7UG8jOG58Ugp6eyNXKF83c3ZlblloPzIyNzFWOGVgREVWPm1MVlUheUwlY2hWRXY0ejdHRSlH
P0NnQkBjKWlqSUk5KT94SH5DSkEKemRjKmU7SGx2Pi1iWU9VQDh5ekJYZkwpMUIlSHRTTkJpc0FS
dXYjUTE/eyh7c3hIM1NjZU03fSQtWnopK3Y4P2NMCnpSQk8xI1loVWx7Qm1LU2p7bl9lYShtenFU
SVJ5aEFwXjFxfSpYJDVzX3h9RjlEMzB+NWAqUUxEa0tLeUdsNng9Mgp6IU1CWkNQUSZWQmRWRUUo
YFBhMGJmcXxGNDVePShhdSVDe0lzaiNwSVJ3dmc0Jm9XaTZYZkwoV2dMVFdLVmJ9VkYKemYxO2Qq
diRkRWB4cyRraDRaRCZaVUZPQCptKDNifF95JWwtY2lUWD1yKnF0PEB1dmEtYWAyQiE5MFF9R3p0
TjE1CnpNan49UmVCMjNJZ084dnFiaXI/N3Ytb0tqclBGZ1NTYW41aHQrVkFxWnhiQmdUYjA/Um59
NT1aVm9xOTBWMVJTJgp6SDgxTXsyMDRQSEImazFUN1A9KmNJNStXMFpvR2o3bkpzZH1oPn5MNkhz
SVRCbXt3KiQhdU5mSlozakFkRWVrI3kKejY9REE3Z09IKCYjRUZgWXRROXV6d2ZsWW8oMmhxe01e
QHtKKllWQy1GKCgmaWoqajFqRmNIRyEkR3U/OWclRnpMCnpTa19YI3FfPEUhTCNzYlRDZnt0VXpj
I0VHJF9TSGxEdEk8eCVpKEZgcGViciR0dCgoPlhgWE0pVWRXczh6MGVKRAp6cShrK2R2ajBhUyYq
eks2eDljcmNtQ0F0VmA+RmVrI1JgOTY5JlFvV0o7T1JAfDB5UHVNPyZsUWAkPm84V0UySysKekBh
OCE2Uj4yN3w0MipmYE9RYEgyeiFjYm5pY2NzKks+PStMZEtsZT1JdUpKOWhhJV5EKiFWcWQ0Tz5W
OUZkajNGCnpjfHAxIWB2eyZAcmV9fFI9cDhoM3h9czF3Kml4QHclP1FjXkZxWXEkY0pGOEQzTyZz
YDgyRTU8UU1uaSNSYWR2MQp6Qzk8UW5pKzJ5YERtcGlvdldod2lVTDJMJCp+R1hhWk9OP2g3TTwq
ZzckfUhzUHRaaFA+STJXdGx0eXFgd3x7UWgKemA7az53d311cVlYZmljalJ0KXF4JTJCTzJiJSk/
KlElJFArZT5aPU1XSHcoT04oYiVqUXdnUFdQMGFlLTEhTDZhCnpkOXJEQW8odkVCUXViREpeWXRg
am5DITRsbHUlb0pneFNWKnFFVyE5cE56WXRxQD9AY3taJDcre0dLTWY5UypqRQp6c0t7ZnoxQXBp
Sm5RLT47R1E9PmFpRV5QIytCK0tLPTtgen11K0JxIT9YIVA/T04wX1Q4WE08UWoqWE9hVUNGNi0K
emk8R3FhOH5LUHpzRVJFe3FPczdKYVUzZERKUFM9aD5qUWNFT2MoX0BtYTVgbmNleDVaaDJZNHI9
el91XmpNPShACnptVGY3PWl4TTkpRWQ0YUQjakwtVkU8QnBfVk0qd0k1Vm12UChZTWQ2cm1MQ094
MDZybldkS258RlN2Km96Qj9PdQp6YDZwckBBcXFxYVZGNFpadlQ7PG1xTX14dE1XZChpYFlrISE/
e142JSp9MHh6dXNvZkdVLXt2aUREdjFuMkY9ZFIKenJMTjRsTX5DZX55S1JoWXpvSilAdk9GNzJX
JmFqYipwX1hxTEpnaj02PGg+bF48ckAhRSFgYFFldkhzUFNHPUVGCnpaQ0xtQWxOP08/dmZmQ3c/
WHt0ZXFRdnRLWUdKcGkrQX5mfSgmbmM0JVReRkRRem5zZUpTNmFRTCN3VS1PdEw1YAp6ZCYlPkww
Q0VtOVZOJmhhPypSYCttUihmMXcqeE1ue0RSfno5c2JxfWxxdVFxQGQ5bDMxbCEwckVyLVdKXyRM
RCsKenA2RGYoI01tZVZITyFkQC0pOCVmYj4mUXomdDNjYFRxOT0oa3w4Y09HdDdCN2hDYW5vSEtz
WlgzQEB1Nj5mWGhOCnpUZV5OZmwjWUo9TWI5PWA8OUw8UnZZI2U1R2YmdXBwa144O2dINkBFK3Q9
bHs0cHVxQ1FRcCs/QkBjUmB5OGRGWAp6Tj4zWldpWT4/OU05JVgxe20+X1VhTiplanpkY1htIUg5
bSViRDBvMyFYTmd8Ql90Snw+ZU5vR2R0ZDdFeHhVfmoKej1iPHFhck1hR1hqd2YycCU/OCYxI3d3
ViR1UVZuYCN6PiREUjtGSXt1JH1QeUFpISpESkc8c1BLbj9jMHg+OFNJCnolWVBnVl5fT2hScnZf
YkIzQHVFfV5fOyFSVDxVVDZlQTtLdU1vaT9sODZRLTFwQlc3aXcoLS1MREJVUFh7b1M/WQp6U00x
fVZJSW41PHFlJX43I3lsc3hqcmtVZmdEQU9TWWVPTW9NUzh9PFBJJm4yO19jV00xKUpoV0lsLUti
MzZ1UCsKeig5KjdSNF87TFAzPTthfEs7aHwjbm0hPllsS1lHeG8ya2tkOXpIM2xoM243RE5adXVR
YDR9SigjdTI7MHU1VCNYCno1bzU5YjQ8QDVKPEdsN3piPTU3UWE9LVErR3VCeDVoS2E4QkV3OEYq
Pilze0ZIMitQamF5XzZMRn43IVk9SX0xNwp6IU1iVSk8MF8oQHpCQT1FNUk3JUZuNCVpUzA7KVBQ
akJsSXIhSjAoPTxGPmI2YVVlO3FFZCZLPStBcXlJK2pRPFYKenV7MEVieG1DY2hydyRUI2M7anMw
TnZuTi09Rig3Kj04PlNEVDxMOUUtK1EwSWgrVyZjKX56aH1zKzIzfiY0U0hOCnpOSGRveUwhR2Il
JUJQMTlKPXk5N2VSbW1IQSgre1J2dTdERD9ATyFmNUw5SztOUW1iO1VkTVc3YHdqe0dVaUpadQp6
X2tBQW9ZNVhjTlFTajA7V1crUF80M29ESk9VdWt6VSY0VHByMHc8IW93SGJkS0dCPDEpPWJqZEt1
JjAkc2MwfEgKejR6PnxGbjVoVnpee28qKTdZT1pFS25kPyk+fkYme214JC1Ecigtbk0ockY0I2xF
NjQpVkZKR2ooKlllLSFeTyRVCnpvJEF6WHJYMn12X25LdzZIIXYhKEYzQmgkbXZ1a1BtdSlDNykt
eG1TTGBVeUBWPWNZLXB8TnclVnRne3s+TnIhZgp6dGQkMz9URn5QdD8kVTF8I2BxfEc0ZkJtbC1J
c20lTXhQfHJgTlAyIyV9eHZPZn1PQEloQU1TNEo4RHBiTXpWZ3gKenhvWjxvcmNZWiV6MipLNGhH
KTQoe0tAM18tYTRLM19QaG5yNUt2JnJeTUhsR1ZBe2ZWMXpSYCF1X3FGPylkKTg1CnpXfUVhKVo4
WVQtbD9PKSFiMmQ0blA2ejQpZHdrVzNuNSkqdS11MnVWNkB0JVNePTY0JiZDTiV1MHJ8amYzTHop
eQp6YWw+a1l0VntjN1koe0NEelQlMXgtVFIjNXVjSWFKPUY9NUJmQW8ybCopOSk5THBrRXs8cDQr
Pktqa3pgKGYlWmAKeip5VWl9cGI+XjErWG9fPmx+QyZ5cXlka15nTEhtY2szbE9sMl56dTdUWFZv
PyF3K1RLZFQjcjRBbyRuYU9nM0dWCnpyKms7bEB0Rz08cU5JMHdHQTBuemNiQj9uSkpRaHl7RVkk
KmFAeCg2bUhFfU5sanhwLT9rUGUkPW1nYl92fGFmbwp6TCVXZjxWaDFaT0wlYld7d2t6O1g8Qz97
eHVpfHleLURHIz5FcEEhXk8kR2p9QD9LYClfWmY/Iz1IXnMycGlyMl4KelZ6KFN2PHhGRThCc19F
MjlkblkldGFLUDZFT2VnITxJSio2amAxPnJaYT5RZkE/JWV+ZWRkLUA2aHpMRkJTPHJvCno/V0RV
PjUpTGt2PmxaRnpjdyplaS1CV249IX1tUVZ6WGlpOUNvNEJebCFhcGZrSj5He2FpJnJmMmY8UTVu
eV4yOQp6RyU1PFZxYEo5XiUkKGFTZlpVUmZoMEdrUVR1fE59Q2JtNCkoeHJyRk15eS1aOURNbE1N
UjI2WFhgKXJyd0BKLVAKeiMmK15DTXdgVVYwUiRCVDJ7amVJLXVoJl90PDhabVZGQXk8a1Y9fU14
c0pqZ2RpUDZhMlNyfkx0eCloJWBsO35+CnpSakhzWF49JjAjUjt9QGwmX29wbHIhUUJnNmF4RjBT
dCk3cCQobDxGZUtwOytYTTZYT2w1ZTQjYjgkY2FZLSN+RQp6KE00WE5rQjwoKkNzamBnSEY4NDVH
PVojXjEhYFc2UTklbms/UDI7eDNkOzgleFppVjNsSHlOQjBCTWlhYmc8NSgKekAqbFNpUzQqYH5m
Pks8N01MNzJvKnprV349MEJ9Q3omeFRydmYpXiUmIVIoSFUzSmM4bzlnWDZ2fnl2SzNwP3dlCnpM
Z2NwaElBWGYyYXtHM2xJP3AybVF8JmZ8eXdSX0ZJSHl0TmlDJWEmKEt0YjwlYUtLbWpNYmQpJjNS
KnpLRG1Hfgp6SWB1fj53Pk5TSCkwMjBOaiNrU2xVYkozR3VmeyZFMWxPYHVXTVc4dzwlTGVeTyV6
I1hLRTUlYWlrTz9ja153KjcKejQ5Y184WTEoTndkfCloKFojM35kT1JKWEorT359Y0NzTiVja1BU
MEk8TzEtWCl1e3cpKVRTJEVmUVV1cHBjfFd9CnoxOXJBJnEwVnZvVTRGe0MtQj44ak95WjV1M0Jk
PGZUVj4tPEtqaGp4VEhAS1ZUZzBMLSVPeEdHKDQwV2hWc1FVbAp6ZktkUU5Sb199SSEmVW4pUHpm
ekhzNitFS2NCTVNeeEp9c1FweTttNSVlZU1qaloyUUA7NG41T2BeS31rdFohbisKej0tNnVvYCh9
bjc2IU8/fEk8di1CUVBuRSEoYEoyMWZaeXBSLVdORUgoe3k1OGFvaD5nMjdTMmYjU3VXTTBIKThz
Cnoke0J5LU1nSSg5dmY0UD9lZnkrMDNuRWFtd1M9eF5iJCs7JUlmWWxoIzRDazJQKT95Zz84Tzwh
JiNYSDNBZyQoMAp6R1JOdFVxKD1PXjYpaiVrNkNTXzIhSVVYS2VoVjAxek5TPGBrZF83cjgkTXlK
dXNueDtKdkBfQj1LfkEhQyhkUyEKemBEZChvRVlkPlZkPThIYS1TUWBMN3h0c0o9WEdDSkwmUDRz
PCRSbCR6dFZzVk49VnszVjQmIzMtaGM3bDR4aSEzCnooPHMzQGd0Uz4kdFphWVVpbUF4ald8JllI
NUVqTFFyK0olQSg8bGskIVRxKCMyTlhVWGo4WVAqSVQjKTBMQHhNNwp6amFtJiQwPFMmbEh1UnJW
bSU+dTIxQFQoJlJIKVEyTVZebkR0YXU3Q1dnaUEpeUElX2ZZQDlDS3A7bVd3ZVNgc2EKelVNRER4
QXhsP30mK1NWZypmaXAzQyZ9NWR1P141eT8oVHlmZD9+OyU8VmB1JUJ+UnI5MXoqWTQlJjUwbSZl
Qnt1Cnp7bUVwSVYtJFFlZnttVy1lU1NYdmN6MGc5Mz4hMmM7S2lSb2l+Z29IJXNIKUk2VClEVUwm
fSk8KXhlN0h7PmlwVgp6UXoydEUoX24oU1BUV0wkZCVMTnh6clNjQm0rOFhQbCp7UncxVmtKKj8m
UlIlQD1sQjYjY1hKdnBoNHU7QmxUVlQKemNIVzg/V0JSNCNNT3t3UikyK1diKVRFUV9Ab3xMe0ZA
a2BJb15HP2FaYnkkWFU/X0w4TTRze1hCUEFHcWVXcF9QCnojaD51VE1qVHY9Z2QleiNFdUtTVG15
fnhCWlJuZncteHZ2b0RjYWshc3hHPWxkd0FgMWlIb01HV34mI1Qpbkl8ZAp6aG9OVDI+ezd9RXNl
KGsyT0pHTUhxanRiaHV9JXFWU15RcSV7NUM1cmR9P3g3IVIqbEpkdWB4eGdwcWpWUlRVKXMKemts
cCZCRVJxbz5uN3BFNWZ7aXArMHcpcHxCQypVZ1RXdSZ6REMrcEBZQUp2OXhCNiN+SktMZ296QmU5
QS1DXigmCno9MTxvPEsrKXEwJjNCNj1sX0kzVj5oQkgjSyV+eEtydkQwZHp7QUJESiM8a1ghJVgy
bHoqdVhDOEUrbCUjLX1vaAp6O19ve2JhZzR8KXNUQ0EyRTtSaVFXYHpCKExNUTBSQkNHVlVtIyFy
KjxWfVcta3lVUWgoN19Uc0Qoen0qIT0keHcKejJoPXUkPTVjVTtPQ21tYVN2Zj5MSipaemJDenNp
aEtJdTA7QzAhPzRMZ0ktfGY4Iyt1cXtJb0VDZm1xRkcxSnxiCno7dS1EemlgbElMM1B5X0Q0cDJS
R3lNIShyUXAwaXd4U34xN3FrQF5LMXFYRiVBJm9pblYpMHhiWH4jKGFoUjkjbAp6STYxbWZWbWh2
M0N0e3k7T0VwUUttVWc8VT5uIUd1X250cXZZa2M1TSslKVpNZTxnWENIPXw1YVQxWERkYmlmcSMK
eiFKMGd9Y0FlK3lxTHQteV83akA3eWZ5RDAzKT9pQkhHMERVZSR1cHhfM0AmbXs/TlpTT2NGNHtW
ezx4KkFBZ1phCnpPUHBFdzZFM0NsU3ZVK1R4MFNlRW8hP0FiVE1LUmd2SGxJSkJHNWRtT3AkWFoq
VHtUOXpXNlBsUzRGUDBKckJDXgp6O3RiKkJANiFqNEktRHpkdG5RcnA8NTB9TjRHTmxkMTU0KXMz
RD5nKyFZPE5aZW5kSm85UUVwNjxUU0VWXnVFVloKeklYQkFSaHlwOWpPIU4lWjZNMXx8X24oNW9v
JDN+fWNYWkJ0TEI/dWdlJmh9Pm84dFRqPGo5TG8obzw4TC00RXh9Cnp4R2Q2UEdRekR3alZHIUdg
cEdFbW9RYDlrI3JMbWYmNnQwWD1mcWhJaDtHb0ZCfVpqViNXXzttUVVAbzY1X1hxWQp6UnZyIXxH
bGAzZiF6PmRIWmJ2QHAtUiVpPGcrbCRiMzs0dTQ9X31wYFBxNClJX2xKMCVAeyhpOXUmXyMrS21J
Qn4KelkpSmVTUkg4ZE5BfTt1RWsmTi0wQl94I1dAdWpOJSVBPHk8dCRaSW1tNUU4Qno+NHwmZW0r
XitgTWl5Izw8M1lOCnpteHtDfTN9JX1DY196WEE1TGhDZ1h7Qn1QcSUtLXpKZlB7a1JHekNMSWpT
cnpCMTV0SEA1UHswJUV3MnRyYDthcwp6Tl8yVW9Hcn1uWXwyeE5tPnkpVlUkYlRBPFNedWAoKFdm
XjF7QWskUiEqQUJ0SHtkWWhKP15XfUh6TSlSTkgqQT0KejlfViVKWmctPzhEKyRiU1E/Vi12ZGg0
N3ZXUWUlN3xGZyo3WlVVQSEodiF+ITw9PnI9PlIjTVV0Xy1hVXAhYGpzCnojPVQ8QUcjUz4lZFJF
TWZyTl9YKzhnNTVQU2tAKTtKR2RUNWpHd31ZQUlRcD4pZStXZjxIJmYyX19zKWFJJCNpSgp6WGUh
NX0+UjtzTmIwV0ZsOCtwOTZIWGVsR2t6SEVSSG5kS3JeLUp8P0wjZ2g+VDB+dTAqfjR3ZG4oWiZg
THlqN0QKekFCRUcmbjl9ZFdgRDdxMjBaeGwjYWw9eio7Z2ZjSUMrdDxmVy0yYk9kZGAja2l9YkBs
PSpIbWJfPjtvN0BVM2ZQCnpsPEp2TGdUc0YlN1NzVilxTm1GNC13eFZzJmlFRFd2JnQqcCZ5SFZj
LVZVfl5aV2dySkdHO2kkNENgVXhBTTJaNwp6VSMma3MkeTs9MD12TH52ajJhJiVxZH4jeTlsV3k9
VStTWEYxc1ZJSzJ9WGwhZzk+bzt5b0RNSWlGeW1OaWBzKmUKel57V094SWlmfHlycnNWYEtOcm92
Z3s5SjhQb2x7SzZ3O3ZBI0VkYTFLJWl6O259Q1NsSio4RShEIzg4eiVDP09tCno5b3VxejMhJWt+
YEpDeVB4MGp1SWxmMmBVRlRFZ0Akc3YoaHwzPzw7PHxPSlZ7VStiVGpNRXZLT28qKjBeUjxEaAp6
Z2hjTmt6TWx7P193MV9DQFNyUm1pYlk5I3Q+WW1sdDU4Yml2Y3xGcSZVNSh9Ryk+VXI/Mj9zWD1y
UW1sZVMqRVgKemY8LUNzTDxLRD5hXzt1SCtAdHZLPGRTeUxzLS11cS14KTRyNjk/OTcrN3RfX3tO
ekA+cU52aXArblheckd3bzJiCnpjcENTdTI/OD8xbXxlKGFsMFU8c0xeJlVBIzBmRlUoZVpJN0Fq
MCFvPHlWWWxCRHpEamMmbjsld15za3dBLT02Rwp6ZCFiMVYqP1Y3TDxTdWRqdTQjXlJgb3t1WUsm
N3ZwWmtXfT9aeVAlT3l4amMpPXxUTyojJTc3QjU8UCgzeXY5SFIKekZjQHYkPnRMWFBncFlNdFV3
S2h2VDc/PCtzMWA1ZHJaPEopZSV8MVg0SCVFO3Vtc25ROFFwR09TdSlYZnR0TldmCno/YmUxT3pQ
X29IaiZyXyN2fTNpMkVEekRXZ0RFITBHcTU4dSFgWTw/Sm47a1MmMihpQEImfnRGa1Z0emYzZVBD
bwp6ak1zWDcjaFo4d0c3PSFaOWI4fnNSenwtZEtEaGQ3fDF8X21Gd0VQbysmbktFKD1XSTlJWD4m
S2lnal5WTnhPMFAKemJEP0AzdTFmWSUlJE13OWYlKC1oK1ghJFUqNXVETXNKe0h4ZitAJU09aEk4
OFVXcFh4NytuQl42cVAwPmkkN3hgCnpPUTR4VV80Kil7PUdDKk0wajxRdFBPKGkrVmxRRGlTTFRC
Nk1QVkArUkwmYUdyWCVedUppdERoWGtVWk1MRChiYwp6bjxNSjE5eEskJV5FaEpoSF5vJU5APklS
MTBrNEtiYDk+PnFVdlF0fUYxMyYqKmBmN1h5S0F+ayh9fEFxOTUqZ2UKem5mSXMpdTZ0MW0tQHUl
bUxWaUFyTCZibztaOzV6ajQte2phRX5iJVNzdio7UGFOdT5EWkE/cjt3SSptbkVkSD9mCnpqTTUk
cXJyUjZ4JT99Pj5xRUVTQnlmMEdUVzB7fkopWSRNanQocFVNcygpeHYzJGtzQU12K290dFZDTXBp
U0xfUwp6RmpxUlNvUlRwd3tWaTtCeUFNS3BkTF80dXlAKXBLP0hoM29uOSViaWZ+bkU9PFpGVXFh
MkF2R0tFSWVtV2JPS0MKejAoKzdMTDdQcGl0SVR4O3QzQkRLUyh2R1YyVEkxYTlWVk0wQ1RSK2NV
YHpPa1Z0Qil5aF8zM31vU2huU1FtWUFxCnohNSpyTHE+NGpaT25YUm5hP0p5TTI0bEl3KDh4XyFo
SHBHbTgpLTNkOEdWX0ZYcmNtJCg4TylvVyY5ekBiV1lBSwp6PkE2XiZOYUAmT3MjZUcwKXZ1bVFs
YmsySDx2Uzc8Mz05bDlyVTg9ODxZSHB0Rn0/al8+MkRgJTFsJTM9KDdnNTYKemBWVGleVDg2Mz1a
SVYyP2pOUjhfSip4VVojVThMIWRwZSsrTSs5Y0VjeFE+MylaVmV4LUxIbz05Szc8K1lSJWFrCnpR
a2xiIXh3NyhMUGpfIXRPO1gwaWBnQys8e0wmZT5QZ1FOcmhaSXE/a1k4VSZya29qPmBPYnkpJiRP
am5GaVp6Ygp6SUw4QURDKTRCPVkhe25UNUxIbWhiR0RyLU9iPnpHVmwxUElPJm5nYT13IXMlQCpB
ai1kfFhUUnh6IWlGYTdiWGQKekhtZyZCT2JeM0NqUjZCPllBSWxnJGw1fnwzR1FuRk1+Z01YVkRP
OzdIZylXfTEhTVFINyVOUiRAQEhuSys0K0VyCnolP2hhN299MlRxcCFWdk89JXRqclZyZyRgKj9C
Z311SFlTJmloPTNJbDwzYFYxYDg7UDtVKE1ZYHx1NzRednMjSQp6YmBCKEhwJm9UX2xkczQjaWxP
RTdGeWhLS0koMnE9WXtJQihBeT1ZMXZeTz9PcEMqQikxVFp5XlNNaE9QVSkkdDkKelM9dFl4dWRn
K2ArKFYkUFJaei1XMUZIPW0rV1ArSzdTaXt3R0tZcXt4MzlZIT8wbmM4Tjdybj9Jd3FkTTgqQi11
CnpVcW4lQmx+fng4dns+PHxhKllWMmVNXiZXPWRIdzhPKGtXIVJFVFM3bzc5aD49eDR6MjRLdyZm
OTxNJjIxPk15WAp6Q2NtIU14TUQrd2BPZVhZXkgmWG1oNDY0NiZpSSE7STc1NDQ5fU5tfURoSzVR
dFNTSklsTGlfZmJfND9tUDwyIVcKekJwbkFsNnUkUlVTWU1NRm9fbk90eD5MZFBlPCl2JV5EVXFG
b09QYHk9YG96cT02QThVZSY5ejFiWnxuaWhKSERQCnoyYW8wMURlbTh8SU1+Xj55SDdvcDI3Q21a
P2srbylFNFE7TkM7KWM8bm5nPUdWWVJFSWRCbitAKndeWmRRO0UqIwp6JjduaShXJWxjY29WSkUp
Rmg9O01Gc1c1VjxtUzReaDluejc8aF5kNkV3OXNEVW1fcSl6aztPTSV2bjhBQGw4YmMKekFEc3hX
MkwtTnJPZEtSKyFJVilSYC0xYH1wRjk3JDB3N3pIbDkzN0RqK2BPJW8kITEyTU4tTFYzeiNxI1Nu
I3BpCnp5PmI4RV5UZ2ZiaGlBeHFHT1J8NkpVcHh8SSZ0M3M8X1M2Yz8pQzdqRGs0SGBoVDdpcnEz
OX5zNGlxVkZuaTxkQAp6YzMpeih3ZT5ya0RAWHQmRDUpJUZNNiU9NE0qWGIkUmlyRXxEbDE4SDJM
Kko2OTlDK2N0dnQoNWhwTEt1I1pwP3sKekFHWmk/P2RvZ05TNlR+Zjh1Uj97JH5wSSZ5ODV0OE1k
byloVkF5N3c5M3VtbTJwMDJnZXRJb3YxalAxaFFNVHRmCnpUTD15eUFienZtPlBxfTgjRj5ZfmE5
NGdMNk9Vfj5qcHVmdzRafnMxQ2ZLe2RWbGluKHZRO3NuY3dLQShqU3NjTwp6clh0YnxjaWYwZ3dg
VFlDZVNFMUJ1WiZQKk8rbUN6bVcxejd3bnkjRz1NWHcyJDk2PGIxSEduNXk3cjAmUlhWPEMKelFy
MG8pQVFXSmNyXyFVe1MzLT58SkNWVzw7YHQhYiYqJFlAMCsqcnQ+bjkxNWBMP3NxPWN8V0Rnaj01
MG5xfX5DCnpVI1RnZFd2K1RVeHFfdCo/c2R4OykwZyk8IU9wY0hzNHgtMVpZUTh0PHh8MiVmfEUk
M3FfNFY3aiZ0X2NvUD83RQp6RUtpd1RhUDI7ZHQ/eTg0c0VqTFVrZ1VvZG1ZVFZUZFlRT3x4Rz5P
V2pFeFFlSGc8dEEmSjhxKkJMZmVtPUZ1Nn4KelJxQHZfJXBvSkVhbXB2ZEFMYiFUNykmc0Z5KWBS
eSFGYHd2MztAcmwzKkN0SXRTPHI7a0hKIUhlKyZzKGcmeT1YCno+WmcqYVczUFNsQzw8JnpVeD9p
RjtuO1I8cTM2VXpePEotZT1KIz15KSFjYEU+P3tuZDtpeGdhPT9kKU1yRWZnKAp6cytRQDFGencj
eHpmWEp0dE43e1hfRyZKUEVnWGJsT1pqajZTIT9hc1BOSFVfQjdubkAhSilGJk5JdSpgVWNZOzUK
em9KZ1RyMGk1TzBZKk1ITXNtWHFEJkpGIS05SHh2ZShYdCp9M3QqXnlFP01tIzR1b3w3RCY0fih5
UiQyNXBYPkJRCnpjSChGO3IlfjAlZGM2N3NjNiFyZU5Da31yUlFfVHt7RDtMa2FacypoNTBtZU9p
STUmQiprcihOakA0MT1aVH1HRwp6VkU+SDRMM20rbGh0WFBCWmZETkpgRHpMNHp4VTZqUUV+Y1hC
VVd+TlojMTlIQF5VciQ7TCV+fEo+KyY5aE5jWSUKej1VT29UVk1AKl9nV0Q1VGUrbXMoVDF9U2RT
S35uem4tKnxBSnNUSmBsK3NUV1k9YnVfYVF7R0lhQD5IezYjQGgyCnoofVNxT2M4PFVwJUsqWCMz
V0ZyQGFyR2xrez1jfG09dTZXKChjMllpeVUjYlA9c0E5bE0tYD0/JVg+M2dRfV55Ugp6e0pxKDt7
PjJeeiE4Sjk1bTdAMTJ2ODJ1JG52Z2VYK19Ta1U/LVRaOE5odzh0LTNMUGNpKl9adzkyN2JwQEBf
PGIKeiVMaE08aT41N3R7S2xSUllDM2F0cjBrTlNBTG92MUpUZmtlUFFiLW5JWUl2bDQyd1FDcFdS
JDhXfWJAUCMpYCR1CnpLWHJCUGA+eGU2aUxPa204UGQ2b1NudXRadXVNfjAxMS1yTGxJRzxxUTsw
fXkzO3QkN2xmZllsdWM5Zil8MkJFOQp6M3lrWnwpNXowKTVofkw1Oyoral5HVUNURUtLc3NGOChD
K0k/QXUoSmJOVWt9PF9TISpURUE7PiglX316M0hYfmUKekI/ckMhK2F9LUdIeVJLYndBZk92PEFf
elc1MXZpTEU8VD5FVX5NXzwybmJKQUg9MHNGV00mZFo4eX4wZnQ9fXtaCnpDbGtTPGlAI34lRkdX
R1IjbnojUUkmV0BRb19qUmRhWWIlISM2NUN1KV8lYH1uXnFwJkpobX1yOEZzTnU1d3lqdwp6Oz8l
RiFRZUspMEskSSNTdmpVQSFVYX0kblgrY0I7ZXtOMnska0RqVWw9eXU0TUlHYHZeKElvM3ZYPXx3
dG89O1YKek5na2VQJV48bXslQSFVOW1jQ1J1V2MzfnB0NCp4dnowKGwtS2NedVhucTlZeigmKjVW
YyVKM2B5aj19bUBOfmFmCnpVQl48TVR3OzVFJXNMajRJPHM4ODQxNXg5YkxmMEBjV2ByNDhtMis+
VFo+d2dLcHY5MC1EUTNjbD5QMnAhcCU2PAp2QFNPJThAPEdORk9JeENgVyQ0cE8lI0xtKjs+WUx0
I01FRVpIYUl7M0x8cmx4aWwzXilpfnwxOyRHUlkyCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vaW1nL3B5bGliLnBuZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9pbWcvcHlsaWIucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlMTBkNDM4ODY2ODYxZWJhZjkxN2Nk
NDEyZTAxYzlkMGM3MmFlOWEKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDgyNzYKemNtWDlAMn48
PHAqMWs5TTJ3QDVWNWZUZyNBVkx5UTJfaHo4Rmt2IUEjREl0YSFWc2h5KDR0c3RaJUNMP0JPc0dk
Cnpxb1Nnc2ppP29lekpeaFRzMSZKMU9CRHJpQ3xibiZpcV9adUh+eUB9ViYkXiRJczVFeT97OXpt
cStBLWVoRD5sSwp6MDAyT2loe0kqQC16TkFzQUJPfTBAT0xnUThVQkZFNjI9TXY7SmJrcD0hJSF7
WFEhUEpAfTI5cVhZU21Vbng2cCgKem1EfCVZPSNub3x2b2Q1RXNtajg8IUhme3RORmp9aGtIRDhk
bipaWXVPengkbz1IcURAVFNIRkdqX0xMTDJ4UDxOCnpiUSMmTXpyWCtSKDk3RSgkWiZTWSNlOCNS
KWhkK0Y4cmxBOSQzVT9DViZeWWd4QmY5V3NKaX5UaVM4YzBRdjdXQwp6Uzs7cnJkLXMzJkNOJCFv
enlFRm9mUGVxfV91ST9PYz52KEhNLW5jSy1+Qkw2aylFa1ZyWUBJSWBmd0JoPX5JNWIKeiRlZj5f
bVFTWk10KGZEOTBIUkUmLSY3WiFrWCl4LU9DODdwKHpza0kxZikkbSk7eWM4Y0Jzb1pSOXtuYnNB
ZSomCnpJIXl1TT0kTCY1K3NzNXZWanx5QDV6NjMpO2B0VjlNM2M5I3piX3FZWj84fEUkLXB7eTRJ
P041eHshK0RyelM/Vwp6OWNzPWV1PnI4eGJvWSp6N3Rfbmp1YWB9fiNrX1VmLVJxWGNqYFdHSF41
cFZgcz5vRD5QJHJ3N3BORFBmbztkck8KenNvR002RCtSUWVBb0FOcXZsTj8xM1JzSlV5JH5pQzle
Nno1VUcrKXU9MUVNP1RaRXJ8M0RvSUJAYyNANHBASlRnCnp7V0JZY3R6e3c4MDBKY3lhK2RuflRF
cHcpUEUxTmBGZzN8MF4+aUh1VVByJVR7MjVJKlpGMDU2K0V7ayYhXlBpcgp6QUhMMTxfVlYmVCp7
Mz1uVkg8dkFwPVRuV2ooUm5Uey17WmUhX2dze2p3Vz1rdUloKih3YTx6Sz5DQHZOMEBvSHQKenJL
Uk99ZD1pOXhGbHFYK0BMdWd6Q0tKYE00eE5QUFNrbyp5VT02Pmc2ZUpZMnJ5fip2bllWXnx0emE3
eWdoN1B6CnpAdjIwPiFhX2YpcV83Wjx5eThpJW9uMmItP2cqK2E3NGB8SlFsJjZiIVlMSTQhJD1l
YmlEYjxtYkRoIVltSXdlWQp6dShaQWdzKm5zc0JsO0ZWTD5Yd20paV9yX15RNn1DJHV0VWZUcUBe
PV8zNEU3YWg0Wlo1cmNUNkFpV1dNIUQxPTAKejZiX1c0aj5KTTNlTyY4LW1kITwqaXoxPipUM1la
Z3opWWQxcj44ejI8Q3l8dEBDdSkpISFfdl4qcTRWRU5DKHUmCnpGbHN+VmJuJHBiMkVWST5nUCNN
bmYtKHVUeGxES2ZPXjJXdkUqRWlGRVleZ3JPSzZVKytZZTVvRzd9T0s0OEJtKgp6MUleMWlpXlZJ
UVU8UXg4Wkw3RGRNPzNsNkAjO25HYlN8eDsxbGQzOVlAQytFJlA8MElmKF5GbmFlXzljY3NLR0QK
eio0clM7ISZubVI+PWYjdXVqIVR2NipiPjYmIz97d3JZUENBeysja01ASFVLKkF5X0MqSjdoT2dK
QjR1YDh0VXlICnojRkdkcURma3FfaWdDVjJDdipwNEYtYjdgPzg2aXxnJStnWHkkam1gNyFHLVo9
fEFaVCRgb1olUklOWmdDbz5XWQp6VTUjOzs8ajMmRUNIUCEhMlVzPUJCRWoxfjk1IUprY2lOVSQ2
eH0wUWB2PXx3O2VhTzdYITFVa2p3eE50TTh4MloKemh0TXpXLW8zayEyP0w/b1FuSWxLOWU+PCNY
Nml8NXkmaEUpNXxUZ3FJVGAhPSY5X1VFY3x1U3N0dj0jM15jMm9QCnp7Z3peckU5U2FYVERHWH0+
QEBVR2RNV3FBRyNtPEJldkFTWWxZJnJaR3otOWU7dXBrJGl4JkxGKWgoS3E7Xkh1dQp6aDZVYTkw
JE5qVVpVMlR4TGZxVS0kOGVaJUI5PmAzNUVffnFHIzdea0BLdVNLN14+VnlhVHY8ezNkN3woITZ5
U2UKenZrY0Q1NzM7ZTBsQT9IfkctNyljc297WDs0JSpySyo1RG1EQkwkdlByYDB0c09waEhQN2Ri
e1Z7RyF2MUN1JDspCnpaWXU9PGMmfGdwPUcrUjwpSmxlamhKbnxwSEFGNFYqc2NKKVFGeyg5aFQr
WDFOK1Y/bDdIOWpldXckKFhLbTs1Sgp6VDdtNG5KSn0xeVc4anF1Wjd+VCt2Vl4oflIhT31hb0Y/
RXZFcmw3d3I7Ul49dExKIShiRjBrQ1QjR0cqVHQ+RikKeiY3Tz5ZNnYtYX5pZGFiSlVjeEJSVHQy
Y31GeyNWU1ckP003bVhaaEpge3tRYF9TOCZGNjhXfHJYKSskaWV4ciVwCno1eHw5IUZeV04tYlgh
SCpxI2VUWll2fjlDNjc3T001YSRTPjluO0hsMz9rcCNoIXo+cnRqaWo4ejBqQllUe3MpVAp6PXh9
fF8/bWwhLTF8MGNwPWRuTGIwNk5vXnp0N1dDQGxVbEtralZpSF87Q3NSNm1MblE5fj96fTRVYCRT
RXA4dHMKems4aFFkc1p1NFhRZFF+JU1QfSp+Z2hRUExYdXkxa3ZIX3VJYDs7JHBNOEslfDJDZDVu
aE5KVVJARzJjQG9VKihECnpmWGpESSh9RlJkR3BEZzBYdDQybnFNYCl2c1BJIyRDJUhyLTdNSWwl
QmI/YUxeSDRMKWYyTHJoe2d7Rk5CO3QwRwp6ayNxKytOYEBhTGAmYlIpK01MfGQlMGdDOzZ+SGx4
cSNgPipMOyo0MVYmZmdrPUVUR0FBUmltfUB6MSt0Zn1ZTH4KenR2fVV2UmJaRnIqfDtYYzR9SSlW
ZCtjYWlJQCpTR3JvPTZANyh5UUdDRmVPdT11VFhrJS00K08zc3dxcTNSfmV8CnpHej04ZWRpI247
NHdvWTtYXzx4bD09azJ4eWhgc3dweGE2WUoyPjQ+aS08SUwwN1BBQW4kfCVkSGJxKUZLKUlCeAp6
WEF5U2pRfXpZPyV4d3Z3cHdnK3BRei1TVGYkT2tMTU1wTiRBSVJmS05rMitCZ0x3KlBqNSlgRV4z
aXo/LThTOXcKej8hNXpkMW9iX3JVdm9VaEM2aXxDd293KzxzaF8mWSV4MUdvSzQrXyh1ZSt3WGEp
ZEBTT1N6JE9ZTjhjZiMtPEhyCnpSVUFoT042ZCtpaioyM0A8NmgpeDdtfU16P1JTXnJHTGJ9S0ww
bnJ6SCktJDlObjFeZ147MCpZN15CRjdJWmFWbgp6ck99azU8OTgyNDRUKFZHVnIqdSNIZm57cHdD
fm96SWVWPEg2dzl2bGZVY2xkX31hTyNqPXA8KTVrT0oyYmp9SzEKelNXSGJ1VEU8ZiNwbVZ4Yz1z
c188X2VKdlJrQVNZeXItbE5wejhPSDskOzxFIXRMUjxjO0xiJD9LK18lRHlhQ2FeCno1dHI+P0h7
Zmo7am1FSDx4OSpUfk9uRSQwJktHPHRyWFZsUnV2QkRBdk5hR0k3cipjZjEmdFNIO2RZN1EjcD41
JAp6V15ETmQ0WE8jVjs+VilvclBjPzsjIVclR001aEg1TzMrdjchZzNVRCMkREx7O0RMcTVsfSRR
YClPJVhpVUJuKXAKenF9V2VRSndzaUtxQjZUTTFoPiNRJmpmP3k9SWxWWmNCOGxtd0VkJm8xYmh5
R240b0ZHPzhHJEdtTUdvKiR7SlYkCnpnWUJre2IhOWQ5d3REVFJEc2EzdHQ/Mlk+UGxoNHtpclEy
RikzOWlIWX1IISgrR3h0ezA3PV8tIXVPdTclSURocAp6XkoqWnM1YjdxPTQ5eW41MU5YYThyJTUq
X1dwPkZ6JG9ZR0FefXU7fGRFQkkoJE5eJkpEZi1oVUVlKnc+K0RqNWkKej8/TDZJaGN5dW1pKWdE
eEMrYFB8REkyYiRrWmtQJDk+MWdWQWBjOFpVe31rQXckMSRpMyR2eXE2dzdhKjhfIVBVCnpxZnRS
Wj89c34wckA5UCNGb1VDYTxHMXp9bzFCUjl5fX1xZk1gVDg8XzxPfHQ5RDROVSRZZUpLQSpDZ0Zr
OGdIXwp6TUl+fVcjVmhNS0t6Mj1RXztPN2drbTAyJEA0flpwTDtNWFFzSExYOUp8ZTIzeEV9NlJn
OGwySFgtfnM+bTJVUmQKekVAPzU3V3xtKCs1bjs8XyVQMzhhKGF5TmVSJVFAaTZIQ3lTKWRzZT1x
SCVPfSkmVUxwQWZ1WkVTRFdTeEFka1YjCnp6d0o7RFBONiFncyN0cTFPLTBhNDQ5YnlyZDM7WkU4
fk1PQ2NibGxpQSRVdDRmOzxxdXpVQzhZQlBmJmspfVZWOwp6a0JoNlR5enlAVDU+VkQtP1dsKUVq
aGRpfDA2OURxMVJYNWJZJFZqYnVMX3ktaVR+RWcxQHxlMCRFbWM/ek1GbGwKekBoUHAyNz9lb01K
S31rWmVLM0o+dkZCX0FUPGptPzVqaT9LdyotdXhzKlV7WDJCcDI8QjdLfGBjTS17WjI5NGRhCnpS
YkJgQmFwdTZ0QFRKfmZXR2hMLVcwO1ZlTUdlcTEwUEQqUG5+IzNtRzA3IW0+dlpncCg0ZWs8bXw2
dEMkSFVaSQp6JVpNMm5se08hZEtzRCY/JDA8KXpISCRuXnNac0wrczVTJm5gYDlWJEdqPCNXJGpY
aH1kK09+YVZwcz9zV2dObHMKejNYMyVqSGdKNFQ8cG8+fVU+dnJtOWpsXkZmMSt6NClzZjI1KHhk
eWBwMFpQeEReP2U7YkcxYXFoNlVgYjE+OEVuCnoyZC1Jdndebmw8Tl59e21Sd0B0YV4kTUZ6VyRs
d2BVNyhGY2Bpen1Qb3RkRiNfN0dhUjtxPjM9RCNeQk9uWX1iQwp6YEhmWnM4eiQ4PD9OJHx0IVRm
bSZFZnpJY3BLd0NOdGEpbGAwXzgrVEFoNlpuJCFjM0BpVjhrYjExOUkwc2NOYlkKelRLQFhNI2J0
K31Ha0FGZC1jVX13MikhYzQhTmd6R2grKjNeOTU/fSZMJTxEPiRfXnwtMEtQZSlhWFlfKCpnI1lz
CnorPEdQZzYqSkdueDJlSE8/fHFtIUtBKEw2JCMrZUQrPUUyUklgWj5qZ1lMaXJPc0x3KURuTnJE
NTcjKWV7cmNFdQp6dyNPM0dyTWhBI2A5WXZrbWUqRWgmbig/eHU/PlhWZiY2a0ZmfHlJU2E+fURA
RVcrbjxNd21qV20hMTR5OXtyKSMKemJqc3M5el5FPStfTCMwUXA8eS0yUmBkdkMxRyVCcFJLPmdm
KEc+P0psIT84X2Y/cz0hYHthVXtPI08kT2RNUnFnCnoxKGcwUiNNUm87WituVSNLQShtdVM+ZlIw
VkoyX09TNFRAayZReyZ8SCVBcHpqeURHbkVze0tDb3RKcnI0Knw8cQp6dDxlNUdicDJDe0p3YEZY
O3xpVFEje00jUHNZfmxnUkljeGlBI3UrcFlmY1o4QGd0cG1tZXdtTVVraSprQldJWUYKelpWQSpt
Jnl2amdKdVFgczkofDhHVmtYNTlDUUlCYHhKJVQpdVNYRHduMzNRbGd3b2RRaE1xRVRzNXUjQ2ta
cyleCnpNWEAhR05gLT8kd19LXn5CS3UxfUIzSE9FQ3J7eEtRPDFwUXFAcFVpOzkocypoSkZ0d0tL
cyk9PX5ZZFU1YzZ0Nwp6X0J+akJqTG9LbjVBN05lSVckMXkjbDFwP1NIR0UhPFJRb1pYWXBPSE81
M1pyN2NUVStuPXFyVntNJClDUmtWdGIKenQ5citYdjlyYmdeKS19ZUdoUm5VSUVLPktMOzxtfHZl
Y3tFNXo+MUNAQWJ8KFA0Pk8jQ2FMX2syY0YyUztRXjRYCnotXmlCUG4zJDBna0c0WEw0PnstPj5g
SmIpS1FtNXZoelR5K0E0VzEkP0NQK0lPTF9wNmI5cHBhZ0toaGJJMyU3Vwp6dkc8WkAjb0p+cSZL
T2lyTnFXeDxBKVAxNStyYXI5V240KFJNZWZZRFYldEkqZE18a1BLWlRrQGZRbD5PZkgmTWsKeldo
Slk8OU8xZn1ASEFQS3FiMSY0c3lhSF5SbGZGSk42KVhfYG5uM0J0KGFrfE94X0ZCVUBwX2B1O2pp
eE9BWllMCnpHV2NieGo7ZHNSTngrZyRGe1B4YkFIeVkyU1Fsajxla3p6SU9GIVlqXit0ZUkzXnpD
Q0ZKWkNUPCU3PXt6cD04egp6SG9LMHRxN0ROSCFGZkApWH52cn09ZjA9RzA0TlpyRFIzOXlrP1Ny
XnI9RGI3RjFDSU48Y1hxbDZfMWBnUSlhRjQKemQ2PWs0dFh5bmdXSTw3dj51aVRAOD4qWXA5Iy1v
Xj52MklnZiojQCtBITZ4bmpSWWU8cClMTDViSUFHdil4KTtpCno4WW5AfWhOOWBlWE5hflEqSCZ4
PGpVVCNBayN6WERUJlBrQk9OTD8+e3BnfD40aDQ5MXAhaF5RaSRAfjBaNzI+Sgp6K251UjZTNnhx
cGlKfmA9SG58TnN2b2lZJS0yO3tpPSRIUDZGfHRZTHJJQUd3Z2RNQmZlej9vRGwhKUxjVmhKSSkK
emlEe2ZoXjs7UnVTeTx9fChlPm9FUStVU3ZEcm03Xmc1ckpfVnAlRWxHM2RpPzMhZDNjXnJNdkN6
KTxObXc5aC1mCno1VUVrcmJCQiZ+cUd7VD5QanxfJEhYKD8rM05RdWdqVG17MXJUVGpWeSVsa3Bz
YkhwNEw1bFBhYylnan1rVjE8UAp6aEpzZ25UVStVVTRLQlh6WWtXdyMzN1M0Ny0xeE5NR309TmNY
JXQ3cTQyUEAzbnNXR3RSZ1VVTWItP24hS056QDYKemR3fStUUDNIPn53cDckRjxweDREcjIpZiMj
X1k4QzwhdDxHfE5YVlB6Oz9kck03N0FZJEV0U2oqb29+aSY0P0omCnplWlpKVnsxZFpWVHZfZm9l
ZyFEVlplQE54JVp2NCVpcyZYaHt9Q2hJeX1NbWNAKzdfYkhPaT5uUjNTNChGNmxoTQp6MWFpdXV2
alFRJUs7ZEMjbFZoNXl5R0pkfUpRZmw3KE9wK2ZGSiUxMjxDSSFZe0Q0VUUxSyhzeUBZP0glcWhf
fEQKenBWanN3Q2EwP19ZMWUwSy0xJlJgVTQlRFRUJS0yYVdRNkheSHxZd2FjNXVMPllIV1M9VlFM
K015YTgrfSZofn1YCnpDTSEhflAmKTQ4Tn0xcClZeFozZnkzbkpRX1YpY2w+OTVEJm1DanQhS0xy
e2RMdmhJYVp8UGcwbzVIQjhXSn1ZeQp6eE1aVEEjUXJiVEQ5NFBHcmZjPFNHdTJBd05nQGojP29I
MChXWmFgbEBZTUVeUEpDTSFlcypvejNPcit8JERpMTgKekxrcSV2YUc4JWhic1pzUW0lZz1vWHhQ
YEl7TUA9YlJXQ08ydl5TIzR7JjkhcmY9aSlEKitKWERTKWwhPFc+cipqCnolSmcmMVV2YShzIzso
T1NqTHRzR159cnBneUV2Sl8jZGBNSmRHNmFNWj8zKnd2Z2VDWWc+T2RUcjFseXRgJSZ6cgp6aHhY
aHRNV0ltOFZ1IT91USpVfDRjYiQ1WTAqZUVUSXU7anVXdi0lWkJXPjRlOyFqeEo1c1h7NTx2RGx2
MT19VE8KenVNWGNgcUcyRmJ6KD1HXy1qM3NVOSg+Q3VDO0h6IWgrcEFHaGZFaTcramV6T28mXzNJ
R0YqRE56UWsydlE0TElpCnoxUWoxIyQhUDlwdWRQKVh0Uyshdzw/MyEzSlh3SXooRiheKEF1am8h
dUl1aj9nNDtweyZOeG98VF5uQS14MEx6Twp6cUwxLTxvV29QYUF3X0B2UGxjMX41aGtta0AwaEpm
R3JId18wTTs2ZEBHcFgxJFpeSSRYQVhDNyU3TiFmWGpQdGYKeiF3eDZTZT1yc0IyLV5BI3MzSjta
eT9ST1BBTmJlaXNDTHI3QWpId3FqVzl6N2IqfVhEaE19T2A2Wjh4bF9Nd2JoCnpTaVJtY3JvaE4t
LU1zMGszXmoyVm59TFVzSU8waCVwUGw0bHJHSiQjeyFaMVFAQVdfd2tjak0pYjh7V1d4NDx2fQp6
bj40fk9VJEpwTy1sej9FKWE1YGVPcT4lU3tsXjA1dmRlVEtLfmJNO1ZEJmoqckVEMWNxc20+K05x
Y0ArZm9VNF8KekxAPnQtY2s1YWdnekcmbGZDUTRxQTdjX1dAa0FxIUk5QDZEMWQqQntucU9rczJ8
P35hOEJQcVZiRkxjaz4rPEkyCnpvMENye3EwO2ZVZ2VrWFZGayNsTCYoNlMqT0Y3WlEwb3Q5S2Rr
KE4yP3Zlclkta1VDKVBacXFNYHhCUUZxMHo/NAp6WH4qI301YUJAISN7P3pDNXtldlFgaFdyI1U4
TkMpNXZHfVhkaWIqWHohZ147OFZ2TjJKfDBnVi12TkE7T2RwUXUKejZpN0Q2WlEmT2U0dCpScXtl
eF4xOTE8K0xeaEQ1ajFvN1dMOEhDbmUhfFNaUTBeSW1PWUJsQWxCaioxM05oe35tCnolYFI0fU02
LUpoSzMwS2sjNDBmckNKc0BhYkcrLSVARUIxP3VPUHw9MSlBaTMhRlVHY3MtfFRBZ0ozaDJ8TElq
OQp6eTZYLTBgITYxNzteMD1jXlImPjZjdDRefj95dk4tWnVle3lvX0ZvYCk1ZEl2Sl9kXylfVjJX
cmp0bGZoWGcte1MKem9FQShhUWVGeWF0aVEtNiR6dVdyIzI0cV5yVipEZypuV0NOKEo5LSFlVk03
LTZoKEgqTHRTRy1wakFAYWNBO2VoCno8IU84dWd5UDVfYlFKKlVgXiY5a1Q/MT19MmB5LXkpaS0o
MmBEdjthRFJlNUJYMHBNVTIkUGJEc3FtKSpTTEJLNAp6I05JPCtHd3hKUGN3O1NsKDxyfkdAWnNN
JkRrckI8JVNeKWMmMVJXUXJyNlBeazREUUklNkYpX09IfXB7TE1xWWEKelVMXlNqQzF9MjhzZn4h
UW9jMno+YVRKa3JNbkMleHl+KG1FSEQ1O2orR19sMXNYYHgoa00yJS0qaWx2OFpRQ3JrCnpNPEdt
filUR1ArN3phKXY8ZiR8cWNiVWBJcj8wc15IYVQ1Vk9ONzRXPE1tVURDSHJ9RjJlI2UtNmpNaTNh
Ml9TaQp6QTwweyVKRGhTI1RSRHlzNGtLTHdzZk1xZ2NCPnNhT3lsWTNkVzxjYmI3ZWt2e040KWVp
cTZhb08wQ1ZCcjZqPk4KeldMPSglaXtiNUIzPHxobk5gIzVLT21qNGg7eGV7M01qVGdEPn5MRzA/
NUJVK04hakxyJUpoX35PeD5nd2Q3V2NsCno2SU9gNFo/TU08NWx0K1M2PDtreEo2Qkk1bXQ4ODxv
RnV3c1E9QkZpRTF5X1ltfkBheCRaPCtnbypvUTlneFN6Rwp6UipTYkckKSMlWGw0aW98X2ZjSWYh
JFoyMDZOdGtiXzhQVll1UVkxV1peRyNuRjQ5Zy1hMD1hQCgxblJLXntAPz4Kejtmb20oK2pnPUBu
b040Mm5tPDBQOX5FMTk3amxiXkJNKTdHQFdjP1ZLZENafllybDBKTXk9QDlxZUB4e05AOFd1CnpA
eUZLUUVfNGcjQCtYWUczajFVOWpaaklIYU1jIyhSbjN9MXQ7fWBKS0ghZFhBJmNDUSVkY0tFOTxP
P2JUdzxnMgp6Vj5KbytnMGRSeHJ1JSYra0U0ezglQUpKaUt2K308bE4qRSFPaUctIyltZT9IN2xr
dXw0cXBuMGMzJSh+MVUwMz4Kel9SVkxYKU87ejlMejNUVnFnUFEyKUd3ZWFoa0VFRVFvZGJfYnc7
NnJRWkw9THJKUlBfQDBpTFl1b0w3cndGVSloCnotQFFHeWEoQGBERjd7YWxLTHshbXhWcWw0KXFu
RVBQNnk/QWl8LUBQUzVJcGwzTVF4VFZrPV84PXstMyVpbCFgcAp6YFdNfUBPc35weGRGWW19dylU
RndCM1ArIV9DJloycSl+S14pWF5mRGJvc3lvIXZIaUxCPDl8fCtlaH1aVGM5QHsKelQrRipiSSFf
ZENhMnpqd2ZkXjx9ITxZVTclUj1LUyhAdTJFUz44WX5tZVVjYCtLfFljSm1XJGVIb1cmVTlJcnh1
Cno+KmVIZSUrSWRhRDxAUkNUPEwoa3BLUW5sd18jR3hqV2RYIztBSkE+JTVfYGgjQDVkK3VAfFpI
aG1IbDI8KiE3Zwp6ZDZPRTlPMDFFVVJ0NHIxbEEtfl9wVTRXYm5nSl4zXkU7LXRaSEY9aFUwREQ4
Z19EQkEjNU54Q15mSCh5Jk9UYiMKemZeaUxySlpuNE13P05uR1NQJCV6NCRPc31FNXdYblViSz0h
PFo+bVoxYi07IW85ckxfSExpUE5ea2FrbXElJF45CnpCYW4wZks4TXhtVzdsbyR7VjAhM0lhQE43
U0cjOyExO1RJJT08VHRmPitLU1BlczM3U2A0OUxEN25CUkJLVXBeawp6dldmeWQ7MGZ9Xkp6QWdx
cXxNS0BIJHpxJjFzKkVoazlVUyRGZmpGd0JebUB1dUdDTn5eU1lEYjx3PWhYQV4wUj4KejdiK148
S3l+V08hfHJxejA4aUE7ekhPLUlyUmBQZF5XaTwmcyR0WGItKC11elRIVkl9JVdGJDV7cUFkRENp
PjtGCnp4cVEpKjJyKiV4OXRlaHMheCRYPHQ8NlBEaUJ0NCpsPjlNMEMkM05rPylASmtUPGk0SkU8
cD9fQi07PFFlWU5JQAp6eDhhJVBrfE4oM2R6Q0k7ZEc7UDFHcTMjJHF5QnBDJX1Hd2tgTjIhYFo9
Wkg3bDh0aG95cT1nbCNzYmljP0IhVFgKem1MaGA1JF5SbFo3ZmxDQjxfemAkclM+Y3xheT1DRUJT
eyQqPnM8VEF4JlN7ckhgakJHXiE9IXFIU2RyKyZLbiEoCnpEPStgKVBfKkpwQSowYGxvb09rNW9Q
Q2JTYUhnUHU1cjB+RT5hLUtSPVYtZ1l1XyRNYGNOSFNHcSNRaFlQYXRXUQp6MEFKKzBqUmotQXIj
MUBzd3pafU9NTD4oUjl0Pk1GbUk5WlhJMF5ZNFpIbFdZNFA8ejl5LVBNd0x3NWZVLUZZMVIKejwh
OUNzTm1aYEMhZnlDRkJLc3QoeDB+UXkldVNqeT82bSY5ejlPdkIjWXVkbi18Rj11eGNgcjw0MmBx
YGhTN0N5CnpjMiZyUnFLNkIhWkhxVENeNzJNbFAqOHBpYVcrZjMjJWhlVXJVMld2ODJfZSlldCM3
JnRlVV5GZ1d9czc7bmhjSQp6VG16UllFSjx2OWtYOFFEYlgjN1omVWE3NEg4a0h3T1lZe2xjN0Ex
YksxSH1ST0w8ek4+MlR3NEhGY3xTIVd1cnkKenhvZHgqd15QfHMmM1RwYVdWN05tLThBUzhSIVFO
b3R8VSpxJSlwZWN4LTtTRlhDYGJ0UFl9S2VadHlaKSNQfjJyCnpSdF59bGYkI2I/ZmRjfWg2WGkj
KHlWZyRyPGBROERhPnE8bDt8Nj8hR2dDKipCdUM/Qk1qeCMwXj50WGMlWTV5WAp6SENEcXZrSH5i
JDhOYzJDeD9jVi1ga3stP09jeTVqPVpPamhpPUlGY2gtb1lGNmkmVmZeaTJZZD1TLUprI3JKez8K
ek1YO2l4S0xBRHJlTigqYlAzVGNZeTE/KDE7RjVDa1N8Q249YFRHZDVCaEk8XmQzN2RnNk1wTG1w
YmFObm1QISFMCnpnP2VMa1gwT1gldSMlSTFWYmF+cl8rKXF4b3ppQzR3Sk02c1JoJipLYWZ7eW97
Nk87MntCJGU5V15yV2h6MnNeYAp6X0xNQ1peSEZQND9fOzY5U1RRMUckTnJfcSVFTENUOHxtI3Fz
bG8pfWZzYXdEKFY1Ri1YZ0UpSUc/RCUqSjk1O0MKeipNUzxgVyE4VTt2JTBKeEhJP1l7eyUoPjFG
bjNSd0MtPjJCKDI8ZSprKi1sbkxFeENGTjFzMT1saUJBbkNAdyFqCnpkb1VpM0tMY080alZ2SUg+
LXg7PmZyXj5INWVSNkZ2PWd5eWs7UlYwMDdxfSVeLWRBSCQycWRhKj9abHRAMzlVYwp6R204NGM7
anUoTygjez5MO3RkSjxyNDArYzhBPytSPnIrfWchaHJzPHlTZiFrJDw3cCU1WXo4S1lqQzA3X0B1
dkMKejJsJlRgdXRQbENvMEVxeiszejlKJjN8IUQqVE1aQlQrUGZgTiRoK1R7ZENeKHdmbCM3KFIx
Qmw8UGE2fldLU1dDCnp8MVRKSmAtQGFlJF5odEVqQGpfZShDdTk3b2ZrKjYlWGdrPktoTXNXcD5N
ZU1XVyNuVkppMT0qc3R0Q0QtKitySAp6MGpKXz08NEB6QzlJWnBmN1FRdUpHVGNTTjY5dXlFXn0q
enVKOzclaVA3TDMpRXFnIU4kfHFsKiN+Z0sqdnxDITAKeilHOTt0aGhMc3podHB8WUV0QjdlVEFo
OHByYyNrJCg9QTI5KzJpN2FiNilLcnhgVzc7U2tMbFFpNSlFXlQkUWcrCnpjWWokQG9nekZLbVZp
ZFZ1TWdWR0FgU00tPmxyK0lyPz8qNl81dE15b2NVN2pjc3whTUtZJH1pOzx3PUkyYkBZUwp6Q3BF
ODtRJnt7WD47NDNgUVREOShxfG9VOD1pISR5cUchVTZBXiRVfVBBXzQqaEpRKCRtbzJWdEBubVk9
MWdaXnEKemFDM2lJP1olT0dfYDRMdmVzfWR6O3lDSH5XTXB+bEtJd0M4e0lgO3RPe288e0psMzho
aWwoIVE3JEp6SEMxMEM9Cno3cSpAdTBKXl5WIXtGK2N5e2BuY0lidFlULXVYdlpmbkhjYDZYXiU2
QCQkK3FNXnZuMWMjbUotPEdONDMxKlJkRAp6TFAkd3lEYXcrYSlPQnN1MzRhS1E8THY7KG9KODRR
ZzNPa3xWYGFRPG0lZzRtejk9aFVBYEZvemgmOytnbDItXmIKelordCowJk5KZmgxa3dKWllwbTk+
SVRhUEE3UlkleFMtSn14eyZIYVVNa3s+cipWWEs0PCtLflFmcnRhe1YkOH53CnpXU1l5WUtHMWA+
dDQ+ZVpeVXxMe2xxZiNVZztnSkdoaSEhfHtoOyQxIzApQWxfdEpOPiY5YyMyazdlc0A8VF8xMQp6
aU9IbklrYHZlTU1qKzEqPjhhP18jWDshTHoxaVQ5ZCglKUo9anBfYm8wfDZjUmFGKjwlNSYmczRC
YENKKjdZKC0KemFwRmVBPUNpUD5wYFJgZnlFUCZSaSleMn5sNFVyeWtxVXBrXyZjaihpVHh7I2By
S3kzKmRlSEhZZDZteytoX0dBCnpNN3VJSGBLZEd1NXV0RV49Um1HX2twNTk4eyRIfTU4bD9UU1ZF
O0BIVkh9YyhON2drKEgjbSpgcVY/a3s/SjxBRgp6OWF7OTBXaEM/K2pHKldyQTMrd0JwWSRreV5W
bzB9aVFAcEJVTjNqT3wwU216ZlBXK3JhcDR6NGlsWUFtRkhtP2UKCmxpdGVyYWwgMApIY21WP2Qw
MDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9pbWcvcHl0ZXN0MS5wbmcgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vaW1nL3B5dGVzdDEucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4MDY0YTY5NGNh
OGVmZjBmMjE2N2QyOWFkMTM2MDlmOWE5OWE0NmUKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDYw
MTAKemNtYSlBUzUlV3h2a2c1bzBSZD9OTFhVSyRoPUJBV1JVKll1QntiPFpEIXFnYjApaUIhaEAj
UiRNK0U1dnEpMW08CnpmRlFqfUFrekRkX3JGaGYtR30+ZHpGQk01eEF4Z0hZbzlZYENjKVQ5aG45
KyszSUc3bT5PUm5YTTZnK2VsP28mJAp6ZHw5Vj9ZWTJ3WT1ZZlNrMDNnb3laeElFMlIoVmN2UVhx
NTx3SjdHdmlLdXxMbVNWNSMwUlI+QFR9P0k5ZlNIfkEKekttXmxOVz41UiRpSFkzdHIwQUB5P3hJ
ayNOR2I0M2l7I2BlJnVZZGNZMlFFSHheR21DQF9kJkpAPlVKamAyRnVsCnp6WkVePSN+WS0tbUc2
RzhQVkMhNVBWKkhiKXVScFdoPEY5cWFkfjJpZVlDNEBIcEVTPEp+Ml5JPjd8KndkTn5ZLQp6bU51
N2RQYU5ZfmNpWVp3OEtGI0MjKm8pOXg2SXAjRT05NXo3YWZqaVF2Z0RmWXd2PisqI1Y+OFNZKm4o
YTVFbj0KeldKYEchQDc/VklhQ0EpRkNhfGQ/ajFmNyl3eDhkI3JTcSFjTihCSjt4TmZ4a2FpbDdh
YiswJDxjVjRzOV9FZVI2CnpyZHkqXjBrdURoVDBmeCMwMHQ5WiRTO2NtISh0eE9eVGZCZ3RCe2U8
VXdBcH4oZ2FqcTdPKmZTUHlxcmBJVTJ1bgp6UWh1QVRTXlIzd1YoKiZ0WVA2a2haUFJXdGBZZ1M3
PlBHZkMyJCtDdksrTT4wJGIxSiFnQyVGXjlgQGRqJmhiUTIKekNsTlAoYVVGZUZ6PEJkM21WQ0Jg
RjlJQmBaMlpZdGg/STlFTmBFOUdAUVBPd3EhWGp7Vk5PbyEqMnNSTiV7Zl9ACnpxI2JLNGw/WX5o
bDFwYmZoSSUzRFZoNktxQ1krSSNefWZpTmh1T1NWeygxU1dzK099RSZ0MFJHaUFuVSViQkVPKgp6
JW1+dnI4NDtJTlJsbFdiZXBGKGNVN0w4YDsoUE92PX0tfm9OcSY2eSg8QHZHIT13OyphN0diRnh+
XyU+LXd8JD4KenFHOHJRKjgteC1xX3VIKTgmPlpvQVNAeldRVnEkbG5xanQkSWlrJCpZRTwpelRJ
a28lKnJRJld7JGw3ejZua35LCnppSWY/OUsjUSUjYGpTUjxnX0g1cjxidHNXO0dadjFzejgjNSRB
TDg1bSFUZmVlV0RIT1RmRDdueGAycHZLYUxzTwp6dndQaWswN3FuSitgPUw2PVAkJit1Q0xndEVq
Z0pkZCVyKUt1XihaIVRAOVdQQiVvZ1ktcmtQek02PyRreVVOQnEKemtlK0F4bmRBPmw9Xj4keVlN
VndzRXt6bUhRJSYhJWg2RmJrWmw2fFl5Zzc8NzlBXiY4RGA2fCNjbV5WUnB4elpnCnplNWRVI0R8
eGg7e0pwYEZvJnhlezZPcmFaeSU8VkVOIzxLSTxoeDglMVZmZGlQRHIqZjk3K2goNiF3MytDZEg2
bwp6O2R2JWE7RURJQ3BfPUpJZilLQHxUfHs4I2VmbFVoeUYjaSo/UjJHMW5QM3xJN185X0RKdkZK
YUMtWnRYSlRkPXAKeihTLSEkZjRJVjt8MkYlTllZc08kN3xjdDVHbmxka3FUVzxlSyRVY2QkYStT
YHp+WHw7O0FFOHVwY3hyQWBBOW9QCnozbVBsdkFTZzMlY1AjZTMpYz1FTSF+S0t2cHB4cFB2P05H
M2s2NUl6ZkR2d2JFQjFCfk1PcT1zXms3MkJaQ0V7Nwp6a3ZaIyp5Zl9JY1RhOChqSz1IcVcmeUR6
Qk9uLTNGRmxlUDIjWD9LSXxEI1Z4JT5VM1F7UWpTYXsobWtVRHtkTz0Kej5fKlgyZipCKVk+fE1Z
a08pb34kTWF5RD1AKzhELT9IRWNfcyFuWHlfbXAjZ1c1LTcoYUlOTGpXZXE/P1NfQnxCCnp3VXth
cS1FOEI5a2ROQmk8MFdNUExndTF5RFRvLUdPN0lxVz1vRVYtZWM1fjk5eF5AQD5sRn15KkhpcHti
djJAQgp6MkBDaH5lSk9pT0shTD1UT1hzWGJDZzNxTG1CclZpTCUqVGl0VjY0cmR3bk5OU1g4VFps
KDhFRmNYZ21kTkhzPkkKemw5c1AwYWVCaWcpISQwVkpVd0BPbnlnM05XWm8jcSh5Y04oOEpDKkFf
TEp0UHRRbj49cVckPHgyN0olaV4hSjtxCnoyP2gzIUhtPHdrJCl4bTVudThCa3RMM2VkJFNoYGIr
cHxRIzNvaCp9KyFtbzV6NyN5ZmVXVFM3WF9TPFROel98JQp6Qm02ZlkmLUNQMDJlKXsjLWdrQjJm
dzBwXnl3WSo8eCZaYzJwV35nam1SNFlpNUgpZFpNYn51UTNsKmN1e0tUTzIKelFqYDVeKz9iQX09
YSM5QFIpWTchaH1HOCptQUZxVUZnR3todW9IPmo0OyFJNyZsU1V0PmFMQEVjaFclRGl8cnhZCnpY
QmtZPkE7ZWRjeGJCYH4zUHkhJWslOEwxWn11TXhoc1Ntb0AhOTQ9WkR4d20zIzczPTRzUkpvJXlY
YX5PWWlNKAp6WlgxKWwxSyY2Yip0NmNENTFPbWRgTVVrSVhhT1RFb3RPK05hPFJaWHZtcWl7X1hy
Qyk/RT8mQm1SPn5DSl5iYWMKenpCUHk5PCMjQWJyQU1+NGdfKVhXYm5QQjVjU0xIKUJsaGwtNT1T
UUpTbEQxc3M8T2tQRWIzNnpMNUcpcHtXWTRRCnpKND9ZVnttfXg2I05zY2tkayl4c0Z9ZnxKcXp2
NEZWcjlMPjQtfnwxOTB1KGpFRHxBX2tkKm5rMHVobChvQDJ6dwp6XyRUPWQlUjByTCl1I0Bye28l
b0lydUo2SiNQemJsbE85cCZxOVJEYzg0fE1lZjwqX3ZiV2MoSUJgSCg7PyV7SjUKelRralZpeTg5
TVFQREBYbypSdSlBUVVoSDROJXhaSjs7SndHbVQoZHAxS0tHeW4kWU1XWEEtfiN6RnVzKWBEd1RU
CnpHPGtndjZYYkRxRFlDSk5PRX1CZns4aHsmWlBHO2hiI19QMS02fE07Y1lIYmskfVdHMGhLbC1j
WFNNSistOHRoZQp6WDIyZFZ6M0hwd3p6ci17Mnhfd0lmJDRKS2h4d0ZlITlubXQ7Z1FkbTgoKE8x
PWVifCVuPVhIb1ZlaTFKTmtzZUoKenN7aDUtQWBaM0x2NCVSN0duXy03PEt8LWEqRXN+fTV8PlIw
WTghUXQqKmdzWmt8S2ZSUVNfdik4a1BoKEcjeChrCnpuRU9IJClUK0VoMGMqeT1UUH5WYTkqfDxe
IypzTldXVFM0Jk5oJUBBMSVya2gkPmJ8NkQ8bEJYcGohZnU0Y1p9egp6dFZmaEN6TkNgTXZ5eGd9
Pys0NHRDSGd8TWZuZmIhcVoybXNLVStOP1kqWVU8I3VBTi1NbipiLTZDKUhNPW1GfXoKejd9d3A1
aU1aOX5DZn1waXp3Q1M3bztQN25JIW9jMDVfMnRwbjB8LVVoaSVIamMqNk5xcWUraExaRlhXTm5w
YGpECnpIVDIoVWB6Yj9uJWg5ZEY4Z0piS0RHWnlZSjhxMTkjOTtUbGk1eEB7OWpAMDckVmVJSjg7
Rzc1QUFjRGU+c319PAp6Q2Vtcit6cktKdy1GTGhqX0B+UXFvVTV2OWxefSh3MEswMSpySGo2dF8r
JTMoUjlTRW9nKlpPMkx5Uip0UkV5aHEKenEka1lVKk1QLV9YYUU1JTlUQzBNRyFFXkdxc3UpRyFO
RjRPamd4a0NoV2VjJTE5Z21CcEg9UVRiUys5a1l4b2h2CnpQZi1UMnc8MF4lLVk9VD05KDRpZGNs
YDliWk1eckZNUlh8ZXh4c2FVVXgzJEZYQC1KamZvJHZeNUx0VlpaQE5jWgp6c087WFhUTkVpciFN
XnNSTnpabFl6WGRUKjRuMFV+QGlLMkJ1aXF9eE8mSlFXVnw9RWVvUGU0PVJsVldJK358b0IKenh3
dnZ5bjxiJHVNfjktIUg4fkZfTEBuZTBOJmoqdlVxMH5mbXo1VjNiWCt+PDdfJkRGMCQhRmllcily
QiE2VlpuCnpBTmZBSXhWITZebj4kPDY5Y18lIUlyUyMkQyUhakZAc1VxO0RYU2dYLTg5VVNPRnFH
KV9NYy07Wk9pKlJkaFJmZQp6bShRSnIqanJOSk10PVJmRWR5JThIMiplPmlRUH4jYkxfQkI2ODk2
YDFUTlVVaTVEM0plWGFRTnpKb1B6UjdQdUgKeiR2eDlLcX5lWkAtdT56QU5KUikoTjJOeDdQS35I
amw2cDlhU0RTPmB1U3pJWWJ7RSVOZWIjeUlQO35ScnFlcHZ0CnplRDFHYT1rbEZuZ1gyOylMIVpG
bWslSjFkZEVUIXEzS0ZVQDk8MSFPZE1UVFNLXmQ4dW4ldnxmTj00RHg1LUVpdQp6OXhfTVhGTiZB
bkNpV0d3Wng3TFFRcD4pRCsrZDkyMTI1RyhRKFFvISEpQ1RwQT4lSEVSSyo+QWklQTBITiskNTgK
ek1jNGR6XnJLU0tsV3JrJTUjQHcybXVANk02P2lvcm8jSD44c296azRKVE16SVpFWndlNE9XNWdP
Nm9iRUh7MUEkCnpOPXVYNk4/TUoqWWg5b2lVcn1NeVUtTzdEUEtiJiZhb0BNeVI8dlFiU3JKPSgm
UFZaZzY4TCZtUGBuS1U7XkR1Mgp6aWpGVFJ0RX5sVGY4P29UI01UOGN1eGJZPiNDMWleJiRxPV9P
PktSRmh6aF5MdUVjU1YzdipROWxgTzMrOFFObUQKejU7RiYwcntebypUaFZCaWhTVVY8aSMwWD1C
LWkmeE5YN3t+amNhTGZMfFVpc24pR3UmJlh0YkhXZjFnM2A8RUg7CnpPR1V8TVFob2pgUCNnQ2Zp
eyVfXm03PEE0cXR6YCQ1M2JJMkdIRT9ZaF4kKXpiUVAkNnhmdDhwPTQ4YTRgekxBMAp6MzB2OFpB
KFF6cXhgNlYqaVQ8VGxKa2ZyRGIxfSpaS1IyODJtQjs+ZntzUjVUU0o9X25uY3E9ZHpzc0hqJHxO
TigKejhTbGEmb3Q/cU5CWC18I3JrWUVGb2tJZW1tcEhUWWJEXlFnUyM2RyE3eUE1I297aWtWdEh2
VjMkYG1lcmdUS2NKCnp0XlFfYV9Jb1NFZFNkbmthbEs5VlRqa3Zrd0c2VzdsK2dCT3pSakplNj5a
P2NlT24xKz1MWTRFITJQdSE8I1hUYQp6NHlDSGghZmBFeyl6UzIoPTRTal9GbF49ZkxCQlQ+R34r
YSNCfkxvNHZtWVB5dH0odU1TfWt9bkktcnhzYGYhbzsKeiFwRkFCSV5LKEchVyokdlV9V2o1a1hX
eFRSfnIlRyNPNEZhOV8+ZGtfISlhT1A9dGo4KnBtaFFYNWlvTnswWjlqCno/NWBRZlIrT15tal9k
fm85eE9kPzl7YyVJa2R0TndfOWA8b0A5JmJpaiV2RDdUYUx1cHBINXtULXtFdUdeQSRLIQp6MU9m
JkZhKTUhRGh3SF5sYzJ5TCk2ODlZMiYrJS1FU0kxfXdTNTZqRUQyV0ReXiljNTZreikjJXFNP3A4
RVQ1X3EKeldAZTJ8Pm95SDVwaXw8YF5VM2hyUDUmTm4tQiY7RD1IbWpLVHdFK2NafCFvY2hLSU1X
T2RxKEt6JEhIa2VqWCFOCnpRYkoxOzZFUDYoUT0hJDE3TjdiSTlkVzlQIzdfTlZNfDV3fV52cVQ/
U2ctdkNjOGhWKHQmWEhoUEVrQHRCa0N6Pwp6RnJXbzI+KCUrTk55TzFZYUImZiQwZmMyYGV2eypn
LUY/eSRraFpkSjJhWjJHK2xNfDBVbUx2bFIkY0Bwe0NkKFEKekMxUzU7KHI0Myo9SVJSP0lpejFf
PzN7d0xGYF94JFRsbztTYSNjI0pzQSRjNE5YPWJQRSFmPUk/SGpKc1clb2J9Cnozak1HR15FYVZa
OyhGTEVxdFNJci1kfVRZZC1JS1FzTX05PUYtU2JuVGFafEYkb2pmcVI4PHdUOSNBJE5mNlZuUgp6
dXxWXzxsMzMkRnJ1V3N1ait4ZmgwMXQwUy0hO3RvMHxZMX5XKnxjZiZHPnVeN01wTnRoLVhoR2tC
SzMzVmF2fG0KeiFyfDF5dUt+YChjfDZKOW1hX3shNDtXdl5rZXkxaCgmI2N+PHBfTXhCM3NUVz9k
d343ZUMhQXw5OWp6Y2c5SWxeCnpxQVhtUGRiSFVyWn5lfTU+WHs8c1djNFJSP3VwKypSQWs+fjk3
IXdKO1AzZWFQUCFHbCF8e3cyRHQtRnMjdihJeAp6MT83bC1UXkZifkdJQC1RRW1xQ2RSVm9FXlBx
QEZPSz4wQXUwRzZFMCFvVUFFbnRyZz0tUk99YG4obU9iMXhESXkKenQkPWRxcUJrZTFuYTMtUlVY
cGEkKmNxTHptdDRZbTBQaE1XKzMrRD5waDN3VVA8SXBgOW0wPmR0Vk1eJDFWKSh1Cnp3bilOKj8w
OT1yX0c7YCpQLWRvMGQ3ZD8zTUp0NmU2dHpnNFohQC1XWnRPUGFUQ080Rl9IQ29Cc0tFJm96M203
MAp6ZU07WDZRIUU2P1FffXlsRnpnY0hWZEpXMW1aTnwhRzNpYm5uTzxtJmx3eDcqLTt4S1ZMPm8+
MVJzcXc9bT5lKk8Keig1P2BWemJ9RVlLTWljUClpb01lXzRfRFI0KXolPGpMezdiNUQrd3lgJSF5
Tk1pYjsrOEJedDZSSj9HflIwXykhCnpYKXQpRVZKcE1tTkchd3lDeVA+fXY1SElVbl9gdV9EPzVP
Vj9mKWUyWUdHMlJEcHl2bjcmem8rKCptd3klNn5hIwp6KllkKmNRQzs3N1pFWnhgU2xJczE/NH5L
clFEd2l6WEE3fnE+WmhAeHtmdD9WI0VzMXp7UmMyd3hRVWVMMFBvJTIKekxLd2BzJk8lTkIxWSFs
JXk8Yz5WTVdhTEI0NlNYbW09aG5MbmJzaHg+NnMjciZ5QERDcFF6I09pYjk0KmZwSlM7CnpzX2At
PS05cXotKCVZNFBuRX4+X04xemJmMCNUb2xwQEhPV3JBNCNpJHdtMFZGPHIrZExOQzJBbng1JHZ2
cFE7YAp6YD50aHp2QU8kMEBGY0xSZ0VXRktsbmU4LUhuKyE1aWBCYDlwTld+TG1oemN8IzFDaUMo
IzxUYUdWKWpQMnhNZk4KekcpbiR4KEhHLSM9a0RGN1hsNngqeERockplKmN0Q1JyPUBXej9vVWEx
d1J8Y1gzR2p+R2JnUk4kY2kpdk0/OTJRCnp7S0gmJSZxdyZ1bWhYUFJoeHZFYSVxP2xyRlN5OEdq
a29DTm1BWjZ3Wl9wKEFLPDFlRiVUan4obFF+X3krQE9lYgp6TWpAamdkTjY/OUBaNDQtT1B3RGAy
dnhQYXY3eCVZRCZBakh7enVmJllOXlUoZ3BnS3Bqc3ElfWN6QDNQTTRvQXcKenYqd0JBKU5kUW1f
bDh1dT8+MEU0RWYhLSVgWkUzMGo4OHxUV0VWQzRrdippNz1sM3AlIXZid0I+ME0yd09DJXBFCnoz
NHV6I2RJWk85cEdBYGFhX19iYXp3SnV1P3U/NFZ1Vz18a19TVihiSS0xRHBScF5DWDhHSV9UdHN9
MXheVzUwTgp6V3dtKFc9Qy0xUipAfDIrQCF5SmBEemoheDFvUzMkblhoaSpIJHpTQFJ2ciR8KVU0
JW1maUBDMmpqWEhCQHN8b0IKemxlQGQkPzwrUj5SUUVESWlAQCp1JWd4bypRNVB0VnIldlQpR2g9
c2slKD1Oe3I7Pz1NdnM1Yl9yWD5jc0AtSmF8CnpWaUxrOSZ6NkJIYmxzS0w+R2VLQENMYGNvVDw+
el4pYnt0STlkRyFeeUd6KkQ1WHY2fDFGRkRDMisrbVZ2eTFSSAp6PXkweW5AaS1gTS0hbnghJilX
QkVZaXBDfDhCTXwxOXFqQ2soPlgtTSNxfkRrP2djVGdKI307WmopKTdvUHZgXz0KelNsc1d0cylX
PGlOOEVTe3hXLUIlQDZAcmshIXA+JCslNkd0YSVJcTdwe3hoLW5OSTxXYHwkeX5MI2pfNzNkYkhX
Cnp1fTt2JGhBSXVpRjZCS0JKMDtAeHt1WHV7R1Rkdz5GS19fPDJfdmVLUmpqVTxoK0kjI04tTn1A
aEl5ZUFMMEgoPQp6Y1B4P21kfD8rU0ZLRz89e19AYEBTPWhBYXlXPTQwWmszNk8lTSNkMnNjVEQj
aF5Mc3hiLXBQM1JxZHJzYiludk8KenxFZ2pyO1lCbW4xKlhEUlRtQVIxcEglcGpsRT5fayFvP01V
UjRybSk2XiptbXdMN2tTVlhyS288JUhqR2E5XzZkCno8aXFjfSR2UXRDUTRiRjhlTilkV0YrVnEj
N2huSEc0YGJ9c3l7M09kSCExO2Akc3JNbnZOfTRtKnZ6NGZZNFNHWQp6O3RGY2UkQDIwYyhgck8y
b2hkMDkzNzVacSNHWjIrWkpmcHBQenMtOHBTckJkUHJLPGAzWD48KHpMODMoWnhoYjAKencqTEkh
aDMwNEdBcV9AQlNwMHRHb2hNNU8xKmsxRldrbVV1P05mMWFaKzVkQ3Q1V1J8Ji1sMSNCTXkwKW9e
SFFeCnpOR2tAUmxTcjBWRGB+YFJWUSlTUiVKTG1gaHFPZ0BiOzw/P0dAWUVTaV9sdUhZfjNWcCNO
QlRscmBmQmdWIVptbwp6WVghfkVpV045OWRkQmBePSpRTjZrSXYwSUBZQm4lTXIoMFhHcWFfKVB2
empsZDYtMF9vWlFAfkBQSCF9dGt4MCMKeiQ8JWprMTslU0JQQGtqV2lhRElCNUM0cGdSdUxjM0Uq
fjx7Z3ZAZURTeWlGRWFZTnxTaGxhZ188MHRGWHk4eyE4CnpnQVR2O0dAKStlYVRoKHApTlF0SnIr
LSMjQSFMdUxgbiN4USoreCtyRGd9UktXYW9weEVZeD0jaWw2bGExTzUpSgp6d34ze15rYW4oUDxH
QWJqczxBZEw0Y2M8cmJFOSFpeXdTJCU8VDkrcFJRT1gtayRRIT4hKWZBWWhfRzxwS305XkYKem4/
YDRlUyQoRTh6MFhrKXhQKl5KUyREQT0/NDkoXkBEUTMhKSs0K1JJaklXX2lKK3k8UGg2UHk7SmlB
bUpaSyE1CnpVQjlzdXtMQ0VqNGU0YDJNc3JSSTFkMjZEYHB+PnxCVWl8Pk9WRWxWNiE9NkdUVipW
eyMxcWk+cVo9JENOWj9ifAp6PylaWTwzMWg/Rm8xYWArMzZTPURhWmZ+bDd6RjYjOy19XzlgWGVo
VVpwYWghbWZMZGlzdGFKOFgtU2ZkVnhFWnEKemgmYWB3KHFQXnNFcmplODNjaEEyMnRWc0x3KEh5
OTN1ck0kLU5TJHU5SUdDMDwyS1hzK3NqKUpLUStrIVp4eDw8CnoxaHpzRnRJdFJgVWBRdDFTJFU7
YTY/IStAUnpMM0wkKkopLURHal5FO21iekN5biM+IVZ7Nj9mMlJOQSkrSFFYMAp6eGFhJitLYj9+
MiNKLWZfaTcyaC15NWx+Y1VKR245QWs0dW1PZ1k/Sk96ZyRQbH1iVW9FR0l+JFA4T012TFlec1MK
ejg9S1kydik8TlpHbiVZa1cmZGgwRitVKzRDQUFPWjdPSlMmVkZpS0dkd2NgR0lwbF5LZHdGXjMh
Nn1ndUorYXl0Cnp5akdJaTJJRUp4OTtvPE4ha1k2WUF8MnpRNHU+bTsrTUJgPmV2T2F3YGJZViVu
ZD1PPjZHbHIrV0lOfGFUKDNhQwp6SFc2PUJ1RCNCX2M9MzNaP2Z6dEFXJG9zO1pyfiYjYEZWNF90
Yz1SeXpFVFg4eldVP0djVD9KfmlDemx3aURFRFMKem8oPGVxPzJ4bFlAVk9Idj9ENmZ9TDgzTmFg
RUxnK0spdkFiPGQtaU94KVdaZmkoWURLYDNfYERHKj9uU3tsVTNHCnpDM0tVQ2htX2o9bWZkUlQh
MFYkNTxfcyRzRUsoS2hqUGJJfVZNRjJDPjExVzhkbztCX3BtU2FraipxQy1TSkxgPQp6cEBsO3w1
ZTh+JT5WTS1ISjR4MmB1bF9XdkoqdHslVlRhNjRlP0w1dEd5MkFKcH5DbCR3Q2taU3tWWldfNCQj
I3kKSyh5VWFzTDtlPn0pX3V0VQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2ltZy9weXRlc3QxZmF2aS5pY28gYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vaW1nL3B5dGVzdDFmYXZpLmljbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YTM0ZmU1YzlmN2U0YTI1OGIwZjRl
ZDJjZjJlZmIwMjFkY2ZiY2IyCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzNzQyCnpjbWVIfmRx
YDdKOUxMWXBpMm1xZF5xOCk2djF2fU5yMX5Tfm5vPz1vVG9mVHVrPk1ZRStgQ3UoUUFTU0V3Mil9
ZAp6NiREWFBUNU9SPFglN28yRD1TSjlxNmhRT0VVM3NMalJKY314OWBjVEUhfGEwNFhHfUNJS1Q3
eWVlZHR3QUxwSiEKemg9X3lgTmZiZFRDN1NWcyMxY1pKKGgkQHxCdVBZdzE4czM9bEs+VDw8QWsy
cEc3PColMUZqRCVRNkpVXnt6aW9zCnpyeGd3PnskWm5WciRFbUBhZEc9Rj19QX02blp2Mnw7eE4l
Q0tEWi0+JnklMnY9UGImNkZkXnMqNEFMa1JTS0E/eQp6az9gPHQ0RSVsdFRtVXk8UGFWVzwmfjcy
RVNLVjUyYDI3XjFMcDg1fURNNmhMKCllR2lfblFzNGhLZkFEOzdiMTEKejhhNmpnUXs9UUghZnpU
XyM8TFY8eFMkWF5lcCV+TFZfa2cxeSRENkZ6WU0tUnojRT5JRDN2M2s8QDhzPEh5MXpgCno/MzVB
RiVKcldMKDRtXjJmJTxST252cjtZVHB6fXVLOXQ8KHpsS2hLaVheNjkxSFQtMiYrYEBLNGlHd29K
UGZXQwp6VGQjKi1zdWY3IzJ4KD5YKFY/MDx8Ny1RYGc8U2xQZU05SmJqZnlwVmV2RWBaRWhCcjhq
fl91aDVCS15vTnNvV3IKekd6PFU1U0Q+QmUxTENUVnlMbiUlYUpIMFZwWkVhVWREYE5mRXk8QkYq
VjImKEd8eExnSk5QVX55cGJ6Yit6I2NNCnozQXdPbV9XWVprJGN6UyRMYCU4bGlPfkJCN1JjNVg/
fXwqbVJJTEc4aXQ9KWVFflRiWXhnanJLb1UqbE1rI2J2fAp6NHJxQmF0MlE1cVBTPCY0Xk83c3xO
dmNZMWxJb09aVVVIUlFtM0N3PEFzbiU/T2N1Km55ZTZ9KSFwc0FeK2BfUDQKekU1ckVnTW5ncHA0
ci1mPiQxJXJlWE5ATnVqRz58ako4VDxrX1MhNkZ1ZnU5NmNVWC1ULTVBUGs3THlscUhpOTw1Cnp7
UT0lV1Y+UWRMcjNfPHJGXnEtQj5hd3RgOC0xbUF2Jm0mUXtsSTI2bUMkd0BZYnJyKHUwWDc7Kl5T
dVRifVBuUAp6Y3dpJmVRcTBOcFkrbylxUSM+YzQtVz9ec1Ngc2F6UTJTX31HSk81KyFVXmhncik3
KUpfYWF8JStCWS1IeG51bSYKekVtYWEjUE9XQCMmUDc9ZG5WWn5gYlNxcXc3cFEmbWc9KCpDcTFx
Pi1jQjx5IV5mbH05TWJEMFlLaEt2VXxMRVBKCnpsWlY2a1A+Yl4rSitwT3lQTSQ5MFZYZmtOYjBx
JURLSUdwUSg4PT5vO3E8R3Ffdig7KWJZSlNecD8xQ2BwJl8pMAp6PDYzYFdCSTt1VzIjYW5sPlc0
VkhDYD5GQkFlKTIjMCRpaSRLYWBmVmo8TVBGOXdofi1mWm5mITkqaF8yYGxzNXoKRTBUMW41QU9I
WFcKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9pbWcvdGhldW5pLnBuZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9pbWcvdGhldW5pLnBuZwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hYmViNzM3ZTc5YjI4MTE2ODRkN2ViODI5ODU2NDY1YzM2N2M0NzQ5CkdJVCBiaW5h
cnkgcGF0Y2gKbGl0ZXJhbCAzMTQ3Ngp6Y21iQHRYSCpra15mbyNhTHkjN1Y3Jj1HPyFCOW5kbE07
fEZDREtFJCh4c3o+QjFBd3MoZ2clV1BgWkcwM2ArMDQKejJ1S1lAZFdTY15fa1o3ZSpacHc2LTdg
dCVPaiZFQFdNKTVtP2BKPmZ0Jld4fCo8SmQoMDA1QXd0MTBVTjBSQlQ8Cnp6WSZhJmBeQiQpe1Rz
SyFeVV9tUTFTJHA/SCpwJnZZWWtPcDtQJF5JdWVtcjB3fTwkcG51ISt4a1dsfmsjUkVRTQp6TDIp
fll5dyNzUUM3Szcoa1Z1bEN0elBqMDA0dCFidFlHa0pXXyNXKml8UDVpK2BxbGpRTWRWMmYkMVgl
STYpXmgKejV5ZDUqdTwkVDE0PWZ3QWR8MU5zYllHenoheVdAUio4T2xyTCVGSFAwYWdTSEIhSllf
PUFWZ0EyYkBtdTdHS3s/CnphUyhEPzV4bktoSV5fQExtflFnM1lZe21PK0lgfD4yY2tvXlJYeXlq
eTFEbUY7SSp3dXM7JHptfDJFbGRhOXRCfAp6NnQ0U19LQHJ6WXQqc3VhNH5qX2s5TUYke1dkNSg/
THJTa0UpdSYoPEkkfWdvUDw/KCZne1otbzxYI0xeNXpJIVkKem81PUJZMWRPRExUcEFpbWZMTkNw
QFRGKj1nKjRTQG8rN1g/KGlIS0ViPSNfRzdyYGBtayNMNDRTSVNjS1hKZ3pjCnppdXBzMk1UY09Z
Y2BZbmg/aGNFPClZNH1jV0RWOEFkRFpQbCRqSUpOYjhVK3xQZ3RSSm4oaG5xUns4Y3JfLUhfKAp6
cDJzUVMqREBgPUBBU1pJTWFpOURLUGJrPShvJnd9P0xLQlYqYFVXRTAmKT1TRjJUVDswPFQ1PDFt
aUR1cWEyVnQKek1Hdz5eKjdmKX1aT1JjbzVgJVdhSW9MKldkd0NRZENZfE0jYENyPCo1eXRSY2V7
Pn4raFBhZ1M2U0BKYz1JKn1PCno1a1ptQFlQSV8kU04yaVQ/YGJBU2xob3J9dXpNNTUoUDhkd098
Z0NSRm9KKmVkek1FZT9CeEpjX2pDQll5QWQzMwp6RE04MkAxM2xpLTxPZTg7RUReWDZzTkJaNSVv
RVBBZyp8TEE3MDw1ZFU5YUJNbHVZcXRCNFNUYXIhcCs3Xil5a1kKemd6aVo2OVdyKj9SJHkoYTlM
c0k7VmE5QEtiU255Y3twbCtiJTxJZ1VJZnN2OENiUDlTXnt2K18kc0BhSnk7V2IjCnolRElwRk03
LWBRNW1jLT1XQl5iVi1Vbmd0Snx6UGlKYTw8bEpmWShWNjVnNSNsbnpSV2pnVTwoQHc7TDkjT0Q7
KQp6bSh7OGElIU1SeFozMn1RcW9II3gmekNBRXMlfXU1anw4NU0tWSpWTnc9Sm9OKT1SPjtQUDQo
Y2Q/fD9Yd1BMUz0KejQ9VDFKQ2dENkNHO0Q3bWtabT9uaEtXO3whQGZDX1lWeWo8aypiSHpYP09E
QFYkRDR6Kno9eCNkOFoza2tGdExBCnpaOS1ETGdOT1hkST40JkBwaHl1NiFOPjRtQi05Z15idipM
RWVsPj5iITlOQWJDMjRoZ2RAU0BlPEBVXnlBcGN5IQp6NVNjRm9BeWttZnJPQExBODdzNEtmIVdH
eSlzKzdSJSV4fjBtcUA1ck8kVHUkck9ALWcxN0h+R1krM3tfK3BfPVEKelZFdW91WTs5U0RqQDdx
IzIjUUIyQ1lxPGgoRTd0JiN3Y1ArUmpYKj1qUjltX3Y1MkZ7PH5zcE9YYWV6O2huRSZhCnpiYjBC
TlFnIzNBXnx9IUhvP15Pbm4obWtFPGFKJWIyUWdJZFZWZDtWRSRyNC1qaUopZGMyOXZaJVI8ZWJS
Vz9uIQp6Ynh+ZFFTX0UrPyFtR01pUkdxXzhuTjBQO2E0biktP2BfJjYzIzRENnQ7c3xNdClpfWh6
OC01aSUlUnxVViVMbkgKemtaLUxKQSljUV56Q0BmN1RCd007JGJoI3o4TmE7S04jSnZZcDR4ITFl
ejF+YyUxNlM+aVlSfiRDRUFnKnZScCVICnpCPz0pKzE+SjMpQm00ZWgoZkRpMW14PDQtcDFOeDRV
X0JMakc4SFdCJWtoYnVnTGBmP1kjN25+QWcxR2NhcShBRQp6S3s5ZSRyYG5rTF9jKClYTFZ6ODQo
R3lUTTQ5QH1NR1otZ1M5dUpDd0stRF5NMjVNUElnTWt1UTc4MFYxWGV3NGoKekNuaE9ULUR0WGBL
fDVsJG9PSl5FMV9OPXV2eiVGRHFzNVVhUTViQSRjOXl9Z3IrRlNydFRMOGd2MnNLYVc4OVRoCnpy
M1VBV24xRE5yaClQSGRFdl4/ST07ZUVJWnR1YC1ZO1RpeCFzNkpBUXZUMGZTZlBsMnFBZz9hNyhZ
ZEA9QWpfKQp6eUc0YU1kYztjLXJmfEJhbCF7WHhXKypaTXFJbDVvYTl+dmV4I0w8dVJ7K1kodVVM
UTxFVGdRbFBRcVFkVmooQXQKelh7PStEbGlWTHw5NHVLPUgxcmlFa2hPXkNKZSktYWE1azh3V35E
PztOYnFFZFUwMFRUUG9iVXdJVEBLNnJ3fUc8CnpSd0R1alUlbXx4UGlSckhQRTRoY2lkQ0MybXNr
Ynw5OX58bHJebC1mcWoqWGNOeShOaGduMHIyNmtxbUc7MThhZgp6O2ptMEY8XmtHKzR7WS1Rak9q
WmJZMXctcyRkKExARDYpfXhXSS1MNVZJVVhqVTBPVTwtUkVAV3dZcVEoOyt8aX0KeipoJGFzZWpB
NDVMYD5JQTdubHhSeCEyXllpYiVFSGFib01EdnFpSlBedCR4QWpHWVVfcHprMS1YaX1CQ25wRTZZ
Cnp3T3EqXj19LWJmcShGKnBCMzFIMXZqT0MrQV8/Xz1GTXhFXlNPdms/XlJ8O3wwOXReeWlWPypw
KTF+MjU/MUotZgp6KHBpeTt1IzBzN2grWW1ZcyZeVXMoQ3RCK1lMcE5YI3dNOSE0Uj1IKXVTe0oj
OzAmUVIwI2N5S1BwUnJiNkBsUSYKelZ1Z29NO1JBWUQ8ekdCODlKRWttbigqWUkjNSRiIUpxS0pa
MjQ7X0BkUERnanktPUVramkkU2pYMmdtUzA5JmY/Cno2aHFsYkw3JkgrIzdLUT1BNXVrLVRCRHh5
c1Y0JmgzSmZyfng8VXk9OVZLdHdBKSM4e3w0dmJ6UF5Hb05PWXdKPQp6diRvN04jdG5jVFBScmRh
VyRrWS0rRD1+MFI7MSZNZzFvdzEzVE1mbSN9VEUqNUM2a3MwZCo+WDY9a1ZkQk14XmAKemt6aG1Y
I1glPE1sZ0QoU29Wc1hJU2RZWENgc0pHdnRiX3N0VEojWW5qRyQoUCFUXjxNKmN4R29XTTtwO0BS
TE9mCnoyYGB4QzdmTj1OTkY8KjROcG5yQU1ePXxec2YwbSFHTVlCMGNaQiF4emxMPlQ3MWE8MSEr
RjJPQ3EleTlqOHtMNAp6S2xgcX5OVlVDfEl6Xz5NVEdMRT97MDJmYWtRMHkqVEVTKmAkUGg/V2hF
bllXIWtNaVFQbm5uYz9VM1Jwdi1AO18KekReRjNEU0dSfXNVfkI7dD9eUSpWJj5Hcm5mRFZiKWJB
fFhaWF9wI3Y8WH0wfjZGRyE5KFlsZCVscWlXSmMoQEtSCnpLNl8jYkxYWnVXR05COUFSbHlzMngk
YV5eQ3dqRGVPPiFLSD5GP2EhTk5QRShDUXVAZmFCIzJHZkFwfDdVQH02ZAp6JFckdilqak97ZFN2
TH1iRk9QNjZxRVU8JWBqa3dpJFklQGJmTGF4SkdqZ2pyK2F5RnNYYzg4VGBJKlYzaCRFYWAKemN+
KUJ9RUZwZlRhJXhYMUcrXilIezZQNyR5Y3o+SUEwMFBrRjxLdUV2cUk2TSM0UGheSTdRemt3JmRL
anpmTWZoCno8SUM+MTBrXn43OVc4aSNsRD0mQHp2VnFfczlkWiYjZEFHQClJTX1Kc19TMyt1Qj9f
MWdiQSZeQnd7MVBLI15AWQp6WHdubXhfSVU/Y19LZFJyKDR8aUU2OVdKbzl1S0o2Y0BJcT17Uj82
JWdtakxVR1dDNE5vYClwQmkkPWAoUnMpIyoKejdgcVJ7eShOPT0rdiUwSTlod2UyJHhudkIhUipQ
QGFHe0B8Q3U2X3U0fTdMMilCSUlCRV9gSFV1JE9ua2l6dHM/Cnoya2MhYmNqTjZ7WilGaHpAJm82
NG9sPXNMVEljO3ZgIWdDNChDfWZgQHZZWlBwZF94QEYkWWdQY0YoakpkKHJaaQp6OWBSfjJ6VTZB
NGZAeHdIKk10c0JMfE91X3crRFc/WHpnJGhOV0REY3cpayozPDZ5Q3FAcylZeHpjWXFDMkgya3gK
ejBLKi03IUZkSV5oTVh8VXNaaD9ReFplMVlNMl85cSpodEBSKkFCVyleO2dQRk9ARypRYTw7VDZi
dnt7IWt9KGtJCno0WDhneHBAbzJHJU1NO0lYZT5LMUo7WUx4TTtKPEtpOGt4VG5MRGIwcigoUT1M
cmJxaFBUSkhDWkg0dzJEQUY1dQp6ZElvPEEhK1JzKUM5YC1Ndzc0JH41UWIkeXpVe2xkcWc3eyZ2
WjY5JWp9cWFrOEJ0LUFoZW00fT1wKV59JGBwJmUKemI3SkM0NEc2cnZGTmdwRzczKHxjQClhX3Q7
bzReWXA/ZXQ4alRjdktAZElXQlpud3dXNyRFP2Q0cW9LNkh4cUNBCnpjN0NqV0pKS0M7U1g7YW55
dVhHVyRme3V5SWY3OXtTfTstazJ3MHlLezkmaSVpcms/MWFXSkdVSjhPSU00PWQ4YAp6NzNoRlNK
JEJuOCZSN2JlMDVESyRDbWJsRkVIUU5YZ2x2QiR2P1F+YT1HYWk9Z1V7TzFnKXo3VDVFVkwzUWFu
TjAKelVpQWx6LU9xfUlPQVM4ZG0tNDB6ejs7PFJFemVxdCFQR3Q5U0kkfjt3VGNmTGYmYGw/SFU4
PkUwJkw7TDQtajt5Cnp4MUcld2pofnVOPTF2USN3V1VyK2IxJTt9YkVRdTxzOHpuQGxYYVdsUEJ5
ZyQ0IXp0O0ImaGcpYENqIVZWMSo3QAp6bSttIWp6RngtU3YyYmcjXzxjRms7JXcrX3Nia35rPEo7
WDtGZCQjdmRLJnNEKjktdXAmLS0jMFpwVyYlWiZ3PyYKemNPJnI8KDwrKm1EezV6dFZaXkI2ZS1e
WjZmamQ8TXR3R21KcndpdjtsRW9LfmV7YGp9SHlvITdGe2h7NlBVaj4qCno2IX42Kmcpbys9MVIq
ZEk5Y0haKWhLR2tsTGx7JClQPn1WOU4kVUo7I0VOLWpvakFteTFodEpqckJJfn4qej5IWQp6V1Yj
NWgtKkZAYUZnISljZE1iYCthN1VNcThLTDdISzBePElpc3VDfEQheFB6aTR4dTU5UitjdCQ7WllV
VE9uMTUKemNiR1YpJEY0SStaKFZvYkBCV0hYdFprWUt7KjNDcFF8VD8zTzkyM2h7YTx4RnhAfXZw
MjhRMjN8NkVAXztuKGAlCnojMCR7UzNOcWBBJlc/UjxhdTNrTzFJQ3lfbSE2MklKT1NQajF6JnRq
K0xPN0EhKXhCNHB6ek1RJHs9PH1sS2JwLQp6P1Mpe0dtdl9LX2wxVSFEK1RQZDVOZFkyJCN1QU1r
NFI8a1RyUD8rKDF1OWxYIWBrUFQoM0Q2VDtUVEdFSkcyfTwKejRBT2pQRWckTDgxNyFvN3N4V3he
PVNxPU00fC1JV3k3Vys+I21SaWdgVVBBd09sNmIkI347NzVqKkZGZTlHMGx1CnpyVFlhJT1xaih5
aVBDe1RBVnF0fnl9U2JTUmRgbkJpdSNefFIyOVlSWVRgMHJgMz1EfW5kPGpHN208WXJHa15qbAp6
bzBAI3AxZzxoenEtczNBdmxmO2o0WUJgakNxU1I/ZE9ROVdhZ01yYCs1Tk1oc2REPmNVeGI/KTJw
Y0ctQ0VLajgKej9DUj8pSH5+aW5LOSFKaFQ8cThRR00lfUUlVClwdTxGSngoRF5sY3NybEBadEQh
anliIzQySSgzPDkrWUZ9d25GCnpwUiREZFVpRlpEZ3hfO2NJdkFhSG5LJXk4MVEjPWtAWVROVTtO
ZVh2VGE1d1BCLV4yMmEzTXQlTjNHSFg7byZPIQp6czBpelA8QSpkY01SMCtVRmpHMUNJUVI2bCYo
MUNtJStEdnNsSEVKYipYKVh0Un5qbDRKR1JyZyVPOypWJW1uZDgKem87NnNXeGche1c9TG4wcnZu
Mm9mJjhLMFpYWDduS214UThqcHtnWmZfNU1WYms1XnFQbTJxTGFVbSY+MSVPXmBXCnpOfmMzMiV5
MzNvVH5WazU0SmR9O1MkIz17ZX5neVEhOFQtaHEqV0g7WEd4VzZWbnt9IWI9czV9KUtFMD09Z3dD
Nwp6SXl8KCE8NCErJGtgQlYjUE1LODl5NDh0RmRFenZ6ZURXbHc5dUhaUkNwK3ReQG9GP051VzNE
ZVhIYDRBKChOXlEKekFNUDwoPmc9S257PmBCUFpjekEhNDJiWF5aSi1DX0grPHd+NHt9aT5sZVpB
P2VOU3dBPHZYNEJVKDljQzFfMjUxCnolNGhAO2Z9Rnt+PktTU1R4KH1FbmdQSWZBUCMlJEpKQHYj
X2VJNjFkcnR6JSF6XjAzTWNDWVNhTipJX21UdE97YAp6PU5efjNTUFY2PHZ4and8Q0A5JTUyTVpl
ekQmVHJjTD10V2A/QGFQRGV+RDxkTlN8KWFLWFM7RXJyT3ZfRntWaGIKemwte1oqVzV1KCg5U1NY
PyoqaU1xPHsxNHp1dDVqfXtkcGVSZURtKXB2Km1NQEJqJEM8KEBkZjxAN2t8JmJ3blI8CnpMQiZh
PTRxdVk0LVk8eT5KdnN0PGRINkYqRXFQcTxwTzBRTGV5WFFOX34oZmgtI3RoO2Y2bkNDVHctWmlj
TmBLZAp6Z3U9JlhfZXRpY2dgcm4pNSE5cClXbXNuZXd5fjc7KlEhXkBBOHRpYlQyTkRDcW16e2Ju
dktSQG4ycnpDJk1+MyMKemRVRmRBYnIjbGN6KCQoPmE9PmhvNlk5KlZFd2hRKm5RXigtSj9rQGJy
P3tBTGpHVXdxSU89SUE+KnlAQDJMUF4zCnp2JHtlU2AkTTFPVjt8bClISng+V1dXMnIpPnl5Zj15
RjIoe3lPfn4jUkRvSHpfdHc9OW9VIXp0OCVhdXcmX0lgdAp6UTkqPU05RVdJTlktMHx7PE9maXE1
U2Bxd1VadEhHcWNhUHNKJDk2fm0zcDskUHBIJk9PLS03Nz1ObztueFlQX24Kem42dlcwMjdsNHIm
NTM/fEVXTGt5cXxgZUJGNkxXcShoelhgcj4oOCs1M0I5TndCQk85T2BUc2lIfEBJJUg9bExyCnp6
MUJjbDM3JGNAVUlVI0ZZUndfRnleaXFvWmgjNz8ta3xXNGt2bUVGRilHXlBzTkRMeW81fUJAaDlU
c2V5d1dYOAp6dE4mYFVkdjQkPnNqWkwkcXgrJVE5NT13PmM1RS0/X01BNlBxIUIze1ZFR3p2cWpl
PXZQVlFnS1h6XkNzP1owZjYKemZ6Y0MqPlc5NUV5TzdVQDhaQjdMSHdvP2RjbihGMGdiZyRkMEow
NT17YGM+bDhxPEomc2V4ZG8jJH5CRFNLOUFNCnpfVTt0V0dRdT92TXgmeGohfklqd3w3QSVSYms7
c01JNX1hfUdzRWpjRksmZFE/YUkjbVBYXlp5M3RyNlBoVkQjOwp6cntMXyZ1JT5DbWh0ZXQ2dGtz
TTRRRGFoWXFKKzRoXlUra0FKV1FKfXYhcn02R3piNXI/Pzc1I19TPyZPS0hEbT4KemtwOTx5NmRq
VU1sazstPXNkbiV8bFhqfSpQUDApfkBaUDx6REtFRnxUTWtSLThHJHgzKXZVbGRwWT1yJUFUTW5g
CnpwZ3FkezQmZC0paU45RmRaPTdpITdXQ0s8JEJ7Vk91cUJXNkZ5R1BTZnhmTF9SWVNUIVJhQUkr
UTl+Yn5IWn1SRQp6YjkyWlU/O3U1eCt7QHIpTFB0d2VwN0xiJUI5UmIyU0pIIVBaelV5YW02SDR4
cCpZM0NXQmtTUCFTeSQ3an1pUjUKenEjYX1wamc8d24hUUp7USNHTHgySFRZYE1EfWlGWEhwYjx8
JUM5QiFZOU5hNiU+WTNWcDxRQTFAMFgpUWsxa0k+CnpZRSgzTzRkPnh5KEtZU3Vgcmw+R01zIzsp
VTNKY09VdkgqOHpTP3d1UktjaFR5bGYyNFchSTklJmMqazt0VEw+ZAp6KnhRK1VjYi0tK3clIWFo
V0l1MGZfI0dBY0gmanJ2ZE1DZlNmP20rIUlUVm4oLTtOc353TjJmXm82d2J5KXp6RCMKem96T3g5
VUIqOz93SzVtSmQqZT40YTVfQX5vTG1sRU5aN1BqSD1FTz4/T05qZWtCTmVFKkdAUlBOcERqXkU3
RCFDCnpJOVkyTVhLPVdUMUl+TWdUe0tEU1BMOWFjNTc0NGw/VDlZYSRJczh0Kk4wTjImQGsqOWVz
cj89P0JzM049LT8zegp6eXN9K092ZVZScGhaRlZFbG42YjZrVVFTIV50SmRldihsNGNpejZnWnBr
WGNJNSUwNXQzWiozKUpKYkVkRjw8eEMKenhfbkZyTnhvdyNhZXlCTjtYKF5YNjV9OXR6NFAlaU9P
JF5GY0xkbTMze2JtbFMoblc3cCZFemF5RmZ0TyFyZ3ZCCnpAZVJxOzlWR15jdSUkM2h0N1Y8Oyll
N0I2S21gUDJ3TWw+JWl1WFZSJkVEWTxOQVNMKUA+Nm5PSS1OSmZvdSpXTQp6a2htMm51UjNLU3tw
Vkc8cGhlbz88aGNVOVJWNDhwI1hAbHYwXnhMXzd6cSY0PF5nZD5TaSVVMVpNI3MhUXU5eHYKekMz
PnVmamdkMGlEWmxkeHtAKzBKVjZ6cWpLMlV7ZjJEUTQwSSN0d0A5NHY8Njtge3hWN3tFJjI2MDlA
QEElTT5eCnprUShGMD84JW1WIWxkPDBxaCEhRFk2TjFXQU0keX4wP2ZPTGRUQFZJTyFWZENwaU5i
U0RidT19ZlI9UDBJM0VLbwp6N2FJbkYwb0ZIPXImRUExNyFNRStxb2wtbjhRPF5XJl50aHNpZEMm
akwoK2d2NXsjNVQxenlfcz5kbGtXP0B+Yn4KentLNWQ3cCVlaCk9Yj4waDVnTyQjVT5yPlNjaj4k
TVFKJU8oKmhRV3t5VnU3MVZ+c0Z8SE5YRzYkSTJFeHtmZT5ZCnowM3t+YkxzSmJKOE1tVGBBO3Aw
NHB6O185ajZQdW1xZ0xKeSFCXnl4PVchX2lzRHBYaTlwJkV0dUdTQz9RQitmcAp6QzxJX19xP3s3
RHtrbj56X3lsMVAyI1EjZDVFJWhYdEswdWFWd2kqUGxya3p6dV9hc0VwKnFxcDYoK24hZVNBRjMK
ekR2Y2krZmp7QSo1UllVX3hFT3deN3pjNjNGS0FIOzJPKXY1Ql92RCU0MXZOaDRoNk0qX3dKNnZw
UU9ON3ktZDJUCno8aVZlNGd6Uz52Ymlwdit2OFZeK0R7NFEoejhCUSYyYy0hPTVXKih9dyppKFk3
JClxUyg4PCF8ZjdkbnpOOHFEVgp6RElMPEZoM3woN1gtaVhlYHdJfHJ4PmpTZWl4eUQ2dnlkMU0t
YTxsVGEteGQqQV9haCsoQm1oeGdqZjxYdXJMcysKemFJMmcwclVpPC1MPkdLKHNhV3R+Pmg9Tlc+
bjIqbEBAZjwhOF8yRGBuM2Z3anYlJDdMM0ZCTVlpZ3Q5bWdKeiV2CnpHYUYwOSMyQnJCSXZpWnlR
Rjc+eVoyeU0xUXlSUVJJOUVWbGgpRFlfQ01HS09tIVR3VztOdG9eYEdBS35nI2l1MAp6NCtxKkQl
MlZ7SCpwJCU8VX1gajt5bUpiTmRacC1DZ1dhPFJRPzJ2WUkjbVh4WURGfkA8NHplfnZSNjhMOUIr
R1QKejtlTGFXQExHRENEd0JhYmU+YGlnVlR3PlhMUXVefTkrX24hMWNjaCZtaVVpVTZocy04VzNr
d3MqcS1Pe1JnREgqCnpkMntQQj1aJjkmZzd1WUBmYGRDdEJHKiExemtVc2lmI0lpbHE0RHJ5a2Bp
PUtJS0ohY009K2E4aUQ0dHsxaVotRgp6LUZAKSReRD1yfGAje2dzJX1hVyh2OVhhVnFzd0ZhNXw8
YmoqJXM7VHZUUiF7SFlxcTNKbjVgOztfPUNzSyFIX0kKeklIUCtGRHlTOCpPaS1CZXtvZlEkR2ky
KSNfak9UOztUS0JSJGgqMlIpczMyVj1VY1ZZcm9qKDFgQnRmOEtwK3JBCnp2NyVFKip1eXtzZXJH
ZHowdj03Nktxd0RIdm5GelVnejBRZDR+QD1fYzF6JmdnI3VwJEJ4Vl4zVi05S2I2TnROcgp6MHVl
PnNqcHp0NyZ8fVhOR3xHenxfdkEmI3F6SGNgcjJJbFQwO1ZHZllYXmo5OUZXe3h8Nl9lTVJiRVF2
ZGIreFYKemlabGtwb3lOfTllXlN6ViQ5dVo9aytUUXtWLSVqbDxaNTFSWEVhdHFveUxqeDl1KytV
UXJAey1FS0h+dGYjY0FjCnpkfGkhLV5xQSUrN04qQWpVZHJPS1gqZTtqNXVZd2lOKSs2S2sqKnhs
cDBuWiVKV0Y2eGhVI2wxVEd4SnI+MzUxUwp6dzUyWiohQVU3QHJsJnByI354RG42fXUhcXN8YkpB
OHpOUStSdVdZY3NiYW5XMT4hR2VpZHJxcGotSj9NRzRRNGMKenFiPVcqeXIrKiY2e2dqRGdaSVlx
TER3Sm9QJTgpZEBTYnM3MXtKWTAtZ3BsPFNZYio4MUxwMDdEVDVOayQmcnE3CnpCYFchWm96amN5
TVQoXzg+Sks1VGFJXnd+KkE7P35xTkhjZTk5P3JJP1dReD92NnZqNm14MzlQTX1VQzdhRjx8eAp6
PWdhZ3AoJUc1SSgpTSs/UiVGTy1pQVgkaXJ7Nzc9YCkySyVufkdJfD93dEp2TCVWcVctbH5OTjlK
ZWA0XjswKHkKekNEYWBXYHx8I3VwNVIoWlhpNGFOcT1aYFdpVCRQNUU/O3QzRCM4aDdTdStnUjtD
LTRIaFc3e0tQKmtYdkQ0fUtUCnpuckJSSm8kT1JWaHM7eE9aNSRpM25wNFkxc2RZRzlVbVRsciQk
WTk2RD1DWDdCST5ReCFHOGNJNE82Zj9uXyh8fQp6RkdRYV95XkJTOGsyTTlnRlcwS3F4JVE9KFFk
aHQze1lMOWlKSnApK0hDPiZKPD1VK3V7SiNBdXMjdH04QEE2dD4Kek1PKCZXa21oRTZtbzYqRWB3
IWJZZ31BQmtGPGh7MjUyaHAjaiE4KlNhfFFATndqdjZfITI+Pnd5aV9uUWI+KnorCno4V3pAYG5q
dDspMHZhfDZidCl0Jno3Qz5XVTZjMmVBbEpqTitefX53JEVsWFNGNSZAWSVidmRDYH1WOXU3cyh3
eAp6Z3lKVlghRnZ9KHBvQCN7d0Y0Zz9HQSp2PWQ+R0JvTmB0Iy05OGZQdkpiU0Brbyh3OUxjT1Ry
QXBmMHlLK0Q9M3EKem51fkNZSEdhS0FsMFFkd0BUXj5iLXktWEQrMWVkYlZASEcrX09PQjxFT0tN
PCZIbWZ1a0omTjFLb2w7WXVPTVVsCnpeMztHeSYqTjk9S0hWOWtlLV44TnQjdTYqeiFrXk4lVjl9
TXVrTU4jb15wfWFScyFkekxrbSVmWTc5TURucHtRfQp6RVA2ZS1DPk88cEx5byFDUDFjPjQrQEhz
TFI7P013M25BIUFWcm5rVWc8d0F3aGYwYCVLJDtNYSlhTylZe358Vz0Kemk+SDdUS09Efl5yVmk8
d1JwQkZHc15ec0RKTT1mO1F5RGYqJn0+PTslSj10Z3dgUnVuU0FWeXNwT0k/fE5rbHAzCnohelBY
Jjd7X1JEJitDZG96QE82RGtaWGdMQl5FZ2tEZ2FSUXtGbDwmQDkkPDNOO3VgZGZMd2JvIWNfPFpI
Zjk+ewp6YzslWT9YI0MyRDdmNDNeWCl2cTd1UjIhVj9RQ3skKkZAeXh5R1diXm91Sj55QGdJUnV4
O2JvZUpZekNiKjVSZXgKelM0T2B2JUYtaDNLP30ySkdWJXxuNUAjfFpUJVJoTDs7SjhGJjZwTGZZ
TktvWmMwbVkhQzE0dSthc3MhOUNuaDleCno3OGY3ayFXREghOyV0V0B4SEg+NVhnX1FpT29AV0Ro
ZTB9X3llXl4tUCZVPW10Wkc2UyZ4UmsjUm1NRXpxQCtofgp6OEA0RHNgNjJfc2RuOElxO2EwfVMx
bzd2dSpCak5hSnZ4cWcjYjFSRFBJIXt1Q2d6RTsrUjhnNEElSF5YPV41U1QKelQxQC1CdkpRO1FY
e3I2RW5lJm5BdVBWPjxQY3BgNyh6aGF3RUo3VTNxTnxYPlRMSCtiVVpka0U+ZTJTeT9pe0R4CnpS
JUQjeXpyUlN8Sz8oOVZWOENHVSZ9JD80SSRsLSkyfStZYXBMKX1zPEtYeHQ7NyMjR1BWNERTK1Eo
dDBKc0RlMQp6OFEhbFVIPGVGTFdnTjYqK3lkTWZ1O0RPSG9mb3B9S1Z8SEt7LUlCY2BpRGtUX2Q9
SDRMKXslXjBeVTRoI0BYeUQKemo9dyVKPEJJcjhfK2lVYXwxfHhfWX1aPjwhVlFePjNOSmk1U3No
cDBhTEAhbFEwNXZAZHElcDNQRzU/QjElUWhICno8TTFXV19nS15KPDZzdUg8T0JVR2Itc00laHd2
Z2pEd1ZodW5gKUN1emUyO2c8RGtpTXU4LTBONTZRQFhycUtKIQp6VjBhYlAycCl1cXZieEdVYVRY
PGU3N2k5c043TkYkOFZtOTE+emRhe3I2fV52NiFOS3cyZzIoMkNLaiY4Z3cxbjUKemdgc247S2Mr
JiNVX1V3I3RrMV9SNG9eSSUqKHR+ND8xJlp3b0xgPzwpTlNPeS1tVXImSHFyOSErYj9kVz54SnRY
CnpDT35iXlhOb2N5eVBKRWZ3PlFSNFUhUzR+MkZ8fElVQj50ODBLY0BTcyhyTlYtVGgzU2x+ZlpJ
K25WZ3tMZzA1Xgp6ckBub1ZLJVB9TWsqWnNPSykqcklJSnJ0c2loPU90OE1gc2laViRBZjk+QEZX
UVo1VitvUkA4aWx+OUVwMStaKHYKejBESyY4c3RFUTxVc0I8IXZReHdyZW5pM2V5V2JGZiVNdkc3
VlV+S2xfbXMxMnU5RHJsRGtteiUte1IjenUzR0BKCnpnKTJ+cHQ2V0k0SiFnMlJSNSN6dk1RM2Fq
Y0N9RCZeKD5lTlMlWChCeFh1Y2MqREJiUTlZUzxNSDBNOUwtU3czUQp6PkczMkspbjRCZkwlVnk1
dEc+RlAzT0k1YXlvaGxOaVhCJitVaERnRzloUllfYTV3UDklaWJ5JUZ3PzdsPXg+TzcKengrenZr
K0pVY2ctJilAUig0SjlFR3RoeDI3KXlFbW5EKFV5Yns8ZVRaO2IrRDcoM199UHg8NDhaOEZ5JXdY
YyhACnoqbGdPTXU3IUZ8WFdJIXZHdGpuUTklajF8JHNXOUBSS0J6VWtiPH5qQmh9Q1JnIWcqeSRL
RCFMPmIqXkBndUlWTgp6QH5ZSFRzLU9+IUJ0Wks3cygpJWduZV9gQzVpUnN1KzZTPChfcUEydEdn
OytEa08kRF9lMH5EVkZYT1B5a2lWWlMKelQ1Zik3QHJMeDQyNyslX0s1b0JAeypOMXY4ajZhT3Ar
dmAmcjY1WG1fJGkqUUtKYTNTUHgzNSUoM0t9Tl5ZdGAlCnprIVQzYzUwNzU9U0V1M2okTzFiOzlG
UHpVIVdrZTFwbHIlS3RRPmAxUD5RR29BJHNhJTMzOUpqQUVeb30qQ3BieAp6SmchYndxJj9xSmZy
NjdeQkNpIXRjalpVSWhQZD1UKHMkITNvPlVWWjlRNWEpJXkmRG9feXRGNkZac1Robn4zZmIKeiNz
bGRrZXktIzAxNSZkLWA7O0c8M0ZjbUk+Xz5AS1BwLXgkZUheO1E3IVNgeHFIJjRCM3NnZWQwOSFk
QHd8MF42CnpNPyh3N2pkbTMpaTArcmo3KX0pclR5K3g/SG11bHs/bTZqR3hhWXxFXng9d3hJdHQy
Y2szPmBXYDl7dX5OMEsyKQp6O2JNN2R8Mz9lSkhpUThiRTdtMm0wKDAoblRTMjRWIVhYJVBwSllL
X0FIaSsmKV5APC0yTEw+JipkcmB1JV9QSD4Kek45JmtIeFheSj04OTlJZDV+cjFONnBWUko/RCNj
NXU2JWxFZTZsNXdvJFMpXmtyfFZ7blNtWiRnfXt1JkNfMkAjCnp7M2V5fFhrc047YmFZMFptTXJ5
VUs+UVd2IWA2ND4zRXRje1VGYjBNJnJmfiZNYU4xZiVvTW1OI0dPKkhsSkhIYgp6M0t6VVghcUFP
UlptOE89enNKX3V1JCslOTFAVkVRYHlHUVNqRnBndnkmeSVXJEFfdWhDeVMjfTJMIU5qcHJ7bkIK
eigwRlpYeXI/NzckemdJVVFnJnNiVzBeRm5vPj1KXnZ6JUE4LSlLMjJidl99O0ktT2lnTFNacWVQ
OHM9aE5ETlBCCnpwTkk2TDdaI0lxOypDWStKX1olS3w1WXN7OUd2cDl2dF5iX1BVaWtQUVlXUnxt
cGV9OUc3cjlWOCRDVWByMHN1awp6Ri1MOVlXX0NHdCV7QWZyaDIlak44eCUxK0swMjR4dnZ5dEhU
MGRMMnhYe3BLZXR9KW9rSjRnRUQqQ09ueylUKH4KejtXfDthQEE4cExWXlEyZ15WQEAtezhVfk9n
V1VqK1RfP1BAP1N4RitMIzxPUnNWc1dOKXY9Qy0tWk8kcmVwJUplCnpAWXE0N2lpJWc1OTZPb0cm
SlhEZks0QXh3LTNvel9Yd0N1IWg8dFA+NHw+SmV4Z1lBcU5RQUAoNVk5OU5vRzltVAp6SmpjJS1Y
bUZ9N204dj9gJiRuWUI8T2RGR2huRlJ5MkRJOzRLX2JkeXxETEtMa2VzTD9mfE1CQFQob3wjNDVP
VmMKejtvST9ANXxgVj5YRDg9MiokalchNHB9KV5JbkFoRGVPal99JHY4dWZmYWlJfj5XbHVjJjI4
UmRMN2U/PGNFK0JfCnpZIStWRTJgUDdma2NeWD5AVn1UJldCIyRpZHEtWnNmUXZDYHlGRzluN1dR
fnxpMmFrUzxvYUl5P0ZuKDA3eEVMNgp6d0FiPWJjdiVycyh0b2F6QkJQdV9PeSo/IUs7b19wcm03
YHZ4JGh+IVhVJi1VRmxjfEFsU0NyQ2A3fiFNa2QqemUKekBCc0pAKns/c2FtO3dwbmxAal8xciY8
SktILWJTQ29SNn02QmdCP2BRTCs5cU5fWHckbnNBZ1FWPGU4JmQ3Rz88Cno8PEo1SlQmJVpCZ2Yz
fjJYaGJBLUdBQCRINkw2YUh6a190M1NsPCpHcTdyb2IlTH1eRUhfTU1nVT4jKVFBSE9hQwp6T3Er
O3FecXxKbmlQe0NuMFA/WDJlfWB9R05+ZXRxOzxneXN7eUFCT2o7ZT1QaStTcDA4VjFGTDJ8fUcy
P0ZLTUQKel9sc0IhbnhxVFVtUCsydHs9eW5+alVJd085RUBYVDZ2QkEmJC1VNjhtc0ZwT2ItLWVm
KU8wOGFoN2hTJjdEPktkCnpmZW9sJkk3Q3I+TyNifXplRkM1UVUhREFeaERJO2Ykd3RwZ01wYV85
SGhPKGM5YC15aiNifHNrREFZM0oqWVg5Swp6THQqc18wNj09Ung2KH5vLU52YFo0fit6OXppcFo8
TnZBa0ZJNCM9dWx6ZSV7aWM3OVNxYWdJN3JZc1lRZyRPVSsKekM5cnAqTEMzM1V7ekljNVNEdWll
KUs2VEM5dnkxKjxwM0l3MDdPVEMzcHFzZFEzT04pPyV1eEI7e0xtejl1SkZ6CnowVHFUZlpgVGBn
dXBZUmdMenM/I2k5d2xpM2NTNDQtT3xrN0ZMVzwjTExRPjRfPn1LJnZUaXU4MDFiSHE2c2lFXgp6
aVlnckVreWpfS3FQXzxeUDN5Q01NQ0dVaWRQKXBXLTdwZC1YbVApJV98OU1NPE0oMXwxMTZwYHhY
cWhDRE5qam0KekVgfHVzZ0o4Qko8ezdONFY/MnM1c1BOVXA9ZVV4NjJNUXVrT0NRbn56YW8rNEhG
KElFOyM2dy17eGR6ZEk/WW8hCno3fHpvXjxxJDVVMHpQKXgqbTwjTiFUaDxhUl5tJmZPOEVNI05Q
MD9jMVlmeU5WaXpHaFk+S0Q2NUZaI1EjWSNrRgp6eSppcW0zKCFuUT8mLVB5Y1FiVH42JmpeQmRA
R09rd3R9YGRpI3QzVz1SWjdPVTJiRGVCOFNlO3tvKWw/bFJ7Z2cKejBiTjM2PVAjckhlbz0laiRU
MXc8NHJZVm5pWkM5NzZkeHRYUzR2QztqcmlfeStFVj0tY1h8JFlNNEwxUl5mISpyCnpkdk4rQF51
am9rdD1td25UYjU3bklqfmRWJXtXdnI0b0RQMGs/MV96PHRhTERtajdHSTVlQVdYd1haUUtiR0At
NQp6PEpfZDVeRm9qfElObmJCKFZyfiNMSV4mYmo2Uk5tNVNLdSFnekk2VEM/VT9VPFk1Rn1TVXpl
YiUpZXpYdyhDJU8KekBOaylqRlJmUlhzJSZYcG1kQ1pRb25BaT17U3VafXIxSSgmb0luZ3Q7JWEk
ak5ZWTZtS3ZtYDFnU3VfcEJ8PVNTCnoyTERISzErV3B5S2dzcClzM2NCNWtHfkRoXlVCcyo0JD5E
fm04N3YhO1FAdCU5U0J2fWg2cktJRWtaeU0+MSo4KQp6aGwwbXVvI0FMOTQ3OHxMPz1HNyUtU2Z6
IzFaemJlNWZyM3tyKVozb3BhJjJfO1chVDVoMjgzZmUoanFJNnBpKCkKem5xUTliUiVATE5TK1A4
TUo0MSpRZV9oMWFtaDtad2E2WXdHLXw3V0VqQHw1eU8hJEFLVmdIKkNgb0UtTXwzNG8xCnpBQz1r
dnJ+S155YnpsIVZVc1EpbCZTfjhwJC1WTXY9WGRTfSRYSHI3Y2ZhbXpadlElK3l3KjBvLWVKZj1U
eEAtSwp6Tz0hOUdffHxofXxEOERJbVRZNHRDTXZ7ZFVWeChjVFZ2aTtvbDxNaXs1PS0+ciNEWnI0
YFJ8NVlkMkNXQHtOPUwKel9hb3xjWk1vIVdDWXY0NyZ3ZU1gRXE+VW5hfXZXZWZHY0ZQVmxpN05L
dmpJPl9SQVcxezVFXmJtaXkhMik2ZkN3CnpuX3FOSG9wd0xnSH1uVXR1NmBRYnc1Rylic0c/THxf
YTY8JkYxTjd7VUxXXzA5Zzs1KSotRXpqT00ybVUqP3hKSQp6Sj84RXJ2RTRnND1ZOUZed21TMH54
TUVOQHlscCp7MykjRkxhOXE2SGQxbjstdkJDYTRRZktjZEI0K3NfbWYxSyEKeitrYlRiYkVsTnVx
cE9QJXdXe3IrO3tKZ0JudjtNZ1dMPkBZLXJDMD4rMlJTSk95e2RDaX5vQVJZRiFTeD9KaGA0CnpC
bj5wUmRoRClONklFU2lwS1FqcWVqRUdfcyg+QDNfNktnfkVHfU9FPmN3KHIxI0hQcWAoPyViP3p6
MUVrQHM9dwp6cnhjNm5fMWpXP3JwcVVfRG1SK352Y2RnPj4jLUJudk9heEIjQilMMHZCaExaMmlj
MnE8KkNqfVVEPCF+LSNOMj0KenlockkpaDgpfGFkPzdndCtXblEydT5JcFl2RGNwQnlVMyVhOXNC
el5II1k+dVN+KVBzKF9yIV5IYF5NYXs9Sjt+Cno9aX4/eWA7b1d5ZUdVVVAlbUAxYCslQ0dvXklv
UzdFRTJiU0RZcytHeU1AUU0rSytuNFgkMW99QXxSfnVpOHd1aQp6RmoyXlVCSnpkYmc+bHZ7TC1h
Y3FRRm54blVpa15JQ0B7c2xTcXdMZUdQflhtLW1tWmdadUs/bDQ/b3czRlolTWsKej04PkBfVkNA
IzAzQnp7JXd3Qngoaz1eSHxtLVg4dkdAZ0UhVUR8dEAhR3EoKStNZX1pWnJgPmxHUit4QlpoZ2cr
Cnoqc3RCSHkoVnJLWWFpWnpGOG8/eUAhfTQhYnxhJFEzfmd2RWVEZnUzO21FYmNuNiN7cTBoP0Z2
X3IpY1UrUVElUQp6PWk9aDkjQnVCQmQtMEt4b29Acy0+anYmb3R2aWBAdVd1Rmw9TGJtZ21tQXB0
b20lKC1NZlpjO3FxcUY2ITlpRnAKenRkaTBDO3pqcD5wUHFEMGImbzJ+SXJvPWF4bGA5JFdKY2tH
bnskb2xgJklQbCZ0N00xdllxbTFKJXYjUVMjOVZ9CnpTaUd2fl9wT01uKjFSZ0lPKklDcVAyYzJm
Z1hZazJ0QEhhKDZSJVMoZ2NHdnYta1NDNVNKe0lsM3ZZYlUrQHFDRAp6TENLbUJYSl9oMU8tcDY+
PVlAO0N6T1U/eEtieWl2NTFOSXYyUUloPktLPTFHR1BYN0ZfTT8jJChWZWtwbEdgaGIKekgjMSNM
RSZISnEwflJsWWZ1YFZ7ZyVgNE9aXn5sYnR8dDg0R09uRSpWOzMyMkREZU9Adi0yc30jfHQ8QU1v
RW5CCnpRMzE8IzJrISlzcj9Oe08/bUA1Y2lOYT44Pz0kJTxTVTN5VkY5ZGIhR0JBSCVzZmMwO2Io
Oz1yXjlmfTEqYDBoTwp6WkY/JXZjLT5nSHtDQEZqKilLSFgobz50UCVgd1khTllfNWdaK0FIOU4/
P1dHTH5pfUd3UStOfGQ7S2RmOVFaUm0KelFKM2ZVeW5nUCZvM2d0OUlKN3Q3TCplRCNXQW5oeWBB
fn5GWVcoSFIkVyk7d21YaSNQIVE5T3NLZ3ozcT8xbkVLCnp3aVZARz9zakhWMC04NUhHV0EpQ19v
ZT9gJUZVZyg+MGR7Z0E3Xjc7dj5abSs4e1F7dHRLbnlFU1NwZG1IdyFyVgp6NUYydGZiZD9lO0J0
UVNWd1A4S2NAZHhia087WVFMRzk2JktkXj5rRGRZIXM+U3NjaUdiTHF0b3k1fkF8SWR2I18Kei1R
eihtTyZEUEZoKFchKnpIKHI0e2BgM0pfVXVeYVNvJmg2SH13MnBIOXlHV152Pl93d242NXJVQSNf
eHtsbz9QCnp5fGQkZktSSD9WcFlyJVgkbCh+bHFUa2xFSiZUbEJ4WWNFdmdRU0pZTWZQKnxkO1Nm
Pk1nellfWWVfSCpiN0JlZgp6KlZRSWhqfUR0eXJYZGt3UlNrMWRwUn0ofDZiaVZTQ21pKWphIWsl
cmVueS1KKlVBekRKWlhjdS1mZz9MbGtkTigKejA8NV9pQkRXJTVqfnt+VFUpfH5rbWRnZmk4PFBT
N0pEPGhVMjZxflp0QThscTE1QmVNRksyRzNBNyFNTERGSiFyCnp1YSthPzxyZUVYMiphLVNUMHtA
TVM9eXBpUytZK1RBS2otLXk5ZUMlYW1RYWhveWBtYHRQY2lTcEZVcl9EKG08Swp6cEZBbkRvUiZR
JD4ld1ZMKyojKCY0bXlyMHtFVWRpVVR0bSpVMjB3fHB4NHclZnc0SyZeXytpd0koc2lpcFV5aXsK
elYtXkVPUHxjLXUjPllMNTZuPTheRVVJQk1HbClTcWVaTk9AQE1FOzsoWlJ1T0BUYmVBVzIteEQ4
dWttVj5uTUo1CnoqVilWM2NCYmE3QHE3Mj5yaFAyQGpQSlpPXksmczxgPnM/Ujk3XlJNQDxNOVdy
QDNoMWF6SlhvWTh8SF9uM29JTwp6fEJgWWxDdztuRmt3e3FWeFcmZER2XylkaUdgI3gmN3opP0V7
XiRKRm8hfmRFKnxxQ3FLZjhhQWEmT3YtTmIxcz0KenhGOzZRanxYcEdvLWA3K0ljTkNKSnZCMGVA
eUdqX2QofkdmZmZIPmZnVV5sQEVBOVlsSkhaRzN4en1CbExeWVQwCnpFZXslUlVrQEBKX1ROdncl
Xy1ZIUkhTmVTQmh4VGtAWkY/SFlkeCp7OGsqPG1XdChJYTVfQjtBRENBJlpGLU93Vwp6UnB6WCVT
bmdrY001YkBwPU0hSWRWXjhlNCNmfD0+NTVEe1RYLXA4bmF8QHdiMVRJLTxIVE17SmRnQHp6QjZW
MW4KekU5MldMWm9hYl9XSU1uI2QyP35USVZ0eVFfNFNRMjg7VHdpKks0MU4kaXghTnd7RTwobSFi
fTlUblA8WEZKal4pCnoxb0M8aERgZUpOLU9TJS1geiQ7ankhP31GPjlGOU1jRHVMSkpEZyoySHZk
VE9pUV9CZDM2ekdyPGdOWj5PWSZkKQp6dGl5M0gqPjZUa2B+YDVVPkQtb15WPiNDO2pRUkElTWVE
S1JAdDx3P3RkcldQez1Qd3JvMVg8LXteTWpDeGopVj8KekM7aFRMeD9TeVNmNCZndCVgQkEoVCsm
XmFMRyZ7SVl2KE92MzgqbGJ7N1pKeUxIdXx3YU1PRmpyKzFWNCtHY2VQCnpMUW1XQllGY1EwIUhB
eG0/TExteT5hPnR0Tl87fFdnWGwmKElrLUFrOVI5dHllfHhlRkF7ej8yYzsqLTZ1WUYoVAp6cmkk
YGo1RWlATHRqXi0jYTI9XnZ2KCFRfGFRVGN8UX1RLSl1YSFGPFB0RDF8SVhrPSEpJDRZP1NOJTFF
K2ZWOXYKem5NNXtkJGwrXzwkJDMqbl5GaUdtdEx3ezB0KHlsMG5WVG5xIXY7fD9rNyFhcihYclFs
NiVrNmw/aFkpMSYzOVNNCnpfMWJtPl9JZz5qSzlNdTdNcHhXSHk2QDVoamd3dCM/M3YtZDYhKGFU
WnZXfSttQz9WTk9AMzBXSnJqeVZhXkQyPwp6VEY1PWN0cWduN3B2a2g2UDs4dzRCKmpPaUk3I2Mx
OCg5Szx6SCFNd0xuZmNnND9ZUkUpNj04ei1oalRuWHs0VWMKejtrdkJVO2puXmApQXBiJloxPnQ8
UG1weCgtXyVFenVnYEhWYD5eaz1ELXM1VEBxQyMoeSlkRzZDKG5QXiVYc3h5CnpKR1heKkUmJU1o
MHgoLVdVc1RAPUZrLXdhPEJTQ21EKW1gWUltfDA3R2VkdUYxMXRSK0sldmBYPnZFREk2bjZvZwp6
TztneFNZRExJUCswKTtycm1kQG49XkxNM0ZrZjFLeVdQXkt8Ml5eOXpLZ20jU0p2OUNBIUg8KGYh
dXc1UWEkSUQKelpAYkIwbmw1KHRQKiV2cHtWd3B5ezxsV3BQM2E1bUVLbHJ2KkZkbDdoV3lpOFg0
OHU7Z3tXNTFQS3g/UXtSTnhPCnomZWd9RTJMKkN3Y3RmITNZdD9PJG1NMil7YDl0UTVMdyZRbWI4
JW5pSm9+I2I/JFQ1WExtOzt+Tzg1RD5ZYXwkdAp6IXp7R3ImekdfbHVhTHV9Xy1FZGYra2UrfnZq
ZlY4QG56NVpkSXk1OHZORGJFNFFMbnFTSihHYDJ1clFYYll9PDYKemwmYm9uTHpKTFBqcDVxM1NN
O0NEUERhIUhXUDRZd3s4IzVAXnxCVyhkbyRDeUEkektpbmZRTmlzakBJKzF4PFlVCnpSRFNlRFpE
PyU0eWhqKzJIYGwqUjdiPDxtNjFVc2I7PDRGMDRfbipMejVlP3tDaTJCdy0yKDFzT2xEYFpQaHVE
VAp6YVVIOU1UdSReKTYyQmRvbEAwRVJIKXFaWW89aFo+bG5lciomQ2thbHlQSTJta1BSOT85bXZA
d2tlP200eFkoVSgKelY3ZDlaWTttKE9qSTZsVVZGeUwwVTlXdn53dCFvOXRjVW9IN2p3SF8jRXE/
S14jTHdaaEQ1JjMqeEx6YDZ6dDdHCnpaJldPN3dJZz0kIX11RktPTX1fN3VqS3ZCZztuTUNeSl8y
Tlh5UnA3RX5lI31hdXUqNHB9WHM4PyVIekZ6c19rYAp6OVZOQmBaezc3ZHBTa1g5JWxTXzlXNXVP
Q1oofDFjOGoze0AoJXUjUm5YTWcmVVBwQlFyUmtSZjBKck42QT5Ae1kKejZpMVNnZCpqJiR8TXlh
ZEZ9WG9JQn09RG5sRGlze0hDKUJsbFQ3aVpIfDJEZldgUzNqKEpYZkoyWHtSaUl6MGkpCnpNdkkt
KyhQdTFAYnM+eStLKkROSHREd349V3tqIVFAelZ4b0A1PW59eFkoc2QlVkdJM0lsfUFjRTNIaE8r
YWBBbwp6LVNLayU8YFNHVD1pPG5VVDI2OXE+I1RuPEoqRFlwQSluaH4zJWxVSFpIeUFtdT1NTz0x
bXRiSiZBIWNrKHgxPkIKempFUj8pRylCSF96NUpDXk9wJEEqOV5iTjZWMTUrYUFReCFjVWQlTmlC
UlVeUSNReXEpJSFyRWxjKWdrQW1KfVchCnp6dCV5MGE9a2JBbDMjZCNgUHp0aXpzeEFkPzY5WVM8
aWwtVXR9MzJoSVpgZlh2JDJ1cGNLPkhTT1UtIWs8OH1Mbgp6ejVDYj1Wd1NSQWY7WiZgVStacWh3
Zmg3emtHP2wpZUdyVyQybilxcnAxaTAkKnVVS3xLVXc4O3JQeTdpR1B8NSMKelkkOVV5bmpmWj9P
TVZJcjwhSURTVWRZbER2PkUjS1dITzZyd0paPC09fEt+I01uTnRzczA+YChKa3lfaEp8en5MCnor
ajxjYk5POE4kYHl5TVZUQmQpVncpdTVfYWo1ckF7SDZCITx8RWxnLXEqZnZVaUM/WCNDVWx9dktE
N011NHk/eAp6ak88b0lZMF9rVXY4T21VQ1F9QEFqSlhkUSQxZD1QdygkfnFoUnVsaEooPno0bFJ3
JURyWn5sSzgpOygzRV9nR14KemtCRDZrLX44dDhvN3UkQHVOMmtLIT9ifTlIPkxXO0Y2U35TO3cp
RCFqe1VRZSl4UXhHeyhCTllpVDl9cjIqfDVECnpxZDBYMTlIZmBpPWRVTnR6NW42KTBLYjErLWhX
T0M3XzJYUHNAP3x7Wm51LVR3aTlAdj84WVRmPDYkQnxyRkJBeQp6dm1veFd3TUAlM3UqbnJ9Y1dP
ZH05QEdJdzBfRy1MZUtsdkxXfnUmYTJQYGY8MTlYZ0VCK01SR3l7OEV4c189M2gKemNDRyk0X3M9
ZnFDXyRqNUllKUFzSzEtYUkpcWdqWVhkPFMqUyRTVExCVm0yZ0hESEI8bCV4JDQ7Sil3WnhpdTN5
Cnp3Uz9Fa3xId3lSIyNxfC1OfG41TXRHNHw8NGRFUEs4MD13KllqIz1pK1ZyPnYtVyVlVGM9WkFT
aDk4SGc2dXtBVAp6MUo8eDRkKVU7KXtrZm08PGAwYX0/YztYQD5CVHZGPTEtKEE7Rz8tWSV6KnJE
O3l8JVE9MTAyO2Z4Vnl3X25ZbEgKelM7MiRwXit7ais4WkYwSl9kXz9YMXRRRTc7OX4hZChvO1pa
fEQhT19NKkNjT1hZe2wrRmY9cXVHdGA0Qz1WR3lZCno0SCZ6VXlZazdOZCo3ZV4qMVktbiV+IWQz
a0RzLTxuS191KihTei0/SE1naDsyPUs/VW8/NVZCZUBRak9afXBzOwp6TWJ2SVp0emohKmQqPTR5
dGV5cUNYZjRnV0R5YnpvPFpwSTJMU3J7YU1qaWxDN1l7Y3VwMFBmbWZyV2t0I01PMHwKejF+eWVF
ZClta05AfE95TVlaa1huTEdAbENYUkQ5dER5T2FJYXE9eW8mO1NIPE1mJTZXZmd4Q19SY3R8dzlp
aj9nCno0VX4kYWsqeyp3eSVHa3sqJHdhN2NYeHltQmRVU3xuU29SQHppRzA7Qk0hVGojXlM+cGEp
fkY9WntDV1d5MXB1UQp6TjZqU0AwQzB6RHJiaTZGPi1PNHd2P2x0cWpxdC1KSGd+P3QpcG57cG8w
UzI9b0ApeVZWKFN9fTF0dHVoTnA/MCoKenVLOTZ9PzVxNkN6UGwkYmwjM1RPQGBxJEwkR0NQISpZ
a1BjY1lVRGslPWgqPCYzNUh2YyR5U0FJK2VZQGdQUWk8CnolbG98ZC1QP082YDV7cipQMFJUKD0z
UkV4WTVGRHJJbGNPIz89cHZBU34jPz52Pmc8PmJZdGY/SU8+d2IwfGNJdAp6RkNPckZye2FiMjcr
czExOSRjNHpQVUdMNCklYXZfPThmb1lEbEcrRVFzK3RXPXs8bnVAbnxvZlU2aCNMPWhOWmQKeiFQ
ZUpWZW1mQ1M8NFpkKHs9VG9nPk5fSj4+UiNEfl50YHQ+XlphWEshR01zd3RpeWkyPkRPLXRub2xo
fWBsQlJVCnplMTwtYEJZQ1FDZX5iTCF6T0QwRHR+ZmFgKTZTelhKTm9AfXZCOUlpQ3k7cWxkTEBm
a3ZtJGdrS2okfH5jRWswawp6bUNhJlZHWE9ONCV0Plc/YktLM28xQjRtMTFvcGpOeXphajlhfEdh
TXsoNkVCeElyXiNoNGNae0RqbzVRYlQ5Sk8Kek9AP0Aqd2Q7ZSE/bTIxU0g0cEE9JiNuQ150LWg8
YE1KNU4xKiVwR3xIPj1rR1EyT2JKVmRuNyUqSXM7c3tMdGV0CnpSTzhNaXJudSt9NHtsfXp2bSE9
eS0xcT9pakdMJm5FaCshe05RaEdaOzk2VTEtTGVTaTs4I2tEQ01XPW4mT1ltPgp6eGg5dkVlbnIp
dlIwNFd8ZHloVD9mWCU0O2tHM1RMNUUqJm1XdXdvYUgldX16TUAkQ0MqPVltQlokS01aQCVAO2cK
ekZrSGNINzEwNjxffSQ8PDl7JVgpUk5LaT5uS2VlSGJAeCF0S1dKdnc/bF5URTBMKSltaVU8RTsz
SF4tMVc0KzBVCnppbzBreGxsZUpkJVd9M0UhJU1CMitxNWBVJjBUeWJScV5xTWxfdlN4KGRKRjwo
PnZ9blo3JUwhI2wwalVgI1o1TAp6VGFTR25gOSp5Uz91RmxJZH16dnNDfXhKVEtWQnRSemRyanpI
PHw2VmA7MCZUPn0rMTZHaEZoaktpdXkhTjRvUU4KemM2KDstS00mOE9OUEYjMXteVGxaUGJ5QEQj
cUh8JSFONFcrdUptQ3dHQjd2RHB8ZW9teldFKCpoR1ohKjBCbHdICnoxO0lGSzI/NUtWSDIwaEty
Um00IWJNMzs8Tkh2U31vJilrU19OdmN4Z1JsfCEzNztySlA3VCoxUzxMKXFzbWx0KQp6eWwhM3tY
VVVuKlUkbiRsVCYoZFgxcnkjanM4c0RwI25DU1Ala1RLamtvSkBiMWg2XzsyWUw7RDNIQ1g2Kjhn
RXsKejYwKmVxOz5QPj5VaUJuXyVMa19WKzhaX3U0SW4+Umc5cG5kRmB2M3pTa1V1NWBZSm9PVXVw
UFFVSSgjbkk9VUNRCnp4T2BXd2ZTKEVvZDtpIXhHN1BxYW5fVCs5UGY+ZWckSCskdHAwPEc0e0Rw
Yk8mdEpXLSU8TEkybURnQEVkJXFsVQp6czhmNXMhZlJZeD0mV3ZieHBPQDBfQ25teWVldHlhVmtQ
O3B1UGU7VGxAUVJHJkFEdW1QWVhTLWUxMXc9UXA3KUQKemBwdnJrUEQzaElKTS1qcncmfnpJZWY4
fmElakokP2VRPmJAWFVfcjAreE5rfWY7UEZORSROa3lrbEYyMU1CJFpqCnp3JEstOXpyP0xjS2Nh
TERRY3M+O2RYfithPCp1S3FzX1dJaV99STdTLT98bio/M0hfJWIhYWtwOXdmVi13VGFtZAp6JntZ
QzhjX1Q5bzk8cFA5JmU+akZBOWlARmh7IUhgNWxrQEF1U3Jkb3pHLSVWYyU3YlM+Rn0xSmM3b1BV
UGNEfksKekpVandZM3RnPUJ3aiMya3tEdkZ2ODZXK3pSP1poMHl+VjVWKSpeQng+OWk4P3l9QSV5
LUt4ZFNCZ2kkPXNIOXRICno1VldQJFkhUFJIQz9QbUZeUkZHOTJgYSkhKVl8e2hyTjJsd241VCpE
d2dRcUJBQUVmallgOVZZSyEwJH0rcSs/OQp6I1pHPEhFWmU1M1RpRCEzLVEyUGBZaD4kZG4lNT89
a3opKmolQEcrNUE1NyklTXRxc0daV2Y5MWU5SClZfDQ+VV8KejRucXJNNGhaWWUrT31TY3ljWVlH
e3F9aWpUfkYqKU18REc4WVBlNFpVfkptTE1LSSNqfEp7QG5jKnJoRGFDYk9QCnpEJnhVN1JTRX5P
QjEydnxrcDM/YU8jKip1UGt9ejRaUERFeEo1akZCNkt9bDcxSSF+Nz8qZnxIciVGaVpXQjBZKwp6
e1JlNVErd2IxVGRGWSl6am1gI3BWZD1ZS09NaWxCRU1MQ3JfWkl0SHxOUzhZUUIqOXNadzglNyVo
S0NmVz9SbSsKeilAPVduUUt2QHokcVJ8JEZ1cF5RQU9ZclReRkF8T0deVmZCbSpVbW9PNyEhNU5B
OEluTXNGOW16bFRDK3g+VzU/CnpfJVlKKVo+c0tYUX1Ya2F2TmR8cWFsRSNfQihnYE4yclo+bk5f
PFg9MGlyd0Vmams+eEwjYWZtclFJKk4wbW4oZgp6aD1yQyE3cGJYY3QpZFZ7QmBHRH5TNU9MJE51
JSE3ZC1VdHdVfSt0MVRte2IyV24/Qj0kZUViPyRSZF58RkhYI3cKekA5Iz11ckpCU0Blem99VHJ+
S3ROMmFtZ0w9Z0t3Kyo5Wn1ZYilZLW9LbEV0fFgjcT48MyshYVR7P0V4Vjd1UFNnCnpwdTZ9eEN0
TmNGbkV5VGt3WDZqN3dIZT16YT84RCtYVFJwKzw/QTdBOH1YajdObGZncHF5JTAhZyRTKFlKUGRJ
Ygp6MERqJjcmSHdiQFUoUkpsO0V6O0RvYz5HTSpQb0ImOD84T1dmeDVpczVwPVJqTn0rfSVmPzxF
U0h7R2o3PDZedysKekI+eUA4VFlwJVE0RkpNYk1aI2hhM29HQ0wtaj1QPClxbWtAZ2E2Yz4hZ2Vm
UEN9RTlibUVhRzsqcj92NnFOdCVkCno+KT89KE5NTilqKT9QdzVZPkVJbyRqd2hiSGFESXxqaiFn
PnZHU0wxNEpSKmA7VVdxdmloVy02RWNpb3RsPll8Ngp6PUAmOHxXSER0UUNVemVmSjxGdVRQMnxC
ZUppRTAxZzUzeWo2WV9FX0NTdHw8VDVmYUcrcig4U2w+X3AyfEMtMFAKenJhRyM8RTNOUk9UZENo
MEorZTxMSW4qYGpoIytgOHh+UEV7P2s/aD49P3JrNUNrOUIjTjM8XnxQanJWZ244WnNXCnp6WWhB
T0g4QTlwdW5JXyp7I0R9N3pTKmBGMCR4ejRUNGhoJXJPN2E3d1JkKChVWFM3WSQkNzQ2PyRzaCQm
UmMqfgp6NzdsWj9ufjVYUnApcn1VY0QteUgqK0JsaDFJZzk5VEItO1o9NTNIQ1k/fj8hMkxVaT4t
JD9LKVl0SGUxMkdebl4KeiZGRmktQGpoaVomUWoxbWE1M3RiISo4MktgSkN6dEtsfW82NU9PTmEk
ck5JY2NYQlpfXjt0N0NAckdAPD5mT1BCCnooVjJaaE0wdEdgRUdoM2Yyd1FhbCZGPFprNTY4JHwz
NEIyVXB1NUw7bFM0ekVadlhQQD5rSiEkNF4wPGRpYUxMIwp6emhBLTFnc1RmWik9IURsK3UxUDM/
ZzstYWM4NGQwUDBWMip0dyUkeUdnQihTOEs3TnJLXk9Ue3Yqby1UM087XiYKel9DdH1GOWAlbik1
KEJkIWBIVEpNbXheOTt6YiV8NC0pKXpZdXh8ZTFZTXVKYnwyOTNxamFfT1YmdnEpT0d5WkFxCnpz
PmJ0Y3FtX2F9b2BhRzBHV0NPKWl2JHlKVGlAXkc3dGc5fEtebmJkMzFxQSU2Rz9OQUlOaERsJjla
Q2BWcz9mMQp6U2MmKF5kVj1KWEtmfnJ1T3t2PHZhO0oqcCNQJGp3OGo9UV54dCo3YUpVSkpSYEQj
XiZ1fnNvanVlXnolYDRoS2UKej9iSHE9YWVySUc8N3I3bjxrMDNGI0x5aHtoPTZHQzFEcVBFc3J2
OGMrc0F3R0FsK1ExZmB4cFZxPSZ3O3hDemtMCnpre09TbVljcyQyS1V4NUxkPzImP0YlcTlnR0wx
dWpBeys+JWU9aGdoK3MwI0pMWEVlTFpwWTJ+Q08/ZmItU31ieQp6azRLaFMwSn47dyhecnhhO0Qj
ej8zITYpND5BM3JJOVFCTVB2aHw2Zj9oYGZ0Jm9wNj9uZEg/VT8zfiReOGAhJFAKenReKndsdmRy
VFFvc3U3PExTb2Y1cVVlQ2NLTFdGUkRkJFBKWUojbGU+dkR7e0NxNkFIYDYqUCFRLTFRcV90USpZ
Cno7ISliXnF3NUJfS2xmfjlIX3xMWG5aWFlnPT48VGlxVG0wZEE7bjYqYUBHZSRTRDA3S01ZVmV0
ditZSzFlRj5MUAp6KEpEdSZMN0hiT3leI3Y7OFk9bDZie25yS3UqM31hcXFHK284VTN5PEBvcyVM
UikhfkwpUk0+fEJwISplbTJLQVoKemJJcGA3Uk08TERSKV40RUlmVGR1T2QwTyF3cyY2bWVHfnR+
N3ZtfFNQZCh+YERiTHlZZihKV3A1LV57I290cHtWCnp3Nn17eChAN1ZgWDNMZ3dOQ19QKldsc1dt
SmdHZVl0RlcmT2s3SFN+RVhlfVBMVz56fkZAdDM+R2cte2MlIzQ9Qgp6WGZaUTBHdWFrMUdxamtR
Uz07eGB5TFZASGM2UmVtZXFHZ0Y4NU5tYlMkUiZKJFRIVjA8dlp8ezFeSm9qM0ExdXoKejFaVFE/
R0otKEBAZTAoKWZiQHJPSSslNCFYfU1nMjR6Vj14PlpkRiZpTk5SSUc9MjlnUEVDe0t5JD84V09j
JFl+Cnp6PXUjX2YhVml+eihiVUY4eWQ3JkNfdiNOQygqJjAhWTJMaHhENnp6R1FMYF8jeXooaHRE
QW0zO0pZWEtXYCV3OAp6PFN2ck1kSFBiZ0pAdHZJVFg7YDxKJW5AYGVqQV9leUgzTEJWMnxzaiEm
a3Y1XjYtKGR2OStoT3ZTSD8rSUwjLTUKekllWndQYS11KTs9dCZGSGptZ05ZUnpmUUErMU5vUEI7
WXJjeFByUlBMKDdzIUM5YXp+c21Bc2pYO0FeV3FHV0BHCnpCflE9N3U1e0pQNzwtK1V0a31AZ20k
UmFBKUUkJHppfUNPbTVrfWhgdVV8MmBnJFo2QVhJNShTQWotRSt5THEwYQp6WDB+VypTfU9NeF8z
S2g3SyQpfmlpTHVvfTt0OHNCRjNSYT16WSUoMGpoaTZtcjkrKHkkandMZ2dKJGxrT0ltY1MKekVO
dztUTnlHZkI7YGAzUUpDeXstZHU3RygoJXpnZTk3MkRqWShVTStvTzJGWmpARD9IUk1kJCpKQmly
TWpqSjtPCnooN0AlTnRZPWE7bz5YTV5kNmE/UHJZeng/YzwydHlUTSFPb25ZR0k3UVkrPHl2Szk2
Nnc+WVVWUkgxUGpaUCY4Kgp6Rzk3ZERgfXVqQjFVOVE5MVZVLWE3bHpUbGRZZ3A1PEswR0BicD1j
cWMpMio8UVIhN15HKU57eVBneCNKe1NpKSEKelpjaCRvWFVPRHJ6TVBAYj9VSzZOTFFoPW44YEpF
dlExRCEoPUlXaUJtRm1MKCMld1VTZWFFTUZqPnhLOyorR0B3Cnp6UilIVGN1a2gje1dSfCRLN1Yh
QG8lQyo/I2RsKmY1O2x+UmZPRmE2TFJ5Mko9N2FBJkRJTHxMYEhXXmtqXm4mLQp6eTBue0JobCtQ
bGF8LTJeQmxBYCFwRXYzKTxNcj00XzdzSTJAMV97Q21ERjx3OHwlfiNKMn4tNmQ9Iy0pdzBtTlMK
emdgN0hxcXV4dyskMWZTLVIzeldhZjh5UHQxeStLLXpFe1VwMFU8cDFOdkVXeGU3dzg5PSQ9QEFp
cTxpcWJqSWd5CnpafEJtcU5KeENFNG5YMzA8aDswPVJ4bChaPG51emd5cUVjSUdXPm5Je2wzWXpY
VUlXTm1aK2AmYmElMXhARiNDawp6PkZYNlZuXipqQTB+KFBCXktxTlpob2daPiErdmp1QWQ/aUF0
Wkp3M2x+ZCFXIVhYbkhUUDtOczwkUiZfb3dQZXIKejxCQmVPYFpHJFF5Y0ExSShMWSFGYDRSTzJK
ekQjMFhOLTEtK190T1BAWiVvfVklQjNFcVJyUHRfQVg7dnhYJCpKCnpeN0E4XnViVyFuOCtCeDNB
O3NKOT91b201TGIwO1AjI2d4NT1aIzlxenA0dm1sYCZwfm5rR3U4Rytka14wMFhVXwp6bi1lOSZa
QGhGKSRGa1RwNVI2fTgjPU48ZzU1amFveXBERkQ/Xz9CWFB+MFFUYzZlVjVNX2I9bzQoZXZJNiVx
PC0KejgxRUU1RVV3Sz5STCk/PiMmWCRTXzd3SzxUclhsTWY2dD5qd2k9ayRtJFZXN1dDYSljXzlB
Z1BzWStVc2JJe0opCnp2d181VTdKKlVMbEpIJkQ9ZTReJEg+Qng3OSN5dSN2QkltKDV8KEV+Sk9T
ZXdDO2hvbFYpfjs4WjhhKz0/IVh6dgp6Y0s7cUdSMG9+QiojVG5odG80dzdEbDFjIyomeUF9ej1I
U0xQM3JvK182QTRFbEJnb2pRc3k8SU4weF80d0k9SmQKekAkUG87al53NmU4MXBZbl5WI2hwb2wh
KjRDczVxYWtLPX1TcnNtUE1DRUN0VldmbDstYkhjTjdwOXd5cjVxdWFHCno0YGU+RT91JS14bmgp
eEVBPFJ0cCNGKUJQX2hScXJ7ZSF4N1hhYSt8bDVacnchS1MwMjBPbEBsVH5tMytrWlhZcgp6Q3R0
YElUfmc9TS1iJSFIWWErMkVOc0lNSz5TKm9rajZOZytkMnA9aC1kLWtSXyRvR1AofmJQKUN+MEps
ampYOWgKellHVEcwQ0ZlUzJyem1RNz9+RDVyPjNBYSU1SiFYV1RUV2lUOTR1N1BRQT1jVSQzfkte
KVJ7cnE4VnN7S149Smx2CnpqR2YwcCNFd3w1NmVUZU9FMkhwQ3R8PGpQVkZGJmdAJDRqKWB2LW59
P31yc1dkcU1XLSM4IT4wYDQjVj49bFk8IQp6RXdoUGlmaH5Be1QxazcqTjVUKVFLazhQeXJkMkVq
V0Y/cWAmKW9IUVBISS11WFpNNVI5TmlzMiRfKHF4bXhuUFYKemViVDkyJlZ6ODEqI2JaTWxBNnxm
NF4wRyQla08pTE0rPks9KWdzLSNoTV98OXRRS1hVQW1YeGk1KkF6NU5uQmp+Cno8YkZidUlhWkpL
VjZCSkd7bndkU3ZRc0xPPEJqdjtzYVYwd285VnFXVmUmRXB3Z3AhR1BUN2Z3Sm4pdDA4Jk9GTQp6
PUhEVzw2d0FrbEJeU0BAampDMUsyJXIwUzVqPzFyMj1ATyM7ailec3FXJkJnQjZNRkhsJSplcnNU
cWxrT3BHPlQKelNMezt3NihrdnNWQ2hPaWhQRG9lWG1hYkkxNSVpdl4hYGJeeVQ4S21MfVVfQUZw
e2xydn19STQ+cjYoKyFDR1dhCnpBXlphZFklTVBJZSk/WmxnTUlRWjh+Oy0reih3K308TndxQFRt
PTk2cDE/bWYldF5xJUtMMXR3cTRLUDtuZntxTAp6clQ/cUVkPVptMGtNJEN1dGIyWEFkOXZeSlhs
clEoN3dQbHlQaEUhX0tRfFhGeHB0IW8pO0hFbHEhXzlTUjlXSSMKeil5KmJrTHhMPEExTCptVnpx
JlhtR0pOTUdsKWBXRWJ6cSstUjc0Z0hKOzxYemdyTG5rNFJeYDw+Z3B2UXtgTzFICnoyKEhLXlFy
QTZALUp2XjZ0V2xQNkcoPl95ZSVmNnJ2RnZiQVApYVhAOTlHMnNadFBmIyEqT0xAQ3FzTWZjWkZy
dgp6Pz52ZmVqYUhqSS1TMVQmJS1NQlNDdCNDKF5qWGtjY2Y1b0BoOERnMFFiXmw1WkJMQC0kZSQ4
XjVPZ18oUGZDLSEKenlzJERIRSRBQnxPbzx5Ym9APiZZTHsteWw0QUlSM0hDdFdITFAzdWdfVjNx
KD89e3gydXVwNmJneDR3PmtgYUxyCnorcjRoUTF8bmhpN2U7QDdtckBNWmYlQzMkbSskSz5AaXV8
Um4wPU1XSmVqYzFrUGg2ez9uNz1ZeW1eQzE+eCMrUwp6elBZSko8ekpRX2ZjYl5lSTtRakcraUlI
TlkqSlpKK15fTVQ9NWNDZHJIZ1JCUzlibEVTKlIoVyV9Z2xAX1ZMQCgKej1eU0g2Y3RiTTdAWkc0
JjQkKDAhJE12YiVTJGFzeG9QMEIkVHZiNmBJfVNBOGpzMG5feD0/NUxCd04wWHlKNTZMCnpVM0dM
K2EwKFR9c2gmNUY0OWtuPGNtbntSY2R1P3BTeDkydClMPjtWOT0zRzxWNX1FNUgofWxOQHUyQlVg
PSVgWQp6V0EhekBfTmU7ZXJ3WHhhJF5HRyt1Z358M2A0Klc+KmJ4az8xUmB0VUBNJVNlbXJMaShB
JitrfCZzQkt3PD5JZi0KendfMD4/JihhWjM+Nmg3RnAzWUEjKHR0QEdTWGMwfXhgQlVYVjxfZyNY
Zil9ZV5oUUc+YVpMb1RudSNQc25HTmhVCnp1cGB8fTh+VU8xdGg1Km4tPCZ0b1FmMmMhK3g9b1R3
YnxXQzVtTXp6Z3kwVzlrbUJtc2hWdyM2cGpHZlFKemcqbAp6OEFwejVXIXNySU58dnhjal9pSnQp
QUI/fkFjMWljTUl2fkxPeWcraXNfPXU1KnNkaFBCPWsmRio3JSVueWdUOHUKekZwZnZRZDxDZUYp
TD5ZUzEkSWJONXRHeShhWHJsfDMjSGo5dXxYVTYlX2d3UyFJRGI9M3Z9PGxlKEApO3BTYFBwCnpu
fClkWVMqY2ZhXyYhfGh3Rz4/OFdYNURIQyttS1p1SFQ3OyZSTzxkYW97MjQ2QHpLQ0tqUXQ3KGQk
WU5AKiNzbgp6O2pCdTcyTm9EUW92aCopeGpaaHZvaj1ZZ2NmbyZtQ0Z+ZkJWWSQofk8+MkdifDQ3
SDAwO0c4UTRzWXRkQTwyRHwKektVKmAxYWN7eXooKURVVzBqemQyQTNENTgzTEdLNjNxJV9AQ1Jo
bS1lUD5hbiQyT3xDJG49VjV5OyUkOGlfJmYoCnppYjx7bG5ndCFEKEExQzl0YiQmKS1AJDl1VzN4
IyZZYHlaaFolZ1k5VC18Znl7TXYtU2k1TXdRNHw7QWtoYCh0dwp6WW94dSgwc1pjeFV2byFJQllR
ezg9PElafCF7JmE7RkdoayE0Y0Z7dyVobHpzJShyeVgpc0Nwa21OYXs/RWdtOzcKenJjJVlfUXVi
an1iP3o7OGtJUig0STNgV0RKSkRLdU1udzA5eUYzeDBedDwwSWMzWHQ2JihsdXl1aSU7JTtNX28y
CnpjVX5ERi1ta2tteUNIemB5Qi1hNz9zXzQoQWdCSzxfcmI0WkhEQVd7T3g7bkc8QjBLbD19dXx0
WmBLZWZnPGJ8Rgp6IyFBdFdZJEowNEYmQmJYWjFmYSlORXBAU2lJR343ZDI8QG1tYUUpUyVTODIy
bnY1R3VtSUlhaVJaYzh1ZlNsKF4KenR4V1JueWN7O1Z1Q2pqWVVUJUw5RTZ1a2dmY3V+LTF7fWw4
Sk1TPWY9Wm5Haig4NDh2KGxIO0heYks3XktMMzYrCnpNam1gcDcmSXZMPCNePzdaPDVURGVUNDgo
NShSNFYhSXhxeXBTbWp0SkA1cDNNLVlYX2wmSk5KYDdfVCRAMnBINwp6N2ZRZlU0PEFUO3MxdktF
Z2I0aW15Qip7WWdVR3R7TlNmMigqZ25LNmcoaXlWJUp7QUtjPmN0I2E9S3FTaHk8R04KelBDOz9S
OSttRm9nfmdsSXZwakpBI0UoeyNjJmhIbUVEU1JDTjNFMl9lb0UtWnBMJG8rTDBRRF92NTJ+Z2Ql
enxDCnpTYGI9OXpCaC1ATStoWkEzYmRpSyM+PXdEcHh0dVdrSkhXaDVvfiNmRHhVfCkrSVRGJTdK
UnxKYlhtcHQ3bHt+bQp6WnhzckU7KmlySExHRGpwVTN2I1k3fnpGKEYyd0tzaU1nOVAtOVNtUF5K
M25kQUJCclR4bkE4ZnZ9eChaNXhIODUKelVEY3l8T0t+S3FtfkZ+Jmc7NF9mWDkkd0k0V181IUtt
ajErMStGVU9pX3pRKGdWS258c3dta0xYJXZFZnQ3YTY7CnpyIVFvNVV1Z0JwPGdtYlpMKS1HR3FR
ZTVBJSVjI0AjXnpNKHY4ZyFaKU1YRjBhY2tVfGFgPHplc0V2WSFwZipnMgp6I0lJPDYkdHdqa0co
I2EqV1V9fUUqeHVYZlVJdT5eJCpCRExATFd5QlJxanJaRC1TST5vb1lPcXJ7ZmwqS2UxTDkKelNE
SHI3QW9YXnNXRyFtfGwqKUs+WUpwKE4pJVgtNClUSDteaE50YitsO1JycSk4NjwpMlVpNGxFTS0t
ckkhNHRECnpqRkhXSEpyZFowajluOzx4eD9ObilvNUlwbzZQYDk8SiRyV0BabUtJTU5xVHxzLXUk
dUVWdjFaci1EKiF7bFZ+eAp6T2VsZUMmfl5GIVlMLSFyRjlPOzctMDI5S2whOHtXYUlTMztAVzQw
LUtIP1koSkVtYExUSWhEM1Q0YzZYQ0BPSlgKeiVaKGQ8JjJFT3w1VFIwI2VMIzVGTmxESjdsLVFu
bzF2a1ReOGpQVkB1WXJUKiNkKWp0UCtmZVRITzFacml2fjVSCnp6cT1aaXQzR0UxbDNgZElfTlRx
KmZkYyFISkNUb0MjaEE5I0VzNTVyIypoJl94VmtSK3M2bS07bUc4aDdfczAlRgp6cjtOMComMVpv
N214YyhWajVWKnNNe3lQRyNZVjJ1Kz1gelJnYW9UazhFQ1BjT0krIzFBIUJ1dyMrXms+PmkyRiEK
emVFITZvR0Z7MSkjVzgtZmVCZDZrYUlUZnlSNWlEci03M2BoN0E8Z3lUQ0c4dGFaVWMtS2lQPiZe
SS0jUkdLMGdnCnpRNiRrPEJnT2VaNkZpdmdPe2R+LXdnTmkrcGl+Q2BhKDw/aDdwbmtAQXF8NF4j
cUcrUVM1JV5WSmF1WnQwZnNZKQp6Y1pWbTYwMTZiN29AUlhnbW94OFBqflR9TTJvOTNXJG9jZnx0
JHhoVSpQfWB6JlJ3V3RuVnNvSyp2P20wQnlMMVQKeiZQVW5FMURSVXheMC1GM1lLWjkqUUUmci12
ZD9qcTx0V3RkYzg4Z05vVkI4LSskdUM9SSh9NCg+Pi1UP1RLTzZDCnpubXJpRSFQNWhvQ3FIdSVm
bEojNWsjK2BMNXwkcyZjfV5aNDRSaHNtJnxpMThKLSlwQTdOMUJ9ViUhPTtRaGw8Ywp6azNoYHV4
aG1kOE5uYzQxM0okeCQpPmV5OSp3fkQjU3B5UUshITVPdkc+NiNSYEVta3sxS1psRzlpTnBOIyF6
T30KemdDcCR7OHpBPHZ6bXo3O28qWmxvcFkkeHpHdmtPUkc+MEFfQnhwK3x0cVMjPDxwcTI2KDVZ
N0NRZ3dXI0pYRTBKCnpiTjF1SlgpQm5Lenc0Y21NKWNPRTJqbzMrSG1eIS1VbktSa29wbSRPKHhD
bEZMQXQ7d0d0VHZxM1BaUkI4bDFDUgp6ITZDN155XkZwMT1pbiQmeF9+cGpBfjlXZWVnOXZUWD1K
ZWNmJilpfiUhIXhSNmIhLXVmO0EkfDN7KnteMmA3TV8KekJKb2ZfQThiQmpFeXhieEg9dms9V18p
JW1Ge2NlOylNPmlOeEszXmBKMmJTT3VENz5VTzt5Pn14Rk9PPCZaWm5WCnozb1MxMUFHJlZhKTVX
PlB5TSsqJVJXXiEoZmQkWj1EYzZuODh7QnwraGdmUihPT3VeQWZZcz8/QiY9Jns7fmw/NQp6V3wo
emtaRzg0cTNYdGt6UmQ3ZXItRXluZ0lBV1V6IUpxaUo5e1MkVEorMUg9bldyU3c1bmN3a3hGYW9G
ajgrQkQKejFsPDRPN25mcE5uXkticjNZNis3Oz15c3Y1UVMofEhQaDktZVlWK209TkA7WkxPRDNo
clA1e2ZIJkMtaDQyUzJFCnpZfWEmKDhsdSp2aypffklXX3x8My0yanoyMUAhKVAxSU9gQHBQa0Fj
NlMqMHZrYiZISiYoX01mdVdYZGNAZHIzVQp6MztPTHY4eD9objYwZkdadmlGbmZANG5AKWFUQXA2
d1BhaFhlXkZYM1JFcTcrb3V9TCp1cTJjOGU8OXApSnQqbDkKeipnUUZidVFCPGR2ZG5zMk5sMzBj
MDFKZVFEK21PWSM2Rl99NlJjQ0VLRDs+dDkmdkMkdEJpQm1QN141P0lVWjBTCnooTGhySXExaTc4
T0RYQ2k3ek8kMHljQXU4V0kxelNXRjdiPDwjNUc8YFlyS2Q7JXkrNT02OCghMHJYVlJhYFl0fQp6
Xy0wR2lTdWZIej9WV2x2YXcmWWgmS3tCeXAwZjRIK0ZeVlJeS3lzWTlXUWskZHslP3hmZ3B6YjZv
XntPNmU5NUIKelV+Pks+MFEtMX4yVSgkfW9iJF8yND5NcXd7NURVSE9kekB3NyU8Vml2U25HMSZy
IVIkKmE1ZXdEI3ckdHV9dlJPCnpwPit7JSQhWEJSUSNCYDNxUUlKMHhtTExuMCRWIyNON0F3aWl5
ZHA7THtGfVV2fWB1Sm98YzI3Zm48e3lCMGw3Rwp6T0RjQXQpKSpRPz9RdW5rPENrTHpKQURgfEhx
LStTb1ZlbmNsfDJ4NW1wSEkoRSs1Sl95IXJ8ZFYrfGkhejBLJUYKekRuLWk5RW1gPnAqIWEqeFFj
cDl5ZWYzY09SQDFUPDI1UCp1SFpLMXlZPTdScVJgPGg1SHdKMT5gJWI7amQhQV5JCnpWNSN3R2Rs
Z0U7O0MlN3F3YG8oX29rczBWKE1LMTVpfHVAKkRrWEU9TkNJZ2JAdUh0O0trMHQ3N0xoenQtMFdL
LQp6Xj8jPSghX19UWWxDamMpenloJGotI0xhNEZ8eUI5dTdCYmZnXjlCNWg2PU1LPmRGJDVUdVZu
RHUqMnYyNnt7RnIKenNQc3tJZTYlZWJfIWppQUkhP1lyI20tUSQ1VmRiU2BKTm5PI2lZQj9iczgl
NyZZQTtAUDY1KExWayRDWSoqfH5jCnpsPXA1cWt5fXwmJjYqYnc1Nj1oUmIrVlFXSndSIWNQX3pg
VU1HNmE0a35mVmhSS1dieiVPfH4wIX1lRCFBSFVyYAp6JmE3bntuQkF6aW5pYT5Aeis0XjB8Qns+
WmhOK1VjT0lkej9NZFdVPSZUKncrMG5GTGkkQ2g1fW4+YGVEZj5sZlAKemltUjM5Y2ZtOV9QQWFY
bjkrUjBLJnRxIUZQZ1YqbEI0R1pITXN4K1VVLS0mPklfYDk7Xnd3IXk+aiZWVzg7I3V7CnpHWHN2
KzBTOHBeMmVXcEd3Wk5qMiFpdWpvNz5RcnhlcE5PTXhqbFZ5c3d+WXNaeX1fUV8zJmwqSF4mKE08
bXhEegp6aG0oYEReTlkhUzgxYWVEK3RiTip0NTA5NCN7ZzQzM3pYbDhZUmFyYWtoUGlOZG1zPWVG
dX1ueiV6cCtGS3Jwb1EKem1MPjQ0e01TJTYrfSsoSEF5JnU2aWg9bUd2TTlNbGxsVigrJmY3MX43
QnVVKkY7PkBFciY7SEJvUTk8PCFQYHhmCnprbFI5KmZla1IqPmJVMH0kezNmUHYxV0RLVSVwaW52
Z007MFJEWSFmektJeyEyRV9qWnFSLUJmK0RCd3FLP0JTYAp6Jkk7emxTJVJYNTE3MllPOVlVP1Ay
Tz1qdFB8ZkNVb2QjUk0yWShmXkMla3Rkdz4ofjdpUmFDZ3UpME1aRGcoRyoKelBBMyhhPSYqRihC
WHYzK0o+Rjt2QVBjXmV2cjIhQVI3Y0UjajdwSz47c01sfi1XaXJEbDJgdUNFYVhwI1dwJldQCno9
cEFpUG1MRE89NjNpNyg1QjgwV2p0bGNFTkkrKEZ6MjlIfkZCQSZ8NllWeUJqZWRaeExGZ1JLV356
WFEtJlJkMwp6bWZ5bENwcmtyOVBIaXFzZkUqcmlke3UpN1FoYiZmM1kydDFESjZWUmIrdD8rLXw5
U08+fHtkPGo0Y0xXUCZ8KCQKellePD9kamNmKWtqeVV8UG8xJWx8OCRncHp4UW1LZHs4S1M5Sn5l
RVolPCVZUHA2WmE0QShFKUtjUSQhOWE1NXpUCnokWXd2QTlFaCE0cWFfdz9RPkpGN3FIK0k9N3dG
dmZOVFQrLUtaQFYrSDljJlk3P20wdlVfY0x0Y1Z3QkducCFqMgp6NFl6RHs2NzlCNlokazlELVlV
QmQrQCZzS25sbHZEZlFVcl9XcShLLXt9I0I+eGZjcyRLSzFac3E0ZlU4Z1A2WGoKekRrYG5FUzwm
JmF0PH52OSRDcE0qOVUwK343UnR5WFJveDZ5e0RWKS1UY3Z5OzwmKSFfaTd6SHhkOTF5S0k1YnNR
Cnp5VkpSYTAoNXY4P0dQPUwtbWNNNU1lQWEhNHZDe0o5VWltUz1LWElTSlIrPnBNcFQ2RigtR0VK
VHhSP2lSQDNSJAp6dH1KRXdvWFhkblVyVH1YVEtveExtMXRmZmlgP008SCUxTUN2RW1fclMrPTBt
bV93ZH57eThYZndlP2l4VzIjNG0Kel9KbC17JE5jeU5zbVRsTHtwN1JYYiM9dkJvYDNNb25WJDc4
VyVNMUJMaHswKzJ1K15saGkqISFldjFqV3k+fn1zCnoxR19yaUN2STZZQHVsazRFYU14RSE3aEZM
WkFabm8zNDMoLVdKTX4xcEYoc18pTEx0QG4/QzEjKGBSdk41NUM+bwp6TWdMTHBJfHM8bVJOcito
eWNEdjJmJmpmZVpgcnwpVEJQJkxkO0lDXi1IMm17P0koRWlgUERgNj12THFHV3kobTEKeldLMnFD
en5iPkZFY0JNIT8qOWo9NlhuVU4yXjlDQEkmLVNDVUMxT2k+PWx4M3kqQG10ZT9yO25kWnx9VUIw
QT00CnpRUUpVKzZPUz1FJFE2Xkh2QEAmNktGJmROWWdxcTFSMDV5blYlYXcrPVoxT057PDlhJTRT
Yn1id0NoclBlMkR2MAp6WlA4YmZTTjtEVzJ2KTg1T2xQYWE8SWFMSEFvKSU5eUFmSyM4IWJBb3Rv
eTleJSYodEA4YWhwUGstYitPKTA8NCQKemxRM2x2OGFUcks5TEx9OW9Cbj0tTzdGclQzLVdkK2A3
PldHaDhYdX5AKG8+aStKQVRCeDklNTBXSiVOP21QVmtwCnozZUM1aWNkNHNTSzJ1cEdmWmx9Uik/
ajRFXihEUkJZMTwqUlRBJDJ5Xyo4QXJDLTVCSnE0e1AlLUYwTkU+diV2Owp6NzFycj56cktoVW95
KmIjZH5IcHYoQmdpS0pTUkxoeFF2T0NlYHZ4Jih1cmsxYH0xNEJhQWIqMSNBSjE7LVJQO3wKem9S
dFo5QTVuMyNncndlUmt1SE5fQVlTKytNX0FBNkpuJWk3WDM1KTBKJWptWiVyQE5UIWFEe3pGLWxv
OFQwYnY2CnpQTH1Zc3R6Nyt0ZH5DSS1MaS1DcHlUJGxzMH5TJkw0a2NoME4jT1puRD1ARj5gUHhp
Q2tWSGsjI3ZuU1g+R0VLcwp6VSF8KGFlamkrYnVJa3A1d0xXP0tTK2c/V0d2K3NkYnRENkpXY0F0
Km5Ka0YpO0JoWEhAMWI5ciQ5M3xjPipeV1QKejYrX0N+U1YjQyptZX1+KSlCVm59MFY8JXxyNEZB
fG5WSHZ6WGttRlNgKUhJQkp4MExvdjJoIT51dXt1WCNkJipzCnpkRXhINXQ5JTJjRyQqYXUoNXop
aCFBSShvI2A/eGBtan11WjY5PVJUO0pKZHdLb3VHamM/TUNya35UeHJeY0Nyfgp6azAje0Fffi1v
elkkcyl6eCEtZDh4dihtZnFYa0JBO25jSnpzNGhrPnAqPiReKz90OUtPUlF+PHhiMWNkJkZMTmgK
el81MDE0UiRaakUycyRXNXZ6O2wrbmZNWklNTkNBRURAWSpYQCNVMER3YmwwX1FfXjlGck9hQDxs
a2QhMUpraSNkCnpJUC1KP15iSilsKUxzV1BQSDtrTkcpSWd2YmlBSkQ+MTcpJSh3bzBLM14zTUBX
VjlqT3ElZF8zeDRtQiU4LTFPcQp6K3lCRj5UcVVrVWwpPHVmU0pZbDliISZeZXJxdUNfcGQ5PFN6
WjZLKkIkejRNVXd7I2hMMCR7KChZS3A4ZFpOKjIKekJqantDKjtAbWE0M3x5a3hnTUxMJW5ZfXtw
R0JSZCpwVWNIeWlvOUN1NHFySkl1MVk4RGQwayZGVyZqd29aZyZGCnpDTD9uZSMyVzw+VC0kP31Y
SUZuPGQoazVgP0JaeFc4Zlc4KCt2UHNkbjJ9RFJpZj90PFN3LWd4VXgxb3J7NjsqdAp6P2BHYHc4
UWMwQ0ZWZVhXdUtuRlJJYWNARnlxbCtFMlUjcm05Tk4qfHtYfEN9NjNBMG9RM34xTi1ySENtUURh
Um8KemdVZz8hZ2gjWEpEMVdzNUNLQlV0QXw1Ym5DUHlRP1JSYXZwenYlcTUzYndVXkNVUkIxWnVF
blUme1EqPEsmX3g+CnpBSXhwbVl9O2Ujbjc1Y2JCLXlQOyZpKHdlJiRrPVN5Vz9BNyMqNG5abzto
P2o/Wk5abzNsOERpaz5PSF42PFFxNAp6SSVMQEtIc3A/Jk1CRGxnLShMVThLYmA/fS1oJjtqRTN+
YW0yNGxhUXdDQSFHeGErQjgqZmIhYFNAOTFgQGNrYmoKemxMVT0pMjJTWjx1YStEUHMkTEdWNHJg
M1BWTmQjO2otaUxrQDB4ZyFEdy1QJVVvfVNYUGk8Xzt3PCpJTVZzKFJICno5dGs7ITxRSj9LYFlI
X1pDalY0U0l4M2I4SC0+QWNUO29TMV41WV4jcmp+NzRgMlBiS0RAVH1ORlM/fCp5UlY4NQp6UzRy
VXltTEl8USh7LWk2K3NTQ1I/Xlp0TkIjQ1VMTztiNSE+VT8kSlVMVDg3SDd7N01OckJ3amppTSlm
Q21MfUcKej5pYXFPUnUhSjZPWkp4PXZIdTJfPDs1bTAtdjN1dmBFUXV7QTZXVHNuRTV9JCVZVlZu
RnAoWlk4RkpGIU94QmlhCnpIcih2b2cjRilGcj9fdFBHP1FEVXJ0YzhmbyFSSSo/IVQ2P2hqSzln
eCt0O35nVFpAd2JHKk93ZWUtVWw8WWJfZwp6THB0fDRLWGBxakFlYSZAWHBoTGVBZzF9K0sjNjZ4
VEp7dGQxP2wxVzJ+b3JQNGE3OzNYZG5JMTxAfFFMPG0jOz0KekklQ0d1NlhXfVF7Km5YTFg1UXhG
d01UaXNTK3BAPUBTNHVgdyFjO1hBP2Zgazt4VyVXZiFkKmglU3JTMExuRD09CnpZektPUl5+IUFo
YWg9eTJTaz56algxP0ozSSMlaHBtWUtxNmM2SWRqdjtDV3FaMEVqeT5iYE8yKkFqNlo0Kn0tNQp6
UUxxckpuaEN2Q1c1MDMyTkpXcEskbnk+PG4jKGtMPjckM3I/RSVQeSlxS09QQj1FUT0yNShGOFh6
SiNrQX00Q3oKeiFIVUw+cEBxYGhgYGJgdHkjRjJ0PlBLazVvUWpJcyR0QUJLJkFPYlJWflo5ITRC
bk9WRXtyN0l5LXAlQCl2RDB4Cno1SmF3YHJnRlFeZGhTS3YybWNvbWR5YXhUWmtFOGdtJjd5bSoq
WGFOYTljQ3pYTnotUDw+anx4dzkqOCRrVHdWMgp6Kz5qb3t3PU9qRHViZSY/TTwxSVRjfDlTJGly
YXJ0YnRERDhsUFN2Sjx2SG4ySkhENV9MTUUhd1ZLelRPRTkhLTEKel9nTVV9ZjUwZX00Yz56UV91
RjU0MWp1MzNeXjkwYD9ULX1vbVliTmdvfXtIOSYrSCFCc2F1ODcoI0RZUWhXJH5QCnpZVjZOWChN
KjEtcEs3eDUzTzcpPCszWSN1aCgmJio5UUFJeVE3PXNLelMzPlFiIUE/IUhRdDFrdWFQM2BYdk45
bwp6SHFMK0lfMCpZI1hBZiNUcypVP1QrI0AlS2w7Snt4I2hCJGFXTHZsQDJLJnhGNiQje0oob0F9
PTVVfG5hdE85I3sKeiFEPlRVVnFwZklGQ2Rnfl5vQn5idjR9KTRLZDVCM1g4ZiNvNnI+MmlnZSFB
dXp7SUokKF5KWnxKeDwzcj12UUQ4Cnp0WmBxSy1TOFh6OF5IR3ROfnVAQyNWNCVXdn5MXzNGYzNN
emx2Ky0/dV9tcGItb1VmOHlOMmViZDhlPTFNdDtAVwp6cGYjcjxtWUNXfmV7V3IxOXVwJn5VVm1q
VShAfWMqWnMkRU01YHJ+SFRZJihxO2ZhZmt3OGB+PlRWNVV2Ril1ZEMKemdLT3hhRDBEP2ZGZ3Z0
Z0otbGdkJitPNyR4R0JpJkNpen1RRDk5TiU3Oy05bShvWGloKkFyWnFaWU1eeWNSNXx4CnokMGAw
OCFzZkBlRVB2fWdxRyN1THdrfT5uM3wtYiFsSkc5T1lqYS1wSCRyaUZoWnAmZyQpKndCJTNGQVhu
XmJWTgp6ZUdZZTtWUjkrWHtVYT5uR3RiTntQKU83I0J+a0U4d25SUWl2bjxSc0g3TXdvc0MtJD9J
LVNsNjVOQVF8UEBidiYKelc1ZXJhTUZSfFVfLXh0PkIpcjRxeVgjMGMrMiZ+TXMxYDhQaWAwYWAh
YHJ2cEB0dVRZR29XTyN0JDRDbyVxVm4zCnp2Y1dNZGtfVDx9OH5FMUhnb2JyVFhVUk13Z2NHWnVQ
ZDh0K3RhTWg2MkE3RCh3SllqY2xocTktVDFrans9bX5zdwp6OVdiTXVySShFK0BZSDI7Nzd4IVAh
cUtaUnZFSiZ9T2xHRjhoLTV7Qzs3PWh7bXwzNHZGWUYrOSo/PlIrQCVYU0cKelo0b0l4QWpfPWBH
IWIlNGVRJGl4TWVFRjdua3dkPzVGVldKazI+YWJWeG5adWdGPmltJXQ8ajB1YmZzSEoxcDAyCno7
RTY0fFhMJDEmdTI5MHMqNUJuZTg9UWx0JVdJXjZ5KldFYXt8Tm1ieElJcXpOSVNSVmVyWjI1Vjgt
TmF6U202aQp6OVhVNXY8aW1MY0ted3h3Z1Q2dmo7U1BONGwxc0o9QT80RilBNjIrKkB7NjZgbGlP
NERSWVVBUEE3Jip0TEZ6WXQKemglcmxCe0tLTXRmWGJ1VWFXTF57IShMczEtfWlwUSZ2PE1ITSlk
Wn0hcmlhUWFNd1IqQGFSQUA9UHFWeWlaWlBfCnpHdG5jI15VLURvTUdYZnQwSTRXOHVjSCUzZiRX
Nk5kP2Y1cmRmeXV9ZGxhP21AbyRwaG8yPG5SdVBWPEkzdEMqWAp6c2t9PjY7KlQ1a2hfRT59X0E/
Skg4e3kxUG56OWg8WD42YncqPkdlKWBlLS1FTUIpSGhAc3A0PEd7KXM4MWpLPUUKelVHaWkxTTlp
UFdsQiYhUnFhKGhBNkNTTnBYPmluUnElKnE7UVJzbHYrJTxjYyRMa2x5aW15b2xMNSkkU24jK2g4
CnooJD5vSHpvfmtDd2NjbUVEOX1RKUkkdzk1P0ExO3VZSlVJdVVeJik1cXxJNGpKKyFFfmI5cTht
c3JYNlZMIyU7Mwp6T0JwUk4qJn5EZWRiUmBXWE8pLTM9MmBxSjhsUUFmT3AwcTFENSpodl91KjZy
TyMkQz8+LS1nTTkqb1h+S3hEPVUKel80e21AJGUhNUo9bUEzIVdpK1BjJGtNU3V3SSsoNDYlXk5J
PjYhVWsqPERATlZ5JVlmK3ZWMXs2dk0mMEBxc2J4Cno1ZTdXK0M1SikoaTQjN1g3USZCTldiYysy
JW9sMWEhZHR5UTVnVlBwJj9SN2VkJHwybUs1MG81Mkp5P2Bhbk1eRQp6bUVqMipZUnd4dnU1MjUo
O2dIUks8SWlNTk5TRSk8VyYpbjhQKnhHVEpwUHRUX2ctYntia1ZnYTBeNXloWi1+bmkKemdLYy0h
Y1ZZYGwhQUpgUSE+NUxDbnopRXtzSEJjPitIQ3ItTTk1QzxVbWtUQDlXR3xwNjd0ZUlJKCsjR2k8
ZlhuCnppdzF3R2dJZUZTZyszSjdMZ0RNSXM3RHVvKyVFKXR5SmxyRV8kO3tYJmlGZCh0YnB8YihD
akR1d3BUUk12REQ0awp6I2pnfkhTP3xLWlk1cFVWVypnb2V7dW5gQTxGd3d1PSpEPyttOXxoZj9u
VVhec25fbGxHdHU8clhVc1dUO1cyJTcKek1NUEkmKjhXQC1IRzxGTlkwOTdlRnUpYygyQnIxa29V
aTZDaTdFcXU9SSFgS21rJU1VZ15zdnNid3R+Z1VibisoCnpIKEc+ZUEqWCp7OG8lWFBxY3ZBSCYq
VkpLYjQ7Vm5CN2d9OXh8JVk0MSghV3ZKaVFUeEU2M1MzOyokTGw4bTFDcwp6P3p6fnp3YnQwbkI2
KzRecUl7bCYrTylKbypEcHA4ajF4UEZQazVOUldmKCsoRXR8Kz40eGpyVzF1MXczI0A1YTYKellU
NF5lNjtvXiN5WTM9ZSQpSkIjK3FuIzxFYWtFUj0qUWtWPD99TkpAXl9kdGFFOVRWa1hfbDtVeThR
IWwke2JqCnpDKG0+aiFlKl5qc0xxY050Kyo8bV5aUllTVyl5THkldSUhK21paHxpbHM4a04wWmBp
NHYmcVF0PkZ2UnEwUktxSgp6NiUkZTZBTWA9ckVVJiZKPUhHZXMjTlRQWFlLUXdoQTdVc3gkbVRN
ZS1GRSY9VnlxX0lNWktgdl5pNShAMGZ+Y3QKekg/UUE0Snc1PE5FMn0ofjFBZ1hSSXpFfCtiVEtp
dzZ7Y19RYFhEYFJmYm8zRV5MMXR9dns0SGo0STZjSm0lLWF2CnpQOVJwLWp8dUFMYjFBVjFgJV45
bXA+ODV7d31Qfj9CbUB2Mm9VQCpCYy1yKClNY14tfiFJS1Ahd1lOR1N5NGpCVgp6cHZ+UiQ0c0Vo
b3VsN2otP3pfe3whPFl9YEx6YTE2KVNeKE9DaksrVUA3WVF1TW8tRXI4ZC02ektJZTtmKz19VHoK
ejtRTUhDbWVrPihgR3R5SGk5OEBERHJZXkNVa05waUtHSiNpb0lRMHxFMTlUYmJNdzRJMWdnYG5o
bkpYKW0mTTIqCnpCQXpYbWt+M25XbzJvanRGWiRtKnMrQDNUSF5MNGZ1ZkJGSW4jU3Nfd1I5LSsl
Iz0mJjY2dz8pcjZBMCkrfWdaVQp6SzFVaENjU2ZSIVNMdjs8O2NLXkVnJEE1O3k3WGBRNnFIek8z
MCUzUDR2VzV5cFk8YDZhVyNQMDdWPlpOT3c0aUYKenQqTklyMDZqQm9fSjtiSSgkVCVySkFzMmlv
YmlOX0ZHdyZaWFI0VEM9VTZxcVZOUWlFYj4/SnglPWB0Tl56QilaCnpnYDYwcSZlRHc+JGRvYWR2
NVk8LVBUUVYhYGtraSRxbjMrfEo1ZTViQTVYXkJubD1uUHphWU9OSU4lUmFhRDdeeQp6PGA3Qytm
dntIN3lHZGxVeWR1JSRISmQ4PWc2aTFLYWAmUUtQXjBWMXl0M3hgTXFZYkIocEZ9NWxERm0yQUJk
VFoKeiMlfjh5OTh8ekhvaFYqJC1OTm4/MD96V35kRFd5aUBfQSUoP1Y8SzBBRj1uQUZTJHpCU3U5
ZFBVV19uVTVtMlF6Cno8VGYqaDdgT1okUGBsMSo7QCRhT3sxVzQ5XiNvMik/TnxGSmEwKDxAKFJi
MnY8TE85M0h0VHdMI3s+fFk/WGRtJgp6eF44NExIVlE5YW0kOTRfOVkyQ30+cX4hci09Uz9DQ283
R1o8QT15IWJZYDM2WWZ+aTg+MC1hVjF7YTQhTDRCRl8KejtgOT5IPUNWan1kSFR2fkBDd1NFUzNO
YjNYck53MkQkYVpAI2dgdzJsQ0o7e2ctfWk/UlloeGEpKWgoZHpiT1EtCnp7KG47bClUMG9lLTV0
RilFPlYmaStEeiZ2RDsyOUZPdDt1ZnYrMSlEX2BGJF48JlRoeFByaVIzSldGTGRHVTVqRQp6R2M/
KXtZKSpebCVmUz0hIXs+TD4yQTdQTTdfTSQleTZOMDtANkRWcFBaZV8xIWc2LUZKOzJlVW89KFJX
VmVOIXMKejY+RUU/MStreUxzKCo7ODRpPDE5MnR6Rj5CNkpfZGxTeXZHaCohYTtYMVV4Mzx8fWlG
T2NAdVh7Y0BGMTYzUSUoCnpqbzxUcylHYnoke3wkfmxjXz9HUyUwQV9qNEtGTEBrZmRLYXl0ezV5
VWhabDtJUGZ0RzlFPmY4aE0/LXhVWiFJJQp6a0AzQDJ6Z0E2dHphRFlBSTNuTTFyKUpWWShkLUM7
elZla1lSamQ7VzRrVSNtNkM3PSRlOHx1ZlFeWmo4UElRJTkKekdvQX0yc3pucGxvQnd1dUNfRVJy
bkFtRXZNYVlvXlBjSD5vcWpPPX1BS3VURCVjJUlYLT9PSUFNLWRFQ0FBd2hTCnpQTSFgOCVRPHh5
bm9tZEFrV1VicURuUVRUZ1R0WnMkZlU4SkMkQz83S0RTODR3ZCFvaDN+YDhzTlU/eS0zYHVqVQp6
ZztYOXkyOHZpITM4Q003bjxfWHM+U3NjMj5oSC1wR15LKSFwJUd1NzZ6MzImJE42WSZKYCEhUj5a
OUVPaEBVOHoKenRzJGtfdXJzMmlaQEpKfEgoZW0jXldac0p6PHBsaipeNWYlZntKY1BmaFloQXZm
NHA0I1ZuP1AqTnFmWFo+e2hrCnpJTWdFUVohIWdiJjt6ZF9ITEpgOWhuNjBKMFlYZX0mcFkhK3tF
OGN1Sz8rYDVKZUQyaDRwVDM+OClTSWNYR2U3UAp6VnFuMjQhSSk1KjRpbGheRlNXZmo9SGxBN2dE
XjQ7bHEkODBeSEMrTkgwSVBnR2Qxe0FvSWMhK2l0UXVYelkkUVQKelZyPkNnOUl6Kms9TGx+NDxq
aDZPeGdmYSY8U3VBUzA4Qm1nem0wd3hoTGt7LWVPQkU1WUdRWSN1dGhIQ2RucExACnpZb2MtVV5N
WH1RM0tBZTxxUj81M2k9MVA9d0tuej44cWd8eEJ8QztkaGtvRjNaenxKQkB3dDFaPkd0V3lYRlZK
eQp6Smc7e0h2Y0Q7JTwxO3A9WTYxRUZgNCREPlhJKHkkZkQoPVdWYk5pSVJwSFc8bksoc3slX2N7
JDVJaFJzITxPZWIKenAtdnE7S15HY0w+NkFyRztLISN1K0t4PFplNCslRU9OcmhWRWc+bXd6e299
TmRvM25HQHZOWUQrZyo/JTd4X28pCnplcHxLRU57SC1GTXlzKH5YSW5rYWM3aUZrJW4qIS07SFoy
JDc0JGA+TUloVV9UemZGOStMX2h+QW0kPHdsZWYpTgp6MG5jZEpgUEd6WWo3LX19Yz1xTiN2VVlJ
OGdNdlRxYyl3REZDaSYlMUZfenkkQ31lKHUoM0h3bkI/PXB6bz8oVUoKem1vVEltI1EyUWRAP18/
ZXVOMUcxIXRoMyFlfHM0P1pkc3VWJVUpTCV4a2N9Vng4PTsxdyVSQCQ+Qy0zTDVOYyFJCnpoe0ZY
fGokK3MhVElBeVVGPmw+b3BiU3xIR0VDUT00UFY3eDA+bUMyTVAqVlBFMjc2P3V0MTx2UFM4e31v
a3lnRAp6M0ZQUEJLR0JqPTdafHAteCo9P010UDZ6flI8OTVJelJEdSV7fkRqKVVYKEkhWE8lUUB2
djVqNyRDKiN0VWNhN0EKekdfRiNkayZDMUw3YEgqQFpDaD1oa0ZEVH55ZUVHM2tMZEUlTmdneG42
WjVrOSloZzhPd1p9UWpHNVFCZ2AyZlRpCnohe1VCckNhQE5QaDJDUFZjeSRvZnFjRHtrY01HMWN2
cyVtK15TTTBNUUtReUglMUo2ej8oI0xMZmFaXilzb2pgTQp6UjFUb0pDQmQ+NStsbWt0KmYhdU87
OWF6SVh0ZU9ESlk+UU0qK3goOSk3VGojeXRNWF58MHZXZ2FueFpPZ01ub1YKekpiRkJicTFsVnI+
ekFrTm8wNmMrMXA2X29sfjBBMDN3fkMlaFpTPSR4fVNpb1VuZyQ7PmJ9Rz95d35BMD48VTM4CnpZ
KDhDU14zbDZoY0Q0KzxwPVN8SmhlRF56ZUFtc19oXjJwTj1+THlYOVhOfGdWfjFjbnNBYip8WXBK
V2w8RmR1Mgp6aXMkc3E1UiRuRDBsP3BWWVp3JE5WJj9pUFh5YDJhK1lzMEojJGB2OGApNlAjO0B9
REl1YjxMdyZQPX1AN0RVVEwKeihJcD9oYDZ8bi17TSluanlTRjh6SCMzUSVMWGBta3Fua3xZX3sj
MmA/ZlJmS2Q8Unp3Z21fenZ7b0hMKUZBO1dDCnpFX1VSRkMoPXUySntodCZTSXc9Ril2RGA9cVZi
PlpgQXckVEd5YVU9czwrWTJOSkJiK19ATzV7P0k7PUZweE8tXwp6R2FWPmdTKnRvU1JTYmgoSX4w
bHtOZ3drTFA+bVpkWmp2djFZYm18fE15ZD1jdD4zfj83JDRmPWFERVNTaExLMigKem50PVg4emlf
eGp1ZkMrb3s5ekc0Z0lEeX1WLVpgSjNTOXh2Sk0+ITY1Z0BuUlBgbTRUIW0kQTBhejF0JENwdCFY
Cno1blN4WDNWKEVheiUqVU81UGs1KXZ3MkhLMVE9e3locVlacnVJeUhoS0Q1KTFNRygyTEdFV3Ri
WnBue2s5NjMtXgp6RlNubHNNQnhKfHM8T1BKOT9xdil7cy0kISktPDBpbmhTT2c1aS1CR2ghYGox
UyhmZUhmRiVsUitFOU1YQldGSGUKenNOYERRc2RgPDY4TiZObUJkZn4wV31tRFotc2Z0M1JOfD48
QHBoZ342bikyKSEpJGtiKCZvWGk7eSZsPFZ1fF9GCnpgKWFjY25lO2tRKEk7fn4rano8SzB6bk1T
cnMleXFZYDU7SjwjUnxwMExfP2w5IyVKOD1XczBTNn1LJEQ4MyhfQgp6cFBtaHNnQ3V8SmMmZXlq
ZXQtRX1yXkVNO1BSSEBrZFp5dVpDM3IzWEB8UnZ4UUgyQ3BOMSN7dGEzJkhvRz9EPDMKelpqeUBl
YFV5aUBRaTFicF40RlBaaTIyejY1YTclUGh4NTE1VFZ0bHkockdybF85RjBhcT9Tb0FvdXoqJERQ
SnJNCnpHMlUpX2hEa2BlRUlnWWAhbS12T0xOKyYwUnNBdEdiSC1lZ2d1PWczKGMkVCRKPUF6ZFhy
aWhBVF9OIW96bH5TYQp6dnRxdlRme3puMmZuVjVwVEx3Q2o4JUpKJkQqTG8zVFYkMX1GUH08XiN6
KX0+UWwqPUp8QSFGfDAqdjZXa1hFRjkKeiRCQUctQ0tKaFhmYUsrOEIzaGpQdTBMX3NQIWRQPTJU
PWxyaE9WQTY0Vj5CTnBHNypQKFJ7KUNhQGd8ZVBiO1ZyCnptUCNXcnNpalhMdzNaJkFqISpSbCE0
YmQ4M1RLdzRHQ0h5Z1YpMUxaTyRHUEk0bz8zfmt7SzF0LUtIN3tBOWAxfAp6R1RFbTk+U34kZysy
UyNmKn5PUER0ZT8/PmNWZEE0YXhWXiUhUzM5dE8kNkZiPiFBdlk7Ykpjd24lSDtKRVlwcWMKekwj
dXs+cDg0M210c3lMPmc2PiNZSlNCd1I7ISstMCElRSR5dVQrfmdHbkMoNE45JUIrcl4yK2dXO0ht
bTFDdS1gCnpKcHt8aXhvZGZOOzk0PE80V1hqWjVHRG9xRFc+Zn5ZdDdlcjJDSkg4X1lZeXs2TmNy
Vkp2O0UpMmpxR3E2Q24qYQp6PEllVjAlTk5ZPiZGQ3VJaCM+a0d0M2JgbCY2P31WRyptRWYzRlhu
dGhNPGUrYUpzUlRLcTRvSXF5eiNaPkMkQ0wKekxSWHM3OGt7NCpQYmt8KEFCTChxZEBASSZEQlc/
MGZEVWkmaC01WmJ6bWJqeHRBWD4tRW0lKSRGUmdueERHUy1TCno5THU/RE9pMUU5N3JMZFphPjFH
S2ZCMyRlOHFVSlo8cEVoUWV3QGE9YjMrVV5EMVZpSU5JMmU5WUpAd1VCJmhRaAp6aXJYNSFgTV9m
VTh5XnR+VkNMSTtObUt6Wik8PUlqMT4qQ2tzTn5jNyN6RjlGI1olXy1RJXo1P3hJanxgaWJJZX4K
entaUGxQak5eNDlKUyQ+TW9tTnJwJThjNDQzOW9BdW00cH5HYjQ5emRTVkIpO0podHFBN3ctIXpz
KjVvJWBGYE1qCno7NV5EeUE8ZkI9WEZIeitXNE08MG5MJCU8UFNXNH5tYVAyKjA1biE5Ujl1aSFX
eXc0YkE7bWRzMk5fZkA7Y0FEUAp6QEhtVSV7UE40IztYQHtFSlIlMlNtRklNb3p4Xk9DI21JcVNs
Z3xWSFdnRkx5NWg2PjR6T1pwS2dmMkdPQSkxYVEKejZHb1lNTm13TW1IRzEybCskUXRwdEZ1akYy
N09gTD5MPmdqWld7ezhldkNLaTExR09vKiE0ZTFCKENYYGlmaTlaCnpaOW5NOzB6WXZjOEhHLUJF
MF9oT3NKNGV7LXlXSlZMKExidzQrPisoUDE5dz5FPD0wTW1OTT4zKCZWWUU+KGhncwp6cnJ5SSoh
fDU+Zj9HPzV+ZXhWdjA3WV8tUUx4PWIje15gUjlKLS1yPV5+RTNodCtfUVJKe0N1I2sjIVI3PDdA
VEwKemk9aT5kWFlEWTZOUjJRWUJTaHMlUHZsam1fbnFkelZNYGlEY3o+KHJXcTJJbiFgYUd5N0dq
PGNVbG5FN0A4VSl5CnoqI0VvcWhtQjlRQVpCOW4lbEVIekxSd1pPZDgxJTByS1N3YE1+cFhqdUI5
WX1MYEY4QTw8ej4mJiVyZUMtZFdfRAp6T2dvfE8lckF3UWUyc0lqdGFYJnBnT219NTdYaEB9SjA+
VGM3dGlWRmpseWp3VXNldXhMWihPYVpxQUR0ZUk9SHoKenhlflJYQGItJXpzNi1+JEcpcEFWVntP
KSYrU08tfnI4T3Z8OCozR096YUVwbmtVSzVCT3B8cCRaMUhrZCRMRU5RCnpKZXJeOUp3UDFqWWol
aTFCT2lmJkZacT5HNHZrOTdOWUNSbWN7Sjg3aU9qOC1XT2lGNHBHMTZqblVfY09xQSRnTAp6RUhs
X0MyRVRieGBqYExSJm5obEtxN15eaCRBQHwyeyFkJl9JMVd+QXolKSVGZWsoem82cnxwTTZLPT1w
OVcrNkoKeigmPWkkYlB7WSZMWjVHYWc9WWojS0FPdmNrQ1Q/a2YlK1pwVSRrMEV0JS0jMCo3ST1P
UT42eilxQ01KNlphcG0lCnpvUyZ1SCpfYGpuXzFXV2NsQ29hT0YjIUFAPmBeQEBKWUQjTTw3cW58
UUQ9cVMzYV55ZW4jcyZBc0htd0pXampZUQp6X3c3OHpqPTFuejdneHJFY0NxUkFiVVpaay1UIy1I
TGBjcHl2SzVqJj01VHNGeXtiMXIpcTNhSTxnPlE1OTdNMD8KeilQVnhiK3dhIT1oX2h9Nnt0SUsq
ejQ5LXtqKjQlanFFQkE2eVB9K3tpfCg9YVBKfnlEUV5sSTZ5KSVuek5xd09GCnohRXNqaEVyMCZC
cXdeYXJIZlp6XzQtcDJpd3xSYH1TQkcwKU8ySSpAblF0O29OXmVIPFJRKXFDR2g/UW9KM2xLcQp6
Rk9XQXlmVE9mREpSdHY7emMjSzQwSmBnXmRjRnBKZnhua2tieVE+RE1xYEh7c18qSGVrY3djeG4z
SyE/T1NCLTAKeiMtayg5bmcwez03Yl49Qj8pOz5XaF4ybXNNQk1KRGgkfi01NjIoRiZwd2NxPCo3
dUhTQX09MzhSakB3QDMtY1l8CnpnZ0Uqbyh0Xyo2UCk7MXZtZT1tN3xNLUp5RXd5bT9Fc1hVP1d4
NE41b0ZzbksycypxTE1KSmh0YWNQZEY9fVRnfAp6eWs2KFdreiRpTDsyM2YzVkhKQTk3ZzBCNDdw
OUZeXmA8V2ppI35NUkdUQEFzaEwmeE9MV3ZjKXJpIyRSZ0hDVVEKektqdzslSVBDMDIrRU9KXjI5
SzlENlZGOythdiZjXjR6OWhQI3dfSSYhUmIpLUVJQF56S1p3JjJ1aitTS2xqflIjCno/d14zaFBV
V01xSTJGMis3O25BQlVDVkt1cUhxWlFHS3NjVmEyQnZibFl2aTs3QmpsV3FodHlxRDU4akEqLUAj
Kgp6SGVJeCg8dn5sYTdLPUV6Uy07YEQ9TXA/cVBgRTFGSiZael9JK1YrcTFtaVFDRkdFOE5DI0BS
bDhoMUBJOXBYZF4KeldYMTIrdD90aDE1NHh8RlRSRyg/YSZ5dX5UcnhCIz9DeiF+QUVvai1DKVRJ
KERDSCp2PTByY19ndGp5PilpSlVpCnoqd3JlJTI2anFkUDZ0WXwjWmFFYmZFMnJQeHtxPFlGX2ty
WiZBbzE5THZsciRLVVQkWWZZbnBUNkZFQlZBJlZFUwp6LSRaaVlzRkp1dCFhKEBpJmoqMjVfMXJU
P3d+Q2JucTFDdTI9Q2hRIWc3dlJjX2xGck1rKW8kVFAoTjBXeT1ZdEQKem5CYiZkQmVeaXNpMEVS
SUZpSTdhPl9mTEBKWiQpZFNCQUpHI3ZsNkxFT1I3dSpLVHBMck1hSEViQUxeM05+PSNqCnorJnI7
eHpzfm9edWtGWmZiJHQoN3d2dzR0RVVEXjJ1NXEpZXV3R1dmU2QkcSpqRmZBK0Q8JG4jNlpPIXI5
KkhwRgp6dXQ9KnRRbCZSaihsWHgtSllJOFB0ZkhnMVVDTWViQT1JMzZIOU4xenNwdFopKSY4Jnc+
O0c+dWtsLX0kQU45eVYKelg8WEhCTFRVX1hnQE9uSnk5RngoIWFDbUZ0P2pGeVZ3dFlCYWxeRiZ3
MnA+KEo3aTB2R2V0PVUjQEI8Ym9wdmppCnpaN3NuM090MG5YNVJyI0V0NjI7cXhRJE1hZWBgPzgw
NExkeXpyLWtpTmtJTjx7b2gwPjdkUktid2woakZVQjVXdApSZ1NWc3hCdCZGfEQrVHJae307THdM
YHdodwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2ltZy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9pbWcvdzNjLWltcG9y
dC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZDNjY2VhMDZjZjM3NTMyMmY2YzgxNmUwNzhlYWYzMjk4NjhiZGJi
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9pbWcvdzNjLWltcG9ydC5s
b2cKQEAgLTAsMCArMSwyNSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9u
ZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ltZy9jcmFt
ZXIyLnBuZworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9pbWcvZnJlaWJ1cmcyLmpwZworL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9pbWcvZ2F5bm9yMy5wbmcKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vaW1nL2tlbGVz
aGV2LnBuZworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9pbWcvcHVsbHJlcXVlc3QucG5nCisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2ltZy9weWxpYi5wbmcKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vaW1nL3B5dGVz
dDEucG5nCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ltZy9weXRlc3QxZmF2aS5pY28KKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vaW1nL3RoZXVuaS5wbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9pbmRleC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vaW5kZXgucnN0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2
YzU5ZjA4ZDM0OWNjYmUyZjU0ZGNmYjgwYTMzNDg1Y2Y2YzU1M2MKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vaW5kZXgucnN0CkBAIC0wLDAgKzEsOTAgQEAKKzpvcnBoYW46
CisKKy4uIF9mZWF0dXJlczoKKworcHl0ZXN0OiBoZWxwcyB5b3Ugd3JpdGUgYmV0dGVyIHByb2dy
YW1zCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworCitUaGUgYGBw
eXRlc3RgYCBmcmFtZXdvcmsgbWFrZXMgaXQgZWFzeSB0byB3cml0ZSBzbWFsbCB0ZXN0cywgeWV0
CitzY2FsZXMgdG8gc3VwcG9ydCBjb21wbGV4IGZ1bmN0aW9uYWwgdGVzdGluZyBmb3IgYXBwbGlj
YXRpb25zIGFuZCBsaWJyYXJpZXMuCisKK0FuIGV4YW1wbGUgb2YgYSBzaW1wbGUgdGVzdDoKKwor
Li4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgIyBjb250ZW50IG9mIHRlc3Rfc2FtcGxlLnB5
CisgICAgZGVmIGluYyh4KToKKyAgICAgICAgcmV0dXJuIHggKyAxCisKKyAgICBkZWYgdGVzdF9h
bnN3ZXIoKToKKyAgICAgICAgYXNzZXJ0IGluYygzKSA9PSA1CisKKworVG8gZXhlY3V0ZSBpdDo6
CisKKyAgICAkIHB5dGVzdAorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0ZXN0IHNl
c3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBwbGF0Zm9ybSBs
aW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdneS0wLngu
eQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgY29sbGVjdGVk
IDEgaXRlbQorICAgIAorICAgIHRlc3Rfc2FtcGxlLnB5IEYgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQorICAgIAorICAgID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KKyAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fIHRlc3RfYW5z
d2VyIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgICAgCisgICAgICAgIGRlZiB0
ZXN0X2Fuc3dlcigpOgorICAgID4gICAgICAgYXNzZXJ0IGluYygzKSA9PSA1CisgICAgRSAgICAg
ICBhc3NlcnQgNCA9PSA1CisgICAgRSAgICAgICAgKyAgd2hlcmUgNCA9IGluYygzKQorICAgIAor
ICAgIHRlc3Rfc2FtcGxlLnB5OjU6IEFzc2VydGlvbkVycm9yCisgICAgPT09PT09PT09PT09PT09
PT09PT09PT09PSAxIGZhaWxlZCBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09PT09
PT09PQorCitEdWUgdG8gYGBweXRlc3RgYCdzIGRldGFpbGVkIGFzc2VydGlvbiBpbnRyb3NwZWN0
aW9uLCBvbmx5IHBsYWluIGBgYXNzZXJ0YGAgc3RhdGVtZW50cyBhcmUgdXNlZC4KK1NlZSA6cmVm
OmBHZXR0aW5nIFN0YXJ0ZWQgPGdldHN0YXJ0ZWQ+YCBmb3IgbW9yZSBleGFtcGxlcy4KKworCitG
ZWF0dXJlcworLS0tLS0tLS0KKworLSBEZXRhaWxlZCBpbmZvIG9uIGZhaWxpbmcgOnJlZjpgYXNz
ZXJ0IHN0YXRlbWVudHMgPGFzc2VydD5gIChubyBuZWVkIHRvIHJlbWVtYmVyIGBgc2VsZi5hc3Nl
cnQqYGAgbmFtZXMpOworCistIDpyZWY6YEF1dG8tZGlzY292ZXJ5IDx0ZXN0IGRpc2NvdmVyeT5g
IG9mIHRlc3QgbW9kdWxlcyBhbmQgZnVuY3Rpb25zOworCistIDpyZWY6YE1vZHVsYXIgZml4dHVy
ZXMgPGZpeHR1cmU+YCBmb3IgbWFuYWdpbmcgc21hbGwgb3IgcGFyYW1ldHJpemVkIGxvbmctbGl2
ZWQgdGVzdCByZXNvdXJjZXM7CisKKy0gQ2FuIHJ1biA6cmVmOmB1bml0dGVzdCA8dW5pdHRlc3Q+
YCAoaW5jbHVkaW5nIHRyaWFsKSBhbmQgOnJlZjpgbm9zZSA8bm9zZWludGVncmF0aW9uPmAgdGVz
dCBzdWl0ZXMgb3V0IG9mIHRoZSBib3g7CisKKy0gUHl0aG9uIDIuNywgUHl0aG9uIDMuNCssIFB5
UHkgMi4zLCBKeXRob24gMi41ICh1bnRlc3RlZCk7CisKKy0gUmljaCBwbHVnaW4gYXJjaGl0ZWN0
dXJlLCB3aXRoIG92ZXIgMzE1KyBgZXh0ZXJuYWwgcGx1Z2lucyA8aHR0cDovL3BsdWdpbmNvbXBh
dC5oZXJva3VhcHAuY29tPmBfIGFuZCB0aHJpdmluZyBjb21tdW5pdHk7CisKKworRG9jdW1lbnRh
dGlvbgorLS0tLS0tLS0tLS0tLQorCitQbGVhc2Ugc2VlIDpyZWY6YENvbnRlbnRzIDx0b2M+YCBm
b3IgZnVsbCBkb2N1bWVudGF0aW9uLCBpbmNsdWRpbmcgaW5zdGFsbGF0aW9uLCB0dXRvcmlhbHMg
YW5kIFBERiBkb2N1bWVudHMuCisKKworQnVncy9SZXF1ZXN0cworLS0tLS0tLS0tLS0tLQorCitQ
bGVhc2UgdXNlIHRoZSBgR2l0SHViIGlzc3VlIHRyYWNrZXIgPGh0dHBzOi8vZ2l0aHViLmNvbS9w
eXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXM+YF8gdG8gc3VibWl0IGJ1Z3Mgb3IgcmVxdWVzdCBmZWF0
dXJlcy4KKworCitDaGFuZ2Vsb2cKKy0tLS0tLS0tLQorCitDb25zdWx0IHRoZSA6cmVmOmBDaGFu
Z2Vsb2cgPGNoYW5nZWxvZz5gIHBhZ2UgZm9yIGZpeGVzIGFuZCBlbmhhbmNlbWVudHMgb2YgZWFj
aCB2ZXJzaW9uLgorCisKK0xpY2Vuc2UKKy0tLS0tLS0KKworQ29weXJpZ2h0IEhvbGdlciBLcmVr
ZWwgYW5kIG90aGVycywgMjAwNC0yMDE3LgorCitEaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIGBNSVRgXyBsaWNlbnNlLCBweXRlc3QgaXMgZnJlZSBhbmQgb3BlbiBzb3VyY2Ugc29m
dHdhcmUuCisKKy4uIF9gTUlUYDogaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0
L2Jsb2IvbWFzdGVyL0xJQ0VOU0UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9saWNl
bnNlLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9saWNlbnNlLnJzdApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOGMw
ZGNlMWJlYThlMTcwNTc1MDNjYmEyMDQxOTk5MDViOTQ5MWYxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2xpY2Vuc2UucnN0CkBAIC0wLDAgKzEsMzIgQEAKKy4uIF9saWNl
bnNlOgorCitMaWNlbnNlCistLS0tLS0tCisKK0Rpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgYE1JVGBfIGxpY2Vuc2UsIHB5dGVzdCBpcyBmcmVlIGFuZCBvcGVuIHNvdXJjZSBzb2Z0
d2FyZS4KKworOjoKKworICAgIFRoZSBNSVQgTGljZW5zZSAoTUlUKQorCisgICAgQ29weXJpZ2h0
IChjKSAyMDA0LTIwMTcgSG9sZ2VyIEtyZWtlbCBhbmQgb3RoZXJzCisKKyAgICBQZXJtaXNzaW9u
IGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5p
bmcgYSBjb3B5IG9mCisgICAgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0
aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4KKyAgICB0aGUgU29mdHdhcmUg
d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmln
aHRzIHRvCisgICAgdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRl
LCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMKKyAgICBvZiB0aGUgU29mdHdhcmUsIGFu
ZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8g
ZG8KKyAgICBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisKKyAgICBU
aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFs
bCBiZSBpbmNsdWRlZCBpbiBhbGwKKyAgICBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMg
b2YgdGhlIFNvZnR3YXJlLgorCisgICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIs
IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAgICBJTVBMSUVELCBJ
TkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSwKKyAgICBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO
R0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKKyAgICBBVVRIT1JTIE9SIENPUFlSSUdIVCBI
T0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgICAgTElB
QklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJ
U0UsIEFSSVNJTkcgRlJPTSwKKyAgICBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBT
T0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRQorICAgIFNPRlRXQVJF
LgorCisuLiBfYE1JVGA6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9ibG9i
L21hc3Rlci9MSUNFTlNFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vbGlua3MuaW5j
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2xpbmtzLmluYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNjkzOTBiYWE4NGJk
YmM0MWY2YjliNzlhYjY5MmM3ZDI5ZmRmMzczCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2xpbmtzLmluYwpAQCAtMCwwICsxLDIxIEBACisKKy4uIF9gc2tpcHBpbmcgcGx1
Z2luYDogcGx1Z2luL3NraXBwaW5nLmh0bWwKKy4uIF9gZnVuY2FyZ3MgbWVjaGFuaXNtYDogZnVu
Y2FyZ3MuaHRtbAorLi4gX2Bkb2N0ZXN0LnB5YDogaHR0cDovL2RvY3MucHl0aG9uLm9yZy9saWJy
YXJ5L2RvY3Rlc3QuaHRtbAorLi4gX2B4VW5pdCBzdHlsZSBzZXR1cGA6IHh1bml0X3NldHVwLmh0
bWwKKy4uIF9gcHl0ZXN0X25vc2VgOiBwbHVnaW4vbm9zZS5odG1sCisuLiBfYHJlU3RydWN0dXJl
ZCBUZXh0YDogaHR0cDovL2RvY3V0aWxzLnNvdXJjZWZvcmdlLm5ldAorLi4gX2BQeXRob24gZGVi
dWdnZXJgOiBodHRwOi8vZG9jcy5weXRob24ub3JnL2xpYi9tb2R1bGUtcGRiLmh0bWwKKy4uIF9u
b3NlOiBodHRwczovL25vc2UucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0LworLi4gX3B5dGVzdDog
aHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3B5dGVzdAorLi4gX21lcmN1cmlhbDogaHR0cDov
L21lcmN1cmlhbC5zZWxlbmljLmNvbS93aWtpLworLi4gX2BzZXR1cHRvb2xzYDogaHR0cDovL3B5
cGkucHl0aG9uLm9yZy9weXBpL3NldHVwdG9vbHMKKy4uIF9gZWFzeV9pbnN0YWxsYDoKKy4uIF9g
ZGlzdHJpYnV0ZSBkb2NzYDoKKy4uIF9gZGlzdHJpYnV0ZWA6IGh0dHA6Ly9weXBpLnB5dGhvbi5v
cmcvcHlwaS9kaXN0cmlidXRlCisuLiBfYHBpcGA6IGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlw
aS9waXAKKy4uIF9gdmlydHVhbGVudmA6IGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS92aXJ0
dWFsZW52CisuLiBfaHVkc29uOiBodHRwOi8vaHVkc29uLWNpLm9yZy8KKy4uIF9qZW5raW5zOiBo
dHRwOi8vamVua2lucy1jaS5vcmcvCisuLiBfdG94OiBodHRwOi8vdGVzdHJ1bi5vcmcvdG94Cisu
LiBfcHlsaWI6IGh0dHBzOi8vcHkucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0LwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2xvZ2dpbmcucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2xv
Z2dpbmcucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzYmY1NjAzODg3MmMyZTE0OTc0ZGRiNDMxZTUzMjZlMGNl
OWE4YjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vbG9nZ2luZy5yc3QK
QEAgLTAsMCArMSwxOTIgQEAKKy4uIF9sb2dnaW5nOgorCitMb2dnaW5nCistLS0tLS0tCisKKy4u
IHZlcnNpb25hZGRlZCAzLjMuMAorCisuLiBub3RlOjoKKworICAgVGhpcyBmZWF0dXJlIGlzIGEg
ZHJvcC1pbiByZXBsYWNlbWVudCBmb3IgdGhlIGBweXRlc3QtY2F0Y2hsb2cKKyAgIDxodHRwczov
L3B5cGkub3JnL3Byb2plY3QvcHl0ZXN0LWNhdGNobG9nLz5gXyBwbHVnaW4gYW5kIHRoZXkgd2ls
bCBjb25mbGljdAorICAgd2l0aCBlYWNoIG90aGVyLiBUaGUgYmFja3dhcmQgY29tcGF0aWJpbGl0
eSBBUEkgd2l0aCBgYHB5dGVzdC1jYXB0dXJlbG9nYGAKKyAgIGhhcyBiZWVuIGRyb3BwZWQgd2hl
biB0aGlzIGZlYXR1cmUgd2FzIGludHJvZHVjZWQsIHNvIGlmIGZvciB0aGF0IHJlYXNvbiB5b3UK
KyAgIHN0aWxsIG5lZWQgYGBweXRlc3QtY2F0Y2hsb2dgYCB5b3UgY2FuIGRpc2FibGUgdGhlIGlu
dGVybmFsIGZlYXR1cmUgYnkKKyAgIGFkZGluZyB0byB5b3VyIGBgcHl0ZXN0LmluaWBgOgorCisg
ICAuLiBjb2RlLWJsb2NrOjogaW5pCisKKyAgICAgICBbcHl0ZXN0XQorICAgICAgICAgICBhZGRv
cHRzPS1wIG5vOmxvZ2dpbmcKKworTG9nIG1lc3NhZ2VzIGFyZSBjYXB0dXJlZCBieSBkZWZhdWx0
IGFuZCBmb3IgZWFjaCBmYWlsZWQgdGVzdCB3aWxsIGJlIHNob3duIGluCit0aGUgc2FtZSBtYW5u
ZXIgYXMgY2FwdHVyZWQgc3Rkb3V0IGFuZCBzdGRlcnIuCisKK1J1bm5pbmcgd2l0aG91dCBvcHRp
b25zOjoKKworICAgIHB5dGVzdAorCitTaG93cyBmYWlsZWQgdGVzdHMgbGlrZSBzbzo6CisKKyAg
ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDYXB0dXJlZCBzdGRsb2cgY2FsbCAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisgICAgdGVzdF9yZXBvcnRpbmcucHkgICAgMjYgSU5GTyAgICAgdGV4dCBn
b2luZyB0byBsb2dnZXIKKyAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDYXB0dXJlZCBzdGRv
dXQgY2FsbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgdGV4dCBnb2luZyB0byBzdGRvdXQK
KyAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBDYXB0dXJlZCBzdGRlcnIgY2FsbCAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCisgICAgdGV4dCBnb2luZyB0byBzdGRlcnIKKyAgICA9PT09PT09PT09
PT09PT09PT09PSAyIGZhaWxlZCBpbiAwLjAyIHNlY29uZHMgPT09PT09PT09PT09PT09PT09PT09
CisKK0J5IGRlZmF1bHQgZWFjaCBjYXB0dXJlZCBsb2cgbWVzc2FnZSBzaG93cyB0aGUgbW9kdWxl
LCBsaW5lIG51bWJlciwgbG9nIGxldmVsCithbmQgbWVzc2FnZS4gIFNob3dpbmcgdGhlIGV4YWN0
IG1vZHVsZSBhbmQgbGluZSBudW1iZXIgaXMgdXNlZnVsIGZvciB0ZXN0aW5nIGFuZAorZGVidWdn
aW5nLiAgSWYgZGVzaXJlZCB0aGUgbG9nIGZvcm1hdCBhbmQgZGF0ZSBmb3JtYXQgY2FuIGJlIHNw
ZWNpZmllZCB0bworYW55dGhpbmcgdGhhdCB0aGUgbG9nZ2luZyBtb2R1bGUgc3VwcG9ydHMuCisK
K1J1bm5pbmcgcHl0ZXN0IHNwZWNpZnlpbmcgZm9ybWF0dGluZyBvcHRpb25zOjoKKworICAgIHB5
dGVzdCAtLWxvZy1mb3JtYXQ9IiUoYXNjdGltZSlzICUobGV2ZWxuYW1lKXMgJShtZXNzYWdlKXMi
IFwKKyAgICAgICAgICAgIC0tbG9nLWRhdGUtZm9ybWF0PSIlWS0lbS0lZCAlSDolTTolUyIKKwor
U2hvd3MgZmFpbGVkIHRlc3RzIGxpa2Ugc286OgorCisgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gQ2FwdHVyZWQgc3RkbG9nIGNhbGwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIDIwMTAt
MDQtMTAgMTQ6NDg6NDQgSU5GTyB0ZXh0IGdvaW5nIHRvIGxvZ2dlcgorICAgIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tIENhcHR1cmVkIHN0ZG91dCBjYWxsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KyAgICB0ZXh0IGdvaW5nIHRvIHN0ZG91dAorICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIENh
cHR1cmVkIHN0ZGVyciBjYWxsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICB0ZXh0IGdvaW5n
IHRvIHN0ZGVycgorICAgID09PT09PT09PT09PT09PT09PT09IDIgZmFpbGVkIGluIDAuMDIgc2Vj
b25kcyA9PT09PT09PT09PT09PT09PT09PT0KKworVGhlc2Ugb3B0aW9ucyBjYW4gYWxzbyBiZSBj
dXN0b21pemVkIHRocm91Z2ggYSBjb25maWd1cmF0aW9uIGZpbGU6CisKKy4uIGNvZGUtYmxvY2s6
OiBpbmkKKworICAgIFtweXRlc3RdCisgICAgbG9nX2Zvcm1hdCA9ICUoYXNjdGltZSlzICUobGV2
ZWxuYW1lKXMgJShtZXNzYWdlKXMKKyAgICBsb2dfZGF0ZV9mb3JtYXQgPSAlWS0lbS0lZCAlSDol
TTolUworCitGdXJ0aGVyIGl0IGlzIHBvc3NpYmxlIHRvIGRpc2FibGUgcmVwb3J0aW5nIGxvZ3Mg
b24gZmFpbGVkIHRlc3RzIGNvbXBsZXRlbHkKK3dpdGg6OgorCisgICAgcHl0ZXN0IC0tbm8tcHJp
bnQtbG9ncworCitPciBpbiB5b3UgYGBweXRlc3QuaW5pYGA6CisKKy4uIGNvZGUtYmxvY2s6OiBp
bmkKKworICBbcHl0ZXN0XQorICBsb2dfcHJpbnQgPSBGYWxzZQorCisKK1Nob3dzIGZhaWxlZCB0
ZXN0cyBpbiB0aGUgbm9ybWFsIG1hbm5lciBhcyBubyBsb2dzIHdlcmUgY2FwdHVyZWQ6OgorCisg
ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gQ2FwdHVyZWQgc3Rkb3V0IGNhbGwgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorICAgIHRleHQgZ29pbmcgdG8gc3Rkb3V0CisgICAgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0gQ2FwdHVyZWQgc3RkZXJyIGNhbGwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
ICAgIHRleHQgZ29pbmcgdG8gc3RkZXJyCisgICAgPT09PT09PT09PT09PT09PT09PT0gMiBmYWls
ZWQgaW4gMC4wMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09PQorCitJbnNpZGUgdGVzdHMg
aXQgaXMgcG9zc2libGUgdG8gY2hhbmdlIHRoZSBsb2cgbGV2ZWwgZm9yIHRoZSBjYXB0dXJlZCBs
b2cKK21lc3NhZ2VzLiAgVGhpcyBpcyBzdXBwb3J0ZWQgYnkgdGhlIGBgY2FwbG9nYGAgZml4dHVy
ZTo6CisKKyAgICBkZWYgdGVzdF9mb28oY2FwbG9nKToKKyAgICAgICAgY2FwbG9nLnNldF9sZXZl
bChsb2dnaW5nLklORk8pCisgICAgICAgIHBhc3MKKworQnkgZGVmYXVsdCB0aGUgbGV2ZWwgaXMg
c2V0IG9uIHRoZSBoYW5kbGVyIHVzZWQgdG8gY2F0Y2ggdGhlIGxvZyBtZXNzYWdlcywKK2hvd2V2
ZXIgYXMgYSBjb252ZW5pZW5jZSBpdCBpcyBhbHNvIHBvc3NpYmxlIHRvIHNldCB0aGUgbG9nIGxl
dmVsIG9mIGFueQorbG9nZ2VyOjoKKworICAgIGRlZiB0ZXN0X2ZvbyhjYXBsb2cpOgorICAgICAg
ICBjYXBsb2cuc2V0X2xldmVsKGxvZ2dpbmcuQ1JJVElDQUwsIGxvZ2dlcj0ncm9vdC5iYXonKQor
ICAgICAgICBwYXNzCisKK0l0IGlzIGFsc28gcG9zc2libGUgdG8gdXNlIGEgY29udGV4dCBtYW5h
Z2VyIHRvIHRlbXBvcmFyaWx5IGNoYW5nZSB0aGUgbG9nCitsZXZlbDo6CisKKyAgICBkZWYgdGVz
dF9iYXIoY2FwbG9nKToKKyAgICAgICAgd2l0aCBjYXBsb2cuYXRfbGV2ZWwobG9nZ2luZy5JTkZP
KToKKyAgICAgICAgICAgIHBhc3MKKworQWdhaW4sIGJ5IGRlZmF1bHQgdGhlIGxldmVsIG9mIHRo
ZSBoYW5kbGVyIGlzIGFmZmVjdGVkIGJ1dCB0aGUgbGV2ZWwgb2YgYW55Citsb2dnZXIgY2FuIGJl
IGNoYW5nZWQgaW5zdGVhZCB3aXRoOjoKKworICAgIGRlZiB0ZXN0X2JhcihjYXBsb2cpOgorICAg
ICAgICB3aXRoIGNhcGxvZy5hdF9sZXZlbChsb2dnaW5nLkNSSVRJQ0FMLCBsb2dnZXI9J3Jvb3Qu
YmF6Jyk6CisgICAgICAgICAgICBwYXNzCisKK0xhc3RseSBhbGwgdGhlIGxvZ3Mgc2VudCB0byB0
aGUgbG9nZ2VyIGR1cmluZyB0aGUgdGVzdCBydW4gYXJlIG1hZGUgYXZhaWxhYmxlIG9uCit0aGUg
Zml4dHVyZSBpbiB0aGUgZm9ybSBvZiBib3RoIHRoZSBMb2dSZWNvcmQgaW5zdGFuY2VzIGFuZCB0
aGUgZmluYWwgbG9nIHRleHQuCitUaGlzIGlzIHVzZWZ1bCBmb3Igd2hlbiB5b3Ugd2FudCB0byBh
c3NlcnQgb24gdGhlIGNvbnRlbnRzIG9mIGEgbWVzc2FnZTo6CisKKyAgICBkZWYgdGVzdF9iYXoo
Y2FwbG9nKToKKyAgICAgICAgZnVuY191bmRlcl90ZXN0KCkKKyAgICAgICAgZm9yIHJlY29yZCBp
biBjYXBsb2cucmVjb3JkczoKKyAgICAgICAgICAgIGFzc2VydCByZWNvcmQubGV2ZWxuYW1lICE9
ICdDUklUSUNBTCcKKyAgICAgICAgYXNzZXJ0ICd3YWxseScgbm90IGluIGNhcGxvZy50ZXh0CisK
K0ZvciBhbGwgdGhlIGF2YWlsYWJsZSBhdHRyaWJ1dGVzIG9mIHRoZSBsb2cgcmVjb3JkcyBzZWUg
dGhlCitgYGxvZ2dpbmcuTG9nUmVjb3JkYGAgY2xhc3MuCisKK1lvdSBjYW4gYWxzbyByZXNvcnQg
dG8gYGByZWNvcmRfdHVwbGVzYGAgaWYgYWxsIHlvdSB3YW50IHRvIGRvIGlzIHRvIGVuc3VyZSwK
K3RoYXQgY2VydGFpbiBtZXNzYWdlcyBoYXZlIGJlZW4gbG9nZ2VkIHVuZGVyIGEgZ2l2ZW4gbG9n
Z2VyIG5hbWUgd2l0aCBhIGdpdmVuCitzZXZlcml0eSBhbmQgbWVzc2FnZTo6CisKKyAgICBkZWYg
dGVzdF9mb28oY2FwbG9nKToKKyAgICAgICAgbG9nZ2luZy5nZXRMb2dnZXIoKS5pbmZvKCdib28g
JXMnLCAnYXJnJykKKworICAgICAgICBhc3NlcnQgY2FwbG9nLnJlY29yZF90dXBsZXMgPT0gWwor
ICAgICAgICAgICAgKCdyb290JywgbG9nZ2luZy5JTkZPLCAnYm9vIGFyZycpLAorICAgICAgICBd
CisKK1lvdSBjYW4gY2FsbCBgYGNhcGxvZy5jbGVhcigpYGAgdG8gcmVzZXQgdGhlIGNhcHR1cmVk
IGxvZyByZWNvcmRzIGluIGEgdGVzdDo6CisKKyAgICBkZWYgdGVzdF9zb21ldGhpbmdfd2l0aF9j
bGVhcmluZ19yZWNvcmRzKGNhcGxvZyk6CisgICAgICAgIHNvbWVfbWV0aG9kX3RoYXRfY3JlYXRl
c19sb2dfcmVjb3JkcygpCisgICAgICAgIGNhcGxvZy5jbGVhcigpCisgICAgICAgIHlvdXJfdGVz
dF9tZXRob2QoKQorICAgICAgICBhc3NlcnQgWydGb28nXSA9PSBbcmVjLm1lc3NhZ2UgZm9yIHJl
YyBpbiBjYXBsb2cucmVjb3Jkc10KKworTGl2ZSBMb2dzCiteXl5eXl5eXl4KKworQnkgZGVmYXVs
dCwgcHl0ZXN0IHdpbGwgb3V0cHV0IGFueSBsb2dnaW5nIHJlY29yZHMgd2l0aCBhIGxldmVsIGhp
Z2hlciBvcgorZXF1YWwgdG8gV0FSTklORy4gSW4gb3JkZXIgdG8gYWN0dWFsbHkgc2VlIHRoZXNl
IGxvZ3MgaW4gdGhlIGNvbnNvbGUgeW91IGhhdmUgdG8KK2Rpc2FibGUgcHl0ZXN0IG91dHB1dCBj
YXB0dXJlIGJ5IHBhc3NpbmcgYGAtc2BgLgorCitZb3UgY2FuIHNwZWNpZnkgdGhlIGxvZ2dpbmcg
bGV2ZWwgZm9yIHdoaWNoIGxvZyByZWNvcmRzIHdpdGggZXF1YWwgb3IgaGlnaGVyCitsZXZlbCBh
cmUgcHJpbnRlZCB0byB0aGUgY29uc29sZSBieSBwYXNzaW5nIGBgLS1sb2ctY2xpLWxldmVsYGAu
IFRoaXMgc2V0dGluZworYWNjZXB0cyB0aGUgbG9nZ2luZyBsZXZlbCBuYW1lcyBhcyBzZWVuIGlu
IHB5dGhvbidzIGRvY3VtZW50YXRpb24gb3IgYW4gaW50ZWdlcgorYXMgdGhlIGxvZ2dpbmcgbGV2
ZWwgbnVtLgorCitBZGRpdGlvbmFsbHksIHlvdSBjYW4gYWxzbyBzcGVjaWZ5IGBgLS1sb2ctY2xp
LWZvcm1hdGBgIGFuZAorYGAtLWxvZy1jbGktZGF0ZS1mb3JtYXRgYCB3aGljaCBtaXJyb3IgYW5k
IGRlZmF1bHQgdG8gYGAtLWxvZy1mb3JtYXRgYCBhbmQKK2BgLS1sb2ctZGF0ZS1mb3JtYXRgYCBp
ZiBub3QgcHJvdmlkZWQsIGJ1dCBhcmUgYXBwbGllZCBvbmx5IHRvIHRoZSBjb25zb2xlCitsb2dn
aW5nIGhhbmRsZXIuCisKK0FsbCBvZiB0aGUgQ0xJIGxvZyBvcHRpb25zIGNhbiBhbHNvIGJlIHNl
dCBpbiB0aGUgY29uZmlndXJhdGlvbiBJTkkgZmlsZS4gVGhlCitvcHRpb24gbmFtZXMgYXJlOgor
CisqIGBgbG9nX2NsaV9sZXZlbGBgCisqIGBgbG9nX2NsaV9mb3JtYXRgYAorKiBgYGxvZ19jbGlf
ZGF0ZV9mb3JtYXRgYAorCitJZiB5b3UgbmVlZCB0byByZWNvcmQgdGhlIHdob2xlIHRlc3Qgc3Vp
dGUgbG9nZ2luZyBjYWxscyB0byBhIGZpbGUsIHlvdSBjYW4gcGFzcworYGAtLWxvZy1maWxlPS9w
YXRoL3RvL2xvZy9maWxlYGAuIFRoaXMgbG9nIGZpbGUgaXMgb3BlbmVkIGluIHdyaXRlIG1vZGUg
d2hpY2gKK21lYW5zIHRoYXQgaXQgd2lsbCBiZSBvdmVyd3JpdHRlbiBhdCBlYWNoIHJ1biB0ZXN0
cyBzZXNzaW9uLgorCitZb3UgY2FuIGFsc28gc3BlY2lmeSB0aGUgbG9nZ2luZyBsZXZlbCBmb3Ig
dGhlIGxvZyBmaWxlIGJ5IHBhc3NpbmcKK2BgLS1sb2ctZmlsZS1sZXZlbGBgLiBUaGlzIHNldHRp
bmcgYWNjZXB0cyB0aGUgbG9nZ2luZyBsZXZlbCBuYW1lcyBhcyBzZWVuIGluCitweXRob24ncyBk
b2N1bWVudGF0aW9uKGllLCB1cHBlcmNhc2VkIGxldmVsIG5hbWVzKSBvciBhbiBpbnRlZ2VyIGFz
IHRoZSBsb2dnaW5nCitsZXZlbCBudW0uCisKK0FkZGl0aW9uYWxseSwgeW91IGNhbiBhbHNvIHNw
ZWNpZnkgYGAtLWxvZy1maWxlLWZvcm1hdGBgIGFuZAorYGAtLWxvZy1maWxlLWRhdGUtZm9ybWF0
YGAgd2hpY2ggYXJlIGVxdWFsIHRvIGBgLS1sb2ctZm9ybWF0YGAgYW5kCitgYC0tbG9nLWRhdGUt
Zm9ybWF0YGAgYnV0IGFyZSBhcHBsaWVkIHRvIHRoZSBsb2cgZmlsZSBsb2dnaW5nIGhhbmRsZXIu
CisKK0FsbCBvZiB0aGUgbG9nIGZpbGUgb3B0aW9ucyBjYW4gYWxzbyBiZSBzZXQgaW4gdGhlIGNv
bmZpZ3VyYXRpb24gSU5JIGZpbGUuIFRoZQorb3B0aW9uIG5hbWVzIGFyZToKKworKiBgYGxvZ19m
aWxlYGAKKyogYGBsb2dfZmlsZV9sZXZlbGBgCisqIGBgbG9nX2ZpbGVfZm9ybWF0YGAKKyogYGBs
b2dfZmlsZV9kYXRlX2Zvcm1hdGBgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vbWFy
ay5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vbWFyay5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGIwZTA3MmEw
OWJhZTI5NzgyM2ExYjExODA2ODFiYWE5MzdiNDhlMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9tYXJrLnJzdApAQCAtMCwwICsxLDQxIEBACisKKy4uIF9tYXJrOgorCitN
YXJraW5nIHRlc3QgZnVuY3Rpb25zIHdpdGggYXR0cmlidXRlcworPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gY3Vy
cmVudG1vZHVsZTo6IF9weXRlc3QubWFyaworCitCeSB1c2luZyB0aGUgYGBweXRlc3QubWFya2Bg
IGhlbHBlciB5b3UgY2FuIGVhc2lseSBzZXQKK21ldGFkYXRhIG9uIHlvdXIgdGVzdCBmdW5jdGlv
bnMuIFRoZXJlIGFyZQorc29tZSBidWlsdGluIG1hcmtlcnMsIGZvciBleGFtcGxlOgorCisqIDpy
ZWY6YHNraXAgPHNraXA+YCAtIGFsd2F5cyBza2lwIGEgdGVzdCBmdW5jdGlvbgorKiA6cmVmOmBz
a2lwaWYgPHNraXBpZj5gIC0gc2tpcCBhIHRlc3QgZnVuY3Rpb24gaWYgYSBjZXJ0YWluIGNvbmRp
dGlvbiBpcyBtZXQKKyogOnJlZjpgeGZhaWwgPHhmYWlsPmAgLSBwcm9kdWNlIGFuICJleHBlY3Rl
ZCBmYWlsdXJlIiBvdXRjb21lIGlmIGEgY2VydGFpbgorICBjb25kaXRpb24gaXMgbWV0CisqIDpy
ZWY6YHBhcmFtZXRyaXplIDxwYXJhbWV0cml6ZW1hcms+YCB0byBwZXJmb3JtIG11bHRpcGxlIGNh
bGxzCisgIHRvIHRoZSBzYW1lIHRlc3QgZnVuY3Rpb24uCisKK0l0J3MgZWFzeSB0byBjcmVhdGUg
Y3VzdG9tIG1hcmtlcnMgb3IgdG8gYXBwbHkgbWFya2VycwordG8gd2hvbGUgdGVzdCBjbGFzc2Vz
IG9yIG1vZHVsZXMuIFNlZSA6cmVmOmBtYXJrIGV4YW1wbGVzYCBmb3IgZXhhbXBsZXMKK3doaWNo
IGFsc28gc2VydmUgYXMgZG9jdW1lbnRhdGlvbi4KKworLi4gbm90ZTo6CisKKyAgICBNYXJrcyBj
YW4gb25seSBiZSBhcHBsaWVkIHRvIHRlc3RzLCBoYXZpbmcgbm8gZWZmZWN0IG9uCisgICAgOnJl
ZjpgZml4dHVyZXMgPGZpeHR1cmVzPmAuCisKKworQVBJIHJlZmVyZW5jZSBmb3IgbWFyayByZWxh
dGVkIG9iamVjdHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCisuLiBhdXRvY2xhc3M6OiBNYXJrR2VuZXJhdG9yCisgICAgOm1lbWJlcnM6CisKKy4u
IGF1dG9jbGFzczo6IE1hcmtEZWNvcmF0b3IKKyAgICA6bWVtYmVyczoKKworLi4gYXV0b2NsYXNz
OjogTWFya0luZm8KKyAgICA6bWVtYmVyczoKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL21vbmtleXBhdGNoLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9tb25rZXlwYXRjaC5yc3QK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGMwN2IyZjQ0ZmNiYjI1ZmNkZTJhNjA2ZmEyMTVkYzAxMmQ4MjkxNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9tb25rZXlwYXRjaC5yc3QKQEAgLTAs
MCArMSw3NSBAQAorCitNb25rZXlwYXRjaGluZy9tb2NraW5nIG1vZHVsZXMgYW5kIGVudmlyb25t
ZW50cworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorCisuLiBjdXJyZW50bW9kdWxlOjogX3B5dGVzdC5tb25rZXlwYXRjaAor
CitTb21ldGltZXMgdGVzdHMgbmVlZCB0byBpbnZva2UgZnVuY3Rpb25hbGl0eSB3aGljaCBkZXBl
bmRzCitvbiBnbG9iYWwgc2V0dGluZ3Mgb3Igd2hpY2ggaW52b2tlcyBjb2RlIHdoaWNoIGNhbm5v
dCBiZSBlYXNpbHkKK3Rlc3RlZCBzdWNoIGFzIG5ldHdvcmsgYWNjZXNzLiAgVGhlIGBgbW9ua2V5
cGF0Y2hgYCBmaXh0dXJlCitoZWxwcyB5b3UgdG8gc2FmZWx5IHNldC9kZWxldGUgYW4gYXR0cmli
dXRlLCBkaWN0aW9uYXJ5IGl0ZW0gb3IKK2Vudmlyb25tZW50IHZhcmlhYmxlIG9yIHRvIG1vZGlm
eSBgYHN5cy5wYXRoYGAgZm9yIGltcG9ydGluZy4KK1NlZSB0aGUgYG1vbmtleXBhdGNoIGJsb2cg
cG9zdGBfIGZvciBzb21lIGludHJvZHVjdGlvbiBtYXRlcmlhbAorYW5kIGEgZGlzY3Vzc2lvbiBv
ZiBpdHMgbW90aXZhdGlvbi4KKworLi4gX2Btb25rZXlwYXRjaCBibG9nIHBvc3RgOiBodHRwOi8v
dGV0YW1hcC53b3JkcHJlc3MuY29tLzIwMDkvMDMvMDMvbW9ua2V5cGF0Y2hpbmctaW4tdW5pdC10
ZXN0cy1kb25lLXJpZ2h0LworCisKK1NpbXBsZSBleGFtcGxlOiBtb25rZXlwYXRjaGluZyBmdW5j
dGlvbnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCitJZiB5b3Ugd2FudCB0byBwcmV0ZW5kIHRoYXQgYGBvcy5leHBhbmR1c2VyYGAgcmV0dXJu
cyBhIGNlcnRhaW4KK2RpcmVjdG9yeSwgeW91IGNhbiB1c2UgdGhlIDpweTptZXRoOmBtb25rZXlw
YXRjaC5zZXRhdHRyYCBtZXRob2QgdG8KK3BhdGNoIHRoaXMgZnVuY3Rpb24gYmVmb3JlIGNhbGxp
bmcgaW50byBhIGZ1bmN0aW9uIHdoaWNoIHVzZXMgaXQ6OgorCisgICAgIyBjb250ZW50IG9mIHRl
c3RfbW9kdWxlLnB5CisgICAgaW1wb3J0IG9zLnBhdGgKKyAgICBkZWYgZ2V0c3NoKCk6ICMgcHNl
dWRvIGFwcGxpY2F0aW9uIGNvZGUKKyAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihvcy5wYXRo
LmV4cGFuZHVzZXIoIn5hZG1pbiIpLCAnLnNzaCcpCisKKyAgICBkZWYgdGVzdF9teXRlc3QobW9u
a2V5cGF0Y2gpOgorICAgICAgICBkZWYgbW9ja3JldHVybihwYXRoKToKKyAgICAgICAgICAgIHJl
dHVybiAnL2FiYycKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihvcy5wYXRoLCAnZXhwYW5k
dXNlcicsIG1vY2tyZXR1cm4pCisgICAgICAgIHggPSBnZXRzc2goKQorICAgICAgICBhc3NlcnQg
eCA9PSAnL2FiYy8uc3NoJworCitIZXJlIG91ciB0ZXN0IGZ1bmN0aW9uIG1vbmtleXBhdGNoZXMg
YGBvcy5wYXRoLmV4cGFuZHVzZXJgYCBhbmQKK3RoZW4gY2FsbHMgaW50byBhIGZ1bmN0aW9uIHRo
YXQgY2FsbHMgaXQuICBBZnRlciB0aGUgdGVzdCBmdW5jdGlvbiAKK2ZpbmlzaGVzIHRoZSBgYG9z
LnBhdGguZXhwYW5kdXNlcmBgIG1vZGlmaWNhdGlvbiB3aWxsIGJlIHVuZG9uZS4KKworZXhhbXBs
ZTogcHJldmVudGluZyAicmVxdWVzdHMiIGZyb20gcmVtb3RlIG9wZXJhdGlvbnMKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitJZiB5b3Ug
d2FudCB0byBwcmV2ZW50IHRoZSAicmVxdWVzdHMiIGxpYnJhcnkgZnJvbSBwZXJmb3JtaW5nIGh0
dHAKK3JlcXVlc3RzIGluIGFsbCB5b3VyIHRlc3RzLCB5b3UgY2FuIGRvOjoKKworICAgICMgY29u
dGVudCBvZiBjb25mdGVzdC5weQorICAgIGltcG9ydCBweXRlc3QKKyAgICBAcHl0ZXN0LmZpeHR1
cmUoYXV0b3VzZT1UcnVlKQorICAgIGRlZiBub19yZXF1ZXN0cyhtb25rZXlwYXRjaCk6CisgICAg
ICAgIG1vbmtleXBhdGNoLmRlbGF0dHIoInJlcXVlc3RzLnNlc3Npb25zLlNlc3Npb24ucmVxdWVz
dCIpCisKK1RoaXMgYXV0b3VzZSBmaXh0dXJlIHdpbGwgYmUgZXhlY3V0ZWQgZm9yIGVhY2ggdGVz
dCBmdW5jdGlvbiBhbmQgaXQKK3dpbGwgZGVsZXRlIHRoZSBtZXRob2QgYGByZXF1ZXN0LnNlc3Np
b24uU2Vzc2lvbi5yZXF1ZXN0YGAgCitzbyB0aGF0IGFueSBhdHRlbXB0cyB3aXRoaW4gdGVzdHMg
dG8gY3JlYXRlIGh0dHAgcmVxdWVzdHMgd2lsbCBmYWlsLgorCisKKy4uIG5vdGU6OgorICAgIAor
ICAgIEJlIGFkdmlzZWQgdGhhdCBpdCBpcyBub3QgcmVjb21tZW5kZWQgdG8gcGF0Y2ggYnVpbHRp
biBmdW5jdGlvbnMgc3VjaCBhcyBgYG9wZW5gYCwKKyAgICBgYGNvbXBpbGVgYCwgZXRjLiwgYmVj
YXVzZSBpdCBtaWdodCBicmVhayBweXRlc3QncyBpbnRlcm5hbHMuIElmIHRoYXQncworICAgIHVu
YXZvaWRhYmxlLCBwYXNzaW5nIGBgLS10Yj1uYXRpdmVgYCwgYGAtLWFzc2VydD1wbGFpbmBgIGFu
ZCBgYC0tY2FwdHVyZT1ub2BgIG1pZ2h0IAorICAgIGhlbHAgYWx0aG91Z2ggdGhlcmUncyBubyBn
dWFyYW50ZWUuCisgICAgCisKK01ldGhvZCByZWZlcmVuY2Ugb2YgdGhlIG1vbmtleXBhdGNoIGZp
eHR1cmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4g
YXV0b2NsYXNzOjogTW9ua2V5UGF0Y2gKKyAgICA6bWVtYmVyczoKKworYGBtb25rZXlwYXRjaC5z
ZXRhdHRyL2RlbGF0dHIvZGVsaXRlbS9kZWxlbnYoKWBgIGFsbAorYnkgZGVmYXVsdCByYWlzZSBh
biBFeGNlcHRpb24gaWYgdGhlIHRhcmdldCBkb2VzIG5vdCBleGlzdC4KK1Bhc3MgYGByYWlzaW5n
PUZhbHNlYGAgaWYgeW91IHdhbnQgdG8gc2tpcCB0aGlzIGNoZWNrLgorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vbmFtaW5nMjAucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL25hbWlu
ZzIwLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41YTgxZGYyNjk4ZDJiZDU5Mjc0YjM2MzU1MDk4YTY0ODY1ZTZi
M2VlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL25hbWluZzIwLnJzdApA
QCAtMCwwICsxLDIwIEBACisKKy4uIF9uYW1pbmcyMDoKKworTmV3IHB5dGVzdCBuYW1lcyBpbiAy
LjAgKGZsYXQgaXMgYmV0dGVyIHRoYW4gbmVzdGVkKQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitJZiB5b3UgdXNlZCBvbGRlciB2ZXJzaW9u
IG9mIHRoZSBgYHB5YGAgZGlzdHJpYnV0aW9uICh3aGljaAoraW5jbHVkZWQgdGhlIHB5LnRlc3Qg
Y29tbWFuZCBsaW5lIHRvb2wgYW5kIFB5dGhvbiBuYW1lIHNwYWNlKQoreW91IGFjY2Vzc2VkIGhl
bHBlcnMgYW5kIHBvc3NpYmx5IGNvbGxlY3Rpb24gY2xhc3NlcyB0aHJvdWdoCit0aGUgYGBweS50
ZXN0YGAgUHl0aG9uIG5hbWVzcGFjZXMuICBUaGUgbmV3IGBgcHl0ZXN0YGAKK1B5dGhvbiBtb2R1
bGUgZmxhdHkgcHJvdmlkZXMgdGhlIHNhbWUgb2JqZWN0cywgZm9sbG93aW5nCit0aGVzZSByZW5h
bWluZyBydWxlczo6CisKKyAgICBweS50ZXN0LlhZWiAgICAgICAgICAtPiBweXRlc3QuWFlaCisg
ICAgcHkudGVzdC5jb2xsZWN0LlhZWiAgLT4gcHl0ZXN0LlhZWgorICAgIHB5LnRlc3QuY21kbGlu
ZS5tYWluIC0+IHB5dGVzdC5tYWluCisKK1RoZSBvbGQgYGBweS50ZXN0LipgYCB3YXlzIHRvIGFj
Y2VzcyBmdW5jdGlvbmFsaXR5IHJlbWFpbgordmFsaWQgYnV0IHlvdSBhcmUgZW5jb3VyYWdlZCB0
byBkbyBnbG9iYWwgcmVuYW1pbmcgYWNjb3JkaW5nCit0byB0aGUgYWJvdmUgcnVsZXMgaW4geW91
ciB0ZXN0IGNvZGUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vbm9zZS5yc3QgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vbm9zZS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTBhMTA2MzNhYjA2ZTc0N2Fm
NzAyYjM3ZTQ4ZmQ2Y2ZmZjNmMWIxZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9ub3NlLnJzdApAQCAtMCwwICsxLDc1IEBACisuLiBfYG5vc2VpbnRlZ3JhdGlvbmA6CisK
K1J1bm5pbmcgdGVzdHMgd3JpdHRlbiBmb3Igbm9zZQorPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CisKKy4uIGluY2x1ZGU6OiBsaW5rcy5pbmMKKworYGBweXRlc3RgYCBo
YXMgYmFzaWMgc3VwcG9ydCBmb3IgcnVubmluZyB0ZXN0cyB3cml0dGVuIGZvciBub3NlXy4KKwor
Li4gX25vc2VzdHlsZToKKworVXNhZ2UKKy0tLS0tLS0tLS0tLS0KKworQWZ0ZXIgOnJlZjpgaW5z
dGFsbGF0aW9uYCB0eXBlOjoKKworICAgIHB5dGhvbiBzZXR1cC5weSBkZXZlbG9wICAjIG1ha2Ug
c3VyZSB0ZXN0cyBjYW4gaW1wb3J0IG91ciBwYWNrYWdlCisgICAgcHl0ZXN0ICAjIGluc3RlYWQg
b2YgJ25vc2V0ZXN0cycKKworYW5kIHlvdSBzaG91bGQgYmUgYWJsZSB0byBydW4geW91ciBub3Nl
IHN0eWxlIHRlc3RzIGFuZAorbWFrZSB1c2Ugb2YgcHl0ZXN0J3MgY2FwYWJpbGl0aWVzLgorCitT
dXBwb3J0ZWQgbm9zZSBJZGlvbXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworKiBzZXR1cCBh
bmQgdGVhcmRvd24gYXQgbW9kdWxlL2NsYXNzL21ldGhvZCBsZXZlbAorKiBTa2lwVGVzdCBleGNl
cHRpb25zIGFuZCBtYXJrZXJzCisqIHNldHVwL3RlYXJkb3duIGRlY29yYXRvcnMKKyogYGB5aWVs
ZGBgLWJhc2VkIHRlc3RzIGFuZCB0aGVpciBzZXR1cCAoY29uc2lkZXJlZCBkZXByZWNhdGVkIGFz
IG9mIHB5dGVzdCAzLjApCisqIGBgX190ZXN0X19gYCBhdHRyaWJ1dGUgb24gbW9kdWxlcy9jbGFz
c2VzL2Z1bmN0aW9ucworKiBnZW5lcmFsIHVzYWdlIG9mIG5vc2UgdXRpbGl0aWVzCisKK1Vuc3Vw
cG9ydGVkIGlkaW9tcyAvIGtub3duIGlzc3VlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCistIHVuaXR0ZXN0LXN0eWxlIGBgc2V0VXAsIHRlYXJEb3duLCBzZXRVcENsYXNz
LCB0ZWFyRG93bkNsYXNzYGAKKyAgYXJlIHJlY29nbml6ZWQgb25seSBvbiBgYHVuaXR0ZXN0LlRl
c3RDYXNlYGAgY2xhc3NlcyBidXQgbm90CisgIG9uIHBsYWluIGNsYXNzZXMuICBgYG5vc2VgYCBz
dXBwb3J0cyB0aGVzZSBtZXRob2RzIGFsc28gb24gcGxhaW4KKyAgY2xhc3NlcyBidXQgcHl0ZXN0
IGRlbGliZXJhdGVseSBkb2VzIG5vdC4gIEFzIG5vc2UgYW5kIHB5dGVzdCBhbHJlYWR5CisgIGJv
dGggc3VwcG9ydCBgYHNldHVwX2NsYXNzLCB0ZWFyZG93bl9jbGFzcywgc2V0dXBfbWV0aG9kLCB0
ZWFyZG93bl9tZXRob2RgYAorICBpdCBkb2Vzbid0IHNlZW0gdXNlZnVsIHRvIGR1cGxpY2F0ZSB0
aGUgdW5pdHRlc3QtQVBJIGxpa2Ugbm9zZSBkb2VzLgorICBJZiB5b3UgaG93ZXZlciByYXRoZXIg
dGhpbmsgcHl0ZXN0IHNob3VsZCBzdXBwb3J0IHRoZSB1bml0dGVzdC1zcGVsbGluZyBvbgorICBw
bGFpbiBjbGFzc2VzIHBsZWFzZSBwb3N0IGB0byB0aGlzIGlzc3VlCisgIDxodHRwczovL2dpdGh1
Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzM3Ny8+YF8uCisKKy0gbm9zZSBpbXBvcnRz
IHRlc3QgbW9kdWxlcyB3aXRoIHRoZSBzYW1lIGltcG9ydCBwYXRoIChlLmcuCisgIGBgdGVzdHMu
dGVzdF9tb2RgYCkgYnV0IGRpZmZlcmVudCBmaWxlIHN5c3RlbSBwYXRocworICAoZS5nLiBgYHRl
c3RzL3Rlc3RfbW9kZS5weWBgIGFuZCBgYG90aGVyL3Rlc3RzL3Rlc3RfbW9kZS5weWBgKQorICBi
eSBleHRlbmRpbmcgc3lzLnBhdGgvaW1wb3J0IHNlbWFudGljcy4gICBweXRlc3QgZG9lcyBub3Qg
ZG8gdGhhdAorICBidXQgdGhlcmUgaXMgZGlzY3Vzc2lvbiBpbiBgIzI2OCA8aHR0cHM6Ly9naXRo
dWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yNjg+YF8gZm9yIGFkZGluZyBzb21lIHN1
cHBvcnQuICBOb3RlIHRoYXQKKyAgYG5vc2UyIGNob29zZSB0byBhdm9pZCB0aGlzIHN5cy5wYXRo
L2ltcG9ydCBoYWNrZXJ5IDxodHRwczovL25vc2UyLnJlYWR0aGVkb2NzLmlvL2VuL2xhdGVzdC9k
aWZmZXJlbmNlcy5odG1sI3Rlc3QtZGlzY292ZXJ5LWFuZC1sb2FkaW5nPmBfLgorCisgIElmIHlv
dSBwbGFjZSBhIGNvbmZ0ZXN0LnB5IGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHlvdXIg
cHJvamVjdAorICAoYXMgZGV0ZXJtaW5lZCBieSBweXRlc3QpIHB5dGVzdCB3aWxsIHJ1biB0ZXN0
cyAibm9zZSBzdHlsZSIgYWdhaW5zdAorICB0aGUgY29kZSBiZWxvdyB0aGF0IGRpcmVjdG9yeSBi
eSBhZGRpbmcgaXQgdG8geW91ciBgYHN5cy5wYXRoYGAgaW5zdGVhZCBvZgorICBydW5uaW5nIGFn
YWluc3QgeW91ciBpbnN0YWxsZWQgY29kZS4KKworICBZb3UgbWF5IGZpbmQgeW91cnNlbGYgd2Fu
dGluZyB0byBkbyB0aGlzIGlmIHlvdSByYW4gYGBweXRob24gc2V0dXAucHkgaW5zdGFsbGBgCisg
IHRvIHNldCB1cCB5b3VyIHByb2plY3QsIGFzIG9wcG9zZWQgdG8gYGBweXRob24gc2V0dXAucHkg
ZGV2ZWxvcGBgIG9yIGFueSBvZgorICB0aGUgcGFja2FnZSBtYW5hZ2VyIGVxdWl2YWxlbnRzLiAg
SW5zdGFsbGluZyB3aXRoIGRldmVsb3AgaW4gYQorICB2aXJ0dWFsIGVudmlyb25tZW50IGxpa2Ug
VG94IGlzIHJlY29tbWVuZGVkIG92ZXIgdGhpcyBwYXR0ZXJuLgorCistIG5vc2Utc3R5bGUgZG9j
dGVzdHMgYXJlIG5vdCBjb2xsZWN0ZWQgYW5kIGV4ZWN1dGVkIGNvcnJlY3RseSwKKyAgYWxzbyBk
b2N0ZXN0IGZpeHR1cmVzIGRvbid0IHdvcmsuCisKKy0gbm8gbm9zZS1jb25maWd1cmF0aW9uIGlz
IHJlY29nbml6ZWQuCisKKy0gYGB5aWVsZGBgLWJhc2VkIG1ldGhvZHMgZG9uJ3Qgc3VwcG9ydCBg
YHNldHVwYGAgcHJvcGVybHkgYmVjYXVzZQorICB0aGUgYGBzZXR1cGBgIG1ldGhvZCBpcyBhbHdh
eXMgY2FsbGVkIGluIHRoZSBzYW1lIGNsYXNzIGluc3RhbmNlLgorICBUaGVyZSBhcmUgbm8gcGxh
bnMgdG8gZml4IHRoaXMgY3VycmVudGx5IGJlY2F1c2UgYGB5aWVsZGBgLXRlc3RzCisgIGFyZSBk
ZXByZWNhdGVkIGluIHB5dGVzdCAzLjAsIHdpdGggYGBweXRlc3QubWFyay5wYXJhbWV0cml6ZWBg
CisgIGJlaW5nIHRoZSByZWNvbW1lbmRlZCBhbHRlcm5hdGl2ZS4KKworCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9wYXJhbWV0cml6ZS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
cGFyYW1ldHJpemUucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhNGFjMmUxODc3ZTI1ZGE2NmVlMWI2NzFjMGIy
ZTAxOWNhNmIxODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcGFyYW1l
dHJpemUucnN0CkBAIC0wLDAgKzEsMjE3IEBACisKKy4uIF9gdGVzdCBnZW5lcmF0b3JzYDoKKy4u
IF9gcGFyYW1ldHJpemluZy10ZXN0c2A6CisuLiBfYHBhcmFtZXRyaXplZCB0ZXN0IGZ1bmN0aW9u
c2A6CisuLiBfYHBhcmFtZXRyaXplYDoKKworLi4gX2BwYXJhbWV0cml6ZS1iYXNpY3NgOgorCitQ
YXJhbWV0cml6aW5nIGZpeHR1cmVzIGFuZCB0ZXN0IGZ1bmN0aW9ucworPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKworcHl0ZXN0IGVuYWJsZXMgdGVzdCBwYXJhbWV0cml6YXRpb24gYXQgc2V2ZXJhbCBsZXZl
bHM6CisKKy0gOnB5OmZ1bmM6YHB5dGVzdC5maXh0dXJlYCBhbGxvd3Mgb25lIHRvIDpyZWY6YHBh
cmFtZXRyaXplIGZpeHR1cmUgCisgIGZ1bmN0aW9ucyA8Zml4dHVyZS1wYXJhbWV0cml6ZT5gLgor
CisqIGBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemVgXyBhbGxvd3Mgb25lIHRvIGRlZmluZSBtdWx0
aXBsZSBzZXRzIG9mIAorICBhcmd1bWVudHMgYW5kIGZpeHR1cmVzIGF0IHRoZSB0ZXN0IGZ1bmN0
aW9uIG9yIGNsYXNzLgorCisqIGBweXRlc3RfZ2VuZXJhdGVfdGVzdHNgXyBhbGxvd3Mgb25lIHRv
IGRlZmluZSBjdXN0b20gcGFyYW1ldHJpemF0aW9uIAorICBzY2hlbWVzIG9yIGV4dGVuc2lvbnMu
CisKKy4uIF9wYXJhbWV0cml6ZW1hcms6CisuLiBfYEBweXRlc3QubWFyay5wYXJhbWV0cml6ZWA6
CisKKworYGBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemVgYDogcGFyYW1ldHJpemluZyB0ZXN0IGZ1
bmN0aW9ucworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIHJlZ2VuZG9jOiB3aXBlCisKKy4uIHZlcnNpb25h
ZGRlZDo6IDIuMgorLi4gdmVyc2lvbmNoYW5nZWQ6OiAyLjQKKyAgICBTZXZlcmFsIGltcHJvdmVt
ZW50cy4KKworVGhlIGJ1aWx0aW4gYGBweXRlc3QubWFyay5wYXJhbWV0cml6ZWBgIGRlY29yYXRv
ciBlbmFibGVzCitwYXJhbWV0cml6YXRpb24gb2YgYXJndW1lbnRzIGZvciBhIHRlc3QgZnVuY3Rp
b24uICBIZXJlIGlzIGEgdHlwaWNhbCBleGFtcGxlCitvZiBhIHRlc3QgZnVuY3Rpb24gdGhhdCBp
bXBsZW1lbnRzIGNoZWNraW5nIHRoYXQgYSBjZXJ0YWluIGlucHV0IGxlYWRzCit0byBhbiBleHBl
Y3RlZCBvdXRwdXQ6OgorCisgICAgIyBjb250ZW50IG9mIHRlc3RfZXhwZWN0YXRpb24ucHkKKyAg
ICBpbXBvcnQgcHl0ZXN0CisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ0ZXN0X2lucHV0
LGV4cGVjdGVkIiwgWworICAgICAgICAoIjMrNSIsIDgpLAorICAgICAgICAoIjIrNCIsIDYpLAor
ICAgICAgICAoIjYqOSIsIDQyKSwKKyAgICBdKQorICAgIGRlZiB0ZXN0X2V2YWwodGVzdF9pbnB1
dCwgZXhwZWN0ZWQpOgorICAgICAgICBhc3NlcnQgZXZhbCh0ZXN0X2lucHV0KSA9PSBleHBlY3Rl
ZAorCitIZXJlLCB0aGUgYGBAcGFyYW1ldHJpemVgYCBkZWNvcmF0b3IgZGVmaW5lcyB0aHJlZSBk
aWZmZXJlbnQgYGAodGVzdF9pbnB1dCxleHBlY3RlZClgYAordHVwbGVzIHNvIHRoYXQgdGhlIGBg
dGVzdF9ldmFsYGAgZnVuY3Rpb24gd2lsbCBydW4gdGhyZWUgdGltZXMgdXNpbmcKK3RoZW0gaW4g
dHVybjo6CisKKyAgICAkIHB5dGVzdAorICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PSB0
ZXN0IHNlc3Npb24gc3RhcnRzID09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBwbGF0
Zm9ybSBsaW51eCAtLSBQeXRob24gMy54LnksIHB5dGVzdC0zLngueSwgcHktMS54LnksIHBsdWdn
eS0wLngueQorICAgIHJvb3RkaXI6ICRSRUdFTkRPQ19UTVBESVIsIGluaWZpbGU6CisgICAgY29s
bGVjdGVkIDMgaXRlbXMKKyAgICAKKyAgICB0ZXN0X2V4cGVjdGF0aW9uLnB5IC4uRiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKyAgICAKKyAgICA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gRkFJTFVSRVMgPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fXyB0ZXN0
X2V2YWxbNio5LTQyXSBfX19fX19fX19fX19fX19fX19fX19fX19fX19fXworICAgIAorICAgIHRl
c3RfaW5wdXQgPSAnNio5JywgZXhwZWN0ZWQgPSA0MgorICAgIAorICAgICAgICBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoInRlc3RfaW5wdXQsZXhwZWN0ZWQiLCBbCisgICAgICAgICAgICAoIjMr
NSIsIDgpLAorICAgICAgICAgICAgKCIyKzQiLCA2KSwKKyAgICAgICAgICAgICgiNio5IiwgNDIp
LAorICAgICAgICBdKQorICAgICAgICBkZWYgdGVzdF9ldmFsKHRlc3RfaW5wdXQsIGV4cGVjdGVk
KToKKyAgICA+ICAgICAgIGFzc2VydCBldmFsKHRlc3RfaW5wdXQpID09IGV4cGVjdGVkCisgICAg
RSAgICAgICBBc3NlcnRpb25FcnJvcjogYXNzZXJ0IDU0ID09IDQyCisgICAgRSAgICAgICAgKyAg
d2hlcmUgNTQgPSBldmFsKCc2KjknKQorICAgIAorICAgIHRlc3RfZXhwZWN0YXRpb24ucHk6ODog
QXNzZXJ0aW9uRXJyb3IKKyAgICA9PT09PT09PT09PT09PT09PT09PSAxIGZhaWxlZCwgMiBwYXNz
ZWQgaW4gMC4xMiBzZWNvbmRzID09PT09PT09PT09PT09PT09PT09CisKK0FzIGRlc2lnbmVkIGlu
IHRoaXMgZXhhbXBsZSwgb25seSBvbmUgcGFpciBvZiBpbnB1dC9vdXRwdXQgdmFsdWVzIGZhaWxz
Cit0aGUgc2ltcGxlIHRlc3QgZnVuY3Rpb24uICBBbmQgYXMgdXN1YWwgd2l0aCB0ZXN0IGZ1bmN0
aW9uIGFyZ3VtZW50cywKK3lvdSBjYW4gc2VlIHRoZSBgYGlucHV0YGAgYW5kIGBgb3V0cHV0YGAg
dmFsdWVzIGluIHRoZSB0cmFjZWJhY2suCisKK05vdGUgdGhhdCB5b3UgY291bGQgYWxzbyB1c2Ug
dGhlIHBhcmFtZXRyaXplIG1hcmtlciBvbiBhIGNsYXNzIG9yIGEgbW9kdWxlCisoc2VlIDpyZWY6
YG1hcmtgKSB3aGljaCB3b3VsZCBpbnZva2Ugc2V2ZXJhbCBmdW5jdGlvbnMgd2l0aCB0aGUgYXJn
dW1lbnQgc2V0cy4KKworSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBtYXJrIGluZGl2aWR1YWwgdGVz
dCBpbnN0YW5jZXMgd2l0aGluIHBhcmFtZXRyaXplLAorZm9yIGV4YW1wbGUgd2l0aCB0aGUgYnVp
bHRpbiBgYG1hcmsueGZhaWxgYDo6CisKKyAgICAjIGNvbnRlbnQgb2YgdGVzdF9leHBlY3RhdGlv
bi5weQorICAgIGltcG9ydCBweXRlc3QKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInRl
c3RfaW5wdXQsZXhwZWN0ZWQiLCBbCisgICAgICAgICgiMys1IiwgOCksCisgICAgICAgICgiMis0
IiwgNiksCisgICAgICAgIHB5dGVzdC5wYXJhbSgiNio5IiwgNDIsCisgICAgICAgICAgICAgICAg
ICAgICBtYXJrcz1weXRlc3QubWFyay54ZmFpbCksCisgICAgXSkKKyAgICBkZWYgdGVzdF9ldmFs
KHRlc3RfaW5wdXQsIGV4cGVjdGVkKToKKyAgICAgICAgYXNzZXJ0IGV2YWwodGVzdF9pbnB1dCkg
PT0gZXhwZWN0ZWQKKworTGV0J3MgcnVuIHRoaXM6OgorCisgICAgJCBweXRlc3QKKyAgICA9PT09
PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09PT09
PT09PT09PT09PT09PT09CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBweXRl
c3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICByb290ZGlyOiAkUkVHRU5ET0Nf
VE1QRElSLCBpbmlmaWxlOgorICAgIGNvbGxlY3RlZCAzIGl0ZW1zCisgICAgCisgICAgdGVzdF9l
eHBlY3RhdGlvbi5weSAuLnggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgWzEwMCVdCisgICAgCisgICAgPT09PT09PT09PT09PT09PT09PSAyIHBhc3NlZCwgMSB4
ZmFpbGVkIGluIDAuMTIgc2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PQorCitUaGUgb25lIHBh
cmFtZXRlciBzZXQgd2hpY2ggY2F1c2VkIGEgZmFpbHVyZSBwcmV2aW91c2x5IG5vdworc2hvd3Mg
dXAgYXMgYW4gInhmYWlsZWQgKGV4cGVjdGVkIHRvIGZhaWwpIiB0ZXN0LgorCitUbyBnZXQgYWxs
IGNvbWJpbmF0aW9ucyBvZiBtdWx0aXBsZSBwYXJhbWV0cml6ZWQgYXJndW1lbnRzIHlvdSBjYW4g
c3RhY2sKK2BgcGFyYW1ldHJpemVgYCBkZWNvcmF0b3JzOjoKKworICAgIGltcG9ydCBweXRlc3QK
KyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoIngiLCBbMCwgMV0pCisgICAgQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCJ5IiwgWzIsIDNdKQorICAgIGRlZiB0ZXN0X2Zvbyh4LCB5KToKKyAg
ICAgICAgcGFzcworCitUaGlzIHdpbGwgcnVuIHRoZSB0ZXN0IHdpdGggdGhlIGFyZ3VtZW50cyBz
ZXQgdG8gYGB4PTAveT0yYGAsIGBgeD0wL3k9M2BgLCBgYHg9MS95PTJgYCBhbmQKK2BgeD0xL3k9
M2BgLgorCisuLiBfYHB5dGVzdF9nZW5lcmF0ZV90ZXN0c2A6CisKK0Jhc2ljIGBgcHl0ZXN0X2dl
bmVyYXRlX3Rlc3RzYGAgZXhhbXBsZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKK1NvbWV0aW1lcyB5b3UgbWF5IHdhbnQgdG8gaW1wbGVtZW50IHlvdXIg
b3duIHBhcmFtZXRyaXphdGlvbiBzY2hlbWUKK29yIGltcGxlbWVudCBzb21lIGR5bmFtaXNtIGZv
ciBkZXRlcm1pbmluZyB0aGUgcGFyYW1ldGVycyBvciBzY29wZQorb2YgYSBmaXh0dXJlLiAgIEZv
ciB0aGlzLCB5b3UgY2FuIHVzZSB0aGUgYGBweXRlc3RfZ2VuZXJhdGVfdGVzdHNgYCBob29rCit3
aGljaCBpcyBjYWxsZWQgd2hlbiBjb2xsZWN0aW5nIGEgdGVzdCBmdW5jdGlvbi4gIFRocm91Z2gg
dGhlIHBhc3NlZCBpbgorYGBtZXRhZnVuY2BgIG9iamVjdCB5b3UgY2FuIGluc3BlY3QgdGhlIHJl
cXVlc3RpbmcgdGVzdCBjb250ZXh0IGFuZCwgbW9zdAoraW1wb3J0YW50bHksIHlvdSBjYW4gY2Fs
bCBgYG1ldGFmdW5jLnBhcmFtZXRyaXplKClgYCB0byBjYXVzZQorcGFyYW1ldHJpemF0aW9uLgor
CitGb3IgZXhhbXBsZSwgbGV0J3Mgc2F5IHdlIHdhbnQgdG8gcnVuIGEgdGVzdCB0YWtpbmcgc3Ry
aW5nIGlucHV0cyB3aGljaAord2Ugd2FudCB0byBzZXQgdmlhIGEgbmV3IGBgcHl0ZXN0YGAgY29t
bWFuZCBsaW5lIG9wdGlvbi4gIExldCdzIGZpcnN0IHdyaXRlCithIHNpbXBsZSB0ZXN0IGFjY2Vw
dGluZyBhIGBgc3RyaW5naW5wdXRgYCBmaXh0dXJlIGZ1bmN0aW9uIGFyZ3VtZW50OjoKKworICAg
ICMgY29udGVudCBvZiB0ZXN0X3N0cmluZ3MucHkKKworICAgIGRlZiB0ZXN0X3ZhbGlkX3N0cmlu
ZyhzdHJpbmdpbnB1dCk6CisgICAgICAgIGFzc2VydCBzdHJpbmdpbnB1dC5pc2FscGhhKCkKKwor
Tm93IHdlIGFkZCBhIGBgY29uZnRlc3QucHlgYCBmaWxlIGNvbnRhaW5pbmcgdGhlIGFkZGl0aW9u
IG9mIGEKK2NvbW1hbmQgbGluZSBvcHRpb24gYW5kIHRoZSBwYXJhbWV0cml6YXRpb24gb2Ygb3Vy
IHRlc3QgZnVuY3Rpb246OgorCisgICAgIyBjb250ZW50IG9mIGNvbmZ0ZXN0LnB5CisKKyAgICBk
ZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgorICAgICAgICBwYXJzZXIuYWRkb3B0aW9uKCIt
LXN0cmluZ2lucHV0IiwgYWN0aW9uPSJhcHBlbmQiLCBkZWZhdWx0PVtdLAorICAgICAgICAgICAg
aGVscD0ibGlzdCBvZiBzdHJpbmdpbnB1dHMgdG8gcGFzcyB0byB0ZXN0IGZ1bmN0aW9ucyIpCisK
KyAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAgaWYgJ3N0
cmluZ2lucHV0JyBpbiBtZXRhZnVuYy5maXh0dXJlbmFtZXM6CisgICAgICAgICAgICBtZXRhZnVu
Yy5wYXJhbWV0cml6ZSgic3RyaW5naW5wdXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWV0YWZ1bmMuY29uZmlnLmdldG9wdGlvbignc3RyaW5naW5wdXQnKSkKKworSWYgd2Ug
bm93IHBhc3MgdHdvIHN0cmluZ2lucHV0IHZhbHVlcywgb3VyIHRlc3Qgd2lsbCBydW4gdHdpY2U6
OgorCisgICAgJCBweXRlc3QgLXEgLS1zdHJpbmdpbnB1dD0iaGVsbG8iIC0tc3RyaW5naW5wdXQ9
IndvcmxkIiB0ZXN0X3N0cmluZ3MucHkKKyAgICAuLiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKyAgICAyIHBh
c3NlZCBpbiAwLjEyIHNlY29uZHMKKworTGV0J3MgYWxzbyBydW4gd2l0aCBhIHN0cmluZ2lucHV0
IHRoYXQgd2lsbCBsZWFkIHRvIGEgZmFpbGluZyB0ZXN0OjoKKworICAgICQgcHl0ZXN0IC1xIC0t
c3RyaW5naW5wdXQ9IiEiIHRlc3Rfc3RyaW5ncy5weQorICAgIEYgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsxMDAlXQor
ICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSBGQUlMVVJFUyA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICBfX19fX19fX19fX19fX19fX19fX19fX19fX18g
dGVzdF92YWxpZF9zdHJpbmdbIV0gX19fX19fX19fX19fX19fX19fX19fX19fX19fCisgICAgCisg
ICAgc3RyaW5naW5wdXQgPSAnIScKKyAgICAKKyAgICAgICAgZGVmIHRlc3RfdmFsaWRfc3RyaW5n
KHN0cmluZ2lucHV0KToKKyAgICA+ICAgICAgIGFzc2VydCBzdHJpbmdpbnB1dC5pc2FscGhhKCkK
KyAgICBFICAgICAgIEFzc2VydGlvbkVycm9yOiBhc3NlcnQgRmFsc2UKKyAgICBFICAgICAgICAr
ICB3aGVyZSBGYWxzZSA9IDxidWlsdC1pbiBtZXRob2QgaXNhbHBoYSBvZiBzdHIgb2JqZWN0IGF0
IDB4ZGVhZGJlZWY+KCkKKyAgICBFICAgICAgICArICAgIHdoZXJlIDxidWlsdC1pbiBtZXRob2Qg
aXNhbHBoYSBvZiBzdHIgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+ID0gJyEnLmlzYWxwaGEKKyAgICAK
KyAgICB0ZXN0X3N0cmluZ3MucHk6MzogQXNzZXJ0aW9uRXJyb3IKKyAgICAxIGZhaWxlZCBpbiAw
LjEyIHNlY29uZHMKKworQXMgZXhwZWN0ZWQgb3VyIHRlc3QgZnVuY3Rpb24gZmFpbHMuCisKK0lm
IHlvdSBkb24ndCBzcGVjaWZ5IGEgc3RyaW5naW5wdXQgaXQgd2lsbCBiZSBza2lwcGVkIGJlY2F1
c2UKK2BgbWV0YWZ1bmMucGFyYW1ldHJpemUoKWBgIHdpbGwgYmUgY2FsbGVkIHdpdGggYW4gZW1w
dHkgcGFyYW1ldGVyCitsaXN0OjoKKworICAgICQgcHl0ZXN0IC1xIC1ycyB0ZXN0X3N0cmluZ3Mu
cHkKKyAgICBzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09
IHNob3J0IHRlc3Qgc3VtbWFyeSBpbmZvID09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAg
U0tJUCBbMV0gdGVzdF9zdHJpbmdzLnB5OiBnb3QgZW1wdHkgcGFyYW1ldGVyIHNldCBbJ3N0cmlu
Z2lucHV0J10sIGZ1bmN0aW9uIHRlc3RfdmFsaWRfc3RyaW5nIGF0ICRSRUdFTkRPQ19UTVBESVIv
dGVzdF9zdHJpbmdzLnB5OjEKKyAgICAxIHNraXBwZWQgaW4gMC4xMiBzZWNvbmRzCisKK05vdGUg
dGhhdCB3aGVuIGNhbGxpbmcgYGBtZXRhZnVuYy5wYXJhbWV0cml6ZWBgIG11bHRpcGxlIHRpbWVz
IHdpdGggZGlmZmVyZW50IHBhcmFtZXRlciBzZXRzLCBhbGwgcGFyYW1ldGVyIG5hbWVzIGFjcm9z
cyAKK3Rob3NlIHNldHMgY2Fubm90IGJlIGR1cGxpY2F0ZWQsIG90aGVyd2lzZSBhbiBlcnJvciB3
aWxsIGJlIHJhaXNlZC4KKworTW9yZSBleGFtcGxlcworLS0tLS0tLS0tLS0tLQorCitGb3IgZnVy
dGhlciBleGFtcGxlcywgeW91IG1pZ2h0IHdhbnQgdG8gbG9vayBhdCA6cmVmOmBtb3JlCitwYXJh
bWV0cml6YXRpb24gZXhhbXBsZXMgPHBhcmFtZXhhbXBsZXM+YC4KKworLi4gX2BtZXRhZnVuYyBv
YmplY3RgOgorCitUaGUgKiptZXRhZnVuYyoqIG9iamVjdAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiBjdXJyZW50bW9kdWxlOjogX3B5dGVzdC5weXRo
b24KKy4uIGF1dG9jbGFzczo6IE1ldGFmdW5jCisgICAgOm1lbWJlcnM6CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vcGx1Z2lucy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcGx1Z2lu
cy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDAwNDE4YWVlMjU4NjdiNGJkYWQ2M2Y0NDZkMzJmMjY4YzE5NWZi
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9wbHVnaW5zLnJzdApAQCAt
MCwwICsxLDE1NCBAQAorLi4gX2BleHRlcm5hbCBwbHVnaW5zYDoKKy4uIF9gZXh0cGx1Z2luc2A6
CisuLiBfYHVzaW5nIHBsdWdpbnNgOgorCitJbnN0YWxsaW5nIGFuZCBVc2luZyBwbHVnaW5zCis9
PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1RoaXMgc2VjdGlvbiB0YWxrcyBhYm91dCBp
bnN0YWxsaW5nIGFuZCB1c2luZyB0aGlyZCBwYXJ0eSBwbHVnaW5zLgorRm9yIHdyaXRpbmcgeW91
ciBvd24gcGx1Z2lucywgcGxlYXNlIHJlZmVyIHRvIDpyZWY6YHdyaXRpbmctcGx1Z2luc2AuCisK
K0luc3RhbGxpbmcgYSB0aGlyZCBwYXJ0eSBwbHVnaW4gY2FuIGJlIGVhc2lseSBkb25lIHdpdGgg
YGBwaXBgYDo6CisKKyAgICBwaXAgaW5zdGFsbCBweXRlc3QtTkFNRQorICAgIHBpcCB1bmluc3Rh
bGwgcHl0ZXN0LU5BTUUKKworSWYgYSBwbHVnaW4gaXMgaW5zdGFsbGVkLCBgYHB5dGVzdGBgIGF1
dG9tYXRpY2FsbHkgZmluZHMgYW5kIGludGVncmF0ZXMgaXQsCit0aGVyZSBpcyBubyBuZWVkIHRv
IGFjdGl2YXRlIGl0LgorCitIZXJlIGlzIGEgbGl0dGxlIGFubm90YXRlZCBsaXN0IGZvciBzb21l
IHBvcHVsYXIgcGx1Z2luczoKKworLi4gX2BkamFuZ29gOiBodHRwczovL3d3dy5kamFuZ29wcm9q
ZWN0LmNvbS8KKworKiBgcHl0ZXN0LWRqYW5nbyA8aHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBp
L3B5dGVzdC1kamFuZ28+YF86IHdyaXRlIHRlc3RzCisgIGZvciBgZGphbmdvYF8gYXBwcywgdXNp
bmcgcHl0ZXN0IGludGVncmF0aW9uLgorCisqIGBweXRlc3QtdHdpc3RlZCA8aHR0cDovL3B5cGku
cHl0aG9uLm9yZy9weXBpL3B5dGVzdC10d2lzdGVkPmBfOiB3cml0ZSB0ZXN0cworICBmb3IgYHR3
aXN0ZWQgPGh0dHA6Ly90d2lzdGVkbWF0cml4LmNvbT5gXyBhcHBzLCBzdGFydGluZyBhIHJlYWN0
b3IgYW5kCisgIHByb2Nlc3NpbmcgZGVmZXJyZWRzIGZyb20gdGVzdCBmdW5jdGlvbnMuCisKKyog
YHB5dGVzdC1jb3YgPGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9weXRlc3QtY292PmBfOgor
ICBjb3ZlcmFnZSByZXBvcnRpbmcsIGNvbXBhdGlibGUgd2l0aCBkaXN0cmlidXRlZCB0ZXN0aW5n
CisKKyogYHB5dGVzdC14ZGlzdCA8aHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3B5dGVzdC14
ZGlzdD5gXzoKKyAgdG8gZGlzdHJpYnV0ZSB0ZXN0cyB0byBDUFVzIGFuZCByZW1vdGUgaG9zdHMs
IHRvIHJ1biBpbiBib3hlZAorICBtb2RlIHdoaWNoIGFsbG93cyB0byBzdXJ2aXZlIHNlZ21lbnRh
dGlvbiBmYXVsdHMsIHRvIHJ1biBpbgorICBsb29wb25mYWlsaW5nIG1vZGUsIGF1dG9tYXRpY2Fs
bHkgcmUtcnVubmluZyBmYWlsaW5nIHRlc3RzCisgIG9uIGZpbGUgY2hhbmdlcy4KKworKiBgcHl0
ZXN0LWluc3RhZmFpbCA8aHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3B5dGVzdC1pbnN0YWZh
aWw+YF86CisgIHRvIHJlcG9ydCBmYWlsdXJlcyB3aGlsZSB0aGUgdGVzdCBydW4gaXMgaGFwcGVu
aW5nLgorCisqIGBweXRlc3QtYmRkIDxodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcHl0ZXN0
LWJkZD5gXyBhbmQKKyAgYHB5dGVzdC1rb25pcmEgPGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlw
aS9weXRlc3Qta29uaXJhPmBfCisgIHRvIHdyaXRlIHRlc3RzIHVzaW5nIGJlaGF2aW91ci1kcml2
ZW4gdGVzdGluZy4KKworKiBgcHl0ZXN0LXRpbWVvdXQgPGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcv
cHlwaS9weXRlc3QtdGltZW91dD5gXzoKKyAgdG8gdGltZW91dCB0ZXN0cyBiYXNlZCBvbiBmdW5j
dGlvbiBtYXJrcyBvciBnbG9iYWwgZGVmaW5pdGlvbnMuCisKKyogYHB5dGVzdC1wZXA4IDxodHRw
Oi8vcHlwaS5weXRob24ub3JnL3B5cGkvcHl0ZXN0LXBlcDg+YF86CisgIGEgYGAtLXBlcDhgYCBv
cHRpb24gdG8gZW5hYmxlIFBFUDggY29tcGxpYW5jZSBjaGVja2luZy4KKworKiBgcHl0ZXN0LWZs
YWtlcyA8aHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9weXRlc3QtZmxha2VzPmBfOgorICBj
aGVjayBzb3VyY2UgY29kZSB3aXRoIHB5Zmxha2VzLgorCisqIGBvZWpza2l0IDxodHRwOi8vcHlw
aS5weXRob24ub3JnL3B5cGkvb2Vqc2tpdD5gXzoKKyAgYSBwbHVnaW4gdG8gcnVuIGphdmFzY3Jp
cHQgdW5pdHRlc3RzIGluIGxpdmUgYnJvd3NlcnMuCisKK1RvIHNlZSBhIGNvbXBsZXRlIGxpc3Qg
b2YgYWxsIHBsdWdpbnMgd2l0aCB0aGVpciBsYXRlc3QgdGVzdGluZworc3RhdHVzIGFnYWluc3Qg
ZGlmZmVyZW50IHB5dGVzdCBhbmQgUHl0aG9uIHZlcnNpb25zLCBwbGVhc2UgdmlzaXQKK2BwbHVn
aW5jb21wYXQgPGh0dHA6Ly9wbHVnaW5jb21wYXQuaGVyb2t1YXBwLmNvbS8+YF8uCisKK1lvdSBt
YXkgYWxzbyBkaXNjb3ZlciBtb3JlIHBsdWdpbnMgdGhyb3VnaCBhIGBweXRlc3QtIHB5cGkucHl0
aG9uLm9yZyBzZWFyY2hgXy4KKworLi4gX2BhdmFpbGFibGUgaW5zdGFsbGFibGUgcGx1Z2luc2A6
CisuLiBfYHB5dGVzdC0gcHlwaS5weXRob24ub3JnIHNlYXJjaGA6IGh0dHA6Ly9weXBpLnB5dGhv
bi5vcmcvcHlwaT8lM0FhY3Rpb249c2VhcmNoJnRlcm09cHl0ZXN0LSZzdWJtaXQ9c2VhcmNoCisK
KworUmVxdWlyaW5nL0xvYWRpbmcgcGx1Z2lucyBpbiBhIHRlc3QgbW9kdWxlIG9yIGNvbmZ0ZXN0
IGZpbGUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKK1lvdSBjYW4gcmVxdWlyZSBwbHVnaW5zIGluIGEgdGVzdCBtb2R1bGUgb3Ig
YSBjb25mdGVzdCBmaWxlIGxpa2UgdGhpczo6CisKKyAgICBweXRlc3RfcGx1Z2lucyA9ICJteWFw
cC50ZXN0c3VwcG9ydC5teXBsdWdpbiIsCisKK1doZW4gdGhlIHRlc3QgbW9kdWxlIG9yIGNvbmZ0
ZXN0IHBsdWdpbiBpcyBsb2FkZWQgdGhlIHNwZWNpZmllZCBwbHVnaW5zCit3aWxsIGJlIGxvYWRl
ZCBhcyB3ZWxsLgorCisgICAgcHl0ZXN0X3BsdWdpbnMgPSAibXlhcHAudGVzdHN1cHBvcnQubXlw
bHVnaW4iCisKK3doaWNoIHdpbGwgaW1wb3J0IHRoZSBzcGVjaWZpZWQgbW9kdWxlIGFzIGEgYGBw
eXRlc3RgYCBwbHVnaW4uCisKKy4uIF9gZmluZHBsdWdpbm5hbWVgOgorCitGaW5kaW5nIG91dCB3
aGljaCBwbHVnaW5zIGFyZSBhY3RpdmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCitJZiB5b3Ugd2FudCB0byBmaW5kIG91dCB3aGljaCBwbHVnaW5zIGFyZSBhY3RpdmUg
aW4geW91cgorZW52aXJvbm1lbnQgeW91IGNhbiB0eXBlOjoKKworICAgIHB5dGVzdCAtLXRyYWNl
LWNvbmZpZworCithbmQgd2lsbCBnZXQgYW4gZXh0ZW5kZWQgdGVzdCBoZWFkZXIgd2hpY2ggc2hv
d3MgYWN0aXZhdGVkIHBsdWdpbnMKK2FuZCB0aGVpciBuYW1lcy4gSXQgd2lsbCBhbHNvIHByaW50
IGxvY2FsIHBsdWdpbnMgYWthCis6cmVmOmBjb25mdGVzdC5weSA8Y29uZnRlc3QucHkgcGx1Z2lu
cz5gIGZpbGVzIHdoZW4gdGhleSBhcmUgbG9hZGVkLgorCisuLiBfYGNtZHVucmVnaXN0ZXJgOgor
CitEZWFjdGl2YXRpbmcgLyB1bnJlZ2lzdGVyaW5nIGEgcGx1Z2luIGJ5IG5hbWUKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitZb3UgY2FuIHByZXZlbnQg
cGx1Z2lucyBmcm9tIGxvYWRpbmcgb3IgdW5yZWdpc3RlciB0aGVtOjoKKworICAgIHB5dGVzdCAt
cCBubzpOQU1FCisKK1RoaXMgbWVhbnMgdGhhdCBhbnkgc3Vic2VxdWVudCB0cnkgdG8gYWN0aXZh
dGUvbG9hZCB0aGUgbmFtZWQKK3BsdWdpbiB3aWxsIG5vdCB3b3JrLgorCitJZiB5b3Ugd2FudCB0
byB1bmNvbmRpdGlvbmFsbHkgZGlzYWJsZSBhIHBsdWdpbiBmb3IgYSBwcm9qZWN0LCB5b3UgY2Fu
IGFkZAordGhpcyBvcHRpb24gdG8geW91ciBgYHB5dGVzdC5pbmlgYCBmaWxlOgorCisuLiBjb2Rl
LWJsb2NrOjogaW5pCisKKyAgICAgIFtweXRlc3RdCisgICAgICBhZGRvcHRzID0gLXAgbm86TkFN
RQorCitBbHRlcm5hdGl2ZWx5IHRvIGRpc2FibGUgaXQgb25seSBpbiBjZXJ0YWluIGVudmlyb25t
ZW50cyAoZm9yIGV4YW1wbGUgaW4gYQorQ0kgc2VydmVyKSwgeW91IGNhbiBzZXQgYGBQWVRFU1Rf
QURET1BUU2BgIGVudmlyb25tZW50IHZhcmlhYmxlIHRvCitgYC1wIG5vOm5hbWVgYC4KKworU2Vl
IDpyZWY6YGZpbmRwbHVnaW5uYW1lYCBmb3IgaG93IHRvIG9idGFpbiB0aGUgbmFtZSBvZiBhIHBs
dWdpbi4KKworLi4gX2BidWlsdGluIHBsdWdpbnNgOgorCitQeXRlc3QgZGVmYXVsdCBwbHVnaW4g
cmVmZXJlbmNlCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKworWW91IGNhbiBm
aW5kIHRoZSBzb3VyY2UgY29kZSBmb3IgdGhlIGZvbGxvd2luZyBwbHVnaW5zCitpbiB0aGUgYHB5
dGVzdCByZXBvc2l0b3J5IDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3Q+YF8u
CisKKy4uIGF1dG9zdW1tYXJ5OjoKKworICAgIF9weXRlc3QuYXNzZXJ0aW9uCisgICAgX3B5dGVz
dC5jYWNoZXByb3ZpZGVyCisgICAgX3B5dGVzdC5jYXB0dXJlCisgICAgX3B5dGVzdC5jb25maWcK
KyAgICBfcHl0ZXN0LmRvY3Rlc3QKKyAgICBfcHl0ZXN0LmhlbHBjb25maWcKKyAgICBfcHl0ZXN0
Lmp1bml0eG1sCisgICAgX3B5dGVzdC5tYXJrCisgICAgX3B5dGVzdC5tb25rZXlwYXRjaAorICAg
IF9weXRlc3Qubm9zZQorICAgIF9weXRlc3QucGFzdGViaW4KKyAgICBfcHl0ZXN0LmRlYnVnZ2lu
ZworICAgIF9weXRlc3QucHl0ZXN0ZXIKKyAgICBfcHl0ZXN0LnB5dGhvbgorICAgIF9weXRlc3Qu
cmVjd2FybgorICAgIF9weXRlc3QucmVzdWx0bG9nCisgICAgX3B5dGVzdC5ydW5uZXIKKyAgICBf
cHl0ZXN0Lm1haW4KKyAgICBfcHl0ZXN0LnNraXBwaW5nCisgICAgX3B5dGVzdC50ZXJtaW5hbAor
ICAgIF9weXRlc3QudG1wZGlyCisgICAgX3B5dGVzdC51bml0dGVzdApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL3Byb2plY3RzLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9wcm9qZWN0
cy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODZkZjk5YWIyYzVmYzBiZjhiOWU1ODRiZmUwYjE4Y2UxNTYyYjk3
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9wcm9qZWN0cy5yc3QKQEAg
LTAsMCArMSw4NSBAQAorLi4gX3Byb2plY3RzOgorCisuLiBpbWFnZTo6IGltZy9nYXlub3IzLnBu
ZworICAgOndpZHRoOiA0MDBweAorICAgOmFsaWduOiByaWdodAorCisuLiBpbWFnZTo6IGltZy90
aGV1bmkucG5nCisgICA6d2lkdGg6IDQwMHB4CisgICA6YWxpZ246IHJpZ2h0CisKKy4uIGltYWdl
OjogaW1nL2NyYW1lcjIucG5nCisgICA6d2lkdGg6IDQwMHB4CisgICA6YWxpZ246IHJpZ2h0CisK
Ky4uIGltYWdlOjogaW1nL2tlbGVzaGV2LnBuZworICAgOndpZHRoOiA0MDBweAorICAgOmFsaWdu
OiByaWdodAorCisKK1Byb2plY3QgZXhhbXBsZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09
CisKK0hlcmUgYXJlIHNvbWUgZXhhbXBsZXMgb2YgcHJvamVjdHMgdXNpbmcgYGBweXRlc3RgYCAo
cGxlYXNlIHNlbmQgbm90ZXMgdmlhIDpyZWY6YGNvbnRhY3RgKToKKworKiBgUHlQeSA8aHR0cDov
L3B5cHkub3JnPmBfLCBQeXRob24gd2l0aCBhIEpJVCBjb21waWxlciwgcnVubmluZyBvdmVyCisg
IGAyMTAwMCB0ZXN0cyA8aHR0cDovL2J1aWxkYm90LnB5cHkub3JnL3N1bW1hcnk/YnJhbmNoPSUz
Q3RydW5rJTNFPmBfCisqIHRoZSBgTW9pbk1vaW4gPGh0dHA6Ly9tb2lubW8uaW4+YF8gV2lraSBF
bmdpbmUKKyogYHNlbnRyeSA8aHR0cHM6Ly9nZXRzZW50cnkuY29tL3dlbGNvbWUvPmBfLCByZWFs
dGltZSBhcHAtbWFpbnRlbmFuY2UgYW5kIGV4Y2VwdGlvbiB0cmFja2luZworKiBgQXN0cm9weSA8
aHR0cDovL3d3dy5hc3Ryb3B5Lm9yZy8+YF8gYW5kIGBhZmZpbGlhdGVkIHBhY2thZ2VzIDxodHRw
Oi8vd3d3LmFzdHJvcHkub3JnL2FmZmlsaWF0ZWQvaW5kZXguaHRtbD5gXworKiBgdG94IDxodHRw
Oi8vdGVzdHJ1bi5vcmcvdG94PmBfLCB2aXJ0dWFsZW52L0h1ZHNvbiBpbnRlZ3JhdGlvbiB0b29s
CisqIGBQSURBIDxodHRwOi8vcGlkYS5jby51az5gXyBmcmFtZXdvcmsgZm9yIGludGVncmF0ZWQg
ZGV2ZWxvcG1lbnQKKyogYFB5UE0gPGh0dHA6Ly9jb2RlLmFjdGl2ZXN0YXRlLmNvbS9weXBtLz5g
XyBBY3RpdmVTdGF0ZSdzIHBhY2thZ2UgbWFuYWdlcgorKiBgRm9tIDxodHRwOi8vcGFja2FnZXMu
cHl0aG9uLm9yZy9Gb20vPmBfIGEgZmx1aWQgb2JqZWN0IG1hcHBlciBmb3IgRmx1aWREQgorKiBg
YXBwbGliIDxodHRwczovL2dpdGh1Yi5jb20vQWN0aXZlU3RhdGUvYXBwbGliPmBfIGNyb3NzLXBs
YXRmb3JtIHV0aWxpdGllcworKiBgc2l4IDxodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvc2l4
Lz5gXyBQeXRob24gMiBhbmQgMyBjb21wYXRpYmlsaXR5IHV0aWxpdGllcworKiBgcGVkaWFwcmVz
cyA8aHR0cDovL2NvZGUucGVkaWFwcmVzcy5jb20vd2lraS93aWtpPmBfIE1lZGlhV2lraSBhcnRp
Y2xlcworKiBgbXdsaWIgPGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9td2xpYj5gXyBtZWRp
YXdpa2kgcGFyc2VyIGFuZCB1dGlsaXR5IGxpYnJhcnkKKyogYFRoZSBUcmFuc2xhdGUgVG9vbGtp
dCA8aHR0cDovL3RyYW5zbGF0ZS5zb3VyY2Vmb3JnZS5uZXQvd2lraS90b29sa2l0L2luZGV4PmBf
IGZvciBsb2NhbGl6YXRpb24gYW5kIGNvbnZlcnNpb24KKyogYGV4ZWNuZXQgPGh0dHA6Ly9jb2Rl
c3BlYWsubmV0L2V4ZWNuZXQ+YF8gcmFwaWQgbXVsdGktUHl0aG9uIGRlcGxveW1lbnQKKyogYHB5
bGliIDxodHRwOi8vcHkucnRmZC5vcmc+YF8gY3Jvc3MtcGxhdGZvcm0gcGF0aCwgSU8sIGR5bmFt
aWMgY29kZSBsaWJyYXJ5CisqIGBQYWNoYSA8aHR0cDovL3BhY2hhLmNhZmVwYWlzLmNvbS8+YF8g
Y29uZmlndXJhdGlvbiBtYW5hZ2VtZW50IGluIGZpdmUgbWludXRlcworKiBgYmJmcmVlemUgPGh0
dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9iYmZyZWV6ZT5gXyBjcmVhdGUgc3RhbmRhbG9uZSBl
eGVjdXRhYmxlcyBmcm9tIFB5dGhvbiBzY3JpcHRzCisqIGBwZGIrKyA8aHR0cDovL2JpdGJ1Y2tl
dC5vcmcvYW50b2N1bmkvcGRiPmBfIGEgZmFuY2llciB2ZXJzaW9uIG9mIFBEQgorKiBgcHktczNm
dXNlIDxodHRwOi8vY29kZS5nb29nbGUuY29tL3AvcHktczNmdXNlLz5gXyBBbWF6b24gUzMgRlVT
RSBiYXNlZCBmaWxlc3lzdGVtCisqIGB3YXNrciA8aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL3dh
c2tyLz5gXyBXU0dJIFN0YXRzIE1pZGRsZXdhcmUKKyogYGd1YWNoaSA8aHR0cDovL2NvZGUuZ29v
Z2xlLmNvbS9wL2d1YWNoaS8+YF8gZ2xvYmFsIHBlcnNpc3RlbnQgY29uZmlncyBmb3IgUHl0aG9u
IG1vZHVsZXMKKyogYENpcmN1aXRzIDxodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvY2lyY3Vp
dHM+YF8gbGlnaHR3ZWlnaHQgRXZlbnQgRHJpdmVuIEZyYW1ld29yaworKiBgcHlndGstaGVscGVy
cyA8aHR0cDovL2JpdGJ1Y2tldC5vcmcvYWFmc2hhci9weWd0a2hlbHBlcnMtbWFpbi8+YF8gZWFz
eSBpbnRlcmFjdGlvbiB3aXRoIFB5R1RLCisqIGBRdWFudHVtQ29yZSA8aHR0cDovL3F1YW50dW1j
b3JlLm9yZy8+YF8gc3RhdHVzbWVzc2FnZSBhbmQgcmVwb3plIG9wZW5pZCBwbHVnaW4KKyogYHB5
ZGF0YXBvcnRhYmlsaXR5IDxodHRwOi8vcHlkYXRhcG9ydGFiaWxpdHkubmV0Lz5gXyBsaWJyYXJp
ZXMgZm9yIG1hbmFnaW5nIHRoZSBvcGVuIHdlYgorKiBgWElTVCA8aHR0cDovL3d3dy5saXZpbmds
b2dpYy5kZS9QeXRob24veGlzdC8+YF8gZXh0ZW5zaWJsZSBIVE1ML1hNTCBnZW5lcmF0b3IKKyog
YHRpZGRseXdlYiA8aHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3RpZGRseXdlYj5gXyBvcHRp
b25hbGx5IGhlYWRsZXNzLCBleHRlbnNpYmxlIFJFU1RmdWwgZGF0YXN0b3JlCisqIGBmYW5jeWNv
bXBsZXRlciA8aHR0cDovL2JpdGJ1Y2tldC5vcmcvYW50b2N1bmkvZmFuY3ljb21wbGV0ZXIvc3Jj
PmBfIGZvciBjb2xvcmZ1bCB0YWItY29tcGxldGlvbgorKiBgUGFsdWRpcyA8aHR0cDovL3BhbHVk
aXMuZXhoZXJiby5vcmcvPmBfIHRvb2xzIGZvciBHZW50b28gUGFsdWRpcyBwYWNrYWdlIG1hbmFn
ZXIKKyogYEdlcmFsZCA8aHR0cDovL2hhbGZjb29rZWQuY29tL2NvZGUvZ2VyYWxkLz5gXyBzY2hl
bWEgY29tcGFyaXNvbiB0b29sCisqIGBhYmphZCA8aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2Fi
amFkLz5gXyBQeXRob24gQVBJIGZvciBGb3JtYWxpemVkIFNjb3JlIGNvbnRyb2wKKyogYGJ1IDxo
dHRwOi8vcGFja2FnZXMucHl0aG9uLm9yZy9idS8+YF8gYSBtaWNyb3Njb3BpYyBidWlsZCBzeXN0
ZW0KKyogYGthdGNwIDxodHRwczovL2JpdGJ1Y2tldC5vcmcvaG9kZ2VzdGFyL2thdGNwPmBfIFRl
bGVzY29wZSBjb21tdW5pY2F0aW9uIHByb3RvY29sIG92ZXIgVHdpc3RlZAorKiBga3NzIHBsdWdp
biB0aW1lciA8aHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL2tzcy5wbHVnaW4udGltZXI+YF8K
KyogYHB5dWRldiA8aHR0cHM6Ly9weXVkZXYucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L3Rlc3Rz
L3BsdWdpbnMuaHRtbD5gXyBhIHB1cmUgUHl0aG9uIGJpbmRpbmcgdG8gdGhlIExpbnV4IGxpYnJh
cnkgbGlidWRldgorKiBgcHl0ZXN0LWxvY2Fsc2VydmVyIDxodHRwczovL2JpdGJ1Y2tldC5vcmcv
cHl0ZXN0LWRldi9weXRlc3QtbG9jYWxzZXJ2ZXIvPmBfIGEgcGx1Z2luIGZvciBweXRlc3QgdGhh
dCBwcm92aWRlcyBhbiBodHRwc2VydmVyIGFuZCBzbXRwc2VydmVyCisqIGBweXRlc3QtbW9ua2V5
cGx1cyA8aHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3B5dGVzdC1tb25rZXlwbHVzLz5gXyBh
IHBsdWdpbiB0aGF0IGV4dGVuZHMgbW9ua2V5cGF0Y2gKKworVGhlc2UgcHJvamVjdHMgaGVscCBp
bnRlZ3JhdGUgYGBweXRlc3RgYCBpbnRvIG90aGVyIFB5dGhvbiBmcmFtZXdvcmtzOgorCisqIGBw
eXRlc3QtZGphbmdvIDxodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcHl0ZXN0LWRqYW5nby8+
YF8gZm9yIERqYW5nbworKiBgem9wZS5weXRlc3QgPGh0dHA6Ly9wYWNrYWdlcy5weXRob24ub3Jn
L3pvcGUucHl0ZXN0Lz5gXyBmb3IgWm9wZSBhbmQgR3JvaworKiBgcHl0ZXN0X2dhZSA8aHR0cDov
L3B5cGkucHl0aG9uLm9yZy9weXBpL3B5dGVzdF9nYWUvMC4yLjE+YF8gZm9yIEdvb2dsZSBBcHAg
RW5naW5lCisqIFRoZXJlIGlzIGBzb21lIHdvcmsgPGh0dHBzOi8vZ2l0aHViLmNvbS9Lb3R0aS9L
b3R0aS9ibG9iL21hc3Rlci9rb3R0aS90ZXN0aW5nLnB5PmBfIHVuZGVyd2F5IGZvciBLb3R0aSwg
YSBDTVMgYnVpbHQgaW4gUHlyYW1pZC9QeWxvbnMKKworCitTb21lIG9yZ2FuaXNhdGlvbnMgdXNp
bmcgcHl0ZXN0CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisqIGBTcXVh
cmUgS2lsb21ldHJlIEFycmF5LCBDYXBlIFRvd24gPGh0dHA6Ly9za2EuYWMuemEvPmBfCisqIGBT
b21lIE1vemlsbGEgUUEgcGVvcGxlIDxodHRwOi8vd3d3LnRoZWF1dG9tYXRlZHRlc3Rlci5jby51
ay9ibG9nLzIwMTEvcHl0ZXN0X2FuZF94ZGlzdF9wbHVnaW4uaHRtbD5gXyB1c2UgcHl0ZXN0IHRv
IGRpc3RyaWJ1dGUgdGhlaXIgU2VsZW5pdW0gdGVzdHMKKyogYFRhbmRiZXJnIDxodHRwOi8vd3d3
LnRhbmRiZXJnLmNvbS8+YF8KKyogYFNob290cSA8aHR0cDovL3dlYi5zaG9vdHEuY29tLz5gXwor
KiBgU3R1cHMgZGVwYXJ0bWVudCBvZiBIZWlucmljaCBIZWluZSBVbml2ZXJzaXR5IER1ZXNzZWxk
b3JmIDxodHRwOi8vd3d3LnN0dXBzLnVuaS1kdWVzc2VsZG9yZi5kZS9wcm9qZWN0cy5waHA+YF8K
KyogYGNlbGx6b21lIDxodHRwOi8vd3d3LmNlbGx6b21lLmNvbS8+YF8KKyogYE9wZW4gRW5kLCBH
b3RoZW5ib3JnIDxodHRwOi8vd3d3Lm9wZW5lbmQuc2U+YF8KKyogYExhYm9yYXRvcnkgb2YgQmlv
aW5mb3JtYXRpY3MsIFdhcnNhdyA8aHR0cDovL2dlbmVzaWxpY28ucGwvPmBfCisqIGBtZXJsaW51
eCwgR2VybWFueSA8aHR0cDovL21lcmxpbnV4LmV1PmBfCisqIGBFU1NTLCBCcmF6aWwgPGh0dHA6
Ly93d3cuZXNzcy5jb20uYnI+YF8KKyogbWFueSBtb3JlIC4uLiAocGxlYXNlIGJlIHNvIGtpbmQg
dG8gc2VuZCBhIG5vdGUgdmlhIDpyZWY6YGNvbnRhY3RgKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL3Byb3Bvc2Fscy9wYXJhbWV0cml6ZV93aXRoX2ZpeHR1cmVzLnJzdCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9wcm9wb3NhbHMvcGFyYW1ldHJpemVfd2l0aF9maXh0dXJlcy5yc3QKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTQ2MDMyYWE0NzEzZTkxNjM5YzUxNWY3N2RjMDBlZGRlNTRkYmEyMgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9wcm9wb3NhbHMvcGFyYW1ldHJpemVfd2l0
aF9maXh0dXJlcy5yc3QKQEAgLTAsMCArMSwxNjAgQEAKKzpvcnBoYW46CisKKz09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CitQUk9QT1NBTDogUGFyYW1ldHJpemUgd2l0aCBmaXh0
dXJlcworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gd2FybmluZzo6
CisKKyAgICBUaGlzIGRvY3VtZW50IG91dGxpbmVzIGEgcHJvcG9zYWwgYXJvdW5kIHVzaW5nIGZp
eHR1cmVzIGFzIGlucHV0CisgICAgb2YgcGFyYW1ldHJpemVkIHRlc3RzIG9yIGZpeHR1cmVzLgor
CitQcm9ibGVtCistLS0tLS0tCisKK0FzIGEgdXNlciBJIGhhdmUgZnVuY3Rpb25hbCB0ZXN0cyB0
aGF0IEkgd291bGQgbGlrZSB0byBydW4gYWdhaW5zdCB2YXJpb3VzCitzY2VuYXJpb3MuCisKK0lu
IHRoaXMgcGFydGljdWxhciBleGFtcGxlIHdlIHdhbnQgdG8gZ2VuZXJhdGUgYSBuZXcgcHJvamVj
dCBiYXNlZCBvbiBhCitjb29raWVjdXR0ZXIgdGVtcGxhdGUuIFdlIHdhbnQgdG8gdGVzdCBkZWZh
dWx0IHZhbHVlcyBidXQgYWxzbyBkYXRhIHRoYXQKK2VtdWxhdGVzIHVzZXIgaW5wdXQuCisKKy0g
dXNlIGRlZmF1bHQgdmFsdWVzCisKKy0gZW11bGF0ZSB1c2VyIGlucHV0CisKKyAgLSBzcGVjaWZ5
ICdhdXRob3InCisKKyAgLSBzcGVjaWZ5ICdwcm9qZWN0X3NsdWcnCisKKyAgLSBzcGVjaWZ5ICdh
dXRob3InIGFuZCAncHJvamVjdF9zbHVnJworCitUaGlzIGlzIGhvdyBhIGZ1bmN0aW9uYWwgdGVz
dCBjb3VsZCBsb29rIGxpa2U6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGltcG9y
dCBweXRlc3QKKworICAgIEBweXRlc3QuZml4dHVyZQorICAgIGRlZiBkZWZhdWx0X2NvbnRleHQo
KToKKyAgICAgICAgcmV0dXJuIHsnZXh0cmFfY29udGV4dCc6IHt9fQorCisKKyAgICBAcHl0ZXN0
LmZpeHR1cmUocGFyYW1zPVsKKyAgICAgICAgeydhdXRob3InOiAnYWxpY2UnfSwKKyAgICAgICAg
eydwcm9qZWN0X3NsdWcnOiAnaGVsbG93b3JsZCd9LAorICAgICAgICB7J2F1dGhvcic6ICdib2In
LCAncHJvamVjdF9zbHVnJzogJ2Zvb2Jhcid9LAorICAgIF0pCisgICAgZGVmIGV4dHJhX2NvbnRl
eHQocmVxdWVzdCk6CisgICAgICAgIHJldHVybiB7J2V4dHJhX2NvbnRleHQnOiByZXF1ZXN0LnBh
cmFtfQorCisKKyAgICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsnZGVmYXVsdCcsICdleHRyYSdd
KQorICAgIGRlZiBjb250ZXh0KHJlcXVlc3QpOgorICAgICAgICBpZiByZXF1ZXN0LnBhcmFtID09
ICdkZWZhdWx0JzoKKyAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LmdldGZ1bmNhcmd2YWx1ZSgn
ZGVmYXVsdF9jb250ZXh0JykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiByZXF1
ZXN0LmdldGZ1bmNhcmd2YWx1ZSgnZXh0cmFfY29udGV4dCcpCisKKworICAgIGRlZiB0ZXN0X2dl
bmVyYXRlX3Byb2plY3QoY29va2llcywgY29udGV4dCk6CisgICAgICAgICIiIkNhbGwgdGhlIGNv
b2tpZWN1dHRlciBBUEkgdG8gZ2VuZXJhdGUgYSBuZXcgcHJvamVjdCBmcm9tIGEKKyAgICAgICAg
dGVtcGxhdGUuCisgICAgICAgICIiIgorICAgICAgICByZXN1bHQgPSBjb29raWVzLmJha2UoZXh0
cmFfY29udGV4dD1jb250ZXh0KQorCisgICAgICAgIGFzc2VydCByZXN1bHQuZXhpdF9jb2RlID09
IDAKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5leGNlcHRpb24gaXMgTm9uZQorICAgICAgICBhc3Nl
cnQgcmVzdWx0LnByb2plY3QuaXNkaXIoKQorCisKK0lzc3VlcworLS0tLS0tCisKKyogQnkgdXNp
bmcgYGByZXF1ZXN0LmdldGZ1bmNhcmd2YWx1ZSgpYGAgd2UgcmVseSBvbiBhY3R1YWwgZml4dHVy
ZSBmdW5jdGlvbgorICBleGVjdXRpb24gdG8ga25vdyB3aGF0IGZpeHR1cmVzIGFyZSBpbnZvbHZl
ZCwgZHVlIHRvIGl0J3MgZHluYW1pYyBuYXR1cmUKKyogTW9yZSBpbXBvcnRhbnRseSwgYGByZXF1
ZXN0LmdldGZ1bmNhcmd2YWx1ZSgpYGAgY2Fubm90IGJlIGNvbWJpbmVkIHdpdGgKKyAgcGFyYW1l
dHJpemVkIGZpeHR1cmVzLCBzdWNoIGFzIGBgZXh0cmFfY29udGV4dGBgCisqIFRoaXMgaXMgdmVy
eSBpbmNvbnZlbmllbnQgaWYgeW91IHdpc2ggdG8gZXh0ZW5kIGFuIGV4aXN0aW5nIHRlc3Qgc3Vp
dGUgYnkKKyAgY2VydGFpbiBwYXJhbWV0ZXJzIGZvciBmaXh0dXJlcyB0aGF0IGFyZSBhbHJlYWR5
IHVzZWQgYnkgdGVzdHMKKworcHl0ZXN0IHZlcnNpb24gMy4wIHJlcG9ydHMgYW4gZXJyb3IgaWYg
eW91IHRyeSB0byBydW4gYWJvdmUgY29kZTo6CisKKyAgICBGYWlsZWQ6IFRoZSByZXF1ZXN0ZWQg
Zml4dHVyZSBoYXMgbm8gcGFyYW1ldGVyIGRlZmluZWQgZm9yIHRoZSBjdXJyZW50CisgICAgdGVz
dC4KKworICAgIFJlcXVlc3RlZCBmaXh0dXJlICdleHRyYV9jb250ZXh0JworCisKK1Byb3Bvc2Vk
IHNvbHV0aW9uCistLS0tLS0tLS0tLS0tLS0tLQorCitBIG5ldyBmdW5jdGlvbiB0aGF0IGNhbiBi
ZSB1c2VkIGluIG1vZHVsZXMgY2FuIGJlIHVzZWQgdG8gZHluYW1pY2FsbHkgZGVmaW5lCitmaXh0
dXJlcyBmcm9tIGV4aXN0aW5nIG9uZXMuCisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAg
IHB5dGVzdC5kZWZpbmVfY29tYmluZWRfZml4dHVyZSgKKyAgICAgICAgbmFtZT0nY29udGV4dCcs
CisgICAgICAgIGZpeHR1cmVzPVsnZGVmYXVsdF9jb250ZXh0JywgJ2V4dHJhX2NvbnRleHQnXSwK
KyAgICApCisKK1RoZSBuZXcgZml4dHVyZSBgYGNvbnRleHRgYCBpbmhlcml0cyB0aGUgc2NvcGUg
ZnJvbSB0aGUgdXNlZCBmaXh0dXJlcyBhbmQgeWllbGQKK3RoZSBmb2xsb3dpbmcgdmFsdWVzLgor
CistIGBge31gYAorCistIGBgeydhdXRob3InOiAnYWxpY2UnfWBgCisKKy0gYGB7J3Byb2plY3Rf
c2x1Zyc6ICdoZWxsb3dvcmxkJ31gYAorCistIGBgeydhdXRob3InOiAnYm9iJywgJ3Byb2plY3Rf
c2x1Zyc6ICdmb29iYXInfWBgCisKK0FsdGVybmF0aXZlIGFwcHJvYWNoCistLS0tLS0tLS0tLS0t
LS0tLS0tLQorCitBIG5ldyBoZWxwZXIgZnVuY3Rpb24gbmFtZWQgYGBmaXh0dXJlX3JlcXVlc3Rg
YCB3b3VsZCB0ZWxsIHB5dGVzdCB0byB5aWVsZAorYWxsIHBhcmFtZXRlcnMgbWFya2VkIGFzIGEg
Zml4dHVyZS4KKworLi4gbm90ZTo6CisKKyAgICBUaGUgYHB5dGVzdC1sYXp5LWZpeHR1cmUgPGh0
dHBzOi8vcHlwaS5weXRob24ub3JnL3B5cGkvcHl0ZXN0LWxhenktZml4dHVyZT5gXyBwbHVnaW4g
aW1wbGVtZW50cyBhIHZlcnkKKyAgICBzaW1pbGFyIHNvbHV0aW9uIHRvIHRoZSBwcm9wb3NhbCBi
ZWxvdywgbWFrZSBzdXJlIHRvIGNoZWNrIGl0IG91dC4KKworLi4gY29kZS1ibG9jazo6IHB5dGhv
bgorCisgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bCisgICAgICAgIHB5dGVzdC5maXh0dXJl
X3JlcXVlc3QoJ2RlZmF1bHRfY29udGV4dCcpLAorICAgICAgICBweXRlc3QuZml4dHVyZV9yZXF1
ZXN0KCdleHRyYV9jb250ZXh0JyksCisgICAgXSkKKyAgICBkZWYgY29udGV4dChyZXF1ZXN0KToK
KyAgICAgICAgIiIiUmV0dXJucyBhbGwgdmFsdWVzIGZvciBgYGRlZmF1bHRfY29udGV4dGBgLCBv
bmUtYnktb25lIGJlZm9yZSBpdAorICAgICAgICBkb2VzIHRoZSBzYW1lIGZvciBgYGV4dHJhX2Nv
bnRleHRgYC4KKworICAgICAgICByZXF1ZXN0LnBhcmFtOgorICAgICAgICAgICAgLSB7fQorICAg
ICAgICAgICAgLSB7J2F1dGhvcic6ICdhbGljZSd9CisgICAgICAgICAgICAtIHsncHJvamVjdF9z
bHVnJzogJ2hlbGxvd29ybGQnfQorICAgICAgICAgICAgLSB7J2F1dGhvcic6ICdib2InLCAncHJv
amVjdF9zbHVnJzogJ2Zvb2Jhcid9CisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gcmVxdWVz
dC5wYXJhbQorCitUaGUgc2FtZSBoZWxwZXIgY2FuIGJlIHVzZWQgaW4gY29tYmluYXRpb24gd2l0
aCBgYHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplYGAuCisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24K
KworCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAnY29udGV4dCwgZXhw
ZWN0ZWRfcmVzcG9uc2VfY29kZScsCisgICAgICAgIFsKKyAgICAgICAgICAgIChweXRlc3QuZml4
dHVyZV9yZXF1ZXN0KCdkZWZhdWx0X2NvbnRleHQnKSwgMCksCisgICAgICAgICAgICAocHl0ZXN0
LmZpeHR1cmVfcmVxdWVzdCgnZXh0cmFfY29udGV4dCcpLCAwKSwKKyAgICAgICAgXSwKKyAgICAp
CisgICAgZGVmIHRlc3RfZ2VuZXJhdGVfcHJvamVjdChjb29raWVzLCBjb250ZXh0LCBleGl0X2Nv
ZGUpOgorICAgICAgICAiIiJDYWxsIHRoZSBjb29raWVjdXR0ZXIgQVBJIHRvIGdlbmVyYXRlIGEg
bmV3IHByb2plY3QgZnJvbSBhCisgICAgICAgIHRlbXBsYXRlLgorICAgICAgICAiIiIKKyAgICAg
ICAgcmVzdWx0ID0gY29va2llcy5iYWtlKGV4dHJhX2NvbnRleHQ9Y29udGV4dCkKKworICAgICAg
ICBhc3NlcnQgcmVzdWx0LmV4aXRfY29kZSA9PSBleGl0X2NvZGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9wcm9wb3NhbHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vcHJvcG9zYWxzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkMWJjYjFiOGJmMGJiM2Fl
YTYwYmFkZTZjMmM1MGRhNWQzNTU1NzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vcHJvcG9zYWxzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTcgQEAKK1RoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRo
dWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9wcm9wb3NhbHMvcGFyYW1ldHJpemVfd2l0aF9maXh0dXJlcy5y
c3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9weXRlc3QuaW5pIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL3B5dGVzdC5pbmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzYwNDM2MDU2MWNjMmFlOTRiYzExNzE0
MGI0NDlmNzY2MjkyNzZlMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9w
eXRlc3QuaW5pCkBAIC0wLDAgKzEsMiBAQAorW3B5dGVzdF0KKyMganVzdCBkZWZpbmVkIHRvIHBy
ZXZlbnQgdGhlIHJvb3QgbGV2ZWwgdG94LmluaSBmcm9tIGtpY2tpbmcgaW4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9weXRob25wYXRoLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9w
eXRob25wYXRoLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNjQ3NDI3Njg4N2RiY2I3YTFhNGU3MjAxY2JjZTA4
MTc0ZDU0ZjRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3B5dGhvbnBh
dGgucnN0CkBAIC0wLDAgKzEsNzYgQEAKKy4uIF9weXRob25wYXRoOgorCitweXRlc3QgaW1wb3J0
IG1lY2hhbmlzbXMgYW5kIGBgc3lzLnBhdGhgYC9gYFBZVEhPTlBBVEhgYAorPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworSGVyZSdzIGEg
bGlzdCBvZiBzY2VuYXJpb3Mgd2hlcmUgcHl0ZXN0IG1heSBuZWVkIHRvIGNoYW5nZSBgYHN5cy5w
YXRoYGAgaW4gb3JkZXIKK3RvIGltcG9ydCB0ZXN0IG1vZHVsZXMgb3IgYGBjb25mdGVzdC5weWBg
IGZpbGVzLgorCitUZXN0IG1vZHVsZXMgLyBgYGNvbmZ0ZXN0LnB5YGAgZmlsZXMgaW5zaWRlIHBh
Y2thZ2VzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisKK0NvbnNpZGVyIHRoaXMgZmlsZSBhbmQgZGlyZWN0b3J5IGxheW91dDo6CisKKyAgICBy
b290LworICAgIHwtIGZvby8KKyAgICAgICB8LSBfX2luaXRfXy5weQorICAgICAgIHwtIGNvbmZ0
ZXN0LnB5CisgICAgICAgfC0gYmFyLworICAgICAgICAgIHwtIF9faW5pdF9fLnB5CisgICAgICAg
ICAgfC0gdGVzdHMvCisgICAgICAgICAgICAgfC0gX19pbml0X18ucHkKKyAgICAgICAgICAgICB8
LSB0ZXN0X2Zvby5weQorCisKK1doZW4gZXhlY3V0aW5nOjoKKworICAgIHB5dGVzdCByb290Lwor
CisKKworcHl0ZXN0IHdpbGwgZmluZCBgYGZvby9iYXIvdGVzdHMvdGVzdF9mb28ucHlgYCBhbmQg
cmVhbGl6ZSBpdCBpcyBwYXJ0IG9mIGEgcGFja2FnZSBnaXZlbiB0aGF0Cit0aGVyZSdzIGFuIGBg
X19pbml0X18ucHlgYCBmaWxlIGluIHRoZSBzYW1lIGZvbGRlci4gSXQgd2lsbCB0aGVuIHNlYXJj
aCB1cHdhcmRzIHVudGlsIGl0IGNhbiBmaW5kIHRoZQorbGFzdCBmb2xkZXIgd2hpY2ggc3RpbGwg
Y29udGFpbnMgYW4gYGBfX2luaXRfXy5weWBgIGZpbGUgaW4gb3JkZXIgdG8gZmluZCB0aGUgcGFj
a2FnZSAqcm9vdCogKGluCit0aGlzIGNhc2UgYGBmb28vYGApLiBUbyBsb2FkIHRoZSBtb2R1bGUs
IGl0IHdpbGwgaW5zZXJ0IGBgcm9vdC9gYCAgdG8gdGhlIGZyb250IG9mCitgYHN5cy5wYXRoYGAg
KGlmIG5vdCB0aGVyZSBhbHJlYWR5KSBpbiBvcmRlciB0byBsb2FkCitgYHRlc3RfZm9vLnB5YGAg
YXMgdGhlICptb2R1bGUqIGBgZm9vLmJhci50ZXN0cy50ZXN0X2Zvb2BgLgorCitUaGUgc2FtZSBs
b2dpYyBhcHBsaWVzIHRvIHRoZSBgYGNvbmZ0ZXN0LnB5YGAgZmlsZTogaXQgd2lsbCBiZSBpbXBv
cnRlZCBhcyBgYGZvby5jb25mdGVzdGBgIG1vZHVsZS4KKworUHJlc2VydmluZyB0aGUgZnVsbCBw
YWNrYWdlIG5hbWUgaXMgaW1wb3J0YW50IHdoZW4gdGVzdHMgbGl2ZSBpbiBhIHBhY2thZ2UgdG8g
YXZvaWQgcHJvYmxlbXMKK2FuZCBhbGxvdyB0ZXN0IG1vZHVsZXMgdG8gaGF2ZSBkdXBsaWNhdGVk
IG5hbWVzLiBUaGlzIGlzIGFsc28gZGlzY3Vzc2VkIGluIGRldGFpbHMgaW4KKzpyZWY6YHRlc3Qg
ZGlzY292ZXJ5YC4KKworU3RhbmRhbG9uZSB0ZXN0IG1vZHVsZXMgLyBgYGNvbmZ0ZXN0LnB5YGAg
ZmlsZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
K0NvbnNpZGVyIHRoaXMgZmlsZSBhbmQgZGlyZWN0b3J5IGxheW91dDo6CisKKyAgICByb290Lwor
ICAgIHwtIGZvby8KKyAgICAgICB8LSBjb25mdGVzdC5weQorICAgICAgIHwtIGJhci8KKyAgICAg
ICAgICB8LSB0ZXN0cy8KKyAgICAgICAgICAgICB8LSB0ZXN0X2Zvby5weQorCisKK1doZW4gZXhl
Y3V0aW5nOjoKKworICAgIHB5dGVzdCByb290LworCitweXRlc3Qgd2lsbCBmaW5kIGBgZm9vL2Jh
ci90ZXN0cy90ZXN0X2Zvby5weWBgIGFuZCByZWFsaXplIGl0IGlzIE5PVCBwYXJ0IG9mIGEgcGFj
a2FnZSBnaXZlbiB0aGF0Cit0aGVyZSdzIG5vIGBgX19pbml0X18ucHlgYCBmaWxlIGluIHRoZSBz
YW1lIGZvbGRlci4gSXQgd2lsbCB0aGVuIGFkZCBgYHJvb3QvZm9vL2Jhci90ZXN0c2BgIHRvCitg
YHN5cy5wYXRoYGAgaW4gb3JkZXIgdG8gaW1wb3J0IGBgdGVzdF9mb28ucHlgYCBhcyB0aGUgKm1v
ZHVsZSogYGB0ZXN0X2Zvb2BgLiBUaGUgc2FtZSBpcyBkb25lCit3aXRoIHRoZSBgYGNvbmZ0ZXN0
LnB5YGAgZmlsZSBieSBhZGRpbmcgYGByb290L2Zvb2BgIHRvIGBgc3lzLnBhdGhgYCB0byBpbXBv
cnQgaXQgYXMgYGBjb25mdGVzdGBgLgorCitGb3IgdGhpcyByZWFzb24gdGhpcyBsYXlvdXQgY2Fu
bm90IGhhdmUgdGVzdCBtb2R1bGVzIHdpdGggdGhlIHNhbWUgbmFtZSwgYXMgdGhleSBhbGwgd2ls
bCBiZQoraW1wb3J0ZWQgaW4gdGhlIGdsb2JhbCBpbXBvcnQgbmFtZXNwYWNlLgorCitUaGlzIGlz
IGFsc28gZGlzY3Vzc2VkIGluIGRldGFpbHMgaW4gOnJlZjpgdGVzdCBkaXNjb3ZlcnlgLgorCitJ
bnZva2luZyBgYHB5dGVzdGBgIHZlcnN1cyBgYHB5dGhvbiAtbSBweXRlc3RgYAorLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworUnVubmluZyBweXRlc3Qg
d2l0aCBgYHB5dGhvbiAtbSBweXRlc3QgWy4uLl1gYCBpbnN0ZWFkIG9mIGBgcHl0ZXN0IFsuLi5d
YGAgeWllbGRzIG5lYXJseQorZXF1aXZhbGVudCBiZWhhdmlvdXIsIGV4Y2VwdCB0aGF0IHRoZSBm
b3JtZXIgY2FsbCB3aWxsIGFkZCB0aGUgY3VycmVudCBkaXJlY3RvcnkgdG8gYGBzeXMucGF0aGBg
LgorU2VlIGFsc28gOnJlZjpgY21kbGluZWAuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vcmVjd2Fybi5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcmVjd2Fybi5yc3QKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTEzYWYwZDQ1MGVkM2M3MDE5YWMyY2M2YTlmZWM3M2FmOWExYzQ5NwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9yZWN3YXJuLnJzdApAQCAtMCwwICsxLDMgQEAKKzpv
cnBoYW46CisKK1RoaXMgcGFnZSBoYXMgYmVlbiBtb3ZlZCwgcGxlYXNlIHNlZSA6cmVmOmBhc3Nl
cnR3YXJuaW5nc2AuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcmVxdWlyZW1lbnRz
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9yZXF1aXJlbWVudHMudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcy
YmI2MGE4MTFmZjdiMWFiYTBlNWUzNGJjNWIxZTU5MTYxYjgwNmYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vcmVxdWlyZW1lbnRzLnR4dApAQCAtMCwwICsxLDMgQEAKKyMg
cGlubmluZyBzcGhpbnggdG8gMS40LiogZHVlIHRvIHNlYXJjaCBpc3N1ZXMgd2l0aCBydGQ6Cisj
IGh0dHBzOi8vZ2l0aHViLmNvbS9ydGZkL3JlYWR0aGVkb2NzLXNwaGlueC1leHQvaXNzdWVzLzI1
CitzcGhpbnggPT0xLjQuKgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3NraXBwaW5n
LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9za2lwcGluZy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2UwMDE5
MjliMjM3NTVmZGZhZmRhZDJhNTFkZGY5ZGJmNzlhNzliMwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9za2lwcGluZy5yc3QKQEAgLTAsMCArMSwzNzggQEAKKy4uIF9gc2tp
cCBhbmQgeGZhaWxgOgorCisuLiBfc2tpcHBpbmc6CisKK1NraXAgYW5kIHhmYWlsOiBkZWFsaW5n
IHdpdGggdGVzdHMgdGhhdCBjYW5ub3Qgc3VjY2VlZAorPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1lvdSBjYW4gbWFyayB0ZXN0IGZ1bmN0
aW9ucyB0aGF0IGNhbm5vdCBiZSBydW4gb24gY2VydGFpbiBwbGF0Zm9ybXMKK29yIHRoYXQgeW91
IGV4cGVjdCB0byBmYWlsIHNvIHB5dGVzdCBjYW4gZGVhbCB3aXRoIHRoZW0gYWNjb3JkaW5nbHkg
YW5kCitwcmVzZW50IGEgc3VtbWFyeSBvZiB0aGUgdGVzdCBzZXNzaW9uLCB3aGlsZSBrZWVwaW5n
IHRoZSB0ZXN0IHN1aXRlICpncmVlbiouCisKK0EgKipza2lwKiogbWVhbnMgdGhhdCB5b3UgZXhw
ZWN0IHlvdXIgdGVzdCB0byBwYXNzIG9ubHkgaWYgc29tZSBjb25kaXRpb25zIGFyZSBtZXQsCitv
dGhlcndpc2UgcHl0ZXN0IHNob3VsZCBza2lwIHJ1bm5pbmcgdGhlIHRlc3QgYWx0b2dldGhlci4g
Q29tbW9uIGV4YW1wbGVzIGFyZSBza2lwcGluZword2luZG93cy1vbmx5IHRlc3RzIG9uIG5vbi13
aW5kb3dzIHBsYXRmb3Jtcywgb3Igc2tpcHBpbmcgdGVzdHMgdGhhdCBkZXBlbmQgb24gYW4gZXh0
ZXJuYWwKK3Jlc291cmNlIHdoaWNoIGlzIG5vdCBhdmFpbGFibGUgYXQgdGhlIG1vbWVudCAoZm9y
IGV4YW1wbGUgYSBkYXRhYmFzZSkuCisKK0EgKip4ZmFpbCoqIG1lYW5zIHRoYXQgeW91IGV4cGVj
dCBhIHRlc3QgdG8gZmFpbCBmb3Igc29tZSByZWFzb24uCitBIGNvbW1vbiBleGFtcGxlIGlzIGEg
dGVzdCBmb3IgYSBmZWF0dXJlIG5vdCB5ZXQgaW1wbGVtZW50ZWQsIG9yIGEgYnVnIG5vdCB5ZXQg
Zml4ZWQuCitXaGVuIGEgdGVzdCBwYXNzZXMgZGVzcGl0ZSBiZWluZyBleHBlY3RlZCB0byBmYWls
IChtYXJrZWQgd2l0aCBgYHB5dGVzdC5tYXJrLnhmYWlsYGApLAoraXQncyBhbiAqKnhwYXNzKiog
YW5kIHdpbGwgYmUgcmVwb3J0ZWQgaW4gdGhlIHRlc3Qgc3VtbWFyeS4KKworYGBweXRlc3RgYCBj
b3VudHMgYW5kIGxpc3RzICpza2lwKiBhbmQgKnhmYWlsKiB0ZXN0cyBzZXBhcmF0ZWx5LiBEZXRh
aWxlZAoraW5mb3JtYXRpb24gYWJvdXQgc2tpcHBlZC94ZmFpbGVkIHRlc3RzIGlzIG5vdCBzaG93
biBieSBkZWZhdWx0IHRvIGF2b2lkCitjbHV0dGVyaW5nIHRoZSBvdXRwdXQuICBZb3UgY2FuIHVz
ZSB0aGUgYGAtcmBgIG9wdGlvbiB0byBzZWUgZGV0YWlscworY29ycmVzcG9uZGluZyB0byB0aGUg
InNob3J0IiBsZXR0ZXJzIHNob3duIGluIHRoZSB0ZXN0IHByb2dyZXNzOjoKKworICAgIHB5dGVz
dCAtcnhYcyAgIyBzaG93IGV4dHJhIGluZm8gb24geGZhaWxlZCwgeHBhc3NlZCwgYW5kIHNraXBw
ZWQgdGVzdHMKKworTW9yZSBkZXRhaWxzIG9uIHRoZSBgYC1yYGAgb3B0aW9uIGNhbiBiZSBmb3Vu
ZCBieSBydW5uaW5nIGBgcHl0ZXN0IC1oYGAuCisKKyhTZWUgOnJlZjpgaG93IHRvIGNoYW5nZSBj
b21tYW5kIGxpbmUgb3B0aW9ucyBkZWZhdWx0c2ApCisKKy4uIF9za2lwaWY6CisuLiBfc2tpcDoK
Ky4uIF9gY29uZGl0aW9uIGJvb2xlYW5zYDoKKworU2tpcHBpbmcgdGVzdCBmdW5jdGlvbnMKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIHZlcnNpb25hZGRlZDo6IDIuOQorCitUaGUgc2lt
cGxlc3Qgd2F5IHRvIHNraXAgYSB0ZXN0IGZ1bmN0aW9uIGlzIHRvIG1hcmsgaXQgd2l0aCB0aGUg
YGBza2lwYGAgZGVjb3JhdG9yCit3aGljaCBtYXkgYmUgcGFzc2VkIGFuIG9wdGlvbmFsIGBgcmVh
c29uYGA6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIEBweXRlc3QubWFyay5za2lw
KHJlYXNvbj0ibm8gd2F5IG9mIGN1cnJlbnRseSB0ZXN0aW5nIHRoaXMiKQorICAgIGRlZiB0ZXN0
X3RoZV91bmtub3duKCk6CisgICAgICAgIC4uLgorCisKK0FsdGVybmF0aXZlbHksIGl0IGlzIGFs
c28gcG9zc2libGUgdG8gc2tpcCBpbXBlcmF0aXZlbHkgZHVyaW5nIHRlc3QgZXhlY3V0aW9uIG9y
IHNldHVwCitieSBjYWxsaW5nIHRoZSBgYHB5dGVzdC5za2lwKHJlYXNvbilgYCBmdW5jdGlvbjoK
KworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgZGVmIHRlc3RfZnVuY3Rpb24oKToKKyAg
ICAgICAgaWYgbm90IHZhbGlkX2NvbmZpZygpOgorICAgICAgICAgICAgcHl0ZXN0LnNraXAoInVu
c3VwcG9ydGVkIGNvbmZpZ3VyYXRpb24iKQorCitJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIHNraXAg
dGhlIHdob2xlIG1vZHVsZSB1c2luZworYGBweXRlc3Quc2tpcChyZWFzb24sIGFsbG93X21vZHVs
ZV9sZXZlbD1UcnVlKWBgIGF0IHRoZSBtb2R1bGUgbGV2ZWw6CisKKy4uIGNvZGUtYmxvY2s6OiBw
eXRob24KKworICAgIGltcG9ydCBweXRlc3QKKworICAgIGlmIG5vdCBweXRlc3QuY29uZmlnLmdl
dG9wdGlvbigiLS1jdXN0b20tZmxhZyIpOgorICAgICAgICBweXRlc3Quc2tpcCgiLS1jdXN0b20t
ZmxhZyBpcyBtaXNzaW5nLCBza2lwcGluZyB0ZXN0cyIsIGFsbG93X21vZHVsZV9sZXZlbD1UcnVl
KQorCitUaGUgaW1wZXJhdGl2ZSBtZXRob2QgaXMgdXNlZnVsIHdoZW4gaXQgaXMgbm90IHBvc3Np
YmxlIHRvIGV2YWx1YXRlIHRoZSBza2lwIGNvbmRpdGlvbgorZHVyaW5nIGltcG9ydCB0aW1lLgor
CitgYHNraXBpZmBgCit+fn5+fn5+fn5+CisKKy4uIHZlcnNpb25hZGRlZDo6IDIuMAorCitJZiB5
b3Ugd2lzaCB0byBza2lwIHNvbWV0aGluZyBjb25kaXRpb25hbGx5IHRoZW4geW91IGNhbiB1c2Ug
YGBza2lwaWZgYCBpbnN0ZWFkLgorSGVyZSBpcyBhbiBleGFtcGxlIG9mIG1hcmtpbmcgYSB0ZXN0
IGZ1bmN0aW9uIHRvIGJlIHNraXBwZWQKK3doZW4gcnVuIG9uIGEgUHl0aG9uMy42IGludGVycHJl
dGVyOjoKKworICAgIGltcG9ydCBzeXMKKyAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKHN5cy52ZXJz
aW9uX2luZm8gPCAoMyw2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0icmVxdWly
ZXMgcHl0aG9uMy42IikKKyAgICBkZWYgdGVzdF9mdW5jdGlvbigpOgorICAgICAgICAuLi4KKwor
SWYgdGhlIGNvbmRpdGlvbiBldmFsdWF0ZXMgdG8gYGBUcnVlYGAgZHVyaW5nIGNvbGxlY3Rpb24s
IHRoZSB0ZXN0IGZ1bmN0aW9uIHdpbGwgYmUgc2tpcHBlZCwKK3dpdGggdGhlIHNwZWNpZmllZCBy
ZWFzb24gYXBwZWFyaW5nIGluIHRoZSBzdW1tYXJ5IHdoZW4gdXNpbmcgYGAtcnNgYC4KKworWW91
IGNhbiBzaGFyZSBgYHNraXBpZmBgIG1hcmtlcnMgYmV0d2VlbiBtb2R1bGVzLiAgQ29uc2lkZXIg
dGhpcyB0ZXN0IG1vZHVsZTo6CisKKyAgICAjIGNvbnRlbnQgb2YgdGVzdF9teW1vZHVsZS5weQor
ICAgIGltcG9ydCBteW1vZHVsZQorICAgIG1pbnZlcnNpb24gPSBweXRlc3QubWFyay5za2lwaWYo
bXltb2R1bGUuX192ZXJzaW9uaW5mb19fIDwgKDEsMSksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZWFzb249ImF0IGxlYXN0IG15bW9kdWxlLTEuMSByZXF1aXJlZCIpCisg
ICAgQG1pbnZlcnNpb24KKyAgICBkZWYgdGVzdF9mdW5jdGlvbigpOgorICAgICAgICAuLi4KKwor
WW91IGNhbiBpbXBvcnQgdGhlIG1hcmtlciBhbmQgcmV1c2UgaXQgaW4gYW5vdGhlciB0ZXN0IG1v
ZHVsZTo6CisKKyAgICAjIHRlc3RfbXlvdGhlcm1vZHVsZS5weQorICAgIGZyb20gdGVzdF9teW1v
ZHVsZSBpbXBvcnQgbWludmVyc2lvbgorCisgICAgQG1pbnZlcnNpb24KKyAgICBkZWYgdGVzdF9h
bm90aGVyZnVuY3Rpb24oKToKKyAgICAgICAgLi4uCisKK0ZvciBsYXJnZXIgdGVzdCBzdWl0ZXMg
aXQncyB1c3VhbGx5IGEgZ29vZCBpZGVhIHRvIGhhdmUgb25lIGZpbGUKK3doZXJlIHlvdSBkZWZp
bmUgdGhlIG1hcmtlcnMgd2hpY2ggeW91IHRoZW4gY29uc2lzdGVudGx5IGFwcGx5Cit0aHJvdWdo
b3V0IHlvdXIgdGVzdCBzdWl0ZS4KKworQWx0ZXJuYXRpdmVseSwgeW91IGNhbiB1c2UgOnJlZjpg
Y29uZGl0aW9uIHN0cmluZ3MKKzxzdHJpbmcgY29uZGl0aW9ucz5gIGluc3RlYWQgb2YgYm9vbGVh
bnMsIGJ1dCB0aGV5IGNhbid0IGJlIHNoYXJlZCBiZXR3ZWVuIG1vZHVsZXMgZWFzaWx5CitzbyB0
aGV5IGFyZSBzdXBwb3J0ZWQgbWFpbmx5IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHJlYXNv
bnMuCisKKworU2tpcCBhbGwgdGVzdCBmdW5jdGlvbnMgb2YgYSBjbGFzcyBvciBtb2R1bGUKK35+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKK1lvdSBjYW4gdXNl
IHRoZSBgYHNraXBpZmBgIG1hcmtlciAoYXMgYW55IG90aGVyIG1hcmtlcikgb24gY2xhc3Nlczo6
CisKKyAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInLAorICAg
ICAgICAgICAgICAgICAgICAgICAgcmVhc29uPSJkb2VzIG5vdCBydW4gb24gd2luZG93cyIpCisg
ICAgY2xhc3MgVGVzdFBvc2l4Q2FsbHMob2JqZWN0KToKKworICAgICAgICBkZWYgdGVzdF9mdW5j
dGlvbihzZWxmKToKKyAgICAgICAgICAgICJ3aWxsIG5vdCBiZSBzZXR1cCBvciBydW4gdW5kZXIg
J3dpbjMyJyBwbGF0Zm9ybSIKKworSWYgdGhlIGNvbmRpdGlvbiBpcyBgYFRydWVgYCwgdGhpcyBt
YXJrZXIgd2lsbCBwcm9kdWNlIGEgc2tpcCByZXN1bHQgZm9yCitlYWNoIG9mIHRoZSB0ZXN0IG1l
dGhvZHMgb2YgdGhhdCBjbGFzcy4KKworLi4gd2FybmluZzo6CisKKyAgIFRoZSB1c2Ugb2YgYGBz
a2lwaWZgYCBvbiBjbGFzc2VzIHRoYXQgdXNlIGluaGVyaXRhbmNlIGlzIHN0cm9uZ2x5CisgICBk
aXNjb3VyYWdlZC4gYEEgS25vd24gYnVnIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
eXRlc3QvaXNzdWVzLzU2OD5gXworICAgaW4gcHl0ZXN0J3MgbWFya2VycyBtYXkgY2F1c2UgdW5l
eHBlY3RlZCBiZWhhdmlvciBpbiBzdXBlciBjbGFzc2VzLgorCitJZiB5b3Ugd2FudCB0byBza2lw
IGFsbCB0ZXN0IGZ1bmN0aW9ucyBvZiBhIG1vZHVsZSwgeW91IG1heSB1c2UKK3RoZSBgYHB5dGVz
dG1hcmtgYCBuYW1lIG9uIHRoZSBnbG9iYWwgbGV2ZWw6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRo
b24KKworICAgICMgdGVzdF9tb2R1bGUucHkKKyAgICBweXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsu
c2tpcGlmKC4uLikKKworSWYgbXVsdGlwbGUgYGBza2lwaWZgYCBkZWNvcmF0b3JzIGFyZSBhcHBs
aWVkIHRvIGEgdGVzdCBmdW5jdGlvbiwgaXQKK3dpbGwgYmUgc2tpcHBlZCBpZiBhbnkgb2YgdGhl
IHNraXAgY29uZGl0aW9ucyBpcyB0cnVlLgorCisuLiBfYHdob2xlIGNsYXNzLSBvciBtb2R1bGUg
bGV2ZWxgOiBtYXJrLmh0bWwjc2NvcGVkLW1hcmtpbmcKKworCitTa2lwcGluZyBmaWxlcyBvciBk
aXJlY3Rvcmllcworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworU29tZXRpbWVzIHlv
dSBtYXkgbmVlZCB0byBza2lwIGFuIGVudGlyZSBmaWxlIG9yIGRpcmVjdG9yeSwgZm9yIGV4YW1w
bGUgaWYgdGhlCit0ZXN0cyByZWx5IG9uIFB5dGhvbiB2ZXJzaW9uLXNwZWNpZmljIGZlYXR1cmVz
IG9yIGNvbnRhaW4gY29kZSB0aGF0IHlvdSBkbyBub3QKK3dpc2ggcHl0ZXN0IHRvIHJ1bi4gSW4g
dGhpcyBjYXNlLCB5b3UgbXVzdCBleGNsdWRlIHRoZSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMKK2Zy
b20gY29sbGVjdGlvbi4gUmVmZXIgdG8gOnJlZjpgY3VzdG9taXppbmctdGVzdC1jb2xsZWN0aW9u
YCBmb3IgbW9yZQoraW5mb3JtYXRpb24uCisKKworU2tpcHBpbmcgb24gYSBtaXNzaW5nIGltcG9y
dCBkZXBlbmRlbmN5Cit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKwor
WW91IGNhbiB1c2UgdGhlIGZvbGxvd2luZyBoZWxwZXIgYXQgbW9kdWxlIGxldmVsCitvciB3aXRo
aW4gYSB0ZXN0IG9yIHRlc3Qgc2V0dXAgZnVuY3Rpb246OgorCisgICAgZG9jdXRpbHMgPSBweXRl
c3QuaW1wb3J0b3Jza2lwKCJkb2N1dGlscyIpCisKK0lmIGBgZG9jdXRpbHNgYCBjYW5ub3QgYmUg
aW1wb3J0ZWQgaGVyZSwgdGhpcyB3aWxsIGxlYWQgdG8gYQorc2tpcCBvdXRjb21lIG9mIHRoZSB0
ZXN0LiAgWW91IGNhbiBhbHNvIHNraXAgYmFzZWQgb24gdGhlCit2ZXJzaW9uIG51bWJlciBvZiBh
IGxpYnJhcnk6OgorCisgICAgZG9jdXRpbHMgPSBweXRlc3QuaW1wb3J0b3Jza2lwKCJkb2N1dGls
cyIsIG1pbnZlcnNpb249IjAuMyIpCisKK1RoZSB2ZXJzaW9uIHdpbGwgYmUgcmVhZCBmcm9tIHRo
ZSBzcGVjaWZpZWQKK21vZHVsZSdzIGBgX192ZXJzaW9uX19gYCBhdHRyaWJ1dGUuCisKK1N1bW1h
cnkKK35+fn5+fn4KKworSGVyZSdzIGEgcXVpY2sgZ3VpZGUgb24gaG93IHRvIHNraXAgdGVzdHMg
aW4gYSBtb2R1bGUgaW4gZGlmZmVyZW50IHNpdHVhdGlvbnM6CisKKzEuIFNraXAgYWxsIHRlc3Rz
IGluIGEgbW9kdWxlIHVuY29uZGl0aW9uYWxseToKKworICAuLiBjb2RlLWJsb2NrOjogcHl0aG9u
CisKKyAgICAgICAgcHl0ZXN0bWFyayA9IHB5dGVzdC5tYXJrLnNraXAoJ2FsbCB0ZXN0cyBzdGls
bCBXSVAnKQorCisyLiBTa2lwIGFsbCB0ZXN0cyBpbiBhIG1vZHVsZSBiYXNlZCBvbiBzb21lIGNv
bmRpdGlvbjoKKworICAuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAgICAgcHl0ZXN0bWFy
ayA9IHB5dGVzdC5tYXJrLnNraXBpZihzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJywgJ3Rlc3RzIGZv
ciBsaW51eCBvbmx5JykKKworMy4gU2tpcCBhbGwgdGVzdHMgaW4gYSBtb2R1bGUgaWYgc29tZSBp
bXBvcnQgaXMgbWlzc2luZzoKKworICAuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICAgICAg
cGV4cGVjdCA9IHB5dGVzdC5pbXBvcnRvcnNraXAoJ3BleHBlY3QnKQorCisKKy4uIF94ZmFpbDoK
KworWEZhaWw6IG1hcmsgdGVzdCBmdW5jdGlvbnMgYXMgZXhwZWN0ZWQgdG8gZmFpbAorLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitZb3UgY2FuIHVzZSB0
aGUgYGB4ZmFpbGBgIG1hcmtlciB0byBpbmRpY2F0ZSB0aGF0IHlvdQorZXhwZWN0IGEgdGVzdCB0
byBmYWlsOjoKKworICAgIEBweXRlc3QubWFyay54ZmFpbAorICAgIGRlZiB0ZXN0X2Z1bmN0aW9u
KCk6CisgICAgICAgIC4uLgorCitUaGlzIHRlc3Qgd2lsbCBiZSBydW4gYnV0IG5vIHRyYWNlYmFj
ayB3aWxsIGJlIHJlcG9ydGVkCit3aGVuIGl0IGZhaWxzLiBJbnN0ZWFkIHRlcm1pbmFsIHJlcG9y
dGluZyB3aWxsIGxpc3QgaXQgaW4gdGhlCisiZXhwZWN0ZWQgdG8gZmFpbCIgKGBgWEZBSUxgYCkg
b3IgInVuZXhwZWN0ZWRseSBwYXNzaW5nIiAoYGBYUEFTU2BgKSBzZWN0aW9ucy4KKworQWx0ZXJu
YXRpdmVseSwgeW91IGNhbiBhbHNvIG1hcmsgYSB0ZXN0IGFzIGBgWEZBSUxgYCBmcm9tIHdpdGhp
biBhIHRlc3Qgb3Igc2V0dXAgZnVuY3Rpb24KK2ltcGVyYXRpdmVseToKKworLi4gY29kZS1ibG9j
azo6IHB5dGhvbgorCisgICAgZGVmIHRlc3RfZnVuY3Rpb24oKToKKyAgICAgICAgaWYgbm90IHZh
bGlkX2NvbmZpZygpOgorICAgICAgICAgICAgcHl0ZXN0LnhmYWlsKCJmYWlsaW5nIGNvbmZpZ3Vy
YXRpb24gKGJ1dCBzaG91bGQgd29yaykiKQorCitUaGlzIHdpbGwgdW5jb25kaXRpb25hbGx5IG1h
a2UgYGB0ZXN0X2Z1bmN0aW9uYGAgYGBYRkFJTGBgLiBOb3RlIHRoYXQgbm8gb3RoZXIgY29kZSBp
cyBleGVjdXRlZAorYWZ0ZXIgYGBweXRlc3QueGZhaWxgYCBjYWxsLCBkaWZmZXJlbnRseSBmcm9t
IHRoZSBtYXJrZXIuIFRoYXQncyBiZWNhdXNlIGl0IGlzIGltcGxlbWVudGVkCitpbnRlcm5hbGx5
IGJ5IHJhaXNpbmcgYSBrbm93biBleGNlcHRpb24uCisKK0hlcmUncyB0aGUgc2lnbmF0dXJlIG9m
IHRoZSBgYHhmYWlsYGAgKiptYXJrZXIqKiAobm90IHRoZSBmdW5jdGlvbiksIHVzaW5nIFB5dGhv
biAzIGtleXdvcmQtb25seQorYXJndW1lbnRzIHN5bnRheDoKKworLi4gY29kZS1ibG9jazo6IHB5
dGhvbgorCisgICAgZGVmIHhmYWlsKGNvbmRpdGlvbj1Ob25lLCAqLCByZWFzb249Tm9uZSwgcmFp
c2VzPU5vbmUsIHJ1bj1UcnVlLCBzdHJpY3Q9RmFsc2UpOgorCisKKworCitgYHN0cmljdGBgIHBh
cmFtZXRlcgorfn5+fn5+fn5+fn5+fn5+fn5+fn4KKworLi4gdmVyc2lvbmFkZGVkOjogMi45CisK
K0JvdGggYGBYRkFJTGBgIGFuZCBgYFhQQVNTYGAgZG9uJ3QgZmFpbCB0aGUgdGVzdCBzdWl0ZSwg
dW5sZXNzIHRoZSBgYHN0cmljdGBgIGtleXdvcmQtb25seQorcGFyYW1ldGVyIGlzIHBhc3NlZCBh
cyBgYFRydWVgYDoKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgQHB5dGVzdC5tYXJr
LnhmYWlsKHN0cmljdD1UcnVlKQorICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKCk6CisgICAgICAgIC4u
LgorCisKK1RoaXMgd2lsbCBtYWtlIGBgWFBBU1NgYCAoInVuZXhwZWN0ZWRseSBwYXNzaW5nIikg
cmVzdWx0cyBmcm9tIHRoaXMgdGVzdCB0byBmYWlsIHRoZSB0ZXN0IHN1aXRlLgorCitZb3UgY2Fu
IGNoYW5nZSB0aGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgYGBzdHJpY3RgYCBwYXJhbWV0ZXIgdXNp
bmcgdGhlCitgYHhmYWlsX3N0cmljdGBgIGluaSBvcHRpb246CisKKy4uIGNvZGUtYmxvY2s6OiBp
bmkKKworICAgIFtweXRlc3RdCisgICAgeGZhaWxfc3RyaWN0PXRydWUKKworCitgYHJlYXNvbmBg
IHBhcmFtZXRlcgorfn5+fn5+fn5+fn5+fn5+fn5+fn4KKworQXMgd2l0aCBza2lwaWZfIHlvdSBj
YW4gYWxzbyBtYXJrIHlvdXIgZXhwZWN0YXRpb24gb2YgYSBmYWlsdXJlCitvbiBhIHBhcnRpY3Vs
YXIgcGxhdGZvcm06OgorCisgICAgQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uX2luZm8g
Pj0gKDMsNiksCisgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0icHl0aG9uMy42IGFwaSBj
aGFuZ2VzIikKKyAgICBkZWYgdGVzdF9mdW5jdGlvbigpOgorICAgICAgICAuLi4KKworCitgYHJh
aXNlc2BgIHBhcmFtZXRlcgorfn5+fn5+fn5+fn5+fn5+fn5+fn4KKworSWYgeW91IHdhbnQgdG8g
YmUgbW9yZSBzcGVjaWZpYyBhcyB0byB3aHkgdGhlIHRlc3QgaXMgZmFpbGluZywgeW91IGNhbiBz
cGVjaWZ5CithIHNpbmdsZSBleGNlcHRpb24sIG9yIGEgbGlzdCBvZiBleGNlcHRpb25zLCBpbiB0
aGUgYGByYWlzZXNgYCBhcmd1bWVudC4KKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAg
QHB5dGVzdC5tYXJrLnhmYWlsKHJhaXNlcz1SdW50aW1lRXJyb3IpCisgICAgZGVmIHRlc3RfZnVu
Y3Rpb24oKToKKyAgICAgICAgLi4uCisKK1RoZW4gdGhlIHRlc3Qgd2lsbCBiZSByZXBvcnRlZCBh
cyBhIHJlZ3VsYXIgZmFpbHVyZSBpZiBpdCBmYWlscyB3aXRoIGFuCitleGNlcHRpb24gbm90IG1l
bnRpb25lZCBpbiBgYHJhaXNlc2BgLgorCitgYHJ1bmBgIHBhcmFtZXRlcgorfn5+fn5+fn5+fn5+
fn5+fn4KKworSWYgYSB0ZXN0IHNob3VsZCBiZSBtYXJrZWQgYXMgeGZhaWwgYW5kIHJlcG9ydGVk
IGFzIHN1Y2ggYnV0IHNob3VsZCBub3QgYmUKK2V2ZW4gZXhlY3V0ZWQsIHVzZSB0aGUgYGBydW5g
YCBwYXJhbWV0ZXIgYXMgYGBGYWxzZWBgOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAg
ICBAcHl0ZXN0Lm1hcmsueGZhaWwocnVuPUZhbHNlKQorICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKCk6
CisgICAgICAgIC4uLgorCitUaGlzIGlzIHNwZWNpYWxseSB1c2VmdWwgZm9yIHhmYWlsaW5nIHRl
c3RzIHRoYXQgYXJlIGNyYXNoaW5nIHRoZSBpbnRlcnByZXRlciBhbmQgc2hvdWxkIGJlCitpbnZl
c3RpZ2F0ZWQgbGF0ZXIuCisKKworSWdub3JpbmcgeGZhaWwKK35+fn5+fn5+fn5+fn5+CisKK0J5
IHNwZWNpZnlpbmcgb24gdGhlIGNvbW1hbmRsaW5lOjoKKworICAgIHB5dGVzdCAtLXJ1bnhmYWls
CisKK3lvdSBjYW4gZm9yY2UgdGhlIHJ1bm5pbmcgYW5kIHJlcG9ydGluZyBvZiBhbiBgYHhmYWls
YGAgbWFya2VkIHRlc3QKK2FzIGlmIGl0IHdlcmVuJ3QgbWFya2VkIGF0IGFsbC4gVGhpcyBhbHNv
IGNhdXNlcyBgYHB5dGVzdC54ZmFpbGBgIHRvIHByb2R1Y2Ugbm8gZWZmZWN0LgorCitFeGFtcGxl
cworfn5+fn5+fn4KKworSGVyZSBpcyBhIHNpbXBsZSB0ZXN0IGZpbGUgd2l0aCB0aGUgc2V2ZXJh
bCB1c2FnZXM6CisKKy4uIGxpdGVyYWxpbmNsdWRlOjogZXhhbXBsZS94ZmFpbF9kZW1vLnB5CisK
K1J1bm5pbmcgaXQgd2l0aCB0aGUgcmVwb3J0LW9uLXhmYWlsIG9wdGlvbiBnaXZlcyB0aGlzIG91
dHB1dDo6CisKKyAgICBleGFtcGxlICQgcHl0ZXN0IC1yeCB4ZmFpbF9kZW1vLnB5CisgICAgPT09
PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PT09PT09PT09
PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxpbnV4IC0tIFB5dGhvbiAzLngueSwgcHl0
ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55CisgICAgcm9vdGRpcjogJFJFR0VORE9D
X1RNUERJUi9leGFtcGxlLCBpbmlmaWxlOgorICAgIGNvbGxlY3RlZCA3IGl0ZW1zCisgICAgCisg
ICAgeGZhaWxfZGVtby5weSB4eHh4eHh4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgWzEwMCVdCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PSBzaG9y
dCB0ZXN0IHN1bW1hcnkgaW5mbyA9PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIFhGQUlM
IHhmYWlsX2RlbW8ucHk6OnRlc3RfaGVsbG8KKyAgICBYRkFJTCB4ZmFpbF9kZW1vLnB5Ojp0ZXN0
X2hlbGxvMgorICAgICAgcmVhc29uOiBbTk9UUlVOXSAKKyAgICBYRkFJTCB4ZmFpbF9kZW1vLnB5
Ojp0ZXN0X2hlbGxvMworICAgICAgY29uZGl0aW9uOiBoYXNhdHRyKG9zLCAnc2VwJykKKyAgICBY
RkFJTCB4ZmFpbF9kZW1vLnB5Ojp0ZXN0X2hlbGxvNAorICAgICAgYnVnIDExMAorICAgIFhGQUlM
IHhmYWlsX2RlbW8ucHk6OnRlc3RfaGVsbG81CisgICAgICBjb25kaXRpb246IHB5dGVzdC5fX3Zl
cnNpb25fX1swXSAhPSAiMTciCisgICAgWEZBSUwgeGZhaWxfZGVtby5weTo6dGVzdF9oZWxsbzYK
KyAgICAgIHJlYXNvbjogcmVhc29uCisgICAgWEZBSUwgeGZhaWxfZGVtby5weTo6dGVzdF9oZWxs
bzcKKyAgICAKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT0gNyB4ZmFpbGVkIGluIDAuMTIg
c2Vjb25kcyA9PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIF9gc2tpcC94ZmFpbCB3aXRo
IHBhcmFtZXRyaXplYDoKKworU2tpcC94ZmFpbCB3aXRoIHBhcmFtZXRyaXplCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKworSXQgaXMgcG9zc2libGUgdG8gYXBwbHkgbWFya2VycyBsaWtl
IHNraXAgYW5kIHhmYWlsIHRvIGluZGl2aWR1YWwKK3Rlc3QgaW5zdGFuY2VzIHdoZW4gdXNpbmcg
cGFyYW1ldHJpemU6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGltcG9ydCBweXRl
c3QKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgoIm4iLCAiZXhwZWN0ZWQiKSwgWwor
ICAgICAgICAoMSwgMiksCisgICAgcHl0ZXN0LnBhcmFtKDEsIDAsIG1hcmtzPXB5dGVzdC5tYXJr
LnhmYWlsKSwKKwlweXRlc3QucGFyYW0oMSwgMywgbWFya3M9cHl0ZXN0Lm1hcmsueGZhaWwocmVh
c29uPSJzb21lIGJ1ZyIpKSwKKyAgICAgICAgKDIsIDMpLAorICAgICAgICAoMywgNCksCisgICAg
ICAgICg0LCA1KSwKKyAgICBweXRlc3QucGFyYW0oMTAsIDExLCBtYXJrcz1weXRlc3QubWFyay5z
a2lwaWYoc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCksIHJlYXNvbj0icHkyayIpKSwKKyAgICBd
KQorICAgIGRlZiB0ZXN0X2luY3JlbWVudChuLCBleHBlY3RlZCk6CisgICAgICAgIGFzc2VydCBu
ICsgMSA9PSBleHBlY3RlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3RhbGtzLnJz
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90YWxrcy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmY1OTNkYjRiNGIx
MDFiMTMyMjI4MzU5ODZkZWUyYWY2ZTQzNzMyYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi90YWxrcy5yc3QKQEAgLTAsMCArMSwxMDUgQEAKKworVGFsa3MgYW5kIFR1dG9y
aWFscworPT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4KKyAgIC4uIHNpZGViYXI6OiBO
ZXh0IE9wZW4gVHJhaW5pbmdzCisKKyAgICAgIGBQcm9mZXNzaW9uYWwgVGVzdGluZyB3aXRoIFB5
dGhvbgorICAgICAgPGh0dHA6Ly93d3cucHl0aG9uLWFjYWRlbXkuY29tL2NvdXJzZXMvc3BlY2lh
bHRvcGljcy9weXRob25fY291cnNlX3Rlc3RpbmcuaHRtbD5gXywKKyAgICAgIDI2LTI4IEFwcmls
IDIwMTcsIExlaXB6aWcsIEdlcm1hbnkuCisKKy4uIF9gZnVuY2FyZ3NgOiBmdW5jYXJncy5odG1s
CisKK0Jvb2tzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworLSBgUHl0aG9uIFRlc3Rpbmcgd2l0aCBweXRlc3QsIGJ5IEJyaWFuIE9ra2VuICgyMDE3KQor
ICA8aHR0cHM6Ly9wcmFncHJvZy5jb20vYm9vay9ib3B5dGVzdC9weXRob24tdGVzdGluZy13aXRo
LXB5dGVzdD5gXy4KKworVGFsa3MgYW5kIGJsb2cgcG9zdGluZ3MKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCistIGBQeXRob25pYyB0ZXN0aW5nLCBJZ29y
IFN0YXJpa292IChSdXNzaWFuLCBQeU5zaywgTm92ZW1iZXIgMjAxNikKKyAgPGh0dHBzOi8vd3d3
LnlvdXR1YmUuY29tL3dhdGNoP3Y9XzkybmZkZDVuSzg+YF8uCisKKy0gYHB5dGVzdCAtIFJhcGlk
IFNpbXBsZSBUZXN0aW5nLCBGbG9yaWFuIEJydWhpbiwgU3dpc3MgUHl0aG9uIFN1bW1pdCAyMDE2
CisgIDxodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PXJDQkhrUV9MVklzPmBfLgorCist
IGBJbXByb3ZlIHlvdXIgdGVzdGluZyB3aXRoIFB5dGVzdCBhbmQgTW9jaywgR2FiZSBIb2xsb21i
ZSwgUHlDb24gU0cgMjAxNQorICA8aHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1SY04y
Nmh6bm1rND5gXy4KKworLSBgSW50cm9kdWN0aW9uIHRvIHB5dGVzdCwgQW5kcmVhcyBQZWxtZSwg
RXVyb1B5dGhvbiAyMDE0CisgIDxodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PUxkVkpq
NjVpa1JZPmBfLgorCistIGBBZHZhbmNlZCBVc2VzIG9mIHB5LnRlc3QgRml4dHVyZXMsIEZsb3Jp
cyBCcnV5bm9vZ2hlLCBFdXJvUHl0aG9uCisgIDIwMTQgPGh0dHBzOi8vd3d3LnlvdXR1YmUuY29t
L3dhdGNoP3Y9SUJDX2R4ci00cHM+YF8uCisKKy0gYFdoeSBpIHVzZSBweS50ZXN0IGFuZCBtYXli
ZSB5b3Ugc2hvdWxkIHRvbywgQW5keSBUb2RkLCBQeWNvbiBBVSAyMDEzCisgIDxodHRwczovL3d3
dy55b3V0dWJlLmNvbS93YXRjaD92PVAtQWhwdWtESWlrPmBfCisKKy0gYDMtcGFydCBibG9nIHNl
cmllcyBhYm91dCBweXRlc3QgZnJvbSBAcHlkYW5ueSBhbGlhcyBEYW5pZWwgR3JlZW5mZWxkIChK
YW51YXJ5CisgIDIwMTQpIDxodHRwOi8vcHlkYW5ueS5jb20vcHl0ZXN0LW5vLWJvaWxlcnBsYXRl
LXRlc3RpbmcuaHRtbD5gXworCistIGBweXRlc3Q6IGhlbHBzIHlvdSB3cml0ZSBiZXR0ZXIgRGph
bmdvIGFwcHMsIEFuZHJlYXMgUGVsbWUsIERqYW5nb0NvbgorICBFdXJvcGUgMjAxNCA8aHR0cHM6
Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1hYUFyWVZoNlhTTT5gXy4KKworLSA6cmVmOmBmaXh0
dXJlc2AKKworLSBgVGVzdGluZyBEamFuZ28gQXBwbGljYXRpb25zIHdpdGggcHl0ZXN0LCBBbmRy
ZWFzIFBlbG1lLCBFdXJvUHl0aG9uCisgIDIwMTMgPGh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL3dh
dGNoP3Y9YVVmOEZrYjdUYVk+YF8uCisKKy0gYFRlc3RlcyBweXRob25pY3MgY29tIHB5LnRlc3Qs
IFZpbmljaXVzIEJlbGNoaW9yIEFzc2VmIE5ldG8sIFBsb25lCisgIENvbmYgMjAxMywgQnJhemls
IDxodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PVFVS29xMks3YmlzPmBfLgorCistIGBJ
bnRyb2R1Y3Rpb24gdG8gcHkudGVzdCBmaXh0dXJlcywgRk9TREVNIDIwMTMsIEZsb3JpcyBCcnV5
bm9vZ2hlCisgIDxodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PWJKaFJXNGVaTWNvPmBf
LgorCistIGBweXRlc3QgZmVhdHVyZSBhbmQgcmVsZWFzZSBoaWdobGlnaHRzLCBIb2xnZXIgS3Jl
a2VsIChHRVJNQU4sIE9jdG9iZXIgMjAxMykKKyAgPGh0dHA6Ly9weXZpZGVvLm9yZy92aWRlby8y
NDI5L3B5dGVzdC1mZWF0dXJlLWFuZC1uZXctcmVsZWFzZS1oaWdobGlnaHRzPmBfCisKKy0gYHB5
dGVzdCBpbnRyb2R1Y3Rpb24gZnJvbSBCcmlhbiBPa2tlbiAoSmFudWFyeSAyMDEzKQorICA8aHR0
cDovL3B5dGhvbnRlc3RpbmcubmV0L2ZyYW1ld29yay9weXRlc3QtaW50cm9kdWN0aW9uLz5gXwor
CistIHB5Y29uIGF1c3RyYWxpYSAyMDEyIHB5dGVzdCB0YWxrIGZyb20gQnJpYW5uYSBMYXVnaGVy
IChgdmlkZW8gPGh0dHA6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1EVE5lakU5RXJhST5gXywg
YHNsaWRlcyA8aHR0cDovL3d3dy5zbGlkZXNoYXJlLm5ldC9wZmN0ZGF5ZWxpc2UvZnVuY2FyZ3Mt
b3RoZXItZnVuLXdpdGgtcHl0ZXN0PmBfLCBgY29kZSA8aHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20v
MzM4Njk1MT5gXykKKy0gYHB5Y29uIDIwMTIgVVMgdGFsayB2aWRlbyBmcm9tIEhvbGdlciBLcmVr
ZWwgPGh0dHA6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj05TFZxQlFjRm15dz5gXworCistIGBt
b25rZXkgcGF0Y2hpbmcgZG9uZSByaWdodGBfIChibG9nIHBvc3QsIGNvbnN1bHQgYG1vbmtleXBh
dGNoIHBsdWdpbmBfIGZvciB1cC10by1kYXRlIEFQSSkKKworVGVzdCBwYXJhbWV0cml6YXRpb246
CisKKy0gYGdlbmVyYXRpbmcgcGFyYW1ldHJpemVkIHRlc3RzIHdpdGggZml4dHVyZXNgXy4KKy0g
YHRlc3QgZ2VuZXJhdG9ycyBhbmQgY2FjaGVkIHNldHVwYF8KKy0gYHBhcmFtZXRyaXppbmcgdGVz
dHMsIGdlbmVyYWxpemVkYF8gKGJsb2cgcG9zdCkKKy0gYHB1dHRpbmcgdGVzdC1ob29rcyBpbnRv
IGxvY2FsIG9yIGdsb2JhbCBwbHVnaW5zYF8gKGJsb2cgcG9zdCkKKworQXNzZXJ0aW9uIGludHJv
c3BlY3Rpb246CisKKy0gYCgwNy8yMDExKSBCZWhpbmQgdGhlIHNjZW5lcyBvZiBweXRlc3QncyBu
ZXcgYXNzZXJ0aW9uIHJld3JpdGluZworICA8aHR0cDovL3B5Yml0ZXMuYmxvZ3Nwb3QuY29tLzIw
MTEvMDcvYmVoaW5kLXNjZW5lcy1vZi1weXRlc3RzLW5ldy1hc3NlcnRpb24uaHRtbD5gXworCitE
aXN0cmlidXRlZCB0ZXN0aW5nOgorCistIGBzaW11bHRhbmVvdXNseSB0ZXN0IHlvdXIgY29kZSBv
biBhbGwgcGxhdGZvcm1zYF8gKGJsb2cgZW50cnkpCisKK1BsdWdpbiBzcGVjaWZpYyBleGFtcGxl
czoKKworLSBgc2tpcHBpbmcgc2xvdyB0ZXN0cyBieSBkZWZhdWx0IGluIHB5dGVzdGBfIChibG9n
IGVudHJ5KQorCistIGBtYW55IGV4YW1wbGVzIGluIHRoZSBkb2NzIGZvciBwbHVnaW5zYF8KKwor
Li4gX2Bza2lwcGluZyBzbG93IHRlc3RzIGJ5IGRlZmF1bHQgaW4gcHl0ZXN0YDogaHR0cDovL2Jy
dXlub29naGUuYmxvZ3Nwb3QuY29tLzIwMDkvMTIvc2tpcHBpbmctc2xvdy10ZXN0LWJ5LWRlZmF1
bHQtaW4tcHl0ZXN0Lmh0bWwKKy4uIF9gbWFueSBleGFtcGxlcyBpbiB0aGUgZG9jcyBmb3IgcGx1
Z2luc2A6IHBsdWdpbnMuaHRtbAorLi4gX2Btb25rZXlwYXRjaCBwbHVnaW5gOiBtb25rZXlwYXRj
aC5odG1sCisuLiBfYGFwcGxpY2F0aW9uIHNldHVwIGluIHRlc3QgZnVuY3Rpb25zIHdpdGggZml4
dHVyZXNgOiBmaXh0dXJlLmh0bWwjaW50ZXJkZXBlbmRlbnQtZml4dHVyZXMKKy4uIF9gc2ltdWx0
YW5lb3VzbHkgdGVzdCB5b3VyIGNvZGUgb24gYWxsIHBsYXRmb3Jtc2A6IGh0dHA6Ly90ZXRhbWFw
LndvcmRwcmVzcy5jb20vMjAwOS8wMy8yMy9uZXctc2ltdWx0YW5vdXNseS10ZXN0LXlvdXItY29k
ZS1vbi1hbGwtcGxhdGZvcm1zLworLi4gX2Btb25rZXkgcGF0Y2hpbmcgZG9uZSByaWdodGA6IGh0
dHA6Ly90ZXRhbWFwLndvcmRwcmVzcy5jb20vMjAwOS8wMy8wMy9tb25rZXlwYXRjaGluZy1pbi11
bml0LXRlc3RzLWRvbmUtcmlnaHQvCisuLiBfYHB1dHRpbmcgdGVzdC1ob29rcyBpbnRvIGxvY2Fs
IG9yIGdsb2JhbCBwbHVnaW5zYDogaHR0cDovL3RldGFtYXAud29yZHByZXNzLmNvbS8yMDA5LzA1
LzE0L3B1dHRpbmctdGVzdC1ob29rcy1pbnRvLWxvY2FsLWFuZC1nbG9iYWwtcGx1Z2lucy8KKy4u
IF9gcGFyYW1ldHJpemluZyB0ZXN0cywgZ2VuZXJhbGl6ZWRgOiBodHRwOi8vdGV0YW1hcC53b3Jk
cHJlc3MuY29tLzIwMDkvMDUvMTMvcGFyYW1ldHJpemluZy1weXRob24tdGVzdHMtZ2VuZXJhbGl6
ZWQvCisuLiBfYGdlbmVyYXRpbmcgcGFyYW1ldHJpemVkIHRlc3RzIHdpdGggZml4dHVyZXNgOiBw
YXJhbWV0cml6ZS5odG1sI3Rlc3QtZ2VuZXJhdG9ycworLi4gX2B0ZXN0IGdlbmVyYXRvcnMgYW5k
IGNhY2hlZCBzZXR1cGA6IGh0dHA6Ly9icnV5bm9vZ2hlLmJsb2dzcG90LmNvbS8yMDEwLzA2L3B5
dGVzdC10ZXN0LWdlbmVyYXRvcnMtYW5kLWNhY2hlZC1zZXR1cC5odG1sCisKKworCisKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvYXR0aWMucnN0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL3Rlc3QvYXR0aWMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2OTQ0NjYxY2I1Y2U3MTUwYWQ5ZGZm
ZTdlNTM5ZGRmMThkOGEwODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
dGVzdC9hdHRpYy5yc3QKQEAgLTAsMCArMSwxMTcgQEAKKz09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CitBVFRJQyBkb2N1bWVudGF0aW9uCis9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitYWFggUkVWSUVXIGFuZCBy
ZW1vdmUgdGhlIGJlbG93ICBYWFgKKworQ3VzdG9taXppbmcgdGhlIHRlc3RpbmcgcHJvY2Vzcwor
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCit3cml0aW5nIGNvbmZ0ZXN0LnB5IGZp
bGVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitZb3UgbWF5IHB1dCBj
b25mdGVzdC5weSBmaWxlcyBjb250YWluaW5nIHByb2plY3Qtc3BlY2lmaWMKK2NvbmZpZ3VyYXRp
b24gaW4geW91ciBwcm9qZWN0J3Mgcm9vdCBkaXJlY3RvcnksIGl0J3MgdXN1YWxseQorYmVzdCB0
byBwdXQgaXQganVzdCBpbnRvIHRoZSBzYW1lIGRpcmVjdG9yeSBsZXZlbCBhcyB5b3VyCit0b3Bt
b3N0IGBgX19pbml0X18ucHlgYC4gIEluIGZhY3QsIGBgcHl0ZXN0YGAgcGVyZm9ybXMKK2FuICJ1
cHdhcmRzIiBzZWFyY2ggc3RhcnRpbmcgZnJvbSB0aGUgZGlyZWN0b3J5IHRoYXQgeW91IHNwZWNp
ZnkKK3RvIGJlIHRlc3RlZCBhbmQgd2lsbCBsb29rdXAgY29uZmlndXJhdGlvbiB2YWx1ZXMgcmln
aHQtdG8tbGVmdC4KK1lvdSBtYXkgaGF2ZSBvcHRpb25zIHRoYXQgcmVzaWRlIGUuZy4gaW4geW91
ciBob21lIGRpcmVjdG9yeQorYnV0IG5vdGUgdGhhdCBwcm9qZWN0IHNwZWNpZmljIHNldHRpbmdz
IHdpbGwgYmUgY29uc2lkZXJlZAorZmlyc3QuICBUaGVyZSBpcyBhIGZsYWcgdGhhdCBoZWxwcyB5
b3UgZGVidWdnaW5nIHlvdXIKK2NvbmZ0ZXN0LnB5IGNvbmZpZ3VyYXRpb25zOjoKKworICAgIHB5
dGVzdCAtLXRyYWNlLWNvbmZpZworCisKK2N1c3RvbWl6aW5nIHRoZSBjb2xsZWN0aW5nIGFuZCBy
dW5uaW5nIHByb2Nlc3MKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKK1RvIGludHJvZHVjZSBkaWZmZXJlbnQgdGVzdCBpdGVtcyB5b3UgY2FuIGNyZWF0
ZQorb25lIG9yIG1vcmUgYGBjb25mdGVzdC5weWBgIGZpbGVzIGluIHlvdXIgcHJvamVjdC4KK1do
ZW4gdGhlIGNvbGxlY3Rpb24gcHJvY2VzcyB0cmF2ZXJzZXMgZGlyZWN0b3JpZXMKK2FuZCBtb2R1
bGVzIHRoZSBkZWZhdWx0IGNvbGxlY3RvcnMgd2lsbCBwcm9kdWNlCitjdXN0b20gQ29sbGVjdG9y
cyBhbmQgSXRlbXMgaWYgdGhleSBhcmUgZm91bmQKK2luIGEgbG9jYWwgYGBjb25mdGVzdC5weWBg
IGZpbGUuCisKKworQ3VzdG9taXppbmcgdGhlIGNvbGxlY3Rpb24gcHJvY2VzcyBpbiBhIG1vZHVs
ZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitJZiB5
b3UgaGF2ZSBhIG1vZHVsZSB3aGVyZSB5b3Ugd2FudCB0byB0YWtlIHJlc3BvbnNpYmlsaXR5IGZv
cgorY29sbGVjdGluZyB5b3VyIG93biB0ZXN0IEl0ZW1zIGFuZCBwb3NzaWJseSBldmVuIGZvciBl
eGVjdXRpbmcKK2EgdGVzdCB0aGVuIHlvdSBjYW4gcHJvdmlkZSBgZ2VuZXJhdGl2ZSB0ZXN0c2Bf
IHRoYXQgeWllbGQKK2NhbGxhYmxlcyBhbmQgcG9zc2libHkgYXJndW1lbnRzIGFzIGEgdHVwbGUu
ICAgVGhpcyBpcyBlc3BlY2lhbGx5Cit1c2VmdWwgZm9yIGNhbGxpbmcgYXBwbGljYXRpb24gdGVz
dCBtYWNoaW5lcnkgd2l0aCBkaWZmZXJlbnQKK3BhcmFtZXRlciBzZXRzIGJ1dCBjb3VudGluZyBl
YWNoIG9mIHRoZSBjYWxscyBhcyBhIHNlcGFyYXRlCit0ZXN0cy4KKworLi4gX2BnZW5lcmF0aXZl
IHRlc3RzYDogZmVhdHVyZXMuaHRtbCNnZW5lcmF0aXZlLXRlc3RzCisKK1RoZSBvdGhlciBleHRl
bnNpb24gcG9zc2liaWxpdHkgaXMgYWJvdXQKK3NwZWNpZnlpbmcgYSBjdXN0b20gdGVzdCBgYEl0
ZW1gYCBjbGFzcyB3aGljaAoraXMgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgdXAgYW5kIGV4ZWN1
dGluZyBhbiB1bmRlcmx5aW5nCit0ZXN0LiAgT3IgeW91IGNhbiBleHRlbmQgdGhlIGNvbGxlY3Rp
b24gcHJvY2VzcyBmb3IgYSB3aG9sZQorZGlyZWN0b3J5IHRyZWUgYnkgcHV0dGluZyBJdGVtcyBp
biBhIGBgY29uZnRlc3QucHlgYCBjb25maWd1cmF0aW9uIGZpbGUuCitUaGUgY29sbGVjdGlvbiBw
cm9jZXNzIGR5bmFtaWNhbGx5IGNvbnN1bHRzIHRoZSAqY2hhaW4gb2YgY29uZnRlc3QucHkqCitt
b2R1bGVzIHRvIGRldGVybWluZSBjb2xsZWN0b3JzIGFuZCBpdGVtcyBhdCBgYERpcmVjdG9yeWBg
LCBgYE1vZHVsZWBgLAorYGBDbGFzc2BgLCBgYEZ1bmN0aW9uYGAgb3IgYGBHZW5lcmF0b3JgYCBs
ZXZlbCByZXNwZWN0aXZlbHkuCisKK0N1c3RvbWl6aW5nIGV4ZWN1dGlvbiBvZiBJdGVtcyBhbmQg
RnVuY3Rpb25zCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKKy0gYGBweXRlc3QuRnVuY3Rpb25gYCB0ZXN0IGl0ZW1zIGNvbnRyb2wgZXhlY3V0
aW9uCisgIG9mIGEgdGVzdCBmdW5jdGlvbiB0aHJvdWdoIGl0cyBgYGZ1bmN0aW9uLnJ1bnRlc3Qo
KWBgIG1ldGhvZC4KKyAgVGhpcyBtZXRob2QgaXMgcmVzcG9uc2libGUgZm9yIHBlcmZvcm1pbmcg
c2V0dXAgYW5kIHRlYXJkb3duCisgICgiVGVzdCBGaXh0dXJlcyIpIGZvciBhIHRlc3QgRnVuY3Rp
b24uCisKKy0gYGBGdW5jdGlvbi5leGVjdXRlKHRhcmdldCwgKmFyZ3MpYGAgbWV0aG9kcyBhcmUg
aW52b2tlZCBieQorICB0aGUgZGVmYXVsdCBgYEZ1bmN0aW9uLnJ1bigpYGAgdG8gYWN0dWFsbHkg
ZXhlY3V0ZSBhIHB5dGhvbgorICBmdW5jdGlvbiB3aXRoIHRoZSBnaXZlbiAodXN1YWxseSBlbXB0
eSBzZXQgb2YpIGFyZ3VtZW50cy4KKworLi4gX2BweS1kZXYgbWFpbGluZyBsaXN0YDogaHR0cDov
L2NvZGVzcGVhay5uZXQvbWFpbG1hbi9saXN0aW5mby9weS1kZXYKKworCisuLiBfYHRlc3QgZ2Vu
ZXJhdG9yc2A6IGZ1bmNhcmdzLmh0bWwjdGVzdC1nZW5lcmF0b3JzCisKKy4uIF9gZ2VuZXJhdGl2
ZSB0ZXN0c2A6CisKK2dlbmVyYXRpdmUgdGVzdHM6IHlpZWxkaW5nIHBhcmFtZXRyaXplZCB0ZXN0
cworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor
CitEZXByZWNhdGVkIHNpbmNlIDEuMCBpbiBmYXZvdXIgb2YgYHRlc3QgZ2VuZXJhdG9yc2BfLgor
CisqR2VuZXJhdGl2ZSB0ZXN0cyogYXJlIHRlc3QgbWV0aG9kcyB0aGF0IGFyZSAqZ2VuZXJhdG9y
IGZ1bmN0aW9ucyogd2hpY2gKK2BgeWllbGRgYCBjYWxsYWJsZXMgYW5kIHRoZWlyIGFyZ3VtZW50
cy4gIFRoaXMgaXMgdXNlZnVsIGZvciBydW5uaW5nIGEKK3Rlc3QgZnVuY3Rpb24gbXVsdGlwbGUg
dGltZXMgYWdhaW5zdCBkaWZmZXJlbnQgcGFyYW1ldGVycy4gIEV4YW1wbGU6OgorCisgICAgZGVm
IHRlc3RfZ2VuZXJhdGl2ZSgpOgorICAgICAgICBmb3IgeCBpbiAoNDIsMTcsNDkpOgorICAgICAg
ICAgICAgeWllbGQgY2hlY2ssIHgKKworICAgIGRlZiBjaGVjayhhcmcpOgorICAgICAgICBhc3Nl
cnQgYXJnICUgNyA9PSAwICAgIyBzZWNvbmQgZ2VuZXJhdGVkIHRlc3RzIGZhaWxzIQorCitOb3Rl
IHRoYXQgYGB0ZXN0X2dlbmVyYXRpdmUoKWBgIHdpbGwgY2F1c2UgdGhyZWUgdGVzdHMKK3RvIGdl
dCBydW4sIG5vdGFibHkgYGBjaGVjayg0MilgYCwgYGBjaGVjaygxNylgYCBhbmQgYGBjaGVjayg0
OSlgYAorb2Ygd2hpY2ggdGhlIG1pZGRsZSBvbmUgd2lsbCBvYnZpb3VzbHkgZmFpbC4KKworVG8g
bWFrZSBpdCBlYXNpZXIgdG8gZGlzdGluZ3Vpc2ggdGhlIGdlbmVyYXRlZCB0ZXN0cyBpdCBpcyBw
b3NzaWJsZSB0byBzcGVjaWZ5IGFuIGV4cGxpY2l0IG5hbWUgZm9yIHRoZW0sIGxpa2UgZm9yIGV4
YW1wbGU6OgorCisgICAgZGVmIHRlc3RfZ2VuZXJhdGl2ZSgpOgorICAgICAgICBmb3IgeCBpbiAo
NDIsMTcsNDkpOgorICAgICAgICAgICAgeWllbGQgImNhc2UgJWQiICUgeCwgY2hlY2ssIHgKKwor
CitkaXNhYmxpbmcgYSB0ZXN0IGNsYXNzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0lmIHlv
dSB3YW50IHRvIGRpc2FibGUgYSBjb21wbGV0ZSB0ZXN0IGNsYXNzIHlvdQorY2FuIHNldCB0aGUg
Y2xhc3MtbGV2ZWwgYXR0cmlidXRlIGBgZGlzYWJsZWRgYC4KK0ZvciBleGFtcGxlLCBpbiBvcmRl
ciB0byBhdm9pZCBydW5uaW5nIHNvbWUgdGVzdHMgb24gV2luMzI6OgorCisgICAgY2xhc3MgVGVz
dFBvc2l4T25seShvYmplY3QpOgorICAgICAgICBkaXNhYmxlZCA9IHN5cy5wbGF0Zm9ybSA9PSAn
d2luMzInCisKKyAgICAgICAgZGVmIHRlc3RfeHh4KHNlbGYpOgorICAgICAgICAgICAgLi4uCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9jb25maWcuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi90ZXN0L2NvbmZpZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiYTVhNDZmOTgyZWFhMmE3
NzhjZjg2NWIwNTAzZDMwYzhhYWI4ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vdGVzdC9jb25maWcuaHRtbApAQCAtMCwwICsxLDE4IEBACis8aHRtbD4KKyAgICA8aGVh
ZD4KKyAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0icmVmcmVzaCIgY29udGVudD0iIDEgOyBVUkw9
Y3VzdG9taXplLmh0bWwiIC8+CisgICAgPC9oZWFkPgorCisgICAgPGJvZHk+Cis8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+Cit2YXIgZ2FKc0hvc3QgPSAoKCJodHRwczoiID09IGRvY3Vt
ZW50LmxvY2F0aW9uLnByb3RvY29sKSA/ICJodHRwczovL3NzbC4iIDogImh0dHA6Ly93d3cuIik7
Citkb2N1bWVudC53cml0ZSh1bmVzY2FwZSgiJTNDc2NyaXB0IHNyYz0nIiArIGdhSnNIb3N0ICsg
Imdvb2dsZS1hbmFseXRpY3MuY29tL2dhLmpzJyB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnJTNFJTND
L3NjcmlwdCUzRSIpKTsKKzwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
PgordHJ5IHsKK3ZhciBwYWdlVHJhY2tlciA9IF9nYXQuX2dldFRyYWNrZXIoIlVBLTc1OTcyNzQt
MyIpOworcGFnZVRyYWNrZXIuX3RyYWNrUGFnZXZpZXcoKTsKK30gY2F0Y2goZXJyKSB7fTwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgorICAgIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL3Rlc3QvZGlzdC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvZGlzdC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmUzMjg1NTBhODVjYjEwNTIxYWMyMTZiMjU5MWYyNjg5ZTQ2NGU5MTgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9kaXN0Lmh0bWwKQEAgLTAsMCAr
MSwxOCBAQAorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9InJl
ZnJlc2giIGNvbnRlbnQ9IiAxIDsgVVJMPXBsdWdpbi94ZGlzdC5odG1sIiAvPgorICAgIDwvaGVh
ZD4KKworICAgIDxib2R5PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgordmFyIGdh
SnNIb3N0ID0gKCgiaHR0cHM6IiA9PSBkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCkgPyAiaHR0
cHM6Ly9zc2wuIiA6ICJodHRwOi8vd3d3LiIpOworZG9jdW1lbnQud3JpdGUodW5lc2NhcGUoIiUz
Q3NjcmlwdCBzcmM9JyIgKyBnYUpzSG9zdCArICJnb29nbGUtYW5hbHl0aWNzLmNvbS9nYS5qcycg
dHlwZT0ndGV4dC9qYXZhc2NyaXB0JyUzRSUzQy9zY3JpcHQlM0UiKSk7Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KK3RyeSB7Cit2YXIgcGFnZVRyYWNrZXIgPSBf
Z2F0Ll9nZXRUcmFja2VyKCJVQS03NTk3Mjc0LTMiKTsKK3BhZ2VUcmFja2VyLl90cmFja1BhZ2V2
aWV3KCk7Cit9IGNhdGNoKGVycikge308L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKyAgICAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L2V4dGVuZC5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL3Rlc3QvZXh0ZW5kLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2JhNWE0NmY5ODJlYWEy
YTc3OGNmODY1YjA1MDNkMzBjOGFhYjhkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi90ZXN0L2V4dGVuZC5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzxodG1sPgorICAgIDxo
ZWFkPgorICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJyZWZyZXNoIiBjb250ZW50PSIgMSA7IFVS
TD1jdXN0b21pemUuaHRtbCIgLz4KKyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keT4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KK3ZhciBnYUpzSG9zdCA9ICgoImh0dHBzOiIgPT0gZG9j
dW1lbnQubG9jYXRpb24ucHJvdG9jb2wpID8gImh0dHBzOi8vc3NsLiIgOiAiaHR0cDovL3d3dy4i
KTsKK2RvY3VtZW50LndyaXRlKHVuZXNjYXBlKCIlM0NzY3JpcHQgc3JjPSciICsgZ2FKc0hvc3Qg
KyAiZ29vZ2xlLWFuYWx5dGljcy5jb20vZ2EuanMnIHR5cGU9J3RleHQvamF2YXNjcmlwdCclM0Ul
M0Mvc2NyaXB0JTNFIikpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCI+Cit0cnkgewordmFyIHBhZ2VUcmFja2VyID0gX2dhdC5fZ2V0VHJhY2tlcigiVUEtNzU5NzI3
NC0zIik7CitwYWdlVHJhY2tlci5fdHJhY2tQYWdldmlldygpOworfSBjYXRjaChlcnIpIHt9PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisgICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vdGVzdC9pbmRleC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9pbmRleC5yc3QK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMWEzYjVhNTRkYTA4YzY3MmMzYWY5NzJlNDdiZjdkNDZlODg2MWI1ZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L2luZGV4LnJzdApAQCAtMCww
ICsxLDM1IEBACis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK3B5dGVz
dCBkb2N1bWVudGF0aW9uIGluZGV4Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KKworCitmZWF0dXJlc186IG92ZXJ2aWV3IGFuZCBkaXNjdXNzaW9uIG9mIGZlYXR1cmVz
LgorCitxdWlja3N0YXJ0XzogZ2V0dGluZyBzdGFydGVkIHdpdGggd3JpdGluZyBhIHNpbXBsZSB0
ZXN0LgorCitgdGFsa3MsIHR1dG9yaWFscywgZXhhbXBsZXNgXzogdHV0b3JpYWwgZXhhbXBsZXMs
IHNsaWRlcworCitmdW5jYXJnc186IHBvd2VyZnVsIHBhcmFtZXRyaXplZCB0ZXN0IGZ1bmN0aW9u
IHNldHVwCisKK2BwbHVnaW5zYF86IGxpc3Qgb2YgYXZhaWxhYmxlIHBsdWdpbnMgd2l0aCB1c2Fn
ZSBleGFtcGxlcyBhbmQgZmVhdHVyZSBkZXRhaWxzLgorCitjdXN0b21pemVfOiBjb25maWd1cmF0
aW9uLCBjdXN0b21pemF0aW9uLCBleHRlbnNpb25zCisKK2NoYW5nZWxvZ186IGhpc3Rvcnkgb2Yg
Y2hhbmdlcyBjb3ZlcmluZyBsYXN0IHJlbGVhc2VzCisKKyoqQ29udGludW91cyBJbnRlZ3JhdGlv
biBvZiBweXRlc3QncyBvd24gdGVzdHMgYW5kIHBsdWdpbnMgd2l0aCBIdWRzb24qKjoKKworICAg
IGBodHRwOi8vaHVkc29uLnRlc3RydW4ub3JnL3ZpZXcvcHl0ZXN0YF8KKworLi4gX2BodHRwOi8v
aHVkc29uLnRlc3RydW4ub3JnL3ZpZXcvcHl0ZXN0YDogaHR0cDovL2h1ZHNvbi50ZXN0cnVuLm9y
Zy92aWV3L3B5dGVzdC8KKworCisuLiBfY2hhbmdlbG9nOiAuLi9jaGFuZ2Vsb2cuaHRtbAorLi4g
X2BwbHVnaW5zYDogcGx1Z2luL2luZGV4Lmh0bWwKKy4uIF9gdGFsa3MsIHR1dG9yaWFscywgZXhh
bXBsZXNgOiB0YWxrcy5odG1sCisuLiBfcXVpY2tzdGFydDogcXVpY2tzdGFydC5odG1sCisuLiBf
ZmVhdHVyZXM6IGZlYXR1cmVzLmh0bWwKKy4uIF9mdW5jYXJnczogZnVuY2FyZ3MuaHRtbAorLi4g
X2N1c3RvbWl6ZTogY3VzdG9taXplLmh0bWwKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vdGVzdC9taXNzaW9uLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L21pc3Npb24u
cnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjUxYzI1MmRjMGQ4NmE0YzQxNzUzZDY1NjE5ODMyMWFhOGQ5ZTMyNGQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9taXNzaW9uLnJzdApA
QCAtMCwwICsxLDEzIEBACisKK01pc3Npb24KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQorCitgYHB5dGVzdGBgIHN0cml2ZXMgdG8gbWFrZSB0ZXN0aW5nIGEgZnVuIGFuZCBu
by1ib2lsZXJwbGF0ZSBlZmZvcnQuCisKK1RoZSB0b29sIGlzIGRpc3RyaWJ1dGVkIGFzIGEgYHB5
dGVzdGAgcGFja2FnZS4gIEl0cyBwcm9qZWN0IGluZGVwZW5kZW50CitgYHB5dGVzdGBgIGNvbW1h
bmQgbGluZSB0b29sIGhlbHBzIHlvdSB0bzoKKworKiByYXBpZGx5IGNvbGxlY3QgYW5kIHJ1biB0
ZXN0cworKiBydW4gdW5pdC0gb3IgZG9jdGVzdHMsIGZ1bmN0aW9uYWwgb3IgaW50ZWdyYXRpb24g
dGVzdHMKKyogZGlzdHJpYnV0ZSB0ZXN0cyB0byBtdWx0aXBsZSBlbnZpcm9ubWVudHMKKyogdXNl
IGxvY2FsIG9yIGdsb2JhbCBwbHVnaW5zIGZvciBjdXN0b20gdGVzdCB0eXBlcyBhbmQgc2V0dXAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9jb3YucnN0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2Nvdi5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQxYzdlZjk0
NzkzNGVhNTZhYWY1MDIyOGQzMTI5NzU3NGI1YTU3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9jb3YucnN0CkBAIC0wLDAgKzEsMjMwIEBACisKK3By
b2R1Y2UgY29kZSBjb3ZlcmFnZSByZXBvcnRzIHVzaW5nIHRoZSAnY292ZXJhZ2UnIHBhY2thZ2Us
IGluY2x1ZGluZyBzdXBwb3J0IGZvciBkaXN0cmlidXRlZCB0ZXN0aW5nLgorPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKworLi4gY29udGVudHM6OgorICA6
bG9jYWw6CisKK1RoaXMgcGx1Z2luIHByb2R1Y2VzIGNvdmVyYWdlIHJlcG9ydHMuICBJdCBzdXBw
b3J0cyBjZW50cmFsaXNlZCB0ZXN0aW5nIGFuZCBkaXN0cmlidXRlZCB0ZXN0aW5nIGluCitib3Ro
IGxvYWQgYW5kIGVhY2ggbW9kZXMuICBJdCBhbHNvIHN1cHBvcnRzIGNvdmVyYWdlIG9mIHN1YnBy
b2Nlc3Nlcy4KKworQWxsIGZlYXR1cmVzIG9mZmVyZWQgYnkgdGhlIGNvdmVyYWdlIHBhY2thZ2Ug
c2hvdWxkIGJlIGF2YWlsYWJsZSwgZWl0aGVyIHRocm91Z2ggcHl0ZXN0LWNvdiBvcgordGhyb3Vn
aCBjb3ZlcmFnZSdzIGNvbmZpZyBmaWxlLgorCisKK0luc3RhbGxhdGlvbgorLS0tLS0tLS0tLS0t
CisKK1RoZSBgcHl0ZXN0LWNvdmBfIHBhY2thZ2UgbWF5IGJlIGluc3RhbGxlZCB3aXRoIHBpcCBv
ciBlYXN5X2luc3RhbGw6OgorCisgICAgcGlwIGluc3RhbGwgcHl0ZXN0LWNvdgorICAgIGVhc3lf
aW5zdGFsbCBweXRlc3QtY292CisKKy4uIF9gcHl0ZXN0LWNvdmA6IGh0dHA6Ly9weXBpLnB5dGhv
bi5vcmcvcHlwaS9weXRlc3QtY292LworCisKK1VuaW5zdGFsbGF0aW9uCistLS0tLS0tLS0tLS0t
LQorCitVbmluc3RhbGxpbmcgcGFja2FnZXMgaXMgc3VwcG9ydGVkIGJ5IHBpcDo6CisKKyAgICBw
aXAgdW5pbnN0YWxsIHB5dGVzdC1jb3YKKworSG93ZXZlciBlYXN5X2luc3RhbGwgZG9lcyBub3Qg
cHJvdmlkZSBhbiB1bmluc3RhbGwgZmFjaWxpdHkuCisKKy4uIElNUE9SVEFOVDo6CisKKyAgICBF
bnN1cmUgdGhhdCB5b3UgbWFudWFsbHkgZGVsZXRlIHRoZSBpbml0X2Nvdm1haW4ucHRoIGZpbGUg
aW4geW91cgorICAgIHNpdGUtcGFja2FnZXMgZGlyZWN0b3J5LgorCisgICAgVGhpcyBmaWxlIHN0
YXJ0cyBjb3ZlcmFnZSBjb2xsZWN0aW9uIG9mIHN1YnByb2Nlc3NlcyBpZiBhcHByb3ByaWF0ZSBk
dXJpbmcKKyAgICBzaXRlIGluaXRpYWxpemF0aW9uIGF0IHB5dGhvbiBzdGFydHVwLgorCisKK1Vz
YWdlCistLS0tLQorCitDZW50cmFsaXNlZCBUZXN0aW5nCit+fn5+fn5+fn5+fn5+fn5+fn5+CisK
K0NlbnRyYWxpc2VkIHRlc3Rpbmcgd2lsbCByZXBvcnQgb24gdGhlIGNvbWJpbmVkIGNvdmVyYWdl
IG9mIHRoZSBtYWluIHByb2Nlc3MgYW5kIGFsbCBvZiBpdCdzCitzdWJwcm9jZXNzZXMuCisKK1J1
bm5pbmcgY2VudHJhbGlzZWQgdGVzdGluZzo6CisKKyAgICBweXRlc3QgLS1jb3YgbXlwcm9qIHRl
c3RzLworCitTaG93cyBhIHRlcm1pbmFsIHJlcG9ydDo6CisKKyAgICAtLS0tLS0tLS0tLS0tLS0t
LS0tLSBjb3ZlcmFnZTogcGxhdGZvcm0gbGludXgyLCBweXRob24gMi42LjQtZmluYWwtMCAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKyAgICBOYW1lICAgICAgICAgICAgICAgICBTdG10cyAgIE1pc3Mg
IENvdmVyCisgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg
IG15cHJvai9fX2luaXRfXyAgICAgICAgICAyICAgICAgMCAgIDEwMCUKKyAgICBteXByb2ovbXlw
cm9qICAgICAgICAgIDI1NyAgICAgMTMgICAgOTQlCisgICAgbXlwcm9qL2ZlYXR1cmU0Mjg2ICAg
ICAgOTQgICAgICA3ICAgIDkyJQorICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKyAgICBUT1RBTCAgICAgICAgICAgICAgICAgIDM1MyAgICAgMjAgICAgOTQlCisK
KworRGlzdHJpYnV0ZWQgVGVzdGluZzogTG9hZAorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgor
CitEaXN0cmlidXRlZCB0ZXN0aW5nIHdpdGggZGlzdCBtb2RlIHNldCB0byBsb2FkIHdpbGwgcmVw
b3J0IG9uIHRoZSBjb21iaW5lZCBjb3ZlcmFnZSBvZiBhbGwgc2xhdmVzLgorVGhlIHNsYXZlcyBt
YXkgYmUgc3ByZWFkIG91dCBvdmVyIGFueSBudW1iZXIgb2YgaG9zdHMgYW5kIGVhY2ggc2xhdmUg
bWF5IGJlIGxvY2F0ZWQgYW55d2hlcmUgb24gdGhlCitmaWxlIHN5c3RlbS4gIEVhY2ggc2xhdmUg
d2lsbCBoYXZlIGl0J3Mgc3VicHJvY2Vzc2VzIG1lYXN1cmVkLgorCitSdW5uaW5nIGRpc3RyaWJ1
dGVkIHRlc3Rpbmcgd2l0aCBkaXN0IG1vZGUgc2V0IHRvIGxvYWQ6OgorCisgICAgcHl0ZXN0IC0t
Y292IG15cHJvaiAtbiAyIHRlc3RzLworCitTaG93cyBhIHRlcm1pbmFsIHJlcG9ydDo6CisKKyAg
ICAtLS0tLS0tLS0tLS0tLS0tLS0tLSBjb3ZlcmFnZTogcGxhdGZvcm0gbGludXgyLCBweXRob24g
Mi42LjQtZmluYWwtMCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBOYW1lICAgICAgICAgICAg
ICAgICBTdG10cyAgIE1pc3MgIENvdmVyCisgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorICAgIG15cHJvai9fX2luaXRfXyAgICAgICAgICAyICAgICAgMCAgIDEw
MCUKKyAgICBteXByb2ovbXlwcm9qICAgICAgICAgIDI1NyAgICAgMTMgICAgOTQlCisgICAgbXlw
cm9qL2ZlYXR1cmU0Mjg2ICAgICAgOTQgICAgICA3ICAgIDkyJQorICAgIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBUT1RBTCAgICAgICAgICAgICAgICAgIDM1
MyAgICAgMjAgICAgOTQlCisKKworQWdhaW4gYnV0IHNwcmVhZCBvdmVyIGRpZmZlcmVudCBob3N0
cyBhbmQgZGlmZmVyZW50IGRpcmVjdG9yaWVzOjoKKworICAgIHB5dGVzdCAtLWNvdiBteXByb2og
LS1kaXN0IGxvYWQKKyAgICAgICAgICAgIC0tdHggc3NoPW1lbWVkb3VnaEBob3N0MS8vY2hkaXI9
dGVzdGVudjEKKyAgICAgICAgICAgIC0tdHggc3NoPW1lbWVkb3VnaEBob3N0Mi8vY2hkaXI9L3Rt
cC90ZXN0ZW52Mi8vcHl0aG9uPS90bXAvZW52MS9iaW4vcHl0aG9uCisgICAgICAgICAgICAtLXJz
eW5jZGlyIG15cHJvaiAtLXJzeW5jZGlyIHRlc3RzIC0tcnN5bmMgZXhhbXBsZXMKKyAgICAgICAg
ICAgIHRlc3RzLworCitTaG93cyBhIHRlcm1pbmFsIHJlcG9ydDo6CisKKyAgICAtLS0tLS0tLS0t
LS0tLS0tLS0tLSBjb3ZlcmFnZTogcGxhdGZvcm0gbGludXgyLCBweXRob24gMi42LjQtZmluYWwt
MCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBOYW1lICAgICAgICAgICAgICAgICBTdG10cyAg
IE1pc3MgIENvdmVyCisgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorICAgIG15cHJvai9fX2luaXRfXyAgICAgICAgICAyICAgICAgMCAgIDEwMCUKKyAgICBteXBy
b2ovbXlwcm9qICAgICAgICAgIDI1NyAgICAgMTMgICAgOTQlCisgICAgbXlwcm9qL2ZlYXR1cmU0
Mjg2ICAgICAgOTQgICAgICA3ICAgIDkyJQorICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKyAgICBUT1RBTCAgICAgICAgICAgICAgICAgIDM1MyAgICAgMjAgICAg
OTQlCisKKworRGlzdHJpYnV0ZWQgVGVzdGluZzogRWFjaAorfn5+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+fgorCitEaXN0cmlidXRlZCB0ZXN0aW5nIHdpdGggZGlzdCBtb2RlIHNldCB0byBlYWNoIHdp
bGwgcmVwb3J0IG9uIHRoZSBjb21iaW5lZCBjb3ZlcmFnZSBvZiBhbGwgc2xhdmVzLgorU2luY2Ug
ZWFjaCBzbGF2ZSBpcyBydW5uaW5nIGFsbCB0ZXN0cyB0aGlzIGFsbG93cyBnZW5lcmF0aW5nIGEg
Y29tYmluZWQgY292ZXJhZ2UgcmVwb3J0IGZvciBtdWx0aXBsZQorZW52aXJvbm1lbnRzLgorCitS
dW5uaW5nIGRpc3RyaWJ1dGVkIHRlc3Rpbmcgd2l0aCBkaXN0IG1vZGUgc2V0IHRvIGVhY2g6Ogor
CisgICAgcHl0ZXN0IC0tY292IG15cHJvaiAtLWRpc3QgZWFjaAorICAgICAgICAgICAgLS10eCBw
b3Blbi8vY2hkaXI9L3RtcC90ZXN0ZW52My8vcHl0aG9uPS91c3IvbG9jYWwvcHl0aG9uMjcvYmlu
L3B5dGhvbgorICAgICAgICAgICAgLS10eCBzc2g9bWVtZWRvdWdoQGhvc3QyLy9jaGRpcj0vdG1w
L3Rlc3RlbnY0Ly9weXRob249L3RtcC9lbnYyL2Jpbi9weXRob24KKyAgICAgICAgICAgIC0tcnN5
bmNkaXIgbXlwcm9qIC0tcnN5bmNkaXIgdGVzdHMgLS1yc3luYyBleGFtcGxlcworICAgICAgICAg
ICAgdGVzdHMvCisKK1Nob3dzIGEgdGVybWluYWwgcmVwb3J0OjoKKworICAgIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gY292ZXJhZ2UgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxh
dGZvcm0gbGludXgyLCBweXRob24gMi42LjUtZmluYWwtMAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGxhdGZvcm0gbGludXgyLCBweXRob24gMi43LjAtZmluYWwtMAorICAgIE5hbWUg
ICAgICAgICAgICAgICAgIFN0bXRzICAgTWlzcyAgQ292ZXIKKyAgICAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgbXlwcm9qL19faW5pdF9fICAgICAgICAgIDIg
ICAgICAwICAgMTAwJQorICAgIG15cHJvai9teXByb2ogICAgICAgICAgMjU3ICAgICAxMyAgICA5
NCUKKyAgICBteXByb2ovZmVhdHVyZTQyODYgICAgICA5NCAgICAgIDcgICAgOTIlCisgICAgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIFRPVEFMICAgICAgICAg
ICAgICAgICAgMzUzICAgICAyMCAgICA5NCUKKworCitSZXBvcnRpbmcKKy0tLS0tLS0tLQorCitJ
dCBpcyBwb3NzaWJsZSB0byBnZW5lcmF0ZSBhbnkgY29tYmluYXRpb24gb2YgdGhlIHJlcG9ydHMg
Zm9yIGEgc2luZ2xlIHRlc3QgcnVuLgorCitUaGUgYXZhaWxhYmxlIHJlcG9ydHMgYXJlIHRlcm1p
bmFsICh3aXRoIG9yIHdpdGhvdXQgbWlzc2luZyBsaW5lIG51bWJlcnMgc2hvd24pLCBIVE1MLCBY
TUwgYW5kCithbm5vdGF0ZWQgc291cmNlIGNvZGUuCisKK1RoZSB0ZXJtaW5hbCByZXBvcnQgd2l0
aG91dCBsaW5lIG51bWJlcnMgKGRlZmF1bHQpOjoKKworICAgIHB5dGVzdCAtLWNvdi1yZXBvcnQg
dGVybSAtLWNvdiBteXByb2ogdGVzdHMvCisKKyAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLSBjb3Zl
cmFnZTogcGxhdGZvcm0gbGludXgyLCBweXRob24gMi42LjQtZmluYWwtMCAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKyAgICBOYW1lICAgICAgICAgICAgICAgICBTdG10cyAgIE1pc3MgIENvdmVyCisg
ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIG15cHJvai9f
X2luaXRfXyAgICAgICAgICAyICAgICAgMCAgIDEwMCUKKyAgICBteXByb2ovbXlwcm9qICAgICAg
ICAgIDI1NyAgICAgMTMgICAgOTQlCisgICAgbXlwcm9qL2ZlYXR1cmU0Mjg2ICAgICAgOTQgICAg
ICA3ICAgIDkyJQorICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KyAgICBUT1RBTCAgICAgICAgICAgICAgICAgIDM1MyAgICAgMjAgICAgOTQlCisKKworVGhlIHRl
cm1pbmFsIHJlcG9ydCB3aXRoIGxpbmUgbnVtYmVyczo6CisKKyAgICBweXRlc3QgLS1jb3YtcmVw
b3J0IHRlcm0tbWlzc2luZyAtLWNvdiBteXByb2ogdGVzdHMvCisKKyAgICAtLS0tLS0tLS0tLS0t
LS0tLS0tLSBjb3ZlcmFnZTogcGxhdGZvcm0gbGludXgyLCBweXRob24gMi42LjQtZmluYWwtMCAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICBOYW1lICAgICAgICAgICAgICAgICBTdG10cyAgIE1p
c3MgIENvdmVyICAgTWlzc2luZworICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgbXlwcm9qL19faW5pdF9fICAgICAgICAgIDIgICAgICAw
ICAgMTAwJQorICAgIG15cHJvai9teXByb2ogICAgICAgICAgMjU3ICAgICAxMyAgICA5NCUgICAy
NC0yNiwgOTksIDE0OSwgMjMzLTIzNiwgMjk3LTI5OCwgMzY5LTM3MAorICAgIG15cHJvai9mZWF0
dXJlNDI4NiAgICAgIDk0ICAgICAgNyAgICA5MiUgICAxODMtMTg4LCAxOTcKKyAgICAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIFRPVEFMICAg
ICAgICAgICAgICAgICAgMzUzICAgICAyMCAgICA5NCUKKworCitUaGUgcmVtYWluaW5nIHRocmVl
IHJlcG9ydHMgb3V0cHV0IHRvIGZpbGVzIHdpdGhvdXQgc2hvd2luZyBhbnl0aGluZyBvbiB0aGUg
dGVybWluYWwgKHVzZWZ1bCBmb3IKK3doZW4gdGhlIG91dHB1dCBpcyBnb2luZyB0byBhIGNvbnRp
bnVvdXMgaW50ZWdyYXRpb24gc2VydmVyKTo6CisKKyAgICBweXRlc3QgLS1jb3YtcmVwb3J0IGh0
bWwgLS1jb3YtcmVwb3J0IHhtbCAtLWNvdi1yZXBvcnQgYW5ub3RhdGUgLS1jb3YgbXlwcm9qIHRl
c3RzLworCisKK0NvdmVyYWdlIERhdGEgRmlsZQorLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZSBk
YXRhIGZpbGUgaXMgZXJhc2VkIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGVzdGluZyB0byBlbnN1cmUg
Y2xlYW4gZGF0YSBmb3IgZWFjaCB0ZXN0IHJ1bi4KKworVGhlIGRhdGEgZmlsZSBpcyBsZWZ0IGF0
IHRoZSBlbmQgb2YgdGVzdGluZyBzbyB0aGF0IGl0IGlzIHBvc3NpYmxlIHRvIHVzZSBub3JtYWwg
Y292ZXJhZ2UgdG9vbHMgdG8KK2V4YW1pbmUgaXQuCisKKworTGltaXRhdGlvbnMKKy0tLS0tLS0t
LS0tCisKK0ZvciBkaXN0cmlidXRlZCB0ZXN0aW5nIHRoZSBzbGF2ZXMgbXVzdCBoYXZlIHRoZSBw
eXRlc3QtY292IHBhY2thZ2UgaW5zdGFsbGVkLiAgVGhpcyBpcyBuZWVkZWQgc2luY2UKK3RoZSBw
bHVnaW4gbXVzdCBiZSByZWdpc3RlcmVkIHRocm91Z2ggc2V0dXB0b29scyAvIGRpc3RyaWJ1dGUg
Zm9yIHB5dGVzdCB0byBzdGFydCB0aGUgcGx1Z2luIG9uIHRoZQorc2xhdmUuCisKK0ZvciBzdWJw
cm9jZXNzIG1lYXN1cmVtZW50IGVudmlyb25tZW50IHZhcmlhYmxlcyBtdXN0IG1ha2UgaXQgZnJv
bSB0aGUgbWFpbiBwcm9jZXNzIHRvIHRoZQorc3VicHJvY2Vzcy4gIFRoZSBweXRob24gdXNlZCBi
eSB0aGUgc3VicHJvY2VzcyBtdXN0IGhhdmUgcHl0ZXN0LWNvdiBpbnN0YWxsZWQuICBUaGUgc3Vi
cHJvY2VzcyBtdXN0CitkbyBub3JtYWwgc2l0ZSBpbml0aWFsaXphdGlvbiBzbyB0aGF0IHRoZSBl
bnZpcm9ubWVudCB2YXJpYWJsZXMgY2FuIGJlIGRldGVjdGVkIGFuZCBjb3ZlcmFnZQorc3RhcnRl
ZC4KKworCitBY2tub3dsZWRnbWVudHMKKy0tLS0tLS0tLS0tLS0tLS0KKworSG9sZ2VyIEtyZWtl
bCBmb3IgcHl0ZXN0IHdpdGggaXRzIGRpc3RyaWJ1dGVkIHRlc3Rpbmcgc3VwcG9ydC4KKworTmVk
IEJhdGNoZWxkZXIgZm9yIGNvdmVyYWdlIGFuZCBpdHMgYWJpbGl0eSB0byBjb21iaW5lIHRoZSBj
b3ZlcmFnZSByZXN1bHRzIG9mIHBhcmFsbGVsIHJ1bnMuCisKK1doaWxzdCB0aGlzIHBsdWdpbiBo
YXMgYmVlbiBidWlsdCBmcmVzaCBmcm9tIHRoZSBncm91bmQgdXAgdG8gc3VwcG9ydCBkaXN0cmli
dXRlZCB0ZXN0aW5nIGl0IGhhcworYmVlbiBpbmZsdWVuY2VkIGJ5IHRoZSB3b3JrIGRvbmUgb24g
cHl0ZXN0LWNvdmVyYWdlIChSb3NzIExhd2xleSwgSmFtZXMgTWlsbHMsIEhvbGdlciBLcmVrZWwp
IGFuZAorbm9zZS1jb3ZlciAoSmFzb24gUGVsbGVyaW4pIHdoaWNoIGFyZSBvdGhlciBjb3ZlcmFn
ZSBwbHVnaW5zIGZvciBweXRlc3QgYW5kIG5vc2UgcmVzcGVjdGl2ZWx5LgorCitObyBkb3VidCBv
dGhlcnMgaGF2ZSBjb250cmlidXRlZCB0byB0aGVzZSB0b29scyBhcyB3ZWxsLgorCitjb21tYW5k
IGxpbmUgb3B0aW9ucworLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworCitgYC0tY292PXBhdGhgYAor
ICAgIG1lYXN1cmUgY292ZXJhZ2UgZm9yIGZpbGVzeXN0ZW0gcGF0aCAobXVsdGktYWxsb3dlZCkK
K2BgLS1jb3YtcmVwb3J0PXR5cGVgYAorICAgIHR5cGUgb2YgcmVwb3J0IHRvIGdlbmVyYXRlOiB0
ZXJtLCB0ZXJtLW1pc3NpbmcsIGFubm90YXRlLCBodG1sLCB4bWwgKG11bHRpLWFsbG93ZWQpCitg
YC0tY292LWNvbmZpZz1wYXRoYGAKKyAgICBjb25maWcgZmlsZSBmb3IgY292ZXJhZ2UsIGRlZmF1
bHQ6IC5jb3ZlcmFnZXJjCisKKy4uIGluY2x1ZGU6OiBsaW5rcy50eHQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9jb3ZlcmFnZS5yc3QgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vdGVzdC9wbHVnaW4vY292ZXJhZ2UucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxMTM5ZDAwOGJhMDIw
YTdmN2I2OTZhMjNjODQyYzNmNTMzZGRjNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vdGVzdC9wbHVnaW4vY292ZXJhZ2UucnN0CkBAIC0wLDAgKzEsNTEgQEAKKworV3Jp
dGUgYW5kIHJlcG9ydCBjb3ZlcmFnZSBkYXRhIHdpdGggdGhlICdjb3ZlcmFnZScgcGFja2FnZS4K
Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CisKKworLi4gY29udGVudHM6OgorICA6bG9jYWw6CisKK05vdGU6IE9yaWdpbmFsIGNvZGUg
YnkgUm9zcyBMYXdsZXkuIAorCitJbnN0YWxsCistLS0tLS0tLS0tLS0tLQorCitVc2UgcGlwIHRv
ICh1bilpbnN0YWxsOjoKKworICAgIHBpcCBpbnN0YWxsIHB5dGVzdC1jb3ZlcmFnZSAKKyAgICBw
aXAgdW5pbnN0YWxsIHB5dGVzdC1jb3ZlcmFnZSAKKworb3IgYWx0ZXJuYXRpdmVseSB1c2UgZWFz
eV9pbnN0YWxsIHRvIGluc3RhbGw6OgorCisgICAgZWFzeV9pbnN0YWxsIHB5dGVzdC1jb3ZlcmFn
ZSAKKworCitVc2FnZSAKKy0tLS0tLS0tLS0tLS0KKworVG8gZ2V0IGZ1bGwgdGVzdCBjb3ZlcmFn
ZSByZXBvcnRzIGZvciBhIHBhcnRpY3VsYXIgcGFja2FnZSB0eXBlOjoKKworICAgIHB5dGVzdCAt
LWNvdmVyLXJlcG9ydD1yZXBvcnQKKworY29tbWFuZCBsaW5lIG9wdGlvbnMKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKKworYGAtLWNvdmVyPUNPVkVSUEFDS0FHRVNgYAorICAgIChtdWx0aSBhbGxv
d2VkKSBvbmx5IGluY2x1ZGUgaW5mbyBmcm9tIHNwZWNpZmllZCBwYWNrYWdlLgorYGAtLWNvdmVy
LXJlcG9ydD1SRVBPUlRfVFlQRWBgCisgICAgaHRtbDogRGlyZWN0b3J5IGZvciBodG1sIG91dHB1
dC4KKyAgICAgICAgICAgICAgICAgICAgcmVwb3J0OiBPdXRwdXQgYSB0ZXh0IHJlcG9ydC4KKyAg
ICAgICAgICAgICAgICAgICAgYW5ub3RhdGU6IEFubm90YXRlIHlvdXIgc291cmNlIGNvZGUgZm9y
IHdoaWNoIGxpbmVzIHdlcmUgZXhlY3V0ZWQgYW5kIHdoaWNoIHdlcmUgbm90LgorICAgICAgICAg
ICAgICAgICAgICB4bWw6IE91dHB1dCBhbiB4bWwgcmVwb3J0IGNvbXBhdGlibGUgd2l0aCB0aGUg
Y29iZXJ0dXJhIHBsdWdpbiBmb3IgaHVkc29uLgorYGAtLWNvdmVyLWRpcmVjdG9yeT1ESVJFQ1RP
UllgYAorICAgIERpcmVjdG9yeSBmb3IgdGhlIHJlcG9ydHMgKGh0bWwgLyBhbm5vdGF0ZSByZXN1
bHRzKSBkZWZhdWx0cyB0byAuL2NvdmVyYWdlCitgYC0tY292ZXIteG1sLWZpbGU9WE1MX0ZJTEVg
YAorICAgIEZpbGUgZm9yIHRoZSB4bWwgcmVwb3J0IGRlZmF1bHRzIHRvIC4vY292ZXJhZ2UueG1s
CitgYC0tY292ZXItc2hvdy1taXNzaW5nYGAKKyAgICBTaG93IG1pc3NpbmcgZmlsZXMKK2BgLS1j
b3Zlci1pZ25vcmUtZXJyb3JzPUlHTk9SRV9FUlJPUlNgYAorICAgIElnbm9yZSBlcnJvcnMgb2Yg
ZmluZGluZyBzb3VyY2UgZmlsZXMgZm9yIGNvZGUuCisKKy4uIGluY2x1ZGU6OiBsaW5rcy50eHQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9kamFuZ28ucnN0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2RqYW5nby5yc3QKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDYx
NDk3YjM4NWVkZTU4NDlmYzRiZTI2YzM5ZTY1OGVjNzFiMTM5ZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9kamFuZ28ucnN0CkBAIC0wLDAgKzEsNyBA
QAorcHl0ZXN0X2RqYW5nbyBwbHVnaW4gKEVYVEVSTkFMKQorPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CisKK3B5dGVzdF9kamFuZ28gaXMgYSBwbHVnaW4gZm9yIGBg
cHl0ZXN0YGAgdGhhdCBwcm92aWRlcyBhIHNldCBvZiB1c2VmdWwgdG9vbHMgZm9yIHRlc3Rpbmcg
RGphbmdvIGFwcGxpY2F0aW9ucywgY2hlY2tvdXQgQmVuIEZpcnNobWFuJ3MgYHB5dGVzdF9kamFu
Z28gZ2l0aHViIHBhZ2VgXy4KKworLi4gX2BweXRlc3RfZGphbmdvIGdpdGh1YiBwYWdlYDogaHR0
cDovL2dpdGh1Yi5jb20vYmZpcnNoL3B5dGVzdF9kamFuZ28vdHJlZS9tYXN0ZXIKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2ZpZ2xlYWYucnN0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2ZpZ2xlYWYucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjMTYwM2Fk
ZTlmYzNkZjE3YjgyMjE4MmQ4ZjM1NzliMmI2Yzg3ODcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vZmlnbGVhZi5yc3QKQEAgLTAsMCArMSw0NCBAQAor
CityZXBvcnQgdGVzdCBjb3ZlcmFnZSB1c2luZyB0aGUgJ2ZpZ2xlYWYnIHBhY2thZ2UuCis9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKworLi4gY29u
dGVudHM6OgorICA6bG9jYWw6CisKK0luc3RhbGwKKy0tLS0tLS0tLS0tLS0tLQorCitUbyBpbnN0
YWxsIHRoZSBwbHVnaW4gaXNzdWU6OgorCisgICAgZWFzeV9pbnN0YWxsIHB5dGVzdC1maWdsZWFm
ICAjIG9yCisgICAgcGlwIGluc3RhbGwgcHl0ZXN0LWZpZ2xlYWYgICAKKworYW5kIGlmIHlvdSBh
cmUgdXNpbmcgcGlwIHlvdSBjYW4gYWxzbyB1bmluc3RhbGw6OgorCisgICAgcGlwIHVuaW5zdGFs
bCBweXRlc3QtZmlnbGVhZgorCisKK1VzYWdlCistLS0tLS0tLS0tLS0tLS0KKworQWZ0ZXIgaW5z
dGFsbGF0aW9uIHlvdSBjYW4gc2ltcGx5IHR5cGU6OgorCisgICAgcHl0ZXN0IC0tZmlnbGVhZiBb
Li4uXQorCit0byBlbmFibGUgZmlnbGVhZiBjb3ZlcmFnZSBpbiB5b3VyIHRlc3QgcnVuLiAgQSBk
ZWZhdWx0ICIuZmlnbGVhZiIgZGF0YSBmaWxlCithbmQgImh0bWwiIGRpcmVjdG9yeSB3aWxsIGJl
IGNyZWF0ZWQuICBZb3UgY2FuIHVzZSBjb21tYW5kIGxpbmUgb3B0aW9ucwordG8gY29udHJvbCB3
aGVyZSBkYXRhIGFuZCBodG1sIGZpbGVzIGFyZSBjcmVhdGVkLgorCitjb21tYW5kIGxpbmUgb3B0
aW9ucworLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworCitgYC0tZmlnbGVhZmBgCisgICAgdHJhY2Ug
cHl0aG9uIGNvdmVyYWdlIHdpdGggZmlnbGVhZiBhbmQgd3JpdGUgSFRNTCBmb3IgZmlsZXMgYmVs
b3cgdGhlIGN1cnJlbnQgd29ya2luZyBkaXIKK2BgLS1maWctZGF0YT1kaXJgYAorICAgIHNldCB0
cmFjaW5nIGZpbGUsIGRlZmF1bHQ6ICIuZmlnbGVhZiIuCitgYC0tZmlnLWh0bWw9ZGlyYGAKKyAg
ICBzZXQgaHRtbCByZXBvcnRpbmcgZGlyLCBkZWZhdWx0ICJodG1sIi4KKworLi4gaW5jbHVkZTo6
IGxpbmtzLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2hl
bHBjb25maWcucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2hlbHBjb25maWcu
cnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjMyNmI3NWM0NTUyZTE0MmFhOWRmYTU1YmFmMTY2NzA0NmQ3MTEzNjAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vaGVscGNv
bmZpZy5yc3QKQEAgLTAsMCArMSwzNiBAQAorCitwcm92aWRlIHZlcnNpb24gaW5mbywgY29uZnRl
c3QvZW52aXJvbm1lbnQgY29uZmlnIG5hbWVzLgorPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworCisuLiBjb250ZW50czo6CisgIDpsb2Nh
bDoKKworCisKK2NvbW1hbmQgbGluZSBvcHRpb25zCistLS0tLS0tLS0tLS0tLS0tLS0tLQorCisK
K2BgLS12ZXJzaW9uYGAKKyAgICBkaXNwbGF5IHB5IGxpYiB2ZXJzaW9uIGFuZCBpbXBvcnQgaW5m
b3JtYXRpb24uCitgYC1wIG5hbWVgYAorICAgIGVhcmx5LWxvYWQgZ2l2ZW4gcGx1Z2luIChtdWx0
aS1hbGxvd2VkKS4KK2BgLS10cmFjZS1jb25maWdgYAorICAgIHRyYWNlIGNvbnNpZGVyYXRpb25z
IG9mIGNvbmZ0ZXN0LnB5IGZpbGVzLgorYGAtLWRlYnVnYGAKKyAgICBnZW5lcmF0ZSBhbmQgc2hv
dyBpbnRlcm5hbCBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24uCitgYC0taGVscC1jb25maWdgYAorICAg
IHNob3cgYXZhaWxhYmxlIGNvbmZ0ZXN0LnB5IGFuZCBFTlYtdmFyaWFibGUgbmFtZXMuCisKK1N0
YXJ0IGltcHJvdmluZyB0aGlzIHBsdWdpbiBpbiAzMCBzZWNvbmRzCis9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQorCisKKzEuIERvd25sb2FkIGBweXRlc3RfaGVscGNv
bmZpZy5weWBfIHBsdWdpbiBzb3VyY2UgY29kZQorMi4gcHV0IGl0IHNvbWV3aGVyZSBhcyBgYHB5
dGVzdF9oZWxwY29uZmlnLnB5YGAgaW50byB5b3VyIGltcG9ydCBwYXRoCiszLiBhIHN1YnNlcXVl
bnQgYGBweXRlc3RgYCBydW4gd2lsbCB1c2UgeW91ciBsb2NhbCB2ZXJzaW9uCisKK0NoZWNrb3V0
IGN1c3RvbWl6ZV8sIG90aGVyIHBsdWdpbnNfIG9yIGBnZXQgaW4gY29udGFjdGBfLgorCisuLiBp
bmNsdWRlOjogbGlua3MudHh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9w
bHVnaW4vaW5kZXgucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2luZGV4LnJz
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44NTNhNGRjZTY4MWM4ZjZiYmVjMWY3MTc1OWUxMmJlOTU5MDE2ZTJiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2luZGV4LnJz
dApAQCAtMCwwICsxLDY4IEBACisKK2FkdmFuY2VkIHB5dGhvbiB0ZXN0aW5nCis9PT09PT09PT09
PT09PT09PT09PT09PQorCitza2lwcGluZ18gYWR2YW5jZWQgc2tpcHBpbmcgZm9yIHB5dGhvbiB0
ZXN0IGZ1bmN0aW9ucywgY2xhc3NlcyBvciBtb2R1bGVzLgorCittYXJrXyBnZW5lcmljIG1lY2hh
bmlzbSBmb3IgbWFya2luZyBweXRob24gZnVuY3Rpb25zLgorCitwZGJfIGludGVyYWN0aXZlIGRl
YnVnZ2luZyB3aXRoIHRoZSBQeXRob24gRGVidWdnZXIuCisKK2ZpZ2xlYWZfIChleHRlcm5hbCkg
cmVwb3J0IHRlc3QgY292ZXJhZ2UgdXNpbmcgdGhlICdmaWdsZWFmJyBwYWNrYWdlLgorCittb25r
ZXlwYXRjaF8gc2FmZWx5IHBhdGNoIG9iamVjdCBhdHRyaWJ1dGVzLCBkaWN0cyBhbmQgZW52aXJv
bm1lbnQgdmFyaWFibGVzLgorCitjb3ZlcmFnZV8gKGV4dGVybmFsKSBXcml0ZSBhbmQgcmVwb3J0
IGNvdmVyYWdlIGRhdGEgd2l0aCB0aGUgJ2NvdmVyYWdlJyBwYWNrYWdlLgorCitjb3ZfIChleHRl
cm5hbCkgcHJvZHVjZSBjb2RlIGNvdmVyYWdlIHJlcG9ydHMgdXNpbmcgdGhlICdjb3ZlcmFnZScg
cGFja2FnZSwgaW5jbHVkaW5nIHN1cHBvcnQgZm9yIGRpc3RyaWJ1dGVkIHRlc3RpbmcuCisKK2Nh
cHR1cmVfIGNvbmZpZ3VyYWJsZSBwZXItdGVzdCBzdGRvdXQvc3RkZXJyIGNhcHR1cmluZyBtZWNo
YW5pc21zLgorCitjYXB0dXJlbG9nXyAoZXh0ZXJuYWwpIGNhcHR1cmUgb3V0cHV0IG9mIGxvZ2dp
bmcgbW9kdWxlLgorCityZWN3YXJuXyBoZWxwZXJzIGZvciBhc3NlcnRpbmcgZGVwcmVjYXRpb24g
YW5kIG90aGVyIHdhcm5pbmdzLgorCit0bXBkaXJfIHByb3ZpZGUgdGVtcG9yYXJ5IGRpcmVjdG9y
aWVzIHRvIHRlc3QgZnVuY3Rpb25zLgorCisKK2Rpc3RyaWJ1dGVkIHRlc3RpbmcsIENJIGFuZCBk
ZXBsb3ltZW50Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCit4ZGlz
dF8gKGV4dGVybmFsKSBsb29wIG9uIGZhaWxpbmcgdGVzdHMsIGRpc3RyaWJ1dGUgdGVzdCBydW5z
IHRvIENQVXMgYW5kIGhvc3RzLgorCitwYXN0ZWJpbl8gc3VibWl0IGZhaWx1cmUgb3IgdGVzdCBz
ZXNzaW9uIGluZm9ybWF0aW9uIHRvIGEgcGFzdGViaW4gc2VydmljZS4KKworanVuaXR4bWxfIGxv
Z2dpbmcgb2YgdGVzdCByZXN1bHRzIGluIEpVbml0LVhNTCBmb3JtYXQsIGZvciB1c2Ugd2l0aCBI
dWRzb24KKworcmVzdWx0bG9nXyBub24teG1sIG1hY2hpbmUtcmVhZGFibGUgbG9nZ2luZyBvZiB0
ZXN0IHJlc3VsdHMuCisKK2dlbnNjcmlwdF8gZ2VuZXJhdGUgc3RhbmRhbG9uZSB0ZXN0IHNjcmlw
dCB0byBiZSBkaXN0cmlidXRlZCBhbG9uZyB3aXRoIGFuIGFwcGxpY2F0aW9uLgorCisKK3Rlc3Rp
bmcgZG9tYWlucyBhbmQgY29udmVudGlvbnMgY29kZWNoZWNrZXJzCis9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitvZWpza2l0XyAoZXh0ZXJuYWwpIHJ1biBq
YXZhc2NyaXB0IHRlc3RzIGluIHJlYWwgbGlmZSBicm93c2VycworCitkamFuZ29fIChleHRlcm5h
bCkgZm9yIHRlc3RpbmcgZGphbmdvIGFwcGxpY2F0aW9ucworCit1bml0dGVzdF8gYXV0b21hdGlj
YWxseSBkaXNjb3ZlciBhbmQgcnVuIHRyYWRpdGlvbmFsICJ1bml0dGVzdC5weSIgc3R5bGUgdGVz
dHMuCisKK25vc2VfIG5vc2UtY29tcGF0aWJpbGl0eSBwbHVnaW46IGFsbG93IHRvIHJ1biBub3Nl
IHRlc3Qgc3VpdGVzIG5hdGl2ZWx5LgorCitkb2N0ZXN0XyBjb2xsZWN0IGFuZCBleGVjdXRlIGRv
Y3Rlc3RzIGZyb20gbW9kdWxlcyBhbmQgdGVzdCBmaWxlcy4KKworcmVzdGRvY18gcGVyZm9ybSBS
ZVNUIHN5bnRheCwgbG9jYWwgYW5kIHJlbW90ZSByZWZlcmVuY2UgdGVzdHMgb24gLnJzdC8udHh0
IGZpbGVzLgorCisKK2ludGVybmFsLCBkZWJ1Z2dpbmcsIGhlbHAgZnVuY3Rpb25hbGl0eQorPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK2hlbHBjb25maWdfIHByb3Zp
ZGUgdmVyc2lvbiBpbmZvLCBjb25mdGVzdC9lbnZpcm9ubWVudCBjb25maWcgbmFtZXMuCisKK3Rl
cm1pbmFsXyBJbXBsZW1lbnRzIHRlcm1pbmFsIHJlcG9ydGluZyBvZiB0aGUgZnVsbCB0ZXN0aW5n
IHByb2Nlc3MuCisKK2hvb2tsb2dfIGxvZyBpbnZvY2F0aW9ucyBvZiBleHRlbnNpb24gaG9va3Mg
dG8gYSBmaWxlLgorCisKKy4uIGluY2x1ZGU6OiBsaW5rcy50eHQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9saW5rcy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
dGVzdC9wbHVnaW4vbGlua3MucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkZWMyYjQ4NDhhNjllNWViODA1Njg1
ODljYzNmOTllMmRkZDJlMzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
dGVzdC9wbHVnaW4vbGlua3MucnN0CkBAIC0wLDAgKzEsNDUgQEAKKy4uIF9gaGVscGNvbmZpZ2A6
IGhlbHBjb25maWcuaHRtbAorLi4gX2BweXRlc3RfcmVjd2Fybi5weWA6IGh0dHA6Ly9iaXRidWNr
ZXQub3JnL2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVzdF9yZWN3YXJu
LnB5CisuLiBfYHVuaXR0ZXN0YDogdW5pdHRlc3QuaHRtbAorLi4gX2BweXRlc3RfbW9ua2V5cGF0
Y2gucHlgOiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQvcHkv
X3BsdWdpbi9weXRlc3RfbW9ua2V5cGF0Y2gucHkKKy4uIF9gcGFzdGViaW5gOiBwYXN0ZWJpbi5o
dG1sCisuLiBfYHNraXBwaW5nYDogc2tpcHBpbmcuaHRtbAorLi4gX2BwbHVnaW5zYDogaW5kZXgu
aHRtbAorLi4gX2BtYXJrYDogbWFyay5odG1sCisuLiBfYHRtcGRpcmA6IHRtcGRpci5odG1sCisu
LiBfYHB5dGVzdF9kb2N0ZXN0LnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1
bmsvcmF3LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0X2RvY3Rlc3QucHkKKy4uIF9gY2FwdHVyZWA6
IGNhcHR1cmUuaHRtbAorLi4gX2BweXRlc3Rfbm9zZS5weWA6IGh0dHA6Ly9iaXRidWNrZXQub3Jn
L2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVzdF9ub3NlLnB5CisuLiBf
YHB5dGVzdF9yZXN0ZG9jLnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsv
cmF3LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0X3Jlc3Rkb2MucHkKKy4uIF9gcmVzdGRvY2A6IHJl
c3Rkb2MuaHRtbAorLi4gX2B4ZGlzdGA6IHhkaXN0Lmh0bWwKKy4uIF9gcHl0ZXN0X3Bhc3RlYmlu
LnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsvcmF3LzEuMy40L3B5L19w
bHVnaW4vcHl0ZXN0X3Bhc3RlYmluLnB5CisuLiBfYHB5dGVzdF90bXBkaXIucHlgOiBodHRwOi8v
Yml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQvcHkvX3BsdWdpbi9weXRlc3Rf
dG1wZGlyLnB5CisuLiBfYHRlcm1pbmFsYDogdGVybWluYWwuaHRtbAorLi4gX2BweXRlc3RfaG9v
a2xvZy5weWA6IGh0dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9w
eS9fcGx1Z2luL3B5dGVzdF9ob29rbG9nLnB5CisuLiBfYGNhcHR1cmVsb2dgOiBjYXB0dXJlbG9n
Lmh0bWwKKy4uIF9ganVuaXR4bWxgOiBqdW5pdHhtbC5odG1sCisuLiBfYHB5dGVzdF9za2lwcGlu
Zy5weWA6IGh0dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9f
cGx1Z2luL3B5dGVzdF9za2lwcGluZy5weQorLi4gX2BjaGVja291dCB0aGUgcHl0ZXN0IGRldmVs
b3BtZW50IHZlcnNpb25gOiAuLi8uLi9pbnN0YWxsLmh0bWwjY2hlY2tvdXQKKy4uIF9gcHl0ZXN0
X2hlbHBjb25maWcucHlgOiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcv
MS4zLjQvcHkvX3BsdWdpbi9weXRlc3RfaGVscGNvbmZpZy5weQorLi4gX2BvZWpza2l0YDogb2Vq
c2tpdC5odG1sCisuLiBfYGRvY3Rlc3RgOiBkb2N0ZXN0Lmh0bWwKKy4uIF9gcHl0ZXN0X21hcmsu
cHlgOiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQvcHkvX3Bs
dWdpbi9weXRlc3RfbWFyay5weQorLi4gX2BnZXQgaW4gY29udGFjdGA6IC4uLy4uL2NvbnRhY3Qu
aHRtbAorLi4gX2BweXRlc3RfY2FwdHVyZS5weWA6IGh0dHA6Ly9iaXRidWNrZXQub3JnL2hwazQy
L3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVzdF9jYXB0dXJlLnB5CisuLiBfYGZp
Z2xlYWZgOiBmaWdsZWFmLmh0bWwKKy4uIF9gY3VzdG9taXplYDogLi4vY3VzdG9taXplLmh0bWwK
Ky4uIF9gaG9va2xvZ2A6IGhvb2tsb2cuaHRtbAorLi4gX2BweXRlc3RfdGVybWluYWwucHlgOiBo
dHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQvcHkvX3BsdWdpbi9w
eXRlc3RfdGVybWluYWwucHkKKy4uIF9gcmVjd2FybmA6IHJlY3dhcm4uaHRtbAorLi4gX2BweXRl
c3RfcGRiLnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsvcmF3LzEuMy40
L3B5L19wbHVnaW4vcHl0ZXN0X3BkYi5weQorLi4gX2Btb25rZXlwYXRjaGA6IG1vbmtleXBhdGNo
Lmh0bWwKKy4uIF9gY292ZXJhZ2VgOiBjb3ZlcmFnZS5odG1sCisuLiBfYHJlc3VsdGxvZ2A6IHJl
c3VsdGxvZy5odG1sCisuLiBfYGNvdmA6IGNvdi5odG1sCisuLiBfYHB5dGVzdF9qdW5pdHhtbC5w
eWA6IGh0dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1
Z2luL3B5dGVzdF9qdW5pdHhtbC5weQorLi4gX2BkamFuZ29gOiBkamFuZ28uaHRtbAorLi4gX2Bw
eXRlc3RfdW5pdHRlc3QucHlgOiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9y
YXcvMS4zLjQvcHkvX3BsdWdpbi9weXRlc3RfdW5pdHRlc3QucHkKKy4uIF9gbm9zZWA6IG5vc2Uu
aHRtbAorLi4gX2BweXRlc3RfcmVzdWx0bG9nLnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBr
NDIvcHktdHJ1bmsvcmF3LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0X3Jlc3VsdGxvZy5weQorLi4g
X2BwZGJgOiBwZGIuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1
Z2luL25vc2UucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL25vc2UucnN0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjllZWFlNWZmNjk3ZjA1YTIyNjUxZjk2ZjBhOWJlMGNlMjEwNGU1OTAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vbm9zZS5yc3QKQEAg
LTAsMCArMSw1NiBAQAorCitub3NlLWNvbXBhdGliaWxpdHkgcGx1Z2luOiBhbGxvdyB0byBydW4g
bm9zZSB0ZXN0IHN1aXRlcyBuYXRpdmVseS4KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisKKy4uIGNvbnRlbnRzOjoK
KyAgOmxvY2FsOgorCitUaGlzIGlzIGFuIGV4cGVyaW1lbnRhbCBwbHVnaW4gZm9yIGFsbG93aW5n
IHRvIHJ1biB0ZXN0cyB3cml0dGVuCitpbiAnbm9zZXRlc3RzJyBzdHlsZSB3aXRoIGBgcHl0ZXN0
YGAuCisKK1VzYWdlCistLS0tLS0tLS0tLS0tCisKK3R5cGU6OgorCisgICAgcHl0ZXN0ICAjIGlu
c3RlYWQgb2YgJ25vc2V0ZXN0cycKKworYW5kIHlvdSBzaG91bGQgYmUgYWJsZSB0byBydW4gbm9z
ZSBzdHlsZSB0ZXN0cyBhbmQgYXQgdGhlIHNhbWUKK3RpbWUgY2FuIG1ha2UgZnVsbCB1c2Ugb2Yg
cHl0ZXN0J3MgY2FwYWJpbGl0aWVzLgorCitTdXBwb3J0ZWQgbm9zZSBJZGlvbXMKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KKworKiBzZXR1cCBhbmQgdGVhcmRvd24gYXQgbW9kdWxlL2NsYXNzL21l
dGhvZCBsZXZlbAorKiBTa2lwVGVzdCBleGNlcHRpb25zIGFuZCBtYXJrZXJzCisqIHNldHVwL3Rl
YXJkb3duIGRlY29yYXRvcnMKKyogeWllbGQtYmFzZWQgdGVzdHMgYW5kIHRoZWlyIHNldHVwCisq
IGdlbmVyYWwgdXNhZ2Ugb2Ygbm9zZSB1dGlsaXRpZXMKKworVW5zdXBwb3J0ZWQgaWRpb21zIC8g
aXNzdWVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0gbm9zZS1zdHls
ZSBkb2N0ZXN0cyBhcmUgbm90IGNvbGxlY3RlZCBhbmQgZXhlY3V0ZWQgY29ycmVjdGx5LAorICBh
bHNvIGZpeHR1cmVzIGRvbid0IHdvcmsuCisKKy0gbm8gbm9zZS1jb25maWd1cmF0aW9uIGlzIHJl
Y29nbml6ZWQKKworSWYgeW91IGZpbmQgb3RoZXIgaXNzdWVzIG9yIGhhdmUgc3VnZ2VzdGlvbnMg
cGxlYXNlIHJ1bjo6CisKKyAgICBweXRlc3QgLS1wYXN0ZWJpbj1hbGwKKworYW5kIHNlbmQgdGhl
IHJlc3VsdGluZyBVUkwgdG8gYSBgYHB5dGVzdGBgIGNvbnRhY3QgY2hhbm5lbCwKK2F0IGJlc3Qg
dG8gdGhlIG1haWxpbmcgbGlzdC4KKworU3RhcnQgaW1wcm92aW5nIHRoaXMgcGx1Z2luIGluIDMw
IHNlY29uZHMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKwor
MS4gRG93bmxvYWQgYHB5dGVzdF9ub3NlLnB5YF8gcGx1Z2luIHNvdXJjZSBjb2RlCisyLiBwdXQg
aXQgc29tZXdoZXJlIGFzIGBgcHl0ZXN0X25vc2UucHlgYCBpbnRvIHlvdXIgaW1wb3J0IHBhdGgK
KzMuIGEgc3Vic2VxdWVudCBgYHB5dGVzdGBgIHJ1biB3aWxsIHVzZSB5b3VyIGxvY2FsIHZlcnNp
b24KKworQ2hlY2tvdXQgY3VzdG9taXplXywgb3RoZXIgcGx1Z2luc18gb3IgYGdldCBpbiBjb250
YWN0YF8uCisKKy4uIGluY2x1ZGU6OiBsaW5rcy50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi90ZXN0L3BsdWdpbi9vZWpza2l0LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0
L3BsdWdpbi9vZWpza2l0LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OTk1YWExN2M3MmQ1Y2UwYjc5MTU0YTYy
Yzk3ZjBhMjEwZDIzYWRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rl
c3QvcGx1Z2luL29lanNraXQucnN0CkBAIC0wLDAgKzEsMTIgQEAKK3B5dGVzdF9vZWpza2l0IHBs
dWdpbiAoRVhURVJOQUwpCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KKworVGhlIGBvZWpza2l0YF8gb2ZmZXJzIGEgYGBweXRlc3RgYCBwbHVnaW4gZm9yIHJ1bm5p
bmcgSmF2YXNjcmlwdCB0ZXN0cyBpbiBsaXZlIGJyb3dzZXJzLiAgIFJ1bm5pbmcgaW5zaWRlIHRo
ZSBicm93c2VycyBjb21lcyB3aXRoIHNvbWUgc3BlZWQgY29zdCwgb24gdGhlIG90aGVyIGhhbmQg
aXQgbWVhbnMgZm9yIGV4YW1wbGUgdGhlIGNvZGUgaXMgdGVzdGVkIGFnYWluc3QgdGhlIHJlYWwt
d29yZCBET00gaW1wbGVtZW50YXRpb25zLgorVGhlIGFwcHJvYWNoIGVuYWJsZXMgdG8gd3JpdGUg
aW50ZWdyYXRpb24gdGVzdHMgc3VjaCB0aGF0IHRoZSBKYXZhU2NyaXB0IGNvZGUgaXMgdGVzdGVk
IGFnYWluc3Qgc2VydmVyLXNpZGUgUHl0aG9uIGNvZGUgbW9ja2VkIGFzIG5lY2Vzc2FyeS4gQW55
IHNlcnZlci1zaWRlIGZyYW1ld29yayB0aGF0IGNhbiBhbHJlYWR5IGJlIGV4cG9zZWQgdGhyb3Vn
aCBXU0dJIChvciBmb3Igd2hpY2ggYSBzdWJzZXQgb2YgV1NHSSBjYW4gYmUgd3JpdHRlbiB0byBh
Y2NvbW1vZGF0ZSB0aGUganNraXQgb3duIG5lZWRzKSBjYW4gcGxheSBhbG9uZy4KKworRm9yIG1v
cmUgaW5mbyBhbmQgZG93bmxvYWQgcGxlYXNlIHZpc2l0IHRoZSBgb2Vqc2tpdCBQeVBJYF8gcGFn
ZS4KKworLi4gX2BvZWpza2l0YDoKKy4uIF9gb2Vqc2tpdCBQeVBJYDogaHR0cDovL3B5cGkucHl0
aG9uLm9yZy9weXBpL29lanNraXQKKworLi4gc291cmNlIGxpbmsgJ2h0dHA6Ly9iaXRidWNrZXQu
b3JnL3BlZHJvbmlzL2pzLWluZnJhc3RydWN0dXJlL3NyYy90aXAvcHl0ZXN0X2pzdGVzdHMucHkn
LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL3Rlcm1pbmFsLnJz
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi90ZXJtaW5hbC5yc3QKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTA3ZDRmNzIxODNhOWEyNzY3NjMzNmNkOTg0ZTZmNzVlZmEzMGE3MQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi90ZXJtaW5hbC5yc3QKQEAgLTAs
MCArMSwzOCBAQAorCitJbXBsZW1lbnRzIHRlcm1pbmFsIHJlcG9ydGluZyBvZiB0aGUgZnVsbCB0
ZXN0aW5nIHByb2Nlc3MuCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisKKworLi4gY29udGVudHM6OgorICA6bG9jYWw6CisKK1RoaXMg
aXMgYSBnb29kIHNvdXJjZSBmb3IgbG9va2luZyBhdCB0aGUgdmFyaW91cyByZXBvcnRpbmcgaG9v
a3MuCisKK2NvbW1hbmQgbGluZSBvcHRpb25zCistLS0tLS0tLS0tLS0tLS0tLS0tLQorCisKK2Bg
LXYsIC0tdmVyYm9zZWBgCisgICAgaW5jcmVhc2UgdmVyYm9zaXR5LgorYGAtciBjaGFyc2BgCisg
ICAgc2hvdyBleHRyYSB0ZXN0IHN1bW1hcnkgaW5mbyBhcyBzcGVjaWZpZWQgYnkgY2hhcnMgKGYp
YWlsZWQsIChzKXNraXBwZWQsICh4KWZhaWxlZCwgKFgpcGFzc2VkLgorYGAtbCwgLS1zaG93bG9j
YWxzYGAKKyAgICBzaG93IGxvY2FscyBpbiB0cmFjZWJhY2tzIChkaXNhYmxlZCBieSBkZWZhdWx0
KS4KK2BgLS10Yj1zdHlsZWBgCisgICAgdHJhY2ViYWNrIHByaW50IG1vZGUgKGxvbmcvc2hvcnQv
bGluZS9ubykuCitgYC0tZnVsbC10cmFjZWBgCisgICAgZG9uJ3QgY3V0IGFueSB0cmFjZWJhY2tz
IChkZWZhdWx0IGlzIHRvIGN1dCkuCitgYC0tZml4dHVyZXNgYAorICAgIHNob3cgYXZhaWxhYmxl
IGZ1bmN0aW9uIGFyZ3VtZW50cywgc29ydGVkIGJ5IHBsdWdpbgorCitTdGFydCBpbXByb3Zpbmcg
dGhpcyBwbHVnaW4gaW4gMzAgc2Vjb25kcworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KKworCisxLiBEb3dubG9hZCBgcHl0ZXN0X3Rlcm1pbmFsLnB5YF8gcGx1Z2lu
IHNvdXJjZSBjb2RlCisyLiBwdXQgaXQgc29tZXdoZXJlIGFzIGBgcHl0ZXN0X3Rlcm1pbmFsLnB5
YGAgaW50byB5b3VyIGltcG9ydCBwYXRoCiszLiBhIHN1YnNlcXVlbnQgYGBweXRlc3RgYCBydW4g
d2lsbCB1c2UgeW91ciBsb2NhbCB2ZXJzaW9uCisKK0NoZWNrb3V0IGN1c3RvbWl6ZV8sIG90aGVy
IHBsdWdpbnNfIG9yIGBnZXQgaW4gY29udGFjdGBfLgorCisuLiBpbmNsdWRlOjogbGlua3MudHh0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vdzNjLWltcG9ydC5sb2cKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjkwNjcxN2Q0ZDNmNjJjYzk3YjE1MzE1MTUxYjA3Zjg0ZGQxOGRkNAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi93M2MtaW1wb3J0LmxvZwpA
QCAtMCwwICsxLDI3IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
UFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisK
K1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRv
IHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQ
cm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4v
Y292LnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9jb3ZlcmFnZS5yc3QKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vZGphbmdvLnJzdAorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi90ZXN0L3BsdWdpbi9maWdsZWFmLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3Bs
dWdpbi9oZWxwY29uZmlnLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9pbmRl
eC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vbGlua3MucnN0CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL25vc2UucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rl
c3QvcGx1Z2luL29lanNraXQucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL3Rl
cm1pbmFsLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi94ZGlzdC5yc3QKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi94ZGlzdC5yc3QgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4veGRpc3QucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwNmQyNDBh
ZWUxM2M3ZGQzMTljOTMzMTNjZjNlOGVmNGUyNjUyMTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4veGRpc3QucnN0CkBAIC0wLDAgKzEsMTcyIEBACisK
K2xvb3Agb24gZmFpbGluZyB0ZXN0cywgZGlzdHJpYnV0ZSB0ZXN0IHJ1bnMgdG8gQ1BVcyBhbmQg
aG9zdHMuCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQorCisKKy4uIGNvbnRlbnRzOjoKKyAgOmxvY2FsOgorCitUaGUgYHB5dGVz
dC14ZGlzdGBfIHBsdWdpbiBleHRlbmRzIGBgcHl0ZXN0YGAgd2l0aCBzb21lIHVuaXF1ZQordGVz
dCBleGVjdXRpb24gbW9kZXM6CisKKyogTG9vcG9uZmFpbDogcnVuIHlvdXIgdGVzdHMgcmVwZWF0
ZWRseSBpbiBhIHN1YnByb2Nlc3MuICBBZnRlciBlYWNoIHJ1bgorICBgYHB5dGVzdGBgIHdhaXRz
IHVudGlsIGEgZmlsZSBpbiB5b3VyIHByb2plY3QgY2hhbmdlcyBhbmQgdGhlbiByZS1ydW5zIHRo
ZQorICBwcmV2aW91c2x5IGZhaWxpbmcgdGVzdHMuICBUaGlzIGlzIHJlcGVhdGVkIHVudGlsIGFs
bCB0ZXN0cyBwYXNzIGFmdGVyIHdoaWNoCisgIGFnYWluIGEgZnVsbCBydW4gaXMgcGVyZm9ybWVk
LgorCisqIExvYWQtYmFsYW5jaW5nOiBpZiB5b3UgaGF2ZSBtdWx0aXBsZSBDUFVzIG9yIGhvc3Rz
IHlvdSBjYW4gdXNlCisgIHRob3NlIGZvciBhIGNvbWJpbmVkIHRlc3QgcnVuLiAgVGhpcyBhbGxv
d3MgdG8gc3BlZWQgdXAKKyAgZGV2ZWxvcG1lbnQgb3IgdG8gdXNlIHNwZWNpYWwgcmVzb3VyY2Vz
IG9mIHJlbW90ZSBtYWNoaW5lcy4KKworKiBNdWx0aS1QbGF0Zm9ybSBjb3ZlcmFnZTogeW91IGNh
biBzcGVjaWZ5IGRpZmZlcmVudCBQeXRob24gaW50ZXJwcmV0ZXJzCisgIG9yIGRpZmZlcmVudCBw
bGF0Zm9ybXMgYW5kIHJ1biB0ZXN0cyBpbiBwYXJhbGxlbCBvbiBhbGwgb2YgdGhlbS4KKworQmVm
b3JlIHJ1bm5pbmcgdGVzdHMgcmVtb3RlbHksIGBgcHl0ZXN0YGAgZWZmaWNpZW50bHkgc3luY2hy
b25pemVzIHlvdXIKK3Byb2dyYW0gc291cmNlIGNvZGUgdG8gdGhlIHJlbW90ZSBwbGFjZS4gIEFs
bCB0ZXN0IHJlc3VsdHMKK2FyZSByZXBvcnRlZCBiYWNrIGFuZCBkaXNwbGF5ZWQgdG8geW91ciBs
b2NhbCB0ZXN0IHNlc3Npb24uCitZb3UgbWF5IHNwZWNpZnkgZGlmZmVyZW50IFB5dGhvbiB2ZXJz
aW9ucyBhbmQgaW50ZXJwcmV0ZXJzLgorCisuLiBfYHB5dGVzdC14ZGlzdGA6IGh0dHA6Ly9weXBp
LnB5dGhvbi5vcmcvcHlwaS9weXRlc3QteGRpc3QKKworVXNhZ2UgZXhhbXBsZXMKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorCitTcGVlZCB1cCB0ZXN0IHJ1bnMgYnkgc2VuZGluZyB0ZXN0cyB0byBt
dWx0aXBsZSBDUFVzCisrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKworCitUbyBzZW5kIHRlc3RzIHRvIG11bHRpcGxlIENQVXMsIHR5cGU6
OgorCisgICAgcHl0ZXN0IC1uIE5VTQorCitFc3BlY2lhbGx5IGZvciBsb25nZXIgcnVubmluZyB0
ZXN0cyBvciB0ZXN0cyByZXF1aXJpbmcKK2EgbG90IG9mIElPIHRoaXMgY2FuIGxlYWQgdG8gY29u
c2lkZXJhYmxlIHNwZWVkIHVwcy4KKworCitSdW5uaW5nIHRlc3RzIGluIGEgUHl0aG9uIHN1YnBy
b2Nlc3MKKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrCisKK1RvIGluc3RhbnRpYXRlIGEgcHl0aG9uMi40IHN1YiBwcm9jZXNzIGFuZCBz
ZW5kIHRlc3RzIHRvIGl0LCB5b3UgbWF5IHR5cGU6OgorCisgICAgcHl0ZXN0IC1kIC0tdHggcG9w
ZW4vL3B5dGhvbj1weXRob24yLjQKKworVGhpcyB3aWxsIHN0YXJ0IGEgc3VicHJvY2VzcyB3aGlj
aCBpcyBydW4gd2l0aCB0aGUgInB5dGhvbjIuNCIKK1B5dGhvbiBpbnRlcnByZXRlciwgZm91bmQg
aW4geW91ciBzeXN0ZW0gYmluYXJ5IGxvb2t1cCBwYXRoLgorCitJZiB5b3UgcHJlZml4IHRoZSAt
LXR4IG9wdGlvbiB2YWx1ZSBsaWtlIHRoaXM6OgorCisgICAgLS10eCAzKnBvcGVuLy9weXRob249
cHl0aG9uMi40CisKK3RoZW4gdGhyZWUgc3VicHJvY2Vzc2VzIHdvdWxkIGJlIGNyZWF0ZWQgYW5k
IHRlc3RzCit3aWxsIGJlIGxvYWQtYmFsYW5jZWQgYWNyb3NzIHRoZXNlIHRocmVlIHByb2Nlc3Nl
cy4KKworCitTZW5kaW5nIHRlc3RzIHRvIHJlbW90ZSBTU0ggYWNjb3VudHMKKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCisKK1N1cHBv
c2UgeW91IGhhdmUgYSBwYWNrYWdlIGBgbXlwa2dgYCB3aGljaCBjb250YWlucyBzb21lCit0ZXN0
cyB0aGF0IHlvdSBjYW4gc3VjY2Vzc2Z1bGx5IHJ1biBsb2NhbGx5LiBBbmQgeW91CitoYXZlIGEg
c3NoLXJlYWNoYWJsZSBtYWNoaW5lIGBgbXlob3N0YGAuICBUaGVuCit5b3UgY2FuIGFkLWhvYyBk
aXN0cmlidXRlIHlvdXIgdGVzdHMgYnkgdHlwaW5nOjoKKworICAgIHB5dGVzdCAtZCAtLXR4IHNz
aD1teWhvc3Rwb3BlbiAtLXJzeW5jZGlyIG15cGtnIG15cGtnCisKK1RoaXMgd2lsbCBzeW5jaHJv
bml6ZSB5b3VyIGBgbXlwa2dgYCBwYWNrYWdlIGRpcmVjdG9yeQordG8gYSByZW1vdGUgc3NoIGFj
Y291bnQgYW5kIHRoZW4gbG9jYWxseSBjb2xsZWN0IHRlc3RzCithbmQgc2VuZCB0aGVtIHRvIHJl
bW90ZSBwbGFjZXMgZm9yIGV4ZWN1dGlvbi4KKworWW91IGNhbiBzcGVjaWZ5IG11bHRpcGxlIGBg
LS1yc3luY2RpcmBgIGRpcmVjdG9yaWVzCit0byBiZSBzZW50IHRvIHRoZSByZW1vdGUgc2lkZS4K
KworKipOT1RFOioqIEZvciBgYHB5dGVzdGBgIHRvIGNvbGxlY3QgYW5kIHNlbmQgdGVzdHMgY29y
cmVjdGx5Cit5b3Ugbm90IG9ubHkgbmVlZCB0byBtYWtlIHN1cmUgYWxsIGNvZGUgYW5kIHRlc3Rz
CitkaXJlY3RvcmllcyBhcmUgcnN5bmNlZCwgYnV0IHRoYXQgYW55IHRlc3QgKHN1YikgZGlyZWN0
b3J5CithbHNvIGhhcyBhbiBgYF9faW5pdF9fLnB5YGAgZmlsZSBiZWNhdXNlIGludGVybmFsbHkK
K2BgcHl0ZXN0YGAgcmVmZXJlbmNlcyB0ZXN0cyB1c2luZyB0aGVpciBmdWxseSBxdWFsaWZpZWQg
cHl0aG9uCittb2R1bGUgcGF0aC4gICoqWW91IHdpbGwgb3RoZXJ3aXNlIGdldCBzdHJhbmdlIGVy
cm9ycyoqCitkdXJpbmcgc2V0dXAgb2YgdGhlIHJlbW90ZSBzaWRlLgorCitTZW5kaW5nIHRlc3Rz
IHRvIHJlbW90ZSBTb2NrZXQgU2VydmVycworKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKworRG93bmxvYWQgdGhlIHNpbmdsZS1tb2R1
bGUgYHNvY2tldHNlcnZlci5weWBfIFB5dGhvbiBwcm9ncmFtCithbmQgcnVuIGl0IGxpa2UgdGhp
czo6CisKKyAgICBweXRob24gc29ja2V0c2VydmVyLnB5CisKK0l0IHdpbGwgdGVsbCB5b3UgdGhh
dCBpdCBzdGFydHMgbGlzdGVuaW5nIG9uIHRoZSBkZWZhdWx0Citwb3J0LiAgWW91IGNhbiBub3cg
b24geW91ciBob21lIG1hY2hpbmUgc3BlY2lmeSB0aGlzCituZXcgc29ja2V0IGhvc3Qgd2l0aCBz
b21ldGhpbmcgbGlrZSB0aGlzOjoKKworICAgIHB5dGVzdCAtZCAtLXR4IHNvY2tldD0xOTIuMTY4
LjEuMTAyOjg4ODggLS1yc3luY2RpciBteXBrZyBteXBrZworCisKKy4uIF9gYXRvbmNlYDoKKwor
UnVubmluZyB0ZXN0cyBvbiBtYW55IHBsYXRmb3JtcyBhdCBvbmNlCisrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworCitUaGUgYmFzaWMg
Y29tbWFuZCB0byBydW4gdGVzdHMgb24gbXVsdGlwbGUgcGxhdGZvcm1zIGlzOjoKKworICAgIHB5
dGVzdCAtLWRpc3Q9ZWFjaCAtLXR4PXNwZWMxIC0tdHg9c3BlYzIKKworSWYgeW91IHNwZWNpZnkg
YSB3aW5kb3dzIGhvc3QsIGFuIE9TWCBob3N0IGFuZCBhIExpbnV4CitlbnZpcm9ubWVudCB0aGlz
IGNvbW1hbmQgd2lsbCBzZW5kIGVhY2ggdGVzdHMgdG8gYWxsCitwbGF0Zm9ybXMgLSBhbmQgcmVw
b3J0IGJhY2sgZmFpbHVyZXMgZnJvbSBhbGwgcGxhdGZvcm1zCithdCBvbmNlLiAgIFRoZSBzcGVj
aWZpY2F0aW9ucyBzdHJpbmdzIHVzZSB0aGUgYHhzcGVjIHN5bnRheGBfLgorCisuLiBfYHhzcGVj
IHN5bnRheGA6IGh0dHA6Ly9jb2Rlc3BlYWsubmV0L2V4ZWNuZXQvdHJ1bmsvYmFzaWNzLmh0bWwj
eHNwZWMKKworLi4gX2Bzb2NrZXRzZXJ2ZXIucHlgOiBodHRwOi8vY29kZXNwZWFrLm5ldC9zdm4v
cHkvZGlzdC9weS9leGVjbmV0L3NjcmlwdC9zb2NrZXRzZXJ2ZXIucHkKKworLi4gX2BleGVjbmV0
YDogaHR0cDovL2NvZGVzcGVhay5uZXQvZXhlY25ldAorCitTcGVjaWZ5aW5nIHRlc3QgZXhlYyBl
bnZpcm9ubWVudHMgaW4gYSBjb25mdGVzdC5weQorKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKworSW5zdGVhZCBvZiBzcGVjaWZ5aW5n
IGNvbW1hbmQgbGluZSBvcHRpb25zLCB5b3UgY2FuCitwdXQgb3B0aW9ucyB2YWx1ZXMgaW4gYSBg
YGNvbmZ0ZXN0LnB5YGAgZmlsZSBsaWtlIHRoaXM6OgorCisgICAgb3B0aW9uX3R4ID0gWydzc2g9
bXlob3N0Ly9weXRob249cHl0aG9uMi43JywgJ3BvcGVuLy9weXRob249cHl0aG9uMi43J10KKyAg
ICBvcHRpb25fZGlzdCA9IFRydWUKKworQW55IGNvbW1hbmRsaW5lIGBgLS10eGBgIHNwZWNpZmlj
YXRpb25zICB3aWxsIGFkZCB0byB0aGUgbGlzdCBvZgorYXZhaWxhYmxlIGV4ZWN1dGlvbiBlbnZp
cm9ubWVudHMuCisKK1NwZWNpZnlpbmcgInJzeW5jIiBkaXJzIGluIGEgY29uZnRlc3QucHkKKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
CisKK0luIHlvdXIgYGBteXBrZy9jb25mdGVzdC5weWBgIHlvdSBtYXkgc3BlY2lmeSBkaXJlY3Rv
cmllcyB0byBzeW5jaHJvbmlzZQorb3IgdG8gZXhjbHVkZTo6CisKKyAgICByc3luY2RpcnMgPSBb
Jy4nLCAnLi4vcGx1Z2lucyddCisgICAgcnN5bmNpZ25vcmUgPSBbJ19jYWNoZSddCisKK1RoZXNl
IGRpcmVjdG9yeSBzcGVjaWZpY2F0aW9ucyBhcmUgcmVsYXRpdmUgdG8gdGhlIGRpcmVjdG9yeQor
d2hlcmUgdGhlIGBgY29uZnRlc3QucHlgYCBpcyBmb3VuZC4KKworY29tbWFuZCBsaW5lIG9wdGlv
bnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKworYGAtZiwgLS1sb29wb25mYWlsYGAKKyAgICBy
dW4gdGVzdHMgaW4gc3VicHJvY2Vzcywgd2FpdCBmb3IgbW9kaWZpZWQgZmlsZXMgYW5kIHJlLXJ1
biBmYWlsaW5nIHRlc3Qgc2V0IHVudGlsIGFsbCBwYXNzLgorYGAtbiBudW1wcm9jZXNzZXNgYAor
ICAgIHNob3J0Y3V0IGZvciAnLS1kaXN0PWxvYWQgLS10eD1OVU0qcG9wZW4nCitgYC0tYm94ZWRg
YAorICAgIGJveCBlYWNoIHRlc3QgcnVuIGluIGEgc2VwYXJhdGUgcHJvY2VzcyAodW5peCkKK2Bg
LS1kaXN0PWRpc3Rtb2RlYGAKKyAgICBzZXQgbW9kZSBmb3IgZGlzdHJpYnV0aW5nIHRlc3RzIHRv
IGV4ZWMgZW52aXJvbm1lbnRzLgorCisgICAgZWFjaDogc2VuZCBlYWNoIHRlc3QgdG8gZWFjaCBh
dmFpbGFibGUgZW52aXJvbm1lbnQuCisKKyAgICBsb2FkOiBzZW5kIGVhY2ggdGVzdCB0byBvbmUg
YXZhaWxhYmxlIGVudmlyb25tZW50IHNvIGl0IGlzIHJ1biBvbmx5IG9uY2UuCisKKyAgICAoZGVm
YXVsdCkgbm86IHJ1biB0ZXN0cyBpbnByb2Nlc3MsIGRvbid0IGRpc3RyaWJ1dGUuCitgYC0tdHg9
eHNwZWNgYAorICAgIGFkZCBhIHRlc3QgZXhlY3V0aW9uIGVudmlyb25tZW50LiBzb21lIGV4YW1w
bGVzOiAtLXR4IHBvcGVuLy9weXRob249cHl0aG9uMi43IC0tdHggc29ja2V0PTE5Mi4xNjguMS4x
MDI6ODg4OCAtLXR4IHNzaD11c2VyQGNvZGVzcGVhay5uZXQvL2NoZGlyPXRlc3RjYWNoZQorYGAt
ZGBgCisgICAgbG9hZC1iYWxhbmNlIHRlc3RzLiAgc2hvcnRjdXQgZm9yICctLWRpc3Q9bG9hZCcK
K2BgLS1yc3luY2Rpcj1kaXIxYGAKKyAgICBhZGQgZGlyZWN0b3J5IGZvciByc3luY2luZyB0byBy
ZW1vdGUgdHggbm9kZXMuCisKKy4uIGluY2x1ZGU6OiBsaW5rcy50eHQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3Rlc3QuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0
L3Rlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDAwZjcxOGE2NzcyNGNmMGFmOTA1NDg0YzE4Y2M2YjVl
YjI1MDNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvdGVzdC5o
dG1sCkBAIC0wLDAgKzEsMTggQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBo
dHRwLWVxdWl2PSJyZWZyZXNoIiBjb250ZW50PSIgMSA7IFVSTD1pbmRleC5odG1sIiAvPgorICAg
IDwvaGVhZD4KKworICAgIDxib2R5PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgor
dmFyIGdhSnNIb3N0ID0gKCgiaHR0cHM6IiA9PSBkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCkg
PyAiaHR0cHM6Ly9zc2wuIiA6ICJodHRwOi8vd3d3LiIpOworZG9jdW1lbnQud3JpdGUodW5lc2Nh
cGUoIiUzQ3NjcmlwdCBzcmM9JyIgKyBnYUpzSG9zdCArICJnb29nbGUtYW5hbHl0aWNzLmNvbS9n
YS5qcycgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyUzRSUzQy9zY3JpcHQlM0UiKSk7Cis8L3Njcmlw
dD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KK3RyeSB7Cit2YXIgcGFnZVRyYWNr
ZXIgPSBfZ2F0Ll9nZXRUcmFja2VyKCJVQS03NTk3Mjc0LTMiKTsKK3BhZ2VUcmFja2VyLl90cmFj
a1BhZ2V2aWV3KCk7Cit9IGNhdGNoKGVycikge308L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
KyAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGFi
OTNmNWY3Y2ZhMGUyNzBiNmNkNTUyYjdhMTY5YTczN2I5OTJmNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjMgQEAK
K1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyBy
ZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQu
CitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0
cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8g
Tk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3Bl
cnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9m
IGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L2F0dGljLnJzdAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi90ZXN0L2NvbmZpZy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvZGlzdC5o
dG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvZXh0ZW5kLmh0bWwKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vdGVzdC9pbmRleC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9taXNzaW9uLnJz
dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3Rlc3QuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL3RtcGRpci5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdG1wZGlyLnJzdApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iODE3NDQ4NGUxZDc2MTNiYzU4YTBkN2YxNmE2MDk4NGY4ZjE0YTkzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3RtcGRpci5yc3QKQEAgLTAsMCArMSwx
MTEgQEAKKworLi4gX2B0bXBkaXIgaGFuZGxpbmdgOgorLi4gX3RtcGRpcjoKKworVGVtcG9yYXJ5
IGRpcmVjdG9yaWVzIGFuZCBmaWxlcworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09CisKK1RoZSAndG1wZGlyJyBmaXh0dXJlCistLS0tLS0tLS0tLS0tLS0t
LS0tLQorCitZb3UgY2FuIHVzZSB0aGUgYGB0bXBkaXJgYCBmaXh0dXJlIHdoaWNoIHdpbGwKK3By
b3ZpZGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHVuaXF1ZSB0byB0aGUgdGVzdCBpbnZvY2F0aW9u
LAorY3JlYXRlZCBpbiB0aGUgYGJhc2UgdGVtcG9yYXJ5IGRpcmVjdG9yeWBfLgorCitgYHRtcGRp
cmBgIGlzIGEgYHB5LnBhdGgubG9jYWxgXyBvYmplY3Qgd2hpY2ggb2ZmZXJzIGBgb3MucGF0aGBg
IG1ldGhvZHMKK2FuZCBtb3JlLiAgSGVyZSBpcyBhbiBleGFtcGxlIHRlc3QgdXNhZ2U6OgorCisg
ICAgIyBjb250ZW50IG9mIHRlc3RfdG1wZGlyLnB5CisgICAgaW1wb3J0IG9zCisgICAgZGVmIHRl
c3RfY3JlYXRlX2ZpbGUodG1wZGlyKToKKyAgICAgICAgcCA9IHRtcGRpci5ta2Rpcigic3ViIiku
am9pbigiaGVsbG8udHh0IikKKyAgICAgICAgcC53cml0ZSgiY29udGVudCIpCisgICAgICAgIGFz
c2VydCBwLnJlYWQoKSA9PSAiY29udGVudCIKKyAgICAgICAgYXNzZXJ0IGxlbih0bXBkaXIubGlz
dGRpcigpKSA9PSAxCisgICAgICAgIGFzc2VydCAwCisKK1J1bm5pbmcgdGhpcyB3b3VsZCByZXN1
bHQgaW4gYSBwYXNzZWQgdGVzdCBleGNlcHQgZm9yIHRoZSBsYXN0CitgYGFzc2VydCAwYGAgbGlu
ZSB3aGljaCB3ZSB1c2UgdG8gbG9vayBhdCB2YWx1ZXM6OgorCisgICAgJCBweXRlc3QgdGVzdF90
bXBkaXIucHkKKyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0
YXJ0cyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgICAgcGxhdGZvcm0gbGludXggLS0g
UHl0aG9uIDMueC55LCBweXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICBy
b290ZGlyOiAkUkVHRU5ET0NfVE1QRElSLCBpbmlmaWxlOgorICAgIGNvbGxlY3RlZCAxIGl0ZW0K
KyAgICAKKyAgICB0ZXN0X3RtcGRpci5weSBGICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbMTAwJV0KKyAgICAKKyAgICA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0gRkFJTFVSRVMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CisgICAgX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gdGVzdF9jcmVhdGVfZmlsZSBf
X19fX19fX19fX19fX19fX19fX19fX19fX19fXworICAgIAorICAgIHRtcGRpciA9IGxvY2FsKCdQ
WVRFU1RfVE1QRElSL3Rlc3RfY3JlYXRlX2ZpbGUwJykKKyAgICAKKyAgICAgICAgZGVmIHRlc3Rf
Y3JlYXRlX2ZpbGUodG1wZGlyKToKKyAgICAgICAgICAgIHAgPSB0bXBkaXIubWtkaXIoInN1YiIp
LmpvaW4oImhlbGxvLnR4dCIpCisgICAgICAgICAgICBwLndyaXRlKCJjb250ZW50IikKKyAgICAg
ICAgICAgIGFzc2VydCBwLnJlYWQoKSA9PSAiY29udGVudCIKKyAgICAgICAgICAgIGFzc2VydCBs
ZW4odG1wZGlyLmxpc3RkaXIoKSkgPT0gMQorICAgID4gICAgICAgYXNzZXJ0IDAKKyAgICBFICAg
ICAgIGFzc2VydCAwCisgICAgCisgICAgdGVzdF90bXBkaXIucHk6NzogQXNzZXJ0aW9uRXJyb3IK
KyAgICA9PT09PT09PT09PT09PT09PT09PT09PT09IDEgZmFpbGVkIGluIDAuMTIgc2Vjb25kcyA9
PT09PT09PT09PT09PT09PT09PT09PT09CisKK1RoZSAndG1wZGlyX2ZhY3RvcnknIGZpeHR1cmUK
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gdmVyc2lvbmFkZGVkOjogMi44CisK
K1RoZSBgYHRtcGRpcl9mYWN0b3J5YGAgaXMgYSBzZXNzaW9uLXNjb3BlZCBmaXh0dXJlIHdoaWNo
IGNhbiBiZSB1c2VkCit0byBjcmVhdGUgYXJiaXRyYXJ5IHRlbXBvcmFyeSBkaXJlY3RvcmllcyBm
cm9tIGFueSBvdGhlciBmaXh0dXJlIG9yIHRlc3QuCisKK0ZvciBleGFtcGxlLCBzdXBwb3NlIHlv
dXIgdGVzdCBzdWl0ZSBuZWVkcyBhIGxhcmdlIGltYWdlIG9uIGRpc2ssIHdoaWNoIGlzCitnZW5l
cmF0ZWQgcHJvY2VkdXJhbGx5LiBJbnN0ZWFkIG9mIGNvbXB1dGluZyB0aGUgc2FtZSBpbWFnZSBm
b3IgZWFjaCB0ZXN0Cit0aGF0IHVzZXMgaXQgaW50byBpdHMgb3duIGBgdG1wZGlyYGAsIHlvdSBj
YW4gZ2VuZXJhdGUgaXQgb25jZSBwZXItc2Vzc2lvbgordG8gc2F2ZSB0aW1lOgorCisuLiBjb2Rl
LWJsb2NrOjogcHl0aG9uCisKKyAgICAjIGNvbnRlbnRzIG9mIGNvbmZ0ZXN0LnB5CisgICAgaW1w
b3J0IHB5dGVzdAorCisgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdzZXNzaW9uJykKKyAgICBk
ZWYgaW1hZ2VfZmlsZSh0bXBkaXJfZmFjdG9yeSk6CisgICAgICAgIGltZyA9IGNvbXB1dGVfZXhw
ZW5zaXZlX2ltYWdlKCkKKyAgICAgICAgZm4gPSB0bXBkaXJfZmFjdG9yeS5ta3RlbXAoJ2RhdGEn
KS5qb2luKCdpbWcucG5nJykKKyAgICAgICAgaW1nLnNhdmUoc3RyKGZuKSkKKyAgICAgICAgcmV0
dXJuIGZuCisKKyAgICAjIGNvbnRlbnRzIG9mIHRlc3RfaW1hZ2UucHkKKyAgICBkZWYgdGVzdF9o
aXN0b2dyYW0oaW1hZ2VfZmlsZSk6CisgICAgICAgIGltZyA9IGxvYWRfaW1hZ2UoaW1hZ2VfZmls
ZSkKKyAgICAgICAgIyBjb21wdXRlIGFuZCB0ZXN0IGhpc3RvZ3JhbQorCitgYHRtcGRpcl9mYWN0
b3J5YGAgaW5zdGFuY2VzIGhhdmUgdGhlIGZvbGxvd2luZyBtZXRob2RzOgorCisuLiBjdXJyZW50
bW9kdWxlOjogX3B5dGVzdC50bXBkaXIKKworLi4gYXV0b21ldGhvZDo6IFRlbXBkaXJGYWN0b3J5
Lm1rdGVtcAorLi4gYXV0b21ldGhvZDo6IFRlbXBkaXJGYWN0b3J5LmdldGJhc2V0ZW1wCisKKy4u
IF9gYmFzZSB0ZW1wb3JhcnkgZGlyZWN0b3J5YDoKKworVGhlIGRlZmF1bHQgYmFzZSB0ZW1wb3Jh
cnkgZGlyZWN0b3J5CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCitUZW1wb3JhcnkgZGlyZWN0b3JpZXMgYXJlIGJ5IGRlZmF1bHQgY3JlYXRlZCBhcyBz
dWItZGlyZWN0b3JpZXMgb2YKK3RoZSBzeXN0ZW0gdGVtcG9yYXJ5IGRpcmVjdG9yeS4gIFRoZSBi
YXNlIG5hbWUgd2lsbCBiZSBgYHB5dGVzdC1OVU1gYCB3aGVyZQorYGBOVU1gYCB3aWxsIGJlIGlu
Y3JlbWVudGVkIHdpdGggZWFjaCB0ZXN0IHJ1bi4gIE1vcmVvdmVyLCBlbnRyaWVzIG9sZGVyCit0
aGFuIDMgdGVtcG9yYXJ5IGRpcmVjdG9yaWVzIHdpbGwgYmUgcmVtb3ZlZC4KKworWW91IGNhbiBv
dmVycmlkZSB0aGUgZGVmYXVsdCB0ZW1wb3JhcnkgZGlyZWN0b3J5IHNldHRpbmcgbGlrZSB0aGlz
OjoKKworICAgIHB5dGVzdCAtLWJhc2V0ZW1wPW15ZGlyCisKK1doZW4gZGlzdHJpYnV0aW5nIHRl
c3RzIG9uIHRoZSBsb2NhbCBtYWNoaW5lLCBgYHB5dGVzdGBgIHRha2VzIGNhcmUgdG8KK2NvbmZp
Z3VyZSBhIGJhc2V0ZW1wIGRpcmVjdG9yeSBmb3IgdGhlIHN1YiBwcm9jZXNzZXMgc3VjaCB0aGF0
IGFsbCB0ZW1wb3JhcnkKK2RhdGEgbGFuZHMgYmVsb3cgYSBzaW5nbGUgcGVyLXRlc3QgcnVuIGJh
c2V0ZW1wIGRpcmVjdG9yeS4KKworLi4gX2BweS5wYXRoLmxvY2FsYDogaHR0cDovL3B5LnJ0ZmQu
b3JnL2VuL2xhdGVzdC9wYXRoLmh0bWwKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vdW5pdHRlc3QucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3VuaXR0ZXN0LnJzdApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iNDRiZGE0NGZhODMzODQ3ZTdlYmIzMGNkMDhhY2EwZmZiZWRmZjc4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3VuaXR0ZXN0LnJzdApAQCAtMCwwICsxLDI0NSBA
QAorCisuLiBfYHVuaXR0ZXN0LlRlc3RDYXNlYDoKKy4uIF9gdW5pdHRlc3RgOgorCit1bml0dGVz
dC5UZXN0Q2FzZSBTdXBwb3J0Cis9PT09PT09PT09PT09PT09PT09PT09PT09CisKK2BgcHl0ZXN0
YGAgc3VwcG9ydHMgcnVubmluZyBQeXRob24gYGB1bml0dGVzdGBgLWJhc2VkIHRlc3RzIG91dCBv
ZiB0aGUgYm94LgorSXQncyBtZWFudCBmb3IgbGV2ZXJhZ2luZyBleGlzdGluZyBgYHVuaXR0ZXN0
YGAtYmFzZWQgdGVzdCBzdWl0ZXMKK3RvIHVzZSBweXRlc3QgYXMgYSB0ZXN0IHJ1bm5lciBhbmQg
YWxzbyBhbGxvdyB0byBpbmNyZW1lbnRhbGx5IGFkYXB0Cit0aGUgdGVzdCBzdWl0ZSB0byB0YWtl
IGZ1bGwgYWR2YW50YWdlIG9mIHB5dGVzdCdzIGZlYXR1cmVzLgorCitUbyBydW4gYW4gZXhpc3Rp
bmcgYGB1bml0dGVzdGBgLXN0eWxlIHRlc3Qgc3VpdGUgdXNpbmcgYGBweXRlc3RgYCwgdHlwZTo6
CisKKyAgICBweXRlc3QgdGVzdHMKKworCitweXRlc3Qgd2lsbCBhdXRvbWF0aWNhbGx5IGNvbGxl
Y3QgYGB1bml0dGVzdC5UZXN0Q2FzZWBgIHN1YmNsYXNzZXMgYW5kCit0aGVpciBgYHRlc3RgYCBt
ZXRob2RzIGluIGBgdGVzdF8qLnB5YGAgb3IgYGAqX3Rlc3QucHlgYCBmaWxlcy4KKworQWxtb3N0
IGFsbCBgYHVuaXR0ZXN0YGAgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZDoKKworKiBgYEB1bml0dGVz
dC5za2lwYGAgc3R5bGUgZGVjb3JhdG9yczsKKyogYGBzZXRVcC90ZWFyRG93bmBgOworKiBgYHNl
dFVwQ2xhc3MvdGVhckRvd25DbGFzcygpYGA7CisKKy4uIF9gbG9hZF90ZXN0cyBwcm90b2NvbGA6
IGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvbGlicmFyeS91bml0dGVzdC5odG1sI2xvYWQtdGVz
dHMtcHJvdG9jb2wKKy4uIF9gc2V0VXBNb2R1bGUvdGVhckRvd25Nb2R1bGVgOiBodHRwczovL2Rv
Y3MucHl0aG9uLm9yZy8zL2xpYnJhcnkvdW5pdHRlc3QuaHRtbCNzZXR1cG1vZHVsZS1hbmQtdGVh
cmRvd25tb2R1bGUKKy4uIF9gc3VidGVzdHNgOiBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL2xp
YnJhcnkvdW5pdHRlc3QuaHRtbCNkaXN0aW5ndWlzaGluZy10ZXN0LWl0ZXJhdGlvbnMtdXNpbmct
c3VidGVzdHMKKworVXAgdG8gdGhpcyBwb2ludCBweXRlc3QgZG9lcyBub3QgaGF2ZSBzdXBwb3J0
IGZvciB0aGUgZm9sbG93aW5nIGZlYXR1cmVzOgorCisqIGBsb2FkX3Rlc3RzIHByb3RvY29sYF87
CisqIGBzZXRVcE1vZHVsZS90ZWFyRG93bk1vZHVsZWBfOworKiBgc3VidGVzdHNgXzsKKworQmVu
ZWZpdHMgb3V0IG9mIHRoZSBib3gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0J5IHJ1bm5p
bmcgeW91ciB0ZXN0IHN1aXRlIHdpdGggcHl0ZXN0IHlvdSBjYW4gbWFrZSB1c2Ugb2Ygc2V2ZXJh
bCBmZWF0dXJlcywKK2luIG1vc3QgY2FzZXMgd2l0aG91dCBoYXZpbmcgdG8gbW9kaWZ5IGV4aXN0
aW5nIGNvZGU6CisKKyogT2J0YWluIDpyZWY6YG1vcmUgaW5mb3JtYXRpdmUgdHJhY2ViYWNrcyA8
dGJyZXBvcnRkZW1vPmA7CisqIDpyZWY6YHN0ZG91dCBhbmQgc3RkZXJyIDxjYXB0dXJlcz5gIGNh
cHR1cmluZzsKKyogOnJlZjpgVGVzdCBzZWxlY3Rpb24gb3B0aW9ucyA8c2VsZWN0LXRlc3RzPmAg
dXNpbmcgYGAta2BgIGFuZCBgYC1tYGAgZmxhZ3M7CisqIDpyZWY6YG1heGZhaWxgOworKiA6cmVm
OmAtLXBkYiA8cGRiLW9wdGlvbj5gIGNvbW1hbmQtbGluZSBvcHRpb24gZm9yIGRlYnVnZ2luZyBv
biB0ZXN0IGZhaWx1cmVzCisgIChzZWUgOnJlZjpgbm90ZSA8cGRiLXVuaXR0ZXN0LW5vdGU+YCBi
ZWxvdyk7CisqIERpc3RyaWJ1dGUgdGVzdHMgdG8gbXVsdGlwbGUgQ1BVcyB1c2luZyB0aGUgYHB5
dGVzdC14ZGlzdCA8aHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL3B5dGVzdC14ZGlzdD5gXyBw
bHVnaW47CisqIFVzZSA6cmVmOmBwbGFpbiBhc3NlcnQtc3RhdGVtZW50cyA8YXNzZXJ0PmAgaW5z
dGVhZCBvZiBgYHNlbGYuYXNzZXJ0KmBgIGZ1bmN0aW9ucyAoYHVuaXR0ZXN0MnB5dGVzdAorICA8
aHR0cHM6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS91bml0dGVzdDJweXRlc3QvPmBfXyBpcyBpbW1l
bnNlbHkgaGVscGZ1bCBpbiB0aGlzKTsKKworCitweXRlc3QgZmVhdHVyZXMgaW4gYGB1bml0dGVz
dC5UZXN0Q2FzZWBgIHN1YmNsYXNzZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgZm9sbG93aW5nIHB5dGVzdCBmZWF0dXJlcyB3b3Jr
IGluIGBgdW5pdHRlc3QuVGVzdENhc2VgYCBzdWJjbGFzc2VzOgorCisqIDpyZWY6YE1hcmtzIDxt
YXJrPmA6IDpyZWY6YHNraXAgPHNraXA+YCwgOnJlZjpgc2tpcGlmIDxza2lwaWY+YCwgOnJlZjpg
eGZhaWwgPHhmYWlsPmA7CisqIDpyZWY6YEF1dG8tdXNlIGZpeHR1cmVzIDxtaXhpbmctZml4dHVy
ZXM+YDsKKworVGhlIGZvbGxvd2luZyBweXRlc3QgZmVhdHVyZXMgKipkbyBub3QqKiB3b3JrLCBh
bmQgcHJvYmFibHkKK25ldmVyIHdpbGwgZHVlIHRvIGRpZmZlcmVudCBkZXNpZ24gcGhpbG9zb3Bo
aWVzOgorCisqIDpyZWY6YEZpeHR1cmVzIDxmaXh0dXJlPmAgKGV4Y2VwdCBmb3IgYGBhdXRvdXNl
YGAgZml4dHVyZXMsIHNlZSA6cmVmOmBiZWxvdyA8bWl4aW5nLWZpeHR1cmVzPmApOworKiA6cmVm
OmBQYXJhbWV0cml6YXRpb24gPHBhcmFtZXRyaXplPmA7CisqIDpyZWY6YEN1c3RvbSBob29rcyA8
d3JpdGluZy1wbHVnaW5zPmA7CisKKworVGhpcmQgcGFydHkgcGx1Z2lucyBtYXkgb3IgbWF5IG5v
dCB3b3JrIHdlbGwsIGRlcGVuZGluZyBvbiB0aGUgcGx1Z2luIGFuZCB0aGUgdGVzdCBzdWl0ZS4K
KworLi4gX21peGluZy1maXh0dXJlczoKKworTWl4aW5nIHB5dGVzdCBmaXh0dXJlcyBpbnRvIGBg
dW5pdHRlc3QuVGVzdENhc2VgYCBzdWJjbGFzc2VzIHVzaW5nIG1hcmtzCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworUnVubmluZyB5b3VyIHVuaXR0ZXN0IHdpdGggYGBweXRlc3RgYCBhbGxvd3MgeW91IHRv
IHVzZSBpdHMKKzpyZWY6YGZpeHR1cmUgbWVjaGFuaXNtIDxmaXh0dXJlPmAgd2l0aCBgYHVuaXR0
ZXN0LlRlc3RDYXNlYGAgc3R5bGUKK3Rlc3RzLiAgQXNzdW1pbmcgeW91IGhhdmUgYXQgbGVhc3Qg
c2tpbW1lZCB0aGUgcHl0ZXN0IGZpeHR1cmUgZmVhdHVyZXMsCitsZXQncyBqdW1wLXN0YXJ0IGlu
dG8gYW4gZXhhbXBsZSB0aGF0IGludGVncmF0ZXMgYSBweXRlc3QgYGBkYl9jbGFzc2BgCitmaXh0
dXJlLCBzZXR0aW5nIHVwIGEgY2xhc3MtY2FjaGVkIGRhdGFiYXNlIG9iamVjdCwgYW5kIHRoZW4g
cmVmZXJlbmNlCitpdCBmcm9tIGEgdW5pdHRlc3Qtc3R5bGUgdGVzdDo6CisKKyAgICAjIGNvbnRl
bnQgb2YgY29uZnRlc3QucHkKKworICAgICMgd2UgZGVmaW5lIGEgZml4dHVyZSBmdW5jdGlvbiBi
ZWxvdyBhbmQgaXQgd2lsbCBiZSAidXNlZCIgYnkKKyAgICAjIHJlZmVyZW5jaW5nIGl0cyBuYW1l
IGZyb20gdGVzdHMKKworICAgIGltcG9ydCBweXRlc3QKKworICAgIEBweXRlc3QuZml4dHVyZShz
Y29wZT0iY2xhc3MiKQorICAgIGRlZiBkYl9jbGFzcyhyZXF1ZXN0KToKKyAgICAgICAgY2xhc3Mg
RHVtbXlEQihvYmplY3QpOgorICAgICAgICAgICAgcGFzcworICAgICAgICAjIHNldCBhIGNsYXNz
IGF0dHJpYnV0ZSBvbiB0aGUgaW52b2tpbmcgdGVzdCBjb250ZXh0IAorICAgICAgICByZXF1ZXN0
LmNscy5kYiA9IER1bW15REIoKQorCitUaGlzIGRlZmluZXMgYSBmaXh0dXJlIGZ1bmN0aW9uIGBg
ZGJfY2xhc3NgYCB3aGljaCAtIGlmIHVzZWQgLSBpcyAKK2NhbGxlZCBvbmNlIGZvciBlYWNoIHRl
c3QgY2xhc3MgYW5kIHdoaWNoIHNldHMgdGhlIGNsYXNzLWxldmVsIAorYGBkYmBgIGF0dHJpYnV0
ZSB0byBhIGBgRHVtbXlEQmBgIGluc3RhbmNlLiAgVGhlIGZpeHR1cmUgZnVuY3Rpb24KK2FjaGll
dmVzIHRoaXMgYnkgcmVjZWl2aW5nIGEgc3BlY2lhbCBgYHJlcXVlc3RgYCBvYmplY3Qgd2hpY2gg
Z2l2ZXMKK2FjY2VzcyB0byA6cmVmOmB0aGUgcmVxdWVzdGluZyB0ZXN0IGNvbnRleHQgPHJlcXVl
c3QtY29udGV4dD5gIHN1Y2gKK2FzIHRoZSBgYGNsc2BgIGF0dHJpYnV0ZSwgZGVub3RpbmcgdGhl
IGNsYXNzIGZyb20gd2hpY2ggdGhlIGZpeHR1cmUgCitpcyB1c2VkLiAgVGhpcyBhcmNoaXRlY3R1
cmUgZGUtY291cGxlcyBmaXh0dXJlIHdyaXRpbmcgZnJvbSBhY3R1YWwgdGVzdAorY29kZSBhbmQg
YWxsb3dzIHJlLXVzZSBvZiB0aGUgZml4dHVyZSBieSBhIG1pbmltYWwgcmVmZXJlbmNlLCB0aGUg
Zml4dHVyZQorbmFtZS4gIFNvIGxldCdzIHdyaXRlIGFuIGFjdHVhbCBgYHVuaXR0ZXN0LlRlc3RD
YXNlYGAgY2xhc3MgdXNpbmcgb3VyIAorZml4dHVyZSBkZWZpbml0aW9uOjoKKworICAgICMgY29u
dGVudCBvZiB0ZXN0X3VuaXR0ZXN0X2RiLnB5CisKKyAgICBpbXBvcnQgdW5pdHRlc3QKKyAgICBp
bXBvcnQgcHl0ZXN0CisKKyAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoImRiX2NsYXNzIikK
KyAgICBjbGFzcyBNeVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICAgICBkZWYgdGVzdF9t
ZXRob2QxKHNlbGYpOgorICAgICAgICAgICAgYXNzZXJ0IGhhc2F0dHIoc2VsZiwgImRiIikKKyAg
ICAgICAgICAgIGFzc2VydCAwLCBzZWxmLmRiICAgIyBmYWlsIGZvciBkZW1vIHB1cnBvc2VzCisK
KyAgICAgICAgZGVmIHRlc3RfbWV0aG9kMihzZWxmKToKKyAgICAgICAgICAgIGFzc2VydCAwLCBz
ZWxmLmRiICAgIyBmYWlsIGZvciBkZW1vIHB1cnBvc2VzCisKK1RoZSBgYEBweXRlc3QubWFyay51
c2VmaXh0dXJlcygiZGJfY2xhc3MiKWBgIGNsYXNzLWRlY29yYXRvciBtYWtlcyBzdXJlIHRoYXQg
Cit0aGUgcHl0ZXN0IGZpeHR1cmUgZnVuY3Rpb24gYGBkYl9jbGFzc2BgIGlzIGNhbGxlZCBvbmNl
IHBlciBjbGFzcy4KK0R1ZSB0byB0aGUgZGVsaWJlcmF0ZWx5IGZhaWxpbmcgYXNzZXJ0IHN0YXRl
bWVudHMsIHdlIGNhbiB0YWtlIGEgbG9vayBhdAordGhlIGBgc2VsZi5kYmBgIHZhbHVlcyBpbiB0
aGUgdHJhY2ViYWNrOjoKKworICAgICQgcHl0ZXN0IHRlc3RfdW5pdHRlc3RfZGIucHkKKyAgICA9
PT09PT09PT09PT09PT09PT09PT09PT09PT0gdGVzdCBzZXNzaW9uIHN0YXJ0cyA9PT09PT09PT09
PT09PT09PT09PT09PT09PT09CisgICAgcGxhdGZvcm0gbGludXggLS0gUHl0aG9uIDMueC55LCBw
eXRlc3QtMy54LnksIHB5LTEueC55LCBwbHVnZ3ktMC54LnkKKyAgICByb290ZGlyOiAkUkVHRU5E
T0NfVE1QRElSLCBpbmlmaWxlOgorICAgIGNvbGxlY3RlZCAyIGl0ZW1zCisgICAgCisgICAgdGVz
dF91bml0dGVzdF9kYi5weSBGRiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgWzEwMCVdCisgICAgCisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09IEZBSUxVUkVTID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIF9fX19f
X19fX19fX19fX19fX19fX19fX19fXyBNeVRlc3QudGVzdF9tZXRob2QxIF9fX19fX19fX19fX19f
X19fX19fX19fX19fX18KKyAgICAKKyAgICBzZWxmID0gPHRlc3RfdW5pdHRlc3RfZGIuTXlUZXN0
IHRlc3RNZXRob2Q9dGVzdF9tZXRob2QxPgorICAgIAorICAgICAgICBkZWYgdGVzdF9tZXRob2Qx
KHNlbGYpOgorICAgICAgICAgICAgYXNzZXJ0IGhhc2F0dHIoc2VsZiwgImRiIikKKyAgICA+ICAg
ICAgIGFzc2VydCAwLCBzZWxmLmRiICAgIyBmYWlsIGZvciBkZW1vIHB1cnBvc2VzCisgICAgRSAg
ICAgICBBc3NlcnRpb25FcnJvcjogPGNvbmZ0ZXN0LmRiX2NsYXNzLjxsb2NhbHM+LkR1bW15REIg
b2JqZWN0IGF0IDB4ZGVhZGJlZWY+CisgICAgRSAgICAgICBhc3NlcnQgMAorICAgIAorICAgIHRl
c3RfdW5pdHRlc3RfZGIucHk6OTogQXNzZXJ0aW9uRXJyb3IKKyAgICBfX19fX19fX19fX19fX19f
X19fX19fX19fX18gTXlUZXN0LnRlc3RfbWV0aG9kMiBfX19fX19fX19fX19fX19fX19fX19fX19f
X19fCisgICAgCisgICAgc2VsZiA9IDx0ZXN0X3VuaXR0ZXN0X2RiLk15VGVzdCB0ZXN0TWV0aG9k
PXRlc3RfbWV0aG9kMj4KKyAgICAKKyAgICAgICAgZGVmIHRlc3RfbWV0aG9kMihzZWxmKToKKyAg
ICA+ICAgICAgIGFzc2VydCAwLCBzZWxmLmRiICAgIyBmYWlsIGZvciBkZW1vIHB1cnBvc2VzCisg
ICAgRSAgICAgICBBc3NlcnRpb25FcnJvcjogPGNvbmZ0ZXN0LmRiX2NsYXNzLjxsb2NhbHM+LkR1
bW15REIgb2JqZWN0IGF0IDB4ZGVhZGJlZWY+CisgICAgRSAgICAgICBhc3NlcnQgMAorICAgIAor
ICAgIHRlc3RfdW5pdHRlc3RfZGIucHk6MTI6IEFzc2VydGlvbkVycm9yCisgICAgPT09PT09PT09
PT09PT09PT09PT09PT09PSAyIGZhaWxlZCBpbiAwLjEyIHNlY29uZHMgPT09PT09PT09PT09PT09
PT09PT09PT09PQorCitUaGlzIGRlZmF1bHQgcHl0ZXN0IHRyYWNlYmFjayBzaG93cyB0aGF0IHRo
ZSB0d28gdGVzdCBtZXRob2RzCitzaGFyZSB0aGUgc2FtZSBgYHNlbGYuZGJgYCBpbnN0YW5jZSB3
aGljaCB3YXMgb3VyIGludGVudGlvbgord2hlbiB3cml0aW5nIHRoZSBjbGFzcy1zY29wZWQgZml4
dHVyZSBmdW5jdGlvbiBhYm92ZS4KKworCitVc2luZyBhdXRvdXNlIGZpeHR1cmVzIGFuZCBhY2Nl
c3Npbmcgb3RoZXIgZml4dHVyZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorCitBbHRob3VnaCBpdCdzIHVzdWFsbHkgYmV0dGVyIHRvIGV4cGxp
Y2l0bHkgZGVjbGFyZSB1c2Ugb2YgZml4dHVyZXMgeW91IG5lZWQKK2ZvciBhIGdpdmVuIHRlc3Qs
IHlvdSBtYXkgc29tZXRpbWVzIHdhbnQgdG8gaGF2ZSBmaXh0dXJlcyB0aGF0IGFyZSAKK2F1dG9t
YXRpY2FsbHkgdXNlZCBpbiBhIGdpdmVuIGNvbnRleHQuICBBZnRlciBhbGwsIHRoZSB0cmFkaXRp
b25hbCAKK3N0eWxlIG9mIHVuaXR0ZXN0LXNldHVwIG1hbmRhdGVzIHRoZSB1c2Ugb2YgdGhpcyBp
bXBsaWNpdCBmaXh0dXJlIHdyaXRpbmcKK2FuZCBjaGFuY2VzIGFyZSwgeW91IGFyZSB1c2VkIHRv
IGl0IG9yIGxpa2UgaXQuICAKKworWW91IGNhbiBmbGFnIGZpeHR1cmUgZnVuY3Rpb25zIHdpdGgg
YGBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKWBgCithbmQgZGVmaW5lIHRoZSBmaXh0dXJl
IGZ1bmN0aW9uIGluIHRoZSBjb250ZXh0IHdoZXJlIHlvdSB3YW50IGl0IHVzZWQuCitMZXQncyBs
b29rIGF0IGFuIGBgaW5pdGRpcmBgIGZpeHR1cmUgd2hpY2ggbWFrZXMgYWxsIHRlc3QgbWV0aG9k
cyBvZiBhCitgYFRlc3RDYXNlYGAgY2xhc3MgZXhlY3V0ZSBpbiBhIHRlbXBvcmFyeSBkaXJlY3Rv
cnkgd2l0aCBhCitwcmUtaW5pdGlhbGl6ZWQgYGBzYW1wbGVmaWxlLmluaWBgLiAgT3VyIGBgaW5p
dGRpcmBgIGZpeHR1cmUgaXRzZWxmIHVzZXMKK3RoZSBweXRlc3QgYnVpbHRpbiA6cmVmOmB0bXBk
aXIgPHRtcGRpcj5gIGZpeHR1cmUgdG8gZGVsZWdhdGUgdGhlCitjcmVhdGlvbiBvZiBhIHBlci10
ZXN0IHRlbXBvcmFyeSBkaXJlY3Rvcnk6OgorCisgICAgIyBjb250ZW50IG9mIHRlc3RfdW5pdHRl
c3RfY2xlYW5kaXIucHkKKyAgICBpbXBvcnQgcHl0ZXN0CisgICAgaW1wb3J0IHVuaXR0ZXN0CisK
KyAgICBjbGFzcyBNeVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgICAgIEBweXRlc3Qu
Zml4dHVyZShhdXRvdXNlPVRydWUpCisgICAgICAgIGRlZiBpbml0ZGlyKHNlbGYsIHRtcGRpcik6
CisgICAgICAgICAgICB0bXBkaXIuY2hkaXIoKSAjIGNoYW5nZSB0byBweXRlc3QtcHJvdmlkZWQg
dGVtcG9yYXJ5IGRpcmVjdG9yeQorICAgICAgICAgICAgdG1wZGlyLmpvaW4oInNhbXBsZWZpbGUu
aW5pIikud3JpdGUoIiMgdGVzdGRhdGEiKQorCisgICAgICAgIGRlZiB0ZXN0X21ldGhvZChzZWxm
KToKKyAgICAgICAgICAgIHdpdGggb3Blbigic2FtcGxlZmlsZS5pbmkiKSBhcyBmOgorICAgICAg
ICAgICAgICAgIHMgPSBmLnJlYWQoKQorICAgICAgICAgICAgYXNzZXJ0ICJ0ZXN0ZGF0YSIgaW4g
cworCitEdWUgdG8gdGhlIGBgYXV0b3VzZWBgIGZsYWcgdGhlIGBgaW5pdGRpcmBgIGZpeHR1cmUg
ZnVuY3Rpb24gd2lsbCBiZQordXNlZCBmb3IgYWxsIG1ldGhvZHMgb2YgdGhlIGNsYXNzIHdoZXJl
IGl0IGlzIGRlZmluZWQuICBUaGlzIGlzIGEKK3Nob3J0Y3V0IGZvciB1c2luZyBhIGBgQHB5dGVz
dC5tYXJrLnVzZWZpeHR1cmVzKCJpbml0ZGlyIilgYCBtYXJrZXIKK29uIHRoZSBjbGFzcyBsaWtl
IGluIHRoZSBwcmV2aW91cyBleGFtcGxlLgorCitSdW5uaW5nIHRoaXMgdGVzdCBtb2R1bGUgLi4u
OjoKKworICAgICQgcHl0ZXN0IC1xIHRlc3RfdW5pdHRlc3RfY2xlYW5kaXIucHkKKyAgICAuICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbMTAwJV0KKyAgICAxIHBhc3NlZCBpbiAwLjEyIHNlY29uZHMKKworLi4uIGdpdmVz
IHVzIG9uZSBwYXNzZWQgdGVzdCBiZWNhdXNlIHRoZSBgYGluaXRkaXJgYCBmaXh0dXJlIGZ1bmN0
aW9uCit3YXMgZXhlY3V0ZWQgYWhlYWQgb2YgdGhlIGBgdGVzdF9tZXRob2RgYC4KKworLi4gbm90
ZTo6CisKKyAgIGBgdW5pdHRlc3QuVGVzdENhc2VgYCBtZXRob2RzIGNhbm5vdCBkaXJlY3RseSBy
ZWNlaXZlIGZpeHR1cmUKKyAgIGFyZ3VtZW50cyBhcyBpbXBsZW1lbnRpbmcgdGhhdCBpcyBsaWtl
bHkgdG8gaW5mbGljdAorICAgb24gdGhlIGFiaWxpdHkgdG8gcnVuIGdlbmVyYWwgdW5pdHRlc3Qu
VGVzdENhc2UgdGVzdCBzdWl0ZXMuCisKKyAgIFRoZSBhYm92ZSBgYHVzZWZpeHR1cmVzYGAgYW5k
IGBgYXV0b3VzZWBgIGV4YW1wbGVzIHNob3VsZCBoZWxwIHRvIG1peCBpbgorICAgcHl0ZXN0IGZp
eHR1cmVzIGludG8gdW5pdHRlc3Qgc3VpdGVzLgorCisgICBZb3UgY2FuIGFsc28gZ3JhZHVhbGx5
IG1vdmUgYXdheSBmcm9tIHN1YmNsYXNzaW5nIGZyb20gYGB1bml0dGVzdC5UZXN0Q2FzZWBgIHRv
ICpwbGFpbiBhc3NlcnRzKgorICAgYW5kIHRoZW4gc3RhcnQgdG8gYmVuZWZpdCBmcm9tIHRoZSBm
dWxsIHB5dGVzdCBmZWF0dXJlIHNldCBzdGVwIGJ5IHN0ZXAuCisKKy4uIF9wZGItdW5pdHRlc3Qt
bm90ZToKKworLi4gbm90ZTo6CisKKyAgICBSdW5uaW5nIHRlc3RzIGZyb20gYGB1bml0dGVzdC5U
ZXN0Q2FzZWBgIHN1YmNsYXNzZXMgd2l0aCBgYC0tcGRiYGAgd2lsbAorICAgIGRpc2FibGUgdGVh
ckRvd24gYW5kIGNsZWFudXAgbWV0aG9kcyBmb3IgdGhlIGNhc2UgdGhhdCBhbiBFeGNlcHRpb24K
KyAgICBvY2N1cnMuIFRoaXMgYWxsb3dzIHByb3BlciBwb3N0IG1vcnRlbSBkZWJ1Z2dpbmcgZm9y
IGFsbCBhcHBsaWNhdGlvbnMKKyAgICB3aGljaCBoYXZlIHNpZ25pZmljYW50IGxvZ2ljIGluIHRo
ZWlyIHRlYXJEb3duIG1hY2hpbmVyeS4gSG93ZXZlciwKKyAgICBzdXBwb3J0aW5nIHRoaXMgZmVh
dHVyZSBoYXMgdGhlIGZvbGxvd2luZyBzaWRlIGVmZmVjdDogSWYgcGVvcGxlCisgICAgb3Zlcndy
aXRlIGBgdW5pdHRlc3QuVGVzdENhc2VgYCBgYF9fY2FsbF9fYGAgb3IgYGBydW5gYCwgdGhleSBu
ZWVkIHRvCisgICAgdG8gb3ZlcndyaXRlIGBgZGVidWdgYCBpbiB0aGUgc2FtZSB3YXkgICh0aGlz
IGlzIGFsc28gdHJ1ZSBmb3Igc3RhbmRhcmQKKyAgICB1bml0dGVzdCkuCisKKy4uIG5vdGU6Ogor
CisgICAgRHVlIHRvIGFyY2hpdGVjdHVyYWwgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgdHdvIGZy
YW1ld29ya3MsIHNldHVwIGFuZAorICAgIHRlYXJkb3duIGZvciBgYHVuaXR0ZXN0YGAtYmFzZWQg
dGVzdHMgaXMgcGVyZm9ybWVkIGR1cmluZyB0aGUgYGBjYWxsYGAgcGhhc2UKKyAgICBvZiB0ZXN0
aW5nIGluc3RlYWQgb2YgaW4gYGBweXRlc3RgYCdzIHN0YW5kYXJkIGBgc2V0dXBgYCBhbmQgYGB0
ZWFyZG93bmBgCisgICAgc3RhZ2VzLiBUaGlzIGNhbiBiZSBpbXBvcnRhbnQgdG8gdW5kZXJzdGFu
ZCBpbiBzb21lIHNpdHVhdGlvbnMsIHBhcnRpY3VsYXJseQorICAgIHdoZW4gcmVhc29uaW5nIGFi
b3V0IGVycm9ycy4gRm9yIGV4YW1wbGUsIGlmIGEgYGB1bml0dGVzdGBgLWJhc2VkIHN1aXRlCisg
ICAgZXhoaWJpdHMgZXJyb3JzIGR1cmluZyBzZXR1cCwgYGBweXRlc3RgYCB3aWxsIHJlcG9ydCBu
byBlcnJvcnMgZHVyaW5nIGl0cworICAgIGBgc2V0dXBgYCBwaGFzZSBhbmQgd2lsbCBpbnN0ZWFk
IHJhaXNlIHRoZSBlcnJvciBkdXJpbmcgYGBjYWxsYGAuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vdXNhZ2UucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3VzYWdlLnJzdApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42MDkxZGI4YmUzOGZmY2ZiMGU0OTdlYzM5ZjM1ZGUwNTI5YTgyMjNhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3VzYWdlLnJzdApAQCAtMCwwICsxLDM5MiBAQAor
CisuLiBfdXNhZ2U6CisKK1VzYWdlIGFuZCBJbnZvY2F0aW9ucworPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CisKKworLi4gX2NtZGxpbmU6CisKK0NhbGxpbmcgcHl0
ZXN0IHRocm91Z2ggYGBweXRob24gLW0gcHl0ZXN0YGAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIHZlcnNpb25hZGRlZDo6IDIuMAor
CitZb3UgY2FuIGludm9rZSB0ZXN0aW5nIHRocm91Z2ggdGhlIFB5dGhvbiBpbnRlcnByZXRlciBm
cm9tIHRoZSBjb21tYW5kIGxpbmU6OgorCisgICAgcHl0aG9uIC1tIHB5dGVzdCBbLi4uXQorCitU
aGlzIGlzIGFsbW9zdCBlcXVpdmFsZW50IHRvIGludm9raW5nIHRoZSBjb21tYW5kIGxpbmUgc2Ny
aXB0IGBgcHl0ZXN0IFsuLi5dYGAKK2RpcmVjdGx5LCBleGNlcHQgdGhhdCBjYWxsaW5nIHZpYSBg
YHB5dGhvbmBgIHdpbGwgYWxzbyBhZGQgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHRvIGBgc3lzLnBh
dGhgYC4KKworUG9zc2libGUgZXhpdCBjb2RlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworUnVubmluZyBgYHB5dGVzdGBg
IGNhbiByZXN1bHQgaW4gc2l4IGRpZmZlcmVudCBleGl0IGNvZGVzOgorCis6RXhpdCBjb2RlIDA6
IEFsbCB0ZXN0cyB3ZXJlIGNvbGxlY3RlZCBhbmQgcGFzc2VkIHN1Y2Nlc3NmdWxseQorOkV4aXQg
Y29kZSAxOiBUZXN0cyB3ZXJlIGNvbGxlY3RlZCBhbmQgcnVuIGJ1dCBzb21lIG9mIHRoZSB0ZXN0
cyBmYWlsZWQKKzpFeGl0IGNvZGUgMjogVGVzdCBleGVjdXRpb24gd2FzIGludGVycnVwdGVkIGJ5
IHRoZSB1c2VyCis6RXhpdCBjb2RlIDM6IEludGVybmFsIGVycm9yIGhhcHBlbmVkIHdoaWxlIGV4
ZWN1dGluZyB0ZXN0cworOkV4aXQgY29kZSA0OiBweXRlc3QgY29tbWFuZCBsaW5lIHVzYWdlIGVy
cm9yCis6RXhpdCBjb2RlIDU6IE5vIHRlc3RzIHdlcmUgY29sbGVjdGVkCisKK0dldHRpbmcgaGVs
cCBvbiB2ZXJzaW9uLCBvcHRpb24gbmFtZXMsIGVudmlyb25tZW50IHZhcmlhYmxlcworLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworOjoKKworICAgIHB5dGVzdCAtLXZlcnNpb24gICAjIHNob3dzIHdoZXJlIHB5dGVzdCB3YXMg
aW1wb3J0ZWQgZnJvbQorICAgIHB5dGVzdCAtLWZpeHR1cmVzICAjIHNob3cgYXZhaWxhYmxlIGJ1
aWx0aW4gZnVuY3Rpb24gYXJndW1lbnRzCisgICAgcHl0ZXN0IC1oIHwgLS1oZWxwICMgc2hvdyBo
ZWxwIG9uIGNvbW1hbmQgbGluZSBhbmQgY29uZmlnIGZpbGUgb3B0aW9ucworCisKKy4uIF9tYXhm
YWlsOgorCitTdG9wcGluZyBhZnRlciB0aGUgZmlyc3QgKG9yIE4pIGZhaWx1cmVzCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVG8gc3RvcCB0
aGUgdGVzdGluZyBwcm9jZXNzIGFmdGVyIHRoZSBmaXJzdCAoTikgZmFpbHVyZXM6OgorCisgICAg
cHl0ZXN0IC14ICAgICAgICAgICAgIyBzdG9wIGFmdGVyIGZpcnN0IGZhaWx1cmUKKyAgICBweXRl
c3QgLS1tYXhmYWlsPTIgICAgIyBzdG9wIGFmdGVyIHR3byBmYWlsdXJlcworCisuLiBfc2VsZWN0
LXRlc3RzOgorCitTcGVjaWZ5aW5nIHRlc3RzIC8gc2VsZWN0aW5nIHRlc3RzCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworUHl0ZXN0IHN1cHBv
cnRzIHNldmVyYWwgd2F5cyB0byBydW4gYW5kIHNlbGVjdCB0ZXN0cyBmcm9tIHRoZSBjb21tYW5k
LWxpbmUuCisKKyoqUnVuIHRlc3RzIGluIGEgbW9kdWxlKioKKworOjoKKworICAgIHB5dGVzdCB0
ZXN0X21vZC5weQorCisqKlJ1biB0ZXN0cyBpbiBhIGRpcmVjdG9yeSoqCisKKzo6CisKKyAgICBw
eXRlc3QgdGVzdGluZy8KKworKipSdW4gdGVzdHMgYnkga2V5d29yZCBleHByZXNzaW9ucyoqCisK
Kzo6CisKKyAgICBweXRlc3QgLWsgIk15Q2xhc3MgYW5kIG5vdCBtZXRob2QiCisKK1RoaXMgd2ls
bCBydW4gdGVzdHMgd2hpY2ggY29udGFpbiBuYW1lcyB0aGF0IG1hdGNoIHRoZSBnaXZlbiAqc3Ry
aW5nIGV4cHJlc3Npb24qLCB3aGljaCBjYW4KK2luY2x1ZGUgUHl0aG9uIG9wZXJhdG9ycyB0aGF0
IHVzZSBmaWxlbmFtZXMsIGNsYXNzIG5hbWVzIGFuZCBmdW5jdGlvbiBuYW1lcyBhcyB2YXJpYWJs
ZXMuCitUaGUgZXhhbXBsZSBhYm92ZSB3aWxsIHJ1biBgYFRlc3RNeUNsYXNzLnRlc3Rfc29tZXRo
aW5nYGAgIGJ1dCBub3QgYGBUZXN0TXlDbGFzcy50ZXN0X21ldGhvZF9zaW1wbGVgYC4KKworLi4g
X25vZGVpZHM6CisKKyoqUnVuIHRlc3RzIGJ5IG5vZGUgaWRzKioKKworRWFjaCBjb2xsZWN0ZWQg
dGVzdCBpcyBhc3NpZ25lZCBhIHVuaXF1ZSBgYG5vZGVpZGBgIHdoaWNoIGNvbnNpc3Qgb2YgdGhl
IG1vZHVsZSBmaWxlbmFtZSBmb2xsb3dlZAorYnkgc3BlY2lmaWVycyBsaWtlIGNsYXNzIG5hbWVz
LCBmdW5jdGlvbiBuYW1lcyBhbmQgcGFyYW1ldGVycyBmcm9tIHBhcmFtZXRyaXphdGlvbiwgc2Vw
YXJhdGVkIGJ5IGBgOjpgYCBjaGFyYWN0ZXJzLgorCitUbyBydW4gYSBzcGVjaWZpYyB0ZXN0IHdp
dGhpbiBhIG1vZHVsZTo6CisKKyAgICBweXRlc3QgdGVzdF9tb2QucHk6OnRlc3RfZnVuYworCisK
K0Fub3RoZXIgZXhhbXBsZSBzcGVjaWZ5aW5nIGEgdGVzdCBtZXRob2QgaW4gdGhlIGNvbW1hbmQg
bGluZTo6CisKKyAgICBweXRlc3QgdGVzdF9tb2QucHk6OlRlc3RDbGFzczo6dGVzdF9tZXRob2QK
KworKipSdW4gdGVzdHMgYnkgbWFya2VyIGV4cHJlc3Npb25zKioKKworOjoKKworICAgIHB5dGVz
dCAtbSBzbG93CisKK1dpbGwgcnVuIGFsbCB0ZXN0cyB3aGljaCBhcmUgZGVjb3JhdGVkIHdpdGgg
dGhlIGBgQHB5dGVzdC5tYXJrLnNsb3dgYCBkZWNvcmF0b3IuCisKK0ZvciBtb3JlIGluZm9ybWF0
aW9uIHNlZSA6cmVmOmBtYXJrcyA8bWFyaz5gLgorCisqKlJ1biB0ZXN0cyBmcm9tIHBhY2thZ2Vz
KioKKworOjoKKworICAgIHB5dGVzdCAtLXB5YXJncyBwa2cudGVzdGluZworICAgICAKK1RoaXMg
d2lsbCBpbXBvcnQgYGBwa2cudGVzdGluZ2BgIGFuZCB1c2UgaXRzIGZpbGVzeXN0ZW0gbG9jYXRp
b24gdG8gZmluZCBhbmQgcnVuIHRlc3RzIGZyb20uCisgICAgCisKK01vZGlmeWluZyBQeXRob24g
dHJhY2ViYWNrIHByaW50aW5nCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKK0V4YW1wbGVzIGZvciBtb2RpZnlpbmcgdHJhY2ViYWNrIHByaW50aW5nOjoK
KworICAgIHB5dGVzdCAtLXNob3dsb2NhbHMgIyBzaG93IGxvY2FsIHZhcmlhYmxlcyBpbiB0cmFj
ZWJhY2tzCisgICAgcHl0ZXN0IC1sICAgICAgICAgICAjIHNob3cgbG9jYWwgdmFyaWFibGVzIChz
aG9ydGN1dCkKKworICAgIHB5dGVzdCAtLXRiPWF1dG8gICAgIyAoZGVmYXVsdCkgJ2xvbmcnIHRy
YWNlYmFja3MgZm9yIHRoZSBmaXJzdCBhbmQgbGFzdAorICAgICAgICAgICAgICAgICAgICAgICAg
ICMgZW50cnksIGJ1dCAnc2hvcnQnIHN0eWxlIGZvciB0aGUgb3RoZXIgZW50cmllcworICAgIHB5
dGVzdCAtLXRiPWxvbmcgICAgIyBleGhhdXN0aXZlLCBpbmZvcm1hdGl2ZSB0cmFjZWJhY2sgZm9y
bWF0dGluZworICAgIHB5dGVzdCAtLXRiPXNob3J0ICAgIyBzaG9ydGVyIHRyYWNlYmFjayBmb3Jt
YXQKKyAgICBweXRlc3QgLS10Yj1saW5lICAgICMgb25seSBvbmUgbGluZSBwZXIgZmFpbHVyZQor
ICAgIHB5dGVzdCAtLXRiPW5hdGl2ZSAgIyBQeXRob24gc3RhbmRhcmQgbGlicmFyeSBmb3JtYXR0
aW5nCisgICAgcHl0ZXN0IC0tdGI9bm8gICAgICAjIG5vIHRyYWNlYmFjayBhdCBhbGwKKworVGhl
IGBgLS1mdWxsLXRyYWNlYGAgY2F1c2VzIHZlcnkgbG9uZyB0cmFjZXMgdG8gYmUgcHJpbnRlZCBv
biBlcnJvciAobG9uZ2VyCit0aGFuIGBgLS10Yj1sb25nYGApLiBJdCBhbHNvIGVuc3VyZXMgdGhh
dCBhIHN0YWNrIHRyYWNlIGlzIHByaW50ZWQgb24KKyoqS2V5Ym9hcmRJbnRlcnJ1cHQqKiAoQ3Ry
bCtDKS4KK1RoaXMgaXMgdmVyeSB1c2VmdWwgaWYgdGhlIHRlc3RzIGFyZSB0YWtpbmcgdG9vIGxv
bmcgYW5kIHlvdSBpbnRlcnJ1cHQgdGhlbQord2l0aCBDdHJsK0MgdG8gZmluZCBvdXQgd2hlcmUg
dGhlIHRlc3RzIGFyZSAqaGFuZ2luZyouIEJ5IGRlZmF1bHQgbm8gb3V0cHV0Cit3aWxsIGJlIHNo
b3duIChiZWNhdXNlIEtleWJvYXJkSW50ZXJydXB0IGlzIGNhdWdodCBieSBweXRlc3QpLiBCeSB1
c2luZyB0aGlzCitvcHRpb24geW91IG1ha2Ugc3VyZSBhIHRyYWNlIGlzIHNob3duLgorCisKKy4u
IF9wZGItb3B0aW9uOgorCitEcm9wcGluZyB0byBQREJfIChQeXRob24gRGVidWdnZXIpIG9uIGZh
aWx1cmVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CisuLiBfUERCOiBodHRwOi8vZG9jcy5weXRob24ub3JnL2xpYnJhcnkvcGRiLmh0bWwKKworUHl0
aG9uIGNvbWVzIHdpdGggYSBidWlsdGluIFB5dGhvbiBkZWJ1Z2dlciBjYWxsZWQgUERCXy4gIGBg
cHl0ZXN0YGAKK2FsbG93cyBvbmUgdG8gZHJvcCBpbnRvIHRoZSBQREJfIHByb21wdCB2aWEgYSBj
b21tYW5kIGxpbmUgb3B0aW9uOjoKKworICAgIHB5dGVzdCAtLXBkYgorCitUaGlzIHdpbGwgaW52
b2tlIHRoZSBQeXRob24gZGVidWdnZXIgb24gZXZlcnkgZmFpbHVyZS4gIE9mdGVuIHlvdSBtaWdo
dAorb25seSB3YW50IHRvIGRvIHRoaXMgZm9yIHRoZSBmaXJzdCBmYWlsaW5nIHRlc3QgdG8gdW5k
ZXJzdGFuZCBhIGNlcnRhaW4KK2ZhaWx1cmUgc2l0dWF0aW9uOjoKKworICAgIHB5dGVzdCAteCAt
LXBkYiAgICMgZHJvcCB0byBQREIgb24gZmlyc3QgZmFpbHVyZSwgdGhlbiBlbmQgdGVzdCBzZXNz
aW9uCisgICAgcHl0ZXN0IC0tcGRiIC0tbWF4ZmFpbD0zICAjIGRyb3AgdG8gUERCIGZvciBmaXJz
dCB0aHJlZSBmYWlsdXJlcworCitOb3RlIHRoYXQgb24gYW55IGZhaWx1cmUgdGhlIGV4Y2VwdGlv
biBpbmZvcm1hdGlvbiBpcyBzdG9yZWQgb24KK2Bgc3lzLmxhc3RfdmFsdWVgYCwgYGBzeXMubGFz
dF90eXBlYGAgYW5kIGBgc3lzLmxhc3RfdHJhY2ViYWNrYGAuIEluCitpbnRlcmFjdGl2ZSB1c2Us
IHRoaXMgYWxsb3dzIG9uZSB0byBkcm9wIGludG8gcG9zdG1vcnRlbSBkZWJ1Z2dpbmcgd2l0aAor
YW55IGRlYnVnIHRvb2wuIE9uZSBjYW4gYWxzbyBtYW51YWxseSBhY2Nlc3MgdGhlIGV4Y2VwdGlv
biBpbmZvcm1hdGlvbiwKK2ZvciBleGFtcGxlOjoKKworICAgID4+PiBpbXBvcnQgc3lzCisgICAg
Pj4+IHN5cy5sYXN0X3RyYWNlYmFjay50Yl9saW5lbm8KKyAgICA0MgorICAgID4+PiBzeXMubGFz
dF92YWx1ZQorICAgIEFzc2VydGlvbkVycm9yKCdhc3NlcnQgcmVzdWx0ID09ICJvayInLCkKKwor
Li4gX2JyZWFrcG9pbnRzOgorCitTZXR0aW5nIGJyZWFrcG9pbnRzCistLS0tLS0tLS0tLS0tLS0t
LS0tCisKKy4uIHZlcnNpb25hZGRlZDogMi40LjAKKworVG8gc2V0IGEgYnJlYWtwb2ludCBpbiB5
b3VyIGNvZGUgdXNlIHRoZSBuYXRpdmUgUHl0aG9uIGBgaW1wb3J0IHBkYjtwZGIuc2V0X3RyYWNl
KClgYCBjYWxsCitpbiB5b3VyIGNvZGUgYW5kIHB5dGVzdCBhdXRvbWF0aWNhbGx5IGRpc2FibGVz
IGl0cyBvdXRwdXQgY2FwdHVyZSBmb3IgdGhhdCB0ZXN0OgorCisqIE91dHB1dCBjYXB0dXJlIGlu
IG90aGVyIHRlc3RzIGlzIG5vdCBhZmZlY3RlZC4KKyogQW55IHByaW9yIHRlc3Qgb3V0cHV0IHRo
YXQgaGFzIGFscmVhZHkgYmVlbiBjYXB0dXJlZCBhbmQgd2lsbCBiZSBwcm9jZXNzZWQgYXMKKyAg
c3VjaC4KKyogQW55IGxhdGVyIG91dHB1dCBwcm9kdWNlZCB3aXRoaW4gdGhlIHNhbWUgdGVzdCB3
aWxsIG5vdCBiZSBjYXB0dXJlZCBhbmQgd2lsbAorICBpbnN0ZWFkIGdldCBzZW50IGRpcmVjdGx5
IHRvIGBgc3lzLnN0ZG91dGBgLiBOb3RlIHRoYXQgdGhpcyBob2xkcyB0cnVlIGV2ZW4KKyAgZm9y
IHRlc3Qgb3V0cHV0IG9jY3VycmluZyBhZnRlciB5b3UgZXhpdCB0aGUgaW50ZXJhY3RpdmUgUERC
XyB0cmFjaW5nIHNlc3Npb24KKyAgYW5kIGNvbnRpbnVlIHdpdGggdGhlIHJlZ3VsYXIgdGVzdCBy
dW4uCisKKy4uIF9kdXJhdGlvbnM6CisKK1Byb2ZpbGluZyB0ZXN0IGV4ZWN1dGlvbiBkdXJhdGlv
bgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiB2ZXJzaW9uYWRk
ZWQ6IDIuMgorCitUbyBnZXQgYSBsaXN0IG9mIHRoZSBzbG93ZXN0IDEwIHRlc3QgZHVyYXRpb25z
OjoKKworICAgIHB5dGVzdCAtLWR1cmF0aW9ucz0xMAorCisKK0NyZWF0aW5nIEpVbml0WE1MIGZv
cm1hdCBmaWxlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCitUbyBjcmVhdGUgcmVzdWx0IGZpbGVzIHdoaWNoIGNhbiBiZSByZWFkIGJ5IEpl
bmtpbnNfIG9yIG90aGVyIENvbnRpbnVvdXMKK2ludGVncmF0aW9uIHNlcnZlcnMsIHVzZSB0aGlz
IGludm9jYXRpb246OgorCisgICAgcHl0ZXN0IC0tanVuaXR4bWw9cGF0aAorCit0byBjcmVhdGUg
YW4gWE1MIGZpbGUgYXQgYGBwYXRoYGAuCisKKy4uIHZlcnNpb25hZGRlZDo6IDMuMQorCitUbyBz
ZXQgdGhlIG5hbWUgb2YgdGhlIHJvb3QgdGVzdCBzdWl0ZSB4bWwgaXRlbSwgeW91IGNhbiBjb25m
aWd1cmUgdGhlIGBganVuaXRfc3VpdGVfbmFtZWBgIG9wdGlvbiBpbiB5b3VyIGNvbmZpZyBmaWxl
OgorCisuLiBjb2RlLWJsb2NrOjogaW5pCisKKyAgICBbcHl0ZXN0XQorICAgIGp1bml0X3N1aXRl
X25hbWUgPSBteV9zdWl0ZQorCityZWNvcmRfeG1sX3Byb3BlcnR5CiteXl5eXl5eXl5eXl5eXl5e
Xl5eXl5eXl5eXl5eXl5eXgorCisuLiB2ZXJzaW9uYWRkZWQ6OiAyLjgKKworSWYgeW91IHdhbnQg
dG8gbG9nIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gZm9yIGEgdGVzdCwgeW91IGNhbiB1c2UgdGhl
CitgYHJlY29yZF94bWxfcHJvcGVydHlgYCBmaXh0dXJlOgorCisuLiBjb2RlLWJsb2NrOjogcHl0
aG9uCisKKyAgICBkZWYgdGVzdF9mdW5jdGlvbihyZWNvcmRfeG1sX3Byb3BlcnR5KToKKyAgICAg
ICAgcmVjb3JkX3htbF9wcm9wZXJ0eSgiZXhhbXBsZV9rZXkiLCAxKQorICAgICAgICBhc3NlcnQg
MAorCitUaGlzIHdpbGwgYWRkIGFuIGV4dHJhIHByb3BlcnR5IGBgZXhhbXBsZV9rZXk9IjEiYGAg
dG8gdGhlIGdlbmVyYXRlZAorYGB0ZXN0Y2FzZWBgIHRhZzoKKworLi4gY29kZS1ibG9jazo6IHht
bAorCisgICAgPHRlc3RjYXNlIGNsYXNzbmFtZT0idGVzdF9mdW5jdGlvbiIgZmlsZT0idGVzdF9m
dW5jdGlvbi5weSIgbGluZT0iMCIgbmFtZT0idGVzdF9mdW5jdGlvbiIgdGltZT0iMC4wMDA5Ij4K
KyAgICAgIDxwcm9wZXJ0aWVzPgorICAgICAgICA8cHJvcGVydHkgbmFtZT0iZXhhbXBsZV9rZXki
IHZhbHVlPSIxIiAvPgorICAgICAgPC9wcm9wZXJ0aWVzPgorICAgIDwvdGVzdGNhc2U+CisKKy4u
IHdhcm5pbmc6OgorCisgICAgYGByZWNvcmRfeG1sX3Byb3BlcnR5YGAgaXMgYW4gZXhwZXJpbWVu
dGFsIGZlYXR1cmUsIGFuZCBpdHMgaW50ZXJmYWNlIG1pZ2h0IGJlIHJlcGxhY2VkCisgICAgYnkg
c29tZXRoaW5nIG1vcmUgcG93ZXJmdWwgYW5kIGdlbmVyYWwgaW4gZnV0dXJlIHZlcnNpb25zLiBU
aGUKKyAgICBmdW5jdGlvbmFsaXR5IHBlci1zZSB3aWxsIGJlIGtlcHQsIGhvd2V2ZXIuCisKKyAg
ICBDdXJyZW50bHkgaXQgZG9lcyBub3Qgd29yayB3aGVuIHVzZWQgd2l0aCB0aGUgYGBweXRlc3Qt
eGRpc3RgYCBwbHVnaW4uCisKKyAgICBBbHNvIHBsZWFzZSBub3RlIHRoYXQgdXNpbmcgdGhpcyBm
ZWF0dXJlIHdpbGwgYnJlYWsgYW55IHNjaGVtYSB2ZXJpZmljYXRpb24uCisgICAgVGhpcyBtaWdo
dCBiZSBhIHByb2JsZW0gd2hlbiB1c2VkIHdpdGggc29tZSBDSSBzZXJ2ZXJzLgorCitMb2dYTUw6
IGFkZF9nbG9iYWxfcHJvcGVydHkKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCisK
Ky4uIHZlcnNpb25hZGRlZDo6IDMuMAorCitJZiB5b3Ugd2FudCB0byBhZGQgYSBwcm9wZXJ0aWVz
IG5vZGUgaW4gdGhlIHRlc3RzdWl0ZSBsZXZlbCwgd2hpY2ggbWF5IGNvbnRhaW5zIHByb3BlcnRp
ZXMgdGhhdCBhcmUgcmVsZXZhbnQKK3RvIGFsbCB0ZXN0Y2FzZXMgeW91IGNhbiB1c2UgYGBMb2dY
TUwuYWRkX2dsb2JhbF9wcm9wZXJ0aWVzYGAKKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisg
ICAgaW1wb3J0IHB5dGVzdAorCisgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIikK
KyAgICBkZWYgbG9nX2dsb2JhbF9lbnZfZmFjdHMoZik6CisKKyAgICAgICAgaWYgcHl0ZXN0LmNv
bmZpZy5wbHVnaW5tYW5hZ2VyLmhhc3BsdWdpbignanVuaXR4bWwnKToKKyAgICAgICAgICAgIG15
X2p1bml0ID0gZ2V0YXR0cihweXRlc3QuY29uZmlnLCAnX3htbCcsIE5vbmUpCisKKyAgICAgICAg
bXlfanVuaXQuYWRkX2dsb2JhbF9wcm9wZXJ0eSgnQVJDSCcsICdQUEMnKQorICAgICAgICBteV9q
dW5pdC5hZGRfZ2xvYmFsX3Byb3BlcnR5KCdTVE9SQUdFX1RZUEUnLCAnQ0VQSCcpCisKKyAgICBA
cHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMobG9nX2dsb2JhbF9lbnZfZmFjdHMpCisgICAgZGVmIHN0
YXJ0X2FuZF9wcmVwYXJlX2VudigpOgorICAgICAgICBwYXNzCisKKyAgICBjbGFzcyBUZXN0TWUo
b2JqZWN0KToKKyAgICAgICAgZGVmIHRlc3RfZm9vKHNlbGYpOgorICAgICAgICAgICAgYXNzZXJ0
IFRydWUKKworVGhpcyB3aWxsIGFkZCBhIHByb3BlcnR5IG5vZGUgYmVsb3cgdGhlIHRlc3RzdWl0
ZSBub2RlIHRvIHRoZSBnZW5lcmF0ZWQgeG1sOgorCisuLiBjb2RlLWJsb2NrOjogeG1sCisKKyAg
ICA8dGVzdHN1aXRlIGVycm9ycz0iMCIgZmFpbHVyZXM9IjAiIG5hbWU9InB5dGVzdCIgc2tpcHM9
IjAiIHRlc3RzPSIxIiB0aW1lPSIwLjAwNiI+CisgICAgICA8cHJvcGVydGllcz4KKyAgICAgICAg
PHByb3BlcnR5IG5hbWU9IkFSQ0giIHZhbHVlPSJQUEMiLz4KKyAgICAgICAgPHByb3BlcnR5IG5h
bWU9IlNUT1JBR0VfVFlQRSIgdmFsdWU9IkNFUEgiLz4KKyAgICAgIDwvcHJvcGVydGllcz4KKyAg
ICAgIDx0ZXN0Y2FzZSBjbGFzc25hbWU9InRlc3RfbWUuVGVzdE1lIiBmaWxlPSJ0ZXN0X21lLnB5
IiBsaW5lPSIxNiIgbmFtZT0idGVzdF9mb28iIHRpbWU9IjAuMDAwMjQzNjYzNzg3ODQyIi8+Cisg
ICAgPC90ZXN0c3VpdGU+CisKKy4uIHdhcm5pbmc6OgorCisgICAgVGhpcyBpcyBhbiBleHBlcmlt
ZW50YWwgZmVhdHVyZSwgYW5kIGl0cyBpbnRlcmZhY2UgbWlnaHQgYmUgcmVwbGFjZWQKKyAgICBi
eSBzb21ldGhpbmcgbW9yZSBwb3dlcmZ1bCBhbmQgZ2VuZXJhbCBpbiBmdXR1cmUgdmVyc2lvbnMu
IFRoZQorICAgIGZ1bmN0aW9uYWxpdHkgcGVyLXNlIHdpbGwgYmUga2VwdC4KKworQ3JlYXRpbmcg
cmVzdWx0bG9nIGZvcm1hdCBmaWxlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiBkZXByZWNhdGVkOjogMy4wCisKKyAgICBUaGlzIG9w
dGlvbiBpcyByYXJlbHkgdXNlZCBhbmQgaXMgc2NoZWR1bGVkIGZvciByZW1vdmFsIGluIDQuMC4K
KworICAgIEFuIGFsdGVybmF0aXZlIGZvciB1c2VycyB3aGljaCBzdGlsbCBuZWVkIHNpbWlsYXIg
ZnVuY3Rpb25hbGl0eSBpcyB0byB1c2UgdGhlCisgICAgYHB5dGVzdC10YXAgPGh0dHBzOi8vcHlw
aS5weXRob24ub3JnL3B5cGkvcHl0ZXN0LXRhcD5gXyBwbHVnaW4gd2hpY2ggcHJvdmlkZXMKKyAg
ICBhIHN0cmVhbSBvZiB0ZXN0IGRhdGEuCisKKyAgICBJZiB5b3UgaGF2ZSBhbnkgY29uY2VybnMs
IHBsZWFzZSBkb24ndCBoZXNpdGF0ZSB0bworICAgIGBvcGVuIGFuIGlzc3VlIDxodHRwczovL2dp
dGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzPmBfLgorCitUbyBjcmVhdGUgcGxhaW4t
dGV4dCBtYWNoaW5lLXJlYWRhYmxlIHJlc3VsdCBmaWxlcyB5b3UgY2FuIGlzc3VlOjoKKworICAg
IHB5dGVzdCAtLXJlc3VsdGxvZz1wYXRoCisKK2FuZCBsb29rIGF0IHRoZSBjb250ZW50IGF0IHRo
ZSBgYHBhdGhgYCBsb2NhdGlvbi4gIFN1Y2ggZmlsZXMgYXJlIHVzZWQgZS5nLgorYnkgdGhlIGBQ
eVB5LXRlc3RgXyB3ZWIgcGFnZSB0byBzaG93IHRlc3QgcmVzdWx0cyBvdmVyIHNldmVyYWwgcmV2
aXNpb25zLgorCisuLiBfYFB5UHktdGVzdGA6IGh0dHA6Ly9idWlsZGJvdC5weXB5Lm9yZy9zdW1t
YXJ5CisKKworU2VuZGluZyB0ZXN0IHJlcG9ydCB0byBvbmxpbmUgcGFzdGViaW4gc2VydmljZQor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwor
KipDcmVhdGluZyBhIFVSTCBmb3IgZWFjaCB0ZXN0IGZhaWx1cmUqKjo6CisKKyAgICBweXRlc3Qg
LS1wYXN0ZWJpbj1mYWlsZWQKKworVGhpcyB3aWxsIHN1Ym1pdCB0ZXN0IHJ1biBpbmZvcm1hdGlv
biB0byBhIHJlbW90ZSBQYXN0ZSBzZXJ2aWNlIGFuZAorcHJvdmlkZSBhIFVSTCBmb3IgZWFjaCBm
YWlsdXJlLiAgWW91IG1heSBzZWxlY3QgdGVzdHMgYXMgdXN1YWwgb3IgYWRkCitmb3IgZXhhbXBs
ZSBgYC14YGAgaWYgeW91IG9ubHkgd2FudCB0byBzZW5kIG9uZSBwYXJ0aWN1bGFyIGZhaWx1cmUu
CisKKyoqQ3JlYXRpbmcgYSBVUkwgZm9yIGEgd2hvbGUgdGVzdCBzZXNzaW9uIGxvZyoqOjoKKwor
ICAgIHB5dGVzdCAtLXBhc3RlYmluPWFsbAorCitDdXJyZW50bHkgb25seSBwYXN0aW5nIHRvIHRo
ZSBodHRwOi8vYnBhc3RlLm5ldCBzZXJ2aWNlIGlzIGltcGxlbWVudGVkLgorCitEaXNhYmxpbmcg
cGx1Z2lucworLS0tLS0tLS0tLS0tLS0tLS0KKworVG8gZGlzYWJsZSBsb2FkaW5nIHNwZWNpZmlj
IHBsdWdpbnMgYXQgaW52b2NhdGlvbiB0aW1lLCB1c2UgdGhlIGBgLXBgYCBvcHRpb24KK3RvZ2V0
aGVyIHdpdGggdGhlIHByZWZpeCBgYG5vOmBgLgorCitFeGFtcGxlOiB0byBkaXNhYmxlIGxvYWRp
bmcgdGhlIHBsdWdpbiBgYGRvY3Rlc3RgYCwgd2hpY2ggaXMgcmVzcG9uc2libGUgZm9yCitleGVj
dXRpbmcgZG9jdGVzdCB0ZXN0cyBmcm9tIHRleHQgZmlsZXMsIGludm9rZSBweXRlc3QgbGlrZSB0
aGlzOjoKKworICAgIHB5dGVzdCAtcCBubzpkb2N0ZXN0CisKKy4uIF9gcHl0ZXN0Lm1haW4tdXNh
Z2VgOgorCitDYWxsaW5nIHB5dGVzdCBmcm9tIFB5dGhvbiBjb2RlCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIHZlcnNpb25hZGRlZDo6
IDIuMAorCitZb3UgY2FuIGludm9rZSBgYHB5dGVzdGBgIGZyb20gUHl0aG9uIGNvZGUgZGlyZWN0
bHk6OgorCisgICAgcHl0ZXN0Lm1haW4oKQorCit0aGlzIGFjdHMgYXMgaWYgeW91IHdvdWxkIGNh
bGwgInB5dGVzdCIgZnJvbSB0aGUgY29tbWFuZCBsaW5lLgorSXQgd2lsbCBub3QgcmFpc2UgYGBT
eXN0ZW1FeGl0YGAgYnV0IHJldHVybiB0aGUgZXhpdGNvZGUgaW5zdGVhZC4KK1lvdSBjYW4gcGFz
cyBpbiBvcHRpb25zIGFuZCBhcmd1bWVudHM6OgorCisgICAgcHl0ZXN0Lm1haW4oWycteCcsICdt
eXRlc3RkaXInXSkKKworWW91IGNhbiBzcGVjaWZ5IGFkZGl0aW9uYWwgcGx1Z2lucyB0byBgYHB5
dGVzdC5tYWluYGA6OgorCisgICAgIyBjb250ZW50IG9mIG15aW52b2tlLnB5CisgICAgaW1wb3J0
IHB5dGVzdAorICAgIGNsYXNzIE15UGx1Z2luKG9iamVjdCk6CisgICAgICAgIGRlZiBweXRlc3Rf
c2Vzc2lvbmZpbmlzaChzZWxmKToKKyAgICAgICAgICAgIHByaW50KCIqKiogdGVzdCBydW4gcmVw
b3J0aW5nIGZpbmlzaGluZyIpCisKKyAgICBweXRlc3QubWFpbihbIi1xcSJdLCBwbHVnaW5zPVtN
eVBsdWdpbigpXSkKKworUnVubmluZyBpdCB3aWxsIHNob3cgdGhhdCBgYE15UGx1Z2luYGAgd2Fz
IGFkZGVkIGFuZCBpdHMKK2hvb2sgd2FzIGludm9rZWQ6OgorCisgICAgJCBweXRob24gbXlpbnZv
a2UucHkKKyAgICAqKiogdGVzdCBydW4gcmVwb3J0aW5nIGZpbmlzaGluZworICAgIAorCisuLiBp
bmNsdWRlOjogbGlua3MuaW5jCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjM3MmRjNDI4ZDNkZmUyNzExNTk3OTY1OTA5ZjkyOTU4OGNjMzU0MAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDY3IEBACitU
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgor
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBz
Oi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBm
aWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vTWFrZWZpbGUKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
YWRvcHQucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fzc2VydC5yc3QKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vYmFja3dhcmRzLWNvbXBhdGliaWxpdHkucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Jh
c2gtY29tcGxldGlvbi5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYnVpbHRpbi5yc3QKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vY2FjaGUucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NhcHR1cmUucnN0
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NoYW5nZWxvZy5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
Y2hlY2tfc3BoaW54LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NvbmYucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vY29uZnRlc3QucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY29udGFjdC5yc3QKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vY29udGVudHMucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NvbnRy
aWJ1dGluZy5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY3VzdG9taXplLnJzdAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9kZXZlbG9wbWVudF9ndWlkZS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZG9j
dGVzdC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhpc3Rpbmd0ZXN0c3VpdGUucnN0CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2ZhcS5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZml4dHVyZS5yc3QK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vZnVuY2FyZ19jb21wYXJlLnJzdAorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9mdW5jYXJncy5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZ2VuYXBpLnB5CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2dldHRpbmctc3RhcnRlZC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZ29v
ZHByYWN0aWNlcy5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vaGlzdG9yaWNhbC1ub3Rlcy5yc3QK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vaW5kZXgucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2xpY2Vu
c2UucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2xpbmtzLmluYworL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9sb2dnaW5nLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9tYXJrLnJzdAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9tb25rZXlwYXRjaC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vbmFtaW5nMjAucnN0
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL25vc2UucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3BhcmFt
ZXRyaXplLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9wbHVnaW5zLnJzdAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9wcm9qZWN0cy5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcHl0ZXN0LmluaQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9weXRob25wYXRoLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9yZWN3
YXJuLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9yZXF1aXJlbWVudHMudHh0CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL3NraXBwaW5nLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90YWxrcy5yc3QKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vdG1wZGlyLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi91bml0dGVz
dC5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdXNhZ2UucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L3dhcm5pbmdzLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi93cml0aW5nX3BsdWdpbnMucnN0Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL3h1bml0X3NldHVwLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi95
aWVsZGZpeHR1cmUucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vd2FybmluZ3Mu
cnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3dhcm5pbmdzLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjQ5ZDdl
M2IyZjgyZWY4NmRiYmM3ZTE5M2EwZTBkMTVkNzhmZDhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL3dhcm5pbmdzLnJzdApAQCAtMCwwICsxLDI5OSBAQAorLi4gX2B3YXJu
aW5nc2A6CisKK1dhcm5pbmdzIENhcHR1cmUKKz09PT09PT09PT09PT09PT0KKworLi4gdmVyc2lv
bmFkZGVkOjogMy4xCisKK1N0YXJ0aW5nIGZyb20gdmVyc2lvbiBgYDMuMWBgLCBweXRlc3Qgbm93
IGF1dG9tYXRpY2FsbHkgY2F0Y2hlcyB3YXJuaW5ncyBkdXJpbmcgdGVzdCBleGVjdXRpb24KK2Fu
ZCBkaXNwbGF5cyB0aGVtIGF0IHRoZSBlbmQgb2YgdGhlIHNlc3Npb246OgorCisgICAgIyBjb250
ZW50IG9mIHRlc3Rfc2hvd193YXJuaW5ncy5weQorICAgIGltcG9ydCB3YXJuaW5ncworCisgICAg
ZGVmIGFwaV92MSgpOgorICAgICAgICB3YXJuaW5ncy53YXJuKFVzZXJXYXJuaW5nKCJhcGkgdjEs
IHNob3VsZCB1c2UgZnVuY3Rpb25zIGZyb20gdjIiKSkKKyAgICAgICAgcmV0dXJuIDEKKworICAg
IGRlZiB0ZXN0X29uZSgpOgorICAgICAgICBhc3NlcnQgYXBpX3YxKCkgPT0gMQorCitSdW5uaW5n
IHB5dGVzdCBub3cgcHJvZHVjZXMgdGhpcyBvdXRwdXQ6OgorCisgICAgJCBweXRlc3QgdGVzdF9z
aG93X3dhcm5pbmdzLnB5CisgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09IHRlc3Qgc2Vz
c2lvbiBzdGFydHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIHBsYXRmb3JtIGxp
bnV4IC0tIFB5dGhvbiAzLngueSwgcHl0ZXN0LTMueC55LCBweS0xLngueSwgcGx1Z2d5LTAueC55
CisgICAgcm9vdGRpcjogJFJFR0VORE9DX1RNUERJUiwgaW5pZmlsZToKKyAgICBjb2xsZWN0ZWQg
MSBpdGVtCisgICAgCisgICAgdGVzdF9zaG93X3dhcm5pbmdzLnB5IC4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCisgICAgCisgICAgPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0gd2FybmluZ3Mgc3VtbWFyeSA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQorICAgIHRlc3Rfc2hvd193YXJuaW5ncy5weTo6dGVzdF9vbmUKKyAgICAgICRS
RUdFTkRPQ19UTVBESVIvdGVzdF9zaG93X3dhcm5pbmdzLnB5OjQ6IFVzZXJXYXJuaW5nOiBhcGkg
djEsIHNob3VsZCB1c2UgZnVuY3Rpb25zIGZyb20gdjIKKyAgICAgICAgd2FybmluZ3Mud2FybihV
c2VyV2FybmluZygiYXBpIHYxLCBzaG91bGQgdXNlIGZ1bmN0aW9ucyBmcm9tIHYyIikpCisgICAg
CisgICAgLS0gRG9jczogaHR0cDovL2RvYy5weXRlc3Qub3JnL2VuL2xhdGVzdC93YXJuaW5ncy5o
dG1sCisgICAgPT09PT09PT09PT09PT09PT09PSAxIHBhc3NlZCwgMSB3YXJuaW5ncyBpbiAwLjEy
IHNlY29uZHMgPT09PT09PT09PT09PT09PT09PQorCitQeXRlc3QgYnkgZGVmYXVsdCBjYXRjaGVz
IGFsbCB3YXJuaW5ncyBleGNlcHQgZm9yIGBgRGVwcmVjYXRpb25XYXJuaW5nYGAgYW5kIGBgUGVu
ZGluZ0RlcHJlY2F0aW9uV2FybmluZ2BgLgorCitUaGUgYGAtV2BgIGZsYWcgY2FuIGJlIHBhc3Nl
ZCB0byBjb250cm9sIHdoaWNoIHdhcm5pbmdzIHdpbGwgYmUgZGlzcGxheWVkIG9yIGV2ZW4gdHVy
bgordGhlbSBpbnRvIGVycm9yczo6CisKKyAgICAkIHB5dGVzdCAtcSB0ZXN0X3Nob3dfd2Fybmlu
Z3MucHkgLVcgZXJyb3I6OlVzZXJXYXJuaW5nCisgICAgRiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEwMCVdCisgICAg
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IEZBSUxVUkVTID09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQorICAgIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
XyB0ZXN0X29uZSBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KKyAgICAKKyAgICAg
ICAgZGVmIHRlc3Rfb25lKCk6CisgICAgPiAgICAgICBhc3NlcnQgYXBpX3YxKCkgPT0gMQorICAg
IAorICAgIHRlc3Rfc2hvd193YXJuaW5ncy5weTo4OiAKKyAgICBfIF8gXyBfIF8gXyBfIF8gXyBf
IF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8gXyBfIF8g
CisgICAgCisgICAgICAgIGRlZiBhcGlfdjEoKToKKyAgICA+ICAgICAgIHdhcm5pbmdzLndhcm4o
VXNlcldhcm5pbmcoImFwaSB2MSwgc2hvdWxkIHVzZSBmdW5jdGlvbnMgZnJvbSB2MiIpKQorICAg
IEUgICAgICAgVXNlcldhcm5pbmc6IGFwaSB2MSwgc2hvdWxkIHVzZSBmdW5jdGlvbnMgZnJvbSB2
MgorICAgIAorICAgIHRlc3Rfc2hvd193YXJuaW5ncy5weTo0OiBVc2VyV2FybmluZworICAgIDEg
ZmFpbGVkIGluIDAuMTIgc2Vjb25kcworCitUaGUgc2FtZSBvcHRpb24gY2FuIGJlIHNldCBpbiB0
aGUgYGBweXRlc3QuaW5pYGAgZmlsZSB1c2luZyB0aGUgYGBmaWx0ZXJ3YXJuaW5nc2BgIGluaSBv
cHRpb24uCitGb3IgZXhhbXBsZSwgdGhlIGNvbmZpZ3VyYXRpb24gYmVsb3cgd2lsbCBpZ25vcmUg
YWxsIHVzZXIgd2FybmluZ3MsIGJ1dCB3aWxsIHRyYW5zZm9ybQorYWxsIG90aGVyIHdhcm5pbmdz
IGludG8gZXJyb3JzLgorCisuLiBjb2RlLWJsb2NrOjogaW5pCisKKyAgICBbcHl0ZXN0XQorICAg
IGZpbHRlcndhcm5pbmdzID0KKyAgICAgICAgZXJyb3IKKyAgICAgICAgaWdub3JlOjpVc2VyV2Fy
bmluZworCisKK1doZW4gYSB3YXJuaW5nIG1hdGNoZXMgbW9yZSB0aGFuIG9uZSBvcHRpb24gaW4g
dGhlIGxpc3QsIHRoZSBhY3Rpb24gZm9yIHRoZSBsYXN0IG1hdGNoaW5nIG9wdGlvbgoraXMgcGVy
Zm9ybWVkLgorCitCb3RoIGBgLVdgYCBjb21tYW5kLWxpbmUgb3B0aW9uIGFuZCBgYGZpbHRlcndh
cm5pbmdzYGAgaW5pIG9wdGlvbiBhcmUgYmFzZWQgb24gUHl0aG9uJ3Mgb3duCitgLVcgb3B0aW9u
YF8gYW5kIGB3YXJuaW5ncy5zaW1wbGVmaWx0ZXJgXywgc28gcGxlYXNlIHJlZmVyIHRvIHRob3Nl
IHNlY3Rpb25zIGluIHRoZSBQeXRob24KK2RvY3VtZW50YXRpb24gZm9yIG90aGVyIGV4YW1wbGVz
IGFuZCBhZHZhbmNlZCB1c2FnZS4KKworYGBAcHl0ZXN0Lm1hcmsuZmlsdGVyd2FybmluZ3NgYAor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIK
KworWW91IGNhbiB1c2UgdGhlIGBgQHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzYGAgdG8gYWRk
IHdhcm5pbmcgZmlsdGVycyB0byBzcGVjaWZpYyB0ZXN0IGl0ZW1zLAorYWxsb3dpbmcgeW91IHRv
IGhhdmUgZmluZXIgY29udHJvbCBvZiB3aGljaCB3YXJuaW5ncyBzaG91bGQgYmUgY2FwdHVyZWQg
YXQgdGVzdCwgY2xhc3Mgb3IKK2V2ZW4gbW9kdWxlIGxldmVsOgorCisuLiBjb2RlLWJsb2NrOjog
cHl0aG9uCisKKyAgICBpbXBvcnQgd2FybmluZ3MKKworICAgIGRlZiBhcGlfdjEoKToKKyAgICAg
ICAgd2FybmluZ3Mud2FybihVc2VyV2FybmluZygiYXBpIHYxLCBzaG91bGQgdXNlIGZ1bmN0aW9u
cyBmcm9tIHYyIikpCisgICAgICAgIHJldHVybiAxCisKKyAgICBAcHl0ZXN0Lm1hcmsuZmlsdGVy
d2FybmluZ3MoJ2lnbm9yZTphcGkgdjEnKQorICAgIGRlZiB0ZXN0X29uZSgpOgorICAgICAgICBh
c3NlcnQgYXBpX3YxKCkgPT0gMQorCisKK0ZpbHRlcnMgYXBwbGllZCB1c2luZyBhIG1hcmsgdGFr
ZSBwcmVjZWRlbmNlIG92ZXIgZmlsdGVycyBwYXNzZWQgb24gdGhlIGNvbW1hbmQgbGluZSBvciBj
b25maWd1cmVkCitieSB0aGUgYGBmaWx0ZXJ3YXJuaW5nc2BgIGluaSBvcHRpb24uCisKK1lvdSBt
YXkgYXBwbHkgYSBmaWx0ZXIgdG8gYWxsIHRlc3RzIG9mIGEgY2xhc3MgYnkgdXNpbmcgdGhlIGBg
ZmlsdGVyd2FybmluZ3NgYCBtYXJrIGFzIGEgY2xhc3MKK2RlY29yYXRvciBvciB0byBhbGwgdGVz
dHMgaW4gYSBtb2R1bGUgYnkgc2V0dGluZyB0aGUgYGBweXRlc3RtYXJrYGAgdmFyaWFibGU6CisK
Ky4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgICMgdHVybnMgYWxsIHdhcm5pbmdzIGludG8g
ZXJyb3JzIGZvciB0aGlzIG1vZHVsZQorICAgIHB5dGVzdG1hcmsgPSBweXRlc3QubWFyay5maWx0
ZXJ3YXJuaW5ncygnZXJyb3InKQorCisKKy4uIG5vdGU6OgorCisgICAgYGBEZXByZWNhdGlvbldh
cm5pbmdgYCBhbmQgYGBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nYGAgYXJlIGhpZGRlbiBieSB0
aGUgc3RhbmRhcmQgbGlicmFyeQorICAgIGJ5IGRlZmF1bHQgc28geW91IGhhdmUgdG8gZXhwbGlj
aXRseSBjb25maWd1cmUgdGhlbSB0byBiZSBkaXNwbGF5ZWQgaW4geW91ciBgYHB5dGVzdC5pbmlg
YDoKKworICAgIC4uIGNvZGUtYmxvY2s6OiBpbmkKKworICAgICAgICBbcHl0ZXN0XQorICAgICAg
ICBmaWx0ZXJ3YXJuaW5ncyA9CisgICAgICAgICAgICBvbmNlOjpEZXByZWNhdGlvbldhcm5pbmcK
KyAgICAgICAgICAgIG9uY2U6OlBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcKKworCisqQ3JlZGl0
cyBnbyB0byBGbG9yaWFuIFNjaHVsemUgZm9yIHRoZSByZWZlcmVuY2UgaW1wbGVtZW50YXRpb24g
aW4gdGhlKiBgcHl0ZXN0LXdhcm5pbmdzYF8KKypwbHVnaW4uKgorCisuLiBfYC1XIG9wdGlvbmA6
IGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvdXNpbmcvY21kbGluZS5odG1sP2hpZ2hsaWdodD0j
Y21kb3B0aW9uLVcKKy4uIF93YXJuaW5ncy5zaW1wbGVmaWx0ZXI6IGh0dHBzOi8vZG9jcy5weXRo
b24ub3JnLzMvbGlicmFyeS93YXJuaW5ncy5odG1sI3dhcm5pbmdzLnNpbXBsZWZpbHRlcgorLi4g
X2BweXRlc3Qtd2FybmluZ3NgOiBodHRwczovL2dpdGh1Yi5jb20vZnNjaHVsemUvcHl0ZXN0LXdh
cm5pbmdzCisKKworRGlzYWJsaW5nIHdhcm5pbmcgY2FwdHVyZQorLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCitUaGlzIGZlYXR1cmUgaXMgZW5hYmxlZCBieSBkZWZhdWx0IGJ1dCBjYW4gYmUg
ZGlzYWJsZWQgZW50aXJlbHkgaW4geW91ciBgYHB5dGVzdC5pbmlgYCBmaWxlIHdpdGg6CisKKyAg
ICAuLiBjb2RlLWJsb2NrOjogaW5pCisKKyAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgYWRkb3B0
cyA9IC1wIG5vOndhcm5pbmdzCisKK09yIHBhc3NpbmcgYGAtcCBubzp3YXJuaW5nc2BgIGluIHRo
ZSBjb21tYW5kLWxpbmUuCisKKy4uIF9gYXNzZXJ0aW5nIHdhcm5pbmdzYDoKKworLi4gX2Fzc2Vy
dHdhcm5pbmdzOgorCisuLiBfYGFzc2VydGluZyB3YXJuaW5ncyB3aXRoIHRoZSB3YXJucyBmdW5j
dGlvbmA6CisKKy4uIF93YXJuczoKKworQXNzZXJ0aW5nIHdhcm5pbmdzIHdpdGggdGhlIHdhcm5z
IGZ1bmN0aW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorCisuLiB2ZXJzaW9uYWRkZWQ6OiAyLjgKKworWW91IGNhbiBjaGVjayB0aGF0IGNvZGUgcmFp
c2VzIGEgcGFydGljdWxhciB3YXJuaW5nIHVzaW5nIGBgcHl0ZXN0Lndhcm5zYGAsCit3aGljaCB3
b3JrcyBpbiBhIHNpbWlsYXIgbWFubmVyIHRvIDpyZWY6YHJhaXNlcyA8YXNzZXJ0cmFpc2VzPmA6
OgorCisgICAgaW1wb3J0IHdhcm5pbmdzCisgICAgaW1wb3J0IHB5dGVzdAorCisgICAgZGVmIHRl
c3Rfd2FybmluZygpOgorICAgICAgICB3aXRoIHB5dGVzdC53YXJucyhVc2VyV2FybmluZyk6Cisg
ICAgICAgICAgICB3YXJuaW5ncy53YXJuKCJteSB3YXJuaW5nIiwgVXNlcldhcm5pbmcpCisKK1Ro
ZSB0ZXN0IHdpbGwgZmFpbCBpZiB0aGUgd2FybmluZyBpbiBxdWVzdGlvbiBpcyBub3QgcmFpc2Vk
LiBUaGUga2V5d29yZAorYXJndW1lbnQgYGBtYXRjaGBgIHRvIGFzc2VydCB0aGF0IHRoZSBleGNl
cHRpb24gbWF0Y2hlcyBhIHRleHQgb3IgcmVnZXg6OgorCisgICAgPj4+IHdpdGggd2FybnMoVXNl
cldhcm5pbmcsIG1hdGNoPSdtdXN0IGJlIDAgb3IgTm9uZScpOgorICAgIC4uLiAgICAgd2Fybmlu
Z3Mud2FybigidmFsdWUgbXVzdCBiZSAwIG9yIE5vbmUiLCBVc2VyV2FybmluZykKKworICAgID4+
PiB3aXRoIHdhcm5zKFVzZXJXYXJuaW5nLCBtYXRjaD1yJ211c3QgYmUgXGQrJCcpOgorICAgIC4u
LiAgICAgd2FybmluZ3Mud2FybigidmFsdWUgbXVzdCBiZSA0MiIsIFVzZXJXYXJuaW5nKQorCisg
ICAgPj4+IHdpdGggd2FybnMoVXNlcldhcm5pbmcsIG1hdGNoPXInbXVzdCBiZSBcZCskJyk6Cisg
ICAgLi4uICAgICB3YXJuaW5ncy53YXJuKCJ0aGlzIGlzIG5vdCBoZXJlIiwgVXNlcldhcm5pbmcp
CisgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgLi4uCisgICAg
RmFpbGVkOiBESUQgTk9UIFdBUk4uIE5vIHdhcm5pbmdzIG9mIHR5cGUgLi4uVXNlcldhcm5pbmcu
Li4gd2FzIGVtaXR0ZWQuLi4KKworWW91IGNhbiBhbHNvIGNhbGwgYGBweXRlc3Qud2FybnNgYCBv
biBhIGZ1bmN0aW9uIG9yIGNvZGUgc3RyaW5nOjoKKworICAgIHB5dGVzdC53YXJucyhleHBlY3Rl
ZF93YXJuaW5nLCBmdW5jLCAqYXJncywgKiprd2FyZ3MpCisgICAgcHl0ZXN0Lndhcm5zKGV4cGVj
dGVkX3dhcm5pbmcsICJmdW5jKCphcmdzLCAqKmt3YXJncykiKQorCitUaGUgZnVuY3Rpb24gYWxz
byByZXR1cm5zIGEgbGlzdCBvZiBhbGwgcmFpc2VkIHdhcm5pbmdzIChhcworYGB3YXJuaW5ncy5X
YXJuaW5nTWVzc2FnZWBgIG9iamVjdHMpLCB3aGljaCB5b3UgY2FuIHF1ZXJ5IGZvcgorYWRkaXRp
b25hbCBpbmZvcm1hdGlvbjo6CisKKyAgICB3aXRoIHB5dGVzdC53YXJucyhSdW50aW1lV2Fybmlu
ZykgYXMgcmVjb3JkOgorICAgICAgICB3YXJuaW5ncy53YXJuKCJhbm90aGVyIHdhcm5pbmciLCBS
dW50aW1lV2FybmluZykKKworICAgICMgY2hlY2sgdGhhdCBvbmx5IG9uZSB3YXJuaW5nIHdhcyBy
YWlzZWQKKyAgICBhc3NlcnQgbGVuKHJlY29yZCkgPT0gMQorICAgICMgY2hlY2sgdGhhdCB0aGUg
bWVzc2FnZSBtYXRjaGVzCisgICAgYXNzZXJ0IHJlY29yZFswXS5tZXNzYWdlLmFyZ3NbMF0gPT0g
ImFub3RoZXIgd2FybmluZyIKKworQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBleGFtaW5lIHJhaXNl
ZCB3YXJuaW5ncyBpbiBkZXRhaWwgdXNpbmcgdGhlCis6cmVmOmByZWN3YXJuIDxyZWN3YXJuPmAg
Zml4dHVyZSAoc2VlIGJlbG93KS4KKworLi4gbm90ZTo6CisgICAgYGBEZXByZWNhdGlvbldhcm5p
bmdgYCBhbmQgYGBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nYGAgYXJlIHRyZWF0ZWQKKyAgICBk
aWZmZXJlbnRseTsgc2VlIDpyZWY6YGVuc3VyaW5nX2Z1bmN0aW9uX3RyaWdnZXJzYC4KKworLi4g
X2ByZWNvcmRpbmcgd2FybmluZ3NgOgorCisuLiBfcmVjd2FybjoKKworUmVjb3JkaW5nIHdhcm5p
bmdzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworWW91IGNhbiByZWNvcmQgcmFpc2VkIHdh
cm5pbmdzIGVpdGhlciB1c2luZyBgYHB5dGVzdC53YXJuc2BgIG9yIHdpdGgKK3RoZSBgYHJlY3dh
cm5gYCBmaXh0dXJlLgorCitUbyByZWNvcmQgd2l0aCBgYHB5dGVzdC53YXJuc2BgIHdpdGhvdXQg
YXNzZXJ0aW5nIGFueXRoaW5nIGFib3V0IHRoZSB3YXJuaW5ncywKK3Bhc3MgYGBOb25lYGAgYXMg
dGhlIGV4cGVjdGVkIHdhcm5pbmcgdHlwZTo6CisKKyAgICB3aXRoIHB5dGVzdC53YXJucyhOb25l
KSBhcyByZWNvcmQ6CisgICAgICAgIHdhcm5pbmdzLndhcm4oInVzZXIiLCBVc2VyV2FybmluZykK
KyAgICAgICAgd2FybmluZ3Mud2FybigicnVudGltZSIsIFJ1bnRpbWVXYXJuaW5nKQorCisgICAg
YXNzZXJ0IGxlbihyZWNvcmQpID09IDIKKyAgICBhc3NlcnQgc3RyKHJlY29yZFswXS5tZXNzYWdl
KSA9PSAidXNlciIKKyAgICBhc3NlcnQgc3RyKHJlY29yZFsxXS5tZXNzYWdlKSA9PSAicnVudGlt
ZSIKKworVGhlIGBgcmVjd2FybmBgIGZpeHR1cmUgd2lsbCByZWNvcmQgd2FybmluZ3MgZm9yIHRo
ZSB3aG9sZSBmdW5jdGlvbjo6CisKKyAgICBpbXBvcnQgd2FybmluZ3MKKworICAgIGRlZiB0ZXN0
X2hlbGxvKHJlY3dhcm4pOgorICAgICAgICB3YXJuaW5ncy53YXJuKCJoZWxsbyIsIFVzZXJXYXJu
aW5nKQorICAgICAgICBhc3NlcnQgbGVuKHJlY3dhcm4pID09IDEKKyAgICAgICAgdyA9IHJlY3dh
cm4ucG9wKFVzZXJXYXJuaW5nKQorICAgICAgICBhc3NlcnQgaXNzdWJjbGFzcyh3LmNhdGVnb3J5
LCBVc2VyV2FybmluZykKKyAgICAgICAgYXNzZXJ0IHN0cih3Lm1lc3NhZ2UpID09ICJoZWxsbyIK
KyAgICAgICAgYXNzZXJ0IHcuZmlsZW5hbWUKKyAgICAgICAgYXNzZXJ0IHcubGluZW5vCisKK0Jv
dGggYGByZWN3YXJuYGAgYW5kIGBgcHl0ZXN0Lndhcm5zYGAgcmV0dXJuIHRoZSBzYW1lIGludGVy
ZmFjZSBmb3IgcmVjb3JkZWQKK3dhcm5pbmdzOiBhIFdhcm5pbmdzUmVjb3JkZXIgaW5zdGFuY2Uu
IFRvIHZpZXcgdGhlIHJlY29yZGVkIHdhcm5pbmdzLCB5b3UgY2FuCitpdGVyYXRlIG92ZXIgdGhp
cyBpbnN0YW5jZSwgY2FsbCBgYGxlbmBgIG9uIGl0IHRvIGdldCB0aGUgbnVtYmVyIG9mIHJlY29y
ZGVkCit3YXJuaW5ncywgb3IgaW5kZXggaW50byBpdCB0byBnZXQgYSBwYXJ0aWN1bGFyIHJlY29y
ZGVkIHdhcm5pbmcuIEl0IGFsc28KK3Byb3ZpZGVzIHRoZXNlIG1ldGhvZHM6CisKKy4uIGF1dG9j
bGFzczo6IF9weXRlc3QucmVjd2Fybi5XYXJuaW5nc1JlY29yZGVyKCkKKyAgICA6bWVtYmVyczoK
KworRWFjaCByZWNvcmRlZCB3YXJuaW5nIGhhcyB0aGUgYXR0cmlidXRlcyBgYG1lc3NhZ2VgYCwg
YGBjYXRlZ29yeWBgLAorYGBmaWxlbmFtZWBgLCBgYGxpbmVub2BgLCBgYGZpbGVgYCwgYW5kIGBg
bGluZWBgLiBUaGUgYGBjYXRlZ29yeWBgIGlzIHRoZQorY2xhc3Mgb2YgdGhlIHdhcm5pbmcuIFRo
ZSBgYG1lc3NhZ2VgYCBpcyB0aGUgd2FybmluZyBpdHNlbGY7IGNhbGxpbmcKK2Bgc3RyKG1lc3Nh
Z2UpYGAgd2lsbCByZXR1cm4gdGhlIGFjdHVhbCBtZXNzYWdlIG9mIHRoZSB3YXJuaW5nLgorCisu
LiBub3RlOjoKKyAgICA6Y2xhc3M6YFJlY29yZGVkV2FybmluZ2Agd2FzIGNoYW5nZWQgZnJvbSBh
IHBsYWluIGNsYXNzIHRvIGEgbmFtZWR0dXBsZSBpbiBweXRlc3QgMy4xCisKKy4uIG5vdGU6Ogor
ICAgIGBgRGVwcmVjYXRpb25XYXJuaW5nYGAgYW5kIGBgUGVuZGluZ0RlcHJlY2F0aW9uV2Fybmlu
Z2BgIGFyZSB0cmVhdGVkCisgICAgZGlmZmVyZW50bHk7IHNlZSA6cmVmOmBlbnN1cmluZ19mdW5j
dGlvbl90cmlnZ2Vyc2AuCisKKy4uIF9gZW5zdXJpbmcgYSBmdW5jdGlvbiB0cmlnZ2VycyBhIGRl
cHJlY2F0aW9uIHdhcm5pbmdgOgorCisuLiBfZW5zdXJpbmdfZnVuY3Rpb25fdHJpZ2dlcnM6CisK
K0Vuc3VyaW5nIGEgZnVuY3Rpb24gdHJpZ2dlcnMgYSBkZXByZWNhdGlvbiB3YXJuaW5nCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1lv
dSBjYW4gYWxzbyBjYWxsIGEgZ2xvYmFsIGhlbHBlciBmb3IgY2hlY2tpbmcKK3RoYXQgYSBjZXJ0
YWluIGZ1bmN0aW9uIGNhbGwgdHJpZ2dlcnMgYSBgYERlcHJlY2F0aW9uV2FybmluZ2BgIG9yCitg
YFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmdgYDo6CisKKyAgICBpbXBvcnQgcHl0ZXN0CisKKyAg
ICBkZWYgdGVzdF9nbG9iYWwoKToKKyAgICAgICAgcHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbChteWZ1
bmN0aW9uLCAxNykKKworQnkgZGVmYXVsdCwgYGBEZXByZWNhdGlvbldhcm5pbmdgYCBhbmQgYGBQ
ZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nYGAgd2lsbCBub3QgYmUKK2NhdWdodCB3aGVuIHVzaW5n
IGBgcHl0ZXN0Lndhcm5zYGAgb3IgYGByZWN3YXJuYGAgYmVjYXVzZSBkZWZhdWx0IFB5dGhvbiB3
YXJuaW5ncyBmaWx0ZXJzIGhpZGUKK3RoZW0uIElmIHlvdSB3aXNoIHRvIHJlY29yZCB0aGVtIGlu
IHlvdXIgb3duIGNvZGUsIHVzZSB0aGUKK2NvbW1hbmQgYGB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIo
J2Fsd2F5cycpYGA6OgorCisgICAgaW1wb3J0IHdhcm5pbmdzCisgICAgaW1wb3J0IHB5dGVzdAor
CisgICAgZGVmIHRlc3RfZGVwcmVjYXRpb24ocmVjd2Fybik6CisgICAgICAgIHdhcm5pbmdzLnNp
bXBsZWZpbHRlcignYWx3YXlzJykKKyAgICAgICAgd2FybmluZ3Mud2FybigiZGVwcmVjYXRlZCIs
IERlcHJlY2F0aW9uV2FybmluZykKKyAgICAgICAgYXNzZXJ0IGxlbihyZWN3YXJuKSA9PSAxCisg
ICAgICAgIGFzc2VydCByZWN3YXJuLnBvcChEZXByZWNhdGlvbldhcm5pbmcpCisKK1lvdSBjYW4g
YWxzbyB1c2UgaXQgYXMgYSBjb250ZXh0bWFuYWdlcjo6CisKKyAgICBkZWYgdGVzdF9nbG9iYWwo
KToKKyAgICAgICAgd2l0aCBweXRlc3QuZGVwcmVjYXRlZF9jYWxsKCk6CisgICAgICAgICAgICBt
eW9iamVjdC5kZXByZWNhdGVkX21ldGhvZCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vd3JpdGluZ19wbHVnaW5zLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi93cml0aW5nX3BsdWdp
bnMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmViNTI1NTgzMDAwMDJmOTFlOTk1Y2VjYjAyNjdjM2E3NmRmMzdj
MmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vd3JpdGluZ19wbHVnaW5z
LnJzdApAQCAtMCwwICsxLDczOSBAQAorLi4gX3BsdWdpbnM6CisuLiBfYHdyaXRpbmctcGx1Z2lu
c2A6CisKK1dyaXRpbmcgcGx1Z2lucworPT09PT09PT09PT09PT09CisKK0l0IGlzIGVhc3kgdG8g
aW1wbGVtZW50IGBsb2NhbCBjb25mdGVzdCBwbHVnaW5zYF8gZm9yIHlvdXIgb3duIHByb2plY3QK
K29yIGBwaXAtaW5zdGFsbGFibGUgcGx1Z2luc2BfIHRoYXQgY2FuIGJlIHVzZWQgdGhyb3VnaG91
dCBtYW55IHByb2plY3RzLAoraW5jbHVkaW5nIHRoaXJkIHBhcnR5IHByb2plY3RzLiAgUGxlYXNl
IHJlZmVyIHRvIDpyZWY6YHVzaW5nIHBsdWdpbnNgIGlmIHlvdQorb25seSB3YW50IHRvIHVzZSBi
dXQgbm90IHdyaXRlIHBsdWdpbnMuCisKK0EgcGx1Z2luIGNvbnRhaW5zIG9uZSBvciBtdWx0aXBs
ZSBob29rIGZ1bmN0aW9ucy4gOnJlZjpgV3JpdGluZyBob29rcyA8d3JpdGluZ2hvb2tzPmAKK2V4
cGxhaW5zIHRoZSBiYXNpY3MgYW5kIGRldGFpbHMgb2YgaG93IHlvdSBjYW4gd3JpdGUgYSBob29r
IGZ1bmN0aW9uIHlvdXJzZWxmLgorYGBweXRlc3RgYCBpbXBsZW1lbnRzIGFsbCBhc3BlY3RzIG9m
IGNvbmZpZ3VyYXRpb24sIGNvbGxlY3Rpb24sIHJ1bm5pbmcgYW5kCityZXBvcnRpbmcgYnkgY2Fs
bGluZyBgd2VsbCBzcGVjaWZpZWQgaG9va3NgXyBvZiB0aGUgZm9sbG93aW5nIHBsdWdpbnM6CisK
KyogOnJlZjpgYnVpbHRpbiBwbHVnaW5zYDogbG9hZGVkIGZyb20gcHl0ZXN0J3MgaW50ZXJuYWwg
YGBfcHl0ZXN0YGAgZGlyZWN0b3J5LgorCisqIDpyZWY6YGV4dGVybmFsIHBsdWdpbnMgPGV4dHBs
dWdpbnM+YDogbW9kdWxlcyBkaXNjb3ZlcmVkIHRocm91Z2gKKyAgYHNldHVwdG9vbHMgZW50cnkg
cG9pbnRzYF8KKworKiBgY29uZnRlc3QucHkgcGx1Z2luc2BfOiBtb2R1bGVzIGF1dG8tZGlzY292
ZXJlZCBpbiB0ZXN0IGRpcmVjdG9yaWVzCisKK0luIHByaW5jaXBsZSwgZWFjaCBob29rIGNhbGwg
aXMgYSBgYDE6TmBgIFB5dGhvbiBmdW5jdGlvbiBjYWxsIHdoZXJlIGBgTmBgIGlzIHRoZQorbnVt
YmVyIG9mIHJlZ2lzdGVyZWQgaW1wbGVtZW50YXRpb24gZnVuY3Rpb25zIGZvciBhIGdpdmVuIHNw
ZWNpZmljYXRpb24uCitBbGwgc3BlY2lmaWNhdGlvbnMgYW5kIGltcGxlbWVudGF0aW9ucyBmb2xs
b3cgdGhlIGBgcHl0ZXN0X2BgIHByZWZpeAorbmFtaW5nIGNvbnZlbnRpb24sIG1ha2luZyB0aGVt
IGVhc3kgdG8gZGlzdGluZ3Vpc2ggYW5kIGZpbmQuCisKKy4uIF9gcGx1Z2lub3JkZXJgOgorCitQ
bHVnaW4gZGlzY292ZXJ5IG9yZGVyIGF0IHRvb2wgc3RhcnR1cAorLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKworYGBweXRlc3RgYCBsb2FkcyBwbHVnaW4gbW9kdWxlcyBh
dCB0b29sIHN0YXJ0dXAgaW4gdGhlIGZvbGxvd2luZyB3YXk6CisKKyogYnkgbG9hZGluZyBhbGwg
YnVpbHRpbiBwbHVnaW5zCisKKyogYnkgbG9hZGluZyBhbGwgcGx1Z2lucyByZWdpc3RlcmVkIHRo
cm91Z2ggYHNldHVwdG9vbHMgZW50cnkgcG9pbnRzYF8uCisKKyogYnkgcHJlLXNjYW5uaW5nIHRo
ZSBjb21tYW5kIGxpbmUgZm9yIHRoZSBgYC1wIG5hbWVgYCBvcHRpb24KKyAgYW5kIGxvYWRpbmcg
dGhlIHNwZWNpZmllZCBwbHVnaW4gYmVmb3JlIGFjdHVhbCBjb21tYW5kIGxpbmUgcGFyc2luZy4K
KworKiBieSBsb2FkaW5nIGFsbCA6ZmlsZTpgY29uZnRlc3QucHlgIGZpbGVzIGFzIGluZmVycmVk
IGJ5IHRoZSBjb21tYW5kIGxpbmUKKyAgaW52b2NhdGlvbjoKKworICAtIGlmIG5vIHRlc3QgcGF0
aHMgYXJlIHNwZWNpZmllZCB1c2UgY3VycmVudCBkaXIgYXMgYSB0ZXN0IHBhdGgKKyAgLSBpZiBl
eGlzdHMsIGxvYWQgYGBjb25mdGVzdC5weWBgIGFuZCBgYHRlc3QqL2NvbmZ0ZXN0LnB5YGAgcmVs
YXRpdmUKKyAgICB0byB0aGUgZGlyZWN0b3J5IHBhcnQgb2YgdGhlIGZpcnN0IHRlc3QgcGF0aC4K
KworICBOb3RlIHRoYXQgcHl0ZXN0IGRvZXMgbm90IGZpbmQgYGBjb25mdGVzdC5weWBgIGZpbGVz
IGluIGRlZXBlciBuZXN0ZWQKKyAgc3ViIGRpcmVjdG9yaWVzIGF0IHRvb2wgc3RhcnR1cC4gIEl0
IGlzIHVzdWFsbHkgYSBnb29kIGlkZWEgdG8ga2VlcAorICB5b3VyIGBgY29uZnRlc3QucHlgYCBm
aWxlIGluIHRoZSB0b3AgbGV2ZWwgdGVzdCBvciBwcm9qZWN0IHJvb3QgZGlyZWN0b3J5LgorCisq
IGJ5IHJlY3Vyc2l2ZWx5IGxvYWRpbmcgYWxsIHBsdWdpbnMgc3BlY2lmaWVkIGJ5IHRoZQorICBg
YHB5dGVzdF9wbHVnaW5zYGAgdmFyaWFibGUgaW4gYGBjb25mdGVzdC5weWBgIGZpbGVzCisKKwor
Li4gX2BweXRlc3QvcGx1Z2luYDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvcHl0ZXN0LWRldi9weXRl
c3Qvc3JjL3RpcC9weXRlc3QvcGx1Z2luLworLi4gX2Bjb25mdGVzdC5weSBwbHVnaW5zYDoKKy4u
IF9gbG9jYWxwbHVnaW5gOgorLi4gX2Bsb2NhbCBjb25mdGVzdCBwbHVnaW5zYDoKKworY29uZnRl
c3QucHk6IGxvY2FsIHBlci1kaXJlY3RvcnkgcGx1Z2lucworLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCitMb2NhbCBgYGNvbmZ0ZXN0LnB5YGAgcGx1Z2lucyBjb250
YWluIGRpcmVjdG9yeS1zcGVjaWZpYyBob29rCitpbXBsZW1lbnRhdGlvbnMuICBIb29rIFNlc3Np
b24gYW5kIHRlc3QgcnVubmluZyBhY3Rpdml0aWVzIHdpbGwKK2ludm9rZSBhbGwgaG9va3MgZGVm
aW5lZCBpbiBgYGNvbmZ0ZXN0LnB5YGAgZmlsZXMgY2xvc2VyIHRvIHRoZQorcm9vdCBvZiB0aGUg
ZmlsZXN5c3RlbS4gIEV4YW1wbGUgb2YgaW1wbGVtZW50aW5nIHRoZQorYGBweXRlc3RfcnVudGVz
dF9zZXR1cGBgIGhvb2sgc28gdGhhdCBpcyBjYWxsZWQgZm9yIHRlc3RzIGluIHRoZSBgYGFgYAor
c3ViIGRpcmVjdG9yeSBidXQgbm90IGZvciBvdGhlciBkaXJlY3Rvcmllczo6CisKKyAgICBhL2Nv
bmZ0ZXN0LnB5OgorICAgICAgICBkZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoaXRlbSk6CisgICAg
ICAgICAgICAjIGNhbGxlZCBmb3IgcnVubmluZyBlYWNoIHRlc3QgaW4gJ2EnIGRpcmVjdG9yeQor
ICAgICAgICAgICAgcHJpbnQgKCJzZXR0aW5nIHVwIiwgaXRlbSkKKworICAgIGEvdGVzdF9zdWIu
cHk6CisgICAgICAgIGRlZiB0ZXN0X3N1YigpOgorICAgICAgICAgICAgcGFzcworCisgICAgdGVz
dF9mbGF0LnB5OgorICAgICAgICBkZWYgdGVzdF9mbGF0KCk6CisgICAgICAgICAgICBwYXNzCisK
K0hlcmUgaXMgaG93IHlvdSBtaWdodCBydW4gaXQ6OgorCisgICAgIHB5dGVzdCB0ZXN0X2ZsYXQu
cHkgICAjIHdpbGwgbm90IHNob3cgInNldHRpbmcgdXAiCisgICAgIHB5dGVzdCBhL3Rlc3Rfc3Vi
LnB5ICAjIHdpbGwgc2hvdyAic2V0dGluZyB1cCIKKworLi4gbm90ZTo6CisgICAgSWYgeW91IGhh
dmUgYGBjb25mdGVzdC5weWBgIGZpbGVzIHdoaWNoIGRvIG5vdCByZXNpZGUgaW4gYQorICAgIHB5
dGhvbiBwYWNrYWdlIGRpcmVjdG9yeSAoaS5lLiBvbmUgY29udGFpbmluZyBhbiBgYF9faW5pdF9f
LnB5YGApIHRoZW4KKyAgICAiaW1wb3J0IGNvbmZ0ZXN0IiBjYW4gYmUgYW1iaWd1b3VzIGJlY2F1
c2UgdGhlcmUgbWlnaHQgYmUgb3RoZXIKKyAgICBgYGNvbmZ0ZXN0LnB5YGAgZmlsZXMgYXMgd2Vs
bCBvbiB5b3VyIGBgUFlUSE9OUEFUSGBgIG9yIGBgc3lzLnBhdGhgYC4KKyAgICBJdCBpcyB0aHVz
IGdvb2QgcHJhY3RpY2UgZm9yIHByb2plY3RzIHRvIGVpdGhlciBwdXQgYGBjb25mdGVzdC5weWBg
CisgICAgdW5kZXIgYSBwYWNrYWdlIHNjb3BlIG9yIHRvIG5ldmVyIGltcG9ydCBhbnl0aGluZyBm
cm9tIGEKKyAgICBgYGNvbmZ0ZXN0LnB5YGAgZmlsZS4KKworICAgIFNlZSBhbHNvOiA6cmVmOmBw
eXRob25wYXRoYC4KKworCitXcml0aW5nIHlvdXIgb3duIHBsdWdpbgorLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KKworLi4gX2BzZXR1cHRvb2xzYDogaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBp
L3NldHVwdG9vbHMKKworSWYgeW91IHdhbnQgdG8gd3JpdGUgYSBwbHVnaW4sIHRoZXJlIGFyZSBt
YW55IHJlYWwtbGlmZSBleGFtcGxlcworeW91IGNhbiBjb3B5IGZyb206CisKKyogYSBjdXN0b20g
Y29sbGVjdGlvbiBleGFtcGxlIHBsdWdpbjogOnJlZjpgeWFtbCBwbHVnaW5gCisqIGFyb3VuZCAy
MCA6cmVmOmBidWlsdGluIHBsdWdpbnNgIHdoaWNoIHByb3ZpZGUgcHl0ZXN0J3Mgb3duIGZ1bmN0
aW9uYWxpdHkKKyogbWFueSBgZXh0ZXJuYWwgcGx1Z2lucyA8aHR0cDovL3BsdWdpbmNvbXBhdC5o
ZXJva3VhcHAuY29tPmBfIHByb3ZpZGluZyBhZGRpdGlvbmFsIGZlYXR1cmVzCisKK0FsbCBvZiB0
aGVzZSBwbHVnaW5zIGltcGxlbWVudCB0aGUgZG9jdW1lbnRlZCBgd2VsbCBzcGVjaWZpZWQgaG9v
a3NgXwordG8gZXh0ZW5kIGFuZCBhZGQgZnVuY3Rpb25hbGl0eS4KKworLi4gbm90ZTo6CisgICAg
TWFrZSBzdXJlIHRvIGNoZWNrIG91dCB0aGUgZXhjZWxsZW50CisgICAgYGNvb2tpZWN1dHRlci1w
eXRlc3QtcGx1Z2luIDxodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9jb29raWVjdXR0ZXIt
cHl0ZXN0LXBsdWdpbj5gXworICAgIHByb2plY3QsIHdoaWNoIGlzIGEgYGNvb2tpZWN1dHRlciB0
ZW1wbGF0ZSA8aHR0cHM6Ly9naXRodWIuY29tL2F1ZHJleXIvY29va2llY3V0dGVyPmBfCisgICAg
Zm9yIGF1dGhvcmluZyBwbHVnaW5zLgorCisgICAgVGhlIHRlbXBsYXRlIHByb3ZpZGVzIGFuIGV4
Y2VsbGVudCBzdGFydGluZyBwb2ludCB3aXRoIGEgd29ya2luZyBwbHVnaW4sCisgICAgdGVzdHMg
cnVubmluZyB3aXRoIHRveCwgYSBjb21wcmVoZW5zaXZlIFJFQURNRSBmaWxlIGFzIHdlbGwgYXMg
YQorICAgIHByZS1jb25maWd1cmVkIGVudHJ5LXBvaW50LgorCitBbHNvIGNvbnNpZGVyIDpyZWY6
YGNvbnRyaWJ1dGluZyB5b3VyIHBsdWdpbiB0byBweXRlc3QtZGV2PHN1Ym1pdHBsdWdpbj5gCitv
bmNlIGl0IGhhcyBzb21lIGhhcHB5IHVzZXJzIG90aGVyIHRoYW4geW91cnNlbGYuCisKKworLi4g
X2BzZXR1cHRvb2xzIGVudHJ5IHBvaW50c2A6CisuLiBfYHBpcC1pbnN0YWxsYWJsZSBwbHVnaW5z
YDoKKworTWFraW5nIHlvdXIgcGx1Z2luIGluc3RhbGxhYmxlIGJ5IG90aGVycworLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitJZiB5b3Ugd2FudCB0byBtYWtlIHlv
dXIgcGx1Z2luIGV4dGVybmFsbHkgYXZhaWxhYmxlLCB5b3UKK21heSBkZWZpbmUgYSBzby1jYWxs
ZWQgZW50cnkgcG9pbnQgZm9yIHlvdXIgZGlzdHJpYnV0aW9uIHNvCit0aGF0IGBgcHl0ZXN0YGAg
ZmluZHMgeW91ciBwbHVnaW4gbW9kdWxlLiAgRW50cnkgcG9pbnRzIGFyZQorYSBmZWF0dXJlIHRo
YXQgaXMgcHJvdmlkZWQgYnkgYHNldHVwdG9vbHNgXy4gcHl0ZXN0IGxvb2tzIHVwCit0aGUgYGBw
eXRlc3QxMWBgIGVudHJ5cG9pbnQgdG8gZGlzY292ZXIgaXRzCitwbHVnaW5zIGFuZCB5b3UgY2Fu
IHRodXMgbWFrZSB5b3VyIHBsdWdpbiBhdmFpbGFibGUgYnkgZGVmaW5pbmcKK2l0IGluIHlvdXIg
c2V0dXB0b29scy1pbnZvY2F0aW9uOgorCisuLiBzb3VyY2Vjb2RlOjogcHl0aG9uCisKKyAgICAj
IHNhbXBsZSAuL3NldHVwLnB5IGZpbGUKKyAgICBmcm9tIHNldHVwdG9vbHMgaW1wb3J0IHNldHVw
CisKKyAgICBzZXR1cCgKKyAgICAgICAgbmFtZT0ibXlwcm9qZWN0IiwKKyAgICAgICAgcGFja2Fn
ZXMgPSBbJ215cHJvamVjdCddCisKKyAgICAgICAgIyB0aGUgZm9sbG93aW5nIG1ha2VzIGEgcGx1
Z2luIGF2YWlsYWJsZSB0byBweXRlc3QKKyAgICAgICAgZW50cnlfcG9pbnRzID0geworICAgICAg
ICAgICAgJ3B5dGVzdDExJzogWworICAgICAgICAgICAgICAgICduYW1lX29mX3BsdWdpbiA9IG15
cHJvamVjdC5wbHVnaW5tb2R1bGUnLAorICAgICAgICAgICAgXQorICAgICAgICB9LAorCisgICAg
ICAgICMgY3VzdG9tIFB5UEkgY2xhc3NpZmllciBmb3IgcHl0ZXN0IHBsdWdpbnMKKyAgICAgICAg
Y2xhc3NpZmllcnM9WworICAgICAgICAgICAgIkZyYW1ld29yayA6OiBQeXRlc3QiLAorICAgICAg
ICBdLAorICAgICkKKworSWYgYSBwYWNrYWdlIGlzIGluc3RhbGxlZCB0aGlzIHdheSwgYGBweXRl
c3RgYCB3aWxsIGxvYWQKK2BgbXlwcm9qZWN0LnBsdWdpbm1vZHVsZWBgIGFzIGEgcGx1Z2luIHdo
aWNoIGNhbiBkZWZpbmUKK2B3ZWxsIHNwZWNpZmllZCBob29rc2BfLgorCisuLiBub3RlOjoKKwor
ICAgIE1ha2Ugc3VyZSB0byBpbmNsdWRlIGBgRnJhbWV3b3JrIDo6IFB5dGVzdGBgIGluIHlvdXIg
bGlzdCBvZgorICAgIGBQeVBJIGNsYXNzaWZpZXJzIDxodHRwczovL3B5dGhvbi1wYWNrYWdpbmct
dXNlci1ndWlkZS5yZWFkdGhlZG9jcy5pby9kaXN0cmlidXRpbmcvI2NsYXNzaWZpZXJzPmBfCisg
ICAgdG8gbWFrZSBpdCBlYXN5IGZvciB1c2VycyB0byBmaW5kIHlvdXIgcGx1Z2luLgorCisKK0Fz
c2VydGlvbiBSZXdyaXRpbmcKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKworT25lIG9mIHRoZSBtYWlu
IGZlYXR1cmVzIG9mIGBgcHl0ZXN0YGAgaXMgdGhlIHVzZSBvZiBwbGFpbiBhc3NlcnQKK3N0YXRl
bWVudHMgYW5kIHRoZSBkZXRhaWxlZCBpbnRyb3NwZWN0aW9uIG9mIGV4cHJlc3Npb25zIHVwb24K
K2Fzc2VydGlvbiBmYWlsdXJlcy4gIFRoaXMgaXMgcHJvdmlkZWQgYnkgImFzc2VydGlvbiByZXdy
aXRpbmciIHdoaWNoCittb2RpZmllcyB0aGUgcGFyc2VkIEFTVCBiZWZvcmUgaXQgZ2V0cyBjb21w
aWxlZCB0byBieXRlY29kZS4gIFRoaXMgaXMKK2RvbmUgdmlhIGEgOnBlcDpgMzAyYCBpbXBvcnQg
aG9vayB3aGljaCBnZXRzIGluc3RhbGxlZCBlYXJseSBvbiB3aGVuCitgYHB5dGVzdGBgIHN0YXJ0
cyB1cCBhbmQgd2lsbCBwZXJmb3JtIHRoaXMgcmV3cml0aW5nIHdoZW4gbW9kdWxlcyBnZXQKK2lt
cG9ydGVkLiAgSG93ZXZlciBzaW5jZSB3ZSBkbyBub3Qgd2FudCB0byB0ZXN0IGRpZmZlcmVudCBi
eXRlY29kZQordGhlbiB5b3Ugd2lsbCBydW4gaW4gcHJvZHVjdGlvbiB0aGlzIGhvb2sgb25seSBy
ZXdyaXRlcyB0ZXN0IG1vZHVsZXMKK3RoZW1zZWx2ZXMgYXMgd2VsbCBhcyBhbnkgbW9kdWxlcyB3
aGljaCBhcmUgcGFydCBvZiBwbHVnaW5zLiAgQW55CitvdGhlciBpbXBvcnRlZCBtb2R1bGUgd2ls
bCBub3QgYmUgcmV3cml0dGVuIGFuZCBub3JtYWwgYXNzZXJ0aW9uCitiZWhhdmlvdXIgd2lsbCBo
YXBwZW4uCisKK0lmIHlvdSBoYXZlIGFzc2VydGlvbiBoZWxwZXJzIGluIG90aGVyIG1vZHVsZXMg
d2hlcmUgeW91IHdvdWxkIG5lZWQKK2Fzc2VydGlvbiByZXdyaXRpbmcgdG8gYmUgZW5hYmxlZCB5
b3UgbmVlZCB0byBhc2sgYGBweXRlc3RgYAorZXhwbGljaXRseSB0byByZXdyaXRlIHRoaXMgbW9k
dWxlIGJlZm9yZSBpdCBnZXRzIGltcG9ydGVkLgorCisuLiBhdXRvZnVuY3Rpb246OiBweXRlc3Qu
cmVnaXN0ZXJfYXNzZXJ0X3Jld3JpdGUKKworVGhpcyBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCB3
aGVuIHlvdSB3cml0ZSBhIHB5dGVzdCBwbHVnaW4gd2hpY2ggaXMKK2NyZWF0ZWQgdXNpbmcgYSBw
YWNrYWdlLiAgVGhlIGltcG9ydCBob29rIG9ubHkgdHJlYXRzIGBgY29uZnRlc3QucHlgYAorZmls
ZXMgYW5kIGFueSBtb2R1bGVzIHdoaWNoIGFyZSBsaXN0ZWQgaW4gdGhlIGBgcHl0ZXN0MTFgYCBl
bnRyeXBvaW50CithcyBwbHVnaW5zLiAgQXMgYW4gZXhhbXBsZSBjb25zaWRlciB0aGUgZm9sbG93
aW5nIHBhY2thZ2U6OgorCisgICBweXRlc3RfZm9vL19faW5pdF9fLnB5CisgICBweXRlc3RfZm9v
L3BsdWdpbi5weQorICAgcHl0ZXN0X2Zvby9oZWxwZXIucHkKKworV2l0aCB0aGUgZm9sbG93aW5n
IHR5cGljYWwgYGBzZXR1cC5weWBgIGV4dHJhY3Q6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24K
KworICAgc2V0dXAoCisgICAgICAuLi4KKyAgICAgIGVudHJ5X3BvaW50cz17J3B5dGVzdDExJzog
Wydmb28gPSBweXRlc3RfZm9vLnBsdWdpbiddfSwKKyAgICAgIC4uLgorICAgKQorCitJbiB0aGlz
IGNhc2Ugb25seSBgYHB5dGVzdF9mb28vcGx1Z2luLnB5YGAgd2lsbCBiZSByZXdyaXR0ZW4uICBJ
ZiB0aGUKK2hlbHBlciBtb2R1bGUgYWxzbyBjb250YWlucyBhc3NlcnQgc3RhdGVtZW50cyB3aGlj
aCBuZWVkIHRvIGJlCityZXdyaXR0ZW4gaXQgbmVlZHMgdG8gYmUgbWFya2VkIGFzIHN1Y2gsIGJl
Zm9yZSBpdCBnZXRzIGltcG9ydGVkLgorVGhpcyBpcyBlYXNpZXN0IGJ5IG1hcmtpbmcgaXQgZm9y
IHJld3JpdGluZyBpbnNpZGUgdGhlCitgYF9faW5pdF9fLnB5YGAgbW9kdWxlLCB3aGljaCB3aWxs
IGFsd2F5cyBiZSBpbXBvcnRlZCBmaXJzdCB3aGVuIGEKK21vZHVsZSBpbnNpZGUgYSBwYWNrYWdl
IGlzIGltcG9ydGVkLiAgVGhpcyB3YXkgYGBwbHVnaW4ucHlgYCBjYW4gc3RpbGwKK2ltcG9ydCBg
YGhlbHBlci5weWBgIG5vcm1hbGx5LiAgVGhlIGNvbnRlbnRzIG9mCitgYHB5dGVzdF9mb28vX19p
bml0X18ucHlgYCB3aWxsIHRoZW4gbmVlZCB0byBsb29rIGxpa2UgdGhpczoKKworLi4gY29kZS1i
bG9jazo6IHB5dGhvbgorCisgICBpbXBvcnQgcHl0ZXN0CisKKyAgIHB5dGVzdC5yZWdpc3Rlcl9h
c3NlcnRfcmV3cml0ZSgncHl0ZXN0X2Zvby5oZWxwZXInKQorCisKKworUmVxdWlyaW5nL0xvYWRp
bmcgcGx1Z2lucyBpbiBhIHRlc3QgbW9kdWxlIG9yIGNvbmZ0ZXN0IGZpbGUKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1lvdSBj
YW4gcmVxdWlyZSBwbHVnaW5zIGluIGEgdGVzdCBtb2R1bGUgb3IgYSBgYGNvbmZ0ZXN0LnB5YGAg
ZmlsZSBsaWtlIHRoaXM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIHB5dGVzdF9w
bHVnaW5zID0gWyJuYW1lMSIsICJuYW1lMiJdCisKK1doZW4gdGhlIHRlc3QgbW9kdWxlIG9yIGNv
bmZ0ZXN0IHBsdWdpbiBpcyBsb2FkZWQgdGhlIHNwZWNpZmllZCBwbHVnaW5zCit3aWxsIGJlIGxv
YWRlZCBhcyB3ZWxsLiBBbnkgbW9kdWxlIGNhbiBiZSBibGVzc2VkIGFzIGEgcGx1Z2luLCBpbmNs
dWRpbmcgaW50ZXJuYWwKK2FwcGxpY2F0aW9uIG1vZHVsZXM6CisKKy4uIGNvZGUtYmxvY2s6OiBw
eXRob24KKworICAgIHB5dGVzdF9wbHVnaW5zID0gIm15YXBwLnRlc3RzdXBwb3J0Lm15cGx1Z2lu
IgorCitgYHB5dGVzdF9wbHVnaW5zYGAgdmFyaWFibGVzIGFyZSBwcm9jZXNzZWQgcmVjdXJzaXZl
bHksIHNvIG5vdGUgdGhhdCBpbiB0aGUgZXhhbXBsZSBhYm92ZQoraWYgYGBteWFwcC50ZXN0c3Vw
cG9ydC5teXBsdWdpbmBgIGFsc28gZGVjbGFyZXMgYGBweXRlc3RfcGx1Z2luc2BgLCB0aGUgY29u
dGVudHMKK29mIHRoZSB2YXJpYWJsZSB3aWxsIGFsc28gYmUgbG9hZGVkIGFzIHBsdWdpbnMsIGFu
ZCBzbyBvbi4KKworVGhpcyBtZWNoYW5pc20gbWFrZXMgaXQgZWFzeSB0byBzaGFyZSBmaXh0dXJl
cyB3aXRoaW4gYXBwbGljYXRpb25zIG9yIGV2ZW4KK2V4dGVybmFsIGFwcGxpY2F0aW9ucyB3aXRo
b3V0IHRoZSBuZWVkIHRvIGNyZWF0ZSBleHRlcm5hbCBwbHVnaW5zIHVzaW5nCit0aGUgYGBzZXR1
cHRvb2xzYGAncyBlbnRyeSBwb2ludCB0ZWNobmlxdWUuCisKK1BsdWdpbnMgaW1wb3J0ZWQgYnkg
YGBweXRlc3RfcGx1Z2luc2BgIHdpbGwgYWxzbyBhdXRvbWF0aWNhbGx5IGJlIG1hcmtlZAorZm9y
IGFzc2VydGlvbiByZXdyaXRpbmcgKHNlZSA6ZnVuYzpgcHl0ZXN0LnJlZ2lzdGVyX2Fzc2VydF9y
ZXdyaXRlYCkuCitIb3dldmVyIGZvciB0aGlzIHRvIGhhdmUgYW55IGVmZmVjdCB0aGUgbW9kdWxl
IG11c3Qgbm90IGJlCitpbXBvcnRlZCBhbHJlYWR5OyBpZiBpdCB3YXMgYWxyZWFkeSBpbXBvcnRl
ZCBhdCB0aGUgdGltZSB0aGUKK2BgcHl0ZXN0X3BsdWdpbnNgYCBzdGF0ZW1lbnQgaXMgcHJvY2Vz
c2VkLCBhIHdhcm5pbmcgd2lsbCByZXN1bHQgYW5kCithc3NlcnRpb25zIGluc2lkZSB0aGUgcGx1
Z2luIHdpbGwgbm90IGJlIHJld3JpdHRlbi4gIFRvIGZpeCB0aGlzIHlvdQorY2FuIGVpdGhlciBj
YWxsIDpmdW5jOmBweXRlc3QucmVnaXN0ZXJfYXNzZXJ0X3Jld3JpdGVgIHlvdXJzZWxmIGJlZm9y
ZQordGhlIG1vZHVsZSBpcyBpbXBvcnRlZCwgb3IgeW91IGNhbiBhcnJhbmdlIHRoZSBjb2RlIHRv
IGRlbGF5IHRoZQoraW1wb3J0aW5nIHVudGlsIGFmdGVyIHRoZSBwbHVnaW4gaXMgcmVnaXN0ZXJl
ZC4KKworCitBY2Nlc3NpbmcgYW5vdGhlciBwbHVnaW4gYnkgbmFtZQorLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKworSWYgYSBwbHVnaW4gd2FudHMgdG8gY29sbGFib3JhdGUgd2l0
aCBjb2RlIGZyb20KK2Fub3RoZXIgcGx1Z2luIGl0IGNhbiBvYnRhaW4gYSByZWZlcmVuY2UgdGhy
b3VnaAordGhlIHBsdWdpbiBtYW5hZ2VyIGxpa2UgdGhpczoKKworLi4gc291cmNlY29kZTo6IHB5
dGhvbgorCisgICAgcGx1Z2luID0gY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0cGx1Z2luKCJuYW1l
X29mX3BsdWdpbiIpCisKK0lmIHlvdSB3YW50IHRvIGxvb2sgYXQgdGhlIG5hbWVzIG9mIGV4aXN0
aW5nIHBsdWdpbnMsIHVzZQordGhlIGBgLS10cmFjZS1jb25maWdgYCBvcHRpb24uCisKK1Rlc3Rp
bmcgcGx1Z2lucworLS0tLS0tLS0tLS0tLS0tCisKK3B5dGVzdCBjb21lcyB3aXRoIGEgcGx1Z2lu
IG5hbWVkIGBgcHl0ZXN0ZXJgYCB0aGF0IGhlbHBzIHlvdSB3cml0ZSB0ZXN0cyBmb3IKK3lvdXIg
cGx1Z2luIGNvZGUuIFRoZSBwbHVnaW4gaXMgZGlzYWJsZWQgYnkgZGVmYXVsdCwgc28geW91IHdp
bGwgaGF2ZSB0byBlbmFibGUKK2l0IGJlZm9yZSB5b3UgY2FuIHVzZSBpdC4KKworWW91IGNhbiBk
byBzbyBieSBhZGRpbmcgdGhlIGZvbGxvd2luZyBsaW5lIHRvIGEgYGBjb25mdGVzdC5weWBgIGZp
bGUgaW4geW91cgordGVzdGluZyBkaXJlY3Rvcnk6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24K
KworICAgICMgY29udGVudCBvZiBjb25mdGVzdC5weQorCisgICAgcHl0ZXN0X3BsdWdpbnMgPSBb
InB5dGVzdGVyIl0KKworQWx0ZXJuYXRpdmVseSB5b3UgY2FuIGludm9rZSBweXRlc3Qgd2l0aCB0
aGUgYGAtcCBweXRlc3RlcmBgIGNvbW1hbmQgbGluZQorb3B0aW9uLgorCitUaGlzIHdpbGwgYWxs
b3cgeW91IHRvIHVzZSB0aGUgOnB5OmNsYXNzOmB0ZXN0ZGlyIDxfcHl0ZXN0LnB5dGVzdGVyLlRl
c3RkaXI+YAorZml4dHVyZSBmb3IgdGVzdGluZyB5b3VyIHBsdWdpbiBjb2RlLgorCitMZXQncyBk
ZW1vbnN0cmF0ZSB3aGF0IHlvdSBjYW4gZG8gd2l0aCB0aGUgcGx1Z2luIHdpdGggYW4gZXhhbXBs
ZS4gSW1hZ2luZSB3ZQorZGV2ZWxvcGVkIGEgcGx1Z2luIHRoYXQgcHJvdmlkZXMgYSBmaXh0dXJl
IGBgaGVsbG9gYCB3aGljaCB5aWVsZHMgYSBmdW5jdGlvbgorYW5kIHdlIGNhbiBpbnZva2UgdGhp
cyBmdW5jdGlvbiB3aXRoIG9uZSBvcHRpb25hbCBwYXJhbWV0ZXIuIEl0IHdpbGwgcmV0dXJuIGEK
K3N0cmluZyB2YWx1ZSBvZiBgYEhlbGxvIFdvcmxkIWBgIGlmIHdlIGRvIG5vdCBzdXBwbHkgYSB2
YWx1ZSBvciBgYEhlbGxvCit7dmFsdWV9IWBgIGlmIHdlIGRvIHN1cHBseSBhIHN0cmluZyB2YWx1
ZS4KKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisgICAgIyAtKi0gY29kaW5nOiB1dGYtOCAt
Ki0KKworICAgIGltcG9ydCBweXRlc3QKKworICAgIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNl
cik6CisgICAgICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCdoZWxsb3dvcmxkJykKKyAgICAg
ICAgZ3JvdXAuYWRkb3B0aW9uKAorICAgICAgICAgICAgJy0tbmFtZScsCisgICAgICAgICAgICBh
Y3Rpb249J3N0b3JlJywKKyAgICAgICAgICAgIGRlc3Q9J25hbWUnLAorICAgICAgICAgICAgZGVm
YXVsdD0nV29ybGQnLAorICAgICAgICAgICAgaGVscD0nRGVmYXVsdCAibmFtZSIgZm9yIGhlbGxv
KCkuJworICAgICAgICApCisKKyAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICBkZWYgaGVsbG8ocmVx
dWVzdCk6CisgICAgICAgIG5hbWUgPSByZXF1ZXN0LmNvbmZpZy5nZXRvcHRpb24oJ25hbWUnKQor
CisgICAgICAgIGRlZiBfaGVsbG8obmFtZT1Ob25lKToKKyAgICAgICAgICAgIGlmIG5vdCBuYW1l
OgorICAgICAgICAgICAgICAgIG5hbWUgPSByZXF1ZXN0LmNvbmZpZy5nZXRvcHRpb24oJ25hbWUn
KQorICAgICAgICAgICAgcmV0dXJuICJIZWxsbyB7bmFtZX0hIi5mb3JtYXQobmFtZT1uYW1lKQor
CisgICAgICAgIHJldHVybiBfaGVsbG8KKworCitOb3cgdGhlIGBgdGVzdGRpcmBgIGZpeHR1cmUg
cHJvdmlkZXMgYSBjb252ZW5pZW50IEFQSSBmb3IgY3JlYXRpbmcgdGVtcG9yYXJ5CitgYGNvbmZ0
ZXN0LnB5YGAgZmlsZXMgYW5kIHRlc3QgZmlsZXMuIEl0IGFsc28gYWxsb3dzIHVzIHRvIHJ1biB0
aGUgdGVzdHMgYW5kCityZXR1cm4gYSByZXN1bHQgb2JqZWN0LCB3aXRoIHdoaWNoIHdlIGNhbiBh
c3NlcnQgdGhlIHRlc3RzJyBvdXRjb21lcy4KKworLi4gY29kZS1ibG9jazo6IHB5dGhvbgorCisg
ICAgZGVmIHRlc3RfaGVsbG8odGVzdGRpcik6CisgICAgICAgICIiIk1ha2Ugc3VyZSB0aGF0IG91
ciBwbHVnaW4gd29ya3MuIiIiCisKKyAgICAgICAgIyBjcmVhdGUgYSB0ZW1wb3JhcnkgY29uZnRl
c3QucHkgZmlsZQorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bCisg
ICAgICAgICAgICAgICAgIkJyaWFubmEiLAorICAgICAgICAgICAgICAgICJBbmRyZWFzIiwKKyAg
ICAgICAgICAgICAgICAiRmxvcmlzIiwKKyAgICAgICAgICAgIF0pCisgICAgICAgICAgICBkZWYg
bmFtZShyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorICAg
ICAgICAiIiIpCisKKyAgICAgICAgIyBjcmVhdGUgYSB0ZW1wb3JhcnkgcHl0ZXN0IHRlc3QgZmls
ZQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9o
ZWxsb19kZWZhdWx0KGhlbGxvKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgaGVsbG8oKSA9PSAi
SGVsbG8gV29ybGQhIgorCisgICAgICAgICAgICBkZWYgdGVzdF9oZWxsb19uYW1lKGhlbGxvLCBu
YW1lKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgaGVsbG8obmFtZSkgPT0gIkhlbGxvIHswfSEi
LmZvcm1hdChuYW1lKQorICAgICAgICAiIiIpCisKKyAgICAgICAgIyBydW4gYWxsIHRlc3RzIHdp
dGggcHl0ZXN0CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKworICAgICAg
ICAjIGNoZWNrIHRoYXQgYWxsIDQgdGVzdHMgcGFzc2VkCisgICAgICAgIHJlc3VsdC5hc3NlcnRf
b3V0Y29tZXMocGFzc2VkPTQpCisKKworRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJl
c3VsdCBvYmplY3QgdGhhdCBgYHJ1bnB5dGVzdCgpYGAgcmV0dXJucywgYW5kCit0aGUgbWV0aG9k
cyB0aGF0IGl0IHByb3ZpZGVzIHBsZWFzZSBjaGVjayBvdXQgdGhlIDpweTpjbGFzczpgUnVuUmVz
dWx0Cis8X3B5dGVzdC5weXRlc3Rlci5SdW5SZXN1bHQ+YCBkb2N1bWVudGF0aW9uLgorCisKKy4u
IF9gd3JpdGluZ2hvb2tzYDoKKworV3JpdGluZyBob29rIGZ1bmN0aW9ucworPT09PT09PT09PT09
PT09PT09PT09PQorCisKKy4uIF92YWxpZGF0aW9uOgorCitob29rIGZ1bmN0aW9uIHZhbGlkYXRp
b24gYW5kIGV4ZWN1dGlvbgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
KworcHl0ZXN0IGNhbGxzIGhvb2sgZnVuY3Rpb25zIGZyb20gcmVnaXN0ZXJlZCBwbHVnaW5zIGZv
ciBhbnkKK2dpdmVuIGhvb2sgc3BlY2lmaWNhdGlvbi4gIExldCdzIGxvb2sgYXQgYSB0eXBpY2Fs
IGhvb2sgZnVuY3Rpb24KK2ZvciB0aGUgYGBweXRlc3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtcyhz
ZXNzaW9uLCBjb25maWcsCitpdGVtcylgYCBob29rIHdoaWNoIHB5dGVzdCBjYWxscyBhZnRlciBj
b2xsZWN0aW9uIG9mIGFsbCB0ZXN0IGl0ZW1zIGlzCitjb21wbGV0ZWQuCisKK1doZW4gd2UgaW1w
bGVtZW50IGEgYGBweXRlc3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtc2BgIGZ1bmN0aW9uIGluIG91
ciBwbHVnaW4KK3B5dGVzdCB3aWxsIGR1cmluZyByZWdpc3RyYXRpb24gdmVyaWZ5IHRoYXQgeW91
IHVzZSBhcmd1bWVudAorbmFtZXMgd2hpY2ggbWF0Y2ggdGhlIHNwZWNpZmljYXRpb24gYW5kIGJh
aWwgb3V0IGlmIG5vdC4KKworTGV0J3MgbG9vayBhdCBhIHBvc3NpYmxlIGltcGxlbWVudGF0aW9u
OgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgICBkZWYgcHl0ZXN0X2NvbGxlY3Rpb25f
bW9kaWZ5aXRlbXMoY29uZmlnLCBpdGVtcyk6CisgICAgICAgICMgY2FsbGVkIGFmdGVyIGNvbGxl
Y3Rpb24gaXMgY29tcGxldGVkCisgICAgICAgICMgeW91IGNhbiBtb2RpZnkgdGhlIGBgaXRlbXNg
YCBsaXN0CisKK0hlcmUsIGBgcHl0ZXN0YGAgd2lsbCBwYXNzIGluIGBgY29uZmlnYGAgKHRoZSBw
eXRlc3QgY29uZmlnIG9iamVjdCkKK2FuZCBgYGl0ZW1zYGAgKHRoZSBsaXN0IG9mIGNvbGxlY3Rl
ZCB0ZXN0IGl0ZW1zKSBidXQgd2lsbCBub3QgcGFzcworaW4gdGhlIGBgc2Vzc2lvbmBgIGFyZ3Vt
ZW50IGJlY2F1c2Ugd2UgZGlkbid0IGxpc3QgaXQgaW4gdGhlIGZ1bmN0aW9uCitzaWduYXR1cmUu
ICBUaGlzIGR5bmFtaWMgInBydW5pbmciIG9mIGFyZ3VtZW50cyBhbGxvd3MgYGBweXRlc3RgYCB0
bworYmUgImZ1dHVyZS1jb21wYXRpYmxlIjogd2UgY2FuIGludHJvZHVjZSBuZXcgaG9vayBuYW1l
ZCBwYXJhbWV0ZXJzIHdpdGhvdXQKK2JyZWFraW5nIHRoZSBzaWduYXR1cmVzIG9mIGV4aXN0aW5n
IGhvb2sgaW1wbGVtZW50YXRpb25zLiAgSXQgaXMgb25lIG9mCit0aGUgcmVhc29ucyBmb3IgdGhl
IGdlbmVyYWwgbG9uZy1saXZlZCBjb21wYXRpYmlsaXR5IG9mIHB5dGVzdCBwbHVnaW5zLgorCitO
b3RlIHRoYXQgaG9vayBmdW5jdGlvbnMgb3RoZXIgdGhhbiBgYHB5dGVzdF9ydW50ZXN0XypgYCBh
cmUgbm90CithbGxvd2VkIHRvIHJhaXNlIGV4Y2VwdGlvbnMuICBEb2luZyBzbyB3aWxsIGJyZWFr
IHRoZSBweXRlc3QgcnVuLgorCisKKworLi4gX2ZpcnN0cmVzdWx0OgorCitmaXJzdHJlc3VsdDog
c3RvcCBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKworTW9zdCBjYWxscyB0byBgYHB5dGVzdGBgIGhvb2tzIHJlc3Vs
dCBpbiBhICoqbGlzdCBvZiByZXN1bHRzKiogd2hpY2ggY29udGFpbnMKK2FsbCBub24tTm9uZSBy
ZXN1bHRzIG9mIHRoZSBjYWxsZWQgaG9vayBmdW5jdGlvbnMuCisKK1NvbWUgaG9vayBzcGVjaWZp
Y2F0aW9ucyB1c2UgdGhlIGBgZmlyc3RyZXN1bHQ9VHJ1ZWBgIG9wdGlvbiBzbyB0aGF0IHRoZSBo
b29rCitjYWxsIG9ubHkgZXhlY3V0ZXMgdW50aWwgdGhlIGZpcnN0IG9mIE4gcmVnaXN0ZXJlZCBm
dW5jdGlvbnMgcmV0dXJucyBhCitub24tTm9uZSByZXN1bHQgd2hpY2ggaXMgdGhlbiB0YWtlbiBh
cyByZXN1bHQgb2YgdGhlIG92ZXJhbGwgaG9vayBjYWxsLgorVGhlIHJlbWFpbmluZyBob29rIGZ1
bmN0aW9ucyB3aWxsIG5vdCBiZSBjYWxsZWQgaW4gdGhpcyBjYXNlLgorCisKK2hvb2t3cmFwcGVy
OiBleGVjdXRpbmcgYXJvdW5kIG90aGVyIGhvb2tzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIGN1cnJlbnRtb2R1bGU6OiBfcHl0ZXN0LmNv
cmUKKworLi4gdmVyc2lvbmFkZGVkOjogMi43CisKK3B5dGVzdCBwbHVnaW5zIGNhbiBpbXBsZW1l
bnQgaG9vayB3cmFwcGVycyB3aGljaCB3cmFwIHRoZSBleGVjdXRpb24KK29mIG90aGVyIGhvb2sg
aW1wbGVtZW50YXRpb25zLiAgQSBob29rIHdyYXBwZXIgaXMgYSBnZW5lcmF0b3IgZnVuY3Rpb24K
K3doaWNoIHlpZWxkcyBleGFjdGx5IG9uY2UuIFdoZW4gcHl0ZXN0IGludm9rZXMgaG9va3MgaXQg
Zmlyc3QgZXhlY3V0ZXMKK2hvb2sgd3JhcHBlcnMgYW5kIHBhc3NlcyB0aGUgc2FtZSBhcmd1bWVu
dHMgYXMgdG8gdGhlIHJlZ3VsYXIgaG9va3MuCisKK0F0IHRoZSB5aWVsZCBwb2ludCBvZiB0aGUg
aG9vayB3cmFwcGVyIHB5dGVzdCB3aWxsIGV4ZWN1dGUgdGhlIG5leHQgaG9vaworaW1wbGVtZW50
YXRpb25zIGFuZCByZXR1cm4gdGhlaXIgcmVzdWx0IHRvIHRoZSB5aWVsZCBwb2ludCBpbiB0aGUg
Zm9ybSBvZgorYSA6cHk6Y2xhc3M6YFJlc3VsdCA8cGx1Z2d5Ll9SZXN1bHQ+YCBpbnN0YW5jZSB3
aGljaCBlbmNhcHN1bGF0ZXMgYSByZXN1bHQgb3IKK2V4Y2VwdGlvbiBpbmZvLiAgVGhlIHlpZWxk
IHBvaW50IGl0c2VsZiB3aWxsIHRodXMgdHlwaWNhbGx5IG5vdCByYWlzZQorZXhjZXB0aW9ucyAo
dW5sZXNzIHRoZXJlIGFyZSBidWdzKS4KKworSGVyZSBpcyBhbiBleGFtcGxlIGRlZmluaXRpb24g
b2YgYSBob29rIHdyYXBwZXI6OgorCisgICAgaW1wb3J0IHB5dGVzdAorCisgICAgQHB5dGVzdC5o
b29raW1wbChob29rd3JhcHBlcj1UcnVlKQorICAgIGRlZiBweXRlc3RfcHlmdW5jX2NhbGwocHlm
dW5jaXRlbSk6CisgICAgICAgICMgZG8gd2hhdGV2ZXIgeW91IHdhbnQgYmVmb3JlIHRoZSBuZXh0
IGhvb2sgZXhlY3V0ZXMKKworICAgICAgICBvdXRjb21lID0geWllbGQKKyAgICAgICAgIyBvdXRj
b21lLmV4Y2luZm8gbWF5IGJlIE5vbmUgb3IgYSAoY2xzLCB2YWwsIHRiKSB0dXBsZQorCisgICAg
ICAgIHJlcyA9IG91dGNvbWUuZ2V0X3Jlc3VsdCgpICAjIHdpbGwgcmFpc2UgaWYgb3V0Y29tZSB3
YXMgZXhjZXB0aW9uCisgICAgICAgICMgcG9zdHByb2Nlc3MgcmVzdWx0CisKK05vdGUgdGhhdCBo
b29rIHdyYXBwZXJzIGRvbid0IHJldHVybiByZXN1bHRzIHRoZW1zZWx2ZXMsIHRoZXkgbWVyZWx5
CitwZXJmb3JtIHRyYWNpbmcgb3Igb3RoZXIgc2lkZSBlZmZlY3RzIGFyb3VuZCB0aGUgYWN0dWFs
IGhvb2sgaW1wbGVtZW50YXRpb25zLgorSWYgdGhlIHJlc3VsdCBvZiB0aGUgdW5kZXJseWluZyBo
b29rIGlzIGEgbXV0YWJsZSBvYmplY3QsIHRoZXkgbWF5IG1vZGlmeQordGhhdCByZXN1bHQgYnV0
IGl0J3MgcHJvYmFibHkgYmV0dGVyIHRvIGF2b2lkIGl0LgorCisKK0hvb2sgZnVuY3Rpb24gb3Jk
ZXJpbmcgLyBjYWxsIGV4YW1wbGUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KKworRm9yIGFueSBnaXZlbiBob29rIHNwZWNpZmljYXRpb24gdGhlcmUgbWF5IGJlIG1vcmUg
dGhhbiBvbmUKK2ltcGxlbWVudGF0aW9uIGFuZCB3ZSB0aHVzIGdlbmVyYWxseSB2aWV3IGBgaG9v
a2BgIGV4ZWN1dGlvbiBhcyBhCitgYDE6TmBgIGZ1bmN0aW9uIGNhbGwgd2hlcmUgYGBOYGAgaXMg
dGhlIG51bWJlciBvZiByZWdpc3RlcmVkIGZ1bmN0aW9ucy4KK1RoZXJlIGFyZSB3YXlzIHRvIGlu
Zmx1ZW5jZSBpZiBhIGhvb2sgaW1wbGVtZW50YXRpb24gY29tZXMgYmVmb3JlIG9yCithZnRlciBv
dGhlcnMsIGkuZS4gIHRoZSBwb3NpdGlvbiBpbiB0aGUgYGBOYGAtc2l6ZWQgbGlzdCBvZiBmdW5j
dGlvbnM6CisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgICMgUGx1Z2luIDEKKyAgICBA
cHl0ZXN0Lmhvb2tpbXBsKHRyeWZpcnN0PVRydWUpCisgICAgZGVmIHB5dGVzdF9jb2xsZWN0aW9u
X21vZGlmeWl0ZW1zKGl0ZW1zKToKKyAgICAgICAgIyB3aWxsIGV4ZWN1dGUgYXMgZWFybHkgYXMg
cG9zc2libGUKKworICAgICMgUGx1Z2luIDIKKyAgICBAcHl0ZXN0Lmhvb2tpbXBsKHRyeWxhc3Q9
VHJ1ZSkKKyAgICBkZWYgcHl0ZXN0X2NvbGxlY3Rpb25fbW9kaWZ5aXRlbXMoaXRlbXMpOgorICAg
ICAgICAjIHdpbGwgZXhlY3V0ZSBhcyBsYXRlIGFzIHBvc3NpYmxlCisKKyAgICAjIFBsdWdpbiAz
CisgICAgQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQorICAgIGRlZiBweXRlc3Rf
Y29sbGVjdGlvbl9tb2RpZnlpdGVtcyhpdGVtcyk6CisgICAgICAgICMgd2lsbCBleGVjdXRlIGV2
ZW4gYmVmb3JlIHRoZSB0cnlmaXJzdCBvbmUgYWJvdmUhCisgICAgICAgIG91dGNvbWUgPSB5aWVs
ZAorICAgICAgICAjIHdpbGwgZXhlY3V0ZSBhZnRlciBhbGwgbm9uLWhvb2t3cmFwcGVycyBleGVj
dXRlZAorCitIZXJlIGlzIHRoZSBvcmRlciBvZiBleGVjdXRpb246CisKKzEuIFBsdWdpbjMncyBw
eXRlc3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtcyBjYWxsZWQgdW50aWwgdGhlIHlpZWxkIHBvaW50
CisgICBiZWNhdXNlIGl0IGlzIGEgaG9vayB3cmFwcGVyLgorCisyLiBQbHVnaW4xJ3MgcHl0ZXN0
X2NvbGxlY3Rpb25fbW9kaWZ5aXRlbXMgaXMgY2FsbGVkIGJlY2F1c2UgaXQgaXMgbWFya2VkCisg
ICB3aXRoIGBgdHJ5Zmlyc3Q9VHJ1ZWBgLgorCiszLiBQbHVnaW4yJ3MgcHl0ZXN0X2NvbGxlY3Rp
b25fbW9kaWZ5aXRlbXMgaXMgY2FsbGVkIGJlY2F1c2UgaXQgaXMgbWFya2VkCisgICB3aXRoIGBg
dHJ5bGFzdD1UcnVlYGAgKGJ1dCBldmVuIHdpdGhvdXQgdGhpcyBtYXJrIGl0IHdvdWxkIGNvbWUg
YWZ0ZXIKKyAgIFBsdWdpbjEpLgorCis0LiBQbHVnaW4zJ3MgcHl0ZXN0X2NvbGxlY3Rpb25fbW9k
aWZ5aXRlbXMgdGhlbiBleGVjdXRpbmcgdGhlIGNvZGUgYWZ0ZXIgdGhlIHlpZWxkCisgICBwb2lu
dC4gIFRoZSB5aWVsZCByZWNlaXZlcyBhIDpweTpjbGFzczpgUmVzdWx0IDxwbHVnZ3kuX1Jlc3Vs
dD5gIGluc3RhbmNlIHdoaWNoIGVuY2Fwc3VsYXRlcworICAgdGhlIHJlc3VsdCBmcm9tIGNhbGxp
bmcgdGhlIG5vbi13cmFwcGVycy4gIFdyYXBwZXJzIHNoYWxsIG5vdCBtb2RpZnkgdGhlIHJlc3Vs
dC4KKworSXQncyBwb3NzaWJsZSB0byB1c2UgYGB0cnlmaXJzdGBgIGFuZCBgYHRyeWxhc3RgYCBh
bHNvIGluIGNvbmp1bmN0aW9uIHdpdGgKK2BgaG9va3dyYXBwZXI9VHJ1ZWBgIGluIHdoaWNoIGNh
c2UgaXQgd2lsbCBpbmZsdWVuY2UgdGhlIG9yZGVyaW5nIG9mIGhvb2t3cmFwcGVycworYW1vbmcg
ZWFjaCBvdGhlci4KKworCitEZWNsYXJpbmcgbmV3IGhvb2tzCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKworLi4gY3VycmVudG1vZHVsZTo6IF9weXRlc3QuaG9va3NwZWMKKworUGx1Z2lucyBh
bmQgYGBjb25mdGVzdC5weWBgIGZpbGVzIG1heSBkZWNsYXJlIG5ldyBob29rcyB0aGF0IGNhbiB0
aGVuIGJlCitpbXBsZW1lbnRlZCBieSBvdGhlciBwbHVnaW5zIGluIG9yZGVyIHRvIGFsdGVyIGJl
aGF2aW91ciBvciBpbnRlcmFjdCB3aXRoCit0aGUgbmV3IHBsdWdpbjoKKworLi4gYXV0b2Z1bmN0
aW9uOjogcHl0ZXN0X2FkZGhvb2tzCisKK0hvb2tzIGFyZSB1c3VhbGx5IGRlY2xhcmVkIGFzIGRv
LW5vdGhpbmcgZnVuY3Rpb25zIHRoYXQgY29udGFpbiBvbmx5Citkb2N1bWVudGF0aW9uIGRlc2Ny
aWJpbmcgd2hlbiB0aGUgaG9vayB3aWxsIGJlIGNhbGxlZCBhbmQgd2hhdCByZXR1cm4gdmFsdWVz
CithcmUgZXhwZWN0ZWQuCisKK0ZvciBhbiBleGFtcGxlLCBzZWUgYG5ld2hvb2tzLnB5YF8gZnJv
bSBgeGRpc3QgPGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC14ZGlzdD5gXy4K
KworLi4gX2BuZXdob29rcy5weWA6IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVz
dC14ZGlzdC9ibG9iLzk3NGJkNTY2YzU5OWRjNmE5ZWEyOTE4MzhjNmYyMjYxOTcyMDhiNDYveGRp
c3QvbmV3aG9va3MucHkKKworCitPcHRpb25hbGx5IHVzaW5nIGhvb2tzIGZyb20gM3JkIHBhcnR5
IHBsdWdpbnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CitVc2luZyBuZXcgaG9va3MgZnJvbSBwbHVnaW5zIGFzIGV4cGxhaW5lZCBhYm92ZSBtaWdodCBi
ZSBhIGxpdHRsZSB0cmlja3kKK2JlY2F1c2Ugb2YgdGhlIHN0YW5kYXJkIDpyZWY6YHZhbGlkYXRp
b24gbWVjaGFuaXNtIDx2YWxpZGF0aW9uPmA6CitpZiB5b3UgZGVwZW5kIG9uIGEgcGx1Z2luIHRo
YXQgaXMgbm90IGluc3RhbGxlZCwgdmFsaWRhdGlvbiB3aWxsIGZhaWwgYW5kCit0aGUgZXJyb3Ig
bWVzc2FnZSB3aWxsIG5vdCBtYWtlIG11Y2ggc2Vuc2UgdG8geW91ciB1c2Vycy4KKworT25lIGFw
cHJvYWNoIGlzIHRvIGRlZmVyIHRoZSBob29rIGltcGxlbWVudGF0aW9uIHRvIGEgbmV3IHBsdWdp
biBpbnN0ZWFkIG9mCitkZWNsYXJpbmcgdGhlIGhvb2sgZnVuY3Rpb25zIGRpcmVjdGx5IGluIHlv
dXIgcGx1Z2luIG1vZHVsZSwgZm9yIGV4YW1wbGU6OgorCisgICAgIyBjb250ZW50cyBvZiBteXBs
dWdpbi5weQorCisgICAgY2xhc3MgRGVmZXJQbHVnaW4ob2JqZWN0KToKKyAgICAgICAgIiIiU2lt
cGxlIHBsdWdpbiB0byBkZWZlciBweXRlc3QteGRpc3QgaG9vayBmdW5jdGlvbnMuIiIiCisKKyAg
ICAgICAgZGVmIHB5dGVzdF90ZXN0bm9kZWRvd24oc2VsZiwgbm9kZSwgZXJyb3IpOgorICAgICAg
ICAgICAgIiIic3RhbmRhcmQgeGRpc3QgaG9vayBmdW5jdGlvbi4KKyAgICAgICAgICAgICIiIgor
CisgICAgZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKKyAgICAgICAgaWYgY29uZmlnLnBs
dWdpbm1hbmFnZXIuaGFzcGx1Z2luKCd4ZGlzdCcpOgorICAgICAgICAgICAgY29uZmlnLnBsdWdp
bm1hbmFnZXIucmVnaXN0ZXIoRGVmZXJQbHVnaW4oKSkKKworVGhpcyBoYXMgdGhlIGFkZGVkIGJl
bmVmaXQgb2YgYWxsb3dpbmcgeW91IHRvIGNvbmRpdGlvbmFsbHkgaW5zdGFsbCBob29rcworZGVw
ZW5kaW5nIG9uIHdoaWNoIHBsdWdpbnMgYXJlIGluc3RhbGxlZC4KKworLi4gX2B3ZWxsIHNwZWNp
ZmllZCBob29rc2A6CisKKy4uIGN1cnJlbnRtb2R1bGU6OiBfcHl0ZXN0Lmhvb2tzcGVjCisKK3B5
dGVzdCBob29rIHJlZmVyZW5jZQorPT09PT09PT09PT09PT09PT09PT09CisKKworSW5pdGlhbGl6
YXRpb24sIGNvbW1hbmQgbGluZSBhbmQgY29uZmlndXJhdGlvbiBob29rcworLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiBhdXRvZnVuY3Rp
b246OiBweXRlc3RfbG9hZF9pbml0aWFsX2NvbmZ0ZXN0cworLi4gYXV0b2Z1bmN0aW9uOjogcHl0
ZXN0X2NtZGxpbmVfcHJlcGFyc2UKKy4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF9jbWRsaW5lX3Bh
cnNlCisuLiBhdXRvZnVuY3Rpb246OiBweXRlc3RfYWRkb3B0aW9uCisuLiBhdXRvZnVuY3Rpb246
OiBweXRlc3RfY21kbGluZV9tYWluCisuLiBhdXRvZnVuY3Rpb246OiBweXRlc3RfY29uZmlndXJl
CisuLiBhdXRvZnVuY3Rpb246OiBweXRlc3RfdW5jb25maWd1cmUKKworR2VuZXJpYyAicnVudGVz
dCIgaG9va3MKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0FsbCBydW50ZXN0IHJlbGF0ZWQg
aG9va3MgcmVjZWl2ZSBhIDpweTpjbGFzczpgcHl0ZXN0Lkl0ZW0gPF9weXRlc3QubWFpbi5JdGVt
PmAgb2JqZWN0LgorCisuLiBhdXRvZnVuY3Rpb246OiBweXRlc3RfcnVudGVzdF9wcm90b2NvbAor
Li4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X3J1bnRlc3Rfc2V0dXAKKy4uIGF1dG9mdW5jdGlvbjo6
IHB5dGVzdF9ydW50ZXN0X2NhbGwKKy4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF9ydW50ZXN0X3Rl
YXJkb3duCisuLiBhdXRvZnVuY3Rpb246OiBweXRlc3RfcnVudGVzdF9tYWtlcmVwb3J0CisKK0Zv
ciBkZWVwZXIgdW5kZXJzdGFuZGluZyB5b3UgbWF5IGxvb2sgYXQgdGhlIGRlZmF1bHQgaW1wbGVt
ZW50YXRpb24gb2YKK3RoZXNlIGhvb2tzIGluIDpweTptb2Q6YF9weXRlc3QucnVubmVyYCBhbmQg
bWF5YmUgYWxzbworaW4gOnB5Om1vZDpgX3B5dGVzdC5wZGJgIHdoaWNoIGludGVyYWN0cyB3aXRo
IDpweTptb2Q6YF9weXRlc3QuY2FwdHVyZWAKK2FuZCBpdHMgaW5wdXQvb3V0cHV0IGNhcHR1cmlu
ZyBpbiBvcmRlciB0byBpbW1lZGlhdGVseSBkcm9wCitpbnRvIGludGVyYWN0aXZlIGRlYnVnZ2lu
ZyB3aGVuIGEgdGVzdCBmYWlsdXJlIG9jY3Vycy4KKworVGhlIDpweTptb2Q6YF9weXRlc3QudGVy
bWluYWxgIHJlcG9ydGVkIHNwZWNpZmljYWxseSB1c2VzCit0aGUgcmVwb3J0aW5nIGhvb2sgdG8g
cHJpbnQgaW5mb3JtYXRpb24gYWJvdXQgYSB0ZXN0IHJ1bi4KKworQ29sbGVjdGlvbiBob29rcwor
LS0tLS0tLS0tLS0tLS0tLQorCitgYHB5dGVzdGBgIGNhbGxzIHRoZSBmb2xsb3dpbmcgaG9va3Mg
Zm9yIGNvbGxlY3RpbmcgZmlsZXMgYW5kIGRpcmVjdG9yaWVzOgorCisuLiBhdXRvZnVuY3Rpb246
OiBweXRlc3RfaWdub3JlX2NvbGxlY3QKKy4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF9jb2xsZWN0
X2RpcmVjdG9yeQorLi4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X2NvbGxlY3RfZmlsZQorCitGb3Ig
aW5mbHVlbmNpbmcgdGhlIGNvbGxlY3Rpb24gb2Ygb2JqZWN0cyBpbiBQeXRob24gbW9kdWxlcwor
eW91IGNhbiB1c2UgdGhlIGZvbGxvd2luZyBob29rOgorCisuLiBhdXRvZnVuY3Rpb246OiBweXRl
c3RfcHljb2xsZWN0X21ha2VpdGVtCisuLiBhdXRvZnVuY3Rpb246OiBweXRlc3RfZ2VuZXJhdGVf
dGVzdHMKKy4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF9tYWtlX3BhcmFtZXRyaXplX2lkCisKK0Fm
dGVyIGNvbGxlY3Rpb24gaXMgY29tcGxldGUsIHlvdSBjYW4gbW9kaWZ5IHRoZSBvcmRlciBvZgor
aXRlbXMsIGRlbGV0ZSBvciBvdGhlcndpc2UgYW1lbmQgdGhlIHRlc3QgaXRlbXM6CisKKy4uIGF1
dG9mdW5jdGlvbjo6IHB5dGVzdF9jb2xsZWN0aW9uX21vZGlmeWl0ZW1zCisKK1JlcG9ydGluZyBo
b29rcworLS0tLS0tLS0tLS0tLS0tCisKK1Nlc3Npb24gcmVsYXRlZCByZXBvcnRpbmcgaG9va3M6
CisKKy4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF9jb2xsZWN0c3RhcnQKKy4uIGF1dG9mdW5jdGlv
bjo6IHB5dGVzdF9pdGVtY29sbGVjdGVkCisuLiBhdXRvZnVuY3Rpb246OiBweXRlc3RfY29sbGVj
dHJlcG9ydAorLi4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X2Rlc2VsZWN0ZWQKKy4uIGF1dG9mdW5j
dGlvbjo6IHB5dGVzdF9yZXBvcnRfaGVhZGVyCisuLiBhdXRvZnVuY3Rpb246OiBweXRlc3RfcmVw
b3J0X2NvbGxlY3Rpb25maW5pc2gKKy4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF9yZXBvcnRfdGVz
dHN0YXR1cworLi4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X3Rlcm1pbmFsX3N1bW1hcnkKKy4uIGF1
dG9mdW5jdGlvbjo6IHB5dGVzdF9maXh0dXJlX3NldHVwCisuLiBhdXRvZnVuY3Rpb246OiBweXRl
c3RfZml4dHVyZV9wb3N0X2ZpbmFsaXplcgorCitBbmQgaGVyZSBpcyB0aGUgY2VudHJhbCBob29r
IGZvciByZXBvcnRpbmcgYWJvdXQKK3Rlc3QgZXhlY3V0aW9uOgorCisuLiBhdXRvZnVuY3Rpb246
OiBweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQKKworWW91IGNhbiBhbHNvIHVzZSB0aGlzIGhvb2sg
dG8gY3VzdG9taXplIGFzc2VydGlvbiByZXByZXNlbnRhdGlvbiBmb3Igc29tZQordHlwZXM6CisK
Ky4uIGF1dG9mdW5jdGlvbjo6IHB5dGVzdF9hc3NlcnRyZXByX2NvbXBhcmUKKworCitEZWJ1Z2dp
bmcvSW50ZXJhY3Rpb24gaG9va3MKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGVy
ZSBhcmUgZmV3IGhvb2tzIHdoaWNoIGNhbiBiZSB1c2VkIGZvciBzcGVjaWFsCityZXBvcnRpbmcg
b3IgaW50ZXJhY3Rpb24gd2l0aCBleGNlcHRpb25zOgorCisuLiBhdXRvZnVuY3Rpb246OiBweXRl
c3RfaW50ZXJuYWxlcnJvcgorLi4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X2tleWJvYXJkX2ludGVy
cnVwdAorLi4gYXV0b2Z1bmN0aW9uOjogcHl0ZXN0X2V4Y2VwdGlvbl9pbnRlcmFjdAorLi4gYXV0
b2Z1bmN0aW9uOjogcHl0ZXN0X2VudGVyX3BkYgorCisKK1JlZmVyZW5jZSBvZiBvYmplY3RzIGlu
dm9sdmVkIGluIGhvb2tzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor
CisuLiBhdXRvY2xhc3M6OiBfcHl0ZXN0LmNvbmZpZy5Db25maWcoKQorICAgIDptZW1iZXJzOgor
CisuLiBhdXRvY2xhc3M6OiBfcHl0ZXN0LmNvbmZpZy5QYXJzZXIoKQorICAgIDptZW1iZXJzOgor
CisuLiBhdXRvY2xhc3M6OiBfcHl0ZXN0Lm1haW4uTm9kZSgpCisgICAgOm1lbWJlcnM6CisKKy4u
IGF1dG9jbGFzczo6IF9weXRlc3QubWFpbi5Db2xsZWN0b3IoKQorICAgIDptZW1iZXJzOgorICAg
IDpzaG93LWluaGVyaXRhbmNlOgorCisuLiBhdXRvY2xhc3M6OiBfcHl0ZXN0Lm1haW4uSXRlbSgp
CisgICAgOm1lbWJlcnM6CisgICAgOnNob3ctaW5oZXJpdGFuY2U6CisKKy4uIGF1dG9jbGFzczo6
IF9weXRlc3QucHl0aG9uLk1vZHVsZSgpCisgICAgOm1lbWJlcnM6CisgICAgOnNob3ctaW5oZXJp
dGFuY2U6CisKKy4uIGF1dG9jbGFzczo6IF9weXRlc3QucHl0aG9uLkNsYXNzKCkKKyAgICA6bWVt
YmVyczoKKyAgICA6c2hvdy1pbmhlcml0YW5jZToKKworLi4gYXV0b2NsYXNzOjogX3B5dGVzdC5w
eXRob24uRnVuY3Rpb24oKQorICAgIDptZW1iZXJzOgorICAgIDpzaG93LWluaGVyaXRhbmNlOgor
CisuLiBhdXRvY2xhc3M6OiBfcHl0ZXN0LmZpeHR1cmVzLkZpeHR1cmVEZWYoKQorICAgIDptZW1i
ZXJzOgorICAgIDpzaG93LWluaGVyaXRhbmNlOgorCisuLiBhdXRvY2xhc3M6OiBfcHl0ZXN0LnJ1
bm5lci5DYWxsSW5mbygpCisgICAgOm1lbWJlcnM6CisKKy4uIGF1dG9jbGFzczo6IF9weXRlc3Qu
cnVubmVyLlRlc3RSZXBvcnQoKQorICAgIDptZW1iZXJzOgorICAgIDppbmhlcml0ZWQtbWVtYmVy
czoKKworLi4gYXV0b2NsYXNzOjogcGx1Z2d5Ll9SZXN1bHQKKyAgICA6bWVtYmVyczoKKworLi4g
YXV0b2Z1bmN0aW9uOjogX3B5dGVzdC5jb25maWcuZ2V0X3BsdWdpbl9tYW5hZ2VyKCkKKworLi4g
YXV0b2NsYXNzOjogX3B5dGVzdC5jb25maWcuUHl0ZXN0UGx1Z2luTWFuYWdlcigpCisgICAgOm1l
bWJlcnM6CisgICAgOnVuZG9jLW1lbWJlcnM6CisgICAgOnNob3ctaW5oZXJpdGFuY2U6CisKKy4u
IGF1dG9jbGFzczo6IHBsdWdneS5QbHVnaW5NYW5hZ2VyKCkKKyAgICA6bWVtYmVyczoKKworLi4g
Y3VycmVudG1vZHVsZTo6IF9weXRlc3QucHl0ZXN0ZXIKKworLi4gYXV0b2NsYXNzOjogVGVzdGRp
cigpCisgICAgOm1lbWJlcnM6IHJ1bnB5dGVzdCxydW5weXRlc3Rfc3VicHJvY2VzcyxydW5weXRl
c3RfaW5wcm9jZXNzLG1ha2Vjb25mdGVzdCxtYWtlcHlmaWxlCisKKy4uIGF1dG9jbGFzczo6IFJ1
blJlc3VsdCgpCisgICAgOm1lbWJlcnM6CisKKy4uIGF1dG9jbGFzczo6IExpbmVNYXRjaGVyKCkK
KyAgICA6bWVtYmVyczoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi94dW5pdF9zZXR1
cC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4veHVuaXRfc2V0dXAucnN0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0
OGZiMTIwOWVhMzkzYWVkNGIxMzNjMmI4YmQ3OTBkNzI2ZjI0ZWUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4veHVuaXRfc2V0dXAucnN0CkBAIC0wLDAgKzEsOTkgQEAKKwor
Li4gX2BjbGFzc2ljIHh1bml0YDoKKy4uIF94dW5pdHNldHVwOgorCitjbGFzc2ljIHh1bml0LXN0
eWxlIHNldHVwCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1Ro
aXMgc2VjdGlvbiBkZXNjcmliZXMgYSBjbGFzc2ljIGFuZCBwb3B1bGFyIHdheSBob3cgeW91IGNh
biBpbXBsZW1lbnQKK2ZpeHR1cmVzIChzZXR1cCBhbmQgdGVhcmRvd24gdGVzdCBzdGF0ZSkgb24g
YSBwZXItbW9kdWxlL2NsYXNzL2Z1bmN0aW9uIGJhc2lzLiAgCisKKworLi4gbm90ZTo6CisKKyAg
ICBXaGlsZSB0aGVzZSBzZXR1cC90ZWFyZG93biBtZXRob2RzIGFyZSBzaW1wbGUgYW5kIGZhbWls
aWFyIHRvIHRob3NlCisgICAgY29taW5nIGZyb20gYSBgYHVuaXR0ZXN0YGAgb3Igbm9zZSBgYGJh
Y2tncm91bmRgYCwgeW91IG1heSBhbHNvIGNvbnNpZGVyCisgICAgdXNpbmcgcHl0ZXN0J3MgbW9y
ZSBwb3dlcmZ1bCA6cmVmOmBmaXh0dXJlIG1lY2hhbmlzbQorICAgIDxmaXh0dXJlPmAgd2hpY2gg
bGV2ZXJhZ2VzIHRoZSBjb25jZXB0IG9mIGRlcGVuZGVuY3kgaW5qZWN0aW9uLCBhbGxvd2luZwor
ICAgIGZvciBhIG1vcmUgbW9kdWxhciBhbmQgbW9yZSBzY2FsYWJsZSBhcHByb2FjaCBmb3IgbWFu
YWdpbmcgdGVzdCBzdGF0ZSwKKyAgICBlc3BlY2lhbGx5IGZvciBsYXJnZXIgcHJvamVjdHMgYW5k
IGZvciBmdW5jdGlvbmFsIHRlc3RpbmcuICBZb3UgY2FuCisgICAgbWl4IGJvdGggZml4dHVyZSBt
ZWNoYW5pc21zIGluIHRoZSBzYW1lIGZpbGUgYnV0CisgICAgdGVzdCBtZXRob2RzIG9mIGBgdW5p
dHRlc3QuVGVzdENhc2VgYCBzdWJjbGFzc2VzCisgICAgY2Fubm90IHJlY2VpdmUgZml4dHVyZSBh
cmd1bWVudHMuCisKKworTW9kdWxlIGxldmVsIHNldHVwL3RlYXJkb3duCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitJZiB5b3UgaGF2ZSBtdWx0aXBsZSB0ZXN0IGZ1
bmN0aW9ucyBhbmQgdGVzdCBjbGFzc2VzIGluIGEgc2luZ2xlCittb2R1bGUgeW91IGNhbiBvcHRp
b25hbGx5IGltcGxlbWVudCB0aGUgZm9sbG93aW5nIGZpeHR1cmUgbWV0aG9kcword2hpY2ggd2ls
bCB1c3VhbGx5IGJlIGNhbGxlZCBvbmNlIGZvciBhbGwgdGhlIGZ1bmN0aW9uczo6CisKKyAgICBk
ZWYgc2V0dXBfbW9kdWxlKG1vZHVsZSk6CisgICAgICAgICIiIiBzZXR1cCBhbnkgc3RhdGUgc3Bl
Y2lmaWMgdG8gdGhlIGV4ZWN1dGlvbiBvZiB0aGUgZ2l2ZW4gbW9kdWxlLiIiIgorCisgICAgZGVm
IHRlYXJkb3duX21vZHVsZShtb2R1bGUpOgorICAgICAgICAiIiIgdGVhcmRvd24gYW55IHN0YXRl
IHRoYXQgd2FzIHByZXZpb3VzbHkgc2V0dXAgd2l0aCBhIHNldHVwX21vZHVsZQorICAgICAgICBt
ZXRob2QuCisgICAgICAgICIiIgorCitBcyBvZiBweXRlc3QtMy4wLCB0aGUgYGBtb2R1bGVgYCBw
YXJhbWV0ZXIgaXMgb3B0aW9uYWwuCisKK0NsYXNzIGxldmVsIHNldHVwL3RlYXJkb3duCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1NpbWlsYXJseSwgdGhlIGZvbGxvd2lu
ZyBtZXRob2RzIGFyZSBjYWxsZWQgYXQgY2xhc3MgbGV2ZWwgYmVmb3JlCithbmQgYWZ0ZXIgYWxs
IHRlc3QgbWV0aG9kcyBvZiB0aGUgY2xhc3MgYXJlIGNhbGxlZDo6CisKKyAgICBAY2xhc3NtZXRo
b2QKKyAgICBkZWYgc2V0dXBfY2xhc3MoY2xzKToKKyAgICAgICAgIiIiIHNldHVwIGFueSBzdGF0
ZSBzcGVjaWZpYyB0byB0aGUgZXhlY3V0aW9uIG9mIHRoZSBnaXZlbiBjbGFzcyAod2hpY2gKKyAg
ICAgICAgdXN1YWxseSBjb250YWlucyB0ZXN0cykuCisgICAgICAgICIiIgorCisgICAgQGNsYXNz
bWV0aG9kCisgICAgZGVmIHRlYXJkb3duX2NsYXNzKGNscyk6CisgICAgICAgICIiIiB0ZWFyZG93
biBhbnkgc3RhdGUgdGhhdCB3YXMgcHJldmlvdXNseSBzZXR1cCB3aXRoIGEgY2FsbCB0bworICAg
ICAgICBzZXR1cF9jbGFzcy4KKyAgICAgICAgIiIiCisKK01ldGhvZCBhbmQgZnVuY3Rpb24gbGV2
ZWwgc2V0dXAvdGVhcmRvd24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCisKK1NpbWlsYXJseSwgdGhlIGZvbGxvd2luZyBtZXRob2RzIGFyZSBjYWxsZWQg
YXJvdW5kIGVhY2ggbWV0aG9kIGludm9jYXRpb246OgorCisgICAgZGVmIHNldHVwX21ldGhvZChz
ZWxmLCBtZXRob2QpOgorICAgICAgICAiIiIgc2V0dXAgYW55IHN0YXRlIHRpZWQgdG8gdGhlIGV4
ZWN1dGlvbiBvZiB0aGUgZ2l2ZW4gbWV0aG9kIGluIGEKKyAgICAgICAgY2xhc3MuICBzZXR1cF9t
ZXRob2QgaXMgaW52b2tlZCBmb3IgZXZlcnkgdGVzdCBtZXRob2Qgb2YgYSBjbGFzcy4KKyAgICAg
ICAgIiIiCisKKyAgICBkZWYgdGVhcmRvd25fbWV0aG9kKHNlbGYsIG1ldGhvZCk6CisgICAgICAg
ICIiIiB0ZWFyZG93biBhbnkgc3RhdGUgdGhhdCB3YXMgcHJldmlvdXNseSBzZXR1cCB3aXRoIGEg
c2V0dXBfbWV0aG9kCisgICAgICAgIGNhbGwuCisgICAgICAgICIiIgorCitBcyBvZiBweXRlc3Qt
My4wLCB0aGUgYGBtZXRob2RgYCBwYXJhbWV0ZXIgaXMgb3B0aW9uYWwuCisKK0lmIHlvdSB3b3Vs
ZCByYXRoZXIgZGVmaW5lIHRlc3QgZnVuY3Rpb25zIGRpcmVjdGx5IGF0IG1vZHVsZSBsZXZlbAor
eW91IGNhbiBhbHNvIHVzZSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucyB0byBpbXBsZW1lbnQgZml4
dHVyZXM6OgorCisgICAgZGVmIHNldHVwX2Z1bmN0aW9uKGZ1bmN0aW9uKToKKyAgICAgICAgIiIi
IHNldHVwIGFueSBzdGF0ZSB0aWVkIHRvIHRoZSBleGVjdXRpb24gb2YgdGhlIGdpdmVuIGZ1bmN0
aW9uLgorICAgICAgICBJbnZva2VkIGZvciBldmVyeSB0ZXN0IGZ1bmN0aW9uIGluIHRoZSBtb2R1
bGUuCisgICAgICAgICIiIgorCisgICAgZGVmIHRlYXJkb3duX2Z1bmN0aW9uKGZ1bmN0aW9uKToK
KyAgICAgICAgIiIiIHRlYXJkb3duIGFueSBzdGF0ZSB0aGF0IHdhcyBwcmV2aW91c2x5IHNldHVw
IHdpdGggYSBzZXR1cF9mdW5jdGlvbgorICAgICAgICBjYWxsLgorICAgICAgICAiIiIKKworQXMg
b2YgcHl0ZXN0LTMuMCwgdGhlIGBgZnVuY3Rpb25gYCBwYXJhbWV0ZXIgaXMgb3B0aW9uYWwuCisK
K1JlbWFya3M6CisKKyogSXQgaXMgcG9zc2libGUgZm9yIHNldHVwL3RlYXJkb3duIHBhaXJzIHRv
IGJlIGludm9rZWQgbXVsdGlwbGUgdGltZXMKKyAgcGVyIHRlc3RpbmcgcHJvY2Vzcy4KKyogdGVh
cmRvd24gZnVuY3Rpb25zIGFyZSBub3QgY2FsbGVkIGlmIHRoZSBjb3JyZXNwb25kaW5nIHNldHVw
IGZ1bmN0aW9uIGV4aXN0ZWQKKyAgYW5kIGZhaWxlZC93YXMgc2tpcHBlZC4KKworLi4gX2B1bml0
dGVzdC5weSBtb2R1bGVgOiBodHRwOi8vZG9jcy5weXRob24ub3JnL2xpYnJhcnkvdW5pdHRlc3Qu
aHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3lpZWxkZml4dHVyZS5yc3QgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4veWllbGRmaXh0dXJlLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZmQxZWRhYzJm
NWUwMDQyZWVlMTg2M2VhYmQzOTM1NDBmYzg2MzIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL3lpZWxkZml4dHVyZS5yc3QKQEAgLTAsMCArMSwxOCBAQAorOm9ycGhhbjoK
KworLi4gX3lpZWxkZml4dHVyZToKKworInlpZWxkX2ZpeHR1cmUiIGZ1bmN0aW9ucworLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CisKKy4uIGRlcHJlY2F0ZWQ6OiAzLjAKKworLi4gdmVyc2lvbmFkZGVkOjogMi40CisKKy4uIGlt
cG9ydGFudDo6CisgICAgU2luY2UgcHl0ZXN0LTMuMCwgZml4dHVyZXMgdXNpbmcgdGhlIG5vcm1h
bCBgYGZpeHR1cmVgYCBkZWNvcmF0b3IgY2FuIHVzZSBhIGBgeWllbGRgYAorICAgIHN0YXRlbWVu
dCB0byBwcm92aWRlIGZpeHR1cmUgdmFsdWVzIGFuZCBleGVjdXRlIHRlYXJkb3duIGNvZGUsIGV4
YWN0bHkgbGlrZSBgYHlpZWxkX2ZpeHR1cmVgYAorICAgIGluIHByZXZpb3VzIHZlcnNpb25zLgor
CisgICAgTWFya2luZyBmdW5jdGlvbnMgYXMgYGB5aWVsZF9maXh0dXJlYGAgaXMgc3RpbGwgc3Vw
cG9ydGVkLCBidXQgZGVwcmVjYXRlZCBhbmQgc2hvdWxkIG5vdAorICAgIGJlIHVzZWQgaW4gbmV3
IGNvZGUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9leHRyYS9nZXRfaXNzdWVzLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZXh0cmEvZ2V0X2lzc3Vlcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYThmOGMzMTYwNjk0NDRi
MWI2YWMyMjYzNzc0Yzk1ZmU5NjExZWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZXh0cmEvZ2V0X2lzc3Vlcy5weQpAQCAtMCwwICsxLDg0IEBACitpbXBvcnQganNvbgoraW1wb3J0
IHB5CitpbXBvcnQgdGV4dHdyYXAKKworaXNzdWVzX3VybCA9ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3JlcG9zL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3VlcyIKKworaW1wb3J0IHJlcXVlc3RzCisK
KworZGVmIGdldF9pc3N1ZXMoKToKKyAgICBpc3N1ZXMgPSBbXQorICAgIHVybCA9IGlzc3Vlc191
cmwKKyAgICB3aGlsZSAxOgorICAgICAgICBnZXRfZGF0YSA9IHsic3RhdGUiOiAiYWxsIn0KKyAg
ICAgICAgciA9IHJlcXVlc3RzLmdldCh1cmwsIHBhcmFtcz1nZXRfZGF0YSkKKyAgICAgICAgZGF0
YSA9IHIuanNvbigpCisgICAgICAgIGlmIHIuc3RhdHVzX2NvZGUgPT0gNDAzOgorICAgICAgICAg
ICAgIyBBUEkgcmVxdWVzdCBsaW1pdCBleGNlZWRlZAorICAgICAgICAgICAgcHJpbnQoZGF0YVsn
bWVzc2FnZSddKQorICAgICAgICAgICAgZXhpdCgxKQorICAgICAgICBpc3N1ZXMuZXh0ZW5kKGRh
dGEpCisKKyAgICAgICAgIyBMb29rIGZvciBuZXh0IHBhZ2UKKyAgICAgICAgbGlua3MgPSByZXF1
ZXN0cy51dGlscy5wYXJzZV9oZWFkZXJfbGlua3Moci5oZWFkZXJzWydMaW5rJ10pCisgICAgICAg
IGFub3RoZXJfcGFnZSA9IEZhbHNlCisgICAgICAgIGZvciBsaW5rIGluIGxpbmtzOgorICAgICAg
ICAgICAgaWYgbGlua1sncmVsJ10gPT0gJ25leHQnOgorICAgICAgICAgICAgICAgIHVybCA9IGxp
bmtbJ3VybCddCisgICAgICAgICAgICAgICAgYW5vdGhlcl9wYWdlID0gVHJ1ZQorICAgICAgICBp
ZiBub3QgYW5vdGhlcl9wYWdlOgorICAgICAgICAgICAgcmV0dXJuIGlzc3VlcworCisKK2RlZiBt
YWluKGFyZ3MpOgorICAgIGNhY2hlZmlsZSA9IHB5LnBhdGgubG9jYWwoYXJncy5jYWNoZSkKKyAg
ICBpZiBub3QgY2FjaGVmaWxlLmV4aXN0cygpIG9yIGFyZ3MucmVmcmVzaDoKKyAgICAgICAgaXNz
dWVzID0gZ2V0X2lzc3VlcygpCisgICAgICAgIGNhY2hlZmlsZS53cml0ZShqc29uLmR1bXBzKGlz
c3VlcykpCisgICAgZWxzZToKKyAgICAgICAgaXNzdWVzID0ganNvbi5sb2FkcyhjYWNoZWZpbGUu
cmVhZCgpKQorCisgICAgb3Blbl9pc3N1ZXMgPSBbeCBmb3IgeCBpbiBpc3N1ZXMgaWYgeFsic3Rh
dGUiXSA9PSAib3BlbiJdCisKKyAgICBvcGVuX2lzc3Vlcy5zb3J0KGtleT1sYW1iZGEgeDogeFsi
bnVtYmVyIl0pCisgICAgcmVwb3J0KG9wZW5faXNzdWVzKQorCisKK2RlZiBfZ2V0X2tpbmQoaXNz
dWUpOgorICAgIGxhYmVscyA9IFtsWyduYW1lJ10gZm9yIGwgaW4gaXNzdWVbJ2xhYmVscyddXQor
ICAgIGZvciBrZXkgaW4gKCdidWcnLCAnZW5oYW5jZW1lbnQnLCAncHJvcG9zYWwnKToKKyAgICAg
ICAgaWYga2V5IGluIGxhYmVsczoKKyAgICAgICAgICAgIHJldHVybiBrZXkKKyAgICByZXR1cm4g
J2lzc3VlJworCisKK2RlZiByZXBvcnQoaXNzdWVzKToKKyAgICBmb3IgaXNzdWUgaW4gaXNzdWVz
OgorICAgICAgICB0aXRsZSA9IGlzc3VlWyJ0aXRsZSJdCisgICAgICAgIGJvZHkgPSBpc3N1ZVsi
Ym9keSJdCisgICAgICAgIGtpbmQgPSBfZ2V0X2tpbmQoaXNzdWUpCisgICAgICAgIHN0YXR1cyA9
IGlzc3VlWyJzdGF0ZSJdCisgICAgICAgIG51bWJlciA9IGlzc3VlWyJudW1iZXIiXQorICAgICAg
ICBsaW5rID0gImh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvJXMv
IiAlIG51bWJlcgorICAgICAgICBwcmludCgiLS0tLSIpCisgICAgICAgIHByaW50KHN0YXR1cywg
a2luZCwgbGluaykKKyAgICAgICAgcHJpbnQodGl0bGUpCisgICAgICAgICNwcmludCgpCisgICAg
ICAgICNsaW5lcyA9IGJvZHkuc3BsaXQoIlxuIikKKyAgICAgICAgI3ByaW50ICgiXG4iLmpvaW4o
bGluZXNbOjNdKSkKKyAgICAgICAgI2lmIGxlbihsaW5lcykgPiAzIG9yIGxlbihib2R5KSA+IDI0
MDoKKyAgICAgICAgIyAgICBwcmludCAoIi4uLiIpCisgICAgcHJpbnQoIlxuXG5Gb3VuZCAlcyBv
cGVuIGlzc3VlcyIgJSBsZW4oaXNzdWVzKSkKKworCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18i
OgorICAgIGltcG9ydCBhcmdwYXJzZQorICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFy
c2VyKCJwcm9jZXNzIGJpdGJ1Y2tldCBpc3N1ZXMiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQo
Ii0tcmVmcmVzaCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAg
ICBoZWxwPSJpbnZhbGlkYXRlIGNhY2hlLCByZWZyZXNoIGlzc3VlcyIpCisgICAgcGFyc2VyLmFk
ZF9hcmd1bWVudCgiLS1jYWNoZSIsIGFjdGlvbj0ic3RvcmUiLCBkZWZhdWx0PSJpc3N1ZXMuanNv
biIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJjYWNoZSBmaWxlIikKKyAgICBhcmdz
ID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQorICAgIG1haW4oYXJncykKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZXh0cmEvc2V0dXAtcHkudGVzdC9zZXR1cC5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2V4dHJh
L3NldHVwLXB5LnRlc3Qvc2V0dXAucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDA1NjBjZTFmNWY0NDM3ZTU3NGFl
YmM1MmRkZjhiOGEzN2I4NjA1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2V4dHJh
L3NldHVwLXB5LnRlc3Qvc2V0dXAucHkKQEAgLTAsMCArMSwxMSBAQAoraW1wb3J0IHN5cworZnJv
bSBkaXN0dXRpbHMuY29yZSBpbXBvcnQgc2V0dXAKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9f
IjoKKyAgICBpZiAic2Rpc3QiIG5vdCBpbiBzeXMuYXJndlsxOl06CisgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoInBsZWFzZSB1c2UgJ3B5dGVzdCcgcHlwaSBwYWNrYWdlIGluc3RlYWQgb2YgJ3B5
LnRlc3QnIikKKyAgICBzZXR1cCgKKyAgICAgICAgbmFtZT0icHkudGVzdCIsCisgICAgICAgIHZl
cnNpb249IjAuMCIsCisgICAgICAgIGRlc2NyaXB0aW9uPSJwbGVhc2UgdXNlICdweXRlc3QnIGZv
ciBpbnN0YWxsYXRpb24iLAorICAgICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2V4dHJhL3Nl
dHVwLXB5LnRlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9leHRyYS9zZXR1cC1weS50
ZXN0L3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiZWM2MWJmYjZlZjUzNWRiOTdiYjdkYTU4
NDBlMjA1ZWRkYWQ3MjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9leHRyYS9zZXR1
cC1weS50ZXN0L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTcgQEAKK1RoZSB0ZXN0cyBpbiB0
aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8g
Tk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVh
dGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29t
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1w
b3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciBy
ZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2V4dHJhL3NldHVwLXB5LnRlc3Qvc2V0dXAucHkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2V4dHJhL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZXh0cmEvdzNjLWltcG9ydC5s
b2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDQ3MmYwNzczODIyMGM1MzkyZWRhYjRhYjQ0ZjkzZDY2Yjk0NjE2Nwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2V4dHJhL3czYy1pbXBvcnQubG9nCkBAIC0w
LDAgKzEsMTcgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2V4dHJhL2dldF9pc3N1ZXMucHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3B5cHJvamVjdC50b21sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvcHlwcm9q
ZWN0LnRvbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODg1NzFlMjA4YjlhMzg3ZjFhYTI2MTRmMzZjY2FmYjM3MjRl
NDg5NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3B5cHJvamVjdC50b21sCkBAIC0w
LDAgKzEsMzUgQEAKK1t0b29sLnRvd25jcmllcl0KK3BhY2thZ2UgPSAicHl0ZXN0IgorZmlsZW5h
bWUgPSAiQ0hBTkdFTE9HLnJzdCIKK2RpcmVjdG9yeSA9ICJjaGFuZ2Vsb2cvIgordGVtcGxhdGUg
PSAiY2hhbmdlbG9nL190ZW1wbGF0ZS5yc3QiCisKKyAgW1t0b29sLnRvd25jcmllci50eXBlXV0K
KyAgZGlyZWN0b3J5ID0gInJlbW92YWwiCisgIG5hbWUgPSAiRGVwcmVjYXRpb25zIGFuZCBSZW1v
dmFscyIKKyAgc2hvd2NvbnRlbnQgPSB0cnVlCisKKyAgW1t0b29sLnRvd25jcmllci50eXBlXV0K
KyAgZGlyZWN0b3J5ID0gImZlYXR1cmUiCisgIG5hbWUgPSAiRmVhdHVyZXMiCisgIHNob3djb250
ZW50ID0gdHJ1ZQorCisgIFtbdG9vbC50b3duY3JpZXIudHlwZV1dCisgIGRpcmVjdG9yeSA9ICJi
dWdmaXgiCisgIG5hbWUgPSAiQnVnIEZpeGVzIgorICBzaG93Y29udGVudCA9IHRydWUKKworICBb
W3Rvb2wudG93bmNyaWVyLnR5cGVdXQorICBkaXJlY3RvcnkgPSAidmVuZG9yIgorICBuYW1lID0g
IlZlbmRvcmVkIExpYnJhcmllcyIKKyAgc2hvd2NvbnRlbnQgPSB0cnVlCisKKyAgW1t0b29sLnRv
d25jcmllci50eXBlXV0KKyAgZGlyZWN0b3J5ID0gImRvYyIKKyAgbmFtZSA9ICJJbXByb3ZlZCBE
b2N1bWVudGF0aW9uIgorICBzaG93Y29udGVudCA9IHRydWUKKworICBbW3Rvb2wudG93bmNyaWVy
LnR5cGVdXQorICBkaXJlY3RvcnkgPSAidHJpdmlhbCIKKyAgbmFtZSA9ICJUcml2aWFsL0ludGVy
bmFsIENoYW5nZXMiCisgIHNob3djb250ZW50ID0gdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvcHl0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvcHl0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiNjgxYjY0
YjRjNzZiNTNjYjg5NjU3OTRmMThkODRmZTc5YTUzZDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9weXRlc3QucHkKQEAgLTAsMCArMSw3NyBAQAorIyBQWVRIT05fQVJHQ09NUExFVEVf
T0sKKyIiIgorcHl0ZXN0OiB1bml0IGFuZCBmdW5jdGlvbmFsIHRlc3Rpbmcgd2l0aCBQeXRob24u
CisiIiIKKworCisjIGVsc2Ugd2UgYXJlIGltcG9ydGVkCisKK2Zyb20gX3B5dGVzdC5jb25maWcg
aW1wb3J0ICgKKyAgICBtYWluLCBVc2FnZUVycm9yLCBjbWRsaW5lLAorICAgIGhvb2tzcGVjLCBo
b29raW1wbAorKQorZnJvbSBfcHl0ZXN0LmZpeHR1cmVzIGltcG9ydCBmaXh0dXJlLCB5aWVsZF9m
aXh0dXJlCitmcm9tIF9weXRlc3QuYXNzZXJ0aW9uIGltcG9ydCByZWdpc3Rlcl9hc3NlcnRfcmV3
cml0ZQorZnJvbSBfcHl0ZXN0LmZyZWV6ZV9zdXBwb3J0IGltcG9ydCBmcmVlemVfaW5jbHVkZXMK
K2Zyb20gX3B5dGVzdCBpbXBvcnQgX192ZXJzaW9uX18KK2Zyb20gX3B5dGVzdC5kZWJ1Z2dpbmcg
aW1wb3J0IHB5dGVzdFBEQiBhcyBfX3B5dGVzdFBEQgorZnJvbSBfcHl0ZXN0LnJlY3dhcm4gaW1w
b3J0IHdhcm5zLCBkZXByZWNhdGVkX2NhbGwKK2Zyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQg
ZmFpbCwgc2tpcCwgaW1wb3J0b3Jza2lwLCBleGl0LCB4ZmFpbAorZnJvbSBfcHl0ZXN0Lm1hcmsg
aW1wb3J0IE1BUktfR0VOIGFzIG1hcmssIHBhcmFtCitmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQg
SXRlbSwgQ29sbGVjdG9yLCBGaWxlLCBTZXNzaW9uCitmcm9tIF9weXRlc3QuZml4dHVyZXMgaW1w
b3J0IGZpbGxmaXh0dXJlcyBhcyBfZmlsbGZ1bmNhcmdzCitmcm9tIF9weXRlc3QucHl0aG9uIGlt
cG9ydCAoCisgICAgTW9kdWxlLCBDbGFzcywgSW5zdGFuY2UsIEZ1bmN0aW9uLCBHZW5lcmF0b3Is
CispCisKK2Zyb20gX3B5dGVzdC5weXRob25fYXBpIGltcG9ydCBhcHByb3gsIHJhaXNlcworCitz
ZXRfdHJhY2UgPSBfX3B5dGVzdFBEQi5zZXRfdHJhY2UKKworX19hbGxfXyA9IFsKKyAgICAnbWFp
bicsCisgICAgJ1VzYWdlRXJyb3InLAorICAgICdjbWRsaW5lJywKKyAgICAnaG9va3NwZWMnLAor
ICAgICdob29raW1wbCcsCisgICAgJ19fdmVyc2lvbl9fJywKKyAgICAncmVnaXN0ZXJfYXNzZXJ0
X3Jld3JpdGUnLAorICAgICdmcmVlemVfaW5jbHVkZXMnLAorICAgICdzZXRfdHJhY2UnLAorICAg
ICd3YXJucycsCisgICAgJ2RlcHJlY2F0ZWRfY2FsbCcsCisgICAgJ2ZpeHR1cmUnLAorICAgICd5
aWVsZF9maXh0dXJlJywKKyAgICAnZmFpbCcsCisgICAgJ3NraXAnLAorICAgICd4ZmFpbCcsCisg
ICAgJ2ltcG9ydG9yc2tpcCcsCisgICAgJ2V4aXQnLAorICAgICdtYXJrJywKKyAgICAncGFyYW0n
LAorICAgICdhcHByb3gnLAorICAgICdfZmlsbGZ1bmNhcmdzJywKKworICAgICdJdGVtJywKKyAg
ICAnRmlsZScsCisgICAgJ0NvbGxlY3RvcicsCisgICAgJ1Nlc3Npb24nLAorICAgICdNb2R1bGUn
LAorICAgICdDbGFzcycsCisgICAgJ0luc3RhbmNlJywKKyAgICAnRnVuY3Rpb24nLAorICAgICdH
ZW5lcmF0b3InLAorICAgICdyYWlzZXMnLAorCisKK10KKworaWYgX19uYW1lX18gPT0gJ19fbWFp
bl9fJzoKKyAgICAjIGlmIHJ1biBhcyBhIHNjcmlwdCBvciBieSAncHl0aG9uIC1tIHB5dGVzdCcK
KyAgICAjIHdlIHRyaWdnZXIgdGhlIGJlbG93ICJlbHNlIiBjb25kaXRpb24gYnkgdGhlIGZvbGxv
d2luZyBpbXBvcnQKKyAgICBpbXBvcnQgcHl0ZXN0CisgICAgcmFpc2UgU3lzdGVtRXhpdChweXRl
c3QubWFpbigpKQorZWxzZToKKworICAgIGZyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IF9zZXR1
cF9jb2xsZWN0X2Zha2Vtb2R1bGUKKyAgICBfc2V0dXBfY29sbGVjdF9mYWtlbW9kdWxlKCkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMvY2FsbC10b3guYmF0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
c2NyaXB0cy9jYWxsLXRveC5iYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODZmYjI1YzFkZjFkMTAxYTE5NDhkOWNi
Yzk2ZTk2OWI1MjRjYmJhNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMv
Y2FsbC10b3guYmF0CkBAIC0wLDAgKzEsOCBAQAorUkVNIHNraXAgImNvdmVyYWxscyIgcnVuIGlu
IFBScyBvciBmb3JrcworaWYgIiVUT1hFTlYlIiA9PSAiY292ZXJhbGxzIiAoCisgICAgaWYgbm90
IGRlZmluZWQgQ09WRVJBTExTX1JFUE9fVE9LRU4gKAorICAgICAgICBlY2hvIHNraXBwaW5nIGNv
dmVyYWxscyBydW4gYmVjYXVzZSBDT1ZFUkFMTFNfUkVQT19UT0tFTiBpcyBub3QgZGVmaW5lZAor
ICAgICAgICBleGl0IC9iIDAKKyAgICApCispCitDOlxQeXRob24zNlxweXRob24gLW0gdG94CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL2NoZWNrLXJzdC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3NjcmlwdHMvY2hlY2stcnN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3ZjcxNzUwMWFmNDdlZTRkYWE4MTMx
ZTg2Y2NiMzMzMWZhZDEzMzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRz
L2NoZWNrLXJzdC5weQpAQCAtMCwwICsxLDExIEBACisKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQg
cHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCBnbG9iCitpbXBvcnQg
c3lzCisKK3N5cy5leGl0KHN1YnByb2Nlc3MuY2FsbChbCisgICAgJ3JzdC1saW50JywgJy0tZW5j
b2RpbmcnLCAndXRmLTgnLAorICAgICdDSEFOR0VMT0cucnN0JywgJ0hPV1RPUkVMRUFTRS5yc3Qn
LCAnUkVBRE1FLnJzdCcsCitdICsgZ2xvYi5nbG9iKCdjaGFuZ2Vsb2cvWzAtOV0qLionKSkpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL2luc3RhbGwtcHlweS5iYXQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9zY3JpcHRzL2luc3RhbGwtcHlweS5iYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODAxMmVhNDZhY2E0NWZm
MzIwN2YzY2VmODliYTRjYjJkNmRjMTdmMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3NjcmlwdHMvaW5zdGFsbC1weXB5LmJhdApAQCAtMCwwICsxLDYgQEAKK1JFTSBpbnN0YWxsIHB5
cHkgdXNpbmcgY2hvY28KK1JFTSByZWRpcmVjdCB0byBhIGZpbGUgYmVjYXVzZSBjaG9jbyBpbnN0
YWxsIHB5dGhvbi5weXB5IGlzIHRvbyBub2lzeS4gSWYgdGhlIGNvbW1hbmQgZmFpbHMsIHdyaXRl
IG91dHB1dCB0byBjb25zb2xlCitjaG9jbyBpbnN0YWxsIHB5dGhvbi5weXB5ID4gcHlweS1pbnN0
LmxvZyAyPiYxIHx8ICh0eXBlIHB5cHktaW5zdC5sb2cgJiBleGl0IC9iIDEpCitzZXQgUEFUSD1D
Olx0b29sc1xweXB5XHB5cHk7JVBBVEglICMgc28gdG94IGNhbiBmaW5kIHB5cHkKK2VjaG8gUHlQ
eSBpbnN0YWxsZWQKK3B5cHkgLS12ZXJzaW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3Jp
cHRzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy93M2MtaW1wb3J0LmxvZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iZTQxZDhhMThkMDZmYzA4Y2ZjOWI1N2Q0ZDU3MmY3MzQ1N2M2NjlmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy93M2MtaW1wb3J0LmxvZwpAQCAtMCww
ICsxLDE5IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zY3JpcHRzL2NhbGwtdG94LmJhdAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3NjcmlwdHMvY2hlY2stcnN0LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2NyaXB0cy9pbnN0
YWxsLXB5cHkuYmF0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zZXR1cC5jZmcgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9zZXR1cC5jZmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODE2NTM5ZTJlYzZmYjhkNzllMDgwNDllNTRiNTk2
NTEwMDI4YWFkOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NldHVwLmNmZwpAQCAt
MCwwICsxLDIwIEBACitbYnVpbGRfc3BoaW54XQorc291cmNlLWRpciA9IGRvYy9lbi8KK2J1aWxk
LWRpciA9IGRvYy9idWlsZAorYWxsX2ZpbGVzID0gMQorCitbdXBsb2FkX3NwaGlueF0KK3VwbG9h
ZC1kaXIgPSBkb2MvZW4vYnVpbGQvaHRtbAorCitbYmRpc3Rfd2hlZWxdCit1bml2ZXJzYWwgPSAx
CisKK1tjaGVjay1tYW5pZmVzdF0KK2lnbm9yZSA9CisgIF9weXRlc3QvX3ZlcnNpb24ucHkKKwor
W21ldGFkYXRhXQorbGljZW5zZV9maWxlID0gTElDRU5TRQorCitbZGV2cGk6dXBsb2FkXQorZm9y
bWF0cyA9IHNkaXN0LnRneixiZGlzdF93aGVlbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc2V0
dXAucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9zZXR1cC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZWIzOGVmZTY1NTFmOTEz
NDNhZTk2MzkzNWM0MTUyNGUwNWM5N2NjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
c2V0dXAucHkKQEAgLTAsMCArMSwxMTQgQEAKK2ltcG9ydCBvcworaW1wb3J0IHN5cworaW1wb3J0
IHNldHVwdG9vbHMKK2ltcG9ydCBwa2dfcmVzb3VyY2VzCitmcm9tIHNldHVwdG9vbHMgaW1wb3J0
IHNldHVwLCBDb21tYW5kCisKK2NsYXNzaWZpZXJzID0gWworICAgICdEZXZlbG9wbWVudCBTdGF0
dXMgOjogNiAtIE1hdHVyZScsCisgICAgJ0ludGVuZGVkIEF1ZGllbmNlIDo6IERldmVsb3BlcnMn
LAorICAgICdMaWNlbnNlIDo6IE9TSSBBcHByb3ZlZCA6OiBNSVQgTGljZW5zZScsCisgICAgJ09w
ZXJhdGluZyBTeXN0ZW0gOjogUE9TSVgnLAorICAgICdPcGVyYXRpbmcgU3lzdGVtIDo6IE1pY3Jv
c29mdCA6OiBXaW5kb3dzJywKKyAgICAnT3BlcmF0aW5nIFN5c3RlbSA6OiBNYWNPUyA6OiBNYWNP
UyBYJywKKyAgICAnVG9waWMgOjogU29mdHdhcmUgRGV2ZWxvcG1lbnQgOjogVGVzdGluZycsCisg
ICAgJ1RvcGljIDo6IFNvZnR3YXJlIERldmVsb3BtZW50IDo6IExpYnJhcmllcycsCisgICAgJ1Rv
cGljIDo6IFV0aWxpdGllcycsCitdICsgWworICAgICgnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjog
UHl0aG9uIDo6ICVzJyAlIHgpCisgICAgZm9yIHggaW4gJzIgMi43IDMgMy40IDMuNSAzLjYnLnNw
bGl0KCkKK10KKword2l0aCBvcGVuKCdSRUFETUUucnN0JykgYXMgZmQ6CisgICAgbG9uZ19kZXNj
cmlwdGlvbiA9IGZkLnJlYWQoKQorCisKK2RlZiBoYXNfZW52aXJvbm1lbnRfbWFya2VyX3N1cHBv
cnQoKToKKyAgICAiIiIKKyAgICBUZXN0cyB0aGF0IHNldHVwdG9vbHMgaGFzIHN1cHBvcnQgZm9y
IFBFUC00MjYgZW52aXJvbm1lbnQgbWFya2VyIHN1cHBvcnQuCisKKyAgICBUaGUgZmlyc3Qga25v
d24gcmVsZWFzZSB0byBzdXBwb3J0IGl0IGlzIDAuNyAoYW5kIHRoZSBlYXJsaWVzdCBvbiBQeVBJ
IHNlZW1zIHRvIGJlIDAuNy4yCisgICAgc28gd2UncmUgdXNpbmcgdGhhdCksIHNlZTogaHR0cDov
L3B5dGhvbmhvc3RlZC5vcmcvc2V0dXB0b29scy9oaXN0b3J5Lmh0bWwjaWQxNDIKKworICAgIFJl
ZmVyZW5jZXM6CisKKyAgICAqIGh0dHBzOi8vd2hlZWwucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0
L2luZGV4Lmh0bWwjZGVmaW5pbmctY29uZGl0aW9uYWwtZGVwZW5kZW5jaWVzCisgICAgKiBodHRw
czovL3d3dy5weXRob24ub3JnL2Rldi9wZXBzL3BlcC0wNDI2LyNlbnZpcm9ubWVudC1tYXJrZXJz
CisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICByZXR1cm4gcGtnX3Jlc291cmNlcy5wYXJzZV92
ZXJzaW9uKHNldHVwdG9vbHMuX192ZXJzaW9uX18pID49IHBrZ19yZXNvdXJjZXMucGFyc2VfdmVy
c2lvbignMC43LjInKQorICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXhjOgorICAgICAgICBzeXMu
c3RkZXJyLndyaXRlKCJDb3VsZCBub3QgdGVzdCBzZXR1cHRvb2wncyB2ZXJzaW9uOiAlc1xuIiAl
IGV4YykKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKworZGVmIG1haW4oKToKKyAgICBleHRyYXNf
cmVxdWlyZSA9IHt9CisgICAgaW5zdGFsbF9yZXF1aXJlcyA9IFsKKyAgICAgICAgJ3B5Pj0xLjUu
MCcsCisgICAgICAgICdzaXg+PTEuMTAuMCcsCisgICAgICAgICdzZXR1cHRvb2xzJywKKyAgICAg
ICAgJ2F0dHJzPj0xNy4yLjAnLAorICAgIF0KKyAgICAjIGlmIF9QWVRFU1RfU0VUVVBfU0tJUF9Q
TFVHR1lfREVQIGlzIHNldCwgc2tpcCBpbnN0YWxsaW5nIHBsdWdneTsKKyAgICAjIHVzZWQgYnkg
dG94LmluaSB0byB0ZXN0IHdpdGggcGx1Z2d5IG1hc3RlcgorICAgIGlmICdfUFlURVNUX1NFVFVQ
X1NLSVBfUExVR0dZX0RFUCcgbm90IGluIG9zLmVudmlyb246CisgICAgICAgIGluc3RhbGxfcmVx
dWlyZXMuYXBwZW5kKCdwbHVnZ3k+PTAuNSw8MC43JykKKyAgICBpZiBoYXNfZW52aXJvbm1lbnRf
bWFya2VyX3N1cHBvcnQoKToKKyAgICAgICAgZXh0cmFzX3JlcXVpcmVbJzpweXRob25fdmVyc2lv
bjwiMy4wIiddID0gWydmdW5jc2lncyddCisgICAgICAgIGV4dHJhc19yZXF1aXJlWyc6c3lzX3Bs
YXRmb3JtPT0id2luMzIiJ10gPSBbJ2NvbG9yYW1hJ10KKyAgICBlbHNlOgorICAgICAgICBpZiBz
eXMucGxhdGZvcm0gPT0gJ3dpbjMyJzoKKyAgICAgICAgICAgIGluc3RhbGxfcmVxdWlyZXMuYXBw
ZW5kKCdjb2xvcmFtYScpCisgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCk6Cisg
ICAgICAgICAgICBpbnN0YWxsX3JlcXVpcmVzLmFwcGVuZCgnZnVuY3NpZ3MnKQorCisgICAgc2V0
dXAoCisgICAgICAgIG5hbWU9J3B5dGVzdCcsCisgICAgICAgIGRlc2NyaXB0aW9uPSdweXRlc3Q6
IHNpbXBsZSBwb3dlcmZ1bCB0ZXN0aW5nIHdpdGggUHl0aG9uJywKKyAgICAgICAgbG9uZ19kZXNj
cmlwdGlvbj1sb25nX2Rlc2NyaXB0aW9uLAorICAgICAgICB1c2Vfc2NtX3ZlcnNpb249eworICAg
ICAgICAgICAgJ3dyaXRlX3RvJzogJ19weXRlc3QvX3ZlcnNpb24ucHknLAorICAgICAgICB9LAor
ICAgICAgICB1cmw9J2h0dHA6Ly9weXRlc3Qub3JnJywKKyAgICAgICAgbGljZW5zZT0nTUlUIGxp
Y2Vuc2UnLAorICAgICAgICBwbGF0Zm9ybXM9Wyd1bml4JywgJ2xpbnV4JywgJ29zeCcsICdjeWd3
aW4nLCAnd2luMzInXSwKKyAgICAgICAgYXV0aG9yPSgKKyAgICAgICAgICAgICdIb2xnZXIgS3Jl
a2VsLCBCcnVubyBPbGl2ZWlyYSwgUm9ubnkgUGZhbm5zY2htaWR0LCAnCisgICAgICAgICAgICAn
RmxvcmlzIEJydXlub29naGUsIEJyaWFubmEgTGF1Z2hlciwgRmxvcmlhbiBCcnVoaW4gYW5kIG90
aGVycycpLAorICAgICAgICBlbnRyeV9wb2ludHM9eydjb25zb2xlX3NjcmlwdHMnOiBbCisgICAg
ICAgICAgICAncHl0ZXN0PXB5dGVzdDptYWluJywgJ3B5LnRlc3Q9cHl0ZXN0Om1haW4nXX0sCisg
ICAgICAgIGNsYXNzaWZpZXJzPWNsYXNzaWZpZXJzLAorICAgICAgICBrZXl3b3Jkcz0idGVzdCB1
bml0dGVzdCIsCisgICAgICAgIGNtZGNsYXNzPXsndGVzdCc6IFB5VGVzdH0sCisgICAgICAgICMg
dGhlIGZvbGxvd2luZyBzaG91bGQgYmUgZW5hYmxlZCBmb3IgcmVsZWFzZQorICAgICAgICBzZXR1
cF9yZXF1aXJlcz1bJ3NldHVwdG9vbHMtc2NtJ10sCisgICAgICAgIHB5dGhvbl9yZXF1aXJlcz0n
Pj0yLjcsICE9My4wLiosICE9My4xLiosICE9My4yLiosICE9My4zLionLAorICAgICAgICBpbnN0
YWxsX3JlcXVpcmVzPWluc3RhbGxfcmVxdWlyZXMsCisgICAgICAgIGV4dHJhc19yZXF1aXJlPWV4
dHJhc19yZXF1aXJlLAorICAgICAgICBwYWNrYWdlcz1bJ19weXRlc3QnLCAnX3B5dGVzdC5hc3Nl
cnRpb24nLCAnX3B5dGVzdC5fY29kZSddLAorICAgICAgICBweV9tb2R1bGVzPVsncHl0ZXN0J10s
CisgICAgICAgIHppcF9zYWZlPUZhbHNlLAorICAgICkKKworCitjbGFzcyBQeVRlc3QoQ29tbWFu
ZCk6CisgICAgdXNlcl9vcHRpb25zID0gW10KKworICAgIGRlZiBpbml0aWFsaXplX29wdGlvbnMo
c2VsZik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBmaW5hbGl6ZV9vcHRpb25zKHNlbGYpOgor
ICAgICAgICBwYXNzCisKKyAgICBkZWYgcnVuKHNlbGYpOgorICAgICAgICBpbXBvcnQgc3VicHJv
Y2VzcworICAgICAgICBQUEFUSCA9IFt4IGZvciB4IGluIG9zLmVudmlyb24uZ2V0KCdQWVRIT05Q
QVRIJywgJycpLnNwbGl0KCc6JykgaWYgeF0KKyAgICAgICAgUFBBVEguaW5zZXJ0KDAsIG9zLmdl
dGN3ZCgpKQorICAgICAgICBvcy5lbnZpcm9uWydQWVRIT05QQVRIJ10gPSAnOicuam9pbihQUEFU
SCkKKyAgICAgICAgZXJybm8gPSBzdWJwcm9jZXNzLmNhbGwoW3N5cy5leGVjdXRhYmxlLCAncHl0
ZXN0LnB5JywgJy0taWdub3JlPWRvYyddKQorICAgICAgICByYWlzZSBTeXN0ZW1FeGl0KGVycm5v
KQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgbWFpbigpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90YXNrcy9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tzL19faW5p
dF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjhlYTAzOGYwYWYwMzZmNjljZTJlOWRhNTQzZjQyYmJjNjdiZWIy
OTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9fX2luaXRfXy5weQpAQCAt
MCwwICsxLDEyIEBACisiIiIKK0ludm9rZSB0YXNrcyB0byBoZWxwIHdpdGggcHl0ZXN0IGRldmVs
b3BtZW50IGFuZCByZWxlYXNlIHByb2Nlc3MuCisiIiIKKworaW1wb3J0IGludm9rZQorCitmcm9t
IC4gaW1wb3J0IGdlbmVyYXRlCisKKworbnMgPSBpbnZva2UuQ29sbGVjdGlvbigKKyAgICBnZW5l
cmF0ZSwKKykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tzL2dlbmVyYXRlLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGFza3MvZ2VuZXJhdGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmE4ZWU2NTU3ZGZkN2I2ODA2
NWU3MTMxOGEwMGQxNmExNDYwOThkOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rh
c2tzL2dlbmVyYXRlLnB5CkBAIC0wLDAgKzEsMTYyIEBACitpbXBvcnQgb3MKK2Zyb20gcGF0aGxp
YiBpbXBvcnQgUGF0aAorZnJvbSBzdWJwcm9jZXNzIGltcG9ydCBjaGVja19vdXRwdXQsIGNoZWNr
X2NhbGwKKworaW1wb3J0IGludm9rZQorCisKK0BpbnZva2UudGFzayhoZWxwPXsKKyAgICAndmVy
c2lvbic6ICd2ZXJzaW9uIGJlaW5nIHJlbGVhc2VkJywKK30pCitkZWYgYW5ub3VuY2UoY3R4LCB2
ZXJzaW9uKToKKyAgICAiIiJHZW5lcmF0ZXMgYSBuZXcgcmVsZWFzZSBhbm5vdW5jZW1lbnQgZW50
cnkgaW4gdGhlIGRvY3MuIiIiCisgICAgIyBHZXQgb3VyIGxpc3Qgb2YgYXV0aG9ycworICAgIHN0
ZG91dCA9IGNoZWNrX291dHB1dChbImdpdCIsICJkZXNjcmliZSIsICItLWFiYnJldj0wIiwgJy0t
dGFncyddKQorICAgIHN0ZG91dCA9IHN0ZG91dC5kZWNvZGUoJ3V0Zi04JykKKyAgICBsYXN0X3Zl
cnNpb24gPSBzdGRvdXQuc3RyaXAoKQorCisgICAgc3Rkb3V0ID0gY2hlY2tfb3V0cHV0KFsiZ2l0
IiwgImxvZyIsICJ7fS4uSEVBRCIuZm9ybWF0KGxhc3RfdmVyc2lvbiksICItLWZvcm1hdD0lYU4i
XSkKKyAgICBzdGRvdXQgPSBzdGRvdXQuZGVjb2RlKCd1dGYtOCcpCisKKyAgICBjb250cmlidXRv
cnMgPSBzZXQoc3Rkb3V0LnNwbGl0bGluZXMoKSkKKworICAgIHRlbXBsYXRlX25hbWUgPSAncmVs
ZWFzZS5taW5vci5yc3QnIGlmIHZlcnNpb24uZW5kc3dpdGgoJy4wJykgZWxzZSAncmVsZWFzZS5w
YXRjaC5yc3QnCisgICAgdGVtcGxhdGVfdGV4dCA9IFBhdGgoX19maWxlX18pLnBhcmVudC5qb2lu
cGF0aCh0ZW1wbGF0ZV9uYW1lKS5yZWFkX3RleHQoZW5jb2Rpbmc9J1VURi04JykKKworICAgIGNv
bnRyaWJ1dG9yc190ZXh0ID0gJ1xuJy5qb2luKCcqIHt9Jy5mb3JtYXQobmFtZSkgZm9yIG5hbWUg
aW4gc29ydGVkKGNvbnRyaWJ1dG9ycykpICsgJ1xuJworICAgIHRleHQgPSB0ZW1wbGF0ZV90ZXh0
LmZvcm1hdCh2ZXJzaW9uPXZlcnNpb24sIGNvbnRyaWJ1dG9ycz1jb250cmlidXRvcnNfdGV4dCkK
KworICAgIHRhcmdldCA9IFBhdGgoX19maWxlX18pLnBhcmVudC5qb2lucGF0aCgnLi4vZG9jL2Vu
L2Fubm91bmNlL3JlbGVhc2Ute30ucnN0Jy5mb3JtYXQodmVyc2lvbikpCisgICAgdGFyZ2V0Lndy
aXRlX3RleHQodGV4dCwgZW5jb2Rpbmc9J1VURi04JykKKyAgICBwcmludCgiW2dlbmVyYXRlLmFu
bm91bmNlXSBHZW5lcmF0ZWQge30iLmZvcm1hdCh0YXJnZXQubmFtZSkpCisKKyAgICAjIFVwZGF0
ZSBpbmRleCB3aXRoIHRoZSBuZXcgcmVsZWFzZSBlbnRyeQorICAgIGluZGV4X3BhdGggPSBQYXRo
KF9fZmlsZV9fKS5wYXJlbnQuam9pbnBhdGgoJy4uL2RvYy9lbi9hbm5vdW5jZS9pbmRleC5yc3Qn
KQorICAgIGxpbmVzID0gaW5kZXhfcGF0aC5yZWFkX3RleHQoZW5jb2Rpbmc9J1VURi04Jykuc3Bs
aXRsaW5lcygpCisgICAgaW5kZW50ID0gJyAgICcKKyAgICBmb3IgaW5kZXgsIGxpbmUgaW4gZW51
bWVyYXRlKGxpbmVzKToKKyAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCd7fXJlbGVhc2UtJy5m
b3JtYXQoaW5kZW50KSk6CisgICAgICAgICAgICBuZXdfbGluZSA9IGluZGVudCArIHRhcmdldC5z
dGVtCisgICAgICAgICAgICBpZiBsaW5lICE9IG5ld19saW5lOgorICAgICAgICAgICAgICAgIGxp
bmVzLmluc2VydChpbmRleCwgbmV3X2xpbmUpCisgICAgICAgICAgICAgICAgaW5kZXhfcGF0aC53
cml0ZV90ZXh0KCdcbicuam9pbihsaW5lcykgKyAnXG4nLCBlbmNvZGluZz0nVVRGLTgnKQorICAg
ICAgICAgICAgICAgIHByaW50KCJbZ2VuZXJhdGUuYW5ub3VuY2VdIFVwZGF0ZWQge30iLmZvcm1h
dChpbmRleF9wYXRoLm5hbWUpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBw
cmludCgiW2dlbmVyYXRlLmFubm91bmNlXSBTa2lwIHt9IChhbHJlYWR5IGNvbnRhaW5zIHJlbGVh
c2UpIi5mb3JtYXQoaW5kZXhfcGF0aC5uYW1lKSkKKyAgICAgICAgICAgIGJyZWFrCisKKyAgICBj
aGVja19jYWxsKFsnZ2l0JywgJ2FkZCcsIHN0cih0YXJnZXQpXSkKKworCitAaW52b2tlLnRhc2so
KQorZGVmIHJlZ2VuKGN0eCk6CisgICAgIiIiQ2FsbCByZWdlbmRvYyB0b29sIHRvIHVwZGF0ZSBl
eGFtcGxlcyBhbmQgcHl0ZXN0IG91dHB1dCBpbiB0aGUgZG9jcy4iIiIKKyAgICBwcmludCgiW2dl
bmVyYXRlLnJlZ2VuXSBVcGRhdGluZyBkb2NzIikKKyAgICBjaGVja19jYWxsKFsndG94JywgJy1l
JywgJ3JlZ2VuJ10pCisKKworQGludm9rZS50YXNrKCkKK2RlZiBtYWtlX3RhZyhjdHgsIHZlcnNp
b24pOgorICAgICIiIkNyZWF0ZSBhIG5ldyAobG9jYWwpIHRhZyBmb3IgdGhlIHJlbGVhc2UsIG9u
bHkgaWYgdGhlIHJlcG9zaXRvcnkgaXMgY2xlYW4uIiIiCisgICAgZnJvbSBnaXQgaW1wb3J0IFJl
cG8KKworICAgIHJlcG8gPSBSZXBvKCcuJykKKyAgICBpZiByZXBvLmlzX2RpcnR5KCk6CisgICAg
ICAgIHByaW50KCdDdXJyZW50IHJlcG9zaXRvcnkgaXMgZGlydHkuIFBsZWFzZSBjb21taXQgYW55
IGNoYW5nZXMgYW5kIHRyeSBhZ2Fpbi4nKQorICAgICAgICByYWlzZSBpbnZva2UuRXhpdChjb2Rl
PTIpCisKKyAgICB0YWdfbmFtZXMgPSBbeC5uYW1lIGZvciB4IGluIHJlcG8udGFnc10KKyAgICBp
ZiB2ZXJzaW9uIGluIHRhZ19uYW1lczoKKyAgICAgICAgcHJpbnQoIltnZW5lcmF0ZS5tYWtlX3Rh
Z10gRGVsZXRlIGV4aXN0aW5nIHRhZyB7fSIuZm9ybWF0KHZlcnNpb24pKQorICAgICAgICByZXBv
LmRlbGV0ZV90YWcodmVyc2lvbikKKworICAgIHByaW50KCJbZ2VuZXJhdGUubWFrZV90YWddIENy
ZWF0ZSB0YWcge30iLmZvcm1hdCh2ZXJzaW9uKSkKKyAgICByZXBvLmNyZWF0ZV90YWcodmVyc2lv
bikKKworCitAaW52b2tlLnRhc2soKQorZGVmIGRldnBpX3VwbG9hZChjdHgsIHZlcnNpb24sIHVz
ZXIsIHBhc3N3b3JkPU5vbmUpOgorICAgICIiIkNyZWF0ZXMgYW5kIHVwbG9hZHMgYSBwYWNrYWdl
IHRvIGRldnBpIGZvciB0ZXN0aW5nLiIiIgorICAgIGlmIHBhc3N3b3JkOgorICAgICAgICBwcmlu
dCgiW2dlbmVyYXRlLmRldnBpX3VwbG9hZF0gZGV2cGkgbG9naW4ge30iLmZvcm1hdCh1c2VyKSkK
KyAgICAgICAgY2hlY2tfY2FsbChbJ2RldnBpJywgJ2xvZ2luJywgdXNlciwgJy0tcGFzc3dvcmQn
LCBwYXNzd29yZF0pCisKKyAgICBjaGVja19jYWxsKFsnZGV2cGknLCAndXNlJywgJ2h0dHBzOi8v
ZGV2cGkubmV0L3t9L2RldicuZm9ybWF0KHVzZXIpXSkKKyAgICAKKyAgICBlbnYgPSBvcy5lbnZp
cm9uLmNvcHkoKQorICAgIGVudlsnU0VUVVBUT09MU19TQ01fUFJFVEVORF9WRVJTSU9OJ10gPSB2
ZXJzaW9uCisgICAgY2hlY2tfY2FsbChbJ2RldnBpJywgJ3VwbG9hZCcsICctLWZvcm1hdHMnLCAn
c2Rpc3QsYmRpc3Rfd2hlZWwnXSwgZW52PWVudikKKyAgICBwcmludCgiW2dlbmVyYXRlLmRldnBp
X3VwbG9hZF0gcGFja2FnZSB1cGxvYWRlZCIpCisKKworQGludm9rZS50YXNrKGhlbHA9eworICAg
ICd2ZXJzaW9uJzogJ3ZlcnNpb24gYmVpbmcgcmVsZWFzZWQnLAorICAgICd1c2VyJzogJ25hbWUg
b2YgdGhlIHVzZXIgb24gZGV2cGkgdG8gc3RhZ2UgdGhlIGdlbmVyYXRlZCBwYWNrYWdlJywKKyAg
ICAncGFzc3dvcmQnOiAndXNlciBwYXNzd29yZCBvbiBkZXZwaSB0byBzdGFnZSB0aGUgZ2VuZXJh
dGVkIHBhY2thZ2UgJworICAgICAgICAgICAgICAgICcoaWYgbm90IGdpdmVuIGFzc3VtZWQgbG9n
Z2VkIGluKScsCit9KQorZGVmIHByZV9yZWxlYXNlKGN0eCwgdmVyc2lvbiwgdXNlciwgcGFzc3dv
cmQ9Tm9uZSk6CisgICAgIiIiR2VuZXJhdGVzIG5ldyBkb2NzLCByZWxlYXNlIGFubm91bmNlbWVu
dHMgYW5kIHVwbG9hZHMgYSBuZXcgcmVsZWFzZSB0byBkZXZwaSBmb3IgdGVzdGluZy4iIiIKKyAg
ICBhbm5vdW5jZShjdHgsIHZlcnNpb24pCisgICAgcmVnZW4oY3R4KQorICAgIGNoYW5nZWxvZyhj
dHgsIHZlcnNpb24sIHdyaXRlX291dD1UcnVlKQorCisgICAgbXNnID0gJ1ByZXBhcmluZyByZWxl
YXNlIHZlcnNpb24ge30nLmZvcm1hdCh2ZXJzaW9uKQorICAgIGNoZWNrX2NhbGwoWydnaXQnLCAn
Y29tbWl0JywgJy1hJywgJy1tJywgbXNnXSkKKyAgICAKKyAgICBtYWtlX3RhZyhjdHgsIHZlcnNp
b24pCisKKyAgICBkZXZwaV91cGxvYWQoY3R4LCB2ZXJzaW9uPXZlcnNpb24sIHVzZXI9dXNlciwg
cGFzc3dvcmQ9cGFzc3dvcmQpCisgICAgCisgICAgcHJpbnQoKQorICAgIHByaW50KCdbZ2VuZXJh
dGUucHJlX3JlbGVhc2VdIFBsZWFzZSBwdXNoIHlvdXIgYnJhbmNoIGFuZCBvcGVuIGEgUFIuJykK
KworCitAaW52b2tlLnRhc2soaGVscD17CisgICAgJ3ZlcnNpb24nOiAndmVyc2lvbiBiZWluZyBy
ZWxlYXNlZCcsCisgICAgJ3VzZXInOiAnbmFtZSBvZiB0aGUgdXNlciBvbiBkZXZwaSB0byBzdGFn
ZSB0aGUgZ2VuZXJhdGVkIHBhY2thZ2UnLAorICAgICdweXBpX25hbWUnOiAnbmFtZSBvZiB0aGUg
cHlwaSBjb25maWd1cmF0aW9uIHNlY3Rpb24gaW4geW91ciB+Ly5weXBpcmMnLAorfSkKK2RlZiBw
dWJsaXNoX3JlbGVhc2UoY3R4LCB2ZXJzaW9uLCB1c2VyLCBweXBpX25hbWUpOgorICAgICIiIlB1
Ymxpc2hlcyBhIHBhY2thZ2UgcHJldmlvdXNseSBjcmVhdGVkIGJ5IHRoZSAncHJlX3JlbGVhc2Un
IGNvbW1hbmQuIiIiCisgICAgZnJvbSBnaXQgaW1wb3J0IFJlcG8KKyAgICByZXBvID0gUmVwbygn
LicpCisgICAgdGFnX25hbWVzID0gW3gubmFtZSBmb3IgeCBpbiByZXBvLnRhZ3NdCisgICAgaWYg
dmVyc2lvbiBub3QgaW4gdGFnX25hbWVzOgorICAgICAgICBwcmludCgnQ291bGQgbm90IGZpbmQg
dGFnIGZvciB2ZXJzaW9uIHt9LCBleGl0aW5nLi4uJy5mb3JtYXQodmVyc2lvbikpCisgICAgICAg
IHJhaXNlIGludm9rZS5FeGl0KGNvZGU9MikKKworICAgIGNoZWNrX2NhbGwoWydkZXZwaScsICd1
c2UnLCAnaHR0cHM6Ly9kZXZwaS5uZXQve30vZGV2Jy5mb3JtYXQodXNlcildKQorICAgIGNoZWNr
X2NhbGwoWydkZXZwaScsICdwdXNoJywgJ3B5dGVzdD09e30nLmZvcm1hdCh2ZXJzaW9uKSwgJ3B5
cGk6e30nLmZvcm1hdChweXBpX25hbWUpXSkKKyAgICBjaGVja19jYWxsKFsnZ2l0JywgJ3B1c2gn
LCAnZ2l0QGdpdGh1Yi5jb206cHl0ZXN0LWRldi9weXRlc3QuZ2l0JywgdmVyc2lvbl0pCisKKyAg
ICBlbWFpbHMgPSBbCisgICAgICAgICdweXRlc3QtZGV2QHB5dGhvbi5vcmcnLAorICAgICAgICAn
cHl0aG9uLWFubm91bmNlLWxpc3RAcHl0aG9uLm9yZycKKyAgICBdCisgICAgaWYgdmVyc2lvbi5l
bmRzd2l0aCgnLjAnKToKKyAgICAgICAgZW1haWxzLmFwcGVuZCgndGVzdGluZy1pbi1weXRob25A
bGlzdHMuaWR5bGwub3JnJykKKyAgICBwcmludCgnVmVyc2lvbiB7fSBoYXMgYmVlbiBwdWJsaXNo
ZWQgdG8gUHlQSSEnLmZvcm1hdCh2ZXJzaW9uKSkKKyAgICBwcmludCgpCisgICAgcHJpbnQoJ1Bs
ZWFzZSBzZW5kIGFuIGVtYWlsIGFubm91bmNlbWVudCB3aXRoIHRoZSBjb250ZW50cyBmcm9tOicp
CisgICAgcHJpbnQoKQorICAgIHByaW50KCcgIGRvYy9lbi9hbm5vdW5jZS9yZWxlYXNlLXt9LnJz
dCcuZm9ybWF0KHZlcnNpb24pKQorICAgIHByaW50KCkKKyAgICBwcmludCgnVG8gdGhlIGZvbGxv
d2luZyBtYWlsIGxpc3RzOicpCisgICAgcHJpbnQoKQorICAgIHByaW50KCcgJywgJywnLmpvaW4o
ZW1haWxzKSkKKyAgICBwcmludCgpCisgICAgcHJpbnQoJ0FuZCBhbm5vdW5jZSBpdCBvbiB0d2l0
dGVyIGFkZGluZyB0aGUgI3B5dGVzdCBoYXNoIHRhZy4nKQorCisKK0BpbnZva2UudGFzayhoZWxw
PXsKKyAgICAndmVyc2lvbic6ICd2ZXJzaW9uIGJlaW5nIHJlbGVhc2VkJywKKyAgICAnd3JpdGVf
b3V0JzogJ3dyaXRlIGNoYW5nZXMgdG8gdGhlIGFjdGlhbCBjaGFuZ2Vsb2cnCit9KQorZGVmIGNo
YW5nZWxvZyhjdHgsIHZlcnNpb24sIHdyaXRlX291dD1GYWxzZSk6CisgICAgaWYgd3JpdGVfb3V0
OgorICAgICAgICBhZGRvcHRzID0gW10KKyAgICBlbHNlOgorICAgICAgICBhZGRvcHRzID0gWyct
LWRyYWZ0J10KKyAgICBjaGVja19jYWxsKFsndG93bmNyaWVyJywgJy0tdmVyc2lvbicsIHZlcnNp
b25dICsgYWRkb3B0cykKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvcmVsZWFzZS5t
aW5vci5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9yZWxlYXNlLm1pbm9yLnJzdApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zYzBiN2Q3MThhMWNlMzgzMGZhODY4Y2UyMTdlZjUxNTdkOTEwMjExCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvcmVsZWFzZS5taW5vci5yc3QKQEAgLTAsMCArMSwyNyBA
QAorcHl0ZXN0LXt2ZXJzaW9ufQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09CisKK1RoZSBweXRlc3QgdGVhbSBpcyBwcm91ZCB0byBhbm5vdW5jZSB0aGUge3ZlcnNpb259
IHJlbGVhc2UhCisKK3B5dGVzdCBpcyBhIG1hdHVyZSBQeXRob24gdGVzdGluZyB0b29sIHdpdGgg
bW9yZSB0aGFuIGEgMTYwMCB0ZXN0cworYWdhaW5zdCBpdHNlbGYsIHBhc3Npbmcgb24gbWFueSBk
aWZmZXJlbnQgaW50ZXJwcmV0ZXJzIGFuZCBwbGF0Zm9ybXMuCisKK1RoaXMgcmVsZWFzZSBjb250
YWlucyBhIG51bWJlciBvZiBidWdzIGZpeGVzIGFuZCBpbXByb3ZlbWVudHMsIHNvIHVzZXJzIGFy
ZSBlbmNvdXJhZ2VkCit0byB0YWtlIGEgbG9vayBhdCB0aGUgQ0hBTkdFTE9HOgorCisgICAgaHR0
cDovL2RvYy5weXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbAorCitGb3IgY29tcGxl
dGUgZG9jdW1lbnRhdGlvbiwgcGxlYXNlIHZpc2l0OgorCisgICAgaHR0cDovL2RvY3MucHl0ZXN0
Lm9yZworCitBcyB1c3VhbCwgeW91IGNhbiB1cGdyYWRlIGZyb20gcHlwaSB2aWE6CisKKyAgICBw
aXAgaW5zdGFsbCAtVSBweXRlc3QKKworVGhhbmtzIHRvIGFsbCB3aG8gY29udHJpYnV0ZWQgdG8g
dGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCit7Y29udHJpYnV0b3JzfQorCitIYXBweSB0ZXN0
aW5nLAorVGhlIFB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90YXNrcy9yZWxlYXNlLnBhdGNoLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tzL3JlbGVhc2UucGF0
Y2gucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjU2NzY0YjkxMzA3OTRkYzBiYjljNTcxNDA4M2MzOTRlZWFmMmIw
MjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9yZWxlYXNlLnBhdGNoLnJz
dApAQCAtMCwwICsxLDE3IEBACitweXRlc3Qte3ZlcnNpb259Cis9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KKworcHl0ZXN0IHt2ZXJzaW9ufSBoYXMganVzdCBiZWVuIHJl
bGVhc2VkIHRvIFB5UEkuCisKK1RoaXMgaXMgYSBidWctZml4IHJlbGVhc2UsIGJlaW5nIGEgZHJv
cC1pbiByZXBsYWNlbWVudC4gVG8gdXBncmFkZTo6CisKKyAgcGlwIGluc3RhbGwgLS11cGdyYWRl
IHB5dGVzdAorICAKK1RoZSBmdWxsIGNoYW5nZWxvZyBpcyBhdmFpbGFibGUgYXQgaHR0cDovL2Rv
Yy5weXRlc3Qub3JnL2VuL2xhdGVzdC9jaGFuZ2Vsb2cuaHRtbC4KKworVGhhbmtzIHRvIGFsbCB3
aG8gY29udHJpYnV0ZWQgdG8gdGhpcyByZWxlYXNlLCBhbW9uZyB0aGVtOgorCit7Y29udHJpYnV0
b3JzfQorCitIYXBweSB0ZXN0aW5nLAorVGhlIHB5dGVzdCBEZXZlbG9wbWVudCBUZWFtCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9yZXF1aXJlbWVudHMudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGFza3MvcmVxdWlyZW1lbnRzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzkyZGUwY2MwYTVhYTY3YTQyZDk1
ZGI2NzNjMTQzNWUxMDlhZGI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3Mv
cmVxdWlyZW1lbnRzLnR4dApAQCAtMCwwICsxLDUgQEAKK2ludm9rZQordG94CitnaXRweXRob24K
K3Rvd25jcmllcgord2hlZWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tzL3czYy1pbXBv
cnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzc0
OTk2YTZkMjE1ZGNlYjZkYjUxMjFmM2Y4ZjIwMjE1N2JmNGI1NwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rhc2tzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjEgQEAKK1RoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9n
aXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVz
OgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rhc2tzL19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvZ2Vu
ZXJhdGUucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9yZWxlYXNlLm1pbm9yLnJzdAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rhc2tzL3JlbGVhc2UucGF0Y2gucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvcmVxdWlyZW1l
bnRzLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9hY2NlcHRhbmNlX3Rlc3Qu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2FjY2VwdGFuY2VfdGVzdC5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
NzgzODU0NWIwNzkzZmUwODdmMWFiOTJkNjc3ZDQ1ZDU0ZjkxMTBjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9hY2NlcHRhbmNlX3Rlc3QucHkKQEAgLTAsMCArMSw4NTAg
QEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29s
dXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitpbXBvcnQgb3MKK2ltcG9ydCBz
eXMKKworaW1wb3J0IF9weXRlc3QuX2NvZGUKK2ltcG9ydCBweQoraW1wb3J0IHB5dGVzdAorZnJv
bSBfcHl0ZXN0Lm1haW4gaW1wb3J0IEVYSVRfTk9URVNUU0NPTExFQ1RFRCwgRVhJVF9VU0FHRUVS
Uk9SCisKKworY2xhc3MgVGVzdEdlbmVyYWxVc2FnZShvYmplY3QpOgorICAgIGRlZiB0ZXN0X2Nv
bmZpZ19lcnJvcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3Qo
IiIiCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgorICAgICAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgICAgICByYWlzZSBweXRlc3QuVXNhZ2VF
cnJvcigiaGVsbG8iKQorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KHRlc3RkaXIudG1wZGlyKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCAhPSAwCisg
ICAgICAgIHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAnKkVSUk9S
OiBoZWxsbycKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X3Jvb3RfY29uZnRlc3Rfc3ludGF4
X2Vycm9yKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoY29uZnRl
c3Q9InJhaXNlIFN5bnRheEVycm9yXG4iKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5lcyhbIipyYWlzZSBTeW50
YXhFcnJvcioiXSkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0gMAorCisgICAgZGVmIHRl
c3RfZWFybHlfaG9va19lcnJvcl9pc3N1ZTM4XzEoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRl
c3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgZGVmIHB5dGVzdF9zZXNzaW9uc3Rh
cnQoKToKKyAgICAgICAgICAgICAgICAwIC8gMAorICAgICAgICAiIiIpCisgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KHRlc3RkaXIudG1wZGlyKQorICAgICAgICBhc3NlcnQgcmVz
dWx0LnJldCAhPSAwCisgICAgICAgICMgdHJhY2VzdHlsZSBpcyBuYXRpdmUgYnkgZGVmYXVsdCBm
b3IgaG9vayBmYWlsdXJlcworICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWwor
ICAgICAgICAgICAgJypJTlRFUk5BTEVSUk9SKkZpbGUqY29uZnRlc3QucHkqbGluZSAyKicsCisg
ICAgICAgICAgICAnKjAgLyAwKicsCisgICAgICAgIF0pCisgICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KHRlc3RkaXIudG1wZGlyLCAiLS1mdWxsdHJhY2UiKQorICAgICAgICBhc3Nl
cnQgcmVzdWx0LnJldCAhPSAwCisgICAgICAgICMgdHJhY2VzdHlsZSBpcyBuYXRpdmUgYnkgZGVm
YXVsdCBmb3IgaG9vayBmYWlsdXJlcworICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoWworICAgICAgICAgICAgJypJTlRFUk5BTEVSUk9SKmRlZiBweXRlc3Rfc2Vzc2lvbnN0YXJ0
KCk6KicsCisgICAgICAgICAgICAnKklOVEVSTkFMRVJST1IqMCAvIDAqJywKKyAgICAgICAgXSkK
KworICAgIGRlZiB0ZXN0X2Vhcmx5X2hvb2tfY29uZmlndXJlX2Vycm9yX2lzc3VlMzgoc2VsZiwg
dGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAg
ZGVmIHB5dGVzdF9jb25maWd1cmUoKToKKyAgICAgICAgICAgICAgICAwIC8gMAorICAgICAgICAi
IiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHRlc3RkaXIudG1wZGlyKQor
ICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCAhPSAwCisgICAgICAgICMgaGVyZSB3ZSBnZXQgaXQg
b24gc3RkZXJyCisgICAgICAgIHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5lcyhbCisgICAgICAg
ICAgICAnKklOVEVSTkFMRVJST1IqRmlsZSpjb25mdGVzdC5weSpsaW5lIDIqJywKKyAgICAgICAg
ICAgICcqMCAvIDAqJywKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2ZpbGVfbm90X2ZvdW5k
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiYXNk
IikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0gMAorICAgICAgICByZXN1bHQuc3RkZXJy
LmZubWF0Y2hfbGluZXMoWyJFUlJPUjogZmlsZSBub3QgZm91bmQqYXNkIl0pCisKKyAgICBkZWYg
dGVzdF9maWxlX25vdF9mb3VuZF91bmNvbmZpZ3VyZV9pc3N1ZTE0MyhzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgICAgICBkZWYgcHl0ZXN0
X2NvbmZpZ3VyZSgpOgorICAgICAgICAgICAgICAgIHByaW50KCItLS1jb25maWd1cmUiKQorICAg
ICAgICAgICAgZGVmIHB5dGVzdF91bmNvbmZpZ3VyZSgpOgorICAgICAgICAgICAgICAgIHByaW50
KCItLS11bmNvbmZpZ3VyZSIpCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoIi1zIiwgImFzZCIpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDQg
ICMgRVhJVF9VU0FHRUVSUk9SCisgICAgICAgIHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5lcyhb
IkVSUk9SOiBmaWxlIG5vdCBmb3VuZCphc2QiXSkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqLS0tY29uZmlndXJlIiwKKyAgICAgICAgICAgICIq
LS0tdW5jb25maWd1cmUiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfY29uZmlnX3ByZXBh
cnNlX3BsdWdpbl9vcHRpb24oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZShweXRlc3RfeHl6PSIiIgorICAgICAgICAgICAgZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFy
c2VyKToKKyAgICAgICAgICAgICAgICBwYXJzZXIuYWRkb3B0aW9uKCItLXh5eiIsIGRlc3Q9Inh5
eiIsIGFjdGlvbj0ic3RvcmUiKQorICAgICAgICAiIiIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSh0ZXN0X29uZT0iIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X29wdGlvbihweXRlc3Rjb25m
aWcpOgorICAgICAgICAgICAgICAgIGFzc2VydCBweXRlc3Rjb25maWcub3B0aW9uLnh5eiA9PSAi
MTIzIgorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCIt
cCIsICJweXRlc3RfeHl6IiwgIi0teHl6PTEyMyIsIHN5c3BhdGhpbnNlcnQ9VHJ1ZSkKKyAgICAg
ICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoWworICAgICAgICAgICAgJyoxIHBhc3NlZConLAorICAgICAgICBdKQorCisgICAgZGVm
IHRlc3RfYXNzZXJ0aW9uX21hZ2ljKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRp
ci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfdGhpcygpOgorICAgICAgICAg
ICAgICAgIHggPSAwCisgICAgICAgICAgICAgICAgYXNzZXJ0IHgKKyAgICAgICAgIiIiKQorICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwKQorICAgICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIj4gICAgICAgYXNzZXJ0IHgiLAorICAgICAg
ICAgICAgIkUgICAgICAgYXNzZXJ0IDAiLAorICAgICAgICBdKQorICAgICAgICBhc3NlcnQgcmVz
dWx0LnJldCA9PSAxCisKKyAgICBkZWYgdGVzdF9uZXN0ZWRfaW1wb3J0X2Vycm9yKHNlbGYsIHRl
c3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAg
ICAgIGltcG9ydCBpbXBvcnRfZmFpbHMKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF90aGlzKCk6
CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBpbXBvcnRfZmFpbHMuYSA9PSAxCisgICAgICAg
ICIiIikKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKGltcG9ydF9mYWlscz0iaW1wb3J0IGRv
ZXNfbm90X3dvcmsiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwKQorICAg
ICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIyBYWFggb24g
anl0aG9uIHRoaXMgZmFpbHM6ICAiPiAgIGltcG9ydCBpbXBvcnRfZmFpbHMiLAorICAgICAgICAg
ICAgIkltcG9ydEVycm9yIHdoaWxlIGltcG9ydGluZyB0ZXN0IG1vZHVsZSoiLAorICAgICAgICAg
ICAgIipObyBtb2R1bGUgbmFtZWQgKmRvZXNfbm90X3dvcmsqIiwKKyAgICAgICAgXSkKKyAgICAg
ICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMgorCisgICAgZGVmIHRlc3Rfbm90X2NvbGxlY3RhYmxl
X2FyZ3VtZW50cyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZp
bGUoIiIpCisgICAgICAgIHAyID0gdGVzdGRpci5tYWtlZmlsZSgiLnB5YyIsICIxMjMiKQorICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwMSwgcDIpCisgICAgICAgIGFzc2VydCBy
ZXN1bHQucmV0CisgICAgICAgIHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5lcyhbCisgICAgICAg
ICAgICAiKkVSUk9SOiBub3QgZm91bmQ6KiVzIiAlIChwMi5iYXNlbmFtZSwpCisgICAgICAgIF0p
CisKKyAgICBkZWYgdGVzdF9pc3N1ZTQ4Nl9iZXR0ZXJfcmVwb3J0aW5nX29uX2NvbmZ0ZXN0X2xv
YWRfZmFpbHVyZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIi
KQorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiaW1wb3J0IHF3ZXJ0eSIpCisgICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWhlbHAiKQorICAgICAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAgICAgICAqLS12ZXJzaW9uKgorICAgICAgICAg
ICAgKndhcm5pbmcqY29uZnRlc3QucHkqCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3RkZXJyLmZubWF0Y2hfbGluZXMo
IiIiCisgICAgICAgICAgICAqRVJST1IqY291bGQgbm90IGxvYWQqY29uZnRlc3QucHkqCisgICAg
ICAgICIiIikKKworICAgIGRlZiB0ZXN0X2Vhcmx5X3NraXAoc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIHRlc3RkaXIubWtkaXIoInh5eiIpCisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIi
IgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgZGVmIHB5dGVzdF9jb2xs
ZWN0X2RpcmVjdG9yeSgpOgorICAgICAgICAgICAgICAgIHB5dGVzdC5za2lwKCJlYXJseSIpCisg
ICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAg
ICBhc3NlcnQgcmVzdWx0LnJldCA9PSBFWElUX05PVEVTVFNDT0xMRUNURUQKKyAgICAgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqMSBza2lwKiIKKyAgICAg
ICAgXSkKKworICAgIGRlZiB0ZXN0X2lzc3VlODhfaW5pdGlhbF9maWxlX211bHRpbm9kZXMoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgY2xhc3MgTXlGaWxlKHB5dGVzdC5GaWxlKToK
KyAgICAgICAgICAgICAgICBkZWYgY29sbGVjdChzZWxmKToKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIFtNeUl0ZW0oImhlbGxvIiwgcGFyZW50PXNlbGYpXQorICAgICAgICAgICAgZGVmIHB5
dGVzdF9jb2xsZWN0X2ZpbGUocGF0aCwgcGFyZW50KToKKyAgICAgICAgICAgICAgICByZXR1cm4g
TXlGaWxlKHBhdGgsIHBhcmVudCkKKyAgICAgICAgICAgIGNsYXNzIE15SXRlbShweXRlc3QuSXRl
bSk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHAgPSB0ZXN0
ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0X2hlbGxvKCk6IHBhc3MiKQorICAgICAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdChwLCAiLS1jb2xsZWN0LW9ubHkiKQorICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIipNeUZpbGUqdGVzdF9pc3N1ZTg4
KiIsCisgICAgICAgICAgICAiKk1vZHVsZSp0ZXN0X2lzc3VlODgqIiwKKyAgICAgICAgXSkKKwor
ICAgIGRlZiB0ZXN0X2lzc3VlOTNfaW5pdGlhbG5vZGVfaW1wb3J0aW5nX2NhcHR1cmluZyhzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgICAg
ICBpbXBvcnQgc3lzCisgICAgICAgICAgICBwcmludCAoInNob3VsZCBub3QgYmUgc2VlbiIpCisg
ICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJzdGRlcjQyXFxuIikKKyAgICAgICAgIiIiKQor
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIGFzc2VydCByZXN1
bHQucmV0ID09IEVYSVRfTk9URVNUU0NPTExFQ1RFRAorICAgICAgICBhc3NlcnQgInNob3VsZCBu
b3QgYmUgc2VlbiIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICAgICAgYXNzZXJ0ICJz
dGRlcnI0MiIgbm90IGluIHJlc3VsdC5zdGRlcnIuc3RyKCkKKworICAgIGRlZiB0ZXN0X2NvbmZ0
ZXN0X3ByaW50aW5nX3Nob3dzX2lmX2Vycm9yKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0
ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIHByaW50ICgic2hvdWxkIGJlIHNlZW4i
KQorICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ICE9IDAKKyAgICAg
ICAgYXNzZXJ0ICJzaG91bGQgYmUgc2VlbiIgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorCisgICAg
QHB5dGVzdC5tYXJrLnNraXBpZihub3QgaGFzYXR0cihweS5wYXRoLmxvY2FsLCAnbWtzeW1saW5r
dG8nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ic3ltbGluayBub3QgYXZhaWxh
YmxlIG9uIHRoaXMgcGxhdGZvcm0iKQorICAgIGRlZiB0ZXN0X2NoZGlyKHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICB0ZXN0ZGlyLnRtcGRpci5qb2luKCJweSIpLm1rc3ltbGlua3RvKHB5Ll9weWRp
cikKKyAgICAgICAgcCA9IHRlc3RkaXIudG1wZGlyLmpvaW4oIm1haW4ucHkiKQorICAgICAgICBw
LndyaXRlKF9weXRlc3QuX2NvZGUuU291cmNlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHN5cywg
b3MKKyAgICAgICAgICAgIHN5cy5wYXRoLmluc2VydCgwLCAnJykKKyAgICAgICAgICAgIGltcG9y
dCBweQorICAgICAgICAgICAgcHJpbnQgKHB5Ll9fZmlsZV9fKQorICAgICAgICAgICAgcHJpbnQg
KHB5Ll9fcGF0aF9fKQorICAgICAgICAgICAgb3MuY2hkaXIob3MucGF0aC5kaXJuYW1lKG9zLmdl
dGN3ZCgpKSkKKyAgICAgICAgICAgIHByaW50IChweS5sb2cpCisgICAgICAgICIiIikpCisgICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0aG9uKHApCisgICAgICAgIGFzc2VydCBub3QgcmVz
dWx0LnJldAorCisgICAgZGVmIHRlc3RfaXNzdWUxMDlfc2libGluZ19jb25mdGVzdHNfbm90X2xv
YWRlZChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgc3ViMSA9IHRlc3RkaXIudG1wZGlyLm1rZGly
KCJzdWIxIikKKyAgICAgICAgc3ViMiA9IHRlc3RkaXIudG1wZGlyLm1rZGlyKCJzdWIyIikKKyAg
ICAgICAgc3ViMS5qb2luKCJjb25mdGVzdC5weSIpLndyaXRlKCJhc3NlcnQgMCIpCisgICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHN1YjIpCisgICAgICAgIGFzc2VydCByZXN1bHQu
cmV0ID09IEVYSVRfTk9URVNUU0NPTExFQ1RFRAorICAgICAgICBzdWIyLmVuc3VyZSgiX19pbml0
X18ucHkiKQorICAgICAgICBwID0gc3ViMi5lbnN1cmUoInRlc3RfaGVsbG8ucHkiKQorICAgICAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJl
dCA9PSBFWElUX05PVEVTVFNDT0xMRUNURUQKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3Qoc3ViMSkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gRVhJVF9VU0FHRUVSUk9S
CisKKyAgICBkZWYgdGVzdF9kaXJlY3Rvcnlfc2tpcHBlZChzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Cisg
ICAgICAgICAgICBkZWYgcHl0ZXN0X2lnbm9yZV9jb2xsZWN0KCk6CisgICAgICAgICAgICAgICAg
cHl0ZXN0LnNraXAoImludGVudGlvbmFsIikKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoImRlZiB0ZXN0X2hlbGxvKCk6IHBhc3MiKQorICAgICAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IEVYSVRfTk9U
RVNUU0NPTExFQ1RFRAorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAg
ICAgICAgICAgIioxIHNraXBwZWQqIgorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfbXVsdGlw
bGVfaXRlbXNfcGVyX2NvbGxlY3Rvcl9ieWlkKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBjID0g
dGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAg
ICAgICAgICBjbGFzcyBNeUl0ZW0ocHl0ZXN0Lkl0ZW0pOgorICAgICAgICAgICAgICAgIGRlZiBy
dW50ZXN0KHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBjbGFz
cyBNeUNvbGxlY3RvcihweXRlc3QuRmlsZSk6CisgICAgICAgICAgICAgICAgZGVmIGNvbGxlY3Qo
c2VsZik6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBbTXlJdGVtKG5hbWU9Inh5eiIsIHBh
cmVudD1zZWxmKV0KKyAgICAgICAgICAgIGRlZiBweXRlc3RfY29sbGVjdF9maWxlKHBhdGgsIHBh
cmVudCk6CisgICAgICAgICAgICAgICAgaWYgcGF0aC5iYXNlbmFtZS5zdGFydHN3aXRoKCJjb25m
dGVzdCIpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gTXlDb2xsZWN0b3IocGF0aCwgcGFy
ZW50KQorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KGMu
YmFzZW5hbWUgKyAiOjoiICsgInh5eiIpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAK
KyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqMSBw
YXNzKiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9za2lwX29uX2dlbmVyYXRlZF9mdW5j
YXJnX2lkKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIK
KyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGRlZiBweXRlc3RfZ2VuZXJh
dGVfdGVzdHMobWV0YWZ1bmMpOgorICAgICAgICAgICAgICAgIG1ldGFmdW5jLmFkZGNhbGwoeyd4
JzogM30sIGlkPSdoZWxsby0xMjMnKQorICAgICAgICAgICAgZGVmIHB5dGVzdF9ydW50ZXN0X3Nl
dHVwKGl0ZW0pOgorICAgICAgICAgICAgICAgIHByaW50IChpdGVtLmtleXdvcmRzKQorICAgICAg
ICAgICAgICAgIGlmICdoZWxsby0xMjMnIGluIGl0ZW0ua2V5d29yZHM6CisgICAgICAgICAgICAg
ICAgICAgIHB5dGVzdC5za2lwKCJoZWxsbyIpCisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAg
ICAgICAgIiIiKQorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiImRlZiB0ZXN0X2Z1
bmMoeCk6IHBhc3MiIiIpCisgICAgICAgIHJlcyA9IHRlc3RkaXIucnVucHl0ZXN0KHApCisgICAg
ICAgIGFzc2VydCByZXMucmV0ID09IDAKKyAgICAgICAgcmVzLnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsiKjEgc2tpcHBlZCoiXSkKKworICAgIGRlZiB0ZXN0X2RpcmVjdF9hZGRyZXNzaW5nX3NlbGVj
dHMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAg
ICAgICAgICBtZXRhZnVuYy5hZGRjYWxsKHsnaSc6IDF9LCBpZD0iMSIpCisgICAgICAgICAgICAg
ICAgbWV0YWZ1bmMuYWRkY2FsbCh7J2knOiAyfSwgaWQ9IjIiKQorICAgICAgICAgICAgZGVmIHRl
c3RfZnVuYyhpKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAg
cmVzID0gdGVzdGRpci5ydW5weXRlc3QocC5iYXNlbmFtZSArICI6OiIgKyAidGVzdF9mdW5jWzFd
IikKKyAgICAgICAgYXNzZXJ0IHJlcy5yZXQgPT0gMAorICAgICAgICByZXMuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCisKKyAgICBkZWYgdGVzdF9kaXJlY3RfYWRkcmVzc2lu
Z19ub3Rmb3VuZChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5Zmls
ZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAgICBwYXNz
CisgICAgICAgICIiIikKKyAgICAgICAgcmVzID0gdGVzdGRpci5ydW5weXRlc3QocC5iYXNlbmFt
ZSArICI6OiIgKyAidGVzdF9ub3Rmb3VuZCIpCisgICAgICAgIGFzc2VydCByZXMucmV0CisgICAg
ICAgIHJlcy5zdGRlcnIuZm5tYXRjaF9saW5lcyhbIipFUlJPUipub3QgZm91bmQqIl0pCisKKyAg
ICBkZWYgdGVzdF9kb2NzdHJpbmdfb25faG9va3NwZWMoc2VsZik6CisgICAgICAgIGZyb20gX3B5
dGVzdCBpbXBvcnQgaG9va3NwZWMKKyAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIHZhcnMoaG9v
a3NwZWMpLml0ZW1zKCk6CisgICAgICAgICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgoInB5dGVzdF8i
KToKKyAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWUuX19kb2NfXywgIm5vIGRvY3N0cmluZyBm
b3IgJXMiICUgbmFtZQorCisgICAgZGVmIHRlc3RfaW5pdGlhbGl6YXRpb25fZXJyb3JfaXNzdWU0
OShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAg
ICAgICAgICBkZWYgcHl0ZXN0X2NvbmZpZ3VyZSgpOgorICAgICAgICAgICAgICAgIHgKKyAgICAg
ICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIGFz
c2VydCByZXN1bHQucmV0ID09IDMgICMgaW50ZXJuYWwgZXJyb3IKKyAgICAgICAgcmVzdWx0LnN0
ZGVyci5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICJJTlRFUk5BTCpweXRlc3RfY29uZmln
dXJlKiIsCisgICAgICAgICAgICAiSU5URVJOQUwqeCoiLAorICAgICAgICBdKQorICAgICAgICBh
c3NlcnQgJ3Nlc3Npb25zdGFydHRpbWUnIG5vdCBpbiByZXN1bHQuc3RkZXJyLnN0cigpCisKKyAg
ICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2xvb2tmb3InLCBbJ3Rlc3RfZnVuLnB5Ojp0ZXN0
X2EnXSkKKyAgICBkZWYgdGVzdF9pc3N1ZTEzNF9yZXBvcnRfZXJyb3Jfd2hlbl9jb2xsZWN0aW5n
X21lbWJlcihzZWxmLCB0ZXN0ZGlyLCBsb29rZm9yKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKHRlc3RfZnVuPSIiIgorICAgICAgICAgICAgZGVmIHRlc3RfYSgpOgorICAgICAgICAgICAg
ICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3QobG9va2ZvcikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsn
KlN5bnRheEVycm9yKiddKQorICAgICAgICBpZiAnOjonIGluIGxvb2tmb3I6CisgICAgICAgICAg
ICByZXN1bHQuc3RkZXJyLmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgICAgICcqRVJST1Iq
JywKKyAgICAgICAgICAgIF0pCisgICAgICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSA0ICAj
IHVzYWdlIGVycm9yIG9ubHkgaWYgaXRlbSBub3QgZm91bmQKKworICAgIGRlZiB0ZXN0X3JlcG9y
dF9hbGxfZmFpbGVkX2NvbGxlY3Rpb25zX2luaXRhcmdzKHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9hPSJkZWYiLCB0ZXN0X2I9ImRlZiIpCisgICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCJ0ZXN0X2EucHk6OmEiLCAidGVzdF9iLnB5Ojpi
IikKKyAgICAgICAgcmVzdWx0LnN0ZGVyci5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIq
RVJST1IqdGVzdF9hLnB5OjphKiIsCisgICAgICAgICAgICAiKkVSUk9SKnRlc3RfYi5weTo6Yioi
LAorICAgICAgICBdKQorCisgICAgQHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCdyZWN3YXJuJykK
KyAgICBkZWYgdGVzdF9uYW1lc3BhY2VfaW1wb3J0X2RvZXNudF9jb25mdXNlX2ltcG9ydF9ob29r
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiIKKyAgICAgICAgUmVmICMzODMuIFB5dGhvbiAz
LjMncyBuYW1lc3BhY2UgcGFja2FnZSBtZXNzZWQgd2l0aCBvdXIgaW1wb3J0IGhvb2tzCisgICAg
ICAgIEltcG9ydGluZyBhIG1vZHVsZSB0aGF0IGRpZG4ndCBleGlzdCwgZXZlbiBpZiB0aGUgSW1w
b3J0RXJyb3Igd2FzCisgICAgICAgIGdyYWNlZnVsbHkgaGFuZGxlZCwgd291bGQgbWFrZSBvdXIg
dGVzdCBjcmFzaC4KKworICAgICAgICBVc2UgcmVjd2FybiBoZXJlIHRvIHNpbGVuY2UgdGhpcyB3
YXJuaW5nIGluIFB5dGhvbiAyLjc6CisgICAgICAgICAgICBJbXBvcnRXYXJuaW5nOiBOb3QgaW1w
b3J0aW5nIGRpcmVjdG9yeSAnLi4uXG5vdF9hX3BhY2thZ2UnOiBtaXNzaW5nIF9faW5pdF9fLnB5
CisgICAgICAgICIiIgorICAgICAgICB0ZXN0ZGlyLm1rZGlyKCdub3RfYV9wYWNrYWdlJykKKyAg
ICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIHRyeToKKyAgICAg
ICAgICAgICAgICBmcm9tIG5vdF9hX3BhY2thZ2UgaW1wb3J0IGRvZXNudF9leGlzdAorICAgICAg
ICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICAgICAgICAgICMgV2UgaGFuZGxlIHRo
ZSBpbXBvcnQgZXJyb3IgZ3JhY2VmdWxseSBoZXJlCisgICAgICAgICAgICAgICAgcGFzcworCisg
ICAgICAgICAgICBkZWYgdGVzdF93aGF0ZXZlcigpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgIiIiKQorICAgICAgICByZXMgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwLmJhc2VuYW1lKQor
ICAgICAgICBhc3NlcnQgcmVzLnJldCA9PSAwCisKKyAgICBkZWYgdGVzdF91bmtub3duX29wdGlv
bihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0t
cXdsa2VqIikKKyAgICAgICAgcmVzdWx0LnN0ZGVyci5mbm1hdGNoX2xpbmVzKCIiIgorICAgICAg
ICAgICAgKnVucmVjb2duaXplZCoKKyAgICAgICAgIiIiKQorCisgICAgZGVmIHRlc3RfZ2V0c291
cmNlbGluZXNfZXJyb3JfaXNzdWU1NTMoc2VsZiwgdGVzdGRpciwgbW9ua2V5cGF0Y2gpOgorICAg
ICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKCJpbnNwZWN0LmdldHNvdXJjZWxpbmVzIiwgTm9uZSkK
KyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiByYWlz
ZV9lcnJvcihvYmopOgorICAgICAgICAgICAgICAgIHJhaXNlIElPRXJyb3IoJ3NvdXJjZSBjb2Rl
IG5vdCBhdmFpbGFibGUnKQorCisgICAgICAgICAgICBpbXBvcnQgaW5zcGVjdAorICAgICAgICAg
ICAgaW5zcGVjdC5nZXRzb3VyY2VsaW5lcyA9IHJhaXNlX2Vycm9yCisKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X2ZvbyhpbnZhbGlkX2ZpeHR1cmUpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgIiIiKQorICAgICAgICByZXMgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwKQorICAgICAgICByZXMu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIipzb3VyY2UgY29kZSBub3QgYXZh
aWxhYmxlKiIsCisgICAgICAgICAgICAiRSpmaXh0dXJlICdpbnZhbGlkX2ZpeHR1cmUnIG5vdCBm
b3VuZCIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9wbHVnaW5zX2dpdmVuX2FzX3N0cmlu
Z3Moc2VsZiwgdG1wZGlyLCBtb25rZXlwYXRjaCk6CisgICAgICAgICIiInRlc3QgdGhhdCBzdHIg
dmFsdWVzIHBhc3NlZCB0byBtYWluKCkgYXMgYHBsdWdpbnNgIGFyZworICAgICAgICBhcmUgaW50
ZXJwcmV0ZWQgYXMgbW9kdWxlIG5hbWVzIHRvIGJlIGltcG9ydGVkIGFuZCByZWdpc3RlcmVkLgor
ICAgICAgICAjODU1LgorICAgICAgICAiIiIKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKElt
cG9ydEVycm9yKSBhcyBleGNpbmZvOgorICAgICAgICAgICAgcHl0ZXN0Lm1haW4oW3N0cih0bXBk
aXIpXSwgcGx1Z2lucz1bJ2ludmFsaWQubW9kdWxlJ10pCisgICAgICAgIGFzc2VydCAnaW52YWxp
ZCcgaW4gc3RyKGV4Y2luZm8udmFsdWUpCisKKyAgICAgICAgcCA9IHRtcGRpci5qb2luKCd0ZXN0
X3Rlc3RfcGx1Z2luc19naXZlbl9hc19zdHJpbmdzLnB5JykKKyAgICAgICAgcC53cml0ZSgnZGVm
IHRlc3RfZm9vKCk6IHBhc3MnKQorICAgICAgICBtb2QgPSBweS5zdGQudHlwZXMuTW9kdWxlVHlw
ZSgibXlwbHVnaW4iKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRpdGVtKHN5cy5tb2R1bGVzLCAn
bXlwbHVnaW4nLCBtb2QpCisgICAgICAgIGFzc2VydCBweXRlc3QubWFpbihhcmdzPVtzdHIodG1w
ZGlyKV0sIHBsdWdpbnM9WydteXBsdWdpbiddKSA9PSAwCisKKyAgICBkZWYgdGVzdF9wYXJhbWV0
cml6ZWRfd2l0aF9ieXRlc19yZWdleChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3Rk
aXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCByZQorICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdyJywgW3Jl
LmNvbXBpbGUoYidmb28nKV0pCisgICAgICAgICAgICBkZWYgdGVzdF9zdHVmZihyKToKKyAgICAg
ICAgICAgICAgICBwYXNzCisgICAgICAgICIiIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICkKKyAgICAgICAgcmVzID0gdGVzdGRpci5ydW5weXRlc3QocCkKKyAgICAgICAgcmVzLnN0
ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICcqMSBwYXNzZWQqJworICAgICAgICBd
KQorCisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVkX3dpdGhfbnVsbF9ieXRlcyhzZWxmLCB0ZXN0
ZGlyKToKKyAgICAgICAgIiIiVGVzdCBwYXJhbWV0cml6YXRpb24gd2l0aCB2YWx1ZXMgdGhhdCBj
b250YWluIG51bGwgYnl0ZXMgYW5kIHVuaWNvZGUgY2hhcmFjdGVycyAoIzI2NDQsICMyOTU3KSIi
IgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKHUiIiIKKyAgICAgICAgICAgICMgZW5j
b2Rpbmc6IFVURi04CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGF0YSIsIFtiIlxceDAwIiwgIlxceDAwIiwgdSdhw6fD
o28nXSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhkYXRhKToKKyAgICAgICAgICAgICAgICBh
c3NlcnQgZGF0YQorICAgICAgICAiIiIpCisgICAgICAgIHJlcyA9IHRlc3RkaXIucnVucHl0ZXN0
KHApCisgICAgICAgIHJlcy5hc3NlcnRfb3V0Y29tZXMocGFzc2VkPTMpCisKKworY2xhc3MgVGVz
dEludm9jYXRpb25WYXJpYW50cyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X2Vhcmx5aW5pdChzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGFzc2VydCBoYXNhdHRyKHB5dGVzdCwgJ21h
cmsnKQorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0aG9uKHAp
CisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKworICAgIEBweXRlc3QubWFyay54ZmFp
bCgic3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2phdmEnKSIpCisgICAgZGVmIHRlc3RfcHlkb2Mo
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIGZvciBuYW1lIGluICgncHkudGVzdCcsICdweXRlc3Qn
KToKKyAgICAgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0aG9uX2MoImltcG9ydCAlczto
ZWxwKCVzKSIgJSAobmFtZSwgbmFtZSkpCisgICAgICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9
PSAwCisgICAgICAgICAgICBzID0gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgICAgICAgICAgYXNz
ZXJ0ICdNYXJrR2VuZXJhdG9yJyBpbiBzCisKKyAgICBkZWYgdGVzdF9pbXBvcnRfc3Rhcl9weV9k
b3RfdGVzdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgi
IiIKKyAgICAgICAgICAgIGZyb20gcHkudGVzdCBpbXBvcnQgKgorICAgICAgICAgICAgI2NvbGxl
Y3QKKyAgICAgICAgICAgICNjbWRsaW5lCisgICAgICAgICAgICAjSXRlbQorICAgICAgICAgICAg
IyBhc3NlcnQgY29sbGVjdC5JdGVtIGlzIEl0ZW0KKyAgICAgICAgICAgICMgYXNzZXJ0IGNvbGxl
Y3QuQ29sbGVjdG9yIGlzIENvbGxlY3RvcgorICAgICAgICAgICAgbWFpbgorICAgICAgICAgICAg
c2tpcAorICAgICAgICAgICAgeGZhaWwKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGhvbihwKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKyAg
ICBkZWYgdGVzdF9pbXBvcnRfc3Rhcl9weXRlc3Qoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAg
PSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBmcm9tIHB5dGVzdCBpbXBvcnQg
KgorICAgICAgICAgICAgI0l0ZW0KKyAgICAgICAgICAgICNGaWxlCisgICAgICAgICAgICBtYWlu
CisgICAgICAgICAgICBza2lwCisgICAgICAgICAgICB4ZmFpbAorICAgICAgICAiIiIpCisgICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0aG9uKHApCisgICAgICAgIGFzc2VydCByZXN1bHQu
cmV0ID09IDAKKworICAgIGRlZiB0ZXN0X2RvdWJsZV9weXRlc3RjbWRsaW5lKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKHJ1bj0iIiIKKyAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIHB5dGVzdC5tYWluKCkKKyAgICAgICAgICAgIHB5
dGVzdC5tYWluKCkKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIi
CisgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbygpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGhvbihwKQorICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIioxIHBhc3NlZCoi
LAorICAgICAgICAgICAgIioxIHBhc3NlZCoiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3Rf
cHl0aG9uX21pbnVzX21faW52b2NhdGlvbl9vayhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcDEg
PSB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0X2hlbGxvKCk6IHBhc3MiKQorICAgICAgICBy
ZXMgPSB0ZXN0ZGlyLnJ1bihweS5zdGQuc3lzLmV4ZWN1dGFibGUsICItbSIsICJweXRlc3QiLCBz
dHIocDEpKQorICAgICAgICBhc3NlcnQgcmVzLnJldCA9PSAwCisKKyAgICBkZWYgdGVzdF9weXRo
b25fbWludXNfbV9pbnZvY2F0aW9uX2ZhaWwoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAxID0g
dGVzdGRpci5tYWtlcHlmaWxlKCJkZWYgdGVzdF9mYWlsKCk6IDAvMCIpCisgICAgICAgIHJlcyA9
IHRlc3RkaXIucnVuKHB5LnN0ZC5zeXMuZXhlY3V0YWJsZSwgIi1tIiwgInB5dGVzdCIsIHN0cihw
MSkpCisgICAgICAgIGFzc2VydCByZXMucmV0ID09IDEKKworICAgIGRlZiB0ZXN0X3B5dGhvbl9w
eXRlc3RfcGFja2FnZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcDEgPSB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoImRlZiB0ZXN0X3Bhc3MoKTogcGFzcyIpCisgICAgICAgIHJlcyA9IHRlc3RkaXIucnVu
KHB5LnN0ZC5zeXMuZXhlY3V0YWJsZSwgIi1tIiwgInB5dGVzdCIsIHN0cihwMSkpCisgICAgICAg
IGFzc2VydCByZXMucmV0ID09IDAKKyAgICAgICAgcmVzLnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsi
KjEgcGFzc2VkKiJdKQorCisgICAgZGVmIHRlc3RfZXF1aXZhbGVuY2VfcHl0ZXN0X3B5dGVzdChz
ZWxmKToKKyAgICAgICAgYXNzZXJ0IHB5dGVzdC5tYWluID09IHB5LnRlc3QuY21kbGluZS5tYWlu
CisKKyAgICBkZWYgdGVzdF9pbnZva2Vfd2l0aF9zdHJpbmcoc2VsZiwgY2Fwc3lzKToKKyAgICAg
ICAgcmV0Y29kZSA9IHB5dGVzdC5tYWluKCItaCIpCisgICAgICAgIGFzc2VydCBub3QgcmV0Y29k
ZQorICAgICAgICBvdXQsIGVyciA9IGNhcHN5cy5yZWFkb3V0ZXJyKCkKKyAgICAgICAgYXNzZXJ0
ICItLWhlbHAiIGluIG91dAorICAgICAgICBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIGxhbWJk
YTogcHl0ZXN0Lm1haW4oMCkpCisKKyAgICBkZWYgdGVzdF9pbnZva2Vfd2l0aF9wYXRoKHNlbGYs
IHRtcGRpciwgY2Fwc3lzKToKKyAgICAgICAgcmV0Y29kZSA9IHB5dGVzdC5tYWluKHRtcGRpcikK
KyAgICAgICAgYXNzZXJ0IHJldGNvZGUgPT0gRVhJVF9OT1RFU1RTQ09MTEVDVEVECisgICAgICAg
IG91dCwgZXJyID0gY2Fwc3lzLnJlYWRvdXRlcnIoKQorCisgICAgZGVmIHRlc3RfaW52b2tlX3Bs
dWdpbl9hcGkoc2VsZiwgdGVzdGRpciwgY2Fwc3lzKToKKyAgICAgICAgY2xhc3MgTXlQbHVnaW4o
b2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBweXRlc3RfYWRkb3B0aW9uKHNlbGYsIHBhcnNlcik6
CisgICAgICAgICAgICAgICAgcGFyc2VyLmFkZG9wdGlvbigiLS1teW9wdCIpCisKKyAgICAgICAg
cHl0ZXN0Lm1haW4oWyItaCJdLCBwbHVnaW5zPVtNeVBsdWdpbigpXSkKKyAgICAgICAgb3V0LCBl
cnIgPSBjYXBzeXMucmVhZG91dGVycigpCisgICAgICAgIGFzc2VydCAiLS1teW9wdCIgaW4gb3V0
CisKKyAgICBkZWYgdGVzdF9weWFyZ3NfaW1wb3J0ZXJyb3Ioc2VsZiwgdGVzdGRpciwgbW9ua2V5
cGF0Y2gpOgorICAgICAgICBtb25rZXlwYXRjaC5kZWxlbnYoJ1BZVEhPTkRPTlRXUklURUJZVEVD
T0RFJywgRmFsc2UpCisgICAgICAgIHBhdGggPSB0ZXN0ZGlyLm1rcHlkaXIoInRwa2ciKQorICAg
ICAgICBwYXRoLmpvaW4oInRlc3RfaGVsbG8ucHkiKS53cml0ZSgncmFpc2UgSW1wb3J0RXJyb3In
KQorCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoIi0tcHlh
cmdzIiwgInRwa2cudGVzdF9oZWxsbyIpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ICE9IDAK
KworICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgImNv
bGxlY3RlZCowKml0ZW1zKi8qMSplcnJvcnMiCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9j
bWRsaW5lX3B5dGhvbl9wYWNrYWdlKHNlbGYsIHRlc3RkaXIsIG1vbmtleXBhdGNoKToKKyAgICAg
ICAgaW1wb3J0IHdhcm5pbmdzCisgICAgICAgIG1vbmtleXBhdGNoLmRlbGVudignUFlUSE9ORE9O
VFdSSVRFQllURUNPREUnLCBGYWxzZSkKKyAgICAgICAgcGF0aCA9IHRlc3RkaXIubWtweWRpcigi
dHBrZyIpCisgICAgICAgIHBhdGguam9pbigidGVzdF9oZWxsby5weSIpLndyaXRlKCJkZWYgdGVz
dF9oZWxsbygpOiBwYXNzIikKKyAgICAgICAgcGF0aC5qb2luKCJ0ZXN0X3dvcmxkLnB5Iikud3Jp
dGUoImRlZiB0ZXN0X3dvcmxkKCk6IHBhc3MiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgiLS1weWFyZ3MiLCAidHBrZyIpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09
IDAKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIq
MiBwYXNzZWQqIgorICAgICAgICBdKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgiLS1weWFyZ3MiLCAidHBrZy50ZXN0X2hlbGxvIikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5y
ZXQgPT0gMAorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAg
ICAgIioxIHBhc3NlZCoiCisgICAgICAgIF0pCisKKyAgICAgICAgZGVmIGpvaW5fcHl0aG9ucGF0
aCh3aGF0KToKKyAgICAgICAgICAgIGN1ciA9IHB5LnN0ZC5vcy5lbnZpcm9uLmdldCgnUFlUSE9O
UEFUSCcpCisgICAgICAgICAgICBpZiBjdXI6CisgICAgICAgICAgICAgICAgcmV0dXJuIHN0cih3
aGF0KSArIG9zLnBhdGhzZXAgKyBjdXIKKyAgICAgICAgICAgIHJldHVybiB3aGF0CisgICAgICAg
IGVtcHR5X3BhY2thZ2UgPSB0ZXN0ZGlyLm1rcHlkaXIoImVtcHR5X3BhY2thZ2UiKQorICAgICAg
ICBtb25rZXlwYXRjaC5zZXRlbnYoJ1BZVEhPTlBBVEgnLCBqb2luX3B5dGhvbnBhdGgoZW1wdHlf
cGFja2FnZSkpCisgICAgICAgICMgdGhlIHBhdGggd2hpY2ggaXMgbm90IGEgcGFja2FnZSByYWlz
ZXMgYSB3YXJuaW5nIG9uIHB5cHk7CisgICAgICAgICMgbm8gaWRlYSB3aHkgb25seSBweXB5IGFu
ZCBub3Qgbm9ybWFsIHB5dGhvbiB3YXJuIGFib3V0IGl0IGhlcmUKKyAgICAgICAgd2l0aCB3YXJu
aW5ncy5jYXRjaF93YXJuaW5ncygpOgorICAgICAgICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVy
KCdpZ25vcmUnLCBJbXBvcnRXYXJuaW5nKQorICAgICAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3QoIi0tcHlhcmdzIiwgIi4iKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAw
CisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKjIg
cGFzc2VkKiIKKyAgICAgICAgXSkKKworICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYoJ1BZVEhP
TlBBVEgnLCBqb2luX3B5dGhvbnBhdGgodGVzdGRpcikpCisgICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCItLXB5YXJncyIsICJ0cGtnLnRlc3RfbWlzc2luZyIpCisgICAgICAgIGFz
c2VydCByZXN1bHQucmV0ICE9IDAKKyAgICAgICAgcmVzdWx0LnN0ZGVyci5mbm1hdGNoX2xpbmVz
KFsKKyAgICAgICAgICAgICIqbm90KmZvdW5kKnRlc3RfbWlzc2luZyoiLAorICAgICAgICBdKQor
CisgICAgZGVmIHRlc3RfY21kbGluZV9weXRob25fbmFtZXNwYWNlX3BhY2thZ2Uoc2VsZiwgdGVz
dGRpciwgbW9ua2V5cGF0Y2gpOgorICAgICAgICAiIiIKKyAgICAgICAgdGVzdCAtLXB5YXJncyBv
cHRpb24gd2l0aCBuYW1lc3BhY2UgcGFja2FnZXMgKCMxNTY3KQorICAgICAgICAiIiIKKyAgICAg
ICAgbW9ua2V5cGF0Y2guZGVsZW52KCdQWVRIT05ET05UV1JJVEVCWVRFQ09ERScsIHJhaXNpbmc9
RmFsc2UpCisKKyAgICAgICAgc2VhcmNoX3BhdGggPSBbXQorICAgICAgICBmb3IgZGlybmFtZSBp
biAiaGVsbG8iLCAid29ybGQiOgorICAgICAgICAgICAgZCA9IHRlc3RkaXIubWtkaXIoZGlybmFt
ZSkKKyAgICAgICAgICAgIHNlYXJjaF9wYXRoLmFwcGVuZChkKQorICAgICAgICAgICAgbnMgPSBk
Lm1rZGlyKCJuc19wa2ciKQorICAgICAgICAgICAgbnMuam9pbigiX19pbml0X18ucHkiKS53cml0
ZSgKKyAgICAgICAgICAgICAgICAiX19pbXBvcnRfXygncGtnX3Jlc291cmNlcycpLmRlY2xhcmVf
bmFtZXNwYWNlKF9fbmFtZV9fKSIpCisgICAgICAgICAgICBsaWIgPSBucy5ta2RpcihkaXJuYW1l
KQorICAgICAgICAgICAgbGliLmVuc3VyZSgiX19pbml0X18ucHkiKQorICAgICAgICAgICAgbGli
LmpvaW4oInRlc3RfezB9LnB5Ii5mb3JtYXQoZGlybmFtZSkpLiBcCisgICAgICAgICAgICAgICAg
d3JpdGUoImRlZiB0ZXN0X3swfSgpOiBwYXNzXG4iCisgICAgICAgICAgICAgICAgICAgICAgImRl
ZiB0ZXN0X290aGVyKCk6cGFzcyIuZm9ybWF0KGRpcm5hbWUpKQorCisgICAgICAgICMgVGhlIHN0
cnVjdHVyZSBvZiB0aGUgdGVzdCBkaXJlY3RvcnkgaXMgbm93OgorICAgICAgICAjIC4KKyAgICAg
ICAgIyDilJzilIDilIAgaGVsbG8KKyAgICAgICAgIyDilILCoMKgIOKUlOKUgOKUgCBuc19wa2cK
KyAgICAgICAgIyDilILCoMKgICAgICDilJzilIDilIAgX19pbml0X18ucHkKKyAgICAgICAgIyDi
lILCoMKgICAgICDilJTilIDilIAgaGVsbG8KKyAgICAgICAgIyDilILCoMKgICAgICAgICAg4pSc
4pSA4pSAIF9faW5pdF9fLnB5CisgICAgICAgICMg4pSCwqDCoCAgICAgICAgIOKUlOKUgOKUgCB0
ZXN0X2hlbGxvLnB5CisgICAgICAgICMg4pSU4pSA4pSAIHdvcmxkCisgICAgICAgICMgICAgIOKU
lOKUgOKUgCBuc19wa2cKKyAgICAgICAgIyAgICAgICAgIOKUnOKUgOKUgCBfX2luaXRfXy5weQor
ICAgICAgICAjICAgICAgICAg4pSU4pSA4pSAIHdvcmxkCisgICAgICAgICMgICAgICAgICAgICAg
4pSc4pSA4pSAIF9faW5pdF9fLnB5CisgICAgICAgICMgICAgICAgICAgICAg4pSU4pSA4pSAIHRl
c3Rfd29ybGQucHkKKworICAgICAgICBkZWYgam9pbl9weXRob25wYXRoKCpkaXJzKToKKyAgICAg
ICAgICAgIGN1ciA9IHB5LnN0ZC5vcy5lbnZpcm9uLmdldCgnUFlUSE9OUEFUSCcpCisgICAgICAg
ICAgICBpZiBjdXI6CisgICAgICAgICAgICAgICAgZGlycyArPSAoY3VyLCkKKyAgICAgICAgICAg
IHJldHVybiBvcy5wYXRoc2VwLmpvaW4oc3RyKHApIGZvciBwIGluIGRpcnMpCisgICAgICAgIG1v
bmtleXBhdGNoLnNldGVudignUFlUSE9OUEFUSCcsIGpvaW5fcHl0aG9ucGF0aCgqc2VhcmNoX3Bh
dGgpKQorICAgICAgICBmb3IgcCBpbiBzZWFyY2hfcGF0aDoKKyAgICAgICAgICAgIG1vbmtleXBh
dGNoLnN5c3BhdGhfcHJlcGVuZChwKQorCisgICAgICAgIG9zLmNoZGlyKCd3b3JsZCcpCisgICAg
ICAgICMgbWl4ZWQgbW9kdWxlIGFuZCBmaWxlbmFtZXM6CisgICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCItLXB5YXJncyIsICItdiIsICJuc19wa2cuaGVsbG8iLCAibnNfcGtnL3dv
cmxkIikKKyAgICAgICAgdGVzdGRpci5jaGRpcigpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0
ID09IDAKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAg
ICIqdGVzdF9oZWxsby5weTo6dGVzdF9oZWxsbypQQVNTRUQqIiwKKyAgICAgICAgICAgICIqdGVz
dF9oZWxsby5weTo6dGVzdF9vdGhlcipQQVNTRUQqIiwKKyAgICAgICAgICAgICIqdGVzdF93b3Js
ZC5weTo6dGVzdF93b3JsZCpQQVNTRUQqIiwKKyAgICAgICAgICAgICIqdGVzdF93b3JsZC5weTo6
dGVzdF9vdGhlcipQQVNTRUQqIiwKKyAgICAgICAgICAgICIqNCBwYXNzZWQqIgorICAgICAgICBd
KQorCisgICAgICAgICMgc3BlY2lmeSB0ZXN0cyB3aXRoaW4gYSBtb2R1bGUKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tcHlhcmdzIiwgIi12IiwgIm5zX3BrZy53b3JsZC50
ZXN0X3dvcmxkOjp0ZXN0X290aGVyIikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAor
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIip0ZXN0
X3dvcmxkLnB5Ojp0ZXN0X290aGVyKlBBU1NFRCoiLAorICAgICAgICAgICAgIioxIHBhc3NlZCoi
CisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9jbWRsaW5lX3B5dGhvbl9wYWNrYWdlX25vdF9l
eGlzdHMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCItLXB5YXJncyIsICJ0cGtnd2hhdHYiKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldAorICAg
ICAgICByZXN1bHQuc3RkZXJyLmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIkVSUk9SKmZp
bGUqb3IqcGFja2FnZSpub3QqZm91bmQqIiwKKyAgICAgICAgXSkKKworICAgIEBweXRlc3QubWFy
ay54ZmFpbChyZWFzb249ImRlY2lkZTogZmVhdHVyZSBvciBidWciKQorICAgIGRlZiB0ZXN0X25v
Y2xhc3NfZGlzY292ZXJ5X2lmX25vdF90ZXN0Y2FzZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
dGVzdHBhdGggPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgdW5p
dHRlc3QKKyAgICAgICAgICAgIGNsYXNzIFRlc3RIZWxsbyhvYmplY3QpOgorICAgICAgICAgICAg
ICAgIGRlZiB0ZXN0X2hlbGxvKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgc2Vs
Zi5hdHRyCisKKyAgICAgICAgICAgIGNsYXNzIFJlYWxUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlLCBU
ZXN0SGVsbG8pOgorICAgICAgICAgICAgICAgIGF0dHIgPSA0MgorICAgICAgICAiIiIpCisgICAg
ICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bih0ZXN0cGF0aCkKKyAgICAgICAgcmVwcmVj
LmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF9kb2N0ZXN0X2lkKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VmaWxlKCcudHh0JywgIiIiCisgICAgICAg
ICAgICA+Pj4geD0zCisgICAgICAgICAgICA+Pj4geAorICAgICAgICAgICAgNAorICAgICAgICAi
IiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcmYiKQorICAgICAgICBs
aW5lcyA9IHJlc3VsdC5zdGRvdXQuc3RyKCkuc3BsaXRsaW5lcygpCisgICAgICAgIGZvciBsaW5l
IGluIGxpbmVzOgorICAgICAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCJGQUlMICIpOgorICAg
ICAgICAgICAgICAgIHRlc3RpZCA9IGxpbmVbNTpdLnN0cmlwKCkKKyAgICAgICAgICAgICAgICBi
cmVhaworICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCh0ZXN0aWQsICctcmYnKQor
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgbGluZSwK
KyAgICAgICAgICAgICIqMSBmYWlsZWQqIiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2Nv
cmVfYmFja3dhcmRfY29tcGF0aWJpbGl0eShzZWxmKToKKyAgICAgICAgIiIiVGVzdCBiYWNrd2Fy
ZCBjb21wYXRpYmlsaXR5IGZvciBnZXRfcGx1Z2luX21hbmFnZXIgZnVuY3Rpb24uIFNlZSAjNzg3
LiIiIgorICAgICAgICBpbXBvcnQgX3B5dGVzdC5jb25maWcKKyAgICAgICAgYXNzZXJ0IHR5cGUo
X3B5dGVzdC5jb25maWcuZ2V0X3BsdWdpbl9tYW5hZ2VyKCkpIGlzIF9weXRlc3QuY29uZmlnLlB5
dGVzdFBsdWdpbk1hbmFnZXIKKworICAgIGRlZiB0ZXN0X2hhc19wbHVnaW4oc2VsZiwgcmVxdWVz
dCk6CisgICAgICAgICIiIlRlc3QgaGFzcGx1Z2luIGZ1bmN0aW9uIG9mIHRoZSBwbHVnaW4gbWFu
YWdlciAoIzkzMikuIiIiCisgICAgICAgIGFzc2VydCByZXF1ZXN0LmNvbmZpZy5wbHVnaW5tYW5h
Z2VyLmhhc3BsdWdpbigncHl0aG9uJykKKworCitjbGFzcyBUZXN0RHVyYXRpb25zKG9iamVjdCk6
CisgICAgc291cmNlID0gIiIiCisgICAgICAgIGltcG9ydCB0aW1lCisgICAgICAgIGZyYWcgPSAw
LjAwMgorICAgICAgICBkZWYgdGVzdF9zb21ldGhpbmcoKToKKyAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgZGVmIHRlc3RfMigpOgorICAgICAgICAgICAgdGltZS5zbGVlcChmcmFnKjUpCisgICAg
ICAgIGRlZiB0ZXN0XzEoKToKKyAgICAgICAgICAgIHRpbWUuc2xlZXAoZnJhZykKKyAgICAgICAg
ZGVmIHRlc3RfMygpOgorICAgICAgICAgICAgdGltZS5zbGVlcChmcmFnKjEwKQorICAgICIiIgor
CisgICAgZGVmIHRlc3RfY2FsbHMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZShzZWxmLnNvdXJjZSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
Ii0tZHVyYXRpb25zPTEwIikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXNfcmFuZG9tKFsKKyAgICAgICAgICAgICIqZHVy
YXRpb25zKiIsCisgICAgICAgICAgICAiKmNhbGwqdGVzdF8zKiIsCisgICAgICAgICAgICAiKmNh
bGwqdGVzdF8yKiIsCisgICAgICAgICAgICAiKmNhbGwqdGVzdF8xKiIsCisgICAgICAgIF0pCisK
KyAgICBkZWYgdGVzdF9jYWxsc19zaG93XzIoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZShzZWxmLnNvdXJjZSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QoIi0tZHVyYXRpb25zPTIiKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisg
ICAgICAgIGxpbmVzID0gcmVzdWx0LnN0ZG91dC5nZXRfbGluZXNfYWZ0ZXIoIipzbG93ZXN0KmR1
cmF0aW9ucyoiKQorICAgICAgICBhc3NlcnQgIjQgcGFzc2VkIiBpbiBsaW5lc1syXQorCisgICAg
ZGVmIHRlc3RfY2FsbHNfc2hvd2FsbChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5t
YWtlcHlmaWxlKHNlbGYuc291cmNlKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgiLS1kdXJhdGlvbnM9MCIpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICAg
ICAgZm9yIHggaW4gIjEyMyI6CisgICAgICAgICAgICBmb3IgeSBpbiAnY2FsbCcsIDogICMgJ3Nl
dHVwJywgJ2NhbGwnLCAndGVhcmRvd24nOgorICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIHJl
c3VsdC5zdGRvdXQubGluZXM6CisgICAgICAgICAgICAgICAgICAgIGlmICgidGVzdF8lcyIgJSB4
KSBpbiBsaW5lIGFuZCB5IGluIGxpbmU6CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhawor
ICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIEFzc2VydGlv
bkVycm9yKCJub3QgZm91bmQgJXMgJXMiICUgKHgsIHkpKQorCisgICAgZGVmIHRlc3Rfd2l0aF9k
ZXNlbGVjdGVkKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoc2Vs
Zi5zb3VyY2UpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWR1cmF0aW9u
cz0yIiwgIi1rIHRlc3RfMSIpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqZHVyYXRpb25z
KiIsCisgICAgICAgICAgICAiKmNhbGwqdGVzdF8xKiIsCisgICAgICAgIF0pCisKKyAgICBkZWYg
dGVzdF93aXRoX2ZhaWxpbmdfY29sbGVjdGlvbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKHNlbGYuc291cmNlKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
dGVzdF9jb2xsZWN0ZXJyb3I9IiIieHl6IiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgiLS1kdXJhdGlvbnM9MiIsICItayB0ZXN0XzEiKQorICAgICAgICBhc3NlcnQgcmVz
dWx0LnJldCA9PSAyCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAg
ICAgICAgICAiKkludGVycnVwdGVkOiAxIGVycm9ycyBkdXJpbmcgY29sbGVjdGlvbioiLAorICAg
ICAgICBdKQorICAgICAgICAjIENvbGxlY3Rpb24gZXJyb3JzIGFib3J0IHRlc3QgZXhlY3V0aW9u
LCB0aGVyZWZvcmUgbm8gZHVyYXRpb24gaXMKKyAgICAgICAgIyBvdXRwdXQKKyAgICAgICAgYXNz
ZXJ0ICJkdXJhdGlvbiIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKworICAgIGRlZiB0ZXN0
X3dpdGhfbm90KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoc2Vs
Zi5zb3VyY2UpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItayBub3QgMSIp
CisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKworCitjbGFzcyBUZXN0RHVyYXRpb25X
aXRoRml4dHVyZShvYmplY3QpOgorICAgIHNvdXJjZSA9ICIiIgorICAgICAgICBpbXBvcnQgdGlt
ZQorICAgICAgICBmcmFnID0gMC4wMDEKKyAgICAgICAgZGVmIHNldHVwX2Z1bmN0aW9uKGZ1bmMp
OgorICAgICAgICAgICAgdGltZS5zbGVlcChmcmFnICogMykKKyAgICAgICAgZGVmIHRlc3RfMSgp
OgorICAgICAgICAgICAgdGltZS5zbGVlcChmcmFnKjIpCisgICAgICAgIGRlZiB0ZXN0XzIoKToK
KyAgICAgICAgICAgIHRpbWUuc2xlZXAoZnJhZykKKyAgICAiIiIKKworICAgIGRlZiB0ZXN0X3Nl
dHVwX2Z1bmN0aW9uKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
c2VsZi5zb3VyY2UpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWR1cmF0
aW9ucz0xMCIpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKworICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXNfcmFuZG9tKCIiIgorICAgICAgICAgICAgKmR1cmF0aW9u
cyoKKyAgICAgICAgICAgICogc2V0dXAgKnRlc3RfMSoKKyAgICAgICAgICAgICogY2FsbCAqdGVz
dF8xKgorICAgICAgICAiIiIpCisKKworZGVmIHRlc3RfemlwaW1wb3J0X2hvb2sodGVzdGRpciwg
dG1wZGlyKToKKyAgICAiIiJUZXN0IHBhY2thZ2UgbG9hZGVyIGlzIGJlaW5nIHVzZWQgY29ycmVj
dGx5IChzZWUgIzE4MzcpLiIiIgorICAgIHppcGFwcCA9IHB5dGVzdC5pbXBvcnRvcnNraXAoJ3pp
cGFwcCcpCisgICAgdGVzdGRpci50bXBkaXIuam9pbignYXBwJykuZW5zdXJlKGRpcj0xKQorICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgqKnsKKyAgICAgICAgJ2FwcC9mb28ucHknOiAiIiIKKyAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGRlZiBtYWluKCk6CisgICAgICAgICAg
ICAgICAgcHl0ZXN0Lm1haW4oWyctLXB5YXJnJywgJ2ZvbyddKQorICAgICAgICAiIiIsCisgICAg
fSkKKyAgICB0YXJnZXQgPSB0bXBkaXIuam9pbignZm9vLnppcCcpCisgICAgemlwYXBwLmNyZWF0
ZV9hcmNoaXZlKHN0cih0ZXN0ZGlyLnRtcGRpci5qb2luKCdhcHAnKSksIHN0cih0YXJnZXQpLCBt
YWluPSdmb286bWFpbicpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRob24odGFyZ2V0KQor
ICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICByZXN1bHQuc3RkZXJyLmZubWF0Y2hfbGlu
ZXMoWycqbm90IGZvdW5kKmZvbyonXSkKKyAgICBhc3NlcnQgJ0lOVEVSTkFMRVJST1I+JyBub3Qg
aW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorCisKK2RlZiB0ZXN0X2ltcG9ydF9wbHVnaW5fdW5pY29k
ZV9uYW1lKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgbXlwbHVn
aW49JycsCisgICAgKQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgZGVmIHRl
c3QoKTogcGFzcworICAgICIiIikKKyAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAg
ICAgcHl0ZXN0X3BsdWdpbnMgPSBbdSdteXBsdWdpbiddCisgICAgIiIiKQorICAgIHIgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgpCisgICAgYXNzZXJ0IHIucmV0ID09IDAKKworCitkZWYgdGVzdF9kZWZl
cnJlZF9ob29rX2NoZWNraW5nKHRlc3RkaXIpOgorICAgICIiIgorICAgIENoZWNrIGhvb2tzIGFz
IGxhdGUgYXMgcG9zc2libGUgKCMxODIxKS4KKyAgICAiIiIKKyAgICB0ZXN0ZGlyLnN5c3BhdGhp
bnNlcnQoKQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgqKnsKKyAgICAgICAgJ3BsdWdpbi5weSc6
ICIiIgorICAgICAgICBjbGFzcyBIb29rczoKKyAgICAgICAgICAgIGRlZiBweXRlc3RfbXlfaG9v
ayhzZWxmLCBjb25maWcpOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICBkZWYgcHl0
ZXN0X2NvbmZpZ3VyZShjb25maWcpOgorICAgICAgICAgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIu
YWRkX2hvb2tzcGVjcyhIb29rcykKKyAgICAgICAgIiIiLAorICAgICAgICAnY29uZnRlc3QucHkn
OiAiIiIKKyAgICAgICAgICAgIHB5dGVzdF9wbHVnaW5zID0gWydwbHVnaW4nXQorICAgICAgICAg
ICAgZGVmIHB5dGVzdF9teV9ob29rKGNvbmZpZyk6CisgICAgICAgICAgICAgICAgcmV0dXJuIDQw
CisgICAgICAgICIiIiwKKyAgICAgICAgJ3Rlc3RfZm9vLnB5JzogIiIiCisgICAgICAgICAgICBk
ZWYgdGVzdChyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICBhc3NlcnQgcmVxdWVzdC5jb25maWcu
aG9vay5weXRlc3RfbXlfaG9vayhjb25maWc9cmVxdWVzdC5jb25maWcpID09IFs0MF0KKyAgICAg
ICAgIiIiCisgICAgfSkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsnKiAxIHBhc3NlZCAqJ10pCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL2NvZGUvdGVzdF9jb2RlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9jb2RlL3Rlc3RfY29kZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMDlhOGVmMTlhMDIzYjcwY2M2MGJhNGM4
OGNhN2I4ZjFiMWU3YmYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9j
b2RlL3Rlc3RfY29kZS5weQpAQCAtMCwwICsxLDE5NiBAQAorIyBjb2Rpbmc6IHV0Zi04Citmcm9t
IF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0
aW9uCitpbXBvcnQgc3lzCisKK2ltcG9ydCBfcHl0ZXN0Ll9jb2RlCitpbXBvcnQgcHkKK2ltcG9y
dCBweXRlc3QKK2Zyb20gdGVzdF9leGNpbmZvIGltcG9ydCBUV01vY2sKKworCitkZWYgdGVzdF9u
ZSgpOgorICAgIGNvZGUxID0gX3B5dGVzdC5fY29kZS5Db2RlKGNvbXBpbGUoJ2ZvbyA9ICJiYXIi
JywgJycsICdleGVjJykpCisgICAgYXNzZXJ0IGNvZGUxID09IGNvZGUxCisgICAgY29kZTIgPSBf
cHl0ZXN0Ll9jb2RlLkNvZGUoY29tcGlsZSgnZm9vID0gImJheiInLCAnJywgJ2V4ZWMnKSkKKyAg
ICBhc3NlcnQgY29kZTIgIT0gY29kZTEKKworCitkZWYgdGVzdF9jb2RlX2dpdmVzX2JhY2tfbmFt
ZV9mb3Jfbm90X2V4aXN0aW5nX2ZpbGUoKToKKyAgICBuYW1lID0gJ2FiYy0xMjMnCisgICAgY29f
Y29kZSA9IGNvbXBpbGUoInBhc3NcbiIsIG5hbWUsICdleGVjJykKKyAgICBhc3NlcnQgY29fY29k
ZS5jb19maWxlbmFtZSA9PSBuYW1lCisgICAgY29kZSA9IF9weXRlc3QuX2NvZGUuQ29kZShjb19j
b2RlKQorICAgIGFzc2VydCBzdHIoY29kZS5wYXRoKSA9PSBuYW1lCisgICAgYXNzZXJ0IGNvZGUu
ZnVsbHNvdXJjZSBpcyBOb25lCisKKworZGVmIHRlc3RfY29kZV93aXRoX2NsYXNzKCk6CisgICAg
Y2xhc3MgQShvYmplY3QpOgorICAgICAgICBwYXNzCisgICAgcHl0ZXN0LnJhaXNlcyhUeXBlRXJy
b3IsICJfcHl0ZXN0Ll9jb2RlLkNvZGUoQSkiKQorCisKK2lmIFRydWU6CisgICAgZGVmIHgoKToK
KyAgICAgICAgcGFzcworCisKK2RlZiB0ZXN0X2NvZGVfZnVsbHNvdXJjZSgpOgorICAgIGNvZGUg
PSBfcHl0ZXN0Ll9jb2RlLkNvZGUoeCkKKyAgICBmdWxsID0gY29kZS5mdWxsc291cmNlCisgICAg
YXNzZXJ0ICd0ZXN0X2NvZGVfZnVsbHNvdXJjZSgpJyBpbiBzdHIoZnVsbCkKKworCitkZWYgdGVz
dF9jb2RlX3NvdXJjZSgpOgorICAgIGNvZGUgPSBfcHl0ZXN0Ll9jb2RlLkNvZGUoeCkKKyAgICBz
cmMgPSBjb2RlLnNvdXJjZSgpCisgICAgZXhwZWN0ZWQgPSAiIiJkZWYgeCgpOgorICAgIHBhc3Mi
IiIKKyAgICBhc3NlcnQgc3RyKHNyYykgPT0gZXhwZWN0ZWQKKworCitkZWYgdGVzdF9mcmFtZV9n
ZXRzb3VyY2VsaW5lbm9fbXlzZWxmKCk6CisgICAgZGVmIGZ1bmMoKToKKyAgICAgICAgcmV0dXJu
IHN5cy5fZ2V0ZnJhbWUoMCkKKyAgICBmID0gZnVuYygpCisgICAgZiA9IF9weXRlc3QuX2NvZGUu
RnJhbWUoZikKKyAgICBzb3VyY2UsIGxpbmVubyA9IGYuY29kZS5mdWxsc291cmNlLCBmLmxpbmVu
bworICAgIGFzc2VydCBzb3VyY2VbbGluZW5vXS5zdGFydHN3aXRoKCIgICAgICAgIHJldHVybiBz
eXMuX2dldGZyYW1lKDApIikKKworCitkZWYgdGVzdF9nZXRzdGF0ZW1lbnRfZW1wdHlfZnVsbHNv
dXJjZSgpOgorICAgIGRlZiBmdW5jKCk6CisgICAgICAgIHJldHVybiBzeXMuX2dldGZyYW1lKDAp
CisgICAgZiA9IGZ1bmMoKQorICAgIGYgPSBfcHl0ZXN0Ll9jb2RlLkZyYW1lKGYpCisgICAgcHJv
cCA9IGYuY29kZS5fX2NsYXNzX18uZnVsbHNvdXJjZQorICAgIHRyeToKKyAgICAgICAgZi5jb2Rl
Ll9fY2xhc3NfXy5mdWxsc291cmNlID0gTm9uZQorICAgICAgICBhc3NlcnQgZi5zdGF0ZW1lbnQg
PT0gX3B5dGVzdC5fY29kZS5Tb3VyY2UoIiIpCisgICAgZmluYWxseToKKyAgICAgICAgZi5jb2Rl
Ll9fY2xhc3NfXy5mdWxsc291cmNlID0gcHJvcAorCisKK2RlZiB0ZXN0X2NvZGVfZnJvbV9mdW5j
KCk6CisgICAgY28gPSBfcHl0ZXN0Ll9jb2RlLkNvZGUodGVzdF9mcmFtZV9nZXRzb3VyY2VsaW5l
bm9fbXlzZWxmKQorICAgIGFzc2VydCBjby5maXJzdGxpbmVubworICAgIGFzc2VydCBjby5wYXRo
CisKKworZGVmIHRlc3RfdW5pY29kZV9oYW5kbGluZygpOgorICAgIHZhbHVlID0gcHkuYnVpbHRp
bi5fdG90ZXh0KCdceGM0XHg4NVx4YzRceDg3XG4nLCAndXRmLTgnKS5lbmNvZGUoJ3V0ZjgnKQor
CisgICAgZGVmIGYoKToKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKHZhbHVlKQorCisgICAgZXhj
aW5mbyA9IHB5dGVzdC5yYWlzZXMoRXhjZXB0aW9uLCBmKQorICAgIHN0cihleGNpbmZvKQorICAg
IGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPCAzOgorICAgICAgICB1bmljb2RlKGV4Y2luZm8pCisK
KworQHB5dGVzdC5tYXJrLnNraXBpZihzeXMudmVyc2lvbl9pbmZvWzBdID49IDMsIHJlYXNvbj0n
cHl0aG9uIDIgb25seSBpc3N1ZScpCitkZWYgdGVzdF91bmljb2RlX2hhbmRsaW5nX3N5bnRheF9l
cnJvcigpOgorICAgIHZhbHVlID0gcHkuYnVpbHRpbi5fdG90ZXh0KCdceGM0XHg4NVx4YzRceDg3
XG4nLCAndXRmLTgnKS5lbmNvZGUoJ3V0ZjgnKQorCisgICAgZGVmIGYoKToKKyAgICAgICAgcmFp
c2UgU3ludGF4RXJyb3IoJ2ludmFsaWQgc3ludGF4JywgKE5vbmUsIDEsIDMsIHZhbHVlKSkKKwor
ICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKEV4Y2VwdGlvbiwgZikKKyAgICBzdHIoZXhjaW5m
bykKKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdIDwgMzoKKyAgICAgICAgdW5pY29kZShleGNp
bmZvKQorCisKK2RlZiB0ZXN0X2NvZGVfZ2V0YXJncygpOgorICAgIGRlZiBmMSh4KToKKyAgICAg
ICAgcGFzcworICAgIGMxID0gX3B5dGVzdC5fY29kZS5Db2RlKGYxKQorICAgIGFzc2VydCBjMS5n
ZXRhcmdzKHZhcj1UcnVlKSA9PSAoJ3gnLCkKKworICAgIGRlZiBmMih4LCAqeSk6CisgICAgICAg
IHBhc3MKKyAgICBjMiA9IF9weXRlc3QuX2NvZGUuQ29kZShmMikKKyAgICBhc3NlcnQgYzIuZ2V0
YXJncyh2YXI9VHJ1ZSkgPT0gKCd4JywgJ3knKQorCisgICAgZGVmIGYzKHgsICoqeik6CisgICAg
ICAgIHBhc3MKKyAgICBjMyA9IF9weXRlc3QuX2NvZGUuQ29kZShmMykKKyAgICBhc3NlcnQgYzMu
Z2V0YXJncyh2YXI9VHJ1ZSkgPT0gKCd4JywgJ3onKQorCisgICAgZGVmIGY0KHgsICp5LCAqKnop
OgorICAgICAgICBwYXNzCisgICAgYzQgPSBfcHl0ZXN0Ll9jb2RlLkNvZGUoZjQpCisgICAgYXNz
ZXJ0IGM0LmdldGFyZ3ModmFyPVRydWUpID09ICgneCcsICd5JywgJ3onKQorCisKK2RlZiB0ZXN0
X2ZyYW1lX2dldGFyZ3MoKToKKyAgICBkZWYgZjEoeCk6CisgICAgICAgIHJldHVybiBzeXMuX2dl
dGZyYW1lKDApCisgICAgZnIxID0gX3B5dGVzdC5fY29kZS5GcmFtZShmMSgnYScpKQorICAgIGFz
c2VydCBmcjEuZ2V0YXJncyh2YXI9VHJ1ZSkgPT0gWygneCcsICdhJyldCisKKyAgICBkZWYgZjIo
eCwgKnkpOgorICAgICAgICByZXR1cm4gc3lzLl9nZXRmcmFtZSgwKQorICAgIGZyMiA9IF9weXRl
c3QuX2NvZGUuRnJhbWUoZjIoJ2EnLCAnYicsICdjJykpCisgICAgYXNzZXJ0IGZyMi5nZXRhcmdz
KHZhcj1UcnVlKSA9PSBbKCd4JywgJ2EnKSwgKCd5JywgKCdiJywgJ2MnKSldCisKKyAgICBkZWYg
ZjMoeCwgKip6KToKKyAgICAgICAgcmV0dXJuIHN5cy5fZ2V0ZnJhbWUoMCkKKyAgICBmcjMgPSBf
cHl0ZXN0Ll9jb2RlLkZyYW1lKGYzKCdhJywgYj0nYycpKQorICAgIGFzc2VydCBmcjMuZ2V0YXJn
cyh2YXI9VHJ1ZSkgPT0gWygneCcsICdhJyksICgneicsIHsnYic6ICdjJ30pXQorCisgICAgZGVm
IGY0KHgsICp5LCAqKnopOgorICAgICAgICByZXR1cm4gc3lzLl9nZXRmcmFtZSgwKQorICAgIGZy
NCA9IF9weXRlc3QuX2NvZGUuRnJhbWUoZjQoJ2EnLCAnYicsIGM9J2QnKSkKKyAgICBhc3NlcnQg
ZnI0LmdldGFyZ3ModmFyPVRydWUpID09IFsoJ3gnLCAnYScpLCAoJ3knLCAoJ2InLCkpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgneicsIHsnYyc6ICdkJ30pXQorCisK
K2NsYXNzIFRlc3RFeGNlcHRpb25JbmZvKG9iamVjdCk6CisKKyAgICBkZWYgdGVzdF9iYWRfZ2V0
c291cmNlKHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBpZiBGYWxzZToKKyAgICAg
ICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGFzc2Vy
dCBGYWxzZQorICAgICAgICBleGNlcHQgQXNzZXJ0aW9uRXJyb3I6CisgICAgICAgICAgICBleGNp
ID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkKKyAgICAgICAgYXNzZXJ0IGV4Y2kuZ2V0
cmVwcigpCisKKworY2xhc3MgVGVzdFRyYWNlYmFja0VudHJ5KG9iamVjdCk6CisKKyAgICBkZWYg
dGVzdF9nZXRzb3VyY2Uoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIEZhbHNl
OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgYXNzZXJ0IEZhbHNlCisgICAgICAgIGV4Y2VwdCBBc3NlcnRpb25FcnJvcjoKKyAgICAgICAg
ICAgIGV4Y2kgPSBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8oKQorICAgICAgICBlbnRyeSA9
IGV4Y2kudHJhY2ViYWNrWzBdCisgICAgICAgIHNvdXJjZSA9IGVudHJ5LmdldHNvdXJjZSgpCisg
ICAgICAgIGFzc2VydCBsZW4oc291cmNlKSA9PSA2CisgICAgICAgIGFzc2VydCAnYXNzZXJ0IEZh
bHNlJyBpbiBzb3VyY2VbNV0KKworCitjbGFzcyBUZXN0UmVwckZ1bmNBcmdzKG9iamVjdCk6CisK
KyAgICBkZWYgdGVzdF9ub3RfcmFpc2VfZXhjZXB0aW9uX3dpdGhfbWl4ZWRfZW5jb2Rpbmcoc2Vs
Zik6CisgICAgICAgIGZyb20gX3B5dGVzdC5fY29kZS5jb2RlIGltcG9ydCBSZXByRnVuY0FyZ3MK
KworICAgICAgICB0dyA9IFRXTW9jaygpCisKKyAgICAgICAgYXJncyA9IFsKKyAgICAgICAgICAg
ICgndW5pY29kZV9zdHJpbmcnLCB1IlPDo28gUGF1bG8iKSwKKyAgICAgICAgICAgICgndXRmOF9z
dHJpbmcnLCAnU1x4YzNceGEzbyBQYXVsbycpLAorICAgICAgICBdCisKKyAgICAgICAgciA9IFJl
cHJGdW5jQXJncyhhcmdzKQorICAgICAgICByLnRvdGVybWluYWwodHcpCisgICAgICAgIGlmIHN5
cy52ZXJzaW9uX2luZm9bMF0gPj0gMzoKKyAgICAgICAgICAgIGFzc2VydCB0dy5saW5lc1swXSA9
PSAndW5pY29kZV9zdHJpbmcgPSBTw6NvIFBhdWxvLCB1dGY4X3N0cmluZyA9IFPDg8KjbyBQYXVs
bycKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCB0dy5saW5lc1swXSA9PSAndW5p
Y29kZV9zdHJpbmcgPSBTw6NvIFBhdWxvLCB1dGY4X3N0cmluZyA9IFPDo28gUGF1bG8nCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2NvZGUvdGVzdF9leGNpbmZvLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy9jb2RlL3Rlc3RfZXhjaW5mby5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNGRiOGZmYTE4
OTgzYWM2ODI5MmM1MTQwNjFhMDQ4NDkwMTgwZjc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy9jb2RlL3Rlc3RfZXhjaW5mby5weQpAQCAtMCwwICsxLDEyNDUgQEAKKyMg
LSotIGNvZGluZzogdXRmLTggLSotCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2lt
cG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCisKK2ltcG9ydCBvcGVyYXRvcgoraW1wb3J0
IF9weXRlc3QKK2ltcG9ydCBweQoraW1wb3J0IHB5dGVzdAorZnJvbSBfcHl0ZXN0Ll9jb2RlLmNv
ZGUgaW1wb3J0ICgKKyAgICBFeGNlcHRpb25JbmZvLAorICAgIEZvcm1hdHRlZEV4Y2luZm8sCisg
ICAgUmVwckV4Y2VwdGlvbkluZm8sCisgICAgRXhjZXB0aW9uQ2hhaW5SZXByKQorCitmcm9tIHRl
c3Rfc291cmNlIGltcG9ydCBhc3Rvbmx5CisKK3RyeToKKyAgICBpbXBvcnQgaW1wb3J0bGliCitl
eGNlcHQgSW1wb3J0RXJyb3I6CisgICAgaW52YWxpZGF0ZV9pbXBvcnRfY2FjaGVzID0gTm9uZQor
ZWxzZToKKyAgICBpbnZhbGlkYXRlX2ltcG9ydF9jYWNoZXMgPSBnZXRhdHRyKGltcG9ydGxpYiwg
ImludmFsaWRhdGVfY2FjaGVzIiwgTm9uZSkKKworcXVldWUgPSBweS5idWlsdGluLl90cnlpbXBv
cnQoJ3F1ZXVlJywgJ1F1ZXVlJykKKworZmFpbHNvbmp5dGhvbiA9IHB5dGVzdC5tYXJrLnhmYWls
KCJzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnamF2YScpIikKKworcHl0ZXN0X3ZlcnNpb25faW5m
byA9IHR1cGxlKG1hcChpbnQsIHB5dGVzdC5fX3ZlcnNpb25fXy5zcGxpdCgiLiIpWzozXSkpCisK
KworY2xhc3MgVFdNb2NrKG9iamVjdCk6CisgICAgV1JJVEUgPSBvYmplY3QoKQorCisgICAgZGVm
IF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLmxpbmVzID0gW10KKyAgICAgICAgc2VsZi5p
c193cml0aW5nID0gRmFsc2UKKworICAgIGRlZiBzZXAoc2VsZiwgc2VwLCBsaW5lPU5vbmUpOgor
ICAgICAgICBzZWxmLmxpbmVzLmFwcGVuZCgoc2VwLCBsaW5lKSkKKworICAgIGRlZiB3cml0ZShz
ZWxmLCBtc2csICoqa3cpOgorICAgICAgICBzZWxmLmxpbmVzLmFwcGVuZCgoVFdNb2NrLldSSVRF
LCBtc2cpKQorCisgICAgZGVmIGxpbmUoc2VsZiwgbGluZSwgKiprdyk6CisgICAgICAgIHNlbGYu
bGluZXMuYXBwZW5kKGxpbmUpCisKKyAgICBkZWYgbWFya3VwKHNlbGYsIHRleHQsICoqa3cpOgor
ICAgICAgICByZXR1cm4gdGV4dAorCisgICAgZGVmIGdldF93cml0ZV9tc2coc2VsZiwgaWR4KToK
KyAgICAgICAgZmxhZywgbXNnID0gc2VsZi5saW5lc1tpZHhdCisgICAgICAgIGFzc2VydCBmbGFn
ID09IFRXTW9jay5XUklURQorICAgICAgICByZXR1cm4gbXNnCisKKyAgICBmdWxsd2lkdGggPSA4
MAorCisKK2RlZiB0ZXN0X2V4Y2luZm9fc2ltcGxlKCk6CisgICAgdHJ5OgorICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yCisgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgIGluZm8gPSBfcHl0
ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8oKQorICAgIGFzc2VydCBpbmZvLnR5cGUgPT0gVmFsdWVF
cnJvcgorCisKK2RlZiB0ZXN0X2V4Y2luZm9fZ2V0c3RhdGVtZW50KCk6CisgICAgZGVmIGcoKToK
KyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgorCisgICAgZGVmIGYoKToKKyAgICAgICAgZygpCisK
KyAgICB0cnk6CisgICAgICAgIGYoKQorICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICBl
eGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkKKyAgICBsaW5lbnVtYmVycyA9
IFtfcHl0ZXN0Ll9jb2RlLmdldHJhd2NvZGUoZikuY29fZmlyc3RsaW5lbm8gLSAxICsgNCwKKyAg
ICAgICAgICAgICAgICAgICBfcHl0ZXN0Ll9jb2RlLmdldHJhd2NvZGUoZikuY29fZmlyc3RsaW5l
bm8gLSAxICsgMSwKKyAgICAgICAgICAgICAgICAgICBfcHl0ZXN0Ll9jb2RlLmdldHJhd2NvZGUo
ZykuY29fZmlyc3RsaW5lbm8gLSAxICsgMSwgXQorICAgIHZhbHVlcyA9IGxpc3QoZXhjaW5mby50
cmFjZWJhY2spCisgICAgZm91bmRsaW5lbnVtYmVycyA9IFt4LmxpbmVubyBmb3IgeCBpbiB2YWx1
ZXNdCisgICAgYXNzZXJ0IGZvdW5kbGluZW51bWJlcnMgPT0gbGluZW51bWJlcnMKKyAgICAjIGZv
ciB4IGluIGluZm86CisgICAgIyAgICBwcmludCAiJXM6JWQgICVzIiAlKHgucGF0aC5yZWx0byhy
b290KSwgeC5saW5lbm8sIHguc3RhdGVtZW50KQorICAgICMgeHh4CisKKyMgdGVzdGNoYWluIGZv
ciBnZXRlbnRyaWVzIHRlc3QgYmVsb3cKKworCitkZWYgZigpOgorICAgICMKKyAgICByYWlzZSBW
YWx1ZUVycm9yCisgICAgIworCisKK2RlZiBnKCk6CisgICAgIworICAgIF9fdHJhY2ViYWNraGlk
ZV9fID0gVHJ1ZQorICAgIGYoKQorICAgICMKKworCitkZWYgaCgpOgorICAgICMKKyAgICBnKCkK
KyAgICAjCisKKworY2xhc3MgVGVzdFRyYWNlYmFja19mX2dfaChvYmplY3QpOgorICAgIGRlZiBz
ZXR1cF9tZXRob2Qoc2VsZiwgbWV0aG9kKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaCgp
CisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgc2VsZi5leGNpbmZvID0g
X3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkKKworICAgIGRlZiB0ZXN0X3RyYWNlYmFja19l
bnRyaWVzKHNlbGYpOgorICAgICAgICB0YiA9IHNlbGYuZXhjaW5mby50cmFjZWJhY2sKKyAgICAg
ICAgZW50cmllcyA9IGxpc3QodGIpCisgICAgICAgIGFzc2VydCBsZW4odGIpID09IDQgICMgbWF5
YmUgZnJhZ2lsZSB0ZXN0CisgICAgICAgIGFzc2VydCBsZW4oZW50cmllcykgPT0gNCAgIyBtYXli
ZSBmcmFnaWxlIHRlc3QKKyAgICAgICAgbmFtZXMgPSBbJ2YnLCAnZycsICdoJ10KKyAgICAgICAg
Zm9yIGVudHJ5IGluIGVudHJpZXM6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAg
bmFtZXMucmVtb3ZlKGVudHJ5LmZyYW1lLmNvZGUubmFtZSkKKyAgICAgICAgICAgIGV4Y2VwdCBW
YWx1ZUVycm9yOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgYXNzZXJ0IG5vdCBuYW1l
cworCisgICAgZGVmIHRlc3RfdHJhY2ViYWNrX2VudHJ5X2dldHNvdXJjZShzZWxmKToKKyAgICAg
ICAgdGIgPSBzZWxmLmV4Y2luZm8udHJhY2ViYWNrCisgICAgICAgIHMgPSBzdHIodGJbLTFdLmdl
dHNvdXJjZSgpKQorICAgICAgICBhc3NlcnQgcy5zdGFydHN3aXRoKCJkZWYgZigpOiIpCisgICAg
ICAgIGFzc2VydCBzLmVuZHN3aXRoKCJyYWlzZSBWYWx1ZUVycm9yIikKKworICAgIEBhc3Rvbmx5
CisgICAgQGZhaWxzb25qeXRob24KKyAgICBkZWYgdGVzdF90cmFjZWJhY2tfZW50cnlfZ2V0c291
cmNlX2luX2NvbnN0cnVjdChzZWxmKToKKyAgICAgICAgc291cmNlID0gX3B5dGVzdC5fY29kZS5T
b3VyY2UoIiIiXAorICAgICAgICAgICAgZGVmIHh5eigpOgorICAgICAgICAgICAgICAgIHRyeToK
KyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgorICAgICAgICAgICAgICAgIGV4
Y2VwdCBzb21lbm9uYW1lOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICB4
eXooKQorICAgICAgICAiIiIpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGV4ZWMoc291cmNl
LmNvbXBpbGUoKSkKKyAgICAgICAgZXhjZXB0IE5hbWVFcnJvcjoKKyAgICAgICAgICAgIHRiID0g
X3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkudHJhY2ViYWNrCisgICAgICAgICAgICBwcmlu
dCh0YlstMV0uZ2V0c291cmNlKCkpCisgICAgICAgICAgICBzID0gc3RyKHRiWy0xXS5nZXRzb3Vy
Y2UoKSkKKyAgICAgICAgICAgIGFzc2VydCBzLnN0YXJ0c3dpdGgoImRlZiB4eXooKTpcbiAgICB0
cnk6IikKKyAgICAgICAgICAgIGFzc2VydCBzLnN0cmlwKCkuZW5kc3dpdGgoImV4Y2VwdCBzb21l
bm9uYW1lOiIpCisKKyAgICBkZWYgdGVzdF90cmFjZWJhY2tfY3V0KHNlbGYpOgorICAgICAgICBj
byA9IF9weXRlc3QuX2NvZGUuQ29kZShmKQorICAgICAgICBwYXRoLCBmaXJzdGxpbmVubyA9IGNv
LnBhdGgsIGNvLmZpcnN0bGluZW5vCisgICAgICAgIHRyYWNlYmFjayA9IHNlbGYuZXhjaW5mby50
cmFjZWJhY2sKKyAgICAgICAgbmV3dHJhY2ViYWNrID0gdHJhY2ViYWNrLmN1dChwYXRoPXBhdGgs
IGZpcnN0bGluZW5vPWZpcnN0bGluZW5vKQorICAgICAgICBhc3NlcnQgbGVuKG5ld3RyYWNlYmFj
aykgPT0gMQorICAgICAgICBuZXd0cmFjZWJhY2sgPSB0cmFjZWJhY2suY3V0KHBhdGg9cGF0aCwg
bGluZW5vPWZpcnN0bGluZW5vICsgMikKKyAgICAgICAgYXNzZXJ0IGxlbihuZXd0cmFjZWJhY2sp
ID09IDEKKworICAgIGRlZiB0ZXN0X3RyYWNlYmFja19jdXRfZXhjbHVkZXBhdGgoc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiBmKCk6IHJhaXNlIFZh
bHVlRXJyb3IiKQorICAgICAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCAi
cC5weWltcG9ydCgpLmYoKSIpCisgICAgICAgIGJhc2VkaXIgPSBweS5wYXRoLmxvY2FsKHB5dGVz
dC5fX2ZpbGVfXykuZGlycGF0aCgpCisgICAgICAgIG5ld3RyYWNlYmFjayA9IGV4Y2luZm8udHJh
Y2ViYWNrLmN1dChleGNsdWRlcGF0aD1iYXNlZGlyKQorICAgICAgICBmb3IgeCBpbiBuZXd0cmFj
ZWJhY2s6CisgICAgICAgICAgICBpZiBoYXNhdHRyKHgsICdwYXRoJyk6CisgICAgICAgICAgICAg
ICAgYXNzZXJ0IG5vdCBweS5wYXRoLmxvY2FsKHgucGF0aCkucmVsdG8oYmFzZWRpcikKKyAgICAg
ICAgYXNzZXJ0IG5ld3RyYWNlYmFja1stMV0uZnJhbWUuY29kZS5wYXRoID09IHAKKworICAgIGRl
ZiB0ZXN0X3RyYWNlYmFja19maWx0ZXIoc2VsZik6CisgICAgICAgIHRyYWNlYmFjayA9IHNlbGYu
ZXhjaW5mby50cmFjZWJhY2sKKyAgICAgICAgbnRyYWNlYmFjayA9IHRyYWNlYmFjay5maWx0ZXIo
KQorICAgICAgICBhc3NlcnQgbGVuKG50cmFjZWJhY2spID09IGxlbih0cmFjZWJhY2spIC0gMQor
CisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd0cmFjZWJhY2toaWRlLCBtYXRjaGluZycs
IFsKKyAgICAgICAgKGxhbWJkYSBpbmZvOiBUcnVlLCBUcnVlKSwKKyAgICAgICAgKGxhbWJkYSBp
bmZvOiBGYWxzZSwgRmFsc2UpLAorICAgICAgICAob3BlcmF0b3IubWV0aG9kY2FsbGVyKCdlcnJp
c2luc3RhbmNlJywgVmFsdWVFcnJvciksIFRydWUpLAorICAgICAgICAob3BlcmF0b3IubWV0aG9k
Y2FsbGVyKCdlcnJpc2luc3RhbmNlJywgSW5kZXhFcnJvciksIEZhbHNlKSwKKyAgICBdKQorICAg
IGRlZiB0ZXN0X3RyYWNlYmFja19maWx0ZXJfc2VsZWN0aXZlKHNlbGYsIHRyYWNlYmFja2hpZGUs
IG1hdGNoaW5nKToKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgICMKKyAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IKKyAgICAgICAgICAgICMKKworICAgICAgICBkZWYgZygpOgorICAg
ICAgICAgICAgIworICAgICAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSB0cmFjZWJhY2toaWRl
CisgICAgICAgICAgICBmKCkKKyAgICAgICAgICAgICMKKworICAgICAgICBkZWYgaCgpOgorICAg
ICAgICAgICAgIworICAgICAgICAgICAgZygpCisgICAgICAgICAgICAjCisKKyAgICAgICAgZXhj
aW5mbyA9IHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgaCkKKyAgICAgICAgdHJhY2ViYWNrID0g
ZXhjaW5mby50cmFjZWJhY2sKKyAgICAgICAgbnRyYWNlYmFjayA9IHRyYWNlYmFjay5maWx0ZXIo
KQorICAgICAgICBwcmludCgnb2xkOiB7MCFyfScuZm9ybWF0KHRyYWNlYmFjaykpCisgICAgICAg
IHByaW50KCduZXc6IHswIXJ9Jy5mb3JtYXQobnRyYWNlYmFjaykpCisKKyAgICAgICAgaWYgbWF0
Y2hpbmc6CisgICAgICAgICAgICBhc3NlcnQgbGVuKG50cmFjZWJhY2spID09IGxlbih0cmFjZWJh
Y2spIC0gMgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyAtMSBiZWNhdXNlIG9mIHRoZSBf
X3RyYWNlYmFja2hpZGVfXyBpbiBweXRlc3QucmFpc2VzCisgICAgICAgICAgICBhc3NlcnQgbGVu
KG50cmFjZWJhY2spID09IGxlbih0cmFjZWJhY2spIC0gMQorCisgICAgZGVmIHRlc3RfdHJhY2Vi
YWNrX3JlY3Vyc2lvbl9pbmRleChzZWxmKToKKyAgICAgICAgZGVmIGYobik6CisgICAgICAgICAg
ICBpZiBuIDwgMTA6CisgICAgICAgICAgICAgICAgbiArPSAxCisgICAgICAgICAgICBmKG4pCisg
ICAgICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvciwgZiwgOCkKKyAgICAg
ICAgdHJhY2ViYWNrID0gZXhjaW5mby50cmFjZWJhY2sKKyAgICAgICAgcmVjaW5kZXggPSB0cmFj
ZWJhY2sucmVjdXJzaW9uaW5kZXgoKQorICAgICAgICBhc3NlcnQgcmVjaW5kZXggPT0gMworCisg
ICAgZGVmIHRlc3RfdHJhY2ViYWNrX29ubHlfc3BlY2lmaWNfcmVjdXJzaW9uX2Vycm9ycyhzZWxm
LCBtb25rZXlwYXRjaCk6CisgICAgICAgIGRlZiBmKG4pOgorICAgICAgICAgICAgaWYgbiA9PSAw
OgorICAgICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigiaGVsbG8iKQorICAgICAgICAg
ICAgZihuIC0gMSkKKworICAgICAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhSdW50aW1lRXJy
b3IsIGYsIDEwMCkKKyAgICAgICAgbW9ua2V5cGF0Y2guZGVsYXR0cihleGNpbmZvLnRyYWNlYmFj
ay5fX2NsYXNzX18sICJyZWN1cnNpb25pbmRleCIpCisgICAgICAgIHJlcHIgPSBleGNpbmZvLmdl
dHJlcHIoKQorICAgICAgICBhc3NlcnQgIlJ1bnRpbWVFcnJvcjogaGVsbG8iIGluIHN0cihyZXBy
LnJlcHJjcmFzaCkKKworICAgIGRlZiB0ZXN0X3RyYWNlYmFja19ub19yZWN1cnNpb25faW5kZXgo
c2VsZik6CisgICAgICAgIGRlZiBkb19zdHVmZigpOgorICAgICAgICAgICAgcmFpc2UgUnVudGlt
ZUVycm9yCisKKyAgICAgICAgZGVmIHJlcmFpc2VfbWUoKToKKyAgICAgICAgICAgIGltcG9ydCBz
eXMKKyAgICAgICAgICAgIGV4YywgdmFsLCB0YiA9IHN5cy5leGNfaW5mbygpCisgICAgICAgICAg
ICBweS5idWlsdGluLl9yZXJhaXNlKGV4YywgdmFsLCB0YikKKworICAgICAgICBkZWYgZihuKToK
KyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBkb19zdHVmZigpCisgICAgICAgICAg
ICBleGNlcHQ6ICAjIG5vcWEKKyAgICAgICAgICAgICAgICByZXJhaXNlX21lKCkKKworICAgICAg
ICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhSdW50aW1lRXJyb3IsIGYsIDgpCisgICAgICAgIHRy
YWNlYmFjayA9IGV4Y2luZm8udHJhY2ViYWNrCisgICAgICAgIHJlY2luZGV4ID0gdHJhY2ViYWNr
LnJlY3Vyc2lvbmluZGV4KCkKKyAgICAgICAgYXNzZXJ0IHJlY2luZGV4IGlzIE5vbmUKKworICAg
IGRlZiB0ZXN0X3RyYWNlYmFja19tZXNzeV9yZWN1cnNpb24oc2VsZik6CisgICAgICAgICMgWFhY
OiBzaW1wbGlmaWVkIGxvY2FsbHkgdGVzdGFibGUgdmVyc2lvbgorICAgICAgICBkZWNvcmF0b3Ig
PSBweXRlc3QuaW1wb3J0b3Jza2lwKCdkZWNvcmF0b3InKS5kZWNvcmF0b3IKKworICAgICAgICBk
ZWYgbG9nKGYsICprLCAqKmt3KToKKyAgICAgICAgICAgIHByaW50KCclcyAlcycgJSAoaywga3cp
KQorICAgICAgICAgICAgZigqaywgKiprdykKKyAgICAgICAgbG9nID0gZGVjb3JhdG9yKGxvZykK
KworICAgICAgICBkZWYgZmFpbCgpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignJykK
KworICAgICAgICBmYWlsID0gbG9nKGxvZyhmYWlsKSkKKworICAgICAgICBleGNpbmZvID0gcHl0
ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBmYWlsKQorICAgICAgICBhc3NlcnQgZXhjaW5mby50cmFj
ZWJhY2sucmVjdXJzaW9uaW5kZXgoKSBpcyBOb25lCisKKyAgICBkZWYgdGVzdF90cmFjZWJhY2tf
Z2V0Y3Jhc2hlbnRyeShzZWxmKToKKyAgICAgICAgZGVmIGkoKToKKyAgICAgICAgICAgIF9fdHJh
Y2ViYWNraGlkZV9fID0gVHJ1ZQorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgorCisgICAg
ICAgIGRlZiBoKCk6CisgICAgICAgICAgICBpKCkKKworICAgICAgICBkZWYgZygpOgorICAgICAg
ICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgICAgICAgICBoKCkKKworICAgICAg
ICBkZWYgZigpOgorICAgICAgICAgICAgZygpCisKKyAgICAgICAgZXhjaW5mbyA9IHB5dGVzdC5y
YWlzZXMoVmFsdWVFcnJvciwgZikKKyAgICAgICAgdGIgPSBleGNpbmZvLnRyYWNlYmFjaworICAg
ICAgICBlbnRyeSA9IHRiLmdldGNyYXNoZW50cnkoKQorICAgICAgICBjbyA9IF9weXRlc3QuX2Nv
ZGUuQ29kZShoKQorICAgICAgICBhc3NlcnQgZW50cnkuZnJhbWUuY29kZS5wYXRoID09IGNvLnBh
dGgKKyAgICAgICAgYXNzZXJ0IGVudHJ5LmxpbmVubyA9PSBjby5maXJzdGxpbmVubyArIDEKKyAg
ICAgICAgYXNzZXJ0IGVudHJ5LmZyYW1lLmNvZGUubmFtZSA9PSAnaCcKKworICAgIGRlZiB0ZXN0
X3RyYWNlYmFja19nZXRjcmFzaGVudHJ5X2VtcHR5KHNlbGYpOgorICAgICAgICBkZWYgZygpOgor
ICAgICAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCisgICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yCisKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIF9fdHJhY2ViYWNraGlk
ZV9fID0gVHJ1ZQorICAgICAgICAgICAgZygpCisKKyAgICAgICAgZXhjaW5mbyA9IHB5dGVzdC5y
YWlzZXMoVmFsdWVFcnJvciwgZikKKyAgICAgICAgdGIgPSBleGNpbmZvLnRyYWNlYmFjaworICAg
ICAgICBlbnRyeSA9IHRiLmdldGNyYXNoZW50cnkoKQorICAgICAgICBjbyA9IF9weXRlc3QuX2Nv
ZGUuQ29kZShnKQorICAgICAgICBhc3NlcnQgZW50cnkuZnJhbWUuY29kZS5wYXRoID09IGNvLnBh
dGgKKyAgICAgICAgYXNzZXJ0IGVudHJ5LmxpbmVubyA9PSBjby5maXJzdGxpbmVubyArIDIKKyAg
ICAgICAgYXNzZXJ0IGVudHJ5LmZyYW1lLmNvZGUubmFtZSA9PSAnZycKKworCitkZWYgdGVzdF9l
eGNpbmZvX2V4Y29ubHkoKToKKyAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9y
LCBoKQorICAgIGFzc2VydCBleGNpbmZvLmV4Y29ubHkoKS5zdGFydHN3aXRoKCdWYWx1ZUVycm9y
JykKKyAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJyYWlzZSBWYWx1ZUVycm9yKCdoZWxsb1xcbndvcmxkJykiKQorICAg
IG1zZyA9IGV4Y2luZm8uZXhjb25seSh0cnlzaG9ydD1UcnVlKQorICAgIGFzc2VydCBtc2cuc3Rh
cnRzd2l0aCgnVmFsdWVFcnJvcicpCisgICAgYXNzZXJ0IG1zZy5lbmRzd2l0aCgid29ybGQiKQor
CisKK2RlZiB0ZXN0X2V4Y2luZm9fcmVwcigpOgorICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2Vz
KFZhbHVlRXJyb3IsIGgpCisgICAgcyA9IHJlcHIoZXhjaW5mbykKKyAgICBhc3NlcnQgcyA9PSAi
PEV4Y2VwdGlvbkluZm8gVmFsdWVFcnJvciB0Ymxlbj00PiIKKworCitkZWYgdGVzdF9leGNpbmZv
X3N0cigpOgorICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIGgpCisgICAg
cyA9IHN0cihleGNpbmZvKQorICAgIGFzc2VydCBzLnN0YXJ0c3dpdGgoX19maWxlX19bOi05XSkg
ICMgcHljIGZpbGUgYW5kICRweS5jbGFzcworICAgIGFzc2VydCBzLmVuZHN3aXRoKCJWYWx1ZUVy
cm9yIikKKyAgICBhc3NlcnQgbGVuKHMuc3BsaXQoIjoiKSkgPj0gMyAgIyBvbiB3aW5kb3dzIGl0
J3MgNAorCisKK2RlZiB0ZXN0X2V4Y2luZm9fZXJyaXNpbnN0YW5jZSgpOgorICAgIGV4Y2luZm8g
PSBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIGgpCisgICAgYXNzZXJ0IGV4Y2luZm8uZXJyaXNp
bnN0YW5jZShWYWx1ZUVycm9yKQorCisKK2RlZiB0ZXN0X2V4Y2luZm9fbm9fc291cmNlY29kZSgp
OgorICAgIHRyeToKKyAgICAgICAgZXhlYygicmFpc2UgVmFsdWVFcnJvcigpIikKKyAgICBleGNl
cHQgVmFsdWVFcnJvcjoKKyAgICAgICAgZXhjaW5mbyA9IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9u
SW5mbygpCisgICAgcyA9IHN0cihleGNpbmZvLnRyYWNlYmFja1stMV0pCisgICAgYXNzZXJ0IHMg
PT0gIiAgRmlsZSAnPHN0cmluZz4nOjEgaW4gPG1vZHVsZT5cbiAgPz8/XG4iCisKKworZGVmIHRl
c3RfZXhjaW5mb19ub19weXRob25fc291cmNlY29kZSh0bXBkaXIpOgorICAgICMgWFhYOiBzaW1w
bGlmaWVkIGxvY2FsbHkgdGVzdGFibGUgdmVyc2lvbgorICAgIHRtcGRpci5qb2luKCd0ZXN0LnR4
dCcpLndyaXRlKCJ7eyBoKCl9fToiKQorCisgICAgamluamEyID0gcHl0ZXN0LmltcG9ydG9yc2tp
cCgnamluamEyJykKKyAgICBsb2FkZXIgPSBqaW5qYTIuRmlsZVN5c3RlbUxvYWRlcihzdHIodG1w
ZGlyKSkKKyAgICBlbnYgPSBqaW5qYTIuRW52aXJvbm1lbnQobG9hZGVyPWxvYWRlcikKKyAgICB0
ZW1wbGF0ZSA9IGVudi5nZXRfdGVtcGxhdGUoJ3Rlc3QudHh0JykKKyAgICBleGNpbmZvID0gcHl0
ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBs
YXRlLnJlbmRlciwgaD1oKQorICAgIGZvciBpdGVtIGluIGV4Y2luZm8udHJhY2ViYWNrOgorICAg
ICAgICBwcmludChpdGVtKSAgIyBYWFg6IGZvciBzb21lIHJlYXNvbiBqaW5qYS5UZW1wbGF0ZS5y
ZW5kZXIgaXMgcHJpbnRlZCBpbiBmdWxsCisgICAgICAgIGl0ZW0uc291cmNlICAjIHNob3VsZG50
IGZhaWwKKyAgICAgICAgaWYgaXRlbS5wYXRoLmJhc2VuYW1lID09ICd0ZXN0LnR4dCc6CisgICAg
ICAgICAgICBhc3NlcnQgc3RyKGl0ZW0uc291cmNlKSA9PSAne3sgaCgpfX06JworCisKK2RlZiB0
ZXN0X2VudHJ5c291cmNlX1F1ZXVlX2V4YW1wbGUoKToKKyAgICB0cnk6CisgICAgICAgIHF1ZXVl
LlF1ZXVlKCkuZ2V0KHRpbWVvdXQ9MC4wMDEpCisgICAgZXhjZXB0IHF1ZXVlLkVtcHR5OgorICAg
ICAgICBleGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkKKyAgICBlbnRyeSA9
IGV4Y2luZm8udHJhY2ViYWNrWy0xXQorICAgIHNvdXJjZSA9IGVudHJ5LmdldHNvdXJjZSgpCisg
ICAgYXNzZXJ0IHNvdXJjZSBpcyBub3QgTm9uZQorICAgIHMgPSBzdHIoc291cmNlKS5zdHJpcCgp
CisgICAgYXNzZXJ0IHMuc3RhcnRzd2l0aCgiZGVmIGdldCIpCisKKworZGVmIHRlc3RfY29kZXBh
dGhfUXVldWVfZXhhbXBsZSgpOgorICAgIHRyeToKKyAgICAgICAgcXVldWUuUXVldWUoKS5nZXQo
dGltZW91dD0wLjAwMSkKKyAgICBleGNlcHQgcXVldWUuRW1wdHk6CisgICAgICAgIGV4Y2luZm8g
PSBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8oKQorICAgIGVudHJ5ID0gZXhjaW5mby50cmFj
ZWJhY2tbLTFdCisgICAgcGF0aCA9IGVudHJ5LnBhdGgKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShw
YXRoLCBweS5wYXRoLmxvY2FsKQorICAgIGFzc2VydCBwYXRoLmJhc2VuYW1lLmxvd2VyKCkgPT0g
InF1ZXVlLnB5IgorICAgIGFzc2VydCBwYXRoLmNoZWNrKCkKKworCitkZWYgdGVzdF9tYXRjaF9z
dWNjZWVkcygpOgorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhaZXJvRGl2aXNpb25FcnJvcikgYXMg
ZXhjaW5mbzoKKyAgICAgICAgMCAvLyAwCisgICAgZXhjaW5mby5tYXRjaChyJy4qemVyby4qJykK
KworCitkZWYgdGVzdF9tYXRjaF9yYWlzZXNfZXJyb3IodGVzdGRpcik6CisgICAgdGVzdGRpci5t
YWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGRlZiB0ZXN0X2Rp
dmlzaW9uX3plcm8oKToKKyAgICAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhaZXJvRGl2aXNp
b25FcnJvcikgYXMgZXhjaW5mbzoKKyAgICAgICAgICAgICAgICAwIC8gMAorICAgICAgICAgICAg
ZXhjaW5mby5tYXRjaChyJ1sxMjNdKycpCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KCkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCAhPSAwCisgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIipBc3NlcnRpb25FcnJvcipQYXR0ZXJuKlsxMjNd
Km5vdCBmb3VuZCoiLAorICAgIF0pCisKKworY2xhc3MgVGVzdEZvcm1hdHRlZEV4Y2luZm8ob2Jq
ZWN0KToKKworICAgIEBweXRlc3QuZml4dHVyZQorICAgIGRlZiBpbXBvcnRhc21vZChzZWxmLCBy
ZXF1ZXN0KToKKyAgICAgICAgZGVmIGltcG9ydGFzbW9kKHNvdXJjZSk6CisgICAgICAgICAgICBz
b3VyY2UgPSBfcHl0ZXN0Ll9jb2RlLlNvdXJjZShzb3VyY2UpCisgICAgICAgICAgICB0bXBkaXIg
PSByZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgidG1wZGlyIikKKyAgICAgICAgICAgIG1vZHBhdGgg
PSB0bXBkaXIuam9pbigibW9kLnB5IikKKyAgICAgICAgICAgIHRtcGRpci5lbnN1cmUoIl9faW5p
dF9fLnB5IikKKyAgICAgICAgICAgIG1vZHBhdGgud3JpdGUoc291cmNlKQorICAgICAgICAgICAg
aWYgaW52YWxpZGF0ZV9pbXBvcnRfY2FjaGVzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAg
IGludmFsaWRhdGVfaW1wb3J0X2NhY2hlcygpCisgICAgICAgICAgICByZXR1cm4gbW9kcGF0aC5w
eWltcG9ydCgpCisgICAgICAgIHJldHVybiBpbXBvcnRhc21vZAorCisgICAgZGVmIGV4Y2luZm9f
ZnJvbV9leGVjKHNlbGYsIHNvdXJjZSk6CisgICAgICAgIHNvdXJjZSA9IF9weXRlc3QuX2NvZGUu
U291cmNlKHNvdXJjZSkuc3RyaXAoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBleGVjKHNv
dXJjZS5jb21waWxlKCkpCisgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKKyAgICAg
ICAgICAgIHJhaXNlCisgICAgICAgIGV4Y2VwdDogICMgbm9xYQorICAgICAgICAgICAgcmV0dXJu
IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mbygpCisgICAgICAgIGFzc2VydCAwLCAiZGlkIG5v
dCByYWlzZSIKKworICAgIGRlZiB0ZXN0X3JlcHJfc291cmNlKHNlbGYpOgorICAgICAgICBwciA9
IEZvcm1hdHRlZEV4Y2luZm8oKQorICAgICAgICBzb3VyY2UgPSBfcHl0ZXN0Ll9jb2RlLlNvdXJj
ZSgiIiIKKyAgICAgICAgICAgIGRlZiBmKHgpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgIiIiKS5zdHJpcCgpCisgICAgICAgIHByLmZsb3dfbWFya2VyID0gInwiCisgICAgICAgIGxp
bmVzID0gcHIuZ2V0X3NvdXJjZShzb3VyY2UsIDApCisgICAgICAgIGFzc2VydCBsZW4obGluZXMp
ID09IDIKKyAgICAgICAgYXNzZXJ0IGxpbmVzWzBdID09ICJ8ICAgZGVmIGYoeCk6IgorICAgICAg
ICBhc3NlcnQgbGluZXNbMV0gPT0gIiAgICAgICAgcGFzcyIKKworICAgIGRlZiB0ZXN0X3JlcHJf
c291cmNlX2V4Y2luZm8oc2VsZik6CisgICAgICAgICIiIiBjaGVjayBpZiBpbmRlbnRhdGlvbiBp
cyByaWdodCAiIiIKKyAgICAgICAgcHIgPSBGb3JtYXR0ZWRFeGNpbmZvKCkKKyAgICAgICAgZXhj
aW5mbyA9IHNlbGYuZXhjaW5mb19mcm9tX2V4ZWMoIiIiCisgICAgICAgICAgICAgICAgZGVmIGYo
KToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgICAgICAgICBmKCkKKyAg
ICAgICAgIiIiKQorICAgICAgICBwciA9IEZvcm1hdHRlZEV4Y2luZm8oKQorICAgICAgICBzb3Vy
Y2UgPSBwci5fZ2V0ZW50cnlzb3VyY2UoZXhjaW5mby50cmFjZWJhY2tbLTFdKQorICAgICAgICBs
aW5lcyA9IHByLmdldF9zb3VyY2Uoc291cmNlLCAxLCBleGNpbmZvKQorICAgICAgICBhc3NlcnQg
bGluZXMgPT0gWworICAgICAgICAgICAgJyAgICBkZWYgZigpOicsCisgICAgICAgICAgICAnPiAg
ICAgICBhc3NlcnQgMCcsCisgICAgICAgICAgICAnRSAgICAgICBBc3NlcnRpb25FcnJvcicKKyAg
ICAgICAgXQorCisgICAgZGVmIHRlc3RfcmVwcl9zb3VyY2Vfbm90X2V4aXN0aW5nKHNlbGYpOgor
ICAgICAgICBwciA9IEZvcm1hdHRlZEV4Y2luZm8oKQorICAgICAgICBjbyA9IGNvbXBpbGUoInJh
aXNlIFZhbHVlRXJyb3IoKSIsICIiLCAiZXhlYyIpCisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IGV4ZWMoY28pCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgZXhjaW5m
byA9IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mbygpCisgICAgICAgIHJlcHIgPSBwci5yZXBy
X2V4Y2luZm8oZXhjaW5mbykKKyAgICAgICAgYXNzZXJ0IHJlcHIucmVwcnRyYWNlYmFjay5yZXBy
ZW50cmllc1sxXS5saW5lc1swXSA9PSAiPiAgID8/PyIKKyAgICAgICAgaWYgcHkuc3RkLnN5cy52
ZXJzaW9uX2luZm9bMF0gPj0gMzoKKyAgICAgICAgICAgIGFzc2VydCByZXByLmNoYWluWzBdWzBd
LnJlcHJlbnRyaWVzWzFdLmxpbmVzWzBdID09ICI+ICAgPz8/IgorCisgICAgZGVmIHRlc3RfcmVw
cl9tYW55X2xpbmVfc291cmNlX25vdF9leGlzdGluZyhzZWxmKToKKyAgICAgICAgcHIgPSBGb3Jt
YXR0ZWRFeGNpbmZvKCkKKyAgICAgICAgY28gPSBjb21waWxlKCIiIgorYSA9IDEKK3JhaXNlIFZh
bHVlRXJyb3IoKQorIiIiLCAiIiwgImV4ZWMiKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBl
eGVjKGNvKQorICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgIGV4Y2luZm8g
PSBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8oKQorICAgICAgICByZXByID0gcHIucmVwcl9l
eGNpbmZvKGV4Y2luZm8pCisgICAgICAgIGFzc2VydCByZXByLnJlcHJ0cmFjZWJhY2sucmVwcmVu
dHJpZXNbMV0ubGluZXNbMF0gPT0gIj4gICA/Pz8iCisgICAgICAgIGlmIHB5LnN0ZC5zeXMudmVy
c2lvbl9pbmZvWzBdID49IDM6CisgICAgICAgICAgICBhc3NlcnQgcmVwci5jaGFpblswXVswXS5y
ZXByZW50cmllc1sxXS5saW5lc1swXSA9PSAiPiAgID8/PyIKKworICAgIGRlZiB0ZXN0X3JlcHJf
c291cmNlX2ZhaWxpbmdfZnVsbHNvdXJjZShzZWxmKToKKyAgICAgICAgcHIgPSBGb3JtYXR0ZWRF
eGNpbmZvKCkKKworICAgICAgICBjbGFzcyBGYWtlQ29kZShvYmplY3QpOgorICAgICAgICAgICAg
Y2xhc3MgcmF3KG9iamVjdCk6CisgICAgICAgICAgICAgICAgY29fZmlsZW5hbWUgPSAnPycKKwor
ICAgICAgICAgICAgcGF0aCA9ICc/JworICAgICAgICAgICAgZmlyc3RsaW5lbm8gPSA1CisKKyAg
ICAgICAgICAgIGRlZiBmdWxsc291cmNlKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiBO
b25lCisKKyAgICAgICAgICAgIGZ1bGxzb3VyY2UgPSBwcm9wZXJ0eShmdWxsc291cmNlKQorCisg
ICAgICAgIGNsYXNzIEZha2VGcmFtZShvYmplY3QpOgorICAgICAgICAgICAgY29kZSA9IEZha2VD
b2RlKCkKKyAgICAgICAgICAgIGZfbG9jYWxzID0ge30KKyAgICAgICAgICAgIGZfZ2xvYmFscyA9
IHt9CisKKyAgICAgICAgY2xhc3MgRmFrZVRyYWNlYmFja0VudHJ5KF9weXRlc3QuX2NvZGUuVHJh
Y2ViYWNrLkVudHJ5KToKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0YiwgZXhjaW5m
bz1Ob25lKToKKyAgICAgICAgICAgICAgICBzZWxmLmxpbmVubyA9IDUgKyAzCisKKyAgICAgICAg
ICAgIEBwcm9wZXJ0eQorICAgICAgICAgICAgZGVmIGZyYW1lKHNlbGYpOgorICAgICAgICAgICAg
ICAgIHJldHVybiBGYWtlRnJhbWUoKQorCisgICAgICAgIGNsYXNzIFRyYWNlYmFjayhfcHl0ZXN0
Ll9jb2RlLlRyYWNlYmFjayk6CisgICAgICAgICAgICBFbnRyeSA9IEZha2VUcmFjZWJhY2tFbnRy
eQorCisgICAgICAgIGNsYXNzIEZha2VFeGNpbmZvKF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5m
byk6CisgICAgICAgICAgICB0eXBlbmFtZSA9ICJGb28iCisgICAgICAgICAgICB2YWx1ZSA9IEV4
Y2VwdGlvbigpCisKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgICAg
ICAgICBwYXNzCisKKyAgICAgICAgICAgIGRlZiBleGNvbmx5KHNlbGYsIHRyeXNob3J0KToKKyAg
ICAgICAgICAgICAgICByZXR1cm4gIkVYQyIKKworICAgICAgICAgICAgZGVmIGVycmlzaW5zdGFu
Y2Uoc2VsZiwgY2xzKToKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICBl
eGNpbmZvID0gRmFrZUV4Y2luZm8oKQorCisgICAgICAgIGNsYXNzIEZha2VSYXdUQihvYmplY3Qp
OgorICAgICAgICAgICAgdGJfbmV4dCA9IE5vbmUKKworICAgICAgICB0YiA9IEZha2VSYXdUQigp
CisgICAgICAgIGV4Y2luZm8udHJhY2ViYWNrID0gVHJhY2ViYWNrKHRiKQorCisgICAgICAgIGZh
aWwgPSBJT0Vycm9yKCkgICMgbm9xYQorICAgICAgICByZXByID0gcHIucmVwcl9leGNpbmZvKGV4
Y2luZm8pCisgICAgICAgIGFzc2VydCByZXByLnJlcHJ0cmFjZWJhY2sucmVwcmVudHJpZXNbMF0u
bGluZXNbMF0gPT0gIj4gICA/Pz8iCisgICAgICAgIGlmIHB5LnN0ZC5zeXMudmVyc2lvbl9pbmZv
WzBdID49IDM6CisgICAgICAgICAgICBhc3NlcnQgcmVwci5jaGFpblswXVswXS5yZXByZW50cmll
c1swXS5saW5lc1swXSA9PSAiPiAgID8/PyIKKworICAgICAgICBmYWlsID0gcHkuZXJyb3IuRU5P
RU5UICAjIG5vcWEKKyAgICAgICAgcmVwciA9IHByLnJlcHJfZXhjaW5mbyhleGNpbmZvKQorICAg
ICAgICBhc3NlcnQgcmVwci5yZXBydHJhY2ViYWNrLnJlcHJlbnRyaWVzWzBdLmxpbmVzWzBdID09
ICI+ICAgPz8/IgorICAgICAgICBpZiBweS5zdGQuc3lzLnZlcnNpb25faW5mb1swXSA+PSAzOgor
ICAgICAgICAgICAgYXNzZXJ0IHJlcHIuY2hhaW5bMF1bMF0ucmVwcmVudHJpZXNbMF0ubGluZXNb
MF0gPT0gIj4gICA/Pz8iCisKKyAgICBkZWYgdGVzdF9yZXByX2xvY2FsKHNlbGYpOgorICAgICAg
ICBwID0gRm9ybWF0dGVkRXhjaW5mbyhzaG93bG9jYWxzPVRydWUpCisgICAgICAgIGxvYyA9IHsn
eSc6IDUsICd6JzogNywgJ3gnOiAzLCAnQHgnOiAyLCAnX19idWlsdGluc19fJzoge319CisgICAg
ICAgIHJlcHJsb2NhbHMgPSBwLnJlcHJfbG9jYWxzKGxvYykKKyAgICAgICAgYXNzZXJ0IHJlcHJs
b2NhbHMubGluZXMKKyAgICAgICAgYXNzZXJ0IHJlcHJsb2NhbHMubGluZXNbMF0gPT0gJ19fYnVp
bHRpbnNfXyA9IDxidWlsdGlucz4nCisgICAgICAgIGFzc2VydCByZXBybG9jYWxzLmxpbmVzWzFd
ID09ICd4ICAgICAgICAgID0gMycKKyAgICAgICAgYXNzZXJ0IHJlcHJsb2NhbHMubGluZXNbMl0g
PT0gJ3kgICAgICAgICAgPSA1JworICAgICAgICBhc3NlcnQgcmVwcmxvY2Fscy5saW5lc1szXSA9
PSAneiAgICAgICAgICA9IDcnCisKKyAgICBkZWYgdGVzdF9yZXByX3RyYWNlYmFja2VudHJ5X2xp
bmVzKHNlbGYsIGltcG9ydGFzbW9kKToKKyAgICAgICAgbW9kID0gaW1wb3J0YXNtb2QoIiIiCisg
ICAgICAgICAgICBkZWYgZnVuYzEoKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCJoZWxsb1xcbndvcmxkIikKKyAgICAgICAgIiIiKQorICAgICAgICBleGNpbmZvID0gcHl0ZXN0
LnJhaXNlcyhWYWx1ZUVycm9yLCBtb2QuZnVuYzEpCisgICAgICAgIGV4Y2luZm8udHJhY2ViYWNr
ID0gZXhjaW5mby50cmFjZWJhY2suZmlsdGVyKCkKKyAgICAgICAgcCA9IEZvcm1hdHRlZEV4Y2lu
Zm8oKQorICAgICAgICByZXBydGIgPSBwLnJlcHJfdHJhY2ViYWNrX2VudHJ5KGV4Y2luZm8udHJh
Y2ViYWNrWy0xXSkKKworICAgICAgICAjIHRlc3QgYXMgaW50ZXJtaXR0ZW50IGVudHJ5CisgICAg
ICAgIGxpbmVzID0gcmVwcnRiLmxpbmVzCisgICAgICAgIGFzc2VydCBsaW5lc1swXSA9PSAnICAg
IGRlZiBmdW5jMSgpOicKKyAgICAgICAgYXNzZXJ0IGxpbmVzWzFdID09ICc+ICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoImhlbGxvXFxud29ybGQiKScKKworICAgICAgICAjIHRlc3QgYXMgbGFzdCBl
bnRyeQorICAgICAgICBwID0gRm9ybWF0dGVkRXhjaW5mbyhzaG93bG9jYWxzPVRydWUpCisgICAg
ICAgIHJlcHJfZW50cnkgPSBwLnJlcHJfdHJhY2ViYWNrX2VudHJ5KGV4Y2luZm8udHJhY2ViYWNr
Wy0xXSwgZXhjaW5mbykKKyAgICAgICAgbGluZXMgPSByZXByX2VudHJ5LmxpbmVzCisgICAgICAg
IGFzc2VydCBsaW5lc1swXSA9PSAnICAgIGRlZiBmdW5jMSgpOicKKyAgICAgICAgYXNzZXJ0IGxp
bmVzWzFdID09ICc+ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImhlbGxvXFxud29ybGQiKScKKyAg
ICAgICAgYXNzZXJ0IGxpbmVzWzJdID09ICdFICAgICAgIFZhbHVlRXJyb3I6IGhlbGxvJworICAg
ICAgICBhc3NlcnQgbGluZXNbM10gPT0gJ0UgICAgICAgd29ybGQnCisgICAgICAgIGFzc2VydCBu
b3QgbGluZXNbNDpdCisKKyAgICAgICAgbG9jID0gcmVwcl9lbnRyeS5yZXBybG9jYWxzIGlzIG5v
dCBOb25lCisgICAgICAgIGxvYyA9IHJlcHJfZW50cnkucmVwcmZpbGVsb2MKKyAgICAgICAgYXNz
ZXJ0IGxvYy5wYXRoID09IG1vZC5fX2ZpbGVfXworICAgICAgICBhc3NlcnQgbG9jLmxpbmVubyA9
PSAzCisgICAgICAgICMgYXNzZXJ0IGxvYy5tZXNzYWdlID09ICJWYWx1ZUVycm9yOiBoZWxsbyIK
KworICAgIGRlZiB0ZXN0X3JlcHJfdHJhY2ViYWNrZW50cnlfbGluZXMyKHNlbGYsIGltcG9ydGFz
bW9kKToKKyAgICAgICAgbW9kID0gaW1wb3J0YXNtb2QoIiIiCisgICAgICAgICAgICBkZWYgZnVu
YzEobSwgeCwgeSwgeik6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaGVsbG9c
XG53b3JsZCIpCisgICAgICAgICIiIikKKyAgICAgICAgZXhjaW5mbyA9IHB5dGVzdC5yYWlzZXMo
VmFsdWVFcnJvciwgbW9kLmZ1bmMxLCAibSIgKiA5MCwgNSwgMTMsICJ6IiAqIDEyMCkKKyAgICAg
ICAgZXhjaW5mby50cmFjZWJhY2sgPSBleGNpbmZvLnRyYWNlYmFjay5maWx0ZXIoKQorICAgICAg
ICBlbnRyeSA9IGV4Y2luZm8udHJhY2ViYWNrWy0xXQorICAgICAgICBwID0gRm9ybWF0dGVkRXhj
aW5mbyhmdW5jYXJncz1UcnVlKQorICAgICAgICByZXByZnVuY2FyZ3MgPSBwLnJlcHJfYXJncyhl
bnRyeSkKKyAgICAgICAgYXNzZXJ0IHJlcHJmdW5jYXJncy5hcmdzWzBdID09ICgnbScsIHJlcHIo
Im0iICogOTApKQorICAgICAgICBhc3NlcnQgcmVwcmZ1bmNhcmdzLmFyZ3NbMV0gPT0gKCd4Jywg
JzUnKQorICAgICAgICBhc3NlcnQgcmVwcmZ1bmNhcmdzLmFyZ3NbMl0gPT0gKCd5JywgJzEzJykK
KyAgICAgICAgYXNzZXJ0IHJlcHJmdW5jYXJncy5hcmdzWzNdID09ICgneicsIHJlcHIoInoiICog
MTIwKSkKKworICAgICAgICBwID0gRm9ybWF0dGVkRXhjaW5mbyhmdW5jYXJncz1UcnVlKQorICAg
ICAgICByZXByX2VudHJ5ID0gcC5yZXByX3RyYWNlYmFja19lbnRyeShlbnRyeSkKKyAgICAgICAg
YXNzZXJ0IHJlcHJfZW50cnkucmVwcmZ1bmNhcmdzLmFyZ3MgPT0gcmVwcmZ1bmNhcmdzLmFyZ3MK
KyAgICAgICAgdHcgPSBUV01vY2soKQorICAgICAgICByZXByX2VudHJ5LnRvdGVybWluYWwodHcp
CisgICAgICAgIGFzc2VydCB0dy5saW5lc1swXSA9PSAibSA9ICIgKyByZXByKCdtJyAqIDkwKQor
ICAgICAgICBhc3NlcnQgdHcubGluZXNbMV0gPT0gInggPSA1LCB5ID0gMTMiCisgICAgICAgIGFz
c2VydCB0dy5saW5lc1syXSA9PSAieiA9ICIgKyByZXByKCd6JyAqIDEyMCkKKworICAgIGRlZiB0
ZXN0X3JlcHJfdHJhY2ViYWNrZW50cnlfbGluZXNfdmFyX2t3X2FyZ3Moc2VsZiwgaW1wb3J0YXNt
b2QpOgorICAgICAgICBtb2QgPSBpbXBvcnRhc21vZCgiIiIKKyAgICAgICAgICAgIGRlZiBmdW5j
MSh4LCAqeSwgKip6KToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJoZWxsb1xc
bndvcmxkIikKKyAgICAgICAgIiIiKQorICAgICAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhW
YWx1ZUVycm9yLCBtb2QuZnVuYzEsICdhJywgJ2InLCBjPSdkJykKKyAgICAgICAgZXhjaW5mby50
cmFjZWJhY2sgPSBleGNpbmZvLnRyYWNlYmFjay5maWx0ZXIoKQorICAgICAgICBlbnRyeSA9IGV4
Y2luZm8udHJhY2ViYWNrWy0xXQorICAgICAgICBwID0gRm9ybWF0dGVkRXhjaW5mbyhmdW5jYXJn
cz1UcnVlKQorICAgICAgICByZXByZnVuY2FyZ3MgPSBwLnJlcHJfYXJncyhlbnRyeSkKKyAgICAg
ICAgYXNzZXJ0IHJlcHJmdW5jYXJncy5hcmdzWzBdID09ICgneCcsIHJlcHIoJ2EnKSkKKyAgICAg
ICAgYXNzZXJ0IHJlcHJmdW5jYXJncy5hcmdzWzFdID09ICgneScsIHJlcHIoKCdiJywpKSkKKyAg
ICAgICAgYXNzZXJ0IHJlcHJmdW5jYXJncy5hcmdzWzJdID09ICgneicsIHJlcHIoeydjJzogJ2Qn
fSkpCisKKyAgICAgICAgcCA9IEZvcm1hdHRlZEV4Y2luZm8oZnVuY2FyZ3M9VHJ1ZSkKKyAgICAg
ICAgcmVwcl9lbnRyeSA9IHAucmVwcl90cmFjZWJhY2tfZW50cnkoZW50cnkpCisgICAgICAgIGFz
c2VydCByZXByX2VudHJ5LnJlcHJmdW5jYXJncy5hcmdzID09IHJlcHJmdW5jYXJncy5hcmdzCisg
ICAgICAgIHR3ID0gVFdNb2NrKCkKKyAgICAgICAgcmVwcl9lbnRyeS50b3Rlcm1pbmFsKHR3KQor
ICAgICAgICBhc3NlcnQgdHcubGluZXNbMF0gPT0gInggPSAnYScsIHkgPSAoJ2InLCksIHogPSB7
J2MnOiAnZCd9IgorCisgICAgZGVmIHRlc3RfcmVwcl90cmFjZWJhY2tlbnRyeV9zaG9ydChzZWxm
LCBpbXBvcnRhc21vZCk6CisgICAgICAgIG1vZCA9IGltcG9ydGFzbW9kKCIiIgorICAgICAgICAg
ICAgZGVmIGZ1bmMxKCk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaGVsbG8i
KQorICAgICAgICAgICAgZGVmIGVudHJ5KCk6CisgICAgICAgICAgICAgICAgZnVuYzEoKQorICAg
ICAgICAiIiIpCisgICAgICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIG1v
ZC5lbnRyeSkKKyAgICAgICAgcCA9IEZvcm1hdHRlZEV4Y2luZm8oc3R5bGU9InNob3J0IikKKyAg
ICAgICAgcmVwcnRiID0gcC5yZXByX3RyYWNlYmFja19lbnRyeShleGNpbmZvLnRyYWNlYmFja1st
Ml0pCisgICAgICAgIGxpbmVzID0gcmVwcnRiLmxpbmVzCisgICAgICAgIGJhc2VuYW1lID0gcHku
cGF0aC5sb2NhbChtb2QuX19maWxlX18pLmJhc2VuYW1lCisgICAgICAgIGFzc2VydCBsaW5lc1sw
XSA9PSAnICAgIGZ1bmMxKCknCisgICAgICAgIGFzc2VydCBiYXNlbmFtZSBpbiBzdHIocmVwcnRi
LnJlcHJmaWxlbG9jLnBhdGgpCisgICAgICAgIGFzc2VydCByZXBydGIucmVwcmZpbGVsb2MubGlu
ZW5vID09IDUKKworICAgICAgICAjIHRlc3QgbGFzdCBlbnRyeQorICAgICAgICBwID0gRm9ybWF0
dGVkRXhjaW5mbyhzdHlsZT0ic2hvcnQiKQorICAgICAgICByZXBydGIgPSBwLnJlcHJfdHJhY2Vi
YWNrX2VudHJ5KGV4Y2luZm8udHJhY2ViYWNrWy0xXSwgZXhjaW5mbykKKyAgICAgICAgbGluZXMg
PSByZXBydGIubGluZXMKKyAgICAgICAgYXNzZXJ0IGxpbmVzWzBdID09ICcgICAgcmFpc2UgVmFs
dWVFcnJvcigiaGVsbG8iKScKKyAgICAgICAgYXNzZXJ0IGxpbmVzWzFdID09ICdFICAgVmFsdWVF
cnJvcjogaGVsbG8nCisgICAgICAgIGFzc2VydCBiYXNlbmFtZSBpbiBzdHIocmVwcnRiLnJlcHJm
aWxlbG9jLnBhdGgpCisgICAgICAgIGFzc2VydCByZXBydGIucmVwcmZpbGVsb2MubGluZW5vID09
IDMKKworICAgIGRlZiB0ZXN0X3JlcHJfdHJhY2ViYWNrZW50cnlfbm8oc2VsZiwgaW1wb3J0YXNt
b2QpOgorICAgICAgICBtb2QgPSBpbXBvcnRhc21vZCgiIiIKKyAgICAgICAgICAgIGRlZiBmdW5j
MSgpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImhlbGxvIikKKyAgICAgICAg
ICAgIGRlZiBlbnRyeSgpOgorICAgICAgICAgICAgICAgIGZ1bmMxKCkKKyAgICAgICAgIiIiKQor
ICAgICAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtb2QuZW50cnkpCisg
ICAgICAgIHAgPSBGb3JtYXR0ZWRFeGNpbmZvKHN0eWxlPSJubyIpCisgICAgICAgIHAucmVwcl90
cmFjZWJhY2tfZW50cnkoZXhjaW5mby50cmFjZWJhY2tbLTJdKQorCisgICAgICAgIHAgPSBGb3Jt
YXR0ZWRFeGNpbmZvKHN0eWxlPSJubyIpCisgICAgICAgIHJlcHJlbnRyeSA9IHAucmVwcl90cmFj
ZWJhY2tfZW50cnkoZXhjaW5mby50cmFjZWJhY2tbLTFdLCBleGNpbmZvKQorICAgICAgICBsaW5l
cyA9IHJlcHJlbnRyeS5saW5lcworICAgICAgICBhc3NlcnQgbGluZXNbMF0gPT0gJ0UgICBWYWx1
ZUVycm9yOiBoZWxsbycKKyAgICAgICAgYXNzZXJ0IG5vdCBsaW5lc1sxOl0KKworICAgIGRlZiB0
ZXN0X3JlcHJfdHJhY2ViYWNrX3RiZmlsdGVyKHNlbGYsIGltcG9ydGFzbW9kKToKKyAgICAgICAg
bW9kID0gaW1wb3J0YXNtb2QoIiIiCisgICAgICAgICAgICBkZWYgZih4KToKKyAgICAgICAgICAg
ICAgICByYWlzZSBWYWx1ZUVycm9yKHgpCisgICAgICAgICAgICBkZWYgZW50cnkoKToKKyAgICAg
ICAgICAgICAgICBmKDApCisgICAgICAgICIiIikKKyAgICAgICAgZXhjaW5mbyA9IHB5dGVzdC5y
YWlzZXMoVmFsdWVFcnJvciwgbW9kLmVudHJ5KQorICAgICAgICBwID0gRm9ybWF0dGVkRXhjaW5m
byh0YmZpbHRlcj1UcnVlKQorICAgICAgICByZXBydGIgPSBwLnJlcHJfdHJhY2ViYWNrKGV4Y2lu
Zm8pCisgICAgICAgIGFzc2VydCBsZW4ocmVwcnRiLnJlcHJlbnRyaWVzKSA9PSAyCisgICAgICAg
IHAgPSBGb3JtYXR0ZWRFeGNpbmZvKHRiZmlsdGVyPUZhbHNlKQorICAgICAgICByZXBydGIgPSBw
LnJlcHJfdHJhY2ViYWNrKGV4Y2luZm8pCisgICAgICAgIGFzc2VydCBsZW4ocmVwcnRiLnJlcHJl
bnRyaWVzKSA9PSAzCisKKyAgICBkZWYgdGVzdF90cmFjZWJhY2tfc2hvcnRfbm9fc291cmNlKHNl
bGYsIGltcG9ydGFzbW9kLCBtb25rZXlwYXRjaCk6CisgICAgICAgIG1vZCA9IGltcG9ydGFzbW9k
KCIiIgorICAgICAgICAgICAgZGVmIGZ1bmMxKCk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcigiaGVsbG8iKQorICAgICAgICAgICAgZGVmIGVudHJ5KCk6CisgICAgICAgICAgICAg
ICAgZnVuYzEoKQorICAgICAgICAiIiIpCisgICAgICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2Vz
KFZhbHVlRXJyb3IsIG1vZC5lbnRyeSkKKyAgICAgICAgZnJvbSBfcHl0ZXN0Ll9jb2RlLmNvZGUg
aW1wb3J0IENvZGUKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihDb2RlLCAncGF0aCcsICdi
b2d1cycpCisgICAgICAgIGV4Y2luZm8udHJhY2ViYWNrWzBdLmZyYW1lLmNvZGUucGF0aCA9ICJi
b2d1cyIKKyAgICAgICAgcCA9IEZvcm1hdHRlZEV4Y2luZm8oc3R5bGU9InNob3J0IikKKyAgICAg
ICAgcmVwcnRiID0gcC5yZXByX3RyYWNlYmFja19lbnRyeShleGNpbmZvLnRyYWNlYmFja1stMl0p
CisgICAgICAgIGxpbmVzID0gcmVwcnRiLmxpbmVzCisgICAgICAgIGxhc3RfcCA9IEZvcm1hdHRl
ZEV4Y2luZm8oc3R5bGU9InNob3J0IikKKyAgICAgICAgbGFzdF9yZXBydGIgPSBsYXN0X3AucmVw
cl90cmFjZWJhY2tfZW50cnkoZXhjaW5mby50cmFjZWJhY2tbLTFdLCBleGNpbmZvKQorICAgICAg
ICBsYXN0X2xpbmVzID0gbGFzdF9yZXBydGIubGluZXMKKyAgICAgICAgbW9ua2V5cGF0Y2gudW5k
bygpCisgICAgICAgIGFzc2VydCBsaW5lc1swXSA9PSAnICAgIGZ1bmMxKCknCisKKyAgICAgICAg
YXNzZXJ0IGxhc3RfbGluZXNbMF0gPT0gJyAgICByYWlzZSBWYWx1ZUVycm9yKCJoZWxsbyIpJwor
ICAgICAgICBhc3NlcnQgbGFzdF9saW5lc1sxXSA9PSAnRSAgIFZhbHVlRXJyb3I6IGhlbGxvJwor
CisgICAgZGVmIHRlc3RfcmVwcl90cmFjZWJhY2tfYW5kX2V4Y2luZm8oc2VsZiwgaW1wb3J0YXNt
b2QpOgorICAgICAgICBtb2QgPSBpbXBvcnRhc21vZCgiIiIKKyAgICAgICAgICAgIGRlZiBmKHgp
OgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoeCkKKyAgICAgICAgICAgIGRlZiBl
bnRyeSgpOgorICAgICAgICAgICAgICAgIGYoMCkKKyAgICAgICAgIiIiKQorICAgICAgICBleGNp
bmZvID0gcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtb2QuZW50cnkpCisKKyAgICAgICAgZm9y
IHN0eWxlIGluICgibG9uZyIsICJzaG9ydCIpOgorICAgICAgICAgICAgcCA9IEZvcm1hdHRlZEV4
Y2luZm8oc3R5bGU9c3R5bGUpCisgICAgICAgICAgICByZXBydGIgPSBwLnJlcHJfdHJhY2ViYWNr
KGV4Y2luZm8pCisgICAgICAgICAgICBhc3NlcnQgbGVuKHJlcHJ0Yi5yZXByZW50cmllcykgPT0g
MgorICAgICAgICAgICAgYXNzZXJ0IHJlcHJ0Yi5zdHlsZSA9PSBzdHlsZQorICAgICAgICAgICAg
YXNzZXJ0IG5vdCByZXBydGIuZXh0cmFsaW5lCisgICAgICAgICAgICByZXByID0gcC5yZXByX2V4
Y2luZm8oZXhjaW5mbykKKyAgICAgICAgICAgIGFzc2VydCByZXByLnJlcHJ0cmFjZWJhY2sKKyAg
ICAgICAgICAgIGFzc2VydCBsZW4ocmVwci5yZXBydHJhY2ViYWNrLnJlcHJlbnRyaWVzKSA9PSBs
ZW4ocmVwcnRiLnJlcHJlbnRyaWVzKQorICAgICAgICAgICAgaWYgcHkuc3RkLnN5cy52ZXJzaW9u
X2luZm9bMF0gPj0gMzoKKyAgICAgICAgICAgICAgICBhc3NlcnQgcmVwci5jaGFpblswXVswXQor
ICAgICAgICAgICAgICAgIGFzc2VydCBsZW4ocmVwci5jaGFpblswXVswXS5yZXByZW50cmllcykg
PT0gbGVuKHJlcHJ0Yi5yZXByZW50cmllcykKKyAgICAgICAgICAgIGFzc2VydCByZXByLnJlcHJj
cmFzaC5wYXRoLmVuZHN3aXRoKCJtb2QucHkiKQorICAgICAgICAgICAgYXNzZXJ0IHJlcHIucmVw
cmNyYXNoLm1lc3NhZ2UgPT0gIlZhbHVlRXJyb3I6IDAiCisKKyAgICBkZWYgdGVzdF9yZXByX3Ry
YWNlYmFja193aXRoX2ludmFsaWRfY3dkKHNlbGYsIGltcG9ydGFzbW9kLCBtb25rZXlwYXRjaCk6
CisgICAgICAgIG1vZCA9IGltcG9ydGFzbW9kKCIiIgorICAgICAgICAgICAgZGVmIGYoeCk6Cisg
ICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcih4KQorICAgICAgICAgICAgZGVmIGVudHJ5
KCk6CisgICAgICAgICAgICAgICAgZigwKQorICAgICAgICAiIiIpCisgICAgICAgIGV4Y2luZm8g
PSBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIG1vZC5lbnRyeSkKKworICAgICAgICBwID0gRm9y
bWF0dGVkRXhjaW5mbygpCisKKyAgICAgICAgZGVmIHJhaXNlb3MoKToKKyAgICAgICAgICAgIHJh
aXNlIE9TRXJyb3IoMikKKworICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHB5LnN0ZC5vcywg
J2dldGN3ZCcsIHJhaXNlb3MpCisgICAgICAgIGFzc2VydCBwLl9tYWtlcGF0aChfX2ZpbGVfXykg
PT0gX19maWxlX18KKyAgICAgICAgcC5yZXByX3RyYWNlYmFjayhleGNpbmZvKQorCisgICAgZGVm
IHRlc3RfcmVwcl9leGNpbmZvX2FkZG91dGVycihzZWxmLCBpbXBvcnRhc21vZCk6CisgICAgICAg
IG1vZCA9IGltcG9ydGFzbW9kKCIiIgorICAgICAgICAgICAgZGVmIGVudHJ5KCk6CisgICAgICAg
ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigpCisgICAgICAgICIiIikKKyAgICAgICAgZXhjaW5m
byA9IHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgbW9kLmVudHJ5KQorICAgICAgICByZXByID0g
ZXhjaW5mby5nZXRyZXByKCkKKyAgICAgICAgcmVwci5hZGRzZWN0aW9uKCJ0aXRsZSIsICJjb250
ZW50IikKKyAgICAgICAgdHdtb2NrID0gVFdNb2NrKCkKKyAgICAgICAgcmVwci50b3Rlcm1pbmFs
KHR3bW9jaykKKyAgICAgICAgYXNzZXJ0IHR3bW9jay5saW5lc1stMV0gPT0gImNvbnRlbnQiCisg
ICAgICAgIGFzc2VydCB0d21vY2subGluZXNbLTJdID09ICgiLSIsICJ0aXRsZSIpCisKKyAgICBk
ZWYgdGVzdF9yZXByX2V4Y2luZm9fcmVwcmNyYXNoKHNlbGYsIGltcG9ydGFzbW9kKToKKyAgICAg
ICAgbW9kID0gaW1wb3J0YXNtb2QoIiIiCisgICAgICAgICAgICBkZWYgZW50cnkoKToKKyAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCkKKyAgICAgICAgIiIiKQorICAgICAgICBleGNp
bmZvID0gcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtb2QuZW50cnkpCisgICAgICAgIHJlcHIg
PSBleGNpbmZvLmdldHJlcHIoKQorICAgICAgICBhc3NlcnQgcmVwci5yZXByY3Jhc2gucGF0aC5l
bmRzd2l0aCgibW9kLnB5IikKKyAgICAgICAgYXNzZXJ0IHJlcHIucmVwcmNyYXNoLmxpbmVubyA9
PSAzCisgICAgICAgIGFzc2VydCByZXByLnJlcHJjcmFzaC5tZXNzYWdlID09ICJWYWx1ZUVycm9y
IgorICAgICAgICBhc3NlcnQgc3RyKHJlcHIucmVwcmNyYXNoKS5lbmRzd2l0aCgibW9kLnB5OjM6
IFZhbHVlRXJyb3IiKQorCisgICAgZGVmIHRlc3RfcmVwcl90cmFjZWJhY2tfcmVjdXJzaW9uKHNl
bGYsIGltcG9ydGFzbW9kKToKKyAgICAgICAgbW9kID0gaW1wb3J0YXNtb2QoIiIiCisgICAgICAg
ICAgICBkZWYgcmVjMih4KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVjMSh4KzEpCisgICAg
ICAgICAgICBkZWYgcmVjMSh4KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVjMih4LTEpCisg
ICAgICAgICAgICBkZWYgZW50cnkoKToKKyAgICAgICAgICAgICAgICByZWMxKDQyKQorICAgICAg
ICAiIiIpCisgICAgICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvciwgbW9k
LmVudHJ5KQorCisgICAgICAgIGZvciBzdHlsZSBpbiAoInNob3J0IiwgImxvbmciLCAibm8iKToK
KyAgICAgICAgICAgIHAgPSBGb3JtYXR0ZWRFeGNpbmZvKHN0eWxlPSJzaG9ydCIpCisgICAgICAg
ICAgICByZXBydGIgPSBwLnJlcHJfdHJhY2ViYWNrKGV4Y2luZm8pCisgICAgICAgICAgICBhc3Nl
cnQgcmVwcnRiLmV4dHJhbGluZSA9PSAiISEhIFJlY3Vyc2lvbiBkZXRlY3RlZCAoc2FtZSBsb2Nh
bHMgJiBwb3NpdGlvbikiCisgICAgICAgICAgICBhc3NlcnQgc3RyKHJlcHJ0YikKKworICAgIGRl
ZiB0ZXN0X3JlcHJleGNpbmZvX2dldHJlcHIoc2VsZiwgaW1wb3J0YXNtb2QpOgorICAgICAgICBt
b2QgPSBpbXBvcnRhc21vZCgiIiIKKyAgICAgICAgICAgIGRlZiBmKHgpOgorICAgICAgICAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoeCkKKyAgICAgICAgICAgIGRlZiBlbnRyeSgpOgorICAgICAg
ICAgICAgICAgIGYoMCkKKyAgICAgICAgIiIiKQorICAgICAgICBleGNpbmZvID0gcHl0ZXN0LnJh
aXNlcyhWYWx1ZUVycm9yLCBtb2QuZW50cnkpCisKKyAgICAgICAgZm9yIHN0eWxlIGluICgic2hv
cnQiLCAibG9uZyIsICJubyIpOgorICAgICAgICAgICAgZm9yIHNob3dsb2NhbHMgaW4gKFRydWUs
IEZhbHNlKToKKyAgICAgICAgICAgICAgICByZXByID0gZXhjaW5mby5nZXRyZXByKHN0eWxlPXN0
eWxlLCBzaG93bG9jYWxzPXNob3dsb2NhbHMpCisgICAgICAgICAgICAgICAgaWYgcHkuc3RkLnN5
cy52ZXJzaW9uX2luZm9bMF0gPCAzOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgaXNpbnN0
YW5jZShyZXByLCBSZXByRXhjZXB0aW9uSW5mbykKKyAgICAgICAgICAgICAgICBhc3NlcnQgcmVw
ci5yZXBydHJhY2ViYWNrLnN0eWxlID09IHN0eWxlCisgICAgICAgICAgICAgICAgaWYgcHkuc3Rk
LnN5cy52ZXJzaW9uX2luZm9bMF0gPj0gMzoKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGlz
aW5zdGFuY2UocmVwciwgRXhjZXB0aW9uQ2hhaW5SZXByKQorICAgICAgICAgICAgICAgICAgICBm
b3IgcmVwciBpbiByZXByLmNoYWluOgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHJl
cHJbMF0uc3R5bGUgPT0gc3R5bGUKKworICAgIGRlZiB0ZXN0X3JlcHJleGNpbmZvX3VuaWNvZGUo
c2VsZik6CisgICAgICAgIGZyb20gX3B5dGVzdC5fY29kZS5jb2RlIGltcG9ydCBUZXJtaW5hbFJl
cHIKKworICAgICAgICBjbGFzcyBNeVJlcHIoVGVybWluYWxSZXByKToKKyAgICAgICAgICAgIGRl
ZiB0b3Rlcm1pbmFsKHNlbGYsIHR3KToKKyAgICAgICAgICAgICAgICB0dy5saW5lKHB5LmJ1aWx0
aW4uX3RvdGV4dCgi0Y8iLCAidXRmLTgiKSkKKworICAgICAgICB4ID0gcHkuYnVpbHRpbi5fdG90
ZXh0KE15UmVwcigpKQorICAgICAgICBhc3NlcnQgeCA9PSBweS5idWlsdGluLl90b3RleHQoItGP
IiwgInV0Zi04IikKKworICAgIGRlZiB0ZXN0X3RvdGVybWluYWxfbG9uZyhzZWxmLCBpbXBvcnRh
c21vZCk6CisgICAgICAgIG1vZCA9IGltcG9ydGFzbW9kKCIiIgorICAgICAgICAgICAgZGVmIGco
eCk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcih4KQorICAgICAgICAgICAgZGVm
IGYoKToKKyAgICAgICAgICAgICAgICBnKDMpCisgICAgICAgICIiIikKKyAgICAgICAgZXhjaW5m
byA9IHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgbW9kLmYpCisgICAgICAgIGV4Y2luZm8udHJh
Y2ViYWNrID0gZXhjaW5mby50cmFjZWJhY2suZmlsdGVyKCkKKyAgICAgICAgcmVwciA9IGV4Y2lu
Zm8uZ2V0cmVwcigpCisgICAgICAgIHR3ID0gVFdNb2NrKCkKKyAgICAgICAgcmVwci50b3Rlcm1p
bmFsKHR3KQorICAgICAgICBhc3NlcnQgdHcubGluZXNbMF0gPT0gIiIKKyAgICAgICAgdHcubGlu
ZXMucG9wKDApCisgICAgICAgIGFzc2VydCB0dy5saW5lc1swXSA9PSAiICAgIGRlZiBmKCk6Igor
ICAgICAgICBhc3NlcnQgdHcubGluZXNbMV0gPT0gIj4gICAgICAgZygzKSIKKyAgICAgICAgYXNz
ZXJ0IHR3LmxpbmVzWzJdID09ICIiCisgICAgICAgIGxpbmUgPSB0dy5nZXRfd3JpdGVfbXNnKDMp
CisgICAgICAgIGFzc2VydCBsaW5lLmVuZHN3aXRoKCJtb2QucHkiKQorICAgICAgICBhc3NlcnQg
dHcubGluZXNbNF0gPT0gKCI6NTogIikKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzVdID09ICgi
XyAiLCBOb25lKQorICAgICAgICBhc3NlcnQgdHcubGluZXNbNl0gPT0gIiIKKyAgICAgICAgYXNz
ZXJ0IHR3LmxpbmVzWzddID09ICIgICAgZGVmIGcoeCk6IgorICAgICAgICBhc3NlcnQgdHcubGlu
ZXNbOF0gPT0gIj4gICAgICAgcmFpc2UgVmFsdWVFcnJvcih4KSIKKyAgICAgICAgYXNzZXJ0IHR3
LmxpbmVzWzldID09ICJFICAgICAgIFZhbHVlRXJyb3I6IDMiCisgICAgICAgIGFzc2VydCB0dy5s
aW5lc1sxMF0gPT0gIiIKKyAgICAgICAgbGluZSA9IHR3LmdldF93cml0ZV9tc2coMTEpCisgICAg
ICAgIGFzc2VydCBsaW5lLmVuZHN3aXRoKCJtb2QucHkiKQorICAgICAgICBhc3NlcnQgdHcubGlu
ZXNbMTJdID09ICI6MzogVmFsdWVFcnJvciIKKworICAgIGRlZiB0ZXN0X3RvdGVybWluYWxfbG9u
Z19taXNzaW5nX3NvdXJjZShzZWxmLCBpbXBvcnRhc21vZCwgdG1wZGlyKToKKyAgICAgICAgbW9k
ID0gaW1wb3J0YXNtb2QoIiIiCisgICAgICAgICAgICBkZWYgZyh4KToKKyAgICAgICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKHgpCisgICAgICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAg
ICAgIGcoMykKKyAgICAgICAgIiIiKQorICAgICAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhW
YWx1ZUVycm9yLCBtb2QuZikKKyAgICAgICAgdG1wZGlyLmpvaW4oJ21vZC5weScpLnJlbW92ZSgp
CisgICAgICAgIGV4Y2luZm8udHJhY2ViYWNrID0gZXhjaW5mby50cmFjZWJhY2suZmlsdGVyKCkK
KyAgICAgICAgcmVwciA9IGV4Y2luZm8uZ2V0cmVwcigpCisgICAgICAgIHR3ID0gVFdNb2NrKCkK
KyAgICAgICAgcmVwci50b3Rlcm1pbmFsKHR3KQorICAgICAgICBhc3NlcnQgdHcubGluZXNbMF0g
PT0gIiIKKyAgICAgICAgdHcubGluZXMucG9wKDApCisgICAgICAgIGFzc2VydCB0dy5saW5lc1sw
XSA9PSAiPiAgID8/PyIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzFdID09ICIiCisgICAgICAg
IGxpbmUgPSB0dy5nZXRfd3JpdGVfbXNnKDIpCisgICAgICAgIGFzc2VydCBsaW5lLmVuZHN3aXRo
KCJtb2QucHkiKQorICAgICAgICBhc3NlcnQgdHcubGluZXNbM10gPT0gIjo1OiAiCisgICAgICAg
IGFzc2VydCB0dy5saW5lc1s0XSA9PSAoIl8gIiwgTm9uZSkKKyAgICAgICAgYXNzZXJ0IHR3Lmxp
bmVzWzVdID09ICIiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1s2XSA9PSAiPiAgID8/PyIKKyAg
ICAgICAgYXNzZXJ0IHR3LmxpbmVzWzddID09ICJFICAgVmFsdWVFcnJvcjogMyIKKyAgICAgICAg
YXNzZXJ0IHR3LmxpbmVzWzhdID09ICIiCisgICAgICAgIGxpbmUgPSB0dy5nZXRfd3JpdGVfbXNn
KDkpCisgICAgICAgIGFzc2VydCBsaW5lLmVuZHN3aXRoKCJtb2QucHkiKQorICAgICAgICBhc3Nl
cnQgdHcubGluZXNbMTBdID09ICI6MzogVmFsdWVFcnJvciIKKworICAgIGRlZiB0ZXN0X3RvdGVy
bWluYWxfbG9uZ19pbmNvbXBsZXRlX3NvdXJjZShzZWxmLCBpbXBvcnRhc21vZCwgdG1wZGlyKToK
KyAgICAgICAgbW9kID0gaW1wb3J0YXNtb2QoIiIiCisgICAgICAgICAgICBkZWYgZyh4KToKKyAg
ICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKHgpCisgICAgICAgICAgICBkZWYgZigpOgor
ICAgICAgICAgICAgICAgIGcoMykKKyAgICAgICAgIiIiKQorICAgICAgICBleGNpbmZvID0gcHl0
ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtb2QuZikKKyAgICAgICAgdG1wZGlyLmpvaW4oJ21vZC5w
eScpLndyaXRlKCdhc2RmJykKKyAgICAgICAgZXhjaW5mby50cmFjZWJhY2sgPSBleGNpbmZvLnRy
YWNlYmFjay5maWx0ZXIoKQorICAgICAgICByZXByID0gZXhjaW5mby5nZXRyZXByKCkKKyAgICAg
ICAgdHcgPSBUV01vY2soKQorICAgICAgICByZXByLnRvdGVybWluYWwodHcpCisgICAgICAgIGFz
c2VydCB0dy5saW5lc1swXSA9PSAiIgorICAgICAgICB0dy5saW5lcy5wb3AoMCkKKyAgICAgICAg
YXNzZXJ0IHR3LmxpbmVzWzBdID09ICI+ICAgPz8/IgorICAgICAgICBhc3NlcnQgdHcubGluZXNb
MV0gPT0gIiIKKyAgICAgICAgbGluZSA9IHR3LmdldF93cml0ZV9tc2coMikKKyAgICAgICAgYXNz
ZXJ0IGxpbmUuZW5kc3dpdGgoIm1vZC5weSIpCisgICAgICAgIGFzc2VydCB0dy5saW5lc1szXSA9
PSAiOjU6ICIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzRdID09ICgiXyAiLCBOb25lKQorICAg
ICAgICBhc3NlcnQgdHcubGluZXNbNV0gPT0gIiIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzZd
ID09ICI+ICAgPz8/IgorICAgICAgICBhc3NlcnQgdHcubGluZXNbN10gPT0gIkUgICBWYWx1ZUVy
cm9yOiAzIgorICAgICAgICBhc3NlcnQgdHcubGluZXNbOF0gPT0gIiIKKyAgICAgICAgbGluZSA9
IHR3LmdldF93cml0ZV9tc2coOSkKKyAgICAgICAgYXNzZXJ0IGxpbmUuZW5kc3dpdGgoIm1vZC5w
eSIpCisgICAgICAgIGFzc2VydCB0dy5saW5lc1sxMF0gPT0gIjozOiBWYWx1ZUVycm9yIgorCisg
ICAgZGVmIHRlc3RfdG90ZXJtaW5hbF9sb25nX2ZpbGVuYW1lcyhzZWxmLCBpbXBvcnRhc21vZCk6
CisgICAgICAgIG1vZCA9IGltcG9ydGFzbW9kKCIiIgorICAgICAgICAgICAgZGVmIGYoKToKKyAg
ICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCkKKyAgICAgICAgIiIiKQorICAgICAgICBl
eGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtb2QuZikKKyAgICAgICAgdHcgPSBU
V01vY2soKQorICAgICAgICBwYXRoID0gcHkucGF0aC5sb2NhbChtb2QuX19maWxlX18pCisgICAg
ICAgIG9sZCA9IHBhdGguZGlycGF0aCgpLmNoZGlyKCkKKyAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgcmVwciA9IGV4Y2luZm8uZ2V0cmVwcihhYnNwYXRoPUZhbHNlKQorICAgICAgICAgICAgcmVw
ci50b3Rlcm1pbmFsKHR3KQorICAgICAgICAgICAgeCA9IHB5LnBhdGgubG9jYWwoKS5iZXN0cmVs
cGF0aChwYXRoKQorICAgICAgICAgICAgaWYgbGVuKHgpIDwgbGVuKHN0cihwYXRoKSk6CisgICAg
ICAgICAgICAgICAgbXNnID0gdHcuZ2V0X3dyaXRlX21zZygtMikKKyAgICAgICAgICAgICAgICBh
c3NlcnQgbXNnID09ICJtb2QucHkiCisgICAgICAgICAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWy0x
XSA9PSAiOjM6IFZhbHVlRXJyb3IiCisKKyAgICAgICAgICAgIHJlcHIgPSBleGNpbmZvLmdldHJl
cHIoYWJzcGF0aD1UcnVlKQorICAgICAgICAgICAgcmVwci50b3Rlcm1pbmFsKHR3KQorICAgICAg
ICAgICAgbXNnID0gdHcuZ2V0X3dyaXRlX21zZygtMikKKyAgICAgICAgICAgIGFzc2VydCBtc2cg
PT0gcGF0aAorICAgICAgICAgICAgbGluZSA9IHR3LmxpbmVzWy0xXQorICAgICAgICAgICAgYXNz
ZXJ0IGxpbmUgPT0gIjozOiBWYWx1ZUVycm9yIgorICAgICAgICBmaW5hbGx5OgorICAgICAgICAg
ICAgb2xkLmNoZGlyKCkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgncmVwcm9wdGlv
bnMnLCBbCisgICAgICAgIHsnc3R5bGUnOiBzdHlsZSwgJ3Nob3dsb2NhbHMnOiBzaG93bG9jYWxz
LAorICAgICAgICAgJ2Z1bmNhcmdzJzogZnVuY2FyZ3MsICd0YmZpbHRlcic6IHRiZmlsdGVyCisg
ICAgICAgICB9IGZvciBzdHlsZSBpbiAoImxvbmciLCAic2hvcnQiLCAibm8iKQorICAgICAgICBm
b3Igc2hvd2xvY2FscyBpbiAoVHJ1ZSwgRmFsc2UpCisgICAgICAgIGZvciB0YmZpbHRlciBpbiAo
VHJ1ZSwgRmFsc2UpCisgICAgICAgIGZvciBmdW5jYXJncyBpbiAoVHJ1ZSwgRmFsc2UpXSkKKyAg
ICBkZWYgdGVzdF9mb3JtYXRfZXhjaW5mbyhzZWxmLCBpbXBvcnRhc21vZCwgcmVwcm9wdGlvbnMp
OgorICAgICAgICBtb2QgPSBpbXBvcnRhc21vZCgiIiIKKyAgICAgICAgICAgIGRlZiBnKHgpOgor
ICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoeCkKKyAgICAgICAgICAgIGRlZiBmKCk6
CisgICAgICAgICAgICAgICAgZygzKQorICAgICAgICAiIiIpCisgICAgICAgIGV4Y2luZm8gPSBw
eXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIG1vZC5mKQorICAgICAgICB0dyA9IHB5LmlvLlRlcm1p
bmFsV3JpdGVyKHN0cmluZ2lvPVRydWUpCisgICAgICAgIHJlcHIgPSBleGNpbmZvLmdldHJlcHIo
KipyZXByb3B0aW9ucykKKyAgICAgICAgcmVwci50b3Rlcm1pbmFsKHR3KQorICAgICAgICBhc3Nl
cnQgdHcuc3RyaW5naW8uZ2V0dmFsdWUoKQorCisgICAgZGVmIHRlc3RfdHJhY2ViYWNrX3JlcHJf
c3R5bGUoc2VsZiwgaW1wb3J0YXNtb2QpOgorICAgICAgICBtb2QgPSBpbXBvcnRhc21vZCgiIiIK
KyAgICAgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICAgICAgZygpCisgICAgICAgICAgICBk
ZWYgZygpOgorICAgICAgICAgICAgICAgIGgoKQorICAgICAgICAgICAgZGVmIGgoKToKKyAgICAg
ICAgICAgICAgICBpKCkKKyAgICAgICAgICAgIGRlZiBpKCk6CisgICAgICAgICAgICAgICAgcmFp
c2UgVmFsdWVFcnJvcigpCisgICAgICAgICIiIikKKyAgICAgICAgZXhjaW5mbyA9IHB5dGVzdC5y
YWlzZXMoVmFsdWVFcnJvciwgbW9kLmYpCisgICAgICAgIGV4Y2luZm8udHJhY2ViYWNrID0gZXhj
aW5mby50cmFjZWJhY2suZmlsdGVyKCkKKyAgICAgICAgZXhjaW5mby50cmFjZWJhY2tbMV0uc2V0
X3JlcHJfc3R5bGUoInNob3J0IikKKyAgICAgICAgZXhjaW5mby50cmFjZWJhY2tbMl0uc2V0X3Jl
cHJfc3R5bGUoInNob3J0IikKKyAgICAgICAgciA9IGV4Y2luZm8uZ2V0cmVwcihzdHlsZT0ibG9u
ZyIpCisgICAgICAgIHR3ID0gVFdNb2NrKCkKKyAgICAgICAgci50b3Rlcm1pbmFsKHR3KQorICAg
ICAgICBmb3IgbGluZSBpbiB0dy5saW5lczoKKyAgICAgICAgICAgIHByaW50KGxpbmUpCisgICAg
ICAgIGFzc2VydCB0dy5saW5lc1swXSA9PSAiIgorICAgICAgICBhc3NlcnQgdHcubGluZXNbMV0g
PT0gIiAgICBkZWYgZigpOiIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzJdID09ICI+ICAgICAg
IGcoKSIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzNdID09ICIiCisgICAgICAgIG1zZyA9IHR3
LmdldF93cml0ZV9tc2coNCkKKyAgICAgICAgYXNzZXJ0IG1zZy5lbmRzd2l0aCgibW9kLnB5IikK
KyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzVdID09ICI6MzogIgorICAgICAgICBhc3NlcnQgdHcu
bGluZXNbNl0gPT0gKCJfICIsIE5vbmUpCisgICAgICAgIHR3LmdldF93cml0ZV9tc2coNykKKyAg
ICAgICAgYXNzZXJ0IHR3LmxpbmVzWzhdLmVuZHN3aXRoKCJpbiBnIikKKyAgICAgICAgYXNzZXJ0
IHR3LmxpbmVzWzldID09ICIgICAgaCgpIgorICAgICAgICB0dy5nZXRfd3JpdGVfbXNnKDEwKQor
ICAgICAgICBhc3NlcnQgdHcubGluZXNbMTFdLmVuZHN3aXRoKCJpbiBoIikKKyAgICAgICAgYXNz
ZXJ0IHR3LmxpbmVzWzEyXSA9PSAiICAgIGkoKSIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzEz
XSA9PSAoIl8gIiwgTm9uZSkKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzE0XSA9PSAiIgorICAg
ICAgICBhc3NlcnQgdHcubGluZXNbMTVdID09ICIgICAgZGVmIGkoKToiCisgICAgICAgIGFzc2Vy
dCB0dy5saW5lc1sxNl0gPT0gIj4gICAgICAgcmFpc2UgVmFsdWVFcnJvcigpIgorICAgICAgICBh
c3NlcnQgdHcubGluZXNbMTddID09ICJFICAgICAgIFZhbHVlRXJyb3IiCisgICAgICAgIGFzc2Vy
dCB0dy5saW5lc1sxOF0gPT0gIiIKKyAgICAgICAgbXNnID0gdHcuZ2V0X3dyaXRlX21zZygxOSkK
KyAgICAgICAgbXNnLmVuZHN3aXRoKCJtb2QucHkiKQorICAgICAgICBhc3NlcnQgdHcubGluZXNb
MjBdID09ICI6OTogVmFsdWVFcnJvciIKKworICAgIEBweXRlc3QubWFyay5za2lwaWYoInN5cy52
ZXJzaW9uX2luZm9bMF0gPCAzIikKKyAgICBkZWYgdGVzdF9leGNfY2hhaW5fcmVwcihzZWxmLCBp
bXBvcnRhc21vZCk6CisgICAgICAgIG1vZCA9IGltcG9ydGFzbW9kKCIiIgorICAgICAgICAgICAg
Y2xhc3MgRXJyKEV4Y2VwdGlvbik6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAg
ZGVmIGYoKToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIGcoKQor
ICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgICAgICAg
ICAgcmFpc2UgRXJyKCkgZnJvbSBlCisgICAgICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAg
ICAgICAgICAgICAgaCgpCisgICAgICAgICAgICBkZWYgZygpOgorICAgICAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoKQorCisgICAgICAgICAgICBkZWYgaCgpOgorICAgICAgICAgICAgICAg
IHJhaXNlIEF0dHJpYnV0ZUVycm9yKCkKKyAgICAgICAgIiIiKQorICAgICAgICBleGNpbmZvID0g
cHl0ZXN0LnJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgbW9kLmYpCisgICAgICAgIHIgPSBleGNpbmZv
LmdldHJlcHIoc3R5bGU9ImxvbmciKQorICAgICAgICB0dyA9IFRXTW9jaygpCisgICAgICAgIHIu
dG90ZXJtaW5hbCh0dykKKyAgICAgICAgZm9yIGxpbmUgaW4gdHcubGluZXM6CisgICAgICAgICAg
ICBwcmludChsaW5lKQorICAgICAgICBhc3NlcnQgdHcubGluZXNbMF0gPT0gIiIKKyAgICAgICAg
YXNzZXJ0IHR3LmxpbmVzWzFdID09ICIgICAgZGVmIGYoKToiCisgICAgICAgIGFzc2VydCB0dy5s
aW5lc1syXSA9PSAiICAgICAgICB0cnk6IgorICAgICAgICBhc3NlcnQgdHcubGluZXNbM10gPT0g
Ij4gICAgICAgICAgIGcoKSIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzRdID09ICIiCisgICAg
ICAgIGxpbmUgPSB0dy5nZXRfd3JpdGVfbXNnKDUpCisgICAgICAgIGFzc2VydCBsaW5lLmVuZHN3
aXRoKCdtb2QucHknKQorICAgICAgICBhc3NlcnQgdHcubGluZXNbNl0gPT0gJzo2OiAnCisgICAg
ICAgIGFzc2VydCB0dy5saW5lc1s3XSA9PSAoIl8gIiwgTm9uZSkKKyAgICAgICAgYXNzZXJ0IHR3
LmxpbmVzWzhdID09ICIiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1s5XSA9PSAiICAgIGRlZiBn
KCk6IgorICAgICAgICBhc3NlcnQgdHcubGluZXNbMTBdID09ICI+ICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoKSIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzExXSA9PSAiRSAgICAgICBWYWx1ZUVy
cm9yIgorICAgICAgICBhc3NlcnQgdHcubGluZXNbMTJdID09ICIiCisgICAgICAgIGxpbmUgPSB0
dy5nZXRfd3JpdGVfbXNnKDEzKQorICAgICAgICBhc3NlcnQgbGluZS5lbmRzd2l0aCgnbW9kLnB5
JykKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzE0XSA9PSAnOjEyOiBWYWx1ZUVycm9yJworICAg
ICAgICBhc3NlcnQgdHcubGluZXNbMTVdID09ICIiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1sx
Nl0gPT0gIlRoZSBhYm92ZSBleGNlcHRpb24gd2FzIHRoZSBkaXJlY3QgY2F1c2Ugb2YgdGhlIGZv
bGxvd2luZyBleGNlcHRpb246IgorICAgICAgICBhc3NlcnQgdHcubGluZXNbMTddID09ICIiCisg
ICAgICAgIGFzc2VydCB0dy5saW5lc1sxOF0gPT0gIiAgICBkZWYgZigpOiIKKyAgICAgICAgYXNz
ZXJ0IHR3LmxpbmVzWzE5XSA9PSAiICAgICAgICB0cnk6IgorICAgICAgICBhc3NlcnQgdHcubGlu
ZXNbMjBdID09ICIgICAgICAgICAgICBnKCkiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1syMV0g
PT0gIiAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOiIKKyAgICAgICAgYXNzZXJ0IHR3Lmxp
bmVzWzIyXSA9PSAiPiAgICAgICAgICAgcmFpc2UgRXJyKCkgZnJvbSBlIgorICAgICAgICBhc3Nl
cnQgdHcubGluZXNbMjNdID09ICJFICAgICAgICAgICB0ZXN0X2V4Y19jaGFpbl9yZXByMC5tb2Qu
RXJyIgorICAgICAgICBhc3NlcnQgdHcubGluZXNbMjRdID09ICIiCisgICAgICAgIGxpbmUgPSB0
dy5nZXRfd3JpdGVfbXNnKDI1KQorICAgICAgICBhc3NlcnQgbGluZS5lbmRzd2l0aCgnbW9kLnB5
JykKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzI2XSA9PSAiOjg6IEVyciIKKyAgICAgICAgYXNz
ZXJ0IHR3LmxpbmVzWzI3XSA9PSAiIgorICAgICAgICBhc3NlcnQgdHcubGluZXNbMjhdID09ICJE
dXJpbmcgaGFuZGxpbmcgb2YgdGhlIGFib3ZlIGV4Y2VwdGlvbiwgYW5vdGhlciBleGNlcHRpb24g
b2NjdXJyZWQ6IgorICAgICAgICBhc3NlcnQgdHcubGluZXNbMjldID09ICIiCisgICAgICAgIGFz
c2VydCB0dy5saW5lc1szMF0gPT0gIiAgICBkZWYgZigpOiIKKyAgICAgICAgYXNzZXJ0IHR3Lmxp
bmVzWzMxXSA9PSAiICAgICAgICB0cnk6IgorICAgICAgICBhc3NlcnQgdHcubGluZXNbMzJdID09
ICIgICAgICAgICAgICBnKCkiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1szM10gPT0gIiAgICAg
ICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOiIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzM0XSA9
PSAiICAgICAgICAgICAgcmFpc2UgRXJyKCkgZnJvbSBlIgorICAgICAgICBhc3NlcnQgdHcubGlu
ZXNbMzVdID09ICIgICAgICAgIGZpbmFsbHk6IgorICAgICAgICBhc3NlcnQgdHcubGluZXNbMzZd
ID09ICI+ICAgICAgICAgICBoKCkiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1szN10gPT0gIiIK
KyAgICAgICAgbGluZSA9IHR3LmdldF93cml0ZV9tc2coMzgpCisgICAgICAgIGFzc2VydCBsaW5l
LmVuZHN3aXRoKCdtb2QucHknKQorICAgICAgICBhc3NlcnQgdHcubGluZXNbMzldID09ICI6MTA6
ICIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzQwXSA9PSAoJ18gJywgTm9uZSkKKyAgICAgICAg
YXNzZXJ0IHR3LmxpbmVzWzQxXSA9PSAiIgorICAgICAgICBhc3NlcnQgdHcubGluZXNbNDJdID09
ICIgICAgZGVmIGgoKToiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1s0M10gPT0gIj4gICAgICAg
cmFpc2UgQXR0cmlidXRlRXJyb3IoKSIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzQ0XSA9PSAi
RSAgICAgICBBdHRyaWJ1dGVFcnJvciIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzQ1XSA9PSAi
IgorICAgICAgICBsaW5lID0gdHcuZ2V0X3dyaXRlX21zZyg0NikKKyAgICAgICAgYXNzZXJ0IGxp
bmUuZW5kc3dpdGgoJ21vZC5weScpCisgICAgICAgIGFzc2VydCB0dy5saW5lc1s0N10gPT0gIjox
NTogQXR0cmlidXRlRXJyb3IiCisKKyAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKCJzeXMudmVyc2lv
bl9pbmZvWzBdIDwgMyIpCisgICAgZGVmIHRlc3RfZXhjX3JlcHJfd2l0aF9yYWlzZV9mcm9tX25v
bmVfY2hhaW5fc3VwcHJlc3Npb24oc2VsZiwgaW1wb3J0YXNtb2QpOgorICAgICAgICBtb2QgPSBp
bXBvcnRhc21vZCgiIiIKKyAgICAgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICAgICAgdHJ5
OgorICAgICAgICAgICAgICAgICAgICBnKCkKKyAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0
aW9uOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigpIGZyb20gTm9u
ZQorICAgICAgICAgICAgZGVmIGcoKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCkKKyAgICAgICAgIiIiKQorICAgICAgICBleGNpbmZvID0gcHl0ZXN0LnJhaXNlcyhBdHRyaWJ1
dGVFcnJvciwgbW9kLmYpCisgICAgICAgIHIgPSBleGNpbmZvLmdldHJlcHIoc3R5bGU9Imxvbmci
KQorICAgICAgICB0dyA9IFRXTW9jaygpCisgICAgICAgIHIudG90ZXJtaW5hbCh0dykKKyAgICAg
ICAgZm9yIGxpbmUgaW4gdHcubGluZXM6CisgICAgICAgICAgICBwcmludChsaW5lKQorICAgICAg
ICBhc3NlcnQgdHcubGluZXNbMF0gPT0gIiIKKyAgICAgICAgYXNzZXJ0IHR3LmxpbmVzWzFdID09
ICIgICAgZGVmIGYoKToiCisgICAgICAgIGFzc2VydCB0dy5saW5lc1syXSA9PSAiICAgICAgICB0
cnk6IgorICAgICAgICBhc3NlcnQgdHcubGluZXNbM10gPT0gIiAgICAgICAgICAgIGcoKSIKKyAg
ICAgICAgYXNzZXJ0IHR3LmxpbmVzWzRdID09ICIgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Igor
ICAgICAgICBhc3NlcnQgdHcubGluZXNbNV0gPT0gIj4gICAgICAgICAgIHJhaXNlIEF0dHJpYnV0
ZUVycm9yKCkgZnJvbSBOb25lIgorICAgICAgICBhc3NlcnQgdHcubGluZXNbNl0gPT0gIkUgICAg
ICAgICAgIEF0dHJpYnV0ZUVycm9yIgorICAgICAgICBhc3NlcnQgdHcubGluZXNbN10gPT0gIiIK
KyAgICAgICAgbGluZSA9IHR3LmdldF93cml0ZV9tc2coOCkKKyAgICAgICAgYXNzZXJ0IGxpbmUu
ZW5kc3dpdGgoJ21vZC5weScpCisgICAgICAgIGFzc2VydCB0dy5saW5lc1s5XSA9PSAiOjY6IEF0
dHJpYnV0ZUVycm9yIgorICAgICAgICBhc3NlcnQgbGVuKHR3LmxpbmVzKSA9PSAxMAorCisgICAg
QHB5dGVzdC5tYXJrLnNraXBpZigic3lzLnZlcnNpb25faW5mb1swXSA8IDMiKQorICAgIEBweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgncmVhc29uLCBkZXNjcmlwdGlvbicsIFsKKyAgICAgICAgKCdj
YXVzZScsICdUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZXhjZXB0aW9uOicpLAorICAgICAgICAoJ2NvbnRleHQnLCAnRHVyaW5nIGhhbmRs
aW5nIG9mIHRoZSBhYm92ZSBleGNlcHRpb24sIGFub3RoZXIgZXhjZXB0aW9uIG9jY3VycmVkOicp
LAorICAgIF0pCisgICAgZGVmIHRlc3RfZXhjX2NoYWluX3JlcHJfd2l0aG91dF90cmFjZWJhY2so
c2VsZiwgaW1wb3J0YXNtb2QsIHJlYXNvbiwgZGVzY3JpcHRpb24pOgorICAgICAgICAiIiIKKyAg
ICAgICAgSGFuZGxlIHJlcHJlc2VudGF0aW9uIG9mIGV4Y2VwdGlvbiBjaGFpbnMgd2hlcmUgb25l
IG9mIHRoZSBleGNlcHRpb25zIGRvZXNuJ3QgaGF2ZSBhCisgICAgICAgIHJlYWwgdHJhY2ViYWNr
LCBzdWNoIGFzIHRob3NlIHJhaXNlZCBpbiBhIHN1YnByb2Nlc3Mgc3VibWl0dGVkIGJ5IHRoZSBt
dWx0aXByb2Nlc3NpbmcKKyAgICAgICAgbW9kdWxlICgjMTk4NCkuCisgICAgICAgICIiIgorICAg
ICAgICBmcm9tIF9weXRlc3QucHl0ZXN0ZXIgaW1wb3J0IExpbmVNYXRjaGVyCisgICAgICAgIGV4
Y19oYW5kbGluZ19jb2RlID0gJyBmcm9tIGUnIGlmIHJlYXNvbiA9PSAnY2F1c2UnIGVsc2UgJycK
KyAgICAgICAgbW9kID0gaW1wb3J0YXNtb2QoIiIiCisgICAgICAgICAgICBkZWYgZigpOgorICAg
ICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgZygpCisgICAgICAgICAgICAg
ICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBSdW50
aW1lRXJyb3IoJ3J1bnRpbWUgcHJvYmxlbScpe2V4Y19oYW5kbGluZ19jb2RlfQorICAgICAgICAg
ICAgZGVmIGcoKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdpbnZhbGlkIHZh
bHVlJykKKyAgICAgICAgIiIiLmZvcm1hdChleGNfaGFuZGxpbmdfY29kZT1leGNfaGFuZGxpbmdf
Y29kZSkpCisKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRpbWVFcnJvcikgYXMgZXhj
aW5mbzoKKyAgICAgICAgICAgIG1vZC5mKCkKKworICAgICAgICAjIGVtdWxhdGUgdGhlIGlzc3Vl
IGRlc2NyaWJlZCBpbiAjMTk4NAorICAgICAgICBhdHRyID0gJ19fJXNfXycgJSByZWFzb24KKyAg
ICAgICAgZ2V0YXR0cihleGNpbmZvLnZhbHVlLCBhdHRyKS5fX3RyYWNlYmFja19fID0gTm9uZQor
CisgICAgICAgIHIgPSBleGNpbmZvLmdldHJlcHIoKQorICAgICAgICB0dyA9IHB5LmlvLlRlcm1p
bmFsV3JpdGVyKHN0cmluZ2lvPVRydWUpCisgICAgICAgIHR3Lmhhc21hcmt1cCA9IEZhbHNlCisg
ICAgICAgIHIudG90ZXJtaW5hbCh0dykKKworICAgICAgICBtYXRjaGVyID0gTGluZU1hdGNoZXIo
dHcuc3RyaW5naW8uZ2V0dmFsdWUoKS5zcGxpdGxpbmVzKCkpCisgICAgICAgIG1hdGNoZXIuZm5t
YXRjaF9saW5lcyhbCisgICAgICAgICAgICAiVmFsdWVFcnJvcjogaW52YWxpZCB2YWx1ZSIsCisg
ICAgICAgICAgICBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgICIqIGV4Y2VwdCBFeGNlcHRpb24g
YXMgZToiLAorICAgICAgICAgICAgIj4gKiByYWlzZSBSdW50aW1lRXJyb3IoJ3J1bnRpbWUgcHJv
YmxlbScpIiArIGV4Y19oYW5kbGluZ19jb2RlLAorICAgICAgICAgICAgIkUgKlJ1bnRpbWVFcnJv
cjogcnVudGltZSBwcm9ibGVtIiwKKyAgICAgICAgXSkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoInN0eWxlIiwgWyJzaG9ydCIsICJsb25nIl0pCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoImVuY29kaW5nIiwgW05vbmUsICJ1dGY4IiwgInV0ZjE2Il0pCitkZWYgdGVzdF9yZXByX3Ry
YWNlYmFja193aXRoX3VuaWNvZGUoc3R5bGUsIGVuY29kaW5nKToKKyAgICBtc2cgPSB1J+KYuScK
KyAgICBpZiBlbmNvZGluZyBpcyBub3QgTm9uZToKKyAgICAgICAgbXNnID0gbXNnLmVuY29kZShl
bmNvZGluZykKKyAgICB0cnk6CisgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcihtc2cpCisgICAg
ZXhjZXB0IFJ1bnRpbWVFcnJvcjoKKyAgICAgICAgZV9pbmZvID0gRXhjZXB0aW9uSW5mbygpCisg
ICAgZm9ybWF0dGVyID0gRm9ybWF0dGVkRXhjaW5mbyhzdHlsZT1zdHlsZSkKKyAgICByZXByX3Ry
YWNlYmFjayA9IGZvcm1hdHRlci5yZXByX3RyYWNlYmFjayhlX2luZm8pCisgICAgYXNzZXJ0IHJl
cHJfdHJhY2ViYWNrIGlzIG5vdCBOb25lCisKKworZGVmIHRlc3RfY3dkX2RlbGV0ZWQodGVzdGRp
cik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBkZWYgdGVzdCh0bXBkaXIp
OgorICAgICAgICAgICAgdG1wZGlyLmNoZGlyKCkKKyAgICAgICAgICAgIHRtcGRpci5yZW1vdmUo
KQorICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWycqIDEgZmFp
bGVkIGluIConXSkKKyAgICBhc3NlcnQgJ0lOVEVSTkFMRVJST1InIG5vdCBpbiByZXN1bHQuc3Rk
b3V0LnN0cigpICsgcmVzdWx0LnN0ZGVyci5zdHIoKQorCisKK2RlZiB0ZXN0X2V4Y2VwdGlvbl9y
ZXByX2V4dHJhY3Rpb25fZXJyb3Jfb25fcmVjdXJzaW9uKCk6CisgICAgIiIiCisgICAgRW5zdXJl
IHdlIGNhbiBwcm9wZXJseSBkZXRlY3QgYSByZWN1cnNpb24gZXJyb3IgZXZlbgorICAgIGlmIHNv
bWUgbG9jYWxzIHJhaXNlIGVycm9yIG9uIGNvbXBhcmlzaW9uICgjMjQ1OSkuCisgICAgIiIiCisg
ICAgY2xhc3MgbnVtcHlfbGlrZShvYmplY3QpOgorCisgICAgICAgIGRlZiBfX2VxX18oc2VsZiwg
b3RoZXIpOgorICAgICAgICAgICAgaWYgdHlwZShvdGhlcikgaXMgbnVtcHlfbGlrZToKKyAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdUaGUgdHJ1dGggdmFsdWUgb2YgYW4gYXJyYXkg
JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dpdGggbW9yZSB0aGFuIG9uZSBl
bGVtZW50IGlzIGFtYmlndW91cy4nKQorCisgICAgZGVmIGEoeCk6CisgICAgICAgIHJldHVybiBi
KG51bXB5X2xpa2UoKSkKKworICAgIGRlZiBiKHgpOgorICAgICAgICByZXR1cm4gYShudW1weV9s
aWtlKCkpCisKKyAgICB0cnk6CisgICAgICAgIGEobnVtcHlfbGlrZSgpKQorICAgIGV4Y2VwdDog
ICMgbm9xYQorICAgICAgICBmcm9tIF9weXRlc3QuX2NvZGUuY29kZSBpbXBvcnQgRXhjZXB0aW9u
SW5mbworICAgICAgICBmcm9tIF9weXRlc3QucHl0ZXN0ZXIgaW1wb3J0IExpbmVNYXRjaGVyCisg
ICAgICAgIGV4Y19pbmZvID0gRXhjZXB0aW9uSW5mbygpCisKKyAgICAgICAgbWF0Y2hlciA9IExp
bmVNYXRjaGVyKHN0cihleGNfaW5mby5nZXRyZXByKCkpLnNwbGl0bGluZXMoKSkKKyAgICAgICAg
bWF0Y2hlci5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICchISEgUmVjdXJzaW9uIGVycm9y
IGRldGVjdGVkLCBidXQgYW4gZXJyb3Igb2NjdXJyZWQgbG9jYXRpbmcgdGhlIG9yaWdpbiBvZiBy
ZWN1cnNpb24uJywKKyAgICAgICAgICAgICcqVGhlIGZvbGxvd2luZyBleGNlcHRpb24gaGFwcGVu
ZWQqJywKKyAgICAgICAgICAgICcqVmFsdWVFcnJvcjogVGhlIHRydXRoIHZhbHVlIG9mIGFuIGFy
cmF5KicsCisgICAgICAgIF0pCisKKworZGVmIHRlc3Rfbm9fcmVjdXJzaW9uX2luZGV4X29uX3Jl
Y3Vyc2lvbl9lcnJvcigpOgorICAgICIiIgorICAgIEVuc3VyZSB0aGF0IHdlIGRvbid0IGJyZWFr
IGluIGNhc2Ugd2UgY2FuJ3QgZmluZCB0aGUgcmVjdXJzaW9uIGluZGV4CisgICAgZHVyaW5nIGEg
cmVjdXJzaW9uIGVycm9yICgjMjQ4NikuCisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICBjbGFz
cyBSZWN1cnNpb25EZXB0aEVycm9yKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgX19nZXRhdHRy
X18oc2VsZiwgYXR0cik6CisgICAgICAgICAgICAgICAgcmV0dXJuIGdldGF0dHIoc2VsZiwgJ18n
ICsgYXR0cikKKworICAgICAgICBSZWN1cnNpb25EZXB0aEVycm9yKCkudHJpZ2dlcgorICAgIGV4
Y2VwdDogICMgbm9xYQorICAgICAgICBmcm9tIF9weXRlc3QuX2NvZGUuY29kZSBpbXBvcnQgRXhj
ZXB0aW9uSW5mbworICAgICAgICBleGNfaW5mbyA9IEV4Y2VwdGlvbkluZm8oKQorICAgICAgICBh
c3NlcnQgJ21heGltdW0gcmVjdXJzaW9uJyBpbiBzdHIoZXhjX2luZm8uZ2V0cmVwcigpKQorICAg
IGVsc2U6CisgICAgICAgIGFzc2VydCAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L2NvZGUvdGVzdF9zb3VyY2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2NvZGUvdGVzdF9zb3Vy
Y2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOGVkYTY4YTZlMmY4OTU0YzViOThkOTdlYTFkNTNmM2M1YWZiYTVk
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvY29kZS90ZXN0X3NvdXJj
ZS5weQpAQCAtMCwwICsxLDY4MCBAQAorIyBmbGFrZTg6IG5vcWEKKyMgZGlzYWJsZSBmbGFrZSBj
aGVjayBvbiB0aGlzIGZpbGUgYmVjYXVzZSBzb21lIGNvbnN0cnVjdHMgYXJlIHN0cmFuZ2UKKyMg
b3IgcmVkdW5kYW50IG9uIHB1cnBvc2UgYW5kIGNhbid0IGJlIGRpc2FibGUgb24gYSBsaW5lLWJ5
LWxpbmUgYmFzaXMKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZp
c2lvbiwgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCBzeXMKKworaW1wb3J0IF9weXRlc3QuX2NvZGUK
K2ltcG9ydCBweQoraW1wb3J0IHB5dGVzdAorZnJvbSBfcHl0ZXN0Ll9jb2RlIGltcG9ydCBTb3Vy
Y2UKK2Zyb20gX3B5dGVzdC5fY29kZS5zb3VyY2UgaW1wb3J0IF9hc3QKKworaWYgX2FzdCBpcyBu
b3QgTm9uZToKKyAgICBhc3Rvbmx5ID0gcHl0ZXN0Lm1hcmsubm90aGluZworZWxzZToKKyAgICBh
c3Rvbmx5ID0gcHl0ZXN0Lm1hcmsueGZhaWwoIlRydWUiLCByZWFzb249Im9ubHkgd29ya3Mgd2l0
aCBBU1QtY29tcGlsZSIpCisKK2ZhaWxzb25qeXRob24gPSBweXRlc3QubWFyay54ZmFpbCgic3lz
LnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2phdmEnKSIpCisKKworZGVmIHRlc3Rfc291cmNlX3N0cl9m
dW5jdGlvbigpOgorICAgIHggPSBTb3VyY2UoIjMiKQorICAgIGFzc2VydCBzdHIoeCkgPT0gIjMi
CisKKyAgICB4ID0gU291cmNlKCIgICAzIikKKyAgICBhc3NlcnQgc3RyKHgpID09ICIzIgorCisg
ICAgeCA9IFNvdXJjZSgiIiIKKyAgICAgICAgMworICAgICIiIiwgcnN0cmlwPUZhbHNlKQorICAg
IGFzc2VydCBzdHIoeCkgPT0gIlxuM1xuICAgICIKKworICAgIHggPSBTb3VyY2UoIiIiCisgICAg
ICAgIDMKKyAgICAiIiIsIHJzdHJpcD1UcnVlKQorICAgIGFzc2VydCBzdHIoeCkgPT0gIlxuMyIK
KworCitkZWYgdGVzdF91bmljb2RlKCk6CisgICAgdHJ5OgorICAgICAgICB1bmljb2RlCisgICAg
ZXhjZXB0IE5hbWVFcnJvcjoKKyAgICAgICAgcmV0dXJuCisgICAgeCA9IFNvdXJjZSh1bmljb2Rl
KCI0IikpCisgICAgYXNzZXJ0IHN0cih4KSA9PSAiNCIKKyAgICBjbyA9IF9weXRlc3QuX2NvZGUu
Y29tcGlsZSh1bmljb2RlKCd1Ilx4YzNceGE1IicsICd1dGY4JyksIG1vZGU9J2V2YWwnKQorICAg
IHZhbCA9IGV2YWwoY28pCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsLCB1bmljb2RlKQorCisK
K2RlZiB0ZXN0X3NvdXJjZV9mcm9tX2Z1bmN0aW9uKCk6CisgICAgc291cmNlID0gX3B5dGVzdC5f
Y29kZS5Tb3VyY2UodGVzdF9zb3VyY2Vfc3RyX2Z1bmN0aW9uKQorICAgIGFzc2VydCBzdHIoc291
cmNlKS5zdGFydHN3aXRoKCdkZWYgdGVzdF9zb3VyY2Vfc3RyX2Z1bmN0aW9uKCk6JykKKworCitk
ZWYgdGVzdF9zb3VyY2VfZnJvbV9tZXRob2QoKToKKyAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0
KToKKyAgICAgICAgZGVmIHRlc3RfbWV0aG9kKHNlbGYpOgorICAgICAgICAgICAgcGFzcworICAg
IHNvdXJjZSA9IF9weXRlc3QuX2NvZGUuU291cmNlKFRlc3RDbGFzcygpLnRlc3RfbWV0aG9kKQor
ICAgIGFzc2VydCBzb3VyY2UubGluZXMgPT0gWyJkZWYgdGVzdF9tZXRob2Qoc2VsZik6IiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgIHBhc3MiXQorCisKK2RlZiB0ZXN0X3NvdXJj
ZV9mcm9tX2xpbmVzKCk6CisgICAgbGluZXMgPSBbImEgXG4iLCAiYlxuIiwgImMiXQorICAgIHNv
dXJjZSA9IF9weXRlc3QuX2NvZGUuU291cmNlKGxpbmVzKQorICAgIGFzc2VydCBzb3VyY2UubGlu
ZXMgPT0gWydhICcsICdiJywgJ2MnXQorCisKK2RlZiB0ZXN0X3NvdXJjZV9mcm9tX2lubmVyX2Z1
bmN0aW9uKCk6CisgICAgZGVmIGYoKToKKyAgICAgICAgcGFzcworICAgIHNvdXJjZSA9IF9weXRl
c3QuX2NvZGUuU291cmNlKGYsIGRlaW5kZW50PUZhbHNlKQorICAgIGFzc2VydCBzdHIoc291cmNl
KS5zdGFydHN3aXRoKCcgICAgZGVmIGYoKTonKQorICAgIHNvdXJjZSA9IF9weXRlc3QuX2NvZGUu
U291cmNlKGYpCisgICAgYXNzZXJ0IHN0cihzb3VyY2UpLnN0YXJ0c3dpdGgoJ2RlZiBmKCk6JykK
KworCitkZWYgdGVzdF9zb3VyY2VfcHV0YXJvdW5kX3NpbXBsZSgpOgorICAgIHNvdXJjZSA9IFNv
dXJjZSgicmFpc2UgVmFsdWVFcnJvciIpCisgICAgc291cmNlID0gc291cmNlLnB1dGFyb3VuZCgK
KyAgICAgICAgInRyeToiLCAiIiJcCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAg
ICAgICAgeCA9IDQyCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB4ID0gMjMiIiIpCisgICAg
YXNzZXJ0IHN0cihzb3VyY2UpID09ICIiIlwKK3RyeToKKyAgICByYWlzZSBWYWx1ZUVycm9yCitl
eGNlcHQgVmFsdWVFcnJvcjoKKyAgICB4ID0gNDIKK2Vsc2U6CisgICAgeCA9IDIzIiIiCisKKwor
ZGVmIHRlc3Rfc291cmNlX3B1dGFyb3VuZCgpOgorICAgIHNvdXJjZSA9IFNvdXJjZSgpCisgICAg
c291cmNlID0gc291cmNlLnB1dGFyb3VuZCgiIiIKKyAgICAgICAgaWYgMToKKyAgICAgICAgICAg
IHg9MQorICAgICIiIikKKyAgICBhc3NlcnQgc3RyKHNvdXJjZSkuc3RyaXAoKSA9PSAiaWYgMTpc
biAgICB4PTEiCisKKworZGVmIHRlc3Rfc291cmNlX3N0cmlwcygpOgorICAgIHNvdXJjZSA9IFNv
dXJjZSgiIikKKyAgICBhc3NlcnQgc291cmNlID09IFNvdXJjZSgpCisgICAgYXNzZXJ0IHN0cihz
b3VyY2UpID09ICcnCisgICAgYXNzZXJ0IHNvdXJjZS5zdHJpcCgpID09IHNvdXJjZQorCisKK2Rl
ZiB0ZXN0X3NvdXJjZV9zdHJpcF9tdWx0aWxpbmUoKToKKyAgICBzb3VyY2UgPSBTb3VyY2UoKQor
ICAgIHNvdXJjZS5saW5lcyA9IFsiIiwgIiBoZWxsbyIsICIgICJdCisgICAgc291cmNlMiA9IHNv
dXJjZS5zdHJpcCgpCisgICAgYXNzZXJ0IHNvdXJjZTIubGluZXMgPT0gWyIgaGVsbG8iXQorCisK
K2RlZiB0ZXN0X3N5bnRheGVycm9yX3JlcmVwcmVzZW50YXRpb24oKToKKyAgICBleCA9IHB5dGVz
dC5yYWlzZXMoU3ludGF4RXJyb3IsIF9weXRlc3QuX2NvZGUuY29tcGlsZSwgJ3h5eiB4eXonKQor
ICAgIGFzc2VydCBleC52YWx1ZS5saW5lbm8gPT0gMQorICAgIGFzc2VydCBleC52YWx1ZS5vZmZz
ZXQgaW4gKDQsIDcpICAjIFhYWCBweXB5L2p5dGhvbiB2ZXJzdXMgY3B5dGhvbj8KKyAgICBhc3Nl
cnQgZXgudmFsdWUudGV4dC5zdHJpcCgpLCAneCB4JworCisKK2RlZiB0ZXN0X2lzcGFyc2VhYmxl
KCk6CisgICAgYXNzZXJ0IFNvdXJjZSgiaGVsbG8iKS5pc3BhcnNlYWJsZSgpCisgICAgYXNzZXJ0
IFNvdXJjZSgiaWYgMTpcbiAgcGFzcyIpLmlzcGFyc2VhYmxlKCkKKyAgICBhc3NlcnQgU291cmNl
KCIgXG5pZiAxOlxuICBwYXNzIikuaXNwYXJzZWFibGUoKQorICAgIGFzc2VydCBub3QgU291cmNl
KCJpZiAxOlxuIikuaXNwYXJzZWFibGUoKQorICAgIGFzc2VydCBub3QgU291cmNlKCIgXG5pZiAx
OlxucGFzcyIpLmlzcGFyc2VhYmxlKCkKKyAgICBhc3NlcnQgbm90IFNvdXJjZShjaHIoMCkpLmlz
cGFyc2VhYmxlKCkKKworCitjbGFzcyBUZXN0QWNjZXNzZXMob2JqZWN0KToKKyAgICBzb3VyY2Ug
PSBTb3VyY2UoIiIiXAorICAgICAgICBkZWYgZih4KToKKyAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgZGVmIGcoeCk6CisgICAgICAgICAgICBwYXNzCisgICAgIiIiKQorCisgICAgZGVmIHRlc3Rf
Z2V0cmFuZ2Uoc2VsZik6CisgICAgICAgIHggPSBzZWxmLnNvdXJjZVswOjJdCisgICAgICAgIGFz
c2VydCB4LmlzcGFyc2VhYmxlKCkKKyAgICAgICAgYXNzZXJ0IGxlbih4LmxpbmVzKSA9PSAyCisg
ICAgICAgIGFzc2VydCBzdHIoeCkgPT0gImRlZiBmKHgpOlxuICAgIHBhc3MiCisKKyAgICBkZWYg
dGVzdF9nZXRsaW5lKHNlbGYpOgorICAgICAgICB4ID0gc2VsZi5zb3VyY2VbMF0KKyAgICAgICAg
YXNzZXJ0IHggPT0gImRlZiBmKHgpOiIKKworICAgIGRlZiB0ZXN0X2xlbihzZWxmKToKKyAgICAg
ICAgYXNzZXJ0IGxlbihzZWxmLnNvdXJjZSkgPT0gNAorCisgICAgZGVmIHRlc3RfaXRlcihzZWxm
KToKKyAgICAgICAgdmFsdWVzID0gW3ggZm9yIHggaW4gc2VsZi5zb3VyY2VdCisgICAgICAgIGFz
c2VydCBsZW4odmFsdWVzKSA9PSA0CisKKworY2xhc3MgVGVzdFNvdXJjZVBhcnNpbmdBbmRDb21w
aWxpbmcob2JqZWN0KToKKyAgICBzb3VyY2UgPSBTb3VyY2UoIiIiXAorICAgICAgICBkZWYgZih4
KToKKyAgICAgICAgICAgIGFzc2VydCAoeCA9PQorICAgICAgICAgICAgICAgICAgICAzICsKKyAg
ICAgICAgICAgICAgICAgICAgNCkKKyAgICAiIiIpLnN0cmlwKCkKKworICAgIGRlZiB0ZXN0X2Nv
bXBpbGUoc2VsZik6CisgICAgICAgIGNvID0gX3B5dGVzdC5fY29kZS5jb21waWxlKCJ4PTMiKQor
ICAgICAgICBkID0ge30KKyAgICAgICAgZXhlYyhjbywgZCkKKyAgICAgICAgYXNzZXJ0IGRbJ3gn
XSA9PSAzCisKKyAgICBkZWYgdGVzdF9jb21waWxlX2FuZF9nZXRzb3VyY2Vfc2ltcGxlKHNlbGYp
OgorICAgICAgICBjbyA9IF9weXRlc3QuX2NvZGUuY29tcGlsZSgieD0zIikKKyAgICAgICAgZXhl
YyhjbykKKyAgICAgICAgc291cmNlID0gX3B5dGVzdC5fY29kZS5Tb3VyY2UoY28pCisgICAgICAg
IGFzc2VydCBzdHIoc291cmNlKSA9PSAieD0zIgorCisgICAgZGVmIHRlc3RfY29tcGlsZV9hbmRf
Z2V0c291cmNlX3Rocm91Z2hfc2FtZV9mdW5jdGlvbihzZWxmKToKKyAgICAgICAgZGVmIGdlbnNv
dXJjZShzb3VyY2UpOgorICAgICAgICAgICAgcmV0dXJuIF9weXRlc3QuX2NvZGUuY29tcGlsZShz
b3VyY2UpCisgICAgICAgIGNvMSA9IGdlbnNvdXJjZSgiIiIKKyAgICAgICAgICAgIGRlZiBmKCk6
CisgICAgICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IoKQorICAgICAgICAiIiIpCisgICAgICAg
IGNvMiA9IGdlbnNvdXJjZSgiIiIKKyAgICAgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcigpCisgICAgICAgICIiIikKKyAgICAgICAgc291cmNlMSA9IHB5
LnN0ZC5pbnNwZWN0LmdldHNvdXJjZShjbzEpCisgICAgICAgIGFzc2VydCAnS2V5RXJyb3InIGlu
IHNvdXJjZTEKKyAgICAgICAgc291cmNlMiA9IHB5LnN0ZC5pbnNwZWN0LmdldHNvdXJjZShjbzIp
CisgICAgICAgIGFzc2VydCAnVmFsdWVFcnJvcicgaW4gc291cmNlMgorCisgICAgZGVmIHRlc3Rf
Z2V0c3RhdGVtZW50KHNlbGYpOgorICAgICAgICAjIHByaW50IHN0cihzZWxmLnNvdXJjZSkKKyAg
ICAgICAgYXNzID0gc3RyKHNlbGYuc291cmNlWzE6XSkKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2Uo
MSwgNCk6CisgICAgICAgICAgICAjIHByaW50ICJ0cnlpbmcgc3RhcnQgaW4gbGluZSAlciIgJSBz
ZWxmLnNvdXJjZVtpXQorICAgICAgICAgICAgcyA9IHNlbGYuc291cmNlLmdldHN0YXRlbWVudChp
KQorICAgICAgICAgICAgI3ggPSBzLmRlaW5kZW50KCkKKyAgICAgICAgICAgIGFzc2VydCBzdHIo
cykgPT0gYXNzCisKKyAgICBkZWYgdGVzdF9nZXRzdGF0ZW1lbnRyYW5nZV90cmlwbGVfcXVvdGVk
KHNlbGYpOgorICAgICAgICAjIHByaW50IHN0cihzZWxmLnNvdXJjZSkKKyAgICAgICAgc291cmNl
ID0gU291cmNlKCIiImhlbGxvKCcnJworICAgICAgICAnJycpIiIiKQorICAgICAgICBzID0gc291
cmNlLmdldHN0YXRlbWVudCgwKQorICAgICAgICBhc3NlcnQgcyA9PSBzdHIoc291cmNlKQorICAg
ICAgICBzID0gc291cmNlLmdldHN0YXRlbWVudCgxKQorICAgICAgICBhc3NlcnQgcyA9PSBzdHIo
c291cmNlKQorCisgICAgQGFzdG9ubHkKKyAgICBkZWYgdGVzdF9nZXRzdGF0ZW1lbnRyYW5nZV93
aXRoaW5fY29uc3RydWN0cyhzZWxmKToKKyAgICAgICAgc291cmNlID0gU291cmNlKCIiIlwKKyAg
ICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IKKyAgICAgICAgICAgICAgICBleGNlcHQgU29tZVRoaW5nOgorICAg
ICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAg
ICAgIDQyCisgICAgICAgICIiIikKKyAgICAgICAgYXNzZXJ0IGxlbihzb3VyY2UpID09IDcKKyAg
ICAgICAgIyBjaGVjayBhbGwgbGluZW5vJ3MgdGhhdCBjb3VsZCBvY2N1ciBpbiBhIHRyYWNlYmFj
aworICAgICAgICAjIGFzc2VydCBzb3VyY2UuZ2V0c3RhdGVtZW50cmFuZ2UoMCkgPT0gKDAsIDcp
CisgICAgICAgICMgYXNzZXJ0IHNvdXJjZS5nZXRzdGF0ZW1lbnRyYW5nZSgxKSA9PSAoMSwgNSkK
KyAgICAgICAgYXNzZXJ0IHNvdXJjZS5nZXRzdGF0ZW1lbnRyYW5nZSgyKSA9PSAoMiwgMykKKyAg
ICAgICAgYXNzZXJ0IHNvdXJjZS5nZXRzdGF0ZW1lbnRyYW5nZSgzKSA9PSAoMywgNCkKKyAgICAg
ICAgYXNzZXJ0IHNvdXJjZS5nZXRzdGF0ZW1lbnRyYW5nZSg0KSA9PSAoNCwgNSkKKyAgICAgICAg
IyBhc3NlcnQgc291cmNlLmdldHN0YXRlbWVudHJhbmdlKDUpID09ICgwLCA3KQorICAgICAgICBh
c3NlcnQgc291cmNlLmdldHN0YXRlbWVudHJhbmdlKDYpID09ICg2LCA3KQorCisgICAgZGVmIHRl
c3RfZ2V0c3RhdGVtZW50cmFuZ2VfYnVnKHNlbGYpOgorICAgICAgICBzb3VyY2UgPSBTb3VyY2Uo
IiIiXAorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHggPSAoCisgICAgICAgICAg
ICAgICAgICAgeSArCisgICAgICAgICAgICAgICAgICAgeikKKyAgICAgICAgICAgIGV4Y2VwdDoK
KyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgYXNzZXJ0IGxlbihz
b3VyY2UpID09IDYKKyAgICAgICAgYXNzZXJ0IHNvdXJjZS5nZXRzdGF0ZW1lbnRyYW5nZSgyKSA9
PSAoMSwgNCkKKworICAgIGRlZiB0ZXN0X2dldHN0YXRlbWVudHJhbmdlX2J1ZzIoc2VsZik6Cisg
ICAgICAgIHNvdXJjZSA9IFNvdXJjZSgiIiJcCisgICAgICAgICAgICBhc3NlcnQgKAorICAgICAg
ICAgICAgICAgIDMzCisgICAgICAgICAgICAgICAgPT0KKyAgICAgICAgICAgICAgICBbCisgICAg
ICAgICAgICAgICAgICBYKDMsCisgICAgICAgICAgICAgICAgICAgICAgYj0xLCBjPTIKKyAgICAg
ICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgKQorICAg
ICAgICAiIiIpCisgICAgICAgIGFzc2VydCBsZW4oc291cmNlKSA9PSA5CisgICAgICAgIGFzc2Vy
dCBzb3VyY2UuZ2V0c3RhdGVtZW50cmFuZ2UoNSkgPT0gKDAsIDkpCisKKyAgICBkZWYgdGVzdF9n
ZXRzdGF0ZW1lbnRyYW5nZV9hc3RfaXNzdWU1OChzZWxmKToKKyAgICAgICAgc291cmNlID0gU291
cmNlKCIiIlwKKworICAgICAgICAgICAgZGVmIHRlc3Rfc29tZSgpOgorICAgICAgICAgICAgICAg
IGZvciBhIGluIFthIGZvciBhIGluCisgICAgICAgICAgICAgICAgICAgIENBVVNFX0VSUk9SXTog
cGFzcworCisgICAgICAgICAgICB4ID0gMworICAgICAgICAiIiIpCisgICAgICAgIGFzc2VydCBn
ZXRzdGF0ZW1lbnQoMiwgc291cmNlKS5saW5lcyA9PSBzb3VyY2UubGluZXNbMjozXQorICAgICAg
ICBhc3NlcnQgZ2V0c3RhdGVtZW50KDMsIHNvdXJjZSkubGluZXMgPT0gc291cmNlLmxpbmVzWzM6
NF0KKworICAgIGRlZiB0ZXN0X2dldHN0YXRlbWVudHJhbmdlX291dF9vZl9ib3VuZHNfcHkzKHNl
bGYpOgorICAgICAgICBzb3VyY2UgPSBTb3VyY2UoImlmIHh4eDpcbiAgIGZyb20gLmNvbGxlY3Rp
b25zIGltcG9ydCBzb21ldGhpbmciKQorICAgICAgICByID0gc291cmNlLmdldHN0YXRlbWVudHJh
bmdlKDEpCisgICAgICAgIGFzc2VydCByID09ICgxLCAyKQorCisgICAgZGVmIHRlc3RfZ2V0c3Rh
dGVtZW50cmFuZ2Vfd2l0aF9zeW50YXhlcnJvcl9pc3N1ZTcoc2VsZik6CisgICAgICAgIHNvdXJj
ZSA9IFNvdXJjZSgiOiIpCisgICAgICAgIHB5dGVzdC5yYWlzZXMoU3ludGF4RXJyb3IsIGxhbWJk
YTogc291cmNlLmdldHN0YXRlbWVudHJhbmdlKDApKQorCisgICAgZGVmIHRlc3RfY29tcGlsZV90
b19hc3Qoc2VsZik6CisgICAgICAgIGltcG9ydCBhc3QKKyAgICAgICAgc291cmNlID0gU291cmNl
KCJ4ID0gNCIpCisgICAgICAgIG1vZCA9IHNvdXJjZS5jb21waWxlKGZsYWc9YXN0LlB5Q0ZfT05M
WV9BU1QpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG1vZCwgYXN0Lk1vZHVsZSkKKyAgICAg
ICAgY29tcGlsZShtb2QsICI8ZmlsZW5hbWU+IiwgImV4ZWMiKQorCisgICAgZGVmIHRlc3RfY29t
cGlsZV9hbmRfZ2V0c291cmNlKHNlbGYpOgorICAgICAgICBjbyA9IHNlbGYuc291cmNlLmNvbXBp
bGUoKQorICAgICAgICBweS5idWlsdGluLmV4ZWNfKGNvLCBnbG9iYWxzKCkpCisgICAgICAgIGYo
NykKKyAgICAgICAgZXhjaW5mbyA9IHB5dGVzdC5yYWlzZXMoQXNzZXJ0aW9uRXJyb3IsICJmKDYp
IikKKyAgICAgICAgZnJhbWUgPSBleGNpbmZvLnRyYWNlYmFja1stMV0uZnJhbWUKKyAgICAgICAg
c3RtdCA9IGZyYW1lLmNvZGUuZnVsbHNvdXJjZS5nZXRzdGF0ZW1lbnQoZnJhbWUubGluZW5vKQor
ICAgICAgICAjIHByaW50ICJibG9jayIsIHN0cihibG9jaykKKyAgICAgICAgYXNzZXJ0IHN0cihz
dG10KS5zdHJpcCgpLnN0YXJ0c3dpdGgoJ2Fzc2VydCcpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoJ25hbWUnLCBbJycsIE5vbmUsICdteSddKQorICAgIGRlZiB0ZXN0X2NvbXBpbGVm
dW5jc19hbmRfcGF0aF9zYW5pdHkoc2VsZiwgbmFtZSk6CisgICAgICAgIGRlZiBjaGVjayhjb21w
LCBuYW1lKToKKyAgICAgICAgICAgIGNvID0gY29tcChzZWxmLnNvdXJjZSwgbmFtZSkKKyAgICAg
ICAgICAgIGlmIG5vdCBuYW1lOgorICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gImNvZGVnZW4g
JXM6JWQ+IiAlIChteXBhdGgsIG15bGluZW5vICsgMiArIDIpCisgICAgICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gImNvZGVnZW4gJXIgJXM6JWQ+IiAlIChuYW1lLCBt
eXBhdGgsIG15bGluZW5vICsgMiArIDIpCisgICAgICAgICAgICBmbiA9IGNvLmNvX2ZpbGVuYW1l
CisgICAgICAgICAgICBhc3NlcnQgZm4uZW5kc3dpdGgoZXhwZWN0ZWQpCisKKyAgICAgICAgbXlj
b2RlID0gX3B5dGVzdC5fY29kZS5Db2RlKHNlbGYudGVzdF9jb21waWxlZnVuY3NfYW5kX3BhdGhf
c2FuaXR5KQorICAgICAgICBteWxpbmVubyA9IG15Y29kZS5maXJzdGxpbmVubworICAgICAgICBt
eXBhdGggPSBteWNvZGUucGF0aAorCisgICAgICAgIGZvciBjb21wIGluIF9weXRlc3QuX2NvZGUu
Y29tcGlsZSwgX3B5dGVzdC5fY29kZS5Tb3VyY2UuY29tcGlsZToKKyAgICAgICAgICAgIGNoZWNr
KGNvbXAsIG5hbWUpCisKKyAgICBkZWYgdGVzdF9vZmZzZXRsZXNzX3N5bmVycihzZWxmKToKKyAg
ICAgICAgcHl0ZXN0LnJhaXNlcyhTeW50YXhFcnJvciwgX3B5dGVzdC5fY29kZS5jb21waWxlLCAi
bGFtYmRhIGEsYTogMCIsIG1vZGU9J2V2YWwnKQorCisKK2RlZiB0ZXN0X2dldHN0YXJ0aW5nYmxv
Y2tfc2luZ2xlbGluZSgpOgorICAgIGNsYXNzIEEob2JqZWN0KToKKyAgICAgICAgZGVmIF9faW5p
dF9fKHNlbGYsICphcmdzKToKKyAgICAgICAgICAgIGZyYW1lID0gc3lzLl9nZXRmcmFtZSgxKQor
ICAgICAgICAgICAgc2VsZi5zb3VyY2UgPSBfcHl0ZXN0Ll9jb2RlLkZyYW1lKGZyYW1lKS5zdGF0
ZW1lbnQKKworICAgIHggPSBBKCd4JywgJ3knKQorCisgICAgdmFsdWVzID0gW2kgZm9yIGkgaW4g
eC5zb3VyY2UubGluZXMgaWYgaS5zdHJpcCgpXQorICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSAx
CisKKworZGVmIHRlc3RfZ2V0bGluZV9maW5hbGx5KCk6CisgICAgZGVmIGMoKTogcGFzcworICAg
IGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKFR5cGVFcnJvciwgIiIiCisgICAgICAgICAgIHRlYXJk
b3duID0gTm9uZQorICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgYygxKQorICAgICAg
ICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIGlmIHRlYXJkb3duOgorICAgICAgICAgICAg
ICAgICAgICB0ZWFyZG93bigpCisgICAgIiIiKQorICAgIHNvdXJjZSA9IGV4Y2luZm8udHJhY2Vi
YWNrWy0xXS5zdGF0ZW1lbnQKKyAgICBhc3NlcnQgc3RyKHNvdXJjZSkuc3RyaXAoKSA9PSAnYygx
KScKKworCitkZWYgdGVzdF9nZXRmdW5jc291cmNlX2R5bmFtaWMoKToKKyAgICBzb3VyY2UgPSAi
IiIKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IKKworICAg
ICAgICBkZWYgZygpOiBwYXNzCisgICAgIiIiCisgICAgY28gPSBfcHl0ZXN0Ll9jb2RlLmNvbXBp
bGUoc291cmNlKQorICAgIHB5LmJ1aWx0aW4uZXhlY18oY28sIGdsb2JhbHMoKSkKKyAgICBhc3Nl
cnQgc3RyKF9weXRlc3QuX2NvZGUuU291cmNlKGYpKS5zdHJpcCgpID09ICdkZWYgZigpOlxuICAg
IHJhaXNlIFZhbHVlRXJyb3InCisgICAgYXNzZXJ0IHN0cihfcHl0ZXN0Ll9jb2RlLlNvdXJjZShn
KSkuc3RyaXAoKSA9PSAnZGVmIGcoKTogcGFzcycKKworCitkZWYgdGVzdF9nZXRmdW5jc291cmNl
X3dpdGhfbXVsdGluZV9zdHJpbmcoKToKKyAgICBkZWYgZigpOgorICAgICAgICBjID0gJycnd2hp
bGUgVHJ1ZToKKyAgICBwYXNzCisnJycKKyAgICBhc3NlcnQgc3RyKF9weXRlc3QuX2NvZGUuU291
cmNlKGYpKS5zdHJpcCgpID09ICJkZWYgZigpOlxuICAgIGMgPSAnJyd3aGlsZSBUcnVlOlxuICAg
IHBhc3NcbicnJyIKKworCitkZWYgdGVzdF9kZWluZGVudCgpOgorICAgIGZyb20gX3B5dGVzdC5f
Y29kZS5zb3VyY2UgaW1wb3J0IGRlaW5kZW50IGFzIGRlaW5kZW50CisgICAgYXNzZXJ0IGRlaW5k
ZW50KFsnXHRmb28nLCAnXHRiYXInLCBdKSA9PSBbJ2ZvbycsICdiYXInXQorCisgICAgZGVmIGYo
KToKKyAgICAgICAgYyA9ICcnJ3doaWxlIFRydWU6CisgICAgcGFzcworJycnCisgICAgaW1wb3J0
IGluc3BlY3QKKyAgICBsaW5lcyA9IGRlaW5kZW50KGluc3BlY3QuZ2V0c291cmNlKGYpLnNwbGl0
bGluZXMoKSkKKyAgICBhc3NlcnQgbGluZXMgPT0gWyJkZWYgZigpOiIsICIgICAgYyA9ICcnJ3do
aWxlIFRydWU6IiwgIiAgICBwYXNzIiwgIicnJyJdCisKKyAgICBzb3VyY2UgPSAiIiIKKyAgICAg
ICAgZGVmIGYoKToKKyAgICAgICAgICAgIGRlZiBnKCk6CisgICAgICAgICAgICAgICAgcGFzcwor
ICAgICIiIgorICAgIGxpbmVzID0gZGVpbmRlbnQoc291cmNlLnNwbGl0bGluZXMoKSkKKyAgICBh
c3NlcnQgbGluZXMgPT0gWycnLCAnZGVmIGYoKTonLCAnICAgIGRlZiBnKCk6JywgJyAgICAgICAg
cGFzcycsICcgICAgJ10KKworCitkZWYgdGVzdF9zb3VyY2Vfb2ZfY2xhc3NfYXRfZW9mX3dpdGhv
dXRfbmV3bGluZSh0bXBkaXIpOgorICAgICMgdGhpcyB0ZXN0IGZhaWxzIGJlY2F1c2UgdGhlIGlt
cGxpY2l0IGluc3BlY3QuZ2V0c291cmNlKEEpIGJlbG93CisgICAgIyBkb2VzIG5vdCByZXR1cm4g
dGhlICJ4ID0gMSIgbGFzdCBsaW5lLgorICAgIHNvdXJjZSA9IF9weXRlc3QuX2NvZGUuU291cmNl
KCcnJworICAgICAgICBjbGFzcyBBKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgbWV0aG9kKHNl
bGYpOgorICAgICAgICAgICAgICAgIHggPSAxCisgICAgJycnKQorICAgIHBhdGggPSB0bXBkaXIu
am9pbigiYS5weSIpCisgICAgcGF0aC53cml0ZShzb3VyY2UpCisgICAgczIgPSBfcHl0ZXN0Ll9j
b2RlLlNvdXJjZSh0bXBkaXIuam9pbigiYS5weSIpLnB5aW1wb3J0KCkuQSkKKyAgICBhc3NlcnQg
c3RyKHNvdXJjZSkuc3RyaXAoKSA9PSBzdHIoczIpLnN0cmlwKCkKKworCitpZiBUcnVlOgorICAg
IGRlZiB4KCk6CisgICAgICAgIHBhc3MKKworCitkZWYgdGVzdF9nZXRzb3VyY2VfZmFsbGJhY2so
KToKKyAgICBmcm9tIF9weXRlc3QuX2NvZGUuc291cmNlIGltcG9ydCBnZXRzb3VyY2UKKyAgICBl
eHBlY3RlZCA9ICIiImRlZiB4KCk6CisgICAgcGFzcyIiIgorICAgIHNyYyA9IGdldHNvdXJjZSh4
KQorICAgIGFzc2VydCBzcmMgPT0gZXhwZWN0ZWQKKworCitkZWYgdGVzdF9pZGVtX2NvbXBpbGVf
YW5kX2dldHNvdXJjZSgpOgorICAgIGZyb20gX3B5dGVzdC5fY29kZS5zb3VyY2UgaW1wb3J0IGdl
dHNvdXJjZQorICAgIGV4cGVjdGVkID0gImRlZiB4KCk6IHBhc3MiCisgICAgY28gPSBfcHl0ZXN0
Ll9jb2RlLmNvbXBpbGUoZXhwZWN0ZWQpCisgICAgc3JjID0gZ2V0c291cmNlKGNvKQorICAgIGFz
c2VydCBzcmMgPT0gZXhwZWN0ZWQKKworCitkZWYgdGVzdF9maW5kc291cmNlX2ZhbGxiYWNrKCk6
CisgICAgZnJvbSBfcHl0ZXN0Ll9jb2RlLnNvdXJjZSBpbXBvcnQgZmluZHNvdXJjZQorICAgIHNy
YywgbGluZW5vID0gZmluZHNvdXJjZSh4KQorICAgIGFzc2VydCAndGVzdF9maW5kc291cmNlX3Np
bXBsZScgaW4gc3RyKHNyYykKKyAgICBhc3NlcnQgc3JjW2xpbmVub10gPT0gJyAgICBkZWYgeCgp
OicKKworCitkZWYgdGVzdF9maW5kc291cmNlKCk6CisgICAgZnJvbSBfcHl0ZXN0Ll9jb2RlLnNv
dXJjZSBpbXBvcnQgZmluZHNvdXJjZQorICAgIGNvID0gX3B5dGVzdC5fY29kZS5jb21waWxlKCIi
ImlmIDE6CisgICAgZGVmIHgoKToKKyAgICAgICAgcGFzcworIiIiKQorCisgICAgc3JjLCBsaW5l
bm8gPSBmaW5kc291cmNlKGNvKQorICAgIGFzc2VydCAnaWYgMTonIGluIHN0cihzcmMpCisKKyAg
ICBkID0ge30KKyAgICBldmFsKGNvLCBkKQorICAgIHNyYywgbGluZW5vID0gZmluZHNvdXJjZShk
Wyd4J10pCisgICAgYXNzZXJ0ICdpZiAxOicgaW4gc3RyKHNyYykKKyAgICBhc3NlcnQgc3JjW2xp
bmVub10gPT0gIiAgICBkZWYgeCgpOiIKKworCitkZWYgdGVzdF9nZXRmc2xpbmVubygpOgorICAg
IGZyb20gX3B5dGVzdC5fY29kZSBpbXBvcnQgZ2V0ZnNsaW5lbm8KKworICAgIGRlZiBmKHgpOgor
ICAgICAgICBwYXNzCisKKyAgICBmc3BhdGgsIGxpbmVubyA9IGdldGZzbGluZW5vKGYpCisKKyAg
ICBhc3NlcnQgZnNwYXRoLmJhc2VuYW1lID09ICJ0ZXN0X3NvdXJjZS5weSIKKyAgICBhc3NlcnQg
bGluZW5vID09IF9weXRlc3QuX2NvZGUuZ2V0cmF3Y29kZShmKS5jb19maXJzdGxpbmVubyAtIDEg
ICMgc2VlIGZpbmRzb3VyY2UKKworICAgIGNsYXNzIEEob2JqZWN0KToKKyAgICAgICAgcGFzcwor
CisgICAgZnNwYXRoLCBsaW5lbm8gPSBnZXRmc2xpbmVubyhBKQorCisgICAgXywgQV9saW5lbm8g
PSBweS5zdGQuaW5zcGVjdC5maW5kc291cmNlKEEpCisgICAgYXNzZXJ0IGZzcGF0aC5iYXNlbmFt
ZSA9PSAidGVzdF9zb3VyY2UucHkiCisgICAgYXNzZXJ0IGxpbmVubyA9PSBBX2xpbmVubworCisg
ICAgYXNzZXJ0IGdldGZzbGluZW5vKDMpID09ICgiIiwgLTEpCisKKyAgICBjbGFzcyBCKG9iamVj
dCk6CisgICAgICAgIHBhc3MKKyAgICBCLl9fbmFtZV9fID0gIkIyIgorICAgIGFzc2VydCBnZXRm
c2xpbmVubyhCKVsxXSA9PSAtMQorCisKK2RlZiB0ZXN0X2NvZGVfb2Zfb2JqZWN0X2luc3RhbmNl
X3dpdGhfY2FsbCgpOgorICAgIGNsYXNzIEEob2JqZWN0KToKKyAgICAgICAgcGFzcworICAgIHB5
dGVzdC5yYWlzZXMoVHlwZUVycm9yLCBsYW1iZGE6IF9weXRlc3QuX2NvZGUuU291cmNlKEEoKSkp
CisKKyAgICBjbGFzcyBXaXRoQ2FsbChvYmplY3QpOgorICAgICAgICBkZWYgX19jYWxsX18oc2Vs
Zik6CisgICAgICAgICAgICBwYXNzCisKKyAgICBjb2RlID0gX3B5dGVzdC5fY29kZS5Db2RlKFdp
dGhDYWxsKCkpCisgICAgYXNzZXJ0ICdwYXNzJyBpbiBzdHIoY29kZS5zb3VyY2UoKSkKKworICAg
IGNsYXNzIEhlbGxvKG9iamVjdCk6CisgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmKToKKyAgICAg
ICAgICAgIHBhc3MKKyAgICBweXRlc3QucmFpc2VzKFR5cGVFcnJvciwgbGFtYmRhOiBfcHl0ZXN0
Ll9jb2RlLkNvZGUoSGVsbG8pKQorCisKK2RlZiBnZXRzdGF0ZW1lbnQobGluZW5vLCBzb3VyY2Up
OgorICAgIGZyb20gX3B5dGVzdC5fY29kZS5zb3VyY2UgaW1wb3J0IGdldHN0YXRlbWVudHJhbmdl
X2FzdAorICAgIHNvdXJjZSA9IF9weXRlc3QuX2NvZGUuU291cmNlKHNvdXJjZSwgZGVpbmRlbnQ9
RmFsc2UpCisgICAgYXN0LCBzdGFydCwgZW5kID0gZ2V0c3RhdGVtZW50cmFuZ2VfYXN0KGxpbmVu
bywgc291cmNlKQorICAgIHJldHVybiBzb3VyY2Vbc3RhcnQ6ZW5kXQorCisKK2RlZiB0ZXN0X29u
ZWxpbmUoKToKKyAgICBzb3VyY2UgPSBnZXRzdGF0ZW1lbnQoMCwgInJhaXNlIFZhbHVlRXJyb3Ii
KQorICAgIGFzc2VydCBzdHIoc291cmNlKSA9PSAicmFpc2UgVmFsdWVFcnJvciIKKworCitkZWYg
dGVzdF9jb21tZW50X2FuZF9ub19uZXdsaW5lX2F0X2VuZCgpOgorICAgIGZyb20gX3B5dGVzdC5f
Y29kZS5zb3VyY2UgaW1wb3J0IGdldHN0YXRlbWVudHJhbmdlX2FzdAorICAgIHNvdXJjZSA9IFNv
dXJjZShbJ2RlZiB0ZXN0X2Jhc2ljX2NvbXBsZXgoKTonLAorICAgICAgICAgICAgICAgICAgICAg
JyAgICBhc3NlcnQgMSA9PSAyJywKKyAgICAgICAgICAgICAgICAgICAgICcjIHZpbTogZmlsZXR5
cGU9cHlvcGVuY2w6ZmRtPW1hcmtlciddKQorICAgIGFzdCwgc3RhcnQsIGVuZCA9IGdldHN0YXRl
bWVudHJhbmdlX2FzdCgxLCBzb3VyY2UpCisgICAgYXNzZXJ0IGVuZCA9PSAyCisKKworZGVmIHRl
c3Rfb25lbGluZV9hbmRfY29tbWVudCgpOgorICAgIHNvdXJjZSA9IGdldHN0YXRlbWVudCgwLCAi
cmFpc2UgVmFsdWVFcnJvclxuI2hlbGxvIikKKyAgICBhc3NlcnQgc3RyKHNvdXJjZSkgPT0gInJh
aXNlIFZhbHVlRXJyb3IiCisKKworQHB5dGVzdC5tYXJrLnhmYWlsKGhhc2F0dHIoc3lzLCAicHlw
eV92ZXJzaW9uX2luZm8iKSwKKyAgICAgICAgICAgICAgICAgICByZWFzb249J2RvZXMgbm90IHdv
cmsgb24gcHlweScpCitkZWYgdGVzdF9jb21tZW50cygpOgorICAgIHNvdXJjZSA9ICcnJ2RlZiB0
ZXN0KCk6CisgICAgImNvbW1lbnQgMSIKKyAgICB4ID0gMQorICAgICAgIyBjb21tZW50IDIKKyAg
ICAjIGNvbW1lbnQgMworCisgICAgYXNzZXJ0IEZhbHNlCisKKyIiIgorY29tbWVudCA0CisiIiIK
KycnJworICAgIGZvciBsaW5lIGluIHJhbmdlKDIsIDYpOgorICAgICAgICBhc3NlcnQgc3RyKGdl
dHN0YXRlbWVudChsaW5lLCBzb3VyY2UpKSA9PSAnICAgIHggPSAxJworICAgIGZvciBsaW5lIGlu
IHJhbmdlKDYsIDEwKToKKyAgICAgICAgYXNzZXJ0IHN0cihnZXRzdGF0ZW1lbnQobGluZSwgc291
cmNlKSkgPT0gJyAgICBhc3NlcnQgRmFsc2UnCisgICAgYXNzZXJ0IHN0cihnZXRzdGF0ZW1lbnQo
MTAsIHNvdXJjZSkpID09ICciIiInCisKKworZGVmIHRlc3RfY29tbWVudF9pbl9zdGF0ZW1lbnQo
KToKKyAgICBzb3VyY2UgPSAnJyd0ZXN0KGZvbz0xLAorICAgICMgY29tbWVudCAxCisgICAgYmFy
PTIpCisnJycKKyAgICBmb3IgbGluZSBpbiByYW5nZSgxLCAzKToKKyAgICAgICAgYXNzZXJ0IHN0
cihnZXRzdGF0ZW1lbnQobGluZSwgc291cmNlKSkgPT0gXAorICAgICAgICAgICAgJ3Rlc3QoZm9v
PTEsXG4gICAgIyBjb21tZW50IDFcbiAgICBiYXI9MiknCisKKworZGVmIHRlc3Rfc2luZ2xlX2xp
bmVfZWxzZSgpOgorICAgIHNvdXJjZSA9IGdldHN0YXRlbWVudCgxLCAiaWYgRmFsc2U6IDJcbmVs
c2U6IDMiKQorICAgIGFzc2VydCBzdHIoc291cmNlKSA9PSAiZWxzZTogMyIKKworCitkZWYgdGVz
dF9zaW5nbGVfbGluZV9maW5hbGx5KCk6CisgICAgc291cmNlID0gZ2V0c3RhdGVtZW50KDEsICJ0
cnk6IDFcbmZpbmFsbHk6IDMiKQorICAgIGFzc2VydCBzdHIoc291cmNlKSA9PSAiZmluYWxseTog
MyIKKworCitkZWYgdGVzdF9pc3N1ZTU1KCk6CisgICAgc291cmNlID0gKCdkZWYgcm91bmRfdHJp
cChkaW5wKTpcbiAgYXNzZXJ0IDEgPT0gZGlucFxuJworICAgICAgICAgICAgICAnZGVmIHRlc3Rf
cnQoKTpcbiAgcm91bmRfdHJpcCgiIiJcbiIiIilcbicpCisgICAgcyA9IGdldHN0YXRlbWVudCgz
LCBzb3VyY2UpCisgICAgYXNzZXJ0IHN0cihzKSA9PSAnICByb3VuZF90cmlwKCIiIlxuIiIiKScK
KworCitkZWYgWFhYdGVzdF9tdWx0aWxpbmUoKToKKyAgICBzb3VyY2UgPSBnZXRzdGF0ZW1lbnQo
MCwgIiIiXAorcmFpc2UgVmFsdWVFcnJvcigKKyAgICAyMworKQoreCA9IDMKKyIiIikKKyAgICBh
c3NlcnQgc3RyKHNvdXJjZSkgPT0gInJhaXNlIFZhbHVlRXJyb3IoXG4gICAgMjNcbikiCisKKwor
Y2xhc3MgVGVzdFRyeShvYmplY3QpOgorICAgIHB5dGVzdG1hcmsgPSBhc3Rvbmx5CisgICAgc291
cmNlID0gIiIiXAordHJ5OgorICAgIHJhaXNlIFZhbHVlRXJyb3IKK2V4Y2VwdCBTb21ldGhpbmc6
CisgICAgcmFpc2UgSW5kZXhFcnJvcigxKQorZWxzZToKKyAgICByYWlzZSBLZXlFcnJvcigpCisi
IiIKKworICAgIGRlZiB0ZXN0X2JvZHkoc2VsZik6CisgICAgICAgIHNvdXJjZSA9IGdldHN0YXRl
bWVudCgxLCBzZWxmLnNvdXJjZSkKKyAgICAgICAgYXNzZXJ0IHN0cihzb3VyY2UpID09ICIgICAg
cmFpc2UgVmFsdWVFcnJvciIKKworICAgIGRlZiB0ZXN0X2V4Y2VwdF9saW5lKHNlbGYpOgorICAg
ICAgICBzb3VyY2UgPSBnZXRzdGF0ZW1lbnQoMiwgc2VsZi5zb3VyY2UpCisgICAgICAgIGFzc2Vy
dCBzdHIoc291cmNlKSA9PSAiZXhjZXB0IFNvbWV0aGluZzoiCisKKyAgICBkZWYgdGVzdF9leGNl
cHRfYm9keShzZWxmKToKKyAgICAgICAgc291cmNlID0gZ2V0c3RhdGVtZW50KDMsIHNlbGYuc291
cmNlKQorICAgICAgICBhc3NlcnQgc3RyKHNvdXJjZSkgPT0gIiAgICByYWlzZSBJbmRleEVycm9y
KDEpIgorCisgICAgZGVmIHRlc3RfZWxzZShzZWxmKToKKyAgICAgICAgc291cmNlID0gZ2V0c3Rh
dGVtZW50KDUsIHNlbGYuc291cmNlKQorICAgICAgICBhc3NlcnQgc3RyKHNvdXJjZSkgPT0gIiAg
ICByYWlzZSBLZXlFcnJvcigpIgorCisKK2NsYXNzIFRlc3RUcnlGaW5hbGx5KG9iamVjdCk6Cisg
ICAgc291cmNlID0gIiIiXAordHJ5OgorICAgIHJhaXNlIFZhbHVlRXJyb3IKK2ZpbmFsbHk6Cisg
ICAgcmFpc2UgSW5kZXhFcnJvcigxKQorIiIiCisKKyAgICBkZWYgdGVzdF9ib2R5KHNlbGYpOgor
ICAgICAgICBzb3VyY2UgPSBnZXRzdGF0ZW1lbnQoMSwgc2VsZi5zb3VyY2UpCisgICAgICAgIGFz
c2VydCBzdHIoc291cmNlKSA9PSAiICAgIHJhaXNlIFZhbHVlRXJyb3IiCisKKyAgICBkZWYgdGVz
dF9maW5hbGx5KHNlbGYpOgorICAgICAgICBzb3VyY2UgPSBnZXRzdGF0ZW1lbnQoMywgc2VsZi5z
b3VyY2UpCisgICAgICAgIGFzc2VydCBzdHIoc291cmNlKSA9PSAiICAgIHJhaXNlIEluZGV4RXJy
b3IoMSkiCisKKworY2xhc3MgVGVzdElmKG9iamVjdCk6CisgICAgcHl0ZXN0bWFyayA9IGFzdG9u
bHkKKyAgICBzb3VyY2UgPSAiIiJcCitpZiAxOgorICAgIHkgPSAzCitlbGlmIEZhbHNlOgorICAg
IHkgPSA1CitlbHNlOgorICAgIHkgPSA3CisiIiIKKworICAgIGRlZiB0ZXN0X2JvZHkoc2VsZik6
CisgICAgICAgIHNvdXJjZSA9IGdldHN0YXRlbWVudCgxLCBzZWxmLnNvdXJjZSkKKyAgICAgICAg
YXNzZXJ0IHN0cihzb3VyY2UpID09ICIgICAgeSA9IDMiCisKKyAgICBkZWYgdGVzdF9lbGlmX2Ns
YXVzZShzZWxmKToKKyAgICAgICAgc291cmNlID0gZ2V0c3RhdGVtZW50KDIsIHNlbGYuc291cmNl
KQorICAgICAgICBhc3NlcnQgc3RyKHNvdXJjZSkgPT0gImVsaWYgRmFsc2U6IgorCisgICAgZGVm
IHRlc3RfZWxpZihzZWxmKToKKyAgICAgICAgc291cmNlID0gZ2V0c3RhdGVtZW50KDMsIHNlbGYu
c291cmNlKQorICAgICAgICBhc3NlcnQgc3RyKHNvdXJjZSkgPT0gIiAgICB5ID0gNSIKKworICAg
IGRlZiB0ZXN0X2Vsc2Uoc2VsZik6CisgICAgICAgIHNvdXJjZSA9IGdldHN0YXRlbWVudCg1LCBz
ZWxmLnNvdXJjZSkKKyAgICAgICAgYXNzZXJ0IHN0cihzb3VyY2UpID09ICIgICAgeSA9IDciCisK
KworZGVmIHRlc3Rfc2VtaWNvbG9uKCk6CisgICAgcyA9ICIiIlwKK2hlbGxvIDsgcHl0ZXN0LnNr
aXAoKQorIiIiCisgICAgc291cmNlID0gZ2V0c3RhdGVtZW50KDAsIHMpCisgICAgYXNzZXJ0IHN0
cihzb3VyY2UpID09IHMuc3RyaXAoKQorCisKK2RlZiB0ZXN0X2RlZl9vbmxpbmUoKToKKyAgICBz
ID0gIiIiXAorZGVmIGZ1bmMoKTogcmFpc2UgVmFsdWVFcnJvcig0MikKKworZGVmIHNvbWV0aGlu
ZygpOgorICAgIHBhc3MKKyIiIgorICAgIHNvdXJjZSA9IGdldHN0YXRlbWVudCgwLCBzKQorICAg
IGFzc2VydCBzdHIoc291cmNlKSA9PSAiZGVmIGZ1bmMoKTogcmFpc2UgVmFsdWVFcnJvcig0Miki
CisKKworZGVmIFhYWF90ZXN0X2V4cHJlc3Npb25fbXVsdGlsaW5lKCk6CisgICAgc291cmNlID0g
IiIiXAorc29tZXRoaW5nCisnJycKKycnJyIiIgorICAgIHJlc3VsdCA9IGdldHN0YXRlbWVudCgx
LCBzb3VyY2UpCisgICAgYXNzZXJ0IHN0cihyZXN1bHQpID09ICInJydcbicnJyIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvY29kZS90ZXN0X3NvdXJjZV9tdWx0aWxpbmVfYmxvY2su
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2NvZGUvdGVzdF9zb3VyY2VfbXVsdGlsaW5lX2Jsb2Nr
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmIzNTZkMTkxZjBiMDRiMzRhYzk4YmY1ODczN2Q0YTkyZjJmYjE4NzcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2NvZGUvdGVzdF9zb3VyY2Vf
bXVsdGlsaW5lX2Jsb2NrLnB5CkBAIC0wLDAgKzEsMjYgQEAKKyMgZmxha2U4OiBub3FhCitpbXBv
cnQgc3lzCisKK2ltcG9ydCBfcHl0ZXN0Ll9jb2RlCisKKworZGVmIHRlc3RfZ2V0c3RhcnRpbmdi
bG9ja19tdWx0aWxpbmUoKToKKyAgICAiIiIKKyAgICBUaGlzIHRlc3Qgd2FzIG9yaWdpbmFsbHkg
Zm91bmQgaW4gdGVzdF9zb3VyY2UucHksIGJ1dCBpdCBkZXBlbmRzIG9uIHRoZSB3ZWlyZAorICAg
IGZvcm1hdHRpbmcgb2YgdGhlIGBgeCA9IEFgYCBjb25zdHJ1Y3Qgc2VlbiBoZXJlIGFuZCBvdXIg
YXV0b3BlcDggdG9vbCBjYW4gb25seSBleGNsdWRlIGVudGlyZQorICAgIGZpbGVzIChpdCBkb2Vz
IG5vdCBzdXBwb3J0IGV4Y2x1ZGluZyBsaW5lcy9ibG9ja3MgdXNpbmcgdGhlIHRyYWRpdGlvbmFs
ICNub3FhIGNvbW1lbnQgeWV0LAorICAgIHNlZSBoaGF0dG8vYXV0b3BlcDgjMzA3KS4gSXQgd2Fz
IGNvbnNpZGVyZWQgYmV0dGVyIHRvIGp1c3QgbW92ZSB0aGlzIHNpbmdsZSB0ZXN0IHRvIGl0cyBv
d24KKyAgICBmaWxlIGFuZCBleGNsdWRlIGl0IGZyb20gYXV0b3BlcDggdGhhbiB0cnkgdG8gY29t
cGxpY2F0ZSB0aGluZ3MuCisgICAgIiIiCisgICAgY2xhc3MgQShvYmplY3QpOgorICAgICAgICBk
ZWYgX19pbml0X18oc2VsZiwgKmFyZ3MpOgorICAgICAgICAgICAgZnJhbWUgPSBzeXMuX2dldGZy
YW1lKDEpCisgICAgICAgICAgICBzZWxmLnNvdXJjZSA9IF9weXRlc3QuX2NvZGUuRnJhbWUoZnJh
bWUpLnN0YXRlbWVudAorCisgICAgeCA9IEEoJ3gnLAorICAgICAgICAgICd5JworICAgICAgICAg
ICwKKyAgICAgICAgICAneicpCisKKyAgICB2YWx1ZXMgPSBbaSBmb3IgaSBpbiB4LnNvdXJjZS5s
aW5lcyBpZiBpLnN0cmlwKCldCisgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvY29kZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvY29kZS93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZGZhNjU1NDYxOTdjMTcx
NjUwZDE3NGJkNTA3OTRjZWNjM2NjOGE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy9jb2RlL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjAgQEAKK1RoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgor
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIu
Y29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvY29kZS90ZXN0X2NvZGUucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L2NvZGUvdGVzdF9leGNpbmZvLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9jb2RlL3Rlc3Rfc291
cmNlLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9jb2RlL3Rlc3Rfc291cmNlX211bHRpbGluZV9i
bG9jay5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9kZXByZWNhdGVkX3Rlc3Qu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2RlcHJlY2F0ZWRfdGVzdC5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MWM0YWQ0M2NiY2ZkYjRlZDhkODA2NmFlOGNlOTI2ODE0NTg5N2MzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9kZXByZWNhdGVkX3Rlc3QucHkKQEAgLTAsMCArMSwxMjcg
QEAKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJp
bnRfZnVuY3Rpb24KK2ltcG9ydCBweXRlc3QKKworCitkZWYgdGVzdF95aWVsZF90ZXN0c19kZXBy
ZWNhdGlvbih0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGRl
ZiBmdW5jMShhcmcsIGFyZzIpOgorICAgICAgICAgICAgYXNzZXJ0IGFyZyA9PSBhcmcyCisgICAg
ICAgIGRlZiB0ZXN0X2dlbigpOgorICAgICAgICAgICAgeWllbGQgIm0xIiwgZnVuYzEsIDE1LCAz
KjUKKyAgICAgICAgICAgIHlpZWxkICJtMiIsIGZ1bmMxLCA0MiwgNio3CisgICAgICAgIGRlZiB0
ZXN0X2dlbjIoKToKKyAgICAgICAgICAgIGZvciBrIGluIHJhbmdlKDEwKToKKyAgICAgICAgICAg
ICAgICB5aWVsZCBmdW5jMSwgMSwgMQorICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgnLXJhJykKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAg
ICAnKnlpZWxkIHRlc3RzIGFyZSBkZXByZWNhdGVkLCBhbmQgc2NoZWR1bGVkIHRvIGJlIHJlbW92
ZWQgaW4gcHl0ZXN0IDQuMConLAorICAgICAgICAnKjIgcGFzc2VkKicsCisgICAgXSkKKyAgICBh
c3NlcnQgcmVzdWx0LnN0ZG91dC5zdHIoKS5jb3VudCgneWllbGQgdGVzdHMgYXJlIGRlcHJlY2F0
ZWQnKSA9PSAyCisKKworZGVmIHRlc3RfZnVuY2FyZ19wcmVmaXhfZGVwcmVjYXRpb24odGVzdGRp
cik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBkZWYgcHl0ZXN0X2Z1bmNh
cmdfX3ZhbHVlKCk6CisgICAgICAgICAgICByZXR1cm4gMTAKKworICAgICAgICBkZWYgdGVzdF9m
dW5jYXJnX3ByZWZpeCh2YWx1ZSk6CisgICAgICAgICAgICBhc3NlcnQgdmFsdWUgPT0gMTAKKyAg
ICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoJy1yYScpCisgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgKCcqcHl0ZXN0X2Z1bmNhcmdfX3ZhbHVl
OiAnCisgICAgICAgICAnZGVjbGFyaW5nIGZpeHR1cmVzIHVzaW5nICJweXRlc3RfZnVuY2FyZ19f
IiBwcmVmaXggaXMgZGVwcmVjYXRlZCAnCisgICAgICAgICAnYW5kIHNjaGVkdWxlZCB0byBiZSBy
ZW1vdmVkIGluIHB5dGVzdCA0LjAuICAnCisgICAgICAgICAnUGxlYXNlIHJlbW92ZSB0aGUgcHJl
Zml4IGFuZCB1c2UgdGhlIEBweXRlc3QuZml4dHVyZSBkZWNvcmF0b3IgaW5zdGVhZC4nKSwKKyAg
ICAgICAgJyoxIHBhc3NlZConLAorICAgIF0pCisKKworZGVmIHRlc3RfcHl0ZXN0X3NldHVwX2Nm
Z19kZXByZWNhdGVkKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZWZpbGUoJy5jZmcnLCBzZXR1
cD0nJycKKyAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgYWRkb3B0cyA9IC0tdmVyYm9zZQorICAg
ICcnJykKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsnKnB5dGVzdCpzZWN0aW9uIGluIHNldHVwLmNmZyBmaWxlcyBpcyBk
ZXByZWNhdGVkKnVzZSp0b29sOnB5dGVzdCppbnN0ZWFkKiddKQorCisKK2RlZiB0ZXN0X3N0cl9h
cmdzX2RlcHJlY2F0ZWQodG1wZGlyLCB0ZXN0ZGlyKToKKyAgICAiIiJEZXByZWNhdGUgcGFzc2lu
ZyBzdHJpbmdzIHRvIHB5dGVzdC5tYWluKCkuIFNjaGVkdWxlZCBmb3IgcmVtb3ZhbCBpbiBweXRl
c3QtNC4wLiIiIgorICAgIGZyb20gX3B5dGVzdC5tYWluIGltcG9ydCBFWElUX05PVEVTVFNDT0xM
RUNURUQKKyAgICB3YXJuaW5ncyA9IFtdCisKKyAgICBjbGFzcyBDb2xsZWN0KG9iamVjdCk6Cisg
ICAgICAgIGRlZiBweXRlc3RfbG9nd2FybmluZyhzZWxmLCBtZXNzYWdlKToKKyAgICAgICAgICAg
IHdhcm5pbmdzLmFwcGVuZChtZXNzYWdlKQorCisgICAgcmV0ID0gcHl0ZXN0Lm1haW4oIiVzIC14
IiAlIHRtcGRpciwgcGx1Z2lucz1bQ29sbGVjdCgpXSkKKyAgICB0ZXN0ZGlyLmRlbGV0ZV9sb2Fk
ZWRfbW9kdWxlcygpCisgICAgbXNnID0gKCdwYXNzaW5nIGEgc3RyaW5nIHRvIHB5dGVzdC5tYWlu
KCkgaXMgZGVwcmVjYXRlZCwgJworICAgICAgICAgICAncGFzcyBhIGxpc3Qgb2YgYXJndW1lbnRz
IGluc3RlYWQuJykKKyAgICBhc3NlcnQgbXNnIGluIHdhcm5pbmdzCisgICAgYXNzZXJ0IHJldCA9
PSBFWElUX05PVEVTVFNDT0xMRUNURUQKKworCitkZWYgdGVzdF9nZXRmdW5jYXJndmFsdWVfaXNf
ZGVwcmVjYXRlZChyZXF1ZXN0KToKKyAgICBweXRlc3QuZGVwcmVjYXRlZF9jYWxsKHJlcXVlc3Qu
Z2V0ZnVuY2FyZ3ZhbHVlLCAndG1wZGlyJykKKworCitkZWYgdGVzdF9yZXN1bHRsb2dfaXNfZGVw
cmVjYXRlZCh0ZXN0ZGlyKToKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLS1oZWxw
JykKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWycqREVQUkVDQVRFRCBwYXRoIGZv
ciBtYWNoaW5lLXJlYWRhYmxlIHJlc3VsdCBsb2cqJ10pCisKKyAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoJycnCisgICAgICAgIGRlZiB0ZXN0KCk6CisgICAgICAgICAgICBwYXNzCisgICAgJycnKQor
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctLXJlc3VsdC1sb2c9JXMnICUgdGVzdGRp
ci50bXBkaXIuam9pbigncmVzdWx0LmxvZycpKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcyhbCisgICAgICAgICcqLS1yZXN1bHQtbG9nIGlzIGRlcHJlY2F0ZWQgYW5kIHNjaGVkdWxl
ZCBmb3IgcmVtb3ZhbCBpbiBweXRlc3QgNC4wKicsCisgICAgICAgICcqU2VlIGh0dHBzOi8vZG9j
cy5weXRlc3Qub3JnLyovdXNhZ2UuaHRtbCNjcmVhdGluZy1yZXN1bHRsb2ctZm9ybWF0LWZpbGVz
IGZvciBtb3JlIGluZm9ybWF0aW9uKicsCisgICAgXSkKKworCitAcHl0ZXN0Lm1hcmsuZmlsdGVy
d2FybmluZ3MoJ2Fsd2F5czpNZXRhZnVuYy5hZGRjYWxsIGlzIGRlcHJlY2F0ZWQnKQorZGVmIHRl
c3RfbWV0YWZ1bmNfYWRkY2FsbF9kZXByZWNhdGVkKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSgiIiIKKyAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6
CisgICAgICAgICAgICBtZXRhZnVuYy5hZGRjYWxsKHsnaSc6IDF9KQorICAgICAgICAgICAgbWV0
YWZ1bmMuYWRkY2FsbCh7J2knOiAyfSkKKyAgICAgICAgZGVmIHRlc3RfZnVuYyhpKToKKyAgICAg
ICAgICAgIHBhc3MKKyAgICAiIiIpCisgICAgcmVzID0gdGVzdGRpci5ydW5weXRlc3QoJy1zJykK
KyAgICBhc3NlcnQgcmVzLnJldCA9PSAwCisgICAgcmVzLnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsK
KyAgICAgICAgIipNZXRhZnVuYy5hZGRjYWxsIGlzIGRlcHJlY2F0ZWQqIiwKKyAgICAgICAgIioy
IHBhc3NlZCwgMiB3YXJuaW5ncyoiLAorICAgIF0pCisKKworZGVmIHRlc3RfdGVybWluYWxfcmVw
b3J0ZXJfd3JpdGVyX2F0dHIocHl0ZXN0Y29uZmlnKToKKyAgICAiIiJDaGVjayB0aGF0IFRlcm1p
bmFsUmVwb3J0ZXIuX3R3IGlzIGFsc28gYXZhaWxhYmxlIGFzICd3cml0ZXInICgjMjk4NCkKKyAg
ICBUaGlzIGF0dHJpYnV0ZSBpcyBwbGFubmVkIHRvIGJlIGRlcHJlY2F0ZWQgaW4gMy40LgorICAg
ICIiIgorICAgIHRyeToKKyAgICAgICAgaW1wb3J0IHhkaXN0ICAjIG5vcWEKKyAgICAgICAgcHl0
ZXN0LnNraXAoJ3hkaXN0IHdvcmtlcnMgZGlzYWJsZSB0aGUgdGVybWluYWwgcmVwb3J0ZXIgcGx1
Z2luJykKKyAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAgIHBhc3MKKyAgICB0ZXJtaW5h
bF9yZXBvcnRlciA9IHB5dGVzdGNvbmZpZy5wbHVnaW5tYW5hZ2VyLmdldF9wbHVnaW4oJ3Rlcm1p
bmFscmVwb3J0ZXInKQorICAgIGFzc2VydCB0ZXJtaW5hbF9yZXBvcnRlci53cml0ZXIgaXMgdGVy
bWluYWxfcmVwb3J0ZXIuX3R3CisKKworZGVmIHRlc3RfcHl0ZXN0X2NhdGNobG9nX2RlcHJlY2F0
ZWQodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBkZWYgdGVz
dF9mdW5jKHB5dGVzdGNvbmZpZyk6CisgICAgICAgICAgICBweXRlc3Rjb25maWcucGx1Z2lubWFu
YWdlci5yZWdpc3RlcihOb25lLCAncHl0ZXN0X2NhdGNobG9nJykKKyAgICAiIiIpCisgICAgcmVz
ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIGFzc2VydCByZXMucmV0ID09IDAKKyAgICByZXMu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKnB5dGVzdC1jYXRjaGxvZyBwbHVnaW4g
aGFzIGJlZW4gbWVyZ2VkIGludG8gdGhlIGNvcmUqIiwKKyAgICAgICAgIioxIHBhc3NlZCwgMSB3
YXJuaW5ncyoiLAorICAgIF0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2ZyZWV6
ZS9jcmVhdGVfZXhlY3V0YWJsZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL2NyZWF0
ZV9leGVjdXRhYmxlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0ZjYwODhlZjdkMGFmZWZkZGVlZWY2ZDUxZDc1
Mzg2NTU5MzY4OTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2ZyZWV6
ZS9jcmVhdGVfZXhlY3V0YWJsZS5weQpAQCAtMCwwICsxLDEyIEBACisiIiIKK0dlbmVyYXRlcyBh
biBleGVjdXRhYmxlIHdpdGggcHl0ZXN0IHJ1bm5lciBlbWJlZGRlZCB1c2luZyBQeUluc3RhbGxl
ci4KKyIiIgoraWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBpbXBvcnQgcHl0ZXN0Cisg
ICAgaW1wb3J0IHN1YnByb2Nlc3MKKworICAgIGhpZGRlbiA9IFtdCisgICAgZm9yIHggaW4gcHl0
ZXN0LmZyZWV6ZV9pbmNsdWRlcygpOgorICAgICAgICBoaWRkZW4uZXh0ZW5kKFsnLS1oaWRkZW4t
aW1wb3J0JywgeF0pCisgICAgYXJncyA9IFsncHlpbnN0YWxsZXInLCAnLS1ub2NvbmZpcm0nXSAr
IGhpZGRlbiArIFsncnVudGVzdHNfc2NyaXB0LnB5J10KKyAgICBzdWJwcm9jZXNzLmNoZWNrX2Nh
bGwoJyAnLmpvaW4oYXJncyksIHNoZWxsPVRydWUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL2ZyZWV6ZS9ydW50ZXN0c19zY3JpcHQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2Zy
ZWV6ZS9ydW50ZXN0c19zY3JpcHQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDI4MTYwMWMwNjg0OTM5ZWUzMzBl
NmNlN2RlNTAxN2UzZWNlNjk1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvZnJlZXplL3J1bnRlc3RzX3NjcmlwdC5weQpAQCAtMCwwICsxLDkgQEAKKyIiIgorVGhpcyBp
cyB0aGUgc2NyaXB0IHRoYXQgaXMgYWN0dWFsbHkgZnJvemVuIGludG8gYW4gZXhlY3V0YWJsZTog
c2ltcGx5IGV4ZWN1dGVzCitweS50ZXN0IG1haW4oKS4KKyIiIgorCitpZiBfX25hbWVfXyA9PSAn
X19tYWluX18nOgorICAgIGltcG9ydCBzeXMKKyAgICBpbXBvcnQgcHl0ZXN0CisgICAgc3lzLmV4
aXQocHl0ZXN0Lm1haW4oKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXpl
L3Rlc3RzL3Rlc3RfZG9jdGVzdC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2ZyZWV6ZS90ZXN0
cy90ZXN0X2RvY3Rlc3QudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxOGE0YjY4Y2M5NjdhNTVjYzgwNWE0Mzlm
YjU0M2E3OWFjYjBhZGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2Zy
ZWV6ZS90ZXN0cy90ZXN0X2RvY3Rlc3QudHh0CkBAIC0wLDAgKzEsNiBAQAorCisKK1Rlc3Rpbmcg
ZG9jdGVzdDo6CisKKyAgICA+Pj4gMSArIDEKKyAgICAyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL2ZyZWV6ZS90ZXN0cy90ZXN0X3RyaXZpYWwucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL2ZyZWV6ZS90ZXN0cy90ZXN0X3RyaXZpYWwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDU2MjJiODUwYmI1
YzEzYmQxZDgyNDdhZTVmYjhlYzY1N2M5MzI5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvZnJlZXplL3Rlc3RzL3Rlc3RfdHJpdmlhbC5weQpAQCAtMCwwICsxLDcgQEAK
KworZGVmIHRlc3RfdXBwZXIoKToKKyAgICBhc3NlcnQgJ2ZvbycudXBwZXIoKSA9PSAnRk9PJwor
CisKK2RlZiB0ZXN0X2xvd2VyKCk6CisgICAgYXNzZXJ0ICdGT08nLmxvd2VyKCkgPT0gJ2ZvbycK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3Rlc3RzL3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUvdGVzdHMvdzNjLWltcG9ydC5sb2cKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjQ2ZmY5ODg4Mzc1Nzc1OTYxMzIzZjQ4OGU2YjhlOGY4Zjc5MmI5ZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3Rlc3RzL3czYy1pbXBvcnQu
bG9nCkBAIC0wLDAgKzEsMTggQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXpl
L3Rlc3RzL3Rlc3RfZG9jdGVzdC50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2ZyZWV6ZS90ZXN0
cy90ZXN0X3RyaXZpYWwucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXpl
L3RveF9ydW4ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2ZyZWV6ZS90b3hfcnVuLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjNmYzM4ODA0MDk1N2I2MjgwNGQxNmUxZjQxMzhlZjdjYjZlNThmYWMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2ZyZWV6ZS90b3hfcnVuLnB5CkBAIC0wLDAg
KzEsMTIgQEAKKyIiIgorQ2FsbGVkIGJ5IHRveC5pbmk6IHVzZXMgdGhlIGdlbmVyYXRlZCBleGVj
dXRhYmxlIHRvIHJ1biB0aGUgdGVzdHMgaW4gLi90ZXN0cy8KK2RpcmVjdG9yeS4KKyIiIgoraWYg
X19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBpbXBvcnQgb3MKKyAgICBpbXBvcnQgc3lzCisK
KyAgICBleGVjdXRhYmxlID0gb3MucGF0aC5qb2luKG9zLmdldGN3ZCgpLCAnZGlzdCcsICdydW50
ZXN0c19zY3JpcHQnLCAncnVudGVzdHNfc2NyaXB0JykKKyAgICBpZiBzeXMucGxhdGZvcm0uc3Rh
cnRzd2l0aCgnd2luJyk6CisgICAgICAgIGV4ZWN1dGFibGUgKz0gJy5leGUnCisgICAgc3lzLmV4
aXQob3Muc3lzdGVtKCclcyB0ZXN0cycgJSBleGVjdXRhYmxlKSkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9mcmVlemUvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJhYTY1MGJmM2IxNmQ1YjZhYzZh
ODBlMWQyZjc2NGY0NWE4Yjg0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvZnJlZXplL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTkgQEAKK1RoZSB0ZXN0cyBpbiB0
aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8g
Tk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVh
dGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29t
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1w
b3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciBy
ZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvZnJlZXplL2NyZWF0ZV9leGVjdXRhYmxlLnB5CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy9mcmVlemUvcnVudGVzdHNfc2NyaXB0LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9m
cmVlemUvdG94X3J1bi5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9sb2dnaW5n
L3Rlc3RfZml4dHVyZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvbG9nZ2luZy90ZXN0X2ZpeHR1
cmUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzI3YjMxMTM3ZmZjYWVmNTNkYzdiNDk5ODM4MmFkZWUyNmM0MmNi
OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvbG9nZ2luZy90ZXN0X2Zp
eHR1cmUucHkKQEAgLTAsMCArMSw3MCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2ltcG9y
dCBsb2dnaW5nCisKKworbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCitzdWJs
b2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXyArICcuYmF6JykKKworCitkZWYgdGVz
dF9maXh0dXJlX2hlbHAodGVzdGRpcik6CisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
Jy0tZml4dHVyZXMnKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbJypjYXBsb2cq
J10pCisKKworZGVmIHRlc3RfY2hhbmdlX2xldmVsKGNhcGxvZyk6CisgICAgY2FwbG9nLnNldF9s
ZXZlbChsb2dnaW5nLklORk8pCisgICAgbG9nZ2VyLmRlYnVnKCdoYW5kbGVyIERFQlVHIGxldmVs
JykKKyAgICBsb2dnZXIuaW5mbygnaGFuZGxlciBJTkZPIGxldmVsJykKKworICAgIGNhcGxvZy5z
ZXRfbGV2ZWwobG9nZ2luZy5DUklUSUNBTCwgbG9nZ2VyPXN1YmxvZ2dlci5uYW1lKQorICAgIHN1
YmxvZ2dlci53YXJuaW5nKCdsb2dnZXIgV0FSTklORyBsZXZlbCcpCisgICAgc3VibG9nZ2VyLmNy
aXRpY2FsKCdsb2dnZXIgQ1JJVElDQUwgbGV2ZWwnKQorCisgICAgYXNzZXJ0ICdERUJVRycgbm90
IGluIGNhcGxvZy50ZXh0CisgICAgYXNzZXJ0ICdJTkZPJyBpbiBjYXBsb2cudGV4dAorICAgIGFz
c2VydCAnV0FSTklORycgbm90IGluIGNhcGxvZy50ZXh0CisgICAgYXNzZXJ0ICdDUklUSUNBTCcg
aW4gY2FwbG9nLnRleHQKKworCitkZWYgdGVzdF93aXRoX3N0YXRlbWVudChjYXBsb2cpOgorICAg
IHdpdGggY2FwbG9nLmF0X2xldmVsKGxvZ2dpbmcuSU5GTyk6CisgICAgICAgIGxvZ2dlci5kZWJ1
ZygnaGFuZGxlciBERUJVRyBsZXZlbCcpCisgICAgICAgIGxvZ2dlci5pbmZvKCdoYW5kbGVyIElO
Rk8gbGV2ZWwnKQorCisgICAgICAgIHdpdGggY2FwbG9nLmF0X2xldmVsKGxvZ2dpbmcuQ1JJVElD
QUwsIGxvZ2dlcj1zdWJsb2dnZXIubmFtZSk6CisgICAgICAgICAgICBzdWJsb2dnZXIud2Fybmlu
ZygnbG9nZ2VyIFdBUk5JTkcgbGV2ZWwnKQorICAgICAgICAgICAgc3VibG9nZ2VyLmNyaXRpY2Fs
KCdsb2dnZXIgQ1JJVElDQUwgbGV2ZWwnKQorCisgICAgYXNzZXJ0ICdERUJVRycgbm90IGluIGNh
cGxvZy50ZXh0CisgICAgYXNzZXJ0ICdJTkZPJyBpbiBjYXBsb2cudGV4dAorICAgIGFzc2VydCAn
V0FSTklORycgbm90IGluIGNhcGxvZy50ZXh0CisgICAgYXNzZXJ0ICdDUklUSUNBTCcgaW4gY2Fw
bG9nLnRleHQKKworCitkZWYgdGVzdF9sb2dfYWNjZXNzKGNhcGxvZyk6CisgICAgbG9nZ2VyLmlu
Zm8oJ2JvbyAlcycsICdhcmcnKQorICAgIGFzc2VydCBjYXBsb2cucmVjb3Jkc1swXS5sZXZlbG5h
bWUgPT0gJ0lORk8nCisgICAgYXNzZXJ0IGNhcGxvZy5yZWNvcmRzWzBdLm1zZyA9PSAnYm9vICVz
JworICAgIGFzc2VydCAnYm9vIGFyZycgaW4gY2FwbG9nLnRleHQKKworCitkZWYgdGVzdF9yZWNv
cmRfdHVwbGVzKGNhcGxvZyk6CisgICAgbG9nZ2VyLmluZm8oJ2JvbyAlcycsICdhcmcnKQorCisg
ICAgYXNzZXJ0IGNhcGxvZy5yZWNvcmRfdHVwbGVzID09IFsKKyAgICAgICAgKF9fbmFtZV9fLCBs
b2dnaW5nLklORk8sICdib28gYXJnJyksCisgICAgXQorCisKK2RlZiB0ZXN0X3VuaWNvZGUoY2Fw
bG9nKToKKyAgICBsb2dnZXIuaW5mbyh1J2LFqycpCisgICAgYXNzZXJ0IGNhcGxvZy5yZWNvcmRz
WzBdLmxldmVsbmFtZSA9PSAnSU5GTycKKyAgICBhc3NlcnQgY2FwbG9nLnJlY29yZHNbMF0ubXNn
ID09IHUnYsWrJworICAgIGFzc2VydCB1J2LFqycgaW4gY2FwbG9nLnRleHQKKworCitkZWYgdGVz
dF9jbGVhcihjYXBsb2cpOgorICAgIGxvZ2dlci5pbmZvKHUnYsWrJykKKyAgICBhc3NlcnQgbGVu
KGNhcGxvZy5yZWNvcmRzKQorICAgIGNhcGxvZy5jbGVhcigpCisgICAgYXNzZXJ0IG5vdCBsZW4o
Y2FwbG9nLnJlY29yZHMpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2xvZ2dpbmcv
dGVzdF9yZXBvcnRpbmcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2xvZ2dpbmcvdGVzdF9yZXBv
cnRpbmcucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYzAyZWUyMTcyMjc5M2M0YTFjNjc1ZjdhZTM2M2JkOTZhNmE3
YjAxMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvbG9nZ2luZy90ZXN0
X3JlcG9ydGluZy5weQpAQCAtMCwwICsxLDM5OCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0K
K2ltcG9ydCBvcworaW1wb3J0IHB5dGVzdAorCisKK2RlZiB0ZXN0X25vdGhpbmdfbG9nZ2VkKHRl
c3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAgaW1wb3J0IHN5cwor
CisgICAgICAgIGRlZiB0ZXN0X2ZvbygpOgorICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgn
dGV4dCBnb2luZyB0byBzdGRvdXQnKQorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgndGV4
dCBnb2luZyB0byBzdGRlcnInKQorICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCisgICAgICAgICcn
JykKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgYXNzZXJ0IHJlc3VsdC5y
ZXQgPT0gMQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbJyotIENhcHR1cmVkIHN0
ZG91dCBjYWxsIC0qJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXh0IGdv
aW5nIHRvIHN0ZG91dCddKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbJyotIENh
cHR1cmVkIHN0ZGVyciBjYWxsIC0qJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICd0ZXh0IGdvaW5nIHRvIHN0ZGVyciddKQorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhweXRlc3Qu
ZmFpbC5FeGNlcHRpb24pOgorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWycq
LSBDYXB0dXJlZCAqbG9nIGNhbGwgLSonXSkKKworCitkZWYgdGVzdF9tZXNzYWdlc19sb2dnZWQo
dGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCcnJworICAgICAgICBpbXBvcnQgc3lz
CisgICAgICAgIGltcG9ydCBsb2dnaW5nCisKKyAgICAgICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRM
b2dnZXIoX19uYW1lX18pCisKKyAgICAgICAgZGVmIHRlc3RfZm9vKCk6CisgICAgICAgICAgICBz
eXMuc3Rkb3V0LndyaXRlKCd0ZXh0IGdvaW5nIHRvIHN0ZG91dCcpCisgICAgICAgICAgICBzeXMu
c3RkZXJyLndyaXRlKCd0ZXh0IGdvaW5nIHRvIHN0ZGVycicpCisgICAgICAgICAgICBsb2dnZXIu
aW5mbygndGV4dCBnb2luZyB0byBsb2dnZXInKQorICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCisg
ICAgICAgICcnJykKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgYXNzZXJ0
IHJlc3VsdC5yZXQgPT0gMQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbJyotIENh
cHR1cmVkICpsb2cgY2FsbCAtKicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
KnRleHQgZ29pbmcgdG8gbG9nZ2VyKiddKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cyhbJyotIENhcHR1cmVkIHN0ZG91dCBjYWxsIC0qJywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICd0ZXh0IGdvaW5nIHRvIHN0ZG91dCddKQorICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcyhbJyotIENhcHR1cmVkIHN0ZGVyciBjYWxsIC0qJywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICd0ZXh0IGdvaW5nIHRvIHN0ZGVyciddKQorCisKK2RlZiB0ZXN0
X3NldHVwX2xvZ2dpbmcodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCcnJworICAg
ICAgICBpbXBvcnQgbG9nZ2luZworCisgICAgICAgIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2Vy
KF9fbmFtZV9fKQorCisgICAgICAgIGRlZiBzZXR1cF9mdW5jdGlvbihmdW5jdGlvbik6CisgICAg
ICAgICAgICBsb2dnZXIuaW5mbygndGV4dCBnb2luZyB0byBsb2dnZXIgZnJvbSBzZXR1cCcpCisK
KyAgICAgICAgZGVmIHRlc3RfZm9vKCk6CisgICAgICAgICAgICBsb2dnZXIuaW5mbygndGV4dCBn
b2luZyB0byBsb2dnZXIgZnJvbSBjYWxsJykKKyAgICAgICAgICAgIGFzc2VydCBGYWxzZQorICAg
ICAgICAnJycpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIGFzc2VydCBy
ZXN1bHQucmV0ID09IDEKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWycqLSBDYXB0
dXJlZCAqbG9nIHNldHVwIC0qJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcq
dGV4dCBnb2luZyB0byBsb2dnZXIgZnJvbSBzZXR1cConLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJyotIENhcHR1cmVkICpsb2cgY2FsbCAtKicsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnKnRleHQgZ29pbmcgdG8gbG9nZ2VyIGZyb20gY2FsbConXSkKKwor
CitkZWYgdGVzdF90ZWFyZG93bl9sb2dnaW5nKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgnJycKKyAgICAgICAgaW1wb3J0IGxvZ2dpbmcKKworICAgICAgICBsb2dnZXIgPSBsb2dn
aW5nLmdldExvZ2dlcihfX25hbWVfXykKKworICAgICAgICBkZWYgdGVzdF9mb28oKToKKyAgICAg
ICAgICAgIGxvZ2dlci5pbmZvKCd0ZXh0IGdvaW5nIHRvIGxvZ2dlciBmcm9tIGNhbGwnKQorCisg
ICAgICAgIGRlZiB0ZWFyZG93bl9mdW5jdGlvbihmdW5jdGlvbik6CisgICAgICAgICAgICBsb2dn
ZXIuaW5mbygndGV4dCBnb2luZyB0byBsb2dnZXIgZnJvbSB0ZWFyZG93bicpCisgICAgICAgICAg
ICBhc3NlcnQgRmFsc2UKKyAgICAgICAgJycnKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KCkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAxCisgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKFsnKi0gQ2FwdHVyZWQgKmxvZyBjYWxsIC0qJywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICcqdGV4dCBnb2luZyB0byBsb2dnZXIgZnJvbSBjYWxsKicsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKi0gQ2FwdHVyZWQgKmxvZyB0ZWFyZG93biAt
KicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKnRleHQgZ29pbmcgdG8gbG9n
Z2VyIGZyb20gdGVhcmRvd24qJ10pCisKKworZGVmIHRlc3RfZGlzYWJsZV9sb2dfY2FwdHVyaW5n
KHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAgaW1wb3J0IHN5
cworICAgICAgICBpbXBvcnQgbG9nZ2luZworCisgICAgICAgIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0
TG9nZ2VyKF9fbmFtZV9fKQorCisgICAgICAgIGRlZiB0ZXN0X2ZvbygpOgorICAgICAgICAgICAg
c3lzLnN0ZG91dC53cml0ZSgndGV4dCBnb2luZyB0byBzdGRvdXQnKQorICAgICAgICAgICAgbG9n
Z2VyLndhcm5pbmcoJ2NhdGNoIG1lIGlmIHlvdSBjYW4hJykKKyAgICAgICAgICAgIHN5cy5zdGRl
cnIud3JpdGUoJ3RleHQgZ29pbmcgdG8gc3RkZXJyJykKKyAgICAgICAgICAgIGFzc2VydCBGYWxz
ZQorICAgICAgICAnJycpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoJy0tbm8tcHJp
bnQtbG9ncycpCisgICAgcHJpbnQocmVzdWx0LnN0ZG91dCkKKyAgICBhc3NlcnQgcmVzdWx0LnJl
dCA9PSAxCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsnKi0gQ2FwdHVyZWQgc3Rk
b3V0IGNhbGwgLSonLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RleHQgZ29p
bmcgdG8gc3Rkb3V0J10pCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsnKi0gQ2Fw
dHVyZWQgc3RkZXJyIGNhbGwgLSonLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J3RleHQgZ29pbmcgdG8gc3RkZXJyJ10pCisgICAgd2l0aCBweXRlc3QucmFpc2VzKHB5dGVzdC5m
YWlsLkV4Y2VwdGlvbik6CisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbJyot
IENhcHR1cmVkICpsb2cgY2FsbCAtKiddKQorCisKK2RlZiB0ZXN0X2Rpc2FibGVfbG9nX2NhcHR1
cmluZ19pbmkodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlaW5pKAorICAgICAgICAnJycKKyAg
ICAgICAgW3B5dGVzdF0KKyAgICAgICAgbG9nX3ByaW50PUZhbHNlCisgICAgICAgICcnJworICAg
ICkKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoJycnCisgICAgICAgIGltcG9ydCBzeXMKKyAgICAg
ICAgaW1wb3J0IGxvZ2dpbmcKKworICAgICAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcihf
X25hbWVfXykKKworICAgICAgICBkZWYgdGVzdF9mb28oKToKKyAgICAgICAgICAgIHN5cy5zdGRv
dXQud3JpdGUoJ3RleHQgZ29pbmcgdG8gc3Rkb3V0JykKKyAgICAgICAgICAgIGxvZ2dlci53YXJu
aW5nKCdjYXRjaCBtZSBpZiB5b3UgY2FuIScpCisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRl
KCd0ZXh0IGdvaW5nIHRvIHN0ZGVycicpCisgICAgICAgICAgICBhc3NlcnQgRmFsc2UKKyAgICAg
ICAgJycnKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICBwcmludChyZXN1
bHQuc3Rkb3V0KQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDEKKyAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoWycqLSBDYXB0dXJlZCBzdGRvdXQgY2FsbCAtKicsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAndGV4dCBnb2luZyB0byBzdGRvdXQnXSkKKyAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWycqLSBDYXB0dXJlZCBzdGRlcnIgY2FsbCAtKicsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGV4dCBnb2luZyB0byBzdGRlcnInXSkK
KyAgICB3aXRoIHB5dGVzdC5yYWlzZXMocHl0ZXN0LmZhaWwuRXhjZXB0aW9uKToKKyAgICAgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsnKi0gQ2FwdHVyZWQgKmxvZyBjYWxsIC0qJ10p
CisKKworZGVmIHRlc3RfbG9nX2NsaV9kZWZhdWx0X2xldmVsKHRlc3RkaXIpOgorICAgICMgRGVm
YXVsdCBsb2cgZmlsZSBsZXZlbAorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAg
aW1wb3J0IHB5dGVzdAorICAgICAgICBpbXBvcnQgbG9nZ2luZworICAgICAgICBkZWYgdGVzdF9s
b2dfY2xpKHJlcXVlc3QpOgorICAgICAgICAgICAgcGx1Z2luID0gcmVxdWVzdC5jb25maWcucGx1
Z2lubWFuYWdlci5nZXRwbHVnaW4oJ2xvZ2dpbmctcGx1Z2luJykKKyAgICAgICAgICAgIGFzc2Vy
dCBwbHVnaW4ubG9nX2NsaV9oYW5kbGVyLmxldmVsID09IGxvZ2dpbmcuV0FSTklORworICAgICAg
ICAgICAgbG9nZ2luZy5nZXRMb2dnZXIoJ2NhdGNobG9nJykuaW5mbygiVGhpcyBsb2cgbWVzc2Fn
ZSB3b24ndCBiZSBzaG93biIpCisgICAgICAgICAgICBsb2dnaW5nLmdldExvZ2dlcignY2F0Y2hs
b2cnKS53YXJuaW5nKCJUaGlzIGxvZyBtZXNzYWdlIHdpbGwgYmUgc2hvd24iKQorICAgICAgICAg
ICAgcHJpbnQoJ1BBU1NFRCcpCisgICAgJycnKQorCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QoJy1zJykKKworICAgICMgZm5tYXRjaF9saW5lcyBkb2VzIGFuIGFzc2VydGlvbiBpbnRl
cm5hbGx5CisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgJ3Rlc3Rf
bG9nX2NsaV9kZWZhdWx0X2xldmVsLnB5IFBBU1NFRCcsCisgICAgXSkKKyAgICByZXN1bHQuc3Rk
ZXJyLmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKiBUaGlzIGxvZyBtZXNzYWdlIHdpbGwgYmUg
c2hvd24iCisgICAgXSkKKyAgICBmb3IgbGluZSBpbiByZXN1bHQuZXJybGluZXM6CisgICAgICAg
IHRyeToKKyAgICAgICAgICAgIGFzc2VydCAiVGhpcyBsb2cgbWVzc2FnZSB3b24ndCBiZSBzaG93
biIgaW4gbGluZQorICAgICAgICAgICAgcHl0ZXN0LmZhaWwoIkEgbG9nIG1lc3NhZ2Ugd2FzIHNo
b3duIGFuZCBpdCBzaG91bGRuJ3QgaGF2ZSBiZWVuIikKKyAgICAgICAgZXhjZXB0IEFzc2VydGlv
bkVycm9yOgorICAgICAgICAgICAgY29udGludWUKKworICAgICMgbWFrZSBzdXJlIHRoYXQgdGhh
dCB3ZSBnZXQgYSAnMCcgZXhpdCBjb2RlIGZvciB0aGUgdGVzdHN1aXRlCisgICAgYXNzZXJ0IHJl
c3VsdC5yZXQgPT0gMAorCisKK2RlZiB0ZXN0X2xvZ19jbGlfbGV2ZWwodGVzdGRpcik6CisgICAg
IyBEZWZhdWx0IGxvZyBmaWxlIGxldmVsCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCcnJworICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGltcG9ydCBsb2dnaW5nCisgICAgICAgIGRlZiB0
ZXN0X2xvZ19jbGkocmVxdWVzdCk6CisgICAgICAgICAgICBwbHVnaW4gPSByZXF1ZXN0LmNvbmZp
Zy5wbHVnaW5tYW5hZ2VyLmdldHBsdWdpbignbG9nZ2luZy1wbHVnaW4nKQorICAgICAgICAgICAg
YXNzZXJ0IHBsdWdpbi5sb2dfY2xpX2hhbmRsZXIubGV2ZWwgPT0gbG9nZ2luZy5JTkZPCisgICAg
ICAgICAgICBsb2dnaW5nLmdldExvZ2dlcignY2F0Y2hsb2cnKS5kZWJ1ZygiVGhpcyBsb2cgbWVz
c2FnZSB3b24ndCBiZSBzaG93biIpCisgICAgICAgICAgICBsb2dnaW5nLmdldExvZ2dlcignY2F0
Y2hsb2cnKS5pbmZvKCJUaGlzIGxvZyBtZXNzYWdlIHdpbGwgYmUgc2hvd24iKQorICAgICAgICAg
ICAgcHJpbnQoJ1BBU1NFRCcpCisgICAgJycnKQorCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QoJy1zJywgJy0tbG9nLWNsaS1sZXZlbD1JTkZPJykKKworICAgICMgZm5tYXRjaF9saW5l
cyBkb2VzIGFuIGFzc2VydGlvbiBpbnRlcm5hbGx5CisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKFsKKyAgICAgICAgJ3Rlc3RfbG9nX2NsaV9sZXZlbC5weSBQQVNTRUQnLAorICAgIF0p
CisgICAgcmVzdWx0LnN0ZGVyci5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIiogVGhpcyBsb2cg
bWVzc2FnZSB3aWxsIGJlIHNob3duIgorICAgIF0pCisgICAgZm9yIGxpbmUgaW4gcmVzdWx0LmVy
cmxpbmVzOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBhc3NlcnQgIlRoaXMgbG9nIG1lc3Nh
Z2Ugd29uJ3QgYmUgc2hvd24iIGluIGxpbmUKKyAgICAgICAgICAgIHB5dGVzdC5mYWlsKCJBIGxv
ZyBtZXNzYWdlIHdhcyBzaG93biBhbmQgaXQgc2hvdWxkbid0IGhhdmUgYmVlbiIpCisgICAgICAg
IGV4Y2VwdCBBc3NlcnRpb25FcnJvcjoKKyAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAjIG1h
a2Ugc3VyZSB0aGF0IHRoYXQgd2UgZ2V0IGEgJzAnIGV4aXQgY29kZSBmb3IgdGhlIHRlc3RzdWl0
ZQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKworICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCctcycsICctLWxvZy1sZXZlbD1JTkZPJykKKworICAgICMgZm5tYXRjaF9saW5lcyBk
b2VzIGFuIGFzc2VydGlvbiBpbnRlcm5hbGx5CisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKFsKKyAgICAgICAgJ3Rlc3RfbG9nX2NsaV9sZXZlbC5weSBQQVNTRUQnLAorICAgIF0pCisg
ICAgcmVzdWx0LnN0ZGVyci5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIiogVGhpcyBsb2cgbWVz
c2FnZSB3aWxsIGJlIHNob3duIgorICAgIF0pCisgICAgZm9yIGxpbmUgaW4gcmVzdWx0LmVycmxp
bmVzOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBhc3NlcnQgIlRoaXMgbG9nIG1lc3NhZ2Ug
d29uJ3QgYmUgc2hvd24iIGluIGxpbmUKKyAgICAgICAgICAgIHB5dGVzdC5mYWlsKCJBIGxvZyBt
ZXNzYWdlIHdhcyBzaG93biBhbmQgaXQgc2hvdWxkbid0IGhhdmUgYmVlbiIpCisgICAgICAgIGV4
Y2VwdCBBc3NlcnRpb25FcnJvcjoKKyAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAjIG1ha2Ug
c3VyZSB0aGF0IHRoYXQgd2UgZ2V0IGEgJzAnIGV4aXQgY29kZSBmb3IgdGhlIHRlc3RzdWl0ZQor
ICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKworCitkZWYgdGVzdF9sb2dfY2xpX2luaV9sZXZl
bCh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VpbmkoCisgICAgICAgICIiIgorICAgICAgICBb
cHl0ZXN0XQorICAgICAgICBsb2dfY2xpX2xldmVsID0gSU5GTworICAgICAgICAiIiIpCisgICAg
dGVzdGRpci5tYWtlcHlmaWxlKCcnJworICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGlt
cG9ydCBsb2dnaW5nCisgICAgICAgIGRlZiB0ZXN0X2xvZ19jbGkocmVxdWVzdCk6CisgICAgICAg
ICAgICBwbHVnaW4gPSByZXF1ZXN0LmNvbmZpZy5wbHVnaW5tYW5hZ2VyLmdldHBsdWdpbignbG9n
Z2luZy1wbHVnaW4nKQorICAgICAgICAgICAgYXNzZXJ0IHBsdWdpbi5sb2dfY2xpX2hhbmRsZXIu
bGV2ZWwgPT0gbG9nZ2luZy5JTkZPCisgICAgICAgICAgICBsb2dnaW5nLmdldExvZ2dlcignY2F0
Y2hsb2cnKS5kZWJ1ZygiVGhpcyBsb2cgbWVzc2FnZSB3b24ndCBiZSBzaG93biIpCisgICAgICAg
ICAgICBsb2dnaW5nLmdldExvZ2dlcignY2F0Y2hsb2cnKS5pbmZvKCJUaGlzIGxvZyBtZXNzYWdl
IHdpbGwgYmUgc2hvd24iKQorICAgICAgICAgICAgcHJpbnQoJ1BBU1NFRCcpCisgICAgJycnKQor
CisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoJy1zJykKKworICAgICMgZm5tYXRjaF9s
aW5lcyBkb2VzIGFuIGFzc2VydGlvbiBpbnRlcm5hbGx5CisgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKFsKKyAgICAgICAgJ3Rlc3RfbG9nX2NsaV9pbmlfbGV2ZWwucHkgUEFTU0VEJywK
KyAgICBdKQorICAgIHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICIqIFRo
aXMgbG9nIG1lc3NhZ2Ugd2lsbCBiZSBzaG93biIKKyAgICBdKQorICAgIGZvciBsaW5lIGluIHJl
c3VsdC5lcnJsaW5lczoKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYXNzZXJ0ICJUaGlzIGxv
ZyBtZXNzYWdlIHdvbid0IGJlIHNob3duIiBpbiBsaW5lCisgICAgICAgICAgICBweXRlc3QuZmFp
bCgiQSBsb2cgbWVzc2FnZSB3YXMgc2hvd24gYW5kIGl0IHNob3VsZG4ndCBoYXZlIGJlZW4iKQor
ICAgICAgICBleGNlcHQgQXNzZXJ0aW9uRXJyb3I6CisgICAgICAgICAgICBjb250aW51ZQorCisg
ICAgIyBtYWtlIHN1cmUgdGhhdCB0aGF0IHdlIGdldCBhICcwJyBleGl0IGNvZGUgZm9yIHRoZSB0
ZXN0c3VpdGUKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKworZGVmIHRlc3RfbG9nX2Zp
bGVfY2xpKHRlc3RkaXIpOgorICAgICMgRGVmYXVsdCBsb2cgZmlsZSBsZXZlbAorICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBpbXBvcnQg
bG9nZ2luZworICAgICAgICBkZWYgdGVzdF9sb2dfZmlsZShyZXF1ZXN0KToKKyAgICAgICAgICAg
IHBsdWdpbiA9IHJlcXVlc3QuY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0cGx1Z2luKCdsb2dnaW5n
LXBsdWdpbicpCisgICAgICAgICAgICBhc3NlcnQgcGx1Z2luLmxvZ19maWxlX2hhbmRsZXIubGV2
ZWwgPT0gbG9nZ2luZy5XQVJOSU5HCisgICAgICAgICAgICBsb2dnaW5nLmdldExvZ2dlcignY2F0
Y2hsb2cnKS5pbmZvKCJUaGlzIGxvZyBtZXNzYWdlIHdvbid0IGJlIHNob3duIikKKyAgICAgICAg
ICAgIGxvZ2dpbmcuZ2V0TG9nZ2VyKCdjYXRjaGxvZycpLndhcm5pbmcoIlRoaXMgbG9nIG1lc3Nh
Z2Ugd2lsbCBiZSBzaG93biIpCisgICAgICAgICAgICBwcmludCgnUEFTU0VEJykKKyAgICAnJycp
CisKKyAgICBsb2dfZmlsZSA9IHRlc3RkaXIudG1wZGlyLmpvaW4oJ3B5dGVzdC5sb2cnKS5zdHJw
YXRoCisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLXMnLCAnLS1sb2ctZmlsZT17
MH0nLmZvcm1hdChsb2dfZmlsZSkpCisKKyAgICAjIGZubWF0Y2hfbGluZXMgZG9lcyBhbiBhc3Nl
cnRpb24gaW50ZXJuYWxseQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAg
ICAgICd0ZXN0X2xvZ19maWxlX2NsaS5weSBQQVNTRUQnLAorICAgIF0pCisKKyAgICAjIG1ha2Ug
c3VyZSB0aGF0IHRoYXQgd2UgZ2V0IGEgJzAnIGV4aXQgY29kZSBmb3IgdGhlIHRlc3RzdWl0ZQor
ICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICBhc3NlcnQgb3MucGF0aC5pc2ZpbGUobG9n
X2ZpbGUpCisgICAgd2l0aCBvcGVuKGxvZ19maWxlKSBhcyByZmg6CisgICAgICAgIGNvbnRlbnRz
ID0gcmZoLnJlYWQoKQorICAgICAgICBhc3NlcnQgIlRoaXMgbG9nIG1lc3NhZ2Ugd2lsbCBiZSBz
aG93biIgaW4gY29udGVudHMKKyAgICAgICAgYXNzZXJ0ICJUaGlzIGxvZyBtZXNzYWdlIHdvbid0
IGJlIHNob3duIiBub3QgaW4gY29udGVudHMKKworCitkZWYgdGVzdF9sb2dfZmlsZV9jbGlfbGV2
ZWwodGVzdGRpcik6CisgICAgIyBEZWZhdWx0IGxvZyBmaWxlIGxldmVsCisgICAgdGVzdGRpci5t
YWtlcHlmaWxlKCcnJworICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGltcG9ydCBsb2dn
aW5nCisgICAgICAgIGRlZiB0ZXN0X2xvZ19maWxlKHJlcXVlc3QpOgorICAgICAgICAgICAgcGx1
Z2luID0gcmVxdWVzdC5jb25maWcucGx1Z2lubWFuYWdlci5nZXRwbHVnaW4oJ2xvZ2dpbmctcGx1
Z2luJykKKyAgICAgICAgICAgIGFzc2VydCBwbHVnaW4ubG9nX2ZpbGVfaGFuZGxlci5sZXZlbCA9
PSBsb2dnaW5nLklORk8KKyAgICAgICAgICAgIGxvZ2dpbmcuZ2V0TG9nZ2VyKCdjYXRjaGxvZycp
LmRlYnVnKCJUaGlzIGxvZyBtZXNzYWdlIHdvbid0IGJlIHNob3duIikKKyAgICAgICAgICAgIGxv
Z2dpbmcuZ2V0TG9nZ2VyKCdjYXRjaGxvZycpLmluZm8oIlRoaXMgbG9nIG1lc3NhZ2Ugd2lsbCBi
ZSBzaG93biIpCisgICAgICAgICAgICBwcmludCgnUEFTU0VEJykKKyAgICAnJycpCisKKyAgICBs
b2dfZmlsZSA9IHRlc3RkaXIudG1wZGlyLmpvaW4oJ3B5dGVzdC5sb2cnKS5zdHJwYXRoCisKKyAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLXMnLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICctLWxvZy1maWxlPXswfScuZm9ybWF0KGxvZ19maWxlKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnLS1sb2ctZmlsZS1sZXZlbD1JTkZPJykKKworICAgICMgZm5t
YXRjaF9saW5lcyBkb2VzIGFuIGFzc2VydGlvbiBpbnRlcm5hbGx5CisgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgJ3Rlc3RfbG9nX2ZpbGVfY2xpX2xldmVsLnB5IFBB
U1NFRCcsCisgICAgXSkKKworICAgICMgbWFrZSBzdXJlIHRoYXQgdGhhdCB3ZSBnZXQgYSAnMCcg
ZXhpdCBjb2RlIGZvciB0aGUgdGVzdHN1aXRlCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAor
ICAgIGFzc2VydCBvcy5wYXRoLmlzZmlsZShsb2dfZmlsZSkKKyAgICB3aXRoIG9wZW4obG9nX2Zp
bGUpIGFzIHJmaDoKKyAgICAgICAgY29udGVudHMgPSByZmgucmVhZCgpCisgICAgICAgIGFzc2Vy
dCAiVGhpcyBsb2cgbWVzc2FnZSB3aWxsIGJlIHNob3duIiBpbiBjb250ZW50cworICAgICAgICBh
c3NlcnQgIlRoaXMgbG9nIG1lc3NhZ2Ugd29uJ3QgYmUgc2hvd24iIG5vdCBpbiBjb250ZW50cwor
CisKK2RlZiB0ZXN0X2xvZ19maWxlX2luaSh0ZXN0ZGlyKToKKyAgICBsb2dfZmlsZSA9IHRlc3Rk
aXIudG1wZGlyLmpvaW4oJ3B5dGVzdC5sb2cnKS5zdHJwYXRoCisKKyAgICB0ZXN0ZGlyLm1ha2Vp
bmkoCisgICAgICAgICIiIgorICAgICAgICBbcHl0ZXN0XQorICAgICAgICBsb2dfZmlsZT17MH0K
KyAgICAgICAgIiIiLmZvcm1hdChsb2dfZmlsZSkpCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCcn
JworICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGltcG9ydCBsb2dnaW5nCisgICAgICAg
IGRlZiB0ZXN0X2xvZ19maWxlKHJlcXVlc3QpOgorICAgICAgICAgICAgcGx1Z2luID0gcmVxdWVz
dC5jb25maWcucGx1Z2lubWFuYWdlci5nZXRwbHVnaW4oJ2xvZ2dpbmctcGx1Z2luJykKKyAgICAg
ICAgICAgIGFzc2VydCBwbHVnaW4ubG9nX2ZpbGVfaGFuZGxlci5sZXZlbCA9PSBsb2dnaW5nLldB
Uk5JTkcKKyAgICAgICAgICAgIGxvZ2dpbmcuZ2V0TG9nZ2VyKCdjYXRjaGxvZycpLmluZm8oIlRo
aXMgbG9nIG1lc3NhZ2Ugd29uJ3QgYmUgc2hvd24iKQorICAgICAgICAgICAgbG9nZ2luZy5nZXRM
b2dnZXIoJ2NhdGNobG9nJykud2FybmluZygiVGhpcyBsb2cgbWVzc2FnZSB3aWxsIGJlIHNob3du
IikKKyAgICAgICAgICAgIHByaW50KCdQQVNTRUQnKQorICAgICcnJykKKworICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCctcycpCisKKyAgICAjIGZubWF0Y2hfbGluZXMgZG9lcyBhbiBh
c3NlcnRpb24gaW50ZXJuYWxseQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisg
ICAgICAgICd0ZXN0X2xvZ19maWxlX2luaS5weSBQQVNTRUQnLAorICAgIF0pCisKKyAgICAjIG1h
a2Ugc3VyZSB0aGF0IHRoYXQgd2UgZ2V0IGEgJzAnIGV4aXQgY29kZSBmb3IgdGhlIHRlc3RzdWl0
ZQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICBhc3NlcnQgb3MucGF0aC5pc2ZpbGUo
bG9nX2ZpbGUpCisgICAgd2l0aCBvcGVuKGxvZ19maWxlKSBhcyByZmg6CisgICAgICAgIGNvbnRl
bnRzID0gcmZoLnJlYWQoKQorICAgICAgICBhc3NlcnQgIlRoaXMgbG9nIG1lc3NhZ2Ugd2lsbCBi
ZSBzaG93biIgaW4gY29udGVudHMKKyAgICAgICAgYXNzZXJ0ICJUaGlzIGxvZyBtZXNzYWdlIHdv
bid0IGJlIHNob3duIiBub3QgaW4gY29udGVudHMKKworCitkZWYgdGVzdF9sb2dfZmlsZV9pbmlf
bGV2ZWwodGVzdGRpcik6CisgICAgbG9nX2ZpbGUgPSB0ZXN0ZGlyLnRtcGRpci5qb2luKCdweXRl
c3QubG9nJykuc3RycGF0aAorCisgICAgdGVzdGRpci5tYWtlaW5pKAorICAgICAgICAiIiIKKyAg
ICAgICAgW3B5dGVzdF0KKyAgICAgICAgbG9nX2ZpbGU9ezB9CisgICAgICAgIGxvZ19maWxlX2xl
dmVsID0gSU5GTworICAgICAgICAiIiIuZm9ybWF0KGxvZ19maWxlKSkKKyAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoJycnCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgaW1wb3J0IGxvZ2dp
bmcKKyAgICAgICAgZGVmIHRlc3RfbG9nX2ZpbGUocmVxdWVzdCk6CisgICAgICAgICAgICBwbHVn
aW4gPSByZXF1ZXN0LmNvbmZpZy5wbHVnaW5tYW5hZ2VyLmdldHBsdWdpbignbG9nZ2luZy1wbHVn
aW4nKQorICAgICAgICAgICAgYXNzZXJ0IHBsdWdpbi5sb2dfZmlsZV9oYW5kbGVyLmxldmVsID09
IGxvZ2dpbmcuSU5GTworICAgICAgICAgICAgbG9nZ2luZy5nZXRMb2dnZXIoJ2NhdGNobG9nJyku
ZGVidWcoIlRoaXMgbG9nIG1lc3NhZ2Ugd29uJ3QgYmUgc2hvd24iKQorICAgICAgICAgICAgbG9n
Z2luZy5nZXRMb2dnZXIoJ2NhdGNobG9nJykuaW5mbygiVGhpcyBsb2cgbWVzc2FnZSB3aWxsIGJl
IHNob3duIikKKyAgICAgICAgICAgIHByaW50KCdQQVNTRUQnKQorICAgICcnJykKKworICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctcycpCisKKyAgICAjIGZubWF0Y2hfbGluZXMgZG9l
cyBhbiBhc3NlcnRpb24gaW50ZXJuYWxseQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cyhbCisgICAgICAgICd0ZXN0X2xvZ19maWxlX2luaV9sZXZlbC5weSBQQVNTRUQnLAorICAgIF0p
CisKKyAgICAjIG1ha2Ugc3VyZSB0aGF0IHRoYXQgd2UgZ2V0IGEgJzAnIGV4aXQgY29kZSBmb3Ig
dGhlIHRlc3RzdWl0ZQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICBhc3NlcnQgb3Mu
cGF0aC5pc2ZpbGUobG9nX2ZpbGUpCisgICAgd2l0aCBvcGVuKGxvZ19maWxlKSBhcyByZmg6Cisg
ICAgICAgIGNvbnRlbnRzID0gcmZoLnJlYWQoKQorICAgICAgICBhc3NlcnQgIlRoaXMgbG9nIG1l
c3NhZ2Ugd2lsbCBiZSBzaG93biIgaW4gY29udGVudHMKKyAgICAgICAgYXNzZXJ0ICJUaGlzIGxv
ZyBtZXNzYWdlIHdvbid0IGJlIHNob3duIiBub3QgaW4gY29udGVudHMKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvbG9nZ2luZy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvbG9nZ2luZy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDFjMzcxYmMzNjI5MGM5
MDVlZjMxNWQxODQ0NTU0NTY5ZGE2N2E2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy9sb2dnaW5nL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTggQEAKK1RoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRo
dWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvbG9nZ2luZy90ZXN0X2ZpeHR1cmUucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL2xvZ2dpbmcvdGVzdF9yZXBvcnRpbmcucHkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvcHl0aG9uL2FwcHJveC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9u
L2FwcHJveC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMDBlMWNlODZmNzgzZmFjM2I3YWM0OTA0OTcxNjVhMjMy
YzhkNjE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vYXBw
cm94LnB5CkBAIC0wLDAgKzEsMzkyIEBACisjIGVuY29kaW5nOiB1dGYtOAoraW1wb3J0IG9wZXJh
dG9yCitpbXBvcnQgc3lzCitpbXBvcnQgcHl0ZXN0CitpbXBvcnQgZG9jdGVzdAorCitmcm9tIHB5
dGVzdCBpbXBvcnQgYXBwcm94Citmcm9tIG9wZXJhdG9yIGltcG9ydCBlcSwgbmUKK2Zyb20gZGVj
aW1hbCBpbXBvcnQgRGVjaW1hbAorZnJvbSBmcmFjdGlvbnMgaW1wb3J0IEZyYWN0aW9uCitpbmYs
IG5hbiA9IGZsb2F0KCdpbmYnKSwgZmxvYXQoJ25hbicpCisKKworY2xhc3MgTXlEb2NUZXN0UnVu
bmVyKGRvY3Rlc3QuRG9jVGVzdFJ1bm5lcik6CisKKyAgICBkZWYgX19pbml0X18oc2VsZik6Cisg
ICAgICAgIGRvY3Rlc3QuRG9jVGVzdFJ1bm5lci5fX2luaXRfXyhzZWxmKQorCisgICAgZGVmIHJl
cG9ydF9mYWlsdXJlKHNlbGYsIG91dCwgdGVzdCwgZXhhbXBsZSwgZ290KToKKyAgICAgICAgcmFp
c2UgQXNzZXJ0aW9uRXJyb3IoIid7fScgZXZhbHVhdGVzIHRvICd7fScsIG5vdCAne30nIi5mb3Jt
YXQoCisgICAgICAgICAgICBleGFtcGxlLnNvdXJjZS5zdHJpcCgpLCBnb3Quc3RyaXAoKSwgZXhh
bXBsZS53YW50LnN0cmlwKCkpKQorCisKK2NsYXNzIFRlc3RBcHByb3gob2JqZWN0KToKKworICAg
IGRlZiB0ZXN0X3JlcHJfc3RyaW5nKHNlbGYpOgorICAgICAgICBwbHVzX21pbnVzID0gdSdcdTAw
YjEnIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPiAyIGVsc2UgdScrLScKKyAgICAgICAgdG9sMSwg
dG9sMiwgaW5mciA9ICcxLjBlLTA2JywgJzIuMGUtMDYnLCAnaW5mJworICAgICAgICBhc3NlcnQg
cmVwcihhcHByb3goMS4wKSkgPT0gJzEuMCB7cG19IHt0b2wxfScuZm9ybWF0KHBtPXBsdXNfbWlu
dXMsIHRvbDE9dG9sMSkKKyAgICAgICAgYXNzZXJ0IHJlcHIoYXBwcm94KFsxLjAsIDIuMF0pKSA9
PSAnYXBwcm94KFsxLjAge3BtfSB7dG9sMX0sIDIuMCB7cG19IHt0b2wyfV0pJy5mb3JtYXQoCisg
ICAgICAgICAgICBwbT1wbHVzX21pbnVzLCB0b2wxPXRvbDEsIHRvbDI9dG9sMikKKyAgICAgICAg
YXNzZXJ0IHJlcHIoYXBwcm94KCgxLjAsIDIuMCkpKSA9PSAnYXBwcm94KCgxLjAge3BtfSB7dG9s
MX0sIDIuMCB7cG19IHt0b2wyfSkpJy5mb3JtYXQoCisgICAgICAgICAgICBwbT1wbHVzX21pbnVz
LCB0b2wxPXRvbDEsIHRvbDI9dG9sMikKKyAgICAgICAgYXNzZXJ0IHJlcHIoYXBwcm94KGluZikp
ID09ICdpbmYnCisgICAgICAgIGFzc2VydCByZXByKGFwcHJveCgxLjAsIHJlbD1uYW4pKSA9PSAn
MS4wIHtwbX0gPz8/Jy5mb3JtYXQocG09cGx1c19taW51cykKKyAgICAgICAgYXNzZXJ0IHJlcHIo
YXBwcm94KDEuMCwgcmVsPWluZikpID09ICcxLjAge3BtfSB7aW5mcn0nLmZvcm1hdChwbT1wbHVz
X21pbnVzLCBpbmZyPWluZnIpCisgICAgICAgIGFzc2VydCByZXByKGFwcHJveCgxLjBqLCByZWw9
aW5mKSkgPT0gJzFqJworCisgICAgICAgICMgRGljdGlvbmFyaWVzIGFyZW4ndCBvcmRlcmVkLCBz
byB3ZSBuZWVkIHRvIGNoZWNrIGJvdGggb3JkZXJzLgorICAgICAgICBhc3NlcnQgcmVwcihhcHBy
b3goeydhJzogMS4wLCAnYic6IDIuMH0pKSBpbiAoCisgICAgICAgICAgICAiYXBwcm94KHt7J2En
OiAxLjAge3BtfSB7dG9sMX0sICdiJzogMi4wIHtwbX0ge3RvbDJ9fX0pIi5mb3JtYXQocG09cGx1
c19taW51cywgdG9sMT10b2wxLCB0b2wyPXRvbDIpLAorICAgICAgICAgICAgImFwcHJveCh7eydi
JzogMi4wIHtwbX0ge3RvbDJ9LCAnYSc6IDEuMCB7cG19IHt0b2wxfX19KSIuZm9ybWF0KHBtPXBs
dXNfbWludXMsIHRvbDE9dG9sMSwgdG9sMj10b2wyKSwKKyAgICAgICAgKQorCisgICAgZGVmIHRl
c3Rfb3BlcmF0b3Jfb3ZlcmxvYWRpbmcoc2VsZik6CisgICAgICAgIGFzc2VydCAxID09IGFwcHJv
eCgxLCByZWw9MWUtNiwgYWJzPTFlLTEyKQorICAgICAgICBhc3NlcnQgbm90ICgxICE9IGFwcHJv
eCgxLCByZWw9MWUtNiwgYWJzPTFlLTEyKSkKKyAgICAgICAgYXNzZXJ0IDEwICE9IGFwcHJveCgx
LCByZWw9MWUtNiwgYWJzPTFlLTEyKQorICAgICAgICBhc3NlcnQgbm90ICgxMCA9PSBhcHByb3go
MSwgcmVsPTFlLTYsIGFicz0xZS0xMikpCisKKyAgICBkZWYgdGVzdF9leGFjdGx5X2VxdWFsKHNl
bGYpOgorICAgICAgICBleGFtcGxlcyA9IFsKKyAgICAgICAgICAgICgyLjAsIDIuMCksCisgICAg
ICAgICAgICAoMC4xZTIwMCwgMC4xZTIwMCksCisgICAgICAgICAgICAoMS4xMjNlLTMwMCwgMS4x
MjNlLTMwMCksCisgICAgICAgICAgICAoMTIzNDUsIDEyMzQ1LjApLAorICAgICAgICAgICAgKDAu
MCwgLTAuMCksCisgICAgICAgICAgICAoMzQ1Njc4LCAzNDU2NzgpLAorICAgICAgICAgICAgKERl
Y2ltYWwoJzEuMDAwMScpLCBEZWNpbWFsKCcxLjAwMDEnKSksCisgICAgICAgICAgICAoRnJhY3Rp
b24oMSwgMyksIEZyYWN0aW9uKC0xLCAtMykpLAorICAgICAgICBdCisgICAgICAgIGZvciBhLCB4
IGluIGV4YW1wbGVzOgorICAgICAgICAgICAgYXNzZXJ0IGEgPT0gYXBwcm94KHgpCisKKyAgICBk
ZWYgdGVzdF9vcHBvc2l0ZV9zaWduKHNlbGYpOgorICAgICAgICBleGFtcGxlcyA9IFsKKyAgICAg
ICAgICAgIChlcSwgMWUtMTAwLCAtMWUtMTAwKSwKKyAgICAgICAgICAgIChuZSwgMWUxMDAsIC0x
ZTEwMCksCisgICAgICAgIF0KKyAgICAgICAgZm9yIG9wLCBhLCB4IGluIGV4YW1wbGVzOgorICAg
ICAgICAgICAgYXNzZXJ0IG9wKGEsIGFwcHJveCh4KSkKKworICAgIGRlZiB0ZXN0X3plcm9fdG9s
ZXJhbmNlKHNlbGYpOgorICAgICAgICB3aXRoaW5fMWUxMCA9IFsKKyAgICAgICAgICAgICgxLjFl
LTEwMCwgMWUtMTAwKSwKKyAgICAgICAgICAgICgtMS4xZS0xMDAsIC0xZS0xMDApLAorICAgICAg
ICBdCisgICAgICAgIGZvciBhLCB4IGluIHdpdGhpbl8xZTEwOgorICAgICAgICAgICAgYXNzZXJ0
IHggPT0gYXBwcm94KHgsIHJlbD0wLjAsIGFicz0wLjApCisgICAgICAgICAgICBhc3NlcnQgYSAh
PSBhcHByb3goeCwgcmVsPTAuMCwgYWJzPTAuMCkKKyAgICAgICAgICAgIGFzc2VydCBhID09IGFw
cHJveCh4LCByZWw9MC4wLCBhYnM9NWUtMTAxKQorICAgICAgICAgICAgYXNzZXJ0IGEgIT0gYXBw
cm94KHgsIHJlbD0wLjAsIGFicz01ZS0xMDIpCisgICAgICAgICAgICBhc3NlcnQgYSA9PSBhcHBy
b3goeCwgcmVsPTVlLTEsIGFicz0wLjApCisgICAgICAgICAgICBhc3NlcnQgYSAhPSBhcHByb3go
eCwgcmVsPTVlLTIsIGFicz0wLjApCisKKyAgICBkZWYgdGVzdF9uZWdhdGl2ZV90b2xlcmFuY2Uo
c2VsZik6CisgICAgICAgICMgTmVnYXRpdmUgdG9sZXJhbmNlcyBhcmUgbm90IGFsbG93ZWQuCisg
ICAgICAgIGlsbGVnYWxfa3dhcmdzID0gWworICAgICAgICAgICAgZGljdChyZWw9LTFlMTAwKSwK
KyAgICAgICAgICAgIGRpY3QoYWJzPS0xZTEwMCksCisgICAgICAgICAgICBkaWN0KHJlbD0xZTEw
MCwgYWJzPS0xZTEwMCksCisgICAgICAgICAgICBkaWN0KHJlbD0tMWUxMDAsIGFicz0xZTEwMCks
CisgICAgICAgICAgICBkaWN0KHJlbD0tMWUxMDAsIGFicz0tMWUxMDApLAorICAgICAgICBdCisg
ICAgICAgIGZvciBrd2FyZ3MgaW4gaWxsZWdhbF9rd2FyZ3M6CisgICAgICAgICAgICB3aXRoIHB5
dGVzdC5yYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICAgICAgMS4xID09IGFwcHJveCgx
LCAqKmt3YXJncykKKworICAgIGRlZiB0ZXN0X2luZl90b2xlcmFuY2Uoc2VsZik6CisgICAgICAg
ICMgRXZlcnl0aGluZyBzaG91bGQgYmUgZXF1YWwgaWYgdGhlIHRvbGVyYW5jZSBpcyBpbmZpbml0
ZS4KKyAgICAgICAgbGFyZ2VfZGlmZnMgPSBbCisgICAgICAgICAgICAoMSwgMTAwMCksCisgICAg
ICAgICAgICAoMWUtNTAsIDFlNTApLAorICAgICAgICAgICAgKC0xLjAsIC0xZTMwMCksCisgICAg
ICAgICAgICAoMC4wLCAxMCksCisgICAgICAgIF0KKyAgICAgICAgZm9yIGEsIHggaW4gbGFyZ2Vf
ZGlmZnM6CisgICAgICAgICAgICBhc3NlcnQgYSAhPSBhcHByb3goeCwgcmVsPTAuMCwgYWJzPTAu
MCkKKyAgICAgICAgICAgIGFzc2VydCBhID09IGFwcHJveCh4LCByZWw9aW5mLCBhYnM9MC4wKQor
ICAgICAgICAgICAgYXNzZXJ0IGEgPT0gYXBwcm94KHgsIHJlbD0wLjAsIGFicz1pbmYpCisgICAg
ICAgICAgICBhc3NlcnQgYSA9PSBhcHByb3goeCwgcmVsPWluZiwgYWJzPWluZikKKworICAgIGRl
ZiB0ZXN0X2luZl90b2xlcmFuY2VfZXhwZWN0aW5nX3plcm8oc2VsZik6CisgICAgICAgICMgSWYg
dGhlIHJlbGF0aXZlIHRvbGVyYW5jZSBpcyB6ZXJvIGJ1dCB0aGUgZXhwZWN0ZWQgdmFsdWUgaXMg
aW5maW5pdGUsCisgICAgICAgICMgdGhlIGFjdHVhbCB0b2xlcmFuY2UgaXMgYSBOYU4sIHdoaWNo
IHNob3VsZCBiZSBhbiBlcnJvci4KKyAgICAgICAgaWxsZWdhbF9rd2FyZ3MgPSBbCisgICAgICAg
ICAgICBkaWN0KHJlbD1pbmYsIGFicz0wLjApLAorICAgICAgICAgICAgZGljdChyZWw9aW5mLCBh
YnM9aW5mKSwKKyAgICAgICAgXQorICAgICAgICBmb3Iga3dhcmdzIGluIGlsbGVnYWxfa3dhcmdz
OgorICAgICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAg
ICAgICAgIDEgPT0gYXBwcm94KDAsICoqa3dhcmdzKQorCisgICAgZGVmIHRlc3RfbmFuX3RvbGVy
YW5jZShzZWxmKToKKyAgICAgICAgaWxsZWdhbF9rd2FyZ3MgPSBbCisgICAgICAgICAgICBkaWN0
KHJlbD1uYW4pLAorICAgICAgICAgICAgZGljdChhYnM9bmFuKSwKKyAgICAgICAgICAgIGRpY3Qo
cmVsPW5hbiwgYWJzPW5hbiksCisgICAgICAgIF0KKyAgICAgICAgZm9yIGt3YXJncyBpbiBpbGxl
Z2FsX2t3YXJnczoKKyAgICAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yKToK
KyAgICAgICAgICAgICAgICAxLjEgPT0gYXBwcm94KDEsICoqa3dhcmdzKQorCisgICAgZGVmIHRl
c3RfcmVhc29uYWJsZV9kZWZhdWx0cyhzZWxmKToKKyAgICAgICAgIyBXaGF0ZXZlciB0aGUgZGVm
YXVsdHMgYXJlLCB0aGV5IHNob3VsZCB3b3JrIGZvciBudW1iZXJzIGNsb3NlIHRvIDEKKyAgICAg
ICAgIyB0aGFuIGhhdmUgYSBzbWFsbCBhbW91bnQgb2YgZmxvYXRpbmctcG9pbnQgZXJyb3IuCisg
ICAgICAgIGFzc2VydCAwLjEgKyAwLjIgPT0gYXBwcm94KDAuMykKKworICAgIGRlZiB0ZXN0X2Rl
ZmF1bHRfdG9sZXJhbmNlcyhzZWxmKToKKyAgICAgICAgIyBUaGlzIHRlc3RzIHRoZSBkZWZhdWx0
cyBhcyB0aGV5IGFyZSBjdXJyZW50bHkgc2V0LiAgSWYgeW91IGNoYW5nZSB0aGUKKyAgICAgICAg
IyBkZWZhdWx0cywgdGhpcyB0ZXN0IHdpbGwgZmFpbCBidXQgeW91IHNob3VsZCBmZWVsIGZyZWUg
dG8gY2hhbmdlIGl0LgorICAgICAgICAjIE5vbmUgb2YgdGhlIG90aGVyIHRlc3RzIChleGNlcHQg
dGhlIGRvY3Rlc3RzKSBzaG91bGQgYmUgYWZmZWN0ZWQgYnkKKyAgICAgICAgIyB0aGUgY2hvaWNl
IG9mIGRlZmF1bHRzLgorICAgICAgICBleGFtcGxlcyA9IFsKKyAgICAgICAgICAgICMgUmVsYXRp
dmUgdG9sZXJhbmNlIHVzZWQuCisgICAgICAgICAgICAoZXEsIDFlMTAwICsgMWU5NCwgMWUxMDAp
LAorICAgICAgICAgICAgKG5lLCAxZTEwMCArIDJlOTQsIDFlMTAwKSwKKyAgICAgICAgICAgIChl
cSwgMWUwICsgMWUtNiwgMWUwKSwKKyAgICAgICAgICAgIChuZSwgMWUwICsgMmUtNiwgMWUwKSwK
KyAgICAgICAgICAgICMgQWJzb2x1dGUgdG9sZXJhbmNlIHVzZWQuCisgICAgICAgICAgICAoZXEs
IDFlLTEwMCwgKyAxZS0xMDYpLAorICAgICAgICAgICAgKGVxLCAxZS0xMDAsICsgMmUtMTA2KSwK
KyAgICAgICAgICAgIChlcSwgMWUtMTAwLCAwKSwKKyAgICAgICAgXQorICAgICAgICBmb3Igb3As
IGEsIHggaW4gZXhhbXBsZXM6CisgICAgICAgICAgICBhc3NlcnQgb3AoYSwgYXBwcm94KHgpKQor
CisgICAgZGVmIHRlc3RfY3VzdG9tX3RvbGVyYW5jZXMoc2VsZik6CisgICAgICAgIGFzc2VydCAx
ZTggKyAxZTAgPT0gYXBwcm94KDFlOCwgcmVsPTVlLTgsIGFicz01ZTApCisgICAgICAgIGFzc2Vy
dCAxZTggKyAxZTAgPT0gYXBwcm94KDFlOCwgcmVsPTVlLTksIGFicz01ZTApCisgICAgICAgIGFz
c2VydCAxZTggKyAxZTAgPT0gYXBwcm94KDFlOCwgcmVsPTVlLTgsIGFicz01ZS0xKQorICAgICAg
ICBhc3NlcnQgMWU4ICsgMWUwICE9IGFwcHJveCgxZTgsIHJlbD01ZS05LCBhYnM9NWUtMSkKKwor
ICAgICAgICBhc3NlcnQgMWUwICsgMWUtOCA9PSBhcHByb3goMWUwLCByZWw9NWUtOCwgYWJzPTVl
LTgpCisgICAgICAgIGFzc2VydCAxZTAgKyAxZS04ID09IGFwcHJveCgxZTAsIHJlbD01ZS05LCBh
YnM9NWUtOCkKKyAgICAgICAgYXNzZXJ0IDFlMCArIDFlLTggPT0gYXBwcm94KDFlMCwgcmVsPTVl
LTgsIGFicz01ZS05KQorICAgICAgICBhc3NlcnQgMWUwICsgMWUtOCAhPSBhcHByb3goMWUwLCBy
ZWw9NWUtOSwgYWJzPTVlLTkpCisKKyAgICAgICAgYXNzZXJ0IDFlLTggKyAxZS0xNiA9PSBhcHBy
b3goMWUtOCwgcmVsPTVlLTgsIGFicz01ZS0xNikKKyAgICAgICAgYXNzZXJ0IDFlLTggKyAxZS0x
NiA9PSBhcHByb3goMWUtOCwgcmVsPTVlLTksIGFicz01ZS0xNikKKyAgICAgICAgYXNzZXJ0IDFl
LTggKyAxZS0xNiA9PSBhcHByb3goMWUtOCwgcmVsPTVlLTgsIGFicz01ZS0xNykKKyAgICAgICAg
YXNzZXJ0IDFlLTggKyAxZS0xNiAhPSBhcHByb3goMWUtOCwgcmVsPTVlLTksIGFicz01ZS0xNykK
KworICAgIGRlZiB0ZXN0X3JlbGF0aXZlX3RvbGVyYW5jZShzZWxmKToKKyAgICAgICAgd2l0aGlu
XzFlOF9yZWwgPSBbCisgICAgICAgICAgICAoMWU4ICsgMWUwLCAxZTgpLAorICAgICAgICAgICAg
KDFlMCArIDFlLTgsIDFlMCksCisgICAgICAgICAgICAoMWUtOCArIDFlLTE2LCAxZS04KSwKKyAg
ICAgICAgXQorICAgICAgICBmb3IgYSwgeCBpbiB3aXRoaW5fMWU4X3JlbDoKKyAgICAgICAgICAg
IGFzc2VydCBhID09IGFwcHJveCh4LCByZWw9NWUtOCwgYWJzPTAuMCkKKyAgICAgICAgICAgIGFz
c2VydCBhICE9IGFwcHJveCh4LCByZWw9NWUtOSwgYWJzPTAuMCkKKworICAgIGRlZiB0ZXN0X2Fi
c29sdXRlX3RvbGVyYW5jZShzZWxmKToKKyAgICAgICAgd2l0aGluXzFlOF9hYnMgPSBbCisgICAg
ICAgICAgICAoMWU4ICsgOWUtOSwgMWU4KSwKKyAgICAgICAgICAgICgxZTAgKyA5ZS05LCAxZTAp
LAorICAgICAgICAgICAgKDFlLTggKyA5ZS05LCAxZS04KSwKKyAgICAgICAgXQorICAgICAgICBm
b3IgYSwgeCBpbiB3aXRoaW5fMWU4X2FiczoKKyAgICAgICAgICAgIGFzc2VydCBhID09IGFwcHJv
eCh4LCByZWw9MCwgYWJzPTVlLTgpCisgICAgICAgICAgICBhc3NlcnQgYSAhPSBhcHByb3goeCwg
cmVsPTAsIGFicz01ZS05KQorCisgICAgZGVmIHRlc3RfZXhwZWN0aW5nX3plcm8oc2VsZik6Cisg
ICAgICAgIGV4YW1wbGVzID0gWworICAgICAgICAgICAgKG5lLCAxZS02LCAwLjApLAorICAgICAg
ICAgICAgKG5lLCAtMWUtNiwgMC4wKSwKKyAgICAgICAgICAgIChlcSwgMWUtMTIsIDAuMCksCisg
ICAgICAgICAgICAoZXEsIC0xZS0xMiwgMC4wKSwKKyAgICAgICAgICAgIChuZSwgMmUtMTIsIDAu
MCksCisgICAgICAgICAgICAobmUsIC0yZS0xMiwgMC4wKSwKKyAgICAgICAgICAgIChuZSwgaW5m
LCAwLjApLAorICAgICAgICAgICAgKG5lLCBuYW4sIDAuMCksCisgICAgICAgIF0KKyAgICAgICAg
Zm9yIG9wLCBhLCB4IGluIGV4YW1wbGVzOgorICAgICAgICAgICAgYXNzZXJ0IG9wKGEsIGFwcHJv
eCh4LCByZWw9MC4wLCBhYnM9MWUtMTIpKQorICAgICAgICAgICAgYXNzZXJ0IG9wKGEsIGFwcHJv
eCh4LCByZWw9MWUtNiwgYWJzPTFlLTEyKSkKKworICAgIGRlZiB0ZXN0X2V4cGVjdGluZ19pbmYo
c2VsZik6CisgICAgICAgIGV4YW1wbGVzID0gWworICAgICAgICAgICAgKGVxLCBpbmYsIGluZiks
CisgICAgICAgICAgICAoZXEsIC1pbmYsIC1pbmYpLAorICAgICAgICAgICAgKG5lLCBpbmYsIC1p
bmYpLAorICAgICAgICAgICAgKG5lLCAwLjAsIGluZiksCisgICAgICAgICAgICAobmUsIG5hbiwg
aW5mKSwKKyAgICAgICAgXQorICAgICAgICBmb3Igb3AsIGEsIHggaW4gZXhhbXBsZXM6CisgICAg
ICAgICAgICBhc3NlcnQgb3AoYSwgYXBwcm94KHgpKQorCisgICAgZGVmIHRlc3RfZXhwZWN0aW5n
X25hbihzZWxmKToKKyAgICAgICAgZXhhbXBsZXMgPSBbCisgICAgICAgICAgICAoZXEsIG5hbiwg
bmFuKSwKKyAgICAgICAgICAgIChlcSwgLW5hbiwgLW5hbiksCisgICAgICAgICAgICAoZXEsIG5h
biwgLW5hbiksCisgICAgICAgICAgICAobmUsIDAuMCwgbmFuKSwKKyAgICAgICAgICAgIChuZSwg
aW5mLCBuYW4pLAorICAgICAgICBdCisgICAgICAgIGZvciBvcCwgYSwgeCBpbiBleGFtcGxlczoK
KyAgICAgICAgICAgICMgTm90aGluZyBpcyBlcXVhbCB0byBOYU4gYnkgZGVmYXVsdC4KKyAgICAg
ICAgICAgIGFzc2VydCBhICE9IGFwcHJveCh4KQorCisgICAgICAgICAgICAjIElmIGBgbmFuX29r
PVRydWVgYCwgdGhlbiBOYU4gaXMgZXF1YWwgdG8gTmFOLgorICAgICAgICAgICAgYXNzZXJ0IG9w
KGEsIGFwcHJveCh4LCBuYW5fb2s9VHJ1ZSkpCisKKyAgICBkZWYgdGVzdF9pbnQoc2VsZik6Cisg
ICAgICAgIHdpdGhpbl8xZTYgPSBbCisgICAgICAgICAgICAoMTAwMDAwMSwgMTAwMDAwMCksCisg
ICAgICAgICAgICAoLTEwMDAwMDEsIC0xMDAwMDAwKSwKKyAgICAgICAgXQorICAgICAgICBmb3Ig
YSwgeCBpbiB3aXRoaW5fMWU2OgorICAgICAgICAgICAgYXNzZXJ0IGEgPT0gYXBwcm94KHgsIHJl
bD01ZS02LCBhYnM9MCkKKyAgICAgICAgICAgIGFzc2VydCBhICE9IGFwcHJveCh4LCByZWw9NWUt
NywgYWJzPTApCisgICAgICAgICAgICBhc3NlcnQgYXBwcm94KHgsIHJlbD01ZS02LCBhYnM9MCkg
PT0gYQorICAgICAgICAgICAgYXNzZXJ0IGFwcHJveCh4LCByZWw9NWUtNywgYWJzPTApICE9IGEK
KworICAgIGRlZiB0ZXN0X2RlY2ltYWwoc2VsZik6CisgICAgICAgIHdpdGhpbl8xZTYgPSBbCisg
ICAgICAgICAgICAoRGVjaW1hbCgnMS4wMDAwMDEnKSwgRGVjaW1hbCgnMS4wJykpLAorICAgICAg
ICAgICAgKERlY2ltYWwoJy0xLjAwMDAwMScpLCBEZWNpbWFsKCctMS4wJykpLAorICAgICAgICBd
CisgICAgICAgIGZvciBhLCB4IGluIHdpdGhpbl8xZTY6CisgICAgICAgICAgICBhc3NlcnQgYSA9
PSBhcHByb3goeCwgcmVsPURlY2ltYWwoJzVlLTYnKSwgYWJzPTApCisgICAgICAgICAgICBhc3Nl
cnQgYSAhPSBhcHByb3goeCwgcmVsPURlY2ltYWwoJzVlLTcnKSwgYWJzPTApCisgICAgICAgICAg
ICBhc3NlcnQgYXBwcm94KHgsIHJlbD1EZWNpbWFsKCc1ZS02JyksIGFicz0wKSA9PSBhCisgICAg
ICAgICAgICBhc3NlcnQgYXBwcm94KHgsIHJlbD1EZWNpbWFsKCc1ZS03JyksIGFicz0wKSAhPSBh
CisKKyAgICBkZWYgdGVzdF9mcmFjdGlvbihzZWxmKToKKyAgICAgICAgd2l0aGluXzFlNiA9IFsK
KyAgICAgICAgICAgICgxICsgRnJhY3Rpb24oMSwgMTAwMDAwMCksIEZyYWN0aW9uKDEpKSwKKyAg
ICAgICAgICAgICgtMSAtIEZyYWN0aW9uKC0xLCAxMDAwMDAwKSwgRnJhY3Rpb24oLTEpKSwKKyAg
ICAgICAgXQorICAgICAgICBmb3IgYSwgeCBpbiB3aXRoaW5fMWU2OgorICAgICAgICAgICAgYXNz
ZXJ0IGEgPT0gYXBwcm94KHgsIHJlbD01ZS02LCBhYnM9MCkKKyAgICAgICAgICAgIGFzc2VydCBh
ICE9IGFwcHJveCh4LCByZWw9NWUtNywgYWJzPTApCisgICAgICAgICAgICBhc3NlcnQgYXBwcm94
KHgsIHJlbD01ZS02LCBhYnM9MCkgPT0gYQorICAgICAgICAgICAgYXNzZXJ0IGFwcHJveCh4LCBy
ZWw9NWUtNywgYWJzPTApICE9IGEKKworICAgIGRlZiB0ZXN0X2NvbXBsZXgoc2VsZik6CisgICAg
ICAgIHdpdGhpbl8xZTYgPSBbCisgICAgICAgICAgICAoMS4wMDAwMDEgKyAxLjBqLCAxLjAgKyAx
LjBqKSwKKyAgICAgICAgICAgICgxLjAgKyAxLjAwMDAwMWosIDEuMCArIDEuMGopLAorICAgICAg
ICAgICAgKC0xLjAwMDAwMSArIDEuMGosIC0xLjAgKyAxLjBqKSwKKyAgICAgICAgICAgICgxLjAg
LSAxLjAwMDAwMWosIDEuMCAtIDEuMGopLAorICAgICAgICBdCisgICAgICAgIGZvciBhLCB4IGlu
IHdpdGhpbl8xZTY6CisgICAgICAgICAgICBhc3NlcnQgYSA9PSBhcHByb3goeCwgcmVsPTVlLTYs
IGFicz0wKQorICAgICAgICAgICAgYXNzZXJ0IGEgIT0gYXBwcm94KHgsIHJlbD01ZS03LCBhYnM9
MCkKKyAgICAgICAgICAgIGFzc2VydCBhcHByb3goeCwgcmVsPTVlLTYsIGFicz0wKSA9PSBhCisg
ICAgICAgICAgICBhc3NlcnQgYXBwcm94KHgsIHJlbD01ZS03LCBhYnM9MCkgIT0gYQorCisgICAg
ZGVmIHRlc3RfbGlzdChzZWxmKToKKyAgICAgICAgYWN0dWFsID0gWzEgKyAxZS03LCAyICsgMWUt
OF0KKyAgICAgICAgZXhwZWN0ZWQgPSBbMSwgMl0KKworICAgICAgICAjIFJldHVybiBmYWxzZSBp
ZiBhbnkgZWxlbWVudCBpcyBvdXRzaWRlIHRoZSB0b2xlcmFuY2UuCisgICAgICAgIGFzc2VydCBh
Y3R1YWwgPT0gYXBwcm94KGV4cGVjdGVkLCByZWw9NWUtNywgYWJzPTApCisgICAgICAgIGFzc2Vy
dCBhY3R1YWwgIT0gYXBwcm94KGV4cGVjdGVkLCByZWw9NWUtOCwgYWJzPTApCisgICAgICAgIGFz
c2VydCBhcHByb3goZXhwZWN0ZWQsIHJlbD01ZS03LCBhYnM9MCkgPT0gYWN0dWFsCisgICAgICAg
IGFzc2VydCBhcHByb3goZXhwZWN0ZWQsIHJlbD01ZS04LCBhYnM9MCkgIT0gYWN0dWFsCisKKyAg
ICBkZWYgdGVzdF9saXN0X3dyb25nX2xlbihzZWxmKToKKyAgICAgICAgYXNzZXJ0IFsxLCAyXSAh
PSBhcHByb3goWzFdKQorICAgICAgICBhc3NlcnQgWzEsIDJdICE9IGFwcHJveChbMSwgMiwgM10p
CisKKyAgICBkZWYgdGVzdF90dXBsZShzZWxmKToKKyAgICAgICAgYWN0dWFsID0gKDEgKyAxZS03
LCAyICsgMWUtOCkKKyAgICAgICAgZXhwZWN0ZWQgPSAoMSwgMikKKworICAgICAgICAjIFJldHVy
biBmYWxzZSBpZiBhbnkgZWxlbWVudCBpcyBvdXRzaWRlIHRoZSB0b2xlcmFuY2UuCisgICAgICAg
IGFzc2VydCBhY3R1YWwgPT0gYXBwcm94KGV4cGVjdGVkLCByZWw9NWUtNywgYWJzPTApCisgICAg
ICAgIGFzc2VydCBhY3R1YWwgIT0gYXBwcm94KGV4cGVjdGVkLCByZWw9NWUtOCwgYWJzPTApCisg
ICAgICAgIGFzc2VydCBhcHByb3goZXhwZWN0ZWQsIHJlbD01ZS03LCBhYnM9MCkgPT0gYWN0dWFs
CisgICAgICAgIGFzc2VydCBhcHByb3goZXhwZWN0ZWQsIHJlbD01ZS04LCBhYnM9MCkgIT0gYWN0
dWFsCisKKyAgICBkZWYgdGVzdF90dXBsZV93cm9uZ19sZW4oc2VsZik6CisgICAgICAgIGFzc2Vy
dCAoMSwgMikgIT0gYXBwcm94KCgxLCkpCisgICAgICAgIGFzc2VydCAoMSwgMikgIT0gYXBwcm94
KCgxLCAyLCAzKSkKKworICAgIGRlZiB0ZXN0X2RpY3Qoc2VsZik6CisgICAgICAgIGFjdHVhbCA9
IHsnYSc6IDEgKyAxZS03LCAnYic6IDIgKyAxZS04fQorICAgICAgICAjIERpY3Rpb25hcmllcyBi
ZWNhbWUgb3JkZXJlZCBpbiBweXRob24zLjYsIHNvIHN3aXRjaCB1cCB0aGUgb3JkZXIgaGVyZQor
ICAgICAgICAjIHRvIG1ha2Ugc3VyZSBpdCBkb2Vzbid0IG1hdHRlci4KKyAgICAgICAgZXhwZWN0
ZWQgPSB7J2InOiAyLCAnYSc6IDF9CisKKyAgICAgICAgIyBSZXR1cm4gZmFsc2UgaWYgYW55IGVs
ZW1lbnQgaXMgb3V0c2lkZSB0aGUgdG9sZXJhbmNlLgorICAgICAgICBhc3NlcnQgYWN0dWFsID09
IGFwcHJveChleHBlY3RlZCwgcmVsPTVlLTcsIGFicz0wKQorICAgICAgICBhc3NlcnQgYWN0dWFs
ICE9IGFwcHJveChleHBlY3RlZCwgcmVsPTVlLTgsIGFicz0wKQorICAgICAgICBhc3NlcnQgYXBw
cm94KGV4cGVjdGVkLCByZWw9NWUtNywgYWJzPTApID09IGFjdHVhbAorICAgICAgICBhc3NlcnQg
YXBwcm94KGV4cGVjdGVkLCByZWw9NWUtOCwgYWJzPTApICE9IGFjdHVhbAorCisgICAgZGVmIHRl
c3RfZGljdF93cm9uZ19sZW4oc2VsZik6CisgICAgICAgIGFzc2VydCB7J2EnOiAxLCAnYic6IDJ9
ICE9IGFwcHJveCh7J2EnOiAxfSkKKyAgICAgICAgYXNzZXJ0IHsnYSc6IDEsICdiJzogMn0gIT0g
YXBwcm94KHsnYSc6IDEsICdjJzogMn0pCisgICAgICAgIGFzc2VydCB7J2EnOiAxLCAnYic6IDJ9
ICE9IGFwcHJveCh7J2EnOiAxLCAnYic6IDIsICdjJzogM30pCisKKyAgICBkZWYgdGVzdF9udW1w
eV9hcnJheShzZWxmKToKKyAgICAgICAgbnAgPSBweXRlc3QuaW1wb3J0b3Jza2lwKCdudW1weScp
CisKKyAgICAgICAgYWN0dWFsID0gbnAuYXJyYXkoWzEgKyAxZS03LCAyICsgMWUtOF0pCisgICAg
ICAgIGV4cGVjdGVkID0gbnAuYXJyYXkoWzEsIDJdKQorCisgICAgICAgICMgUmV0dXJuIGZhbHNl
IGlmIGFueSBlbGVtZW50IGlzIG91dHNpZGUgdGhlIHRvbGVyYW5jZS4KKyAgICAgICAgYXNzZXJ0
IGFjdHVhbCA9PSBhcHByb3goZXhwZWN0ZWQsIHJlbD01ZS03LCBhYnM9MCkKKyAgICAgICAgYXNz
ZXJ0IGFjdHVhbCAhPSBhcHByb3goZXhwZWN0ZWQsIHJlbD01ZS04LCBhYnM9MCkKKyAgICAgICAg
YXNzZXJ0IGFwcHJveChleHBlY3RlZCwgcmVsPTVlLTcsIGFicz0wKSA9PSBleHBlY3RlZAorICAg
ICAgICBhc3NlcnQgYXBwcm94KGV4cGVjdGVkLCByZWw9NWUtOCwgYWJzPTApICE9IGFjdHVhbAor
CisgICAgICAgICMgU2hvdWxkIGJlIGFibGUgdG8gY29tcGFyZSBsaXN0cyB3aXRoIG51bXB5IGFy
cmF5cy4KKyAgICAgICAgYXNzZXJ0IGxpc3QoYWN0dWFsKSA9PSBhcHByb3goZXhwZWN0ZWQsIHJl
bD01ZS03LCBhYnM9MCkKKyAgICAgICAgYXNzZXJ0IGxpc3QoYWN0dWFsKSAhPSBhcHByb3goZXhw
ZWN0ZWQsIHJlbD01ZS04LCBhYnM9MCkKKyAgICAgICAgYXNzZXJ0IGFjdHVhbCA9PSBhcHByb3go
bGlzdChleHBlY3RlZCksIHJlbD01ZS03LCBhYnM9MCkKKyAgICAgICAgYXNzZXJ0IGFjdHVhbCAh
PSBhcHByb3gobGlzdChleHBlY3RlZCksIHJlbD01ZS04LCBhYnM9MCkKKworICAgIGRlZiB0ZXN0
X251bXB5X2FycmF5X3dyb25nX3NoYXBlKHNlbGYpOgorICAgICAgICBucCA9IHB5dGVzdC5pbXBv
cnRvcnNraXAoJ251bXB5JykKKworICAgICAgICBhMTIgPSBucC5hcnJheShbWzEsIDJdXSkKKyAg
ICAgICAgYTIxID0gbnAuYXJyYXkoW1sxXSwgWzJdXSkKKworICAgICAgICBhc3NlcnQgYTEyICE9
IGFwcHJveChhMjEpCisgICAgICAgIGFzc2VydCBhMjEgIT0gYXBwcm94KGExMikKKworICAgIGRl
ZiB0ZXN0X2RvY3Rlc3RzKHNlbGYpOgorICAgICAgICBwYXJzZXIgPSBkb2N0ZXN0LkRvY1Rlc3RQ
YXJzZXIoKQorICAgICAgICB0ZXN0ID0gcGFyc2VyLmdldF9kb2N0ZXN0KAorICAgICAgICAgICAg
YXBwcm94Ll9fZG9jX18sCisgICAgICAgICAgICB7J2FwcHJveCc6IGFwcHJveH0sCisgICAgICAg
ICAgICBhcHByb3guX19uYW1lX18sCisgICAgICAgICAgICBOb25lLCBOb25lLAorICAgICAgICAp
CisgICAgICAgIHJ1bm5lciA9IE15RG9jVGVzdFJ1bm5lcigpCisgICAgICAgIHJ1bm5lci5ydW4o
dGVzdCkKKworICAgIGRlZiB0ZXN0X3VuaWNvZGVfcGx1c19taW51cyhzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgIiIiCisgICAgICAgIENvbXBhcmluZyBhcHByb3ggaW5zdGFuY2VzIGluc2lkZSBs
aXN0cyBzaG91bGQgbm90IHByb2R1Y2UgYW4gZXJyb3IgaW4gdGhlIGRldGFpbGVkIGRpZmYuCisg
ICAgICAgIEludGVncmF0aW9uIHRlc3QgZm9yIGlzc3VlICMyMTExLgorICAgICAgICAiIiIKKyAg
ICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAor
ICAgICAgICAgICAgZGVmIHRlc3RfZm9vKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IFszXSA9
PSBbcHl0ZXN0LmFwcHJveCg0KV0KKyAgICAgICAgIiIiKQorICAgICAgICBleHBlY3RlZCA9ICc0
LjBlLTA2JworICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAnKkF0IGluZGV4IDAgZGlm
ZjogMyAhPSA0ICogezB9Jy5mb3JtYXQoZXhwZWN0ZWQpLAorICAgICAgICAgICAgJz0qIDEgZmFp
bGVkIGluICo9JywKKyAgICAgICAgXSkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgn
b3AnLCBbCisgICAgICAgIHB5dGVzdC5wYXJhbShvcGVyYXRvci5sZSwgaWQ9Jzw9JyksCisgICAg
ICAgIHB5dGVzdC5wYXJhbShvcGVyYXRvci5sdCwgaWQ9JzwnKSwKKyAgICAgICAgcHl0ZXN0LnBh
cmFtKG9wZXJhdG9yLmdlLCBpZD0nPj0nKSwKKyAgICAgICAgcHl0ZXN0LnBhcmFtKG9wZXJhdG9y
Lmd0LCBpZD0nPicpLAorICAgIF0pCisgICAgZGVmIHRlc3RfY29tcGFyaXNvbl9vcGVyYXRvcl90
eXBlX2Vycm9yKHNlbGYsIG9wKToKKyAgICAgICAgIiIiCisgICAgICAgIHB5dGVzdC5hcHByb3gg
c2hvdWxkIHJhaXNlIFR5cGVFcnJvciBmb3Igb3BlcmF0b3JzIG90aGVyIHRoYW4gPT0gYW5kICE9
ICgjMjAwMykuCisgICAgICAgICIiIgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVHlwZUVy
cm9yKToKKyAgICAgICAgICAgIG9wKDEsIGFwcHJveCgxLCByZWw9MWUtNiwgYWJzPTFlLTEyKSkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL2NvbGxlY3QucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9jb2xsZWN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2YzIxNTRiOGMx
ZTk4ZDQ2M2MxOTQyOWU5MzNlYzA1ZThkOTcyZjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL3B5dGhvbi9jb2xsZWN0LnB5CkBAIC0wLDAgKzEsMTQwMiBAQAorIyAtKi0g
Y29kaW5nOiB1dGYtOCAtKi0KK2ltcG9ydCBvcworaW1wb3J0IHN5cworZnJvbSB0ZXh0d3JhcCBp
bXBvcnQgZGVkZW50CisKK2ltcG9ydCBfcHl0ZXN0Ll9jb2RlCitpbXBvcnQgcHkKK2ltcG9ydCBw
eXRlc3QKK2Zyb20gX3B5dGVzdC5tYWluIGltcG9ydCAoCisgICAgQ29sbGVjdG9yLAorICAgIEVY
SVRfTk9URVNUU0NPTExFQ1RFRAorKQorCisKK2lnbm9yZV9wYXJhbWV0cml6ZWRfbWFya3MgPSBw
eXRlc3QubWFyay5maWx0ZXJ3YXJuaW5ncygnaWdub3JlOkFwcGx5aW5nIG1hcmtzIGRpcmVjdGx5
IHRvIHBhcmFtZXRlcnMnKQorCisKK2NsYXNzIFRlc3RNb2R1bGUob2JqZWN0KToKKyAgICBkZWYg
dGVzdF9mYWlsaW5nX2ltcG9ydChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgbW9kY29sID0gdGVz
dGRpci5nZXRtb2R1bGVjb2woImltcG9ydCBhbGtzZGphbHNrZGphbGtqYWxzIikKKyAgICAgICAg
cHl0ZXN0LnJhaXNlcyhDb2xsZWN0b3IuQ29sbGVjdEVycm9yLCBtb2Rjb2wuY29sbGVjdCkKKwor
ICAgIGRlZiB0ZXN0X2ltcG9ydF9kdXBsaWNhdGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIGEg
PSB0ZXN0ZGlyLm1rZGlyKCJhIikKKyAgICAgICAgYiA9IHRlc3RkaXIubWtkaXIoImIiKQorICAg
ICAgICBwID0gYS5lbnN1cmUoInRlc3Rfd2hhdGV2ZXIucHkiKQorICAgICAgICBwLnB5aW1wb3J0
KCkKKyAgICAgICAgZGVsIHB5LnN0ZC5zeXMubW9kdWxlc1sndGVzdF93aGF0ZXZlciddCisgICAg
ICAgIGIuZW5zdXJlKCJ0ZXN0X3doYXRldmVyLnB5IikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAg
ICAgICAgICAgIippbXBvcnQqbWlzbWF0Y2gqIiwKKyAgICAgICAgICAgICIqaW1wb3J0ZWQqdGVz
dF93aGF0ZXZlcioiLAorICAgICAgICAgICAgIiolcyoiICUgYS5qb2luKCJ0ZXN0X3doYXRldmVy
LnB5IiksCisgICAgICAgICAgICAiKm5vdCB0aGUgc2FtZSoiLAorICAgICAgICAgICAgIiolcyoi
ICUgYi5qb2luKCJ0ZXN0X3doYXRldmVyLnB5IiksCisgICAgICAgICAgICAiKkhJTlQqIiwKKyAg
ICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2ltcG9ydF9wcmVwZW5kX2FwcGVuZChzZWxmLCB0ZXN0
ZGlyLCBtb25rZXlwYXRjaCk6CisgICAgICAgIHN5c3BhdGggPSBsaXN0KHN5cy5wYXRoKQorICAg
ICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHN5cywgInBhdGgiLCBzeXNwYXRoKQorICAgICAgICBy
b290MSA9IHRlc3RkaXIubWtkaXIoInJvb3QxIikKKyAgICAgICAgcm9vdDIgPSB0ZXN0ZGlyLm1r
ZGlyKCJyb290MiIpCisgICAgICAgIHJvb3QxLmVuc3VyZSgieDQ1Ni5weSIpCisgICAgICAgIHJv
b3QyLmVuc3VyZSgieDQ1Ni5weSIpCisgICAgICAgIHAgPSByb290Mi5qb2luKCJ0ZXN0X3g0NTYu
cHkiKQorICAgICAgICBtb25rZXlwYXRjaC5zeXNwYXRoX3ByZXBlbmQoc3RyKHJvb3QxKSkKKyAg
ICAgICAgcC53cml0ZShkZWRlbnQoIiIiXAorICAgICAgICAgICAgaW1wb3J0IHg0NTYKKyAgICAg
ICAgICAgIGRlZiB0ZXN0KCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHg0NTYuX19maWxlX18u
c3RhcnRzd2l0aCglcikKKyAgICAgICAgIiIiICUgc3RyKHJvb3QyKSkpCisgICAgICAgIHdpdGgg
cm9vdDIuYXNfY3dkKCk6CisgICAgICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4o
Ii0taW1wb3J0LW1vZGU9YXBwZW5kIikKKyAgICAgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21l
KHBhc3NlZD0wLCBmYWlsZWQ9MSkKKyAgICAgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5l
X3J1bigpCisgICAgICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworICAg
IGRlZiB0ZXN0X3N5bnRheF9lcnJvcl9pbl9tb2R1bGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IG1vZGNvbCA9IHRlc3RkaXIuZ2V0bW9kdWxlY29sKCJ0aGlzIGlzIGEgc3ludGF4IGVycm9yIikK
KyAgICAgICAgcHl0ZXN0LnJhaXNlcyhtb2Rjb2wuQ29sbGVjdEVycm9yLCBtb2Rjb2wuY29sbGVj
dCkKKyAgICAgICAgcHl0ZXN0LnJhaXNlcyhtb2Rjb2wuQ29sbGVjdEVycm9yLCBtb2Rjb2wuY29s
bGVjdCkKKworICAgIGRlZiB0ZXN0X21vZHVsZV9jb25zaWRlcnNfcGx1Z2lubWFuYWdlcl9hdF9p
bXBvcnQoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIG1vZGNvbCA9IHRlc3RkaXIuZ2V0bW9kdWxl
Y29sKCJweXRlc3RfcGx1Z2lucz0neGFzZGxraicsIikKKyAgICAgICAgcHl0ZXN0LnJhaXNlcyhJ
bXBvcnRFcnJvciwgbGFtYmRhOiBtb2Rjb2wub2JqKQorCisgICAgZGVmIHRlc3RfaW52YWxpZF90
ZXN0X21vZHVsZV9uYW1lKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBhID0gdGVzdGRpci5ta2Rp
cignYScpCisgICAgICAgIGEuZW5zdXJlKCd0ZXN0X29uZS5wYXJ0MS5weScpCisgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcnciKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIkltcG9ydEVycm9yIHdoaWxlIGltcG9ydGluZyB0
ZXN0IG1vZHVsZSp0ZXN0X29uZS5wYXJ0MSoiLAorICAgICAgICAgICAgIkhpbnQ6IG1ha2Ugc3Vy
ZSB5b3VyIHRlc3QgbW9kdWxlcy9wYWNrYWdlcyBoYXZlIHZhbGlkIFB5dGhvbiBuYW1lcy4iLAor
ICAgICAgICBdKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd2ZXJib3NlJywgWzAs
IDEsIDJdKQorICAgIGRlZiB0ZXN0X3Nob3dfdHJhY2ViYWNrX2ltcG9ydF9lcnJvcihzZWxmLCB0
ZXN0ZGlyLCB2ZXJib3NlKToKKyAgICAgICAgIiIiSW1wb3J0IGVycm9ycyB3aGVuIGNvbGxlY3Rp
bmcgbW9kdWxlcyBzaG91bGQgZGlzcGxheSB0aGUgdHJhY2ViYWNrICgjMTk3NikuCisKKyAgICAg
ICAgV2l0aCBsb3cgdmVyYm9zaXR5IHdlIG9taXQgcHl0ZXN0IGFuZCBpbnRlcm5hbCBtb2R1bGVz
LCBvdGhlcndpc2Ugc2hvdyBhbGwgdHJhY2ViYWNrIGVudHJpZXMuCisgICAgICAgICIiIgorICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICBmb29fdHJhY2ViYWNrX2ltcG9y
dF9lcnJvcj0iIiIKKyAgICAgICAgICAgICAgIGZyb20gYmFyX3RyYWNlYmFja19pbXBvcnRfZXJy
b3IgaW1wb3J0IE5PVF9BVkFJTEFCTEUKKyAgICAgICAgICAgIiIiLAorICAgICAgICAgICAgYmFy
X3RyYWNlYmFja19pbXBvcnRfZXJyb3I9IiIsCisgICAgICAgICkKKyAgICAgICAgdGVzdGRpci5t
YWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgICAgaW1wb3J0IGZvb190cmFjZWJhY2tfaW1wb3J0
X2Vycm9yCisgICAgICAgICIiIikKKyAgICAgICAgYXJncyA9ICgnLXYnLCkgKiB2ZXJib3NlCisg
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCphcmdzKQorICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIkltcG9ydEVycm9yIHdoaWxlIGlt
cG9ydGluZyB0ZXN0IG1vZHVsZSoiLAorICAgICAgICAgICAgIlRyYWNlYmFjazoiLAorICAgICAg
ICAgICAgIipmcm9tIGJhcl90cmFjZWJhY2tfaW1wb3J0X2Vycm9yIGltcG9ydCBOT1RfQVZBSUxB
QkxFIiwKKyAgICAgICAgICAgICIqY2Fubm90IGltcG9ydCBuYW1lICpOT1RfQVZBSUxBQkxFKiIs
CisgICAgICAgIF0pCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDIKKworICAgICAgICBz
dGRvdXQgPSByZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgICAgIGZvciBuYW1lIGluICgnX3B5dGVz
dCcsIG9zLnBhdGguam9pbigncHknLCAnX3BhdGgnKSk6CisgICAgICAgICAgICBpZiB2ZXJib3Nl
ID09IDI6CisgICAgICAgICAgICAgICAgYXNzZXJ0IG5hbWUgaW4gc3Rkb3V0CisgICAgICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgICAgIGFzc2VydCBuYW1lIG5vdCBpbiBzdGRvdXQKKworICAg
IGRlZiB0ZXN0X3Nob3dfdHJhY2ViYWNrX2ltcG9ydF9lcnJvcl91bmljb2RlKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICAiIiJDaGVjayB0ZXN0IG1vZHVsZXMgY29sbGVjdGVkIHdoaWNoIHJhaXNl
IEltcG9ydEVycm9yIHdpdGggdW5pY29kZSBtZXNzYWdlcworICAgICAgICBhcmUgaGFuZGxlZCBw
cm9wZXJseSAoIzIzMzYpLgorICAgICAgICAiIiIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxl
KHUiIiIKKyAgICAgICAgICAgICMgLSotIGNvZGluZzogdXRmLTggLSotCisgICAgICAgICAgICBy
YWlzZSBJbXBvcnRFcnJvcih1J1NvbWV0aGluZyBiYWQgaGFwcGVuZWQg4pi6JykKKyAgICAgICAg
IiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiSW1wb3J0RXJyb3Igd2hpbGUg
aW1wb3J0aW5nIHRlc3QgbW9kdWxlKiIsCisgICAgICAgICAgICAiVHJhY2ViYWNrOiIsCisgICAg
ICAgICAgICAiKnJhaXNlIEltcG9ydEVycm9yKlNvbWV0aGluZyBiYWQgaGFwcGVuZWQqIiwKKyAg
ICAgICAgXSkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMgorCisKK2NsYXNzIFRlc3RD
bGFzcyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X2NsYXNzX3dpdGhfaW5pdF93YXJuaW5nKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBj
bGFzcyBUZXN0Q2xhc3MxKG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNl
bGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1ydyIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKmNhbm5vdCBjb2xsZWN0IHRlc3QgY2xhc3MgJ1Rl
c3RDbGFzczEnIGJlY2F1c2UgaXQgaGFzIGEgX19pbml0X18gY29uc3RydWN0b3IiLAorICAgICAg
ICBdKQorCisgICAgZGVmIHRlc3RfY2xhc3Nfc3ViY2xhc3NvYmplY3Qoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHRlc3RkaXIuZ2V0bW9kdWxlY29sKCIiIgorICAgICAgICAgICAgY2xhc3MgdGVz
dChvYmplY3QpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcyhbCisgICAgICAgICAgICAiKmNvbGxlY3RlZCAwKiIsCisgICAgICAgIF0pCisKKyAg
ICBkZWYgdGVzdF9zdGF0aWNfbWV0aG9kKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiJTdXBw
b3J0IGZvciBjb2xsZWN0aW5nIHN0YXRpY21ldGhvZCB0ZXN0cyAoIzI1MjgsICMyNjk5KSIiIgor
ICAgICAgICB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKyAgICAgICAgICAgIGNsYXNzIFRlc3Qob2JqZWN0KToKKyAgICAgICAgICAgICAgICBAc3Rh
dGljbWV0aG9kCisgICAgICAgICAgICAgICAgZGVmIHRlc3Rfc29tZXRoaW5nKCk6CisgICAgICAg
ICAgICAgICAgICAgIHBhc3MKKworICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAg
ICAgICAgICAgICAgIGRlZiBmaXgoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAx
CisKKyAgICAgICAgICAgICAgICBAc3RhdGljbWV0aG9kCisgICAgICAgICAgICAgICAgZGVmIHRl
c3RfZml4KGZpeCk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmaXggPT0gMQorICAgICAg
ICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqY29sbGVjdGVkIDIgaXRl
bXMqIiwKKyAgICAgICAgICAgICIqMiBwYXNzZWQgaW4qIiwKKyAgICAgICAgXSkKKworICAgIGRl
ZiB0ZXN0X3NldHVwX3RlYXJkb3duX2NsYXNzX2FzX2NsYXNzbWV0aG9kKHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9tb2QxPSIiIgorICAgICAgICAgICAg
Y2xhc3MgVGVzdENsYXNzTWV0aG9kKG9iamVjdCk6CisgICAgICAgICAgICAgICAgQGNsYXNzbWV0
aG9kCisgICAgICAgICAgICAgICAgZGVmIHNldHVwX2NsYXNzKGNscyk6CisgICAgICAgICAgICAg
ICAgICAgIHBhc3MKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF8xKHNlbGYpOgorICAgICAgICAg
ICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgQGNsYXNzbWV0aG9kCisgICAgICAgICAg
ICAgICAgZGVmIHRlYXJkb3duX2NsYXNzKGNscyk6CisgICAgICAgICAgICAgICAgICAgIHBhc3MK
KyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKjEgcGFzc2Vk
KiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9pc3N1ZTEwMzVfb2JqX2hhc19nZXRhdHRy
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBtb2Rjb2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgi
IiIKKyAgICAgICAgICAgIGNsYXNzIENoYW1lbGVvbihvYmplY3QpOgorICAgICAgICAgICAgICAg
IGRlZiBfX2dldGF0dHJfXyhzZWxmLCBuYW1lKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IFRydWUKKyAgICAgICAgICAgIGNoYW1lbGVvbiA9IENoYW1lbGVvbigpCisgICAgICAgICIiIikK
KyAgICAgICAgY29saXRlbXMgPSBtb2Rjb2wuY29sbGVjdCgpCisgICAgICAgIGFzc2VydCBsZW4o
Y29saXRlbXMpID09IDAKKworICAgIGRlZiB0ZXN0X2lzc3VlMTU3OV9uYW1lZHR1cGxlKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBp
bXBvcnQgY29sbGVjdGlvbnMKKworICAgICAgICAgICAgVGVzdENhc2UgPSBjb2xsZWN0aW9ucy5u
YW1lZHR1cGxlKCdUZXN0Q2FzZScsIFsnYSddKQorICAgICAgICAiIiIpCisgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCctcncnKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoCisgICAgICAgICAgICAiKmNhbm5vdCBjb2xsZWN0IHRlc3QgY2xhc3MgJ1Rlc3RD
YXNlJyAiCisgICAgICAgICAgICAiYmVjYXVzZSBpdCBoYXMgYSBfX25ld19fIGNvbnN0cnVjdG9y
KiIKKyAgICAgICAgKQorCisgICAgZGVmIHRlc3RfaXNzdWUyMjM0X3Byb3BlcnR5KHNlbGYsIHRl
c3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBjbGFz
cyBUZXN0Q2FzZShvYmplY3QpOgorICAgICAgICAgICAgICAgIEBwcm9wZXJ0eQorICAgICAgICAg
ICAgICAgIGRlZiBwcm9wKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBOb3RJbXBs
ZW1lbnRlZEVycm9yKCkKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IEVYSVRfTk9URVNUU0NPTExF
Q1RFRAorCisKK2NsYXNzIFRlc3RHZW5lcmF0b3Iob2JqZWN0KToKKyAgICBkZWYgdGVzdF9nZW5l
cmF0aXZlX2Z1bmN0aW9ucyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgbW9kY29sID0gdGVzdGRp
ci5nZXRtb2R1bGVjb2woIiIiCisgICAgICAgICAgICBkZWYgZnVuYzEoYXJnLCBhcmcyKToKKyAg
ICAgICAgICAgICAgICBhc3NlcnQgYXJnID09IGFyZzIKKworICAgICAgICAgICAgZGVmIHRlc3Rf
Z2VuKCk6CisgICAgICAgICAgICAgICAgeWllbGQgZnVuYzEsIDE3LCAzKjUKKyAgICAgICAgICAg
ICAgICB5aWVsZCBmdW5jMSwgNDIsIDYqNworICAgICAgICAiIiIpCisgICAgICAgIGNvbGl0ZW1z
ID0gbW9kY29sLmNvbGxlY3QoKQorICAgICAgICBhc3NlcnQgbGVuKGNvbGl0ZW1zKSA9PSAxCisg
ICAgICAgIGdlbmNvbCA9IGNvbGl0ZW1zWzBdCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGdl
bmNvbCwgcHl0ZXN0LkdlbmVyYXRvcikKKyAgICAgICAgZ2VuY29saXRlbXMgPSBnZW5jb2wuY29s
bGVjdCgpCisgICAgICAgIGFzc2VydCBsZW4oZ2VuY29saXRlbXMpID09IDIKKyAgICAgICAgYXNz
ZXJ0IGlzaW5zdGFuY2UoZ2VuY29saXRlbXNbMF0sIHB5dGVzdC5GdW5jdGlvbikKKyAgICAgICAg
YXNzZXJ0IGlzaW5zdGFuY2UoZ2VuY29saXRlbXNbMV0sIHB5dGVzdC5GdW5jdGlvbikKKyAgICAg
ICAgYXNzZXJ0IGdlbmNvbGl0ZW1zWzBdLm5hbWUgPT0gJ1swXScKKyAgICAgICAgYXNzZXJ0IGdl
bmNvbGl0ZW1zWzBdLm9iai5fX25hbWVfXyA9PSAnZnVuYzEnCisKKyAgICBkZWYgdGVzdF9nZW5l
cmF0aXZlX21ldGhvZHMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIG1vZGNvbCA9IHRlc3RkaXIu
Z2V0bW9kdWxlY29sKCIiIgorICAgICAgICAgICAgZGVmIGZ1bmMxKGFyZywgYXJnMik6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0IGFyZyA9PSBhcmcyCisgICAgICAgICAgICBjbGFzcyBUZXN0R2Vu
TWV0aG9kcyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2dlbihzZWxmKToKKyAg
ICAgICAgICAgICAgICAgICAgeWllbGQgZnVuYzEsIDE3LCAzKjUKKyAgICAgICAgICAgICAgICAg
ICAgeWllbGQgZnVuYzEsIDQyLCA2KjcKKyAgICAgICAgIiIiKQorICAgICAgICBnZW5jb2wgPSBt
b2Rjb2wuY29sbGVjdCgpWzBdLmNvbGxlY3QoKVswXS5jb2xsZWN0KClbMF0KKyAgICAgICAgYXNz
ZXJ0IGlzaW5zdGFuY2UoZ2VuY29sLCBweXRlc3QuR2VuZXJhdG9yKQorICAgICAgICBnZW5jb2xp
dGVtcyA9IGdlbmNvbC5jb2xsZWN0KCkKKyAgICAgICAgYXNzZXJ0IGxlbihnZW5jb2xpdGVtcykg
PT0gMgorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShnZW5jb2xpdGVtc1swXSwgcHl0ZXN0LkZ1
bmN0aW9uKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShnZW5jb2xpdGVtc1sxXSwgcHl0ZXN0
LkZ1bmN0aW9uKQorICAgICAgICBhc3NlcnQgZ2VuY29saXRlbXNbMF0ubmFtZSA9PSAnWzBdJwor
ICAgICAgICBhc3NlcnQgZ2VuY29saXRlbXNbMF0ub2JqLl9fbmFtZV9fID09ICdmdW5jMScKKwor
ICAgIGRlZiB0ZXN0X2dlbmVyYXRpdmVfZnVuY3Rpb25zX3dpdGhfZXhwbGljaXRfbmFtZXMoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIG1vZGNvbCA9IHRlc3RkaXIuZ2V0bW9kdWxlY29sKCIiIgor
ICAgICAgICAgICAgZGVmIGZ1bmMxKGFyZywgYXJnMik6CisgICAgICAgICAgICAgICAgYXNzZXJ0
IGFyZyA9PSBhcmcyCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2dlbigpOgorICAgICAgICAgICAg
ICAgIHlpZWxkICJzZXZlbnRlZW4iLCBmdW5jMSwgMTcsIDMqNQorICAgICAgICAgICAgICAgIHlp
ZWxkICJmb3J0eXR3byIsIGZ1bmMxLCA0MiwgNio3CisgICAgICAgICIiIikKKyAgICAgICAgY29s
aXRlbXMgPSBtb2Rjb2wuY29sbGVjdCgpCisgICAgICAgIGFzc2VydCBsZW4oY29saXRlbXMpID09
IDEKKyAgICAgICAgZ2VuY29sID0gY29saXRlbXNbMF0KKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFu
Y2UoZ2VuY29sLCBweXRlc3QuR2VuZXJhdG9yKQorICAgICAgICBnZW5jb2xpdGVtcyA9IGdlbmNv
bC5jb2xsZWN0KCkKKyAgICAgICAgYXNzZXJ0IGxlbihnZW5jb2xpdGVtcykgPT0gMgorICAgICAg
ICBhc3NlcnQgaXNpbnN0YW5jZShnZW5jb2xpdGVtc1swXSwgcHl0ZXN0LkZ1bmN0aW9uKQorICAg
ICAgICBhc3NlcnQgaXNpbnN0YW5jZShnZW5jb2xpdGVtc1sxXSwgcHl0ZXN0LkZ1bmN0aW9uKQor
ICAgICAgICBhc3NlcnQgZ2VuY29saXRlbXNbMF0ubmFtZSA9PSAiWydzZXZlbnRlZW4nXSIKKyAg
ICAgICAgYXNzZXJ0IGdlbmNvbGl0ZW1zWzBdLm9iai5fX25hbWVfXyA9PSAnZnVuYzEnCisgICAg
ICAgIGFzc2VydCBnZW5jb2xpdGVtc1sxXS5uYW1lID09ICJbJ2ZvcnR5dHdvJ10iCisgICAgICAg
IGFzc2VydCBnZW5jb2xpdGVtc1sxXS5vYmouX19uYW1lX18gPT0gJ2Z1bmMxJworCisgICAgZGVm
IHRlc3RfZ2VuZXJhdGl2ZV9mdW5jdGlvbnNfdW5pcXVlX2V4cGxpY2l0X25hbWVzKHNlbGYsIHRl
c3RkaXIpOgorICAgICAgICAjIGdlbmVyYXRpdmUKKyAgICAgICAgbW9kY29sID0gdGVzdGRpci5n
ZXRtb2R1bGVjb2woIiIiCisgICAgICAgICAgICBkZWYgZnVuYygpOiBwYXNzCisgICAgICAgICAg
ICBkZWYgdGVzdF9nZW4oKToKKyAgICAgICAgICAgICAgICB5aWVsZCAibmFtZSIsIGZ1bmMKKyAg
ICAgICAgICAgICAgICB5aWVsZCAibmFtZSIsIGZ1bmMKKyAgICAgICAgIiIiKQorICAgICAgICBj
b2xpdGVtcyA9IG1vZGNvbC5jb2xsZWN0KCkKKyAgICAgICAgYXNzZXJ0IGxlbihjb2xpdGVtcykg
PT0gMQorICAgICAgICBnZW5jb2wgPSBjb2xpdGVtc1swXQorICAgICAgICBhc3NlcnQgaXNpbnN0
YW5jZShnZW5jb2wsIHB5dGVzdC5HZW5lcmF0b3IpCisgICAgICAgIHB5dGVzdC5yYWlzZXMoVmFs
dWVFcnJvciwgImdlbmNvbC5jb2xsZWN0KCkiKQorCisgICAgZGVmIHRlc3RfZ2VuZXJhdGl2ZV9t
ZXRob2RzX3dpdGhfZXhwbGljaXRfbmFtZXMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIG1vZGNv
bCA9IHRlc3RkaXIuZ2V0bW9kdWxlY29sKCIiIgorICAgICAgICAgICAgZGVmIGZ1bmMxKGFyZywg
YXJnMik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGFyZyA9PSBhcmcyCisgICAgICAgICAgICBj
bGFzcyBUZXN0R2VuTWV0aG9kcyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2dl
bihzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgIm0xIiwgZnVuYzEsIDE3LCAzKjUK
KyAgICAgICAgICAgICAgICAgICAgeWllbGQgIm0yIiwgZnVuYzEsIDQyLCA2KjcKKyAgICAgICAg
IiIiKQorICAgICAgICBnZW5jb2wgPSBtb2Rjb2wuY29sbGVjdCgpWzBdLmNvbGxlY3QoKVswXS5j
b2xsZWN0KClbMF0KKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZ2VuY29sLCBweXRlc3QuR2Vu
ZXJhdG9yKQorICAgICAgICBnZW5jb2xpdGVtcyA9IGdlbmNvbC5jb2xsZWN0KCkKKyAgICAgICAg
YXNzZXJ0IGxlbihnZW5jb2xpdGVtcykgPT0gMgorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShn
ZW5jb2xpdGVtc1swXSwgcHl0ZXN0LkZ1bmN0aW9uKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5j
ZShnZW5jb2xpdGVtc1sxXSwgcHl0ZXN0LkZ1bmN0aW9uKQorICAgICAgICBhc3NlcnQgZ2VuY29s
aXRlbXNbMF0ubmFtZSA9PSAiWydtMSddIgorICAgICAgICBhc3NlcnQgZ2VuY29saXRlbXNbMF0u
b2JqLl9fbmFtZV9fID09ICdmdW5jMScKKyAgICAgICAgYXNzZXJ0IGdlbmNvbGl0ZW1zWzFdLm5h
bWUgPT0gIlsnbTInXSIKKyAgICAgICAgYXNzZXJ0IGdlbmNvbGl0ZW1zWzFdLm9iai5fX25hbWVf
XyA9PSAnZnVuYzEnCisKKyAgICBkZWYgdGVzdF9vcmRlcl9vZl9leGVjdXRpb25fZ2VuZXJhdG9y
X3NhbWVfY29kZWxpbmUoc2VsZiwgdGVzdGRpciwgdG1wZGlyKToKKyAgICAgICAgbyA9IHRlc3Rk
aXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJp
bnRfZnVuY3Rpb24KKyAgICAgICAgICAgIGRlZiB0ZXN0X2dlbmVyYXRpdmVfb3JkZXJfb2ZfZXhl
Y3V0aW9uKCk6CisgICAgICAgICAgICAgICAgaW1wb3J0IHB5LCBweXRlc3QKKyAgICAgICAgICAg
ICAgICB0ZXN0X2xpc3QgPSBbXQorICAgICAgICAgICAgICAgIGV4cGVjdGVkX2xpc3QgPSBsaXN0
KHJhbmdlKDYpKQorCisgICAgICAgICAgICAgICAgZGVmIGxpc3RfYXBwZW5kKGl0ZW0pOgorICAg
ICAgICAgICAgICAgICAgICB0ZXN0X2xpc3QuYXBwZW5kKGl0ZW0pCisKKyAgICAgICAgICAgICAg
ICBkZWYgYXNzZXJ0X29yZGVyX29mX2V4ZWN1dGlvbigpOgorICAgICAgICAgICAgICAgICAgICBw
cmludCgnZXhwZWN0ZWQgb3JkZXInLCBleHBlY3RlZF9saXN0KQorICAgICAgICAgICAgICAgICAg
ICBwcmludCgnYnV0IGdvdCAgICAgICAnLCB0ZXN0X2xpc3QpCisgICAgICAgICAgICAgICAgICAg
IGFzc2VydCB0ZXN0X2xpc3QgPT0gZXhwZWN0ZWRfbGlzdAorCisgICAgICAgICAgICAgICAgZm9y
IGkgaW4gZXhwZWN0ZWRfbGlzdDoKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgbGlzdF9hcHBl
bmQsIGkKKyAgICAgICAgICAgICAgICB5aWVsZCBhc3NlcnRfb3JkZXJfb2ZfZXhlY3V0aW9uCisg
ICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKG8pCisgICAg
ICAgIHBhc3NlZCwgc2tpcHBlZCwgZmFpbGVkID0gcmVwcmVjLmNvdW50b3V0Y29tZXMoKQorICAg
ICAgICBhc3NlcnQgcGFzc2VkID09IDcKKyAgICAgICAgYXNzZXJ0IG5vdCBza2lwcGVkIGFuZCBu
b3QgZmFpbGVkCisKKyAgICBkZWYgdGVzdF9vcmRlcl9vZl9leGVjdXRpb25fZ2VuZXJhdG9yX2Rp
ZmZlcmVudF9jb2RlbGluZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgbyA9IHRlc3RkaXIubWFr
ZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVu
Y3Rpb24KKyAgICAgICAgICAgIGRlZiB0ZXN0X2dlbmVyYXRpdmVfdGVzdHNfZGlmZmVyZW50X2Nv
ZGVsaW5lKCk6CisgICAgICAgICAgICAgICAgaW1wb3J0IHB5LCBweXRlc3QKKyAgICAgICAgICAg
ICAgICB0ZXN0X2xpc3QgPSBbXQorICAgICAgICAgICAgICAgIGV4cGVjdGVkX2xpc3QgPSBsaXN0
KHJhbmdlKDMpKQorCisgICAgICAgICAgICAgICAgZGVmIGxpc3RfYXBwZW5kXzIoKToKKyAgICAg
ICAgICAgICAgICAgICAgdGVzdF9saXN0LmFwcGVuZCgyKQorCisgICAgICAgICAgICAgICAgZGVm
IGxpc3RfYXBwZW5kXzEoKToKKyAgICAgICAgICAgICAgICAgICAgdGVzdF9saXN0LmFwcGVuZCgx
KQorCisgICAgICAgICAgICAgICAgZGVmIGxpc3RfYXBwZW5kXzAoKToKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdF9saXN0LmFwcGVuZCgwKQorCisgICAgICAgICAgICAgICAgZGVmIGFzc2VydF9v
cmRlcl9vZl9leGVjdXRpb24oKToKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoJ2V4cGVjdGVk
IG9yZGVyJywgZXhwZWN0ZWRfbGlzdCkKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoJ2J1dCBn
b3QgICAgICAgJywgdGVzdF9saXN0KQorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgdGVzdF9s
aXN0ID09IGV4cGVjdGVkX2xpc3QKKworICAgICAgICAgICAgICAgIHlpZWxkIGxpc3RfYXBwZW5k
XzAKKyAgICAgICAgICAgICAgICB5aWVsZCBsaXN0X2FwcGVuZF8xCisgICAgICAgICAgICAgICAg
eWllbGQgbGlzdF9hcHBlbmRfMgorICAgICAgICAgICAgICAgIHlpZWxkIGFzc2VydF9vcmRlcl9v
Zl9leGVjdXRpb24KKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGlu
ZV9ydW4obykKKyAgICAgICAgcGFzc2VkLCBza2lwcGVkLCBmYWlsZWQgPSByZXByZWMuY291bnRv
dXRjb21lcygpCisgICAgICAgIGFzc2VydCBwYXNzZWQgPT0gNAorICAgICAgICBhc3NlcnQgbm90
IHNraXBwZWQgYW5kIG5vdCBmYWlsZWQKKworICAgIGRlZiB0ZXN0X3NldHVwc3RhdGVfaXNfcHJl
c2VydmVkXzEzNChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIyB5aWVsZC1iYXNlZCB0ZXN0cyBh
cmUgbWVzc3kgd3J0IHRvIHNldHVwc3RhdGUgYmVjYXVzZQorICAgICAgICAjIGR1cmluZyBjb2xs
ZWN0aW9uIHRoZXkgYWxyZWFkeSBpbnZva2Ugc2V0dXAgZnVuY3Rpb25zCisgICAgICAgICMgYW5k
IHRoZW4gYWdhaW4gd2hlbiB0aGV5IGFyZSBydW4uICBGb3Igbm93LCB3ZSB3YW50IHRvIG1ha2Ug
c3VyZQorICAgICAgICAjIHRoYXQgdGhlIG9sZCAxLjMuNCBiZWhhdmlvdXIgaXMgcHJlc2VydmVk
IHN1Y2ggdGhhdCBhbGwKKyAgICAgICAgIyB5aWVsZGVkIGZ1bmN0aW9ucyBhbGwgc2hhcmUgdGhl
IHNhbWUgInNlbGYiIGluc3RhbmNlIHRoYXQKKyAgICAgICAgIyBoYXMgYmVlbiB1c2VkIGR1cmlu
ZyBjb2xsZWN0aW9uLgorICAgICAgICBvID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAg
ICAgICAgc2V0dXBsaXN0ID0gW10KKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3Qp
OgorICAgICAgICAgICAgICAgIGRlZiBzZXR1cF9tZXRob2Qoc2VsZiwgZnVuYyk6CisgICAgICAg
ICAgICAgICAgICAgICNwcmludCAic2V0dXBfbWV0aG9kIiwgc2VsZiwgZnVuYworICAgICAgICAg
ICAgICAgICAgICBzZXR1cGxpc3QuYXBwZW5kKHNlbGYpCisgICAgICAgICAgICAgICAgICAgIHNl
bGYuaW5pdCA9IDQyCisKKyAgICAgICAgICAgICAgICBkZWYgdGVhcmRvd25fbWV0aG9kKHNlbGYs
IGZ1bmMpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmluaXQgPSBOb25lCisKKyAgICAgICAg
ICAgICAgICBkZWYgdGVzdF9mdW5jMShzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcwor
CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzIoc2VsZik6CisgICAgICAgICAgICAgICAg
ICAgIHlpZWxkIHNlbGYuZnVuYzIKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgc2VsZi5mdW5j
MgorCisgICAgICAgICAgICAgICAgZGVmIGZ1bmMyKHNlbGYpOgorICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQgc2VsZi5pbml0CisKKyAgICAgICAgICAgIGRlZiB0ZXN0X3NldHVwbGlzdCgpOgor
ICAgICAgICAgICAgICAgICMgb25jZSBmb3IgdGVzdF9mdW5jMiBkdXJpbmcgY29sbGVjdGlvbgor
ICAgICAgICAgICAgICAgICMgb25jZSBmb3IgdGVzdF9mdW5jMSBkdXJpbmcgdGVzdCBydW4KKyAg
ICAgICAgICAgICAgICAjIG9uY2UgZm9yIHRlc3RfZnVuYzIgZHVyaW5nIHRlc3QgcnVuCisgICAg
ICAgICAgICAgICAgI3ByaW50IHNldHVwbGlzdAorICAgICAgICAgICAgICAgIGFzc2VydCBsZW4o
c2V0dXBsaXN0KSA9PSAzLCBsZW4oc2V0dXBsaXN0KQorICAgICAgICAgICAgICAgIGFzc2VydCBz
ZXR1cGxpc3RbMF0gPT0gc2V0dXBsaXN0WzJdLCBzZXR1cGxpc3QKKyAgICAgICAgICAgICAgICBh
c3NlcnQgc2V0dXBsaXN0WzFdICE9IHNldHVwbGlzdFsyXSwgc2V0dXBsaXN0CisgICAgICAgICIi
IikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKG8sICctdicpCisgICAgICAg
IHBhc3NlZCwgc2tpcHBlZCwgZmFpbGVkID0gcmVwcmVjLmNvdW50b3V0Y29tZXMoKQorICAgICAg
ICBhc3NlcnQgcGFzc2VkID09IDQKKyAgICAgICAgYXNzZXJ0IG5vdCBza2lwcGVkIGFuZCBub3Qg
ZmFpbGVkCisKKworY2xhc3MgVGVzdEZ1bmN0aW9uKG9iamVjdCk6CisgICAgZGVmIHRlc3RfZ2V0
bW9kdWxlY29sbGVjdG9yKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBpdGVtID0gdGVzdGRpci5n
ZXRpdGVtKCJkZWYgdGVzdF9mdW5jKCk6IHBhc3MiKQorICAgICAgICBtb2Rjb2wgPSBpdGVtLmdl
dHBhcmVudChweXRlc3QuTW9kdWxlKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShtb2Rjb2ws
IHB5dGVzdC5Nb2R1bGUpCisgICAgICAgIGFzc2VydCBoYXNhdHRyKG1vZGNvbC5vYmosICd0ZXN0
X2Z1bmMnKQorCisgICAgZGVmIHRlc3RfZnVuY3Rpb25fYXNfb2JqZWN0X2luc3RhbmNlX2lnbm9y
ZWQoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAg
ICAgICAgIGNsYXNzIEEob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgX19jYWxsX18oc2Vs
ZiwgdG1wZGlyKToKKyAgICAgICAgICAgICAgICAgICAgMC8wCisKKyAgICAgICAgICAgIHRlc3Rf
YSA9IEEoKQorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1
bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKCkKKworICAgIGRlZiB0ZXN0X2Z1bmN0
aW9uX2VxdWFsaXR5KHNlbGYsIHRlc3RkaXIsIHRtcGRpcik6CisgICAgICAgIGZyb20gX3B5dGVz
dC5maXh0dXJlcyBpbXBvcnQgRml4dHVyZU1hbmFnZXIKKyAgICAgICAgY29uZmlnID0gdGVzdGRp
ci5wYXJzZWNvbmZpZ3VyZSgpCisgICAgICAgIHNlc3Npb24gPSB0ZXN0ZGlyLlNlc3Npb24oY29u
ZmlnKQorICAgICAgICBzZXNzaW9uLl9maXh0dXJlbWFuYWdlciA9IEZpeHR1cmVNYW5hZ2VyKHNl
c3Npb24pCisKKyAgICAgICAgZGVmIGZ1bmMxKCk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAg
ICAgZGVmIGZ1bmMyKCk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgZjEgPSBweXRlc3Qu
RnVuY3Rpb24obmFtZT0ibmFtZSIsIHBhcmVudD1zZXNzaW9uLCBjb25maWc9Y29uZmlnLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPSgxLCksIGNhbGxvYmo9ZnVuYzEpCisgICAg
ICAgIGFzc2VydCBmMSA9PSBmMQorICAgICAgICBmMiA9IHB5dGVzdC5GdW5jdGlvbihuYW1lPSJu
YW1lIiwgY29uZmlnPWNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbG9i
aj1mdW5jMiwgcGFyZW50PXNlc3Npb24pCisgICAgICAgIGFzc2VydCBmMSAhPSBmMgorCisgICAg
ZGVmIHRlc3RfaXNzdWUxOTdfcGFyYW1ldHJpemVfZW1wdHlzZXQoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
KyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnYXJnJywgW10pCisgICAgICAg
ICAgICBkZWYgdGVzdF9mdW5jdGlvbihhcmcpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICBy
ZXByZWMuYXNzZXJ0b3V0Y29tZShza2lwcGVkPTEpCisKKyAgICBkZWYgdGVzdF9zaW5nbGVfdHVw
bGVfdW53cmFwc192YWx1ZXMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgoJ2FyZycsKSwgWygxLCldKQorICAgICAgICAgICAgZGVmIHRlc3Rf
ZnVuY3Rpb24oYXJnKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgYXJnID09IDEKKyAgICAgICAg
IiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXBy
ZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworICAgIGRlZiB0ZXN0X2lzc3VlMjEzX3BhcmFt
ZXRyaXplX3ZhbHVlX25vX2VxdWFsKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBjbGFz
cyBBKG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6Cisg
ICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm5vdCBwb3NzaWJsZSIpCisgICAg
ICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2FyZycsIFtBKCldKQorICAgICAgICAg
ICAgZGVmIHRlc3RfZnVuY3Rpb24oYXJnKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgYXJnLl9f
Y2xhc3NfXy5fX25hbWVfXyA9PSAiQSIKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0
ZXN0ZGlyLmlubGluZV9ydW4oIi0tZnVsbHRyYWNlIikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91
dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV93aXRoX25vbl9oYXNo
YWJsZV92YWx1ZXMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIlRlc3QgcGFyYW1ldHJpemF0
aW9uIHdpdGggbm9uLWhhc2hhYmxlIHZhbHVlcy4iIiIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKCIiIgorICAgICAgICAgICAgYXJjaGl2YWxfbWFwcGluZyA9IHsKKyAgICAgICAgICAgICAg
ICAnMS4wJzogeyd0YWcnOiAnMS4wJ30sCisgICAgICAgICAgICAgICAgJzEuMi4yYTEnOiB7J3Rh
Zyc6ICdyZWxlYXNlLTEuMi4yYTEnfSwKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdrZXkgdmFs
dWUnLnNwbGl0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJjaGl2
YWxfbWFwcGluZy5pdGVtcygpKQorICAgICAgICAgICAgZGVmIHRlc3RfYXJjaGl2YWxfdG9fdmVy
c2lvbihrZXksIHZhbHVlKToKKyAgICAgICAgICAgICAgICBhc3NlcnQga2V5IGluIGFyY2hpdmFs
X21hcHBpbmcKKyAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWUgPT0gYXJjaGl2YWxfbWFwcGlu
Z1trZXldCisgICAgICAgICIiIikKKyAgICAgICAgcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkK
KyAgICAgICAgcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIpCisKKyAgICBkZWYgdGVzdF9wYXJh
bWV0cml6ZV93aXRoX25vbl9oYXNoYWJsZV92YWx1ZXNfaW5kaXJlY3Qoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgICIiIlRlc3QgcGFyYW1ldHJpemF0aW9uIHdpdGggbm9uLWhhc2hhYmxlIHZhbHVl
cyB3aXRoIGluZGlyZWN0IHBhcmFtZXRyaXphdGlvbi4iIiIKKyAgICAgICAgdGVzdGRpci5tYWtl
cHlmaWxlKCIiIgorICAgICAgICAgICAgYXJjaGl2YWxfbWFwcGluZyA9IHsKKyAgICAgICAgICAg
ICAgICAnMS4wJzogeyd0YWcnOiAnMS4wJ30sCisgICAgICAgICAgICAgICAgJzEuMi4yYTEnOiB7
J3RhZyc6ICdyZWxlYXNlLTEuMi4yYTEnfSwKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAg
IGRlZiBrZXkocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0K
KworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgdmFsdWUocmVx
dWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAgICAg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdrZXkgdmFsdWUnLnNwbGl0KCksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJjaGl2YWxfbWFwcGluZy5pdGVtcygpLCBp
bmRpcmVjdD1UcnVlKQorICAgICAgICAgICAgZGVmIHRlc3RfYXJjaGl2YWxfdG9fdmVyc2lvbihr
ZXksIHZhbHVlKToKKyAgICAgICAgICAgICAgICBhc3NlcnQga2V5IGluIGFyY2hpdmFsX21hcHBp
bmcKKyAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWUgPT0gYXJjaGl2YWxfbWFwcGluZ1trZXld
CisgICAgICAgICIiIikKKyAgICAgICAgcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAg
ICAgcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIpCisKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6
ZV9vdmVycmlkZXNfZml4dHVyZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiVGVzdCBwYXJh
bWV0cml6YXRpb24gd2hlbiBwYXJhbWV0ZXIgb3ZlcnJpZGVzIGV4aXN0aW5nIGZpeHR1cmUgd2l0
aCBzYW1lIG5hbWUuIiIiCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAg
ICAgICBkZWYgdmFsdWUoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gJ3ZhbHVlJworCisgICAg
ICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3ZhbHVlJywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbJ292ZXJyaWRkZW4nXSkKKyAgICAgICAgICAgIGRlZiB0
ZXN0X292ZXJyaWRkZW5fdmlhX3BhcmFtKHZhbHVlKToKKyAgICAgICAgICAgICAgICBhc3NlcnQg
dmFsdWUgPT0gJ292ZXJyaWRkZW4nCisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0
cml6ZSgnc29tZXZhbHVlJywgWydvdmVycmlkZGVuJ10pCisgICAgICAgICAgICBkZWYgdGVzdF9u
b3Rfb3ZlcnJpZGRlbih2YWx1ZSwgc29tZXZhbHVlKToKKyAgICAgICAgICAgICAgICBhc3NlcnQg
dmFsdWUgPT0gJ3ZhbHVlJworICAgICAgICAgICAgICAgIGFzc2VydCBzb21ldmFsdWUgPT0gJ292
ZXJyaWRkZW4nCisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnb3RoZXIs
dmFsdWUnLCBbKCdmb28nLCAnb3ZlcnJpZGRlbicpXSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X292
ZXJyaWRkZW5fdmlhX211bHRpcGFyYW0ob3RoZXIsIHZhbHVlKToKKyAgICAgICAgICAgICAgICBh
c3NlcnQgb3RoZXIgPT0gJ2ZvbycKKyAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWUgPT0gJ292
ZXJyaWRkZW4nCisgICAgICAgICIiIikKKyAgICAgICAgcmVjID0gdGVzdGRpci5pbmxpbmVfcnVu
KCkKKyAgICAgICAgcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTMpCisKKyAgICBkZWYgdGVzdF9w
YXJhbWV0cml6ZV9vdmVycmlkZXNfcGFyYW1ldHJpemVkX2ZpeHR1cmUoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgICIiIlRlc3QgcGFyYW1ldHJpemF0aW9uIHdoZW4gcGFyYW1ldGVyIG92ZXJyaWRl
cyBleGlzdGluZyBwYXJhbWV0cml6ZWQgZml4dHVyZSB3aXRoIHNhbWUgbmFtZS4iIiIKKyAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisg
ICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsxLCAyXSkKKyAgICAgICAgICAgIGRl
ZiB2YWx1ZShyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQor
CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3ZhbHVlJywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ292ZXJyaWRkZW4nXSkKKyAgICAgICAgICAg
IGRlZiB0ZXN0X292ZXJyaWRkZW5fdmlhX3BhcmFtKHZhbHVlKToKKyAgICAgICAgICAgICAgICBh
c3NlcnQgdmFsdWUgPT0gJ292ZXJyaWRkZW4nCisgICAgICAgICIiIikKKyAgICAgICAgcmVjID0g
dGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEp
CisKKyAgICBAaWdub3JlX3BhcmFtZXRyaXplZF9tYXJrcworICAgIGRlZiB0ZXN0X3BhcmFtZXRy
aXplX3dpdGhfbWFyayhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgaXRlbXMgPSB0ZXN0ZGlyLmdl
dGl0ZW1zKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVz
dC5tYXJrLmZvbworICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdhcmcnLCBb
CisgICAgICAgICAgICAgICAgMSwKKyAgICAgICAgICAgICAgICBweXRlc3QubWFyay5iYXIocHl0
ZXN0Lm1hcmsuYmF6KDIpKQorICAgICAgICAgICAgXSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1
bmN0aW9uKGFyZyk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAg
IGtleXdvcmRzID0gW2l0ZW0ua2V5d29yZHMgZm9yIGl0ZW0gaW4gaXRlbXNdCisgICAgICAgIGFz
c2VydCAnZm9vJyBpbiBrZXl3b3Jkc1swXSBhbmQgJ2Jhcicgbm90IGluIGtleXdvcmRzWzBdIGFu
ZCAnYmF6JyBub3QgaW4ga2V5d29yZHNbMF0KKyAgICAgICAgYXNzZXJ0ICdmb28nIGluIGtleXdv
cmRzWzFdIGFuZCAnYmFyJyBpbiBrZXl3b3Jkc1sxXSBhbmQgJ2JheicgaW4ga2V5d29yZHNbMV0K
KworICAgIGRlZiB0ZXN0X2Z1bmN0aW9uX2VxdWFsaXR5X3dpdGhfY2FsbHNwZWMoc2VsZiwgdGVz
dGRpciwgdG1wZGlyKToKKyAgICAgICAgaXRlbXMgPSB0ZXN0ZGlyLmdldGl0ZW1zKCIiIgorICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCdhcmcnLCBbMSwyXSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGFyZyk6Cisg
ICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIGFzc2VydCBpdGVtc1sw
XSAhPSBpdGVtc1sxXQorICAgICAgICBhc3NlcnQgbm90IChpdGVtc1swXSA9PSBpdGVtc1sxXSkK
KworICAgIGRlZiB0ZXN0X3B5ZnVuY19jYWxsKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBpdGVt
ID0gdGVzdGRpci5nZXRpdGVtKCJkZWYgdGVzdF9mdW5jKCk6IHJhaXNlIFZhbHVlRXJyb3IiKQor
ICAgICAgICBjb25maWcgPSBpdGVtLmNvbmZpZworCisgICAgICAgIGNsYXNzIE15UGx1Z2luMShv
YmplY3QpOgorICAgICAgICAgICAgZGVmIHB5dGVzdF9weWZ1bmNfY2FsbChzZWxmLCBweWZ1bmNp
dGVtKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yCisKKyAgICAgICAgY2xhc3Mg
TXlQbHVnaW4yKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgcHl0ZXN0X3B5ZnVuY19jYWxsKHNl
bGYsIHB5ZnVuY2l0ZW0pOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAg
Y29uZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoTXlQbHVnaW4xKCkpCisgICAgICAgIGNvbmZp
Zy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKE15UGx1Z2luMigpKQorICAgICAgICBjb25maWcuaG9v
ay5weXRlc3RfcnVudGVzdF9zZXR1cChpdGVtPWl0ZW0pCisgICAgICAgIGNvbmZpZy5ob29rLnB5
dGVzdF9weWZ1bmNfY2FsbChweWZ1bmNpdGVtPWl0ZW0pCisKKyAgICBkZWYgdGVzdF9tdWx0aXBs
ZV9wYXJhbWV0cml6ZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgbW9kY29sID0gdGVzdGRpci5n
ZXRtb2R1bGVjb2woIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3gnLCBbMCwgMV0pCisgICAgICAgICAgICBAcHl0ZXN0
Lm1hcmsucGFyYW1ldHJpemUoJ3knLCBbMiwgM10pCisgICAgICAgICAgICBkZWYgdGVzdDEoeCwg
eSk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIGNvbGl0ZW1z
ID0gbW9kY29sLmNvbGxlY3QoKQorICAgICAgICBhc3NlcnQgY29saXRlbXNbMF0ubmFtZSA9PSAn
dGVzdDFbMi0wXScKKyAgICAgICAgYXNzZXJ0IGNvbGl0ZW1zWzFdLm5hbWUgPT0gJ3Rlc3QxWzIt
MV0nCisgICAgICAgIGFzc2VydCBjb2xpdGVtc1syXS5uYW1lID09ICd0ZXN0MVszLTBdJworICAg
ICAgICBhc3NlcnQgY29saXRlbXNbM10ubmFtZSA9PSAndGVzdDFbMy0xXScKKworICAgIGRlZiB0
ZXN0X2lzc3VlNzUxX211bHRpcGxlX3BhcmFtZXRyaXplX3dpdGhfaWRzKHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICBtb2Rjb2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgiIiIKKyAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgneCcs
IFswXSwgaWRzPVsnYyddKQorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd5
JywgWzAsIDFdLCBpZHM9WydhJywgJ2InXSkKKyAgICAgICAgICAgIGNsYXNzIFRlc3Qob2JqZWN0
KToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdDEoc2VsZiwgeCwgeSk6CisgICAgICAgICAgICAg
ICAgICAgIHBhc3MKKyAgICAgICAgICAgICAgICBkZWYgdGVzdDIoc2VsZiwgeCwgeSk6CisgICAg
ICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICBjb2xpdGVtcyA9IG1v
ZGNvbC5jb2xsZWN0KClbMF0uY29sbGVjdCgpWzBdLmNvbGxlY3QoKQorICAgICAgICBhc3NlcnQg
Y29saXRlbXNbMF0ubmFtZSA9PSAndGVzdDFbYS1jXScKKyAgICAgICAgYXNzZXJ0IGNvbGl0ZW1z
WzFdLm5hbWUgPT0gJ3Rlc3QxW2ItY10nCisgICAgICAgIGFzc2VydCBjb2xpdGVtc1syXS5uYW1l
ID09ICd0ZXN0MlthLWNdJworICAgICAgICBhc3NlcnQgY29saXRlbXNbM10ubmFtZSA9PSAndGVz
dDJbYi1jXScKKworICAgIEBpZ25vcmVfcGFyYW1ldHJpemVkX21hcmtzCisgICAgZGVmIHRlc3Rf
cGFyYW1ldHJpemVfc2tpcGlmKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIG0gPSBw
eXRlc3QubWFyay5za2lwaWYoJ1RydWUnKQorCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoJ3gnLCBbMCwgMSwgbSgyKV0pCisgICAgICAgICAgICBkZWYgdGVzdF9za2lwX2lm
KHgpOgorICAgICAgICAgICAgICAgIGFzc2VydCB4IDwgMgorICAgICAgICAiIiIpCisgICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKCcqIDIgcGFzc2VkLCAxIHNraXBwZWQgaW4gKicpCisKKyAgICBAaWdub3JlX3Bh
cmFtZXRyaXplZF9tYXJrcworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX3NraXAoc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKKworICAgICAgICAgICAgbSA9IHB5dGVzdC5tYXJrLnNraXAoJycpCisKKyAgICAg
ICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgneCcsIFswLCAxLCBtKDIpXSkKKyAgICAg
ICAgICAgIGRlZiB0ZXN0X3NraXAoeCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHggPCAyCisg
ICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoJyogMiBwYXNzZWQsIDEgc2tpcHBlZCBpbiAq
JykKKworICAgIEBpZ25vcmVfcGFyYW1ldHJpemVkX21hcmtzCisgICAgZGVmIHRlc3RfcGFyYW1l
dHJpemVfc2tpcGlmX25vX3NraXAoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgbSA9
IHB5dGVzdC5tYXJrLnNraXBpZignRmFsc2UnKQorCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoJ3gnLCBbMCwgMSwgbSgyKV0pCisgICAgICAgICAgICBkZWYgdGVzdF9za2lw
aWZfbm9fc2tpcCh4KToKKyAgICAgICAgICAgICAgICBhc3NlcnQgeCA8IDIKKyAgICAgICAgIiIi
KQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcygnKiAxIGZhaWxlZCwgMiBwYXNzZWQgaW4gKicpCisKKyAgICBA
aWdub3JlX3BhcmFtZXRyaXplZF9tYXJrcworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX3hmYWls
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIG0gPSBweXRlc3QubWFyay54ZmFpbCgn
VHJ1ZScpCisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgneCcsIFswLCAx
LCBtKDIpXSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X3hmYWlsKHgpOgorICAgICAgICAgICAgICAg
IGFzc2VydCB4IDwgMgorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCcqIDIgcGFzc2Vk
LCAxIHhmYWlsZWQgaW4gKicpCisKKyAgICBAaWdub3JlX3BhcmFtZXRyaXplZF9tYXJrcworICAg
IGRlZiB0ZXN0X3BhcmFtZXRyaXplX3Bhc3NlZChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAg
ICAgICBtID0gcHl0ZXN0Lm1hcmsueGZhaWwoJ1RydWUnKQorCisgICAgICAgICAgICBAcHl0ZXN0
Lm1hcmsucGFyYW1ldHJpemUoJ3gnLCBbMCwgMSwgbSgyKV0pCisgICAgICAgICAgICBkZWYgdGVz
dF94ZmFpbCh4KToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoJyogMiBwYXNzZWQsIDEgeHBhc3NlZCBpbiAqJykKKworICAgIEBpZ25vcmVfcGFy
YW1ldHJpemVkX21hcmtzCisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfeGZhaWxfcGFzc2VkKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIG0gPSBweXRlc3QubWFyay54ZmFpbCgnRmFs
c2UnKQorCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3gnLCBbMCwgMSwg
bSgyKV0pCisgICAgICAgICAgICBkZWYgdGVzdF9wYXNzZWQoeCk6CisgICAgICAgICAgICAgICAg
cGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkK
KyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCcqIDMgcGFzc2VkIGluIConKQor
CisgICAgZGVmIHRlc3RfZnVuY3Rpb25fb3JpZ2luYWxfbmFtZShzZWxmLCB0ZXN0ZGlyKToKKyAg
ICAgICAgaXRlbXMgPSB0ZXN0ZGlyLmdldGl0ZW1zKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5
dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdhcmcnLCBbMSwyXSkK
KyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoYXJnKToKKyAgICAgICAgICAgICAgICBwYXNzCisg
ICAgICAgICIiIikKKyAgICAgICAgYXNzZXJ0IFt4Lm9yaWdpbmFsbmFtZSBmb3IgeCBpbiBpdGVt
c10gPT0gWyd0ZXN0X2Z1bmMnLCAndGVzdF9mdW5jJ10KKworCitjbGFzcyBUZXN0U29ydGluZyhv
YmplY3QpOgorICAgIGRlZiB0ZXN0X2NoZWNrX2VxdWFsaXR5KHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICBtb2Rjb2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgiIiIKKyAgICAgICAgICAgIGRlZiB0
ZXN0X3Bhc3MoKTogcGFzcworICAgICAgICAgICAgZGVmIHRlc3RfZmFpbCgpOiBhc3NlcnQgMAor
ICAgICAgICAiIiIpCisgICAgICAgIGZuMSA9IHRlc3RkaXIuY29sbGVjdF9ieV9uYW1lKG1vZGNv
bCwgInRlc3RfcGFzcyIpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGZuMSwgcHl0ZXN0LkZ1
bmN0aW9uKQorICAgICAgICBmbjIgPSB0ZXN0ZGlyLmNvbGxlY3RfYnlfbmFtZShtb2Rjb2wsICJ0
ZXN0X3Bhc3MiKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShmbjIsIHB5dGVzdC5GdW5jdGlv
bikKKworICAgICAgICBhc3NlcnQgZm4xID09IGZuMgorICAgICAgICBhc3NlcnQgZm4xICE9IG1v
ZGNvbAorICAgICAgICBpZiBweS5zdGQuc3lzLnZlcnNpb25faW5mbyA8ICgzLCAwKToKKyAgICAg
ICAgICAgIGFzc2VydCBjbXAoZm4xLCBmbjIpID09IDAKKyAgICAgICAgYXNzZXJ0IGhhc2goZm4x
KSA9PSBoYXNoKGZuMikKKworICAgICAgICBmbjMgPSB0ZXN0ZGlyLmNvbGxlY3RfYnlfbmFtZSht
b2Rjb2wsICJ0ZXN0X2ZhaWwiKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShmbjMsIHB5dGVz
dC5GdW5jdGlvbikKKyAgICAgICAgYXNzZXJ0IG5vdCAoZm4xID09IGZuMykKKyAgICAgICAgYXNz
ZXJ0IGZuMSAhPSBmbjMKKworICAgICAgICBmb3IgZm4gaW4gZm4xLCBmbjIsIGZuMzoKKyAgICAg
ICAgICAgIGFzc2VydCBmbiAhPSAzCisgICAgICAgICAgICBhc3NlcnQgZm4gIT0gbW9kY29sCisg
ICAgICAgICAgICBhc3NlcnQgZm4gIT0gWzEsIDIsIDNdCisgICAgICAgICAgICBhc3NlcnQgWzEs
IDIsIDNdICE9IGZuCisgICAgICAgICAgICBhc3NlcnQgbW9kY29sICE9IGZuCisKKyAgICBkZWYg
dGVzdF9hbGxvd19zYW5lX3NvcnRpbmdfZm9yX2RlY29yYXRvcnMoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIG1vZGNvbCA9IHRlc3RkaXIuZ2V0bW9kdWxlY29sKCIiIgorICAgICAgICAgICAgZGVm
IGRlYyhmKToKKyAgICAgICAgICAgICAgICBnID0gbGFtYmRhOiBmKDIpCisgICAgICAgICAgICAg
ICAgZy5wbGFjZV9hcyA9IGYKKyAgICAgICAgICAgICAgICByZXR1cm4gZworCisKKyAgICAgICAg
ICAgIGRlZiB0ZXN0X2IoeSk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgdGVz
dF9iID0gZGVjKHRlc3RfYikKKworICAgICAgICAgICAgZGVmIHRlc3RfYSh5KToKKyAgICAgICAg
ICAgICAgICBwYXNzCisgICAgICAgICAgICB0ZXN0X2EgPSBkZWModGVzdF9hKQorICAgICAgICAi
IiIpCisgICAgICAgIGNvbGl0ZW1zID0gbW9kY29sLmNvbGxlY3QoKQorICAgICAgICBhc3NlcnQg
bGVuKGNvbGl0ZW1zKSA9PSAyCisgICAgICAgIGFzc2VydCBbaXRlbS5uYW1lIGZvciBpdGVtIGlu
IGNvbGl0ZW1zXSA9PSBbJ3Rlc3RfYicsICd0ZXN0X2EnXQorCisKK2NsYXNzIFRlc3RDb25mdGVz
dEN1c3RvbWl6YXRpb24ob2JqZWN0KToKKyAgICBkZWYgdGVzdF9weXRlc3RfcHljb2xsZWN0X21v
ZHVsZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBjbGFzcyBNeU1vZHVsZShweXRl
c3QuTW9kdWxlKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBkZWYgcHl0ZXN0
X3B5Y29sbGVjdF9tYWtlbW9kdWxlKHBhdGgsIHBhcmVudCk6CisgICAgICAgICAgICAgICAgaWYg
cGF0aC5iYXNlbmFtZSA9PSAidGVzdF94eXoucHkiOgorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gTXlNb2R1bGUocGF0aCwgcGFyZW50KQorICAgICAgICAiIiIpCisgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgiZGVmIHRlc3Rfc29tZSgpOiBwYXNzIikKKyAgICAgICAgdGVzdGRpci5tYWtl
cHlmaWxlKHRlc3RfeHl6PSJkZWYgdGVzdF9mdW5jKCk6IHBhc3MiKQorICAgICAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1jb2xsZWN0LW9ubHkiKQorICAgICAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIio8TW9kdWxlKnRlc3RfcHl0ZXN0KiIs
CisgICAgICAgICAgICAiKjxNeU1vZHVsZSp4eXoqIiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0
ZXN0X2N1c3RvbWl6ZWRfcHltYWtlbW9kdWxlX2lzc3VlMjA1X3N1YmRpcihzZWxmLCB0ZXN0ZGly
KToKKyAgICAgICAgYiA9IHRlc3RkaXIubWtkaXIoImEiKS5ta2RpcigiYiIpCisgICAgICAgIGIu
am9pbigiY29uZnRlc3QucHkiKS53cml0ZShfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiIiIKKyAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dy
YXBwZXI9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBweXRlc3RfcHljb2xsZWN0X21ha2Vtb2R1bGUo
KToKKyAgICAgICAgICAgICAgICBvdXRjb21lID0geWllbGQKKyAgICAgICAgICAgICAgICBtb2Qg
PSBvdXRjb21lLmdldF9yZXN1bHQoKQorICAgICAgICAgICAgICAgIG1vZC5vYmouaGVsbG8gPSAi
d29ybGQiCisgICAgICAgICIiIikpCisgICAgICAgIGIuam9pbigidGVzdF9tb2R1bGUucHkiKS53
cml0ZShfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxv
KCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGhlbGxvID09ICJ3b3JsZCIKKyAgICAgICAgIiIi
KSkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVj
LmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF9jdXN0b21pemVkX3B5bWFr
ZWl0ZW0oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIGIgPSB0ZXN0ZGlyLm1rZGlyKCJhIikubWtk
aXIoImIiKQorICAgICAgICBiLmpvaW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoX3B5dGVzdC5fY29k
ZS5Tb3VyY2UoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0
ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCisgICAgICAgICAgICBkZWYgcHl0ZXN0X3B5
Y29sbGVjdF9tYWtlaXRlbSgpOgorICAgICAgICAgICAgICAgIG91dGNvbWUgPSB5aWVsZAorICAg
ICAgICAgICAgICAgIGlmIG91dGNvbWUuZXhjaW5mbyBpcyBOb25lOgorICAgICAgICAgICAgICAg
ICAgICByZXN1bHQgPSBvdXRjb21lLmdldF9yZXN1bHQoKQorICAgICAgICAgICAgICAgICAgICBp
ZiByZXN1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgZnVuYyBpbiByZXN1bHQ6Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYy5fc29tZTEyMyA9ICJ3b3JsZCIKKyAgICAg
ICAgIiIiKSkKKyAgICAgICAgYi5qb2luKCJ0ZXN0X21vZHVsZS5weSIpLndyaXRlKF9weXRlc3Qu
X2NvZGUuU291cmNlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUoKQorICAgICAgICAgICAgZGVmIG9iaihyZXF1ZXN0KToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5ub2RlLl9zb21lMTIzCisgICAgICAgICAgICBkZWYg
dGVzdF9oZWxsbyhvYmopOgorICAgICAgICAgICAgICAgIGFzc2VydCBvYmogPT0gIndvcmxkIgor
ICAgICAgICAiIiIpKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAg
ICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworICAgIGRlZiB0ZXN0X3B5dGVz
dF9weWNvbGxlY3RfbWFrZWl0ZW0oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFr
ZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgY2xh
c3MgTXlGdW5jdGlvbihweXRlc3QuRnVuY3Rpb24pOgorICAgICAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgICAgIGRlZiBweXRlc3RfcHljb2xsZWN0X21ha2VpdGVtKGNvbGxlY3RvciwgbmFtZSwg
b2JqKToKKyAgICAgICAgICAgICAgICBpZiBuYW1lID09ICJzb21lIjoKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIE15RnVuY3Rpb24obmFtZSwgY29sbGVjdG9yKQorICAgICAgICAiIiIpCisg
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiZGVmIHNvbWUoKTogcGFzcyIpCisgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3Qtb25seSIpCisgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKk15RnVuY3Rpb24qc29tZSoi
LAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfbWFrZWl0ZW1fbm9uX3VuZGVyc2NvcmUoc2Vs
ZiwgdGVzdGRpciwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBtb2Rjb2wgPSB0ZXN0ZGlyLmdldG1v
ZHVsZWNvbCgiZGVmIF9oZWxsbygpOiBwYXNzIikKKyAgICAgICAgdmFsdWVzID0gW10KKyAgICAg
ICAgbW9ua2V5cGF0Y2guc2V0YXR0cihweXRlc3QuTW9kdWxlLCAnbWFrZWl0ZW0nLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSBzZWxmLCBuYW1lLCBvYmo6IHZhbHVlcy5hcHBl
bmQobmFtZSkpCisgICAgICAgIHZhbHVlcyA9IG1vZGNvbC5jb2xsZWN0KCkKKyAgICAgICAgYXNz
ZXJ0ICdfaGVsbG8nIG5vdCBpbiB2YWx1ZXMKKworICAgIGRlZiB0ZXN0X2lzc3VlMjM2OV9jb2xs
ZWN0X21vZHVsZV9maWxlZXh0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiJFbnN1cmUgd2Ug
Y2FuIGNvbGxlY3QgZmlsZXMgd2l0aCB3ZWlyZCBmaWxlIGV4dGVuc2lvbnMgYXMgUHl0aG9uCisg
ICAgICAgIG1vZHVsZXMgKCMyMzY5KSIiIgorICAgICAgICAjIFdlJ2xsIGltcGxlbWVudCBhIGxp
dHRsZSBmaW5kZXIgYW5kIGxvYWRlciB0byBpbXBvcnQgZmlsZXMgY29udGFpbmluZworICAgICAg
ICAjIFB5dGhvbiBzb3VyY2UgY29kZSB3aG9zZSBmaWxlIGV4dGVuc2lvbiBpcyAiLm5hcmYiLgor
ICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBzeXMs
IG9zLCBpbXAKKyAgICAgICAgICAgIGZyb20gX3B5dGVzdC5weXRob24gaW1wb3J0IE1vZHVsZQor
CisgICAgICAgICAgICBjbGFzcyBMb2FkZXI6CisgICAgICAgICAgICAgICAgZGVmIGxvYWRfbW9k
dWxlKHNlbGYsIG5hbWUpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW1wLmxvYWRfc291
cmNlKG5hbWUsIG5hbWUgKyAiLm5hcmYiKQorICAgICAgICAgICAgY2xhc3MgRmluZGVyOgorICAg
ICAgICAgICAgICAgIGRlZiBmaW5kX21vZHVsZShzZWxmLCBuYW1lLCBwYXRoPU5vbmUpOgorICAg
ICAgICAgICAgICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhuYW1lICsgIi5uYXJmIik6CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gTG9hZGVyKCkKKyAgICAgICAgICAgIHN5cy5tZXRh
X3BhdGguYXBwZW5kKEZpbmRlcigpKQorCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2NvbGxlY3Rf
ZmlsZShwYXRoLCBwYXJlbnQpOgorICAgICAgICAgICAgICAgIGlmIHBhdGguZXh0ID09ICIubmFy
ZiI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBNb2R1bGUocGF0aCwgcGFyZW50KSIiIikK
KyAgICAgICAgdGVzdGRpci5tYWtlZmlsZSgiLm5hcmYiLCAiIiIKKyAgICAgICAgICAgIGRlZiB0
ZXN0X3NvbWV0aGluZygpOgorICAgICAgICAgICAgICAgIGFzc2VydCAxICsgMSA9PSAyIiIiKQor
ICAgICAgICAjIFVzZSBydW5weXRlc3Rfc3VicHJvY2Vzcywgc2luY2Ugd2UncmUgZnV0emluZyB3
aXRoIHN5cy5tZXRhX3BhdGguCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1
YnByb2Nlc3MoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoJyoxIHBhc3Nl
ZConKQorCisKK2RlZiB0ZXN0X3NldHVwX29ubHlfYXZhaWxhYmxlX2luX3N1YmRpcih0ZXN0ZGly
KToKKyAgICBzdWIxID0gdGVzdGRpci5ta3B5ZGlyKCJzdWIxIikKKyAgICBzdWIyID0gdGVzdGRp
ci5ta3B5ZGlyKCJzdWIyIikKKyAgICBzdWIxLmpvaW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoX3B5
dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgZGVm
IHB5dGVzdF9ydW50ZXN0X3NldHVwKGl0ZW0pOgorICAgICAgICAgICAgYXNzZXJ0IGl0ZW0uZnNw
YXRoLnB1cmViYXNlbmFtZSA9PSAidGVzdF9pbl9zdWIxIgorICAgICAgICBkZWYgcHl0ZXN0X3J1
bnRlc3RfY2FsbChpdGVtKToKKyAgICAgICAgICAgIGFzc2VydCBpdGVtLmZzcGF0aC5wdXJlYmFz
ZW5hbWUgPT0gInRlc3RfaW5fc3ViMSIKKyAgICAgICAgZGVmIHB5dGVzdF9ydW50ZXN0X3RlYXJk
b3duKGl0ZW0pOgorICAgICAgICAgICAgYXNzZXJ0IGl0ZW0uZnNwYXRoLnB1cmViYXNlbmFtZSA9
PSAidGVzdF9pbl9zdWIxIgorICAgICIiIikpCisgICAgc3ViMi5qb2luKCJjb25mdGVzdC5weSIp
LndyaXRlKF9weXRlc3QuX2NvZGUuU291cmNlKCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0Cisg
ICAgICAgIGRlZiBweXRlc3RfcnVudGVzdF9zZXR1cChpdGVtKToKKyAgICAgICAgICAgIGFzc2Vy
dCBpdGVtLmZzcGF0aC5wdXJlYmFzZW5hbWUgPT0gInRlc3RfaW5fc3ViMiIKKyAgICAgICAgZGVm
IHB5dGVzdF9ydW50ZXN0X2NhbGwoaXRlbSk6CisgICAgICAgICAgICBhc3NlcnQgaXRlbS5mc3Bh
dGgucHVyZWJhc2VuYW1lID09ICJ0ZXN0X2luX3N1YjIiCisgICAgICAgIGRlZiBweXRlc3RfcnVu
dGVzdF90ZWFyZG93bihpdGVtKToKKyAgICAgICAgICAgIGFzc2VydCBpdGVtLmZzcGF0aC5wdXJl
YmFzZW5hbWUgPT0gInRlc3RfaW5fc3ViMiIKKyAgICAiIiIpKQorICAgIHN1YjEuam9pbigidGVz
dF9pbl9zdWIxLnB5Iikud3JpdGUoImRlZiB0ZXN0XzEoKTogcGFzcyIpCisgICAgc3ViMi5qb2lu
KCJ0ZXN0X2luX3N1YjIucHkiKS53cml0ZSgiZGVmIHRlc3RfMigpOiBwYXNzIikKKyAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiLCAiLXMiKQorICAgIHJlc3VsdC5hc3NlcnRfb3V0
Y29tZXMocGFzc2VkPTIpCisKKworZGVmIHRlc3RfbW9kdWxlY29sX3JvdW5kdHJpcCh0ZXN0ZGly
KToKKyAgICBtb2Rjb2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgicGFzcyIsIHdpdGhpbml0PVRy
dWUpCisgICAgdHJhaWwgPSBtb2Rjb2wubm9kZWlkCisgICAgbmV3Y29sID0gbW9kY29sLnNlc3Np
b24ucGVyZm9ybV9jb2xsZWN0KFt0cmFpbF0sIGdlbml0ZW1zPTApWzBdCisgICAgYXNzZXJ0IG1v
ZGNvbC5uYW1lID09IG5ld2NvbC5uYW1lCisKKworY2xhc3MgVGVzdFRyYWNlYmFja0N1dHRpbmco
b2JqZWN0KToKKyAgICBkZWYgdGVzdF9za2lwX3NpbXBsZShzZWxmKToKKyAgICAgICAgZXhjaW5m
byA9IHB5dGVzdC5yYWlzZXMocHl0ZXN0LnNraXAuRXhjZXB0aW9uLCAncHl0ZXN0LnNraXAoInh4
eCIpJykKKyAgICAgICAgYXNzZXJ0IGV4Y2luZm8udHJhY2ViYWNrWy0xXS5mcmFtZS5jb2RlLm5h
bWUgPT0gInNraXAiCisgICAgICAgIGFzc2VydCBleGNpbmZvLnRyYWNlYmFja1stMV0uaXNoaWRk
ZW4oKQorCisgICAgZGVmIHRlc3RfdHJhY2ViYWNrX2FyZ3NldHVwKHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgaGVsbG8o
cmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigieHl6IikKKyAgICAg
ICAgIiIiKQorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCJkZWYgdGVzdChoZWxsbyk6
IHBhc3MiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwKQorICAgICAgICBh
c3NlcnQgcmVzdWx0LnJldCAhPSAwCisgICAgICAgIG91dCA9IHJlc3VsdC5zdGRvdXQuc3RyKCkK
KyAgICAgICAgYXNzZXJ0ICJ4eXoiIGluIG91dAorICAgICAgICBhc3NlcnQgImNvbmZ0ZXN0LnB5
OjU6IFZhbHVlRXJyb3IiIGluIG91dAorICAgICAgICBudW1lbnRyaWVzID0gb3V0LmNvdW50KCJf
IF8gXyIpICAjIHNlcGFyYXRvciBmb3IgdHJhY2ViYWNrIGVudHJpZXMKKyAgICAgICAgYXNzZXJ0
IG51bWVudHJpZXMgPT0gMAorCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCIt
LWZ1bGx0cmFjZSIsIHApCisgICAgICAgIG91dCA9IHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICAg
ICAgYXNzZXJ0ICJjb25mdGVzdC5weTo1OiBWYWx1ZUVycm9yIiBpbiBvdXQKKyAgICAgICAgbnVt
ZW50cmllcyA9IG91dC5jb3VudCgiXyBfIF8gXyIpICAjIHNlcGFyYXRvciBmb3IgdHJhY2ViYWNr
IGVudHJpZXMKKyAgICAgICAgYXNzZXJ0IG51bWVudHJpZXMgPiAzCisKKyAgICBkZWYgdGVzdF90
cmFjZWJhY2tfZXJyb3JfZHVyaW5nX2ltcG9ydChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgeCA9IDEKKyAgICAgICAgICAgIHggPSAy
CisgICAgICAgICAgICB4ID0gMTcKKyAgICAgICAgICAgIGFzZAorICAgICAgICAiIiIpCisgICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5y
ZXQgIT0gMAorICAgICAgICBvdXQgPSByZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgICAgIGFzc2Vy
dCAieCA9IDEiIG5vdCBpbiBvdXQKKyAgICAgICAgYXNzZXJ0ICJ4ID0gMiIgbm90IGluIG91dAor
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIiAqYXNk
KiIsCisgICAgICAgICAgICAiRSpOYW1lRXJyb3IqIiwKKyAgICAgICAgXSkKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tZnVsbHRyYWNlIikKKyAgICAgICAgb3V0ID0gcmVz
dWx0LnN0ZG91dC5zdHIoKQorICAgICAgICBhc3NlcnQgInggPSAxIiBpbiBvdXQKKyAgICAgICAg
YXNzZXJ0ICJ4ID0gMiIgaW4gb3V0CisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cyhbCisgICAgICAgICAgICAiPiphc2QqIiwKKyAgICAgICAgICAgICJFKk5hbWVFcnJvcioiLAor
ICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfdHJhY2ViYWNrX2ZpbHRlcl9lcnJvcl9kdXJpbmdf
Zml4dHVyZV9jb2xsZWN0aW9uKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiJpbnRlZ3JhdGlv
biB0ZXN0IGZvciBpc3N1ZSAjOTk1LgorICAgICAgICAiIiIKKyAgICAgICAgdGVzdGRpci5tYWtl
cHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBkZWYg
ZmFpbF9tZShmdW5jKToKKyAgICAgICAgICAgICAgICBucyA9IHt9CisgICAgICAgICAgICAgICAg
ZXhlYygnZGVmIHcoKTogcmFpc2UgVmFsdWVFcnJvcigiZmFpbCBtZSIpJywgbnMpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIG5zWyd3J10KKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNj
b3BlPSdjbGFzcycpCisgICAgICAgICAgICBAZmFpbF9tZQorICAgICAgICAgICAgZGVmIGZhaWxf
Zml4dHVyZSgpOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICAgICAgZGVmIHRlc3Rf
ZmFpbGluZ19maXh0dXJlKGZhaWxfZml4dHVyZSk6CisgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICBh
c3NlcnQgcmVzdWx0LnJldCAhPSAwCisgICAgICAgIG91dCA9IHJlc3VsdC5zdGRvdXQuc3RyKCkK
KyAgICAgICAgYXNzZXJ0ICJJTlRFUk5BTEVSUk9SPiIgbm90IGluIG91dAorICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIipWYWx1ZUVycm9yOiBmYWls
IG1lKiIsCisgICAgICAgICAgICAiKiAxIGVycm9yIGluICoiLAorICAgICAgICBdKQorCisgICAg
ZGVmIHRlc3RfZmlsdGVyX3RyYWNlYmFja19nZW5lcmF0ZWRfY29kZShzZWxmKToKKyAgICAgICAg
IiIidGVzdCB0aGF0IGZpbHRlcl90cmFjZWJhY2soKSB3b3JrcyB3aXRoIHRoZSBmYWN0IHRoYXQK
KyAgICAgICAgcHkuY29kZS5Db2RlLnBhdGggYXR0cmlidXRlIG1pZ2h0IHJldHVybiBhbiBzdHIg
b2JqZWN0LgorICAgICAgICBJbiB0aGlzIGNhc2UsIG9uZSBvZiB0aGUgZW50cmllcyBvbiB0aGUg
dHJhY2ViYWNrIHdhcyBwcm9kdWNlZCBieQorICAgICAgICBkeW5hbWljYWxseSBnZW5lcmF0ZWQg
Y29kZS4KKyAgICAgICAgU2VlOiBodHRwczovL2JpdGJ1Y2tldC5vcmcvcHl0ZXN0LWRldi9weS9p
c3N1ZXMvNzEKKyAgICAgICAgVGhpcyBmaXhlcyAjOTk1LgorICAgICAgICAiIiIKKyAgICAgICAg
ZnJvbSBfcHl0ZXN0LnB5dGhvbiBpbXBvcnQgZmlsdGVyX3RyYWNlYmFjaworICAgICAgICB0cnk6
CisgICAgICAgICAgICBucyA9IHt9CisgICAgICAgICAgICBleGVjKCdkZWYgZm9vKCk6IHJhaXNl
IFZhbHVlRXJyb3InLCBucykKKyAgICAgICAgICAgIG5zWydmb28nXSgpCisgICAgICAgIGV4Y2Vw
dCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgXywgXywgdGIgPSBzeXMuZXhjX2luZm8oKQorCisg
ICAgICAgIHRiID0gX3B5dGVzdC5fY29kZS5UcmFjZWJhY2sodGIpCisgICAgICAgIGFzc2VydCBp
c2luc3RhbmNlKHRiWy0xXS5wYXRoLCBzdHIpCisgICAgICAgIGFzc2VydCBub3QgZmlsdGVyX3Ry
YWNlYmFjayh0YlstMV0pCisKKyAgICBkZWYgdGVzdF9maWx0ZXJfdHJhY2ViYWNrX3BhdGhfbm9f
bG9uZ2VyX3ZhbGlkKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiJ0ZXN0IHRoYXQgZmlsdGVy
X3RyYWNlYmFjaygpIHdvcmtzIHdpdGggdGhlIGZhY3QgdGhhdAorICAgICAgICBweS5jb2RlLkNv
ZGUucGF0aCBhdHRyaWJ1dGUgbWlnaHQgcmV0dXJuIGFuIHN0ciBvYmplY3QuCisgICAgICAgIElu
IHRoaXMgY2FzZSwgb25lIG9mIHRoZSBmaWxlcyBpbiB0aGUgdHJhY2ViYWNrIG5vIGxvbmdlciBl
eGlzdHMuCisgICAgICAgIFRoaXMgZml4ZXMgIzExMzMuCisgICAgICAgICIiIgorICAgICAgICBm
cm9tIF9weXRlc3QucHl0aG9uIGltcG9ydCBmaWx0ZXJfdHJhY2ViYWNrCisgICAgICAgIHRlc3Rk
aXIuc3lzcGF0aGluc2VydCgpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZShmaWx0ZXJfdHJh
Y2ViYWNrX2VudHJ5X2FzX3N0cj0nJycKKyAgICAgICAgICAgIGRlZiBmb28oKToKKyAgICAgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yCisgICAgICAgICcnJykKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgaW1wb3J0IGZpbHRlcl90cmFjZWJhY2tfZW50cnlfYXNfc3RyCisgICAgICAgICAg
ICBmaWx0ZXJfdHJhY2ViYWNrX2VudHJ5X2FzX3N0ci5mb28oKQorICAgICAgICBleGNlcHQgVmFs
dWVFcnJvcjoKKyAgICAgICAgICAgIF8sIF8sIHRiID0gc3lzLmV4Y19pbmZvKCkKKworICAgICAg
ICB0ZXN0ZGlyLnRtcGRpci5qb2luKCdmaWx0ZXJfdHJhY2ViYWNrX2VudHJ5X2FzX3N0ci5weScp
LnJlbW92ZSgpCisgICAgICAgIHRiID0gX3B5dGVzdC5fY29kZS5UcmFjZWJhY2sodGIpCisgICAg
ICAgIGFzc2VydCBpc2luc3RhbmNlKHRiWy0xXS5wYXRoLCBzdHIpCisgICAgICAgIGFzc2VydCBm
aWx0ZXJfdHJhY2ViYWNrKHRiWy0xXSkKKworCitjbGFzcyBUZXN0UmVwb3J0SW5mbyhvYmplY3Qp
OgorICAgIGRlZiB0ZXN0X2l0ZW1yZXBvcnRfcmVwb3J0aW5mbyhzZWxmLCB0ZXN0ZGlyLCBsaW5l
Y29tcCk6CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorICAgICAgICAgICAgY2xhc3MgTXlGdW5jdGlvbihweXRlc3QuRnVuY3Rpb24p
OgorICAgICAgICAgICAgICAgIGRlZiByZXBvcnRpbmZvKHNlbGYpOgorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gIkFCQ0RFIiwgNDIsICJjdXN0b20iCisgICAgICAgICAgICBkZWYgcHl0ZXN0
X3B5Y29sbGVjdF9tYWtlaXRlbShjb2xsZWN0b3IsIG5hbWUsIG9iaik6CisgICAgICAgICAgICAg
ICAgaWYgbmFtZSA9PSAidGVzdF9mdW5jIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE15
RnVuY3Rpb24obmFtZSwgcGFyZW50PWNvbGxlY3RvcikKKyAgICAgICAgIiIiKQorICAgICAgICBp
dGVtID0gdGVzdGRpci5nZXRpdGVtKCJkZWYgdGVzdF9mdW5jKCk6IHBhc3MiKQorICAgICAgICBp
dGVtLmNvbmZpZy5wbHVnaW5tYW5hZ2VyLmdldHBsdWdpbigicnVubmVyIikKKyAgICAgICAgYXNz
ZXJ0IGl0ZW0ubG9jYXRpb24gPT0gKCJBQkNERSIsIDQyLCAiY3VzdG9tIikKKworICAgIGRlZiB0
ZXN0X2Z1bmNfcmVwb3J0aW5mbyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgaXRlbSA9IHRlc3Rk
aXIuZ2V0aXRlbSgiZGVmIHRlc3RfZnVuYygpOiBwYXNzIikKKyAgICAgICAgZnNwYXRoLCBsaW5l
bm8sIG1vZHBhdGggPSBpdGVtLnJlcG9ydGluZm8oKQorICAgICAgICBhc3NlcnQgZnNwYXRoID09
IGl0ZW0uZnNwYXRoCisgICAgICAgIGFzc2VydCBsaW5lbm8gPT0gMAorICAgICAgICBhc3NlcnQg
bW9kcGF0aCA9PSAidGVzdF9mdW5jIgorCisgICAgZGVmIHRlc3RfY2xhc3NfcmVwb3J0aW5mbyhz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgbW9kY29sID0gdGVzdGRpci5nZXRtb2R1bGVjb2woIiIi
CisgICAgICAgICAgICAjIGxpbmVubyAwCisgICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2Jq
ZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhzZWxmKTogcGFzcworICAgICAg
ICAiIiIpCisgICAgICAgIGNsYXNzY29sID0gdGVzdGRpci5jb2xsZWN0X2J5X25hbWUobW9kY29s
LCAiVGVzdENsYXNzIikKKyAgICAgICAgZnNwYXRoLCBsaW5lbm8sIG1zZyA9IGNsYXNzY29sLnJl
cG9ydGluZm8oKQorICAgICAgICBhc3NlcnQgZnNwYXRoID09IG1vZGNvbC5mc3BhdGgKKyAgICAg
ICAgYXNzZXJ0IGxpbmVubyA9PSAxCisgICAgICAgIGFzc2VydCBtc2cgPT0gIlRlc3RDbGFzcyIK
KworICAgIGRlZiB0ZXN0X2dlbmVyYXRvcl9yZXBvcnRpbmZvKHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICBtb2Rjb2wgPSB0ZXN0ZGlyLmdldG1vZHVsZWNvbCgiIiIKKyAgICAgICAgICAgICMgbGlu
ZW5vIDAKKyAgICAgICAgICAgIGRlZiB0ZXN0X2dlbigpOgorICAgICAgICAgICAgICAgIGRlZiBj
aGVjayh4KToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHgKKyAgICAgICAgICAgICAgICB5
aWVsZCBjaGVjaywgMworICAgICAgICAiIiIpCisgICAgICAgIGdlbmNvbCA9IHRlc3RkaXIuY29s
bGVjdF9ieV9uYW1lKG1vZGNvbCwgInRlc3RfZ2VuIikKKyAgICAgICAgZnNwYXRoLCBsaW5lbm8s
IG1vZHBhdGggPSBnZW5jb2wucmVwb3J0aW5mbygpCisgICAgICAgIGFzc2VydCBmc3BhdGggPT0g
bW9kY29sLmZzcGF0aAorICAgICAgICBhc3NlcnQgbGluZW5vID09IDEKKyAgICAgICAgYXNzZXJ0
IG1vZHBhdGggPT0gInRlc3RfZ2VuIgorCisgICAgICAgIGdlbml0ZW0gPSBnZW5jb2wuY29sbGVj
dCgpWzBdCisgICAgICAgIGZzcGF0aCwgbGluZW5vLCBtb2RwYXRoID0gZ2VuaXRlbS5yZXBvcnRp
bmZvKCkKKyAgICAgICAgYXNzZXJ0IGZzcGF0aCA9PSBtb2Rjb2wuZnNwYXRoCisgICAgICAgIGFz
c2VydCBsaW5lbm8gPT0gMgorICAgICAgICBhc3NlcnQgbW9kcGF0aCA9PSAidGVzdF9nZW5bMF0i
CisgICAgICAgICIiIgorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAg
ICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiB0ZXN0X2dlbmZ1bmMoKToKKyAgICAgICAgICAgICAg
ICBkZWYgY2hlY2soeCk6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICAg
ICB5aWVsZCBjaGVjaywgMworICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6Cisg
ICAgICAgICAgICAgICAgZGVmIHRlc3RfbWV0aG9kKHNlbGYpOgorICAgICAgICAgICAgICAgICAg
ICBwYXNzCisgICAgICAgIiIiCisKKyAgICBkZWYgdGVzdF9yZXBvcnRpbmZvX3dpdGhfbmFzdHlf
Z2V0YXR0cihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIyBodHRwczovL2dpdGh1Yi5jb20vcHl0
ZXN0LWRldi9weXRlc3QvaXNzdWVzLzEyMDQKKyAgICAgICAgbW9kY29sID0gdGVzdGRpci5nZXRt
b2R1bGVjb2woIiIiCisgICAgICAgICAgICAjIGxpbmVubyAwCisgICAgICAgICAgICBjbGFzcyBU
ZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwg
bmFtZSk6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAidGhpcyBpcyBub3QgYW4gaW50Igor
CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfZm9vKHNlbGYpOgorICAgICAgICAgICAgICAgICAg
ICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgY2xhc3Njb2wgPSB0ZXN0ZGlyLmNvbGxlY3Rf
YnlfbmFtZShtb2Rjb2wsICJUZXN0Q2xhc3MiKQorICAgICAgICBpbnN0YW5jZSA9IGNsYXNzY29s
LmNvbGxlY3QoKVswXQorICAgICAgICBmc3BhdGgsIGxpbmVubywgbXNnID0gaW5zdGFuY2UucmVw
b3J0aW5mbygpCisKKworZGVmIHRlc3RfY3VzdG9taXplZF9weXRob25fZGlzY292ZXJ5KHRlc3Rk
aXIpOgorICAgIHRlc3RkaXIubWFrZWluaSgiIiIKKyAgICAgICAgW3B5dGVzdF0KKyAgICAgICAg
cHl0aG9uX2ZpbGVzPWNoZWNrXyoucHkKKyAgICAgICAgcHl0aG9uX2NsYXNzZXM9Q2hlY2sKKyAg
ICAgICAgcHl0aG9uX2Z1bmN0aW9ucz1jaGVjaworICAgICIiIikKKyAgICBwID0gdGVzdGRpci5t
YWtlcHlmaWxlKCIiIgorICAgICAgICBkZWYgY2hlY2tfc2ltcGxlKCk6CisgICAgICAgICAgICBw
YXNzCisgICAgICAgIGNsYXNzIENoZWNrTXlBcHAob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBj
aGVja19tZXRoKHNlbGYpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAiIiIpCisgICAgcDIg
PSBwLm5ldyhiYXNlbmFtZT1wLmJhc2VuYW1lLnJlcGxhY2UoInRlc3QiLCAiY2hlY2siKSkKKyAg
ICBwLm1vdmUocDIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tY29sbGVjdC1v
bmx5IiwgIi1zIikKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAi
KmNoZWNrX2N1c3RvbWl6ZWQqIiwKKyAgICAgICAgIipjaGVja19zaW1wbGUqIiwKKyAgICAgICAg
IipDaGVja015QXBwKiIsCisgICAgICAgICIqY2hlY2tfbWV0aCoiLAorICAgIF0pCisKKyAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAor
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICIqMiBwYXNzZWQqIiwK
KyAgICBdKQorCisKK2RlZiB0ZXN0X2N1c3RvbWl6ZWRfcHl0aG9uX2Rpc2NvdmVyeV9mdW5jdGlv
bnModGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlaW5pKCIiIgorICAgICAgICBbcHl0ZXN0XQor
ICAgICAgICBweXRob25fZnVuY3Rpb25zPV90ZXN0CisgICAgIiIiKQorICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSgiIiIKKyAgICAgICAgZGVmIF90ZXN0X3VuZGVyc2NvcmUoKToKKyAgICAgICAgICAg
IHBhc3MKKyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tY29sbGVj
dC1vbmx5IiwgIi1zIikKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAg
ICAiKl90ZXN0X3VuZGVyc2NvcmUqIiwKKyAgICBdKQorCisgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3QoKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKjEgcGFzc2VkKiIsCisgICAgXSkKKworCitkZWYg
dGVzdF9jb2xsZWN0b3JfYXR0cmlidXRlcyh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2Vjb25m
dGVzdCgiIiIKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBkZWYgcHl0ZXN0X3B5Y29s
bGVjdF9tYWtlaXRlbShjb2xsZWN0b3IpOgorICAgICAgICAgICAgYXNzZXJ0IGNvbGxlY3Rvci5G
dW5jdGlvbiA9PSBweXRlc3QuRnVuY3Rpb24KKyAgICAgICAgICAgIGFzc2VydCBjb2xsZWN0b3Iu
Q2xhc3MgPT0gcHl0ZXN0LkNsYXNzCisgICAgICAgICAgICBhc3NlcnQgY29sbGVjdG9yLkluc3Rh
bmNlID09IHB5dGVzdC5JbnN0YW5jZQorICAgICAgICAgICAgYXNzZXJ0IGNvbGxlY3Rvci5Nb2R1
bGUgPT0gcHl0ZXN0Lk1vZHVsZQorICAgICIiIikKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIi
CisgICAgICAgICBkZWYgdGVzdF9oZWxsbygpOgorICAgICAgICAgICAgcGFzcworICAgICIiIikK
KyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKFsKKyAgICAgICAgIioxIHBhc3NlZCoiLAorICAgIF0pCisKKworZGVmIHRlc3Rf
Y3VzdG9taXplX3Rocm91Z2hfYXR0cmlidXRlcyh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2Vj
b25mdGVzdCgiIiIKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBjbGFzcyBNeUZ1bmN0
aW9uKHB5dGVzdC5GdW5jdGlvbik6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGNsYXNzIE15
SW5zdGFuY2UocHl0ZXN0Lkluc3RhbmNlKToKKyAgICAgICAgICAgIEZ1bmN0aW9uID0gTXlGdW5j
dGlvbgorICAgICAgICBjbGFzcyBNeUNsYXNzKHB5dGVzdC5DbGFzcyk6CisgICAgICAgICAgICBJ
bnN0YW5jZSA9IE15SW5zdGFuY2UKKworICAgICAgICBkZWYgcHl0ZXN0X3B5Y29sbGVjdF9tYWtl
aXRlbShjb2xsZWN0b3IsIG5hbWUsIG9iaik6CisgICAgICAgICAgICBpZiBuYW1lLnN0YXJ0c3dp
dGgoIk15VGVzdENsYXNzIik6CisgICAgICAgICAgICAgICAgcmV0dXJuIE15Q2xhc3MobmFtZSwg
cGFyZW50PWNvbGxlY3RvcikKKyAgICAiIiIpCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgor
ICAgICAgICAgY2xhc3MgTXlUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiB0ZXN0
X2hlbGxvKHNlbGYpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAiIiIpCisgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tY29sbGVjdC1vbmx5IikKKyAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKk15Q2xhc3MqIiwKKyAgICAgICAgIipNeUluc3Rh
bmNlKiIsCisgICAgICAgICIqTXlGdW5jdGlvbip0ZXN0X2hlbGxvKiIsCisgICAgXSkKKworCitk
ZWYgdGVzdF91bm9yZGVyYWJsZV90eXBlcyh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoIiIiCisgICAgICAgIGNsYXNzIFRlc3RKb2luRW1wdHkob2JqZWN0KToKKyAgICAgICAgICAg
IHBhc3MKKworICAgICAgICBkZWYgbWFrZV90ZXN0KCk6CisgICAgICAgICAgICBjbGFzcyBUZXN0
KG9iamVjdCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgVGVzdC5fX25hbWVf
XyA9ICJUZXN0Rm9vIgorICAgICAgICAgICAgcmV0dXJuIFRlc3QKKyAgICAgICAgVGVzdEZvbyA9
IG1ha2VfdGVzdCgpCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkK
KyAgICBhc3NlcnQgIlR5cGVFcnJvciIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICBh
c3NlcnQgcmVzdWx0LnJldCA9PSBFWElUX05PVEVTVFNDT0xMRUNURUQKKworCitkZWYgdGVzdF9j
b2xsZWN0X2Z1bmN0b29sc19wYXJ0aWFsKHRlc3RkaXIpOgorICAgICIiIgorICAgIFRlc3QgdGhh
dCBjb2xsZWN0aW9uIG9mIGZ1bmN0b29scy5wYXJ0aWFsIG9iamVjdCB3b3JrcywgYW5kIGFyZ3Vt
ZW50cworICAgIHRvIHRoZSB3cmFwcGVkIGZ1bmN0aW9ucyBhcmUgZGVhbHQgY29ycmVjdGx5IChz
ZWUgIzgxMSkuCisgICAgIiIiCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBp
bXBvcnQgZnVuY3Rvb2xzCisgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUKKyAgICAgICAgZGVmIGZpeDEoKToKKyAgICAgICAgICAgIHJldHVybiAnZml4MScK
KworICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgZGVmIGZpeDIoKToKKyAgICAgICAg
ICAgIHJldHVybiAnZml4MicKKworICAgICAgICBkZWYgY2hlY2sxKGksIGZpeDEpOgorICAgICAg
ICAgICAgYXNzZXJ0IGkgPT0gMgorICAgICAgICAgICAgYXNzZXJ0IGZpeDEgPT0gJ2ZpeDEnCisK
KyAgICAgICAgZGVmIGNoZWNrMihmaXgxLCBpKToKKyAgICAgICAgICAgIGFzc2VydCBpID09IDIK
KyAgICAgICAgICAgIGFzc2VydCBmaXgxID09ICdmaXgxJworCisgICAgICAgIGRlZiBjaGVjazMo
Zml4MSwgaSwgZml4Mik6CisgICAgICAgICAgICBhc3NlcnQgaSA9PSAyCisgICAgICAgICAgICBh
c3NlcnQgZml4MSA9PSAnZml4MScKKyAgICAgICAgICAgIGFzc2VydCBmaXgyID09ICdmaXgyJwor
CisgICAgICAgIHRlc3Rfb2tfMSA9IGZ1bmN0b29scy5wYXJ0aWFsKGNoZWNrMSwgaT0yKQorICAg
ICAgICB0ZXN0X29rXzIgPSBmdW5jdG9vbHMucGFydGlhbChjaGVjazEsIGk9MiwgZml4MT0nZml4
MScpCisgICAgICAgIHRlc3Rfb2tfMyA9IGZ1bmN0b29scy5wYXJ0aWFsKGNoZWNrMSwgMikKKyAg
ICAgICAgdGVzdF9va180ID0gZnVuY3Rvb2xzLnBhcnRpYWwoY2hlY2syLCBpPTIpCisgICAgICAg
IHRlc3Rfb2tfNSA9IGZ1bmN0b29scy5wYXJ0aWFsKGNoZWNrMywgaT0yKQorICAgICAgICB0ZXN0
X29rXzYgPSBmdW5jdG9vbHMucGFydGlhbChjaGVjazMsIGk9MiwgZml4MT0nZml4MScpCisKKyAg
ICAgICAgdGVzdF9mYWlsXzEgPSBmdW5jdG9vbHMucGFydGlhbChjaGVjazIsIDIpCisgICAgICAg
IHRlc3RfZmFpbF8yID0gZnVuY3Rvb2xzLnBhcnRpYWwoY2hlY2szLCAyKQorICAgICIiIikKKyAg
ICByZXN1bHQgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgIHJlc3VsdC5hc3NlcnRvdXRjb21l
KHBhc3NlZD02LCBmYWlsZWQ9MikKKworCitkZWYgdGVzdF9kb250X2NvbGxlY3Rfbm9uX2Z1bmN0
aW9uX2NhbGxhYmxlKHRlc3RkaXIpOgorICAgICIiIlRlc3QgZm9yIGlzc3VlIGh0dHBzOi8vZ2l0
aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1ZXMvMzMxCisKKyAgICBJbiB0aGlzIGNhc2Ug
YW4gSU5URVJOQUxFUlJPUiBvY2N1cnJlZCB0cnlpbmcgdG8gcmVwb3J0IHRoZSBmYWlsdXJlIG9m
CisgICAgYSB0ZXN0IGxpa2UgdGhpcyBvbmUgYmVjYXVzZSBweSB0ZXN0IGZhaWxlZCB0byBnZXQg
dGhlIHNvdXJjZSBsaW5lcy4KKyAgICAiIiIKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgIGNsYXNzIE9oKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgX19jYWxsX18oc2VsZik6
CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgIHRlc3RfYSA9IE9oKCkKKworICAgICAg
ICBkZWYgdGVzdF9yZWFsKCk6CisgICAgICAgICAgICBwYXNzCisgICAgIiIiKQorICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCctcncnKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcyhbCisgICAgICAgICcqY29sbGVjdGVkIDEgaXRlbSonLAorICAgICAgICAiKmNhbm5vdCBj
b2xsZWN0ICd0ZXN0X2EnIGJlY2F1c2UgaXQgaXMgbm90IGEgZnVuY3Rpb24qIiwKKyAgICAgICAg
JyoxIHBhc3NlZCwgMSB3YXJuaW5ncyBpbiAqJywKKyAgICBdKQorCisKK2RlZiB0ZXN0X2NsYXNz
X2luamVjdGlvbl9kb2VzX25vdF9icmVha19jb2xsZWN0aW9uKHRlc3RkaXIpOgorICAgICIiIlRl
c3RzIHdoZXRoZXIgaW5qZWN0aW9uIGR1cmluZyBjb2xsZWN0aW9uIHRpbWUgd2lsbCB0ZXJtaW5h
dGUgdGVzdGluZy4KKworICAgIEluIHRoaXMgY2FzZSB0aGUgZXJyb3Igc2hvdWxkIG5vdCBvY2N1
ciBpZiB0aGUgVGVzdENsYXNzIGl0c2VsZgorICAgIGlzIG1vZGlmaWVkIGR1cmluZyBjb2xsZWN0
aW9uIHRpbWUsIGFuZCB0aGUgb3JpZ2luYWwgbWV0aG9kIGxpc3QKKyAgICBpcyBzdGlsbCB1c2Vk
IGZvciBjb2xsZWN0aW9uLgorICAgICIiIgorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgor
ICAgICAgICBmcm9tIHRlc3RfaW5qZWN0IGltcG9ydCBUZXN0Q2xhc3MKKyAgICAgICAgZGVmIHB5
dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6CisgICAgICAgICAgICBUZXN0Q2xhc3MuY2hh
bmdlZF92YXIgPSB7fQorICAgICIiIikKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9pbmpl
Y3Q9JycnCisgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X2luamVjdGlvbihzZWxmKToKKyAgICAgICAgICAgICAgICAiIiJUZXN0IGJlaW5nIHBh
cmFtZXRyaXplZC4iIiIKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgJycnKQorICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICBhc3NlcnQgIlJ1bnRpbWVFcnJvcjogZGljdGlv
bmFyeSBjaGFuZ2VkIHNpemUgZHVyaW5nIGl0ZXJhdGlvbiIgbm90IGluIHJlc3VsdC5zdGRvdXQu
c3RyKCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWycqMSBwYXNzZWQqJ10pCisK
KworZGVmIHRlc3Rfc3ludGF4X2Vycm9yX3dpdGhfbm9uX2FzY2lpX2NoYXJzKHRlc3RkaXIpOgor
ICAgICIiIkZpeCBkZWNvZGluZyBpc3N1ZSB3aGlsZSBmb3JtYXR0aW5nIFN5bnRheEVycm9ycyBk
dXJpbmcgY29sbGVjdGlvbiAoIzU3OCkKKyAgICAiIiIKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
dSIiIgorICAgICMgLSotIGNvZGluZzogVVRGLTggLSotCisKKyAgICDimIMKKyAgICAiIiIpCisg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcyhbCisgICAgICAgICcqRVJST1IgY29sbGVjdGluZyonLAorICAgICAgICAnKlN5bnRh
eEVycm9yKicsCisgICAgICAgICcqMSBlcnJvciBpbionLAorICAgIF0pCisKKworZGVmIHRlc3Rf
c2tpcF9kdXBsaWNhdGVzX2J5X2RlZmF1bHQodGVzdGRpcik6CisgICAgIiIiVGVzdCBmb3IgaXNz
dWUgaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8xNjA5ICgjMTYw
OSkKKworICAgIElnbm9yZSBkdXBsaWNhdGUgZGlyZWN0b3JpZXMuCisgICAgIiIiCisgICAgYSA9
IHRlc3RkaXIubWtkaXIoImEiKQorICAgIGZoID0gYS5qb2luKCJ0ZXN0X2EucHkiKQorICAgIGZo
LndyaXRlKF9weXRlc3QuX2NvZGUuU291cmNlKCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0Cisg
ICAgICAgIGRlZiB0ZXN0X3JlYWwoKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAiIiIpKQorICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KGEuc3RycGF0aCwgYS5zdHJwYXRoKQorICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICcqY29sbGVjdGVkIDEgaXRlbSon
LAorICAgIF0pCisKKworZGVmIHRlc3Rfa2VlcF9kdXBsaWNhdGVzKHRlc3RkaXIpOgorICAgICIi
IlRlc3QgZm9yIGlzc3VlIGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5dGVzdC9pc3N1
ZXMvMTYwOSAoIzE2MDkpCisKKyAgICBVc2UgLS1rZWVwLWR1cGxpY2F0ZXMgdG8gY29sbGVjdCB0
ZXN0cyBmcm9tIGR1cGxpY2F0ZSBkaXJlY3Rvcmllcy4KKyAgICAiIiIKKyAgICBhID0gdGVzdGRp
ci5ta2RpcigiYSIpCisgICAgZmggPSBhLmpvaW4oInRlc3RfYS5weSIpCisgICAgZmgud3JpdGUo
X3B5dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAg
ZGVmIHRlc3RfcmVhbCgpOgorICAgICAgICAgICAgcGFzcworICAgICIiIikpCisgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoIi0ta2VlcC1kdXBsaWNhdGVzIiwgYS5zdHJwYXRoLCBhLnN0
cnBhdGgpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgJypjb2xs
ZWN0ZWQgMiBpdGVtKicsCisgICAgXSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
cHl0aG9uL2ZpeHR1cmUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9maXh0dXJlLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmIxNTllOGViYjhlMTEzOGI3N2E1ODIxOTZkOTYzOTIzOWFiMGMwMmQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9maXh0dXJlLnB5CkBA
IC0wLDAgKzEsMzE3MSBAQAorZnJvbSB0ZXh0d3JhcCBpbXBvcnQgZGVkZW50CisKK2ltcG9ydCBf
cHl0ZXN0Ll9jb2RlCitpbXBvcnQgcHl0ZXN0Citmcm9tIF9weXRlc3QucHl0ZXN0ZXIgaW1wb3J0
IGdldF9wdWJsaWNfbmFtZXMKK2Zyb20gX3B5dGVzdC5maXh0dXJlcyBpbXBvcnQgRml4dHVyZUxv
b2t1cEVycm9yCitmcm9tIF9weXRlc3QgaW1wb3J0IGZpeHR1cmVzCisKKworZGVmIHRlc3RfZ2V0
ZnVuY2FyZ25hbWVzKCk6CisgICAgZGVmIGYoKToKKyAgICAgICAgcGFzcworICAgIGFzc2VydCBu
b3QgZml4dHVyZXMuZ2V0ZnVuY2FyZ25hbWVzKGYpCisKKyAgICBkZWYgZyhhcmcpOgorICAgICAg
ICBwYXNzCisgICAgYXNzZXJ0IGZpeHR1cmVzLmdldGZ1bmNhcmduYW1lcyhnKSA9PSAoJ2FyZycs
KQorCisgICAgZGVmIGgoYXJnMSwgYXJnMj0iaGVsbG8iKToKKyAgICAgICAgcGFzcworICAgIGFz
c2VydCBmaXh0dXJlcy5nZXRmdW5jYXJnbmFtZXMoaCkgPT0gKCdhcmcxJywpCisKKyAgICBkZWYg
aChhcmcxLCBhcmcyLCBhcmczPSJoZWxsbyIpOgorICAgICAgICBwYXNzCisgICAgYXNzZXJ0IGZp
eHR1cmVzLmdldGZ1bmNhcmduYW1lcyhoKSA9PSAoJ2FyZzEnLCAnYXJnMicpCisKKyAgICBjbGFz
cyBBKG9iamVjdCk6CisgICAgICAgIGRlZiBmKHNlbGYsIGFyZzEsIGFyZzI9ImhlbGxvIik6Cisg
ICAgICAgICAgICBwYXNzCisKKyAgICAgICAgQHN0YXRpY21ldGhvZAorICAgICAgICBkZWYgc3Rh
dGljKGFyZzEsIGFyZzIpOgorICAgICAgICAgICAgcGFzcworCisgICAgYXNzZXJ0IGZpeHR1cmVz
LmdldGZ1bmNhcmduYW1lcyhBKCkuZikgPT0gKCdhcmcxJywpCisgICAgYXNzZXJ0IGZpeHR1cmVz
LmdldGZ1bmNhcmduYW1lcyhBLnN0YXRpYywgY2xzPUEpID09ICgnYXJnMScsICdhcmcyJykKKwor
CitjbGFzcyBUZXN0RmlsbEZpeHR1cmVzKG9iamVjdCk6CisgICAgZGVmIHRlc3RfZmlsbGZ1bmNh
cmdzX2V4cG9zZWQoc2VsZik6CisgICAgICAgICMgdXNlZCBieSBvZWpza2l0LCBrZXB0IGZvciBj
b21wYXRpYmlsaXR5CisgICAgICAgIGFzc2VydCBweXRlc3QuX2ZpbGxmdW5jYXJncyA9PSBmaXh0
dXJlcy5maWxsZml4dHVyZXMKKworICAgIGRlZiB0ZXN0X2Z1bmNhcmdfbG9va3VwZmFpbHMoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAg
ICBkZWYgeHl6c29tZXRoaW5nKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiA0Mgor
CisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKHNvbWUpOgorICAgICAgICAgICAgICAgIHBhc3MK
KyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpICAjICIt
LWNvbGxlY3Qtb25seSIpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ICE9IDAKKyAgICAgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqZGVmIHRlc3RfZnVu
Yyhzb21lKSoiLAorICAgICAgICAgICAgIipmaXh0dXJlKnNvbWUqbm90IGZvdW5kKiIsCisgICAg
ICAgICAgICAiKnh5enNvbWV0aGluZyoiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfZnVu
Y2FyZ19iYXNpYyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgaXRlbSA9IHRlc3RkaXIuZ2V0aXRl
bSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5m
aXh0dXJlCisgICAgICAgICAgICBkZWYgc29tZShyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVxdWVzdC5mdW5jdGlvbi5fX25hbWVfXworICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlCisgICAgICAgICAgICBkZWYgb3RoZXIocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0
dXJuIDQyCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKHNvbWUsIG90aGVyKToKKyAgICAgICAg
ICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgZml4dHVyZXMuZmlsbGZpeHR1cmVz
KGl0ZW0pCisgICAgICAgIGRlbCBpdGVtLmZ1bmNhcmdzWyJyZXF1ZXN0Il0KKyAgICAgICAgYXNz
ZXJ0IGxlbihnZXRfcHVibGljX25hbWVzKGl0ZW0uZnVuY2FyZ3MpKSA9PSAyCisgICAgICAgIGFz
c2VydCBpdGVtLmZ1bmNhcmdzWydzb21lJ10gPT0gInRlc3RfZnVuYyIKKyAgICAgICAgYXNzZXJ0
IGl0ZW0uZnVuY2FyZ3NbJ290aGVyJ10gPT0gNDIKKworICAgIGRlZiB0ZXN0X2Z1bmNhcmdfbG9v
a3VwX21vZHVsZWxldmVsKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZQorICAgICAgICAgICAgZGVmIHNvbWV0aGluZyhyZXF1ZXN0KToKKyAgICAgICAgICAg
ICAgICByZXR1cm4gcmVxdWVzdC5mdW5jdGlvbi5fX25hbWVfXworCisgICAgICAgICAgICBjbGFz
cyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9tZXRob2Qoc2Vs
Ziwgc29tZXRoaW5nKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNvbWV0aGluZyA9PSAi
dGVzdF9tZXRob2QiCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKHNvbWV0aGluZyk6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0IHNvbWV0aGluZyA9PSAidGVzdF9mdW5jIgorICAgICAgICAiIiIp
CisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5h
c3NlcnRvdXRjb21lKHBhc3NlZD0yKQorCisgICAgZGVmIHRlc3RfZnVuY2FyZ19sb29rdXBfY2xh
c3NsZXZlbChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgi
IiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFz
cyhvYmplY3QpOgorCisgICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAg
ICAgICAgZGVmIHNvbWV0aGluZyhzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHJlcXVlc3QuaW5zdGFuY2UKKworICAgICAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhv
ZChzZWxmLCBzb21ldGhpbmcpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgc29tZXRoaW5n
IGlzIHNlbGYKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dChwKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAg
IioxIHBhc3NlZCoiCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9jb25mdGVzdF9mdW5jYXJn
c19vbmx5X2F2YWlsYWJsZV9pbl9zdWJkaXIoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHN1YjEg
PSB0ZXN0ZGlyLm1rcHlkaXIoInN1YjEiKQorICAgICAgICBzdWIyID0gdGVzdGRpci5ta3B5ZGly
KCJzdWIyIikKKyAgICAgICAgc3ViMS5qb2luKCJjb25mdGVzdC5weSIpLndyaXRlKF9weXRlc3Qu
X2NvZGUuU291cmNlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgYXJnMShyZXF1ZXN0KToKKyAgICAgICAg
ICAgICAgICBweXRlc3QucmFpc2VzKEV4Y2VwdGlvbiwgInJlcXVlc3QuZ2V0Zml4dHVyZXZhbHVl
KCdhcmcyJykiKQorICAgICAgICAiIiIpKQorICAgICAgICBzdWIyLmpvaW4oImNvbmZ0ZXN0LnB5
Iikud3JpdGUoX3B5dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBhcmcyKHJl
cXVlc3QpOgorICAgICAgICAgICAgICAgIHB5dGVzdC5yYWlzZXMoRXhjZXB0aW9uLCAicmVxdWVz
dC5nZXRmaXh0dXJldmFsdWUoJ2FyZzEnKSIpCisgICAgICAgICIiIikpCisKKyAgICAgICAgc3Vi
MS5qb2luKCJ0ZXN0X2luX3N1YjEucHkiKS53cml0ZSgiZGVmIHRlc3RfMShhcmcxKTogcGFzcyIp
CisgICAgICAgIHN1YjIuam9pbigidGVzdF9pbl9zdWIyLnB5Iikud3JpdGUoImRlZiB0ZXN0XzIo
YXJnMik6IHBhc3MiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiKQor
ICAgICAgICByZXN1bHQuYXNzZXJ0X291dGNvbWVzKHBhc3NlZD0yKQorCisgICAgZGVmIHRlc3Rf
ZXh0ZW5kX2ZpeHR1cmVfbW9kdWxlX2NsYXNzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0
ZmlsZSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
KworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgc3BhbSgpOgor
ICAgICAgICAgICAgICAgIHJldHVybiAnc3BhbScKKworICAgICAgICAgICAgY2xhc3MgVGVzdFNw
YW0ob2JqZWN0KToKKworICAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAg
ICAgICAgICAgZGVmIHNwYW0oc2VsZiwgc3BhbSk6CisgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gc3BhbSAqIDIKKworICAgICAgICAgICAgICAgICBkZWYgdGVzdF9zcGFtKHNlbGYsIHNwYW0p
OgorICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNwYW0gPT0gJ3NwYW1zcGFtJworICAgICAg
ICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJdKQorICAgICAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCh0ZXN0ZmlsZSkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJdKQorCisgICAgZGVmIHRlc3RfZXh0ZW5kX2ZpeHR1cmVf
Y29uZnRlc3RfbW9kdWxlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25m
dGVzdCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVz
dC5maXh0dXJlCisgICAgICAgICAgICBkZWYgc3BhbSgpOgorICAgICAgICAgICAgICAgIHJldHVy
biAnc3BhbScKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0ZmlsZSA9IHRlc3RkaXIubWFrZXB5
ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVz
dC5maXh0dXJlCisgICAgICAgICAgICBkZWYgc3BhbShzcGFtKToKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gc3BhbSAqIDIKKworICAgICAgICAgICAgZGVmIHRlc3Rfc3BhbShzcGFtKToKKyAgICAg
ICAgICAgICAgICBhc3NlcnQgc3BhbSA9PSAnc3BhbXNwYW0nCisgICAgICAgICIiIikKKyAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KHRlc3RmaWxlKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIq
MSBwYXNzZWQqIl0pCisKKyAgICBkZWYgdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9jb25m
dGVzdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQor
ICAgICAgICAgICAgZGVmIHNwYW0oKToKKyAgICAgICAgICAgICAgICByZXR1cm4gJ3NwYW0nCisg
ICAgICAgICIiIikKKyAgICAgICAgcGtnID0gdGVzdGRpci5ta3B5ZGlyKCJwa2ciKQorICAgICAg
ICBwa2cuam9pbigiY29uZnRlc3QucHkiKS53cml0ZShfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiIiIK
KyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJl
CisgICAgICAgICAgICBkZWYgc3BhbShzcGFtKToKKyAgICAgICAgICAgICAgICByZXR1cm4gc3Bh
bSAqIDIKKyAgICAgICAgIiIiKSkKKyAgICAgICAgdGVzdGZpbGUgPSBwa2cuam9pbigidGVzdF9z
cGFtLnB5IikKKyAgICAgICAgdGVzdGZpbGUud3JpdGUoX3B5dGVzdC5fY29kZS5Tb3VyY2UoIiIi
CisgICAgICAgICAgICBkZWYgdGVzdF9zcGFtKHNwYW0pOgorICAgICAgICAgICAgICAgIGFzc2Vy
dCBzcGFtID09ICJzcGFtc3BhbSIKKyAgICAgICAgIiIiKSkKKyAgICAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIq
MSBwYXNzZWQqIl0pCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHRlc3RmaWxl
KQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCisK
KyAgICBkZWYgdGVzdF9leHRlbmRfZml4dHVyZV9jb25mdGVzdF9wbHVnaW4oc2VsZiwgdGVzdGRp
cik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0cGx1Z2luPSIiIgorICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAg
ICAgIGRlZiBmb28oKToKKyAgICAgICAgICAgICAgICByZXR1cm4gNworICAgICAgICAiIiIpCisg
ICAgICAgIHRlc3RkaXIuc3lzcGF0aGluc2VydCgpCisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0
ZXN0KCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBweXRlc3Rf
cGx1Z2lucyA9ICd0ZXN0cGx1Z2luJworCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAg
ICAgICAgICAgIGRlZiBmb28oZm9vKToKKyAgICAgICAgICAgICAgICByZXR1cm4gZm9vICsgNwor
ICAgICAgICAiIiIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAg
IGRlZiB0ZXN0X2Zvbyhmb28pOgorICAgICAgICAgICAgICAgIGFzc2VydCBmb28gPT0gMTQKKyAg
ICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLXMnKQorICAg
ICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKyAgICBkZWYgdGVzdF9leHRlbmRfZml4dHVy
ZV9wbHVnaW5fcGx1Z2luKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAjIFR3byBwbHVnaW5zIHNo
b3VsZCBleHRlbmQgZWFjaCBvcmRlciBpbiBsb2FkaW5nIG9yZGVyCisgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSh0ZXN0cGx1Z2luMD0iIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKwor
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgZm9vKCk6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIDcKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUodGVzdHBsdWdpbjE9IiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGZvbyhmb28pOgorICAgICAg
ICAgICAgICAgIHJldHVybiBmb28gKyA3CisgICAgICAgICIiIikKKyAgICAgICAgdGVzdGRpci5z
eXNwYXRoaW5zZXJ0KCkKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAg
ICAgcHl0ZXN0X3BsdWdpbnMgPSBbJ3Rlc3RwbHVnaW4wJywgJ3Rlc3RwbHVnaW4xJ10KKworICAg
ICAgICAgICAgZGVmIHRlc3RfZm9vKGZvbyk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGZvbyA9
PSAxNAorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkK
KyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisgICAgZGVmIHRlc3Rfb3ZlcnJpZGVf
cGFyYW1ldHJpemVkX2ZpeHR1cmVfY29uZnRlc3RfbW9kdWxlKHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICAiIiJUZXN0IG92ZXJyaWRlIG9mIHRoZSBwYXJhbWV0cml6ZWQgZml4dHVyZSB3aXRoIG5v
bi1wYXJhbWV0cml6ZWQgb25lIG9uIHRoZSB0ZXN0IG1vZHVsZSBsZXZlbC4iIiIKKyAgICAgICAg
dGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WzEsIDIsIDNdKQorICAgICAgICAgICAg
ZGVmIHNwYW0ocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0K
KyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0ZmlsZSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIK
KyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJl
CisgICAgICAgICAgICBkZWYgc3BhbSgpOgorICAgICAgICAgICAgICAgIHJldHVybiAnc3BhbScK
KworICAgICAgICAgICAgZGVmIHRlc3Rfc3BhbShzcGFtKToKKyAgICAgICAgICAgICAgICBhc3Nl
cnQgc3BhbSA9PSAnc3BhbScKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBh
c3NlZCoiXSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QodGVzdGZpbGUpCisg
ICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIioxIHBhc3NlZCoiXSkKKworICAg
IGRlZiB0ZXN0X292ZXJyaWRlX3BhcmFtZXRyaXplZF9maXh0dXJlX2NvbmZ0ZXN0X2NvbmZ0ZXN0
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiJUZXN0IG92ZXJyaWRlIG9mIHRoZSBwYXJhbWV0
cml6ZWQgZml4dHVyZSB3aXRoIG5vbi1wYXJhbWV0cml6ZWQgb25lIG9uIHRoZSBjb25mdGVzdCBs
ZXZlbC4iIiIKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WzEsIDIs
IDNdKQorICAgICAgICAgICAgZGVmIHNwYW0ocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0
dXJuIHJlcXVlc3QucGFyYW0KKyAgICAgICAgIiIiKQorICAgICAgICBzdWJkaXIgPSB0ZXN0ZGly
Lm1rcHlkaXIoJ3N1YmRpcicpCisgICAgICAgIHN1YmRpci5qb2luKCJjb25mdGVzdC5weSIpLndy
aXRlKF9weXRlc3QuX2NvZGUuU291cmNlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAor
CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBzcGFtKCk6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuICdzcGFtJworICAgICAgICAiIiIpKQorICAgICAgICB0ZXN0
ZmlsZSA9IHN1YmRpci5qb2luKCJ0ZXN0X3NwYW0ucHkiKQorICAgICAgICB0ZXN0ZmlsZS53cml0
ZShfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X3NwYW0oc3Bh
bSk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHNwYW0gPT0gInNwYW0iCisgICAgICAgICIiIikp
CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJdKQorICAgICAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCh0ZXN0ZmlsZSkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKFsiKjEgcGFzc2VkKiJdKQorCisgICAgZGVmIHRlc3Rfb3ZlcnJpZGVfbm9uX3BhcmFtZXRy
aXplZF9maXh0dXJlX2NvbmZ0ZXN0X21vZHVsZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIi
VGVzdCBvdmVycmlkZSBvZiB0aGUgbm9uLXBhcmFtZXRyaXplZCBmaXh0dXJlIHdpdGggcGFyYW1l
dHJpemVkIG9uZSBvbiB0aGUgdGVzdCBtb2R1bGUgbGV2ZWwuIiIiCisgICAgICAgIHRlc3RkaXIu
bWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBzcGFtKCk6CisgICAgICAgICAgICAg
ICAgcmV0dXJuICdzcGFtJworICAgICAgICAiIiIpCisgICAgICAgIHRlc3RmaWxlID0gdGVzdGRp
ci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsxLCAyLCAzXSkKKyAgICAgICAgICAgIGRlZiBzcGFt
KHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAg
ICAgICAgIHBhcmFtcyA9IHsnc3BhbSc6IDF9CisKKyAgICAgICAgICAgIGRlZiB0ZXN0X3NwYW0o
c3BhbSk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHNwYW0gPT0gcGFyYW1zWydzcGFtJ10KKyAg
ICAgICAgICAgICAgICBwYXJhbXNbJ3NwYW0nXSArPSAxCisgICAgICAgICIiIikKKyAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWyIqMyBwYXNzZWQqIl0pCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KHRlc3RmaWxlKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMyBw
YXNzZWQqIl0pCisKKyAgICBkZWYgdGVzdF9vdmVycmlkZV9ub25fcGFyYW1ldHJpemVkX2ZpeHR1
cmVfY29uZnRlc3RfY29uZnRlc3Qoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIlRlc3Qgb3Zl
cnJpZGUgb2YgdGhlIG5vbi1wYXJhbWV0cml6ZWQgZml4dHVyZSB3aXRoIHBhcmFtZXRyaXplZCBv
bmUgb24gdGhlIGNvbmZ0ZXN0IGxldmVsLiIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVz
dCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5m
aXh0dXJlCisgICAgICAgICAgICBkZWYgc3BhbSgpOgorICAgICAgICAgICAgICAgIHJldHVybiAn
c3BhbScKKyAgICAgICAgIiIiKQorICAgICAgICBzdWJkaXIgPSB0ZXN0ZGlyLm1rcHlkaXIoJ3N1
YmRpcicpCisgICAgICAgIHN1YmRpci5qb2luKCJjb25mdGVzdC5weSIpLndyaXRlKF9weXRlc3Qu
X2NvZGUuU291cmNlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsxLCAyLCAzXSkKKyAgICAgICAgICAgIGRlZiBzcGFt
KHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisgICAgICAg
ICIiIikpCisgICAgICAgIHRlc3RmaWxlID0gc3ViZGlyLmpvaW4oInRlc3Rfc3BhbS5weSIpCisg
ICAgICAgIHRlc3RmaWxlLndyaXRlKF9weXRlc3QuX2NvZGUuU291cmNlKCIiIgorICAgICAgICAg
ICAgcGFyYW1zID0geydzcGFtJzogMX0KKworICAgICAgICAgICAgZGVmIHRlc3Rfc3BhbShzcGFt
KToKKyAgICAgICAgICAgICAgICBhc3NlcnQgc3BhbSA9PSBwYXJhbXNbJ3NwYW0nXQorICAgICAg
ICAgICAgICAgIHBhcmFtc1snc3BhbSddICs9IDEKKyAgICAgICAgIiIiKSkKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoWyIqMyBwYXNzZWQqIl0pCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KHRlc3RmaWxlKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMyBwYXNz
ZWQqIl0pCisKKyAgICBkZWYgdGVzdF9vdmVycmlkZV9hdXRvdXNlX2ZpeHR1cmVfd2l0aF9wYXJh
bWV0cml6ZWRfZml4dHVyZV9jb25mdGVzdF9jb25mdGVzdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgIiIiVGVzdCBvdmVycmlkZSBvZiB0aGUgYXV0b3VzZSBmaXh0dXJlIHdpdGggcGFyYW1ldHJp
emVkIG9uZSBvbiB0aGUgY29uZnRlc3QgbGV2ZWwuCisgICAgICAgIFRoaXMgdGVzdCBjb3ZlcnMg
dGhlIGlzc3VlIGV4cGxhaW5lZCBpbiBpc3N1ZSAxNjAxCisgICAgICAgICIiIgorICAgICAgICB0
ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBz
cGFtKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuICdzcGFtJworICAgICAgICAiIiIpCisgICAg
ICAgIHN1YmRpciA9IHRlc3RkaXIubWtweWRpcignc3ViZGlyJykKKyAgICAgICAgc3ViZGlyLmpv
aW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoX3B5dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisgICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9
WzEsIDIsIDNdKQorICAgICAgICAgICAgZGVmIHNwYW0ocmVxdWVzdCk6CisgICAgICAgICAgICAg
ICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKyAgICAgICAgIiIiKSkKKyAgICAgICAgdGVzdGZpbGUg
PSBzdWJkaXIuam9pbigidGVzdF9zcGFtLnB5IikKKyAgICAgICAgdGVzdGZpbGUud3JpdGUoX3B5
dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisgICAgICAgICAgICBwYXJhbXMgPSB7J3NwYW0nOiAxfQor
CisgICAgICAgICAgICBkZWYgdGVzdF9zcGFtKHNwYW0pOgorICAgICAgICAgICAgICAgIGFzc2Vy
dCBzcGFtID09IHBhcmFtc1snc3BhbSddCisgICAgICAgICAgICAgICAgcGFyYW1zWydzcGFtJ10g
Kz0gMQorICAgICAgICAiIiIpKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgp
CisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiozIHBhc3NlZCoiXSkKKyAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QodGVzdGZpbGUpCisgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbIiozIHBhc3NlZCoiXSkKKworICAgIGRlZiB0ZXN0X2F1
dG91c2VfZml4dHVyZV9wbHVnaW4oc2VsZiwgdGVzdGRpcik6CisgICAgICAgICMgQSBmaXh0dXJl
IGZyb20gYSBwbHVnaW4gaGFzIG5vIGJhc2VpZCBzZXQsIHdoaWNoIHNjcmV3ZWQgdXAKKyAgICAg
ICAgIyB0aGUgYXV0b3VzZSBmaXh0dXJlIGhhbmRsaW5nLgorICAgICAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUodGVzdHBsdWdpbj0iIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAg
ICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBmb28o
cmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmVxdWVzdC5mdW5jdGlvbi5mb28gPSA3CisgICAg
ICAgICIiIikKKyAgICAgICAgdGVzdGRpci5zeXNwYXRoaW5zZXJ0KCkKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgcHl0ZXN0X3BsdWdpbnMgPSAndGVzdHBsdWdp
bicKKworICAgICAgICAgICAgZGVmIHRlc3RfZm9vKHJlcXVlc3QpOgorICAgICAgICAgICAgICAg
IGFzc2VydCByZXF1ZXN0LmZ1bmN0aW9uLmZvbyA9PSA3CisgICAgICAgICIiIikKKyAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9
PSAwCisKKyAgICBkZWYgdGVzdF9mdW5jYXJnX2xvb2t1cF9lcnJvcihzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGFfZml4
dHVyZSgpOiBwYXNzCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAg
ZGVmIGJfZml4dHVyZSgpOiBwYXNzCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAg
ICAgICAgICAgZGVmIGNfZml4dHVyZSgpOiBwYXNzCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZQorICAgICAgICAgICAgZGVmIGRfZml4dHVyZSgpOiBwYXNzCisgICAgICAgICIiIikKKyAg
ICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfbG9va3Vw
X2Vycm9yKHVua25vd24pOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKkVSUk9SIGF0IHNldHVwIG9mIHRlc3RfbG9v
a3VwX2Vycm9yKiIsCisgICAgICAgICAgICAiICBkZWYgdGVzdF9sb29rdXBfZXJyb3IodW5rbm93
bik6KiIsCisgICAgICAgICAgICAiRSAgICAgICBmaXh0dXJlICd1bmtub3duJyBub3QgZm91bmQi
LAorICAgICAgICAgICAgIj4gICAgICAgYXZhaWxhYmxlIGZpeHR1cmVzOiphX2ZpeHR1cmUsKmJf
Zml4dHVyZSwqY19maXh0dXJlLCpkX2ZpeHR1cmUqbW9ua2V5cGF0Y2gsKiIsICAjIHNvcnRlZAor
ICAgICAgICAgICAgIj4gICAgICAgdXNlICdweSp0ZXN0IC0tZml4dHVyZXMgKicgZm9yIGhlbHAg
b24gdGhlbS4iLAorICAgICAgICAgICAgIioxIGVycm9yKiIsCisgICAgICAgIF0pCisgICAgICAg
IGFzc2VydCAiSU5URVJOQUwiIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKyAgICBkZWYg
dGVzdF9maXh0dXJlX2V4Y2luZm9fbGVhayhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIyBvbiBw
eXRob24yIHN5cy5leGNpbmZvIHdvdWxkIGxlYWsgaW50byBmaXh0dXJlIGV4ZWN1dGlvbnMKKyAg
ICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHN5cworICAg
ICAgICAgICAgaW1wb3J0IHRyYWNlYmFjaworICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisg
ICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBsZWFrKCk6CisgICAg
ICAgICAgICAgICAgaWYgc3lzLmV4Y19pbmZvKClbMF06ICAjIHB5dGhvbjMgYnVnIDopCisgICAg
ICAgICAgICAgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoKQorICAgICAgICAgICAgICAgICNm
YWlscworICAgICAgICAgICAgICAgIGFzc2VydCBzeXMuZXhjX2luZm8oKSA9PSAoTm9uZSwgTm9u
ZSwgTm9uZSkKKworICAgICAgICAgICAgZGVmIHRlc3RfbGVhayhsZWFrKToKKyAgICAgICAgICAg
ICAgICBpZiBzeXMuZXhjX2luZm8oKVswXTogICMgcHl0aG9uMyBidWcgOikKKyAgICAgICAgICAg
ICAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YygpCisgICAgICAgICAgICAgICAgYXNzZXJ0IHN5
cy5leGNfaW5mbygpID09IChOb25lLCBOb25lLCBOb25lKQorICAgICAgICAiIiIpCisgICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQg
PT0gMAorCisKK2NsYXNzIFRlc3RSZXF1ZXN0QmFzaWMob2JqZWN0KToKKyAgICBkZWYgdGVzdF9y
ZXF1ZXN0X2F0dHJpYnV0ZXMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIGl0ZW0gPSB0ZXN0ZGly
LmdldGl0ZW0oIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIHNvbWV0aGluZyhyZXF1ZXN0KTogcGFzcwor
ICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhzb21ldGhpbmcpOiBwYXNzCisgICAgICAgICIiIikK
KyAgICAgICAgcmVxID0gZml4dHVyZXMuRml4dHVyZVJlcXVlc3QoaXRlbSkKKyAgICAgICAgYXNz
ZXJ0IHJlcS5mdW5jdGlvbiA9PSBpdGVtLm9iagorICAgICAgICBhc3NlcnQgcmVxLmtleXdvcmRz
ID09IGl0ZW0ua2V5d29yZHMKKyAgICAgICAgYXNzZXJ0IGhhc2F0dHIocmVxLm1vZHVsZSwgJ3Rl
c3RfZnVuYycpCisgICAgICAgIGFzc2VydCByZXEuY2xzIGlzIE5vbmUKKyAgICAgICAgYXNzZXJ0
IHJlcS5mdW5jdGlvbi5fX25hbWVfXyA9PSAidGVzdF9mdW5jIgorICAgICAgICBhc3NlcnQgcmVx
LmNvbmZpZyA9PSBpdGVtLmNvbmZpZworICAgICAgICBhc3NlcnQgcmVwcihyZXEpLmZpbmQocmVx
LmZ1bmN0aW9uLl9fbmFtZV9fKSAhPSAtMQorCisgICAgZGVmIHRlc3RfcmVxdWVzdF9hdHRyaWJ1
dGVzX21ldGhvZChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgaXRlbSwgPSB0ZXN0ZGlyLmdldGl0
ZW1zKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgY2xhc3MgVGVz
dEIob2JqZWN0KToKKworICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAg
ICAgICAgIGRlZiBzb21ldGhpbmcoc2VsZiwgcmVxdWVzdCk6CisgICAgICAgICAgICAgICAgICAg
IHJldHVybiAxCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhzZWxmLCBzb21ldGhpbmcp
OgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgcmVxID0g
aXRlbS5fcmVxdWVzdAorICAgICAgICBhc3NlcnQgcmVxLmNscy5fX25hbWVfXyA9PSAiVGVzdEIi
CisgICAgICAgIGFzc2VydCByZXEuaW5zdGFuY2UuX19jbGFzc19fID09IHJlcS5jbHMKKworICAg
IGRlZiB0ZXN0X3JlcXVlc3RfY29udGFpbnNfZnVuY2FyZ19hcmcyZml4dHVyZWRlZnMoc2VsZiwg
dGVzdGRpcik6CisgICAgICAgIG1vZGNvbCA9IHRlc3RkaXIuZ2V0bW9kdWxlY29sKCIiIgorICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAg
ICAgICAgICBkZWYgc29tZXRoaW5nKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0
ZXN0X21ldGhvZChzZWxmLCBzb21ldGhpbmcpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisg
ICAgICAgICIiIikKKyAgICAgICAgaXRlbTEsID0gdGVzdGRpci5nZW5pdGVtcyhbbW9kY29sXSkK
KyAgICAgICAgYXNzZXJ0IGl0ZW0xLm5hbWUgPT0gInRlc3RfbWV0aG9kIgorICAgICAgICBhcmcy
Zml4dHVyZWRlZnMgPSBmaXh0dXJlcy5GaXh0dXJlUmVxdWVzdChpdGVtMSkuX2FyZzJmaXh0dXJl
ZGVmcworICAgICAgICBhc3NlcnQgbGVuKGFyZzJmaXh0dXJlZGVmcykgPT0gMQorICAgICAgICBh
c3NlcnQgYXJnMmZpeHR1cmVkZWZzWydzb21ldGhpbmcnXVswXS5hcmduYW1lID09ICJzb21ldGhp
bmciCisKKyAgICBkZWYgdGVzdF9nZXRmaXh0dXJldmFsdWVfcmVjdXJzaXZlKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYg
c29tZXRoaW5nKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiAxCisgICAgICAgICIi
IikKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5
dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBzb21l
dGhpbmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QuZ2V0Zml4dHVy
ZXZhbHVlKCJzb21ldGhpbmciKSArIDEKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoc29tZXRo
aW5nKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgc29tZXRoaW5nID09IDIKKyAgICAgICAgIiIi
KQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMu
YXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgK
KyAgICAgICAgJ2dldGZpeG1ldGhvZCcsICgnZ2V0Zml4dHVyZXZhbHVlJywgJ2dldGZ1bmNhcmd2
YWx1ZScpKQorICAgIGRlZiB0ZXN0X2dldGZpeHR1cmV2YWx1ZShzZWxmLCB0ZXN0ZGlyLCBnZXRm
aXhtZXRob2QpOgorICAgICAgICBpdGVtID0gdGVzdGRpci5nZXRpdGVtKCIiIgorICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgdmFsdWVzID0gWzJdCisgICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBzb21ldGhpbmcocmVxdWVzdCk6IHJldHVy
biAxCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBvdGhlcihy
ZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVzLnBvcCgpCisgICAgICAgICAg
ICBkZWYgdGVzdF9mdW5jKHNvbWV0aGluZyk6IHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICBp
bXBvcnQgY29udGV4dGxpYgorICAgICAgICBpZiBnZXRmaXhtZXRob2QgPT0gJ2dldGZ1bmNhcmd2
YWx1ZSc6CisgICAgICAgICAgICB3YXJuaW5nX2V4cGVjdGF0aW9uID0gcHl0ZXN0Lndhcm5zKERl
cHJlY2F0aW9uV2FybmluZykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgc2VlICMxODMw
IGZvciBhIGNsZWFuZXIgd2F5IHRvIGFjY29tcGxpc2ggdGhpcworICAgICAgICAgICAgQGNvbnRl
eHRsaWIuY29udGV4dG1hbmFnZXIKKyAgICAgICAgICAgIGRlZiBleHBlY3Rpbmdfbm9fd2Fybmlu
ZygpOgorICAgICAgICAgICAgICAgIHlpZWxkCisKKyAgICAgICAgICAgIHdhcm5pbmdfZXhwZWN0
YXRpb24gPSBleHBlY3Rpbmdfbm9fd2FybmluZygpCisKKyAgICAgICAgcmVxID0gaXRlbS5fcmVx
dWVzdAorICAgICAgICB3aXRoIHdhcm5pbmdfZXhwZWN0YXRpb246CisgICAgICAgICAgICBmaXh0
dXJlX2ZldGNoZXIgPSBnZXRhdHRyKHJlcSwgZ2V0Zml4bWV0aG9kKQorICAgICAgICAgICAgd2l0
aCBweXRlc3QucmFpc2VzKEZpeHR1cmVMb29rdXBFcnJvcik6CisgICAgICAgICAgICAgICAgZml4
dHVyZV9mZXRjaGVyKCJub3RleGlzdHMiKQorICAgICAgICAgICAgdmFsID0gZml4dHVyZV9mZXRj
aGVyKCJzb21ldGhpbmciKQorICAgICAgICAgICAgYXNzZXJ0IHZhbCA9PSAxCisgICAgICAgICAg
ICB2YWwgPSBmaXh0dXJlX2ZldGNoZXIoInNvbWV0aGluZyIpCisgICAgICAgICAgICBhc3NlcnQg
dmFsID09IDEKKyAgICAgICAgICAgIHZhbDIgPSBmaXh0dXJlX2ZldGNoZXIoIm90aGVyIikKKyAg
ICAgICAgICAgIGFzc2VydCB2YWwyID09IDIKKyAgICAgICAgICAgIHZhbDIgPSBmaXh0dXJlX2Zl
dGNoZXIoIm90aGVyIikgICMgc2VlIGFib3V0IGNhY2hpbmcKKyAgICAgICAgICAgIGFzc2VydCB2
YWwyID09IDIKKyAgICAgICAgICAgIHB5dGVzdC5fZmlsbGZ1bmNhcmdzKGl0ZW0pCisgICAgICAg
ICAgICBhc3NlcnQgaXRlbS5mdW5jYXJnc1sic29tZXRoaW5nIl0gPT0gMQorICAgICAgICAgICAg
YXNzZXJ0IGxlbihnZXRfcHVibGljX25hbWVzKGl0ZW0uZnVuY2FyZ3MpKSA9PSAyCisgICAgICAg
ICAgICBhc3NlcnQgInJlcXVlc3QiIGluIGl0ZW0uZnVuY2FyZ3MKKworICAgIGRlZiB0ZXN0X3Jl
cXVlc3RfYWRkZmluYWxpemVyKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBpdGVtID0gdGVzdGRp
ci5nZXRpdGVtKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgdGVh
cmRvd25saXN0ID0gW10KKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAg
ZGVmIHNvbWV0aGluZyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFs
aXplcihsYW1iZGE6IHRlYXJkb3dubGlzdC5hcHBlbmQoMSkpCisgICAgICAgICAgICBkZWYgdGVz
dF9mdW5jKHNvbWV0aGluZyk6IHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICBpdGVtLnNlc3Np
b24uX3NldHVwc3RhdGUucHJlcGFyZShpdGVtKQorICAgICAgICBweXRlc3QuX2ZpbGxmdW5jYXJn
cyhpdGVtKQorICAgICAgICAjIHN1Y2Nlc3NpdmVseSBjaGVjayBmaW5hbGl6YXRpb24gY2FsbHMK
KyAgICAgICAgdGVhcmRvd25saXN0ID0gaXRlbS5nZXRwYXJlbnQocHl0ZXN0Lk1vZHVsZSkub2Jq
LnRlYXJkb3dubGlzdAorICAgICAgICBzcyA9IGl0ZW0uc2Vzc2lvbi5fc2V0dXBzdGF0ZQorICAg
ICAgICBhc3NlcnQgbm90IHRlYXJkb3dubGlzdAorICAgICAgICBzcy50ZWFyZG93bl9leGFjdChp
dGVtLCBOb25lKQorICAgICAgICBwcmludChzcy5zdGFjaykKKyAgICAgICAgYXNzZXJ0IHRlYXJk
b3dubGlzdCA9PSBbMV0KKworICAgIGRlZiB0ZXN0X21hcmtfYXNfZml4dHVyZV93aXRoX3ByZWZp
eF9hbmRfZGVjb3JhdG9yX2ZhaWxzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1h
a2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2Z1bmNhcmdfX21hcmtlZF93
aXRoX3ByZWZpeF9hbmRfZGVjb3JhdG9yKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAg
ICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoKQor
ICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCAhPSAwCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKkFzc2VydGlvbkVycm9yOiBmaXh0dXJlcyBjYW5u
b3QgaGF2ZSpAcHl0ZXN0LmZpeHR1cmUqIiwKKyAgICAgICAgICAgICIqcHl0ZXN0X2Z1bmNhcmdf
X21hcmtlZF93aXRoX3ByZWZpeF9hbmRfZGVjb3JhdG9yKiIKKyAgICAgICAgXSkKKworICAgIGRl
ZiB0ZXN0X3JlcXVlc3RfYWRkZmluYWxpemVyX2ZhaWxpbmdfc2V0dXAoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKyAgICAgICAgICAgIHZhbHVlcyA9IFsxXQorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJl
CisgICAgICAgICAgICBkZWYgbXlmaXgocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmVxdWVz
dC5hZGRmaW5hbGl6ZXIodmFsdWVzLnBvcCkKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAg
ICAgICAgICAgZGVmIHRlc3RfZml4KG15Zml4KToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICAgICBkZWYgdGVzdF9maW5hbGl6ZXJfcmFuKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0
IG5vdCB2YWx1ZXMKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGlu
ZV9ydW4oIi1zIikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUoZmFpbGVkPTEsIHBhc3Nl
ZD0xKQorCisgICAgZGVmIHRlc3RfcmVxdWVzdF9hZGRmaW5hbGl6ZXJfZmFpbGluZ19zZXR1cF9t
b2R1bGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIHZhbHVlcyA9IFsxLCAyXQorICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiKQorICAgICAgICAgICAgZGVm
IG15Zml4KHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHZh
bHVlcy5wb3ApCisgICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIodmFsdWVzLnBv
cCkKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAgICAgZGVmIHRlc3RfZml4KG15
Zml4KToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVj
ID0gdGVzdGRpci5pbmxpbmVfcnVuKCItcyIpCisgICAgICAgIG1vZCA9IHJlcHJlYy5nZXRjYWxs
cygicHl0ZXN0X3J1bnRlc3Rfc2V0dXAiKVswXS5pdGVtLm1vZHVsZQorICAgICAgICBhc3NlcnQg
bm90IG1vZC52YWx1ZXMKKworICAgIGRlZiB0ZXN0X3JlcXVlc3RfYWRkZmluYWxpemVyX3BhcnRp
YWxfc2V0dXBfZmFpbHVyZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFr
ZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIHZhbHVl
cyA9IFtdCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBzb21l
dGhpbmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIobGFt
YmRhOiB2YWx1ZXMuYXBwZW5kKE5vbmUpKQorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhzb21l
dGhpbmcsIG1pc3NpbmdhcmcpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X3NlY29uZCgpOgorICAgICAgICAgICAgICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSAx
CisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCkKKyAg
ICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqMSBlcnJv
cioiICAjIFhYWCB0aGUgd2hvbGUgbW9kdWxlIGNvbGxlY3Rpb24gZmFpbHMKKyAgICAgICAgXSkK
KworICAgIGRlZiB0ZXN0X3JlcXVlc3Rfc3VicmVxdWVzdF9hZGRmaW5hbGl6ZXJfZXhjZXB0aW9u
cyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiCisgICAgICAgIEVuc3VyZSBleGNlcHRpb25z
IHJhaXNlZCBkdXJpbmcgdGVhcmRvd24gYnkgYSBmaW5hbGl6ZXIgYXJlIHN1cHByZXNzZWQKKyAg
ICAgICAgdW50aWwgYWxsIGZpbmFsaXplcnMgYXJlIGNhbGxlZCwgcmUtcmFpc2luZyB0aGUgZmly
c3QgZXhjZXB0aW9uICgjMjQ0MCkKKyAgICAgICAgIiIiCisgICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIHZhbHVlcyA9
IFtdCisgICAgICAgICAgICBkZWYgX2V4Y2VwdHMod2hlcmUpOgorICAgICAgICAgICAgICAgIHJh
aXNlIEV4Y2VwdGlvbignRXJyb3IgaW4gJXMgZml4dHVyZScgJSB3aGVyZSkKKyAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIHN1YnJlcXVlc3QocmVxdWVzdCk6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZQorICAgICAgICAgICAgZGVmIHNvbWV0aGluZyhzdWJyZXF1ZXN0KToKKyAgICAgICAgICAgICAg
ICBzdWJyZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6IHZhbHVlcy5hcHBlbmQoMSkpCisgICAg
ICAgICAgICAgICAgc3VicmVxdWVzdC5hZGRmaW5hbGl6ZXIobGFtYmRhOiB2YWx1ZXMuYXBwZW5k
KDIpKQorICAgICAgICAgICAgICAgIHN1YnJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTogX2V4
Y2VwdHMoJ3NvbWV0aGluZycpKQorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAg
ICAgICBkZWYgZXhjZXB0cyhzdWJyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICBzdWJyZXF1ZXN0
LmFkZGZpbmFsaXplcihsYW1iZGE6IF9leGNlcHRzKCdleGNlcHRzJykpCisgICAgICAgICAgICAg
ICAgc3VicmVxdWVzdC5hZGRmaW5hbGl6ZXIobGFtYmRhOiB2YWx1ZXMuYXBwZW5kKDMpKQorICAg
ICAgICAgICAgZGVmIHRlc3RfZmlyc3Qoc29tZXRoaW5nLCBleGNlcHRzKToKKyAgICAgICAgICAg
ICAgICBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF9zZWNvbmQoKToKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgdmFsdWVzID09IFszLCAyLCAxXQorICAgICAgICAiIiIpCisgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKFsKKyAgICAgICAgICAgICcqRXhjZXB0aW9uOiBFcnJvciBpbiBleGNlcHRzIGZpeHR1cmUn
LAorICAgICAgICAgICAgJyogMiBwYXNzZWQsIDEgZXJyb3IgaW4gKicsCisgICAgICAgIF0pCisK
KyAgICBkZWYgdGVzdF9yZXF1ZXN0X2dldG1vZHVsZXBhdGgoc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIG1vZGNvbCA9IHRlc3RkaXIuZ2V0bW9kdWxlY29sKCJkZWYgdGVzdF9zb21lZnVuYygpOiBw
YXNzIikKKyAgICAgICAgaXRlbSwgPSB0ZXN0ZGlyLmdlbml0ZW1zKFttb2Rjb2xdKQorICAgICAg
ICByZXEgPSBmaXh0dXJlcy5GaXh0dXJlUmVxdWVzdChpdGVtKQorICAgICAgICBhc3NlcnQgcmVx
LmZzcGF0aCA9PSBtb2Rjb2wuZnNwYXRoCisKKyAgICBkZWYgdGVzdF9yZXF1ZXN0X2ZpeHR1cmVu
YW1lcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgZnJvbSBfcHl0ZXN0LnB5dGVzdGVy
IGltcG9ydCBnZXRfcHVibGljX25hbWVzCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoKQor
ICAgICAgICAgICAgZGVmIGFyZzEoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUoKQorICAgICAgICAgICAgZGVmIGZhcmcoYXJnMSk6CisgICAgICAg
ICAgICAgICAgcGFzcworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkK
KyAgICAgICAgICAgIGRlZiBzYXJnKHRtcGRpcik6CisgICAgICAgICAgICAgICAgcGFzcworICAg
ICAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24ocmVxdWVzdCwgZmFyZyk6CisgICAgICAgICAgICAg
ICAgYXNzZXJ0IHNldChnZXRfcHVibGljX25hbWVzKHJlcXVlc3QuZml4dHVyZW5hbWVzKSkgPT0g
XAorICAgICAgICAgICAgICAgICAgICAgICBzZXQoWyJ0bXBkaXIiLCAic2FyZyIsICJhcmcxIiwg
InJlcXVlc3QiLCAiZmFyZyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRtcGRpcl9m
YWN0b3J5Il0pCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVf
cnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYg
dGVzdF9mdW5jYXJnbmFtZXNfY29tcGF0YXR0cihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAg
ICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6CisgICAgICAgICAgICAgICAg
YXNzZXJ0IG1ldGFmdW5jLmZ1bmNhcmduYW1lcyA9PSBtZXRhZnVuYy5maXh0dXJlbmFtZXMKKyAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGZuKHJlcXVlc3QpOgor
ICAgICAgICAgICAgICAgIGFzc2VydCByZXF1ZXN0Ll9weWZ1bmNpdGVtLmZ1bmNhcmduYW1lcyA9
PSBcCisgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuX3B5ZnVuY2l0ZW0uZml4dHVyZW5h
bWVzCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QuZnVuY2FyZ25hbWVzLCByZXF1ZXN0
LmZpeHR1cmVuYW1lcworCisgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhmbik6CisgICAgICAg
ICAgICAgICAgYXNzZXJ0IGZuWzBdID09IGZuWzFdCisgICAgICAgICIiIikKKyAgICAgICAgcmVw
cmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUo
cGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF9zZXR1cGRlY29yYXRvcl9hbmRfeHVuaXQoc2VsZiwg
dGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGlt
cG9ydCBweXRlc3QKKyAgICAgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUoc2NvcGU9J21vZHVsZScsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBz
ZXR1cF9tb2R1bGUoKToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJtb2R1bGUiKQor
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRl
ZiBzZXR1cF9mdW5jdGlvbigpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoImZ1bmN0
aW9uIikKKworICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAgICAgIHBh
c3MKKworICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAg
ICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJjbGFzcyIsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAg
ICAgICAgICBkZWYgc2V0dXBfY2xhc3Moc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHZhbHVl
cy5hcHBlbmQoImNsYXNzIikKKyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3Vz
ZT1UcnVlKQorICAgICAgICAgICAgICAgIGRlZiBzZXR1cF9tZXRob2Qoc2VsZik6CisgICAgICAg
ICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoIm1ldGhvZCIpCisgICAgICAgICAgICAgICAgZGVm
IHRlc3RfbWV0aG9kKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAg
ICBkZWYgdGVzdF9hbGwoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsibW9k
dWxlIiwgImZ1bmN0aW9uIiwgImNsYXNzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImZ1bmN0aW9uIiwgIm1ldGhvZCIsICJmdW5jdGlvbiJdCisgICAgICAgICIiIikKKyAgICAgICAg
cmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItdiIpCisgICAgICAgIHJlcHJlYy5hc3NlcnRv
dXRjb21lKHBhc3NlZD0zKQorCisgICAgZGVmIHRlc3RfZml4dHVyZXNfc3ViX3N1YmRpcl9ub3Jt
YWxpemVfc2VwKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAjIHRoaXMgdGVzdHMgdGhhdCBub3Jt
YWxpemF0aW9uIG9mIG5vZGVpZHMgdGFrZXMgcGxhY2UKKyAgICAgICAgYiA9IHRlc3RkaXIubWtk
aXIoInRlc3RzIikubWtkaXIoInVuaXQiKQorICAgICAgICBiLmpvaW4oImNvbmZ0ZXN0LnB5Iiku
d3JpdGUoX3B5dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBhcmcxKCk6Cisg
ICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpKQorICAgICAgICBwID0gYi5qb2luKCJ0
ZXN0X21vZHVsZS5weSIpCisgICAgICAgIHAud3JpdGUoImRlZiB0ZXN0X2Z1bmMoYXJnMSk6IHBh
c3MiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwLCAiLS1maXh0dXJlcyIp
CisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKCIiIgorICAgICAgICAgICAgKmZpeHR1cmVzIGRlZmluZWQqY29uZnRlc3Qq
CisgICAgICAgICAgICAqYXJnMSoKKyAgICAgICAgIiIiKQorCisgICAgZGVmIHRlc3Rfc2hvd19m
aXh0dXJlc19jb2xvcl95ZXMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgiZGVmIHRlc3RfdGhpcygpOiBhc3NlcnQgMSIpCisgICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCctLWNvbG9yPXllcycsICctLWZpeHR1cmVzJykKKyAgICAgICAgYXNzZXJ0
ICdceDFiWzMybXRtcGRpcicgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorCisgICAgZGVmIHRlc3Rf
bmV3c3R5bGVfd2l0aF9yZXF1ZXN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUoKQorICAgICAgICAgICAgZGVmIGFyZyhyZXF1ZXN0KToKKyAgICAgICAgICAg
ICAgICBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF8xKGFyZyk6CisgICAgICAgICAgICAgICAg
cGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigp
CisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCisgICAgZGVmIHRlc3Rf
c2V0dXBjb250ZXh0X25vX3BhcmFtKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUocGFyYW1zPVsxLDJdKQorICAgICAgICAgICAgZGVmIGFyZyhyZXF1ZXN0KToK
KyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisgICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgZGVmIG15c2V0dXAocmVxdWVz
dCwgYXJnKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgbm90IGhhc2F0dHIocmVxdWVzdCwgInBh
cmFtIikKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEoYXJnKToKKyAgICAgICAgICAgICAgICBhc3Nl
cnQgYXJnIGluICgxLDIpCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5p
bmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIpCisKKwor
Y2xhc3MgVGVzdFJlcXVlc3RNYXJraW5nKG9iamVjdCk6CisgICAgZGVmIHRlc3RfYXBwbHltYXJr
ZXIoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIGl0ZW0xLCBpdGVtMiA9IHRlc3RkaXIuZ2V0aXRl
bXMoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZQorICAgICAgICAgICAgZGVmIHNvbWV0aGluZyhyZXF1ZXN0KToKKyAgICAgICAgICAg
ICAgICBwYXNzCisgICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAg
ICAgICAgICBkZWYgdGVzdF9mdW5jMShzZWxmLCBzb21ldGhpbmcpOgorICAgICAgICAgICAgICAg
ICAgICBwYXNzCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzIoc2VsZiwgc29tZXRoaW5n
KToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlcTEg
PSBmaXh0dXJlcy5GaXh0dXJlUmVxdWVzdChpdGVtMSkKKyAgICAgICAgYXNzZXJ0ICd4ZmFpbCcg
bm90IGluIGl0ZW0xLmtleXdvcmRzCisgICAgICAgIHJlcTEuYXBwbHltYXJrZXIocHl0ZXN0Lm1h
cmsueGZhaWwpCisgICAgICAgIGFzc2VydCAneGZhaWwnIGluIGl0ZW0xLmtleXdvcmRzCisgICAg
ICAgIGFzc2VydCAnc2tpcGlmJyBub3QgaW4gaXRlbTEua2V5d29yZHMKKyAgICAgICAgcmVxMS5h
cHBseW1hcmtlcihweXRlc3QubWFyay5za2lwaWYpCisgICAgICAgIGFzc2VydCAnc2tpcGlmJyBp
biBpdGVtMS5rZXl3b3JkcworICAgICAgICBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsICJyZXEx
LmFwcGx5bWFya2VyKDQyKSIpCisKKyAgICBkZWYgdGVzdF9hY2Nlc3NrZXl3b3JkcyhzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkKKyAgICAgICAgICAgIGRl
ZiBrZXl3b3JkcyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5rZXl3
b3JkcworICAgICAgICAgICAgQHB5dGVzdC5tYXJrLlhZWgorICAgICAgICAgICAgZGVmIHRlc3Rf
ZnVuY3Rpb24oa2V5d29yZHMpOgorICAgICAgICAgICAgICAgIGFzc2VydCBrZXl3b3Jkc1siWFla
Il0KKyAgICAgICAgICAgICAgICBhc3NlcnQgImFiYyIgbm90IGluIGtleXdvcmRzCisgICAgICAg
ICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVw
cmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF9hY2Nlc3NtYXJrZXJf
ZHluYW1pYyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIi
CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUo
KQorICAgICAgICAgICAgZGVmIGtleXdvcmRzKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJl
dHVybiByZXF1ZXN0LmtleXdvcmRzCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29w
ZT0iY2xhc3MiLCBhdXRvdXNlPVRydWUpCisgICAgICAgICAgICBkZWYgbWFya2luZyhyZXF1ZXN0
KToKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmFwcGx5bWFya2VyKHB5dGVzdC5tYXJrLlhZWigi
aGVsbG8iKSkKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBkZWYgdGVzdF9mdW4xKGtleXdv
cmRzKToKKyAgICAgICAgICAgICAgICBhc3NlcnQga2V5d29yZHNbIlhZWiJdIGlzIG5vdCBOb25l
CisgICAgICAgICAgICAgICAgYXNzZXJ0ICJhYmMiIG5vdCBpbiBrZXl3b3JkcworICAgICAgICAg
ICAgZGVmIHRlc3RfZnVuMihrZXl3b3Jkcyk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGtleXdv
cmRzWyJYWVoiXSBpcyBub3QgTm9uZQorICAgICAgICAgICAgICAgIGFzc2VydCAiYWJjIiBub3Qg
aW4ga2V5d29yZHMKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGlu
ZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKKworCitjbGFz
cyBUZXN0UmVxdWVzdENhY2hlZFNldHVwKG9iamVjdCk6CisgICAgZGVmIHRlc3RfcmVxdWVzdF9j
YWNoZWRzZXR1cF9kZWZhdWx0bW9kdWxlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICByZXByZWMg
PSB0ZXN0ZGlyLmlubGluZV9ydW5zb3VyY2UoIiIiCisgICAgICAgICAgICBteXNldHVwID0gWyJo
ZWxsbyIsXS5wb3AKKworICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBzb21ldGhpbmcocmVxdWVzdCk6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QuY2FjaGVkX3NldHVwKG15c2V0dXAsIHNjb3BlPSJt
b2R1bGUiKQorCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jMShzb21ldGhpbmcpOgorICAgICAg
ICAgICAgICAgIGFzc2VydCBzb21ldGhpbmcgPT0gImhlbGxvIgorICAgICAgICAgICAgY2xhc3Mg
VGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzFhKHNlbGYs
IHNvbWV0aGluZyk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBzb21ldGhpbmcgPT0gImhl
bGxvIgorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0y
KQorCisgICAgZGVmIHRlc3RfcmVxdWVzdF9jYWNoZWRzZXR1cF9jbGFzcyhzZWxmLCB0ZXN0ZGly
KToKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNlKCIiIgorICAgICAg
ICAgICAgbXlzZXR1cCA9IFsiaGVsbG8iLCAiaGVsbG8yIiwgImhlbGxvMyJdLnBvcAorCisgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAg
ICAgICAgIGRlZiBzb21ldGhpbmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJl
cXVlc3QuY2FjaGVkX3NldHVwKG15c2V0dXAsIHNjb3BlPSJjbGFzcyIpCisgICAgICAgICAgICBk
ZWYgdGVzdF9mdW5jMShzb21ldGhpbmcpOgorICAgICAgICAgICAgICAgIGFzc2VydCBzb21ldGhp
bmcgPT0gImhlbGxvMyIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMyKHNvbWV0aGluZyk6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0IHNvbWV0aGluZyA9PSAiaGVsbG8yIgorICAgICAgICAgICAg
Y2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzFh
KHNlbGYsIHNvbWV0aGluZyk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBzb21ldGhpbmcg
PT0gImhlbGxvIgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMyYihzZWxmLCBzb21ldGhp
bmcpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgc29tZXRoaW5nID09ICJoZWxsbyIKKyAg
ICAgICAgIiIiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9NCkKKworICAg
IGRlZiB0ZXN0X3JlcXVlc3RfY2FjaGVkc2V0dXBfZXh0cmFrZXkoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIGl0ZW0xID0gdGVzdGRpci5nZXRpdGVtKCJkZWYgdGVzdF9mdW5jKCk6IHBhc3MiKQor
ICAgICAgICByZXExID0gZml4dHVyZXMuRml4dHVyZVJlcXVlc3QoaXRlbTEpCisgICAgICAgIHZh
bHVlcyA9IFsiaGVsbG8iLCAid29ybGQiXQorCisgICAgICAgIGRlZiBzZXR1cCgpOgorICAgICAg
ICAgICAgcmV0dXJuIHZhbHVlcy5wb3AoKQorCisgICAgICAgIHJldDEgPSByZXExLmNhY2hlZF9z
ZXR1cChzZXR1cCwgZXh0cmFrZXk9MSkKKyAgICAgICAgcmV0MiA9IHJlcTEuY2FjaGVkX3NldHVw
KHNldHVwLCBleHRyYWtleT0yKQorICAgICAgICBhc3NlcnQgcmV0MiA9PSAiaGVsbG8iCisgICAg
ICAgIGFzc2VydCByZXQxID09ICJ3b3JsZCIKKyAgICAgICAgcmV0MWIgPSByZXExLmNhY2hlZF9z
ZXR1cChzZXR1cCwgZXh0cmFrZXk9MSkKKyAgICAgICAgcmV0MmIgPSByZXExLmNhY2hlZF9zZXR1
cChzZXR1cCwgZXh0cmFrZXk9MikKKyAgICAgICAgYXNzZXJ0IHJldDEgPT0gcmV0MWIKKyAgICAg
ICAgYXNzZXJ0IHJldDIgPT0gcmV0MmIKKworICAgIGRlZiB0ZXN0X3JlcXVlc3RfY2FjaGVkc2V0
dXBfY2FjaGVfZGVsZXRpb24oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIGl0ZW0xID0gdGVzdGRp
ci5nZXRpdGVtKCJkZWYgdGVzdF9mdW5jKCk6IHBhc3MiKQorICAgICAgICByZXExID0gZml4dHVy
ZXMuRml4dHVyZVJlcXVlc3QoaXRlbTEpCisgICAgICAgIHZhbHVlcyA9IFtdCisKKyAgICAgICAg
ZGVmIHNldHVwKCk6CisgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJzZXR1cCIpCisKKyAgICAg
ICAgZGVmIHRlYXJkb3duKHZhbCk6CisgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJ0ZWFyZG93
biIpCisKKyAgICAgICAgcmVxMS5jYWNoZWRfc2V0dXAoc2V0dXAsIHRlYXJkb3duLCBzY29wZT0i
ZnVuY3Rpb24iKQorICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsnc2V0dXAnXQorICAgICAgICAj
IGFydGlmaWNpYWwgY2FsbCBvZiBmaW5hbGl6ZXIKKyAgICAgICAgc2V0dXBzdGF0ZSA9IHJlcTEu
X3B5ZnVuY2l0ZW0uc2Vzc2lvbi5fc2V0dXBzdGF0ZQorICAgICAgICBzZXR1cHN0YXRlLl9jYWxs
ZmluYWxpemVycyhpdGVtMSkKKyAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbInNldHVwIiwgInRl
YXJkb3duIl0KKyAgICAgICAgcmVxMS5jYWNoZWRfc2V0dXAoc2V0dXAsIHRlYXJkb3duLCBzY29w
ZT0iZnVuY3Rpb24iKQorICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsic2V0dXAiLCAidGVhcmRv
d24iLCAic2V0dXAiXQorICAgICAgICBzZXR1cHN0YXRlLl9jYWxsZmluYWxpemVycyhpdGVtMSkK
KyAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbInNldHVwIiwgInRlYXJkb3duIiwgInNldHVwIiwg
InRlYXJkb3duIl0KKworICAgIGRlZiB0ZXN0X3JlcXVlc3RfY2FjaGVkX3NldHVwX3R3b19hcmdz
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAg
ICAgICAgZGVmIGFyZzEocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3Qu
Y2FjaGVkX3NldHVwKGxhbWJkYTogNDIpCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAg
ICAgICAgICAgIGRlZiBhcmcyKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1
ZXN0LmNhY2hlZF9zZXR1cChsYW1iZGE6IDE3KQorICAgICAgICAgICAgZGVmIHRlc3RfdHdvX2Rp
ZmZlcmVudF9zZXR1cHMoYXJnMSwgYXJnMik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGFyZzEg
IT0gYXJnMgorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCItdiIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAg
ICAiKjEgcGFzc2VkKiIKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X3JlcXVlc3RfY2FjaGVk
X3NldHVwX2dldGZpeHR1cmV2YWx1ZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5t
YWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBhcmcxKHJlcXVlc3QpOgorICAgICAgICAg
ICAgICAgIGFyZzEgPSByZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgiYXJnMiIpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlcXVlc3QuY2FjaGVkX3NldHVwKGxhbWJkYTogYXJnMSArIDEpCisgICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBhcmcyKHJlcXVlc3QpOgor
ICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LmNhY2hlZF9zZXR1cChsYW1iZGE6IDEwKQor
ICAgICAgICAgICAgZGVmIHRlc3RfdHdvX2Z1bmNhcmcoYXJnMSk6CisgICAgICAgICAgICAgICAg
YXNzZXJ0IGFyZzEgPT0gMTEKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgiLXYiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWwor
ICAgICAgICAgICAgIioxIHBhc3NlZCoiCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9yZXF1
ZXN0X2NhY2hlZF9zZXR1cF9mdW5jdGlvbmFsKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUodGVzdF8wPSIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAg
ICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAg
ICAgICAgZGVmIHNvbWV0aGluZyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICB2YWwgPSByZXF1
ZXN0LmNhY2hlZF9zZXR1cChmc2V0dXAsIGZ0ZWFyZG93bikKKyAgICAgICAgICAgICAgICByZXR1
cm4gdmFsCisgICAgICAgICAgICBkZWYgZnNldHVwKG15Y2FjaGU9WzFdKToKKyAgICAgICAgICAg
ICAgICB2YWx1ZXMuYXBwZW5kKG15Y2FjaGUucG9wKCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IHZhbHVlcworICAgICAgICAgICAgZGVmIGZ0ZWFyZG93bihzb21ldGhpbmcpOgorICAgICAgICAg
ICAgICAgIHZhbHVlcy5yZW1vdmUoc29tZXRoaW5nWzBdKQorICAgICAgICAgICAgICAgIHZhbHVl
cy5hcHBlbmQoMikKKyAgICAgICAgICAgIGRlZiB0ZXN0X2xpc3Rfb25jZShzb21ldGhpbmcpOgor
ICAgICAgICAgICAgICAgIGFzc2VydCBzb21ldGhpbmcgPT0gWzFdCisgICAgICAgICAgICBkZWYg
dGVzdF9saXN0X3R3aWNlKHNvbWV0aGluZyk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHNvbWV0
aGluZyA9PSBbMV0KKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVz
dF8xPSIiIgorICAgICAgICAgICAgaW1wb3J0IHRlc3RfMCAjIHNob3VsZCBoYXZlIHJ1biBhbHJl
YWR5CisgICAgICAgICAgICBkZWYgdGVzdF9jaGVja190ZXN0MF9oYXNfdGVhcmRvd25fY29ycmVj
dCgpOgorICAgICAgICAgICAgICAgIGFzc2VydCB0ZXN0XzAudmFsdWVzID09IFsyXQorICAgICAg
ICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIpCisgICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKjMgcGFzc2VkKiIK
KyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2lzc3VlMTE3X3Nlc3Npb25zY29wZXRlYXJkb3du
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAg
ICAgICAgZGVmIGFwcChyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICBhcHAgPSByZXF1ZXN0LmNh
Y2hlZF9zZXR1cCgKKyAgICAgICAgICAgICAgICAgICAgc2NvcGU9J3Nlc3Npb24nLAorICAgICAg
ICAgICAgICAgICAgICBzZXR1cD1sYW1iZGE6IDAsCisgICAgICAgICAgICAgICAgICAgIHRlYXJk
b3duPWxhbWJkYSB4OiAzL3gpCisgICAgICAgICAgICAgICAgcmV0dXJuIGFwcAorICAgICAgICAg
ICAgZGVmIHRlc3RfZnVuYyhhcHApOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIi
KQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIGFzc2VydCBy
ZXN1bHQucmV0ICE9IDAKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAg
ICAgICAgICAgICIqMy94KiIsCisgICAgICAgICAgICAiKlplcm9EaXZpc2lvbkVycm9yKiIsCisg
ICAgICAgIF0pCisKKworY2xhc3MgVGVzdEZpeHR1cmVVc2FnZXMob2JqZWN0KToKKyAgICBkZWYg
dGVzdF9ub2FyZ2ZpeHR1cmVkZWMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRl
c3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGFyZzEoKToKKyAgICAgICAgICAgICAgICByZXR1
cm4gMQorCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKGFyZzEpOgorICAgICAgICAgICAgICAg
IGFzc2VydCBhcmcxID09IDEKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGly
LmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKwor
ICAgIGRlZiB0ZXN0X3JlY2VpdmVzX2Z1bmNhcmdzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUoKQorICAgICAgICAgICAgZGVmIGFyZzEoKToKKyAgICAgICAg
ICAgICAgICByZXR1cm4gMQorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoKQorICAgICAg
ICAgICAgZGVmIGFyZzIoYXJnMSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGFyZzEgKyAxCisK
KyAgICAgICAgICAgIGRlZiB0ZXN0X2FkZChhcmcyKToKKyAgICAgICAgICAgICAgICBhc3NlcnQg
YXJnMiA9PSAyCisgICAgICAgICAgICBkZWYgdGVzdF9hbGwoYXJnMSwgYXJnMik6CisgICAgICAg
ICAgICAgICAgYXNzZXJ0IGFyZzEgPT0gMQorICAgICAgICAgICAgICAgIGFzc2VydCBhcmcyID09
IDIKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQor
ICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKKworICAgIGRlZiB0ZXN0X3Jl
Y2VpdmVzX2Z1bmNhcmdzX3Njb3BlX21pc21hdGNoKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImZ1bmN0aW9uIikKKyAgICAgICAgICAgIGRlZiBh
cmcxKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIDEKKworICAgICAgICAgICAgQHB5dGVzdC5m
aXh0dXJlKHNjb3BlPSJtb2R1bGUiKQorICAgICAgICAgICAgZGVmIGFyZzIoYXJnMSk6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIGFyZzEgKyAxCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2FkZChh
cmcyKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgYXJnMiA9PSAyCisgICAgICAgICIiIikKKyAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIipTY29wZU1pc21hdGNoKmludm9sdmVkIGZh
Y3RvcmllcyoiLAorICAgICAgICAgICAgIiogZGVmIGFyZzIqIiwKKyAgICAgICAgICAgICIqIGRl
ZiBhcmcxKiIsCisgICAgICAgICAgICAiKjEgZXJyb3IqIgorICAgICAgICBdKQorCisgICAgZGVm
IHRlc3RfcmVjZWl2ZXNfZnVuY2FyZ3Nfc2NvcGVfbWlzbWF0Y2hfaXNzdWU2NjAoc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0iZnVuY3Rpb24iKQor
ICAgICAgICAgICAgZGVmIGFyZzEoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gMQorCisgICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIpCisgICAgICAgICAgICBkZWYg
YXJnMihhcmcxKToKKyAgICAgICAgICAgICAgICByZXR1cm4gYXJnMSArIDEKKworICAgICAgICAg
ICAgZGVmIHRlc3RfYWRkKGFyZzEsIGFyZzIpOgorICAgICAgICAgICAgICAgIGFzc2VydCBhcmcy
ID09IDIKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgp
CisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKlNj
b3BlTWlzbWF0Y2gqaW52b2x2ZWQgZmFjdG9yaWVzKiIsCisgICAgICAgICAgICAiKiBkZWYgYXJn
MioiLAorICAgICAgICAgICAgIioxIGVycm9yKiIKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0
X2ludmFsaWRfc2NvcGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZShzY29wZT0iZnVuY3Rpb25zIikKKyAgICAgICAgICAgIGRlZiBiYWRzY29wZSgpOgorICAg
ICAgICAgICAgICAgIHBhc3MKKworICAgICAgICAgICAgZGVmIHRlc3Rfbm90aGluZyhiYWRzY29w
ZSk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0X2lucHJvY2VzcygpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcygKKyAgICAgICAgICAgICgiKlZhbHVlRXJyb3I6IGZpeHR1cmUgYmFkc2NvcGUg
ZnJvbSB0ZXN0X2ludmFsaWRfc2NvcGUucHkgaGFzIGFuIHVuc3VwcG9ydGVkIgorICAgICAgICAg
ICAgICIgc2NvcGUgdmFsdWUgJ2Z1bmN0aW9ucyciKQorICAgICAgICApCisKKyAgICBkZWYgdGVz
dF9mdW5jYXJnX3BhcmFtZXRyaXplZF9hbmRfdXNlZF90d2ljZShzZWxmLCB0ZXN0ZGlyKToKKyAg
ICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAor
ICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJh
bXM9WzEsMl0pCisgICAgICAgICAgICBkZWYgYXJnMShyZXF1ZXN0KToKKyAgICAgICAgICAgICAg
ICB2YWx1ZXMuYXBwZW5kKDEpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0K
KworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkKKyAgICAgICAgICAgIGRlZiBhcmcyKGFy
ZzEpOgorICAgICAgICAgICAgICAgIHJldHVybiBhcmcxICsgMQorCisgICAgICAgICAgICBkZWYg
dGVzdF9hZGQoYXJnMSwgYXJnMik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGFyZzIgPT0gYXJn
MSArIDEKKyAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gYXJnMQorICAgICAg
ICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqMiBwYXNzZWQqIgorICAg
ICAgICBdKQorCisgICAgZGVmIHRlc3RfZmFjdG9yeV91c2VzX3Vua25vd25fZnVuY2FyZ19hc19k
ZXBlbmRlbmN5X2Vycm9yKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZSgpCisgICAgICAgICAgICBkZWYgZmFpbChtaXNzaW5nKToKKyAgICAgICAgICAgICAg
ICByZXR1cm4KKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkKKyAgICAgICAgICAgIGRl
ZiBjYWxsX2ZhaWwoZmFpbCk6CisgICAgICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgICAg
IGRlZiB0ZXN0X21pc3NpbmcoY2FsbF9mYWlsKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIiIgorICAgICAgICAgICAgKnB5dGVzdC5m
aXh0dXJlKCkqCisgICAgICAgICAgICAqZGVmIGNhbGxfZmFpbChmYWlsKSoKKyAgICAgICAgICAg
ICpweXRlc3QuZml4dHVyZSgpKgorICAgICAgICAgICAgKmRlZiBmYWlsKgorICAgICAgICAgICAg
KmZpeHR1cmUqJ21pc3NpbmcnKm5vdCBmb3VuZCoKKyAgICAgICAgIiIiKQorCisgICAgZGVmIHRl
c3RfZmFjdG9yeV9zZXR1cF9hc19jbGFzc2VzX2ZhaWxzKHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAg
ICAgICAgICBjbGFzcyBhcmcxKG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHJlcXVlc3QpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLnggPSAxCisgICAgICAg
ICAgICBhcmcxID0gcHl0ZXN0LmZpeHR1cmUoKShhcmcxKQorCisgICAgICAgICIiIikKKyAgICAg
ICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgdmFsdWVzID0gcmVwcmVj
LmdldGZhaWxlZGNvbGxlY3Rpb25zKCkKKyAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDEK
KworICAgIGRlZiB0ZXN0X3JlcXVlc3RfY2FuX2JlX292ZXJyaWRkZW4oc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZSgpCisgICAgICAgICAgICBkZWYgcmVxdWVz
dChyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmEgPSAxCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHJlcXVlc3QKKyAgICAgICAgICAgIGRlZiB0ZXN0X3JlcXVlc3QocmVxdWVzdCk6
CisgICAgICAgICAgICAgICAgYXNzZXJ0IHJlcXVlc3QuYSA9PSAxCisgICAgICAgICIiIikKKyAg
ICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2Vy
dG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF91c2VmaXh0dXJlc19tYXJrZXIoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgdmFsdWVzID0gW10KKworICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlKHNjb3BlPSJjbGFzcyIpCisgICAgICAgICAgICBkZWYgbXlmaXgocmVx
dWVzdCk6CisgICAgICAgICAgICAgICAgcmVxdWVzdC5jbHMuaGVsbG8gPSAid29ybGQiCisgICAg
ICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgxKQorCisgICAgICAgICAgICBjbGFzcyBUZXN0Q2xh
c3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9vbmUoc2VsZik6CisgICAgICAg
ICAgICAgICAgICAgIGFzc2VydCBzZWxmLmhlbGxvID09ICJ3b3JsZCIKKyAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDEKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF90
d28oc2VsZik6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBzZWxmLmhlbGxvID09ICJ3b3Js
ZCIKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDEKKyAgICAgICAg
ICAgIHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCJteWZpeCIpKFRlc3RDbGFzcykKKyAgICAgICAg
IiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXBy
ZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKKworICAgIGRlZiB0ZXN0X3VzZWZpeHR1cmVzX2lu
aShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlaW5pKCIiIgorICAgICAgICAg
ICAgW3B5dGVzdF0KKyAgICAgICAgICAgIHVzZWZpeHR1cmVzID0gbXlmaXgKKyAgICAgICAgIiIi
KQorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBw
eXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJjbGFzcyIpCisgICAg
ICAgICAgICBkZWYgbXlmaXgocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmVxdWVzdC5jbHMu
aGVsbG8gPSAid29ybGQiCisKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoIiIiCisgICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAg
ICAgICBkZWYgdGVzdF9vbmUoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBzZWxm
LmhlbGxvID09ICJ3b3JsZCIKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF90d28oc2VsZik6Cisg
ICAgICAgICAgICAgICAgICAgIGFzc2VydCBzZWxmLmhlbGxvID09ICJ3b3JsZCIKKyAgICAgICAg
IiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXBy
ZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKKworICAgIGRlZiB0ZXN0X3VzZWZpeHR1cmVzX3Nl
ZW5faW5fc2hvd21hcmtlcnMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCItLW1hcmtlcnMiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoIiIiCisgICAgICAgICAgICAqdXNlZml4dHVyZXMoZml4dHVyZW5hbWUxKm1hcmsgdGVz
dHMqZml4dHVyZXMqCisgICAgICAgICIiIikKKworICAgIGRlZiB0ZXN0X3JlcXVlc3RfaW5zdGFu
Y2VfaXNzdWUyMDMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgi
IiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgY2xhc3MgVGVzdENs
YXNzKG9iamVjdCk6CisgICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAg
ICAgICAgZGVmIHNldHVwMShzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgICAgICAgICAgICAgYXNz
ZXJ0IHNlbGYgPT0gcmVxdWVzdC5pbnN0YW5jZQorICAgICAgICAgICAgICAgICAgICBzZWxmLmFy
ZzEgPSAxCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oc2VsZiwgc2V0dXAxKToKKyAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYuYXJnMSA9PSAxCisgICAgICAgICIiIikKKyAg
ICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2Vy
dG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF9maXh0dXJlX3BhcmFtZXRyaXplZF93
aXRoX2l0ZXJhdG9yKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
IiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIHZhbHVlcyA9IFtd
CisgICAgICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgICAgIHlpZWxkIDEKKyAgICAgICAg
ICAgICAgICB5aWVsZCAyCisgICAgICAgICAgICBkZWMgPSBweXRlc3QuZml4dHVyZShzY29wZT0i
bW9kdWxlIiwgcGFyYW1zPWYoKSkKKworICAgICAgICAgICAgQGRlYworICAgICAgICAgICAgZGVm
IGFyZyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorICAg
ICAgICAgICAgQGRlYworICAgICAgICAgICAgZGVmIGFyZzIocmVxdWVzdCk6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAgICAgICAgZGVmIHRlc3RfMShhcmcp
OgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoYXJnKQorICAgICAgICAgICAgZGVmIHRl
c3RfMihhcmcyKToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGFyZzIqMTApCisgICAg
ICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItdiIpCisgICAg
ICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD00KQorICAgICAgICB2YWx1ZXMgPSByZXBy
ZWMuZ2V0Y2FsbHMoInB5dGVzdF9ydW50ZXN0X2NhbGwiKVswXS5pdGVtLm1vZHVsZS52YWx1ZXMK
KyAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbMSwgMiwgMTAsIDIwXQorCisKK2NsYXNzIFRlc3RG
aXh0dXJlTWFuYWdlclBhcnNlRmFjdG9yaWVzKG9iamVjdCk6CisKKyAgICBAcHl0ZXN0LmZpeHR1
cmUKKyAgICBkZWYgdGVzdGRpcihzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgdGVzdGRpciA9IHJl
cXVlc3QuZ2V0Zml4dHVyZXZhbHVlKCJ0ZXN0ZGlyIikKKyAgICAgICAgdGVzdGRpci5tYWtlY29u
ZnRlc3QoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRl
c3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGhlbGxvKHJlcXVlc3QpOgorICAgICAgICAgICAg
ICAgIHJldHVybiAiY29uZnRlc3QiCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAg
ICAgICAgICAgZGVmIGZtKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0
Ll9maXh0dXJlbWFuYWdlcgorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAg
ICAgIGRlZiBpdGVtKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0Ll9w
eWZ1bmNpdGVtCisgICAgICAgICIiIikKKyAgICAgICAgcmV0dXJuIHRlc3RkaXIKKworICAgIGRl
ZiB0ZXN0X3BhcnNlZmFjdG9yaWVzX2V2aWxfb2JqZWN0c19pc3N1ZTIxNChzZWxmLCB0ZXN0ZGly
KToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgY2xhc3MgQShv
YmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmKToKKyAgICAgICAgICAg
ICAgICAgICAgcGFzcworICAgICAgICAgICAgICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCBuYW1l
KToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCkKKyAgICAgICAgICAg
IGEgPSBBKCkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKCk6CisgICAgICAgICAgICAgICAg
cGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigp
CisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xLCBmYWlsZWQ9MCkKKworICAg
IGRlZiB0ZXN0X3BhcnNlZmFjdG9yaWVzX2NvbmZ0ZXN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhpdGVt
LCBmbSk6CisgICAgICAgICAgICAgICAgZm9yIG5hbWUgaW4gKCJmbSIsICJoZWxsbyIsICJpdGVt
Iik6CisgICAgICAgICAgICAgICAgICAgIGZhY2xpc3QgPSBmbS5nZXRmaXh0dXJlZGVmcyhuYW1l
LCBpdGVtLm5vZGVpZCkKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGxlbihmYWNsaXN0KSA9
PSAxCisgICAgICAgICAgICAgICAgICAgIGZhYyA9IGZhY2xpc3RbMF0KKyAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0IGZhYy5mdW5jLl9fbmFtZV9fID09IG5hbWUKKyAgICAgICAgIiIiKQorICAg
ICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1zIikKKyAgICAgICAgcmVwcmVjLmFz
c2VydG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF9wYXJzZWZhY3Rvcmllc19jb25m
dGVzdF9hbmRfbW9kdWxlX2FuZF9jbGFzcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBoZWxsbyhyZXF1ZXN0KToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gIm1vZHVsZSIKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhv
YmplY3QpOgorICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgICAg
IGRlZiBoZWxsbyhzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJj
bGFzcyIKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhzZWxmLCBpdGVtLCBmbSk6Cisg
ICAgICAgICAgICAgICAgICAgIGZhY2xpc3QgPSBmbS5nZXRmaXh0dXJlZGVmcygiaGVsbG8iLCBp
dGVtLm5vZGVpZCkKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgKGZhY2xpc3QpCisgICAgICAg
ICAgICAgICAgICAgIGFzc2VydCBsZW4oZmFjbGlzdCkgPT0gMworICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQgZmFjbGlzdFswXS5mdW5jKGl0ZW0uX3JlcXVlc3QpID09ICJjb25mdGVzdCIKKyAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZhY2xpc3RbMV0uZnVuYyhpdGVtLl9yZXF1ZXN0KSA9
PSAibW9kdWxlIgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZmFjbGlzdFsyXS5mdW5jKGl0
ZW0uX3JlcXVlc3QpID09ICJjbGFzcyIKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0
ZXN0ZGlyLmlubGluZV9ydW4oIi1zIikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFz
c2VkPTEpCisKKyAgICBkZWYgdGVzdF9wYXJzZWZhY3Rvcmllc19yZWxhdGl2ZV9ub2RlX2lkcyhz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIyBleGFtcGxlIG1vc3RseSB0YWtlbiBmcm9tOgorICAg
ICAgICAjIGh0dHBzOi8vbWFpbC5weXRob24ub3JnL3BpcGVybWFpbC9weXRlc3QtZGV2LzIwMTQt
U2VwdGVtYmVyLzAwMjYxNy5odG1sCisgICAgICAgIHJ1bm5lciA9IHRlc3RkaXIubWtkaXIoInJ1
bm5lciIpCisgICAgICAgIHBhY2thZ2UgPSB0ZXN0ZGlyLm1rZGlyKCJwYWNrYWdlIikKKyAgICAg
ICAgcGFja2FnZS5qb2luKCJjb25mdGVzdC5weSIpLndyaXRlKGRlZGVudCgiIiJcCisgICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAg
ICAgIGRlZiBvbmUoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gMQorICAgICAgICAiIiIpKQor
ICAgICAgICBwYWNrYWdlLmpvaW4oInRlc3RfeC5weSIpLndyaXRlKGRlZGVudCgiIiJcCisgICAg
ICAgICAgICBkZWYgdGVzdF94KG9uZSk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IG9uZSA9PSAx
CisgICAgICAgICIiIikpCisgICAgICAgIHN1YiA9IHBhY2thZ2UubWtkaXIoInN1YiIpCisgICAg
ICAgIHN1Yi5qb2luKCJfX2luaXRfXy5weSIpLmVuc3VyZSgpCisgICAgICAgIHN1Yi5qb2luKCJj
b25mdGVzdC5weSIpLndyaXRlKGRlZGVudCgiIiJcCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBvbmUoKToKKyAg
ICAgICAgICAgICAgICByZXR1cm4gMgorICAgICAgICAiIiIpKQorICAgICAgICBzdWIuam9pbigi
dGVzdF95LnB5Iikud3JpdGUoZGVkZW50KCIiIlwKKyAgICAgICAgICAgIGRlZiB0ZXN0X3gob25l
KToKKyAgICAgICAgICAgICAgICBhc3NlcnQgb25lID09IDIKKyAgICAgICAgIiIiKSkKKyAgICAg
ICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91
dGNvbWUocGFzc2VkPTIpCisgICAgICAgIHdpdGggcnVubmVyLmFzX2N3ZCgpOgorICAgICAgICAg
ICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCIuLiIpCisgICAgICAgICAgICByZXByZWMu
YXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKKworCitjbGFzcyBUZXN0QXV0b3VzZURpc2NvdmVyeShv
YmplY3QpOgorCisgICAgQHB5dGVzdC5maXh0dXJlCisgICAgZGVmIHRlc3RkaXIoc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAg
ICAgICAgICAgIGRlZiBwZXJmdW5jdGlvbihyZXF1ZXN0LCB0bXBkaXIpOgorICAgICAgICAgICAg
ICAgIHBhc3MKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkKKyAgICAgICAgICAgIGRl
ZiBhcmcxKHRtcGRpcik6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgQHB5dGVz
dC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBwZXJmdW5jdGlvbjIoYXJn
MSk6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUK
KyAgICAgICAgICAgIGRlZiBmbShyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVx
dWVzdC5fZml4dHVyZW1hbmFnZXIKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAg
ICAgICAgICBkZWYgaXRlbShyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVz
dC5fcHlmdW5jaXRlbQorICAgICAgICAiIiIpCisgICAgICAgIHJldHVybiB0ZXN0ZGlyCisKKyAg
ICBkZWYgdGVzdF9wYXJzZWZhY3Rvcmllc19jb25mdGVzdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZnJvbSBfcHl0ZXN0LnB5dGVz
dGVyIGltcG9ydCBnZXRfcHVibGljX25hbWVzCisgICAgICAgICAgICBkZWYgdGVzdF9jaGVja19z
ZXR1cChpdGVtLCBmbSk6CisgICAgICAgICAgICAgICAgYXV0b3VzZW5hbWVzID0gZm0uX2dldGF1
dG91c2VuYW1lcyhpdGVtLm5vZGVpZCkKKyAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKGdldF9w
dWJsaWNfbmFtZXMoYXV0b3VzZW5hbWVzKSkgPT0gMgorICAgICAgICAgICAgICAgIGFzc2VydCAi
cGVyZnVuY3Rpb24yIiBpbiBhdXRvdXNlbmFtZXMKKyAgICAgICAgICAgICAgICBhc3NlcnQgInBl
cmZ1bmN0aW9uIiBpbiBhdXRvdXNlbmFtZXMKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMg
PSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1zIikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUo
cGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF90d29fY2xhc3Nlc19zZXBhcmF0ZWRfYXV0b3VzZShz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgY2xhc3MgVGVzdEEob2JqZWN0KToKKyAgICAg
ICAgICAgICAgICB2YWx1ZXMgPSBbXQorICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShh
dXRvdXNlPVRydWUpCisgICAgICAgICAgICAgICAgZGVmIHNldHVwMShzZWxmKToKKyAgICAgICAg
ICAgICAgICAgICAgc2VsZi52YWx1ZXMuYXBwZW5kKDEpCisgICAgICAgICAgICAgICAgZGVmIHRl
c3Rfc2V0dXAxKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgc2VsZi52YWx1ZXMg
PT0gWzFdCisgICAgICAgICAgICBjbGFzcyBUZXN0QihvYmplY3QpOgorICAgICAgICAgICAgICAg
IHZhbHVlcyA9IFtdCisgICAgICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1
ZSkKKyAgICAgICAgICAgICAgICBkZWYgc2V0dXAyKHNlbGYpOgorICAgICAgICAgICAgICAgICAg
ICBzZWxmLnZhbHVlcy5hcHBlbmQoMSkKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9zZXR1cDIo
c2VsZik6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBzZWxmLnZhbHVlcyA9PSBbMV0KKyAg
ICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAg
ICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKKworICAgIGRlZiB0ZXN0X3NldHVwX2F0
X2NsYXNzbGV2ZWwoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgi
IiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFz
cyhvYmplY3QpOgorICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUp
CisgICAgICAgICAgICAgICAgZGVmIHBlcm1ldGhvZChzZWxmLCByZXF1ZXN0KToKKyAgICAgICAg
ICAgICAgICAgICAgcmVxdWVzdC5pbnN0YW5jZS5mdW5jbmFtZSA9IHJlcXVlc3QuZnVuY3Rpb24u
X19uYW1lX18KKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9tZXRob2QxKHNlbGYpOgorICAgICAg
ICAgICAgICAgICAgICBhc3NlcnQgc2VsZi5mdW5jbmFtZSA9PSAidGVzdF9tZXRob2QxIgorICAg
ICAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhvZDIoc2VsZik6CisgICAgICAgICAgICAgICAgICAg
IGFzc2VydCBzZWxmLmZ1bmNuYW1lID09ICJ0ZXN0X21ldGhvZDIiCisgICAgICAgICIiIikKKyAg
ICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItcyIpCisgICAgICAgIHJlcHJlYy5h
c3NlcnRvdXRjb21lKHBhc3NlZD0yKQorCisgICAgQHB5dGVzdC5tYXJrLnhmYWlsKHJlYXNvbj0i
J2VuYWJsZWQnIGZlYXR1cmUgbm90IGltcGxlbWVudGVkIikKKyAgICBkZWYgdGVzdF9zZXR1cF9l
bmFibGVkX2Z1bmN0aW9ubm9kZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtl
cHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBkZWYg
ZW5hYmxlZChwYXJlbnRub2RlLCBtYXJrZXJzKToKKyAgICAgICAgICAgICAgICByZXR1cm4gIm5l
ZWRzZGIiIGluIG1hcmtlcnMKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1b
MSwyXSkKKyAgICAgICAgICAgIGRlZiBkYihyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1
cm4gcmVxdWVzdC5wYXJhbQorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoZW5hYmxlZD1l
bmFibGVkLCBhdXRvdXNlPVRydWUpCisgICAgICAgICAgICBkZWYgY3JlYXRlZGIoZGIpOgorICAg
ICAgICAgICAgICAgIHBhc3MKKworICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzEocmVxdWVzdCk6
CisgICAgICAgICAgICAgICAgYXNzZXJ0ICJkYiIgbm90IGluIHJlcXVlc3QuZml4dHVyZW5hbWVz
CisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5uZWVkc2RiCisgICAgICAgICAgICBkZWYgdGVz
dF9mdW5jMihyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICBhc3NlcnQgImRiIiBpbiByZXF1ZXN0
LmZpeHR1cmVuYW1lcworICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5s
aW5lX3J1bigiLXMiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKKwor
ICAgIGRlZiB0ZXN0X2NhbGxhYmxlc19ub2NvZGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIi
IgorICAgICAgICBhIGltcG9ydGVkIG1vY2suY2FsbCB3b3VsZCBicmVhayBzZXR1cC9mYWN0b3J5
IGRpc2NvdmVyeQorICAgICAgICBkdWUgdG8gaXQgYmVpbmcgY2FsbGFibGUgYW5kIF9fY29kZV9f
IG5vdCBiZWluZyBhIGNvZGUgb2JqZWN0CisgICAgICAgICIiIgorICAgICAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoIiIiCisgICAgICAgICAgIGNsYXNzIF9jYWxsKHR1cGxlKToKKyAgICAgICAgICAg
ICAgIGRlZiBfX2NhbGxfXyhzZWxmLCAqaywgKiprdyk6CisgICAgICAgICAgICAgICAgICAgcGFz
cworICAgICAgICAgICAgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIGspOgorICAgICAgICAgICAg
ICAgICAgIHJldHVybiBzZWxmCisKKyAgICAgICAgICAgY2FsbCA9IF9jYWxsKCkKKyAgICAgICAg
IiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1zIikKKyAgICAgICAg
cmVwcmVjLmFzc2VydG91dGNvbWUoZmFpbGVkPTAsIHBhc3NlZD0wKQorCisgICAgZGVmIHRlc3Rf
YXV0b3VzZV9pbl9jb25mdGVzdHMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIGEgPSB0ZXN0ZGly
Lm1rZGlyKCJhIikKKyAgICAgICAgYiA9IHRlc3RkaXIubWtkaXIoImExIikKKyAgICAgICAgY29u
ZnRlc3QgPSB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUpCisgICAgICAgICAg
ICBkZWYgaGVsbG8oKToKKyAgICAgICAgICAgICAgICB4eHgKKyAgICAgICAgIiIiKQorICAgICAg
ICBjb25mdGVzdC5tb3ZlKGEuam9pbihjb25mdGVzdC5iYXNlbmFtZSkpCisgICAgICAgIGEuam9p
bigidGVzdF9zb21ldGhpbmcucHkiKS53cml0ZSgiZGVmIHRlc3RfZnVuYygpOiBwYXNzIikKKyAg
ICAgICAgYi5qb2luKCJ0ZXN0X290aGVydGhpbmcucHkiKS53cml0ZSgiZGVmIHRlc3RfZnVuYygp
OiBwYXNzIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAgICAgICAqMSBwYXNzZWQqMSBl
cnJvcioKKyAgICAgICAgIiIiKQorCisgICAgZGVmIHRlc3RfYXV0b3VzZV9pbl9tb2R1bGVfYW5k
X3R3b19jbGFzc2VzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
IiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICB2YWx1ZXMgPSBbXQor
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRl
ZiBhcHBlbmQxKCk6CisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgibW9kdWxlIikKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X3goKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09
IFsibW9kdWxlIl0KKworICAgICAgICAgICAgY2xhc3MgVGVzdEEob2JqZWN0KToKKyAgICAgICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgICAgIGRl
ZiBhcHBlbmQyKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJBIikK
KyAgICAgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhzZWxmKToKKyAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0IHZhbHVlcyA9PSBbIm1vZHVsZSIsICJtb2R1bGUiLCAiQSJdLCB2YWx1ZXMKKyAg
ICAgICAgICAgIGNsYXNzIFRlc3RBMihvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0
X3dvcmxkKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsibW9k
dWxlIiwgIm1vZHVsZSIsICJBIiwgIm1vZHVsZSJdLCB2YWx1ZXMKKyAgICAgICAgIiIiKQorICAg
ICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0
b3V0Y29tZShwYXNzZWQ9MykKKworCitjbGFzcyBUZXN0QXV0b3VzZU1hbmFnZW1lbnQob2JqZWN0
KToKKyAgICBkZWYgdGVzdF9hdXRvdXNlX2NvbmZ0ZXN0X21pZF9kaXJlY3Rvcnkoc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHBrZ2RpciA9IHRlc3RkaXIubWtweWRpcigieHl6MTIzIikKKyAgICAg
ICAgcGtnZGlyLmpvaW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoX3B5dGVzdC5fY29kZS5Tb3VyY2Uo
IiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUoYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgZGVmIGFwcCgpOgorICAgICAgICAgICAgICAg
IGltcG9ydCBzeXMKKyAgICAgICAgICAgICAgICBzeXMuX215YXBwID0gImhlbGxvIgorICAgICAg
ICAiIiIpKQorICAgICAgICB0ID0gcGtnZGlyLmVuc3VyZSgidGVzdHMiLCAidGVzdF9hcHAucHki
KQorICAgICAgICB0LndyaXRlKF9weXRlc3QuX2NvZGUuU291cmNlKCIiIgorICAgICAgICAgICAg
aW1wb3J0IHN5cworICAgICAgICAgICAgZGVmIHRlc3RfYXBwKCk6CisgICAgICAgICAgICAgICAg
YXNzZXJ0IHN5cy5fbXlhcHAgPT0gImhlbGxvIgorICAgICAgICAiIiIpKQorICAgICAgICByZXBy
ZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1zIikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNv
bWUocGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF9hdXRvdXNlX2hvbm9yZWRfZm9yX3lpZWxkKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVl
KQorICAgICAgICAgICAgZGVmIHRzdCgpOgorICAgICAgICAgICAgICAgIGdsb2JhbCB4CisgICAg
ICAgICAgICAgICAgeCA9IDMKKyAgICAgICAgICAgIGRlZiB0ZXN0X2dlbigpOgorICAgICAgICAg
ICAgICAgIGRlZiBmKGhlbGxvKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHggPT0gYWJz
KGhlbGxvKQorICAgICAgICAgICAgICAgIHlpZWxkIGYsIDMKKyAgICAgICAgICAgICAgICB5aWVs
ZCBmLCAtMworICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1
bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0yKQorCisgICAgZGVmIHRl
c3RfZnVuY2FyZ19hbmRfc2V0dXAoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIHZhbHVl
cyA9IFtdCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIpCisgICAg
ICAgICAgICBkZWYgYXJnKCk6CisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgxKQorICAg
ICAgICAgICAgICAgIHJldHVybiAwCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9
Im1vZHVsZSIsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBzb21ldGhpbmcoYXJnKToK
KyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKDIpCisKKyAgICAgICAgICAgIGRlZiB0ZXN0
X2hlbGxvKGFyZyk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDIKKyAg
ICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsxLDJdCisgICAgICAgICAgICAgICAgYXNz
ZXJ0IGFyZyA9PSAwCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvMihhcmcpOgorICAgICAg
ICAgICAgICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSAyCisgICAgICAgICAgICAgICAgYXNzZXJ0
IHZhbHVlcyA9PSBbMSwyXQorICAgICAgICAgICAgICAgIGFzc2VydCBhcmcgPT0gMAorICAgICAg
ICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJl
cHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0yKQorCisgICAgZGVmIHRlc3RfdXNlc19wYXJhbWV0
cml6ZWRfcmVzb3VyY2Uoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIHZhbHVlcyA9IFtd
CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsxLDJdKQorICAgICAgICAgICAg
ZGVmIGFyZyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQor
CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAg
ZGVmIHNvbWV0aGluZyhhcmcpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoYXJnKQor
CisgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbygpOgorICAgICAgICAgICAgICAgIGlmIGxlbih2
YWx1ZXMpID09IDE6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzFdCisg
ICAgICAgICAgICAgICAgZWxpZiBsZW4odmFsdWVzKSA9PSAyOgorICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQgdmFsdWVzID09IFsxLCAyXQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgICAgIDAvMAorCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRp
ci5pbmxpbmVfcnVuKCItcyIpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0y
KQorCisgICAgZGVmIHRlc3Rfc2Vzc2lvbl9wYXJhbWV0cml6ZWRfZnVuY3Rpb24oc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKKworICAgICAgICAgICAgdmFsdWVzID0gW10KKworICAgICAgICAgICAgQHB5dGVz
dC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIiwgcGFyYW1zPVsxLDJdKQorICAgICAgICAgICAgZGVm
IGFyZyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0iZnVuY3Rpb24iLCBhdXRvdXNlPVRydWUp
CisgICAgICAgICAgICBkZWYgYXBwZW5kKHJlcXVlc3QsIGFyZyk6CisgICAgICAgICAgICAgICAg
aWYgcmVxdWVzdC5mdW5jdGlvbi5fX25hbWVfXyA9PSAidGVzdF9zb21lIjoKKyAgICAgICAgICAg
ICAgICAgICAgdmFsdWVzLmFwcGVuZChhcmcpCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X3NvbWUo
KToKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X3Jlc3VsdChh
cmcpOgorICAgICAgICAgICAgICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSBhcmcKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgdmFsdWVzWzphcmddID09IFsxLDJdWzphcmddCisgICAgICAgICIiIikK
KyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItdiIsICItcyIpCisgICAgICAg
IHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD00KQorCisgICAgZGVmIHRlc3RfY2xhc3NfZnVu
Y3Rpb25fcGFyYW1ldHJpemF0aW9uX2ZpbmFsaXphdGlvbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgcCA9IHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAorICAgICAgICAgICAgaW1wb3J0IHBwcmludAorCisgICAgICAgICAgICB2YWx1ZXMgPSBbXQor
CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImZ1bmN0aW9uIiwgcGFyYW1zPVsx
LDJdKQorICAgICAgICAgICAgZGVmIGZhcmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0
dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJj
bGFzcyIsIHBhcmFtcz1saXN0KCJhYiIpKQorICAgICAgICAgICAgZGVmIGNhcmcocmVxdWVzdCk6
CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAgICAgICAgQHB5
dGVzdC5maXh0dXJlKHNjb3BlPSJmdW5jdGlvbiIsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAg
IGRlZiBhcHBlbmQocmVxdWVzdCwgZmFyZywgY2FyZyk6CisgICAgICAgICAgICAgICAgZGVmIGZp
bigpOgorICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJmaW5fJXMlcyIgJSAoY2Fy
ZywgZmFyZykpCisgICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoZmluKQorICAg
ICAgICAiIiIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGlt
cG9ydCBweXRlc3QKKworICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAg
ICAgICAgICAgICAgZGVmIHRlc3RfMShzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcwor
ICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzMihvYmplY3QpOgorICAgICAgICAgICAgICAgIGRl
ZiB0ZXN0XzIoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQor
ICAgICAgICBjb25mY3V0ID0gIi0tY29uZmN1dGRpcj17MH0iLmZvcm1hdCh0ZXN0ZGlyLnRtcGRp
cikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItdiIsICItcyIsIGNvbmZj
dXQpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD04KQorICAgICAgICBjb25m
aWcgPSByZXByZWMuZ2V0Y2FsbHMoInB5dGVzdF91bmNvbmZpZ3VyZSIpWzBdLmNvbmZpZworICAg
ICAgICB2YWx1ZXMgPSBjb25maWcucGx1Z2lubWFuYWdlci5fZ2V0Y29uZnRlc3Rtb2R1bGVzKHAp
WzBdLnZhbHVlcworICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsiZmluX2ExIiwgImZpbl9hMiIs
ICJmaW5fYjEiLCAiZmluX2IyIl0gKiAyCisKKyAgICBkZWYgdGVzdF9zY29wZV9vcmRlcmluZyhz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZShzY29wZT0iZnVuY3Rpb24iLCBhdXRvdXNlPVRydWUpCisgICAgICAgICAg
ICBkZWYgZmFwcGVuZDIoKToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKDIpCisgICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImNsYXNzIiwgYXV0b3VzZT1UcnVlKQorICAg
ICAgICAgICAgZGVmIGNsYXNzYXBwZW5kMygpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBl
bmQoMykKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIiwgYXV0b3Vz
ZT1UcnVlKQorICAgICAgICAgICAgZGVmIG1hcHBlbmQoKToKKyAgICAgICAgICAgICAgICB2YWx1
ZXMuYXBwZW5kKDEpCisKKyAgICAgICAgICAgIGNsYXNzIFRlc3RIYWxsbyhvYmplY3QpOgorICAg
ICAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhvZChzZWxmKToKKyAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0IHZhbHVlcyA9PSBbMSwzLDJdCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0g
dGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2Vk
PTEpCisKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6YXRpb25fc2V0dXBfdGVhcmRvd25fb3JkZXJp
bmcoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAgICAg
ICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAgICAgICAgICBp
ZiBtZXRhZnVuYy5jbHMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIG1ldGFmdW5j
LnBhcmFtZXRyaXplKCJpdGVtIiwgWzEsMl0sIHNjb3BlPSJjbGFzcyIpCisgICAgICAgICAgICBj
bGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUo
c2NvcGU9ImNsYXNzIiwgYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgICAgIGRlZiBhZGR0ZWFy
ZG93bihzZWxmLCBpdGVtLCByZXF1ZXN0KToKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmFw
cGVuZCgic2V0dXAtJWQiICUgaXRlbSkKKyAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRm
aW5hbGl6ZXIobGFtYmRhOiB2YWx1ZXMuYXBwZW5kKCJ0ZWFyZG93bi0lZCIgJSBpdGVtKSkKKyAg
ICAgICAgICAgICAgICBkZWYgdGVzdF9zdGVwMShzZWxmLCBpdGVtKToKKyAgICAgICAgICAgICAg
ICAgICAgdmFsdWVzLmFwcGVuZCgic3RlcDEtJWQiICUgaXRlbSkKKyAgICAgICAgICAgICAgICBk
ZWYgdGVzdF9zdGVwMihzZWxmLCBpdGVtKToKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmFw
cGVuZCgic3RlcDItJWQiICUgaXRlbSkKKworICAgICAgICAgICAgZGVmIHRlc3RfZmluaXNoKCk6
CisgICAgICAgICAgICAgICAgcHJpbnQgKHZhbHVlcykKKyAgICAgICAgICAgICAgICBhc3NlcnQg
dmFsdWVzID09IFsic2V0dXAtMSIsICJzdGVwMS0xIiwgInN0ZXAyLTEiLCAidGVhcmRvd24tMSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZXR1cC0yIiwgInN0ZXAxLTIiLCAic3Rl
cDItMiIsICJ0ZWFyZG93bi0yIixdCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVz
dGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTUp
CisKKyAgICBkZWYgdGVzdF9vcmRlcmluZ19hdXRvdXNlX2JlZm9yZV9leHBsaWNpdChzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorCisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorICAgICAgICAgICAgQHB5dGVz
dC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBmaXgxKCk6CisgICAgICAg
ICAgICAgICAgdmFsdWVzLmFwcGVuZCgxKQorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkK
KyAgICAgICAgICAgIGRlZiBhcmcxKCk6CisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgy
KQorICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oYXJnMSk6CisgICAgICAgICAgICAgICAgYXNz
ZXJ0IHZhbHVlcyA9PSBbMSwyXQorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3Rk
aXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQor
CisgICAgQHB5dGVzdC5tYXJrLmlzc3VlMjI2CisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJwYXJhbTEiLCBbIiIsICJwYXJhbXM9WzFdIl0sIGlkcz1bInAwMCIsICJwMDEiXSkKKyAgICBA
cHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInBhcmFtMiIsIFsiIiwgInBhcmFtcz1bMV0iXSwgaWRz
PVsicDEwIiwgInAxMSJdKQorICAgIGRlZiB0ZXN0X29yZGVyaW5nX2RlcGVuZGVuY2llc190b3Ju
ZG93bl9maXJzdChzZWxmLCB0ZXN0ZGlyLCBwYXJhbTEsIHBhcmFtMik6CisgICAgICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAg
IHZhbHVlcyA9IFtdCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoJShwYXJhbTEpcykKKyAg
ICAgICAgICAgIGRlZiBhcmcxKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRk
ZmluYWxpemVyKGxhbWJkYTogdmFsdWVzLmFwcGVuZCgiZmluMSIpKQorICAgICAgICAgICAgICAg
IHZhbHVlcy5hcHBlbmQoIm5ldzEiKQorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKCUocGFy
YW0yKXMpCisgICAgICAgICAgICBkZWYgYXJnMihyZXF1ZXN0LCBhcmcxKToKKyAgICAgICAgICAg
ICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6IHZhbHVlcy5hcHBlbmQoImZpbjIiKSkK
KyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKCJuZXcyIikKKworICAgICAgICAgICAgZGVm
IHRlc3RfYXJnKGFyZzIpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiB0
ZXN0X2NoZWNrKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbIm5ldzEiLCAi
bmV3MiIsICJmaW4yIiwgImZpbjEiXQorICAgICAgICAiIiIgJSBsb2NhbHMoKSkKKyAgICAgICAg
cmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItcyIpCisgICAgICAgIHJlcHJlYy5hc3NlcnRv
dXRjb21lKHBhc3NlZD0yKQorCisKK2NsYXNzIFRlc3RGaXh0dXJlTWFya2VyKG9iamVjdCk6Cisg
ICAgZGVmIHRlc3RfcGFyYW1ldHJpemUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZShwYXJhbXM9WyJhIiwgImIiLCAiYyJdKQorICAgICAgICAgICAgZGVmIGFy
ZyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorICAgICAg
ICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgIGRlZiB0ZXN0X3BhcmFtKGFyZyk6CisgICAg
ICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChhcmcpCisgICAgICAgICAgICBkZWYgdGVzdF9yZXN1
bHQoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IGxpc3QoImFiYyIpCisgICAg
ICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAg
cmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTQpCisKKyAgICBkZWYgdGVzdF9tdWx0aXBsZV9w
YXJhbWV0cml6YXRpb25faXNzdWVfNzM2KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZShwYXJhbXM9WzEsMiwzXSkKKyAgICAgICAgICAgIGRlZiBmb28ocmVx
dWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAgICAg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdmb29iYXInLCBbNCw1LDZdKQorICAgICAgICAg
ICAgZGVmIHRlc3RfaXNzdWUoZm9vLCBmb29iYXIpOgorICAgICAgICAgICAgICAgIGFzc2VydCBm
b28gaW4gWzEsMiwzXQorICAgICAgICAgICAgICAgIGFzc2VydCBmb29iYXIgaW4gWzQsNSw2XQor
ICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAg
ICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD05KQorCisgICAgQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCdwYXJhbV9hcmdzJywgWyInZml4dCwgdmFsJyIsICInZml4dCx2YWwnIiwgIlsn
Zml4dCcsICd2YWwnXSIsICIoJ2ZpeHQnLCAndmFsJykiXSkKKyAgICBkZWYgdGVzdF9vdmVycmlk
ZV9wYXJhbWV0cml6ZWRfZml4dHVyZV9pc3N1ZV85Nzkoc2VsZiwgdGVzdGRpciwgcGFyYW1fYXJn
cyk6CisgICAgICAgICIiIk1ha2Ugc3VyZSBhIHBhcmFtZXRyaXplZCBhcmd1bWVudCBjYW4gb3Zl
cnJpZGUgYSBwYXJhbWV0cml6ZWQgZml4dHVyZS4KKworICAgICAgICBUaGlzIHdhcyBhIHJlZ3Jl
c3Npb24gaW50cm9kdWNlZCBpbiB0aGUgZml4IGZvciAjNzM2LgorICAgICAgICAiIiIKKyAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisg
ICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsxLCAyXSkKKyAgICAgICAgICAgIGRl
ZiBmaXh0KHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisK
KyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSglcywgWygzLCAneCcpLCAoNCwg
J3gnKV0pCisgICAgICAgICAgICBkZWYgdGVzdF9mb28oZml4dCwgdmFsKToKKyAgICAgICAgICAg
ICAgICBwYXNzCisgICAgICAgICIiIiAlIHBhcmFtX2FyZ3MpCisgICAgICAgIHJlcHJlYyA9IHRl
c3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0y
KQorCisgICAgZGVmIHRlc3Rfc2NvcGVfc2Vzc2lvbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAg
ICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9k
dWxlIikKKyAgICAgICAgICAgIGRlZiBhcmcoKToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBw
ZW5kKDEpCisgICAgICAgICAgICAgICAgcmV0dXJuIDEKKworICAgICAgICAgICAgZGVmIHRlc3Rf
MShhcmcpOgorICAgICAgICAgICAgICAgIGFzc2VydCBhcmcgPT0gMQorICAgICAgICAgICAgZGVm
IHRlc3RfMihhcmcpOgorICAgICAgICAgICAgICAgIGFzc2VydCBhcmcgPT0gMQorICAgICAgICAg
ICAgICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSAxCisgICAgICAgICAgICBjbGFzcyBUZXN0Q2xh
c3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdDMoc2VsZiwgYXJnKToKKyAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0IGFyZyA9PSAxCisgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dCBsZW4odmFsdWVzKSA9PSAxCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRp
ci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTMpCisK
KyAgICBkZWYgdGVzdF9zY29wZV9zZXNzaW9uX2V4YyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAg
ICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ic2Vz
c2lvbiIpCisgICAgICAgICAgICBkZWYgZml4KCk6CisgICAgICAgICAgICAgICAgdmFsdWVzLmFw
cGVuZCgxKQorICAgICAgICAgICAgICAgIHB5dGVzdC5za2lwKCdza2lwcGluZycpCisKKyAgICAg
ICAgICAgIGRlZiB0ZXN0XzEoZml4KToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAg
ICBkZWYgdGVzdF8yKGZpeCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVm
IHRlc3RfbGFzdCgpOgorICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzFdCisgICAg
ICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAg
cmVwcmVjLmFzc2VydG91dGNvbWUoc2tpcHBlZD0yLCBwYXNzZWQ9MSkKKworICAgIGRlZiB0ZXN0
X3Njb3BlX3Nlc3Npb25fZXhjX3R3b19maXgoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAg
IHZhbHVlcyA9IFtdCisgICAgICAgICAgICBtID0gW10KKyAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZShzY29wZT0ic2Vzc2lvbiIpCisgICAgICAgICAgICBkZWYgYSgpOgorICAgICAgICAgICAg
ICAgIHZhbHVlcy5hcHBlbmQoMSkKKyAgICAgICAgICAgICAgICBweXRlc3Quc2tpcCgnc2tpcHBp
bmcnKQorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIikKKyAgICAg
ICAgICAgIGRlZiBiKGEpOgorICAgICAgICAgICAgICAgIG0uYXBwZW5kKDEpCisKKyAgICAgICAg
ICAgIGRlZiB0ZXN0XzEoYik6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVm
IHRlc3RfMihiKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF9s
YXN0KCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbMV0KKyAgICAgICAgICAg
ICAgICBhc3NlcnQgbSA9PSBbXQorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3Rk
aXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHNraXBwZWQ9Miwg
cGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF9zY29wZV9leGMoc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgIHRlc3RfZm9vPSIiIgorICAgICAg
ICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhmaXgpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisg
ICAgICAgICAgICAiIiIsCisgICAgICAgICAgICB0ZXN0X2Jhcj0iIiIKKyAgICAgICAgICAgICAg
ICBkZWYgdGVzdF9iYXIoZml4KToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAg
ICAgIiIiLAorICAgICAgICAgICAgY29uZnRlc3Q9IiIiCisgICAgICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAorICAgICAgICAgICAgICAgIHJlcXMgPSBbXQorICAgICAgICAgICAgICAgIEBweXRl
c3QuZml4dHVyZShzY29wZT0ic2Vzc2lvbiIpCisgICAgICAgICAgICAgICAgZGVmIGZpeChyZXF1
ZXN0KToKKyAgICAgICAgICAgICAgICAgICAgcmVxcy5hcHBlbmQoMSkKKyAgICAgICAgICAgICAg
ICAgICAgcHl0ZXN0LnNraXAoKQorICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAg
ICAgICAgICAgICAgIGRlZiByZXFfbGlzdCgpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
cmVxcworICAgICAgICAgICAgIiIiLAorICAgICAgICAgICAgdGVzdF9yZWFsPSIiIgorICAgICAg
ICAgICAgICAgIGRlZiB0ZXN0X2xhc3QocmVxX2xpc3QpOgorICAgICAgICAgICAgICAgICAgICBh
c3NlcnQgcmVxX2xpc3QgPT0gWzFdCisgICAgICAgICAgICAiIiIKKyAgICAgICAgKQorICAgICAg
ICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0
Y29tZShza2lwcGVkPTIsIHBhc3NlZD0xKQorCisgICAgZGVmIHRlc3Rfc2NvcGVfbW9kdWxlX3Vz
ZXNfc2Vzc2lvbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIi
IgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgdmFsdWVzID0gW10KKyAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIikKKyAgICAgICAgICAgIGRl
ZiBhcmcoKToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKDEpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIDEKKworICAgICAgICAgICAgZGVmIHRlc3RfMShhcmcpOgorICAgICAgICAgICAg
ICAgIGFzc2VydCBhcmcgPT0gMQorICAgICAgICAgICAgZGVmIHRlc3RfMihhcmcpOgorICAgICAg
ICAgICAgICAgIGFzc2VydCBhcmcgPT0gMQorICAgICAgICAgICAgICAgIGFzc2VydCBsZW4odmFs
dWVzKSA9PSAxCisgICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAg
ICAgICAgICBkZWYgdGVzdDMoc2VsZiwgYXJnKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
IGFyZyA9PSAxCisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSAxCisg
ICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAg
ICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTMpCisKKyAgICBkZWYgdGVzdF9zY29wZV9t
b2R1bGVfYW5kX2ZpbmFsaXplcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtl
Y29uZnRlc3QoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBmaW5h
bGl6ZWRfbGlzdCA9IFtdCisgICAgICAgICAgICBjcmVhdGVkX2xpc3QgPSBbXQorICAgICAgICAg
ICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiKQorICAgICAgICAgICAgZGVmIGFyZyhy
ZXF1ZXN0KToKKyAgICAgICAgICAgICAgICBjcmVhdGVkX2xpc3QuYXBwZW5kKDEpCisgICAgICAg
ICAgICAgICAgYXNzZXJ0IHJlcXVlc3Quc2NvcGUgPT0gIm1vZHVsZSIKKyAgICAgICAgICAgICAg
ICByZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6IGZpbmFsaXplZF9saXN0LmFwcGVuZCgxKSkK
KyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGNyZWF0ZWQocmVx
dWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGxlbihjcmVhdGVkX2xpc3QpCisgICAgICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBmaW5hbGl6ZWQocmVxdWVzdCk6
CisgICAgICAgICAgICAgICAgcmV0dXJuIGxlbihmaW5hbGl6ZWRfbGlzdCkKKyAgICAgICAgIiIi
KQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAgICAgICB0ZXN0X21vZDE9IiIi
CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfMShhcmcsIGNyZWF0ZWQsIGZpbmFsaXplZCk6Cisg
ICAgICAgICAgICAgICAgICAgIGFzc2VydCBjcmVhdGVkID09IDEKKyAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0IGZpbmFsaXplZCA9PSAwCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfMihhcmcs
IGNyZWF0ZWQsIGZpbmFsaXplZCk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBjcmVhdGVk
ID09IDEKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZpbmFsaXplZCA9PSAwIiIiLAorICAg
ICAgICAgICAgdGVzdF9tb2QyPSIiIgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0XzMoYXJnLCBj
cmVhdGVkLCBmaW5hbGl6ZWQpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgY3JlYXRlZCA9
PSAyCisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBmaW5hbGl6ZWQgPT0gMSIiIiwKKyAgICAg
ICAgICAgIHRlc3RfbW9kZTM9IiIiCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfNChhcmcsIGNy
ZWF0ZWQsIGZpbmFsaXplZCk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBjcmVhdGVkID09
IDMKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGZpbmFsaXplZCA9PSAyCisgICAgICAgICAg
ICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJl
cHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD00KQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCJtZXRob2QiLCBbCisgICAgICAgICdyZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgiYXJnIikn
LAorICAgICAgICAncmVxdWVzdC5jYWNoZWRfc2V0dXAobGFtYmRhOiBOb25lLCBzY29wZT0iZnVu
Y3Rpb24iKScsCisgICAgXSwgaWRzPVsiZ2V0Zml4dHVyZXZhbHVlIiwgImNhY2hlZF9zZXR1cCJd
KQorICAgIGRlZiB0ZXN0X3Njb3BlX21pc21hdGNoX3ZhcmlvdXMoc2VsZiwgdGVzdGRpciwgbWV0
aG9kKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgICAgICBpbXBv
cnQgcHl0ZXN0CisgICAgICAgICAgICBmaW5hbGl6ZWQgPSBbXQorICAgICAgICAgICAgY3JlYXRl
ZCA9IFtdCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImZ1bmN0aW9uIikKKyAg
ICAgICAgICAgIGRlZiBhcmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAg
ICAiIiIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAgIHRlc3RfbW9k
MT0iIiIKKyAgICAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICAgICAgQHB5
dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIikKKyAgICAgICAgICAgICAgICBkZWYgYXJnKHJl
cXVlc3QpOgorICAgICAgICAgICAgICAgICAgICAlcworICAgICAgICAgICAgICAgIGRlZiB0ZXN0
XzEoYXJnKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgIiIiICUgbWV0
aG9kKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIGFzc2Vy
dCByZXN1bHQucmV0ICE9IDAKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsK
KyAgICAgICAgICAgICIqU2NvcGVNaXNtYXRjaCpZb3UgdHJpZWQqZnVuY3Rpb24qc2Vzc2lvbipy
ZXF1ZXN0KiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9yZWdpc3Rlcl9vbmx5X3dpdGhf
bWFyayhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoKQor
ICAgICAgICAgICAgZGVmIGFyZygpOgorICAgICAgICAgICAgICAgIHJldHVybiAxCisgICAgICAg
ICIiIikKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICAgICAgdGVzdF9tb2Qx
PSIiIgorICAgICAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUoKQorICAgICAgICAgICAgICAgIGRlZiBhcmcoYXJnKToKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGFyZyArIDEKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF8xKGFyZyk6
CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBhcmcgPT0gMgorICAgICAgICAgICAgIiIiKQor
ICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNz
ZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX2FuZF9zY29w
ZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJt
b2R1bGUiLCBwYXJhbXM9WyJhIiwgImIiLCAiYyJdKQorICAgICAgICAgICAgZGVmIGFyZyhyZXF1
ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorICAgICAgICAgICAg
dmFsdWVzID0gW10KKyAgICAgICAgICAgIGRlZiB0ZXN0X3BhcmFtKGFyZyk6CisgICAgICAgICAg
ICAgICAgdmFsdWVzLmFwcGVuZChhcmcpCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0g
dGVzdGRpci5pbmxpbmVfcnVuKCItdiIpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBh
c3NlZD0zKQorICAgICAgICB2YWx1ZXMgPSByZXByZWMuZ2V0Y2FsbHMoInB5dGVzdF9ydW50ZXN0
X2NhbGwiKVswXS5pdGVtLm1vZHVsZS52YWx1ZXMKKyAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMp
ID09IDMKKyAgICAgICAgYXNzZXJ0ICJhIiBpbiB2YWx1ZXMKKyAgICAgICAgYXNzZXJ0ICJiIiBp
biB2YWx1ZXMKKyAgICAgICAgYXNzZXJ0ICJjIiBpbiB2YWx1ZXMKKworICAgIGRlZiB0ZXN0X3Nj
b3BlX21pc21hdGNoKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVz
dCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZShzY29wZT0iZnVuY3Rpb24iKQorICAgICAgICAgICAgZGVmIGFyZyhyZXF1ZXN0KToKKyAg
ICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5m
aXh0dXJlKHNjb3BlPSJzZXNzaW9uIikKKyAgICAgICAgICAgIGRlZiBhcmcoYXJnKToKKyAgICAg
ICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF9taXNtYXRjaChhcmcpOgorICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAg
ICAgICAgICAiKlNjb3BlTWlzbWF0Y2gqIiwKKyAgICAgICAgICAgICIqMSBlcnJvcioiLAorICAg
ICAgICBdKQorCisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfc2VwYXJhdGVkX29yZGVyKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxl
IiwgcGFyYW1zPVsxLCAyXSkKKyAgICAgICAgICAgIGRlZiBhcmcocmVxdWVzdCk6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAgICAgICAgdmFsdWVzID0gW10K
KyAgICAgICAgICAgIGRlZiB0ZXN0XzEoYXJnKToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBw
ZW5kKGFyZykKKyAgICAgICAgICAgIGRlZiB0ZXN0XzIoYXJnKToKKyAgICAgICAgICAgICAgICB2
YWx1ZXMuYXBwZW5kKGFyZykKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGly
LmlubGluZV9ydW4oIi12IikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTQp
CisgICAgICAgIHZhbHVlcyA9IHJlcHJlYy5nZXRjYWxscygicHl0ZXN0X3J1bnRlc3RfY2FsbCIp
WzBdLml0ZW0ubW9kdWxlLnZhbHVlcworICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsxLCAxLCAy
LCAyXQorCisgICAgZGVmIHRlc3RfbW9kdWxlX3BhcmFtZXRyaXplZF9vcmRlcmluZyhzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlaW5pKCIiIgorICAgICAgICAgICAgW3B5dGVz
dF0KKyAgICAgICAgICAgIGNvbnNvbGVfb3V0cHV0X3N0eWxlPWNsYXNzaWMKKyAgICAgICAgIiIi
KQorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBw
eXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIiwgcGFy
YW1zPSJzMSBzMiIuc3BsaXQoKSkKKyAgICAgICAgICAgIGRlZiBzYXJnKCk6CisgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiLCBw
YXJhbXM9Im0xIG0yIi5zcGxpdCgpKQorICAgICAgICAgICAgZGVmIG1hcmcoKToKKyAgICAgICAg
ICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRl
c3RfbW9kMT0iIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoc2FyZyk6CisgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzEobWFyZyk6CisgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICAiIiIsIHRlc3RfbW9kMj0iIiIKKyAgICAgICAgICAgIGRlZiB0
ZXN0X2Z1bmMyKHNhcmcpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiB0
ZXN0X2Z1bmMzKHNhcmcsIG1hcmcpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAg
IGRlZiB0ZXN0X2Z1bmMzYihzYXJnLCBtYXJnKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICAgICBkZWYgdGVzdF9mdW5jNChtYXJnKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12IikKKyAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIiIgorICAgICAgICAgICAgdGVzdF9tb2Qx
LnB5Ojp0ZXN0X2Z1bmNbczFdIFBBU1NFRAorICAgICAgICAgICAgdGVzdF9tb2QyLnB5Ojp0ZXN0
X2Z1bmMyW3MxXSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3RfbW9kMi5weTo6dGVzdF9mdW5jM1tz
MS1tMV0gUEFTU0VECisgICAgICAgICAgICB0ZXN0X21vZDIucHk6OnRlc3RfZnVuYzNiW3MxLW0x
XSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3RfbW9kMi5weTo6dGVzdF9mdW5jM1tzMS1tMl0gUEFT
U0VECisgICAgICAgICAgICB0ZXN0X21vZDIucHk6OnRlc3RfZnVuYzNiW3MxLW0yXSBQQVNTRUQK
KyAgICAgICAgICAgIHRlc3RfbW9kMS5weTo6dGVzdF9mdW5jW3MyXSBQQVNTRUQKKyAgICAgICAg
ICAgIHRlc3RfbW9kMi5weTo6dGVzdF9mdW5jMltzMl0gUEFTU0VECisgICAgICAgICAgICB0ZXN0
X21vZDIucHk6OnRlc3RfZnVuYzNbczItbTFdIFBBU1NFRAorICAgICAgICAgICAgdGVzdF9tb2Qy
LnB5Ojp0ZXN0X2Z1bmMzYltzMi1tMV0gUEFTU0VECisgICAgICAgICAgICB0ZXN0X21vZDIucHk6
OnRlc3RfZnVuYzRbbTFdIFBBU1NFRAorICAgICAgICAgICAgdGVzdF9tb2QyLnB5Ojp0ZXN0X2Z1
bmMzW3MyLW0yXSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3RfbW9kMi5weTo6dGVzdF9mdW5jM2Jb
czItbTJdIFBBU1NFRAorICAgICAgICAgICAgdGVzdF9tb2QyLnB5Ojp0ZXN0X2Z1bmM0W20yXSBQ
QVNTRUQKKyAgICAgICAgICAgIHRlc3RfbW9kMS5weTo6dGVzdF9mdW5jMVttMV0gUEFTU0VECisg
ICAgICAgICAgICB0ZXN0X21vZDEucHk6OnRlc3RfZnVuYzFbbTJdIFBBU1NFRAorICAgICAgICAi
IiIpCisKKyAgICBkZWYgdGVzdF9jbGFzc19vcmRlcmluZyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgdGVzdGRpci5tYWtlaW5pKCIiIgorICAgICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgICAg
IGNvbnNvbGVfb3V0cHV0X3N0eWxlPWNsYXNzaWMKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0
ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAg
ICAgICAgdmFsdWVzID0gW10KKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJm
dW5jdGlvbiIsIHBhcmFtcz1bMSwyXSkKKyAgICAgICAgICAgIGRlZiBmYXJnKHJlcXVlc3QpOgor
ICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIEBweXRl
c3QuZml4dHVyZShzY29wZT0iY2xhc3MiLCBwYXJhbXM9bGlzdCgiYWIiKSkKKyAgICAgICAgICAg
IGRlZiBjYXJnKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFt
CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0iZnVuY3Rpb24iLCBhdXRvdXNl
PVRydWUpCisgICAgICAgICAgICBkZWYgYXBwZW5kKHJlcXVlc3QsIGZhcmcsIGNhcmcpOgorICAg
ICAgICAgICAgICAgIGRlZiBmaW4oKToKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVu
ZCgiZmluXyVzJXMiICUgKGNhcmcsIGZhcmcpKQorICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRk
ZmluYWxpemVyKGZpbikKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
IiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIGNsYXNzIFRlc3RD
bGFzczIob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF8xKHNlbGYpOgorICAgICAg
ICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfMihzZWxmKToKKyAg
ICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVj
dCk6CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfMyhzZWxmKToKKyAgICAgICAgICAgICAgICAg
ICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCItdnMiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAg
ICAgICB0ZXN0X2NsYXNzX29yZGVyaW5nLnB5OjpUZXN0Q2xhc3MyOjp0ZXN0XzFbMS1hXSBQQVNT
RUQKKyAgICAgICAgICAgIHRlc3RfY2xhc3Nfb3JkZXJpbmcucHk6OlRlc3RDbGFzczI6OnRlc3Rf
MVsyLWFdIFBBU1NFRAorICAgICAgICAgICAgdGVzdF9jbGFzc19vcmRlcmluZy5weTo6VGVzdENs
YXNzMjo6dGVzdF8yWzEtYV0gUEFTU0VECisgICAgICAgICAgICB0ZXN0X2NsYXNzX29yZGVyaW5n
LnB5OjpUZXN0Q2xhc3MyOjp0ZXN0XzJbMi1hXSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3RfY2xh
c3Nfb3JkZXJpbmcucHk6OlRlc3RDbGFzczI6OnRlc3RfMVsxLWJdIFBBU1NFRAorICAgICAgICAg
ICAgdGVzdF9jbGFzc19vcmRlcmluZy5weTo6VGVzdENsYXNzMjo6dGVzdF8xWzItYl0gUEFTU0VE
CisgICAgICAgICAgICB0ZXN0X2NsYXNzX29yZGVyaW5nLnB5OjpUZXN0Q2xhc3MyOjp0ZXN0XzJb
MS1iXSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3RfY2xhc3Nfb3JkZXJpbmcucHk6OlRlc3RDbGFz
czI6OnRlc3RfMlsyLWJdIFBBU1NFRAorICAgICAgICAgICAgdGVzdF9jbGFzc19vcmRlcmluZy5w
eTo6VGVzdENsYXNzOjp0ZXN0XzNbMS1hXSBQQVNTRUQKKyAgICAgICAgICAgIHRlc3RfY2xhc3Nf
b3JkZXJpbmcucHk6OlRlc3RDbGFzczo6dGVzdF8zWzItYV0gUEFTU0VECisgICAgICAgICAgICB0
ZXN0X2NsYXNzX29yZGVyaW5nLnB5OjpUZXN0Q2xhc3M6OnRlc3RfM1sxLWJdIFBBU1NFRAorICAg
ICAgICAgICAgdGVzdF9jbGFzc19vcmRlcmluZy5weTo6VGVzdENsYXNzOjp0ZXN0XzNbMi1iXSBQ
QVNTRUQKKyAgICAgICAgIiIiKQorCisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfc2VwYXJhdGVk
X29yZGVyX2hpZ2hlcl9zY29wZV9maXJzdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImZ1bmN0aW9uIiwgcGFyYW1zPVsxLCAyXSkKKyAgICAg
ICAgICAgIGRlZiBhcmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcGFyYW0gPSByZXF1ZXN0
LnBhcmFtCisgICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIobGFtYmRhOiB2YWx1
ZXMuYXBwZW5kKCJmaW46JXMiICUgcGFyYW0pKQorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBl
bmQoImNyZWF0ZTolcyIgJSBwYXJhbSkKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5w
YXJhbQorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIsIHBhcmFt
cz1bIm1vZDEiLCAibW9kMiJdKQorICAgICAgICAgICAgZGVmIG1vZGFyZyhyZXF1ZXN0KToKKyAg
ICAgICAgICAgICAgICBwYXJhbSA9IHJlcXVlc3QucGFyYW0KKyAgICAgICAgICAgICAgICByZXF1
ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6IHZhbHVlcy5hcHBlbmQoImZpbjolcyIgJSBwYXJhbSkp
CisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgiY3JlYXRlOiVzIiAlIHBhcmFtKQorICAg
ICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIHZhbHVlcyA9
IFtdCisgICAgICAgICAgICBkZWYgdGVzdF8xKGFyZyk6CisgICAgICAgICAgICAgICAgdmFsdWVz
LmFwcGVuZCgidGVzdDEiKQorICAgICAgICAgICAgZGVmIHRlc3RfMihtb2RhcmcpOgorICAgICAg
ICAgICAgICAgIHZhbHVlcy5hcHBlbmQoInRlc3QyIikKKyAgICAgICAgICAgIGRlZiB0ZXN0XzMo
YXJnLCBtb2RhcmcpOgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoInRlc3QzIikKKyAg
ICAgICAgICAgIGRlZiB0ZXN0XzQobW9kYXJnLCBhcmcpOgorICAgICAgICAgICAgICAgIHZhbHVl
cy5hcHBlbmQoInRlc3Q0IikKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGly
LmlubGluZV9ydW4oIi12IikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEy
KQorICAgICAgICB2YWx1ZXMgPSByZXByZWMuZ2V0Y2FsbHMoInB5dGVzdF9ydW50ZXN0X2NhbGwi
KVswXS5pdGVtLm1vZHVsZS52YWx1ZXMKKyAgICAgICAgZXhwZWN0ZWQgPSBbCisgICAgICAgICAg
ICAnY3JlYXRlOjEnLCAndGVzdDEnLCAnZmluOjEnLCAnY3JlYXRlOjInLCAndGVzdDEnLAorICAg
ICAgICAgICAgJ2ZpbjoyJywgJ2NyZWF0ZTptb2QxJywgJ3Rlc3QyJywgJ2NyZWF0ZToxJywgJ3Rl
c3QzJywKKyAgICAgICAgICAgICdmaW46MScsICdjcmVhdGU6MicsICd0ZXN0MycsICdmaW46Mics
ICdjcmVhdGU6MScsCisgICAgICAgICAgICAndGVzdDQnLCAnZmluOjEnLCAnY3JlYXRlOjInLCAn
dGVzdDQnLCAnZmluOjInLAorICAgICAgICAgICAgJ2Zpbjptb2QxJywgJ2NyZWF0ZTptb2QyJywg
J3Rlc3QyJywgJ2NyZWF0ZToxJywgJ3Rlc3QzJywKKyAgICAgICAgICAgICdmaW46MScsICdjcmVh
dGU6MicsICd0ZXN0MycsICdmaW46MicsICdjcmVhdGU6MScsCisgICAgICAgICAgICAndGVzdDQn
LCAnZmluOjEnLCAnY3JlYXRlOjInLCAndGVzdDQnLCAnZmluOjInLAorICAgICAgICAgICAgJ2Zp
bjptb2QyJ10KKyAgICAgICAgaW1wb3J0IHBwcmludAorICAgICAgICBwcHJpbnQucHByaW50KGxp
c3QoemlwKHZhbHVlcywgZXhwZWN0ZWQpKSkKKyAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBleHBl
Y3RlZAorCisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVkX2ZpeHR1cmVfdGVhcmRvd25fb3JkZXIo
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WzEs
Ml0sIHNjb3BlPSJjbGFzcyIpCisgICAgICAgICAgICBkZWYgcGFyYW0xKHJlcXVlc3QpOgorICAg
ICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIHZhbHVlcyA9
IFtdCisKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICAgICAg
ICAgIEBjbGFzc21ldGhvZAorICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0i
Y2xhc3MiLCBhdXRvdXNlPVRydWUpCisgICAgICAgICAgICAgICAgZGVmIHNldHVwMShzZWxmLCBy
ZXF1ZXN0LCBwYXJhbTEpOgorICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKDEpCisg
ICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhcmRvd24xKQor
ICAgICAgICAgICAgICAgIEBjbGFzc21ldGhvZAorICAgICAgICAgICAgICAgIGRlZiB0ZWFyZG93
bjEoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMucG9wKCkgPT0gMQor
ICAgICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0iY2xhc3MiLCBhdXRvdXNlPVRy
dWUpCisgICAgICAgICAgICAgICAgZGVmIHNldHVwMihzZWxmLCByZXF1ZXN0LCBwYXJhbTEpOgor
ICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKDIpCisgICAgICAgICAgICAgICAgICAg
IHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhcmRvd24yKQorICAgICAgICAgICAgICAgIEBj
bGFzc21ldGhvZAorICAgICAgICAgICAgICAgIGRlZiB0ZWFyZG93bjIoc2VsZik6CisgICAgICAg
ICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMucG9wKCkgPT0gMgorICAgICAgICAgICAgICAgIGRl
ZiB0ZXN0KHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X2ZpbmlzaCgpOgorICAgICAgICAgICAgICAgIGFzc2VydCBub3QgdmFsdWVzCisgICAg
ICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12IikKKyAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIiIgorICAgICAgICAgICAgKjMgcGFzc2Vk
KgorICAgICAgICAiIiIpCisgICAgICAgIGFzc2VydCAiZXJyb3IiIG5vdCBpbiByZXN1bHQuc3Rk
b3V0LnN0cigpCisKKyAgICBkZWYgdGVzdF9maXh0dXJlX2ZpbmFsaXplcihzZWxmLCB0ZXN0ZGly
KToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgICAgICBpbXBvcnQg
cHl0ZXN0CisgICAgICAgICAgICBpbXBvcnQgc3lzCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZQorICAgICAgICAgICAgZGVmIGJyb3dzZXIocmVxdWVzdCk6CisKKyAgICAgICAgICAgICAg
ICBkZWYgZmluYWxpemUoKToKKyAgICAgICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgn
RmluYWxpemVkJykKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihmaW5hbGl6
ZSkKKyAgICAgICAgICAgICAgICByZXR1cm4ge30KKyAgICAgICAgIiIiKQorICAgICAgICBiID0g
dGVzdGRpci5ta2Rpcigic3ViZGlyIikKKyAgICAgICAgYi5qb2luKCJ0ZXN0X292ZXJyaWRkZW5f
Zml4dHVyZV9maW5hbGl6ZXIucHkiKS53cml0ZShkZWRlbnQoIiIiCisgICAgICAgICAgICBpbXBv
cnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBi
cm93c2VyKGJyb3dzZXIpOgorICAgICAgICAgICAgICAgIGJyb3dzZXJbJ3Zpc2l0ZWQnXSA9IFRy
dWUKKyAgICAgICAgICAgICAgICByZXR1cm4gYnJvd3NlcgorCisgICAgICAgICAgICBkZWYgdGVz
dF9icm93c2VyKGJyb3dzZXIpOgorICAgICAgICAgICAgICAgIGFzc2VydCBicm93c2VyWyd2aXNp
dGVkJ10gaXMgVHJ1ZQorICAgICAgICAiIiIpKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgiLXMiKQorICAgICAgICBmb3IgdGVzdCBpbiBbJ3Rlc3RfYnJvd3NlciddOgorICAg
ICAgICAgICAgcmVwcmVjLnN0ZG91dC5mbm1hdGNoX2xpbmVzKCcqRmluYWxpemVkKicpCisKKyAg
ICBkZWYgdGVzdF9jbGFzc19zY29wZV93aXRoX25vcm1hbF90ZXN0cyhzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgdGVzdHBhdGggPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIGNsYXNzIEJveChvYmplY3QpOgorICAgICAgICAg
ICAgICAgIHZhbHVlID0gMAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J2Ns
YXNzJykKKyAgICAgICAgICAgIGRlZiBhKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIEJveC52
YWx1ZSArPSAxCisgICAgICAgICAgICAgICAgcmV0dXJuIEJveC52YWx1ZQorCisgICAgICAgICAg
ICBkZWYgdGVzdF9hKGEpOgorICAgICAgICAgICAgICAgIGFzc2VydCBhID09IDEKKworICAgICAg
ICAgICAgY2xhc3MgVGVzdDEob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9iKHNl
bGYsIGEpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgYSA9PSAyCisKKyAgICAgICAgICAg
IGNsYXNzIFRlc3QyKG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfYyhzZWxmLCBh
KToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGEgPT0gMyIiIikKKyAgICAgICAgcmVwcmVj
ID0gdGVzdGRpci5pbmxpbmVfcnVuKHRlc3RwYXRoKQorICAgICAgICBmb3IgdGVzdCBpbiBbJ3Rl
c3RfYScsICd0ZXN0X2InLCAndGVzdF9jJ106CisgICAgICAgICAgICBhc3NlcnQgcmVwcmVjLm1h
dGNocmVwb3J0KHRlc3QpLnBhc3NlZAorCisgICAgZGVmIHRlc3RfcmVxdWVzdF9pc19jbGVhbihz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgdmFsdWVzID0gW10KKyAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZShwYXJhbXM9WzEsIDJdKQorICAgICAgICAgICAgZGVmIGZpeChyZXF1ZXN0
KToKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihsYW1iZGE6IHZhbHVlcy5h
cHBlbmQocmVxdWVzdC5wYXJhbSkpCisgICAgICAgICAgICBkZWYgdGVzdF9maXgoZml4KToKKyAg
ICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRp
ci5pbmxpbmVfcnVuKCItcyIpCisgICAgICAgIHZhbHVlcyA9IHJlcHJlYy5nZXRjYWxscygicHl0
ZXN0X3J1bnRlc3RfY2FsbCIpWzBdLml0ZW0ubW9kdWxlLnZhbHVlcworICAgICAgICBhc3NlcnQg
dmFsdWVzID09IFsxLCAyXQorCisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfc2VwYXJhdGVkX2xp
ZmVjeWNsZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgor
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiLCBwYXJhbXM9WzEsIDJdKQor
ICAgICAgICAgICAgZGVmIGFyZyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICB4ID0gcmVxdWVz
dC5wYXJhbQorICAgICAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKGxhbWJkYTogdmFs
dWVzLmFwcGVuZCgiZmluJXMiICUgeCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3Qu
cGFyYW0KKyAgICAgICAgICAgIGRlZiB0ZXN0XzEoYXJnKToKKyAgICAgICAgICAgICAgICB2YWx1
ZXMuYXBwZW5kKGFyZykKKyAgICAgICAgICAgIGRlZiB0ZXN0XzIoYXJnKToKKyAgICAgICAgICAg
ICAgICB2YWx1ZXMuYXBwZW5kKGFyZykKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0
ZXN0ZGlyLmlubGluZV9ydW4oIi12cyIpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBh
c3NlZD00KQorICAgICAgICB2YWx1ZXMgPSByZXByZWMuZ2V0Y2FsbHMoInB5dGVzdF9ydW50ZXN0
X2NhbGwiKVswXS5pdGVtLm1vZHVsZS52YWx1ZXMKKyAgICAgICAgaW1wb3J0IHBwcmludAorICAg
ICAgICBwcHJpbnQucHByaW50KHZhbHVlcykKKyAgICAgICAgIyBhc3NlcnQgbGVuKHZhbHVlcykg
PT0gNgorICAgICAgICBhc3NlcnQgdmFsdWVzWzBdID09IHZhbHVlc1sxXSA9PSAxCisgICAgICAg
IGFzc2VydCB2YWx1ZXNbMl0gPT0gImZpbjEiCisgICAgICAgIGFzc2VydCB2YWx1ZXNbM10gPT0g
dmFsdWVzWzRdID09IDIKKyAgICAgICAgYXNzZXJ0IHZhbHVlc1s1XSA9PSAiZmluMiIKKworICAg
IGRlZiB0ZXN0X3BhcmFtZXRyaXplX2Z1bmN0aW9uX3Njb3BlZF9maW5hbGl6ZXJzX2NhbGxlZChz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9ImZ1
bmN0aW9uIiwgcGFyYW1zPVsxLCAyXSkKKyAgICAgICAgICAgIGRlZiBhcmcocmVxdWVzdCk6Cisg
ICAgICAgICAgICAgICAgeCA9IHJlcXVlc3QucGFyYW0KKyAgICAgICAgICAgICAgICByZXF1ZXN0
LmFkZGZpbmFsaXplcihsYW1iZGE6IHZhbHVlcy5hcHBlbmQoImZpbiVzIiAlIHgpKQorICAgICAg
ICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIHZhbHVlcyA9IFtd
CisgICAgICAgICAgICBkZWYgdGVzdF8xKGFyZyk6CisgICAgICAgICAgICAgICAgdmFsdWVzLmFw
cGVuZChhcmcpCisgICAgICAgICAgICBkZWYgdGVzdF8yKGFyZyk6CisgICAgICAgICAgICAgICAg
dmFsdWVzLmFwcGVuZChhcmcpCisgICAgICAgICAgICBkZWYgdGVzdF8zKCk6CisgICAgICAgICAg
ICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDgKKyAgICAgICAgICAgICAgICBhc3NlcnQgdmFs
dWVzID09IFsxLCAiZmluMSIsIDIsICJmaW4yIiwgMSwgImZpbjEiLCAyLCAiZmluMiJdCisgICAg
ICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItdiIpCisgICAg
ICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD01KQorCisgICAgQHB5dGVzdC5tYXJrLmlz
c3VlMjQ2CisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJzY29wZSIsIFsic2Vzc2lvbiIs
ICJmdW5jdGlvbiIsICJtb2R1bGUiXSkKKyAgICBkZWYgdGVzdF9maW5hbGl6ZXJfb3JkZXJfb25f
cGFyYW1ldHJpemF0aW9uKHNlbGYsIHNjb3BlLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5t
YWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgdmFs
dWVzID0gW10KKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSUoc2NvcGUpciwg
cGFyYW1zPVsiMSJdKQorICAgICAgICAgICAgZGVmIGZpeDEocmVxdWVzdCk6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJl
KHNjb3BlPSUoc2NvcGUpcikKKyAgICAgICAgICAgIGRlZiBmaXgyKHJlcXVlc3QsIGJhc2UpOgor
ICAgICAgICAgICAgICAgIGRlZiBjbGVhbnVwX2ZpeDIoKToKKyAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0IG5vdCB2YWx1ZXMsICJiYXNlIHNob3VsZCBub3QgaGF2ZSBiZWVuIGZpbmFsaXplZCIK
KyAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihjbGVhbnVwX2ZpeDIpCisKKyAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0lKHNjb3BlKXIpCisgICAgICAgICAgICBk
ZWYgYmFzZShyZXF1ZXN0LCBmaXgxKToKKyAgICAgICAgICAgICAgICBkZWYgY2xlYW51cF9iYXNl
KCk6CisgICAgICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoImZpbl9iYXNlIikKKyAgICAg
ICAgICAgICAgICAgICAgcHJpbnQgKCJmaW5hbGl6aW5nIGJhc2UiKQorICAgICAgICAgICAgICAg
IHJlcXVlc3QuYWRkZmluYWxpemVyKGNsZWFudXBfYmFzZSkKKworICAgICAgICAgICAgZGVmIHRl
c3RfYmVnaW4oKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF9i
YXooYmFzZSwgZml4Mik6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHRl
c3Rfb3RoZXIoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIiAlIHsic2NvcGUi
OiBzY29wZX0pCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLWx2cyIpCisg
ICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0zKQorCisgICAgQHB5dGVzdC5tYXJr
Lmlzc3VlMzk2CisgICAgZGVmIHRlc3RfY2xhc3Nfc2NvcGVfcGFyYW1ldHJpemF0aW9uX29yZGVy
aW5nKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorICAgICAgICAg
ICAgQHB5dGVzdC5maXh0dXJlKHBhcmFtcz1bIkpvaG4iLCAiRG9lIl0sIHNjb3BlPSJjbGFzcyIp
CisgICAgICAgICAgICBkZWYgaHVtYW4ocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmVxdWVz
dC5hZGRmaW5hbGl6ZXIobGFtYmRhOiB2YWx1ZXMuYXBwZW5kKCJmaW4gJXMiICUgcmVxdWVzdC5w
YXJhbSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAgICAg
ICAgY2xhc3MgVGVzdEdyZWV0aW5ncyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0
X2hlbGxvKHNlbGYsIGh1bWFuKToKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgi
dGVzdF9oZWxsbyIpCisKKyAgICAgICAgICAgIGNsYXNzIFRlc3RNZXRyaWNzKG9iamVjdCk6Cisg
ICAgICAgICAgICAgICAgZGVmIHRlc3RfbmFtZShzZWxmLCBodW1hbik6CisgICAgICAgICAgICAg
ICAgICAgIHZhbHVlcy5hcHBlbmQoInRlc3RfbmFtZSIpCisKKyAgICAgICAgICAgICAgICBkZWYg
dGVzdF9wb3B1bGF0aW9uKHNlbGYsIGh1bWFuKToKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVz
LmFwcGVuZCgidGVzdF9wb3B1bGF0aW9uIikKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMg
PSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNz
ZWQ9NikKKyAgICAgICAgdmFsdWVzID0gcmVwcmVjLmdldGNhbGxzKCJweXRlc3RfcnVudGVzdF9j
YWxsIilbMF0uaXRlbS5tb2R1bGUudmFsdWVzCisgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWyJ0
ZXN0X2hlbGxvIiwgImZpbiBKb2huIiwgInRlc3RfaGVsbG8iLCAiZmluIERvZSIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICJ0ZXN0X25hbWUiLCAidGVzdF9wb3B1bGF0aW9uIiwgImZpbiBK
b2huIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3RfbmFtZSIsICJ0ZXN0X3BvcHVs
YXRpb24iLCAiZmluIERvZSJdCisKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9zZXR1cF9mdW5j
dGlvbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2Nv
cGU9Im1vZHVsZSIsIHBhcmFtcz1bMSwgMl0pCisgICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3Qp
OgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIiwgYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAg
ZGVmIG15c2V0dXAocmVxdWVzdCwgYXJnKToKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZp
bmFsaXplcihsYW1iZGE6IHZhbHVlcy5hcHBlbmQoImZpbiVzIiAlIGFyZykpCisgICAgICAgICAg
ICAgICAgdmFsdWVzLmFwcGVuZCgic2V0dXAlcyIgJSBhcmcpCisKKyAgICAgICAgICAgIHZhbHVl
cyA9IFtdCisgICAgICAgICAgICBkZWYgdGVzdF8xKGFyZyk6CisgICAgICAgICAgICAgICAgdmFs
dWVzLmFwcGVuZChhcmcpCisgICAgICAgICAgICBkZWYgdGVzdF8yKGFyZyk6CisgICAgICAgICAg
ICAgICAgdmFsdWVzLmFwcGVuZChhcmcpCisgICAgICAgICAgICBkZWYgdGVzdF8zKCk6CisgICAg
ICAgICAgICAgICAgaW1wb3J0IHBwcmludAorICAgICAgICAgICAgICAgIHBwcmludC5wcHJpbnQo
dmFsdWVzKQorICAgICAgICAgICAgICAgIGlmIGFyZyA9PSAxOgorICAgICAgICAgICAgICAgICAg
ICBhc3NlcnQgdmFsdWVzID09IFsic2V0dXAxIiwgMSwgMSwgXQorICAgICAgICAgICAgICAgIGVs
aWYgYXJnID09IDI6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWyJzZXR1
cDEiLCAxLCAxLCAiZmluMSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2V0
dXAyIiwgMiwgMiwgXQorCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5p
bmxpbmVfcnVuKCItdiIpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD02KQor
CisgICAgZGVmIHRlc3RfZml4dHVyZV9tYXJrZWRfZnVuY3Rpb25fbm90X2NvbGxlY3RlZF9hc190
ZXN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAg
ICAgICAgIGRlZiB0ZXN0X2FwcCgpOgorICAgICAgICAgICAgICAgIHJldHVybiAxCisKKyAgICAg
ICAgICAgIGRlZiB0ZXN0X3NvbWV0aGluZyh0ZXN0X2FwcCk6CisgICAgICAgICAgICAgICAgYXNz
ZXJ0IHRlc3RfYXBwID09IDEKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGly
LmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKwor
ICAgIGRlZiB0ZXN0X3BhcmFtc19hbmRfaWRzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAg
ICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9W29iamVjdCgpLCBvYmplY3QoKV0sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWRzPVsnYWxwaGEnLCAnYmV0YSddKQorICAgICAgICAgICAg
ZGVmIGZpeChyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQor
CisgICAgICAgICAgICBkZWYgdGVzdF9mb28oZml4KToKKyAgICAgICAgICAgICAgICBhc3NlcnQg
MQorICAgICAgICAiIiIpCisgICAgICAgIHJlcyA9IHRlc3RkaXIucnVucHl0ZXN0KCctdicpCisg
ICAgICAgIHJlcy5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAnKnRlc3RfZm9v
KmFscGhhKicsCisgICAgICAgICAgICAnKnRlc3RfZm9vKmJldGEqJ10pCisKKyAgICBkZWYgdGVz
dF9wYXJhbXNfYW5kX2lkc195aWVsZGZpeHR1cmUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAg
ICAgICAgQHB5dGVzdC55aWVsZF9maXh0dXJlKHBhcmFtcz1bb2JqZWN0KCksIG9iamVjdCgpXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZHM9WydhbHBoYScsICdiZXRhJ10p
CisgICAgICAgICAgICBkZWYgZml4KHJlcXVlc3QpOgorICAgICAgICAgICAgICAgICB5aWVsZCBy
ZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhmaXgpOgorICAgICAgICAg
ICAgICAgIGFzc2VydCAxCisgICAgICAgICIiIikKKyAgICAgICAgcmVzID0gdGVzdGRpci5ydW5w
eXRlc3QoJy12JykKKyAgICAgICAgcmVzLnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAg
ICAgICcqdGVzdF9mb28qYWxwaGEqJywKKyAgICAgICAgICAgICcqdGVzdF9mb28qYmV0YSonXSkK
KworICAgIEBweXRlc3QubWFyay5pc3N1ZTkyMAorICAgIGRlZiB0ZXN0X2RldGVybWluaXN0aWNf
Zml4dHVyZV9jb2xsZWN0aW9uKHNlbGYsIHRlc3RkaXIsIG1vbmtleXBhdGNoKToKKyAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFyYW1zPVsiQSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiQiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQyJdKQorICAg
ICAgICAgICAgZGVmIEEocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3Qu
cGFyYW0KKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcz1bIkRERERERERERCIsICJFRUVFRUVFRUVF
RUUiLCAiRkZGRkZGRkZGRkYiLCAiYmFuYW5zZGEiXSkKKyAgICAgICAgICAgIGRlZiBCKHJlcXVl
c3QsIEEpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAg
ICAgIGRlZiB0ZXN0X2ZvbyhCKToKKyAgICAgICAgICAgICAgICAjIFNvbWV0aGluZyBmdW5reSBp
cyBnb2luZyBvbiBoZXJlLgorICAgICAgICAgICAgICAgICMgRGVzcGl0ZSBzcGVjaWZpZWQgc2Vl
ZHMsIG9uIHdoYXQgaXMgY29sbGVjdGVkLAorICAgICAgICAgICAgICAgICMgc29tZXRpbWVzIHdl
IGdldCB1bmV4cGVjdGVkIHBhc3Nlcy4gaGFzaGluZyBCIHNlZW1zCisgICAgICAgICAgICAgICAg
IyB0byBoZWxwPworICAgICAgICAgICAgICAgIGFzc2VydCBoYXNoKEIpIG9yIFRydWUKKyAgICAg
ICAgICAgICIiIikKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJQWVRIT05IQVNIU0VFRCIs
ICIxIikKKyAgICAgICAgb3V0MSA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoIi12IikK
KyAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJQWVRIT05IQVNIU0VFRCIsICIyIikKKyAgICAg
ICAgb3V0MiA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoIi12IikKKyAgICAgICAgb3V0
MSA9IFtsaW5lIGZvciBsaW5lIGluIG91dDEub3V0bGluZXMgaWYgbGluZS5zdGFydHN3aXRoKCJ0
ZXN0X2RldGVybWluaXN0aWNfZml4dHVyZV9jb2xsZWN0aW9uLnB5Ojp0ZXN0X2ZvbyIpXQorICAg
ICAgICBvdXQyID0gW2xpbmUgZm9yIGxpbmUgaW4gb3V0Mi5vdXRsaW5lcyBpZiBsaW5lLnN0YXJ0
c3dpdGgoInRlc3RfZGV0ZXJtaW5pc3RpY19maXh0dXJlX2NvbGxlY3Rpb24ucHk6OnRlc3RfZm9v
IildCisgICAgICAgIGFzc2VydCBsZW4ob3V0MSkgPT0gMTIKKyAgICAgICAgYXNzZXJ0IG91dDEg
PT0gb3V0MgorCisKK2NsYXNzIFRlc3RSZXF1ZXN0U2NvcGVBY2Nlc3Mob2JqZWN0KToKKyAgICBw
eXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoKCJzY29wZSIsICJvayIsICJlcnJv
ciIpLCBbCisgICAgICAgIFsic2Vzc2lvbiIsICIiLCAiZnNwYXRoIGNsYXNzIGZ1bmN0aW9uIG1v
ZHVsZSJdLAorICAgICAgICBbIm1vZHVsZSIsICJtb2R1bGUgZnNwYXRoIiwgImNscyBmdW5jdGlv
biJdLAorICAgICAgICBbImNsYXNzIiwgIm1vZHVsZSBmc3BhdGggY2xzIiwgImZ1bmN0aW9uIl0s
CisgICAgICAgIFsiZnVuY3Rpb24iLCAibW9kdWxlIGZzcGF0aCBjbHMgZnVuY3Rpb24iLCAiIl0K
KyAgICBdKQorCisgICAgZGVmIHRlc3Rfc2V0dXAoc2VsZiwgdGVzdGRpciwgc2NvcGUsIG9rLCBl
cnJvcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0lciwgYXV0b3VzZT1U
cnVlKQorICAgICAgICAgICAgZGVmIG15c2NvcGVkKHJlcXVlc3QpOgorICAgICAgICAgICAgICAg
IGZvciB4IGluICVyOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgaGFzYXR0cihyZXF1ZXN0
LCB4KQorICAgICAgICAgICAgICAgIGZvciB4IGluICVyOgorICAgICAgICAgICAgICAgICAgICBw
eXRlc3QucmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBsYW1iZGE6CisgICAgICAgICAgICAgICAgICAg
ICAgICBnZXRhdHRyKHJlcXVlc3QsIHgpKQorICAgICAgICAgICAgICAgIGFzc2VydCByZXF1ZXN0
LnNlc3Npb24KKyAgICAgICAgICAgICAgICBhc3NlcnQgcmVxdWVzdC5jb25maWcKKyAgICAgICAg
ICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIiAl
IChzY29wZSwgb2suc3BsaXQoKSwgZXJyb3Iuc3BsaXQoKSkpCisgICAgICAgIHJlcHJlYyA9IHRl
c3RkaXIuaW5saW5lX3J1bigiLWwiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNz
ZWQ9MSkKKworICAgIGRlZiB0ZXN0X2Z1bmNhcmcoc2VsZiwgdGVzdGRpciwgc2NvcGUsIG9rLCBl
cnJvcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0lcikKKyAgICAgICAg
ICAgIGRlZiBhcmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgZm9yIHggaW4gJXI6CisgICAg
ICAgICAgICAgICAgICAgIGFzc2VydCBoYXNhdHRyKHJlcXVlc3QsIHgpCisgICAgICAgICAgICAg
ICAgZm9yIHggaW4gJXI6CisgICAgICAgICAgICAgICAgICAgIHB5dGVzdC5yYWlzZXMoQXR0cmli
dXRlRXJyb3IsIGxhbWJkYToKKyAgICAgICAgICAgICAgICAgICAgICAgIGdldGF0dHIocmVxdWVz
dCwgeCkpCisgICAgICAgICAgICAgICAgYXNzZXJ0IHJlcXVlc3Quc2Vzc2lvbgorICAgICAgICAg
ICAgICAgIGFzc2VydCByZXF1ZXN0LmNvbmZpZworICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhh
cmcpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiICUgKHNjb3BlLCBvay5zcGxp
dCgpLCBlcnJvci5zcGxpdCgpKSkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVu
KCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKworY2xhc3MgVGVz
dEVycm9ycyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X3N1YmZhY3RvcnlfbWlzc2luZ19mdW5jYXJn
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoKQorICAgICAg
ICAgICAgZGVmIGdlbihxd2UxMjMpOgorICAgICAgICAgICAgICAgIHJldHVybiAxCisgICAgICAg
ICAgICBkZWYgdGVzdF9zb21ldGhpbmcoZ2VuKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICBh
c3NlcnQgcmVzdWx0LnJldCAhPSAwCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cyhbCisgICAgICAgICAgICAiKmRlZiBnZW4ocXdlMTIzKToqIiwKKyAgICAgICAgICAgICIqZml4
dHVyZSpxd2UxMjMqbm90IGZvdW5kKiIsCisgICAgICAgICAgICAiKjEgZXJyb3IqIiwKKyAgICAg
ICAgXSkKKworICAgIGRlZiB0ZXN0X2lzc3VlNDk4X2ZpeHR1cmVfZmluYWxpemVyX2ZhaWxpbmco
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAg
ICAgZGVmIGZpeDEocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgZGVmIGYoKToKKyAgICAgICAg
ICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZGZp
bmFsaXplcihmKQorICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3QoKQorCisgICAgICAgICAg
ICB2YWx1ZXMgPSBbXQorICAgICAgICAgICAgZGVmIHRlc3RfMShmaXgxKToKKyAgICAgICAgICAg
ICAgICB2YWx1ZXMuYXBwZW5kKGZpeDEpCisgICAgICAgICAgICBkZWYgdGVzdF8yKGZpeDEpOgor
ICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoZml4MSkKKyAgICAgICAgICAgIGRlZiB0ZXN0
XzMoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzWzBdICE9IHZhbHVlc1sxXQorICAg
ICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIiIgorICAgICAgICAgICAgKkVSUk9SKnRlYXJk
b3duKnRlc3RfMSoKKyAgICAgICAgICAgICpLZXlFcnJvcioKKyAgICAgICAgICAgICpFUlJPUip0
ZWFyZG93bip0ZXN0XzIqCisgICAgICAgICAgICAqS2V5RXJyb3IqCisgICAgICAgICAgICAqMyBw
YXNzKjIgZXJyb3IqCisgICAgICAgICIiIikKKworICAgIGRlZiB0ZXN0X3NldHVwZnVuY19taXNz
aW5nX2Z1bmNhcmcoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgi
IiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVy
ZShhdXRvdXNlPVRydWUpCisgICAgICAgICAgICBkZWYgZ2VuKHF3ZTEyMyk6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIDEKKyAgICAgICAgICAgIGRlZiB0ZXN0X3NvbWV0aGluZygpOgorICAgICAg
ICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ICE9IDAKKyAgICAgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqZGVmIGdlbihxd2UxMjMpOioi
LAorICAgICAgICAgICAgIipmaXh0dXJlKnF3ZTEyMypub3QgZm91bmQqIiwKKyAgICAgICAgICAg
ICIqMSBlcnJvcioiLAorICAgICAgICBdKQorCisKK2NsYXNzIFRlc3RTaG93Rml4dHVyZXMob2Jq
ZWN0KToKKyAgICBkZWYgdGVzdF9mdW5jYXJnX2NvbXBhdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZ3VyZSgiLS1mdW5jYXJncyIpCisgICAgICAg
IGFzc2VydCBjb25maWcub3B0aW9uLnNob3dmaXh0dXJlcworCisgICAgZGVmIHRlc3Rfc2hvd19m
aXh0dXJlcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoIi0tZml4dHVyZXMiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWwor
ICAgICAgICAgICAgIip0bXBkaXIqIiwKKyAgICAgICAgICAgICIqdGVtcG9yYXJ5IGRpcmVjdG9y
eSoiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3Rfc2hvd19maXh0dXJlc192ZXJib3NlKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1maXh0
dXJlcyIsICItdiIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAg
ICAgICAgICAiKnRtcGRpciotLSp0bXBkaXIucHkqIiwKKyAgICAgICAgICAgICIqdGVtcG9yYXJ5
IGRpcmVjdG9yeSoiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3Rfc2hvd19maXh0dXJlc190
ZXN0bW9kdWxlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxl
KCcnJworICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0
dXJlCisgICAgICAgICAgICBkZWYgX2FyZzAoKToKKyAgICAgICAgICAgICAgICAiIiIgaGlkZGVu
ICIiIgorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgYXJnMSgp
OgorICAgICAgICAgICAgICAgICIiIiAgaGVsbG8gd29ybGQgIiIiCisgICAgICAgICcnJykKKyAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tZml4dHVyZXMiLCBwKQorICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAgICAgICAqdG1wZGlyCisg
ICAgICAgICAgICAqZml4dHVyZXMgZGVmaW5lZCBmcm9tKgorICAgICAgICAgICAgKmFyZzEqCisg
ICAgICAgICAgICAqaGVsbG8gd29ybGQqCisgICAgICAgICIiIikKKyAgICAgICAgYXNzZXJ0ICJh
cmcwIiBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCJ0ZXN0bW9kIiwgW1RydWUsIEZhbHNlXSkKKyAgICBkZWYgdGVzdF9zaG93X2ZpeHR1
cmVzX2NvbmZ0ZXN0KHNlbGYsIHRlc3RkaXIsIHRlc3Rtb2QpOgorICAgICAgICB0ZXN0ZGlyLm1h
a2Vjb25mdGVzdCgnJycKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBw
eXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGFyZzEoKToKKyAgICAgICAgICAgICAgICAi
IiIgIGhlbGxvIHdvcmxkICIiIgorICAgICAgICAnJycpCisgICAgICAgIGlmIHRlc3Rtb2Q6Cisg
ICAgICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICAgICAgZGVmIHRl
c3RfaGVsbG8oKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgIiIiKQor
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1maXh0dXJlcyIpCisgICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiIiIKKyAgICAgICAgICAgICp0bXBkaXIqCisg
ICAgICAgICAgICAqZml4dHVyZXMgZGVmaW5lZCBmcm9tKmNvbmZ0ZXN0KgorICAgICAgICAgICAg
KmFyZzEqCisgICAgICAgICAgICAqaGVsbG8gd29ybGQqCisgICAgICAgICIiIikKKworICAgIGRl
ZiB0ZXN0X3Nob3dfZml4dHVyZXNfdHJpbW1lZF9kb2Moc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoZGVkZW50KCcnJworICAgICAgICAgICAgaW1wb3J0IHB5
dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgYXJnMSgp
OgorICAgICAgICAgICAgICAgICIiIgorICAgICAgICAgICAgICAgIGxpbmUxCisgICAgICAgICAg
ICAgICAgbGluZTIKKworICAgICAgICAgICAgICAgICIiIgorICAgICAgICAgICAgQHB5dGVzdC5m
aXh0dXJlCisgICAgICAgICAgICBkZWYgYXJnMigpOgorICAgICAgICAgICAgICAgICIiIgorICAg
ICAgICAgICAgICAgIGxpbmUxCisgICAgICAgICAgICAgICAgbGluZTIKKworICAgICAgICAgICAg
ICAgICIiIgorICAgICAgICAnJycpKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgiLS1maXh0dXJlcyIsIHApCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhk
ZWRlbnQoIiIiCisgICAgICAgICAgICAqIGZpeHR1cmVzIGRlZmluZWQgZnJvbSB0ZXN0X3Nob3df
Zml4dHVyZXNfdHJpbW1lZF9kb2MgKgorICAgICAgICAgICAgYXJnMgorICAgICAgICAgICAgICAg
IGxpbmUxCisgICAgICAgICAgICAgICAgbGluZTIKKyAgICAgICAgICAgIGFyZzEKKyAgICAgICAg
ICAgICAgICBsaW5lMQorICAgICAgICAgICAgICAgIGxpbmUyCisKKyAgICAgICAgIiIiKSkKKwor
ICAgIGRlZiB0ZXN0X3Nob3dfZml4dHVyZXNfaW5kZW50ZWRfZG9jKHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKGRlZGVudCgnJycKKyAgICAgICAgICAgIGlt
cG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVm
IGZpeHR1cmUxKCk6CisgICAgICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAgICAgbGluZTEK
KyAgICAgICAgICAgICAgICAgICAgaW5kZW50ZWQgbGluZQorICAgICAgICAgICAgICAgICIiIgor
ICAgICAgICAnJycpKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1maXh0
dXJlcyIsIHApCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhkZWRlbnQoIiIi
CisgICAgICAgICAgICAqIGZpeHR1cmVzIGRlZmluZWQgZnJvbSB0ZXN0X3Nob3dfZml4dHVyZXNf
aW5kZW50ZWRfZG9jICoKKyAgICAgICAgICAgIGZpeHR1cmUxCisgICAgICAgICAgICAgICAgbGlu
ZTEKKyAgICAgICAgICAgICAgICAgICAgaW5kZW50ZWQgbGluZQorICAgICAgICAiIiIpKQorCisg
ICAgZGVmIHRlc3Rfc2hvd19maXh0dXJlc19pbmRlbnRlZF9kb2NfZmlyc3RfbGluZV91bmluZGVu
dGVkKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKGRlZGVu
dCgnJycKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZQorICAgICAgICAgICAgZGVmIGZpeHR1cmUxKCk6CisgICAgICAgICAgICAgICAgIiIibGlu
ZTEKKyAgICAgICAgICAgICAgICBsaW5lMgorICAgICAgICAgICAgICAgICAgICBpbmRlbnRlZCBs
aW5lCisgICAgICAgICAgICAgICAgIiIiCisgICAgICAgICcnJykpCisgICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCItLWZpeHR1cmVzIiwgcCkKKyAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKGRlZGVudCgiIiIKKyAgICAgICAgICAgICogZml4dHVyZXMgZGVmaW5l
ZCBmcm9tIHRlc3Rfc2hvd19maXh0dXJlc19pbmRlbnRlZF9kb2NfZmlyc3RfbGluZV91bmluZGVu
dGVkICoKKyAgICAgICAgICAgIGZpeHR1cmUxCisgICAgICAgICAgICAgICAgbGluZTEKKyAgICAg
ICAgICAgICAgICBsaW5lMgorICAgICAgICAgICAgICAgICAgICBpbmRlbnRlZCBsaW5lCisgICAg
ICAgICIiIikpCisKKyAgICBkZWYgdGVzdF9zaG93X2ZpeHR1cmVzX2luZGVudGVkX2luX2NsYXNz
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKGRlZGVudCgn
JycKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFz
czoKKyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgICAgICBkZWYg
Zml4dHVyZTEoc2VsZik6CisgICAgICAgICAgICAgICAgICAgICIiImxpbmUxCisgICAgICAgICAg
ICAgICAgICAgIGxpbmUyCisgICAgICAgICAgICAgICAgICAgICAgICBpbmRlbnRlZCBsaW5lCisg
ICAgICAgICAgICAgICAgICAgICIiIgorICAgICAgICAnJycpKQorICAgICAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1maXh0dXJlcyIsIHApCisgICAgICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcyhkZWRlbnQoIiIiCisgICAgICAgICAgICAqIGZpeHR1cmVzIGRlZmluZWQg
ZnJvbSB0ZXN0X3Nob3dfZml4dHVyZXNfaW5kZW50ZWRfaW5fY2xhc3MgKgorICAgICAgICAgICAg
Zml4dHVyZTEKKyAgICAgICAgICAgICAgICBsaW5lMQorICAgICAgICAgICAgICAgIGxpbmUyCisg
ICAgICAgICAgICAgICAgICAgIGluZGVudGVkIGxpbmUKKyAgICAgICAgIiIiKSkKKworICAgIGRl
ZiB0ZXN0X3Nob3dfZml4dHVyZXNfZGlmZmVyZW50X2ZpbGVzKHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICAiIiIKKyAgICAgICAgIzgzMzogLS1maXh0dXJlcyBvbmx5IHNob3dzIGZpeHR1cmVzIGZy
b20gZmlyc3QgZmlsZQorICAgICAgICAiIiIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRl
c3RfYT0nJycKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVz
dC5maXh0dXJlCisgICAgICAgICAgICBkZWYgZml4X2EoKToKKyAgICAgICAgICAgICAgICAiIiJG
aXh0dXJlIEEiIiIKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgIGRlZiB0ZXN0
X2EoZml4X2EpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgJycnKQorICAgICAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9iPScnJworICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAor
CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBmaXhfYigpOgor
ICAgICAgICAgICAgICAgICIiIkZpeHR1cmUgQiIiIgorICAgICAgICAgICAgICAgIHBhc3MKKwor
ICAgICAgICAgICAgZGVmIHRlc3RfYihmaXhfYik6CisgICAgICAgICAgICAgICAgcGFzcworICAg
ICAgICAnJycpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWZpeHR1cmVz
IikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIiIgorICAgICAgICAgICAg
KiBmaXh0dXJlcyBkZWZpbmVkIGZyb20gdGVzdF9hICoKKyAgICAgICAgICAgIGZpeF9hCisgICAg
ICAgICAgICAgICAgRml4dHVyZSBBCisKKyAgICAgICAgICAgICogZml4dHVyZXMgZGVmaW5lZCBm
cm9tIHRlc3RfYiAqCisgICAgICAgICAgICBmaXhfYgorICAgICAgICAgICAgICAgIEZpeHR1cmUg
QgorICAgICAgICAiIiIpCisKKyAgICBkZWYgdGVzdF9zaG93X2ZpeHR1cmVzX3dpdGhfc2FtZV9u
YW1lKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgnJycKKyAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAg
ICAgICAgICAgZGVmIGFyZzEoKToKKyAgICAgICAgICAgICAgICAiIiJIZWxsbyBXb3JsZCBpbiBj
b25mdGVzdC5weSIiIgorICAgICAgICAgICAgICAgIHJldHVybiAiSGVsbG8gV29ybGQiCisgICAg
ICAgICcnJykKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCcnJworICAgICAgICAgICAgZGVm
IHRlc3RfZm9vKGFyZzEpOgorICAgICAgICAgICAgICAgIGFzc2VydCBhcmcxID09ICJIZWxsbyBX
b3JsZCIKKyAgICAgICAgJycnKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoJycnCisgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAg
ICAgICAgIGRlZiBhcmcxKCk6CisgICAgICAgICAgICAgICAgIiIiSGkgZnJvbSB0ZXN0IG1vZHVs
ZSIiIgorICAgICAgICAgICAgICAgIHJldHVybiAiSGkiCisgICAgICAgICAgICBkZWYgdGVzdF9i
YXIoYXJnMSk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGFyZzEgPT0gIkhpIgorICAgICAgICAn
JycpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWZpeHR1cmVzIikKKyAg
ICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCcnJworICAgICAgICAgICAgKiBmaXh0
dXJlcyBkZWZpbmVkIGZyb20gY29uZnRlc3QgKgorICAgICAgICAgICAgYXJnMQorICAgICAgICAg
ICAgICAgIEhlbGxvIFdvcmxkIGluIGNvbmZ0ZXN0LnB5CisKKyAgICAgICAgICAgICogZml4dHVy
ZXMgZGVmaW5lZCBmcm9tIHRlc3Rfc2hvd19maXh0dXJlc193aXRoX3NhbWVfbmFtZSAqCisgICAg
ICAgICAgICBhcmcxCisgICAgICAgICAgICAgICAgSGkgZnJvbSB0ZXN0IG1vZHVsZQorICAgICAg
ICAnJycpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdmbGF2b3InLCBbJ2ZpeHR1cmUn
LCAneWllbGRfZml4dHVyZSddKQorY2xhc3MgVGVzdENvbnRleHRNYW5hZ2VyRml4dHVyZUZ1bmNz
KG9iamVjdCk6CisKKyAgICBkZWYgdGVzdF9zaW1wbGUoc2VsZiwgdGVzdGRpciwgZmxhdm9yKToK
KyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAorICAgICAgICAgICAgQHB5dGVzdC57Zmxhdm9yfQorICAgICAgICAgICAgZGVmIGFyZzEoKToK
KyAgICAgICAgICAgICAgICBwcmludCAoInNldHVwIikKKyAgICAgICAgICAgICAgICB5aWVsZCAx
CisgICAgICAgICAgICAgICAgcHJpbnQgKCJ0ZWFyZG93biIpCisgICAgICAgICAgICBkZWYgdGVz
dF8xKGFyZzEpOgorICAgICAgICAgICAgICAgIHByaW50ICgidGVzdDEgJXMiICUgYXJnMSkKKyAg
ICAgICAgICAgIGRlZiB0ZXN0XzIoYXJnMSk6CisgICAgICAgICAgICAgICAgcHJpbnQgKCJ0ZXN0
MiAlcyIgJSBhcmcxKQorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICIiIi5mb3Jt
YXQoZmxhdm9yPWZsYXZvcikpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCIt
cyIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiIiIKKyAgICAgICAgICAg
ICpzZXR1cCoKKyAgICAgICAgICAgICp0ZXN0MSAxKgorICAgICAgICAgICAgKnRlYXJkb3duKgor
ICAgICAgICAgICAgKnNldHVwKgorICAgICAgICAgICAgKnRlc3QyIDEqCisgICAgICAgICAgICAq
dGVhcmRvd24qCisgICAgICAgICIiIikKKworICAgIGRlZiB0ZXN0X3Njb3BlZChzZWxmLCB0ZXN0
ZGlyLCBmbGF2b3IpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LntmbGF2b3J9KHNjb3BlPSJtb2R1
bGUiKQorICAgICAgICAgICAgZGVmIGFyZzEoKToKKyAgICAgICAgICAgICAgICBwcmludCAoInNl
dHVwIikKKyAgICAgICAgICAgICAgICB5aWVsZCAxCisgICAgICAgICAgICAgICAgcHJpbnQgKCJ0
ZWFyZG93biIpCisgICAgICAgICAgICBkZWYgdGVzdF8xKGFyZzEpOgorICAgICAgICAgICAgICAg
IHByaW50ICgidGVzdDEgJXMiICUgYXJnMSkKKyAgICAgICAgICAgIGRlZiB0ZXN0XzIoYXJnMSk6
CisgICAgICAgICAgICAgICAgcHJpbnQgKCJ0ZXN0MiAlcyIgJSBhcmcxKQorICAgICAgICAiIiIu
Zm9ybWF0KGZsYXZvcj1mbGF2b3IpKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgiLXMiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAg
ICAgICAqc2V0dXAqCisgICAgICAgICAgICAqdGVzdDEgMSoKKyAgICAgICAgICAgICp0ZXN0MiAx
KgorICAgICAgICAgICAgKnRlYXJkb3duKgorICAgICAgICAiIiIpCisKKyAgICBkZWYgdGVzdF9z
ZXR1cF9leGNlcHRpb24oc2VsZiwgdGVzdGRpciwgZmxhdm9yKToKKyAgICAgICAgdGVzdGRpci5t
YWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5
dGVzdC57Zmxhdm9yfShzY29wZT0ibW9kdWxlIikKKyAgICAgICAgICAgIGRlZiBhcmcxKCk6Cisg
ICAgICAgICAgICAgICAgcHl0ZXN0LmZhaWwoInNldHVwIikKKyAgICAgICAgICAgICAgICB5aWVs
ZCAxCisgICAgICAgICAgICBkZWYgdGVzdF8xKGFyZzEpOgorICAgICAgICAgICAgICAgIHBhc3MK
KyAgICAgICAgIiIiLmZvcm1hdChmbGF2b3I9Zmxhdm9yKSkKKyAgICAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoIi1zIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KCIiIgorICAgICAgICAgICAgKnB5dGVzdC5mYWlsKnNldHVwKgorICAgICAgICAgICAgKjEgZXJy
b3IqCisgICAgICAgICIiIikKKworICAgIGRlZiB0ZXN0X3RlYXJkb3duX2V4Y2VwdGlvbihzZWxm
LCB0ZXN0ZGlyLCBmbGF2b3IpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LntmbGF2b3J9KHNjb3Bl
PSJtb2R1bGUiKQorICAgICAgICAgICAgZGVmIGFyZzEoKToKKyAgICAgICAgICAgICAgICB5aWVs
ZCAxCisgICAgICAgICAgICAgICAgcHl0ZXN0LmZhaWwoInRlYXJkb3duIikKKyAgICAgICAgICAg
IGRlZiB0ZXN0XzEoYXJnMSk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIuZm9y
bWF0KGZsYXZvcj1mbGF2b3IpKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgi
LXMiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAgICAg
ICAqcHl0ZXN0LmZhaWwqdGVhcmRvd24qCisgICAgICAgICAgICAqMSBwYXNzZWQqMSBlcnJvcioK
KyAgICAgICAgIiIiKQorCisgICAgZGVmIHRlc3RfeWllbGRzX21vcmVfdGhhbl9vbmUoc2VsZiwg
dGVzdGRpciwgZmxhdm9yKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC57Zmxhdm9yfShzY29wZT0i
bW9kdWxlIikKKyAgICAgICAgICAgIGRlZiBhcmcxKCk6CisgICAgICAgICAgICAgICAgeWllbGQg
MQorICAgICAgICAgICAgICAgIHlpZWxkIDIKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEoYXJnMSk6
CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIuZm9ybWF0KGZsYXZvcj1mbGF2b3Ip
KQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXMiKQorICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAgICAgICAqZml4dHVyZSBmdW5jdGlv
bioKKyAgICAgICAgICAgICp0ZXN0X3lpZWxkcyo6MioKKyAgICAgICAgIiIiKQorCisgICAgZGVm
IHRlc3RfY3VzdG9tX25hbWUoc2VsZiwgdGVzdGRpciwgZmxhdm9yKToKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAg
QHB5dGVzdC57Zmxhdm9yfShuYW1lPSdtZW93JykKKyAgICAgICAgICAgIGRlZiBhcmcxKCk6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuICdtZXcnCisgICAgICAgICAgICBkZWYgdGVzdF8xKG1lb3cp
OgorICAgICAgICAgICAgICAgIHByaW50KG1lb3cpCisgICAgICAgICIiIi5mb3JtYXQoZmxhdm9y
PWZsYXZvcikpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcyIpCisgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiKm1ldyoiKQorCisKK2NsYXNzIFRlc3RQ
YXJhbWV0ZXJpemVkU3ViUmVxdWVzdChvYmplY3QpOgorICAgIGRlZiB0ZXN0X2NhbGxfZnJvbV9m
aXh0dXJlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZmlsZSA9IHRlc3RkaXIubWFrZXB5
ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVz
dC5maXh0dXJlKHBhcmFtcz1bMCwgMSwgMl0pCisgICAgICAgICAgICBkZWYgZml4X3dpdGhfcGFy
YW0ocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworICAg
ICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgZ2V0X25hbWVkX2ZpeHR1
cmUocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QuZ2V0Zml4dHVyZXZh
bHVlKCdmaXhfd2l0aF9wYXJhbScpCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhyZXF1ZXN0
LCBnZXRfbmFtZWRfZml4dHVyZSk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAg
IiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcygiIiIKKyAgICAgICAgICAgIEUqRmFpbGVkOiBUaGUgcmVx
dWVzdGVkIGZpeHR1cmUgaGFzIG5vIHBhcmFtZXRlciBkZWZpbmVkIGZvciB0aGUgY3VycmVudCB0
ZXN0LgorICAgICAgICAgICAgRSoKKyAgICAgICAgICAgIEUqUmVxdWVzdGVkIGZpeHR1cmUgJ2Zp
eF93aXRoX3BhcmFtJyBkZWZpbmVkIGluOgorICAgICAgICAgICAgRSp7MH06NAorICAgICAgICAg
ICAgRSpSZXF1ZXN0ZWQgaGVyZToKKyAgICAgICAgICAgIEUqezF9OjkKKyAgICAgICAgICAgICox
IGVycm9yKgorICAgICAgICAgICAgIiIiLmZvcm1hdCh0ZXN0ZmlsZS5iYXNlbmFtZSwgdGVzdGZp
bGUuYmFzZW5hbWUpKQorCisgICAgZGVmIHRlc3RfY2FsbF9mcm9tX3Rlc3Qoc2VsZiwgdGVzdGRp
cik6CisgICAgICAgIHRlc3RmaWxlID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsw
LCAxLCAyXSkKKyAgICAgICAgICAgIGRlZiBmaXhfd2l0aF9wYXJhbShyZXF1ZXN0KToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisgICAgICAgICAgICBkZWYgdGVzdF9m
b28ocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmVxdWVzdC5nZXRmaXh0dXJldmFsdWUoJ2Zp
eF93aXRoX3BhcmFtJykKKyAgICAgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiIiCisg
ICAgICAgICAgICBFKkZhaWxlZDogVGhlIHJlcXVlc3RlZCBmaXh0dXJlIGhhcyBubyBwYXJhbWV0
ZXIgZGVmaW5lZCBmb3IgdGhlIGN1cnJlbnQgdGVzdC4KKyAgICAgICAgICAgIEUqCisgICAgICAg
ICAgICBFKlJlcXVlc3RlZCBmaXh0dXJlICdmaXhfd2l0aF9wYXJhbScgZGVmaW5lZCBpbjoKKyAg
ICAgICAgICAgIEUqezB9OjQKKyAgICAgICAgICAgIEUqUmVxdWVzdGVkIGhlcmU6CisgICAgICAg
ICAgICBFKnsxfTo4CisgICAgICAgICAgICAqMSBmYWlsZWQqCisgICAgICAgICAgICAiIiIuZm9y
bWF0KHRlc3RmaWxlLmJhc2VuYW1lLCB0ZXN0ZmlsZS5iYXNlbmFtZSkpCisKKyAgICBkZWYgdGVz
dF9leHRlcm5hbF9maXh0dXJlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBjb25mZmlsZSA9IHRl
c3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUocGFyYW1zPVswLCAxLCAyXSkKKyAgICAgICAgICAgIGRl
ZiBmaXhfd2l0aF9wYXJhbShyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVz
dC5wYXJhbQorICAgICAgICAgICAgIiIiKQorCisgICAgICAgIHRlc3RmaWxlID0gdGVzdGRpci5t
YWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfZm9vKHJlcXVlc3QpOgorICAgICAg
ICAgICAgICAgIHJlcXVlc3QuZ2V0Zml4dHVyZXZhbHVlKCdmaXhfd2l0aF9wYXJhbScpCisgICAg
ICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIiIgorICAgICAgICAgICAgRSpGYWlsZWQ6
IFRoZSByZXF1ZXN0ZWQgZml4dHVyZSBoYXMgbm8gcGFyYW1ldGVyIGRlZmluZWQgZm9yIHRoZSBj
dXJyZW50IHRlc3QuCisgICAgICAgICAgICBFKgorICAgICAgICAgICAgRSpSZXF1ZXN0ZWQgZml4
dHVyZSAnZml4X3dpdGhfcGFyYW0nIGRlZmluZWQgaW46CisgICAgICAgICAgICBFKnswfTo0Cisg
ICAgICAgICAgICBFKlJlcXVlc3RlZCBoZXJlOgorICAgICAgICAgICAgRSp7MX06MgorICAgICAg
ICAgICAgKjEgZmFpbGVkKgorICAgICAgICAgICAgIiIiLmZvcm1hdChjb25mZmlsZS5iYXNlbmFt
ZSwgdGVzdGZpbGUuYmFzZW5hbWUpKQorCisgICAgZGVmIHRlc3Rfbm9uX3JlbGF0aXZlX3BhdGgo
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RzX2RpciA9IHRlc3RkaXIubWtkaXIoJ3Rlc3Rz
JykKKyAgICAgICAgZml4ZGlyID0gdGVzdGRpci5ta2RpcignZml4dHVyZXMnKQorICAgICAgICBm
aXhmaWxlID0gZml4ZGlyLmpvaW4oImZpeC5weSIpCisgICAgICAgIGZpeGZpbGUud3JpdGUoX3B5
dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJhbXM9WzAsIDEsIDJdKQorICAgICAgICAgICAgZGVm
IGZpeF93aXRoX3BhcmFtKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0
LnBhcmFtCisgICAgICAgICAgICAiIiIpKQorCisgICAgICAgIHRlc3RmaWxlID0gdGVzdHNfZGly
LmpvaW4oInRlc3RfZm9vcy5weSIpCisgICAgICAgIHRlc3RmaWxlLndyaXRlKF9weXRlc3QuX2Nv
ZGUuU291cmNlKCIiIgorICAgICAgICAgICAgZnJvbSBmaXggaW1wb3J0IGZpeF93aXRoX3BhcmFt
CisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICBy
ZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgnZml4X3dpdGhfcGFyYW0nKQorICAgICAgICAgICAgIiIi
KSkKKworICAgICAgICB0ZXN0c19kaXIuY2hkaXIoKQorICAgICAgICB0ZXN0ZGlyLnN5c3BhdGhp
bnNlcnQoZml4ZGlyKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiIiIKKyAgICAgICAgICAgIEUqRmFpbGVk
OiBUaGUgcmVxdWVzdGVkIGZpeHR1cmUgaGFzIG5vIHBhcmFtZXRlciBkZWZpbmVkIGZvciB0aGUg
Y3VycmVudCB0ZXN0LgorICAgICAgICAgICAgRSoKKyAgICAgICAgICAgIEUqUmVxdWVzdGVkIGZp
eHR1cmUgJ2ZpeF93aXRoX3BhcmFtJyBkZWZpbmVkIGluOgorICAgICAgICAgICAgRSp7MH06NQor
ICAgICAgICAgICAgRSpSZXF1ZXN0ZWQgaGVyZToKKyAgICAgICAgICAgIEUqezF9OjUKKyAgICAg
ICAgICAgICoxIGZhaWxlZCoKKyAgICAgICAgICAgICIiIi5mb3JtYXQoZml4ZmlsZS5zdHJwYXRo
LCB0ZXN0ZmlsZS5iYXNlbmFtZSkpCisKKworZGVmIHRlc3RfcHl0ZXN0X2ZpeHR1cmVfc2V0dXBf
YW5kX3Bvc3RfZmluYWxpemVyX2hvb2sodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlY29uZnRl
c3QoIiIiCisgICAgICAgIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKyAg
ICAgICAgZGVmIHB5dGVzdF9maXh0dXJlX3NldHVwKGZpeHR1cmVkZWYsIHJlcXVlc3QpOgorICAg
ICAgICAgICAgcHJpbnQoJ1JPT1Qgc2V0dXAgaG9vayBjYWxsZWQgZm9yIHswfSBmcm9tIHsxfScu
Zm9ybWF0KGZpeHR1cmVkZWYuYXJnbmFtZSwgcmVxdWVzdC5ub2RlLm5hbWUpKQorICAgICAgICBk
ZWYgcHl0ZXN0X2ZpeHR1cmVfcG9zdF9maW5hbGl6ZXIoZml4dHVyZWRlZiwgcmVxdWVzdCk6Cisg
ICAgICAgICAgICBwcmludCgnUk9PVCBmaW5hbGl6ZXIgaG9vayBjYWxsZWQgZm9yIHswfSBmcm9t
IHsxfScuZm9ybWF0KGZpeHR1cmVkZWYuYXJnbmFtZSwgcmVxdWVzdC5ub2RlLm5hbWUpKQorICAg
ICIiIikKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoKip7CisgICAgICAgICd0ZXN0cy9jb25mdGVz
dC5weSc6ICIiIgorICAgICAgICAgICAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5j
dGlvbgorICAgICAgICAgICAgZGVmIHB5dGVzdF9maXh0dXJlX3NldHVwKGZpeHR1cmVkZWYsIHJl
cXVlc3QpOgorICAgICAgICAgICAgICAgIHByaW50KCdURVNUUyBzZXR1cCBob29rIGNhbGxlZCBm
b3IgezB9IGZyb20gezF9Jy5mb3JtYXQoZml4dHVyZWRlZi5hcmduYW1lLCByZXF1ZXN0Lm5vZGUu
bmFtZSkpCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2ZpeHR1cmVfcG9zdF9maW5hbGl6ZXIoZml4
dHVyZWRlZiwgcmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcHJpbnQoJ1RFU1RTIGZpbmFsaXpl
ciBob29rIGNhbGxlZCBmb3IgezB9IGZyb20gezF9Jy5mb3JtYXQoZml4dHVyZWRlZi5hcmduYW1l
LCByZXF1ZXN0Lm5vZGUubmFtZSkpCisgICAgICAgICIiIiwKKyAgICAgICAgJ3Rlc3RzL3Rlc3Rf
aG9va3MucHknOiAiIiIKKyAgICAgICAgICAgIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRf
ZnVuY3Rpb24KKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVz
dC5maXh0dXJlKCkKKyAgICAgICAgICAgIGRlZiBteV9maXh0dXJlKCk6CisgICAgICAgICAgICAg
ICAgcmV0dXJuICdzb21lJworCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKG15X2ZpeHR1cmUp
OgorICAgICAgICAgICAgICAgIHByaW50KCdURVNUIHRlc3RfZnVuYycpCisgICAgICAgICAgICAg
ICAgYXNzZXJ0IG15X2ZpeHR1cmUgPT0gJ3NvbWUnCisgICAgICAgICIiIgorICAgIH0pCisgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1zIikKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9
PSAwCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIipURVNUUyBz
ZXR1cCBob29rIGNhbGxlZCBmb3IgbXlfZml4dHVyZSBmcm9tIHRlc3RfZnVuYyoiLAorICAgICAg
ICAiKlJPT1Qgc2V0dXAgaG9vayBjYWxsZWQgZm9yIG15X2ZpeHR1cmUgZnJvbSB0ZXN0X2Z1bmMq
IiwKKyAgICAgICAgIipURVNUIHRlc3RfZnVuYyoiLAorICAgICAgICAiKlRFU1RTIGZpbmFsaXpl
ciBob29rIGNhbGxlZCBmb3IgbXlfZml4dHVyZSBmcm9tIHRlc3RfZnVuYyoiLAorICAgICAgICAi
KlJPT1QgZmluYWxpemVyIGhvb2sgY2FsbGVkIGZvciBteV9maXh0dXJlIGZyb20gdGVzdF9mdW5j
KiIsCisgICAgXSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL2ludGVn
cmF0aW9uLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vaW50ZWdyYXRpb24ucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNmVhMjlmYTk4YjlkYTYwMThjNDNlMWU3ZGU3ODJmYjNiZTZlOGEyNgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL2ludGVncmF0aW9uLnB5CkBA
IC0wLDAgKzEsMzg0IEBACitpbXBvcnQgcHl0ZXN0Citmcm9tIF9weXRlc3QgaW1wb3J0IHB5dGhv
bgorZnJvbSBfcHl0ZXN0IGltcG9ydCBydW5uZXIKKworCitjbGFzcyBUZXN0T0VKU0tJVFNwZWNp
YWxzKG9iamVjdCk6CisgICAgZGVmIHRlc3RfZnVuY2FyZ19ub25fcHljb2xsZWN0b2JqKHNlbGYs
IHRlc3RkaXIpOiAgIyByb3VnaCBqc3Rlc3RzIHVzYWdlCisgICAgICAgIHRlc3RkaXIubWFrZWNv
bmZ0ZXN0KCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgZGVmIHB5
dGVzdF9weWNvbGxlY3RfbWFrZWl0ZW0oY29sbGVjdG9yLCBuYW1lLCBvYmopOgorICAgICAgICAg
ICAgICAgIGlmIG5hbWUgPT0gIk15Q2xhc3MiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
TXlDb2xsZWN0b3IobmFtZSwgcGFyZW50PWNvbGxlY3RvcikKKyAgICAgICAgICAgIGNsYXNzIE15
Q29sbGVjdG9yKHB5dGVzdC5Db2xsZWN0b3IpOgorICAgICAgICAgICAgICAgIGRlZiByZXBvcnRp
bmZvKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5mc3BhdGgsIDMsICJ4
eXoiCisgICAgICAgICIiIikKKyAgICAgICAgbW9kY29sID0gdGVzdGRpci5nZXRtb2R1bGVjb2wo
IiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1
cmUKKyAgICAgICAgICAgIGRlZiBhcmcxKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVy
biA0MgorICAgICAgICAgICAgY2xhc3MgTXlDbGFzcyhvYmplY3QpOgorICAgICAgICAgICAgICAg
IHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICAjIHRoaXMgaG9vayBmaW5kcyBmdW5jYXJnIGZh
Y3RvcmllcworICAgICAgICByZXAgPSBydW5uZXIuY29sbGVjdF9vbmVfbm9kZShjb2xsZWN0b3I9
bW9kY29sKQorICAgICAgICBjbHNjb2wgPSByZXAucmVzdWx0WzBdCisgICAgICAgIGNsc2NvbC5v
YmogPSBsYW1iZGEgYXJnMTogTm9uZQorICAgICAgICBjbHNjb2wuZnVuY2FyZ3MgPSB7fQorICAg
ICAgICBweXRlc3QuX2ZpbGxmdW5jYXJncyhjbHNjb2wpCisgICAgICAgIGFzc2VydCBjbHNjb2wu
ZnVuY2FyZ3NbJ2FyZzEnXSA9PSA0MgorCisgICAgZGVmIHRlc3RfYXV0b3VzZV9maXh0dXJlKHNl
bGYsIHRlc3RkaXIpOiAgIyByb3VnaCBqc3Rlc3RzIHVzYWdlCisgICAgICAgIHRlc3RkaXIubWFr
ZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgZGVm
IHB5dGVzdF9weWNvbGxlY3RfbWFrZWl0ZW0oY29sbGVjdG9yLCBuYW1lLCBvYmopOgorICAgICAg
ICAgICAgICAgIGlmIG5hbWUgPT0gIk15Q2xhc3MiOgorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gTXlDb2xsZWN0b3IobmFtZSwgcGFyZW50PWNvbGxlY3RvcikKKyAgICAgICAgICAgIGNsYXNz
IE15Q29sbGVjdG9yKHB5dGVzdC5Db2xsZWN0b3IpOgorICAgICAgICAgICAgICAgIGRlZiByZXBv
cnRpbmZvKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5mc3BhdGgsIDMs
ICJ4eXoiCisgICAgICAgICIiIikKKyAgICAgICAgbW9kY29sID0gdGVzdGRpci5nZXRtb2R1bGVj
b2woIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZp
eHR1cmUoYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgZGVmIGhlbGxvKCk6CisgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYg
YXJnMShyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gNDIKKyAgICAgICAgICAgIGNs
YXNzIE15Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikK
KyAgICAgICAgIyB0aGlzIGhvb2sgZmluZHMgZnVuY2FyZyBmYWN0b3JpZXMKKyAgICAgICAgcmVw
ID0gcnVubmVyLmNvbGxlY3Rfb25lX25vZGUobW9kY29sKQorICAgICAgICBjbHNjb2wgPSByZXAu
cmVzdWx0WzBdCisgICAgICAgIGNsc2NvbC5vYmogPSBsYW1iZGE6IE5vbmUKKyAgICAgICAgY2xz
Y29sLmZ1bmNhcmdzID0ge30KKyAgICAgICAgcHl0ZXN0Ll9maWxsZnVuY2FyZ3MoY2xzY29sKQor
ICAgICAgICBhc3NlcnQgbm90IGNsc2NvbC5mdW5jYXJncworCisKK2RlZiB0ZXN0X3dyYXBwZWRf
Z2V0ZnNsaW5lbm8oKToKKyAgICBkZWYgZnVuYygpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYg
d3JhcChmKToKKyAgICAgICAgZnVuYy5fX3dyYXBwZWRfXyA9IGYKKyAgICAgICAgZnVuYy5wYXRj
aGluZ3MgPSBbInF3ZSJdCisgICAgICAgIHJldHVybiBmdW5jCisKKyAgICBAd3JhcAorICAgIGRl
ZiB3cmFwcGVkX2Z1bmMoeCwgeSwgeik6CisgICAgICAgIHBhc3MKKyAgICBmcywgbGluZW5vID0g
cHl0aG9uLmdldGZzbGluZW5vKHdyYXBwZWRfZnVuYykKKyAgICBmczIsIGxpbmVubzIgPSBweXRo
b24uZ2V0ZnNsaW5lbm8od3JhcCkKKyAgICBhc3NlcnQgbGluZW5vID4gbGluZW5vMiwgImdldGZz
bGluZW5vIGRvZXMgbm90IHVud3JhcCBjb3JyZWN0bHkiCisKKworY2xhc3MgVGVzdE1vY2tEZWNv
cmF0aW9uKG9iamVjdCk6CisgICAgZGVmIHRlc3Rfd3JhcHBlZF9nZXRmdW5jYXJnbmFtZXMoc2Vs
Zik6CisgICAgICAgIGZyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IGdldGZ1bmNhcmduYW1lcwor
CisgICAgICAgIGRlZiB3cmFwKGYpOgorCisgICAgICAgICAgICBkZWYgZnVuYygpOgorICAgICAg
ICAgICAgICAgIHBhc3MKKworICAgICAgICAgICAgZnVuYy5fX3dyYXBwZWRfXyA9IGYKKyAgICAg
ICAgICAgIHJldHVybiBmdW5jCisKKyAgICAgICAgQHdyYXAKKyAgICAgICAgZGVmIGYoeCk6Cisg
ICAgICAgICAgICBwYXNzCisKKyAgICAgICAgdmFsdWVzID0gZ2V0ZnVuY2FyZ25hbWVzKGYpCisg
ICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gKCJ4IiwpCisKKyAgICBkZWYgdGVzdF93cmFwcGVkX2dl
dGZ1bmNhcmduYW1lc19wYXRjaGluZyhzZWxmKToKKyAgICAgICAgZnJvbSBfcHl0ZXN0LmNvbXBh
dCBpbXBvcnQgZ2V0ZnVuY2FyZ25hbWVzCisKKyAgICAgICAgZGVmIHdyYXAoZik6CisgICAgICAg
ICAgICBkZWYgZnVuYygpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGZ1bmMu
X193cmFwcGVkX18gPSBmCisgICAgICAgICAgICBmdW5jLnBhdGNoaW5ncyA9IFsicXdlIl0KKyAg
ICAgICAgICAgIHJldHVybiBmdW5jCisKKyAgICAgICAgQHdyYXAKKyAgICAgICAgZGVmIGYoeCwg
eSwgeik6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgdmFsdWVzID0gZ2V0ZnVuY2FyZ25h
bWVzKGYpCisgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gKCJ5IiwgInoiKQorCisgICAgZGVmIHRl
c3RfdW5pdHRlc3RfbW9jayhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcHl0ZXN0LmltcG9ydG9y
c2tpcCgidW5pdHRlc3QubW9jayIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAg
ICAgICAgICAgIGltcG9ydCB1bml0dGVzdC5tb2NrCisgICAgICAgICAgICBjbGFzcyBUKHVuaXR0
ZXN0LlRlc3RDYXNlKToKKyAgICAgICAgICAgICAgICBAdW5pdHRlc3QubW9jay5wYXRjaCgib3Mu
cGF0aC5hYnNwYXRoIikKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhzZWxmLCBhYnNw
YXRoKToKKyAgICAgICAgICAgICAgICAgICAgaW1wb3J0IG9zCisgICAgICAgICAgICAgICAgICAg
IG9zLnBhdGguYWJzcGF0aCgiaGVsbG8iKQorICAgICAgICAgICAgICAgICAgICBhYnNwYXRoLmFz
c2VydF9hbnlfY2FsbCgiaGVsbG8iKQorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRl
c3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0x
KQorCisgICAgZGVmIHRlc3RfdW5pdHRlc3RfbW9ja19hbmRfZml4dHVyZShzZWxmLCB0ZXN0ZGly
KToKKyAgICAgICAgcHl0ZXN0LmltcG9ydG9yc2tpcCgidW5pdHRlc3QubW9jayIpCisgICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBvcy5wYXRoCisgICAg
ICAgICAgICBpbXBvcnQgdW5pdHRlc3QubW9jaworICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAor
CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBpbmplY3RfbWUo
KToKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgIEB1bml0dGVzdC5tb2NrLnBh
dGNoLm9iamVjdChvcy5wYXRoLCAiYWJzcGF0aCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbmV3PXVuaXR0ZXN0Lm1vY2suTWFnaWNNb2NrKQorICAgICAgICAgICAg
ZGVmIHRlc3RfaGVsbG8oaW5qZWN0X21lKToKKyAgICAgICAgICAgICAgICBpbXBvcnQgb3MKKyAg
ICAgICAgICAgICAgICBvcy5wYXRoLmFic3BhdGgoImhlbGxvIikKKyAgICAgICAgIiIiKQorICAg
ICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0
b3V0Y29tZShwYXNzZWQ9MSkKKworICAgIGRlZiB0ZXN0X21vY2soc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHB5dGVzdC5pbXBvcnRvcnNraXAoIm1vY2siLCAiMS4wLjEiKQorICAgICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgb3MKKyAgICAgICAgICAgIGlt
cG9ydCB1bml0dGVzdAorICAgICAgICAgICAgaW1wb3J0IG1vY2sKKworICAgICAgICAgICAgY2xh
c3MgVCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgICAgICAgICAgICAgQG1vY2sucGF0Y2goIm9z
LnBhdGguYWJzcGF0aCIpCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oc2VsZiwgYWJz
cGF0aCk6CisgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguYWJzcGF0aCgiaGVsbG8iKQorICAg
ICAgICAgICAgICAgICAgICBhYnNwYXRoLmFzc2VydF9hbnlfY2FsbCgiaGVsbG8iKQorICAgICAg
ICAgICAgZGVmIG1vY2tfYmFzZW5hbWUocGF0aCk6CisgICAgICAgICAgICAgICAgcmV0dXJuICJt
b2NrX2Jhc2VuYW1lIgorICAgICAgICAgICAgQG1vY2sucGF0Y2goIm9zLnBhdGguYWJzcGF0aCIp
CisgICAgICAgICAgICBAbW9jay5wYXRjaCgib3MucGF0aC5ub3JtcGF0aCIpCisgICAgICAgICAg
ICBAbW9jay5wYXRjaCgib3MucGF0aC5iYXNlbmFtZSIsIG5ldz1tb2NrX2Jhc2VuYW1lKQorICAg
ICAgICAgICAgZGVmIHRlc3Rfc29tZXRpbmcobm9ybXBhdGgsIGFic3BhdGgsIHRtcGRpcik6Cisg
ICAgICAgICAgICAgICAgYWJzcGF0aC5yZXR1cm5fdmFsdWUgPSAidGhpcyIKKyAgICAgICAgICAg
ICAgICBvcy5wYXRoLm5vcm1wYXRoKG9zLnBhdGguYWJzcGF0aCgiaGVsbG8iKSkKKyAgICAgICAg
ICAgICAgICBub3JtcGF0aC5hc3NlcnRfYW55X2NhbGwoInRoaXMiKQorICAgICAgICAgICAgICAg
IGFzc2VydCBvcy5wYXRoLmJhc2VuYW1lKCIxMjMiKSA9PSAibW9ja19iYXNlbmFtZSIKKyAgICAg
ICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICBy
ZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKKyAgICAgICAgY2FsbHMgPSByZXByZWMuZ2V0
Y2FsbHMoInB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydCIpCisgICAgICAgIGZ1bmNuYW1lcyA9IFtj
YWxsLnJlcG9ydC5sb2NhdGlvblsyXSBmb3IgY2FsbCBpbiBjYWxscworICAgICAgICAgICAgICAg
ICAgICAgaWYgY2FsbC5yZXBvcnQud2hlbiA9PSAiY2FsbCJdCisgICAgICAgIGFzc2VydCBmdW5j
bmFtZXMgPT0gWyJULnRlc3RfaGVsbG8iLCAidGVzdF9zb21ldGluZyJdCisKKyAgICBkZWYgdGVz
dF9tb2NrX3NvcnRpbmcoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHB5dGVzdC5pbXBvcnRvcnNr
aXAoIm1vY2siLCAiMS4wLjEiKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAg
ICAgICAgICBpbXBvcnQgb3MKKyAgICAgICAgICAgIGltcG9ydCBtb2NrCisKKyAgICAgICAgICAg
IEBtb2NrLnBhdGNoKCJvcy5wYXRoLmFic3BhdGgiKQorICAgICAgICAgICAgZGVmIHRlc3Rfb25l
KGFic3BhdGgpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIEBtb2NrLnBhdGNo
KCJvcy5wYXRoLmFic3BhdGgiKQorICAgICAgICAgICAgZGVmIHRlc3RfdHdvKGFic3BhdGgpOgor
ICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIEBtb2NrLnBhdGNoKCJvcy5wYXRoLmFi
c3BhdGgiKQorICAgICAgICAgICAgZGVmIHRlc3RfdGhyZWUoYWJzcGF0aCk6CisgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5l
X3J1bigpCisgICAgICAgIGNhbGxzID0gcmVwcmVjLmdldHJlcG9ydHMoInB5dGVzdF9ydW50ZXN0
X2xvZ3JlcG9ydCIpCisgICAgICAgIGNhbGxzID0gW3ggZm9yIHggaW4gY2FsbHMgaWYgeC53aGVu
ID09ICJjYWxsIl0KKyAgICAgICAgbmFtZXMgPSBbeC5ub2RlaWQuc3BsaXQoIjo6IilbLTFdIGZv
ciB4IGluIGNhbGxzXQorICAgICAgICBhc3NlcnQgbmFtZXMgPT0gWyJ0ZXN0X29uZSIsICJ0ZXN0
X3R3byIsICJ0ZXN0X3RocmVlIl0KKworICAgIGRlZiB0ZXN0X21vY2tfZG91YmxlX3BhdGNoX2lz
c3VlNDczKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBweXRlc3QuaW1wb3J0b3Jza2lwKCJtb2Nr
IiwgIjEuMC4xIikKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAg
ZnJvbSBtb2NrIGltcG9ydCBwYXRjaAorICAgICAgICAgICAgZnJvbSBweXRlc3QgaW1wb3J0IG1h
cmsKKworICAgICAgICAgICAgQHBhdGNoKCdvcy5nZXRjd2QnKQorICAgICAgICAgICAgQHBhdGNo
KCdvcy5wYXRoJykKKyAgICAgICAgICAgIEBtYXJrLnNsb3cKKyAgICAgICAgICAgIGNsYXNzIFRl
c3RTaW1wbGUob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9zaW1wbGVfdGhpbmco
c2VsZiwgbW9ja19wYXRoLCBtb2NrX2dldGN3ZCk6CisgICAgICAgICAgICAgICAgICAgIHBhc3MK
KyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAg
ICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworCitjbGFzcyBUZXN0UmVSdW5U
ZXN0cyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X3JlcnVuKHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGZyb20gX3B5dGVzdC5ydW5u
ZXIgaW1wb3J0IHJ1bnRlc3Rwcm90b2NvbAorICAgICAgICAgICAgZGVmIHB5dGVzdF9ydW50ZXN0
X3Byb3RvY29sKGl0ZW0sIG5leHRpdGVtKToKKyAgICAgICAgICAgICAgICBydW50ZXN0cHJvdG9j
b2woaXRlbSwgbG9nPUZhbHNlLCBuZXh0aXRlbT1uZXh0aXRlbSkKKyAgICAgICAgICAgICAgICBy
dW50ZXN0cHJvdG9jb2woaXRlbSwgbG9nPVRydWUsIG5leHRpdGVtPW5leHRpdGVtKQorICAgICAg
ICAiIiIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKKyAgICAgICAgICAgIGNvdW50ID0gMAorICAgICAgICAgICAgcmVxID0gTm9uZQor
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgZml4KHJlcXVlc3Qp
OgorICAgICAgICAgICAgICAgIGdsb2JhbCBjb3VudCwgcmVxCisgICAgICAgICAgICAgICAgYXNz
ZXJ0IHJlcXVlc3QgIT0gcmVxCisgICAgICAgICAgICAgICAgcmVxID0gcmVxdWVzdAorICAgICAg
ICAgICAgICAgIHByaW50ICgiZml4IGNvdW50ICVzIiAlIGNvdW50KQorICAgICAgICAgICAgICAg
IGNvdW50ICs9IDEKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZpeChmaXgpOgorICAgICAgICAgICAg
ICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgiLXMiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAg
ICAgICAqZml4IGNvdW50IDAqCisgICAgICAgICAgICAqZml4IGNvdW50IDEqCisgICAgICAgICIi
IikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIiIgorICAgICAgICAgICAg
KjIgcGFzc2VkKgorICAgICAgICAiIiIpCisKKworZGVmIHRlc3RfcHl0ZXN0Y29uZmlnX2lzX3Nl
c3Npb25fc2NvcGVkKCk6CisgICAgZnJvbSBfcHl0ZXN0LmZpeHR1cmVzIGltcG9ydCBweXRlc3Rj
b25maWcKKyAgICBhc3NlcnQgcHl0ZXN0Y29uZmlnLl9weXRlc3RmaXh0dXJlZnVuY3Rpb24uc2Nv
cGUgPT0gInNlc3Npb24iCisKKworY2xhc3MgVGVzdE5vc2VsaWtlVGVzdEF0dHJpYnV0ZShvYmpl
Y3QpOgorICAgIGRlZiB0ZXN0X21vZHVsZV93aXRoX2dsb2JhbF90ZXN0KHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBfX3Rlc3RfXyA9
IEZhbHNlCisgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbygpOgorICAgICAgICAgICAgICAgIHBh
c3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQor
ICAgICAgICBhc3NlcnQgbm90IHJlcHJlYy5nZXRmYWlsZWRjb2xsZWN0aW9ucygpCisgICAgICAg
IGNhbGxzID0gcmVwcmVjLmdldHJlcG9ydHMoInB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydCIpCisg
ICAgICAgIGFzc2VydCBub3QgY2FsbHMKKworICAgIGRlZiB0ZXN0X2NsYXNzX2FuZF9tZXRob2Qo
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAg
ICAgIF9fdGVzdF9fID0gVHJ1ZQorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAg
ICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIHRlc3RfZnVuYy5fX3Rlc3RfXyA9IEZhbHNlCisK
KyAgICAgICAgICAgIGNsYXNzIFRlc3RTb21lKG9iamVjdCk6CisgICAgICAgICAgICAgICAgX190
ZXN0X18gPSBGYWxzZQorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhvZChzZWxmKToKKyAg
ICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRl
c3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgIGFzc2VydCBub3QgcmVwcmVjLmdldGZhaWxlZGNv
bGxlY3Rpb25zKCkKKyAgICAgICAgY2FsbHMgPSByZXByZWMuZ2V0cmVwb3J0cygicHl0ZXN0X3J1
bnRlc3RfbG9ncmVwb3J0IikKKyAgICAgICAgYXNzZXJ0IG5vdCBjYWxscworCisgICAgZGVmIHRl
c3RfdW5pdHRlc3RfY2xhc3Moc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCB1bml0dGVzdAorICAgICAgICAgICAgY2xhc3Mg
VEModW5pdHRlc3QuVGVzdENhc2UpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0XzEoc2VsZik6
CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGNsYXNzIFRDMih1bml0dGVz
dC5UZXN0Q2FzZSk6CisgICAgICAgICAgICAgICAgX190ZXN0X18gPSBGYWxzZQorICAgICAgICAg
ICAgICAgIGRlZiB0ZXN0XzIoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICBh
c3NlcnQgbm90IHJlcHJlYy5nZXRmYWlsZWRjb2xsZWN0aW9ucygpCisgICAgICAgIGNhbGwgPSBy
ZXByZWMuZ2V0Y2FsbHMoInB5dGVzdF9jb2xsZWN0aW9uX21vZGlmeWl0ZW1zIilbMF0KKyAgICAg
ICAgYXNzZXJ0IGxlbihjYWxsLml0ZW1zKSA9PSAxCisgICAgICAgIGFzc2VydCBjYWxsLml0ZW1z
WzBdLmNscy5fX25hbWVfXyA9PSAiVEMiCisKKyAgICBkZWYgdGVzdF9jbGFzc193aXRoX25hc3R5
X2dldGF0dHIoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIk1ha2Ugc3VyZSB3ZSBoYW5kbGUg
Y2xhc3NlcyB3aXRoIGEgY3VzdG9tIG5hc3R5IF9fZ2V0YXR0cl9fIHJpZ2h0LgorCisgICAgICAg
IFdpdGggYSBjdXN0b20gX19nZXRhdHRyX18gd2hpY2ggZS5nLiByZXR1cm5zIGEgZnVuY3Rpb24g
KGxpa2Ugd2l0aCBhCisgICAgICAgIFJQQyB3cmFwcGVyKSwgd2Ugc2hvdWxkbid0IGFzc3VtZSB0
aGlzIG1lYW50ICJfX3Rlc3RfXyA9IFRydWUiLgorICAgICAgICAiIiIKKyAgICAgICAgIyBodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QvaXNzdWVzLzEyMDQKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgY2xhc3MgTWV0YU1vZGVsKHR5cGUpOgor
CisgICAgICAgICAgICAgICAgZGVmIF9fZ2V0YXR0cl9fKGNscywga2V5KToKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGxhbWJkYTogTm9uZQorCisKKyAgICAgICAgICAgIEJhc2VNb2RlbCA9
IE1ldGFNb2RlbCgnTW9kZWwnLCAoKSwge30pCisKKworICAgICAgICAgICAgY2xhc3MgTW9kZWwo
QmFzZU1vZGVsKToKKworICAgICAgICAgICAgICAgIF9fbWV0YWNsYXNzX18gPSBNZXRhTW9kZWwK
KworICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2JsYWgoc2VsZik6CisgICAgICAgICAgICAgICAg
ICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9y
dW4oKQorICAgICAgICBhc3NlcnQgbm90IHJlcHJlYy5nZXRmYWlsZWRjb2xsZWN0aW9ucygpCisg
ICAgICAgIGNhbGwgPSByZXByZWMuZ2V0Y2FsbHMoInB5dGVzdF9jb2xsZWN0aW9uX21vZGlmeWl0
ZW1zIilbMF0KKyAgICAgICAgYXNzZXJ0IG5vdCBjYWxsLml0ZW1zCisKKworQHB5dGVzdC5tYXJr
Lmlzc3VlMzUxCitjbGFzcyBUZXN0UGFyYW1ldGVyaXplKG9iamVjdCk6CisKKyAgICBkZWYgdGVz
dF9pZGZuX21hcmtlcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxl
KCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBkZWYgaWRmbihw
YXJhbSk6CisgICAgICAgICAgICAgICAgaWYgcGFyYW0gPT0gMDoKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuICdzcGFtJworICAgICAgICAgICAgICAgIGVsaWYgcGFyYW0gPT0gMToKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuICdoYW0nCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCdhLGInLCBbKDAsIDIpLCAoMSwgMildLCBpZHM9aWRmbikKKyAgICAgICAgICAg
IGRlZiB0ZXN0X3BhcmFtcyhhLCBiKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIi
IikKKyAgICAgICAgcmVzID0gdGVzdGRpci5ydW5weXRlc3QoJy0tY29sbGVjdC1vbmx5JykKKyAg
ICAgICAgcmVzLnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqc3BhbS0yKiIs
CisgICAgICAgICAgICAiKmhhbS0yKiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9pZGZu
X2ZpeHR1cmUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIK
KyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgZGVmIGlkZm4ocGFyYW0p
OgorICAgICAgICAgICAgICAgIGlmIHBhcmFtID09IDA6CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAnc3BhbScKKyAgICAgICAgICAgICAgICBlbGlmIHBhcmFtID09IDE6CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiAnaGFtJworICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShwYXJh
bXM9WzAsIDFdLCBpZHM9aWRmbikKKyAgICAgICAgICAgIGRlZiBhKHJlcXVlc3QpOgorICAgICAg
ICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZShwYXJhbXM9WzEsIDJdLCBpZHM9aWRmbikKKyAgICAgICAgICAgIGRlZiBiKHJlcXVlc3Qp
OgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X3BhcmFtcyhhLCBiKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikK
KyAgICAgICAgcmVzID0gdGVzdGRpci5ydW5weXRlc3QoJy0tY29sbGVjdC1vbmx5JykKKyAgICAg
ICAgcmVzLnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqc3BhbS0yKiIsCisg
ICAgICAgICAgICAiKmhhbS0yKiIsCisgICAgICAgIF0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL3B5dGhvbi9tZXRhZnVuYy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9u
L21ldGFmdW5jLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmZmI3YmI1ZGEyYTFjMzgxYTkxNzg0ZmI4ZGM4NTY5
NTYyM2E5YmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9t
ZXRhZnVuYy5weQpAQCAtMCwwICsxLDE1NjEgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCitp
bXBvcnQgcmUKK2ltcG9ydCBzeXMKKworaW1wb3J0IF9weXRlc3QuX2NvZGUKK2ltcG9ydCBweQor
aW1wb3J0IHB5dGVzdAorZnJvbSBfcHl0ZXN0IGltcG9ydCBweXRob24sIGZpeHR1cmVzCisKK2lt
cG9ydCBoeXBvdGhlc2lzCitmcm9tIGh5cG90aGVzaXMgaW1wb3J0IHN0cmF0ZWdpZXMKKworUFkz
ID0gc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCkKKworCitjbGFzcyBUZXN0TWV0YWZ1bmMob2Jq
ZWN0KToKKyAgICBkZWYgTWV0YWZ1bmMoc2VsZiwgZnVuYyk6CisgICAgICAgICMgdGhlIHVuaXQg
dGVzdHMgb2YgdGhpcyBjbGFzcyBjaGVjayBpZiB0aGluZ3Mgd29yayBjb3JyZWN0bHkKKyAgICAg
ICAgIyBvbiB0aGUgZnVuY2FyZyBsZXZlbCwgc28gd2UgZG9uJ3QgbmVlZCBhIGZ1bGwgYmxvd24K
KyAgICAgICAgIyBpbml0aWxpYXphdGlvbgorICAgICAgICBjbGFzcyBGaXh0dXJlSW5mbyhvYmpl
Y3QpOgorICAgICAgICAgICAgbmFtZTJmaXh0dXJlZGVmcyA9IE5vbmUKKworICAgICAgICAgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIG5hbWVzKToKKyAgICAgICAgICAgICAgICBzZWxmLm5hbWVzX2Ns
b3N1cmUgPSBuYW1lcworCisgICAgICAgIG5hbWVzID0gZml4dHVyZXMuZ2V0ZnVuY2FyZ25hbWVz
KGZ1bmMpCisgICAgICAgIGZpeHR1cmVpbmZvID0gRml4dHVyZUluZm8obmFtZXMpCisgICAgICAg
IHJldHVybiBweXRob24uTWV0YWZ1bmMoZnVuYywgZml4dHVyZWluZm8sIE5vbmUpCisKKyAgICBk
ZWYgdGVzdF9ub19mdW5jYXJncyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgZGVmIGZ1bmN0aW9u
KCk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIG1ldGFmdW5jID0gc2VsZi5NZXRhZnVuYyhm
dW5jdGlvbikKKyAgICAgICAgYXNzZXJ0IG5vdCBtZXRhZnVuYy5maXh0dXJlbmFtZXMKKyAgICAg
ICAgcmVwcihtZXRhZnVuYy5fY2FsbHMpCisKKyAgICBkZWYgdGVzdF9mdW5jdGlvbl9iYXNpYyhz
ZWxmKToKKyAgICAgICAgZGVmIGZ1bmMoYXJnMSwgYXJnMj0icXdlIik6CisgICAgICAgICAgICBw
YXNzCisgICAgICAgIG1ldGFmdW5jID0gc2VsZi5NZXRhZnVuYyhmdW5jKQorICAgICAgICBhc3Nl
cnQgbGVuKG1ldGFmdW5jLmZpeHR1cmVuYW1lcykgPT0gMQorICAgICAgICBhc3NlcnQgJ2FyZzEn
IGluIG1ldGFmdW5jLmZpeHR1cmVuYW1lcworICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuZnVuY3Rp
b24gaXMgZnVuYworICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuY2xzIGlzIE5vbmUKKworICAgIGRl
ZiB0ZXN0X2FkZGNhbGxfbm9fYXJncyhzZWxmKToKKyAgICAgICAgZGVmIGZ1bmMoYXJnMSk6Cisg
ICAgICAgICAgICBwYXNzCisgICAgICAgIG1ldGFmdW5jID0gc2VsZi5NZXRhZnVuYyhmdW5jKQor
ICAgICAgICBtZXRhZnVuYy5hZGRjYWxsKCkKKyAgICAgICAgYXNzZXJ0IGxlbihtZXRhZnVuYy5f
Y2FsbHMpID09IDEKKyAgICAgICAgY2FsbCA9IG1ldGFmdW5jLl9jYWxsc1swXQorICAgICAgICBh
c3NlcnQgY2FsbC5pZCA9PSAiMCIKKyAgICAgICAgYXNzZXJ0IG5vdCBoYXNhdHRyKGNhbGwsICdw
YXJhbScpCisKKyAgICBkZWYgdGVzdF9hZGRjYWxsX2lkKHNlbGYpOgorICAgICAgICBkZWYgZnVu
YyhhcmcxKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgbWV0YWZ1bmMgPSBzZWxmLk1ldGFm
dW5jKGZ1bmMpCisgICAgICAgIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgIm1ldGFmdW5jLmFk
ZGNhbGwoaWQ9Tm9uZSkiKQorCisgICAgICAgIG1ldGFmdW5jLmFkZGNhbGwoaWQ9MSkKKyAgICAg
ICAgcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCAibWV0YWZ1bmMuYWRkY2FsbChpZD0xKSIpCisg
ICAgICAgIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgIm1ldGFmdW5jLmFkZGNhbGwoaWQ9JzEn
KSIpCisgICAgICAgIG1ldGFmdW5jLmFkZGNhbGwoaWQ9MikKKyAgICAgICAgYXNzZXJ0IGxlbiht
ZXRhZnVuYy5fY2FsbHMpID09IDIKKyAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1swXS5p
ZCA9PSAiMSIKKyAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1sxXS5pZCA9PSAiMiIKKwor
ICAgIGRlZiB0ZXN0X2FkZGNhbGxfcGFyYW0oc2VsZik6CisgICAgICAgIGRlZiBmdW5jKGFyZzEp
OgorICAgICAgICAgICAgcGFzcworICAgICAgICBtZXRhZnVuYyA9IHNlbGYuTWV0YWZ1bmMoZnVu
YykKKworICAgICAgICBjbGFzcyBvYmoob2JqZWN0KToKKyAgICAgICAgICAgIHBhc3MKKworICAg
ICAgICBtZXRhZnVuYy5hZGRjYWxsKHBhcmFtPW9iaikKKyAgICAgICAgbWV0YWZ1bmMuYWRkY2Fs
bChwYXJhbT1vYmopCisgICAgICAgIG1ldGFmdW5jLmFkZGNhbGwocGFyYW09MSkKKyAgICAgICAg
YXNzZXJ0IGxlbihtZXRhZnVuYy5fY2FsbHMpID09IDMKKyAgICAgICAgYXNzZXJ0IG1ldGFmdW5j
Ll9jYWxsc1swXS5nZXRwYXJhbSgiYXJnMSIpID09IG9iagorICAgICAgICBhc3NlcnQgbWV0YWZ1
bmMuX2NhbGxzWzFdLmdldHBhcmFtKCJhcmcxIikgPT0gb2JqCisgICAgICAgIGFzc2VydCBtZXRh
ZnVuYy5fY2FsbHNbMl0uZ2V0cGFyYW0oImFyZzEiKSA9PSAxCisKKyAgICBkZWYgdGVzdF9hZGRj
YWxsX2Z1bmNhcmdzKHNlbGYpOgorICAgICAgICBkZWYgZnVuYyh4KToKKyAgICAgICAgICAgIHBh
c3MKKworICAgICAgICBtZXRhZnVuYyA9IHNlbGYuTWV0YWZ1bmMoZnVuYykKKworICAgICAgICBj
bGFzcyBvYmoob2JqZWN0KToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBtZXRhZnVuYy5h
ZGRjYWxsKGZ1bmNhcmdzPXsieCI6IDJ9KQorICAgICAgICBtZXRhZnVuYy5hZGRjYWxsKGZ1bmNh
cmdzPXsieCI6IDN9KQorICAgICAgICBweXRlc3QucmFpc2VzKHB5dGVzdC5mYWlsLkV4Y2VwdGlv
biwgIm1ldGFmdW5jLmFkZGNhbGwoeyd4eXonOiAwfSkiKQorICAgICAgICBhc3NlcnQgbGVuKG1l
dGFmdW5jLl9jYWxscykgPT0gMgorICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzBdLmZ1
bmNhcmdzID09IHsneCc6IDJ9CisgICAgICAgIGFzc2VydCBtZXRhZnVuYy5fY2FsbHNbMV0uZnVu
Y2FyZ3MgPT0geyd4JzogM30KKyAgICAgICAgYXNzZXJ0IG5vdCBoYXNhdHRyKG1ldGFmdW5jLl9j
YWxsc1sxXSwgJ3BhcmFtJykKKworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX2Vycm9yKHNlbGYp
OgorICAgICAgICBkZWYgZnVuYyh4LCB5KToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgbWV0
YWZ1bmMgPSBzZWxmLk1ldGFmdW5jKGZ1bmMpCisgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXpl
KCJ4IiwgWzEsIDJdKQorICAgICAgICBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIGxhbWJkYTog
bWV0YWZ1bmMucGFyYW1ldHJpemUoIngiLCBbNSwgNl0pKQorICAgICAgICBweXRlc3QucmFpc2Vz
KFZhbHVlRXJyb3IsIGxhbWJkYTogbWV0YWZ1bmMucGFyYW1ldHJpemUoIngiLCBbNSwgNl0pKQor
ICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgieSIsIFsxLCAyXSkKKyAgICAgICAgcHl0ZXN0
LnJhaXNlcyhWYWx1ZUVycm9yLCBsYW1iZGE6IG1ldGFmdW5jLnBhcmFtZXRyaXplKCJ5IiwgWzUs
IDZdKSkKKyAgICAgICAgcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBsYW1iZGE6IG1ldGFmdW5j
LnBhcmFtZXRyaXplKCJ5IiwgWzUsIDZdKSkKKworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX2Jh
ZF9zY29wZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgZGVmIGZ1bmMoeCk6CisgICAgICAgICAg
ICBwYXNzCisgICAgICAgIG1ldGFmdW5jID0gc2VsZi5NZXRhZnVuYyhmdW5jKQorICAgICAgICB0
cnk6CisgICAgICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgieCIsIFsxXSwgc2NvcGU9J2Rv
Z2d5JykKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgdmU6CisgICAgICAgICAgICBhc3Nl
cnQgImhhcyBhbiB1bnN1cHBvcnRlZCBzY29wZSB2YWx1ZSAnZG9nZ3knIiBpbiBzdHIodmUpCisK
KyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9hbmRfaWQoc2VsZik6CisgICAgICAgIGRlZiBmdW5j
KHgsIHkpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBtZXRhZnVuYyA9IHNlbGYuTWV0YWZ1
bmMoZnVuYykKKworICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgieCIsIFsxLCAyXSwgaWRz
PVsnYmFzaWMnLCAnYWR2YW5jZWQnXSkKKyAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoInki
LCBbImFiYyIsICJkZWYiXSkKKyAgICAgICAgaWRzID0gW3guaWQgZm9yIHggaW4gbWV0YWZ1bmMu
X2NhbGxzXQorICAgICAgICBhc3NlcnQgaWRzID09IFsiYmFzaWMtYWJjIiwgImJhc2ljLWRlZiIs
ICJhZHZhbmNlZC1hYmMiLCAiYWR2YW5jZWQtZGVmIl0KKworICAgIGRlZiB0ZXN0X3BhcmFtZXRy
aXplX2FuZF9pZF91bmljb2RlKHNlbGYpOgorICAgICAgICAiIiJBbGxvdyB1bmljb2RlIHN0cmlu
Z3MgZm9yICJpZHMiIHBhcmFtZXRlciBpbiBQeXRob24gMiAoIyMxOTA1KSIiIgorICAgICAgICBk
ZWYgZnVuYyh4KToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgbWV0YWZ1bmMgPSBzZWxmLk1l
dGFmdW5jKGZ1bmMpCisgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCJ4IiwgWzEsIDJdLCBp
ZHM9W3UnYmFzaWMnLCB1J2FkdmFuY2VkJ10pCisgICAgICAgIGlkcyA9IFt4LmlkIGZvciB4IGlu
IG1ldGFmdW5jLl9jYWxsc10KKyAgICAgICAgYXNzZXJ0IGlkcyA9PSBbdSJiYXNpYyIsIHUiYWR2
YW5jZWQiXQorCisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfd2l0aF93cm9uZ19udW1iZXJfb2Zf
aWRzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBkZWYgZnVuYyh4LCB5KToKKyAgICAgICAgICAg
IHBhc3MKKyAgICAgICAgbWV0YWZ1bmMgPSBzZWxmLk1ldGFmdW5jKGZ1bmMpCisKKyAgICAgICAg
cHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBsYW1iZGE6CisgICAgICAgICAgICAgICAgICAgICAg
bWV0YWZ1bmMucGFyYW1ldHJpemUoIngiLCBbMSwgMl0sIGlkcz1bJ2Jhc2ljJ10pKQorCisgICAg
ICAgIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgbGFtYmRhOgorICAgICAgICAgICAgICAgICAg
ICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCgieCIsICJ5IiksIFsoImFiYyIsICJkZWYiKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJn
aGkiLCAiamtsIildLCBpZHM9WyJvbmUiXSkpCisKKyAgICBAcHl0ZXN0Lm1hcmsuaXNzdWU1MTAK
KyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9lbXB0eV9saXN0KHNlbGYpOgorICAgICAgICBkZWYg
ZnVuYyh5KToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgbWV0YWZ1bmMgPSBzZWxmLk1ldGFm
dW5jKGZ1bmMpCisgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCJ5IiwgW10pCisgICAgICAg
IGFzc2VydCAnc2tpcCcgPT0gbWV0YWZ1bmMuX2NhbGxzWzBdLm1hcmtzWzBdLm5hbWUKKworICAg
IGRlZiB0ZXN0X3BhcmFtZXRyaXplX3dpdGhfdXNlcm9iamVjdHMoc2VsZik6CisgICAgICAgIGRl
ZiBmdW5jKHgsIHkpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBtZXRhZnVuYyA9IHNlbGYu
TWV0YWZ1bmMoZnVuYykKKworICAgICAgICBjbGFzcyBBKG9iamVjdCk6CisgICAgICAgICAgICBw
YXNzCisKKyAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoIngiLCBbQSgpLCBBKCldKQorICAg
ICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgieSIsIGxpc3QoImFiIikpCisgICAgICAgIGFzc2Vy
dCBtZXRhZnVuYy5fY2FsbHNbMF0uaWQgPT0gIngwLWEiCisgICAgICAgIGFzc2VydCBtZXRhZnVu
Yy5fY2FsbHNbMV0uaWQgPT0gIngwLWIiCisgICAgICAgIGFzc2VydCBtZXRhZnVuYy5fY2FsbHNb
Ml0uaWQgPT0gIngxLWEiCisgICAgICAgIGFzc2VydCBtZXRhZnVuYy5fY2FsbHNbM10uaWQgPT0g
IngxLWIiCisKKyAgICBAaHlwb3RoZXNpcy5naXZlbihzdHJhdGVnaWVzLnRleHQoKSB8IHN0cmF0
ZWdpZXMuYmluYXJ5KCkpCisgICAgZGVmIHRlc3RfaWR2YWxfaHlwb3RoZXNpcyhzZWxmLCB2YWx1
ZSk6CisgICAgICAgIGZyb20gX3B5dGVzdC5weXRob24gaW1wb3J0IF9pZHZhbAorICAgICAgICBl
c2NhcGVkID0gX2lkdmFsKHZhbHVlLCAnYScsIDYsIE5vbmUpCisgICAgICAgIGFzc2VydCBpc2lu
c3RhbmNlKGVzY2FwZWQsIHN0cikKKyAgICAgICAgaWYgUFkzOgorICAgICAgICAgICAgZXNjYXBl
ZC5lbmNvZGUoJ2FzY2lpJykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGVzY2FwZWQuZGVj
b2RlKCdhc2NpaScpCisKKyAgICBkZWYgdGVzdF91bmljb2RlX2lkdmFsKHNlbGYpOgorICAgICAg
ICAiIiJUaGlzIHRlc3RzIHRoYXQgVW5pY29kZSBzdHJpbmdzIG91dHNpZGUgdGhlIEFTQ0lJIGNo
YXJhY3RlciBzZXQgZ2V0CisgICAgICAgIGVzY2FwZWQsIHVzaW5nIGJ5dGUgZXNjYXBlcyBpZiB0
aGV5J3JlIGluIHRoYXQgcmFuZ2Ugb3IgdW5pY29kZQorICAgICAgICBlc2NhcGVzIGlmIHRoZXkn
cmUgbm90LgorCisgICAgICAgICIiIgorICAgICAgICBmcm9tIF9weXRlc3QucHl0aG9uIGltcG9y
dCBfaWR2YWwKKyAgICAgICAgdmFsdWVzID0gWworICAgICAgICAgICAgKAorICAgICAgICAgICAg
ICAgIHUnJywKKyAgICAgICAgICAgICAgICAnJworICAgICAgICAgICAgKSwKKyAgICAgICAgICAg
ICgKKyAgICAgICAgICAgICAgICB1J2FzY2lpJywKKyAgICAgICAgICAgICAgICAnYXNjaWknCisg
ICAgICAgICAgICApLAorICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgIHUnYcOnw6NvJywK
KyAgICAgICAgICAgICAgICAnYVxceGU3XFx4ZTNvJworICAgICAgICAgICAgKSwKKyAgICAgICAg
ICAgICgKKyAgICAgICAgICAgICAgICB1J2pvc8OpQGJsYWguY29tJywKKyAgICAgICAgICAgICAg
ICAnam9zXFx4ZTlAYmxhaC5jb20nCisgICAgICAgICAgICApLAorICAgICAgICAgICAgKAorICAg
ICAgICAgICAgICAgIHUnzrTOv866Ls65zrzOrkDPgM6xz4HOrM60zrXOuc6zzrzOsS7OtM6/zrrO
uc68zq4nLAorICAgICAgICAgICAgICAgICdcXHUwM2I0XFx1MDNiZlxcdTAzYmEuXFx1MDNiOVxc
dTAzYmNcXHUwM2FlQFxcdTAzYzBcXHUwM2IxXFx1MDNjMVxcdTAzYWNcXHUwM2I0XFx1MDNiNVxc
dTAzYjlcXHUwM2IzJworICAgICAgICAgICAgICAgICdcXHUwM2JjXFx1MDNiMS5cXHUwM2I0XFx1
MDNiZlxcdTAzYmFcXHUwM2I5XFx1MDNiY1xcdTAzYWUnCisgICAgICAgICAgICApLAorICAgICAg
ICBdCisgICAgICAgIGZvciB2YWwsIGV4cGVjdGVkIGluIHZhbHVlczoKKyAgICAgICAgICAgIGFz
c2VydCBfaWR2YWwodmFsLCAnYScsIDYsIE5vbmUpID09IGV4cGVjdGVkCisKKyAgICBkZWYgdGVz
dF9ieXRlc19pZHZhbChzZWxmKToKKyAgICAgICAgIiIidW5pdHRlc3QgZm9yIHRoZSBleHBlY3Rl
ZCBiZWhhdmlvciB0byBvYnRhaW4gaWRzIGZvciBwYXJhbWV0cml6ZWQKKyAgICAgICAgYnl0ZXMg
dmFsdWVzOgorICAgICAgICAtIHB5dGhvbjI6IG5vbi1hc2NpaSBzdHJpbmdzIGFyZSBjb25zaWRl
cmVkIGJ5dGVzIGFuZCBmb3JtYXR0ZWQgdXNpbmcKKyAgICAgICAgImJpbmFyeSBlc2NhcGUiLCB3
aGVyZSBhbnkgYnl0ZSA8IDEyNyBpcyBlc2NhcGVkIGludG8gaXRzIGhleCBmb3JtLgorICAgICAg
ICAtIHB5dGhvbjM6IGJ5dGVzIG9iamVjdHMgYXJlIGFsd2F5cyBlc2NhcGVkIHVzaW5nICJiaW5h
cnkgZXNjYXBlIi4KKyAgICAgICAgIiIiCisgICAgICAgIGZyb20gX3B5dGVzdC5weXRob24gaW1w
b3J0IF9pZHZhbAorICAgICAgICB2YWx1ZXMgPSBbCisgICAgICAgICAgICAoYicnLCAnJyksCisg
ICAgICAgICAgICAoYidceGMzXHhiNFx4ZmZceGU0JywgJ1xceGMzXFx4YjRcXHhmZlxceGU0Jyks
CisgICAgICAgICAgICAoYidhc2NpaScsICdhc2NpaScpLAorICAgICAgICAgICAgKHUnzrHPgc6s
Jy5lbmNvZGUoJ3V0Zi04JyksICdcXHhjZVxceGIxXFx4Y2ZcXHg4MVxceGNlXFx4YWMnKSwKKyAg
ICAgICAgXQorICAgICAgICBmb3IgdmFsLCBleHBlY3RlZCBpbiB2YWx1ZXM6CisgICAgICAgICAg
ICBhc3NlcnQgX2lkdmFsKHZhbCwgJ2EnLCA2LCBOb25lKSA9PSBleHBlY3RlZAorCisgICAgQHB5
dGVzdC5tYXJrLmlzc3VlMjUwCisgICAgZGVmIHRlc3RfaWRtYWtlcl9hdXRvbmFtZShzZWxmKToK
KyAgICAgICAgZnJvbSBfcHl0ZXN0LnB5dGhvbiBpbXBvcnQgaWRtYWtlcgorICAgICAgICByZXN1
bHQgPSBpZG1ha2VyKCgiYSIsICJiIiksIFtweXRlc3QucGFyYW0oInN0cmluZyIsIDEuMCksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5dGVzdC5wYXJhbSgic3Qtcmlu
ZyIsIDIuMCldKQorICAgICAgICBhc3NlcnQgcmVzdWx0ID09IFsic3RyaW5nLTEuMCIsICJzdC1y
aW5nLTIuMCJdCisKKyAgICAgICAgcmVzdWx0ID0gaWRtYWtlcigoImEiLCAiYiIpLCBbcHl0ZXN0
LnBhcmFtKG9iamVjdCgpLCAxLjApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBweXRlc3QucGFyYW0ob2JqZWN0KCksIG9iamVjdCgpKV0pCisgICAgICAgIGFzc2VydCBy
ZXN1bHQgPT0gWyJhMC0xLjAiLCAiYTEtYjEiXQorICAgICAgICAjIHVuaWNvZGUgbWl4aW5nLCBp
c3N1ZTI1MAorICAgICAgICByZXN1bHQgPSBpZG1ha2VyKAorICAgICAgICAgICAgKHB5LmJ1aWx0
aW4uX3RvdGV4dCgiYSIpLCAiYiIpLAorICAgICAgICAgICAgW3B5dGVzdC5wYXJhbSh7fSwgYidc
eGMzXHhiNCcpXSkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdCA9PSBbJ2EwLVxceGMzXFx4YjQnXQor
CisgICAgZGVmIHRlc3RfaWRtYWtlcl93aXRoX2J5dGVzX3JlZ2V4KHNlbGYpOgorICAgICAgICBm
cm9tIF9weXRlc3QucHl0aG9uIGltcG9ydCBpZG1ha2VyCisgICAgICAgIHJlc3VsdCA9IGlkbWFr
ZXIoKCJhIiksIFtweXRlc3QucGFyYW0ocmUuY29tcGlsZShiJ2ZvbycpLCAxLjApXSkKKyAgICAg
ICAgYXNzZXJ0IHJlc3VsdCA9PSBbImZvbyJdCisKKyAgICBkZWYgdGVzdF9pZG1ha2VyX25hdGl2
ZV9zdHJpbmdzKHNlbGYpOgorICAgICAgICBmcm9tIF9weXRlc3QucHl0aG9uIGltcG9ydCBpZG1h
a2VyCisgICAgICAgIHRvdGV4dCA9IHB5LmJ1aWx0aW4uX3RvdGV4dAorICAgICAgICByZXN1bHQg
PSBpZG1ha2VyKCgiYSIsICJiIiksIFsKKyAgICAgICAgICAgIHB5dGVzdC5wYXJhbSgxLjAsIC0x
LjEpLAorICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKDIsIC0yMDIpLAorICAgICAgICAgICAgcHl0
ZXN0LnBhcmFtKCJ0aHJlZSIsICJ0aHJlZSBodW5kcmVkIiksCisgICAgICAgICAgICBweXRlc3Qu
cGFyYW0oVHJ1ZSwgRmFsc2UpLAorICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKE5vbmUsIE5vbmUp
LAorICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKHJlLmNvbXBpbGUoJ2ZvbycpLCByZS5jb21waWxl
KCdiYXInKSksCisgICAgICAgICAgICBweXRlc3QucGFyYW0oc3RyLCBpbnQpLAorICAgICAgICAg
ICAgcHl0ZXN0LnBhcmFtKGxpc3QoInNpeCIpLCBbNjYsIDY2XSksCisgICAgICAgICAgICBweXRl
c3QucGFyYW0oc2V0KFs3XSksIHNldCgic2V2ZW4iKSksCisgICAgICAgICAgICBweXRlc3QucGFy
YW0odHVwbGUoImVpZ2h0IiksICg4LCAtOCwgOCkpLAorICAgICAgICAgICAgcHl0ZXN0LnBhcmFt
KGInXHhjM1x4YjQnLCBiIm5hbWUiKSwKKyAgICAgICAgICAgIHB5dGVzdC5wYXJhbShiJ1x4YzNc
eGI0JywgdG90ZXh0KCJvdGhlciIpKSwKKyAgICAgICAgXSkKKyAgICAgICAgYXNzZXJ0IHJlc3Vs
dCA9PSBbIjEuMC0tMS4xIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIjItLTIwMiIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICJ0aHJlZS10aHJlZSBodW5kcmVkIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIlRydWUtRmFsc2UiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAiTm9uZS1Ob25lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImZvby1iYXIiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAic3RyLWludCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICJhNy1iNyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJhOC1iOCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICJhOS1iOSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJc
XHhjM1xceGI0LW5hbWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiXFx4YzNcXHhiNC1v
dGhlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIF0KKworICAgIGRlZiB0ZXN0X2lkbWFr
ZXJfZW51bShzZWxmKToKKyAgICAgICAgZnJvbSBfcHl0ZXN0LnB5dGhvbiBpbXBvcnQgaWRtYWtl
cgorICAgICAgICBlbnVtID0gcHl0ZXN0LmltcG9ydG9yc2tpcCgiZW51bSIpCisgICAgICAgIGUg
PSBlbnVtLkVudW0oIkZvbyIsICJvbmUsIHR3byIpCisgICAgICAgIHJlc3VsdCA9IGlkbWFrZXIo
KCJhIiwgImIiKSwgW3B5dGVzdC5wYXJhbShlLm9uZSwgZS50d28pXSkKKyAgICAgICAgYXNzZXJ0
IHJlc3VsdCA9PSBbIkZvby5vbmUtRm9vLnR3byJdCisKKyAgICBAcHl0ZXN0Lm1hcmsuaXNzdWUz
NTEKKyAgICBkZWYgdGVzdF9pZG1ha2VyX2lkZm4oc2VsZik6CisgICAgICAgIGZyb20gX3B5dGVz
dC5weXRob24gaW1wb3J0IGlkbWFrZXIKKworICAgICAgICBkZWYgaWRzKHZhbCk6CisgICAgICAg
ICAgICBpZiBpc2luc3RhbmNlKHZhbCwgRXhjZXB0aW9uKToKKyAgICAgICAgICAgICAgICByZXR1
cm4gcmVwcih2YWwpCisKKyAgICAgICAgcmVzdWx0ID0gaWRtYWtlcigoImEiLCAiYiIpLCBbCisg
ICAgICAgICAgICBweXRlc3QucGFyYW0oMTAuMCwgSW5kZXhFcnJvcigpKSwKKyAgICAgICAgICAg
IHB5dGVzdC5wYXJhbSgyMCwgS2V5RXJyb3IoKSksCisgICAgICAgICAgICBweXRlc3QucGFyYW0o
InRocmVlIiwgWzEsIDIsIDNdKSwKKyAgICAgICAgXSwgaWRmbj1pZHMpCisgICAgICAgIGFzc2Vy
dCByZXN1bHQgPT0gWyIxMC4wLUluZGV4RXJyb3IoKSIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICIyMC1LZXlFcnJvcigpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInRocmVlLWIy
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgXQorCisgICAgQHB5dGVzdC5tYXJrLmlzc3Vl
MzUxCisgICAgZGVmIHRlc3RfaWRtYWtlcl9pZGZuX3VuaXF1ZV9uYW1lcyhzZWxmKToKKyAgICAg
ICAgZnJvbSBfcHl0ZXN0LnB5dGhvbiBpbXBvcnQgaWRtYWtlcgorCisgICAgICAgIGRlZiBpZHMo
dmFsKToKKyAgICAgICAgICAgIHJldHVybiAnYScKKworICAgICAgICByZXN1bHQgPSBpZG1ha2Vy
KCgiYSIsICJiIiksIFtweXRlc3QucGFyYW0oMTAuMCwgSW5kZXhFcnJvcigpKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKDIwLCBLZXlFcnJvcigp
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKCJ0
aHJlZSIsIFsxLCAyLCAzXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IF0sIGlkZm49aWRzKQorICAgICAgICBhc3NlcnQgcmVzdWx0ID09IFsiYS1hMCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICJhLWExIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImEt
YTIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICBdCisKKyAgICBAcHl0ZXN0Lm1hcmsuaXNz
dWUzNTEKKyAgICBkZWYgdGVzdF9pZG1ha2VyX2lkZm5fZXhjZXB0aW9uKHNlbGYpOgorICAgICAg
ICBmcm9tIF9weXRlc3QucHl0aG9uIGltcG9ydCBpZG1ha2VyCisgICAgICAgIGZyb20gX3B5dGVz
dC5yZWN3YXJuIGltcG9ydCBXYXJuaW5nc1JlY29yZGVyCisKKyAgICAgICAgY2xhc3MgQmFkSWRz
RXhjZXB0aW9uKEV4Y2VwdGlvbik6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgZGVmIGlk
cyh2YWwpOgorICAgICAgICAgICAgcmFpc2UgQmFkSWRzRXhjZXB0aW9uKCJpZHMgcmFpc2VkIikK
KworICAgICAgICByZWMgPSBXYXJuaW5nc1JlY29yZGVyKCkKKyAgICAgICAgd2l0aCByZWM6Cisg
ICAgICAgICAgICBpZG1ha2VyKCgiYSIsICJiIiksIFsKKyAgICAgICAgICAgICAgICBweXRlc3Qu
cGFyYW0oMTAuMCwgSW5kZXhFcnJvcigpKSwKKyAgICAgICAgICAgICAgICBweXRlc3QucGFyYW0o
MjAsIEtleUVycm9yKCkpLAorICAgICAgICAgICAgICAgIHB5dGVzdC5wYXJhbSgidGhyZWUiLCBb
MSwgMiwgM10pLAorICAgICAgICAgICAgXSwgaWRmbj1pZHMpCisKKyAgICAgICAgYXNzZXJ0IFtz
dHIoaS5tZXNzYWdlKSBmb3IgaSBpbiByZWMubGlzdF0gPT0gWworICAgICAgICAgICAgIlJhaXNl
ZCB3aGlsZSB0cnlpbmcgdG8gZGV0ZXJtaW5lIGlkIG9mIHBhcmFtZXRlciBhIGF0IHBvc2l0aW9u
IDAuIgorICAgICAgICAgICAgIlxuVXBkYXRlIHlvdXIgY29kZSBhcyB0aGlzIHdpbGwgcmFpc2Ug
YW4gZXJyb3IgaW4gcHl0ZXN0LTQuMC4iLAorICAgICAgICAgICAgIlJhaXNlZCB3aGlsZSB0cnlp
bmcgdG8gZGV0ZXJtaW5lIGlkIG9mIHBhcmFtZXRlciBiIGF0IHBvc2l0aW9uIDAuIgorICAgICAg
ICAgICAgIlxuVXBkYXRlIHlvdXIgY29kZSBhcyB0aGlzIHdpbGwgcmFpc2UgYW4gZXJyb3IgaW4g
cHl0ZXN0LTQuMC4iLAorICAgICAgICAgICAgIlJhaXNlZCB3aGlsZSB0cnlpbmcgdG8gZGV0ZXJt
aW5lIGlkIG9mIHBhcmFtZXRlciBhIGF0IHBvc2l0aW9uIDEuIgorICAgICAgICAgICAgIlxuVXBk
YXRlIHlvdXIgY29kZSBhcyB0aGlzIHdpbGwgcmFpc2UgYW4gZXJyb3IgaW4gcHl0ZXN0LTQuMC4i
LAorICAgICAgICAgICAgIlJhaXNlZCB3aGlsZSB0cnlpbmcgdG8gZGV0ZXJtaW5lIGlkIG9mIHBh
cmFtZXRlciBiIGF0IHBvc2l0aW9uIDEuIgorICAgICAgICAgICAgIlxuVXBkYXRlIHlvdXIgY29k
ZSBhcyB0aGlzIHdpbGwgcmFpc2UgYW4gZXJyb3IgaW4gcHl0ZXN0LTQuMC4iLAorICAgICAgICAg
ICAgIlJhaXNlZCB3aGlsZSB0cnlpbmcgdG8gZGV0ZXJtaW5lIGlkIG9mIHBhcmFtZXRlciBhIGF0
IHBvc2l0aW9uIDIuIgorICAgICAgICAgICAgIlxuVXBkYXRlIHlvdXIgY29kZSBhcyB0aGlzIHdp
bGwgcmFpc2UgYW4gZXJyb3IgaW4gcHl0ZXN0LTQuMC4iLAorICAgICAgICAgICAgIlJhaXNlZCB3
aGlsZSB0cnlpbmcgdG8gZGV0ZXJtaW5lIGlkIG9mIHBhcmFtZXRlciBiIGF0IHBvc2l0aW9uIDIu
IgorICAgICAgICAgICAgIlxuVXBkYXRlIHlvdXIgY29kZSBhcyB0aGlzIHdpbGwgcmFpc2UgYW4g
ZXJyb3IgaW4gcHl0ZXN0LTQuMC4iLAorICAgICAgICBdCisKKyAgICBkZWYgdGVzdF9wYXJhbWV0
cml6ZV9pZHNfZXhjZXB0aW9uKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiIKKyAgICAgICAg
OnBhcmFtIHRlc3RkaXI6IHRoZSBpbnN0YW5jZSBvZiBUZXN0ZGlyIGNsYXNzLCBhIHRlbXBvcmFy
eQorICAgICAgICB0ZXN0IGRpcmVjdG9yeS4KKyAgICAgICAgIiIiCisgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAg
ICAgICAgICBkZWYgaWRzKGFyZyk6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv
bigiYmFkIGlkcyIpCisKKyAgICAgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
ImFyZyIsIFsiYSIsICJiIl0sIGlkcz1pZHMpCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfZm9v
KGFyZyk6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICIiIikKKyAgICAg
ICAgd2l0aCBweXRlc3Qud2FybnMoRGVwcmVjYXRpb25XYXJuaW5nKToKKyAgICAgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3Qtb25seSIpCisgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiPE1vZHVsZSAndGVzdF9wYXJh
bWV0cml6ZV9pZHNfZXhjZXB0aW9uLnB5Jz4iLAorICAgICAgICAgICAgIiAgPEZ1bmN0aW9uICd0
ZXN0X2Zvb1thXSc+IiwKKyAgICAgICAgICAgICIgIDxGdW5jdGlvbiAndGVzdF9mb29bYl0nPiIs
CisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9pZG1ha2VyX3dpdGhfaWRzKHNlbGYpOgorICAg
ICAgICBmcm9tIF9weXRlc3QucHl0aG9uIGltcG9ydCBpZG1ha2VyCisgICAgICAgIHJlc3VsdCA9
IGlkbWFrZXIoKCJhIiwgImIiKSwgW3B5dGVzdC5wYXJhbSgxLCAyKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHl0ZXN0LnBhcmFtKDMsIDQpXSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICBpZHM9WyJhIiwgTm9uZV0pCisgICAgICAgIGFzc2VydCByZXN1bHQgPT0g
WyJhIiwgIjMtNCJdCisKKyAgICBkZWYgdGVzdF9pZG1ha2VyX3dpdGhfcGFyYW1zZXRfaWQoc2Vs
Zik6CisgICAgICAgIGZyb20gX3B5dGVzdC5weXRob24gaW1wb3J0IGlkbWFrZXIKKyAgICAgICAg
cmVzdWx0ID0gaWRtYWtlcigoImEiLCAiYiIpLCBbcHl0ZXN0LnBhcmFtKDEsIDIsIGlkPSJtZSIp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweXRlc3QucGFyYW0oMywg
NCwgaWQ9InlvdSIpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpZHM9WyJhIiwgTm9uZV0p
CisgICAgICAgIGFzc2VydCByZXN1bHQgPT0gWyJtZSIsICJ5b3UiXQorCisgICAgZGVmIHRlc3Rf
aWRtYWtlcl93aXRoX2lkc191bmlxdWVfbmFtZXMoc2VsZik6CisgICAgICAgIGZyb20gX3B5dGVz
dC5weXRob24gaW1wb3J0IGlkbWFrZXIKKyAgICAgICAgcmVzdWx0ID0gaWRtYWtlcigoImEiKSwg
bWFwKHB5dGVzdC5wYXJhbSwgWzEsIDIsIDMsIDQsIDVdKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICBpZHM9WyJhIiwgImEiLCAiYiIsICJjIiwgImIiXSkKKyAgICAgICAgYXNzZXJ0IHJlc3Vs
dCA9PSBbImEwIiwgImExIiwgImIwIiwgImMiLCAiYjEiXQorCisgICAgZGVmIHRlc3RfYWRkY2Fs
bF9hbmRfcGFyYW1ldHJpemUoc2VsZik6CisgICAgICAgIGRlZiBmdW5jKHgsIHkpOgorICAgICAg
ICAgICAgcGFzcworICAgICAgICBtZXRhZnVuYyA9IHNlbGYuTWV0YWZ1bmMoZnVuYykKKyAgICAg
ICAgbWV0YWZ1bmMuYWRkY2FsbCh7J3gnOiAxfSkKKyAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJp
emUoJ3knLCBbMiwgM10pCisgICAgICAgIGFzc2VydCBsZW4obWV0YWZ1bmMuX2NhbGxzKSA9PSAy
CisgICAgICAgIGFzc2VydCBtZXRhZnVuYy5fY2FsbHNbMF0uZnVuY2FyZ3MgPT0geyd4JzogMSwg
J3knOiAyfQorICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzFdLmZ1bmNhcmdzID09IHsn
eCc6IDEsICd5JzogM30KKyAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1swXS5pZCA9PSAi
MC0yIgorICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzFdLmlkID09ICIwLTMiCisKKyAg
ICBAcHl0ZXN0Lm1hcmsuaXNzdWU3MTQKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9pbmRpcmVj
dChzZWxmKToKKyAgICAgICAgZGVmIGZ1bmMoeCwgeSk6CisgICAgICAgICAgICBwYXNzCisgICAg
ICAgIG1ldGFmdW5jID0gc2VsZi5NZXRhZnVuYyhmdW5jKQorICAgICAgICBtZXRhZnVuYy5wYXJh
bWV0cml6ZSgneCcsIFsxXSwgaW5kaXJlY3Q9VHJ1ZSkKKyAgICAgICAgbWV0YWZ1bmMucGFyYW1l
dHJpemUoJ3knLCBbMiwgM10sIGluZGlyZWN0PVRydWUpCisgICAgICAgIGFzc2VydCBsZW4obWV0
YWZ1bmMuX2NhbGxzKSA9PSAyCisgICAgICAgIGFzc2VydCBtZXRhZnVuYy5fY2FsbHNbMF0uZnVu
Y2FyZ3MgPT0ge30KKyAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1sxXS5mdW5jYXJncyA9
PSB7fQorICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzBdLnBhcmFtcyA9PSBkaWN0KHg9
MSwgeT0yKQorICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzFdLnBhcmFtcyA9PSBkaWN0
KHg9MSwgeT0zKQorCisgICAgQHB5dGVzdC5tYXJrLmlzc3VlNzE0CisgICAgZGVmIHRlc3RfcGFy
YW1ldHJpemVfaW5kaXJlY3RfbGlzdChzZWxmKToKKyAgICAgICAgZGVmIGZ1bmMoeCwgeSk6Cisg
ICAgICAgICAgICBwYXNzCisgICAgICAgIG1ldGFmdW5jID0gc2VsZi5NZXRhZnVuYyhmdW5jKQor
ICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgneCwgeScsIFsoJ2EnLCAnYicpXSwgaW5kaXJl
Y3Q9Wyd4J10pCisgICAgICAgIGFzc2VydCBtZXRhZnVuYy5fY2FsbHNbMF0uZnVuY2FyZ3MgPT0g
ZGljdCh5PSdiJykKKyAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1swXS5wYXJhbXMgPT0g
ZGljdCh4PSdhJykKKworICAgIEBweXRlc3QubWFyay5pc3N1ZTcxNAorICAgIGRlZiB0ZXN0X3Bh
cmFtZXRyaXplX2luZGlyZWN0X2xpc3RfYWxsKHNlbGYpOgorICAgICAgICBkZWYgZnVuYyh4LCB5
KToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgbWV0YWZ1bmMgPSBzZWxmLk1ldGFmdW5jKGZ1
bmMpCisgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCd4LCB5JywgWygnYScsICdiJyldLCBp
bmRpcmVjdD1bJ3gnLCAneSddKQorICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzBdLmZ1
bmNhcmdzID09IHt9CisgICAgICAgIGFzc2VydCBtZXRhZnVuYy5fY2FsbHNbMF0ucGFyYW1zID09
IGRpY3QoeD0nYScsIHk9J2InKQorCisgICAgQHB5dGVzdC5tYXJrLmlzc3VlNzE0CisgICAgZGVm
IHRlc3RfcGFyYW1ldHJpemVfaW5kaXJlY3RfbGlzdF9lbXB0eShzZWxmKToKKyAgICAgICAgZGVm
IGZ1bmMoeCwgeSk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIG1ldGFmdW5jID0gc2VsZi5N
ZXRhZnVuYyhmdW5jKQorICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgneCwgeScsIFsoJ2En
LCAnYicpXSwgaW5kaXJlY3Q9W10pCisgICAgICAgIGFzc2VydCBtZXRhZnVuYy5fY2FsbHNbMF0u
ZnVuY2FyZ3MgPT0gZGljdCh4PSdhJywgeT0nYicpCisgICAgICAgIGFzc2VydCBtZXRhZnVuYy5f
Y2FsbHNbMF0ucGFyYW1zID09IHt9CisKKyAgICBAcHl0ZXN0Lm1hcmsuaXNzdWU3MTQKKyAgICBk
ZWYgdGVzdF9wYXJhbWV0cml6ZV9pbmRpcmVjdF9saXN0X2Z1bmN0aW9uYWwoc2VsZiwgdGVzdGRp
cik6CisgICAgICAgICIiIgorICAgICAgICBUZXN0IHBhcmFtZXRyaXphdGlvbiB3aXRoICdpbmRp
cmVjdCcgcGFyYW1ldGVyIGFwcGxpZWQgb24KKyAgICAgICAgcGFydGljdWxhciBhcmd1bWVudHMu
IEFzIHkgaXMgaXMgZGlyZWN0LCBpdHMgdmFsdWUgc2hvdWxkCisgICAgICAgIGJlIHVzZWQgZGly
ZWN0bHkgcmF0aGVyIHRoYW4gYmVpbmcgcGFzc2VkIHRvIHRoZSBmaXh0dXJlCisgICAgICAgIHku
CisKKyAgICAgICAgOnBhcmFtIHRlc3RkaXI6IHRoZSBpbnN0YW5jZSBvZiBUZXN0ZGlyIGNsYXNz
LCBhIHRlbXBvcmFyeQorICAgICAgICB0ZXN0IGRpcmVjdG9yeS4KKyAgICAgICAgIiIiCisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nZnVuY3Rpb24nKQorICAgICAgICAgICAg
ZGVmIHgocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0gKiAz
CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J2Z1bmN0aW9uJykKKyAgICAgICAg
ICAgIGRlZiB5KHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFt
ICogMgorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd4LCB5JywgWygnYScs
ICdiJyldLCBpbmRpcmVjdD1bJ3gnXSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X3NpbXBsZSh4LHkp
OgorICAgICAgICAgICAgICAgIGFzc2VydCBsZW4oeCkgPT0gMworICAgICAgICAgICAgICAgIGFz
c2VydCBsZW4oeSkgPT0gMQorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KCItdiIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisg
ICAgICAgICAgICAiKnRlc3Rfc2ltcGxlKmEtYioiLAorICAgICAgICAgICAgIioxIHBhc3NlZCoi
LAorICAgICAgICBdKQorCisgICAgQHB5dGVzdC5tYXJrLmlzc3VlNzE0CisgICAgZGVmIHRlc3Rf
cGFyYW1ldHJpemVfaW5kaXJlY3RfbGlzdF9lcnJvcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
ZGVmIGZ1bmMoeCwgeSk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIG1ldGFmdW5jID0gc2Vs
Zi5NZXRhZnVuYyhmdW5jKQorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcik6
CisgICAgICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgneCwgeScsIFsoJ2EnLCAnYicpXSwg
aW5kaXJlY3Q9Wyd4JywgJ3onXSkKKworICAgIEBweXRlc3QubWFyay5pc3N1ZTcxNAorICAgIGRl
ZiB0ZXN0X3BhcmFtZXRyaXplX3VzZXNfbm9fZml4dHVyZV9lcnJvcl9pbmRpcmVjdF9mYWxzZShz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiVGhlICd1c2VzIG5vIGZpeHR1cmUnIGVycm9yIHRl
bGxzIHRoZSB1c2VyIGF0IGNvbGxlY3Rpb24gdGltZQorICAgICAgICB0aGF0IHRoZSBwYXJhbWV0
cml6ZSBkYXRhIHRoZXkndmUgc2V0IHVwIGRvZXNuJ3QgY29ycmVzcG9uZCB0byB0aGUKKyAgICAg
ICAgZml4dHVyZXMgaW4gdGhlaXIgdGVzdCBmdW5jdGlvbiwgcmF0aGVyIHRoYW4gc2lsZW50bHkg
aWdub3JpbmcgdGhpcworICAgICAgICBhbmQgbGV0dGluZyB0aGUgdGVzdCBwb3RlbnRpYWxseSBw
YXNzLgorICAgICAgICAiIiIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoJ3gsIHknLCBbKCdhJywgJ2InKV0sIGluZGlyZWN0PUZhbHNlKQorICAgICAgICAgICAgZGVm
IHRlc3Rfc2ltcGxlKHgpOgorICAgICAgICAgICAgICAgIGFzc2VydCBsZW4oeCkgPT0gMworICAg
ICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3Qt
b25seSIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAg
ICAiKnVzZXMgbm8gYXJndW1lbnQgJ3knKiIsCisgICAgICAgIF0pCisKKyAgICBAcHl0ZXN0Lm1h
cmsuaXNzdWU3MTQKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV91c2VzX25vX2ZpeHR1cmVfZXJy
b3JfaW5kaXJlY3RfdHJ1ZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5m
aXh0dXJlKHNjb3BlPSdmdW5jdGlvbicpCisgICAgICAgICAgICBkZWYgeChyZXF1ZXN0KToKKyAg
ICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbSAqIDMKKyAgICAgICAgICAgIEBweXRl
c3QuZml4dHVyZShzY29wZT0nZnVuY3Rpb24nKQorICAgICAgICAgICAgZGVmIHkocmVxdWVzdCk6
CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0gKiAyCisKKyAgICAgICAgICAg
IEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgneCwgeScsIFsoJ2EnLCAnYicpXSwgaW5kaXJlY3Q9
VHJ1ZSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X3NpbXBsZSh4KToKKyAgICAgICAgICAgICAgICBh
c3NlcnQgbGVuKHgpID09IDMKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgiLS1jb2xsZWN0LW9ubHkiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWworICAgICAgICAgICAgIip1c2VzIG5vIGZpeHR1cmUgJ3knKiIsCisgICAgICAg
IF0pCisKKyAgICBAcHl0ZXN0Lm1hcmsuaXNzdWU3MTQKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6
ZV9pbmRpcmVjdF91c2VzX25vX2ZpeHR1cmVfZXJyb3JfaW5kaXJlY3Rfc3RyaW5nKHNlbGYsIHRl
c3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBv
cnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J2Z1bmN0aW9uJykK
KyAgICAgICAgICAgIGRlZiB4KHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1
ZXN0LnBhcmFtICogMworCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3gs
IHknLCBbKCdhJywgJ2InKV0sIGluZGlyZWN0PSd5JykKKyAgICAgICAgICAgIGRlZiB0ZXN0X3Np
bXBsZSh4KToKKyAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKHgpID09IDMKKyAgICAgICAgIiIi
KQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1jb2xsZWN0LW9ubHkiKQor
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIip1c2Vz
IG5vIGZpeHR1cmUgJ3knKiIsCisgICAgICAgIF0pCisKKyAgICBAcHl0ZXN0Lm1hcmsuaXNzdWU3
MTQKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9pbmRpcmVjdF91c2VzX25vX2ZpeHR1cmVfZXJy
b3JfaW5kaXJlY3RfbGlzdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5m
aXh0dXJlKHNjb3BlPSdmdW5jdGlvbicpCisgICAgICAgICAgICBkZWYgeChyZXF1ZXN0KToKKyAg
ICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbSAqIDMKKworICAgICAgICAgICAgQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd4LCB5JywgWygnYScsICdiJyldLCBpbmRpcmVjdD1bJ3kn
XSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X3NpbXBsZSh4KToKKyAgICAgICAgICAgICAgICBhc3Nl
cnQgbGVuKHgpID09IDMKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgiLS1jb2xsZWN0LW9ubHkiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoWworICAgICAgICAgICAgIip1c2VzIG5vIGZpeHR1cmUgJ3knKiIsCisgICAgICAgIF0p
CisKKyAgICBAcHl0ZXN0Lm1hcmsuaXNzdWU3MTQKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9h
cmd1bWVudF9ub3RfaW5faW5kaXJlY3RfbGlzdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAg
ICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdmdW5jdGlvbicpCisgICAgICAgICAgICBkZWYgeChy
ZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbSAqIDMKKworICAg
ICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd4LCB5JywgWygnYScsICdiJyldLCBp
bmRpcmVjdD1bJ3gnXSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X3NpbXBsZSh4KToKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgbGVuKHgpID09IDMKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1jb2xsZWN0LW9ubHkiKQorICAgICAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIip1c2VzIG5vIGFyZ3VtZW50ICd5Jyoi
LAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfYWRkY2FsbHNfYW5kX3BhcmFtZXRyaXplX2lu
ZGlyZWN0KHNlbGYpOgorICAgICAgICBkZWYgZnVuYyh4LCB5KToKKyAgICAgICAgICAgIHBhc3MK
KyAgICAgICAgbWV0YWZ1bmMgPSBzZWxmLk1ldGFmdW5jKGZ1bmMpCisgICAgICAgIG1ldGFmdW5j
LmFkZGNhbGwocGFyYW09IjEyMyIpCisgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCd4Jywg
WzFdLCBpbmRpcmVjdD1UcnVlKQorICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgneScsIFsy
LCAzXSwgaW5kaXJlY3Q9VHJ1ZSkKKyAgICAgICAgYXNzZXJ0IGxlbihtZXRhZnVuYy5fY2FsbHMp
ID09IDIKKyAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1swXS5mdW5jYXJncyA9PSB7fQor
ICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzFdLmZ1bmNhcmdzID09IHt9CisgICAgICAg
IGFzc2VydCBtZXRhZnVuYy5fY2FsbHNbMF0ucGFyYW1zID09IGRpY3QoeD0xLCB5PTIpCisgICAg
ICAgIGFzc2VydCBtZXRhZnVuYy5fY2FsbHNbMV0ucGFyYW1zID09IGRpY3QoeD0xLCB5PTMpCisK
KyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9mdW5jdGlvbmFsKHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Cisg
ICAgICAgICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAg
ICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgneCcsIFsxLDJdLCBpbmRpcmVjdD1UcnVlKQor
ICAgICAgICAgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCd5JywgWzJdKQorICAgICAgICAg
ICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgeChyZXF1ZXN0KToKKyAgICAgICAg
ICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbSAqIDEwCisKKyAgICAgICAgICAgIGRlZiB0ZXN0
X3NpbXBsZSh4LHkpOgorICAgICAgICAgICAgICAgIGFzc2VydCB4IGluICgxMCwyMCkKKyAgICAg
ICAgICAgICAgICBhc3NlcnQgeSA9PSAyCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoIi12IikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKFsKKyAgICAgICAgICAgICIqdGVzdF9zaW1wbGUqMS0yKiIsCisgICAgICAgICAgICAiKnRl
c3Rfc2ltcGxlKjItMioiLAorICAgICAgICAgICAgIioyIHBhc3NlZCoiLAorICAgICAgICBdKQor
CisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfb25lYXJnKHNlbGYpOgorICAgICAgICBtZXRhZnVu
YyA9IHNlbGYuTWV0YWZ1bmMobGFtYmRhIHg6IE5vbmUpCisgICAgICAgIG1ldGFmdW5jLnBhcmFt
ZXRyaXplKCJ4IiwgWzEsIDJdKQorICAgICAgICBhc3NlcnQgbGVuKG1ldGFmdW5jLl9jYWxscykg
PT0gMgorICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzBdLmZ1bmNhcmdzID09IGRpY3Qo
eD0xKQorICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzBdLmlkID09ICIxIgorICAgICAg
ICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzFdLmZ1bmNhcmdzID09IGRpY3QoeD0yKQorICAgICAg
ICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzFdLmlkID09ICIyIgorCisgICAgZGVmIHRlc3RfcGFy
YW1ldHJpemVfb25lYXJnX2luZGlyZWN0KHNlbGYpOgorICAgICAgICBtZXRhZnVuYyA9IHNlbGYu
TWV0YWZ1bmMobGFtYmRhIHg6IE5vbmUpCisgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCJ4
IiwgWzEsIDJdLCBpbmRpcmVjdD1UcnVlKQorICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxz
WzBdLnBhcmFtcyA9PSBkaWN0KHg9MSkKKyAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1sw
XS5pZCA9PSAiMSIKKyAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9jYWxsc1sxXS5wYXJhbXMgPT0g
ZGljdCh4PTIpCisgICAgICAgIGFzc2VydCBtZXRhZnVuYy5fY2FsbHNbMV0uaWQgPT0gIjIiCisK
KyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV90d29hcmdzKHNlbGYpOgorICAgICAgICBtZXRhZnVu
YyA9IHNlbGYuTWV0YWZ1bmMobGFtYmRhIHgsIHk6IE5vbmUpCisgICAgICAgIG1ldGFmdW5jLnBh
cmFtZXRyaXplKCgieCIsICJ5IiksIFsoMSwgMiksICgzLCA0KV0pCisgICAgICAgIGFzc2VydCBs
ZW4obWV0YWZ1bmMuX2NhbGxzKSA9PSAyCisgICAgICAgIGFzc2VydCBtZXRhZnVuYy5fY2FsbHNb
MF0uZnVuY2FyZ3MgPT0gZGljdCh4PTEsIHk9MikKKyAgICAgICAgYXNzZXJ0IG1ldGFmdW5jLl9j
YWxsc1swXS5pZCA9PSAiMS0yIgorICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuX2NhbGxzWzFdLmZ1
bmNhcmdzID09IGRpY3QoeD0zLCB5PTQpCisgICAgICAgIGFzc2VydCBtZXRhZnVuYy5fY2FsbHNb
MV0uaWQgPT0gIjMtNCIKKworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX211bHRpcGxlX3RpbWVz
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBweXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoIngiLCBbMSwyXSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoeCk6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0IDAsIHgKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhv
YmplY3QpOgorICAgICAgICAgICAgICAgIHB5dGVzdG1hcmsgPSBweXRlc3QubWFyay5wYXJhbWV0
cml6ZSgieSIsIFszLDRdKQorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X21ldGgoc2VsZiwgeCwg
eSk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCAwLCB4CisgICAgICAgICIiIikKKyAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJl
dCA9PSAxCisgICAgICAgIHJlc3VsdC5hc3NlcnRfb3V0Y29tZXMoZmFpbGVkPTYpCisKKyAgICBk
ZWYgdGVzdF9wYXJhbWV0cml6ZV9DU1Yoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSgieCwgeSwiLCBbKDEsMiksICgyLDMpXSkKKyAgICAgICAg
ICAgIGRlZiB0ZXN0X2Z1bmMoeCwgeSk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHgrMSA9PSB5
CisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAg
ICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIpCisKKyAgICBkZWYgdGVzdF9wYXJh
bWV0cml6ZV9jbGFzc19zY2VuYXJpb3Moc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgIyBzYW1lIGFzIGRvYy9lbi9leGFtcGxlL3BhcmFtZXRy
aXplIHNjZW5hcmlvIGV4YW1wbGUKKyAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyht
ZXRhZnVuYyk6CisgICAgICAgICAgICBpZGxpc3QgPSBbXQorICAgICAgICAgICAgYXJndmFsdWVz
ID0gW10KKyAgICAgICAgICAgIGZvciBzY2VuYXJpbyBpbiBtZXRhZnVuYy5jbHMuc2NlbmFyaW9z
OgorICAgICAgICAgICAgICAgIGlkbGlzdC5hcHBlbmQoc2NlbmFyaW9bMF0pCisgICAgICAgICAg
ICAgICAgaXRlbXMgPSBzY2VuYXJpb1sxXS5pdGVtcygpCisgICAgICAgICAgICAgICAgYXJnbmFt
ZXMgPSBbeFswXSBmb3IgeCBpbiBpdGVtc10KKyAgICAgICAgICAgICAgICBhcmd2YWx1ZXMuYXBw
ZW5kKChbeFsxXSBmb3IgeCBpbiBpdGVtc10pKQorICAgICAgICAgICAgbWV0YWZ1bmMucGFyYW1l
dHJpemUoYXJnbmFtZXMsIGFyZ3ZhbHVlcywgaWRzPWlkbGlzdCwgc2NvcGU9ImNsYXNzIikKKwor
ICAgICAgICBjbGFzcyBUZXN0KG9iamVjdCk6CisgICAgICAgICAgICAgICBzY2VuYXJpb3MgPSBb
WycxJywgeydhcmcnOiB7MTogMn0sICJhcmcyIjogInZhbHVlMiJ9XSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbJzInLCB7J2FyZyc6J3ZhbHVlMicsICJhcmcyIjogInZhbHVlMiJ9XV0K
KworICAgICAgICAgICAgICAgZGVmIHRlc3RfMShzZWxmLCBhcmcsIGFyZzIpOgorICAgICAgICAg
ICAgICAgICAgcGFzcworCisgICAgICAgICAgICAgICBkZWYgdGVzdF8yKHNlbGYsIGFyZzIsIGFy
Zyk6CisgICAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgICAgIGRlZiB0ZXN0XzMo
c2VsZiwgYXJnLCBhcmcyKToKKyAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQor
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiKQorICAgICAgICBhc3NlcnQg
cmVzdWx0LnJldCA9PSAwCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiIiIK
KyAgICAgICAgICAgICp0ZXN0XzEqMSoKKyAgICAgICAgICAgICp0ZXN0XzIqMSoKKyAgICAgICAg
ICAgICp0ZXN0XzMqMSoKKyAgICAgICAgICAgICp0ZXN0XzEqMioKKyAgICAgICAgICAgICp0ZXN0
XzIqMioKKyAgICAgICAgICAgICp0ZXN0XzMqMioKKyAgICAgICAgICAgICo2IHBhc3NlZCoKKyAg
ICAgICAgIiIiKQorCisgICAgZGVmIHRlc3RfZm9ybWF0X2FyZ3Moc2VsZik6CisgICAgICAgIGRl
ZiBmdW5jdGlvbjEoKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgYXNzZXJ0IGZpeHR1cmVz
Ll9mb3JtYXRfYXJncyhmdW5jdGlvbjEpID09ICcoKScKKworICAgICAgICBkZWYgZnVuY3Rpb24y
KGFyZzEpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBhc3NlcnQgZml4dHVyZXMuX2Zvcm1h
dF9hcmdzKGZ1bmN0aW9uMikgPT0gIihhcmcxKSIKKworICAgICAgICBkZWYgZnVuY3Rpb24zKGFy
ZzEsIGFyZzI9InF3ZSIpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBhc3NlcnQgZml4dHVy
ZXMuX2Zvcm1hdF9hcmdzKGZ1bmN0aW9uMykgPT0gIihhcmcxLCBhcmcyPSdxd2UnKSIKKworICAg
ICAgICBkZWYgZnVuY3Rpb240KGFyZzEsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICBw
YXNzCisgICAgICAgIGFzc2VydCBmaXh0dXJlcy5fZm9ybWF0X2FyZ3MoZnVuY3Rpb240KSA9PSAi
KGFyZzEsICphcmdzLCAqKmt3YXJncykiCisKKworY2xhc3MgVGVzdE1ldGFmdW5jRnVuY3Rpb25h
bChvYmplY3QpOgorICAgIGRlZiB0ZXN0X2F0dHJpYnV0ZXMoc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICAjIGFzc3VtZXMgdGhh
dCBnZW5lcmF0ZS9wcm92aWRlIHJ1bnMgaW4gdGhlIHNhbWUgcHJvY2VzcworICAgICAgICAgICAg
aW1wb3J0IHB5LCBweXRlc3QKKyAgICAgICAgICAgIGRlZiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMo
bWV0YWZ1bmMpOgorICAgICAgICAgICAgICAgIG1ldGFmdW5jLmFkZGNhbGwocGFyYW09bWV0YWZ1
bmMpCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIG1ldGFm
dW5jKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIGFzc2VydCByZXF1ZXN0Ll9weWZ1bmNpdGVt
Ll9nZW5pZCA9PSAiMCIKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisg
ICAgICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihtZXRhZnVuYywgcHl0ZXN0Y29uZmlnKToKKyAg
ICAgICAgICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuY29uZmlnID09IHB5dGVzdGNvbmZpZworICAg
ICAgICAgICAgICAgIGFzc2VydCBtZXRhZnVuYy5tb2R1bGUuX19uYW1lX18gPT0gX19uYW1lX18K
KyAgICAgICAgICAgICAgICBhc3NlcnQgbWV0YWZ1bmMuZnVuY3Rpb24gPT0gdGVzdF9mdW5jdGlv
bgorICAgICAgICAgICAgICAgIGFzc2VydCBtZXRhZnVuYy5jbHMgaXMgTm9uZQorCisgICAgICAg
ICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9t
ZXRob2Qoc2VsZiwgbWV0YWZ1bmMsIHB5dGVzdGNvbmZpZyk6CisgICAgICAgICAgICAgICAgICAg
IGFzc2VydCBtZXRhZnVuYy5jb25maWcgPT0gcHl0ZXN0Y29uZmlnCisgICAgICAgICAgICAgICAg
ICAgIGFzc2VydCBtZXRhZnVuYy5tb2R1bGUuX19uYW1lX18gPT0gX19uYW1lX18KKyAgICAgICAg
ICAgICAgICAgICAgaWYgcHkuc3RkLnN5cy52ZXJzaW9uX2luZm8gPiAoMywgMCk6CisgICAgICAg
ICAgICAgICAgICAgICAgICB1bmJvdW5kID0gVGVzdENsYXNzLnRlc3RfbWV0aG9kCisgICAgICAg
ICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICB1bmJvdW5kID0gVGVz
dENsYXNzLnRlc3RfbWV0aG9kLmltX2Z1bmMKKyAgICAgICAgICAgICAgICAgICAgIyBYWFggYWN0
dWFsbHkgaGF2ZSBhbiB1bmJvdW5kIHRlc3QgZnVuY3Rpb24gaGVyZT8KKyAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0IG1ldGFmdW5jLmZ1bmN0aW9uID09IHVuYm91bmQKKyAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0IG1ldGFmdW5jLmNscyA9PSBUZXN0Q2xhc3MKKyAgICAgICAgIiIiKQorICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwLCAiLXYiKQorICAgICAgICByZXN1bHQu
YXNzZXJ0X291dGNvbWVzKHBhc3NlZD0yKQorCisgICAgZGVmIHRlc3RfYWRkY2FsbF93aXRoX3R3
b19mdW5jYXJnc19nZW5lcmF0b3JzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1h
a2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGRlZiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMobWV0
YWZ1bmMpOgorICAgICAgICAgICAgICAgIGFzc2VydCAiYXJnMSIgaW4gbWV0YWZ1bmMuZml4dHVy
ZW5hbWVzCisgICAgICAgICAgICAgICAgbWV0YWZ1bmMuYWRkY2FsbChmdW5jYXJncz1kaWN0KGFy
ZzE9MSwgYXJnMj0yKSkKKyAgICAgICAgIiIiKQorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlm
aWxlKCIiIgorICAgICAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6
CisgICAgICAgICAgICAgICAgbWV0YWZ1bmMuYWRkY2FsbChmdW5jYXJncz1kaWN0KGFyZzE9MSwg
YXJnMj0xKSkKKworICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAg
ICAgICAgICAgZGVmIHRlc3RfbXlmdW5jKHNlbGYsIGFyZzEsIGFyZzIpOgorICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQgYXJnMSA9PSBhcmcyCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoIi12IiwgcCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqdGVzdF9teWZ1bmMqMCpQQVNTKiIsCisgICAgICAg
ICAgICAiKnRlc3RfbXlmdW5jKjEqRkFJTCoiLAorICAgICAgICAgICAgIioxIGZhaWxlZCwgMSBw
YXNzZWQqIgorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfdHdvX2Z1bmN0aW9ucyhzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAg
IGRlZiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMobWV0YWZ1bmMpOgorICAgICAgICAgICAgICAgIG1l
dGFmdW5jLmFkZGNhbGwocGFyYW09MTApCisgICAgICAgICAgICAgICAgbWV0YWZ1bmMuYWRkY2Fs
bChwYXJhbT0yMCkKKworICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5
dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgYXJnMShyZXF1ZXN0KToKKyAgICAgICAgICAg
ICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jMShh
cmcxKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgYXJnMSA9PSAxMAorICAgICAgICAgICAgZGVm
IHRlc3RfZnVuYzIoYXJnMSk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGFyZzEgaW4gKDEwLCAy
MCkKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYi
LCBwKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAg
Iip0ZXN0X2Z1bmMxKjAqUEFTUyoiLAorICAgICAgICAgICAgIip0ZXN0X2Z1bmMxKjEqRkFJTCoi
LAorICAgICAgICAgICAgIip0ZXN0X2Z1bmMyKlBBU1MqIiwKKyAgICAgICAgICAgICIqMSBmYWls
ZWQsIDMgcGFzc2VkKiIKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X25vc2VsZl9pbl9tZXRo
b2Qoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgJ3h5eicgbm90IGluIG1ldGFmdW5jLmZpeHR1cmVuYW1lcworCisgICAg
ICAgICAgICBjbGFzcyBUZXN0SGVsbG8ob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVz
dF9oZWxsbyh4eXopOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCkKKyAgICAgICAgcmVzdWx0LmFzc2Vy
dF9vdXRjb21lcyhwYXNzZWQ9MSkKKworICAgIGRlZiB0ZXN0X2dlbmVyYXRlX3BsdWdpbl9hbmRf
bW9kdWxlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIK
KyAgICAgICAgICAgIGRlZiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMobWV0YWZ1bmMpOgorICAgICAg
ICAgICAgICAgIGFzc2VydCAiYXJnMSIgaW4gbWV0YWZ1bmMuZml4dHVyZW5hbWVzCisgICAgICAg
ICAgICAgICAgbWV0YWZ1bmMuYWRkY2FsbChpZD0id29ybGQiLCBwYXJhbT0oMiwxMDApKQorICAg
ICAgICAiIiIpCisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAg
ICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAgICAgICAgICBt
ZXRhZnVuYy5hZGRjYWxsKHBhcmFtPSgxLDEpLCBpZD0iaGVsbG8iKQorCisgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRl
ZiBhcmcxKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtWzBd
CisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBhcmcyKHJlcXVl
c3QpOgorICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtWzFdCisKKyAgICAgICAg
ICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X215
ZnVuYyhzZWxmLCBhcmcxLCBhcmcyKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGFyZzEg
PT0gYXJnMgorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCItdiIsIHApCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAg
ICAgICAiKnRlc3RfbXlmdW5jKmhlbGxvKlBBU1MqIiwKKyAgICAgICAgICAgICIqdGVzdF9teWZ1
bmMqd29ybGQqRkFJTCoiLAorICAgICAgICAgICAgIioxIGZhaWxlZCwgMSBwYXNzZWQqIgorICAg
ICAgICBdKQorCisgICAgZGVmIHRlc3RfZ2VuZXJhdGVfdGVzdHNfaW5fY2xhc3Moc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBj
bGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgcHl0ZXN0X2dlbmVy
YXRlX3Rlc3RzKHNlbGYsIG1ldGFmdW5jKToKKyAgICAgICAgICAgICAgICAgICAgbWV0YWZ1bmMu
YWRkY2FsbChmdW5jYXJncz17J2hlbGxvJzogJ3dvcmxkJ30sIGlkPSJoZWxsbyIpCisKKyAgICAg
ICAgICAgICAgICBkZWYgdGVzdF9teWZ1bmMoc2VsZiwgaGVsbG8pOgorICAgICAgICAgICAgICAg
ICAgICBhc3NlcnQgaGVsbG8gPT0gIndvcmxkIgorICAgICAgICAiIiIpCisgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIsIHApCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKnRlc3RfbXlmdW5jKmhlbGxvKlBBU1MqIiwKKyAg
ICAgICAgICAgICIqMSBwYXNzZWQqIgorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfdHdvX2Z1
bmN0aW9uc19ub3Rfc2FtZV9pbnN0YW5jZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRl
c3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiBweXRlc3RfZ2VuZXJhdGVfdGVz
dHMobWV0YWZ1bmMpOgorICAgICAgICAgICAgICAgIG1ldGFmdW5jLmFkZGNhbGwoeydhcmcxJzog
MTB9KQorICAgICAgICAgICAgICAgIG1ldGFmdW5jLmFkZGNhbGwoeydhcmcxJzogMjB9KQorCisg
ICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYg
dGVzdF9mdW5jKHNlbGYsIGFyZzEpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbm90IGhh
c2F0dHIoc2VsZiwgJ3gnKQorICAgICAgICAgICAgICAgICAgICBzZWxmLnggPSAxCisgICAgICAg
ICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12IiwgcCkKKyAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqdGVzdF9mdW5j
KjAqUEFTUyoiLAorICAgICAgICAgICAgIip0ZXN0X2Z1bmMqMSpQQVNTKiIsCisgICAgICAgICAg
ICAiKjIgcGFzcyoiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfaXNzdWUyOF9zZXR1cF9t
ZXRob2RfaW5fZ2VuZXJhdGVfdGVzdHMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0
ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3Rz
KG1ldGFmdW5jKToKKyAgICAgICAgICAgICAgICBtZXRhZnVuYy5hZGRjYWxsKHsnYXJnMSc6IDF9
KQorCisgICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgICAg
ICBkZWYgdGVzdF9tZXRob2Qoc2VsZiwgYXJnMSk6CisgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dCBhcmcxID09IHNlbGYudmFsCisgICAgICAgICAgICAgICAgZGVmIHNldHVwX21ldGhvZChzZWxm
LCBmdW5jKToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi52YWwgPSAxCisgICAgICAgICAgICAi
IiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHApCisgICAgICAgIHJlc3Vs
dC5hc3NlcnRfb3V0Y29tZXMocGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9m
dW5jdGlvbmFsMihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIi
IgorICAgICAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6CisgICAg
ICAgICAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoImFyZzEiLCBbMSwyXSkKKyAgICAgICAg
ICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgiYXJnMiIsIFs0LDVdKQorICAgICAgICAgICAg
ZGVmIHRlc3RfaGVsbG8oYXJnMSwgYXJnMik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAsIChh
cmcxLCBhcmcyKQorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAg
ICIqKDEsIDQpKiIsCisgICAgICAgICAgICAiKigxLCA1KSoiLAorICAgICAgICAgICAgIiooMiwg
NCkqIiwKKyAgICAgICAgICAgICIqKDIsIDUpKiIsCisgICAgICAgICAgICAiKjQgZmFpbGVkKiIs
CisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9hbmRfaW5uZXJfZ2V0Zml4
dHVyZXZhbHVlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxl
KCIiIgorICAgICAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6Cisg
ICAgICAgICAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoImFyZzEiLCBbMV0sIGluZGlyZWN0
PVRydWUpCisgICAgICAgICAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoImFyZzIiLCBbMTBd
LCBpbmRpcmVjdD1UcnVlKQorCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBhcmcxKHJlcXVlc3QpOgorICAgICAg
ICAgICAgICAgIHggPSByZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgiYXJnMiIpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIHggKyByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZQorICAgICAgICAgICAgZGVmIGFyZzIocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmV0
dXJuIHJlcXVlc3QucGFyYW0KKworICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzEoYXJnMSwgYXJn
Mik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGFyZzEgPT0gMTEKKyAgICAgICAgIiIiKQorICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiLCBwKQorICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIip0ZXN0X2Z1bmMxKjEqUEFTUyoi
LAorICAgICAgICAgICAgIioxIHBhc3NlZCoiCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9w
YXJhbWV0cml6ZV9vbl9zZXR1cF9hcmcoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0
ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3Rz
KG1ldGFmdW5jKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgImFyZzEiIGluIG1ldGFmdW5jLmZp
eHR1cmVuYW1lcworICAgICAgICAgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCJhcmcxIiwg
WzFdLCBpbmRpcmVjdD1UcnVlKQorCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBhcmcxKHJlcXVlc3QpOgorICAg
ICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIEBweXRlc3Qu
Zml4dHVyZQorICAgICAgICAgICAgZGVmIGFyZzIocmVxdWVzdCwgYXJnMSk6CisgICAgICAgICAg
ICAgICAgcmV0dXJuIDEwICogYXJnMQorCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKGFyZzIp
OgorICAgICAgICAgICAgICAgIGFzc2VydCBhcmcyID09IDEwCisgICAgICAgICIiIikKKyAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12IiwgcCkKKyAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqdGVzdF9mdW5jKjEqUEFTUyoiLAor
ICAgICAgICAgICAgIioxIHBhc3NlZCoiCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9wYXJh
bWV0cml6ZV93aXRoX2lkcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlaW5p
KCIiIgorICAgICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgICAgIGNvbnNvbGVfb3V0cHV0X3N0
eWxlPWNsYXNzaWMKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIi
CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBkZWYgcHl0ZXN0X2dlbmVy
YXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAgICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6
ZSgoImEiLCAiYiIpLCBbKDEsMSksICgxLDIpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZHM9WyJiYXNpYyIsICJhZHZhbmNlZCJdKQorCisgICAgICAgICAgICBkZWYg
dGVzdF9mdW5jdGlvbihhLCBiKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgYSA9PSBiCisgICAg
ICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12IikKKyAgICAg
ICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXNfcmFuZG9tKFsKKyAgICAgICAgICAgICIqdGVzdF9mdW5jdGlvbipiYXNpYypQQVNTRUQi
LAorICAgICAgICAgICAgIip0ZXN0X2Z1bmN0aW9uKmFkdmFuY2VkKkZBSUxFRCIsCisgICAgICAg
IF0pCisKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV93aXRob3V0X2lkcyhzZWxmLCB0ZXN0ZGly
KToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5
dGVzdAorICAgICAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6Cisg
ICAgICAgICAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoKCJhIiwgImIiKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKDEsb2JqZWN0KCkpLCAoMS4zLG9iamVjdCgp
KV0pCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGEsIGIpOgorICAgICAgICAgICAg
ICAgIGFzc2VydCAxCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QoIi12IikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIiIgorICAg
ICAgICAgICAgKnRlc3RfZnVuY3Rpb24qMS1iMCoKKyAgICAgICAgICAgICp0ZXN0X2Z1bmN0aW9u
KjEuMy1iMSoKKyAgICAgICAgIiIiKQorCisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVfd2l0aF9O
b25lX2luX2lkcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIi
IgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgZGVmIHB5dGVzdF9nZW5l
cmF0ZV90ZXN0cyhtZXRhZnVuYyk6CisgICAgICAgICAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJp
emUoKCJhIiwgImIiKSwgWygxLDEpLCAoMSwxKSwgKDEsMildLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlkcz1bImJhc2ljIiwgTm9uZSwgImFkdmFuY2VkIl0pCisKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGEsIGIpOgorICAgICAgICAgICAgICAgIGFzc2Vy
dCBhID09IGIKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgiLXYiKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAxCisgICAgICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lc19yYW5kb20oWworICAgICAgICAgICAgIip0ZXN0X2Z1bmN0aW9u
KmJhc2ljKlBBU1NFRCoiLAorICAgICAgICAgICAgIip0ZXN0X2Z1bmN0aW9uKjEtMSpQQVNTRUQq
IiwKKyAgICAgICAgICAgICIqdGVzdF9mdW5jdGlvbiphZHZhbmNlZCpGQUlMRUQqIiwKKyAgICAg
ICAgXSkKKworICAgIGRlZiB0ZXN0X2ZpeHR1cmVfcGFyYW1ldHJpemVkX2VtcHR5X2lkcyhzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiRml4dHVyZXMgcGFyYW1ldHJpemVkIHdpdGggZW1wdHkg
aWRzIGNhdXNlIGFuIGludGVybmFsIGVycm9yICgjMTg0OSkuIiIiCisgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgnJycKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiLCBpZHM9W10sIHBhcmFtcz1bXSkKKyAgICAg
ICAgICAgIGRlZiB0ZW1wKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3Qu
cGFyYW0KKworICAgICAgICAgICAgZGVmIHRlc3RfdGVtcCh0ZW1wKToKKyAgICAgICAgICAgICAg
ICAgcGFzcworICAgICAgICAnJycpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsnKiAxIHNraXBwZWQgKidd
KQorCisgICAgZGVmIHRlc3RfcGFyYW1ldHJpemVkX2VtcHR5X2lkcyhzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgIiIiVGVzdHMgcGFyYW1ldHJpemVkIHdpdGggZW1wdHkgaWRzIGNhdXNlIGFuIGlu
dGVybmFsIGVycm9yICgjMTg0OSkuIiIiCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgnJycK
KyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCd0ZW1wJywgW10sIGlkcz1saXN0KCkpCisgICAgICAgICAgICBkZWYgdGVzdF90
ZW1wKHRlbXApOgorICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICcnJykKKyAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWycqIDEgc2tpcHBlZCAqJ10pCisKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZWRf
aWRzX2ludmFsaWRfdHlwZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiVGVzdHMgcGFyYW1l
dHJpemVkIHdpdGggaWRzIGFzIG5vbi1zdHJpbmdzICgjMTg1NykuIiIiCisgICAgICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJ4LCBleHBlY3RlZCIsIFsoMTAsIDIwKSwgKDQw
LCA4MCldLCBpZHM9KE5vbmUsIDIpKQorICAgICAgICAgICAgZGVmIHRlc3RfaWRzX251bWJlcnMo
eCxleHBlY3RlZCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHggKiAyID09IGV4cGVjdGVkCisg
ICAgICAgICcnJykKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWycqaWRzIG11c3QgYmUgbGlzdCBvZiBzdHJp
bmdzLCBmb3VuZDogMiAodHlwZTogaW50KSonXSkKKworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXpl
X3dpdGhfaWRlbnRpY2FsX2lkc19nZXRfdW5pcXVlX25hbWVzKHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Cisg
ICAgICAgICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAg
ICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgoImEiLCAiYiIpLCBbKDEsMSksICgxLDIpXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZHM9WyJhIiwgImEiXSkKKwor
ICAgICAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oYSwgYik6CisgICAgICAgICAgICAgICAgYXNz
ZXJ0IGEgPT0gYgorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KCItdiIpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDEKKyAgICAgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzX3JhbmRvbShbCisgICAgICAgICAgICAiKnRlc3RfZnVuY3Rp
b24qYTAqUEFTU0VEKiIsCisgICAgICAgICAgICAiKnRlc3RfZnVuY3Rpb24qYTEqRkFJTEVEKiIK
KyAgICAgICAgXSkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgoInNjb3BlIiwgImxl
bmd0aCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKCJtb2R1bGUiLCAyKSwgKCJm
dW5jdGlvbiIsIDQpXSkKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9zY29wZV9vdmVycmlkZXMo
c2VsZiwgdGVzdGRpciwgc2NvcGUsIGxlbmd0aCk6CisgICAgICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIHZhbHVlcyA9IFtd
CisgICAgICAgICAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAg
ICAgICAgICAgICBpZiAiYXJnIiBpbiBtZXRhZnVuYy5mdW5jYXJnbmFtZXM6CisgICAgICAgICAg
ICAgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCJhcmciLCBbMSwyXSwgaW5kaXJlY3Q9VHJ1
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGU9JXIpCisg
ICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBhcmcocmVxdWVzdCk6
CisgICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChyZXF1ZXN0LnBhcmFtKQorICAgICAgICAg
ICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhh
cmcpOgorICAgICAgICAgICAgICAgIGFzc2VydCBhcmcgaW4gKDEsMikKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X3dvcmxkKGFyZyk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGFyZyBpbiAoMSwyKQor
ICAgICAgICAgICAgZGVmIHRlc3RfY2hlY2tsZW5ndGgoKToKKyAgICAgICAgICAgICAgICBhc3Nl
cnQgbGVuKHZhbHVlcykgPT0gJWQKKyAgICAgICAgIiIiICUgKHNjb3BlLCBsZW5ndGgpKQorICAg
ICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0
b3V0Y29tZShwYXNzZWQ9NSkKKworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX2lzc3VlMzIzKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nbW9k
dWxlJywgcGFyYW1zPXJhbmdlKDk2NikpCisgICAgICAgICAgICBkZWYgZm9vKHJlcXVlc3QpOgor
ICAgICAgICAgICAgICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIGRlZiB0
ZXN0X2l0KGZvbyk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHRlc3Rf
aXQyKGZvbyk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJl
cHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLS1jb2xsZWN0LW9ubHkiKQorICAgICAgICBhc3Nl
cnQgbm90IHJlcHJlYy5nZXRjYWxscygicHl0ZXN0X2ludGVybmFsZXJyb3IiKQorCisgICAgZGVm
IHRlc3RfdXNlZml4dHVyZXNfc2Vlbl9pbl9nZW5lcmF0ZV90ZXN0cyhzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAorICAgICAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0ICJhYmMiIGluIG1ldGFmdW5jLmZpeHR1cmVuYW1lcworICAgICAg
ICAgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCJhYmMiLCBbMV0pCisKKyAgICAgICAgICAg
IEBweXRlc3QubWFyay51c2VmaXh0dXJlcygiYWJjIikKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1
bmN0aW9uKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJl
cHJlYyA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVwcmVjLmFzc2VydF9vdXRjb21l
cyhwYXNzZWQ9MSkKKworICAgIGRlZiB0ZXN0X2dlbmVyYXRlX3Rlc3RzX29ubHlfZG9uZV9pbl9z
dWJkaXIoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHN1YjEgPSB0ZXN0ZGlyLm1rcHlkaXIoInN1
YjEiKQorICAgICAgICBzdWIyID0gdGVzdGRpci5ta3B5ZGlyKCJzdWIyIikKKyAgICAgICAgc3Vi
MS5qb2luKCJjb25mdGVzdC5weSIpLndyaXRlKF9weXRlc3QuX2NvZGUuU291cmNlKCIiIgorICAg
ICAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6CisgICAgICAgICAg
ICAgICAgYXNzZXJ0IG1ldGFmdW5jLmZ1bmN0aW9uLl9fbmFtZV9fID09ICJ0ZXN0XzEiCisgICAg
ICAgICIiIikpCisgICAgICAgIHN1YjIuam9pbigiY29uZnRlc3QucHkiKS53cml0ZShfcHl0ZXN0
Ll9jb2RlLlNvdXJjZSgiIiIKKyAgICAgICAgICAgIGRlZiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMo
bWV0YWZ1bmMpOgorICAgICAgICAgICAgICAgIGFzc2VydCBtZXRhZnVuYy5mdW5jdGlvbi5fX25h
bWVfXyA9PSAidGVzdF8yIgorICAgICAgICAiIiIpKQorICAgICAgICBzdWIxLmpvaW4oInRlc3Rf
aW5fc3ViMS5weSIpLndyaXRlKCJkZWYgdGVzdF8xKCk6IHBhc3MiKQorICAgICAgICBzdWIyLmpv
aW4oInRlc3RfaW5fc3ViMi5weSIpLndyaXRlKCJkZWYgdGVzdF8yKCk6IHBhc3MiKQorICAgICAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1rZWVwLWR1cGxpY2F0ZXMiLCAiLXYiLCAi
LXMiLCBzdWIxLCBzdWIyLCBzdWIxKQorICAgICAgICByZXN1bHQuYXNzZXJ0X291dGNvbWVzKHBh
c3NlZD0zKQorCisgICAgZGVmIHRlc3RfZ2VuZXJhdGVfc2FtZV9mdW5jdGlvbl9uYW1lc19pc3N1
ZTQwMyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBkZWYgbWFrZV90ZXN0cygpOgor
ICAgICAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgieCIsIHJhbmdlKDIpKQor
ICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Zvbyh4KToKKyAgICAgICAgICAgICAgICAgICAgcGFz
cworICAgICAgICAgICAgICAgIHJldHVybiB0ZXN0X2ZvbworCisgICAgICAgICAgICB0ZXN0X3gg
PSBtYWtlX3Rlc3RzKCkKKyAgICAgICAgICAgIHRlc3RfeSA9IG1ha2VfdGVzdHMoKQorICAgICAg
ICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVw
cmVjLmFzc2VydF9vdXRjb21lcyhwYXNzZWQ9NCkKKworICAgIEBweXRlc3QubWFyay5pc3N1ZTQ2
MworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnYXR0cicsIFsncGFyYW1ldHJpc2UnLCAn
cGFyYW1ldGVyaXplJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Bh
cmFtZXRlcmlzZSddKQorICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXplX21pc3NwZWxsaW5nKHNlbGYs
IHRlc3RkaXIsIGF0dHIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay57MH0oIngiLCBy
YW5nZSgyKSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Zvbyh4KToKKyAgICAgICAgICAgICAgICBw
YXNzCisgICAgICAgICIiIi5mb3JtYXQoYXR0cikpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIu
aW5saW5lX3J1bignLS1jb2xsZWN0b25seScpCisgICAgICAgIGZhaWx1cmVzID0gcmVwcmVjLmdl
dGZhaWx1cmVzKCkKKyAgICAgICAgYXNzZXJ0IGxlbihmYWlsdXJlcykgPT0gMQorICAgICAgICBl
eHBlY3RlZGVycm9yID0gIk1hcmtlckVycm9yOiB0ZXN0X2ZvbyBoYXMgJ3swfScsIHNwZWxsaW5n
IHNob3VsZCBiZSAncGFyYW1ldHJpemUnIi5mb3JtYXQoYXR0cikKKyAgICAgICAgYXNzZXJ0IGV4
cGVjdGVkZXJyb3IgaW4gZmFpbHVyZXNbMF0ubG9uZ3JlcHIucmVwcmNyYXNoLm1lc3NhZ2UKKwor
CitjbGFzcyBUZXN0TWV0YWZ1bmNGdW5jdGlvbmFsQXV0byhvYmplY3QpOgorICAgICIiIgorICAg
IFRlc3RzIHJlbGF0ZWQgdG8gYXV0b21hdGljYWxseSBmaW5kIG91dCB0aGUgY29ycmVjdCBzY29w
ZSBmb3IgcGFyYW1ldHJpemVkIHRlc3RzICgjMTgzMikuCisgICAgIiIiCisKKyAgICBkZWYgdGVz
dF9wYXJhbWV0cml6ZV9hdXRvX3Njb3BlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoJycnCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZShzY29wZT0nc2Vzc2lvbicsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAg
ICAgIGRlZiBmaXh0dXJlKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIDEKKworICAgICAgICAg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdhbmltYWwnLCBbImRvZyIsICJjYXQiXSkKKyAg
ICAgICAgICAgIGRlZiB0ZXN0XzEoYW5pbWFsKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgYW5p
bWFsIGluICgnZG9nJywgJ2NhdCcpCisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0
cml6ZSgnYW5pbWFsJywgWydmaXNoJ10pCisgICAgICAgICAgICBkZWYgdGVzdF8yKGFuaW1hbCk6
CisgICAgICAgICAgICAgICAgYXNzZXJ0IGFuaW1hbCA9PSAnZmlzaCcKKworICAgICAgICAnJycp
CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKFsnKiAzIHBhc3NlZCAqJ10pCisKKyAgICBkZWYgdGVzdF9wYXJh
bWV0cml6ZV9hdXRvX3Njb3BlX2luZGlyZWN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoJycnCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAg
ICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nc2Vzc2lvbicpCisgICAgICAgICAgICBkZWYgZWNo
byhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQorCisgICAg
ICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2FuaW1hbCwgZWNobycsIFsoImRvZyIs
IDEpLCAoImNhdCIsIDIpXSwgaW5kaXJlY3Q9WydlY2hvJ10pCisgICAgICAgICAgICBkZWYgdGVz
dF8xKGFuaW1hbCwgZWNobyk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGFuaW1hbCBpbiAoJ2Rv
ZycsICdjYXQnKQorICAgICAgICAgICAgICAgIGFzc2VydCBlY2hvIGluICgxLCAyLCAzKQorCisg
ICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2FuaW1hbCwgZWNobycsIFsoJ2Zp
c2gnLCAzKV0sIGluZGlyZWN0PVsnZWNobyddKQorICAgICAgICAgICAgZGVmIHRlc3RfMihhbmlt
YWwsIGVjaG8pOgorICAgICAgICAgICAgICAgIGFzc2VydCBhbmltYWwgPT0gJ2Zpc2gnCisgICAg
ICAgICAgICAgICAgYXNzZXJ0IGVjaG8gaW4gKDEsIDIsIDMpCisgICAgICAgICcnJykKKyAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoWycqIDMgcGFzc2VkIConXSkKKworICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXpl
X2F1dG9fc2NvcGVfb3ZlcnJpZGVfZml4dHVyZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKCcnJworICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J3Nlc3Npb24nLCBhdXRvdXNlPVRydWUpCisgICAg
ICAgICAgICBkZWYgYW5pbWFsKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuICdmb3gnCisKKyAg
ICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnYW5pbWFsJywgWyJkb2ciLCAiY2F0
Il0pCisgICAgICAgICAgICBkZWYgdGVzdF8xKGFuaW1hbCk6CisgICAgICAgICAgICAgICAgYXNz
ZXJ0IGFuaW1hbCBpbiAoJ2RvZycsICdjYXQnKQorICAgICAgICAnJycpCisgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKFsnKiAyIHBhc3NlZCAqJ10pCisKKyAgICBkZWYgdGVzdF9wYXJhbWV0cml6ZV9hbGxfaW5k
aXJlY3RzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoJycnCisg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZSgp
CisgICAgICAgICAgICBkZWYgYW5pbWFsKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJldHVy
biByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0nc2Vz
c2lvbicpCisgICAgICAgICAgICBkZWYgZWNobyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVxdWVzdC5wYXJhbQorCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoJ2FuaW1hbCwgZWNobycsIFsoImRvZyIsIDEpLCAoImNhdCIsIDIpXSwgaW5kaXJlY3Q9VHJ1
ZSkKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEoYW5pbWFsLCBlY2hvKToKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgYW5pbWFsIGluICgnZG9nJywgJ2NhdCcpCisgICAgICAgICAgICAgICAgYXNzZXJ0
IGVjaG8gaW4gKDEsIDIsIDMpCisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgnYW5pbWFsLCBlY2hvJywgWygiZmlzaCIsIDMpXSwgaW5kaXJlY3Q9VHJ1ZSkKKyAgICAgICAg
ICAgIGRlZiB0ZXN0XzIoYW5pbWFsLCBlY2hvKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgYW5p
bWFsID09ICdmaXNoJworICAgICAgICAgICAgICAgIGFzc2VydCBlY2hvIGluICgxLCAyLCAzKQor
ICAgICAgICAnJycpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsnKiAzIHBhc3NlZCAqJ10pCisKKyAgICBk
ZWYgdGVzdF9wYXJhbWV0cml6ZV9pc3N1ZTYzNChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKCcnJworICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J21vZHVsZScpCisgICAgICAgICAgICBkZWYgZm9v
KHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHByaW50KCdwcmVwYXJpbmcgZm9vLSVkJyAlIHJl
cXVlc3QucGFyYW0pCisgICAgICAgICAgICAgICAgcmV0dXJuICdmb28tJWQnICUgcmVxdWVzdC5w
YXJhbQorCisgICAgICAgICAgICBkZWYgdGVzdF9vbmUoZm9vKToKKyAgICAgICAgICAgICAgICBw
YXNzCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X3R3byhmb28pOgorICAgICAgICAgICAgICAgIHBh
c3MKKworICAgICAgICAgICAgdGVzdF90d28udGVzdF93aXRoID0gKDIsIDMpCisKKyAgICAgICAg
ICAgIGRlZiBweXRlc3RfZ2VuZXJhdGVfdGVzdHMobWV0YWZ1bmMpOgorICAgICAgICAgICAgICAg
IHBhcmFtcyA9ICgxLCAyLCAzLCA0KQorICAgICAgICAgICAgICAgIGlmIG5vdCAnZm9vJyBpbiBt
ZXRhZnVuYy5maXh0dXJlbmFtZXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybgorCisgICAg
ICAgICAgICAgICAgdGVzdF93aXRoID0gZ2V0YXR0cihtZXRhZnVuYy5mdW5jdGlvbiwgJ3Rlc3Rf
d2l0aCcsIE5vbmUpCisgICAgICAgICAgICAgICAgaWYgdGVzdF93aXRoOgorICAgICAgICAgICAg
ICAgICAgICBwYXJhbXMgPSB0ZXN0X3dpdGgKKyAgICAgICAgICAgICAgICBtZXRhZnVuYy5wYXJh
bWV0cml6ZSgnZm9vJywgcGFyYW1zLCBpbmRpcmVjdD1UcnVlKQorICAgICAgICAnJycpCisgICAg
ICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcyIpCisgICAgICAgIG91dHB1dCA9IHJl
c3VsdC5zdGRvdXQuc3RyKCkKKyAgICAgICAgYXNzZXJ0IG91dHB1dC5jb3VudCgncHJlcGFyaW5n
IGZvby0yJykgPT0gMQorICAgICAgICBhc3NlcnQgb3V0cHV0LmNvdW50KCdwcmVwYXJpbmcgZm9v
LTMnKSA9PSAxCisKKworQHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKCdpZ25vcmU6QXBwbHlp
bmcgbWFya3MgZGlyZWN0bHkgdG8gcGFyYW1ldGVycycpCitAcHl0ZXN0Lm1hcmsuaXNzdWUzMDgK
K2NsYXNzIFRlc3RNYXJrZXJzV2l0aFBhcmFtZXRyaXphdGlvbihvYmplY3QpOgorCisgICAgZGVm
IHRlc3Rfc2ltcGxlX21hcmsoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHMgPSAiIiIKKyAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5tYXJrLmZvbworICAg
ICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCgibiIsICJleHBlY3RlZCIpLCBbCisg
ICAgICAgICAgICAgICAgKDEsIDIpLAorICAgICAgICAgICAgICAgIHB5dGVzdC5tYXJrLmJhcigo
MSwgMykpLAorICAgICAgICAgICAgICAgICgyLCAzKSwKKyAgICAgICAgICAgIF0pCisgICAgICAg
ICAgICBkZWYgdGVzdF9pbmNyZW1lbnQobiwgZXhwZWN0ZWQpOgorICAgICAgICAgICAgICAgIGFz
c2VydCBuICsgMSA9PSBleHBlY3RlZAorICAgICAgICAiIiIKKyAgICAgICAgaXRlbXMgPSB0ZXN0
ZGlyLmdldGl0ZW1zKHMpCisgICAgICAgIGFzc2VydCBsZW4oaXRlbXMpID09IDMKKyAgICAgICAg
Zm9yIGl0ZW0gaW4gaXRlbXM6CisgICAgICAgICAgICBhc3NlcnQgJ2ZvbycgaW4gaXRlbS5rZXl3
b3JkcworICAgICAgICBhc3NlcnQgJ2Jhcicgbm90IGluIGl0ZW1zWzBdLmtleXdvcmRzCisgICAg
ICAgIGFzc2VydCAnYmFyJyBpbiBpdGVtc1sxXS5rZXl3b3JkcworICAgICAgICBhc3NlcnQgJ2Jh
cicgbm90IGluIGl0ZW1zWzJdLmtleXdvcmRzCisKKyAgICBkZWYgdGVzdF9zZWxlY3RfYmFzZWRf
b25fbWFyayhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcyA9ICIiIgorICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoKCJuIiwg
ImV4cGVjdGVkIiksIFsKKyAgICAgICAgICAgICAgICAoMSwgMiksCisgICAgICAgICAgICAgICAg
cHl0ZXN0Lm1hcmsuZm9vKCgyLCAzKSksCisgICAgICAgICAgICAgICAgKDMsIDQpLAorICAgICAg
ICAgICAgXSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2luY3JlbWVudChuLCBleHBlY3RlZCk6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0IG4gKyAxID09IGV4cGVjdGVkCisgICAgICAgICIiIgorICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUocykKKyAgICAgICAgcmVjID0gdGVzdGRpci5pbmxpbmVf
cnVuKCItbSIsICdmb28nKQorICAgICAgICBwYXNzZWQsIHNraXBwZWQsIGZhaWwgPSByZWMubGlz
dG91dGNvbWVzKCkKKyAgICAgICAgYXNzZXJ0IGxlbihwYXNzZWQpID09IDEKKyAgICAgICAgYXNz
ZXJ0IGxlbihza2lwcGVkKSA9PSAwCisgICAgICAgIGFzc2VydCBsZW4oZmFpbCkgPT0gMAorCisg
ICAgQHB5dGVzdC5tYXJrLnhmYWlsKHJlYXNvbj0iaXMgdGhpcyBpbXBvcnRhbnQgdG8gc3VwcG9y
dD8/IikKKyAgICBkZWYgdGVzdF9uZXN0ZWRfbWFya3Moc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHMgPSAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIG1hc3Rlcm1h
cmsgPSBweXRlc3QubWFyay5mb28ocHl0ZXN0Lm1hcmsuYmFyKQorCisgICAgICAgICAgICBAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoKCJuIiwgImV4cGVjdGVkIiksIFsKKyAgICAgICAgICAgICAg
ICAoMSwgMiksCisgICAgICAgICAgICAgICAgbWFzdGVybWFyaygoMSwgMykpLAorICAgICAgICAg
ICAgICAgICgyLCAzKSwKKyAgICAgICAgICAgIF0pCisgICAgICAgICAgICBkZWYgdGVzdF9pbmNy
ZW1lbnQobiwgZXhwZWN0ZWQpOgorICAgICAgICAgICAgICAgIGFzc2VydCBuICsgMSA9PSBleHBl
Y3RlZAorICAgICAgICAiIiIKKyAgICAgICAgaXRlbXMgPSB0ZXN0ZGlyLmdldGl0ZW1zKHMpCisg
ICAgICAgIGFzc2VydCBsZW4oaXRlbXMpID09IDMKKyAgICAgICAgZm9yIG1hcmsgaW4gWydmb28n
LCAnYmFyJ106CisgICAgICAgICAgICBhc3NlcnQgbWFyayBub3QgaW4gaXRlbXNbMF0ua2V5d29y
ZHMKKyAgICAgICAgICAgIGFzc2VydCBtYXJrIGluIGl0ZW1zWzFdLmtleXdvcmRzCisgICAgICAg
ICAgICBhc3NlcnQgbWFyayBub3QgaW4gaXRlbXNbMl0ua2V5d29yZHMKKworICAgIGRlZiB0ZXN0
X3NpbXBsZV94ZmFpbChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcyA9ICIiIgorICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
KCJuIiwgImV4cGVjdGVkIiksIFsKKyAgICAgICAgICAgICAgICAoMSwgMiksCisgICAgICAgICAg
ICAgICAgcHl0ZXN0Lm1hcmsueGZhaWwoKDEsIDMpKSwKKyAgICAgICAgICAgICAgICAoMiwgMyks
CisgICAgICAgICAgICBdKQorICAgICAgICAgICAgZGVmIHRlc3RfaW5jcmVtZW50KG4sIGV4cGVj
dGVkKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgbiArIDEgPT0gZXhwZWN0ZWQKKyAgICAgICAg
IiIiCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZShzKQorICAgICAgICByZXByZWMgPSB0ZXN0
ZGlyLmlubGluZV9ydW4oKQorICAgICAgICAjIHhmYWlsIGlzIHNraXA/PworICAgICAgICByZXBy
ZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9Miwgc2tpcHBlZD0xKQorCisgICAgZGVmIHRlc3Rfc2lt
cGxlX3hmYWlsX3NpbmdsZV9hcmduYW1lKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBzID0gIiIi
CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgibiIsIFsKKyAgICAgICAgICAgICAgICAyLAorICAgICAgICAgICAgICAgIHB5
dGVzdC5tYXJrLnhmYWlsKDMpLAorICAgICAgICAgICAgICAgIDQsCisgICAgICAgICAgICBdKQor
ICAgICAgICAgICAgZGVmIHRlc3RfaXNFdmVuKG4pOgorICAgICAgICAgICAgICAgIGFzc2VydCBu
ICUgMiA9PSAwCisgICAgICAgICIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUocykKKyAg
ICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2Vy
dG91dGNvbWUocGFzc2VkPTIsIHNraXBwZWQ9MSkKKworICAgIGRlZiB0ZXN0X3hmYWlsX3dpdGhf
YXJnKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBzID0gIiIiCisgICAgICAgICAgICBpbXBvcnQg
cHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgoIm4iLCAiZXhw
ZWN0ZWQiKSwgWworICAgICAgICAgICAgICAgICgxLCAyKSwKKyAgICAgICAgICAgICAgICBweXRl
c3QubWFyay54ZmFpbCgiVHJ1ZSIpKCgxLCAzKSksCisgICAgICAgICAgICAgICAgKDIsIDMpLAor
ICAgICAgICAgICAgXSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2luY3JlbWVudChuLCBleHBlY3Rl
ZCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IG4gKyAxID09IGV4cGVjdGVkCisgICAgICAgICIi
IgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUocykKKyAgICAgICAgcmVwcmVjID0gdGVzdGRp
ci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIsIHNr
aXBwZWQ9MSkKKworICAgIGRlZiB0ZXN0X3hmYWlsX3dpdGhfa3dhcmcoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHMgPSAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCgibiIsICJleHBlY3RlZCIpLCBbCisgICAgICAg
ICAgICAgICAgKDEsIDIpLAorICAgICAgICAgICAgICAgIHB5dGVzdC5tYXJrLnhmYWlsKHJlYXNv
bj0ic29tZSBidWciKSgoMSwgMykpLAorICAgICAgICAgICAgICAgICgyLCAzKSwKKyAgICAgICAg
ICAgIF0pCisgICAgICAgICAgICBkZWYgdGVzdF9pbmNyZW1lbnQobiwgZXhwZWN0ZWQpOgorICAg
ICAgICAgICAgICAgIGFzc2VydCBuICsgMSA9PSBleHBlY3RlZAorICAgICAgICAiIiIKKyAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKHMpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5l
X3J1bigpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0yLCBza2lwcGVkPTEp
CisKKyAgICBkZWYgdGVzdF94ZmFpbF93aXRoX2FyZ19hbmRfa3dhcmcoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHMgPSAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCgibiIsICJleHBlY3RlZCIpLCBbCisgICAgICAg
ICAgICAgICAgKDEsIDIpLAorICAgICAgICAgICAgICAgIHB5dGVzdC5tYXJrLnhmYWlsKCJUcnVl
IiwgcmVhc29uPSJzb21lIGJ1ZyIpKCgxLCAzKSksCisgICAgICAgICAgICAgICAgKDIsIDMpLAor
ICAgICAgICAgICAgXSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2luY3JlbWVudChuLCBleHBlY3Rl
ZCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IG4gKyAxID09IGV4cGVjdGVkCisgICAgICAgICIi
IgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUocykKKyAgICAgICAgcmVwcmVjID0gdGVzdGRp
ci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIsIHNr
aXBwZWQ9MSkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnc3RyaWN0JywgW1RydWUs
IEZhbHNlXSkKKyAgICBkZWYgdGVzdF94ZmFpbF9wYXNzaW5nX2lzX3hwYXNzKHNlbGYsIHRlc3Rk
aXIsIHN0cmljdCk6CisgICAgICAgIHMgPSAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
KworICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCgibiIsICJleHBlY3RlZCIp
LCBbCisgICAgICAgICAgICAgICAgKDEsIDIpLAorICAgICAgICAgICAgICAgIHB5dGVzdC5tYXJr
LnhmYWlsKCJzeXMudmVyc2lvbl9pbmZvID4gKDAsIDAsIDApIiwgcmVhc29uPSJzb21lIGJ1ZyIs
IHN0cmljdD17c3RyaWN0fSkoKDIsIDMpKSwKKyAgICAgICAgICAgICAgICAoMywgNCksCisgICAg
ICAgICAgICBdKQorICAgICAgICAgICAgZGVmIHRlc3RfaW5jcmVtZW50KG4sIGV4cGVjdGVkKToK
KyAgICAgICAgICAgICAgICBhc3NlcnQgbiArIDEgPT0gZXhwZWN0ZWQKKyAgICAgICAgIiIiLmZv
cm1hdChzdHJpY3Q9c3RyaWN0KQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUocykKKyAgICAg
ICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcGFzc2VkLCBmYWlsZWQg
PSAoMiwgMSkgaWYgc3RyaWN0IGVsc2UgKDMsIDApCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRj
b21lKHBhc3NlZD1wYXNzZWQsIGZhaWxlZD1mYWlsZWQpCisKKyAgICBkZWYgdGVzdF9wYXJhbWV0
cml6ZV9jYWxsZWRfaW5fZ2VuZXJhdGVfdGVzdHMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHMg
PSAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworCisgICAgICAgICAgICBkZWYgcHl0
ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICAgICAgICAgICAgICBwYXNzaW5nVGVz
dERhdGEgPSBbKDEsIDIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMiwg
MyldCisgICAgICAgICAgICAgICAgZmFpbGluZ1Rlc3REYXRhID0gWygxLCAzKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKDIsIDIpXQorCisgICAgICAgICAgICAgICAgdGVz
dERhdGEgPSBwYXNzaW5nVGVzdERhdGEgKyBbcHl0ZXN0Lm1hcmsueGZhaWwoZCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgZCBpbiBmYWlsaW5nVGVzdERhdGFdCisgICAg
ICAgICAgICAgICAgbWV0YWZ1bmMucGFyYW1ldHJpemUoKCJuIiwgImV4cGVjdGVkIiksIHRlc3RE
YXRhKQorCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2luY3JlbWVudChuLCBleHBlY3RlZCk6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0IG4gKyAxID09IGV4cGVjdGVkCisgICAgICAgICIiIgorICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUocykKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxp
bmVfcnVuKCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTIsIHNraXBwZWQ9
MikKKworICAgIEBweXRlc3QubWFyay5pc3N1ZTI5MAorICAgIGRlZiB0ZXN0X3BhcmFtZXRyaXpl
X0lEX2dlbmVyYXRpb25fc3RyaW5nX2ludF93b3JrcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBteWZpeHR1cmUoKToKKyAg
ICAgICAgICAgICAgICByZXR1cm4gJ2V4YW1wbGUnCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoCisgICAgICAgICAgICAgICAgJ2xpbWl0JywgKDAsICcwJykpCisgICAgICAg
ICAgICBkZWYgdGVzdF9saW1pdChsaW1pdCwgbXlmaXh0dXJlKToKKyAgICAgICAgICAgICAgICBy
ZXR1cm4KKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4o
KQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikKKworICAgIEBweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgnc3RyaWN0JywgW1RydWUsIEZhbHNlXSkKKyAgICBkZWYgdGVzdF9w
YXJhbWV0cml6ZV9tYXJrZWRfdmFsdWUoc2VsZiwgdGVzdGRpciwgc3RyaWN0KToKKyAgICAgICAg
cyA9ICIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0
Lm1hcmsucGFyYW1ldHJpemUoKCJuIiwgImV4cGVjdGVkIiksIFsKKyAgICAgICAgICAgICAgICBw
eXRlc3QucGFyYW0oCisgICAgICAgICAgICAgICAgICAgIDIsMywKKyAgICAgICAgICAgICAgICAg
ICAgbWFya3M9cHl0ZXN0Lm1hcmsueGZhaWwoInN5cy52ZXJzaW9uX2luZm8gPiAoMCwgMCwgMCki
LCByZWFzb249InNvbWUgYnVnIiwgc3RyaWN0PXtzdHJpY3R9KSwKKyAgICAgICAgICAgICAgICAp
LAorICAgICAgICAgICAgICAgIHB5dGVzdC5wYXJhbSgKKyAgICAgICAgICAgICAgICAgICAgMiwz
LAorICAgICAgICAgICAgICAgICAgICBtYXJrcz1bcHl0ZXN0Lm1hcmsueGZhaWwoInN5cy52ZXJz
aW9uX2luZm8gPiAoMCwgMCwgMCkiLCByZWFzb249InNvbWUgYnVnIiwgc3RyaWN0PXtzdHJpY3R9
KV0sCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgIF0pCisgICAgICAgICAgICBkZWYg
dGVzdF9pbmNyZW1lbnQobiwgZXhwZWN0ZWQpOgorICAgICAgICAgICAgICAgIGFzc2VydCBuICsg
MSA9PSBleHBlY3RlZAorICAgICAgICAiIiIuZm9ybWF0KHN0cmljdD1zdHJpY3QpCisgICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZShzKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9y
dW4oKQorICAgICAgICBwYXNzZWQsIGZhaWxlZCA9ICgwLCAyKSBpZiBzdHJpY3QgZWxzZSAoMiwg
MCkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPXBhc3NlZCwgZmFpbGVkPWZh
aWxlZCkKKworICAgIGRlZiB0ZXN0X3B5dGVzdF9tYWtlX3BhcmFtZXRyaXplX2lkKHNlbGYsIHRl
c3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGRl
ZiBweXRlc3RfbWFrZV9wYXJhbWV0cml6ZV9pZChjb25maWcsIHZhbCk6CisgICAgICAgICAgICAg
ICAgcmV0dXJuIHN0cih2YWwgKiAyKQorICAgICAgICAiIiIpCisgICAgICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAg
ICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoIngiLCByYW5nZSgyKSkKKyAgICAgICAgICAg
ICAgICBkZWYgdGVzdF9mdW5jKHgpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAg
ICAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiKQor
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIip0ZXN0
X2Z1bmMqMCpQQVNTKiIsCisgICAgICAgICAgICAiKnRlc3RfZnVuYyoyKlBBU1MqIiwKKyAgICAg
ICAgXSkKKworICAgIGRlZiB0ZXN0X3B5dGVzdF9tYWtlX3BhcmFtZXRyaXplX2lkX3dpdGhfYXJn
bmFtZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisg
ICAgICAgICAgICBkZWYgcHl0ZXN0X21ha2VfcGFyYW1ldHJpemVfaWQoY29uZmlnLCB2YWwsIGFy
Z25hbWUpOgorICAgICAgICAgICAgICAgIHJldHVybiBzdHIodmFsICogMiBpZiBhcmduYW1lID09
ICd4JyBlbHNlIHZhbCAqIDEwKQorICAgICAgICAiIiIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgiIiIKKyAgICAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgICAg
ICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoIngiLCByYW5nZSgyKSkKKyAgICAgICAgICAgICAg
ICBkZWYgdGVzdF9mdW5jX2EoeCk6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAg
ICAgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgieSIsIFsxXSkKKyAgICAgICAgICAg
ICAgICBkZWYgdGVzdF9mdW5jX2IoeSk6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIp
CisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKnRl
c3RfZnVuY19hKjAqUEFTUyoiLAorICAgICAgICAgICAgIip0ZXN0X2Z1bmNfYSoyKlBBU1MqIiwK
KyAgICAgICAgICAgICIqdGVzdF9mdW5jX2IqMTAqUEFTUyoiLAorICAgICAgICBdKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vcmFpc2VzLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy9weXRob24vcmFpc2VzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyMWVlMzQ5ZWU2MGJkYzViY2Y5
ZmUyODg2NDM5ZjFmYWUxZGUxNDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL3B5dGhvbi9yYWlzZXMucHkKQEAgLTAsMCArMSwxMzQgQEAKK2ltcG9ydCBweXRlc3QKK2lt
cG9ydCBzeXMKKworCitjbGFzcyBUZXN0UmFpc2VzKG9iamVjdCk6CisgICAgZGVmIHRlc3RfcmFp
c2VzKHNlbGYpOgorICAgICAgICBzb3VyY2UgPSAiaW50KCdxd2UnKSIKKyAgICAgICAgZXhjaW5m
byA9IHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgc291cmNlKQorICAgICAgICBjb2RlID0gZXhj
aW5mby50cmFjZWJhY2tbLTFdLmZyYW1lLmNvZGUKKyAgICAgICAgcyA9IHN0cihjb2RlLmZ1bGxz
b3VyY2UpCisgICAgICAgIGFzc2VydCBzID09IHNvdXJjZQorCisgICAgZGVmIHRlc3RfcmFpc2Vz
X2V4ZWMoc2VsZik6CisgICAgICAgIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgImEseCA9IFtd
IikKKworICAgIGRlZiB0ZXN0X3JhaXNlc19zeW50YXhfZXJyb3Ioc2VsZik6CisgICAgICAgIHB5
dGVzdC5yYWlzZXMoU3ludGF4RXJyb3IsICJxd2UgcXdlIHF3ZSIpCisKKyAgICBkZWYgdGVzdF9y
YWlzZXNfZnVuY3Rpb24oc2VsZik6CisgICAgICAgIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwg
aW50LCAnaGVsbG8nKQorCisgICAgZGVmIHRlc3RfcmFpc2VzX2NhbGxhYmxlX25vX2V4Y2VwdGlv
bihzZWxmKToKKyAgICAgICAgY2xhc3MgQShvYmplY3QpOgorICAgICAgICAgICAgZGVmIF9fY2Fs
bF9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBBKCkpCisgICAgICAgIGV4Y2VwdCBweXRlc3Qu
cmFpc2VzLkV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHBhc3MKKworICAgIGRlZiB0ZXN0X3JhaXNl
c19hc19jb250ZXh0bWFuYWdlcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtl
cHlmaWxlKCIiIgorICAgICAgICAgICAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB3aXRoX3N0YXRl
bWVudAorICAgICAgICAgICAgaW1wb3J0IHB5LCBweXRlc3QKKyAgICAgICAgICAgIGltcG9ydCBf
cHl0ZXN0Ll9jb2RlCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X3NpbXBsZSgpOgorICAgICAgICAg
ICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhaZXJvRGl2aXNpb25FcnJvcikgYXMgZXhjaW5mbzoK
KyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZXhjaW5mbywgX3B5dGVzdC5f
Y29kZS5FeGNlcHRpb25JbmZvKQorICAgICAgICAgICAgICAgICAgICAxLzAKKyAgICAgICAgICAg
ICAgICBwcmludCAoZXhjaW5mbykKKyAgICAgICAgICAgICAgICBhc3NlcnQgZXhjaW5mby50eXBl
ID09IFplcm9EaXZpc2lvbkVycm9yCisgICAgICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
ZXhjaW5mby52YWx1ZSwgWmVyb0RpdmlzaW9uRXJyb3IpCisKKyAgICAgICAgICAgIGRlZiB0ZXN0
X25vcmFpc2UoKToKKyAgICAgICAgICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMocHl0ZXN0LnJh
aXNlcy5FeGNlcHRpb24pOgorICAgICAgICAgICAgICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMo
VmFsdWVFcnJvcik6CisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQoKQorCisgICAgICAg
ICAgICBkZWYgdGVzdF9yYWlzZV93cm9uZ19leGNlcHRpb25fcGFzc2VzX2J5KCk6CisgICAgICAg
ICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFplcm9EaXZpc2lvbkVycm9yKToKKyAgICAgICAg
ICAgICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMS8wCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAg
ICAgICAgICAgJyozIHBhc3NlZConLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3Rfbm9jbGFz
cyhzZWxmKToKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFR5cGVFcnJvcik6CisgICAgICAg
ICAgICBweXRlc3QucmFpc2VzKCd3cm9uZycsIGxhbWJkYTogTm9uZSkKKworICAgIGRlZiB0ZXN0
X3R1cGxlKHNlbGYpOgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoKEtleUVycm9yLCBWYWx1
ZUVycm9yKSk6CisgICAgICAgICAgICByYWlzZSBLZXlFcnJvcignb29wcycpCisKKyAgICBkZWYg
dGVzdF9ub19yYWlzZV9tZXNzYWdlKHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBw
eXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIGludCwgJzAnKQorICAgICAgICBleGNlcHQgcHl0ZXN0
LnJhaXNlcy5FeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIGFzc2VydCBlLm1zZyA9PSAiRElE
IE5PVCBSQUlTRSB7MH0iLmZvcm1hdChyZXByKFZhbHVlRXJyb3IpKQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgYXNzZXJ0IEZhbHNlLCAiRXhwZWN0ZWQgcHl0ZXN0LnJhaXNlcy5FeGNlcHRp
b24iCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVl
RXJyb3IpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZXhjZXB0IHB5dGVzdC5yYWlz
ZXMuRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBhc3NlcnQgZS5tc2cgPT0gIkRJRCBOT1Qg
UkFJU0UgezB9Ii5mb3JtYXQocmVwcihWYWx1ZUVycm9yKSkKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIGFzc2VydCBGYWxzZSwgIkV4cGVjdGVkIHB5dGVzdC5yYWlzZXMuRXhjZXB0aW9uIgor
CisgICAgZGVmIHRlc3RfY3VzdG9tX3JhaXNlX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIG1lc3Nh
Z2UgPSAiVEVTVF9NRVNTQUdFIgorICAgICAgICB0cnk6CisgICAgICAgICAgICB3aXRoIHB5dGVz
dC5yYWlzZXMoVmFsdWVFcnJvciwgbWVzc2FnZT1tZXNzYWdlKToKKyAgICAgICAgICAgICAgICBw
YXNzCisgICAgICAgIGV4Y2VwdCBweXRlc3QucmFpc2VzLkV4Y2VwdGlvbiBhcyBlOgorICAgICAg
ICAgICAgYXNzZXJ0IGUubXNnID09IG1lc3NhZ2UKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IGFzc2VydCBGYWxzZSwgIkV4cGVjdGVkIHB5dGVzdC5yYWlzZXMuRXhjZXB0aW9uIgorCisgICAg
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdtZXRob2QnLCBbJ2Z1bmN0aW9uJywgJ3dpdGgnXSkK
KyAgICBkZWYgdGVzdF9yYWlzZXNfY3ljbGljX3JlZmVyZW5jZShzZWxmLCBtZXRob2QpOgorICAg
ICAgICAiIiIKKyAgICAgICAgRW5zdXJlIHB5dGVzdC5yYWlzZXMgZG9lcyBub3QgbGVhdmUgYSBy
ZWZlcmVuY2UgY3ljbGUgKCMxOTY1KS4KKyAgICAgICAgIiIiCisgICAgICAgIGltcG9ydCBnYwor
CisgICAgICAgIGNsYXNzIFQob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxm
KToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yCisKKyAgICAgICAgdCA9IFQoKQor
ICAgICAgICBpZiBtZXRob2QgPT0gJ2Z1bmN0aW9uJzoKKyAgICAgICAgICAgIHB5dGVzdC5yYWlz
ZXMoVmFsdWVFcnJvciwgdCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHdpdGggcHl0ZXN0
LnJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgICAgICB0KCkKKworICAgICAgICAjIGVu
c3VyZSBib3RoIGZvcm1zIG9mIHB5dGVzdC5yYWlzZXMgZG9uJ3QgbGVhdmUgZXhjZXB0aW9ucyBp
biBzeXMuZXhjX2luZm8oKQorICAgICAgICBhc3NlcnQgc3lzLmV4Y19pbmZvKCkgPT0gKE5vbmUs
IE5vbmUsIE5vbmUpCisKKyAgICAgICAgZGVsIHQKKworICAgICAgICAjIGVuc3VyZSB0aGUgdCBp
bnN0YW5jZSBpcyBub3Qgc3R1Y2sgaW4gYSBjeWNsaWMgcmVmZXJlbmNlCisgICAgICAgIGZvciBv
IGluIGdjLmdldF9vYmplY3RzKCk6CisgICAgICAgICAgICBhc3NlcnQgdHlwZShvKSBpcyBub3Qg
VAorCisgICAgZGVmIHRlc3RfcmFpc2VzX21hdGNoKHNlbGYpOgorICAgICAgICBtc2cgPSByIndp
dGggYmFzZSBcZCsiCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtYXRj
aD1tc2cpOgorICAgICAgICAgICAgaW50KCdhc2RmJykKKworICAgICAgICBtc2cgPSAid2l0aCBi
YXNlIDEwIgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgbWF0Y2g9bXNn
KToKKyAgICAgICAgICAgIGludCgnYXNkZicpCisKKyAgICAgICAgbXNnID0gIndpdGggYmFzZSAx
NiIKKyAgICAgICAgZXhwciA9IHIiUGF0dGVybiAnezB9JyBub3QgZm91bmQgaW4gJ2ludmFsaWQg
bGl0ZXJhbCBmb3IgaW50XChcKSB3aXRoIGJhc2UgMTA6ICdhc2RmJyciLmZvcm1hdChtc2cpCisg
ICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhBc3NlcnRpb25FcnJvciwgbWF0Y2g9ZXhwcik6Cisg
ICAgICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgbWF0Y2g9bXNnKToKKyAg
ICAgICAgICAgICAgICBpbnQoJ2FzZGYnLCBiYXNlPTEwKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9weXRob24vc2V0dXBfb25seS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0
aG9uL3NldHVwX29ubHkucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWIzNDMxMmZjYzhlZDg4MDVhOWRiMTA5ZDI2
NTRhZDhjNjZlYTJjMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0
aG9uL3NldHVwX29ubHkucHkKQEAgLTAsMCArMSwyNDMgQEAKK2ltcG9ydCBweXRlc3QKKworCitA
cHl0ZXN0LmZpeHR1cmUocGFyYW1zPVsnLS1zZXR1cC1vbmx5JywgJy0tc2V0dXAtcGxhbicsICct
LXNldHVwLXNob3cnXSwKKyAgICAgICAgICAgICAgICBzY29wZT0nbW9kdWxlJykKK2RlZiBtb2Rl
KHJlcXVlc3QpOgorICAgIHJldHVybiByZXF1ZXN0LnBhcmFtCisKKworZGVmIHRlc3Rfc2hvd19v
bmx5X2FjdGl2ZV9maXh0dXJlcyh0ZXN0ZGlyLCBtb2RlKToKKyAgICBwID0gdGVzdGRpci5tYWtl
cHlmaWxlKCcnJworICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIEBweXRlc3QuZml4dHVy
ZQorICAgICAgICBkZWYgX2FyZzAoKToKKyAgICAgICAgICAgICIiImhpZGRlbiBhcmcwIGZpeHR1
cmUiIiIKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgIGRlZiBhcmcxKCk6CisgICAg
ICAgICAgICAiIiJhcmcxIGRvY3N0cmluZyIiIgorICAgICAgICBkZWYgdGVzdF9hcmcxKGFyZzEp
OgorICAgICAgICAgICAgcGFzcworICAgICcnJykKKworICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KG1vZGUsIHApCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgJypTRVRVUCAgICBGIGFyZzEqJywKKyAg
ICAgICAgJyp0ZXN0X2FyZzEgKGZpeHR1cmVzIHVzZWQ6IGFyZzEpKicsCisgICAgICAgICcqVEVB
UkRPV04gRiBhcmcxKicsCisgICAgXSkKKyAgICBhc3NlcnQgIl9hcmcwIiBub3QgaW4gcmVzdWx0
LnN0ZG91dC5zdHIoKQorCisKK2RlZiB0ZXN0X3Nob3dfZGlmZmVyZW50X3Njb3Blcyh0ZXN0ZGly
LCBtb2RlKToKKyAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCcnJworICAgICAgICBpbXBvcnQg
cHl0ZXN0CisgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICBkZWYgYXJnX2Z1bmN0aW9u
KCk6CisgICAgICAgICAgICAiIiJmdW5jdGlvbiBzY29wZWQgZml4dHVyZSIiIgorICAgICAgICBA
cHl0ZXN0LmZpeHR1cmUoc2NvcGU9J3Nlc3Npb24nKQorICAgICAgICBkZWYgYXJnX3Nlc3Npb24o
KToKKyAgICAgICAgICAgICIiInNlc3Npb24gc2NvcGVkIGZpeHR1cmUiIiIKKyAgICAgICAgZGVm
IHRlc3RfYXJnMShhcmdfc2Vzc2lvbiwgYXJnX2Z1bmN0aW9uKToKKyAgICAgICAgICAgIHBhc3MK
KyAgICAnJycpCisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChtb2RlLCBwKQorICAg
IGFzc2VydCByZXN1bHQucmV0ID09IDAKKworICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cyhbCisgICAgICAgICdTRVRVUCAgICBTIGFyZ19zZXNzaW9uKicsCisgICAgICAgICcqU0VUVVAg
ICAgRiBhcmdfZnVuY3Rpb24qJywKKyAgICAgICAgJyp0ZXN0X2FyZzEgKGZpeHR1cmVzIHVzZWQ6
IGFyZ19mdW5jdGlvbiwgYXJnX3Nlc3Npb24pKicsCisgICAgICAgICcqVEVBUkRPV04gRiBhcmdf
ZnVuY3Rpb24qJywKKyAgICAgICAgJ1RFQVJET1dOIFMgYXJnX3Nlc3Npb24qJywKKyAgICBdKQor
CisKK2RlZiB0ZXN0X3Nob3dfbmVzdGVkX2ZpeHR1cmVzKHRlc3RkaXIsIG1vZGUpOgorICAgIHRl
c3RkaXIubWFrZWNvbmZ0ZXN0KCcnJworICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIEBw
eXRlc3QuZml4dHVyZShzY29wZT0nc2Vzc2lvbicpCisgICAgICAgIGRlZiBhcmdfc2FtZSgpOgor
ICAgICAgICAgICAgIiIic2Vzc2lvbiBzY29wZWQgZml4dHVyZSIiIgorICAgICAgICAnJycpCisg
ICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J2Z1bmN0aW9uJykKKyAgICAgICAgZGVmIGFyZ19z
YW1lKGFyZ19zYW1lKToKKyAgICAgICAgICAgICIiImZ1bmN0aW9uIHNjb3BlZCBmaXh0dXJlIiIi
CisgICAgICAgIGRlZiB0ZXN0X2FyZzEoYXJnX3NhbWUpOgorICAgICAgICAgICAgcGFzcworICAg
ICcnJykKKworICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KG1vZGUsIHApCisgICAgYXNz
ZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsK
KyAgICAgICAgJ1NFVFVQICAgIFMgYXJnX3NhbWUqJywKKyAgICAgICAgJypTRVRVUCAgICBGIGFy
Z19zYW1lIChmaXh0dXJlcyB1c2VkOiBhcmdfc2FtZSkqJywKKyAgICAgICAgJyp0ZXN0X2FyZzEg
KGZpeHR1cmVzIHVzZWQ6IGFyZ19zYW1lKSonLAorICAgICAgICAnKlRFQVJET1dOIEYgYXJnX3Nh
bWUqJywKKyAgICAgICAgJ1RFQVJET1dOIFMgYXJnX3NhbWUqJywKKyAgICBdKQorCisKK2RlZiB0
ZXN0X3Nob3dfZml4dHVyZXNfd2l0aF9hdXRvdXNlKHRlc3RkaXIsIG1vZGUpOgorICAgIHAgPSB0
ZXN0ZGlyLm1ha2VweWZpbGUoJycnCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgQHB5
dGVzdC5maXh0dXJlCisgICAgICAgIGRlZiBhcmdfZnVuY3Rpb24oKToKKyAgICAgICAgICAgICIi
ImZ1bmN0aW9uIHNjb3BlZCBmaXh0dXJlIiIiCisgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29w
ZT0nc2Vzc2lvbicsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgZGVmIGFyZ19zZXNzaW9uKCk6Cisg
ICAgICAgICAgICAiIiJzZXNzaW9uIHNjb3BlZCBmaXh0dXJlIiIiCisgICAgICAgIGRlZiB0ZXN0
X2FyZzEoYXJnX2Z1bmN0aW9uKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAnJycpCisKKyAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChtb2RlLCBwKQorICAgIGFzc2VydCByZXN1bHQucmV0
ID09IDAKKworICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICdTRVRV
UCAgICBTIGFyZ19zZXNzaW9uKicsCisgICAgICAgICcqU0VUVVAgICAgRiBhcmdfZnVuY3Rpb24q
JywKKyAgICAgICAgJyp0ZXN0X2FyZzEgKGZpeHR1cmVzIHVzZWQ6IGFyZ19mdW5jdGlvbiwgYXJn
X3Nlc3Npb24pKicsCisgICAgXSkKKworCitkZWYgdGVzdF9zaG93X2ZpeHR1cmVzX3dpdGhfcGFy
YW1ldGVycyh0ZXN0ZGlyLCBtb2RlKToKKyAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgnJycKKyAg
ICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J3Nlc3Np
b24nLCBwYXJhbXM9Wydmb28nLCAnYmFyJ10pCisgICAgICAgIGRlZiBhcmdfc2FtZSgpOgorICAg
ICAgICAgICAgIiIic2Vzc2lvbiBzY29wZWQgZml4dHVyZSIiIgorICAgICAgICAnJycpCisgICAg
cCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J2Z1bmN0aW9uJykKKyAgICAgICAgZGVmIGFyZ19vdGhl
cihhcmdfc2FtZSk6CisgICAgICAgICAgICAiIiJmdW5jdGlvbiBzY29wZWQgZml4dHVyZSIiIgor
ICAgICAgICBkZWYgdGVzdF9hcmcxKGFyZ19vdGhlcik6CisgICAgICAgICAgICBwYXNzCisgICAg
JycnKQorCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QobW9kZSwgcCkKKyAgICBhc3Nl
cnQgcmVzdWx0LnJldCA9PSAwCisKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWwor
ICAgICAgICAnU0VUVVAgICAgUyBhcmdfc2FtZT9mb28/JywKKyAgICAgICAgJ1RFQVJET1dOIFMg
YXJnX3NhbWU/Zm9vPycsCisgICAgICAgICdTRVRVUCAgICBTIGFyZ19zYW1lP2Jhcj8nLAorICAg
ICAgICAnVEVBUkRPV04gUyBhcmdfc2FtZT9iYXI/JywKKyAgICBdKQorCisKK2RlZiB0ZXN0X3No
b3dfZml4dHVyZXNfd2l0aF9wYXJhbWV0ZXJfaWRzKHRlc3RkaXIsIG1vZGUpOgorICAgIHRlc3Rk
aXIubWFrZWNvbmZ0ZXN0KCcnJworICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIEBweXRl
c3QuZml4dHVyZSgKKyAgICAgICAgICAgIHNjb3BlPSdzZXNzaW9uJywgcGFyYW1zPVsnZm9vJywg
J2JhciddLCBpZHM9WydzcGFtJywgJ2hhbSddKQorICAgICAgICBkZWYgYXJnX3NhbWUoKToKKyAg
ICAgICAgICAgICIiInNlc3Npb24gc2NvcGVkIGZpeHR1cmUiIiIKKyAgICAgICAgJycnKQorICAg
IHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoJycnCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAg
ICAgQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdmdW5jdGlvbicpCisgICAgICAgIGRlZiBhcmdfb3Ro
ZXIoYXJnX3NhbWUpOgorICAgICAgICAgICAgIiIiZnVuY3Rpb24gc2NvcGVkIGZpeHR1cmUiIiIK
KyAgICAgICAgZGVmIHRlc3RfYXJnMShhcmdfb3RoZXIpOgorICAgICAgICAgICAgcGFzcworICAg
ICcnJykKKworICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KG1vZGUsIHApCisgICAgYXNz
ZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsK
KyAgICAgICAgJ1NFVFVQICAgIFMgYXJnX3NhbWU/c3BhbT8nLAorICAgICAgICAnU0VUVVAgICAg
UyBhcmdfc2FtZT9oYW0/JywKKyAgICBdKQorCisKK2RlZiB0ZXN0X3Nob3dfZml4dHVyZXNfd2l0
aF9wYXJhbWV0ZXJfaWRzX2Z1bmN0aW9uKHRlc3RkaXIsIG1vZGUpOgorICAgIHAgPSB0ZXN0ZGly
Lm1ha2VweWZpbGUoJycnCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgQHB5dGVzdC5m
aXh0dXJlKHBhcmFtcz1bJ2ZvbycsICdiYXInXSwgaWRzPWxhbWJkYSBwOiBwLnVwcGVyKCkpCisg
ICAgICAgIGRlZiBmb29iYXIoKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZGVmIHRlc3Rf
Zm9vYmFyKGZvb2Jhcik6CisgICAgICAgICAgICBwYXNzCisgICAgJycnKQorCisgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QobW9kZSwgcCkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAw
CisKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAnKlNFVFVQICAg
IEYgZm9vYmFyP0ZPTz8nLAorICAgICAgICAnKlNFVFVQICAgIEYgZm9vYmFyP0JBUj8nLAorICAg
IF0pCisKKworZGVmIHRlc3RfZHluYW1pY19maXh0dXJlX3JlcXVlc3QodGVzdGRpcik6CisgICAg
cCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUoKQorICAgICAgICBkZWYgZHluYW1pY2FsbHlfcmVxdWVzdGVkX2Zp
eHR1cmUoKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlKCkKKyAg
ICAgICAgZGVmIGRlcGVuZGVudF9maXh0dXJlKHJlcXVlc3QpOgorICAgICAgICAgICAgcmVxdWVz
dC5nZXRmaXh0dXJldmFsdWUoJ2R5bmFtaWNhbGx5X3JlcXVlc3RlZF9maXh0dXJlJykKKyAgICAg
ICAgZGVmIHRlc3RfZHluKGRlcGVuZGVudF9maXh0dXJlKToKKyAgICAgICAgICAgIHBhc3MKKyAg
ICAnJycpCisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLS1zZXR1cC1vbmx5Jywg
cCkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWworICAgICAgICAnKlNFVFVQICAgIEYgZHluYW1pY2FsbHlfcmVxdWVzdGVkX2Zp
eHR1cmUnLAorICAgICAgICAnKlRFQVJET1dOIEYgZHluYW1pY2FsbHlfcmVxdWVzdGVkX2ZpeHR1
cmUnCisgICAgXSkKKworCitkZWYgdGVzdF9jYXB0dXJpbmcodGVzdGRpcik6CisgICAgcCA9IHRl
c3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAgaW1wb3J0IHB5dGVzdCwgc3lzCisgICAgICAg
IEBweXRlc3QuZml4dHVyZSgpCisgICAgICAgIGRlZiBvbmUoKToKKyAgICAgICAgICAgIHN5cy5z
dGRvdXQud3JpdGUoJ3RoaXMgc2hvdWxkIGJlIGNhcHR1cmVkJykKKyAgICAgICAgICAgIHN5cy5z
dGRlcnIud3JpdGUoJ3RoaXMgc2hvdWxkIGFsc28gYmUgY2FwdHVyZWQnKQorICAgICAgICBAcHl0
ZXN0LmZpeHR1cmUoKQorICAgICAgICBkZWYgdHdvKG9uZSk6CisgICAgICAgICAgICBhc3NlcnQg
MAorICAgICAgICBkZWYgdGVzdF9jYXB0dXJpbmcodHdvKToKKyAgICAgICAgICAgIHBhc3MKKyAg
ICAnJycpCisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLS1zZXR1cC1vbmx5Jywg
cCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAndGhpcyBzaG91
bGQgYmUgY2FwdHVyZWQnLAorICAgICAgICAndGhpcyBzaG91bGQgYWxzbyBiZSBjYXB0dXJlZCcK
KyAgICBdKQorCisKK2RlZiB0ZXN0X3Nob3dfZml4dHVyZXNfYW5kX2V4ZWN1dGVfdGVzdCh0ZXN0
ZGlyKToKKyAgICAiIiIgVmVyaWZpZXMgdGhhdCBzZXR1cHMgYXJlIHNob3duIGFuZCB0ZXN0cyBh
cmUgZXhlY3V0ZWQuICIiIgorICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoJycnCisgICAgICAg
IGltcG9ydCBweXRlc3QKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgIGRlZiBhcmco
KToKKyAgICAgICAgICAgIGFzc2VydCBUcnVlCisgICAgICAgIGRlZiB0ZXN0X2FyZyhhcmcpOgor
ICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCisgICAgJycnKQorCisgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoIi0tc2V0dXAtc2hvdyIsIHApCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0g
MQorCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgJypTRVRVUCAg
ICBGIGFyZyonLAorICAgICAgICAnKnRlc3RfYXJnIChmaXh0dXJlcyB1c2VkOiBhcmcpRionLAor
ICAgICAgICAnKlRFQVJET1dOIEYgYXJnKicsCisgICAgXSkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvcHl0aG9uL3NldHVwX3BsYW4ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5
dGhvbi9zZXR1cF9wbGFuLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhjOTgyMjQ2OTJhOGI5MGYzN2VkYjMxOGNh
ZjhiMDI0Y2NjZThiODYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5
dGhvbi9zZXR1cF9wbGFuLnB5CkBAIC0wLDAgKzEsMTkgQEAKK2RlZiB0ZXN0X3Nob3dfZml4dHVy
ZXNfYW5kX3Rlc3QodGVzdGRpcik6CisgICAgIiIiIFZlcmlmaWVzIHRoYXQgZml4dHVyZXMgYXJl
IG5vdCBleGVjdXRlZC4gIiIiCisgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAg
ICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgZGVmIGFy
ZygpOgorICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCisgICAgICAgIGRlZiB0ZXN0X2FyZyhhcmcp
OgorICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCisgICAgJycnKQorCisgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoIi0tc2V0dXAtcGxhbiIsIHApCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQg
PT0gMAorCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgJypTRVRV
UCAgICBGIGFyZyonLAorICAgICAgICAnKnRlc3RfYXJnIChmaXh0dXJlcyB1c2VkOiBhcmcpJywK
KyAgICAgICAgJypURUFSRE9XTiBGIGFyZyonLAorICAgIF0pCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL3B5dGhvbi9zaG93X2ZpeHR1cmVzX3Blcl90ZXN0LnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy9weXRob24vc2hvd19maXh0dXJlc19wZXJfdGVzdC5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
NDFmMzM5NDZhMGVlM2NkYmI1MTMxM2E1MDVhMTllYmEwMDY3NjFmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vc2hvd19maXh0dXJlc19wZXJfdGVzdC5weQpA
QCAtMCwwICsxLDE1OCBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KKworCitkZWYgdGVzdF9u
b19pdGVtc19zaG91bGRfbm90X3Nob3dfb3V0cHV0KHRlc3RkaXIpOgorICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KCctLWZpeHR1cmVzLXBlci10ZXN0JykKKyAgICBhc3NlcnQgJ2ZpeHR1
cmVzIHVzZWQgYnknIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgYXNzZXJ0IHJlc3Vs
dC5yZXQgPT0gMAorCisKK2RlZiB0ZXN0X2ZpeHR1cmVzX2luX21vZHVsZSh0ZXN0ZGlyKToKKyAg
ICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCcnJworICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAg
ICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICBkZWYgX2FyZzAoKToKKyAgICAgICAgICAgICIi
ImhpZGRlbiBhcmcwIGZpeHR1cmUiIiIKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAg
IGRlZiBhcmcxKCk6CisgICAgICAgICAgICAiIiJhcmcxIGRvY3N0cmluZyIiIgorICAgICAgICBk
ZWYgdGVzdF9hcmcxKGFyZzEpOgorICAgICAgICAgICAgcGFzcworICAgICcnJykKKworICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWZpeHR1cmVzLXBlci10ZXN0IiwgcCkKKyAgICBh
c3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WworICAgICAgICAnKmZpeHR1cmVzIHVzZWQgYnkgdGVzdF9hcmcxKicsCisgICAgICAgICcqKHRl
c3RfZml4dHVyZXNfaW5fbW9kdWxlLnB5OjkpKicsCisgICAgICAgICdhcmcxJywKKyAgICAgICAg
JyAgICBhcmcxIGRvY3N0cmluZycsCisgICAgXSkKKyAgICBhc3NlcnQgIl9hcmcwIiBub3QgaW4g
cmVzdWx0LnN0ZG91dC5zdHIoKQorCisKK2RlZiB0ZXN0X2ZpeHR1cmVzX2luX2NvbmZ0ZXN0KHRl
c3RkaXIpOgorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCcnJworICAgICAgICBpbXBvcnQgcHl0
ZXN0CisgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICBkZWYgYXJnMSgpOgorICAgICAg
ICAgICAgIiIiYXJnMSBkb2NzdHJpbmciIiIKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAg
ICAgIGRlZiBhcmcyKCk6CisgICAgICAgICAgICAiIiJhcmcyIGRvY3N0cmluZyIiIgorICAgICAg
ICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgZGVmIGFyZzMoYXJnMSwgYXJnMik6CisgICAgICAg
ICAgICAiIiJhcmczCisgICAgICAgICAgICBkb2NzdHJpbmcKKyAgICAgICAgICAgICIiIgorICAg
ICcnJykKKyAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCcnJworICAgICAgICBkZWYgdGVzdF9h
cmcyKGFyZzIpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBkZWYgdGVzdF9hcmczKGFyZzMp
OgorICAgICAgICAgICAgcGFzcworICAgICcnJykKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgiLS1maXh0dXJlcy1wZXItdGVzdCIsIHApCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0g
MAorCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgJypmaXh0dXJl
cyB1c2VkIGJ5IHRlc3RfYXJnMionLAorICAgICAgICAnKih0ZXN0X2ZpeHR1cmVzX2luX2NvbmZ0
ZXN0LnB5OjIpKicsCisgICAgICAgICdhcmcyJywKKyAgICAgICAgJyAgICBhcmcyIGRvY3N0cmlu
ZycsCisgICAgICAgICcqZml4dHVyZXMgdXNlZCBieSB0ZXN0X2FyZzMqJywKKyAgICAgICAgJyoo
dGVzdF9maXh0dXJlc19pbl9jb25mdGVzdC5weTo0KSonLAorICAgICAgICAnYXJnMScsCisgICAg
ICAgICcgICAgYXJnMSBkb2NzdHJpbmcnLAorICAgICAgICAnYXJnMicsCisgICAgICAgICcgICAg
YXJnMiBkb2NzdHJpbmcnLAorICAgICAgICAnYXJnMycsCisgICAgICAgICcgICAgYXJnMycsCisg
ICAgICAgICcgICAgZG9jc3RyaW5nJywKKyAgICBdKQorCisKK2RlZiB0ZXN0X3Nob3VsZF9zaG93
X2ZpeHR1cmVzX3VzZWRfYnlfdGVzdCh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVz
dCgnJycKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAg
ICAgICAgZGVmIGFyZzEoKToKKyAgICAgICAgICAgICIiImFyZzEgZnJvbSBjb25mdGVzdCIiIgor
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgZGVmIGFyZzIoKToKKyAgICAgICAgICAg
ICIiImFyZzIgZnJvbSBjb25mdGVzdCIiIgorICAgICcnJykKKyAgICBwID0gdGVzdGRpci5tYWtl
cHlmaWxlKCcnJworICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIEBweXRlc3QuZml4dHVy
ZQorICAgICAgICBkZWYgYXJnMSgpOgorICAgICAgICAgICAgIiIiYXJnMSBmcm9tIHRlc3Rtb2R1
bGUiIiIKKyAgICAgICAgZGVmIHRlc3RfYXJncyhhcmcxLCBhcmcyKToKKyAgICAgICAgICAgIHBh
c3MKKyAgICAnJycpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tZml4dHVyZXMt
cGVyLXRlc3QiLCBwKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKworICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICcqZml4dHVyZXMgdXNlZCBieSB0ZXN0X2Fy
Z3MqJywKKyAgICAgICAgJyoodGVzdF9zaG91bGRfc2hvd19maXh0dXJlc191c2VkX2J5X3Rlc3Qu
cHk6NikqJywKKyAgICAgICAgJ2FyZzEnLAorICAgICAgICAnICAgIGFyZzEgZnJvbSB0ZXN0bW9k
dWxlJywKKyAgICAgICAgJ2FyZzInLAorICAgICAgICAnICAgIGFyZzIgZnJvbSBjb25mdGVzdCcs
CisgICAgXSkKKworCitkZWYgdGVzdF92ZXJib3NlX2luY2x1ZGVfcHJpdmF0ZV9maXh0dXJlc19h
bmRfbG9jKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCcnJworICAgICAgICBp
bXBvcnQgcHl0ZXN0CisgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICBkZWYgX2FyZzEo
KToKKyAgICAgICAgICAgICIiIl9hcmcxIGZyb20gY29uZnRlc3QiIiIKKyAgICAgICAgQHB5dGVz
dC5maXh0dXJlCisgICAgICAgIGRlZiBhcmcyKF9hcmcxKToKKyAgICAgICAgICAgICIiImFyZzIg
ZnJvbSBjb25mdGVzdCIiIgorICAgICcnJykKKyAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCcn
JworICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAg
ICBkZWYgYXJnMygpOgorICAgICAgICAgICAgIiIiYXJnMyBmcm9tIHRlc3Rtb2R1bGUiIiIKKyAg
ICAgICAgZGVmIHRlc3RfYXJncyhhcmcyLCBhcmczKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAn
JycpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tZml4dHVyZXMtcGVyLXRlc3Qi
LCAiLXYiLCBwKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKworICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICcqZml4dHVyZXMgdXNlZCBieSB0ZXN0X2FyZ3Mq
JywKKyAgICAgICAgJyoodGVzdF92ZXJib3NlX2luY2x1ZGVfcHJpdmF0ZV9maXh0dXJlc19hbmRf
bG9jLnB5OjYpKicsCisgICAgICAgICdfYXJnMSAtLSBjb25mdGVzdC5weTozJywKKyAgICAgICAg
JyAgICBfYXJnMSBmcm9tIGNvbmZ0ZXN0JywKKyAgICAgICAgJ2FyZzIgLS0gY29uZnRlc3QucHk6
NicsCisgICAgICAgICcgICAgYXJnMiBmcm9tIGNvbmZ0ZXN0JywKKyAgICAgICAgJ2FyZzMgLS0g
dGVzdF92ZXJib3NlX2luY2x1ZGVfcHJpdmF0ZV9maXh0dXJlc19hbmRfbG9jLnB5OjMnLAorICAg
ICAgICAnICAgIGFyZzMgZnJvbSB0ZXN0bW9kdWxlJywKKyAgICBdKQorCisKK2RlZiB0ZXN0X2Rv
Y3Rlc3RfaXRlbXModGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCcnJworICAgICAg
ICBkZWYgZm9vKCk6CisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgID4+PiAxICsgMQorICAg
ICAgICAgICAgMgorICAgICAgICAgICAgIiIiCisgICAgJycnKQorICAgIHRlc3RkaXIubWFrZXR4
dGZpbGUoJycnCisgICAgICAgID4+PiAxICsgMQorICAgICAgICAyCisgICAgJycnKQorICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWZpeHR1cmVzLXBlci10ZXN0IiwgIi0tZG9jdGVz
dC1tb2R1bGVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1kb2N0ZXN0LWds
b2I9Ki50eHQiLCAiLXYiKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKworICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICcqY29sbGVjdGVkIDIgaXRlbXMqJywK
KyAgICBdKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vdGVzdF9kZXBy
ZWNhdGlvbnMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi90ZXN0X2RlcHJlY2F0aW9u
cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41MDAxZjc2NWY2YzU4OGJiY2Q4OGQ5ODEyZDg1YjA2MmRiZTU2YmQ1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vdGVzdF9kZXBy
ZWNhdGlvbnMucHkKQEAgLTAsMCArMSwyMiBAQAoraW1wb3J0IHB5dGVzdAorCitmcm9tIF9weXRl
c3QucHl0aG9uIGltcG9ydCBQeUNvbGxlY3RvcgorCisKK2NsYXNzIFB5Q29sbGVjdG9yTW9jayhQ
eUNvbGxlY3Rvcik6CisgICAgIiIiZXZpbCBoYWNrIiIiCisKKyAgICBkZWYgX19pbml0X18oc2Vs
Zik6CisgICAgICAgIHNlbGYuY2FsbGVkID0gRmFsc2UKKworICAgIGRlZiBfbWFrZWl0ZW0oc2Vs
ZiwgKmspOgorICAgICAgICAiIiJoYWNrIHRvIGRpc2FibGUgdGhlIGFjdHVhbCBiZWhhdmlvdXIi
IiIKKyAgICAgICAgc2VsZi5jYWxsZWQgPSBUcnVlCisKKworZGVmIHRlc3RfcHljb2xsZWN0b3Jf
bWFrZWl0ZW1faXNfZGVwcmVjYXRlZCgpOgorCisgICAgY29sbGVjdG9yID0gUHlDb2xsZWN0b3JN
b2NrKCkKKyAgICB3aXRoIHB5dGVzdC5kZXByZWNhdGVkX2NhbGwoKToKKyAgICAgICAgY29sbGVj
dG9yLm1ha2VpdGVtKCdmb28nLCAnYmFyJykKKyAgICBhc3NlcnQgY29sbGVjdG9yLmNhbGxlZApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZjNk
ZDI0MDAxMmU1MGM3NDMzM2E4MzBlYWYxMjhjOGEyNDE3MjBlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyNiBA
QAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlo
dHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitE
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qg
b2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vYXBwcm94LnB5CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy9weXRob24vY29sbGVjdC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0
aG9uL2ZpeHR1cmUucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9pbnRlZ3JhdGlvbi5w
eQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL21ldGFmdW5jLnB5CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy9weXRob24vcmFpc2VzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vc2V0
dXBfb25seS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL3NldHVwX3BsYW4ucHkKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9zaG93X2ZpeHR1cmVzX3Blcl90ZXN0LnB5CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy9weXRob24vdGVzdF9kZXByZWNhdGlvbnMucHkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9hcmdjb21wbGV0ZS5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvdGVzdF9hcmdjb21wbGV0ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOTI2MTI1Nzc0M2YyYjhmNDE4
OTg2YWUyNDFmY2YyZjllNzlhMGE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy90ZXN0X2FyZ2NvbXBsZXRlLnB5CkBAIC0wLDAgKzEsOTcgQEAKK2Zyb20gX19mdXR1cmVf
XyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2ltcG9y
dCBweQoraW1wb3J0IHB5dGVzdAorCisjIHRlc3QgZm9yIF9hcmdjb21wbGV0ZSBidXQgbm90IHNw
ZWNpZmljIGZvciBhbnkgYXBwbGljYXRpb24KKworCitkZWYgZXF1YWxfd2l0aF9iYXNoKHByZWZp
eCwgZmZjLCBmYywgb3V0PU5vbmUpOgorICAgIHJlcyA9IGZmYyhwcmVmaXgpCisgICAgcmVzX2Jh
c2ggPSBzZXQoZmMocHJlZml4KSkKKyAgICByZXR2YWwgPSBzZXQocmVzKSA9PSByZXNfYmFzaAor
ICAgIGlmIG91dDoKKyAgICAgICAgb3V0LndyaXRlKCdlcXVhbF93aXRoX2Jhc2ggJXMgJXNcbicg
JSAocmV0dmFsLCByZXMpKQorICAgICAgICBpZiBub3QgcmV0dmFsOgorICAgICAgICAgICAgb3V0
LndyaXRlKCcgcHl0aG9uIC0gYmFzaDogJXNcbicgJSAoc2V0KHJlcykgLSByZXNfYmFzaCkpCisg
ICAgICAgICAgICBvdXQud3JpdGUoJyBiYXNoIC0gcHl0aG9uOiAlc1xuJyAlIChyZXNfYmFzaCAt
IHNldChyZXMpKSkKKyAgICByZXR1cm4gcmV0dmFsCisKKyMgY29waWVkIGZyb20gYXJnY29tcGxl
dGUuY29tcGxldGVycyBhcyBpbXBvcnQgZnJvbSB0aGVyZQorIyBhbHNvIHB1bGxzIGluIGFyZ2Nv
bXBsZXRlLl9faW5pdF9fIHdoaWNoIG9wZW5zIGZpbGVkZXNjcmlwdG9yIDkKKyMgdGhpcyBnaXZl
cyBhbiBJT0Vycm9yIGF0IHRoZSBlbmQgb2YgdGVzdHJ1bgorCisKK2RlZiBfd3JhcGNhbGwoKmFy
Z3MsICoqa2FyZ3MpOgorICAgIHRyeToKKyAgICAgICAgaWYgcHkuc3RkLnN5cy52ZXJzaW9uX2lu
Zm8gPiAoMiwgNyk6CisgICAgICAgICAgICByZXR1cm4gcHkuc3RkLnN1YnByb2Nlc3MuY2hlY2tf
b3V0cHV0KCphcmdzLCAqKmthcmdzKS5kZWNvZGUoKS5zcGxpdGxpbmVzKCkKKyAgICAgICAgaWYg
J3N0ZG91dCcgaW4ga2FyZ3M6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdzdGRvdXQg
YXJndW1lbnQgbm90IGFsbG93ZWQsIGl0IHdpbGwgYmUgb3ZlcnJpZGRlbi4nKQorICAgICAgICBw
cm9jZXNzID0gcHkuc3RkLnN1YnByb2Nlc3MuUG9wZW4oCisgICAgICAgICAgICBzdGRvdXQ9cHku
c3RkLnN1YnByb2Nlc3MuUElQRSwgKmFyZ3MsICoqa2FyZ3MpCisgICAgICAgIG91dHB1dCwgdW51
c2VkX2VyciA9IHByb2Nlc3MuY29tbXVuaWNhdGUoKQorICAgICAgICByZXRjb2RlID0gcHJvY2Vz
cy5wb2xsKCkKKyAgICAgICAgaWYgcmV0Y29kZToKKyAgICAgICAgICAgIGNtZCA9IGthcmdzLmdl
dCgiYXJncyIpCisgICAgICAgICAgICBpZiBjbWQgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBj
bWQgPSBhcmdzWzBdCisgICAgICAgICAgICByYWlzZSBweS5zdGQuc3VicHJvY2Vzcy5DYWxsZWRQ
cm9jZXNzRXJyb3IocmV0Y29kZSwgY21kKQorICAgICAgICByZXR1cm4gb3V0cHV0LmRlY29kZSgp
LnNwbGl0bGluZXMoKQorICAgIGV4Y2VwdCBweS5zdGQuc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNz
RXJyb3I6CisgICAgICAgIHJldHVybiBbXQorCisKK2NsYXNzIEZpbGVzQ29tcGxldGVyKG9iamVj
dCk6CisgICAgJ0ZpbGUgY29tcGxldGVyIGNsYXNzLCBvcHRpb25hbGx5IHRha2VzIGEgbGlzdCBv
ZiBhbGxvd2VkIGV4dGVuc2lvbnMnCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYWxsb3dlZG5h
bWVzPSgpLCBkaXJlY3Rvcmllcz1UcnVlKToKKyAgICAgICAgIyBGaXggaWYgc29tZW9uZSBwYXNz
ZXMgaW4gYSBzdHJpbmcgaW5zdGVhZCBvZiBhIGxpc3QKKyAgICAgICAgaWYgdHlwZShhbGxvd2Vk
bmFtZXMpIGlzIHN0cjoKKyAgICAgICAgICAgIGFsbG93ZWRuYW1lcyA9IFthbGxvd2VkbmFtZXNd
CisKKyAgICAgICAgc2VsZi5hbGxvd2VkbmFtZXMgPSBbeC5sc3RyaXAoJyonKS5sc3RyaXAoJy4n
KSBmb3IgeCBpbiBhbGxvd2VkbmFtZXNdCisgICAgICAgIHNlbGYuZGlyZWN0b3JpZXMgPSBkaXJl
Y3RvcmllcworCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIHByZWZpeCwgKiprd2FyZ3MpOgorICAg
ICAgICBjb21wbGV0aW9uID0gW10KKyAgICAgICAgaWYgc2VsZi5hbGxvd2VkbmFtZXM6CisgICAg
ICAgICAgICBpZiBzZWxmLmRpcmVjdG9yaWVzOgorICAgICAgICAgICAgICAgIGZpbGVzID0gX3dy
YXBjYWxsKFsnYmFzaCcsICctYycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJjb21wZ2VuIC1BIGRpcmVjdG9yeSAtLSAne3B9JyIuZm9ybWF0KHA9cHJlZml4KV0pCisgICAg
ICAgICAgICAgICAgY29tcGxldGlvbiArPSBbZiArICcvJyBmb3IgZiBpbiBmaWxlc10KKyAgICAg
ICAgICAgIGZvciB4IGluIHNlbGYuYWxsb3dlZG5hbWVzOgorICAgICAgICAgICAgICAgIGNvbXBs
ZXRpb24gKz0gX3dyYXBjYWxsKFsnYmFzaCcsICctYycsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJjb21wZ2VuIC1BIGZpbGUgLVggJyEqLnswfScgLS0gJ3twfSci
LmZvcm1hdCh4LCBwPXByZWZpeCldKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY29tcGxl
dGlvbiArPSBfd3JhcGNhbGwoWydiYXNoJywgJy1jJywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiY29tcGdlbiAtQSBmaWxlIC0tICd7cH0nIi5mb3JtYXQocD1wcmVmaXgp
XSkKKworICAgICAgICAgICAgYW50aWNvbXAgPSBfd3JhcGNhbGwoWydiYXNoJywgJy1jJywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29tcGdlbiAtQSBkaXJlY3RvcnkgLS0g
J3twfSciLmZvcm1hdChwPXByZWZpeCldKQorCisgICAgICAgICAgICBjb21wbGV0aW9uID0gbGlz
dChzZXQoY29tcGxldGlvbikgLSBzZXQoYW50aWNvbXApKQorCisgICAgICAgICAgICBpZiBzZWxm
LmRpcmVjdG9yaWVzOgorICAgICAgICAgICAgICAgIGNvbXBsZXRpb24gKz0gW2YgKyAnLycgZm9y
IGYgaW4gYW50aWNvbXBdCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uCisKKworY2xhc3MgVGVz
dEFyZ0NvbXBsZXRlKG9iamVjdCk6CisgICAgQHB5dGVzdC5tYXJrLnNraXBpZigic3lzLnBsYXRm
b3JtIGluICgnd2luMzInLCAnZGFyd2luJykiKQorICAgIGRlZiB0ZXN0X2NvbXBhcmVfd2l0aF9j
b21wZ2VuKHNlbGYpOgorICAgICAgICBmcm9tIF9weXRlc3QuX2FyZ2NvbXBsZXRlIGltcG9ydCBG
YXN0RmlsZXNDb21wbGV0ZXIKKyAgICAgICAgZmZjID0gRmFzdEZpbGVzQ29tcGxldGVyKCkKKyAg
ICAgICAgZmMgPSBGaWxlc0NvbXBsZXRlcigpCisgICAgICAgIGZvciB4IGluIFsnLycsICcvZCcs
ICcvZGF0YScsICdxcXEnLCAnJ106CisgICAgICAgICAgICBhc3NlcnQgZXF1YWxfd2l0aF9iYXNo
KHgsIGZmYywgZmMsIG91dD1weS5zdGQuc3lzLnN0ZG91dCkKKworICAgIEBweXRlc3QubWFyay5z
a2lwaWYoInN5cy5wbGF0Zm9ybSBpbiAoJ3dpbjMyJywgJ2RhcndpbicpIikKKyAgICBkZWYgdGVz
dF9yZW1vdmVfZGlyX3ByZWZpeChzZWxmKToKKyAgICAgICAgIiIidGhpcyBpcyBub3QgY29tcGF0
aWJsZSB3aXRoIGNvbXBnZW4gYnV0IGl0IGlzIHdpdGggYmFzaCBpdHNlbGY6CisgICAgICAgIGxz
IC91c3IvPFRBQj4KKyAgICAgICAgIiIiCisgICAgICAgIGZyb20gX3B5dGVzdC5fYXJnY29tcGxl
dGUgaW1wb3J0IEZhc3RGaWxlc0NvbXBsZXRlcgorICAgICAgICBmZmMgPSBGYXN0RmlsZXNDb21w
bGV0ZXIoKQorICAgICAgICBmYyA9IEZpbGVzQ29tcGxldGVyKCkKKyAgICAgICAgZm9yIHggaW4g
Jy91c3IvJy5zcGxpdCgpOgorICAgICAgICAgICAgYXNzZXJ0IG5vdCBlcXVhbF93aXRoX2Jhc2go
eCwgZmZjLCBmYywgb3V0PXB5LnN0ZC5zeXMuc3Rkb3V0KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy90ZXN0X2Fzc2VydGlvbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9h
c3NlcnRpb24ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzI4ZmU3ZmE5MThlNGQ3MTM3ZmRmYzU1OGNlODFhYzNh
MTY2NWI3YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9hc3Nl
cnRpb24ucHkKQEAgLTAsMCArMSwxMDY2IEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZnJv
bSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5j
dGlvbgoraW1wb3J0IHN5cworaW1wb3J0IHRleHR3cmFwCisKK2ltcG9ydCBfcHl0ZXN0LmFzc2Vy
dGlvbiBhcyBwbHVnaW4KK2ltcG9ydCBweQoraW1wb3J0IHB5dGVzdAorZnJvbSBfcHl0ZXN0LmFz
c2VydGlvbiBpbXBvcnQgdXRpbAorZnJvbSBfcHl0ZXN0LmFzc2VydGlvbiBpbXBvcnQgdHJ1bmNh
dGUKKworUFkzID0gc3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCkKKworCitAcHl0ZXN0LmZpeHR1
cmUKK2RlZiBtb2NrX2NvbmZpZygpOgorCisgICAgY2xhc3MgQ29uZmlnKG9iamVjdCk6CisgICAg
ICAgIHZlcmJvc2UgPSBGYWxzZQorCisgICAgICAgIGRlZiBnZXRvcHRpb24oc2VsZiwgbmFtZSk6
CisgICAgICAgICAgICBpZiBuYW1lID09ICd2ZXJib3NlJzoKKyAgICAgICAgICAgICAgICByZXR1
cm4gc2VsZi52ZXJib3NlCisgICAgICAgICAgICByYWlzZSBLZXlFcnJvcignTm90IG1vY2tlZCBv
dXQ6ICVzJyAlIG5hbWUpCisKKyAgICByZXR1cm4gQ29uZmlnKCkKKworCitjbGFzcyBUZXN0SW1w
b3J0SG9va0luc3RhbGxhdGlvbihvYmplY3QpOgorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCdpbml0aWFsX2NvbmZ0ZXN0JywgW1RydWUsIEZhbHNlXSkKKyAgICBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoJ21vZGUnLCBbJ3BsYWluJywgJ3Jld3JpdGUnXSkKKyAgICBkZWYgdGVzdF9j
b25mdGVzdF9hc3NlcnRpb25fcmV3cml0ZShzZWxmLCB0ZXN0ZGlyLCBpbml0aWFsX2NvbmZ0ZXN0
LCBtb2RlKToKKyAgICAgICAgIiIiVGVzdCB0aGF0IGNvbmZ0ZXN0IGZpbGVzIGFyZSB1c2luZyBh
c3NlcnRpb24gcmV3cml0ZSBvbiBpbXBvcnQuCisgICAgICAgICgjMTYxOSkKKyAgICAgICAgIiIi
CisgICAgICAgIHRlc3RkaXIudG1wZGlyLmpvaW4oJ2Zvby90ZXN0cycpLmVuc3VyZShkaXI9MSkK
KyAgICAgICAgY29uZnRlc3RfcGF0aCA9ICdjb25mdGVzdC5weScgaWYgaW5pdGlhbF9jb25mdGVz
dCBlbHNlICdmb28vY29uZnRlc3QucHknCisgICAgICAgIGNvbnRlbnRzID0geworICAgICAgICAg
ICAgY29uZnRlc3RfcGF0aDogIiIiCisgICAgICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAg
ICAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgICAgIGRlZiBjaGVja19m
aXJzdCgpOgorICAgICAgICAgICAgICAgICAgICBkZWYgY2hlY2sodmFsdWVzLCB2YWx1ZSk6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQgdmFsdWVzLnBvcCgwKSA9PSB2YWx1ZQorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gY2hlY2sKKyAgICAgICAgICAgICIiIiwKKyAgICAgICAg
ICAgICdmb28vdGVzdHMvdGVzdF9mb28ucHknOiAiIiIKKyAgICAgICAgICAgICAgICBkZWYgdGVz
dChjaGVja19maXJzdCk6CisgICAgICAgICAgICAgICAgICAgIGNoZWNrX2ZpcnN0KFsxMCwgMzBd
LCAzMCkKKyAgICAgICAgICAgICIiIgorICAgICAgICB9CisgICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgqKmNvbnRlbnRzKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJw
cm9jZXNzKCctLWFzc2VydD0lcycgJSBtb2RlKQorICAgICAgICBpZiBtb2RlID09ICdwbGFpbic6
CisgICAgICAgICAgICBleHBlY3RlZCA9ICdFICAgICAgIEFzc2VydGlvbkVycm9yJworICAgICAg
ICBlbGlmIG1vZGUgPT0gJ3Jld3JpdGUnOgorICAgICAgICAgICAgZXhwZWN0ZWQgPSAnKmFzc2Vy
dCAxMCA9PSAzMConCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgMAorICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoW2V4cGVjdGVkXSkKKworICAgIGRlZiB0ZXN0
X3Jld3JpdGVfYXNzZXJ0aW9uc19weXRlc3Rlcl9wbHVnaW4oc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgICIiIgorICAgICAgICBBc3NlcnRpb25zIGluIHRoZSBweXRlc3RlciBwbHVnaW4gbXVzdCBh
bHNvIGJlbmVmaXQgZnJvbSBhc3NlcnRpb24KKyAgICAgICAgcmV3cml0aW5nICgjMTkyMCkuCisg
ICAgICAgICIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBw
eXRlc3RfcGx1Z2lucyA9IFsncHl0ZXN0ZXInXQorICAgICAgICAgICAgZGVmIHRlc3RfZHVtbXlf
ZmFpbHVyZSh0ZXN0ZGlyKTogICMgaG93IG1ldGEhCisgICAgICAgICAgICAgICAgdGVzdGRpci5t
YWtlcHlmaWxlKCdkZWYgdGVzdCgpOiBhc3NlcnQgMCcpCisgICAgICAgICAgICAgICAgciA9IHRl
c3RkaXIuaW5saW5lX3J1bigpCisgICAgICAgICAgICAgICAgci5hc3NlcnRvdXRjb21lKHBhc3Nl
ZD0xKQorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1
YnByb2Nlc3MoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAg
ICAgICAgJyphc3NlcnQgMSA9PSAwKicsCisgICAgICAgIF0pCisKKyAgICBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoJ21vZGUnLCBbJ3BsYWluJywgJ3Jld3JpdGUnXSkKKyAgICBkZWYgdGVzdF9w
eXRlc3RfcGx1Z2luc19yZXdyaXRlKHNlbGYsIHRlc3RkaXIsIG1vZGUpOgorICAgICAgICBjb250
ZW50cyA9IHsKKyAgICAgICAgICAgICdjb25mdGVzdC5weSc6ICIiIgorICAgICAgICAgICAgICAg
IHB5dGVzdF9wbHVnaW5zID0gWydoYW0nXQorICAgICAgICAgICAgIiIiLAorICAgICAgICAgICAg
J2hhbS5weSc6ICIiIgorICAgICAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAg
ICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgICAgICBkZWYgY2hlY2tfZmlyc3QoKToK
KyAgICAgICAgICAgICAgICAgICAgZGVmIGNoZWNrKHZhbHVlcywgdmFsdWUpOgorICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcy5wb3AoMCkgPT0gdmFsdWUKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGNoZWNrCisgICAgICAgICAgICAiIiIsCisgICAgICAgICAgICAndGVz
dF9mb28ucHknOiAiIiIKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9mb28oY2hlY2tfZmlyc3Qp
OgorICAgICAgICAgICAgICAgICAgICBjaGVja19maXJzdChbMTAsIDMwXSwgMzApCisgICAgICAg
ICAgICAiIiIsCisgICAgICAgIH0KKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCoqY29udGVu
dHMpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoJy0tYXNz
ZXJ0PSVzJyAlIG1vZGUpCisgICAgICAgIGlmIG1vZGUgPT0gJ3BsYWluJzoKKyAgICAgICAgICAg
IGV4cGVjdGVkID0gJ0UgICAgICAgQXNzZXJ0aW9uRXJyb3InCisgICAgICAgIGVsaWYgbW9kZSA9
PSAncmV3cml0ZSc6CisgICAgICAgICAgICBleHBlY3RlZCA9ICcqYXNzZXJ0IDEwID09IDMwKicK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbZXhwZWN0ZWRdKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCdtb2RlJywgWydzdHInLCAnbGlzdCddKQorICAgIGRlZiB0ZXN0X3B5dGVzdF9wbHVnaW5z
X3Jld3JpdGVfbW9kdWxlX25hbWVzKHNlbGYsIHRlc3RkaXIsIG1vZGUpOgorICAgICAgICAiIiJU
ZXN0IHRoYXQgcGx1Z2lubWFuYWdlciBjb3JyZWN0IG1hcmtzIHB5dGVzdF9wbHVnaW5zIHZhcmlh
YmxlcworICAgICAgICBmb3IgYXNzZXJ0aW9uIHJld3JpdGluZyBpZiB0aGV5IGFyZSBkZWZpbmVk
IGFzIHBsYWluIHN0cmluZ3Mgb3IKKyAgICAgICAgbGlzdCBvZiBzdHJpbmdzICgjMTg4OCkuCisg
ICAgICAgICIiIgorICAgICAgICBwbHVnaW5zID0gJyJoYW0iJyBpZiBtb2RlID09ICdzdHInIGVs
c2UgJ1siaGFtIl0nCisgICAgICAgIGNvbnRlbnRzID0geworICAgICAgICAgICAgJ2NvbmZ0ZXN0
LnB5JzogIiIiCisgICAgICAgICAgICAgICAgcHl0ZXN0X3BsdWdpbnMgPSB7cGx1Z2luc30KKyAg
ICAgICAgICAgICIiIi5mb3JtYXQocGx1Z2lucz1wbHVnaW5zKSwKKyAgICAgICAgICAgICdoYW0u
cHknOiAiIiIKKyAgICAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICAiIiIs
CisgICAgICAgICAgICAndGVzdF9mb28ucHknOiAiIiIKKyAgICAgICAgICAgICAgICBkZWYgdGVz
dF9mb28ocHl0ZXN0Y29uZmlnKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0ICdoYW0nIGlu
IHB5dGVzdGNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJld3JpdGVfaG9vay5fbXVzdF9yZXdyaXRlCisg
ICAgICAgICAgICAiIiIsCisgICAgICAgIH0KKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCoq
Y29udGVudHMpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3Mo
Jy0tYXNzZXJ0PXJld3JpdGUnKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKyAg
ICBkZWYgdGVzdF9weXRlc3RfcGx1Z2luc19yZXdyaXRlX21vZHVsZV9uYW1lc19jb3JyZWN0bHko
c2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIlRlc3QgdGhhdCB3ZSBtYXRjaCBmaWxlcyBjb3Jy
ZWN0bHkgd2hlbiB0aGV5IGFyZSBtYXJrZWQgZm9yIHJld3JpdGluZyAoIzI5MzkpLiIiIgorICAg
ICAgICBjb250ZW50cyA9IHsKKyAgICAgICAgICAgICdjb25mdGVzdC5weSc6ICIiIgorICAgICAg
ICAgICAgICAgIHB5dGVzdF9wbHVnaW5zID0gImhhbSIKKyAgICAgICAgICAgICIiIiwKKyAgICAg
ICAgICAgICdoYW0ucHknOiAiIiwKKyAgICAgICAgICAgICdoYW1zdGVyLnB5JzogIiIsCisgICAg
ICAgICAgICAndGVzdF9mb28ucHknOiAiIiIKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9mb28o
cHl0ZXN0Y29uZmlnKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHB5dGVzdGNvbmZpZy5w
bHVnaW5tYW5hZ2VyLnJld3JpdGVfaG9vay5maW5kX21vZHVsZSgnaGFtJykgaXMgbm90IE5vbmUK
KyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHB5dGVzdGNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJl
d3JpdGVfaG9vay5maW5kX21vZHVsZSgnaGFtc3RlcicpIGlzIE5vbmUKKyAgICAgICAgICAgICIi
IiwKKyAgICAgICAgfQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoKipjb250ZW50cykKKyAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcygnLS1hc3NlcnQ9cmV3
cml0ZScpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKworICAgIEBweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgnbW9kZScsIFsncGxhaW4nLCAncmV3cml0ZSddKQorICAgIEBweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgncGx1Z2luX3N0YXRlJywgWydkZXZlbG9wbWVudCcsICdpbnN0YWxs
ZWQnXSkKKyAgICBkZWYgdGVzdF9pbnN0YWxsZWRfcGx1Z2luX3Jld3JpdGUoc2VsZiwgdGVzdGRp
ciwgbW9kZSwgcGx1Z2luX3N0YXRlKToKKyAgICAgICAgIyBNYWtlIHN1cmUgdGhlIGhvb2sgaXMg
aW5zdGFsbGVkIGVhcmx5IGVub3VnaCBzbyB0aGF0IHBsdWdpbnMKKyAgICAgICAgIyBpbnN0YWxs
ZWQgdmlhIHNldHVwdG9vbHMgYXJlIHJld3JpdHRlbi4KKyAgICAgICAgdGVzdGRpci50bXBkaXIu
am9pbignaGFtcGtnJykuZW5zdXJlKGRpcj0xKQorICAgICAgICBjb250ZW50cyA9IHsKKyAgICAg
ICAgICAgICdoYW1wa2cvX19pbml0X18ucHknOiAiIiIKKyAgICAgICAgICAgICAgICBpbXBvcnQg
cHl0ZXN0CisKKyAgICAgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgICAg
ICBkZWYgY2hlY2tfZmlyc3QyKCk6CisgICAgICAgICAgICAgICAgICAgIGRlZiBjaGVjayh2YWx1
ZXMsIHZhbHVlKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMucG9wKDAp
ID09IHZhbHVlCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGVjaworICAgICAgICAgICAg
IiIiLAorICAgICAgICAgICAgJ3NwYW1wbHVnaW4ucHknOiAiIiIKKyAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKKyAgICAgICAgICAgIGZyb20gaGFtcGtnIGltcG9ydCBjaGVja19maXJzdDIKKwor
ICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgY2hlY2tfZmlyc3Qo
KToKKyAgICAgICAgICAgICAgICBkZWYgY2hlY2sodmFsdWVzLCB2YWx1ZSk6CisgICAgICAgICAg
ICAgICAgICAgIGFzc2VydCB2YWx1ZXMucG9wKDApID09IHZhbHVlCisgICAgICAgICAgICAgICAg
cmV0dXJuIGNoZWNrCisgICAgICAgICAgICAiIiIsCisgICAgICAgICAgICAnbWFpbndyYXBwZXIu
cHknOiAiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QsIHBrZ19yZXNvdXJjZXMKKworICAg
ICAgICAgICAgcGx1Z2luX3N0YXRlID0gIntwbHVnaW5fc3RhdGV9IgorCisgICAgICAgICAgICBj
bGFzcyBEdW1teURpc3RJbmZvKG9iamVjdCk6CisgICAgICAgICAgICAgICAgcHJvamVjdF9uYW1l
ID0gJ3NwYW0nCisgICAgICAgICAgICAgICAgdmVyc2lvbiA9ICcxLjAnCisKKyAgICAgICAgICAg
ICAgICBkZWYgX2dldF9tZXRhZGF0YShzZWxmLCBuYW1lKToKKyAgICAgICAgICAgICAgICAgICAg
IyAnUkVDT1JEJyBtZXRhLWRhdGEgb25seSBhdmFpbGFibGUgaW4gaW5zdGFsbGVkIHBsdWdpbnMK
KyAgICAgICAgICAgICAgICAgICAgaWYgbmFtZSA9PSAnUkVDT1JEJyBhbmQgcGx1Z2luX3N0YXRl
ID09ICJpbnN0YWxsZWQiOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFsnc3BhbXBs
dWdpbi5weSxzaGEyNTY9YWJjLDEyMycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdoYW1wa2cvX19pbml0X18ucHksc2hhMjU2PWFiYywxMjMnXQorICAgICAgICAgICAgICAgICAg
ICAjICdTT1VSQ0VTLnR4dCcgbWV0YS1kYXRhIG9ubHkgYXZhaWxhYmxlIGZvciBwbHVnaW5zIGlu
IGRldmVsb3BtZW50IG1vZGUKKyAgICAgICAgICAgICAgICAgICAgZWxpZiBuYW1lID09ICdTT1VS
Q0VTLnR4dCcgYW5kIHBsdWdpbl9zdGF0ZSA9PSAiZGV2ZWxvcG1lbnQiOgorICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIFsnc3BhbXBsdWdpbi5weScsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdoYW1wa2cvX19pbml0X18ucHknXQorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gW10KKworICAgICAgICAgICAgY2xhc3MgRHVtbXlFbnRyeVBvaW50KG9iamVjdCk6Cisg
ICAgICAgICAgICAgICAgbmFtZSA9ICdzcGFtJworICAgICAgICAgICAgICAgIG1vZHVsZV9uYW1l
ID0gJ3NwYW0ucHknCisgICAgICAgICAgICAgICAgYXR0cnMgPSAoKQorICAgICAgICAgICAgICAg
IGV4dHJhcyA9IE5vbmUKKyAgICAgICAgICAgICAgICBkaXN0ID0gRHVtbXlEaXN0SW5mbygpCisK
KyAgICAgICAgICAgICAgICBkZWYgbG9hZChzZWxmLCByZXF1aXJlPVRydWUsICphcmdzLCAqKmt3
YXJncyk6CisgICAgICAgICAgICAgICAgICAgIGltcG9ydCBzcGFtcGx1Z2luCisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBzcGFtcGx1Z2luCisKKyAgICAgICAgICAgIGRlZiBpdGVyX2VudHJ5
X3BvaW50cyhuYW1lKToKKyAgICAgICAgICAgICAgICB5aWVsZCBEdW1teUVudHJ5UG9pbnQoKQor
CisgICAgICAgICAgICBwa2dfcmVzb3VyY2VzLml0ZXJfZW50cnlfcG9pbnRzID0gaXRlcl9lbnRy
eV9wb2ludHMKKyAgICAgICAgICAgIHB5dGVzdC5tYWluKCkKKyAgICAgICAgICAgICIiIi5mb3Jt
YXQocGx1Z2luX3N0YXRlPXBsdWdpbl9zdGF0ZSksCisgICAgICAgICAgICAndGVzdF9mb28ucHkn
OiAiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0KGNoZWNrX2ZpcnN0KToKKyAgICAgICAgICAgICAg
ICBjaGVja19maXJzdChbMTAsIDMwXSwgMzApCisKKyAgICAgICAgICAgIGRlZiB0ZXN0MihjaGVj
a19maXJzdDIpOgorICAgICAgICAgICAgICAgIGNoZWNrX2ZpcnN0KFsxMCwgMzBdLCAzMCkKKyAg
ICAgICAgICAgICIiIiwKKyAgICAgICAgfQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoKipj
b250ZW50cykKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW4oc3lzLmV4ZWN1dGFibGUsICdt
YWlud3JhcHBlci5weScsICctcycsICctLWFzc2VydD0lcycgJSBtb2RlKQorICAgICAgICBpZiBt
b2RlID09ICdwbGFpbic6CisgICAgICAgICAgICBleHBlY3RlZCA9ICdFICAgICAgIEFzc2VydGlv
bkVycm9yJworICAgICAgICBlbGlmIG1vZGUgPT0gJ3Jld3JpdGUnOgorICAgICAgICAgICAgZXhw
ZWN0ZWQgPSAnKmFzc2VydCAxMCA9PSAzMConCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBh
c3NlcnQgMAorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoW2V4cGVjdGVkXSkK
KworICAgIGRlZiB0ZXN0X3Jld3JpdGVfYXN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0
ZGlyLnRtcGRpci5qb2luKCdwa2cnKS5lbnN1cmUoZGlyPTEpCisgICAgICAgIGNvbnRlbnRzID0g
eworICAgICAgICAgICAgJ3BrZy9fX2luaXRfXy5weSc6ICIiIgorICAgICAgICAgICAgICAgIGlt
cG9ydCBweXRlc3QKKyAgICAgICAgICAgICAgICBweXRlc3QucmVnaXN0ZXJfYXNzZXJ0X3Jld3Jp
dGUoJ3BrZy5oZWxwZXInKQorICAgICAgICAgICAgIiIiLAorICAgICAgICAgICAgJ3BrZy9oZWxw
ZXIucHknOiAiIiIKKyAgICAgICAgICAgICAgICBkZWYgdG9vbCgpOgorICAgICAgICAgICAgICAg
ICAgICBhLCBiID0gMiwgMworICAgICAgICAgICAgICAgICAgICBhc3NlcnQgYSA9PSBiCisgICAg
ICAgICAgICAiIiIsCisgICAgICAgICAgICAncGtnL3BsdWdpbi5weSc6ICIiIgorICAgICAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QsIHBrZy5oZWxwZXIKKyAgICAgICAgICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUKKyAgICAgICAgICAgICAgICBkZWYgdG9vbCgpOgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gcGtnLmhlbHBlci50b29sCisgICAgICAgICAgICAiIiIsCisgICAgICAgICAgICAn
cGtnL290aGVyLnB5JzogIiIiCisgICAgICAgICAgICAgICAgdmFsdWVzID0gWzMsIDJdCisgICAg
ICAgICAgICAgICAgZGVmIHRvb2woKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVl
cy5wb3AoKSA9PSAzCisgICAgICAgICAgICAiIiIsCisgICAgICAgICAgICAnY29uZnRlc3QucHkn
OiAiIiIKKyAgICAgICAgICAgICAgICBweXRlc3RfcGx1Z2lucyA9IFsncGtnLnBsdWdpbiddCisg
ICAgICAgICAgICAiIiIsCisgICAgICAgICAgICAndGVzdF9wa2cucHknOiAiIiIKKyAgICAgICAg
ICAgICAgICBpbXBvcnQgcGtnLm90aGVyCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfdG9vbCh0
b29sKToKKyAgICAgICAgICAgICAgICAgICAgdG9vbCgpCisgICAgICAgICAgICAgICAgZGVmIHRl
c3Rfb3RoZXIoKToKKyAgICAgICAgICAgICAgICAgICAgcGtnLm90aGVyLnRvb2woKQorICAgICAg
ICAgICAgIiIiLAorICAgICAgICB9CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgqKmNvbnRl
bnRzKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCctLWFz
c2VydD1yZXdyaXRlJykKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsnPiph
c3NlcnQgYSA9PSBiKicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Uq
YXNzZXJ0IDIgPT0gMyonLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc+
KmFzc2VydCB2YWx1ZXMucG9wKCkgPT0gMyonLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdFKkFzc2VydGlvbkVycm9yJ10pCisKKyAgICBkZWYgdGVzdF9yZWdpc3Rlcl9h
c3NlcnRfcmV3cml0ZV9jaGVja3NfdHlwZXMoc2VsZik6CisgICAgICAgIHdpdGggcHl0ZXN0LnJh
aXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgcHl0ZXN0LnJlZ2lzdGVyX2Fzc2VydF9yZXdy
aXRlKFsncHl0ZXN0X3Rlc3RzX2ludGVybmFsX25vbl9leGlzdGluZyddKQorICAgICAgICBweXRl
c3QucmVnaXN0ZXJfYXNzZXJ0X3Jld3JpdGUoJ3B5dGVzdF90ZXN0c19pbnRlcm5hbF9ub25fZXhp
c3RpbmcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3B5dGVzdF90
ZXN0c19pbnRlcm5hbF9ub25fZXhpc3RpbmcyJykKKworCitjbGFzcyBUZXN0QmluUmVwckludGVn
cmF0aW9uKG9iamVjdCk6CisKKyAgICBkZWYgdGVzdF9weXRlc3RfYXNzZXJ0cmVwcl9jb21wYXJl
X2NhbGxlZChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIi
CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorICAg
ICAgICAgICAgZGVmIHB5dGVzdF9hc3NlcnRyZXByX2NvbXBhcmUob3AsIGxlZnQsIHJpZ2h0KToK
KyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKChvcCwgbGVmdCwgcmlnaHQpKQorCisgICAg
ICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBsaXN0KHJlcXVlc3QpOgor
ICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZXMKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbygpOgorICAgICAg
ICAgICAgICAgIGFzc2VydCAwID09IDEKKyAgICAgICAgICAgIGRlZiB0ZXN0X2NoZWNrKGxpc3Qp
OgorICAgICAgICAgICAgICAgIGFzc2VydCBsaXN0ID09IFsoIj09IiwgMCwgMSldCisgICAgICAg
ICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12IikKKyAgICAgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqdGVzdF9oZWxsbypG
QUlMKiIsCisgICAgICAgICAgICAiKnRlc3RfY2hlY2sqUEFTUyoiLAorICAgICAgICBdKQorCisK
K2RlZiBjYWxsZXF1YWwobGVmdCwgcmlnaHQsIHZlcmJvc2U9RmFsc2UpOgorICAgIGNvbmZpZyA9
IG1vY2tfY29uZmlnKCkKKyAgICBjb25maWcudmVyYm9zZSA9IHZlcmJvc2UKKyAgICByZXR1cm4g
cGx1Z2luLnB5dGVzdF9hc3NlcnRyZXByX2NvbXBhcmUoY29uZmlnLCAnPT0nLCBsZWZ0LCByaWdo
dCkKKworCitjbGFzcyBUZXN0QXNzZXJ0X3JlcHJjb21wYXJlKG9iamVjdCk6CisgICAgZGVmIHRl
c3RfZGlmZmVyZW50X3R5cGVzKHNlbGYpOgorICAgICAgICBhc3NlcnQgY2FsbGVxdWFsKFswLCAx
XSwgJ2ZvbycpIGlzIE5vbmUKKworICAgIGRlZiB0ZXN0X3N1bW1hcnkoc2VsZik6CisgICAgICAg
IHN1bW1hcnkgPSBjYWxsZXF1YWwoWzAsIDFdLCBbMCwgMl0pWzBdCisgICAgICAgIGFzc2VydCBs
ZW4oc3VtbWFyeSkgPCA2NQorCisgICAgZGVmIHRlc3RfdGV4dF9kaWZmKHNlbGYpOgorICAgICAg
ICBkaWZmID0gY2FsbGVxdWFsKCdzcGFtJywgJ2VnZ3MnKVsxOl0KKyAgICAgICAgYXNzZXJ0ICct
IHNwYW0nIGluIGRpZmYKKyAgICAgICAgYXNzZXJ0ICcrIGVnZ3MnIGluIGRpZmYKKworICAgIGRl
ZiB0ZXN0X3RleHRfc2tpcHBpbmcoc2VsZik6CisgICAgICAgIGxpbmVzID0gY2FsbGVxdWFsKCdh
JyAqIDUwICsgJ3NwYW0nLCAnYScgKiA1MCArICdlZ2dzJykKKyAgICAgICAgYXNzZXJ0ICdTa2lw
cGluZycgaW4gbGluZXNbMV0KKyAgICAgICAgZm9yIGxpbmUgaW4gbGluZXM6CisgICAgICAgICAg
ICBhc3NlcnQgJ2EnICogNTAgbm90IGluIGxpbmUKKworICAgIGRlZiB0ZXN0X3RleHRfc2tpcHBp
bmdfdmVyYm9zZShzZWxmKToKKyAgICAgICAgbGluZXMgPSBjYWxsZXF1YWwoJ2EnICogNTAgKyAn
c3BhbScsICdhJyAqIDUwICsgJ2VnZ3MnLCB2ZXJib3NlPVRydWUpCisgICAgICAgIGFzc2VydCAn
LSAnICsgJ2EnICogNTAgKyAnc3BhbScgaW4gbGluZXMKKyAgICAgICAgYXNzZXJ0ICcrICcgKyAn
YScgKiA1MCArICdlZ2dzJyBpbiBsaW5lcworCisgICAgZGVmIHRlc3RfbXVsdGlsaW5lX3RleHRf
ZGlmZihzZWxmKToKKyAgICAgICAgbGVmdCA9ICdmb29cbnNwYW1cbmJhcicKKyAgICAgICAgcmln
aHQgPSAnZm9vXG5lZ2dzXG5iYXInCisgICAgICAgIGRpZmYgPSBjYWxsZXF1YWwobGVmdCwgcmln
aHQpCisgICAgICAgIGFzc2VydCAnLSBzcGFtJyBpbiBkaWZmCisgICAgICAgIGFzc2VydCAnKyBl
Z2dzJyBpbiBkaWZmCisKKyAgICBkZWYgdGVzdF9saXN0KHNlbGYpOgorICAgICAgICBleHBsID0g
Y2FsbGVxdWFsKFswLCAxXSwgWzAsIDJdKQorICAgICAgICBhc3NlcnQgbGVuKGV4cGwpID4gMQor
CisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICBbJ2xlZnQnLCAncmlnaHQn
LCAnZXhwZWN0ZWQnXSwgWworICAgICAgICAgICAgKFswLCAxXSwgWzAsIDJdLCAiIiIKKyAgICAg
ICAgICAgICAgICBGdWxsIGRpZmY6CisgICAgICAgICAgICAgICAgLSBbMCwgMV0KKyAgICAgICAg
ICAgICAgICA/ICAgICBeCisgICAgICAgICAgICAgICAgKyBbMCwgMl0KKyAgICAgICAgICAgICAg
ICA/ICAgICBeCisgICAgICAgICAgICAiIiIpLAorICAgICAgICAgICAgKHswOiAxfSwgezA6IDJ9
LCAiIiIKKyAgICAgICAgICAgICAgICBGdWxsIGRpZmY6CisgICAgICAgICAgICAgICAgLSB7MDog
MX0KKyAgICAgICAgICAgICAgICA/ICAgICBeCisgICAgICAgICAgICAgICAgKyB7MDogMn0KKyAg
ICAgICAgICAgICAgICA/ICAgICBeCisgICAgICAgICAgICAiIiIpLAorICAgICAgICAgICAgKHNl
dChbMCwgMV0pLCBzZXQoWzAsIDJdKSwgIiIiCisgICAgICAgICAgICAgICAgRnVsbCBkaWZmOgor
ICAgICAgICAgICAgICAgIC0gc2V0KFswLCAxXSkKKyAgICAgICAgICAgICAgICA/ICAgICAgICAg
XgorICAgICAgICAgICAgICAgICsgc2V0KFswLCAyXSkKKyAgICAgICAgICAgICAgICA/ICAgICAg
ICAgXgorICAgICAgICAgICAgIiIiIGlmIG5vdCBQWTMgZWxzZSAiIiIKKyAgICAgICAgICAgICAg
ICBGdWxsIGRpZmY6CisgICAgICAgICAgICAgICAgLSB7MCwgMX0KKyAgICAgICAgICAgICAgICA/
ICAgICBeCisgICAgICAgICAgICAgICAgKyB7MCwgMn0KKyAgICAgICAgICAgICAgICA/ICAgICBe
CisgICAgICAgICAgICAiIiIpCisgICAgICAgIF0KKyAgICApCisgICAgZGVmIHRlc3RfaXRlcmFi
bGVfZnVsbF9kaWZmKHNlbGYsIGxlZnQsIHJpZ2h0LCBleHBlY3RlZCk6CisgICAgICAgICIiIlRl
c3QgdGhlIGZ1bGwgZGlmZiBhc3NlcnRpb24gZmFpbHVyZSBleHBsYW5hdGlvbi4KKworICAgICAg
ICBXaGVuIHZlcmJvc2UgaXMgRmFsc2UsIHRoZW4ganVzdCBhIC12IG5vdGljZSB0byBnZXQgdGhl
IGRpZmYgaXMgcmVuZGVyZWQsCisgICAgICAgIHdoZW4gdmVyYm9zZSBpcyBUcnVlLCB0aGVuIG5k
aWZmIG9mIHRoZSBwcHJpbnQgaXMgcmV0dXJuZWQuCisgICAgICAgICIiIgorICAgICAgICBleHBs
ID0gY2FsbGVxdWFsKGxlZnQsIHJpZ2h0LCB2ZXJib3NlPUZhbHNlKQorICAgICAgICBhc3NlcnQg
ZXhwbFstMV0gPT0gJ1VzZSAtdiB0byBnZXQgdGhlIGZ1bGwgZGlmZicKKyAgICAgICAgZXhwbCA9
ICdcbicuam9pbihjYWxsZXF1YWwobGVmdCwgcmlnaHQsIHZlcmJvc2U9VHJ1ZSkpCisgICAgICAg
IGFzc2VydCBleHBsLmVuZHN3aXRoKHRleHR3cmFwLmRlZGVudChleHBlY3RlZCkuc3RyaXAoKSkK
KworICAgIGRlZiB0ZXN0X2xpc3RfZGlmZmVyZW50X2xlbmd0aHMoc2VsZik6CisgICAgICAgIGV4
cGwgPSBjYWxsZXF1YWwoWzAsIDFdLCBbMCwgMSwgMl0pCisgICAgICAgIGFzc2VydCBsZW4oZXhw
bCkgPiAxCisgICAgICAgIGV4cGwgPSBjYWxsZXF1YWwoWzAsIDEsIDJdLCBbMCwgMV0pCisgICAg
ICAgIGFzc2VydCBsZW4oZXhwbCkgPiAxCisKKyAgICBkZWYgdGVzdF9kaWN0KHNlbGYpOgorICAg
ICAgICBleHBsID0gY2FsbGVxdWFsKHsnYSc6IDB9LCB7J2EnOiAxfSkKKyAgICAgICAgYXNzZXJ0
IGxlbihleHBsKSA+IDEKKworICAgIGRlZiB0ZXN0X2RpY3Rfb21pdHRpbmcoc2VsZik6CisgICAg
ICAgIGxpbmVzID0gY2FsbGVxdWFsKHsnYSc6IDAsICdiJzogMX0sIHsnYSc6IDEsICdiJzogMX0p
CisgICAgICAgIGFzc2VydCBsaW5lc1sxXS5zdGFydHN3aXRoKCdPbWl0dGluZyAxIGlkZW50aWNh
bCBpdGVtJykKKyAgICAgICAgYXNzZXJ0ICdDb21tb24gaXRlbXMnIG5vdCBpbiBsaW5lcworICAg
ICAgICBmb3IgbGluZSBpbiBsaW5lc1sxOl06CisgICAgICAgICAgICBhc3NlcnQgJ2InIG5vdCBp
biBsaW5lCisKKyAgICBkZWYgdGVzdF9kaWN0X29taXR0aW5nX3dpdGhfdmVyYm9zaXR5XzEoc2Vs
Zik6CisgICAgICAgICIiIiBFbnN1cmUgZGlmZmVyaW5nIGl0ZW1zIGFyZSB2aXNpYmxlIGZvciB2
ZXJib3NpdHk9MSAoIzE1MTIpICIiIgorICAgICAgICBsaW5lcyA9IGNhbGxlcXVhbCh7J2EnOiAw
LCAnYic6IDF9LCB7J2EnOiAxLCAnYic6IDF9LCB2ZXJib3NlPTEpCisgICAgICAgIGFzc2VydCBs
aW5lc1sxXS5zdGFydHN3aXRoKCdPbWl0dGluZyAxIGlkZW50aWNhbCBpdGVtJykKKyAgICAgICAg
YXNzZXJ0IGxpbmVzWzJdLnN0YXJ0c3dpdGgoJ0RpZmZlcmluZyBpdGVtcycpCisgICAgICAgIGFz
c2VydCBsaW5lc1szXSA9PSAieydhJzogMH0gIT0geydhJzogMX0iCisgICAgICAgIGFzc2VydCAn
Q29tbW9uIGl0ZW1zJyBub3QgaW4gbGluZXMKKworICAgIGRlZiB0ZXN0X2RpY3Rfb21pdHRpbmdf
d2l0aF92ZXJib3NpdHlfMihzZWxmKToKKyAgICAgICAgbGluZXMgPSBjYWxsZXF1YWwoeydhJzog
MCwgJ2InOiAxfSwgeydhJzogMSwgJ2InOiAxfSwgdmVyYm9zZT0yKQorICAgICAgICBhc3NlcnQg
bGluZXNbMV0uc3RhcnRzd2l0aCgnQ29tbW9uIGl0ZW1zOicpCisgICAgICAgIGFzc2VydCAnT21p
dHRpbmcnIG5vdCBpbiBsaW5lc1sxXQorICAgICAgICBhc3NlcnQgbGluZXNbMl0gPT0gInsnYic6
IDF9IgorCisgICAgZGVmIHRlc3Rfc2V0KHNlbGYpOgorICAgICAgICBleHBsID0gY2FsbGVxdWFs
KHNldChbMCwgMV0pLCBzZXQoWzAsIDJdKSkKKyAgICAgICAgYXNzZXJ0IGxlbihleHBsKSA+IDEK
KworICAgIGRlZiB0ZXN0X2Zyb3plbnpldChzZWxmKToKKyAgICAgICAgZXhwbCA9IGNhbGxlcXVh
bChmcm96ZW5zZXQoWzAsIDFdKSwgc2V0KFswLCAyXSkpCisgICAgICAgIGFzc2VydCBsZW4oZXhw
bCkgPiAxCisKKyAgICBkZWYgdGVzdF9TZXF1ZW5jZShzZWxmKToKKyAgICAgICAgY29sID0gcHku
YnVpbHRpbi5fdHJ5aW1wb3J0KAorICAgICAgICAgICAgImNvbGxlY3Rpb25zLmFiYyIsCisgICAg
ICAgICAgICAiY29sbGVjdGlvbnMiLAorICAgICAgICAgICAgInN5cyIpCisgICAgICAgIGlmIG5v
dCBoYXNhdHRyKGNvbCwgIk11dGFibGVTZXF1ZW5jZSIpOgorICAgICAgICAgICAgcHl0ZXN0LnNr
aXAoImNhbm5vdCBpbXBvcnQgTXV0YWJsZVNlcXVlbmNlIikKKyAgICAgICAgTXV0YWJsZVNlcXVl
bmNlID0gY29sLk11dGFibGVTZXF1ZW5jZQorCisgICAgICAgIGNsYXNzIFRlc3RTZXF1ZW5jZShN
dXRhYmxlU2VxdWVuY2UpOiAgIyB3b3JrcyB3aXRoIGEgU2VxdWVuY2Ugc3ViY2xhc3MKKyAgICAg
ICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBpdGVyYWJsZSk6CisgICAgICAgICAgICAgICAgc2Vs
Zi5lbGVtZW50cyA9IGxpc3QoaXRlcmFibGUpCisKKyAgICAgICAgICAgIGRlZiBfX2dldGl0ZW1f
XyhzZWxmLCBpdGVtKToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5lbGVtZW50c1tpdGVt
XQorCisgICAgICAgICAgICBkZWYgX19sZW5fXyhzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1
cm4gbGVuKHNlbGYuZWxlbWVudHMpCisKKyAgICAgICAgICAgIGRlZiBfX3NldGl0ZW1fXyhzZWxm
LCBpdGVtLCB2YWx1ZSk6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgICAgICBkZWYg
X19kZWxpdGVtX18oc2VsZiwgaXRlbSk6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAg
ICAgICBkZWYgaW5zZXJ0KHNlbGYsIGl0ZW0sIGluZGV4KToKKyAgICAgICAgICAgICAgICBwYXNz
CisKKyAgICAgICAgZXhwbCA9IGNhbGxlcXVhbChUZXN0U2VxdWVuY2UoWzAsIDFdKSwgbGlzdChb
MCwgMl0pKQorICAgICAgICBhc3NlcnQgbGVuKGV4cGwpID4gMQorCisgICAgZGVmIHRlc3RfbGlz
dF90dXBsZXMoc2VsZik6CisgICAgICAgIGV4cGwgPSBjYWxsZXF1YWwoW10sIFsoMSwgMildKQor
ICAgICAgICBhc3NlcnQgbGVuKGV4cGwpID4gMQorICAgICAgICBleHBsID0gY2FsbGVxdWFsKFso
MSwgMildLCBbXSkKKyAgICAgICAgYXNzZXJ0IGxlbihleHBsKSA+IDEKKworICAgIGRlZiB0ZXN0
X2xpc3RfYmFkX3JlcHIoc2VsZik6CisgICAgICAgIGNsYXNzIEEob2JqZWN0KToKKyAgICAgICAg
ICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KDQyKQorICAgICAgICBleHBsID0gY2FsbGVxdWFsKFtdLCBbQSgpXSkKKyAgICAgICAgYXNzZXJ0
ICdWYWx1ZUVycm9yJyBpbiAiIi5qb2luKGV4cGwpCisgICAgICAgIGV4cGwgPSBjYWxsZXF1YWwo
e30sIHsnMSc6IEEoKX0pCisgICAgICAgIGFzc2VydCAnZmF1bHR5JyBpbiAiIi5qb2luKGV4cGwp
CisKKyAgICBkZWYgdGVzdF9vbmVfcmVwcl9lbXB0eShzZWxmKToKKyAgICAgICAgIiIiCisgICAg
ICAgIHRoZSBmYXVsdHkgZW1wdHkgc3RyaW5nIHJlcHIgZGlkIHRyaWdnZXIKKyAgICAgICAgYSB1
bmJvdW5kIGxvY2FsIGVycm9yIGluIF9kaWZmX3RleHQKKyAgICAgICAgIiIiCisgICAgICAgIGNs
YXNzIEEoc3RyKToKKyAgICAgICAgICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgICAg
ICAgICByZXR1cm4gJycKKyAgICAgICAgZXhwbCA9IGNhbGxlcXVhbChBKCksICcnKQorICAgICAg
ICBhc3NlcnQgbm90IGV4cGwKKworICAgIGRlZiB0ZXN0X3JlcHJfbm9fZXhjKHNlbGYpOgorICAg
ICAgICBleHBsID0gJyAnLmpvaW4oY2FsbGVxdWFsKCdmb28nLCAnYmFyJykpCisgICAgICAgIGFz
c2VydCAncmFpc2VkIGluIHJlcHIoKScgbm90IGluIGV4cGwKKworICAgIGRlZiB0ZXN0X3VuaWNv
ZGUoc2VsZik6CisgICAgICAgIGxlZnQgPSBweS5idWlsdGluLl90b3RleHQoJ8Kj4oKsJywgJ3V0
Zi04JykKKyAgICAgICAgcmlnaHQgPSBweS5idWlsdGluLl90b3RleHQoJ8KjJywgJ3V0Zi04JykK
KyAgICAgICAgZXhwbCA9IGNhbGxlcXVhbChsZWZ0LCByaWdodCkKKyAgICAgICAgYXNzZXJ0IGV4
cGxbMF0gPT0gcHkuYnVpbHRpbi5fdG90ZXh0KCInwqPigqwnID09ICfCoyciLCAndXRmLTgnKQor
ICAgICAgICBhc3NlcnQgZXhwbFsxXSA9PSBweS5idWlsdGluLl90b3RleHQoJy0gwqPigqwnLCAn
dXRmLTgnKQorICAgICAgICBhc3NlcnQgZXhwbFsyXSA9PSBweS5idWlsdGluLl90b3RleHQoJysg
wqMnLCAndXRmLTgnKQorCisgICAgZGVmIHRlc3Rfbm9uYXNjaWlfdGV4dChzZWxmKToKKyAgICAg
ICAgIiIiCisgICAgICAgIDppc3N1ZTogODc3CisgICAgICAgIG5vbiBhc2NpaSBweXRob24yIHN0
ciBjYXVzZWQgYSBVbmljb2RlRGVjb2RlRXJyb3IKKyAgICAgICAgIiIiCisgICAgICAgIGNsYXNz
IEEoc3RyKToKKyAgICAgICAgICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gJ1x4ZmYnCisgICAgICAgIGV4cGwgPSBjYWxsZXF1YWwoQSgpLCAnMScpCisgICAg
ICAgIGFzc2VydCBleHBsCisKKyAgICBkZWYgdGVzdF9mb3JtYXRfbm9uYXNjaWlfZXhwbGFuYXRp
b24oc2VsZik6CisgICAgICAgIGFzc2VydCB1dGlsLmZvcm1hdF9leHBsYW5hdGlvbignzrsnKQor
CisgICAgZGVmIHRlc3RfbW9qaWJha2Uoc2VsZik6CisgICAgICAgICMgaXNzdWUgNDI5CisgICAg
ICAgIGxlZnQgPSAnZScKKyAgICAgICAgcmlnaHQgPSAnXHhjM1x4YTknCisgICAgICAgIGlmIG5v
dCBpc2luc3RhbmNlKGxlZnQsIHB5LmJ1aWx0aW4uYnl0ZXMpOgorICAgICAgICAgICAgbGVmdCA9
IHB5LmJ1aWx0aW4uYnl0ZXMobGVmdCwgJ3V0Zi04JykKKyAgICAgICAgICAgIHJpZ2h0ID0gcHku
YnVpbHRpbi5ieXRlcyhyaWdodCwgJ3V0Zi04JykKKyAgICAgICAgZXhwbCA9IGNhbGxlcXVhbChs
ZWZ0LCByaWdodCkKKyAgICAgICAgZm9yIGxpbmUgaW4gZXhwbDoKKyAgICAgICAgICAgIGFzc2Vy
dCBpc2luc3RhbmNlKGxpbmUsIHB5LmJ1aWx0aW4udGV4dCkKKyAgICAgICAgbXNnID0gcHkuYnVp
bHRpbi5fdG90ZXh0KCdcbicpLmpvaW4oZXhwbCkKKyAgICAgICAgYXNzZXJ0IG1zZworCisKK2Ns
YXNzIFRlc3RGb3JtYXRFeHBsYW5hdGlvbihvYmplY3QpOgorCisgICAgZGVmIHRlc3Rfc3BlY2lh
bF9jaGFyc19mdWxsKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAjIElzc3VlIDQ1MywgZm9yIHRo
ZSBidWcgdGhpcyB3b3VsZCByYWlzZSBJbmRleEVycm9yCisgICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbygpOgorICAgICAgICAgICAgICAgIGFz
c2VydCAnXFxufScgPT0gJycKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDEKKyAgICAgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqQXNzZXJ0aW9uRXJyb3Iq
IiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2ZtdF9zaW1wbGUoc2VsZik6CisgICAgICAg
IGV4cGwgPSAnYXNzZXJ0IGZvbycKKyAgICAgICAgYXNzZXJ0IHV0aWwuZm9ybWF0X2V4cGxhbmF0
aW9uKGV4cGwpID09ICdhc3NlcnQgZm9vJworCisgICAgZGVmIHRlc3RfZm10X3doZXJlKHNlbGYp
OgorICAgICAgICBleHBsID0gJ1xuJy5qb2luKFsnYXNzZXJ0IDEnLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAnezEgPSBmb28nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnfSA9PSAy
J10pCisgICAgICAgIHJlcyA9ICdcbicuam9pbihbJ2Fzc2VydCAxID09IDInLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICcgKyAgd2hlcmUgMSA9IGZvbyddKQorICAgICAgICBhc3NlcnQgdXRp
bC5mb3JtYXRfZXhwbGFuYXRpb24oZXhwbCkgPT0gcmVzCisKKyAgICBkZWYgdGVzdF9mbXRfYW5k
KHNlbGYpOgorICAgICAgICBleHBsID0gJ1xuJy5qb2luKFsnYXNzZXJ0IDEnLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAnezEgPSBmb28nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAn
fSA9PSAyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3syID0gYmFyJywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ30nXSkKKyAgICAgICAgcmVzID0gJ1xuJy5qb2luKFsnYXNzZXJ0
IDEgPT0gMicsCisgICAgICAgICAgICAgICAgICAgICAgICAgJyArICB3aGVyZSAxID0gZm9vJywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAnICsgIGFuZCAgIDIgPSBiYXInXSkKKyAgICAgICAg
YXNzZXJ0IHV0aWwuZm9ybWF0X2V4cGxhbmF0aW9uKGV4cGwpID09IHJlcworCisgICAgZGVmIHRl
c3RfZm10X3doZXJlX25lc3RlZChzZWxmKToKKyAgICAgICAgZXhwbCA9ICdcbicuam9pbihbJ2Fz
c2VydCAxJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3sxID0gZm9vJywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ3tmb28gPSBiYXInLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAnfScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICd9ID09IDInXSkKKyAgICAgICAgcmVz
ID0gJ1xuJy5qb2luKFsnYXNzZXJ0IDEgPT0gMicsCisgICAgICAgICAgICAgICAgICAgICAgICAg
JyArICB3aGVyZSAxID0gZm9vJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnICsgICAgd2hl
cmUgZm9vID0gYmFyJ10pCisgICAgICAgIGFzc2VydCB1dGlsLmZvcm1hdF9leHBsYW5hdGlvbihl
eHBsKSA9PSByZXMKKworICAgIGRlZiB0ZXN0X2ZtdF9uZXdsaW5lKHNlbGYpOgorICAgICAgICBl
eHBsID0gJ1xuJy5qb2luKFsnYXNzZXJ0ICJmb28iID09ICJiYXIiJywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ34tIGZvbycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICd+KyBiYXIn
XSkKKyAgICAgICAgcmVzID0gJ1xuJy5qb2luKFsnYXNzZXJ0ICJmb28iID09ICJiYXIiJywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAnICAtIGZvbycsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgJyAgKyBiYXInXSkKKyAgICAgICAgYXNzZXJ0IHV0aWwuZm9ybWF0X2V4cGxhbmF0aW9uKGV4
cGwpID09IHJlcworCisgICAgZGVmIHRlc3RfZm10X25ld2xpbmVfZXNjYXBlZChzZWxmKToKKyAg
ICAgICAgZXhwbCA9ICdcbicuam9pbihbJ2Fzc2VydCBmb28gPT0gYmFyJywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ2JheiddKQorICAgICAgICByZXMgPSAnYXNzZXJ0IGZvbyA9PSBiYXJc
XG5iYXonCisgICAgICAgIGFzc2VydCB1dGlsLmZvcm1hdF9leHBsYW5hdGlvbihleHBsKSA9PSBy
ZXMKKworICAgIGRlZiB0ZXN0X2ZtdF9uZXdsaW5lX2JlZm9yZV93aGVyZShzZWxmKToKKyAgICAg
ICAgZXhwbCA9ICdcbicuam9pbihbJ3RoZSBhc3NlcnRpb24gbWVzc2FnZSBoZXJlJywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgJz5hc3NlcnQgMScsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICd7MSA9IGZvbycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICd9ID09IDInLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAnezIgPSBiYXInLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAnfSddKQorICAgICAgICByZXMgPSAnXG4nLmpvaW4oWyd0aGUgYXNzZXJ0aW9uIG1lc3Nh
Z2UgaGVyZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2Fzc2VydCAxID09IDInLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICcgKyAgd2hlcmUgMSA9IGZvbycsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgJyArICBhbmQgICAyID0gYmFyJ10pCisgICAgICAgIGFzc2VydCB1dGlsLmZv
cm1hdF9leHBsYW5hdGlvbihleHBsKSA9PSByZXMKKworICAgIGRlZiB0ZXN0X2ZtdF9tdWx0aV9u
ZXdsaW5lX2JlZm9yZV93aGVyZShzZWxmKToKKyAgICAgICAgZXhwbCA9ICdcbicuam9pbihbJ3Ro
ZSBhc3NlcnRpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnfm1lc3NhZ2UgaGVyZScs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICc+YXNzZXJ0IDEnLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAnezEgPSBmb28nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnfSA9PSAy
JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3syID0gYmFyJywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ30nXSkKKyAgICAgICAgcmVzID0gJ1xuJy5qb2luKFsndGhlIGFzc2VydGlv
bicsCisgICAgICAgICAgICAgICAgICAgICAgICAgJyAgbWVzc2FnZSBoZXJlJywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAnYXNzZXJ0IDEgPT0gMicsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgJyArICB3aGVyZSAxID0gZm9vJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnICsgIGFu
ZCAgIDIgPSBiYXInXSkKKyAgICAgICAgYXNzZXJ0IHV0aWwuZm9ybWF0X2V4cGxhbmF0aW9uKGV4
cGwpID09IHJlcworCisKK2NsYXNzIFRlc3RUcnVuY2F0ZUV4cGxhbmF0aW9uKG9iamVjdCk6CisK
KyAgICAiIiIgQ29uZmlybSBhc3NlcnRpb24gb3V0cHV0IGlzIHRydW5jYXRlZCBhcyBleHBlY3Rl
ZCAiIiIKKworICAgICMgVGhlIG51bWJlciBvZiBsaW5lcyBpbiB0aGUgdHJ1bmNhdGlvbiBleHBs
YW5hdGlvbiBtZXNzYWdlLiBVc2VkCisgICAgIyB0byBjYWxjdWxhdGUgdGhhdCByZXN1bHRzIGhh
dmUgdGhlIGV4cGVjdGVkIGxlbmd0aC4KKyAgICBMSU5FU19JTl9UUlVOQ0FUSU9OX01TRyA9IDIK
KworICAgIGRlZiB0ZXN0X2RvZXNudF90cnVuY2F0ZV93aGVuX2lucHV0X2lzX2VtcHR5X2xpc3Qo
c2VsZik6CisgICAgICAgIGV4cGwgPSBbXQorICAgICAgICByZXN1bHQgPSB0cnVuY2F0ZS5fdHJ1
bmNhdGVfZXhwbGFuYXRpb24oZXhwbCwgbWF4X2xpbmVzPTgsIG1heF9jaGFycz0xMDApCisgICAg
ICAgIGFzc2VydCByZXN1bHQgPT0gZXhwbAorCisgICAgZGVmIHRlc3RfZG9lc250X3RydW5jYXRl
X2F0X3doZW5faW5wdXRfaXNfNV9saW5lc19hbmRfTFRfbWF4X2NoYXJzKHNlbGYpOgorICAgICAg
ICBleHBsID0gWydhJyAqIDEwMCBmb3IgeCBpbiByYW5nZSg1KV0KKyAgICAgICAgcmVzdWx0ID0g
dHJ1bmNhdGUuX3RydW5jYXRlX2V4cGxhbmF0aW9uKGV4cGwsIG1heF9saW5lcz04LCBtYXhfY2hh
cnM9OCAqIDgwKQorICAgICAgICBhc3NlcnQgcmVzdWx0ID09IGV4cGwKKworICAgIGRlZiB0ZXN0
X3RydW5jYXRlc19hdF84X2xpbmVzX3doZW5fZ2l2ZW5fbGlzdF9vZl9lbXB0eV9zdHJpbmdzKHNl
bGYpOgorICAgICAgICBleHBsID0gWycnIGZvciB4IGluIHJhbmdlKDUwKV0KKyAgICAgICAgcmVz
dWx0ID0gdHJ1bmNhdGUuX3RydW5jYXRlX2V4cGxhbmF0aW9uKGV4cGwsIG1heF9saW5lcz04LCBt
YXhfY2hhcnM9MTAwKQorICAgICAgICBhc3NlcnQgcmVzdWx0ICE9IGV4cGwKKyAgICAgICAgYXNz
ZXJ0IGxlbihyZXN1bHQpID09IDggKyBzZWxmLkxJTkVTX0lOX1RSVU5DQVRJT05fTVNHCisgICAg
ICAgIGFzc2VydCAiRnVsbCBvdXRwdXQgdHJ1bmNhdGVkIiBpbiByZXN1bHRbLTFdCisgICAgICAg
IGFzc2VydCAiNDMgbGluZXMgaGlkZGVuIiBpbiByZXN1bHRbLTFdCisgICAgICAgIGxhc3RfbGlu
ZV9iZWZvcmVfdHJ1bmNfbXNnID0gcmVzdWx0Wy0gc2VsZi5MSU5FU19JTl9UUlVOQ0FUSU9OX01T
RyAtIDFdCisgICAgICAgIGFzc2VydCBsYXN0X2xpbmVfYmVmb3JlX3RydW5jX21zZy5lbmRzd2l0
aCgiLi4uIikKKworICAgIGRlZiB0ZXN0X3RydW5jYXRlc19hdF84X2xpbmVzX3doZW5fZmlyc3Rf
OF9saW5lc19hcmVfTFRfbWF4X2NoYXJzKHNlbGYpOgorICAgICAgICBleHBsID0gWydhJyBmb3Ig
eCBpbiByYW5nZSgxMDApXQorICAgICAgICByZXN1bHQgPSB0cnVuY2F0ZS5fdHJ1bmNhdGVfZXhw
bGFuYXRpb24oZXhwbCwgbWF4X2xpbmVzPTgsIG1heF9jaGFycz04ICogODApCisgICAgICAgIGFz
c2VydCByZXN1bHQgIT0gZXhwbAorICAgICAgICBhc3NlcnQgbGVuKHJlc3VsdCkgPT0gOCArIHNl
bGYuTElORVNfSU5fVFJVTkNBVElPTl9NU0cKKyAgICAgICAgYXNzZXJ0ICJGdWxsIG91dHB1dCB0
cnVuY2F0ZWQiIGluIHJlc3VsdFstMV0KKyAgICAgICAgYXNzZXJ0ICI5MyBsaW5lcyBoaWRkZW4i
IGluIHJlc3VsdFstMV0KKyAgICAgICAgbGFzdF9saW5lX2JlZm9yZV90cnVuY19tc2cgPSByZXN1
bHRbLSBzZWxmLkxJTkVTX0lOX1RSVU5DQVRJT05fTVNHIC0gMV0KKyAgICAgICAgYXNzZXJ0IGxh
c3RfbGluZV9iZWZvcmVfdHJ1bmNfbXNnLmVuZHN3aXRoKCIuLi4iKQorCisgICAgZGVmIHRlc3Rf
dHJ1bmNhdGVzX2F0XzhfbGluZXNfd2hlbl9maXJzdF84X2xpbmVzX2FyZV9FUV9tYXhfY2hhcnMo
c2VsZik6CisgICAgICAgIGV4cGwgPSBbJ2EnICogODAgZm9yIHggaW4gcmFuZ2UoMTYpXQorICAg
ICAgICByZXN1bHQgPSB0cnVuY2F0ZS5fdHJ1bmNhdGVfZXhwbGFuYXRpb24oZXhwbCwgbWF4X2xp
bmVzPTgsIG1heF9jaGFycz04ICogODApCisgICAgICAgIGFzc2VydCByZXN1bHQgIT0gZXhwbAor
ICAgICAgICBhc3NlcnQgbGVuKHJlc3VsdCkgPT0gOCArIHNlbGYuTElORVNfSU5fVFJVTkNBVElP
Tl9NU0cKKyAgICAgICAgYXNzZXJ0ICJGdWxsIG91dHB1dCB0cnVuY2F0ZWQiIGluIHJlc3VsdFst
MV0KKyAgICAgICAgYXNzZXJ0ICI5IGxpbmVzIGhpZGRlbiIgaW4gcmVzdWx0Wy0xXQorICAgICAg
ICBsYXN0X2xpbmVfYmVmb3JlX3RydW5jX21zZyA9IHJlc3VsdFstIHNlbGYuTElORVNfSU5fVFJV
TkNBVElPTl9NU0cgLSAxXQorICAgICAgICBhc3NlcnQgbGFzdF9saW5lX2JlZm9yZV90cnVuY19t
c2cuZW5kc3dpdGgoIi4uLiIpCisKKyAgICBkZWYgdGVzdF90cnVuY2F0ZXNfYXRfNF9saW5lc193
aGVuX2ZpcnN0XzRfbGluZXNfYXJlX0dUX21heF9jaGFycyhzZWxmKToKKyAgICAgICAgZXhwbCA9
IFsnYScgKiAyNTAgZm9yIHggaW4gcmFuZ2UoMTApXQorICAgICAgICByZXN1bHQgPSB0cnVuY2F0
ZS5fdHJ1bmNhdGVfZXhwbGFuYXRpb24oZXhwbCwgbWF4X2xpbmVzPTgsIG1heF9jaGFycz05OTkp
CisgICAgICAgIGFzc2VydCByZXN1bHQgIT0gZXhwbAorICAgICAgICBhc3NlcnQgbGVuKHJlc3Vs
dCkgPT0gNCArIHNlbGYuTElORVNfSU5fVFJVTkNBVElPTl9NU0cKKyAgICAgICAgYXNzZXJ0ICJG
dWxsIG91dHB1dCB0cnVuY2F0ZWQiIGluIHJlc3VsdFstMV0KKyAgICAgICAgYXNzZXJ0ICI3IGxp
bmVzIGhpZGRlbiIgaW4gcmVzdWx0Wy0xXQorICAgICAgICBsYXN0X2xpbmVfYmVmb3JlX3RydW5j
X21zZyA9IHJlc3VsdFstIHNlbGYuTElORVNfSU5fVFJVTkNBVElPTl9NU0cgLSAxXQorICAgICAg
ICBhc3NlcnQgbGFzdF9saW5lX2JlZm9yZV90cnVuY19tc2cuZW5kc3dpdGgoIi4uLiIpCisKKyAg
ICBkZWYgdGVzdF90cnVuY2F0ZXNfYXRfMV9saW5lX3doZW5fZmlyc3RfbGluZV9pc19HVF9tYXhf
Y2hhcnMoc2VsZik6CisgICAgICAgIGV4cGwgPSBbJ2EnICogMjUwIGZvciB4IGluIHJhbmdlKDEw
MDApXQorICAgICAgICByZXN1bHQgPSB0cnVuY2F0ZS5fdHJ1bmNhdGVfZXhwbGFuYXRpb24oZXhw
bCwgbWF4X2xpbmVzPTgsIG1heF9jaGFycz0xMDApCisgICAgICAgIGFzc2VydCByZXN1bHQgIT0g
ZXhwbAorICAgICAgICBhc3NlcnQgbGVuKHJlc3VsdCkgPT0gMSArIHNlbGYuTElORVNfSU5fVFJV
TkNBVElPTl9NU0cKKyAgICAgICAgYXNzZXJ0ICJGdWxsIG91dHB1dCB0cnVuY2F0ZWQiIGluIHJl
c3VsdFstMV0KKyAgICAgICAgYXNzZXJ0ICIxMDAwIGxpbmVzIGhpZGRlbiIgaW4gcmVzdWx0Wy0x
XQorICAgICAgICBsYXN0X2xpbmVfYmVmb3JlX3RydW5jX21zZyA9IHJlc3VsdFstIHNlbGYuTElO
RVNfSU5fVFJVTkNBVElPTl9NU0cgLSAxXQorICAgICAgICBhc3NlcnQgbGFzdF9saW5lX2JlZm9y
ZV90cnVuY19tc2cuZW5kc3dpdGgoIi4uLiIpCisKKyAgICBkZWYgdGVzdF9mdWxsX291dHB1dF90
cnVuY2F0ZWQoc2VsZiwgbW9ua2V5cGF0Y2gsIHRlc3RkaXIpOgorICAgICAgICAiIiIgVGVzdCBh
Z2FpbnN0IGZ1bGwgcnVucHl0ZXN0KCkgb3V0cHV0LiAiIiIKKworICAgICAgICBsaW5lX2NvdW50
ID0gNworICAgICAgICBsaW5lX2xlbiA9IDEwMAorICAgICAgICBleHBlY3RlZF90cnVuY2F0ZWRf
bGluZXMgPSAyCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZShyIiIiCisgICAgICAgICAgICBk
ZWYgdGVzdF9tYW55X2xpbmVzKCk6CisgICAgICAgICAgICAgICAgYSA9IGxpc3QoW3N0cihpKVsw
XSAqICVkIGZvciBpIGluIHJhbmdlKCVkKV0pCisgICAgICAgICAgICAgICAgYiA9IGFbOjoyXQor
ICAgICAgICAgICAgICAgIGEgPSAnXG4nLmpvaW4obWFwKHN0ciwgYSkpCisgICAgICAgICAgICAg
ICAgYiA9ICdcbicuam9pbihtYXAoc3RyLCBiKSkKKyAgICAgICAgICAgICAgICBhc3NlcnQgYSA9
PSBiCisgICAgICAgICIiIiAlIChsaW5lX2xlbiwgbGluZV9jb3VudCkpCisgICAgICAgIG1vbmtl
eXBhdGNoLmRlbGVudignQ0knLCByYWlzaW5nPUZhbHNlKQorCisgICAgICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgIyB3aXRob3V0IC12diwgdHJ1bmNhdGUgdGhlIG1l
c3NhZ2Ugc2hvd2luZyBhIGZldyBkaWZmIGxpbmVzIG9ubHkKKyAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqLSAxKiIsCisgICAgICAgICAgICAiKi0g
MyoiLAorICAgICAgICAgICAgIiotIDUqIiwKKyAgICAgICAgICAgICIqdHJ1bmNhdGVkICglZCBs
aW5lcyBoaWRkZW4pKnVzZSotdnYqIiAlIGV4cGVjdGVkX3RydW5jYXRlZF9saW5lcywKKyAgICAg
ICAgXSkKKworICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLXZ2JykKKyAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqIDYqIiwKKyAg
ICAgICAgXSkKKworICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYoJ0NJJywgJzEnKQorICAgICAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKiA2KiIsCisgICAgICAgIF0pCisKKworZGVmIHRl
c3RfcHl0aG9uMjVfY29tcGlsZV9pc3N1ZTI1Nyh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoIiIiCisgICAgICAgIGRlZiB0ZXN0X3Jld3JpdHRlbigpOgorICAgICAgICAgICAgYXNz
ZXJ0IDEgPT0gMgorICAgICAgICAjIHNvbWUgY29tbWVudAorICAgICIiIikKKyAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMQorICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiIiIKKyAgICAgICAgICAgICpFKmFzc2VydCAxID09
IDIqCisgICAgICAgICAgICAqMSBmYWlsZWQqCisgICAgIiIiKQorCisKK2RlZiB0ZXN0X3Jld3Jp
dHRlbih0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGRlZiB0
ZXN0X3Jld3JpdHRlbigpOgorICAgICAgICAgICAgYXNzZXJ0ICJAcHlfYnVpbHRpbnMiIGluIGds
b2JhbHMoKQorICAgICIiIikKKyAgICBhc3NlcnQgdGVzdGRpci5ydW5weXRlc3QoKS5yZXQgPT0g
MAorCisKK2RlZiB0ZXN0X3JlcHJjb21wYXJlX25vdGluKG1vY2tfY29uZmlnKToKKyAgICBkZXRh
aWwgPSBwbHVnaW4ucHl0ZXN0X2Fzc2VydHJlcHJfY29tcGFyZSgKKyAgICAgICAgbW9ja19jb25m
aWcsICdub3QgaW4nLCAnZm9vJywgJ2FhYWZvb2JiYicpWzE6XQorICAgIGFzc2VydCBkZXRhaWwg
PT0gWyInZm9vJyBpcyBjb250YWluZWQgaGVyZToiLCAnICBhYWFmb29iYmInLCAnPyAgICArKysn
XQorCisKK2RlZiB0ZXN0X3B5dGVzdF9hc3NlcnRyZXByX2NvbXBhcmVfaW50ZWdyYXRpb24odGVz
dGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBkZWYgdGVzdF9oZWxs
bygpOgorICAgICAgICAgICAgeCA9IHNldChyYW5nZSgxMDApKQorICAgICAgICAgICAgeSA9IHgu
Y29weSgpCisgICAgICAgICAgICB5LnJlbW92ZSg1MCkKKyAgICAgICAgICAgIGFzc2VydCB4ID09
IHkKKyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICIqZGVmIHRlc3RfaGVsbG8oKToqIiwK
KyAgICAgICAgIiphc3NlcnQgeCA9PSB5KiIsCisgICAgICAgICIqRSpFeHRyYSBpdGVtcypsZWZ0
KiIsCisgICAgICAgICIqRSo1MCoiLAorICAgIF0pCisKKworZGVmIHRlc3Rfc2VxdWVuY2VfY29t
cGFyaXNvbl91c2VzX3JlcHIodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgor
ICAgICAgICBkZWYgdGVzdF9oZWxsbygpOgorICAgICAgICAgICAgeCA9IHNldCgiaGVsbG8geCIp
CisgICAgICAgICAgICB5ID0gc2V0KCJoZWxsbyB5IikKKyAgICAgICAgICAgIGFzc2VydCB4ID09
IHkKKyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICIqZGVmIHRlc3RfaGVsbG8oKToqIiwK
KyAgICAgICAgIiphc3NlcnQgeCA9PSB5KiIsCisgICAgICAgICIqRSpFeHRyYSBpdGVtcypsZWZ0
KiIsCisgICAgICAgICIqRSoneCcqIiwKKyAgICAgICAgIipFKkV4dHJhIGl0ZW1zKnJpZ2h0KiIs
CisgICAgICAgICIqRSoneScqIiwKKyAgICBdKQorCisKK2RlZiB0ZXN0X2Fzc2VydHJlcHJfbG9h
ZGVkX3Blcl9kaXIodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRlc3RfYmFzZT1b
J2RlZiB0ZXN0X2Jhc2UoKTogYXNzZXJ0IDEgPT0gMiddKQorICAgIGEgPSB0ZXN0ZGlyLm1rZGly
KCdhJykKKyAgICBhX3Rlc3QgPSBhLmpvaW4oJ3Rlc3RfYS5weScpCisgICAgYV90ZXN0LndyaXRl
KCdkZWYgdGVzdF9hKCk6IGFzc2VydCAxID09IDInKQorICAgIGFfY29uZnRlc3QgPSBhLmpvaW4o
J2NvbmZ0ZXN0LnB5JykKKyAgICBhX2NvbmZ0ZXN0LndyaXRlKCdkZWYgcHl0ZXN0X2Fzc2VydHJl
cHJfY29tcGFyZSgpOiByZXR1cm4gWyJzdW1tYXJ5IGEiXScpCisgICAgYiA9IHRlc3RkaXIubWtk
aXIoJ2InKQorICAgIGJfdGVzdCA9IGIuam9pbigndGVzdF9iLnB5JykKKyAgICBiX3Rlc3Qud3Jp
dGUoJ2RlZiB0ZXN0X2IoKTogYXNzZXJ0IDEgPT0gMicpCisgICAgYl9jb25mdGVzdCA9IGIuam9p
bignY29uZnRlc3QucHknKQorICAgIGJfY29uZnRlc3Qud3JpdGUoJ2RlZiBweXRlc3RfYXNzZXJ0
cmVwcl9jb21wYXJlKCk6IHJldHVybiBbInN1bW1hcnkgYiJdJykKKyAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAg
ICAgJypkZWYgdGVzdF9iYXNlKCk6KicsCisgICAgICAgICcqRSphc3NlcnQgMSA9PSAyKicsCisg
ICAgICAgICcqZGVmIHRlc3RfYSgpOionLAorICAgICAgICAnKkUqYXNzZXJ0IHN1bW1hcnkgYSon
LAorICAgICAgICAnKmRlZiB0ZXN0X2IoKToqJywKKyAgICAgICAgJypFKmFzc2VydCBzdW1tYXJ5
IGIqJ10pCisKKworZGVmIHRlc3RfYXNzZXJ0aW9uX29wdGlvbnModGVzdGRpcik6CisgICAgdGVz
dGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBkZWYgdGVzdF9oZWxsbygpOgorICAgICAgICAg
ICAgeCA9IDMKKyAgICAgICAgICAgIGFzc2VydCB4ID09IDQKKyAgICAiIiIpCisgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIGFzc2VydCAiMyA9PSA0IiBpbiByZXN1bHQuc3Rk
b3V0LnN0cigpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcygiLS1h
c3NlcnQ9cGxhaW4iKQorICAgIGFzc2VydCAiMyA9PSA0IiBub3QgaW4gcmVzdWx0LnN0ZG91dC5z
dHIoKQorCisKK2RlZiB0ZXN0X3RyaXBsZV9xdW90ZWRfc3RyaW5nX2lzc3VlMTEzKHRlc3RkaXIp
OgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgZGVmIHRlc3RfaGVsbG8oKToK
KyAgICAgICAgICAgIGFzc2VydCAiIiA9PSAnJycKKyAgICAnJyciIiIpCisgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoIi0tZnVsbHRyYWNlIikKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWworICAgICAgICAiKjEgZmFpbGVkKiIsCisgICAgXSkKKyAgICBhc3NlcnQgJ1N5
bnRheEVycm9yJyBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorCisKK2RlZiB0ZXN0X3RyYWNl
YmFja19mYWlsdXJlKHRlc3RkaXIpOgorICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgor
ICAgICAgICBkZWYgZygpOgorICAgICAgICAgICAgcmV0dXJuIDIKKyAgICAgICAgZGVmIGYoeCk6
CisgICAgICAgICAgICBhc3NlcnQgeCA9PSBnKCkKKyAgICAgICAgZGVmIHRlc3Rfb25lZmFpbHMo
KToKKyAgICAgICAgICAgIGYoMykKKyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QocDEsICItLXRiPWxvbmciKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
CisgICAgICAgICIqdGVzdF90cmFjZWJhY2tfZmFpbHVyZS5weSBGKiIsCisgICAgICAgICI9PT09
KiBGQUlMVVJFUyAqPT09PSIsCisgICAgICAgICJfX19fKl9fX18iLAorICAgICAgICAiIiwKKyAg
ICAgICAgIiAgICBkZWYgdGVzdF9vbmVmYWlscygpOiIsCisgICAgICAgICI+ICAgICAgIGYoMyki
LAorICAgICAgICAiIiwKKyAgICAgICAgIip0ZXN0XyoucHk6NjogIiwKKyAgICAgICAgIl8gXyBf
ICoiLAorICAgICAgICAjICIiLAorICAgICAgICAiICAgIGRlZiBmKHgpOiIsCisgICAgICAgICI+
ICAgICAgIGFzc2VydCB4ID09IGcoKSIsCisgICAgICAgICJFICAgICAgIGFzc2VydCAzID09IDIi
LAorICAgICAgICAiRSAgICAgICAgKyAgd2hlcmUgMiA9IGcoKSIsCisgICAgICAgICIiLAorICAg
ICAgICAiKnRlc3RfdHJhY2ViYWNrX2ZhaWx1cmUucHk6NDogQXNzZXJ0aW9uRXJyb3IiCisgICAg
XSkKKworICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAxKSAgIyAiYXV0byIKKyAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKnRlc3RfdHJhY2ViYWNrX2Zh
aWx1cmUucHkgRioiLAorICAgICAgICAiPT09PSogRkFJTFVSRVMgKj09PT0iLAorICAgICAgICAi
X19fXypfX19fIiwKKyAgICAgICAgIiIsCisgICAgICAgICIgICAgZGVmIHRlc3Rfb25lZmFpbHMo
KToiLAorICAgICAgICAiPiAgICAgICBmKDMpIiwKKyAgICAgICAgIiIsCisgICAgICAgICIqdGVz
dF8qLnB5OjY6ICIsCisgICAgICAgICIiLAorICAgICAgICAiICAgIGRlZiBmKHgpOiIsCisgICAg
ICAgICI+ICAgICAgIGFzc2VydCB4ID09IGcoKSIsCisgICAgICAgICJFICAgICAgIGFzc2VydCAz
ID09IDIiLAorICAgICAgICAiRSAgICAgICAgKyAgd2hlcmUgMiA9IGcoKSIsCisgICAgICAgICIi
LAorICAgICAgICAiKnRlc3RfdHJhY2ViYWNrX2ZhaWx1cmUucHk6NDogQXNzZXJ0aW9uRXJyb3Ii
CisgICAgXSkKKworCitAcHl0ZXN0Lm1hcmsuc2tpcGlmKHN5cy52ZXJzaW9uX2luZm9bOjJdIDw9
ICgzLCAzKSwgcmVhc29uPSdQeXRob24gMy40KyBzaG93cyBjaGFpbmVkIGV4Y2VwdGlvbnMgb24g
bXVsdGlwcm9jZXNzJykKK2RlZiB0ZXN0X2V4Y2VwdGlvbl9oYW5kbGluZ19ub190cmFjZWJhY2so
dGVzdGRpcik6CisgICAgIiIiCisgICAgSGFuZGxlIGNoYWluIGV4Y2VwdGlvbnMgaW4gdGFza3Mg
c3VibWl0dGVkIGJ5IHRoZSBtdWx0aXByb2Nlc3MgbW9kdWxlICgjMTk4NCkuCisgICAgIiIiCisg
ICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGZyb20gbXVsdGlwcm9jZXNz
aW5nIGltcG9ydCBQb29sCisKKyAgICAgICAgZGVmIHByb2Nlc3NfdGFzayhuKToKKyAgICAgICAg
ICAgIGFzc2VydCBuID09IDEwCisKKyAgICAgICAgZGVmIG11bHRpdGFza19qb2IoKToKKyAgICAg
ICAgICAgIHRhc2tzID0gWzFdCisgICAgICAgICAgICB3aXRoIFBvb2wocHJvY2Vzc2VzPTEpIGFz
IHBvb2w6CisgICAgICAgICAgICAgICAgcG9vbC5tYXAocHJvY2Vzc190YXNrLCB0YXNrcykKKwor
ICAgICAgICBkZWYgdGVzdF9tdWx0aXRhc2tfam9iKCk6CisgICAgICAgICAgICBtdWx0aXRhc2tf
am9iKCkKKyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocDEsICItLXRi
PWxvbmciKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICI9PT09
KiBGQUlMVVJFUyAqPT09PSIsCisgICAgICAgICIqbXVsdGlwcm9jZXNzaW5nLnBvb2wuUmVtb3Rl
VHJhY2ViYWNrOioiLAorICAgICAgICAiVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3Qp
OiIsCisgICAgICAgICIqYXNzZXJ0IG4gPT0gMTAiLAorICAgICAgICAiVGhlIGFib3ZlIGV4Y2Vw
dGlvbiB3YXMgdGhlIGRpcmVjdCBjYXVzZSBvZiB0aGUgZm9sbG93aW5nIGV4Y2VwdGlvbjoiLAor
ICAgICAgICAiPiAqIG11bHRpdGFza19qb2IoKSIsCisgICAgXSkKKworCitAcHl0ZXN0Lm1hcmsu
c2tpcGlmKCInX19weXB5X18nIGluIHN5cy5idWlsdGluX21vZHVsZV9uYW1lcyBvciBzeXMucGxh
dGZvcm0uc3RhcnRzd2l0aCgnamF2YScpIikKK2RlZiB0ZXN0X3dhcm5fbWlzc2luZyh0ZXN0ZGly
KToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW4o
c3lzLmV4ZWN1dGFibGUsICItT08iLCAiLW0iLCAicHl0ZXN0IiwgIi1oIikKKyAgICByZXN1bHQu
c3RkZXJyLmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKldBUk5JTkcqYXNzZXJ0IHN0YXRlbWVu
dHMgYXJlIG5vdCBleGVjdXRlZCoiLAorICAgIF0pCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW4o
c3lzLmV4ZWN1dGFibGUsICItT08iLCAiLW0iLCAicHl0ZXN0IikKKyAgICByZXN1bHQuc3RkZXJy
LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKldBUk5JTkcqYXNzZXJ0IHN0YXRlbWVudHMgYXJl
IG5vdCBleGVjdXRlZCoiLAorICAgIF0pCisKKworZGVmIHRlc3RfcmVjdXJzaW9uX3NvdXJjZV9k
ZWNvZGUodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBkZWYg
dGVzdF9zb21ldGhpbmcoKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAiIiIpCisgICAgdGVzdGRp
ci5tYWtlaW5pKCIiIgorICAgICAgICBbcHl0ZXN0XQorICAgICAgICBweXRob25fZmlsZXMgPSAq
LnB5CisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3Qt
b25seSIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIiIgorICAgICAgICA8TW9k
dWxlKj4KKyAgICAiIiIpCisKKworZGVmIHRlc3RfQXNzZXJ0aW9uRXJyb3JfbWVzc2FnZSh0ZXN0
ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGRlZiB0ZXN0X2hlbGxv
KCk6CisgICAgICAgICAgICB4LHkgPSAxLDIKKyAgICAgICAgICAgIGFzc2VydCAwLCAoeCx5KQor
ICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKCIiIgorICAgICAgICAqZGVmIHRlc3RfaGVsbG8qCisgICAgICAg
ICphc3NlcnQgMCwgKHgseSkqCisgICAgICAgICpBc3NlcnRpb25FcnJvcjogKDEsIDIpKgorICAg
ICIiIikKKworCitAcHl0ZXN0Lm1hcmsuc2tpcGlmKFBZMywgcmVhc29uPSdUaGlzIGJ1ZyBkb2Vz
IG5vdCBleGlzdCBvbiBQWTMnKQorZGVmIHRlc3Rfc2V0X3dpdGhfdW5zb3J0YWJsZV9lbGVtZW50
cygpOgorICAgICMgaXNzdWUgIzcxOAorICAgIGNsYXNzIFVuc29ydGFibGVLZXkob2JqZWN0KToK
KyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUpOgorICAgICAgICAgICAgc2VsZi5uYW1l
ID0gbmFtZQorCisgICAgICAgIGRlZiBfX2x0X18oc2VsZiwgb3RoZXIpOgorICAgICAgICAgICAg
cmFpc2UgUnVudGltZUVycm9yKCkKKworICAgICAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAg
ICAgICAgICByZXR1cm4gJ3JlcHIoezB9KScuZm9ybWF0KHNlbGYubmFtZSkKKworICAgICAgICBk
ZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLm5hbWUgPT0g
b3RoZXIubmFtZQorCisgICAgICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKKyAgICAgICAgICAgIHJl
dHVybiBoYXNoKHNlbGYubmFtZSkKKworICAgIGxlZnRfc2V0ID0gc2V0KFVuc29ydGFibGVLZXko
c3RyKGkpKSBmb3IgaSBpbiByYW5nZSgxLCAzKSkKKyAgICByaWdodF9zZXQgPSBzZXQoVW5zb3J0
YWJsZUtleShzdHIoaSkpIGZvciBpIGluIHJhbmdlKDIsIDQpKQorICAgIGV4cGwgPSBjYWxsZXF1
YWwobGVmdF9zZXQsIHJpZ2h0X3NldCwgdmVyYm9zZT1UcnVlKQorICAgICMgc2tpcCBmaXJzdCBs
aW5lIGJlY2F1c2UgaXQgY29udGFpbnMgdGhlICJjb25zdHJ1Y3Rpb24iIG9mIHRoZSBzZXQsIHdo
aWNoIGRvZXMgbm90IGhhdmUgYSBndWFyYW50ZWVkIG9yZGVyCisgICAgZXhwbCA9IGV4cGxbMTpd
CisgICAgZGVkZW50ID0gdGV4dHdyYXAuZGVkZW50KCIiIgorICAgICAgICBFeHRyYSBpdGVtcyBp
biB0aGUgbGVmdCBzZXQ6CisgICAgICAgIHJlcHIoMSkKKyAgICAgICAgRXh0cmEgaXRlbXMgaW4g
dGhlIHJpZ2h0IHNldDoKKyAgICAgICAgcmVwcigzKQorICAgICAgICBGdWxsIGRpZmYgKGZhbGxi
YWNrIHRvIGNhbGxpbmcgcmVwciBvbiBlYWNoIGl0ZW0pOgorICAgICAgICAtIHJlcHIoMSkKKyAg
ICAgICAgcmVwcigyKQorICAgICAgICArIHJlcHIoMykKKyAgICAiIiIpLnN0cmlwKCkKKyAgICBh
c3NlcnQgJ1xuJy5qb2luKGV4cGwpID09IGRlZGVudAorCisKK2RlZiB0ZXN0X2RpZmZfbmV3bGlu
ZV9hdF9lbmQobW9ua2V5cGF0Y2gsIHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZShy
IiIiCisgICAgICAgIGRlZiB0ZXN0X2RpZmYoKToKKyAgICAgICAgICAgIGFzc2VydCAnYXNkZicg
PT0gJ2FzZGZcbicKKyAgICAiIiIpCisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgp
CisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKHIiIiIKKyAgICAgICAgKmFzc2VydCAn
YXNkZicgPT0gJ2FzZGZcbicKKyAgICAgICAgKiAgLSBhc2RmCisgICAgICAgICogICsgYXNkZgor
ICAgICAgICAqICA/ICAgICArCisgICAgIiIiKQorCisKK2RlZiB0ZXN0X2Fzc2VydF90dXBsZV93
YXJuaW5nKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgZGVm
IHRlc3RfdHVwbGUoKToKKyAgICAgICAgICAgIGFzc2VydChGYWxzZSwgJ3lvdSBzaGFsbCBub3Qg
cGFzcycpCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctcncnKQor
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICcqdGVzdF9hc3NlcnRf
dHVwbGVfd2FybmluZy5weToyJywKKyAgICAgICAgJyphc3NlcnRpb24gaXMgYWx3YXlzIHRydWUq
JywKKyAgICBdKQorCisKK2RlZiB0ZXN0X2Fzc2VydF9pbmRpcmVjdF90dXBsZV9ub193YXJuaW5n
KHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgZGVmIHRlc3Rf
dHVwbGUoKToKKyAgICAgICAgICAgIHRwbCA9ICgnZm9vJywgJ2JhcicpCisgICAgICAgICAgICBh
c3NlcnQgdHBsCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctcncn
KQorICAgIG91dHB1dCA9ICdcbicuam9pbihyZXN1bHQuc3Rkb3V0LmxpbmVzKQorICAgIGFzc2Vy
dCAnV1IxJyBub3QgaW4gb3V0cHV0CisKKworZGVmIHRlc3RfYXNzZXJ0X3dpdGhfdW5pY29kZSht
b25rZXlwYXRjaCwgdGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKHUiIiIKKyAgICAg
ICAgIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KKyAgICAgICAgZGVmIHRlc3RfdW5pY29kZSgpOgor
ICAgICAgICAgICAgYXNzZXJ0IHUn7Jyg64uI7L2U65OcJyA9PSB1J1VuaWNvZGUnCisgICAgIiIi
KQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoWycqQXNzZXJ0aW9uRXJyb3IqJ10pCisKKworZGVmIHRlc3RfcmFpc2VfdW5w
cmludGFibGVfYXNzZXJ0aW9uX2Vycm9yKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5Zmls
ZShyIiIiCisgICAgICAgIGRlZiB0ZXN0X3JhaXNlX2Fzc2VydGlvbl9lcnJvcigpOgorICAgICAg
ICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoJ1x4ZmYnKQorICAgICIiIikKKyAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFty
Ij4gICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoJ1x4ZmYnKSIsICdFICAgICAgIEFzc2VydGlv
bkVycm9yOiAqJ10pCisKKworZGVmIHRlc3RfcmFpc2VfYXNzZXJ0aW9uX2Vycm9yX3JhaXNpbl9y
ZXByKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh1IiIiCisgICAgICAgIGNsYXNz
IFJhaXNpbmdSZXByKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgX19yZXByX18oc2VsZik6Cisg
ICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCkKKyAgICAgICAgZGVmIHRlc3RfcmFpc2lu
Z19yZXByKCk6CisgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcihSYWlzaW5nUmVwcigp
KQorICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsnRSAgICAgICBBc3NlcnRpb25FcnJvcjogPHVucHJpbnRh
YmxlIEFzc2VydGlvbkVycm9yIG9iamVjdD4nXSkKKworCitkZWYgdGVzdF9pc3N1ZV8xOTQ0KHRl
c3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgZGVmIGYoKToKKyAg
ICAgICAgICAgIHJldHVybgorCisgICAgICAgIGFzc2VydCBmKCkgPT0gMTAKKyAgICAiIiIpCisg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcyhbIioxIGVycm9yKiJdKQorICAgIGFzc2VydCAiQXR0cmlidXRlRXJyb3I6ICdNb2R1
bGUnIG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICdfb2JqJyIgbm90IGluIHJlc3VsdC5zdGRvdXQu
c3RyKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9hc3NlcnRyZXdyaXRl
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2Fzc2VydHJld3JpdGUucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMGUyMmM2ZGFjNDdhZDM5MmY1OWUyOGNkMGQyOTlmNThmODFiMWFmNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9hc3NlcnRyZXdyaXRlLnB5CkBAIC0wLDAg
KzEsOTk2IEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNp
b24sIHByaW50X2Z1bmN0aW9uCisKK2ltcG9ydCBnbG9iCitpbXBvcnQgb3MKK2ltcG9ydCBweV9j
b21waWxlCitpbXBvcnQgc3RhdAoraW1wb3J0IHN5cworaW1wb3J0IHppcGZpbGUKK2ltcG9ydCBw
eQoraW1wb3J0IHB5dGVzdAorCitpbXBvcnQgX3B5dGVzdC5fY29kZQorZnJvbSBfcHl0ZXN0LmFz
c2VydGlvbiBpbXBvcnQgdXRpbAorZnJvbSBfcHl0ZXN0LmFzc2VydGlvbi5yZXdyaXRlIGltcG9y
dCByZXdyaXRlX2Fzc2VydHMsIFBZVEVTVF9UQUcsIEFzc2VydGlvblJld3JpdGluZ0hvb2sKK2Zy
b20gX3B5dGVzdC5tYWluIGltcG9ydCBFWElUX05PVEVTVFNDT0xMRUNURUQKKworYXN0ID0gcHl0
ZXN0LmltcG9ydG9yc2tpcCgiYXN0IikKK2lmIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCJqYXZh
Iik6CisgICAgIyBYWFggc2hvdWxkIGJlIHhmYWlsCisgICAgcHl0ZXN0LnNraXAoImFzc2VydCBy
ZXdyaXRlIGRvZXMgY3VycmVudGx5IG5vdCB3b3JrIG9uIGp5dGhvbiIpCisKKworZGVmIHNldHVw
X21vZHVsZShtb2QpOgorICAgIG1vZC5fb2xkX3JlcHJjb21wYXJlID0gdXRpbC5fcmVwcmNvbXBh
cmUKKyAgICBfcHl0ZXN0Ll9jb2RlLl9yZXByY29tcGFyZSA9IE5vbmUKKworCitkZWYgdGVhcmRv
d25fbW9kdWxlKG1vZCk6CisgICAgdXRpbC5fcmVwcmNvbXBhcmUgPSBtb2QuX29sZF9yZXByY29t
cGFyZQorICAgIGRlbCBtb2QuX29sZF9yZXByY29tcGFyZQorCisKK2RlZiByZXdyaXRlKHNyYyk6
CisgICAgdHJlZSA9IGFzdC5wYXJzZShzcmMpCisgICAgcmV3cml0ZV9hc3NlcnRzKHRyZWUpCisg
ICAgcmV0dXJuIHRyZWUKKworCitkZWYgZ2V0bXNnKGYsIGV4dHJhX25zPU5vbmUsIG11c3RfcGFz
cz1GYWxzZSk6CisgICAgIiIiUmV3cml0ZSB0aGUgYXNzZXJ0aW9ucyBpbiBmLCBydW4gaXQsIGFu
ZCBnZXQgdGhlIGZhaWx1cmUgbWVzc2FnZS4iIiIKKyAgICBzcmMgPSAnXG4nLmpvaW4oX3B5dGVz
dC5fY29kZS5Db2RlKGYpLnNvdXJjZSgpLmxpbmVzKQorICAgIG1vZCA9IHJld3JpdGUoc3JjKQor
ICAgIGNvZGUgPSBjb21waWxlKG1vZCwgIjx0ZXN0PiIsICJleGVjIikKKyAgICBucyA9IHt9Cisg
ICAgaWYgZXh0cmFfbnMgaXMgbm90IE5vbmU6CisgICAgICAgIG5zLnVwZGF0ZShleHRyYV9ucykK
KyAgICBweS5idWlsdGluLmV4ZWNfKGNvZGUsIG5zKQorICAgIGZ1bmMgPSBuc1tmLl9fbmFtZV9f
XQorICAgIHRyeToKKyAgICAgICAgZnVuYygpCisgICAgZXhjZXB0IEFzc2VydGlvbkVycm9yOgor
ICAgICAgICBpZiBtdXN0X3Bhc3M6CisgICAgICAgICAgICBweXRlc3QuZmFpbCgic2hvdWxkbid0
IGhhdmUgcmFpc2VkIikKKyAgICAgICAgcyA9IHN0cihzeXMuZXhjX2luZm8oKVsxXSkKKyAgICAg
ICAgaWYgbm90IHMuc3RhcnRzd2l0aCgiYXNzZXJ0Iik6CisgICAgICAgICAgICByZXR1cm4gIkFz
c2VydGlvbkVycm9yOiAiICsgcworICAgICAgICByZXR1cm4gcworICAgIGVsc2U6CisgICAgICAg
IGlmIG5vdCBtdXN0X3Bhc3M6CisgICAgICAgICAgICBweXRlc3QuZmFpbCgiZnVuY3Rpb24gZGlk
bid0IHJhaXNlIGF0IGFsbCIpCisKKworY2xhc3MgVGVzdEFzc2VydGlvblJld3JpdGUob2JqZWN0
KToKKworICAgIGRlZiB0ZXN0X3BsYWNlX2luaXRpYWxfaW1wb3J0cyhzZWxmKToKKyAgICAgICAg
cyA9ICIiIidEb2Mgc3RyaW5nJ1xub3RoZXIgPSBzdHVmZiIiIgorICAgICAgICBtID0gcmV3cml0
ZShzKQorICAgICAgICAjIE1vZHVsZSBkb2NzdHJpbmdzIGluIDMuNyBhcmUgcGFydCBvZiBNb2R1
bGUgbm9kZSwgaXQncyBub3QgaW4gdGhlIGJvZHkKKyAgICAgICAgIyBzbyB3ZSByZW1vdmUgaXQg
c28gdGhlIGZvbGxvd2luZyBib2R5IGl0ZW1zIGhhdmUgdGhlIHNhbWUgaW5kZXhlcyBvbgorICAg
ICAgICAjIGFsbCBQeXRob24gdmVyc2lvbnMKKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8
ICgzLCA3KToKKyAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG0uYm9keVswXSwgYXN0LkV4
cHIpCisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShtLmJvZHlbMF0udmFsdWUsIGFzdC5T
dHIpCisgICAgICAgICAgICBkZWwgbS5ib2R5WzBdCisgICAgICAgIGZvciBpbXAgaW4gbS5ib2R5
WzA6Ml06CisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShpbXAsIGFzdC5JbXBvcnQpCisg
ICAgICAgICAgICBhc3NlcnQgaW1wLmxpbmVubyA9PSAyCisgICAgICAgICAgICBhc3NlcnQgaW1w
LmNvbF9vZmZzZXQgPT0gMAorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShtLmJvZHlbMl0sIGFz
dC5Bc3NpZ24pCisgICAgICAgIHMgPSAiIiJmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHdpdGhfc3Rh
dGVtZW50XG5vdGhlcl9zdHVmZiIiIgorICAgICAgICBtID0gcmV3cml0ZShzKQorICAgICAgICBh
c3NlcnQgaXNpbnN0YW5jZShtLmJvZHlbMF0sIGFzdC5JbXBvcnRGcm9tKQorICAgICAgICBmb3Ig
aW1wIGluIG0uYm9keVsxOjNdOgorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoaW1wLCBh
c3QuSW1wb3J0KQorICAgICAgICAgICAgYXNzZXJ0IGltcC5saW5lbm8gPT0gMgorICAgICAgICAg
ICAgYXNzZXJ0IGltcC5jb2xfb2Zmc2V0ID09IDAKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
bS5ib2R5WzNdLCBhc3QuRXhwcikKKyAgICAgICAgcyA9ICIiIidkb2Mgc3RyaW5nJ1xuZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCB3aXRoX3N0YXRlbWVudCIiIgorICAgICAgICBtID0gcmV3cml0ZShz
KQorICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDcpOgorICAgICAgICAgICAgYXNz
ZXJ0IGlzaW5zdGFuY2UobS5ib2R5WzBdLCBhc3QuRXhwcikKKyAgICAgICAgICAgIGFzc2VydCBp
c2luc3RhbmNlKG0uYm9keVswXS52YWx1ZSwgYXN0LlN0cikKKyAgICAgICAgICAgIGRlbCBtLmJv
ZHlbMF0KKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobS5ib2R5WzBdLCBhc3QuSW1wb3J0RnJv
bSkKKyAgICAgICAgZm9yIGltcCBpbiBtLmJvZHlbMTozXToKKyAgICAgICAgICAgIGFzc2VydCBp
c2luc3RhbmNlKGltcCwgYXN0LkltcG9ydCkKKyAgICAgICAgICAgIGFzc2VydCBpbXAubGluZW5v
ID09IDIKKyAgICAgICAgICAgIGFzc2VydCBpbXAuY29sX29mZnNldCA9PSAwCisgICAgICAgIHMg
PSAiIiInZG9jIHN0cmluZydcbmZyb20gX19mdXR1cmVfXyBpbXBvcnQgd2l0aF9zdGF0ZW1lbnRc
bm90aGVyIiIiCisgICAgICAgIG0gPSByZXdyaXRlKHMpCisgICAgICAgIGlmIHN5cy52ZXJzaW9u
X2luZm8gPCAoMywgNyk6CisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShtLmJvZHlbMF0s
IGFzdC5FeHByKQorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobS5ib2R5WzBdLnZhbHVl
LCBhc3QuU3RyKQorICAgICAgICAgICAgZGVsIG0uYm9keVswXQorICAgICAgICBhc3NlcnQgaXNp
bnN0YW5jZShtLmJvZHlbMF0sIGFzdC5JbXBvcnRGcm9tKQorICAgICAgICBmb3IgaW1wIGluIG0u
Ym9keVsxOjNdOgorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoaW1wLCBhc3QuSW1wb3J0
KQorICAgICAgICAgICAgYXNzZXJ0IGltcC5saW5lbm8gPT0gMworICAgICAgICAgICAgYXNzZXJ0
IGltcC5jb2xfb2Zmc2V0ID09IDAKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobS5ib2R5WzNd
LCBhc3QuRXhwcikKKyAgICAgICAgcyA9ICIiImZyb20gLiBpbXBvcnQgcmVsYXRpdmVcbm90aGVy
X3N0dWZmIiIiCisgICAgICAgIG0gPSByZXdyaXRlKHMpCisgICAgICAgIGZvciBpbXAgaW4gbS5i
b2R5WzA6Ml06CisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShpbXAsIGFzdC5JbXBvcnQp
CisgICAgICAgICAgICBhc3NlcnQgaW1wLmxpbmVubyA9PSAxCisgICAgICAgICAgICBhc3NlcnQg
aW1wLmNvbF9vZmZzZXQgPT0gMAorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShtLmJvZHlbM10s
IGFzdC5FeHByKQorCisgICAgZGVmIHRlc3RfZG9udF9yZXdyaXRlKHNlbGYpOgorICAgICAgICBz
ID0gIiIiJ1BZVEVTVF9ET05UX1JFV1JJVEUnXG5hc3NlcnQgMTQiIiIKKyAgICAgICAgbSA9IHJl
d3JpdGUocykKKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCA3KToKKyAgICAgICAg
ICAgIGFzc2VydCBsZW4obS5ib2R5KSA9PSAyCisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5j
ZShtLmJvZHlbMF0sIGFzdC5FeHByKQorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobS5i
b2R5WzBdLnZhbHVlLCBhc3QuU3RyKQorICAgICAgICAgICAgZGVsIG0uYm9keVswXQorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgYXNzZXJ0IGxlbihtLmJvZHkpID09IDEKKyAgICAgICAgYXNz
ZXJ0IG0uYm9keVswXS5tc2cgaXMgTm9uZQorCisgICAgZGVmIHRlc3RfbmFtZShzZWxmKToKKyAg
ICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIGFzc2VydCBGYWxzZQorICAgICAgICBhc3NlcnQg
Z2V0bXNnKGYpID09ICJhc3NlcnQgRmFsc2UiCisKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAg
ICAgIGYgPSBGYWxzZQorICAgICAgICAgICAgYXNzZXJ0IGYKKworICAgICAgICBhc3NlcnQgZ2V0
bXNnKGYpID09ICJhc3NlcnQgRmFsc2UiCisKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAg
IGFzc2VydCBhX2dsb2JhbCAgIyBub3FhCisKKyAgICAgICAgYXNzZXJ0IGdldG1zZyhmLCB7ImFf
Z2xvYmFsIjogRmFsc2V9KSA9PSAiYXNzZXJ0IEZhbHNlIgorCisgICAgICAgIGRlZiBmKCk6Cisg
ICAgICAgICAgICBhc3NlcnQgc3lzID09IDQyCisKKyAgICAgICAgYXNzZXJ0IGdldG1zZyhmLCB7
InN5cyI6IHN5c30pID09ICJhc3NlcnQgc3lzID09IDQyIgorCisgICAgICAgIGRlZiBmKCk6Cisg
ICAgICAgICAgICBhc3NlcnQgY2xzID09IDQyICAjIG5vcWEKKworICAgICAgICBjbGFzcyBYKG9i
amVjdCk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgYXNzZXJ0IGdldG1zZyhmLCB7ImNs
cyI6IFh9KSA9PSAiYXNzZXJ0IGNscyA9PSA0MiIKKworICAgIGRlZiB0ZXN0X2Fzc2VydF9hbHJl
YWR5X2hhc19tZXNzYWdlKHNlbGYpOgorICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgYXNz
ZXJ0IEZhbHNlLCAic29tZXRoaW5nIGJhZCEiCisgICAgICAgIGFzc2VydCBnZXRtc2coZikgPT0g
IkFzc2VydGlvbkVycm9yOiBzb21ldGhpbmcgYmFkIVxuYXNzZXJ0IEZhbHNlIgorCisgICAgZGVm
IHRlc3RfYXNzZXJ0aW9uX21lc3NhZ2Uoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbygpOgorICAgICAgICAgICAg
ICAgIGFzc2VydCAxID09IDIsICJUaGUgZmFpbHVyZSBtZXNzYWdlIgorICAgICAgICAiIiIpCisg
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNzZXJ0IHJlc3Vs
dC5yZXQgPT0gMQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAg
ICAgICAgIipBc3NlcnRpb25FcnJvcipUaGUgZmFpbHVyZSBtZXNzYWdlKiIsCisgICAgICAgICAg
ICAiKmFzc2VydCAxID09IDIqIiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2Fzc2VydGlv
bl9tZXNzYWdlX211bHRpbGluZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtl
cHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfZm9vKCk6CisgICAgICAgICAgICAgICAg
YXNzZXJ0IDEgPT0gMiwgIkEgbXVsdGlsaW5lXFxuZmFpbHVyZSBtZXNzYWdlIgorICAgICAgICAi
IiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNzZXJ0
IHJlc3VsdC5yZXQgPT0gMQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWwor
ICAgICAgICAgICAgIipBc3NlcnRpb25FcnJvcipBIG11bHRpbGluZSoiLAorICAgICAgICAgICAg
IipmYWlsdXJlIG1lc3NhZ2UqIiwKKyAgICAgICAgICAgICIqYXNzZXJ0IDEgPT0gMioiLAorICAg
ICAgICBdKQorCisgICAgZGVmIHRlc3RfYXNzZXJ0aW9uX21lc3NhZ2VfdHVwbGUoc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0
ZXN0X2ZvbygpOgorICAgICAgICAgICAgICAgIGFzc2VydCAxID09IDIsICgxLCAyKQorICAgICAg
ICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNz
ZXJ0IHJlc3VsdC5yZXQgPT0gMQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WworICAgICAgICAgICAgIipBc3NlcnRpb25FcnJvciolcyoiICUgcmVwcigoMSwgMikpLAorICAg
ICAgICAgICAgIiphc3NlcnQgMSA9PSAyKiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9h
c3NlcnRpb25fbWVzc2FnZV9leHByKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9mb28oKToKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgMSA9PSAyLCAxICsgMgorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMQorICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIipBc3NlcnRpb25F
cnJvciozKiIsCisgICAgICAgICAgICAiKmFzc2VydCAxID09IDIqIiwKKyAgICAgICAgXSkKKwor
ICAgIGRlZiB0ZXN0X2Fzc2VydGlvbl9tZXNzYWdlX2VzY2FwZShzZWxmLCB0ZXN0ZGlyKToKKyAg
ICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfZm9vKCk6
CisgICAgICAgICAgICAgICAgYXNzZXJ0IDEgPT0gMiwgJ1RvIGJlIGVzY2FwZWQ6ICUnCisgICAg
ICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICBh
c3NlcnQgcmVzdWx0LnJldCA9PSAxCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cyhbCisgICAgICAgICAgICAiKkFzc2VydGlvbkVycm9yOiBUbyBiZSBlc2NhcGVkOiAlIiwKKyAg
ICAgICAgICAgICIqYXNzZXJ0IDEgPT0gMiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9i
b29sb3Aoc2VsZik6CisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICBmID0gZyA9IEZhbHNl
CisgICAgICAgICAgICBhc3NlcnQgZiBhbmQgZworCisgICAgICAgIGFzc2VydCBnZXRtc2coZikg
PT0gImFzc2VydCAoRmFsc2UpIgorCisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICBmID0g
VHJ1ZQorICAgICAgICAgICAgZyA9IEZhbHNlCisgICAgICAgICAgICBhc3NlcnQgZiBhbmQgZwor
CisgICAgICAgIGFzc2VydCBnZXRtc2coZikgPT0gImFzc2VydCAoVHJ1ZSBhbmQgRmFsc2UpIgor
CisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICBmID0gRmFsc2UKKyAgICAgICAgICAgIGcg
PSBUcnVlCisgICAgICAgICAgICBhc3NlcnQgZiBhbmQgZworCisgICAgICAgIGFzc2VydCBnZXRt
c2coZikgPT0gImFzc2VydCAoRmFsc2UpIgorCisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAg
ICBmID0gZyA9IEZhbHNlCisgICAgICAgICAgICBhc3NlcnQgZiBvciBnCisKKyAgICAgICAgYXNz
ZXJ0IGdldG1zZyhmKSA9PSAiYXNzZXJ0IChGYWxzZSBvciBGYWxzZSkiCisKKyAgICAgICAgZGVm
IGYoKToKKyAgICAgICAgICAgIGYgPSBnID0gRmFsc2UKKyAgICAgICAgICAgIGFzc2VydCBub3Qg
ZiBhbmQgbm90IGcKKworICAgICAgICBnZXRtc2coZiwgbXVzdF9wYXNzPVRydWUpCisKKyAgICAg
ICAgZGVmIHgoKToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIGRlZiBmKCk6
CisgICAgICAgICAgICBhc3NlcnQgeCgpIGFuZCB4KCkKKworICAgICAgICBhc3NlcnQgZ2V0bXNn
KGYsIHsieCI6IHh9KSA9PSAiIiJhc3NlcnQgKEZhbHNlKQorICsgIHdoZXJlIEZhbHNlID0geCgp
IiIiCisKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIGFzc2VydCBGYWxzZSBvciB4KCkK
KworICAgICAgICBhc3NlcnQgZ2V0bXNnKGYsIHsieCI6IHh9KSA9PSAiIiJhc3NlcnQgKEZhbHNl
IG9yIEZhbHNlKQorICsgIHdoZXJlIEZhbHNlID0geCgpIiIiCisKKyAgICAgICAgZGVmIGYoKToK
KyAgICAgICAgICAgIGFzc2VydCAxIGluIHt9IGFuZCAyIGluIHt9CisKKyAgICAgICAgYXNzZXJ0
IGdldG1zZyhmKSA9PSAiYXNzZXJ0ICgxIGluIHt9KSIKKworICAgICAgICBkZWYgZigpOgorICAg
ICAgICAgICAgeCA9IDEKKyAgICAgICAgICAgIHkgPSAyCisgICAgICAgICAgICBhc3NlcnQgeCBp
biB7MTogTm9uZX0gYW5kIHkgaW4ge30KKworICAgICAgICBhc3NlcnQgZ2V0bXNnKGYpID09ICJh
c3NlcnQgKDEgaW4gezE6IE5vbmV9IGFuZCAyIGluIHt9KSIKKworICAgICAgICBkZWYgZigpOgor
ICAgICAgICAgICAgZiA9IFRydWUKKyAgICAgICAgICAgIGcgPSBGYWxzZQorICAgICAgICAgICAg
YXNzZXJ0IGYgb3IgZworCisgICAgICAgIGdldG1zZyhmLCBtdXN0X3Bhc3M9VHJ1ZSkKKworICAg
ICAgICBkZWYgZigpOgorICAgICAgICAgICAgZiA9IGcgPSBoID0gbGFtYmRhOiBUcnVlCisgICAg
ICAgICAgICBhc3NlcnQgZigpIGFuZCBnKCkgYW5kIGgoKQorCisgICAgICAgIGdldG1zZyhmLCBt
dXN0X3Bhc3M9VHJ1ZSkKKworICAgIGRlZiB0ZXN0X3Nob3J0X2NpcmN1aXRfZXZhbHVhdGlvbihz
ZWxmKToKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIGFzc2VydCBUcnVlIG9yIGV4cGxv
ZGUgICMgbm9xYQorCisgICAgICAgIGdldG1zZyhmLCBtdXN0X3Bhc3M9VHJ1ZSkKKworICAgICAg
ICBkZWYgZigpOgorICAgICAgICAgICAgeCA9IDEKKyAgICAgICAgICAgIGFzc2VydCB4ID09IDEg
b3IgeCA9PSAyCisKKyAgICAgICAgZ2V0bXNnKGYsIG11c3RfcGFzcz1UcnVlKQorCisgICAgZGVm
IHRlc3RfdW5hcnlfb3Aoc2VsZik6CisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICB4ID0g
VHJ1ZQorICAgICAgICAgICAgYXNzZXJ0IG5vdCB4CisKKyAgICAgICAgYXNzZXJ0IGdldG1zZyhm
KSA9PSAiYXNzZXJ0IG5vdCBUcnVlIgorCisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICB4
ID0gMAorICAgICAgICAgICAgYXNzZXJ0IH54ICsgMQorCisgICAgICAgIGFzc2VydCBnZXRtc2co
ZikgPT0gImFzc2VydCAofjAgKyAxKSIKKworICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAg
eCA9IDMKKyAgICAgICAgICAgIGFzc2VydCAteCArIHgKKworICAgICAgICBhc3NlcnQgZ2V0bXNn
KGYpID09ICJhc3NlcnQgKC0zICsgMykiCisKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAg
IHggPSAwCisgICAgICAgICAgICBhc3NlcnQgK3ggKyB4CisKKyAgICAgICAgYXNzZXJ0IGdldG1z
ZyhmKSA9PSAiYXNzZXJ0ICgrMCArIDApIgorCisgICAgZGVmIHRlc3RfYmluYXJ5X29wKHNlbGYp
OgorICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgeCA9IDEKKyAgICAgICAgICAgIHkgPSAt
MQorICAgICAgICAgICAgYXNzZXJ0IHggKyB5CisKKyAgICAgICAgYXNzZXJ0IGdldG1zZyhmKSA9
PSAiYXNzZXJ0ICgxICsgLTEpIgorCisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICBhc3Nl
cnQgbm90IDUgJSA0CisgICAgICAgIGFzc2VydCBnZXRtc2coZikgPT0gImFzc2VydCBub3QgKDUg
JSA0KSIKKworICAgIGRlZiB0ZXN0X2Jvb2xvcF9wZXJjZW50KHNlbGYpOgorICAgICAgICBkZWYg
ZigpOgorICAgICAgICAgICAgYXNzZXJ0IDMgJSAyIGFuZCBGYWxzZQorCisgICAgICAgIGFzc2Vy
dCBnZXRtc2coZikgPT0gImFzc2VydCAoKDMgJSAyKSBhbmQgRmFsc2UpIgorCisgICAgICAgIGRl
ZiBmKCk6CisgICAgICAgICAgICBhc3NlcnQgRmFsc2Ugb3IgNCAlIDIKKyAgICAgICAgYXNzZXJ0
IGdldG1zZyhmKSA9PSAiYXNzZXJ0IChGYWxzZSBvciAoNCAlIDIpKSIKKworICAgIEBweXRlc3Qu
bWFyay5za2lwaWYoInN5cy52ZXJzaW9uX2luZm8gPCAoMyw1KSIpCisgICAgZGVmIHRlc3RfYXRf
b3BlcmF0b3JfaXNzdWUxMjkwKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoIiIiCisgICAgICAgICAgICBjbGFzcyBNYXRyaXgob2JqZWN0KToKKyAgICAgICAgICAg
ICAgICBkZWYgX19pbml0X18oc2VsZiwgbnVtKToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5u
dW0gPSBudW0KKyAgICAgICAgICAgICAgICBkZWYgX19tYXRtdWxfXyhzZWxmLCBvdGhlcik6Cisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLm51bSAqIG90aGVyLm51bQorCisgICAgICAg
ICAgICBkZWYgdGVzdF9tdWx0bWF0X29wZXJhdG9yKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0
IE1hdHJpeCgyKSBAIE1hdHJpeCgzKSA9PSA2IiIiKQorICAgICAgICB0ZXN0ZGlyLnJ1bnB5dGVz
dCgpLmFzc2VydF9vdXRjb21lcyhwYXNzZWQ9MSkKKworICAgIGRlZiB0ZXN0X2NhbGwoc2VsZik6
CisgICAgICAgIGRlZiBnKGE9NDIsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICByZXR1
cm4gRmFsc2UKKworICAgICAgICBucyA9IHsiZyI6IGd9CisKKyAgICAgICAgZGVmIGYoKToKKyAg
ICAgICAgICAgIGFzc2VydCBnKCkKKworICAgICAgICBhc3NlcnQgZ2V0bXNnKGYsIG5zKSA9PSAi
IiJhc3NlcnQgRmFsc2UKKyArICB3aGVyZSBGYWxzZSA9IGcoKSIiIgorCisgICAgICAgIGRlZiBm
KCk6CisgICAgICAgICAgICBhc3NlcnQgZygxKQorCisgICAgICAgIGFzc2VydCBnZXRtc2coZiwg
bnMpID09ICIiImFzc2VydCBGYWxzZQorICsgIHdoZXJlIEZhbHNlID0gZygxKSIiIgorCisgICAg
ICAgIGRlZiBmKCk6CisgICAgICAgICAgICBhc3NlcnQgZygxLCAyKQorCisgICAgICAgIGFzc2Vy
dCBnZXRtc2coZiwgbnMpID09ICIiImFzc2VydCBGYWxzZQorICsgIHdoZXJlIEZhbHNlID0gZygx
LCAyKSIiIgorCisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICBhc3NlcnQgZygxLCBnPTQy
KQorCisgICAgICAgIGFzc2VydCBnZXRtc2coZiwgbnMpID09ICIiImFzc2VydCBGYWxzZQorICsg
IHdoZXJlIEZhbHNlID0gZygxLCBnPTQyKSIiIgorCisgICAgICAgIGRlZiBmKCk6CisgICAgICAg
ICAgICBhc3NlcnQgZygxLCAzLCBnPTIzKQorCisgICAgICAgIGFzc2VydCBnZXRtc2coZiwgbnMp
ID09ICIiImFzc2VydCBGYWxzZQorICsgIHdoZXJlIEZhbHNlID0gZygxLCAzLCBnPTIzKSIiIgor
CisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICBzZXEgPSBbMSwgMiwgM10KKyAgICAgICAg
ICAgIGFzc2VydCBnKCpzZXEpCisKKyAgICAgICAgYXNzZXJ0IGdldG1zZyhmLCBucykgPT0gIiIi
YXNzZXJ0IEZhbHNlCisgKyAgd2hlcmUgRmFsc2UgPSBnKCpbMSwgMiwgM10pIiIiCisKKyAgICAg
ICAgZGVmIGYoKToKKyAgICAgICAgICAgIHggPSAiYSIKKyAgICAgICAgICAgIGFzc2VydCBnKCoq
e3g6IDJ9KQorCisgICAgICAgIGFzc2VydCBnZXRtc2coZiwgbnMpID09ICIiImFzc2VydCBGYWxz
ZQorICsgIHdoZXJlIEZhbHNlID0gZygqKnsnYSc6IDJ9KSIiIgorCisgICAgZGVmIHRlc3RfYXR0
cmlidXRlKHNlbGYpOgorICAgICAgICBjbGFzcyBYKG9iamVjdCk6CisgICAgICAgICAgICBnID0g
MworCisgICAgICAgIG5zID0geyJ4IjogWH0KKworICAgICAgICBkZWYgZigpOgorICAgICAgICAg
ICAgYXNzZXJ0IG5vdCB4LmcgICMgbm9xYQorCisgICAgICAgIGFzc2VydCBnZXRtc2coZiwgbnMp
ID09ICIiImFzc2VydCBub3QgMworICsgIHdoZXJlIDMgPSB4LmciIiIKKworICAgICAgICBkZWYg
ZigpOgorICAgICAgICAgICAgeC5hID0gRmFsc2UgICMgbm9xYQorICAgICAgICAgICAgYXNzZXJ0
IHguYSAgICMgbm9xYQorCisgICAgICAgIGFzc2VydCBnZXRtc2coZiwgbnMpID09ICIiImFzc2Vy
dCBGYWxzZQorICsgIHdoZXJlIEZhbHNlID0geC5hIiIiCisKKyAgICBkZWYgdGVzdF9jb21wYXJp
c29ucyhzZWxmKToKKworICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgYSwgYiA9IHJhbmdl
KDIpCisgICAgICAgICAgICBhc3NlcnQgYiA8IGEKKworICAgICAgICBhc3NlcnQgZ2V0bXNnKGYp
ID09ICIiImFzc2VydCAxIDwgMCIiIgorCisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICBh
LCBiLCBjID0gcmFuZ2UoMykKKyAgICAgICAgICAgIGFzc2VydCBhID4gYiA+IGMKKworICAgICAg
ICBhc3NlcnQgZ2V0bXNnKGYpID09ICIiImFzc2VydCAwID4gMSIiIgorCisgICAgICAgIGRlZiBm
KCk6CisgICAgICAgICAgICBhLCBiLCBjID0gcmFuZ2UoMykKKyAgICAgICAgICAgIGFzc2VydCBh
IDwgYiA+IGMKKworICAgICAgICBhc3NlcnQgZ2V0bXNnKGYpID09ICIiImFzc2VydCAxID4gMiIi
IgorCisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICBhLCBiLCBjID0gcmFuZ2UoMykKKyAg
ICAgICAgICAgIGFzc2VydCBhIDwgYiA8PSBjCisKKyAgICAgICAgZ2V0bXNnKGYsIG11c3RfcGFz
cz1UcnVlKQorCisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICBhLCBiLCBjID0gcmFuZ2Uo
MykKKyAgICAgICAgICAgIGFzc2VydCBhIDwgYgorICAgICAgICAgICAgYXNzZXJ0IGIgPCBjCisK
KyAgICAgICAgZ2V0bXNnKGYsIG11c3RfcGFzcz1UcnVlKQorCisgICAgZGVmIHRlc3RfbGVuKHNl
bGYpOgorCisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICB2YWx1ZXMgPSBsaXN0KHJhbmdl
KDEwKSkKKyAgICAgICAgICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSAxMQorCisgICAgICAgIGFz
c2VydCBnZXRtc2coZikuc3RhcnRzd2l0aCgiIiJhc3NlcnQgMTAgPT0gMTEKKyArICB3aGVyZSAx
MCA9IGxlbihbIiIiKQorCisgICAgZGVmIHRlc3RfY3VzdG9tX3JlcHJjb21wYXJlKHNlbGYsIG1v
bmtleXBhdGNoKToKKyAgICAgICAgZGVmIG15X3JlcHJjb21wYXJlKG9wLCBsZWZ0LCByaWdodCk6
CisgICAgICAgICAgICByZXR1cm4gIjQyIgorCisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIo
dXRpbCwgIl9yZXByY29tcGFyZSIsIG15X3JlcHJjb21wYXJlKQorCisgICAgICAgIGRlZiBmKCk6
CisgICAgICAgICAgICBhc3NlcnQgNDIgPCAzCisKKyAgICAgICAgYXNzZXJ0IGdldG1zZyhmKSA9
PSAiYXNzZXJ0IDQyIgorCisgICAgICAgIGRlZiBteV9yZXByY29tcGFyZShvcCwgbGVmdCwgcmln
aHQpOgorICAgICAgICAgICAgcmV0dXJuICIlcyAlcyAlcyIgJSAobGVmdCwgb3AsIHJpZ2h0KQor
CisgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIodXRpbCwgIl9yZXByY29tcGFyZSIsIG15X3Jl
cHJjb21wYXJlKQorCisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICBhc3NlcnQgMSA8IDMg
PCA1IDw9IDQgPCA3CisKKyAgICAgICAgYXNzZXJ0IGdldG1zZyhmKSA9PSAiYXNzZXJ0IDUgPD0g
NCIKKworICAgIGRlZiB0ZXN0X2Fzc2VydF9yYWlzaW5nX25vbnplcm9faW5fY29tcGFyaXNvbihz
ZWxmKToKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIGNsYXNzIEEob2JqZWN0KToKKwor
ICAgICAgICAgICAgICAgIGRlZiBfX25vbnplcm9fXyhzZWxmKToKKyAgICAgICAgICAgICAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcig0MikKKworICAgICAgICAgICAgICAgIGRlZiBfX2x0X18oc2Vs
Ziwgb3RoZXIpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gQSgpCisKKyAgICAgICAgICAg
ICAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAiPE1Z
NDIgb2JqZWN0PiIKKworICAgICAgICAgICAgZGVmIG15YW55KHgpOgorICAgICAgICAgICAgICAg
IHJldHVybiBGYWxzZQorCisgICAgICAgICAgICBhc3NlcnQgbXlhbnkoQSgpIDwgMCkKKworICAg
ICAgICBhc3NlcnQgIjxNWTQyIG9iamVjdD4gPCAwIiBpbiBnZXRtc2coZikKKworICAgIGRlZiB0
ZXN0X2Zvcm1hdGNoYXIoc2VsZik6CisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICBhc3Nl
cnQgIiV0ZXN0IiA9PSAidGVzdCIKKworICAgICAgICBhc3NlcnQgZ2V0bXNnKGYpLnN0YXJ0c3dp
dGgoImFzc2VydCAnJXRlc3QnID09ICd0ZXN0JyIpCisKKyAgICBkZWYgdGVzdF9jdXN0b21fcmVw
cihzZWxmKToKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIGNsYXNzIEZvbyhvYmplY3Qp
OgorICAgICAgICAgICAgICAgIGEgPSAxCisKKyAgICAgICAgICAgICAgICBkZWYgX19yZXByX18o
c2VsZik6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAiXG57IFxufiBcbn0iCisKKyAgICAg
ICAgICAgIGYgPSBGb28oKQorICAgICAgICAgICAgYXNzZXJ0IDAgPT0gZi5hCisKKyAgICAgICAg
YXNzZXJ0IHIid2hlcmUgMSA9IFxueyBcbn4gXG59LmEiIGluIHV0aWwuX2Zvcm1hdF9saW5lcyhb
Z2V0bXNnKGYpXSlbMF0KKworCitjbGFzcyBUZXN0UmV3cml0ZU9uSW1wb3J0KG9iamVjdCk6CisK
KyAgICBkZWYgdGVzdF9weWNhY2hlX2lzX2FfZmlsZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
dGVzdGRpci50bXBkaXIuam9pbigiX19weWNhY2hlX18iKS53cml0ZSgiSGVsbG8iKQorICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9yZXdyaXR0ZW4o
KToKKyAgICAgICAgICAgICAgICBhc3NlcnQgIkBweV9idWlsdGlucyIgaW4gZ2xvYmFscygpIiIi
KQorICAgICAgICBhc3NlcnQgdGVzdGRpci5ydW5weXRlc3QoKS5yZXQgPT0gMAorCisgICAgZGVm
IHRlc3RfcHljYWNoZV9pc19yZWFkb25seShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgY2FjaGUg
PSB0ZXN0ZGlyLnRtcGRpci5ta2RpcigiX19weWNhY2hlX18iKQorICAgICAgICBvbGRfbW9kZSA9
IGNhY2hlLnN0YXQoKS5tb2RlCisgICAgICAgIGNhY2hlLmNobW9kKG9sZF9tb2RlIF4gc3RhdC5T
X0lXUklURSkKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVm
IHRlc3RfcmV3cml0dGVuKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0ICJAcHlfYnVpbHRpbnMi
IGluIGdsb2JhbHMoKSIiIikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYXNzZXJ0IHRlc3Rk
aXIucnVucHl0ZXN0KCkucmV0ID09IDAKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGNh
Y2hlLmNobW9kKG9sZF9tb2RlKQorCisgICAgZGVmIHRlc3RfemlwZmlsZShzZWxmLCB0ZXN0ZGly
KToKKyAgICAgICAgeiA9IHRlc3RkaXIudG1wZGlyLmpvaW4oIm15emlwLnppcCIpCisgICAgICAg
IHpfZm4gPSBzdHIoeikKKyAgICAgICAgZiA9IHppcGZpbGUuWmlwRmlsZSh6X2ZuLCAidyIpCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIGYud3JpdGVzdHIoInRlc3RfZ3VtL19faW5pdF9fLnB5
IiwgIiIpCisgICAgICAgICAgICBmLndyaXRlc3RyKCJ0ZXN0X2d1bS90ZXN0X2xpemFyZC5weSIs
ICIiKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgZi5jbG9zZSgpCisgICAgICAgIHou
Y2htb2QoMjU2KQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBp
bXBvcnQgc3lzCisgICAgICAgICAgICBzeXMucGF0aC5hcHBlbmQoJXIpCisgICAgICAgICAgICBp
bXBvcnQgdGVzdF9ndW0udGVzdF9saXphcmQiIiIgJSAoel9mbiwpKQorICAgICAgICBhc3NlcnQg
dGVzdGRpci5ydW5weXRlc3QoKS5yZXQgPT0gRVhJVF9OT1RFU1RTQ09MTEVDVEVECisKKyAgICBk
ZWYgdGVzdF9yZWFkb25seShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgc3ViID0gdGVzdGRpci5t
a2RpcigidGVzdGluZyIpCisgICAgICAgIHN1Yi5qb2luKCJ0ZXN0X3JlYWRvbmx5LnB5Iikud3Jp
dGUoCisgICAgICAgICAgICBweS5idWlsdGluLl90b3RleHQoIiIiCitkZWYgdGVzdF9yZXdyaXR0
ZW4oKToKKyAgICBhc3NlcnQgIkBweV9idWlsdGlucyIgaW4gZ2xvYmFscygpCisgICAgICAgICAg
ICAiIiIpLmVuY29kZSgidXRmLTgiKSwgIndiIikKKyAgICAgICAgb2xkX21vZGUgPSBzdWIuc3Rh
dCgpLm1vZGUKKyAgICAgICAgc3ViLmNobW9kKDMyMCkKKyAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgYXNzZXJ0IHRlc3RkaXIucnVucHl0ZXN0KCkucmV0ID09IDAKKyAgICAgICAgZmluYWxseToK
KyAgICAgICAgICAgIHN1Yi5jaG1vZChvbGRfbW9kZSkKKworICAgIGRlZiB0ZXN0X2RvbnRfd3Jp
dGVfYnl0ZWNvZGUoc2VsZiwgdGVzdGRpciwgbW9ua2V5cGF0Y2gpOgorICAgICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgb3MKKyAgICAgICAgICAgIGRlZiB0
ZXN0X25vX2J5dGVjb2RlKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0ICJfX3B5Y2FjaGVfXyIg
aW4gX19jYWNoZWRfXworICAgICAgICAgICAgICAgIGFzc2VydCBub3Qgb3MucGF0aC5leGlzdHMo
X19jYWNoZWRfXykKKyAgICAgICAgICAgICAgICBhc3NlcnQgbm90IG9zLnBhdGguZXhpc3RzKG9z
LnBhdGguZGlybmFtZShfX2NhY2hlZF9fKSkiIiIpCisgICAgICAgIG1vbmtleXBhdGNoLnNldGVu
digiUFlUSE9ORE9OVFdSSVRFQllURUNPREUiLCAiMSIpCisgICAgICAgIGFzc2VydCB0ZXN0ZGly
LnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCkucmV0ID09IDAKKworICAgIGRlZiB0ZXN0X29ycGhhbmVk
X3B5Y19maWxlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwg
KDMsIDApIGFuZCBoYXNhdHRyKHN5cywgJ3B5cHlfdmVyc2lvbl9pbmZvJyk6CisgICAgICAgICAg
ICBweXRlc3Quc2tpcCgicHlweTIgZG9lc24ndCBydW4gb3JwaGFuZWQgcHljIGZpbGVzIikKKwor
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgb3JwaGFu
CisgICAgICAgICAgICBkZWYgdGVzdF9pdCgpOgorICAgICAgICAgICAgICAgIGFzc2VydCBvcnBo
YW4udmFsdWUgPT0gMTcKKyAgICAgICAgICAgICIiIikKKyAgICAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKG9ycGhhbj0iIiIKKyAgICAgICAgICAgIHZhbHVlID0gMTcKKyAgICAgICAgICAgICIiIikK
KyAgICAgICAgcHlfY29tcGlsZS5jb21waWxlKCJvcnBoYW4ucHkiKQorICAgICAgICBvcy5yZW1v
dmUoIm9ycGhhbi5weSIpCisKKyAgICAgICAgIyBQeXRob24gMyBwdXRzIHRoZSAucHljIGZpbGVz
IGluIGEgX19weWNhY2hlX18gZGlyZWN0b3J5LCBhbmQgd2lsbAorICAgICAgICAjIG5vdCBpbXBv
cnQgZnJvbSB0aGVyZSB3aXRob3V0IHNvdXJjZS4gIEl0IHdpbGwgaW1wb3J0IGEgLnB5YyBmcm9t
CisgICAgICAgICMgdGhlIHNvdXJjZSBsb2NhdGlvbiB0aG91Z2guCisgICAgICAgIGlmIG5vdCBv
cy5wYXRoLmV4aXN0cygib3JwaGFuLnB5YyIpOgorICAgICAgICAgICAgcHljcyA9IGdsb2IuZ2xv
YigiX19weWNhY2hlX18vb3JwaGFuLioucHljIikKKyAgICAgICAgICAgIGFzc2VydCBsZW4ocHlj
cykgPT0gMQorICAgICAgICAgICAgb3MucmVuYW1lKHB5Y3NbMF0sICJvcnBoYW4ucHljIikKKwor
ICAgICAgICBhc3NlcnQgdGVzdGRpci5ydW5weXRlc3QoKS5yZXQgPT0gMAorCisgICAgQHB5dGVz
dC5tYXJrLnNraXBpZignIl9fcHlweV9fIiBpbiBzeXMubW9kdWxlcycpCisgICAgZGVmIHRlc3Rf
cHljX3ZzX3B5byhzZWxmLCB0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CisgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X29wdGltaXplZCgpOgorICAgICAgICAgICAgICAgICJoZWxsbyIKKyAgICAgICAgICAg
ICAgICBhc3NlcnQgdGVzdF9vcHRpbWl6ZWQuX19kb2NfXyBpcyBOb25lIiIiCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICApCisgICAgICAgIHAgPSBweS5wYXRoLmxvY2FsLm1ha2VfbnVtYmVy
ZWRfZGlyKHByZWZpeD0icnVucHl0ZXN0LSIsIGtlZXA9Tm9uZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9vdGRpcj10ZXN0ZGlyLnRtcGRpcikKKyAgICAg
ICAgdG1wID0gIi0tYmFzZXRlbXA9JXMiICUgcAorICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYo
IlBZVEhPTk9QVElNSVpFIiwgIjIiKQorICAgICAgICBtb25rZXlwYXRjaC5kZWxlbnYoIlBZVEhP
TkRPTlRXUklURUJZVEVDT0RFIiwgcmFpc2luZz1GYWxzZSkKKyAgICAgICAgYXNzZXJ0IHRlc3Rk
aXIucnVucHl0ZXN0X3N1YnByb2Nlc3ModG1wKS5yZXQgPT0gMAorICAgICAgICB0YWdnZWQgPSAi
dGVzdF9weWNfdnNfcHlvLiIgKyBQWVRFU1RfVEFHCisgICAgICAgIGFzc2VydCB0YWdnZWQgKyAi
LnB5byIgaW4gb3MubGlzdGRpcigiX19weWNhY2hlX18iKQorICAgICAgICBtb25rZXlwYXRjaC51
bmRvKCkKKyAgICAgICAgbW9ua2V5cGF0Y2guZGVsZW52KCJQWVRIT05ET05UV1JJVEVCWVRFQ09E
RSIsIHJhaXNpbmc9RmFsc2UpCisgICAgICAgIGFzc2VydCB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJw
cm9jZXNzKHRtcCkucmV0ID09IDEKKyAgICAgICAgYXNzZXJ0IHRhZ2dlZCArICIucHljIiBpbiBv
cy5saXN0ZGlyKCJfX3B5Y2FjaGVfXyIpCisKKyAgICBkZWYgdGVzdF9wYWNrYWdlKHNlbGYsIHRl
c3RkaXIpOgorICAgICAgICBwa2cgPSB0ZXN0ZGlyLnRtcGRpci5qb2luKCJwa2ciKQorICAgICAg
ICBwa2cubWtkaXIoKQorICAgICAgICBwa2cuam9pbigiX19pbml0X18ucHkiKS5lbnN1cmUoKQor
ICAgICAgICBwa2cuam9pbigidGVzdF9ibGFoLnB5Iikud3JpdGUoIiIiCitkZWYgdGVzdF9yZXdy
aXR0ZW4oKToKKyAgICBhc3NlcnQgIkBweV9idWlsdGlucyIgaW4gZ2xvYmFscygpIiIiKQorICAg
ICAgICBhc3NlcnQgdGVzdGRpci5ydW5weXRlc3QoKS5yZXQgPT0gMAorCisgICAgZGVmIHRlc3Rf
dHJhbnNsYXRlX25ld2xpbmVzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBjb250ZW50ID0gImRl
ZiB0ZXN0X3Jld3JpdHRlbigpOlxyXG4gYXNzZXJ0ICdAcHlfYnVpbHRpbnMnIGluIGdsb2JhbHMo
KSIKKyAgICAgICAgYiA9IGNvbnRlbnQuZW5jb2RlKCJ1dGYtOCIpCisgICAgICAgIHRlc3RkaXIu
dG1wZGlyLmpvaW4oInRlc3RfbmV3bGluZXMucHkiKS53cml0ZShiLCAid2IiKQorICAgICAgICBh
c3NlcnQgdGVzdGRpci5ydW5weXRlc3QoKS5yZXQgPT0gMAorCisgICAgQHB5dGVzdC5tYXJrLnNr
aXBpZihzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDQpLAorICAgICAgICAgICAgICAgICAgICAgICAg
cmVhc29uPSdwYWNrYWdlcyB3aXRob3V0IF9faW5pdF9fLnB5IG5vdCBzdXBwb3J0ZWQgb24gcHl0
aG9uIDInKQorICAgIGRlZiB0ZXN0X3BhY2thZ2Vfd2l0aG91dF9faW5pdF9fcHkoc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHBrZyA9IHRlc3RkaXIubWtkaXIoJ2FfcGFja2FnZV93aXRob3V0X2lu
aXRfcHknKQorICAgICAgICBwa2cuam9pbignbW9kdWxlLnB5JykuZW5zdXJlKCkKKyAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKCJpbXBvcnQgYV9wYWNrYWdlX3dpdGhvdXRfaW5pdF9weS5tb2R1
bGUiKQorICAgICAgICBhc3NlcnQgdGVzdGRpci5ydW5weXRlc3QoKS5yZXQgPT0gRVhJVF9OT1RF
U1RTQ09MTEVDVEVECisKKyAgICBkZWYgdGVzdF9yZXdyaXRlX3dhcm5pbmcoc2VsZiwgcHl0ZXN0
Y29uZmlnLCBtb25rZXlwYXRjaCk6CisgICAgICAgIGhvb2sgPSBBc3NlcnRpb25SZXdyaXRpbmdI
b29rKHB5dGVzdGNvbmZpZykKKyAgICAgICAgd2FybmluZ3MgPSBbXQorCisgICAgICAgIGRlZiBt
eXdhcm4oY29kZSwgbXNnKToKKyAgICAgICAgICAgIHdhcm5pbmdzLmFwcGVuZCgoY29kZSwgbXNn
KSkKKworICAgICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKGhvb2suY29uZmlnLCAnd2FybicsIG15
d2FybikKKyAgICAgICAgaG9vay5tYXJrX3Jld3JpdGUoJ19weXRlc3QnKQorICAgICAgICBhc3Nl
cnQgJ19weXRlc3QnIGluIHdhcm5pbmdzWzBdWzFdCisKKyAgICBkZWYgdGVzdF9yZXdyaXRlX21v
ZHVsZV9pbXBvcnRlZF9mcm9tX2NvbmZ0ZXN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0
ZGlyLm1ha2Vjb25mdGVzdCgnJycKKyAgICAgICAgICAgIGltcG9ydCB0ZXN0X3Jld3JpdGVfbW9k
dWxlX2ltcG9ydGVkCisgICAgICAgICcnJykKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRl
c3RfcmV3cml0ZV9tb2R1bGVfaW1wb3J0ZWQ9JycnCisgICAgICAgICAgICBkZWYgdGVzdF9yZXdy
aXR0ZW4oKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgIkBweV9idWlsdGlucyIgaW4gZ2xvYmFs
cygpCisgICAgICAgICcnJykKKyAgICAgICAgYXNzZXJ0IHRlc3RkaXIucnVucHl0ZXN0X3N1YnBy
b2Nlc3MoKS5yZXQgPT0gMAorCisgICAgZGVmIHRlc3RfcmVtZW1iZXJfcmV3cml0dGVuX21vZHVs
ZXMoc2VsZiwgcHl0ZXN0Y29uZmlnLCB0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CisgICAgICAgICIi
IgorICAgICAgICBBc3NlcnRpb25SZXdyaXRlSG9vayBzaG91bGQgcmVtZW1iZXIgcmV3cml0dGVu
IG1vZHVsZXMgc28gaXQKKyAgICAgICAgZG9lc24ndCBnaXZlIGZhbHNlIHBvc2l0aXZlcyAoIzIw
MDUpLgorICAgICAgICAiIiIKKyAgICAgICAgbW9ua2V5cGF0Y2guc3lzcGF0aF9wcmVwZW5kKHRl
c3RkaXIudG1wZGlyKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9yZW1lbWJlcl9y
ZXdyaXR0ZW5fbW9kdWxlcz0nJykKKyAgICAgICAgd2FybmluZ3MgPSBbXQorICAgICAgICBob29r
ID0gQXNzZXJ0aW9uUmV3cml0aW5nSG9vayhweXRlc3Rjb25maWcpCisgICAgICAgIG1vbmtleXBh
dGNoLnNldGF0dHIoaG9vay5jb25maWcsICd3YXJuJywgbGFtYmRhIGNvZGUsIG1zZzogd2Fybmlu
Z3MuYXBwZW5kKG1zZykpCisgICAgICAgIGhvb2suZmluZF9tb2R1bGUoJ3Rlc3RfcmVtZW1iZXJf
cmV3cml0dGVuX21vZHVsZXMnKQorICAgICAgICBob29rLmxvYWRfbW9kdWxlKCd0ZXN0X3JlbWVt
YmVyX3Jld3JpdHRlbl9tb2R1bGVzJykKKyAgICAgICAgaG9vay5tYXJrX3Jld3JpdGUoJ3Rlc3Rf
cmVtZW1iZXJfcmV3cml0dGVuX21vZHVsZXMnKQorICAgICAgICBob29rLm1hcmtfcmV3cml0ZSgn
dGVzdF9yZW1lbWJlcl9yZXdyaXR0ZW5fbW9kdWxlcycpCisgICAgICAgIGFzc2VydCB3YXJuaW5n
cyA9PSBbXQorCisgICAgZGVmIHRlc3RfcmV3cml0ZV93YXJuaW5nX3VzaW5nX3B5dGVzdF9wbHVn
aW5zKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoKip7CisgICAg
ICAgICAgICAnY29uZnRlc3QucHknOiAicHl0ZXN0X3BsdWdpbnMgPSBbJ2NvcmUnLCAnZ3VpJywg
J3NjaSddIiwKKyAgICAgICAgICAgICdjb3JlLnB5JzogIiIsCisgICAgICAgICAgICAnZ3VpLnB5
JzogInB5dGVzdF9wbHVnaW5zID0gWydjb3JlJywgJ3NjaSddIiwKKyAgICAgICAgICAgICdzY2ku
cHknOiAicHl0ZXN0X3BsdWdpbnMgPSBbJ2NvcmUnXSIsCisgICAgICAgICAgICAndGVzdF9yZXdy
aXRlX3dhcm5pbmdfcHl0ZXN0X3BsdWdpbnMucHknOiAiZGVmIHRlc3QoKTogcGFzcyIsCisgICAg
ICAgIH0pCisgICAgICAgIHRlc3RkaXIuY2hkaXIoKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKFsnKj0gMSBwYXNzZWQgaW4gKj0qJ10pCisgICAgICAgIGFzc2VydCAncHl0ZXN0LXdhcm5p
bmcgc3VtbWFyeScgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKworICAgIGRlZiB0ZXN0X3Jl
d3JpdGVfd2FybmluZ191c2luZ19weXRlc3RfcGx1Z2luc19lbnZfdmFyKHNlbGYsIHRlc3RkaXIs
IG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCdQWVRFU1RfUExVR0lO
UycsICdwbHVnaW4nKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoKip7CisgICAgICAgICAg
ICAncGx1Z2luLnB5JzogIiIsCisgICAgICAgICAgICAndGVzdF9yZXdyaXRlX3dhcm5pbmdfdXNp
bmdfcHl0ZXN0X3BsdWdpbnNfZW52X3Zhci5weSc6ICIiIgorICAgICAgICAgICAgICAgIGltcG9y
dCBwbHVnaW4KKyAgICAgICAgICAgICAgICBweXRlc3RfcGx1Z2lucyA9IFsncGx1Z2luJ10KKyAg
ICAgICAgICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICAgICAiIiIsCisgICAgICAgIH0pCisgICAgICAgIHRlc3RkaXIuY2hkaXIoKQorICAgICAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCkKKyAgICAgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsnKj0gMSBwYXNzZWQgaW4gKj0qJ10pCisgICAgICAgIGFz
c2VydCAncHl0ZXN0LXdhcm5pbmcgc3VtbWFyeScgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkK
KworICAgIEBweXRlc3QubWFyay5za2lwaWYoc3lzLnZlcnNpb25faW5mb1swXSA+IDIsIHJlYXNv
bj0ncHl0aG9uIDIgb25seScpCisgICAgZGVmIHRlc3RfcmV3cml0ZV9mdXR1cmVfaW1wb3J0cyhz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiVGVzdCB0aGF0IHJld3JpdHRlbiBtb2R1bGVzIGRv
bid0IGluaGVyaXQgdGhlIF9fZnV0dXJlX18gZmxhZ3MKKyAgICAgICAgZnJvbSB0aGUgYXNzZXJ0
cmV3cml0ZSBtb2R1bGUuCisKKyAgICAgICAgYXNzZXJ0aW9uLnJld3JpdGUgaW1wb3J0cyBfX2Z1
dHVyZV9fLmRpdmlzaW9uIChhbmQgb3RoZXJzKSwgc28KKyAgICAgICAgZW5zdXJlIHJld3JpdHRl
biBtb2R1bGVzIGRvbid0IGluaGVyaXQgdGhvc2UgZmxhZ3MuCisKKyAgICAgICAgVGhlIHRlc3Qg
YmVsb3cgd2lsbCBmYWlsIGlmIF9fZnV0dXJlX18uZGl2aXNpb24gaXMgZW5hYmxlZAorICAgICAg
ICAiIiIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCcnJworICAgICAgICAgICAgZGVmIHRl
c3QoKToKKyAgICAgICAgICAgICAgICB4ID0gMSAvIDIKKyAgICAgICAgICAgICAgICBhc3NlcnQg
dHlwZSh4KSBpcyBpbnQKKyAgICAgICAgJycnKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKworCitjbGFzcyBUZXN0
QXNzZXJ0aW9uUmV3cml0ZUhvb2tEZXRhaWxzKG9iamVjdCk6CisgICAgZGVmIHRlc3RfbG9hZGVy
X2lzX3BhY2thZ2VfZmFsc2VfZm9yX21vZHVsZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKHRlc3RfZnVuPSIiIgorICAgICAgICAgICAgZGVmIHRlc3RfbG9hZGVy
KCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IG5vdCBfX2xvYWRlcl9fLmlzX3BhY2thZ2UoX19u
YW1lX18pCisgICAgICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAg
ICIqIDEgcGFzc2VkKiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9sb2FkZXJfaXNfcGFj
a2FnZV90cnVlX2Zvcl9wYWNrYWdlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUodGVzdF9mdW49IiIiCisgICAgICAgICAgICBkZWYgdGVzdF9sb2FkZXIoKToKKyAg
ICAgICAgICAgICAgICBhc3NlcnQgbm90IF9fbG9hZGVyX18uaXNfcGFja2FnZShfX25hbWVfXykK
KworICAgICAgICAgICAgZGVmIHRlc3RfZnVuKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IF9f
bG9hZGVyX18uaXNfcGFja2FnZSgnZnVuJykKKworICAgICAgICAgICAgZGVmIHRlc3RfbWlzc2lu
ZygpOgorICAgICAgICAgICAgICAgIGFzc2VydCBub3QgX19sb2FkZXJfXy5pc19wYWNrYWdlKCdw
eXRlc3Rfbm90X3RoZXJlJykKKyAgICAgICAgICAgICIiIikKKyAgICAgICAgdGVzdGRpci5ta3B5
ZGlyKCdmdW4nKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAnKiAzIHBhc3NlZCon
LAorICAgICAgICBdKQorCisgICAgQHB5dGVzdC5tYXJrLnNraXBpZigic3lzLnZlcnNpb25faW5m
b1swXSA+PSAzIikKKyAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoImhhc2F0dHIoc3lzLCAncHlweV90
cmFuc2xhdGlvbl9pbmZvJykiKQorICAgIGRlZiB0ZXN0X2Fzc3VtZV9hc2NpaShzZWxmLCB0ZXN0
ZGlyKToKKyAgICAgICAgY29udGVudCA9ICJ1J1x4ZTJceDk5XHhhNVx4MDFceGZlJyIKKyAgICAg
ICAgdGVzdGRpci50bXBkaXIuam9pbigidGVzdF9lbmNvZGluZy5weSIpLndyaXRlKGNvbnRlbnQs
ICJ3YiIpCisgICAgICAgIHJlcyA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNzZXJ0
IHJlcy5yZXQgIT0gMAorICAgICAgICBhc3NlcnQgIlN5bnRheEVycm9yOiBOb24tQVNDSUkgY2hh
cmFjdGVyIiBpbiByZXMuc3Rkb3V0LnN0cigpCisKKyAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKCJz
eXMudmVyc2lvbl9pbmZvWzBdID49IDMiKQorICAgIGRlZiB0ZXN0X2RldGVjdF9jb2RpbmdfY29v
a2llKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9jb29r
aWU9IiIiCisgICAgICAgICAgICAjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorICAgICAgICAgICAg
dSJTdFx4YzNceGE0ZCIKKyAgICAgICAgICAgIGRlZiB0ZXN0X3Jld3JpdHRlbigpOgorICAgICAg
ICAgICAgICAgIGFzc2VydCAiQHB5X2J1aWx0aW5zIiBpbiBnbG9iYWxzKCkiIiIpCisgICAgICAg
IGFzc2VydCB0ZXN0ZGlyLnJ1bnB5dGVzdCgpLnJldCA9PSAwCisKKyAgICBAcHl0ZXN0Lm1hcmsu
c2tpcGlmKCJzeXMudmVyc2lvbl9pbmZvWzBdID49IDMiKQorICAgIGRlZiB0ZXN0X2RldGVjdF9j
b2RpbmdfY29va2llX3NlY29uZF9saW5lKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUodGVzdF9jb29raWU9IiIiCisgICAgICAgICAgICAjIC0qLSBjb2Rpbmc6IHV0
Zi04IC0qLQorICAgICAgICAgICAgdSJTdFx4YzNceGE0ZCIKKyAgICAgICAgICAgIGRlZiB0ZXN0
X3Jld3JpdHRlbigpOgorICAgICAgICAgICAgICAgIGFzc2VydCAiQHB5X2J1aWx0aW5zIiBpbiBn
bG9iYWxzKCkiIiIpCisgICAgICAgIGFzc2VydCB0ZXN0ZGlyLnJ1bnB5dGVzdCgpLnJldCA9PSAw
CisKKyAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKCJzeXMudmVyc2lvbl9pbmZvWzBdID49IDMiKQor
ICAgIGRlZiB0ZXN0X2RldGVjdF9jb2RpbmdfY29va2llX2NybGYoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0X2Nvb2tpZT0iIiIKKyAgICAgICAgICAgICMg
LSotIGNvZGluZzogdXRmLTggLSotCisgICAgICAgICAgICB1IlN0XHhjM1x4YTRkIgorICAgICAg
ICAgICAgZGVmIHRlc3RfcmV3cml0dGVuKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0ICJAcHlf
YnVpbHRpbnMiIGluIGdsb2JhbHMoKSIiIikKKyAgICAgICAgYXNzZXJ0IHRlc3RkaXIucnVucHl0
ZXN0KCkucmV0ID09IDAKKworICAgIGRlZiB0ZXN0X3N5c19tZXRhX3BhdGhfbXVuZ2VkKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBk
ZWYgdGVzdF9tZXRhX3BhdGgoKToKKyAgICAgICAgICAgICAgICBpbXBvcnQgc3lzOyBzeXMubWV0
YV9wYXRoID0gW10iIiIpCisgICAgICAgIGFzc2VydCB0ZXN0ZGlyLnJ1bnB5dGVzdCgpLnJldCA9
PSAwCisKKyAgICBkZWYgdGVzdF93cml0ZV9weWMoc2VsZiwgdGVzdGRpciwgdG1wZGlyLCBtb25r
ZXlwYXRjaCk6CisgICAgICAgIGZyb20gX3B5dGVzdC5hc3NlcnRpb24ucmV3cml0ZSBpbXBvcnQg
X3dyaXRlX3B5YworICAgICAgICBmcm9tIF9weXRlc3QuYXNzZXJ0aW9uIGltcG9ydCBBc3NlcnRp
b25TdGF0ZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBpbXBvcnQgX19idWlsdGluX18gYXMg
YgorICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAgICAgICBpbXBvcnQgYnVpbHRp
bnMgYXMgYgorICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlnKFtdKQorICAgICAg
ICBzdGF0ZSA9IEFzc2VydGlvblN0YXRlKGNvbmZpZywgInJld3JpdGUiKQorICAgICAgICBzb3Vy
Y2VfcGF0aCA9IHRtcGRpci5lbnN1cmUoInNvdXJjZS5weSIpCisgICAgICAgIHB5Y3BhdGggPSB0
bXBkaXIuam9pbigicHljIikuc3RycGF0aAorICAgICAgICBhc3NlcnQgX3dyaXRlX3B5YyhzdGF0
ZSwgWzFdLCBzb3VyY2VfcGF0aC5zdGF0KCksIHB5Y3BhdGgpCisKKyAgICAgICAgZGVmIG9wZW4o
KmFyZ3MpOgorICAgICAgICAgICAgZSA9IElPRXJyb3IoKQorICAgICAgICAgICAgZS5lcnJubyA9
IDEwCisgICAgICAgICAgICByYWlzZSBlCisKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihi
LCAib3BlbiIsIG9wZW4pCisgICAgICAgIGFzc2VydCBub3QgX3dyaXRlX3B5YyhzdGF0ZSwgWzFd
LCBzb3VyY2VfcGF0aC5zdGF0KCksIHB5Y3BhdGgpCisKKyAgICBkZWYgdGVzdF9yZXNvdXJjZXNf
cHJvdmlkZXJfZm9yX2xvYWRlcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiCisgICAgICAg
IEF0dGVtcHRzIHRvIGxvYWQgcmVzb3VyY2VzIGZyb20gYSBwYWNrYWdlIHNob3VsZCBzdWNjZWVk
IG5vcm1hbGx5LAorICAgICAgICBldmVuIHdoZW4gdGhlIEFzc2VydGlvblJld3JpdGVIb29rIGlz
IHVzZWQgdG8gbG9hZCB0aGUgbW9kdWxlcy4KKworICAgICAgICBTZWUgIzM2NiBmb3IgZGV0YWls
cy4KKyAgICAgICAgIiIiCisgICAgICAgIHB5dGVzdC5pbXBvcnRvcnNraXAoInBrZ19yZXNvdXJj
ZXMiKQorCisgICAgICAgIHRlc3RkaXIubWtweWRpcigndGVzdHBrZycpCisgICAgICAgIGNvbnRl
bnRzID0geworICAgICAgICAgICAgJ3Rlc3Rwa2cvdGVzdF9wa2cnOiAiIiIKKyAgICAgICAgICAg
ICAgICBpbXBvcnQgcGtnX3Jlc291cmNlcworCisgICAgICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAorICAgICAgICAgICAgICAgIGZyb20gX3B5dGVzdC5hc3NlcnRpb24ucmV3cml0ZSBpbXBvcnQg
QXNzZXJ0aW9uUmV3cml0aW5nSG9vaworCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfbG9hZF9y
ZXNvdXJjZSgpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShfX2xvYWRl
cl9fLCBBc3NlcnRpb25SZXdyaXRpbmdIb29rKQorICAgICAgICAgICAgICAgICAgICByZXMgPSBw
a2dfcmVzb3VyY2VzLnJlc291cmNlX3N0cmluZyhfX25hbWVfXywgJ3Jlc291cmNlLnR4dCcpCisg
ICAgICAgICAgICAgICAgICAgIHJlcyA9IHJlcy5kZWNvZGUoJ2FzY2lpJykKKyAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0IHJlcyA9PSAnTG9hZCBtZSBwbGVhc2UuJworICAgICAgICAgICAgICAg
ICIiIiwKKyAgICAgICAgfQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoKipjb250ZW50cykK
KyAgICAgICAgdGVzdGRpci5tYWtldHh0ZmlsZSgqKnsndGVzdHBrZy9yZXNvdXJjZSc6ICJMb2Fk
IG1lIHBsZWFzZS4ifSkKKworICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJw
cm9jZXNzKCkKKyAgICAgICAgcmVzdWx0LmFzc2VydF9vdXRjb21lcyhwYXNzZWQ9MSkKKworICAg
IGRlZiB0ZXN0X3JlYWRfcHljKHNlbGYsIHRtcGRpcik6CisgICAgICAgICIiIgorICAgICAgICBF
bnN1cmUgdGhhdCB0aGUgYF9yZWFkX3B5Y2AgY2FuIHByb3Blcmx5IGRlYWwgd2l0aCBjb3JydXB0
ZWQgcHljIGZpbGVzLgorICAgICAgICBJbiB0aG9zZSBjaXJjdW1zdGFuY2VzIGl0IHNob3VsZCBq
dXN0IGdpdmUgdXAgaW5zdGVhZCBvZiBnZW5lcmF0aW5nCisgICAgICAgIGFuIGV4Y2VwdGlvbiB0
aGF0IGlzIHByb3BhZ2F0ZWQgdG8gdGhlIGNhbGxlci4KKyAgICAgICAgIiIiCisgICAgICAgIGlt
cG9ydCBweV9jb21waWxlCisgICAgICAgIGZyb20gX3B5dGVzdC5hc3NlcnRpb24ucmV3cml0ZSBp
bXBvcnQgX3JlYWRfcHljCisKKyAgICAgICAgc291cmNlID0gdG1wZGlyLmpvaW4oJ3NvdXJjZS5w
eScpCisgICAgICAgIHB5YyA9IHNvdXJjZSArICdjJworCisgICAgICAgIHNvdXJjZS53cml0ZSgn
ZGVmIHRlc3QoKTogcGFzcycpCisgICAgICAgIHB5X2NvbXBpbGUuY29tcGlsZShzdHIoc291cmNl
KSwgc3RyKHB5YykpCisKKyAgICAgICAgY29udGVudHMgPSBweWMucmVhZChtb2RlPSdyYicpCisg
ICAgICAgIHN0cmlwX2J5dGVzID0gMjAgICMgaGVhZGVyIGlzIGFyb3VuZCA4IGJ5dGVzLCBzdHJp
cCBhIGxpdHRsZSBtb3JlCisgICAgICAgIGFzc2VydCBsZW4oY29udGVudHMpID4gc3RyaXBfYnl0
ZXMKKyAgICAgICAgcHljLndyaXRlKGNvbnRlbnRzWzpzdHJpcF9ieXRlc10sIG1vZGU9J3diJykK
KworICAgICAgICBhc3NlcnQgX3JlYWRfcHljKHNvdXJjZSwgc3RyKHB5YykpIGlzIE5vbmUgICMg
bm8gZXJyb3IKKworICAgIGRlZiB0ZXN0X3JlbG9hZF9pc19zYW1lKHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICAjIEEgZmlsZSB0aGF0IHdpbGwgYmUgcGlja2VkIHVwIGR1cmluZyBjb2xsZWN0aW5n
LgorICAgICAgICB0ZXN0ZGlyLnRtcGRpci5qb2luKCJmaWxlLnB5IikuZW5zdXJlKCkKKyAgICAg
ICAgdGVzdGRpci50bXBkaXIuam9pbigicHl0ZXN0LmluaSIpLndyaXRlKHB5LnN0ZC50ZXh0d3Jh
cC5kZWRlbnQoIiIiCisgICAgICAgICAgICBbcHl0ZXN0XQorICAgICAgICAgICAgcHl0aG9uX2Zp
bGVzID0gKi5weQorICAgICAgICAiIiIpKQorCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh0
ZXN0X2Z1bj0iIiIKKyAgICAgICAgICAgIGltcG9ydCBzeXMKKyAgICAgICAgICAgIHRyeToKKyAg
ICAgICAgICAgICAgICBmcm9tIGltcCBpbXBvcnQgcmVsb2FkCisgICAgICAgICAgICBleGNlcHQg
SW1wb3J0RXJyb3I6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgICAgICBkZWYgdGVz
dF9sb2FkZXIoKToKKyAgICAgICAgICAgICAgICBpbXBvcnQgZmlsZQorICAgICAgICAgICAgICAg
IGFzc2VydCBzeXMubW9kdWxlc1siZmlsZSJdIGlzIHJlbG9hZChmaWxlKQorICAgICAgICAgICAg
IiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLXMnKQorICAgICAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIiogMSBwYXNzZWQqIiwK
KyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2dldF9kYXRhX3N1cHBvcnQoc2VsZiwgdGVzdGRp
cik6CisgICAgICAgICIiIkltcGxlbWVudCBvcHRpb25hbCBQRVAzMDIgYXBpICgjODA4KS4KKyAg
ICAgICAgIiIiCisgICAgICAgIHBhdGggPSB0ZXN0ZGlyLm1rcHlkaXIoImZvbyIpCisgICAgICAg
IHBhdGguam9pbigidGVzdF9mb28ucHkiKS53cml0ZShfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiIiIK
KyAgICAgICAgICAgIGNsYXNzIFRlc3Qob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVz
dF9mb28oc2VsZik6CisgICAgICAgICAgICAgICAgICAgIGltcG9ydCBwa2d1dGlsCisgICAgICAg
ICAgICAgICAgICAgIGRhdGEgPSBwa2d1dGlsLmdldF9kYXRhKCdmb28udGVzdF9mb28nLCAnZGF0
YS50eHQnKQorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgZGF0YSA9PSBiJ0hleScKKyAgICAg
ICAgIiIiKSkKKyAgICAgICAgcGF0aC5qb2luKCdkYXRhLnR4dCcpLndyaXRlKCdIZXknKQorICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcygnKjEgcGFzc2VkKicpCisKKworZGVmIHRlc3RfaXNzdWU3MzEodGVzdGRp
cik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgIGNsYXNzIExvbmdSZXByV2l0aEJy
YWNlcyhvYmplY3QpOgorICAgICAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgICAgIHJl
dHVybiAnTG9uZ1JlcHJXaXRoQnJhY2VzKHsnICsgKCdhJyAqIDgwKSArICd9JyArICgnYScgKiAx
MjApICsgJyknCisKKyAgICAgICAgZGVmIHNvbWVfbWV0aG9kKHNlbGYpOgorICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCisKKyAgICBkZWYgdGVzdF9sb25nX3JlcHIoKToKKyAgICAgICAgb2JqID0g
TG9uZ1JlcHJXaXRoQnJhY2VzKCkKKyAgICAgICAgYXNzZXJ0IG9iai5zb21lX21ldGhvZCgpCisg
ICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICBhc3NlcnQgJ3Vu
YmFsYW5jZWQgYnJhY2VzJyBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorCisKK2NsYXNzIFRl
c3RJc3N1ZTkyNShvYmplY3QpOgorICAgIGRlZiB0ZXN0X3NpbXBsZV9jYXNlKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGRlZiB0ZXN0X3Rl
cm5hcnlfZGlzcGxheSgpOgorICAgICAgICAgICAgYXNzZXJ0IChGYWxzZSA9PSBGYWxzZSkgPT0g
RmFsc2UKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgp
CisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygnKkUqYXNzZXJ0IChGYWxzZSA9
PSBGYWxzZSkgPT0gRmFsc2UnKQorCisgICAgZGVmIHRlc3RfbG9uZ19jYXNlKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGRlZiB0ZXN0X3Rl
cm5hcnlfZGlzcGxheSgpOgorICAgICAgICAgICAgIGFzc2VydCBGYWxzZSA9PSAoRmFsc2UgPT0g
VHJ1ZSkgPT0gVHJ1ZQorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCcqRSphc3NlcnQg
KEZhbHNlID09IFRydWUpID09IFRydWUnKQorCisgICAgZGVmIHRlc3RfbWFueV9icmFja2V0cyhz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAg
ICAgZGVmIHRlc3RfdGVybmFyeV9kaXNwbGF5KCk6CisgICAgICAgICAgICAgICAgIGFzc2VydCBU
cnVlID09ICgoRmFsc2UgPT0gVHJ1ZSkgPT0gVHJ1ZSkKKyAgICAgICAgICAgICIiIikKKyAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoJypFKmFzc2VydCBUcnVlID09ICgoRmFsc2UgPT0gVHJ1ZSkgPT0gVHJ1ZSkn
KQorCisKK2NsYXNzIFRlc3RJc3N1ZTIxMjEoKToKKyAgICBkZWYgdGVzdF9zaW1wbGUoc2VsZiwg
dGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIudG1wZGlyLmpvaW4oInRlc3RzL2ZpbGUucHkiKS5l
bnN1cmUoKS53cml0ZSgiIiIKK2RlZiB0ZXN0X3NpbXBsZV9mYWlsdXJlKCk6CisgICAgYXNzZXJ0
IDEgKyAxID09IDMKKyIiIikKKyAgICAgICAgdGVzdGRpci50bXBkaXIuam9pbigicHl0ZXN0Lmlu
aSIpLndyaXRlKHB5LnN0ZC50ZXh0d3JhcC5kZWRlbnQoIiIiCisgICAgICAgICAgICBbcHl0ZXN0
XQorICAgICAgICAgICAgcHl0aG9uX2ZpbGVzID0gdGVzdHMvKioucHkKKyAgICAgICAgIiIiKSkK
KworICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcygnKkUqYXNzZXJ0ICgxICsgMSkgPT0gMycpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfY2FjaGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L3Rlc3RfY2FjaGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTM3MTcwY2RkMmIxNmFiYmY4NmYyYTUyNzcyYmUx
MjlhZDNmZjhkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9j
YWNoZS5weQpAQCAtMCwwICsxLDYwNSBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0
ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgoraW1wb3J0IHN5cworaW1wb3J0IHB5
CitpbXBvcnQgX3B5dGVzdAoraW1wb3J0IHB5dGVzdAoraW1wb3J0IG9zCitpbXBvcnQgc2h1dGls
CisKK3B5dGVzdF9wbHVnaW5zID0gInB5dGVzdGVyIiwKKworCitjbGFzcyBUZXN0TmV3QVBJKG9i
amVjdCk6CisgICAgZGVmIHRlc3RfY29uZmlnX2NhY2hlX21ha2VkaXIoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHRlc3RkaXIubWFrZWluaSgiW3B5dGVzdF0iKQorICAgICAgICBjb25maWcgPSB0
ZXN0ZGlyLnBhcnNlY29uZmlndXJlKCkKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVl
RXJyb3IpOgorICAgICAgICAgICAgY29uZmlnLmNhY2hlLm1ha2VkaXIoImtleS9uYW1lIikKKwor
ICAgICAgICBwID0gY29uZmlnLmNhY2hlLm1ha2VkaXIoIm5hbWUiKQorICAgICAgICBhc3NlcnQg
cC5jaGVjaygpCisKKyAgICBkZWYgdGVzdF9jb25maWdfY2FjaGVfZGF0YWVycm9yKHNlbGYsIHRl
c3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VpbmkoIltweXRlc3RdIikKKyAgICAgICAgY29u
ZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZ3VyZSgpCisgICAgICAgIGNhY2hlID0gY29uZmlnLmNh
Y2hlCisgICAgICAgIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yLCBsYW1iZGE6IGNhY2hlLnNldCgi
a2V5L25hbWUiLCBjYWNoZSkpCisgICAgICAgIGNvbmZpZy5jYWNoZS5zZXQoImtleS9uYW1lIiwg
MCkKKyAgICAgICAgY29uZmlnLmNhY2hlLl9nZXR2YWx1ZXBhdGgoImtleS9uYW1lIikud3JpdGUo
IjEyM2ludmFsaWQiKQorICAgICAgICB2YWwgPSBjb25maWcuY2FjaGUuZ2V0KCJrZXkvbmFtZSIs
IC0yKQorICAgICAgICBhc3NlcnQgdmFsID09IC0yCisKKyAgICBkZWYgdGVzdF9jYWNoZV93cml0
ZWZhaWxfY2FjaGZpbGVfc2lsZW50KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1h
a2VpbmkoIltweXRlc3RdIikKKyAgICAgICAgdGVzdGRpci50bXBkaXIuam9pbignLmNhY2hlJyku
d3JpdGUoJ2dvbmUgd3JvbmcnKQorICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmln
dXJlKCkKKyAgICAgICAgY2FjaGUgPSBjb25maWcuY2FjaGUKKyAgICAgICAgY2FjaGUuc2V0KCd0
ZXN0L2Jyb2tlbicsIFtdKQorCisgICAgQHB5dGVzdC5tYXJrLnNraXBpZihzeXMucGxhdGZvcm0u
c3RhcnRzd2l0aCgnd2luJyksIHJlYXNvbj0nbm8gY2htb2Qgb24gd2luZG93cycpCisgICAgZGVm
IHRlc3RfY2FjaGVfd3JpdGVmYWlsX3Blcm1pc3Npb25zKHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICB0ZXN0ZGlyLm1ha2VpbmkoIltweXRlc3RdIikKKyAgICAgICAgdGVzdGRpci50bXBkaXIuZW5z
dXJlX2RpcignLmNhY2hlJykuY2htb2QoMCkKKyAgICAgICAgY29uZmlnID0gdGVzdGRpci5wYXJz
ZWNvbmZpZ3VyZSgpCisgICAgICAgIGNhY2hlID0gY29uZmlnLmNhY2hlCisgICAgICAgIGNhY2hl
LnNldCgndGVzdC9icm9rZW4nLCBbXSkKKworICAgIEBweXRlc3QubWFyay5za2lwaWYoc3lzLnBs
YXRmb3JtLnN0YXJ0c3dpdGgoJ3dpbicpLCByZWFzb249J25vIGNobW9kIG9uIHdpbmRvd3MnKQor
ICAgIGRlZiB0ZXN0X2NhY2hlX2ZhaWx1cmVfd2FybnMoc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHRlc3RkaXIudG1wZGlyLmVuc3VyZV9kaXIoJy5jYWNoZScpLmNobW9kKDApCisgICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Vycm9yKCk6CisgICAg
ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uCisKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLXJ3JykKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQg
PT0gMQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAg
Iipjb3VsZCBub3QgY3JlYXRlIGNhY2hlIHBhdGgqIiwKKyAgICAgICAgICAgICIqMSB3YXJuaW5n
cyoiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfY29uZmlnX2NhY2hlKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGRlZiBw
eXRlc3RfY29uZmlndXJlKGNvbmZpZyk6CisgICAgICAgICAgICAgICAgIyBzZWUgdGhhdCB3ZSBn
ZXQgY2FjaGUgaW5mb3JtYXRpb24gZWFybHkgb24KKyAgICAgICAgICAgICAgICBhc3NlcnQgaGFz
YXR0cihjb25maWcsICJjYWNoZSIpCisgICAgICAgICIiIikKKyAgICAgICAgdGVzdGRpci5tYWtl
cHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3Rfc2Vzc2lvbihweXRlc3Rjb25maWcpOgor
ICAgICAgICAgICAgICAgIGFzc2VydCBoYXNhdHRyKHB5dGVzdGNvbmZpZywgImNhY2hlIikKKyAg
ICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAg
IGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKFsiKjEgcGFzc2VkKiJdKQorCisgICAgZGVmIHRlc3RfY2FjaGVmdW5jYXJnKHNlbGYsIHRl
c3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBv
cnQgcHl0ZXN0CisgICAgICAgICAgICBkZWYgdGVzdF9jYWNoZWZ1bmNhcmcoY2FjaGUpOgorICAg
ICAgICAgICAgICAgIHZhbCA9IGNhY2hlLmdldCgic29tZS90aGluZyIsIE5vbmUpCisgICAgICAg
ICAgICAgICAgYXNzZXJ0IHZhbCBpcyBOb25lCisgICAgICAgICAgICAgICAgY2FjaGUuc2V0KCJz
b21lL3RoaW5nIiwgWzFdKQorICAgICAgICAgICAgICAgIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9y
LCBsYW1iZGE6IGNhY2hlLmdldCgic29tZS90aGluZyIpKQorICAgICAgICAgICAgICAgIHZhbCA9
IGNhY2hlLmdldCgic29tZS90aGluZyIsIFtdKQorICAgICAgICAgICAgICAgIGFzc2VydCB2YWwg
PT0gWzFdCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
KQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcyhbIioxIHBhc3NlZCoiXSkKKworICAgIGRlZiB0ZXN0X2N1c3RvbV9yZWxf
Y2FjaGVfZGlyKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICByZWxfY2FjaGVfZGlyID0gb3MucGF0
aC5qb2luKCdjdXN0b21fY2FjaGVfZGlyJywgJ3N1YmRpcicpCisgICAgICAgIHRlc3RkaXIubWFr
ZWluaSgiIiIKKyAgICAgICAgICAgIFtweXRlc3RdCisgICAgICAgICAgICBjYWNoZV9kaXIgPSB7
Y2FjaGVfZGlyfQorICAgICAgICAiIiIuZm9ybWF0KGNhY2hlX2Rpcj1yZWxfY2FjaGVfZGlyKSkK
KyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRlc3RfZXJyb3JlZD0nZGVmIHRlc3RfZXJyb3Io
KTpcbiAgICBhc3NlcnQgRmFsc2UnKQorICAgICAgICB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAg
ICAgIGFzc2VydCB0ZXN0ZGlyLnRtcGRpci5qb2luKHJlbF9jYWNoZV9kaXIpLmlzZGlyKCkKKwor
ICAgIGRlZiB0ZXN0X2N1c3RvbV9hYnNfY2FjaGVfZGlyKHNlbGYsIHRlc3RkaXIsIHRtcGRpcl9m
YWN0b3J5KToKKyAgICAgICAgdG1wID0gc3RyKHRtcGRpcl9mYWN0b3J5Lm1rdGVtcCgndG1wJykp
CisgICAgICAgIGFic19jYWNoZV9kaXIgPSBvcy5wYXRoLmpvaW4odG1wLCAnY3VzdG9tX2NhY2hl
X2RpcicpCisgICAgICAgIHRlc3RkaXIubWFrZWluaSgiIiIKKyAgICAgICAgICAgIFtweXRlc3Rd
CisgICAgICAgICAgICBjYWNoZV9kaXIgPSB7Y2FjaGVfZGlyfQorICAgICAgICAiIiIuZm9ybWF0
KGNhY2hlX2Rpcj1hYnNfY2FjaGVfZGlyKSkKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRl
c3RfZXJyb3JlZD0nZGVmIHRlc3RfZXJyb3IoKTpcbiAgICBhc3NlcnQgRmFsc2UnKQorICAgICAg
ICB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIGFzc2VydCBweS5wYXRoLmxvY2FsKGFic19j
YWNoZV9kaXIpLmlzZGlyKCkKKworICAgIGRlZiB0ZXN0X2N1c3RvbV9jYWNoZV9kaXJfd2l0aF9l
bnZfdmFyKHNlbGYsIHRlc3RkaXIsIG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9ua2V5cGF0Y2gu
c2V0ZW52KCdlbnZfdmFyJywgJ2N1c3RvbV9jYWNoZV9kaXInKQorICAgICAgICB0ZXN0ZGlyLm1h
a2VpbmkoIiIiCisgICAgICAgICAgICBbcHl0ZXN0XQorICAgICAgICAgICAgY2FjaGVfZGlyID0g
e2NhY2hlX2Rpcn0KKyAgICAgICAgIiIiLmZvcm1hdChjYWNoZV9kaXI9JyRlbnZfdmFyJykpCisg
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0X2Vycm9yZWQ9J2RlZiB0ZXN0X2Vycm9yKCk6
XG4gICAgYXNzZXJ0IEZhbHNlJykKKyAgICAgICAgdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAg
ICBhc3NlcnQgdGVzdGRpci50bXBkaXIuam9pbignY3VzdG9tX2NhY2hlX2RpcicpLmlzZGlyKCkK
KworCitkZWYgdGVzdF9jYWNoZV9yZXBvcnRoZWFkZXIodGVzdGRpcik6CisgICAgdGVzdGRpci5t
YWtlcHlmaWxlKCIiIgorICAgICAgICBkZWYgdGVzdF9oZWxsbygpOgorICAgICAgICAgICAgcGFz
cworICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXYiKQorICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICJjYWNoZWRpcjogLmNhY2hlIgor
ICAgIF0pCisKKworZGVmIHRlc3RfY2FjaGVfc2hvdyh0ZXN0ZGlyKToKKyAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1jYWNoZS1zaG93IikKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9
PSAwCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIipjYWNoZSBp
cyBlbXB0eSoiCisgICAgXSkKKyAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAg
ZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKKyAgICAgICAgICAgIGNvbmZpZy5jYWNoZS5z
ZXQoIm15L25hbWUiLCBbMSwyLDNdKQorICAgICAgICAgICAgY29uZmlnLmNhY2hlLnNldCgib3Ro
ZXIvc29tZSIsIHsxOjJ9KQorICAgICAgICAgICAgZHAgPSBjb25maWcuY2FjaGUubWFrZWRpcigi
bXlkYiIpCisgICAgICAgICAgICBkcC5lbnN1cmUoImhlbGxvIikKKyAgICAgICAgICAgIGRwLmVu
c3VyZSgid29ybGQiKQorICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgp
CisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gNSAgIyBubyB0ZXN0cyBleGVjdXRlZAorICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNhY2hlLXNob3ciKQorICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lc19yYW5kb20oWworICAgICAgICAiKmNhY2hlZGlyOioiLAorICAgICAg
ICAiLSpjYWNoZSB2YWx1ZXMqLSIsCisgICAgICAgICIqbXkvbmFtZSBjb250YWluczoiLAorICAg
ICAgICAiICBbMSwgMiwgM10iLAorICAgICAgICAiKm90aGVyL3NvbWUgY29udGFpbnMqIiwKKyAg
ICAgICAgIiAgeyoxKjogMn0iLAorICAgICAgICAiLSpjYWNoZSBkaXJlY3RvcmllcyotIiwKKyAg
ICAgICAgIipteWRiL2hlbGxvKmxlbmd0aCAwKiIsCisgICAgICAgICIqbXlkYi93b3JsZCpsZW5n
dGggMCoiLAorICAgIF0pCisKKworY2xhc3MgVGVzdExhc3RGYWlsZWQob2JqZWN0KToKKworICAg
IGRlZiB0ZXN0X2xhc3RmYWlsZWRfdXNlY2FzZShzZWxmLCB0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6
CisgICAgICAgIG1vbmtleXBhdGNoLnNldGVudigiUFlUSE9ORE9OVFdSSVRFQllURUNPREUiLCAx
KQorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHRl
c3RfMSgpOgorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICAgICBkZWYgdGVzdF8y
KCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgICAgIGRlZiB0ZXN0XzMoKToK
KyAgICAgICAgICAgICAgICBhc3NlcnQgMQorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsKKyAgICAgICAgICAgICIqMiBmYWlsZWQqIiwKKyAgICAgICAgXSkKKyAgICAgICAgcC53cml0
ZShfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEoKToKKyAg
ICAgICAgICAgICAgICBhc3NlcnQgMQorCisgICAgICAgICAgICBkZWYgdGVzdF8yKCk6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0IDEKKworICAgICAgICAgICAgZGVmIHRlc3RfMygpOgorICAgICAg
ICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICIiIikpCisgICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCItLWxmIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsKKyAgICAgICAgICAgICIqMiBwYXNzZWQqMSBkZXNlbCoiLAorICAgICAgICBdKQorICAgICAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1sZiIpCisgICAgICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKjEgZmFpbGVkKjIgcGFzc2VkKiIsCisg
ICAgICAgIF0pCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWxmIiwgIi0t
Y2FjaGUtY2xlYXIiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAg
ICAgICAgICAgIioxIGZhaWxlZCoyIHBhc3NlZCoiLAorICAgICAgICBdKQorCisgICAgICAgICMg
UnVuIHRoaXMgYWdhaW4gdG8gbWFrZSBzdXJlIGNsZWFyLWNhY2hlIGlzIHJvYnVzdAorICAgICAg
ICBpZiBvcy5wYXRoLmlzZGlyKCcuY2FjaGUnKToKKyAgICAgICAgICAgIHNodXRpbC5ybXRyZWUo
Jy5jYWNoZScpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWxmIiwgIi0t
Y2FjaGUtY2xlYXIiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAg
ICAgICAgICAgIioxIGZhaWxlZCoyIHBhc3NlZCoiLAorICAgICAgICBdKQorCisgICAgZGVmIHRl
c3RfZmFpbGVkZmlyc3Rfb3JkZXIoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIudG1w
ZGlyLmpvaW4oJ3Rlc3RfYS5weScpLndyaXRlKF9weXRlc3QuX2NvZGUuU291cmNlKCIiIgorICAg
ICAgICAgICAgZGVmIHRlc3RfYWx3YXlzX3Bhc3NlcygpOgorICAgICAgICAgICAgICAgIGFzc2Vy
dCAxCisgICAgICAgICIiIikpCisgICAgICAgIHRlc3RkaXIudG1wZGlyLmpvaW4oJ3Rlc3RfYi5w
eScpLndyaXRlKF9weXRlc3QuX2NvZGUuU291cmNlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3Rf
YWx3YXlzX2ZhaWxzKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgIiIiKSkK
KyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICAjIFRlc3Qgb3Jk
ZXIgd2lsbCBiZSBjb2xsZWN0aW9uIG9yZGVyOyBhbHBoYWJldGljYWwKKyAgICAgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICJ0ZXN0X2EucHkqIiwKKyAgICAg
ICAgICAgICJ0ZXN0X2IucHkqIiwKKyAgICAgICAgXSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoIi0tZmYiKQorICAgICAgICAjIFRlc3Qgb3JkZXIgd2lsbCBiZSBmYWlsaW5n
IHRlc3RzIGZpcnMKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAg
ICAgICAgICJ0ZXN0X2IucHkqIiwKKyAgICAgICAgICAgICJ0ZXN0X2EucHkqIiwKKyAgICAgICAg
XSkKKworICAgIGRlZiB0ZXN0X2xhc3RmYWlsZWRfZmFpbGVkZmlyc3Rfb3JkZXIoc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgqKnsKKyAgICAgICAgICAgICd0ZXN0
X2EucHknOiAiIiIKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9hbHdheXNfcGFzc2VzKCk6Cisg
ICAgICAgICAgICAgICAgICAgIGFzc2VydCAxCisgICAgICAgICAgICAiIiIsCisgICAgICAgICAg
ICAndGVzdF9iLnB5JzogIiIiCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfYWx3YXlzX2ZhaWxz
KCk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICAgICAiIiIsCisgICAg
ICAgIH0pCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgIyBU
ZXN0IG9yZGVyIHdpbGwgYmUgY29sbGVjdGlvbiBvcmRlcjsgYWxwaGFiZXRpY2FsCisgICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAidGVzdF9hLnB5KiIs
CisgICAgICAgICAgICAidGVzdF9iLnB5KiIsCisgICAgICAgIF0pCisgICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCItLWxmIiwgIi0tZmYiKQorICAgICAgICAjIFRlc3Qgb3JkZXIg
d2lsbCBiZSBmYWlsaW5nIHRlc3RzIGZpcnMKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKFsKKyAgICAgICAgICAgICJ0ZXN0X2IucHkqIiwKKyAgICAgICAgXSkKKyAgICAgICAg
YXNzZXJ0ICd0ZXN0X2EucHknIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKyAgICBkZWYg
dGVzdF9sYXN0ZmFpbGVkX2RpZmZlcmVuY2VfaW52b2NhdGlvbnMoc2VsZiwgdGVzdGRpciwgbW9u
a2V5cGF0Y2gpOgorICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYoIlBZVEhPTkRPTlRXUklURUJZ
VEVDT0RFIiwgMSkKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRlc3RfYT0iIiIKKyAgICAg
ICAgICAgIGRlZiB0ZXN0X2ExKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAg
ICAgIGRlZiB0ZXN0X2EyKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDEKKyAgICAgICAgIiIi
LCB0ZXN0X2I9IiIiCisgICAgICAgICAgICBkZWYgdGVzdF9iMSgpOgorICAgICAgICAgICAgICAg
IGFzc2VydCAwCisgICAgICAgICIiIikKKyAgICAgICAgcCA9IHRlc3RkaXIudG1wZGlyLmpvaW4o
InRlc3RfYS5weSIpCisgICAgICAgIHAyID0gdGVzdGRpci50bXBkaXIuam9pbigidGVzdF9iLnB5
IikKKworICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKjIgZmFpbGVkKiIsCisgICAg
ICAgIF0pCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWxmIiwgcDIpCisg
ICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKjEgZmFp
bGVkKiIsCisgICAgICAgIF0pCisgICAgICAgIHAyLndyaXRlKF9weXRlc3QuX2NvZGUuU291cmNl
KCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfYjEoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQg
MQorICAgICAgICAiIiIpKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1s
ZiIsIHAyKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAg
ICAgIioxIHBhc3NlZCoiLAorICAgICAgICBdKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgiLS1sZiIsIHApCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
CisgICAgICAgICAgICAiKjEgZmFpbGVkKjEgZGVzZWwqIiwKKyAgICAgICAgXSkKKworICAgIGRl
ZiB0ZXN0X2xhc3RmYWlsZWRfdXNlY2FzZV9zcGxpY2Uoc2VsZiwgdGVzdGRpciwgbW9ua2V5cGF0
Y2gpOgorICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYoIlBZVEhPTkRPTlRXUklURUJZVEVDT0RF
IiwgMSkKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHRl
c3RfMSgpOgorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICIiIikKKyAgICAgICAg
cDIgPSB0ZXN0ZGlyLnRtcGRpci5qb2luKCJ0ZXN0X3NvbWV0aGluZy5weSIpCisgICAgICAgIHAy
LndyaXRlKF9weXRlc3QuX2NvZGUuU291cmNlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfMigp
OgorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICIiIikpCisgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKFsKKyAgICAgICAgICAgICIqMiBmYWlsZWQqIiwKKyAgICAgICAgXSkKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tbGYiLCBwMikKKyAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqMSBmYWlsZWQqIiwKKyAgICAgICAgXSkK
KyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tbGYiKQorICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIioyIGZhaWxlZCoiLAorICAg
ICAgICBdKQorCisgICAgZGVmIHRlc3RfbGFzdGZhaWxlZF94cGFzcyhzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgdGVzdGRpci5pbmxpbmVfcnVuc291cmNlKCIiIgorICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnhmYWlsCisgICAgICAgICAgICBkZWYg
dGVzdF9oZWxsbygpOgorICAgICAgICAgICAgICAgIGFzc2VydCAxCisgICAgICAgICIiIikKKyAg
ICAgICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZ3VyZSgpCisgICAgICAgIGxhc3RmYWls
ZWQgPSBjb25maWcuY2FjaGUuZ2V0KCJjYWNoZS9sYXN0ZmFpbGVkIiwgLTEpCisgICAgICAgIGFz
c2VydCBsYXN0ZmFpbGVkID09IC0xCisKKyAgICBkZWYgdGVzdF9ub25fc2VyaWFsaXphYmxlX3Bh
cmFtZXRyaXplKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiJUZXN0IHRoYXQgZmFpbGVkIHBh
cmFtZXRyaXplZCB0ZXN0cyB3aXRoIHVubWFyc2hhYmxlIHBhcmFtZXRlcnMKKyAgICAgICAgZG9u
J3QgYnJlYWsgcHl0ZXN0LWNhY2hlLgorICAgICAgICAiIiIKKyAgICAgICAgdGVzdGRpci5tYWtl
cHlmaWxlKHIiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd2YWwnLCBbCisgICAgICAgICAgICAgICAgYidceGFjXHgx
MFx4MDJHJywKKyAgICAgICAgICAgIF0pCisgICAgICAgICAgICBkZWYgdGVzdF9mYWlsKHZhbCk6
CisgICAgICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCisgICAgICAgICIiIikKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoJyoxIGZhaWxlZCBpbionKQorCisgICAgZGVmIHRlc3RfdGVybWluYWxfcmVwb3J0X2xh
c3RmYWlsZWQoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RfYSA9IHRlc3RkaXIubWFrZXB5
ZmlsZSh0ZXN0X2E9IiIiCisgICAgICAgICAgICBkZWYgdGVzdF9hMSgpOgorICAgICAgICAgICAg
ICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiB0ZXN0X2EyKCk6CisgICAgICAgICAgICAgICAgcGFz
cworICAgICAgICAiIiIpCisgICAgICAgIHRlc3RfYiA9IHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0
X2I9IiIiCisgICAgICAgICAgICBkZWYgdGVzdF9iMSgpOgorICAgICAgICAgICAgICAgIGFzc2Vy
dCAwCisgICAgICAgICAgICBkZWYgdGVzdF9iMigpOgorICAgICAgICAgICAgICAgIGFzc2VydCAw
CisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAg
ICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgJ2NvbGxlY3Rl
ZCA0IGl0ZW1zJywKKyAgICAgICAgICAgICcqMiBmYWlsZWQsIDIgcGFzc2VkIGluKicsCisgICAg
ICAgIF0pCisKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoJy0tbGYnKQorICAg
ICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgJ2NvbGxlY3Rl
ZCA0IGl0ZW1zJywKKyAgICAgICAgICAgICdydW4tbGFzdC1mYWlsdXJlOiByZXJ1biBwcmV2aW91
cyAyIGZhaWx1cmVzJywKKyAgICAgICAgICAgICcqMiBmYWlsZWQsIDIgZGVzZWxlY3RlZCBpbion
LAorICAgICAgICBdKQorCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHRlc3Rf
YSwgJy0tbGYnKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAg
ICAgICAgJ2NvbGxlY3RlZCAyIGl0ZW1zJywKKyAgICAgICAgICAgICdydW4tbGFzdC1mYWlsdXJl
OiBydW4gYWxsIChubyByZWNvcmRlZCBmYWlsdXJlcyknLAorICAgICAgICAgICAgJyoyIHBhc3Nl
ZCBpbionLAorICAgICAgICBdKQorCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KHRlc3RfYiwgJy0tbGYnKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWwor
ICAgICAgICAgICAgJ2NvbGxlY3RlZCAyIGl0ZW1zJywKKyAgICAgICAgICAgICdydW4tbGFzdC1m
YWlsdXJlOiByZXJ1biBwcmV2aW91cyAyIGZhaWx1cmVzJywKKyAgICAgICAgICAgICcqMiBmYWls
ZWQgaW4qJywKKyAgICAgICAgXSkKKworICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgndGVzdF9iLnB5Ojp0ZXN0X2IxJywgJy0tbGYnKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoWworICAgICAgICAgICAgJ2NvbGxlY3RlZCAxIGl0ZW0nLAorICAgICAgICAg
ICAgJ3J1bi1sYXN0LWZhaWx1cmU6IHJlcnVuIHByZXZpb3VzIDEgZmFpbHVyZScsCisgICAgICAg
ICAgICAnKjEgZmFpbGVkIGluKicsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF90ZXJtaW5h
bF9yZXBvcnRfZmFpbGVkZmlyc3Qoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSh0ZXN0X2E9IiIiCisgICAgICAgICAgICBkZWYgdGVzdF9hMSgpOgorICAgICAgICAg
ICAgICAgIGFzc2VydCAwCisgICAgICAgICAgICBkZWYgdGVzdF9hMigpOgorICAgICAgICAgICAg
ICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAn
Y29sbGVjdGVkIDIgaXRlbXMnLAorICAgICAgICAgICAgJyoxIGZhaWxlZCwgMSBwYXNzZWQgaW4q
JywKKyAgICAgICAgXSkKKworICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLS1m
ZicpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAn
Y29sbGVjdGVkIDIgaXRlbXMnLAorICAgICAgICAgICAgJ3J1bi1sYXN0LWZhaWx1cmU6IHJlcnVu
IHByZXZpb3VzIDEgZmFpbHVyZSBmaXJzdCcsCisgICAgICAgICAgICAnKjEgZmFpbGVkLCAxIHBh
c3NlZCBpbionLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfbGFzdGZhaWxlZF9jb2xsZWN0
ZmFpbHVyZShzZWxmLCB0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CisKKyAgICAgICAgdGVzdGRpci5t
YWtlcHlmaWxlKHRlc3RfbWF5YmU9IiIiCisgICAgICAgICAgICBpbXBvcnQgcHkKKyAgICAgICAg
ICAgIGVudiA9IHB5LnN0ZC5vcy5lbnZpcm9uCisgICAgICAgICAgICBpZiAnMScgPT0gZW52WydG
QUlMSU1QT1JUJ106CisgICAgICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IoJ2ZhaWwnKQor
ICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgJzAn
ID09IGVudlsnRkFJTFRFU1QnXQorICAgICAgICAiIiIpCisKKyAgICAgICAgZGVmIHJsZihmYWls
X2ltcG9ydCwgZmFpbF9ydW4pOgorICAgICAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCdGQUlM
SU1QT1JUJywgZmFpbF9pbXBvcnQpCisgICAgICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYoJ0ZB
SUxURVNUJywgZmFpbF9ydW4pCisKKyAgICAgICAgICAgIHRlc3RkaXIucnVucHl0ZXN0KCctcScp
CisgICAgICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlndXJlKCkKKyAgICAgICAg
ICAgIGxhc3RmYWlsZWQgPSBjb25maWcuY2FjaGUuZ2V0KCJjYWNoZS9sYXN0ZmFpbGVkIiwgLTEp
CisgICAgICAgICAgICByZXR1cm4gbGFzdGZhaWxlZAorCisgICAgICAgIGxhc3RmYWlsZWQgPSBy
bGYoZmFpbF9pbXBvcnQ9MCwgZmFpbF9ydW49MCkKKyAgICAgICAgYXNzZXJ0IGxhc3RmYWlsZWQg
PT0gLTEKKworICAgICAgICBsYXN0ZmFpbGVkID0gcmxmKGZhaWxfaW1wb3J0PTEsIGZhaWxfcnVu
PTApCisgICAgICAgIGFzc2VydCBsaXN0KGxhc3RmYWlsZWQpID09IFsndGVzdF9tYXliZS5weSdd
CisKKyAgICAgICAgbGFzdGZhaWxlZCA9IHJsZihmYWlsX2ltcG9ydD0wLCBmYWlsX3J1bj0xKQor
ICAgICAgICBhc3NlcnQgbGlzdChsYXN0ZmFpbGVkKSA9PSBbJ3Rlc3RfbWF5YmUucHk6OnRlc3Rf
aGVsbG8nXQorCisgICAgZGVmIHRlc3RfbGFzdGZhaWxlZF9mYWlsdXJlX3N1YnNldChzZWxmLCB0
ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CisKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRlc3Rf
bWF5YmU9IiIiCisgICAgICAgICAgICBpbXBvcnQgcHkKKyAgICAgICAgICAgIGVudiA9IHB5LnN0
ZC5vcy5lbnZpcm9uCisgICAgICAgICAgICBpZiAnMScgPT0gZW52WydGQUlMSU1QT1JUJ106Cisg
ICAgICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IoJ2ZhaWwnKQorICAgICAgICAgICAgZGVm
IHRlc3RfaGVsbG8oKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgJzAnID09IGVudlsnRkFJTFRF
U1QnXQorICAgICAgICAiIiIpCisKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRlc3RfbWF5
YmUyPSIiIgorICAgICAgICAgICAgaW1wb3J0IHB5CisgICAgICAgICAgICBlbnYgPSBweS5zdGQu
b3MuZW52aXJvbgorICAgICAgICAgICAgaWYgJzEnID09IGVudlsnRkFJTElNUE9SVCddOgorICAg
ICAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKCdmYWlsJykKKyAgICAgICAgICAgIGRlZiB0
ZXN0X2hlbGxvKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0ICcwJyA9PSBlbnZbJ0ZBSUxURVNU
J10KKworICAgICAgICAgICAgZGVmIHRlc3RfcGFzcygpOgorICAgICAgICAgICAgICAgIHBhc3MK
KyAgICAgICAgIiIiKQorCisgICAgICAgIGRlZiBybGYoZmFpbF9pbXBvcnQsIGZhaWxfcnVuLCBh
cmdzPSgpKToKKyAgICAgICAgICAgIG1vbmtleXBhdGNoLnNldGVudignRkFJTElNUE9SVCcsIGZh
aWxfaW1wb3J0KQorICAgICAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCdGQUlMVEVTVCcsIGZh
aWxfcnVuKQorCisgICAgICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLXEnLCAn
LS1sZicsICphcmdzKQorICAgICAgICAgICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZ3Vy
ZSgpCisgICAgICAgICAgICBsYXN0ZmFpbGVkID0gY29uZmlnLmNhY2hlLmdldCgiY2FjaGUvbGFz
dGZhaWxlZCIsIC0xKQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCwgbGFzdGZhaWxlZAorCisg
ICAgICAgIHJlc3VsdCwgbGFzdGZhaWxlZCA9IHJsZihmYWlsX2ltcG9ydD0wLCBmYWlsX3J1bj0w
KQorICAgICAgICBhc3NlcnQgbGFzdGZhaWxlZCA9PSAtMQorICAgICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgJyozIHBhc3NlZConLAorICAgICAgICBdKQor
CisgICAgICAgIHJlc3VsdCwgbGFzdGZhaWxlZCA9IHJsZihmYWlsX2ltcG9ydD0xLCBmYWlsX3J1
bj0wKQorICAgICAgICBhc3NlcnQgc29ydGVkKGxpc3QobGFzdGZhaWxlZCkpID09IFsndGVzdF9t
YXliZS5weScsICd0ZXN0X21heWJlMi5weSddCisKKyAgICAgICAgcmVzdWx0LCBsYXN0ZmFpbGVk
ID0gcmxmKGZhaWxfaW1wb3J0PTAsIGZhaWxfcnVuPTAsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhcmdzPSgndGVzdF9tYXliZTIucHknLCkpCisgICAgICAgIGFzc2VydCBsaXN0
KGxhc3RmYWlsZWQpID09IFsndGVzdF9tYXliZS5weSddCisKKyAgICAgICAgIyBlZGdlIGNhc2Ug
b2YgdGVzdCBzZWxlY3Rpb24gLSBldmVuIGlmIHdlIHJlbWVtYmVyIGZhaWx1cmVzCisgICAgICAg
ICMgZnJvbSBvdGhlciB0ZXN0cyB3ZSBzdGlsbCBuZWVkIHRvIHJ1biBhbGwgdGVzdHMgaWYgbm8g
dGVzdAorICAgICAgICAjIG1hdGNoZXMgdGhlIGZhaWx1cmVzCisgICAgICAgIHJlc3VsdCwgbGFz
dGZhaWxlZCA9IHJsZihmYWlsX2ltcG9ydD0wLCBmYWlsX3J1bj0wLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYXJncz0oJ3Rlc3RfbWF5YmUyLnB5JywpKQorICAgICAgICBhc3Nl
cnQgbGlzdChsYXN0ZmFpbGVkKSA9PSBbJ3Rlc3RfbWF5YmUucHknXQorICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgJyoyIHBhc3NlZConLAorICAgICAg
ICBdKQorCisgICAgZGVmIHRlc3RfbGFzdGZhaWxlZF9jcmVhdGVzX2NhY2hlX3doZW5fbmVlZGVk
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAjIElzc3VlICMxMzQyCisgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSh0ZXN0X2VtcHR5PScnKQorICAgICAgICB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLXEn
LCAnLS1sZicpCisgICAgICAgIGFzc2VydCBub3Qgb3MucGF0aC5leGlzdHMoJy5jYWNoZScpCisK
KyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRlc3Rfc3VjY2Vzc2Z1bD0nZGVmIHRlc3Rfc3Vj
Y2VzcygpOlxuICAgIGFzc2VydCBUcnVlJykKKyAgICAgICAgdGVzdGRpci5ydW5weXRlc3QoJy1x
JywgJy0tbGYnKQorICAgICAgICBhc3NlcnQgbm90IG9zLnBhdGguZXhpc3RzKCcuY2FjaGUnKQor
CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0X2Vycm9yZWQ9J2RlZiB0ZXN0X2Vycm9y
KCk6XG4gICAgYXNzZXJ0IEZhbHNlJykKKyAgICAgICAgdGVzdGRpci5ydW5weXRlc3QoJy1xJywg
Jy0tbGYnKQorICAgICAgICBhc3NlcnQgb3MucGF0aC5leGlzdHMoJy5jYWNoZScpCisKKyAgICBk
ZWYgdGVzdF94ZmFpbF9ub3RfY29uc2lkZXJlZF9mYWlsdXJlKHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoJycnCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Cisg
ICAgICAgICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwKKyAgICAgICAgICAgIGRlZiB0ZXN0KCk6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgJycnKQorICAgICAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygn
KjEgeGZhaWxlZConKQorICAgICAgICBhc3NlcnQgc2VsZi5nZXRfY2FjaGVkX2xhc3RfZmFpbGVk
KHRlc3RkaXIpID09IFtdCisKKyAgICBkZWYgdGVzdF94ZmFpbF9zdHJpY3RfY29uc2lkZXJlZF9m
YWlsdXJlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoJycnCisg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwo
c3RyaWN0PVRydWUpCisgICAgICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAgICAgIHBh
c3MKKyAgICAgICAgJycnKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisg
ICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygnKjEgZmFpbGVkKicpCisgICAgICAg
IGFzc2VydCBzZWxmLmdldF9jYWNoZWRfbGFzdF9mYWlsZWQodGVzdGRpcikgPT0gWyd0ZXN0X3hm
YWlsX3N0cmljdF9jb25zaWRlcmVkX2ZhaWx1cmUucHk6OnRlc3QnXQorCisgICAgQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCdtYXJrJywgWydtYXJrLnhmYWlsJywgJ21hcmsuc2tpcCddKQorICAg
IGRlZiB0ZXN0X2ZhaWxlZF9jaGFuZ2VkX3RvX3hmYWlsX29yX3NraXAoc2VsZiwgdGVzdGRpciwg
bWFyayk6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKKyAgICAgICAgICAgIGRlZiB0ZXN0KCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0
IDAKKyAgICAgICAgJycnKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisg
ICAgICAgIGFzc2VydCBzZWxmLmdldF9jYWNoZWRfbGFzdF9mYWlsZWQodGVzdGRpcikgPT0gWyd0
ZXN0X2ZhaWxlZF9jaGFuZ2VkX3RvX3hmYWlsX29yX3NraXAucHk6OnRlc3QnXQorICAgICAgICBh
c3NlcnQgcmVzdWx0LnJldCA9PSAxCisKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCcnJwor
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC57bWFya30KKyAg
ICAgICAgICAgIGRlZiB0ZXN0KCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAg
JycnLmZvcm1hdChtYXJrPW1hcmspKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICAgICAgYXNzZXJ0IHNlbGYu
Z2V0X2NhY2hlZF9sYXN0X2ZhaWxlZCh0ZXN0ZGlyKSA9PSBbXQorICAgICAgICBhc3NlcnQgcmVz
dWx0LnJldCA9PSAwCisKKyAgICBkZWYgZ2V0X2NhY2hlZF9sYXN0X2ZhaWxlZChzZWxmLCB0ZXN0
ZGlyKToKKyAgICAgICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZ3VyZSgpCisgICAgICAg
IHJldHVybiBzb3J0ZWQoY29uZmlnLmNhY2hlLmdldCgiY2FjaGUvbGFzdGZhaWxlZCIsIHt9KSkK
KworICAgIGRlZiB0ZXN0X2NhY2hlX2N1bXVsYXRpdmUoc2VsZiwgdGVzdGRpcik6CisgICAgICAg
ICIiIgorICAgICAgICBUZXN0IHdvcmtmbG93IHdoZXJlIHVzZXIgZml4ZXMgZXJyb3JzIGdyYWR1
YWxseSBmaWxlIGJ5IGZpbGUgdXNpbmcgLS1sZi4KKyAgICAgICAgIiIiCisgICAgICAgICMgMS4g
aW5pdGlhbCBydW4KKyAgICAgICAgdGVzdF9iYXIgPSB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9i
YXI9IiIiCisgICAgICAgICAgICBkZWYgdGVzdF9iYXJfMSgpOgorICAgICAgICAgICAgICAgIHBh
c3MKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Jhcl8yKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0
IDAKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0X2ZvbyA9IHRlc3RkaXIubWFrZXB5ZmlsZSh0
ZXN0X2Zvbz0iIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Zvb18zKCk6CisgICAgICAgICAgICAg
ICAgcGFzcworICAgICAgICAgICAgZGVmIHRlc3RfZm9vXzQoKToKKyAgICAgICAgICAgICAgICBh
c3NlcnQgMAorICAgICAgICAiIiIpCisgICAgICAgIHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAg
ICAgYXNzZXJ0IHNlbGYuZ2V0X2NhY2hlZF9sYXN0X2ZhaWxlZCh0ZXN0ZGlyKSA9PSBbJ3Rlc3Rf
YmFyLnB5Ojp0ZXN0X2Jhcl8yJywgJ3Rlc3RfZm9vLnB5Ojp0ZXN0X2Zvb180J10KKworICAgICAg
ICAjIDIuIGZpeCB0ZXN0X2Jhcl8yLCBydW4gb25seSB0ZXN0X2Jhci5weQorICAgICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUodGVzdF9iYXI9IiIiCisgICAgICAgICAgICBkZWYgdGVzdF9iYXJfMSgp
OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Jhcl8yKCk6Cisg
ICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KHRlc3RfYmFyKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoJyoyIHBhc3NlZConKQorICAgICAgICAjIGVuc3VyZSBjYWNoZSBkb2VzIG5vdCBmb3JnZXQg
dGhhdCB0ZXN0X2Zvb180IGZhaWxlZCBvbmNlIGJlZm9yZQorICAgICAgICBhc3NlcnQgc2VsZi5n
ZXRfY2FjaGVkX2xhc3RfZmFpbGVkKHRlc3RkaXIpID09IFsndGVzdF9mb28ucHk6OnRlc3RfZm9v
XzQnXQorCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctLWxhc3QtZmFpbGVk
JykKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCcqMSBmYWlsZWQsIDMgZGVz
ZWxlY3RlZConKQorICAgICAgICBhc3NlcnQgc2VsZi5nZXRfY2FjaGVkX2xhc3RfZmFpbGVkKHRl
c3RkaXIpID09IFsndGVzdF9mb28ucHk6OnRlc3RfZm9vXzQnXQorCisgICAgICAgICMgMy4gZml4
IHRlc3RfZm9vXzQsIHJ1biBvbmx5IHRlc3RfZm9vLnB5CisgICAgICAgIHRlc3RfZm9vID0gdGVz
dGRpci5tYWtlcHlmaWxlKHRlc3RfZm9vPSIiIgorICAgICAgICAgICAgZGVmIHRlc3RfZm9vXzMo
KToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF9mb29fNCgpOgor
ICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCh0ZXN0X2ZvbywgJy0tbGFzdC1mYWlsZWQnKQorICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoJyoxIHBhc3NlZCwgMSBkZXNlbGVjdGVkKicpCisgICAgICAg
IGFzc2VydCBzZWxmLmdldF9jYWNoZWRfbGFzdF9mYWlsZWQodGVzdGRpcikgPT0gW10KKworICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLS1sYXN0LWZhaWxlZCcpCisgICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygnKjQgcGFzc2VkKicpCisgICAgICAgIGFzc2Vy
dCBzZWxmLmdldF9jYWNoZWRfbGFzdF9mYWlsZWQodGVzdGRpcikgPT0gW10KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9jYXB0dXJlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy90ZXN0X2NhcHR1cmUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc2OWE3MjVkYzRiNWZkNzNkYTk4MzczMTE0
MTcxYWFmZTcyMTQ5NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVz
dF9jYXB0dXJlLnB5CkBAIC0wLDAgKzEsMTI3NCBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBh
YnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorIyBub3RlOiBweS5pbyBj
YXB0dXJlIHRlc3RzIHdoZXJlIGNvcGllZCBmcm9tCisjIHB5bGliIDEuNC4yMC5kZXYyIChyZXYg
MTNkOWFmOTU1NDdlKQorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB3aXRoX3N0YXRlbWVudAoraW1w
b3J0IHBpY2tsZQoraW1wb3J0IG9zCitpbXBvcnQgc3lzCitmcm9tIGlvIGltcG9ydCBVbnN1cHBv
cnRlZE9wZXJhdGlvbgorCitpbXBvcnQgX3B5dGVzdC5fY29kZQoraW1wb3J0IHB5CitpbXBvcnQg
cHl0ZXN0CitpbXBvcnQgY29udGV4dGxpYgorCitmcm9tIF9weXRlc3QgaW1wb3J0IGNhcHR1cmUK
K2Zyb20gX3B5dGVzdC5jYXB0dXJlIGltcG9ydCBDYXB0dXJlTWFuYWdlcgorZnJvbSBfcHl0ZXN0
Lm1haW4gaW1wb3J0IEVYSVRfTk9URVNUU0NPTExFQ1RFRAorCisKK25lZWRzb3NkdXAgPSBweXRl
c3QubWFyay54ZmFpbCgibm90IGhhc2F0dHIob3MsICdkdXAnKSIpCisKK2lmIHN5cy52ZXJzaW9u
X2luZm8gPj0gKDMsIDApOgorICAgIGRlZiB0b2J5dGVzKG9iaik6CisgICAgICAgIGlmIGlzaW5z
dGFuY2Uob2JqLCBzdHIpOgorICAgICAgICAgICAgb2JqID0gb2JqLmVuY29kZSgnVVRGLTgnKQor
ICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShvYmosIGJ5dGVzKQorICAgICAgICByZXR1cm4gb2Jq
CisKKyAgICBkZWYgdG90ZXh0KG9iaik6CisgICAgICAgIGlmIGlzaW5zdGFuY2Uob2JqLCBieXRl
cyk6CisgICAgICAgICAgICBvYmogPSBzdHIob2JqLCAnVVRGLTgnKQorICAgICAgICBhc3NlcnQg
aXNpbnN0YW5jZShvYmosIHN0cikKKyAgICAgICAgcmV0dXJuIG9iagorZWxzZToKKyAgICBkZWYg
dG9ieXRlcyhvYmopOgorICAgICAgICBpZiBpc2luc3RhbmNlKG9iaiwgdW5pY29kZSk6CisgICAg
ICAgICAgICBvYmogPSBvYmouZW5jb2RlKCdVVEYtOCcpCisgICAgICAgIGFzc2VydCBpc2luc3Rh
bmNlKG9iaiwgc3RyKQorICAgICAgICByZXR1cm4gb2JqCisKKyAgICBkZWYgdG90ZXh0KG9iaik6
CisgICAgICAgIGlmIGlzaW5zdGFuY2Uob2JqLCBzdHIpOgorICAgICAgICAgICAgb2JqID0gdW5p
Y29kZShvYmosICdVVEYtOCcpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG9iaiwgdW5pY29k
ZSkKKyAgICAgICAgcmV0dXJuIG9iagorCisKK2RlZiBvc3dyaXRlYnl0ZXMoZmQsIG9iaik6Cisg
ICAgb3Mud3JpdGUoZmQsIHRvYnl0ZXMob2JqKSkKKworCitkZWYgU3RkQ2FwdHVyZUZEKG91dD1U
cnVlLCBlcnI9VHJ1ZSwgaW5fPVRydWUpOgorICAgIHJldHVybiBjYXB0dXJlLk11bHRpQ2FwdHVy
ZShvdXQsIGVyciwgaW5fLCBDYXB0dXJlPWNhcHR1cmUuRkRDYXB0dXJlKQorCisKK2RlZiBTdGRD
YXB0dXJlKG91dD1UcnVlLCBlcnI9VHJ1ZSwgaW5fPVRydWUpOgorICAgIHJldHVybiBjYXB0dXJl
Lk11bHRpQ2FwdHVyZShvdXQsIGVyciwgaW5fLCBDYXB0dXJlPWNhcHR1cmUuU3lzQ2FwdHVyZSkK
KworCitjbGFzcyBUZXN0Q2FwdHVyZU1hbmFnZXIob2JqZWN0KToKKyAgICBkZWYgdGVzdF9nZXRt
ZXRob2RfZGVmYXVsdF9ub19mZChzZWxmLCBtb25rZXlwYXRjaCk6CisgICAgICAgIGZyb20gX3B5
dGVzdC5jYXB0dXJlIGltcG9ydCBweXRlc3RfYWRkb3B0aW9uCisgICAgICAgIGZyb20gX3B5dGVz
dC5jb25maWcgaW1wb3J0IFBhcnNlcgorICAgICAgICBwYXJzZXIgPSBQYXJzZXIoKQorICAgICAg
ICBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcikKKyAgICAgICAgZGVmYXVsdCA9IHBhcnNlci5fZ3Jv
dXBzWzBdLm9wdGlvbnNbMF0uZGVmYXVsdAorICAgICAgICBhc3NlcnQgZGVmYXVsdCA9PSAiZmQi
IGlmIGhhc2F0dHIob3MsICJkdXAiKSBlbHNlICJzeXMiCisgICAgICAgIHBhcnNlciA9IFBhcnNl
cigpCisgICAgICAgIG1vbmtleXBhdGNoLmRlbGF0dHIob3MsICdkdXAnLCByYWlzaW5nPUZhbHNl
KQorICAgICAgICBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcikKKyAgICAgICAgYXNzZXJ0IHBhcnNl
ci5fZ3JvdXBzWzBdLm9wdGlvbnNbMF0uZGVmYXVsdCA9PSAic3lzIgorCisgICAgQG5lZWRzb3Nk
dXAKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoIm1ldGhvZCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFsnbm8nLCAnc3lzJywgcHl0ZXN0Lm1hcmsuc2tpcGlmKCdub3QgaGFz
YXR0cihvcywgImR1cCIpJywgJ2ZkJyldKQorICAgIGRlZiB0ZXN0X2NhcHR1cmluZ19iYXNpY19h
cGkoc2VsZiwgbWV0aG9kKToKKyAgICAgICAgY2Fwb3V0ZXIgPSBTdGRDYXB0dXJlRkQoKQorICAg
ICAgICBvbGQgPSBzeXMuc3Rkb3V0LCBzeXMuc3RkZXJyLCBzeXMuc3RkaW4KKyAgICAgICAgdHJ5
OgorICAgICAgICAgICAgY2FwbWFuID0gQ2FwdHVyZU1hbmFnZXIobWV0aG9kKQorICAgICAgICAg
ICAgY2FwbWFuLnN0YXJ0X2dsb2JhbF9jYXB0dXJpbmcoKQorICAgICAgICAgICAgb3V0ZXJyID0g
Y2FwbWFuLnN1c3BlbmRfZ2xvYmFsX2NhcHR1cmUoKQorICAgICAgICAgICAgYXNzZXJ0IG91dGVy
ciA9PSAoIiIsICIiKQorICAgICAgICAgICAgb3V0ZXJyID0gY2FwbWFuLnN1c3BlbmRfZ2xvYmFs
X2NhcHR1cmUoKQorICAgICAgICAgICAgYXNzZXJ0IG91dGVyciA9PSAoIiIsICIiKQorICAgICAg
ICAgICAgcHJpbnQoImhlbGxvIikKKyAgICAgICAgICAgIG91dCwgZXJyID0gY2FwbWFuLnN1c3Bl
bmRfZ2xvYmFsX2NhcHR1cmUoKQorICAgICAgICAgICAgaWYgbWV0aG9kID09ICJubyI6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0IG9sZCA9PSAoc3lzLnN0ZG91dCwgc3lzLnN0ZGVyciwgc3lzLnN0
ZGluKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBhc3NlcnQgbm90IG91dAor
ICAgICAgICAgICAgY2FwbWFuLnJlc3VtZV9nbG9iYWxfY2FwdHVyZSgpCisgICAgICAgICAgICBw
cmludCgiaGVsbG8iKQorICAgICAgICAgICAgb3V0LCBlcnIgPSBjYXBtYW4uc3VzcGVuZF9nbG9i
YWxfY2FwdHVyZSgpCisgICAgICAgICAgICBpZiBtZXRob2QgIT0gIm5vIjoKKyAgICAgICAgICAg
ICAgICBhc3NlcnQgb3V0ID09ICJoZWxsb1xuIgorICAgICAgICAgICAgY2FwbWFuLnN0b3BfZ2xv
YmFsX2NhcHR1cmluZygpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBjYXBvdXRlci5z
dG9wX2NhcHR1cmluZygpCisKKyAgICBAbmVlZHNvc2R1cAorICAgIGRlZiB0ZXN0X2luaXRfY2Fw
dHVyaW5nKHNlbGYpOgorICAgICAgICBjYXBvdXRlciA9IFN0ZENhcHR1cmVGRCgpCisgICAgICAg
IHRyeToKKyAgICAgICAgICAgIGNhcG1hbiA9IENhcHR1cmVNYW5hZ2VyKCJmZCIpCisgICAgICAg
ICAgICBjYXBtYW4uc3RhcnRfZ2xvYmFsX2NhcHR1cmluZygpCisgICAgICAgICAgICBweXRlc3Qu
cmFpc2VzKEFzc2VydGlvbkVycm9yLCAiY2FwbWFuLnN0YXJ0X2dsb2JhbF9jYXB0dXJpbmcoKSIp
CisgICAgICAgICAgICBjYXBtYW4uc3RvcF9nbG9iYWxfY2FwdHVyaW5nKCkKKyAgICAgICAgZmlu
YWxseToKKyAgICAgICAgICAgIGNhcG91dGVyLnN0b3BfY2FwdHVyaW5nKCkKKworCitAcHl0ZXN0
Lm1hcmsucGFyYW1ldHJpemUoIm1ldGhvZCIsIFsnZmQnLCAnc3lzJ10pCitkZWYgdGVzdF9jYXB0
dXJpbmdfdW5pY29kZSh0ZXN0ZGlyLCBtZXRob2QpOgorICAgIGlmIGhhc2F0dHIoc3lzLCAicHlw
eV92ZXJzaW9uX2luZm8iKSBhbmQgc3lzLnB5cHlfdmVyc2lvbl9pbmZvIDwgKDIsIDIpOgorICAg
ICAgICBweXRlc3QueGZhaWwoImRvZXMgbm90IHdvcmsgb24gcHlweSA8IDIuMiIpCisgICAgaWYg
c3lzLnZlcnNpb25faW5mbyA+PSAoMywgMCk6CisgICAgICAgIG9iaiA9ICInYlx1MDBmNnknIgor
ICAgIGVsc2U6CisgICAgICAgIG9iaiA9ICJ1J1x1MDBmNnknIgorICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgiIiIKKyAgICAgICAgIyBjb2Rpbmc9dXRmOAorICAgICAgICAjIHRha2VuIGZyb20gaXNz
dWUgMjI3IGZyb20gbm9zZXRlc3RzCisgICAgICAgIGRlZiB0ZXN0X3VuaWNvZGUoKToKKyAgICAg
ICAgICAgIGltcG9ydCBzeXMKKyAgICAgICAgICAgIHByaW50IChzeXMuc3Rkb3V0KQorICAgICAg
ICAgICAgcHJpbnQgKCVzKQorICAgICIiIiAlIG9iaikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgiLS1jYXB0dXJlPSVzIiAlIG1ldGhvZCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWworICAgICAgICAiKjEgcGFzc2VkKiIKKyAgICBdKQorCisKK0BweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgibWV0aG9kIiwgWydmZCcsICdzeXMnXSkKK2RlZiB0ZXN0X2NhcHR1cmlu
Z19ieXRlc19pbl91dGY4X2VuY29kaW5nKHRlc3RkaXIsIG1ldGhvZCk6CisgICAgdGVzdGRpci5t
YWtlcHlmaWxlKCIiIgorICAgICAgICBkZWYgdGVzdF91bmljb2RlKCk6CisgICAgICAgICAgICBw
cmludCAoJ2JcXHUwMGY2eScpCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KCItLWNhcHR1cmU9JXMiICUgbWV0aG9kKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcyhbCisgICAgICAgICIqMSBwYXNzZWQqIgorICAgIF0pCisKKworZGVmIHRlc3RfY29sbGVj
dF9jYXB0dXJpbmcodGVzdGRpcik6CisgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAg
ICAgICAgcHJpbnQgKCJjb2xsZWN0ICVzIGZhaWx1cmUiICUgMTMpCisgICAgICAgIGltcG9ydCB4
eXo0MjEyMworICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwKQorICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICIqQ2FwdHVyZWQgc3Rkb3V0
KiIsCisgICAgICAgICIqY29sbGVjdCAxMyBmYWlsdXJlKiIsCisgICAgXSkKKworCitjbGFzcyBU
ZXN0UGVyVGVzdENhcHR1cmluZyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X2NhcHR1cmVfYW5kX2Zp
eHR1cmVzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIi
IgorICAgICAgICAgICAgZGVmIHNldHVwX21vZHVsZShtb2QpOgorICAgICAgICAgICAgICAgIHBy
aW50ICgic2V0dXAgbW9kdWxlIikKKyAgICAgICAgICAgIGRlZiBzZXR1cF9mdW5jdGlvbihmdW5j
dGlvbik6CisgICAgICAgICAgICAgICAgcHJpbnQgKCJzZXR1cCAiICsgZnVuY3Rpb24uX19uYW1l
X18pCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jMSgpOgorICAgICAgICAgICAgICAgIHByaW50
ICgiaW4gZnVuYzEiKQorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICAgICBkZWYg
dGVzdF9mdW5jMigpOgorICAgICAgICAgICAgICAgIHByaW50ICgiaW4gZnVuYzIiKQorICAgICAg
ICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QocCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAg
ICAgICAgICAgICJzZXR1cCBtb2R1bGUqIiwKKyAgICAgICAgICAgICJzZXR1cCB0ZXN0X2Z1bmMx
KiIsCisgICAgICAgICAgICAiaW4gZnVuYzEqIiwKKyAgICAgICAgICAgICJzZXR1cCB0ZXN0X2Z1
bmMyKiIsCisgICAgICAgICAgICAiaW4gZnVuYzIqIiwKKyAgICAgICAgXSkKKworICAgIEBweXRl
c3QubWFyay54ZmFpbChyZWFzb249InVuaW1wbGVtZW50ZWQgZmVhdHVyZSIpCisgICAgZGVmIHRl
c3RfY2FwdHVyZV9zY29wZV9jYWNoZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3Rk
aXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBzeXMKKyAgICAgICAgICAgIGRl
ZiBzZXR1cF9tb2R1bGUoZnVuYyk6CisgICAgICAgICAgICAgICAgcHJpbnQgKCJtb2R1bGUtc2V0
dXAiKQorICAgICAgICAgICAgZGVmIHNldHVwX2Z1bmN0aW9uKGZ1bmMpOgorICAgICAgICAgICAg
ICAgIHByaW50ICgiZnVuY3Rpb24tc2V0dXAiKQorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygp
OgorICAgICAgICAgICAgICAgIHByaW50ICgiaW4gZnVuY3Rpb24iKQorICAgICAgICAgICAgICAg
IGFzc2VydCAwCisgICAgICAgICAgICBkZWYgdGVhcmRvd25fZnVuY3Rpb24oZnVuYyk6CisgICAg
ICAgICAgICAgICAgcHJpbnQgKCJpbiB0ZWFyZG93biIpCisgICAgICAgICIiIikKKyAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqdGVzdF9mdW5jKCk6KiIsCisgICAgICAgICAgICAi
KkNhcHR1cmVkIHN0ZG91dCBkdXJpbmcgc2V0dXAqIiwKKyAgICAgICAgICAgICJtb2R1bGUtc2V0
dXAqIiwKKyAgICAgICAgICAgICJmdW5jdGlvbi1zZXR1cCoiLAorICAgICAgICAgICAgIipDYXB0
dXJlZCBzdGRvdXQqIiwKKyAgICAgICAgICAgICJpbiB0ZWFyZG93bioiLAorICAgICAgICBdKQor
CisgICAgZGVmIHRlc3Rfbm9fY2Fycnlfb3ZlcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9
IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMxKCk6Cisg
ICAgICAgICAgICAgICAgcHJpbnQgKCJpbiBmdW5jMSIpCisgICAgICAgICAgICBkZWYgdGVzdF9m
dW5jMigpOgorICAgICAgICAgICAgICAgIHByaW50ICgiaW4gZnVuYzIiKQorICAgICAgICAgICAg
ICAgIGFzc2VydCAwCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QocCkKKyAgICAgICAgcyA9IHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICAgICAgYXNzZXJ0
ICJpbiBmdW5jMSIgbm90IGluIHMKKyAgICAgICAgYXNzZXJ0ICJpbiBmdW5jMiIgaW4gcworCisg
ICAgZGVmIHRlc3RfdGVhcmRvd25fY2FwdHVyaW5nKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBw
ID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHNldHVwX2Z1bmN0aW9u
KGZ1bmN0aW9uKToKKyAgICAgICAgICAgICAgICBwcmludCAoInNldHVwIGZ1bmMxIikKKyAgICAg
ICAgICAgIGRlZiB0ZWFyZG93bl9mdW5jdGlvbihmdW5jdGlvbik6CisgICAgICAgICAgICAgICAg
cHJpbnQgKCJ0ZWFyZG93biBmdW5jMSIpCisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAg
ICAgICAgIGRlZiB0ZXN0X2Z1bmMxKCk6CisgICAgICAgICAgICAgICAgcHJpbnQgKCJpbiBmdW5j
MSIpCisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KHApCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cyhbCisgICAgICAgICAgICAnKnRlYXJkb3duX2Z1bmN0aW9uKicsCisgICAgICAgICAgICAnKkNh
cHR1cmVkIHN0ZG91dConLAorICAgICAgICAgICAgInNldHVwIGZ1bmMxKiIsCisgICAgICAgICAg
ICAiaW4gZnVuYzEqIiwKKyAgICAgICAgICAgICJ0ZWFyZG93biBmdW5jMSoiLAorICAgICAgICAg
ICAgIyAiKjEgZml4dHVyZSBmYWlsdXJlKiIKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X3Rl
YXJkb3duX2NhcHR1cmluZ19maW5hbChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3Rk
aXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZWFyZG93bl9tb2R1bGUobW9kKToK
KyAgICAgICAgICAgICAgICBwcmludCAoInRlYXJkb3duIG1vZHVsZSIpCisgICAgICAgICAgICAg
ICAgYXNzZXJ0IDAKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAg
ICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
cCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIq
ZGVmIHRlYXJkb3duX21vZHVsZShtb2QpOioiLAorICAgICAgICAgICAgIipDYXB0dXJlZCBzdGRv
dXQqIiwKKyAgICAgICAgICAgICIqdGVhcmRvd24gbW9kdWxlKiIsCisgICAgICAgICAgICAiKjEg
ZXJyb3IqIiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2NhcHR1cmluZ19vdXRlcnIoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAg
ICAgICAgaW1wb3J0IHN5cworICAgICAgICAgICAgZGVmIHRlc3RfY2FwdHVyaW5nKCk6CisgICAg
ICAgICAgICAgICAgcHJpbnQgKDQyKQorICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUo
c3RyKDIzKSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2NhcHR1cmluZ19lcnJvcigpOgorICAgICAg
ICAgICAgICAgIHByaW50ICgxKQorICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoc3Ry
KDIpKQorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IKKyAgICAgICAgIiIiKQorICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwMSkKKyAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqdGVzdF9jYXB0dXJpbmdfb3V0ZXJyLnB5
IC5GKiIsCisgICAgICAgICAgICAiPT09PSogRkFJTFVSRVMgKj09PT0iLAorICAgICAgICAgICAg
Il9fX18qX19fXyIsCisgICAgICAgICAgICAiKnRlc3RfY2FwdHVyaW5nX291dGVyci5weTo4OiBW
YWx1ZUVycm9yIiwKKyAgICAgICAgICAgICIqLS0tIENhcHR1cmVkIHN0ZG91dCAqY2FsbCoiLAor
ICAgICAgICAgICAgIjEiLAorICAgICAgICAgICAgIiotLS0gQ2FwdHVyZWQgc3RkZXJyICpjYWxs
KiIsCisgICAgICAgICAgICAiMiIsCisgICAgICAgIF0pCisKKworY2xhc3MgVGVzdExvZ2dpbmdJ
bnRlcmFjdGlvbihvYmplY3QpOgorICAgIGRlZiB0ZXN0X2xvZ2dpbmdfc3RyZWFtX293bmVyc2hp
cChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X2xvZ2dpbmcoKToKKyAgICAgICAgICAgICAgICBpbXBvcnQgbG9n
Z2luZworICAgICAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgICAgICBzdHJl
YW0gPSBjYXB0dXJlLkNhcHR1cmVJTygpCisgICAgICAgICAgICAgICAgbG9nZ2luZy5iYXNpY0Nv
bmZpZyhzdHJlYW09c3RyZWFtKQorICAgICAgICAgICAgICAgIHN0cmVhbS5jbG9zZSgpICMgdG8g
ZnJlZSBtZW1vcnkvcmVsZWFzZSByZXNvdXJjZXMKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKHApCisgICAgICAgIGFzc2VydCByZXN1
bHQuc3RkZXJyLnN0cigpLmZpbmQoImF0ZXhpdCIpID09IC0xCisKKyAgICBkZWYgdGVzdF9sb2dn
aW5nX2FuZF9pbW1lZGlhdGVfc2V0dXB0ZWFyZG93bihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
cCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBsb2dnaW5nCisg
ICAgICAgICAgICBkZWYgc2V0dXBfZnVuY3Rpb24oZnVuY3Rpb24pOgorICAgICAgICAgICAgICAg
IGxvZ2dpbmcud2FybigiaGVsbG8xIikKKworICAgICAgICAgICAgZGVmIHRlc3RfbG9nZ2luZygp
OgorICAgICAgICAgICAgICAgIGxvZ2dpbmcud2FybigiaGVsbG8yIikKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgMAorCisgICAgICAgICAgICBkZWYgdGVhcmRvd25fZnVuY3Rpb24oZnVuY3Rpb24p
OgorICAgICAgICAgICAgICAgIGxvZ2dpbmcud2FybigiaGVsbG8zIikKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgMAorICAgICAgICAiIiIpCisgICAgICAgIGZvciBvcHRhcmdzIGluICgoJy0tY2Fw
dHVyZT1zeXMnLCksICgnLS1jYXB0dXJlPWZkJywpKToKKyAgICAgICAgICAgIHByaW50KG9wdGFy
Z3MpCisgICAgICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKHAs
ICpvcHRhcmdzKQorICAgICAgICAgICAgcyA9IHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICAgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAgICAgIipXQVJO
KmhlbGxvMyIsICAjIGVycm9ycyBzaG93IGZpcnN0IQorICAgICAgICAgICAgICAgICIqV0FSTipo
ZWxsbzEiLAorICAgICAgICAgICAgICAgICIqV0FSTipoZWxsbzIiLAorICAgICAgICAgICAgXSkK
KyAgICAgICAgICAgICMgdmVyaWZ5IHByb3BlciB0ZXJtaW5hdGlvbgorICAgICAgICAgICAgYXNz
ZXJ0ICJjbG9zZWQiIG5vdCBpbiBzCisKKyAgICBkZWYgdGVzdF9sb2dnaW5nX2FuZF9jcm9zc3Nj
b3BlX2ZpeHR1cmVzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlm
aWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IGxvZ2dpbmcKKyAgICAgICAgICAgIGRlZiBzZXR1
cF9tb2R1bGUoZnVuY3Rpb24pOgorICAgICAgICAgICAgICAgIGxvZ2dpbmcud2FybigiaGVsbG8x
IikKKworICAgICAgICAgICAgZGVmIHRlc3RfbG9nZ2luZygpOgorICAgICAgICAgICAgICAgIGxv
Z2dpbmcud2FybigiaGVsbG8yIikKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorCisgICAgICAg
ICAgICBkZWYgdGVhcmRvd25fbW9kdWxlKGZ1bmN0aW9uKToKKyAgICAgICAgICAgICAgICBsb2dn
aW5nLndhcm4oImhlbGxvMyIpCisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgIiIi
KQorICAgICAgICBmb3Igb3B0YXJncyBpbiAoKCctLWNhcHR1cmU9c3lzJywpLCAoJy0tY2FwdHVy
ZT1mZCcsKSk6CisgICAgICAgICAgICBwcmludChvcHRhcmdzKQorICAgICAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcyhwLCAqb3B0YXJncykKKyAgICAgICAgICAg
IHMgPSByZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWworICAgICAgICAgICAgICAgICIqV0FSTipoZWxsbzMiLCAgIyBlcnJvcnMgY29t
ZSBmaXJzdAorICAgICAgICAgICAgICAgICIqV0FSTipoZWxsbzEiLAorICAgICAgICAgICAgICAg
ICIqV0FSTipoZWxsbzIiLAorICAgICAgICAgICAgXSkKKyAgICAgICAgICAgICMgdmVyaWZ5IHBy
b3BlciB0ZXJtaW5hdGlvbgorICAgICAgICAgICAgYXNzZXJ0ICJjbG9zZWQiIG5vdCBpbiBzCisK
KyAgICBkZWYgdGVzdF9jb25mdGVzdGxvZ2dpbmdfaXNfc2hvd24oc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgICAgIGltcG9ydCBs
b2dnaW5nCisgICAgICAgICAgICAgICAgbG9nZ2luZy5iYXNpY0NvbmZpZygpCisgICAgICAgICAg
ICAgICAgbG9nZ2luZy53YXJuKCJoZWxsbzQzNSIpCisgICAgICAgICIiIikKKyAgICAgICAgIyBt
YWtlIHN1cmUgdGhhdCBsb2dnaW5nIGlzIHN0aWxsIGNhcHR1cmVkIGluIHRlc3RzCisgICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoIi1zIiwgIi1wIiwgIm5vOmNh
cHR1cmVsb2ciKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSBFWElUX05PVEVTVFNDT0xM
RUNURUQKKyAgICAgICAgcmVzdWx0LnN0ZGVyci5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAg
ICJXQVJOSU5HKmhlbGxvNDM1KiIsCisgICAgICAgIF0pCisgICAgICAgIGFzc2VydCAnb3BlcmF0
aW9uIG9uIGNsb3NlZCBmaWxlJyBub3QgaW4gcmVzdWx0LnN0ZGVyci5zdHIoKQorCisgICAgZGVm
IHRlc3RfY29uZnRlc3Rsb2dnaW5nX2FuZF90ZXN0X2xvZ2dpbmcoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgICAgIGltcG9ydCBs
b2dnaW5nCisgICAgICAgICAgICAgICAgbG9nZ2luZy5iYXNpY0NvbmZpZygpCisgICAgICAgICIi
IikKKyAgICAgICAgIyBtYWtlIHN1cmUgdGhhdCBsb2dnaW5nIGlzIHN0aWxsIGNhcHR1cmVkIGlu
IHRlc3RzCisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBk
ZWYgdGVzdF9oZWxsbygpOgorICAgICAgICAgICAgICAgIGltcG9ydCBsb2dnaW5nCisgICAgICAg
ICAgICAgICAgbG9nZ2luZy53YXJuKCJoZWxsbzQzMyIpCisgICAgICAgICAgICAgICAgYXNzZXJ0
IDAKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJw
cm9jZXNzKHAsICItcCIsICJubzpjYXB0dXJlbG9nIikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5y
ZXQgIT0gMAorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAg
ICAgIldBUk5JTkcqaGVsbG80MzMqIiwKKyAgICAgICAgXSkKKyAgICAgICAgYXNzZXJ0ICdzb21l
dGhpbmcnIG5vdCBpbiByZXN1bHQuc3RkZXJyLnN0cigpCisgICAgICAgIGFzc2VydCAnb3BlcmF0
aW9uIG9uIGNsb3NlZCBmaWxlJyBub3QgaW4gcmVzdWx0LnN0ZGVyci5zdHIoKQorCisKK2NsYXNz
IFRlc3RDYXB0dXJlRml4dHVyZShvYmplY3QpOgorICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgib3B0IiwgW1tdLCBbIi1zIl1dKQorICAgIGRlZiB0ZXN0X3N0ZF9mdW5jdGlvbmFsKHNlbGYs
IHRlc3RkaXIsIG9wdCk6CisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bnNvdXJj
ZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKGNhcHN5cyk6CisgICAgICAgICAgICAg
ICAgcHJpbnQgKDQyKQorICAgICAgICAgICAgICAgIG91dCwgZXJyID0gY2Fwc3lzLnJlYWRvdXRl
cnIoKQorICAgICAgICAgICAgICAgIGFzc2VydCBvdXQuc3RhcnRzd2l0aCgiNDIiKQorICAgICAg
ICAiIiIsICpvcHQpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCisg
ICAgZGVmIHRlc3RfY2Fwc3lzY2FwZmQoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0
ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9vbmUoY2Fwc3lzLCBjYXBm
ZCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHRlc3RfdHdvKGNhcGZk
LCBjYXBzeXMpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWworICAgICAgICAgICAgIipFUlJPUipzZXR1cCp0ZXN0X29uZSoiLAorICAgICAg
ICAgICAgIkUqY2FwZmQqY2Fwc3lzKnNhbWUqdGltZSoiLAorICAgICAgICAgICAgIipFUlJPUipz
ZXR1cCp0ZXN0X3R3byoiLAorICAgICAgICAgICAgIkUqY2Fwc3lzKmNhcGZkKnNhbWUqdGltZSoi
LAorICAgICAgICAgICAgIioyIGVycm9yKiJdKQorCisgICAgZGVmIHRlc3RfY2FwdHVyaW5nX2dl
dGZpeHR1cmV2YWx1ZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiVGVzdCB0aGF0IGFza2lu
ZyBmb3IgImNhcGZkIiBhbmQgImNhcHN5cyIgdXNpbmcgcmVxdWVzdC5nZXRmaXh0dXJldmFsdWUK
KyAgICAgICAgaW4gdGhlIHNhbWUgdGVzdCBpcyBhbiBlcnJvci4KKyAgICAgICAgIiIiCisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X29uZShjYXBz
eXMsIHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJlcXVlc3QuZ2V0Zml4dHVyZXZhbHVlKCJj
YXBmZCIpCisgICAgICAgICAgICBkZWYgdGVzdF90d28oY2FwZmQsIHJlcXVlc3QpOgorICAgICAg
ICAgICAgICAgIHJlcXVlc3QuZ2V0Zml4dHVyZXZhbHVlKCJjYXBzeXMiKQorICAgICAgICAiIiIp
CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqdGVzdF9vbmUqIiwKKyAgICAgICAg
ICAgICIqY2Fwc3lzKmNhcGZkKnNhbWUqdGltZSoiLAorICAgICAgICAgICAgIip0ZXN0X3R3byoi
LAorICAgICAgICAgICAgIipjYXBmZCpjYXBzeXMqc2FtZSp0aW1lKiIsCisgICAgICAgICAgICAi
KjIgZmFpbGVkIGluKiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9jYXBzeXNjYXBmZGJp
bmFyeShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIK
KyAgICAgICAgICAgIGRlZiB0ZXN0X29uZShjYXBzeXMsIGNhcGZkYmluYXJ5KToKKyAgICAgICAg
ICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QocCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAg
ICAgICIqRVJST1Iqc2V0dXAqdGVzdF9vbmUqIiwKKyAgICAgICAgICAgICJFKmNhcGZkYmluYXJ5
KmNhcHN5cypzYW1lKnRpbWUqIiwKKyAgICAgICAgICAgICIqMSBlcnJvcioiXSkKKworICAgIEBw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSgibWV0aG9kIiwgWyJzeXMiLCAiZmQiXSkKKyAgICBkZWYg
dGVzdF9jYXB0dXJlX2lzX3JlcHJlc2VudGVkX29uX2ZhaWx1cmVfaXNzdWUxMjgoc2VsZiwgdGVz
dGRpciwgbWV0aG9kKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAg
ICAgICAgIGRlZiB0ZXN0X2hlbGxvKGNhcCVzKToKKyAgICAgICAgICAgICAgICBwcmludCAoInh4
eDQyeHh4IikKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAiIiIgJSBtZXRob2Qp
CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHApCisgICAgICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAieHh4NDJ4eHgiLAorICAgICAgICBd
KQorCisgICAgQG5lZWRzb3NkdXAKKyAgICBkZWYgdGVzdF9zdGRmZF9mdW5jdGlvbmFsKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW5zb3VyY2UoIiIi
CisgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhjYXBmZCk6CisgICAgICAgICAgICAgICAgaW1w
b3J0IG9zCisgICAgICAgICAgICAgICAgb3Mud3JpdGUoMSwgIjQyIi5lbmNvZGUoJ2FzY2lpJykp
CisgICAgICAgICAgICAgICAgb3V0LCBlcnIgPSBjYXBmZC5yZWFkb3V0ZXJyKCkKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgb3V0LnN0YXJ0c3dpdGgoIjQyIikKKyAgICAgICAgICAgICAgICBjYXBm
ZC5jbG9zZSgpCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFz
c2VkPTEpCisKKyAgICBAbmVlZHNvc2R1cAorICAgIGRlZiB0ZXN0X2NhcGZkYmluYXJ5KHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW5zb3VyY2UoIiIi
CisgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhjYXBmZGJpbmFyeSk6CisgICAgICAgICAgICAg
ICAgaW1wb3J0IG9zCisgICAgICAgICAgICAgICAgIyBzb21lIGxpa2VseSB1bi1kZWNvZGFibGUg
Ynl0ZXMKKyAgICAgICAgICAgICAgICBvcy53cml0ZSgxLCBiJ1xceGZlXFx4OThcXHgyMCcpCisg
ICAgICAgICAgICAgICAgb3V0LCBlcnIgPSBjYXBmZGJpbmFyeS5yZWFkb3V0ZXJyKCkKKyAgICAg
ICAgICAgICAgICBhc3NlcnQgb3V0ID09IGInXFx4ZmVcXHg5OFxceDIwJworICAgICAgICAgICAg
ICAgIGFzc2VydCBlcnIgPT0gYicnCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjLmFzc2Vy
dG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKAorICAgICAgICBz
eXMudmVyc2lvbl9pbmZvIDwgKDMsKSwKKyAgICAgICAgcmVhc29uPSdvbmx5IGhhdmUgY2Fwc3lz
YmluYXJ5IGluIHB5dGhvbiAzJywKKyAgICApCisgICAgZGVmIHRlc3RfY2Fwc3lzYmluYXJ5KHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW5zb3VyY2Uo
IiIiCisgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhjYXBzeXNiaW5hcnkpOgorICAgICAgICAg
ICAgICAgIGltcG9ydCBzeXMKKyAgICAgICAgICAgICAgICAjIHNvbWUgbGlrZWx5IHVuLWRlY29k
YWJsZSBieXRlcworICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQuYnVmZmVyLndyaXRlKGInXFx4
ZmVcXHg5OFxceDIwJykKKyAgICAgICAgICAgICAgICBvdXQsIGVyciA9IGNhcHN5c2JpbmFyeS5y
ZWFkb3V0ZXJyKCkKKyAgICAgICAgICAgICAgICBhc3NlcnQgb3V0ID09IGInXFx4ZmVcXHg5OFxc
eDIwJworICAgICAgICAgICAgICAgIGFzc2VydCBlcnIgPT0gYicnCisgICAgICAgICIiIikKKyAg
ICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBAcHl0ZXN0Lm1hcmsu
c2tpcGlmKAorICAgICAgICBzeXMudmVyc2lvbl9pbmZvID49ICgzLCksCisgICAgICAgIHJlYXNv
bj0nb25seSBoYXZlIGNhcHN5c2JpbmFyeSBpbiBweXRob24gMycsCisgICAgKQorICAgIGRlZiB0
ZXN0X2NhcHN5c2JpbmFyeV9mb3JiaWRkZW5faW5fcHl0aG9uMihzZWxmLCB0ZXN0ZGlyKToKKyAg
ICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8o
Y2Fwc3lzYmluYXJ5KToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIip0ZXN0X2hlbGxvKiIsCisgICAgICAgICAgICAi
KmNhcHN5c2JpbmFyeSBpcyBvbmx5IHN1cHBvcnRlZCBvbiBweXRob24gMyoiLAorICAgICAgICAg
ICAgIioxIGVycm9yIGluKiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9wYXJ0aWFsX3Nl
dHVwX2ZhaWx1cmUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZp
bGUoIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9oZWxsbyhjYXBzeXMsIG1pc3NpbmdhcmcpOgor
ICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdChwKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWwor
ICAgICAgICAgICAgIip0ZXN0X3BhcnRpYWxfc2V0dXBfZmFpbHVyZSoiLAorICAgICAgICAgICAg
IioxIGVycm9yKiIsCisgICAgICAgIF0pCisKKyAgICBAbmVlZHNvc2R1cAorICAgIGRlZiB0ZXN0
X2tleWJvYXJkaW50ZXJydXB0X2Rpc2FibGVzX2NhcHR1cmluZyhzZWxmLCB0ZXN0ZGlyKToKKyAg
ICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2hl
bGxvKGNhcGZkKToKKyAgICAgICAgICAgICAgICBpbXBvcnQgb3MKKyAgICAgICAgICAgICAgICBv
cy53cml0ZSgxLCBzdHIoNDIpLmVuY29kZSgnYXNjaWknKSkKKyAgICAgICAgICAgICAgICByYWlz
ZSBLZXlib2FyZEludGVycnVwdCgpCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcyhwKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWworICAgICAgICAgICAgIipLZXlib2FyZEludGVycnVwdCoiCisgICAgICAgIF0p
CisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDIKKworICAgIEBweXRlc3QubWFyay5pc3N1
ZTE0CisgICAgZGVmIHRlc3RfY2FwdHVyZV9hbmRfbG9nZ2luZyhzZWxmLCB0ZXN0ZGlyKToKKyAg
ICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBsb2dn
aW5nCisgICAgICAgICAgICBkZWYgdGVzdF9sb2coY2Fwc3lzKToKKyAgICAgICAgICAgICAgICBs
b2dnaW5nLmVycm9yKCd4JykKKyAgICAgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcyhwKQorICAgICAgICBhc3NlcnQgJ2Nsb3NlZCcgbm90
IGluIHJlc3VsdC5zdGRlcnIuc3RyKCkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgn
Zml4dHVyZScsIFsnY2Fwc3lzJywgJ2NhcGZkJ10pCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCdub19jYXB0dXJlJywgW1RydWUsIEZhbHNlXSkKKyAgICBkZWYgdGVzdF9kaXNhYmxlZF9j
YXB0dXJlX2ZpeHR1cmUoc2VsZiwgdGVzdGRpciwgZml4dHVyZSwgbm9fY2FwdHVyZSk6CisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Rpc2FibGVk
KHtmaXh0dXJlfSk6CisgICAgICAgICAgICAgICAgcHJpbnQoJ2NhcHR1cmVkIGJlZm9yZScpCisg
ICAgICAgICAgICAgICAgd2l0aCB7Zml4dHVyZX0uZGlzYWJsZWQoKToKKyAgICAgICAgICAgICAg
ICAgICAgcHJpbnQoJ3doaWxlIGNhcHR1cmUgaXMgZGlzYWJsZWQnKQorICAgICAgICAgICAgICAg
IHByaW50KCdjYXB0dXJlZCBhZnRlcicpCisgICAgICAgICAgICAgICAgYXNzZXJ0IHtmaXh0dXJl
fS5yZWFkb3V0ZXJyKCkgPT0gKCdjYXB0dXJlZCBiZWZvcmVcXG5jYXB0dXJlZCBhZnRlclxcbics
ICcnKQorCisgICAgICAgICAgICBkZWYgdGVzdF9ub3JtYWwoKToKKyAgICAgICAgICAgICAgICBw
cmludCgndGVzdF9ub3JtYWwgZXhlY3V0ZWQnKQorICAgICAgICAiIiIuZm9ybWF0KGZpeHR1cmU9
Zml4dHVyZSkpCisgICAgICAgIGFyZ3MgPSAoJy1zJywpIGlmIG5vX2NhcHR1cmUgZWxzZSAoKQor
ICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCphcmdzKQorICAg
ICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAgICAgICAqd2hpbGUg
Y2FwdHVyZSBpcyBkaXNhYmxlZCoKKyAgICAgICAgIiIiKQorICAgICAgICBhc3NlcnQgJ2NhcHR1
cmVkIGJlZm9yZScgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICAgICAgYXNzZXJ0ICdj
YXB0dXJlZCBhZnRlcicgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICAgICAgaWYgbm9f
Y2FwdHVyZToKKyAgICAgICAgICAgIGFzc2VydCAndGVzdF9ub3JtYWwgZXhlY3V0ZWQnIGluIHJl
c3VsdC5zdGRvdXQuc3RyKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCAndGVz
dF9ub3JtYWwgZXhlY3V0ZWQnIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKyAgICBAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2ZpeHR1cmUnLCBbJ2NhcHN5cycsICdjYXBmZCddKQorICAg
IGRlZiB0ZXN0X2ZpeHR1cmVfdXNlX2J5X290aGVyX2ZpeHR1cmVzKHNlbGYsIHRlc3RkaXIsIGZp
eHR1cmUpOgorICAgICAgICAiIiIKKyAgICAgICAgRW5zdXJlIHRoYXQgY2Fwc3lzIGFuZCBjYXBm
ZCBjYW4gYmUgdXNlZCBieSBvdGhlciBmaXh0dXJlcyBkdXJpbmcgc2V0dXAgYW5kIHRlYXJkb3du
LgorICAgICAgICAiIiIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAg
ICAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorICAgICAgICAgICAgaW1w
b3J0IHN5cworICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBjYXB0dXJlZF9wcmludCh7Zml4dHVyZX0pOgorICAg
ICAgICAgICAgICAgIHByaW50KCdzdGRvdXQgY29udGVudHMgYmVnaW4nKQorICAgICAgICAgICAg
ICAgIHByaW50KCdzdGRlcnIgY29udGVudHMgYmVnaW4nLCBmaWxlPXN5cy5zdGRlcnIpCisgICAg
ICAgICAgICAgICAgb3V0LCBlcnIgPSB7Zml4dHVyZX0ucmVhZG91dGVycigpCisKKyAgICAgICAg
ICAgICAgICB5aWVsZCBvdXQsIGVycgorCisgICAgICAgICAgICAgICAgcHJpbnQoJ3N0ZG91dCBj
b250ZW50cyBlbmQnKQorICAgICAgICAgICAgICAgIHByaW50KCdzdGRlcnIgY29udGVudHMgZW5k
JywgZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICAgICAgICAgIG91dCwgZXJyID0ge2ZpeHR1cmV9
LnJlYWRvdXRlcnIoKQorICAgICAgICAgICAgICAgIGFzc2VydCBvdXQgPT0gJ3N0ZG91dCBjb250
ZW50cyBlbmRcXG4nCisgICAgICAgICAgICAgICAgYXNzZXJ0IGVyciA9PSAnc3RkZXJyIGNvbnRl
bnRzIGVuZFxcbicKKworICAgICAgICAgICAgZGVmIHRlc3RfY2FwdHVyZWRfcHJpbnQoY2FwdHVy
ZWRfcHJpbnQpOgorICAgICAgICAgICAgICAgIG91dCwgZXJyID0gY2FwdHVyZWRfcHJpbnQKKyAg
ICAgICAgICAgICAgICBhc3NlcnQgb3V0ID09ICdzdGRvdXQgY29udGVudHMgYmVnaW5cXG4nCisg
ICAgICAgICAgICAgICAgYXNzZXJ0IGVyciA9PSAnc3RkZXJyIGNvbnRlbnRzIGJlZ2luXFxuJwor
ICAgICAgICAiIiIuZm9ybWF0KGZpeHR1cmU9Zml4dHVyZSkpCisgICAgICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoIioxIHBhc3NlZCoiKQorICAgICAgICBhc3NlcnQgJ3N0ZG91dCBjb250ZW50cyBi
ZWdpbicgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICAgICAgYXNzZXJ0ICdzdGRlcnIg
Y29udGVudHMgYmVnaW4nIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKworZGVmIHRlc3Rf
c2V0dXBfZmFpbHVyZV9kb2VzX25vdF9raWxsX2NhcHR1cmluZyh0ZXN0ZGlyKToKKyAgICBzdWIx
ID0gdGVzdGRpci5ta3B5ZGlyKCJzdWIxIikKKyAgICBzdWIxLmpvaW4oImNvbmZ0ZXN0LnB5Iiku
d3JpdGUoX3B5dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisgICAgICAgIGRlZiBweXRlc3RfcnVudGVz
dF9zZXR1cChpdGVtKToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoNDIpCisgICAgIiIi
KSkKKyAgICBzdWIxLmpvaW4oInRlc3RfbW9kLnB5Iikud3JpdGUoImRlZiB0ZXN0X2Z1bmMxKCk6
IHBhc3MiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHRlc3RkaXIudG1wZGlyLCAn
LS10cmFjZWNvbmZpZycpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAg
ICAgIipWYWx1ZUVycm9yKDQyKSoiLAorICAgICAgICAiKjEgZXJyb3IqIgorICAgIF0pCisKKwor
ZGVmIHRlc3RfZmRmdW5jYXJnX3NraXBzX29uX25vX29zZHVwKHRlc3RkaXIpOgorICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IG9zCisgICAgICAgIGlmIGhhc2F0dHIo
b3MsICdkdXAnKToKKyAgICAgICAgICAgIGRlbCBvcy5kdXAKKyAgICAgICAgZGVmIHRlc3RfaGVs
bG8oY2FwZmQpOgorICAgICAgICAgICAgcGFzcworICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCItLWNhcHR1cmU9bm8iKQorICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICIqMSBza2lwcGVkKiIKKyAgICBdKQorCisKK2Rl
ZiB0ZXN0X2NhcHR1cmVfY29uZnRlc3RfcnVudGVzdF9zZXR1cCh0ZXN0ZGlyKToKKyAgICB0ZXN0
ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgZGVmIHB5dGVzdF9ydW50ZXN0X3NldHVwKCk6
CisgICAgICAgICAgICBwcmludCAoImhlbGxvMTkiKQorICAgICIiIikKKyAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoImRlZiB0ZXN0X2Z1bmMoKTogcGFzcyIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3QoKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICBhc3NlcnQgJ2hlbGxv
MTknIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKworZGVmIHRlc3RfY2FwdHVyZV9iYWRv
dXRwdXRfaXNzdWU0MTIodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAg
ICAgICBpbXBvcnQgb3MKKworICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICBv
bWcgPSBieXRlYXJyYXkoWzEsMTI5LDFdKQorICAgICAgICAgICAgb3Mud3JpdGUoMSwgb21nKQor
ICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KCctLWNhcD1mZCcpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCcn
JworICAgICAgICAqZGVmIHRlc3RfZnVuYyoKKyAgICAgICAgKmFzc2VydCAwKgorICAgICAgICAq
Q2FwdHVyZWQqCisgICAgICAgICoxIGZhaWxlZCoKKyAgICAnJycpCisKKworZGVmIHRlc3RfY2Fw
dHVyZV9lYXJseV9vcHRpb25fcGFyc2luZyh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2Vjb25m
dGVzdCgiIiIKKyAgICAgICAgZGVmIHB5dGVzdF9ydW50ZXN0X3NldHVwKCk6CisgICAgICAgICAg
ICBwcmludCAoImhlbGxvMTkiKQorICAgICIiIikKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoImRl
ZiB0ZXN0X2Z1bmMoKTogcGFzcyIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12
cyIpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorICAgIGFzc2VydCAnaGVsbG8xOScgaW4g
cmVzdWx0LnN0ZG91dC5zdHIoKQorCisKK2RlZiB0ZXN0X2NhcHR1cmVfYmluYXJ5X291dHB1dCh0
ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUociIiIgorICAgICAgICBpbXBvcnQgcHl0
ZXN0CisKKyAgICAgICAgZGVmIHRlc3RfYSgpOgorICAgICAgICAgICAgaW1wb3J0IHN5cworICAg
ICAgICAgICAgaW1wb3J0IHN1YnByb2Nlc3MKKyAgICAgICAgICAgIHN1YnByb2Nlc3MuY2FsbChb
c3lzLmV4ZWN1dGFibGUsIF9fZmlsZV9fXSkKKworICAgICAgICBkZWYgdGVzdF9mb28oKToKKyAg
ICAgICAgICAgIGltcG9ydCBvcztvcy53cml0ZSgxLCBiJ1x4YzMnKQorCisgICAgICAgIGlmIF9f
bmFtZV9fID09ICdfX21haW5fXyc6CisgICAgICAgICAgICB0ZXN0X2ZvbygpCisgICAgICAgICIi
IikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLS1hc3NlcnQ9cGxhaW4nKQorICAg
IHJlc3VsdC5hc3NlcnRfb3V0Y29tZXMocGFzc2VkPTIpCisKKworZGVmIHRlc3RfZXJyb3JfZHVy
aW5nX3JlYWRvdXRlcnIodGVzdGRpcik6CisgICAgIiIiTWFrZSBzdXJlIHdlIHN1c3BlbmQgY2Fw
dHVyaW5nIGlmIGVycm9ycyBvY2N1ciBkdXJpbmcgcmVhZG91dGVyciIiIgorICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZShweXRlc3RfeHl6PSIiIgorICAgICAgICBmcm9tIF9weXRlc3QuY2FwdHVyZSBp
bXBvcnQgRkRDYXB0dXJlCisgICAgICAgIGRlZiBiYWRfc25hcChzZWxmKToKKyAgICAgICAgICAg
IHJhaXNlIEV4Y2VwdGlvbignYm9vbScpCisgICAgICAgIGFzc2VydCBGRENhcHR1cmUuc25hcAor
ICAgICAgICBGRENhcHR1cmUuc25hcCA9IGJhZF9zbmFwCisgICAgIiIiKQorICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoCisgICAgICAgICItcCIsICJweXRlc3RfeHl6
IiwgIi0tdmVyc2lvbiIsIHN5c3BhdGhpbnNlcnQ9VHJ1ZQorICAgICkKKyAgICByZXN1bHQuc3Rk
ZXJyLmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKmluIGJhZF9zbmFwIiwKKyAgICAgICAgIiAg
ICByYWlzZSBFeGNlcHRpb24oJ2Jvb20nKSIsCisgICAgICAgICJFeGNlcHRpb246IGJvb20iLAor
ICAgIF0pCisKKworY2xhc3MgVGVzdENhcHR1cmVJTyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X3Rl
eHQoc2VsZik6CisgICAgICAgIGYgPSBjYXB0dXJlLkNhcHR1cmVJTygpCisgICAgICAgIGYud3Jp
dGUoImhlbGxvIikKKyAgICAgICAgcyA9IGYuZ2V0dmFsdWUoKQorICAgICAgICBhc3NlcnQgcyA9
PSAiaGVsbG8iCisgICAgICAgIGYuY2xvc2UoKQorCisgICAgZGVmIHRlc3RfdW5pY29kZV9hbmRf
c3RyX21peHR1cmUoc2VsZik6CisgICAgICAgIGYgPSBjYXB0dXJlLkNhcHR1cmVJTygpCisgICAg
ICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgorICAgICAgICAgICAgZi53cml0ZSgi
XHUwMGY2IikKKyAgICAgICAgICAgIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yLCAiZi53cml0ZShi
eXRlcygnaGVsbG8nLCAnVVRGLTgnKSkiKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZi53
cml0ZSh1bmljb2RlKCJcdTAwZjYiLCAnVVRGLTgnKSkKKyAgICAgICAgICAgIGYud3JpdGUoImhl
bGxvIikgICMgYnl0ZXMKKyAgICAgICAgICAgIHMgPSBmLmdldHZhbHVlKCkKKyAgICAgICAgICAg
IGYuY2xvc2UoKQorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UocywgdW5pY29kZSkKKwor
ICAgIEBweXRlc3QubWFyay5za2lwaWYoCisgICAgICAgIHN5cy52ZXJzaW9uX2luZm9bMF0gPT0g
MiwKKyAgICAgICAgcmVhc29uPSdweXRob24gMyBvbmx5IGJlaGF2aW91cicsCisgICAgKQorICAg
IGRlZiB0ZXN0X3dyaXRlX2J5dGVzX3RvX2J1ZmZlcihzZWxmKToKKyAgICAgICAgIiIiSW4gcHl0
aG9uMywgc3Rkb3V0IC8gc3RkZXJyIGFyZSB0ZXh0IGlvIHdyYXBwZXJzIChleHBvc2luZyBhIGJ1
ZmZlcgorICAgICAgICBwcm9wZXJ0eSBvZiB0aGUgdW5kZXJseWluZyBieXRlc3RyZWFtKS4gIFNl
ZSBpc3N1ZSAjMTQwNworICAgICAgICAiIiIKKyAgICAgICAgZiA9IGNhcHR1cmUuQ2FwdHVyZUlP
KCkKKyAgICAgICAgZi5idWZmZXIud3JpdGUoYidmb29cclxuJykKKyAgICAgICAgYXNzZXJ0IGYu
Z2V0dmFsdWUoKSA9PSAnZm9vXHJcbicKKworCitkZWYgdGVzdF9ieXRlc19pbygpOgorICAgIGYg
PSBweS5pby5CeXRlc0lPKCkKKyAgICBmLndyaXRlKHRvYnl0ZXMoImhlbGxvIikpCisgICAgcHl0
ZXN0LnJhaXNlcyhUeXBlRXJyb3IsICJmLndyaXRlKHRvdGV4dCgnaGVsbG8nKSkiKQorICAgIHMg
PSBmLmdldHZhbHVlKCkKKyAgICBhc3NlcnQgcyA9PSB0b2J5dGVzKCJoZWxsbyIpCisKKworZGVm
IHRlc3RfZG9udHJlYWRmcm9taW5wdXQoKToKKyAgICBmcm9tIF9weXRlc3QuY2FwdHVyZSBpbXBv
cnQgRG9udFJlYWRGcm9tSW5wdXQKKyAgICBmID0gRG9udFJlYWRGcm9tSW5wdXQoKQorICAgIGFz
c2VydCBub3QgZi5pc2F0dHkoKQorICAgIHB5dGVzdC5yYWlzZXMoSU9FcnJvciwgZi5yZWFkKQor
ICAgIHB5dGVzdC5yYWlzZXMoSU9FcnJvciwgZi5yZWFkbGluZXMpCisgICAgcHl0ZXN0LnJhaXNl
cyhJT0Vycm9yLCBpdGVyLCBmKQorICAgIHB5dGVzdC5yYWlzZXMoVW5zdXBwb3J0ZWRPcGVyYXRp
b24sIGYuZmlsZW5vKQorICAgIGYuY2xvc2UoKSAgIyBqdXN0IGZvciBjb21wbGV0ZW5lc3MKKwor
CitAcHl0ZXN0Lm1hcmsuc2tpcGlmKCdzeXMudmVyc2lvbl9pbmZvIDwgKDMsKScsIHJlYXNvbj0n
cHl0aG9uMiBoYXMgbm8gYnVmZmVyJykKK2RlZiB0ZXN0X2RvbnRyZWFkZnJvbWlucHV0X2J1ZmZl
cl9weXRob24zKCk6CisgICAgZnJvbSBfcHl0ZXN0LmNhcHR1cmUgaW1wb3J0IERvbnRSZWFkRnJv
bUlucHV0CisgICAgZiA9IERvbnRSZWFkRnJvbUlucHV0KCkKKyAgICBmYiA9IGYuYnVmZmVyCisg
ICAgYXNzZXJ0IG5vdCBmYi5pc2F0dHkoKQorICAgIHB5dGVzdC5yYWlzZXMoSU9FcnJvciwgZmIu
cmVhZCkKKyAgICBweXRlc3QucmFpc2VzKElPRXJyb3IsIGZiLnJlYWRsaW5lcykKKyAgICBweXRl
c3QucmFpc2VzKElPRXJyb3IsIGl0ZXIsIGZiKQorICAgIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJv
ciwgZmIuZmlsZW5vKQorICAgIGYuY2xvc2UoKSAgIyBqdXN0IGZvciBjb21wbGV0ZW5lc3MKKwor
CitAcHl0ZXN0Lm1hcmsuc2tpcGlmKCdzeXMudmVyc2lvbl9pbmZvID49ICgzLCknLCByZWFzb249
J3B5dGhvbjIgaGFzIG5vIGJ1ZmZlcicpCitkZWYgdGVzdF9kb250cmVhZGZyb21pbnB1dF9idWZm
ZXJfcHl0aG9uMigpOgorICAgIGZyb20gX3B5dGVzdC5jYXB0dXJlIGltcG9ydCBEb250UmVhZEZy
b21JbnB1dAorICAgIGYgPSBEb250UmVhZEZyb21JbnB1dCgpCisgICAgd2l0aCBweXRlc3QucmFp
c2VzKEF0dHJpYnV0ZUVycm9yKToKKyAgICAgICAgZi5idWZmZXIKKyAgICBmLmNsb3NlKCkgICMg
anVzdCBmb3IgY29tcGxldGVuZXNzCisKKworQHB5dGVzdC55aWVsZF9maXh0dXJlCitkZWYgdG1w
ZmlsZSh0ZXN0ZGlyKToKKyAgICBmID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiKS5vcGVuKCd3Yisn
KQorICAgIHlpZWxkIGYKKyAgICBpZiBub3QgZi5jbG9zZWQ6CisgICAgICAgIGYuY2xvc2UoKQor
CisKK0BuZWVkc29zZHVwCitkZWYgdGVzdF9kdXBmaWxlKHRtcGZpbGUpOgorICAgIGZsaXN0ID0g
W10KKyAgICBmb3IgaSBpbiByYW5nZSg1KToKKyAgICAgICAgbmYgPSBjYXB0dXJlLnNhZmVfdGV4
dF9kdXBmaWxlKHRtcGZpbGUsICJ3YiIpCisgICAgICAgIGFzc2VydCBuZiAhPSB0bXBmaWxlCisg
ICAgICAgIGFzc2VydCBuZi5maWxlbm8oKSAhPSB0bXBmaWxlLmZpbGVubygpCisgICAgICAgIGFz
c2VydCBuZiBub3QgaW4gZmxpc3QKKyAgICAgICAgcHJpbnQoaSwgZW5kPSIiLCBmaWxlPW5mKQor
ICAgICAgICBmbGlzdC5hcHBlbmQobmYpCisKKyAgICBmbmFtZV9vcGVuID0gZmxpc3RbMF0ubmFt
ZQorICAgIGFzc2VydCBmbmFtZV9vcGVuID09IHJlcHIoZmxpc3RbMF0uYnVmZmVyKQorCisgICAg
Zm9yIGkgaW4gcmFuZ2UoNSk6CisgICAgICAgIGYgPSBmbGlzdFtpXQorICAgICAgICBmLmNsb3Nl
KCkKKyAgICBmbmFtZV9jbG9zZWQgPSBmbGlzdFswXS5uYW1lCisgICAgYXNzZXJ0IGZuYW1lX2Ns
b3NlZCA9PSByZXByKGZsaXN0WzBdLmJ1ZmZlcikKKyAgICBhc3NlcnQgZm5hbWVfY2xvc2VkICE9
IGZuYW1lX29wZW4KKyAgICB0bXBmaWxlLnNlZWsoMCkKKyAgICBzID0gdG1wZmlsZS5yZWFkKCkK
KyAgICBhc3NlcnQgIjAxMjM0IiBpbiByZXByKHMpCisgICAgdG1wZmlsZS5jbG9zZSgpCisgICAg
YXNzZXJ0IGZuYW1lX2Nsb3NlZCA9PSByZXByKGZsaXN0WzBdLmJ1ZmZlcikKKworCitkZWYgdGVz
dF9kdXBmaWxlX29uX2J5dGVzaW8oKToKKyAgICBpbyA9IHB5LmlvLkJ5dGVzSU8oKQorICAgIGYg
PSBjYXB0dXJlLnNhZmVfdGV4dF9kdXBmaWxlKGlvLCAid2IiKQorICAgIGYud3JpdGUoImhlbGxv
IikKKyAgICBhc3NlcnQgaW8uZ2V0dmFsdWUoKSA9PSBiImhlbGxvIgorICAgIGFzc2VydCAnQnl0
ZXNJTyBvYmplY3QnIGluIGYubmFtZQorCisKK2RlZiB0ZXN0X2R1cGZpbGVfb25fdGV4dGlvKCk6
CisgICAgaW8gPSBweS5pby5UZXh0SU8oKQorICAgIGYgPSBjYXB0dXJlLnNhZmVfdGV4dF9kdXBm
aWxlKGlvLCAid2IiKQorICAgIGYud3JpdGUoImhlbGxvIikKKyAgICBhc3NlcnQgaW8uZ2V0dmFs
dWUoKSA9PSAiaGVsbG8iCisgICAgYXNzZXJ0IG5vdCBoYXNhdHRyKGYsICduYW1lJykKKworCitA
Y29udGV4dGxpYi5jb250ZXh0bWFuYWdlcgorZGVmIGxzb2ZfY2hlY2soKToKKyAgICBwaWQgPSBv
cy5nZXRwaWQoKQorICAgIHRyeToKKyAgICAgICAgb3V0ID0gcHkucHJvY2Vzcy5jbWRleGVjKCJs
c29mIC1wICVkIiAlIHBpZCkKKyAgICBleGNlcHQgKHB5LnByb2Nlc3MuY21kZXhlYy5FcnJvciwg
VW5pY29kZURlY29kZUVycm9yKToKKyAgICAgICAgIyBhYm91dCBVbmljb2RlRGVjb2RlRXJyb3Is
IHNlZSBub3RlIG9uIHB5dGVzdGVyCisgICAgICAgIHB5dGVzdC5za2lwKCJjb3VsZCBub3QgcnVu
ICdsc29mJyIpCisgICAgeWllbGQKKyAgICBvdXQyID0gcHkucHJvY2Vzcy5jbWRleGVjKCJsc29m
IC1wICVkIiAlIHBpZCkKKyAgICBsZW4xID0gbGVuKFt4IGZvciB4IGluIG91dC5zcGxpdCgiXG4i
KSBpZiAiUkVHIiBpbiB4XSkKKyAgICBsZW4yID0gbGVuKFt4IGZvciB4IGluIG91dDIuc3BsaXQo
IlxuIikgaWYgIlJFRyIgaW4geF0pCisgICAgYXNzZXJ0IGxlbjIgPCBsZW4xICsgMywgb3V0Mgor
CisKK2NsYXNzIFRlc3RGRENhcHR1cmUob2JqZWN0KToKKyAgICBweXRlc3RtYXJrID0gbmVlZHNv
c2R1cAorCisgICAgZGVmIHRlc3Rfc2ltcGxlKHNlbGYsIHRtcGZpbGUpOgorICAgICAgICBmZCA9
IHRtcGZpbGUuZmlsZW5vKCkKKyAgICAgICAgY2FwID0gY2FwdHVyZS5GRENhcHR1cmUoZmQpCisg
ICAgICAgIGRhdGEgPSB0b2J5dGVzKCJoZWxsbyIpCisgICAgICAgIG9zLndyaXRlKGZkLCBkYXRh
KQorICAgICAgICBzID0gY2FwLnNuYXAoKQorICAgICAgICBjYXAuZG9uZSgpCisgICAgICAgIGFz
c2VydCBub3QgcworICAgICAgICBjYXAgPSBjYXB0dXJlLkZEQ2FwdHVyZShmZCkKKyAgICAgICAg
Y2FwLnN0YXJ0KCkKKyAgICAgICAgb3Mud3JpdGUoZmQsIGRhdGEpCisgICAgICAgIHMgPSBjYXAu
c25hcCgpCisgICAgICAgIGNhcC5kb25lKCkKKyAgICAgICAgYXNzZXJ0IHMgPT0gImhlbGxvIgor
CisgICAgZGVmIHRlc3Rfc2ltcGxlX21hbnkoc2VsZiwgdG1wZmlsZSk6CisgICAgICAgIGZvciBp
IGluIHJhbmdlKDEwKToKKyAgICAgICAgICAgIHNlbGYudGVzdF9zaW1wbGUodG1wZmlsZSkKKwor
ICAgIGRlZiB0ZXN0X3NpbXBsZV9tYW55X2NoZWNrX29wZW5fZmlsZXMoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHdpdGggbHNvZl9jaGVjaygpOgorICAgICAgICAgICAgd2l0aCB0ZXN0ZGlyLm1h
a2VweWZpbGUoIiIpLm9wZW4oJ3diKycpIGFzIHRtcGZpbGU6CisgICAgICAgICAgICAgICAgc2Vs
Zi50ZXN0X3NpbXBsZV9tYW55KHRtcGZpbGUpCisKKyAgICBkZWYgdGVzdF9zaW1wbGVfZmFpbF9z
ZWNvbmRfc3RhcnQoc2VsZiwgdG1wZmlsZSk6CisgICAgICAgIGZkID0gdG1wZmlsZS5maWxlbm8o
KQorICAgICAgICBjYXAgPSBjYXB0dXJlLkZEQ2FwdHVyZShmZCkKKyAgICAgICAgY2FwLmRvbmUo
KQorICAgICAgICBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIGNhcC5zdGFydCkKKworICAgIGRl
ZiB0ZXN0X3N0ZGVycihzZWxmKToKKyAgICAgICAgY2FwID0gY2FwdHVyZS5GRENhcHR1cmUoMikK
KyAgICAgICAgY2FwLnN0YXJ0KCkKKyAgICAgICAgcHJpbnQoImhlbGxvIiwgZmlsZT1zeXMuc3Rk
ZXJyKQorICAgICAgICBzID0gY2FwLnNuYXAoKQorICAgICAgICBjYXAuZG9uZSgpCisgICAgICAg
IGFzc2VydCBzID09ICJoZWxsb1xuIgorCisgICAgZGVmIHRlc3Rfc3RkaW4oc2VsZiwgdG1wZmls
ZSk6CisgICAgICAgIGNhcCA9IGNhcHR1cmUuRkRDYXB0dXJlKDApCisgICAgICAgIGNhcC5zdGFy
dCgpCisgICAgICAgIHggPSBvcy5yZWFkKDAsIDEwMCkuc3RyaXAoKQorICAgICAgICBjYXAuZG9u
ZSgpCisgICAgICAgIGFzc2VydCB4ID09IHRvYnl0ZXMoJycpCisKKyAgICBkZWYgdGVzdF93cml0
ZW9yZyhzZWxmLCB0bXBmaWxlKToKKyAgICAgICAgZGF0YTEsIGRhdGEyID0gdG9ieXRlcygiZm9v
IiksIHRvYnl0ZXMoImJhciIpCisgICAgICAgIGNhcCA9IGNhcHR1cmUuRkRDYXB0dXJlKHRtcGZp
bGUuZmlsZW5vKCkpCisgICAgICAgIGNhcC5zdGFydCgpCisgICAgICAgIHRtcGZpbGUud3JpdGUo
ZGF0YTEpCisgICAgICAgIHRtcGZpbGUuZmx1c2goKQorICAgICAgICBjYXAud3JpdGVvcmcoZGF0
YTIpCisgICAgICAgIHNjYXAgPSBjYXAuc25hcCgpCisgICAgICAgIGNhcC5kb25lKCkKKyAgICAg
ICAgYXNzZXJ0IHNjYXAgPT0gdG90ZXh0KGRhdGExKQorICAgICAgICB3aXRoIG9wZW4odG1wZmls
ZS5uYW1lLCAncmInKSBhcyBzdG1wX2ZpbGU6CisgICAgICAgICAgICBzdG1wID0gc3RtcF9maWxl
LnJlYWQoKQorICAgICAgICAgICAgYXNzZXJ0IHN0bXAgPT0gZGF0YTIKKworICAgIGRlZiB0ZXN0
X3NpbXBsZV9yZXN1bWVfc3VzcGVuZChzZWxmLCB0bXBmaWxlKToKKyAgICAgICAgd2l0aCBzYXZl
ZF9mZCgxKToKKyAgICAgICAgICAgIGNhcCA9IGNhcHR1cmUuRkRDYXB0dXJlKDEpCisgICAgICAg
ICAgICBjYXAuc3RhcnQoKQorICAgICAgICAgICAgZGF0YSA9IHRvYnl0ZXMoImhlbGxvIikKKyAg
ICAgICAgICAgIG9zLndyaXRlKDEsIGRhdGEpCisgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRl
KCJ3aGF0ZXZlciIpCisgICAgICAgICAgICBzID0gY2FwLnNuYXAoKQorICAgICAgICAgICAgYXNz
ZXJ0IHMgPT0gImhlbGxvd2hhdGV2ZXIiCisgICAgICAgICAgICBjYXAuc3VzcGVuZCgpCisgICAg
ICAgICAgICBvcy53cml0ZSgxLCB0b2J5dGVzKCJ3b3JsZCIpKQorICAgICAgICAgICAgc3lzLnN0
ZG91dC53cml0ZSgicWx3a2VqIikKKyAgICAgICAgICAgIGFzc2VydCBub3QgY2FwLnNuYXAoKQor
ICAgICAgICAgICAgY2FwLnJlc3VtZSgpCisgICAgICAgICAgICBvcy53cml0ZSgxLCB0b2J5dGVz
KCJidXQgbm93IikpCisgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCIgeWVzXG4iKQorICAg
ICAgICAgICAgcyA9IGNhcC5zbmFwKCkKKyAgICAgICAgICAgIGFzc2VydCBzID09ICJidXQgbm93
IHllc1xuIgorICAgICAgICAgICAgY2FwLnN1c3BlbmQoKQorICAgICAgICAgICAgY2FwLmRvbmUo
KQorICAgICAgICAgICAgcHl0ZXN0LnJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgY2FwLnN1c3BlbmQp
CisKKworQGNvbnRleHRsaWIuY29udGV4dG1hbmFnZXIKK2RlZiBzYXZlZF9mZChmZCk6CisgICAg
bmV3X2ZkID0gb3MuZHVwKGZkKQorICAgIHRyeToKKyAgICAgICAgeWllbGQKKyAgICBmaW5hbGx5
OgorICAgICAgICBvcy5kdXAyKG5ld19mZCwgZmQpCisgICAgICAgIG9zLmNsb3NlKG5ld19mZCkK
KworCitjbGFzcyBUZXN0U3RkQ2FwdHVyZShvYmplY3QpOgorICAgIGNhcHR1cmVjbGFzcyA9IHN0
YXRpY21ldGhvZChTdGRDYXB0dXJlKQorCisgICAgQGNvbnRleHRsaWIuY29udGV4dG1hbmFnZXIK
KyAgICBkZWYgZ2V0Y2FwdHVyZShzZWxmLCAqKmt3KToKKyAgICAgICAgY2FwID0gc2VsZi5fX2Ns
YXNzX18uY2FwdHVyZWNsYXNzKCoqa3cpCisgICAgICAgIGNhcC5zdGFydF9jYXB0dXJpbmcoKQor
ICAgICAgICB0cnk6CisgICAgICAgICAgICB5aWVsZCBjYXAKKyAgICAgICAgZmluYWxseToKKyAg
ICAgICAgICAgIGNhcC5zdG9wX2NhcHR1cmluZygpCisKKyAgICBkZWYgdGVzdF9jYXB0dXJpbmdf
ZG9uZV9zaW1wbGUoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5nZXRjYXB0dXJlKCkgYXMgY2Fw
OgorICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiaGVsbG8iKQorICAgICAgICAgICAgc3lz
LnN0ZGVyci53cml0ZSgid29ybGQiKQorICAgICAgICAgICAgb3V0LCBlcnIgPSBjYXAucmVhZG91
dGVycigpCisgICAgICAgIGFzc2VydCBvdXQgPT0gImhlbGxvIgorICAgICAgICBhc3NlcnQgZXJy
ID09ICJ3b3JsZCIKKworICAgIGRlZiB0ZXN0X2NhcHR1cmluZ19yZXNldF9zaW1wbGUoc2VsZik6
CisgICAgICAgIHdpdGggc2VsZi5nZXRjYXB0dXJlKCkgYXMgY2FwOgorICAgICAgICAgICAgcHJp
bnQoImhlbGxvIHdvcmxkIikKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoImhlbGxvIGVy
cm9yXG4iKQorICAgICAgICAgICAgb3V0LCBlcnIgPSBjYXAucmVhZG91dGVycigpCisgICAgICAg
IGFzc2VydCBvdXQgPT0gImhlbGxvIHdvcmxkXG4iCisgICAgICAgIGFzc2VydCBlcnIgPT0gImhl
bGxvIGVycm9yXG4iCisKKyAgICBkZWYgdGVzdF9jYXB0dXJpbmdfcmVhZG91dGVycihzZWxmKToK
KyAgICAgICAgd2l0aCBzZWxmLmdldGNhcHR1cmUoKSBhcyBjYXA6CisgICAgICAgICAgICBwcmlu
dCgiaGVsbG8gd29ybGQiKQorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiaGVsbG8gZXJy
b3JcbiIpCisgICAgICAgICAgICBvdXQsIGVyciA9IGNhcC5yZWFkb3V0ZXJyKCkKKyAgICAgICAg
ICAgIGFzc2VydCBvdXQgPT0gImhlbGxvIHdvcmxkXG4iCisgICAgICAgICAgICBhc3NlcnQgZXJy
ID09ICJoZWxsbyBlcnJvclxuIgorICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiZXJyb3Iy
IikKKyAgICAgICAgICAgIG91dCwgZXJyID0gY2FwLnJlYWRvdXRlcnIoKQorICAgICAgICBhc3Nl
cnQgZXJyID09ICJlcnJvcjIiCisKKyAgICBkZWYgdGVzdF9jYXB0dXJlX3Jlc3VsdHNfYWNjZXNz
aWJsZV9ieV9hdHRyaWJ1dGUoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5nZXRjYXB0dXJlKCkg
YXMgY2FwOgorICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiaGVsbG8iKQorICAgICAgICAg
ICAgc3lzLnN0ZGVyci53cml0ZSgid29ybGQiKQorICAgICAgICAgICAgY2FwdHVyZV9yZXN1bHQg
PSBjYXAucmVhZG91dGVycigpCisgICAgICAgIGFzc2VydCBjYXB0dXJlX3Jlc3VsdC5vdXQgPT0g
ImhlbGxvIgorICAgICAgICBhc3NlcnQgY2FwdHVyZV9yZXN1bHQuZXJyID09ICJ3b3JsZCIKKwor
ICAgIGRlZiB0ZXN0X2NhcHR1cmluZ19yZWFkb3V0ZXJyX3VuaWNvZGUoc2VsZik6CisgICAgICAg
IHdpdGggc2VsZi5nZXRjYXB0dXJlKCkgYXMgY2FwOgorICAgICAgICAgICAgcHJpbnQoImh4XHhj
NFx4ODVceGM0XHg4NyIpCisgICAgICAgICAgICBvdXQsIGVyciA9IGNhcC5yZWFkb3V0ZXJyKCkK
KyAgICAgICAgYXNzZXJ0IG91dCA9PSBweS5idWlsdGluLl90b3RleHQoImh4XHhjNFx4ODVceGM0
XHg4N1xuIiwgInV0ZjgiKQorCisgICAgQHB5dGVzdC5tYXJrLnNraXBpZignc3lzLnZlcnNpb25f
aW5mbyA+PSAoMywpJywKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ndGV4dCBvdXRw
dXQgZGlmZmVyZW50IGZvciBieXRlcyBvbiBweXRob24zJykKKyAgICBkZWYgdGVzdF9jYXB0dXJp
bmdfcmVhZG91dGVycl9kZWNvZGVfZXJyb3JfaGFuZGxpbmcoc2VsZik6CisgICAgICAgIHdpdGgg
c2VsZi5nZXRjYXB0dXJlKCkgYXMgY2FwOgorICAgICAgICAgICAgIyB0cmlnZ2VyZWQgYSBpbnRl
cm5hbCBlcnJvciBpbiBweXRlc3QKKyAgICAgICAgICAgIHByaW50KCdceGE2JykKKyAgICAgICAg
ICAgIG91dCwgZXJyID0gY2FwLnJlYWRvdXRlcnIoKQorICAgICAgICBhc3NlcnQgb3V0ID09IHB5
LmJ1aWx0aW4uX3RvdGV4dCgnXHVmZmZkXG4nLCAndW5pY29kZS1lc2NhcGUnKQorCisgICAgZGVm
IHRlc3RfcmVzZXRfdHdpY2VfZXJyb3Ioc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5nZXRjYXB0
dXJlKCkgYXMgY2FwOgorICAgICAgICAgICAgcHJpbnQoImhlbGxvIikKKyAgICAgICAgICAgIG91
dCwgZXJyID0gY2FwLnJlYWRvdXRlcnIoKQorICAgICAgICBweXRlc3QucmFpc2VzKFZhbHVlRXJy
b3IsIGNhcC5zdG9wX2NhcHR1cmluZykKKyAgICAgICAgYXNzZXJ0IG91dCA9PSAiaGVsbG9cbiIK
KyAgICAgICAgYXNzZXJ0IG5vdCBlcnIKKworICAgIGRlZiB0ZXN0X2NhcHR1cmluZ19tb2RpZnlf
c3lzb3V0ZXJyX2luX2JldHdlZW4oc2VsZik6CisgICAgICAgIG9sZG91dCA9IHN5cy5zdGRvdXQK
KyAgICAgICAgb2xkZXJyID0gc3lzLnN0ZGVycgorICAgICAgICB3aXRoIHNlbGYuZ2V0Y2FwdHVy
ZSgpIGFzIGNhcDoKKyAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoImhlbGxvIikKKyAgICAg
ICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIndvcmxkIikKKyAgICAgICAgICAgIHN5cy5zdGRvdXQg
PSBjYXB0dXJlLkNhcHR1cmVJTygpCisgICAgICAgICAgICBzeXMuc3RkZXJyID0gY2FwdHVyZS5D
YXB0dXJlSU8oKQorICAgICAgICAgICAgcHJpbnQoIm5vdCBzZWVuIikKKyAgICAgICAgICAgIHN5
cy5zdGRlcnIud3JpdGUoIm5vdCBzZWVuXG4iKQorICAgICAgICAgICAgb3V0LCBlcnIgPSBjYXAu
cmVhZG91dGVycigpCisgICAgICAgIGFzc2VydCBvdXQgPT0gImhlbGxvIgorICAgICAgICBhc3Nl
cnQgZXJyID09ICJ3b3JsZCIKKyAgICAgICAgYXNzZXJ0IHN5cy5zdGRvdXQgPT0gb2xkb3V0Cisg
ICAgICAgIGFzc2VydCBzeXMuc3RkZXJyID09IG9sZGVycgorCisgICAgZGVmIHRlc3RfY2FwdHVy
aW5nX2Vycm9yX3JlY3Vyc2l2ZShzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmdldGNhcHR1cmUo
KSBhcyBjYXAxOgorICAgICAgICAgICAgcHJpbnQoImNhcDEiKQorICAgICAgICAgICAgd2l0aCBz
ZWxmLmdldGNhcHR1cmUoKSBhcyBjYXAyOgorICAgICAgICAgICAgICAgIHByaW50KCJjYXAyIikK
KyAgICAgICAgICAgICAgICBvdXQyLCBlcnIyID0gY2FwMi5yZWFkb3V0ZXJyKCkKKyAgICAgICAg
ICAgICAgICBvdXQxLCBlcnIxID0gY2FwMS5yZWFkb3V0ZXJyKCkKKyAgICAgICAgYXNzZXJ0IG91
dDEgPT0gImNhcDFcbiIKKyAgICAgICAgYXNzZXJ0IG91dDIgPT0gImNhcDJcbiIKKworICAgIGRl
ZiB0ZXN0X2p1c3Rfb3V0X2NhcHR1cmUoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5nZXRjYXB0
dXJlKG91dD1UcnVlLCBlcnI9RmFsc2UpIGFzIGNhcDoKKyAgICAgICAgICAgIHN5cy5zdGRvdXQu
d3JpdGUoImhlbGxvIikKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIndvcmxkIikKKyAg
ICAgICAgICAgIG91dCwgZXJyID0gY2FwLnJlYWRvdXRlcnIoKQorICAgICAgICBhc3NlcnQgb3V0
ID09ICJoZWxsbyIKKyAgICAgICAgYXNzZXJ0IG5vdCBlcnIKKworICAgIGRlZiB0ZXN0X2p1c3Rf
ZXJyX2NhcHR1cmUoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5nZXRjYXB0dXJlKG91dD1GYWxz
ZSwgZXJyPVRydWUpIGFzIGNhcDoKKyAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoImhlbGxv
IikKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIndvcmxkIikKKyAgICAgICAgICAgIG91
dCwgZXJyID0gY2FwLnJlYWRvdXRlcnIoKQorICAgICAgICBhc3NlcnQgZXJyID09ICJ3b3JsZCIK
KyAgICAgICAgYXNzZXJ0IG5vdCBvdXQKKworICAgIGRlZiB0ZXN0X3N0ZGluX3Jlc3RvcmVkKHNl
bGYpOgorICAgICAgICBvbGQgPSBzeXMuc3RkaW4KKyAgICAgICAgd2l0aCBzZWxmLmdldGNhcHR1
cmUoaW5fPVRydWUpOgorICAgICAgICAgICAgbmV3c3RkaW4gPSBzeXMuc3RkaW4KKyAgICAgICAg
YXNzZXJ0IG5ld3N0ZGluICE9IHN5cy5zdGRpbgorICAgICAgICBhc3NlcnQgc3lzLnN0ZGluIGlz
IG9sZAorCisgICAgZGVmIHRlc3Rfc3RkaW5fbnVsbGVkX2J5X2RlZmF1bHQoc2VsZik6CisgICAg
ICAgIHByaW50KCJYWFggdGhpcyB0ZXN0IG1heSB3ZWxsIGhhbmcgaW5zdGVhZCBvZiBjcmFzaGlu
ZyIpCisgICAgICAgIHByaW50KCJYWFggd2hpY2ggaW5kaWNhdGVzIGFuIGVycm9yIGluIHRoZSB1
bmRlcmx5aW5nIGNhcHR1cmluZyIpCisgICAgICAgIHByaW50KCJYWFggbWVjaGFuaXNtcyIpCisg
ICAgICAgIHdpdGggc2VsZi5nZXRjYXB0dXJlKCk6CisgICAgICAgICAgICBweXRlc3QucmFpc2Vz
KElPRXJyb3IsICJzeXMuc3RkaW4ucmVhZCgpIikKKworCitjbGFzcyBUZXN0U3RkQ2FwdHVyZUZE
KFRlc3RTdGRDYXB0dXJlKToKKyAgICBweXRlc3RtYXJrID0gbmVlZHNvc2R1cAorICAgIGNhcHR1
cmVjbGFzcyA9IHN0YXRpY21ldGhvZChTdGRDYXB0dXJlRkQpCisKKyAgICBkZWYgdGVzdF9zaW1w
bGVfb25seV9mZChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIi
IgorICAgICAgICAgICAgaW1wb3J0IG9zCisgICAgICAgICAgICBkZWYgdGVzdF94KCk6CisgICAg
ICAgICAgICAgICAgb3Mud3JpdGUoMSwgImhlbGxvXFxuIi5lbmNvZGUoImFzY2lpIikpCisgICAg
ICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKCIiIgorICAgICAgICAgICAgKnRlc3RfeCoKKyAgICAgICAgICAgICphc3NlcnQgMCoK
KyAgICAgICAgICAgICpDYXB0dXJlZCBzdGRvdXQqCisgICAgICAgICIiIikKKworICAgIGRlZiB0
ZXN0X2ludGVybWluZ2xpbmcoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5nZXRjYXB0dXJlKCkg
YXMgY2FwOgorICAgICAgICAgICAgb3N3cml0ZWJ5dGVzKDEsICIxIikKKyAgICAgICAgICAgIHN5
cy5zdGRvdXQud3JpdGUoc3RyKDIpKQorICAgICAgICAgICAgc3lzLnN0ZG91dC5mbHVzaCgpCisg
ICAgICAgICAgICBvc3dyaXRlYnl0ZXMoMSwgIjMiKQorICAgICAgICAgICAgb3N3cml0ZWJ5dGVz
KDIsICJhIikKKyAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoImIiKQorICAgICAgICAgICAg
c3lzLnN0ZGVyci5mbHVzaCgpCisgICAgICAgICAgICBvc3dyaXRlYnl0ZXMoMiwgImMiKQorICAg
ICAgICAgICAgb3V0LCBlcnIgPSBjYXAucmVhZG91dGVycigpCisgICAgICAgIGFzc2VydCBvdXQg
PT0gIjEyMyIKKyAgICAgICAgYXNzZXJ0IGVyciA9PSAiYWJjIgorCisgICAgZGVmIHRlc3RfbWFu
eShzZWxmLCBjYXBmZCk6CisgICAgICAgIHdpdGggbHNvZl9jaGVjaygpOgorICAgICAgICAgICAg
Zm9yIGkgaW4gcmFuZ2UoMTApOgorICAgICAgICAgICAgICAgIGNhcCA9IFN0ZENhcHR1cmVGRCgp
CisgICAgICAgICAgICAgICAgY2FwLnN0b3BfY2FwdHVyaW5nKCkKKworCitjbGFzcyBUZXN0U3Rk
Q2FwdHVyZUZEaW52YWxpZEZEKG9iamVjdCk6CisgICAgcHl0ZXN0bWFyayA9IG5lZWRzb3NkdXAK
KworICAgIGRlZiB0ZXN0X3N0ZGNhcHR1cmVfZmRfaW52YWxpZF9mZChzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IG9zCisg
ICAgICAgICAgICBmcm9tIF9weXRlc3QgaW1wb3J0IGNhcHR1cmUKKyAgICAgICAgICAgIGRlZiBT
dGRDYXB0dXJlRkQob3V0PVRydWUsIGVycj1UcnVlLCBpbl89VHJ1ZSk6CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGNhcHR1cmUuTXVsdGlDYXB0dXJlKG91dCwgZXJyLCBpbl8sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FwdHVyZT1jYXB0dXJlLkZEQ2Fw
dHVyZSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X3N0ZG91dCgpOgorICAgICAgICAgICAgICAgIG9z
LmNsb3NlKDEpCisgICAgICAgICAgICAgICAgY2FwID0gU3RkQ2FwdHVyZUZEKG91dD1UcnVlLCBl
cnI9RmFsc2UsIGluXz1GYWxzZSkKKyAgICAgICAgICAgICAgICBjYXAuc3RvcF9jYXB0dXJpbmco
KQorICAgICAgICAgICAgZGVmIHRlc3Rfc3RkZXJyKCk6CisgICAgICAgICAgICAgICAgb3MuY2xv
c2UoMikKKyAgICAgICAgICAgICAgICBjYXAgPSBTdGRDYXB0dXJlRkQob3V0PUZhbHNlLCBlcnI9
VHJ1ZSwgaW5fPUZhbHNlKQorICAgICAgICAgICAgICAgIGNhcC5zdG9wX2NhcHR1cmluZygpCisg
ICAgICAgICAgICBkZWYgdGVzdF9zdGRpbigpOgorICAgICAgICAgICAgICAgIG9zLmNsb3NlKDAp
CisgICAgICAgICAgICAgICAgY2FwID0gU3RkQ2FwdHVyZUZEKG91dD1GYWxzZSwgZXJyPUZhbHNl
LCBpbl89VHJ1ZSkKKyAgICAgICAgICAgICAgICBjYXAuc3RvcF9jYXB0dXJpbmcoKQorICAgICAg
ICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoIi0t
Y2FwdHVyZT1mZCIpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICAgICAgYXNz
ZXJ0IHJlc3VsdC5wYXJzZW91dGNvbWVzKClbJ3Bhc3NlZCddID09IDMKKworCitkZWYgdGVzdF9j
YXB0dXJlX25vdF9zdGFydGVkX2J1dF9yZXNldCgpOgorICAgIGNhcHN5cyA9IFN0ZENhcHR1cmUo
KQorICAgIGNhcHN5cy5zdG9wX2NhcHR1cmluZygpCisKKworZGVmIHRlc3RfdXNpbmdfY2Fwc3lz
X2ZpeHR1cmVfd29ya3Nfd2l0aF9zeXNfc3Rkb3V0X2VuY29kaW5nKGNhcHN5cyk6CisgICAgdGVz
dF90ZXh0ID0gJ3Rlc3QgdGV4dCcKKworICAgIHByaW50KHRlc3RfdGV4dC5lbmNvZGUoc3lzLnN0
ZG91dC5lbmNvZGluZywgJ3JlcGxhY2UnKSkKKyAgICAob3V0LCBlcnIpID0gY2Fwc3lzLnJlYWRv
dXRlcnIoKQorICAgIGFzc2VydCBvdXQKKyAgICBhc3NlcnQgZXJyID09ICcnCisKKworZGVmIHRl
c3RfY2Fwc3lzX3Jlc3VsdHNfYWNjZXNzaWJsZV9ieV9hdHRyaWJ1dGUoY2Fwc3lzKToKKyAgICBz
eXMuc3Rkb3V0LndyaXRlKCJzcGFtIikKKyAgICBzeXMuc3RkZXJyLndyaXRlKCJlZ2dzIikKKyAg
ICBjYXB0dXJlX3Jlc3VsdCA9IGNhcHN5cy5yZWFkb3V0ZXJyKCkKKyAgICBhc3NlcnQgY2FwdHVy
ZV9yZXN1bHQub3V0ID09ICJzcGFtIgorICAgIGFzc2VydCBjYXB0dXJlX3Jlc3VsdC5lcnIgPT0g
ImVnZ3MiCisKKworQG5lZWRzb3NkdXAKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgndXNlJywg
W1RydWUsIEZhbHNlXSkKK2RlZiB0ZXN0X2ZkY2FwdHVyZV90bXBmaWxlX3JlbWFpbnNfdGhlX3Nh
bWUodG1wZmlsZSwgdXNlKToKKyAgICBpZiBub3QgdXNlOgorICAgICAgICB0bXBmaWxlID0gVHJ1
ZQorICAgIGNhcCA9IFN0ZENhcHR1cmVGRChvdXQ9RmFsc2UsIGVycj10bXBmaWxlKQorICAgIHRy
eToKKyAgICAgICAgY2FwLnN0YXJ0X2NhcHR1cmluZygpCisgICAgICAgIGNhcGZpbGUgPSBjYXAu
ZXJyLnRtcGZpbGUKKyAgICAgICAgY2FwLnJlYWRvdXRlcnIoKQorICAgIGZpbmFsbHk6CisgICAg
ICAgIGNhcC5zdG9wX2NhcHR1cmluZygpCisgICAgY2FwZmlsZTIgPSBjYXAuZXJyLnRtcGZpbGUK
KyAgICBhc3NlcnQgY2FwZmlsZTIgPT0gY2FwZmlsZQorCisKK0BuZWVkc29zZHVwCitkZWYgdGVz
dF9jbG9zZV9hbmRfY2FwdHVyZV9hZ2Fpbih0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoIiIiCisgICAgICAgIGltcG9ydCBvcworICAgICAgICBkZWYgdGVzdF9jbG9zZSgpOgorICAg
ICAgICAgICAgb3MuY2xvc2UoMSkKKyAgICAgICAgZGVmIHRlc3RfY2FwdHVyZV9hZ2FpbigpOgor
ICAgICAgICAgICAgb3Mud3JpdGUoMSwgYiJoZWxsb1xcbiIpCisgICAgICAgICAgICBhc3NlcnQg
MAorICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9zdWJwcm9jZXNzKCkK
KyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAgICp0ZXN0X2NhcHR1
cmVfYWdhaW4qCisgICAgICAgICphc3NlcnQgMCoKKyAgICAgICAgKnN0ZG91dCoKKyAgICAgICAg
KmhlbGxvKgorICAgICIiIikKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ21ldGhvZCcs
IFsnU3lzQ2FwdHVyZScsICdGRENhcHR1cmUnXSkKK2RlZiB0ZXN0X2NhcHR1cmluZ19hbmRfbG9n
Z2luZ19mdW5kYW1lbnRhbHModGVzdGRpciwgbWV0aG9kKToKKyAgICBpZiBtZXRob2QgPT0gIlN0
ZENhcHR1cmVGRCIgYW5kIG5vdCBoYXNhdHRyKG9zLCAnZHVwJyk6CisgICAgICAgIHB5dGVzdC5z
a2lwKCJuZWVkIG9zLmR1cCIpCisgICAgIyBoZXJlIHdlIGNoZWNrIGEgZnVuZGFtZW50YWwgZmVh
dHVyZQorICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBzeXMs
IG9zCisgICAgICAgIGltcG9ydCBweSwgbG9nZ2luZworICAgICAgICBmcm9tIF9weXRlc3QgaW1w
b3J0IGNhcHR1cmUKKyAgICAgICAgY2FwID0gY2FwdHVyZS5NdWx0aUNhcHR1cmUob3V0PUZhbHNl
LCBpbl89RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2FwdHVy
ZT1jYXB0dXJlLiVzKQorICAgICAgICBjYXAuc3RhcnRfY2FwdHVyaW5nKCkKKworICAgICAgICBs
b2dnaW5nLndhcm4oImhlbGxvMSIpCisgICAgICAgIG91dGVyciA9IGNhcC5yZWFkb3V0ZXJyKCkK
KyAgICAgICAgcHJpbnQgKCJzdXNwZW5kLCBjYXB0dXJlZCAlJXMiICUlKG91dGVyciwpKQorICAg
ICAgICBsb2dnaW5nLndhcm4oImhlbGxvMiIpCisKKyAgICAgICAgY2FwLnBvcF9vdXRlcnJfdG9f
b3JpZygpCisgICAgICAgIGxvZ2dpbmcud2FybigiaGVsbG8zIikKKworICAgICAgICBvdXRlcnIg
PSBjYXAucmVhZG91dGVycigpCisgICAgICAgIHByaW50ICgic3VzcGVuZDIsIGNhcHR1cmVkICUl
cyIgJSUgKG91dGVyciwpKQorICAgICIiIiAlIChtZXRob2QsKSkKKyAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGhvbihwKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiIiIKKyAg
ICAgICAgc3VzcGVuZCwgY2FwdHVyZWQqaGVsbG8xKgorICAgICAgICBzdXNwZW5kMiwgY2FwdHVy
ZWQqV0FSTklORzpyb290OmhlbGxvMyoKKyAgICAiIiIpCisgICAgcmVzdWx0LnN0ZGVyci5mbm1h
dGNoX2xpbmVzKCIiIgorICAgICAgICBXQVJOSU5HOnJvb3Q6aGVsbG8yCisgICAgIiIiKQorICAg
IGFzc2VydCAiYXRleGl0IiBub3QgaW4gcmVzdWx0LnN0ZGVyci5zdHIoKQorCisKK2RlZiB0ZXN0
X2Vycm9yX2F0dHJpYnV0ZV9pc3N1ZTU1NSh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoIiIiCisgICAgICAgIGltcG9ydCBzeXMKKyAgICAgICAgZGVmIHRlc3RfY2FwYXR0cigpOgor
ICAgICAgICAgICAgYXNzZXJ0IHN5cy5zdGRvdXQuZXJyb3JzID09ICJzdHJpY3QiCisgICAgICAg
ICAgICBhc3NlcnQgc3lzLnN0ZGVyci5lcnJvcnMgPT0gInN0cmljdCIKKyAgICAiIiIpCisgICAg
cmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShw
YXNzZWQ9MSkKKworCitAcHl0ZXN0Lm1hcmsuc2tpcGlmKG5vdCBzeXMucGxhdGZvcm0uc3RhcnRz
d2l0aCgnd2luJykgYW5kIHN5cy52ZXJzaW9uX2luZm9bOjJdID49ICgzLCA2KSwKKyAgICAgICAg
ICAgICAgICAgICAgcmVhc29uPSdvbmx5IHB5My42KyBvbiB3aW5kb3dzJykKK2RlZiB0ZXN0X3B5
MzZfd2luZG93c2NvbnNvbGVpb193b3JrYXJvdW5kX25vbl9zdGFuZGFyZF9zdHJlYW1zKCk6Cisg
ICAgIiIiCisgICAgRW5zdXJlIF9weTM2X3dpbmRvd3Njb25zb2xlaW9fd29ya2Fyb3VuZCBmdW5j
dGlvbiB3b3JrcyB3aXRoIG9iamVjdHMgdGhhdAorICAgIGRvIG5vdCBpbXBsZW1lbnQgdGhlIGZ1
bGwgYGBpb2BgLWJhc2VkIHN0cmVhbSBwcm90b2NvbCwgZm9yIGV4YW1wbGUgZXhlY25ldCBjaGFu
bmVscyAoIzI2NjYpLgorICAgICIiIgorICAgIGZyb20gX3B5dGVzdC5jYXB0dXJlIGltcG9ydCBf
cHkzNl93aW5kb3dzY29uc29sZWlvX3dvcmthcm91bmQKKworICAgIGNsYXNzIER1bW15U3RyZWFt
OgorICAgICAgICBkZWYgd3JpdGUoc2VsZiwgcyk6CisgICAgICAgICAgICBwYXNzCisKKyAgICBz
dHJlYW0gPSBEdW1teVN0cmVhbSgpCisgICAgX3B5MzZfd2luZG93c2NvbnNvbGVpb193b3JrYXJv
dW5kKHN0cmVhbSkKKworCitkZWYgdGVzdF9kb250cmVhZGZyb21pbnB1dF9oYXNfZW5jb2Rpbmco
dGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgc3lz
CisgICAgICAgIGRlZiB0ZXN0X2NhcGF0dHIoKToKKyAgICAgICAgICAgICMgc2hvdWxkIG5vdCBy
YWlzZSBBdHRyaWJ1dGVFcnJvcgorICAgICAgICAgICAgYXNzZXJ0IHN5cy5zdGRvdXQuZW5jb2Rp
bmcKKyAgICAgICAgICAgIGFzc2VydCBzeXMuc3RkZXJyLmVuY29kaW5nCisgICAgIiIiKQorICAg
IHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgcmVwcmVjLmFzc2VydG91dGNvbWUo
cGFzc2VkPTEpCisKKworZGVmIHRlc3RfcGlja2xpbmdfYW5kX3VucGlja2xpbmdfZW5jb2RlZF9m
aWxlKCk6CisgICAgIyBTZWUgaHR0cHM6Ly9iaXRidWNrZXQub3JnL3B5dGVzdC1kZXYvcHl0ZXN0
L3B1bGwtcmVxdWVzdC8xOTQKKyAgICAjIHBpY2tsZS5sb2FkcygpIHJhaXNlcyBpbmZpbml0ZSBy
ZWN1cnNpb24gaWYKKyAgICAjIEVuY29kZWRGaWxlLl9fZ2V0YXR0cl9fIGlzIG5vdCBpbXBsZW1l
bnRlZCBwcm9wZXJseQorICAgIGVmID0gY2FwdHVyZS5FbmNvZGVkRmlsZShOb25lLCBOb25lKQor
ICAgIGVmX2FzX3N0ciA9IHBpY2tsZS5kdW1wcyhlZikKKyAgICBwaWNrbGUubG9hZHMoZWZfYXNf
c3RyKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NvbGxlY3Rpb24ucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfY29sbGVjdGlvbi5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NjNl
ZDA0MzljMGNlODcwNDU1N2U0YTkyYzY5Y2MyNzA4YWMzODg1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NvbGxlY3Rpb24ucHkKQEAgLTAsMCArMSw4NTcgQEAK
K2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRf
ZnVuY3Rpb24KK2ltcG9ydCBweXRlc3QKK2ltcG9ydCBweQorCitpbXBvcnQgX3B5dGVzdC5fY29k
ZQorZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IFNlc3Npb24sIEVYSVRfTk9URVNUU0NPTExFQ1RF
RCwgX2luX3ZlbnYKKworCitjbGFzcyBUZXN0Q29sbGVjdG9yKG9iamVjdCk6CisgICAgZGVmIHRl
c3RfY29sbGVjdF92ZXJzdXNfaXRlbShzZWxmKToKKyAgICAgICAgZnJvbSBweXRlc3QgaW1wb3J0
IENvbGxlY3RvciwgSXRlbQorICAgICAgICBhc3NlcnQgbm90IGlzc3ViY2xhc3MoQ29sbGVjdG9y
LCBJdGVtKQorICAgICAgICBhc3NlcnQgbm90IGlzc3ViY2xhc3MoSXRlbSwgQ29sbGVjdG9yKQor
CisgICAgZGVmIHRlc3RfY29tcGF0X2F0dHJpYnV0ZXMoc2VsZiwgdGVzdGRpciwgcmVjd2Fybik6
CisgICAgICAgIG1vZGNvbCA9IHRlc3RkaXIuZ2V0bW9kdWxlY29sKCIiIgorICAgICAgICAgICAg
ZGVmIHRlc3RfcGFzcygpOiBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF9mYWlsKCk6IGFzc2Vy
dCAwCisgICAgICAgICIiIikKKyAgICAgICAgcmVjd2Fybi5jbGVhcigpCisgICAgICAgIGFzc2Vy
dCBtb2Rjb2wuTW9kdWxlID09IHB5dGVzdC5Nb2R1bGUKKyAgICAgICAgYXNzZXJ0IG1vZGNvbC5D
bGFzcyA9PSBweXRlc3QuQ2xhc3MKKyAgICAgICAgYXNzZXJ0IG1vZGNvbC5JdGVtID09IHB5dGVz
dC5JdGVtCisgICAgICAgIGFzc2VydCBtb2Rjb2wuRmlsZSA9PSBweXRlc3QuRmlsZQorICAgICAg
ICBhc3NlcnQgbW9kY29sLkZ1bmN0aW9uID09IHB5dGVzdC5GdW5jdGlvbgorCisgICAgZGVmIHRl
c3RfY2hlY2tfZXF1YWxpdHkoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIG1vZGNvbCA9IHRlc3Rk
aXIuZ2V0bW9kdWxlY29sKCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfcGFzcygpOiBwYXNzCisg
ICAgICAgICAgICBkZWYgdGVzdF9mYWlsKCk6IGFzc2VydCAwCisgICAgICAgICIiIikKKyAgICAg
ICAgZm4xID0gdGVzdGRpci5jb2xsZWN0X2J5X25hbWUobW9kY29sLCAidGVzdF9wYXNzIikKKyAg
ICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZm4xLCBweXRlc3QuRnVuY3Rpb24pCisgICAgICAgIGZu
MiA9IHRlc3RkaXIuY29sbGVjdF9ieV9uYW1lKG1vZGNvbCwgInRlc3RfcGFzcyIpCisgICAgICAg
IGFzc2VydCBpc2luc3RhbmNlKGZuMiwgcHl0ZXN0LkZ1bmN0aW9uKQorCisgICAgICAgIGFzc2Vy
dCBmbjEgPT0gZm4yCisgICAgICAgIGFzc2VydCBmbjEgIT0gbW9kY29sCisgICAgICAgIGlmIHB5
LnN0ZC5zeXMudmVyc2lvbl9pbmZvIDwgKDMsIDApOgorICAgICAgICAgICAgYXNzZXJ0IGNtcChm
bjEsIGZuMikgPT0gMAorICAgICAgICBhc3NlcnQgaGFzaChmbjEpID09IGhhc2goZm4yKQorCisg
ICAgICAgIGZuMyA9IHRlc3RkaXIuY29sbGVjdF9ieV9uYW1lKG1vZGNvbCwgInRlc3RfZmFpbCIp
CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGZuMywgcHl0ZXN0LkZ1bmN0aW9uKQorICAgICAg
ICBhc3NlcnQgbm90IChmbjEgPT0gZm4zKQorICAgICAgICBhc3NlcnQgZm4xICE9IGZuMworCisg
ICAgICAgIGZvciBmbiBpbiBmbjEsIGZuMiwgZm4zOgorICAgICAgICAgICAgYXNzZXJ0IGZuICE9
IDMKKyAgICAgICAgICAgIGFzc2VydCBmbiAhPSBtb2Rjb2wKKyAgICAgICAgICAgIGFzc2VydCBm
biAhPSBbMSwgMiwgM10KKyAgICAgICAgICAgIGFzc2VydCBbMSwgMiwgM10gIT0gZm4KKyAgICAg
ICAgICAgIGFzc2VydCBtb2Rjb2wgIT0gZm4KKworICAgIGRlZiB0ZXN0X2dldHBhcmVudChzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgbW9kY29sID0gdGVzdGRpci5nZXRtb2R1bGVjb2woIiIiCisg
ICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICAgZGVm
IHRlc3RfZm9vKCk6CisgICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAg
ICAgICAgY2xzID0gdGVzdGRpci5jb2xsZWN0X2J5X25hbWUobW9kY29sLCAiVGVzdENsYXNzIikK
KyAgICAgICAgZm4gPSB0ZXN0ZGlyLmNvbGxlY3RfYnlfbmFtZSgKKyAgICAgICAgICAgIHRlc3Rk
aXIuY29sbGVjdF9ieV9uYW1lKGNscywgIigpIiksICJ0ZXN0X2ZvbyIpCisKKyAgICAgICAgcGFy
ZW50ID0gZm4uZ2V0cGFyZW50KHB5dGVzdC5Nb2R1bGUpCisgICAgICAgIGFzc2VydCBwYXJlbnQg
aXMgbW9kY29sCisKKyAgICAgICAgcGFyZW50ID0gZm4uZ2V0cGFyZW50KHB5dGVzdC5GdW5jdGlv
bikKKyAgICAgICAgYXNzZXJ0IHBhcmVudCBpcyBmbgorCisgICAgICAgIHBhcmVudCA9IGZuLmdl
dHBhcmVudChweXRlc3QuQ2xhc3MpCisgICAgICAgIGFzc2VydCBwYXJlbnQgaXMgY2xzCisKKyAg
ICBkZWYgdGVzdF9nZXRjdXN0b21maWxlX3JvdW5kdHJpcChzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgaGVsbG8gPSB0ZXN0ZGlyLm1ha2VmaWxlKCIueHh4IiwgaGVsbG89IndvcmxkIikKKyAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKGNvbmZ0ZXN0PSIiIgorICAgICAgICAgICAgaW1wb3J0IHB5
dGVzdAorICAgICAgICAgICAgY2xhc3MgQ3VzdG9tRmlsZShweXRlc3QuRmlsZSk6CisgICAgICAg
ICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHB5dGVzdF9jb2xsZWN0X2ZpbGUocGF0aCwg
cGFyZW50KToKKyAgICAgICAgICAgICAgICBpZiBwYXRoLmV4dCA9PSAiLnh4eCI6CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBDdXN0b21GaWxlKHBhdGgsIHBhcmVudD1wYXJlbnQpCisgICAg
ICAgICIiIikKKyAgICAgICAgbm9kZSA9IHRlc3RkaXIuZ2V0cGF0aG5vZGUoaGVsbG8pCisgICAg
ICAgIGFzc2VydCBpc2luc3RhbmNlKG5vZGUsIHB5dGVzdC5GaWxlKQorICAgICAgICBhc3NlcnQg
bm9kZS5uYW1lID09ICJoZWxsby54eHgiCisgICAgICAgIG5vZGVzID0gbm9kZS5zZXNzaW9uLnBl
cmZvcm1fY29sbGVjdChbbm9kZS5ub2RlaWRdLCBnZW5pdGVtcz1GYWxzZSkKKyAgICAgICAgYXNz
ZXJ0IGxlbihub2RlcykgPT0gMQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShub2Rlc1swXSwg
cHl0ZXN0LkZpbGUpCisKKyAgICBkZWYgdGVzdF9jYW5fc2tpcF9jbGFzc193aXRoX3Rlc3RfYXR0
cihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiQXNzdXJlIHRlc3QgY2xhc3MgaXMgc2tpcHBl
ZCB3aGVuIHVzaW5nIGBfX3Rlc3RfXz1GYWxzZWAgKFNlZSAjMjAwNykuIiIiCisgICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGNsYXNzIFRlc3RGb28ob2JqZWN0KToK
KyAgICAgICAgICAgICAgICBfX3Rlc3RfXyA9IEZhbHNlCisgICAgICAgICAgICAgICAgZGVmIF9f
aW5pdF9fKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAg
ZGVmIHRlc3RfZm9vKCk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBUcnVlCisgICAgICAg
ICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgJ2NvbGxlY3RlZCAwIGl0ZW1z
JywKKyAgICAgICAgICAgICcqbm8gdGVzdHMgcmFuIGluKicsCisgICAgICAgIF0pCisKKworY2xh
c3MgVGVzdENvbGxlY3RGUyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X2lnbm9yZWRfY2VydGFpbl9k
aXJlY3RvcmllcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdG1wZGlyID0gdGVzdGRpci50bXBk
aXIKKyAgICAgICAgdG1wZGlyLmVuc3VyZSgiYnVpbGQiLCAndGVzdF9ub3Rmb3VuZC5weScpCisg
ICAgICAgIHRtcGRpci5lbnN1cmUoImRpc3QiLCAndGVzdF9ub3Rmb3VuZC5weScpCisgICAgICAg
IHRtcGRpci5lbnN1cmUoIl9kYXJjcyIsICd0ZXN0X25vdGZvdW5kLnB5JykKKyAgICAgICAgdG1w
ZGlyLmVuc3VyZSgiQ1ZTIiwgJ3Rlc3Rfbm90Zm91bmQucHknKQorICAgICAgICB0bXBkaXIuZW5z
dXJlKCJ7YXJjaH0iLCAndGVzdF9ub3Rmb3VuZC5weScpCisgICAgICAgIHRtcGRpci5lbnN1cmUo
Ii53aGF0ZXZlciIsICd0ZXN0X25vdGZvdW5kLnB5JykKKyAgICAgICAgdG1wZGlyLmVuc3VyZSgi
LmJ6ciIsICd0ZXN0X25vdGZvdW5kLnB5JykKKyAgICAgICAgdG1wZGlyLmVuc3VyZSgibm9ybWFs
IiwgJ3Rlc3RfZm91bmQucHknKQorICAgICAgICBmb3IgeCBpbiB0bXBkaXIudmlzaXQoInRlc3Rf
Ki5weSIpOgorICAgICAgICAgICAgeC53cml0ZSgiZGVmIHRlc3RfaGVsbG8oKTogcGFzcyIpCisK
KyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tY29sbGVjdC1vbmx5IikKKyAg
ICAgICAgcyA9IHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICAgICAgYXNzZXJ0ICJ0ZXN0X25vdGZv
dW5kIiBub3QgaW4gcworICAgICAgICBhc3NlcnQgInRlc3RfZm91bmQiIGluIHMKKworICAgIEBw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSgnZm5hbWUnLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoImFjdGl2YXRlIiwgImFjdGl2YXRlLmNzaCIsICJhY3RpdmF0ZS5maXNoIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJBY3RpdmF0ZSIsICJBY3RpdmF0ZS5iYXQiLCAiQWN0
aXZhdGUucHMxIikpCisgICAgZGVmIHRlc3RfaWdub3JlZF92aXJ0dWFsZW52cyhzZWxmLCB0ZXN0
ZGlyLCBmbmFtZSk6CisgICAgICAgIGJpbmRpciA9ICJTY3JpcHRzIiBpZiBweS5zdGQuc3lzLnBs
YXRmb3JtLnN0YXJ0c3dpdGgoIndpbiIpIGVsc2UgImJpbiIKKyAgICAgICAgdGVzdGRpci50bXBk
aXIuZW5zdXJlKCJ2aXJ0dWFsIiwgYmluZGlyLCBmbmFtZSkKKyAgICAgICAgdGVzdGZpbGUgPSB0
ZXN0ZGlyLnRtcGRpci5lbnN1cmUoInZpcnR1YWwiLCAidGVzdF9pbnZlbnYucHkiKQorICAgICAg
ICB0ZXN0ZmlsZS53cml0ZSgiZGVmIHRlc3RfaGVsbG8oKTogcGFzcyIpCisKKyAgICAgICAgIyBi
eSBkZWZhdWx0LCBpZ25vcmUgdGVzdHMgaW5zaWRlIGEgdmlydHVhbGVudgorICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIGFzc2VydCAidGVzdF9pbnZlbnYiIG5v
dCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgICAgICMgYWxsb3cgdGVzdCBjb2xsZWN0aW9u
IGlmIHVzZXIgaW5zaXN0cworICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1j
b2xsZWN0LWluLXZpcnR1YWxlbnYiKQorICAgICAgICBhc3NlcnQgInRlc3RfaW52ZW52IiBpbiBy
ZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgICAgICMgYWxsb3cgdGVzdCBjb2xsZWN0aW9uIGlmIHVz
ZXIgZGlyZWN0bHkgcGFzc2VzIGluIHRoZSBkaXJlY3RvcnkKKyAgICAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoInZpcnR1YWwiKQorICAgICAgICBhc3NlcnQgInRlc3RfaW52ZW52IiBp
biByZXN1bHQuc3Rkb3V0LnN0cigpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2Zu
YW1lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJhY3RpdmF0ZSIsICJhY3RpdmF0
ZS5jc2giLCAiYWN0aXZhdGUuZmlzaCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
QWN0aXZhdGUiLCAiQWN0aXZhdGUuYmF0IiwgIkFjdGl2YXRlLnBzMSIpKQorICAgIGRlZiB0ZXN0
X2lnbm9yZWRfdmlydHVhbGVudnNfbm9yZWN1cnNlZGlyc19wcmVjZWRlbmNlKHNlbGYsIHRlc3Rk
aXIsIGZuYW1lKToKKyAgICAgICAgYmluZGlyID0gIlNjcmlwdHMiIGlmIHB5LnN0ZC5zeXMucGxh
dGZvcm0uc3RhcnRzd2l0aCgid2luIikgZWxzZSAiYmluIgorICAgICAgICAjIG5vcmVjdXJzZWRp
cnMgdGFrZXMgcHJpb3JpdHkKKyAgICAgICAgdGVzdGRpci50bXBkaXIuZW5zdXJlKCIudmlydHVh
bCIsIGJpbmRpciwgZm5hbWUpCisgICAgICAgIHRlc3RmaWxlID0gdGVzdGRpci50bXBkaXIuZW5z
dXJlKCIudmlydHVhbCIsICJ0ZXN0X2ludmVudi5weSIpCisgICAgICAgIHRlc3RmaWxlLndyaXRl
KCJkZWYgdGVzdF9oZWxsbygpOiBwYXNzIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QoIi0tY29sbGVjdC1pbi12aXJ0dWFsZW52IikKKyAgICAgICAgYXNzZXJ0ICJ0ZXN0X2lu
dmVudiIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICAgICAgIyAuLi51bmxlc3MgdGhl
IHZpcnR1YWxlbnYgaXMgZXhwbGljaXRseSBnaXZlbiBvbiB0aGUgQ0xJCisgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3QtaW4tdmlydHVhbGVudiIsICIudmlydHVh
bCIpCisgICAgICAgIGFzc2VydCAidGVzdF9pbnZlbnYiIGluIHJlc3VsdC5zdGRvdXQuc3RyKCkK
KworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnZm5hbWUnLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoImFjdGl2YXRlIiwgImFjdGl2YXRlLmNzaCIsICJhY3RpdmF0ZS5maXNo
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBY3RpdmF0ZSIsICJBY3RpdmF0ZS5i
YXQiLCAiQWN0aXZhdGUucHMxIikpCisgICAgZGVmIHRlc3RfX2luX3ZlbnYoc2VsZiwgdGVzdGRp
ciwgZm5hbWUpOgorICAgICAgICAiIiJEaXJlY3RseSB0ZXN0IHRoZSB2aXJ0dWFsIGVudiBkZXRl
Y3Rpb24gZnVuY3Rpb24iIiIKKyAgICAgICAgYmluZGlyID0gIlNjcmlwdHMiIGlmIHB5LnN0ZC5z
eXMucGxhdGZvcm0uc3RhcnRzd2l0aCgid2luIikgZWxzZSAiYmluIgorICAgICAgICAjIG5vIGJp
bi9hY3RpdmF0ZSwgbm90IGEgdmlydHVhbGVudgorICAgICAgICBiYXNlX3BhdGggPSB0ZXN0ZGly
LnRtcGRpci5ta2RpcigndmVudicpCisgICAgICAgIGFzc2VydCBfaW5fdmVudihiYXNlX3BhdGgp
IGlzIEZhbHNlCisgICAgICAgICMgd2l0aCBiaW4vYWN0aXZhdGUsIHRvdGFsbHkgYSB2aXJ0dWFs
ZW52CisgICAgICAgIGJhc2VfcGF0aC5lbnN1cmUoYmluZGlyLCBmbmFtZSkKKyAgICAgICAgYXNz
ZXJ0IF9pbl92ZW52KGJhc2VfcGF0aCkgaXMgVHJ1ZQorCisgICAgZGVmIHRlc3RfY3VzdG9tX25v
cmVjdXJzZWRpcnMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZWluaSgiIiIK
KyAgICAgICAgICAgIFtweXRlc3RdCisgICAgICAgICAgICBub3JlY3Vyc2VkaXJzID0gbXlkaXIg
eHl6KgorICAgICAgICAiIiIpCisgICAgICAgIHRtcGRpciA9IHRlc3RkaXIudG1wZGlyCisgICAg
ICAgIHRtcGRpci5lbnN1cmUoIm15ZGlyIiwgInRlc3RfaGVsbG8ucHkiKS53cml0ZSgiZGVmIHRl
c3RfMSgpOiBwYXNzIikKKyAgICAgICAgdG1wZGlyLmVuc3VyZSgieHl6MTIzIiwgInRlc3RfMi5w
eSIpLndyaXRlKCJkZWYgdGVzdF8yKCk6IDAvMCIpCisgICAgICAgIHRtcGRpci5lbnN1cmUoInh5
IiwgInRlc3Rfb2sucHkiKS53cml0ZSgiZGVmIHRlc3RfMygpOiBwYXNzIikKKyAgICAgICAgcmVj
ID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVjLmFzc2VydG91dGNvbWUocGFzc2Vk
PTEpCisgICAgICAgIHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigieHl6MTIzL3Rlc3RfMi5weSIp
CisgICAgICAgIHJlYy5hc3NlcnRvdXRjb21lKGZhaWxlZD0xKQorCisgICAgZGVmIHRlc3RfdGVz
dHBhdGhzX2luaShzZWxmLCB0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CisgICAgICAgIHRlc3RkaXIu
bWFrZWluaSgiIiIKKyAgICAgICAgICAgIFtweXRlc3RdCisgICAgICAgICAgICB0ZXN0cGF0aHMg
PSBndWkgdXRzCisgICAgICAgICIiIikKKyAgICAgICAgdG1wZGlyID0gdGVzdGRpci50bXBkaXIK
KyAgICAgICAgdG1wZGlyLmVuc3VyZSgiZW52IiwgInRlc3RfMS5weSIpLndyaXRlKCJkZWYgdGVz
dF9lbnYoKTogcGFzcyIpCisgICAgICAgIHRtcGRpci5lbnN1cmUoImd1aSIsICJ0ZXN0XzIucHki
KS53cml0ZSgiZGVmIHRlc3RfZ3VpKCk6IHBhc3MiKQorICAgICAgICB0bXBkaXIuZW5zdXJlKCJ1
dHMiLCAidGVzdF8zLnB5Iikud3JpdGUoImRlZiB0ZXN0X3V0cygpOiBwYXNzIikKKworICAgICAg
ICAjIGV4ZWN1dGluZyBmcm9tIHJvb3RkaXIgb25seSB0ZXN0cyBmcm9tIGB0ZXN0cGF0aHNgIGRp
cmVjdG9yaWVzCisgICAgICAgICMgYXJlIGNvbGxlY3RlZAorICAgICAgICBpdGVtcywgcmVwcmVj
ID0gdGVzdGRpci5pbmxpbmVfZ2VuaXRlbXMoJy12JykKKyAgICAgICAgYXNzZXJ0IFt4Lm5hbWUg
Zm9yIHggaW4gaXRlbXNdID09IFsndGVzdF9ndWknLCAndGVzdF91dHMnXQorCisgICAgICAgICMg
Y2hlY2sgdGhhdCBleHBsaWNpdGx5IHBhc3NpbmcgZGlyZWN0b3JpZXMgaW4gdGhlIGNvbW1hbmQt
bGluZQorICAgICAgICAjIGNvbGxlY3RzIHRoZSB0ZXN0cworICAgICAgICBmb3IgZGlybmFtZSBp
biAoJ2VudicsICdndWknLCAndXRzJyk6CisgICAgICAgICAgICBpdGVtcywgcmVwcmVjID0gdGVz
dGRpci5pbmxpbmVfZ2VuaXRlbXModG1wZGlyLmpvaW4oZGlybmFtZSkpCisgICAgICAgICAgICBh
c3NlcnQgW3gubmFtZSBmb3IgeCBpbiBpdGVtc10gPT0gWyd0ZXN0XyVzJyAlIGRpcm5hbWVdCisK
KyAgICAgICAgIyBjaGFuZ2luZyBjd2QgdG8gZWFjaCBzdWJkaXJlY3RvcnkgYW5kIHJ1bm5pbmcg
cHl0ZXN0IHdpdGhvdXQKKyAgICAgICAgIyBhcmd1bWVudHMgY29sbGVjdHMgdGhlIHRlc3RzIGlu
IHRoYXQgZGlyZWN0b3J5IG5vcm1hbGx5CisgICAgICAgIGZvciBkaXJuYW1lIGluICgnZW52Jywg
J2d1aScsICd1dHMnKToKKyAgICAgICAgICAgIG1vbmtleXBhdGNoLmNoZGlyKHRlc3RkaXIudG1w
ZGlyLmpvaW4oZGlybmFtZSkpCisgICAgICAgICAgICBpdGVtcywgcmVwcmVjID0gdGVzdGRpci5p
bmxpbmVfZ2VuaXRlbXMoKQorICAgICAgICAgICAgYXNzZXJ0IFt4Lm5hbWUgZm9yIHggaW4gaXRl
bXNdID09IFsndGVzdF8lcycgJSBkaXJuYW1lXQorCisKK2NsYXNzIFRlc3RDb2xsZWN0UGx1Z2lu
SG9va1JlbGF5KG9iamVjdCk6CisgICAgZGVmIHRlc3RfcHl0ZXN0X2NvbGxlY3RfZmlsZShzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgd2FzY2FsbGVkID0gW10KKworICAgICAgICBjbGFzcyBQbHVn
aW4ob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBweXRlc3RfY29sbGVjdF9maWxlKHNlbGYsIHBh
dGgsIHBhcmVudCk6CisgICAgICAgICAgICAgICAgaWYgbm90IHBhdGguYmFzZW5hbWUuc3RhcnRz
d2l0aCgiLiIpOgorICAgICAgICAgICAgICAgICAgICAjIElnbm9yZSBoaWRkZW4gZmlsZXMsIGUu
Zy4gLnRlc3Rtb25kYXRhLgorICAgICAgICAgICAgICAgICAgICB3YXNjYWxsZWQuYXBwZW5kKHBh
dGgpCisKKyAgICAgICAgdGVzdGRpci5tYWtlZmlsZSgiLmFiYyIsICJ4eXoiKQorICAgICAgICBw
eXRlc3QubWFpbihbdGVzdGRpci50bXBkaXJdLCBwbHVnaW5zPVtQbHVnaW4oKV0pCisgICAgICAg
IGFzc2VydCBsZW4od2FzY2FsbGVkKSA9PSAxCisgICAgICAgIGFzc2VydCB3YXNjYWxsZWRbMF0u
ZXh0ID09ICcuYWJjJworCisgICAgZGVmIHRlc3RfcHl0ZXN0X2NvbGxlY3RfZGlyZWN0b3J5KHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICB3YXNjYWxsZWQgPSBbXQorCisgICAgICAgIGNsYXNzIFBs
dWdpbihvYmplY3QpOgorICAgICAgICAgICAgZGVmIHB5dGVzdF9jb2xsZWN0X2RpcmVjdG9yeShz
ZWxmLCBwYXRoLCBwYXJlbnQpOgorICAgICAgICAgICAgICAgIHdhc2NhbGxlZC5hcHBlbmQocGF0
aC5iYXNlbmFtZSkKKworICAgICAgICB0ZXN0ZGlyLm1rZGlyKCJoZWxsbyIpCisgICAgICAgIHRl
c3RkaXIubWtkaXIoIndvcmxkIikKKyAgICAgICAgcHl0ZXN0Lm1haW4odGVzdGRpci50bXBkaXIs
IHBsdWdpbnM9W1BsdWdpbigpXSkKKyAgICAgICAgYXNzZXJ0ICJoZWxsbyIgaW4gd2FzY2FsbGVk
CisgICAgICAgIGFzc2VydCAid29ybGQiIGluIHdhc2NhbGxlZAorCisKK2NsYXNzIFRlc3RQcnVu
ZXRyYWNlYmFjayhvYmplY3QpOgorCisgICAgZGVmIHRlc3RfY3VzdG9tX3JlcHJfZmFpbHVyZShz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAg
ICAgICAgIGltcG9ydCBub3RfZXhpc3RzCisgICAgICAgICIiIikKKyAgICAgICAgdGVzdGRpci5t
YWtlY29uZnRlc3QoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBk
ZWYgcHl0ZXN0X2NvbGxlY3RfZmlsZShwYXRoLCBwYXJlbnQpOgorICAgICAgICAgICAgICAgIHJl
dHVybiBNeUZpbGUocGF0aCwgcGFyZW50KQorICAgICAgICAgICAgY2xhc3MgTXlFcnJvcihFeGNl
cHRpb24pOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGNsYXNzIE15RmlsZShw
eXRlc3QuRmlsZSk6CisgICAgICAgICAgICAgICAgZGVmIGNvbGxlY3Qoc2VsZik6CisgICAgICAg
ICAgICAgICAgICAgIHJhaXNlIE15RXJyb3IoKQorICAgICAgICAgICAgICAgIGRlZiByZXByX2Zh
aWx1cmUoc2VsZiwgZXhjaW5mbyk6CisgICAgICAgICAgICAgICAgICAgIGlmIGV4Y2luZm8uZXJy
aXNpbnN0YW5jZShNeUVycm9yKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAiaGVs
bG8gd29ybGQiCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBweXRlc3QuRmlsZS5yZXByX2Zh
aWx1cmUoc2VsZiwgZXhjaW5mbykKKyAgICAgICAgIiIiKQorCisgICAgICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KHApCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
CisgICAgICAgICAgICAiKkVSUk9SIGNvbGxlY3RpbmcqIiwKKyAgICAgICAgICAgICIqaGVsbG8g
d29ybGQqIiwKKyAgICAgICAgXSkKKworICAgIEBweXRlc3QubWFyay54ZmFpbChyZWFzb249Im90
aGVyIG1lY2hhbmlzbSBmb3IgYWRkaW5nIHRvIHJlcG9ydGluZyBuZWVkZWQiKQorICAgIGRlZiB0
ZXN0X2NvbGxlY3RfcmVwb3J0X3Bvc3Rwcm9jZXNzaW5nKHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IG5vdF9leGlz
dHMKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dy
YXBwZXI9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBweXRlc3RfbWFrZV9jb2xsZWN0X3JlcG9ydCgp
OgorICAgICAgICAgICAgICAgIG91dGNvbWUgPSB5aWVsZAorICAgICAgICAgICAgICAgIHJlcCA9
IG91dGNvbWUuZ2V0X3Jlc3VsdCgpCisgICAgICAgICAgICAgICAgcmVwLmhlYWRlcmxpbmVzICs9
IFsiaGVhZGVyMSJdCisgICAgICAgICAgICAgICAgb3V0Y29tZS5mb3JjZV9yZXN1bHQocmVwKQor
ICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHApCisgICAg
ICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKkVSUk9SIGNv
bGxlY3RpbmcqIiwKKyAgICAgICAgICAgICIqaGVhZGVyMSoiLAorICAgICAgICBdKQorCisKK2Ns
YXNzIFRlc3RDdXN0b21Db25mdGVzdHMob2JqZWN0KToKKyAgICBkZWYgdGVzdF9pZ25vcmVfY29s
bGVjdF9wYXRoKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgi
IiIKKyAgICAgICAgICAgIGRlZiBweXRlc3RfaWdub3JlX2NvbGxlY3QocGF0aCwgY29uZmlnKToK
KyAgICAgICAgICAgICAgICByZXR1cm4gcGF0aC5iYXNlbmFtZS5zdGFydHN3aXRoKCJ4Iikgb3Ig
XAorICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmJhc2VuYW1lID09ICJ0ZXN0X29uZS5weSIK
KyAgICAgICAgIiIiKQorICAgICAgICBzdWIgPSB0ZXN0ZGlyLm1rZGlyKCJ4eTEyMyIpCisgICAg
ICAgIHN1Yi5lbnN1cmUoInRlc3RfaGVsbG8ucHkiKS53cml0ZSgic3ludGF4IGVycm9yIikKKyAg
ICAgICAgc3ViLmpvaW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoInN5bnRheCBlcnJvciIpCisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiZGVmIHRlc3RfaGVsbG8oKTogcGFzcyIpCisgICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0X29uZT0ic3ludGF4IGVycm9yIikKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tZnVsbHRyYWNlIikKKyAgICAgICAgYXNzZXJ0IHJl
c3VsdC5yZXQgPT0gMAorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqMSBw
YXNzZWQqIl0pCisKKyAgICBkZWYgdGVzdF9pZ25vcmVfY29sbGVjdF9ub3RfY2FsbGVkX29uX2Fy
Z3VtZW50KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIK
KyAgICAgICAgICAgIGRlZiBweXRlc3RfaWdub3JlX2NvbGxlY3QocGF0aCwgY29uZmlnKToKKyAg
ICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAiIiIpCisgICAgICAgIHAgPSB0ZXN0
ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0X2hlbGxvKCk6IHBhc3MiKQorICAgICAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdChwKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisg
ICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiKjEgcGFzc2VkKiIpCisgICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQg
PT0gRVhJVF9OT1RFU1RTQ09MTEVDVEVECisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcygiKmNvbGxlY3RlZCAwIGl0ZW1zKiIpCisKKyAgICBkZWYgdGVzdF9jb2xsZWN0aWdub3Jl
X2V4Y2x1ZGVfb25fb3B0aW9uKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vj
b25mdGVzdCgiIiIKKyAgICAgICAgICAgIGNvbGxlY3RfaWdub3JlID0gWydoZWxsbycsICd0ZXN0
X3dvcmxkLnB5J10KKyAgICAgICAgICAgIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6Cisg
ICAgICAgICAgICAgICAgcGFyc2VyLmFkZG9wdGlvbigiLS1YWCIsIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIsIGRlZmF1bHQ9RmFsc2UpCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25m
aWcpOgorICAgICAgICAgICAgICAgIGlmIGNvbmZpZy5nZXR2YWx1ZSgiWFgiKToKKyAgICAgICAg
ICAgICAgICAgICAgY29sbGVjdF9pZ25vcmVbOl0gPSBbXQorICAgICAgICAiIiIpCisgICAgICAg
IHRlc3RkaXIubWtkaXIoImhlbGxvIikKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRlc3Rf
d29ybGQ9ImRlZiB0ZXN0X2hlbGxvKCk6IHBhc3MiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IEVYSVRfTk9URVNUU0NP
TExFQ1RFRAorICAgICAgICBhc3NlcnQgInBhc3NlZCIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3Ry
KCkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tWFgiKQorICAgICAgICBh
c3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgICAgIGFzc2VydCAicGFzc2VkIiBpbiByZXN1bHQu
c3Rkb3V0LnN0cigpCisKKyAgICBkZWYgdGVzdF9weXRlc3RfZnNfY29sbGVjdF9ob29rc19hcmVf
c2VlbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBjbGFzcyBNeU1vZHVsZShweXRl
c3QuTW9kdWxlKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBkZWYgcHl0ZXN0
X2NvbGxlY3RfZmlsZShwYXRoLCBwYXJlbnQpOgorICAgICAgICAgICAgICAgIGlmIHBhdGguZXh0
ID09ICIucHkiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gTXlNb2R1bGUocGF0aCwgcGFy
ZW50KQorICAgICAgICAiIiIpCisgICAgICAgIHRlc3RkaXIubWtkaXIoInN1YiIpCisgICAgICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgiZGVmIHRlc3RfeCgpOiBwYXNzIikKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tY29sbGVjdC1vbmx5IikKKyAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqTXlNb2R1bGUqIiwKKyAgICAgICAg
ICAgICIqdGVzdF94KiIKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X3B5dGVzdF9jb2xsZWN0
X2ZpbGVfZnJvbV9zaXN0ZXJfZGlyKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBzdWIxID0gdGVz
dGRpci5ta3B5ZGlyKCJzdWIxIikKKyAgICAgICAgc3ViMiA9IHRlc3RkaXIubWtweWRpcigic3Vi
MiIpCisgICAgICAgIGNvbmYxID0gdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBjbGFzcyBNeU1vZHVsZTEocHl0ZXN0Lk1vZHVs
ZSk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHB5dGVzdF9jb2xsZWN0
X2ZpbGUocGF0aCwgcGFyZW50KToKKyAgICAgICAgICAgICAgICBpZiBwYXRoLmV4dCA9PSAiLnB5
IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE15TW9kdWxlMShwYXRoLCBwYXJlbnQpCisg
ICAgICAgICIiIikKKyAgICAgICAgY29uZjEubW92ZShzdWIxLmpvaW4oY29uZjEuYmFzZW5hbWUp
KQorICAgICAgICBjb25mMiA9IHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgY2xhc3MgTXlNb2R1bGUyKHB5dGVzdC5Nb2R1bGUp
OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiBweXRlc3RfY29sbGVjdF9m
aWxlKHBhdGgsIHBhcmVudCk6CisgICAgICAgICAgICAgICAgaWYgcGF0aC5leHQgPT0gIi5weSI6
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBNeU1vZHVsZTIocGF0aCwgcGFyZW50KQorICAg
ICAgICAiIiIpCisgICAgICAgIGNvbmYyLm1vdmUoc3ViMi5qb2luKGNvbmYyLmJhc2VuYW1lKSkK
KyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiZGVmIHRlc3RfeCgpOiBwYXNzIikKKyAg
ICAgICAgcC5jb3B5KHN1YjEuam9pbihwLmJhc2VuYW1lKSkKKyAgICAgICAgcC5jb3B5KHN1YjIu
am9pbihwLmJhc2VuYW1lKSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0t
Y29sbGVjdC1vbmx5IikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAg
ICAgICAgICAgICIqTXlNb2R1bGUxKiIsCisgICAgICAgICAgICAiKk15TW9kdWxlMioiLAorICAg
ICAgICAgICAgIip0ZXN0X3gqIgorICAgICAgICBdKQorCisKK2NsYXNzIFRlc3RTZXNzaW9uKG9i
amVjdCk6CisgICAgZGVmIHRlc3RfcGFyc2Vhcmcoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAg
PSB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0X2Z1bmMoKTogcGFzcyIpCisgICAgICAgIHN1
YmRpciA9IHRlc3RkaXIubWtkaXIoInN1YiIpCisgICAgICAgIHN1YmRpci5lbnN1cmUoIl9faW5p
dF9fLnB5IikKKyAgICAgICAgdGFyZ2V0ID0gc3ViZGlyLmpvaW4ocC5iYXNlbmFtZSkKKyAgICAg
ICAgcC5tb3ZlKHRhcmdldCkKKyAgICAgICAgc3ViZGlyLmNoZGlyKCkKKyAgICAgICAgY29uZmln
ID0gdGVzdGRpci5wYXJzZWNvbmZpZyhwLmJhc2VuYW1lKQorICAgICAgICByY29sID0gU2Vzc2lv
bihjb25maWc9Y29uZmlnKQorICAgICAgICBhc3NlcnQgcmNvbC5mc3BhdGggPT0gc3ViZGlyCisg
ICAgICAgIHBhcnRzID0gcmNvbC5fcGFyc2VhcmcocC5iYXNlbmFtZSkKKworICAgICAgICBhc3Nl
cnQgcGFydHNbMF0gPT0gdGFyZ2V0CisgICAgICAgIGFzc2VydCBsZW4ocGFydHMpID09IDEKKyAg
ICAgICAgcGFydHMgPSByY29sLl9wYXJzZWFyZyhwLmJhc2VuYW1lICsgIjo6dGVzdF9mdW5jIikK
KyAgICAgICAgYXNzZXJ0IHBhcnRzWzBdID09IHRhcmdldAorICAgICAgICBhc3NlcnQgcGFydHNb
MV0gPT0gInRlc3RfZnVuYyIKKyAgICAgICAgYXNzZXJ0IGxlbihwYXJ0cykgPT0gMgorCisgICAg
ZGVmIHRlc3RfY29sbGVjdF90b3BkaXIoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0
ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0X2Z1bmMoKTogcGFzcyIpCisgICAgICAgIGlkID0gIjo6
Ii5qb2luKFtwLmJhc2VuYW1lLCAidGVzdF9mdW5jIl0pCisgICAgICAgICMgWFhYIG1pZ3JhdGUg
dG8gY29sbGVjdG9ubHk/IChzZWUgYmVsb3cpCisgICAgICAgIGNvbmZpZyA9IHRlc3RkaXIucGFy
c2Vjb25maWcoaWQpCisgICAgICAgIHRvcGRpciA9IHRlc3RkaXIudG1wZGlyCisgICAgICAgIHJj
b2wgPSBTZXNzaW9uKGNvbmZpZykKKyAgICAgICAgYXNzZXJ0IHRvcGRpciA9PSByY29sLmZzcGF0
aAorICAgICAgICAjIHJvb3RpZCA9IHJjb2wubm9kZWlkCisgICAgICAgICMgcm9vdDIgPSByY29s
LnBlcmZvcm1fY29sbGVjdChbcmNvbC5ub2RlaWRdLCBnZW5pdGVtcz1GYWxzZSlbMF0KKyAgICAg
ICAgIyBhc3NlcnQgcm9vdDIgPT0gcmNvbCwgcm9vdGlkCisgICAgICAgIGNvbGl0ZW1zID0gcmNv
bC5wZXJmb3JtX2NvbGxlY3QoW3Jjb2wubm9kZWlkXSwgZ2VuaXRlbXM9RmFsc2UpCisgICAgICAg
IGFzc2VydCBsZW4oY29saXRlbXMpID09IDEKKyAgICAgICAgYXNzZXJ0IGNvbGl0ZW1zWzBdLmZz
cGF0aCA9PSBwCisKKyAgICBkZWYgZ2V0X3JlcG9ydGVkX2l0ZW1zKHNlbGYsIGhvb2tyZWMpOgor
ICAgICAgICAiIiJSZXR1cm4gcHl0ZXN0Lkl0ZW0gaW5zdGFuY2VzIHJlcG9ydGVkIGJ5IHRoZSBw
eXRlc3RfY29sbGVjdHJlcG9ydCBob29rIiIiCisgICAgICAgIGNhbGxzID0gaG9va3JlYy5nZXRj
YWxscygncHl0ZXN0X2NvbGxlY3RyZXBvcnQnKQorICAgICAgICByZXR1cm4gW3ggZm9yIGNhbGwg
aW4gY2FsbHMgZm9yIHggaW4gY2FsbC5yZXBvcnQucmVzdWx0CisgICAgICAgICAgICAgICAgaWYg
aXNpbnN0YW5jZSh4LCBweXRlc3QuSXRlbSldCisKKyAgICBkZWYgdGVzdF9jb2xsZWN0X3Byb3Rv
Y29sX3NpbmdsZV9mdW5jdGlvbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIu
bWFrZXB5ZmlsZSgiZGVmIHRlc3RfZnVuYygpOiBwYXNzIikKKyAgICAgICAgaWQgPSAiOjoiLmpv
aW4oW3AuYmFzZW5hbWUsICJ0ZXN0X2Z1bmMiXSkKKyAgICAgICAgaXRlbXMsIGhvb2tyZWMgPSB0
ZXN0ZGlyLmlubGluZV9nZW5pdGVtcyhpZCkKKyAgICAgICAgaXRlbSwgPSBpdGVtcworICAgICAg
ICBhc3NlcnQgaXRlbS5uYW1lID09ICJ0ZXN0X2Z1bmMiCisgICAgICAgIG5ld2lkID0gaXRlbS5u
b2RlaWQKKyAgICAgICAgYXNzZXJ0IG5ld2lkID09IGlkCisgICAgICAgIHB5LnN0ZC5wcHJpbnQu
cHByaW50KGhvb2tyZWMuY2FsbHMpCisgICAgICAgIHRvcGRpciA9IHRlc3RkaXIudG1wZGlyICAj
IG5vcWEKKyAgICAgICAgaG9va3JlYy5hc3NlcnRfY29udGFpbnMoWworICAgICAgICAgICAgKCJw
eXRlc3RfY29sbGVjdHN0YXJ0IiwgImNvbGxlY3Rvci5mc3BhdGggPT0gdG9wZGlyIiksCisgICAg
ICAgICAgICAoInB5dGVzdF9tYWtlX2NvbGxlY3RfcmVwb3J0IiwgImNvbGxlY3Rvci5mc3BhdGgg
PT0gdG9wZGlyIiksCisgICAgICAgICAgICAoInB5dGVzdF9jb2xsZWN0c3RhcnQiLCAiY29sbGVj
dG9yLmZzcGF0aCA9PSBwIiksCisgICAgICAgICAgICAoInB5dGVzdF9tYWtlX2NvbGxlY3RfcmVw
b3J0IiwgImNvbGxlY3Rvci5mc3BhdGggPT0gcCIpLAorICAgICAgICAgICAgKCJweXRlc3RfcHlj
b2xsZWN0X21ha2VpdGVtIiwgIm5hbWUgPT0gJ3Rlc3RfZnVuYyciKSwKKyAgICAgICAgICAgICgi
cHl0ZXN0X2NvbGxlY3RyZXBvcnQiLCAicmVwb3J0LnJlc3VsdFswXS5uYW1lID09ICd0ZXN0X2Z1
bmMnIiksCisgICAgICAgIF0pCisgICAgICAgICMgZW5zdXJlIHdlIGFyZSByZXBvcnRpbmcgdGhl
IGNvbGxlY3Rpb24gb2YgdGhlIHNpbmdsZSB0ZXN0IGl0ZW0gKCMyNDY0KQorICAgICAgICBhc3Nl
cnQgW3gubmFtZSBmb3IgeCBpbiBzZWxmLmdldF9yZXBvcnRlZF9pdGVtcyhob29rcmVjKV0gPT0g
Wyd0ZXN0X2Z1bmMnXQorCisgICAgZGVmIHRlc3RfY29sbGVjdF9wcm90b2NvbF9tZXRob2Qoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
ICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9t
ZXRob2Qoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAg
ICAgICBub3JtaWQgPSBwLmJhc2VuYW1lICsgIjo6VGVzdENsYXNzOjooKTo6dGVzdF9tZXRob2Qi
CisgICAgICAgIGZvciBpZCBpbiBbcC5iYXNlbmFtZSwKKyAgICAgICAgICAgICAgICAgICBwLmJh
c2VuYW1lICsgIjo6VGVzdENsYXNzIiwKKyAgICAgICAgICAgICAgICAgICBwLmJhc2VuYW1lICsg
Ijo6VGVzdENsYXNzOjooKSIsCisgICAgICAgICAgICAgICAgICAgbm9ybWlkLAorICAgICAgICAg
ICAgICAgICAgIF06CisgICAgICAgICAgICBpdGVtcywgaG9va3JlYyA9IHRlc3RkaXIuaW5saW5l
X2dlbml0ZW1zKGlkKQorICAgICAgICAgICAgYXNzZXJ0IGxlbihpdGVtcykgPT0gMQorICAgICAg
ICAgICAgYXNzZXJ0IGl0ZW1zWzBdLm5hbWUgPT0gInRlc3RfbWV0aG9kIgorICAgICAgICAgICAg
bmV3aWQgPSBpdGVtc1swXS5ub2RlaWQKKyAgICAgICAgICAgIGFzc2VydCBuZXdpZCA9PSBub3Jt
aWQKKyAgICAgICAgICAgICMgZW5zdXJlIHdlIGFyZSByZXBvcnRpbmcgdGhlIGNvbGxlY3Rpb24g
b2YgdGhlIHNpbmdsZSB0ZXN0IGl0ZW0gKCMyNDY0KQorICAgICAgICAgICAgYXNzZXJ0IFt4Lm5h
bWUgZm9yIHggaW4gc2VsZi5nZXRfcmVwb3J0ZWRfaXRlbXMoaG9va3JlYyldID09IFsndGVzdF9t
ZXRob2QnXQorCisgICAgZGVmIHRlc3RfY29sbGVjdF9jdXN0b21fbm9kZXNfbXVsdGlfaWQoc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0X2Z1
bmMoKTogcGFzcyIpCisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgY2xhc3MgU3BlY2lhbEl0ZW0ocHl0ZXN0Lkl0
ZW0pOgorICAgICAgICAgICAgICAgIGRlZiBydW50ZXN0KHNlbGYpOgorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gIyBvaworICAgICAgICAgICAgY2xhc3MgU3BlY2lhbEZpbGUocHl0ZXN0LkZp
bGUpOgorICAgICAgICAgICAgICAgIGRlZiBjb2xsZWN0KHNlbGYpOgorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gW1NwZWNpYWxJdGVtKG5hbWU9ImNoZWNrIiwgcGFyZW50PXNlbGYpXQorICAg
ICAgICAgICAgZGVmIHB5dGVzdF9jb2xsZWN0X2ZpbGUocGF0aCwgcGFyZW50KToKKyAgICAgICAg
ICAgICAgICBpZiBwYXRoLmJhc2VuYW1lID09ICVyOgorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gU3BlY2lhbEZpbGUoZnNwYXRoPXBhdGgsIHBhcmVudD1wYXJlbnQpCisgICAgICAgICIiIiAl
IHAuYmFzZW5hbWUpCisgICAgICAgIGlkID0gcC5iYXNlbmFtZQorCisgICAgICAgIGl0ZW1zLCBo
b29rcmVjID0gdGVzdGRpci5pbmxpbmVfZ2VuaXRlbXMoaWQpCisgICAgICAgIHB5LnN0ZC5wcHJp
bnQucHByaW50KGhvb2tyZWMuY2FsbHMpCisgICAgICAgIGFzc2VydCBsZW4oaXRlbXMpID09IDIK
KyAgICAgICAgaG9va3JlYy5hc3NlcnRfY29udGFpbnMoWworICAgICAgICAgICAgKCJweXRlc3Rf
Y29sbGVjdHN0YXJ0IiwKKyAgICAgICAgICAgICAgICAiY29sbGVjdG9yLmZzcGF0aCA9PSBjb2xs
ZWN0b3Iuc2Vzc2lvbi5mc3BhdGgiKSwKKyAgICAgICAgICAgICgicHl0ZXN0X2NvbGxlY3RzdGFy
dCIsCisgICAgICAgICAgICAgICAgImNvbGxlY3Rvci5fX2NsYXNzX18uX19uYW1lX18gPT0gJ1Nw
ZWNpYWxGaWxlJyIpLAorICAgICAgICAgICAgKCJweXRlc3RfY29sbGVjdHN0YXJ0IiwKKyAgICAg
ICAgICAgICAgICAiY29sbGVjdG9yLl9fY2xhc3NfXy5fX25hbWVfXyA9PSAnTW9kdWxlJyIpLAor
ICAgICAgICAgICAgKCJweXRlc3RfcHljb2xsZWN0X21ha2VpdGVtIiwgIm5hbWUgPT0gJ3Rlc3Rf
ZnVuYyciKSwKKyAgICAgICAgICAgICgicHl0ZXN0X2NvbGxlY3RyZXBvcnQiLCAicmVwb3J0Lm5v
ZGVpZC5zdGFydHN3aXRoKHAuYmFzZW5hbWUpIiksCisgICAgICAgIF0pCisgICAgICAgIGFzc2Vy
dCBsZW4oc2VsZi5nZXRfcmVwb3J0ZWRfaXRlbXMoaG9va3JlYykpID09IDIKKworICAgIGRlZiB0
ZXN0X2NvbGxlY3Rfc3ViZGlyX2V2ZW50X29yZGVyaW5nKHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCJkZWYgdGVzdF9mdW5jKCk6IHBhc3MiKQorICAgICAg
ICBhYWEgPSB0ZXN0ZGlyLm1rcHlkaXIoImFhYSIpCisgICAgICAgIHRlc3RfYWFhID0gYWFhLmpv
aW4oInRlc3RfYWFhLnB5IikKKyAgICAgICAgcC5tb3ZlKHRlc3RfYWFhKQorCisgICAgICAgIGl0
ZW1zLCBob29rcmVjID0gdGVzdGRpci5pbmxpbmVfZ2VuaXRlbXMoKQorICAgICAgICBhc3NlcnQg
bGVuKGl0ZW1zKSA9PSAxCisgICAgICAgIHB5LnN0ZC5wcHJpbnQucHByaW50KGhvb2tyZWMuY2Fs
bHMpCisgICAgICAgIGhvb2tyZWMuYXNzZXJ0X2NvbnRhaW5zKFsKKyAgICAgICAgICAgICgicHl0
ZXN0X2NvbGxlY3RzdGFydCIsICJjb2xsZWN0b3IuZnNwYXRoID09IHRlc3RfYWFhIiksCisgICAg
ICAgICAgICAoInB5dGVzdF9weWNvbGxlY3RfbWFrZWl0ZW0iLCAibmFtZSA9PSAndGVzdF9mdW5j
JyIpLAorICAgICAgICAgICAgKCJweXRlc3RfY29sbGVjdHJlcG9ydCIsCisgICAgICAgICAgICAg
InJlcG9ydC5ub2RlaWQuc3RhcnRzd2l0aCgnYWFhL3Rlc3RfYWFhLnB5JykiKSwKKyAgICAgICAg
XSkKKworICAgIGRlZiB0ZXN0X2NvbGxlY3RfdHdvX2NvbW1hbmRsaW5lX2FyZ3Moc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0X2Z1bmMoKTog
cGFzcyIpCisgICAgICAgIGFhYSA9IHRlc3RkaXIubWtweWRpcigiYWFhIikKKyAgICAgICAgYmJi
ID0gdGVzdGRpci5ta3B5ZGlyKCJiYmIiKQorICAgICAgICB0ZXN0X2FhYSA9IGFhYS5qb2luKCJ0
ZXN0X2FhYS5weSIpCisgICAgICAgIHAuY29weSh0ZXN0X2FhYSkKKyAgICAgICAgdGVzdF9iYmIg
PSBiYmIuam9pbigidGVzdF9iYmIucHkiKQorICAgICAgICBwLm1vdmUodGVzdF9iYmIpCisKKyAg
ICAgICAgaWQgPSAiLiIKKworICAgICAgICBpdGVtcywgaG9va3JlYyA9IHRlc3RkaXIuaW5saW5l
X2dlbml0ZW1zKGlkKQorICAgICAgICBhc3NlcnQgbGVuKGl0ZW1zKSA9PSAyCisgICAgICAgIHB5
LnN0ZC5wcHJpbnQucHByaW50KGhvb2tyZWMuY2FsbHMpCisgICAgICAgIGhvb2tyZWMuYXNzZXJ0
X2NvbnRhaW5zKFsKKyAgICAgICAgICAgICgicHl0ZXN0X2NvbGxlY3RzdGFydCIsICJjb2xsZWN0
b3IuZnNwYXRoID09IHRlc3RfYWFhIiksCisgICAgICAgICAgICAoInB5dGVzdF9weWNvbGxlY3Rf
bWFrZWl0ZW0iLCAibmFtZSA9PSAndGVzdF9mdW5jJyIpLAorICAgICAgICAgICAgKCJweXRlc3Rf
Y29sbGVjdHJlcG9ydCIsICJyZXBvcnQubm9kZWlkID09ICdhYWEvdGVzdF9hYWEucHknIiksCisg
ICAgICAgICAgICAoInB5dGVzdF9jb2xsZWN0c3RhcnQiLCAiY29sbGVjdG9yLmZzcGF0aCA9PSB0
ZXN0X2JiYiIpLAorICAgICAgICAgICAgKCJweXRlc3RfcHljb2xsZWN0X21ha2VpdGVtIiwgIm5h
bWUgPT0gJ3Rlc3RfZnVuYyciKSwKKyAgICAgICAgICAgICgicHl0ZXN0X2NvbGxlY3RyZXBvcnQi
LCAicmVwb3J0Lm5vZGVpZCA9PSAnYmJiL3Rlc3RfYmJiLnB5JyIpLAorICAgICAgICBdKQorCisg
ICAgZGVmIHRlc3Rfc2VyaWFsaXphdGlvbl9ieWlkKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0X2Z1bmMoKTogcGFzcyIpCisgICAgICAgIGl0ZW1z
LCBob29rcmVjID0gdGVzdGRpci5pbmxpbmVfZ2VuaXRlbXMoKQorICAgICAgICBhc3NlcnQgbGVu
KGl0ZW1zKSA9PSAxCisgICAgICAgIGl0ZW0sID0gaXRlbXMKKyAgICAgICAgaXRlbXMyLCBob29r
cmVjID0gdGVzdGRpci5pbmxpbmVfZ2VuaXRlbXMoaXRlbS5ub2RlaWQpCisgICAgICAgIGl0ZW0y
LCA9IGl0ZW1zMgorICAgICAgICBhc3NlcnQgaXRlbTIubmFtZSA9PSBpdGVtLm5hbWUKKyAgICAg
ICAgYXNzZXJ0IGl0ZW0yLmZzcGF0aCA9PSBpdGVtLmZzcGF0aAorCisgICAgZGVmIHRlc3RfZmlu
ZF9ieWlkX3dpdGhvdXRfaW5zdGFuY2VfcGFyZW50cyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
cCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhv
YmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhvZChzZWxmKToKKyAgICAgICAg
ICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIGFyZyA9IHAuYmFzZW5hbWUg
KyAiOjpUZXN0Q2xhc3M6OnRlc3RfbWV0aG9kIgorICAgICAgICBpdGVtcywgaG9va3JlYyA9IHRl
c3RkaXIuaW5saW5lX2dlbml0ZW1zKGFyZykKKyAgICAgICAgYXNzZXJ0IGxlbihpdGVtcykgPT0g
MQorICAgICAgICBpdGVtLCA9IGl0ZW1zCisgICAgICAgIGFzc2VydCBpdGVtLm5vZGVpZC5lbmRz
d2l0aCgiVGVzdENsYXNzOjooKTo6dGVzdF9tZXRob2QiKQorICAgICAgICAjIGVuc3VyZSB3ZSBh
cmUgcmVwb3J0aW5nIHRoZSBjb2xsZWN0aW9uIG9mIHRoZSBzaW5nbGUgdGVzdCBpdGVtICgjMjQ2
NCkKKyAgICAgICAgYXNzZXJ0IFt4Lm5hbWUgZm9yIHggaW4gc2VsZi5nZXRfcmVwb3J0ZWRfaXRl
bXMoaG9va3JlYyldID09IFsndGVzdF9tZXRob2QnXQorCisKK2NsYXNzIFRlc3RfZ2V0aW5pdGlh
bG5vZGVzKG9iamVjdCk6CisgICAgZGVmIHRlc3RfZ2xvYmFsX2ZpbGUoc2VsZiwgdGVzdGRpciwg
dG1wZGlyKToKKyAgICAgICAgeCA9IHRtcGRpci5lbnN1cmUoIngucHkiKQorICAgICAgICB3aXRo
IHRtcGRpci5hc19jd2QoKToKKyAgICAgICAgICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25m
aWd1cmUoeCkKKyAgICAgICAgY29sID0gdGVzdGRpci5nZXRub2RlKGNvbmZpZywgeCkKKyAgICAg
ICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29sLCBweXRlc3QuTW9kdWxlKQorICAgICAgICBhc3NlcnQg
Y29sLm5hbWUgPT0gJ3gucHknCisgICAgICAgIGFzc2VydCBjb2wucGFyZW50LnBhcmVudCBpcyBO
b25lCisgICAgICAgIGZvciBjb2wgaW4gY29sLmxpc3RjaGFpbigpOgorICAgICAgICAgICAgYXNz
ZXJ0IGNvbC5jb25maWcgaXMgY29uZmlnCisKKyAgICBkZWYgdGVzdF9wa2dmaWxlKHNlbGYsIHRl
c3RkaXIpOgorICAgICAgICB0bXBkaXIgPSB0ZXN0ZGlyLnRtcGRpcgorICAgICAgICBzdWJkaXIg
PSB0bXBkaXIuam9pbigic3ViZGlyIikKKyAgICAgICAgeCA9IHN1YmRpci5lbnN1cmUoIngucHki
KQorICAgICAgICBzdWJkaXIuZW5zdXJlKCJfX2luaXRfXy5weSIpCisgICAgICAgIHdpdGggc3Vi
ZGlyLmFzX2N3ZCgpOgorICAgICAgICAgICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZ3Vy
ZSh4KQorICAgICAgICBjb2wgPSB0ZXN0ZGlyLmdldG5vZGUoY29uZmlnLCB4KQorICAgICAgICBh
c3NlcnQgaXNpbnN0YW5jZShjb2wsIHB5dGVzdC5Nb2R1bGUpCisgICAgICAgIGFzc2VydCBjb2wu
bmFtZSA9PSAneC5weScKKyAgICAgICAgYXNzZXJ0IGNvbC5wYXJlbnQucGFyZW50IGlzIE5vbmUK
KyAgICAgICAgZm9yIGNvbCBpbiBjb2wubGlzdGNoYWluKCk6CisgICAgICAgICAgICBhc3NlcnQg
Y29sLmNvbmZpZyBpcyBjb25maWcKKworCitjbGFzcyBUZXN0X2dlbml0ZW1zKG9iamVjdCk6Cisg
ICAgZGVmIHRlc3RfY2hlY2tfY29sbGVjdF9oYXNoZXMoc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBkZWYgdGVzdF8xKCk6Cisg
ICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgICAgICBkZWYgdGVzdF8yKCk6CisgICAgICAg
ICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHAuY29weShwLmRpcnBhdGgocC5w
dXJlYmFzZW5hbWUgKyAiMiIgKyAiLnB5IikpCisgICAgICAgIGl0ZW1zLCByZXByZWMgPSB0ZXN0
ZGlyLmlubGluZV9nZW5pdGVtcyhwLmRpcnBhdGgoKSkKKyAgICAgICAgYXNzZXJ0IGxlbihpdGVt
cykgPT0gNAorICAgICAgICBmb3IgbnVtaSwgaSBpbiBlbnVtZXJhdGUoaXRlbXMpOgorICAgICAg
ICAgICAgZm9yIG51bWosIGogaW4gZW51bWVyYXRlKGl0ZW1zKToKKyAgICAgICAgICAgICAgICBp
ZiBudW1qICE9IG51bWk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBoYXNoKGkpICE9IGhh
c2goaikKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGkgIT0gagorCisgICAgZGVmIHRlc3Rf
ZXhhbXBsZV9pdGVtczEoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoJycnCisgICAgICAgICAgICBkZWYgdGVzdG9uZSgpOgorICAgICAgICAgICAgICAgIHBh
c3MKKworICAgICAgICAgICAgY2xhc3MgVGVzdFgob2JqZWN0KToKKyAgICAgICAgICAgICAgICBk
ZWYgdGVzdG1ldGhvZF9vbmUoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKworICAg
ICAgICAgICAgY2xhc3MgVGVzdFkoVGVzdFgpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgJycnKQorICAgICAgICBpdGVtcywgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfZ2VuaXRlbXMo
cCkKKyAgICAgICAgYXNzZXJ0IGxlbihpdGVtcykgPT0gMworICAgICAgICBhc3NlcnQgaXRlbXNb
MF0ubmFtZSA9PSAndGVzdG9uZScKKyAgICAgICAgYXNzZXJ0IGl0ZW1zWzFdLm5hbWUgPT0gJ3Rl
c3RtZXRob2Rfb25lJworICAgICAgICBhc3NlcnQgaXRlbXNbMl0ubmFtZSA9PSAndGVzdG1ldGhv
ZF9vbmUnCisKKyAgICAgICAgIyBsZXQncyBhbHNvIHRlc3QgZ2V0bW9kcGF0aCBoZXJlCisgICAg
ICAgIGFzc2VydCBpdGVtc1swXS5nZXRtb2RwYXRoKCkgPT0gInRlc3RvbmUiCisgICAgICAgIGFz
c2VydCBpdGVtc1sxXS5nZXRtb2RwYXRoKCkgPT0gIlRlc3RYLnRlc3RtZXRob2Rfb25lIgorICAg
ICAgICBhc3NlcnQgaXRlbXNbMl0uZ2V0bW9kcGF0aCgpID09ICJUZXN0WS50ZXN0bWV0aG9kX29u
ZSIKKworICAgICAgICBzID0gaXRlbXNbMF0uZ2V0bW9kcGF0aChzdG9wYXRtb2R1bGU9RmFsc2Up
CisgICAgICAgIGFzc2VydCBzLmVuZHN3aXRoKCJ0ZXN0X2V4YW1wbGVfaXRlbXMxLnRlc3RvbmUi
KQorICAgICAgICBwcmludChzKQorCisgICAgZGVmIHRlc3RfY2xhc3NfYW5kX2Z1bmN0aW9uc19k
aXNjb3ZlcnlfdXNpbmdfZ2xvYihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiCisgICAgICAg
IHRlc3RzIHRoYXQgcHl0aG9uX2NsYXNzZXMgYW5kIHB5dGhvbl9mdW5jdGlvbnMgY29uZmlnIG9w
dGlvbnMgd29yaworICAgICAgICBhcyBwcmVmaXhlcyBhbmQgZ2xvYi1saWtlIHBhdHRlcm5zIChp
c3N1ZSAjNjAwKS4KKyAgICAgICAgIiIiCisgICAgICAgIHRlc3RkaXIubWFrZWluaSgiIiIKKyAg
ICAgICAgICAgIFtweXRlc3RdCisgICAgICAgICAgICBweXRob25fY2xhc3NlcyA9ICpTdWl0ZSBU
ZXN0CisgICAgICAgICAgICBweXRob25fZnVuY3Rpb25zID0gKl90ZXN0IHRlc3QKKyAgICAgICAg
IiIiKQorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCcnJworICAgICAgICAgICAgY2xh
c3MgTXlUZXN0U3VpdGUob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgeF90ZXN0KHNlbGYp
OgorICAgICAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDYXNl
KG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfeShzZWxmKToKKyAgICAgICAgICAg
ICAgICAgICAgcGFzcworICAgICAgICAnJycpCisgICAgICAgIGl0ZW1zLCByZXByZWMgPSB0ZXN0
ZGlyLmlubGluZV9nZW5pdGVtcyhwKQorICAgICAgICBpZHMgPSBbeC5nZXRtb2RwYXRoKCkgZm9y
IHggaW4gaXRlbXNdCisgICAgICAgIGFzc2VydCBpZHMgPT0gWydNeVRlc3RTdWl0ZS54X3Rlc3Qn
LCAnVGVzdENhc2UudGVzdF95J10KKworCitkZWYgdGVzdF9tYXRjaG5vZGVzX3R3b19jb2xsZWN0
aW9uc19zYW1lX2ZpbGUodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisg
ICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmln
KToKKyAgICAgICAgICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKFBsdWdpbjIoKSkK
KworICAgICAgICBjbGFzcyBQbHVnaW4yKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgcHl0ZXN0
X2NvbGxlY3RfZmlsZShzZWxmLCBwYXRoLCBwYXJlbnQpOgorICAgICAgICAgICAgICAgIGlmIHBh
dGguZXh0ID09ICIuYWJjIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE15RmlsZTIocGF0
aCwgcGFyZW50KQorCisgICAgICAgIGRlZiBweXRlc3RfY29sbGVjdF9maWxlKHBhdGgsIHBhcmVu
dCk6CisgICAgICAgICAgICBpZiBwYXRoLmV4dCA9PSAiLmFiYyI6CisgICAgICAgICAgICAgICAg
cmV0dXJuIE15RmlsZTEocGF0aCwgcGFyZW50KQorCisgICAgICAgIGNsYXNzIE15RmlsZTEocHl0
ZXN0Lkl0ZW0sIHB5dGVzdC5GaWxlKToKKyAgICAgICAgICAgIGRlZiBydW50ZXN0KHNlbGYpOgor
ICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgY2xhc3MgTXlGaWxlMihweXRlc3QuRmlsZSk6
CisgICAgICAgICAgICBkZWYgY29sbGVjdChzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4g
W0l0ZW0yKCJoZWxsbyIsIHBhcmVudD1zZWxmKV0KKworICAgICAgICBjbGFzcyBJdGVtMihweXRl
c3QuSXRlbSk6CisgICAgICAgICAgICBkZWYgcnVudGVzdChzZWxmKToKKyAgICAgICAgICAgICAg
ICBwYXNzCisgICAgIiIiKQorICAgIHAgPSB0ZXN0ZGlyLm1ha2VmaWxlKCIuYWJjIiwgIiIpCisg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09
IDAKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKjIgcGFzc2Vk
KiIsCisgICAgXSkKKyAgICByZXMgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiJXM6OmhlbGxvIiAlIHAu
YmFzZW5hbWUpCisgICAgcmVzLnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIioxIHBh
c3NlZCoiLAorICAgIF0pCisKKworY2xhc3MgVGVzdE5vZGVrZXl3b3JkcyhvYmplY3QpOgorICAg
IGRlZiB0ZXN0X25vX3VuZGVyKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBtb2Rjb2wgPSB0ZXN0
ZGlyLmdldG1vZHVsZWNvbCgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X3Bhc3MoKTogcGFzcwor
ICAgICAgICAgICAgZGVmIHRlc3RfZmFpbCgpOiBhc3NlcnQgMAorICAgICAgICAiIiIpCisgICAg
ICAgIHZhbHVlcyA9IGxpc3QobW9kY29sLmtleXdvcmRzKQorICAgICAgICBhc3NlcnQgbW9kY29s
Lm5hbWUgaW4gdmFsdWVzCisgICAgICAgIGZvciB4IGluIHZhbHVlczoKKyAgICAgICAgICAgIGFz
c2VydCBub3QgeC5zdGFydHN3aXRoKCJfIikKKyAgICAgICAgYXNzZXJ0IG1vZGNvbC5uYW1lIGlu
IHJlcHIobW9kY29sLmtleXdvcmRzKQorCisgICAgZGVmIHRlc3RfaXNzdWUzNDUoc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0
ZXN0X3Nob3VsZF9ub3RfYmVfc2VsZWN0ZWQoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgRmFs
c2UsICdJIHNob3VsZCBub3QgaGF2ZSBiZWVuIHNlbGVjdGVkIHRvIHJ1bicKKworICAgICAgICAg
ICAgZGVmIHRlc3RfX19yZXByX18oKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIi
IikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItayByZXByIikKKyAgICAg
ICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEsIGZhaWxlZD0wKQorCisKK0NPTExFQ1RJ
T05fRVJST1JfUFlfRklMRVMgPSBkaWN0KAorICAgIHRlc3RfMDFfZmFpbHVyZT0iIiIKKyAgICAg
ICAgZGVmIHRlc3RfMSgpOgorICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCisgICAgICAgICIiIiwK
KyAgICB0ZXN0XzAyX2ltcG9ydF9lcnJvcj0iIiIKKyAgICAgICAgaW1wb3J0IGFzZGZhc2RmYXNk
ZgorICAgICAgICBkZWYgdGVzdF8yKCk6CisgICAgICAgICAgICBhc3NlcnQgVHJ1ZQorICAgICAg
ICAiIiIsCisgICAgdGVzdF8wM19pbXBvcnRfZXJyb3I9IiIiCisgICAgICAgIGltcG9ydCBhc2Rm
YXNkZmFzZGYKKyAgICAgICAgZGVmIHRlc3RfMygpOgorICAgICAgICAgICAgYXNzZXJ0IFRydWUK
KyAgICAiIiIsCisgICAgdGVzdF8wNF9zdWNjZXNzPSIiIgorICAgICAgICBkZWYgdGVzdF80KCk6
CisgICAgICAgICAgICBhc3NlcnQgVHJ1ZQorICAgICIiIiwKKykKKworCitkZWYgdGVzdF9leGl0
X29uX2NvbGxlY3Rpb25fZXJyb3IodGVzdGRpcik6CisgICAgIiIiVmVyaWZ5IHRoYXQgYWxsIGNv
bGxlY3Rpb24gZXJyb3JzIGFyZSBjb2xsZWN0ZWQgYW5kIG5vIHRlc3RzIGV4ZWN1dGVkIiIiCisg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKCoqQ09MTEVDVElPTl9FUlJPUl9QWV9GSUxFUykKKworICAg
IHJlcyA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICBhc3NlcnQgcmVzLnJldCA9PSAyCisKKyAg
ICByZXMuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiY29sbGVjdGVkIDIgaXRlbXMg
LyAyIGVycm9ycyIsCisgICAgICAgICIqRVJST1IgY29sbGVjdGluZyB0ZXN0XzAyX2ltcG9ydF9l
cnJvci5weSoiLAorICAgICAgICAiKk5vIG1vZHVsZSBuYW1lZCAqYXNkZmEqIiwKKyAgICAgICAg
IipFUlJPUiBjb2xsZWN0aW5nIHRlc3RfMDNfaW1wb3J0X2Vycm9yLnB5KiIsCisgICAgICAgICIq
Tm8gbW9kdWxlIG5hbWVkICphc2RmYSoiLAorICAgIF0pCisKKworZGVmIHRlc3RfZXhpdF9vbl9j
b2xsZWN0aW9uX3dpdGhfbWF4ZmFpbF9zbWFsbGVyX3RoYW5fbl9lcnJvcnModGVzdGRpcik6Cisg
ICAgIiIiCisgICAgVmVyaWZ5IGNvbGxlY3Rpb24gaXMgYWJvcnRlZCBvbmNlIG1heGZhaWwgZXJy
b3JzIGFyZSBlbmNvdW50ZXJlZCBpZ25vcmluZworICAgIGZ1cnRoZXIgbW9kdWxlcyB3aGljaCB3
b3VsZCBjYXVzZSBtb3JlIGNvbGxlY3Rpb24gZXJyb3JzLgorICAgICIiIgorICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgqKkNPTExFQ1RJT05fRVJST1JfUFlfRklMRVMpCisKKyAgICByZXMgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgiLS1tYXhmYWlsPTEiKQorICAgIGFzc2VydCByZXMucmV0ID09IDEKKwor
ICAgIHJlcy5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICIqRVJST1IgY29sbGVjdGlu
ZyB0ZXN0XzAyX2ltcG9ydF9lcnJvci5weSoiLAorICAgICAgICAiKk5vIG1vZHVsZSBuYW1lZCAq
YXNkZmEqIiwKKyAgICBdKQorCisgICAgYXNzZXJ0ICd0ZXN0XzAzJyBub3QgaW4gcmVzLnN0ZG91
dC5zdHIoKQorCisKK2RlZiB0ZXN0X2V4aXRfb25fY29sbGVjdGlvbl93aXRoX21heGZhaWxfYmln
Z2VyX3RoYW5fbl9lcnJvcnModGVzdGRpcik6CisgICAgIiIiCisgICAgVmVyaWZ5IHRoZSB0ZXN0
IHJ1biBhYm9ydHMgZHVlIHRvIGNvbGxlY3Rpb24gZXJyb3JzIGV2ZW4gaWYgbWF4ZmFpbCBjb3Vu
dCBvZgorICAgIGVycm9ycyB3YXMgbm90IHJlYWNoZWQuCisgICAgIiIiCisgICAgdGVzdGRpci5t
YWtlcHlmaWxlKCoqQ09MTEVDVElPTl9FUlJPUl9QWV9GSUxFUykKKworICAgIHJlcyA9IHRlc3Rk
aXIucnVucHl0ZXN0KCItLW1heGZhaWw9NCIpCisgICAgYXNzZXJ0IHJlcy5yZXQgPT0gMgorCisg
ICAgcmVzLnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgImNvbGxlY3RlZCAyIGl0ZW1z
IC8gMiBlcnJvcnMiLAorICAgICAgICAiKkVSUk9SIGNvbGxlY3RpbmcgdGVzdF8wMl9pbXBvcnRf
ZXJyb3IucHkqIiwKKyAgICAgICAgIipObyBtb2R1bGUgbmFtZWQgKmFzZGZhKiIsCisgICAgICAg
ICIqRVJST1IgY29sbGVjdGluZyB0ZXN0XzAzX2ltcG9ydF9lcnJvci5weSoiLAorICAgICAgICAi
Kk5vIG1vZHVsZSBuYW1lZCAqYXNkZmEqIiwKKyAgICBdKQorCisKK2RlZiB0ZXN0X2NvbnRpbnVl
X29uX2NvbGxlY3Rpb25fZXJyb3JzKHRlc3RkaXIpOgorICAgICIiIgorICAgIFZlcmlmeSB0ZXN0
cyBhcmUgZXhlY3V0ZWQgZXZlbiB3aGVuIGNvbGxlY3Rpb24gZXJyb3JzIG9jY3VyIHdoZW4gdGhl
CisgICAgLS1jb250aW51ZS1vbi1jb2xsZWN0aW9uLWVycm9ycyBmbGFnIGlzIHNldAorICAgICIi
IgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgqKkNPTExFQ1RJT05fRVJST1JfUFlfRklMRVMpCisK
KyAgICByZXMgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1jb250aW51ZS1vbi1jb2xsZWN0aW9uLWVy
cm9ycyIpCisgICAgYXNzZXJ0IHJlcy5yZXQgPT0gMQorCisgICAgcmVzLnN0ZG91dC5mbm1hdGNo
X2xpbmVzKFsKKyAgICAgICAgImNvbGxlY3RlZCAyIGl0ZW1zIC8gMiBlcnJvcnMiLAorICAgICAg
ICAiKjEgZmFpbGVkLCAxIHBhc3NlZCwgMiBlcnJvcioiLAorICAgIF0pCisKKworZGVmIHRlc3Rf
Y29udGludWVfb25fY29sbGVjdGlvbl9lcnJvcnNfbWF4ZmFpbCh0ZXN0ZGlyKToKKyAgICAiIiIK
KyAgICBWZXJpZnkgdGVzdHMgYXJlIGV4ZWN1dGVkIGV2ZW4gd2hlbiBjb2xsZWN0aW9uIGVycm9y
cyBvY2N1ciBhbmQgdGhhdCBtYXhmYWlsCisgICAgaXMgaG9ub3VyZWQgKGluY2x1ZGluZyB0aGUg
Y29sbGVjdGlvbiBlcnJvciBjb3VudCkuCisgICAgNCB0ZXN0czogMiBjb2xsZWN0aW9uIGVycm9y
cyArIDEgZmFpbHVyZSArIDEgc3VjY2VzcworICAgIHRlc3RfNCBpcyBuZXZlciBleGVjdXRlZCBi
ZWNhdXNlIHRoZSB0ZXN0IHJ1biBpcyB3aXRoIC0tbWF4ZmFpbD0zIHdoaWNoCisgICAgbWVhbnMg
aXQgaXMgaW50ZXJydXB0ZWQgYWZ0ZXIgdGhlIDIgY29sbGVjdGlvbiBlcnJvcnMgKyAxIGZhaWx1
cmUuCisgICAgIiIiCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCoqQ09MTEVDVElPTl9FUlJPUl9Q
WV9GSUxFUykKKworICAgIHJlcyA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbnRpbnVlLW9uLWNv
bGxlY3Rpb24tZXJyb3JzIiwgIi0tbWF4ZmFpbD0zIikKKyAgICBhc3NlcnQgcmVzLnJldCA9PSAx
CisKKyAgICByZXMuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiY29sbGVjdGVkIDIg
aXRlbXMgLyAyIGVycm9ycyIsCisgICAgICAgICIqMSBmYWlsZWQsIDIgZXJyb3IqIiwKKyAgICBd
KQorCisKK2RlZiB0ZXN0X2ZpeHR1cmVfc2NvcGVfc2libGluZ19jb25mdGVzdHModGVzdGRpcik6
CisgICAgIiIiUmVncmVzc2lvbiB0ZXN0IGNhc2UgZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9weXRl
c3QtZGV2L3B5dGVzdC9pc3N1ZXMvMjgzNiIiIgorICAgIGZvb19wYXRoID0gdGVzdGRpci5ta3B5
ZGlyKCJmb28iKQorICAgIGZvb19wYXRoLmpvaW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoX3B5dGVz
dC5fY29kZS5Tb3VyY2UoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgQHB5dGVz
dC5maXh0dXJlCisgICAgICAgIGRlZiBmaXgoKToKKyAgICAgICAgICAgIHJldHVybiAxCisgICAg
IiIiKSkKKyAgICBmb29fcGF0aC5qb2luKCJ0ZXN0X2Zvby5weSIpLndyaXRlKCJkZWYgdGVzdF9m
b28oZml4KTogYXNzZXJ0IGZpeCA9PSAxIikKKworICAgICMgVGVzdHMgaW4gYGZvb2QvYCBzaG91
bGQgbm90IHNlZSB0aGUgY29uZnRlc3QgZml4dHVyZSBmcm9tIGBmb28vYAorICAgIGZvb2RfcGF0
aCA9IHRlc3RkaXIubWtweWRpcigiZm9vZCIpCisgICAgZm9vZF9wYXRoLmpvaW4oInRlc3RfZm9v
ZC5weSIpLndyaXRlKCJkZWYgdGVzdF9mb29kKGZpeCk6IGFzc2VydCBmaXggPT0gMSIpCisKKyAg
ICByZXMgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgYXNzZXJ0IHJlcy5yZXQgPT0gMQorCisg
ICAgcmVzLnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIipFUlJPUiBhdCBzZXR1cCBv
ZiB0ZXN0X2Zvb2QqIiwKKyAgICAgICAgIkUqZml4dHVyZSAnZml4JyBub3QgZm91bmQiLAorICAg
ICAgICAiKjEgcGFzc2VkLCAxIGVycm9yKiIsCisgICAgXSkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvdGVzdF9jb21wYXQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfY29t
cGF0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmM3NDgwMWM2Yzg1NDg1YzA2ZDBlN2ZhMDVmMjMxOGQ0NmM4NTE4
MzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfY29tcGF0LnB5
CkBAIC0wLDAgKzEsMTAxIEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9y
dCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitpbXBvcnQgc3lzCisKK2ltcG9ydCBweXRlc3QK
K2Zyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IGlzX2dlbmVyYXRvciwgZ2V0X3JlYWxfZnVuYywg
c2FmZV9nZXRhdHRyCitmcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IE91dGNvbWVFeGNlcHRp
b24KKworCitkZWYgdGVzdF9pc19nZW5lcmF0b3IoKToKKyAgICBkZWYgemFwKCk6CisgICAgICAg
IHlpZWxkCisKKyAgICBkZWYgZm9vKCk6CisgICAgICAgIHBhc3MKKworICAgIGFzc2VydCBpc19n
ZW5lcmF0b3IoemFwKQorICAgIGFzc2VydCBub3QgaXNfZ2VuZXJhdG9yKGZvbykKKworCitkZWYg
dGVzdF9yZWFsX2Z1bmNfbG9vcF9saW1pdCgpOgorCisgICAgY2xhc3MgRXZpbChvYmplY3QpOgor
ICAgICAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgICAgICBzZWxmLmxlZnQgPSAxMDAw
CisKKyAgICAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuICI8RXZp
bCBsZWZ0PXtsZWZ0fT4iLmZvcm1hdChsZWZ0PXNlbGYubGVmdCkKKworICAgICAgICBkZWYgX19n
ZXRhdHRyX18oc2VsZiwgYXR0cik6CisgICAgICAgICAgICBpZiBub3Qgc2VsZi5sZWZ0OgorICAg
ICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcignaXRzIG92ZXInKQorICAgICAgICAgICAg
c2VsZi5sZWZ0IC09IDEKKyAgICAgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBldmlsID0gRXZp
bCgpCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgIHJlcyA9
IGdldF9yZWFsX2Z1bmMoZXZpbCkKKyAgICAgICAgcHJpbnQocmVzKQorCisKK0BweXRlc3QubWFy
ay5za2lwaWYoc3lzLnZlcnNpb25faW5mbyA8ICgzLCA0KSwKKyAgICAgICAgICAgICAgICAgICAg
cmVhc29uPSdhc3luY2lvIGF2YWlsYWJsZSBpbiBQeXRob24gMy40KycpCitkZWYgdGVzdF9pc19n
ZW5lcmF0b3JfYXN5bmNpbyh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgIGZyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IGlzX2dlbmVyYXRvcgorICAgICAgICBp
bXBvcnQgYXN5bmNpbworICAgICAgICBAYXN5bmNpby5jb3JvdXRpbmUKKyAgICAgICAgZGVmIGJh
eigpOgorICAgICAgICAgICAgeWllbGQgZnJvbSBbMSwyLDNdCisKKyAgICAgICAgZGVmIHRlc3Rf
aXNfZ2VuZXJhdG9yX2FzeW5jaW8oKToKKyAgICAgICAgICAgIGFzc2VydCBub3QgaXNfZ2VuZXJh
dG9yKGJheikKKyAgICAiIiIpCisgICAgIyBhdm9pZCBpbXBvcnRpbmcgYXN5bmNpbyBpbnRvIHB5
dGVzdCdzIG93biBwcm9jZXNzLAorICAgICMgd2hpY2ggaW4gdHVybiBpbXBvcnRzIGxvZ2dpbmcg
KCM4KQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoKQorICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbJyoxIHBhc3NlZConXSkKKworCitAcHl0ZXN0Lm1h
cmsuc2tpcGlmKHN5cy52ZXJzaW9uX2luZm8gPCAoMywgNSksCisgICAgICAgICAgICAgICAgICAg
IHJlYXNvbj0nYXN5bmMgc3ludGF4IGF2YWlsYWJsZSBpbiBQeXRob24gMy41KycpCitkZWYgdGVz
dF9pc19nZW5lcmF0b3JfYXN5bmNfc3ludGF4KHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgiIiIKKyAgICAgICAgZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgaXNfZ2VuZXJhdG9y
CisgICAgICAgIGRlZiB0ZXN0X2lzX2dlbmVyYXRvcl9weTM1KCk6CisgICAgICAgICAgICBhc3lu
YyBkZWYgZm9vKCk6CisgICAgICAgICAgICAgICAgYXdhaXQgZm9vKCkKKworICAgICAgICAgICAg
YXN5bmMgZGVmIGJhcigpOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICAgICAgYXNz
ZXJ0IG5vdCBpc19nZW5lcmF0b3IoZm9vKQorICAgICAgICAgICAgYXNzZXJ0IG5vdCBpc19nZW5l
cmF0b3IoYmFyKQorICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsnKjEgcGFzc2VkKiddKQorCisKK2NsYXNz
IEVycm9yc0hlbHBlcihvYmplY3QpOgorICAgIEBwcm9wZXJ0eQorICAgIGRlZiByYWlzZV9leGNl
cHRpb24oc2VsZik6CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignZXhjZXB0aW9uIHNob3VsZCBi
ZSBjYXRjaGVkJykKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiByYWlzZV9mYWlsKHNlbGYpOgor
ICAgICAgICBweXRlc3QuZmFpbCgnZmFpbCBzaG91bGQgYmUgY2F0Y2hlZCcpCisKKworZGVmIHRl
c3RfaGVscGVyX2ZhaWx1cmVzKCk6CisgICAgaGVscGVyID0gRXJyb3JzSGVscGVyKCkKKyAgICB3
aXRoIHB5dGVzdC5yYWlzZXMoRXhjZXB0aW9uKToKKyAgICAgICAgaGVscGVyLnJhaXNlX2V4Y2Vw
dGlvbgorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhPdXRjb21lRXhjZXB0aW9uKToKKyAgICAgICAg
aGVscGVyLnJhaXNlX2ZhaWwKKworCitkZWYgdGVzdF9zYWZlX2dldGF0dHIoKToKKyAgICBoZWxw
ZXIgPSBFcnJvcnNIZWxwZXIoKQorICAgIGFzc2VydCBzYWZlX2dldGF0dHIoaGVscGVyLCAncmFp
c2VfZXhjZXB0aW9uJywgJ2RlZmF1bHQnKSA9PSAnZGVmYXVsdCcKKyAgICBhc3NlcnQgc2FmZV9n
ZXRhdHRyKGhlbHBlciwgJ3JhaXNlX2ZhaWwnLCAnZGVmYXVsdCcpID09ICdkZWZhdWx0JwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NvbmZpZy5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvdGVzdF9jb25maWcucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRiOGMzMTdhMjg1NzM1MWI2MWIy
NDlhYzk1NDYzZDBmNDQ4NjY2YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvdGVzdF9jb25maWcucHkKQEAgLTAsMCArMSw4NjIgQEAKK2Zyb20gX19mdXR1cmVfXyBpbXBv
cnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCBzeXMK
K2ltcG9ydCBweQoraW1wb3J0IHB5dGVzdAorCitpbXBvcnQgX3B5dGVzdC5fY29kZQorZnJvbSBf
cHl0ZXN0LmNvbmZpZyBpbXBvcnQgZ2V0Y2ZnLCBnZXRfY29tbW9uX2FuY2VzdG9yLCBkZXRlcm1p
bmVfc2V0dXAsIF9pdGVyX3Jld3JpdGFibGVfbW9kdWxlcworZnJvbSBfcHl0ZXN0Lm1haW4gaW1w
b3J0IEVYSVRfTk9URVNUU0NPTExFQ1RFRAorCisKK2NsYXNzIFRlc3RQYXJzZUluaShvYmplY3Qp
OgorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdzZWN0aW9uLCBmaWxlbmFtZScsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoJ3B5dGVzdCcsICdweXRlc3QuaW5pJyksICgn
dG9vbDpweXRlc3QnLCAnc2V0dXAuY2ZnJyldKQorICAgIGRlZiB0ZXN0X2dldGNmZ19hbmRfY29u
ZmlnKHNlbGYsIHRlc3RkaXIsIHRtcGRpciwgc2VjdGlvbiwgZmlsZW5hbWUpOgorICAgICAgICBz
dWIgPSB0bXBkaXIubWtkaXIoInN1YiIpCisgICAgICAgIHN1Yi5jaGRpcigpCisgICAgICAgIHRt
cGRpci5qb2luKGZpbGVuYW1lKS53cml0ZShfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiIiIKKyAgICAg
ICAgICAgIFt7c2VjdGlvbn1dCisgICAgICAgICAgICBuYW1lID0gdmFsdWUKKyAgICAgICAgIiIi
LmZvcm1hdChzZWN0aW9uPXNlY3Rpb24pKSkKKyAgICAgICAgcm9vdGRpciwgaW5pZmlsZSwgY2Zn
ID0gZ2V0Y2ZnKFtzdWJdKQorICAgICAgICBhc3NlcnQgY2ZnWyduYW1lJ10gPT0gInZhbHVlIgor
ICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlndXJlKHN1YikKKyAgICAgICAgYXNz
ZXJ0IGNvbmZpZy5pbmljZmdbJ25hbWUnXSA9PSAndmFsdWUnCisKKyAgICBkZWYgdGVzdF9nZXRj
ZmdfZW1wdHlfcGF0aChzZWxmKToKKyAgICAgICAgIiIiY29ycmVjdGx5IGhhbmRsZSB6ZXJvIGxl
bmd0aCBhcmd1bWVudHMgKGEgbGEgcHl0ZXN0ICcnKSIiIgorICAgICAgICBnZXRjZmcoWycnXSkK
KworICAgIGRlZiB0ZXN0X2FwcGVuZF9wYXJzZV9hcmdzKHNlbGYsIHRlc3RkaXIsIHRtcGRpciwg
bW9ua2V5cGF0Y2gpOgorICAgICAgICBtb25rZXlwYXRjaC5zZXRlbnYoJ1BZVEVTVF9BRERPUFRT
JywgJy0tY29sb3Igbm8gLXJzIC0tdGI9InNob3J0IicpCisgICAgICAgIHRtcGRpci5qb2luKCJw
eXRlc3QuaW5pIikud3JpdGUoX3B5dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisgICAgICAgICAgICBb
cHl0ZXN0XQorICAgICAgICAgICAgYWRkb3B0cyA9IC0tdmVyYm9zZQorICAgICAgICAiIiIpKQor
ICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlnKHRtcGRpcikKKyAgICAgICAgYXNz
ZXJ0IGNvbmZpZy5vcHRpb24uY29sb3IgPT0gJ25vJworICAgICAgICBhc3NlcnQgY29uZmlnLm9w
dGlvbi5yZXBvcnRjaGFycyA9PSAncycKKyAgICAgICAgYXNzZXJ0IGNvbmZpZy5vcHRpb24udGJz
dHlsZSA9PSAnc2hvcnQnCisgICAgICAgIGFzc2VydCBjb25maWcub3B0aW9uLnZlcmJvc2UKKwor
ICAgIGRlZiB0ZXN0X3RveF9pbmlfd3JvbmdfdmVyc2lvbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgdGVzdGRpci5tYWtlZmlsZSgnLmluaScsIHRveD0iIiIKKyAgICAgICAgICAgIFtweXRlc3Rd
CisgICAgICAgICAgICBtaW52ZXJzaW9uPTkuMAorICAgICAgICAiIiIpCisgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0gMAor
ICAgICAgICByZXN1bHQuc3RkZXJyLmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIip0b3gu
aW5pOjIqcmVxdWlyZXMqOS4wKmFjdHVhbCoiCisgICAgICAgIF0pCisKKyAgICBAcHl0ZXN0Lm1h
cmsucGFyYW1ldHJpemUoInNlY3Rpb24sIG5hbWUiLCBbCisgICAgICAgICgndG9vbDpweXRlc3Qn
LCAnc2V0dXAuY2ZnJyksCisgICAgICAgICgncHl0ZXN0JywgJ3RveC5pbmknKSwKKyAgICAgICAg
KCdweXRlc3QnLCAncHl0ZXN0LmluaScpXSwKKyAgICApCisgICAgZGVmIHRlc3RfaW5pX25hbWVz
KHNlbGYsIHRlc3RkaXIsIG5hbWUsIHNlY3Rpb24pOgorICAgICAgICB0ZXN0ZGlyLnRtcGRpci5q
b2luKG5hbWUpLndyaXRlKHB5LnN0ZC50ZXh0d3JhcC5kZWRlbnQoIiIiCisgICAgICAgICAgICBb
e3NlY3Rpb259XQorICAgICAgICAgICAgbWludmVyc2lvbiA9IDEuMAorICAgICAgICAiIiIuZm9y
bWF0KHNlY3Rpb249c2VjdGlvbikpKQorICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29u
ZmlnKCkKKyAgICAgICAgYXNzZXJ0IGNvbmZpZy5nZXRpbmkoIm1pbnZlcnNpb24iKSA9PSAiMS4w
IgorCisgICAgZGVmIHRlc3RfdG94aW5pX2JlZm9yZV9sb3dlcl9weXRlc3Rpbmkoc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHN1YiA9IHRlc3RkaXIudG1wZGlyLm1rZGlyKCJzdWIiKQorICAgICAg
ICBzdWIuam9pbigidG94LmluaSIpLndyaXRlKHB5LnN0ZC50ZXh0d3JhcC5kZWRlbnQoIiIiCisg
ICAgICAgICAgICBbcHl0ZXN0XQorICAgICAgICAgICAgbWludmVyc2lvbiA9IDIuMAorICAgICAg
ICAiIiIpKQorICAgICAgICB0ZXN0ZGlyLnRtcGRpci5qb2luKCJweXRlc3QuaW5pIikud3JpdGUo
cHkuc3RkLnRleHR3cmFwLmRlZGVudCgiIiIKKyAgICAgICAgICAgIFtweXRlc3RdCisgICAgICAg
ICAgICBtaW52ZXJzaW9uID0gMS41CisgICAgICAgICIiIikpCisgICAgICAgIGNvbmZpZyA9IHRl
c3RkaXIucGFyc2Vjb25maWd1cmUoc3ViKQorICAgICAgICBhc3NlcnQgY29uZmlnLmdldGluaSgi
bWludmVyc2lvbiIpID09ICIyLjAiCisKKyAgICBAcHl0ZXN0Lm1hcmsueGZhaWwocmVhc29uPSJw
cm9iYWJseSBub3QgbmVlZGVkIikKKyAgICBkZWYgdGVzdF9jb25mY3V0ZGlyKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICBzdWIgPSB0ZXN0ZGlyLm1rZGlyKCJzdWIiKQorICAgICAgICBzdWIuY2hk
aXIoKQorICAgICAgICB0ZXN0ZGlyLm1ha2VpbmkoIiIiCisgICAgICAgICAgICBbcHl0ZXN0XQor
ICAgICAgICAgICAgYWRkb3B0cyA9IC0tcXdlCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5pbmxpbmVfcnVuKCItLWNvbmZjdXRkaXI9LiIpCisgICAgICAgIGFzc2VydCBy
ZXN1bHQucmV0ID09IDAKKworCitjbGFzcyBUZXN0Q29uZmlnQ21kbGluZVBhcnNpbmcob2JqZWN0
KToKKyAgICBkZWYgdGVzdF9wYXJzaW5nX2FnYWluX2ZhaWxzKHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlnKCkKKyAgICAgICAgcHl0ZXN0LnJhaXNl
cyhBc3NlcnRpb25FcnJvciwgbGFtYmRhOiBjb25maWcucGFyc2UoW10pKQorCisgICAgZGVmIHRl
c3RfZXhwbGljaXRseV9zcGVjaWZpZWRfY29uZmlnX2ZpbGVfaXNfbG9hZGVkKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGRlZiBw
eXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAgICAgICAgICAgICAgcGFyc2VyLmFkZGluaSgi
Y3VzdG9tIiwgIiIpCisgICAgICAgICIiIikKKyAgICAgICAgdGVzdGRpci5tYWtlaW5pKCIiIgor
ICAgICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgICAgIGN1c3RvbSA9IDAKKyAgICAgICAgIiIi
KQorICAgICAgICB0ZXN0ZGlyLm1ha2VmaWxlKCIuY2ZnIiwgY3VzdG9tPSIiIgorICAgICAgICAg
ICAgW3B5dGVzdF0KKyAgICAgICAgICAgIGN1c3RvbSA9IDEKKyAgICAgICAgIiIiKQorICAgICAg
ICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlnKCItYyIsICJjdXN0b20uY2ZnIikKKyAgICAg
ICAgYXNzZXJ0IGNvbmZpZy5nZXRpbmkoImN1c3RvbSIpID09ICIxIgorCisgICAgZGVmIHRlc3Rf
YWJzb2x1dGVfd2luMzJfcGF0aChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVtcF9jZmdfZmls
ZSA9IHRlc3RkaXIubWFrZWZpbGUoIi5jZmciLCBjdXN0b209IiIiCisgICAgICAgICAgICBbcHl0
ZXN0XQorICAgICAgICAgICAgYWRkb3B0cyA9IC0tdmVyc2lvbgorICAgICAgICAiIiIpCisgICAg
ICAgIGZyb20gb3MucGF0aCBpbXBvcnQgbm9ybXBhdGgKKyAgICAgICAgdGVtcF9jZmdfZmlsZSA9
IG5vcm1wYXRoKHN0cih0ZW1wX2NmZ19maWxlKSkKKyAgICAgICAgcmV0ID0gcHl0ZXN0Lm1haW4o
Ii1jICIgKyB0ZW1wX2NmZ19maWxlKQorICAgICAgICBhc3NlcnQgcmV0ID09IF9weXRlc3QubWFp
bi5FWElUX09LCisKKworY2xhc3MgVGVzdENvbmZpZ0FQSShvYmplY3QpOgorICAgIGRlZiB0ZXN0
X2NvbmZpZ190cmFjZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgY29uZmlnID0gdGVzdGRpci5w
YXJzZWNvbmZpZygpCisgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAgIGNvbmZpZy50cmFjZS5y
b290LnNldHdyaXRlcih2YWx1ZXMuYXBwZW5kKQorICAgICAgICBjb25maWcudHJhY2UoImhlbGxv
IikKKyAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDEKKyAgICAgICAgYXNzZXJ0IHZhbHVl
c1swXSA9PSAiaGVsbG8gW2NvbmZpZ11cbiIKKworICAgIGRlZiB0ZXN0X2NvbmZpZ19nZXRvcHRp
b24oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAg
ICAgICAgICAgZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKKyAgICAgICAgICAgICAgICBw
YXJzZXIuYWRkb3B0aW9uKCItLWhlbGxvIiwgIi1YIiwgZGVzdD0iaGVsbG8iKQorICAgICAgICAi
IiIpCisgICAgICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWcoIi0taGVsbG89dGhpcyIp
CisgICAgICAgIGZvciB4IGluICgiaGVsbG8iLCAiLS1oZWxsbyIsICItWCIpOgorICAgICAgICAg
ICAgYXNzZXJ0IGNvbmZpZy5nZXRvcHRpb24oeCkgPT0gInRoaXMiCisgICAgICAgIHB5dGVzdC5y
YWlzZXMoVmFsdWVFcnJvciwgImNvbmZpZy5nZXRvcHRpb24oJ3F3ZXF3ZScpIikKKworICAgIEBw
eXRlc3QubWFyay5za2lwaWYoJ3N5cy52ZXJzaW9uX2luZm9bMF0gPCAzJykKKyAgICBkZWYgdGVz
dF9jb25maWdfZ2V0b3B0aW9uX3VuaWNvZGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3Rk
aXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB1
bmljb2RlX2xpdGVyYWxzCisKKyAgICAgICAgICAgIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNl
cik6CisgICAgICAgICAgICAgICAgcGFyc2VyLmFkZG9wdGlvbignLS1oZWxsbycsIHR5cGU9c3Ry
KQorICAgICAgICAiIiIpCisgICAgICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWcoJy0t
aGVsbG89dGhpcycpCisgICAgICAgIGFzc2VydCBjb25maWcuZ2V0b3B0aW9uKCdoZWxsbycpID09
ICd0aGlzJworCisgICAgZGVmIHRlc3RfY29uZmlnX2dldHZhbHVlb3Jza2lwKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlnKCkKKyAgICAgICAgcHl0
ZXN0LnJhaXNlcyhweXRlc3Quc2tpcC5FeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgICAg
ImNvbmZpZy5nZXR2YWx1ZW9yc2tpcCgnaGVsbG8nKSIpCisgICAgICAgIHZlcmJvc2UgPSBjb25m
aWcuZ2V0dmFsdWVvcnNraXAoInZlcmJvc2UiKQorICAgICAgICBhc3NlcnQgdmVyYm9zZSA9PSBj
b25maWcub3B0aW9uLnZlcmJvc2UKKworICAgIGRlZiB0ZXN0X2NvbmZpZ19nZXR2YWx1ZW9yc2tp
cF9Ob25lKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIK
KyAgICAgICAgICAgIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAgICAgICAgICAg
ICAgcGFyc2VyLmFkZG9wdGlvbigiLS1oZWxsbyIpCisgICAgICAgICIiIikKKyAgICAgICAgY29u
ZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZygpCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhw
eXRlc3Quc2tpcC5FeGNlcHRpb24pOgorICAgICAgICAgICAgY29uZmlnLmdldHZhbHVlb3Jza2lw
KCdoZWxsbycpCisKKyAgICBkZWYgdGVzdF9nZXRvcHRpb24oc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWcoKQorICAgICAgICB3aXRoIHB5dGVzdC5y
YWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBjb25maWcuZ2V0dmFsdWUoJ3gnKQorICAg
ICAgICBhc3NlcnQgY29uZmlnLmdldG9wdGlvbigieCIsIDEpID09IDEKKworICAgIGRlZiB0ZXN0
X2dldGNvbmZ0ZXN0X3BhdGhsaXN0KHNlbGYsIHRlc3RkaXIsIHRtcGRpcik6CisgICAgICAgIHNv
bWVwYXRoID0gdG1wZGlyLmpvaW4oIngiLCAieSIsICJ6IikKKyAgICAgICAgcCA9IHRtcGRpci5q
b2luKCJjb25mdGVzdC5weSIpCisgICAgICAgIHAud3JpdGUoInBhdGhsaXN0ID0gWycuJywgJXJd
IiAlIHN0cihzb21lcGF0aCkpCisgICAgICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWd1
cmUocCkKKyAgICAgICAgYXNzZXJ0IGNvbmZpZy5fZ2V0Y29uZnRlc3RfcGF0aGxpc3QoJ25vdGV4
aXN0JywgcGF0aD10bXBkaXIpIGlzIE5vbmUKKyAgICAgICAgcGwgPSBjb25maWcuX2dldGNvbmZ0
ZXN0X3BhdGhsaXN0KCdwYXRobGlzdCcsIHBhdGg9dG1wZGlyKQorICAgICAgICBwcmludChwbCkK
KyAgICAgICAgYXNzZXJ0IGxlbihwbCkgPT0gMgorICAgICAgICBhc3NlcnQgcGxbMF0gPT0gdG1w
ZGlyCisgICAgICAgIGFzc2VydCBwbFsxXSA9PSBzb21lcGF0aAorCisgICAgZGVmIHRlc3RfYWRk
aW5pKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAg
ICAgICAgICAgIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAgICAgICAgICAgICAg
cGFyc2VyLmFkZGluaSgibXluYW1lIiwgIm15IG5ldyBpbmkgdmFsdWUiKQorICAgICAgICAiIiIp
CisgICAgICAgIHRlc3RkaXIubWFrZWluaSgiIiIKKyAgICAgICAgICAgIFtweXRlc3RdCisgICAg
ICAgICAgICBteW5hbWU9aGVsbG8KKyAgICAgICAgIiIiKQorICAgICAgICBjb25maWcgPSB0ZXN0
ZGlyLnBhcnNlY29uZmlnKCkKKyAgICAgICAgdmFsID0gY29uZmlnLmdldGluaSgibXluYW1lIikK
KyAgICAgICAgYXNzZXJ0IHZhbCA9PSAiaGVsbG8iCisgICAgICAgIHB5dGVzdC5yYWlzZXMoVmFs
dWVFcnJvciwgY29uZmlnLmdldGluaSwgJ290aGVyJykKKworICAgIGRlZiB0ZXN0X2FkZGluaV9w
YXRobGlzdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIi
CisgICAgICAgICAgICBkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgorICAgICAgICAgICAg
ICAgIHBhcnNlci5hZGRpbmkoInBhdGhzIiwgIm15IG5ldyBpbmkgdmFsdWUiLCB0eXBlPSJwYXRo
bGlzdCIpCisgICAgICAgICAgICAgICAgcGFyc2VyLmFkZGluaSgiYWJjIiwgImFiYyB2YWx1ZSIp
CisgICAgICAgICIiIikKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZWluaSgiIiIKKyAgICAgICAg
ICAgIFtweXRlc3RdCisgICAgICAgICAgICBwYXRocz1oZWxsbyB3b3JsZC9zdWIucHkKKyAgICAg
ICAgIiIiKQorICAgICAgICBjb25maWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlnKCkKKyAgICAgICAg
dmFsdWVzID0gY29uZmlnLmdldGluaSgicGF0aHMiKQorICAgICAgICBhc3NlcnQgbGVuKHZhbHVl
cykgPT0gMgorICAgICAgICBhc3NlcnQgdmFsdWVzWzBdID09IHAuZGlycGF0aCgnaGVsbG8nKQor
ICAgICAgICBhc3NlcnQgdmFsdWVzWzFdID09IHAuZGlycGF0aCgnd29ybGQvc3ViLnB5JykKKyAg
ICAgICAgcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBjb25maWcuZ2V0aW5pLCAnb3RoZXInKQor
CisgICAgZGVmIHRlc3RfYWRkaW5pX2FyZ3Moc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3Rk
aXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFy
c2VyKToKKyAgICAgICAgICAgICAgICBwYXJzZXIuYWRkaW5pKCJhcmdzIiwgIm5ldyBhcmdzIiwg
dHlwZT0iYXJncyIpCisgICAgICAgICAgICAgICAgcGFyc2VyLmFkZGluaSgiYTIiLCAiIiwgImFy
Z3MiLCBkZWZhdWx0PSIxIDIgMyIuc3BsaXQoKSkKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0
ZGlyLm1ha2VpbmkoIiIiCisgICAgICAgICAgICBbcHl0ZXN0XQorICAgICAgICAgICAgYXJncz0x
MjMgIjEyMyBoZWxsbyIgInRoaXMiCisgICAgICAgICIiIikKKyAgICAgICAgY29uZmlnID0gdGVz
dGRpci5wYXJzZWNvbmZpZygpCisgICAgICAgIHZhbHVlcyA9IGNvbmZpZy5nZXRpbmkoImFyZ3Mi
KQorICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMworICAgICAgICBhc3NlcnQgdmFsdWVz
ID09IFsiMTIzIiwgIjEyMyBoZWxsbyIsICJ0aGlzIl0KKyAgICAgICAgdmFsdWVzID0gY29uZmln
LmdldGluaSgiYTIiKQorICAgICAgICBhc3NlcnQgdmFsdWVzID09IGxpc3QoIjEyMyIpCisKKyAg
ICBkZWYgdGVzdF9hZGRpbmlfbGluZWxpc3Qoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3Rk
aXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFy
c2VyKToKKyAgICAgICAgICAgICAgICBwYXJzZXIuYWRkaW5pKCJ4eSIsICIiLCB0eXBlPSJsaW5l
bGlzdCIpCisgICAgICAgICAgICAgICAgcGFyc2VyLmFkZGluaSgiYTIiLCAiIiwgImxpbmVsaXN0
IikKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2VpbmkoIiIiCisgICAgICAgICAg
ICBbcHl0ZXN0XQorICAgICAgICAgICAgeHk9IDEyMyAzNDUKKyAgICAgICAgICAgICAgICBzZWNv
bmQgbGluZQorICAgICAgICAiIiIpCisgICAgICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25m
aWcoKQorICAgICAgICB2YWx1ZXMgPSBjb25maWcuZ2V0aW5pKCJ4eSIpCisgICAgICAgIGFzc2Vy
dCBsZW4odmFsdWVzKSA9PSAyCisgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWyIxMjMgMzQ1Iiwg
InNlY29uZCBsaW5lIl0KKyAgICAgICAgdmFsdWVzID0gY29uZmlnLmdldGluaSgiYTIiKQorICAg
ICAgICBhc3NlcnQgdmFsdWVzID09IFtdCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
J3N0cl92YWwsIGJvb2xfdmFsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWygnVHJ1
ZScsIFRydWUpLCAoJ25vJywgRmFsc2UpLCAoJ25vLWluaScsIFRydWUpXSkKKyAgICBkZWYgdGVz
dF9hZGRpbmlfYm9vbChzZWxmLCB0ZXN0ZGlyLCBzdHJfdmFsLCBib29sX3ZhbCk6CisgICAgICAg
IHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgZGVmIHB5dGVzdF9hZGRvcHRp
b24ocGFyc2VyKToKKyAgICAgICAgICAgICAgICBwYXJzZXIuYWRkaW5pKCJzdHJpcCIsICIiLCB0
eXBlPSJib29sIiwgZGVmYXVsdD1UcnVlKQorICAgICAgICAiIiIpCisgICAgICAgIGlmIHN0cl92
YWwgIT0gJ25vLWluaSc6CisgICAgICAgICAgICB0ZXN0ZGlyLm1ha2VpbmkoIiIiCisgICAgICAg
ICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgICAgICAgICBzdHJpcD0lcworICAgICAgICAgICAg
IiIiICUgc3RyX3ZhbCkKKyAgICAgICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZygpCisg
ICAgICAgIGFzc2VydCBjb25maWcuZ2V0aW5pKCJzdHJpcCIpIGlzIGJvb2xfdmFsCisKKyAgICBk
ZWYgdGVzdF9hZGRpbml2YWx1ZV9saW5lX2V4aXN0aW5nKHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGRlZiBweXRlc3RfYWRkb3B0
aW9uKHBhcnNlcik6CisgICAgICAgICAgICAgICAgcGFyc2VyLmFkZGluaSgieHkiLCAiIiwgdHlw
ZT0ibGluZWxpc3QiKQorICAgICAgICAiIiIpCisgICAgICAgIHRlc3RkaXIubWFrZWluaSgiIiIK
KyAgICAgICAgICAgIFtweXRlc3RdCisgICAgICAgICAgICB4eT0gMTIzCisgICAgICAgICIiIikK
KyAgICAgICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZygpCisgICAgICAgIHZhbHVlcyA9
IGNvbmZpZy5nZXRpbmkoInh5IikKKyAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDEKKyAg
ICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbIjEyMyJdCisgICAgICAgIGNvbmZpZy5hZGRpbml2YWx1
ZV9saW5lKCJ4eSIsICI0NTYiKQorICAgICAgICB2YWx1ZXMgPSBjb25maWcuZ2V0aW5pKCJ4eSIp
CisgICAgICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSAyCisgICAgICAgIGFzc2VydCB2YWx1ZXMg
PT0gWyIxMjMiLCAiNDU2Il0KKworICAgIGRlZiB0ZXN0X2FkZGluaXZhbHVlX2xpbmVfbmV3KHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAg
ICAgIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAgICAgICAgICAgICAgcGFyc2Vy
LmFkZGluaSgieHkiLCAiIiwgdHlwZT0ibGluZWxpc3QiKQorICAgICAgICAiIiIpCisgICAgICAg
IGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWcoKQorICAgICAgICBhc3NlcnQgbm90IGNvbmZp
Zy5nZXRpbmkoInh5IikKKyAgICAgICAgY29uZmlnLmFkZGluaXZhbHVlX2xpbmUoInh5IiwgIjQ1
NiIpCisgICAgICAgIHZhbHVlcyA9IGNvbmZpZy5nZXRpbmkoInh5IikKKyAgICAgICAgYXNzZXJ0
IGxlbih2YWx1ZXMpID09IDEKKyAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbIjQ1NiJdCisgICAg
ICAgIGNvbmZpZy5hZGRpbml2YWx1ZV9saW5lKCJ4eSIsICIxMjMiKQorICAgICAgICB2YWx1ZXMg
PSBjb25maWcuZ2V0aW5pKCJ4eSIpCisgICAgICAgIGFzc2VydCBsZW4odmFsdWVzKSA9PSAyCisg
ICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWyI0NTYiLCAiMTIzIl0KKworICAgIGRlZiB0ZXN0X2Nv
bmZjdXRkaXJfY2hlY2tfaXNkaXIoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIkdpdmUgYW4g
ZXJyb3IgaWYgLS1jb25mY3V0ZGlyIGlzIG5vdCBhIHZhbGlkIGRpcmVjdG9yeSAoIzIwNzgpIiIi
CisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhweXRlc3QuVXNhZ2VFcnJvcik6CisgICAgICAg
ICAgICB0ZXN0ZGlyLnBhcnNlY29uZmlnKCctLWNvbmZjdXRkaXInLCB0ZXN0ZGlyLnRtcGRpci5q
b2luKCdmaWxlJykuZW5zdXJlKGZpbGU9MSkpCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhw
eXRlc3QuVXNhZ2VFcnJvcik6CisgICAgICAgICAgICB0ZXN0ZGlyLnBhcnNlY29uZmlnKCctLWNv
bmZjdXRkaXInLCB0ZXN0ZGlyLnRtcGRpci5qb2luKCdpbmV4aXN0YW50JykpCisgICAgICAgIGNv
bmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWcoJy0tY29uZmN1dGRpcicsIHRlc3RkaXIudG1wZGly
LmpvaW4oJ2RpcicpLmVuc3VyZShkaXI9MSkpCisgICAgICAgIGFzc2VydCBjb25maWcuZ2V0b3B0
aW9uKCdjb25mY3V0ZGlyJykgPT0gc3RyKHRlc3RkaXIudG1wZGlyLmpvaW4oJ2RpcicpKQorCisg
ICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCduYW1lcywgZXhwZWN0ZWQnLCBbCisgICAgICAg
IChbJ2Jhci5weSddLCBbJ2JhciddKSwKKyAgICAgICAgKFsnZm9vJywgJ2Jhci5weSddLCBbXSks
CisgICAgICAgIChbJ2ZvbycsICdiYXIucHljJ10sIFtdKSwKKyAgICAgICAgKFsnZm9vJywgJ19f
aW5pdF9fLnB5J10sIFsnZm9vJ10pLAorICAgICAgICAoWydmb28nLCAnYmFyJywgJ19faW5pdF9f
LnB5J10sIFtdKSwKKyAgICBdKQorICAgIGRlZiB0ZXN0X2l0ZXJfcmV3cml0YWJsZV9tb2R1bGVz
KHNlbGYsIG5hbWVzLCBleHBlY3RlZCk6CisgICAgICAgIGFzc2VydCBsaXN0KF9pdGVyX3Jld3Jp
dGFibGVfbW9kdWxlcyhbJy8nLmpvaW4obmFtZXMpXSkpID09IGV4cGVjdGVkCisKKworY2xhc3Mg
VGVzdENvbmZpZ0Zyb21kaWN0YXJncyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X2Jhc2ljX2JlaGF2
aW9yKHNlbGYpOgorICAgICAgICBmcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBDb25maWcKKyAg
ICAgICAgb3B0aW9uX2RpY3QgPSB7CisgICAgICAgICAgICAndmVyYm9zZSc6IDQ0NCwKKyAgICAg
ICAgICAgICdmb28nOiAnYmFyJywKKyAgICAgICAgICAgICdjYXB0dXJlJzogJ25vJywKKyAgICAg
ICAgfQorICAgICAgICBhcmdzID0gWydhJywgJ2InXQorCisgICAgICAgIGNvbmZpZyA9IENvbmZp
Zy5mcm9tZGljdGFyZ3Mob3B0aW9uX2RpY3QsIGFyZ3MpCisgICAgICAgIHdpdGggcHl0ZXN0LnJh
aXNlcyhBc3NlcnRpb25FcnJvcik6CisgICAgICAgICAgICBjb25maWcucGFyc2UoWydzaG91bGQg
cmVmdXNlIHRvIHBhcnNlIGFnYWluJ10pCisgICAgICAgIGFzc2VydCBjb25maWcub3B0aW9uLnZl
cmJvc2UgPT0gNDQ0CisgICAgICAgIGFzc2VydCBjb25maWcub3B0aW9uLmZvbyA9PSAnYmFyJwor
ICAgICAgICBhc3NlcnQgY29uZmlnLm9wdGlvbi5jYXB0dXJlID09ICdubycKKyAgICAgICAgYXNz
ZXJ0IGNvbmZpZy5hcmdzID09IGFyZ3MKKworICAgIGRlZiB0ZXN0X29yaWdhcmdzKHNlbGYpOgor
ICAgICAgICAiIiJTaG93IHRoYXQgZnJvbWRpY3RhcmdzIGNhbiBoYW5kbGUgYXJncyBpbiB0aGVp
ciAib3JpZyIgZm9ybWF0IiIiCisgICAgICAgIGZyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IENv
bmZpZworICAgICAgICBvcHRpb25fZGljdCA9IHt9CisgICAgICAgIGFyZ3MgPSBbJy12dnZ2Jywg
Jy1zJywgJ2EnLCAnYiddCisKKyAgICAgICAgY29uZmlnID0gQ29uZmlnLmZyb21kaWN0YXJncyhv
cHRpb25fZGljdCwgYXJncykKKyAgICAgICAgYXNzZXJ0IGNvbmZpZy5hcmdzID09IFsnYScsICdi
J10KKyAgICAgICAgYXNzZXJ0IGNvbmZpZy5fb3JpZ2FyZ3MgPT0gYXJncworICAgICAgICBhc3Nl
cnQgY29uZmlnLm9wdGlvbi52ZXJib3NlID09IDQKKyAgICAgICAgYXNzZXJ0IGNvbmZpZy5vcHRp
b24uY2FwdHVyZSA9PSAnbm8nCisKKyAgICBkZWYgdGVzdF9pbmlmaWxlbmFtZShzZWxmLCB0bXBk
aXIpOgorICAgICAgICB0bXBkaXIuam9pbigiZm9vL2Jhci5pbmkiKS5lbnN1cmUoKS53cml0ZShf
cHl0ZXN0Ll9jb2RlLlNvdXJjZSgiIiIKKyAgICAgICAgICAgIFtweXRlc3RdCisgICAgICAgICAg
ICBuYW1lID0gdmFsdWUKKyAgICAgICAgIiIiKSkKKworICAgICAgICBmcm9tIF9weXRlc3QuY29u
ZmlnIGltcG9ydCBDb25maWcKKyAgICAgICAgaW5pZmlsZSA9ICcuLi8uLi9mb28vYmFyLmluaScK
KyAgICAgICAgb3B0aW9uX2RpY3QgPSB7CisgICAgICAgICAgICAnaW5pZmlsZW5hbWUnOiBpbmlm
aWxlLAorICAgICAgICAgICAgJ2NhcHR1cmUnOiAnbm8nLAorICAgICAgICB9CisKKyAgICAgICAg
Y3dkID0gdG1wZGlyLmpvaW4oJ2EvYicpCisgICAgICAgIGN3ZC5qb2luKCdweXRlc3QuaW5pJyku
ZW5zdXJlKCkud3JpdGUoX3B5dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisgICAgICAgICAgICBbcHl0
ZXN0XQorICAgICAgICAgICAgbmFtZSA9IHdyb25nLXZhbHVlCisgICAgICAgICAgICBzaG91bGRf
bm90X2JlX3NldCA9IHRydWUKKyAgICAgICAgIiIiKSkKKyAgICAgICAgd2l0aCBjd2QuZW5zdXJl
KGRpcj1UcnVlKS5hc19jd2QoKToKKyAgICAgICAgICAgIGNvbmZpZyA9IENvbmZpZy5mcm9tZGlj
dGFyZ3Mob3B0aW9uX2RpY3QsICgpKQorCisgICAgICAgIGFzc2VydCBjb25maWcuYXJncyA9PSBb
c3RyKGN3ZCldCisgICAgICAgIGFzc2VydCBjb25maWcub3B0aW9uLmluaWZpbGVuYW1lID09IGlu
aWZpbGUKKyAgICAgICAgYXNzZXJ0IGNvbmZpZy5vcHRpb24uY2FwdHVyZSA9PSAnbm8nCisKKyAg
ICAgICAgIyB0aGlzIGluZGljYXRlcyB0aGlzIGlzIHRoZSBmaWxlIHVzZWQgZm9yIGdldHRpbmcg
Y29uZmlndXJhdGlvbiB2YWx1ZXMKKyAgICAgICAgYXNzZXJ0IGNvbmZpZy5pbmlmaWxlID09IGlu
aWZpbGUKKyAgICAgICAgYXNzZXJ0IGNvbmZpZy5pbmljZmcuZ2V0KCduYW1lJykgPT0gJ3ZhbHVl
JworICAgICAgICBhc3NlcnQgY29uZmlnLmluaWNmZy5nZXQoJ3Nob3VsZF9ub3RfYmVfc2V0Jykg
aXMgTm9uZQorCisKK2RlZiB0ZXN0X29wdGlvbnNfb25fc21hbGxfZmlsZV9kb19ub3RfYmxvd191
cCh0ZXN0ZGlyKToKKyAgICBkZWYgcnVuZmlsZXRlc3Qob3B0cyk6CisgICAgICAgIHJlcHJlYyA9
IHRlc3RkaXIuaW5saW5lX3J1bigqb3B0cykKKyAgICAgICAgcGFzc2VkLCBza2lwcGVkLCBmYWls
ZWQgPSByZXByZWMuY291bnRvdXRjb21lcygpCisgICAgICAgIGFzc2VydCBmYWlsZWQgPT0gMgor
ICAgICAgICBhc3NlcnQgc2tpcHBlZCA9PSBwYXNzZWQgPT0gMAorICAgIHBhdGggPSB0ZXN0ZGly
Lm1ha2VweWZpbGUoIiIiCisgICAgICAgIGRlZiB0ZXN0X2YxKCk6IGFzc2VydCAwCisgICAgICAg
IGRlZiB0ZXN0X2YyKCk6IGFzc2VydCAwCisgICAgIiIiKQorCisgICAgZm9yIG9wdHMgaW4gKFtd
LCBbJy1sJ10sIFsnLXMnXSwgWyctLXRiPW5vJ10sIFsnLS10Yj1zaG9ydCddLAorICAgICAgICAg
ICAgICAgICBbJy0tdGI9bG9uZyddLCBbJy0tZnVsbHRyYWNlJ10sCisgICAgICAgICAgICAgICAg
IFsnLS10cmFjZWNvbmZpZyddLCBbJy12J10sIFsnLXYnLCAnLXYnXSk6CisgICAgICAgIHJ1bmZp
bGV0ZXN0KG9wdHMgKyBbcGF0aF0pCisKKworZGVmIHRlc3RfcHJlcGFyc2Vfb3JkZXJpbmdfd2l0
aF9zZXR1cHRvb2xzKHRlc3RkaXIsIG1vbmtleXBhdGNoKToKKyAgICBwa2dfcmVzb3VyY2VzID0g
cHl0ZXN0LmltcG9ydG9yc2tpcCgicGtnX3Jlc291cmNlcyIpCisKKyAgICBkZWYgbXlfaXRlcihu
YW1lKToKKyAgICAgICAgYXNzZXJ0IG5hbWUgPT0gInB5dGVzdDExIgorCisgICAgICAgIGNsYXNz
IERpc3Qob2JqZWN0KToKKyAgICAgICAgICAgIHByb2plY3RfbmFtZSA9ICdzcGFtJworICAgICAg
ICAgICAgdmVyc2lvbiA9ICcxLjAnCisKKyAgICAgICAgICAgIGRlZiBfZ2V0X21ldGFkYXRhKHNl
bGYsIG5hbWUpOgorICAgICAgICAgICAgICAgIHJldHVybiBbJ2Zvby50eHQsc2hhMjU2PWFiYywx
MjMnXQorCisgICAgICAgIGNsYXNzIEVudHJ5UG9pbnQob2JqZWN0KToKKyAgICAgICAgICAgIG5h
bWUgPSAibXl0ZXN0cGx1Z2luIgorICAgICAgICAgICAgZGlzdCA9IERpc3QoKQorCisgICAgICAg
ICAgICBkZWYgbG9hZChzZWxmKToKKyAgICAgICAgICAgICAgICBjbGFzcyBQc2V1ZG9QbHVnaW4o
b2JqZWN0KToKKyAgICAgICAgICAgICAgICAgICAgeCA9IDQyCisgICAgICAgICAgICAgICAgcmV0
dXJuIFBzZXVkb1BsdWdpbigpCisKKyAgICAgICAgcmV0dXJuIGl0ZXIoW0VudHJ5UG9pbnQoKV0p
CisKKyAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHBrZ19yZXNvdXJjZXMsICdpdGVyX2VudHJ5X3Bv
aW50cycsIG15X2l0ZXIpCisgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgIHB5
dGVzdF9wbHVnaW5zID0gIm15dGVzdHBsdWdpbiIsCisgICAgIiIiKQorICAgIG1vbmtleXBhdGNo
LnNldGVudigiUFlURVNUX1BMVUdJTlMiLCAibXl0ZXN0cGx1Z2luIikKKyAgICBjb25maWcgPSB0
ZXN0ZGlyLnBhcnNlY29uZmlnKCkKKyAgICBwbHVnaW4gPSBjb25maWcucGx1Z2lubWFuYWdlci5n
ZXRwbHVnaW4oIm15dGVzdHBsdWdpbiIpCisgICAgYXNzZXJ0IHBsdWdpbi54ID09IDQyCisKKwor
ZGVmIHRlc3Rfc2V0dXB0b29sc19pbXBvcnRlcnJvcl9pc3N1ZTE0NzkodGVzdGRpciwgbW9ua2V5
cGF0Y2gpOgorICAgIHBrZ19yZXNvdXJjZXMgPSBweXRlc3QuaW1wb3J0b3Jza2lwKCJwa2dfcmVz
b3VyY2VzIikKKworICAgIGRlZiBteV9pdGVyKG5hbWUpOgorICAgICAgICBhc3NlcnQgbmFtZSA9
PSAicHl0ZXN0MTEiCisKKyAgICAgICAgY2xhc3MgRGlzdChvYmplY3QpOgorICAgICAgICAgICAg
cHJvamVjdF9uYW1lID0gJ3NwYW0nCisgICAgICAgICAgICB2ZXJzaW9uID0gJzEuMCcKKworICAg
ICAgICAgICAgZGVmIF9nZXRfbWV0YWRhdGEoc2VsZiwgbmFtZSk6CisgICAgICAgICAgICAgICAg
cmV0dXJuIFsnZm9vLnR4dCxzaGEyNTY9YWJjLDEyMyddCisKKyAgICAgICAgY2xhc3MgRW50cnlQ
b2ludChvYmplY3QpOgorICAgICAgICAgICAgbmFtZSA9ICJteXRlc3RwbHVnaW4iCisgICAgICAg
ICAgICBkaXN0ID0gRGlzdCgpCisKKyAgICAgICAgICAgIGRlZiBsb2FkKHNlbGYpOgorICAgICAg
ICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKCJEb24ndCBoaWRlIG1lISIpCisKKyAgICAgICAg
cmV0dXJuIGl0ZXIoW0VudHJ5UG9pbnQoKV0pCisKKyAgICBtb25rZXlwYXRjaC5zZXRhdHRyKHBr
Z19yZXNvdXJjZXMsICdpdGVyX2VudHJ5X3BvaW50cycsIG15X2l0ZXIpCisgICAgd2l0aCBweXRl
c3QucmFpc2VzKEltcG9ydEVycm9yKToKKyAgICAgICAgdGVzdGRpci5wYXJzZWNvbmZpZygpCisK
KworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdibG9ja19pdCcsIFtUcnVlLCBGYWxzZV0pCitk
ZWYgdGVzdF9wbHVnaW5fcHJlcGFyc2VfcHJldmVudHNfc2V0dXB0b29sc19sb2FkaW5nKHRlc3Rk
aXIsIG1vbmtleXBhdGNoLCBibG9ja19pdCk6CisgICAgcGtnX3Jlc291cmNlcyA9IHB5dGVzdC5p
bXBvcnRvcnNraXAoInBrZ19yZXNvdXJjZXMiKQorCisgICAgcGx1Z2luX21vZHVsZV9wbGFjZWhv
bGRlciA9IG9iamVjdCgpCisKKyAgICBkZWYgbXlfaXRlcihuYW1lKToKKyAgICAgICAgYXNzZXJ0
IG5hbWUgPT0gInB5dGVzdDExIgorCisgICAgICAgIGNsYXNzIERpc3Qob2JqZWN0KToKKyAgICAg
ICAgICAgIHByb2plY3RfbmFtZSA9ICdzcGFtJworICAgICAgICAgICAgdmVyc2lvbiA9ICcxLjAn
CisKKyAgICAgICAgICAgIGRlZiBfZ2V0X21ldGFkYXRhKHNlbGYsIG5hbWUpOgorICAgICAgICAg
ICAgICAgIHJldHVybiBbJ2Zvby50eHQsc2hhMjU2PWFiYywxMjMnXQorCisgICAgICAgIGNsYXNz
IEVudHJ5UG9pbnQob2JqZWN0KToKKyAgICAgICAgICAgIG5hbWUgPSAibXl0ZXN0cGx1Z2luIgor
ICAgICAgICAgICAgZGlzdCA9IERpc3QoKQorCisgICAgICAgICAgICBkZWYgbG9hZChzZWxmKToK
KyAgICAgICAgICAgICAgICByZXR1cm4gcGx1Z2luX21vZHVsZV9wbGFjZWhvbGRlcgorCisgICAg
ICAgIHJldHVybiBpdGVyKFtFbnRyeVBvaW50KCldKQorCisgICAgbW9ua2V5cGF0Y2guc2V0YXR0
cihwa2dfcmVzb3VyY2VzLCAnaXRlcl9lbnRyeV9wb2ludHMnLCBteV9pdGVyKQorICAgIGFyZ3Mg
PSAoIi1wIiwgIm5vOm15dGVzdHBsdWdpbiIpIGlmIGJsb2NrX2l0IGVsc2UgKCkKKyAgICBjb25m
aWcgPSB0ZXN0ZGlyLnBhcnNlY29uZmlnKCphcmdzKQorICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2Vy
LmltcG9ydF9wbHVnaW4oIm15dGVzdHBsdWdpbiIpCisgICAgaWYgYmxvY2tfaXQ6CisgICAgICAg
IGFzc2VydCAibXl0ZXN0cGx1Z2luIiBub3QgaW4gc3lzLm1vZHVsZXMKKyAgICAgICAgYXNzZXJ0
IGNvbmZpZy5wbHVnaW5tYW5hZ2VyLmdldF9wbHVnaW4oJ215dGVzdHBsdWdpbicpIGlzIE5vbmUK
KyAgICBlbHNlOgorICAgICAgICBhc3NlcnQgY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0X3BsdWdp
bignbXl0ZXN0cGx1Z2luJykgaXMgcGx1Z2luX21vZHVsZV9wbGFjZWhvbGRlcgorCisKK2RlZiB0
ZXN0X2NtZGxpbmVfcHJvY2Vzc2FyZ3Nfc2ltcGxlKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFr
ZWNvbmZ0ZXN0KCIiIgorICAgICAgICBkZWYgcHl0ZXN0X2NtZGxpbmVfcHJlcGFyc2UoYXJncyk6
CisgICAgICAgICAgICBhcmdzLmFwcGVuZCgiLWgiKQorICAgICIiIikKKyAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAg
ICAgICAgIipweXRlc3QqIiwKKyAgICAgICAgIiotaCoiLAorICAgIF0pCisKKworZGVmIHRlc3Rf
aW52YWxpZF9vcHRpb25zX3Nob3dfZXh0cmFfaW5mb3JtYXRpb24odGVzdGRpcik6CisgICAgIiIi
ZGlzcGxheSBleHRyYSBpbmZvcm1hdGlvbiB3aGVuIHB5dGVzdCBleGl0cyBkdWUgdG8gdW5yZWNv
Z25pemVkCisgICAgb3B0aW9ucyBpbiB0aGUgY29tbWFuZC1saW5lIiIiCisgICAgdGVzdGRpci5t
YWtlaW5pKCIiIgorICAgICAgICBbcHl0ZXN0XQorICAgICAgICBhZGRvcHRzID0gLS1pbnZhbGlk
LW9wdGlvbgorICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAg
cmVzdWx0LnN0ZGVyci5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIiplcnJvcjogdW5yZWNvZ25p
emVkIGFyZ3VtZW50czogLS1pbnZhbGlkLW9wdGlvbioiLAorICAgICAgICAiKiAgaW5pZmlsZTog
JXMqIiAlIHRlc3RkaXIudG1wZGlyLmpvaW4oJ3RveC5pbmknKSwKKyAgICAgICAgIiogIHJvb3Rk
aXI6ICVzKiIgJSB0ZXN0ZGlyLnRtcGRpciwKKyAgICBdKQorCisKK0BweXRlc3QubWFyay5wYXJh
bWV0cml6ZSgnYXJncycsIFsKKyAgICBbJ2RpcjEnLCAnZGlyMicsICctdiddLAorICAgIFsnZGly
MScsICctdicsICdkaXIyJ10sCisgICAgWydkaXIyJywgJy12JywgJ2RpcjEnXSwKKyAgICBbJy12
JywgJ2RpcjInLCAnZGlyMSddLAorXSkKK2RlZiB0ZXN0X2NvbnNpZGVyX2FyZ3NfYWZ0ZXJfb3B0
aW9uc19mb3Jfcm9vdGRpcl9hbmRfaW5pZmlsZSh0ZXN0ZGlyLCBhcmdzKToKKyAgICAiIiIKKyAg
ICBDb25zaWRlciBhbGwgYXJndW1lbnRzIGluIHRoZSBjb21tYW5kLWxpbmUgZm9yIHJvb3RkaXIg
YW5kIGluaWZpbGUKKyAgICBkaXNjb3ZlcnksIGV2ZW4gaWYgdGhleSBoYXBwZW4gdG8gb2NjdXIg
YWZ0ZXIgYW4gb3B0aW9uLiAjOTQ5CisgICAgIiIiCisgICAgIyByZXBsYWNlICJkaXIxIiBhbmQg
ImRpcjIiIGZyb20gImFyZ3MiIGludG8gdGhlaXIgcmVhbCBkaXJlY3RvcnkKKyAgICByb290ID0g
dGVzdGRpci50bXBkaXIubWtkaXIoJ215cm9vdCcpCisgICAgZDEgPSByb290Lm1rZGlyKCdkaXIx
JykKKyAgICBkMiA9IHJvb3QubWtkaXIoJ2RpcjInKQorICAgIGZvciBpLCBhcmcgaW4gZW51bWVy
YXRlKGFyZ3MpOgorICAgICAgICBpZiBhcmcgPT0gJ2RpcjEnOgorICAgICAgICAgICAgYXJnc1tp
XSA9IGQxCisgICAgICAgIGVsaWYgYXJnID09ICdkaXIyJzoKKyAgICAgICAgICAgIGFyZ3NbaV0g
PSBkMgorICAgIHdpdGggcm9vdC5hc19jd2QoKToKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3QoKmFyZ3MpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsnKnJvb3Rk
aXI6ICpteXJvb3QsIGluaWZpbGU6J10pCisKKworQHB5dGVzdC5tYXJrLnNraXBpZigic3lzLnBs
YXRmb3JtID09ICd3aW4zMiciKQorZGVmIHRlc3RfdG9vbG9uZ2FyZ3NfaXNzdWUyMjQodGVzdGRp
cik6CisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1tIiwgImhlbGxvIiAqIDUwMCkK
KyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSBFWElUX05PVEVTVFNDT0xMRUNURUQKKworCitkZWYg
dGVzdF9jb25maWdfaW5fc3ViZGlyZWN0b3J5X2NvbG9uX2NvbW1hbmRfbGluZV9pc3N1ZTIxNDgo
dGVzdGRpcik6CisgICAgY29uZnRlc3Rfc291cmNlID0gJycnCisgICAgICAgIGRlZiBweXRlc3Rf
YWRkb3B0aW9uKHBhcnNlcik6CisgICAgICAgICAgICBwYXJzZXIuYWRkaW5pKCdmb28nLCAnZm9v
JykKKyAgICAnJycKKworICAgIHRlc3RkaXIubWFrZWZpbGUoJy5pbmknLCAqKnsKKyAgICAgICAg
J3B5dGVzdCc6ICdbcHl0ZXN0XVxuZm9vID0gcm9vdCcsCisgICAgICAgICdzdWJkaXIvcHl0ZXN0
JzogJ1tweXRlc3RdXG5mb28gPSBzdWJkaXInLAorICAgIH0pCisKKyAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoKip7CisgICAgICAgICdjb25mdGVzdCc6IGNvbmZ0ZXN0X3NvdXJjZSwKKyAgICAgICAg
J3N1YmRpci9jb25mdGVzdCc6IGNvbmZ0ZXN0X3NvdXJjZSwKKyAgICAgICAgJ3N1YmRpci90ZXN0
X2Zvbyc6ICcnJworICAgICAgICAgICAgZGVmIHRlc3RfZm9vKHB5dGVzdGNvbmZpZyk6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0IHB5dGVzdGNvbmZpZy5nZXRpbmkoJ2ZvbycpID09ICdzdWJkaXIn
CisgICAgICAgICcnJ30pCisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnc3ViZGly
L3Rlc3RfZm9vLnB5Ojp0ZXN0X2ZvbycpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisK
K2RlZiB0ZXN0X25vdGlmeV9leGNlcHRpb24odGVzdGRpciwgY2FwZmQpOgorICAgIGNvbmZpZyA9
IHRlc3RkaXIucGFyc2Vjb25maWcoKQorICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKFZhbHVl
RXJyb3IsICJyYWlzZSBWYWx1ZUVycm9yKDEpIikKKyAgICBjb25maWcubm90aWZ5X2V4Y2VwdGlv
bihleGNpbmZvKQorICAgIG91dCwgZXJyID0gY2FwZmQucmVhZG91dGVycigpCisgICAgYXNzZXJ0
ICJWYWx1ZUVycm9yIiBpbiBlcnIKKworICAgIGNsYXNzIEEob2JqZWN0KToKKyAgICAgICAgZGVm
IHB5dGVzdF9pbnRlcm5hbGVycm9yKHNlbGYsIGV4Y3JlcHIpOgorICAgICAgICAgICAgcmV0dXJu
IFRydWUKKworICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKEEoKSkKKyAgICBjb25m
aWcubm90aWZ5X2V4Y2VwdGlvbihleGNpbmZvKQorICAgIG91dCwgZXJyID0gY2FwZmQucmVhZG91
dGVycigpCisgICAgYXNzZXJ0IG5vdCBlcnIKKworCitkZWYgdGVzdF9sb2FkX2luaXRpYWxfY29u
ZnRlc3RfbGFzdF9vcmRlcmluZyh0ZXN0ZGlyKToKKyAgICBmcm9tIF9weXRlc3QuY29uZmlnIGlt
cG9ydCBnZXRfY29uZmlnCisgICAgcG0gPSBnZXRfY29uZmlnKCkucGx1Z2lubWFuYWdlcgorCisg
ICAgY2xhc3MgTXkob2JqZWN0KToKKyAgICAgICAgZGVmIHB5dGVzdF9sb2FkX2luaXRpYWxfY29u
ZnRlc3RzKHNlbGYpOgorICAgICAgICAgICAgcGFzcworCisgICAgbSA9IE15KCkKKyAgICBwbS5y
ZWdpc3RlcihtKQorICAgIGhjID0gcG0uaG9vay5weXRlc3RfbG9hZF9pbml0aWFsX2NvbmZ0ZXN0
cworICAgIHZhbHVlcyA9IGhjLl9ub253cmFwcGVycyArIGhjLl93cmFwcGVycworICAgIGV4cGVj
dGVkID0gWworICAgICAgICAiX3B5dGVzdC5jb25maWciLAorICAgICAgICAndGVzdF9jb25maWcn
LAorICAgICAgICAnX3B5dGVzdC5jYXB0dXJlJywKKyAgICBdCisgICAgYXNzZXJ0IFt4LmZ1bmN0
aW9uLl9fbW9kdWxlX18gZm9yIHggaW4gdmFsdWVzXSA9PSBleHBlY3RlZAorCisKK2RlZiB0ZXN0
X2dldF9wbHVnaW5fc3BlY3NfYXNfbGlzdCgpOgorICAgIGZyb20gX3B5dGVzdC5jb25maWcgaW1w
b3J0IF9nZXRfcGx1Z2luX3NwZWNzX2FzX2xpc3QKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMocHl0
ZXN0LlVzYWdlRXJyb3IpOgorICAgICAgICBfZ2V0X3BsdWdpbl9zcGVjc19hc19saXN0KHNldChb
J2ZvbyddKSkKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMocHl0ZXN0LlVzYWdlRXJyb3IpOgorICAg
ICAgICBfZ2V0X3BsdWdpbl9zcGVjc19hc19saXN0KGRpY3QoKSkKKworICAgIGFzc2VydCBfZ2V0
X3BsdWdpbl9zcGVjc19hc19saXN0KE5vbmUpID09IFtdCisgICAgYXNzZXJ0IF9nZXRfcGx1Z2lu
X3NwZWNzX2FzX2xpc3QoJycpID09IFtdCisgICAgYXNzZXJ0IF9nZXRfcGx1Z2luX3NwZWNzX2Fz
X2xpc3QoJ2ZvbycpID09IFsnZm9vJ10KKyAgICBhc3NlcnQgX2dldF9wbHVnaW5fc3BlY3NfYXNf
bGlzdCgnZm9vLGJhcicpID09IFsnZm9vJywgJ2JhciddCisgICAgYXNzZXJ0IF9nZXRfcGx1Z2lu
X3NwZWNzX2FzX2xpc3QoWydmb28nLCAnYmFyJ10pID09IFsnZm9vJywgJ2JhciddCisgICAgYXNz
ZXJ0IF9nZXRfcGx1Z2luX3NwZWNzX2FzX2xpc3QoKCdmb28nLCAnYmFyJykpID09IFsnZm9vJywg
J2JhciddCisKKworY2xhc3MgVGVzdFdhcm5pbmcob2JqZWN0KToKKyAgICBkZWYgdGVzdF93YXJu
X2NvbmZpZyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIi
CisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorICAgICAgICAgICAgZGVmIHB5dGVzdF9jb25maWd1
cmUoY29uZmlnKToKKyAgICAgICAgICAgICAgICBjb25maWcud2FybigiQzEiLCAiaGVsbG8iKQor
ICAgICAgICAgICAgZGVmIHB5dGVzdF9sb2d3YXJuaW5nKGNvZGUsIG1lc3NhZ2UpOgorICAgICAg
ICAgICAgICAgIGlmIG1lc3NhZ2UgPT0gImhlbGxvIiBhbmQgY29kZSA9PSAiQzEiOgorICAgICAg
ICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKDEpCisgICAgICAgICIiIikKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfcHJvcGVyKHB5dGVzdGNv
bmZpZyk6CisgICAgICAgICAgICAgICAgaW1wb3J0IGNvbmZ0ZXN0CisgICAgICAgICAgICAgICAg
YXNzZXJ0IGNvbmZ0ZXN0LnZhbHVlcyA9PSBbMV0KKyAgICAgICAgIiIiKQorICAgICAgICByZXBy
ZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShw
YXNzZWQ9MSkKKworICAgIGRlZiB0ZXN0X3dhcm5fb25fdGVzdF9pdGVtX2Zyb21fcmVxdWVzdChz
ZWxmLCB0ZXN0ZGlyLCByZXF1ZXN0KToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgor
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUK
KyAgICAgICAgICAgIGRlZiBmaXgocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmVxdWVzdC5u
b2RlLndhcm4oIlQxIiwgImhlbGxvIikKKworICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oZml4
KToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoIi0tZGlzYWJsZS1weXRlc3Qtd2FybmluZ3MiKQorICAgICAgICBh
c3NlcnQgcmVzdWx0LnBhcnNlb3V0Y29tZXMoKVsid2FybmluZ3MiXSA+IDAKKyAgICAgICAgYXNz
ZXJ0ICJoZWxsbyIgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKworICAgICAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cygiIiIKKyAgICAgICAgICAgID09PSp3YXJuaW5ncyBzdW1tYXJ5Kj09PQorICAgICAgICAgICAg
KnRlc3Rfd2Fybl9vbl90ZXN0X2l0ZW1fZnJvbV9yZXF1ZXN0LnB5Ojp0ZXN0X2hlbGxvKgorICAg
ICAgICAgICAgKmhlbGxvKgorICAgICAgICAiIiIpCisKKworY2xhc3MgVGVzdFJvb3RkaXIob2Jq
ZWN0KToKKyAgICBkZWYgdGVzdF9zaW1wbGVfbm9pbmkoc2VsZiwgdG1wZGlyKToKKyAgICAgICAg
YXNzZXJ0IGdldF9jb21tb25fYW5jZXN0b3IoW3RtcGRpcl0pID09IHRtcGRpcgorICAgICAgICBh
ID0gdG1wZGlyLm1rZGlyKCJhIikKKyAgICAgICAgYXNzZXJ0IGdldF9jb21tb25fYW5jZXN0b3Io
W2EsIHRtcGRpcl0pID09IHRtcGRpcgorICAgICAgICBhc3NlcnQgZ2V0X2NvbW1vbl9hbmNlc3Rv
cihbdG1wZGlyLCBhXSkgPT0gdG1wZGlyCisgICAgICAgIHdpdGggdG1wZGlyLmFzX2N3ZCgpOgor
ICAgICAgICAgICAgYXNzZXJ0IGdldF9jb21tb25fYW5jZXN0b3IoW10pID09IHRtcGRpcgorICAg
ICAgICAgICAgbm9fcGF0aCA9IHRtcGRpci5qb2luKCdkb2VzLW5vdC1leGlzdCcpCisgICAgICAg
ICAgICBhc3NlcnQgZ2V0X2NvbW1vbl9hbmNlc3Rvcihbbm9fcGF0aF0pID09IHRtcGRpcgorICAg
ICAgICAgICAgYXNzZXJ0IGdldF9jb21tb25fYW5jZXN0b3IoW25vX3BhdGguam9pbignYScpXSkg
PT0gdG1wZGlyCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoIm5hbWUiLCAic2V0dXAu
Y2ZnIHRveC5pbmkgcHl0ZXN0LmluaSIuc3BsaXQoKSkKKyAgICBkZWYgdGVzdF93aXRoX2luaShz
ZWxmLCB0bXBkaXIsIG5hbWUpOgorICAgICAgICBpbmlmaWxlID0gdG1wZGlyLmpvaW4obmFtZSkK
KyAgICAgICAgaW5pZmlsZS53cml0ZSgiW3B5dGVzdF1cbiIpCisKKyAgICAgICAgYSA9IHRtcGRp
ci5ta2RpcigiYSIpCisgICAgICAgIGIgPSBhLm1rZGlyKCJiIikKKyAgICAgICAgZm9yIGFyZ3Mg
aW4gKFt0bXBkaXJdLCBbYV0sIFtiXSk6CisgICAgICAgICAgICByb290ZGlyLCBpbmlmaWxlLCBp
bmljZmcgPSBkZXRlcm1pbmVfc2V0dXAoTm9uZSwgYXJncykKKyAgICAgICAgICAgIGFzc2VydCBy
b290ZGlyID09IHRtcGRpcgorICAgICAgICAgICAgYXNzZXJ0IGluaWZpbGUgPT0gaW5pZmlsZQor
ICAgICAgICByb290ZGlyLCBpbmlmaWxlLCBpbmljZmcgPSBkZXRlcm1pbmVfc2V0dXAoTm9uZSwg
W2IsIGFdKQorICAgICAgICBhc3NlcnQgcm9vdGRpciA9PSB0bXBkaXIKKyAgICAgICAgYXNzZXJ0
IGluaWZpbGUgPT0gaW5pZmlsZQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJuYW1l
IiwgInNldHVwLmNmZyB0b3guaW5pIi5zcGxpdCgpKQorICAgIGRlZiB0ZXN0X3B5dGVzdGluaV9v
dmVyaWRlc19lbXB0eV9vdGhlcihzZWxmLCB0bXBkaXIsIG5hbWUpOgorICAgICAgICBpbmlmaWxl
ID0gdG1wZGlyLmVuc3VyZSgicHl0ZXN0LmluaSIpCisgICAgICAgIGEgPSB0bXBkaXIubWtkaXIo
ImEiKQorICAgICAgICBhLmVuc3VyZShuYW1lKQorICAgICAgICByb290ZGlyLCBpbmlmaWxlLCBp
bmljZmcgPSBkZXRlcm1pbmVfc2V0dXAoTm9uZSwgW2FdKQorICAgICAgICBhc3NlcnQgcm9vdGRp
ciA9PSB0bXBkaXIKKyAgICAgICAgYXNzZXJ0IGluaWZpbGUgPT0gaW5pZmlsZQorCisgICAgZGVm
IHRlc3Rfc2V0dXBweV9mYWxsYmFjayhzZWxmLCB0bXBkaXIpOgorICAgICAgICBhID0gdG1wZGly
Lm1rZGlyKCJhIikKKyAgICAgICAgYS5lbnN1cmUoInNldHVwLmNmZyIpCisgICAgICAgIHRtcGRp
ci5lbnN1cmUoInNldHVwLnB5IikKKyAgICAgICAgcm9vdGRpciwgaW5pZmlsZSwgaW5pY2ZnID0g
ZGV0ZXJtaW5lX3NldHVwKE5vbmUsIFthXSkKKyAgICAgICAgYXNzZXJ0IHJvb3RkaXIgPT0gdG1w
ZGlyCisgICAgICAgIGFzc2VydCBpbmlmaWxlIGlzIE5vbmUKKyAgICAgICAgYXNzZXJ0IGluaWNm
ZyA9PSB7fQorCisgICAgZGVmIHRlc3Rfbm90aGluZyhzZWxmLCB0bXBkaXIsIG1vbmtleXBhdGNo
KToKKyAgICAgICAgbW9ua2V5cGF0Y2guY2hkaXIoc3RyKHRtcGRpcikpCisgICAgICAgIHJvb3Rk
aXIsIGluaWZpbGUsIGluaWNmZyA9IGRldGVybWluZV9zZXR1cChOb25lLCBbdG1wZGlyXSkKKyAg
ICAgICAgYXNzZXJ0IHJvb3RkaXIgPT0gdG1wZGlyCisgICAgICAgIGFzc2VydCBpbmlmaWxlIGlz
IE5vbmUKKyAgICAgICAgYXNzZXJ0IGluaWNmZyA9PSB7fQorCisgICAgZGVmIHRlc3Rfd2l0aF9z
cGVjaWZpY19pbmlmaWxlKHNlbGYsIHRtcGRpcik6CisgICAgICAgIGluaWZpbGUgPSB0bXBkaXIu
ZW5zdXJlKCJweXRlc3QuaW5pIikKKyAgICAgICAgcm9vdGRpciwgaW5pZmlsZSwgaW5pY2ZnID0g
ZGV0ZXJtaW5lX3NldHVwKGluaWZpbGUsIFt0bXBkaXJdKQorICAgICAgICBhc3NlcnQgcm9vdGRp
ciA9PSB0bXBkaXIKKworCitjbGFzcyBUZXN0T3ZlcnJpZGVJbmlBcmdzKG9iamVjdCk6CisgICAg
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJuYW1lIiwgInNldHVwLmNmZyB0b3guaW5pIHB5dGVz
dC5pbmkiLnNwbGl0KCkpCisgICAgZGVmIHRlc3Rfb3ZlcnJpZGVfaW5pX25hbWVzKHNlbGYsIHRl
c3RkaXIsIG5hbWUpOgorICAgICAgICB0ZXN0ZGlyLnRtcGRpci5qb2luKG5hbWUpLndyaXRlKHB5
LnN0ZC50ZXh0d3JhcC5kZWRlbnQoIiIiCisgICAgICAgICAgICBbcHl0ZXN0XQorICAgICAgICAg
ICAgY3VzdG9tID0gMS4wIiIiKSkKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisg
ICAgICAgICAgICBkZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgorICAgICAgICAgICAgICAg
IHBhcnNlci5hZGRpbmkoImN1c3RvbSIsICIiKSIiIikKKyAgICAgICAgdGVzdGRpci5tYWtlcHlm
aWxlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfcGFzcyhweXRlc3Rjb25maWcpOgorICAgICAg
ICAgICAgICAgIGluaV92YWwgPSBweXRlc3Rjb25maWcuZ2V0aW5pKCJjdXN0b20iKQorICAgICAg
ICAgICAgICAgIHByaW50KCdcXG5jdXN0b21fb3B0aW9uOiVzXFxuJyAlIGluaV92YWwpIiIiKQor
CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLW92ZXJyaWRlLWluaSIsICJj
dXN0b209Mi4wIiwgIi1zIikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyJjdXN0b21fb3B0aW9uOjIuMCJdKQorCisg
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLW92ZXJyaWRlLWluaSIsICJjdXN0
b209Mi4wIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tb3ZlcnJpZGUt
aW5pPWN1c3RvbT0zLjAiLCAiLXMiKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisg
ICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbImN1c3RvbV9vcHRpb246My4wIl0p
CisKKyAgICBkZWYgdGVzdF9vdmVycmlkZV9pbmlfcGF0aGxpc3Qoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgZGVmIHB5dGVzdF9h
ZGRvcHRpb24ocGFyc2VyKToKKyAgICAgICAgICAgICAgICBwYXJzZXIuYWRkaW5pKCJwYXRocyIs
ICJteSBuZXcgaW5pIHZhbHVlIiwgdHlwZT0icGF0aGxpc3QiKSIiIikKKyAgICAgICAgdGVzdGRp
ci5tYWtlaW5pKCIiIgorICAgICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgICAgIHBhdGhzPWJs
YWgucHkiIiIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGlt
cG9ydCBweS5wYXRoCisgICAgICAgICAgICBkZWYgdGVzdF9wYXRobGlzdChweXRlc3Rjb25maWcp
OgorICAgICAgICAgICAgICAgIGNvbmZpZ19wYXRocyA9IHB5dGVzdGNvbmZpZy5nZXRpbmkoInBh
dGhzIikKKyAgICAgICAgICAgICAgICBwcmludChjb25maWdfcGF0aHMpCisgICAgICAgICAgICAg
ICAgZm9yIGNwZiBpbiBjb25maWdfcGF0aHM6CisgICAgICAgICAgICAgICAgICAgIHByaW50KCdc
XG51c2VyX3BhdGg6JXMnICUgY3BmLmJhc2VuYW1lKSIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoIi0tb3ZlcnJpZGUtaW5pIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ3BhdGhzPWZvby9iYXIxLnB5IGZvby9iYXIyLnB5JywgIi1zIikKKyAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsidXNlcl9wYXRoOmJhcjEucHkiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1c2VyX3BhdGg6YmFyMi5weSJdKQor
CisgICAgZGVmIHRlc3Rfb3ZlcnJpZGVfbXVsdGlwbGVfYW5kX2RlZmF1bHQoc2VsZiwgdGVzdGRp
cik6CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgZGVmIHB5
dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKKyAgICAgICAgICAgICAgICBhZGRpbmkgPSBwYXJzZXIu
YWRkaW5pCisgICAgICAgICAgICAgICAgYWRkaW5pKCJjdXN0b21fb3B0aW9uXzEiLCAiIiwgZGVm
YXVsdD0ibzEiKQorICAgICAgICAgICAgICAgIGFkZGluaSgiY3VzdG9tX29wdGlvbl8yIiwgIiIs
IGRlZmF1bHQ9Im8yIikKKyAgICAgICAgICAgICAgICBhZGRpbmkoImN1c3RvbV9vcHRpb25fMyIs
ICIiLCBkZWZhdWx0PUZhbHNlLCB0eXBlPSJib29sIikKKyAgICAgICAgICAgICAgICBhZGRpbmko
ImN1c3RvbV9vcHRpb25fNCIsICIiLCBkZWZhdWx0PVRydWUsIHR5cGU9ImJvb2wiKSIiIikKKyAg
ICAgICAgdGVzdGRpci5tYWtlaW5pKCIiIgorICAgICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAg
ICAgIGN1c3RvbV9vcHRpb25fMT1jdXN0b21fb3B0aW9uXzEKKyAgICAgICAgICAgIGN1c3RvbV9v
cHRpb25fMj1jdXN0b21fb3B0aW9uXzIiIiIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgi
IiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X211bHRpcGxlX29wdGlvbnMocHl0ZXN0Y29uZmlnKToK
KyAgICAgICAgICAgICAgICBwcmVmaXggPSAiY3VzdG9tX29wdGlvbiIKKyAgICAgICAgICAgICAg
ICBmb3IgeCBpbiByYW5nZSgxLCA1KToKKyAgICAgICAgICAgICAgICAgICAgaW5pX3ZhbHVlPXB5
dGVzdGNvbmZpZy5nZXRpbmkoIiVzXyVkIiAlIChwcmVmaXgsIHgpKQorICAgICAgICAgICAgICAg
ICAgICBwcmludCgnXFxuaW5pJWQ6JXMnICUgKHgsIGluaV92YWx1ZSkpIiIiKQorICAgICAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgKKyAgICAgICAgICAgICItLW92ZXJyaWRlLWluaSIs
ICdjdXN0b21fb3B0aW9uXzE9ZnVsbGRpcj0vdG1wL3VzZXIxJywKKyAgICAgICAgICAgICdjdXN0
b21fb3B0aW9uXzI9dXJsPS90bXAvdXNlcjI/YT1iJmQ9ZScsCisgICAgICAgICAgICAiLW8iLCAn
Y3VzdG9tX29wdGlvbl8zPVRydWUnLAorICAgICAgICAgICAgIi1vIiwgJ2N1c3RvbV9vcHRpb25f
ND1ubycsICItcyIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbImluaTE6
ZnVsbGRpcj0vdG1wL3VzZXIxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiaW5pMjp1cmw9L3RtcC91c2VyMj9hPWImZD1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiaW5pMzpUcnVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiaW5pNDpGYWxzZSJdKQorCisgICAgZGVmIHRlc3Rfb3ZlcnJpZGVfaW5pX3VzYWdl
X2Vycm9yX2JhZF9zdHlsZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlaW5p
KCIiIgorICAgICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgICAgIHhkaXN0X3N0cmljdD1GYWxz
ZQorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLW92
ZXJyaWRlLWluaSIsICd4ZGlzdF9zdHJpY3QgVHJ1ZScsICItcyIpCisgICAgICAgIHJlc3VsdC5z
dGRlcnIuZm5tYXRjaF9saW5lcyhbIipFUlJPUiogKmV4cGVjdHMgb3B0aW9uPXZhbHVlKiJdKQor
CisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd3aXRoX2luaScsIFtUcnVlLCBGYWxzZV0p
CisgICAgZGVmIHRlc3Rfb3ZlcnJpZGVfaW5pX2hhbmRsZWRfYXNhcChzZWxmLCB0ZXN0ZGlyLCB3
aXRoX2luaSk6CisgICAgICAgICIiIi1vIHNob3VsZCBiZSBoYW5kbGVkIGFzIHNvb24gYXMgcG9z
c2libGUgYW5kIGFsd2F5cyBvdmVycmlkZSB3aGF0J3MgaW4gaW5pIGZpbGVzICgjMjIzOCkiIiIK
KyAgICAgICAgaWYgd2l0aF9pbmk6CisgICAgICAgICAgICB0ZXN0ZGlyLm1ha2VpbmkoIiIiCisg
ICAgICAgICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgICAgICAgICBweXRob25fZmlsZXM9dGVz
dF8qLnB5CisgICAgICAgICAgICAiIiIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh1bml0
dGVzdF9pbmlfaGFuZGxlPSIiIgorICAgICAgICAgICAgZGVmIHRlc3QoKToKKyAgICAgICAgICAg
ICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoIi0tb3ZlcnJpZGUtaW5pIiwgJ3B5dGhvbl9maWxlcz11bml0dGVzdF8qLnB5JykKKyAgICAg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkIGluKiJdKQorCisgICAg
ZGVmIHRlc3Rfd2l0aF9hcmdfb3V0c2lkZV9jd2Rfd2l0aG91dF9pbmlmaWxlKHNlbGYsIHRtcGRp
ciwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBtb25rZXlwYXRjaC5jaGRpcihzdHIodG1wZGlyKSkK
KyAgICAgICAgYSA9IHRtcGRpci5ta2RpcigiYSIpCisgICAgICAgIGIgPSB0bXBkaXIubWtkaXIo
ImIiKQorICAgICAgICByb290ZGlyLCBpbmlmaWxlLCBpbmljZmcgPSBkZXRlcm1pbmVfc2V0dXAo
Tm9uZSwgW2EsIGJdKQorICAgICAgICBhc3NlcnQgcm9vdGRpciA9PSB0bXBkaXIKKyAgICAgICAg
YXNzZXJ0IGluaWZpbGUgaXMgTm9uZQorCisgICAgZGVmIHRlc3Rfd2l0aF9hcmdfb3V0c2lkZV9j
d2Rfd2l0aF9pbmlmaWxlKHNlbGYsIHRtcGRpcik6CisgICAgICAgIGEgPSB0bXBkaXIubWtkaXIo
ImEiKQorICAgICAgICBiID0gdG1wZGlyLm1rZGlyKCJiIikKKyAgICAgICAgaW5pZmlsZSA9IGEu
ZW5zdXJlKCJweXRlc3QuaW5pIikKKyAgICAgICAgcm9vdGRpciwgcGFyc2VkX2luaWZpbGUsIGlu
aWNmZyA9IGRldGVybWluZV9zZXR1cChOb25lLCBbYSwgYl0pCisgICAgICAgIGFzc2VydCByb290
ZGlyID09IGEKKyAgICAgICAgYXNzZXJ0IGluaWZpbGUgPT0gcGFyc2VkX2luaWZpbGUKKworICAg
IEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnZGlycycsIChbXSwgWydkb2VzLW5vdC1leGlzdCdd
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2EvZG9lcy1ub3QtZXhp
c3QnXSkpCisgICAgZGVmIHRlc3Rfd2l0aF9ub25fZGlyX2FyZyhzZWxmLCBkaXJzLCB0bXBkaXIp
OgorICAgICAgICB3aXRoIHRtcGRpci5lbnN1cmUoZGlyPVRydWUpLmFzX2N3ZCgpOgorICAgICAg
ICAgICAgcm9vdGRpciwgaW5pZmlsZSwgaW5pY2ZnID0gZGV0ZXJtaW5lX3NldHVwKE5vbmUsIGRp
cnMpCisgICAgICAgICAgICBhc3NlcnQgcm9vdGRpciA9PSB0bXBkaXIKKyAgICAgICAgICAgIGFz
c2VydCBpbmlmaWxlIGlzIE5vbmUKKworICAgIGRlZiB0ZXN0X3dpdGhfZXhpc3RpbmdfZmlsZV9p
bl9zdWJkaXIoc2VsZiwgdG1wZGlyKToKKyAgICAgICAgYSA9IHRtcGRpci5ta2RpcigiYSIpCisg
ICAgICAgIGEuZW5zdXJlKCJleGlzdCIpCisgICAgICAgIHdpdGggdG1wZGlyLmFzX2N3ZCgpOgor
ICAgICAgICAgICAgcm9vdGRpciwgaW5pZmlsZSwgaW5pY2ZnID0gZGV0ZXJtaW5lX3NldHVwKE5v
bmUsIFsnYS9leGlzdCddKQorICAgICAgICAgICAgYXNzZXJ0IHJvb3RkaXIgPT0gdG1wZGlyCisg
ICAgICAgICAgICBhc3NlcnQgaW5pZmlsZSBpcyBOb25lCisKKyAgICBkZWYgdGVzdF9hZGRvcHRz
X2JlZm9yZV9pbml0aW5pKHNlbGYsIHRlc3RkaXIsIHRtcGRpciwgbW9ua2V5cGF0Y2gpOgorICAg
ICAgICBjYWNoZV9kaXIgPSAnLmN1c3RvbV9jYWNoZScKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0
ZW52KCdQWVRFU1RfQURET1BUUycsICctbyBjYWNoZV9kaXI9JXMnICUgY2FjaGVfZGlyKQorICAg
ICAgICBmcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBnZXRfY29uZmlnCisgICAgICAgIGNvbmZp
ZyA9IGdldF9jb25maWcoKQorICAgICAgICBjb25maWcuX3ByZXBhcnNlKFtdLCBhZGRvcHRzPVRy
dWUpCisgICAgICAgIGFzc2VydCBjb25maWcuX292ZXJyaWRlX2luaSA9PSBbWydjYWNoZV9kaXI9
JXMnICUgY2FjaGVfZGlyXV0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9j
b25mdGVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9jb25mdGVzdC5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jMDQxMWI3MjMyMTE0NzQ2MDJjYWQ1NDg2YTM1ZDdiZWM4NmM1OGQzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NvbmZ0ZXN0LnB5CkBAIC0wLDAgKzEs
NDc4IEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24s
IHByaW50X2Z1bmN0aW9uCitmcm9tIHRleHR3cmFwIGltcG9ydCBkZWRlbnQKKworaW1wb3J0IF9w
eXRlc3QuX2NvZGUKK2ltcG9ydCBweQoraW1wb3J0IHB5dGVzdAorZnJvbSBfcHl0ZXN0LmNvbmZp
ZyBpbXBvcnQgUHl0ZXN0UGx1Z2luTWFuYWdlcgorZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IEVY
SVRfTk9URVNUU0NPTExFQ1RFRCwgRVhJVF9VU0FHRUVSUk9SCisKKworQHB5dGVzdC5maXh0dXJl
KHNjb3BlPSJtb2R1bGUiLCBwYXJhbXM9WyJnbG9iYWwiLCAiaW5wYWNrYWdlIl0pCitkZWYgYmFz
ZWRpcihyZXF1ZXN0LCB0bXBkaXJfZmFjdG9yeSk6CisgICAgZnJvbSBfcHl0ZXN0LnRtcGRpciBp
bXBvcnQgdG1wZGlyCisgICAgdG1wZGlyID0gdG1wZGlyKHJlcXVlc3QsIHRtcGRpcl9mYWN0b3J5
KQorICAgIHRtcGRpci5lbnN1cmUoImFkaXIvY29uZnRlc3QucHkiKS53cml0ZSgiYT0xIDsgRGly
ZWN0b3J5ID0gMyIpCisgICAgdG1wZGlyLmVuc3VyZSgiYWRpci9iL2NvbmZ0ZXN0LnB5Iikud3Jp
dGUoImI9MiA7IGEgPSAxLjUiKQorICAgIGlmIHJlcXVlc3QucGFyYW0gPT0gImlucGFja2FnZSI6
CisgICAgICAgIHRtcGRpci5lbnN1cmUoImFkaXIvX19pbml0X18ucHkiKQorICAgICAgICB0bXBk
aXIuZW5zdXJlKCJhZGlyL2IvX19pbml0X18ucHkiKQorICAgIHJldHVybiB0bXBkaXIKKworCitk
ZWYgQ29uZnRlc3RXaXRoU2V0aW5pdGlhbChwYXRoKToKKyAgICBjb25mdGVzdCA9IFB5dGVzdFBs
dWdpbk1hbmFnZXIoKQorICAgIGNvbmZ0ZXN0X3NldGluaXRpYWwoY29uZnRlc3QsIFtwYXRoXSkK
KyAgICByZXR1cm4gY29uZnRlc3QKKworCitkZWYgY29uZnRlc3Rfc2V0aW5pdGlhbChjb25mdGVz
dCwgYXJncywgY29uZmN1dGRpcj1Ob25lKToKKyAgICBjbGFzcyBOYW1lc3BhY2Uob2JqZWN0KToK
KyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAgICAgc2VsZi5maWxlX29yX2Rp
ciA9IGFyZ3MKKyAgICAgICAgICAgIHNlbGYuY29uZmN1dGRpciA9IHN0cihjb25mY3V0ZGlyKQor
ICAgICAgICAgICAgc2VsZi5ub2NvbmZ0ZXN0ID0gRmFsc2UKKyAgICBjb25mdGVzdC5fc2V0X2lu
aXRpYWxfY29uZnRlc3RzKE5hbWVzcGFjZSgpKQorCisKK2NsYXNzIFRlc3RDb25mdGVzdFZhbHVl
QWNjZXNzR2xvYmFsKG9iamVjdCk6CisgICAgZGVmIHRlc3RfYmFzaWNfaW5pdChzZWxmLCBiYXNl
ZGlyKToKKyAgICAgICAgY29uZnRlc3QgPSBQeXRlc3RQbHVnaW5NYW5hZ2VyKCkKKyAgICAgICAg
cCA9IGJhc2VkaXIuam9pbigiYWRpciIpCisgICAgICAgIGFzc2VydCBjb25mdGVzdC5fcmdldF93
aXRoX2NvbmZtb2QoImEiLCBwKVsxXSA9PSAxCisKKyAgICBkZWYgdGVzdF9pbW1lZGlhdGVfaW5p
dGlhbGlhdGlvbl9hbmRfaW5jcmVtZW50YWxfYXJlX3RoZV9zYW1lKHNlbGYsIGJhc2VkaXIpOgor
ICAgICAgICBjb25mdGVzdCA9IFB5dGVzdFBsdWdpbk1hbmFnZXIoKQorICAgICAgICBsZW4oY29u
ZnRlc3QuX3BhdGgyY29uZm1vZHMpCisgICAgICAgIGNvbmZ0ZXN0Ll9nZXRjb25mdGVzdG1vZHVs
ZXMoYmFzZWRpcikKKyAgICAgICAgc25hcDEgPSBsZW4oY29uZnRlc3QuX3BhdGgyY29uZm1vZHMp
CisgICAgICAgICMgYXNzZXJ0IGxlbihjb25mdGVzdC5fcGF0aDJjb25mbW9kcykgPT0gc25hcDEg
KyAxCisgICAgICAgIGNvbmZ0ZXN0Ll9nZXRjb25mdGVzdG1vZHVsZXMoYmFzZWRpci5qb2luKCdh
ZGlyJykpCisgICAgICAgIGFzc2VydCBsZW4oY29uZnRlc3QuX3BhdGgyY29uZm1vZHMpID09IHNu
YXAxICsgMQorICAgICAgICBjb25mdGVzdC5fZ2V0Y29uZnRlc3Rtb2R1bGVzKGJhc2VkaXIuam9p
bignYicpKQorICAgICAgICBhc3NlcnQgbGVuKGNvbmZ0ZXN0Ll9wYXRoMmNvbmZtb2RzKSA9PSBz
bmFwMSArIDIKKworICAgIGRlZiB0ZXN0X3ZhbHVlX2FjY2Vzc19ub3RfZXhpc3Rpbmcoc2VsZiwg
YmFzZWRpcik6CisgICAgICAgIGNvbmZ0ZXN0ID0gQ29uZnRlc3RXaXRoU2V0aW5pdGlhbChiYXNl
ZGlyKQorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoS2V5RXJyb3IpOgorICAgICAgICAgICAg
Y29uZnRlc3QuX3JnZXRfd2l0aF9jb25mbW9kKCdhJywgYmFzZWRpcikKKworICAgIGRlZiB0ZXN0
X3ZhbHVlX2FjY2Vzc19ieV9wYXRoKHNlbGYsIGJhc2VkaXIpOgorICAgICAgICBjb25mdGVzdCA9
IENvbmZ0ZXN0V2l0aFNldGluaXRpYWwoYmFzZWRpcikKKyAgICAgICAgYWRpciA9IGJhc2VkaXIu
am9pbigiYWRpciIpCisgICAgICAgIGFzc2VydCBjb25mdGVzdC5fcmdldF93aXRoX2NvbmZtb2Qo
ImEiLCBhZGlyKVsxXSA9PSAxCisgICAgICAgIGFzc2VydCBjb25mdGVzdC5fcmdldF93aXRoX2Nv
bmZtb2QoImEiLCBhZGlyLmpvaW4oImIiKSlbMV0gPT0gMS41CisKKyAgICBkZWYgdGVzdF92YWx1
ZV9hY2Nlc3Nfd2l0aF9jb25mbW9kKHNlbGYsIGJhc2VkaXIpOgorICAgICAgICBzdGFydGRpciA9
IGJhc2VkaXIuam9pbigiYWRpciIsICJiIikKKyAgICAgICAgc3RhcnRkaXIuZW5zdXJlKCJ4eCIs
IGRpcj1UcnVlKQorICAgICAgICBjb25mdGVzdCA9IENvbmZ0ZXN0V2l0aFNldGluaXRpYWwoc3Rh
cnRkaXIpCisgICAgICAgIG1vZCwgdmFsdWUgPSBjb25mdGVzdC5fcmdldF93aXRoX2NvbmZtb2Qo
ImEiLCBzdGFydGRpcikKKyAgICAgICAgYXNzZXJ0IHZhbHVlID09IDEuNQorICAgICAgICBwYXRo
ID0gcHkucGF0aC5sb2NhbChtb2QuX19maWxlX18pCisgICAgICAgIGFzc2VydCBwYXRoLmRpcnBh
dGgoKSA9PSBiYXNlZGlyLmpvaW4oImFkaXIiLCAiYiIpCisgICAgICAgIGFzc2VydCBwYXRoLnB1
cmViYXNlbmFtZS5zdGFydHN3aXRoKCJjb25mdGVzdCIpCisKKworZGVmIHRlc3RfY29uZnRlc3Rf
aW5fbm9ucGtnX3dpdGhfaW5pdCh0bXBkaXIpOgorICAgIHRtcGRpci5lbnN1cmUoImFkaXItMS4w
L2NvbmZ0ZXN0LnB5Iikud3JpdGUoImE9MSA7IERpcmVjdG9yeSA9IDMiKQorICAgIHRtcGRpci5l
bnN1cmUoImFkaXItMS4wL2IvY29uZnRlc3QucHkiKS53cml0ZSgiYj0yIDsgYSA9IDEuNSIpCisg
ICAgdG1wZGlyLmVuc3VyZSgiYWRpci0xLjAvYi9fX2luaXRfXy5weSIpCisgICAgdG1wZGlyLmVu
c3VyZSgiYWRpci0xLjAvX19pbml0X18ucHkiKQorICAgIENvbmZ0ZXN0V2l0aFNldGluaXRpYWwo
dG1wZGlyLmpvaW4oImFkaXItMS4wIiwgImIiKSkKKworCitkZWYgdGVzdF9kb3VibGVkYXNoX2Nv
bnNpZGVyZWQodGVzdGRpcik6CisgICAgY29uZiA9IHRlc3RkaXIubWtkaXIoIi0tb3B0aW9uIikK
KyAgICBjb25mLmpvaW4oImNvbmZ0ZXN0LnB5IikuZW5zdXJlKCkKKyAgICBjb25mdGVzdCA9IFB5
dGVzdFBsdWdpbk1hbmFnZXIoKQorICAgIGNvbmZ0ZXN0X3NldGluaXRpYWwoY29uZnRlc3QsIFtj
b25mLmJhc2VuYW1lLCBjb25mLmJhc2VuYW1lXSkKKyAgICB2YWx1ZXMgPSBjb25mdGVzdC5fZ2V0
Y29uZnRlc3Rtb2R1bGVzKGNvbmYpCisgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDEKKworCitk
ZWYgdGVzdF9pc3N1ZTE1MV9sb2FkX2FsbF9jb25mdGVzdHModGVzdGRpcik6CisgICAgbmFtZXMg
PSAiY29kZSBwcm9qIHNyYyIuc3BsaXQoKQorICAgIGZvciBuYW1lIGluIG5hbWVzOgorICAgICAg
ICBwID0gdGVzdGRpci5ta2RpcihuYW1lKQorICAgICAgICBwLmVuc3VyZSgiY29uZnRlc3QucHki
KQorCisgICAgY29uZnRlc3QgPSBQeXRlc3RQbHVnaW5NYW5hZ2VyKCkKKyAgICBjb25mdGVzdF9z
ZXRpbml0aWFsKGNvbmZ0ZXN0LCBuYW1lcykKKyAgICBkID0gbGlzdChjb25mdGVzdC5fY29uZnRl
c3RwYXRoMm1vZC52YWx1ZXMoKSkKKyAgICBhc3NlcnQgbGVuKGQpID09IGxlbihuYW1lcykKKwor
CitkZWYgdGVzdF9jb25mdGVzdF9nbG9iYWxfaW1wb3J0KHRlc3RkaXIpOgorICAgIHRlc3RkaXIu
bWFrZWNvbmZ0ZXN0KCJ4PTMiKQorICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAg
ICAgIGltcG9ydCBweSwgcHl0ZXN0CisgICAgICAgIGZyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0
IFB5dGVzdFBsdWdpbk1hbmFnZXIKKyAgICAgICAgY29uZiA9IFB5dGVzdFBsdWdpbk1hbmFnZXIo
KQorICAgICAgICBtb2QgPSBjb25mLl9pbXBvcnRjb25mdGVzdChweS5wYXRoLmxvY2FsKCJjb25m
dGVzdC5weSIpKQorICAgICAgICBhc3NlcnQgbW9kLnggPT0gMworICAgICAgICBpbXBvcnQgY29u
ZnRlc3QKKyAgICAgICAgYXNzZXJ0IGNvbmZ0ZXN0IGlzIG1vZCwgKGNvbmZ0ZXN0LCBtb2QpCisg
ICAgICAgIHN1YmNvbmYgPSBweS5wYXRoLmxvY2FsKCkuZW5zdXJlKCJzdWIiLCAiY29uZnRlc3Qu
cHkiKQorICAgICAgICBzdWJjb25mLndyaXRlKCJ5PTQiKQorICAgICAgICBtb2QyID0gY29uZi5f
aW1wb3J0Y29uZnRlc3Qoc3ViY29uZikKKyAgICAgICAgYXNzZXJ0IG1vZCAhPSBtb2QyCisgICAg
ICAgIGFzc2VydCBtb2QyLnkgPT0gNAorICAgICAgICBpbXBvcnQgY29uZnRlc3QKKyAgICAgICAg
YXNzZXJ0IGNvbmZ0ZXN0IGlzIG1vZDIsIChjb25mdGVzdCwgbW9kKQorICAgICIiIikKKyAgICBy
ZXMgPSB0ZXN0ZGlyLnJ1bnB5dGhvbihwKQorICAgIGFzc2VydCByZXMucmV0ID09IDAKKworCitk
ZWYgdGVzdF9jb25mdGVzdGN1dGRpcih0ZXN0ZGlyKToKKyAgICBjb25mID0gdGVzdGRpci5tYWtl
Y29uZnRlc3QoIiIpCisgICAgcCA9IHRlc3RkaXIubWtkaXIoIngiKQorICAgIGNvbmZ0ZXN0ID0g
UHl0ZXN0UGx1Z2luTWFuYWdlcigpCisgICAgY29uZnRlc3Rfc2V0aW5pdGlhbChjb25mdGVzdCwg
W3Rlc3RkaXIudG1wZGlyXSwgY29uZmN1dGRpcj1wKQorICAgIHZhbHVlcyA9IGNvbmZ0ZXN0Ll9n
ZXRjb25mdGVzdG1vZHVsZXMocCkKKyAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMAorICAgIHZh
bHVlcyA9IGNvbmZ0ZXN0Ll9nZXRjb25mdGVzdG1vZHVsZXMoY29uZi5kaXJwYXRoKCkpCisgICAg
YXNzZXJ0IGxlbih2YWx1ZXMpID09IDAKKyAgICBhc3NlcnQgY29uZiBub3QgaW4gY29uZnRlc3Qu
X2NvbmZ0ZXN0cGF0aDJtb2QKKyAgICAjIGJ1dCB3ZSBjYW4gc3RpbGwgaW1wb3J0IGEgY29uZnRl
c3QgZGlyZWN0bHkKKyAgICBjb25mdGVzdC5faW1wb3J0Y29uZnRlc3QoY29uZikKKyAgICB2YWx1
ZXMgPSBjb25mdGVzdC5fZ2V0Y29uZnRlc3Rtb2R1bGVzKGNvbmYuZGlycGF0aCgpKQorICAgIGFz
c2VydCB2YWx1ZXNbMF0uX19maWxlX18uc3RhcnRzd2l0aChzdHIoY29uZikpCisgICAgIyBhbmQg
YWxsIHN1YiBwYXRocyBnZXQgdXBkYXRlZCBwcm9wZXJseQorICAgIHZhbHVlcyA9IGNvbmZ0ZXN0
Ll9nZXRjb25mdGVzdG1vZHVsZXMocCkKKyAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMQorICAg
IGFzc2VydCB2YWx1ZXNbMF0uX19maWxlX18uc3RhcnRzd2l0aChzdHIoY29uZikpCisKKworZGVm
IHRlc3RfY29uZnRlc3RjdXRkaXJfaW5wbGFjZV9jb25zaWRlcmVkKHRlc3RkaXIpOgorICAgIGNv
bmYgPSB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIikKKyAgICBjb25mdGVzdCA9IFB5dGVzdFBsdWdp
bk1hbmFnZXIoKQorICAgIGNvbmZ0ZXN0X3NldGluaXRpYWwoY29uZnRlc3QsIFtjb25mLmRpcnBh
dGgoKV0sIGNvbmZjdXRkaXI9Y29uZi5kaXJwYXRoKCkpCisgICAgdmFsdWVzID0gY29uZnRlc3Qu
X2dldGNvbmZ0ZXN0bW9kdWxlcyhjb25mLmRpcnBhdGgoKSkKKyAgICBhc3NlcnQgbGVuKHZhbHVl
cykgPT0gMQorICAgIGFzc2VydCB2YWx1ZXNbMF0uX19maWxlX18uc3RhcnRzd2l0aChzdHIoY29u
ZikpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJuYW1lIiwgJ3Rlc3QgdGVzdHMgd2hh
dGV2ZXIgLmRvdGRpcicuc3BsaXQoKSkKK2RlZiB0ZXN0X3NldGluaXRpYWxfY29uZnRlc3Rfc3Vi
ZGlycyh0ZXN0ZGlyLCBuYW1lKToKKyAgICBzdWIgPSB0ZXN0ZGlyLm1rZGlyKG5hbWUpCisgICAg
c3ViY29uZnRlc3QgPSBzdWIuZW5zdXJlKCJjb25mdGVzdC5weSIpCisgICAgY29uZnRlc3QgPSBQ
eXRlc3RQbHVnaW5NYW5hZ2VyKCkKKyAgICBjb25mdGVzdF9zZXRpbml0aWFsKGNvbmZ0ZXN0LCBb
c3ViLmRpcnBhdGgoKV0sIGNvbmZjdXRkaXI9dGVzdGRpci50bXBkaXIpCisgICAgaWYgbmFtZSBu
b3QgaW4gKCd3aGF0ZXZlcicsICcuZG90ZGlyJyk6CisgICAgICAgIGFzc2VydCBzdWJjb25mdGVz
dCBpbiBjb25mdGVzdC5fY29uZnRlc3RwYXRoMm1vZAorICAgICAgICBhc3NlcnQgbGVuKGNvbmZ0
ZXN0Ll9jb25mdGVzdHBhdGgybW9kKSA9PSAxCisgICAgZWxzZToKKyAgICAgICAgYXNzZXJ0IHN1
YmNvbmZ0ZXN0IG5vdCBpbiBjb25mdGVzdC5fY29uZnRlc3RwYXRoMm1vZAorICAgICAgICBhc3Nl
cnQgbGVuKGNvbmZ0ZXN0Ll9jb25mdGVzdHBhdGgybW9kKSA9PSAwCisKKworZGVmIHRlc3RfY29u
ZnRlc3RfY29uZmN1dGRpcih0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiYXNz
ZXJ0IDAiKQorICAgIHggPSB0ZXN0ZGlyLm1rZGlyKCJ4IikKKyAgICB4LmpvaW4oImNvbmZ0ZXN0
LnB5Iikud3JpdGUoX3B5dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisgICAgICAgIGRlZiBweXRlc3Rf
YWRkb3B0aW9uKHBhcnNlcik6CisgICAgICAgICAgICBwYXJzZXIuYWRkb3B0aW9uKCItLXh5eiIs
IGFjdGlvbj0ic3RvcmVfdHJ1ZSIpCisgICAgIiIiKSkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgiLWgiLCAiLS1jb25mY3V0ZGlyPSVzIiAlIHgsIHgpCisgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsiKi0teHl6KiJdKQorICAgIGFzc2VydCAnd2FybmluZzogY291bGQg
bm90IGxvYWQgaW5pdGlhbCcgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKworCitkZWYgdGVz
dF9ub19jb25mdGVzdCh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiYXNzZXJ0
IDAiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLW5vY29uZnRlc3QiKQorICAg
IGFzc2VydCByZXN1bHQucmV0ID09IEVYSVRfTk9URVNUU0NPTExFQ1RFRAorCisgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IEVYSVRfVVNB
R0VFUlJPUgorCisKK2RlZiB0ZXN0X2NvbmZ0ZXN0X2V4aXN0aW5nX3Jlc3VsdGxvZyh0ZXN0ZGly
KToKKyAgICB4ID0gdGVzdGRpci5ta2RpcigidGVzdHMiKQorICAgIHguam9pbigiY29uZnRlc3Qu
cHkiKS53cml0ZShfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiIiIKKyAgICAgICAgZGVmIHB5dGVzdF9h
ZGRvcHRpb24ocGFyc2VyKToKKyAgICAgICAgICAgIHBhcnNlci5hZGRvcHRpb24oIi0teHl6Iiwg
YWN0aW9uPSJzdG9yZV90cnVlIikKKyAgICAiIiIpKQorICAgIHRlc3RkaXIubWFrZWZpbGUoZXh0
PSIubG9nIiwgcmVzdWx0PSIiKSAgIyBXcml0ZXMgcmVzdWx0LmxvZworICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KCItaCIsICItLXJlc3VsdGxvZyIsICJyZXN1bHQubG9nIikKKyAgICBy
ZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIqLS14eXoqIl0pCisKKworZGVmIHRlc3RfY29u
ZnRlc3RfZXhpc3RpbmdfanVuaXR4bWwodGVzdGRpcik6CisgICAgeCA9IHRlc3RkaXIubWtkaXIo
InRlc3RzIikKKyAgICB4LmpvaW4oImNvbmZ0ZXN0LnB5Iikud3JpdGUoX3B5dGVzdC5fY29kZS5T
b3VyY2UoIiIiCisgICAgICAgIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAgICAg
ICAgICBwYXJzZXIuYWRkb3B0aW9uKCItLXh5eiIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIpCisgICAg
IiIiKSkKKyAgICB0ZXN0ZGlyLm1ha2VmaWxlKGV4dD0iLnhtbCIsIGp1bml0PSIiKSAgIyBXcml0
ZXMganVuaXQueG1sCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1oIiwgIi0tanVu
aXR4bWwiLCAianVuaXQueG1sIikKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyIq
LS14eXoqIl0pCisKKworZGVmIHRlc3RfY29uZnRlc3RfaW1wb3J0X29yZGVyKHRlc3RkaXIsIG1v
bmtleXBhdGNoKToKKyAgICBjdDEgPSB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIikKKyAgICBzdWIg
PSB0ZXN0ZGlyLm1rZGlyKCJzdWIiKQorICAgIGN0MiA9IHN1Yi5qb2luKCJjb25mdGVzdC5weSIp
CisgICAgY3QyLndyaXRlKCIiKQorCisgICAgZGVmIGltcGN0KHApOgorICAgICAgICByZXR1cm4g
cAorCisgICAgY29uZnRlc3QgPSBQeXRlc3RQbHVnaW5NYW5hZ2VyKCkKKyAgICBjb25mdGVzdC5f
Y29uZmN1dGRpciA9IHRlc3RkaXIudG1wZGlyCisgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihjb25m
dGVzdCwgJ19pbXBvcnRjb25mdGVzdCcsIGltcGN0KQorICAgIGFzc2VydCBjb25mdGVzdC5fZ2V0
Y29uZnRlc3Rtb2R1bGVzKHN1YikgPT0gW2N0MSwgY3QyXQorCisKK2RlZiB0ZXN0X2ZpeHR1cmVf
ZGVwZW5kZW5jeSh0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CisgICAgY3QxID0gdGVzdGRpci5tYWtl
Y29uZnRlc3QoIiIpCisgICAgY3QxID0gdGVzdGRpci5tYWtlcHlmaWxlKCJfX2luaXRfXy5weSIp
CisgICAgY3QxLndyaXRlKCIiKQorICAgIHN1YiA9IHRlc3RkaXIubWtkaXIoInN1YiIpCisgICAg
c3ViLmpvaW4oIl9faW5pdF9fLnB5Iikud3JpdGUoIiIpCisgICAgc3ViLmpvaW4oImNvbmZ0ZXN0
LnB5Iikud3JpdGUocHkuc3RkLnRleHR3cmFwLmRlZGVudCgiIiIKKyAgICAgICAgaW1wb3J0IHB5
dGVzdAorCisgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICBkZWYgbm90X25lZWRlZCgp
OgorICAgICAgICAgICAgYXNzZXJ0IEZhbHNlLCAiU2hvdWxkIG5vdCBiZSBjYWxsZWQhIgorCisg
ICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICBkZWYgZm9vKCk6CisgICAgICAgICAgICBh
c3NlcnQgRmFsc2UsICJTaG91bGQgbm90IGJlIGNhbGxlZCEiCisKKyAgICAgICAgQHB5dGVzdC5m
aXh0dXJlCisgICAgICAgIGRlZiBiYXIoZm9vKToKKyAgICAgICAgICAgIHJldHVybiAnYmFyJwor
ICAgICIiIikpCisgICAgc3Vic3ViID0gc3ViLm1rZGlyKCJzdWJzdWIiKQorICAgIHN1YnN1Yi5q
b2luKCJfX2luaXRfXy5weSIpLndyaXRlKCIiKQorICAgIHN1YnN1Yi5qb2luKCJ0ZXN0X2Jhci5w
eSIpLndyaXRlKHB5LnN0ZC50ZXh0d3JhcC5kZWRlbnQoIiIiCisgICAgICAgIGltcG9ydCBweXRl
c3QKKworICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgZGVmIGJhcigpOgorICAgICAg
ICAgICAgcmV0dXJuICdzdWIgYmFyJworCisgICAgICAgIGRlZiB0ZXN0X2V2ZW50X2ZpeHR1cmUo
YmFyKToKKyAgICAgICAgICAgIGFzc2VydCBiYXIgPT0gJ3N1YiBiYXInCisgICAgIiIiKSkKKyAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgic3ViIikKKyAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCisKKworZGVmIHRlc3RfY29uZnRlc3RfZm91bmRf
d2l0aF9kb3VibGVfZGFzaCh0ZXN0ZGlyKToKKyAgICBzdWIgPSB0ZXN0ZGlyLm1rZGlyKCJzdWIi
KQorICAgIHN1Yi5qb2luKCJjb25mdGVzdC5weSIpLndyaXRlKHB5LnN0ZC50ZXh0d3JhcC5kZWRl
bnQoIiIiCisgICAgICAgIGRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAgICAgICAg
ICBwYXJzZXIuYWRkb3B0aW9uKCItLWhlbGxvLXdvcmxkIiwgYWN0aW9uPSJzdG9yZV90cnVlIikK
KyAgICAiIiIpKQorICAgIHAgPSBzdWIuam9pbigidGVzdF9oZWxsby5weSIpCisgICAgcC53cml0
ZShweS5zdGQudGV4dHdyYXAuZGVkZW50KCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAg
ICAgIGRlZiB0ZXN0X2hlbGxvKGZvdW5kKToKKyAgICAgICAgICAgIGFzc2VydCBmb3VuZCA9PSAx
CisgICAgIiIiKSkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChzdHIocCkgKyAiOjp0
ZXN0X2hlbGxvIiwgIi1oIikKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiIiCisg
ICAgICAgICotLWhlbGxvLXdvcmxkKgorICAgICIiIikKKworCitjbGFzcyBUZXN0Q29uZnRlc3RW
aXNpYmlsaXR5KG9iamVjdCk6CisgICAgZGVmIF9zZXR1cF90cmVlKHNlbGYsIHRlc3RkaXIpOiAg
IyBmb3IgaXNzdWU2MTYKKyAgICAgICAgIyBleGFtcGxlIG1vc3RseSB0YWtlbiBmcm9tOgorICAg
ICAgICAjIGh0dHBzOi8vbWFpbC5weXRob24ub3JnL3BpcGVybWFpbC9weXRlc3QtZGV2LzIwMTQt
U2VwdGVtYmVyLzAwMjYxNy5odG1sCisgICAgICAgIHJ1bm5lciA9IHRlc3RkaXIubWtkaXIoImVt
cHR5IikKKyAgICAgICAgcGFja2FnZSA9IHRlc3RkaXIubWtkaXIoInBhY2thZ2UiKQorCisgICAg
ICAgIHBhY2thZ2Uuam9pbigiY29uZnRlc3QucHkiKS53cml0ZShkZWRlbnQoIiIiXAorICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAg
ICAgICBkZWYgZnh0cigpOgorICAgICAgICAgICAgICAgIHJldHVybiAiZnJvbS1wYWNrYWdlIgor
ICAgICAgICAiIiIpKQorICAgICAgICBwYWNrYWdlLmpvaW4oInRlc3RfcGtncm9vdC5weSIpLndy
aXRlKGRlZGVudCgiIiJcCisgICAgICAgICAgICBkZWYgdGVzdF9wa2dyb290KGZ4dHIpOgorICAg
ICAgICAgICAgICAgIGFzc2VydCBmeHRyID09ICJmcm9tLXBhY2thZ2UiCisgICAgICAgICIiIikp
CisKKyAgICAgICAgc3djID0gcGFja2FnZS5ta2Rpcigic3djIikKKyAgICAgICAgc3djLmpvaW4o
Il9faW5pdF9fLnB5IikuZW5zdXJlKCkKKyAgICAgICAgc3djLmpvaW4oImNvbmZ0ZXN0LnB5Iiku
d3JpdGUoZGVkZW50KCIiIlwKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGZ4dHIoKToKKyAgICAgICAgICAgICAg
ICByZXR1cm4gImZyb20tc3djIgorICAgICAgICAiIiIpKQorICAgICAgICBzd2Muam9pbigidGVz
dF93aXRoX2NvbmZ0ZXN0LnB5Iikud3JpdGUoZGVkZW50KCIiIlwKKyAgICAgICAgICAgIGRlZiB0
ZXN0X3dpdGhfY29uZnRlc3QoZnh0cik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IGZ4dHIgPT0g
ImZyb20tc3djIgorCisgICAgICAgICIiIikpCisKKyAgICAgICAgc25jID0gcGFja2FnZS5ta2Rp
cigic25jIikKKyAgICAgICAgc25jLmpvaW4oIl9faW5pdF9fLnB5IikuZW5zdXJlKCkKKyAgICAg
ICAgc25jLmpvaW4oInRlc3Rfbm9fY29uZnRlc3QucHkiKS53cml0ZShkZWRlbnQoIiIiXAorICAg
ICAgICAgICAgZGVmIHRlc3Rfbm9fY29uZnRlc3QoZnh0cik6CisgICAgICAgICAgICAgICAgYXNz
ZXJ0IGZ4dHIgPT0gImZyb20tcGFja2FnZSIgICAjIE5vIGxvY2FsIGNvbmZ0ZXN0LnB5LCBzbyBz
aG91bGQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMg
dXNlIHZhbHVlIGZyb20gcGFyZW50IGRpcidzCisKKyAgICAgICAgIiIiKSkKKyAgICAgICAgcHJp
bnQoImNyZWF0ZWQgZGlyZWN0b3J5IHN0cnVjdHVyZToiKQorICAgICAgICBmb3IgeCBpbiB0ZXN0
ZGlyLnRtcGRpci52aXNpdCgpOgorICAgICAgICAgICAgcHJpbnQoIiAgICIgKyB4LnJlbHRvKHRl
c3RkaXIudG1wZGlyKSkKKworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgInJ1bm5lciI6
IHJ1bm5lciwKKyAgICAgICAgICAgICJwYWNrYWdlIjogcGFja2FnZSwKKyAgICAgICAgICAgICJz
d2MiOiBzd2MsCisgICAgICAgICAgICAic25jIjogc25jfQorCisgICAgIyBOLkIuOiAic3djIiBz
dGFuZHMgZm9yICJzdWJkaXIgd2l0aCBjb25mdGVzdC5weSIKKyAgICAjICAgICAgICJzbmMiIHN0
YW5kcyBmb3IgInN1YmRpciBubyBbaS5lLiB3aXRob3V0XSBjb25mdGVzdC5weSIKKyAgICBAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoImNoZGlyLHRlc3RhcmcsZXhwZWN0X250ZXN0c19wYXNzZWQi
LCBbCisgICAgICAgICMgRWZmZWN0aXZlIHRhcmdldDogcGFja2FnZS8uLgorICAgICAgICAoInJ1
bm5lciIsICIuLiIsIDMpLAorICAgICAgICAoInBhY2thZ2UiLCAiLi4iLCAzKSwKKyAgICAgICAg
KCJzd2MiLCAiLi4vLi4iLCAzKSwKKyAgICAgICAgKCJzbmMiLCAiLi4vLi4iLCAzKSwKKworICAg
ICAgICAjIEVmZmVjdGl2ZSB0YXJnZXQ6IHBhY2thZ2UKKyAgICAgICAgKCJydW5uZXIiLCAiLi4v
cGFja2FnZSIsIDMpLAorICAgICAgICAoInBhY2thZ2UiLCAiLiIsIDMpLAorICAgICAgICAoInN3
YyIsICIuLiIsIDMpLAorICAgICAgICAoInNuYyIsICIuLiIsIDMpLAorCisgICAgICAgICMgRWZm
ZWN0aXZlIHRhcmdldDogcGFja2FnZS9zd2MKKyAgICAgICAgKCJydW5uZXIiLCAiLi4vcGFja2Fn
ZS9zd2MiLCAxKSwKKyAgICAgICAgKCJwYWNrYWdlIiwgIi4vc3djIiwgMSksCisgICAgICAgICgi
c3djIiwgIi4iLCAxKSwKKyAgICAgICAgKCJzbmMiLCAiLi4vc3djIiwgMSksCisKKyAgICAgICAg
IyBFZmZlY3RpdmUgdGFyZ2V0OiBwYWNrYWdlL3NuYworICAgICAgICAoInJ1bm5lciIsICIuLi9w
YWNrYWdlL3NuYyIsIDEpLAorICAgICAgICAoInBhY2thZ2UiLCAiLi9zbmMiLCAxKSwKKyAgICAg
ICAgKCJzd2MiLCAiLi4vc25jIiwgMSksCisgICAgICAgICgic25jIiwgIi4iLCAxKSwKKyAgICBd
KQorICAgIEBweXRlc3QubWFyay5pc3N1ZTYxNgorICAgIGRlZiB0ZXN0X3BhcnNlZmFjdG9yaWVz
X3JlbGF0aXZlX25vZGVfaWRzKAorICAgICAgICAgICAgc2VsZiwgdGVzdGRpciwgY2hkaXIsIHRl
c3RhcmcsIGV4cGVjdF9udGVzdHNfcGFzc2VkKToKKyAgICAgICAgZGlycyA9IHNlbGYuX3NldHVw
X3RyZWUodGVzdGRpcikKKyAgICAgICAgcHJpbnQoInB5dGVzdCBydW4gaW4gY3dkOiAlcyIgJSAo
CisgICAgICAgICAgICAgIGRpcnNbY2hkaXJdLnJlbHRvKHRlc3RkaXIudG1wZGlyKSkpCisgICAg
ICAgIHByaW50KCJweXRlc3RhcmcgICAgICAgIDogJXMiICUgKHRlc3RhcmcpKQorICAgICAgICBw
cmludCgiZXhwZWN0ZWQgcGFzcyAgICA6ICVzIiAlIChleHBlY3RfbnRlc3RzX3Bhc3NlZCkpCisg
ICAgICAgIHdpdGggZGlyc1tjaGRpcl0uYXNfY3dkKCk6CisgICAgICAgICAgICByZXByZWMgPSB0
ZXN0ZGlyLmlubGluZV9ydW4odGVzdGFyZywgIi1xIiwgIi0tdHJhY2Vjb25maWciKQorICAgICAg
ICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPWV4cGVjdF9udGVzdHNfcGFzc2VkKQor
CisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnY29uZmN1dGRpcixwYXNzZWQsZXJyb3InLCBb
CisgICAgKCcuJywgMiwgMCksCisgICAgKCdzcmMnLCAxLCAxKSwKKyAgICAoTm9uZSwgMSwgMSks
CitdKQorZGVmIHRlc3Rfc2VhcmNoX2NvbmZ0ZXN0X3VwX3RvX2luaWZpbGUodGVzdGRpciwgY29u
ZmN1dGRpciwgcGFzc2VkLCBlcnJvcik6CisgICAgIiIiVGVzdCB0aGF0IGNvbmZ0ZXN0IGZpbGVz
IGFyZSBkZXRlY3RlZCBvbmx5IHVwIHRvIGEgaW5pIGZpbGUsIHVubGVzcworICAgIGFuIGV4cGxp
Y2l0IC0tY29uZmN1dGRpciBvcHRpb24gaXMgZ2l2ZW4uCisgICAgIiIiCisgICAgcm9vdCA9IHRl
c3RkaXIudG1wZGlyCisgICAgc3JjID0gcm9vdC5qb2luKCdzcmMnKS5lbnN1cmUoZGlyPTEpCisg
ICAgc3JjLmpvaW4oJ3B5dGVzdC5pbmknKS53cml0ZSgnW3B5dGVzdF0nKQorICAgIHNyYy5qb2lu
KCdjb25mdGVzdC5weScpLndyaXRlKF9weXRlc3QuX2NvZGUuU291cmNlKCIiIgorICAgICAgICBp
bXBvcnQgcHl0ZXN0CisgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICBkZWYgZml4MSgp
OiBwYXNzCisgICAgIiIiKSkKKyAgICBzcmMuam9pbigndGVzdF9mb28ucHknKS53cml0ZShfcHl0
ZXN0Ll9jb2RlLlNvdXJjZSgiIiIKKyAgICAgICAgZGVmIHRlc3RfMShmaXgxKToKKyAgICAgICAg
ICAgIHBhc3MKKyAgICAgICAgZGVmIHRlc3RfMihvdXRfb2ZfcmVhY2gpOgorICAgICAgICAgICAg
cGFzcworICAgICIiIikpCisgICAgcm9vdC5qb2luKCdjb25mdGVzdC5weScpLndyaXRlKF9weXRl
c3QuX2NvZGUuU291cmNlKCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIEBweXRl
c3QuZml4dHVyZQorICAgICAgICBkZWYgb3V0X29mX3JlYWNoKCk6IHBhc3MKKyAgICAiIiIpKQor
CisgICAgYXJncyA9IFtzdHIoc3JjKV0KKyAgICBpZiBjb25mY3V0ZGlyOgorICAgICAgICBhcmdz
ID0gWyctLWNvbmZjdXRkaXI9JXMnICUgcm9vdC5qb2luKGNvbmZjdXRkaXIpXQorICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCphcmdzKQorICAgIG1hdGNoID0gJycKKyAgICBpZiBwYXNz
ZWQ6CisgICAgICAgIG1hdGNoICs9ICcqJWQgcGFzc2VkKicgJSBwYXNzZWQKKyAgICBpZiBlcnJv
cjoKKyAgICAgICAgbWF0Y2ggKz0gJyolZCBlcnJvcionICUgZXJyb3IKKyAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMobWF0Y2gpCisKKworZGVmIHRlc3RfaXNzdWUxMDczX2NvbmZ0ZXN0
X3NwZWNpYWxfb2JqZWN0cyh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIK
KyAgICAgICAgY2xhc3MgRG9udFRvdWNoTWUob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBfX2dl
dGF0dHJfXyhzZWxmLCB4KToKKyAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ2NhbnQg
dG91Y2ggbWUnKQorCisgICAgICAgIHggPSBEb250VG91Y2hNZSgpCisgICAgIiIiKQorICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgZGVmIHRlc3Rfc29tZSgpOgorICAgICAgICAg
ICAgcGFzcworICAgICIiIikKKyAgICByZXMgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgYXNz
ZXJ0IHJlcy5yZXQgPT0gMAorCisKK2RlZiB0ZXN0X2NvbmZ0ZXN0X2V4Y2VwdGlvbl9oYW5kbGlu
Zyh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgnJycKKyAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcigpCisgICAgJycnKQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAg
ICAgZGVmIHRlc3Rfc29tZSgpOgorICAgICAgICAgICAgcGFzcworICAgICIiIikKKyAgICByZXMg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgYXNzZXJ0IHJlcy5yZXQgPT0gNAorICAgIGFzc2Vy
dCAncmFpc2UgVmFsdWVFcnJvcigpJyBpbiBbbGluZS5zdHJpcCgpIGZvciBsaW5lIGluIHJlcy5l
cnJsaW5lc10KKworCitkZWYgdGVzdF9ob29rX3Byb3h5KHRlc3RkaXIpOgorICAgICIiIlNlc3Np
b24ncyBnZXRob29rcHJveHkoKSB3b3VsZCBjYWNoZSBjb25mdGVzdHMgaW5jb3JyZWN0bHkgKCMy
MDE2KS4KKyAgICBJdCB3YXMgZGVjaWRlZCB0byByZW1vdmUgdGhlIGNhY2hlIGFsdG9nZXRoZXIu
CisgICAgIiIiCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCoqeworICAgICAgICAncm9vdC9kZW1v
LTAvdGVzdF9mb28xLnB5JzogImRlZiB0ZXN0MSgpOiBwYXNzIiwKKworICAgICAgICAncm9vdC9k
ZW1vLWEvdGVzdF9mb28yLnB5JzogImRlZiB0ZXN0MSgpOiBwYXNzIiwKKyAgICAgICAgJ3Jvb3Qv
ZGVtby1hL2NvbmZ0ZXN0LnB5JzogIiIiCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2lnbm9yZV9j
b2xsZWN0KHBhdGgsIGNvbmZpZyk6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAg
ICAgICAgICIiIiwKKworICAgICAgICAncm9vdC9kZW1vLWIvdGVzdF9mb28zLnB5JzogImRlZiB0
ZXN0MSgpOiBwYXNzIiwKKyAgICAgICAgJ3Jvb3QvZGVtby1jL3Rlc3RfZm9vNC5weSc6ICJkZWYg
dGVzdDEoKTogcGFzcyIsCisgICAgfSkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgp
CisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgJyp0ZXN0X2ZvbzEu
cHkqJywKKyAgICAgICAgJyp0ZXN0X2ZvbzMucHkqJywKKyAgICAgICAgJyp0ZXN0X2ZvbzQucHkq
JywKKyAgICAgICAgJyozIHBhc3NlZConLAorICAgIF0pCisKKworZGVmIHRlc3RfcmVxdWlyZWRf
b3B0aW9uX2hlbHAodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoImFzc2VydCAw
IikKKyAgICB4ID0gdGVzdGRpci5ta2RpcigieCIpCisgICAgeC5qb2luKCJjb25mdGVzdC5weSIp
LndyaXRlKF9weXRlc3QuX2NvZGUuU291cmNlKCIiIgorICAgICAgICBkZWYgcHl0ZXN0X2FkZG9w
dGlvbihwYXJzZXIpOgorICAgICAgICAgICAgcGFyc2VyLmFkZG9wdGlvbigiLS14eXoiLCBhY3Rp
b249InN0b3JlX3RydWUiLCByZXF1aXJlZD1UcnVlKQorICAgICIiIikpCisgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QoIi1oIiwgeCkKKyAgICBhc3NlcnQgJ2FyZ3VtZW50IC0teHl6IGlz
IHJlcXVpcmVkJyBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgIGFzc2VydCAnZ2VuZXJh
bDonIGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvdGVzdF9kb2N0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2RvY3Rlc3QucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjE1MDY3ZjE1ZTliMjk5NTg2YjhjMzFjZTk0NjdjOTg0YzJjZjJkYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9kb2N0ZXN0LnB5CkBAIC0w
LDAgKzEsMTAwMyBAQAorIyBlbmNvZGluZzogdXRmLTgKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQg
YWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCBzeXMKK2lt
cG9ydCBfcHl0ZXN0Ll9jb2RlCitmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBNT0RVTEVfTk9U
X0ZPVU5EX0VSUk9SCitmcm9tIF9weXRlc3QuZG9jdGVzdCBpbXBvcnQgRG9jdGVzdEl0ZW0sIERv
Y3Rlc3RNb2R1bGUsIERvY3Rlc3RUZXh0ZmlsZQoraW1wb3J0IHB5dGVzdAorCisKK2NsYXNzIFRl
c3REb2N0ZXN0cyhvYmplY3QpOgorCisgICAgZGVmIHRlc3RfY29sbGVjdF90ZXN0dGV4dGZpbGUo
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHcgPSB0ZXN0ZGlyLm1ha2V0eHRmaWxlKHdoYXRldmVy
PSIiKQorICAgICAgICBjaGVja2ZpbGUgPSB0ZXN0ZGlyLm1ha2V0eHRmaWxlKHRlc3Rfc29tZXRo
aW5nPSIiIgorICAgICAgICAgICAgYWxza2RqYWxzZGsKKyAgICAgICAgICAgID4+PiBpID0gNQor
ICAgICAgICAgICAgPj4+IGktMQorICAgICAgICAgICAgNAorICAgICAgICAiIiIpCisKKyAgICAg
ICAgZm9yIHggaW4gKHRlc3RkaXIudG1wZGlyLCBjaGVja2ZpbGUpOgorICAgICAgICAgICAgIyBw
cmludCAiY2hlY2tpbmcgdGhhdCAlcyByZXR1cm5zIGN1c3RvbSBpdGVtcyIgJSAoeCwpCisgICAg
ICAgICAgICBpdGVtcywgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfZ2VuaXRlbXMoeCkKKyAgICAg
ICAgICAgIGFzc2VydCBsZW4oaXRlbXMpID09IDEKKyAgICAgICAgICAgIGFzc2VydCBpc2luc3Rh
bmNlKGl0ZW1zWzBdLCBEb2N0ZXN0SXRlbSkKKyAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNl
KGl0ZW1zWzBdLnBhcmVudCwgRG9jdGVzdFRleHRmaWxlKQorICAgICAgICAjIEVtcHR5IGZpbGUg
aGFzIG5vIGl0ZW1zLgorICAgICAgICBpdGVtcywgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfZ2Vu
aXRlbXModykKKyAgICAgICAgYXNzZXJ0IGxlbihpdGVtcykgPT0gMAorCisgICAgZGVmIHRlc3Rf
Y29sbGVjdF9tb2R1bGVfZW1wdHkoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHBhdGggPSB0ZXN0
ZGlyLm1ha2VweWZpbGUod2hhdGV2ZXI9IiMiKQorICAgICAgICBmb3IgcCBpbiAocGF0aCwgdGVz
dGRpci50bXBkaXIpOgorICAgICAgICAgICAgaXRlbXMsIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5l
X2dlbml0ZW1zKHAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJy0tZG9jdGVzdC1tb2R1bGVzJykKKyAgICAgICAgICAgIGFzc2VydCBsZW4oaXRl
bXMpID09IDAKKworICAgIGRlZiB0ZXN0X2NvbGxlY3RfbW9kdWxlX3NpbmdsZV9tb2R1bGVsZXZl
bF9kb2N0ZXN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwYXRoID0gdGVzdGRpci5tYWtlcHlm
aWxlKHdoYXRldmVyPSciIiI+Pj4gcGFzcyIiIicpCisgICAgICAgIGZvciBwIGluIChwYXRoLCB0
ZXN0ZGlyLnRtcGRpcik6CisgICAgICAgICAgICBpdGVtcywgcmVwcmVjID0gdGVzdGRpci5pbmxp
bmVfZ2VuaXRlbXMocCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnLS1kb2N0ZXN0LW1vZHVsZXMnKQorICAgICAgICAgICAgYXNzZXJ0IGxlbihp
dGVtcykgPT0gMQorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoaXRlbXNbMF0sIERvY3Rl
c3RJdGVtKQorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoaXRlbXNbMF0ucGFyZW50LCBE
b2N0ZXN0TW9kdWxlKQorCisgICAgZGVmIHRlc3RfY29sbGVjdF9tb2R1bGVfdHdvX2RvY3Rlc3Rf
b25lX21vZHVsZWxldmVsKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwYXRoID0gdGVzdGRpci5t
YWtlcHlmaWxlKHdoYXRldmVyPSIiIgorICAgICAgICAgICAgJz4+PiB4ID0gTm9uZScKKyAgICAg
ICAgICAgIGRlZiBteV9mdW5jKCk6CisgICAgICAgICAgICAgICAgIj4+PiBtYWdpYyA9IDQyICIK
KyAgICAgICAgIiIiKQorICAgICAgICBmb3IgcCBpbiAocGF0aCwgdGVzdGRpci50bXBkaXIpOgor
ICAgICAgICAgICAgaXRlbXMsIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX2dlbml0ZW1zKHAsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0tZG9j
dGVzdC1tb2R1bGVzJykKKyAgICAgICAgICAgIGFzc2VydCBsZW4oaXRlbXMpID09IDIKKyAgICAg
ICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGl0ZW1zWzBdLCBEb2N0ZXN0SXRlbSkKKyAgICAgICAg
ICAgIGFzc2VydCBpc2luc3RhbmNlKGl0ZW1zWzFdLCBEb2N0ZXN0SXRlbSkKKyAgICAgICAgICAg
IGFzc2VydCBpc2luc3RhbmNlKGl0ZW1zWzBdLnBhcmVudCwgRG9jdGVzdE1vZHVsZSkKKyAgICAg
ICAgICAgIGFzc2VydCBpdGVtc1swXS5wYXJlbnQgaXMgaXRlbXNbMV0ucGFyZW50CisKKyAgICBk
ZWYgdGVzdF9jb2xsZWN0X21vZHVsZV90d29fZG9jdGVzdF9ub19tb2R1bGVsZXZlbChzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgcGF0aCA9IHRlc3RkaXIubWFrZXB5ZmlsZSh3aGF0ZXZlcj0iIiIK
KyAgICAgICAgICAgICcjIEVtcHR5JworICAgICAgICAgICAgZGVmIG15X2Z1bmMoKToKKyAgICAg
ICAgICAgICAgICAiPj4+IG1hZ2ljID0gNDIgIgorICAgICAgICAgICAgZGVmIHVudXNlZnVsKCk6
CisgICAgICAgICAgICAgICAgJycnCisgICAgICAgICAgICAgICAgIyBUaGlzIGlzIGEgZnVuY3Rp
b24KKyAgICAgICAgICAgICAgICAjID4+PiAjIGl0IGRvZXNuJ3QgaGF2ZSBhbnkgZG9jdGVzdAor
ICAgICAgICAgICAgICAgICcnJworICAgICAgICAgICAgZGVmIGFub3RoZXIoKToKKyAgICAgICAg
ICAgICAgICAnJycKKyAgICAgICAgICAgICAgICAjIFRoaXMgaXMgYW5vdGhlciBmdW5jdGlvbgor
ICAgICAgICAgICAgICAgID4+PiBpbXBvcnQgb3MgIyB0aGlzIG9uZSBkb2VzIGhhdmUgYSBkb2N0
ZXN0CisgICAgICAgICAgICAgICAgJycnCisgICAgICAgICIiIikKKyAgICAgICAgZm9yIHAgaW4g
KHBhdGgsIHRlc3RkaXIudG1wZGlyKToKKyAgICAgICAgICAgIGl0ZW1zLCByZXByZWMgPSB0ZXN0
ZGlyLmlubGluZV9nZW5pdGVtcyhwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICctLWRvY3Rlc3QtbW9kdWxlcycpCisgICAgICAgICAgICBhc3Nl
cnQgbGVuKGl0ZW1zKSA9PSAyCisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShpdGVtc1sw
XSwgRG9jdGVzdEl0ZW0pCisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShpdGVtc1sxXSwg
RG9jdGVzdEl0ZW0pCisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShpdGVtc1swXS5wYXJl
bnQsIERvY3Rlc3RNb2R1bGUpCisgICAgICAgICAgICBhc3NlcnQgaXRlbXNbMF0ucGFyZW50IGlz
IGl0ZW1zWzFdLnBhcmVudAorCisgICAgZGVmIHRlc3Rfc2ltcGxlX2RvY3Rlc3RmaWxlKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtldHh0ZmlsZSh0ZXN0X2RvYz0iIiIK
KyAgICAgICAgICAgID4+PiB4ID0gMQorICAgICAgICAgICAgPj4+IHggPT0gMQorICAgICAgICAg
ICAgRmFsc2UKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9y
dW4ocCwgKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShmYWlsZWQ9MSkKKworICAgIGRl
ZiB0ZXN0X25ld19wYXR0ZXJuKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5t
YWtldHh0ZmlsZSh4ZG9jPSIiIgorICAgICAgICAgICAgPj4+IHggPSAxCisgICAgICAgICAgICA+
Pj4geCA9PSAxCisgICAgICAgICAgICBGYWxzZQorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJl
YyA9IHRlc3RkaXIuaW5saW5lX3J1bihwLCAiLS1kb2N0ZXN0LWdsb2I9eCoudHh0IikKKyAgICAg
ICAgcmVwcmVjLmFzc2VydG91dGNvbWUoZmFpbGVkPTEpCisKKyAgICBkZWYgdGVzdF9tdWx0aXBs
ZV9wYXR0ZXJucyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiVGVzdCBzdXBwb3J0IGZvciBt
dWx0aXBsZSAtLWRvY3Rlc3QtZ2xvYiBhcmd1bWVudHMgKCMxMjU1KS4KKyAgICAgICAgIiIiCisg
ICAgICAgIHRlc3RkaXIubWFrZXR4dGZpbGUoeGRvYz0iIiIKKyAgICAgICAgICAgID4+PiAxCisg
ICAgICAgICAgICAxCisgICAgICAgICIiIikKKyAgICAgICAgdGVzdGRpci5tYWtlZmlsZSgnLmZv
bycsIHRlc3Q9IiIiCisgICAgICAgICAgICA+Pj4gMQorICAgICAgICAgICAgMQorICAgICAgICAi
IiIpCisgICAgICAgIHRlc3RkaXIubWFrZXR4dGZpbGUodGVzdF9ub3JtYWw9IiIiCisgICAgICAg
ICAgICA+Pj4gMQorICAgICAgICAgICAgMQorICAgICAgICAiIiIpCisgICAgICAgIGV4cGVjdGVk
ID0gc2V0KFsneGRvYy50eHQnLCAndGVzdC5mb28nLCAndGVzdF9ub3JtYWwudHh0J10pCisgICAg
ICAgIGFzc2VydCBzZXQoeC5iYXNlbmFtZSBmb3IgeCBpbiB0ZXN0ZGlyLnRtcGRpci5saXN0ZGly
KCkpID09IGV4cGVjdGVkCisgICAgICAgIGFyZ3MgPSBbIi0tZG9jdGVzdC1nbG9iPXhkb2MqLnR4
dCIsICItLWRvY3Rlc3QtZ2xvYj0qLmZvbyJdCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCphcmdzKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAg
ICAgICAgICAgJyp0ZXN0LmZvbyAqJywKKyAgICAgICAgICAgICcqeGRvYy50eHQgKicsCisgICAg
ICAgICAgICAnKjIgcGFzc2VkKicsCisgICAgICAgIF0pCisgICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAg
ICAgICAgICAgICcqdGVzdF9ub3JtYWwudHh0IConLAorICAgICAgICAgICAgJyoxIHBhc3NlZCon
LAorICAgICAgICBdKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAn
ICAgdGVzdF9zdHJpbmcsICAgIGVuY29kaW5nJywKKyAgICAgICAgWworICAgICAgICAgICAgKHUn
Zm9vJywgJ2FzY2lpJyksCisgICAgICAgICAgICAodSfDtsOkw7wnLCAnbGF0aW4xJyksCisgICAg
ICAgICAgICAodSfDtsOkw7wnLCAndXRmLTgnKQorICAgICAgICBdCisgICAgKQorICAgIGRlZiB0
ZXN0X2VuY29kaW5nKHNlbGYsIHRlc3RkaXIsIHRlc3Rfc3RyaW5nLCBlbmNvZGluZyk6CisgICAg
ICAgICIiIlRlc3Qgc3VwcG9ydCBmb3IgZG9jdGVzdF9lbmNvZGluZyBpbmkgb3B0aW9uLgorICAg
ICAgICAiIiIKKyAgICAgICAgdGVzdGRpci5tYWtlaW5pKCIiIgorICAgICAgICAgICAgW3B5dGVz
dF0KKyAgICAgICAgICAgIGRvY3Rlc3RfZW5jb2Rpbmc9ezB9CisgICAgICAgICIiIi5mb3JtYXQo
ZW5jb2RpbmcpKQorICAgICAgICBkb2N0ZXN0ID0gdSIiIgorICAgICAgICAgICAgPj4+IHUiezB9
IgorICAgICAgICAgICAgezF9CisgICAgICAgICIiIi5mb3JtYXQodGVzdF9zdHJpbmcsIHJlcHIo
dGVzdF9zdHJpbmcpKQorICAgICAgICB0ZXN0ZGlyLl9tYWtlZmlsZSgiLnR4dCIsIFtkb2N0ZXN0
XSwge30sIGVuY29kaW5nPWVuY29kaW5nKQorCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCkKKworICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAg
ICAgICAgJyoxIHBhc3NlZConLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfZG9jdGVzdF91
bmV4cGVjdGVkX2V4Y2VwdGlvbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtl
dHh0ZmlsZSgiIiIKKyAgICAgICAgICAgID4+PiBpID0gMAorICAgICAgICAgICAgPj4+IDAgLyBp
CisgICAgICAgICAgICAyCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3QoIi0tZG9jdGVzdC1tb2R1bGVzIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqdW5leHBlY3RlZF9leGNlcHRpb24qIiwKKyAgICAg
ICAgICAgICIqPj4+IGkgPSAwKiIsCisgICAgICAgICAgICAiKj4+PiAwIC8gaSoiLAorICAgICAg
ICAgICAgIipVTkVYUEVDVEVEKlplcm9EaXZpc2lvbioiLAorICAgICAgICBdKQorCisgICAgZGVm
IHRlc3RfZG9jc3RyaW5nX3BhcnRpYWxfY29udGV4dF9hcm91bmRfZXJyb3Ioc2VsZiwgdGVzdGRp
cik6CisgICAgICAgICIiIlRlc3QgdGhhdCB3ZSBzaG93IHNvbWUgY29udGV4dCBiZWZvcmUgdGhl
IGFjdHVhbCBsaW5lIG9mIGEgZmFpbGluZworICAgICAgICBkb2N0ZXN0LgorICAgICAgICAiIiIK
KyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCcnJworICAgICAgICAgICAgZGVmIGZvbygpOgor
ICAgICAgICAgICAgICAgICIiIgorICAgICAgICAgICAgICAgIHRleHQtbGluZS0xCisgICAgICAg
ICAgICAgICAgdGV4dC1saW5lLTIKKyAgICAgICAgICAgICAgICB0ZXh0LWxpbmUtMworICAgICAg
ICAgICAgICAgIHRleHQtbGluZS00CisgICAgICAgICAgICAgICAgdGV4dC1saW5lLTUKKyAgICAg
ICAgICAgICAgICB0ZXh0LWxpbmUtNgorICAgICAgICAgICAgICAgIHRleHQtbGluZS03CisgICAg
ICAgICAgICAgICAgdGV4dC1saW5lLTgKKyAgICAgICAgICAgICAgICB0ZXh0LWxpbmUtOQorICAg
ICAgICAgICAgICAgIHRleHQtbGluZS0xMAorICAgICAgICAgICAgICAgIHRleHQtbGluZS0xMQor
ICAgICAgICAgICAgICAgID4+PiAxICsgMQorICAgICAgICAgICAgICAgIDMKKworICAgICAgICAg
ICAgICAgIHRleHQtbGluZS1hZnRlcgorICAgICAgICAgICAgICAgICIiIgorICAgICAgICAnJycp
CisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctLWRvY3Rlc3QtbW9kdWxlcycp
CisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAnKmRv
Y3N0cmluZ19wYXJ0aWFsX2NvbnRleHRfYXJvdW5kX2Vycm9yKicsCisgICAgICAgICAgICAnMDA1
KnRleHQtbGluZS0zJywKKyAgICAgICAgICAgICcwMDYqdGV4dC1saW5lLTQnLAorICAgICAgICAg
ICAgJzAxMyp0ZXh0LWxpbmUtMTEnLAorICAgICAgICAgICAgJzAxNCo+Pj4gMSArIDEnLAorICAg
ICAgICAgICAgJ0V4cGVjdGVkOicsCisgICAgICAgICAgICAnICAgIDMnLAorICAgICAgICAgICAg
J0dvdDonLAorICAgICAgICAgICAgJyAgICAyJywKKyAgICAgICAgXSkKKyAgICAgICAgIyBsaW5l
cyBiZWxvdyBzaG91bGQgYmUgdHJpbW1lZCBvdXQKKyAgICAgICAgYXNzZXJ0ICd0ZXh0LWxpbmUt
Micgbm90IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICAgICAgYXNzZXJ0ICd0ZXh0LWxpbmUt
YWZ0ZXInIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKyAgICBkZWYgdGVzdF9kb2NzdHJp
bmdfZnVsbF9jb250ZXh0X2Fyb3VuZF9lcnJvcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIi
VGVzdCB0aGF0IHdlIHNob3cgdGhlIHdob2xlIGNvbnRleHQgYmVmb3JlIHRoZSBhY3R1YWwgbGlu
ZSBvZiBhIGZhaWxpbmcKKyAgICAgICAgZG9jdGVzdCwgcHJvdmlkZWQgdGhhdCB0aGUgY29udGV4
dCBpcyB1cCB0byAxMCBsaW5lcyBsb25nLgorICAgICAgICAiIiIKKyAgICAgICAgdGVzdGRpci5t
YWtlcHlmaWxlKCcnJworICAgICAgICAgICAgZGVmIGZvbygpOgorICAgICAgICAgICAgICAgICIi
IgorICAgICAgICAgICAgICAgIHRleHQtbGluZS0xCisgICAgICAgICAgICAgICAgdGV4dC1saW5l
LTIKKworICAgICAgICAgICAgICAgID4+PiAxICsgMQorICAgICAgICAgICAgICAgIDMKKyAgICAg
ICAgICAgICAgICAiIiIKKyAgICAgICAgJycnKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdCgnLS1kb2N0ZXN0LW1vZHVsZXMnKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWworICAgICAgICAgICAgJypkb2NzdHJpbmdfZnVsbF9jb250ZXh0X2Fyb3VuZF9l
cnJvcionLAorICAgICAgICAgICAgJzAwMyp0ZXh0LWxpbmUtMScsCisgICAgICAgICAgICAnMDA0
KnRleHQtbGluZS0yJywKKyAgICAgICAgICAgICcwMDYqPj4+IDEgKyAxJywKKyAgICAgICAgICAg
ICdFeHBlY3RlZDonLAorICAgICAgICAgICAgJyAgICAzJywKKyAgICAgICAgICAgICdHb3Q6JywK
KyAgICAgICAgICAgICcgICAgMicsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9kb2N0ZXN0
X2xpbmVkYXRhX21pc3Npbmcoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIudG1wZGly
LmpvaW4oJ2hlbGxvLnB5Jykud3JpdGUoX3B5dGVzdC5fY29kZS5Tb3VyY2UoIiIiCisgICAgICAg
ICAgICBjbGFzcyBGdW4ob2JqZWN0KToKKyAgICAgICAgICAgICAgICBAcHJvcGVydHkKKyAgICAg
ICAgICAgICAgICBkZWYgdGVzdChzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgJycnCisgICAg
ICAgICAgICAgICAgICAgID4+PiBhID0gMQorICAgICAgICAgICAgICAgICAgICA+Pj4gMS8wCisg
ICAgICAgICAgICAgICAgICAgICcnJworICAgICAgICAgICAgIiIiKSkKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tZG9jdGVzdC1tb2R1bGVzIikKKyAgICAgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqaGVsbG8qIiwKKyAgICAgICAg
ICAgICIqRVhBTVBMRSBMT0NBVElPTiBVTktOT1dOLCBub3Qgc2hvd2luZyBhbGwgdGVzdHMgb2Yg
dGhhdCBleGFtcGxlKiIsCisgICAgICAgICAgICAiKjEvMCoiLAorICAgICAgICAgICAgIipVTkVY
UEVDVEVEKlplcm9EaXZpc2lvbioiLAorICAgICAgICAgICAgIioxIGZhaWxlZCoiLAorICAgICAg
ICBdKQorCisgICAgZGVmIHRlc3RfZG9jdGVzdF91bmV4X2ltcG9ydGVycm9yX29ubHlfdHh0KHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2V0eHRmaWxlKCIiIgorICAgICAgICAg
ICAgPj4+IGltcG9ydCBhc2RhbHNka2phc2xrZGphc2QKKyAgICAgICAgICAgID4+PgorICAgICAg
ICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgIyBk
b2N0ZXN0IGlzIG5ldmVyIGV4ZWN1dGVkIGJlY2F1c2Ugb2YgZXJyb3IgZHVyaW5nIGhlbGxvLnB5
IGNvbGxlY3Rpb24KKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAg
ICAgICAgICIqPj4+IGltcG9ydCBhc2RhbHMqIiwKKyAgICAgICAgICAgICIqVU5FWFBFQ1RFRCp7
ZX0qIi5mb3JtYXQoZT1NT0RVTEVfTk9UX0ZPVU5EX0VSUk9SKSwKKyAgICAgICAgICAgICJ7ZX06
IE5vIG1vZHVsZSBuYW1lZCAqYXNkYWwqIi5mb3JtYXQoZT1NT0RVTEVfTk9UX0ZPVU5EX0VSUk9S
KSwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2RvY3Rlc3RfdW5leF9pbXBvcnRlcnJvcl93
aXRoX21vZHVsZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci50bXBkaXIuam9pbigi
aGVsbG8ucHkiKS53cml0ZShfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiIiIKKyAgICAgICAgICAgIGlt
cG9ydCBhc2RhbHNka2phc2xrZGphc2QKKyAgICAgICAgIiIiKSkKKyAgICAgICAgdGVzdGRpci5t
YWtldHh0ZmlsZSgiIiIKKyAgICAgICAgICAgID4+PiBpbXBvcnQgaGVsbG8KKyAgICAgICAgICAg
ID4+PgorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCIt
LWRvY3Rlc3QtbW9kdWxlcyIpCisgICAgICAgICMgZG9jdGVzdCBpcyBuZXZlciBleGVjdXRlZCBi
ZWNhdXNlIG9mIGVycm9yIGR1cmluZyBoZWxsby5weSBjb2xsZWN0aW9uCisgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKkVSUk9SIGNvbGxlY3Rpbmcg
aGVsbG8ucHkqIiwKKyAgICAgICAgICAgICIqe2V9OiBObyBtb2R1bGUgbmFtZWQgKmFzZGFscyoi
LmZvcm1hdChlPU1PRFVMRV9OT1RfRk9VTkRfRVJST1IpLAorICAgICAgICAgICAgIipJbnRlcnJ1
cHRlZDogMSBlcnJvcnMgZHVyaW5nIGNvbGxlY3Rpb24qIiwKKyAgICAgICAgXSkKKworICAgIGRl
ZiB0ZXN0X2RvY3Rlc3Rtb2R1bGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGly
Lm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICAnJycKKyAgICAgICAgICAgICAgICA+Pj4geCA9
IDEKKyAgICAgICAgICAgICAgICA+Pj4geCA9PSAxCisgICAgICAgICAgICAgICAgRmFsc2UKKwor
ICAgICAgICAgICAgJycnCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5p
bmxpbmVfcnVuKHAsICItLWRvY3Rlc3QtbW9kdWxlcyIpCisgICAgICAgIHJlcHJlYy5hc3NlcnRv
dXRjb21lKGZhaWxlZD0xKQorCisgICAgZGVmIHRlc3RfZG9jdGVzdG1vZHVsZV9leHRlcm5hbF9h
bmRfaXNzdWUxMTYoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1rcHlkaXIo
ImhlbGxvIikKKyAgICAgICAgcC5qb2luKCJfX2luaXRfXy5weSIpLndyaXRlKF9weXRlc3QuX2Nv
ZGUuU291cmNlKCIiIgorICAgICAgICAgICAgZGVmIHNvbWVmdW5jKCk6CisgICAgICAgICAgICAg
ICAgJycnCisgICAgICAgICAgICAgICAgICAgID4+PiBpID0gMAorICAgICAgICAgICAgICAgICAg
ICA+Pj4gaSArIDEKKyAgICAgICAgICAgICAgICAgICAgMgorICAgICAgICAgICAgICAgICcnJwor
ICAgICAgICAiIiIpKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwLCAiLS1k
b2N0ZXN0LW1vZHVsZXMiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWwor
ICAgICAgICAgICAgJzAwNCAqPj4+IGkgPSAwJywKKyAgICAgICAgICAgICcwMDUgKj4+PiBpICsg
MScsCisgICAgICAgICAgICAnKkV4cGVjdGVkOicsCisgICAgICAgICAgICAiKiAgICAyIiwKKyAg
ICAgICAgICAgICIqR290OiIsCisgICAgICAgICAgICAiKiAgICAxIiwKKyAgICAgICAgICAgICIq
OjU6IERvY1Rlc3RGYWlsdXJlIgorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfdHh0ZmlsZV9m
YWlsaW5nKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtldHh0ZmlsZSgi
IiIKKyAgICAgICAgICAgID4+PiBpID0gMAorICAgICAgICAgICAgPj4+IGkgKyAxCisgICAgICAg
ICAgICAyCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
cCwgIi1zIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAg
ICAgICcwMDEgPj4+IGkgPSAwJywKKyAgICAgICAgICAgICcwMDIgPj4+IGkgKyAxJywKKyAgICAg
ICAgICAgICdFeHBlY3RlZDonLAorICAgICAgICAgICAgIiAgICAyIiwKKyAgICAgICAgICAgICJH
b3Q6IiwKKyAgICAgICAgICAgICIgICAgMSIsCisgICAgICAgICAgICAiKnRlc3RfdHh0ZmlsZV9m
YWlsaW5nLnR4dDoyOiBEb2NUZXN0RmFpbHVyZSIKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0
X3R4dGZpbGVfd2l0aF9maXh0dXJlcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3Rk
aXIubWFrZXR4dGZpbGUoIiIiCisgICAgICAgICAgICA+Pj4gZGlyID0gZ2V0Zml4dHVyZSgndG1w
ZGlyJykKKyAgICAgICAgICAgID4+PiB0eXBlKGRpcikuX19uYW1lX18KKyAgICAgICAgICAgICdM
b2NhbFBhdGgnCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVf
cnVuKHAsICkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBk
ZWYgdGVzdF90eHRmaWxlX3dpdGhfdXNlZml4dHVyZXNfaW5faW5pKHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICB0ZXN0ZGlyLm1ha2VpbmkoIiIiCisgICAgICAgICAgICBbcHl0ZXN0XQorICAgICAg
ICAgICAgdXNlZml4dHVyZXMgPSBteWZpeHR1cmUKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0
ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAg
ICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIG15Zml4dHVyZShtb25rZXlwYXRj
aCk6CisgICAgICAgICAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJIRUxMTyIsICJXT1JMRCIp
CisgICAgICAgICIiIikKKworICAgICAgICBwID0gdGVzdGRpci5tYWtldHh0ZmlsZSgiIiIKKyAg
ICAgICAgICAgID4+PiBpbXBvcnQgb3MKKyAgICAgICAgICAgID4+PiBvcy5lbnZpcm9uWyJIRUxM
TyJdCisgICAgICAgICAgICAnV09STEQnCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0g
dGVzdGRpci5pbmxpbmVfcnVuKHAsICkKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFz
c2VkPTEpCisKKyAgICBkZWYgdGVzdF9kb2N0ZXN0bW9kdWxlX3dpdGhfZml4dHVyZXMoc2VsZiwg
dGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAg
ICAnJycKKyAgICAgICAgICAgICAgICA+Pj4gZGlyID0gZ2V0Zml4dHVyZSgndG1wZGlyJykKKyAg
ICAgICAgICAgICAgICA+Pj4gdHlwZShkaXIpLl9fbmFtZV9fCisgICAgICAgICAgICAgICAgJ0xv
Y2FsUGF0aCcKKyAgICAgICAgICAgICcnJworICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9
IHRlc3RkaXIuaW5saW5lX3J1bihwLCAiLS1kb2N0ZXN0LW1vZHVsZXMiKQorICAgICAgICByZXBy
ZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworICAgIGRlZiB0ZXN0X2RvY3Rlc3Rtb2R1bGVf
dGhyZWVfdGVzdHMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZp
bGUoIiIiCisgICAgICAgICAgICAnJycKKyAgICAgICAgICAgID4+PiBkaXIgPSBnZXRmaXh0dXJl
KCd0bXBkaXInKQorICAgICAgICAgICAgPj4+IHR5cGUoZGlyKS5fX25hbWVfXworICAgICAgICAg
ICAgJ0xvY2FsUGF0aCcKKyAgICAgICAgICAgICcnJworICAgICAgICAgICAgZGVmIG15X2Z1bmMo
KToKKyAgICAgICAgICAgICAgICAnJycKKyAgICAgICAgICAgICAgICA+Pj4gbWFnaWMgPSA0Mgor
ICAgICAgICAgICAgICAgID4+PiBtYWdpYyAtIDQyCisgICAgICAgICAgICAgICAgMAorICAgICAg
ICAgICAgICAgICcnJworICAgICAgICAgICAgZGVmIHVudXNlZnVsKCk6CisgICAgICAgICAgICAg
ICAgcGFzcworICAgICAgICAgICAgZGVmIGFub3RoZXIoKToKKyAgICAgICAgICAgICAgICAnJycK
KyAgICAgICAgICAgICAgICA+Pj4gaW1wb3J0IG9zCisgICAgICAgICAgICAgICAgPj4+IG9zIGlz
IG9zCisgICAgICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgICAgICAgICcnJworICAgICAgICAi
IiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bihwLCAiLS1kb2N0ZXN0LW1v
ZHVsZXMiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MykKKworICAgIGRl
ZiB0ZXN0X2RvY3Rlc3Rtb2R1bGVfdHdvX3Rlc3RzX29uZV9mYWlsKHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgY2xhc3MgTXlD
bGFzcyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiBiYWRfbWV0aChzZWxmKToKKyAgICAg
ICAgICAgICAgICAgICAgJycnCisgICAgICAgICAgICAgICAgICAgID4+PiBtYWdpYyA9IDQyCisg
ICAgICAgICAgICAgICAgICAgID4+PiBtYWdpYworICAgICAgICAgICAgICAgICAgICAwCisgICAg
ICAgICAgICAgICAgICAgICcnJworICAgICAgICAgICAgICAgIGRlZiBuaWNlX21ldGgoc2VsZik6
CisgICAgICAgICAgICAgICAgICAgICcnJworICAgICAgICAgICAgICAgICAgICA+Pj4gbWFnaWMg
PSA0MgorICAgICAgICAgICAgICAgICAgICA+Pj4gbWFnaWMgLSA0MgorICAgICAgICAgICAgICAg
ICAgICAwCisgICAgICAgICAgICAgICAgICAgICcnJworICAgICAgICAiIiIpCisgICAgICAgIHJl
cHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bihwLCAiLS1kb2N0ZXN0LW1vZHVsZXMiKQorICAgICAg
ICByZXByZWMuYXNzZXJ0b3V0Y29tZShmYWlsZWQ9MSwgcGFzc2VkPTEpCisKKyAgICBkZWYgdGVz
dF9pZ25vcmVkX3doaXRlc3BhY2Uoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFr
ZWluaSgiIiIKKyAgICAgICAgICAgIFtweXRlc3RdCisgICAgICAgICAgICBkb2N0ZXN0X29wdGlv
bmZsYWdzID0gRUxMSVBTSVMgTk9STUFMSVpFX1dISVRFU1BBQ0UKKyAgICAgICAgIiIiKQorICAg
ICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgY2xhc3MgTXlDbGFz
cyhvYmplY3QpOgorICAgICAgICAgICAgICAgICcnJworICAgICAgICAgICAgICAgID4+PiBhID0g
ImZvbyAgICAiCisgICAgICAgICAgICAgICAgPj4+IHByaW50KGEpCisgICAgICAgICAgICAgICAg
Zm9vCisgICAgICAgICAgICAgICAgJycnCisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAi
IiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bihwLCAiLS1kb2N0ZXN0LW1v
ZHVsZXMiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworICAgIGRl
ZiB0ZXN0X25vbl9pZ25vcmVkX3doaXRlc3BhY2Uoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRl
c3RkaXIubWFrZWluaSgiIiIKKyAgICAgICAgICAgIFtweXRlc3RdCisgICAgICAgICAgICBkb2N0
ZXN0X29wdGlvbmZsYWdzID0gRUxMSVBTSVMKKyAgICAgICAgIiIiKQorICAgICAgICBwID0gdGVz
dGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgY2xhc3MgTXlDbGFzcyhvYmplY3QpOgor
ICAgICAgICAgICAgICAgICcnJworICAgICAgICAgICAgICAgID4+PiBhID0gImZvbyAgICAiCisg
ICAgICAgICAgICAgICAgPj4+IHByaW50KGEpCisgICAgICAgICAgICAgICAgZm9vCisgICAgICAg
ICAgICAgICAgJycnCisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAg
IHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bihwLCAiLS1kb2N0ZXN0LW1vZHVsZXMiKQorICAg
ICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShmYWlsZWQ9MSwgcGFzc2VkPTApCisKKyAgICBkZWYg
dGVzdF9pZ25vcmVkX3doaXRlc3BhY2VfZ2xvYihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVz
dGRpci5tYWtlaW5pKCIiIgorICAgICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgICAgIGRvY3Rl
c3Rfb3B0aW9uZmxhZ3MgPSBFTExJUFNJUyBOT1JNQUxJWkVfV0hJVEVTUEFDRQorICAgICAgICAi
IiIpCisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2V0eHRmaWxlKHhkb2M9IiIiCisgICAgICAgICAg
ICA+Pj4gYSA9ICJmb28gICAgIgorICAgICAgICAgICAgPj4+IHByaW50KGEpCisgICAgICAgICAg
ICBmb28KKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4o
cCwgIi0tZG9jdGVzdC1nbG9iPXgqLnR4dCIpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21l
KHBhc3NlZD0xKQorCisgICAgZGVmIHRlc3Rfbm9uX2lnbm9yZWRfd2hpdGVzcGFjZV9nbG9iKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VpbmkoIiIiCisgICAgICAgICAgICBb
cHl0ZXN0XQorICAgICAgICAgICAgZG9jdGVzdF9vcHRpb25mbGFncyA9IEVMTElQU0lTCisgICAg
ICAgICIiIikKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXR4dGZpbGUoeGRvYz0iIiIKKyAgICAg
ICAgICAgID4+PiBhID0gImZvbyAgICAiCisgICAgICAgICAgICA+Pj4gcHJpbnQoYSkKKyAgICAg
ICAgICAgIGZvbworICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5l
X3J1bihwLCAiLS1kb2N0ZXN0LWdsb2I9eCoudHh0IikKKyAgICAgICAgcmVwcmVjLmFzc2VydG91
dGNvbWUoZmFpbGVkPTEsIHBhc3NlZD0wKQorCisgICAgZGVmIHRlc3RfY29udGFpbnNfdW5pY29k
ZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiRml4IGludGVybmFsIGVycm9yIHdpdGggZG9j
c3RyaW5ncyBjb250YWluaW5nIG5vbi1hc2NpaSBjaGFyYWN0ZXJzLgorICAgICAgICAiIiIKKyAg
ICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHUnJycKKyAgICAgICAgICAgICMgZW5jb2Rpbmc6IHV0
Zi04CisgICAgICAgICAgICBkZWYgZm9vKCk6CisgICAgICAgICAgICAgICAgIiIiCisgICAgICAg
ICAgICAgICAgPj4+IG5hbWUgPSAn0YEnICMgbm90IGxldHRlciAnYycgYnV0IGluc3RlYWQgQ3ly
aWxsaWMgJ3MnLgorICAgICAgICAgICAgICAgICdhbnl0aGluZycKKyAgICAgICAgICAgICAgICAi
IiIKKyAgICAgICAgJycnKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLS1k
b2N0ZXN0LW1vZHVsZXMnKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWwor
ICAgICAgICAgICAgJ0dvdCBub3RoaW5nJywKKyAgICAgICAgICAgICcqIDEgZmFpbGVkIGluKics
CisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9pZ25vcmVfaW1wb3J0X2Vycm9yc19vbl9kb2N0
ZXN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgor
ICAgICAgICAgICAgaW1wb3J0IGFzZGYKKworICAgICAgICAgICAgZGVmIGFkZF9vbmUoeCk6Cisg
ICAgICAgICAgICAgICAgJycnCisgICAgICAgICAgICAgICAgPj4+IGFkZF9vbmUoMSkKKyAgICAg
ICAgICAgICAgICAyCisgICAgICAgICAgICAgICAgJycnCisgICAgICAgICAgICAgICAgcmV0dXJu
IHggKyAxCisgICAgICAgICIiIikKKworICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9y
dW4ocCwgIi0tZG9jdGVzdC1tb2R1bGVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICItLWRvY3Rlc3QtaWdub3JlLWltcG9ydC1lcnJvcnMiKQorICAgICAgICByZXByZWMu
YXNzZXJ0b3V0Y29tZShza2lwcGVkPTEsIGZhaWxlZD0xLCBwYXNzZWQ9MCkKKworICAgIGRlZiB0
ZXN0X2p1bml0X3JlcG9ydF9mb3JfZG9jdGVzdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIi
CisgICAgICAgICM3MTM6IEZpeCAtLWp1bml0LXhtbCBvcHRpb24gd2hlbiB1c2VkIHdpdGggLS1k
b2N0ZXN0LW1vZHVsZXMuCisgICAgICAgICIiIgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlm
aWxlKCIiIgorICAgICAgICAgICAgZGVmIGZvbygpOgorICAgICAgICAgICAgICAgICcnJworICAg
ICAgICAgICAgICAgID4+PiAxICsgMQorICAgICAgICAgICAgICAgIDMKKyAgICAgICAgICAgICAg
ICAnJycKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVj
ID0gdGVzdGRpci5pbmxpbmVfcnVuKHAsICItLWRvY3Rlc3QtbW9kdWxlcyIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1qdW5pdC14bWw9anVuaXQueG1sIikKKyAgICAg
ICAgcmVwcmVjLmFzc2VydG91dGNvbWUoZmFpbGVkPTEpCisKKyAgICBkZWYgdGVzdF91bmljb2Rl
X2RvY3Rlc3Qoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIgorICAgICAgICBUZXN0IGNhc2Ug
Zm9yIGlzc3VlIDI0MzQ6IERlY29kZUVycm9yIG9uIFB5dGhvbiAyIHdoZW4gZG9jdGVzdCBjb250
YWlucyBub24tYXNjaWkKKyAgICAgICAgY2hhcmFjdGVycy4KKyAgICAgICAgIiIiCisgICAgICAg
IHAgPSB0ZXN0ZGlyLm1ha2V0eHRmaWxlKHRlc3RfdW5pY29kZV9kb2N0ZXN0PSIiIgorICAgICAg
ICAgICAgLi4gZG9jdGVzdDo6CisKKyAgICAgICAgICAgICAgICA+Pj4gcHJpbnQoCisgICAgICAg
ICAgICAgICAgLi4uICAgICJIaVxcblxcbkJ5w6kiKQorICAgICAgICAgICAgICAgIEhpCisgICAg
ICAgICAgICAgICAgLi4uCisgICAgICAgICAgICAgICAgQnnDqQorICAgICAgICAgICAgICAgID4+
PiAxLzAgICMgQnnDqQorICAgICAgICAgICAgICAgIDEKKyAgICAgICAgIiIiKQorICAgICAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWworICAgICAgICAgICAgJypVTkVYUEVDVEVEIEVYQ0VQVElPTjogWmVyb0Rpdmlz
aW9uRXJyb3IqJywKKyAgICAgICAgICAgICcqMSBmYWlsZWQqJywKKyAgICAgICAgXSkKKworICAg
IGRlZiB0ZXN0X3VuaWNvZGVfZG9jdGVzdF9tb2R1bGUoc2VsZiwgdGVzdGRpcik6CisgICAgICAg
ICIiIgorICAgICAgICBUZXN0IGNhc2UgZm9yIGlzc3VlIDI0MzQ6IERlY29kZUVycm9yIG9uIFB5
dGhvbiAyIHdoZW4gZG9jdGVzdCBkb2NzdHJpbmcKKyAgICAgICAgY29udGFpbnMgbm9uLWFzY2lp
IGNoYXJhY3RlcnMuCisgICAgICAgICIiIgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxl
KHRlc3RfdW5pY29kZV9kb2N0ZXN0X21vZHVsZT0iIiIKKyAgICAgICAgICAgICMgLSotIGVuY29k
aW5nOiB1dGYtOCAtKi0KKyAgICAgICAgICAgIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgdW5pY29k
ZV9saXRlcmFscworCisgICAgICAgICAgICBkZWYgZml4X2JhZF91bmljb2RlKHRleHQpOgorICAg
ICAgICAgICAgICAgICcnJworICAgICAgICAgICAgICAgICAgICA+Pj4gcHJpbnQoZml4X2JhZF91
bmljb2RlKCfDg8K6bmljbycpKQorICAgICAgICAgICAgICAgICAgICDDum5pY28KKyAgICAgICAg
ICAgICAgICAnJycKKyAgICAgICAgICAgICAgICByZXR1cm4gIsO6bmljbyIKKyAgICAgICAgIiIi
KQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwLCAnLS1kb2N0ZXN0LW1vZHVs
ZXMnKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWycqIDEgcGFzc2VkICon
XSkKKworICAgIGRlZiB0ZXN0X3JlcG9ydGluZm8oc2VsZiwgdGVzdGRpcik6CisgICAgICAgICcn
JworICAgICAgICBUZXN0IGNhc2UgdG8gbWFrZSBzdXJlIHRoYXQgRG9jdGVzdEl0ZW0ucmVwb3J0
aW5mbygpIHJldHVybnMgbGluZW5vLgorICAgICAgICAnJycKKyAgICAgICAgcCA9IHRlc3RkaXIu
bWFrZXB5ZmlsZSh0ZXN0X3JlcG9ydGluZm89IiIiCisgICAgICAgICAgICBkZWYgZm9vKHgpOgor
ICAgICAgICAgICAgICAgICcnJworICAgICAgICAgICAgICAgICAgICA+Pj4gZm9vKCdhJykKKyAg
ICAgICAgICAgICAgICAgICAgJ2InCisgICAgICAgICAgICAgICAgJycnCisgICAgICAgICAgICAg
ICAgcmV0dXJuICdjJworICAgICAgICAiIiIpCisgICAgICAgIGl0ZW1zLCByZXByZWMgPSB0ZXN0
ZGlyLmlubGluZV9nZW5pdGVtcyhwLCAnLS1kb2N0ZXN0LW1vZHVsZXMnKQorICAgICAgICByZXBv
cnRpbmZvID0gaXRlbXNbMF0ucmVwb3J0aW5mbygpCisgICAgICAgIGFzc2VydCByZXBvcnRpbmZv
WzFdID09IDEKKworICAgIGRlZiB0ZXN0X3ZhbGlkX3NldHVwX3B5KHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICAnJycKKyAgICAgICAgVGVzdCB0byBtYWtlIHN1cmUgdGhhdCBweXRlc3QgaWdub3Jl
cyB2YWxpZCBzZXR1cC5weSBmaWxlcyB3aGVuIHJhbgorICAgICAgICB3aXRoIC0tZG9jdGVzdC1t
b2R1bGVzCisgICAgICAgICcnJworICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKHNldHVw
PSIiIgorICAgICAgICAgICAgZnJvbSBzZXR1cHRvb2xzIGltcG9ydCBzZXR1cCwgZmluZF9wYWNr
YWdlcworICAgICAgICAgICAgc2V0dXAobmFtZT0nc2FtcGxlJywKKyAgICAgICAgICAgICAgICAg
IHZlcnNpb249JzAuMCcsCisgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbj0nZGVzY3JpcHRp
b24nLAorICAgICAgICAgICAgICAgICAgcGFja2FnZXM9ZmluZF9wYWNrYWdlcygpCisgICAgICAg
ICAgICApCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
cCwgJy0tZG9jdGVzdC1tb2R1bGVzJykKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKFsnKmNvbGxlY3RlZCAwIGl0ZW1zKiddKQorCisgICAgZGVmIHRlc3RfaW52YWxpZF9zZXR1
cF9weShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgJycnCisgICAgICAgIFRlc3QgdG8gbWFrZSBz
dXJlIHRoYXQgcHl0ZXN0IHJlYWRzIHNldHVwLnB5IGZpbGVzIHRoYXQgYXJlIG5vdCB1c2VkCisg
ICAgICAgIGZvciBweXRob24gcGFja2FnZXMgd2hlbiByYW4gd2l0aCAtLWRvY3Rlc3QtbW9kdWxl
cworICAgICAgICAnJycKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZShzZXR1cD0iIiIK
KyAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbygpOgorICAgICAgICAgICAgICAgIHJldHVybiAnYmFy
JworICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAsICct
LWRvY3Rlc3QtbW9kdWxlcycpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
Jypjb2xsZWN0ZWQgMSBpdGVtKiddKQorCisKK2NsYXNzIFRlc3RMaXRlcmFscyhvYmplY3QpOgor
CisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdjb25maWdfbW9kZScsIFsnaW5pJywgJ2Nv
bW1lbnQnXSkKKyAgICBkZWYgdGVzdF9hbGxvd191bmljb2RlKHNlbGYsIHRlc3RkaXIsIGNvbmZp
Z19tb2RlKToKKyAgICAgICAgIiIiVGVzdCB0aGF0IGRvY3Rlc3RzIHdoaWNoIG91dHB1dCB1bmlj
b2RlIHdvcmsgaW4gYWxsIHB5dGhvbiB2ZXJzaW9ucworICAgICAgICB0ZXN0ZWQgYnkgcHl0ZXN0
IHdoZW4gdGhlIEFMTE9XX1VOSUNPREUgb3B0aW9uIGlzIHVzZWQgKGVpdGhlciBpbgorICAgICAg
ICB0aGUgaW5pIGZpbGUgb3IgYnkgYW4gaW5saW5lIGNvbW1lbnQpLgorICAgICAgICAiIiIKKyAg
ICAgICAgaWYgY29uZmlnX21vZGUgPT0gJ2luaSc6CisgICAgICAgICAgICB0ZXN0ZGlyLm1ha2Vp
bmkoJycnCisgICAgICAgICAgICBbcHl0ZXN0XQorICAgICAgICAgICAgZG9jdGVzdF9vcHRpb25m
bGFncyA9IEFMTE9XX1VOSUNPREUKKyAgICAgICAgICAgICcnJykKKyAgICAgICAgICAgIGNvbW1l
bnQgPSAnJworICAgICAgICBlbHNlOgorICAgICAgICAgICAgY29tbWVudCA9ICcjZG9jdGVzdDog
K0FMTE9XX1VOSUNPREUnCisKKyAgICAgICAgdGVzdGRpci5tYWtldHh0ZmlsZSh0ZXN0X2RvYz0i
IiIKKyAgICAgICAgICAgID4+PiBiJzEyJy5kZWNvZGUoJ2FzY2lpJykge2NvbW1lbnR9CisgICAg
ICAgICAgICAnMTInCisgICAgICAgICIiIi5mb3JtYXQoY29tbWVudD1jb21tZW50KSkKKyAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKGZvbz0iIiIKKyAgICAgICAgICAgIGRlZiBmb28oKToKKyAg
ICAgICAgICAgICAgJycnCisgICAgICAgICAgICAgID4+PiBiJzEyJy5kZWNvZGUoJ2FzY2lpJykg
e2NvbW1lbnR9CisgICAgICAgICAgICAgICcxMicKKyAgICAgICAgICAgICAgJycnCisgICAgICAg
ICIiIi5mb3JtYXQoY29tbWVudD1jb21tZW50KSkKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5p
bmxpbmVfcnVuKCItLWRvY3Rlc3QtbW9kdWxlcyIpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRj
b21lKHBhc3NlZD0yKQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdjb25maWdfbW9k
ZScsIFsnaW5pJywgJ2NvbW1lbnQnXSkKKyAgICBkZWYgdGVzdF9hbGxvd19ieXRlcyhzZWxmLCB0
ZXN0ZGlyLCBjb25maWdfbW9kZSk6CisgICAgICAgICIiIlRlc3QgdGhhdCBkb2N0ZXN0cyB3aGlj
aCBvdXRwdXQgYnl0ZXMgd29yayBpbiBhbGwgcHl0aG9uIHZlcnNpb25zCisgICAgICAgIHRlc3Rl
ZCBieSBweXRlc3Qgd2hlbiB0aGUgQUxMT1dfQllURVMgb3B0aW9uIGlzIHVzZWQgKGVpdGhlciBp
bgorICAgICAgICB0aGUgaW5pIGZpbGUgb3IgYnkgYW4gaW5saW5lIGNvbW1lbnQpKCMxMjg3KS4K
KyAgICAgICAgIiIiCisgICAgICAgIGlmIGNvbmZpZ19tb2RlID09ICdpbmknOgorICAgICAgICAg
ICAgdGVzdGRpci5tYWtlaW5pKCcnJworICAgICAgICAgICAgW3B5dGVzdF0KKyAgICAgICAgICAg
IGRvY3Rlc3Rfb3B0aW9uZmxhZ3MgPSBBTExPV19CWVRFUworICAgICAgICAgICAgJycnKQorICAg
ICAgICAgICAgY29tbWVudCA9ICcnCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjb21tZW50
ID0gJyNkb2N0ZXN0OiArQUxMT1dfQllURVMnCisKKyAgICAgICAgdGVzdGRpci5tYWtldHh0Zmls
ZSh0ZXN0X2RvYz0iIiIKKyAgICAgICAgICAgID4+PiBiJ2ZvbycgIHtjb21tZW50fQorICAgICAg
ICAgICAgJ2ZvbycKKyAgICAgICAgIiIiLmZvcm1hdChjb21tZW50PWNvbW1lbnQpKQorICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoZm9vPSIiIgorICAgICAgICAgICAgZGVmIGZvbygpOgorICAg
ICAgICAgICAgICAnJycKKyAgICAgICAgICAgICAgPj4+IGInZm9vJyAge2NvbW1lbnR9CisgICAg
ICAgICAgICAgICdmb28nCisgICAgICAgICAgICAgICcnJworICAgICAgICAiIiIuZm9ybWF0KGNv
bW1lbnQ9Y29tbWVudCkpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLS1k
b2N0ZXN0LW1vZHVsZXMiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MikK
KworICAgIGRlZiB0ZXN0X3VuaWNvZGVfc3RyaW5nKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAi
IiJUZXN0IHRoYXQgZG9jdGVzdHMgd2hpY2ggb3V0cHV0IHVuaWNvZGUgZmFpbCBpbiBQeXRob24g
MiB3aGVuCisgICAgICAgIHRoZSBBTExPV19VTklDT0RFIG9wdGlvbiBpcyBub3QgdXNlZC4gVGhl
IHNhbWUgdGVzdCBzaG91bGQgcGFzcworICAgICAgICBpbiBQeXRob24gMy4KKyAgICAgICAgIiIi
CisgICAgICAgIHRlc3RkaXIubWFrZXR4dGZpbGUodGVzdF9kb2M9IiIiCisgICAgICAgICAgICA+
Pj4gYicxMicuZGVjb2RlKCdhc2NpaScpCisgICAgICAgICAgICAnMTInCisgICAgICAgICIiIikK
KyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcGFzc2VkID0g
aW50KHN5cy52ZXJzaW9uX2luZm9bMF0gPj0gMykKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNv
bWUocGFzc2VkPXBhc3NlZCwgZmFpbGVkPWludChub3QgcGFzc2VkKSkKKworICAgIGRlZiB0ZXN0
X2J5dGVzX2xpdGVyYWwoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIlRlc3QgdGhhdCBkb2N0
ZXN0cyB3aGljaCBvdXRwdXQgYnl0ZXMgZmFpbCBpbiBQeXRob24gMyB3aGVuCisgICAgICAgIHRo
ZSBBTExPV19CWVRFUyBvcHRpb24gaXMgbm90IHVzZWQuIFRoZSBzYW1lIHRlc3Qgc2hvdWxkIHBh
c3MKKyAgICAgICAgaW4gUHl0aG9uIDIgKCMxMjg3KS4KKyAgICAgICAgIiIiCisgICAgICAgIHRl
c3RkaXIubWFrZXR4dGZpbGUodGVzdF9kb2M9IiIiCisgICAgICAgICAgICA+Pj4gYidmb28nCisg
ICAgICAgICAgICAnZm9vJworICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIu
aW5saW5lX3J1bigpCisgICAgICAgIHBhc3NlZCA9IGludChzeXMudmVyc2lvbl9pbmZvWzBdID09
IDIpCisgICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD1wYXNzZWQsIGZhaWxlZD1p
bnQobm90IHBhc3NlZCkpCisKKworY2xhc3MgVGVzdERvY3Rlc3RTa2lwcyhvYmplY3QpOgorICAg
ICIiIgorICAgIElmIGFsbCBleGFtcGxlcyBpbiBhIGRvY3Rlc3QgYXJlIHNraXBwZWQgZHVlIHRv
IHRoZSBTS0lQIG9wdGlvbiwgdGhlbgorICAgIHRoZSB0ZXN0cyBzaG91bGQgYmUgU0tJUFBFRCBy
YXRoZXIgdGhhbiBQQVNTRUQuICgjOTU3KQorICAgICIiIgorCisgICAgQHB5dGVzdC5maXh0dXJl
KHBhcmFtcz1bJ3RleHQnLCAnbW9kdWxlJ10pCisgICAgZGVmIG1ha2Vkb2N0ZXN0KHNlbGYsIHRl
c3RkaXIsIHJlcXVlc3QpOgorICAgICAgICBkZWYgbWFrZWl0KGRvY3Rlc3QpOgorICAgICAgICAg
ICAgbW9kZSA9IHJlcXVlc3QucGFyYW0KKyAgICAgICAgICAgIGlmIG1vZGUgPT0gJ3RleHQnOgor
ICAgICAgICAgICAgICAgIHRlc3RkaXIubWFrZXR4dGZpbGUoZG9jdGVzdCkKKyAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgYXNzZXJ0IG1vZGUgPT0gJ21vZHVsZScKKyAgICAgICAg
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoJyIiIlxuJXMiIiInICUgZG9jdGVzdCkKKworICAg
ICAgICByZXR1cm4gbWFrZWl0CisKKyAgICBkZWYgdGVzdF9vbmVfc2tpcHBlZChzZWxmLCB0ZXN0
ZGlyLCBtYWtlZG9jdGVzdCk6CisgICAgICAgIG1ha2Vkb2N0ZXN0KCIiIgorICAgICAgICAgICAg
Pj4+IDEgKyAxICAjIGRvY3Rlc3Q6ICtTS0lQCisgICAgICAgICAgICAyCisgICAgICAgICAgICA+
Pj4gMiArIDIKKyAgICAgICAgICAgIDQKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0
ZXN0ZGlyLmlubGluZV9ydW4oIi0tZG9jdGVzdC1tb2R1bGVzIikKKyAgICAgICAgcmVwcmVjLmFz
c2VydG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYgdGVzdF9vbmVfc2tpcHBlZF9mYWlsZWQo
c2VsZiwgdGVzdGRpciwgbWFrZWRvY3Rlc3QpOgorICAgICAgICBtYWtlZG9jdGVzdCgiIiIKKyAg
ICAgICAgICAgID4+PiAxICsgMSAgIyBkb2N0ZXN0OiArU0tJUAorICAgICAgICAgICAgMgorICAg
ICAgICAgICAgPj4+IDIgKyAyCisgICAgICAgICAgICAyMDAKKyAgICAgICAgIiIiKQorICAgICAg
ICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi0tZG9jdGVzdC1tb2R1bGVzIikKKyAgICAg
ICAgcmVwcmVjLmFzc2VydG91dGNvbWUoZmFpbGVkPTEpCisKKyAgICBkZWYgdGVzdF9hbGxfc2tp
cHBlZChzZWxmLCB0ZXN0ZGlyLCBtYWtlZG9jdGVzdCk6CisgICAgICAgIG1ha2Vkb2N0ZXN0KCIi
IgorICAgICAgICAgICAgPj4+IDEgKyAxICAjIGRvY3Rlc3Q6ICtTS0lQCisgICAgICAgICAgICAy
CisgICAgICAgICAgICA+Pj4gMiArIDIgICMgZG9jdGVzdDogK1NLSVAKKyAgICAgICAgICAgIDIw
MAorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLS1k
b2N0ZXN0LW1vZHVsZXMiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShza2lwcGVkPTEp
CisKKyAgICBkZWYgdGVzdF92YWN1b3VzX2FsbF9za2lwcGVkKHNlbGYsIHRlc3RkaXIsIG1ha2Vk
b2N0ZXN0KToKKyAgICAgICAgbWFrZWRvY3Rlc3QoJycpCisgICAgICAgIHJlcHJlYyA9IHRlc3Rk
aXIuaW5saW5lX3J1bigiLS1kb2N0ZXN0LW1vZHVsZXMiKQorICAgICAgICByZXByZWMuYXNzZXJ0
b3V0Y29tZShwYXNzZWQ9MCwgc2tpcHBlZD0wKQorCisKK2NsYXNzIFRlc3REb2N0ZXN0QXV0b1Vz
ZUZpeHR1cmVzKG9iamVjdCk6CisKKyAgICBTQ09QRVMgPSBbJ21vZHVsZScsICdzZXNzaW9uJywg
J2NsYXNzJywgJ2Z1bmN0aW9uJ10KKworICAgIGRlZiB0ZXN0X2RvY3Rlc3RfbW9kdWxlX3Nlc3Np
b25fZml4dHVyZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIiIiVGVzdCB0aGF0IHNlc3Npb24g
Zml4dHVyZXMgYXJlIGluaXRpYWxpemVkIGZvciBkb2N0ZXN0IG1vZHVsZXMgKCM3NjgpCisgICAg
ICAgICIiIgorICAgICAgICAjIHNlc3Npb24gZml4dHVyZSB3aGljaCBjaGFuZ2VzIHNvbWUgZ2xv
YmFsIGRhdGEsIHdoaWNoIHdpbGwKKyAgICAgICAgIyBiZSBhY2Nlc3NlZCBieSBkb2N0ZXN0cyBp
biBhIG1vZHVsZQorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGltcG9ydCBzeXMKKworICAgICAgICAgICAgQHB5
dGVzdC55aWVsZF9maXh0dXJlKGF1dG91c2U9VHJ1ZSwgc2NvcGU9J3Nlc3Npb24nKQorICAgICAg
ICAgICAgZGVmIG15Zml4dHVyZSgpOgorICAgICAgICAgICAgICAgIGFzc2VydCBub3QgaGFzYXR0
cihzeXMsICdweXRlc3Rfc2Vzc2lvbl9kYXRhJykKKyAgICAgICAgICAgICAgICBzeXMucHl0ZXN0
X3Nlc3Npb25fZGF0YSA9IDEKKyAgICAgICAgICAgICAgICB5aWVsZAorICAgICAgICAgICAgICAg
IGRlbCBzeXMucHl0ZXN0X3Nlc3Npb25fZGF0YQorICAgICAgICAiIiIpCisgICAgICAgIHRlc3Rk
aXIubWFrZXB5ZmlsZShmb289IiIiCisgICAgICAgICAgICBpbXBvcnQgc3lzCisKKyAgICAgICAg
ICAgIGRlZiBmb28oKToKKyAgICAgICAgICAgICAgJycnCisgICAgICAgICAgICAgID4+PiBhc3Nl
cnQgc3lzLnB5dGVzdF9zZXNzaW9uX2RhdGEgPT0gMQorICAgICAgICAgICAgICAnJycKKworICAg
ICAgICAgICAgZGVmIGJhcigpOgorICAgICAgICAgICAgICAnJycKKyAgICAgICAgICAgICAgPj4+
IGFzc2VydCBzeXMucHl0ZXN0X3Nlc3Npb25fZGF0YSA9PSAxCisgICAgICAgICAgICAgICcnJwor
ICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWRvY3Rl
c3QtbW9kdWxlcyIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygnKjIgcGFz
c2VkKicpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3Njb3BlJywgU0NPUEVTKQor
ICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnZW5hYmxlX2RvY3Rlc3QnLCBbVHJ1ZSwgRmFs
c2VdKQorICAgIGRlZiB0ZXN0X2ZpeHR1cmVfc2NvcGVzKHNlbGYsIHRlc3RkaXIsIHNjb3BlLCBl
bmFibGVfZG9jdGVzdCk6CisgICAgICAgICIiIlRlc3QgdGhhdCBhdXRvLXVzZSBmaXh0dXJlcyB3
b3JrIHByb3Blcmx5IHdpdGggZG9jdGVzdCBtb2R1bGVzLgorICAgICAgICBTZWUgIzEwNTcgYW5k
ICMxMTAwLgorICAgICAgICAiIiIKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoJycnCisg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShh
dXRvdXNlPVRydWUsIHNjb3BlPSJ7c2NvcGV9IikKKyAgICAgICAgICAgIGRlZiBhdXRvKHJlcXVl
c3QpOgorICAgICAgICAgICAgICAgIHJldHVybiA5OQorICAgICAgICAnJycuZm9ybWF0KHNjb3Bl
PXNjb3BlKSkKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRlc3RfMT0nJycKKyAgICAgICAg
ICAgIGRlZiB0ZXN0X2ZvbygpOgorICAgICAgICAgICAgICAgICIiIgorICAgICAgICAgICAgICAg
ID4+PiBnZXRmaXh0dXJlKCdhdXRvJykgKyAxCisgICAgICAgICAgICAgICAgMTAwCisgICAgICAg
ICAgICAgICAgIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9iYXIoKToKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgMQorICAgICAgICAnJycpCisgICAgICAgIHBhcmFtcyA9ICgnLS1kb2N0ZXN0LW1v
ZHVsZXMnLCkgaWYgZW5hYmxlX2RvY3Rlc3QgZWxzZSAoKQorICAgICAgICBwYXNzZXMgPSAzIGlm
IGVuYWJsZV9kb2N0ZXN0IGVsc2UgMgorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgqcGFyYW1zKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWycqPT09ICVk
IHBhc3NlZCBpbiAqJyAlIHBhc3Nlc10pCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
J3Njb3BlJywgU0NPUEVTKQorICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnYXV0b3VzZScs
IFtUcnVlLCBGYWxzZV0pCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCd1c2VfZml4dHVy
ZV9pbl9kb2N0ZXN0JywgW1RydWUsIEZhbHNlXSkKKyAgICBkZWYgdGVzdF9maXh0dXJlX21vZHVs
ZV9kb2N0ZXN0X3Njb3BlcyhzZWxmLCB0ZXN0ZGlyLCBzY29wZSwgYXV0b3VzZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VfZml4dHVyZV9pbl9kb2N0ZXN0
KToKKyAgICAgICAgIiIiVGVzdCB0aGF0IGF1dG8tdXNlIGZpeHR1cmVzIHdvcmsgcHJvcGVybHkg
d2l0aCBkb2N0ZXN0IGZpbGVzLgorICAgICAgICBTZWUgIzEwNTcgYW5kICMxMTAwLgorICAgICAg
ICAiIiIKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoJycnCisgICAgICAgICAgICBpbXBv
cnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPXthdXRvdXNl
fSwgc2NvcGU9IntzY29wZX0iKQorICAgICAgICAgICAgZGVmIGF1dG8ocmVxdWVzdCk6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIDk5CisgICAgICAgICcnJy5mb3JtYXQoc2NvcGU9c2NvcGUsIGF1
dG91c2U9YXV0b3VzZSkpCisgICAgICAgIGlmIHVzZV9maXh0dXJlX2luX2RvY3Rlc3Q6CisgICAg
ICAgICAgICB0ZXN0ZGlyLm1ha2V0eHRmaWxlKHRlc3RfZG9jPSIiIgorICAgICAgICAgICAgICAg
ID4+PiBnZXRmaXh0dXJlKCdhdXRvJykKKyAgICAgICAgICAgICAgICA5OQorICAgICAgICAgICAg
IiIiKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdGVzdGRpci5tYWtldHh0ZmlsZSh0ZXN0
X2RvYz0iIiIKKyAgICAgICAgICAgICAgICA+Pj4gMSArIDEKKyAgICAgICAgICAgICAgICAyCisg
ICAgICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctLWRv
Y3Rlc3QtbW9kdWxlcycpCisgICAgICAgIGFzc2VydCAnRkFJTFVSRVMnIG5vdCBpbiBzdHIocmVz
dWx0LnN0ZG91dC5zdHIoKSkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsn
Kj09PSAxIHBhc3NlZCBpbiAqJ10pCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3Nj
b3BlJywgU0NPUEVTKQorICAgIGRlZiB0ZXN0X2F1dG9fdXNlX3JlcXVlc3RfYXR0cmlidXRlcyhz
ZWxmLCB0ZXN0ZGlyLCBzY29wZSk6CisgICAgICAgICIiIkNoZWNrIHRoYXQgYWxsIGF0dHJpYnV0
ZXMgb2YgYSByZXF1ZXN0IGluIGFuIGF1dG91c2UgZml4dHVyZQorICAgICAgICBiZWhhdmUgYXMg
ZXhwZWN0ZWQgd2hlbiByZXF1ZXN0ZWQgZm9yIGEgZG9jdGVzdCBpdGVtLgorICAgICAgICAiIiIK
KyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoJycnCisgICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUsIHNjb3BlPSJ7
c2NvcGV9IikKKyAgICAgICAgICAgIGRlZiBhdXRvKHJlcXVlc3QpOgorICAgICAgICAgICAgICAg
IGlmICJ7c2NvcGV9IiA9PSAnbW9kdWxlJzoKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHJl
cXVlc3QubW9kdWxlIGlzIE5vbmUKKyAgICAgICAgICAgICAgICBpZiAie3Njb3BlfSIgPT0gJ2Ns
YXNzJzoKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHJlcXVlc3QuY2xzIGlzIE5vbmUKKyAg
ICAgICAgICAgICAgICBpZiAie3Njb3BlfSIgPT0gJ2Z1bmN0aW9uJzoKKyAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0IHJlcXVlc3QuZnVuY3Rpb24gaXMgTm9uZQorICAgICAgICAgICAgICAgIHJl
dHVybiA5OQorICAgICAgICAnJycuZm9ybWF0KHNjb3BlPXNjb3BlKSkKKyAgICAgICAgdGVzdGRp
ci5tYWtldHh0ZmlsZSh0ZXN0X2RvYz0iIiIKKyAgICAgICAgICAgID4+PiAxICsgMQorICAgICAg
ICAgICAgMgorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCctLWRvY3Rlc3QtbW9kdWxlcycpCisgICAgICAgIGFzc2VydCAnRkFJTFVSRVMnIG5vdCBpbiBz
dHIocmVzdWx0LnN0ZG91dC5zdHIoKSkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKFsnKj09PSAxIHBhc3NlZCBpbiAqJ10pCisKKworY2xhc3MgVGVzdERvY3Rlc3ROYW1lc3Bh
Y2VGaXh0dXJlKG9iamVjdCk6CisKKyAgICBTQ09QRVMgPSBbJ21vZHVsZScsICdzZXNzaW9uJywg
J2NsYXNzJywgJ2Z1bmN0aW9uJ10KKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnc2Nv
cGUnLCBTQ09QRVMpCisgICAgZGVmIHRlc3RfbmFtZXNwYWNlX2RvY3Rlc3RmaWxlKHNlbGYsIHRl
c3RkaXIsIHNjb3BlKToKKyAgICAgICAgIiIiCisgICAgICAgIENoZWNrIHRoYXQgaW5zZXJ0aW5n
IHNvbWV0aGluZyBpbnRvIHRoZSBuYW1lc3BhY2Ugd29ya3MgaW4gYQorICAgICAgICBzaW1wbGUg
dGV4dCBmaWxlIGRvY3Rlc3QKKyAgICAgICAgIiIiCisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0
ZXN0KCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgaW1wb3J0IGNv
bnRleHRsaWIKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSwgc2Nv
cGU9IntzY29wZX0iKQorICAgICAgICAgICAgZGVmIGFkZF9jb250ZXh0bGliKGRvY3Rlc3RfbmFt
ZXNwYWNlKToKKyAgICAgICAgICAgICAgICBkb2N0ZXN0X25hbWVzcGFjZVsnY2wnXSA9IGNvbnRl
eHRsaWIKKyAgICAgICAgIiIiLmZvcm1hdChzY29wZT1zY29wZSkpCisgICAgICAgIHAgPSB0ZXN0
ZGlyLm1ha2V0eHRmaWxlKCIiIgorICAgICAgICAgICAgPj4+IHByaW50KGNsLl9fbmFtZV9fKQor
ICAgICAgICAgICAgY29udGV4dGxpYgorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRl
c3RkaXIuaW5saW5lX3J1bihwKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9
MSkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnc2NvcGUnLCBTQ09QRVMpCisgICAg
ZGVmIHRlc3RfbmFtZXNwYWNlX3B5ZmlsZShzZWxmLCB0ZXN0ZGlyLCBzY29wZSk6CisgICAgICAg
ICIiIgorICAgICAgICBDaGVjayB0aGF0IGluc2VydGluZyBzb21ldGhpbmcgaW50byB0aGUgbmFt
ZXNwYWNlIHdvcmtzIGluIGEKKyAgICAgICAgc2ltcGxlIFB5dGhvbiBmaWxlIGRvY3N0cmluZyBk
b2N0ZXN0CisgICAgICAgICIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGltcG9ydCBjb250ZXh0bGliCisK
KyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUsIHNjb3BlPSJ7c2NvcGV9
IikKKyAgICAgICAgICAgIGRlZiBhZGRfY29udGV4dGxpYihkb2N0ZXN0X25hbWVzcGFjZSk6Cisg
ICAgICAgICAgICAgICAgZG9jdGVzdF9uYW1lc3BhY2VbJ2NsJ10gPSBjb250ZXh0bGliCisgICAg
ICAgICIiIi5mb3JtYXQoc2NvcGU9c2NvcGUpKQorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlm
aWxlKCIiIgorICAgICAgICAgICAgZGVmIGZvbygpOgorICAgICAgICAgICAgICAgICcnJworICAg
ICAgICAgICAgICAgID4+PiBwcmludChjbC5fX25hbWVfXykKKyAgICAgICAgICAgICAgICBjb250
ZXh0bGliCisgICAgICAgICAgICAgICAgJycnCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVj
ID0gdGVzdGRpci5pbmxpbmVfcnVuKHAsICItLWRvY3Rlc3QtbW9kdWxlcyIpCisgICAgICAgIHJl
cHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCisKK2NsYXNzIFRlc3REb2N0ZXN0UmVwb3J0
aW5nT3B0aW9uKG9iamVjdCk6CisgICAgZGVmIF9ydW5fZG9jdGVzdF9yZXBvcnQoc2VsZiwgdGVz
dGRpciwgZm9ybWF0KToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAg
ICAgZGVmIGZvbygpOgorICAgICAgICAgICAgICAgICcnJworICAgICAgICAgICAgICAgID4+PiBm
b28oKQorICAgICAgICAgICAgICAgICAgIGEgIGIKKyAgICAgICAgICAgICAgICAwICAxICA0Cisg
ICAgICAgICAgICAgICAgMSAgMiAgNAorICAgICAgICAgICAgICAgIDIgIDMgIDYKKyAgICAgICAg
ICAgICAgICAnJycKKyAgICAgICAgICAgICAgICBwcmludCgnICAgYSAgYlxcbicKKyAgICAgICAg
ICAgICAgICAgICAgICAnMCAgMSAgNFxcbicKKyAgICAgICAgICAgICAgICAgICAgICAnMSAgMiAg
NVxcbicKKyAgICAgICAgICAgICAgICAgICAgICAnMiAgMyAgNicpCisgICAgICAgICAgICAiIiIp
CisgICAgICAgIHJldHVybiB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1kb2N0ZXN0LW1vZHVsZXMiLCAi
LS1kb2N0ZXN0LXJlcG9ydCIsIGZvcm1hdCkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgnZm9ybWF0JywgWyd1ZGlmZicsICdVRElGRicsICd1RGlGZiddKQorICAgIGRlZiB0ZXN0X2Rv
Y3Rlc3RfcmVwb3J0X3VkaWZmKHNlbGYsIHRlc3RkaXIsIGZvcm1hdCk6CisgICAgICAgIHJlc3Vs
dCA9IHNlbGYuX3J1bl9kb2N0ZXN0X3JlcG9ydCh0ZXN0ZGlyLCBmb3JtYXQpCisgICAgICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAnICAgICAwICAxICA0JywK
KyAgICAgICAgICAgICcgICAgLTEgIDIgIDQnLAorICAgICAgICAgICAgJyAgICArMSAgMiAgNScs
CisgICAgICAgICAgICAnICAgICAyICAzICA2JywKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0
X2RvY3Rlc3RfcmVwb3J0X2NkaWZmKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICByZXN1bHQgPSBz
ZWxmLl9ydW5fZG9jdGVzdF9yZXBvcnQodGVzdGRpciwgJ2NkaWZmJykKKyAgICAgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICcgICAgICAgICBhICBiJywKKyAg
ICAgICAgICAgICcgICAgICAwICAxICA0JywKKyAgICAgICAgICAgICcgICAgISAxICAyICA0JywK
KyAgICAgICAgICAgICcgICAgICAyICAzICA2JywKKyAgICAgICAgICAgICcgICAgLS0tIDEsNCAt
LS0tJywKKyAgICAgICAgICAgICcgICAgICAgICBhICBiJywKKyAgICAgICAgICAgICcgICAgICAw
ICAxICA0JywKKyAgICAgICAgICAgICcgICAgISAxICAyICA1JywKKyAgICAgICAgICAgICcgICAg
ICAyICAzICA2JywKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2RvY3Rlc3RfcmVwb3J0X25k
aWZmKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICByZXN1bHQgPSBzZWxmLl9ydW5fZG9jdGVzdF9y
ZXBvcnQodGVzdGRpciwgJ25kaWZmJykKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKFsKKyAgICAgICAgICAgICcgICAgICAgICBhICBiJywKKyAgICAgICAgICAgICcgICAgICAw
ICAxICA0JywKKyAgICAgICAgICAgICcgICAgLSAxICAyICA0JywKKyAgICAgICAgICAgICcgICAg
PyAgICAgICBeJywKKyAgICAgICAgICAgICcgICAgKyAxICAyICA1JywKKyAgICAgICAgICAgICcg
ICAgPyAgICAgICBeJywKKyAgICAgICAgICAgICcgICAgICAyICAzICA2JywKKyAgICAgICAgXSkK
KworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnZm9ybWF0JywgWydub25lJywgJ29ubHlf
Zmlyc3RfZmFpbHVyZSddKQorICAgIGRlZiB0ZXN0X2RvY3Rlc3RfcmVwb3J0X25vbmVfb3Jfb25s
eV9maXJzdF9mYWlsdXJlKHNlbGYsIHRlc3RkaXIsIGZvcm1hdCk6CisgICAgICAgIHJlc3VsdCA9
IHNlbGYuX3J1bl9kb2N0ZXN0X3JlcG9ydCh0ZXN0ZGlyLCBmb3JtYXQpCisgICAgICAgIHJlc3Vs
dC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAnRXhwZWN0ZWQ6JywKKyAgICAg
ICAgICAgICcgICAgICAgYSAgYicsCisgICAgICAgICAgICAnICAgIDAgIDEgIDQnLAorICAgICAg
ICAgICAgJyAgICAxICAyICA0JywKKyAgICAgICAgICAgICcgICAgMiAgMyAgNicsCisgICAgICAg
ICAgICAnR290OicsCisgICAgICAgICAgICAnICAgICAgIGEgIGInLAorICAgICAgICAgICAgJyAg
ICAwICAxICA0JywKKyAgICAgICAgICAgICcgICAgMSAgMiAgNScsCisgICAgICAgICAgICAnICAg
IDIgIDMgIDYnLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfZG9jdGVzdF9yZXBvcnRfaW52
YWxpZChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcmVzdWx0ID0gc2VsZi5fcnVuX2RvY3Rlc3Rf
cmVwb3J0KHRlc3RkaXIsICdvYnZpb3VzbHlfaW52YWxpZF9mb3JtYXQnKQorICAgICAgICByZXN1
bHQuc3RkZXJyLmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIiplcnJvcjogYXJndW1lbnQg
LS1kb2N0ZXN0LXJlcG9ydDogaW52YWxpZCBjaG9pY2U6ICdvYnZpb3VzbHlfaW52YWxpZF9mb3Jt
YXQnIChjaG9vc2UgZnJvbSoiCisgICAgICAgIF0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL3Rlc3RfZW50cnlfcG9pbnRzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2Vu
dHJ5X3BvaW50cy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2E2OGI0ODFmYTFmOWM1ZGU1MDZmZTk2ODljYTgy
NDlkYWNiNjI5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2Vu
dHJ5X3BvaW50cy5weQpAQCAtMCwwICsxLDE0IEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFi
c29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitpbXBvcnQgcGtnX3Jlc291
cmNlcworCitpbXBvcnQgcHl0ZXN0CisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJlbnRy
eXBvaW50IiwgWydweS50ZXN0JywgJ3B5dGVzdCddKQorZGVmIHRlc3RfZW50cnlfcG9pbnRfZXhp
c3QoZW50cnlwb2ludCk6CisgICAgYXNzZXJ0IGVudHJ5cG9pbnQgaW4gcGtnX3Jlc291cmNlcy5n
ZXRfZW50cnlfbWFwKCdweXRlc3QnKVsnY29uc29sZV9zY3JpcHRzJ10KKworCitkZWYgdGVzdF9w
eXRlc3RfZW50cnlfcG9pbnRzX2FyZV9pZGVudGljYWwoKToKKyAgICBlbnRyeU1hcCA9IHBrZ19y
ZXNvdXJjZXMuZ2V0X2VudHJ5X21hcCgncHl0ZXN0JylbJ2NvbnNvbGVfc2NyaXB0cyddCisgICAg
YXNzZXJ0IGVudHJ5TWFwWydweXRlc3QnXS5tb2R1bGVfbmFtZSA9PSBlbnRyeU1hcFsncHkudGVz
dCddLm1vZHVsZV9uYW1lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfaGVs
cGNvbmZpZy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9oZWxwY29uZmlnLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjg0NTAwNWEwNTc1YTQzNjU3MjQ2YmM4OTQyOTljYTE1NDY0MTk5OTMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfaGVscGNvbmZpZy5weQpAQCAtMCww
ICsxLDc3IEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNp
b24sIHByaW50X2Z1bmN0aW9uCitmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJVF9OT1RFU1RT
Q09MTEVDVEVECitpbXBvcnQgcHl0ZXN0CisKKworZGVmIHRlc3RfdmVyc2lvbih0ZXN0ZGlyLCBw
eXRlc3Rjb25maWcpOgorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLXZlcnNpb24i
KQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICAjIHAgPSBweS5wYXRoLmxvY2FsKHB5
Ll9fZmlsZV9fKS5kaXJwYXRoKCkKKyAgICByZXN1bHQuc3RkZXJyLmZubWF0Y2hfbGluZXMoWwor
ICAgICAgICAnKnB5dGVzdColcyppbXBvcnRlZCBmcm9tKicgJSAocHl0ZXN0Ll9fdmVyc2lvbl9f
LCApCisgICAgXSkKKyAgICBpZiBweXRlc3Rjb25maWcucGx1Z2lubWFuYWdlci5saXN0X3BsdWdp
bl9kaXN0aW5mbygpOgorICAgICAgICByZXN1bHQuc3RkZXJyLmZubWF0Y2hfbGluZXMoWworICAg
ICAgICAgICAgIipzZXR1cHRvb2xzIHJlZ2lzdGVyZWQgcGx1Z2luczoiLAorICAgICAgICAgICAg
IiphdCoiLAorICAgICAgICBdKQorCisKK2RlZiB0ZXN0X2hlbHAodGVzdGRpcik6CisgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0taGVscCIpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQg
PT0gMAorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiIiIKKyAgICAgICAgKi12KnZl
cmJvc2UqCisgICAgICAgICpzZXR1cC5jZmcqCisgICAgICAgICptaW52ZXJzaW9uKgorICAgICAg
ICAqdG8gc2VlKm1hcmtlcnMqcHl0ZXN0IC0tbWFya2VycyoKKyAgICAgICAgKnRvIHNlZSpmaXh0
dXJlcypweXRlc3QgLS1maXh0dXJlcyoKKyAgICAiIiIpCisKKworZGVmIHRlc3RfaG9va3ZhbGlk
YXRpb25fdW5rbm93bih0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAg
ICAgICAgZGVmIHB5dGVzdF9oZWxsbyh4eXopOgorICAgICAgICAgICAgcGFzcworICAgICIiIikK
KyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQg
IT0gMAorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICcqdW5rbm93
biBob29rKnB5dGVzdF9oZWxsbyonCisgICAgXSkKKworCitkZWYgdGVzdF9ob29rdmFsaWRhdGlv
bl9vcHRpb25hbCh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAg
ICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBAcHl0ZXN0Lmhvb2tpbXBsKG9wdGlvbmFsaG9vaz1U
cnVlKQorICAgICAgICBkZWYgcHl0ZXN0X2hlbGxvKHh5eik6CisgICAgICAgICAgICBwYXNzCisg
ICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICBhc3NlcnQgcmVz
dWx0LnJldCA9PSBFWElUX05PVEVTVFNDT0xMRUNURUQKKworCitkZWYgdGVzdF90cmFjZWNvbmZp
Zyh0ZXN0ZGlyKToKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS10cmFjZWNvbmZp
ZyIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIip1c2luZypw
eXRlc3QqcHkqIiwKKyAgICAgICAgIiphY3RpdmUgcGx1Z2lucyoiLAorICAgIF0pCisKKworZGVm
IHRlc3RfZGVidWcodGVzdGRpciwgbW9ua2V5cGF0Y2gpOgorICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0X3N1YnByb2Nlc3MoIi0tZGVidWciKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09
IEVYSVRfTk9URVNUU0NPTExFQ1RFRAorICAgIHAgPSB0ZXN0ZGlyLnRtcGRpci5qb2luKCJweXRl
c3RkZWJ1Zy5sb2ciKQorICAgIGFzc2VydCAicHl0ZXN0X3Nlc3Npb25zdGFydCIgaW4gcC5yZWFk
KCkKKworCitkZWYgdGVzdF9QWVRFU1RfREVCVUcodGVzdGRpciwgbW9ua2V5cGF0Y2gpOgorICAg
IG1vbmtleXBhdGNoLnNldGVudigiUFlURVNUX0RFQlVHIiwgIjEiKQorICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0X3N1YnByb2Nlc3MoKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IEVY
SVRfTk9URVNUU0NPTExFQ1RFRAorICAgIHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5lcyhbCisg
ICAgICAgICIqcHl0ZXN0X3BsdWdpbl9yZWdpc3RlcmVkKiIsCisgICAgICAgICIqbWFuYWdlcipQ
bHVnaW5NYW5hZ2VyKiIKKyAgICBdKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90
ZXN0X2p1bml0eG1sLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2p1bml0eG1sLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmI2MDRjMDJhM2RlYTlmNGY1NDMxMTE4YmJhMDY4Njg2MGM0YzRkZWQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfanVuaXR4bWwucHkKQEAgLTAs
MCArMSwxMDYyIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorZnJvbSBfX2Z1dHVyZV9fIGlt
cG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgorZnJvbSB4bWwu
ZG9tIGltcG9ydCBtaW5pZG9tCitpbXBvcnQgcHkKK2ltcG9ydCBzeXMKK2ltcG9ydCBvcworZnJv
bSBfcHl0ZXN0Lmp1bml0eG1sIGltcG9ydCBMb2dYTUwKK2ltcG9ydCBweXRlc3QKKworCitkZWYg
cnVuYW5kcGFyc2UodGVzdGRpciwgKmFyZ3MpOgorICAgIHJlc3VsdHBhdGggPSB0ZXN0ZGlyLnRt
cGRpci5qb2luKCJqdW5pdC54bWwiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCIt
LWp1bml0eG1sPSVzIiAlIHJlc3VsdHBhdGgsICphcmdzKQorICAgIHhtbGRvYyA9IG1pbmlkb20u
cGFyc2Uoc3RyKHJlc3VsdHBhdGgpKQorICAgIHJldHVybiByZXN1bHQsIERvbU5vZGUoeG1sZG9j
KQorCisKK2RlZiBhc3NlcnRfYXR0cihub2RlLCAqKmt3YXJncyk6CisgICAgX190cmFjZWJhY2to
aWRlX18gPSBUcnVlCisKKyAgICBkZWYgbm9kZXZhbChub2RlLCBuYW1lKToKKyAgICAgICAgYW5v
ZGUgPSBub2RlLmdldEF0dHJpYnV0ZU5vZGUobmFtZSkKKyAgICAgICAgaWYgYW5vZGUgaXMgbm90
IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gYW5vZGUudmFsdWUKKworICAgIGV4cGVjdGVkID0g
ZGljdCgobmFtZSwgc3RyKHZhbHVlKSkgZm9yIG5hbWUsIHZhbHVlIGluIGt3YXJncy5pdGVtcygp
KQorICAgIG9uX25vZGUgPSBkaWN0KChuYW1lLCBub2RldmFsKG5vZGUsIG5hbWUpKSBmb3IgbmFt
ZSBpbiBleHBlY3RlZCkKKyAgICBhc3NlcnQgb25fbm9kZSA9PSBleHBlY3RlZAorCisKK2NsYXNz
IERvbU5vZGUob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZG9tKToKKyAgICAgICAg
c2VsZi5fX25vZGUgPSBkb20KKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0
dXJuIHNlbGYuX19ub2RlLnRveG1sKCkKKworICAgIGRlZiBmaW5kX2ZpcnN0X2J5X3RhZyhzZWxm
LCB0YWcpOgorICAgICAgICByZXR1cm4gc2VsZi5maW5kX250aF9ieV90YWcodGFnLCAwKQorCisg
ICAgZGVmIF9ieV90YWcoc2VsZiwgdGFnKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX19ub2RlLmdl
dEVsZW1lbnRzQnlUYWdOYW1lKHRhZykKKworICAgIGRlZiBmaW5kX250aF9ieV90YWcoc2VsZiwg
dGFnLCBuKToKKyAgICAgICAgaXRlbXMgPSBzZWxmLl9ieV90YWcodGFnKQorICAgICAgICB0cnk6
CisgICAgICAgICAgICBudGggPSBpdGVtc1tuXQorICAgICAgICBleGNlcHQgSW5kZXhFcnJvcjoK
KyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiB0eXBl
KHNlbGYpKG50aCkKKworICAgIGRlZiBmaW5kX2J5X3RhZyhzZWxmLCB0YWcpOgorICAgICAgICB0
ID0gdHlwZShzZWxmKQorICAgICAgICByZXR1cm4gW3QoeCkgZm9yIHggaW4gc2VsZi5fX25vZGUu
Z2V0RWxlbWVudHNCeVRhZ05hbWUodGFnKV0KKworICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBr
ZXkpOgorICAgICAgICBub2RlID0gc2VsZi5fX25vZGUuZ2V0QXR0cmlidXRlTm9kZShrZXkpCisg
ICAgICAgIGlmIG5vZGUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gbm9kZS52YWx1
ZQorCisgICAgZGVmIGFzc2VydF9hdHRyKHNlbGYsICoqa3dhcmdzKToKKyAgICAgICAgX190cmFj
ZWJhY2toaWRlX18gPSBUcnVlCisgICAgICAgIHJldHVybiBhc3NlcnRfYXR0cihzZWxmLl9fbm9k
ZSwgKiprd2FyZ3MpCisKKyAgICBkZWYgdG94bWwoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxm
Ll9fbm9kZS50b3htbCgpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgdGV4dChzZWxmKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX19ub2RlLmNoaWxkTm9kZXNbMF0ud2hvbGVUZXh0CisKKyAgICBA
cHJvcGVydHkKKyAgICBkZWYgdGFnKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fX25vZGUu
dGFnTmFtZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG5leHRfc2llYmxpbmcoc2VsZik6Cisg
ICAgICAgIHJldHVybiB0eXBlKHNlbGYpKHNlbGYuX19ub2RlLm5leHRTaWJsaW5nKQorCisKK2Ns
YXNzIFRlc3RQeXRob24ob2JqZWN0KToKKyAgICBkZWYgdGVzdF9zdW1taW5nX3NpbXBsZShzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgZGVmIHRlc3RfcGFzcygpOgorICAgICAgICAgICAg
ICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZhaWwoKToKKyAgICAgICAgICAgICAgICBh
c3NlcnQgMAorICAgICAgICAgICAgZGVmIHRlc3Rfc2tpcCgpOgorICAgICAgICAgICAgICAgIHB5
dGVzdC5za2lwKCIiKQorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnhmYWlsCisgICAgICAgICAg
ICBkZWYgdGVzdF94ZmFpbCgpOgorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICAg
ICBAcHl0ZXN0Lm1hcmsueGZhaWwKKyAgICAgICAgICAgIGRlZiB0ZXN0X3hwYXNzKCk6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0IDEKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQsIGRvbSA9
IHJ1bmFuZHBhcnNlKHRlc3RkaXIpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0CisgICAgICAg
IG5vZGUgPSBkb20uZmluZF9maXJzdF9ieV90YWcoInRlc3RzdWl0ZSIpCisgICAgICAgIG5vZGUu
YXNzZXJ0X2F0dHIobmFtZT0icHl0ZXN0IiwgZXJyb3JzPTAsIGZhaWx1cmVzPTEsIHNraXBzPTIs
IHRlc3RzPTUpCisKKyAgICBkZWYgdGVzdF9zdW1taW5nX3NpbXBsZV93aXRoX2Vycm9ycyhzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBk
ZWYgZml4dHVyZSgpOgorICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigpCisgICAgICAg
ICAgICBkZWYgdGVzdF9wYXNzKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAg
ZGVmIHRlc3RfZmFpbCgpOgorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICAgICBk
ZWYgdGVzdF9lcnJvcihmaXh0dXJlKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAg
ICBAcHl0ZXN0Lm1hcmsueGZhaWwKKyAgICAgICAgICAgIGRlZiB0ZXN0X3hmYWlsKCk6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwo
c3RyaWN0PVRydWUpCisgICAgICAgICAgICBkZWYgdGVzdF94cGFzcygpOgorICAgICAgICAgICAg
ICAgIGFzc2VydCBUcnVlCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0LCBkb20gPSBydW5h
bmRwYXJzZSh0ZXN0ZGlyKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldAorICAgICAgICBub2Rl
ID0gZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0c3VpdGUiKQorICAgICAgICBub2RlLmFzc2Vy
dF9hdHRyKG5hbWU9InB5dGVzdCIsIGVycm9ycz0xLCBmYWlsdXJlcz0yLCBza2lwcz0xLCB0ZXN0
cz01KQorCisgICAgZGVmIHRlc3RfdGltaW5nX2Z1bmN0aW9uKHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgdGltZSwgcHl0
ZXN0CisgICAgICAgICAgICBkZWYgc2V0dXBfbW9kdWxlKCk6CisgICAgICAgICAgICAgICAgdGlt
ZS5zbGVlcCgwLjAxKQorICAgICAgICAgICAgZGVmIHRlYXJkb3duX21vZHVsZSgpOgorICAgICAg
ICAgICAgICAgIHRpbWUuc2xlZXAoMC4wMSkKKyAgICAgICAgICAgIGRlZiB0ZXN0X3NsZWVwKCk6
CisgICAgICAgICAgICAgICAgdGltZS5zbGVlcCgwLjAxKQorICAgICAgICAiIiIpCisgICAgICAg
IHJlc3VsdCwgZG9tID0gcnVuYW5kcGFyc2UodGVzdGRpcikKKyAgICAgICAgbm9kZSA9IGRvbS5m
aW5kX2ZpcnN0X2J5X3RhZygidGVzdHN1aXRlIikKKyAgICAgICAgdG5vZGUgPSBub2RlLmZpbmRf
Zmlyc3RfYnlfdGFnKCJ0ZXN0Y2FzZSIpCisgICAgICAgIHZhbCA9IHRub2RlWyJ0aW1lIl0KKyAg
ICAgICAgYXNzZXJ0IHJvdW5kKGZsb2F0KHZhbCksIDIpID49IDAuMDMKKworICAgIGRlZiB0ZXN0
X3NldHVwX2Vycm9yKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
IiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QuZml4
dHVyZQorICAgICAgICAgICAgZGVmIGFyZyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKCkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGFyZyk6CisgICAg
ICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCwgZG9tID0gcnVu
YW5kcGFyc2UodGVzdGRpcikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQKKyAgICAgICAgbm9k
ZSA9IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdHN1aXRlIikKKyAgICAgICAgbm9kZS5hc3Nl
cnRfYXR0cihlcnJvcnM9MSwgdGVzdHM9MSkKKyAgICAgICAgdG5vZGUgPSBub2RlLmZpbmRfZmly
c3RfYnlfdGFnKCJ0ZXN0Y2FzZSIpCisgICAgICAgIHRub2RlLmFzc2VydF9hdHRyKAorICAgICAg
ICAgICAgZmlsZT0idGVzdF9zZXR1cF9lcnJvci5weSIsCisgICAgICAgICAgICBsaW5lPSI1IiwK
KyAgICAgICAgICAgIGNsYXNzbmFtZT0idGVzdF9zZXR1cF9lcnJvciIsCisgICAgICAgICAgICBu
YW1lPSJ0ZXN0X2Z1bmN0aW9uIikKKyAgICAgICAgZm5vZGUgPSB0bm9kZS5maW5kX2ZpcnN0X2J5
X3RhZygiZXJyb3IiKQorICAgICAgICBmbm9kZS5hc3NlcnRfYXR0cihtZXNzYWdlPSJ0ZXN0IHNl
dHVwIGZhaWx1cmUiKQorICAgICAgICBhc3NlcnQgIlZhbHVlRXJyb3IiIGluIGZub2RlLnRveG1s
KCkKKworICAgIGRlZiB0ZXN0X3RlYXJkb3duX2Vycm9yKHNlbGYsIHRlc3RkaXIpOgorICAgICAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAg
ICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGFyZygpOgorICAgICAg
ICAgICAgICAgIHlpZWxkCisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigpCisgICAg
ICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihhcmcpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgIiIiKQorICAgICAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKHRlc3RkaXIpCisg
ICAgICAgIGFzc2VydCByZXN1bHQucmV0CisgICAgICAgIG5vZGUgPSBkb20uZmluZF9maXJzdF9i
eV90YWcoInRlc3RzdWl0ZSIpCisgICAgICAgIHRub2RlID0gbm9kZS5maW5kX2ZpcnN0X2J5X3Rh
ZygidGVzdGNhc2UiKQorICAgICAgICB0bm9kZS5hc3NlcnRfYXR0cigKKyAgICAgICAgICAgIGZp
bGU9InRlc3RfdGVhcmRvd25fZXJyb3IucHkiLAorICAgICAgICAgICAgbGluZT0iNiIsCisgICAg
ICAgICAgICBjbGFzc25hbWU9InRlc3RfdGVhcmRvd25fZXJyb3IiLAorICAgICAgICAgICAgbmFt
ZT0idGVzdF9mdW5jdGlvbiIpCisgICAgICAgIGZub2RlID0gdG5vZGUuZmluZF9maXJzdF9ieV90
YWcoImVycm9yIikKKyAgICAgICAgZm5vZGUuYXNzZXJ0X2F0dHIobWVzc2FnZT0idGVzdCB0ZWFy
ZG93biBmYWlsdXJlIikKKyAgICAgICAgYXNzZXJ0ICJWYWx1ZUVycm9yIiBpbiBmbm9kZS50b3ht
bCgpCisKKyAgICBkZWYgdGVzdF9jYWxsX2ZhaWx1cmVfdGVhcmRvd25fZXJyb3Ioc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYg
YXJnKCk6CisgICAgICAgICAgICAgICAgeWllbGQKKyAgICAgICAgICAgICAgICByYWlzZSBFeGNl
cHRpb24oIlRlYXJkb3duIEV4Y2VwdGlvbiIpCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jdGlv
bihhcmcpOgorICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ2FsbCBFeGNlcHRpb24i
KQorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCwgZG9tID0gcnVuYW5kcGFyc2UodGVzdGRp
cikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQKKyAgICAgICAgbm9kZSA9IGRvbS5maW5kX2Zp
cnN0X2J5X3RhZygidGVzdHN1aXRlIikKKyAgICAgICAgbm9kZS5hc3NlcnRfYXR0cihlcnJvcnM9
MSwgZmFpbHVyZXM9MSwgdGVzdHM9MSkKKyAgICAgICAgZmlyc3QsIHNlY29uZCA9IGRvbS5maW5k
X2J5X3RhZygidGVzdGNhc2UiKQorICAgICAgICBpZiBub3QgZmlyc3Qgb3Igbm90IHNlY29uZCBv
ciBmaXJzdCA9PSBzZWNvbmQ6CisgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICBmbm9kZSA9
IGZpcnN0LmZpbmRfZmlyc3RfYnlfdGFnKCJmYWlsdXJlIikKKyAgICAgICAgZm5vZGUuYXNzZXJ0
X2F0dHIobWVzc2FnZT0iRXhjZXB0aW9uOiBDYWxsIEV4Y2VwdGlvbiIpCisgICAgICAgIHNub2Rl
ID0gc2Vjb25kLmZpbmRfZmlyc3RfYnlfdGFnKCJlcnJvciIpCisgICAgICAgIHNub2RlLmFzc2Vy
dF9hdHRyKG1lc3NhZ2U9InRlc3QgdGVhcmRvd24gZmFpbHVyZSIpCisKKyAgICBkZWYgdGVzdF9z
a2lwX2NvbnRhaW5zX25hbWVfcmVhc29uKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBk
ZWYgdGVzdF9za2lwKCk6CisgICAgICAgICAgICAgICAgcHl0ZXN0LnNraXAoImhlbGxvMjMiKQor
ICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCwgZG9tID0gcnVuYW5kcGFyc2UodGVzdGRpcikK
KyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorICAgICAgICBub2RlID0gZG9tLmZpbmRf
Zmlyc3RfYnlfdGFnKCJ0ZXN0c3VpdGUiKQorICAgICAgICBub2RlLmFzc2VydF9hdHRyKHNraXBz
PTEpCisgICAgICAgIHRub2RlID0gbm9kZS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdGNhc2UiKQor
ICAgICAgICB0bm9kZS5hc3NlcnRfYXR0cigKKyAgICAgICAgICAgIGZpbGU9InRlc3Rfc2tpcF9j
b250YWluc19uYW1lX3JlYXNvbi5weSIsCisgICAgICAgICAgICBsaW5lPSIxIiwKKyAgICAgICAg
ICAgIGNsYXNzbmFtZT0idGVzdF9za2lwX2NvbnRhaW5zX25hbWVfcmVhc29uIiwKKyAgICAgICAg
ICAgIG5hbWU9InRlc3Rfc2tpcCIpCisgICAgICAgIHNub2RlID0gdG5vZGUuZmluZF9maXJzdF9i
eV90YWcoInNraXBwZWQiKQorICAgICAgICBzbm9kZS5hc3NlcnRfYXR0cih0eXBlPSJweXRlc3Qu
c2tpcCIsIG1lc3NhZ2U9ImhlbGxvMjMiLCApCisKKyAgICBkZWYgdGVzdF9tYXJrX3NraXBfY29u
dGFpbnNfbmFtZV9yZWFzb24oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3Qu
bWFyay5za2lwKHJlYXNvbj0iaGVsbG8yNCIpCisgICAgICAgICAgICBkZWYgdGVzdF9za2lwKCk6
CisgICAgICAgICAgICAgICAgYXNzZXJ0IFRydWUKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1
bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKHRlc3RkaXIpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0
ID09IDAKKyAgICAgICAgbm9kZSA9IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdHN1aXRlIikK
KyAgICAgICAgbm9kZS5hc3NlcnRfYXR0cihza2lwcz0xKQorICAgICAgICB0bm9kZSA9IG5vZGUu
ZmluZF9maXJzdF9ieV90YWcoInRlc3RjYXNlIikKKyAgICAgICAgdG5vZGUuYXNzZXJ0X2F0dHIo
CisgICAgICAgICAgICBmaWxlPSJ0ZXN0X21hcmtfc2tpcF9jb250YWluc19uYW1lX3JlYXNvbi5w
eSIsCisgICAgICAgICAgICBsaW5lPSIxIiwKKyAgICAgICAgICAgIGNsYXNzbmFtZT0idGVzdF9t
YXJrX3NraXBfY29udGFpbnNfbmFtZV9yZWFzb24iLAorICAgICAgICAgICAgbmFtZT0idGVzdF9z
a2lwIikKKyAgICAgICAgc25vZGUgPSB0bm9kZS5maW5kX2ZpcnN0X2J5X3RhZygic2tpcHBlZCIp
CisgICAgICAgIHNub2RlLmFzc2VydF9hdHRyKHR5cGU9InB5dGVzdC5za2lwIiwgbWVzc2FnZT0i
aGVsbG8yNCIsICkKKworICAgIGRlZiB0ZXN0X21hcmtfc2tpcGlmX2NvbnRhaW5zX25hbWVfcmVh
c29uKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBHTE9CQUxfQ09ORElUSU9OID0gVHJ1
ZQorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnNraXBpZihHTE9CQUxfQ09ORElUSU9OLCByZWFz
b249ImhlbGxvMjUiKQorICAgICAgICAgICAgZGVmIHRlc3Rfc2tpcCgpOgorICAgICAgICAgICAg
ICAgIGFzc2VydCBUcnVlCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0LCBkb20gPSBydW5h
bmRwYXJzZSh0ZXN0ZGlyKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgICAg
IG5vZGUgPSBkb20uZmluZF9maXJzdF9ieV90YWcoInRlc3RzdWl0ZSIpCisgICAgICAgIG5vZGUu
YXNzZXJ0X2F0dHIoc2tpcHM9MSkKKyAgICAgICAgdG5vZGUgPSBub2RlLmZpbmRfZmlyc3RfYnlf
dGFnKCJ0ZXN0Y2FzZSIpCisgICAgICAgIHRub2RlLmFzc2VydF9hdHRyKAorICAgICAgICAgICAg
ZmlsZT0idGVzdF9tYXJrX3NraXBpZl9jb250YWluc19uYW1lX3JlYXNvbi5weSIsCisgICAgICAg
ICAgICBsaW5lPSIyIiwKKyAgICAgICAgICAgIGNsYXNzbmFtZT0idGVzdF9tYXJrX3NraXBpZl9j
b250YWluc19uYW1lX3JlYXNvbiIsCisgICAgICAgICAgICBuYW1lPSJ0ZXN0X3NraXAiKQorICAg
ICAgICBzbm9kZSA9IHRub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJza2lwcGVkIikKKyAgICAgICAg
c25vZGUuYXNzZXJ0X2F0dHIodHlwZT0icHl0ZXN0LnNraXAiLCBtZXNzYWdlPSJoZWxsbzI1Iiwg
KQorCisgICAgZGVmIHRlc3RfbWFya19za2lwX2RvZXNudF9jYXB0dXJlX291dHB1dChzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnNraXAocmVhc29uPSJmb28iKQor
ICAgICAgICAgICAgZGVmIHRlc3Rfc2tpcCgpOgorICAgICAgICAgICAgICAgIHByaW50KCJiYXIh
IikKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKHRlc3Rk
aXIpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICAgICAgbm9kZV94bWwgPSBk
b20uZmluZF9maXJzdF9ieV90YWcoInRlc3RzdWl0ZSIpLnRveG1sKCkKKyAgICAgICAgYXNzZXJ0
ICJiYXIhIiBub3QgaW4gbm9kZV94bWwKKworICAgIGRlZiB0ZXN0X2NsYXNzbmFtZV9pbnN0YW5j
ZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAg
ICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIHRlc3Rf
bWV0aG9kKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAiIiIp
CisgICAgICAgIHJlc3VsdCwgZG9tID0gcnVuYW5kcGFyc2UodGVzdGRpcikKKyAgICAgICAgYXNz
ZXJ0IHJlc3VsdC5yZXQKKyAgICAgICAgbm9kZSA9IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygidGVz
dHN1aXRlIikKKyAgICAgICAgbm9kZS5hc3NlcnRfYXR0cihmYWlsdXJlcz0xKQorICAgICAgICB0
bm9kZSA9IG5vZGUuZmluZF9maXJzdF9ieV90YWcoInRlc3RjYXNlIikKKyAgICAgICAgdG5vZGUu
YXNzZXJ0X2F0dHIoCisgICAgICAgICAgICBmaWxlPSJ0ZXN0X2NsYXNzbmFtZV9pbnN0YW5jZS5w
eSIsCisgICAgICAgICAgICBsaW5lPSIxIiwKKyAgICAgICAgICAgIGNsYXNzbmFtZT0idGVzdF9j
bGFzc25hbWVfaW5zdGFuY2UuVGVzdENsYXNzIiwKKyAgICAgICAgICAgIG5hbWU9InRlc3RfbWV0
aG9kIikKKworICAgIGRlZiB0ZXN0X2NsYXNzbmFtZV9uZXN0ZWRfZGlyKHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICBwID0gdGVzdGRpci50bXBkaXIuZW5zdXJlKCJzdWIiLCAidGVzdF9oZWxsby5w
eSIpCisgICAgICAgIHAud3JpdGUoImRlZiB0ZXN0X2Z1bmMoKTogMC8wIikKKyAgICAgICAgcmVz
dWx0LCBkb20gPSBydW5hbmRwYXJzZSh0ZXN0ZGlyKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJl
dAorICAgICAgICBub2RlID0gZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0c3VpdGUiKQorICAg
ICAgICBub2RlLmFzc2VydF9hdHRyKGZhaWx1cmVzPTEpCisgICAgICAgIHRub2RlID0gbm9kZS5m
aW5kX2ZpcnN0X2J5X3RhZygidGVzdGNhc2UiKQorICAgICAgICB0bm9kZS5hc3NlcnRfYXR0cigK
KyAgICAgICAgICAgIGZpbGU9b3MucGF0aC5qb2luKCJzdWIiLCAidGVzdF9oZWxsby5weSIpLAor
ICAgICAgICAgICAgbGluZT0iMCIsCisgICAgICAgICAgICBjbGFzc25hbWU9InN1Yi50ZXN0X2hl
bGxvIiwKKyAgICAgICAgICAgIG5hbWU9InRlc3RfZnVuYyIpCisKKyAgICBkZWYgdGVzdF9pbnRl
cm5hbF9lcnJvcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3Qo
ImRlZiBweXRlc3RfcnVudGVzdF9wcm90b2NvbCgpOiAwIC8gMCIpCisgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgiZGVmIHRlc3RfZnVuY3Rpb24oKTogcGFzcyIpCisgICAgICAgIHJlc3VsdCwg
ZG9tID0gcnVuYW5kcGFyc2UodGVzdGRpcikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQKKyAg
ICAgICAgbm9kZSA9IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdHN1aXRlIikKKyAgICAgICAg
bm9kZS5hc3NlcnRfYXR0cihlcnJvcnM9MSwgdGVzdHM9MSkKKyAgICAgICAgdG5vZGUgPSBub2Rl
LmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0Y2FzZSIpCisgICAgICAgIHRub2RlLmFzc2VydF9hdHRy
KGNsYXNzbmFtZT0icHl0ZXN0IiwgbmFtZT0iaW50ZXJuYWwiKQorICAgICAgICBmbm9kZSA9IHRu
b2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJlcnJvciIpCisgICAgICAgIGZub2RlLmFzc2VydF9hdHRy
KG1lc3NhZ2U9ImludGVybmFsIGVycm9yIikKKyAgICAgICAgYXNzZXJ0ICJEaXZpc2lvbiIgaW4g
Zm5vZGUudG94bWwoKQorCisgICAgZGVmIHRlc3RfZmFpbHVyZV9mdW5jdGlvbihzZWxmLCB0ZXN0
ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0
IHN5cworICAgICAgICAgICAgZGVmIHRlc3RfZmFpbCgpOgorICAgICAgICAgICAgICAgIHByaW50
ICgiaGVsbG8tc3Rkb3V0IikKKyAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJoZWxs
by1zdGRlcnJcXG4iKQorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoNDIpCisgICAg
ICAgICIiIikKKworICAgICAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKHRlc3RkaXIpCisg
ICAgICAgIGFzc2VydCByZXN1bHQucmV0CisgICAgICAgIG5vZGUgPSBkb20uZmluZF9maXJzdF9i
eV90YWcoInRlc3RzdWl0ZSIpCisgICAgICAgIG5vZGUuYXNzZXJ0X2F0dHIoZmFpbHVyZXM9MSwg
dGVzdHM9MSkKKyAgICAgICAgdG5vZGUgPSBub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0Y2Fz
ZSIpCisgICAgICAgIHRub2RlLmFzc2VydF9hdHRyKAorICAgICAgICAgICAgZmlsZT0idGVzdF9m
YWlsdXJlX2Z1bmN0aW9uLnB5IiwKKyAgICAgICAgICAgIGxpbmU9IjEiLAorICAgICAgICAgICAg
Y2xhc3NuYW1lPSJ0ZXN0X2ZhaWx1cmVfZnVuY3Rpb24iLAorICAgICAgICAgICAgbmFtZT0idGVz
dF9mYWlsIikKKyAgICAgICAgZm5vZGUgPSB0bm9kZS5maW5kX2ZpcnN0X2J5X3RhZygiZmFpbHVy
ZSIpCisgICAgICAgIGZub2RlLmFzc2VydF9hdHRyKG1lc3NhZ2U9IlZhbHVlRXJyb3I6IDQyIikK
KyAgICAgICAgYXNzZXJ0ICJWYWx1ZUVycm9yIiBpbiBmbm9kZS50b3htbCgpCisgICAgICAgIHN5
c3RlbW91dCA9IGZub2RlLm5leHRfc2llYmxpbmcKKyAgICAgICAgYXNzZXJ0IHN5c3RlbW91dC50
YWcgPT0gInN5c3RlbS1vdXQiCisgICAgICAgIGFzc2VydCAiaGVsbG8tc3Rkb3V0IiBpbiBzeXN0
ZW1vdXQudG94bWwoKQorICAgICAgICBzeXN0ZW1lcnIgPSBzeXN0ZW1vdXQubmV4dF9zaWVibGlu
ZworICAgICAgICBhc3NlcnQgc3lzdGVtZXJyLnRhZyA9PSAic3lzdGVtLWVyciIKKyAgICAgICAg
YXNzZXJ0ICJoZWxsby1zdGRlcnIiIGluIHN5c3RlbWVyci50b3htbCgpCisKKyAgICBkZWYgdGVz
dF9mYWlsdXJlX3ZlcmJvc2VfbWVzc2FnZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRp
ci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHN5cworICAgICAgICAgICAgZGVm
IHRlc3RfZmFpbCgpOgorICAgICAgICAgICAgICAgIGFzc2VydCAwLCAiQW4gZXJyb3IiCisgICAg
ICAgICIiIikKKworICAgICAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKHRlc3RkaXIpCisg
ICAgICAgIG5vZGUgPSBkb20uZmluZF9maXJzdF9ieV90YWcoInRlc3RzdWl0ZSIpCisgICAgICAg
IHRub2RlID0gbm9kZS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdGNhc2UiKQorICAgICAgICBmbm9k
ZSA9IHRub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJmYWlsdXJlIikKKyAgICAgICAgZm5vZGUuYXNz
ZXJ0X2F0dHIobWVzc2FnZT0iQXNzZXJ0aW9uRXJyb3I6IEFuIGVycm9yIGFzc2VydCAwIikKKwor
ICAgIGRlZiB0ZXN0X2ZhaWx1cmVfZXNjYXBlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAg
ICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2FyZzEnLCAiPCYnIiwgaWRzPSI8JiciKQorICAg
ICAgICAgICAgZGVmIHRlc3RfZnVuYyhhcmcxKToKKyAgICAgICAgICAgICAgICBwcmludChhcmcx
KQorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0
LCBkb20gPSBydW5hbmRwYXJzZSh0ZXN0ZGlyKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldAor
ICAgICAgICBub2RlID0gZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0c3VpdGUiKQorICAgICAg
ICBub2RlLmFzc2VydF9hdHRyKGZhaWx1cmVzPTMsIHRlc3RzPTMpCisKKyAgICAgICAgZm9yIGlu
ZGV4LCBjaGFyIGluIGVudW1lcmF0ZSgiPCYnIik6CisKKyAgICAgICAgICAgIHRub2RlID0gbm9k
ZS5maW5kX250aF9ieV90YWcoInRlc3RjYXNlIiwgaW5kZXgpCisgICAgICAgICAgICB0bm9kZS5h
c3NlcnRfYXR0cigKKyAgICAgICAgICAgICAgICBmaWxlPSJ0ZXN0X2ZhaWx1cmVfZXNjYXBlLnB5
IiwKKyAgICAgICAgICAgICAgICBsaW5lPSIxIiwKKyAgICAgICAgICAgICAgICBjbGFzc25hbWU9
InRlc3RfZmFpbHVyZV9lc2NhcGUiLAorICAgICAgICAgICAgICAgIG5hbWU9InRlc3RfZnVuY1sl
c10iICUgY2hhcikKKyAgICAgICAgICAgIHN5c291dCA9IHRub2RlLmZpbmRfZmlyc3RfYnlfdGFn
KCdzeXN0ZW0tb3V0JykKKyAgICAgICAgICAgIHRleHQgPSBzeXNvdXQudGV4dAorICAgICAgICAg
ICAgYXNzZXJ0IHRleHQgPT0gJyVzXG4nICUgY2hhcgorCisgICAgZGVmIHRlc3RfanVuaXRfcHJl
Zml4aW5nKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAg
ICAgICAgICAgIGNsYXNzIFRlc3RIZWxsbyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0
ZXN0X2hlbGxvKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikK
KyAgICAgICAgcmVzdWx0LCBkb20gPSBydW5hbmRwYXJzZSh0ZXN0ZGlyLCAiLS1qdW5pdHByZWZp
eD14eXoiKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldAorICAgICAgICBub2RlID0gZG9tLmZp
bmRfZmlyc3RfYnlfdGFnKCJ0ZXN0c3VpdGUiKQorICAgICAgICBub2RlLmFzc2VydF9hdHRyKGZh
aWx1cmVzPTEsIHRlc3RzPTIpCisgICAgICAgIHRub2RlID0gbm9kZS5maW5kX2ZpcnN0X2J5X3Rh
ZygidGVzdGNhc2UiKQorICAgICAgICB0bm9kZS5hc3NlcnRfYXR0cigKKyAgICAgICAgICAgIGZp
bGU9InRlc3RfanVuaXRfcHJlZml4aW5nLnB5IiwKKyAgICAgICAgICAgIGxpbmU9IjAiLAorICAg
ICAgICAgICAgY2xhc3NuYW1lPSJ4eXoudGVzdF9qdW5pdF9wcmVmaXhpbmciLAorICAgICAgICAg
ICAgbmFtZT0idGVzdF9mdW5jIikKKyAgICAgICAgdG5vZGUgPSBub2RlLmZpbmRfbnRoX2J5X3Rh
ZygidGVzdGNhc2UiLCAxKQorICAgICAgICB0bm9kZS5hc3NlcnRfYXR0cigKKyAgICAgICAgICAg
IGZpbGU9InRlc3RfanVuaXRfcHJlZml4aW5nLnB5IiwKKyAgICAgICAgICAgIGxpbmU9IjMiLAor
ICAgICAgICAgICAgY2xhc3NuYW1lPSJ4eXoudGVzdF9qdW5pdF9wcmVmaXhpbmcuIgorICAgICAg
ICAgICAgIlRlc3RIZWxsbyIsCisgICAgICAgICAgICBuYW1lPSJ0ZXN0X2hlbGxvIikKKworICAg
IGRlZiB0ZXN0X3hmYWlsdXJlX2Z1bmN0aW9uKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAg
ICBkZWYgdGVzdF94ZmFpbCgpOgorICAgICAgICAgICAgICAgIHB5dGVzdC54ZmFpbCgiNDIiKQor
ICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCwgZG9tID0gcnVuYW5kcGFyc2UodGVzdGRpcikK
KyAgICAgICAgYXNzZXJ0IG5vdCByZXN1bHQucmV0CisgICAgICAgIG5vZGUgPSBkb20uZmluZF9m
aXJzdF9ieV90YWcoInRlc3RzdWl0ZSIpCisgICAgICAgIG5vZGUuYXNzZXJ0X2F0dHIoc2tpcHM9
MSwgdGVzdHM9MSkKKyAgICAgICAgdG5vZGUgPSBub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0
Y2FzZSIpCisgICAgICAgIHRub2RlLmFzc2VydF9hdHRyKAorICAgICAgICAgICAgZmlsZT0idGVz
dF94ZmFpbHVyZV9mdW5jdGlvbi5weSIsCisgICAgICAgICAgICBsaW5lPSIxIiwKKyAgICAgICAg
ICAgIGNsYXNzbmFtZT0idGVzdF94ZmFpbHVyZV9mdW5jdGlvbiIsCisgICAgICAgICAgICBuYW1l
PSJ0ZXN0X3hmYWlsIikKKyAgICAgICAgZm5vZGUgPSB0bm9kZS5maW5kX2ZpcnN0X2J5X3RhZygi
c2tpcHBlZCIpCisgICAgICAgIGZub2RlLmFzc2VydF9hdHRyKG1lc3NhZ2U9ImV4cGVjdGVkIHRl
c3QgZmFpbHVyZSIpCisgICAgICAgICMgYXNzZXJ0ICJWYWx1ZUVycm9yIiBpbiBmbm9kZS50b3ht
bCgpCisKKyAgICBkZWYgdGVzdF94ZmFpbHVyZV94cGFzcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAg
ICAgICAgICAgQHB5dGVzdC5tYXJrLnhmYWlsCisgICAgICAgICAgICBkZWYgdGVzdF94cGFzcygp
OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQsIGRv
bSA9IHJ1bmFuZHBhcnNlKHRlc3RkaXIpCisgICAgICAgICMgYXNzZXJ0IHJlc3VsdC5yZXQKKyAg
ICAgICAgbm9kZSA9IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdHN1aXRlIikKKyAgICAgICAg
bm9kZS5hc3NlcnRfYXR0cihza2lwcz0wLCB0ZXN0cz0xKQorICAgICAgICB0bm9kZSA9IG5vZGUu
ZmluZF9maXJzdF9ieV90YWcoInRlc3RjYXNlIikKKyAgICAgICAgdG5vZGUuYXNzZXJ0X2F0dHIo
CisgICAgICAgICAgICBmaWxlPSJ0ZXN0X3hmYWlsdXJlX3hwYXNzLnB5IiwKKyAgICAgICAgICAg
IGxpbmU9IjEiLAorICAgICAgICAgICAgY2xhc3NuYW1lPSJ0ZXN0X3hmYWlsdXJlX3hwYXNzIiwK
KyAgICAgICAgICAgIG5hbWU9InRlc3RfeHBhc3MiKQorCisgICAgZGVmIHRlc3RfeGZhaWx1cmVf
eHBhc3Nfc3RyaWN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUo
IiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsu
eGZhaWwoc3RyaWN0PVRydWUsIHJlYXNvbj0iVGhpcyBuZWVkcyB0byBmYWlsISIpCisgICAgICAg
ICAgICBkZWYgdGVzdF94cGFzcygpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIi
KQorICAgICAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKHRlc3RkaXIpCisgICAgICAgICMg
YXNzZXJ0IHJlc3VsdC5yZXQKKyAgICAgICAgbm9kZSA9IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygi
dGVzdHN1aXRlIikKKyAgICAgICAgbm9kZS5hc3NlcnRfYXR0cihza2lwcz0wLCB0ZXN0cz0xKQor
ICAgICAgICB0bm9kZSA9IG5vZGUuZmluZF9maXJzdF9ieV90YWcoInRlc3RjYXNlIikKKyAgICAg
ICAgdG5vZGUuYXNzZXJ0X2F0dHIoCisgICAgICAgICAgICBmaWxlPSJ0ZXN0X3hmYWlsdXJlX3hw
YXNzX3N0cmljdC5weSIsCisgICAgICAgICAgICBsaW5lPSIxIiwKKyAgICAgICAgICAgIGNsYXNz
bmFtZT0idGVzdF94ZmFpbHVyZV94cGFzc19zdHJpY3QiLAorICAgICAgICAgICAgbmFtZT0idGVz
dF94cGFzcyIpCisgICAgICAgIGZub2RlID0gdG5vZGUuZmluZF9maXJzdF9ieV90YWcoImZhaWx1
cmUiKQorICAgICAgICBmbm9kZS5hc3NlcnRfYXR0cihtZXNzYWdlPSJbWFBBU1Moc3RyaWN0KV0g
VGhpcyBuZWVkcyB0byBmYWlsISIpCisKKyAgICBkZWYgdGVzdF9jb2xsZWN0X2Vycm9yKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoInN5bnRheCBlcnJvciIpCisg
ICAgICAgIHJlc3VsdCwgZG9tID0gcnVuYW5kcGFyc2UodGVzdGRpcikKKyAgICAgICAgYXNzZXJ0
IHJlc3VsdC5yZXQKKyAgICAgICAgbm9kZSA9IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdHN1
aXRlIikKKyAgICAgICAgbm9kZS5hc3NlcnRfYXR0cihlcnJvcnM9MSwgdGVzdHM9MSkKKyAgICAg
ICAgdG5vZGUgPSBub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0Y2FzZSIpCisgICAgICAgIHRu
b2RlLmFzc2VydF9hdHRyKAorICAgICAgICAgICAgZmlsZT0idGVzdF9jb2xsZWN0X2Vycm9yLnB5
IiwKKyAgICAgICAgICAgIG5hbWU9InRlc3RfY29sbGVjdF9lcnJvciIpCisgICAgICAgIGFzc2Vy
dCB0bm9kZVsibGluZSJdIGlzIE5vbmUKKyAgICAgICAgZm5vZGUgPSB0bm9kZS5maW5kX2ZpcnN0
X2J5X3RhZygiZXJyb3IiKQorICAgICAgICBmbm9kZS5hc3NlcnRfYXR0cihtZXNzYWdlPSJjb2xs
ZWN0aW9uIGZhaWx1cmUiKQorICAgICAgICBhc3NlcnQgIlN5bnRheEVycm9yIiBpbiBmbm9kZS50
b3htbCgpCisKKyAgICBkZWYgdGVzdF91bmljb2RlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB2
YWx1ZSA9ICdoeFx4YzRceDg1XHhjNFx4ODdcbicKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxl
KCIiIgorICAgICAgICAgICAgIyBjb2Rpbmc6IGxhdGluMQorICAgICAgICAgICAgZGVmIHRlc3Rf
aGVsbG8oKToKKyAgICAgICAgICAgICAgICBwcmludCAoJXIpCisgICAgICAgICAgICAgICAgYXNz
ZXJ0IDAKKyAgICAgICAgIiIiICUgdmFsdWUpCisgICAgICAgIHJlc3VsdCwgZG9tID0gcnVuYW5k
cGFyc2UodGVzdGRpcikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMQorICAgICAgICB0
bm9kZSA9IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdGNhc2UiKQorICAgICAgICBmbm9kZSA9
IHRub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJmYWlsdXJlIikKKyAgICAgICAgaWYgbm90IHN5cy5w
bGF0Zm9ybS5zdGFydHN3aXRoKCJqYXZhIik6CisgICAgICAgICAgICBhc3NlcnQgImh4IiBpbiBm
bm9kZS50b3htbCgpCisKKyAgICBkZWYgdGVzdF9hc3NlcnRpb25fYmluY2hhcnMoc2VsZiwgdGVz
dGRpcik6CisgICAgICAgICIiInRoaXMgdGVzdCBkaWQgZmFpbCB3aGVuIHRoZSBlc2NhcGluZyB3
YXNudCBzdHJpY3QiIiIKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorCisgICAgICAg
ICAgICBNMSA9ICdceDAxXHgwMlx4MDNceDA0JworICAgICAgICAgICAgTTIgPSAnXHgwMVx4MDJc
eDAzXHgwNScKKworICAgICAgICAgICAgZGVmIHRlc3Rfc3RyX2NvbXBhcmUoKToKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgTTEgPT0gTTIKKyAgICAgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0
LCBkb20gPSBydW5hbmRwYXJzZSh0ZXN0ZGlyKQorICAgICAgICBwcmludChkb20udG94bWwoKSkK
KworICAgIGRlZiB0ZXN0X3Bhc3NfY2FwdHVyZXNfc3Rkb3V0KHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9wYXNzKCk6
CisgICAgICAgICAgICAgICAgcHJpbnQoJ2hlbGxvLXN0ZG91dCcpCisgICAgICAgICIiIikKKyAg
ICAgICAgcmVzdWx0LCBkb20gPSBydW5hbmRwYXJzZSh0ZXN0ZGlyKQorICAgICAgICBub2RlID0g
ZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0c3VpdGUiKQorICAgICAgICBwbm9kZSA9IG5vZGUu
ZmluZF9maXJzdF9ieV90YWcoInRlc3RjYXNlIikKKyAgICAgICAgc3lzdGVtb3V0ID0gcG5vZGUu
ZmluZF9maXJzdF9ieV90YWcoInN5c3RlbS1vdXQiKQorICAgICAgICBhc3NlcnQgImhlbGxvLXN0
ZG91dCIgaW4gc3lzdGVtb3V0LnRveG1sKCkKKworICAgIGRlZiB0ZXN0X3Bhc3NfY2FwdHVyZXNf
c3RkZXJyKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgICAgICBpbXBvcnQgc3lzCisgICAgICAgICAgICBkZWYgdGVzdF9wYXNzKCk6CisgICAg
ICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgnaGVsbG8tc3RkZXJyJykKKyAgICAgICAgIiIi
KQorICAgICAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKHRlc3RkaXIpCisgICAgICAgIG5v
ZGUgPSBkb20uZmluZF9maXJzdF9ieV90YWcoInRlc3RzdWl0ZSIpCisgICAgICAgIHBub2RlID0g
bm9kZS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdGNhc2UiKQorICAgICAgICBzeXN0ZW1vdXQgPSBw
bm9kZS5maW5kX2ZpcnN0X2J5X3RhZygic3lzdGVtLWVyciIpCisgICAgICAgIGFzc2VydCAiaGVs
bG8tc3RkZXJyIiBpbiBzeXN0ZW1vdXQudG94bWwoKQorCisgICAgZGVmIHRlc3Rfc2V0dXBfZXJy
b3JfY2FwdHVyZXNfc3Rkb3V0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRl
c3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGFyZyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAg
ICBwcmludCgnaGVsbG8tc3Rkb3V0JykKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCkKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGFyZyk6CisgICAgICAgICAgICAgICAg
cGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCwgZG9tID0gcnVuYW5kcGFyc2UodGVz
dGRpcikKKyAgICAgICAgbm9kZSA9IGRvbS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdHN1aXRlIikK
KyAgICAgICAgcG5vZGUgPSBub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0Y2FzZSIpCisgICAg
ICAgIHN5c3RlbW91dCA9IHBub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJzeXN0ZW0tb3V0IikKKyAg
ICAgICAgYXNzZXJ0ICJoZWxsby1zdGRvdXQiIGluIHN5c3RlbW91dC50b3htbCgpCisKKyAgICBk
ZWYgdGVzdF9zZXR1cF9lcnJvcl9jYXB0dXJlc19zdGRlcnIoc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBzeXMKKyAgICAg
ICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAg
ICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3Jp
dGUoJ2hlbGxvLXN0ZGVycicpCisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigpCisg
ICAgICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihhcmcpOgorICAgICAgICAgICAgICAgIHBhc3MK
KyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKHRlc3RkaXIp
CisgICAgICAgIG5vZGUgPSBkb20uZmluZF9maXJzdF9ieV90YWcoInRlc3RzdWl0ZSIpCisgICAg
ICAgIHBub2RlID0gbm9kZS5maW5kX2ZpcnN0X2J5X3RhZygidGVzdGNhc2UiKQorICAgICAgICBz
eXN0ZW1vdXQgPSBwbm9kZS5maW5kX2ZpcnN0X2J5X3RhZygic3lzdGVtLWVyciIpCisgICAgICAg
IGFzc2VydCAiaGVsbG8tc3RkZXJyIiBpbiBzeXN0ZW1vdXQudG94bWwoKQorCisgICAgZGVmIHRl
c3RfYXZvaWRfZG91YmxlX3N0ZG91dChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5t
YWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHN5cworICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBh
cmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICAgeWllbGQKKyAgICAgICAgICAgICAgICBzeXMu
c3Rkb3V0LndyaXRlKCdoZWxsby1zdGRvdXQgdGVhcmRvd24nKQorICAgICAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoKQorICAgICAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oYXJnKToKKyAg
ICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCdoZWxsby1zdGRvdXQgY2FsbCcpCisgICAg
ICAgICIiIikKKyAgICAgICAgcmVzdWx0LCBkb20gPSBydW5hbmRwYXJzZSh0ZXN0ZGlyKQorICAg
ICAgICBub2RlID0gZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0c3VpdGUiKQorICAgICAgICBw
bm9kZSA9IG5vZGUuZmluZF9maXJzdF9ieV90YWcoInRlc3RjYXNlIikKKyAgICAgICAgc3lzdGVt
b3V0ID0gcG5vZGUuZmluZF9maXJzdF9ieV90YWcoInN5c3RlbS1vdXQiKQorICAgICAgICBhc3Nl
cnQgImhlbGxvLXN0ZG91dCBjYWxsIiBpbiBzeXN0ZW1vdXQudG94bWwoKQorICAgICAgICBhc3Nl
cnQgImhlbGxvLXN0ZG91dCB0ZWFyZG93biIgaW4gc3lzdGVtb3V0LnRveG1sKCkKKworCitkZWYg
dGVzdF9tYW5nbGVfdGVzdF9hZGRyZXNzKCk6CisgICAgZnJvbSBfcHl0ZXN0Lmp1bml0eG1sIGlt
cG9ydCBtYW5nbGVfdGVzdF9hZGRyZXNzCisgICAgYWRkcmVzcyA9ICc6Oicuam9pbigKKyAgICAg
ICAgWyJhL215LnB5LnRoaW5nLnB5IiwgIkNsYXNzIiwgIigpIiwgIm1ldGhvZCIsICJbYS0xLTo6
XSJdKQorICAgIG5ld25hbWVzID0gbWFuZ2xlX3Rlc3RfYWRkcmVzcyhhZGRyZXNzKQorICAgIGFz
c2VydCBuZXduYW1lcyA9PSBbImEubXkucHkudGhpbmciLCAiQ2xhc3MiLCAibWV0aG9kIiwgIlth
LTEtOjpdIl0KKworCitkZWYgdGVzdF9kb250X2NvbmZpZ3VyZV9vbl9zbGF2ZXModG1wZGlyKToK
KyAgICBnb3R0ZW4gPSBbXQorCisgICAgY2xhc3MgRmFrZUNvbmZpZyhvYmplY3QpOgorICAgICAg
ICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgICAgICBzZWxmLnBsdWdpbm1hbmFnZXIgPSBz
ZWxmCisgICAgICAgICAgICBzZWxmLm9wdGlvbiA9IHNlbGYKKworICAgICAgICBkZWYgZ2V0aW5p
KHNlbGYsIG5hbWUpOgorICAgICAgICAgICAgcmV0dXJuICJweXRlc3QiCisKKyAgICAgICAganVu
aXRwcmVmaXggPSBOb25lCisgICAgICAgICMgWFhYOiBzaG91bGRudCBuZWVkIHRtcGRpciA/Cisg
ICAgICAgIHhtbHBhdGggPSBzdHIodG1wZGlyLmpvaW4oJ2p1bml4LnhtbCcpKQorICAgICAgICBy
ZWdpc3RlciA9IGdvdHRlbi5hcHBlbmQKKworICAgIGZha2VfY29uZmlnID0gRmFrZUNvbmZpZygp
CisgICAgZnJvbSBfcHl0ZXN0IGltcG9ydCBqdW5pdHhtbAorICAgIGp1bml0eG1sLnB5dGVzdF9j
b25maWd1cmUoZmFrZV9jb25maWcpCisgICAgYXNzZXJ0IGxlbihnb3R0ZW4pID09IDEKKyAgICBG
YWtlQ29uZmlnLnNsYXZlaW5wdXQgPSBOb25lCisgICAganVuaXR4bWwucHl0ZXN0X2NvbmZpZ3Vy
ZShmYWtlX2NvbmZpZykKKyAgICBhc3NlcnQgbGVuKGdvdHRlbikgPT0gMQorCisKK2NsYXNzIFRl
c3ROb25QeXRob24ob2JqZWN0KToKKyAgICBkZWYgdGVzdF9zdW1taW5nX3NpbXBsZShzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBkZWYgcHl0ZXN0X2NvbGxlY3RfZmlsZShwYXRoLCBw
YXJlbnQpOgorICAgICAgICAgICAgICAgIGlmIHBhdGguZXh0ID09ICIueHl6IjoKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIE15SXRlbShwYXRoLCBwYXJlbnQpCisgICAgICAgICAgICBjbGFz
cyBNeUl0ZW0ocHl0ZXN0Lkl0ZW0pOgorICAgICAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBwYXRoLCBwYXJlbnQpOgorICAgICAgICAgICAgICAgICAgICBzdXBlcihNeUl0ZW0sIHNlbGYp
Ll9faW5pdF9fKHBhdGguYmFzZW5hbWUsIHBhcmVudCkKKyAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5mc3BhdGggPSBwYXRoCisgICAgICAgICAgICAgICAgZGVmIHJ1bnRlc3Qoc2VsZik6CisgICAg
ICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoNDIpCisgICAgICAgICAgICAgICAgZGVm
IHJlcHJfZmFpbHVyZShzZWxmLCBleGNpbmZvKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
ICJjdXN0b20gaXRlbSBydW50ZXN0IGZhaWxlZCIKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0
ZGlyLnRtcGRpci5qb2luKCJteWZpbGUueHl6Iikud3JpdGUoImhlbGxvIikKKyAgICAgICAgcmVz
dWx0LCBkb20gPSBydW5hbmRwYXJzZSh0ZXN0ZGlyKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJl
dAorICAgICAgICBub2RlID0gZG9tLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0c3VpdGUiKQorICAg
ICAgICBub2RlLmFzc2VydF9hdHRyKGVycm9ycz0wLCBmYWlsdXJlcz0xLCBza2lwcz0wLCB0ZXN0
cz0xKQorICAgICAgICB0bm9kZSA9IG5vZGUuZmluZF9maXJzdF9ieV90YWcoInRlc3RjYXNlIikK
KyAgICAgICAgdG5vZGUuYXNzZXJ0X2F0dHIobmFtZT0ibXlmaWxlLnh5eiIpCisgICAgICAgIGZu
b2RlID0gdG5vZGUuZmluZF9maXJzdF9ieV90YWcoImZhaWx1cmUiKQorICAgICAgICBmbm9kZS5h
c3NlcnRfYXR0cihtZXNzYWdlPSJjdXN0b20gaXRlbSBydW50ZXN0IGZhaWxlZCIpCisgICAgICAg
IGFzc2VydCAiY3VzdG9tIGl0ZW0gcnVudGVzdCBmYWlsZWQiIGluIGZub2RlLnRveG1sKCkKKwor
CitkZWYgdGVzdF9udWxsYnl0ZSh0ZXN0ZGlyKToKKyAgICAjIEEgbnVsbCBieXRlIGNhbiBub3Qg
b2NjdXIgaW4gWE1MIChzZWUgc2VjdGlvbiAyLjIgb2YgdGhlIHNwZWMpCisgICAgdGVzdGRpci5t
YWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgc3lzCisgICAgICAgIGRlZiB0ZXN0X3ByaW50
X251bGxieXRlKCk6CisgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCdIZXJlIHRoZSBudWxs
IC0tPicgKyBjaHIoMCkgKyAnPC0tJykKKyAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoJ0lu
IHJlcHIgZm9ybSAtLT4nICsgcmVwcihjaHIoMCkpICsgJzwtLScpCisgICAgICAgICAgICBhc3Nl
cnQgRmFsc2UKKyAgICAiIiIpCisgICAgeG1sZiA9IHRlc3RkaXIudG1wZGlyLmpvaW4oJ2p1bml0
LnhtbCcpCisgICAgdGVzdGRpci5ydW5weXRlc3QoJy0tanVuaXR4bWw9JXMnICUgeG1sZikKKyAg
ICB0ZXh0ID0geG1sZi5yZWFkKCkKKyAgICBhc3NlcnQgJ1x4MDAnIG5vdCBpbiB0ZXh0CisgICAg
YXNzZXJ0ICcjeDAwJyBpbiB0ZXh0CisKKworZGVmIHRlc3RfbnVsbGJ5dGVfcmVwbGFjZSh0ZXN0
ZGlyKToKKyAgICAjIENoZWNrIGlmIHRoZSBudWxsIGJ5dGUgZ2V0cyByZXBsYWNlZAorICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IHN5cworICAgICAgICBkZWYgdGVz
dF9wcmludF9udWxsYnl0ZSgpOgorICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgnSGVyZSB0
aGUgbnVsbCAtLT4nICsgY2hyKDApICsgJzwtLScpCisgICAgICAgICAgICBzeXMuc3Rkb3V0Lndy
aXRlKCdJbiByZXByIGZvcm0gLS0+JyArIHJlcHIoY2hyKDApKSArICc8LS0nKQorICAgICAgICAg
ICAgYXNzZXJ0IEZhbHNlCisgICAgIiIiKQorICAgIHhtbGYgPSB0ZXN0ZGlyLnRtcGRpci5qb2lu
KCdqdW5pdC54bWwnKQorICAgIHRlc3RkaXIucnVucHl0ZXN0KCctLWp1bml0eG1sPSVzJyAlIHht
bGYpCisgICAgdGV4dCA9IHhtbGYucmVhZCgpCisgICAgYXNzZXJ0ICcjeDAnIGluIHRleHQKKwor
CitkZWYgdGVzdF9pbnZhbGlkX3htbF9lc2NhcGUoKToKKyAgICAjIFRlc3Qgc29tZSBtb3JlIGlu
dmFsaWQgeG1sIGNoYXJzLCB0aGUgZnVsbCByYW5nZSBzaG91bGQgYmUKKyAgICAjIHRlc3RlZCBy
ZWFsbHkgYnV0IGxldCdzIGp1c3QgdGhlc3QgdGhlIGVkZ2VzIG9mIHRoZSByYW5nZXMKKyAgICAj
IGludGVhZC4KKyAgICAjIFhYWCBUaGlzIG9ubHkgdGVzdHMgbG93IHVuaWNvZGUgY2hhcmFjdGVy
IHBvaW50cyBmb3Igbm93IGFzCisgICAgIyAgICAgdGhlcmUgYXJlIHNvbWUgaXNzdWVzIHdpdGgg
dGhlIHRlc3RpbmcgaW5mcmFzdHJ1Y3R1cmUgZm9yCisgICAgIyAgICAgdGhlIGhpZ2hlciBvbmVz
LgorICAgICMgWFhYIFRlc3RpbmcgMHhEIChccikgaXMgdHJpY2t5IGFzIGl0IG92ZXJ3cml0ZXMg
dGhlIGp1c3Qgd3JpdHRlbgorICAgICMgICAgIGxpbmUgaW4gdGhlIG91dHB1dCwgc28gd2Ugc2tp
cCBpdCB0b28uCisgICAgZ2xvYmFsIHVuaWNocgorICAgIHRyeToKKyAgICAgICAgdW5pY2hyKDY1
KQorICAgIGV4Y2VwdCBOYW1lRXJyb3I6CisgICAgICAgIHVuaWNociA9IGNocgorICAgIGludmFs
aWQgPSAoMHgwMCwgMHgxLCAweEIsIDB4QywgMHhFLCAweDE5LCAyNywgICMgaXNzdWUgIzEyNgor
ICAgICAgICAgICAgICAgMHhEODAwLCAweERGRkYsIDB4RkZGRSwgMHgwRkZGRikgICMgLCAweDEx
MDAwMCkKKyAgICB2YWxpZCA9ICgweDksIDB4QSwgMHgyMCwgKQorICAgICMgMHhELCAweEQ3RkYs
IDB4RTAwMCwgMHhGRkZELCAweDEwMDAwLCAweDEwRkZGRikKKworICAgIGZyb20gX3B5dGVzdC5q
dW5pdHhtbCBpbXBvcnQgYmluX3htbF9lc2NhcGUKKworICAgIGZvciBpIGluIGludmFsaWQ6Cisg
ICAgICAgIGdvdCA9IGJpbl94bWxfZXNjYXBlKHVuaWNocihpKSkudW5pb2JqCisgICAgICAgIGlm
IGkgPD0gMHhGRjoKKyAgICAgICAgICAgIGV4cGVjdGVkID0gJyN4JTAyWCcgJSBpCisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICBleHBlY3RlZCA9ICcjeCUwNFgnICUgaQorICAgICAgICBhc3Nl
cnQgZ290ID09IGV4cGVjdGVkCisgICAgZm9yIGkgaW4gdmFsaWQ6CisgICAgICAgIGFzc2VydCBj
aHIoaSkgPT0gYmluX3htbF9lc2NhcGUodW5pY2hyKGkpKS51bmlvYmoKKworCitkZWYgdGVzdF9s
b2d4bWxfcGF0aF9leHBhbnNpb24odG1wZGlyLCBtb25rZXlwYXRjaCk6CisgICAgaG9tZV90aWxk
ZSA9IHB5LnBhdGgubG9jYWwob3MucGF0aC5leHBhbmR1c2VyKCd+JykpLmpvaW4oJ3Rlc3QueG1s
JykKKworICAgIHhtbF90aWxkZSA9IExvZ1hNTCgnfiVzdGVzdC54bWwnICUgdG1wZGlyLnNlcCwg
Tm9uZSkKKyAgICBhc3NlcnQgeG1sX3RpbGRlLmxvZ2ZpbGUgPT0gaG9tZV90aWxkZQorCisgICAg
IyB0aGlzIGlzIGhlcmUgZm9yIHdoZW4gJEhPTUUgaXMgbm90IHNldCBjb3JyZWN0CisgICAgbW9u
a2V5cGF0Y2guc2V0ZW52KCJIT01FIiwgdG1wZGlyKQorICAgIGhvbWVfdmFyID0gb3MucGF0aC5u
b3JtcGF0aChvcy5wYXRoLmV4cGFuZHZhcnMoJyRIT01FL3Rlc3QueG1sJykpCisKKyAgICB4bWxf
dmFyID0gTG9nWE1MKCckSE9NRSVzdGVzdC54bWwnICUgdG1wZGlyLnNlcCwgTm9uZSkKKyAgICBh
c3NlcnQgeG1sX3Zhci5sb2dmaWxlID09IGhvbWVfdmFyCisKKworZGVmIHRlc3RfbG9neG1sX2No
YW5naW5nZGlyKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAg
ZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAgaW1wb3J0IG9zCisgICAgICAgICAgICBvcy5j
aGRpcigiYSIpCisgICAgIiIiKQorICAgIHRlc3RkaXIudG1wZGlyLm1rZGlyKCJhIikKKyAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1qdW5pdHhtbD1hL3gueG1sIikKKyAgICBhc3Nl
cnQgcmVzdWx0LnJldCA9PSAwCisgICAgYXNzZXJ0IHRlc3RkaXIudG1wZGlyLmpvaW4oImEveC54
bWwiKS5jaGVjaygpCisKKworZGVmIHRlc3RfbG9neG1sX21ha2VkaXIodGVzdGRpcik6CisgICAg
IiIiLS1qdW5pdHhtbCBzaG91bGQgYXV0b21hdGljYWxseSBjcmVhdGUgZGlyZWN0b3JpZXMgZm9y
IHRoZSB4bWwgZmlsZSIiIgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgZGVm
IHRlc3RfcGFzcygpOgorICAgICAgICAgICAgcGFzcworICAgICIiIikKKyAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1qdW5pdHhtbD1wYXRoL3RvL3Jlc3VsdHMueG1sIikKKyAgICBh
c3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgYXNzZXJ0IHRlc3RkaXIudG1wZGlyLmpvaW4oInBh
dGgvdG8vcmVzdWx0cy54bWwiKS5jaGVjaygpCisKKworZGVmIHRlc3RfbG9neG1sX2NoZWNrX2lz
ZGlyKHRlc3RkaXIpOgorICAgICIiIkdpdmUgYW4gZXJyb3IgaWYgLS1qdW5pdC14bWwgaXMgYSBk
aXJlY3RvcnkgKCMyMDg5KSIiIgorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWp1
bml0LXhtbD0uIikKKyAgICByZXN1bHQuc3RkZXJyLmZubWF0Y2hfbGluZXMoWyIqLS1qdW5pdHht
bCBtdXN0IGJlIGEgZmlsZW5hbWUqIl0pCisKKworZGVmIHRlc3RfZXNjYXBlZF9wYXJhbWV0cml6
ZWRfbmFtZXNfeG1sKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAg
ICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2NoYXIn
LCBbdSJcXHgwMCJdKQorICAgICAgICBkZWYgdGVzdF9mdW5jKGNoYXIpOgorICAgICAgICAgICAg
YXNzZXJ0IGNoYXIKKyAgICAiIiIpCisgICAgcmVzdWx0LCBkb20gPSBydW5hbmRwYXJzZSh0ZXN0
ZGlyKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKyAgICBub2RlID0gZG9tLmZpbmRfZmly
c3RfYnlfdGFnKCJ0ZXN0Y2FzZSIpCisgICAgbm9kZS5hc3NlcnRfYXR0cihuYW1lPSJ0ZXN0X2Z1
bmNbXFx4MDBdIikKKworCitkZWYgdGVzdF9kb3VibGVfY29sb25fc3BsaXRfZnVuY3Rpb25faXNz
dWU0NjkodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBv
cnQgcHl0ZXN0CisgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgncGFyYW0nLCBbImRv
dWJsZTo6Y29sb24iXSkKKyAgICAgICAgZGVmIHRlc3RfZnVuYyhwYXJhbSk6CisgICAgICAgICAg
ICBwYXNzCisgICAgIiIiKQorICAgIHJlc3VsdCwgZG9tID0gcnVuYW5kcGFyc2UodGVzdGRpcikK
KyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgbm9kZSA9IGRvbS5maW5kX2ZpcnN0X2J5
X3RhZygidGVzdGNhc2UiKQorICAgIG5vZGUuYXNzZXJ0X2F0dHIoY2xhc3NuYW1lPSJ0ZXN0X2Rv
dWJsZV9jb2xvbl9zcGxpdF9mdW5jdGlvbl9pc3N1ZTQ2OSIpCisgICAgbm9kZS5hc3NlcnRfYXR0
cihuYW1lPSd0ZXN0X2Z1bmNbZG91YmxlOjpjb2xvbl0nKQorCisKK2RlZiB0ZXN0X2RvdWJsZV9j
b2xvbl9zcGxpdF9tZXRob2RfaXNzdWU0NjkodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlm
aWxlKCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhv
YmplY3QpOgorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdwYXJhbScsIFsi
ZG91YmxlOjpjb2xvbiJdKQorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhzZWxmLCBwYXJhbSk6
CisgICAgICAgICAgICAgICAgcGFzcworICAgICIiIikKKyAgICByZXN1bHQsIGRvbSA9IHJ1bmFu
ZHBhcnNlKHRlc3RkaXIpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorICAgIG5vZGUgPSBk
b20uZmluZF9maXJzdF9ieV90YWcoInRlc3RjYXNlIikKKyAgICBub2RlLmFzc2VydF9hdHRyKAor
ICAgICAgICBjbGFzc25hbWU9InRlc3RfZG91YmxlX2NvbG9uX3NwbGl0X21ldGhvZF9pc3N1ZTQ2
OS5UZXN0Q2xhc3MiKQorICAgIG5vZGUuYXNzZXJ0X2F0dHIobmFtZT0ndGVzdF9mdW5jW2RvdWJs
ZTo6Y29sb25dJykKKworCitkZWYgdGVzdF91bmljb2RlX2lzc3VlMzY4KHRlc3RkaXIpOgorICAg
IHBhdGggPSB0ZXN0ZGlyLnRtcGRpci5qb2luKCJ0ZXN0LnhtbCIpCisgICAgbG9nID0gTG9nWE1M
KHN0cihwYXRoKSwgTm9uZSkKKyAgICB1c3RyID0gcHkuYnVpbHRpbi5fdG90ZXh0KCLQktCd0Jgh
IiwgInV0Zi04IikKKyAgICBmcm9tIF9weXRlc3QucnVubmVyIGltcG9ydCBCYXNlUmVwb3J0CisK
KyAgICBjbGFzcyBSZXBvcnQoQmFzZVJlcG9ydCk6CisgICAgICAgIGxvbmdyZXByID0gdXN0cgor
ICAgICAgICBzZWN0aW9ucyA9IFtdCisgICAgICAgIG5vZGVpZCA9ICJzb21ldGhpbmciCisgICAg
ICAgIGxvY2F0aW9uID0gJ3Rlc3RzL2ZpbGVuYW1lLnB5JywgNDIsICdUZXN0Q2xhc3MubWV0aG9k
JworCisgICAgdGVzdF9yZXBvcnQgPSBSZXBvcnQoKQorCisgICAgIyBob3BlZnVsbHkgdGhpcyBp
cyBub3QgdG9vIGJyaXR0bGUgLi4uCisgICAgbG9nLnB5dGVzdF9zZXNzaW9uc3RhcnQoKQorICAg
IG5vZGVfcmVwb3J0ZXIgPSBsb2cuX29wZW50ZXN0Y2FzZSh0ZXN0X3JlcG9ydCkKKyAgICBub2Rl
X3JlcG9ydGVyLmFwcGVuZF9mYWlsdXJlKHRlc3RfcmVwb3J0KQorICAgIG5vZGVfcmVwb3J0ZXIu
YXBwZW5kX2NvbGxlY3RfZXJyb3IodGVzdF9yZXBvcnQpCisgICAgbm9kZV9yZXBvcnRlci5hcHBl
bmRfY29sbGVjdF9za2lwcGVkKHRlc3RfcmVwb3J0KQorICAgIG5vZGVfcmVwb3J0ZXIuYXBwZW5k
X2Vycm9yKHRlc3RfcmVwb3J0KQorICAgIHRlc3RfcmVwb3J0LmxvbmdyZXByID0gImZpbGVuYW1l
IiwgMSwgdXN0cgorICAgIG5vZGVfcmVwb3J0ZXIuYXBwZW5kX3NraXBwZWQodGVzdF9yZXBvcnQp
CisgICAgdGVzdF9yZXBvcnQubG9uZ3JlcHIgPSAiZmlsZW5hbWUiLCAxLCAiU2tpcHBlZDog5Y2h
5Zij5ZijIgorICAgIG5vZGVfcmVwb3J0ZXIuYXBwZW5kX3NraXBwZWQodGVzdF9yZXBvcnQpCisg
ICAgdGVzdF9yZXBvcnQud2FzeGZhaWwgPSB1c3RyCisgICAgbm9kZV9yZXBvcnRlci5hcHBlbmRf
c2tpcHBlZCh0ZXN0X3JlcG9ydCkKKyAgICBsb2cucHl0ZXN0X3Nlc3Npb25maW5pc2goKQorCisK
K2RlZiB0ZXN0X3JlY29yZF9wcm9wZXJ0eSh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICBAcHl0ZXN0LmZpeHR1cmUK
KyAgICAgICAgZGVmIG90aGVyKHJlY29yZF94bWxfcHJvcGVydHkpOgorICAgICAgICAgICAgcmVj
b3JkX3htbF9wcm9wZXJ0eSgiYmFyIiwgMSkKKyAgICAgICAgZGVmIHRlc3RfcmVjb3JkKHJlY29y
ZF94bWxfcHJvcGVydHksIG90aGVyKToKKyAgICAgICAgICAgIHJlY29yZF94bWxfcHJvcGVydHko
ImZvbyIsICI8MSIpOworICAgICIiIikKKyAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKHRl
c3RkaXIsICctcncnKQorICAgIG5vZGUgPSBkb20uZmluZF9maXJzdF9ieV90YWcoInRlc3RzdWl0
ZSIpCisgICAgdG5vZGUgPSBub2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0Y2FzZSIpCisgICAg
cHNub2RlID0gdG5vZGUuZmluZF9maXJzdF9ieV90YWcoJ3Byb3BlcnRpZXMnKQorICAgIHBub2Rl
cyA9IHBzbm9kZS5maW5kX2J5X3RhZygncHJvcGVydHknKQorICAgIHBub2Rlc1swXS5hc3NlcnRf
YXR0cihuYW1lPSJiYXIiLCB2YWx1ZT0iMSIpCisgICAgcG5vZGVzWzFdLmFzc2VydF9hdHRyKG5h
bWU9ImZvbyIsIHZhbHVlPSI8MSIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsK
KyAgICAgICAgJ3Rlc3RfcmVjb3JkX3Byb3BlcnR5LnB5Ojp0ZXN0X3JlY29yZCcsCisgICAgICAg
ICcqcmVjb3JkX3htbF9wcm9wZXJ0eSpleHBlcmltZW50YWwqJywKKyAgICBdKQorCisKK2RlZiB0
ZXN0X3JlY29yZF9wcm9wZXJ0eV9zYW1lX25hbWUodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtl
cHlmaWxlKCIiIgorICAgICAgICBkZWYgdGVzdF9yZWNvcmRfd2l0aF9zYW1lX25hbWUocmVjb3Jk
X3htbF9wcm9wZXJ0eSk6CisgICAgICAgICAgICByZWNvcmRfeG1sX3Byb3BlcnR5KCJmb28iLCAi
YmFyIikKKyAgICAgICAgICAgIHJlY29yZF94bWxfcHJvcGVydHkoImZvbyIsICJiYXoiKQorICAg
ICIiIikKKyAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKHRlc3RkaXIsICctcncnKQorICAg
IG5vZGUgPSBkb20uZmluZF9maXJzdF9ieV90YWcoInRlc3RzdWl0ZSIpCisgICAgdG5vZGUgPSBu
b2RlLmZpbmRfZmlyc3RfYnlfdGFnKCJ0ZXN0Y2FzZSIpCisgICAgcHNub2RlID0gdG5vZGUuZmlu
ZF9maXJzdF9ieV90YWcoJ3Byb3BlcnRpZXMnKQorICAgIHBub2RlcyA9IHBzbm9kZS5maW5kX2J5
X3RhZygncHJvcGVydHknKQorICAgIHBub2Rlc1swXS5hc3NlcnRfYXR0cihuYW1lPSJmb28iLCB2
YWx1ZT0iYmFyIikKKyAgICBwbm9kZXNbMV0uYXNzZXJ0X2F0dHIobmFtZT0iZm9vIiwgdmFsdWU9
ImJheiIpCisKKworZGVmIHRlc3RfcmFuZG9tX3JlcG9ydF9sb2dfeGRpc3QodGVzdGRpcik6Cisg
ICAgIiIieGRpc3QgY2FsbHMgcHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0IGFzIHRoZXkgYXJlIGV4
ZWN1dGVkIGJ5IHRoZSBzbGF2ZXMsCisgICAgd2l0aCBub2RlcyBmcm9tIHNldmVyYWwgbm9kZXMg
b3ZlcmxhcHBpbmcsIHNvIGp1bml0eG1sIG11c3QgY29wZSB3aXRoIHRoYXQKKyAgICB0byBwcm9k
dWNlIGNvcnJlY3QgcmVwb3J0cy4gIzEwNjQKKyAgICAiIiIKKyAgICBweXRlc3QuaW1wb3J0b3Jz
a2lwKCd4ZGlzdCcpCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQg
cHl0ZXN0LCB0aW1lCisgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnaScsIGxpc3Qo
cmFuZ2UoMzApKSkKKyAgICAgICAgZGVmIHRlc3RfeChpKToKKyAgICAgICAgICAgIGFzc2VydCBp
ICE9IDIyCisgICAgIiIiKQorICAgIF8sIGRvbSA9IHJ1bmFuZHBhcnNlKHRlc3RkaXIsICctbjIn
KQorICAgIHN1aXRlX25vZGUgPSBkb20uZmluZF9maXJzdF9ieV90YWcoInRlc3RzdWl0ZSIpCisg
ICAgZmFpbGVkID0gW10KKyAgICBmb3IgY2FzZV9ub2RlIGluIHN1aXRlX25vZGUuZmluZF9ieV90
YWcoInRlc3RjYXNlIik6CisgICAgICAgIGlmIGNhc2Vfbm9kZS5maW5kX2ZpcnN0X2J5X3RhZygn
ZmFpbHVyZScpOgorICAgICAgICAgICAgZmFpbGVkLmFwcGVuZChjYXNlX25vZGVbJ25hbWUnXSkK
KworICAgIGFzc2VydCBmYWlsZWQgPT0gWyd0ZXN0X3hbMjJdJ10KKworCitkZWYgdGVzdF9ydW5z
X3R3aWNlKHRlc3RkaXIpOgorICAgIGYgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoJycnCisgICAgICAg
IGRlZiB0ZXN0X3Bhc3MoKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAnJycpCisKKyAgICByZXN1
bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKHRlc3RkaXIsIGYsIGYpCisgICAgYXNzZXJ0ICdJTlRFUk5B
TEVSUk9SJyBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgIGZpcnN0LCBzZWNvbmQgPSBb
eFsnY2xhc3NuYW1lJ10gZm9yIHggaW4gZG9tLmZpbmRfYnlfdGFnKCJ0ZXN0Y2FzZSIpXQorICAg
IGFzc2VydCBmaXJzdCA9PSBzZWNvbmQKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwocmVhc29uPSdo
YW5ncycsIHJ1bj1GYWxzZSkKK2RlZiB0ZXN0X3J1bnNfdHdpY2VfeGRpc3QodGVzdGRpcik6Cisg
ICAgcHl0ZXN0LmltcG9ydG9yc2tpcCgneGRpc3QnKQorICAgIGYgPSB0ZXN0ZGlyLm1ha2VweWZp
bGUoJycnCisgICAgICAgIGRlZiB0ZXN0X3Bhc3MoKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAn
JycpCisKKyAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKAorICAgICAgICB0ZXN0ZGlyLCBm
LAorICAgICAgICAnLS1kaXN0JywgJ2VhY2gnLCAnLS10eCcsICcyKnBvcGVuJywpCisgICAgYXNz
ZXJ0ICdJTlRFUk5BTEVSUk9SJyBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgIGZpcnN0
LCBzZWNvbmQgPSBbeFsnY2xhc3NuYW1lJ10gZm9yIHggaW4gZG9tLmZpbmRfYnlfdGFnKCJ0ZXN0
Y2FzZSIpXQorICAgIGFzc2VydCBmaXJzdCA9PSBzZWNvbmQKKworCitkZWYgdGVzdF9mYW5jeV9p
dGVtc19yZWdyZXNzaW9uKHRlc3RkaXIpOgorICAgICMgaXNzdWUgMTI1OQorICAgIHRlc3RkaXIu
bWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGNsYXNzIEZ1
bkl0ZW0ocHl0ZXN0Lkl0ZW0pOgorICAgICAgICAgICAgZGVmIHJ1bnRlc3Qoc2VsZik6CisgICAg
ICAgICAgICAgICAgcGFzcworICAgICAgICBjbGFzcyBOb0Z1bkl0ZW0ocHl0ZXN0Lkl0ZW0pOgor
ICAgICAgICAgICAgZGVmIHJ1bnRlc3Qoc2VsZik6CisgICAgICAgICAgICAgICAgcGFzcworCisg
ICAgICAgIGNsYXNzIEZ1bkNvbGxlY3RvcihweXRlc3QuRmlsZSk6CisgICAgICAgICAgICBkZWYg
Y29sbGVjdChzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gWworICAgICAgICAgICAgICAg
ICAgICBGdW5JdGVtKCdhJywgc2VsZiksCisgICAgICAgICAgICAgICAgICAgIE5vRnVuSXRlbSgn
YScsIHNlbGYpLAorICAgICAgICAgICAgICAgICAgICBOb0Z1bkl0ZW0oJ2InLCBzZWxmKSwKKyAg
ICAgICAgICAgICAgICBdCisKKyAgICAgICAgZGVmIHB5dGVzdF9jb2xsZWN0X2ZpbGUocGF0aCwg
cGFyZW50KToKKyAgICAgICAgICAgIGlmIHBhdGguY2hlY2soZXh0PScucHknKToKKyAgICAgICAg
ICAgICAgICByZXR1cm4gRnVuQ29sbGVjdG9yKHBhdGgsIHBhcmVudCkKKyAgICAiIiIpCisKKyAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoJycnCisgICAgICAgIGRlZiB0ZXN0X3Bhc3MoKToKKyAgICAg
ICAgICAgIHBhc3MKKyAgICAnJycpCisKKyAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKHRl
c3RkaXIpCisKKyAgICBhc3NlcnQgJ0lOVEVSTkFMRVJST1InIG5vdCBpbiByZXN1bHQuc3Rkb3V0
LnN0cigpCisKKyAgICBpdGVtcyA9IHNvcnRlZCgKKyAgICAgICAgJyUoY2xhc3NuYW1lKXMgJShu
YW1lKXMgJShmaWxlKXMnICUgeAorCisgICAgICAgIGZvciB4IGluIGRvbS5maW5kX2J5X3RhZygi
dGVzdGNhc2UiKSkKKyAgICBpbXBvcnQgcHByaW50CisgICAgcHByaW50LnBwcmludChpdGVtcykK
KyAgICBhc3NlcnQgaXRlbXMgPT0gWworICAgICAgICB1J2NvbmZ0ZXN0IGEgY29uZnRlc3QucHkn
LAorICAgICAgICB1J2NvbmZ0ZXN0IGEgY29uZnRlc3QucHknLAorICAgICAgICB1J2NvbmZ0ZXN0
IGIgY29uZnRlc3QucHknLAorICAgICAgICB1J3Rlc3RfZmFuY3lfaXRlbXNfcmVncmVzc2lvbiBh
IHRlc3RfZmFuY3lfaXRlbXNfcmVncmVzc2lvbi5weScsCisgICAgICAgIHUndGVzdF9mYW5jeV9p
dGVtc19yZWdyZXNzaW9uIGEgdGVzdF9mYW5jeV9pdGVtc19yZWdyZXNzaW9uLnB5JywKKyAgICAg
ICAgdSd0ZXN0X2ZhbmN5X2l0ZW1zX3JlZ3Jlc3Npb24gYiB0ZXN0X2ZhbmN5X2l0ZW1zX3JlZ3Jl
c3Npb24ucHknLAorICAgICAgICB1J3Rlc3RfZmFuY3lfaXRlbXNfcmVncmVzc2lvbiB0ZXN0X3Bh
c3MnCisgICAgICAgIHUnIHRlc3RfZmFuY3lfaXRlbXNfcmVncmVzc2lvbi5weScsCisgICAgXQor
CisKK2RlZiB0ZXN0X2dsb2JhbF9wcm9wZXJ0aWVzKHRlc3RkaXIpOgorICAgIHBhdGggPSB0ZXN0
ZGlyLnRtcGRpci5qb2luKCJ0ZXN0X2dsb2JhbF9wcm9wZXJ0aWVzLnhtbCIpCisgICAgbG9nID0g
TG9nWE1MKHN0cihwYXRoKSwgTm9uZSkKKyAgICBmcm9tIF9weXRlc3QucnVubmVyIGltcG9ydCBC
YXNlUmVwb3J0CisKKyAgICBjbGFzcyBSZXBvcnQoQmFzZVJlcG9ydCk6CisgICAgICAgIHNlY3Rp
b25zID0gW10KKyAgICAgICAgbm9kZWlkID0gInRlc3Rfbm9kZV9pZCIKKworICAgIGxvZy5weXRl
c3Rfc2Vzc2lvbnN0YXJ0KCkKKyAgICBsb2cuYWRkX2dsb2JhbF9wcm9wZXJ0eSgnZm9vJywgMSkK
KyAgICBsb2cuYWRkX2dsb2JhbF9wcm9wZXJ0eSgnYmFyJywgMikKKyAgICBsb2cucHl0ZXN0X3Nl
c3Npb25maW5pc2goKQorCisgICAgZG9tID0gbWluaWRvbS5wYXJzZShzdHIocGF0aCkpCisKKyAg
ICBwcm9wZXJ0aWVzID0gZG9tLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdwcm9wZXJ0aWVzJykKKwor
ICAgIGFzc2VydCAocHJvcGVydGllcy5sZW5ndGggPT0gMSksICJUaGVyZSBtdXN0IGJlIG9uZSA8
cHJvcGVydGllcz4gbm9kZSIKKworICAgIHByb3BlcnR5X2xpc3QgPSBkb20uZ2V0RWxlbWVudHNC
eVRhZ05hbWUoJ3Byb3BlcnR5JykKKworICAgIGFzc2VydCAocHJvcGVydHlfbGlzdC5sZW5ndGgg
PT0gMiksICJUaGVyZSBtb3N0IGJlIG9ubHkgMiBwcm9wZXJ0eSBub2RlcyIKKworICAgIGV4cGVj
dGVkID0geydmb28nOiAnMScsICdiYXInOiAnMid9CisgICAgYWN0dWFsID0ge30KKworICAgIGZv
ciBwIGluIHByb3BlcnR5X2xpc3Q6CisgICAgICAgIGsgPSBzdHIocC5nZXRBdHRyaWJ1dGUoJ25h
bWUnKSkKKyAgICAgICAgdiA9IHN0cihwLmdldEF0dHJpYnV0ZSgndmFsdWUnKSkKKyAgICAgICAg
YWN0dWFsW2tdID0gdgorCisgICAgYXNzZXJ0IGFjdHVhbCA9PSBleHBlY3RlZAorCisKK2RlZiB0
ZXN0X3VybF9wcm9wZXJ0eSh0ZXN0ZGlyKToKKyAgICB0ZXN0X3VybCA9ICJodHRwOi8vd3d3Lmdp
dGh1Yi5jb20vcHl0ZXN0LWRldiIKKyAgICBwYXRoID0gdGVzdGRpci50bXBkaXIuam9pbigidGVz
dF91cmxfcHJvcGVydHkueG1sIikKKyAgICBsb2cgPSBMb2dYTUwoc3RyKHBhdGgpLCBOb25lKQor
ICAgIGZyb20gX3B5dGVzdC5ydW5uZXIgaW1wb3J0IEJhc2VSZXBvcnQKKworICAgIGNsYXNzIFJl
cG9ydChCYXNlUmVwb3J0KToKKyAgICAgICAgbG9uZ3JlcHIgPSAiRm9vQmFyQmF6IgorICAgICAg
ICBzZWN0aW9ucyA9IFtdCisgICAgICAgIG5vZGVpZCA9ICJzb21ldGhpbmciCisgICAgICAgIGxv
Y2F0aW9uID0gJ3Rlc3RzL2ZpbGVuYW1lLnB5JywgNDIsICdUZXN0Q2xhc3MubWV0aG9kJworICAg
ICAgICB1cmwgPSB0ZXN0X3VybAorCisgICAgdGVzdF9yZXBvcnQgPSBSZXBvcnQoKQorCisgICAg
bG9nLnB5dGVzdF9zZXNzaW9uc3RhcnQoKQorICAgIG5vZGVfcmVwb3J0ZXIgPSBsb2cuX29wZW50
ZXN0Y2FzZSh0ZXN0X3JlcG9ydCkKKyAgICBub2RlX3JlcG9ydGVyLmFwcGVuZF9mYWlsdXJlKHRl
c3RfcmVwb3J0KQorICAgIGxvZy5weXRlc3Rfc2Vzc2lvbmZpbmlzaCgpCisKKyAgICB0ZXN0X2Nh
c2UgPSBtaW5pZG9tLnBhcnNlKHN0cihwYXRoKSkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3Rlc3Rj
YXNlJylbMF0KKworICAgIGFzc2VydCAodGVzdF9jYXNlLmdldEF0dHJpYnV0ZSgndXJsJykgPT0g
dGVzdF91cmwpLCAiVGhlIFVSTCBkaWQgbm90IGdldCB3cml0dGVuIHRvIHRoZSB4bWwiCisKKwor
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdzdWl0ZV9uYW1lJywgWydteV9zdWl0ZScsICcnXSkK
K2RlZiB0ZXN0X3NldF9zdWl0ZV9uYW1lKHRlc3RkaXIsIHN1aXRlX25hbWUpOgorICAgIGlmIHN1
aXRlX25hbWU6CisgICAgICAgIHRlc3RkaXIubWFrZWluaSgiIiIKKyAgICAgICAgICAgIFtweXRl
c3RdCisgICAgICAgICAgICBqdW5pdF9zdWl0ZV9uYW1lPXswfQorICAgICAgICAiIiIuZm9ybWF0
KHN1aXRlX25hbWUpKQorICAgICAgICBleHBlY3RlZCA9IHN1aXRlX25hbWUKKyAgICBlbHNlOgor
ICAgICAgICBleHBlY3RlZCA9ICdweXRlc3QnCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgor
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAg
ICAgICAgcGFzcworICAgICIiIikKKyAgICByZXN1bHQsIGRvbSA9IHJ1bmFuZHBhcnNlKHRlc3Rk
aXIpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorICAgIG5vZGUgPSBkb20uZmluZF9maXJz
dF9ieV90YWcoInRlc3RzdWl0ZSIpCisgICAgbm9kZS5hc3NlcnRfYXR0cihuYW1lPWV4cGVjdGVk
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X21hcmsucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL3Rlc3RfbWFyay5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmJmMGIwZTc3ODdiN2Q5M2Zj
MDlkMzI2ODE1YmJmZjBmNTNlMzRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy90ZXN0X21hcmsucHkKQEAgLTAsMCArMSw4NzggQEAKK2Zyb20gX19mdXR1cmVfXyBpbXBv
cnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCBvcwor
aW1wb3J0IHN5cworCitpbXBvcnQgcHl0ZXN0Citmcm9tIF9weXRlc3QubWFyayBpbXBvcnQgTWFy
a0dlbmVyYXRvciBhcyBNYXJrLCBQYXJhbWV0ZXJTZXQsIHRyYW5zZmVyX21hcmtlcnMKKworCitj
bGFzcyBUZXN0TWFyayhvYmplY3QpOgorICAgIGRlZiB0ZXN0X21hcmtpbmZvX3JlcHIoc2VsZik6
CisgICAgICAgIGZyb20gX3B5dGVzdC5tYXJrIGltcG9ydCBNYXJrSW5mbywgTWFyaworICAgICAg
ICBtID0gTWFya0luZm8oTWFyaygiaGVsbG8iLCAoMSwgMiksIHt9KSkKKyAgICAgICAgcmVwciht
KQorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdhdHRyJywgWydtYXJrJywgJ3BhcmFt
J10pCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdtb2R1bGVuYW1lJywgWydweS50ZXN0
JywgJ3B5dGVzdCddKQorICAgIGRlZiB0ZXN0X3B5dGVzdF9leGlzdHNfaW5fbmFtZXNwYWNlX2Fs
bChzZWxmLCBhdHRyLCBtb2R1bGVuYW1lKToKKyAgICAgICAgbW9kdWxlID0gc3lzLm1vZHVsZXNb
bW9kdWxlbmFtZV0KKyAgICAgICAgYXNzZXJ0IGF0dHIgaW4gbW9kdWxlLl9fYWxsX18KKworICAg
IGRlZiB0ZXN0X3B5dGVzdF9tYXJrX25vdGNhbGxhYmxlKHNlbGYpOgorICAgICAgICBtYXJrID0g
TWFyaygpCisgICAgICAgIHB5dGVzdC5yYWlzZXMoKEF0dHJpYnV0ZUVycm9yLCBUeXBlRXJyb3Ip
LCBtYXJrKQorCisgICAgZGVmIHRlc3RfbWFya193aXRoX3BhcmFtKHNlbGYpOgorICAgICAgICBk
ZWYgc29tZV9mdW5jdGlvbihhYmMpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIGNsYXNz
IFNvbWVDbGFzcyhvYmplY3QpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIGFzc2VydCBw
eXRlc3QubWFyay5mdW4oc29tZV9mdW5jdGlvbikgaXMgc29tZV9mdW5jdGlvbgorICAgICAgICBh
c3NlcnQgcHl0ZXN0Lm1hcmsuZnVuLndpdGhfYXJncyhzb21lX2Z1bmN0aW9uKSBpcyBub3Qgc29t
ZV9mdW5jdGlvbgorCisgICAgICAgIGFzc2VydCBweXRlc3QubWFyay5mdW4oU29tZUNsYXNzKSBp
cyBTb21lQ2xhc3MKKyAgICAgICAgYXNzZXJ0IHB5dGVzdC5tYXJrLmZ1bi53aXRoX2FyZ3MoU29t
ZUNsYXNzKSBpcyBub3QgU29tZUNsYXNzCisKKyAgICBkZWYgdGVzdF9weXRlc3RfbWFya19uYW1l
X3N0YXJ0c193aXRoX3VuZGVyc2NvcmUoc2VsZik6CisgICAgICAgIG1hcmsgPSBNYXJrKCkKKyAg
ICAgICAgcHl0ZXN0LnJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgZ2V0YXR0ciwgbWFyaywgJ19zb21l
X25hbWUnKQorCisgICAgZGVmIHRlc3RfcHl0ZXN0X21hcmtfYmFyZShzZWxmKToKKyAgICAgICAg
bWFyayA9IE1hcmsoKQorCisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICBwYXNzCisKKyAg
ICAgICAgbWFyay5oZWxsbyhmKQorICAgICAgICBhc3NlcnQgZi5oZWxsbworCisgICAgZGVmIHRl
c3RfcHl0ZXN0X21hcmtfa2V5d29yZHMoc2VsZik6CisgICAgICAgIG1hcmsgPSBNYXJrKCkKKwor
ICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIG1hcmsud29ybGQo
eD0zLCB5PTQpKGYpCisgICAgICAgIGFzc2VydCBmLndvcmxkCisgICAgICAgIGFzc2VydCBmLndv
cmxkLmt3YXJnc1sneCddID09IDMKKyAgICAgICAgYXNzZXJ0IGYud29ybGQua3dhcmdzWyd5J10g
PT0gNAorCisgICAgZGVmIHRlc3RfYXBwbHlfbXVsdGlwbGVfYW5kX21lcmdlKHNlbGYpOgorICAg
ICAgICBtYXJrID0gTWFyaygpCisKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIHBhc3MK
KworICAgICAgICBtYXJrLndvcmxkCisgICAgICAgIG1hcmsud29ybGQoeD0zKShmKQorICAgICAg
ICBhc3NlcnQgZi53b3JsZC5rd2FyZ3NbJ3gnXSA9PSAzCisgICAgICAgIG1hcmsud29ybGQoeT00
KShmKQorICAgICAgICBhc3NlcnQgZi53b3JsZC5rd2FyZ3NbJ3gnXSA9PSAzCisgICAgICAgIGFz
c2VydCBmLndvcmxkLmt3YXJnc1sneSddID09IDQKKyAgICAgICAgbWFyay53b3JsZCh5PTEpKGYp
CisgICAgICAgIGFzc2VydCBmLndvcmxkLmt3YXJnc1sneSddID09IDEKKyAgICAgICAgYXNzZXJ0
IGxlbihmLndvcmxkLmFyZ3MpID09IDAKKworICAgIGRlZiB0ZXN0X3B5dGVzdF9tYXJrX3Bvc2l0
aW9uYWwoc2VsZik6CisgICAgICAgIG1hcmsgPSBNYXJrKCkKKworICAgICAgICBkZWYgZigpOgor
ICAgICAgICAgICAgcGFzcworCisgICAgICAgIG1hcmsud29ybGQoImhlbGxvIikoZikKKyAgICAg
ICAgYXNzZXJ0IGYud29ybGQuYXJnc1swXSA9PSAiaGVsbG8iCisgICAgICAgIG1hcmsud29ybGQo
IndvcmxkIikoZikKKworICAgIGRlZiB0ZXN0X3B5dGVzdF9tYXJrX3Bvc2l0aW9uYWxfZnVuY19h
bmRfa2V5d29yZChzZWxmKToKKyAgICAgICAgbWFyayA9IE1hcmsoKQorCisgICAgICAgIGRlZiBm
KCk6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24KKworICAgICAgICBtID0gbWFyay53b3Js
ZChmLCBvbWVnYT0iaGVsbG8iKQorCisgICAgICAgIGRlZiBnKCk6CisgICAgICAgICAgICBwYXNz
CisKKyAgICAgICAgYXNzZXJ0IG0oZykgPT0gZworICAgICAgICBhc3NlcnQgZy53b3JsZC5hcmdz
WzBdIGlzIGYKKyAgICAgICAgYXNzZXJ0IGcud29ybGQua3dhcmdzWyJvbWVnYSJdID09ICJoZWxs
byIKKworICAgIGRlZiB0ZXN0X3B5dGVzdF9tYXJrX3JldXNlKHNlbGYpOgorICAgICAgICBtYXJr
ID0gTWFyaygpCisKKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAg
ICB3ID0gbWFyay5zb21lCisgICAgICAgIHcoImhlbGxvIiwgcmVhc29uPSIxMjMiKShmKQorICAg
ICAgICBhc3NlcnQgZi5zb21lLmFyZ3NbMF0gPT0gImhlbGxvIgorICAgICAgICBhc3NlcnQgZi5z
b21lLmt3YXJnc1sncmVhc29uJ10gPT0gIjEyMyIKKworICAgICAgICBkZWYgZygpOgorICAgICAg
ICAgICAgcGFzcworCisgICAgICAgIHcoIndvcmxkIiwgcmVhc29uMj0iNDU2IikoZykKKyAgICAg
ICAgYXNzZXJ0IGcuc29tZS5hcmdzWzBdID09ICJ3b3JsZCIKKyAgICAgICAgYXNzZXJ0ICdyZWFz
b24nIG5vdCBpbiBnLnNvbWUua3dhcmdzCisgICAgICAgIGFzc2VydCBnLnNvbWUua3dhcmdzWydy
ZWFzb24yJ10gPT0gIjQ1NiIKKworCitkZWYgdGVzdF9tYXJrZWRfY2xhc3NfcnVuX3R3aWNlKHRl
c3RkaXIsIHJlcXVlc3QpOgorICAgICIiIlRlc3QgZmFpbHMgZmlsZSBpcyBydW4gdHdpY2UgdGhh
dCBjb250YWlucyBtYXJrZWQgY2xhc3MuCisgICAgU2VlIGlzc3VlIzY4My4KKyAgICAiIiIKKyAg
ICBweV9maWxlID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgIGltcG9ydCBweXRlc3QKKyAg
ICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2FiYycsIFsxLCAyLCAzXSkKKyAgICBjbGFzcyBU
ZXN0MShvYmplY3QpOgorICAgICAgICBkZWYgdGVzdF8xKHNlbGYsIGFiYyk6CisgICAgICAgICAg
ICBhc3NlcnQgYWJjIGluIFsxLCAyLCAzXQorICAgICIiIikKKyAgICBmaWxlX25hbWUgPSBvcy5w
YXRoLmJhc2VuYW1lKHB5X2ZpbGUuc3RycGF0aCkKKyAgICByZWMgPSB0ZXN0ZGlyLmlubGluZV9y
dW4oZmlsZV9uYW1lLCBmaWxlX25hbWUpCisgICAgcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTYp
CisKKworZGVmIHRlc3RfaW5pX21hcmtlcnModGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlaW5p
KCIiIgorICAgICAgICBbcHl0ZXN0XQorICAgICAgICBtYXJrZXJzID0KKyAgICAgICAgICAgIGEx
OiB0aGlzIGlzIGEgd2VidGVzdCBtYXJrZXIKKyAgICAgICAgICAgIGEyOiB0aGlzIGlzIGEgc21v
a2UgbWFya2VyCisgICAgIiIiKQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAg
ZGVmIHRlc3RfbWFya2VycyhweXRlc3Rjb25maWcpOgorICAgICAgICAgICAgbWFya2VycyA9IHB5
dGVzdGNvbmZpZy5nZXRpbmkoIm1hcmtlcnMiKQorICAgICAgICAgICAgcHJpbnQgKG1hcmtlcnMp
CisgICAgICAgICAgICBhc3NlcnQgbGVuKG1hcmtlcnMpID49IDIKKyAgICAgICAgICAgIGFzc2Vy
dCBtYXJrZXJzWzBdLnN0YXJ0c3dpdGgoImExOiIpCisgICAgICAgICAgICBhc3NlcnQgbWFya2Vy
c1sxXS5zdGFydHN3aXRoKCJhMjoiKQorICAgICIiIikKKyAgICByZWMgPSB0ZXN0ZGlyLmlubGlu
ZV9ydW4oKQorICAgIHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCisKK2RlZiB0ZXN0X21h
cmtlcnNfb3B0aW9uKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZWluaSgiIiIKKyAgICAgICAg
W3B5dGVzdF0KKyAgICAgICAgbWFya2VycyA9CisgICAgICAgICAgICBhMTogdGhpcyBpcyBhIHdl
YnRlc3QgbWFya2VyCisgICAgICAgICAgICBhMXNvbWU6IGFub3RoZXIgbWFya2VyCisgICAgICAg
ICAgICBub2Rlc2NyaXB0aW9uCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KCItLW1hcmtlcnMiLCApCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAg
ICAgICAgIiphMSp0aGlzIGlzIGEgd2VidGVzdCoiLAorICAgICAgICAiKmExc29tZSphbm90aGVy
IG1hcmtlciIsCisgICAgICAgICIqbm9kZXNjcmlwdGlvbioiLAorICAgIF0pCisKKworZGVmIHRl
c3RfaW5pX21hcmtlcnNfd2hpdGVzcGFjZSh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2Vpbmko
IiIiCisgICAgICAgIFtweXRlc3RdCisgICAgICAgIG1hcmtlcnMgPQorICAgICAgICAgICAgYTEg
OiB0aGlzIGlzIGEgd2hpdGVzcGFjZSBtYXJrZXIKKyAgICAiIiIpCisgICAgdGVzdGRpci5tYWtl
cHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgQHB5dGVzdC5tYXJr
LmExCisgICAgICAgIGRlZiB0ZXN0X21hcmtlcnMoKToKKyAgICAgICAgICAgIGFzc2VydCBUcnVl
CisgICAgIiIiKQorICAgIHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLS1zdHJpY3QiLCAiLW0i
LCAiYTEiKQorICAgIHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCisKK2RlZiB0ZXN0X21h
cmtlcl93aXRob3V0X2Rlc2NyaXB0aW9uKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZWZpbGUo
Ii5jZmciLCBzZXR1cD0iIiIKKyAgICAgICAgW3Rvb2w6cHl0ZXN0XQorICAgICAgICBtYXJrZXJz
PXNsb3cKKyAgICAiIiIpCisgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgIGlt
cG9ydCBweXRlc3QKKyAgICAgICAgcHl0ZXN0Lm1hcmsueGZhaWwoJ0ZBSUwnKQorICAgICIiIikK
KyAgICBmdGRpciA9IHRlc3RkaXIubWtkaXIoImZ0MV9kdW1teSIpCisgICAgdGVzdGRpci50bXBk
aXIuam9pbigiY29uZnRlc3QucHkiKS5tb3ZlKGZ0ZGlyLmpvaW4oImNvbmZ0ZXN0LnB5IikpCisg
ICAgcmVjID0gdGVzdGRpci5ydW5weXRlc3Rfc3VicHJvY2VzcygiLS1zdHJpY3QiKQorICAgIHJl
Yy5hc3NlcnRfb3V0Y29tZXMoKQorCisKK2RlZiB0ZXN0X21hcmtlcnNfb3B0aW9uX3dpdGhfcGx1
Z2luX2luX2N1cnJlbnRfZGlyKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCdw
eXRlc3RfcGx1Z2lucyA9ICJmbGlwX2Zsb3AiJykKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoZmxp
cF9mbG9wPSIiIlwKKyAgICAgICAgZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKKyAgICAg
ICAgICAgIGNvbmZpZy5hZGRpbml2YWx1ZV9saW5lKCJtYXJrZXJzIiwgImZsaXA6ZmxvcCIpCisK
KyAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6CisgICAgICAgICAg
ICB0cnk6CisgICAgICAgICAgICAgICAgbWFyayA9IG1ldGFmdW5jLmZ1bmN0aW9uLmZsaXBwZXIK
KyAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICAgICByZXR1
cm4KKyAgICAgICAgICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCJ4IiwgKDEwLCAyMCkpIiIiKQor
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiJcCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAg
ICAgQHB5dGVzdC5tYXJrLmZsaXBwZXIKKyAgICAgICAgZGVmIHRlc3RfZXhhbXBsZSh4KToKKyAg
ICAgICAgICAgIGFzc2VydCB4IiIiKQorCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
Ii0tbWFya2VycyIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKmZsaXAqZmxv
cCoiXSkKKworCitkZWYgdGVzdF9tYXJrX29uX3BzZXVkb19mdW5jdGlvbih0ZXN0ZGlyKToKKyAg
ICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAg
ICBAcHl0ZXN0Lm1hcmsucihsYW1iZGEgeDogMC8wKQorICAgICAgICBkZWYgdGVzdF9oZWxsbygp
OgorICAgICAgICAgICAgcGFzcworICAgICIiIikKKyAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGlu
ZV9ydW4oKQorICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCisKK2RlZiB0ZXN0
X3N0cmljdF9wcm9oaWJpdHNfdW5yZWdpc3RlcmVkX21hcmtlcnModGVzdGRpcik6CisgICAgdGVz
dGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIEBweXRl
c3QubWFyay51bnJlZ2lzdGVyZWRtYXJrCisgICAgICAgIGRlZiB0ZXN0X2hlbGxvKCk6CisgICAg
ICAgICAgICBwYXNzCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCIt
LXN0cmljdCIpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgIT0gMAorICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcyhbCisgICAgICAgICIqdW5yZWdpc3RlcmVkbWFyaypub3QqcmVnaXN0ZXJl
ZCoiLAorICAgIF0pCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJzcGVjIiwgWworICAg
ICgieHl6IiwgKCJ0ZXN0X29uZSIsKSksCisgICAgKCJ4eXogYW5kIHh5ejIiLCAoKSksCisgICAg
KCJ4eXoyIiwgKCJ0ZXN0X3R3byIsKSksCisgICAgKCJ4eXogb3IgeHl6MiIsICgidGVzdF9vbmUi
LCAidGVzdF90d28iKSwpCitdKQorZGVmIHRlc3RfbWFya19vcHRpb24oc3BlYywgdGVzdGRpcik6
CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAg
ICAgIEBweXRlc3QubWFyay54eXoKKyAgICAgICAgZGVmIHRlc3Rfb25lKCk6CisgICAgICAgICAg
ICBwYXNzCisgICAgICAgIEBweXRlc3QubWFyay54eXoyCisgICAgICAgIGRlZiB0ZXN0X3R3bygp
OgorICAgICAgICAgICAgcGFzcworICAgICIiIikKKyAgICBvcHQsIHBhc3NlZF9yZXN1bHQgPSBz
cGVjCisgICAgcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItbSIsIG9wdCkKKyAgICBwYXNzZWQs
IHNraXBwZWQsIGZhaWwgPSByZWMubGlzdG91dGNvbWVzKCkKKyAgICBwYXNzZWQgPSBbeC5ub2Rl
aWQuc3BsaXQoIjo6IilbLTFdIGZvciB4IGluIHBhc3NlZF0KKyAgICBhc3NlcnQgbGVuKHBhc3Nl
ZCkgPT0gbGVuKHBhc3NlZF9yZXN1bHQpCisgICAgYXNzZXJ0IGxpc3QocGFzc2VkKSA9PSBsaXN0
KHBhc3NlZF9yZXN1bHQpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJzcGVjIiwgWwor
ICAgICgiaW50ZXJmYWNlIiwgKCJ0ZXN0X2ludGVyZmFjZSIsKSksCisgICAgKCJub3QgaW50ZXJm
YWNlIiwgKCJ0ZXN0X25vaW50ZXIiLCkpLAorXSkKK2RlZiB0ZXN0X21hcmtfb3B0aW9uX2N1c3Rv
bShzcGVjLCB0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAg
aW1wb3J0IHB5dGVzdAorICAgICAgICBkZWYgcHl0ZXN0X2NvbGxlY3Rpb25fbW9kaWZ5aXRlbXMo
aXRlbXMpOgorICAgICAgICAgICAgZm9yIGl0ZW0gaW4gaXRlbXM6CisgICAgICAgICAgICAgICAg
aWYgImludGVyZmFjZSIgaW4gaXRlbS5ub2RlaWQ6CisgICAgICAgICAgICAgICAgICAgIGl0ZW0u
a2V5d29yZHNbImludGVyZmFjZSJdID0gcHl0ZXN0Lm1hcmsuaW50ZXJmYWNlCisgICAgIiIiKQor
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgZGVmIHRlc3RfaW50ZXJmYWNlKCk6
CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGRlZiB0ZXN0X25vaW50ZXIoKToKKyAgICAgICAg
ICAgIHBhc3MKKyAgICAiIiIpCisgICAgb3B0LCBwYXNzZWRfcmVzdWx0ID0gc3BlYworICAgIHJl
YyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLW0iLCBvcHQpCisgICAgcGFzc2VkLCBza2lwcGVkLCBm
YWlsID0gcmVjLmxpc3RvdXRjb21lcygpCisgICAgcGFzc2VkID0gW3gubm9kZWlkLnNwbGl0KCI6
OiIpWy0xXSBmb3IgeCBpbiBwYXNzZWRdCisgICAgYXNzZXJ0IGxlbihwYXNzZWQpID09IGxlbihw
YXNzZWRfcmVzdWx0KQorICAgIGFzc2VydCBsaXN0KHBhc3NlZCkgPT0gbGlzdChwYXNzZWRfcmVz
dWx0KQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgic3BlYyIsIFsKKyAgICAoImludGVy
ZmFjZSIsICgidGVzdF9pbnRlcmZhY2UiLCkpLAorICAgICgibm90IGludGVyZmFjZSIsICgidGVz
dF9ub2ludGVyIiwgInRlc3RfcGFzcyIpKSwKKyAgICAoInBhc3MiLCAoInRlc3RfcGFzcyIsKSks
CisgICAgKCJub3QgcGFzcyIsICgidGVzdF9pbnRlcmZhY2UiLCAidGVzdF9ub2ludGVyIikpLAor
XSkKK2RlZiB0ZXN0X2tleXdvcmRfb3B0aW9uX2N1c3RvbShzcGVjLCB0ZXN0ZGlyKToKKyAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGRlZiB0ZXN0X2ludGVyZmFjZSgpOgorICAg
ICAgICAgICAgcGFzcworICAgICAgICBkZWYgdGVzdF9ub2ludGVyKCk6CisgICAgICAgICAgICBw
YXNzCisgICAgICAgIGRlZiB0ZXN0X3Bhc3MoKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAiIiIp
CisgICAgb3B0LCBwYXNzZWRfcmVzdWx0ID0gc3BlYworICAgIHJlYyA9IHRlc3RkaXIuaW5saW5l
X3J1bigiLWsiLCBvcHQpCisgICAgcGFzc2VkLCBza2lwcGVkLCBmYWlsID0gcmVjLmxpc3RvdXRj
b21lcygpCisgICAgcGFzc2VkID0gW3gubm9kZWlkLnNwbGl0KCI6OiIpWy0xXSBmb3IgeCBpbiBw
YXNzZWRdCisgICAgYXNzZXJ0IGxlbihwYXNzZWQpID09IGxlbihwYXNzZWRfcmVzdWx0KQorICAg
IGFzc2VydCBsaXN0KHBhc3NlZCkgPT0gbGlzdChwYXNzZWRfcmVzdWx0KQorCisKK0BweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgic3BlYyIsIFsKKyAgICAoIk5vbmUiLCAoInRlc3RfZnVuY1tOb25l
XSIsKSksCisgICAgKCIxLjMiLCAoInRlc3RfZnVuY1sxLjNdIiwpKSwKKyAgICAoIjItMyIsICgi
dGVzdF9mdW5jWzItM10iLCkpCitdKQorZGVmIHRlc3Rfa2V5d29yZF9vcHRpb25fcGFyYW1ldHJp
emUoc3BlYywgdGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBp
bXBvcnQgcHl0ZXN0CisgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiYXJnIiwgW05v
bmUsIDEuMywgIjItMyJdKQorICAgICAgICBkZWYgdGVzdF9mdW5jKGFyZyk6CisgICAgICAgICAg
ICBwYXNzCisgICAgIiIiKQorICAgIG9wdCwgcGFzc2VkX3Jlc3VsdCA9IHNwZWMKKyAgICByZWMg
PSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1rIiwgb3B0KQorICAgIHBhc3NlZCwgc2tpcHBlZCwgZmFp
bCA9IHJlYy5saXN0b3V0Y29tZXMoKQorICAgIHBhc3NlZCA9IFt4Lm5vZGVpZC5zcGxpdCgiOjoi
KVstMV0gZm9yIHggaW4gcGFzc2VkXQorICAgIGFzc2VydCBsZW4ocGFzc2VkKSA9PSBsZW4ocGFz
c2VkX3Jlc3VsdCkKKyAgICBhc3NlcnQgbGlzdChwYXNzZWQpID09IGxpc3QocGFzc2VkX3Jlc3Vs
dCkKKworCitkZWYgdGVzdF9wYXJhbWV0cml6ZWRfY29sbGVjdGVkX2Zyb21fY29tbWFuZF9saW5l
KHRlc3RkaXIpOgorICAgICIiIlBhcmFtZXRyaXplZCB0ZXN0IG5vdCBjb2xsZWN0ZWQgaWYgdGVz
dCBuYW1lZCBzcGVjaWZpZWQKKyAgICAgICBpbiBjb21tYW5kIGxpbmUgaXNzdWUjNjQ5LgorICAg
ICIiIgorICAgIHB5X2ZpbGUgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9y
dCBweXRlc3QKKyAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJhcmciLCBbTm9uZSwg
MS4zLCAiMi0zIl0pCisgICAgICAgIGRlZiB0ZXN0X2Z1bmMoYXJnKToKKyAgICAgICAgICAgIHBh
c3MKKyAgICAiIiIpCisgICAgZmlsZV9uYW1lID0gb3MucGF0aC5iYXNlbmFtZShweV9maWxlLnN0
cnBhdGgpCisgICAgcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKGZpbGVfbmFtZSArICI6OiIgKyAi
dGVzdF9mdW5jIikKKyAgICByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MykKKworCitkZWYgdGVz
dF9wYXJhbWV0cml6ZWRfY29sbGVjdF93aXRoX3dyb25nX2FyZ3ModGVzdGRpcik6CisgICAgIiIi
VGVzdCBjb2xsZWN0IHBhcmFtZXRyaXplZCBmdW5jIHdpdGggd3JvbmcgbnVtYmVyIG9mIGFyZ3Mu
IiIiCisgICAgcHlfZmlsZSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0
IHB5dGVzdAorCisgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnZm9vLCBiYXInLCBb
KDEsIDIsIDMpXSkKKyAgICAgICAgZGVmIHRlc3RfZnVuYyhmb28sIGJhcik6CisgICAgICAgICAg
ICBwYXNzCisgICAgIiIiKQorCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocHlfZmls
ZSkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAnRSAgIFZhbHVl
RXJyb3I6IEluICJwYXJhbWV0cml6ZSIgdGhlIG51bWJlciBvZiB2YWx1ZXMgKCgxLCAyLCAzKSkg
JworICAgICAgICAnbXVzdCBiZSBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIG5hbWVzIChbXCdmb29c
JywgXCdiYXJcJ10pJworICAgIF0pCisKKworZGVmIHRlc3RfcGFyYW1ldHJpemVkX3dpdGhfa3dh
cmdzKHRlc3RkaXIpOgorICAgICIiIlRlc3QgY29sbGVjdCBwYXJhbWV0cml6ZWQgZnVuYyB3aXRo
IHdyb25nIG51bWJlciBvZiBhcmdzLiIiIgorICAgIHB5X2ZpbGUgPSB0ZXN0ZGlyLm1ha2VweWZp
bGUoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICBAcHl0ZXN0LmZpeHR1cmUo
cGFyYW1zPVsxLDJdKQorICAgICAgICBkZWYgYShyZXF1ZXN0KToKKyAgICAgICAgICAgIHJldHVy
biByZXF1ZXN0LnBhcmFtCisKKyAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKGFyZ25h
bWVzPSdiJywgYXJndmFsdWVzPVsxLCAyXSkKKyAgICAgICAgZGVmIHRlc3RfZnVuYyhhLCBiKToK
KyAgICAgICAgICAgIHBhc3MKKyAgICAiIiIpCisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdChweV9maWxlKQorICAgIGFzc2VydChyZXN1bHQucmV0ID09IDApCisKKworY2xhc3MgVGVz
dEZ1bmN0aW9uYWwob2JqZWN0KToKKworICAgIGRlZiB0ZXN0X21hcmtfcGVyX2Z1bmN0aW9uKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLmhlbGxvCisgICAg
ICAgICAgICBkZWYgdGVzdF9oZWxsbygpOgorICAgICAgICAgICAgICAgIGFzc2VydCBoYXNhdHRy
KHRlc3RfaGVsbG8sICdoZWxsbycpCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QocCkKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsi
KjEgcGFzc2VkKiJdKQorCisgICAgZGVmIHRlc3RfbWFya19wZXJfbW9kdWxlKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICBpdGVtID0gdGVzdGRpci5nZXRpdGVtKCIiIgorICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorICAgICAgICAgICAgcHl0ZXN0bWFyayA9IHB5dGVzdC5tYXJrLmhlbGxvCisg
ICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAg
ICAiIiIpCisgICAgICAgIGtleXdvcmRzID0gaXRlbS5rZXl3b3JkcworICAgICAgICBhc3NlcnQg
J2hlbGxvJyBpbiBrZXl3b3JkcworCisgICAgZGVmIHRlc3RfbWFya2xpc3RfcGVyX2NsYXNzKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICBpdGVtID0gdGVzdGRpci5nZXRpdGVtKCIiIgorICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6
CisgICAgICAgICAgICAgICAgcHl0ZXN0bWFyayA9IFtweXRlc3QubWFyay5oZWxsbywgcHl0ZXN0
Lm1hcmsud29ybGRdCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhzZWxmKToKKyAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0IFRlc3RDbGFzcy50ZXN0X2Z1bmMuaGVsbG8KKyAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0IFRlc3RDbGFzcy50ZXN0X2Z1bmMud29ybGQKKyAgICAgICAgIiIi
KQorICAgICAgICBrZXl3b3JkcyA9IGl0ZW0ua2V5d29yZHMKKyAgICAgICAgYXNzZXJ0ICdoZWxs
bycgaW4ga2V5d29yZHMKKworICAgIGRlZiB0ZXN0X21hcmtsaXN0X3Blcl9tb2R1bGUoc2VsZiwg
dGVzdGRpcik6CisgICAgICAgIGl0ZW0gPSB0ZXN0ZGlyLmdldGl0ZW0oIiIiCisgICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBweXRlc3RtYXJrID0gW3B5dGVzdC5tYXJrLmhl
bGxvLCBweXRlc3QubWFyay53b3JsZF0KKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmpl
Y3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoc2VsZik6CisgICAgICAgICAgICAg
ICAgICAgIGFzc2VydCBUZXN0Q2xhc3MudGVzdF9mdW5jLmhlbGxvCisgICAgICAgICAgICAgICAg
ICAgIGFzc2VydCBUZXN0Q2xhc3MudGVzdF9mdW5jLndvcmxkCisgICAgICAgICIiIikKKyAgICAg
ICAga2V5d29yZHMgPSBpdGVtLmtleXdvcmRzCisgICAgICAgIGFzc2VydCAnaGVsbG8nIGluIGtl
eXdvcmRzCisgICAgICAgIGFzc2VydCAnd29ybGQnIGluIGtleXdvcmRzCisKKyAgICBkZWYgdGVz
dF9tYXJrX3Blcl9jbGFzc19kZWNvcmF0b3Ioc2VsZiwgdGVzdGRpcik6CisgICAgICAgIGl0ZW0g
PSB0ZXN0ZGlyLmdldGl0ZW0oIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAg
ICAgICBAcHl0ZXN0Lm1hcmsuaGVsbG8KKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmpl
Y3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoc2VsZik6CisgICAgICAgICAgICAg
ICAgICAgIGFzc2VydCBUZXN0Q2xhc3MudGVzdF9mdW5jLmhlbGxvCisgICAgICAgICIiIikKKyAg
ICAgICAga2V5d29yZHMgPSBpdGVtLmtleXdvcmRzCisgICAgICAgIGFzc2VydCAnaGVsbG8nIGlu
IGtleXdvcmRzCisKKyAgICBkZWYgdGVzdF9tYXJrX3Blcl9jbGFzc19kZWNvcmF0b3JfcGx1c19l
eGlzdGluZ19kZWMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIGl0ZW0gPSB0ZXN0ZGlyLmdldGl0
ZW0oIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0Lm1h
cmsuaGVsbG8KKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICAg
ICAgICAgIHB5dGVzdG1hcmsgPSBweXRlc3QubWFyay53b3JsZAorICAgICAgICAgICAgICAgIGRl
ZiB0ZXN0X2Z1bmMoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBUZXN0Q2xhc3Mu
dGVzdF9mdW5jLmhlbGxvCisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBUZXN0Q2xhc3MudGVz
dF9mdW5jLndvcmxkCisgICAgICAgICIiIikKKyAgICAgICAga2V5d29yZHMgPSBpdGVtLmtleXdv
cmRzCisgICAgICAgIGFzc2VydCAnaGVsbG8nIGluIGtleXdvcmRzCisgICAgICAgIGFzc2VydCAn
d29ybGQnIGluIGtleXdvcmRzCisKKyAgICBkZWYgdGVzdF9tZXJnaW5nX21hcmtlcnMoc2VsZiwg
dGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBweXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsuaGVs
bG8oInBvczEiLCB4PTEsIHk9MikKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3Qp
OgorICAgICAgICAgICAgICAgICMgY2xhc3NsZXZlbCBvdmVycmlkZXMgbW9kdWxlIGxldmVsCisg
ICAgICAgICAgICAgICAgcHl0ZXN0bWFyayA9IHB5dGVzdC5tYXJrLmhlbGxvKHg9MykKKyAgICAg
ICAgICAgICAgICBAcHl0ZXN0Lm1hcmsuaGVsbG8oInBvczAiLCB6PTQpCisgICAgICAgICAgICAg
ICAgZGVmIHRlc3RfZnVuYyhzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAg
ICAiIiIpCisgICAgICAgIGl0ZW1zLCByZWMgPSB0ZXN0ZGlyLmlubGluZV9nZW5pdGVtcyhwKQor
ICAgICAgICBpdGVtLCA9IGl0ZW1zCisgICAgICAgIGtleXdvcmRzID0gaXRlbS5rZXl3b3Jkcwor
ICAgICAgICBtYXJrZXIgPSBrZXl3b3Jkc1snaGVsbG8nXQorICAgICAgICBhc3NlcnQgbWFya2Vy
LmFyZ3MgPT0gKCJwb3MwIiwgInBvczEiKQorICAgICAgICBhc3NlcnQgbWFya2VyLmt3YXJncyA9
PSB7J3gnOiAxLCAneSc6IDIsICd6JzogNH0KKworICAgICAgICAjIHRlc3QgdGhlIG5ldyBfX2l0
ZXJfXyBpbnRlcmZhY2UKKyAgICAgICAgdmFsdWVzID0gbGlzdChtYXJrZXIpCisgICAgICAgIGFz
c2VydCBsZW4odmFsdWVzKSA9PSAzCisgICAgICAgIGFzc2VydCB2YWx1ZXNbMF0uYXJncyA9PSAo
InBvczAiLCkKKyAgICAgICAgYXNzZXJ0IHZhbHVlc1sxXS5hcmdzID09ICgpCisgICAgICAgIGFz
c2VydCB2YWx1ZXNbMl0uYXJncyA9PSAoInBvczEiLCApCisKKyAgICBAcHl0ZXN0Lm1hcmsueGZh
aWwocmVhc29uPSd1bmZpeGVkJykKKyAgICBkZWYgdGVzdF9tZXJnaW5nX21hcmtlcnNfZGVlcChz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgIyBpc3N1ZSAxOTkgLSBwcm9wYWdhdGUgbWFya2VycyBp
bnRvIG5lc3RlZCBjbGFzc2VzCisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBjbGFzcyBUZXN0QShvYmplY3Qp
OgorICAgICAgICAgICAgICAgIHB5dGVzdG1hcmsgPSBweXRlc3QubWFyay5hCisgICAgICAgICAg
ICAgICAgZGVmIHRlc3RfYihzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IFRydWUK
KyAgICAgICAgICAgICAgICBjbGFzcyBUZXN0QyhvYmplY3QpOgorICAgICAgICAgICAgICAgICAg
ICAjIHRoaXMgb25lIGRpZG50IGdldCBtYXJrZWQKKyAgICAgICAgICAgICAgICAgICAgZGVmIHRl
c3RfZChzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBUcnVlCisgICAgICAg
ICIiIikKKyAgICAgICAgaXRlbXMsIHJlYyA9IHRlc3RkaXIuaW5saW5lX2dlbml0ZW1zKHApCisg
ICAgICAgIGZvciBpdGVtIGluIGl0ZW1zOgorICAgICAgICAgICAgcHJpbnQoaXRlbSwgaXRlbS5r
ZXl3b3JkcykKKyAgICAgICAgICAgIGFzc2VydCAnYScgaW4gaXRlbS5rZXl3b3JkcworCisgICAg
ZGVmIHRlc3RfbWFya19kZWNvcmF0b3Jfc3ViY2xhc3NfZG9lc19ub3RfcHJvcGFnYXRlX3RvX2Jh
c2Uoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5hCisg
ICAgICAgICAgICBjbGFzcyBCYXNlKG9iamVjdCk6IHBhc3MKKworICAgICAgICAgICAgQHB5dGVz
dC5tYXJrLmIKKyAgICAgICAgICAgIGNsYXNzIFRlc3QxKEJhc2UpOgorICAgICAgICAgICAgICAg
IGRlZiB0ZXN0X2ZvbyhzZWxmKTogcGFzcworCisgICAgICAgICAgICBjbGFzcyBUZXN0MihCYXNl
KToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9iYXIoc2VsZik6IHBhc3MKKyAgICAgICAgIiIi
KQorICAgICAgICBpdGVtcywgcmVjID0gdGVzdGRpci5pbmxpbmVfZ2VuaXRlbXMocCkKKyAgICAg
ICAgc2VsZi5hc3NlcnRfbWFya2VycyhpdGVtcywgdGVzdF9mb289KCdhJywgJ2InKSwgdGVzdF9i
YXI9KCdhJywpKQorCisgICAgQHB5dGVzdC5tYXJrLmlzc3VlNTY4CisgICAgQHB5dGVzdC5tYXJr
LnhmYWlsKHJlYXNvbj0ibWFya2VycyBzbWVhciBvbiBtZXRob2RzIG9mIGJhc2UgY2xhc3NlcyIp
CisgICAgZGVmIHRlc3RfbWFya19zaG91bGRfbm90X3Bhc3NfdG9fc2llYmxpbmdfY2xhc3Moc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIGNsYXNzIFRlc3RCYXNlKG9iamVjdCk6
CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfZm9vKHNlbGYpOgorICAgICAgICAgICAgICAgICAg
ICBwYXNzCisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5iCisgICAgICAgICAgICBjbGFzcyBU
ZXN0U3ViKFRlc3RCYXNlKToKKyAgICAgICAgICAgICAgICBwYXNzCisKKworICAgICAgICAgICAg
Y2xhc3MgVGVzdE90aGVyU3ViKFRlc3RCYXNlKToKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAg
ICAgICAgIiIiKQorICAgICAgICBpdGVtcywgcmVjID0gdGVzdGRpci5pbmxpbmVfZ2VuaXRlbXMo
cCkKKyAgICAgICAgYmFzZV9pdGVtLCBzdWJfaXRlbSwgc3ViX2l0ZW1fb3RoZXIgPSBpdGVtcwor
ICAgICAgICBhc3NlcnQgbm90IGhhc2F0dHIoYmFzZV9pdGVtLm9iaiwgJ2InKQorICAgICAgICBh
c3NlcnQgbm90IGhhc2F0dHIoc3ViX2l0ZW1fb3RoZXIub2JqLCAnYicpCisKKyAgICBkZWYgdGVz
dF9tYXJrX2RlY29yYXRvcl9iYXNlY2xhc3Nlc19tZXJnZWQoc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
CisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5hCisgICAgICAgICAgICBjbGFzcyBCYXNlKG9i
amVjdCk6IHBhc3MKKworICAgICAgICAgICAgQHB5dGVzdC5tYXJrLmIKKyAgICAgICAgICAgIGNs
YXNzIEJhc2UyKEJhc2UpOiBwYXNzCisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5jCisgICAg
ICAgICAgICBjbGFzcyBUZXN0MShCYXNlMik6CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfZm9v
KHNlbGYpOiBwYXNzCisKKyAgICAgICAgICAgIGNsYXNzIFRlc3QyKEJhc2UyKToKKyAgICAgICAg
ICAgICAgICBAcHl0ZXN0Lm1hcmsuZAorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2JhcihzZWxm
KTogcGFzcworICAgICAgICAiIiIpCisgICAgICAgIGl0ZW1zLCByZWMgPSB0ZXN0ZGlyLmlubGlu
ZV9nZW5pdGVtcyhwKQorICAgICAgICBzZWxmLmFzc2VydF9tYXJrZXJzKGl0ZW1zLCB0ZXN0X2Zv
bz0oJ2EnLCAnYicsICdjJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9iYXI9
KCdhJywgJ2InLCAnZCcpKQorCisgICAgZGVmIHRlc3RfbWFya193aXRoX3dyb25nX21hcmtlcihz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNl
KCIiIgorICAgICAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgICAgICBjbGFz
cyBweXRlc3RtYXJrKG9iamVjdCk6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAg
ICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgIiIiKQorICAgICAgICB2YWx1ZXMgPSByZXByZWMuZ2V0ZmFpbGVkY29sbGVjdGlvbnMoKQor
ICAgICAgICBhc3NlcnQgbGVuKHZhbHVlcykgPT0gMQorICAgICAgICBhc3NlcnQgIlR5cGVFcnJv
ciIgaW4gc3RyKHZhbHVlc1swXS5sb25ncmVwcikKKworICAgIGRlZiB0ZXN0X21hcmtfZHluYW1p
Y2FsbHlfaW5fZnVuY2FyZyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29u
ZnRlc3QoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0
LmZpeHR1cmUKKyAgICAgICAgICAgIGRlZiBhcmcocmVxdWVzdCk6CisgICAgICAgICAgICAgICAg
cmVxdWVzdC5hcHBseW1hcmtlcihweXRlc3QubWFyay5oZWxsbykKKyAgICAgICAgICAgIGRlZiBw
eXRlc3RfdGVybWluYWxfc3VtbWFyeSh0ZXJtaW5hbHJlcG9ydGVyKToKKyAgICAgICAgICAgICAg
ICB2YWx1ZXMgPSB0ZXJtaW5hbHJlcG9ydGVyLnN0YXRzWydwYXNzZWQnXQorICAgICAgICAgICAg
ICAgIHRlcm1pbmFscmVwb3J0ZXIuX3R3LmxpbmUoImtleXdvcmQ6ICVzIiAlIHZhbHVlc1swXS5r
ZXl3b3JkcykKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgICAgICBkZWYgdGVzdF9mdW5jKGFyZyk6CisgICAgICAgICAgICAgICAgcGFzcworICAg
ICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICJrZXl3b3JkOiAqaGVs
bG8qIgorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfbWVyZ2luZ19tYXJrZXJzX3R3b19mdW5j
dGlvbnMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIi
CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsuaGVs
bG8oInBvczEiLCB6PTQpCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsuaGVsbG8oInBvczAiLCB6
PTMpCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICAgICAgcGFzcwor
ICAgICAgICAiIiIpCisgICAgICAgIGl0ZW1zLCByZWMgPSB0ZXN0ZGlyLmlubGluZV9nZW5pdGVt
cyhwKQorICAgICAgICBpdGVtLCA9IGl0ZW1zCisgICAgICAgIGtleXdvcmRzID0gaXRlbS5rZXl3
b3JkcworICAgICAgICBtYXJrZXIgPSBrZXl3b3Jkc1snaGVsbG8nXQorICAgICAgICB2YWx1ZXMg
PSBsaXN0KG1hcmtlcikKKyAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDIKKyAgICAgICAg
YXNzZXJ0IHZhbHVlc1swXS5hcmdzID09ICgicG9zMCIsKQorICAgICAgICBhc3NlcnQgdmFsdWVz
WzFdLmFyZ3MgPT0gKCJwb3MxIiwpCisKKyAgICBkZWYgdGVzdF9ub19tYXJrZXJfbWF0Y2hfb25f
dW5tYXJrZWRfbmFtZXMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0
Lm1hcmsuc2hvdWxkbWF0Y2gKKyAgICAgICAgICAgIGRlZiB0ZXN0X21hcmtlZCgpOgorICAgICAg
ICAgICAgICAgIGFzc2VydCAxCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X3VubWFya2VkKCk6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0IDEKKyAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0
ZXN0ZGlyLmlubGluZV9ydW4oIi1tIiwgInRlc3RfdW5tYXJrZWQiLCBwKQorICAgICAgICBwYXNz
ZWQsIHNraXBwZWQsIGZhaWxlZCA9IHJlcHJlYy5saXN0b3V0Y29tZXMoKQorICAgICAgICBhc3Nl
cnQgbGVuKHBhc3NlZCkgKyBsZW4oc2tpcHBlZCkgKyBsZW4oZmFpbGVkKSA9PSAwCisgICAgICAg
IGRsaXN0ID0gcmVwcmVjLmdldGNhbGxzKCJweXRlc3RfZGVzZWxlY3RlZCIpCisgICAgICAgIGRl
c2VsZWN0ZWRfdGVzdHMgPSBkbGlzdFswXS5pdGVtcworICAgICAgICBhc3NlcnQgbGVuKGRlc2Vs
ZWN0ZWRfdGVzdHMpID09IDIKKworICAgIGRlZiB0ZXN0X2tleXdvcmRzX2F0X25vZGVfbGV2ZWwo
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZShzY29wZT0ic2Vz
c2lvbiIsIGF1dG91c2U9VHJ1ZSkKKyAgICAgICAgICAgIGRlZiBzb21lKHJlcXVlc3QpOgorICAg
ICAgICAgICAgICAgIHJlcXVlc3Qua2V5d29yZHNbImhlbGxvIl0gPSA0MgorICAgICAgICAgICAg
ICAgIGFzc2VydCAid29ybGQiIG5vdCBpbiByZXF1ZXN0LmtleXdvcmRzCisKKyAgICAgICAgICAg
IEBweXRlc3QuZml4dHVyZShzY29wZT0iZnVuY3Rpb24iLCBhdXRvdXNlPVRydWUpCisgICAgICAg
ICAgICBkZWYgZnVuY3NldHVwKHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIGFzc2VydCAid29y
bGQiIGluIHJlcXVlc3Qua2V5d29yZHMKKyAgICAgICAgICAgICAgICBhc3NlcnQgImhlbGxvIiBp
biAgcmVxdWVzdC5rZXl3b3JkcworCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsud29ybGQKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAg
ICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgICAg
IHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0xKQorCisgICAgZGVmIHRlc3Rfa2V5d29yZF9h
ZGRlZF9mb3Jfc2Vzc2lvbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29u
ZnRlc3QoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBkZWYgcHl0
ZXN0X2NvbGxlY3Rpb25fbW9kaWZ5aXRlbXMoc2Vzc2lvbik6CisgICAgICAgICAgICAgICAgc2Vz
c2lvbi5hZGRfbWFya2VyKCJtYXJrMSIpCisgICAgICAgICAgICAgICAgc2Vzc2lvbi5hZGRfbWFy
a2VyKHB5dGVzdC5tYXJrLm1hcmsyKQorICAgICAgICAgICAgICAgIHNlc3Npb24uYWRkX21hcmtl
cihweXRlc3QubWFyay5tYXJrMykKKyAgICAgICAgICAgICAgICBweXRlc3QucmFpc2VzKFZhbHVl
RXJyb3IsIGxhbWJkYToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlc3Npb24uYWRkX21hcmtl
cigxMCkpCisgICAgICAgICIiIikKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAg
ICAgICAgICAgZGVmIHRlc3Rfc29tZShyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICBhc3NlcnQg
Im1hcmsxIiBpbiByZXF1ZXN0LmtleXdvcmRzCisgICAgICAgICAgICAgICAgYXNzZXJ0ICJtYXJr
MiIgaW4gcmVxdWVzdC5rZXl3b3JkcworICAgICAgICAgICAgICAgIGFzc2VydCAibWFyazMiIGlu
IHJlcXVlc3Qua2V5d29yZHMKKyAgICAgICAgICAgICAgICBhc3NlcnQgMTAgbm90IGluIHJlcXVl
c3Qua2V5d29yZHMKKyAgICAgICAgICAgICAgICBtYXJrZXIgPSByZXF1ZXN0Lm5vZGUuZ2V0X21h
cmtlcigibWFyazEiKQorICAgICAgICAgICAgICAgIGFzc2VydCBtYXJrZXIubmFtZSA9PSAibWFy
azEiCisgICAgICAgICAgICAgICAgYXNzZXJ0IG1hcmtlci5hcmdzID09ICgpCisgICAgICAgICAg
ICAgICAgYXNzZXJ0IG1hcmtlci5rd2FyZ3MgPT0ge30KKyAgICAgICAgIiIiKQorICAgICAgICBy
ZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1tIiwgIm1hcmsxIikKKyAgICAgICAgcmVwcmVj
LmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKyAgICBkZWYgYXNzZXJ0X21hcmtlcnMoc2VsZiwg
aXRlbXMsICoqZXhwZWN0ZWQpOgorICAgICAgICAiIiJhc3NlcnQgdGhhdCBnaXZlbiBpdGVtcyBo
YXZlIGV4cGVjdGVkIG1hcmtlciBuYW1lcyBhcHBsaWVkIHRvIHRoZW0uCisgICAgICAgIGV4cGVj
dGVkIHNob3VsZCBiZSBhIGRpY3Qgb2YgKGl0ZW0gbmFtZSAtPiBzZXEgb2YgZXhwZWN0ZWQgbWFy
a2VyIG5hbWVzKQorCisgICAgICAgIC4uIG5vdGU6OiB0aGlzIGNvdWxkIGJlIG1vdmVkIHRvIGBg
dGVzdGRpcmBgIGlmIHByb3ZlbiB0byBiZSB1c2VmdWwKKyAgICAgICAgdG8gb3RoZXIgbW9kdWxl
cy4KKyAgICAgICAgIiIiCisgICAgICAgIGZyb20gX3B5dGVzdC5tYXJrIGltcG9ydCBNYXJrSW5m
bworICAgICAgICBpdGVtcyA9IGRpY3QoKHgubmFtZSwgeCkgZm9yIHggaW4gaXRlbXMpCisgICAg
ICAgIGZvciBuYW1lLCBleHBlY3RlZF9tYXJrZXJzIGluIGV4cGVjdGVkLml0ZW1zKCk6CisgICAg
ICAgICAgICBtYXJrZXJzID0gaXRlbXNbbmFtZV0ua2V5d29yZHMuX21hcmtlcnMKKyAgICAgICAg
ICAgIG1hcmtlcl9uYW1lcyA9IHNldChbbmFtZSBmb3IgKG5hbWUsIHYpIGluIG1hcmtlcnMuaXRl
bXMoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHYsIE1h
cmtJbmZvKV0pCisgICAgICAgICAgICBhc3NlcnQgbWFya2VyX25hbWVzID09IHNldChleHBlY3Rl
ZF9tYXJrZXJzKQorCisgICAgQHB5dGVzdC5tYXJrLnhmYWlsKHJlYXNvbj0nY2FsbHNwZWMyLnNl
dG11bHRpIG1pc3VzZXMga2V5d29yZHMnKQorICAgIEBweXRlc3QubWFyay5pc3N1ZTE1NDAKKyAg
ICBkZWYgdGVzdF9tYXJrX2Zyb21fcGFyYW1ldGVycyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAg
ICAgICAgICBweXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsuc2tpcGlmKFRydWUsIHJlYXNvbj0nc2tp
cCBhbGwnKQorCisgICAgICAgICAgICAjIHNraXBpZnMgaW5zaWRlIGZpeHR1cmUgcGFyYW1zCisg
ICAgICAgICAgICBwYXJhbXMgPSBbcHl0ZXN0Lm1hcmsuc2tpcGlmKEZhbHNlLCByZWFzb249J2Rv
bnQgc2tpcCcpKCdwYXJhbWV0ZXInKV0KKworCisgICAgICAgICAgICBAcHl0ZXN0LmZpeHR1cmUo
cGFyYW1zPXBhcmFtcykKKyAgICAgICAgICAgIGRlZiBwYXJhbWV0ZXIocmVxdWVzdCk6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3QucGFyYW0KKworCisgICAgICAgICAgICBkZWYgdGVz
dF8xKHBhcmFtZXRlcik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IFRydWUKKyAgICAgICAgIiIi
KQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICByZXByZWMu
YXNzZXJ0b3V0Y29tZShza2lwcGVkPTEpCisKKworY2xhc3MgVGVzdEtleXdvcmRTZWxlY3Rpb24o
b2JqZWN0KToKKworICAgIGRlZiB0ZXN0X3NlbGVjdF9zaW1wbGUoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIGZpbGVfdGVzdCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X29uZSgpOgorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICAgICBjbGFz
cyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9tZXRob2Rfb25l
KHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgNDIgPT0gNDMKKyAgICAgICAgIiIi
KQorCisgICAgICAgIGRlZiBjaGVjayhrZXl3b3JkLCBuYW1lKToKKyAgICAgICAgICAgIHJlcHJl
YyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLXMiLCAiLWsiLCBrZXl3b3JkLCBmaWxlX3Rlc3QpCisg
ICAgICAgICAgICBwYXNzZWQsIHNraXBwZWQsIGZhaWxlZCA9IHJlcHJlYy5saXN0b3V0Y29tZXMo
KQorICAgICAgICAgICAgYXNzZXJ0IGxlbihmYWlsZWQpID09IDEKKyAgICAgICAgICAgIGFzc2Vy
dCBmYWlsZWRbMF0ubm9kZWlkLnNwbGl0KCI6OiIpWy0xXSA9PSBuYW1lCisgICAgICAgICAgICBh
c3NlcnQgbGVuKHJlcHJlYy5nZXRjYWxscygncHl0ZXN0X2Rlc2VsZWN0ZWQnKSkgPT0gMQorCisg
ICAgICAgIGZvciBrZXl3b3JkIGluIFsndGVzdF9vbmUnLCAnZXN0X29uJ106CisgICAgICAgICAg
ICBjaGVjayhrZXl3b3JkLCAndGVzdF9vbmUnKQorICAgICAgICBjaGVjaygnVGVzdENsYXNzIGFu
ZCB0ZXN0JywgJ3Rlc3RfbWV0aG9kX29uZScpCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoImtleXdvcmQiLCBbCisgICAgICAgICd4eHgnLCAneHh4IGFuZCB0ZXN0XzInLCAnVGVzdENs
YXNzJywgJ3h4eCBhbmQgbm90IHRlc3RfMScsCisgICAgICAgICdUZXN0Q2xhc3MgYW5kIHRlc3Rf
MicsICd4eHggYW5kIFRlc3RDbGFzcyBhbmQgdGVzdF8yJ10pCisgICAgZGVmIHRlc3Rfc2VsZWN0
X2V4dHJhX2tleXdvcmRzKHNlbGYsIHRlc3RkaXIsIGtleXdvcmQpOgorICAgICAgICBwID0gdGVz
dGRpci5tYWtlcHlmaWxlKHRlc3Rfc2VsZWN0PSIiIgorICAgICAgICAgICAgZGVmIHRlc3RfMSgp
OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmpl
Y3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0XzIoc2VsZik6CisgICAgICAgICAgICAgICAg
ICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoY29uZnRl
c3Q9IiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0Lmhv
b2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCisgICAgICAgICAgICBkZWYgcHl0ZXN0X3B5Y29sbGVj
dF9tYWtlaXRlbShuYW1lKToKKyAgICAgICAgICAgICAgICBvdXRjb21lID0geWllbGQKKyAgICAg
ICAgICAgICAgICBpZiBuYW1lID09ICJUZXN0Q2xhc3MiOgorICAgICAgICAgICAgICAgICAgICBp
dGVtID0gb3V0Y29tZS5nZXRfcmVzdWx0KCkKKyAgICAgICAgICAgICAgICAgICAgaXRlbS5leHRy
YV9rZXl3b3JkX21hdGNoZXMuYWRkKCJ4eHgiKQorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJl
YyA9IHRlc3RkaXIuaW5saW5lX3J1bihwLmRpcnBhdGgoKSwgJy1zJywgJy1rJywga2V5d29yZCkK
KyAgICAgICAgcHJpbnQoImtleXdvcmQiLCByZXByKGtleXdvcmQpKQorICAgICAgICBwYXNzZWQs
IHNraXBwZWQsIGZhaWxlZCA9IHJlcHJlYy5saXN0b3V0Y29tZXMoKQorICAgICAgICBhc3NlcnQg
bGVuKHBhc3NlZCkgPT0gMQorICAgICAgICBhc3NlcnQgcGFzc2VkWzBdLm5vZGVpZC5lbmRzd2l0
aCgidGVzdF8yIikKKyAgICAgICAgZGxpc3QgPSByZXByZWMuZ2V0Y2FsbHMoInB5dGVzdF9kZXNl
bGVjdGVkIikKKyAgICAgICAgYXNzZXJ0IGxlbihkbGlzdCkgPT0gMQorICAgICAgICBhc3NlcnQg
ZGxpc3RbMF0uaXRlbXNbMF0ubmFtZSA9PSAndGVzdF8xJworCisgICAgZGVmIHRlc3Rfc2VsZWN0
X3N0YXJ0b24oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRocmVlcGFzcyA9IHRlc3RkaXIubWFr
ZXB5ZmlsZSh0ZXN0X3RocmVlcGFzcz0iIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X29uZSgpOiBh
c3NlcnQgMQorICAgICAgICAgICAgZGVmIHRlc3RfdHdvKCk6IGFzc2VydCAxCisgICAgICAgICAg
ICBkZWYgdGVzdF90aHJlZSgpOiBhc3NlcnQgMQorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJl
YyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLWsiLCAidGVzdF90d286IiwgdGhyZWVwYXNzKQorICAg
ICAgICBwYXNzZWQsIHNraXBwZWQsIGZhaWxlZCA9IHJlcHJlYy5saXN0b3V0Y29tZXMoKQorICAg
ICAgICBhc3NlcnQgbGVuKHBhc3NlZCkgPT0gMgorICAgICAgICBhc3NlcnQgbm90IGZhaWxlZAor
ICAgICAgICBkbGlzdCA9IHJlcHJlYy5nZXRjYWxscygicHl0ZXN0X2Rlc2VsZWN0ZWQiKQorICAg
ICAgICBhc3NlcnQgbGVuKGRsaXN0KSA9PSAxCisgICAgICAgIGl0ZW0gPSBkbGlzdFswXS5pdGVt
c1swXQorICAgICAgICBhc3NlcnQgaXRlbS5uYW1lID09ICJ0ZXN0X29uZSIKKworICAgIGRlZiB0
ZXN0X2tleXdvcmRfZXh0cmEoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1h
a2VweWZpbGUoIiIiCisgICAgICAgICAgIGRlZiB0ZXN0X29uZSgpOgorICAgICAgICAgICAgICAg
YXNzZXJ0IDAKKyAgICAgICAgICAgdGVzdF9vbmUubXlrZXl3b3JkID0gVHJ1ZQorICAgICAgICAi
IiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLWsiLCAibXlrZXl3b3Jk
IiwgcCkKKyAgICAgICAgcGFzc2VkLCBza2lwcGVkLCBmYWlsZWQgPSByZXByZWMuY291bnRvdXRj
b21lcygpCisgICAgICAgIGFzc2VydCBmYWlsZWQgPT0gMQorCisgICAgQHB5dGVzdC5tYXJrLnhm
YWlsCisgICAgZGVmIHRlc3Rfa2V5d29yZF9leHRyYV9kYXNoKHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICBkZWYgdGVzdF9vbmUo
KToKKyAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICAgIHRlc3Rfb25lLm15a2V5d29y
ZCA9IFRydWUKKyAgICAgICAgIiIiKQorICAgICAgICAjIHdpdGggYXJncGFyc2UgdGhlIGFyZ3Vt
ZW50IHRvIGFuIG9wdGlvbiBjYW5ub3QKKyAgICAgICAgIyBzdGFydCB3aXRoICctJworICAgICAg
ICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi1rIiwgIi1teWtleXdvcmQiLCBwKQorICAg
ICAgICBwYXNzZWQsIHNraXBwZWQsIGZhaWxlZCA9IHJlcHJlYy5jb3VudG91dGNvbWVzKCkKKyAg
ICAgICAgYXNzZXJ0IHBhc3NlZCArIHNraXBwZWQgKyBmYWlsZWQgPT0gMAorCisgICAgZGVmIHRl
c3Rfbm9fbWFnaWNfdmFsdWVzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiJNYWtlIHN1cmUg
dGhlIHRlc3RzIGRvIG5vdCBtYXRjaCBvbiBtYWdpYyB2YWx1ZXMsCisgICAgICAgIG5vIGRvdWJs
ZSB1bmRlcnNjb3JlZCB2YWx1ZXMsIGxpa2UgJ19fZGljdF9fJywKKyAgICAgICAgYW5kIG5vIGlu
c3RhbmNlIHZhbHVlcywgbGlrZSAnKCknLgorICAgICAgICAiIiIKKyAgICAgICAgcCA9IHRlc3Rk
aXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X29uZSgpOiBhc3NlcnQgMQor
ICAgICAgICAiIiIpCisKKyAgICAgICAgZGVmIGFzc2VydF90ZXN0X2lzX25vdF9zZWxlY3RlZChr
ZXl3b3JkKToKKyAgICAgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigiLWsiLCBr
ZXl3b3JkLCBwKQorICAgICAgICAgICAgcGFzc2VkLCBza2lwcGVkLCBmYWlsZWQgPSByZXByZWMu
Y291bnRvdXRjb21lcygpCisgICAgICAgICAgICBkbGlzdCA9IHJlcHJlYy5nZXRjYWxscygicHl0
ZXN0X2Rlc2VsZWN0ZWQiKQorICAgICAgICAgICAgYXNzZXJ0IHBhc3NlZCArIHNraXBwZWQgKyBm
YWlsZWQgPT0gMAorICAgICAgICAgICAgZGVzZWxlY3RlZF90ZXN0cyA9IGRsaXN0WzBdLml0ZW1z
CisgICAgICAgICAgICBhc3NlcnQgbGVuKGRlc2VsZWN0ZWRfdGVzdHMpID09IDEKKworICAgICAg
ICBhc3NlcnRfdGVzdF9pc19ub3Rfc2VsZWN0ZWQoIl9fIikKKyAgICAgICAgYXNzZXJ0X3Rlc3Rf
aXNfbm90X3NlbGVjdGVkKCIoKSIpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdhcmd2
YWwsIGV4cGVjdGVkJywgWworICAgIChweXRlc3QubWFyay5za2lwKCkoKDEsIDIpKSwKKyAgICAg
UGFyYW1ldGVyU2V0KHZhbHVlcz0oMSwgMiksIG1hcmtzPVtweXRlc3QubWFyay5za2lwXSwgaWQ9
Tm9uZSkpLAorICAgIChweXRlc3QubWFyay54ZmFpbChweXRlc3QubWFyay5za2lwKCkoKDEsIDIp
KSksCisgICAgIFBhcmFtZXRlclNldCh2YWx1ZXM9KDEsIDIpLAorICAgICAgICAgICAgICAgICAg
bWFya3M9W3B5dGVzdC5tYXJrLnhmYWlsLCBweXRlc3QubWFyay5za2lwXSwgaWQ9Tm9uZSkpLAor
CitdKQorQHB5dGVzdC5tYXJrLmZpbHRlcndhcm5pbmdzKCdpZ25vcmUnKQorZGVmIHRlc3RfcGFy
YW1ldGVyc2V0X2V4dHJhY3Rmcm9tKGFyZ3ZhbCwgZXhwZWN0ZWQpOgorICAgIGV4dHJhY3RlZCA9
IFBhcmFtZXRlclNldC5leHRyYWN0X2Zyb20oYXJndmFsKQorICAgIGFzc2VydCBleHRyYWN0ZWQg
PT0gZXhwZWN0ZWQKKworCitkZWYgdGVzdF9sZWdhY3lfdHJhbnNmZXIoKToKKworICAgIGNsYXNz
IEZha2VNb2R1bGUob2JqZWN0KToKKyAgICAgICAgcHl0ZXN0bWFyayA9IFtdCisKKyAgICBjbGFz
cyBGYWtlQ2xhc3Mob2JqZWN0KToKKyAgICAgICAgcHl0ZXN0bWFyayA9IHB5dGVzdC5tYXJrLm5v
ZnVuCisKKyAgICBAcHl0ZXN0Lm1hcmsuZnVuCisgICAgZGVmIGZha2VfbWV0aG9kKHNlbGYpOgor
ICAgICAgICBwYXNzCisKKyAgICB0cmFuc2Zlcl9tYXJrZXJzKGZha2VfbWV0aG9kLCBGYWtlQ2xh
c3MsIEZha2VNb2R1bGUpCisKKyAgICAjIGxlZ2FjeSBtYXJrcyB0cmFuc2ZlciBzbWVhcmVkCisg
ICAgYXNzZXJ0IGZha2VfbWV0aG9kLm5vZnVuCisgICAgYXNzZXJ0IGZha2VfbWV0aG9kLmZ1bgor
ICAgICMgcHJpc3RpbmUgbWFya3MgZG9udCB0cmFuc2ZlcgorICAgIGFzc2VydCBmYWtlX21ldGhv
ZC5weXRlc3RtYXJrID09IFtweXRlc3QubWFyay5mdW4ubWFya10KKworCitjbGFzcyBUZXN0TWFy
a0RlY29yYXRvcihvYmplY3QpOgorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdsaHMs
IHJocywgZXhwZWN0ZWQnLCBbCisgICAgICAgIChweXRlc3QubWFyay5mb28oKSwgcHl0ZXN0Lm1h
cmsuZm9vKCksIFRydWUpLAorICAgICAgICAocHl0ZXN0Lm1hcmsuZm9vKCksIHB5dGVzdC5tYXJr
LmJhcigpLCBGYWxzZSksCisgICAgICAgIChweXRlc3QubWFyay5mb28oKSwgJ2JhcicsIEZhbHNl
KSwKKyAgICAgICAgKCdmb28nLCBweXRlc3QubWFyay5iYXIoKSwgRmFsc2UpCisgICAgXSkKKyAg
ICBkZWYgdGVzdF9fZXFfXyhzZWxmLCBsaHMsIHJocywgZXhwZWN0ZWQpOgorICAgICAgICBhc3Nl
cnQgKGxocyA9PSByaHMpID09IGV4cGVjdGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL3Rlc3RfbW9kaW1wb3J0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X21vZGltcG9y
dC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yYWI4NmJmN2FmMTA2NjQ4M2VmNzIzYWMzZDI4M2Y1Mzc0MWNhNmFj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X21vZGltcG9ydC5w
eQpAQCAtMCwwICsxLDI1IEBACitpbXBvcnQgcHkKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQg
c3lzCitpbXBvcnQgcHl0ZXN0CitpbXBvcnQgX3B5dGVzdAorCitNT0RTRVQgPSBbCisgICAgeCBm
b3IgeCBpbiBweS5wYXRoLmxvY2FsKF9weXRlc3QuX19maWxlX18pLmRpcnBhdGgoKS52aXNpdCgn
Ki5weScpCisgICAgaWYgeC5wdXJlYmFzZW5hbWUgIT0gJ19faW5pdF9fJworXQorCisKK0BweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgnbW9kZmlsZScsIE1PRFNFVCwgaWRzPWxhbWJkYSB4OiB4LnB1
cmViYXNlbmFtZSkKK2RlZiB0ZXN0X2ZpbGVpbXBvcnQobW9kZmlsZSk6CisgICAgIyB0aGlzIHRl
c3QgZW5zdXJlcyBhbGwgaW50ZXJuYWwgcGFja2FnZXMgY2FuIGltcG9ydAorICAgICMgd2l0aG91
dCBuZWVkaW5nIHRoZSBweXRlc3QgbmFtZXNwYWNlIGJlaW5nIHNldAorICAgICMgdGhpcyBpcyBj
cml0aWNhbCBmb3IgdGhlIGluaXRpYWxpemF0aW9uIG9mIHhkaXN0CisKKyAgICByZXMgPSBzdWJw
cm9jZXNzLmNhbGwoWworICAgICAgICBzeXMuZXhlY3V0YWJsZSwKKyAgICAgICAgJy1jJywgJ2lt
cG9ydCBzeXMsIHB5OyBweS5wYXRoLmxvY2FsKHN5cy5hcmd2WzFdKS5weWltcG9ydCgpJywKKyAg
ICAgICAgbW9kZmlsZS5zdHJwYXRoLAorICAgIF0pCisgICAgaWYgcmVzOgorICAgICAgICBweXRl
c3QuZmFpbCgiY29tbWFuZCByZXN1bHQgJXMiICUgcmVzKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy90ZXN0X21vbmtleXBhdGNoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0
X21vbmtleXBhdGNoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0Mjc5MDhhYjNiY2ZjZTJmZTU5OWQ3ZTg5YzBi
MTgwNTc0MTc2YWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rf
bW9ua2V5cGF0Y2gucHkKQEAgLTAsMCArMSwzMjkgQEAKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQg
YWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCBvcworaW1w
b3J0IHN5cworaW1wb3J0IHRleHR3cmFwCisKK2ltcG9ydCBweXRlc3QKK2Zyb20gX3B5dGVzdC5t
b25rZXlwYXRjaCBpbXBvcnQgTW9ua2V5UGF0Y2gKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBt
cCgpOgorICAgIGN3ZCA9IG9zLmdldGN3ZCgpCisgICAgc3lzX3BhdGggPSBsaXN0KHN5cy5wYXRo
KQorICAgIHlpZWxkIE1vbmtleVBhdGNoKCkKKyAgICBzeXMucGF0aFs6XSA9IHN5c19wYXRoCisg
ICAgb3MuY2hkaXIoY3dkKQorCisKK2RlZiB0ZXN0X3NldGF0dHIoKToKKyAgICBjbGFzcyBBKG9i
amVjdCk6CisgICAgICAgIHggPSAxCisKKyAgICBtb25rZXlwYXRjaCA9IE1vbmtleVBhdGNoKCkK
KyAgICBweXRlc3QucmFpc2VzKEF0dHJpYnV0ZUVycm9yLCAibW9ua2V5cGF0Y2guc2V0YXR0cihB
LCAnbm90ZXhpc3RzJywgMikiKQorICAgIG1vbmtleXBhdGNoLnNldGF0dHIoQSwgJ3knLCAyLCBy
YWlzaW5nPUZhbHNlKQorICAgIGFzc2VydCBBLnkgPT0gMgorICAgIG1vbmtleXBhdGNoLnVuZG8o
KQorICAgIGFzc2VydCBub3QgaGFzYXR0cihBLCAneScpCisKKyAgICBtb25rZXlwYXRjaCA9IE1v
bmtleVBhdGNoKCkKKyAgICBtb25rZXlwYXRjaC5zZXRhdHRyKEEsICd4JywgMikKKyAgICBhc3Nl
cnQgQS54ID09IDIKKyAgICBtb25rZXlwYXRjaC5zZXRhdHRyKEEsICd4JywgMykKKyAgICBhc3Nl
cnQgQS54ID09IDMKKyAgICBtb25rZXlwYXRjaC51bmRvKCkKKyAgICBhc3NlcnQgQS54ID09IDEK
KworICAgIEEueCA9IDUKKyAgICBtb25rZXlwYXRjaC51bmRvKCkgICMgZG91YmxlLXVuZG8gbWFr
ZXMgbm8gbW9kaWZpY2F0aW9uCisgICAgYXNzZXJ0IEEueCA9PSA1CisKKworY2xhc3MgVGVzdFNl
dGF0dHJXaXRoSW1wb3J0UGF0aChvYmplY3QpOgorICAgIGRlZiB0ZXN0X3N0cmluZ19leHByZXNz
aW9uKHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cigib3Mu
cGF0aC5hYnNwYXRoIiwgbGFtYmRhIHg6ICJoZWxsbzIiKQorICAgICAgICBhc3NlcnQgb3MucGF0
aC5hYnNwYXRoKCIxMjMiKSA9PSAiaGVsbG8yIgorCisgICAgZGVmIHRlc3Rfc3RyaW5nX2V4cHJl
c3Npb25fY2xhc3Moc2VsZiwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBtb25rZXlwYXRjaC5zZXRh
dHRyKCJfcHl0ZXN0LmNvbmZpZy5Db25maWciLCA0MikKKyAgICAgICAgaW1wb3J0IF9weXRlc3QK
KyAgICAgICAgYXNzZXJ0IF9weXRlc3QuY29uZmlnLkNvbmZpZyA9PSA0MgorCisgICAgZGVmIHRl
c3RfdW5pY29kZV9zdHJpbmcoc2VsZiwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBtb25rZXlwYXRj
aC5zZXRhdHRyKCJfcHl0ZXN0LmNvbmZpZy5Db25maWciLCA0MikKKyAgICAgICAgaW1wb3J0IF9w
eXRlc3QKKyAgICAgICAgYXNzZXJ0IF9weXRlc3QuY29uZmlnLkNvbmZpZyA9PSA0MgorICAgICAg
ICBtb25rZXlwYXRjaC5kZWxhdHRyKCJfcHl0ZXN0LmNvbmZpZy5Db25maWciKQorCisgICAgZGVm
IHRlc3Rfd3JvbmdfdGFyZ2V0KHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgcHl0ZXN0LnJh
aXNlcyhUeXBlRXJyb3IsIGxhbWJkYTogbW9ua2V5cGF0Y2guc2V0YXR0cihOb25lLCBOb25lKSkK
KworICAgIGRlZiB0ZXN0X3Vua25vd25faW1wb3J0KHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAg
ICAgcHl0ZXN0LnJhaXNlcyhJbXBvcnRFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICBsYW1i
ZGE6IG1vbmtleXBhdGNoLnNldGF0dHIoInVua24xMjMuY2xhc3N4IiwgTm9uZSkpCisKKyAgICBk
ZWYgdGVzdF91bmtub3duX2F0dHIoc2VsZiwgbW9ua2V5cGF0Y2gpOgorICAgICAgICBweXRlc3Qu
cmFpc2VzKEF0dHJpYnV0ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYTogbW9u
a2V5cGF0Y2guc2V0YXR0cigib3MucGF0aC5xd2Vxd2UiLCBOb25lKSkKKworICAgIGRlZiB0ZXN0
X3Vua25vd25fYXR0cl9ub25fcmFpc2luZyhzZWxmLCBtb25rZXlwYXRjaCk6CisgICAgICAgICMg
aHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy83NDYKKyAgICAgICAg
bW9ua2V5cGF0Y2guc2V0YXR0cignb3MucGF0aC5xd2Vxd2UnLCA0MiwgcmFpc2luZz1GYWxzZSkK
KyAgICAgICAgYXNzZXJ0IG9zLnBhdGgucXdlcXdlID09IDQyCisKKyAgICBkZWYgdGVzdF9kZWxh
dHRyKHNlbGYsIG1vbmtleXBhdGNoKToKKyAgICAgICAgbW9ua2V5cGF0Y2guZGVsYXR0cigib3Mu
cGF0aC5hYnNwYXRoIikKKyAgICAgICAgYXNzZXJ0IG5vdCBoYXNhdHRyKG9zLnBhdGgsICJhYnNw
YXRoIikKKyAgICAgICAgbW9ua2V5cGF0Y2gudW5kbygpCisgICAgICAgIGFzc2VydCBvcy5wYXRo
LmFic3BhdGgKKworCitkZWYgdGVzdF9kZWxhdHRyKCk6CisgICAgY2xhc3MgQShvYmplY3QpOgor
ICAgICAgICB4ID0gMQorCisgICAgbW9ua2V5cGF0Y2ggPSBNb25rZXlQYXRjaCgpCisgICAgbW9u
a2V5cGF0Y2guZGVsYXR0cihBLCAneCcpCisgICAgYXNzZXJ0IG5vdCBoYXNhdHRyKEEsICd4JykK
KyAgICBtb25rZXlwYXRjaC51bmRvKCkKKyAgICBhc3NlcnQgQS54ID09IDEKKworICAgIG1vbmtl
eXBhdGNoID0gTW9ua2V5UGF0Y2goKQorICAgIG1vbmtleXBhdGNoLmRlbGF0dHIoQSwgJ3gnKQor
ICAgIHB5dGVzdC5yYWlzZXMoQXR0cmlidXRlRXJyb3IsICJtb25rZXlwYXRjaC5kZWxhdHRyKEEs
ICd5JykiKQorICAgIG1vbmtleXBhdGNoLmRlbGF0dHIoQSwgJ3knLCByYWlzaW5nPUZhbHNlKQor
ICAgIG1vbmtleXBhdGNoLnNldGF0dHIoQSwgJ3gnLCA1LCByYWlzaW5nPUZhbHNlKQorICAgIGFz
c2VydCBBLnggPT0gNQorICAgIG1vbmtleXBhdGNoLnVuZG8oKQorICAgIGFzc2VydCBBLnggPT0g
MQorCisKK2RlZiB0ZXN0X3NldGl0ZW0oKToKKyAgICBkID0geyd4JzogMX0KKyAgICBtb25rZXlw
YXRjaCA9IE1vbmtleVBhdGNoKCkKKyAgICBtb25rZXlwYXRjaC5zZXRpdGVtKGQsICd4JywgMikK
KyAgICBtb25rZXlwYXRjaC5zZXRpdGVtKGQsICd5JywgMTcwMCkKKyAgICBtb25rZXlwYXRjaC5z
ZXRpdGVtKGQsICd5JywgMTcwMCkKKyAgICBhc3NlcnQgZFsneCddID09IDIKKyAgICBhc3NlcnQg
ZFsneSddID09IDE3MDAKKyAgICBtb25rZXlwYXRjaC5zZXRpdGVtKGQsICd4JywgMykKKyAgICBh
c3NlcnQgZFsneCddID09IDMKKyAgICBtb25rZXlwYXRjaC51bmRvKCkKKyAgICBhc3NlcnQgZFsn
eCddID09IDEKKyAgICBhc3NlcnQgJ3knIG5vdCBpbiBkCisgICAgZFsneCddID0gNQorICAgIG1v
bmtleXBhdGNoLnVuZG8oKQorICAgIGFzc2VydCBkWyd4J10gPT0gNQorCisKK2RlZiB0ZXN0X3Nl
dGl0ZW1fZGVsZXRlZF9tZWFud2hpbGUoKToKKyAgICBkID0ge30KKyAgICBtb25rZXlwYXRjaCA9
IE1vbmtleVBhdGNoKCkKKyAgICBtb25rZXlwYXRjaC5zZXRpdGVtKGQsICd4JywgMikKKyAgICBk
ZWwgZFsneCddCisgICAgbW9ua2V5cGF0Y2gudW5kbygpCisgICAgYXNzZXJ0IG5vdCBkCisKKwor
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJiZWZvcmUiLCBbVHJ1ZSwgRmFsc2VdKQorZGVmIHRl
c3Rfc2V0ZW52X2RlbGV0ZWRfbWVhbndoaWxlKGJlZm9yZSk6CisgICAga2V5ID0gInF3cGVvaXAx
MjMiCisgICAgaWYgYmVmb3JlOgorICAgICAgICBvcy5lbnZpcm9uW2tleV0gPSAid29ybGQiCisg
ICAgbW9ua2V5cGF0Y2ggPSBNb25rZXlQYXRjaCgpCisgICAgbW9ua2V5cGF0Y2guc2V0ZW52KGtl
eSwgJ2hlbGxvJykKKyAgICBkZWwgb3MuZW52aXJvbltrZXldCisgICAgbW9ua2V5cGF0Y2gudW5k
bygpCisgICAgaWYgYmVmb3JlOgorICAgICAgICBhc3NlcnQgb3MuZW52aXJvbltrZXldID09ICJ3
b3JsZCIKKyAgICAgICAgZGVsIG9zLmVudmlyb25ba2V5XQorICAgIGVsc2U6CisgICAgICAgIGFz
c2VydCBrZXkgbm90IGluIG9zLmVudmlyb24KKworCitkZWYgdGVzdF9kZWxpdGVtKCk6CisgICAg
ZCA9IHsneCc6IDF9CisgICAgbW9ua2V5cGF0Y2ggPSBNb25rZXlQYXRjaCgpCisgICAgbW9ua2V5
cGF0Y2guZGVsaXRlbShkLCAneCcpCisgICAgYXNzZXJ0ICd4JyBub3QgaW4gZAorICAgIG1vbmtl
eXBhdGNoLmRlbGl0ZW0oZCwgJ3knLCByYWlzaW5nPUZhbHNlKQorICAgIHB5dGVzdC5yYWlzZXMo
S2V5RXJyb3IsICJtb25rZXlwYXRjaC5kZWxpdGVtKGQsICd5JykiKQorICAgIGFzc2VydCBub3Qg
ZAorICAgIG1vbmtleXBhdGNoLnNldGl0ZW0oZCwgJ3knLCAxNzAwKQorICAgIGFzc2VydCBkWyd5
J10gPT0gMTcwMAorICAgIGRbJ2hlbGxvJ10gPSAnd29ybGQnCisgICAgbW9ua2V5cGF0Y2guc2V0
aXRlbShkLCAneCcsIDE1MDApCisgICAgYXNzZXJ0IGRbJ3gnXSA9PSAxNTAwCisgICAgbW9ua2V5
cGF0Y2gudW5kbygpCisgICAgYXNzZXJ0IGQgPT0geydoZWxsbyc6ICd3b3JsZCcsICd4JzogMX0K
KworCitkZWYgdGVzdF9zZXRlbnYoKToKKyAgICBtb25rZXlwYXRjaCA9IE1vbmtleVBhdGNoKCkK
KyAgICBtb25rZXlwYXRjaC5zZXRlbnYoJ1hZWjEyMycsIDIpCisgICAgaW1wb3J0IG9zCisgICAg
YXNzZXJ0IG9zLmVudmlyb25bJ1hZWjEyMyddID09ICIyIgorICAgIG1vbmtleXBhdGNoLnVuZG8o
KQorICAgIGFzc2VydCAnWFlaMTIzJyBub3QgaW4gb3MuZW52aXJvbgorCisKK2RlZiB0ZXN0X2Rl
bGVudigpOgorICAgIG5hbWUgPSAneHl6MTIzNCcKKyAgICBhc3NlcnQgbmFtZSBub3QgaW4gb3Mu
ZW52aXJvbgorICAgIG1vbmtleXBhdGNoID0gTW9ua2V5UGF0Y2goKQorICAgIHB5dGVzdC5yYWlz
ZXMoS2V5RXJyb3IsICJtb25rZXlwYXRjaC5kZWxlbnYoJXIsIHJhaXNpbmc9VHJ1ZSkiICUgbmFt
ZSkKKyAgICBtb25rZXlwYXRjaC5kZWxlbnYobmFtZSwgcmFpc2luZz1GYWxzZSkKKyAgICBtb25r
ZXlwYXRjaC51bmRvKCkKKyAgICBvcy5lbnZpcm9uW25hbWVdID0gIjEiCisgICAgdHJ5OgorICAg
ICAgICBtb25rZXlwYXRjaCA9IE1vbmtleVBhdGNoKCkKKyAgICAgICAgbW9ua2V5cGF0Y2guZGVs
ZW52KG5hbWUpCisgICAgICAgIGFzc2VydCBuYW1lIG5vdCBpbiBvcy5lbnZpcm9uCisgICAgICAg
IG1vbmtleXBhdGNoLnNldGVudihuYW1lLCAiMyIpCisgICAgICAgIGFzc2VydCBvcy5lbnZpcm9u
W25hbWVdID09ICIzIgorICAgICAgICBtb25rZXlwYXRjaC51bmRvKCkKKyAgICAgICAgYXNzZXJ0
IG9zLmVudmlyb25bbmFtZV0gPT0gIjEiCisgICAgZmluYWxseToKKyAgICAgICAgaWYgbmFtZSBp
biBvcy5lbnZpcm9uOgorICAgICAgICAgICAgZGVsIG9zLmVudmlyb25bbmFtZV0KKworCitkZWYg
dGVzdF9zZXRlbnZfcHJlcGVuZCgpOgorICAgIGltcG9ydCBvcworICAgIG1vbmtleXBhdGNoID0g
TW9ua2V5UGF0Y2goKQorICAgIG1vbmtleXBhdGNoLnNldGVudignWFlaMTIzJywgMiwgcHJlcGVu
ZD0iLSIpCisgICAgYXNzZXJ0IG9zLmVudmlyb25bJ1hZWjEyMyddID09ICIyIgorICAgIG1vbmtl
eXBhdGNoLnNldGVudignWFlaMTIzJywgMywgcHJlcGVuZD0iLSIpCisgICAgYXNzZXJ0IG9zLmVu
dmlyb25bJ1hZWjEyMyddID09ICIzLTIiCisgICAgbW9ua2V5cGF0Y2gudW5kbygpCisgICAgYXNz
ZXJ0ICdYWVoxMjMnIG5vdCBpbiBvcy5lbnZpcm9uCisKKworZGVmIHRlc3RfbW9ua2V5cGF0Y2hf
cGx1Z2luKHRlc3RkaXIpOgorICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bnNvdXJjZSgi
IiIKKyAgICAgICAgZGVmIHRlc3RfbWV0aG9kKG1vbmtleXBhdGNoKToKKyAgICAgICAgICAgIGFz
c2VydCBtb25rZXlwYXRjaC5fX2NsYXNzX18uX19uYW1lX18gPT0gIk1vbmtleVBhdGNoIgorICAg
ICIiIikKKyAgICByZXMgPSByZXByZWMuY291bnRvdXRjb21lcygpCisgICAgYXNzZXJ0IHR1cGxl
KHJlcykgPT0gKDEsIDAsIDApLCByZXMKKworCitkZWYgdGVzdF9zeXNwYXRoX3ByZXBlbmQobXAp
OgorICAgIG9sZCA9IGxpc3Qoc3lzLnBhdGgpCisgICAgbXAuc3lzcGF0aF9wcmVwZW5kKCd3b3Js
ZCcpCisgICAgbXAuc3lzcGF0aF9wcmVwZW5kKCdoZWxsbycpCisgICAgYXNzZXJ0IHN5cy5wYXRo
WzBdID09ICJoZWxsbyIKKyAgICBhc3NlcnQgc3lzLnBhdGhbMV0gPT0gIndvcmxkIgorICAgIG1w
LnVuZG8oKQorICAgIGFzc2VydCBzeXMucGF0aCA9PSBvbGQKKyAgICBtcC51bmRvKCkKKyAgICBh
c3NlcnQgc3lzLnBhdGggPT0gb2xkCisKKworZGVmIHRlc3Rfc3lzcGF0aF9wcmVwZW5kX2RvdWJs
ZV91bmRvKG1wKToKKyAgICBtcC5zeXNwYXRoX3ByZXBlbmQoJ2hlbGxvIHdvcmxkJykKKyAgICBt
cC51bmRvKCkKKyAgICBzeXMucGF0aC5hcHBlbmQoJ21vcmUgaGVsbG8gd29ybGQnKQorICAgIG1w
LnVuZG8oKQorICAgIGFzc2VydCBzeXMucGF0aFstMV0gPT0gJ21vcmUgaGVsbG8gd29ybGQnCisK
KworZGVmIHRlc3RfY2hkaXJfd2l0aF9wYXRoX2xvY2FsKG1wLCB0bXBkaXIpOgorICAgIG1wLmNo
ZGlyKHRtcGRpcikKKyAgICBhc3NlcnQgb3MuZ2V0Y3dkKCkgPT0gdG1wZGlyLnN0cnBhdGgKKwor
CitkZWYgdGVzdF9jaGRpcl93aXRoX3N0cihtcCwgdG1wZGlyKToKKyAgICBtcC5jaGRpcih0bXBk
aXIuc3RycGF0aCkKKyAgICBhc3NlcnQgb3MuZ2V0Y3dkKCkgPT0gdG1wZGlyLnN0cnBhdGgKKwor
CitkZWYgdGVzdF9jaGRpcl91bmRvKG1wLCB0bXBkaXIpOgorICAgIGN3ZCA9IG9zLmdldGN3ZCgp
CisgICAgbXAuY2hkaXIodG1wZGlyKQorICAgIG1wLnVuZG8oKQorICAgIGFzc2VydCBvcy5nZXRj
d2QoKSA9PSBjd2QKKworCitkZWYgdGVzdF9jaGRpcl9kb3VibGVfdW5kbyhtcCwgdG1wZGlyKToK
KyAgICBtcC5jaGRpcih0bXBkaXIuc3RycGF0aCkKKyAgICBtcC51bmRvKCkKKyAgICB0bXBkaXIu
Y2hkaXIoKQorICAgIG1wLnVuZG8oKQorICAgIGFzc2VydCBvcy5nZXRjd2QoKSA9PSB0bXBkaXIu
c3RycGF0aAorCisKK2RlZiB0ZXN0X2lzc3VlMTg1X3RpbWVfYnJlYWtzKHRlc3RkaXIpOgorICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IHRpbWUKKyAgICAgICAgZGVm
IHRlc3RfbShtb25rZXlwYXRjaCk6CisgICAgICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAg
ICAgIHJhaXNlIEV4Y2VwdGlvbgorICAgICAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cih0aW1l
LCAidGltZSIsIGYpCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkK
KyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAgICoxIHBhc3NlZCoK
KyAgICAiIiIpCisKKworZGVmIHRlc3RfaW1wb3J0ZXJyb3IodGVzdGRpcik6CisgICAgcCA9IHRl
c3RkaXIubWtweWRpcigicGFja2FnZSIpCisgICAgcC5qb2luKCJhLnB5Iikud3JpdGUodGV4dHdy
YXAuZGVkZW50KCIiIlwKKyAgICAgICAgaW1wb3J0IGRvZXNub3RleGlzdAorCisgICAgICAgIHgg
PSAxCisgICAgIiIiKSkKKyAgICB0ZXN0ZGlyLnRtcGRpci5qb2luKCJ0ZXN0X2ltcG9ydGVycm9y
LnB5Iikud3JpdGUodGV4dHdyYXAuZGVkZW50KCIiIlwKKyAgICAgICAgZGVmIHRlc3RfaW1wb3J0
ZXJyb3IobW9ua2V5cGF0Y2gpOgorICAgICAgICAgICAgbW9ua2V5cGF0Y2guc2V0YXR0cigncGFj
a2FnZS5hLngnLCAyKQorICAgICIiIikpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
KQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiIiIKKyAgICAgICAgKmltcG9ydCBl
cnJvciBpbiBwYWNrYWdlLmE6IE5vIG1vZHVsZSBuYW1lZCB7MH1kb2Vzbm90ZXhpc3R7MH0qCisg
ICAgIiIiLmZvcm1hdCgiJyIgaWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLCAwKSBlbHNlICIiKSkK
KworCitjbGFzcyBTYW1wbGVOZXcob2JqZWN0KToKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVm
IGhlbGxvKCk6CisgICAgICAgIHJldHVybiBUcnVlCisKKworY2xhc3MgU2FtcGxlTmV3SW5oZXJp
dChTYW1wbGVOZXcpOgorICAgIHBhc3MKKworCitjbGFzcyBTYW1wbGVPbGQob2JqZWN0KToKKyAg
ICAjIG9sZHN0eWxlIG9uIHB5dGhvbjIKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGhlbGxv
KCk6CisgICAgICAgIHJldHVybiBUcnVlCisKKworY2xhc3MgU2FtcGxlT2xkSW5oZXJpdChTYW1w
bGVPbGQpOgorICAgIHBhc3MKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ1NhbXBsZScs
IFsKKyAgICBTYW1wbGVOZXcsIFNhbXBsZU5ld0luaGVyaXQsCisgICAgU2FtcGxlT2xkLCBTYW1w
bGVPbGRJbmhlcml0LAorXSwgaWRzPVsnbmV3JywgJ25ldy1pbmhlcml0JywgJ29sZCcsICdvbGQt
aW5oZXJpdCddKQorZGVmIHRlc3RfaXNzdWUxNTZfdW5kb19zdGF0aWNtZXRob2QoU2FtcGxlKToK
KyAgICBtb25rZXlwYXRjaCA9IE1vbmtleVBhdGNoKCkKKworICAgIG1vbmtleXBhdGNoLnNldGF0
dHIoU2FtcGxlLCAnaGVsbG8nLCBOb25lKQorICAgIGFzc2VydCBTYW1wbGUuaGVsbG8gaXMgTm9u
ZQorCisgICAgbW9ua2V5cGF0Y2gudW5kbygpCisgICAgYXNzZXJ0IFNhbXBsZS5oZWxsbygpCisK
KworZGVmIHRlc3RfaXNzdWUxMzM4X25hbWVfcmVzb2x2aW5nKCk6CisgICAgcHl0ZXN0LmltcG9y
dG9yc2tpcCgncmVxdWVzdHMnKQorICAgIG1vbmtleXBhdGNoID0gTW9ua2V5UGF0Y2goKQorICAg
IHRyeToKKyAgICAgICAgbW9ua2V5cGF0Y2guZGVsYXR0cigncmVxdWVzdHMuc2Vzc2lvbnMuU2Vz
c2lvbi5yZXF1ZXN0JykKKyAgICBmaW5hbGx5OgorICAgICAgICBtb25rZXlwYXRjaC51bmRvKCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9ub2Rlcy5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvdGVzdF9ub2Rlcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZjQ1NDBmOTliOTY0NTEzZjZm
NmY1OTFkZDBlNjExOWEwNjk1OTZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy90ZXN0X25vZGVzLnB5CkBAIC0wLDAgKzEsMTggQEAKK2ltcG9ydCBweXRlc3QKKworZnJv
bSBfcHl0ZXN0IGltcG9ydCBub2RlcworCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiYmFz
ZWlkLCBub2RlaWQsIGV4cGVjdGVkIiwgKAorICAgICgnJywgJycsIFRydWUpLAorICAgICgnJywg
J2ZvbycsIFRydWUpLAorICAgICgnJywgJ2Zvby9iYXInLCBUcnVlKSwKKyAgICAoJycsICdmb28v
YmFyOjpUZXN0QmF6OjooKScsIFRydWUpLAorICAgICgnZm9vJywgJ2Zvb2QnLCBGYWxzZSksCisg
ICAgKCdmb28vYmFyOjpUZXN0QmF6OjooKScsICdmb28vYmFyJywgRmFsc2UpLAorICAgICgnZm9v
L2Jhcjo6VGVzdEJhejo6KCknLCAnZm9vL2Jhcjo6VGVzdEJvcDo6KCknLCBGYWxzZSksCisgICAg
KCdmb28vYmFyJywgJ2Zvby9iYXI6OlRlc3RCb3A6OigpJywgVHJ1ZSksCispKQorZGVmIHRlc3Rf
aXNjaGlsZG5vZGUoYmFzZWlkLCBub2RlaWQsIGV4cGVjdGVkKToKKyAgICByZXN1bHQgPSBub2Rl
cy5pc2NoaWxkbm9kZShiYXNlaWQsIG5vZGVpZCkKKyAgICBhc3NlcnQgcmVzdWx0IGlzIGV4cGVj
dGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfbm9zZS5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvdGVzdF9ub3NlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmM2UxYTk0YjA1YmZjYzc5
NGVlMWI0NWQzZjY0MWUxNDIyMzBkZjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL3Rlc3Rfbm9zZS5weQpAQCAtMCwwICsxLDQwOSBAQAorZnJvbSBfX2Z1dHVyZV9fIGlt
cG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgoraW1wb3J0IHB5
dGVzdAorCisKK2RlZiBzZXR1cF9tb2R1bGUobW9kKToKKyAgICBtb2Qubm9zZSA9IHB5dGVzdC5p
bXBvcnRvcnNraXAoIm5vc2UiKQorCisKK2RlZiB0ZXN0X25vc2Vfc2V0dXAodGVzdGRpcik6Cisg
ICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgdmFsdWVzID0gW10KKyAgICAg
ICAgZnJvbSBub3NlLnRvb2xzIGltcG9ydCB3aXRoX3NldHVwCisKKyAgICAgICAgQHdpdGhfc2V0
dXAobGFtYmRhOiB2YWx1ZXMuYXBwZW5kKDEpLCBsYW1iZGE6IHZhbHVlcy5hcHBlbmQoMikpCisg
ICAgICAgIGRlZiB0ZXN0X2hlbGxvKCk6CisgICAgICAgICAgICBhc3NlcnQgdmFsdWVzID09IFsx
XQorCisgICAgICAgIGRlZiB0ZXN0X3dvcmxkKCk6CisgICAgICAgICAgICBhc3NlcnQgdmFsdWVz
ID09IFsxLDJdCisKKyAgICAgICAgdGVzdF9oZWxsby5zZXR1cCA9IGxhbWJkYTogdmFsdWVzLmFw
cGVuZCgxKQorICAgICAgICB0ZXN0X2hlbGxvLnRlYXJkb3duID0gbGFtYmRhOiB2YWx1ZXMuYXBw
ZW5kKDIpCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAsICctcCcs
ICdub3NlJykKKyAgICByZXN1bHQuYXNzZXJ0X291dGNvbWVzKHBhc3NlZD0yKQorCisKK2RlZiB0
ZXN0X3NldHVwX2Z1bmNfd2l0aF9zZXR1cF9kZWNvcmF0b3IoKToKKyAgICBmcm9tIF9weXRlc3Qu
bm9zZSBpbXBvcnQgY2FsbF9vcHRpb25hbAorICAgIHZhbHVlcyA9IFtdCisKKyAgICBjbGFzcyBB
KG9iamVjdCk6CisgICAgICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUpCisgICAgICAg
IGRlZiBmKHNlbGYpOgorICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgxKQorCisgICAgY2FsbF9v
cHRpb25hbChBKCksICJmIikKKyAgICBhc3NlcnQgbm90IHZhbHVlcworCisKK2RlZiB0ZXN0X3Nl
dHVwX2Z1bmNfbm90X2NhbGxhYmxlKCk6CisgICAgZnJvbSBfcHl0ZXN0Lm5vc2UgaW1wb3J0IGNh
bGxfb3B0aW9uYWwKKworICAgIGNsYXNzIEEob2JqZWN0KToKKyAgICAgICAgZiA9IDEKKworICAg
IGNhbGxfb3B0aW9uYWwoQSgpLCAiZiIpCisKKworZGVmIHRlc3Rfbm9zZV9zZXR1cF9mdW5jKHRl
c3RkaXIpOgorICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGZyb20gbm9z
ZS50b29scyBpbXBvcnQgd2l0aF9zZXR1cAorCisgICAgICAgIHZhbHVlcyA9IFtdCisKKyAgICAg
ICAgZGVmIG15X3NldHVwKCk6CisgICAgICAgICAgICBhID0gMQorICAgICAgICAgICAgdmFsdWVz
LmFwcGVuZChhKQorCisgICAgICAgIGRlZiBteV90ZWFyZG93bigpOgorICAgICAgICAgICAgYiA9
IDIKKyAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoYikKKworICAgICAgICBAd2l0aF9zZXR1cCht
eV9zZXR1cCwgbXlfdGVhcmRvd24pCisgICAgICAgIGRlZiB0ZXN0X2hlbGxvKCk6CisgICAgICAg
ICAgICBwcmludCAodmFsdWVzKQorICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbMV0KKwor
ICAgICAgICBkZWYgdGVzdF93b3JsZCgpOgorICAgICAgICAgICAgcHJpbnQgKHZhbHVlcykKKyAg
ICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzEsMl0KKworICAgICIiIikKKyAgICByZXN1bHQg
PSB0ZXN0ZGlyLnJ1bnB5dGVzdChwLCAnLXAnLCAnbm9zZScpCisgICAgcmVzdWx0LmFzc2VydF9v
dXRjb21lcyhwYXNzZWQ9MikKKworCitkZWYgdGVzdF9ub3NlX3NldHVwX2Z1bmNfZmFpbHVyZSh0
ZXN0ZGlyKToKKyAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBmcm9tIG5v
c2UudG9vbHMgaW1wb3J0IHdpdGhfc2V0dXAKKworICAgICAgICB2YWx1ZXMgPSBbXQorICAgICAg
ICBteV9zZXR1cCA9IGxhbWJkYSB4OiAxCisgICAgICAgIG15X3RlYXJkb3duID0gbGFtYmRhIHg6
IDIKKworICAgICAgICBAd2l0aF9zZXR1cChteV9zZXR1cCwgbXlfdGVhcmRvd24pCisgICAgICAg
IGRlZiB0ZXN0X2hlbGxvKCk6CisgICAgICAgICAgICBwcmludCAodmFsdWVzKQorICAgICAgICAg
ICAgYXNzZXJ0IHZhbHVlcyA9PSBbMV0KKworICAgICAgICBkZWYgdGVzdF93b3JsZCgpOgorICAg
ICAgICAgICAgcHJpbnQgKHZhbHVlcykKKyAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzEs
Ml0KKworICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwLCAnLXAnLCAn
bm9zZScpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIipUeXBl
RXJyb3I6IDxsYW1iZGE+KCkqIgorICAgIF0pCisKKworZGVmIHRlc3Rfbm9zZV9zZXR1cF9mdW5j
X2ZhaWx1cmVfMih0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
IHZhbHVlcyA9IFtdCisKKyAgICAgICAgbXlfc2V0dXAgPSAxCisgICAgICAgIG15X3RlYXJkb3du
ID0gMgorCisgICAgICAgIGRlZiB0ZXN0X2hlbGxvKCk6CisgICAgICAgICAgICBhc3NlcnQgdmFs
dWVzID09IFtdCisKKyAgICAgICAgdGVzdF9oZWxsby5zZXR1cCA9IG15X3NldHVwCisgICAgICAg
IHRlc3RfaGVsbG8udGVhcmRvd24gPSBteV90ZWFyZG93bgorICAgICIiIikKKyAgICByZXByZWMg
PSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0x
KQorCisKK2RlZiB0ZXN0X25vc2Vfc2V0dXBfcGFydGlhbCh0ZXN0ZGlyKToKKyAgICBweXRlc3Qu
aW1wb3J0b3Jza2lwKCJmdW5jdG9vbHMiKQorICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIi
CisgICAgICAgIGZyb20gZnVuY3Rvb2xzIGltcG9ydCBwYXJ0aWFsCisKKyAgICAgICAgdmFsdWVz
ID0gW10KKworICAgICAgICBkZWYgbXlfc2V0dXAoeCk6CisgICAgICAgICAgICBhID0geAorICAg
ICAgICAgICAgdmFsdWVzLmFwcGVuZChhKQorCisgICAgICAgIGRlZiBteV90ZWFyZG93bih4KToK
KyAgICAgICAgICAgIGIgPSB4CisgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGIpCisKKyAgICAg
ICAgbXlfc2V0dXBfcGFydGlhbCA9IHBhcnRpYWwobXlfc2V0dXAsIDEpCisgICAgICAgIG15X3Rl
YXJkb3duX3BhcnRpYWwgPSBwYXJ0aWFsKG15X3RlYXJkb3duLCAyKQorCisgICAgICAgIGRlZiB0
ZXN0X2hlbGxvKCk6CisgICAgICAgICAgICBwcmludCAodmFsdWVzKQorICAgICAgICAgICAgYXNz
ZXJ0IHZhbHVlcyA9PSBbMV0KKworICAgICAgICBkZWYgdGVzdF93b3JsZCgpOgorICAgICAgICAg
ICAgcHJpbnQgKHZhbHVlcykKKyAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzEsMl0KKwor
ICAgICAgICB0ZXN0X2hlbGxvLnNldHVwID0gbXlfc2V0dXBfcGFydGlhbAorICAgICAgICB0ZXN0
X2hlbGxvLnRlYXJkb3duID0gbXlfdGVhcmRvd25fcGFydGlhbAorICAgICIiIikKKyAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwLCAnLXAnLCAnbm9zZScpCisgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIioyIHBhc3NlZCoiCisgICAgXSkKKworCitkZWYg
dGVzdF9ub3NlX3Rlc3RfZ2VuZXJhdG9yX2ZpeHR1cmVzKHRlc3RkaXIpOgorICAgIHAgPSB0ZXN0
ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICMgdGFrZW4gZnJvbSBub3NlLTAuMTEuMSB1bml0
X3Rlc3RzL3Rlc3RfZ2VuZXJhdG9yX2ZpeHR1cmVzLnB5CisgICAgICAgIGZyb20gbm9zZS50b29s
cyBpbXBvcnQgZXFfCisgICAgICAgIGNhbGxlZCA9IFtdCisKKyAgICAgICAgZGVmIG91dGVyX3Nl
dHVwKCk6CisgICAgICAgICAgICBjYWxsZWQuYXBwZW5kKCdvdXRlcl9zZXR1cCcpCisKKyAgICAg
ICAgZGVmIG91dGVyX3RlYXJkb3duKCk6CisgICAgICAgICAgICBjYWxsZWQuYXBwZW5kKCdvdXRl
cl90ZWFyZG93bicpCisKKyAgICAgICAgZGVmIGlubmVyX3NldHVwKCk6CisgICAgICAgICAgICBj
YWxsZWQuYXBwZW5kKCdpbm5lcl9zZXR1cCcpCisKKyAgICAgICAgZGVmIGlubmVyX3RlYXJkb3du
KCk6CisgICAgICAgICAgICBjYWxsZWQuYXBwZW5kKCdpbm5lcl90ZWFyZG93bicpCisKKyAgICAg
ICAgZGVmIHRlc3RfZ2VuKCk6CisgICAgICAgICAgICBjYWxsZWRbOl0gPSBbXQorICAgICAgICAg
ICAgZm9yIGkgaW4gcmFuZ2UoMCwgNSk6CisgICAgICAgICAgICAgICAgeWllbGQgY2hlY2ssIGkK
KworICAgICAgICBkZWYgY2hlY2soaSk6CisgICAgICAgICAgICBleHBlY3QgPSBbJ291dGVyX3Nl
dHVwJ10KKyAgICAgICAgICAgIGZvciB4IGluIHJhbmdlKDAsIGkpOgorICAgICAgICAgICAgICAg
IGV4cGVjdC5hcHBlbmQoJ2lubmVyX3NldHVwJykKKyAgICAgICAgICAgICAgICBleHBlY3QuYXBw
ZW5kKCdpbm5lcl90ZWFyZG93bicpCisgICAgICAgICAgICBleHBlY3QuYXBwZW5kKCdpbm5lcl9z
ZXR1cCcpCisgICAgICAgICAgICBlcV8oY2FsbGVkLCBleHBlY3QpCisKKworICAgICAgICB0ZXN0
X2dlbi5zZXR1cCA9IG91dGVyX3NldHVwCisgICAgICAgIHRlc3RfZ2VuLnRlYXJkb3duID0gb3V0
ZXJfdGVhcmRvd24KKyAgICAgICAgY2hlY2suc2V0dXAgPSBpbm5lcl9zZXR1cAorICAgICAgICBj
aGVjay50ZWFyZG93biA9IGlubmVyX3RlYXJkb3duCisKKyAgICAgICAgY2xhc3MgVGVzdENsYXNz
KG9iamVjdCk6CisgICAgICAgICAgICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgICAgICAgICAg
cHJpbnQgKCJzZXR1cCBjYWxsZWQgaW4gJXMiICUgc2VsZikKKyAgICAgICAgICAgICAgICBzZWxm
LmNhbGxlZCA9IFsnc2V0dXAnXQorCisgICAgICAgICAgICBkZWYgdGVhcmRvd24oc2VsZik6Cisg
ICAgICAgICAgICAgICAgcHJpbnQgKCJ0ZWFyZG93biBjYWxsZWQgaW4gJXMiICUgc2VsZikKKyAg
ICAgICAgICAgICAgICBlcV8oc2VsZi5jYWxsZWQsIFsnc2V0dXAnXSkKKyAgICAgICAgICAgICAg
ICBzZWxmLmNhbGxlZC5hcHBlbmQoJ3RlYXJkb3duJykKKworICAgICAgICAgICAgZGVmIHRlc3Qo
c2VsZik6CisgICAgICAgICAgICAgICAgcHJpbnQgKCJ0ZXN0IGNhbGxlZCBpbiAlcyIgJSBzZWxm
KQorICAgICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKDAsIDUpOgorICAgICAgICAgICAgICAg
ICAgICB5aWVsZCBzZWxmLmNoZWNrLCBpCisKKyAgICAgICAgICAgIGRlZiBjaGVjayhzZWxmLCBp
KToKKyAgICAgICAgICAgICAgICBwcmludCAoImNoZWNrIGNhbGxlZCBpbiAlcyIgJSBzZWxmKQor
ICAgICAgICAgICAgICAgIGV4cGVjdCA9IFsnc2V0dXAnXQorICAgICAgICAgICAgICAgICNmb3Ig
eCBpbiByYW5nZSgwLCBpKToKKyAgICAgICAgICAgICAgICAjICAgIGV4cGVjdC5hcHBlbmQoJ3Nl
dHVwJykKKyAgICAgICAgICAgICAgICAjICAgIGV4cGVjdC5hcHBlbmQoJ3RlYXJkb3duJykKKyAg
ICAgICAgICAgICAgICAjZXhwZWN0LmFwcGVuZCgnc2V0dXAnKQorICAgICAgICAgICAgICAgIGVx
XyhzZWxmLmNhbGxlZCwgZXhwZWN0KQorICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdChwLCAnLXAnLCAnbm9zZScpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsKKyAgICAgICAgIioxMCBwYXNzZWQqIgorICAgIF0pCisKKworZGVmIHRlc3RfbW9kdWxlX2xl
dmVsX3NldHVwKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAg
ZnJvbSBub3NlLnRvb2xzIGltcG9ydCB3aXRoX3NldHVwCisgICAgICAgIGl0ZW1zID0ge30KKwor
ICAgICAgICBkZWYgc2V0dXAoKToKKyAgICAgICAgICAgIGl0ZW1zWzFdPTEKKworICAgICAgICBk
ZWYgdGVhcmRvd24oKToKKyAgICAgICAgICAgIGRlbCBpdGVtc1sxXQorCisgICAgICAgIGRlZiBz
ZXR1cDIoKToKKyAgICAgICAgICAgIGl0ZW1zWzJdID0gMgorCisgICAgICAgIGRlZiB0ZWFyZG93
bjIoKToKKyAgICAgICAgICAgIGRlbCBpdGVtc1syXQorCisgICAgICAgIGRlZiB0ZXN0X3NldHVw
X21vZHVsZV9zZXR1cCgpOgorICAgICAgICAgICAgYXNzZXJ0IGl0ZW1zWzFdID09IDEKKworICAg
ICAgICBAd2l0aF9zZXR1cChzZXR1cDIsIHRlYXJkb3duMikKKyAgICAgICAgZGVmIHRlc3RfbG9j
YWxfc2V0dXAoKToKKyAgICAgICAgICAgIGFzc2VydCBpdGVtc1syXSA9PSAyCisgICAgICAgICAg
ICBhc3NlcnQgMSBub3QgaW4gaXRlbXMKKyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3QoJy1wJywgJ25vc2UnKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
CisgICAgICAgICIqMiBwYXNzZWQqIiwKKyAgICBdKQorCisKK2RlZiB0ZXN0X25vc2Vfc3R5bGVf
c2V0dXBfdGVhcmRvd24odGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAg
ICAgICB2YWx1ZXMgPSBbXQorCisgICAgICAgIGRlZiBzZXR1cF9tb2R1bGUoKToKKyAgICAgICAg
ICAgIHZhbHVlcy5hcHBlbmQoMSkKKworICAgICAgICBkZWYgdGVhcmRvd25fbW9kdWxlKCk6Cisg
ICAgICAgICAgICBkZWwgdmFsdWVzWzBdCisKKyAgICAgICAgZGVmIHRlc3RfaGVsbG8oKToKKyAg
ICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzFdCisKKyAgICAgICAgZGVmIHRlc3Rfd29ybGQo
KToKKyAgICAgICAgICAgIGFzc2VydCB2YWx1ZXMgPT0gWzFdCisgICAgICAgICIiIikKKyAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLXAnLCAnbm9zZScpCisgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIioyIHBhc3NlZCoiLAorICAgIF0pCisKKworZGVm
IHRlc3Rfbm9zZV9zZXR1cF9vcmRlcmluZyh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoIiIiCisgICAgICAgIGRlZiBzZXR1cF9tb2R1bGUobW9kKToKKyAgICAgICAgICAgIG1vZC52
aXNpdGVkID0gVHJ1ZQorCisgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAg
ICAgICAgZGVmIHNldHVwKHNlbGYpOgorICAgICAgICAgICAgICAgIGFzc2VydCB2aXNpdGVkCisg
ICAgICAgICAgICBkZWYgdGVzdF9maXJzdChzZWxmKToKKyAgICAgICAgICAgICAgICBwYXNzCisg
ICAgICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIioxIHBhc3NlZCoiLAorICAgIF0pCisK
KworZGVmIHRlc3RfYXBpd3JhcHBlcl9wcm9ibGVtX2lzc3VlMjYwKHRlc3RkaXIpOgorICAgICMg
dGhpcyB3b3VsZCBlbmQgdXAgdHJ5aW5nIGEgY2FsbCBhIG9wdGlvbmFsIHRlYXJkb3duIG9uIHRo
ZSBjbGFzcworICAgICMgZm9yIHBsYWluIHVuaXR0ZXN0cyB3ZSBkb250IHdhbnQgbm9zZSBiZWhh
dmlvdXIKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCB1bml0dGVz
dAorICAgICAgICBjbGFzcyBUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgICAgICAg
ICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgICAgICAgICAgI3Nob3VsZCBub3QgYmUgY2FsbGVk
IGluIHVuaXR0ZXN0IHRlc3RjYXNlcworICAgICAgICAgICAgICAgIGFzc2VydCAwLCAnc2V0dXAn
CisgICAgICAgICAgICBkZWYgdGVhcmRvd24oc2VsZik6CisgICAgICAgICAgICAgICAgI3Nob3Vs
ZCBub3QgYmUgY2FsbGVkIGluIHVuaXR0ZXN0IHRlc3RjYXNlcworICAgICAgICAgICAgICAgIGFz
c2VydCAwLCAndGVhcmRvd24nCisgICAgICAgICAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAg
ICAgICAgICAgcHJpbnQoJ3NldHVwJykKKyAgICAgICAgICAgIGRlZiB0ZWFyRG93bihzZWxmKToK
KyAgICAgICAgICAgICAgICBwcmludCgndGVhcmRvd24nKQorICAgICAgICAgICAgZGVmIHRlc3Rf
ZnVuKHNlbGYpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuYXNzZXJ0X291dGNvbWVzKHBhc3Nl
ZD0xKQorCisKK2RlZiB0ZXN0X3NldHVwX3RlYXJkb3duX2xpbmtpbmdfaXNzdWUyNjUodGVzdGRp
cik6CisgICAgIyB3ZSBhY2NpZGVudGFsbHkgZGlkbnQgaW50ZWdyYXRlIG5vc2Ugc2V0dXBzdGF0
ZSB3aXRoIG5vcm1hbCBzZXR1cHN0YXRlCisgICAgIyB0aGlzIHRlc3QgZW5zdXJlcyB0aGF0IHdv
bid0IGhhcHBlbiBhZ2FpbgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAgaW1w
b3J0IHB5dGVzdAorCisgICAgICAgIGNsYXNzIFRlc3RHZW5lcmljKG9iamVjdCk6CisgICAgICAg
ICAgICBkZWYgdGVzdF9ub3RoaW5nKHNlbGYpOgorICAgICAgICAgICAgICAgICIiIlRlc3RzIHRo
ZSBBUEkgb2YgdGhlIGltcGxlbWVudGF0aW9uIChmb3IgZ2VuZXJpYyBhbmQgc3BlY2lhbGl6ZWQp
LiIiIgorCisgICAgICAgIEBweXRlc3QubWFyay5za2lwaWYoIlRydWUiLCByZWFzb249CisgICAg
ICAgICAgICAgICAgICAgICJTa2lwIHRlc3RzIHRvIGNoZWNrIGlmIHRlYXJkb3duIGlzIHNraXBw
ZWQgYXMgd2VsbC4iKQorICAgICAgICBjbGFzcyBUZXN0U2tpcFRlYXJkb3duKFRlc3RHZW5lcmlj
KToKKworICAgICAgICAgICAgZGVmIHNldHVwKHNlbGYpOgorICAgICAgICAgICAgICAgICIiIlNl
dHMgdXAgbXkgc3BlY2lhbGl6ZWQgaW1wbGVtZW50YXRpb24gZm9yICRDT09MX1BMQVRGT1JNLiIi
IgorICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigic2hvdWxkIG5vdCBjYWxsIHNldHVw
IGZvciBza2lwcGVkIHRlc3RzIikKKworICAgICAgICAgICAgZGVmIHRlYXJkb3duKHNlbGYpOgor
ICAgICAgICAgICAgICAgICIiIlVuZG9lcyB0aGUgc2V0dXAuIiIiCisgICAgICAgICAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKCJzaG91bGQgbm90IGNhbGwgdGVhcmRvd24gZm9yIHNraXBwZWQgdGVz
dHMiKQorICAgICAgICAnJycpCisgICAgcmVwcmVjID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAg
IHJlcHJlYy5hc3NlcnRfb3V0Y29tZXMocGFzc2VkPTEsIHNraXBwZWQ9MSkKKworCitkZWYgdGVz
dF9Ta2lwVGVzdF9kdXJpbmdfY29sbGVjdGlvbih0ZXN0ZGlyKToKKyAgICBwID0gdGVzdGRpci5t
YWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgbm9zZQorICAgICAgICByYWlzZSBub3NlLlNr
aXBUZXN0KCJkdXJpbmcgY29sbGVjdGlvbiIpCisgICAgICAgIGRlZiB0ZXN0X2ZhaWxpbmcoKToK
KyAgICAgICAgICAgIGFzc2VydCBGYWxzZQorICAgICAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QocCkKKyAgICByZXN1bHQuYXNzZXJ0X291dGNvbWVzKHNraXBwZWQ9MSkK
KworCitkZWYgdGVzdF9Ta2lwVGVzdF9pbl90ZXN0KHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IG5vc2UKKworICAgICAgICBkZWYgdGVzdF9za2lw
cGluZygpOgorICAgICAgICAgICAgcmFpc2Ugbm9zZS5Ta2lwVGVzdCgiaW4gdGVzdCIpCisgICAg
ICAgICIiIikKKyAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgIHJlcHJlYy5h
c3NlcnRvdXRjb21lKHNraXBwZWQ9MSkKKworCitkZWYgdGVzdF9pc3Rlc3RfZnVuY3Rpb25fZGVj
b3JhdG9yKHRlc3RkaXIpOgorICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
IGltcG9ydCBub3NlLnRvb2xzCisgICAgICAgIEBub3NlLnRvb2xzLmlzdGVzdAorICAgICAgICBk
ZWYgbm90X3Rlc3RfcHJlZml4KCk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwKQorICAgIHJlc3VsdC5hc3NlcnRfb3V0Y29t
ZXMocGFzc2VkPTEpCisKKworZGVmIHRlc3Rfbm90dGVzdF9mdW5jdGlvbl9kZWNvcmF0b3IodGVz
dGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgbm9zZS50
b29scworICAgICAgICBAbm9zZS50b29scy5ub3R0ZXN0CisgICAgICAgIGRlZiB0ZXN0X3ByZWZp
eCgpOgorICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgcmVwcmVjID0gdGVzdGRp
ci5pbmxpbmVfcnVuKCkKKyAgICBhc3NlcnQgbm90IHJlcHJlYy5nZXRmYWlsZWRjb2xsZWN0aW9u
cygpCisgICAgY2FsbHMgPSByZXByZWMuZ2V0cmVwb3J0cygicHl0ZXN0X3J1bnRlc3RfbG9ncmVw
b3J0IikKKyAgICBhc3NlcnQgbm90IGNhbGxzCisKKworZGVmIHRlc3RfaXN0ZXN0X2NsYXNzX2Rl
Y29yYXRvcih0ZXN0ZGlyKToKKyAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAg
ICBpbXBvcnQgbm9zZS50b29scworICAgICAgICBAbm9zZS50b29scy5pc3Rlc3QKKyAgICAgICAg
Y2xhc3MgTm90VGVzdFByZWZpeChvYmplY3QpOgorICAgICAgICAgICAgZGVmIHRlc3RfbWV0aG9k
KHNlbGYpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KHApCisgICAgcmVzdWx0LmFzc2VydF9vdXRjb21lcyhwYXNzZWQ9
MSkKKworCitkZWYgdGVzdF9ub3R0ZXN0X2NsYXNzX2RlY29yYXRvcih0ZXN0ZGlyKToKKyAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBub3NlLnRvb2xzCisgICAgICAg
IEBub3NlLnRvb2xzLm5vdHRlc3QKKyAgICAgICAgY2xhc3MgVGVzdFByZWZpeChvYmplY3QpOgor
ICAgICAgICAgICAgZGVmIHRlc3RfbWV0aG9kKHNlbGYpOgorICAgICAgICAgICAgICAgIHBhc3MK
KyAgICAgICAgIiIiKQorICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bigpCisgICAgYXNz
ZXJ0IG5vdCByZXByZWMuZ2V0ZmFpbGVkY29sbGVjdGlvbnMoKQorICAgIGNhbGxzID0gcmVwcmVj
LmdldHJlcG9ydHMoInB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydCIpCisgICAgYXNzZXJ0IG5vdCBj
YWxscwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3BhcnNlb3B0LnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3BhcnNlb3B0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyMTU5MjU3
MDE5N2FhMDZiMzBmMzc3MTQxMGE5NjE0MzMzYWUxMDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcGFyc2VvcHQucHkKQEAgLTAsMCArMSwzMDkgQEAKK2Zyb20g
X19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rp
b24KK2ltcG9ydCBzeXMKK2ltcG9ydCBvcworaW1wb3J0IHB5CitpbXBvcnQgcHl0ZXN0Citmcm9t
IF9weXRlc3QgaW1wb3J0IGNvbmZpZyBhcyBwYXJzZW9wdAorCisKK0BweXRlc3QuZml4dHVyZQor
ZGVmIHBhcnNlcigpOgorICAgIHJldHVybiBwYXJzZW9wdC5QYXJzZXIoKQorCisKK2NsYXNzIFRl
c3RQYXJzZXIob2JqZWN0KToKKyAgICBkZWYgdGVzdF9ub19oZWxwX2J5X2RlZmF1bHQoc2VsZiwg
Y2Fwc3lzKToKKyAgICAgICAgcGFyc2VyID0gcGFyc2VvcHQuUGFyc2VyKHVzYWdlPSJ4eXoiKQor
ICAgICAgICBweXRlc3QucmFpc2VzKFN5c3RlbUV4aXQsIGxhbWJkYTogcGFyc2VyLnBhcnNlKFsi
LWgiXSkpCisgICAgICAgIG91dCwgZXJyID0gY2Fwc3lzLnJlYWRvdXRlcnIoKQorICAgICAgICBh
c3NlcnQgZXJyLmZpbmQoImVycm9yOiB1bnJlY29nbml6ZWQgYXJndW1lbnRzIikgIT0gLTEKKwor
ICAgIGRlZiB0ZXN0X2FyZ3VtZW50KHNlbGYpOgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMo
cGFyc2VvcHQuQXJndW1lbnRFcnJvcik6CisgICAgICAgICAgICAjIG5lZWQgYSBzaG9ydCBvciBs
b25nIG9wdGlvbgorICAgICAgICAgICAgYXJndW1lbnQgPSBwYXJzZW9wdC5Bcmd1bWVudCgpCisg
ICAgICAgIGFyZ3VtZW50ID0gcGFyc2VvcHQuQXJndW1lbnQoJy10JykKKyAgICAgICAgYXNzZXJ0
IGFyZ3VtZW50Ll9zaG9ydF9vcHRzID09IFsnLXQnXQorICAgICAgICBhc3NlcnQgYXJndW1lbnQu
X2xvbmdfb3B0cyA9PSBbXQorICAgICAgICBhc3NlcnQgYXJndW1lbnQuZGVzdCA9PSAndCcKKyAg
ICAgICAgYXJndW1lbnQgPSBwYXJzZW9wdC5Bcmd1bWVudCgnLXQnLCAnLS10ZXN0JykKKyAgICAg
ICAgYXNzZXJ0IGFyZ3VtZW50Ll9zaG9ydF9vcHRzID09IFsnLXQnXQorICAgICAgICBhc3NlcnQg
YXJndW1lbnQuX2xvbmdfb3B0cyA9PSBbJy0tdGVzdCddCisgICAgICAgIGFzc2VydCBhcmd1bWVu
dC5kZXN0ID09ICd0ZXN0JworICAgICAgICBhcmd1bWVudCA9IHBhcnNlb3B0LkFyZ3VtZW50KCct
dCcsICctLXRlc3QnLCBkZXN0PSdhYmMnKQorICAgICAgICBhc3NlcnQgYXJndW1lbnQuZGVzdCA9
PSAnYWJjJworICAgICAgICBhc3NlcnQgc3RyKGFyZ3VtZW50KSA9PSAoCisgICAgICAgICAgICAi
QXJndW1lbnQoX3Nob3J0X29wdHM6IFsnLXQnXSwgX2xvbmdfb3B0czogWyctLXRlc3QnXSwgZGVz
dDogJ2FiYycpIgorICAgICAgICApCisKKyAgICBkZWYgdGVzdF9hcmd1bWVudF90eXBlKHNlbGYp
OgorICAgICAgICBhcmd1bWVudCA9IHBhcnNlb3B0LkFyZ3VtZW50KCctdCcsIGRlc3Q9J2FiYycs
IHR5cGU9aW50KQorICAgICAgICBhc3NlcnQgYXJndW1lbnQudHlwZSBpcyBpbnQKKyAgICAgICAg
YXJndW1lbnQgPSBwYXJzZW9wdC5Bcmd1bWVudCgnLXQnLCBkZXN0PSdhYmMnLCB0eXBlPXN0cikK
KyAgICAgICAgYXNzZXJ0IGFyZ3VtZW50LnR5cGUgaXMgc3RyCisgICAgICAgIGFyZ3VtZW50ID0g
cGFyc2VvcHQuQXJndW1lbnQoJy10JywgZGVzdD0nYWJjJywgdHlwZT1mbG9hdCkKKyAgICAgICAg
YXNzZXJ0IGFyZ3VtZW50LnR5cGUgaXMgZmxvYXQKKyAgICAgICAgd2l0aCBweXRlc3Qud2FybnMo
RGVwcmVjYXRpb25XYXJuaW5nKToKKyAgICAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhLZXlF
cnJvcik6CisgICAgICAgICAgICAgICAgYXJndW1lbnQgPSBwYXJzZW9wdC5Bcmd1bWVudCgnLXQn
LCBkZXN0PSdhYmMnLCB0eXBlPSdjaG9pY2UnKQorICAgICAgICBhcmd1bWVudCA9IHBhcnNlb3B0
LkFyZ3VtZW50KCctdCcsIGRlc3Q9J2FiYycsIHR5cGU9c3RyLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNob2ljZXM9WydyZWQnLCAnYmx1ZSddKQorICAgICAgICBhc3Nl
cnQgYXJndW1lbnQudHlwZSBpcyBzdHIKKworICAgIGRlZiB0ZXN0X2FyZ3VtZW50X3Byb2Nlc3Nv
cHQoc2VsZik6CisgICAgICAgIGFyZ3VtZW50ID0gcGFyc2VvcHQuQXJndW1lbnQoJy10JywgdHlw
ZT1pbnQpCisgICAgICAgIGFyZ3VtZW50LmRlZmF1bHQgPSA0MgorICAgICAgICBhcmd1bWVudC5k
ZXN0ID0gJ2FiYycKKyAgICAgICAgcmVzID0gYXJndW1lbnQuYXR0cnMoKQorICAgICAgICBhc3Nl
cnQgcmVzWydkZWZhdWx0J10gPT0gNDIKKyAgICAgICAgYXNzZXJ0IHJlc1snZGVzdCddID09ICdh
YmMnCisKKyAgICBkZWYgdGVzdF9ncm91cF9hZGRfYW5kX2dldChzZWxmLCBwYXJzZXIpOgorICAg
ICAgICBncm91cCA9IHBhcnNlci5nZXRncm91cCgiaGVsbG8iLCBkZXNjcmlwdGlvbj0iZGVzYyIp
CisgICAgICAgIGFzc2VydCBncm91cC5uYW1lID09ICJoZWxsbyIKKyAgICAgICAgYXNzZXJ0IGdy
b3VwLmRlc2NyaXB0aW9uID09ICJkZXNjIgorCisgICAgZGVmIHRlc3RfZ2V0Z3JvdXBfc2ltcGxl
KHNlbGYsIHBhcnNlcik6CisgICAgICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJoZWxsbyIs
IGRlc2NyaXB0aW9uPSJkZXNjIikKKyAgICAgICAgYXNzZXJ0IGdyb3VwLm5hbWUgPT0gImhlbGxv
IgorICAgICAgICBhc3NlcnQgZ3JvdXAuZGVzY3JpcHRpb24gPT0gImRlc2MiCisgICAgICAgIGdy
b3VwMiA9IHBhcnNlci5nZXRncm91cCgiaGVsbG8iKQorICAgICAgICBhc3NlcnQgZ3JvdXAyIGlz
IGdyb3VwCisKKyAgICBkZWYgdGVzdF9ncm91cF9vcmRlcmluZyhzZWxmLCBwYXJzZXIpOgorICAg
ICAgICBwYXJzZXIuZ2V0Z3JvdXAoIjEiKQorICAgICAgICBwYXJzZXIuZ2V0Z3JvdXAoIjIiKQor
ICAgICAgICBwYXJzZXIuZ2V0Z3JvdXAoIjMiLCBhZnRlcj0iMSIpCisgICAgICAgIGdyb3VwcyA9
IHBhcnNlci5fZ3JvdXBzCisgICAgICAgIGdyb3Vwc19uYW1lcyA9IFt4Lm5hbWUgZm9yIHggaW4g
Z3JvdXBzXQorICAgICAgICBhc3NlcnQgZ3JvdXBzX25hbWVzID09IGxpc3QoIjEzMiIpCisKKyAg
ICBkZWYgdGVzdF9ncm91cF9hZGRvcHRpb24oc2VsZik6CisgICAgICAgIGdyb3VwID0gcGFyc2Vv
cHQuT3B0aW9uR3JvdXAoImhlbGxvIikKKyAgICAgICAgZ3JvdXAuYWRkb3B0aW9uKCItLW9wdGlv
bjEiLCBhY3Rpb249InN0b3JlX3RydWUiKQorICAgICAgICBhc3NlcnQgbGVuKGdyb3VwLm9wdGlv
bnMpID09IDEKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZ3JvdXAub3B0aW9uc1swXSwgcGFy
c2VvcHQuQXJndW1lbnQpCisKKyAgICBkZWYgdGVzdF9ncm91cF9hZGRvcHRpb25fY29uZmxpY3Qo
c2VsZik6CisgICAgICAgIGdyb3VwID0gcGFyc2VvcHQuT3B0aW9uR3JvdXAoImhlbGxvIGFnYWlu
IikKKyAgICAgICAgZ3JvdXAuYWRkb3B0aW9uKCItLW9wdGlvbjEiLCAiLS1vcHRpb24tMSIsIGFj
dGlvbj0ic3RvcmVfdHJ1ZSIpCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9y
KSBhcyBlcnI6CisgICAgICAgICAgICBncm91cC5hZGRvcHRpb24oIi0tb3B0aW9uMSIsICItLW9w
dGlvbi1vbmUiLCBhY3Rpb249InN0b3JlX3RydWUiKQorICAgICAgICBhc3NlcnQgc3RyKHNldChb
Ii0tb3B0aW9uMSJdKSkgaW4gc3RyKGVyci52YWx1ZSkKKworICAgIGRlZiB0ZXN0X2dyb3VwX3No
b3J0b3B0X2xvd2VyY2FzZShzZWxmLCBwYXJzZXIpOgorICAgICAgICBncm91cCA9IHBhcnNlci5n
ZXRncm91cCgiaGVsbG8iKQorICAgICAgICBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsICIiIgor
ICAgICAgICAgICAgZ3JvdXAuYWRkb3B0aW9uKCIteCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIpCisg
ICAgICAgICIiIikKKyAgICAgICAgYXNzZXJ0IGxlbihncm91cC5vcHRpb25zKSA9PSAwCisgICAg
ICAgIGdyb3VwLl9hZGRvcHRpb24oIi14IiwgYWN0aW9uPSJzdG9yZV90cnVlIikKKyAgICAgICAg
YXNzZXJ0IGxlbihncm91cC5vcHRpb25zKSA9PSAxCisKKyAgICBkZWYgdGVzdF9wYXJzZXJfYWRk
b3B0aW9uKHNlbGYsIHBhcnNlcik6CisgICAgICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJj
dXN0b20gb3B0aW9ucyIpCisgICAgICAgIGFzc2VydCBsZW4oZ3JvdXAub3B0aW9ucykgPT0gMAor
ICAgICAgICBncm91cC5hZGRvcHRpb24oIi0tb3B0aW9uMSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIp
CisgICAgICAgIGFzc2VydCBsZW4oZ3JvdXAub3B0aW9ucykgPT0gMQorCisgICAgZGVmIHRlc3Rf
cGFyc2Uoc2VsZiwgcGFyc2VyKToKKyAgICAgICAgcGFyc2VyLmFkZG9wdGlvbigiLS1oZWxsbyIs
IGRlc3Q9ImhlbGxvIiwgYWN0aW9uPSJzdG9yZSIpCisgICAgICAgIGFyZ3MgPSBwYXJzZXIucGFy
c2UoWyctLWhlbGxvJywgJ3dvcmxkJ10pCisgICAgICAgIGFzc2VydCBhcmdzLmhlbGxvID09ICJ3
b3JsZCIKKyAgICAgICAgYXNzZXJ0IG5vdCBnZXRhdHRyKGFyZ3MsIHBhcnNlb3B0LkZJTEVfT1Jf
RElSKQorCisgICAgZGVmIHRlc3RfcGFyc2UyKHNlbGYsIHBhcnNlcik6CisgICAgICAgIGFyZ3Mg
PSBwYXJzZXIucGFyc2UoW3B5LnBhdGgubG9jYWwoKV0pCisgICAgICAgIGFzc2VydCBnZXRhdHRy
KGFyZ3MsIHBhcnNlb3B0LkZJTEVfT1JfRElSKVswXSA9PSBweS5wYXRoLmxvY2FsKCkKKworICAg
IGRlZiB0ZXN0X3BhcnNlX2tub3duX2FyZ3Moc2VsZiwgcGFyc2VyKToKKyAgICAgICAgcGFyc2Vy
LnBhcnNlX2tub3duX2FyZ3MoW3B5LnBhdGgubG9jYWwoKV0pCisgICAgICAgIHBhcnNlci5hZGRv
cHRpb24oIi0taGVsbG8iLCBhY3Rpb249InN0b3JlX3RydWUiKQorICAgICAgICBucyA9IHBhcnNl
ci5wYXJzZV9rbm93bl9hcmdzKFsieCIsICItLXkiLCAiLS1oZWxsbyIsICJ0aGlzIl0pCisgICAg
ICAgIGFzc2VydCBucy5oZWxsbworICAgICAgICBhc3NlcnQgbnMuZmlsZV9vcl9kaXIgPT0gWyd4
J10KKworICAgIGRlZiB0ZXN0X3BhcnNlX2tub3duX2FuZF91bmtub3duX2FyZ3Moc2VsZiwgcGFy
c2VyKToKKyAgICAgICAgcGFyc2VyLmFkZG9wdGlvbigiLS1oZWxsbyIsIGFjdGlvbj0ic3RvcmVf
dHJ1ZSIpCisgICAgICAgIG5zLCB1bmtub3duID0gcGFyc2VyLnBhcnNlX2tub3duX2FuZF91bmtu
b3duX2FyZ3MoWyJ4IiwgIi0teSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICItLWhlbGxvIiwgInRoaXMiXSkKKyAgICAgICAgYXNz
ZXJ0IG5zLmhlbGxvCisgICAgICAgIGFzc2VydCBucy5maWxlX29yX2RpciA9PSBbJ3gnXQorICAg
ICAgICBhc3NlcnQgdW5rbm93biA9PSBbJy0teScsICd0aGlzJ10KKworICAgIGRlZiB0ZXN0X3Bh
cnNlX3dpbGxfc2V0X2RlZmF1bHQoc2VsZiwgcGFyc2VyKToKKyAgICAgICAgcGFyc2VyLmFkZG9w
dGlvbigiLS1oZWxsbyIsIGRlc3Q9ImhlbGxvIiwgZGVmYXVsdD0ieCIsIGFjdGlvbj0ic3RvcmUi
KQorICAgICAgICBvcHRpb24gPSBwYXJzZXIucGFyc2UoW10pCisgICAgICAgIGFzc2VydCBvcHRp
b24uaGVsbG8gPT0gIngiCisgICAgICAgIGRlbCBvcHRpb24uaGVsbG8KKyAgICAgICAgcGFyc2Vy
LnBhcnNlX3NldG9wdGlvbihbXSwgb3B0aW9uKQorICAgICAgICBhc3NlcnQgb3B0aW9uLmhlbGxv
ID09ICJ4IgorCisgICAgZGVmIHRlc3RfcGFyc2Vfc2V0b3B0aW9uKHNlbGYsIHBhcnNlcik6Cisg
ICAgICAgIHBhcnNlci5hZGRvcHRpb24oIi0taGVsbG8iLCBkZXN0PSJoZWxsbyIsIGFjdGlvbj0i
c3RvcmUiKQorICAgICAgICBwYXJzZXIuYWRkb3B0aW9uKCItLXdvcmxkIiwgZGVzdD0id29ybGQi
LCBkZWZhdWx0PTQyKQorCisgICAgICAgIGNsYXNzIEEob2JqZWN0KToKKyAgICAgICAgICAgIHBh
c3MKKworICAgICAgICBvcHRpb24gPSBBKCkKKyAgICAgICAgYXJncyA9IHBhcnNlci5wYXJzZV9z
ZXRvcHRpb24oWyctLWhlbGxvJywgJ3dvcmxkJ10sIG9wdGlvbikKKyAgICAgICAgYXNzZXJ0IG9w
dGlvbi5oZWxsbyA9PSAid29ybGQiCisgICAgICAgIGFzc2VydCBvcHRpb24ud29ybGQgPT0gNDIK
KyAgICAgICAgYXNzZXJ0IG5vdCBhcmdzCisKKyAgICBkZWYgdGVzdF9wYXJzZV9zcGVjaWFsX2Rl
c3RpbmF0aW9uKHNlbGYsIHBhcnNlcik6CisgICAgICAgIHBhcnNlci5hZGRvcHRpb24oIi0tdWx0
aW1hdGUtYW5zd2VyIiwgdHlwZT1pbnQpCisgICAgICAgIGFyZ3MgPSBwYXJzZXIucGFyc2UoWyct
LXVsdGltYXRlLWFuc3dlcicsICc0MiddKQorICAgICAgICBhc3NlcnQgYXJncy51bHRpbWF0ZV9h
bnN3ZXIgPT0gNDIKKworICAgIGRlZiB0ZXN0X3BhcnNlX3NwbGl0X3Bvc2l0aW9uYWxfYXJndW1l
bnRzKHNlbGYsIHBhcnNlcik6CisgICAgICAgIHBhcnNlci5hZGRvcHRpb24oIi1SIiwgYWN0aW9u
PSdzdG9yZV90cnVlJykKKyAgICAgICAgcGFyc2VyLmFkZG9wdGlvbigiLVMiLCBhY3Rpb249J3N0
b3JlX2ZhbHNlJykKKyAgICAgICAgYXJncyA9IHBhcnNlci5wYXJzZShbJy1SJywgJzQnLCAnMics
ICctUyddKQorICAgICAgICBhc3NlcnQgZ2V0YXR0cihhcmdzLCBwYXJzZW9wdC5GSUxFX09SX0RJ
UikgPT0gWyc0JywgJzInXQorICAgICAgICBhcmdzID0gcGFyc2VyLnBhcnNlKFsnLVInLCAnLVMn
LCAnNCcsICcyJywgJy1SJ10pCisgICAgICAgIGFzc2VydCBnZXRhdHRyKGFyZ3MsIHBhcnNlb3B0
LkZJTEVfT1JfRElSKSA9PSBbJzQnLCAnMiddCisgICAgICAgIGFzc2VydCBhcmdzLlIgaXMgVHJ1
ZQorICAgICAgICBhc3NlcnQgYXJncy5TIGlzIEZhbHNlCisgICAgICAgIGFyZ3MgPSBwYXJzZXIu
cGFyc2UoWyctUicsICc0JywgJy1TJywgJzInXSkKKyAgICAgICAgYXNzZXJ0IGdldGF0dHIoYXJn
cywgcGFyc2VvcHQuRklMRV9PUl9ESVIpID09IFsnNCcsICcyJ10KKyAgICAgICAgYXNzZXJ0IGFy
Z3MuUiBpcyBUcnVlCisgICAgICAgIGFzc2VydCBhcmdzLlMgaXMgRmFsc2UKKworICAgIGRlZiB0
ZXN0X3BhcnNlX2RlZmF1bHRnZXR0ZXIoc2VsZik6CisgICAgICAgIGRlZiBkZWZhdWx0Z2V0KG9w
dGlvbik6CisgICAgICAgICAgICBpZiBub3QgaGFzYXR0cihvcHRpb24sICd0eXBlJyk6CisgICAg
ICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICBpZiBvcHRpb24udHlwZSBpcyBpbnQ6Cisg
ICAgICAgICAgICAgICAgb3B0aW9uLmRlZmF1bHQgPSA0MgorICAgICAgICAgICAgZWxpZiBvcHRp
b24udHlwZSBpcyBzdHI6CisgICAgICAgICAgICAgICAgb3B0aW9uLmRlZmF1bHQgPSAid29ybGQi
CisgICAgICAgIHBhcnNlciA9IHBhcnNlb3B0LlBhcnNlcihwcm9jZXNzb3B0PWRlZmF1bHRnZXQp
CisgICAgICAgIHBhcnNlci5hZGRvcHRpb24oIi0tdGhpcyIsIGRlc3Q9InRoaXMiLCB0eXBlPWlu
dCwgYWN0aW9uPSJzdG9yZSIpCisgICAgICAgIHBhcnNlci5hZGRvcHRpb24oIi0taGVsbG8iLCBk
ZXN0PSJoZWxsbyIsIHR5cGU9c3RyLCBhY3Rpb249InN0b3JlIikKKyAgICAgICAgcGFyc2VyLmFk
ZG9wdGlvbigiLS1ubyIsIGRlc3Q9Im5vIiwgYWN0aW9uPSJzdG9yZV90cnVlIikKKyAgICAgICAg
b3B0aW9uID0gcGFyc2VyLnBhcnNlKFtdKQorICAgICAgICBhc3NlcnQgb3B0aW9uLmhlbGxvID09
ICJ3b3JsZCIKKyAgICAgICAgYXNzZXJ0IG9wdGlvbi50aGlzID09IDQyCisgICAgICAgIGFzc2Vy
dCBvcHRpb24ubm8gaXMgRmFsc2UKKworICAgIGRlZiB0ZXN0X2Ryb3Bfc2hvcnRfaGVscGVyKHNl
bGYpOgorICAgICAgICBwYXJzZXIgPSBweS5zdGQuYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoZm9y
bWF0dGVyX2NsYXNzPXBhcnNlb3B0LkRyb3BTaG9ydGVyTG9uZ0hlbHBGb3JtYXR0ZXIpCisgICAg
ICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy10JywgJy0tdHdvd29yZCcsICctLWR1bycsICctLXR3
by13b3JkJywgJy0tdHdvJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdmb28n
KS5tYXBfbG9uZ19vcHRpb24gPSB7J3R3byc6ICd0d28td29yZCd9CisgICAgICAgICMgdGhyb3dz
IGVycm9yIG9uIC0tZGV1eCBvbmx5IQorICAgICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctZCcs
ICctLWRldXhtb3RzJywgJy0tZGV1eC1tb3RzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhY3Rpb249J3N0b3JlX3RydWUnLCBoZWxwPSdmb28nKS5tYXBfbG9uZ19vcHRpb24gPSB7J2Rl
dXgnOiAnZGV1eC1tb3RzJ30KKyAgICAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLXMnLCBhY3Rp
b249J3N0b3JlX3RydWUnLCBoZWxwPSdzaW5nbGUgc2hvcnQnKQorICAgICAgICBwYXJzZXIuYWRk
X2FyZ3VtZW50KCctLWFiYycsICctYScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0
aW9uPSdzdG9yZV90cnVlJywgaGVscD0nYmFyJykKKyAgICAgICAgcGFyc2VyLmFkZF9hcmd1bWVu
dCgnLS1rbG0nLCAnLWsnLCAnLS1rbC1tJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
Y3Rpb249J3N0b3JlX3RydWUnLCBoZWxwPSdiYXInKQorICAgICAgICBwYXJzZXIuYWRkX2FyZ3Vt
ZW50KCctUCcsICctLXBxLXInLCAnLXAnLCAnLS1wcXInLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGhlbHA9J2JhcicpCisgICAgICAgIHBhcnNlci5h
ZGRfYXJndW1lbnQoJy0tendlaS13b3J0JywgJy0tendlaXdvcnQnLCAnLS16d2Vpd29ydCcsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywgaGVscD0nYmFy
JykKKyAgICAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLXgnLCAnLS1leGl0LW9uLWZpcnN0Jywg
Jy0tZXhpdGZpcnN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3Jl
X3RydWUnLCBoZWxwPSdzcGFtJykubWFwX2xvbmdfb3B0aW9uID0geydleGl0Zmlyc3QnOiAnZXhp
dC1vbi1maXJzdCd9CisgICAgICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJ2ZpbGVzX2FuZF9kaXJz
JywgbmFyZ3M9JyonKQorICAgICAgICBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoWyctaycsICct
LWR1bycsICdoYWxsbycsICctLWV4aXRmaXJzdCddKQorICAgICAgICBhc3NlcnQgYXJncy50d293
b3JkID09ICdoYWxsbycKKyAgICAgICAgYXNzZXJ0IGFyZ3Mua2xtIGlzIFRydWUKKyAgICAgICAg
YXNzZXJ0IGFyZ3MuendlaV93b3J0IGlzIEZhbHNlCisgICAgICAgIGFzc2VydCBhcmdzLmV4aXRf
b25fZmlyc3QgaXMgVHJ1ZQorICAgICAgICBhc3NlcnQgYXJncy5zIGlzIEZhbHNlCisgICAgICAg
IGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncyhbJy0tZGV1eC1tb3RzJ10pCisgICAgICAgIHdpdGgg
cHl0ZXN0LnJhaXNlcyhBdHRyaWJ1dGVFcnJvcik6CisgICAgICAgICAgICBhc3NlcnQgYXJncy5k
ZXV4X21vdHMgaXMgVHJ1ZQorICAgICAgICBhc3NlcnQgYXJncy5kZXV4bW90cyBpcyBUcnVlCisg
ICAgICAgIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncyhbJ2ZpbGUnLCAnZGlyJ10pCisgICAgICAg
IGFzc2VydCAnfCcuam9pbihhcmdzLmZpbGVzX2FuZF9kaXJzKSA9PSAnZmlsZXxkaXInCisKKyAg
ICBkZWYgdGVzdF9kcm9wX3Nob3J0XzAoc2VsZiwgcGFyc2VyKToKKyAgICAgICAgcGFyc2VyLmFk
ZG9wdGlvbignLS1mdW5jYXJnJywgJy0tZnVuYy1hcmcnLCBhY3Rpb249J3N0b3JlX3RydWUnKQor
ICAgICAgICBwYXJzZXIuYWRkb3B0aW9uKCctLWFiYy1kZWYnLCAnLS1hYmMtZGVmJywgYWN0aW9u
PSdzdG9yZV90cnVlJykKKyAgICAgICAgcGFyc2VyLmFkZG9wdGlvbignLS1rbG0taGlqJywgYWN0
aW9uPSdzdG9yZV90cnVlJykKKyAgICAgICAgYXJncyA9IHBhcnNlci5wYXJzZShbJy0tZnVuY2Fy
ZycsICctLWsnXSkKKyAgICAgICAgYXNzZXJ0IGFyZ3MuZnVuY2FyZyBpcyBUcnVlCisgICAgICAg
IGFzc2VydCBhcmdzLmFiY19kZWYgaXMgRmFsc2UKKyAgICAgICAgYXNzZXJ0IGFyZ3Mua2xtX2hp
aiBpcyBUcnVlCisKKyAgICBkZWYgdGVzdF9kcm9wX3Nob3J0XzIoc2VsZiwgcGFyc2VyKToKKyAg
ICAgICAgcGFyc2VyLmFkZG9wdGlvbignLS1mdW5jLWFyZycsICctLWRvaXQnLCBhY3Rpb249J3N0
b3JlX3RydWUnKQorICAgICAgICBhcmdzID0gcGFyc2VyLnBhcnNlKFsnLS1kb2l0J10pCisgICAg
ICAgIGFzc2VydCBhcmdzLmZ1bmNfYXJnIGlzIFRydWUKKworICAgIGRlZiB0ZXN0X2Ryb3Bfc2hv
cnRfMyhzZWxmLCBwYXJzZXIpOgorICAgICAgICBwYXJzZXIuYWRkb3B0aW9uKCctLWZ1bmMtYXJn
JywgJy0tZnVuY2FyZycsICctLWRvaXQnLCBhY3Rpb249J3N0b3JlX3RydWUnKQorICAgICAgICBh
cmdzID0gcGFyc2VyLnBhcnNlKFsnYWJjZCddKQorICAgICAgICBhc3NlcnQgYXJncy5mdW5jX2Fy
ZyBpcyBGYWxzZQorICAgICAgICBhc3NlcnQgYXJncy5maWxlX29yX2RpciA9PSBbJ2FiY2QnXQor
CisgICAgZGVmIHRlc3RfZHJvcF9zaG9ydF9oZWxwMChzZWxmLCBwYXJzZXIsIGNhcHN5cyk6Cisg
ICAgICAgIHBhcnNlci5hZGRvcHRpb24oJy0tZnVuYy1hcmdzJywgJy0tZG9pdCcsIGhlbHA9J2Zv
bycsCisgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJykKKyAgICAg
ICAgcGFyc2VyLnBhcnNlKFtdKQorICAgICAgICBoZWxwID0gcGFyc2VyLm9wdHBhcnNlci5mb3Jt
YXRfaGVscCgpCisgICAgICAgIGFzc2VydCAnLS1mdW5jLWFyZ3MsIC0tZG9pdCAgZm9vJyBpbiBo
ZWxwCisKKyAgICAjIHRlc3Rpbmcgd291bGQgYmUgbW9yZSBoZWxwZnVsIHdpdGggYWxsIGhlbHAg
Z2VuZXJhdGVkCisgICAgZGVmIHRlc3RfZHJvcF9zaG9ydF9oZWxwMShzZWxmLCBwYXJzZXIsIGNh
cHN5cyk6CisgICAgICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJnZW5lcmFsIikKKyAgICAg
ICAgZ3JvdXAuYWRkb3B0aW9uKCctLWRvaXQnLCAnLS1mdW5jLWFyZ3MnLCBhY3Rpb249J3N0b3Jl
X3RydWUnLCBoZWxwPSdmb28nKQorICAgICAgICBncm91cC5fYWRkb3B0aW9uKCItaCIsICItLWhl
bHAiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJoZWxwIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSJzaG93IGhlbHAgbWVzc2FnZSBhbmQgY29uZmlndXJhdGlvbiBpbmZvIikK
KyAgICAgICAgcGFyc2VyLnBhcnNlKFsnLWgnXSkKKyAgICAgICAgaGVscCA9IHBhcnNlci5vcHRw
YXJzZXIuZm9ybWF0X2hlbHAoKQorICAgICAgICBhc3NlcnQgJy1kb2l0LCAtLWZ1bmMtYXJncyAg
Zm9vJyBpbiBoZWxwCisKKyAgICBkZWYgdGVzdF9tdWx0aXBsZV9tZXRhdmFyX2hlbHAoc2VsZiwg
cGFyc2VyKToKKyAgICAgICAgIiIiCisgICAgICAgIEhlbHAgdGV4dCBmb3Igb3B0aW9ucyB3aXRo
IGEgbWV0YXZhciB0dXBsZSBzaG91bGQgZGlzcGxheSBoZWxwCisgICAgICAgIGluIHRoZSBmb3Jt
ICItLXByZWZlcmVuY2VzPXZhbHVlMSB2YWx1ZTIgdmFsdWUzIiAoIzIwMDQpLgorICAgICAgICAi
IiIKKyAgICAgICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImdlbmVyYWwiKQorICAgICAgICBn
cm91cC5hZGRvcHRpb24oJy0tcHJlZmVyZW5jZXMnLCBtZXRhdmFyPSgndmFsdWUxJywgJ3ZhbHVl
MicsICd2YWx1ZTMnKSwgbmFyZ3M9MykKKyAgICAgICAgZ3JvdXAuX2FkZG9wdGlvbigiLWgiLCAi
LS1oZWxwIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0iaGVscCIpCisgICAgICAgIHBhcnNl
ci5wYXJzZShbJy1oJ10pCisgICAgICAgIGhlbHAgPSBwYXJzZXIub3B0cGFyc2VyLmZvcm1hdF9o
ZWxwKCkKKyAgICAgICAgYXNzZXJ0ICctLXByZWZlcmVuY2VzPXZhbHVlMSB2YWx1ZTIgdmFsdWUz
JyBpbiBoZWxwCisKKworZGVmIHRlc3RfYXJnY29tcGxldGUodGVzdGRpciwgbW9ua2V5cGF0Y2gp
OgorICAgIGlmIG5vdCBweS5wYXRoLmxvY2FsLnN5c2ZpbmQoJ2Jhc2gnKToKKyAgICAgICAgcHl0
ZXN0LnNraXAoImJhc2ggbm90IGF2YWlsYWJsZSIpCisgICAgc2NyaXB0ID0gc3RyKHRlc3RkaXIu
dG1wZGlyLmpvaW4oInRlc3RfYXJnY29tcGxldGUiKSkKKyAgICBweXRlc3RfYmluID0gc3lzLmFy
Z3ZbMF0KKyAgICBpZiAicHl0ZXN0IiBub3QgaW4gb3MucGF0aC5iYXNlbmFtZShweXRlc3RfYmlu
KToKKyAgICAgICAgcHl0ZXN0LnNraXAoIm5lZWQgdG8gYmUgcnVuIHdpdGggcHl0ZXN0IGV4ZWN1
dGFibGUsIG5vdCAlcyIgJSAocHl0ZXN0X2JpbiwpKQorCisgICAgd2l0aCBvcGVuKHN0cihzY3Jp
cHQpLCAndycpIGFzIGZwOgorICAgICAgICAjIHJlZGlyZWN0IG91dHB1dCBmcm9tIGFyZ2NvbXBs
ZXRlIHRvIHN0ZGluIGFuZCBzdGRlcnIgaXMgbm90IHRyaXZpYWwKKyAgICAgICAgIyBodHRwOi8v
c3RhY2tvdmVyZmxvdy5jb20vcS8xMjU4OTQxOS8xMzA3OTA1CisgICAgICAgICMgc28gd2UgdXNl
IGJhc2gKKyAgICAgICAgZnAud3JpdGUoJ0NPTVBfV09SREJSRUFLUz0iJENPTVBfV09SREJSRUFL
UyIgJXMgOD4mMSA5PiYyJyAlIHB5dGVzdF9iaW4pCisgICAgIyBhbHRlcm5hdGl2ZSB3b3VsZCBi
ZSBleHRlbmVkZWQgVGVzdGRpci57cnVuKCksX3J1bigpLHBvcGVuKCl9IHRvIGJlIGFibGUKKyAg
ICAjIHRvIGhhbmRsZSBhIGtleXdvcmQgYXJndW1lbnQgZW52IHRoYXQgcmVwbGFjZXMgb3MuZW52
aXJvbiBpbiBwb3BlbiBvcgorICAgICMgZXh0ZW5kcyB0aGUgY29weSwgYWR2YW50YWdlOiBjb3Vs
ZCBub3QgZm9yZ2V0IHRvIHJlc3RvcmUKKyAgICBtb25rZXlwYXRjaC5zZXRlbnYoJ19BUkdDT01Q
TEVURScsICIxIikKKyAgICBtb25rZXlwYXRjaC5zZXRlbnYoJ19BUkdDT01QTEVURV9JRlMnLCAi
XHgwYiIpCisgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCdDT01QX1dPUkRCUkVBS1MnLCAnIFxcdFxc
biJcXFwnPjw9O3wmKDonKQorCisgICAgYXJnID0gJy0tZnUnCisgICAgbW9ua2V5cGF0Y2guc2V0
ZW52KCdDT01QX0xJTkUnLCAicHl0ZXN0ICIgKyBhcmcpCisgICAgbW9ua2V5cGF0Y2guc2V0ZW52
KCdDT01QX1BPSU5UJywgc3RyKGxlbigicHl0ZXN0ICIgKyBhcmcpKSkKKyAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bignYmFzaCcsIHN0cihzY3JpcHQpLCBhcmcpCisgICAgaWYgcmVzdWx0LnJldCA9
PSAyNTU6CisgICAgICAgICMgYXJnY29tcGxldGUgbm90IGZvdW5kCisgICAgICAgIHB5dGVzdC5z
a2lwKCJhcmdjb21wbGV0ZSBub3QgYXZhaWxhYmxlIikKKyAgICBlbGlmIG5vdCByZXN1bHQuc3Rk
b3V0LnN0cigpOgorICAgICAgICBweXRlc3Quc2tpcCgiYmFzaCBwcm92aWRlZCBubyBvdXRwdXQs
IGFyZ2NvbXBsZXRlIG5vdCBhdmFpbGFibGU/IikKKyAgICBlbHNlOgorICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoWyItLWZ1bmNhcmdzIiwgIi0tZnVsbHRyYWNlIl0pCisgICAg
b3MubWtkaXIoJ3Rlc3RfYXJnY29tcGxldGUuZCcpCisgICAgYXJnID0gJ3Rlc3RfYXJnYycKKyAg
ICBtb25rZXlwYXRjaC5zZXRlbnYoJ0NPTVBfTElORScsICJweXRlc3QgIiArIGFyZykKKyAgICBt
b25rZXlwYXRjaC5zZXRlbnYoJ0NPTVBfUE9JTlQnLCBzdHIobGVuKCdweXRlc3QgJyArIGFyZykp
KQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVuKCdiYXNoJywgc3RyKHNjcmlwdCksIGFyZykKKyAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWyJ0ZXN0X2FyZ2NvbXBsZXRlIiwgInRlc3Rf
YXJnY29tcGxldGUuZC8iXSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9w
YXN0ZWJpbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9wYXN0ZWJpbi5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42YjE3NDJkMTQxNTU1NWNmOTViZmNjOWQ0YjM3YmM2ZWI4MzJkMmVhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3Bhc3RlYmluLnB5CkBAIC0wLDAgKzEs
MTE3IEBACisjIGVuY29kaW5nOiB1dGYtOAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0
ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgoraW1wb3J0IHN5cworaW1wb3J0IHB5
dGVzdAorCisKK2NsYXNzIFRlc3RQYXN0ZUNhcHR1cmUob2JqZWN0KToKKworICAgIEBweXRlc3Qu
Zml4dHVyZQorICAgIGRlZiBwYXN0ZWJpbmxpc3Qoc2VsZiwgbW9ua2V5cGF0Y2gsIHJlcXVlc3Qp
OgorICAgICAgICBwYXN0ZWJpbmxpc3QgPSBbXQorICAgICAgICBwbHVnaW4gPSByZXF1ZXN0LmNv
bmZpZy5wbHVnaW5tYW5hZ2VyLmdldHBsdWdpbigncGFzdGViaW4nKQorICAgICAgICBtb25rZXlw
YXRjaC5zZXRhdHRyKHBsdWdpbiwgJ2NyZWF0ZV9uZXdfcGFzdGUnLCBwYXN0ZWJpbmxpc3QuYXBw
ZW5kKQorICAgICAgICByZXR1cm4gcGFzdGViaW5saXN0CisKKyAgICBkZWYgdGVzdF9mYWlsZWQo
c2VsZiwgdGVzdGRpciwgcGFzdGViaW5saXN0KToKKyAgICAgICAgdGVzdHBhdGggPSB0ZXN0ZGly
Lm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBk
ZWYgdGVzdF9wYXNzKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHRl
c3RfZmFpbCgpOgorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICAgICBkZWYgdGVz
dF9za2lwKCk6CisgICAgICAgICAgICAgICAgcHl0ZXN0LnNraXAoIiIpCisgICAgICAgICIiIikK
KyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKHRlc3RwYXRoLCAiLS1wYXN0ZT1m
YWlsZWQiKQorICAgICAgICBhc3NlcnQgbGVuKHBhc3RlYmlubGlzdCkgPT0gMQorICAgICAgICBz
ID0gcGFzdGViaW5saXN0WzBdCisgICAgICAgIGFzc2VydCBzLmZpbmQoImRlZiB0ZXN0X2ZhaWwi
KSAhPSAtMQorICAgICAgICBhc3NlcnQgcmVwcmVjLmNvdW50b3V0Y29tZXMoKSA9PSBbMSwgMSwg
MV0KKworICAgIGRlZiB0ZXN0X2FsbChzZWxmLCB0ZXN0ZGlyLCBwYXN0ZWJpbmxpc3QpOgorICAg
ICAgICBmcm9tIF9weXRlc3QucHl0ZXN0ZXIgaW1wb3J0IExpbmVNYXRjaGVyCisgICAgICAgIHRl
c3RwYXRoID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAorICAgICAgICAgICAgZGVmIHRlc3RfcGFzcygpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X2ZhaWwoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAg
ICAgICAgICAgZGVmIHRlc3Rfc2tpcCgpOgorICAgICAgICAgICAgICAgIHB5dGVzdC5za2lwKCIi
KQorICAgICAgICAiIiIpCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bih0ZXN0
cGF0aCwgIi0tcGFzdGViaW49YWxsIiwgJy12JykKKyAgICAgICAgYXNzZXJ0IHJlcHJlYy5jb3Vu
dG91dGNvbWVzKCkgPT0gWzEsIDEsIDFdCisgICAgICAgIGFzc2VydCBsZW4ocGFzdGViaW5saXN0
KSA9PSAxCisgICAgICAgIGNvbnRlbnRzID0gcGFzdGViaW5saXN0WzBdLmRlY29kZSgndXRmLTgn
KQorICAgICAgICBtYXRjaGVyID0gTGluZU1hdGNoZXIoY29udGVudHMuc3BsaXRsaW5lcygpKQor
ICAgICAgICBtYXRjaGVyLmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgJyp0ZXN0X3Bhc3Mg
UEFTU0VEKicsCisgICAgICAgICAgICAnKnRlc3RfZmFpbCBGQUlMRUQqJywKKyAgICAgICAgICAg
ICcqdGVzdF9za2lwIFNLSVBQRUQqJywKKyAgICAgICAgICAgICcqPT0gMSBmYWlsZWQsIDEgcGFz
c2VkLCAxIHNraXBwZWQgaW4gKicKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X25vbl9hc2Np
aV9wYXN0ZV90ZXh0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiJNYWtlIHN1cmUgdGhhdCB0
ZXh0IHdoaWNoIGNvbnRhaW5zIG5vbi1hc2NpaSBjaGFyYWN0ZXJzIGlzIHBhc3RlZAorICAgICAg
ICBjb3JyZWN0bHkuIFNlZSAjMTIxOS4KKyAgICAgICAgIiIiCisgICAgICAgIHRlc3RkaXIubWFr
ZXB5ZmlsZSh0ZXN0X3VuaWNvZGU9IiIiCisgICAgICAgICAgICAjIGVuY29kaW5nOiB1dGYtOAor
ICAgICAgICAgICAgZGVmIHRlc3QoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgJ+KYuicgPT0g
MQorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctLXBh
c3RlYmluPWFsbCcpCisgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPT0gMzoKKyAgICAg
ICAgICAgIGV4cGVjdGVkX21zZyA9ICIqYXNzZXJ0ICfimLonID09IDEqIgorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgZXhwZWN0ZWRfbXNnID0gIiphc3NlcnQgJ1xceGUyXFx4OThcXHhiYScg
PT0gMSoiCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAg
ICBleHBlY3RlZF9tc2csCisgICAgICAgICAgICAiKj09IDEgZmFpbGVkIGluICoiLAorICAgICAg
ICAgICAgJypTZW5kaW5nIGluZm9ybWF0aW9uIHRvIFBhc3RlIFNlcnZpY2UqJywKKyAgICAgICAg
XSkKKworCitjbGFzcyBUZXN0UGFzdGUob2JqZWN0KToKKworICAgIEBweXRlc3QuZml4dHVyZQor
ICAgIGRlZiBwYXN0ZWJpbihzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgcmV0dXJuIHJlcXVlc3Qu
Y29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0cGx1Z2luKCdwYXN0ZWJpbicpCisKKyAgICBAcHl0ZXN0
LmZpeHR1cmUKKyAgICBkZWYgbW9ja2VkX3VybG9wZW4oc2VsZiwgbW9ua2V5cGF0Y2gpOgorICAg
ICAgICAiIiIKKyAgICAgICAgbW9ua2V5cGF0Y2ggdGhlIGFjdHVhbCB1cmxvcGVuIGNhbGxzIGRv
bmUgYnkgdGhlIGludGVybmFsIHBsdWdpbgorICAgICAgICBmdW5jdGlvbiB0aGF0IGNvbm5lY3Rz
IHRvIGJwYXN0ZSBzZXJ2aWNlLgorICAgICAgICAiIiIKKyAgICAgICAgY2FsbHMgPSBbXQorCisg
ICAgICAgIGRlZiBtb2NrZWQodXJsLCBkYXRhKToKKyAgICAgICAgICAgIGNhbGxzLmFwcGVuZCgo
dXJsLCBkYXRhKSkKKworICAgICAgICAgICAgY2xhc3MgRHVtbXlGaWxlKG9iamVjdCk6CisgICAg
ICAgICAgICAgICAgZGVmIHJlYWQoc2VsZik6CisgICAgICAgICAgICAgICAgICAgICMgcGFydCBv
ZiBodG1sIG9mIGEgbm9ybWFsIHJlc3BvbnNlCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBi
J1ZpZXcgPGEgaHJlZj0iL3Jhdy8zYzBjNjc1MGJkIj5yYXc8L2E+LicKKyAgICAgICAgICAgIHJl
dHVybiBEdW1teUZpbGUoKQorCisgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCk6
CisgICAgICAgICAgICBpbXBvcnQgdXJsbGliCisgICAgICAgICAgICBtb25rZXlwYXRjaC5zZXRh
dHRyKHVybGxpYiwgJ3VybG9wZW4nLCBtb2NrZWQpCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICBpbXBvcnQgdXJsbGliLnJlcXVlc3QKKyAgICAgICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIo
dXJsbGliLnJlcXVlc3QsICd1cmxvcGVuJywgbW9ja2VkKQorICAgICAgICByZXR1cm4gY2FsbHMK
KworICAgIGRlZiB0ZXN0X2NyZWF0ZV9uZXdfcGFzdGUoc2VsZiwgcGFzdGViaW4sIG1vY2tlZF91
cmxvcGVuKToKKyAgICAgICAgcmVzdWx0ID0gcGFzdGViaW4uY3JlYXRlX25ld19wYXN0ZShiJ2Z1
bGwtcGFzdGUtY29udGVudHMnKQorICAgICAgICBhc3NlcnQgcmVzdWx0ID09ICdodHRwczovL2Jw
YXN0ZS5uZXQvc2hvdy8zYzBjNjc1MGJkJworICAgICAgICBhc3NlcnQgbGVuKG1vY2tlZF91cmxv
cGVuKSA9PSAxCisgICAgICAgIHVybCwgZGF0YSA9IG1vY2tlZF91cmxvcGVuWzBdCisgICAgICAg
IGFzc2VydCB0eXBlKGRhdGEpIGlzIGJ5dGVzCisgICAgICAgIGxleGVyID0gJ3B5dGhvbjMnIGlm
IHN5cy52ZXJzaW9uX2luZm9bMF0gPT0gMyBlbHNlICdweXRob24nCisgICAgICAgIGFzc2VydCB1
cmwgPT0gJ2h0dHBzOi8vYnBhc3RlLm5ldCcKKyAgICAgICAgYXNzZXJ0ICdsZXhlcj0lcycgJSBs
ZXhlciBpbiBkYXRhLmRlY29kZSgpCisgICAgICAgIGFzc2VydCAnY29kZT1mdWxsLXBhc3RlLWNv
bnRlbnRzJyBpbiBkYXRhLmRlY29kZSgpCisgICAgICAgIGFzc2VydCAnZXhwaXJ5PTF3ZWVrJyBp
biBkYXRhLmRlY29kZSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcGRi
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3BkYi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MGE1YzNj
NWJkYmFjMmJmYzU0ZTBhMzg3MDRmZTYxYWExZDRmODM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy90ZXN0X3BkYi5weQpAQCAtMCwwICsxLDQwNiBAQAorZnJvbSBfX2Z1
dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgor
aW1wb3J0IHN5cworaW1wb3J0IHBsYXRmb3JtCisKK2ltcG9ydCBfcHl0ZXN0Ll9jb2RlCitpbXBv
cnQgcHl0ZXN0CisKKworZGVmIHJ1bnBkYl9hbmRfZ2V0X3JlcG9ydCh0ZXN0ZGlyLCBzb3VyY2Up
OgorICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoc291cmNlKQorICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0X2lucHJvY2VzcygiLS1wZGIiLCBwKQorICAgIHJlcG9ydHMgPSByZXN1bHQu
cmVwcmVjLmdldHJlcG9ydHMoInB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydCIpCisgICAgYXNzZXJ0
IGxlbihyZXBvcnRzKSA9PSAzLCByZXBvcnRzICAjIHNldHVwL2NhbGwvdGVhcmRvd24KKyAgICBy
ZXR1cm4gcmVwb3J0c1sxXQorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGN1c3RvbV9wZGJfY2Fs
bHMoKToKKyAgICBjYWxsZWQgPSBbXQorCisgICAgIyBpbnN0YWxsIGR1bW15IGRlYnVnZ2VyIGNs
YXNzIGFuZCB0cmFjayB3aGljaCBtZXRob2RzIHdlcmUgY2FsbGVkIG9uIGl0CisgICAgY2xhc3Mg
X0N1c3RvbVBkYihvYmplY3QpOgorICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoq
a3dhcmdzKToKKyAgICAgICAgICAgIGNhbGxlZC5hcHBlbmQoImluaXQiKQorCisgICAgICAgIGRl
ZiByZXNldChzZWxmKToKKyAgICAgICAgICAgIGNhbGxlZC5hcHBlbmQoInJlc2V0IikKKworICAg
ICAgICBkZWYgaW50ZXJhY3Rpb24oc2VsZiwgKmFyZ3MpOgorICAgICAgICAgICAgY2FsbGVkLmFw
cGVuZCgiaW50ZXJhY3Rpb24iKQorCisgICAgX3B5dGVzdC5fQ3VzdG9tUGRiID0gX0N1c3RvbVBk
YgorICAgIHJldHVybiBjYWxsZWQKKworCitjbGFzcyBUZXN0UERCKG9iamVjdCk6CisKKyAgICBA
cHl0ZXN0LmZpeHR1cmUKKyAgICBkZWYgcGRibGlzdChzZWxmLCByZXF1ZXN0KToKKyAgICAgICAg
bW9ua2V5cGF0Y2ggPSByZXF1ZXN0LmdldGZpeHR1cmV2YWx1ZSgibW9ua2V5cGF0Y2giKQorICAg
ICAgICBwZGJsaXN0ID0gW10KKworICAgICAgICBkZWYgbXlwZGIoKmFyZ3MpOgorICAgICAgICAg
ICAgcGRibGlzdC5hcHBlbmQoYXJncykKKworICAgICAgICBwbHVnaW4gPSByZXF1ZXN0LmNvbmZp
Zy5wbHVnaW5tYW5hZ2VyLmdldHBsdWdpbignZGVidWdnaW5nJykKKyAgICAgICAgbW9ua2V5cGF0
Y2guc2V0YXR0cihwbHVnaW4sICdwb3N0X21vcnRlbScsIG15cGRiKQorICAgICAgICByZXR1cm4g
cGRibGlzdAorCisgICAgZGVmIHRlc3RfcGRiX29uX2ZhaWwoc2VsZiwgdGVzdGRpciwgcGRibGlz
dCk6CisgICAgICAgIHJlcCA9IHJ1bnBkYl9hbmRfZ2V0X3JlcG9ydCh0ZXN0ZGlyLCAiIiIKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAg
ICAgICAiIiIpCisgICAgICAgIGFzc2VydCByZXAuZmFpbGVkCisgICAgICAgIGFzc2VydCBsZW4o
cGRibGlzdCkgPT0gMQorICAgICAgICB0YiA9IF9weXRlc3QuX2NvZGUuVHJhY2ViYWNrKHBkYmxp
c3RbMF1bMF0pCisgICAgICAgIGFzc2VydCB0YlstMV0ubmFtZSA9PSAidGVzdF9mdW5jIgorCisg
ICAgZGVmIHRlc3RfcGRiX29uX3hmYWlsKHNlbGYsIHRlc3RkaXIsIHBkYmxpc3QpOgorICAgICAg
ICByZXAgPSBydW5wZGJfYW5kX2dldF9yZXBvcnQodGVzdGRpciwgIiIiCisgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwKKyAgICAgICAgICAg
IGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAiIiIp
CisgICAgICAgIGFzc2VydCAieGZhaWwiIGluIHJlcC5rZXl3b3JkcworICAgICAgICBhc3NlcnQg
bm90IHBkYmxpc3QKKworICAgIGRlZiB0ZXN0X3BkYl9vbl9za2lwKHNlbGYsIHRlc3RkaXIsIHBk
Ymxpc3QpOgorICAgICAgICByZXAgPSBydW5wZGJfYW5kX2dldF9yZXBvcnQodGVzdGRpciwgIiIi
CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6
CisgICAgICAgICAgICAgICAgcHl0ZXN0LnNraXAoImhlbGxvIikKKyAgICAgICAgIiIiKQorICAg
ICAgICBhc3NlcnQgcmVwLnNraXBwZWQKKyAgICAgICAgYXNzZXJ0IGxlbihwZGJsaXN0KSA9PSAw
CisKKyAgICBkZWYgdGVzdF9wZGJfb25fQmRiUXVpdChzZWxmLCB0ZXN0ZGlyLCBwZGJsaXN0KToK
KyAgICAgICAgcmVwID0gcnVucGRiX2FuZF9nZXRfcmVwb3J0KHRlc3RkaXIsICIiIgorICAgICAg
ICAgICAgaW1wb3J0IGJkYgorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAg
ICAgICAgIHJhaXNlIGJkYi5CZGJRdWl0CisgICAgICAgICIiIikKKyAgICAgICAgYXNzZXJ0IHJl
cC5mYWlsZWQKKyAgICAgICAgYXNzZXJ0IGxlbihwZGJsaXN0KSA9PSAwCisKKyAgICBkZWYgdGVz
dF9wZGJfaW50ZXJhY3Rpb24oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAxID0gdGVzdGRpci5t
YWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfMSgpOgorICAgICAgICAgICAgICAg
IGkgPSAwCisgICAgICAgICAgICAgICAgYXNzZXJ0IGkgPT0gMQorICAgICAgICAiIiIpCisgICAg
ICAgIGNoaWxkID0gdGVzdGRpci5zcGF3bl9weXRlc3QoIi0tcGRiICVzIiAlIHAxKQorICAgICAg
ICBjaGlsZC5leHBlY3QoIi4qZGVmIHRlc3RfMSIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiLipp
ID0gMCIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiKFBkYikiKQorICAgICAgICBjaGlsZC5zZW5k
ZW9mKCkKKyAgICAgICAgcmVzdCA9IGNoaWxkLnJlYWQoKS5kZWNvZGUoInV0ZjgiKQorICAgICAg
ICBhc3NlcnQgIjEgZmFpbGVkIiBpbiByZXN0CisgICAgICAgIGFzc2VydCAiZGVmIHRlc3RfMSIg
bm90IGluIHJlc3QKKyAgICAgICAgc2VsZi5mbHVzaChjaGlsZCkKKworICAgIEBzdGF0aWNtZXRo
b2QKKyAgICBkZWYgZmx1c2goY2hpbGQpOgorICAgICAgICBpZiBwbGF0Zm9ybS5zeXN0ZW0oKSA9
PSAnRGFyd2luJzoKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBpZiBjaGlsZC5pc2FsaXZl
KCk6CisgICAgICAgICAgICBjaGlsZC53YWl0KCkKKworICAgIGRlZiB0ZXN0X3BkYl91bml0dGVz
dF9wb3N0bW9ydGVtKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwMSA9IHRlc3RkaXIubWFrZXB5
ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCB1bml0dGVzdAorICAgICAgICAgICAgY2xhc3Mg
Qmx1Yih1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgICAgICAgICAgICAgZGVmIHRlYXJEb3duKHNl
bGYpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmZpbGVuYW1lID0gTm9uZQorICAgICAgICAg
ICAgICAgIGRlZiB0ZXN0X2ZhbHNlKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmZp
bGVuYW1lID0gJ2RlYnVnJyArICcubWUnCisgICAgICAgICAgICAgICAgICAgIGFzc2VydCAwCisg
ICAgICAgICIiIikKKyAgICAgICAgY2hpbGQgPSB0ZXN0ZGlyLnNwYXduX3B5dGVzdCgiLS1wZGIg
JXMiICUgcDEpCisgICAgICAgIGNoaWxkLmV4cGVjdCgnKFBkYiknKQorICAgICAgICBjaGlsZC5z
ZW5kbGluZSgncCBzZWxmLmZpbGVuYW1lJykKKyAgICAgICAgY2hpbGQuc2VuZGVvZigpCisgICAg
ICAgIHJlc3QgPSBjaGlsZC5yZWFkKCkuZGVjb2RlKCJ1dGY4IikKKyAgICAgICAgYXNzZXJ0ICdk
ZWJ1Zy5tZScgaW4gcmVzdAorICAgICAgICBzZWxmLmZsdXNoKGNoaWxkKQorCisgICAgZGVmIHRl
c3RfcGRiX3VuaXR0ZXN0X3NraXAoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIlRlc3QgZm9y
IGlzc3VlICMyMTM3IiIiCisgICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAg
ICAgICAgICAgaW1wb3J0IHVuaXR0ZXN0CisgICAgICAgICAgICBAdW5pdHRlc3Quc2tpcElmKFRy
dWUsICdTa2lwcGluZyBhbHNvIHdpdGggcGRiIGFjdGl2ZScpCisgICAgICAgICAgICBjbGFzcyBN
eVRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9v
bmUoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICIiIikKKyAg
ICAgICAgY2hpbGQgPSB0ZXN0ZGlyLnNwYXduX3B5dGVzdCgiLXJzIC0tcGRiICVzIiAlIHAxKQor
ICAgICAgICBjaGlsZC5leHBlY3QoJ1NraXBwaW5nIGFsc28gd2l0aCBwZGIgYWN0aXZlJykKKyAg
ICAgICAgY2hpbGQuZXhwZWN0KCcxIHNraXBwZWQgaW4nKQorICAgICAgICBjaGlsZC5zZW5kZW9m
KCkKKyAgICAgICAgc2VsZi5mbHVzaChjaGlsZCkKKworICAgIGRlZiB0ZXN0X3BkYl9pbnRlcmFj
dGlvbl9jYXB0dXJlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwMSA9IHRlc3RkaXIubWFrZXB5
ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEoKToKKyAgICAgICAgICAgICAgICBwcmlu
dCgiZ2V0cmVrdCIpCisgICAgICAgICAgICAgICAgYXNzZXJ0IEZhbHNlCisgICAgICAgICIiIikK
KyAgICAgICAgY2hpbGQgPSB0ZXN0ZGlyLnNwYXduX3B5dGVzdCgiLS1wZGIgJXMiICUgcDEpCisg
ICAgICAgIGNoaWxkLmV4cGVjdCgiZ2V0cmVrdCIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiKFBk
YikiKQorICAgICAgICBjaGlsZC5zZW5kZW9mKCkKKyAgICAgICAgcmVzdCA9IGNoaWxkLnJlYWQo
KS5kZWNvZGUoInV0ZjgiKQorICAgICAgICBhc3NlcnQgIjEgZmFpbGVkIiBpbiByZXN0CisgICAg
ICAgIGFzc2VydCAiZ2V0cmVrdCIgbm90IGluIHJlc3QKKyAgICAgICAgc2VsZi5mbHVzaChjaGls
ZCkKKworICAgIGRlZiB0ZXN0X3BkYl9pbnRlcmFjdGlvbl9leGNlcHRpb24oc2VsZiwgdGVzdGRp
cik6CisgICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1w
b3J0IHB5dGVzdAorICAgICAgICAgICAgZGVmIGdsb2JhbGZ1bmMoKToKKyAgICAgICAgICAgICAg
ICBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF8xKCk6CisgICAgICAgICAgICAgICAgcHl0ZXN0
LnJhaXNlcyhWYWx1ZUVycm9yLCBnbG9iYWxmdW5jKQorICAgICAgICAiIiIpCisgICAgICAgIGNo
aWxkID0gdGVzdGRpci5zcGF3bl9weXRlc3QoIi0tcGRiICVzIiAlIHAxKQorICAgICAgICBjaGls
ZC5leHBlY3QoIi4qZGVmIHRlc3RfMSIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiLipweXRlc3Qu
cmFpc2VzLipnbG9iYWxmdW5jIikKKyAgICAgICAgY2hpbGQuZXhwZWN0KCIoUGRiKSIpCisgICAg
ICAgIGNoaWxkLnNlbmRsaW5lKCJnbG9iYWxmdW5jIikKKyAgICAgICAgY2hpbGQuZXhwZWN0KCIu
KmZ1bmN0aW9uIikKKyAgICAgICAgY2hpbGQuc2VuZGVvZigpCisgICAgICAgIGNoaWxkLmV4cGVj
dCgiMSBmYWlsZWQiKQorICAgICAgICBzZWxmLmZsdXNoKGNoaWxkKQorCisgICAgZGVmIHRlc3Rf
cGRiX2ludGVyYWN0aW9uX29uX2NvbGxlY3Rpb25faXNzdWUxODEoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5
dGVzdAorICAgICAgICAgICAgeHh4CisgICAgICAgICIiIikKKyAgICAgICAgY2hpbGQgPSB0ZXN0
ZGlyLnNwYXduX3B5dGVzdCgiLS1wZGIgJXMiICUgcDEpCisgICAgICAgICMgY2hpbGQuZXhwZWN0
KCIuKmltcG9ydCBweXRlc3QuKiIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiKFBkYikiKQorICAg
ICAgICBjaGlsZC5zZW5kZW9mKCkKKyAgICAgICAgY2hpbGQuZXhwZWN0KCIxIGVycm9yIikKKyAg
ICAgICAgc2VsZi5mbHVzaChjaGlsZCkKKworICAgIGRlZiB0ZXN0X3BkYl9pbnRlcmFjdGlvbl9v
bl9pbnRlcm5hbF9lcnJvcihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29u
ZnRlc3QoIiIiCisgICAgICAgICAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfcHJvdG9jb2woKToKKyAg
ICAgICAgICAgICAgICAwLzAKKyAgICAgICAgIiIiKQorICAgICAgICBwMSA9IHRlc3RkaXIubWFr
ZXB5ZmlsZSgiZGVmIHRlc3RfZnVuYygpOiBwYXNzIikKKyAgICAgICAgY2hpbGQgPSB0ZXN0ZGly
LnNwYXduX3B5dGVzdCgiLS1wZGIgJXMiICUgcDEpCisgICAgICAgICMgY2hpbGQuZXhwZWN0KCIu
KmltcG9ydCBweXRlc3QuKiIpCisgICAgICAgIGNoaWxkLmV4cGVjdCgiKFBkYikiKQorICAgICAg
ICBjaGlsZC5zZW5kZW9mKCkKKyAgICAgICAgc2VsZi5mbHVzaChjaGlsZCkKKworICAgIGRlZiB0
ZXN0X3BkYl9pbnRlcmFjdGlvbl9jYXB0dXJpbmdfc2ltcGxlKHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICBwMSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRl
c3QKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEoKToKKyAgICAgICAgICAgICAgICBpID0gMAorICAg
ICAgICAgICAgICAgIHByaW50ICgiaGVsbG8xNyIpCisgICAgICAgICAgICAgICAgcHl0ZXN0LnNl
dF90cmFjZSgpCisgICAgICAgICAgICAgICAgeCA9IDMKKyAgICAgICAgIiIiKQorICAgICAgICBj
aGlsZCA9IHRlc3RkaXIuc3Bhd25fcHl0ZXN0KHN0cihwMSkpCisgICAgICAgIGNoaWxkLmV4cGVj
dCgidGVzdF8xIikKKyAgICAgICAgY2hpbGQuZXhwZWN0KCJ4ID0gMyIpCisgICAgICAgIGNoaWxk
LmV4cGVjdCgiKFBkYikiKQorICAgICAgICBjaGlsZC5zZW5kZW9mKCkKKyAgICAgICAgcmVzdCA9
IGNoaWxkLnJlYWQoKS5kZWNvZGUoInV0Zi04IikKKyAgICAgICAgYXNzZXJ0ICIxIGZhaWxlZCIg
aW4gcmVzdAorICAgICAgICBhc3NlcnQgImRlZiB0ZXN0XzEiIGluIHJlc3QKKyAgICAgICAgYXNz
ZXJ0ICJoZWxsbzE3IiBpbiByZXN0ICAjIG91dCBpcyBjYXB0dXJlZAorICAgICAgICBzZWxmLmZs
dXNoKGNoaWxkKQorCisgICAgZGVmIHRlc3RfcGRiX3NldF90cmFjZV9pbnRlcmNlcHRpb24oc2Vs
ZiwgdGVzdGRpcik6CisgICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAg
ICAgICAgaW1wb3J0IHBkYgorICAgICAgICAgICAgZGVmIHRlc3RfMSgpOgorICAgICAgICAgICAg
ICAgIHBkYi5zZXRfdHJhY2UoKQorICAgICAgICAiIiIpCisgICAgICAgIGNoaWxkID0gdGVzdGRp
ci5zcGF3bl9weXRlc3Qoc3RyKHAxKSkKKyAgICAgICAgY2hpbGQuZXhwZWN0KCJ0ZXN0XzEiKQor
ICAgICAgICBjaGlsZC5leHBlY3QoIihQZGIpIikKKyAgICAgICAgY2hpbGQuc2VuZGVvZigpCisg
ICAgICAgIHJlc3QgPSBjaGlsZC5yZWFkKCkuZGVjb2RlKCJ1dGY4IikKKyAgICAgICAgYXNzZXJ0
ICIxIGZhaWxlZCIgaW4gcmVzdAorICAgICAgICBhc3NlcnQgInJlYWRpbmcgZnJvbSBzdGRpbiB3
aGlsZSBvdXRwdXQiIG5vdCBpbiByZXN0CisgICAgICAgIHNlbGYuZmx1c2goY2hpbGQpCisKKyAg
ICBkZWYgdGVzdF9wZGJfYW5kX2NhcHN5cyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcDEgPSB0
ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAg
ICAgICBkZWYgdGVzdF8xKGNhcHN5cyk6CisgICAgICAgICAgICAgICAgcHJpbnQgKCJoZWxsbzEi
KQorICAgICAgICAgICAgICAgIHB5dGVzdC5zZXRfdHJhY2UoKQorICAgICAgICAiIiIpCisgICAg
ICAgIGNoaWxkID0gdGVzdGRpci5zcGF3bl9weXRlc3Qoc3RyKHAxKSkKKyAgICAgICAgY2hpbGQu
ZXhwZWN0KCJ0ZXN0XzEiKQorICAgICAgICBjaGlsZC5zZW5kKCJjYXBzeXMucmVhZG91dGVycigp
XG4iKQorICAgICAgICBjaGlsZC5leHBlY3QoImhlbGxvMSIpCisgICAgICAgIGNoaWxkLnNlbmRl
b2YoKQorICAgICAgICBjaGlsZC5yZWFkKCkKKyAgICAgICAgc2VsZi5mbHVzaChjaGlsZCkKKwor
ICAgIGRlZiB0ZXN0X3NldF90cmFjZV9jYXB0dXJpbmdfYWZ0ZXJ3YXJkcyhzZWxmLCB0ZXN0ZGly
KToKKyAgICAgICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBv
cnQgcGRiCisgICAgICAgICAgICBkZWYgdGVzdF8xKCk6CisgICAgICAgICAgICAgICAgcGRiLnNl
dF90cmFjZSgpCisgICAgICAgICAgICBkZWYgdGVzdF8yKCk6CisgICAgICAgICAgICAgICAgcHJp
bnQgKCJoZWxsbyIpCisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgIiIiKQorICAg
ICAgICBjaGlsZCA9IHRlc3RkaXIuc3Bhd25fcHl0ZXN0KHN0cihwMSkpCisgICAgICAgIGNoaWxk
LmV4cGVjdCgidGVzdF8xIikKKyAgICAgICAgY2hpbGQuc2VuZCgiY1xuIikKKyAgICAgICAgY2hp
bGQuZXhwZWN0KCJ0ZXN0XzIiKQorICAgICAgICBjaGlsZC5leHBlY3QoIkNhcHR1cmVkIikKKyAg
ICAgICAgY2hpbGQuZXhwZWN0KCJoZWxsbyIpCisgICAgICAgIGNoaWxkLnNlbmRlb2YoKQorICAg
ICAgICBjaGlsZC5yZWFkKCkKKyAgICAgICAgc2VsZi5mbHVzaChjaGlsZCkKKworICAgIGRlZiB0
ZXN0X3BkYl9pbnRlcmFjdGlvbl9kb2N0ZXN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwMSA9
IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAg
ICAgICAgIGRlZiBmdW5jdGlvbl8xKCk6CisgICAgICAgICAgICAgICAgJycnCisgICAgICAgICAg
ICAgICAgPj4+IGkgPSAwCisgICAgICAgICAgICAgICAgPj4+IGFzc2VydCBpID09IDEKKyAgICAg
ICAgICAgICAgICAnJycKKyAgICAgICAgIiIiKQorICAgICAgICBjaGlsZCA9IHRlc3RkaXIuc3Bh
d25fcHl0ZXN0KCItLWRvY3Rlc3QtbW9kdWxlcyAtLXBkYiAlcyIgJSBwMSkKKyAgICAgICAgY2hp
bGQuZXhwZWN0KCIoUGRiKSIpCisgICAgICAgIGNoaWxkLnNlbmRsaW5lKCdpJykKKyAgICAgICAg
Y2hpbGQuZXhwZWN0KCIwIikKKyAgICAgICAgY2hpbGQuZXhwZWN0KCIoUGRiKSIpCisgICAgICAg
IGNoaWxkLnNlbmRlb2YoKQorICAgICAgICByZXN0ID0gY2hpbGQucmVhZCgpLmRlY29kZSgidXRm
OCIpCisgICAgICAgIGFzc2VydCAiMSBmYWlsZWQiIGluIHJlc3QKKyAgICAgICAgc2VsZi5mbHVz
aChjaGlsZCkKKworICAgIGRlZiB0ZXN0X3BkYl9pbnRlcmFjdGlvbl9jYXB0dXJpbmdfdHdpY2Uo
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgZGVmIHRlc3RfMSgpOgorICAgICAg
ICAgICAgICAgIGkgPSAwCisgICAgICAgICAgICAgICAgcHJpbnQgKCJoZWxsbzE3IikKKyAgICAg
ICAgICAgICAgICBweXRlc3Quc2V0X3RyYWNlKCkKKyAgICAgICAgICAgICAgICB4ID0gMworICAg
ICAgICAgICAgICAgIHByaW50ICgiaGVsbG8xOCIpCisgICAgICAgICAgICAgICAgcHl0ZXN0LnNl
dF90cmFjZSgpCisgICAgICAgICAgICAgICAgeCA9IDQKKyAgICAgICAgIiIiKQorICAgICAgICBj
aGlsZCA9IHRlc3RkaXIuc3Bhd25fcHl0ZXN0KHN0cihwMSkpCisgICAgICAgIGNoaWxkLmV4cGVj
dCgidGVzdF8xIikKKyAgICAgICAgY2hpbGQuZXhwZWN0KCJ4ID0gMyIpCisgICAgICAgIGNoaWxk
LmV4cGVjdCgiKFBkYikiKQorICAgICAgICBjaGlsZC5zZW5kbGluZSgnYycpCisgICAgICAgIGNo
aWxkLmV4cGVjdCgieCA9IDQiKQorICAgICAgICBjaGlsZC5zZW5kZW9mKCkKKyAgICAgICAgcmVz
dCA9IGNoaWxkLnJlYWQoKS5kZWNvZGUoInV0ZjgiKQorICAgICAgICBhc3NlcnQgIjEgZmFpbGVk
IiBpbiByZXN0CisgICAgICAgIGFzc2VydCAiZGVmIHRlc3RfMSIgaW4gcmVzdAorICAgICAgICBh
c3NlcnQgImhlbGxvMTciIGluIHJlc3QgICMgb3V0IGlzIGNhcHR1cmVkCisgICAgICAgIGFzc2Vy
dCAiaGVsbG8xOCIgaW4gcmVzdCAgIyBvdXQgaXMgY2FwdHVyZWQKKyAgICAgICAgc2VsZi5mbHVz
aChjaGlsZCkKKworICAgIGRlZiB0ZXN0X3BkYl91c2VkX291dHNpZGVfdGVzdChzZWxmLCB0ZXN0
ZGlyKToKKyAgICAgICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBweXRlc3Quc2V0X3RyYWNlKCkKKyAgICAgICAgICAg
IHggPSA1CisgICAgICAgICIiIikKKyAgICAgICAgY2hpbGQgPSB0ZXN0ZGlyLnNwYXduKCIlcyAl
cyIgJSAoc3lzLmV4ZWN1dGFibGUsIHAxKSkKKyAgICAgICAgY2hpbGQuZXhwZWN0KCJ4ID0gNSIp
CisgICAgICAgIGNoaWxkLnNlbmRlb2YoKQorICAgICAgICBzZWxmLmZsdXNoKGNoaWxkKQorCisg
ICAgZGVmIHRlc3RfcGRiX3VzZWRfaW5fZ2VuZXJhdGVfdGVzdHMoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5
dGVzdAorICAgICAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0cyhtZXRhZnVuYyk6Cisg
ICAgICAgICAgICAgICAgcHl0ZXN0LnNldF90cmFjZSgpCisgICAgICAgICAgICAgICAgeCA9IDUK
KyAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbyhhKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICIiIikKKyAgICAgICAgY2hpbGQgPSB0ZXN0ZGlyLnNwYXduX3B5dGVzdChzdHIocDEpKQor
ICAgICAgICBjaGlsZC5leHBlY3QoInggPSA1IikKKyAgICAgICAgY2hpbGQuc2VuZGVvZigpCisg
ICAgICAgIHNlbGYuZmx1c2goY2hpbGQpCisKKyAgICBkZWYgdGVzdF9wZGJfY29sbGVjdGlvbl9m
YWlsdXJlX2lzX3Nob3duKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwMSA9IHRlc3RkaXIubWFr
ZXB5ZmlsZSgiIiJ4eHggIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9z
dWJwcm9jZXNzKCItLXBkYiIsIHAxKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoWworICAgICAgICAgICAgIipOYW1lRXJyb3IqeHh4KiIsCisgICAgICAgICAgICAiKjEgZXJy
b3IqIiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2VudGVyX3BkYl9ob29rX2lzX2NhbGxl
ZChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAg
ICAgICAgICBkZWYgcHl0ZXN0X2VudGVyX3BkYihjb25maWcpOgorICAgICAgICAgICAgICAgIGFz
c2VydCBjb25maWcudGVzdGluZ192ZXJpZmljYXRpb24gPT0gJ2NvbmZpZ3VyZWQnCisgICAgICAg
ICAgICAgICAgcHJpbnQgJ2VudGVyX3BkYl9ob29rJworCisgICAgICAgICAgICBkZWYgcHl0ZXN0
X2NvbmZpZ3VyZShjb25maWcpOgorICAgICAgICAgICAgICAgIGNvbmZpZy50ZXN0aW5nX3Zlcmlm
aWNhdGlvbiA9ICdjb25maWd1cmVkJworICAgICAgICAiIiIpCisgICAgICAgIHAxID0gdGVzdGRp
ci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAg
ICBkZWYgdGVzdF9mb28oKToKKyAgICAgICAgICAgICAgICBweXRlc3Quc2V0X3RyYWNlKCkKKyAg
ICAgICAgIiIiKQorICAgICAgICBjaGlsZCA9IHRlc3RkaXIuc3Bhd25fcHl0ZXN0KHN0cihwMSkp
CisgICAgICAgIGNoaWxkLmV4cGVjdCgiZW50ZXJfcGRiX2hvb2siKQorICAgICAgICBjaGlsZC5z
ZW5kKCdjXG4nKQorICAgICAgICBjaGlsZC5zZW5kZW9mKCkKKyAgICAgICAgc2VsZi5mbHVzaChj
aGlsZCkKKworICAgIGRlZiB0ZXN0X3BkYl9jdXN0b21fY2xzKHNlbGYsIHRlc3RkaXIsIGN1c3Rv
bV9wZGJfY2FsbHMpOgorICAgICAgICBwMSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiJ4eHggIiIi
KQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdF9pbnByb2Nlc3MoCisgICAgICAg
ICAgICAiLS1wZGIiLCAiLS1wZGJjbHM9X3B5dGVzdDpfQ3VzdG9tUGRiIiwgcDEpCisgICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKk5hbWVFcnJvcip4
eHgqIiwKKyAgICAgICAgICAgICIqMSBlcnJvcioiLAorICAgICAgICBdKQorICAgICAgICBhc3Nl
cnQgY3VzdG9tX3BkYl9jYWxscyA9PSBbImluaXQiLCAicmVzZXQiLCAiaW50ZXJhY3Rpb24iXQor
CisgICAgZGVmIHRlc3RfcGRiX2N1c3RvbV9jbHNfd2l0aG91dF9wZGIoc2VsZiwgdGVzdGRpciwg
Y3VzdG9tX3BkYl9jYWxscyk6CisgICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiInh4
eCAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0X2lucHJvY2VzcygKKyAg
ICAgICAgICAgICItLXBkYmNscz1fcHl0ZXN0Ol9DdXN0b21QZGIiLCBwMSkKKyAgICAgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqTmFtZUVycm9yKnh4eCoi
LAorICAgICAgICAgICAgIioxIGVycm9yKiIsCisgICAgICAgIF0pCisgICAgICAgIGFzc2VydCBj
dXN0b21fcGRiX2NhbGxzID09IFtdCisKKyAgICBkZWYgdGVzdF9wZGJfY3VzdG9tX2Nsc193aXRo
X3NldHRyYWNlKHNlbGYsIHRlc3RkaXIsIG1vbmtleXBhdGNoKToKKyAgICAgICAgdGVzdGRpci5t
YWtlcHlmaWxlKGN1c3RvbV9wZGI9IiIiCisgICAgICAgICAgICBjbGFzcyBDdXN0b21QZGIob2Jq
ZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgc2V0X3RyYWNlKCphcmdzLCAqKmt3YXJncyk6Cisg
ICAgICAgICAgICAgICAgICAgIHByaW50ICdjdXN0b20gc2V0X3RyYWNlPicKKyAgICAgICAgICIi
IikKKyAgICAgICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBv
cnQgcHl0ZXN0CisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbygpOgorICAgICAgICAgICAgICAg
IHB5dGVzdC5zZXRfdHJhY2UoKQorICAgICAgICAiIiIpCisgICAgICAgIG1vbmtleXBhdGNoLnNl
dGVudignUFlUSE9OUEFUSCcsIHN0cih0ZXN0ZGlyLnRtcGRpcikpCisgICAgICAgIGNoaWxkID0g
dGVzdGRpci5zcGF3bl9weXRlc3QoIi0tcGRiY2xzPWN1c3RvbV9wZGI6Q3VzdG9tUGRiICVzIiAl
IHN0cihwMSkpCisKKyAgICAgICAgY2hpbGQuZXhwZWN0KCdjdXN0b20gc2V0X3RyYWNlPicpCisg
ICAgICAgIGlmIGNoaWxkLmlzYWxpdmUoKToKKyAgICAgICAgICAgIGNoaWxkLndhaXQoKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3BsdWdpbm1hbmFnZXIucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcGx1Z2lubWFuYWdlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTkyMTc2
ZThhOGQyZjdjYjhmYWQzMDg2YTZlY2MyNTlmZmZlNDM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy90ZXN0X3BsdWdpbm1hbmFnZXIucHkKQEAgLTAsMCArMSwzNjEgQEAK
KyMgZW5jb2Rpbmc6IFVURi04Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9y
dCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitpbXBvcnQgcHl0ZXN0CitpbXBvcnQgcHkKK2lt
cG9ydCBvcworCitmcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBnZXRfY29uZmlnLCBQeXRlc3RQ
bHVnaW5NYW5hZ2VyCitmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJVF9OT1RFU1RTQ09MTEVD
VEVELCBTZXNzaW9uCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgcHl0ZXN0cG0oKToKKyAgICBy
ZXR1cm4gUHl0ZXN0UGx1Z2luTWFuYWdlcigpCisKKworY2xhc3MgVGVzdFB5dGVzdFBsdWdpbklu
dGVyYWN0aW9ucyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X2FkZGhvb2tzX2NvbmZ0ZXN0cGx1Z2lu
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUobmV3aG9va3M9IiIi
CisgICAgICAgICAgICBkZWYgcHl0ZXN0X215aG9vayh4eXopOgorICAgICAgICAgICAgICAgICJu
ZXcgaG9vayIKKyAgICAgICAgIiIiKQorICAgICAgICBjb25mID0gdGVzdGRpci5tYWtlY29uZnRl
c3QoIiIiCisgICAgICAgICAgICBpbXBvcnQgc3lzIDsgc3lzLnBhdGguaW5zZXJ0KDAsICcuJykK
KyAgICAgICAgICAgIGltcG9ydCBuZXdob29rcworICAgICAgICAgICAgZGVmIHB5dGVzdF9hZGRo
b29rcyhwbHVnaW5tYW5hZ2VyKToKKyAgICAgICAgICAgICAgICBwbHVnaW5tYW5hZ2VyLmFkZGhv
b2tzKG5ld2hvb2tzKQorICAgICAgICAgICAgZGVmIHB5dGVzdF9teWhvb2soeHl6KToKKyAgICAg
ICAgICAgICAgICByZXR1cm4geHl6ICsgMQorICAgICAgICAiIiIpCisgICAgICAgIGNvbmZpZyA9
IGdldF9jb25maWcoKQorICAgICAgICBwbSA9IGNvbmZpZy5wbHVnaW5tYW5hZ2VyCisgICAgICAg
IHBtLmhvb2sucHl0ZXN0X2FkZGhvb2tzLmNhbGxfaGlzdG9yaWMoCisgICAgICAgICAgICBrd2Fy
Z3M9ZGljdChwbHVnaW5tYW5hZ2VyPWNvbmZpZy5wbHVnaW5tYW5hZ2VyKSkKKyAgICAgICAgY29u
ZmlnLnBsdWdpbm1hbmFnZXIuX2ltcG9ydGNvbmZ0ZXN0KGNvbmYpCisgICAgICAgICMgcHJpbnQo
Y29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0X3BsdWdpbnMoKSkKKyAgICAgICAgcmVzID0gY29uZmln
Lmhvb2sucHl0ZXN0X215aG9vayh4eXo9MTApCisgICAgICAgIGFzc2VydCByZXMgPT0gWzExXQor
CisgICAgZGVmIHRlc3RfYWRkaG9va3Nfbm9ob29rcyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
dGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgICAgICAgICBpbXBvcnQgc3lzCisgICAgICAg
ICAgICBkZWYgcHl0ZXN0X2FkZGhvb2tzKHBsdWdpbm1hbmFnZXIpOgorICAgICAgICAgICAgICAg
IHBsdWdpbm1hbmFnZXIuYWRkaG9va3Moc3lzKQorICAgICAgICAiIiIpCisgICAgICAgIHJlcyA9
IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgYXNzZXJ0IHJlcy5yZXQgIT0gMAorICAgICAg
ICByZXMuc3RkZXJyLmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIipkaWQgbm90IGZpbmQq
c3lzKiIKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X25hbWVzcGFjZV9lYXJseV9mcm9tX2lt
cG9ydChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIK
KyAgICAgICAgICAgIGZyb20gcHl0ZXN0IGltcG9ydCBJdGVtCisgICAgICAgICAgICBmcm9tIHB5
dGVzdCBpbXBvcnQgSXRlbSBhcyBJdGVtMgorICAgICAgICAgICAgYXNzZXJ0IEl0ZW0gaXMgSXRl
bTIKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGhvbihwKQor
ICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKyAgICBkZWYgdGVzdF9kb19leHRfbmFt
ZXNwYWNlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIK
KyAgICAgICAgICAgIGRlZiBweXRlc3RfbmFtZXNwYWNlKCk6CisgICAgICAgICAgICAgICAgcmV0
dXJuIHsnaGVsbG8nOiAnd29ybGQnfQorICAgICAgICAiIiIpCisgICAgICAgIHAgPSB0ZXN0ZGly
Lm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBmcm9tIHB5dGVzdCBpbXBvcnQgaGVsbG8KKyAg
ICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKCk6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0IGhlbGxvID09ICJ3b3JsZCIKKyAgICAgICAgICAgICAgICBh
c3NlcnQgJ2hlbGxvJyBpbiBweXRlc3QuX19hbGxfXworICAgICAgICAiIiIpCisgICAgICAgIHJl
cHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bihwKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29t
ZShwYXNzZWQ9MSkKKworICAgIGRlZiB0ZXN0X2RvX29wdGlvbl9wb3N0aW5pdGlhbGl6ZShzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgY29uZmlnID0gdGVzdGRpci5wYXJzZWNvbmZpZ3VyZSgpCisg
ICAgICAgIGFzc2VydCBub3QgaGFzYXR0cihjb25maWcub3B0aW9uLCAndGVzdDEyMycpCisgICAg
ICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBkZWYgcHl0ZXN0X2Fk
ZG9wdGlvbihwYXJzZXIpOgorICAgICAgICAgICAgICAgIHBhcnNlci5hZGRvcHRpb24oJy0tdGVz
dDEyMycsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9
VHJ1ZSkKKyAgICAgICAgIiIiKQorICAgICAgICBjb25maWcucGx1Z2lubWFuYWdlci5faW1wb3J0
Y29uZnRlc3QocCkKKyAgICAgICAgYXNzZXJ0IGNvbmZpZy5vcHRpb24udGVzdDEyMworCisgICAg
ZGVmIHRlc3RfY29uZmlndXJlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBjb25maWcgPSB0ZXN0
ZGlyLnBhcnNlY29uZmlnKCkKKyAgICAgICAgdmFsdWVzID0gW10KKworICAgICAgICBjbGFzcyBB
KG9iamVjdCk6CisgICAgICAgICAgICBkZWYgcHl0ZXN0X2NvbmZpZ3VyZShzZWxmLCBjb25maWcp
OgorICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoc2VsZikKKworICAgICAgICBjb25maWcu
cGx1Z2lubWFuYWdlci5yZWdpc3RlcihBKCkpCisgICAgICAgIGFzc2VydCBsZW4odmFsdWVzKSA9
PSAwCisgICAgICAgIGNvbmZpZy5fZG9fY29uZmlndXJlKCkKKyAgICAgICAgYXNzZXJ0IGxlbih2
YWx1ZXMpID09IDEKKyAgICAgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIucmVnaXN0ZXIoQSgpKSAg
IyBsZWFkcyB0byBhIGNvbmZpZ3VyZWQoKSBwbHVnaW4KKyAgICAgICAgYXNzZXJ0IGxlbih2YWx1
ZXMpID09IDIKKyAgICAgICAgYXNzZXJ0IHZhbHVlc1swXSAhPSB2YWx1ZXNbMV0KKworICAgICAg
ICBjb25maWcuX2Vuc3VyZV91bmNvbmZpZ3VyZSgpCisgICAgICAgIGNvbmZpZy5wbHVnaW5tYW5h
Z2VyLnJlZ2lzdGVyKEEoKSkKKyAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDIKKworICAg
IGRlZiB0ZXN0X2hvb2tfdHJhY2luZyhzZWxmKToKKyAgICAgICAgcHl0ZXN0cG0gPSBnZXRfY29u
ZmlnKCkucGx1Z2lubWFuYWdlciAgIyBmdWxseSBpbml0aWFsaXplZCB3aXRoIHBsdWdpbnMKKyAg
ICAgICAgc2F2ZWluZGVudCA9IFtdCisKKyAgICAgICAgY2xhc3MgYXBpMShvYmplY3QpOgorICAg
ICAgICAgICAgZGVmIHB5dGVzdF9wbHVnaW5fcmVnaXN0ZXJlZChzZWxmKToKKyAgICAgICAgICAg
ICAgICBzYXZlaW5kZW50LmFwcGVuZChweXRlc3RwbS50cmFjZS5yb290LmluZGVudCkKKworICAg
ICAgICBjbGFzcyBhcGkyKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgcHl0ZXN0X3BsdWdpbl9y
ZWdpc3RlcmVkKHNlbGYpOgorICAgICAgICAgICAgICAgIHNhdmVpbmRlbnQuYXBwZW5kKHB5dGVz
dHBtLnRyYWNlLnJvb3QuaW5kZW50KQorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
KQorCisgICAgICAgIHZhbHVlcyA9IFtdCisgICAgICAgIHB5dGVzdHBtLnRyYWNlLnJvb3Quc2V0
d3JpdGVyKHZhbHVlcy5hcHBlbmQpCisgICAgICAgIHVuZG8gPSBweXRlc3RwbS5lbmFibGVfdHJh
Y2luZygpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGluZGVudCA9IHB5dGVzdHBtLnRyYWNl
LnJvb3QuaW5kZW50CisgICAgICAgICAgICBwID0gYXBpMSgpCisgICAgICAgICAgICBweXRlc3Rw
bS5yZWdpc3RlcihwKQorICAgICAgICAgICAgYXNzZXJ0IHB5dGVzdHBtLnRyYWNlLnJvb3QuaW5k
ZW50ID09IGluZGVudAorICAgICAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID49IDIKKyAgICAg
ICAgICAgIGFzc2VydCAncHl0ZXN0X3BsdWdpbl9yZWdpc3RlcmVkJyBpbiB2YWx1ZXNbMF0KKyAg
ICAgICAgICAgIGFzc2VydCAnZmluaXNoJyBpbiB2YWx1ZXNbMV0KKworICAgICAgICAgICAgdmFs
dWVzWzpdID0gW10KKyAgICAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yKToK
KyAgICAgICAgICAgICAgICBweXRlc3RwbS5yZWdpc3RlcihhcGkyKCkpCisgICAgICAgICAgICBh
c3NlcnQgcHl0ZXN0cG0udHJhY2Uucm9vdC5pbmRlbnQgPT0gaW5kZW50CisgICAgICAgICAgICBh
c3NlcnQgc2F2ZWluZGVudFswXSA+IGluZGVudAorICAgICAgICBmaW5hbGx5OgorICAgICAgICAg
ICAgdW5kbygpCisKKyAgICBkZWYgdGVzdF9ob29rX3Byb3h5KHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICAiIiJUZXN0IHRoZSBnZXRob29rcHJveHkgZnVuY3Rpb24oIzIwMTYpIiIiCisgICAgICAg
IGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWcoKQorICAgICAgICBzZXNzaW9uID0gU2Vzc2lv
bihjb25maWcpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgqKnsKKyAgICAgICAgICAgICd0
ZXN0cy9jb25mdGVzdC5weSc6ICcnLAorICAgICAgICAgICAgJ3Rlc3RzL3N1YmRpci9jb25mdGVz
dC5weSc6ICcnLAorICAgICAgICB9KQorCisgICAgICAgIGNvbmZ0ZXN0MSA9IHRlc3RkaXIudG1w
ZGlyLmpvaW4oJ3Rlc3RzL2NvbmZ0ZXN0LnB5JykKKyAgICAgICAgY29uZnRlc3QyID0gdGVzdGRp
ci50bXBkaXIuam9pbigndGVzdHMvc3ViZGlyL2NvbmZ0ZXN0LnB5JykKKworICAgICAgICBjb25m
aWcucGx1Z2lubWFuYWdlci5faW1wb3J0Y29uZnRlc3QoY29uZnRlc3QxKQorICAgICAgICBpaG9v
a19hID0gc2Vzc2lvbi5nZXRob29rcHJveHkodGVzdGRpci50bXBkaXIuam9pbigndGVzdHMnKSkK
KyAgICAgICAgYXNzZXJ0IGlob29rX2EgaXMgbm90IE5vbmUKKyAgICAgICAgY29uZmlnLnBsdWdp
bm1hbmFnZXIuX2ltcG9ydGNvbmZ0ZXN0KGNvbmZ0ZXN0MikKKyAgICAgICAgaWhvb2tfYiA9IHNl
c3Npb24uZ2V0aG9va3Byb3h5KHRlc3RkaXIudG1wZGlyLmpvaW4oJ3Rlc3RzJykpCisgICAgICAg
IGFzc2VydCBpaG9va19hIGlzIG5vdCBpaG9va19iCisKKyAgICBkZWYgdGVzdF93YXJuX29uX2Rl
cHJlY2F0ZWRfYWRkaG9va3Moc2VsZiwgcHl0ZXN0cG0pOgorICAgICAgICB3YXJuaW5ncyA9IFtd
CisKKyAgICAgICAgY2xhc3MgZ2V0X3dhcm5pbmdzKG9iamVjdCk6CisgICAgICAgICAgICBkZWYg
cHl0ZXN0X2xvZ3dhcm5pbmcoc2VsZiwgY29kZSwgZnNsb2NhdGlvbiwgbWVzc2FnZSwgbm9kZWlk
KToKKyAgICAgICAgICAgICAgICB3YXJuaW5ncy5hcHBlbmQobWVzc2FnZSkKKworICAgICAgICBj
bGFzcyBQbHVnaW4ob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBweXRlc3RfdGVzdGhvb2soKToK
KyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgcHl0ZXN0cG0ucmVnaXN0ZXIoZ2V0X3dh
cm5pbmdzKCkpCisgICAgICAgIGJlZm9yZSA9IGxpc3Qod2FybmluZ3MpCisgICAgICAgIHB5dGVz
dHBtLmFkZGhvb2tzKFBsdWdpbigpKQorICAgICAgICBhc3NlcnQgbGVuKHdhcm5pbmdzKSA9PSBs
ZW4oYmVmb3JlKSArIDEKKyAgICAgICAgYXNzZXJ0ICJkZXByZWNhdGVkIiBpbiB3YXJuaW5nc1st
MV0KKworCitkZWYgdGVzdF9uYW1lc3BhY2VfaGFzX2RlZmF1bHRfYW5kX2Vudl9wbHVnaW5zKHRl
c3RkaXIpOgorICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBw
eXRlc3QKKyAgICAgICAgcHl0ZXN0Lm1hcmsKKyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRob24ocCkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKworZGVmIHRlc3Rf
ZGVmYXVsdF9tYXJrZXJzKHRlc3RkaXIpOgorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCItLW1hcmtlcnMiKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAg
ICIqdHJ5Zmlyc3QqZmlyc3QqIiwKKyAgICAgICAgIip0cnlsYXN0Kmxhc3QqIiwKKyAgICBdKQor
CisKK2RlZiB0ZXN0X2ltcG9ydHBsdWdpbl9lcnJvcl9tZXNzYWdlKHRlc3RkaXIsIHB5dGVzdHBt
KToKKyAgICAiIiJEb24ndCBoaWRlIGltcG9ydCBlcnJvcnMgd2hlbiBpbXBvcnRpbmcgcGx1Z2lu
cyBhbmQgcHJvdmlkZQorICAgIGFuIGVhc3kgdG8gZGVidWcgbWVzc2FnZS4KKworICAgIFNlZSAj
Mzc1IGFuZCAjMTk5OC4KKyAgICAiIiIKKyAgICB0ZXN0ZGlyLnN5c3BhdGhpbnNlcnQodGVzdGRp
ci50bXBkaXIpCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKHF3ZT0iIiIKKyAgICAgICAgIyBlbmNv
ZGluZzogVVRGLTgKKyAgICAgICAgZGVmIHRlc3RfdHJhY2ViYWNrKCk6CisgICAgICAgICAgICBy
YWlzZSBJbXBvcnRFcnJvcih1J05vdCBwb3NzaWJsZSB0byBpbXBvcnQ6IOKYuicpCisgICAgICAg
IHRlc3RfdHJhY2ViYWNrKCkKKyAgICAiIiIpCisgICAgd2l0aCBweXRlc3QucmFpc2VzKEltcG9y
dEVycm9yKSBhcyBleGNpbmZvOgorICAgICAgICBweXRlc3RwbS5pbXBvcnRfcGx1Z2luKCJxd2Ui
KQorCisgICAgZXhwZWN0ZWRfbWVzc2FnZSA9ICcuKkVycm9yIGltcG9ydGluZyBwbHVnaW4gInF3
ZSI6IE5vdCBwb3NzaWJsZSB0byBpbXBvcnQ6IC4nCisgICAgZXhwZWN0ZWRfdHJhY2ViYWNrID0g
Ii4qaW4gdGVzdF90cmFjZWJhY2siCisgICAgYXNzZXJ0IHB5LnN0ZC5yZS5tYXRjaChleHBlY3Rl
ZF9tZXNzYWdlLCBzdHIoZXhjaW5mby52YWx1ZSkpCisgICAgYXNzZXJ0IHB5LnN0ZC5yZS5tYXRj
aChleHBlY3RlZF90cmFjZWJhY2ssIHN0cihleGNpbmZvLnRyYWNlYmFja1stMV0pKQorCisKK2Ns
YXNzIFRlc3RQeXRlc3RQbHVnaW5NYW5hZ2VyKG9iamVjdCk6CisgICAgZGVmIHRlc3RfcmVnaXN0
ZXJfaW1wb3J0ZWRfbW9kdWxlcyhzZWxmKToKKyAgICAgICAgcG0gPSBQeXRlc3RQbHVnaW5NYW5h
Z2VyKCkKKyAgICAgICAgbW9kID0gcHkuc3RkLnR5cGVzLk1vZHVsZVR5cGUoIngueS5weXRlc3Rf
aGVsbG8iKQorICAgICAgICBwbS5yZWdpc3Rlcihtb2QpCisgICAgICAgIGFzc2VydCBwbS5pc19y
ZWdpc3RlcmVkKG1vZCkKKyAgICAgICAgdmFsdWVzID0gcG0uZ2V0X3BsdWdpbnMoKQorICAgICAg
ICBhc3NlcnQgbW9kIGluIHZhbHVlcworICAgICAgICBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3Is
ICJwbS5yZWdpc3Rlcihtb2QpIikKKyAgICAgICAgcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBs
YW1iZGE6IHBtLnJlZ2lzdGVyKG1vZCkpCisgICAgICAgICMgYXNzZXJ0IG5vdCBwbS5pc19yZWdp
c3RlcmVkKG1vZDIpCisgICAgICAgIGFzc2VydCBwbS5nZXRfcGx1Z2lucygpID09IHZhbHVlcwor
CisgICAgZGVmIHRlc3RfY2Fub25pY2FsX2ltcG9ydChzZWxmLCBtb25rZXlwYXRjaCk6CisgICAg
ICAgIG1vZCA9IHB5LnN0ZC50eXBlcy5Nb2R1bGVUeXBlKCJweXRlc3RfeHl6IikKKyAgICAgICAg
bW9ua2V5cGF0Y2guc2V0aXRlbShweS5zdGQuc3lzLm1vZHVsZXMsICdweXRlc3RfeHl6JywgbW9k
KQorICAgICAgICBwbSA9IFB5dGVzdFBsdWdpbk1hbmFnZXIoKQorICAgICAgICBwbS5pbXBvcnRf
cGx1Z2luKCdweXRlc3RfeHl6JykKKyAgICAgICAgYXNzZXJ0IHBtLmdldF9wbHVnaW4oJ3B5dGVz
dF94eXonKSA9PSBtb2QKKyAgICAgICAgYXNzZXJ0IHBtLmlzX3JlZ2lzdGVyZWQobW9kKQorCisg
ICAgZGVmIHRlc3RfY29uc2lkZXJfbW9kdWxlKHNlbGYsIHRlc3RkaXIsIHB5dGVzdHBtKToKKyAg
ICAgICAgdGVzdGRpci5zeXNwYXRoaW5zZXJ0KCkKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxl
KHB5dGVzdF9wMT0iIyIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZShweXRlc3RfcDI9IiMi
KQorICAgICAgICBtb2QgPSBweS5zdGQudHlwZXMuTW9kdWxlVHlwZSgidGVtcCIpCisgICAgICAg
IG1vZC5weXRlc3RfcGx1Z2lucyA9IFsicHl0ZXN0X3AxIiwgInB5dGVzdF9wMiJdCisgICAgICAg
IHB5dGVzdHBtLmNvbnNpZGVyX21vZHVsZShtb2QpCisgICAgICAgIGFzc2VydCBweXRlc3RwbS5n
ZXRfcGx1Z2luKCJweXRlc3RfcDEiKS5fX25hbWVfXyA9PSAicHl0ZXN0X3AxIgorICAgICAgICBh
c3NlcnQgcHl0ZXN0cG0uZ2V0X3BsdWdpbigicHl0ZXN0X3AyIikuX19uYW1lX18gPT0gInB5dGVz
dF9wMiIKKworICAgIGRlZiB0ZXN0X2NvbnNpZGVyX21vZHVsZV9pbXBvcnRfbW9kdWxlKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICBweXRlc3RwbSA9IGdldF9jb25maWcoKS5wbHVnaW5tYW5hZ2Vy
CisgICAgICAgIG1vZCA9IHB5LnN0ZC50eXBlcy5Nb2R1bGVUeXBlKCJ4IikKKyAgICAgICAgbW9k
LnB5dGVzdF9wbHVnaW5zID0gInB5dGVzdF9hIgorICAgICAgICBhcGx1Z2luID0gdGVzdGRpci5t
YWtlcHlmaWxlKHB5dGVzdF9hPSIjIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5tYWtlX2hv
b2tfcmVjb3JkZXIocHl0ZXN0cG0pCisgICAgICAgICMgc3lzcGF0aC5wcmVwZW5kKGFwbHVnaW4u
ZGlycGF0aCgpKQorICAgICAgICBweS5zdGQuc3lzLnBhdGguaW5zZXJ0KDAsIHN0cihhcGx1Z2lu
LmRpcnBhdGgoKSkpCisgICAgICAgIHB5dGVzdHBtLmNvbnNpZGVyX21vZHVsZShtb2QpCisgICAg
ICAgIGNhbGwgPSByZXByZWMuZ2V0Y2FsbChweXRlc3RwbS5ob29rLnB5dGVzdF9wbHVnaW5fcmVn
aXN0ZXJlZC5uYW1lKQorICAgICAgICBhc3NlcnQgY2FsbC5wbHVnaW4uX19uYW1lX18gPT0gInB5
dGVzdF9hIgorCisgICAgICAgICMgY2hlY2sgdGhhdCBpdCBpcyBub3QgcmVnaXN0ZXJlZCB0d2lj
ZQorICAgICAgICBweXRlc3RwbS5jb25zaWRlcl9tb2R1bGUobW9kKQorICAgICAgICB2YWx1ZXMg
PSByZXByZWMuZ2V0Y2FsbHMoInB5dGVzdF9wbHVnaW5fcmVnaXN0ZXJlZCIpCisgICAgICAgIGFz
c2VydCBsZW4odmFsdWVzKSA9PSAxCisKKyAgICBkZWYgdGVzdF9jb25zaWRlcl9lbnZfZmFpbHNf
dG9faW1wb3J0KHNlbGYsIG1vbmtleXBhdGNoLCBweXRlc3RwbSk6CisgICAgICAgIG1vbmtleXBh
dGNoLnNldGVudignUFlURVNUX1BMVUdJTlMnLCAnbm9uZXhpc3RpbmcnLCBwcmVwZW5kPSIsIikK
KyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKEltcG9ydEVycm9yKToKKyAgICAgICAgICAgIHB5
dGVzdHBtLmNvbnNpZGVyX2VudigpCisKKyAgICBkZWYgdGVzdF9wbHVnaW5fc2tpcChzZWxmLCB0
ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoc2tp
cHBpbmcxPSIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgcHl0ZXN0
LnNraXAoImhlbGxvIikKKyAgICAgICAgIiIiKQorICAgICAgICBwLmNvcHkocC5kaXJwYXRoKCJz
a2lwcGluZzIucHkiKSkKKyAgICAgICAgbW9ua2V5cGF0Y2guc2V0ZW52KCJQWVRFU1RfUExVR0lO
UyIsICJza2lwcGluZzIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXJ3
IiwgIi1wIiwgInNraXBwaW5nMSIsIHN5c3BhdGhpbnNlcnQ9VHJ1ZSkKKyAgICAgICAgYXNzZXJ0
IHJlc3VsdC5yZXQgPT0gRVhJVF9OT1RFU1RTQ09MTEVDVEVECisgICAgICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKnNraXBwZWQgcGx1Z2luKnNraXBwaW5n
MSpoZWxsbyoiLAorICAgICAgICAgICAgIipza2lwcGVkIHBsdWdpbipza2lwcGluZzIqaGVsbG8q
IiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2NvbnNpZGVyX2Vudl9wbHVnaW5faW5zdGFu
dGlhdGlvbihzZWxmLCB0ZXN0ZGlyLCBtb25rZXlwYXRjaCwgcHl0ZXN0cG0pOgorICAgICAgICB0
ZXN0ZGlyLnN5c3BhdGhpbnNlcnQoKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoeHkxMjM9
IiMiKQorICAgICAgICBtb25rZXlwYXRjaC5zZXRpdGVtKG9zLmVudmlyb24sICdQWVRFU1RfUExV
R0lOUycsICd4eTEyMycpCisgICAgICAgIGwxID0gbGVuKHB5dGVzdHBtLmdldF9wbHVnaW5zKCkp
CisgICAgICAgIHB5dGVzdHBtLmNvbnNpZGVyX2VudigpCisgICAgICAgIGwyID0gbGVuKHB5dGVz
dHBtLmdldF9wbHVnaW5zKCkpCisgICAgICAgIGFzc2VydCBsMiA9PSBsMSArIDEKKyAgICAgICAg
YXNzZXJ0IHB5dGVzdHBtLmdldF9wbHVnaW4oJ3h5MTIzJykKKyAgICAgICAgcHl0ZXN0cG0uY29u
c2lkZXJfZW52KCkKKyAgICAgICAgbDMgPSBsZW4ocHl0ZXN0cG0uZ2V0X3BsdWdpbnMoKSkKKyAg
ICAgICAgYXNzZXJ0IGwyID09IGwzCisKKyAgICBkZWYgdGVzdF9wbHVnaW5tYW5hZ2VyX0VOVl9z
dGFydHVwKHNlbGYsIHRlc3RkaXIsIG1vbmtleXBhdGNoKToKKyAgICAgICAgdGVzdGRpci5tYWtl
cHlmaWxlKHB5dGVzdF94NTAwPSIjIikKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgi
IiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxv
KHB5dGVzdGNvbmZpZyk6CisgICAgICAgICAgICAgICAgcGx1Z2luID0gcHl0ZXN0Y29uZmlnLnBs
dWdpbm1hbmFnZXIuZ2V0X3BsdWdpbigncHl0ZXN0X3g1MDAnKQorICAgICAgICAgICAgICAgIGFz
c2VydCBwbHVnaW4gaXMgbm90IE5vbmUKKyAgICAgICAgIiIiKQorICAgICAgICBtb25rZXlwYXRj
aC5zZXRlbnYoJ1BZVEVTVF9QTFVHSU5TJywgJ3B5dGVzdF94NTAwJywgcHJlcGVuZD0iLCIpCisg
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAsIHN5c3BhdGhpbnNlcnQ9VHJ1ZSkK
KyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorICAgICAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoWyIqMSBwYXNzZWQqIl0pCisKKyAgICBkZWYgdGVzdF9pbXBvcnRfcGx1Z2lu
X2ltcG9ydG5hbWUoc2VsZiwgdGVzdGRpciwgcHl0ZXN0cG0pOgorICAgICAgICBweXRlc3QucmFp
c2VzKEltcG9ydEVycm9yLCAncHl0ZXN0cG0uaW1wb3J0X3BsdWdpbigicXdlcXdleC55IiknKQor
ICAgICAgICBweXRlc3QucmFpc2VzKEltcG9ydEVycm9yLCAncHl0ZXN0cG0uaW1wb3J0X3BsdWdp
bigicHl0ZXN0X3F3ZXF3eC55IiknKQorCisgICAgICAgIHRlc3RkaXIuc3lzcGF0aGluc2VydCgp
CisgICAgICAgIHBsdWdpbm5hbWUgPSAicHl0ZXN0X2hlbGxvIgorICAgICAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoKip7cGx1Z2lubmFtZTogIiJ9KQorICAgICAgICBweXRlc3RwbS5pbXBvcnRfcGx1
Z2luKCJweXRlc3RfaGVsbG8iKQorICAgICAgICBsZW4xID0gbGVuKHB5dGVzdHBtLmdldF9wbHVn
aW5zKCkpCisgICAgICAgIHB5dGVzdHBtLmltcG9ydF9wbHVnaW4oInB5dGVzdF9oZWxsbyIpCisg
ICAgICAgIGxlbjIgPSBsZW4ocHl0ZXN0cG0uZ2V0X3BsdWdpbnMoKSkKKyAgICAgICAgYXNzZXJ0
IGxlbjEgPT0gbGVuMgorICAgICAgICBwbHVnaW4xID0gcHl0ZXN0cG0uZ2V0X3BsdWdpbigicHl0
ZXN0X2hlbGxvIikKKyAgICAgICAgYXNzZXJ0IHBsdWdpbjEuX19uYW1lX18uZW5kc3dpdGgoJ3B5
dGVzdF9oZWxsbycpCisgICAgICAgIHBsdWdpbjIgPSBweXRlc3RwbS5nZXRfcGx1Z2luKCJweXRl
c3RfaGVsbG8iKQorICAgICAgICBhc3NlcnQgcGx1Z2luMiBpcyBwbHVnaW4xCisKKyAgICBkZWYg
dGVzdF9pbXBvcnRfcGx1Z2luX2RvdHRlZF9uYW1lKHNlbGYsIHRlc3RkaXIsIHB5dGVzdHBtKToK
KyAgICAgICAgcHl0ZXN0LnJhaXNlcyhJbXBvcnRFcnJvciwgJ3B5dGVzdHBtLmltcG9ydF9wbHVn
aW4oInF3ZXF3ZXgueSIpJykKKyAgICAgICAgcHl0ZXN0LnJhaXNlcyhJbXBvcnRFcnJvciwgJ3B5
dGVzdHBtLmltcG9ydF9wbHVnaW4oInB5dGVzdF9xd2Vxd2V4LnkiKScpCisKKyAgICAgICAgdGVz
dGRpci5zeXNwYXRoaW5zZXJ0KCkKKyAgICAgICAgdGVzdGRpci5ta3B5ZGlyKCJwa2ciKS5qb2lu
KCJwbHVnLnB5Iikud3JpdGUoIng9MyIpCisgICAgICAgIHBsdWdpbm5hbWUgPSAicGtnLnBsdWci
CisgICAgICAgIHB5dGVzdHBtLmltcG9ydF9wbHVnaW4ocGx1Z2lubmFtZSkKKyAgICAgICAgbW9k
ID0gcHl0ZXN0cG0uZ2V0X3BsdWdpbigicGtnLnBsdWciKQorICAgICAgICBhc3NlcnQgbW9kLngg
PT0gMworCisgICAgZGVmIHRlc3RfY29uc2lkZXJfY29uZnRlc3RfZGVwcyhzZWxmLCB0ZXN0ZGly
LCBweXRlc3RwbSk6CisgICAgICAgIG1vZCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgicHl0ZXN0X3Bs
dWdpbnM9J3h5eiciKS5weWltcG9ydCgpCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhJbXBv
cnRFcnJvcik6CisgICAgICAgICAgICBweXRlc3RwbS5jb25zaWRlcl9jb25mdGVzdChtb2QpCisK
KworY2xhc3MgVGVzdFB5dGVzdFBsdWdpbk1hbmFnZXJCb290c3RyYXBtaW5nKG9iamVjdCk6Cisg
ICAgZGVmIHRlc3RfcHJlcGFyc2VfYXJncyhzZWxmLCBweXRlc3RwbSk6CisgICAgICAgIHB5dGVz
dC5yYWlzZXMoSW1wb3J0RXJyb3IsIGxhbWJkYToKKyAgICAgICAgICAgICAgICAgICAgICBweXRl
c3RwbS5jb25zaWRlcl9wcmVwYXJzZShbInh5eiIsICItcCIsICJoZWxsbzEyMyJdKSkKKworICAg
IGRlZiB0ZXN0X3BsdWdpbl9wcmV2ZW50X3JlZ2lzdGVyKHNlbGYsIHB5dGVzdHBtKToKKyAgICAg
ICAgcHl0ZXN0cG0uY29uc2lkZXJfcHJlcGFyc2UoWyJ4eXoiLCAiLXAiLCAibm86YWJjIl0pCisg
ICAgICAgIGwxID0gcHl0ZXN0cG0uZ2V0X3BsdWdpbnMoKQorICAgICAgICBweXRlc3RwbS5yZWdp
c3Rlcig0MiwgbmFtZT0iYWJjIikKKyAgICAgICAgbDIgPSBweXRlc3RwbS5nZXRfcGx1Z2lucygp
CisgICAgICAgIGFzc2VydCBsZW4obDIpID09IGxlbihsMSkKKyAgICAgICAgYXNzZXJ0IDQyIG5v
dCBpbiBsMgorCisgICAgZGVmIHRlc3RfcGx1Z2luX3ByZXZlbnRfcmVnaXN0ZXJfdW5yZWdpc3Rl
cmVkX2FscmVkeV9yZWdpc3RlcmVkKHNlbGYsIHB5dGVzdHBtKToKKyAgICAgICAgcHl0ZXN0cG0u
cmVnaXN0ZXIoNDIsIG5hbWU9ImFiYyIpCisgICAgICAgIGwxID0gcHl0ZXN0cG0uZ2V0X3BsdWdp
bnMoKQorICAgICAgICBhc3NlcnQgNDIgaW4gbDEKKyAgICAgICAgcHl0ZXN0cG0uY29uc2lkZXJf
cHJlcGFyc2UoWyJ4eXoiLCAiLXAiLCAibm86YWJjIl0pCisgICAgICAgIGwyID0gcHl0ZXN0cG0u
Z2V0X3BsdWdpbnMoKQorICAgICAgICBhc3NlcnQgNDIgbm90IGluIGwyCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcHl0ZXN0ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L3Rlc3RfcHl0ZXN0ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTUwOGMyOTU0ZThkMWI5MjAzYzVjMjViNmJi
MjAzZDQ5MjQzMGRkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVz
dF9weXRlc3Rlci5weQpAQCAtMCwwICsxLDE0OSBAQAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0K
K2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRf
ZnVuY3Rpb24KK2ltcG9ydCBweXRlc3QKK2ltcG9ydCBvcworZnJvbSBfcHl0ZXN0LnB5dGVzdGVy
IGltcG9ydCBIb29rUmVjb3JkZXIKK2Zyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IFB5dGVzdFBs
dWdpbk1hbmFnZXIKK2Zyb20gX3B5dGVzdC5tYWluIGltcG9ydCBFWElUX09LLCBFWElUX1RFU1RT
RkFJTEVECisKKworZGVmIHRlc3RfbWFrZV9ob29rX3JlY29yZGVyKHRlc3RkaXIpOgorICAgIGl0
ZW0gPSB0ZXN0ZGlyLmdldGl0ZW0oImRlZiB0ZXN0X2Z1bmMoKTogcGFzcyIpCisgICAgcmVjb3Jk
ZXIgPSB0ZXN0ZGlyLm1ha2VfaG9va19yZWNvcmRlcihpdGVtLmNvbmZpZy5wbHVnaW5tYW5hZ2Vy
KQorICAgIGFzc2VydCBub3QgcmVjb3JkZXIuZ2V0ZmFpbHVyZXMoKQorCisgICAgcHl0ZXN0Lnhm
YWlsKCJpbnRlcm5hbCByZXBvcnRyZWNvcmRlciB0ZXN0cyBuZWVkIHJlZmFjdG9yaW5nIikKKwor
ICAgIGNsYXNzIHJlcChvYmplY3QpOgorICAgICAgICBleGNpbmZvID0gTm9uZQorICAgICAgICBw
YXNzZWQgPSBGYWxzZQorICAgICAgICBmYWlsZWQgPSBUcnVlCisgICAgICAgIHNraXBwZWQgPSBG
YWxzZQorICAgICAgICB3aGVuID0gImNhbGwiCisKKyAgICByZWNvcmRlci5ob29rLnB5dGVzdF9y
dW50ZXN0X2xvZ3JlcG9ydChyZXBvcnQ9cmVwKQorICAgIGZhaWx1cmVzID0gcmVjb3JkZXIuZ2V0
ZmFpbHVyZXMoKQorICAgIGFzc2VydCBmYWlsdXJlcyA9PSBbcmVwXQorICAgIGZhaWx1cmVzID0g
cmVjb3JkZXIuZ2V0ZmFpbHVyZXMoKQorICAgIGFzc2VydCBmYWlsdXJlcyA9PSBbcmVwXQorCisg
ICAgY2xhc3MgcmVwKG9iamVjdCk6CisgICAgICAgIGV4Y2luZm8gPSBOb25lCisgICAgICAgIHBh
c3NlZCA9IEZhbHNlCisgICAgICAgIGZhaWxlZCA9IEZhbHNlCisgICAgICAgIHNraXBwZWQgPSBU
cnVlCisgICAgICAgIHdoZW4gPSAiY2FsbCIKKyAgICByZXAucGFzc2VkID0gRmFsc2UKKyAgICBy
ZXAuc2tpcHBlZCA9IFRydWUKKyAgICByZWNvcmRlci5ob29rLnB5dGVzdF9ydW50ZXN0X2xvZ3Jl
cG9ydChyZXBvcnQ9cmVwKQorCisgICAgbW9kY29sID0gdGVzdGRpci5nZXRtb2R1bGVjb2woIiIp
CisgICAgcmVwID0gbW9kY29sLmNvbmZpZy5ob29rLnB5dGVzdF9tYWtlX2NvbGxlY3RfcmVwb3J0
KGNvbGxlY3Rvcj1tb2Rjb2wpCisgICAgcmVwLnBhc3NlZCA9IEZhbHNlCisgICAgcmVwLmZhaWxl
ZCA9IFRydWUKKyAgICByZXAuc2tpcHBlZCA9IEZhbHNlCisgICAgcmVjb3JkZXIuaG9vay5weXRl
c3RfY29sbGVjdHJlcG9ydChyZXBvcnQ9cmVwKQorCisgICAgcGFzc2VkLCBza2lwcGVkLCBmYWls
ZWQgPSByZWNvcmRlci5saXN0b3V0Y29tZXMoKQorICAgIGFzc2VydCBub3QgcGFzc2VkIGFuZCBz
a2lwcGVkIGFuZCBmYWlsZWQKKworICAgIG51bXBhc3NlZCwgbnVtc2tpcHBlZCwgbnVtZmFpbGVk
ID0gcmVjb3JkZXIuY291bnRvdXRjb21lcygpCisgICAgYXNzZXJ0IG51bXBhc3NlZCA9PSAwCisg
ICAgYXNzZXJ0IG51bXNraXBwZWQgPT0gMQorICAgIGFzc2VydCBudW1mYWlsZWQgPT0gMQorICAg
IGFzc2VydCBsZW4ocmVjb3JkZXIuZ2V0ZmFpbGVkY29sbGVjdGlvbnMoKSkgPT0gMQorCisgICAg
cmVjb3JkZXIudW5yZWdpc3RlcigpCisgICAgcmVjb3JkZXIuY2xlYXIoKQorICAgIHJlY29yZGVy
Lmhvb2sucHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0KHJlcG9ydD1yZXApCisgICAgcHl0ZXN0LnJh
aXNlcyhWYWx1ZUVycm9yLCAicmVjb3JkZXIuZ2V0ZmFpbHVyZXMoKSIpCisKKworZGVmIHRlc3Rf
cGFyc2Vjb25maWcodGVzdGRpcik6CisgICAgY29uZmlnMSA9IHRlc3RkaXIucGFyc2Vjb25maWco
KQorICAgIGNvbmZpZzIgPSB0ZXN0ZGlyLnBhcnNlY29uZmlnKCkKKyAgICBhc3NlcnQgY29uZmln
MiAhPSBjb25maWcxCisgICAgYXNzZXJ0IGNvbmZpZzEgIT0gcHl0ZXN0LmNvbmZpZworCisKK2Rl
ZiB0ZXN0X3Rlc3RkaXJfcnVuc193aXRoX3BsdWdpbih0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoIiIiCisgICAgICAgIHB5dGVzdF9wbHVnaW5zID0gInB5dGVzdGVyIgorICAgICAg
ICBkZWYgdGVzdF9oZWxsbyh0ZXN0ZGlyKToKKyAgICAgICAgICAgIGFzc2VydCAxCisgICAgIiIi
KQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuYXNzZXJ0X291
dGNvbWVzKHBhc3NlZD0xKQorCisKK2RlZiBtYWtlX2hvbGRlcigpOgorICAgIGNsYXNzIGFwaWNs
YXNzKG9iamVjdCk6CisgICAgICAgIGRlZiBweXRlc3RfeHl6KHNlbGYsIGFyZyk6CisgICAgICAg
ICAgICAieCIKKworICAgICAgICBkZWYgcHl0ZXN0X3h5el9ub2FyZyhzZWxmKToKKyAgICAgICAg
ICAgICJ4IgorCisgICAgYXBpbW9kID0gdHlwZShvcykoJ2FwaScpCisKKyAgICBkZWYgcHl0ZXN0
X3h5eihhcmcpOgorICAgICAgICAieCIKKworICAgIGRlZiBweXRlc3RfeHl6X25vYXJnKCk6Cisg
ICAgICAgICJ4IgorCisgICAgYXBpbW9kLnB5dGVzdF94eXogPSBweXRlc3RfeHl6CisgICAgYXBp
bW9kLnB5dGVzdF94eXpfbm9hcmcgPSBweXRlc3RfeHl6X25vYXJnCisgICAgcmV0dXJuIGFwaWNs
YXNzLCBhcGltb2QKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImhvbGRlciIsIG1ha2Vf
aG9sZGVyKCkpCitkZWYgdGVzdF9ob29rcmVjb3JkZXJfYmFzaWMoaG9sZGVyKToKKyAgICBwbSA9
IFB5dGVzdFBsdWdpbk1hbmFnZXIoKQorICAgIHBtLmFkZGhvb2tzKGhvbGRlcikKKyAgICByZWMg
PSBIb29rUmVjb3JkZXIocG0pCisgICAgcG0uaG9vay5weXRlc3RfeHl6KGFyZz0xMjMpCisgICAg
Y2FsbCA9IHJlYy5wb3BjYWxsKCJweXRlc3RfeHl6IikKKyAgICBhc3NlcnQgY2FsbC5hcmcgPT0g
MTIzCisgICAgYXNzZXJ0IGNhbGwuX25hbWUgPT0gInB5dGVzdF94eXoiCisgICAgcHl0ZXN0LnJh
aXNlcyhweXRlc3QuZmFpbC5FeGNlcHRpb24sICJyZWMucG9wY2FsbCgnYWJjJykiKQorICAgIHBt
Lmhvb2sucHl0ZXN0X3h5el9ub2FyZygpCisgICAgY2FsbCA9IHJlYy5wb3BjYWxsKCJweXRlc3Rf
eHl6X25vYXJnIikKKyAgICBhc3NlcnQgY2FsbC5fbmFtZSA9PSAicHl0ZXN0X3h5el9ub2FyZyIK
KworCitkZWYgdGVzdF9tYWtlcHlmaWxlX3VuaWNvZGUodGVzdGRpcik6CisgICAgZ2xvYmFsIHVu
aWNocgorICAgIHRyeToKKyAgICAgICAgdW5pY2hyKDY1KQorICAgIGV4Y2VwdCBOYW1lRXJyb3I6
CisgICAgICAgIHVuaWNociA9IGNocgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh1bmljaHIoMHhm
ZmZkKSkKKworCitkZWYgdGVzdF9tYWtlcHlmaWxlX3V0ZjgodGVzdGRpcik6CisgICAgIiIiRW5z
dXJlIG1ha2VweWZpbGUgYWNjZXB0cyB1dGYtOCBieXRlcyBhcyBpbnB1dCAoIzI3MzgpIiIiCisg
ICAgdXRmOF9jb250ZW50cyA9IHUiIiIKKyAgICAgICAgZGVmIHNldHVwX2Z1bmN0aW9uKGZ1bmN0
aW9uKToKKyAgICAgICAgICAgIG1peGVkX2VuY29kaW5nID0gdSdTw6NvIFBhdWxvJworICAgICIi
Ii5lbmNvZGUoJ3V0Zi04JykKKyAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKHV0ZjhfY29udGVu
dHMpCisgICAgYXNzZXJ0IHUibWl4ZWRfZW5jb2RpbmcgPSB1J1PDo28gUGF1bG8nIi5lbmNvZGUo
J3V0Zi04JykgaW4gcC5yZWFkKCdyYicpCisKKworZGVmIHRlc3RfaW5saW5lX3J1bl9jbGVhbl9t
b2R1bGVzKHRlc3RkaXIpOgorICAgIHRlc3RfbW9kID0gdGVzdGRpci5tYWtlcHlmaWxlKCJkZWYg
dGVzdF9mb28oKTogYXNzZXJ0IFRydWUiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIuaW5saW5lX3J1
bihzdHIodGVzdF9tb2QpKQorICAgIGFzc2VydCByZXN1bHQucmV0ID09IEVYSVRfT0sKKyAgICAj
IHJld3JpdGUgbW9kdWxlLCBub3cgdGVzdCBzaG91bGQgZmFpbCBpZiBtb2R1bGUgd2FzIHJlLWlt
cG9ydGVkCisgICAgdGVzdF9tb2Qud3JpdGUoImRlZiB0ZXN0X2ZvbygpOiBhc3NlcnQgRmFsc2Ui
KQorICAgIHJlc3VsdDIgPSB0ZXN0ZGlyLmlubGluZV9ydW4oc3RyKHRlc3RfbW9kKSkKKyAgICBh
c3NlcnQgcmVzdWx0Mi5yZXQgPT0gRVhJVF9URVNUU0ZBSUxFRAorCisKK2RlZiB0ZXN0X2Fzc2Vy
dF9vdXRjb21lc19hZnRlcl9weXRlc3RfZXJybyh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoImRlZiB0ZXN0X2ZvbygpOiBhc3NlcnQgVHJ1ZSIpCisKKyAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgnLS11bmV4cGVjdGVkLWFyZ3VtZW50JykKKyAgICB3aXRoIHB5dGVzdC5y
YWlzZXMoVmFsdWVFcnJvciwgbWVzc2FnZT0iUHl0ZXN0IHRlcm1pbmFsIHJlcG9ydCBub3QgZm91
bmQiKToKKyAgICAgICAgcmVzdWx0LmFzc2VydF9vdXRjb21lcyhwYXNzZWQ9MCkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9yZWN3YXJuLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy90ZXN0X3JlY3dhcm4ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzFlNzA0NjBmZTQ2NmVkODk0NmU3MTEw
NTBhY2VkYWMzODE0NjJlNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
dGVzdF9yZWN3YXJuLnB5CkBAIC0wLDAgKzEsMzEwIEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0
IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitpbXBvcnQgd2Fybmlu
Z3MKK2ltcG9ydCByZQoraW1wb3J0IHB5CisKK2ltcG9ydCBweXRlc3QKK2Zyb20gX3B5dGVzdC5y
ZWN3YXJuIGltcG9ydCBXYXJuaW5nc1JlY29yZGVyCisKKworZGVmIHRlc3RfcmVjd2Fybl9mdW5j
dGlvbmFsKHRlc3RkaXIpOgorICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bnNvdXJjZSgi
IiIKKyAgICAgICAgaW1wb3J0IHdhcm5pbmdzCisgICAgICAgIGRlZiB0ZXN0X21ldGhvZChyZWN3
YXJuKToKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oImhlbGxvIikKKyAgICAgICAgICAgIHdh
cm4gPSByZWN3YXJuLnBvcCgpCisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZSh3YXJuLm1l
c3NhZ2UsIFVzZXJXYXJuaW5nKQorICAgICIiIikKKyAgICByZXMgPSByZXByZWMuY291bnRvdXRj
b21lcygpCisgICAgYXNzZXJ0IHR1cGxlKHJlcykgPT0gKDEsIDAsIDApLCByZXMKKworCitjbGFz
cyBUZXN0V2FybmluZ3NSZWNvcmRlckNoZWNrZXIob2JqZWN0KToKKyAgICBkZWYgdGVzdF9yZWNv
cmRpbmcoc2VsZik6CisgICAgICAgIHJlYyA9IFdhcm5pbmdzUmVjb3JkZXIoKQorICAgICAgICB3
aXRoIHJlYzoKKyAgICAgICAgICAgIGFzc2VydCBub3QgcmVjLmxpc3QKKyAgICAgICAgICAgIHB5
LnN0ZC53YXJuaW5ncy53YXJuX2V4cGxpY2l0KCJoZWxsbyIsIFVzZXJXYXJuaW5nLCAieHl6Iiwg
MTMpCisgICAgICAgICAgICBhc3NlcnQgbGVuKHJlYy5saXN0KSA9PSAxCisgICAgICAgICAgICBw
eS5zdGQud2FybmluZ3Mud2FybihEZXByZWNhdGlvbldhcm5pbmcoImhlbGxvIikpCisgICAgICAg
ICAgICBhc3NlcnQgbGVuKHJlYy5saXN0KSA9PSAyCisgICAgICAgICAgICB3YXJuID0gcmVjLnBv
cCgpCisgICAgICAgICAgICBhc3NlcnQgc3RyKHdhcm4ubWVzc2FnZSkgPT0gImhlbGxvIgorICAg
ICAgICAgICAgdmFsdWVzID0gcmVjLmxpc3QKKyAgICAgICAgICAgIHJlYy5jbGVhcigpCisgICAg
ICAgICAgICBhc3NlcnQgbGVuKHJlYy5saXN0KSA9PSAwCisgICAgICAgICAgICBhc3NlcnQgdmFs
dWVzIGlzIHJlYy5saXN0CisgICAgICAgICAgICBweXRlc3QucmFpc2VzKEFzc2VydGlvbkVycm9y
LCAicmVjLnBvcCgpIikKKworICAgIGRlZiB0ZXN0X3R5cGVjaGVja2luZyhzZWxmKToKKyAgICAg
ICAgZnJvbSBfcHl0ZXN0LnJlY3dhcm4gaW1wb3J0IFdhcm5pbmdzQ2hlY2tlcgorICAgICAgICB3
aXRoIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIFdhcm5pbmdzQ2hlY2tl
cig1KQorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAg
IFdhcm5pbmdzQ2hlY2tlcigoJ2hpJywgUnVudGltZVdhcm5pbmcpKQorICAgICAgICB3aXRoIHB5
dGVzdC5yYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIFdhcm5pbmdzQ2hlY2tlcihbRGVw
cmVjYXRpb25XYXJuaW5nLCBSdW50aW1lV2FybmluZ10pCisKKyAgICBkZWYgdGVzdF9pbnZhbGlk
X2VudGVyX2V4aXQoc2VsZik6CisgICAgICAgICMgd3JhcCB0aGlzIHRlc3QgaW4gV2FybmluZ3NS
ZWNvcmRlciB0byBlbnN1cmUgd2FybmluZyBzdGF0ZSBnZXRzIHJlc2V0CisgICAgICAgIHdpdGgg
V2FybmluZ3NSZWNvcmRlcigpOgorICAgICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRp
bWVFcnJvcik6CisgICAgICAgICAgICAgICAgcmVjID0gV2FybmluZ3NSZWNvcmRlcigpCisgICAg
ICAgICAgICAgICAgcmVjLl9fZXhpdF9fKE5vbmUsIE5vbmUsIE5vbmUpICAjIGNhbid0IGV4aXQg
YmVmb3JlIGVudGVyaW5nCisKKyAgICAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhSdW50aW1l
RXJyb3IpOgorICAgICAgICAgICAgICAgIHJlYyA9IFdhcm5pbmdzUmVjb3JkZXIoKQorICAgICAg
ICAgICAgICAgIHdpdGggcmVjOgorICAgICAgICAgICAgICAgICAgICB3aXRoIHJlYzoKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc3MgICMgY2FuJ3QgZW50ZXIgdHdpY2UKKworCitjbGFzcyBU
ZXN0RGVwcmVjYXRlZENhbGwob2JqZWN0KToKKyAgICAiIiJ0ZXN0IHB5dGVzdC5kZXByZWNhdGVk
X2NhbGwoKSIiIgorCisgICAgZGVmIGRlcChzZWxmLCBpLCBqPU5vbmUpOgorICAgICAgICBpZiBp
ID09IDA6CisgICAgICAgICAgICBweS5zdGQud2FybmluZ3Mud2FybigiaXMgZGVwcmVjYXRlZCIs
IERlcHJlY2F0aW9uV2FybmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0
YWNrbGV2ZWw9MSkKKyAgICAgICAgcmV0dXJuIDQyCisKKyAgICBkZWYgZGVwX2V4cGxpY2l0KHNl
bGYsIGkpOgorICAgICAgICBpZiBpID09IDA6CisgICAgICAgICAgICBweS5zdGQud2FybmluZ3Mu
d2Fybl9leHBsaWNpdCgiZGVwX2V4cGxpY2l0IiwgY2F0ZWdvcnk9RGVwcmVjYXRpb25XYXJuaW5n
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWU9Imhl
bGxvIiwgbGluZW5vPTMpCisKKyAgICBkZWYgdGVzdF9kZXByZWNhdGVkX2NhbGxfcmFpc2VzKHNl
bGYpOgorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoQXNzZXJ0aW9uRXJyb3IpIGFzIGV4Y2lu
Zm86CisgICAgICAgICAgICBweXRlc3QuZGVwcmVjYXRlZF9jYWxsKHNlbGYuZGVwLCAzLCA1KQor
ICAgICAgICBhc3NlcnQgJ0RpZCBub3QgcHJvZHVjZScgaW4gc3RyKGV4Y2luZm8pCisKKyAgICBk
ZWYgdGVzdF9kZXByZWNhdGVkX2NhbGwoc2VsZik6CisgICAgICAgIHB5dGVzdC5kZXByZWNhdGVk
X2NhbGwoc2VsZi5kZXAsIDAsIDUpCisKKyAgICBkZWYgdGVzdF9kZXByZWNhdGVkX2NhbGxfcmV0
KHNlbGYpOgorICAgICAgICByZXQgPSBweXRlc3QuZGVwcmVjYXRlZF9jYWxsKHNlbGYuZGVwLCAw
KQorICAgICAgICBhc3NlcnQgcmV0ID09IDQyCisKKyAgICBkZWYgdGVzdF9kZXByZWNhdGVkX2Nh
bGxfcHJlc2VydmVzKHNlbGYpOgorICAgICAgICBvbmNlcmVnaXN0cnkgPSBweS5zdGQud2Fybmlu
Z3Mub25jZXJlZ2lzdHJ5LmNvcHkoKQorICAgICAgICBmaWx0ZXJzID0gcHkuc3RkLndhcm5pbmdz
LmZpbHRlcnNbOl0KKyAgICAgICAgd2FybiA9IHB5LnN0ZC53YXJuaW5ncy53YXJuCisgICAgICAg
IHdhcm5fZXhwbGljaXQgPSBweS5zdGQud2FybmluZ3Mud2Fybl9leHBsaWNpdAorICAgICAgICBz
ZWxmLnRlc3RfZGVwcmVjYXRlZF9jYWxsX3JhaXNlcygpCisgICAgICAgIHNlbGYudGVzdF9kZXBy
ZWNhdGVkX2NhbGwoKQorICAgICAgICBhc3NlcnQgb25jZXJlZ2lzdHJ5ID09IHB5LnN0ZC53YXJu
aW5ncy5vbmNlcmVnaXN0cnkKKyAgICAgICAgYXNzZXJ0IGZpbHRlcnMgPT0gcHkuc3RkLndhcm5p
bmdzLmZpbHRlcnMKKyAgICAgICAgYXNzZXJ0IHdhcm4gaXMgcHkuc3RkLndhcm5pbmdzLndhcm4K
KyAgICAgICAgYXNzZXJ0IHdhcm5fZXhwbGljaXQgaXMgcHkuc3RkLndhcm5pbmdzLndhcm5fZXhw
bGljaXQKKworICAgIGRlZiB0ZXN0X2RlcHJlY2F0ZWRfZXhwbGljaXRfY2FsbF9yYWlzZXMoc2Vs
Zik6CisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhBc3NlcnRpb25FcnJvcik6CisgICAgICAg
ICAgICBweXRlc3QuZGVwcmVjYXRlZF9jYWxsKHNlbGYuZGVwX2V4cGxpY2l0LCAzKQorCisgICAg
ZGVmIHRlc3RfZGVwcmVjYXRlZF9leHBsaWNpdF9jYWxsKHNlbGYpOgorICAgICAgICBweXRlc3Qu
ZGVwcmVjYXRlZF9jYWxsKHNlbGYuZGVwX2V4cGxpY2l0LCAwKQorICAgICAgICBweXRlc3QuZGVw
cmVjYXRlZF9jYWxsKHNlbGYuZGVwX2V4cGxpY2l0LCAwKQorCisgICAgQHB5dGVzdC5tYXJrLnBh
cmFtZXRyaXplKCdtb2RlJywgWydjb250ZXh0X21hbmFnZXInLCAnY2FsbCddKQorICAgIGRlZiB0
ZXN0X2RlcHJlY2F0ZWRfY2FsbF9ub193YXJuaW5nKHNlbGYsIG1vZGUpOgorICAgICAgICAiIiJF
bnN1cmUgZGVwcmVjYXRlZF9jYWxsKCkgcmFpc2VzIHRoZSBleHBlY3RlZCBmYWlsdXJlIHdoZW4g
aXRzIGJsb2NrL2Z1bmN0aW9uIGRvZXMKKyAgICAgICAgbm90IHJhaXNlIGEgZGVwcmVjYXRpb24g
d2FybmluZy4KKyAgICAgICAgIiIiCisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICBwYXNz
CisKKyAgICAgICAgbXNnID0gJ0RpZCBub3QgcHJvZHVjZSBEZXByZWNhdGlvbldhcm5pbmcgb3Ig
UGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZycKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKEFz
c2VydGlvbkVycm9yLCBtYXRjaGVzPW1zZyk6CisgICAgICAgICAgICBpZiBtb2RlID09ICdjYWxs
JzoKKyAgICAgICAgICAgICAgICBweXRlc3QuZGVwcmVjYXRlZF9jYWxsKGYpCisgICAgICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgICAgIHdpdGggcHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbCgpOgor
ICAgICAgICAgICAgICAgICAgICBmKCkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgn
d2FybmluZ190eXBlJywgW1BlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcsIERlcHJlY2F0aW9uV2Fy
bmluZ10pCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdtb2RlJywgWydjb250ZXh0X21h
bmFnZXInLCAnY2FsbCddKQorICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnY2FsbF9mX2Zp
cnN0JywgW1RydWUsIEZhbHNlXSkKKyAgICBAcHl0ZXN0Lm1hcmsuZmlsdGVyd2FybmluZ3MoJ2ln
bm9yZScpCisgICAgZGVmIHRlc3RfZGVwcmVjYXRlZF9jYWxsX21vZGVzKHNlbGYsIHdhcm5pbmdf
dHlwZSwgbW9kZSwgY2FsbF9mX2ZpcnN0KToKKyAgICAgICAgIiIiRW5zdXJlIGRlcHJlY2F0ZWRf
Y2FsbCgpIGNhcHR1cmVzIGEgZGVwcmVjYXRpb24gd2FybmluZyBhcyBleHBlY3RlZCBpbnNpZGUg
aXRzCisgICAgICAgIGJsb2NrL2Z1bmN0aW9uLgorICAgICAgICAiIiIKKyAgICAgICAgZGVmIGYo
KToKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4od2FybmluZ190eXBlKCJoaSIpKQorICAgICAg
ICAgICAgcmV0dXJuIDEwCisKKyAgICAgICAgIyBlbnN1cmUgZGVwcmVjYXRlZF9jYWxsKCkgY2Fu
IGNhcHR1cmUgdGhlIHdhcm5pbmcgZXZlbiBpZiBpdCBoYXMgYWxyZWFkeSBiZWVuIHRyaWdnZXJl
ZAorICAgICAgICBpZiBjYWxsX2ZfZmlyc3Q6CisgICAgICAgICAgICBhc3NlcnQgZigpID09IDEw
CisgICAgICAgIGlmIG1vZGUgPT0gJ2NhbGwnOgorICAgICAgICAgICAgYXNzZXJ0IHB5dGVzdC5k
ZXByZWNhdGVkX2NhbGwoZikgPT0gMTAKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHdpdGgg
cHl0ZXN0LmRlcHJlY2F0ZWRfY2FsbCgpOgorICAgICAgICAgICAgICAgIGFzc2VydCBmKCkgPT0g
MTAKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnbW9kZScsIFsnY29udGV4dF9tYW5h
Z2VyJywgJ2NhbGwnXSkKKyAgICBkZWYgdGVzdF9kZXByZWNhdGVkX2NhbGxfZXhjZXB0aW9uX2lz
X3JhaXNlZChzZWxmLCBtb2RlKToKKyAgICAgICAgIiIiSWYgdGhlIGJsb2NrIG9mIHRoZSBjb2Rl
IGJlaW5nIHRlc3RlZCBieSBkZXByZWNhdGVkX2NhbGwoKSByYWlzZXMgYW4gZXhjZXB0aW9uLAor
ICAgICAgICBpdCBtdXN0IHJhaXNlIHRoZSBleGNlcHRpb24gdW5kaXN0dXJiZWQuCisgICAgICAg
ICIiIgorICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignc29t
ZSBleGNlcHRpb24nKQorCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBt
YXRjaD0nc29tZSBleGNlcHRpb24nKToKKyAgICAgICAgICAgIGlmIG1vZGUgPT0gJ2NhbGwnOgor
ICAgICAgICAgICAgICAgIHB5dGVzdC5kZXByZWNhdGVkX2NhbGwoZikKKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgd2l0aCBweXRlc3QuZGVwcmVjYXRlZF9jYWxsKCk6CisgICAg
ICAgICAgICAgICAgICAgIGYoKQorCisgICAgZGVmIHRlc3RfZGVwcmVjYXRlZF9jYWxsX3NwZWNp
ZmljaXR5KHNlbGYpOgorICAgICAgICBvdGhlcl93YXJuaW5ncyA9IFtXYXJuaW5nLCBVc2VyV2Fy
bmluZywgU3ludGF4V2FybmluZywgUnVudGltZVdhcm5pbmcsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIEZ1dHVyZVdhcm5pbmcsIEltcG9ydFdhcm5pbmcsIFVuaWNvZGVXYXJuaW5nXQorICAg
ICAgICBmb3Igd2FybmluZyBpbiBvdGhlcl93YXJuaW5nczoKKyAgICAgICAgICAgIGRlZiBmKCk6
CisgICAgICAgICAgICAgICAgd2FybmluZ3Mud2Fybih3YXJuaW5nKCJoaSIpKQorCisgICAgICAg
ICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoQXNzZXJ0aW9uRXJyb3IpOgorICAgICAgICAgICAgICAg
IHB5dGVzdC5kZXByZWNhdGVkX2NhbGwoZikKKyAgICAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNl
cyhBc3NlcnRpb25FcnJvcik6CisgICAgICAgICAgICAgICAgd2l0aCBweXRlc3QuZGVwcmVjYXRl
ZF9jYWxsKCk6CisgICAgICAgICAgICAgICAgICAgIGYoKQorCisKK2NsYXNzIFRlc3RXYXJucyhv
YmplY3QpOgorICAgIGRlZiB0ZXN0X3N0cmluZ3Moc2VsZik6CisgICAgICAgICMgZGlmZmVyZW50
IG1lc3NhZ2VzLCBiL2MgUHl0aG9uIHN1cHByZXNzZXMgbXVsdGlwbGUgaWRlbnRpY2FsIHdhcm5p
bmdzCisgICAgICAgIHNvdXJjZTEgPSAid2FybmluZ3Mud2FybigndzEnLCBSdW50aW1lV2Fybmlu
ZykiCisgICAgICAgIHNvdXJjZTIgPSAid2FybmluZ3Mud2FybigndzInLCBSdW50aW1lV2Fybmlu
ZykiCisgICAgICAgIHNvdXJjZTMgPSAid2FybmluZ3Mud2FybigndzMnLCBSdW50aW1lV2Fybmlu
ZykiCisgICAgICAgIHB5dGVzdC53YXJucyhSdW50aW1lV2FybmluZywgc291cmNlMSkKKyAgICAg
ICAgcHl0ZXN0LnJhaXNlcyhweXRlc3QuZmFpbC5FeGNlcHRpb24sCisgICAgICAgICAgICAgICAg
ICAgICAgbGFtYmRhOiBweXRlc3Qud2FybnMoVXNlcldhcm5pbmcsIHNvdXJjZTIpKQorICAgICAg
ICBweXRlc3Qud2FybnMoUnVudGltZVdhcm5pbmcsIHNvdXJjZTMpCisKKyAgICBkZWYgdGVzdF9m
dW5jdGlvbihzZWxmKToKKyAgICAgICAgcHl0ZXN0Lndhcm5zKFN5bnRheFdhcm5pbmcsCisgICAg
ICAgICAgICAgICAgICAgICBsYW1iZGEgbXNnOiB3YXJuaW5ncy53YXJuKG1zZywgU3ludGF4V2Fy
bmluZyksICJzeW50YXgiKQorCisgICAgZGVmIHRlc3Rfd2FybmluZ190dXBsZShzZWxmKToKKyAg
ICAgICAgcHl0ZXN0Lndhcm5zKChSdW50aW1lV2FybmluZywgU3ludGF4V2FybmluZyksCisgICAg
ICAgICAgICAgICAgICAgICBsYW1iZGE6IHdhcm5pbmdzLndhcm4oJ3cxJywgUnVudGltZVdhcm5p
bmcpKQorICAgICAgICBweXRlc3Qud2FybnMoKFJ1bnRpbWVXYXJuaW5nLCBTeW50YXhXYXJuaW5n
KSwKKyAgICAgICAgICAgICAgICAgICAgIGxhbWJkYTogd2FybmluZ3Mud2FybigndzInLCBTeW50
YXhXYXJuaW5nKSkKKyAgICAgICAgcHl0ZXN0LnJhaXNlcyhweXRlc3QuZmFpbC5FeGNlcHRpb24s
CisgICAgICAgICAgICAgICAgICAgICAgbGFtYmRhOiBweXRlc3Qud2FybnMoCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIChSdW50aW1lV2FybmluZywgU3ludGF4V2FybmluZyksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxhbWJkYTogd2FybmluZ3Mud2FybigndzMnLCBVc2VyV2Fybmlu
ZykpKQorCisgICAgZGVmIHRlc3RfYXNfY29udGV4dG1hbmFnZXIoc2VsZik6CisgICAgICAgIHdp
dGggcHl0ZXN0Lndhcm5zKFJ1bnRpbWVXYXJuaW5nKToKKyAgICAgICAgICAgIHdhcm5pbmdzLndh
cm4oInJ1bnRpbWUiLCBSdW50aW1lV2FybmluZykKKworICAgICAgICB3aXRoIHB5dGVzdC53YXJu
cyhVc2VyV2FybmluZyk6CisgICAgICAgICAgICB3YXJuaW5ncy53YXJuKCJ1c2VyIiwgVXNlcldh
cm5pbmcpCisKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKHB5dGVzdC5mYWlsLkV4Y2VwdGlv
bikgYXMgZXhjaW5mbzoKKyAgICAgICAgICAgIHdpdGggcHl0ZXN0Lndhcm5zKFJ1bnRpbWVXYXJu
aW5nKToKKyAgICAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKCJ1c2VyIiwgVXNlcldhcm5pbmcp
CisgICAgICAgIGV4Y2luZm8ubWF0Y2gociJESUQgTk9UIFdBUk4uIE5vIHdhcm5pbmdzIG9mIHR5
cGUgXCguK1J1bnRpbWVXYXJuaW5nLissXCkgd2FzIGVtaXR0ZWQuICIKKyAgICAgICAgICAgICAg
ICAgICAgICByIlRoZSBsaXN0IG9mIGVtaXR0ZWQgd2FybmluZ3MgaXM6IFxbVXNlcldhcm5pbmdc
KCd1c2VyJyxcKVxdLiIpCisKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKHB5dGVzdC5mYWls
LkV4Y2VwdGlvbikgYXMgZXhjaW5mbzoKKyAgICAgICAgICAgIHdpdGggcHl0ZXN0Lndhcm5zKFVz
ZXJXYXJuaW5nKToKKyAgICAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKCJydW50aW1lIiwgUnVu
dGltZVdhcm5pbmcpCisgICAgICAgIGV4Y2luZm8ubWF0Y2gociJESUQgTk9UIFdBUk4uIE5vIHdh
cm5pbmdzIG9mIHR5cGUgXCguK1VzZXJXYXJuaW5nLissXCkgd2FzIGVtaXR0ZWQuICIKKyAgICAg
ICAgICAgICAgICAgICAgICByIlRoZSBsaXN0IG9mIGVtaXR0ZWQgd2FybmluZ3MgaXM6IFxbUnVu
dGltZVdhcm5pbmdcKCdydW50aW1lJyxcKVxdLiIpCisKKyAgICAgICAgd2l0aCBweXRlc3QucmFp
c2VzKHB5dGVzdC5mYWlsLkV4Y2VwdGlvbikgYXMgZXhjaW5mbzoKKyAgICAgICAgICAgIHdpdGgg
cHl0ZXN0Lndhcm5zKFVzZXJXYXJuaW5nKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAg
IGV4Y2luZm8ubWF0Y2gociJESUQgTk9UIFdBUk4uIE5vIHdhcm5pbmdzIG9mIHR5cGUgXCguK1Vz
ZXJXYXJuaW5nLissXCkgd2FzIGVtaXR0ZWQuICIKKyAgICAgICAgICAgICAgICAgICAgICByIlRo
ZSBsaXN0IG9mIGVtaXR0ZWQgd2FybmluZ3MgaXM6IFxbXF0uIikKKworICAgICAgICB3YXJuaW5n
X2NsYXNzZXMgPSAoVXNlcldhcm5pbmcsIEZ1dHVyZVdhcm5pbmcpCisgICAgICAgIHdpdGggcHl0
ZXN0LnJhaXNlcyhweXRlc3QuZmFpbC5FeGNlcHRpb24pIGFzIGV4Y2luZm86CisgICAgICAgICAg
ICB3aXRoIHB5dGVzdC53YXJucyh3YXJuaW5nX2NsYXNzZXMpIGFzIHdhcm5pbmZvOgorICAgICAg
ICAgICAgICAgIHdhcm5pbmdzLndhcm4oInJ1bnRpbWUiLCBSdW50aW1lV2FybmluZykKKyAgICAg
ICAgICAgICAgICB3YXJuaW5ncy53YXJuKCJpbXBvcnQiLCBJbXBvcnRXYXJuaW5nKQorCisgICAg
ICAgIG1lc3NhZ2VfdGVtcGxhdGUgPSAoIkRJRCBOT1QgV0FSTi4gTm8gd2FybmluZ3Mgb2YgdHlw
ZSB7MH0gd2FzIGVtaXR0ZWQuICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGxp
c3Qgb2YgZW1pdHRlZCB3YXJuaW5ncyBpczogezF9LiIpCisgICAgICAgIGV4Y2luZm8ubWF0Y2go
cmUuZXNjYXBlKG1lc3NhZ2VfdGVtcGxhdGUuZm9ybWF0KHdhcm5pbmdfY2xhc3NlcywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VhY2gu
bWVzc2FnZSBmb3IgZWFjaCBpbiB3YXJuaW5mb10pKSkKKworICAgIGRlZiB0ZXN0X3JlY29yZChz
ZWxmKToKKyAgICAgICAgd2l0aCBweXRlc3Qud2FybnMoVXNlcldhcm5pbmcpIGFzIHJlY29yZDoK
KyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oInVzZXIiLCBVc2VyV2FybmluZykKKworICAgICAg
ICBhc3NlcnQgbGVuKHJlY29yZCkgPT0gMQorICAgICAgICBhc3NlcnQgc3RyKHJlY29yZFswXS5t
ZXNzYWdlKSA9PSAidXNlciIKKworICAgIGRlZiB0ZXN0X3JlY29yZF9vbmx5KHNlbGYpOgorICAg
ICAgICB3aXRoIHB5dGVzdC53YXJucyhOb25lKSBhcyByZWNvcmQ6CisgICAgICAgICAgICB3YXJu
aW5ncy53YXJuKCJ1c2VyIiwgVXNlcldhcm5pbmcpCisgICAgICAgICAgICB3YXJuaW5ncy53YXJu
KCJydW50aW1lIiwgUnVudGltZVdhcm5pbmcpCisKKyAgICAgICAgYXNzZXJ0IGxlbihyZWNvcmQp
ID09IDIKKyAgICAgICAgYXNzZXJ0IHN0cihyZWNvcmRbMF0ubWVzc2FnZSkgPT0gInVzZXIiCisg
ICAgICAgIGFzc2VydCBzdHIocmVjb3JkWzFdLm1lc3NhZ2UpID09ICJydW50aW1lIgorCisgICAg
ZGVmIHRlc3RfcmVjb3JkX2J5X3N1YmNsYXNzKHNlbGYpOgorICAgICAgICB3aXRoIHB5dGVzdC53
YXJucyhXYXJuaW5nKSBhcyByZWNvcmQ6CisgICAgICAgICAgICB3YXJuaW5ncy53YXJuKCJ1c2Vy
IiwgVXNlcldhcm5pbmcpCisgICAgICAgICAgICB3YXJuaW5ncy53YXJuKCJydW50aW1lIiwgUnVu
dGltZVdhcm5pbmcpCisKKyAgICAgICAgYXNzZXJ0IGxlbihyZWNvcmQpID09IDIKKyAgICAgICAg
YXNzZXJ0IHN0cihyZWNvcmRbMF0ubWVzc2FnZSkgPT0gInVzZXIiCisgICAgICAgIGFzc2VydCBz
dHIocmVjb3JkWzFdLm1lc3NhZ2UpID09ICJydW50aW1lIgorCisgICAgICAgIGNsYXNzIE15VXNl
cldhcm5pbmcoVXNlcldhcm5pbmcpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIGNsYXNz
IE15UnVudGltZVdhcm5pbmcoUnVudGltZVdhcm5pbmcpOgorICAgICAgICAgICAgcGFzcworCisg
ICAgICAgIHdpdGggcHl0ZXN0Lndhcm5zKChVc2VyV2FybmluZywgUnVudGltZVdhcm5pbmcpKSBh
cyByZWNvcmQ6CisgICAgICAgICAgICB3YXJuaW5ncy53YXJuKCJ1c2VyIiwgTXlVc2VyV2Fybmlu
ZykKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oInJ1bnRpbWUiLCBNeVJ1bnRpbWVXYXJuaW5n
KQorCisgICAgICAgIGFzc2VydCBsZW4ocmVjb3JkKSA9PSAyCisgICAgICAgIGFzc2VydCBzdHIo
cmVjb3JkWzBdLm1lc3NhZ2UpID09ICJ1c2VyIgorICAgICAgICBhc3NlcnQgc3RyKHJlY29yZFsx
XS5tZXNzYWdlKSA9PSAicnVudGltZSIKKworICAgIGRlZiB0ZXN0X2RvdWJsZV90ZXN0KHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICAiIiJJZiBhIHRlc3QgaXMgcnVuIGFnYWluLCB0aGUgd2Fybmlu
ZyBzaG91bGQgc3RpbGwgYmUgcmFpc2VkIiIiCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgn
JycKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGltcG9ydCB3YXJuaW5n
cworCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ3J1bicsIFsxLCAyXSkK
KyAgICAgICAgICAgIGRlZiB0ZXN0KHJ1bik6CisgICAgICAgICAgICAgICAgd2l0aCBweXRlc3Qu
d2FybnMoUnVudGltZVdhcm5pbmcpOgorICAgICAgICAgICAgICAgICAgICB3YXJuaW5ncy53YXJu
KCJydW50aW1lIiwgUnVudGltZVdhcm5pbmcpCisgICAgICAgICcnJykKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGlu
ZXMoWycqMiBwYXNzZWQgaW4qJ10pCisKKyAgICBkZWYgdGVzdF9tYXRjaF9yZWdleChzZWxmKToK
KyAgICAgICAgd2l0aCBweXRlc3Qud2FybnMoVXNlcldhcm5pbmcsIG1hdGNoPXInbXVzdCBiZSBc
ZCskJyk6CisgICAgICAgICAgICB3YXJuaW5ncy53YXJuKCJ2YWx1ZSBtdXN0IGJlIDQyIiwgVXNl
cldhcm5pbmcpCisKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKHB5dGVzdC5mYWlsLkV4Y2Vw
dGlvbik6CisgICAgICAgICAgICB3aXRoIHB5dGVzdC53YXJucyhVc2VyV2FybmluZywgbWF0Y2g9
cidtdXN0IGJlIFxkKyQnKToKKyAgICAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKCJ0aGlzIGlz
IG5vdCBoZXJlIiwgVXNlcldhcm5pbmcpCisKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKHB5
dGVzdC5mYWlsLkV4Y2VwdGlvbik6CisgICAgICAgICAgICB3aXRoIHB5dGVzdC53YXJucyhGdXR1
cmVXYXJuaW5nLCBtYXRjaD1yJ211c3QgYmUgXGQrJCcpOgorICAgICAgICAgICAgICAgIHdhcm5p
bmdzLndhcm4oInZhbHVlIG11c3QgYmUgNDIiLCBVc2VyV2FybmluZykKKworICAgIGRlZiB0ZXN0
X29uZV9mcm9tX211bHRpcGxlX3dhcm5zKHNlbGYpOgorICAgICAgICB3aXRoIHB5dGVzdC53YXJu
cyhVc2VyV2FybmluZywgbWF0Y2g9cidhYWEnKToKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4o
ImNjY2NjY2NjY2MiLCBVc2VyV2FybmluZykKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oImJi
YmJiYmJiYmIiLCBVc2VyV2FybmluZykKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oImFhYWFh
YWFhYWEiLCBVc2VyV2FybmluZykKKworICAgIGRlZiB0ZXN0X25vbmVfb2ZfbXVsdGlwbGVfd2Fy
bnMoc2VsZik6CisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhweXRlc3QuZmFpbC5FeGNlcHRp
b24pOgorICAgICAgICAgICAgd2l0aCBweXRlc3Qud2FybnMoVXNlcldhcm5pbmcsIG1hdGNoPXIn
YWFhJyk6CisgICAgICAgICAgICAgICAgd2FybmluZ3Mud2FybigiYmJiYmJiYmJiYiIsIFVzZXJX
YXJuaW5nKQorICAgICAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oImNjY2NjY2NjY2MiLCBVc2Vy
V2FybmluZykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9yZXN1bHRsb2cu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcmVzdWx0bG9nLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3
ZGQyNjg3Y2RmZGE5ZWM2Y2UwMzVjN2IyNzVkMTc3YjY3NmNiNDIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcmVzdWx0bG9nLnB5CkBAIC0wLDAgKzEsMjI4IEBA
Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50
X2Z1bmN0aW9uCitpbXBvcnQgb3MKKworaW1wb3J0IF9weXRlc3QuX2NvZGUKK2ltcG9ydCBweQor
aW1wb3J0IHB5dGVzdAorZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IE5vZGUsIEl0ZW0sIEZTQ29s
bGVjdG9yCitmcm9tIF9weXRlc3QucmVzdWx0bG9nIGltcG9ydCBnZW5lcmljX3BhdGgsIFJlc3Vs
dExvZywgXAorICAgIHB5dGVzdF9jb25maWd1cmUsIHB5dGVzdF91bmNvbmZpZ3VyZQorCisKK2Rl
ZiB0ZXN0X2dlbmVyaWNfcGF0aCh0ZXN0ZGlyKToKKyAgICBmcm9tIF9weXRlc3QubWFpbiBpbXBv
cnQgU2Vzc2lvbgorICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWcoKQorICAgIHNlc3Np
b24gPSBTZXNzaW9uKGNvbmZpZykKKyAgICBwMSA9IE5vZGUoJ2EnLCBjb25maWc9Y29uZmlnLCBz
ZXNzaW9uPXNlc3Npb24pCisgICAgIyBhc3NlcnQgcDEuZnNwYXRoIGlzIE5vbmUKKyAgICBwMiA9
IE5vZGUoJ0InLCBwYXJlbnQ9cDEpCisgICAgcDMgPSBOb2RlKCcoKScsIHBhcmVudD1wMikKKyAg
ICBpdGVtID0gSXRlbSgnYycsIHBhcmVudD1wMykKKworICAgIHJlcyA9IGdlbmVyaWNfcGF0aChp
dGVtKQorICAgIGFzc2VydCByZXMgPT0gJ2EuQigpLmMnCisKKyAgICBwMCA9IEZTQ29sbGVjdG9y
KCdwcm9qL3Rlc3QnLCBjb25maWc9Y29uZmlnLCBzZXNzaW9uPXNlc3Npb24pCisgICAgcDEgPSBG
U0NvbGxlY3RvcigncHJvai90ZXN0L2EnLCBwYXJlbnQ9cDApCisgICAgcDIgPSBOb2RlKCdCJywg
cGFyZW50PXAxKQorICAgIHAzID0gTm9kZSgnKCknLCBwYXJlbnQ9cDIpCisgICAgcDQgPSBOb2Rl
KCdjJywgcGFyZW50PXAzKQorICAgIGl0ZW0gPSBJdGVtKCdbMV0nLCBwYXJlbnQ9cDQpCisKKyAg
ICByZXMgPSBnZW5lcmljX3BhdGgoaXRlbSkKKyAgICBhc3NlcnQgcmVzID09ICd0ZXN0L2E6Qigp
LmNbMV0nCisKKworZGVmIHRlc3Rfd3JpdGVfbG9nX2VudHJ5KCk6CisgICAgcmVzbG9nID0gUmVz
dWx0TG9nKE5vbmUsIE5vbmUpCisgICAgcmVzbG9nLmxvZ2ZpbGUgPSBweS5pby5UZXh0SU8oKQor
ICAgIHJlc2xvZy53cml0ZV9sb2dfZW50cnkoJ25hbWUnLCAnLicsICcnKQorICAgIGVudHJ5ID0g
cmVzbG9nLmxvZ2ZpbGUuZ2V0dmFsdWUoKQorICAgIGFzc2VydCBlbnRyeVstMV0gPT0gJ1xuJwor
ICAgIGVudHJ5X2xpbmVzID0gZW50cnkuc3BsaXRsaW5lcygpCisgICAgYXNzZXJ0IGxlbihlbnRy
eV9saW5lcykgPT0gMQorICAgIGFzc2VydCBlbnRyeV9saW5lc1swXSA9PSAnLiBuYW1lJworCisg
ICAgcmVzbG9nLmxvZ2ZpbGUgPSBweS5pby5UZXh0SU8oKQorICAgIHJlc2xvZy53cml0ZV9sb2df
ZW50cnkoJ25hbWUnLCAncycsICdTa2lwcGVkJykKKyAgICBlbnRyeSA9IHJlc2xvZy5sb2dmaWxl
LmdldHZhbHVlKCkKKyAgICBhc3NlcnQgZW50cnlbLTFdID09ICdcbicKKyAgICBlbnRyeV9saW5l
cyA9IGVudHJ5LnNwbGl0bGluZXMoKQorICAgIGFzc2VydCBsZW4oZW50cnlfbGluZXMpID09IDIK
KyAgICBhc3NlcnQgZW50cnlfbGluZXNbMF0gPT0gJ3MgbmFtZScKKyAgICBhc3NlcnQgZW50cnlf
bGluZXNbMV0gPT0gJyBTa2lwcGVkJworCisgICAgcmVzbG9nLmxvZ2ZpbGUgPSBweS5pby5UZXh0
SU8oKQorICAgIHJlc2xvZy53cml0ZV9sb2dfZW50cnkoJ25hbWUnLCAncycsICdTa2lwcGVkXG4n
KQorICAgIGVudHJ5ID0gcmVzbG9nLmxvZ2ZpbGUuZ2V0dmFsdWUoKQorICAgIGFzc2VydCBlbnRy
eVstMV0gPT0gJ1xuJworICAgIGVudHJ5X2xpbmVzID0gZW50cnkuc3BsaXRsaW5lcygpCisgICAg
YXNzZXJ0IGxlbihlbnRyeV9saW5lcykgPT0gMgorICAgIGFzc2VydCBlbnRyeV9saW5lc1swXSA9
PSAncyBuYW1lJworICAgIGFzc2VydCBlbnRyeV9saW5lc1sxXSA9PSAnIFNraXBwZWQnCisKKyAg
ICByZXNsb2cubG9nZmlsZSA9IHB5LmlvLlRleHRJTygpCisgICAgbG9uZ3JlcHIgPSAnIHRiMVxu
IHRiIDJcbkUgdGIzXG5Tb21lIEVycm9yJworICAgIHJlc2xvZy53cml0ZV9sb2dfZW50cnkoJ25h
bWUnLCAnRicsIGxvbmdyZXByKQorICAgIGVudHJ5ID0gcmVzbG9nLmxvZ2ZpbGUuZ2V0dmFsdWUo
KQorICAgIGFzc2VydCBlbnRyeVstMV0gPT0gJ1xuJworICAgIGVudHJ5X2xpbmVzID0gZW50cnku
c3BsaXRsaW5lcygpCisgICAgYXNzZXJ0IGxlbihlbnRyeV9saW5lcykgPT0gNQorICAgIGFzc2Vy
dCBlbnRyeV9saW5lc1swXSA9PSAnRiBuYW1lJworICAgIGFzc2VydCBlbnRyeV9saW5lc1sxOl0g
PT0gWycgJyArIGxpbmUgZm9yIGxpbmUgaW4gbG9uZ3JlcHIuc3BsaXRsaW5lcygpXQorCisKK2Ns
YXNzIFRlc3RXaXRoRnVuY3Rpb25JbnRlZ3JhdGlvbihvYmplY3QpOgorICAgICMgWFhYIChocGsp
IGkgdGhpbmsgdGhhdCB0aGUgcmVzdWx0bG9nIHBsdWdpbiBzaG91bGQKKyAgICAjIHByb3ZpZGUg
YSBQYXJzZXIgb2JqZWN0IHNvIHRoYXQgb25lIGNhbiByZW1haW4KKyAgICAjIGlnbm9yYW50IHJl
Z2FyZGluZyBmb3JtYXR0aW5nIGRldGFpbHMuCisgICAgZGVmIGdldHJlc3VsdGxvZyhzZWxmLCB0
ZXN0ZGlyLCBhcmcpOgorICAgICAgICByZXN1bHRsb2cgPSB0ZXN0ZGlyLnRtcGRpci5qb2luKCJy
ZXN1bHRsb2ciKQorICAgICAgICB0ZXN0ZGlyLnBsdWdpbnMuYXBwZW5kKCJyZXN1bHRsb2ciKQor
ICAgICAgICBhcmdzID0gWyItLXJlc3VsdGxvZz0lcyIgJSByZXN1bHRsb2ddICsgW2FyZ10KKyAg
ICAgICAgdGVzdGRpci5ydW5weXRlc3QoKmFyZ3MpCisgICAgICAgIHJldHVybiBbeCBmb3IgeCBp
biByZXN1bHRsb2cucmVhZGxpbmVzKGNyPTApIGlmIHhdCisKKyAgICBkZWYgdGVzdF9jb2xsZWN0
aW9uX3JlcG9ydChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgb2sgPSB0ZXN0ZGlyLm1ha2VweWZp
bGUodGVzdF9jb2xsZWN0aW9uX29rPSIiKQorICAgICAgICBmYWlsID0gdGVzdGRpci5tYWtlcHlm
aWxlKHRlc3RfY29sbGVjdGlvbl9mYWlsPSJYWFgiKQorICAgICAgICBsaW5lcyA9IHNlbGYuZ2V0
cmVzdWx0bG9nKHRlc3RkaXIsIG9rKQorICAgICAgICBhc3NlcnQgbm90IGxpbmVzCisKKyAgICAg
ICAgbGluZXMgPSBzZWxmLmdldHJlc3VsdGxvZyh0ZXN0ZGlyLCBmYWlsKQorICAgICAgICBhc3Nl
cnQgbGluZXMKKyAgICAgICAgYXNzZXJ0IGxpbmVzWzBdLnN0YXJ0c3dpdGgoIkYgIikKKyAgICAg
ICAgYXNzZXJ0IGxpbmVzWzBdLmVuZHN3aXRoKCJ0ZXN0X2NvbGxlY3Rpb25fZmFpbC5weSIpLCBs
aW5lc1swXQorICAgICAgICBmb3IgeCBpbiBsaW5lc1sxOl06CisgICAgICAgICAgICBhc3NlcnQg
eC5zdGFydHN3aXRoKCIgIikKKyAgICAgICAgYXNzZXJ0ICJYWFgiIGluICIiLmpvaW4obGluZXNb
MTpdKQorCisgICAgZGVmIHRlc3RfbG9nX3Rlc3Rfb3V0Y29tZXMoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIG1vZCA9IHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0X21vZD0iIiIKKyAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGRlZiB0ZXN0X3Bhc3MoKTogcGFzcworICAgICAg
ICAgICAgZGVmIHRlc3Rfc2tpcCgpOiBweXRlc3Quc2tpcCgiaGVsbG8iKQorICAgICAgICAgICAg
ZGVmIHRlc3RfZmFpbCgpOiByYWlzZSBWYWx1ZUVycm9yKCJGQUlMIikKKworICAgICAgICAgICAg
QHB5dGVzdC5tYXJrLnhmYWlsCisgICAgICAgICAgICBkZWYgdGVzdF94ZmFpbCgpOiByYWlzZSBW
YWx1ZUVycm9yKCJYRkFJTCIpCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwKKyAgICAg
ICAgICAgIGRlZiB0ZXN0X3hwYXNzKCk6IHBhc3MKKworICAgICAgICAiIiIpCisgICAgICAgIGxp
bmVzID0gc2VsZi5nZXRyZXN1bHRsb2codGVzdGRpciwgbW9kKQorICAgICAgICBhc3NlcnQgbGVu
KGxpbmVzKSA+PSAzCisgICAgICAgIGFzc2VydCBsaW5lc1swXS5zdGFydHN3aXRoKCIuICIpCisg
ICAgICAgIGFzc2VydCBsaW5lc1swXS5lbmRzd2l0aCgidGVzdF9wYXNzIikKKyAgICAgICAgYXNz
ZXJ0IGxpbmVzWzFdLnN0YXJ0c3dpdGgoInMgIiksIGxpbmVzWzFdCisgICAgICAgIGFzc2VydCBs
aW5lc1sxXS5lbmRzd2l0aCgidGVzdF9za2lwIikKKyAgICAgICAgYXNzZXJ0IGxpbmVzWzJdLmZp
bmQoImhlbGxvIikgIT0gLTEKKworICAgICAgICBhc3NlcnQgbGluZXNbM10uc3RhcnRzd2l0aCgi
RiAiKQorICAgICAgICBhc3NlcnQgbGluZXNbM10uZW5kc3dpdGgoInRlc3RfZmFpbCIpCisgICAg
ICAgIHRiID0gIiIuam9pbihsaW5lc1s0OjhdKQorICAgICAgICBhc3NlcnQgdGIuZmluZCgncmFp
c2UgVmFsdWVFcnJvcigiRkFJTCIpJykgIT0gLTEKKworICAgICAgICBhc3NlcnQgbGluZXNbOF0u
c3RhcnRzd2l0aCgneCAnKQorICAgICAgICB0YiA9ICIiLmpvaW4obGluZXNbODoxNF0pCisgICAg
ICAgIGFzc2VydCB0Yi5maW5kKCdyYWlzZSBWYWx1ZUVycm9yKCJYRkFJTCIpJykgIT0gLTEKKwor
ICAgICAgICBhc3NlcnQgbGluZXNbMTRdLnN0YXJ0c3dpdGgoJ1ggJykKKyAgICAgICAgYXNzZXJ0
IGxlbihsaW5lcykgPT0gMTUKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgic3R5bGUi
LCAoIm5hdGl2ZSIsICJsb25nIiwgInNob3J0IikpCisgICAgZGVmIHRlc3RfaW50ZXJuYWxfZXhj
ZXB0aW9uKHNlbGYsIHN0eWxlKToKKyAgICAgICAgIyB0aGV5IGFyZSBwcm9kdWNlZCBmb3IgZXhh
bXBsZSBieSBhIHRlYXJkb3duIGZhaWxpbmcKKyAgICAgICAgIyBhdCB0aGUgZW5kIG9mIHRoZSBy
dW4gb3IgYSBmYWlsaW5nIGhvb2sgaW52b2NhdGlvbgorICAgICAgICB0cnk6CisgICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAg
ICAgZXhjaW5mbyA9IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mbygpCisgICAgICAgIHJlc2xv
ZyA9IFJlc3VsdExvZyhOb25lLCBweS5pby5UZXh0SU8oKSkKKyAgICAgICAgcmVzbG9nLnB5dGVz
dF9pbnRlcm5hbGVycm9yKGV4Y2luZm8uZ2V0cmVwcihzdHlsZT1zdHlsZSkpCisgICAgICAgIGVu
dHJ5ID0gcmVzbG9nLmxvZ2ZpbGUuZ2V0dmFsdWUoKQorICAgICAgICBlbnRyeV9saW5lcyA9IGVu
dHJ5LnNwbGl0bGluZXMoKQorCisgICAgICAgIGFzc2VydCBlbnRyeV9saW5lc1swXS5zdGFydHN3
aXRoKCchICcpCisgICAgICAgIGlmIHN0eWxlICE9ICJuYXRpdmUiOgorICAgICAgICAgICAgYXNz
ZXJ0IG9zLnBhdGguYmFzZW5hbWUoX19maWxlX18pWzotOV0gaW4gZW50cnlfbGluZXNbMF0gICMg
LnB5Yy9jbGFzcworICAgICAgICBhc3NlcnQgZW50cnlfbGluZXNbLTFdWzBdID09ICcgJworICAg
ICAgICBhc3NlcnQgJ1ZhbHVlRXJyb3InIGluIGVudHJ5CisKKworZGVmIHRlc3RfZ2VuZXJpYyh0
ZXN0ZGlyLCBMaW5lTWF0Y2hlcik6CisgICAgdGVzdGRpci5wbHVnaW5zLmFwcGVuZCgicmVzdWx0
bG9nIikKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QK
KyAgICAgICAgZGVmIHRlc3RfcGFzcygpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBkZWYg
dGVzdF9mYWlsKCk6CisgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICBkZWYgdGVzdF9za2lw
KCk6CisgICAgICAgICAgICBweXRlc3Quc2tpcCgiIikKKyAgICAgICAgQHB5dGVzdC5tYXJrLnhm
YWlsCisgICAgICAgIGRlZiB0ZXN0X3hmYWlsKCk6CisgICAgICAgICAgICBhc3NlcnQgMAorICAg
ICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwocnVuPUZhbHNlKQorICAgICAgICBkZWYgdGVzdF94ZmFp
bF9ub3J1bigpOgorICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAiIiIpCisgICAgdGVzdGRpci5y
dW5weXRlc3QoIi0tcmVzdWx0bG9nPXJlc3VsdC5sb2ciKQorICAgIGxpbmVzID0gdGVzdGRpci50
bXBkaXIuam9pbigicmVzdWx0LmxvZyIpLnJlYWRsaW5lcyhjcj0wKQorICAgIExpbmVNYXRjaGVy
KGxpbmVzKS5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIi4gKjp0ZXN0X3Bhc3MiLAorICAgICAg
ICAiRiAqOnRlc3RfZmFpbCIsCisgICAgICAgICJzICo6dGVzdF9za2lwIiwKKyAgICAgICAgIngg
Kjp0ZXN0X3hmYWlsIiwKKyAgICAgICAgInggKjp0ZXN0X3hmYWlsX25vcnVuIiwKKyAgICBdKQor
CisKK2RlZiB0ZXN0X21ha2VkaXJfZm9yX3Jlc3VsdGxvZyh0ZXN0ZGlyLCBMaW5lTWF0Y2hlcik6
CisgICAgIiIiLS1yZXN1bHRsb2cgc2hvdWxkIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGRpcmVjdG9y
aWVzIGZvciB0aGUgbG9nIGZpbGUiIiIKKyAgICB0ZXN0ZGlyLnBsdWdpbnMuYXBwZW5kKCJyZXN1
bHRsb2ciKQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IHB5dGVz
dAorICAgICAgICBkZWYgdGVzdF9wYXNzKCk6CisgICAgICAgICAgICBwYXNzCisgICAgIiIiKQor
ICAgIHRlc3RkaXIucnVucHl0ZXN0KCItLXJlc3VsdGxvZz1wYXRoL3RvL3Jlc3VsdC5sb2ciKQor
ICAgIGxpbmVzID0gdGVzdGRpci50bXBkaXIuam9pbigicGF0aC90by9yZXN1bHQubG9nIikucmVh
ZGxpbmVzKGNyPTApCisgICAgTGluZU1hdGNoZXIobGluZXMpLmZubWF0Y2hfbGluZXMoWworICAg
ICAgICAiLiAqOnRlc3RfcGFzcyIsCisgICAgXSkKKworCitkZWYgdGVzdF9ub19yZXN1bHRsb2df
b25fc2xhdmVzKHRlc3RkaXIpOgorICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWcoIi1w
IiwgInJlc3VsdGxvZyIsICItLXJlc3VsdGxvZz1yZXN1bHRsb2ciKQorCisgICAgYXNzZXJ0IG5v
dCBoYXNhdHRyKGNvbmZpZywgJ19yZXN1bHRsb2cnKQorICAgIHB5dGVzdF9jb25maWd1cmUoY29u
ZmlnKQorICAgIGFzc2VydCBoYXNhdHRyKGNvbmZpZywgJ19yZXN1bHRsb2cnKQorICAgIHB5dGVz
dF91bmNvbmZpZ3VyZShjb25maWcpCisgICAgYXNzZXJ0IG5vdCBoYXNhdHRyKGNvbmZpZywgJ19y
ZXN1bHRsb2cnKQorCisgICAgY29uZmlnLnNsYXZlaW5wdXQgPSB7fQorICAgIHB5dGVzdF9jb25m
aWd1cmUoY29uZmlnKQorICAgIGFzc2VydCBub3QgaGFzYXR0cihjb25maWcsICdfcmVzdWx0bG9n
JykKKyAgICBweXRlc3RfdW5jb25maWd1cmUoY29uZmlnKQorICAgIGFzc2VydCBub3QgaGFzYXR0
cihjb25maWcsICdfcmVzdWx0bG9nJykKKworCitkZWYgdGVzdF9mYWlsdXJlX2lzc3VlMzgwKHRl
c3RkaXIpOgorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICBpbXBvcnQgcHl0
ZXN0CisgICAgICAgIGNsYXNzIE15Q29sbGVjdG9yKHB5dGVzdC5GaWxlKToKKyAgICAgICAgICAg
IGRlZiBjb2xsZWN0KHNlbGYpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoKQor
ICAgICAgICAgICAgZGVmIHJlcHJfZmFpbHVyZShzZWxmLCBleGNpbmZvKToKKyAgICAgICAgICAg
ICAgICByZXR1cm4gInNvbWVzdHJpbmciCisgICAgICAgIGRlZiBweXRlc3RfY29sbGVjdF9maWxl
KHBhdGgsIHBhcmVudCk6CisgICAgICAgICAgICByZXR1cm4gTXlDb2xsZWN0b3IocGFyZW50PXBh
cmVudCwgZnNwYXRoPXBhdGgpCisgICAgIiIiKQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIK
KyAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAgcGFzcworICAgICIiIikKKyAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1yZXN1bHRsb2c9bG9nIikKKyAgICBhc3Nl
cnQgcmVzdWx0LnJldCA9PSAyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rf
cnVubmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3J1bm5lci5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jOGUyYTY0NjNhMDIyM2Y5MmYxYTVjNTRmOGFkZjZjNjE0NDIwNWMwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3J1bm5lci5weQpAQCAtMCwwICsxLDgxMyBA
QAorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1
dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KKworaW1wb3J0IF9weXRlc3QuX2Nv
ZGUKK2ltcG9ydCBvcworaW1wb3J0IHB5CitpbXBvcnQgcHl0ZXN0CitpbXBvcnQgc3lzCitmcm9t
IF9weXRlc3QgaW1wb3J0IHJ1bm5lciwgbWFpbiwgb3V0Y29tZXMKKworCitjbGFzcyBUZXN0U2V0
dXBTdGF0ZShvYmplY3QpOgorICAgIGRlZiB0ZXN0X3NldHVwKHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICBzcyA9IHJ1bm5lci5TZXR1cFN0YXRlKCkKKyAgICAgICAgaXRlbSA9IHRlc3RkaXIuZ2V0
aXRlbSgiZGVmIHRlc3RfZnVuYygpOiBwYXNzIikKKyAgICAgICAgdmFsdWVzID0gWzFdCisgICAg
ICAgIHNzLnByZXBhcmUoaXRlbSkKKyAgICAgICAgc3MuYWRkZmluYWxpemVyKHZhbHVlcy5wb3As
IGNvbGl0ZW09aXRlbSkKKyAgICAgICAgYXNzZXJ0IHZhbHVlcworICAgICAgICBzcy5fcG9wX2Fu
ZF90ZWFyZG93bigpCisgICAgICAgIGFzc2VydCBub3QgdmFsdWVzCisKKyAgICBkZWYgdGVzdF90
ZWFyZG93bl9leGFjdF9zdGFja19lbXB0eShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgaXRlbSA9
IHRlc3RkaXIuZ2V0aXRlbSgiZGVmIHRlc3RfZnVuYygpOiBwYXNzIikKKyAgICAgICAgc3MgPSBy
dW5uZXIuU2V0dXBTdGF0ZSgpCisgICAgICAgIHNzLnRlYXJkb3duX2V4YWN0KGl0ZW0sIE5vbmUp
CisgICAgICAgIHNzLnRlYXJkb3duX2V4YWN0KGl0ZW0sIE5vbmUpCisgICAgICAgIHNzLnRlYXJk
b3duX2V4YWN0KGl0ZW0sIE5vbmUpCisKKyAgICBkZWYgdGVzdF9zZXR1cF9mYWlsc19hbmRfZmFp
bHVyZV9pc19jYWNoZWQoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIGl0ZW0gPSB0ZXN0ZGlyLmdl
dGl0ZW0oIiIiCisgICAgICAgICAgICBkZWYgc2V0dXBfbW9kdWxlKG1vZCk6CisgICAgICAgICAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcig0MikKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKTog
cGFzcworICAgICAgICAiIiIpICAjIG5vcWEKKyAgICAgICAgc3MgPSBydW5uZXIuU2V0dXBTdGF0
ZSgpCisgICAgICAgIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvciwgbGFtYmRhOiBzcy5wcmVwYXJl
KGl0ZW0pKQorICAgICAgICBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsIGxhbWJkYTogc3MucHJl
cGFyZShpdGVtKSkKKworICAgIGRlZiB0ZXN0X3RlYXJkb3duX211bHRpcGxlX29uZV9mYWlscyhz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgciA9IFtdCisKKyAgICAgICAgZGVmIGZpbjEoKToKKyAg
ICAgICAgICAgIHIuYXBwZW5kKCdmaW4xJykKKworICAgICAgICBkZWYgZmluMigpOgorICAgICAg
ICAgICAgcmFpc2UgRXhjZXB0aW9uKCdvb3BzJykKKworICAgICAgICBkZWYgZmluMygpOgorICAg
ICAgICAgICAgci5hcHBlbmQoJ2ZpbjMnKQorCisgICAgICAgIGl0ZW0gPSB0ZXN0ZGlyLmdldGl0
ZW0oImRlZiB0ZXN0X2Z1bmMoKTogcGFzcyIpCisgICAgICAgIHNzID0gcnVubmVyLlNldHVwU3Rh
dGUoKQorICAgICAgICBzcy5hZGRmaW5hbGl6ZXIoZmluMSwgaXRlbSkKKyAgICAgICAgc3MuYWRk
ZmluYWxpemVyKGZpbjIsIGl0ZW0pCisgICAgICAgIHNzLmFkZGZpbmFsaXplcihmaW4zLCBpdGVt
KQorICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoRXhjZXB0aW9uKSBhcyBlcnI6CisgICAgICAg
ICAgICBzcy5fY2FsbGZpbmFsaXplcnMoaXRlbSkKKyAgICAgICAgYXNzZXJ0IGVyci52YWx1ZS5h
cmdzID09ICgnb29wcycsKQorICAgICAgICBhc3NlcnQgciA9PSBbJ2ZpbjMnLCAnZmluMSddCisK
KyAgICBkZWYgdGVzdF90ZWFyZG93bl9tdWx0aXBsZV9mYWlsKHNlbGYsIHRlc3RkaXIpOgorICAg
ICAgICAjIEVuc3VyZSB0aGUgZmlyc3QgZXhjZXB0aW9uIGlzIHRoZSBvbmUgd2hpY2ggaXMgcmUt
cmFpc2VkLgorICAgICAgICAjIElkZWFsbHkgYm90aCB3b3VsZCBiZSByZXBvcnRlZCBob3dldmVy
LgorICAgICAgICBkZWYgZmluMSgpOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdvb3Bz
MScpCisKKyAgICAgICAgZGVmIGZpbjIoKToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbign
b29wczInKQorCisgICAgICAgIGl0ZW0gPSB0ZXN0ZGlyLmdldGl0ZW0oImRlZiB0ZXN0X2Z1bmMo
KTogcGFzcyIpCisgICAgICAgIHNzID0gcnVubmVyLlNldHVwU3RhdGUoKQorICAgICAgICBzcy5h
ZGRmaW5hbGl6ZXIoZmluMSwgaXRlbSkKKyAgICAgICAgc3MuYWRkZmluYWxpemVyKGZpbjIsIGl0
ZW0pCisgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhFeGNlcHRpb24pIGFzIGVycjoKKyAgICAg
ICAgICAgIHNzLl9jYWxsZmluYWxpemVycyhpdGVtKQorICAgICAgICBhc3NlcnQgZXJyLnZhbHVl
LmFyZ3MgPT0gKCdvb3BzMicsKQorCisKK2NsYXNzIEJhc2VGdW5jdGlvbmFsVGVzdHMob2JqZWN0
KToKKyAgICBkZWYgdGVzdF9wYXNzZnVuY3Rpb24oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHJl
cG9ydHMgPSB0ZXN0ZGlyLnJ1bml0ZW0oIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6
CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlcCA9IHJlcG9y
dHNbMV0KKyAgICAgICAgYXNzZXJ0IHJlcC5wYXNzZWQKKyAgICAgICAgYXNzZXJ0IG5vdCByZXAu
ZmFpbGVkCisgICAgICAgIGFzc2VydCByZXAub3V0Y29tZSA9PSAicGFzc2VkIgorICAgICAgICBh
c3NlcnQgbm90IHJlcC5sb25ncmVwcgorCisgICAgZGVmIHRlc3RfZmFpbGZ1bmN0aW9uKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICByZXBvcnRzID0gdGVzdGRpci5ydW5pdGVtKCIiIgorICAgICAg
ICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAg
ICIiIikKKyAgICAgICAgcmVwID0gcmVwb3J0c1sxXQorICAgICAgICBhc3NlcnQgbm90IHJlcC5w
YXNzZWQKKyAgICAgICAgYXNzZXJ0IG5vdCByZXAuc2tpcHBlZAorICAgICAgICBhc3NlcnQgcmVw
LmZhaWxlZAorICAgICAgICBhc3NlcnQgcmVwLndoZW4gPT0gImNhbGwiCisgICAgICAgIGFzc2Vy
dCByZXAub3V0Y29tZSA9PSAiZmFpbGVkIgorICAgICAgICAjIGFzc2VydCBpc2luc3RhbmNlKHJl
cC5sb25ncmVwciwgUmVwckV4Y2VwdGlvbkluZm8pCisKKyAgICBkZWYgdGVzdF9za2lwZnVuY3Rp
b24oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHJlcG9ydHMgPSB0ZXN0ZGlyLnJ1bml0ZW0oIiIi
CisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6
CisgICAgICAgICAgICAgICAgcHl0ZXN0LnNraXAoImhlbGxvIikKKyAgICAgICAgIiIiKQorICAg
ICAgICByZXAgPSByZXBvcnRzWzFdCisgICAgICAgIGFzc2VydCBub3QgcmVwLmZhaWxlZAorICAg
ICAgICBhc3NlcnQgbm90IHJlcC5wYXNzZWQKKyAgICAgICAgYXNzZXJ0IHJlcC5za2lwcGVkCisg
ICAgICAgIGFzc2VydCByZXAub3V0Y29tZSA9PSAic2tpcHBlZCIKKyAgICAgICAgIyBhc3NlcnQg
cmVwLnNraXBwZWQud2hlbiA9PSAiY2FsbCIKKyAgICAgICAgIyBhc3NlcnQgcmVwLnNraXBwZWQu
d2hlbiA9PSAiY2FsbCIKKyAgICAgICAgIyBhc3NlcnQgcmVwLnNraXBwZWQgPT0gIiVzcmVhc29u
ID09ICJoZWxsbyIKKyAgICAgICAgIyBhc3NlcnQgcmVwLnNraXBwZWQubG9jYXRpb24ubGluZW5v
ID09IDMKKyAgICAgICAgIyBhc3NlcnQgcmVwLnNraXBwZWQubG9jYXRpb24ucGF0aAorICAgICAg
ICAjIGFzc2VydCBub3QgcmVwLnNraXBwZWQuZmFpbHVyZXJlcHIKKworICAgIGRlZiB0ZXN0X3Nr
aXBfaW5fc2V0dXBfZnVuY3Rpb24oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHJlcG9ydHMgPSB0
ZXN0ZGlyLnJ1bml0ZW0oIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAg
ICBkZWYgc2V0dXBfZnVuY3Rpb24oZnVuYyk6CisgICAgICAgICAgICAgICAgcHl0ZXN0LnNraXAo
ImhlbGxvIikKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAgICBw
YXNzCisgICAgICAgICIiIikKKyAgICAgICAgcHJpbnQocmVwb3J0cykKKyAgICAgICAgcmVwID0g
cmVwb3J0c1swXQorICAgICAgICBhc3NlcnQgbm90IHJlcC5mYWlsZWQKKyAgICAgICAgYXNzZXJ0
IG5vdCByZXAucGFzc2VkCisgICAgICAgIGFzc2VydCByZXAuc2tpcHBlZAorICAgICAgICAjIGFz
c2VydCByZXAuc2tpcHBlZC5yZWFzb24gPT0gImhlbGxvIgorICAgICAgICAjIGFzc2VydCByZXAu
c2tpcHBlZC5sb2NhdGlvbi5saW5lbm8gPT0gMworICAgICAgICAjIGFzc2VydCByZXAuc2tpcHBl
ZC5sb2NhdGlvbi5saW5lbm8gPT0gMworICAgICAgICBhc3NlcnQgbGVuKHJlcG9ydHMpID09IDIK
KyAgICAgICAgYXNzZXJ0IHJlcG9ydHNbMV0ucGFzc2VkICAjIHRlYXJkb3duCisKKyAgICBkZWYg
dGVzdF9mYWlsdXJlX2luX3NldHVwX2Z1bmN0aW9uKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBy
ZXBvcnRzID0gdGVzdGRpci5ydW5pdGVtKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAor
ICAgICAgICAgICAgZGVmIHNldHVwX2Z1bmN0aW9uKGZ1bmMpOgorICAgICAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoNDIpCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAg
ICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlcCA9IHJlcG9ydHNbMF0KKyAg
ICAgICAgYXNzZXJ0IG5vdCByZXAuc2tpcHBlZAorICAgICAgICBhc3NlcnQgbm90IHJlcC5wYXNz
ZWQKKyAgICAgICAgYXNzZXJ0IHJlcC5mYWlsZWQKKyAgICAgICAgYXNzZXJ0IHJlcC53aGVuID09
ICJzZXR1cCIKKyAgICAgICAgYXNzZXJ0IGxlbihyZXBvcnRzKSA9PSAyCisKKyAgICBkZWYgdGVz
dF9mYWlsdXJlX2luX3RlYXJkb3duX2Z1bmN0aW9uKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBy
ZXBvcnRzID0gdGVzdGRpci5ydW5pdGVtKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAor
ICAgICAgICAgICAgZGVmIHRlYXJkb3duX2Z1bmN0aW9uKGZ1bmMpOgorICAgICAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoNDIpCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAg
ICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHByaW50KHJlcG9ydHMpCisg
ICAgICAgIGFzc2VydCBsZW4ocmVwb3J0cykgPT0gMworICAgICAgICByZXAgPSByZXBvcnRzWzJd
CisgICAgICAgIGFzc2VydCBub3QgcmVwLnNraXBwZWQKKyAgICAgICAgYXNzZXJ0IG5vdCByZXAu
cGFzc2VkCisgICAgICAgIGFzc2VydCByZXAuZmFpbGVkCisgICAgICAgIGFzc2VydCByZXAud2hl
biA9PSAidGVhcmRvd24iCisgICAgICAgICMgYXNzZXJ0IHJlcC5sb25ncmVwci5yZXByY3Jhc2gu
bGluZW5vID09IDMKKyAgICAgICAgIyBhc3NlcnQgcmVwLmxvbmdyZXByLnJlcHJ0cmFjZWJhY2su
cmVwcmVudHJpZXMKKworICAgIGRlZiB0ZXN0X2N1c3RvbV9mYWlsdXJlX3JlcHIoc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZShjb25mdGVzdD0iIiIKKyAgICAgICAg
ICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGNsYXNzIEZ1bmN0aW9uKHB5dGVzdC5GdW5j
dGlvbik6CisgICAgICAgICAgICAgICAgZGVmIHJlcHJfZmFpbHVyZShzZWxmLCBleGNpbmZvKToK
KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICJoZWxsbyIKKyAgICAgICAgIiIiKQorICAgICAg
ICByZXBvcnRzID0gdGVzdGRpci5ydW5pdGVtKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVz
dAorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAgICAgIGFzc2VydCAw
CisgICAgICAgICIiIikKKyAgICAgICAgcmVwID0gcmVwb3J0c1sxXQorICAgICAgICBhc3NlcnQg
bm90IHJlcC5za2lwcGVkCisgICAgICAgIGFzc2VydCBub3QgcmVwLnBhc3NlZAorICAgICAgICBh
c3NlcnQgcmVwLmZhaWxlZAorICAgICAgICAjIGFzc2VydCByZXAub3V0Y29tZS53aGVuID09ICJj
YWxsIgorICAgICAgICAjIGFzc2VydCByZXAuZmFpbGVkLndoZXJlLmxpbmVubyA9PSAzCisgICAg
ICAgICMgYXNzZXJ0IHJlcC5mYWlsZWQud2hlcmUucGF0aC5iYXNlbmFtZSA9PSAidGVzdF9mdW5j
LnB5IgorICAgICAgICAjIGFzc2VydCByZXAuZmFpbGVkLmZhaWx1cmVyZXByID09ICJoZWxsbyIK
KworICAgIGRlZiB0ZXN0X3RlYXJkb3duX2ZpbmFsX3JldHVybmNvZGUoc2VsZiwgdGVzdGRpcik6
CisgICAgICAgIHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bnNvdXJjZSgiIiIKKyAgICAgICAgICAg
IGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBkZWYg
dGVhcmRvd25fZnVuY3Rpb24oZnVuYyk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cig0MikKKyAgICAgICAgIiIiKQorICAgICAgICBhc3NlcnQgcmVjLnJldCA9PSAxCisKKyAgICBk
ZWYgdGVzdF9leGFjdF90ZWFyZG93bl9pc3N1ZTkwKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBy
ZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW5zb3VyY2UoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0CisKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICAgICAg
ICAgIGRlZiB0ZXN0X21ldGhvZChzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAg
ICAgICAgICAgICAgIGRlZiB0ZWFyZG93bl9jbGFzcyhjbHMpOgorICAgICAgICAgICAgICAgICAg
ICByYWlzZSBFeGNlcHRpb24oKQorCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAg
ICAgICAgICAgICAgaW1wb3J0IHN5cworICAgICAgICAgICAgICAgICMgb24gcHl0aG9uMiBleGNf
aW5mbyBpcyBrZWVwdCB0aWxsIGEgZnVuY3Rpb24gZXhpdHMKKyAgICAgICAgICAgICAgICAjIHNv
IHdlIHdvdWxkIGVuZCB1cCBjYWxsaW5nIHRlc3QgZnVuY3Rpb25zIHdoaWxlCisgICAgICAgICAg
ICAgICAgIyBzeXMuZXhjX2luZm8gd291bGQgcmV0dXJuIHRoZSBpbmRleGVycm9yCisgICAgICAg
ICAgICAgICAgIyBmcm9tIGd1ZXNzaW5nIHRoZSBsYXN0aXRlbQorICAgICAgICAgICAgICAgIGV4
Y2luZm8gPSBzeXMuZXhjX2luZm8oKQorICAgICAgICAgICAgICAgIGltcG9ydCB0cmFjZWJhY2sK
KyAgICAgICAgICAgICAgICBhc3NlcnQgZXhjaW5mb1swXSBpcyBOb25lLCBcCisgICAgICAgICAg
ICAgICAgICAgICAgIHRyYWNlYmFjay5mb3JtYXRfZXhjZXB0aW9uKCpleGNpbmZvKQorICAgICAg
ICAgICAgZGVmIHRlYXJkb3duX2Z1bmN0aW9uKGZ1bmMpOgorICAgICAgICAgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoNDIpCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcyA9IHJlYy5nZXRyZXBv
cnRzKCJweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQiKQorICAgICAgICBwcmludChyZXBzKQorICAg
ICAgICBmb3IgaSBpbiByYW5nZSgyKToKKyAgICAgICAgICAgIGFzc2VydCByZXBzW2ldLm5vZGVp
ZC5lbmRzd2l0aCgidGVzdF9tZXRob2QiKQorICAgICAgICAgICAgYXNzZXJ0IHJlcHNbaV0ucGFz
c2VkCisgICAgICAgIGFzc2VydCByZXBzWzJdLndoZW4gPT0gInRlYXJkb3duIgorICAgICAgICBh
c3NlcnQgcmVwc1syXS5mYWlsZWQKKyAgICAgICAgYXNzZXJ0IGxlbihyZXBzKSA9PSA2CisgICAg
ICAgIGZvciBpIGluIHJhbmdlKDMsIDUpOgorICAgICAgICAgICAgYXNzZXJ0IHJlcHNbaV0ubm9k
ZWlkLmVuZHN3aXRoKCJ0ZXN0X2Z1bmMiKQorICAgICAgICAgICAgYXNzZXJ0IHJlcHNbaV0ucGFz
c2VkCisgICAgICAgIGFzc2VydCByZXBzWzVdLndoZW4gPT0gInRlYXJkb3duIgorICAgICAgICBh
c3NlcnQgcmVwc1s1XS5ub2RlaWQuZW5kc3dpdGgoInRlc3RfZnVuYyIpCisgICAgICAgIGFzc2Vy
dCByZXBzWzVdLmZhaWxlZAorCisgICAgZGVmIHRlc3RfZXhhY3RfdGVhcmRvd25faXNzdWUxMjA2
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiJpc3N1ZSBzaGFkb3dpbmcgZXJyb3Igd2l0aCB3
cm9uZyBudW1iZXIgb2YgYXJndW1lbnRzIG9uIHRlYXJkb3duX21ldGhvZC4iIiIKKyAgICAgICAg
cmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5
dGVzdAorCisgICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAg
ICAgICBkZWYgdGVhcmRvd25fbWV0aG9kKHNlbGYsIHgsIHksIHopOgorICAgICAgICAgICAgICAg
ICAgICBwYXNzCisKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9tZXRob2Qoc2VsZik6CisgICAg
ICAgICAgICAgICAgICAgIGFzc2VydCBUcnVlCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcyA9
IHJlYy5nZXRyZXBvcnRzKCJweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQiKQorICAgICAgICBwcmlu
dChyZXBzKQorICAgICAgICBhc3NlcnQgbGVuKHJlcHMpID09IDMKKyAgICAgICAgIworICAgICAg
ICBhc3NlcnQgcmVwc1swXS5ub2RlaWQuZW5kc3dpdGgoInRlc3RfbWV0aG9kIikKKyAgICAgICAg
YXNzZXJ0IHJlcHNbMF0ucGFzc2VkCisgICAgICAgIGFzc2VydCByZXBzWzBdLndoZW4gPT0gJ3Nl
dHVwJworICAgICAgICAjCisgICAgICAgIGFzc2VydCByZXBzWzFdLm5vZGVpZC5lbmRzd2l0aCgi
dGVzdF9tZXRob2QiKQorICAgICAgICBhc3NlcnQgcmVwc1sxXS5wYXNzZWQKKyAgICAgICAgYXNz
ZXJ0IHJlcHNbMV0ud2hlbiA9PSAnY2FsbCcKKyAgICAgICAgIworICAgICAgICBhc3NlcnQgcmVw
c1syXS5ub2RlaWQuZW5kc3dpdGgoInRlc3RfbWV0aG9kIikKKyAgICAgICAgYXNzZXJ0IHJlcHNb
Ml0uZmFpbGVkCisgICAgICAgIGFzc2VydCByZXBzWzJdLndoZW4gPT0gInRlYXJkb3duIgorICAg
ICAgICBhc3NlcnQgcmVwc1syXS5sb25ncmVwci5yZXByY3Jhc2gubWVzc2FnZSBpbiAoCisgICAg
ICAgICAgICAjIHB5dGhvbjMgZXJyb3IKKyAgICAgICAgICAgICJUeXBlRXJyb3I6IHRlYXJkb3du
X21ldGhvZCgpIG1pc3NpbmcgMiByZXF1aXJlZCBwb3NpdGlvbmFsIGFyZ3VtZW50czogJ3knIGFu
ZCAneiciLAorICAgICAgICAgICAgIyBweXRob24yIGVycm9yCisgICAgICAgICAgICAnVHlwZUVy
cm9yOiB0ZWFyZG93bl9tZXRob2QoKSB0YWtlcyBleGFjdGx5IDQgYXJndW1lbnRzICgyIGdpdmVu
KScKKyAgICAgICAgKQorCisgICAgZGVmIHRlc3RfZmFpbHVyZV9pbl9zZXR1cF9mdW5jdGlvbl9p
Z25vcmVzX2N1c3RvbV9yZXByKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoY29uZnRlc3Q9IiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAg
ICBjbGFzcyBGdW5jdGlvbihweXRlc3QuRnVuY3Rpb24pOgorICAgICAgICAgICAgICAgIGRlZiBy
ZXByX2ZhaWx1cmUoc2VsZiwgZXhjaW5mbyk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCAw
CisgICAgICAgICIiIikKKyAgICAgICAgcmVwb3J0cyA9IHRlc3RkaXIucnVuaXRlbSgiIiIKKyAg
ICAgICAgICAgIGRlZiBzZXR1cF9mdW5jdGlvbihmdW5jKToKKyAgICAgICAgICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKDQyKQorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAg
ICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICBhc3NlcnQgbGVuKHJlcG9ydHMpID09
IDIKKyAgICAgICAgcmVwID0gcmVwb3J0c1swXQorICAgICAgICBwcmludChyZXApCisgICAgICAg
IGFzc2VydCBub3QgcmVwLnNraXBwZWQKKyAgICAgICAgYXNzZXJ0IG5vdCByZXAucGFzc2VkCisg
ICAgICAgIGFzc2VydCByZXAuZmFpbGVkCisgICAgICAgICMgYXNzZXJ0IHJlcC5vdXRjb21lLndo
ZW4gPT0gInNldHVwIgorICAgICAgICAjIGFzc2VydCByZXAub3V0Y29tZS53aGVyZS5saW5lbm8g
PT0gMworICAgICAgICAjIGFzc2VydCByZXAub3V0Y29tZS53aGVyZS5wYXRoLmJhc2VuYW1lID09
ICJ0ZXN0X2Z1bmMucHkiCisgICAgICAgICMgYXNzZXJ0IGluc3RhbmFjZShyZXAuZmFpbGVkLmZh
aWx1cmVyZXByLCBQeXRob25GYWlsdXJlUmVwcikKKworICAgIGRlZiB0ZXN0X3N5c3RlbWV4aXRf
ZG9lc19ub3RfYmFpbF9vdXQoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIHJlcG9ydHMgPSB0ZXN0ZGlyLnJ1bml0ZW0oIiIiCisgICAgICAgICAgICAgICAgZGVmIHRl
c3RfZnVuYygpOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBTeXN0ZW1FeGl0KDQyKQorICAg
ICAgICAgICAgIiIiKQorICAgICAgICBleGNlcHQgU3lzdGVtRXhpdDoKKyAgICAgICAgICAgIHB5
dGVzdC5mYWlsKCJydW5uZXIgZGlkIG5vdCBjYXRjaCBTeXN0ZW1FeGl0IikKKyAgICAgICAgcmVw
ID0gcmVwb3J0c1sxXQorICAgICAgICBhc3NlcnQgcmVwLmZhaWxlZAorICAgICAgICBhc3NlcnQg
cmVwLndoZW4gPT0gImNhbGwiCisKKyAgICBkZWYgdGVzdF9leGl0X3Byb3BhZ2F0ZXMoc2VsZiwg
dGVzdGRpcik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHRlc3RkaXIucnVuaXRlbSgiIiIK
KyAgICAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICAgICAgZGVmIHRlc3Rf
ZnVuYygpOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBweXRlc3QuZXhpdC5FeGNlcHRpb24o
KQorICAgICAgICAgICAgIiIiKQorICAgICAgICBleGNlcHQgcHl0ZXN0LmV4aXQuRXhjZXB0aW9u
OgorICAgICAgICAgICAgcGFzcworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcHl0ZXN0LmZh
aWwoImRpZCBub3QgcmFpc2UiKQorCisKK2NsYXNzIFRlc3RFeGVjdXRpb25Ob25Gb3JrZWQoQmFz
ZUZ1bmN0aW9uYWxUZXN0cyk6CisgICAgZGVmIGdldHJ1bm5lcihzZWxmKToKKyAgICAgICAgZGVm
IGYoaXRlbSk6CisgICAgICAgICAgICByZXR1cm4gcnVubmVyLnJ1bnRlc3Rwcm90b2NvbChpdGVt
LCBsb2c9RmFsc2UpCisgICAgICAgIHJldHVybiBmCisKKyAgICBkZWYgdGVzdF9rZXlib2FyZGlu
dGVycnVwdF9wcm9wYWdhdGVzKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0cnk6CisgICAgICAg
ICAgICB0ZXN0ZGlyLnJ1bml0ZW0oIiIiCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygp
OgorICAgICAgICAgICAgICAgICAgICByYWlzZSBLZXlib2FyZEludGVycnVwdCgiZmFrZSIpCisg
ICAgICAgICAgICAiIiIpCisgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKKyAgICAg
ICAgICAgIHBhc3MKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHB5dGVzdC5mYWlsKCJkaWQg
bm90IHJhaXNlIikKKworCitjbGFzcyBUZXN0RXhlY3V0aW9uRm9ya2VkKEJhc2VGdW5jdGlvbmFs
VGVzdHMpOgorICAgIHB5dGVzdG1hcmsgPSBweXRlc3QubWFyay5za2lwaWYoIm5vdCBoYXNhdHRy
KG9zLCAnZm9yaycpIikKKworICAgIGRlZiBnZXRydW5uZXIoc2VsZik6CisgICAgICAgICMgWFhY
IHJlLWFycmFuZ2UgdGhpcyB0ZXN0IHRvIGxpdmUgaW4gcHl0ZXN0LXhkaXN0CisgICAgICAgIGJv
eGVkID0gcHl0ZXN0LmltcG9ydG9yc2tpcCgieGRpc3QuYm94ZWQiKQorICAgICAgICByZXR1cm4g
Ym94ZWQuZm9ya2VkX3J1bl9yZXBvcnQKKworICAgIGRlZiB0ZXN0X3N1aWNpZGUoc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHJlcG9ydHMgPSB0ZXN0ZGlyLnJ1bml0ZW0oIiIiCisgICAgICAgICAg
ICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICAgICAgaW1wb3J0IG9zCisgICAgICAgICAg
ICAgICAgb3Mua2lsbChvcy5nZXRwaWQoKSwgMTUpCisgICAgICAgICIiIikKKyAgICAgICAgcmVw
ID0gcmVwb3J0c1swXQorICAgICAgICBhc3NlcnQgcmVwLmZhaWxlZAorICAgICAgICBhc3NlcnQg
cmVwLndoZW4gPT0gIj8/PyIKKworCitjbGFzcyBUZXN0U2Vzc2lvblJlcG9ydHMob2JqZWN0KToK
KyAgICBkZWYgdGVzdF9jb2xsZWN0X3Jlc3VsdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgY29s
ID0gdGVzdGRpci5nZXRtb2R1bGVjb2woIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jMSgp
OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmpl
Y3QpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXAgPSBy
dW5uZXIuY29sbGVjdF9vbmVfbm9kZShjb2wpCisgICAgICAgIGFzc2VydCBub3QgcmVwLmZhaWxl
ZAorICAgICAgICBhc3NlcnQgbm90IHJlcC5za2lwcGVkCisgICAgICAgIGFzc2VydCByZXAucGFz
c2VkCisgICAgICAgIGxvY2luZm8gPSByZXAubG9jYXRpb24KKyAgICAgICAgYXNzZXJ0IGxvY2lu
Zm9bMF0gPT0gY29sLmZzcGF0aC5iYXNlbmFtZQorICAgICAgICBhc3NlcnQgbm90IGxvY2luZm9b
MV0KKyAgICAgICAgYXNzZXJ0IGxvY2luZm9bMl0gPT0gY29sLmZzcGF0aC5iYXNlbmFtZQorICAg
ICAgICByZXMgPSByZXAucmVzdWx0CisgICAgICAgIGFzc2VydCBsZW4ocmVzKSA9PSAyCisgICAg
ICAgIGFzc2VydCByZXNbMF0ubmFtZSA9PSAidGVzdF9mdW5jMSIKKyAgICAgICAgYXNzZXJ0IHJl
c1sxXS5uYW1lID09ICJUZXN0Q2xhc3MiCisKKworcmVwb3J0dHlwZXMgPSBbCisgICAgcnVubmVy
LkJhc2VSZXBvcnQsCisgICAgcnVubmVyLlRlc3RSZXBvcnQsCisgICAgcnVubmVyLlRlYXJkb3du
RXJyb3JSZXBvcnQsCisgICAgcnVubmVyLkNvbGxlY3RSZXBvcnQsCitdCisKKworQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCdyZXBvcnR0eXBlJywgcmVwb3J0dHlwZXMsIGlkcz1beC5fX25hbWVf
XyBmb3IgeCBpbiByZXBvcnR0eXBlc10pCitkZWYgdGVzdF9yZXBvcnRfZXh0cmFfcGFyYW1ldGVy
cyhyZXBvcnR0eXBlKToKKyAgICBpZiBoYXNhdHRyKHB5LnN0ZC5pbnNwZWN0LCAnc2lnbmF0dXJl
Jyk6CisgICAgICAgIGFyZ3MgPSBsaXN0KHB5LnN0ZC5pbnNwZWN0LnNpZ25hdHVyZShyZXBvcnR0
eXBlLl9faW5pdF9fKS5wYXJhbWV0ZXJzLmtleXMoKSlbMTpdCisgICAgZWxzZToKKyAgICAgICAg
YXJncyA9IHB5LnN0ZC5pbnNwZWN0LmdldGFyZ3NwZWMocmVwb3J0dHlwZS5fX2luaXRfXylbMF1b
MTpdCisgICAgYmFzZWt3ID0gZGljdC5mcm9ta2V5cyhhcmdzLCBbXSkKKyAgICByZXBvcnQgPSBy
ZXBvcnR0eXBlKG5ld3RoaW5nPTEsICoqYmFzZWt3KQorICAgIGFzc2VydCByZXBvcnQubmV3dGhp
bmcgPT0gMQorCisKK2RlZiB0ZXN0X2NhbGxpbmZvKCk6CisgICAgY2kgPSBydW5uZXIuQ2FsbElu
Zm8obGFtYmRhOiAwLCAnMTIzJykKKyAgICBhc3NlcnQgY2kud2hlbiA9PSAiMTIzIgorICAgIGFz
c2VydCBjaS5yZXN1bHQgPT0gMAorICAgIGFzc2VydCAicmVzdWx0IiBpbiByZXByKGNpKQorICAg
IGNpID0gcnVubmVyLkNhbGxJbmZvKGxhbWJkYTogMCAvIDAsICcxMjMnKQorICAgIGFzc2VydCBj
aS53aGVuID09ICIxMjMiCisgICAgYXNzZXJ0IG5vdCBoYXNhdHRyKGNpLCAncmVzdWx0JykKKyAg
ICBhc3NlcnQgY2kuZXhjaW5mbworICAgIGFzc2VydCAiZXhjIiBpbiByZXByKGNpKQorCisjIGRl
c2lnbiBxdWVzdGlvbjogZG8gd2Ugd2FudCBnZW5lcmFsIGhvb2tzIGluIHB5dGhvbiBmaWxlcz8K
KyMgdGhlbiBzb21ldGhpbmcgbGlrZSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uYWwgdGVzdHMgbWFr
ZXMgc2Vuc2UKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwKK2RlZiB0ZXN0X3J1bnRlc3RfaW5fbW9k
dWxlX29yZGVyaW5nKHRlc3RkaXIpOgorICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgor
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGRlZiBweXRlc3RfcnVudGVzdF9zZXR1cChp
dGVtKTogIyBydW5zIGFmdGVyIGNsYXNzLWxldmVsIQorICAgICAgICAgICAgaXRlbS5mdW5jdGlv
bi5teWxpc3QuYXBwZW5kKCJtb2R1bGUiKQorICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0
KToKKyAgICAgICAgICAgIGRlZiBweXRlc3RfcnVudGVzdF9zZXR1cChzZWxmLCBpdGVtKToKKyAg
ICAgICAgICAgICAgICBhc3NlcnQgbm90IGhhc2F0dHIoaXRlbS5mdW5jdGlvbiwgJ215bGlzdCcp
CisgICAgICAgICAgICAgICAgaXRlbS5mdW5jdGlvbi5teWxpc3QgPSBbJ2NsYXNzJ10KKyAgICAg
ICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIG15bGlzdChzZWxmLCByZXF1
ZXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5mdW5jdGlvbi5teWxpc3QKKyAg
ICAgICAgICAgIGRlZiBweXRlc3RfcnVudGVzdF9jYWxsKHNlbGYsIGl0ZW0sIF9fbXVsdGljYWxs
X18pOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgX19tdWx0aWNh
bGxfXy5leGVjdXRlKCkKKyAgICAgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAg
ICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8xKHNlbGYsIG15
bGlzdCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IG15bGlzdCA9PSBbJ2NsYXNzJywgJ21vZHVs
ZSddLCBteWxpc3QKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCkKKyAgICAgICAg
ICAgIGRlZiB0ZXN0X2hlbGxvMihzZWxmLCBteWxpc3QpOgorICAgICAgICAgICAgICAgIGFzc2Vy
dCBteWxpc3QgPT0gWydjbGFzcycsICdtb2R1bGUnXSwgbXlsaXN0CisgICAgICAgIGRlZiBweXRl
c3RfcnVudGVzdF90ZWFyZG93bihpdGVtKToKKyAgICAgICAgICAgIGRlbCBpdGVtLmZ1bmN0aW9u
Lm15bGlzdAorICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwMSkKKyAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKjIgcGFzc2VkKiIKKyAg
ICBdKQorCisKK2RlZiB0ZXN0X291dGNvbWVleGNlcHRpb25fZXhjZXB0aW9uYXR0cmlidXRlcygp
OgorICAgIG91dGNvbWUgPSBvdXRjb21lcy5PdXRjb21lRXhjZXB0aW9uKCd0ZXN0JykKKyAgICBh
c3NlcnQgb3V0Y29tZS5hcmdzWzBdID09IG91dGNvbWUubXNnCisKKworZGVmIHRlc3Rfb3V0Y29t
ZWV4Y2VwdGlvbl9wYXNzZXNfZXhjZXB0X0V4Y2VwdGlvbigpOgorICAgIHdpdGggcHl0ZXN0LnJh
aXNlcyhvdXRjb21lcy5PdXRjb21lRXhjZXB0aW9uKToKKyAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgcmFpc2Ugb3V0Y29tZXMuT3V0Y29tZUV4Y2VwdGlvbigndGVzdCcpCisgICAgICAgIGV4Y2Vw
dCBFeGNlcHRpb246CisgICAgICAgICAgICBwYXNzCisKKworZGVmIHRlc3RfcHl0ZXN0X2V4aXQo
KToKKyAgICB0cnk6CisgICAgICAgIHB5dGVzdC5leGl0KCJoZWxsbyIpCisgICAgZXhjZXB0IHB5
dGVzdC5leGl0LkV4Y2VwdGlvbjoKKyAgICAgICAgZXhjaW5mbyA9IF9weXRlc3QuX2NvZGUuRXhj
ZXB0aW9uSW5mbygpCisgICAgICAgIGFzc2VydCBleGNpbmZvLmVycmlzaW5zdGFuY2UoS2V5Ym9h
cmRJbnRlcnJ1cHQpCisKKworZGVmIHRlc3RfcHl0ZXN0X2ZhaWwoKToKKyAgICB0cnk6CisgICAg
ICAgIHB5dGVzdC5mYWlsKCJoZWxsbyIpCisgICAgZXhjZXB0IHB5dGVzdC5mYWlsLkV4Y2VwdGlv
bjoKKyAgICAgICAgZXhjaW5mbyA9IF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mbygpCisgICAg
ICAgIHMgPSBleGNpbmZvLmV4Y29ubHkodHJ5c2hvcnQ9VHJ1ZSkKKyAgICAgICAgYXNzZXJ0IHMu
c3RhcnRzd2l0aCgiRmFpbGVkIikKKworCitkZWYgdGVzdF9weXRlc3RfZXhpdF9tc2codGVzdGRp
cik6CisgICAgdGVzdGRpci5tYWtlY29uZnRlc3QoIiIiCisgICAgaW1wb3J0IHB5dGVzdAorCisg
ICAgZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKKyAgICAgICAgcHl0ZXN0LmV4aXQoJ29o
IG5vZXMnKQorICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAg
cmVzdWx0LnN0ZGVyci5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIkV4aXQ6IG9oIG5vZXMiLAor
ICAgIF0pCisKKworZGVmIHRlc3RfcHl0ZXN0X2ZhaWxfbm90cmFjZSh0ZXN0ZGlyKToKKyAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgZGVm
IHRlc3RfaGVsbG8oKToKKyAgICAgICAgICAgIHB5dGVzdC5mYWlsKCJoZWxsbyIsIHB5dHJhY2U9
RmFsc2UpCisgICAgICAgIGRlZiB0ZWFyZG93bl9mdW5jdGlvbihmdW5jdGlvbik6CisgICAgICAg
ICAgICBweXRlc3QuZmFpbCgid29ybGQiLCBweXRyYWNlPUZhbHNlKQorICAgICIiIikKKyAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKFsKKyAgICAgICAgIndvcmxkIiwKKyAgICAgICAgImhlbGxvIiwKKyAgICBdKQorICAgIGFz
c2VydCAnZGVmIHRlYXJkb3duX2Z1bmN0aW9uJyBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQor
CisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnc3RyX3ByZWZpeCcsIFsndScsICcnXSkKK2Rl
ZiB0ZXN0X3B5dGVzdF9mYWlsX25vdHJhY2Vfbm9uX2FzY2lpKHRlc3RkaXIsIHN0cl9wcmVmaXgp
OgorICAgICIiIkZpeCBweXRlc3QuZmFpbCB3aXRoIHB5dHJhY2U9RmFsc2Ugd2l0aCBub24tYXNj
aWkgY2hhcmFjdGVycyAoIzExNzgpLgorCisgICAgVGhpcyB0ZXN0cyB3aXRoIG5hdGl2ZSBhbmQg
dW5pY29kZSBzdHJpbmdzIGNvbnRhaW5pbmcgbm9uLWFzY2lpIGNoYXJzLgorICAgICIiIgorICAg
IHRlc3RkaXIubWFrZXB5ZmlsZSh1IiIiCisgICAgICAgICMgY29kaW5nOiB1dGYtOAorICAgICAg
ICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgZGVmIHRlc3RfaGVsbG8oKToKKyAgICAgICAgICAg
IHB5dGVzdC5mYWlsKCVzJ29oIG9oOiDimLonLCBweXRyYWNlPUZhbHNlKQorICAgICIiIiAlIHN0
cl9wcmVmaXgpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIGlmIHN5cy52
ZXJzaW9uX2luZm9bMF0gPj0gMzoKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsnKnRlc3RfaGVsbG8qJywgIm9oIG9oOiDimLoiXSkKKyAgICBlbHNlOgorICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWycqdGVzdF9oZWxsbyonLCAib2ggb2g6ICoiXSkKKyAg
ICBhc3NlcnQgJ2RlZiB0ZXN0X2hlbGxvJyBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorCisK
K2RlZiB0ZXN0X3B5dGVzdF9ub190ZXN0c19jb2xsZWN0ZWRfZXhpdF9zdGF0dXModGVzdGRpcik6
CisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcygnKmNvbGxlY3RlZCAwIGl0ZW1zKicpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQg
PT0gbWFpbi5FWElUX05PVEVTVFNDT0xMRUNURUQKKworICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh0
ZXN0X2Zvbz0iIiIKKyAgICAgICAgZGVmIHRlc3RfZm9vKCk6CisgICAgICAgICAgICBhc3NlcnQg
MQorICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCcqY29sbGVjdGVkIDEgaXRlbSonKQorICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcygnKjEgcGFzc2VkKicpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQg
PT0gbWFpbi5FWElUX09LCisKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLWsgbm9u
bWF0Y2gnKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygnKmNvbGxlY3RlZCAxIGl0
ZW0qJykKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoJyoxIGRlc2VsZWN0ZWQqJykK
KyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSBtYWluLkVYSVRfTk9URVNUU0NPTExFQ1RFRAorCisK
K2RlZiB0ZXN0X2V4Y2VwdGlvbl9wcmludGluZ19za2lwKCk6CisgICAgdHJ5OgorICAgICAgICBw
eXRlc3Quc2tpcCgiaGVsbG8iKQorICAgIGV4Y2VwdCBweXRlc3Quc2tpcC5FeGNlcHRpb246Cisg
ICAgICAgIGV4Y2luZm8gPSBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8oKQorICAgICAgICBz
ID0gZXhjaW5mby5leGNvbmx5KHRyeXNob3J0PVRydWUpCisgICAgICAgIGFzc2VydCBzLnN0YXJ0
c3dpdGgoIlNraXBwZWQiKQorCisKK2RlZiB0ZXN0X2ltcG9ydG9yc2tpcChtb25rZXlwYXRjaCk6
CisgICAgaW1wb3J0b3Jza2lwID0gcHl0ZXN0LmltcG9ydG9yc2tpcAorCisgICAgZGVmIGYoKToK
KyAgICAgICAgaW1wb3J0b3Jza2lwKCJhc2Rsa2oiKQorCisgICAgdHJ5OgorICAgICAgICBzeXMg
PSBpbXBvcnRvcnNraXAoInN5cyIpICAjIG5vcWEKKyAgICAgICAgYXNzZXJ0IHN5cyA9PSBweS5z
dGQuc3lzCisgICAgICAgICMgcGF0aCA9IHB5dGVzdC5pbXBvcnRvcnNraXAoIm9zLnBhdGgiKQor
ICAgICAgICAjIGFzc2VydCBwYXRoID09IHB5LnN0ZC5vcy5wYXRoCisgICAgICAgIGV4Y2luZm8g
PSBweXRlc3QucmFpc2VzKHB5dGVzdC5za2lwLkV4Y2VwdGlvbiwgZikKKyAgICAgICAgcGF0aCA9
IHB5LnBhdGgubG9jYWwoZXhjaW5mby5nZXRyZXByKCkucmVwcmNyYXNoLnBhdGgpCisgICAgICAg
ICMgY2hlY2sgdGhhdCBpbXBvcnRvcnNraXAgcmVwb3J0cyB0aGUgYWN0dWFsIGNhbGwKKyAgICAg
ICAgIyBpbiB0aGlzIHRlc3QgdGhlIHRlc3RfcnVubmVyLnB5IGZpbGUKKyAgICAgICAgYXNzZXJ0
IHBhdGgucHVyZWJhc2VuYW1lID09ICJ0ZXN0X3J1bm5lciIKKyAgICAgICAgcHl0ZXN0LnJhaXNl
cyhTeW50YXhFcnJvciwgInB5dGVzdC5pbXBvcnRvcnNraXAoJ3ggeSB6JykiKQorICAgICAgICBw
eXRlc3QucmFpc2VzKFN5bnRheEVycm9yLCAicHl0ZXN0LmltcG9ydG9yc2tpcCgneD15JykiKQor
ICAgICAgICBtb2QgPSBweS5zdGQudHlwZXMuTW9kdWxlVHlwZSgiaGVsbG8xMjMiKQorICAgICAg
ICBtb2QuX192ZXJzaW9uX18gPSAiMS4zIgorICAgICAgICBtb25rZXlwYXRjaC5zZXRpdGVtKHN5
cy5tb2R1bGVzLCAiaGVsbG8xMjMiLCBtb2QpCisgICAgICAgIHB5dGVzdC5yYWlzZXMocHl0ZXN0
LnNraXAuRXhjZXB0aW9uLCAiIiIKKyAgICAgICAgICAgIHB5dGVzdC5pbXBvcnRvcnNraXAoImhl
bGxvMTIzIiwgbWludmVyc2lvbj0iMS4zLjEiKQorICAgICAgICAiIiIpCisgICAgICAgIG1vZDIg
PSBweXRlc3QuaW1wb3J0b3Jza2lwKCJoZWxsbzEyMyIsIG1pbnZlcnNpb249IjEuMyIpCisgICAg
ICAgIGFzc2VydCBtb2QyID09IG1vZAorICAgIGV4Y2VwdCBweXRlc3Quc2tpcC5FeGNlcHRpb246
CisgICAgICAgIHByaW50KF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mbygpKQorICAgICAgICBw
eXRlc3QuZmFpbCgic3B1cmlvdXMgc2tpcCIpCisKKworZGVmIHRlc3RfaW1wb3J0b3Jza2lwX2lt
cG9ydHNfbGFzdF9tb2R1bGVfcGFydCgpOgorICAgIG9zcGF0aCA9IHB5dGVzdC5pbXBvcnRvcnNr
aXAoIm9zLnBhdGgiKQorICAgIGFzc2VydCBvcy5wYXRoID09IG9zcGF0aAorCisKK2RlZiB0ZXN0
X2ltcG9ydG9yc2tpcF9kZXZfbW9kdWxlKG1vbmtleXBhdGNoKToKKyAgICB0cnk6CisgICAgICAg
IG1vZCA9IHB5LnN0ZC50eXBlcy5Nb2R1bGVUeXBlKCJtb2NrbW9kdWxlIikKKyAgICAgICAgbW9k
Ll9fdmVyc2lvbl9fID0gJzAuMTMuMC5kZXYtNDMyOTAnCisgICAgICAgIG1vbmtleXBhdGNoLnNl
dGl0ZW0oc3lzLm1vZHVsZXMsICdtb2NrbW9kdWxlJywgbW9kKQorICAgICAgICBtb2QyID0gcHl0
ZXN0LmltcG9ydG9yc2tpcCgnbW9ja21vZHVsZScsIG1pbnZlcnNpb249JzAuMTIuMCcpCisgICAg
ICAgIGFzc2VydCBtb2QyID09IG1vZAorICAgICAgICBweXRlc3QucmFpc2VzKHB5dGVzdC5za2lw
LkV4Y2VwdGlvbiwgIiIiCisgICAgICAgICAgICBweXRlc3QuaW1wb3J0b3Jza2lwKCdtb2NrbW9k
dWxlMScsIG1pbnZlcnNpb249JzAuMTQuMCcpIiIiKQorICAgIGV4Y2VwdCBweXRlc3Quc2tpcC5F
eGNlcHRpb246CisgICAgICAgIHByaW50KF9weXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mbygpKQor
ICAgICAgICBweXRlc3QuZmFpbCgic3B1cmlvdXMgc2tpcCIpCisKKworZGVmIHRlc3RfaW1wb3J0
b3Jza2lwX21vZHVsZV9sZXZlbCh0ZXN0ZGlyKToKKyAgICAiIiJpbXBvcnRvcnNraXAgbXVzdCBi
ZSBhYmxlIHRvIHNraXAgZW50aXJlIG1vZHVsZXMgd2hlbiB1c2VkIGF0IG1vZHVsZSBsZXZlbCIi
IgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAg
ICAgICBmb29iYXJiYXogPSBweXRlc3QuaW1wb3J0b3Jza2lwKCJmb29iYXJiYXoiKQorCisgICAg
ICAgIGRlZiB0ZXN0X2ZvbygpOgorICAgICAgICAgICAgcGFzcworICAgICcnJykKKyAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsnKmNvbGxlY3RlZCAwIGl0ZW1zIC8gMSBza2lwcGVkKiddKQorCisKK2RlZiB0ZXN0X3B5dGVz
dF9jbWRsaW5lX21haW4odGVzdGRpcik6CisgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIK
KyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBkZWYgdGVzdF9oZWxsbygpOgorICAgICAg
ICAgICAgYXNzZXJ0IDEKKyAgICAgICAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICAg
ICAgICAgcHl0ZXN0LmNtZGxpbmUubWFpbihbX19maWxlX19dKQorICAgICIiIikKKyAgICBpbXBv
cnQgc3VicHJvY2VzcworICAgIHBvcGVuID0gc3VicHJvY2Vzcy5Qb3Blbihbc3lzLmV4ZWN1dGFi
bGUsIHN0cihwKV0sIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpCisgICAgcG9wZW4uY29tbXVuaWNh
dGUoKQorICAgIHJldCA9IHBvcGVuLndhaXQoKQorICAgIGFzc2VydCByZXQgPT0gMAorCisKK2Rl
ZiB0ZXN0X3VuaWNvZGVfaW5fbG9uZ3JlcHIodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlY29u
ZnRlc3QoIiIiCisgICAgICAgICMgLSotIGNvZGluZzogdXRmLTggLSotCisgICAgICAgIGltcG9y
dCBweXRlc3QKKyAgICAgICAgQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQorICAg
ICAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfbWFrZXJlcG9ydCgpOgorICAgICAgICAgICAgb3V0Y29t
ZSA9IHlpZWxkCisgICAgICAgICAgICByZXAgPSBvdXRjb21lLmdldF9yZXN1bHQoKQorICAgICAg
ICAgICAgaWYgcmVwLndoZW4gPT0gImNhbGwiOgorICAgICAgICAgICAgICAgIHJlcC5sb25ncmVw
ciA9IHUnw6QnCisgICAgIiIiKQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAg
ZGVmIHRlc3Rfb3V0KCk6CisgICAgICAgICAgICBhc3NlcnQgMAorICAgICIiIikKKyAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMQorICAg
IGFzc2VydCAiVW5pY29kZUVuY29kZUVycm9yIiBub3QgaW4gcmVzdWx0LnN0ZGVyci5zdHIoKQor
CisKK2RlZiB0ZXN0X2ZhaWx1cmVfaW5fc2V0dXAodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtl
cHlmaWxlKCIiIgorICAgICAgICBkZWYgc2V0dXBfbW9kdWxlKCk6CisgICAgICAgICAgICAwLzAK
KyAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAgcGFzcworICAgICIiIikKKyAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS10Yj1saW5lIikKKyAgICBhc3NlcnQgImRl
ZiBzZXR1cF9tb2R1bGUiIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKworZGVmIHRlc3Rf
bWFrZXJlcG9ydF9nZXRzb3VyY2UodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIi
IgorICAgICAgICBkZWYgdGVzdF9mb28oKToKKyAgICAgICAgICAgIGlmIEZhbHNlOiBwYXNzCisg
ICAgICAgICAgICBlbHNlOiBhc3NlcnQgRmFsc2UKKyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoKQorICAgIGFzc2VydCAnSU5URVJOQUxFUlJPUicgbm90IGluIHJlc3Vs
dC5zdGRvdXQuc3RyKCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWycqZWxzZTog
YXNzZXJ0IEZhbHNlKiddKQorCisKK2RlZiB0ZXN0X21ha2VyZXBvcnRfZ2V0c291cmNlX2R5bmFt
aWNfY29kZSh0ZXN0ZGlyLCBtb25rZXlwYXRjaCk6CisgICAgIiIiVGVzdCB0aGF0IGV4Y2VwdGlv
biBpbiBkeW5hbWljYWxseSBnZW5lcmF0ZWQgY29kZSBkb2Vzbid0IGJyZWFrIGdldHRpbmcgdGhl
IHNvdXJjZSBsaW5lLiIiIgorICAgIGltcG9ydCBpbnNwZWN0CisgICAgb3JpZ2luYWxfZmluZHNv
dXJjZSA9IGluc3BlY3QuZmluZHNvdXJjZQorCisgICAgZGVmIGZpbmRzb3VyY2Uob2JqLCAqYXJn
cywgKiprd2FyZ3MpOgorICAgICAgICAjIENhbiBiZSB0cmlnZ2VyZWQgYnkgZHluYW1pY2FsbHkg
Y3JlYXRlZCBmdW5jdGlvbnMKKyAgICAgICAgaWYgb2JqLl9fbmFtZV9fID09ICdmb28nOgorICAg
ICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcigpCisgICAgICAgIHJldHVybiBvcmlnaW5hbF9maW5k
c291cmNlKG9iaiwgKmFyZ3MsICoqa3dhcmdzKQorCisgICAgbW9ua2V5cGF0Y2guc2V0YXR0cihp
bnNwZWN0LCAnZmluZHNvdXJjZScsIGZpbmRzb3VyY2UpCisKKyAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKworICAgICAgICBAcHl0ZXN0LmZpeHR1cmUK
KyAgICAgICAgZGVmIGZvbyhtaXNzaW5nKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBk
ZWYgdGVzdF9maXgoZm9vKToKKyAgICAgICAgICAgIGFzc2VydCBGYWxzZQorICAgICIiIikKKyAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLXZ2JykKKyAgICBhc3NlcnQgJ0lOVEVSTkFM
RVJST1InIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1h
dGNoX2xpbmVzKFsiKnRlc3RfZml4KiIsICIqZml4dHVyZSonbWlzc2luZycqbm90IGZvdW5kKiJd
KQorCisKK2RlZiB0ZXN0X3N0b3JlX2V4Y2VwdF9pbmZvX29uX2Vyb3IoKToKKyAgICAiIiIgVGVz
dCB0aGF0IHVwb24gdGVzdCBmYWlsdXJlLCB0aGUgZXhjZXB0aW9uIGluZm8gaXMgc3RvcmVkIG9u
CisgICAgc3lzLmxhc3RfdHJhY2ViYWNrIGFuZCBmcmllbmRzLgorICAgICIiIgorICAgICMgU2lt
dWxhdGUgaXRlbSB0aGF0IHJhaXNlcyBhIHNwZWNpZmljIGV4Y2VwdGlvbgorICAgIGNsYXNzIEl0
ZW1UaGF0UmFpc2VzKG9iamVjdCk6CisgICAgICAgIG5vZGVpZCA9ICdpdGVtX3RoYXRfcmFpc2Vz
JworCisgICAgICAgIGRlZiBydW50ZXN0KHNlbGYpOgorICAgICAgICAgICAgcmFpc2UgSW5kZXhF
cnJvcignVEVTVCcpCisgICAgdHJ5OgorICAgICAgICBydW5uZXIucHl0ZXN0X3J1bnRlc3RfY2Fs
bChJdGVtVGhhdFJhaXNlcygpKQorICAgIGV4Y2VwdCBJbmRleEVycm9yOgorICAgICAgICBwYXNz
CisgICAgIyBDaGVjayB0aGF0IGV4Y2VwdGlvbiBpbmZvIGlzIHN0b3JlZCBvbiBzeXMKKyAgICBh
c3NlcnQgc3lzLmxhc3RfdHlwZSBpcyBJbmRleEVycm9yCisgICAgYXNzZXJ0IHN5cy5sYXN0X3Zh
bHVlLmFyZ3NbMF0gPT0gJ1RFU1QnCisgICAgYXNzZXJ0IHN5cy5sYXN0X3RyYWNlYmFjaworCisK
K2RlZiB0ZXN0X2N1cnJlbnRfdGVzdF9lbnZfdmFyKHRlc3RkaXIsIG1vbmtleXBhdGNoKToKKyAg
ICBweXRlc3RfY3VycmVudF90ZXN0X3ZhcnMgPSBbXQorICAgIG1vbmtleXBhdGNoLnNldGF0dHIo
c3lzLCAncHl0ZXN0X2N1cnJlbnRfdGVzdF92YXJzJywgcHl0ZXN0X2N1cnJlbnRfdGVzdF92YXJz
LCByYWlzaW5nPUZhbHNlKQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAgaW1w
b3J0IHB5dGVzdAorICAgICAgICBpbXBvcnQgc3lzCisgICAgICAgIGltcG9ydCBvcworCisgICAg
ICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICBkZWYgZml4KCk6CisgICAgICAgICAgICBzeXMu
cHl0ZXN0X2N1cnJlbnRfdGVzdF92YXJzLmFwcGVuZCgoJ3NldHVwJywgb3MuZW52aXJvblsnUFlU
RVNUX0NVUlJFTlRfVEVTVCddKSkKKyAgICAgICAgICAgIHlpZWxkCisgICAgICAgICAgICBzeXMu
cHl0ZXN0X2N1cnJlbnRfdGVzdF92YXJzLmFwcGVuZCgoJ3RlYXJkb3duJywgb3MuZW52aXJvblsn
UFlURVNUX0NVUlJFTlRfVEVTVCddKSkKKworICAgICAgICBkZWYgdGVzdChmaXgpOgorICAgICAg
ICAgICAgc3lzLnB5dGVzdF9jdXJyZW50X3Rlc3RfdmFycy5hcHBlbmQoKCdjYWxsJywgb3MuZW52
aXJvblsnUFlURVNUX0NVUlJFTlRfVEVTVCddKSkKKyAgICAnJycpCisgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3RfaW5wcm9jZXNzKCkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisg
ICAgdGVzdF9pZCA9ICd0ZXN0X2N1cnJlbnRfdGVzdF9lbnZfdmFyLnB5Ojp0ZXN0JworICAgIGFz
c2VydCBweXRlc3RfY3VycmVudF90ZXN0X3ZhcnMgPT0gWworICAgICAgICAoJ3NldHVwJywgdGVz
dF9pZCArICcgKHNldHVwKScpLCAoJ2NhbGwnLCB0ZXN0X2lkICsgJyAoY2FsbCknKSwgKCd0ZWFy
ZG93bicsIHRlc3RfaWQgKyAnICh0ZWFyZG93biknKV0KKyAgICBhc3NlcnQgJ1BZVEVTVF9DVVJS
RU5UX1RFU1QnIG5vdCBpbiBvcy5lbnZpcm9uCisKKworY2xhc3MgVGVzdFJlcG9ydENvbnRlbnRz
KG9iamVjdCk6CisgICAgIiIiCisgICAgVGVzdCB1c2VyLWxldmVsIEFQSSBvZiBgYFRlc3RSZXBv
cnRgYCBvYmplY3RzLgorICAgICIiIgorCisgICAgZGVmIGdldHJ1bm5lcihzZWxmKToKKyAgICAg
ICAgcmV0dXJuIGxhbWJkYSBpdGVtOiBydW5uZXIucnVudGVzdHByb3RvY29sKGl0ZW0sIGxvZz1G
YWxzZSkKKworICAgIGRlZiB0ZXN0X2xvbmdyZXBydGV4dF9wYXNzKHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICByZXBvcnRzID0gdGVzdGRpci5ydW5pdGVtKCIiIgorICAgICAgICAgICAgZGVmIHRl
c3RfZnVuYygpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICBy
ZXAgPSByZXBvcnRzWzFdCisgICAgICAgIGFzc2VydCByZXAubG9uZ3JlcHJ0ZXh0ID09ICcnCisK
KyAgICBkZWYgdGVzdF9sb25ncmVwcnRleHRfZmFpbHVyZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgcmVwb3J0cyA9IHRlc3RkaXIucnVuaXRlbSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1
bmMoKToKKyAgICAgICAgICAgICAgICB4ID0gMQorICAgICAgICAgICAgICAgIGFzc2VydCB4ID09
IDQKKyAgICAgICAgIiIiKQorICAgICAgICByZXAgPSByZXBvcnRzWzFdCisgICAgICAgIGFzc2Vy
dCAnYXNzZXJ0IDEgPT0gNCcgaW4gcmVwLmxvbmdyZXBydGV4dAorCisgICAgZGVmIHRlc3RfY2Fw
dHVyZWRfdGV4dChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcmVwb3J0cyA9IHRlc3RkaXIucnVu
aXRlbSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIGltcG9ydCBz
eXMKKworICAgICAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgZml4KCk6
CisgICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgnc2V0dXA6IHN0ZG91dFxcbicpCisg
ICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgnc2V0dXA6IHN0ZGVyclxcbicpCisgICAg
ICAgICAgICAgICAgeWllbGQKKyAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCd0ZWFy
ZG93bjogc3Rkb3V0XFxuJykKKyAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCd0ZWFy
ZG93bjogc3RkZXJyXFxuJykKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorCisgICAgICAgICAg
ICBkZWYgdGVzdF9mdW5jKGZpeCk6CisgICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgn
Y2FsbDogc3Rkb3V0XFxuJykKKyAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCdjYWxs
OiBzdGRlcnJcXG4nKQorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICIiIikKKyAg
ICAgICAgc2V0dXAsIGNhbGwsIHRlYXJkb3duID0gcmVwb3J0cworICAgICAgICBhc3NlcnQgc2V0
dXAuY2Fwc3Rkb3V0ID09ICdzZXR1cDogc3Rkb3V0XG4nCisgICAgICAgIGFzc2VydCBjYWxsLmNh
cHN0ZG91dCA9PSAnc2V0dXA6IHN0ZG91dFxuY2FsbDogc3Rkb3V0XG4nCisgICAgICAgIGFzc2Vy
dCB0ZWFyZG93bi5jYXBzdGRvdXQgPT0gJ3NldHVwOiBzdGRvdXRcbmNhbGw6IHN0ZG91dFxudGVh
cmRvd246IHN0ZG91dFxuJworCisgICAgICAgIGFzc2VydCBzZXR1cC5jYXBzdGRlcnIgPT0gJ3Nl
dHVwOiBzdGRlcnJcbicKKyAgICAgICAgYXNzZXJ0IGNhbGwuY2Fwc3RkZXJyID09ICdzZXR1cDog
c3RkZXJyXG5jYWxsOiBzdGRlcnJcbicKKyAgICAgICAgYXNzZXJ0IHRlYXJkb3duLmNhcHN0ZGVy
ciA9PSAnc2V0dXA6IHN0ZGVyclxuY2FsbDogc3RkZXJyXG50ZWFyZG93bjogc3RkZXJyXG4nCisK
KyAgICBkZWYgdGVzdF9ub19jYXB0dXJlZF90ZXh0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBy
ZXBvcnRzID0gdGVzdGRpci5ydW5pdGVtKCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygp
OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXAgPSByZXBv
cnRzWzFdCisgICAgICAgIGFzc2VydCByZXAuY2Fwc3Rkb3V0ID09ICcnCisgICAgICAgIGFzc2Vy
dCByZXAuY2Fwc3RkZXJyID09ICcnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rl
c3RfcnVubmVyX3h1bml0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3J1bm5lcl94dW5p
dC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mYzkzMWY4NjcyMGFjMzkwM2JmYTIwNWI3ODg3YzRkZjZiNGU0MDdi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3J1bm5lcl94dW5p
dC5weQpAQCAtMCwwICsxLDMxOSBAQAorIiIiCisgdGVzdCBjb3JyZWN0IHNldHVwL3RlYXJkb3du
cyBhdAorIG1vZHVsZSwgY2xhc3MsIGFuZCBpbnN0YW5jZSBsZXZlbAorIiIiCitmcm9tIF9fZnV0
dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitp
bXBvcnQgcHl0ZXN0CisKKworZGVmIHRlc3RfbW9kdWxlX2FuZF9mdW5jdGlvbl9zZXR1cCh0ZXN0
ZGlyKToKKyAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW5zb3VyY2UoIiIiCisgICAgICAg
IG1vZGxldmVsID0gW10KKyAgICAgICAgZGVmIHNldHVwX21vZHVsZShtb2R1bGUpOgorICAgICAg
ICAgICAgYXNzZXJ0IG5vdCBtb2RsZXZlbAorICAgICAgICAgICAgbW9kdWxlLm1vZGxldmVsLmFw
cGVuZCg0MikKKworICAgICAgICBkZWYgdGVhcmRvd25fbW9kdWxlKG1vZHVsZSk6CisgICAgICAg
ICAgICBtb2RsZXZlbC5wb3AoKQorCisgICAgICAgIGRlZiBzZXR1cF9mdW5jdGlvbihmdW5jdGlv
bik6CisgICAgICAgICAgICBmdW5jdGlvbi5hbnN3ZXIgPSAxNworCisgICAgICAgIGRlZiB0ZWFy
ZG93bl9mdW5jdGlvbihmdW5jdGlvbik6CisgICAgICAgICAgICBkZWwgZnVuY3Rpb24uYW5zd2Vy
CisKKyAgICAgICAgZGVmIHRlc3RfbW9kbGV2ZWwoKToKKyAgICAgICAgICAgIGFzc2VydCBtb2Rs
ZXZlbFswXSA9PSA0MgorICAgICAgICAgICAgYXNzZXJ0IHRlc3RfbW9kbGV2ZWwuYW5zd2VyID09
IDE3CisKKyAgICAgICAgY2xhc3MgVGVzdEZyb21DbGFzcyhvYmplY3QpOgorICAgICAgICAgICAg
ZGVmIHRlc3RfbW9kdWxlKHNlbGYpOgorICAgICAgICAgICAgICAgIGFzc2VydCBtb2RsZXZlbFsw
XSA9PSA0MgorICAgICAgICAgICAgICAgIGFzc2VydCBub3QgaGFzYXR0cih0ZXN0X21vZGxldmVs
LCAnYW5zd2VyJykKKyAgICAiIiIpCisgICAgcmVwID0gcmVwcmVjLm1hdGNocmVwb3J0KCJ0ZXN0
X21vZGxldmVsIikKKyAgICBhc3NlcnQgcmVwLnBhc3NlZAorICAgIHJlcCA9IHJlcHJlYy5tYXRj
aHJlcG9ydCgidGVzdF9tb2R1bGUiKQorICAgIGFzc2VydCByZXAucGFzc2VkCisKKworZGVmIHRl
c3RfbW9kdWxlX3NldHVwX2ZhaWx1cmVfbm9fdGVhcmRvd24odGVzdGRpcik6CisgICAgcmVwcmVj
ID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNlKCIiIgorICAgICAgICB2YWx1ZXMgPSBbXQorICAg
ICAgICBkZWYgc2V0dXBfbW9kdWxlKG1vZHVsZSk6CisgICAgICAgICAgICB2YWx1ZXMuYXBwZW5k
KDEpCisgICAgICAgICAgICAwLzAKKworICAgICAgICBkZWYgdGVzdF9ub3RoaW5nKCk6CisgICAg
ICAgICAgICBwYXNzCisKKyAgICAgICAgZGVmIHRlYXJkb3duX21vZHVsZShtb2R1bGUpOgorICAg
ICAgICAgICAgdmFsdWVzLmFwcGVuZCgyKQorICAgICIiIikKKyAgICByZXByZWMuYXNzZXJ0b3V0
Y29tZShmYWlsZWQ9MSkKKyAgICBjYWxscyA9IHJlcHJlYy5nZXRjYWxscygicHl0ZXN0X3J1bnRl
c3Rfc2V0dXAiKQorICAgIGFzc2VydCBjYWxsc1swXS5pdGVtLm1vZHVsZS52YWx1ZXMgPT0gWzFd
CisKKworZGVmIHRlc3Rfc2V0dXBfZnVuY3Rpb25fZmFpbHVyZV9ub190ZWFyZG93bih0ZXN0ZGly
KToKKyAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW5zb3VyY2UoIiIiCisgICAgICAgIG1v
ZGxldmVsID0gW10KKyAgICAgICAgZGVmIHNldHVwX2Z1bmN0aW9uKGZ1bmN0aW9uKToKKyAgICAg
ICAgICAgIG1vZGxldmVsLmFwcGVuZCgxKQorICAgICAgICAgICAgMC8wCisKKyAgICAgICAgZGVm
IHRlYXJkb3duX2Z1bmN0aW9uKG1vZHVsZSk6CisgICAgICAgICAgICBtb2RsZXZlbC5hcHBlbmQo
MikKKworICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICBwYXNzCisgICAgIiIi
KQorICAgIGNhbGxzID0gcmVwcmVjLmdldGNhbGxzKCJweXRlc3RfcnVudGVzdF9zZXR1cCIpCisg
ICAgYXNzZXJ0IGNhbGxzWzBdLml0ZW0ubW9kdWxlLm1vZGxldmVsID09IFsxXQorCisKK2RlZiB0
ZXN0X2NsYXNzX3NldHVwKHRlc3RkaXIpOgorICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1
bnNvdXJjZSgiIiIKKyAgICAgICAgY2xhc3MgVGVzdFNpbXBsZUNsYXNzU2V0dXAob2JqZWN0KToK
KyAgICAgICAgICAgIGNsc2xldmVsID0gW10KKyAgICAgICAgICAgIGRlZiBzZXR1cF9jbGFzcyhj
bHMpOgorICAgICAgICAgICAgICAgIGNscy5jbHNsZXZlbC5hcHBlbmQoMjMpCisKKyAgICAgICAg
ICAgIGRlZiB0ZWFyZG93bl9jbGFzcyhjbHMpOgorICAgICAgICAgICAgICAgIGNscy5jbHNsZXZl
bC5wb3AoKQorCisgICAgICAgICAgICBkZWYgdGVzdF9jbGFzc2xldmVsKHNlbGYpOgorICAgICAg
ICAgICAgICAgIGFzc2VydCBzZWxmLmNsc2xldmVsWzBdID09IDIzCisKKyAgICAgICAgY2xhc3Mg
VGVzdEluaGVyaXRlZENsYXNzU2V0dXBTdGlsbFdvcmtzKFRlc3RTaW1wbGVDbGFzc1NldHVwKToK
KyAgICAgICAgICAgIGRlZiB0ZXN0X2NsYXNzbGV2ZWxfYW5vdGhlcnRpbWUoc2VsZik6CisgICAg
ICAgICAgICAgICAgYXNzZXJ0IHNlbGYuY2xzbGV2ZWwgPT0gWzIzXQorCisgICAgICAgIGRlZiB0
ZXN0X2NsZWFudXAoKToKKyAgICAgICAgICAgIGFzc2VydCBub3QgVGVzdFNpbXBsZUNsYXNzU2V0
dXAuY2xzbGV2ZWwKKyAgICAgICAgICAgIGFzc2VydCBub3QgVGVzdEluaGVyaXRlZENsYXNzU2V0
dXBTdGlsbFdvcmtzLmNsc2xldmVsCisgICAgIiIiKQorICAgIHJlcHJlYy5hc3NlcnRvdXRjb21l
KHBhc3NlZD0xICsgMiArIDEpCisKKworZGVmIHRlc3RfY2xhc3Nfc2V0dXBfZmFpbHVyZV9ub190
ZWFyZG93bih0ZXN0ZGlyKToKKyAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW5zb3VyY2Uo
IiIiCisgICAgICAgIGNsYXNzIFRlc3RTaW1wbGVDbGFzc1NldHVwKG9iamVjdCk6CisgICAgICAg
ICAgICBjbHNsZXZlbCA9IFtdCisgICAgICAgICAgICBkZWYgc2V0dXBfY2xhc3MoY2xzKToKKyAg
ICAgICAgICAgICAgICAwLzAKKworICAgICAgICAgICAgZGVmIHRlYXJkb3duX2NsYXNzKGNscyk6
CisgICAgICAgICAgICAgICAgY2xzLmNsc2xldmVsLmFwcGVuZCgxKQorCisgICAgICAgICAgICBk
ZWYgdGVzdF9jbGFzc2xldmVsKHNlbGYpOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAg
ICBkZWYgdGVzdF9jbGVhbnVwKCk6CisgICAgICAgICAgICBhc3NlcnQgbm90IFRlc3RTaW1wbGVD
bGFzc1NldHVwLmNsc2xldmVsCisgICAgIiIiKQorICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKGZh
aWxlZD0xLCBwYXNzZWQ9MSkKKworCitkZWYgdGVzdF9tZXRob2Rfc2V0dXAodGVzdGRpcik6Cisg
ICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNlKCIiIgorICAgICAgICBjbGFzcyBU
ZXN0U2V0dXBNZXRob2Qob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBzZXR1cF9tZXRob2Qoc2Vs
ZiwgbWV0aCk6CisgICAgICAgICAgICAgICAgc2VsZi5tZXRoc2V0dXAgPSBtZXRoCisgICAgICAg
ICAgICBkZWYgdGVhcmRvd25fbWV0aG9kKHNlbGYsIG1ldGgpOgorICAgICAgICAgICAgICAgIGRl
bCBzZWxmLm1ldGhzZXR1cAorCisgICAgICAgICAgICBkZWYgdGVzdF9zb21lKHNlbGYpOgorICAg
ICAgICAgICAgICAgIGFzc2VydCBzZWxmLm1ldGhzZXR1cCA9PSBzZWxmLnRlc3Rfc29tZQorCisg
ICAgICAgICAgICBkZWYgdGVzdF9vdGhlcihzZWxmKToKKyAgICAgICAgICAgICAgICBhc3NlcnQg
c2VsZi5tZXRoc2V0dXAgPT0gc2VsZi50ZXN0X290aGVyCisgICAgIiIiKQorICAgIHJlcHJlYy5h
c3NlcnRvdXRjb21lKHBhc3NlZD0yKQorCisKK2RlZiB0ZXN0X21ldGhvZF9zZXR1cF9mYWlsdXJl
X25vX3RlYXJkb3duKHRlc3RkaXIpOgorICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bnNv
dXJjZSgiIiIKKyAgICAgICAgY2xhc3MgVGVzdE1ldGhvZFNldHVwKG9iamVjdCk6CisgICAgICAg
ICAgICBjbHNsZXZlbCA9IFtdCisgICAgICAgICAgICBkZWYgc2V0dXBfbWV0aG9kKHNlbGYsIG1l
dGhvZCk6CisgICAgICAgICAgICAgICAgc2VsZi5jbHNsZXZlbC5hcHBlbmQoMSkKKyAgICAgICAg
ICAgICAgICAwLzAKKworICAgICAgICAgICAgZGVmIHRlYXJkb3duX21ldGhvZChzZWxmLCBtZXRo
b2QpOgorICAgICAgICAgICAgICAgIHNlbGYuY2xzbGV2ZWwuYXBwZW5kKDIpCisKKyAgICAgICAg
ICAgIGRlZiB0ZXN0X21ldGhvZChzZWxmKToKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAg
ICAgZGVmIHRlc3RfY2xlYW51cCgpOgorICAgICAgICAgICAgYXNzZXJ0IFRlc3RNZXRob2RTZXR1
cC5jbHNsZXZlbCA9PSBbMV0KKyAgICAiIiIpCisgICAgcmVwcmVjLmFzc2VydG91dGNvbWUoZmFp
bGVkPTEsIHBhc3NlZD0xKQorCisKK2RlZiB0ZXN0X21ldGhvZF9nZW5lcmF0b3Jfc2V0dXAodGVz
dGRpcik6CisgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNlKCIiIgorICAgICAg
ICBjbGFzcyBUZXN0U2V0dXBUZWFyZG93bk9uSW5zdGFuY2Uob2JqZWN0KToKKyAgICAgICAgICAg
IGRlZiBzZXR1cF9jbGFzcyhjbHMpOgorICAgICAgICAgICAgICAgIGNscy5jbGFzc3NldHVwID0g
VHJ1ZQorCisgICAgICAgICAgICBkZWYgc2V0dXBfbWV0aG9kKHNlbGYsIG1ldGhvZCk6CisgICAg
ICAgICAgICAgICAgc2VsZi5tZXRoc2V0dXAgPSBtZXRob2QKKworICAgICAgICAgICAgZGVmIHRl
c3RfZ2VuZXJhdGUoc2VsZik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYuY2xhc3NzZXR1
cAorICAgICAgICAgICAgICAgIGFzc2VydCBzZWxmLm1ldGhzZXR1cCA9PSBzZWxmLnRlc3RfZ2Vu
ZXJhdGUKKyAgICAgICAgICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlZCwgNQorICAgICAgICAg
ICAgICAgIHlpZWxkIHNlbGYuZ2VuZXJhdGVkLCAyCisKKyAgICAgICAgICAgIGRlZiBnZW5lcmF0
ZWQoc2VsZiwgdmFsdWUpOgorICAgICAgICAgICAgICAgIGFzc2VydCBzZWxmLmNsYXNzc2V0dXAK
KyAgICAgICAgICAgICAgICBhc3NlcnQgc2VsZi5tZXRoc2V0dXAgPT0gc2VsZi50ZXN0X2dlbmVy
YXRlCisgICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlID09IDUKKyAgICAiIiIpCisgICAgcmVw
cmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEsIGZhaWxlZD0xKQorCisKK2RlZiB0ZXN0X2Z1bmNf
Z2VuZXJhdG9yX3NldHVwKHRlc3RkaXIpOgorICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1
bnNvdXJjZSgiIiIKKyAgICAgICAgaW1wb3J0IHN5cworCisgICAgICAgIGRlZiBzZXR1cF9tb2R1
bGUobW9kKToKKyAgICAgICAgICAgIHByaW50ICgic2V0dXBfbW9kdWxlIikKKyAgICAgICAgICAg
IG1vZC54ID0gW10KKworICAgICAgICBkZWYgc2V0dXBfZnVuY3Rpb24oZnVuKToKKyAgICAgICAg
ICAgIHByaW50ICgic2V0dXBfZnVuY3Rpb24iKQorICAgICAgICAgICAgeC5hcHBlbmQoMSkKKwor
ICAgICAgICBkZWYgdGVhcmRvd25fZnVuY3Rpb24oZnVuKToKKyAgICAgICAgICAgIHByaW50ICgi
dGVhcmRvd25fZnVuY3Rpb24iKQorICAgICAgICAgICAgeC5wb3AoKQorCisgICAgICAgIGRlZiB0
ZXN0X29uZSgpOgorICAgICAgICAgICAgYXNzZXJ0IHggPT0gWzFdCisgICAgICAgICAgICBkZWYg
Y2hlY2soKToKKyAgICAgICAgICAgICAgICBwcmludCAoImNoZWNrIikKKyAgICAgICAgICAgICAg
ICBzeXMuc3RkZXJyLndyaXRlKCJlXFxuIikKKyAgICAgICAgICAgICAgICBhc3NlcnQgeCA9PSBb
MV0KKyAgICAgICAgICAgIHlpZWxkIGNoZWNrCisgICAgICAgICAgICBhc3NlcnQgeCA9PSBbMV0K
KyAgICAiIiIpCisgICAgcmVwID0gcmVwcmVjLm1hdGNocmVwb3J0KCJ0ZXN0X29uZSIsIG5hbWVz
PSJweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQiKQorICAgIGFzc2VydCByZXAucGFzc2VkCisKKwor
ZGVmIHRlc3RfbWV0aG9kX3NldHVwX3VzZXNfZnJlc2hfaW5zdGFuY2VzKHRlc3RkaXIpOgorICAg
IHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bnNvdXJjZSgiIiIKKyAgICAgICAgY2xhc3MgVGVz
dFNlbGZTdGF0ZTEob2JqZWN0KToKKyAgICAgICAgICAgIG1lbW9yeSA9IFtdCisgICAgICAgICAg
ICBkZWYgdGVzdF9oZWxsbyhzZWxmKToKKyAgICAgICAgICAgICAgICBzZWxmLm1lbW9yeS5hcHBl
bmQoc2VsZikKKworICAgICAgICAgICAgZGVmIHRlc3RfYWZ0ZXJoZWxsbyhzZWxmKToKKyAgICAg
ICAgICAgICAgICBhc3NlcnQgc2VsZiAhPSBzZWxmLm1lbW9yeVswXQorICAgICIiIikKKyAgICBy
ZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MiwgZmFpbGVkPTApCisKKworZGVmIHRlc3Rfc2V0
dXBfdGhhdF9za2lwc19jYWxsZWRhZ2Fpbih0ZXN0ZGlyKToKKyAgICBwID0gdGVzdGRpci5tYWtl
cHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGRlZiBzZXR1cF9tb2R1
bGUobW9kKToKKyAgICAgICAgICAgIHB5dGVzdC5za2lwKCJ4IikKKyAgICAgICAgZGVmIHRlc3Rf
ZnVuY3Rpb24xKCk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9u
MigpOgorICAgICAgICAgICAgcGFzcworICAgICIiIikKKyAgICByZXByZWMgPSB0ZXN0ZGlyLmlu
bGluZV9ydW4ocCkKKyAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShza2lwcGVkPTIpCisKKworZGVm
IHRlc3Rfc2V0dXBfZmFpbHNfYWdhaW5fb25fYWxsX3Rlc3RzKHRlc3RkaXIpOgorICAgIHAgPSB0
ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgZGVm
IHNldHVwX21vZHVsZShtb2QpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcig0MikKKyAg
ICAgICAgZGVmIHRlc3RfZnVuY3Rpb24xKCk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGRl
ZiB0ZXN0X2Z1bmN0aW9uMigpOgorICAgICAgICAgICAgcGFzcworICAgICIiIikKKyAgICByZXBy
ZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4ocCkKKyAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShmYWls
ZWQ9MikKKworCitkZWYgdGVzdF9zZXR1cF9mdW5jYXJnX3NldHVwX3doZW5fb3V0ZXJfc2NvcGVf
ZmFpbHModGVzdGRpcik6CisgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAg
aW1wb3J0IHB5dGVzdAorICAgICAgICBkZWYgc2V0dXBfbW9kdWxlKG1vZCk6CisgICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKDQyKQorICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAg
ZGVmIGhlbGxvKHJlcXVlc3QpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigieHl6NDMi
KQorICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbjEoaGVsbG8pOgorICAgICAgICAgICAgcGFzcwor
ICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbjIoaGVsbG8pOgorICAgICAgICAgICAgcGFzcworICAg
ICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwKQorICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICIqZnVuY3Rpb24xKiIsCisgICAgICAgICIqVmFs
dWVFcnJvcio0MioiLAorICAgICAgICAiKmZ1bmN0aW9uMioiLAorICAgICAgICAiKlZhbHVlRXJy
b3IqNDIqIiwKKyAgICAgICAgIioyIGVycm9yKiIKKyAgICBdKQorICAgIGFzc2VydCAieHl6NDMi
IG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCdhcmcnLCBbJycsICdhcmcnXSkKK2RlZiB0ZXN0X3NldHVwX3RlYXJkb3duX2Z1bmN0aW9uX2xl
dmVsX3dpdGhfb3B0aW9uYWxfYXJndW1lbnQodGVzdGRpciwgbW9ua2V5cGF0Y2gsIGFyZyk6Cisg
ICAgIiIicGFyYW1ldGVyIHRvIHNldHVwL3RlYXJkb3duIHh1bml0LXN0eWxlIGZ1bmN0aW9ucyBw
YXJhbWV0ZXIgaXMgbm93IG9wdGlvbmFsICgjMTcyOCkuIiIiCisgICAgaW1wb3J0IHN5cworICAg
IHRyYWNlX3NldHVwc190ZWFyZG93bnMgPSBbXQorICAgIG1vbmtleXBhdGNoLnNldGF0dHIoc3lz
LCAndHJhY2Vfc2V0dXBzX3RlYXJkb3ducycsIHRyYWNlX3NldHVwc190ZWFyZG93bnMsIHJhaXNp
bmc9RmFsc2UpCisgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0
IHB5dGVzdAorICAgICAgICBpbXBvcnQgc3lzCisKKyAgICAgICAgdHJhY2UgPSBzeXMudHJhY2Vf
c2V0dXBzX3RlYXJkb3ducy5hcHBlbmQKKworICAgICAgICBkZWYgc2V0dXBfbW9kdWxlKHthcmd9
KTogdHJhY2UoJ3NldHVwX21vZHVsZScpCisgICAgICAgIGRlZiB0ZWFyZG93bl9tb2R1bGUoe2Fy
Z30pOiB0cmFjZSgndGVhcmRvd25fbW9kdWxlJykKKworICAgICAgICBkZWYgc2V0dXBfZnVuY3Rp
b24oe2FyZ30pOiB0cmFjZSgnc2V0dXBfZnVuY3Rpb24nKQorICAgICAgICBkZWYgdGVhcmRvd25f
ZnVuY3Rpb24oe2FyZ30pOiB0cmFjZSgndGVhcmRvd25fZnVuY3Rpb24nKQorCisgICAgICAgIGRl
ZiB0ZXN0X2Z1bmN0aW9uXzEoKTogcGFzcworICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbl8yKCk6
IHBhc3MKKworICAgICAgICBjbGFzcyBUZXN0KG9iamVjdCk6CisgICAgICAgICAgICBkZWYgc2V0
dXBfbWV0aG9kKHNlbGYsIHthcmd9KTogdHJhY2UoJ3NldHVwX21ldGhvZCcpCisgICAgICAgICAg
ICBkZWYgdGVhcmRvd25fbWV0aG9kKHNlbGYsIHthcmd9KTogdHJhY2UoJ3RlYXJkb3duX21ldGhv
ZCcpCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhvZF8xKHNlbGYpOiBwYXNzCisgICAgICAg
ICAgICBkZWYgdGVzdF9tZXRob2RfMihzZWxmKTogcGFzcworICAgICIiIi5mb3JtYXQoYXJnPWFy
ZykpCisgICAgcmVzdWx0ID0gdGVzdGRpci5pbmxpbmVfcnVuKHApCisgICAgcmVzdWx0LmFzc2Vy
dG91dGNvbWUocGFzc2VkPTQpCisKKyAgICBleHBlY3RlZCA9IFsKKyAgICAgICAgJ3NldHVwX21v
ZHVsZScsCisKKyAgICAgICAgJ3NldHVwX2Z1bmN0aW9uJywKKyAgICAgICAgJ3RlYXJkb3duX2Z1
bmN0aW9uJywKKyAgICAgICAgJ3NldHVwX2Z1bmN0aW9uJywKKyAgICAgICAgJ3RlYXJkb3duX2Z1
bmN0aW9uJywKKworICAgICAgICAnc2V0dXBfbWV0aG9kJywKKyAgICAgICAgJ3RlYXJkb3duX21l
dGhvZCcsCisKKyAgICAgICAgJ3NldHVwX21ldGhvZCcsCisgICAgICAgICd0ZWFyZG93bl9tZXRo
b2QnLAorCisgICAgICAgICd0ZWFyZG93bl9tb2R1bGUnLAorICAgIF0KKyAgICBhc3NlcnQgdHJh
Y2Vfc2V0dXBzX3RlYXJkb3ducyA9PSBleHBlY3RlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy90ZXN0X3Nlc3Npb24ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfc2Vzc2lv
bi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45ZWMxM2Y1MjNlNjVhMGExODNmOGNhZTRjOGJiNjA5ZjNjM2RlZjg4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3Nlc3Npb24ucHkK
QEAgLTAsMCArMSwyNTUgQEAKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0
LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCBweXRlc3QKKworZnJvbSBfcHl0ZXN0
Lm1haW4gaW1wb3J0IEVYSVRfTk9URVNUU0NPTExFQ1RFRAorCisKK2NsYXNzIFNlc3Npb25UZXN0
cyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X2Jhc2ljX3Rlc3RpdGVtX2V2ZW50cyhzZWxmLCB0ZXN0
ZGlyKToKKyAgICAgICAgdGZpbGUgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAg
ICBkZWYgdGVzdF9vbmUoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBkZWYg
dGVzdF9vbmVfb25lKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X290aGVyKCk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigyMykKKyAg
ICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0
ZXN0X3R3byhzZWxmLCBzb21lYXJncyk6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4odGZpbGUpCisgICAg
ICAgIHBhc3NlZCwgc2tpcHBlZCwgZmFpbGVkID0gcmVwcmVjLmxpc3RvdXRjb21lcygpCisgICAg
ICAgIGFzc2VydCBsZW4oc2tpcHBlZCkgPT0gMAorICAgICAgICBhc3NlcnQgbGVuKHBhc3NlZCkg
PT0gMQorICAgICAgICBhc3NlcnQgbGVuKGZhaWxlZCkgPT0gMworCisgICAgICAgIGRlZiBlbmQo
eCk6CisgICAgICAgICAgICByZXR1cm4geC5ub2RlaWQuc3BsaXQoIjo6IilbLTFdCisKKyAgICAg
ICAgYXNzZXJ0IGVuZChmYWlsZWRbMF0pID09ICJ0ZXN0X29uZV9vbmUiCisgICAgICAgIGFzc2Vy
dCBlbmQoZmFpbGVkWzFdKSA9PSAidGVzdF9vdGhlciIKKyAgICAgICAgaXRlbXN0YXJ0ZWQgPSBy
ZXByZWMuZ2V0Y2FsbHMoInB5dGVzdF9pdGVtY29sbGVjdGVkIikKKyAgICAgICAgYXNzZXJ0IGxl
bihpdGVtc3RhcnRlZCkgPT0gNAorICAgICAgICAjIFhYWCBjaGVjayBmb3IgZmFpbGluZyBmdW5j
YXJnIHNldHVwCisgICAgICAgICMgY29scmVwb3J0cyA9IHJlcHJlYy5nZXRjYWxscygicHl0ZXN0
X2NvbGxlY3RyZXBvcnQiKQorICAgICAgICAjIGFzc2VydCBsZW4oY29scmVwb3J0cykgPT0gNAor
ICAgICAgICAjIGFzc2VydCBjb2xyZXBvcnRzWzFdLnJlcG9ydC5mYWlsZWQKKworICAgIGRlZiB0
ZXN0X25lc3RlZF9pbXBvcnRfZXJyb3Ioc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRmaWxlID0g
dGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IGltcG9ydF9mYWlscwor
ICAgICAgICAgICAgZGVmIHRlc3RfdGhpcygpOgorICAgICAgICAgICAgICAgIGFzc2VydCBpbXBv
cnRfZmFpbHMuYSA9PSAxCisgICAgICAgICIiIiwgaW1wb3J0X2ZhaWxzPSIiIgorICAgICAgICAg
ICAgaW1wb3J0IGRvZXNfbm90X3dvcmsKKyAgICAgICAgICAgIGEgPSAxCisgICAgICAgICIiIikK
KyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKHRmaWxlKQorICAgICAgICB2YWx1
ZXMgPSByZXByZWMuZ2V0ZmFpbGVkY29sbGVjdGlvbnMoKQorICAgICAgICBhc3NlcnQgbGVuKHZh
bHVlcykgPT0gMQorICAgICAgICBvdXQgPSBzdHIodmFsdWVzWzBdLmxvbmdyZXByKQorICAgICAg
ICBhc3NlcnQgb3V0LmZpbmQoJ2RvZXNfbm90X3dvcmsnKSAhPSAtMQorCisgICAgZGVmIHRlc3Rf
cmFpc2VzX291dHB1dChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5p
bmxpbmVfcnVuc291cmNlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAg
ICAgZGVmIHRlc3RfcmFpc2VzX2RvZXNudCgpOgorICAgICAgICAgICAgICAgIHB5dGVzdC5yYWlz
ZXMoVmFsdWVFcnJvciwgaW50LCAiMyIpCisgICAgICAgICIiIikKKyAgICAgICAgcGFzc2VkLCBz
a2lwcGVkLCBmYWlsZWQgPSByZXByZWMubGlzdG91dGNvbWVzKCkKKyAgICAgICAgYXNzZXJ0IGxl
bihmYWlsZWQpID09IDEKKyAgICAgICAgb3V0ID0gZmFpbGVkWzBdLmxvbmdyZXByLnJlcHJjcmFz
aC5tZXNzYWdlCisgICAgICAgIGlmIG5vdCBvdXQuZmluZCgiRElEIE5PVCBSQUlTRSIpICE9IC0x
OgorICAgICAgICAgICAgcHJpbnQob3V0KQorICAgICAgICAgICAgcHl0ZXN0LmZhaWwoImluY29y
cmVjdCByYWlzZXMoKSBvdXRwdXQiKQorCisgICAgZGVmIHRlc3RfZ2VuZXJhdG9yX3lpZWxkc19O
b25lKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW5z
b3VyY2UoIiIiCisgICAgICAgICAgICBkZWYgdGVzdF8xKCk6CisgICAgICAgICAgICAgICAgeWll
bGQgTm9uZQorICAgICAgICAiIiIpCisgICAgICAgIGZhaWx1cmVzID0gcmVwcmVjLmdldGZhaWxl
ZGNvbGxlY3Rpb25zKCkKKyAgICAgICAgb3V0ID0gZmFpbHVyZXNbMF0ubG9uZ3JlcHIucmVwcmNy
YXNoLm1lc3NhZ2UKKyAgICAgICAgaSA9IG91dC5maW5kKCdUeXBlRXJyb3InKQorICAgICAgICBh
c3NlcnQgaSAhPSAtMQorCisgICAgZGVmIHRlc3Rfc3ludGF4X2Vycm9yX21vZHVsZShzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuc291cmNlKCJ0aGlz
IGlzIHJlYWxseSBub3QgcHl0aG9uIikKKyAgICAgICAgdmFsdWVzID0gcmVwcmVjLmdldGZhaWxl
ZGNvbGxlY3Rpb25zKCkKKyAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDEKKyAgICAgICAg
b3V0ID0gc3RyKHZhbHVlc1swXS5sb25ncmVwcikKKyAgICAgICAgYXNzZXJ0IG91dC5maW5kKHN0
cignbm90IHB5dGhvbicpKSAhPSAtMQorCisgICAgZGVmIHRlc3RfZXhpdF9maXJzdF9wcm9ibGVt
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW5zb3Vy
Y2UoIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9vbmUoKTogYXNzZXJ0IDAKKyAgICAgICAgICAg
IGRlZiB0ZXN0X3R3bygpOiBhc3NlcnQgMAorICAgICAgICAiIiIsICctLWV4aXRmaXJzdCcpCisg
ICAgICAgIHBhc3NlZCwgc2tpcHBlZCwgZmFpbGVkID0gcmVwcmVjLmNvdW50b3V0Y29tZXMoKQor
ICAgICAgICBhc3NlcnQgZmFpbGVkID09IDEKKyAgICAgICAgYXNzZXJ0IHBhc3NlZCA9PSBza2lw
cGVkID09IDAKKworICAgIGRlZiB0ZXN0X21heGZhaWwoc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bnNvdXJjZSgiIiIKKyAgICAgICAgICAgIGRlZiB0
ZXN0X29uZSgpOiBhc3NlcnQgMAorICAgICAgICAgICAgZGVmIHRlc3RfdHdvKCk6IGFzc2VydCAw
CisgICAgICAgICAgICBkZWYgdGVzdF90aHJlZSgpOiBhc3NlcnQgMAorICAgICAgICAiIiIsICct
LW1heGZhaWw9MicpCisgICAgICAgIHBhc3NlZCwgc2tpcHBlZCwgZmFpbGVkID0gcmVwcmVjLmNv
dW50b3V0Y29tZXMoKQorICAgICAgICBhc3NlcnQgZmFpbGVkID09IDIKKyAgICAgICAgYXNzZXJ0
IHBhc3NlZCA9PSBza2lwcGVkID09IDAKKworICAgIGRlZiB0ZXN0X2Jyb2tlbl9yZXByKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAg
ICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgY2xhc3MgQnJva2VuUmVwcjEob2JqZWN0KToK
KyAgICAgICAgICAgICAgICBmb289MAorICAgICAgICAgICAgICAgIGRlZiBfX3JlcHJfXyhzZWxm
KToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJIYSBIYSBmb29sZWQgeW91
LCBJJ20gYSBicm9rZW4gcmVwcigpLiIpCisKKyAgICAgICAgICAgIGNsYXNzIFRlc3RCcm9rZW5D
bGFzcyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2V4cGxpY2l0X2JhZF9yZXBy
KHNlbGYpOgorICAgICAgICAgICAgICAgICAgICB0ID0gQnJva2VuUmVwcjEoKQorICAgICAgICAg
ICAgICAgICAgICBweXRlc3QucmFpc2VzKEV4Y2VwdGlvbiwgJ3JlcHIodCknKQorCisgICAgICAg
ICAgICAgICAgZGVmIHRlc3RfaW1wbGljaXRfYmFkX3JlcHIxKHNlbGYpOgorICAgICAgICAgICAg
ICAgICAgICB0ID0gQnJva2VuUmVwcjEoKQorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgdC5m
b28gPT0gMQorCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVf
cnVuKHApCisgICAgICAgIHBhc3NlZCwgc2tpcHBlZCwgZmFpbGVkID0gcmVwcmVjLmxpc3RvdXRj
b21lcygpCisgICAgICAgIGFzc2VydCBsZW4oZmFpbGVkKSA9PSAxCisgICAgICAgIG91dCA9IGZh
aWxlZFswXS5sb25ncmVwci5yZXByY3Jhc2gubWVzc2FnZQorICAgICAgICBhc3NlcnQgb3V0LmZp
bmQoIiIiW0V4Y2VwdGlvbigiSGEgSGEgZm9vbGVkIHlvdSwgSSdtIGEgYnJva2VuIHJlcHIoKS4i
KSByYWlzZWQgaW4gcmVwcigpXSIiIikgIT0gLTEgICMgJworCisgICAgZGVmIHRlc3Rfc2tpcF9m
aWxlX2J5X2NvbmZ0ZXN0KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoY29uZnRlc3Q9IiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBk
ZWYgcHl0ZXN0X2NvbGxlY3RfZmlsZSgpOgorICAgICAgICAgICAgICAgIHB5dGVzdC5za2lwKCJp
bnRlbnRpb25hbCIpCisgICAgICAgICIiIiwgdGVzdF9maWxlPSIiIgorICAgICAgICAgICAgZGVm
IHRlc3Rfb25lKCk6IHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICB0cnk6CisgICAgICAgICAg
ICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4odGVzdGRpci50bXBkaXIpCisgICAgICAgIGV4
Y2VwdCBweXRlc3Quc2tpcC5FeGNlcHRpb246CisgICAgICAgICAgICBweXRlc3QuZmFpbCgid3Jv
bmcgc2tpcHBlZCBjYXVnaHQiKQorICAgICAgICByZXBvcnRzID0gcmVwcmVjLmdldHJlcG9ydHMo
InB5dGVzdF9jb2xsZWN0cmVwb3J0IikKKyAgICAgICAgYXNzZXJ0IGxlbihyZXBvcnRzKSA9PSAx
CisgICAgICAgIGFzc2VydCByZXBvcnRzWzBdLnNraXBwZWQKKworCitjbGFzcyBUZXN0TmV3U2Vz
c2lvbihTZXNzaW9uVGVzdHMpOgorCisgICAgZGVmIHRlc3Rfb3JkZXJfb2ZfZXhlY3V0aW9uKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW5zb3VyY2Uo
IiIiCisgICAgICAgICAgICB2YWx1ZXMgPSBbXQorICAgICAgICAgICAgZGVmIHRlc3RfMSgpOgor
ICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoMSkKKyAgICAgICAgICAgIGRlZiB0ZXN0XzIo
KToKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKDIpCisgICAgICAgICAgICBkZWYgdGVz
dF8zKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlcyA9PSBbMSwyXQorICAgICAgICAg
ICAgY2xhc3MgVGVzdG15Z3JvdXAob2JqZWN0KToKKyAgICAgICAgICAgICAgICByZXNsaXN0ID0g
dmFsdWVzCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfMShzZWxmKToKKyAgICAgICAgICAgICAg
ICAgICAgc2VsZi5yZXNsaXN0LmFwcGVuZCgxKQorICAgICAgICAgICAgICAgIGRlZiB0ZXN0XzIo
c2VsZik6CisgICAgICAgICAgICAgICAgICAgIHNlbGYucmVzbGlzdC5hcHBlbmQoMikKKyAgICAg
ICAgICAgICAgICBkZWYgdGVzdF8zKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLnJl
c2xpc3QuYXBwZW5kKDMpCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfNChzZWxmKToKKyAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYucmVzbGlzdCA9PSBbMSwyLDEsMiwzXQorICAgICAg
ICAiIiIpCisgICAgICAgIHBhc3NlZCwgc2tpcHBlZCwgZmFpbGVkID0gcmVwcmVjLmNvdW50b3V0
Y29tZXMoKQorICAgICAgICBhc3NlcnQgZmFpbGVkID09IHNraXBwZWQgPT0gMAorICAgICAgICBh
c3NlcnQgcGFzc2VkID09IDcKKyAgICAgICAgIyBhbHNvIHRlc3QgbGlzdG5hbWVzKCkgaGVyZSAu
Li4KKworICAgIGRlZiB0ZXN0X2NvbGxlY3Rfb25seV93aXRoX3ZhcmlvdXNfc2l0dWF0aW9ucyhz
ZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAg
ICAgIHRlc3Rfb25lPSIiIgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X29uZSgpOgorICAgICAg
ICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCkKKworICAgICAgICAgICAgICAgIGNsYXNz
IFRlc3RYKG9iamVjdCk6CisgICAgICAgICAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhvZF9vbmUo
c2VsZik6CisgICAgICAgICAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgICAgICBj
bGFzcyBUZXN0WShUZXN0WCk6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAg
ICIiIiwKKyAgICAgICAgICAgIHRlc3RfdGhyZWU9Inh4eGRzYWRzYWRzYWRzYSIsCisgICAgICAg
ICAgICBfX2luaXRfXz0iIgorICAgICAgICApCisgICAgICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5s
aW5lX3J1bignLS1jb2xsZWN0LW9ubHknLCBwLmRpcnBhdGgoKSkKKworICAgICAgICBpdGVtc3Rh
cnRlZCA9IHJlcHJlYy5nZXRjYWxscygicHl0ZXN0X2l0ZW1jb2xsZWN0ZWQiKQorICAgICAgICBh
c3NlcnQgbGVuKGl0ZW1zdGFydGVkKSA9PSAzCisgICAgICAgIGFzc2VydCBub3QgcmVwcmVjLmdl
dHJlcG9ydHMoInB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydCIpCisgICAgICAgIHN0YXJ0ZWQgPSBy
ZXByZWMuZ2V0Y2FsbHMoInB5dGVzdF9jb2xsZWN0c3RhcnQiKQorICAgICAgICBmaW5pc2hlZCA9
IHJlcHJlYy5nZXRyZXBvcnRzKCJweXRlc3RfY29sbGVjdHJlcG9ydCIpCisgICAgICAgIGFzc2Vy
dCBsZW4oc3RhcnRlZCkgPT0gbGVuKGZpbmlzaGVkKQorICAgICAgICBhc3NlcnQgbGVuKHN0YXJ0
ZWQpID09IDcgICMgWFhYIGV4dHJhIFRvcENvbGxlY3RvcgorICAgICAgICBjb2xmYWlsID0gW3gg
Zm9yIHggaW4gZmluaXNoZWQgaWYgeC5mYWlsZWRdCisgICAgICAgIGFzc2VydCBsZW4oY29sZmFp
bCkgPT0gMQorCisgICAgZGVmIHRlc3RfbWludXNfeF9pbXBvcnRfZXJyb3Ioc2VsZiwgdGVzdGRp
cik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZShfX2luaXRfXz0iIikKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKHRlc3Rfb25lPSJ4eHh4IiwgdGVzdF90d289Inl5eXkiKQorICAgICAg
ICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oIi14IiwgdGVzdGRpci50bXBkaXIpCisgICAg
ICAgIGZpbmlzaGVkID0gcmVwcmVjLmdldHJlcG9ydHMoInB5dGVzdF9jb2xsZWN0cmVwb3J0IikK
KyAgICAgICAgY29sZmFpbCA9IFt4IGZvciB4IGluIGZpbmlzaGVkIGlmIHguZmFpbGVkXQorICAg
ICAgICBhc3NlcnQgbGVuKGNvbGZhaWwpID09IDEKKworICAgIGRlZiB0ZXN0X21pbnVzX3hfb3Zl
cnJpZGRlbl9ieV9tYXhmYWlsKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoX19pbml0X189IiIpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0X29uZT0i
eHh4eCIsIHRlc3RfdHdvPSJ5eXl5IiwgdGVzdF90aGlyZD0ienp6IikKKyAgICAgICAgcmVwcmVj
ID0gdGVzdGRpci5pbmxpbmVfcnVuKCIteCIsICItLW1heGZhaWw9MiIsIHRlc3RkaXIudG1wZGly
KQorICAgICAgICBmaW5pc2hlZCA9IHJlcHJlYy5nZXRyZXBvcnRzKCJweXRlc3RfY29sbGVjdHJl
cG9ydCIpCisgICAgICAgIGNvbGZhaWwgPSBbeCBmb3IgeCBpbiBmaW5pc2hlZCBpZiB4LmZhaWxl
ZF0KKyAgICAgICAgYXNzZXJ0IGxlbihjb2xmYWlsKSA9PSAyCisKKworZGVmIHRlc3RfcGx1Z2lu
X3NwZWNpZnkodGVzdGRpcik6CisgICAgcHl0ZXN0LnJhaXNlcyhJbXBvcnRFcnJvciwgIiIiCisg
ICAgICAgICAgICB0ZXN0ZGlyLnBhcnNlY29uZmlnKCItcCIsICJucXdlb3RleGlzdGVudCIpCisg
ICAgIiIiKQorICAgICMgcHl0ZXN0LnJhaXNlcyhJbXBvcnRFcnJvciwKKyAgICAjICAgICJjb25m
aWcuZG9fY29uZmlndXJlKGNvbmZpZykiCisgICAgIyApCisKKworZGVmIHRlc3RfcGx1Z2luX2Fs
cmVhZHlfZXhpc3RzKHRlc3RkaXIpOgorICAgIGNvbmZpZyA9IHRlc3RkaXIucGFyc2Vjb25maWco
Ii1wIiwgInRlcm1pbmFsIikKKyAgICBhc3NlcnQgY29uZmlnLm9wdGlvbi5wbHVnaW5zID09IFsn
dGVybWluYWwnXQorICAgIGNvbmZpZy5fZG9fY29uZmlndXJlKCkKKyAgICBjb25maWcuX2Vuc3Vy
ZV91bmNvbmZpZ3VyZSgpCisKKworZGVmIHRlc3RfZXhjbHVkZSh0ZXN0ZGlyKToKKyAgICBoZWxs
b2RpciA9IHRlc3RkaXIubWtkaXIoImhlbGxvIikKKyAgICBoZWxsb2Rpci5qb2luKCJ0ZXN0X2hl
bGxvLnB5Iikud3JpdGUoInggeSBzeW50YXhlcnJvciIpCisgICAgaGVsbG8yZGlyID0gdGVzdGRp
ci5ta2RpcigiaGVsbG8yIikKKyAgICBoZWxsbzJkaXIuam9pbigidGVzdF9oZWxsbzIucHkiKS53
cml0ZSgieCB5IHN5bnRheGVycm9yIikKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9vaz0i
ZGVmIHRlc3RfcGFzcygpOiBwYXNzIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgi
LS1pZ25vcmU9aGVsbG8iLCAiLS1pZ25vcmU9aGVsbG8yIikKKyAgICBhc3NlcnQgcmVzdWx0LnJl
dCA9PSAwCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsiKjEgcGFzc2VkKiJdKQor
CisKK2RlZiB0ZXN0X3Nlc3Npb25maW5pc2hfd2l0aF9zdGFydCh0ZXN0ZGlyKToKKyAgICB0ZXN0
ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgaW1wb3J0IG9zCisgICAgICAgIHZhbHVlcyA9
IFtdCisgICAgICAgIGRlZiBweXRlc3Rfc2Vzc2lvbnN0YXJ0KCk6CisgICAgICAgICAgICB2YWx1
ZXMuYXBwZW5kKG9zLmdldGN3ZCgpKQorICAgICAgICAgICAgb3MuY2hkaXIoIi4uIikKKworICAg
ICAgICBkZWYgcHl0ZXN0X3Nlc3Npb25maW5pc2goKToKKyAgICAgICAgICAgIGFzc2VydCB2YWx1
ZXNbMF0gPT0gb3MuZ2V0Y3dkKCkKKworICAgICIiIikKKyAgICByZXMgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgiLS1jb2xsZWN0LW9ubHkiKQorICAgIGFzc2VydCByZXMucmV0ID09IEVYSVRfTk9URVNU
U0NPTExFQ1RFRApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3NraXBwaW5n
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3NraXBwaW5nLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3
ODk0NDg3NmYzNWEzNTkxZWZjODViYzc4YTBhNDA0ZmE1NjM2M2IKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfc2tpcHBpbmcucHkKQEAgLTAsMCArMSwxMDY3IEBA
Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50
X2Z1bmN0aW9uCitpbXBvcnQgcHl0ZXN0CitpbXBvcnQgc3lzCisKK2Zyb20gX3B5dGVzdC5za2lw
cGluZyBpbXBvcnQgTWFya0V2YWx1YXRvciwgZm9sZGVkX3NraXBzLCBweXRlc3RfcnVudGVzdF9z
ZXR1cAorZnJvbSBfcHl0ZXN0LnJ1bm5lciBpbXBvcnQgcnVudGVzdHByb3RvY29sCisKKworY2xh
c3MgVGVzdEV2YWx1YXRvcihvYmplY3QpOgorICAgIGRlZiB0ZXN0X25vX21hcmtlcihzZWxmLCB0
ZXN0ZGlyKToKKyAgICAgICAgaXRlbSA9IHRlc3RkaXIuZ2V0aXRlbSgiZGVmIHRlc3RfZnVuYygp
OiBwYXNzIikKKyAgICAgICAgZXZhbHNraXBpZiA9IE1hcmtFdmFsdWF0b3IoaXRlbSwgJ3NraXBp
ZicpCisgICAgICAgIGFzc2VydCBub3QgZXZhbHNraXBpZgorICAgICAgICBhc3NlcnQgbm90IGV2
YWxza2lwaWYuaXN0cnVlKCkKKworICAgIGRlZiB0ZXN0X21hcmtlZF9ub19hcmdzKHNlbGYsIHRl
c3RkaXIpOgorICAgICAgICBpdGVtID0gdGVzdGRpci5nZXRpdGVtKCIiIgorICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnh5egorICAgICAgICAgICAg
ZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAg
ICAgICBldiA9IE1hcmtFdmFsdWF0b3IoaXRlbSwgJ3h5eicpCisgICAgICAgIGFzc2VydCBldgor
ICAgICAgICBhc3NlcnQgZXYuaXN0cnVlKCkKKyAgICAgICAgZXhwbCA9IGV2LmdldGV4cGxhbmF0
aW9uKCkKKyAgICAgICAgYXNzZXJ0IGV4cGwgPT0gIiIKKyAgICAgICAgYXNzZXJ0IG5vdCBldi5n
ZXQoInJ1biIsIEZhbHNlKQorCisgICAgZGVmIHRlc3RfbWFya2VkX29uZV9hcmcoc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIGl0ZW0gPSB0ZXN0ZGlyLmdldGl0ZW0oIiIiCisgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsueHl6KCJoYXNhdHRyKG9zLCAn
c2VwJykiKQorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAgICAgIHBh
c3MKKyAgICAgICAgIiIiKQorICAgICAgICBldiA9IE1hcmtFdmFsdWF0b3IoaXRlbSwgJ3h5eicp
CisgICAgICAgIGFzc2VydCBldgorICAgICAgICBhc3NlcnQgZXYuaXN0cnVlKCkKKyAgICAgICAg
ZXhwbCA9IGV2LmdldGV4cGxhbmF0aW9uKCkKKyAgICAgICAgYXNzZXJ0IGV4cGwgPT0gImNvbmRp
dGlvbjogaGFzYXR0cihvcywgJ3NlcCcpIgorCisgICAgQHB5dGVzdC5tYXJrLnNraXBpZignc3lz
LnZlcnNpb25faW5mb1swXSA+PSAzJykKKyAgICBkZWYgdGVzdF9tYXJrZWRfb25lX2FyZ191bmlj
b2RlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBpdGVtID0gdGVzdGRpci5nZXRpdGVtKCIiIgor
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnh5eih1
Imhhc2F0dHIob3MsICdzZXAnKSIpCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAg
ICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIGV2ID0gTWFya0V2YWx1YXRv
cihpdGVtLCAneHl6JykKKyAgICAgICAgYXNzZXJ0IGV2CisgICAgICAgIGFzc2VydCBldi5pc3Ry
dWUoKQorICAgICAgICBleHBsID0gZXYuZ2V0ZXhwbGFuYXRpb24oKQorICAgICAgICBhc3NlcnQg
ZXhwbCA9PSAiY29uZGl0aW9uOiBoYXNhdHRyKG9zLCAnc2VwJykiCisKKyAgICBkZWYgdGVzdF9t
YXJrZWRfb25lX2FyZ193aXRoX3JlYXNvbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgaXRlbSA9
IHRlc3RkaXIuZ2V0aXRlbSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAg
ICAgIEBweXRlc3QubWFyay54eXooImhhc2F0dHIob3MsICdzZXAnKSIsIGF0dHI9MiwgcmVhc29u
PSJoZWxsbyB3b3JsZCIpCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIGV2ID0gTWFya0V2YWx1YXRvcihpdGVt
LCAneHl6JykKKyAgICAgICAgYXNzZXJ0IGV2CisgICAgICAgIGFzc2VydCBldi5pc3RydWUoKQor
ICAgICAgICBleHBsID0gZXYuZ2V0ZXhwbGFuYXRpb24oKQorICAgICAgICBhc3NlcnQgZXhwbCA9
PSAiaGVsbG8gd29ybGQiCisgICAgICAgIGFzc2VydCBldi5nZXQoImF0dHIiKSA9PSAyCisKKyAg
ICBkZWYgdGVzdF9tYXJrZWRfb25lX2FyZ190d2ljZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
bGluZXMgPSBbCisgICAgICAgICAgICAnJydAcHl0ZXN0Lm1hcmsuc2tpcGlmKCJub3QgaGFzYXR0
cihvcywgJ211cmtzJykiKScnJywKKyAgICAgICAgICAgICcnJ0BweXRlc3QubWFyay5za2lwaWYo
Imhhc2F0dHIob3MsICdtdXJrcycpIiknJycKKyAgICAgICAgXQorICAgICAgICBmb3IgaSBpbiBy
YW5nZSgwLCAyKToKKyAgICAgICAgICAgIGl0ZW0gPSB0ZXN0ZGlyLmdldGl0ZW0oIiIiCisgICAg
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgICAgICVzCisgICAgICAgICAg
ICAgICAgJXMKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICAg
ICAgICAgIHBhc3MKKyAgICAgICAgICAgICIiIiAlIChsaW5lc1tpXSwgbGluZXNbKGkgKyAxKSAl
IDJdKSkKKyAgICAgICAgICAgIGV2ID0gTWFya0V2YWx1YXRvcihpdGVtLCAnc2tpcGlmJykKKyAg
ICAgICAgICAgIGFzc2VydCBldgorICAgICAgICAgICAgYXNzZXJ0IGV2LmlzdHJ1ZSgpCisgICAg
ICAgICAgICBleHBsID0gZXYuZ2V0ZXhwbGFuYXRpb24oKQorICAgICAgICAgICAgYXNzZXJ0IGV4
cGwgPT0gImNvbmRpdGlvbjogbm90IGhhc2F0dHIob3MsICdtdXJrcycpIgorCisgICAgZGVmIHRl
c3RfbWFya2VkX29uZV9hcmdfdHdpY2UyKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBpdGVtID0g
dGVzdGRpci5nZXRpdGVtKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAg
ICAgQHB5dGVzdC5tYXJrLnNraXBpZigiaGFzYXR0cihvcywgJ211cmtzJykiKQorICAgICAgICAg
ICAgQHB5dGVzdC5tYXJrLnNraXBpZigibm90IGhhc2F0dHIob3MsICdtdXJrcycpIikKKyAgICAg
ICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIi
IikKKyAgICAgICAgZXYgPSBNYXJrRXZhbHVhdG9yKGl0ZW0sICdza2lwaWYnKQorICAgICAgICBh
c3NlcnQgZXYKKyAgICAgICAgYXNzZXJ0IGV2LmlzdHJ1ZSgpCisgICAgICAgIGV4cGwgPSBldi5n
ZXRleHBsYW5hdGlvbigpCisgICAgICAgIGFzc2VydCBleHBsID09ICJjb25kaXRpb246IG5vdCBo
YXNhdHRyKG9zLCAnbXVya3MnKSIKKworICAgIGRlZiB0ZXN0X21hcmtlZF9za2lwX3dpdGhfbm90
X3N0cmluZyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgaXRlbSA9IHRlc3RkaXIuZ2V0aXRlbSgi
IiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5z
a2lwaWYoRmFsc2UpCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICAg
ICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIGV2ID0gTWFya0V2YWx1YXRvcihpdGVtLCAn
c2tpcGlmJykKKyAgICAgICAgZXhjID0gcHl0ZXN0LnJhaXNlcyhweXRlc3QuZmFpbC5FeGNlcHRp
b24sIGV2LmlzdHJ1ZSkKKyAgICAgICAgYXNzZXJ0ICIiIkZhaWxlZDogeW91IG5lZWQgdG8gc3Bl
Y2lmeSByZWFzb249U1RSSU5HIHdoZW4gdXNpbmcgYm9vbGVhbnMgYXMgY29uZGl0aW9ucy4iIiIg
aW4gZXhjLnZhbHVlLm1zZworCisgICAgZGVmIHRlc3Rfc2tpcGlmX2NsYXNzKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICBpdGVtLCA9IHRlc3RkaXIuZ2V0aXRlbXMoIiIiCisgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAg
ICAgICAgICAgICBweXRlc3RtYXJrID0gcHl0ZXN0Lm1hcmsuc2tpcGlmKCJjb25maWcuX2hhY2t4
eXoiKQorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoc2VsZik6CisgICAgICAgICAgICAg
ICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICBpdGVtLmNvbmZpZy5faGFja3h5eiA9
IDMKKyAgICAgICAgZXYgPSBNYXJrRXZhbHVhdG9yKGl0ZW0sICdza2lwaWYnKQorICAgICAgICBh
c3NlcnQgZXYuaXN0cnVlKCkKKyAgICAgICAgZXhwbCA9IGV2LmdldGV4cGxhbmF0aW9uKCkKKyAg
ICAgICAgYXNzZXJ0IGV4cGwgPT0gImNvbmRpdGlvbjogY29uZmlnLl9oYWNreHl6IgorCisKK2Ns
YXNzIFRlc3RYRmFpbChvYmplY3QpOgorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdz
dHJpY3QnLCBbVHJ1ZSwgRmFsc2VdKQorICAgIGRlZiB0ZXN0X3hmYWlsX3NpbXBsZShzZWxmLCB0
ZXN0ZGlyLCBzdHJpY3QpOgorICAgICAgICBpdGVtID0gdGVzdGRpci5nZXRpdGVtKCIiIgorICAg
ICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnhmYWlsKHN0
cmljdD0lcykKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAgICBh
c3NlcnQgMAorICAgICAgICAiIiIgJSBzdHJpY3QpCisgICAgICAgIHJlcG9ydHMgPSBydW50ZXN0
cHJvdG9jb2woaXRlbSwgbG9nPUZhbHNlKQorICAgICAgICBhc3NlcnQgbGVuKHJlcG9ydHMpID09
IDMKKyAgICAgICAgY2FsbHJlcG9ydCA9IHJlcG9ydHNbMV0KKyAgICAgICAgYXNzZXJ0IGNhbGxy
ZXBvcnQuc2tpcHBlZAorICAgICAgICBhc3NlcnQgY2FsbHJlcG9ydC53YXN4ZmFpbCA9PSAiIgor
CisgICAgZGVmIHRlc3RfeGZhaWxfeHBhc3NlZChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgaXRl
bSA9IHRlc3RkaXIuZ2V0aXRlbSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAg
ICAgICAgIEBweXRlc3QubWFyay54ZmFpbChyZWFzb249InRoaXMgaXMgYW4geGZhaWwiKQorICAg
ICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAgICAgIGFzc2VydCAxCisgICAg
ICAgICIiIikKKyAgICAgICAgcmVwb3J0cyA9IHJ1bnRlc3Rwcm90b2NvbChpdGVtLCBsb2c9RmFs
c2UpCisgICAgICAgIGFzc2VydCBsZW4ocmVwb3J0cykgPT0gMworICAgICAgICBjYWxscmVwb3J0
ID0gcmVwb3J0c1sxXQorICAgICAgICBhc3NlcnQgY2FsbHJlcG9ydC5wYXNzZWQKKyAgICAgICAg
YXNzZXJ0IGNhbGxyZXBvcnQud2FzeGZhaWwgPT0gInRoaXMgaXMgYW4geGZhaWwiCisKKyAgICBk
ZWYgdGVzdF94ZmFpbF94cGFzc2VkX3N0cmljdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgaXRl
bSA9IHRlc3RkaXIuZ2V0aXRlbSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAg
ICAgICAgIEBweXRlc3QubWFyay54ZmFpbChzdHJpY3Q9VHJ1ZSwgcmVhc29uPSJub3BlIikKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMQorICAg
ICAgICAiIiIpCisgICAgICAgIHJlcG9ydHMgPSBydW50ZXN0cHJvdG9jb2woaXRlbSwgbG9nPUZh
bHNlKQorICAgICAgICBhc3NlcnQgbGVuKHJlcG9ydHMpID09IDMKKyAgICAgICAgY2FsbHJlcG9y
dCA9IHJlcG9ydHNbMV0KKyAgICAgICAgYXNzZXJ0IGNhbGxyZXBvcnQuZmFpbGVkCisgICAgICAg
IGFzc2VydCBjYWxscmVwb3J0LmxvbmdyZXByID09ICJbWFBBU1Moc3RyaWN0KV0gbm9wZSIKKyAg
ICAgICAgYXNzZXJ0IG5vdCBoYXNhdHRyKGNhbGxyZXBvcnQsICJ3YXN4ZmFpbCIpCisKKyAgICBk
ZWYgdGVzdF94ZmFpbF9ydW5fYW55d2F5KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGly
Lm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBA
cHl0ZXN0Lm1hcmsueGZhaWwKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgMAorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzIoKToKKyAgICAgICAg
ICAgICAgICBweXRlc3QueGZhaWwoImhlbGxvIikKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1ydW54ZmFpbCIpCisgICAgICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKmRlZiB0ZXN0X2Z1bmMoKToqIiwKKyAg
ICAgICAgICAgICIqYXNzZXJ0IDAqIiwKKyAgICAgICAgICAgICIqMSBmYWlsZWQqMSBwYXNzKiIs
CisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF94ZmFpbF9ldmFsZmFsc2VfYnV0X2ZhaWxzKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICBpdGVtID0gdGVzdGRpci5nZXRpdGVtKCIiIgorICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnhmYWlsKCdGYWxz
ZScpCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0
IDAKKyAgICAgICAgIiIiKQorICAgICAgICByZXBvcnRzID0gcnVudGVzdHByb3RvY29sKGl0ZW0s
IGxvZz1GYWxzZSkKKyAgICAgICAgY2FsbHJlcG9ydCA9IHJlcG9ydHNbMV0KKyAgICAgICAgYXNz
ZXJ0IGNhbGxyZXBvcnQuZmFpbGVkCisgICAgICAgIGFzc2VydCBub3QgaGFzYXR0cihjYWxscmVw
b3J0LCAid2FzeGZhaWwiKQorICAgICAgICBhc3NlcnQgJ3hmYWlsJyBpbiBjYWxscmVwb3J0Lmtl
eXdvcmRzCisKKyAgICBkZWYgdGVzdF94ZmFpbF9ub3RfcmVwb3J0X2RlZmF1bHQoc2VsZiwgdGVz
dGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9vbmU9IiIiCisgICAg
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X3RoaXMoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAg
ICAgICAiIiIpCisgICAgICAgIHRlc3RkaXIucnVucHl0ZXN0KHAsICctdicpCisgICAgICAgICMg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIyAgICAiKkhJTlQqdXNlKi1y
KiIKKyAgICAgICAgIyBdKQorCisgICAgZGVmIHRlc3RfeGZhaWxfbm90X3J1bl94ZmFpbF9yZXBv
cnRpbmcoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUodGVz
dF9vbmU9IiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0
Lm1hcmsueGZhaWwocnVuPUZhbHNlLCByZWFzb249Im5vd2F5IikKKyAgICAgICAgICAgIGRlZiB0
ZXN0X3RoaXMoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAgICAgQHB5dGVz
dC5tYXJrLnhmYWlsKCJUcnVlIiwgcnVuPUZhbHNlKQorICAgICAgICAgICAgZGVmIHRlc3RfdGhp
c190cnVlKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgICAgIEBweXRlc3Qu
bWFyay54ZmFpbCgiRmFsc2UiLCBydW49RmFsc2UsIHJlYXNvbj0iaHVoIikKKyAgICAgICAgICAg
IGRlZiB0ZXN0X3RoaXNfZmFsc2UoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMQorICAgICAg
ICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAsICctcngnLCApCisg
ICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKnRlc3Rf
b25lKnRlc3RfdGhpcyoiLAorICAgICAgICAgICAgIipOT1RSVU4qbm93YXkiLAorICAgICAgICAg
ICAgIip0ZXN0X29uZSp0ZXN0X3RoaXNfdHJ1ZSoiLAorICAgICAgICAgICAgIipOT1RSVU4qY29u
ZGl0aW9uOipUcnVlKiIsCisgICAgICAgICAgICAiKjEgcGFzc2VkKiIsCisgICAgICAgIF0pCisK
KyAgICBkZWYgdGVzdF94ZmFpbF9ub3RfcnVuX25vX3NldHVwX3J1bihzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0X29uZT0iIiIKKyAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QubWFyay54ZmFpbChydW49RmFsc2Us
IHJlYXNvbj0iaGVsbG8iKQorICAgICAgICAgICAgZGVmIHRlc3RfdGhpcygpOgorICAgICAgICAg
ICAgICAgIGFzc2VydCAwCisgICAgICAgICAgICBkZWYgc2V0dXBfbW9kdWxlKG1vZCk6CisgICAg
ICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcig0MikKKyAgICAgICAgIiIiKQorICAgICAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwLCAnLXJ4JywgKQorICAgICAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIip0ZXN0X29uZSp0ZXN0X3RoaXMqIiwK
KyAgICAgICAgICAgICIqTk9UUlVOKmhlbGxvIiwKKyAgICAgICAgICAgICIqMSB4ZmFpbGVkKiIs
CisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF94ZmFpbF94cGFzcyhzZWxmLCB0ZXN0ZGlyKToK
KyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0X29uZT0iIiIKKyAgICAgICAgICAg
IGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QubWFyay54ZmFpbAorICAgICAgICAg
ICAgZGVmIHRlc3RfdGhhdCgpOgorICAgICAgICAgICAgICAgIGFzc2VydCAxCisgICAgICAgICIi
IikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCwgJy1yWCcpCisgICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKlhQQVNTKnRlc3Rf
dGhhdCoiLAorICAgICAgICAgICAgIioxIHhwYXNzZWQqIgorICAgICAgICBdKQorICAgICAgICBh
c3NlcnQgcmVzdWx0LnJldCA9PSAwCisKKyAgICBkZWYgdGVzdF94ZmFpbF9pbXBlcmF0aXZlKHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgZGVmIHRlc3RfdGhpcygpOgorICAgICAg
ICAgICAgICAgIHB5dGVzdC54ZmFpbCgiaGVsbG8iKQorICAgICAgICAiIiIpCisgICAgICAgIHJl
c3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHApCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcyhbCisgICAgICAgICAgICAiKjEgeGZhaWxlZCoiLAorICAgICAgICBdKQorICAgICAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwLCAiLXJ4IikKKyAgICAgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqWEZBSUwqdGVzdF90aGlzKiIsCisg
ICAgICAgICAgICAiKnJlYXNvbjoqaGVsbG8qIiwKKyAgICAgICAgXSkKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QocCwgIi0tcnVueGZhaWwiKQorICAgICAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoIioxIHBhc3MqIikKKworICAgIGRlZiB0ZXN0X3hmYWlsX2ltcGVy
YXRpdmVfaW5fc2V0dXBfZnVuY3Rpb24oc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0
ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAg
ICBkZWYgc2V0dXBfZnVuY3Rpb24oZnVuY3Rpb24pOgorICAgICAgICAgICAgICAgIHB5dGVzdC54
ZmFpbCgiaGVsbG8iKQorCisgICAgICAgICAgICBkZWYgdGVzdF90aGlzKCk6CisgICAgICAgICAg
ICAgICAgYXNzZXJ0IDAKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdChwKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAg
ICAgICAgIioxIHhmYWlsZWQqIiwKKyAgICAgICAgXSkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QocCwgIi1yeCIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cyhbCisgICAgICAgICAgICAiKlhGQUlMKnRlc3RfdGhpcyoiLAorICAgICAgICAgICAgIipyZWFz
b246KmhlbGxvKiIsCisgICAgICAgIF0pCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KHAsICItLXJ1bnhmYWlsIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KCIiIgorICAgICAgICAgICAgKmRlZiB0ZXN0X3RoaXMqCisgICAgICAgICAgICAqMSBmYWlsKgor
ICAgICAgICAiIiIpCisKKyAgICBkZWYgeHRlc3RfZHluYW1pY194ZmFpbF9zZXRfZHVyaW5nX3Nl
dHVwKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgor
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgZGVmIHNldHVwX2Z1bmN0aW9u
KGZ1bmN0aW9uKToKKyAgICAgICAgICAgICAgICBweXRlc3QubWFyay54ZmFpbChmdW5jdGlvbikK
KyAgICAgICAgICAgIGRlZiB0ZXN0X3RoaXMoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAor
ICAgICAgICAgICAgZGVmIHRlc3RfdGhhdCgpOgorICAgICAgICAgICAgICAgIGFzc2VydCAxCisg
ICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCwgJy1yeFgn
KQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIipY
RkFJTCp0ZXN0X3RoaXMqIiwKKyAgICAgICAgICAgICIqWFBBU1MqdGVzdF90aGF0KiIsCisgICAg
ICAgIF0pCisKKyAgICBkZWYgdGVzdF9keW5hbWljX3hmYWlsX25vX3J1bihzZWxmLCB0ZXN0ZGly
KToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9y
dCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICAgICAgZGVmIGFy
ZyhyZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmFwcGx5bWFya2VyKHB5dGVzdC5t
YXJrLnhmYWlsKHJ1bj1GYWxzZSkpCisgICAgICAgICAgICBkZWYgdGVzdF90aGlzKGFyZyk6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdChwLCAnLXJ4WCcpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcyhbCisgICAgICAgICAgICAiKlhGQUlMKnRlc3RfdGhpcyoiLAorICAgICAgICAgICAg
IipOT1RSVU4qIiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2R5bmFtaWNfeGZhaWxfc2V0
X2R1cmluZ19mdW5jYXJnX3NldHVwKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICBwID0gdGVzdGRp
ci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAg
QHB5dGVzdC5maXh0dXJlCisgICAgICAgICAgICBkZWYgYXJnKHJlcXVlc3QpOgorICAgICAgICAg
ICAgICAgIHJlcXVlc3QuYXBwbHltYXJrZXIocHl0ZXN0Lm1hcmsueGZhaWwpCisgICAgICAgICAg
ICBkZWYgdGVzdF90aGlzMihhcmcpOgorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAg
ICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCkKKyAgICAgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqMSB4ZmFpbGVkKiIsCisg
ICAgICAgIF0pCisKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2V4cGVjdGVkLCBhY3R1
YWwsIG1hdGNobGluZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoJ1R5cGVFcnJv
cicsICdUeXBlRXJyb3InLCAiKjEgeGZhaWxlZCoiKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgnKEF0dHJpYnV0ZUVycm9yLCBUeXBlRXJyb3IpJywgJ1R5cGVFcnJvcicsICIqMSB4
ZmFpbGVkKiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdUeXBlRXJyb3InLCAn
SW5kZXhFcnJvcicsICIqMSBmYWlsZWQqIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoJyhBdHRyaWJ1dGVFcnJvciwgVHlwZUVycm9yKScsICdJbmRleEVycm9yJywgIioxIGZhaWxl
ZCoiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0pCisgICAgZGVmIHRlc3RfeGZh
aWxfcmFpc2VzKHNlbGYsIGV4cGVjdGVkLCBhY3R1YWwsIG1hdGNobGluZSwgdGVzdGRpcik6Cisg
ICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwocmFpc2VzPSVzKQorICAgICAgICAg
ICAgZGVmIHRlc3RfcmFpc2VzKCk6CisgICAgICAgICAgICAgICAgcmFpc2UgJXMoKQorICAgICAg
ICAiIiIgJSAoZXhwZWN0ZWQsIGFjdHVhbCkpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KHApCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAg
ICAgICBtYXRjaGxpbmUsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9zdHJpY3Rfc2FuaXR5
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICAiIiJzYW5pdHkgY2hlY2sgZm9yIHhmYWlsKHN0cmlj
dD1UcnVlKTogYSBmYWlsaW5nIHRlc3Qgc2hvdWxkIGJlaGF2ZQorICAgICAgICBleGFjdGx5IGxp
a2UgYSBub3JtYWwgeGZhaWwuCisgICAgICAgICIiIgorICAgICAgICBwID0gdGVzdGRpci5tYWtl
cHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVz
dC5tYXJrLnhmYWlsKHJlYXNvbj0ndW5zdXBwb3J0ZWQgZmVhdHVyZScsIHN0cmljdD1UcnVlKQor
ICAgICAgICAgICAgZGVmIHRlc3RfZm9vKCk6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAg
ICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwLCAnLXJ4WCcp
CisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAnKlhG
QUlMKicsCisgICAgICAgICAgICAnKnVuc3VwcG9ydGVkIGZlYXR1cmUqJywKKyAgICAgICAgXSkK
KyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCdzdHJpY3QnLCBbVHJ1ZSwgRmFsc2VdKQorICAgIGRlZiB0ZXN0X3N0cmljdF94ZmFp
bChzZWxmLCB0ZXN0ZGlyLCBzdHJpY3QpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxl
KCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgICAgICBAcHl0ZXN0Lm1h
cmsueGZhaWwocmVhc29uPSd1bnN1cHBvcnRlZCBmZWF0dXJlJywgc3RyaWN0PSVzKQorICAgICAg
ICAgICAgZGVmIHRlc3RfZm9vKCk6CisgICAgICAgICAgICAgICAgd2l0aCBvcGVuKCdmb29fZXhl
Y3V0ZWQnLCAndycpOiBwYXNzICAjIG1ha2Ugc3VyZSB0ZXN0IGV4ZWN1dGVzCisgICAgICAgICIi
IiAlIHN0cmljdCkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCwgJy1yeFgn
KQorICAgICAgICBpZiBzdHJpY3Q6CisgICAgICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hf
bGluZXMoWworICAgICAgICAgICAgICAgICcqdGVzdF9mb28qJywKKyAgICAgICAgICAgICAgICAn
KlhQQVNTKHN0cmljdCkqdW5zdXBwb3J0ZWQgZmVhdHVyZSonLAorICAgICAgICAgICAgXSkKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisg
ICAgICAgICAgICAgICAgJyp0ZXN0X3N0cmljdF94ZmFpbConLAorICAgICAgICAgICAgICAgICdY
UEFTUyB0ZXN0X3N0cmljdF94ZmFpbC5weTo6dGVzdF9mb28gdW5zdXBwb3J0ZWQgZmVhdHVyZScs
CisgICAgICAgICAgICBdKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAoMSBpZiBzdHJp
Y3QgZWxzZSAwKQorICAgICAgICBhc3NlcnQgdGVzdGRpci50bXBkaXIuam9pbignZm9vX2V4ZWN1
dGVkJykuaXNmaWxlKCkKKworICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnc3RyaWN0Jywg
W1RydWUsIEZhbHNlXSkKKyAgICBkZWYgdGVzdF9zdHJpY3RfeGZhaWxfY29uZGl0aW9uKHNlbGYs
IHRlc3RkaXIsIHN0cmljdCk6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRlc3QubWFyay54ZmFp
bChGYWxzZSwgcmVhc29uPSd1bnN1cHBvcnRlZCBmZWF0dXJlJywgc3RyaWN0PSVzKQorICAgICAg
ICAgICAgZGVmIHRlc3RfZm9vKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIg
JSBzdHJpY3QpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAsICctcnhYJykK
KyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCcqMSBwYXNzZWQqJykKKyAgICAg
ICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCdzdHJpY3QnLCBbVHJ1ZSwgRmFsc2VdKQorICAgIGRlZiB0ZXN0X3hmYWlsX2NvbmRpdGlvbl9r
ZXl3b3JkKHNlbGYsIHRlc3RkaXIsIHN0cmljdCk6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2Vw
eWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgICAgIEBweXRl
c3QubWFyay54ZmFpbChjb25kaXRpb249RmFsc2UsIHJlYXNvbj0ndW5zdXBwb3J0ZWQgZmVhdHVy
ZScsIHN0cmljdD0lcykKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbygpOgorICAgICAgICAgICAg
ICAgIHBhc3MKKyAgICAgICAgIiIiICUgc3RyaWN0KQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdChwLCAnLXJ4WCcpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cygnKjEgcGFzc2VkKicpCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKworICAgIEBw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSgnc3RyaWN0X3ZhbCcsIFsndHJ1ZScsICdmYWxzZSddKQor
ICAgIGRlZiB0ZXN0X3N0cmljdF94ZmFpbF9kZWZhdWx0X2Zyb21fZmlsZShzZWxmLCB0ZXN0ZGly
LCBzdHJpY3RfdmFsKToKKyAgICAgICAgdGVzdGRpci5tYWtlaW5pKCcnJworICAgICAgICAgICAg
W3B5dGVzdF0KKyAgICAgICAgICAgIHhmYWlsX3N0cmljdCA9ICVzCisgICAgICAgICcnJyAlIHN0
cmljdF92YWwpCisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwocmVhc29uPSd1
bnN1cHBvcnRlZCBmZWF0dXJlJykKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbygpOgorICAgICAg
ICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1
bnB5dGVzdChwLCAnLXJ4WCcpCisgICAgICAgIHN0cmljdCA9IHN0cmljdF92YWwgPT0gJ3RydWUn
CisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygnKjEgZmFpbGVkKicgaWYgc3Ry
aWN0IGVsc2UgJyoxIHhwYXNzZWQqJykKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gKDEg
aWYgc3RyaWN0IGVsc2UgMCkKKworCitjbGFzcyBUZXN0WEZhaWx3aXRoU2V0dXBUZWFyZG93bihv
YmplY3QpOgorICAgIGRlZiB0ZXN0X2ZhaWxpbmdfc2V0dXBfaXNzdWU5KHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0
ZXN0CisgICAgICAgICAgICBkZWYgc2V0dXBfZnVuY3Rpb24oZnVuYyk6CisgICAgICAgICAgICAg
ICAgYXNzZXJ0IDAKKworICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnhmYWlsCisgICAgICAgICAg
ICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisg
ICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqMSB4ZmFpbCoiLAorICAgICAgICBdKQor
CisgICAgZGVmIHRlc3RfZmFpbGluZ190ZWFyZG93bl9pc3N1ZTkoc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QK
KyAgICAgICAgICAgIGRlZiB0ZWFyZG93bl9mdW5jdGlvbihmdW5jKToKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgMAorCisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwKKyAgICAgICAgICAg
IGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIioxIHhmYWlsKiIsCisgICAgICAgIF0pCisK
KworY2xhc3MgVGVzdFNraXAob2JqZWN0KToKKyAgICBkZWYgdGVzdF9za2lwX2NsYXNzKHNlbGYs
IHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBp
bXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsuc2tpcAorICAgICAgICAgICAg
Y2xhc3MgVGVzdFNvbWV0aGluZyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Zv
byhzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgICAgIGRlZiB0
ZXN0X2JhcihzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgICAgICBk
ZWYgdGVzdF9iYXooKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAg
ICAgcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICAgICAgcmVjLmFzc2VydG91dGNvbWUo
c2tpcHBlZD0yLCBwYXNzZWQ9MSkKKworICAgIGRlZiB0ZXN0X3NraXBzX29uX2ZhbHNlX3N0cmlu
ZyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnNraXAoJ0ZhbHNl
JykKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbygpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgIiIiKQorICAgICAgICByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgICAgICBy
ZWMuYXNzZXJ0b3V0Y29tZShza2lwcGVkPTEpCisKKyAgICBkZWYgdGVzdF9hcmdfYXNfcmVhc29u
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsuc2tpcCgndGVzdGlu
ZyBzdHVmZicpCisgICAgICAgICAgICBkZWYgdGVzdF9iYXIoKToKKyAgICAgICAgICAgICAgICBw
YXNzCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoJy1y
cycpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAi
KnRlc3Rpbmcgc3R1ZmYqIiwKKyAgICAgICAgICAgICIqMSBza2lwcGVkKiIsCisgICAgICAgIF0p
CisKKyAgICBkZWYgdGVzdF9za2lwX25vX3JlYXNvbihzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAg
ICAgICAgQHB5dGVzdC5tYXJrLnNraXAKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbygpOgorICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgnLXJzJykKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsK
KyAgICAgICAgICAgICIqdW5jb25kaXRpb25hbCBza2lwKiIsCisgICAgICAgICAgICAiKjEgc2tp
cHBlZCoiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3Rfc2tpcF93aXRoX3JlYXNvbihzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAg
aW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnNraXAocmVhc29uPSJmb3Ig
bG9seiIpCisgICAgICAgICAgICBkZWYgdGVzdF9iYXIoKToKKyAgICAgICAgICAgICAgICBwYXNz
CisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoJy1ycycp
CisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKmZv
ciBsb2x6KiIsCisgICAgICAgICAgICAiKjEgc2tpcHBlZCoiLAorICAgICAgICBdKQorCisgICAg
ZGVmIHRlc3Rfb25seV9za2lwc19tYXJrZWRfdGVzdChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAg
dGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAg
ICAgICAgQHB5dGVzdC5tYXJrLnNraXAKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZvbygpOgorICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5za2lwKHJlYXNvbj0i
bm90aGluZyBpbiBwYXJ0aWN1bGFyIikKKyAgICAgICAgICAgIGRlZiB0ZXN0X2JhcigpOgorICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiB0ZXN0X2JheigpOgorICAgICAgICAg
ICAgICAgIGFzc2VydCBUcnVlCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoJy1ycycpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
CisgICAgICAgICAgICAiKm5vdGhpbmcgaW4gcGFydGljdWxhcioiLAorICAgICAgICAgICAgIiox
IHBhc3NlZCoyIHNraXBwZWQqIiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X3N0cmljdF9h
bmRfc2tpcChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgor
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnNraXAK
KyAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKCk6CisgICAgICAgICAgICAgICAgcGFzcworICAg
ICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcnMiKQorICAg
ICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIip1bmNvbmRp
dGlvbmFsIHNraXAqIiwKKyAgICAgICAgICAgICIqMSBza2lwcGVkKiIsCisgICAgICAgIF0pCisK
KworY2xhc3MgVGVzdFNraXBpZihvYmplY3QpOgorICAgIGRlZiB0ZXN0X3NraXBpZl9jb25kaXRp
b25hbChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgaXRlbSA9IHRlc3RkaXIuZ2V0aXRlbSgiIiIK
KyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5za2lw
aWYoImhhc2F0dHIob3MsICdzZXAnKSIpCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6Cisg
ICAgICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpICAjIG5vcWEKKyAgICAgICAgeCA9IHB5
dGVzdC5yYWlzZXMocHl0ZXN0LnNraXAuRXhjZXB0aW9uLCBsYW1iZGE6CisgICAgICAgICAgICAg
ICAgICAgICAgICAgIHB5dGVzdF9ydW50ZXN0X3NldHVwKGl0ZW0pKQorICAgICAgICBhc3NlcnQg
eC52YWx1ZS5tc2cgPT0gImNvbmRpdGlvbjogaGFzYXR0cihvcywgJ3NlcCcpIgorCisgICAgQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdwYXJhbXMnLCBbCisgICAgICAgICciaGFzYXR0cihzeXMs
IFwncGxhdGZvcm1cJykiJywKKyAgICAgICAgJ1RydWUsIHJlYXNvbj0iaW52YWxpZCBwbGF0Zm9y
bSInLAorICAgIF0pCisgICAgZGVmIHRlc3Rfc2tpcGlmX3JlcG9ydGluZyhzZWxmLCB0ZXN0ZGly
LCBwYXJhbXMpOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKHRlc3RfZm9vPSIiIgor
ICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnNraXBp
ZiglKHBhcmFtcylzKQorICAgICAgICAgICAgZGVmIHRlc3RfdGhhdCgpOgorICAgICAgICAgICAg
ICAgIGFzc2VydCAwCisgICAgICAgICIiIiAlIGRpY3QocGFyYW1zPXBhcmFtcykpCisgICAgICAg
IHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAsICctcycsICctcnMnKQorICAgICAgICByZXN1
bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIipTS0lQKjEqdGVzdF9mb28u
cHkqcGxhdGZvcm0qIiwKKyAgICAgICAgICAgICIqMSBza2lwcGVkKiIKKyAgICAgICAgXSkKKyAg
ICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCdtYXJrZXIsIG1zZzEsIG1zZzInLCBbCisgICAgICAgICgnc2tpcGlmJywgJ1NLSVAnLCAn
c2tpcHBlZCcpLAorICAgICAgICAoJ3hmYWlsJywgJ1hQQVNTJywgJ3hwYXNzZWQnKSwKKyAgICBd
KQorICAgIGRlZiB0ZXN0X3NraXBpZl9yZXBvcnRpbmdfbXVsdGlwbGUoc2VsZiwgdGVzdGRpciwg
bWFya2VyLCBtc2cxLCBtc2cyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKHRlc3RfZm9v
PSIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgQHB5dGVzdC5tYXJr
LnttYXJrZXJ9KEZhbHNlLCByZWFzb249J2ZpcnN0X2NvbmRpdGlvbicpCisgICAgICAgICAgICBA
cHl0ZXN0Lm1hcmsue21hcmtlcn0oVHJ1ZSwgcmVhc29uPSdzZWNvbmRfY29uZGl0aW9uJykKKyAg
ICAgICAgICAgIGRlZiB0ZXN0X2Zvb2JhcigpOgorICAgICAgICAgICAgICAgIGFzc2VydCAxCisg
ICAgICAgICIiIi5mb3JtYXQobWFya2VyPW1hcmtlcikpCisgICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCctcycsICctcnN4WCcpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcyhbCisgICAgICAgICAgICAiKnttc2cxfSp0ZXN0X2Zvby5weSpzZWNvbmRfY29uZGl0
aW9uKiIuZm9ybWF0KG1zZzE9bXNnMSksCisgICAgICAgICAgICAiKjEge21zZzJ9KiIuZm9ybWF0
KG1zZzI9bXNnMiksCisgICAgICAgIF0pCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAK
KworCitkZWYgdGVzdF9za2lwX25vdF9yZXBvcnRfZGVmYXVsdCh0ZXN0ZGlyKToKKyAgICBwID0g
dGVzdGRpci5tYWtlcHlmaWxlKHRlc3Rfb25lPSIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0Cisg
ICAgICAgIGRlZiB0ZXN0X3RoaXMoKToKKyAgICAgICAgICAgIHB5dGVzdC5za2lwKCJoZWxsbyIp
CisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHAsICctdicpCisgICAg
cmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIyAiKkhJTlQqdXNlKi1yKiIs
CisgICAgICAgICIqMSBza2lwcGVkKiIsCisgICAgXSkKKworCitkZWYgdGVzdF9za2lwaWZfY2xh
c3ModGVzdGRpcik6CisgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1w
b3J0IHB5dGVzdAorCisgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAgICAg
ICAgcHl0ZXN0bWFyayA9IHB5dGVzdC5tYXJrLnNraXBpZigiVHJ1ZSIpCisgICAgICAgICAgICBk
ZWYgdGVzdF90aGF0KHNlbGYpOgorICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICAg
ICBkZWYgdGVzdF90aG91Z2goc2VsZik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAi
IiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocCkKKyAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKjIgc2tpcHBlZCoiCisgICAgXSkKKworCitkZWYg
dGVzdF9za2lwX3JlYXNvbnNfZm9sZGluZygpOgorICAgIHBhdGggPSAieHl6IgorICAgIGxpbmVu
byA9IDMKKyAgICBtZXNzYWdlID0gImp1c3RzbyIKKyAgICBsb25ncmVwciA9IChwYXRoLCBsaW5l
bm8sIG1lc3NhZ2UpCisKKyAgICBjbGFzcyBYKG9iamVjdCk6CisgICAgICAgIHBhc3MKKyAgICBl
djEgPSBYKCkKKyAgICBldjEud2hlbiA9ICJleGVjdXRlIgorICAgIGV2MS5za2lwcGVkID0gVHJ1
ZQorICAgIGV2MS5sb25ncmVwciA9IGxvbmdyZXByCisKKyAgICBldjIgPSBYKCkKKyAgICBldjIu
d2hlbiA9ICJleGVjdXRlIgorICAgIGV2Mi5sb25ncmVwciA9IGxvbmdyZXByCisgICAgZXYyLnNr
aXBwZWQgPSBUcnVlCisKKyAgICAjIGV2MyBtaWdodCBiZSBhIGNvbGxlY3Rpb24gcmVwb3J0Cisg
ICAgZXYzID0gWCgpCisgICAgZXYzLmxvbmdyZXByID0gbG9uZ3JlcHIKKyAgICBldjMuc2tpcHBl
ZCA9IFRydWUKKworICAgIHZhbHVlcyA9IGZvbGRlZF9za2lwcyhbZXYxLCBldjIsIGV2M10pCisg
ICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDEKKyAgICBudW0sIGZzcGF0aCwgbGluZW5vLCByZWFz
b24gPSB2YWx1ZXNbMF0KKyAgICBhc3NlcnQgbnVtID09IDMKKyAgICBhc3NlcnQgZnNwYXRoID09
IHBhdGgKKyAgICBhc3NlcnQgbGluZW5vID09IGxpbmVubworICAgIGFzc2VydCByZWFzb24gPT0g
bWVzc2FnZQorCisKK2RlZiB0ZXN0X3NraXBwZWRfcmVhc29uc19mdW5jdGlvbmFsKHRlc3RkaXIp
OgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgdGVzdF9vbmU9IiIiCisgICAgICAg
ICAgICBmcm9tIGNvbmZ0ZXN0IGltcG9ydCBkb3NraXAKKyAgICAgICAgICAgIGRlZiBzZXR1cF9m
dW5jdGlvbihmdW5jKToKKyAgICAgICAgICAgICAgICBkb3NraXAoKQorICAgICAgICAgICAgZGVm
IHRlc3RfZnVuYygpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGNsYXNzIFRl
c3RDbGFzcyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhvZChzZWxmKToK
KyAgICAgICAgICAgICAgICAgICAgZG9za2lwKCkKKyAgICAgICAiIiIsCisgICAgICAgIGNvbmZ0
ZXN0PSIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgZGVmIGRvc2tp
cCgpOgorICAgICAgICAgICAgICAgIHB5dGVzdC5za2lwKCd0ZXN0JykKKyAgICAgICAgIiIiCisg
ICAgKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctcnMnKQorICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICIqU0tJUCoyKmNvbmZ0ZXN0LnB5OjQ6IHRl
c3QiLAorICAgIF0pCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisKK2RlZiB0ZXN0X3Nr
aXBwZWRfZm9sZGluZyh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoCisgICAgICAg
IHRlc3Rfb25lPSIiIgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgcHl0
ZXN0bWFyayA9IHB5dGVzdC5tYXJrLnNraXAoIkZvbGRpbmciKQorICAgICAgICAgICAgZGVmIHNl
dHVwX2Z1bmN0aW9uKGZ1bmMpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBjbGFzcyBU
ZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9tZXRob2Qoc2VsZik6
CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAiIiIsCisgICAgKQorICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCctcnMnKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcyhbCisgICAgICAgICIqU0tJUCoyKnRlc3Rfb25lLnB5OiBGb2xkaW5nIgorICAgIF0pCisg
ICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisKK2RlZiB0ZXN0X3JlcG9ydGNoYXJzKHRlc3Rk
aXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IHB5dGVzdAor
ICAgICAgICBkZWYgdGVzdF8xKCk6CisgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICBAcHl0
ZXN0Lm1hcmsueGZhaWwKKyAgICAgICAgZGVmIHRlc3RfMigpOgorICAgICAgICAgICAgYXNzZXJ0
IDAKKyAgICAgICAgQHB5dGVzdC5tYXJrLnhmYWlsCisgICAgICAgIGRlZiB0ZXN0XzMoKToKKyAg
ICAgICAgICAgIHBhc3MKKyAgICAgICAgZGVmIHRlc3RfNCgpOgorICAgICAgICAgICAgcHl0ZXN0
LnNraXAoImZvdXIiKQorICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgi
LXJmeFhzIikKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiRkFJ
TCp0ZXN0XzEqIiwKKyAgICAgICAgIlhGQUlMKnRlc3RfMioiLAorICAgICAgICAiWFBBU1MqdGVz
dF8zKiIsCisgICAgICAgICJTS0lQKmZvdXIqIiwKKyAgICBdKQorCisKK2RlZiB0ZXN0X3JlcG9y
dGNoYXJzX2Vycm9yKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAg
Y29uZnRlc3Q9IiIiCisgICAgICAgIGRlZiBweXRlc3RfcnVudGVzdF90ZWFyZG93bigpOgorICAg
ICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgIiIiLAorICAgICAgICB0ZXN0X3NpbXBsZT0iIiIK
KyAgICAgICAgZGVmIHRlc3RfZm9vKCk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikK
KyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLXJFJykKKyAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoWworICAgICAgICAnRVJST1IqdGVzdF9mb28qJywKKyAgICBdKQorCisK
K2RlZiB0ZXN0X3JlcG9ydGNoYXJzX2FsbCh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgZGVmIHRlc3RfMSgpOgorICAg
ICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgQHB5dGVzdC5tYXJrLnhmYWlsCisgICAgICAgIGRl
ZiB0ZXN0XzIoKToKKyAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgIEBweXRlc3QubWFyay54
ZmFpbAorICAgICAgICBkZWYgdGVzdF8zKCk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGRl
ZiB0ZXN0XzQoKToKKyAgICAgICAgICAgIHB5dGVzdC5za2lwKCJmb3VyIikKKyAgICAiIiIpCisg
ICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1yYSIpCisgICAgcmVzdWx0LnN0ZG91dC5m
bm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIkZBSUwqdGVzdF8xKiIsCisgICAgICAgICJTS0lQKmZv
dXIqIiwKKyAgICAgICAgIlhGQUlMKnRlc3RfMioiLAorICAgICAgICAiWFBBU1MqdGVzdF8zKiIs
CisgICAgXSkKKworCitkZWYgdGVzdF9yZXBvcnRjaGFyc19hbGxfZXJyb3IodGVzdGRpcik6Cisg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKAorICAgICAgICBjb25mdGVzdD0iIiIKKyAgICAgICAgZGVm
IHB5dGVzdF9ydW50ZXN0X3RlYXJkb3duKCk6CisgICAgICAgICAgICBhc3NlcnQgMAorICAgICAg
ICAiIiIsCisgICAgICAgIHRlc3Rfc2ltcGxlPSIiIgorICAgICAgICBkZWYgdGVzdF9mb28oKToK
KyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KCctcmEnKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAg
ICdFUlJPUip0ZXN0X2ZvbyonLAorICAgIF0pCisKKworQHB5dGVzdC5tYXJrLnhmYWlsKCJoYXNh
dHRyKHN5cywgJ3B5cHlfdmVyc2lvbl9pbmZvJykiKQorZGVmIHRlc3RfZXJyb3JzX2luX3hmYWls
X3NraXBfZXhwcmVzc2lvbnModGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgor
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIEBweXRlc3QubWFyay5za2lwaWYoImFzZCIp
CisgICAgICAgIGRlZiB0ZXN0X25hbWVlcnJvcigpOgorICAgICAgICAgICAgcGFzcworICAgICAg
ICBAcHl0ZXN0Lm1hcmsueGZhaWwoInN5bnRheCBlcnJvciIpCisgICAgICAgIGRlZiB0ZXN0X3N5
bnRheCgpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAg
ICAgICAgICAgIHBhc3MKKyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
KQorICAgIG1hcmtsaW5lID0gIiAgICAgICAgICAgICAgICBeIgorICAgIGlmIHN5cy5wbGF0Zm9y
bS5zdGFydHN3aXRoKCJqYXZhIik6CisgICAgICAgICMgWFhYIHJlcG9ydCB0aGlzIHRvIGphdmEK
KyAgICAgICAgbWFya2xpbmUgPSAiKiIgKyBtYXJrbGluZVs4Ol0KKyAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiKkVSUk9SKnRlc3RfbmFtZWVycm9yKiIsCisgICAg
ICAgICIqZXZhbHVhdGluZypza2lwaWYqZXhwcmVzc2lvbioiLAorICAgICAgICAiKmFzZCoiLAor
ICAgICAgICAiKkVSUk9SKnRlc3Rfc3ludGF4KiIsCisgICAgICAgICIqZXZhbHVhdGluZyp4ZmFp
bCpleHByZXNzaW9uKiIsCisgICAgICAgICIgICAgc3ludGF4IGVycm9yIiwKKyAgICAgICAgbWFy
a2xpbmUsCisgICAgICAgICJTeW50YXhFcnJvcjogaW52YWxpZCBzeW50YXgiLAorICAgICAgICAi
KjEgcGFzcyoyIGVycm9yKiIsCisgICAgXSkKKworCitkZWYgdGVzdF94ZmFpbF9za2lwaWZfd2l0
aF9nbG9iYWxzKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAg
aW1wb3J0IHB5dGVzdAorICAgICAgICB4ID0gMworICAgICAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlm
KCJ4ID09IDMiKQorICAgICAgICBkZWYgdGVzdF9za2lwMSgpOgorICAgICAgICAgICAgcGFzcwor
ICAgICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoInggPT0gMyIpCisgICAgICAgIGRlZiB0ZXN0X2Jv
b2xlYW4oKToKKyAgICAgICAgICAgIGFzc2VydCAwCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KCItcnN4IikKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WworICAgICAgICAiKlNLSVAqeCA9PSAzKiIsCisgICAgICAgICIqWEZBSUwqdGVzdF9ib29sZWFu
KiIsCisgICAgICAgICIqeCA9PSAzKiIsCisgICAgXSkKKworCitkZWYgdGVzdF9kaXJlY3RfZ2l2
ZXNfZXJyb3IodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBp
bXBvcnQgcHl0ZXN0CisgICAgICAgIEBweXRlc3QubWFyay5za2lwaWYoVHJ1ZSkKKyAgICAgICAg
ZGVmIHRlc3Rfc2tpcDEoKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAiIiIpCisgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhb
CisgICAgICAgICIqMSBlcnJvcioiLAorICAgIF0pCisKKworZGVmIHRlc3RfZGVmYXVsdF9tYXJr
ZXJzKHRlc3RkaXIpOgorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLW1hcmtlcnMi
KQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICIqc2tpcGlmKCpj
b25kaXRpb24pKnNraXAqIiwKKyAgICAgICAgIip4ZmFpbCgqY29uZGl0aW9uLCByZWFzb249Tm9u
ZSwgcnVuPVRydWUsIHJhaXNlcz1Ob25lLCBzdHJpY3Q9RmFsc2UpKmV4cGVjdGVkIGZhaWx1cmUq
IiwKKyAgICBdKQorCisKK2RlZiB0ZXN0X3hmYWlsX3Rlc3Rfc2V0dXBfZXhjZXB0aW9uKHRlc3Rk
aXIpOgorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgZGVmIHB5dGVz
dF9ydW50ZXN0X3NldHVwKCk6CisgICAgICAgICAgICAgICAgMCAvIDAKKyAgICAgICAgIiIiKQor
ICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsueGZhaWwKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1
bmMoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAiIiIpCisgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QocCkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAg
YXNzZXJ0ICd4ZmFpbGVkJyBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgYXNzZXJ0ICd4cGFz
c2VkJyBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorCisKK2RlZiB0ZXN0X2ltcGVyYXRpdmVz
a2lwX29uX3hmYWlsX3Rlc3QodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgor
ICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIEBweXRlc3QubWFyay54ZmFpbAorICAgICAg
ICBkZWYgdGVzdF90aGF0X2ZhaWxzKCk6CisgICAgICAgICAgICBhc3NlcnQgMAorCisgICAgICAg
IEBweXRlc3QubWFyay5za2lwaWYoIlRydWUiKQorICAgICAgICBkZWYgdGVzdF9oZWxsbygpOgor
ICAgICAgICAgICAgcGFzcworICAgICIiIikKKyAgICB0ZXN0ZGlyLm1ha2Vjb25mdGVzdCgiIiIK
KyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBkZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAo
aXRlbSk6CisgICAgICAgICAgICBweXRlc3Quc2tpcCgiYWJjIikKKyAgICAiIiIpCisgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1yc3hYIikKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXNfcmFuZG9tKCIiIgorICAgICAgICAqU0tJUCphYmMqCisgICAgICAgICpTS0lQKmNv
bmRpdGlvbjogVHJ1ZSoKKyAgICAgICAgKjIgc2tpcHBlZCoKKyAgICAiIiIpCisKKworY2xhc3Mg
VGVzdEJvb2xlYW5Db25kaXRpb24ob2JqZWN0KToKKyAgICBkZWYgdGVzdF9za2lwaWYoc2VsZiwg
dGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGlt
cG9ydCBweXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QubWFyay5za2lwaWYoVHJ1ZSwgcmVhc29u
PSJUcnVlMTIzIikKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMxKCk6CisgICAgICAgICAgICAg
ICAgcGFzcworICAgICAgICAgICAgQHB5dGVzdC5tYXJrLnNraXBpZihGYWxzZSwgcmVhc29uPSJU
cnVlMTIzIikKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMyKCk6CisgICAgICAgICAgICAgICAg
cGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkK
KyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIiIgorICAgICAgICAgICAgKjEg
cGFzc2VkKjEgc2tpcHBlZCoKKyAgICAgICAgIiIiKQorCisgICAgZGVmIHRlc3Rfc2tpcGlmX25v
cmVhc29uKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlm
KFRydWUpCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICAgICAgcGFz
cworICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcnMi
KQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAgICAgICAq
MSBlcnJvcioKKyAgICAgICAgIiIiKQorCisgICAgZGVmIHRlc3RfeGZhaWwoc2VsZiwgdGVzdGRp
cik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBw
eXRlc3QKKyAgICAgICAgICAgIEBweXRlc3QubWFyay54ZmFpbChUcnVlLCByZWFzb249IlRydWUx
MjMiKQorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAgICAgIGFzc2Vy
dCAwCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1y
eHMiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAgICAg
ICAqWEZBSUwqCisgICAgICAgICAgICAqVHJ1ZTEyMyoKKyAgICAgICAgICAgICoxIHhmYWlsKgor
ICAgICAgICAiIiIpCisKKworZGVmIHRlc3RfeGZhaWxfaXRlbSh0ZXN0ZGlyKToKKyAgICAjIEVu
c3VyZSBweXRlc3QueGZhaWwgd29ya3Mgd2l0aCBub24tUHl0aG9uIEl0ZW0KKyAgICB0ZXN0ZGly
Lm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgIGNsYXNz
IE15SXRlbShweXRlc3QuSXRlbSk6CisgICAgICAgICAgICBub2RlaWQgPSAnZm9vJworICAgICAg
ICAgICAgZGVmIHJ1bnRlc3Qoc2VsZik6CisgICAgICAgICAgICAgICAgcHl0ZXN0LnhmYWlsKCJF
eHBlY3RlZCBGYWlsdXJlIikKKworICAgICAgICBkZWYgcHl0ZXN0X2NvbGxlY3RfZmlsZShwYXRo
LCBwYXJlbnQpOgorICAgICAgICAgICAgcmV0dXJuIE15SXRlbSgiZm9vIiwgcGFyZW50KQorICAg
ICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgIHBhc3NlZCwgc2tp
cHBlZCwgZmFpbGVkID0gcmVzdWx0Lmxpc3RvdXRjb21lcygpCisgICAgYXNzZXJ0IG5vdCBmYWls
ZWQKKyAgICB4ZmFpbGVkID0gW3IgZm9yIHIgaW4gc2tpcHBlZCBpZiBoYXNhdHRyKHIsICd3YXN4
ZmFpbCcpXQorICAgIGFzc2VydCB4ZmFpbGVkCisKKworZGVmIHRlc3RfbW9kdWxlX2xldmVsX3Nr
aXBfZXJyb3IodGVzdGRpcik6CisgICAgIiIiCisgICAgVmVyaWZ5IHRoYXQgdXNpbmcgcHl0ZXN0
LnNraXAgYXQgbW9kdWxlIGxldmVsIGNhdXNlcyBhIGNvbGxlY3Rpb24gZXJyb3IKKyAgICAiIiIK
KyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAg
ICAgQHB5dGVzdC5za2lwCisgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgIGFz
c2VydCBUcnVlCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoCisgICAgICAgICIqVXNpbmcgcHl0ZXN0LnNr
aXAgb3V0c2lkZSBvZiBhIHRlc3QgaXMgbm90IGFsbG93ZWQqIgorICAgICkKKworCitkZWYgdGVz
dF9tb2R1bGVfbGV2ZWxfc2tpcF93aXRoX2FsbG93X21vZHVsZV9sZXZlbCh0ZXN0ZGlyKToKKyAg
ICAiIiIKKyAgICBWZXJpZnkgdGhhdCB1c2luZyBweXRlc3Quc2tpcChhbGxvd19tb2R1bGVfbGV2
ZWw9VHJ1ZSkgaXMgYWxsb3dlZAorICAgICIiIgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIK
KyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBweXRlc3Quc2tpcCgic2tpcF9tb2R1bGVf
bGV2ZWwiLCBhbGxvd19tb2R1bGVfbGV2ZWw9VHJ1ZSkKKworICAgICAgICBkZWYgdGVzdF9mdW5j
KCk6CisgICAgICAgICAgICBhc3NlcnQgMAorICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgiLXJ4cyIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKAorICAg
ICAgICAiKlNLSVAqc2tpcF9tb2R1bGVfbGV2ZWwiCisgICAgKQorCisKK2RlZiB0ZXN0X2ludmFs
aWRfc2tpcF9rZXl3b3JkX3BhcmFtZXRlcih0ZXN0ZGlyKToKKyAgICAiIiIKKyAgICBWZXJpZnkg
dGhhdCB1c2luZyBweXRlc3Quc2tpcCgpIHdpdGggdW5rbm93biBwYXJhbWV0ZXIgcmFpc2VzIGFu
IGVycm9yCisgICAgIiIiCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBv
cnQgcHl0ZXN0CisgICAgICAgIHB5dGVzdC5za2lwKCJza2lwX21vZHVsZV9sZXZlbCIsIHVua25v
d249MSkKKworICAgICAgICBkZWYgdGVzdF9mdW5jKCk6CisgICAgICAgICAgICBhc3NlcnQgMAor
ICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0LnN0
ZG91dC5mbm1hdGNoX2xpbmVzKAorICAgICAgICAiKlR5cGVFcnJvcjoqWyd1bmtub3duJ10qIgor
ICAgICkKKworCitkZWYgdGVzdF9tYXJrX3hmYWlsX2l0ZW0odGVzdGRpcik6CisgICAgIyBFbnN1
cmUgcHl0ZXN0Lm1hcmsueGZhaWwgd29ya3Mgd2l0aCBub24tUHl0aG9uIEl0ZW0KKyAgICB0ZXN0
ZGlyLm1ha2Vjb25mdGVzdCgiIiIKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgIGNs
YXNzIE15SXRlbShweXRlc3QuSXRlbSk6CisgICAgICAgICAgICBub2RlaWQgPSAnZm9vJworICAg
ICAgICAgICAgZGVmIHNldHVwKHNlbGYpOgorICAgICAgICAgICAgICAgIG1hcmtlciA9IHB5dGVz
dC5tYXJrLnhmYWlsKFRydWUsIHJlYXNvbj0iRXhwZWN0ZWQgZmFpbHVyZSIpCisgICAgICAgICAg
ICAgICAgc2VsZi5hZGRfbWFya2VyKG1hcmtlcikKKyAgICAgICAgICAgIGRlZiBydW50ZXN0KHNl
bGYpOgorICAgICAgICAgICAgICAgIGFzc2VydCBGYWxzZQorCisgICAgICAgIGRlZiBweXRlc3Rf
Y29sbGVjdF9maWxlKHBhdGgsIHBhcmVudCk6CisgICAgICAgICAgICByZXR1cm4gTXlJdGVtKCJm
b28iLCBwYXJlbnQpCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIuaW5saW5lX3J1bigp
CisgICAgcGFzc2VkLCBza2lwcGVkLCBmYWlsZWQgPSByZXN1bHQubGlzdG91dGNvbWVzKCkKKyAg
ICBhc3NlcnQgbm90IGZhaWxlZAorICAgIHhmYWlsZWQgPSBbciBmb3IgciBpbiBza2lwcGVkIGlm
IGhhc2F0dHIociwgJ3dhc3hmYWlsJyldCisgICAgYXNzZXJ0IHhmYWlsZWQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF90ZXJtaW5hbC5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvdGVzdF90ZXJtaW5hbC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45N2MyZjcxZmI2NmEyN2E1M2EyZTI5Mzhh
MjY1Yzg3YTI4ZTNhZjY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90
ZXN0X3Rlcm1pbmFsLnB5CkBAIC0wLDAgKzEsMTAzOSBAQAorIiIiCit0ZXJtaW5hbCByZXBvcnRp
bmcgb2YgdGhlIGZ1bGwgdGVzdGluZyBwcm9jZXNzLgorIiIiCitmcm9tIF9fZnV0dXJlX18gaW1w
b3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCitpbXBvcnQgY29s
bGVjdGlvbnMKK2ltcG9ydCBzeXMKKworaW1wb3J0IHBsdWdneQoraW1wb3J0IF9weXRlc3QuX2Nv
ZGUKK2ltcG9ydCBweQoraW1wb3J0IHB5dGVzdAorZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0IEVY
SVRfTk9URVNUU0NPTExFQ1RFRAorZnJvbSBfcHl0ZXN0LnRlcm1pbmFsIGltcG9ydCBUZXJtaW5h
bFJlcG9ydGVyLCByZXByX3B5dGhvbnZlcnNpb24sIGdldHJlcG9ydG9wdAorZnJvbSBfcHl0ZXN0
LnRlcm1pbmFsIGltcG9ydCBidWlsZF9zdW1tYXJ5X3N0YXRzX2xpbmUsIF9wbHVnaW5fbmFtZXZl
cnNpb25zCisKKworRGlzdEluZm8gPSBjb2xsZWN0aW9ucy5uYW1lZHR1cGxlKCdEaXN0SW5mbycs
IFsncHJvamVjdF9uYW1lJywgJ3ZlcnNpb24nXSkKKworCitjbGFzcyBPcHRpb24ob2JqZWN0KToK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgdmVyYm9zZT1GYWxzZSwgZnVsbHRyYWNlPUZhbHNlKToK
KyAgICAgICAgc2VsZi52ZXJib3NlID0gdmVyYm9zZQorICAgICAgICBzZWxmLmZ1bGx0cmFjZSA9
IGZ1bGx0cmFjZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGFyZ3Moc2VsZik6CisgICAgICAg
IHZhbHVlcyA9IFtdCisgICAgICAgIGlmIHNlbGYudmVyYm9zZToKKyAgICAgICAgICAgIHZhbHVl
cy5hcHBlbmQoJy12JykKKyAgICAgICAgaWYgc2VsZi5mdWxsdHJhY2U6CisgICAgICAgICAgICB2
YWx1ZXMuYXBwZW5kKCctLWZ1bGx0cmFjZScpCisgICAgICAgIHJldHVybiB2YWx1ZXMKKworCitk
ZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKKyAgICBpZiAib3B0aW9uIiBpbiBt
ZXRhZnVuYy5maXh0dXJlbmFtZXM6CisgICAgICAgIG1ldGFmdW5jLmFkZGNhbGwoaWQ9ImRlZmF1
bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmNhcmdzPXsnb3B0aW9uJzogT3B0aW9u
KHZlcmJvc2U9RmFsc2UpfSkKKyAgICAgICAgbWV0YWZ1bmMuYWRkY2FsbChpZD0idmVyYm9zZSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY2FyZ3M9eydvcHRpb24nOiBPcHRpb24odmVy
Ym9zZT1UcnVlKX0pCisgICAgICAgIG1ldGFmdW5jLmFkZGNhbGwoaWQ9InF1aWV0IiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICBmdW5jYXJncz17J29wdGlvbic6IE9wdGlvbih2ZXJib3NlPS0x
KX0pCisgICAgICAgIG1ldGFmdW5jLmFkZGNhbGwoaWQ9ImZ1bGx0cmFjZSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgZnVuY2FyZ3M9eydvcHRpb24nOiBPcHRpb24oZnVsbHRyYWNlPVRydWUp
fSkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2lucHV0LGV4cGVjdGVkJywgWworICAg
IChbRGlzdEluZm8ocHJvamVjdF9uYW1lPSd0ZXN0JywgdmVyc2lvbj0xKV0sIFsndGVzdC0xJ10p
LAorICAgIChbRGlzdEluZm8ocHJvamVjdF9uYW1lPSdweXRlc3QtdGVzdCcsIHZlcnNpb249MSld
LCBbJ3Rlc3QtMSddKSwKKyAgICAoWworICAgICAgICBEaXN0SW5mbyhwcm9qZWN0X25hbWU9J3Rl
c3QnLCB2ZXJzaW9uPTEpLAorICAgICAgICBEaXN0SW5mbyhwcm9qZWN0X25hbWU9J3Rlc3QnLCB2
ZXJzaW9uPTEpCisgICAgXSwgWyd0ZXN0LTEnXSksCitdLCBpZHM9Wydub3JtYWwnLCAncHJlZml4
LXN0cmlwJywgJ2RlZHVwbGljYXRlJ10pCitkZWYgdGVzdF9wbHVnaW5fbmFtZXZlcnNpb24oaW5w
dXQsIGV4cGVjdGVkKToKKyAgICBwbHVnaW5saXN0ID0gWyhOb25lLCB4KSBmb3IgeCBpbiBpbnB1
dF0KKyAgICByZXN1bHQgPSBfcGx1Z2luX25hbWV2ZXJzaW9ucyhwbHVnaW5saXN0KQorICAgIGFz
c2VydCByZXN1bHQgPT0gZXhwZWN0ZWQKKworCitjbGFzcyBUZXN0VGVybWluYWwob2JqZWN0KToK
KyAgICBkZWYgdGVzdF9wYXNzX3NraXBfZmFpbChzZWxmLCB0ZXN0ZGlyLCBvcHRpb24pOgorICAg
ICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0Cisg
ICAgICAgICAgICBkZWYgdGVzdF9vaygpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAg
ICAgIGRlZiB0ZXN0X3NraXAoKToKKyAgICAgICAgICAgICAgICBweXRlc3Quc2tpcCgieHgiKQor
ICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAgICAgIGFzc2VydCAwCisg
ICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKm9wdGlvbi5h
cmdzKQorICAgICAgICBpZiBvcHRpb24udmVyYm9zZToKKyAgICAgICAgICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAgICAgIip0ZXN0X3Bhc3Nfc2tpcF9mYWls
LnB5Ojp0ZXN0X29rIFBBU1MqIiwKKyAgICAgICAgICAgICAgICAiKnRlc3RfcGFzc19za2lwX2Zh
aWwucHk6OnRlc3Rfc2tpcCBTS0lQKiIsCisgICAgICAgICAgICAgICAgIip0ZXN0X3Bhc3Nfc2tp
cF9mYWlsLnB5Ojp0ZXN0X2Z1bmMgRkFJTCoiLAorICAgICAgICAgICAgXSkKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAg
ICAgICAgIip0ZXN0X3Bhc3Nfc2tpcF9mYWlsLnB5IC5zRioiCisgICAgICAgICAgICBdKQorICAg
ICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIiAgICBkZWYg
dGVzdF9mdW5jKCk6IiwKKyAgICAgICAgICAgICI+ICAgICAgIGFzc2VydCAwIiwKKyAgICAgICAg
ICAgICJFICAgICAgIGFzc2VydCAwIiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2ludGVy
bmFsZXJyb3Ioc2VsZiwgdGVzdGRpciwgbGluZWNvbXApOgorICAgICAgICBtb2Rjb2wgPSB0ZXN0
ZGlyLmdldG1vZHVsZWNvbCgiZGVmIHRlc3Rfb25lKCk6IHBhc3MiKQorICAgICAgICByZXAgPSBU
ZXJtaW5hbFJlcG9ydGVyKG1vZGNvbC5jb25maWcsIGZpbGU9bGluZWNvbXAuc3RyaW5naW8pCisg
ICAgICAgIGV4Y2luZm8gPSBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IsICJyYWlzZSBWYWx1ZUVy
cm9yKCdoZWxsbycpIikKKyAgICAgICAgcmVwLnB5dGVzdF9pbnRlcm5hbGVycm9yKGV4Y2luZm8u
Z2V0cmVwcigpKQorICAgICAgICBsaW5lY29tcC5hc3NlcnRfY29udGFpbnNfbGluZXMoWworICAg
ICAgICAgICAgIklOVEVSTkFMRVJST1I+ICpWYWx1ZUVycm9yKmhlbGxvKiIKKyAgICAgICAgXSkK
KworICAgIGRlZiB0ZXN0X3dyaXRlbGluZShzZWxmLCB0ZXN0ZGlyLCBsaW5lY29tcCk6CisgICAg
ICAgIG1vZGNvbCA9IHRlc3RkaXIuZ2V0bW9kdWxlY29sKCJkZWYgdGVzdF9vbmUoKTogcGFzcyIp
CisgICAgICAgIHJlcCA9IFRlcm1pbmFsUmVwb3J0ZXIobW9kY29sLmNvbmZpZywgZmlsZT1saW5l
Y29tcC5zdHJpbmdpbykKKyAgICAgICAgcmVwLndyaXRlX2ZzcGF0aF9yZXN1bHQobW9kY29sLm5v
ZGVpZCwgIi4iKQorICAgICAgICByZXAud3JpdGVfbGluZSgiaGVsbG8gd29ybGQiKQorICAgICAg
ICBsaW5lcyA9IGxpbmVjb21wLnN0cmluZ2lvLmdldHZhbHVlKCkuc3BsaXQoJ1xuJykKKyAgICAg
ICAgYXNzZXJ0IG5vdCBsaW5lc1swXQorICAgICAgICBhc3NlcnQgbGluZXNbMV0uZW5kc3dpdGgo
bW9kY29sLm5hbWUgKyAiIC4iKQorICAgICAgICBhc3NlcnQgbGluZXNbMl0gPT0gImhlbGxvIHdv
cmxkIgorCisgICAgZGVmIHRlc3Rfc2hvd19ydW50ZXN0X2xvZ3N0YXJ0KHNlbGYsIHRlc3RkaXIs
IGxpbmVjb21wKToKKyAgICAgICAgaXRlbSA9IHRlc3RkaXIuZ2V0aXRlbSgiZGVmIHRlc3RfZnVu
YygpOiBwYXNzIikKKyAgICAgICAgdHIgPSBUZXJtaW5hbFJlcG9ydGVyKGl0ZW0uY29uZmlnLCBm
aWxlPWxpbmVjb21wLnN0cmluZ2lvKQorICAgICAgICBpdGVtLmNvbmZpZy5wbHVnaW5tYW5hZ2Vy
LnJlZ2lzdGVyKHRyKQorICAgICAgICBsb2NhdGlvbiA9IGl0ZW0ucmVwb3J0aW5mbygpCisgICAg
ICAgIHRyLmNvbmZpZy5ob29rLnB5dGVzdF9ydW50ZXN0X2xvZ3N0YXJ0KG5vZGVpZD1pdGVtLm5v
ZGVpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9j
YXRpb249bG9jYXRpb24sIGZzcGF0aD1zdHIoaXRlbS5mc3BhdGgpKQorICAgICAgICBsaW5lY29t
cC5hc3NlcnRfY29udGFpbnNfbGluZXMoWworICAgICAgICAgICAgIip0ZXN0X3Nob3dfcnVudGVz
dF9sb2dzdGFydC5weSoiCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9ydW50ZXN0X2xvY2F0
aW9uX3Nob3duX2JlZm9yZV90ZXN0X3N0YXJ0cyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfMSgpOgorICAgICAgICAg
ICAgICAgIGltcG9ydCB0aW1lCisgICAgICAgICAgICAgICAgdGltZS5zbGVlcCgyMCkKKyAgICAg
ICAgIiIiKQorICAgICAgICBjaGlsZCA9IHRlc3RkaXIuc3Bhd25fcHl0ZXN0KCIiKQorICAgICAg
ICBjaGlsZC5leHBlY3QoIi4qdGVzdF9ydW50ZXN0X2xvY2F0aW9uLipweSIpCisgICAgICAgIGNo
aWxkLnNlbmRlb2YoKQorICAgICAgICBjaGlsZC5raWxsKDE1KQorCisgICAgZGVmIHRlc3RfaXRl
bXJlcG9ydF9zdWJjbGFzc2VzX3Nob3dfc3ViY2xhc3NlZF9maWxlKHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9wMT0iIiIKKyAgICAgICAgICAgIGNsYXNz
IEJhc2VUZXN0cyhvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3AxKHNlbGYpOgor
ICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBjbGFzcyBUZXN0Q2xhc3MoQmFz
ZVRlc3RzKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgcDIg
PSB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9wMj0iIiIKKyAgICAgICAgICAgIGZyb20gdGVzdF9w
MSBpbXBvcnQgQmFzZVRlc3RzCisgICAgICAgICAgICBjbGFzcyBUZXN0TW9yZShCYXNlVGVzdHMp
OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdChwMikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVz
KFsKKyAgICAgICAgICAgICIqdGVzdF9wMi5weSAuKiIsCisgICAgICAgICAgICAiKjEgcGFzc2Vk
KiIsCisgICAgICAgIF0pCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItdiIs
IHAyKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAg
Iip0ZXN0X3AyLnB5OjpUZXN0TW9yZTo6dGVzdF9wMSogPC0gKnRlc3RfcDEucHkqUEFTU0VEKiIs
CisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9pdGVtcmVwb3J0X2RpcmVjdGNsYXNzZXNfbm90
X3Nob3duX2FzX3N1YmNsYXNzZXMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIGEgPSB0ZXN0ZGly
Lm1rcHlkaXIoImExMjMiKQorICAgICAgICBhLmpvaW4oInRlc3RfaGVsbG8xMjMucHkiKS53cml0
ZShfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiIiIKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhv
YmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhvZChzZWxmKToKKyAgICAgICAg
ICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgiLXYiKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAwCisgICAgICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKmExMjMvdGVzdF9o
ZWxsbzEyMy5weSpQQVNTKiIsCisgICAgICAgIF0pCisgICAgICAgIGFzc2VydCAiIDwtICIgbm90
IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKworICAgIGRlZiB0ZXN0X2tleWJvYXJkX2ludGVycnVw
dChzZWxmLCB0ZXN0ZGlyLCBvcHRpb24pOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIi
CisgICAgICAgICAgICBkZWYgdGVzdF9mb29iYXIoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQg
MAorICAgICAgICAgICAgZGVmIHRlc3Rfc3BhbWVnZygpOgorICAgICAgICAgICAgICAgIGltcG9y
dCBweTsgcHl0ZXN0LnNraXAoJ3NraXAgbWUgcGxlYXNlIScpCisgICAgICAgICAgICBkZWYgdGVz
dF9pbnRlcnJ1cHRfbWUoKToKKyAgICAgICAgICAgICAgICByYWlzZSBLZXlib2FyZEludGVycnVw
dCAgICMgc2ltdWxhdGluZyB0aGUgdXNlcgorICAgICAgICAiIiIpCisKKyAgICAgICAgcmVzdWx0
ID0gdGVzdGRpci5ydW5weXRlc3QoKm9wdGlvbi5hcmdzLCBub19yZXJhaXNlX2N0cmxjPVRydWUp
CisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiICAg
IGRlZiB0ZXN0X2Zvb2JhcigpOiIsCisgICAgICAgICAgICAiPiAgICAgICBhc3NlcnQgMCIsCisg
ICAgICAgICAgICAiRSAgICAgICBhc3NlcnQgMCIsCisgICAgICAgICAgICAiKl9rZXlib2FyZF9p
bnRlcnJ1cHQucHk6NjogS2V5Ym9hcmRJbnRlcnJ1cHQqIiwKKyAgICAgICAgXSkKKyAgICAgICAg
aWYgb3B0aW9uLmZ1bGx0cmFjZToKKyAgICAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9s
aW5lcyhbCisgICAgICAgICAgICAgICAgIipyYWlzZSBLZXlib2FyZEludGVycnVwdCAgICMgc2lt
dWxhdGluZyB0aGUgdXNlcioiLAorICAgICAgICAgICAgXSkKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAgICAgInRv
IHNob3cgYSBmdWxsIHRyYWNlYmFjayBvbiBLZXlib2FyZEludGVycnVwdCB1c2UgLS1mdWxsdHJh
Y2UiCisgICAgICAgICAgICBdKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WycqS2V5Ym9hcmRJbnRlcnJ1cHQqJ10pCisKKyAgICBkZWYgdGVzdF9rZXlib2FyZF9pbl9zZXNz
aW9uc3RhcnQoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIi
IgorICAgICAgICAgICAgZGVmIHB5dGVzdF9zZXNzaW9uc3RhcnQoKToKKyAgICAgICAgICAgICAg
ICByYWlzZSBLZXlib2FyZEludGVycnVwdAorICAgICAgICAiIiIpCisgICAgICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Zvb2JhcigpOgorICAgICAgICAg
ICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVu
cHl0ZXN0KG5vX3JlcmFpc2VfY3RybGM9VHJ1ZSkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQg
PT0gMgorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWycqS2V5Ym9hcmRJbnRl
cnJ1cHQqJ10pCisKKyAgICBkZWYgdGVzdF9jb2xsZWN0X3NpbmdsZV9pdGVtKHNlbGYsIHRlc3Rk
aXIpOgorICAgICAgICAiIiJVc2Ugc2luZ3VsYXIgJ2l0ZW0nIHdoZW4gcmVwb3J0aW5nIGEgc2lu
Z2xlIHRlc3QgaXRlbSIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
ICAgICBkZWYgdGVzdF9mb29iYXIoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIi
IikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoWydjb2xsZWN0ZWQgMSBpdGVtJ10pCisKKyAgICBkZWYgdGVz
dF9yZXdyaXRlKHNlbGYsIHRlc3RkaXIsIG1vbmtleXBhdGNoKToKKyAgICAgICAgY29uZmlnID0g
dGVzdGRpci5wYXJzZWNvbmZpZygpCisgICAgICAgIGYgPSBweS5pby5UZXh0SU8oKQorICAgICAg
ICBtb25rZXlwYXRjaC5zZXRhdHRyKGYsICdpc2F0dHknLCBsYW1iZGEgKmFyZ3M6IFRydWUpCisg
ICAgICAgIHRyID0gVGVybWluYWxSZXBvcnRlcihjb25maWcsIGYpCisgICAgICAgIHRyLl90dy5m
dWxsd2lkdGggPSAxMAorICAgICAgICB0ci53cml0ZSgnaGVsbG8nKQorICAgICAgICB0ci5yZXdy
aXRlKCdoZXknLCBlcmFzZT1UcnVlKQorICAgICAgICBhc3NlcnQgZi5nZXR2YWx1ZSgpID09ICdo
ZWxsbycgKyAnXHInICsgJ2hleScgKyAoNiAqICcgJykKKworCitjbGFzcyBUZXN0Q29sbGVjdG9u
bHkob2JqZWN0KToKKyAgICBkZWYgdGVzdF9jb2xsZWN0b25seV9iYXNpYyhzZWxmLCB0ZXN0ZGly
KToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3Rf
ZnVuYygpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1
bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1jb2xsZWN0LW9ubHkiLCkKKyAgICAgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICI8TW9kdWxlICd0ZXN0X2NvbGxl
Y3Rvbmx5X2Jhc2ljLnB5Jz4iLAorICAgICAgICAgICAgIiAgPEZ1bmN0aW9uICd0ZXN0X2Z1bmMn
PiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9jb2xsZWN0b25seV9za2lwcGVkX21vZHVs
ZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAg
ICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgcHl0ZXN0LnNraXAoImhlbGxvIikKKyAg
ICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLS1jb2xsZWN0
LW9ubHkiLCAiLXJzIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAg
ICAgICAgICAgICIqRVJST1IgY29sbGVjdGluZyoiLAorICAgICAgICBdKQorCisgICAgZGVmIHRl
c3RfY29sbGVjdG9ubHlfZmFpbGVkX21vZHVsZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKCIiInJhaXNlIFZhbHVlRXJyb3IoMCkiIiIpCisgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3Qtb25seSIpCisgICAgICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKnJhaXNlIFZhbHVlRXJyb3IqIiwK
KyAgICAgICAgICAgICIqMSBlcnJvcioiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfY29s
bGVjdG9ubHlfZmF0YWwoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0
ZXN0KCIiIgorICAgICAgICAgICAgZGVmIHB5dGVzdF9jb2xsZWN0c3RhcnQoY29sbGVjdG9yKToK
KyAgICAgICAgICAgICAgICBhc3NlcnQgMCwgInVyZ3MiCisgICAgICAgICIiIikKKyAgICAgICAg
cmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tY29sbGVjdC1vbmx5IikKKyAgICAgICAgcmVz
dWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqSU5URVJOQUwqYXJncyoi
CisgICAgICAgIF0pCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDMKKworICAgIGRlZiB0
ZXN0X2NvbGxlY3Rvbmx5X3NpbXBsZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3Rk
aXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMxKCk6CisgICAgICAg
ICAgICAgICAgcGFzcworICAgICAgICAgICAgY2xhc3MgVGVzdENsYXNzKG9iamVjdCk6CisgICAg
ICAgICAgICAgICAgZGVmIHRlc3RfbWV0aG9kKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBw
YXNzCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0t
Y29sbGVjdC1vbmx5IiwgcCkKKyAgICAgICAgIyBhc3NlcnQgc3RkZXJyLnN0YXJ0c3dpdGgoImlu
c2VydGluZyBpbnRvIHN5cy5wYXRoIikKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAor
ICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIio8TW9k
dWxlICcqLnB5Jz4iLAorICAgICAgICAgICAgIiogPEZ1bmN0aW9uICd0ZXN0X2Z1bmMxJyo+IiwK
KyAgICAgICAgICAgICIqIDxDbGFzcyAnVGVzdENsYXNzJz4iLAorICAgICAgICAgICAgIyAiKiAg
PEluc3RhbmNlICcoKSc+IiwKKyAgICAgICAgICAgICIqICAgPEZ1bmN0aW9uICd0ZXN0X21ldGhv
ZCcqPiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9jb2xsZWN0b25seV9lcnJvcihzZWxm
LCB0ZXN0ZGlyKToKKyAgICAgICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiaW1wb3J0IEVycmxr
anF3ZXF3ZSIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3Qt
b25seSIsIHApCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDIKKyAgICAgICAgcmVzdWx0
LnN0ZG91dC5mbm1hdGNoX2xpbmVzKF9weXRlc3QuX2NvZGUuU291cmNlKCIiIgorICAgICAgICAg
ICAgKkVSUk9SKgorICAgICAgICAgICAgKkltcG9ydEVycm9yKgorICAgICAgICAgICAgKk5vIG1v
ZHVsZSBuYW1lZCAqRXJybGsqCisgICAgICAgICAgICAqMSBlcnJvcioKKyAgICAgICAgIiIiKS5z
dHJpcCgpKQorCisgICAgZGVmIHRlc3RfY29sbGVjdG9ubHlfbWlzc2luZ19wYXRoKHNlbGYsIHRl
c3RkaXIpOgorICAgICAgICAiIiJ0aGlzIGNoZWNrcyBpc3N1ZSAxMTUsCisgICAgICAgICAgICBm
YWlsdXJlIGluIHBhcnNlYXJncyB3aWxsIGNhdXNlIHNlc3Npb24KKyAgICAgICAgICAgIG5vdCB0
byBoYXZlIHRoZSBpdGVtcyBhdHRyaWJ1dGUKKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCItLWNvbGxlY3Qtb25seSIsICJ1aG1fbWlzc2luZ19wYXRoIikK
KyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gNAorICAgICAgICByZXN1bHQuc3RkZXJyLmZu
bWF0Y2hfbGluZXMoWworICAgICAgICAgICAgJypFUlJPUjogZmlsZSBub3QgZm91bmQqJywKKyAg
ICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2NvbGxlY3Rvbmx5X3F1aWV0KHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0X2ZvbygpOiBwYXNzIikKKyAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tY29sbGVjdC1vbmx5IiwgIi1xIikK
KyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICcqdGVz
dF9mb28qJywKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2NvbGxlY3Rvbmx5X21vcmVfcXVp
ZXQoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0X2Z1bj0i
ZGVmIHRlc3RfZm9vKCk6IHBhc3MiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgiLS1jb2xsZWN0LW9ubHkiLCAiLXFxIikKKyAgICAgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNo
X2xpbmVzKFsKKyAgICAgICAgICAgICcqdGVzdF9mdW4ucHk6IDEqJywKKyAgICAgICAgXSkKKwor
CitkZWYgdGVzdF9yZXByX3B5dGhvbl92ZXJzaW9uKG1vbmtleXBhdGNoKToKKyAgICB0cnk6Cisg
ICAgICAgIG1vbmtleXBhdGNoLnNldGF0dHIoc3lzLCAndmVyc2lvbl9pbmZvJywgKDIsIDUsIDEs
ICdmaW5hbCcsIDApKQorICAgICAgICBhc3NlcnQgcmVwcl9weXRob252ZXJzaW9uKCkgPT0gIjIu
NS4xLWZpbmFsLTAiCisgICAgICAgIHB5LnN0ZC5zeXMudmVyc2lvbl9pbmZvID0geCA9ICgyLCAz
KQorICAgICAgICBhc3NlcnQgcmVwcl9weXRob252ZXJzaW9uKCkgPT0gc3RyKHgpCisgICAgZmlu
YWxseToKKyAgICAgICAgbW9ua2V5cGF0Y2gudW5kbygpICAjIGRvIHRoaXMgZWFybHkgYXMgcHl0
ZXN0IGNhbiBnZXQgY29uZnVzZWQKKworCitjbGFzcyBUZXN0Rml4dHVyZVJlcG9ydGluZyhvYmpl
Y3QpOgorICAgIGRlZiB0ZXN0X3NldHVwX2ZpeHR1cmVfZXJyb3Ioc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiBzZXR1cF9mdW5j
dGlvbihmdW5jdGlvbik6CisgICAgICAgICAgICAgICAgcHJpbnQgKCJzZXR1cCBmdW5jIikKKyAg
ICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAgICAgZGVmIHRlc3RfbmFkYSgpOgorICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAg
ICAgICAgICAiKkVSUk9SIGF0IHNldHVwIG9mIHRlc3RfbmFkYSoiLAorICAgICAgICAgICAgIipz
ZXR1cF9mdW5jdGlvbihmdW5jdGlvbik6KiIsCisgICAgICAgICAgICAiKnNldHVwIGZ1bmMqIiwK
KyAgICAgICAgICAgICIqYXNzZXJ0IDAqIiwKKyAgICAgICAgICAgICIqMSBlcnJvcioiLAorICAg
ICAgICBdKQorICAgICAgICBhc3NlcnQgcmVzdWx0LnJldCAhPSAwCisKKyAgICBkZWYgdGVzdF90
ZWFyZG93bl9maXh0dXJlX2Vycm9yKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1h
a2VweWZpbGUoIiIiCisgICAgICAgICAgICBkZWYgdGVzdF9uYWRhKCk6CisgICAgICAgICAgICAg
ICAgcGFzcworICAgICAgICAgICAgZGVmIHRlYXJkb3duX2Z1bmN0aW9uKGZ1bmN0aW9uKToKKyAg
ICAgICAgICAgICAgICBwcmludCAoInRlYXJkb3duIGZ1bmMiKQorICAgICAgICAgICAgICAgIGFz
c2VydCAwCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
KQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIipF
UlJPUiBhdCB0ZWFyZG93bioiLAorICAgICAgICAgICAgIip0ZWFyZG93bl9mdW5jdGlvbihmdW5j
dGlvbik6KiIsCisgICAgICAgICAgICAiKmFzc2VydCAwKiIsCisgICAgICAgICAgICAiKkNhcHR1
cmVkIHN0ZG91dCoiLAorICAgICAgICAgICAgIip0ZWFyZG93biBmdW5jKiIsCisgICAgICAgICAg
ICAiKjEgcGFzc2VkKjEgZXJyb3IqIiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X3RlYXJk
b3duX2ZpeHR1cmVfZXJyb3JfYW5kX3Rlc3RfZmFpbHVyZShzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfZmFpbCgpOgor
ICAgICAgICAgICAgICAgIGFzc2VydCAwLCAiZmFpbGluZ2Z1bmMiCisKKyAgICAgICAgICAgIGRl
ZiB0ZWFyZG93bl9mdW5jdGlvbihmdW5jdGlvbik6CisgICAgICAgICAgICAgICAgcHJpbnQgKCJ0
ZWFyZG93biBmdW5jIikKKyAgICAgICAgICAgICAgICBhc3NlcnQgRmFsc2UKKyAgICAgICAgIiIi
KQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKkVSUk9SIGF0IHRlYXJkb3duIG9m
IHRlc3RfZmFpbCoiLAorICAgICAgICAgICAgIip0ZWFyZG93bl9mdW5jdGlvbihmdW5jdGlvbik6
KiIsCisgICAgICAgICAgICAiKmFzc2VydCBGYWxzZSoiLAorICAgICAgICAgICAgIipDYXB0dXJl
ZCBzdGRvdXQqIiwKKyAgICAgICAgICAgICIqdGVhcmRvd24gZnVuYyoiLAorCisgICAgICAgICAg
ICAiKnRlc3RfZmFpbCoiLAorICAgICAgICAgICAgIipkZWYgdGVzdF9mYWlsKCk6IiwKKyAgICAg
ICAgICAgICIqZmFpbGluZ2Z1bmMqIiwKKyAgICAgICAgICAgICIqMSBmYWlsZWQqMSBlcnJvcioi
LAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3Rfc2V0dXBfdGVhcmRvd25fb3V0cHV0X2FuZF90
ZXN0X2ZhaWx1cmUoc2VsZiwgdGVzdGRpcik6CisgICAgICAgICIiIiBUZXN0IGZvciBpc3N1ZSAj
NDQyICIiIgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBkZWYg
c2V0dXBfZnVuY3Rpb24oZnVuY3Rpb24pOgorICAgICAgICAgICAgICAgIHByaW50ICgic2V0dXAg
ZnVuYyIpCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X2ZhaWwoKToKKyAgICAgICAgICAgICAgICBh
c3NlcnQgMCwgImZhaWxpbmdmdW5jIgorCisgICAgICAgICAgICBkZWYgdGVhcmRvd25fZnVuY3Rp
b24oZnVuY3Rpb24pOgorICAgICAgICAgICAgICAgIHByaW50ICgidGVhcmRvd24gZnVuYyIpCisg
ICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIip0ZXN0X2ZhaWwq
IiwKKyAgICAgICAgICAgICIqZGVmIHRlc3RfZmFpbCgpOiIsCisgICAgICAgICAgICAiKmZhaWxp
bmdmdW5jKiIsCisgICAgICAgICAgICAiKkNhcHR1cmVkIHN0ZG91dCBzZXR1cCoiLAorICAgICAg
ICAgICAgIipzZXR1cCBmdW5jKiIsCisgICAgICAgICAgICAiKkNhcHR1cmVkIHN0ZG91dCB0ZWFy
ZG93bioiLAorICAgICAgICAgICAgIip0ZWFyZG93biBmdW5jKiIsCisKKyAgICAgICAgICAgICIq
MSBmYWlsZWQqIiwKKyAgICAgICAgXSkKKworCitjbGFzcyBUZXN0VGVybWluYWxGdW5jdGlvbmFs
KG9iamVjdCk6CisgICAgZGVmIHRlc3RfZGVzZWxlY3RlZChzZWxmLCB0ZXN0ZGlyKToKKyAgICAg
ICAgdGVzdHBhdGggPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICAgICAgZGVm
IHRlc3Rfb25lKCk6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICAgICBk
ZWYgdGVzdF90d28oKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgICAg
IGRlZiB0ZXN0X3RocmVlKCk6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAg
IiIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1rIiwgInRlc3RfdHdvOiIsIHRlc3RwYXRoKQorICAg
ICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIip0ZXN0X2Rl
c2VsZWN0ZWQucHkgLi4qIiwKKyAgICAgICAgICAgICI9KiAxIHRlc3QqZGVzZWxlY3RlZCAqPSIs
CisgICAgICAgIF0pCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDAKKworICAgIGRlZiB0
ZXN0X25vX3NraXBfc3VtbWFyeV9pZl9mYWlsdXJlKHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0
ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAg
ICAgICBkZWYgdGVzdF9vaygpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRl
ZiB0ZXN0X2ZhaWwoKToKKyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAgICAgZGVm
IHRlc3Rfc2tpcCgpOgorICAgICAgICAgICAgICAgIHB5dGVzdC5za2lwKCJkb250c2hvdyIpCisg
ICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAg
ICBhc3NlcnQgcmVzdWx0LnN0ZG91dC5zdHIoKS5maW5kKCJza2lwIHRlc3Qgc3VtbWFyeSIpID09
IC0xCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDEKKworICAgIGRlZiB0ZXN0X3Bhc3Nl
cyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgcDEgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgICAgICBkZWYgdGVzdF9wYXNzZXMoKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgICAgICBjbGFzcyBUZXN0Q2xhc3Mob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgdGVz
dF9tZXRob2Qoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQor
ICAgICAgICBvbGQgPSBwMS5kaXJwYXRoKCkuY2hkaXIoKQorICAgICAgICB0cnk6CisgICAgICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgICAgIGZpbmFsbHk6CisgICAg
ICAgICAgICBvbGQuY2hkaXIoKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WworICAgICAgICAgICAgInRlc3RfcGFzc2VzLnB5IC4uKiIsCisgICAgICAgICAgICAiKiAyIHBh
c3MqIiwKKyAgICAgICAgXSkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisgICAg
ZGVmIHRlc3RfaGVhZGVyX3RyYWlsZXJfaW5mbyhzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVz
dGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3RfcGFzc2VzKCk6CisgICAg
ICAgICAgICAgICAgcGFzcworICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KCkKKyAgICAgICAgdmVyaW5mbyA9ICIuIi5qb2luKG1hcChzdHIsIHB5LnN0ZC5z
eXMudmVyc2lvbl9pbmZvWzozXSkpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5l
cyhbCisgICAgICAgICAgICAiKj09PT09IHRlc3Qgc2Vzc2lvbiBzdGFydHMgPT09PSoiLAorICAg
ICAgICAgICAgInBsYXRmb3JtICVzIC0tIFB5dGhvbiAlcypweXRlc3QtJXMqcHktJXMqcGx1Z2d5
LSVzIiAlICgKKyAgICAgICAgICAgICAgICBweS5zdGQuc3lzLnBsYXRmb3JtLCB2ZXJpbmZvLAor
ICAgICAgICAgICAgICAgIHB5dGVzdC5fX3ZlcnNpb25fXywgcHkuX192ZXJzaW9uX18sIHBsdWdn
eS5fX3ZlcnNpb25fXyksCisgICAgICAgICAgICAiKnRlc3RfaGVhZGVyX3RyYWlsZXJfaW5mby5w
eSAuKiIsCisgICAgICAgICAgICAiPSogMSBwYXNzZWQqaW4gKi5bMC05XVswLTldIHNlY29uZHMg
Kj0iLAorICAgICAgICBdKQorICAgICAgICBpZiBweXRlc3QuY29uZmlnLnBsdWdpbm1hbmFnZXIu
bGlzdF9wbHVnaW5fZGlzdGluZm8oKToKKyAgICAgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcyhbCisgICAgICAgICAgICAgICAgInBsdWdpbnM6ICoiLAorICAgICAgICAgICAgXSkK
KworICAgIGRlZiB0ZXN0X3Nob3dsb2NhbHMoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAxID0g
dGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHRlc3Rfc2hvd2xvY2Fscygp
OgorICAgICAgICAgICAgICAgIHggPSAzCisgICAgICAgICAgICAgICAgeSA9ICJ4IiAqIDUwMDAK
KyAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAiIiIpCisgICAgICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KHAxLCAnLWwnKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0
Y2hfbGluZXMoWworICAgICAgICAgICAgIyAiXyBfICogTG9jYWxzICoiLAorICAgICAgICAgICAg
IngqID0gMyIsCisgICAgICAgICAgICAieSogPSAneHh4eHh4KiIKKyAgICAgICAgXSkKKworICAg
IGRlZiB0ZXN0X3ZlcmJvc2VfcmVwb3J0aW5nKHNlbGYsIHRlc3RkaXIsIHB5dGVzdGNvbmZpZyk6
CisgICAgICAgIHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgaW1wb3J0
IHB5dGVzdAorICAgICAgICAgICAgZGVmIHRlc3RfZmFpbCgpOgorICAgICAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoKQorICAgICAgICAgICAgZGVmIHRlc3RfcGFzcygpOgorICAgICAgICAg
ICAgICAgIHBhc3MKKyAgICAgICAgICAgIGNsYXNzIFRlc3RDbGFzcyhvYmplY3QpOgorICAgICAg
ICAgICAgICAgIGRlZiB0ZXN0X3NraXAoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHB5dGVz
dC5za2lwKCJoZWxsbyIpCisgICAgICAgICAgICBkZWYgdGVzdF9nZW4oKToKKyAgICAgICAgICAg
ICAgICBkZWYgY2hlY2soeCk6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCB4ID09IDEKKyAg
ICAgICAgICAgICAgICB5aWVsZCBjaGVjaywgMAorICAgICAgICAiIiIpCisgICAgICAgIHJlc3Vs
dCA9IHRlc3RkaXIucnVucHl0ZXN0KHAxLCAnLXYnKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZu
bWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIip0ZXN0X3ZlcmJvc2VfcmVwb3J0aW5nLnB5Ojp0
ZXN0X2ZhaWwgKkZBSUwqIiwKKyAgICAgICAgICAgICIqdGVzdF92ZXJib3NlX3JlcG9ydGluZy5w
eTo6dGVzdF9wYXNzICpQQVNTKiIsCisgICAgICAgICAgICAiKnRlc3RfdmVyYm9zZV9yZXBvcnRp
bmcucHk6OlRlc3RDbGFzczo6dGVzdF9za2lwICpTS0lQKiIsCisgICAgICAgICAgICAiKnRlc3Rf
dmVyYm9zZV9yZXBvcnRpbmcucHk6OnRlc3RfZ2VuKjAqICpGQUlMKiIsCisgICAgICAgIF0pCisg
ICAgICAgIGFzc2VydCByZXN1bHQucmV0ID09IDEKKworICAgICAgICBpZiBub3QgcHl0ZXN0Y29u
ZmlnLnBsdWdpbm1hbmFnZXIuZ2V0X3BsdWdpbigieGRpc3QiKToKKyAgICAgICAgICAgIHB5dGVz
dC5za2lwKCJ4ZGlzdCBwbHVnaW4gbm90IGluc3RhbGxlZCIpCisKKyAgICAgICAgcmVzdWx0ID0g
dGVzdGRpci5ydW5weXRlc3QocDEsICctdicsICctbiAxJykKKyAgICAgICAgcmVzdWx0LnN0ZG91
dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgICAgICIqRkFJTCp0ZXN0X3ZlcmJvc2VfcmVwb3J0
aW5nLnB5Ojp0ZXN0X2ZhaWwqIiwKKyAgICAgICAgXSkKKyAgICAgICAgYXNzZXJ0IHJlc3VsdC5y
ZXQgPT0gMQorCisgICAgZGVmIHRlc3RfcXVpZXRfcmVwb3J0aW5nKHNlbGYsIHRlc3RkaXIpOgor
ICAgICAgICBwMSA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiZGVmIHRlc3RfcGFzcygpOiBwYXNzIikK
KyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QocDEsICctcScpCisgICAgICAgIHMg
PSByZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgICAgIGFzc2VydCAndGVzdCBzZXNzaW9uIHN0YXJ0
cycgbm90IGluIHMKKyAgICAgICAgYXNzZXJ0IHAxLmJhc2VuYW1lIG5vdCBpbiBzCisgICAgICAg
IGFzc2VydCAiPT09IiBub3QgaW4gcworICAgICAgICBhc3NlcnQgInBhc3NlZCIgaW4gcworCisg
ICAgZGVmIHRlc3RfbW9yZV9xdWlldF9yZXBvcnRpbmcoc2VsZiwgdGVzdGRpcik6CisgICAgICAg
IHAxID0gdGVzdGRpci5tYWtlcHlmaWxlKCJkZWYgdGVzdF9wYXNzKCk6IHBhc3MiKQorICAgICAg
ICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdChwMSwgJy1xcScpCisgICAgICAgIHMgPSByZXN1
bHQuc3Rkb3V0LnN0cigpCisgICAgICAgIGFzc2VydCAndGVzdCBzZXNzaW9uIHN0YXJ0cycgbm90
IGluIHMKKyAgICAgICAgYXNzZXJ0IHAxLmJhc2VuYW1lIG5vdCBpbiBzCisgICAgICAgIGFzc2Vy
dCAiPT09IiBub3QgaW4gcworICAgICAgICBhc3NlcnQgInBhc3NlZCIgbm90IGluIHMKKworICAg
IGRlZiB0ZXN0X3JlcG9ydF9jb2xsZWN0aW9uZmluaXNoX2hvb2soc2VsZiwgdGVzdGRpcik6Cisg
ICAgICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgZGVmIHB5dGVzdF9y
ZXBvcnRfY29sbGVjdGlvbmZpbmlzaChjb25maWcsIHN0YXJ0ZGlyLCBpdGVtcyk6CisgICAgICAg
ICAgICAgICAgcmV0dXJuIFsnaGVsbG8gZnJvbSBob29rOiB7MH0gaXRlbXMnLmZvcm1hdChsZW4o
aXRlbXMpKV0KKyAgICAgICAgIiIiKQorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoJ2knLCByYW5nZSgzKSkKKyAgICAgICAgICAgIGRlZiB0ZXN0KGkpOgorICAgICAgICAg
ICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAg
ICAiY29sbGVjdGVkIDMgaXRlbXMiLAorICAgICAgICAgICAgImhlbGxvIGZyb20gaG9vazogMyBp
dGVtcyIsCisgICAgICAgIF0pCisKKworZGVmIHRlc3RfZmFpbF9leHRyYV9yZXBvcnRpbmcodGVz
dGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCJkZWYgdGVzdF90aGlzKCk6IGFzc2VydCAw
IikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgYXNzZXJ0ICdzaG9ydCB0
ZXN0IHN1bW1hcnknIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoJy1yZicpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsK
KyAgICAgICAgIip0ZXN0IHN1bW1hcnkqIiwKKyAgICAgICAgIkZBSUwqdGVzdF9mYWlsX2V4dHJh
X3JlcG9ydGluZyoiLAorICAgIF0pCisKKworZGVmIHRlc3RfZmFpbF9yZXBvcnRpbmdfb25fcGFz
cyh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0X3RoaXMoKTogYXNz
ZXJ0IDEiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctcmYnKQorICAgIGFzc2Vy
dCAnc2hvcnQgdGVzdCBzdW1tYXJ5JyBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorCisKK2Rl
ZiB0ZXN0X3Bhc3NfZXh0cmFfcmVwb3J0aW5nKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgiZGVmIHRlc3RfdGhpcygpOiBhc3NlcnQgMSIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5y
dW5weXRlc3QoKQorICAgIGFzc2VydCAnc2hvcnQgdGVzdCBzdW1tYXJ5JyBub3QgaW4gcmVzdWx0
LnN0ZG91dC5zdHIoKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctcnAnKQorICAg
IHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICIqdGVzdCBzdW1tYXJ5KiIs
CisgICAgICAgICJQQVNTKnRlc3RfcGFzc19leHRyYV9yZXBvcnRpbmcqIiwKKyAgICBdKQorCisK
K2RlZiB0ZXN0X3Bhc3NfcmVwb3J0aW5nX29uX2ZhaWwodGVzdGRpcik6CisgICAgdGVzdGRpci5t
YWtlcHlmaWxlKCJkZWYgdGVzdF90aGlzKCk6IGFzc2VydCAwIikKKyAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgnLXJwJykKKyAgICBhc3NlcnQgJ3Nob3J0IHRlc3Qgc3VtbWFyeScgbm90
IGluIHJlc3VsdC5zdGRvdXQuc3RyKCkKKworCitkZWYgdGVzdF9wYXNzX291dHB1dF9yZXBvcnRp
bmcodGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBkZWYgdGVz
dF9wYXNzX291dHB1dCgpOgorICAgICAgICAgICAgcHJpbnQoIkZvdXIgc2NvcmUgYW5kIHNldmVu
IHllYXJzIGFnby4uLiIpCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCkKKyAgICBhc3NlcnQgJ0ZvdXIgc2NvcmUgYW5kIHNldmVuIHllYXJzIGFnby4uLicgbm90IGlu
IHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLXJQ
JykKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiRm91ciBzY29y
ZSBhbmQgc2V2ZW4geWVhcnMgYWdvLi4uIiwKKyAgICBdKQorCisKK2RlZiB0ZXN0X2NvbG9yX3ll
cyh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoImRlZiB0ZXN0X3RoaXMoKTogYXNz
ZXJ0IDEiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctLWNvbG9yPXllcycpCisg
ICAgYXNzZXJ0ICd0ZXN0IHNlc3Npb24gc3RhcnRzJyBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisg
ICAgYXNzZXJ0ICdceDFiWzFtJyBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKworZGVmIHRlc3Rf
Y29sb3Jfbm8odGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCJkZWYgdGVzdF90aGlz
KCk6IGFzc2VydCAxIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLS1jb2xvcj1u
bycpCisgICAgYXNzZXJ0ICd0ZXN0IHNlc3Npb24gc3RhcnRzJyBpbiByZXN1bHQuc3Rkb3V0LnN0
cigpCisgICAgYXNzZXJ0ICdceDFiWzFtJyBub3QgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorCisK
K0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgndmVyYm9zZScsIFtUcnVlLCBGYWxzZV0pCitkZWYg
dGVzdF9jb2xvcl95ZXNfY29sbGVjdGlvbl9vbl9ub25fYXR0eSh0ZXN0ZGlyLCB2ZXJib3NlKToK
KyAgICAiIiJza2lwIGNvbGxlY3QgcHJvZ3Jlc3MgcmVwb3J0IHdoZW4gd29ya2luZyBvbiBub24t
dGVybWluYWxzLgorICAgICMxMzk3CisgICAgIiIiCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIi
IgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgnaScsIHJhbmdlKDEwKSkKKyAgICAgICAgZGVmIHRlc3RfdGhpcyhpKToKKyAgICAgICAgICAg
IGFzc2VydCAxCisgICAgIiIiKQorICAgIGFyZ3MgPSBbJy0tY29sb3I9eWVzJ10KKyAgICBpZiB2
ZXJib3NlOgorICAgICAgICBhcmdzLmFwcGVuZCgnLXZ2JykKKyAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgqYXJncykKKyAgICBhc3NlcnQgJ3Rlc3Qgc2Vzc2lvbiBzdGFydHMnIGluIHJl
c3VsdC5zdGRvdXQuc3RyKCkKKyAgICBhc3NlcnQgJ1x4MWJbMW0nIGluIHJlc3VsdC5zdGRvdXQu
c3RyKCkKKyAgICBhc3NlcnQgJ2NvbGxlY3RpbmcgMTAgaXRlbXMnIG5vdCBpbiByZXN1bHQuc3Rk
b3V0LnN0cigpCisgICAgaWYgdmVyYm9zZToKKyAgICAgICAgYXNzZXJ0ICdjb2xsZWN0aW5nIC4u
LicgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorICAgIGFzc2VydCAnY29sbGVjdGVkIDEwIGl0ZW1z
JyBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKworZGVmIHRlc3RfZ2V0cmVwb3J0b3B0KCk6Cisg
ICAgY2xhc3MgY29uZmlnKG9iamVjdCk6CisgICAgICAgIGNsYXNzIG9wdGlvbihvYmplY3QpOgor
ICAgICAgICAgICAgcmVwb3J0Y2hhcnMgPSAiIgorICAgICAgICAgICAgZGlzYWJsZV93YXJuaW5n
cyA9IFRydWUKKworICAgIGNvbmZpZy5vcHRpb24ucmVwb3J0Y2hhcnMgPSAic2YiCisgICAgYXNz
ZXJ0IGdldHJlcG9ydG9wdChjb25maWcpID09ICJzZiIKKworICAgIGNvbmZpZy5vcHRpb24ucmVw
b3J0Y2hhcnMgPSAic2Z4dyIKKyAgICBhc3NlcnQgZ2V0cmVwb3J0b3B0KGNvbmZpZykgPT0gInNm
eCIKKworICAgIGNvbmZpZy5vcHRpb24ucmVwb3J0Y2hhcnMgPSAic2Z4IgorICAgIGNvbmZpZy5v
cHRpb24uZGlzYWJsZV93YXJuaW5ncyA9IEZhbHNlCisgICAgYXNzZXJ0IGdldHJlcG9ydG9wdChj
b25maWcpID09ICJzZnh3IgorCisgICAgY29uZmlnLm9wdGlvbi5yZXBvcnRjaGFycyA9ICJzZnh3
IgorICAgIGNvbmZpZy5vcHRpb24uZGlzYWJsZV93YXJuaW5ncyA9IEZhbHNlCisgICAgYXNzZXJ0
IGdldHJlcG9ydG9wdChjb25maWcpID09ICJzZnh3IgorCisKK2RlZiB0ZXN0X3Rlcm1pbmFscmVw
b3J0ZXJfcmVwb3J0b3B0X2FkZG9wdHModGVzdGRpcik6CisgICAgdGVzdGRpci5tYWtlaW5pKCJb
cHl0ZXN0XVxuYWRkb3B0cz0tcnMiKQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAg
ICAgaW1wb3J0IHB5dGVzdAorCisgICAgICAgIEBweXRlc3QuZml4dHVyZQorICAgICAgICBkZWYg
dHIocmVxdWVzdCk6CisgICAgICAgICAgICB0ciA9IHJlcXVlc3QuY29uZmlnLnBsdWdpbm1hbmFn
ZXIuZ2V0cGx1Z2luKCJ0ZXJtaW5hbHJlcG9ydGVyIikKKyAgICAgICAgICAgIHJldHVybiB0cgor
ICAgICAgICBkZWYgdGVzdF9vcHQodHIpOgorICAgICAgICAgICAgYXNzZXJ0IHRyLmhhc29wdCgn
c2tpcHBlZCcpCisgICAgICAgICAgICBhc3NlcnQgbm90IHRyLmhhc29wdCgncXdlJykKKyAgICAi
IiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIHJlc3VsdC5zdGRvdXQu
Zm5tYXRjaF9saW5lcyhbCisgICAgICAgICIqMSBwYXNzZWQqIgorICAgIF0pCisKKworZGVmIHRl
c3RfdGJzdHlsZV9zaG9ydCh0ZXN0ZGlyKToKKyAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIi
IgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAg
ICAgIGRlZiBhcmcocmVxdWVzdCk6CisgICAgICAgICAgICByZXR1cm4gNDIKKyAgICAgICAgZGVm
IHRlc3Rfb3B0KGFyZyk6CisgICAgICAgICAgICB4ID0gMAorICAgICAgICAgICAgYXNzZXJ0IHgK
KyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi0tdGI9c2hvcnQiKQor
ICAgIHMgPSByZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgYXNzZXJ0ICdhcmcgPSA0Micgbm90IGlu
IHMKKyAgICBhc3NlcnQgJ3ggPSAwJyBub3QgaW4gcworICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcyhbCisgICAgICAgICIqJXM6OCoiICUgcC5iYXNlbmFtZSwKKyAgICAgICAgIiAgICBh
c3NlcnQgeCIsCisgICAgICAgICJFICAgYXNzZXJ0KiIsCisgICAgXSkKKyAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcyA9IHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAgICBhc3Nl
cnQgJ3ggPSAwJyBpbiBzCisgICAgYXNzZXJ0ICdhc3NlcnQgeCcgaW4gcworCisKK2RlZiB0ZXN0
X3RyYWNlY29uZmlnKHRlc3RkaXIsIG1vbmtleXBhdGNoKToKKyAgICByZXN1bHQgPSB0ZXN0ZGly
LnJ1bnB5dGVzdCgiLS10cmFjZWNvbmZpZyIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKFsKKyAgICAgICAgIiphY3RpdmUgcGx1Z2lucyoiCisgICAgXSkKKyAgICBhc3NlcnQgcmVz
dWx0LnJldCA9PSBFWElUX05PVEVTVFNDT0xMRUNURUQKKworCitjbGFzcyBUZXN0R2VuZXJpY1Jl
cG9ydGluZyhvYmplY3QpOgorICAgICIiIiB0aGlzIHRlc3QgY2xhc3MgY2FuIGJlIHN1YmNsYXNz
ZWQgd2l0aCBhIGRpZmZlcmVudCBvcHRpb24KKyAgICAgICAgcHJvdmlkZXIgdG8gcnVuIGUuZy4g
ZGlzdHJpYnV0ZWQgdGVzdHMuCisgICAgIiIiCisKKyAgICBkZWYgdGVzdF9jb2xsZWN0X2ZhaWwo
c2VsZiwgdGVzdGRpciwgb3B0aW9uKToKKyAgICAgICAgdGVzdGRpci5tYWtlcHlmaWxlKCJpbXBv
cnQgeHl6XG4iKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgqb3B0aW9uLmFy
Z3MpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAi
SW1wb3J0RXJyb3Igd2hpbGUgaW1wb3J0aW5nKiIsCisgICAgICAgICAgICAiKk5vIG1vZHVsZSBu
YW1lZCAqeHl6KiIsCisgICAgICAgICAgICAiKjEgZXJyb3IqIiwKKyAgICAgICAgXSkKKworICAg
IGRlZiB0ZXN0X21heGZhaWx1cmVzKHNlbGYsIHRlc3RkaXIsIG9wdGlvbik6CisgICAgICAgIHRl
c3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEoKToKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgMAorICAgICAgICAgICAgZGVmIHRlc3RfMigpOgorICAgICAgICAgICAg
ICAgIGFzc2VydCAwCisgICAgICAgICAgICBkZWYgdGVzdF8zKCk6CisgICAgICAgICAgICAgICAg
YXNzZXJ0IDAKKyAgICAgICAgIiIiKQorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVz
dCgiLS1tYXhmYWlsPTIiLCAqb3B0aW9uLmFyZ3MpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5t
YXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKmRlZiB0ZXN0XzEoKToqIiwKKyAgICAgICAgICAg
ICIqZGVmIHRlc3RfMigpOioiLAorICAgICAgICAgICAgIioyIGZhaWxlZCoiLAorICAgICAgICBd
KQorCisgICAgZGVmIHRlc3RfdGJfb3B0aW9uKHNlbGYsIHRlc3RkaXIsIG9wdGlvbik6CisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAg
ICAgICAgICAgIGRlZiBnKCk6CisgICAgICAgICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcgorICAg
ICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAgICAgIHByaW50ICg2KjcpCisg
ICAgICAgICAgICAgICAgZygpICAjIC0tY2FsbGluZy0tCisgICAgICAgICIiIikKKyAgICAgICAg
Zm9yIHRib3B0IGluIFsibG9uZyIsICJzaG9ydCIsICJubyJdOgorICAgICAgICAgICAgcHJpbnQo
J3Rlc3RpbmcgLS10Yj0lcy4uLicgJSB0Ym9wdCkKKyAgICAgICAgICAgIHJlc3VsdCA9IHRlc3Rk
aXIucnVucHl0ZXN0KCctLXRiPSVzJyAlIHRib3B0KQorICAgICAgICAgICAgcyA9IHJlc3VsdC5z
dGRvdXQuc3RyKCkKKyAgICAgICAgICAgIGlmIHRib3B0ID09ICJsb25nIjoKKyAgICAgICAgICAg
ICAgICBhc3NlcnQgJ3ByaW50ICg2KjcpJyBpbiBzCisgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgIGFzc2VydCAncHJpbnQgKDYqNyknIG5vdCBpbiBzCisgICAgICAgICAgICBpZiB0
Ym9wdCAhPSAibm8iOgorICAgICAgICAgICAgICAgIGFzc2VydCAnLS1jYWxsaW5nLS0nIGluIHMK
KyAgICAgICAgICAgICAgICBhc3NlcnQgJ0luZGV4RXJyb3InIGluIHMKKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgYXNzZXJ0ICdGQUlMVVJFUycgbm90IGluIHMKKyAgICAgICAg
ICAgICAgICBhc3NlcnQgJy0tY2FsbGluZy0tJyBub3QgaW4gcworICAgICAgICAgICAgICAgIGFz
c2VydCAnSW5kZXhFcnJvcicgbm90IGluIHMKKworICAgIGRlZiB0ZXN0X3RiX2NyYXNobGluZShz
ZWxmLCB0ZXN0ZGlyLCBvcHRpb24pOgorICAgICAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIi
IgorICAgICAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICAgICAgZGVmIGcoKToKKyAgICAg
ICAgICAgICAgICByYWlzZSBJbmRleEVycm9yCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jMSgp
OgorICAgICAgICAgICAgICAgIHByaW50ICg2KjcpCisgICAgICAgICAgICAgICAgZygpICAjIC0t
Y2FsbGluZy0tCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jMigpOgorICAgICAgICAgICAgICAg
IGFzc2VydCAwLCAiaGVsbG8iCisgICAgICAgICIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoIi0tdGI9bGluZSIpCisgICAgICAgIGJuID0gcC5iYXNlbmFtZQorICAgICAg
ICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIiolczozOiBJbmRl
eEVycm9yKiIgJSBibiwKKyAgICAgICAgICAgICIqJXM6ODogQXNzZXJ0aW9uRXJyb3I6IGhlbGxv
KiIgJSBibiwKKyAgICAgICAgXSkKKyAgICAgICAgcyA9IHJlc3VsdC5zdGRvdXQuc3RyKCkKKyAg
ICAgICAgYXNzZXJ0ICJkZWYgdGVzdF9mdW5jMiIgbm90IGluIHMKKworICAgIGRlZiB0ZXN0X3B5
dGVzdF9yZXBvcnRfaGVhZGVyKHNlbGYsIHRlc3RkaXIsIG9wdGlvbik6CisgICAgICAgIHRlc3Rk
aXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICAgICAgZGVmIHB5dGVzdF9zZXNzaW9uc3RhcnQo
c2Vzc2lvbik6CisgICAgICAgICAgICAgICAgc2Vzc2lvbi5jb25maWcuX3NvbWV2YWx1ZSA9IDQy
CisgICAgICAgICAgICBkZWYgcHl0ZXN0X3JlcG9ydF9oZWFkZXIoY29uZmlnKToKKyAgICAgICAg
ICAgICAgICByZXR1cm4gImhlbGxvOiAlcyIgJSBjb25maWcuX3NvbWV2YWx1ZQorICAgICAgICAi
IiIpCisgICAgICAgIHRlc3RkaXIubWtkaXIoImEiKS5qb2luKCJjb25mdGVzdC5weSIpLndyaXRl
KCIiIgorZGVmIHB5dGVzdF9yZXBvcnRfaGVhZGVyKGNvbmZpZywgc3RhcnRkaXIpOgorICAgIHJl
dHVybiBbImxpbmUxIiwgc3RyKHN0YXJ0ZGlyKV0KKyIiIikKKyAgICAgICAgcmVzdWx0ID0gdGVz
dGRpci5ydW5weXRlc3QoImEiKQorICAgICAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WworICAgICAgICAgICAgIipoZWxsbzogNDIqIiwKKyAgICAgICAgICAgICJsaW5lMSIsCisgICAg
ICAgICAgICBzdHIodGVzdGRpci50bXBkaXIpLAorICAgICAgICBdKQorCisKK0BweXRlc3QubWFy
ay54ZmFpbCgibm90IGhhc2F0dHIob3MsICdkdXAnKSIpCitkZWYgdGVzdF9mZG9wZW5fa2VwdF9h
bGl2ZV9pc3N1ZTEyNCh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAg
ICAgIGltcG9ydCBvcywgc3lzCisgICAgICAgIGsgPSBbXQorICAgICAgICBkZWYgdGVzdF9vcGVu
X2ZpbGVfYW5kX2tlZXBfYWxpdmUoY2FwZmQpOgorICAgICAgICAgICAgc3Rkb3V0ID0gb3MuZmRv
cGVuKDEsICd3JywgMSkKKyAgICAgICAgICAgIGsuYXBwZW5kKHN0ZG91dCkKKworICAgICAgICBk
ZWYgdGVzdF9jbG9zZV9rZXB0X2FsaXZlX2ZpbGUoKToKKyAgICAgICAgICAgIHN0ZG91dCA9IGsu
cG9wKCkKKyAgICAgICAgICAgIHN0ZG91dC5jbG9zZSgpCisgICAgIiIiKQorICAgIHJlc3VsdCA9
IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWwor
ICAgICAgICAiKjIgcGFzc2VkKiIKKyAgICBdKQorCisKK2RlZiB0ZXN0X3Ric3R5bGVfbmF0aXZl
X3NldHVwX2Vycm9yKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAg
ICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBAcHl0ZXN0LmZpeHR1cmUKKyAgICAgICAgZGVmIHNl
dHVwX2Vycm9yX2ZpeHR1cmUoKToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiZXJyb3Ig
aW4gZXhjZXB0aW9uIikKKworICAgICAgICBkZWYgdGVzdF9lcnJvcl9maXh0dXJlKHNldHVwX2Vy
cm9yX2ZpeHR1cmUpOgorICAgICAgICAgICAgcGFzcworICAgICIiIikKKyAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgiLS10Yj1uYXRpdmUiKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRj
aF9saW5lcyhbCisgICAgICAgICcqRmlsZSAqdGVzdF90YnN0eWxlX25hdGl2ZV9zZXR1cF9lcnJv
ci5weSIsIGxpbmUgKiwgaW4gc2V0dXBfZXJyb3JfZml4dHVyZSonCisgICAgXSkKKworCitkZWYg
dGVzdF90ZXJtaW5hbF9zdW1tYXJ5KHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0
KCIiIgorICAgICAgICBkZWYgcHl0ZXN0X3Rlcm1pbmFsX3N1bW1hcnkodGVybWluYWxyZXBvcnRl
ciwgZXhpdHN0YXR1cyk6CisgICAgICAgICAgICB3ID0gdGVybWluYWxyZXBvcnRlcgorICAgICAg
ICAgICAgdy5zZWN0aW9uKCJoZWxsbyIpCisgICAgICAgICAgICB3LmxpbmUoIndvcmxkIikKKyAg
ICAgICAgICAgIHcubGluZSgiZXhpdHN0YXR1czogezB9Ii5mb3JtYXQoZXhpdHN0YXR1cykpCisg
ICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoIiIiCisgICAgICAgICo9PT09IGhlbGxvID09PT0qCisgICAgICAg
IHdvcmxkCisgICAgICAgIGV4aXRzdGF0dXM6IDUKKyAgICAiIiIpCisKKworZGVmIHRlc3RfdGVy
bWluYWxfc3VtbWFyeV93YXJuaW5nc19hcmVfZGlzcGxheWVkKHRlc3RkaXIpOgorICAgICIiIlRl
c3QgdGhhdCB3YXJuaW5ncyBlbWl0dGVkIGR1cmluZyBweXRlc3RfdGVybWluYWxfc3VtbWFyeSBh
cmUgZGlzcGxheWVkLgorICAgICgjMTMwNSkuCisgICAgIiIiCisgICAgdGVzdGRpci5tYWtlY29u
ZnRlc3QoIiIiCisgICAgICAgIGRlZiBweXRlc3RfdGVybWluYWxfc3VtbWFyeSh0ZXJtaW5hbHJl
cG9ydGVyKToKKyAgICAgICAgICAgIGNvbmZpZyA9IHRlcm1pbmFscmVwb3J0ZXIuY29uZmlnCisg
ICAgICAgICAgICBjb25maWcud2FybignQzEnLCAnaW50ZXJuYWwgd2FybmluZycpCisgICAgIiIi
KQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCctcncnKQorICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICcqaW50ZXJuYWwgd2FybmluZycsCisgICAgICAg
ICcqPT0gMSB3YXJuaW5ncyBpbiAqJywKKyAgICBdKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0
cml6ZSgiZXhwX2NvbG9yLCBleHBfbGluZSwgc3RhdHNfYXJnIiwgWworICAgICMgVGhlIG1ldGhv
ZCB1bmRlciB0ZXN0IG9ubHkgY2FyZXMgYWJvdXQgdGhlIGxlbmd0aCBvZiBlYWNoCisgICAgIyBk
aWN0IHZhbHVlLCBub3QgdGhlIGFjdHVhbCBjb250ZW50cywgc28gdHVwbGVzIG9mIGFueXRoaW5n
CisgICAgIyBzdWZmaWNlCisKKyAgICAjIEltcG9ydGFudCBzdGF0dXNlcyAtLSB0aGUgaGlnaGVz
dCBwcmlvcml0eSBvZiB0aGVzZSBhbHdheXMgd2lucworICAgICgicmVkIiwgIjEgZmFpbGVkIiwg
eyJmYWlsZWQiOiAoMSwpfSksCisgICAgKCJyZWQiLCAiMSBmYWlsZWQsIDEgcGFzc2VkIiwgeyJm
YWlsZWQiOiAoMSwpLCAicGFzc2VkIjogKDEsKX0pLAorCisgICAgKCJyZWQiLCAiMSBlcnJvciIs
IHsiZXJyb3IiOiAoMSwpfSksCisgICAgKCJyZWQiLCAiMSBwYXNzZWQsIDEgZXJyb3IiLCB7ImVy
cm9yIjogKDEsKSwgInBhc3NlZCI6ICgxLCl9KSwKKworICAgICMgKGEgc3RhdHVzIHRoYXQncyBu
b3Qga25vd24gdG8gdGhlIGNvZGUpCisgICAgKCJ5ZWxsb3ciLCAiMSB3ZWlyZCIsIHsid2VpcmQi
OiAoMSwpfSksCisgICAgKCJ5ZWxsb3ciLCAiMSBwYXNzZWQsIDEgd2VpcmQiLCB7IndlaXJkIjog
KDEsKSwgInBhc3NlZCI6ICgxLCl9KSwKKworICAgICgieWVsbG93IiwgIjEgd2FybmluZ3MiLCB7
Indhcm5pbmdzIjogKDEsKX0pLAorICAgICgieWVsbG93IiwgIjEgcGFzc2VkLCAxIHdhcm5pbmdz
IiwgeyJ3YXJuaW5ncyI6ICgxLCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInBhc3NlZCI6ICgxLCl9KSwKKworICAgICgiZ3JlZW4iLCAiNSBwYXNzZWQiLCB7InBh
c3NlZCI6ICgxLCAyLCAzLCA0LCA1KX0pLAorCisKKyAgICAjICJCb3JpbmciIHN0YXR1c2VzLiAg
VGhlc2UgaGF2ZSBubyBlZmZlY3Qgb24gdGhlIGNvbG9yIG9mIHRoZSBzdW1tYXJ5CisgICAgIyBs
aW5lLiAgVGh1cywgaWYgKmV2ZXJ5KiB0ZXN0IGhhcyBhIGJvcmluZyBzdGF0dXMsIHRoZSBzdW1t
YXJ5IGxpbmUgc3RheXMKKyAgICAjIGF0IGl0cyBkZWZhdWx0IGNvbG9yLCBpLmUuIHllbGxvdywg
dG8gd2FybiB0aGUgdXNlciB0aGF0IHRoZSB0ZXN0IHJ1bgorICAgICMgcHJvZHVjZWQgbm8gdXNl
ZnVsIGluZm9ybWF0aW9uCisgICAgKCJ5ZWxsb3ciLCAiMSBza2lwcGVkIiwgeyJza2lwcGVkIjog
KDEsKX0pLAorICAgICgiZ3JlZW4iLCAiMSBwYXNzZWQsIDEgc2tpcHBlZCIsIHsic2tpcHBlZCI6
ICgxLCksICJwYXNzZWQiOiAoMSwpfSksCisKKyAgICAoInllbGxvdyIsICIxIGRlc2VsZWN0ZWQi
LCB7ImRlc2VsZWN0ZWQiOiAoMSwpfSksCisgICAgKCJncmVlbiIsICIxIHBhc3NlZCwgMSBkZXNl
bGVjdGVkIiwgeyJkZXNlbGVjdGVkIjogKDEsKSwgInBhc3NlZCI6ICgxLCl9KSwKKworICAgICgi
eWVsbG93IiwgIjEgeGZhaWxlZCIsIHsieGZhaWxlZCI6ICgxLCl9KSwKKyAgICAoImdyZWVuIiwg
IjEgcGFzc2VkLCAxIHhmYWlsZWQiLCB7InhmYWlsZWQiOiAoMSwpLCAicGFzc2VkIjogKDEsKX0p
LAorCisgICAgKCJ5ZWxsb3ciLCAiMSB4cGFzc2VkIiwgeyJ4cGFzc2VkIjogKDEsKX0pLAorICAg
ICgiZ3JlZW4iLCAiMSBwYXNzZWQsIDEgeHBhc3NlZCIsIHsieHBhc3NlZCI6ICgxLCksICJwYXNz
ZWQiOiAoMSwpfSksCisKKyAgICAjIExpa2V3aXNlIGlmIG5vIHRlc3RzIHdlcmUgZm91bmQgYXQg
YWxsCisgICAgKCJ5ZWxsb3ciLCAibm8gdGVzdHMgcmFuIiwge30pLAorCisgICAgIyBUZXN0IHRo
ZSBlbXB0eS1rZXkgc3BlY2lhbCBjYXNlCisgICAgKCJ5ZWxsb3ciLCAibm8gdGVzdHMgcmFuIiwg
eyIiOiAoMSwpfSksCisgICAgKCJncmVlbiIsICIxIHBhc3NlZCIsIHsiIjogKDEsKSwgInBhc3Nl
ZCI6ICgxLCl9KSwKKworCisgICAgIyBBIGNvdXBsZSBtb3JlIGNvbXBsZXggY29tYmluYXRpb25z
CisgICAgKCJyZWQiLCAiMSBmYWlsZWQsIDIgcGFzc2VkLCAzIHhmYWlsZWQiLAorICAgICAgICB7
InBhc3NlZCI6ICgxLCAyKSwgImZhaWxlZCI6ICgxLCksICJ4ZmFpbGVkIjogKDEsIDIsIDMpfSks
CisKKyAgICAoImdyZWVuIiwgIjEgcGFzc2VkLCAyIHNraXBwZWQsIDMgZGVzZWxlY3RlZCwgMiB4
ZmFpbGVkIiwKKyAgICAgICAgeyJwYXNzZWQiOiAoMSwpLAorICAgICAgICAgInNraXBwZWQiOiAo
MSwgMiksCisgICAgICAgICAiZGVzZWxlY3RlZCI6ICgxLCAyLCAzKSwKKyAgICAgICAgICJ4ZmFp
bGVkIjogKDEsIDIpfSksCitdKQorZGVmIHRlc3Rfc3VtbWFyeV9zdGF0cyhleHBfbGluZSwgZXhw
X2NvbG9yLCBzdGF0c19hcmcpOgorICAgIHByaW50KCJCYXNlZCBvbiBzdGF0czogJXMiICUgc3Rh
dHNfYXJnKQorICAgIHByaW50KCJFeHBlY3Qgc3VtbWFyeTogXCIlc1wiOyB3aXRoIGNvbG9yIFwi
JXNcIiIgJSAoZXhwX2xpbmUsIGV4cF9jb2xvcikpCisgICAgKGxpbmUsIGNvbG9yKSA9IGJ1aWxk
X3N1bW1hcnlfc3RhdHNfbGluZShzdGF0c19hcmcpCisgICAgcHJpbnQoIkFjdHVhbGx5IGdvdDog
ICBcIiVzXCI7IHdpdGggY29sb3IgXCIlc1wiIiAlIChsaW5lLCBjb2xvcikpCisgICAgYXNzZXJ0
IGxpbmUgPT0gZXhwX2xpbmUKKyAgICBhc3NlcnQgY29sb3IgPT0gZXhwX2NvbG9yCisKKworZGVm
IHRlc3Rfbm9fdHJhaWxpbmdfd2hpdGVzcGFjZV9hZnRlcl9pbmlmaWxlX3dvcmQodGVzdGRpcik6
CisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoJycpCisgICAgYXNzZXJ0ICdpbmlmaWxl
OlxuJyBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKyAgICB0ZXN0ZGlyLm1ha2VpbmkoJ1tweXRl
c3RdJykKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnJykKKyAgICBhc3NlcnQgJ2lu
aWZpbGU6IHRveC5pbmlcbicgaW4gcmVzdWx0LnN0ZG91dC5zdHIoKQorCisKK2NsYXNzIFRlc3RQ
cm9ncmVzczoKKworICAgIEBweXRlc3QuZml4dHVyZQorICAgIGRlZiBtYW55X3Rlc3RzX2ZpbGUo
c2VsZiwgdGVzdGRpcik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgKKyAgICAgICAgICAg
IHRlc3RfYmFyPSIiIgorICAgICAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgICAg
ICAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2knLCByYW5nZSgxMCkpCisgICAgICAgICAg
ICAgICAgZGVmIHRlc3RfYmFyKGkpOiBwYXNzCisgICAgICAgICAgICAiIiIsCisgICAgICAgICAg
ICB0ZXN0X2Zvbz0iIiIKKyAgICAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAg
ICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdpJywgcmFuZ2UoNSkpCisgICAgICAgICAg
ICAgICAgZGVmIHRlc3RfZm9vKGkpOiBwYXNzCisgICAgICAgICAgICAiIiIsCisgICAgICAgICAg
ICB0ZXN0X2Zvb2Jhcj0iIiIKKyAgICAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAg
ICAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdpJywgcmFuZ2UoNSkpCisgICAgICAg
ICAgICAgICAgZGVmIHRlc3RfZm9vYmFyKGkpOiBwYXNzCisgICAgICAgICAgICAiIiIsCisgICAg
ICAgICkKKworICAgIGRlZiB0ZXN0X3plcm9fdGVzdHNfY29sbGVjdGVkKHNlbGYsIHRlc3RkaXIp
OgorICAgICAgICAiIiJTb21lIHBsdWdpbnMgKHRlc3Rtb24gZm9yIGV4YW1wbGUpIG1pZ2h0IGlz
c3VlIHB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydCB3aXRob3V0IGFueSB0ZXN0cyBiZWluZworICAg
ICAgICBhY3R1YWxseSBjb2xsZWN0ZWQgKCMyOTcxKS4iIiIKKyAgICAgICAgdGVzdGRpci5tYWtl
Y29uZnRlc3QoIiIiCisgICAgICAgIGRlZiBweXRlc3RfY29sbGVjdGlvbl9tb2RpZnlpdGVtcyhp
dGVtcywgY29uZmlnKToKKyAgICAgICAgICAgIGZyb20gX3B5dGVzdC5ydW5uZXIgaW1wb3J0IENv
bGxlY3RSZXBvcnQKKyAgICAgICAgICAgIGZvciBub2RlX2lkIGluICgnbm9kZWlkMScsICdub2Rl
aWQyJyk6CisgICAgICAgICAgICAgICAgcmVwID0gQ29sbGVjdFJlcG9ydChub2RlX2lkLCAncGFz
c2VkJywgTm9uZSwgTm9uZSkKKyAgICAgICAgICAgICAgICByZXAud2hlbiA9ICdwYXNzZWQnCisg
ICAgICAgICAgICAgICAgcmVwLmR1cmF0aW9uID0gMC4xCisgICAgICAgICAgICAgICAgY29uZmln
Lmhvb2sucHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0KHJlcG9ydD1yZXApCisgICAgICAgICIiIikK
KyAgICAgICAgb3V0cHV0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICBhc3NlcnQgJ1pl
cm9EaXZpc2lvbkVycm9yJyBub3QgaW4gb3V0cHV0LnN0ZG91dC5zdHIoKQorICAgICAgICBvdXRw
dXQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgJz0qIDIgcGFzc2VkIGluICo9
JywKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X25vcm1hbChzZWxmLCBtYW55X3Rlc3RzX2Zp
bGUsIHRlc3RkaXIpOgorICAgICAgICBvdXRwdXQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAg
ICAgIG91dHB1dC5zdGRvdXQucmVfbWF0Y2hfbGluZXMoWworICAgICAgICAgICAgcid0ZXN0X2Jh
ci5weSBcLnsxMH0gXHMrIFxbIDUwJVxdJywKKyAgICAgICAgICAgIHIndGVzdF9mb28ucHkgXC57
NX0gXHMrIFxbIDc1JVxdJywKKyAgICAgICAgICAgIHIndGVzdF9mb29iYXIucHkgXC57NX0gXHMr
IFxbMTAwJVxdJywKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X3ZlcmJvc2Uoc2VsZiwgbWFu
eV90ZXN0c19maWxlLCB0ZXN0ZGlyKToKKyAgICAgICAgb3V0cHV0ID0gdGVzdGRpci5ydW5weXRl
c3QoJy12JykKKyAgICAgICAgb3V0cHV0LnN0ZG91dC5yZV9tYXRjaF9saW5lcyhbCisgICAgICAg
ICAgICByJ3Rlc3RfYmFyLnB5Ojp0ZXN0X2JhclxbMFxdIFBBU1NFRCBccysgXFsgIDUlXF0nLAor
ICAgICAgICAgICAgcid0ZXN0X2Zvby5weTo6dGVzdF9mb29cWzRcXSBQQVNTRUQgXHMrIFxbIDc1
JVxdJywKKyAgICAgICAgICAgIHIndGVzdF9mb29iYXIucHk6OnRlc3RfZm9vYmFyXFs0XF0gUEFT
U0VEIFxzKyBcWzEwMCVcXScsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF94ZGlzdF9ub3Jt
YWwoc2VsZiwgbWFueV90ZXN0c19maWxlLCB0ZXN0ZGlyKToKKyAgICAgICAgcHl0ZXN0LmltcG9y
dG9yc2tpcCgneGRpc3QnKQorICAgICAgICBvdXRwdXQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgnLW4y
JykKKyAgICAgICAgb3V0cHV0LnN0ZG91dC5yZV9tYXRjaF9saW5lcyhbCisgICAgICAgICAgICBy
J1wuezIwfSBccysgXFsxMDAlXF0nLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfeGRpc3Rf
dmVyYm9zZShzZWxmLCBtYW55X3Rlc3RzX2ZpbGUsIHRlc3RkaXIpOgorICAgICAgICBweXRlc3Qu
aW1wb3J0b3Jza2lwKCd4ZGlzdCcpCisgICAgICAgIG91dHB1dCA9IHRlc3RkaXIucnVucHl0ZXN0
KCctbjInLCAnLXYnKQorICAgICAgICBvdXRwdXQuc3Rkb3V0LnJlX21hdGNoX2xpbmVzX3JhbmRv
bShbCisgICAgICAgICAgICByJ1xbZ3dcZFxdIFxbXHMqXGQrJVxdIFBBU1NFRCB0ZXN0X2Jhci5w
eTo6dGVzdF9iYXJcWzFcXScsCisgICAgICAgICAgICByJ1xbZ3dcZFxdIFxbXHMqXGQrJVxdIFBB
U1NFRCB0ZXN0X2Zvby5weTo6dGVzdF9mb29cWzFcXScsCisgICAgICAgICAgICByJ1xbZ3dcZFxd
IFxbXHMqXGQrJVxdIFBBU1NFRCB0ZXN0X2Zvb2Jhci5weTo6dGVzdF9mb29iYXJcWzFcXScsCisg
ICAgICAgIF0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfdG1wZGlyLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3RtcGRpci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjdlNzcy
NTJlNzgxZTlkYzhhNDRhYzFjNDE4YjBiOTI5MzI4ZjRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy90ZXN0X3RtcGRpci5weQpAQCAtMCwwICsxLDE4OCBAQAorZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlv
bgoraW1wb3J0IHN5cworaW1wb3J0IHB5CitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gX3B5dGVzdC50
bXBkaXIgaW1wb3J0IHRtcGRpcgorCisKK2RlZiB0ZXN0X2Z1bmNhcmcodGVzdGRpcik6CisgICAg
dGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICAgICAgZGVmIHB5dGVzdF9nZW5lcmF0ZV90
ZXN0cyhtZXRhZnVuYyk6CisgICAgICAgICAgICAgICAgbWV0YWZ1bmMuYWRkY2FsbChpZD0nYScp
CisgICAgICAgICAgICAgICAgbWV0YWZ1bmMuYWRkY2FsbChpZD0nYicpCisgICAgICAgICAgICBk
ZWYgdGVzdF9mdW5jKHRtcGRpcik6IHBhc3MKKyAgICAiIiIpCisgICAgZnJvbSBfcHl0ZXN0LnRt
cGRpciBpbXBvcnQgVGVtcGRpckZhY3RvcnkKKyAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9y
dW4oKQorICAgIGNhbGxzID0gcmVwcmVjLmdldGNhbGxzKCJweXRlc3RfcnVudGVzdF9zZXR1cCIp
CisgICAgaXRlbSA9IGNhbGxzWzBdLml0ZW0KKyAgICBjb25maWcgPSBpdGVtLmNvbmZpZworICAg
IHRtcGRpcmhhbmRsZXIgPSBUZW1wZGlyRmFjdG9yeShjb25maWcpCisgICAgaXRlbS5faW5pdHJl
cXVlc3QoKQorICAgIHAgPSB0bXBkaXIoaXRlbS5fcmVxdWVzdCwgdG1wZGlyaGFuZGxlcikKKyAg
ICBhc3NlcnQgcC5jaGVjaygpCisgICAgYm4gPSBwLmJhc2VuYW1lLnN0cmlwKCIwMTIzNDU2Nzg5
IikKKyAgICBhc3NlcnQgYm4uZW5kc3dpdGgoInRlc3RfZnVuY19hXyIpCisgICAgaXRlbS5uYW1l
ID0gInF3ZS9cXGFiYyIKKyAgICBwID0gdG1wZGlyKGl0ZW0uX3JlcXVlc3QsIHRtcGRpcmhhbmRs
ZXIpCisgICAgYXNzZXJ0IHAuY2hlY2soKQorICAgIGJuID0gcC5iYXNlbmFtZS5zdHJpcCgiMDEy
MzQ1Njc4OSIpCisgICAgYXNzZXJ0IGJuID09ICJxd2VfX2FiYyIKKworCitkZWYgdGVzdF9lbnN1
cmV0ZW1wKHJlY3dhcm4pOgorICAgIGQxID0gcHl0ZXN0LmVuc3VyZXRlbXAoJ2hlbGxvJykKKyAg
ICBkMiA9IHB5dGVzdC5lbnN1cmV0ZW1wKCdoZWxsbycpCisgICAgYXNzZXJ0IGQxID09IGQyCisg
ICAgYXNzZXJ0IGQxLmNoZWNrKGRpcj0xKQorCisKK2NsYXNzIFRlc3RUZW1wZGlySGFuZGxlcihv
YmplY3QpOgorICAgIGRlZiB0ZXN0X21rdGVtcChzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgZnJv
bSBfcHl0ZXN0LnRtcGRpciBpbXBvcnQgVGVtcGRpckZhY3RvcnkKKyAgICAgICAgY29uZmlnID0g
dGVzdGRpci5wYXJzZWNvbmZpZygpCisgICAgICAgIGNvbmZpZy5vcHRpb24uYmFzZXRlbXAgPSB0
ZXN0ZGlyLm1rZGlyKCJoZWxsbyIpCisgICAgICAgIHQgPSBUZW1wZGlyRmFjdG9yeShjb25maWcp
CisgICAgICAgIHRtcCA9IHQubWt0ZW1wKCJ3b3JsZCIpCisgICAgICAgIGFzc2VydCB0bXAucmVs
dG8odC5nZXRiYXNldGVtcCgpKSA9PSAid29ybGQwIgorICAgICAgICB0bXAgPSB0Lm1rdGVtcCgi
dGhpcyIpCisgICAgICAgIGFzc2VydCB0bXAucmVsdG8odC5nZXRiYXNldGVtcCgpKS5zdGFydHN3
aXRoKCJ0aGlzIikKKyAgICAgICAgdG1wMiA9IHQubWt0ZW1wKCJ0aGlzIikKKyAgICAgICAgYXNz
ZXJ0IHRtcDIucmVsdG8odC5nZXRiYXNldGVtcCgpKS5zdGFydHN3aXRoKCJ0aGlzIikKKyAgICAg
ICAgYXNzZXJ0IHRtcDIgIT0gdG1wCisKKworY2xhc3MgVGVzdENvbmZpZ1RtcGRpcihvYmplY3Qp
OgorICAgIGRlZiB0ZXN0X2dldGJhc2V0ZW1wX2N1c3RvbV9yZW1vdmVzX29sZChzZWxmLCB0ZXN0
ZGlyKToKKyAgICAgICAgbXl0ZW1wID0gdGVzdGRpci50bXBkaXIuam9pbigieHl6IikKKyAgICAg
ICAgcCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGRlZiB0ZXN0XzEodG1w
ZGlyKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgdGVzdGRp
ci5ydW5weXRlc3QocCwgJy0tYmFzZXRlbXA9JXMnICUgbXl0ZW1wKQorICAgICAgICBteXRlbXAu
Y2hlY2soKQorICAgICAgICBteXRlbXAuZW5zdXJlKCJoZWxsbyIpCisKKyAgICAgICAgdGVzdGRp
ci5ydW5weXRlc3QocCwgJy0tYmFzZXRlbXA9JXMnICUgbXl0ZW1wKQorICAgICAgICBteXRlbXAu
Y2hlY2soKQorICAgICAgICBhc3NlcnQgbm90IG15dGVtcC5qb2luKCJoZWxsbyIpLmNoZWNrKCkK
KworCitkZWYgdGVzdF9iYXNldGVtcCh0ZXN0ZGlyKToKKyAgICBteXRlbXAgPSB0ZXN0ZGlyLnRt
cGRpci5ta2RpcigibXl0ZW1wIikKKyAgICBwID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAg
ICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGRlZiB0ZXN0XzEoKToKKyAgICAgICAgICAgIHB5
dGVzdC5lbnN1cmV0ZW1wKCJoZWxsbyIpCisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIu
cnVucHl0ZXN0KHAsICctLWJhc2V0ZW1wPSVzJyAlIG15dGVtcCkKKyAgICBhc3NlcnQgcmVzdWx0
LnJldCA9PSAwCisgICAgYXNzZXJ0IG15dGVtcC5qb2luKCdoZWxsbycpLmNoZWNrKCkKKworCitA
cHl0ZXN0Lm1hcmsuc2tpcGlmKG5vdCBoYXNhdHRyKHB5LnBhdGgubG9jYWwsICdta3N5bWxpbmt0
bycpLAorICAgICAgICAgICAgICAgICAgICByZWFzb249InN5bWxpbmsgbm90IGF2YWlsYWJsZSBv
biB0aGlzIHBsYXRmb3JtIikKK2RlZiB0ZXN0X3RtcGRpcl9hbHdheXNfaXNfcmVhbHBhdGgodGVz
dGRpcik6CisgICAgIyB0aGUgcmVhc29uIHdoeSB0bXBkaXIgc2hvdWxkIGJlIGEgcmVhbHBhdGgg
aXMgdGhhdAorICAgICMgd2hlbiB5b3UgY2QgdG8gaXQgYW5kIGRvICJvcy5nZXRjd2QoKSIgeW91
IHdpbGwgYW55d2F5CisgICAgIyBnZXQgdGhlIHJlYWxwYXRoLiAgVXNpbmcgdGhlIHN5bWxpbmtl
ZCBwYXRoIGNhbiB0aHVzCisgICAgIyBlYXNpbHkgcmVzdWx0IGluIHBhdGgtaW5lcXVhbGl0eQor
ICAgICMgWFhYIGlmIHRoYXQgcHJvdmVzIHRvIGJlIGEgcHJvYmxlbSwgY29uc2lkZXIgdXNpbmcK
KyAgICAjIG9zLmVudmlyb25bIlBXRCJdCisgICAgcmVhbHRlbXAgPSB0ZXN0ZGlyLnRtcGRpci5t
a2RpcigibXlyZWFsdGVtcCIpCisgICAgbGlua3RlbXAgPSB0ZXN0ZGlyLnRtcGRpci5qb2luKCJz
eW1saW5rdGVtcCIpCisgICAgbGlua3RlbXAubWtzeW1saW5rdG8ocmVhbHRlbXApCisgICAgcCA9
IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgZGVmIHRlc3RfMSh0bXBkaXIpOgorICAg
ICAgICAgICAgaW1wb3J0IG9zCisgICAgICAgICAgICBhc3NlcnQgb3MucGF0aC5yZWFscGF0aChz
dHIodG1wZGlyKSkgPT0gc3RyKHRtcGRpcikKKyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRp
ci5ydW5weXRlc3QoIi1zIiwgcCwgJy0tYmFzZXRlbXA9JXMvYnQnICUgbGlua3RlbXApCisgICAg
YXNzZXJ0IG5vdCByZXN1bHQucmV0CisKKworZGVmIHRlc3RfdG1wZGlyX3Rvb19sb25nX29uX3Bh
cmFtZXRyaXphdGlvbih0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAg
ICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJhcmci
LCBbIjEiKjEwMDBdKQorICAgICAgICBkZWYgdGVzdF9zb21lKGFyZywgdG1wZGlyKToKKyAgICAg
ICAgICAgIHRtcGRpci5lbnN1cmUoImhlbGxvIikKKyAgICAiIiIpCisgICAgcmVwcmVjID0gdGVz
dGRpci5pbmxpbmVfcnVuKCkKKyAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKwor
CitkZWYgdGVzdF90bXBkaXJfZmFjdG9yeSh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZp
bGUoIiIiCisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlKHNj
b3BlPSdzZXNzaW9uJykKKyAgICAgICAgZGVmIHNlc3Npb25fZGlyKHRtcGRpcl9mYWN0b3J5KToK
KyAgICAgICAgICAgIHJldHVybiB0bXBkaXJfZmFjdG9yeS5ta3RlbXAoJ2RhdGEnLCBudW1iZXJl
ZD1GYWxzZSkKKyAgICAgICAgZGVmIHRlc3Rfc29tZShzZXNzaW9uX2Rpcik6CisgICAgICAgICAg
ICBzZXNzaW9uX2Rpci5pc2RpcigpCisgICAgIiIiKQorICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5s
aW5lX3J1bigpCisgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisKKworZGVmIHRl
c3RfdG1wZGlyX2ZhbGxiYWNrX3RveF9lbnYodGVzdGRpciwgbW9ua2V5cGF0Y2gpOgorICAgICIi
IlRlc3QgdGhhdCB0bXBkaXIgd29ya3MgZXZlbiBpZiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgcmVx
dWlyZWQgYnkgZ2V0cGFzcworICAgIG1vZHVsZSBhcmUgbWlzc2luZyAoIzEwMTApLgorICAgICIi
IgorICAgIG1vbmtleXBhdGNoLmRlbGVudignVVNFUicsIHJhaXNpbmc9RmFsc2UpCisgICAgbW9u
a2V5cGF0Y2guZGVsZW52KCdVU0VSTkFNRScsIHJhaXNpbmc9RmFsc2UpCisgICAgdGVzdGRpci5t
YWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGRlZiB0ZXN0X3Nv
bWUodG1wZGlyKToKKyAgICAgICAgICAgIGFzc2VydCB0bXBkaXIuaXNkaXIoKQorICAgICIiIikK
KyAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4oKQorICAgIHJlcHJlYy5hc3NlcnRvdXRj
b21lKHBhc3NlZD0xKQorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGJyZWFrX2dldHVzZXIobW9u
a2V5cGF0Y2gpOgorICAgIG1vbmtleXBhdGNoLnNldGF0dHIoJ29zLmdldHVpZCcsIGxhbWJkYTog
LTEpCisgICAgIyB0YWtlbiBmcm9tIHB5dGhvbiAyLjcvMy40CisgICAgZm9yIGVudnZhciBpbiAo
J0xPR05BTUUnLCAnVVNFUicsICdMTkFNRScsICdVU0VSTkFNRScpOgorICAgICAgICBtb25rZXlw
YXRjaC5kZWxlbnYoZW52dmFyLCByYWlzaW5nPUZhbHNlKQorCisKK0BweXRlc3QubWFyay51c2Vm
aXh0dXJlcygiYnJlYWtfZ2V0dXNlciIpCitAcHl0ZXN0Lm1hcmsuc2tpcGlmKHN5cy5wbGF0Zm9y
bS5zdGFydHN3aXRoKCd3aW4nKSwgcmVhc29uPSdubyBvcy5nZXR1aWQgb24gd2luZG93cycpCitk
ZWYgdGVzdF90bXBkaXJfZmFsbGJhY2tfdWlkX25vdF9mb3VuZCh0ZXN0ZGlyKToKKyAgICAiIiJU
ZXN0IHRoYXQgdG1wZGlyIHdvcmtzIGV2ZW4gaWYgdGhlIGN1cnJlbnQgcHJvY2VzcydzIHVzZXIg
aWQgZG9lcyBub3QKKyAgICBjb3JyZXNwb25kIHRvIGEgdmFsaWQgdXNlci4KKyAgICAiIiIKKwor
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAg
ICBkZWYgdGVzdF9zb21lKHRtcGRpcik6CisgICAgICAgICAgICBhc3NlcnQgdG1wZGlyLmlzZGly
KCkKKyAgICAiIiIpCisgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAgICByZXBy
ZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKKworCitAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMo
ImJyZWFrX2dldHVzZXIiKQorQHB5dGVzdC5tYXJrLnNraXBpZihzeXMucGxhdGZvcm0uc3RhcnRz
d2l0aCgnd2luJyksIHJlYXNvbj0nbm8gb3MuZ2V0dWlkIG9uIHdpbmRvd3MnKQorZGVmIHRlc3Rf
Z2V0X3VzZXJfdWlkX25vdF9mb3VuZCgpOgorICAgICIiIlRlc3QgdGhhdCBnZXRfdXNlcigpIGZ1
bmN0aW9uIHdvcmtzIGV2ZW4gaWYgdGhlIGN1cnJlbnQgcHJvY2VzcydzCisgICAgdXNlciBpZCBk
b2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgdmFsaWQgdXNlciAoZS5nLiBydW5uaW5nIHB5dGVzdCBp
biBhCisgICAgRG9ja2VyIGNvbnRhaW5lciB3aXRoICdkb2NrZXIgcnVuIC11Jy4KKyAgICAiIiIK
KyAgICBmcm9tIF9weXRlc3QudG1wZGlyIGltcG9ydCBnZXRfdXNlcgorICAgIGFzc2VydCBnZXRf
dXNlcigpIGlzIE5vbmUKKworCitAcHl0ZXN0Lm1hcmsuc2tpcGlmKG5vdCBzeXMucGxhdGZvcm0u
c3RhcnRzd2l0aCgnd2luJyksIHJlYXNvbj0nd2luIG9ubHknKQorZGVmIHRlc3RfZ2V0X3VzZXIo
bW9ua2V5cGF0Y2gpOgorICAgICIiIlRlc3QgdGhhdCBnZXRfdXNlcigpIGZ1bmN0aW9uIHdvcmtz
IGV2ZW4gaWYgZW52aXJvbm1lbnQgdmFyaWFibGVzCisgICAgcmVxdWlyZWQgYnkgZ2V0cGFzcyBt
b2R1bGUgYXJlIG1pc3NpbmcgZnJvbSB0aGUgZW52aXJvbm1lbnQgb24gV2luZG93cworICAgICgj
MTAxMCkuCisgICAgIiIiCisgICAgZnJvbSBfcHl0ZXN0LnRtcGRpciBpbXBvcnQgZ2V0X3VzZXIK
KyAgICBtb25rZXlwYXRjaC5kZWxlbnYoJ1VTRVInLCByYWlzaW5nPUZhbHNlKQorICAgIG1vbmtl
eXBhdGNoLmRlbGVudignVVNFUk5BTUUnLCByYWlzaW5nPUZhbHNlKQorICAgIGFzc2VydCBnZXRf
dXNlcigpIGlzIE5vbmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF91bml0
dGVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF91bml0dGVzdC5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lMTk3NzM1ODcxZmM1M2YwOGYwYjhhOTJmY2JjNTE3MDliY2U5MDZlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsODMw
IEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHBy
aW50X2Z1bmN0aW9uCitmcm9tIF9weXRlc3QubWFpbiBpbXBvcnQgRVhJVF9OT1RFU1RTQ09MTEVD
VEVECitpbXBvcnQgcHl0ZXN0CitpbXBvcnQgZ2MKKworCitkZWYgdGVzdF9zaW1wbGVfdW5pdHRl
c3QodGVzdGRpcik6CisgICAgdGVzdHBhdGggPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAg
ICAgIGltcG9ydCB1bml0dGVzdAorICAgICAgICBjbGFzcyBNeVRlc3RDYXNlKHVuaXR0ZXN0LlRl
c3RDYXNlKToKKyAgICAgICAgICAgIGRlZiB0ZXN0cGFzc2luZyhzZWxmKToKKyAgICAgICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdmb28nLCAnZm9vJykKKyAgICAgICAgICAgIGRlZiB0ZXN0
X2ZhaWxpbmcoc2VsZik6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnZm9vJywg
J2JhcicpCisgICAgIiIiKQorICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bih0ZXN0cGF0
aCkKKyAgICBhc3NlcnQgcmVwcmVjLm1hdGNocmVwb3J0KCJ0ZXN0cGFzc2luZyIpLnBhc3NlZAor
ICAgIGFzc2VydCByZXByZWMubWF0Y2hyZXBvcnQoInRlc3RfZmFpbGluZyIpLmZhaWxlZAorCisK
K2RlZiB0ZXN0X3J1blRlc3RfbWV0aG9kKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgiIiIKKyAgICAgICAgaW1wb3J0IHVuaXR0ZXN0CisgICAgICAgIGNsYXNzIE15VGVzdENhc2VX
aXRoUnVuVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgICAgICAgICBkZWYgcnVuVGVzdChz
ZWxmKToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdmb28nLCAnZm9vJykKKyAg
ICAgICAgY2xhc3MgTXlUZXN0Q2FzZVdpdGhvdXRSdW5UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
KyAgICAgICAgICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ2ZvbycsICdmb28nKQorICAgICAgICAgICAgZGVmIHRlc3Rfc29tZXRoaW5nKHNl
bGYpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgIHJlc3VsdCA9IHRl
c3RkaXIucnVucHl0ZXN0KCItdiIpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIi
IgorICAgICAgICAqTXlUZXN0Q2FzZVdpdGhSdW5UZXN0OjpydW5UZXN0KgorICAgICAgICAqTXlU
ZXN0Q2FzZVdpdGhvdXRSdW5UZXN0Ojp0ZXN0X3NvbWV0aGluZyoKKyAgICAgICAgKjIgcGFzc2Vk
KgorICAgICIiIikKKworCitkZWYgdGVzdF9pc2NsYXNzY2hlY2tfaXNzdWU1Myh0ZXN0ZGlyKToK
KyAgICB0ZXN0cGF0aCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IHVu
aXR0ZXN0CisgICAgICAgIGNsYXNzIF9FKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgX19nZXRh
dHRyX18oc2VsZiwgdGFnKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgIEUgPSBfRSgp
CisgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KHRlc3RwYXRoKQorICAg
IGFzc2VydCByZXN1bHQucmV0ID09IEVYSVRfTk9URVNUU0NPTExFQ1RFRAorCisKK2RlZiB0ZXN0
X3NldHVwKHRlc3RkaXIpOgorICAgIHRlc3RwYXRoID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgor
ICAgICAgICBpbXBvcnQgdW5pdHRlc3QKKyAgICAgICAgY2xhc3MgTXlUZXN0Q2FzZSh1bml0dGVz
dC5UZXN0Q2FzZSk6CisgICAgICAgICAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgICAgICAg
ICAgc2VsZi5mb28gPSAxCisgICAgICAgICAgICBkZWYgc2V0dXBfbWV0aG9kKHNlbGYsIG1ldGhv
ZCk6CisgICAgICAgICAgICAgICAgc2VsZi5mb28yID0gMQorICAgICAgICAgICAgZGVmIHRlc3Rf
Ym90aChzZWxmKToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIHNlbGYuZm9v
KQorICAgICAgICAgICAgICAgIGFzc2VydCBzZWxmLmZvbzIgPT0gMQorICAgICAgICAgICAgZGVm
IHRlYXJkb3duX21ldGhvZChzZWxmLCBtZXRob2QpOgorICAgICAgICAgICAgICAgIGFzc2VydCAw
LCAiNDIiCisKKyAgICAiIiIpCisgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCItcyIs
IHRlc3RwYXRoKQorICAgIGFzc2VydCByZXByZWMubWF0Y2hyZXBvcnQoInRlc3RfYm90aCIsIHdo
ZW49ImNhbGwiKS5wYXNzZWQKKyAgICByZXAgPSByZXByZWMubWF0Y2hyZXBvcnQoInRlc3RfYm90
aCIsIHdoZW49InRlYXJkb3duIikKKyAgICBhc3NlcnQgcmVwLmZhaWxlZCBhbmQgJzQyJyBpbiBz
dHIocmVwLmxvbmdyZXByKQorCisKK2RlZiB0ZXN0X3NldFVwTW9kdWxlKHRlc3RkaXIpOgorICAg
IHRlc3RwYXRoID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICB2YWx1ZXMgPSBbXQor
CisgICAgICAgIGRlZiBzZXRVcE1vZHVsZSgpOgorICAgICAgICAgICAgdmFsdWVzLmFwcGVuZCgx
KQorCisgICAgICAgIGRlZiB0ZWFyRG93bk1vZHVsZSgpOgorICAgICAgICAgICAgZGVsIHZhbHVl
c1swXQorCisgICAgICAgIGRlZiB0ZXN0X2hlbGxvKCk6CisgICAgICAgICAgICBhc3NlcnQgdmFs
dWVzID09IFsxXQorCisgICAgICAgIGRlZiB0ZXN0X3dvcmxkKCk6CisgICAgICAgICAgICBhc3Nl
cnQgdmFsdWVzID09IFsxXQorICAgICAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5w
eXRlc3QodGVzdHBhdGgpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAg
ICAgIioyIHBhc3NlZCoiLAorICAgIF0pCisKKworZGVmIHRlc3Rfc2V0VXBNb2R1bGVfZmFpbGlu
Z19ub190ZWFyZG93bih0ZXN0ZGlyKToKKyAgICB0ZXN0cGF0aCA9IHRlc3RkaXIubWFrZXB5Zmls
ZSgiIiIKKyAgICAgICAgdmFsdWVzID0gW10KKworICAgICAgICBkZWYgc2V0VXBNb2R1bGUoKToK
KyAgICAgICAgICAgIDAvMAorCisgICAgICAgIGRlZiB0ZWFyRG93bk1vZHVsZSgpOgorICAgICAg
ICAgICAgdmFsdWVzLmFwcGVuZCgxKQorCisgICAgICAgIGRlZiB0ZXN0X2hlbGxvKCk6CisgICAg
ICAgICAgICBwYXNzCisgICAgIiIiKQorICAgIHJlcHJlYyA9IHRlc3RkaXIuaW5saW5lX3J1bih0
ZXN0cGF0aCkKKyAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MCwgZmFpbGVkPTEpCisg
ICAgY2FsbCA9IHJlcHJlYy5nZXRjYWxscygicHl0ZXN0X3J1bnRlc3Rfc2V0dXAiKVswXQorICAg
IGFzc2VydCBub3QgY2FsbC5pdGVtLm1vZHVsZS52YWx1ZXMKKworCitkZWYgdGVzdF9uZXdfaW5z
dGFuY2VzKHRlc3RkaXIpOgorICAgIHRlc3RwYXRoID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgor
ICAgICAgICBpbXBvcnQgdW5pdHRlc3QKKyAgICAgICAgY2xhc3MgTXlUZXN0Q2FzZSh1bml0dGVz
dC5UZXN0Q2FzZSk6CisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jMShzZWxmKToKKyAgICAgICAg
ICAgICAgICBzZWxmLnggPSAyCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jMihzZWxmKToKKyAg
ICAgICAgICAgICAgICBhc3NlcnQgbm90IGhhc2F0dHIoc2VsZiwgJ3gnKQorICAgICIiIikKKyAg
ICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4odGVzdHBhdGgpCisgICAgcmVwcmVjLmFzc2Vy
dG91dGNvbWUocGFzc2VkPTIpCisKKworZGVmIHRlc3RfdGVhcmRvd24odGVzdGRpcik6CisgICAg
dGVzdHBhdGggPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCB1bml0dGVz
dAorICAgICAgICBjbGFzcyBNeVRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAgICAg
ICAgIHZhbHVlcyA9IFtdCisgICAgICAgICAgICBkZWYgdGVzdF9vbmUoc2VsZik6CisgICAgICAg
ICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICAg
ICAgICAgIHNlbGYudmFsdWVzLmFwcGVuZChOb25lKQorICAgICAgICBjbGFzcyBTZWNvbmQodW5p
dHRlc3QuVGVzdENhc2UpOgorICAgICAgICAgICAgZGVmIHRlc3RfY2hlY2soc2VsZik6CisgICAg
ICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChNeVRlc3RDYXNlLnZhbHVlcywgW05vbmVdKQor
ICAgICIiIikKKyAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4odGVzdHBhdGgpCisgICAg
cGFzc2VkLCBza2lwcGVkLCBmYWlsZWQgPSByZXByZWMuY291bnRvdXRjb21lcygpCisgICAgYXNz
ZXJ0IGZhaWxlZCA9PSAwLCBmYWlsZWQKKyAgICBhc3NlcnQgcGFzc2VkID09IDIKKyAgICBhc3Nl
cnQgcGFzc2VkICsgc2tpcHBlZCArIGZhaWxlZCA9PSAyCisKKworZGVmIHRlc3RfdGVhcmRvd25f
aXNzdWUxNjQ5KHRlc3RkaXIpOgorICAgICIiIgorICAgIEFyZSBUZXN0Q2FzZSBvYmplY3RzIGNs
ZWFuZWQgdXA/IE9mdGVuIHVuaXR0ZXN0IFRlc3RDYXNlIG9iamVjdHMgc2V0CisgICAgYXR0cmli
dXRlcyB0aGF0IGFyZSBsYXJnZSBhbmQgZXhwZW5zaXZlIGR1cmluZyBzZXRVcC4KKworICAgIFRo
ZSBUZXN0Q2FzZSB3aWxsIG5vdCBiZSBjbGVhbmVkIHVwIGlmIHRoZSB0ZXN0IGZhaWxzLCBiZWNh
dXNlIGl0CisgICAgd291bGQgdGhlbiBleGlzdCBpbiB0aGUgc3RhY2tmcmFtZS4KKyAgICAiIiIK
KyAgICB0ZXN0cGF0aCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IHVu
aXR0ZXN0CisgICAgICAgIGNsYXNzIFRlc3RDYXNlT2JqZWN0c1Nob3VsZEJlQ2xlYW5lZFVwKHVu
aXR0ZXN0LlRlc3RDYXNlKToKKyAgICAgICAgICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAg
ICAgICAgICBzZWxmLmFuX2V4cGVuc2l2ZV9vYmplY3QgPSAxCisgICAgICAgICAgICBkZWYgdGVz
dF9kZW1vKHNlbGYpOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICIiIikKKyAgICB0ZXN0
ZGlyLmlubGluZV9ydW4oIi1zIiwgdGVzdHBhdGgpCisgICAgZ2MuY29sbGVjdCgpCisgICAgZm9y
IG9iaiBpbiBnYy5nZXRfb2JqZWN0cygpOgorICAgICAgICBhc3NlcnQgdHlwZShvYmopLl9fbmFt
ZV9fICE9ICdUZXN0Q2FzZU9iamVjdHNTaG91bGRCZUNsZWFuZWRVcCcKKworCitkZWYgdGVzdF91
bml0dGVzdF9za2lwX2lzc3VlMTQ4KHRlc3RkaXIpOgorICAgIHRlc3RwYXRoID0gdGVzdGRpci5t
YWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgdW5pdHRlc3QKKworICAgICAgICBAdW5pdHRl
c3Quc2tpcCgiaGVsbG8iKQorICAgICAgICBjbGFzcyBNeVRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RD
YXNlKToKKyAgICAgICAgICAgIEBjbGFzc21ldGhvZAorICAgICAgICAgICAgZGVmIHNldFVwQ2xh
c3Moc2VsZik6CisgICAgICAgICAgICAgICAgeHh4CisgICAgICAgICAgICBkZWYgdGVzdF9vbmUo
c2VsZik6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgQGNsYXNzbWV0aG9kCisg
ICAgICAgICAgICBkZWYgdGVhckRvd25DbGFzcyhzZWxmKToKKyAgICAgICAgICAgICAgICB4eHgK
KyAgICAiIiIpCisgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKHRlc3RwYXRoKQorICAg
IHJlcHJlYy5hc3NlcnRvdXRjb21lKHNraXBwZWQ9MSkKKworCitkZWYgdGVzdF9tZXRob2RfYW5k
X3RlYXJkb3duX2ZhaWxpbmdfcmVwb3J0aW5nKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5
ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IHVuaXR0ZXN0LCBweXRlc3QKKyAgICAgICAgY2xhc3Mg
VEModW5pdHRlc3QuVGVzdENhc2UpOgorICAgICAgICAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgor
ICAgICAgICAgICAgICAgIGFzc2VydCAwLCAiZG93bjEiCisgICAgICAgICAgICBkZWYgdGVzdF9t
ZXRob2Qoc2VsZik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IEZhbHNlLCAiZG93bjIiCisgICAg
IiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcyIpCisgICAgYXNzZXJ0IHJl
c3VsdC5yZXQgPT0gMQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAg
ICIqdGVhckRvd24qIiwKKyAgICAgICAgIiphc3NlcnQgMCoiLAorICAgICAgICAiKnRlc3RfbWV0
aG9kKiIsCisgICAgICAgICIqYXNzZXJ0IEZhbHNlKiIsCisgICAgICAgICIqMSBmYWlsZWQqMSBl
cnJvcioiLAorICAgIF0pCisKKworZGVmIHRlc3Rfc2V0dXBfZmFpbHVyZV9pc19zaG93bih0ZXN0
ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGltcG9ydCB1bml0dGVz
dAorICAgICAgICBpbXBvcnQgcHl0ZXN0CisgICAgICAgIGNsYXNzIFRDKHVuaXR0ZXN0LlRlc3RD
YXNlKToKKyAgICAgICAgICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgICAgICAgICBhc3Nl
cnQgMCwgImRvd24xIgorICAgICAgICAgICAgZGVmIHRlc3RfbWV0aG9kKHNlbGYpOgorICAgICAg
ICAgICAgICAgIHByaW50ICgibmV2ZXI0MiIpCisgICAgICAgICAgICAgICAgeHl6CisgICAgIiIi
KQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCItcyIpCisgICAgYXNzZXJ0IHJlc3Vs
dC5yZXQgPT0gMQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICIq
c2V0VXAqIiwKKyAgICAgICAgIiphc3NlcnQgMCpkb3duMSoiLAorICAgICAgICAiKjEgZmFpbGVk
KiIsCisgICAgXSkKKyAgICBhc3NlcnQgJ25ldmVyNDInIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0
cigpCisKKworZGVmIHRlc3Rfc2V0dXBfc2V0VXBDbGFzcyh0ZXN0ZGlyKToKKyAgICB0ZXN0cGF0
aCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IHVuaXR0ZXN0CisgICAg
ICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgY2xhc3MgTXlUZXN0Q2FzZSh1bml0dGVzdC5UZXN0
Q2FzZSk6CisgICAgICAgICAgICB4ID0gMAorICAgICAgICAgICAgQGNsYXNzbWV0aG9kCisgICAg
ICAgICAgICBkZWYgc2V0VXBDbGFzcyhjbHMpOgorICAgICAgICAgICAgICAgIGNscy54ICs9IDEK
KyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMxKHNlbGYpOgorICAgICAgICAgICAgICAgIGFzc2Vy
dCBzZWxmLnggPT0gMQorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYzIoc2VsZik6CisgICAgICAg
ICAgICAgICAgYXNzZXJ0IHNlbGYueCA9PSAxCisgICAgICAgICAgICBAY2xhc3NtZXRob2QKKyAg
ICAgICAgICAgIGRlZiB0ZWFyRG93bkNsYXNzKGNscyk6CisgICAgICAgICAgICAgICAgY2xzLngg
LT0gMQorICAgICAgICBkZWYgdGVzdF90ZWFyZWRkb3duKCk6CisgICAgICAgICAgICBhc3NlcnQg
TXlUZXN0Q2FzZS54ID09IDAKKyAgICAiIiIpCisgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVf
cnVuKHRlc3RwYXRoKQorICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0zKQorCisKK2Rl
ZiB0ZXN0X3NldHVwX2NsYXNzKHRlc3RkaXIpOgorICAgIHRlc3RwYXRoID0gdGVzdGRpci5tYWtl
cHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgdW5pdHRlc3QKKyAgICAgICAgaW1wb3J0IHB5dGVz
dAorICAgICAgICBjbGFzcyBNeVRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAgICAg
ICAgIHggPSAwCisgICAgICAgICAgICBkZWYgc2V0dXBfY2xhc3MoY2xzKToKKyAgICAgICAgICAg
ICAgICBjbHMueCArPSAxCisgICAgICAgICAgICBkZWYgdGVzdF9mdW5jMShzZWxmKToKKyAgICAg
ICAgICAgICAgICBhc3NlcnQgc2VsZi54ID09IDEKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMy
KHNlbGYpOgorICAgICAgICAgICAgICAgIGFzc2VydCBzZWxmLnggPT0gMQorICAgICAgICAgICAg
ZGVmIHRlYXJkb3duX2NsYXNzKGNscyk6CisgICAgICAgICAgICAgICAgY2xzLnggLT0gMQorICAg
ICAgICBkZWYgdGVzdF90ZWFyZWRkb3duKCk6CisgICAgICAgICAgICBhc3NlcnQgTXlUZXN0Q2Fz
ZS54ID09IDAKKyAgICAiIiIpCisgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKHRlc3Rw
YXRoKQorICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBhc3NlZD0zKQorCisKK0BweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgidHlwZSIsIFsnRXJyb3InLCAnRmFpbHVyZSddKQorZGVmIHRlc3RfdGVz
dGNhc2VfYWRkZXJyb3JhbmRmYWlsdXJlX2RlZmVycyh0ZXN0ZGlyLCB0eXBlKToKKyAgICB0ZXN0
ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgIGZyb20gdW5pdHRlc3QgaW1wb3J0IFRlc3RDYXNl
CisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgY2xhc3MgTXlUZXN0Q2FzZShUZXN0Q2Fz
ZSk6CisgICAgICAgICAgICBkZWYgcnVuKHNlbGYsIHJlc3VsdCk6CisgICAgICAgICAgICAgICAg
ZXhjaW5mbyA9IHB5dGVzdC5yYWlzZXMoWmVyb0RpdmlzaW9uRXJyb3IsIGxhbWJkYTogMC8wKQor
ICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZCVzKHNl
bGYsIGV4Y2luZm8uX2V4Y2luZm8pCisgICAgICAgICAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50
ZXJydXB0OgorICAgICAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgICAgIGV4Y2Vw
dDoKKyAgICAgICAgICAgICAgICAgICAgcHl0ZXN0LmZhaWwoImFkZCVzIHNob3VsZCBub3QgcmFp
c2UiKQorICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oc2VsZik6CisgICAgICAgICAgICAgICAg
cGFzcworICAgICIiIiAlICh0eXBlLCB0eXBlKSkKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgpCisgICAgYXNzZXJ0ICdzaG91bGQgbm90IHJhaXNlJyBub3QgaW4gcmVzdWx0LnN0ZG91
dC5zdHIoKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgidHlwZSIsIFsnRXJyb3InLCAn
RmFpbHVyZSddKQorZGVmIHRlc3RfdGVzdGNhc2VfY3VzdG9tX2V4Y2VwdGlvbl9pbmZvKHRlc3Rk
aXIsIHR5cGUpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgZnJvbSB1bml0
dGVzdCBpbXBvcnQgVGVzdENhc2UKKyAgICAgICAgaW1wb3J0IHB5LCBweXRlc3QKKyAgICAgICAg
aW1wb3J0IF9weXRlc3QuX2NvZGUKKyAgICAgICAgY2xhc3MgTXlUZXN0Q2FzZShUZXN0Q2FzZSk6
CisgICAgICAgICAgICBkZWYgcnVuKHNlbGYsIHJlc3VsdCk6CisgICAgICAgICAgICAgICAgZXhj
aW5mbyA9IHB5dGVzdC5yYWlzZXMoWmVyb0RpdmlzaW9uRXJyb3IsIGxhbWJkYTogMC8wKQorICAg
ICAgICAgICAgICAgICMgd2UgZmFrZSBhbiBpbmNvbXBhdGlibGUgZXhjZXB0aW9uIGluZm8KKyAg
ICAgICAgICAgICAgICBmcm9tIF9weXRlc3QubW9ua2V5cGF0Y2ggaW1wb3J0IE1vbmtleVBhdGNo
CisgICAgICAgICAgICAgICAgbXAgPSBNb25rZXlQYXRjaCgpCisgICAgICAgICAgICAgICAgZGVm
IHQoKmFyZ3MpOgorICAgICAgICAgICAgICAgICAgICBtcC51bmRvKCkKKyAgICAgICAgICAgICAg
ICAgICAgcmFpc2UgVHlwZUVycm9yKCkKKyAgICAgICAgICAgICAgICBtcC5zZXRhdHRyKF9weXRl
c3QuX2NvZGUsICdFeGNlcHRpb25JbmZvJywgdCkKKyAgICAgICAgICAgICAgICB0cnk6CisgICAg
ICAgICAgICAgICAgICAgIGV4Y2luZm8gPSBleGNpbmZvLl9leGNpbmZvCisgICAgICAgICAgICAg
ICAgICAgIHJlc3VsdC5hZGQlKHR5cGUpcyhzZWxmLCBleGNpbmZvKQorICAgICAgICAgICAgICAg
IGZpbmFsbHk6CisgICAgICAgICAgICAgICAgICAgIG1wLnVuZG8oKQorICAgICAgICAgICAgZGVm
IHRlc3RfaGVsbG8oc2VsZik6CisgICAgICAgICAgICAgICAgcGFzcworICAgICIiIiAlIGxvY2Fs
cygpKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoWworICAgICAgICAiTk9URTogSW5jb21wYXRpYmxlIEV4Y2VwdGlvbiBS
ZXByZXNlbnRhdGlvbioiLAorICAgICAgICAiKlplcm9EaXZpc2lvbkVycm9yKiIsCisgICAgICAg
ICIqMSBmYWlsZWQqIiwKKyAgICBdKQorCisKK2RlZiB0ZXN0X3Rlc3RjYXNlX3RvdGFsbHlfaW5j
b21wYXRpYmxlX2V4Y2VwdGlvbl9pbmZvKHRlc3RkaXIpOgorICAgIGl0ZW0sID0gdGVzdGRpci5n
ZXRpdGVtcygiIiIKKyAgICAgICAgZnJvbSB1bml0dGVzdCBpbXBvcnQgVGVzdENhc2UKKyAgICAg
ICAgY2xhc3MgTXlUZXN0Q2FzZShUZXN0Q2FzZSk6CisgICAgICAgICAgICBkZWYgdGVzdF9oZWxs
byhzZWxmKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgIiIiKQorICAgIGl0ZW0uYWRkRXJy
b3IoTm9uZSwgNDIpCisgICAgZXhjaW5mbyA9IGl0ZW0uX2V4Y2luZm8ucG9wKDApCisgICAgYXNz
ZXJ0ICdFUlJPUjogVW5rbm93biBJbmNvbXBhdGlibGUnIGluIHN0cihleGNpbmZvLmdldHJlcHIo
KSkKKworCitkZWYgdGVzdF9tb2R1bGVfbGV2ZWxfcHl0ZXN0bWFyayh0ZXN0ZGlyKToKKyAgICB0
ZXN0cGF0aCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IHVuaXR0ZXN0
CisgICAgICAgIGltcG9ydCBweXRlc3QKKyAgICAgICAgcHl0ZXN0bWFyayA9IHB5dGVzdC5tYXJr
LnhmYWlsCisgICAgICAgIGNsYXNzIE15VGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorICAg
ICAgICAgICAgZGVmIHRlc3RfZnVuYzEoc2VsZik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IDAK
KyAgICAiIiIpCisgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKHRlc3RwYXRoLCAiLXMi
KQorICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHNraXBwZWQ9MSkKKworCitjbGFzcyBUZXN0VHJp
YWxVbml0dGVzdChvYmplY3QpOgorICAgIGRlZiBzZXR1cF9jbGFzcyhjbHMpOgorICAgICAgICBj
bHMudXQgPSBweXRlc3QuaW1wb3J0b3Jza2lwKCJ0d2lzdGVkLnRyaWFsLnVuaXR0ZXN0IikKKyAg
ICAgICAgIyBvbiB3aW5kb3dzIHRyaWFsIHVzZXMgYSBzb2NrZXQgZm9yIGEgcmVhY3RvciBhbmQg
YXBwYXJlbnRseSBkb2Vzbid0IGNsb3NlIGl0IHByb3Blcmx5CisgICAgICAgICMgaHR0cHM6Ly90
d2lzdGVkbWF0cml4LmNvbS90cmFjL3RpY2tldC85MjI3CisgICAgICAgIGNscy5pZ25vcmVfdW5j
bG9zZWRfc29ja2V0X3dhcm5pbmcgPSAoJy1XJywgJ2Fsd2F5cycpCisKKyAgICBkZWYgdGVzdF90
cmlhbF90ZXN0Y2FzZV9ydW50ZXN0X25vdF9jb2xsZWN0ZWQoc2VsZiwgdGVzdGRpcik6CisgICAg
ICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGZyb20gdHdpc3RlZC50cmlh
bC51bml0dGVzdCBpbXBvcnQgVGVzdENhc2UKKworICAgICAgICAgICAgY2xhc3MgVEMoVGVzdENh
c2UpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvKHNlbGYpOgorICAgICAgICAgICAg
ICAgICAgICBwYXNzCisgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxp
bmVfcnVuKCpzZWxmLmlnbm9yZV91bmNsb3NlZF9zb2NrZXRfd2FybmluZykKKyAgICAgICAgcmVw
cmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEpCisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgi
IiIKKyAgICAgICAgICAgIGZyb20gdHdpc3RlZC50cmlhbC51bml0dGVzdCBpbXBvcnQgVGVzdENh
c2UKKworICAgICAgICAgICAgY2xhc3MgVEMoVGVzdENhc2UpOgorICAgICAgICAgICAgICAgIGRl
ZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICIiIikK
KyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCpzZWxmLmlnbm9yZV91bmNsb3Nl
ZF9zb2NrZXRfd2FybmluZykKKyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUocGFzc2VkPTEp
CisKKyAgICBkZWYgdGVzdF90cmlhbF9leGNlcHRpb25zX3dpdGhfc2tpcHMoc2VsZiwgdGVzdGRp
cik6CisgICAgICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGZyb20gdHdp
c3RlZC50cmlhbCBpbXBvcnQgdW5pdHRlc3QKKyAgICAgICAgICAgIGltcG9ydCBweXRlc3QKKyAg
ICAgICAgICAgIGNsYXNzIFRDKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAgICAgICAgICAgICBk
ZWYgdGVzdF9oZWxsbyhzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgcHl0ZXN0LnNraXAoInNr
aXBfaW5fbWV0aG9kIikKKyAgICAgICAgICAgICAgICBAcHl0ZXN0Lm1hcmsuc2tpcGlmKCJzeXMu
dmVyc2lvbl9pbmZvICE9IDEiKQorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2hlbGxvMihzZWxm
KToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgICAgIEBweXRlc3QubWFy
ay54ZmFpbChyZWFzb249Iml3YW50byIpCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8z
KHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgMAorICAgICAgICAgICAgICAgIGRl
ZiB0ZXN0X2hlbGxvNChzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgcHl0ZXN0LnhmYWlsKCJp
MndhbnRvIikKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF90cmlhbF9za2lwKHNlbGYpOgorICAg
ICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgdGVzdF90cmlhbF9za2lwLnNr
aXAgPSAidHJpYWxzZWxmc2tpcCIKKworICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3RyaWFsX3Rv
ZG8oc2VsZik6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCAwCisgICAgICAgICAgICAgICAg
dGVzdF90cmlhbF90b2RvLnRvZG8gPSAibXl0b2RvIgorCisgICAgICAgICAgICAgICAgZGVmIHRl
c3RfdHJpYWxfdG9kb19zdWNjZXNzKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisg
ICAgICAgICAgICAgICAgdGVzdF90cmlhbF90b2RvX3N1Y2Nlc3MudG9kbyA9ICJteXRvZG8iCisK
KyAgICAgICAgICAgIGNsYXNzIFRDMih1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgICAgICAgICAg
ICAgZGVmIHNldHVwX2NsYXNzKGNscyk6CisgICAgICAgICAgICAgICAgICAgIHB5dGVzdC5za2lw
KCJza2lwX2luX3NldHVwX2NsYXNzIikKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9tZXRob2Qo
c2VsZik6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIiIiKQorICAgICAgICBm
cm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBfaXNfdW5pdHRlc3RfdW5leHBlY3RlZF9zdWNjZXNz
X2FfZmFpbHVyZQorICAgICAgICBzaG91bGRfZmFpbCA9IF9pc191bml0dGVzdF91bmV4cGVjdGVk
X3N1Y2Nlc3NfYV9mYWlsdXJlKCkKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3Qo
Ii1yeHMiLCAqc2VsZi5pZ25vcmVfdW5jbG9zZWRfc29ja2V0X3dhcm5pbmcpCisgICAgICAgIHJl
c3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lc19yYW5kb20oWworICAgICAgICAgICAgIipYRkFJTCp0
ZXN0X3RyaWFsX3RvZG8qIiwKKyAgICAgICAgICAgICIqdHJpYWxzZWxmc2tpcCoiLAorICAgICAg
ICAgICAgIipza2lwX2luX3NldHVwX2NsYXNzKiIsCisgICAgICAgICAgICAiKml3YW50byoiLAor
ICAgICAgICAgICAgIippMndhbnRvKiIsCisgICAgICAgICAgICAiKnN5cy52ZXJzaW9uX2luZm8q
IiwKKyAgICAgICAgICAgICIqc2tpcF9pbl9tZXRob2QqIiwKKyAgICAgICAgICAgICIqMSBmYWls
ZWQqNCBza2lwcGVkKjMgeGZhaWxlZCoiIGlmIHNob3VsZF9mYWlsIGVsc2UgIio0IHNraXBwZWQq
MyB4ZmFpbCoxIHhwYXNzKiIsCisgICAgICAgIF0pCisgICAgICAgIGFzc2VydCByZXN1bHQucmV0
ID09ICgxIGlmIHNob3VsZF9mYWlsIGVsc2UgMCkKKworICAgIGRlZiB0ZXN0X3RyaWFsX2Vycm9y
KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAg
ICAgICBmcm9tIHR3aXN0ZWQudHJpYWwudW5pdHRlc3QgaW1wb3J0IFRlc3RDYXNlCisgICAgICAg
ICAgICBmcm9tIHR3aXN0ZWQuaW50ZXJuZXQuZGVmZXIgaW1wb3J0IERlZmVycmVkCisgICAgICAg
ICAgICBmcm9tIHR3aXN0ZWQuaW50ZXJuZXQgaW1wb3J0IHJlYWN0b3IKKworICAgICAgICAgICAg
Y2xhc3MgVEMoVGVzdENhc2UpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X29uZShzZWxmKToK
KyAgICAgICAgICAgICAgICAgICAgY3Jhc2gKKworICAgICAgICAgICAgICAgIGRlZiB0ZXN0X3R3
byhzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgZGVmIGYoXyk6CisgICAgICAgICAgICAgICAg
ICAgICAgICBjcmFzaAorCisgICAgICAgICAgICAgICAgICAgIGQgPSBEZWZlcnJlZCgpCisgICAg
ICAgICAgICAgICAgICAgIGQuYWRkQ2FsbGJhY2soZikKKyAgICAgICAgICAgICAgICAgICAgcmVh
Y3Rvci5jYWxsTGF0ZXIoMC4zLCBkLmNhbGxiYWNrLCBOb25lKQorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gZAorCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfdGhyZWUoc2VsZik6CisgICAg
ICAgICAgICAgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICAgICAgICAgICAgICBwYXNzICMg
d2lsbCBuZXZlciBnZXQgY2FsbGVkCisgICAgICAgICAgICAgICAgICAgIHJlYWN0b3IuY2FsbExh
dGVyKDAuMywgZikKKyAgICAgICAgICAgICAgICAjIHdpbGwgY3Jhc2ggYXQgdGVhcmRvd24KKwor
ICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2ZvdXIoc2VsZik6CisgICAgICAgICAgICAgICAgICAg
IGRlZiBmKF8pOgorICAgICAgICAgICAgICAgICAgICAgICAgcmVhY3Rvci5jYWxsTGF0ZXIoMC4z
LCBmKQorICAgICAgICAgICAgICAgICAgICAgICAgY3Jhc2gKKworICAgICAgICAgICAgICAgICAg
ICBkID0gRGVmZXJyZWQoKQorICAgICAgICAgICAgICAgICAgICBkLmFkZENhbGxiYWNrKGYpCisg
ICAgICAgICAgICAgICAgICAgIHJlYWN0b3IuY2FsbExhdGVyKDAuMywgZC5jYWxsYmFjaywgTm9u
ZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGQKKyAgICAgICAgICAgICAgICAjIHdpbGwg
Y3Jhc2ggYm90aCBhdCB0ZXN0IHRpbWUgYW5kIGF0IHRlYXJkb3duCisgICAgICAgICIiIikKKyAg
ICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgICAgICByZXN1bHQuc3Rkb3V0
LmZubWF0Y2hfbGluZXMoWworICAgICAgICAgICAgIipFUlJPUlMqIiwKKyAgICAgICAgICAgICIq
RGVsYXllZENhbGxzKiIsCisgICAgICAgICAgICAiKnRlc3RfZm91cioiLAorICAgICAgICAgICAg
IipOYW1lRXJyb3IqY3Jhc2gqIiwKKyAgICAgICAgICAgICIqdGVzdF9vbmUqIiwKKyAgICAgICAg
ICAgICIqTmFtZUVycm9yKmNyYXNoKiIsCisgICAgICAgICAgICAiKnRlc3RfdGhyZWUqIiwKKyAg
ICAgICAgICAgICIqRGVsYXllZENhbGxzKiIsCisgICAgICAgICAgICAiKnRlc3RfdHdvKiIsCisg
ICAgICAgICAgICAiKmNyYXNoKiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF90cmlhbF9w
ZGIoc2VsZiwgdGVzdGRpcik6CisgICAgICAgIHAgPSB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisg
ICAgICAgICAgICBmcm9tIHR3aXN0ZWQudHJpYWwgaW1wb3J0IHVuaXR0ZXN0CisgICAgICAgICAg
ICBpbXBvcnQgcHl0ZXN0CisgICAgICAgICAgICBjbGFzcyBUQyh1bml0dGVzdC5UZXN0Q2FzZSk6
CisgICAgICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oc2VsZik6CisgICAgICAgICAgICAgICAg
ICAgIGFzc2VydCAwLCAiaGVsbG9wZGIiCisgICAgICAgICIiIikKKyAgICAgICAgY2hpbGQgPSB0
ZXN0ZGlyLnNwYXduX3B5dGVzdChwKQorICAgICAgICBjaGlsZC5leHBlY3QoImhlbGxvcGRiIikK
KyAgICAgICAgY2hpbGQuc2VuZGVvZigpCisKKyAgICBkZWYgdGVzdF90cmlhbF90ZXN0Y2FzZV9z
a2lwX3Byb3BlcnR5KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0cGF0aCA9IHRlc3RkaXIu
bWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGZyb20gdHdpc3RlZC50cmlhbCBpbXBvcnQgdW5p
dHRlc3QKKyAgICAgICAgICAgIGNsYXNzIE15VGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgor
ICAgICAgICAgICAgICAgIHNraXAgPSAnZG9udCBydW4nCisgICAgICAgICAgICAgICAgZGVmIHRl
c3RfZnVuYyhzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgIiIi
KQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9ydW4odGVzdHBhdGgsICItcyIpCisg
ICAgICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHNraXBwZWQ9MSkKKworICAgIGRlZiB0ZXN0X3Ry
aWFsX3Rlc3RmdW5jdGlvbl9za2lwX3Byb3BlcnR5KHNlbGYsIHRlc3RkaXIpOgorICAgICAgICB0
ZXN0cGF0aCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgICAgIGZyb20gdHdpc3Rl
ZC50cmlhbCBpbXBvcnQgdW5pdHRlc3QKKyAgICAgICAgICAgIGNsYXNzIE15VGVzdENhc2UodW5p
dHRlc3QuVGVzdENhc2UpOgorICAgICAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoc2VsZik6Cisg
ICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICAgICB0ZXN0X2Z1bmMuc2tpcCA9
ICdkb250IHJ1bicKKyAgICAgICAgICAgICIiIikKKyAgICAgICAgcmVwcmVjID0gdGVzdGRpci5p
bmxpbmVfcnVuKHRlc3RwYXRoLCAiLXMiKQorICAgICAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShz
a2lwcGVkPTEpCisKKyAgICBkZWYgdGVzdF90cmlhbF90ZXN0Y2FzZV90b2RvX3Byb3BlcnR5KHNl
bGYsIHRlc3RkaXIpOgorICAgICAgICB0ZXN0cGF0aCA9IHRlc3RkaXIubWFrZXB5ZmlsZSgiIiIK
KyAgICAgICAgICAgIGZyb20gdHdpc3RlZC50cmlhbCBpbXBvcnQgdW5pdHRlc3QKKyAgICAgICAg
ICAgIGNsYXNzIE15VGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICAgICAgICAgICAg
IHRvZG8gPSAnZG9udCBydW4nCisgICAgICAgICAgICAgICAgZGVmIHRlc3RfZnVuYyhzZWxmKToK
KyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IDAKKyAgICAgICAgICAgICIiIikKKyAgICAgICAg
cmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKHRlc3RwYXRoLCAiLXMiKQorICAgICAgICByZXBy
ZWMuYXNzZXJ0b3V0Y29tZShza2lwcGVkPTEpCisKKyAgICBkZWYgdGVzdF90cmlhbF90ZXN0ZnVu
Y3Rpb25fdG9kb19wcm9wZXJ0eShzZWxmLCB0ZXN0ZGlyKToKKyAgICAgICAgdGVzdHBhdGggPSB0
ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAgICAgICAgICBmcm9tIHR3aXN0ZWQudHJpYWwgaW1w
b3J0IHVuaXR0ZXN0CisgICAgICAgICAgICBjbGFzcyBNeVRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RD
YXNlKToKKyAgICAgICAgICAgICAgICBkZWYgdGVzdF9mdW5jKHNlbGYpOgorICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQgMAorICAgICAgICAgICAgICAgIHRlc3RfZnVuYy50b2RvID0gJ2RvbnQg
cnVuJworICAgICAgICAgICAgIiIiKQorICAgICAgICByZXByZWMgPSB0ZXN0ZGlyLmlubGluZV9y
dW4odGVzdHBhdGgsICItcyIsICpzZWxmLmlnbm9yZV91bmNsb3NlZF9zb2NrZXRfd2FybmluZykK
KyAgICAgICAgcmVwcmVjLmFzc2VydG91dGNvbWUoc2tpcHBlZD0xKQorCisKK2RlZiB0ZXN0X2Rq
YW5nb2xpa2VfdGVzdGNhc2UodGVzdGRpcik6CisgICAgIyBjb250cmlidXRlZCBmcm9tIE1vcnRl
biBCcmVla2V2b2xkCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBmcm9tIHVu
aXR0ZXN0IGltcG9ydCBUZXN0Q2FzZSwgbWFpbgorCisgICAgICAgIGNsYXNzIERqYW5nb0xpa2VU
ZXN0Q2FzZShUZXN0Q2FzZSk6CisKKyAgICAgICAgICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAg
ICAgICAgICAgICBwcmludCAoInNldFVwKCkiKQorCisgICAgICAgICAgICBkZWYgdGVzdF9wcmVz
ZXR1cF9oYXNfYmVlbl9ydW4oc2VsZik6CisgICAgICAgICAgICAgICAgcHJpbnQgKCJ0ZXN0X3Ro
aW5nKCkiKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShoYXNhdHRyKHNlbGYsICd3
YXNfcHJlc2V0dXAnKSkKKworICAgICAgICAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAg
ICAgICAgICAgIHByaW50ICgidGVhckRvd24oKSIpCisKKyAgICAgICAgICAgIGRlZiBfX2NhbGxf
XyhzZWxmLCByZXN1bHQ9Tm9uZSk6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAg
ICAgICAgICBzZWxmLl9wcmVfc2V0dXAoKQorICAgICAgICAgICAgICAgIGV4Y2VwdCAoS2V5Ym9h
cmRJbnRlcnJ1cHQsIFN5c3RlbUV4aXQpOgorICAgICAgICAgICAgICAgICAgICByYWlzZQorICAg
ICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICAgICAgICAgIGltcG9y
dCBzeXMKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFkZEVycm9yKHNlbGYsIHN5cy5leGNf
aW5mbygpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgICAgICBzdXBl
cihEamFuZ29MaWtlVGVzdENhc2UsIHNlbGYpLl9fY2FsbF9fKHJlc3VsdCkKKyAgICAgICAgICAg
ICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3Bvc3RfdGVhcmRvd24oKQorICAg
ICAgICAgICAgICAgIGV4Y2VwdCAoS2V5Ym9hcmRJbnRlcnJ1cHQsIFN5c3RlbUV4aXQpOgorICAg
ICAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246
CisgICAgICAgICAgICAgICAgICAgIGltcG9ydCBzeXMKKyAgICAgICAgICAgICAgICAgICAgcmVz
dWx0LmFkZEVycm9yKHNlbGYsIHN5cy5leGNfaW5mbygpKQorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4KKworICAgICAgICAgICAgZGVmIF9wcmVfc2V0dXAoc2VsZik6CisgICAgICAgICAgICAg
ICAgcHJpbnQgKCJfcHJlX3NldHVwKCkiKQorICAgICAgICAgICAgICAgIHNlbGYud2FzX3ByZXNl
dHVwID0gVHJ1ZQorCisgICAgICAgICAgICBkZWYgX3Bvc3RfdGVhcmRvd24oc2VsZik6CisgICAg
ICAgICAgICAgICAgcHJpbnQgKCJfcG9zdF90ZWFyZG93bigpIikKKyAgICAiIiIpCisgICAgcmVz
dWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi1zIikKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAw
CisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsKKyAgICAgICAgIipfcHJlX3NldHVw
KCkqIiwKKyAgICAgICAgIipzZXRVcCgpKiIsCisgICAgICAgICIqdGVzdF90aGluZygpKiIsCisg
ICAgICAgICIqdGVhckRvd24oKSoiLAorICAgICAgICAiKl9wb3N0X3RlYXJkb3duKCkqIiwKKyAg
ICBdKQorCisKK2RlZiB0ZXN0X3VuaXR0ZXN0X25vdF9zaG93bl9pbl90cmFjZWJhY2sodGVzdGRp
cik6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBvcnQgdW5pdHRlc3QK
KyAgICAgICAgY2xhc3MgdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgICAgICAgICBkZWYgdGVz
dF9oZWxsbyhzZWxmKToKKyAgICAgICAgICAgICAgICB4ID0gMworICAgICAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoeCwgNCkKKyAgICAiIiIpCisgICAgcmVzID0gdGVzdGRpci5ydW5weXRl
c3QoKQorICAgIGFzc2VydCAiZmFpbFVubGVzc0VxdWFsIiBub3QgaW4gcmVzLnN0ZG91dC5zdHIo
KQorCisKK2RlZiB0ZXN0X3Vub3JkZXJhYmxlX3R5cGVzKHRlc3RkaXIpOgorICAgIHRlc3RkaXIu
bWFrZXB5ZmlsZSgiIiIKKyAgICAgICAgaW1wb3J0IHVuaXR0ZXN0CisgICAgICAgIGNsYXNzIFRl
c3RKb2luRW1wdHkodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICAgICAgICAgcGFzcworCisgICAg
ICAgIGRlZiBtYWtlX3Rlc3QoKToKKyAgICAgICAgICAgIGNsYXNzIFRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIFRlc3QuX19uYW1lX18g
PSAiVGVzdEZvbyIKKyAgICAgICAgICAgIHJldHVybiBUZXN0CisgICAgICAgIFRlc3RGb28gPSBt
YWtlX3Rlc3QoKQorICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisg
ICAgYXNzZXJ0ICJUeXBlRXJyb3IiIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisgICAgYXNz
ZXJ0IHJlc3VsdC5yZXQgPT0gRVhJVF9OT1RFU1RTQ09MTEVDVEVECisKKworZGVmIHRlc3RfdW5p
dHRlc3RfdHlwZXJyb3JfdHJhY2ViYWNrKHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgiIiIKKyAgICAgICAgaW1wb3J0IHVuaXR0ZXN0CisgICAgICAgIGNsYXNzIFRlc3RKb2luRW1w
dHkodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICAgICAgICAgZGVmIHRlc3RfaGVsbG8oc2VsZiwg
YXJnMSk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICIiIikKKyAgICByZXN1bHQgPSB0ZXN0
ZGlyLnJ1bnB5dGVzdCgpCisgICAgYXNzZXJ0ICJUeXBlRXJyb3IiIGluIHJlc3VsdC5zdGRvdXQu
c3RyKCkKKyAgICBhc3NlcnQgcmVzdWx0LnJldCA9PSAxCisKKworQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCdydW5uZXInLCBbJ3B5dGVzdCcsICd1bml0dGVzdCddKQorZGVmIHRlc3RfdW5pdHRl
c3RfZXhwZWN0ZWRfZmFpbHVyZV9mb3JfZmFpbGluZ190ZXN0X2lzX3hmYWlsKHRlc3RkaXIsIHJ1
bm5lcik6CisgICAgc2NyaXB0ID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBpbXBv
cnQgdW5pdHRlc3QKKyAgICAgICAgY2xhc3MgTXlUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6
CisgICAgICAgICAgICBAdW5pdHRlc3QuZXhwZWN0ZWRGYWlsdXJlCisgICAgICAgICAgICBkZWYg
dGVzdF9mYWlsaW5nX3Rlc3RfaXNfeGZhaWwoc2VsZik6CisgICAgICAgICAgICAgICAgYXNzZXJ0
IEZhbHNlCisgICAgICAgIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgICAgICAgICB1
bml0dGVzdC5tYWluKCkKKyAgICAiIiIpCisgICAgaWYgcnVubmVyID09ICdweXRlc3QnOgorICAg
ICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgiLXJ4WCIpCisgICAgICAgIHJlc3VsdC5z
dGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAgICAiKlhGQUlMKk15VGVzdENhc2UqdGVz
dF9mYWlsaW5nX3Rlc3RfaXNfeGZhaWwqIiwKKyAgICAgICAgICAgICIqMSB4ZmFpbGVkKiIsCisg
ICAgICAgIF0pCisgICAgZWxzZToKKyAgICAgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRob24o
c2NyaXB0KQorICAgICAgICByZXN1bHQuc3RkZXJyLmZubWF0Y2hfbGluZXMoWworICAgICAgICAg
ICAgIioxIHRlc3QgaW4qIiwKKyAgICAgICAgICAgICIqT0sqKGV4cGVjdGVkIGZhaWx1cmVzPTEp
KiIsCisgICAgICAgIF0pCisgICAgYXNzZXJ0IHJlc3VsdC5yZXQgPT0gMAorCisKK0BweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgncnVubmVyJywgWydweXRlc3QnLCAndW5pdHRlc3QnXSkKK2RlZiB0
ZXN0X3VuaXR0ZXN0X2V4cGVjdGVkX2ZhaWx1cmVfZm9yX3Bhc3NpbmdfdGVzdF9pc19mYWlsKHRl
c3RkaXIsIHJ1bm5lcik6CisgICAgc2NyaXB0ID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAg
ICAgICBpbXBvcnQgdW5pdHRlc3QKKyAgICAgICAgY2xhc3MgTXlUZXN0Q2FzZSh1bml0dGVzdC5U
ZXN0Q2FzZSk6CisgICAgICAgICAgICBAdW5pdHRlc3QuZXhwZWN0ZWRGYWlsdXJlCisgICAgICAg
ICAgICBkZWYgdGVzdF9wYXNzaW5nX3Rlc3RfaXNfZmFpbChzZWxmKToKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgVHJ1ZQorICAgICAgICBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgICAg
ICAgICAgdW5pdHRlc3QubWFpbigpCisgICAgIiIiKQorICAgIGZyb20gX3B5dGVzdC5jb21wYXQg
aW1wb3J0IF9pc191bml0dGVzdF91bmV4cGVjdGVkX3N1Y2Nlc3NfYV9mYWlsdXJlCisgICAgc2hv
dWxkX2ZhaWwgPSBfaXNfdW5pdHRlc3RfdW5leHBlY3RlZF9zdWNjZXNzX2FfZmFpbHVyZSgpCisg
ICAgaWYgcnVubmVyID09ICdweXRlc3QnOgorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5
dGVzdCgiLXJ4WCIpCisgICAgICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAg
ICAgICAgICAiKk15VGVzdENhc2UqdGVzdF9wYXNzaW5nX3Rlc3RfaXNfZmFpbCoiLAorICAgICAg
ICAgICAgIioxIGZhaWxlZCoiIGlmIHNob3VsZF9mYWlsIGVsc2UgIioxIHhwYXNzZWQqIiwKKyAg
ICAgICAgXSkKKyAgICBlbHNlOgorICAgICAgICByZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGhvbihz
Y3JpcHQpCisgICAgICAgIHJlc3VsdC5zdGRlcnIuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICAg
ICAiKjEgdGVzdCBpbioiLAorICAgICAgICAgICAgIioodW5leHBlY3RlZCBzdWNjZXNzZXM9MSkq
IiwKKyAgICAgICAgXSkKKworICAgIGFzc2VydCByZXN1bHQucmV0ID09ICgxIGlmIHNob3VsZF9m
YWlsIGVsc2UgMCkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoJ2ZpeF90eXBlLCBzdG10
JywgWworICAgICgnZml4dHVyZScsICdyZXR1cm4nKSwKKyAgICAoJ3lpZWxkX2ZpeHR1cmUnLCAn
eWllbGQnKSwKK10pCitkZWYgdGVzdF91bml0dGVzdF9zZXR1cF9pbnRlcmFjdGlvbih0ZXN0ZGly
LCBmaXhfdHlwZSwgc3RtdCk6CisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBp
bXBvcnQgdW5pdHRlc3QKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAgICAgICBjbGFzcyBNeVRl
c3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAgICAgICAgIEBweXRlc3Que2ZpeF90eXBl
fShzY29wZT0iY2xhc3MiLCBhdXRvdXNlPVRydWUpCisgICAgICAgICAgICBkZWYgcGVyY2xhc3Mo
c2VsZiwgcmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmVxdWVzdC5jbHMuaGVsbG8gPSAid29y
bGQiCisgICAgICAgICAgICAgICAge3N0bXR9CisgICAgICAgICAgICBAcHl0ZXN0LntmaXhfdHlw
ZX0oc2NvcGU9ImZ1bmN0aW9uIiwgYXV0b3VzZT1UcnVlKQorICAgICAgICAgICAgZGVmIHBlcmZ1
bmN0aW9uKHNlbGYsIHJlcXVlc3QpOgorICAgICAgICAgICAgICAgIHJlcXVlc3QuaW5zdGFuY2Uu
ZnVuY25hbWUgPSByZXF1ZXN0LmZ1bmN0aW9uLl9fbmFtZV9fCisgICAgICAgICAgICAgICAge3N0
bXR9CisKKyAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhvZDEoc2VsZik6CisgICAgICAgICAgICAg
ICAgYXNzZXJ0IHNlbGYuZnVuY25hbWUgPT0gInRlc3RfbWV0aG9kMSIKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgc2VsZi5oZWxsbyA9PSAid29ybGQiCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X21l
dGhvZDIoc2VsZik6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYuZnVuY25hbWUgPT0gInRl
c3RfbWV0aG9kMiIKKworICAgICAgICAgICAgZGVmIHRlc3RfY2xhc3NhdHRyKHNlbGYpOgorICAg
ICAgICAgICAgICAgIGFzc2VydCBzZWxmLl9fY2xhc3NfXy5oZWxsbyA9PSAid29ybGQiCisgICAg
IiIiLmZvcm1hdChmaXhfdHlwZT1maXhfdHlwZSwgc3RtdD1zdG10KSkKKyAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIqMyBw
YXNzZWQqIikKKworCitkZWYgdGVzdF9ub25fdW5pdHRlc3Rfbm9fc2V0dXBjbGFzc19zdXBwb3J0
KHRlc3RkaXIpOgorICAgIHRlc3RwYXRoID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAg
ICBjbGFzcyBUZXN0Rm9vKG9iamVjdCk6CisgICAgICAgICAgICB4ID0gMAorCisgICAgICAgICAg
ICBAY2xhc3NtZXRob2QKKyAgICAgICAgICAgIGRlZiBzZXRVcENsYXNzKGNscyk6CisgICAgICAg
ICAgICAgICAgY2xzLnggPSAxCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X21ldGhvZDEoc2VsZik6
CisgICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYueCA9PSAwCisKKyAgICAgICAgICAgIEBjbGFz
c21ldGhvZAorICAgICAgICAgICAgZGVmIHRlYXJEb3duQ2xhc3MoY2xzKToKKyAgICAgICAgICAg
ICAgICBjbHMueCA9IDEKKworICAgICAgICBkZWYgdGVzdF9ub3RfdGVhcmVkZG93bigpOgorICAg
ICAgICAgICAgYXNzZXJ0IFRlc3RGb28ueCA9PSAwCisKKyAgICAiIiIpCisgICAgcmVwcmVjID0g
dGVzdGRpci5pbmxpbmVfcnVuKHRlc3RwYXRoKQorICAgIHJlcHJlYy5hc3NlcnRvdXRjb21lKHBh
c3NlZD0yKQorCisKK2RlZiB0ZXN0X25vX3RlYXJkb3duX2lmX3NldHVwY2xhc3NfZmFpbGVkKHRl
c3RkaXIpOgorICAgIHRlc3RwYXRoID0gdGVzdGRpci5tYWtlcHlmaWxlKCIiIgorICAgICAgICBp
bXBvcnQgdW5pdHRlc3QKKworICAgICAgICBjbGFzcyBNeVRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RD
YXNlKToKKyAgICAgICAgICAgIHggPSAwCisKKyAgICAgICAgICAgIEBjbGFzc21ldGhvZAorICAg
ICAgICAgICAgZGVmIHNldFVwQ2xhc3MoY2xzKToKKyAgICAgICAgICAgICAgICBjbHMueCA9IDEK
KyAgICAgICAgICAgICAgICBhc3NlcnQgRmFsc2UKKworICAgICAgICAgICAgZGVmIHRlc3RfZnVu
YzEoc2VsZik6CisgICAgICAgICAgICAgICAgY2xzLnggPSAxMAorCisgICAgICAgICAgICBAY2xh
c3NtZXRob2QKKyAgICAgICAgICAgIGRlZiB0ZWFyRG93bkNsYXNzKGNscyk6CisgICAgICAgICAg
ICAgICAgY2xzLnggPSAxMDAKKworICAgICAgICBkZWYgdGVzdF9ub3RUb3JuRG93bigpOgorICAg
ICAgICAgICAgYXNzZXJ0IE15VGVzdENhc2UueCA9PSAxCisgICAgIiIiKQorICAgIHJlcHJlYyA9
IHRlc3RkaXIuaW5saW5lX3J1bih0ZXN0cGF0aCkKKyAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShw
YXNzZWQ9MSwgZmFpbGVkPTEpCisKKworZGVmIHRlc3RfaXNzdWUzMzNfcmVzdWx0X2NsZWFyaW5n
KHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZWNvbmZ0ZXN0KCIiIgorICAgICAgICBpbXBvcnQg
cHl0ZXN0CisgICAgICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKKyAgICAg
ICAgZGVmIHB5dGVzdF9ydW50ZXN0X2NhbGwoaXRlbSk6CisgICAgICAgICAgICB5aWVsZAorICAg
ICAgICAgICAgYXNzZXJ0IDAKKyAgICAiIiIpCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCIiIgor
ICAgICAgICBpbXBvcnQgdW5pdHRlc3QKKyAgICAgICAgY2xhc3MgVGVzdEl0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKKyAgICAgICAgICAgIGRlZiB0ZXN0X2Z1bmMoc2VsZik6CisgICAgICAgICAgICAg
ICAgMC8wCisgICAgIiIiKQorCisgICAgcmVwcmVjID0gdGVzdGRpci5pbmxpbmVfcnVuKCkKKyAg
ICByZXByZWMuYXNzZXJ0b3V0Y29tZShmYWlsZWQ9MSkKKworCitkZWYgdGVzdF91bml0dGVzdF9y
YWlzZV9za2lwX2lzc3VlNzQ4KHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0
X2Zvbz0iIiIKKyAgICAgICAgaW1wb3J0IHVuaXR0ZXN0CisKKyAgICAgICAgY2xhc3MgTXlUZXN0
Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgICAgICAgICBkZWYgdGVzdF9vbmUoc2VsZik6
CisgICAgICAgICAgICAgICAgcmFpc2UgdW5pdHRlc3QuU2tpcFRlc3QoJ3NraXBwaW5nIGR1ZSB0
byByZWFzb25zJykKKyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoIi12
IiwgJy1ycycpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKCIiIgorICAgICAgICAq
U0tJUCpbMV0qdGVzdF9mb28ucHkqc2tpcHBpbmcgZHVlIHRvIHJlYXNvbnMqCisgICAgICAgICox
IHNraXBwZWQqCisgICAgIiIiKQorCisKK2RlZiB0ZXN0X3VuaXR0ZXN0X3NraXBfaXNzdWUxMTY5
KHRlc3RkaXIpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSh0ZXN0X2Zvbz0iIiIKKyAgICAgICAg
aW1wb3J0IHVuaXR0ZXN0CisKKyAgICAgICAgY2xhc3MgTXlUZXN0Q2FzZSh1bml0dGVzdC5UZXN0
Q2FzZSk6CisgICAgICAgICAgICBAdW5pdHRlc3Quc2tpcCgic2tpcHBpbmcgZHVlIHRvIHJlYXNv
bnMiKQorICAgICAgICAgICAgZGVmIHRlc3Rfc2tpcChzZWxmKToKKyAgICAgICAgICAgICAgICAg
c2VsZi5mYWlsKCkKKyAgICAgICAgIiIiKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0
KCItdiIsICctcnMnKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcygiIiIKKyAgICAg
ICAgKlNLSVAqWzFdKnNraXBwaW5nIGR1ZSB0byByZWFzb25zKgorICAgICAgICAqMSBza2lwcGVk
KgorICAgICIiIikKKworCitkZWYgdGVzdF9jbGFzc19tZXRob2RfY29udGFpbmluZ190ZXN0X2lz
c3VlMTU1OCh0ZXN0ZGlyKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUodGVzdF9mb289IiIiCisg
ICAgICAgIGltcG9ydCB1bml0dGVzdAorCisgICAgICAgIGNsYXNzIE15VGVzdENhc2UodW5pdHRl
c3QuVGVzdENhc2UpOgorICAgICAgICAgICAgZGVmIHRlc3Rfc2hvdWxkX3J1bihzZWxmKToKKyAg
ICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBkZWYgdGVzdF9zaG91bGRfbm90X3J1bihz
ZWxmKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICB0ZXN0X3Nob3VsZF9ub3Rf
cnVuLl9fdGVzdF9fID0gRmFsc2UKKyAgICAiIiIpCisgICAgcmVwcmVjID0gdGVzdGRpci5pbmxp
bmVfcnVuKCkKKyAgICByZXByZWMuYXNzZXJ0b3V0Y29tZShwYXNzZWQ9MSkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF93YXJuaW5ncy5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvdGVzdF93YXJuaW5ncy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMjQwMGJkMWRlZGFjZmZiNDdiYTc2N2M3
M2E2NzljMWY5YzZmYWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90
ZXN0X3dhcm5pbmdzLnB5CkBAIC0wLDAgKzEsMjU4IEBACisjIC0qLSBjb2Rpbmc6IHV0ZjggLSot
Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHVuaWNvZGVfbGl0ZXJhbHMKKworaW1wb3J0IHN5cwor
CitpbXBvcnQgcHl0ZXN0CisKKworV0FSTklOR1NfU1VNTUFSWV9IRUFERVIgPSAnd2FybmluZ3Mg
c3VtbWFyeScKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiBweWZpbGVfd2l0aF93YXJuaW5ncyh0
ZXN0ZGlyLCByZXF1ZXN0KToKKyAgICAiIiIKKyAgICBDcmVhdGUgYSB0ZXN0IGZpbGUgd2hpY2gg
Y2FsbHMgYSBmdW5jdGlvbiBpbiBhIG1vZHVsZSB3aGljaCBnZW5lcmF0ZXMgd2FybmluZ3MuCisg
ICAgIiIiCisgICAgdGVzdGRpci5zeXNwYXRoaW5zZXJ0KCkKKyAgICB0ZXN0X25hbWUgPSByZXF1
ZXN0LmZ1bmN0aW9uLl9fbmFtZV9fCisgICAgbW9kdWxlX25hbWUgPSB0ZXN0X25hbWUubHN0cmlw
KCd0ZXN0XycpICsgJ19tb2R1bGUnCisgICAgdGVzdGRpci5tYWtlcHlmaWxlKCoqeworICAgICAg
ICBtb2R1bGVfbmFtZTogJycnCisgICAgICAgICAgICBpbXBvcnQgd2FybmluZ3MKKyAgICAgICAg
ICAgIGRlZiBmb28oKToKKyAgICAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKFVzZXJXYXJuaW5n
KCJ1c2VyIHdhcm5pbmciKSkKKyAgICAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKFJ1bnRpbWVX
YXJuaW5nKCJydW50aW1lIHdhcm5pbmciKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gMQorICAg
ICAgICAnJycsCisgICAgICAgIHRlc3RfbmFtZTogJycnCisgICAgICAgICAgICBpbXBvcnQge21v
ZHVsZV9uYW1lfQorICAgICAgICAgICAgZGVmIHRlc3RfZnVuYygpOgorICAgICAgICAgICAgICAg
IGFzc2VydCB7bW9kdWxlX25hbWV9LmZvbygpID09IDEKKyAgICAgICAgJycnLmZvcm1hdChtb2R1
bGVfbmFtZT1tb2R1bGVfbmFtZSkKKyAgICB9KQorCisKK0BweXRlc3QubWFyay5maWx0ZXJ3YXJu
aW5ncygnYWx3YXlzJykKK2RlZiB0ZXN0X25vcm1hbF9mbG93KHRlc3RkaXIsIHB5ZmlsZV93aXRo
X3dhcm5pbmdzKToKKyAgICAiIiIKKyAgICBDaGVjayB0aGF0IHRoZSB3YXJuaW5ncyBzZWN0aW9u
IGlzIGRpc3BsYXllZCwgY29udGFpbmluZyB0ZXN0IG5vZGUgaWRzIGZvbGxvd2VkIGJ5CisgICAg
YWxsIHdhcm5pbmdzIGdlbmVyYXRlZCBieSB0aGF0IHRlc3Qgbm9kZS4KKyAgICAiIiIKKyAgICBy
ZXN1bHQgPSB0ZXN0ZGlyLnJ1bnB5dGVzdCgpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xp
bmVzKFsKKyAgICAgICAgJyo9PSAlcyA9PSonICUgV0FSTklOR1NfU1VNTUFSWV9IRUFERVIsCisK
KyAgICAgICAgJyp0ZXN0X25vcm1hbF9mbG93LnB5Ojp0ZXN0X2Z1bmMnLAorCisgICAgICAgICcq
bm9ybWFsX2Zsb3dfbW9kdWxlLnB5OjM6IFVzZXJXYXJuaW5nOiB1c2VyIHdhcm5pbmcnLAorICAg
ICAgICAnKiAgd2FybmluZ3Mud2FybihVc2VyV2FybmluZygidXNlciB3YXJuaW5nIikpJywKKwor
ICAgICAgICAnKm5vcm1hbF9mbG93X21vZHVsZS5weTo0OiBSdW50aW1lV2FybmluZzogcnVudGlt
ZSB3YXJuaW5nJywKKyAgICAgICAgJyogIHdhcm5pbmdzLndhcm4oUnVudGltZVdhcm5pbmcoInJ1
bnRpbWUgd2FybmluZyIpKScsCisgICAgICAgICcqIDEgcGFzc2VkLCAyIHdhcm5pbmdzKicsCisg
ICAgXSkKKyAgICBhc3NlcnQgcmVzdWx0LnN0ZG91dC5zdHIoKS5jb3VudCgndGVzdF9ub3JtYWxf
Zmxvdy5weTo6dGVzdF9mdW5jJykgPT0gMQorCisKK0BweXRlc3QubWFyay5maWx0ZXJ3YXJuaW5n
cygnYWx3YXlzJykKK2RlZiB0ZXN0X3NldHVwX3RlYXJkb3duX3dhcm5pbmdzKHRlc3RkaXIsIHB5
ZmlsZV93aXRoX3dhcm5pbmdzKToKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoJycnCisgICAgICAg
IGltcG9ydCB3YXJuaW5ncworICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgQHB5dGVz
dC5maXh0dXJlCisgICAgICAgIGRlZiBmaXgoKToKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4o
VXNlcldhcm5pbmcoIndhcm5pbmcgZHVyaW5nIHNldHVwIikpCisgICAgICAgICAgICB5aWVsZAor
ICAgICAgICAgICAgd2FybmluZ3Mud2FybihVc2VyV2FybmluZygid2FybmluZyBkdXJpbmcgdGVh
cmRvd24iKSkKKworICAgICAgICBkZWYgdGVzdF9mdW5jKGZpeCk6CisgICAgICAgICAgICBwYXNz
CisgICAgJycnKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAnKj09ICVzID09KicgJSBXQVJOSU5HU19T
VU1NQVJZX0hFQURFUiwKKworICAgICAgICAnKnRlc3Rfc2V0dXBfdGVhcmRvd25fd2FybmluZ3Mu
cHk6NjogVXNlcldhcm5pbmc6IHdhcm5pbmcgZHVyaW5nIHNldHVwJywKKyAgICAgICAgJyp3YXJu
aW5ncy53YXJuKFVzZXJXYXJuaW5nKCJ3YXJuaW5nIGR1cmluZyBzZXR1cCIpKScsCisKKyAgICAg
ICAgJyp0ZXN0X3NldHVwX3RlYXJkb3duX3dhcm5pbmdzLnB5Ojg6IFVzZXJXYXJuaW5nOiB3YXJu
aW5nIGR1cmluZyB0ZWFyZG93bicsCisgICAgICAgICcqd2FybmluZ3Mud2FybihVc2VyV2Fybmlu
Zygid2FybmluZyBkdXJpbmcgdGVhcmRvd24iKSknLAorICAgICAgICAnKiAxIHBhc3NlZCwgMiB3
YXJuaW5ncyonLAorICAgIF0pCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdtZXRob2Qn
LCBbJ2NtZGxpbmUnLCAnaW5pJ10pCitkZWYgdGVzdF9hc19lcnJvcnModGVzdGRpciwgcHlmaWxl
X3dpdGhfd2FybmluZ3MsIG1ldGhvZCk6CisgICAgYXJncyA9ICgnLVcnLCAnZXJyb3InKSBpZiBt
ZXRob2QgPT0gJ2NtZGxpbmUnIGVsc2UgKCkKKyAgICBpZiBtZXRob2QgPT0gJ2luaSc6CisgICAg
ICAgIHRlc3RkaXIubWFrZWluaSgnJycKKyAgICAgICAgICAgIFtweXRlc3RdCisgICAgICAgICAg
ICBmaWx0ZXJ3YXJuaW5ncz0gZXJyb3IKKyAgICAgICAgICAgICcnJykKKyAgICByZXN1bHQgPSB0
ZXN0ZGlyLnJ1bnB5dGVzdCgqYXJncykKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMo
WworICAgICAgICAnRSAgICAgICBVc2VyV2FybmluZzogdXNlciB3YXJuaW5nJywKKyAgICAgICAg
J2FzX2Vycm9yc19tb2R1bGUucHk6MzogVXNlcldhcm5pbmcnLAorICAgICAgICAnKiAxIGZhaWxl
ZCBpbiAqJywKKyAgICBdKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgnbWV0aG9kJywg
WydjbWRsaW5lJywgJ2luaSddKQorZGVmIHRlc3RfaWdub3JlKHRlc3RkaXIsIHB5ZmlsZV93aXRo
X3dhcm5pbmdzLCBtZXRob2QpOgorICAgIGFyZ3MgPSAoJy1XJywgJ2lnbm9yZScpIGlmIG1ldGhv
ZCA9PSAnY21kbGluZScgZWxzZSAoKQorICAgIGlmIG1ldGhvZCA9PSAnaW5pJzoKKyAgICAgICAg
dGVzdGRpci5tYWtlaW5pKCcnJworICAgICAgICBbcHl0ZXN0XQorICAgICAgICBmaWx0ZXJ3YXJu
aW5ncz0gaWdub3JlCisgICAgICAgICcnJykKKworICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KCphcmdzKQorICAgIHJlc3VsdC5zdGRvdXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICcq
IDEgcGFzc2VkIGluIConLAorICAgIF0pCisgICAgYXNzZXJ0IFdBUk5JTkdTX1NVTU1BUllfSEVB
REVSIG5vdCBpbiByZXN1bHQuc3Rkb3V0LnN0cigpCisKKworQHB5dGVzdC5tYXJrLnNraXBpZihz
eXMudmVyc2lvbl9pbmZvIDwgKDMsIDApLAorICAgICAgICAgICAgICAgICAgICByZWFzb249J3dh
cm5pbmdzIG1lc3NhZ2UgaXMgdW5pY29kZSBpcyBvayBpbiBweXRob24zJykKK0BweXRlc3QubWFy
ay5maWx0ZXJ3YXJuaW5ncygnYWx3YXlzJykKK2RlZiB0ZXN0X3VuaWNvZGUodGVzdGRpciwgcHlm
aWxlX3dpdGhfd2FybmluZ3MpOgorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAg
IyAtKi0gY29kaW5nOiB1dGY4IC0qLQorICAgICAgICBpbXBvcnQgd2FybmluZ3MKKyAgICAgICAg
aW1wb3J0IHB5dGVzdAorCisKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAgICAgIGRlZiBm
aXgoKToKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4odSLmtYvor5UiKQorICAgICAgICAgICAg
eWllbGQKKworICAgICAgICBkZWYgdGVzdF9mdW5jKGZpeCk6CisgICAgICAgICAgICBwYXNzCisg
ICAgJycnKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQuc3Rk
b3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAnKj09ICVzID09KicgJSBXQVJOSU5HU19TVU1N
QVJZX0hFQURFUiwKKyAgICAgICAgJyp0ZXN0X3VuaWNvZGUucHk6ODogVXNlcldhcm5pbmc6IFx1
NmQ0Ylx1OGJkNSonLAorICAgICAgICAnKiAxIHBhc3NlZCwgMSB3YXJuaW5ncyonLAorICAgIF0p
CisKKworQHB5dGVzdC5tYXJrLnNraXBpZihzeXMudmVyc2lvbl9pbmZvID49ICgzLCAwKSwKKyAg
ICAgICAgICAgICAgICAgICAgcmVhc29uPSd3YXJuaW5ncyBtZXNzYWdlIGlzIGJyb2tlbiBhcyBp
dCBpcyBub3Qgc3RyIGluc3RhbmNlJykKK2RlZiB0ZXN0X3B5Ml91bmljb2RlKHRlc3RkaXIsIHB5
ZmlsZV93aXRoX3dhcm5pbmdzKToKKyAgICBpZiBnZXRhdHRyKHN5cywgInB5cHlfdmVyc2lvbl9p
bmZvIiwgKCkpWzoyXSA9PSAoNSwgOSkgYW5kIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCd3aW4n
KToKKyAgICAgICAgcHl0ZXN0LnhmYWlsKCJmYWlscyB3aXRoIHVuaWNvZGUgZXJyb3Igb24gUHlQ
eTIgNS45IGFuZCBXaW5kb3dzICgjMjkwNSkiKQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgnJycK
KyAgICAgICAgIyAtKi0gY29kaW5nOiB1dGY4IC0qLQorICAgICAgICBpbXBvcnQgd2FybmluZ3MK
KyAgICAgICAgaW1wb3J0IHB5dGVzdAorCisKKyAgICAgICAgQHB5dGVzdC5maXh0dXJlCisgICAg
ICAgIGRlZiBmaXgoKToKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4odSLmtYvor5UiKQorICAg
ICAgICAgICAgeWllbGQKKworICAgICAgICBAcHl0ZXN0Lm1hcmsuZmlsdGVyd2FybmluZ3MoJ2Fs
d2F5cycpCisgICAgICAgIGRlZiB0ZXN0X2Z1bmMoZml4KToKKyAgICAgICAgICAgIHBhc3MKKyAg
ICAnJycpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoKQorICAgIHJlc3VsdC5zdGRv
dXQuZm5tYXRjaF9saW5lcyhbCisgICAgICAgICcqPT0gJXMgPT0qJyAlIFdBUk5JTkdTX1NVTU1B
UllfSEVBREVSLAorCisgICAgICAgICcqdGVzdF9weTJfdW5pY29kZS5weTo4OiBVc2VyV2Fybmlu
ZzogXFx1NmQ0YlxcdThiZDUnLAorICAgICAgICAnKndhcm5pbmdzLndhcm4odSJcdTZkNGJcdThi
ZDUiKScsCisgICAgICAgICcqd2FybmluZ3MucHk6KjogVW5pY29kZVdhcm5pbmc6IFdhcm5pbmcg
aXMgdXNpbmcgdW5pY29kZSBub24qJywKKyAgICAgICAgJyogMSBwYXNzZWQsIDIgd2FybmluZ3Mq
JywKKyAgICBdKQorCisKK2RlZiB0ZXN0X3B5Ml91bmljb2RlX2FzY2lpKHRlc3RkaXIpOgorICAg
ICIiIkVuc3VyZSB0aGF0IG91ciB3YXJuaW5nIGFib3V0ICd1bmljb2RlIHdhcm5pbmdzIGNvbnRh
aW5pbmcgbm9uLWFzY2lpIG1lc3NhZ2VzJworICAgIGRvZXMgbm90IHRyaWdnZXIgd2l0aCBhc2Np
aS1jb252ZXJ0aWJsZSBtZXNzYWdlcyIiIgorICAgIHRlc3RkaXIubWFrZWluaSgnW3B5dGVzdF0n
KQorICAgIHRlc3RkaXIubWFrZXB5ZmlsZSgnJycKKyAgICAgICAgaW1wb3J0IHB5dGVzdAorICAg
ICAgICBpbXBvcnQgd2FybmluZ3MKKworICAgICAgICBAcHl0ZXN0Lm1hcmsuZmlsdGVyd2Fybmlu
Z3MoJ2Fsd2F5cycpCisgICAgICAgIGRlZiB0ZXN0X2Z1bmMoKToKKyAgICAgICAgICAgIHdhcm5p
bmdzLndhcm4odSJoZWxsbyIpCisgICAgJycnKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0
ZXN0KCkKKyAgICByZXN1bHQuc3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAnKj09ICVz
ID09KicgJSBXQVJOSU5HU19TVU1NQVJZX0hFQURFUiwKKyAgICAgICAgJyp3YXJuaW5ncy53YXJu
KHUiaGVsbG8iKScsCisgICAgICAgICcqIDEgcGFzc2VkLCAxIHdhcm5pbmdzIGluKicKKyAgICBd
KQorCisKK2RlZiB0ZXN0X3dvcmtzX3dpdGhfZmlsdGVyd2FybmluZ3ModGVzdGRpcik6CisgICAg
IiIiRW5zdXJlIG91ciB3YXJuaW5ncyBjYXB0dXJlIGRvZXMgbm90IG1lc3Mgd2l0aCBwcmUtaW5z
dGFsbGVkIGZpbHRlcnMgKCMyNDMwKS4iIiIKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoJycnCisg
ICAgICAgIGltcG9ydCB3YXJuaW5ncworCisgICAgICAgIGNsYXNzIE15V2FybmluZyhXYXJuaW5n
KToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICB3YXJuaW5ncy5maWx0ZXJ3YXJuaW5ncygi
ZXJyb3IiLCBjYXRlZ29yeT1NeVdhcm5pbmcpCisKKyAgICAgICAgY2xhc3MgVGVzdFdhcm5pbmdz
KG9iamVjdCk6CisgICAgICAgICAgICBkZWYgdGVzdF9teV93YXJuaW5nKHNlbGYpOgorICAgICAg
ICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgd2FybmluZ3Mud2FybihNeVdhcm5p
bmcoIndhcm4hIikpCisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBGYWxzZQorICAgICAgICAg
ICAgICAgIGV4Y2VwdCBNeVdhcm5pbmc6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBUcnVl
CisgICAgJycnKQorICAgIHJlc3VsdCA9IHRlc3RkaXIucnVucHl0ZXN0KCkKKyAgICByZXN1bHQu
c3Rkb3V0LmZubWF0Y2hfbGluZXMoWworICAgICAgICAnKj09IDEgcGFzc2VkIGluIConLAorICAg
IF0pCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCdkZWZhdWx0X2NvbmZpZycsIFsnaW5p
JywgJ2NtZGxpbmUnXSkKK2RlZiB0ZXN0X2ZpbHRlcndhcm5pbmdzX21hcmsodGVzdGRpciwgZGVm
YXVsdF9jb25maWcpOgorICAgICIiIgorICAgIFRlc3QgYGBmaWx0ZXJ3YXJuaW5nc2BgIG1hcmsg
d29ya3MgYW5kIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBjb21tYW5kIGxpbmUgYW5kIGluaSBvcHRp
b25zLgorICAgICIiIgorICAgIGlmIGRlZmF1bHRfY29uZmlnID09ICdpbmknOgorICAgICAgICB0
ZXN0ZGlyLm1ha2VpbmkoIiIiCisgICAgICAgICAgICBbcHl0ZXN0XQorICAgICAgICAgICAgZmls
dGVyd2FybmluZ3MgPSBhbHdheXMKKyAgICAgICAgIiIiKQorICAgIHRlc3RkaXIubWFrZXB5Zmls
ZSgiIiIKKyAgICAgICAgaW1wb3J0IHdhcm5pbmdzCisgICAgICAgIGltcG9ydCBweXRlc3QKKwor
ICAgICAgICBAcHl0ZXN0Lm1hcmsuZmlsdGVyd2FybmluZ3MoJ2lnbm9yZTo6UnVudGltZVdhcm5p
bmcnKQorICAgICAgICBkZWYgdGVzdF9pZ25vcmVfcnVudGltZV93YXJuaW5nKCk6CisgICAgICAg
ICAgICB3YXJuaW5ncy53YXJuKFJ1bnRpbWVXYXJuaW5nKCkpCisKKyAgICAgICAgQHB5dGVzdC5t
YXJrLmZpbHRlcndhcm5pbmdzKCdlcnJvcicpCisgICAgICAgIGRlZiB0ZXN0X3dhcm5pbmdfZXJy
b3IoKToKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oUnVudGltZVdhcm5pbmcoKSkKKworICAg
ICAgICBkZWYgdGVzdF9zaG93X3dhcm5pbmcoKToKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4o
UnVudGltZVdhcm5pbmcoKSkKKyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRl
c3QoJy1XIGFsd2F5cycgaWYgZGVmYXVsdF9jb25maWcgPT0gJ2NtZGxpbmUnIGVsc2UgJycpCisg
ICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsnKj0gMSBmYWlsZWQsIDIgcGFzc2VkLCAx
IHdhcm5pbmdzIGluIConXSkKKworCitkZWYgdGVzdF9ub25fc3RyaW5nX3dhcm5pbmdfYXJndW1l
bnQodGVzdGRpcik6CisgICAgIiIiTm9uLXN0ciBhcmd1bWVudCBwYXNzZWQgdG8gd2FybmluZyBi
cmVha3MgcHl0ZXN0ICgjMjk1NikiIiIKKyAgICB0ZXN0ZGlyLm1ha2VweWZpbGUoIiIiCisgICAg
ICAgIGltcG9ydCB3YXJuaW5ncworICAgICAgICBpbXBvcnQgcHl0ZXN0CisKKyAgICAgICAgZGVm
IHRlc3QoKToKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oVXNlcldhcm5pbmcoMSwgdSdmb28n
KSkKKyAgICAiIiIpCisgICAgcmVzdWx0ID0gdGVzdGRpci5ydW5weXRlc3QoJy1XJywgJ2Fsd2F5
cycpCisgICAgcmVzdWx0LnN0ZG91dC5mbm1hdGNoX2xpbmVzKFsnKj0gMSBwYXNzZWQsIDEgd2Fy
bmluZ3MgaW4gKiddKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTdl
NmVkNjk1ZmYyNTFkZTA3MzAyYTI4ZGRmNzVmN2NlM2MxNGJjMwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSw1MSBAQAorVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0lu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczov
L2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmls
ZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9hY2NlcHRhbmNlX3Rlc3QucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL2RlcHJlY2F0ZWRfdGVzdC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9h
cmdjb21wbGV0ZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9hc3NlcnRpb24ucHkKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfYXNzZXJ0cmV3cml0ZS5weQorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvdGVzdF9jYWNoZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9jYXB0dXJlLnB5
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NvbGxlY3Rpb24ucHkKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL3Rlc3RfY29tcGF0LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NvbmZpZy5w
eQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9jb25mdGVzdC5weQorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvdGVzdF9kb2N0ZXN0LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2VudHJ5X3Bv
aW50cy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9oZWxwY29uZmlnLnB5CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy90ZXN0X2p1bml0eG1sLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0
X21hcmsucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfbW9kaW1wb3J0LnB5CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy90ZXN0X21vbmtleXBhdGNoLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90
ZXN0X25vZGVzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X25vc2UucHkKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL3Rlc3RfcGFyc2VvcHQucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rf
cGFzdGViaW4ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcGRiLnB5CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy90ZXN0X3BsdWdpbm1hbmFnZXIucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rl
c3RfcHl0ZXN0ZXIucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcmVjd2Fybi5weQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9yZXN1bHRsb2cucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5n
L3Rlc3RfcnVubmVyLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3J1bm5lcl94dW5pdC5w
eQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9zZXNzaW9uLnB5CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy90ZXN0X3NraXBwaW5nLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3Rlcm1pbmFs
LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3RtcGRpci5weQorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rl
c3RpbmcvdGVzdF91bml0dGVzdC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF93YXJuaW5n
cy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdG94LmluaSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3RveC5p
bmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTAwYjYwMmRjMzM3ZGExY2JjN2M4NWIxNjQwNjQ1M2M1M2NlNzM3ZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3RveC5pbmkKQEAgLTAsMCArMSwyMjAgQEAK
K1t0b3hdCittaW52ZXJzaW9uID0gMi4wCitkaXN0c2hhcmUgPSB7aG9tZWRpcn0vLnRveC9kaXN0
c2hhcmUKKyMgbWFrZSBzdXJlIHRvIHVwZGF0ZSBlbnZpcm9ubWVudCBsaXN0IGluIHRyYXZpcy55
bWwgYW5kIGFwcHZleW9yLnltbAorZW52bGlzdCA9CisgICAgbGludGluZworICAgIHB5MjcKKyAg
ICBweTM0CisgICAgcHkzNQorICAgIHB5MzYKKyAgICBweTM3CisgICAgcHlweQorICAgIHtweTI3
LHB5MzZ9LXtwZXhwZWN0LHhkaXN0LHRyaWFsLG51bXB5LHBsdWdneW1hc3Rlcn0KKyAgICBweTI3
LW5vYnl0ZQorICAgIGRvY3Rlc3RpbmcKKyAgICBweTM1LWZyZWV6ZQorICAgIGRvY3MKKworW3Rl
c3RlbnZdCitjb21tYW5kcyA9IHB5dGVzdCAtLWxzb2YgLXJhIHtwb3NhcmdzOnRlc3Rpbmd9Citw
YXNzZW52ID0gVVNFUiBVU0VSTkFNRQorZGVwcyA9CisgICAgaHlwb3RoZXNpcz49My41LjIKKyAg
ICBub3NlCisgICAgbW9jaworICAgIHJlcXVlc3RzCisKK1t0ZXN0ZW52OnB5Mjctc3VicHJvY2Vz
c10KK2NoYW5nZWRpciA9IC4KK2RlcHMgPQorICAgIHB5dGVzdC14ZGlzdD49MS4xMworICAgIG1v
Y2sKKyAgICBub3NlCitjb21tYW5kcyA9CisgICAgcHl0ZXN0IC1uMyAtcmEgLS1ydW5weXRlc3Q9
c3VicHJvY2VzcyB7cG9zYXJnczp0ZXN0aW5nfQorCisKK1t0ZXN0ZW52OmxpbnRpbmddCitza2lw
c2Rpc3QgPSBUcnVlCit1c2VkZXZlbG9wID0gVHJ1ZQorYmFzZXB5dGhvbiA9IHB5dGhvbjIuNwor
ZGVwcyA9CisgICAgZmxha2U4CisgICAgIyBweWdtZW50cyByZXF1aXJlZCBieSByc3QtbGludAor
ICAgIHB5Z21lbnRzCisgICAgcmVzdHJ1Y3R1cmVkdGV4dF9saW50Citjb21tYW5kcyA9CisgICAg
Zmxha2U4IHB5dGVzdC5weSBfcHl0ZXN0IHRlc3Rpbmcgc2V0dXAucHkgcHl0ZXN0LnB5CisgICAg
e2VudnB5dGhvbn0gc2NyaXB0cy9jaGVjay1yc3QucHkKKworW3Rlc3RlbnY6cHkyNy14ZGlzdF0K
K2RlcHMgPQorICAgIHB5dGVzdC14ZGlzdD49MS4xMworICAgIG1vY2sKKyAgICBub3NlCisgICAg
aHlwb3RoZXNpcz49My41LjIKK2NoYW5nZWRpcj10ZXN0aW5nCitjb21tYW5kcyA9CisgICAgcHl0
ZXN0IC1uMSAtcmEge3Bvc2FyZ3M6Ln0KKworW3Rlc3RlbnY6cHkzNi14ZGlzdF0KK2RlcHMgPSB7
W3Rlc3RlbnY6cHkyNy14ZGlzdF1kZXBzfQorY29tbWFuZHMgPQorICAgIHB5dGVzdCAtbjMgLXJh
IHtwb3NhcmdzOnRlc3Rpbmd9CisKK1t0ZXN0ZW52OnB5MjctcGV4cGVjdF0KK2NoYW5nZWRpciA9
IHRlc3RpbmcKK3BsYXRmb3JtID0gbGludXh8ZGFyd2luCitkZXBzID0gcGV4cGVjdAorY29tbWFu
ZHMgPQorICAgIHB5dGVzdCAtcmEgdGVzdF9wZGIucHkgdGVzdF90ZXJtaW5hbC5weSB0ZXN0X3Vu
aXR0ZXN0LnB5CisKK1t0ZXN0ZW52OnB5MzYtcGV4cGVjdF0KK2NoYW5nZWRpciA9IHRlc3RpbmcK
K3BsYXRmb3JtID0gbGludXh8ZGFyd2luCitkZXBzID0ge1t0ZXN0ZW52OnB5MjctcGV4cGVjdF1k
ZXBzfQorY29tbWFuZHMgPQorICAgIHB5dGVzdCAtcmEgdGVzdF9wZGIucHkgdGVzdF90ZXJtaW5h
bC5weSB0ZXN0X3VuaXR0ZXN0LnB5CisKK1t0ZXN0ZW52OnB5Mjctbm9ieXRlXQorZGVwcyA9Cisg
ICAgcHl0ZXN0LXhkaXN0Pj0xLjEzCisgICAgaHlwb3RoZXNpcz49My41LjIKK2Rpc3RyaWJ1dGUg
PSB0cnVlCitjaGFuZ2VkaXI9dGVzdGluZworc2V0ZW52ID0KKyAgICBQWVRIT05ET05UV1JJVEVC
WVRFQ09ERT0xCitjb21tYW5kcyA9CisgICAgcHl0ZXN0IC1uMyAtcmEge3Bvc2FyZ3M6Ln0KKwor
W3Rlc3RlbnY6cHkyNy10cmlhbF0KK2RlcHMgPSB0d2lzdGVkCitjb21tYW5kcyA9CisgICAgcHl0
ZXN0IC1yYSB7cG9zYXJnczp0ZXN0aW5nL3Rlc3RfdW5pdHRlc3QucHl9CisKK1t0ZXN0ZW52OnB5
MzYtdHJpYWxdCitkZXBzID0ge1t0ZXN0ZW52OnB5MjctdHJpYWxdZGVwc30KK2NvbW1hbmRzID0K
KyAgICBweXRlc3QgLXJhIHtwb3NhcmdzOnRlc3RpbmcvdGVzdF91bml0dGVzdC5weX0KKworW3Rl
c3RlbnY6cHkyNy1udW1weV0KK2RlcHM9bnVtcHkKK2NvbW1hbmRzPQorICBweXRlc3QgLXJhIHtw
b3NhcmdzOnRlc3RpbmcvcHl0aG9uL2FwcHJveC5weX0KKworW3Rlc3RlbnY6cHkzNi1udW1weV0K
K2RlcHM9bnVtcHkKK2NvbW1hbmRzPQorICBweXRlc3QgLXJhIHtwb3NhcmdzOnRlc3RpbmcvcHl0
aG9uL2FwcHJveC5weX0KKworW3Rlc3RlbnY6cHkyNy1wbHVnZ3ltYXN0ZXJdCitzZXRlbnY9Cisg
ICAgX1BZVEVTVF9TRVRVUF9TS0lQX1BMVUdHWV9ERVA9MQorZGVwcyA9CisgICAge1t0ZXN0ZW52
XWRlcHN9CisgICAgZ2l0K2h0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3BsdWdneS5naXRA
bWFzdGVyCisKK1t0ZXN0ZW52OnB5MzUtcGx1Z2d5bWFzdGVyXQorc2V0ZW52PQorICAgIF9QWVRF
U1RfU0VUVVBfU0tJUF9QTFVHR1lfREVQPTEKK2RlcHMgPQorICAgIHtbdGVzdGVudjpweTI3LXBs
dWdneW1hc3Rlcl1kZXBzfQorICAgIGdpdCtodHRwczovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9w
bHVnZ3kuZ2l0QG1hc3RlcgorCitbdGVzdGVudjpkb2NzXQorc2tpcHNkaXN0ID0gVHJ1ZQordXNl
ZGV2ZWxvcCA9IFRydWUKK2Jhc2VweXRob24gPSBweXRob24KK2NoYW5nZWRpciA9IGRvYy9lbgor
ZGVwcyA9CisgICAgc3BoaW54CisgICAgUHlZQU1MCisKK2NvbW1hbmRzID0KKyAgICBzcGhpbngt
YnVpbGQgLVcgLWIgaHRtbCAuIF9idWlsZAorCitbdGVzdGVudjpkb2N0ZXN0aW5nXQorYmFzZXB5
dGhvbiA9IHB5dGhvbgordXNlZGV2ZWxvcCA9IFRydWUKK3NraXBzZGlzdCA9IFRydWUKKyMgZW5z
dXJlIHRoZSBnaXZlbiBweWFyZ3MgY2FudCBtZWFuIGFueXRyaGluZyBlbHNlCitjaGFuZ2VkaXIg
PSBkb2MvCitkZXBzID0KKyAgICBQeVlBTUwKK2NvbW1hbmRzID0KKyAgICBweXRlc3QgLXJhIGVu
CisgICAgcHl0ZXN0IC0tZG9jdGVzdC1tb2R1bGVzIC0tcHlhcmdzIF9weXRlc3QKKworW3Rlc3Rl
bnY6cmVnZW5dCitjaGFuZ2VkaXIgPSBkb2MvZW4KK3NraXBzZGlzdCA9IFRydWUKK2Jhc2VweXRo
b24gPSBweXRob24zLjUKK2RlcHMgPQorICAgIHNwaGlueAorICAgIFB5WUFNTAorICAgIHJlZ2Vu
ZG9jPj0wLjYuMQord2hpdGVsaXN0X2V4dGVybmFscyA9CisgICAgcm0KKyAgICBtYWtlCitjb21t
YW5kcyA9CisgICAgcm0gLXJmIC90bXAvZG9jLWV4ZWMqCisgICAgbWFrZSByZWdlbgorCitbdGVz
dGVudjpmaXgtbGludF0KK3NraXBzZGlzdCA9IFRydWUKK3VzZWRldmVsb3AgPSBUcnVlCitkZXBz
ID0KKyAgICBhdXRvcGVwOAorY29tbWFuZHMgPQorICAgIGF1dG9wZXA4IC0taW4tcGxhY2UgLXIg
LS1tYXgtbGluZS1sZW5ndGg9MTIwIC0tZXhjbHVkZT10ZXN0X3NvdXJjZV9tdWx0aWxpbmVfYmxv
Y2sucHkgX3B5dGVzdCB0ZXN0aW5nIHNldHVwLnB5IHB5dGVzdC5weQorCitbdGVzdGVudjpqeXRo
b25dCitjaGFuZ2VkaXIgPSB0ZXN0aW5nCitjb21tYW5kcyA9CisgICAge2VudnB5dGhvbn0ge2Vu
dmJpbmRpcn0vcHkudGVzdC1qeXRob24gLXJhIHtwb3NhcmdzfQorCitbdGVzdGVudjpweTM1LWZy
ZWV6ZV0KK2NoYW5nZWRpciA9IHRlc3RpbmcvZnJlZXplCitkZXBzID0gcHlpbnN0YWxsZXIKK2Nv
bW1hbmRzID0KKyAgICB7ZW52cHl0aG9ufSBjcmVhdGVfZXhlY3V0YWJsZS5weQorICAgIHtlbnZw
eXRob259IHRveF9ydW4ucHkKKworCitbdGVzdGVudjpjb3ZlcmFsbHNdCitwYXNzZW52ID0gVFJB
VklTIFRSQVZJU19KT0JfSUQgVFJBVklTX0JSQU5DSCBDT1ZFUkFMTFNfUkVQT19UT0tFTgordXNl
ZGV2ZWxvcCA9IFRydWUKK2NoYW5nZWRpciA9IC4KK2RlcHMgPQorICAgIHtbdGVzdGVudl1kZXBz
fQorICAgIGNvdmVyYWxscworY29tbWFuZHMgPQorICAgIGNvdmVyYWdlIHJ1biAtLXNvdXJjZT1f
cHl0ZXN0IC1tIHB5dGVzdCB0ZXN0aW5nCisgICAgY292ZXJhZ2UgcmVwb3J0IC1tCisgICAgY292
ZXJhbGxzCisKK1tweXRlc3RdCittaW52ZXJzaW9uID0gMi4wCitwbHVnaW5zID0gcHl0ZXN0ZXIK
KyMtLXB5YXJncyAtLWRvY3Rlc3QtbW9kdWxlcyAtLWlnbm9yZT0udG94CithZGRvcHRzID0gLXJh
IC1wIHB5dGVzdGVyIC0taWdub3JlPXRlc3RpbmcvY3hfZnJlZXplCityc3luY2RpcnMgPSB0b3gu
aW5pIHB5dGVzdC5weSBfcHl0ZXN0IHRlc3RpbmcKK3B5dGhvbl9maWxlcyA9IHRlc3RfKi5weSAq
X3Rlc3QucHkgdGVzdGluZy8qLyoucHkKK3B5dGhvbl9jbGFzc2VzID0gVGVzdCBBY2NlcHRhbmNl
CitweXRob25fZnVuY3Rpb25zID0gdGVzdAorbm9yZWN1cnNlZGlycyA9IC50b3ggamEgLmhnIGN4
X2ZyZWV6ZV9zb3VyY2UKK3hmYWlsX3N0cmljdD10cnVlCitmaWx0ZXJ3YXJuaW5ncyA9CisgICAg
ZXJyb3IKKyAgICAjIHByb2R1Y2VkIGJ5IHBhdGgubG9jYWwKKyAgICBpZ25vcmU6YmFkIGVzY2Fw
ZS4qOkRlcHJlY2F0aW9uV2FybmluZzpyZQorICAgICMgcHJvZHVjZWQgYnkgcGF0aC5yZWFkbGlu
ZXMKKyAgICBpZ25vcmU6LipVLiptb2RlIGlzIGRlcHJlY2F0ZWQ6RGVwcmVjYXRpb25XYXJuaW5n
CisgICAgIyBwcm9kdWNlZCBieSBweXRlc3QteGRpc3QKKyAgICBpZ25vcmU6Lip0eXBlIGFyZ3Vt
ZW50IHRvIGFkZG9wdGlvbi4qOkRlcHJlY2F0aW9uV2FybmluZworICAgICMgcHJvZHVjZWQgYnkg
cHl0aG9uID49My41IG9uIGV4ZWNuZXQgKHB5dGVzdC14ZGlzdCkKKyAgICBpZ25vcmU6LippbnNw
ZWN0LmdldGFyZ3NwZWMuKmRlcHJlY2F0ZWQsIHVzZSBpbnNwZWN0LnNpZ25hdHVyZS4qOkRlcHJl
Y2F0aW9uV2FybmluZworCitbZmxha2U4XQorbWF4LWxpbmUtbGVuZ3RoID0gMTIwCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3czYy1pbXBvcnQu
bG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjRkZDgyM2I0MTc1NDEwZGIxYWNkNGE2NTFiZjk2MTNkNmNjMDRhMDkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsx
LDI4IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
TGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9BVVRIT1JTCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvQ0hBTkdF
TE9HLnJzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L0NPTlRSSUJVVElORy5yc3QKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9IT1dU
T1JFTEVBU0UucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvTElDRU5TRQorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L1JFQURNRS5y
c3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9hcHB2ZXlvci55bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9weXByb2plY3QudG9t
bAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L3B5dGVzdC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NldHVwLmNmZworL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3NldHVwLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdG94LmluaQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90b3guaW5pIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90b3guaW5pCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjFkYjFiNGViYjdhYjIwMWE4ZjVmYTZiNDgzYjM2MDZiY2U1Y2UzNDEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RveC5pbmkKQEAgLTAsMCArMSw1MCBAQAorW3RveF0KK2Vudmxpc3QgPSBweTI3LHB5
MzYscHlweQorc2tpcHNkaXN0PVRydWUKKworW3Rlc3RlbnZdCisjIGZsYWtlOCB2ZXJzaW9ucyBz
aG91bGQgYmUga2VwdCBpbiBzeW5jIGFjcm9zcyB0b29scy90b3guaW5pLCB0b29scy93cHQvdG94
LmluaSwgYW5kIHRvb2xzL3dwdHJ1bm5lci90b3guaW5pCitkZXBzID0KKyAgZmxha2U4PT0zLjUu
MAorICBweWNvZGVzdHlsZT09Mi4zLjEKKyAgcHlmbGFrZXM9PTEuNi4wCisgIHBlcDgtbmFtaW5n
PT0wLjQuMQorICBweXRlc3QKKyAgcHl0ZXN0LWNvdgorICBtb2NrCisgIGh5cG90aGVzaXMKKyAg
cHl0ZXN0LWNhdGNobG9nCisKK2NvbW1hbmRzID0KKyAgcHl0ZXN0IC0tY292IHtwb3NhcmdzfQor
ICBmbGFrZTgKKworcGFzc2VudiA9CisgIEhZUE9USEVTSVNfUFJPRklMRQorCitbZmxha2U4XQor
IyBmbGFrZTggY29uZmlnIHNob3VsZCBiZSBrZXB0IGluIHN5bmMgYWNyb3NzIHRvb2xzL3RveC5p
bmksIHRvb2xzL3dwdC90b3guaW5pLCBhbmQgdG9vbHMvd3B0cnVubmVyL3RveC5pbmkKK3NlbGVj
dCA9IEUsVyxGLE4KKyMgRTEyODogY29udGludWF0aW9uIGxpbmUgdW5kZXItaW5kZW50ZWQgZm9y
IHZpc3VhbCBpbmRlbnQKKyMgRTEyOTogdmlzdWFsbHkgaW5kZW50ZWQgbGluZSB3aXRoIHNhbWUg
aW5kZW50IGFzIG5leHQgbG9naWNhbCBsaW5lCisjIEUyMjE6IG11bHRpcGxlIHNwYWNlcyBiZWZv
cmUgb3BlcmF0b3IKKyMgRTIyNjogbWlzc2luZyB3aGl0ZXNwYWNlIGFyb3VuZCBhcml0aG1ldGlj
IG9wZXJhdG9yCisjIEUyMzE6IG1pc3Npbmcgd2hpdGVzcGFjZSBhZnRlciDigJgs4oCZLCDigJg7
4oCZLCBvciDigJg64oCZCisjIEUyNTE6IHVuZXhwZWN0ZWQgc3BhY2VzIGFyb3VuZCBrZXl3b3Jk
IC8gcGFyYW1ldGVyIGVxdWFscworIyBFMjY1OiBibG9jayBjb21tZW50IHNob3VsZCBzdGFydCB3
aXRoIOKAmCMg4oCYCisjIEUzMDI6IGV4cGVjdGVkIDIgYmxhbmsgbGluZXMsIGZvdW5kIDAKKyMg
RTMwMzogdG9vIG1hbnkgYmxhbmsgbGluZXMgKDMpCisjIEUzMDU6IGV4cGVjdGVkIDIgYmxhbmsg
bGluZXMgYWZ0ZXIgZW5kIG9mIGZ1bmN0aW9uIG9yIGNsYXNzCisjIEU0MDI6IG1vZHVsZSBsZXZl
bCBpbXBvcnQgbm90IGF0IHRvcCBvZiBmaWxlCisjIEU3MzE6IGRvIG5vdCBhc3NpZ24gYSBsYW1i
ZGEgZXhwcmVzc2lvbiwgdXNlIGEgZGVmCisjIEU5MDE6IFN5bnRheEVycm9yIG9yIEluZGVudGF0
aW9uRXJyb3IKKyMgVzYwMTogLmhhc19rZXkoKSBpcyBkZXByZWNhdGVkLCB1c2Ug4oCYaW7igJkK
KyMgRjQwMTogbW9kdWxlIGltcG9ydGVkIGJ1dCB1bnVzZWQKKyMgRjQwMzog4oCYZnJvbSBtb2R1
bGUgaW1wb3J0ICrigJkgdXNlZDsgdW5hYmxlIHRvIGRldGVjdCB1bmRlZmluZWQgbmFtZXMKKyMg
RjQwNTogbmFtZSBtYXkgYmUgdW5kZWZpbmVkLCBvciBkZWZpbmVkIGZyb20gc3RhciBpbXBvcnRz
OiBtb2R1bGUKKyMgRjg0MTogbG9jYWwgdmFyaWFibGUgbmFtZSBpcyBhc3NpZ25lZCB0byBidXQg
bmV2ZXIgdXNlZAorIyBOODAxOiBjbGFzcyBuYW1lcyBzaG91bGQgdXNlIENhcFdvcmRzIGNvbnZl
bnRpb24KKyMgTjgwMjogZnVuY3Rpb24gbmFtZSBzaG91bGQgYmUgbG93ZXJjYXNlCitpZ25vcmUg
PSBFMTI4LEUxMjksRTIyMSxFMjI2LEUyMzEsRTI1MSxFMjY1LEUzMDIsRTMwMyxFMzA1LEU0MDIs
RTczMSxFOTAxLFc2MDEsRjQwMSxGNDAzLEY0MDUsRjg0MSxOODAxLE44MDIKK21heC1saW5lLWxl
bmd0aCA9IDE0MQorZXhjbHVkZSA9IC50b3gsaHRtbDVsaWIsdGhpcmRfcGFydHkvcHksdGhpcmRf
cGFydHkvcHl0ZXN0LHRoaXJkX3BhcnR5L2Z1bmNzaWdzLHRoaXJkX3BhcnR5L2F0dHJzLHRoaXJk
X3BhcnR5L3BsdWdneS8scHl3ZWJzb2NrZXQsc2l4LF92ZW52LHdlYmVuY29kaW5ncyx3cHRzZXJ2
ZS9kb2NzLHdwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC8sd3B0LHdwdHJ1bm5lcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdzNjLWltcG9ydC5sb2cKaW5kZXggYzk1NmY3YTg3MzgyN2EyNzQ1MzZh
ZTIxNjljZmRjMDI3NDA4NDA3ZS4uYTQ0ZmU3ZDEwMmJiOGFjNDVmMWZmMjU2YjhlY2UyZWQ5ZGRk
OWM1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3czYy1pbXBvcnQubG9nCkBAIC0xNCw1ICsxNCwxMCBA
QCBQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKIE5vbmUKIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL09XTkVSUwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2FwcHZleW9yLnltbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY29uZnRlc3QucHkKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xvY2FscGF0aHMu
cHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
dGVzdC5pbmkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RveC5pbmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL1JFQURNRS5tZCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL1JFQURNRS5tZApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wMTViMzFiMjU0Y2UxYmRkODBjMjVlM2ZkM2NkOTY4NzA4YTEyOWU1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93ZWJkcml2ZXIvUkVBRE1FLm1kCkBAIC0wLDAgKzEsNzMgQEAKKyMgV2ViRHJpdmVyIGNs
aWVudCBmb3IgUHl0aG9uCisKK1RoaXMgcGFja2FnZSBwcm92aWRlcyBQeXRob24gYmluZGluZ3MK
K3RoYXQgY29uZm9ybSB0byB0aGUgW1czQyBXZWJEcml2ZXIgc3RhbmRhcmRdKGh0dHBzOi8vdzNj
LmdpdGh1Yi5pby93ZWJkcml2ZXIvd2ViZHJpdmVyLXNwZWMuaHRtbCksCit3aGljaCBzcGVjaWZp
ZXMgYSByZW1vdGUgY29udHJvbCBwcm90b2NvbCBmb3Igd2ViIGJyb3dzZXJzLgorCitUaGVzZSBi
aW5kaW5ncyBhcmUgd3JpdHRlbiB3aXRoIGRldGVybWluaW5nCitpbXBsZW1lbnRhdGlvbiBjb21w
bGlhbmNlIHRvIHRoZSBzcGVjaWZpY2F0aW9uIGluIG1pbmQsCitzbyB0aGF0IGRpZmZlcmVudCBy
ZW1vdGUgZW5kIGRyaXZlcnMKK2NhbiBkZXRlcm1pbmUgd2hldGhlciB0aGV5IG1lZXQgdGhlIHJl
Y29nbmlzZWQgc3RhbmRhcmQuCitUaGUgY2xpZW50IGlzIHVzZWQgZm9yIHRoZSBXZWJEcml2ZXIg
c3BlY2lmaWNhdGlvbiB0ZXN0cworaW4gdGhlIFtXZWIgUGxhdGZvcm0gVGVzdHNdKGh0dHBzOi8v
Z2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzKS4KKworIyMgSW5zdGFsbGF0aW9uCisK
K1RvIGluc3RhbGwgdGhlIHBhY2thZ2UgaW5kaXZpZHVhbGx5CitpbiB5b3VyIHZpcnR1YWxlbnYg
b3Igc3lzdGVtLXdpZGU6CisKKyAgICAlIHB5dGhvbiBzZXR1cC5weSBpbnN0YWxsCisKK1NpbmNl
IHRoaXMgcGFja2FnZSBkb2VzIG5vdCBoYXZlIGFueSBleHRlcm5hbCBkZXBlbmRlbmNpZXMsCit5
b3UgY2FuIGFsc28gdXNlIHRoZSBjbGllbnQgZGlyZWN0bHkgZnJvbSB0aGUgY2hlY2tvdXQgZGly
ZWN0b3J5LAord2hpY2ggaXMgdXNlZnVsIGlmIHlvdSB3YW50IHRvIGNvbnRyaWJ1dGUgcGF0Y2hl
cyBiYWNrOgorCisgICAgJSBjZCAvcGF0aC90by93ZGNsaWVudAorICAgICUgcHl0aG9uCisgICAg
UHl0aG9uIDIuNy4xMisgKGRlZmF1bHQsIEF1ZyAgNCAyMDE2LCAyMDowNDozNCkgCisgICAgW0dD
QyA2LjEuMSAyMDE2MDcyNF0gb24gbGludXgyCisgICAgVHlwZSAiaGVscCIsICJjb3B5cmlnaHQi
LCAiY3JlZGl0cyIgb3IgImxpY2Vuc2UiIGZvciBtb3JlIGluZm9ybWF0aW9uLgorICAgID4+PiBp
bXBvcnQgd2ViZHJpdmVyCisgICAgPj4+IAorCitJZiB5b3UgYXJlIHdyaXRpbmcgV2ViRHJpdmVy
IHNwZWNpZmljYXRpb24gdGVzdHMgZm9yCitbV1BUXShodHRwczovL2dpdGh1Yi5jb20vdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cyksCit0aGVyZSBpcyBubyBuZWVkIHRvIGluc3RhbGwgdGhlIGNsaWVu
dCBtYW51YWxseQorYXMgaXQgaXMgaW5jbHVkZWQgaW4gdGhlIGB0b29scy93ZWJkcml2ZXJgIGRp
cmVjdG9yeS4KKworIyMgVXNhZ2UKKworWW91IGNhbiB1c2UgdGhlIGJ1aWx0LWluCitbY29udGV4
dCBtYW5hZ2VyXShodHRwczovL2RvY3MucHl0aG9uLm9yZy8yL3JlZmVyZW5jZS9jb21wb3VuZF9z
dG10cy5odG1sI3RoZS13aXRoLXN0YXRlbWVudCkKK3RvIG1hbmFnZSB0aGUgbGlmZXRpbWUgb2Yg
dGhlIHNlc3Npb24uCitUaGUgc2Vzc2lvbiBpcyBzdGFydGVkIGltcGxpY2l0bHkKK2F0IHRoZSBm
aXJzdCBjYWxsIHRvIGEgY29tbWFuZCBpZiBpdCBoYXMgbm90IGFscmVhZHkgYmVlbiBzdGFydGVk
LAorYW5kIHdpbGwgaW1wbGljaXRseSBiZSBlbmRlZCB3aGVuIGV4aXRpbmcgdGhlIGNvbnRleHQ6
CisKK2BgYHB5CitpbXBvcnQgd2ViZHJpdmVyCisKK3dpdGggd2ViZHJpdmVyLlNlc3Npb24oIjEy
Ny4wLjAuMSIsIDQ0NDQpIGFzIHNlc3Npb246CisgICAgc2Vzc2lvbi51cmwgPSAiaHR0cHM6Ly9t
b3ppbGxhLm9yZyIKKyAgICBwcmludCAiVGhlIGN1cnJlbnQgVVJMIGlzICVzIiAlIHNlc3Npb24u
dXJsCitgYGAKKworVGhlIGZvbGxvd2luZyBpcyBmdW5jdGlvbmFsbHkgZXF1aXZhbGVudCB0byB0
aGUgYWJvdmUsCitidXQgZ2l2aW5nIHlvdSBtYW51YWwgY29udHJvbCBvZiB0aGUgc2Vzc2lvbjoK
KworYGBgcHkKK2ltcG9ydCB3ZWJkcml2ZXIKKworc2Vzc2lvbiA9IHdlYmRyaXZlci5TZXNzaW9u
KCIxMjcuMC4wLjEiLCA0NDQ0KQorc2Vzc2lvbi5zdGFydCgpCisKK3Nlc3Npb24udXJsID0gImh0
dHBzOi8vbW96aWxsYS5vcmciCitwcmludCAiVGhlIGN1cnJlbnQgVVJMIGlzICVzIiAlIHNlc3Np
b24udXJsCisKK3Nlc3Npb24uZW5kKCkKK2BgYAorCisjIyBEZXBlbmRlbmNpZXMKKworVGhpcyBj
bGllbnQgaGFzIHRoZSBiZW5lZml0IG9mIG9ubHkgdXNpbmcgc3RhbmRhcmQgbGlicmFyeSBkZXBl
bmRlbmNpZXMuCitObyBleHRlcm5hbCBQeVBJIGRlcGVuZGVuY2llcyBhcmUgbmVlZGVkLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93ZWJkcml2ZXIvc2V0dXAucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci9zZXR1cC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDczOTYxY2I2
NGY0MjRlMzQwMmIyNjU3NDZhNjEyYjA5Y2I3ZGZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvc2V0
dXAucHkKQEAgLTAsMCArMSwxNCBAQAorZnJvbSBzZXR1cHRvb2xzIGltcG9ydCBzZXR1cCwgZmlu
ZF9wYWNrYWdlcworCitzZXR1cChuYW1lPSJ3ZWJkcml2ZXIiLAorICAgICAgdmVyc2lvbj0iMS4w
IiwKKyAgICAgIGRlc2NyaXB0aW9uPSJXZWJEcml2ZXIgY2xpZW50IGNvbXBhdGlibGUgd2l0aCAi
CisgICAgICAgICAgICAgICAgICAidGhlIFczQyBicm93c2VyIGF1dG9tYXRpb24gc3BlY2lmaWNh
dGlvbi4iLAorICAgICAgYXV0aG9yPSJNb3ppbGxhIEVuZ2luZWVyaW5nIFByb2R1Y3Rpdml0eSIs
CisgICAgICBhdXRob3JfZW1haWw9InRvb2xzQGxpc3RzLm1vemlsbGEub3JnIiwKKyAgICAgIGxp
Y2Vuc2U9IkJTRCIsCisgICAgICBwYWNrYWdlcz1maW5kX3BhY2thZ2VzKCksCisgICAgICBjbGFz
c2lmaWVycz1bIkRldmVsb3BtZW50IFN0YXR1cyA6OiA0IC0gQmV0YSIsCisgICAgICAgICAgICAg
ICAgICAgIkludGVuZGVkIEF1ZGllbmNlIDo6IERldmVsb3BlcnMiLAorICAgICAgICAgICAgICAg
ICAgICJMaWNlbnNlIDo6IE9TSSBBcHByb3ZlZCA6OiBNb3ppbGxhIFB1YmxpYyBMaWNlbnNlIDIu
MCAoTVBMIDIuMCkiLAorICAgICAgICAgICAgICAgICAgICJPcGVyYXRpbmcgU3lzdGVtIDo6IE9T
IEluZGVwZW5kZW50Il0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3czYy1p
bXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5MzQxYTc3MmQ5MTBhZGVmOGZiZDRjMTgyYzg3OTQzOTk5
MWZmZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4
IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgor
CWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisK
K0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQ
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlz
dCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dlYmRyaXZlci9SRUFETUUubWQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci9zZXR1cC5weQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIv
d2ViZHJpdmVyL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL19faW5pdF9fLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjMwMjQzZjcyMDVkNzM4NDIwNTNiOTZmMDJkOWYyN2ZlZWNiOWJjOGQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dlYmRyaXZlci93ZWJkcml2ZXIvX19pbml0X18ucHkKQEAgLTAsMCArMSwyNyBAQAorZnJvbSBj
bGllbnQgaW1wb3J0IENvb2tpZXMsIEVsZW1lbnQsIEZpbmQsIFNlc3Npb24sIFRpbWVvdXRzLCBX
aW5kb3cKK2Zyb20gZXJyb3IgaW1wb3J0ICgKKyAgICBFbGVtZW50Tm90U2VsZWN0YWJsZUV4Y2Vw
dGlvbiwKKyAgICBFbGVtZW50Tm90VmlzaWJsZUV4Y2VwdGlvbiwKKyAgICBJbnZhbGlkQXJndW1l
bnRFeGNlcHRpb24sCisgICAgSW52YWxpZENvb2tpZURvbWFpbkV4Y2VwdGlvbiwKKyAgICBJbnZh
bGlkRWxlbWVudENvb3JkaW5hdGVzRXhjZXB0aW9uLAorICAgIEludmFsaWRFbGVtZW50U3RhdGVF
eGNlcHRpb24sCisgICAgSW52YWxpZFNlbGVjdG9yRXhjZXB0aW9uLAorICAgIEludmFsaWRTZXNz
aW9uSWRFeGNlcHRpb24sCisgICAgSmF2YXNjcmlwdEVycm9yRXhjZXB0aW9uLAorICAgIE1vdmVU
YXJnZXRPdXRPZkJvdW5kc0V4Y2VwdGlvbiwKKyAgICBOb1N1Y2hBbGVydEV4Y2VwdGlvbiwKKyAg
ICBOb1N1Y2hFbGVtZW50RXhjZXB0aW9uLAorICAgIE5vU3VjaEZyYW1lRXhjZXB0aW9uLAorICAg
IE5vU3VjaFdpbmRvd0V4Y2VwdGlvbiwKKyAgICBTY3JpcHRUaW1lb3V0RXhjZXB0aW9uLAorICAg
IFNlc3Npb25Ob3RDcmVhdGVkRXhjZXB0aW9uLAorICAgIFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4
Y2VwdGlvbiwKKyAgICBUaW1lb3V0RXhjZXB0aW9uLAorICAgIFVuYWJsZVRvU2V0Q29va2llRXhj
ZXB0aW9uLAorICAgIFVuZXhwZWN0ZWRBbGVydE9wZW5FeGNlcHRpb24sCisgICAgVW5rbm93bkNv
bW1hbmRFeGNlcHRpb24sCisgICAgVW5rbm93bkVycm9yRXhjZXB0aW9uLAorICAgIFVua25vd25N
ZXRob2RFeGNlcHRpb24sCisgICAgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24sCisgICAg
V2ViRHJpdmVyRXhjZXB0aW9uKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2NsaWVudC5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJp
dmVyL3dlYmRyaXZlci9jbGllbnQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBkMjIzODJjODk4YTViZjlmZGM0
ZTg5ZmM2YjQ5ZmI1MjJhNzEzNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9jbGll
bnQucHkKQEAgLTAsMCArMSw3MDEgQEAKK2ltcG9ydCB1cmxwYXJzZQorCitpbXBvcnQgZXJyb3IK
K2ltcG9ydCBwcm90b2NvbAoraW1wb3J0IHRyYW5zcG9ydAorCitmcm9tIHNpeCBpbXBvcnQgc3Ry
aW5nX3R5cGVzCisKKworZGVmIGNvbW1hbmQoZnVuYyk6CisgICAgZGVmIGlubmVyKHNlbGYsICph
cmdzLCAqKmt3YXJncyk6CisgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgInNlc3Npb24iKToKKyAg
ICAgICAgICAgIHNlc3Npb24gPSBzZWxmLnNlc3Npb24KKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIHNlc3Npb24gPSBzZWxmCisKKyAgICAgICAgaWYgc2Vzc2lvbi5zZXNzaW9uX2lkIGlzIE5v
bmU6CisgICAgICAgICAgICBzZXNzaW9uLnN0YXJ0KCkKKyAgICAgICAgYXNzZXJ0IHNlc3Npb24u
c2Vzc2lvbl9pZCBpcyBub3QgTm9uZQorCisgICAgICAgIHJldHVybiBmdW5jKHNlbGYsICphcmdz
LCAqKmt3YXJncykKKworICAgIGlubmVyLl9fbmFtZV9fID0gZnVuYy5fX25hbWVfXworICAgIGlu
bmVyLl9fZG9jX18gPSBmdW5jLl9fZG9jX18KKworICAgIHJldHVybiBpbm5lcgorCisKK2NsYXNz
IFRpbWVvdXRzKG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc2Vzc2lvbik6Cisg
ICAgICAgIHNlbGYuc2Vzc2lvbiA9IHNlc3Npb24KKworICAgIGRlZiBfZ2V0KHNlbGYsIGtleT1O
b25lKToKKyAgICAgICAgdGltZW91dHMgPSBzZWxmLnNlc3Npb24uc2VuZF9zZXNzaW9uX2NvbW1h
bmQoIkdFVCIsICJ0aW1lb3V0cyIpCisgICAgICAgIGlmIGtleSBpcyBub3QgTm9uZToKKyAgICAg
ICAgICAgIHJldHVybiB0aW1lb3V0c1trZXldCisgICAgICAgIHJldHVybiB0aW1lb3V0cworCisg
ICAgZGVmIF9zZXQoc2VsZiwga2V5LCBzZWNzKToKKyAgICAgICAgYm9keSA9IHtrZXk6IHNlY3Mg
KiAxMDAwfQorICAgICAgICB0aW1lb3V0cyA9IHNlbGYuc2Vzc2lvbi5zZW5kX3Nlc3Npb25fY29t
bWFuZCgiUE9TVCIsICJ0aW1lb3V0cyIsIGJvZHkpCisgICAgICAgIHJldHVybiBOb25lCisKKyAg
ICBAcHJvcGVydHkKKyAgICBkZWYgc2NyaXB0KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5f
Z2V0KCJzY3JpcHQiKQorCisgICAgQHNjcmlwdC5zZXR0ZXIKKyAgICBkZWYgc2NyaXB0KHNlbGYs
IHNlY3MpOgorICAgICAgICByZXR1cm4gc2VsZi5fc2V0KCJzY3JpcHQiLCBzZWNzKQorCisgICAg
QHByb3BlcnR5CisgICAgZGVmIHBhZ2VfbG9hZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYu
X2dldCgicGFnZUxvYWQiKQorCisgICAgQHBhZ2VfbG9hZC5zZXR0ZXIKKyAgICBkZWYgcGFnZV9s
b2FkKHNlbGYsIHNlY3MpOgorICAgICAgICByZXR1cm4gc2VsZi5fc2V0KCJwYWdlTG9hZCIsIHNl
Y3MpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaW1wbGljaXQoc2VsZik6CisgICAgICAgIHJl
dHVybiBzZWxmLl9nZXQoImltcGxpY2l0IikKKworICAgIEBpbXBsaWNpdC5zZXR0ZXIKKyAgICBk
ZWYgaW1wbGljaXQoc2VsZiwgc2Vjcyk6CisgICAgICAgIHJldHVybiBzZWxmLl9zZXQoImltcGxp
Y2l0Iiwgc2VjcykKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICBuYW1lID0gIiVz
LiVzIiAlIChzZWxmLl9fbW9kdWxlX18sIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fKQorICAgICAg
ICByZXR1cm4gIjwlcyBzY3JpcHQ9JWQsIGxvYWQ9JWQsIGltcGxpY2l0PSVkPiIgJSBcCisgICAg
ICAgICAgICAobmFtZSwgc2VsZi5zY3JpcHQsIHNlbGYucGFnZV9sb2FkLCBzZWxmLmltcGxpY2l0
KQorCisKK2NsYXNzIEFjdGlvblNlcXVlbmNlKG9iamVjdCk6CisgICAgIiIiQVBJIGZvciBjcmVh
dGluZyBhbmQgcGVyZm9ybWluZyBhY3Rpb24gc2VxdWVuY2VzLgorCisgICAgRWFjaCBhY3Rpb24g
bWV0aG9kIGFkZHMgb25lIG9yIG1vcmUgYWN0aW9ucyB0byBhIHF1ZXVlLiBXaGVuIHBlcmZvcm0o
KQorICAgIGlzIGNhbGxlZCwgdGhlIHF1ZXVlZCBhY3Rpb25zIGZpcmUgaW4gb3JkZXIuCisKKyAg
ICBNYXkgYmUgY2hhaW5lZCB0b2dldGhlciBhcyBpbjo6CisKKyAgICAgICAgIEFjdGlvblNlcXVl
bmNlKHNlc3Npb24sICJrZXkiLCBpZCkgXAorICAgICAgICAgICAgLmtleV9kb3duKCJhIikgXAor
ICAgICAgICAgICAgLmtleV91cCgiYSIpIFwKKyAgICAgICAgICAgIC5wZXJmb3JtKCkKKyAgICAi
IiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc2Vzc2lvbiwgYWN0aW9uX3R5cGUsIGlucHV0X2lk
LCBwb2ludGVyX3BhcmFtcz1Ob25lKToKKyAgICAgICAgIiIiUmVwcmVzZW50cyBhIHNlcXVlbmNl
IG9mIGFjdGlvbnMgb2Ygb25lIHR5cGUgZm9yIG9uZSBpbnB1dCBzb3VyY2UuCisKKyAgICAgICAg
OnBhcmFtIHNlc3Npb246IFdlYkRyaXZlciBzZXNzaW9uLgorICAgICAgICA6cGFyYW0gYWN0aW9u
X3R5cGU6IEFjdGlvbiB0eXBlOyBtYXkgYmUgIm5vbmUiLCAia2V5Iiwgb3IgInBvaW50ZXIiLgor
ICAgICAgICA6cGFyYW0gaW5wdXRfaWQ6IElEIG9mIGlucHV0IHNvdXJjZS4KKyAgICAgICAgOnBh
cmFtIHBvaW50ZXJfcGFyYW1zOiBPcHRpb25hbCBkaWN0aW9uYXJ5IG9mIHBvaW50ZXIgcGFyYW1l
dGVycy4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuc2Vzc2lvbiA9IHNlc3Npb24KKyAgICAg
ICAgc2VsZi5faWQgPSBpbnB1dF9pZAorICAgICAgICBzZWxmLl90eXBlID0gYWN0aW9uX3R5cGUK
KyAgICAgICAgc2VsZi5fYWN0aW9ucyA9IFtdCisgICAgICAgIHNlbGYuX3BvaW50ZXJfcGFyYW1z
ID0gcG9pbnRlcl9wYXJhbXMKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBkaWN0KHNlbGYpOgor
ICAgICAgICBkID0geworICAgICAgICAgICAgInR5cGUiOiBzZWxmLl90eXBlLAorICAgICAgICAg
ICAgImlkIjogc2VsZi5faWQsCisgICAgICAgICAgICAiYWN0aW9ucyI6IHNlbGYuX2FjdGlvbnMs
CisgICAgICAgIH0KKyAgICAgICAgaWYgc2VsZi5fcG9pbnRlcl9wYXJhbXMgaXMgbm90IE5vbmU6
CisgICAgICAgICAgICBkWyJwYXJhbWV0ZXJzIl0gPSBzZWxmLl9wb2ludGVyX3BhcmFtcworICAg
ICAgICByZXR1cm4gZAorCisgICAgQGNvbW1hbmQKKyAgICBkZWYgcGVyZm9ybShzZWxmKToKKyAg
ICAgICAgIiIiUGVyZm9ybSBhbGwgcXVldWVkIGFjdGlvbnMuIiIiCisgICAgICAgIHNlbGYuc2Vz
c2lvbi5hY3Rpb25zLnBlcmZvcm0oW3NlbGYuZGljdF0pCisKKyAgICBkZWYgX2tleV9hY3Rpb24o
c2VsZiwgc3VidHlwZSwgdmFsdWUpOgorICAgICAgICBzZWxmLl9hY3Rpb25zLmFwcGVuZCh7InR5
cGUiOiBzdWJ0eXBlLCAidmFsdWUiOiB2YWx1ZX0pCisKKyAgICBkZWYgX3BvaW50ZXJfYWN0aW9u
KHNlbGYsIHN1YnR5cGUsIGJ1dHRvbik6CisgICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKHsi
dHlwZSI6IHN1YnR5cGUsICJidXR0b24iOiBidXR0b259KQorCisgICAgZGVmIHBhdXNlKHNlbGYs
IGR1cmF0aW9uKToKKyAgICAgICAgc2VsZi5fYWN0aW9ucy5hcHBlbmQoeyJ0eXBlIjogInBhdXNl
IiwgImR1cmF0aW9uIjogZHVyYXRpb259KQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVm
IHBvaW50ZXJfbW92ZShzZWxmLCB4LCB5LCBkdXJhdGlvbj1Ob25lLCBvcmlnaW49Tm9uZSk6Cisg
ICAgICAgICIiIlF1ZXVlIGEgcG9pbnRlck1vdmUgYWN0aW9uLgorCisgICAgICAgIDpwYXJhbSB4
OiBEZXN0aW5hdGlvbiB4LWF4aXMgY29vcmRpbmF0ZSBvZiBwb2ludGVyIGluIENTUyBwaXhlbHMu
CisgICAgICAgIDpwYXJhbSB5OiBEZXN0aW5hdGlvbiB5LWF4aXMgY29vcmRpbmF0ZSBvZiBwb2lu
dGVyIGluIENTUyBwaXhlbHMuCisgICAgICAgIDpwYXJhbSBkdXJhdGlvbjogTnVtYmVyIG9mIG1p
bGxpc2Vjb25kcyBvdmVyIHdoaWNoIHRvIGRpc3RyaWJ1dGUgdGhlCisgICAgICAgICAgICAgICAg
ICAgICAgICAgbW92ZS4gSWYgTm9uZSwgcmVtb3RlIGVuZCBkZWZhdWx0cyB0byAwLgorICAgICAg
ICA6cGFyYW0gb3JpZ2luOiBPcmlnaW4gb2YgY29vcmRpbmF0ZXMsIGVpdGhlciAidmlld3BvcnQi
LCAicG9pbnRlciIgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgYW4gRWxlbWVudC4gSWYgTm9u
ZSwgcmVtb3RlIGVuZCBkZWZhdWx0cyB0byAidmlld3BvcnQiLgorICAgICAgICAiIiIKKyAgICAg
ICAgYWN0aW9uID0geworICAgICAgICAgICAgInR5cGUiOiAicG9pbnRlck1vdmUiLAorICAgICAg
ICAgICAgIngiOiB4LAorICAgICAgICAgICAgInkiOiB5CisgICAgICAgIH0KKyAgICAgICAgaWYg
ZHVyYXRpb24gaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhY3Rpb25bImR1cmF0aW9uIl0gPSBk
dXJhdGlvbgorICAgICAgICBpZiBvcmlnaW4gaXMgbm90IE5vbmU6CisgICAgICAgICAgICBhY3Rp
b25bIm9yaWdpbiJdID0gb3JpZ2luCisgICAgICAgIHNlbGYuX2FjdGlvbnMuYXBwZW5kKGFjdGlv
bikKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBwb2ludGVyX3VwKHNlbGYsIGJ1dHRv
bj0wKToKKyAgICAgICAgIiIiUXVldWUgYSBwb2ludGVyVXAgYWN0aW9uIGZvciBgYnV0dG9uYC4K
KworICAgICAgICA6cGFyYW0gYnV0dG9uOiBQb2ludGVyIGJ1dHRvbiB0byBwZXJmb3JtIGFjdGlv
biB3aXRoLgorICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0OiAwLCB3aGljaCByZXByZXNl
bnRzIG1haW4gZGV2aWNlIGJ1dHRvbi4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX3BvaW50
ZXJfYWN0aW9uKCJwb2ludGVyVXAiLCBidXR0b24pCisgICAgICAgIHJldHVybiBzZWxmCisKKyAg
ICBkZWYgcG9pbnRlcl9kb3duKHNlbGYsIGJ1dHRvbj0wKToKKyAgICAgICAgIiIiUXVldWUgYSBw
b2ludGVyRG93biBhY3Rpb24gZm9yIGBidXR0b25gLgorCisgICAgICAgIDpwYXJhbSBidXR0b246
IFBvaW50ZXIgYnV0dG9uIHRvIHBlcmZvcm0gYWN0aW9uIHdpdGguCisgICAgICAgICAgICAgICAg
ICAgICAgIERlZmF1bHQ6IDAsIHdoaWNoIHJlcHJlc2VudHMgbWFpbiBkZXZpY2UgYnV0dG9uLgor
ICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fcG9pbnRlcl9hY3Rpb24oInBvaW50ZXJEb3duIiwg
YnV0dG9uKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIGNsaWNrKHNlbGYsIGVsZW1l
bnQ9Tm9uZSwgYnV0dG9uPTApOgorICAgICAgICAiIiJRdWV1ZSBhIGNsaWNrIHdpdGggdGhlIHNw
ZWNpZmllZCBidXR0b24uCisKKyAgICAgICAgSWYgYW4gZWxlbWVudCBpcyBnaXZlbiwgbW92ZSB0
aGUgcG9pbnRlciB0byB0aGF0IGVsZW1lbnQgZmlyc3QsCisgICAgICAgIG90aGVyd2lzZSBjbGlj
ayBjdXJyZW50IHBvaW50ZXIgY29vcmRpbmF0ZXMuCisKKyAgICAgICAgOnBhcmFtIGVsZW1lbnQ6
IE9wdGlvbmFsIGVsZW1lbnQgdG8gY2xpY2suCisgICAgICAgIDpwYXJhbSBidXR0b246IEludGVn
ZXIgcmVwcmVzZW50aW5nIHBvaW50ZXIgYnV0dG9uIHRvIHBlcmZvcm0gYWN0aW9uCisgICAgICAg
ICAgICAgICAgICAgICAgIHdpdGguIERlZmF1bHQ6IDAsIHdoaWNoIHJlcHJlc2VudHMgbWFpbiBk
ZXZpY2UgYnV0dG9uLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgZWxlbWVudDoKKyAgICAgICAg
ICAgIHNlbGYucG9pbnRlcl9tb3ZlKDAsIDAsIG9yaWdpbj1lbGVtZW50KQorICAgICAgICByZXR1
cm4gc2VsZi5wb2ludGVyX2Rvd24oYnV0dG9uKS5wb2ludGVyX3VwKGJ1dHRvbikKKworICAgIGRl
ZiBrZXlfdXAoc2VsZiwgdmFsdWUpOgorICAgICAgICAiIiJRdWV1ZSBhIGtleVVwIGFjdGlvbiBm
b3IgYHZhbHVlYC4KKworICAgICAgICA6cGFyYW0gdmFsdWU6IENoYXJhY3RlciB0byBwZXJmb3Jt
IGtleSBhY3Rpb24gd2l0aC4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX2tleV9hY3Rpb24o
ImtleVVwIiwgdmFsdWUpCisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYga2V5X2Rvd24o
c2VsZiwgdmFsdWUpOgorICAgICAgICAiIiJRdWV1ZSBhIGtleURvd24gYWN0aW9uIGZvciBgdmFs
dWVgLgorCisgICAgICAgIDpwYXJhbSB2YWx1ZTogQ2hhcmFjdGVyIHRvIHBlcmZvcm0ga2V5IGFj
dGlvbiB3aXRoLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fa2V5X2FjdGlvbigia2V5RG93
biIsIHZhbHVlKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIHNlbmRfa2V5cyhzZWxm
LCBrZXlzKToKKyAgICAgICAgIiIiUXVldWUgYSBrZXlEb3duIGFuZCBrZXlVcCBhY3Rpb24gZm9y
IGVhY2ggY2hhcmFjdGVyIGluIGBrZXlzYC4KKworICAgICAgICA6cGFyYW0ga2V5czogU3RyaW5n
IG9mIGtleXMgdG8gcGVyZm9ybSBrZXkgYWN0aW9ucyB3aXRoLgorICAgICAgICAiIiIKKyAgICAg
ICAgZm9yIGMgaW4ga2V5czoKKyAgICAgICAgICAgIHNlbGYua2V5X2Rvd24oYykKKyAgICAgICAg
ICAgIHNlbGYua2V5X3VwKGMpCisgICAgICAgIHJldHVybiBzZWxmCisKKworY2xhc3MgQWN0aW9u
cyhvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzZXNzaW9uKToKKyAgICAgICAgc2Vs
Zi5zZXNzaW9uID0gc2Vzc2lvbgorCisgICAgQGNvbW1hbmQKKyAgICBkZWYgcGVyZm9ybShzZWxm
LCBhY3Rpb25zPU5vbmUpOgorICAgICAgICAiIiJQZXJmb3JtcyBhY3Rpb25zIGJ5IHRpY2sgZnJv
bSBlYWNoIGFjdGlvbiBzZXF1ZW5jZSBpbiBgYWN0aW9uc2AuCisKKyAgICAgICAgOnBhcmFtIGFj
dGlvbnM6IExpc3Qgb2YgaW5wdXQgc291cmNlIGFjdGlvbiBzZXF1ZW5jZXMuIEEgc2luZ2xlIGFj
dGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgc2VxdWVuY2UgbWF5IGJlIGNyZWF0ZWQgd2l0
aCB0aGUgaGVscCBvZgorICAgICAgICAgICAgICAgICAgICAgICAgYGBBY3Rpb25TZXF1ZW5jZS5k
aWN0YGAuCisgICAgICAgICIiIgorICAgICAgICBib2R5ID0geyJhY3Rpb25zIjogW10gaWYgYWN0
aW9ucyBpcyBOb25lIGVsc2UgYWN0aW9uc30KKyAgICAgICAgcmV0dXJuIHNlbGYuc2Vzc2lvbi5z
ZW5kX3Nlc3Npb25fY29tbWFuZCgiUE9TVCIsICJhY3Rpb25zIiwgYm9keSkKKworICAgIEBjb21t
YW5kCisgICAgZGVmIHJlbGVhc2Uoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnNlc3Npb24u
c2VuZF9zZXNzaW9uX2NvbW1hbmQoIkRFTEVURSIsICJhY3Rpb25zIikKKworICAgIGRlZiBzZXF1
ZW5jZShzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiJSZXR1cm4gYW4gZW1wdHkg
QWN0aW9uU2VxdWVuY2Ugb2YgdGhlIGRlc2lnbmF0ZWQgdHlwZS4KKworICAgICAgICBTZWUgQWN0
aW9uU2VxdWVuY2UgZm9yIHBhcmFtZXRlciBsaXN0LgorICAgICAgICAiIiIKKyAgICAgICAgcmV0
dXJuIEFjdGlvblNlcXVlbmNlKHNlbGYuc2Vzc2lvbiwgKmFyZ3MsICoqa3dhcmdzKQorCisKK2Ns
YXNzIFdpbmRvdyhvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzZXNzaW9uKToKKyAg
ICAgICAgc2VsZi5zZXNzaW9uID0gc2Vzc2lvbgorCisgICAgQHByb3BlcnR5CisgICAgQGNvbW1h
bmQKKyAgICBkZWYgcmVjdChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuc2Vzc2lvbi5zZW5k
X3Nlc3Npb25fY29tbWFuZCgiR0VUIiwgIndpbmRvdy9yZWN0IikKKworICAgIEBwcm9wZXJ0eQor
ICAgIEBjb21tYW5kCisgICAgZGVmIHNpemUoc2VsZik6CisgICAgICAgICIiIkdldHMgdGhlIHdp
bmRvdyBzaXplIGFzIGEgdHVwbGUgb2YgYCh3aWR0aCwgaGVpZ2h0KWAuIiIiCisgICAgICAgIHJl
Y3QgPSBzZWxmLnJlY3QKKyAgICAgICAgcmV0dXJuIChyZWN0WyJ3aWR0aCJdLCByZWN0WyJoZWln
aHQiXSkKKworICAgIEBzaXplLnNldHRlcgorICAgIEBjb21tYW5kCisgICAgZGVmIHNpemUoc2Vs
ZiwgbmV3X3NpemUpOgorICAgICAgICAiIiJTZXQgd2luZG93IHNpemUgYnkgcGFzc2luZyBhIHR1
cGxlIG9mIGAod2lkdGgsIGhlaWdodClgLiIiIgorICAgICAgICB3aWR0aCwgaGVpZ2h0ID0gbmV3
X3NpemUKKyAgICAgICAgYm9keSA9IHsid2lkdGgiOiB3aWR0aCwgImhlaWdodCI6IGhlaWdodH0K
KyAgICAgICAgc2VsZi5zZXNzaW9uLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJQT1NUIiwgIndpbmRv
dy9yZWN0IiwgYm9keSkKKworICAgIEBwcm9wZXJ0eQorICAgIEBjb21tYW5kCisgICAgZGVmIHBv
c2l0aW9uKHNlbGYpOgorICAgICAgICAiIiJHZXRzIHRoZSB3aW5kb3cgcG9zaXRpb24gYXMgYSB0
dXBsZSBvZiBgKHgsIHkpYC4iIiIKKyAgICAgICAgcmVjdCA9IHNlbGYucmVjdAorICAgICAgICBy
ZXR1cm4gKHJlY3RbIngiXSwgcmVjdFsieSJdKQorCisgICAgQHBvc2l0aW9uLnNldHRlcgorICAg
IEBjb21tYW5kCisgICAgZGVmIHBvc2l0aW9uKHNlbGYsIG5ld19wb3NpdGlvbik6CisgICAgICAg
ICIiIlNldCB3aW5kb3cgcG9zaXRpb24gYnkgcGFzc2luZyBhIHR1cGxlIG9mIGAoeCwgeSlgLiIi
IgorICAgICAgICB4LCB5ID0gbmV3X3Bvc2l0aW9uCisgICAgICAgIGJvZHkgPSB7IngiOiB4LCAi
eSI6IHl9CisgICAgICAgIHNlbGYuc2Vzc2lvbi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiUE9TVCIs
ICJ3aW5kb3cvcmVjdCIsIGJvZHkpCisKKyAgICBAY29tbWFuZAorICAgIGRlZiBtYXhpbWl6ZShz
ZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuc2Vzc2lvbi5zZW5kX3Nlc3Npb25fY29tbWFuZCgi
UE9TVCIsICJ3aW5kb3cvbWF4aW1pemUiKQorCisgICAgQGNvbW1hbmQKKyAgICBkZWYgbWluaW1p
emUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnNlc3Npb24uc2VuZF9zZXNzaW9uX2NvbW1h
bmQoIlBPU1QiLCAid2luZG93L21pbmltaXplIikKKworICAgIEBjb21tYW5kCisgICAgZGVmIGZ1
bGxzY3JlZW4oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnNlc3Npb24uc2VuZF9zZXNzaW9u
X2NvbW1hbmQoIlBPU1QiLCAid2luZG93L2Z1bGxzY3JlZW4iKQorCisKK2NsYXNzIEZpbmQob2Jq
ZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc2Vzc2lvbik6CisgICAgICAgIHNlbGYuc2Vz
c2lvbiA9IHNlc3Npb24KKworICAgIEBjb21tYW5kCisgICAgZGVmIGNzcyhzZWxmLCBzZWxlY3Rv
ciwgYWxsPVRydWUpOgorICAgICAgICByZXR1cm4gc2VsZi5fZmluZF9lbGVtZW50KCJjc3Mgc2Vs
ZWN0b3IiLCBzZWxlY3RvciwgYWxsKQorCisgICAgZGVmIF9maW5kX2VsZW1lbnQoc2VsZiwgc3Ry
YXRlZ3ksIHNlbGVjdG9yLCBhbGwpOgorICAgICAgICByb3V0ZSA9ICJlbGVtZW50cyIgaWYgYWxs
IGVsc2UgImVsZW1lbnQiCisgICAgICAgIGJvZHkgPSB7InVzaW5nIjogc3RyYXRlZ3ksCisgICAg
ICAgICAgICAgICAgInZhbHVlIjogc2VsZWN0b3J9CisgICAgICAgIHJldHVybiBzZWxmLnNlc3Np
b24uc2VuZF9zZXNzaW9uX2NvbW1hbmQoIlBPU1QiLCByb3V0ZSwgYm9keSkKKworCitjbGFzcyBD
b29raWVzKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNlc3Npb24pOgorICAgICAg
ICBzZWxmLnNlc3Npb24gPSBzZXNzaW9uCisKKyAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwgbmFt
ZSk6CisgICAgICAgIHNlbGYuc2Vzc2lvbi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiR0VUIiwgImNv
b2tpZS8lcyIgJSBuYW1lLCB7fSkKKworICAgIGRlZiBfX3NldGl0ZW1fXyhzZWxmLCBuYW1lLCB2
YWx1ZSk6CisgICAgICAgIGNvb2tpZSA9IHsibmFtZSI6IG5hbWUsCisgICAgICAgICAgICAgICAg
ICAidmFsdWUiOiBOb25lfQorCisgICAgICAgIGlmIGlzaW5zdGFuY2UobmFtZSwgc3RyaW5nX3R5
cGVzKToKKyAgICAgICAgICAgIGNvb2tpZVsidmFsdWUiXSA9IHZhbHVlCisgICAgICAgIGVsaWYg
aGFzYXR0cih2YWx1ZSwgInZhbHVlIik6CisgICAgICAgICAgICBjb29raWVbInZhbHVlIl0gPSB2
YWx1ZS52YWx1ZQorICAgICAgICBzZWxmLnNlc3Npb24uc2VuZF9zZXNzaW9uX2NvbW1hbmQoIlBP
U1QiLCAiY29va2llLyVzIiAlIG5hbWUsIHt9KQorCisKK2NsYXNzIFVzZXJQcm9tcHQob2JqZWN0
KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc2Vzc2lvbik6CisgICAgICAgIHNlbGYuc2Vzc2lv
biA9IHNlc3Npb24KKworICAgIEBjb21tYW5kCisgICAgZGVmIGRpc21pc3Moc2VsZik6CisgICAg
ICAgIHNlbGYuc2Vzc2lvbi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiUE9TVCIsICJhbGVydC9kaXNt
aXNzIikKKworICAgIEBjb21tYW5kCisgICAgZGVmIGFjY2VwdChzZWxmKToKKyAgICAgICAgc2Vs
Zi5zZXNzaW9uLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJQT1NUIiwgImFsZXJ0L2FjY2VwdCIpCisK
KyAgICBAcHJvcGVydHkKKyAgICBAY29tbWFuZAorICAgIGRlZiB0ZXh0KHNlbGYpOgorICAgICAg
ICByZXR1cm4gc2VsZi5zZXNzaW9uLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJHRVQiLCAiYWxlcnQv
dGV4dCIpCisKKyAgICBAdGV4dC5zZXR0ZXIKKyAgICBAY29tbWFuZAorICAgIGRlZiB0ZXh0KHNl
bGYsIHZhbHVlKToKKyAgICAgICAgYm9keSA9IHsidmFsdWUiOiBsaXN0KHZhbHVlKX0KKyAgICAg
ICAgc2VsZi5zZXNzaW9uLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJQT1NUIiwgImFsZXJ0L3RleHQi
LCBib2R5PWJvZHkpCisKKworY2xhc3MgU2Vzc2lvbihvYmplY3QpOgorICAgIGRlZiBfX2luaXRf
XyhzZWxmLAorICAgICAgICAgICAgICAgICBob3N0LAorICAgICAgICAgICAgICAgICBwb3J0LAor
ICAgICAgICAgICAgICAgICB1cmxfcHJlZml4PSIvIiwKKyAgICAgICAgICAgICAgICAgY2FwYWJp
bGl0aWVzPU5vbmUsCisgICAgICAgICAgICAgICAgIHRpbWVvdXQ9Tm9uZSwKKyAgICAgICAgICAg
ICAgICAgZXh0ZW5zaW9uPU5vbmUpOgorICAgICAgICBzZWxmLnRyYW5zcG9ydCA9IHRyYW5zcG9y
dC5IVFRQV2lyZVByb3RvY29sKAorICAgICAgICAgICAgaG9zdCwgcG9ydCwgdXJsX3ByZWZpeCwg
dGltZW91dD10aW1lb3V0KQorICAgICAgICBzZWxmLmNhcGFiaWxpdGllcyA9IGNhcGFiaWxpdGll
cworICAgICAgICBzZWxmLnNlc3Npb25faWQgPSBOb25lCisgICAgICAgIHNlbGYudGltZW91dHMg
PSBOb25lCisgICAgICAgIHNlbGYud2luZG93ID0gTm9uZQorICAgICAgICBzZWxmLmZpbmQgPSBO
b25lCisgICAgICAgIHNlbGYuX2VsZW1lbnRfY2FjaGUgPSB7fQorICAgICAgICBzZWxmLmV4dGVu
c2lvbiA9IE5vbmUKKyAgICAgICAgc2VsZi5leHRlbnNpb25fY2xzID0gZXh0ZW5zaW9uCisKKyAg
ICAgICAgc2VsZi50aW1lb3V0cyA9IFRpbWVvdXRzKHNlbGYpCisgICAgICAgIHNlbGYud2luZG93
ID0gV2luZG93KHNlbGYpCisgICAgICAgIHNlbGYuZmluZCA9IEZpbmQoc2VsZikKKyAgICAgICAg
c2VsZi5hbGVydCA9IFVzZXJQcm9tcHQoc2VsZikKKyAgICAgICAgc2VsZi5hY3Rpb25zID0gQWN0
aW9ucyhzZWxmKQorCisgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVy
biAoc2VsZi5zZXNzaW9uX2lkIGlzIG5vdCBOb25lIGFuZCBpc2luc3RhbmNlKG90aGVyLCBTZXNz
aW9uKSBhbmQKKyAgICAgICAgICAgICAgICBzZWxmLnNlc3Npb25faWQgPT0gb3RoZXIuc2Vzc2lv
bl9pZCkKKworICAgIGRlZiBfX2VudGVyX18oc2VsZik6CisgICAgICAgIHNlbGYuc3RhcnQoKQor
ICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9fZXhpdF9fKHNlbGYsICphcmdzLCAqKmt3
YXJncyk6CisgICAgICAgIHNlbGYuZW5kKCkKKworICAgIGRlZiBfX2RlbF9fKHNlbGYpOgorICAg
ICAgICBzZWxmLmVuZCgpCisKKyAgICBkZWYgc3RhcnQoc2VsZik6CisgICAgICAgIGlmIHNlbGYu
c2Vzc2lvbl9pZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIGJv
ZHkgPSB7fQorCisgICAgICAgIGlmIHNlbGYuY2FwYWJpbGl0aWVzIGlzIG5vdCBOb25lOgorICAg
ICAgICAgICAgYm9keVsiY2FwYWJpbGl0aWVzIl0gPSBzZWxmLmNhcGFiaWxpdGllcworCisgICAg
ICAgIHZhbHVlID0gc2VsZi5zZW5kX2NvbW1hbmQoIlBPU1QiLCAic2Vzc2lvbiIsIGJvZHk9Ym9k
eSkKKyAgICAgICAgc2VsZi5zZXNzaW9uX2lkID0gdmFsdWVbInNlc3Npb25JZCJdCisgICAgICAg
IHNlbGYuY2FwYWJpbGl0aWVzID0gdmFsdWVbImNhcGFiaWxpdGllcyJdCisKKyAgICAgICAgaWYg
c2VsZi5leHRlbnNpb25fY2xzOgorICAgICAgICAgICAgc2VsZi5leHRlbnNpb24gPSBzZWxmLmV4
dGVuc2lvbl9jbHMoc2VsZikKKworICAgICAgICByZXR1cm4gdmFsdWUKKworICAgIGRlZiBlbmQo
c2VsZik6CisgICAgICAgIGlmIHNlbGYuc2Vzc2lvbl9pZCBpcyBOb25lOgorICAgICAgICAgICAg
cmV0dXJuCisKKyAgICAgICAgdXJsID0gInNlc3Npb24vJXMiICUgc2VsZi5zZXNzaW9uX2lkCisg
ICAgICAgIHNlbGYuc2VuZF9jb21tYW5kKCJERUxFVEUiLCB1cmwpCisKKyAgICAgICAgc2VsZi5z
ZXNzaW9uX2lkID0gTm9uZQorCisgICAgZGVmIHNlbmRfY29tbWFuZChzZWxmLCBtZXRob2QsIHVy
bCwgYm9keT1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFNlbmQgYSBjb21tYW5kIHRvIHRo
ZSByZW1vdGUgZW5kIGFuZCB2YWxpZGF0ZSBpdHMgc3VjY2Vzcy4KKworICAgICAgICA6cGFyYW0g
bWV0aG9kOiBIVFRQIG1ldGhvZCB0byB1c2UgaW4gcmVxdWVzdC4KKyAgICAgICAgOnBhcmFtIHVy
aTogIkNvbW1hbmQgcGFydCIgb2YgdGhlIEhUVFAgcmVxdWVzdCBVUkwsCisgICAgICAgICAgICBl
LmcuIGB3aW5kb3cvcmVjdGAuCisgICAgICAgIDpwYXJhbSBib2R5OiBPcHRpb25hbCBib2R5IG9m
IHRoZSBIVFRQIHJlcXVlc3QuCisKKyAgICAgICAgOnJldHVybjogYE5vbmVgIGlmIHRoZSBIVFRQ
IHJlc3BvbnNlIGJvZHkgd2FzIGVtcHR5LCBvdGhlcndpc2UKKyAgICAgICAgICAgIHRoZSBgdmFs
dWVgIGZpZWxkIHJldHVybmVkIGFmdGVyIHBhcnNpbmcgdGhlIHJlc3BvbnNlCisgICAgICAgICAg
ICBib2R5IGFzIEpTT04uCisKKyAgICAgICAgOnJhaXNlcyBWYWx1ZUVycm9yOiBJZiB0aGUgcmVz
cG9uc2UgYm9keSBkb2VzIG5vdCBjb250YWluIGEKKyAgICAgICAgICAgIGB2YWx1ZWAga2V5Lgor
ICAgICAgICA6cmFpc2VzIGVycm9yLldlYkRyaXZlckV4Y2VwdGlvbjogSWYgdGhlIHJlbW90ZSBl
bmQgcmV0dXJucworICAgICAgICAgICAgYW4gZXJyb3IuCisgICAgICAgICIiIgorICAgICAgICBy
ZXNwb25zZSA9IHNlbGYudHJhbnNwb3J0LnNlbmQoCisgICAgICAgICAgICBtZXRob2QsIHVybCwg
Ym9keSwKKyAgICAgICAgICAgIGVuY29kZXI9cHJvdG9jb2wuRW5jb2RlciwgZGVjb2Rlcj1wcm90
b2NvbC5EZWNvZGVyLAorICAgICAgICAgICAgc2Vzc2lvbj1zZWxmKQorCisgICAgICAgIGlmIHJl
c3BvbnNlLnN0YXR1cyAhPSAyMDA6CisgICAgICAgICAgICByYWlzZSBlcnJvci5mcm9tX3Jlc3Bv
bnNlKHJlc3BvbnNlKQorCisgICAgICAgIGlmICJ2YWx1ZSIgaW4gcmVzcG9uc2UuYm9keToKKyAg
ICAgICAgICAgIHZhbHVlID0gcmVzcG9uc2UuYm9keVsidmFsdWUiXQorICAgICAgICAgICAgIiIi
CisgICAgICAgICAgICBFZGdlIGRvZXMgbm90IHlldCByZXR1cm4gdGhlIHczYyBzZXNzaW9uIElE
LgorICAgICAgICAgICAgV2Ugd2FudCB0aGUgdGVzdHMgdG8gcnVuIGluIEVkZ2UgYW55d2F5IHRv
IGhlbHAgd2l0aCBSRUMuCisgICAgICAgICAgICBJbiBvcmRlciB0byBydW4gdGhlIHRlc3RzIGlu
IEVkZ2UsIHdlIG5lZWQgdG8gaGFjayBhcm91bmQKKyAgICAgICAgICAgIGJ1ZzoKKyAgICAgICAg
ICAgIGh0dHBzOi8vZGV2ZWxvcGVyLm1pY3Jvc29mdC5jb20vZW4tdXMvbWljcm9zb2Z0LWVkZ2Uv
cGxhdGZvcm0vaXNzdWVzLzE0NjQxOTcyCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIGlm
IHVybCA9PSAic2Vzc2lvbiIgYW5kIG1ldGhvZCA9PSAiUE9TVCIgYW5kICJzZXNzaW9uSWQiIGlu
IHJlc3BvbnNlLmJvZHkgYW5kICJzZXNzaW9uSWQiIG5vdCBpbiB2YWx1ZToKKyAgICAgICAgICAg
ICAgICB2YWx1ZVsic2Vzc2lvbklkIl0gPSByZXNwb25zZS5ib2R5WyJzZXNzaW9uSWQiXQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiRXhwZWN0ZWQgJ3ZhbHVl
JyBrZXkgaW4gcmVzcG9uc2UgYm9keTpcbiIKKyAgICAgICAgICAgICAgICAiJXMiICUgcmVzcG9u
c2UpCisKKyAgICAgICAgcmV0dXJuIHZhbHVlCisKKyAgICBkZWYgc2VuZF9zZXNzaW9uX2NvbW1h
bmQoc2VsZiwgbWV0aG9kLCB1cmksIGJvZHk9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBT
ZW5kIGEgY29tbWFuZCB0byBhbiBlc3RhYmxpc2hlZCBzZXNzaW9uIGFuZCB2YWxpZGF0ZSBpdHMg
c3VjY2Vzcy4KKworICAgICAgICA6cGFyYW0gbWV0aG9kOiBIVFRQIG1ldGhvZCB0byB1c2UgaW4g
cmVxdWVzdC4KKyAgICAgICAgOnBhcmFtIHVybDogIkNvbW1hbmQgcGFydCIgb2YgdGhlIEhUVFAg
cmVxdWVzdCBVUkwsCisgICAgICAgICAgICBlLmcuIGB3aW5kb3cvcmVjdGAuCisgICAgICAgIDpw
YXJhbSBib2R5OiBPcHRpb25hbCBib2R5IG9mIHRoZSBIVFRQIHJlcXVlc3QuICBNdXN0IGJlIEpT
T04KKyAgICAgICAgICAgIHNlcmlhbGlzYWJsZS4KKworICAgICAgICA6cmV0dXJuOiBgTm9uZWAg
aWYgdGhlIEhUVFAgcmVzcG9uc2UgYm9keSB3YXMgZW1wdHksIG90aGVyd2lzZQorICAgICAgICAg
ICAgdGhlIHJlc3VsdCBvZiBwYXJzaW5nIHRoZSBib2R5IGFzIEpTT04uCisKKyAgICAgICAgOnJh
aXNlcyBlcnJvci5TZXNzaW9uTm90Q3JlYXRlZEV4Y2VwdGlvbjogSWYgdGhlcmUgaXMgbm8gYWN0
aXZlCisgICAgICAgICAgICBzZXNzaW9uLgorICAgICAgICA6cmFpc2VzIGVycm9yLldlYkRyaXZl
ckV4Y2VwdGlvbjogSWYgdGhlIHJlbW90ZSBlbmQgcmV0dXJucworICAgICAgICAgICAgYW4gZXJy
b3IuCisgICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLnNlc3Npb25faWQgaXMgTm9uZToKKyAg
ICAgICAgICAgIHJhaXNlIGVycm9yLlNlc3Npb25Ob3RDcmVhdGVkRXhjZXB0aW9uKCkKKworICAg
ICAgICB1cmwgPSB1cmxwYXJzZS51cmxqb2luKCJzZXNzaW9uLyVzLyIgJSBzZWxmLnNlc3Npb25f
aWQsIHVyaSkKKyAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9jb21tYW5kKG1ldGhvZCwgdXJsLCBi
b2R5KQorCisgICAgQHByb3BlcnR5CisgICAgQGNvbW1hbmQKKyAgICBkZWYgdXJsKHNlbGYpOgor
ICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiR0VUIiwgInVybCIpCisK
KyAgICBAdXJsLnNldHRlcgorICAgIEBjb21tYW5kCisgICAgZGVmIHVybChzZWxmLCB1cmwpOgor
ICAgICAgICBpZiB1cmxwYXJzZS51cmxzcGxpdCh1cmwpLm5ldGxvYyBpcyBOb25lOgorICAgICAg
ICAgICAgcmV0dXJuIHNlbGYudXJsKHVybCkKKyAgICAgICAgYm9keSA9IHsidXJsIjogdXJsfQor
ICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiUE9TVCIsICJ1cmwiLCBi
b2R5KQorCisgICAgQGNvbW1hbmQKKyAgICBkZWYgYmFjayhzZWxmKToKKyAgICAgICAgcmV0dXJu
IHNlbGYuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIlBPU1QiLCAiYmFjayIpCisKKyAgICBAY29tbWFu
ZAorICAgIGRlZiBmb3J3YXJkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Np
b25fY29tbWFuZCgiUE9TVCIsICJmb3J3YXJkIikKKworICAgIEBjb21tYW5kCisgICAgZGVmIHJl
ZnJlc2goc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJQ
T1NUIiwgInJlZnJlc2giKQorCisgICAgQHByb3BlcnR5CisgICAgQGNvbW1hbmQKKyAgICBkZWYg
dGl0bGUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJH
RVQiLCAidGl0bGUiKQorCisgICAgQHByb3BlcnR5CisgICAgQGNvbW1hbmQKKyAgICBkZWYgc291
cmNlKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiR0VU
IiwgInNvdXJjZSIpCisKKyAgICBAcHJvcGVydHkKKyAgICBAY29tbWFuZAorICAgIGRlZiB3aW5k
b3dfaGFuZGxlKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5zZW5kX3Nlc3Npb25fY29tbWFu
ZCgiR0VUIiwgIndpbmRvdyIpCisKKyAgICBAd2luZG93X2hhbmRsZS5zZXR0ZXIKKyAgICBAY29t
bWFuZAorICAgIGRlZiB3aW5kb3dfaGFuZGxlKHNlbGYsIGhhbmRsZSk6CisgICAgICAgIGJvZHkg
PSB7ImhhbmRsZSI6IGhhbmRsZX0KKyAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9zZXNzaW9uX2Nv
bW1hbmQoIlBPU1QiLCAid2luZG93IiwgYm9keT1ib2R5KQorCisgICAgZGVmIHN3aXRjaF9mcmFt
ZShzZWxmLCBmcmFtZSk6CisgICAgICAgIGlmIGZyYW1lID09ICJwYXJlbnQiOgorICAgICAgICAg
ICAgdXJsID0gImZyYW1lL3BhcmVudCIKKyAgICAgICAgICAgIGJvZHkgPSBOb25lCisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICB1cmwgPSAiZnJhbWUiCisgICAgICAgICAgICBib2R5ID0geyJp
ZCI6IGZyYW1lfQorCisgICAgICAgIHJldHVybiBzZWxmLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJQ
T1NUIiwgdXJsLCBib2R5KQorCisgICAgQGNvbW1hbmQKKyAgICBkZWYgY2xvc2Uoc2VsZik6Cisg
ICAgICAgIHJldHVybiBzZWxmLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJERUxFVEUiLCAid2luZG93
IikKKworICAgIEBwcm9wZXJ0eQorICAgIEBjb21tYW5kCisgICAgZGVmIGhhbmRsZXMoc2VsZik6
CisgICAgICAgIHJldHVybiBzZWxmLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJHRVQiLCAid2luZG93
L2hhbmRsZXMiKQorCisgICAgQHByb3BlcnR5CisgICAgQGNvbW1hbmQKKyAgICBkZWYgYWN0aXZl
X2VsZW1lbnQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnNlbmRfc2Vzc2lvbl9jb21tYW5k
KCJHRVQiLCAiZWxlbWVudC9hY3RpdmUiKQorCisgICAgQGNvbW1hbmQKKyAgICBkZWYgY29va2ll
cyhzZWxmLCBuYW1lPU5vbmUpOgorICAgICAgICBpZiBuYW1lIGlzIE5vbmU6CisgICAgICAgICAg
ICB1cmwgPSAiY29va2llIgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdXJsID0gImNvb2tp
ZS8lcyIgJSBuYW1lCisgICAgICAgIHJldHVybiBzZWxmLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJH
RVQiLCB1cmwsIHt9KQorCisgICAgQGNvbW1hbmQKKyAgICBkZWYgc2V0X2Nvb2tpZShzZWxmLCBu
YW1lLCB2YWx1ZSwgcGF0aD1Ob25lLCBkb21haW49Tm9uZSwgc2VjdXJlPU5vbmUsIGV4cGlyeT1O
b25lKToKKyAgICAgICAgYm9keSA9IHsibmFtZSI6IG5hbWUsCisgICAgICAgICAgICAgICAgInZh
bHVlIjogdmFsdWV9CisgICAgICAgIGlmIHBhdGggaXMgbm90IE5vbmU6CisgICAgICAgICAgICBi
b2R5WyJwYXRoIl0gPSBwYXRoCisgICAgICAgIGlmIGRvbWFpbiBpcyBub3QgTm9uZToKKyAgICAg
ICAgICAgIGJvZHlbImRvbWFpbiJdID0gZG9tYWluCisgICAgICAgIGlmIHNlY3VyZSBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgIGJvZHlbInNlY3VyZSJdID0gc2VjdXJlCisgICAgICAgIGlmIGV4
cGlyeSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGJvZHlbImV4cGlyeSJdID0gZXhwaXJ5Cisg
ICAgICAgIHNlbGYuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIlBPU1QiLCAiY29va2llIiwgeyJjb29r
aWUiOiBib2R5fSkKKworICAgIGRlZiBkZWxldGVfY29va2llKHNlbGYsIG5hbWU9Tm9uZSk6Cisg
ICAgICAgIGlmIG5hbWUgaXMgTm9uZToKKyAgICAgICAgICAgIHVybCA9ICJjb29raWUiCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICB1cmwgPSAiY29va2llLyVzIiAlIG5hbWUKKyAgICAgICAg
c2VsZi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiREVMRVRFIiwgdXJsLCB7fSkKKworICAgICNbLi4u
XQorCisgICAgQGNvbW1hbmQKKyAgICBkZWYgZXhlY3V0ZV9zY3JpcHQoc2VsZiwgc2NyaXB0LCBh
cmdzPU5vbmUpOgorICAgICAgICBpZiBhcmdzIGlzIE5vbmU6CisgICAgICAgICAgICBhcmdzID0g
W10KKworICAgICAgICBib2R5ID0geworICAgICAgICAgICAgInNjcmlwdCI6IHNjcmlwdCwKKyAg
ICAgICAgICAgICJhcmdzIjogYXJncworICAgICAgICB9CisgICAgICAgIHJldHVybiBzZWxmLnNl
bmRfc2Vzc2lvbl9jb21tYW5kKCJQT1NUIiwgImV4ZWN1dGUvc3luYyIsIGJvZHkpCisKKyAgICBA
Y29tbWFuZAorICAgIGRlZiBleGVjdXRlX2FzeW5jX3NjcmlwdChzZWxmLCBzY3JpcHQsIGFyZ3M9
Tm9uZSk6CisgICAgICAgIGlmIGFyZ3MgaXMgTm9uZToKKyAgICAgICAgICAgIGFyZ3MgPSBbXQor
CisgICAgICAgIGJvZHkgPSB7CisgICAgICAgICAgICAic2NyaXB0Ijogc2NyaXB0LAorICAgICAg
ICAgICAgImFyZ3MiOiBhcmdzCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9z
ZXNzaW9uX2NvbW1hbmQoIlBPU1QiLCAiZXhlY3V0ZS9hc3luYyIsIGJvZHkpCisKKyAgICAjWy4u
Ll0KKworICAgIEBjb21tYW5kCisgICAgZGVmIHNjcmVlbnNob3Qoc2VsZik6CisgICAgICAgIHJl
dHVybiBzZWxmLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJHRVQiLCAic2NyZWVuc2hvdCIpCisKKwor
Y2xhc3MgRWxlbWVudChvYmplY3QpOgorICAgICIiIgorICAgIFJlcHJlc2VudGF0aW9uIG9mIGEg
d2ViIGVsZW1lbnQuCisKKyAgICBBIHdlYiBlbGVtZW50IGlzIGFuIGFic3RyYWN0aW9uIHVzZWQg
dG8gaWRlbnRpZnkgYW4gZWxlbWVudCB3aGVuCisgICAgaXQgaXMgdHJhbnNwb3J0ZWQgdmlhIHRo
ZSBwcm90b2NvbCwgYmV0d2VlbiByZW1vdGUtIGFuZCBsb2NhbCBlbmRzLgorICAgICIiIgorICAg
IGlkZW50aWZpZXIgPSAiZWxlbWVudC02MDY2LTExZTQtYTUyZS00ZjczNTQ2NmNlY2YiCisKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgaWQsIHNlc3Npb24pOgorICAgICAgICAiIiIKKyAgICAgICAg
Q29uc3RydWN0IGEgbmV3IHdlYiBlbGVtZW50IHJlcHJlc2VudGF0aW9uLgorCisgICAgICAgIDpw
YXJhbSBpZDogV2ViIGVsZW1lbnQgVVVJRCB3aGljaCBtdXN0IGJlIHVuaXF1ZSBhY3Jvc3MKKyAg
ICAgICAgICAgIGFsbCBicm93c2luZyBjb250ZXh0cy4KKyAgICAgICAgOnBhcmFtIHNlc3Npb246
IEN1cnJlbnQgYGB3ZWJkcml2ZXIuU2Vzc2lvbmBgLgorICAgICAgICAiIiIKKyAgICAgICAgc2Vs
Zi5pZCA9IGlkCisgICAgICAgIHNlbGYuc2Vzc2lvbiA9IHNlc3Npb24KKworICAgICAgICBhc3Nl
cnQgaWQgbm90IGluIHNlbGYuc2Vzc2lvbi5fZWxlbWVudF9jYWNoZQorICAgICAgICBzZWxmLnNl
c3Npb24uX2VsZW1lbnRfY2FjaGVbc2VsZi5pZF0gPSBzZWxmCisKKyAgICBkZWYgX19lcV9fKHNl
bGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIChpc2luc3RhbmNlKG90aGVyLCBFbGVtZW50KSBh
bmQgc2VsZi5pZCA9PSBvdGhlci5pZCBhbmQKKyAgICAgICAgICAgICAgICBzZWxmLnNlc3Npb24g
PT0gb3RoZXIuc2Vzc2lvbikKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBmcm9tX2pzb24o
Y2xzLCBqc29uLCBzZXNzaW9uKToKKyAgICAgICAgYXNzZXJ0IEVsZW1lbnQuaWRlbnRpZmllciBp
biBqc29uCisgICAgICAgIHV1aWQgPSBqc29uW0VsZW1lbnQuaWRlbnRpZmllcl0KKyAgICAgICAg
aWYgdXVpZCBpbiBzZXNzaW9uLl9lbGVtZW50X2NhY2hlOgorICAgICAgICAgICAgcmV0dXJuIHNl
c3Npb24uX2VsZW1lbnRfY2FjaGVbdXVpZF0KKyAgICAgICAgcmV0dXJuIGNscyh1dWlkLCBzZXNz
aW9uKQorCisgICAgZGVmIHNlbmRfZWxlbWVudF9jb21tYW5kKHNlbGYsIG1ldGhvZCwgdXJpLCBi
b2R5PU5vbmUpOgorICAgICAgICB1cmwgPSAiZWxlbWVudC8lcy8lcyIgJSAoc2VsZi5pZCwgdXJp
KQorICAgICAgICByZXR1cm4gc2VsZi5zZXNzaW9uLnNlbmRfc2Vzc2lvbl9jb21tYW5kKG1ldGhv
ZCwgdXJsLCBib2R5KQorCisgICAgQGNvbW1hbmQKKyAgICBkZWYgZmluZF9lbGVtZW50KHNlbGYs
IHN0cmF0ZWd5LCBzZWxlY3Rvcik6CisgICAgICAgIGJvZHkgPSB7InVzaW5nIjogc3RyYXRlZ3ks
CisgICAgICAgICAgICAgICAgInZhbHVlIjogc2VsZWN0b3J9CisgICAgICAgIHJldHVybiBzZWxm
LnNlbmRfZWxlbWVudF9jb21tYW5kKCJQT1NUIiwgImVsZW1lbnQiLCBib2R5KQorCisgICAgQGNv
bW1hbmQKKyAgICBkZWYgY2xpY2soc2VsZik6CisgICAgICAgIHNlbGYuc2VuZF9lbGVtZW50X2Nv
bW1hbmQoIlBPU1QiLCAiY2xpY2siLCB7fSkKKworICAgIEBjb21tYW5kCisgICAgZGVmIHRhcChz
ZWxmKToKKyAgICAgICAgc2VsZi5zZW5kX2VsZW1lbnRfY29tbWFuZCgiUE9TVCIsICJ0YXAiLCB7
fSkKKworICAgIEBjb21tYW5kCisgICAgZGVmIGNsZWFyKHNlbGYpOgorICAgICAgICBzZWxmLnNl
bmRfZWxlbWVudF9jb21tYW5kKCJQT1NUIiwgc2VsZi51cmwoImNsZWFyIiksIHt9KQorCisgICAg
QGNvbW1hbmQKKyAgICBkZWYgc2VuZF9rZXlzKHNlbGYsIHRleHQpOgorICAgICAgICByZXR1cm4g
c2VsZi5zZW5kX2VsZW1lbnRfY29tbWFuZCgiUE9TVCIsICJ2YWx1ZSIsIHsidGV4dCI6IHRleHR9
KQorCisgICAgQHByb3BlcnR5CisgICAgQGNvbW1hbmQKKyAgICBkZWYgdGV4dChzZWxmKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYuc2VuZF9lbGVtZW50X2NvbW1hbmQoIkdFVCIsICJ0ZXh0IikKKwor
ICAgIEBwcm9wZXJ0eQorICAgIEBjb21tYW5kCisgICAgZGVmIG5hbWUoc2VsZik6CisgICAgICAg
IHJldHVybiBzZWxmLnNlbmRfZWxlbWVudF9jb21tYW5kKCJHRVQiLCAibmFtZSIpCisKKyAgICBA
Y29tbWFuZAorICAgIGRlZiBzdHlsZShzZWxmLCBwcm9wZXJ0eV9uYW1lKToKKyAgICAgICAgcmV0
dXJuIHNlbGYuc2VuZF9lbGVtZW50X2NvbW1hbmQoIkdFVCIsICJjc3MvJXMiICUgcHJvcGVydHlf
bmFtZSkKKworICAgIEBwcm9wZXJ0eQorICAgIEBjb21tYW5kCisgICAgZGVmIHJlY3Qoc2VsZik6
CisgICAgICAgIHJldHVybiBzZWxmLnNlbmRfZWxlbWVudF9jb21tYW5kKCJHRVQiLCAicmVjdCIp
CisKKyAgICBAcHJvcGVydHkKKyAgICBAY29tbWFuZAorICAgIGRlZiBzZWxlY3RlZChzZWxmKToK
KyAgICAgICAgcmV0dXJuIHNlbGYuc2VuZF9lbGVtZW50X2NvbW1hbmQoIkdFVCIsICJzZWxlY3Rl
ZCIpCisKKyAgICBAY29tbWFuZAorICAgIGRlZiBhdHRyaWJ1dGUoc2VsZiwgbmFtZSk6CisgICAg
ICAgIHJldHVybiBzZWxmLnNlbmRfZWxlbWVudF9jb21tYW5kKCJHRVQiLCAiYXR0cmlidXRlLyVz
IiAlIG5hbWUpCisKKyAgICAjIFRoaXMgTVVTVCBjb21lIGxhc3QgYmVjYXVzZSBvdGhlcndpc2Ug
QHByb3BlcnR5IGRlY29yYXRvcnMgYWJvdmUKKyAgICAjIHdpbGwgYmUgb3ZlcnJpZGRlbiBieSB0
aGlzLgorICAgIEBjb21tYW5kCisgICAgZGVmIHByb3BlcnR5KHNlbGYsIG5hbWUpOgorICAgICAg
ICByZXR1cm4gc2VsZi5zZW5kX2VsZW1lbnRfY29tbWFuZCgiR0VUIiwgInByb3BlcnR5LyVzIiAl
IG5hbWUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvZXJyb3IucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIv
ZXJyb3IucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZWNmZTg5MTBjNTE1NzhlZmY2YjRlYjg5YTk5NjFmMjIwZjBh
OWZlNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9lcnJvci5weQpAQCAtMCwwICsx
LDE5NiBAQAoraW1wb3J0IGNvbGxlY3Rpb25zCitpbXBvcnQganNvbgorCisKK2NsYXNzIFdlYkRy
aXZlckV4Y2VwdGlvbihFeGNlcHRpb24pOgorICAgIGh0dHBfc3RhdHVzID0gTm9uZQorICAgIHN0
YXR1c19jb2RlID0gTm9uZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1lc3NhZ2UsIHN0YWNr
dHJhY2U9Tm9uZSk6CisgICAgICAgIHN1cGVyKFdlYkRyaXZlckV4Y2VwdGlvbiwgc2VsZikKKyAg
ICAgICAgc2VsZi5tZXNzYWdlID0gbWVzc2FnZQorICAgICAgICBzZWxmLnN0YWNrdHJhY2UgPSBz
dGFja3RyYWNlCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAiPCVz
IGh0dHBfc3RhdHVzPSVzPiIgJSAoc2VsZi5fX2NsYXNzX18uX19uYW1lX18sIHNlbGYuaHR0cF9z
dGF0dXMpCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgbWVzc2FnZSA9ICIlcyAo
JXMpOiAlc1xuIiAlIChzZWxmLnN0YXR1c19jb2RlLCBzZWxmLmh0dHBfc3RhdHVzLCBzZWxmLm1l
c3NhZ2UpCisgICAgICAgIGlmIHNlbGYuc3RhY2t0cmFjZToKKyAgICAgICAgICAgIG1lc3NhZ2Ug
Kz0gKCJcbiIKKyAgICAgICAgICAgICJSZW1vdGUtZW5kIHN0YWNrdHJhY2U6XG4iCisgICAgICAg
ICAgICAiXG4iCisgICAgICAgICAgICAiJXMiICUgc2VsZi5zdGFja3RyYWNlKQorICAgICAgICBy
ZXR1cm4gbWVzc2FnZQorCisKK2NsYXNzIEVsZW1lbnRDbGlja0ludGVyY2VwdGVkRXhjZXB0aW9u
KFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAgaHR0cF9zdGF0dXMgPSA0MDAKKyAgICBzdGF0dXNf
Y29kZSA9ICJlbGVtZW50IGNsaWNrIGludGVyY2VwdGVkIgorCisKK2NsYXNzIEVsZW1lbnROb3RT
ZWxlY3RhYmxlRXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAgaHR0cF9zdGF0dXMg
PSA0MDAKKyAgICBzdGF0dXNfY29kZSA9ICJlbGVtZW50IG5vdCBzZWxlY3RhYmxlIgorCisKK2Ns
YXNzIEVsZW1lbnROb3RWaXNpYmxlRXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAg
aHR0cF9zdGF0dXMgPSA0MDAKKyAgICBzdGF0dXNfY29kZSA9ICJlbGVtZW50IG5vdCB2aXNpYmxl
IgorCisKK2NsYXNzIEluc2VjdXJlQ2VydGlmaWNhdGVFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0
aW9uKToKKyAgICBodHRwX3N0YXR1cyA9IDQwMAorICAgIHN0YXR1c19jb2RlID0gImluc2VjdXJl
IGNlcnRpZmljYXRlIgorCisKK2NsYXNzIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbihXZWJEcml2
ZXJFeGNlcHRpb24pOgorICAgIGh0dHBfc3RhdHVzID0gNDAwCisgICAgc3RhdHVzX2NvZGUgPSAi
aW52YWxpZCBhcmd1bWVudCIKKworCitjbGFzcyBJbnZhbGlkQ29va2llRG9tYWluRXhjZXB0aW9u
KFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAgaHR0cF9zdGF0dXMgPSA0MDAKKyAgICBzdGF0dXNf
Y29kZSA9ICJpbnZhbGlkIGNvb2tpZSBkb21haW4iCisKKworY2xhc3MgSW52YWxpZEVsZW1lbnRD
b29yZGluYXRlc0V4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgorICAgIGh0dHBfc3RhdHVz
ID0gNDAwCisgICAgc3RhdHVzX2NvZGUgPSAiaW52YWxpZCBlbGVtZW50IGNvb3JkaW5hdGVzIgor
CisKK2NsYXNzIEludmFsaWRFbGVtZW50U3RhdGVFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9u
KToKKyAgICBodHRwX3N0YXR1cyA9IDQwMAorICAgIHN0YXR1c19jb2RlID0gImludmFsaWQgZWxl
bWVudCBzdGF0ZSIKKworCitjbGFzcyBJbnZhbGlkU2VsZWN0b3JFeGNlcHRpb24oV2ViRHJpdmVy
RXhjZXB0aW9uKToKKyAgICBodHRwX3N0YXR1cyA9IDQwMAorICAgIHN0YXR1c19jb2RlID0gImlu
dmFsaWQgc2VsZWN0b3IiCisKKworY2xhc3MgSW52YWxpZFNlc3Npb25JZEV4Y2VwdGlvbihXZWJE
cml2ZXJFeGNlcHRpb24pOgorICAgIGh0dHBfc3RhdHVzID0gNDA0CisgICAgc3RhdHVzX2NvZGUg
PSAiaW52YWxpZCBzZXNzaW9uIGlkIgorCisKK2NsYXNzIEphdmFzY3JpcHRFcnJvckV4Y2VwdGlv
bihXZWJEcml2ZXJFeGNlcHRpb24pOgorICAgIGh0dHBfc3RhdHVzID0gNTAwCisgICAgc3RhdHVz
X2NvZGUgPSAiamF2YXNjcmlwdCBlcnJvciIKKworCitjbGFzcyBNb3ZlVGFyZ2V0T3V0T2ZCb3Vu
ZHNFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICBodHRwX3N0YXR1cyA9IDUwMAor
ICAgIHN0YXR1c19jb2RlID0gIm1vdmUgdGFyZ2V0IG91dCBvZiBib3VuZHMiCisKKworY2xhc3Mg
Tm9TdWNoQWxlcnRFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICBodHRwX3N0YXR1
cyA9IDQwNAorICAgIHN0YXR1c19jb2RlID0gIm5vIHN1Y2ggYWxlcnQiCisKKworY2xhc3MgTm9T
dWNoRWxlbWVudEV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgorICAgIGh0dHBfc3RhdHVz
ID0gNDA0CisgICAgc3RhdHVzX2NvZGUgPSAibm8gc3VjaCBlbGVtZW50IgorCisKK2NsYXNzIE5v
U3VjaEZyYW1lRXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CisgICAgaHR0cF9zdGF0dXMg
PSA0MDQKKyAgICBzdGF0dXNfY29kZSA9ICJubyBzdWNoIGZyYW1lIgorCisKK2NsYXNzIE5vU3Vj
aFdpbmRvd0V4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgorICAgIGh0dHBfc3RhdHVzID0g
NDA0CisgICAgc3RhdHVzX2NvZGUgPSAibm8gc3VjaCB3aW5kb3ciCisKKworY2xhc3MgU2NyaXB0
VGltZW91dEV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgorICAgIGh0dHBfc3RhdHVzID0g
NDA4CisgICAgc3RhdHVzX2NvZGUgPSAic2NyaXB0IHRpbWVvdXQiCisKKworY2xhc3MgU2Vzc2lv
bk5vdENyZWF0ZWRFeGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICBodHRwX3N0YXR1
cyA9IDUwMAorICAgIHN0YXR1c19jb2RlID0gInNlc3Npb24gbm90IGNyZWF0ZWQiCisKKworY2xh
c3MgU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6Cisg
ICAgaHR0cF9zdGF0dXMgPSA0MDQKKyAgICBzdGF0dXNfY29kZSA9ICJzdGFsZSBlbGVtZW50IHJl
ZmVyZW5jZSIKKworCitjbGFzcyBUaW1lb3V0RXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6
CisgICAgaHR0cF9zdGF0dXMgPSA0MDgKKyAgICBzdGF0dXNfY29kZSA9ICJ0aW1lb3V0IgorCisK
K2NsYXNzIFVuYWJsZVRvU2V0Q29va2llRXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6Cisg
ICAgaHR0cF9zdGF0dXMgPSA1MDAKKyAgICBzdGF0dXNfY29kZSA9ICJ1bmFibGUgdG8gc2V0IGNv
b2tpZSIKKworCitjbGFzcyBVbmV4cGVjdGVkQWxlcnRPcGVuRXhjZXB0aW9uKFdlYkRyaXZlckV4
Y2VwdGlvbik6CisgICAgaHR0cF9zdGF0dXMgPSA1MDAKKyAgICBzdGF0dXNfY29kZSA9ICJ1bmV4
cGVjdGVkIGFsZXJ0IG9wZW4iCisKKworY2xhc3MgVW5rbm93bkVycm9yRXhjZXB0aW9uKFdlYkRy
aXZlckV4Y2VwdGlvbik6CisgICAgaHR0cF9zdGF0dXMgPSA1MDAKKyAgICBzdGF0dXNfY29kZSA9
ICJ1bmtub3duIGVycm9yIgorCisKK2NsYXNzIFVua25vd25Db21tYW5kRXhjZXB0aW9uKFdlYkRy
aXZlckV4Y2VwdGlvbik6CisgICAgaHR0cF9zdGF0dXMgPSA0MDQKKyAgICBzdGF0dXNfY29kZSA9
ICJ1bmtub3duIGNvbW1hbmQiCisKKworY2xhc3MgVW5rbm93bk1ldGhvZEV4Y2VwdGlvbihXZWJE
cml2ZXJFeGNlcHRpb24pOgorICAgIGh0dHBfc3RhdHVzID0gNDA1CisgICAgc3RhdHVzX2NvZGUg
PSAidW5rbm93biBtZXRob2QiCisKKworY2xhc3MgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRp
b24oV2ViRHJpdmVyRXhjZXB0aW9uKToKKyAgICBodHRwX3N0YXR1cyA9IDUwMAorICAgIHN0YXR1
c19jb2RlID0gInVuc3VwcG9ydGVkIG9wZXJhdGlvbiIKKworCitkZWYgZnJvbV9yZXNwb25zZShy
ZXNwb25zZSk6CisgICAgIiIiCisgICAgVW5tYXJzaGFscyBhbiBlcnJvciBmcm9tIGEgYGBSZXNw
b25zZWBgJ3MgYGJvZHlgLCBmYWlsaW5nCisgICAgaWYgbm90IGFsbCB0aHJlZSByZXF1aXJlZCBg
ZXJyb3JgLCBgbWVzc2FnZWAsIGFuZCBgc3RhY2t0cmFjZWAKKyAgICBmaWVsZHMgYXJlIGdpdmVu
LiAgRGVmYXVsdHMgdG8gYGBXZWJEcml2ZXJFeGNlcHRpb25gYCBpZiBgZXJyb3JgCisgICAgaXMg
dW5rbm93bi4KKyAgICAiIiIKKyAgICBpZiByZXNwb25zZS5zdGF0dXMgPT0gMjAwOgorICAgICAg
ICByYWlzZSBVbmtub3duRXJyb3JFeGNlcHRpb24oCisgICAgICAgICAgICAiUmVzcG9uc2UgaXMg
bm90IGFuIGVycm9yOlxuIgorICAgICAgICAgICAgIiVzIiAlIGpzb24uZHVtcHMocmVzcG9uc2Uu
Ym9keSkpCisKKyAgICBpZiAidmFsdWUiIGluIHJlc3BvbnNlLmJvZHk6CisgICAgICAgIHZhbHVl
ID0gcmVzcG9uc2UuYm9keVsidmFsdWUiXQorICAgIGVsc2U6CisgICAgICAgIHJhaXNlIFVua25v
d25FcnJvckV4Y2VwdGlvbigKKyAgICAgICAgICAgICJFeHBlY3RlZCAndmFsdWUnIGtleSBpbiBy
ZXNwb25zZSBib2R5OlxuIgorICAgICAgICAgICAgIiVzIiAlIGpzb24uZHVtcHMocmVzcG9uc2Uu
Ym9keSkpCisKKyAgICAjIGFsbCBmaWVsZHMgbXVzdCBleGlzdCwgYnV0IHN0YWNrdHJhY2UgY2Fu
IGJlIGFuIGVtcHR5IHN0cmluZworICAgIGNvZGUgPSB2YWx1ZVsiZXJyb3IiXQorICAgIG1lc3Nh
Z2UgPSB2YWx1ZVsibWVzc2FnZSJdCisgICAgc3RhY2sgPSB2YWx1ZVsic3RhY2t0cmFjZSJdIG9y
IE5vbmUKKworICAgIGNscyA9IGdldChjb2RlKQorICAgIHJldHVybiBjbHMobWVzc2FnZSwgc3Rh
Y2t0cmFjZT1zdGFjaykKKworCitkZWYgZ2V0KGVycm9yX2NvZGUpOgorICAgICIiIgorICAgIEdl
dHMgZXhjZXB0aW9uIGZyb20gYGVycm9yX2NvZGVgLCBmYWxsaW5nIGJhY2sgdG8KKyAgICBgYFdl
YkRyaXZlckV4Y2VwdGlvbmBgIGlmIGl0IGlzIG5vdCBmb3VuZC4KKyAgICAiIiIKKyAgICByZXR1
cm4gX2Vycm9ycy5nZXQoZXJyb3JfY29kZSwgV2ViRHJpdmVyRXhjZXB0aW9uKQorCisKK19lcnJv
cnMgPSBjb2xsZWN0aW9ucy5kZWZhdWx0ZGljdCgpCitmb3IgaXRlbSBpbiBsb2NhbHMoKS52YWx1
ZXMoKToKKyAgICBpZiB0eXBlKGl0ZW0pID09IHR5cGUgYW5kIGlzc3ViY2xhc3MoaXRlbSwgV2Vi
RHJpdmVyRXhjZXB0aW9uKToKKyAgICAgICAgX2Vycm9yc1tpdGVtLnN0YXR1c19jb2RlXSA9IGl0
ZW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9wcm90b2NvbC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9w
cm90b2NvbC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYTBjNzkzYWNjYmRhNmVkYjQyOWJlMDI3M2EyZjYxMmVl
M2QzNjY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3Byb3RvY29sLnB5CkBAIC0w
LDAgKzEsMzUgQEAKK2ltcG9ydCBqc29uCisKK2ltcG9ydCB3ZWJkcml2ZXIKKworCisiIiJXZWJE
cml2ZXIgd2lyZSBwcm90b2NvbCBjb2RlY3MuIiIiCisKKworY2xhc3MgRW5jb2Rlcihqc29uLkpT
T05FbmNvZGVyKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAg
ICAgICAga3dhcmdzLnBvcCgic2Vzc2lvbiIpCisgICAgICAgIHN1cGVyKEVuY29kZXIsIHNlbGYp
Ll9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKKworICAgIGRlZiBkZWZhdWx0KHNlbGYsIG9iaik6
CisgICAgICAgIGlmIGlzaW5zdGFuY2Uob2JqLCAobGlzdCwgdHVwbGUpKToKKyAgICAgICAgICAg
IHJldHVybiBbc2VsZi5kZWZhdWx0KHgpIGZvciB4IGluIG9ial0KKyAgICAgICAgZWxpZiBpc2lu
c3RhbmNlKG9iaiwgd2ViZHJpdmVyLkVsZW1lbnQpOgorICAgICAgICAgICAgcmV0dXJuIHt3ZWJk
cml2ZXIuRWxlbWVudC5pZGVudGlmaWVyOiBvYmouaWR9CisgICAgICAgIHJldHVybiBzdXBlcihF
bmNvZGVyLCBzZWxmKS5kZWZhdWx0KG9iaikKKworCitjbGFzcyBEZWNvZGVyKGpzb24uSlNPTkRl
Y29kZXIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAg
ICBzZWxmLnNlc3Npb24gPSBrd2FyZ3MucG9wKCJzZXNzaW9uIikKKyAgICAgICAgc3VwZXIoRGVj
b2Rlciwgc2VsZikuX19pbml0X18oCisgICAgICAgICAgICBvYmplY3RfaG9vaz1zZWxmLm9iamVj
dF9ob29rLCAqYXJncywgKiprd2FyZ3MpCisKKyAgICBkZWYgb2JqZWN0X2hvb2soc2VsZiwgcGF5
bG9hZCk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UocGF5bG9hZCwgKGxpc3QsIHR1cGxlKSk6Cisg
ICAgICAgICAgICByZXR1cm4gW3NlbGYub2JqZWN0X2hvb2soeCkgZm9yIHggaW4gcGF5bG9hZF0K
KyAgICAgICAgZWxpZiBpc2luc3RhbmNlKHBheWxvYWQsIGRpY3QpIGFuZCB3ZWJkcml2ZXIuRWxl
bWVudC5pZGVudGlmaWVyIGluIHBheWxvYWQ6CisgICAgICAgICAgICByZXR1cm4gd2ViZHJpdmVy
LkVsZW1lbnQuZnJvbV9qc29uKHBheWxvYWQsIHNlbGYuc2Vzc2lvbikKKyAgICAgICAgZWxpZiBp
c2luc3RhbmNlKHBheWxvYWQsIGRpY3QpOgorICAgICAgICAgICAgcmV0dXJuIHtrOiBzZWxmLm9i
amVjdF9ob29rKHYpIGZvciBrLCB2IGluIHBheWxvYWQuaXRlcml0ZW1zKCl9CisgICAgICAgIHJl
dHVybiBwYXlsb2FkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvdHJhbnNwb3J0LnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIv
d2ViZHJpdmVyL3RyYW5zcG9ydC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NjBjYjM3MWI4NTM0NjVkMWNiZWFj
NGYzZWY5YzAyNWY0ZDAyYWZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3RyYW5z
cG9ydC5weQpAQCAtMCwwICsxLDE2MyBAQAoraW1wb3J0IGh0dHBsaWIKK2ltcG9ydCBqc29uCitp
bXBvcnQgdXJscGFyc2UKKworaW1wb3J0IGVycm9yCisKK2Zyb20gc2l4IGltcG9ydCB0ZXh0X3R5
cGUKKworIiIiSW1wbGVtZW50cyBIVFRQIHRyYW5zcG9ydCBmb3IgdGhlIFdlYkRyaXZlciB3aXJl
IHByb3RvY29sLiIiIgorCisKK2NsYXNzIFJlc3BvbnNlKG9iamVjdCk6CisgICAgIiIiCisgICAg
RGVzY3JpYmVzIGFuIEhUVFAgcmVzcG9uc2UgcmVjZWl2ZWQgZnJvbSBhIHJlbW90ZSBlbmQgd2hv
c2UKKyAgICBib2R5IGhhcyBiZWVuIHJlYWQgYW5kIHBhcnNlZCBhcyBhcHByb3ByaWF0ZS4KKyAg
ICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzdGF0dXMsIGJvZHkpOgorICAgICAgICBz
ZWxmLnN0YXR1cyA9IHN0YXR1cworICAgICAgICBzZWxmLmJvZHkgPSBib2R5CisKKyAgICBkZWYg
X19yZXByX18oc2VsZik6CisgICAgICAgIGNsc19uYW1lID0gc2VsZi5fX2NsYXNzX18uX19uYW1l
X18KKyAgICAgICAgaWYgc2VsZi5lcnJvcjoKKyAgICAgICAgICAgIHJldHVybiAiPCVzIHN0YXR1
cz0lcyBlcnJvcj0lcz4iICUgKGNsc19uYW1lLCBzZWxmLnN0YXR1cywgcmVwcihzZWxmLmVycm9y
KSkKKyAgICAgICAgcmV0dXJuICI8JSBzdGF0dXM9JXMgYm9keT0lcz4iICUgKGNsc19uYW1lLCBz
ZWxmLnN0YXR1cywganNvbi5kdW1wcyhzZWxmLmJvZHkpKQorCisgICAgZGVmIF9fc3RyX18oc2Vs
Zik6CisgICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYuYm9keSwgaW5kZW50PTIpCisKKyAg
ICBAcHJvcGVydHkKKyAgICBkZWYgZXJyb3Ioc2VsZik6CisgICAgICAgIGlmIHNlbGYuc3RhdHVz
ICE9IDIwMDoKKyAgICAgICAgICAgIHJldHVybiBlcnJvci5mcm9tX3Jlc3BvbnNlKHNlbGYpCisg
ICAgICAgIHJldHVybiBOb25lCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgZnJvbV9odHRw
KGNscywgaHR0cF9yZXNwb25zZSwgZGVjb2Rlcj1qc29uLkpTT05EZWNvZGVyLCAqKmt3YXJncyk6
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGJvZHkgPSBqc29uLmxvYWQoaHR0cF9yZXNwb25z
ZSwgY2xzPWRlY29kZXIsICoqa3dhcmdzKQorICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkZhaWxlZCB0byBkZWNvZGUgcmVzcG9uc2UgYm9k
eSBhcyBKU09OOlxuIiArCisgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZS5yZWFkKCkpCisK
KyAgICAgICAgcmV0dXJuIGNscyhodHRwX3Jlc3BvbnNlLnN0YXR1cywgYm9keSkKKworCitjbGFz
cyBIVFRQV2lyZVByb3RvY29sKG9iamVjdCk6CisgICAgIiIiCisgICAgVHJhbnNwb3J0cyBtZXNz
YWdlcyAoY29tbWFuZHMgYW5kIHJlc3BvbnNlcykgb3ZlciB0aGUgV2ViRHJpdmVyCisgICAgd2ly
ZSBwcm90b2NvbC4KKworICAgIENvbXBsZXggb2JqZWN0cywgc3VjaCBhcyBgYHdlYmRyaXZlci5F
bGVtZW50YGAsIGFyZSBieSBkZWZhdWx0CisgICAgbm90IG1hcnNoYWxlZCB0byBlbmFibGUgdXNl
IG9mIGBzZXNzaW9uLnRyYW5zcG9ydC5zZW5kYCBpbiBXUFQgdGVzdHM6OgorCisgICAgICAgIHNl
c3Npb24gPSB3ZWJkcml2ZXIuU2Vzc2lvbigiMTI3LjAuMC4xIiwgNDQ0NCkKKyAgICAgICAgcmVz
cG9uc2UgPSB0cmFuc3BvcnQuc2VuZCgiR0VUIiwgImVsZW1lbnQvYWN0aXZlIiwgTm9uZSkKKyAg
ICAgICAgcHJpbnQgcmVzcG9uc2UuYm9keVsidmFsdWUiXQorICAgICAgICAjID0+IHt1J2VsZW1l
bnQtNjA2Ni0xMWU0LWE1MmUtNGY3MzU0NjZjZWNmJzogdSc8dXVpZD4nfQorCisgICAgQXV0b21h
dGljIG1hcnNoYWxpbmcgaXMgcHJvdmlkZWQgYnkgYGB3ZWJkcml2ZXIucHJvdG9jb2wuRW5jb2Rl
cmBgCisgICAgYW5kIGBgd2ViZHJpdmVyLnByb3RvY29sLkRlY29kZXJgYCwgd2hpY2ggY2FuIGJl
IHBhc3NlZCBpbiB0bworICAgIGBgSFRUUFdpcmVQcm90b2NvbC5zZW5kYGAgYWxvbmcgd2l0aCBh
IHJlZmVyZW5jZSB0byB0aGUgY3VycmVudAorICAgIGBgd2ViZHJpdmVyLlNlc3Npb25gYDo6CisK
KyAgICAgICAgc2Vzc2lvbiA9IHdlYmRyaXZlci5TZXNzaW9uKCIxMjcuMC4wLjEiLCA0NDQ0KQor
ICAgICAgICByZXNwb25zZSA9IHRyYW5zcG9ydC5zZW5kKCJHRVQiLCAiZWxlbWVudC9hY3RpdmUi
LCBOb25lLAorICAgICAgICAgICAgZW5jb2Rlcj1wcm90b2NvbC5FbmNvZGVyLCBkZWNvZGVyPXBy
b3RvY29sLkRlY29kZXIsCisgICAgICAgICAgICBzZXNzaW9uPXNlc3Npb24pCisgICAgICAgIHBy
aW50IHJlc3BvbnNlLmJvZHlbInZhbHVlIl0KKyAgICAgICAgIyA9PiB3ZWJkcml2ZXIuRWxlbWVu
dAorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QsIHBvcnQsIHVybF9wcmVm
aXg9Ii8iLCB0aW1lb3V0PU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgQ29uc3RydWN0IGlu
dGVyZmFjZSBmb3IgY29tbXVuaWNhdGluZyB3aXRoIHRoZSByZW1vdGUgc2VydmVyLgorCisgICAg
ICAgIDpwYXJhbSB1cmw6IFVSTCBvZiByZW1vdGUgV2ViRHJpdmVyIHNlcnZlci4KKyAgICAgICAg
OnBhcmFtIHdhaXQ6IER1cmF0aW9uIHRvIHdhaXQgZm9yIHJlbW90ZSB0byBhcHBlYXIuCisgICAg
ICAgICIiIgorICAgICAgICBzZWxmLmhvc3QgPSBob3N0CisgICAgICAgIHNlbGYucG9ydCA9IHBv
cnQKKyAgICAgICAgc2VsZi51cmxfcHJlZml4ID0gdXJsX3ByZWZpeAorCisgICAgICAgIHNlbGYu
X3RpbWVvdXQgPSB0aW1lb3V0CisKKyAgICBkZWYgdXJsKHNlbGYsIHN1ZmZpeCk6CisgICAgICAg
IHJldHVybiB1cmxwYXJzZS51cmxqb2luKHNlbGYudXJsX3ByZWZpeCwgc3VmZml4KQorCisgICAg
ZGVmIHNlbmQoc2VsZiwKKyAgICAgICAgICAgICBtZXRob2QsCisgICAgICAgICAgICAgdXJpLAor
ICAgICAgICAgICAgIGJvZHk9Tm9uZSwKKyAgICAgICAgICAgICBoZWFkZXJzPU5vbmUsCisgICAg
ICAgICAgICAgZW5jb2Rlcj1qc29uLkpTT05FbmNvZGVyLAorICAgICAgICAgICAgIGRlY29kZXI9
anNvbi5KU09ORGVjb2RlciwKKyAgICAgICAgICAgICAqKmNvZGVjX2t3YXJncyk6CisgICAgICAg
ICIiIgorICAgICAgICBTZW5kIGEgY29tbWFuZCB0byB0aGUgcmVtb3RlLgorCisgICAgICAgIFRo
ZSByZXF1ZXN0IGBib2R5YCBtdXN0IGJlIEpTT04gc2VyaWFsaXNhYmxlIHVubGVzcyBhCisgICAg
ICAgIGN1c3RvbSBgZW5jb2RlcmAgaGFzIGJlZW4gcHJvdmlkZWQuICBUaGlzIG1lYW5zIGNvbXBs
ZXgKKyAgICAgICAgb2JqZWN0cyBzdWNoIGFzIGBgd2ViZHJpdmVyLkVsZW1lbnRgYCBhcmUgbm90
IGF1dG9tYXRpY2FsbHkKKyAgICAgICAgbWFkZSBpbnRvIEpTT04uICBUaGlzIGJlaGF2aW91ciBp
cywgaG93ZXZlciwgcHJvdmlkZWQgYnkKKyAgICAgICAgYGB3ZWJkcml2ZXIucHJvdG9jb2wuRW5j
b2RlcmBgLCBzaG91bGQgeW91IHdhbnQgaXQuCisKKyAgICAgICAgU2ltaWxhcmx5LCB0aGUgcmVz
cG9uc2UgYm9keSBpcyByZXR1cm5lZCBhdSBuYXR1cmFsCisgICAgICAgIGFzIHBsYWluIEpTT04g
dW5sZXNzIGEgYGRlY29kZXJgIHRoYXQgY29udmVydHMgd2ViCisgICAgICAgIGVsZW1lbnQgcmVm
ZXJlbmNlcyB0byBgYHdlYmRyaXZlci5FbGVtZW50YGAgaXMgcHJvdmlkZWQuCisgICAgICAgIFVz
ZSBgYHdlYmRyaXZlci5wcm90b2NvbC5EZWNvZGVyYGAgdG8gYWNoaWV2ZSB0aGlzIGJlaGF2aW91
ci4KKworICAgICAgICA6cGFyYW0gbWV0aG9kOiBgR0VUYCwgYFBPU1RgLCBvciBgREVMRVRFYC4K
KyAgICAgICAgOnBhcmFtIHVyaTogUmVsYXRpdmUgZW5kcG9pbnQgb2YgdGhlIHJlcXVlc3RzIFVS
TCBwYXRoLgorICAgICAgICA6cGFyYW0gYm9keTogQm9keSBvZiB0aGUgcmVxdWVzdC4gIERlZmF1
bHRzIHRvIGFuIGVtcHR5CisgICAgICAgICAgICBkaWN0aW9uYXJ5IGlmIGBgbWV0aG9kYGAgaXMg
YFBPU1RgLgorICAgICAgICA6cGFyYW0gaGVhZGVyczogQWRkaXRpb25hbCBkaWN0aW9uYXJ5IG9m
IGhlYWRlcnMgdG8gaW5jbHVkZQorICAgICAgICAgICAgaW4gdGhlIHJlcXVlc3QuCisgICAgICAg
IDpwYXJhbSBlbmNvZGVyOiBKU09OIGVuY29kZXIgY2xhc3MsIHdoaWNoIGRlZmF1bHRzIHRvCisg
ICAgICAgICAgICBgYGpzb24uSlNPTkVuY29kZXJgYCB1bmxlc3Mgc3BlY2lmaWVkLgorICAgICAg
ICA6cGFyYW0gZGVjb2RlcjogSlNPTiBkZWNvZGVyIGNsYXNzLCB3aGljaCBkZWZhdWx0cyB0bwor
ICAgICAgICAgICAgYGBqc29uLkpTT05EZWNvZGVyYGAgdW5sZXNzIHNwZWNpZmllZC4KKyAgICAg
ICAgOnBhcmFtIGNvZGVjX2t3YXJnczogU3VycGx1cyBhcmd1bWVudHMgcGFzc2VkIG9uIHRvIGBl
bmNvZGVyYAorICAgICAgICAgICAgYW5kIGBkZWNvZGVyYCBvbiBjb25zdHJ1Y3Rpb24uCisKKyAg
ICAgICAgOnJldHVybjogSW5zdGFuY2Ugb2YgYGB3ZWJkcml2ZXIudHJhbnNwb3J0LlJlc3BvbnNl
YGAKKyAgICAgICAgICAgIGRlc2NyaWJpbmcgdGhlIEhUVFAgcmVzcG9uc2UgcmVjZWl2ZWQgZnJv
bSB0aGUgcmVtb3RlIGVuZC4KKworICAgICAgICA6cmFpc2VzIFZhbHVlRXJyb3I6IElmIGBib2R5
YCBvciB0aGUgcmVzcG9uc2UgYm9keSBhcmUgbm90CisgICAgICAgICAgICBKU09OIHNlcmlhbGlz
YWJsZS4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIGJvZHkgaXMgTm9uZSBhbmQgbWV0aG9kID09
ICJQT1NUIjoKKyAgICAgICAgICAgIGJvZHkgPSB7fQorCisgICAgICAgIHBheWxvYWQgPSBOb25l
CisgICAgICAgIGlmIGJvZHkgaXMgbm90IE5vbmU6CisgICAgICAgICAgICB0cnk6CisgICAgICAg
ICAgICAgICAgcGF5bG9hZCA9IGpzb24uZHVtcHMoYm9keSwgY2xzPWVuY29kZXIsICoqY29kZWNf
a3dhcmdzKQorICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigiRmFpbGVkIHRvIGVuY29kZSByZXF1ZXN0IGJvZHkgYXMgSlNPTjpc
biIKKyAgICAgICAgICAgICAgICAgICAgIiVzIiAlIGpzb24uZHVtcHMoYm9keSwgaW5kZW50PTIp
KQorCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHBheWxvYWQsIHRleHRfdHlwZSk6CisgICAg
ICAgICAgICAgICAgcGF5bG9hZCA9IGJvZHkuZW5jb2RlKCJ1dGYtOCIpCisKKyAgICAgICAgaWYg
aGVhZGVycyBpcyBOb25lOgorICAgICAgICAgICAgaGVhZGVycyA9IHt9CisKKyAgICAgICAgdXJs
ID0gc2VsZi51cmwodXJpKQorCisgICAgICAgIGNvbm5fa3dhcmdzID0ge30KKyAgICAgICAgaWYg
c2VsZi5fdGltZW91dCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGNvbm5fa3dhcmdzWyJ0aW1l
b3V0Il0gPSBzZWxmLl90aW1lb3V0CisKKyAgICAgICAgY29ubiA9IGh0dHBsaWIuSFRUUENvbm5l
Y3Rpb24oCisgICAgICAgICAgICBzZWxmLmhvc3QsIHNlbGYucG9ydCwgc3RyaWN0PVRydWUsICoq
Y29ubl9rd2FyZ3MpCisgICAgICAgIGNvbm4ucmVxdWVzdChtZXRob2QsIHVybCwgcGF5bG9hZCwg
aGVhZGVycykKKworICAgICAgICB0cnk6CisgICAgICAgICAgICByZXNwb25zZSA9IGNvbm4uZ2V0
cmVzcG9uc2UoKQorICAgICAgICAgICAgcmV0dXJuIFJlc3BvbnNlLmZyb21faHR0cCgKKyAgICAg
ICAgICAgICAgICByZXNwb25zZSwgZGVjb2Rlcj1kZWNvZGVyLCAqKmNvZGVjX2t3YXJncykKKyAg
ICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGNvbm4uY2xvc2UoKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIv
d2ViZHJpdmVyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3czYy1pbXBvcnQubG9nCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmFmMjQ3MjE2MTZkOWY5YThiMDI5NTkxOTc4NWE4ODYyOGZkZjFkZGEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMSBA
QAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlo
dHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitE
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qg
b2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2NsaWVu
dC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d2ViZHJpdmVyL3dlYmRyaXZlci9lcnJvci5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9wcm90b2NvbC5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJp
dmVyL3dlYmRyaXZlci90cmFuc3BvcnQucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L19faW5pdF9fLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvX19pbml0X18u
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0L19faW5pdF9fLnB5CkBAIC0wLDAgKzEgQEAKKyMgVGhpcyBmaWxlIGlz
IHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVz
LgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L2Jyb3dzZXIucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9icm93c2Vy
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ1MmZlYjAzNTc2MDQzMWQ1ZWQwYWJhY2Q2NjE3MGUwNzRmNTc0NTQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdC9icm93c2VyLnB5CkBAIC0wLDAgKzEsNTQ5IEBACitpbXBvcnQgbG9n
Z2luZworaW1wb3J0IG9zCitpbXBvcnQgcGxhdGZvcm0KK2ltcG9ydCByZQoraW1wb3J0IHNodXRp
bAoraW1wb3J0IHN0YXQKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgc3lzCitmcm9tIGFiYyBp
bXBvcnQgQUJDTWV0YSwgYWJzdHJhY3RtZXRob2QKK2Zyb20gQ29uZmlnUGFyc2VyIGltcG9ydCBS
YXdDb25maWdQYXJzZXIKK2Zyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lLCB0aW1lZGVsdGEK
K2Zyb20gZGlzdHV0aWxzLnNwYXduIGltcG9ydCBmaW5kX2V4ZWN1dGFibGUKK2Zyb20gaW8gaW1w
b3J0IEJ5dGVzSU8KKworZnJvbSB1dGlscyBpbXBvcnQgY2FsbCwgZ2V0LCB1bnRhciwgdW56aXAK
KworbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKK3VuYW1lID0gcGxhdGZv
cm0udW5hbWUoKQorCisKK2NsYXNzIEJyb3dzZXIob2JqZWN0KToKKyAgICBfX21ldGFjbGFzc19f
ID0gQUJDTWV0YQorCisgICAgQGFic3RyYWN0bWV0aG9kCisgICAgZGVmIGluc3RhbGwoc2VsZiwg
ZGVzdD1Ob25lKToKKyAgICAgICAgIiIiSW5zdGFsbCB0aGUgYnJvd3Nlci4iIiIKKyAgICAgICAg
cmV0dXJuIE5vdEltcGxlbWVudGVkCisKKyAgICBAYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgaW5z
dGFsbF93ZWJkcml2ZXIoc2VsZiwgZGVzdD1Ob25lKToKKyAgICAgICAgIiIiSW5zdGFsbCB0aGUg
V2ViRHJpdmVyIGltcGxlbWVudGF0aW9uIGZvciB0aGlzIGJyb3dzZXIuIiIiCisgICAgICAgIHJl
dHVybiBOb3RJbXBsZW1lbnRlZAorCisgICAgQGFic3RyYWN0bWV0aG9kCisgICAgZGVmIGZpbmRf
YmluYXJ5KHNlbGYpOgorICAgICAgICAiIiJGaW5kIHRoZSBiaW5hcnkgb2YgdGhlIGJyb3dzZXIu
CisKKyAgICAgICAgSWYgdGhlIFdlYkRyaXZlciBmb3IgdGhlIGJyb3dzZXIgaXMgYWJsZSB0byBm
aW5kIHRoZSBiaW5hcnkgaXRzZWxmLCB0aGlzCisgICAgICAgIG1ldGhvZCBkb2Vzbid0IG5lZWQg
dG8gYmUgaW1wbGVtZW50ZWQsIGluIHdoaWNoIGNhc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorICAg
ICAgICBpcyBzdWdnZXN0ZWQgdG8gYmUgcmFpc2VkIHRvIHByZXZlbnQgYWNjaWRlbnRhbCB1c2Uu
CisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKworICAgIEBhYnN0
cmFjdG1ldGhvZAorICAgIGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmKToKKyAgICAgICAgIiIiRmlu
ZCB0aGUgYmluYXJ5IG9mIHRoZSBXZWJEcml2ZXIuIiIiCisgICAgICAgIHJldHVybiBOb3RJbXBs
ZW1lbnRlZAorCisgICAgQGFic3RyYWN0bWV0aG9kCisgICAgZGVmIHZlcnNpb24oc2VsZiwgcm9v
dCk6CisgICAgICAgICIiIlJldHJpZXZlIHRoZSByZWxlYXNlIHZlcnNpb24gb2YgdGhlIGluc3Rh
bGxlZCBicm93c2VyLiIiIgorICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKworICAgIEBh
YnN0cmFjdG1ldGhvZAorICAgIGRlZiByZXF1aXJlbWVudHMoc2VsZik6CisgICAgICAgICIiIk5h
bWUgb2YgdGhlIGJyb3dzZXItc3BlY2lmaWMgd3B0cnVubmVyIHJlcXVpcmVtZW50cyBmaWxlIiIi
CisgICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorCisKK2NsYXNzIEZpcmVmb3goQnJvd3Nl
cik6CisgICAgIiIiRmlyZWZveC1zcGVjaWZpYyBpbnRlcmZhY2UuCisKKyAgICBJbmNsdWRlcyBp
bnN0YWxsYXRpb24sIHdlYmRyaXZlciBpbnN0YWxsYXRpb24sIGFuZCB3cHRydW5uZXIgc2V0dXAg
bWV0aG9kcy4KKyAgICAiIiIKKworICAgIHByb2R1Y3QgPSAiZmlyZWZveCIKKyAgICBiaW5hcnkg
PSAiYnJvd3NlcnMvZmlyZWZveC9maXJlZm94IgorICAgIHBsYXRmb3JtX2luaSA9ICJicm93c2Vy
cy9maXJlZm94L3BsYXRmb3JtLmluaSIKKyAgICByZXF1aXJlbWVudHMgPSAicmVxdWlyZW1lbnRz
X2ZpcmVmb3gudHh0IgorCisgICAgZGVmIHBsYXRmb3JtX3N0cmluZ19nZWNrb2RyaXZlcihzZWxm
KToKKyAgICAgICAgcGxhdGZvcm0gPSB7CisgICAgICAgICAgICAiTGludXgiOiAibGludXgiLAor
ICAgICAgICAgICAgIldpbmRvd3MiOiAid2luIiwKKyAgICAgICAgICAgICJEYXJ3aW4iOiAibWFj
b3MiCisgICAgICAgIH0uZ2V0KHVuYW1lWzBdKQorCisgICAgICAgIGlmIHBsYXRmb3JtIGlzIE5v
bmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJVbmFibGUgdG8gY29uc3RydWN0IGEg
dmFsaWQgR2Vja29kcml2ZXIgcGFja2FnZSBuYW1lIGZvciBjdXJyZW50IHBsYXRmb3JtIikKKwor
ICAgICAgICBpZiBwbGF0Zm9ybSBpbiAoImxpbnV4IiwgIndpbiIpOgorICAgICAgICAgICAgYml0
cyA9ICI2NCIgaWYgdW5hbWVbNF0gPT0gIng4Nl82NCIgZWxzZSAiMzIiCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBiaXRzID0gIiIKKworICAgICAgICByZXR1cm4gIiVzJXMiICUgKHBsYXRm
b3JtLCBiaXRzKQorCisgICAgZGVmIGluc3RhbGwoc2VsZiwgZGVzdD1Ob25lKToKKyAgICAgICAg
IiIiSW5zdGFsbCBGaXJlZm94LiIiIgorCisgICAgICAgIGZyb20gbW96ZG93bmxvYWQgaW1wb3J0
IEZhY3RvcnlTY3JhcGVyCisgICAgICAgIGltcG9ydCBtb3ppbnN0YWxsCisKKyAgICAgICAgcGxh
dGZvcm0gPSB7CisgICAgICAgICAgICAiTGludXgiOiAibGludXgiLAorICAgICAgICAgICAgIldp
bmRvd3MiOiAid2luIiwKKyAgICAgICAgICAgICJEYXJ3aW4iOiAibWFjIgorICAgICAgICB9Lmdl
dCh1bmFtZVswXSkKKworICAgICAgICBpZiBwbGF0Zm9ybSBpcyBOb25lOgorICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigiVW5hYmxlIHRvIGNvbnN0cnVjdCBhIHZhbGlkIEZpcmVmb3ggcGFj
a2FnZSBuYW1lIGZvciBjdXJyZW50IHBsYXRmb3JtIikKKworICAgICAgICBpZiBkZXN0IGlzIE5v
bmU6CisgICAgICAgICAgICAjIG9zLmdldGN3ZCgpIGRvZXNuJ3QgaW5jbHVkZSB0aGUgdmVudiBw
YXRoCisgICAgICAgICAgICBkZXN0ID0gb3MucGF0aC5qb2luKG9zLmdldGN3ZCgpLCAiX3ZlbnYi
KQorCisgICAgICAgIGRlc3QgPSBvcy5wYXRoLmpvaW4oZGVzdCwgImJyb3dzZXJzIikKKworICAg
ICAgICBmaWxlbmFtZSA9IEZhY3RvcnlTY3JhcGVyKCJkYWlseSIsIGJyYW5jaD0ibW96aWxsYS1j
ZW50cmFsIiwgZGVzdGluYXRpb249ZGVzdCkuZG93bmxvYWQoKQorCisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIG1vemluc3RhbGwuaW5zdGFsbChmaWxlbmFtZSwgZGVzdCkKKyAgICAgICAgZXhj
ZXB0IG1vemluc3RhbGwubW96aW5zdGFsbC5JbnN0YWxsRXJyb3IgYXMgZToKKyAgICAgICAgICAg
IGlmIHBsYXRmb3JtID09ICJtYWMiIGFuZCBvcy5wYXRoLmV4aXN0cyhvcy5wYXRoLmpvaW4oZGVz
dCwgIkZpcmVmb3ggTmlnaHRseS5hcHAiKSk6CisgICAgICAgICAgICAgICAgIyBtb3ppbnN0YWxs
IHdpbGwgZmFpbCBpZiBuaWdodGx5IGlzIGFscmVhZHkgaW5zdGFsbGVkIGluIHRoZSB2ZW52IGJl
Y2F1c2UKKyAgICAgICAgICAgICAgICAjIG1hYyBpbnN0YWxsYXRpb24gdXNlcyBzaHV0aWwuY29w
eV90cmVlCisgICAgICAgICAgICAgICAgbW96aW5zdGFsbC51bmluc3RhbGwob3MucGF0aC5qb2lu
KGRlc3QsICJGaXJlZm94IE5pZ2h0bHkuYXBwIikpCisgICAgICAgICAgICAgICAgbW96aW5zdGFs
bC5pbnN0YWxsKGZpbGVuYW1lLCBkZXN0KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICAgICByYWlzZQorCisgICAgICAgIG9zLnJlbW92ZShmaWxlbmFtZSkKKyAgICAgICAgcmV0dXJu
IHNlbGYuZmluZF9iaW5hcnlfcGF0aChkZXN0KQorCisgICAgZGVmIGZpbmRfYmluYXJ5X3BhdGgo
c2VsZiwgcGF0aD1Ob25lKToKKyAgICAgICAgIiIiTG9va3MgZm9yIHRoZSBmaXJlZm94IGJpbmFy
eSBpbiB0aGUgdmlydHVhbCBlbnZpcm9ubWVudCIiIgorCisgICAgICAgIHBsYXRmb3JtID0gewor
ICAgICAgICAgICAgIkxpbnV4IjogImxpbnV4IiwKKyAgICAgICAgICAgICJXaW5kb3dzIjogIndp
biIsCisgICAgICAgICAgICAiRGFyd2luIjogIm1hYyIKKyAgICAgICAgfS5nZXQodW5hbWVbMF0p
CisKKyAgICAgICAgaWYgcGF0aCBpcyBOb25lOgorICAgICAgICAgICAgI29zLmdldGN3ZCgpIGRv
ZXNuJ3QgaW5jbHVkZSB0aGUgdmVudiBwYXRoCisgICAgICAgICAgICBwYXRoID0gb3MucGF0aC5q
b2luKG9zLmdldGN3ZCgpLCAiX3ZlbnYiLCAiYnJvd3NlcnMiKQorCisgICAgICAgIGJpbmFyeSA9
IE5vbmUKKworICAgICAgICBpZiBwbGF0Zm9ybSA9PSAibGludXgiOgorICAgICAgICAgICAgYmlu
YXJ5ID0gZmluZF9leGVjdXRhYmxlKCJmaXJlZm94Iiwgb3MucGF0aC5qb2luKHBhdGgsICJmaXJl
Zm94IikpCisgICAgICAgIGVsaWYgcGxhdGZvcm0gPT0gIndpbiI6CisgICAgICAgICAgICBpbXBv
cnQgbW96aW5zdGFsbAorICAgICAgICAgICAgYmluYXJ5ID0gbW96aW5zdGFsbC5nZXRfYmluYXJ5
KHBhdGgsICJmaXJlZm94IikKKyAgICAgICAgZWxpZiBwbGF0Zm9ybSA9PSAibWFjIjoKKyAgICAg
ICAgICAgIGJpbmFyeSA9IGZpbmRfZXhlY3V0YWJsZSgiZmlyZWZveCIsIG9zLnBhdGguam9pbihw
YXRoLCAiRmlyZWZveCBOaWdodGx5LmFwcCIsICJDb250ZW50cyIsICJNYWNPUyIpKQorCisgICAg
ICAgIHJldHVybiBiaW5hcnkKKworICAgIGRlZiBmaW5kX2JpbmFyeShzZWxmLCB2ZW52X3BhdGg9
Tm9uZSk6CisgICAgICAgIGlmIHZlbnZfcGF0aCBpcyBOb25lOgorICAgICAgICAgICAgdmVudl9w
YXRoID0gb3MucGF0aC5qb2luKG9zLmdldGN3ZCgpLCB2ZW52X3BhdGgpCisKKyAgICAgICAgYmlu
YXJ5ID0gc2VsZi5maW5kX2JpbmFyeV9wYXRoKG9zLnBhdGguam9pbih2ZW52X3BhdGgsICJicm93
c2VycyIpKQorCisgICAgICAgIGlmIG5vdCBiaW5hcnkgYW5kIHVuYW1lWzBdID09ICJEYXJ3aW4i
OgorICAgICAgICAgICAgbWFjcGF0aHMgPSBbIi9BcHBsaWNhdGlvbnMvRmlyZWZveE5pZ2h0bHku
YXBwL0NvbnRlbnRzL01hY09TIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguZXhw
YW5kdXNlcigifi9BcHBsaWNhdGlvbnMvRmlyZWZveE5pZ2h0bHkuYXBwL0NvbnRlbnRzL01hY09T
IiksCisgICAgICAgICAgICAgICAgICAgICAgICAiL0FwcGxpY2F0aW9ucy9GaXJlZm94IERldmVs
b3BlciBFZGl0aW9uLmFwcC9Db250ZW50cy9NYWNPUyIsCisgICAgICAgICAgICAgICAgICAgICAg
ICBvcy5wYXRoLmV4cGFuZHVzZXIoIn4vQXBwbGljYXRpb25zL0ZpcmVmb3ggRGV2ZWxvcGVyIEVk
aXRpb24uYXBwL0NvbnRlbnRzL01hY09TIiksCisgICAgICAgICAgICAgICAgICAgICAgICAiL0Fw
cGxpY2F0aW9ucy9GaXJlZm94LmFwcC9Db250ZW50cy9NYWNPUyIsCisgICAgICAgICAgICAgICAg
ICAgICAgICBvcy5wYXRoLmV4cGFuZHVzZXIoIn4vQXBwbGljYXRpb25zL0ZpcmVmb3guYXBwL0Nv
bnRlbnRzL01hY09TIildCisgICAgICAgICAgICByZXR1cm4gZmluZF9leGVjdXRhYmxlKCJmaXJl
Zm94Iiwgb3MucGF0aHNlcC5qb2luKG1hY3BhdGhzKSkKKworICAgICAgICBpZiBiaW5hcnkgaXMg
Tm9uZToKKyAgICAgICAgICAgIHJldHVybiBmaW5kX2V4ZWN1dGFibGUoImZpcmVmb3giKQorCisg
ICAgICAgIHJldHVybiBiaW5hcnkKKworICAgIGRlZiBmaW5kX2NlcnR1dGlsKHNlbGYpOgorICAg
ICAgICBwYXRoID0gZmluZF9leGVjdXRhYmxlKCJjZXJ0dXRpbCIpCisgICAgICAgIGlmIHBhdGgg
aXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIGlmIG9zLnBhdGguc3Bs
aXRkcml2ZShwYXRoKVsxXS5zcGxpdChvcy5wYXRoLnNlcCkgPT0gWyIiLCAiV2luZG93cyIsICJz
eXN0ZW0zMiIsICJjZXJ0dXRpbC5leGUiXToKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAg
ICAgIHJldHVybiBwYXRoCisKKyAgICBkZWYgZmluZF93ZWJkcml2ZXIoc2VsZik6CisgICAgICAg
IHJldHVybiBmaW5kX2V4ZWN1dGFibGUoImdlY2tvZHJpdmVyIikKKworICAgIGRlZiBpbnN0YWxs
X3ByZWZzKHNlbGYsIGRlc3Q9Tm9uZSk6CisgICAgICAgIGlmIGRlc3QgaXMgTm9uZToKKyAgICAg
ICAgICAgIGRlc3QgPSBvcy5wd2QKKworICAgICAgICBkZXN0ID0gb3MucGF0aC5qb2luKGRlc3Qs
ICJwcm9maWxlcyIpCisgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhkZXN0KToKKyAgICAg
ICAgICAgIG9zLm1ha2VkaXJzKGRlc3QpCisgICAgICAgIHByZWZzX3BhdGggPSBvcy5wYXRoLmpv
aW4oZGVzdCwgInByZWZzX2dlbmVyYWwuanMiKQorCisgICAgICAgIG5vdyA9IGRhdGV0aW1lLm5v
dygpCisgICAgICAgIGlmIChub3Qgb3MucGF0aC5leGlzdHMocHJlZnNfcGF0aCkgb3IKKyAgICAg
ICAgICAgIChkYXRldGltZS5mcm9tdGltZXN0YW1wKG9zLnN0YXQocHJlZnNfcGF0aCkuc3RfbXRp
bWUpIDwKKyAgICAgICAgICAgICBub3cgLSB0aW1lZGVsdGEoZGF5cz0yKSkpOgorICAgICAgICAg
ICAgd2l0aCBvcGVuKHByZWZzX3BhdGgsICJ3YiIpIGFzIGY6CisgICAgICAgICAgICAgICAgcmVz
cCA9IGdldCgiaHR0cHM6Ly9oZy5tb3ppbGxhLm9yZy9tb3ppbGxhLWNlbnRyYWwvcmF3LWZpbGUv
dGlwL3Rlc3RpbmcvcHJvZmlsZXMvcHJlZnNfZ2VuZXJhbC5qcyIpCisgICAgICAgICAgICAgICAg
Zi53cml0ZShyZXNwLmNvbnRlbnQpCisKKyAgICAgICAgcmV0dXJuIGRlc3QKKworICAgIGRlZiBf
bGF0ZXN0X2dlY2tvZHJpdmVyX3ZlcnNpb24oc2VsZik6CisgICAgICAgICIiIkdldCBhbmQgcmV0
dXJuIGxhdGVzdCB2ZXJzaW9uIG51bWJlciBmb3IgZ2Vja29kcml2ZXIuIiIiCisgICAgICAgICMg
VGhpcyBpcyB1c2VkIHJhdGhlciB0aGFuIGFuIEFQSSBjYWxsIHRvIGF2b2lkIHJhdGUgbGltaXRz
CisgICAgICAgIHRhZ3MgPSBjYWxsKCJnaXQiLCAibHMtcmVtb3RlIiwgIi0tdGFncyIsICItLXJl
ZnMiLAorICAgICAgICAgICAgICAgICAgICAiaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvZ2Vj
a29kcml2ZXIuZ2l0IikKKyAgICAgICAgcmVsZWFzZV9yZSA9IHJlLmNvbXBpbGUoIi4qcmVmcy90
YWdzL3YoXGQrKVwuKFxkKylcLihcZCspIikKKyAgICAgICAgbGF0ZXN0X3JlbGVhc2UgPSAwCisg
ICAgICAgIGZvciBpdGVtIGluIHRhZ3Muc3BsaXQoIlxuIik6CisgICAgICAgICAgICBtID0gcmVs
ZWFzZV9yZS5tYXRjaChpdGVtKQorICAgICAgICAgICAgaWYgbToKKyAgICAgICAgICAgICAgICB2
ZXJzaW9uID0gW2ludChpdGVtKSBmb3IgaXRlbSBpbiBtLmdyb3VwcygpXQorICAgICAgICAgICAg
ICAgIGlmIHZlcnNpb24gPiBsYXRlc3RfcmVsZWFzZToKKyAgICAgICAgICAgICAgICAgICAgbGF0
ZXN0X3JlbGVhc2UgPSB2ZXJzaW9uCisgICAgICAgIGFzc2VydCBsYXRlc3RfcmVsZWFzZSAhPSAw
CisgICAgICAgIHJldHVybiAidiVzLiVzLiVzIiAlIHR1cGxlKHN0cihpdGVtKSBmb3IgaXRlbSBp
biBsYXRlc3RfcmVsZWFzZSkKKworICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxmLCBkZXN0
PU5vbmUpOgorICAgICAgICAiIiJJbnN0YWxsIGxhdGVzdCBHZWNrb2RyaXZlci4iIiIKKyAgICAg
ICAgaWYgZGVzdCBpcyBOb25lOgorICAgICAgICAgICAgZGVzdCA9IG9zLmdldGN3ZCgpCisKKyAg
ICAgICAgdmVyc2lvbiA9IHNlbGYuX2xhdGVzdF9nZWNrb2RyaXZlcl92ZXJzaW9uKCkKKyAgICAg
ICAgZm9ybWF0ID0gInppcCIgaWYgdW5hbWVbMF0gPT0gIldpbmRvd3MiIGVsc2UgInRhci5neiIK
KyAgICAgICAgbG9nZ2VyLmRlYnVnKCJMYXRlc3QgZ2Vja29kcml2ZXIgcmVsZWFzZSAlcyIgJSB2
ZXJzaW9uKQorICAgICAgICB1cmwgPSAoImh0dHBzOi8vZ2l0aHViLmNvbS9tb3ppbGxhL2dlY2tv
ZHJpdmVyL3JlbGVhc2VzL2Rvd25sb2FkLyVzL2dlY2tvZHJpdmVyLSVzLSVzLiVzIiAlCisgICAg
ICAgICAgICAgICAodmVyc2lvbiwgdmVyc2lvbiwgc2VsZi5wbGF0Zm9ybV9zdHJpbmdfZ2Vja29k
cml2ZXIoKSwgZm9ybWF0KSkKKyAgICAgICAgaWYgZm9ybWF0ID09ICJ6aXAiOgorICAgICAgICAg
ICAgdW56aXAoZ2V0KHVybCkucmF3LCBkZXN0PWRlc3QpCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICB1bnRhcihnZXQodXJsKS5yYXcsIGRlc3Q9ZGVzdCkKKyAgICAgICAgcmV0dXJuIGZpbmRf
ZXhlY3V0YWJsZShvcy5wYXRoLmpvaW4oZGVzdCwgImdlY2tvZHJpdmVyIikpCisKKyAgICBkZWYg
dmVyc2lvbihzZWxmLCByb290KToKKyAgICAgICAgIiIiUmV0cmlldmUgdGhlIHJlbGVhc2UgdmVy
c2lvbiBvZiB0aGUgaW5zdGFsbGVkIGJyb3dzZXIuIiIiCisgICAgICAgIHBsYXRmb3JtX2luZm8g
PSBSYXdDb25maWdQYXJzZXIoKQorCisgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4ocm9v
dCwgc2VsZi5wbGF0Zm9ybV9pbmkpLCAiciIpIGFzIGZwOgorICAgICAgICAgICAgcGxhdGZvcm1f
aW5mby5yZWFkZnAoQnl0ZXNJTyhmcC5yZWFkKCkpKQorICAgICAgICAgICAgcmV0dXJuICJCdWls
ZElEICVzOyBTb3VyY2VTdGFtcCAlcyIgJSAoCisgICAgICAgICAgICAgICAgcGxhdGZvcm1faW5m
by5nZXQoIkJ1aWxkIiwgIkJ1aWxkSUQiKSwKKyAgICAgICAgICAgICAgICBwbGF0Zm9ybV9pbmZv
LmdldCgiQnVpbGQiLCAiU291cmNlU3RhbXAiKSkKKworCitjbGFzcyBDaHJvbWUoQnJvd3Nlcik6
CisgICAgIiIiQ2hyb21lLXNwZWNpZmljIGludGVyZmFjZS4KKworICAgIEluY2x1ZGVzIHdlYmRy
aXZlciBpbnN0YWxsYXRpb24sIGFuZCB3cHRydW5uZXIgc2V0dXAgbWV0aG9kcy4KKyAgICAiIiIK
KworICAgIHByb2R1Y3QgPSAiY2hyb21lIgorICAgIGJpbmFyeSA9ICIvdXNyL2Jpbi9nb29nbGUt
Y2hyb21lIgorICAgIHJlcXVpcmVtZW50cyA9ICJyZXF1aXJlbWVudHNfY2hyb21lLnR4dCIKKwor
ICAgIGRlZiBpbnN0YWxsKHNlbGYsIGRlc3Q9Tm9uZSk6CisgICAgICAgIHJhaXNlIE5vdEltcGxl
bWVudGVkRXJyb3IKKworICAgIGRlZiBwbGF0Zm9ybV9zdHJpbmcoc2VsZik6CisgICAgICAgIHBs
YXRmb3JtID0geworICAgICAgICAgICAgIkxpbnV4IjogImxpbnV4IiwKKyAgICAgICAgICAgICJX
aW5kb3dzIjogIndpbiIsCisgICAgICAgICAgICAiRGFyd2luIjogIm1hYyIKKyAgICAgICAgfS5n
ZXQodW5hbWVbMF0pCisKKyAgICAgICAgaWYgcGxhdGZvcm0gaXMgTm9uZToKKyAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoIlVuYWJsZSB0byBjb25zdHJ1Y3QgYSB2YWxpZCBDaHJvbWUgcGFj
a2FnZSBuYW1lIGZvciBjdXJyZW50IHBsYXRmb3JtIikKKworICAgICAgICBpZiBwbGF0Zm9ybSA9
PSAibGludXgiOgorICAgICAgICAgICAgYml0cyA9ICI2NCIgaWYgdW5hbWVbNF0gPT0gIng4Nl82
NCIgZWxzZSAiMzIiCisgICAgICAgIGVsaWYgcGxhdGZvcm0gPT0gIm1hYyI6CisgICAgICAgICAg
ICBiaXRzID0gIjY0IgorICAgICAgICBlbGlmIHBsYXRmb3JtID09ICJ3aW4iOgorICAgICAgICAg
ICAgYml0cyA9ICIzMiIKKworICAgICAgICByZXR1cm4gIiVzJXMiICUgKHBsYXRmb3JtLCBiaXRz
KQorCisgICAgZGVmIGZpbmRfYmluYXJ5KHNlbGYpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1l
bnRlZEVycm9yCisKKyAgICBkZWYgZmluZF93ZWJkcml2ZXIoc2VsZik6CisgICAgICAgIHJldHVy
biBmaW5kX2V4ZWN1dGFibGUoImNocm9tZWRyaXZlciIpCisKKyAgICBkZWYgaW5zdGFsbF93ZWJk
cml2ZXIoc2VsZiwgZGVzdD1Ob25lKToKKyAgICAgICAgaWYgZGVzdCBpcyBOb25lOgorICAgICAg
ICAgICAgZGVzdCA9IG9zLnB3ZAorICAgICAgICBsYXRlc3QgPSBnZXQoImh0dHA6Ly9jaHJvbWVk
cml2ZXIuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9MQVRFU1RfUkVMRUFTRSIpLnRleHQuc3RyaXAo
KQorICAgICAgICB1cmwgPSAiaHR0cDovL2Nocm9tZWRyaXZlci5zdG9yYWdlLmdvb2dsZWFwaXMu
Y29tLyVzL2Nocm9tZWRyaXZlcl8lcy56aXAiICUgKGxhdGVzdCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLnBsYXRmb3JtX3N0cmluZygpKQorICAgICAgICB1bnppcChnZXQodXJs
KS5yYXcsIGRlc3QpCisKKyAgICAgICAgcGF0aCA9IGZpbmRfZXhlY3V0YWJsZSgiY2hyb21lZHJp
dmVyIiwgZGVzdCkKKyAgICAgICAgc3QgPSBvcy5zdGF0KHBhdGgpCisgICAgICAgIG9zLmNobW9k
KHBhdGgsIHN0LnN0X21vZGUgfCBzdGF0LlNfSUVYRUMpCisgICAgICAgIHJldHVybiBwYXRoCisK
KyAgICBkZWYgdmVyc2lvbihzZWxmLCByb290KToKKyAgICAgICAgb3V0cHV0ID0gY2FsbChzZWxm
LmJpbmFyeSwgIi0tdmVyc2lvbiIpCisgICAgICAgIHJldHVybiByZS5zZWFyY2gociJbMC05XC5d
KyggW2Etel0rKT8kIiwgb3V0cHV0LnN0cmlwKCkpLmdyb3VwKDApCisKKworY2xhc3MgQ2hyb21l
QW5kcm9pZChCcm93c2VyKToKKyAgICAiIiJDaHJvbWUtc3BlY2lmaWMgaW50ZXJmYWNlIGZvciBB
bmRyb2lkLgorCisgICAgSW5jbHVkZXMgd2ViZHJpdmVyIGluc3RhbGxhdGlvbi4KKyAgICAiIiIK
KworICAgIHByb2R1Y3QgPSAiY2hyb21lX2FuZHJvaWQiCisgICAgcmVxdWlyZW1lbnRzID0gInJl
cXVpcmVtZW50c19jaHJvbWVfYW5kcm9pZC50eHQiCisKKyAgICBkZWYgaW5zdGFsbChzZWxmLCBk
ZXN0PU5vbmUpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBkZWYg
ZmluZF9iaW5hcnkoc2VsZik6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKwor
ICAgIGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIGZpbmRfZXhlY3V0
YWJsZSgiY2hyb21lZHJpdmVyIikKKworICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxmLCBk
ZXN0PU5vbmUpOgorICAgICAgICBjaHJvbWUgPSBDaHJvbWUoKQorICAgICAgICByZXR1cm4gY2hy
b21lLmluc3RhbGxfd2ViZHJpdmVyKGRlc3QpCisKKyAgICBkZWYgdmVyc2lvbihzZWxmLCByb290
KToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisKK2NsYXNzIE9wZXJhKEJy
b3dzZXIpOgorICAgICIiIk9wZXJhLXNwZWNpZmljIGludGVyZmFjZS4KKworICAgIEluY2x1ZGVz
IHdlYmRyaXZlciBpbnN0YWxsYXRpb24sIGFuZCB3cHRydW5uZXIgc2V0dXAgbWV0aG9kcy4KKyAg
ICAiIiIKKworICAgIHByb2R1Y3QgPSAib3BlcmEiCisgICAgYmluYXJ5ID0gIi91c3IvYmluL29w
ZXJhIgorICAgIHJlcXVpcmVtZW50cyA9ICJyZXF1aXJlbWVudHNfb3BlcmEudHh0IgorCisgICAg
ZGVmIGluc3RhbGwoc2VsZiwgZGVzdD1Ob25lKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50
ZWRFcnJvcgorCisgICAgZGVmIHBsYXRmb3JtX3N0cmluZyhzZWxmKToKKyAgICAgICAgcGxhdGZv
cm0gPSB7CisgICAgICAgICAgICAiTGludXgiOiAibGludXgiLAorICAgICAgICAgICAgIldpbmRv
d3MiOiAid2luIiwKKyAgICAgICAgICAgICJEYXJ3aW4iOiAibWFjIgorICAgICAgICB9LmdldCh1
bmFtZVswXSkKKworICAgICAgICBpZiBwbGF0Zm9ybSBpcyBOb25lOgorICAgICAgICAgICAgcmFp
c2UgVmFsdWVFcnJvcigiVW5hYmxlIHRvIGNvbnN0cnVjdCBhIHZhbGlkIE9wZXJhIHBhY2thZ2Ug
bmFtZSBmb3IgY3VycmVudCBwbGF0Zm9ybSIpCisKKyAgICAgICAgaWYgcGxhdGZvcm0gPT0gImxp
bnV4IjoKKyAgICAgICAgICAgIGJpdHMgPSAiNjQiIGlmIHVuYW1lWzRdID09ICJ4ODZfNjQiIGVs
c2UgIjMyIgorICAgICAgICBlbGlmIHBsYXRmb3JtID09ICJtYWMiOgorICAgICAgICAgICAgYml0
cyA9ICI2NCIKKyAgICAgICAgZWxpZiBwbGF0Zm9ybSA9PSAid2luIjoKKyAgICAgICAgICAgIGJp
dHMgPSAiMzIiCisKKyAgICAgICAgcmV0dXJuICIlcyVzIiAlIChwbGF0Zm9ybSwgYml0cykKKwor
ICAgIGRlZiBmaW5kX2JpbmFyeShzZWxmKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRF
cnJvcgorCisgICAgZGVmIGZpbmRfd2ViZHJpdmVyKHNlbGYpOgorICAgICAgICByZXR1cm4gZmlu
ZF9leGVjdXRhYmxlKCJvcGVyYWRyaXZlciIpCisKKyAgICBkZWYgaW5zdGFsbF93ZWJkcml2ZXIo
c2VsZiwgZGVzdD1Ob25lKToKKyAgICAgICAgaWYgZGVzdCBpcyBOb25lOgorICAgICAgICAgICAg
ZGVzdCA9IG9zLnB3ZAorICAgICAgICBsYXRlc3QgPSBnZXQoImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vcmVwb3Mvb3BlcmFzb2Z0d2FyZS9vcGVyYWNocm9taXVtZHJpdmVyL3JlbGVhc2VzL2xhdGVz
dCIpLmpzb24oKVsidGFnX25hbWUiXQorICAgICAgICB1cmwgPSAiaHR0cHM6Ly9naXRodWIuY29t
L29wZXJhc29mdHdhcmUvb3BlcmFjaHJvbWl1bWRyaXZlci9yZWxlYXNlcy9kb3dubG9hZC8lcy9v
cGVyYWRyaXZlcl8lcy56aXAiICUgKGxhdGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBsYXRmb3JtX3N0cmluZygpKQorICAg
ICAgICB1bnppcChnZXQodXJsKS5yYXcsIGRlc3QpCisKKyAgICAgICAgb3BlcmFkcml2ZXJfZGly
ID0gb3MucGF0aC5qb2luKGRlc3QsICJvcGVyYWRyaXZlcl8lcyIgJSBzZWxmLnBsYXRmb3JtX3N0
cmluZygpKQorICAgICAgICBzaHV0aWwubW92ZShvcy5wYXRoLmpvaW4ob3BlcmFkcml2ZXJfZGly
LCAib3BlcmFkcml2ZXIiKSwgZGVzdCkKKyAgICAgICAgc2h1dGlsLnJtdHJlZShvcGVyYWRyaXZl
cl9kaXIpCisKKyAgICAgICAgcGF0aCA9IGZpbmRfZXhlY3V0YWJsZSgib3BlcmFkcml2ZXIiKQor
ICAgICAgICBzdCA9IG9zLnN0YXQocGF0aCkKKyAgICAgICAgb3MuY2htb2QocGF0aCwgc3Quc3Rf
bW9kZSB8IHN0YXQuU19JRVhFQykKKyAgICAgICAgcmV0dXJuIHBhdGgKKworICAgIGRlZiB2ZXJz
aW9uKHNlbGYsIHJvb3QpOgorICAgICAgICAiIiJSZXRyaWV2ZSB0aGUgcmVsZWFzZSB2ZXJzaW9u
IG9mIHRoZSBpbnN0YWxsZWQgYnJvd3Nlci4iIiIKKyAgICAgICAgb3V0cHV0ID0gY2FsbChzZWxm
LmJpbmFyeSwgIi0tdmVyc2lvbiIpCisgICAgICAgIHJldHVybiByZS5zZWFyY2gociJbMC05XC5d
KyggW2Etel0rKT8kIiwgb3V0cHV0LnN0cmlwKCkpLmdyb3VwKDApCisKKworY2xhc3MgRWRnZShC
cm93c2VyKToKKyAgICAiIiJFZGdlLXNwZWNpZmljIGludGVyZmFjZS4iIiIKKworICAgIHByb2R1
Y3QgPSAiZWRnZSIKKyAgICByZXF1aXJlbWVudHMgPSAicmVxdWlyZW1lbnRzX2VkZ2UudHh0Igor
CisgICAgZGVmIGluc3RhbGwoc2VsZiwgZGVzdD1Ob25lKToKKyAgICAgICAgcmFpc2UgTm90SW1w
bGVtZW50ZWRFcnJvcgorCisgICAgZGVmIGZpbmRfYmluYXJ5KHNlbGYpOgorICAgICAgICByYWlz
ZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBkZWYgZmluZF93ZWJkcml2ZXIoc2VsZik6Cisg
ICAgICAgIHJldHVybiBmaW5kX2V4ZWN1dGFibGUoIk1pY3Jvc29mdFdlYkRyaXZlciIpCisKKyAg
ICBkZWYgaW5zdGFsbF93ZWJkcml2ZXIoc2VsZiwgZGVzdD1Ob25lKToKKyAgICAgICAgcmFpc2Ug
Tm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAgZGVmIHZlcnNpb24oc2VsZiwgcm9vdCk6CisgICAg
ICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworCitjbGFzcyBJbnRlcm5ldEV4cGxvcmVy
KEJyb3dzZXIpOgorICAgICIiIkludGVybmV0IEV4cGxvcmVyLXNwZWNpZmljIGludGVyZmFjZS4i
IiIKKworICAgIHByb2R1Y3QgPSAiaWUiCisgICAgcmVxdWlyZW1lbnRzID0gInJlcXVpcmVtZW50
c19pZS50eHQiCisKKyAgICBkZWYgaW5zdGFsbChzZWxmLCBkZXN0PU5vbmUpOgorICAgICAgICBy
YWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBkZWYgZmluZF9iaW5hcnkoc2VsZik6Cisg
ICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAgIGRlZiBmaW5kX3dlYmRyaXZl
cihzZWxmKToKKyAgICAgICAgcmV0dXJuIGZpbmRfZXhlY3V0YWJsZSgiSUVEcml2ZXJTZXJ2ZXIu
ZXhlIikKKworICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxmLCBkZXN0PU5vbmUpOgorICAg
ICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBkZWYgdmVyc2lvbihzZWxmLCBy
b290KToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisKK2NsYXNzIFNhZmFy
aShCcm93c2VyKToKKyAgICAiIiJTYWZhcmktc3BlY2lmaWMgaW50ZXJmYWNlLgorCisgICAgSW5j
bHVkZXMgaW5zdGFsbGF0aW9uLCB3ZWJkcml2ZXIgaW5zdGFsbGF0aW9uLCBhbmQgd3B0cnVubmVy
IHNldHVwIG1ldGhvZHMuCisgICAgIiIiCisKKyAgICBwcm9kdWN0ID0gInNhZmFyaSIKKyAgICBy
ZXF1aXJlbWVudHMgPSAicmVxdWlyZW1lbnRzX3NhZmFyaS50eHQiCisKKyAgICBkZWYgaW5zdGFs
bChzZWxmLCBkZXN0PU5vbmUpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisK
KyAgICBkZWYgZmluZF9iaW5hcnkoc2VsZik6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVk
RXJyb3IKKworICAgIGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIGZp
bmRfZXhlY3V0YWJsZSgic2FmYXJpZHJpdmVyIikKKworICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZl
cihzZWxmKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAgZGVmIHZl
cnNpb24oc2VsZiwgcm9vdCk6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKwor
CitjbGFzcyBTZXJ2byhCcm93c2VyKToKKyAgICAiIiJTZXJ2by1zcGVjaWZpYyBpbnRlcmZhY2Uu
IiIiCisKKyAgICBwcm9kdWN0ID0gInNlcnZvIgorICAgIHJlcXVpcmVtZW50cyA9ICJyZXF1aXJl
bWVudHNfc2Vydm8udHh0IgorCisgICAgZGVmIHBsYXRmb3JtX2NvbXBvbmVudHMoc2VsZik6Cisg
ICAgICAgIHBsYXRmb3JtID0geworICAgICAgICAgICAgIkxpbnV4IjogImxpbnV4IiwKKyAgICAg
ICAgICAgICJXaW5kb3dzIjogIndpbiIsCisgICAgICAgICAgICAiRGFyd2luIjogIm1hYyIKKyAg
ICAgICAgfS5nZXQodW5hbWVbMF0pCisKKyAgICAgICAgaWYgcGxhdGZvcm0gaXMgTm9uZToKKyAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlVuYWJsZSB0byBjb25zdHJ1Y3QgYSB2YWxpZCBT
ZXJ2byBwYWNrYWdlIGZvciBjdXJyZW50IHBsYXRmb3JtIikKKworICAgICAgICBpZiBwbGF0Zm9y
bSA9PSAibGludXgiOgorICAgICAgICAgICAgZXh0ZW5zaW9uID0gIi50YXIuZ3oiCisgICAgICAg
ICAgICBkZWNvbXByZXNzID0gdW50YXIKKyAgICAgICAgZWxpZiBwbGF0Zm9ybSA9PSAid2luIiBv
ciBwbGF0Zm9ybSA9PSAibWFjIjoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlVuYWJs
ZSB0byBjb25zdHJ1Y3QgYSB2YWxpZCBTZXJ2byBwYWNrYWdlIGZvciBjdXJyZW50IHBsYXRmb3Jt
IikKKworICAgICAgICByZXR1cm4gKHBsYXRmb3JtLCBleHRlbnNpb24sIGRlY29tcHJlc3MpCisK
KyAgICBkZWYgaW5zdGFsbChzZWxmLCBkZXN0PU5vbmUpOgorICAgICAgICAiIiJJbnN0YWxsIGxh
dGVzdCBCcm93c2VyIEVuZ2luZS4iIiIKKyAgICAgICAgaWYgZGVzdCBpcyBOb25lOgorICAgICAg
ICAgICAgZGVzdCA9IG9zLnB3ZAorCisgICAgICAgIHBsYXRmb3JtLCBleHRlbnNpb24sIGRlY29t
cHJlc3MgPSBzZWxmLnBsYXRmb3JtX2NvbXBvbmVudHMoKQorICAgICAgICB1cmwgPSAiaHR0cHM6
Ly9kb3dubG9hZC5zZXJ2by5vcmcvbmlnaHRseS8lcy9zZXJ2by1sYXRlc3QlcyIgJSAocGxhdGZv
cm0sIGV4dGVuc2lvbikKKworICAgICAgICBkZWNvbXByZXNzKGdldCh1cmwpLnJhdywgZGVzdD1k
ZXN0KQorICAgICAgICBwYXRoID0gZmluZF9leGVjdXRhYmxlKCJzZXJ2byIsIG9zLnBhdGguam9p
bihkZXN0LCAic2Vydm8iKSkKKyAgICAgICAgc3QgPSBvcy5zdGF0KHBhdGgpCisgICAgICAgIG9z
LmNobW9kKHBhdGgsIHN0LnN0X21vZGUgfCBzdGF0LlNfSUVYRUMpCisgICAgICAgIHJldHVybiBw
YXRoCisKKyAgICBkZWYgZmluZF9iaW5hcnkoc2VsZik6CisgICAgICAgIHJldHVybiBmaW5kX2V4
ZWN1dGFibGUoInNlcnZvIikKKworICAgIGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmKToKKyAgICAg
ICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxmLCBkZXN0PU5v
bmUpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBkZWYgdmVyc2lv
bihzZWxmLCByb290KToKKyAgICAgICAgIiIiUmV0cmlldmUgdGhlIHJlbGVhc2UgdmVyc2lvbiBv
ZiB0aGUgaW5zdGFsbGVkIGJyb3dzZXIuIiIiCisgICAgICAgIG91dHB1dCA9IGNhbGwoc2VsZi5i
aW5hcnksICItLXZlcnNpb24iKQorICAgICAgICByZXR1cm4gcmUuc2VhcmNoKHIiWzAtOVwuXSso
IFthLXpdKyk/JCIsIG91dHB1dC5zdHJpcCgpKS5ncm91cCgwKQorCisKK2NsYXNzIFNhdWNlKEJy
b3dzZXIpOgorICAgICIiIlNhdWNlLXNwZWNpZmljIGludGVyZmFjZS4iIiIKKworICAgIHByb2R1
Y3QgPSAic2F1Y2UiCisgICAgcmVxdWlyZW1lbnRzID0gInJlcXVpcmVtZW50c19zYXVjZS50eHQi
CisKKyAgICBkZWYgaW5zdGFsbChzZWxmLCBkZXN0PU5vbmUpOgorICAgICAgICByYWlzZSBOb3RJ
bXBsZW1lbnRlZEVycm9yCisKKyAgICBkZWYgZmluZF9iaW5hcnkoc2VsZik6CisgICAgICAgIHJh
aXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAgIGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmKToK
KyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAgZGVmIGluc3RhbGxfd2Vi
ZHJpdmVyKHNlbGYsIGRlc3Q9Tm9uZSk6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJy
b3IKKworICAgIGRlZiB2ZXJzaW9uKHNlbGYsIHJvb3QpOgorICAgICAgICByZXR1cm4gTm9uZQor
CitjbGFzcyBXZWJLaXQoQnJvd3Nlcik6CisgICAgIiIiV2ViS2l0LXNwZWNpZmljIGludGVyZmFj
ZS4iIiIKKworICAgIHByb2R1Y3QgPSAid2Via2l0IgorICAgIHJlcXVpcmVtZW50cyA9ICJyZXF1
aXJlbWVudHNfd2Via2l0LnR4dCIKKworICAgIGRlZiBpbnN0YWxsKHNlbGYsIGRlc3Q9Tm9uZSk6
CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAgIGRlZiBmaW5kX2JpbmFy
eShzZWxmLCBwYXRoPU5vbmUpOgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgZGVmIGZpbmRf
d2ViZHJpdmVyKHNlbGYpOgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgZGVmIGluc3RhbGxf
d2ViZHJpdmVyKHNlbGYpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAg
ICBkZWYgdmVyc2lvbihzZWxmLCByb290KToKKyAgICAgICAgcmV0dXJuIE5vbmUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
L2NvbW1hbmRzLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdC9jb21tYW5kcy5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlYTZiMjUyNzZmZjQ4MTM0
MGI1NGI0YzcyMzQwYTM3OTA0MDM4MzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9jb21tYW5kcy5qc29uCkBA
IC0wLDAgKzEsMTUgQEAKK3sKKyAgICAicnVuIjogeyJwYXRoIjogInJ1bi5weSIsICJzY3JpcHQi
OiAicnVuIiwgInBhcnNlciI6ICJjcmVhdGVfcGFyc2VyIiwgImhlbHAiOiAiUnVuIHRlc3RzIGlu
IGEgYnJvd3NlciIsCisgICAgICAgICAgICAidmlydHVhbGVudiI6IHRydWUsICJpbnN0YWxsIjog
WyJyZXF1ZXN0cyJdLCAicmVxdWlyZW1lbnRzIjogWyIuLi93cHRydW5uZXIvcmVxdWlyZW1lbnRz
LnR4dCJdfSwKKyAgICAidXBkYXRlLWV4cGVjdGF0aW9ucyI6IHsicGF0aCI6ICJ1cGRhdGUucHki
LCAic2NyaXB0IjogInVwZGF0ZV9leHBlY3RhdGlvbnMiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJwYXJzZXIiOiAiY3JlYXRlX3BhcnNlcl91cGRhdGUiLCAiaGVscCI6ICJVcGRhdGUg
ZXhwZWN0YXRpb25zIGZpbGVzIGZyb20gcmF3IGxvZ3MuIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAidmlydHVhbGVudiI6IHRydWUsICJpbnN0YWxsIjogWyJyZXF1ZXN0cyJdLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJyZXF1aXJlbWVudHMiOiBbIi4uL3dwdHJ1bm5lci9y
ZXF1aXJlbWVudHMudHh0Il19LAorICAgICJmaWxlcy1jaGFuZ2VkIjogeyJwYXRoIjogInRlc3Rm
aWxlcy5weSIsICJzY3JpcHQiOiAicnVuX2NoYW5nZWRfZmlsZXMiLCAicGFyc2VyIjogImdldF9w
YXJzZXIiLAorICAgICAgICAgICAgICAgICAgICAgICJoZWxwIjogIkdldCBhIGxpc3Qgb2YgZmls
ZXMgdGhhdCBoYXZlIGNoYW5nZWQiLCAidmlydHVhbGVudiI6IGZhbHNlfSwKKyAgICAidGVzdHMt
YWZmZWN0ZWQiOiB7InBhdGgiOiAidGVzdGZpbGVzLnB5IiwgInNjcmlwdCI6ICJydW5fdGVzdHNf
YWZmZWN0ZWQiLCAicGFyc2VyIjogImdldF9wYXJzZXJfYWZmZWN0ZWQiLAorICAgICAgICAgICAg
ICAgICAgICAgICAiaGVscCI6ICJHZXQgYSBsaXN0IG9mIHRlc3RzIGFmZmVjdGVkIGJ5IGNoYW5n
ZXMiLCAidmlydHVhbGVudiI6IGZhbHNlfSwKKyAgICAiaW5zdGFsbCI6IHsicGF0aCI6ICJpbnN0
YWxsLnB5IiwgInNjcmlwdCI6ICJydW4iLCAicGFyc2VyIjogImdldF9wYXJzZXIiLCAiaGVscCI6
ICJJbnN0YWxsIGJyb3dzZXIgY29tcG9uZW50cyIsCisgICAgICAgICAgICAgICAgImluc3RhbGwi
OiBbIm1vemRvd25sb2FkIiwgIm1vemluc3RhbGwiXX0sCisgICAgImJyYW5jaC1wb2ludCI6IHsi
cGF0aCI6ICJ0ZXN0ZmlsZXMucHkiLCAic2NyaXB0IjogImRpc3BsYXlfYnJhbmNoX3BvaW50Iiwg
InBhcnNlciI6IG51bGwsICJoZWxwIjogIlByaW50IGJyYW5jaCBwb2ludCBmcm9tIG1hc3RlciIs
ICJ2aXJ0dWFsZW52IjogZmFsc2V9Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9pbnN0YWxsLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvaW5zdGFsbC5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kNzc5NjUxYzk5MGUyYjdiYTc5OGYwODZlODBmNmRjOGJlYWM1MjVkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHQvaW5zdGFsbC5weQpAQCAtMCwwICsxLDQxIEBACitpbXBvcnQgYXJncGFyc2UK
K2ltcG9ydCBicm93c2VyCitpbXBvcnQgc3lzCisKK2RlZiBnZXRfcGFyc2VyKCk6CisgICAgcGFy
c2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQo
J2Jyb3dzZXInLCBjaG9pY2VzPVsnZmlyZWZveCcsICdjaHJvbWUnXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9J25hbWUgb2Ygd2ViIGJyb3dzZXIgcHJvZHVjdCcpCisgICAgcGFyc2Vy
LmFkZF9hcmd1bWVudCgnY29tcG9uZW50JywgY2hvaWNlcz1bJ2Jyb3dzZXInLCAnd2ViZHJpdmVy
J10sCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSduYW1lIG9mIGNvbXBvbmVudCcpCisg
ICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLWQnLCAnLS1kZXN0aW5hdGlvbicsCisgICAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSdmaWxlc3lzdGVtIGRpcmVjdG9yeSB0byBwbGFjZSB0aGUgY29t
cG9uZW50JykKKyAgICByZXR1cm4gcGFyc2VyCisKKworZGVmIHJ1bih2ZW52LCAqKmt3YXJncyk6
CisgICAgYnJvd3NlciA9IGt3YXJnc1siYnJvd3NlciJdCisgICAgZGVzdGluYXRpb24gPSBrd2Fy
Z3NbImRlc3RpbmF0aW9uIl0KKworICAgIGlmIGRlc3RpbmF0aW9uIGlzIE5vbmU6CisgICAgICAg
IGlmIHZlbnY6CisgICAgICAgICAgICBpZiBrd2FyZ3NbImNvbXBvbmVudCJdID09ICJicm93c2Vy
IjoKKyAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9IHZlbnYucGF0aAorICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICBkZXN0aW5hdGlvbiA9IHZlbnYuYmluX3BhdGgKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIGFyZ3BhcnNlLkFyZ3VtZW50RXJyb3IoTm9uZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIC0tZGVzdGluYXRp
b24gYXJndW1lbnQsIGFuZCBubyBkZWZhdWx0IGZvciB0aGUgZW52aXJvbm1lbnQiKQorCisgICAg
aW5zdGFsbChicm93c2VyLCBrd2FyZ3NbImNvbXBvbmVudCJdLCBkZXN0aW5hdGlvbikKKworCitk
ZWYgaW5zdGFsbChuYW1lLCBjb21wb25lbnQsIGRlc3RpbmF0aW9uKToKKyAgICBpZiBjb21wb25l
bnQgPT0gJ3dlYmRyaXZlcic6CisgICAgICAgIG1ldGhvZCA9ICdpbnN0YWxsX3dlYmRyaXZlcicK
KyAgICBlbHNlOgorICAgICAgICBtZXRob2QgPSAnaW5zdGFsbCcKKworICAgIHN1YmNsYXNzID0g
Z2V0YXR0cihicm93c2VyLCBuYW1lLnRpdGxlKCkpCisgICAgc3lzLnN0ZG91dC53cml0ZSgnTm93
IGluc3RhbGxpbmcgJXMgJXMuLi5cbicgJSAobmFtZSwgY29tcG9uZW50KSkKKyAgICBnZXRhdHRy
KHN1YmNsYXNzKCksIG1ldGhvZCkoZGVzdD1kZXN0aW5hdGlvbikKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L21hcmtkb3du
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHQvbWFya2Rvd24ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGI1ZmY4MDc5ZGYwODU2MWVkNGYwMTRkZWE4N2E1
OGMzNTg2OTJjZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L21hcmtkb3duLnB5CkBAIC0wLDAgKzEsNDAgQEAK
K2RlZiBmb3JtYXRfY29tbWVudF90aXRsZShwcm9kdWN0KToKKyAgICAiIiJQcm9kdWNlIGEgTWFy
a2Rvd24tZm9ybWF0dGVkIHN0cmluZyBiYXNlZCBvbiBhIGdpdmVuICJwcm9kdWN0Ii0tYSBzdHJp
bmcKKyAgICBjb250YWluaW5nIGEgYnJvd3NlciBpZGVudGlmaWVyIG9wdGlvbmFsbHkgZm9sbG93
ZWQgYnkgYSBjb2xvbiBhbmQgYQorICAgIHJlbGVhc2UgY2hhbm5lbC4gKEZvciBleGFtcGxlOiAi
ZmlyZWZveCIgb3IgImNocm9tZTpkZXYiLikgVGhlIGdlbmVyYXRlZAorICAgIHRpdGxlIHN0cmlu
ZyBpcyB1c2VkIGJvdGggdG8gY3JlYXRlIG5ldyBjb21tZW50cyBhbmQgdG8gbG9jYXRlIChhbmQK
KyAgICBzdWJzZXF1ZW50bHkgdXBkYXRlKSBwcmV2aW91c2x5LXN1Ym1pdHRlZCBjb21tZW50cy4i
IiIKKyAgICBwYXJ0cyA9IHByb2R1Y3Quc3BsaXQoIjoiKQorICAgIHRpdGxlID0gcGFydHNbMF0u
dGl0bGUoKQorCisgICAgaWYgbGVuKHBhcnRzKSA+IDE6CisgICAgICAgIHRpdGxlICs9ICIgKCVz
KSIgJSBwYXJ0c1sxXQorCisgICAgcmV0dXJuICIjICVzICMiICUgdGl0bGUKKworCitkZWYgbWFy
a2Rvd25fYWRqdXN0KHMpOgorICAgICIiIkVzY2FwZSBwcm9ibGVtYXRpYyBtYXJrZG93biBzZXF1
ZW5jZXMuIiIiCisgICAgcyA9IHMucmVwbGFjZSgnXHQnLCB1J1xcdCcpCisgICAgcyA9IHMucmVw
bGFjZSgnXG4nLCB1J1xcbicpCisgICAgcyA9IHMucmVwbGFjZSgnXHInLCB1J1xccicpCisgICAg
cyA9IHMucmVwbGFjZSgnYCcsIHUnJykKKyAgICBzID0gcy5yZXBsYWNlKCd8JywgdSdcXHwnKQor
ICAgIHJldHVybiBzCisKKworZGVmIHRhYmxlKGhlYWRpbmdzLCBkYXRhLCBsb2cpOgorICAgICIi
IkNyZWF0ZSBhbmQgbG9nIGRhdGEgdG8gc3BlY2lmaWVkIGxvZ2dlciBpbiB0YWJ1bGFyIGZvcm1h
dC4iIiIKKyAgICBjb2xzID0gcmFuZ2UobGVuKGhlYWRpbmdzKSkKKyAgICBhc3NlcnQgYWxsKGxl
bihpdGVtKSA9PSBsZW4oY29scykgZm9yIGl0ZW0gaW4gZGF0YSkKKyAgICBtYXhfd2lkdGhzID0g
cmVkdWNlKGxhbWJkYSBwcmV2LCBjdXI6IFsobGVuKGN1cltpXSkgKyAyKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsZW4oY3VyW2ldKSArIDIpID4gcHJl
dltpXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgcHJl
dltpXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGlu
IGNvbHNdLAorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIFtsZW4oaXRlbSkgKyAyIGZvciBpdGVtIGluIGhlYWRpbmdzXSkKKyAgICBsb2coInwl
c3wiICUgInwiLmpvaW4oaXRlbS5jZW50ZXIobWF4X3dpZHRoc1tpXSkgZm9yIGksIGl0ZW0gaW4g
ZW51bWVyYXRlKGhlYWRpbmdzKSkpCisgICAgbG9nKCJ8JXN8IiAlICJ8Ii5qb2luKCItIiAqIG1h
eF93aWR0aHNbaV0gZm9yIGkgaW4gY29scykpCisgICAgZm9yIHJvdyBpbiBkYXRhOgorICAgICAg
ICBsb2coInwlc3wiICUgInwiLmpvaW4oIiAlcyIgJSByb3dbaV0ubGp1c3QobWF4X3dpZHRoc1tp
XSAtIDEpIGZvciBpIGluIGNvbHMpKQorICAgIGxvZygiIikKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3BhdGhzIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcGF0aHMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGVmMTNjOTZlMzhjNDZhMWJmMDYzNjc5MmE5OTMzMTI2ZDFjYWQwNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0L3BhdGhzCkBAIC0wLDAgKzEsNSBAQAordG9vbHMvY2kvCit0b29scy9saW50
LwordG9vbHMvbWFuaWZlc3QvCit0b29scy9zZXJ2ZS8KK3Rvb2xzL3dwdC8KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Jl
cXVpcmVtZW50cy50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdC9yZXF1aXJlbWVudHMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3MWJhZjdlMjNmMTZm
NjBiNjQ2OWQzMDg5NzI1ZmM2ZmFkNGRmNjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9yZXF1aXJlbWVudHMu
dHh0CkBAIC0wLDAgKzEgQEAKK3JlcXVlc3RzPT0yLjE4LjQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3J1bi5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3J1bi5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yYjg3MmU2ZjhmOTRkMGMzZmU1MThiNGIzOWY5ZjUxZDhkODYxYmQ2Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHQvcnVuLnB5CkBAIC0wLDAgKzEsNDg2IEBACitpbXBvcnQgYXJncGFyc2UK
K2ltcG9ydCBvcworaW1wb3J0IHBsYXRmb3JtCitpbXBvcnQgc2h1dGlsCitpbXBvcnQgc3VicHJv
Y2VzcworaW1wb3J0IHN5cworaW1wb3J0IHRhcmZpbGUKK2Zyb20gZGlzdHV0aWxzLnNwYXduIGlt
cG9ydCBmaW5kX2V4ZWN1dGFibGUKKword3B0X3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0
aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksIG9zLnBhcmRpciwgb3MucGFyZGlyKSkK
K3N5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKHdwdF9yb290
LCAidG9vbHMiKSkpCisKK2Zyb20gLiBpbXBvcnQgYnJvd3NlciwgdXRpbHMsIHZpcnR1YWxlbnYK
K2Zyb20gLi5zZXJ2ZSBpbXBvcnQgc2VydmUKKworbG9nZ2VyID0gTm9uZQorCisKK2NsYXNzIFdw
dHJ1bkVycm9yKEV4Y2VwdGlvbik6CisgICAgcGFzcworCisKK2NsYXNzIFdwdHJ1bm5lckhlbHBB
Y3Rpb24oYXJncGFyc2UuQWN0aW9uKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwKKyAgICAgICAg
ICAgICAgICAgb3B0aW9uX3N0cmluZ3MsCisgICAgICAgICAgICAgICAgIGRlc3Q9YXJncGFyc2Uu
U1VQUFJFU1MsCisgICAgICAgICAgICAgICAgIGRlZmF1bHQ9YXJncGFyc2UuU1VQUFJFU1MsCisg
ICAgICAgICAgICAgICAgIGhlbHA9Tm9uZSk6CisgICAgICAgIHN1cGVyKFdwdHJ1bm5lckhlbHBB
Y3Rpb24sIHNlbGYpLl9faW5pdF9fKAorICAgICAgICAgICAgb3B0aW9uX3N0cmluZ3M9b3B0aW9u
X3N0cmluZ3MsCisgICAgICAgICAgICBkZXN0PWRlc3QsCisgICAgICAgICAgICBkZWZhdWx0PWRl
ZmF1bHQsCisgICAgICAgICAgICBuYXJncz0wLAorICAgICAgICAgICAgaGVscD1oZWxwKQorCisg
ICAgZGVmIF9fY2FsbF9fKHNlbGYsIHBhcnNlciwgbmFtZXNwYWNlLCB2YWx1ZXMsIG9wdGlvbl9z
dHJpbmc9Tm9uZSk6CisgICAgICAgIGZyb20gd3B0cnVubmVyIGltcG9ydCB3cHRjb21tYW5kbGlu
ZQorICAgICAgICB3cHRwYXJzZXIgPSB3cHRjb21tYW5kbGluZS5jcmVhdGVfcGFyc2VyKCkKKyAg
ICAgICAgd3B0cGFyc2VyLnVzYWdlID0gcGFyc2VyLnVzYWdlCisgICAgICAgIHdwdHBhcnNlci5w
cmludF9oZWxwKCkKKyAgICAgICAgcGFyc2VyLmV4aXQoKQorCisKK2RlZiBjcmVhdGVfcGFyc2Vy
KCk6CisgICAgZnJvbSB3cHRydW5uZXIgaW1wb3J0IHdwdGNvbW1hbmRsaW5lCisKKyAgICBwYXJz
ZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihhZGRfaGVscD1GYWxzZSkKKyAgICBwYXJzZXIu
YWRkX2FyZ3VtZW50KCJwcm9kdWN0IiwgYWN0aW9uPSJzdG9yZSIsCisgICAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSJCcm93c2VyIHRvIHJ1biB0ZXN0cyBpbiIpCisgICAgcGFyc2VyLmFkZF9h
cmd1bWVudCgiLS15ZXMiLCAiLXkiLCBkZXN0PSJwcm9tcHQiLCBhY3Rpb249InN0b3JlX2ZhbHNl
IiwgZGVmYXVsdD1UcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iRG9uJ3QgcHJv
bXB0IGJlZm9yZSBpbnN0YWxsaW5nIGNvbXBvbmVudHMiKQorICAgIHBhcnNlci5hZGRfYXJndW1l
bnQoIi0tc3RhYmlsaXR5IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGhlbHA9IlN0YWJpbGl0eSBjaGVjayB0ZXN0cyIpCisgICAgcGFyc2VyLmFkZF9hcmd1
bWVudCgiLS1pbnN0YWxsLWJyb3dzZXIiLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgaGVscD0iSW5zdGFsbCB0aGUgbGF0ZXN0IGRldmVsb3BtZW50IHZlcnNp
b24gb2YgdGhlIGJyb3dzZXIiKQorICAgIHBhcnNlci5fYWRkX2NvbnRhaW5lcl9hY3Rpb25zKHdw
dGNvbW1hbmRsaW5lLmNyZWF0ZV9wYXJzZXIoKSkKKyAgICByZXR1cm4gcGFyc2VyCisKKworZGVm
IGV4aXQobXNnKToKKyAgICBsb2dnZXIuZXJyb3IobXNnKQorICAgIHN5cy5leGl0KDEpCisKKwor
ZGVmIGFyZ3NfZ2VuZXJhbChrd2FyZ3MpOgorICAgIGt3YXJncy5zZXRfaWZfbm9uZSgidGVzdHNf
cm9vdCIsIHdwdF9yb290KQorICAgIGt3YXJncy5zZXRfaWZfbm9uZSgibWV0YWRhdGFfcm9vdCIs
IHdwdF9yb290KQorICAgIGt3YXJncy5zZXRfaWZfbm9uZSgibWFuaWZlc3RfdXBkYXRlIiwgVHJ1
ZSkKKyAgICBrd2FyZ3Muc2V0X2lmX25vbmUoIm1hbmlmZXN0X2Rvd25sb2FkIiwgVHJ1ZSkKKwor
ICAgIGlmIGt3YXJnc1sic3NsX3R5cGUiXSBpbiAoTm9uZSwgInByZWdlbmVyYXRlZCIpOgorICAg
ICAgICBjZXJ0X3Jvb3QgPSBvcy5wYXRoLmpvaW4od3B0X3Jvb3QsICJ0b29scyIsICJjZXJ0cyIp
CisgICAgICAgIGlmIGt3YXJnc1siY2FfY2VydF9wYXRoIl0gaXMgTm9uZToKKyAgICAgICAgICAg
IGt3YXJnc1siY2FfY2VydF9wYXRoIl0gPSBvcy5wYXRoLmpvaW4oY2VydF9yb290LCAiY2FjZXJ0
LnBlbSIpCisKKyAgICAgICAgaWYga3dhcmdzWyJob3N0X2tleV9wYXRoIl0gaXMgTm9uZToKKyAg
ICAgICAgICAgIGt3YXJnc1siaG9zdF9rZXlfcGF0aCJdID0gb3MucGF0aC5qb2luKGNlcnRfcm9v
dCwgIndlYi1wbGF0Zm9ybS50ZXN0LmtleSIpCisKKyAgICAgICAgaWYga3dhcmdzWyJob3N0X2Nl
cnRfcGF0aCJdIGlzIE5vbmU6CisgICAgICAgICAgICBrd2FyZ3NbImhvc3RfY2VydF9wYXRoIl0g
PSBvcy5wYXRoLmpvaW4oY2VydF9yb290LCAid2ViLXBsYXRmb3JtLnRlc3QucGVtIikKKyAgICBl
bGlmIGt3YXJnc1sic3NsX3R5cGUiXSA9PSAib3BlbnNzbCI6CisgICAgICAgIGlmIG5vdCBmaW5k
X2V4ZWN1dGFibGUoa3dhcmdzWyJvcGVuc3NsX2JpbmFyeSJdKToKKyAgICAgICAgICAgIGlmIG9z
LnVuYW1lKClbMF0gPT0gIldpbmRvd3MiOgorICAgICAgICAgICAgICAgIHJhaXNlIFdwdHJ1bkVy
cm9yKCIiIk9wZW5TU0wgYmluYXJ5IG5vdCBmb3VuZC4gSWYgeW91IG5lZWQgSFRUUFMgdGVzdHMs
IGluc3RhbGwgT3BlblNTTCBmcm9tCisKK2h0dHBzOi8vc2xwcm93ZWIuY29tL3Byb2R1Y3RzL1dp
bjMyT3BlblNTTC5odG1sCisKK0Vuc3VyaW5nIHRoYXQgbGlicmFyaWVzIGFyZSBhZGRlZCB0byAv
YmluIGFuZCBhZGQgdGhlIHJlc3VsdGluZyBiaW4gZGlyZWN0b3J5IHRvCit5b3VyIFBBVEguCisK
K090aGVyd2lzZSBydW4gd2l0aCAtLXNzbC10eXBlPW5vbmUiIiIpCisgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgIHJhaXNlIFdwdHJ1bkVycm9yKCIiIk9wZW5TU0wgbm90IGZvdW5k
LiBJZiB5b3UgZG9uJ3QgbmVlZCBIVFRQUyBzdXBwb3J0IHJ1biB3aXRoIC0tc3NsLXR5cGU9bm9u
ZSwKK290aGVyd2lzZSBpbnN0YWxsIE9wZW5TU0wgYW5kIGVuc3VyZSB0aGF0IGl0J3Mgb24geW91
ciAkUEFUSC4iIiIpCisKKworZGVmIGNoZWNrX2Vudmlyb24ocHJvZHVjdCk6CisgICAgaWYgcHJv
ZHVjdCBub3QgaW4gKCJmaXJlZm94IiwgInNlcnZvIik6CisgICAgICAgIGNvbmZpZyA9IHNlcnZl
LmxvYWRfY29uZmlnKG9zLnBhdGguam9pbih3cHRfcm9vdCwgImNvbmZpZy5kZWZhdWx0Lmpzb24i
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKHdwdF9y
b290LCAiY29uZmlnLmpzb24iKSkKKyAgICAgICAgY29uZmlnID0gc2VydmUubm9ybWFsaXNlX2Nv
bmZpZyhjb25maWcsIHt9KQorICAgICAgICBleHBlY3RlZF9ob3N0cyA9IChzZXQoY29uZmlnWyJk
b21haW5zIl0uaXRlcnZhbHVlcygpKSBeCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNldChj
b25maWdbIm5vdF9kb21haW5zIl0uaXRlcnZhbHVlcygpKSkKKyAgICAgICAgbWlzc2luZ19ob3N0
cyA9IHNldChleHBlY3RlZF9ob3N0cykKKyAgICAgICAgaWYgcGxhdGZvcm0udW5hbWUoKVswXSAh
PSAiV2luZG93cyI6CisgICAgICAgICAgICBob3N0c19wYXRoID0gIi9ldGMvaG9zdHMiCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICBob3N0c19wYXRoID0gIkM6XFdpbmRvd3NcU3lzdGVtMzJc
ZHJpdmVyc1xldGNcaG9zdHMiCisgICAgICAgIHdpdGggb3Blbihob3N0c19wYXRoLCAiciIpIGFz
IGY6CisgICAgICAgICAgICBmb3IgbGluZSBpbiBmOgorICAgICAgICAgICAgICAgIGxpbmUgPSBs
aW5lLnNwbGl0KCIjIiwgMSlbMF0uc3RyaXAoKQorICAgICAgICAgICAgICAgIHBhcnRzID0gbGlu
ZS5zcGxpdCgpCisgICAgICAgICAgICAgICAgaG9zdHMgPSBwYXJ0c1sxOl0KKyAgICAgICAgICAg
ICAgICBmb3IgaG9zdCBpbiBob3N0czoKKyAgICAgICAgICAgICAgICAgICAgbWlzc2luZ19ob3N0
cy5kaXNjYXJkKGhvc3QpCisgICAgICAgICAgICBpZiBtaXNzaW5nX2hvc3RzOgorICAgICAgICAg
ICAgICAgIGlmIHBsYXRmb3JtLnVuYW1lKClbMF0gIT0gIldpbmRvd3MiOgorICAgICAgICAgICAg
ICAgICAgICBtZXNzYWdlID0gIiIiTWlzc2luZyBob3N0cyBmaWxlIGNvbmZpZ3VyYXRpb24uIFJ1
bgorCitweXRob24gd3B0IG1ha2UtaG9zdHMtZmlsZSA+PiAlcworCitmcm9tIGEgc2hlbGwgd2l0
aCBBZG1pbmlzdHJhdG9yIHByaXZpbGVnZXMuIiIiICUgaG9zdHNfcGF0aAorICAgICAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAiIiJNaXNzaW5nIGhvc3Rz
IGZpbGUgY29uZmlndXJhdGlvbi4gUnVuCisKKy4vd3B0IG1ha2UtaG9zdHMtZmlsZSB8IHN1ZG8g
dGVlIC1hICVzIiIiICUgaG9zdHNfcGF0aAorICAgICAgICAgICAgICAgIHJhaXNlIFdwdHJ1bkVy
cm9yKG1lc3NhZ2UpCisKKworY2xhc3MgQnJvd3NlclNldHVwKG9iamVjdCk6CisgICAgbmFtZSA9
IE5vbmUKKyAgICBicm93c2VyX2NscyA9IE5vbmUKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2
ZW52LCBwcm9tcHQ9VHJ1ZSwgc3ViX3Byb2R1Y3Q9Tm9uZSk6CisgICAgICAgIHNlbGYuYnJvd3Nl
ciA9IHNlbGYuYnJvd3Nlcl9jbHMoKQorICAgICAgICBzZWxmLnZlbnYgPSB2ZW52CisgICAgICAg
IHNlbGYucHJvbXB0ID0gcHJvbXB0CisgICAgICAgIHNlbGYuc3ViX3Byb2R1Y3QgPSBzdWJfcHJv
ZHVjdAorCisgICAgZGVmIHByb21wdF9pbnN0YWxsKHNlbGYsIGNvbXBvbmVudCk6CisgICAgICAg
IGlmIG5vdCBzZWxmLnByb21wdDoKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHdo
aWxlIFRydWU6CisgICAgICAgICAgICByZXNwID0gcmF3X2lucHV0KCJEb3dubG9hZCBhbmQgaW5z
dGFsbCAlcyBbWS9uXT8gIiAlIGNvbXBvbmVudCkuc3RyaXAoKS5sb3dlcigpCisgICAgICAgICAg
ICBpZiBub3QgcmVzcCBvciByZXNwID09ICJ5IjoKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1
ZQorICAgICAgICAgICAgZWxpZiByZXNwID09ICJuIjoKKyAgICAgICAgICAgICAgICByZXR1cm4g
RmFsc2UKKworICAgIGRlZiBpbnN0YWxsKHNlbGYsIHZlbnYpOgorICAgICAgICBpZiBzZWxmLnBy
b21wdF9pbnN0YWxsKHNlbGYubmFtZSk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5icm93c2Vy
Lmluc3RhbGwodmVudi5wYXRoKQorCisgICAgZGVmIGluc3RhbGxfcmVxdWlyZW1lbnRzKHNlbGYp
OgorICAgICAgICBzZWxmLnZlbnYuaW5zdGFsbF9yZXF1aXJlbWVudHMob3MucGF0aC5qb2luKHdw
dF9yb290LCAidG9vbHMiLCAid3B0cnVubmVyIiwgc2VsZi5icm93c2VyLnJlcXVpcmVtZW50cykp
CisKKyAgICBkZWYgc2V0dXAoc2VsZiwga3dhcmdzKToKKyAgICAgICAgc2VsZi5zZXR1cF9rd2Fy
Z3Moa3dhcmdzKQorCisKK2NsYXNzIEZpcmVmb3goQnJvd3NlclNldHVwKToKKyAgICBuYW1lID0g
ImZpcmVmb3giCisgICAgYnJvd3Nlcl9jbHMgPSBicm93c2VyLkZpcmVmb3gKKworICAgIGRlZiBz
ZXR1cF9rd2FyZ3Moc2VsZiwga3dhcmdzKToKKyAgICAgICAgaWYga3dhcmdzWyJiaW5hcnkiXSBp
cyBOb25lOgorICAgICAgICAgICAgYmluYXJ5ID0gc2VsZi5icm93c2VyLmZpbmRfYmluYXJ5KHNl
bGYudmVudi5wYXRoKQorICAgICAgICAgICAgaWYgYmluYXJ5IGlzIE5vbmU6CisgICAgICAgICAg
ICAgICAgcmFpc2UgV3B0cnVuRXJyb3IoIiIiRmlyZWZveCBiaW5hcnkgbm90IGZvdW5kIG9uICRQ
QVRILgorCitJbnN0YWxsIEZpcmVmb3ggb3IgdXNlIC0tYmluYXJ5IHRvIHNldCB0aGUgYmluYXJ5
IHBhdGgiIiIpCisgICAgICAgICAgICBrd2FyZ3NbImJpbmFyeSJdID0gYmluYXJ5CisKKyAgICAg
ICAgaWYga3dhcmdzWyJjZXJ0dXRpbF9iaW5hcnkiXSBpcyBOb25lIGFuZCBrd2FyZ3NbInNzbF90
eXBlIl0gIT0gIm5vbmUiOgorICAgICAgICAgICAgY2VydHV0aWwgPSBzZWxmLmJyb3dzZXIuZmlu
ZF9jZXJ0dXRpbCgpCisKKyAgICAgICAgICAgIGlmIGNlcnR1dGlsIGlzIE5vbmU6CisgICAgICAg
ICAgICAgICAgIyBDYW4ndCBkb3dubG9hZCB0aGlzIGZvciBub3cgYmVjYXVzZSBpdCdzIG1pc3Np
bmcgdGhlIGxpYm5zczMgbGlicmFyeQorICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCIiIkNh
bid0IGZpbmQgY2VydHV0aWwsIGNlcnRpZmljYXRlcyB3aWxsIG5vdCBiZSBjaGVja2VkLgorQ29u
c2lkZXIgaW5zdGFsbGluZyBjZXJ0dXRpbCB2aWEgeW91ciBPUyBwYWNrYWdlIG1hbmFnZXIgb3Ig
ZGlyZWN0bHkuIiIiKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwcmludCgi
VXNpbmcgY2VydHV0aWwgJXMiICUgY2VydHV0aWwpCisKKyAgICAgICAgICAgIGt3YXJnc1siY2Vy
dHV0aWxfYmluYXJ5Il0gPSBjZXJ0dXRpbAorCisgICAgICAgIGlmIGt3YXJnc1sid2ViZHJpdmVy
X2JpbmFyeSJdIGlzIE5vbmUgYW5kICJ3ZHNwZWMiIGluIGt3YXJnc1sidGVzdF90eXBlcyJdOgor
ICAgICAgICAgICAgd2ViZHJpdmVyX2JpbmFyeSA9IHNlbGYuYnJvd3Nlci5maW5kX3dlYmRyaXZl
cigpCisKKyAgICAgICAgICAgIGlmIHdlYmRyaXZlcl9iaW5hcnkgaXMgTm9uZToKKyAgICAgICAg
ICAgICAgICBpbnN0YWxsID0gc2VsZi5wcm9tcHRfaW5zdGFsbCgiZ2Vja29kcml2ZXIiKQorCisg
ICAgICAgICAgICAgICAgaWYgaW5zdGFsbDoKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoIkRv
d25sb2FkaW5nIGdlY2tvZHJpdmVyIikKKyAgICAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2Jp
bmFyeSA9IHNlbGYuYnJvd3Nlci5pbnN0YWxsX3dlYmRyaXZlcihkZXN0PXNlbGYudmVudi5iaW5f
cGF0aCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcHJpbnQoIlVzaW5nIHdl
YmRyaXZlciBiaW5hcnkgJXMiICUgd2ViZHJpdmVyX2JpbmFyeSkKKworICAgICAgICAgICAgaWYg
d2ViZHJpdmVyX2JpbmFyeToKKyAgICAgICAgICAgICAgICBrd2FyZ3NbIndlYmRyaXZlcl9iaW5h
cnkiXSA9IHdlYmRyaXZlcl9iaW5hcnkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgcHJpbnQoIlVuYWJsZSB0byBmaW5kIG9yIGluc3RhbGwgZ2Vja29kcml2ZXIsIHNraXBwaW5n
IHdkc3BlYyB0ZXN0cyIpCisgICAgICAgICAgICAgICAga3dhcmdzWyJ0ZXN0X3R5cGVzIl0ucmVt
b3ZlKCJ3ZHNwZWMiKQorCisgICAgICAgIGlmIGt3YXJnc1sicHJlZnNfcm9vdCJdIGlzIE5vbmU6
CisgICAgICAgICAgICBwcmludCgiRG93bmxvYWRpbmcgZ2Vja28gcHJlZnMiKQorICAgICAgICAg
ICAgcHJlZnNfcm9vdCA9IHNlbGYuYnJvd3Nlci5pbnN0YWxsX3ByZWZzKHNlbGYudmVudi5wYXRo
KQorICAgICAgICAgICAga3dhcmdzWyJwcmVmc19yb290Il0gPSBwcmVmc19yb290CisKKworY2xh
c3MgQ2hyb21lKEJyb3dzZXJTZXR1cCk6CisgICAgbmFtZSA9ICJjaHJvbWUiCisgICAgYnJvd3Nl
cl9jbHMgPSBicm93c2VyLkNocm9tZQorCisgICAgZGVmIHNldHVwX2t3YXJncyhzZWxmLCBrd2Fy
Z3MpOgorICAgICAgICBpZiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSBpcyBOb25lOgorICAg
ICAgICAgICAgd2ViZHJpdmVyX2JpbmFyeSA9IHNlbGYuYnJvd3Nlci5maW5kX3dlYmRyaXZlcigp
CisKKyAgICAgICAgICAgIGlmIHdlYmRyaXZlcl9iaW5hcnkgaXMgTm9uZToKKyAgICAgICAgICAg
ICAgICBpbnN0YWxsID0gc2VsZi5wcm9tcHRfaW5zdGFsbCgiY2hyb21lZHJpdmVyIikKKworICAg
ICAgICAgICAgICAgIGlmIGluc3RhbGw6CisgICAgICAgICAgICAgICAgICAgIHByaW50KCJEb3du
bG9hZGluZyBjaHJvbWVkcml2ZXIiKQorICAgICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYmlu
YXJ5ID0gc2VsZi5icm93c2VyLmluc3RhbGxfd2ViZHJpdmVyKGRlc3Q9c2VsZi52ZW52LmJpbl9w
YXRoKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwcmludCgiVXNpbmcgd2Vi
ZHJpdmVyIGJpbmFyeSAlcyIgJSB3ZWJkcml2ZXJfYmluYXJ5KQorCisgICAgICAgICAgICBpZiB3
ZWJkcml2ZXJfYmluYXJ5OgorICAgICAgICAgICAgICAgIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFy
eSJdID0gd2ViZHJpdmVyX2JpbmFyeQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICByYWlzZSBXcHRydW5FcnJvcigiVW5hYmxlIHRvIGxvY2F0ZSBvciBpbnN0YWxsIGNocm9tZWRy
aXZlciBiaW5hcnkiKQorCisKK2NsYXNzIENocm9tZUFuZHJvaWQoQnJvd3NlclNldHVwKToKKyAg
ICBuYW1lID0gImNocm9tZV9hbmRyb2lkIgorICAgIGJyb3dzZXJfY2xzID0gYnJvd3Nlci5DaHJv
bWVBbmRyb2lkCisKKyAgICBkZWYgc2V0dXBfa3dhcmdzKHNlbGYsIGt3YXJncyk6CisgICAgICAg
IGlmIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdIGlzIE5vbmU6CisgICAgICAgICAgICB3ZWJk
cml2ZXJfYmluYXJ5ID0gc2VsZi5icm93c2VyLmZpbmRfd2ViZHJpdmVyKCkKKworICAgICAgICAg
ICAgaWYgd2ViZHJpdmVyX2JpbmFyeSBpcyBOb25lOgorICAgICAgICAgICAgICAgIGluc3RhbGwg
PSBzZWxmLnByb21wdF9pbnN0YWxsKCJjaHJvbWVkcml2ZXIiKQorCisgICAgICAgICAgICAgICAg
aWYgaW5zdGFsbDoKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQoIkRvd25sb2FkaW5nIGNocm9t
ZWRyaXZlciIpCisgICAgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9iaW5hcnkgPSBzZWxmLmJy
b3dzZXIuaW5zdGFsbF93ZWJkcml2ZXIoZGVzdD1zZWxmLnZlbnYuYmluX3BhdGgpCisgICAgICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHByaW50KCJVc2luZyB3ZWJkcml2ZXIgYmluYXJ5
ICVzIiAlIHdlYmRyaXZlcl9iaW5hcnkpCisKKyAgICAgICAgICAgIGlmIHdlYmRyaXZlcl9iaW5h
cnk6CisgICAgICAgICAgICAgICAga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0gPSB3ZWJkcml2
ZXJfYmluYXJ5CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNlIFdwdHJ1
bkVycm9yKCJVbmFibGUgdG8gbG9jYXRlIG9yIGluc3RhbGwgY2hyb21lZHJpdmVyIGJpbmFyeSIp
CisKKworY2xhc3MgT3BlcmEoQnJvd3NlclNldHVwKToKKyAgICBuYW1lID0gIm9wZXJhIgorICAg
IGJyb3dzZXJfY2xzID0gYnJvd3Nlci5PcGVyYQorCisgICAgZGVmIHNldHVwX2t3YXJncyhzZWxm
LCBrd2FyZ3MpOgorICAgICAgICBpZiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSBpcyBOb25l
OgorICAgICAgICAgICAgd2ViZHJpdmVyX2JpbmFyeSA9IHNlbGYuYnJvd3Nlci5maW5kX3dlYmRy
aXZlcigpCisKKyAgICAgICAgICAgIGlmIHdlYmRyaXZlcl9iaW5hcnkgaXMgTm9uZToKKyAgICAg
ICAgICAgICAgICBpbnN0YWxsID0gc2VsZi5wcm9tcHRfaW5zdGFsbCgib3BlcmFkcml2ZXIiKQor
CisgICAgICAgICAgICAgICAgaWYgaW5zdGFsbDoKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQo
IkRvd25sb2FkaW5nIG9wZXJhZHJpdmVyIikKKyAgICAgICAgICAgICAgICAgICAgd2ViZHJpdmVy
X2JpbmFyeSA9IHNlbGYuYnJvd3Nlci5pbnN0YWxsX3dlYmRyaXZlcihkZXN0PXNlbGYudmVudi5i
aW5fcGF0aCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcHJpbnQoIlVzaW5n
IHdlYmRyaXZlciBiaW5hcnkgJXMiICUgd2ViZHJpdmVyX2JpbmFyeSkKKworICAgICAgICAgICAg
aWYgd2ViZHJpdmVyX2JpbmFyeToKKyAgICAgICAgICAgICAgICBrd2FyZ3NbIndlYmRyaXZlcl9i
aW5hcnkiXSA9IHdlYmRyaXZlcl9iaW5hcnkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgcmFpc2UgV3B0cnVuRXJyb3IoIlVuYWJsZSB0byBsb2NhdGUgb3IgaW5zdGFsbCBvcGVy
YWRyaXZlciBiaW5hcnkiKQorCisKK2NsYXNzIEVkZ2UoQnJvd3NlclNldHVwKToKKyAgICBuYW1l
ID0gImVkZ2UiCisgICAgYnJvd3Nlcl9jbHMgPSBicm93c2VyLkVkZ2UKKworICAgIGRlZiBpbnN0
YWxsKHNlbGYsIHZlbnYpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAg
ICBkZWYgc2V0dXBfa3dhcmdzKHNlbGYsIGt3YXJncyk6CisgICAgICAgIGlmIGt3YXJnc1sid2Vi
ZHJpdmVyX2JpbmFyeSJdIGlzIE5vbmU6CisgICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5ID0g
c2VsZi5icm93c2VyLmZpbmRfd2ViZHJpdmVyKCkKKworICAgICAgICAgICAgaWYgd2ViZHJpdmVy
X2JpbmFyeSBpcyBOb25lOgorICAgICAgICAgICAgICAgIHJhaXNlIFdwdHJ1bkVycm9yKCIiIlVu
YWJsZSB0byBmaW5kIFdlYkRyaXZlciBhbmQgd2UgYXJlbid0IHlldCBjbGV2ZXIgZW5vdWdoIHRv
IHdvcmsgb3V0IHdoaWNoCit2ZXJzaW9uIHRvIGRvd25sb2FkLiBQbGVhc2UgZ28gdG8gdGhlIGZv
bGxvd2luZyBVUkwgYW5kIGluc3RhbGwgdGhlIGNvcnJlY3QKK3ZlcnNpb24gZm9yIHlvdXIgRWRn
ZS9XaW5kb3dzIHJlbGVhc2Ugc29tZXdoZXJlIG9uIHRoZSAlUEFUSCU6CisKK2h0dHBzOi8vZGV2
ZWxvcGVyLm1pY3Jvc29mdC5jb20vZW4tdXMvbWljcm9zb2Z0LWVkZ2UvdG9vbHMvd2ViZHJpdmVy
LworIiIiKQorICAgICAgICAgICAga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0gPSB3ZWJkcml2
ZXJfYmluYXJ5CisKKworY2xhc3MgSW50ZXJuZXRFeHBsb3JlcihCcm93c2VyU2V0dXApOgorICAg
IG5hbWUgPSAiaWUiCisgICAgYnJvd3Nlcl9jbHMgPSBicm93c2VyLkludGVybmV0RXhwbG9yZXIK
KworICAgIGRlZiBpbnN0YWxsKHNlbGYsIHZlbnYpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1l
bnRlZEVycm9yCisKKyAgICBkZWYgc2V0dXBfa3dhcmdzKHNlbGYsIGt3YXJncyk6CisgICAgICAg
IGlmIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdIGlzIE5vbmU6CisgICAgICAgICAgICB3ZWJk
cml2ZXJfYmluYXJ5ID0gc2VsZi5icm93c2VyLmZpbmRfd2ViZHJpdmVyKCkKKworICAgICAgICAg
ICAgaWYgd2ViZHJpdmVyX2JpbmFyeSBpcyBOb25lOgorICAgICAgICAgICAgICAgIHJhaXNlIFdw
dHJ1bkVycm9yKCIiIlVuYWJsZSB0byBmaW5kIFdlYkRyaXZlciBhbmQgd2UgYXJlbid0IHlldCBj
bGV2ZXIgZW5vdWdoIHRvIHdvcmsgb3V0IHdoaWNoCit2ZXJzaW9uIHRvIGRvd25sb2FkLiBQbGVh
c2UgZ28gdG8gdGhlIGZvbGxvd2luZyBVUkwgYW5kIGluc3RhbGwgdGhlIGRyaXZlciBmb3IgSW50
ZXJuZXQgRXhwbG9yZXIKK3NvbWV3aGVyZSBvbiB0aGUgJVBBVEglOgorCitodHRwczovL3NlbGVu
aXVtLXJlbGVhc2Uuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9pbmRleC5odG1sCisiIiIpCisgICAg
ICAgICAgICBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSA9IHdlYmRyaXZlcl9iaW5hcnkKKwor
CitjbGFzcyBTYWZhcmkoQnJvd3NlclNldHVwKToKKyAgICBuYW1lID0gInNhZmFyaSIKKyAgICBi
cm93c2VyX2NscyA9IGJyb3dzZXIuU2FmYXJpCisKKyAgICBkZWYgaW5zdGFsbChzZWxmLCB2ZW52
KToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAgZGVmIHNldHVwX2t3
YXJncyhzZWxmLCBrd2FyZ3MpOgorICAgICAgICBpZiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnki
XSBpcyBOb25lOgorICAgICAgICAgICAgd2ViZHJpdmVyX2JpbmFyeSA9IHNlbGYuYnJvd3Nlci5m
aW5kX3dlYmRyaXZlcigpCisKKyAgICAgICAgICAgIGlmIHdlYmRyaXZlcl9iaW5hcnkgaXMgTm9u
ZToKKyAgICAgICAgICAgICAgICByYWlzZSBXcHRydW5FcnJvcigiVW5hYmxlIHRvIGxvY2F0ZSBz
YWZhcmlkcml2ZXIgYmluYXJ5IikKKworICAgICAgICAgICAga3dhcmdzWyJ3ZWJkcml2ZXJfYmlu
YXJ5Il0gPSB3ZWJkcml2ZXJfYmluYXJ5CisKKworY2xhc3MgU2F1Y2UoQnJvd3NlclNldHVwKToK
KyAgICBuYW1lID0gInNhdWNlIgorICAgIGJyb3dzZXJfY2xzID0gYnJvd3Nlci5TYXVjZQorCisg
ICAgZGVmIGluc3RhbGwoc2VsZiwgdmVudik6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVk
RXJyb3IKKworICAgIGRlZiBzZXR1cF9rd2FyZ3Moc2VsZiwga3dhcmdzKToKKyAgICAgICAga3dh
cmdzLnNldF9pZl9ub25lKCJzYXVjZV9icm93c2VyIiwgc2VsZi5zdWJfcHJvZHVjdFswXSkKKyAg
ICAgICAga3dhcmdzLnNldF9pZl9ub25lKCJzYXVjZV92ZXJzaW9uIiwgc2VsZi5zdWJfcHJvZHVj
dFsxXSkKKyAgICAgICAga3dhcmdzWyJ0ZXN0X3R5cGVzIl0gPSBbInRlc3RoYXJuZXNzIiwgInJl
ZnRlc3QiXQorCisKK2NsYXNzIFNlcnZvKEJyb3dzZXJTZXR1cCk6CisgICAgbmFtZSA9ICJzZXJ2
byIKKyAgICBicm93c2VyX2NscyA9IGJyb3dzZXIuU2Vydm8KKworICAgIGRlZiBpbnN0YWxsKHNl
bGYsIHZlbnYpOgorICAgICAgICBpZiBzZWxmLnByb21wdF9pbnN0YWxsKHNlbGYubmFtZSk6Cisg
ICAgICAgICAgICByZXR1cm4gc2VsZi5icm93c2VyLmluc3RhbGwodmVudi5wYXRoKQorCisgICAg
ZGVmIHNldHVwX2t3YXJncyhzZWxmLCBrd2FyZ3MpOgorICAgICAgICBpZiBrd2FyZ3NbImJpbmFy
eSJdIGlzIE5vbmU6CisgICAgICAgICAgICBiaW5hcnkgPSBzZWxmLmJyb3dzZXIuZmluZF9iaW5h
cnkoKQorCisgICAgICAgICAgICBpZiBiaW5hcnkgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBy
YWlzZSBXcHRydW5FcnJvcigiVW5hYmxlIHRvIGZpbmQgc2Vydm8gYmluYXJ5IG9uIHRoZSBQQVRI
IikKKyAgICAgICAgICAgIGt3YXJnc1siYmluYXJ5Il0gPSBiaW5hcnkKKworCitjbGFzcyBXZWJL
aXQoQnJvd3NlclNldHVwKToKKyAgICBuYW1lID0gIndlYmtpdCIKKyAgICBicm93c2VyX2NscyA9
IGJyb3dzZXIuV2ViS2l0CisKKyAgICBkZWYgaW5zdGFsbChzZWxmLCB2ZW52KToKKyAgICAgICAg
cmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAgZGVmIHNldHVwX2t3YXJncyhzZWxmLCBr
d2FyZ3MpOgorICAgICAgICBwYXNzCisKKworcHJvZHVjdF9zZXR1cCA9IHsKKyAgICAiZmlyZWZv
eCI6IEZpcmVmb3gsCisgICAgImNocm9tZSI6IENocm9tZSwKKyAgICAiY2hyb21lX2FuZHJvaWQi
OiBDaHJvbWVBbmRyb2lkLAorICAgICJlZGdlIjogRWRnZSwKKyAgICAiaWUiOiBJbnRlcm5ldEV4
cGxvcmVyLAorICAgICJzYWZhcmkiOiBTYWZhcmksCisgICAgInNlcnZvIjogU2Vydm8sCisgICAg
InNhdWNlIjogU2F1Y2UsCisgICAgIm9wZXJhIjogT3BlcmEsCisgICAgIndlYmtpdCI6IFdlYktp
dCwKK30KKworCitkZWYgc2V0dXBfd3B0cnVubmVyKHZlbnYsIHByb21wdD1UcnVlLCBpbnN0YWxs
PUZhbHNlLCAqKmt3YXJncyk6CisgICAgZnJvbSB3cHRydW5uZXIgaW1wb3J0IHdwdHJ1bm5lciwg
d3B0Y29tbWFuZGxpbmUKKworICAgIGdsb2JhbCBsb2dnZXIKKworICAgIGt3YXJncyA9IHV0aWxz
Lkt3YXJncyhrd2FyZ3MuaXRlcml0ZW1zKCkpCisKKyAgICBwcm9kdWN0X3BhcnRzID0ga3dhcmdz
WyJwcm9kdWN0Il0uc3BsaXQoIjoiKQorICAgIGt3YXJnc1sicHJvZHVjdCJdID0gcHJvZHVjdF9w
YXJ0c1swXQorICAgIHN1Yl9wcm9kdWN0ID0gcHJvZHVjdF9wYXJ0c1sxOl0KKworICAgIHdwdHJ1
bm5lci5zZXR1cF9sb2dnaW5nKGt3YXJncywgeyJtYWNoIjogc3lzLnN0ZG91dH0pCisgICAgbG9n
Z2VyID0gd3B0cnVubmVyLmxvZ2dlcgorCisgICAgY2hlY2tfZW52aXJvbihrd2FyZ3NbInByb2R1
Y3QiXSkKKyAgICBhcmdzX2dlbmVyYWwoa3dhcmdzKQorCisgICAgaWYga3dhcmdzWyJwcm9kdWN0
Il0gbm90IGluIHByb2R1Y3Rfc2V0dXA6CisgICAgICAgIHJhaXNlIFdwdHJ1bkVycm9yKCJVbnN1
cHBvcnRlZCBwcm9kdWN0ICVzIiAlIGt3YXJnc1sicHJvZHVjdCJdKQorCisgICAgc2V0dXBfY2xz
ID0gcHJvZHVjdF9zZXR1cFtrd2FyZ3NbInByb2R1Y3QiXV0odmVudiwgcHJvbXB0LCBzdWJfcHJv
ZHVjdCkKKyAgICBzZXR1cF9jbHMuaW5zdGFsbF9yZXF1aXJlbWVudHMoKQorCisgICAgaWYgaW5z
dGFsbDoKKyAgICAgICAgbG9nZ2VyLmluZm8oIkluc3RhbGxpbmcgYnJvd3NlciIpCisgICAgICAg
IGt3YXJnc1siYmluYXJ5Il0gPSBzZXR1cF9jbHMuaW5zdGFsbCh2ZW52KQorCisgICAgc2V0dXBf
Y2xzLnNldHVwKGt3YXJncykKKworICAgIHdwdGNvbW1hbmRsaW5lLmNoZWNrX2FyZ3Moa3dhcmdz
KQorCisgICAgd3B0cnVubmVyX3BhdGggPSBvcy5wYXRoLmpvaW4od3B0X3Jvb3QsICJ0b29scyIs
ICJ3cHRydW5uZXIiKQorCisgICAgdmVudi5pbnN0YWxsX3JlcXVpcmVtZW50cyhvcy5wYXRoLmpv
aW4od3B0cnVubmVyX3BhdGgsICJyZXF1aXJlbWVudHMudHh0IikpCisKKyAgICByZXR1cm4ga3dh
cmdzCisKKworZGVmIHJ1bih2ZW52LCAqKmt3YXJncyk6CisgICAgI1JlbW92ZSBhcmd1bWVudHMg
dGhhdCBhcmVuJ3QgcGFzc2VkIHRvIHdwdHJ1bm5lcgorICAgIHByb21wdCA9IGt3YXJncy5wb3Ao
InByb21wdCIsIFRydWUpCisgICAgc3RhYmlsaXR5ID0ga3dhcmdzLnBvcCgic3RhYmlsaXR5Iiwg
VHJ1ZSkKKyAgICBpbnN0YWxsX2Jyb3dzZXIgPSBrd2FyZ3MucG9wKCJpbnN0YWxsX2Jyb3dzZXIi
LCBGYWxzZSkKKworICAgIGt3YXJncyA9IHNldHVwX3dwdHJ1bm5lcih2ZW52LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwcm9tcHQ9cHJvbXB0LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnN0YWxsPWluc3RhbGxfYnJvd3NlciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKiprd2FyZ3MpCisKKyAgICBpZiBzdGFiaWxpdHk6CisgICAgICAgIGltcG9ydCBzdGFi
aWxpdHkKKyAgICAgICAgaXRlcmF0aW9ucywgcmVzdWx0cywgaW5jb25zaXN0ZW50ID0gc3RhYmls
aXR5LnJ1bih2ZW52LCBsb2dnZXIsICoqa3dhcmdzKQorCisgICAgICAgIGRlZiBsb2coeCk6Cisg
ICAgICAgICAgICBwcmludCh4KQorCisgICAgICAgIGlmIGluY29uc2lzdGVudDoKKyAgICAgICAg
ICAgIHN0YWJpbGl0eS53cml0ZV9pbmNvbnNpc3RlbnQobG9nLCBpbmNvbnNpc3RlbnQsIGl0ZXJh
dGlvbnMpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBsb2coIkFsbCB0ZXN0cyBzdGFibGUi
KQorICAgICAgICBydiA9IGxlbihpbmNvbnNpc3RlbnQpID4gMAorICAgIGVsc2U6CisgICAgICAg
IHJ2ID0gcnVuX3NpbmdsZSh2ZW52LCAqKmt3YXJncykgPiAwCisKKyAgICByZXR1cm4gcnYKKwor
CitkZWYgcnVuX3NpbmdsZSh2ZW52LCAqKmt3YXJncyk6CisgICAgZnJvbSB3cHRydW5uZXIgaW1w
b3J0IHdwdHJ1bm5lcgorICAgIHJldHVybiB3cHRydW5uZXIuc3RhcnQoKiprd2FyZ3MpCisKKwor
ZGVmIG1haW4oKToKKyAgICB0cnk6CisgICAgICAgIHBhcnNlciA9IGNyZWF0ZV9wYXJzZXIoKQor
ICAgICAgICBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQorCisgICAgICAgIHZlbnYgPSB2aXJ0
dWFsZW52LlZpcnR1YWxlbnYob3MucGF0aC5qb2luKHdwdF9yb290LCAiX3ZlbnZfJXMiKSAlIHBs
YXRmb3JtLnVuYW1lKClbMF0pCisgICAgICAgIHZlbnYuc3RhcnQoKQorICAgICAgICB2ZW52Lmlu
c3RhbGxfcmVxdWlyZW1lbnRzKG9zLnBhdGguam9pbih3cHRfcm9vdCwgInRvb2xzIiwgIndwdHJ1
bm5lciIsICJyZXF1aXJlbWVudHMudHh0IikpCisgICAgICAgIHZlbnYuaW5zdGFsbCgicmVxdWVz
dHMiKQorCisgICAgICAgIHJldHVybiBydW4odmVudiwgdmFycyhhcmdzKSkKKyAgICBleGNlcHQg
V3B0cnVuRXJyb3IgYXMgZToKKyAgICAgICAgZXhpdChlLm1lc3NhZ2UpCisKKworaWYgX19uYW1l
X18gPT0gIl9fbWFpbl9fIjoKKyAgICBpbXBvcnQgcGRiCisgICAgZnJvbSB0b29scyBpbXBvcnQg
bG9jYWxwYXRocworICAgIHRyeToKKyAgICAgICAgbWFpbigpCisgICAgZXhjZXB0IEV4Y2VwdGlv
bjoKKyAgICAgICAgcGRiLnBvc3RfbW9ydGVtKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3N0YWJpbGl0eS5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3N0YWJp
bGl0eS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iM2M4NTcwMGVjMzg1ZDczZTNlYmY2ZWQ0ZGIwMTJhZTM3YmM1
MTQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHQvc3RhYmlsaXR5LnB5CkBAIC0wLDAgKzEsMTk1IEBACitpbXBv
cnQgb3MKK2ltcG9ydCBzeXMKK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IE9yZGVyZWREaWN0LCBk
ZWZhdWx0ZGljdAorCitmcm9tIG1vemxvZyBpbXBvcnQgcmVhZGVyCitmcm9tIG1vemxvZy5mb3Jt
YXR0ZXJzIGltcG9ydCBKU09ORm9ybWF0dGVyLCBUYnBsRm9ybWF0dGVyCitmcm9tIG1vemxvZy5o
YW5kbGVycyBpbXBvcnQgQmFzZUhhbmRsZXIsIExvZ0xldmVsRmlsdGVyLCBTdHJlYW1IYW5kbGVy
CisKK2Zyb20gbWFya2Rvd24gaW1wb3J0IG1hcmtkb3duX2FkanVzdCwgdGFibGUKK2Zyb20gd3B0
cnVubmVyIGltcG9ydCB3cHRydW5uZXIKKworCitjbGFzcyBMb2dBY3Rpb25GaWx0ZXIoQmFzZUhh
bmRsZXIpOgorCisgICAgIiIiSGFuZGxlciB0aGF0IGZpbHRlcnMgb3V0IG1lc3NhZ2VzIG5vdCBv
ZiBhIGdpdmVuIHNldCBvZiBhY3Rpb25zLgorCisgICAgU3ViY2xhc3NlcyBCYXNlSGFuZGxlci4K
KworICAgIDpwYXJhbSBpbm5lcjogSGFuZGxlciB0byB1c2UgZm9yIG1lc3NhZ2VzIHRoYXQgcGFz
cyB0aGlzIGZpbHRlcgorICAgIDpwYXJhbSBhY3Rpb25zOiBMaXN0IG9mIGFjdGlvbnMgZm9yIHdo
aWNoIHRvIGZpcmUgdGhlIGhhbmRsZXIKKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBpbm5lciwgYWN0aW9ucyk6CisgICAgICAgICIiIkV4dGVuZCBCYXNlSGFuZGxlciBhbmQgc2V0
IGlubmVyIGFuZCBhY3Rpb25zIHByb3BzIG9uIHNlbGYuIiIiCisgICAgICAgIEJhc2VIYW5kbGVy
Ll9faW5pdF9fKHNlbGYsIGlubmVyKQorICAgICAgICBzZWxmLmlubmVyID0gaW5uZXIKKyAgICAg
ICAgc2VsZi5hY3Rpb25zID0gYWN0aW9ucworCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGl0ZW0p
OgorICAgICAgICAiIiJJbnZva2UgaGFuZGxlciBpZiBhY3Rpb24gaXMgaW4gbGlzdCBwYXNzZWQg
YXMgY29uc3RydWN0b3IgcGFyYW0uIiIiCisgICAgICAgIGlmIGl0ZW1bImFjdGlvbiJdIGluIHNl
bGYuYWN0aW9uczoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmlubmVyKGl0ZW0pCisKKworY2xh
c3MgTG9nSGFuZGxlcihyZWFkZXIuTG9nSGFuZGxlcik6CisKKyAgICAiIiJIYW5kbGUgdXBkYXRp
bmcgdGVzdCBhbmQgc3VidGVzdCBzdGF0dXMgaW4gbG9nLgorCisgICAgU3ViY2xhc3NlcyByZWFk
ZXIuTG9nSGFuZGxlci4KKyAgICAiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAg
IHNlbGYucmVzdWx0cyA9IE9yZGVyZWREaWN0KCkKKworICAgIGRlZiBmaW5kX29yX2NyZWF0ZV90
ZXN0KHNlbGYsIGRhdGEpOgorICAgICAgICB0ZXN0X25hbWUgPSBkYXRhWyJ0ZXN0Il0KKyAgICAg
ICAgaWYgc2VsZi5yZXN1bHRzLmdldCh0ZXN0X25hbWUpOgorICAgICAgICAgICAgcmV0dXJuIHNl
bGYucmVzdWx0c1t0ZXN0X25hbWVdCisKKyAgICAgICAgdGVzdCA9IHsKKyAgICAgICAgICAgICJz
dWJ0ZXN0cyI6IE9yZGVyZWREaWN0KCksCisgICAgICAgICAgICAic3RhdHVzIjogZGVmYXVsdGRp
Y3QoaW50KQorICAgICAgICB9CisgICAgICAgIHNlbGYucmVzdWx0c1t0ZXN0X25hbWVdID0gdGVz
dAorICAgICAgICByZXR1cm4gdGVzdAorCisgICAgZGVmIGZpbmRfb3JfY3JlYXRlX3N1YnRlc3Qo
c2VsZiwgZGF0YSk6CisgICAgICAgIHRlc3QgPSBzZWxmLmZpbmRfb3JfY3JlYXRlX3Rlc3QoZGF0
YSkKKyAgICAgICAgc3VidGVzdF9uYW1lID0gZGF0YVsic3VidGVzdCJdCisKKyAgICAgICAgaWYg
dGVzdFsic3VidGVzdHMiXS5nZXQoc3VidGVzdF9uYW1lKToKKyAgICAgICAgICAgIHJldHVybiB0
ZXN0WyJzdWJ0ZXN0cyJdW3N1YnRlc3RfbmFtZV0KKworICAgICAgICBzdWJ0ZXN0ID0geworICAg
ICAgICAgICAgInN0YXR1cyI6IGRlZmF1bHRkaWN0KGludCksCisgICAgICAgICAgICAibWVzc2Fn
ZXMiOiBzZXQoKQorICAgICAgICB9CisgICAgICAgIHRlc3RbInN1YnRlc3RzIl1bc3VidGVzdF9u
YW1lXSA9IHN1YnRlc3QKKworICAgICAgICByZXR1cm4gc3VidGVzdAorCisgICAgZGVmIHRlc3Rf
c3RhdHVzKHNlbGYsIGRhdGEpOgorICAgICAgICBzdWJ0ZXN0ID0gc2VsZi5maW5kX29yX2NyZWF0
ZV9zdWJ0ZXN0KGRhdGEpCisgICAgICAgIHN1YnRlc3RbInN0YXR1cyJdW2RhdGFbInN0YXR1cyJd
XSArPSAxCisgICAgICAgIGlmIGRhdGEuZ2V0KCJtZXNzYWdlIik6CisgICAgICAgICAgICBzdWJ0
ZXN0WyJtZXNzYWdlcyJdLmFkZChkYXRhWyJtZXNzYWdlIl0pCisKKyAgICBkZWYgdGVzdF9lbmQo
c2VsZiwgZGF0YSk6CisgICAgICAgIHRlc3QgPSBzZWxmLmZpbmRfb3JfY3JlYXRlX3Rlc3QoZGF0
YSkKKyAgICAgICAgdGVzdFsic3RhdHVzIl1bZGF0YVsic3RhdHVzIl1dICs9IDEKKworCitkZWYg
aXNfaW5jb25zaXN0ZW50KHJlc3VsdHNfZGljdCwgaXRlcmF0aW9ucyk6CisgICAgIiIiUmV0dXJu
IHdoZXRoZXIgb3Igbm90IGEgc2luZ2xlIHRlc3QgaXMgaW5jb25zaXN0ZW50LiIiIgorICAgIHJl
dHVybiBsZW4ocmVzdWx0c19kaWN0KSA+IDEgb3Igc3VtKHJlc3VsdHNfZGljdC52YWx1ZXMoKSkg
IT0gaXRlcmF0aW9ucworCisKK2RlZiBwcm9jZXNzX3Jlc3VsdHMobG9nLCBpdGVyYXRpb25zKToK
KyAgICAiIiJQcm9jZXNzIHRlc3QgbG9nIGFuZCByZXR1cm4gb3ZlcmFsbCByZXN1bHRzIGFuZCBs
aXN0IG9mIGluY29uc2lzdGVudCB0ZXN0cy4iIiIKKyAgICBpbmNvbnNpc3RlbnQgPSBbXQorICAg
IGhhbmRsZXIgPSBMb2dIYW5kbGVyKCkKKyAgICByZWFkZXIuaGFuZGxlX2xvZyhyZWFkZXIucmVh
ZChsb2cpLCBoYW5kbGVyKQorICAgIHJlc3VsdHMgPSBoYW5kbGVyLnJlc3VsdHMKKyAgICBmb3Ig
dGVzdF9uYW1lLCB0ZXN0IGluIHJlc3VsdHMuaXRlcml0ZW1zKCk6CisgICAgICAgIGlmIGlzX2lu
Y29uc2lzdGVudCh0ZXN0WyJzdGF0dXMiXSwgaXRlcmF0aW9ucyk6CisgICAgICAgICAgICBpbmNv
bnNpc3RlbnQuYXBwZW5kKCh0ZXN0X25hbWUsIE5vbmUsIHRlc3RbInN0YXR1cyJdLCBbXSkpCisg
ICAgICAgIGZvciBzdWJ0ZXN0X25hbWUsIHN1YnRlc3QgaW4gdGVzdFsic3VidGVzdHMiXS5pdGVy
aXRlbXMoKToKKyAgICAgICAgICAgIGlmIGlzX2luY29uc2lzdGVudChzdWJ0ZXN0WyJzdGF0dXMi
XSwgaXRlcmF0aW9ucyk6CisgICAgICAgICAgICAgICAgaW5jb25zaXN0ZW50LmFwcGVuZCgodGVz
dF9uYW1lLCBzdWJ0ZXN0X25hbWUsIHN1YnRlc3RbInN0YXR1cyJdLCBzdWJ0ZXN0WyJtZXNzYWdl
cyJdKSkKKyAgICByZXR1cm4gcmVzdWx0cywgaW5jb25zaXN0ZW50CisKKworZGVmIGVycl9zdHJp
bmcocmVzdWx0c19kaWN0LCBpdGVyYXRpb25zKToKKyAgICAiIiJDcmVhdGUgYW5kIHJldHVybiBz
dHJpbmcgd2l0aCBlcnJvcnMgZnJvbSB0ZXN0IHJ1bi4iIiIKKyAgICBydiA9IFtdCisgICAgdG90
YWxfcmVzdWx0cyA9IHN1bShyZXN1bHRzX2RpY3QudmFsdWVzKCkpCisgICAgZm9yIGtleSwgdmFs
dWUgaW4gc29ydGVkKHJlc3VsdHNfZGljdC5pdGVtcygpKToKKyAgICAgICAgcnYuYXBwZW5kKCIl
cyVzIiAlCisgICAgICAgICAgICAgICAgICAoa2V5LCAiOiAlcy8lcyIgJSAodmFsdWUsIGl0ZXJh
dGlvbnMpIGlmIHZhbHVlICE9IGl0ZXJhdGlvbnMgZWxzZSAiIikpCisgICAgaWYgdG90YWxfcmVz
dWx0cyA8IGl0ZXJhdGlvbnM6CisgICAgICAgIHJ2LmFwcGVuZCgiTUlTU0lORzogJXMvJXMiICUg
KGl0ZXJhdGlvbnMgLSB0b3RhbF9yZXN1bHRzLCBpdGVyYXRpb25zKSkKKyAgICBydiA9ICIsICIu
am9pbihydikKKyAgICBpZiBpc19pbmNvbnNpc3RlbnQocmVzdWx0c19kaWN0LCBpdGVyYXRpb25z
KToKKyAgICAgICAgcnYgPSAiKiolcyoqIiAlIHJ2CisgICAgcmV0dXJuIHJ2CisKKworZGVmIHdy
aXRlX2luY29uc2lzdGVudChsb2csIGluY29uc2lzdGVudCwgaXRlcmF0aW9ucyk6CisgICAgIiIi
T3V0cHV0IGluY29uc2lzdGVudCB0ZXN0cyB0byBsb2dnZXIuZXJyb3IuIiIiCisgICAgbG9nKCIj
IyBVbnN0YWJsZSByZXN1bHRzICMjXG4iKQorICAgIHN0cmluZ3MgPSBbKAorICAgICAgICAiYCVz
YCIgJSBtYXJrZG93bl9hZGp1c3QodGVzdCksCisgICAgICAgICgiYCVzYCIgJSBtYXJrZG93bl9h
ZGp1c3Qoc3VidGVzdCkpIGlmIHN1YnRlc3QgZWxzZSAiIiwKKyAgICAgICAgZXJyX3N0cmluZyhy
ZXN1bHRzLCBpdGVyYXRpb25zKSwKKyAgICAgICAgKCJgJXNgIiAlIG1hcmtkb3duX2FkanVzdCgi
OyIuam9pbihtZXNzYWdlcykpKSBpZiBsZW4obWVzc2FnZXMpIGVsc2UgIiIpCisgICAgICAgIGZv
ciB0ZXN0LCBzdWJ0ZXN0LCByZXN1bHRzLCBtZXNzYWdlcyBpbiBpbmNvbnNpc3RlbnRdCisgICAg
dGFibGUoWyJUZXN0IiwgIlN1YnRlc3QiLCAiUmVzdWx0cyIsICJNZXNzYWdlcyJdLCBzdHJpbmdz
LCBsb2cpCisKKworZGVmIHdyaXRlX3Jlc3VsdHMobG9nLCByZXN1bHRzLCBpdGVyYXRpb25zLCBw
cl9udW1iZXI9Tm9uZSwgdXNlX2RldGFpbHM9RmFsc2UpOgorICAgIGxvZygiIyMgQWxsIHJlc3Vs
dHMgIyNcbiIpCisgICAgaWYgdXNlX2RldGFpbHM6CisgICAgICAgIGxvZygiPGRldGFpbHM+XG4i
KQorICAgICAgICBsb2coIjxzdW1tYXJ5PiVpICVzIHJhbjwvc3VtbWFyeT5cblxuIiAlIChsZW4o
cmVzdWx0cyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJ0ZXN0cyIgaWYgbGVuKHJlc3VsdHMpID4gMQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlICJ0ZXN0IikpCisKKyAgICBmb3IgdGVzdF9u
YW1lLCB0ZXN0IGluIHJlc3VsdHMuaXRlcml0ZW1zKCk6CisgICAgICAgIGJhc2V1cmwgPSAiaHR0
cDovL3czYy10ZXN0Lm9yZy9zdWJtaXNzaW9ucyIKKyAgICAgICAgaWYgImh0dHBzIiBpbiBvcy5w
YXRoLnNwbGl0ZXh0KHRlc3RfbmFtZSlbMF0uc3BsaXQoIi4iKVsxOl06CisgICAgICAgICAgICBi
YXNldXJsID0gImh0dHBzOi8vdzNjLXRlc3Qub3JnL3N1Ym1pc3Npb25zIgorICAgICAgICB0aXRs
ZSA9IHRlc3RfbmFtZQorICAgICAgICBpZiB1c2VfZGV0YWlsczoKKyAgICAgICAgICAgIGxvZygi
PGRldGFpbHM+XG4iKQorICAgICAgICAgICAgaWYgcHJfbnVtYmVyOgorICAgICAgICAgICAgICAg
IHRpdGxlID0gIjxhIGhyZWY9XCIlcy8lcyVzXCI+JXM8L2E+IiAlIChiYXNldXJsLCBwcl9udW1i
ZXIsIHRlc3RfbmFtZSwgdGl0bGUpCisgICAgICAgICAgICBsb2coJzxzdW1tYXJ5PiVzPC9zdW1t
YXJ5PlxuXG4nICUgdGl0bGUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBsb2coIiMjIyAl
cyAjIyMiICUgdGl0bGUpCisgICAgICAgIHN0cmluZ3MgPSBbKCIiLCBlcnJfc3RyaW5nKHRlc3Rb
InN0YXR1cyJdLCBpdGVyYXRpb25zKSwgIiIpXQorCisgICAgICAgIHN0cmluZ3MuZXh0ZW5kKCgo
CisgICAgICAgICAgICAoImAlc2AiICUgbWFya2Rvd25fYWRqdXN0KHN1YnRlc3RfbmFtZSkpIGlm
IHN1YnRlc3QgZWxzZSAiIiwKKyAgICAgICAgICAgIGVycl9zdHJpbmcoc3VidGVzdFsic3RhdHVz
Il0sIGl0ZXJhdGlvbnMpLAorICAgICAgICAgICAgKCJgJXNgIiAlIG1hcmtkb3duX2FkanVzdCgn
Oycuam9pbihzdWJ0ZXN0WyJtZXNzYWdlcyJdKSkpIGlmIGxlbihzdWJ0ZXN0WyJtZXNzYWdlcyJd
KSBlbHNlICIiKQorICAgICAgICAgICAgZm9yIHN1YnRlc3RfbmFtZSwgc3VidGVzdCBpbiB0ZXN0
WyJzdWJ0ZXN0cyJdLml0ZW1zKCkpKQorICAgICAgICB0YWJsZShbIlN1YnRlc3QiLCAiUmVzdWx0
cyIsICJNZXNzYWdlcyJdLCBzdHJpbmdzLCBsb2cpCisgICAgICAgIGlmIHVzZV9kZXRhaWxzOgor
ICAgICAgICAgICAgbG9nKCI8L2RldGFpbHM+XG4iKQorCisgICAgaWYgdXNlX2RldGFpbHM6Cisg
ICAgICAgIGxvZygiPC9kZXRhaWxzPlxuIikKKworCitkZWYgcnVuKHZlbnYsIGxvZ2dlciwgKipr
d2FyZ3MpOgorICAgIGt3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdID0gRmFsc2UKKyAgICBpZiBr
d2FyZ3NbInJlcGVhdCJdID09IDE6CisgICAgICAgIGt3YXJnc1sicmVwZWF0Il0gPSAxMAorCisg
ICAgaGFuZGxlciA9IExvZ0FjdGlvbkZpbHRlcigKKyAgICAgICAgTG9nTGV2ZWxGaWx0ZXIoCisg
ICAgICAgICAgICBTdHJlYW1IYW5kbGVyKAorICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQsCisg
ICAgICAgICAgICAgICAgVGJwbEZvcm1hdHRlcigpCisgICAgICAgICAgICApLAorICAgICAgICAg
ICAgIldBUk5JTkciKSwKKyAgICAgICAgWyJsb2ciLCAicHJvY2Vzc19vdXRwdXQiXSkKKworICAg
ICMgVGhlcmUgaXMgYSBwdWJsaWMgQVBJIGZvciB0aGlzIGluIHRoZSBuZXh0IG1vemxvZworICAg
IGluaXRpYWxfaGFuZGxlcnMgPSBsb2dnZXIuX3N0YXRlLmhhbmRsZXJzCisgICAgbG9nZ2VyLl9z
dGF0ZS5oYW5kbGVycyA9IFtdCisKKyAgICB3aXRoIG9wZW4oInJhdy5sb2ciLCAid2IiKSBhcyBs
b2c6CisgICAgICAgICMgU2V0dXAgbG9nZ2luZyBmb3Igd3B0cnVubmVyIHRoYXQga2VlcHMgcHJv
Y2VzcyBvdXRwdXQgYW5kCisgICAgICAgICMgd2FybmluZysgbGV2ZWwgbG9ncyBvbmx5CisgICAg
ICAgIGxvZ2dlci5hZGRfaGFuZGxlcihoYW5kbGVyKQorICAgICAgICBsb2dnZXIuYWRkX2hhbmRs
ZXIoU3RyZWFtSGFuZGxlcihsb2csIEpTT05Gb3JtYXR0ZXIoKSkpCisKKyAgICAgICAgd3B0cnVu
bmVyLnJ1bl90ZXN0cygqKmt3YXJncykKKworICAgIGxvZ2dlci5fc3RhdGUuaGFuZGxlcnMgPSBp
bml0aWFsX2hhbmRsZXJzCisKKyAgICB3aXRoIG9wZW4oInJhdy5sb2ciLCAicmIiKSBhcyBsb2c6
CisgICAgICAgIHJlc3VsdHMsIGluY29uc2lzdGVudCA9IHByb2Nlc3NfcmVzdWx0cyhsb2csIGt3
YXJnc1sicmVwZWF0Il0pCisKKyAgICByZXR1cm4ga3dhcmdzWyJyZXBlYXQiXSwgcmVzdWx0cywg
aW5jb25zaXN0ZW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0ZmlsZXMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0ZmlsZXMucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTZlNjczZDczZmRiZTNlMDg4YzA0MDRkZTMxMTgzZWIwOTkwN2Y2NQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0L3Rlc3RmaWxlcy5weQpAQCAtMCwwICsxLDMzNiBAQAoraW1wb3J0IGFyZ3BhcnNlCitpbXBv
cnQgaXRlcnRvb2xzCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IG9zCitpbXBvcnQgcmUKK2ltcG9y
dCBzdWJwcm9jZXNzCitpbXBvcnQgc3lzCisKK2Zyb20gLi5tYW5pZmVzdCBpbXBvcnQgbWFuaWZl
c3QsIHVwZGF0ZQorCitoZXJlID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQord3B0X3Jvb3Qg
PSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsIG9zLnBhcmRpciwgb3MucGFyZGly
KSkKKworbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoKQorCisKK2RlZiBnZXRfZ2l0X2NtZChy
ZXBvX3BhdGgpOgorICAgICIiIkNyZWF0ZSBhIGZ1bmN0aW9uIGZvciBpbnZva2luZyBnaXQgY29t
bWFuZHMgYXMgYSBzdWJwcm9jZXNzLiIiIgorICAgIGRlZiBnaXQoY21kLCAqYXJncyk6CisgICAg
ICAgIGZ1bGxfY21kID0gWyJnaXQiLCBjbWRdICsgbGlzdChpdGVtLmRlY29kZSgidXRmOCIpIGlm
IGlzaW5zdGFuY2UoaXRlbSwgYnl0ZXMpIGVsc2UgaXRlbSBmb3IgaXRlbSBpbiBhcmdzKQorICAg
ICAgICB0cnk6CisgICAgICAgICAgICBsb2dnZXIuZGVidWcoIiAiLmpvaW4oZnVsbF9jbWQpKQor
ICAgICAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0KGZ1bGxfY21kLCBjd2Q9
cmVwb19wYXRoLCBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQpLmRlY29kZSgidXRmOCIpLnN0cmlw
KCkKKyAgICAgICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yIGFzIGU6Cisg
ICAgICAgICAgICBsb2dnZXIuZXJyb3IoIkdpdCBjb21tYW5kIGV4aXRlZCB3aXRoIHN0YXR1cyAl
aSIgJSBlLnJldHVybmNvZGUpCisgICAgICAgICAgICBsb2dnZXIuZXJyb3IoZS5vdXRwdXQpCisg
ICAgICAgICAgICBzeXMuZXhpdCgxKQorICAgIHJldHVybiBnaXQKKworCitkZWYgZGlzcGxheV9i
cmFuY2hfcG9pbnQoKToKKyAgICBwcmludChicmFuY2hfcG9pbnQoKSkKKworCitkZWYgYnJhbmNo
X3BvaW50KCk6CisgICAgZ2l0ID0gZ2V0X2dpdF9jbWQod3B0X3Jvb3QpCisgICAgaWYgKG9zLmVu
dmlyb24uZ2V0KCJUUkFWSVNfUFVMTF9SRVFVRVNUIiwgImZhbHNlIikgPT0gImZhbHNlIiBhbmQK
KyAgICAgICAgb3MuZW52aXJvbi5nZXQoIlRSQVZJU19CUkFOQ0giKSA9PSAibWFzdGVyIik6Cisg
ICAgICAgICMgRm9yIGJ1aWxkcyBvbiB0aGUgbWFzdGVyIGJyYW5jaCBqdXN0IHJldHVybiB0aGUg
SEVBRCBjb21taXQKKyAgICAgICAgcmV0dXJuIGdpdCgicmV2LXBhcnNlIiwgIkhFQUQiKQorICAg
IGVsaWYgb3MuZW52aXJvbi5nZXQoIlRSQVZJU19QVUxMX1JFUVVFU1QiLCAiZmFsc2UiKSAhPSAi
ZmFsc2UiOgorICAgICAgICAjIFRoaXMgaXMgYSBQUiwgc28gdGhlIGJhc2UgYnJhbmNoIGlzIGlu
IFRSQVZJU19CUkFOQ0gKKyAgICAgICAgdHJhdmlzX2JyYW5jaCA9IG9zLmVudmlyb24uZ2V0KCJU
UkFWSVNfQlJBTkNIIikKKyAgICAgICAgYXNzZXJ0IHRyYXZpc19icmFuY2gsICJUUkFWSVNfQlJB
TkNIIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIGRlZmluZWQiCisgICAgICAgIGJyYW5jaF9wb2lu
dCA9IGdpdCgicmV2LXBhcnNlIiwgdHJhdmlzX2JyYW5jaCkKKyAgICBlbHNlOgorICAgICAgICAj
IE90aGVyd2lzZSB3ZSBhcmVuJ3Qgb24gYSBQUiwgc28gd2UgdHJ5IHRvIGZpbmQgY29tbWl0cyB0
aGF0IGFyZSBvbmx5IGluIHRoZQorICAgICAgICAjIGN1cnJlbnQgYnJhbmNoIGMuZi4KKyAgICAg
ICAgIyBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzEzNDYwMTUyL2ZpbmQtZmly
c3QtYW5jZXN0b3ItY29tbWl0LWluLWFub3RoZXItYnJhbmNoCisgICAgICAgIGhlYWQgPSBnaXQo
InJldi1wYXJzZSIsICJIRUFEIikKKyAgICAgICAgbm90X2hlYWRzID0gW2l0ZW0gZm9yIGl0ZW0g
aW4gZ2l0KCJyZXYtcGFyc2UiLCAiLS1ub3QiLCAiLS1hbGwiKS5zcGxpdCgiXG4iKQorICAgICAg
ICAgICAgICAgICAgICAgaWYgaXRlbS5zdHJpcCgpIGFuZCBoZWFkIG5vdCBpbiBpdGVtXQorICAg
ICAgICBjb21taXRzID0gZ2l0KCJyZXYtbGlzdCIsICJIRUFEIiwgKm5vdF9oZWFkcykuc3BsaXQo
IlxuIikKKyAgICAgICAgYnJhbmNoX3BvaW50ID0gTm9uZQorICAgICAgICBpZiBsZW4oY29tbWl0
cyk6CisgICAgICAgICAgICBmaXJzdF9jb21taXQgPSBjb21taXRzWy0xXQorICAgICAgICAgICAg
aWYgZmlyc3RfY29tbWl0OgorICAgICAgICAgICAgICAgIGJyYW5jaF9wb2ludCA9IGdpdCgicmV2
LXBhcnNlIiwgZmlyc3RfY29tbWl0ICsgIl4iKQorCisgICAgICAgICMgVGhlIGFib3ZlIGhldXJp
c3RpYyB3aWxsIGZhaWwgaW4gdGhlIGZvbGxvd2luZyBjYXNlczoKKyAgICAgICAgIworICAgICAg
ICAjIC0gVGhlIGN1cnJlbnQgYnJhbmNoIGhhcyBmYWxsZW4gYmVoaW5kIHRoZSB2ZXJzaW9uIHJl
dHJpZXZlZCB2aWEgdGhlIGFib3ZlCisgICAgICAgICMgICBgZmV0Y2hgIGludm9jYXRpb24KKyAg
ICAgICAgIyAtIENoYW5nZXMgb24gdGhlIGN1cnJlbnQgYnJhbmNoIHdlcmUgcmViYXNlZCBhbmQg
dGhlcmVmb3JlIGRvIG5vdCBleGlzdCBvbiBhbnkKKyAgICAgICAgIyAgIG90aGVyIGJyYW5jaC4g
VGhpcyB3aWxsIHJlc3VsdCBpbiB0aGUgc2VsZWN0aW9uIG9mIGEgY29tbWl0IHRoYXQgaXMgZWFy
bGllcgorICAgICAgICAjICAgaW4gdGhlIGhpc3RvcnkgdGhhbiBkZXNpcmVkIChhcyBkZXRlcm1p
bmVkIGJ5IGNhbGN1bGF0aW5nIHRoZSBsYXRlciBvZiB0aGUKKyAgICAgICAgIyAgIGJyYW5jaCBw
b2ludCBhbmQgdGhlIG1lcmdlIGJhc2UpCisgICAgICAgICMKKyAgICAgICAgIyBJbiBlaXRoZXIg
Y2FzZSwgZmFsbCBiYWNrIHRvIHVzaW5nIHRoZSBtZXJnZSBiYXNlIGFzIHRoZSBicmFuY2ggcG9p
bnQuCisgICAgICAgIG1lcmdlX2Jhc2UgPSBnaXQoIm1lcmdlLWJhc2UiLCAiSEVBRCIsICJvcmln
aW4vbWFzdGVyIikKKyAgICAgICAgaWYgKGJyYW5jaF9wb2ludCBpcyBOb25lIG9yCisgICAgICAg
ICAgICAoYnJhbmNoX3BvaW50ICE9IG1lcmdlX2Jhc2UgYW5kCisgICAgICAgICAgICAgbm90IGdp
dCgibG9nIiwgIi0tb25lbGluZSIsICIlcy4uJXMiICUgKG1lcmdlX2Jhc2UsIGJyYW5jaF9wb2lu
dCkpLnN0cmlwKCkpKToKKyAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZygiVXNpbmcgbWVyZ2UtYmFz
ZSBhcyB0aGUgYnJhbmNoIHBvaW50IikKKyAgICAgICAgICAgIGJyYW5jaF9wb2ludCA9IG1lcmdl
X2Jhc2UKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZygiVXNpbmcgZmly
c3QgY29tbWl0IG9uIGFub3RoZXIgYnJhbmNoIGFzIHRoZSBicmFuY2ggcG9pbnQiKQorCisgICAg
bG9nZ2VyLmRlYnVnKCJCcmFuY2ggcG9pbnQgZnJvbSBtYXN0ZXI6ICVzIiAlIGJyYW5jaF9wb2lu
dCkKKyAgICByZXR1cm4gYnJhbmNoX3BvaW50CisKKworZGVmIGNvbXBpbGVfaWdub3JlX3J1bGUo
cnVsZSk6CisgICAgcnVsZSA9IHJ1bGUucmVwbGFjZShvcy5wYXRoLnNlcCwgIi8iKQorICAgIHBh
cnRzID0gcnVsZS5zcGxpdCgiLyIpCisgICAgcmVfcGFydHMgPSBbXQorICAgIGZvciBwYXJ0IGlu
IHBhcnRzOgorICAgICAgICBpZiBwYXJ0LmVuZHN3aXRoKCIqKiIpOgorICAgICAgICAgICAgcmVf
cGFydHMuYXBwZW5kKHJlLmVzY2FwZShwYXJ0WzotMl0pICsgIi4qIikKKyAgICAgICAgZWxpZiBw
YXJ0LmVuZHN3aXRoKCIqIik6CisgICAgICAgICAgICByZV9wYXJ0cy5hcHBlbmQocmUuZXNjYXBl
KHBhcnRbOi0xXSkgKyAiW14vXSoiKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVfcGFy
dHMuYXBwZW5kKHJlLmVzY2FwZShwYXJ0KSkKKyAgICByZXR1cm4gcmUuY29tcGlsZSgiXiVzJCIg
JSAiLyIuam9pbihyZV9wYXJ0cykpCisKKworZGVmIHJlcG9fZmlsZXNfY2hhbmdlZChyZXZpc2gs
IGluY2x1ZGVfdW5jb21taXR0ZWQ9RmFsc2UsIGluY2x1ZGVfbmV3PUZhbHNlKToKKyAgICBnaXQg
PSBnZXRfZ2l0X2NtZCh3cHRfcm9vdCkKKyAgICBmaWxlcyA9IGdpdCgiZGlmZiIsICItLW5hbWUt
b25seSIsICIteiIsIHJldmlzaCkuc3BsaXQoIlwwIikKKyAgICBhc3NlcnQgbm90IGZpbGVzWy0x
XQorICAgIGZpbGVzID0gc2V0KGZpbGVzWzotMV0pCisKKyAgICBpZiBpbmNsdWRlX3VuY29tbWl0
dGVkOgorICAgICAgICBlbnRyaWVzID0gZ2l0KCJzdGF0dXMiLCAiLXoiKS5zcGxpdCgiXDAiKQor
ICAgICAgICBhc3NlcnQgbm90IGVudHJpZXNbLTFdCisgICAgICAgIGVudHJpZXMgPSBlbnRyaWVz
WzotMV0KKyAgICAgICAgZm9yIGl0ZW0gaW4gZW50cmllczoKKyAgICAgICAgICAgIHN0YXR1cywg
cGF0aCA9IGl0ZW0uc3BsaXQoKQorICAgICAgICAgICAgaWYgc3RhdHVzID09ICI/PyIgYW5kIG5v
dCBpbmNsdWRlX25ldzoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2RpcihwYXRoKToKKyAgICAgICAg
ICAgICAgICAgICAgZmlsZXMuYWRkKHBhdGgpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICAgICAgZm9yIGRpcnBhdGgsIGRpcm5hbWVzLCBmaWxlbmFtZXMgaW4gb3Mud2Fs
ayhwYXRoKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciBmaWxlbmFtZSBpbiBmaWxlbmFt
ZXM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXMuYWRkKG9zLnBhdGguam9pbihk
aXJwYXRoLCBmaWxlbmFtZSkpCisKKyAgICByZXR1cm4gZmlsZXMKKworCitkZWYgZXhjbHVkZV9p
Z25vcmVkKGZpbGVzLCBpZ25vcmVfcnVsZXMpOgorICAgIGlmIGlnbm9yZV9ydWxlcyBpcyBOb25l
OgorICAgICAgICBpZ25vcmVfcnVsZXMgPSBbXQorICAgIGlnbm9yZV9ydWxlcyA9IFtjb21waWxl
X2lnbm9yZV9ydWxlKGl0ZW0pIGZvciBpdGVtIGluIGlnbm9yZV9ydWxlc10KKworICAgIGNoYW5n
ZWQgPSBbXQorICAgIGlnbm9yZWQgPSBbXQorICAgIGZvciBpdGVtIGluIHNvcnRlZChmaWxlcyk6
CisgICAgICAgIGZ1bGxwYXRoID0gb3MucGF0aC5qb2luKHdwdF9yb290LCBpdGVtKQorICAgICAg
ICBydWxlX3BhdGggPSBpdGVtLnJlcGxhY2Uob3MucGF0aC5zZXAsICIvIikKKyAgICAgICAgZm9y
IHJ1bGUgaW4gaWdub3JlX3J1bGVzOgorICAgICAgICAgICAgaWYgcnVsZS5tYXRjaChydWxlX3Bh
dGgpOgorICAgICAgICAgICAgICAgIGlnbm9yZWQuYXBwZW5kKGZ1bGxwYXRoKQorICAgICAgICAg
ICAgICAgIGJyZWFrCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjaGFuZ2VkLmFwcGVuZChm
dWxscGF0aCkKKworICAgIHJldHVybiBjaGFuZ2VkLCBpZ25vcmVkCisKKworZGVmIGZpbGVzX2No
YW5nZWQocmV2aXNoLCBpZ25vcmVfcnVsZXM9Tm9uZSwgaW5jbHVkZV91bmNvbW1pdHRlZD1GYWxz
ZSwgaW5jbHVkZV9uZXc9RmFsc2UpOgorICAgICIiIkdldCBhbmQgcmV0dXJuIGZpbGVzIGNoYW5n
ZWQgc2luY2UgY3VycmVudCBicmFuY2ggZGl2ZXJnZWQgZnJvbSBtYXN0ZXIsCisgICAgZXhjbHVk
aW5nIHRob3NlIHRoYXQgYXJlIGxvY2F0ZWQgd2l0aGluIGFueSBwYXRoIG1hdGNoZWQgYnkKKyAg
ICBgaWdub3JlX3J1bGVzYC4iIiIKKyAgICBmaWxlcyA9IHJlcG9fZmlsZXNfY2hhbmdlZChyZXZp
c2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZV91bmNvbW1pdHRlZD1p
bmNsdWRlX3VuY29tbWl0dGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1
ZGVfbmV3PWluY2x1ZGVfbmV3KQorICAgIGlmIG5vdCBmaWxlczoKKyAgICAgICAgcmV0dXJuIFtd
LCBbXQorCisgICAgcmV0dXJuIGV4Y2x1ZGVfaWdub3JlZChmaWxlcywgaWdub3JlX3J1bGVzKQor
CisKK2RlZiBfaW5fcmVwb19yb290KGZ1bGxfcGF0aCk6CisgICAgcmVsX3BhdGggPSBvcy5wYXRo
LnJlbHBhdGgoZnVsbF9wYXRoLCB3cHRfcm9vdCkKKyAgICBwYXRoX2NvbXBvbmVudHMgPSByZWxf
cGF0aC5zcGxpdChvcy5zZXApCisgICAgcmV0dXJuIGxlbihwYXRoX2NvbXBvbmVudHMpIDwgMgor
CisKK2RlZiBfaW5pdF9tYW5pZmVzdF9jYWNoZSgpOgorICAgIGMgPSB7fQorCisgICAgZGVmIGxv
YWQobWFuaWZlc3RfcGF0aD1Ob25lKToKKyAgICAgICAgaWYgbWFuaWZlc3RfcGF0aCBpcyBOb25l
OgorICAgICAgICAgICAgbWFuaWZlc3RfcGF0aCA9IG9zLnBhdGguam9pbih3cHRfcm9vdCwgIk1B
TklGRVNULmpzb24iKQorICAgICAgICBpZiBjLmdldChtYW5pZmVzdF9wYXRoKToKKyAgICAgICAg
ICAgIHJldHVybiBjW21hbmlmZXN0X3BhdGhdCisgICAgICAgICMgY2FjaGUgYXQgbW9zdCBvbmUg
cGF0aDptYW5pZmVzdAorICAgICAgICBjLmNsZWFyKCkKKyAgICAgICAgd3B0X21hbmlmZXN0ID0g
bWFuaWZlc3QubG9hZCh3cHRfcm9vdCwgbWFuaWZlc3RfcGF0aCkKKyAgICAgICAgaWYgd3B0X21h
bmlmZXN0IGlzIE5vbmU6CisgICAgICAgICAgICB3cHRfbWFuaWZlc3QgPSBtYW5pZmVzdC5NYW5p
ZmVzdCgpCisgICAgICAgIHVwZGF0ZS51cGRhdGUod3B0X3Jvb3QsIHdwdF9tYW5pZmVzdCkKKyAg
ICAgICAgY1ttYW5pZmVzdF9wYXRoXSA9IHdwdF9tYW5pZmVzdAorICAgICAgICByZXR1cm4gY1tt
YW5pZmVzdF9wYXRoXQorICAgIHJldHVybiBsb2FkCisKKworbG9hZF9tYW5pZmVzdCA9IF9pbml0
X21hbmlmZXN0X2NhY2hlKCkKKworCitkZWYgYWZmZWN0ZWRfdGVzdGZpbGVzKGZpbGVzX2NoYW5n
ZWQsIHNraXBfdGVzdHMsIG1hbmlmZXN0X3BhdGg9Tm9uZSk6CisgICAgIiIiRGV0ZXJtaW5lIGFu
ZCByZXR1cm4gbGlzdCBvZiB0ZXN0IGZpbGVzIHRoYXQgcmVmZXJlbmNlIGNoYW5nZWQgZmlsZXMu
IiIiCisgICAgYWZmZWN0ZWRfdGVzdGZpbGVzID0gc2V0KCkKKyAgICAjIEV4Y2x1ZGUgZmlsZXMg
dGhhdCBhcmUgaW4gdGhlIHJlcG8gcm9vdCwgYmVjYXVzZQorICAgICMgdGhleSBhcmUgbm90IHBh
cnQgb2YgYW55IHRlc3QuCisgICAgZmlsZXNfY2hhbmdlZCA9IFtmIGZvciBmIGluIGZpbGVzX2No
YW5nZWQgaWYgbm90IF9pbl9yZXBvX3Jvb3QoZildCisgICAgbm9udGVzdHNfY2hhbmdlZCA9IHNl
dChmaWxlc19jaGFuZ2VkKQorICAgIHdwdF9tYW5pZmVzdCA9IGxvYWRfbWFuaWZlc3QobWFuaWZl
c3RfcGF0aCkKKworICAgIHRlc3RfdHlwZXMgPSBbInRlc3RoYXJuZXNzIiwgInJlZnRlc3QiLCAi
d2RzcGVjIl0KKyAgICBzdXBwb3J0X2ZpbGVzID0ge29zLnBhdGguam9pbih3cHRfcm9vdCwgcGF0
aCkKKyAgICAgICAgICAgICAgICAgICAgIGZvciBfLCBwYXRoLCBfIGluIHdwdF9tYW5pZmVzdC5p
dGVydHlwZXMoInN1cHBvcnQiKX0KKyAgICB3ZHNwZWNfdGVzdF9maWxlcyA9IHtvcy5wYXRoLmpv
aW4od3B0X3Jvb3QsIHBhdGgpCisgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIF8sIHBhdGgs
IF8gaW4gd3B0X21hbmlmZXN0Lml0ZXJ0eXBlcygid2RzcGVjIil9CisgICAgdGVzdF9maWxlcyA9
IHtvcy5wYXRoLmpvaW4od3B0X3Jvb3QsIHBhdGgpCisgICAgICAgICAgICAgICAgICBmb3IgXywg
cGF0aCwgXyBpbiB3cHRfbWFuaWZlc3QuaXRlcnR5cGVzKCp0ZXN0X3R5cGVzKX0KKworICAgIG5v
bnRlc3RzX2NoYW5nZWQgPSBub250ZXN0c19jaGFuZ2VkLmludGVyc2VjdGlvbihzdXBwb3J0X2Zp
bGVzKQorCisgICAgdGVzdHNfY2hhbmdlZCA9IHNldChpdGVtIGZvciBpdGVtIGluIGZpbGVzX2No
YW5nZWQgaWYgaXRlbSBpbiB0ZXN0X2ZpbGVzKQorCisgICAgbm9udGVzdF9jaGFuZ2VkX3BhdGhz
ID0gc2V0KCkKKyAgICByZXdyaXRlcyA9IHsiL3Jlc291cmNlcy93ZWJpZGwyL2xpYi93ZWJpZGwy
LmpzIjogIi9yZXNvdXJjZXMvV2ViSURMUGFyc2VyLmpzIn0KKyAgICBmb3IgZnVsbF9wYXRoIGlu
IG5vbnRlc3RzX2NoYW5nZWQ6CisgICAgICAgIHJlbF9wYXRoID0gb3MucGF0aC5yZWxwYXRoKGZ1
bGxfcGF0aCwgd3B0X3Jvb3QpCisgICAgICAgIHBhdGhfY29tcG9uZW50cyA9IHJlbF9wYXRoLnNw
bGl0KG9zLnNlcCkKKyAgICAgICAgdG9wX2xldmVsX3N1YmRpciA9IHBhdGhfY29tcG9uZW50c1sw
XQorICAgICAgICBpZiB0b3BfbGV2ZWxfc3ViZGlyIGluIHNraXBfdGVzdHM6CisgICAgICAgICAg
ICBjb250aW51ZQorICAgICAgICByZXBvX3BhdGggPSAiLyIgKyBvcy5wYXRoLnJlbHBhdGgoZnVs
bF9wYXRoLCB3cHRfcm9vdCkucmVwbGFjZShvcy5wYXRoLnNlcCwgIi8iKQorICAgICAgICBpZiBy
ZXBvX3BhdGggaW4gcmV3cml0ZXM6CisgICAgICAgICAgICByZXBvX3BhdGggPSByZXdyaXRlc1ty
ZXBvX3BhdGhdCisgICAgICAgICAgICBmdWxsX3BhdGggPSBvcy5wYXRoLmpvaW4od3B0X3Jvb3Qs
IHJlcG9fcGF0aFsxOl0ucmVwbGFjZSgiLyIsIG9zLnBhdGguc2VwKSkKKyAgICAgICAgbm9udGVz
dF9jaGFuZ2VkX3BhdGhzLmFkZCgoZnVsbF9wYXRoLCByZXBvX3BhdGgpKQorCisgICAgZGVmIGFm
ZmVjdGVkX2J5X3dkc3BlYyh0ZXN0KToKKyAgICAgICAgYWZmZWN0ZWQgPSBGYWxzZQorICAgICAg
ICBpZiB0ZXN0IGluIHdkc3BlY190ZXN0X2ZpbGVzOgorICAgICAgICAgICAgZm9yIHN1cHBvcnRf
ZnVsbF9wYXRoLCBfIGluIG5vbnRlc3RfY2hhbmdlZF9wYXRoczoKKyAgICAgICAgICAgICAgICAj
IHBhcmVudCBvZiBzdXBwb3J0IGZpbGUgb3Igb2YgInN1cHBvcnQiIGRpcmVjdG9yeQorICAgICAg
ICAgICAgICAgIHBhcmVudCA9IG9zLnBhdGguZGlybmFtZShzdXBwb3J0X2Z1bGxfcGF0aCkKKyAg
ICAgICAgICAgICAgICBpZiBvcy5wYXRoLmJhc2VuYW1lKHBhcmVudCkgPT0gInN1cHBvcnQiOgor
ICAgICAgICAgICAgICAgICAgICBwYXJlbnQgPSBvcy5wYXRoLmRpcm5hbWUocGFyZW50KQorICAg
ICAgICAgICAgICAgIHJlbHBhdGggPSBvcy5wYXRoLnJlbHBhdGgodGVzdCwgcGFyZW50KQorICAg
ICAgICAgICAgICAgIGlmIG5vdCByZWxwYXRoLnN0YXJ0c3dpdGgob3MucGFyZGlyKToKKyAgICAg
ICAgICAgICAgICAgICAgIyB0ZXN0ZmlsZSBpcyBpbiBzdWJ0cmVlIG9mIHN1cHBvcnQgZmlsZQor
ICAgICAgICAgICAgICAgICAgICBhZmZlY3RlZCA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAg
YnJlYWsKKyAgICAgICAgcmV0dXJuIGFmZmVjdGVkCisKKyAgICBmb3Igcm9vdCwgZGlycywgZm5h
bWVzIGluIG9zLndhbGsod3B0X3Jvb3QpOgorICAgICAgICAjIFdhbGsgdG9wX2xldmVsX3N1YmRp
ciBsb29raW5nIGZvciB0ZXN0IGZpbGVzIGNvbnRhaW5pbmcgZWl0aGVyIHRoZQorICAgICAgICAj
IHJlbGF0aXZlIGZpbGVwYXRoIG9yIGFic29sdXRlIGZpbGVwYXRoIHRvIHRoZSBjaGFuZ2VkIGZp
bGVzLgorICAgICAgICBpZiByb290ID09IHdwdF9yb290OgorICAgICAgICAgICAgZm9yIGRpcl9u
YW1lIGluIHNraXBfdGVzdHM6CisgICAgICAgICAgICAgICAgZGlycy5yZW1vdmUoZGlyX25hbWUp
CisgICAgICAgIGZvciBmbmFtZSBpbiBmbmFtZXM6CisgICAgICAgICAgICB0ZXN0X2Z1bGxfcGF0
aCA9IG9zLnBhdGguam9pbihyb290LCBmbmFtZSkKKyAgICAgICAgICAgICMgU2tpcCBhbnkgZmls
ZSB0aGF0J3Mgbm90IGEgdGVzdCBmaWxlLgorICAgICAgICAgICAgaWYgdGVzdF9mdWxsX3BhdGgg
bm90IGluIHRlc3RfZmlsZXM6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAg
IGlmIGFmZmVjdGVkX2J5X3dkc3BlYyh0ZXN0X2Z1bGxfcGF0aCk6CisgICAgICAgICAgICAgICAg
YWZmZWN0ZWRfdGVzdGZpbGVzLmFkZCh0ZXN0X2Z1bGxfcGF0aCkKKyAgICAgICAgICAgICAgICBj
b250aW51ZQorCisgICAgICAgICAgICB3aXRoIG9wZW4odGVzdF9mdWxsX3BhdGgsICJyYiIpIGFz
IGZoOgorICAgICAgICAgICAgICAgIGZpbGVfY29udGVudHMgPSBmaC5yZWFkKCkKKyAgICAgICAg
ICAgICAgICBpZiBmaWxlX2NvbnRlbnRzLnN0YXJ0c3dpdGgoIlx4ZmVceGZmIik6CisgICAgICAg
ICAgICAgICAgICAgIGZpbGVfY29udGVudHMgPSBmaWxlX2NvbnRlbnRzLmRlY29kZSgidXRmLTE2
YmUiLCAicmVwbGFjZSIpCisgICAgICAgICAgICAgICAgZWxpZiBmaWxlX2NvbnRlbnRzLnN0YXJ0
c3dpdGgoIlx4ZmZceGZlIik6CisgICAgICAgICAgICAgICAgICAgIGZpbGVfY29udGVudHMgPSBm
aWxlX2NvbnRlbnRzLmRlY29kZSgidXRmLTE2bGUiLCAicmVwbGFjZSIpCisgICAgICAgICAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgZmlsZV9jb250ZW50cyA9IGZpbGVfY29udGVu
dHMuZGVjb2RlKCJ1dGY4IiwgInJlcGxhY2UiKQorICAgICAgICAgICAgICAgIGZvciBmdWxsX3Bh
dGgsIHJlcG9fcGF0aCBpbiBub250ZXN0X2NoYW5nZWRfcGF0aHM6CisgICAgICAgICAgICAgICAg
ICAgIHJlbF9wYXRoID0gb3MucGF0aC5yZWxwYXRoKGZ1bGxfcGF0aCwgcm9vdCkucmVwbGFjZShv
cy5wYXRoLnNlcCwgIi8iKQorICAgICAgICAgICAgICAgICAgICBpZiByZWxfcGF0aCBpbiBmaWxl
X2NvbnRlbnRzIG9yIHJlcG9fcGF0aCBpbiBmaWxlX2NvbnRlbnRzOgorICAgICAgICAgICAgICAg
ICAgICAgICAgYWZmZWN0ZWRfdGVzdGZpbGVzLmFkZCh0ZXN0X2Z1bGxfcGF0aCkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICByZXR1cm4gdGVzdHNfY2hhbmdlZCwgYWZm
ZWN0ZWRfdGVzdGZpbGVzCisKKworZGVmIGdldF9wYXJzZXIoKToKKyAgICBwYXJzZXIgPSBhcmdw
YXJzZS5Bcmd1bWVudFBhcnNlcigpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgicmV2aXNoIiwg
ZGVmYXVsdD1Ob25lLCBoZWxwPSJDb21taXRzIHRvIGNvbnNpZGVyLiBEZWZhdWx0cyB0byB0aGUg
IgorICAgICAgICAgICAgICAgICAgICAgICAgImNvbW1pdHMgb24gdGhlIGN1cnJlbnQgYnJhbmNo
IiwgbmFyZ3M9Ij8iKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0taWdub3JlLXJ1bGVzIiwg
bmFyZ3M9IioiLCB0eXBlPXNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9c2V0
KFsicmVzb3VyY2VzL3Rlc3RoYXJuZXNzKiJdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhl
bHA9IlJ1bGVzIGZvciBwYXRocyB0byBleGNsdWRlIGZyb20gbGlzdHMgb2YgY2hhbmdlcy4gUnVs
ZXMgYXJlIHBhdGhzICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJyZWxhdGl2ZSB0byB0aGUg
dGVzdCByb290LCB3aXRoICogYmVmb3JlIGEgc2VwYXJhdG9yIG9yIHRoZSBlbmQgbWF0Y2hpbmcg
IgorICAgICAgICAgICAgICAgICAgICAgICAgImFueXRoaW5nIG90aGVyIHRoYW4gYSBwYXRoIHNl
cGFyYXRvciBhbmQgKiogaW4gdGhhdCBwb3NpdGlvbiBtYXRjaGluZyAiCisgICAgICAgICAgICAg
ICAgICAgICAgICAiYW55dGhpbmciKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tbW9kaWZp
ZWQiLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0i
SW5jbHVkZSBmaWxlcyB1bmRlciB2ZXJzaW9uIGNvbnRyb2wgdGhhdCBoYXZlIGJlZW4gIgorICAg
ICAgICAgICAgICAgICAgICAgICAgIm1vZGlmaWVkIG9yIHN0YWdlZCIpCisgICAgcGFyc2VyLmFk
ZF9hcmd1bWVudCgiLS1uZXciLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgaGVscD0iSW5jbHVkZSBmaWxlcyBpbiB0aGUgd29ya3RyZWUgdGhhdCBhcmUgbm90
IGluIHZlcnNpb24gY29udHJvbCIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1zaG93LXR5
cGUiLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0i
UHJpbnQgdGhlIHRlc3QgdHlwZSBhbG9uZyB3aXRoIGVhY2ggYWZmZWN0ZWQgdGVzdCIpCisgICAg
cmV0dXJuIHBhcnNlcgorCisKK2RlZiBnZXRfcGFyc2VyX2FmZmVjdGVkKCk6CisgICAgcGFyc2Vy
ID0gZ2V0X3BhcnNlcigpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1tZXRhZGF0YSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICBkZXN0PSJtZXRhZGF0YV9yb290IiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgZGVm
YXVsdD13cHRfcm9vdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkRpcmVjdG9yeSB0
aGF0IHdpbGwgY29udGFpbiBNQU5JRkVTVC5qc29uIikKKyAgICByZXR1cm4gcGFyc2VyCisKKwor
ZGVmIGdldF9yZXZpc2goKiprd2FyZ3MpOgorICAgIHJldmlzaCA9IGt3YXJnc1sicmV2aXNoIl0K
KyAgICBpZiBrd2FyZ3NbInJldmlzaCJdIGlzIE5vbmU6CisgICAgICAgIHJldmlzaCA9ICIlcy4u
SEVBRCIgJSBicmFuY2hfcG9pbnQoKQorICAgIHJldHVybiByZXZpc2gKKworCitkZWYgcnVuX2No
YW5nZWRfZmlsZXMoKiprd2FyZ3MpOgorICAgIHJldmlzaCA9IGdldF9yZXZpc2goKiprd2FyZ3Mp
CisgICAgY2hhbmdlZCwgXyA9IGZpbGVzX2NoYW5nZWQocmV2aXNoLCBrd2FyZ3NbImlnbm9yZV9y
dWxlcyJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVfdW5jb21taXR0
ZWQ9a3dhcmdzWyJtb2RpZmllZCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
Y2x1ZGVfbmV3PWt3YXJnc1sibmV3Il0pCisgICAgZm9yIGl0ZW0gaW4gc29ydGVkKGNoYW5nZWQp
OgorICAgICAgICBwcmludChvcy5wYXRoLnJlbHBhdGgoaXRlbSwgd3B0X3Jvb3QpKQorCisKK2Rl
ZiBydW5fdGVzdHNfYWZmZWN0ZWQoKiprd2FyZ3MpOgorICAgIHJldmlzaCA9IGdldF9yZXZpc2go
Kiprd2FyZ3MpCisgICAgY2hhbmdlZCwgXyA9IGZpbGVzX2NoYW5nZWQocmV2aXNoLCBrd2FyZ3Nb
Imlnbm9yZV9ydWxlcyJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVf
dW5jb21taXR0ZWQ9a3dhcmdzWyJtb2RpZmllZCJdLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluY2x1ZGVfbmV3PWt3YXJnc1sibmV3Il0pCisgICAgbWFuaWZlc3RfcGF0aCA9IG9z
LnBhdGguam9pbihrd2FyZ3NbIm1ldGFkYXRhX3Jvb3QiXSwgIk1BTklGRVNULmpzb24iKQorICAg
IHRlc3RzX2NoYW5nZWQsIGRlcGVuZGVudHMgPSBhZmZlY3RlZF90ZXN0ZmlsZXMoCisgICAgICAg
IGNoYW5nZWQsCisgICAgICAgIHNldChbImNvbmZvcm1hbmNlLWNoZWNrZXJzIiwgImRvY3MiLCAi
dG9vbHMiXSksCisgICAgICAgIG1hbmlmZXN0X3BhdGg9bWFuaWZlc3RfcGF0aAorICAgICkKKwor
ICAgIG1lc3NhZ2UgPSAie3BhdGh9IgorICAgIGlmIGt3YXJnc1sic2hvd190eXBlIl06CisgICAg
ICAgIHdwdF9tYW5pZmVzdCA9IGxvYWRfbWFuaWZlc3QobWFuaWZlc3RfcGF0aCkKKyAgICAgICAg
bWVzc2FnZSA9ICJ7cGF0aH1cdHtpdGVtX3R5cGV9IgorICAgIGZvciBpdGVtIGluIHNvcnRlZCh0
ZXN0c19jaGFuZ2VkIHwgZGVwZW5kZW50cyk6CisgICAgICAgIHJlc3VsdHMgPSB7CisgICAgICAg
ICAgICAicGF0aCI6IG9zLnBhdGgucmVscGF0aChpdGVtLCB3cHRfcm9vdCkKKyAgICAgICAgfQor
ICAgICAgICBpZiBrd2FyZ3NbInNob3dfdHlwZSJdOgorICAgICAgICAgICAgaXRlbV90eXBlcyA9
IHtpLml0ZW1fdHlwZSBmb3IgaSBpbiB3cHRfbWFuaWZlc3QuaXRlcnBhdGgocmVzdWx0c1sicGF0
aCJdKX0KKyAgICAgICAgICAgIGlmIGxlbihpdGVtX3R5cGVzKSAhPSAxOgorICAgICAgICAgICAg
ICAgIGl0ZW1fdHlwZXMgPSBbIiAiLmpvaW4oaXRlbV90eXBlcyldCisgICAgICAgICAgICByZXN1
bHRzWyJpdGVtX3R5cGUiXSA9IGl0ZW1fdHlwZXMucG9wKCkKKyAgICAgICAgcHJpbnQobWVzc2Fn
ZS5mb3JtYXQoKipyZXN1bHRzKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL2xhdGVzdF9tb3ppbGxhX2NlbnRy
YWwudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHQvdGVzdHMvbGF0ZXN0X21vemlsbGFfY2VudHJhbC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzA3OGEz
NmIwYzViZDViNGZlNmY1NWYyZWNmNWZjYmMyYzUzNWI0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3Rz
L2xhdGVzdF9tb3ppbGxhX2NlbnRyYWwudHh0CkBAIC0wLDAgKzEsMjA4MzQgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+CisJPGhlYWQ+CisJCTxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKwkJPHRp
dGxlPkRpcmVjdG9yeSBMaXN0aW5nOiAvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsLzwvdGl0bGU+CisJPC9oZWFkPgorCTxib2R5PgorCQk8aDE+SW5kZXggb2YgL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC88L2gxPgorCQk8dGFibGU+
CisJCQk8dHI+CisJCQkJPHRoPlR5cGU8L3RoPgorCQkJCTx0aD5OYW1lPC90aD4KKwkJCQk8dGg+
U2l6ZTwvdGg+CisJCQkJPHRoPkxhc3QgTW9kaWZpZWQ8L3RoPgorCQkJPC90cj4KKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5EaXI8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS8iPi4uPC9hPjwvdGQ+CisJCQkJPHRkPjwvdGQ+CisJCQkJPHRkPjwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RGlyPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9tYXItdG9vbHMvIj5t
YXItdG9vbHMvPC9hPjwvdGQ+CisJCQkJPHRkPjwvdGQ+CisJCQkJPHRkPjwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9GaXJlZm94
JTIwSW5zdGFsbGVyLmVuLVVTLmV4ZSI+RmlyZWZveCBJbnN0YWxsZXIuZW4tVVMuZXhlPC9hPjwv
dGQ+CisJCQkJPHRkPjI2OUs8L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMzoyMTwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9S
RUFETUUiPlJFQURNRTwvYT48L3RkPgorCQkJCTx0ZD44MjwvdGQ+CisJCQkJPHRkPjE3LU5vdi0y
MDE1IDEwOjAxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLmxhbmdwYWNrLnhwaSI+ZmlyZWZv
eC01Ny4wYTEuZW4tVVMubGFuZ3BhY2sueHBpPC9hPjwvdGQ+CisJCQkJPHRkPjQyNEs8L3RkPgor
CQkJCTx0ZD4yMS1TZXAtMjAxNyAxMzowOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy5saW51
eC1pNjg2LmF3c3kudGVzdHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC1pNjg2LmF3
c3kudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjE0SzwvdGQ+CisJCQkJPHRkPjIxLVNlcC0y
MDE3IDEyOjI5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LWk2ODYuY2hlY2tzdW1z
Ij5maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC1pNjg2LmNoZWNrc3VtczwvYT48L3RkPgorCQkJ
CTx0ZD44SzwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEyOjQ5PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcu
MGExLmVuLVVTLmxpbnV4LWk2ODYuY2hlY2tzdW1zLmFzYyI+ZmlyZWZveC01Ny4wYTEuZW4tVVMu
bGludXgtaTY4Ni5jaGVja3N1bXMuYXNjPC9hPjwvdGQ+CisJCQkJPHRkPjgzNjwvdGQ+CisJCQkJ
PHRkPjIxLVNlcC0yMDE3IDEyOjQ5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LWk2
ODYuY29tbW9uLnRlc3RzLnppcCI+ZmlyZWZveC01Ny4wYTEuZW4tVVMubGludXgtaTY4Ni5jb21t
b24udGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjQ1TTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0y
MDE3IDEyOjI5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LWk2ODYuY29tcGxldGUu
bWFyIj5maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC1pNjg2LmNvbXBsZXRlLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD40N008L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMjoyOTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LTU3LjBhMS5lbi1VUy5saW51eC1pNjg2LmNwcHVuaXR0ZXN0LnRlc3RzLnppcCI+ZmlyZWZv
eC01Ny4wYTEuZW4tVVMubGludXgtaTY4Ni5jcHB1bml0dGVzdC50ZXN0cy56aXA8L2E+PC90ZD4K
KwkJCQk8dGQ+MTNNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTI6Mjk8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC01Ny4wYTEuZW4tVVMubGludXgtaTY4Ni5jcmFzaHJlcG9ydGVyLXN5bWJvbHMuemlwIj5maXJl
Zm94LTU3LjBhMS5lbi1VUy5saW51eC1pNjg2LmNyYXNocmVwb3J0ZXItc3ltYm9scy56aXA8L2E+
PC90ZD4KKwkJCQk8dGQ+MTA4TTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEyOjI5PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LWk2ODYubW9jaGl0ZXN0LnRlc3RzLnppcCI+Zmly
ZWZveC01Ny4wYTEuZW4tVVMubGludXgtaTY4Ni5tb2NoaXRlc3QudGVzdHMuemlwPC9hPjwvdGQ+
CisJCQkJPHRkPjczTTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEyOjI5PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtNTcuMGExLmVuLVVTLmxpbnV4LWk2ODYubW96aW5mby5qc29uIj5maXJlZm94LTU3LjBhMS5l
bi1VUy5saW51eC1pNjg2Lm1vemluZm8uanNvbjwvYT48L3RkPgorCQkJCTx0ZD44NzE8L3RkPgor
CQkJCTx0ZD4yMS1TZXAtMjAxNyAxMjoyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy5saW51
eC1pNjg2LnJlZnRlc3QudGVzdHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC1pNjg2
LnJlZnRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjU4TTwvdGQ+CisJCQkJPHRkPjIx
LVNlcC0yMDE3IDEyOjI5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LWk2ODYudGFs
b3MudGVzdHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC1pNjg2LnRhbG9zLnRlc3Rz
LnppcDwvYT48L3RkPgorCQkJCTx0ZD4xM008L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMjoz
MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC1pNjg2LnRhci5iejIiPmZpcmVmb3gt
NTcuMGExLmVuLVVTLmxpbnV4LWk2ODYudGFyLmJ6MjwvYT48L3RkPgorCQkJCTx0ZD42ME08L3Rk
PgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMjoyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy5s
aW51eC1pNjg2LnRhci5iejIuYXNjIj5maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC1pNjg2LnRh
ci5iejIuYXNjPC9hPjwvdGQ+CisJCQkJPHRkPjgzNjwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3
IDEyOjI5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LWk2ODYudGVzdF9wYWNrYWdl
cy5qc29uIj5maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC1pNjg2LnRlc3RfcGFja2FnZXMuanNv
bjwvYT48L3RkPgorCQkJCTx0ZD4xSzwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEyOjI5PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LWk2ODYudHh0Ij5maXJlZm94LTU3LjBhMS5l
bi1VUy5saW51eC1pNjg2LnR4dDwvYT48L3RkPgorCQkJCTx0ZD45OTwvdGQ+CisJCQkJPHRkPjIx
LVNlcC0yMDE3IDEyOjI5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LWk2ODYud2Vi
LXBsYXRmb3JtLnRlc3RzLnRhci5neiI+ZmlyZWZveC01Ny4wYTEuZW4tVVMubGludXgtaTY4Ni53
ZWItcGxhdGZvcm0udGVzdHMudGFyLmd6PC9hPjwvdGQ+CisJCQkJPHRkPjQ5TTwvdGQ+CisJCQkJ
PHRkPjIxLVNlcC0yMDE3IDEyOjI5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LWk2
ODYueHBjc2hlbGwudGVzdHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC1pNjg2Lnhw
Y3NoZWxsLnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4xME08L3RkPgorCQkJCTx0ZD4yMS1T
ZXAtMjAxNyAxMjoyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC1pNjg2X2luZm8u
dHh0Ij5maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC1pNjg2X2luZm8udHh0PC9hPjwvdGQ+CisJ
CQkJPHRkPjIzPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTI6Mjk8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01
Ny4wYTEuZW4tVVMubGludXgteDg2XzY0LmF3c3kudGVzdHMuemlwIj5maXJlZm94LTU3LjBhMS5l
bi1VUy5saW51eC14ODZfNjQuYXdzeS50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTRLPC90
ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTI6MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMu
bGludXgteDg2XzY0LmNoZWNrc3VtcyI+ZmlyZWZveC01Ny4wYTEuZW4tVVMubGludXgteDg2XzY0
LmNoZWNrc3VtczwvYT48L3RkPgorCQkJCTx0ZD44SzwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3
IDEyOjIwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC5jaGVja3N1bXMu
YXNjIj5maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC14ODZfNjQuY2hlY2tzdW1zLmFzYzwvYT48
L3RkPgorCQkJCTx0ZD44MzY8L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMjoyMDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC14ODZfNjQuY29tbW9uLnRlc3RzLnppcCI+ZmlyZWZv
eC01Ny4wYTEuZW4tVVMubGludXgteDg2XzY0LmNvbW1vbi50ZXN0cy56aXA8L2E+PC90ZD4KKwkJ
CQk8dGQ+NTJNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTI6MTM8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01
Ny4wYTEuZW4tVVMubGludXgteDg2XzY0LmNvbXBsZXRlLm1hciI+ZmlyZWZveC01Ny4wYTEuZW4t
VVMubGludXgteDg2XzY0LmNvbXBsZXRlLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40N008L3RkPgor
CQkJCTx0ZD4yMS1TZXAtMjAxNyAxMjoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy5saW51
eC14ODZfNjQuY3BwdW5pdHRlc3QudGVzdHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1VUy5saW51
eC14ODZfNjQuY3BwdW5pdHRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjEzTTwvdGQ+
CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEyOjEzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLmxp
bnV4LXg4Nl82NC5jcmFzaHJlcG9ydGVyLXN5bWJvbHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1V
Uy5saW51eC14ODZfNjQuY3Jhc2hyZXBvcnRlci1zeW1ib2xzLnppcDwvYT48L3RkPgorCQkJCTx0
ZD4xMDNNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTI6MTM8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4w
YTEuZW4tVVMubGludXgteDg2XzY0Lmpzb24iPmZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LXg4
Nl82NC5qc29uPC9hPjwvdGQ+CisJCQkJPHRkPjg3NzwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3
IDEyOjEzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC5tb2NoaXRlc3Qu
dGVzdHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC14ODZfNjQubW9jaGl0ZXN0LnRl
c3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD43M008L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAx
MjoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC14ODZfNjQubW96aW5mby5qc29u
Ij5maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC14ODZfNjQubW96aW5mby5qc29uPC9hPjwvdGQ+
CisJCQkJPHRkPjg3NjwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEyOjEzPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtNTcuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC5yZWZ0ZXN0LnRlc3RzLnppcCI+ZmlyZWZveC01
Ny4wYTEuZW4tVVMubGludXgteDg2XzY0LnJlZnRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJ
PHRkPjU4TTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEyOjEzPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcu
MGExLmVuLVVTLmxpbnV4LXg4Nl82NC50YWxvcy50ZXN0cy56aXAiPmZpcmVmb3gtNTcuMGExLmVu
LVVTLmxpbnV4LXg4Nl82NC50YWxvcy50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTNNPC90
ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTI6MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMu
bGludXgteDg2XzY0LnRhci5iejIiPmZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC50
YXIuYnoyPC9hPjwvdGQ+CisJCQkJPHRkPjU5TTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEy
OjEzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC50YXIuYnoyLmFzYyI+
ZmlyZWZveC01Ny4wYTEuZW4tVVMubGludXgteDg2XzY0LnRhci5iejIuYXNjPC9hPjwvdGQ+CisJ
CQkJPHRkPjgzNjwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEyOjEzPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
NTcuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC50ZXN0X3BhY2thZ2VzLmpzb24iPmZpcmVmb3gtNTcu
MGExLmVuLVVTLmxpbnV4LXg4Nl82NC50ZXN0X3BhY2thZ2VzLmpzb248L2E+PC90ZD4KKwkJCQk8
dGQ+MUs8L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMjoxMzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBh
MS5lbi1VUy5saW51eC14ODZfNjQudHh0Ij5maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC14ODZf
NjQudHh0PC9hPjwvdGQ+CisJCQkJPHRkPjk5PC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTI6
MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMubGludXgteDg2XzY0LndlYi1wbGF0Zm9ybS50
ZXN0cy50YXIuZ3oiPmZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC53ZWItcGxhdGZv
cm0udGVzdHMudGFyLmd6PC9hPjwvdGQ+CisJCQkJPHRkPjQ5TTwvdGQ+CisJCQkJPHRkPjIxLVNl
cC0yMDE3IDEyOjEzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC54cGNz
aGVsbC50ZXN0cy56aXAiPmZpcmVmb3gtNTcuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC54cGNzaGVs
bC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTBNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIw
MTcgMTI6MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMubGludXgteDg2XzY0X2luZm8udHh0
Ij5maXJlZm94LTU3LjBhMS5lbi1VUy5saW51eC14ODZfNjRfaW5mby50eHQ8L2E+PC90ZD4KKwkJ
CQk8dGQ+MjM8L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMjoxMzwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3
LjBhMS5lbi1VUy5tYWMuYXdzeS50ZXN0cy56aXAiPmZpcmVmb3gtNTcuMGExLmVuLVVTLm1hYy5h
d3N5LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4xNEs8L3RkPgorCQkJCTx0ZD4yMS1TZXAt
MjAxNyAxMToyNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy5tYWMuY2hlY2tzdW1zIj5maXJl
Zm94LTU3LjBhMS5lbi1VUy5tYWMuY2hlY2tzdW1zPC9hPjwvdGQ+CisJCQkJPHRkPjdLPC90ZD4K
KwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTE6MzM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMubWFj
LmNoZWNrc3Vtcy5hc2MiPmZpcmVmb3gtNTcuMGExLmVuLVVTLm1hYy5jaGVja3N1bXMuYXNjPC9h
PjwvdGQ+CisJCQkJPHRkPjgzNjwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDExOjMzPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtNTcuMGExLmVuLVVTLm1hYy5jb21tb24udGVzdHMuemlwIj5maXJlZm94LTU3LjBh
MS5lbi1VUy5tYWMuY29tbW9uLnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4zNU08L3RkPgor
CQkJCTx0ZD4yMS1TZXAtMjAxNyAxMToyNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy5tYWMu
Y29tcGxldGUubWFyIj5maXJlZm94LTU3LjBhMS5lbi1VUy5tYWMuY29tcGxldGUubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjQ2TTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDExOjI2PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtNTcuMGExLmVuLVVTLm1hYy5jcHB1bml0dGVzdC50ZXN0cy56aXAiPmZpcmVmb3gtNTcu
MGExLmVuLVVTLm1hYy5jcHB1bml0dGVzdC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+OE08
L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMToyNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1V
Uy5tYWMuY3Jhc2hyZXBvcnRlci1zeW1ib2xzLnppcCI+ZmlyZWZveC01Ny4wYTEuZW4tVVMubWFj
LmNyYXNocmVwb3J0ZXItc3ltYm9scy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTE4TTwvdGQ+CisJ
CQkJPHRkPjIxLVNlcC0yMDE3IDExOjI2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLm1hYy5k
bWciPmZpcmVmb3gtNTcuMGExLmVuLVVTLm1hYy5kbWc8L2E+PC90ZD4KKwkJCQk8dGQ+NjNNPC90
ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTE6MjY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMu
bWFjLmpzb24iPmZpcmVmb3gtNTcuMGExLmVuLVVTLm1hYy5qc29uPC9hPjwvdGQ+CisJCQkJPHRk
PjFLPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTE6MjY8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEu
ZW4tVVMubWFjLm1vY2hpdGVzdC50ZXN0cy56aXAiPmZpcmVmb3gtNTcuMGExLmVuLVVTLm1hYy5t
b2NoaXRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjcyTTwvdGQ+CisJCQkJPHRkPjIx
LVNlcC0yMDE3IDExOjI2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLm1hYy5tb3ppbmZvLmpz
b24iPmZpcmVmb3gtNTcuMGExLmVuLVVTLm1hYy5tb3ppbmZvLmpzb248L2E+PC90ZD4KKwkJCQk8
dGQ+ODc3PC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTE6MjY8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4w
YTEuZW4tVVMubWFjLnJlZnRlc3QudGVzdHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1VUy5tYWMu
cmVmdGVzdC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+NThNPC90ZD4KKwkJCQk8dGQ+MjEt
U2VwLTIwMTcgMTE6MjY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMubWFjLnRhbG9zLnRlc3Rz
LnppcCI+ZmlyZWZveC01Ny4wYTEuZW4tVVMubWFjLnRhbG9zLnRlc3RzLnppcDwvYT48L3RkPgor
CQkJCTx0ZD4xM008L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMToyNjwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LTU3LjBhMS5lbi1VUy5tYWMudGVzdF9wYWNrYWdlcy5qc29uIj5maXJlZm94LTU3LjBhMS5lbi1V
Uy5tYWMudGVzdF9wYWNrYWdlcy5qc29uPC9hPjwvdGQ+CisJCQkJPHRkPjFLPC90ZD4KKwkJCQk8
dGQ+MjEtU2VwLTIwMTcgMTE6MjY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMubWFjLnR4dCI+
ZmlyZWZveC01Ny4wYTEuZW4tVVMubWFjLnR4dDwvYT48L3RkPgorCQkJCTx0ZD45OTwvdGQ+CisJ
CQkJPHRkPjIxLVNlcC0yMDE3IDExOjI2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLm1hYy53
ZWItcGxhdGZvcm0udGVzdHMudGFyLmd6Ij5maXJlZm94LTU3LjBhMS5lbi1VUy5tYWMud2ViLXBs
YXRmb3JtLnRlc3RzLnRhci5nejwvYT48L3RkPgorCQkJCTx0ZD40OU08L3RkPgorCQkJCTx0ZD4y
MS1TZXAtMjAxNyAxMToyNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy5tYWMueHBjc2hlbGwu
dGVzdHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1VUy5tYWMueHBjc2hlbGwudGVzdHMuemlwPC9h
PjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTE6MjY8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC01Ny4wYTEuZW4tVVMubWFjX2luZm8udHh0Ij5maXJlZm94LTU3LjBhMS5lbi1VUy5t
YWNfaW5mby50eHQ8L2E+PC90ZD4KKwkJCQk8dGQ+MjM8L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAx
NyAxMToyNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy53aW4zMi5hd3N5LnRlc3RzLnppcCI+
ZmlyZWZveC01Ny4wYTEuZW4tVVMud2luMzIuYXdzeS50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8
dGQ+MTRLPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTM6MDE8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4w
YTEuZW4tVVMud2luMzIuY2hlY2tzdW1zIj5maXJlZm94LTU3LjBhMS5lbi1VUy53aW4zMi5jaGVj
a3N1bXM8L2E+PC90ZD4KKwkJCQk8dGQ+OEs8L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMzoy
MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy53aW4zMi5jaGVja3N1bXMuYXNjIj5maXJlZm94
LTU3LjBhMS5lbi1VUy53aW4zMi5jaGVja3N1bXMuYXNjPC9hPjwvdGQ+CisJCQkJPHRkPjgzNjwv
dGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEzOjIyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVT
LndpbjMyLmNvbW1vbi50ZXN0cy56aXAiPmZpcmVmb3gtNTcuMGExLmVuLVVTLndpbjMyLmNvbW1v
bi50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MzhNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIw
MTcgMTM6MDE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMud2luMzIuY29tcGxldGUubWFyIj5m
aXJlZm94LTU3LjBhMS5lbi1VUy53aW4zMi5jb21wbGV0ZS5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
MzhNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTM6MDE8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEu
ZW4tVVMud2luMzIuY3BwdW5pdHRlc3QudGVzdHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1VUy53
aW4zMi5jcHB1bml0dGVzdC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJ
CTx0ZD4yMS1TZXAtMjAxNyAxMzowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy53aW4zMi5j
cmFzaHJlcG9ydGVyLXN5bWJvbHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1VUy53aW4zMi5jcmFz
aHJlcG9ydGVyLXN5bWJvbHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjM5TTwvdGQ+CisJCQkJPHRk
PjIxLVNlcC0yMDE3IDEzOjAxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLndpbjMyLmluc3Rh
bGxlci1zdHViLmV4ZSI+ZmlyZWZveC01Ny4wYTEuZW4tVVMud2luMzIuaW5zdGFsbGVyLXN0dWIu
ZXhlPC9hPjwvdGQ+CisJCQkJPHRkPjI4OEs8L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMzow
MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy53aW4zMi5pbnN0YWxsZXIuZXhlIj5maXJlZm94
LTU3LjBhMS5lbi1VUy53aW4zMi5pbnN0YWxsZXIuZXhlPC9hPjwvdGQ+CisJCQkJPHRkPjM2TTwv
dGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEzOjAxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVT
LndpbjMyLmpzb24iPmZpcmVmb3gtNTcuMGExLmVuLVVTLndpbjMyLmpzb248L2E+PC90ZD4KKwkJ
CQk8dGQ+ODMyPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTM6MDE8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01
Ny4wYTEuZW4tVVMud2luMzIubW9jaGl0ZXN0LnRlc3RzLnppcCI+ZmlyZWZveC01Ny4wYTEuZW4t
VVMud2luMzIubW9jaGl0ZXN0LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD43Mk08L3RkPgor
CQkJCTx0ZD4yMS1TZXAtMjAxNyAxMzowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy53aW4z
Mi5tb3ppbmZvLmpzb24iPmZpcmVmb3gtNTcuMGExLmVuLVVTLndpbjMyLm1vemluZm8uanNvbjwv
YT48L3RkPgorCQkJCTx0ZD44NDQ8L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMzowMTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LTU3LjBhMS5lbi1VUy53aW4zMi5yZWZ0ZXN0LnRlc3RzLnppcCI+ZmlyZWZveC01
Ny4wYTEuZW4tVVMud2luMzIucmVmdGVzdC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+NThN
PC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTM6MDE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4t
VVMud2luMzIudGFsb3MudGVzdHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1VUy53aW4zMi50YWxv
cy50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTNNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIw
MTcgMTM6MDE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMud2luMzIudGVzdF9wYWNrYWdlcy5q
c29uIj5maXJlZm94LTU3LjBhMS5lbi1VUy53aW4zMi50ZXN0X3BhY2thZ2VzLmpzb248L2E+PC90
ZD4KKwkJCQk8dGQ+MUs8L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMzowMTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LTU3LjBhMS5lbi1VUy53aW4zMi50eHQiPmZpcmVmb3gtNTcuMGExLmVuLVVTLndpbjMyLnR4
dDwvYT48L3RkPgorCQkJCTx0ZD4xMDA8L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMzowMTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy53aW4zMi53ZWItcGxhdGZvcm0udGVzdHMudGFyLmd6
Ij5maXJlZm94LTU3LjBhMS5lbi1VUy53aW4zMi53ZWItcGxhdGZvcm0udGVzdHMudGFyLmd6PC9h
PjwvdGQ+CisJCQkJPHRkPjQ5TTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEzOjAxPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtNTcuMGExLmVuLVVTLndpbjMyLnhwY3NoZWxsLnRlc3RzLnppcCI+ZmlyZWZveC01
Ny4wYTEuZW4tVVMud2luMzIueHBjc2hlbGwudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjlN
PC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTM6MDE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4t
VVMud2luMzIuemlwIj5maXJlZm94LTU3LjBhMS5lbi1VUy53aW4zMi56aXA8L2E+PC90ZD4KKwkJ
CQk8dGQ+NTJNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTM6MDE8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01
Ny4wYTEuZW4tVVMud2luMzJfaW5mby50eHQiPmZpcmVmb3gtNTcuMGExLmVuLVVTLndpbjMyX2lu
Zm8udHh0PC9hPjwvdGQ+CisJCQkJPHRkPjIzPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTM6
MDE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMud2luNjQuYXdzeS50ZXN0cy56aXAiPmZpcmVm
b3gtNTcuMGExLmVuLVVTLndpbjY0LmF3c3kudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjE0
SzwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEzOjA5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVu
LVVTLndpbjY0LmNoZWNrc3VtcyI+ZmlyZWZveC01Ny4wYTEuZW4tVVMud2luNjQuY2hlY2tzdW1z
PC9hPjwvdGQ+CisJCQkJPHRkPjdLPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTM6MzA8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC01Ny4wYTEuZW4tVVMud2luNjQuY2hlY2tzdW1zLmFzYyI+ZmlyZWZveC01Ny4w
YTEuZW4tVVMud2luNjQuY2hlY2tzdW1zLmFzYzwvYT48L3RkPgorCQkJCTx0ZD44MzY8L3RkPgor
CQkJCTx0ZD4yMS1TZXAtMjAxNyAxMzozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy53aW42
NC5jb21tb24udGVzdHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1VUy53aW42NC5jb21tb24udGVz
dHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjM4TTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEz
OjA4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLndpbjY0LmNvbXBsZXRlLm1hciI+ZmlyZWZv
eC01Ny4wYTEuZW4tVVMud2luNjQuY29tcGxldGUubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjQxTTwv
dGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEzOjA5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVT
LndpbjY0LmNwcHVuaXR0ZXN0LnRlc3RzLnppcCI+ZmlyZWZveC01Ny4wYTEuZW4tVVMud2luNjQu
Y3BwdW5pdHRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+
MjEtU2VwLTIwMTcgMTM6MDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMud2luNjQuY3Jhc2hy
ZXBvcnRlci1zeW1ib2xzLnppcCI+ZmlyZWZveC01Ny4wYTEuZW4tVVMud2luNjQuY3Jhc2hyZXBv
cnRlci1zeW1ib2xzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4zNE08L3RkPgorCQkJCTx0ZD4yMS1T
ZXAtMjAxNyAxMzowOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy53aW42NC5pbnN0YWxsZXIu
ZXhlIj5maXJlZm94LTU3LjBhMS5lbi1VUy53aW42NC5pbnN0YWxsZXIuZXhlPC9hPjwvdGQ+CisJ
CQkJPHRkPjM4TTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEzOjA4PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
NTcuMGExLmVuLVVTLndpbjY0Lmpzb24iPmZpcmVmb3gtNTcuMGExLmVuLVVTLndpbjY0Lmpzb248
L2E+PC90ZD4KKwkJCQk8dGQ+ODM0PC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTM6MDg8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC01Ny4wYTEuZW4tVVMud2luNjQubW9jaGl0ZXN0LnRlc3RzLnppcCI+ZmlyZWZv
eC01Ny4wYTEuZW4tVVMud2luNjQubW9jaGl0ZXN0LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0
ZD43Mk08L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMzowOTwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBh
MS5lbi1VUy53aW42NC5tb3ppbmZvLmpzb24iPmZpcmVmb3gtNTcuMGExLmVuLVVTLndpbjY0Lm1v
emluZm8uanNvbjwvYT48L3RkPgorCQkJCTx0ZD44NDc8L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAx
NyAxMzowODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy53aW42NC5yZWZ0ZXN0LnRlc3RzLnpp
cCI+ZmlyZWZveC01Ny4wYTEuZW4tVVMud2luNjQucmVmdGVzdC50ZXN0cy56aXA8L2E+PC90ZD4K
KwkJCQk8dGQ+NThNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTM6MDk8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC01Ny4wYTEuZW4tVVMud2luNjQudGFsb3MudGVzdHMuemlwIj5maXJlZm94LTU3LjBhMS5lbi1V
Uy53aW42NC50YWxvcy50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTNNPC90ZD4KKwkJCQk8
dGQ+MjEtU2VwLTIwMTcgMTM6MDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01Ny4wYTEuZW4tVVMud2luNjQudGVz
dF9wYWNrYWdlcy5qc29uIj5maXJlZm94LTU3LjBhMS5lbi1VUy53aW42NC50ZXN0X3BhY2thZ2Vz
Lmpzb248L2E+PC90ZD4KKwkJCQk8dGQ+MUs8L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMzow
ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy53aW42NC50eHQiPmZpcmVmb3gtNTcuMGExLmVu
LVVTLndpbjY0LnR4dDwvYT48L3RkPgorCQkJCTx0ZD4xMDA8L3RkPgorCQkJCTx0ZD4yMS1TZXAt
MjAxNyAxMzowODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU3LjBhMS5lbi1VUy53aW42NC53ZWItcGxhdGZvcm0u
dGVzdHMudGFyLmd6Ij5maXJlZm94LTU3LjBhMS5lbi1VUy53aW42NC53ZWItcGxhdGZvcm0udGVz
dHMudGFyLmd6PC9hPjwvdGQ+CisJCQkJPHRkPjQ5TTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3
IDEzOjA4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTcuMGExLmVuLVVTLndpbjY0LnhwY3NoZWxsLnRlc3RzLnpp
cCI+ZmlyZWZveC01Ny4wYTEuZW4tVVMud2luNjQueHBjc2hlbGwudGVzdHMuemlwPC9hPjwvdGQ+
CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTM6MDk8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC01Ny4wYTEuZW4tVVMud2luNjQuemlwIj5maXJlZm94LTU3LjBhMS5lbi1VUy53aW42NC56aXA8
L2E+PC90ZD4KKwkJCQk8dGQ+NTZNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTM6MDg8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC01Ny4wYTEuZW4tVVMud2luNjRfaW5mby50eHQiPmZpcmVmb3gtNTcuMGExLmVu
LVVTLndpbjY0X2luZm8udHh0PC9hPjwvdGQ+CisJCQkJPHRkPjIzPC90ZD4KKwkJCQk8dGQ+MjEt
U2VwLTIwMTcgMTM6MDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMubGFuZ3BhY2sueHBpIj5m
aXJlZm94LTU4LjBhMS5lbi1VUy5sYW5ncGFjay54cGk8L2E+PC90ZD4KKwkJCQk8dGQ+NDMzSzwv
dGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVT
LmxpbnV4LWk2ODYuYXdzeS50ZXN0cy56aXAiPmZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LWk2
ODYuYXdzeS50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTZLPC90ZD4KKwkJCQk8dGQ+MTMt
Tm92LTIwMTcgMDA6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgtaTY4Ni5jaGVj
a3N1bXMiPmZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LWk2ODYuY2hlY2tzdW1zPC9hPjwvdGQ+
CisJCQkJPHRkPjhLPC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6MTk8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC01OC4wYTEuZW4tVVMubGludXgtaTY4Ni5jaGVja3N1bXMuYXNjIj5maXJlZm94LTU4LjBhMS5l
bi1VUy5saW51eC1pNjg2LmNoZWNrc3Vtcy5hc2M8L2E+PC90ZD4KKwkJCQk8dGQ+ODM2PC90ZD4K
KwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6MTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMubGlu
dXgtaTY4Ni5jb21tb24udGVzdHMuemlwIj5maXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC1pNjg2
LmNvbW1vbi50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+NDdNPC90ZD4KKwkJCQk8dGQ+MTMt
Tm92LTIwMTcgMDA6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgtaTY4Ni5jb21w
bGV0ZS5tYXIiPmZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LWk2ODYuY29tcGxldGUubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjQzTTwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjE0PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LWk2ODYuY3BwdW5pdHRlc3QudGVzdHMuemlwIj5m
aXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC1pNjg2LmNwcHVuaXR0ZXN0LnRlc3RzLnppcDwvYT48
L3RkPgorCQkJCTx0ZD4xMU08L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDoxNDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC1pNjg2LmNyYXNocmVwb3J0ZXItc3ltYm9scy56aXAi
PmZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LWk2ODYuY3Jhc2hyZXBvcnRlci1zeW1ib2xzLnpp
cDwvYT48L3RkPgorCQkJCTx0ZD4xMjFNPC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6MTQ8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgtaTY4Ni5qc29uIj5maXJlZm94LTU4LjBh
MS5lbi1VUy5saW51eC1pNjg2Lmpzb248L2E+PC90ZD4KKwkJCQk8dGQ+OTExPC90ZD4KKwkJCQk8
dGQ+MTMtTm92LTIwMTcgMDA6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgtaTY4
Ni5tb2NoaXRlc3QudGVzdHMuemlwIj5maXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC1pNjg2Lm1v
Y2hpdGVzdC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+NzNNPC90ZD4KKwkJCQk8dGQ+MTMt
Tm92LTIwMTcgMDA6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgtaTY4Ni5tb3pp
bmZvLmpzb24iPmZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LWk2ODYubW96aW5mby5qc29uPC9h
PjwvdGQ+CisJCQkJPHRkPjg3MTwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjE0PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LWk2ODYucmVmdGVzdC50ZXN0cy56aXAiPmZpcmVm
b3gtNTguMGExLmVuLVVTLmxpbnV4LWk2ODYucmVmdGVzdC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJ
CQk8dGQ+NTdNPC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6MTQ8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01
OC4wYTEuZW4tVVMubGludXgtaTY4Ni50YWxvcy50ZXN0cy56aXAiPmZpcmVmb3gtNTguMGExLmVu
LVVTLmxpbnV4LWk2ODYudGFsb3MudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjE3TTwvdGQ+
CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjE0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLmxp
bnV4LWk2ODYudGFyLmJ6MiI+ZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgtaTY4Ni50YXIuYnoy
PC9hPjwvdGQ+CisJCQkJPHRkPjU2TTwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjE0PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LWk2ODYudGFyLmJ6Mi5hc2MiPmZpcmVmb3gt
NTguMGExLmVuLVVTLmxpbnV4LWk2ODYudGFyLmJ6Mi5hc2M8L2E+PC90ZD4KKwkJCQk8dGQ+ODM2
PC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4t
VVMubGludXgtaTY4Ni50ZXN0X3BhY2thZ2VzLmpzb24iPmZpcmVmb3gtNTguMGExLmVuLVVTLmxp
bnV4LWk2ODYudGVzdF9wYWNrYWdlcy5qc29uPC9hPjwvdGQ+CisJCQkJPHRkPjFLPC90ZD4KKwkJ
CQk8dGQ+MTMtTm92LTIwMTcgMDA6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgt
aTY4Ni50eHQiPmZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LWk2ODYudHh0PC9hPjwvdGQ+CisJ
CQkJPHRkPjk5PC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6MTQ8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01
OC4wYTEuZW4tVVMubGludXgtaTY4Ni53ZWItcGxhdGZvcm0udGVzdHMudGFyLmd6Ij5maXJlZm94
LTU4LjBhMS5lbi1VUy5saW51eC1pNjg2LndlYi1wbGF0Zm9ybS50ZXN0cy50YXIuZ3o8L2E+PC90
ZD4KKwkJCQk8dGQ+NDZNPC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6MTQ8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC01OC4wYTEuZW4tVVMubGludXgtaTY4Ni54cGNzaGVsbC50ZXN0cy56aXAiPmZpcmVmb3gt
NTguMGExLmVuLVVTLmxpbnV4LWk2ODYueHBjc2hlbGwudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJ
PHRkPjEwTTwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjE0PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTgu
MGExLmVuLVVTLmxpbnV4LWk2ODZfaW5mby50eHQiPmZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4
LWk2ODZfaW5mby50eHQ8L2E+PC90ZD4KKwkJCQk8dGQ+MjM8L3RkPgorCQkJCTx0ZD4xMy1Ob3Yt
MjAxNyAwMDoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC14ODZfNjQuYXdzeS50
ZXN0cy56aXAiPmZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LXg4Nl82NC5hd3N5LnRlc3RzLnpp
cDwvYT48L3RkPgorCQkJCTx0ZD4xNks8L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDoxNTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC14ODZfNjQuY2hlY2tzdW1zIj5maXJlZm94
LTU4LjBhMS5lbi1VUy5saW51eC14ODZfNjQuY2hlY2tzdW1zPC9hPjwvdGQ+CisJCQkJPHRkPjhL
PC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4t
VVMubGludXgteDg2XzY0LmNoZWNrc3Vtcy5hc2MiPmZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4
LXg4Nl82NC5jaGVja3N1bXMuYXNjPC9hPjwvdGQ+CisJCQkJPHRkPjgzNjwvdGQ+CisJCQkJPHRk
PjEzLU5vdi0yMDE3IDAwOjIwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LXg4Nl82
NC5jb21tb24udGVzdHMuemlwIj5maXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC14ODZfNjQuY29t
bW9uLnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD41NU08L3RkPgorCQkJCTx0ZD4xMy1Ob3Yt
MjAxNyAwMDoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC14ODZfNjQuY29tcGxl
dGUubWFyIj5maXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC14ODZfNjQuY29tcGxldGUubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjQ3TTwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjE1PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LXg4Nl82NC5jcHB1bml0dGVzdC50ZXN0cy56aXAi
PmZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LXg4Nl82NC5jcHB1bml0dGVzdC50ZXN0cy56aXA8
L2E+PC90ZD4KKwkJCQk8dGQ+MTNNPC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6MTU8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgteDg2XzY0LmNyYXNocmVwb3J0ZXItc3ltYm9s
cy56aXAiPmZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LXg4Nl82NC5jcmFzaHJlcG9ydGVyLXN5
bWJvbHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjEwNU08L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAx
NyAwMDoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC14ODZfNjQuanNvbiI+Zmly
ZWZveC01OC4wYTEuZW4tVVMubGludXgteDg2XzY0Lmpzb248L2E+PC90ZD4KKwkJCQk8dGQ+ODc3
PC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6MTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4t
VVMubGludXgteDg2XzY0Lm1vY2hpdGVzdC50ZXN0cy56aXAiPmZpcmVmb3gtNTguMGExLmVuLVVT
LmxpbnV4LXg4Nl82NC5tb2NoaXRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjczTTwv
dGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjE1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVT
LmxpbnV4LXg4Nl82NC5tb3ppbmZvLmpzb24iPmZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LXg4
Nl82NC5tb3ppbmZvLmpzb248L2E+PC90ZD4KKwkJCQk8dGQ+ODc2PC90ZD4KKwkJCQk8dGQ+MTMt
Tm92LTIwMTcgMDA6MTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgteDg2XzY0LnJl
ZnRlc3QudGVzdHMuemlwIj5maXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC14ODZfNjQucmVmdGVz
dC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+NTdNPC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIw
MTcgMDA6MTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgteDg2XzY0LnRhbG9zLnRl
c3RzLnppcCI+ZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgteDg2XzY0LnRhbG9zLnRlc3RzLnpp
cDwvYT48L3RkPgorCQkJCTx0ZD4xN008L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDoxNTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC14ODZfNjQudGFyLmJ6MiI+ZmlyZWZveC01
OC4wYTEuZW4tVVMubGludXgteDg2XzY0LnRhci5iejI8L2E+PC90ZD4KKwkJCQk8dGQ+NjBNPC90
ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6MTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMu
bGludXgteDg2XzY0LnRhci5iejIuYXNjIj5maXJlZm94LTU4LjBhMS5lbi1VUy5saW51eC14ODZf
NjQudGFyLmJ6Mi5hc2M8L2E+PC90ZD4KKwkJCQk8dGQ+ODM2PC90ZD4KKwkJCQk8dGQ+MTMtTm92
LTIwMTcgMDA6MTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgteDg2XzY0LnRlc3Rf
cGFja2FnZXMuanNvbiI+ZmlyZWZveC01OC4wYTEuZW4tVVMubGludXgteDg2XzY0LnRlc3RfcGFj
a2FnZXMuanNvbjwvYT48L3RkPgorCQkJCTx0ZD4xSzwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3
IDAwOjE1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LXg4Nl82NC50eHQiPmZpcmVm
b3gtNTguMGExLmVuLVVTLmxpbnV4LXg4Nl82NC50eHQ8L2E+PC90ZD4KKwkJCQk8dGQ+OTk8L3Rk
PgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5s
aW51eC14ODZfNjQud2ViLXBsYXRmb3JtLnRlc3RzLnRhci5neiI+ZmlyZWZveC01OC4wYTEuZW4t
VVMubGludXgteDg2XzY0LndlYi1wbGF0Zm9ybS50ZXN0cy50YXIuZ3o8L2E+PC90ZD4KKwkJCQk8
dGQ+NDZNPC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6MTU8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4w
YTEuZW4tVVMubGludXgteDg2XzY0LnhwY3NoZWxsLnRlc3RzLnppcCI+ZmlyZWZveC01OC4wYTEu
ZW4tVVMubGludXgteDg2XzY0LnhwY3NoZWxsLnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4x
ME08L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5l
bi1VUy5saW51eC14ODZfNjRfaW5mby50eHQiPmZpcmVmb3gtNTguMGExLmVuLVVTLmxpbnV4LXg4
Nl82NF9pbmZvLnR4dDwvYT48L3RkPgorCQkJCTx0ZD4yMzwvdGQ+CisJCQkJPHRkPjEzLU5vdi0y
MDE3IDAwOjE1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLm1hYy5hd3N5LnRlc3RzLnppcCI+
ZmlyZWZveC01OC4wYTEuZW4tVVMubWFjLmF3c3kudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRk
PjE2SzwvdGQ+CisJCQkJPHRkPjEyLU5vdi0yMDE3IDIzOjMxPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGEx
LmVuLVVTLm1hYy5jaGVja3N1bXMiPmZpcmVmb3gtNTguMGExLmVuLVVTLm1hYy5jaGVja3N1bXM8
L2E+PC90ZD4KKwkJCQk8dGQ+N0s8L3RkPgorCQkJCTx0ZD4xMi1Ob3YtMjAxNyAyMzozMzwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LTU4LjBhMS5lbi1VUy5tYWMuY2hlY2tzdW1zLmFzYyI+ZmlyZWZveC01OC4wYTEu
ZW4tVVMubWFjLmNoZWNrc3Vtcy5hc2M8L2E+PC90ZD4KKwkJCQk8dGQ+ODM2PC90ZD4KKwkJCQk8
dGQ+MTItTm92LTIwMTcgMjM6MzM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMubWFjLmNvbW1v
bi50ZXN0cy56aXAiPmZpcmVmb3gtNTguMGExLmVuLVVTLm1hYy5jb21tb24udGVzdHMuemlwPC9h
PjwvdGQ+CisJCQkJPHRkPjM2TTwvdGQ+CisJCQkJPHRkPjEyLU5vdi0yMDE3IDIzOjMxPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtNTguMGExLmVuLVVTLm1hYy5jb21wbGV0ZS5tYXIiPmZpcmVmb3gtNTguMGExLmVu
LVVTLm1hYy5jb21wbGV0ZS5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NDdNPC90ZD4KKwkJCQk8dGQ+
MTItTm92LTIwMTcgMjM6MzE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMubWFjLmNwcHVuaXR0
ZXN0LnRlc3RzLnppcCI+ZmlyZWZveC01OC4wYTEuZW4tVVMubWFjLmNwcHVuaXR0ZXN0LnRlc3Rz
LnppcDwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjEyLU5vdi0yMDE3IDIzOjMx
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLm1hYy5jcmFzaHJlcG9ydGVyLXN5bWJvbHMuemlw
Ij5maXJlZm94LTU4LjBhMS5lbi1VUy5tYWMuY3Jhc2hyZXBvcnRlci1zeW1ib2xzLnppcDwvYT48
L3RkPgorCQkJCTx0ZD4xMThNPC90ZD4KKwkJCQk8dGQ+MTItTm92LTIwMTcgMjM6MzE8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC01OC4wYTEuZW4tVVMubWFjLmRtZyI+ZmlyZWZveC01OC4wYTEuZW4tVVMubWFjLmRt
ZzwvYT48L3RkPgorCQkJCTx0ZD42M008L3RkPgorCQkJCTx0ZD4xMi1Ob3YtMjAxNyAyMzozMTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5tYWMuanNvbiI+ZmlyZWZveC01OC4wYTEuZW4tVVMu
bWFjLmpzb248L2E+PC90ZD4KKwkJCQk8dGQ+MUs8L3RkPgorCQkJCTx0ZD4xMi1Ob3YtMjAxNyAy
MzozMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5tYWMubW9jaGl0ZXN0LnRlc3RzLnppcCI+
ZmlyZWZveC01OC4wYTEuZW4tVVMubWFjLm1vY2hpdGVzdC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJ
CQk8dGQ+NzJNPC90ZD4KKwkJCQk8dGQ+MTItTm92LTIwMTcgMjM6MzE8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01
OC4wYTEuZW4tVVMubWFjLm1vemluZm8uanNvbiI+ZmlyZWZveC01OC4wYTEuZW4tVVMubWFjLm1v
emluZm8uanNvbjwvYT48L3RkPgorCQkJCTx0ZD44Nzc8L3RkPgorCQkJCTx0ZD4xMi1Ob3YtMjAx
NyAyMzozMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5tYWMucmVmdGVzdC50ZXN0cy56aXAi
PmZpcmVmb3gtNTguMGExLmVuLVVTLm1hYy5yZWZ0ZXN0LnRlc3RzLnppcDwvYT48L3RkPgorCQkJ
CTx0ZD41N008L3RkPgorCQkJCTx0ZD4xMi1Ob3YtMjAxNyAyMzozMTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4
LjBhMS5lbi1VUy5tYWMudGFsb3MudGVzdHMuemlwIj5maXJlZm94LTU4LjBhMS5lbi1VUy5tYWMu
dGFsb3MudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjE3TTwvdGQ+CisJCQkJPHRkPjEyLU5v
di0yMDE3IDIzOjMxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLm1hYy50ZXN0X3BhY2thZ2Vz
Lmpzb24iPmZpcmVmb3gtNTguMGExLmVuLVVTLm1hYy50ZXN0X3BhY2thZ2VzLmpzb248L2E+PC90
ZD4KKwkJCQk8dGQ+MUs8L3RkPgorCQkJCTx0ZD4xMi1Ob3YtMjAxNyAyMzozMTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LTU4LjBhMS5lbi1VUy5tYWMudHh0Ij5maXJlZm94LTU4LjBhMS5lbi1VUy5tYWMudHh0PC9h
PjwvdGQ+CisJCQkJPHRkPjk5PC90ZD4KKwkJCQk8dGQ+MTItTm92LTIwMTcgMjM6MzE8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC01OC4wYTEuZW4tVVMubWFjLndlYi1wbGF0Zm9ybS50ZXN0cy50YXIuZ3oiPmZpcmVm
b3gtNTguMGExLmVuLVVTLm1hYy53ZWItcGxhdGZvcm0udGVzdHMudGFyLmd6PC9hPjwvdGQ+CisJ
CQkJPHRkPjQ2TTwvdGQ+CisJCQkJPHRkPjEyLU5vdi0yMDE3IDIzOjMxPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
NTguMGExLmVuLVVTLm1hYy54cGNzaGVsbC50ZXN0cy56aXAiPmZpcmVmb3gtNTguMGExLmVuLVVT
Lm1hYy54cGNzaGVsbC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0
ZD4xMi1Ob3YtMjAxNyAyMzozMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy5tYWNfaW5mby50
eHQiPmZpcmVmb3gtNTguMGExLmVuLVVTLm1hY19pbmZvLnR4dDwvYT48L3RkPgorCQkJCTx0ZD4y
MzwvdGQ+CisJCQkJPHRkPjEyLU5vdi0yMDE3IDIzOjMxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVu
LVVTLndpbjMyLmF3c3kudGVzdHMuemlwIj5maXJlZm94LTU4LjBhMS5lbi1VUy53aW4zMi5hd3N5
LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4xNks8L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAx
NyAwMDozODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy53aW4zMi5jaGVja3N1bXMiPmZpcmVm
b3gtNTguMGExLmVuLVVTLndpbjMyLmNoZWNrc3VtczwvYT48L3RkPgorCQkJCTx0ZD44SzwvdGQ+
CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjUxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLndp
bjMyLmNoZWNrc3Vtcy5hc2MiPmZpcmVmb3gtNTguMGExLmVuLVVTLndpbjMyLmNoZWNrc3Vtcy5h
c2M8L2E+PC90ZD4KKwkJCQk8dGQ+ODM2PC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6NTE8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMud2luMzIuY29tbW9uLnRlc3RzLnppcCI+ZmlyZWZv
eC01OC4wYTEuZW4tVVMud2luMzIuY29tbW9uLnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4z
OE08L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDozODwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5l
bi1VUy53aW4zMi5jb21wbGV0ZS5tYXIiPmZpcmVmb3gtNTguMGExLmVuLVVTLndpbjMyLmNvbXBs
ZXRlLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zOU08L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAw
MDozODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy53aW4zMi5jcHB1bml0dGVzdC50ZXN0cy56
aXAiPmZpcmVmb3gtNTguMGExLmVuLVVTLndpbjMyLmNwcHVuaXR0ZXN0LnRlc3RzLnppcDwvYT48
L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjM4PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtNTguMGExLmVuLVVTLndpbjMyLmNyYXNocmVwb3J0ZXItc3ltYm9scy56aXAiPmZpcmVm
b3gtNTguMGExLmVuLVVTLndpbjMyLmNyYXNocmVwb3J0ZXItc3ltYm9scy56aXA8L2E+PC90ZD4K
KwkJCQk8dGQ+MzlNPC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6Mzg8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC01OC4wYTEuZW4tVVMud2luMzIuaW5zdGFsbGVyLXN0dWIuZXhlIj5maXJlZm94LTU4LjBhMS5l
bi1VUy53aW4zMi5pbnN0YWxsZXItc3R1Yi5leGU8L2E+PC90ZD4KKwkJCQk8dGQ+MjY5SzwvdGQ+
CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLndp
bjMyLmluc3RhbGxlci5leGUiPmZpcmVmb3gtNTguMGExLmVuLVVTLndpbjMyLmluc3RhbGxlci5l
eGU8L2E+PC90ZD4KKwkJCQk8dGQ+MzdNPC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6Mzg8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMud2luMzIuanNvbiI+ZmlyZWZveC01OC4wYTEuZW4t
VVMud2luMzIuanNvbjwvYT48L3RkPgorCQkJCTx0ZD44NDY8L3RkPgorCQkJCTx0ZD4xMy1Ob3Yt
MjAxNyAwMDozODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy53aW4zMi5tb2NoaXRlc3QudGVz
dHMuemlwIj5maXJlZm94LTU4LjBhMS5lbi1VUy53aW4zMi5tb2NoaXRlc3QudGVzdHMuemlwPC9h
PjwvdGQ+CisJCQkJPHRkPjcyTTwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjM4PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtNTguMGExLmVuLVVTLndpbjMyLm1vemluZm8uanNvbiI+ZmlyZWZveC01OC4wYTEu
ZW4tVVMud2luMzIubW96aW5mby5qc29uPC9hPjwvdGQ+CisJCQkJPHRkPjg0NDwvdGQ+CisJCQkJ
PHRkPjEzLU5vdi0yMDE3IDAwOjM5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLndpbjMyLnJl
ZnRlc3QudGVzdHMuemlwIj5maXJlZm94LTU4LjBhMS5lbi1VUy53aW4zMi5yZWZ0ZXN0LnRlc3Rz
LnppcDwvYT48L3RkPgorCQkJCTx0ZD41N008L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDoz
ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy53aW4zMi50YWxvcy50ZXN0cy56aXAiPmZpcmVm
b3gtNTguMGExLmVuLVVTLndpbjMyLnRhbG9zLnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4x
N008L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDozODwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5l
bi1VUy53aW4zMi50ZXN0X3BhY2thZ2VzLmpzb24iPmZpcmVmb3gtNTguMGExLmVuLVVTLndpbjMy
LnRlc3RfcGFja2FnZXMuanNvbjwvYT48L3RkPgorCQkJCTx0ZD4xSzwvdGQ+CisJCQkJPHRkPjEz
LU5vdi0yMDE3IDAwOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLndpbjMyLnR4dCI+Zmly
ZWZveC01OC4wYTEuZW4tVVMud2luMzIudHh0PC9hPjwvdGQ+CisJCQkJPHRkPjEwMDwvdGQ+CisJ
CQkJPHRkPjEzLU5vdi0yMDE3IDAwOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLndpbjMy
LndlYi1wbGF0Zm9ybS50ZXN0cy50YXIuZ3oiPmZpcmVmb3gtNTguMGExLmVuLVVTLndpbjMyLndl
Yi1wbGF0Zm9ybS50ZXN0cy50YXIuZ3o8L2E+PC90ZD4KKwkJCQk8dGQ+NDZNPC90ZD4KKwkJCQk8
dGQ+MTMtTm92LTIwMTcgMDA6Mzg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMud2luMzIueHBj
c2hlbGwudGVzdHMuemlwIj5maXJlZm94LTU4LjBhMS5lbi1VUy53aW4zMi54cGNzaGVsbC50ZXN0
cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDoz
ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy53aW4zMi56aXAiPmZpcmVmb3gtNTguMGExLmVu
LVVTLndpbjMyLnppcDwvYT48L3RkPgorCQkJCTx0ZD41NE08L3RkPgorCQkJCTx0ZD4xMy1Ob3Yt
MjAxNyAwMDozOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy53aW4zMl9pbmZvLnR4dCI+Zmly
ZWZveC01OC4wYTEuZW4tVVMud2luMzJfaW5mby50eHQ8L2E+PC90ZD4KKwkJCQk8dGQ+MjM8L3Rk
PgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDozODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy53
aW42NC5hd3N5LnRlc3RzLnppcCI+ZmlyZWZveC01OC4wYTEuZW4tVVMud2luNjQuYXdzeS50ZXN0
cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTZLPC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6
NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMud2luNjQuY2hlY2tzdW1zIj5maXJlZm94LTU4
LjBhMS5lbi1VUy53aW42NC5jaGVja3N1bXM8L2E+PC90ZD4KKwkJCQk8dGQ+N0s8L3RkPgorCQkJ
CTx0ZD4xMy1Ob3YtMjAxNyAwMDo1NzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy53aW42NC5j
aGVja3N1bXMuYXNjIj5maXJlZm94LTU4LjBhMS5lbi1VUy53aW42NC5jaGVja3N1bXMuYXNjPC9h
PjwvdGQ+CisJCQkJPHRkPjgzNjwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjU3PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtNTguMGExLmVuLVVTLndpbjY0LmNvbW1vbi50ZXN0cy56aXAiPmZpcmVmb3gtNTgu
MGExLmVuLVVTLndpbjY0LmNvbW1vbi50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MzhNPC90
ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMu
d2luNjQuY29tcGxldGUubWFyIj5maXJlZm94LTU4LjBhMS5lbi1VUy53aW42NC5jb21wbGV0ZS5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+NDJNPC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6NDg8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMud2luNjQuY3BwdW5pdHRlc3QudGVzdHMuemlwIj5m
aXJlZm94LTU4LjBhMS5lbi1VUy53aW42NC5jcHB1bml0dGVzdC50ZXN0cy56aXA8L2E+PC90ZD4K
KwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDo0ODwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LTU4LjBhMS5lbi1VUy53aW42NC5jcmFzaHJlcG9ydGVyLXN5bWJvbHMuemlwIj5maXJlZm94LTU4
LjBhMS5lbi1VUy53aW42NC5jcmFzaHJlcG9ydGVyLXN5bWJvbHMuemlwPC9hPjwvdGQ+CisJCQkJ
PHRkPjM0TTwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjQ4PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTgu
MGExLmVuLVVTLndpbjY0Lmluc3RhbGxlci5leGUiPmZpcmVmb3gtNTguMGExLmVuLVVTLndpbjY0
Lmluc3RhbGxlci5leGU8L2E+PC90ZD4KKwkJCQk8dGQ+MzlNPC90ZD4KKwkJCQk8dGQ+MTMtTm92
LTIwMTcgMDA6NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4tVVMud2luNjQuanNvbiI+ZmlyZWZv
eC01OC4wYTEuZW4tVVMud2luNjQuanNvbjwvYT48L3RkPgorCQkJCTx0ZD44NTY8L3RkPgorCQkJ
CTx0ZD4xMy1Ob3YtMjAxNyAwMDo0ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy53aW42NC5t
b2NoaXRlc3QudGVzdHMuemlwIj5maXJlZm94LTU4LjBhMS5lbi1VUy53aW42NC5tb2NoaXRlc3Qu
dGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjcyTTwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3
IDAwOjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLndpbjY0Lm1vemluZm8uanNvbiI+Zmly
ZWZveC01OC4wYTEuZW4tVVMud2luNjQubW96aW5mby5qc29uPC9hPjwvdGQ+CisJCQkJPHRkPjg0
NzwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVu
LVVTLndpbjY0LnJlZnRlc3QudGVzdHMuemlwIj5maXJlZm94LTU4LjBhMS5lbi1VUy53aW42NC5y
ZWZ0ZXN0LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD41N008L3RkPgorCQkJCTx0ZD4xMy1O
b3YtMjAxNyAwMDo0ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy53aW42NC50YWxvcy50ZXN0
cy56aXAiPmZpcmVmb3gtNTguMGExLmVuLVVTLndpbjY0LnRhbG9zLnRlc3RzLnppcDwvYT48L3Rk
PgorCQkJCTx0ZD4xN008L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDo0ODwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LTU4LjBhMS5lbi1VUy53aW42NC50ZXN0X3BhY2thZ2VzLmpzb24iPmZpcmVmb3gtNTguMGEx
LmVuLVVTLndpbjY0LnRlc3RfcGFja2FnZXMuanNvbjwvYT48L3RkPgorCQkJCTx0ZD4xSzwvdGQ+
CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGExLmVuLVVTLndp
bjY0LnR4dCI+ZmlyZWZveC01OC4wYTEuZW4tVVMud2luNjQudHh0PC9hPjwvdGQ+CisJCQkJPHRk
PjEwMDwvdGQ+CisJCQkJPHRkPjEzLU5vdi0yMDE3IDAwOjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTguMGEx
LmVuLVVTLndpbjY0LndlYi1wbGF0Zm9ybS50ZXN0cy50YXIuZ3oiPmZpcmVmb3gtNTguMGExLmVu
LVVTLndpbjY0LndlYi1wbGF0Zm9ybS50ZXN0cy50YXIuZ3o8L2E+PC90ZD4KKwkJCQk8dGQ+NDZN
PC90ZD4KKwkJCQk8dGQ+MTMtTm92LTIwMTcgMDA6NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OC4wYTEuZW4t
VVMud2luNjQueHBjc2hlbGwudGVzdHMuemlwIj5maXJlZm94LTU4LjBhMS5lbi1VUy53aW42NC54
cGNzaGVsbC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4xMy1O
b3YtMjAxNyAwMDo0ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy53aW42NC56aXAiPmZpcmVm
b3gtNTguMGExLmVuLVVTLndpbjY0LnppcDwvYT48L3RkPgorCQkJCTx0ZD41OE08L3RkPgorCQkJ
CTx0ZD4xMy1Ob3YtMjAxNyAwMDo0ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU4LjBhMS5lbi1VUy53aW42NF9p
bmZvLnR4dCI+ZmlyZWZveC01OC4wYTEuZW4tVVMud2luNjRfaW5mby50eHQ8L2E+PC90ZD4KKwkJ
CQk8dGQ+MjM8L3RkPgorCQkJCTx0ZD4xMy1Ob3YtMjAxNyAwMDo0ODwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5
LjBhMS5lbi1VUy5sYW5ncGFjay54cGkiPmZpcmVmb3gtNTkuMGExLmVuLVVTLmxhbmdwYWNrLnhw
aTwvYT48L3RkPgorCQkJCTx0ZD40MzFLPC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTI6MzA8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgtaTY4Ni5hd3N5LnRlc3RzLnppcCI+Zmly
ZWZveC01OS4wYTEuZW4tVVMubGludXgtaTY4Ni5hd3N5LnRlc3RzLnppcDwvYT48L3RkPgorCQkJ
CTx0ZD4xNUs8L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMTo1NTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5
LjBhMS5lbi1VUy5saW51eC1pNjg2LmNoZWNrc3VtcyI+ZmlyZWZveC01OS4wYTEuZW4tVVMubGlu
dXgtaTY4Ni5jaGVja3N1bXM8L2E+PC90ZD4KKwkJCQk8dGQ+OEs8L3RkPgorCQkJCTx0ZD4yMi1K
YW4tMjAxOCAxMjowNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC1pNjg2LmNoZWNr
c3Vtcy5hc2MiPmZpcmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4LWk2ODYuY2hlY2tzdW1zLmFzYzwv
YT48L3RkPgorCQkJCTx0ZD44MzY8L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMjowNDwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC1pNjg2LmNvbW1vbi50ZXN0cy56aXAiPmZpcmVm
b3gtNTkuMGExLmVuLVVTLmxpbnV4LWk2ODYuY29tbW9uLnRlc3RzLnppcDwvYT48L3RkPgorCQkJ
CTx0ZD41NE08L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMTo1NTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5
LjBhMS5lbi1VUy5saW51eC1pNjg2LmNvbXBsZXRlLm1hciI+ZmlyZWZveC01OS4wYTEuZW4tVVMu
bGludXgtaTY4Ni5jb21wbGV0ZS5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NDRNPC90ZD4KKwkJCQk8
dGQ+MjItSmFuLTIwMTggMTE6NTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgtaTY4
Ni5jcHB1bml0dGVzdC50ZXN0cy56aXAiPmZpcmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4LWk2ODYu
Y3BwdW5pdHRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjExTTwvdGQ+CisJCQkJPHRk
PjIyLUphbi0yMDE4IDExOjU1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4LWk2ODYu
Y3Jhc2hyZXBvcnRlci1zeW1ib2xzLnppcCI+ZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgtaTY4
Ni5jcmFzaHJlcG9ydGVyLXN5bWJvbHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjEwNE08L3RkPgor
CQkJCTx0ZD4yMi1KYW4tMjAxOCAxMTo1NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy5saW51
eC1pNjg2Lmpzb24iPmZpcmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4LWk2ODYuanNvbjwvYT48L3Rk
PgorCQkJCTx0ZD44NjY8L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMTo1NTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LTU5LjBhMS5lbi1VUy5saW51eC1pNjg2Lm1vY2hpdGVzdC50ZXN0cy56aXAiPmZpcmVmb3gt
NTkuMGExLmVuLVVTLmxpbnV4LWk2ODYubW9jaGl0ZXN0LnRlc3RzLnppcDwvYT48L3RkPgorCQkJ
CTx0ZD43NE08L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMTo1NTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5
LjBhMS5lbi1VUy5saW51eC1pNjg2Lm1vemluZm8uanNvbiI+ZmlyZWZveC01OS4wYTEuZW4tVVMu
bGludXgtaTY4Ni5tb3ppbmZvLmpzb248L2E+PC90ZD4KKwkJCQk8dGQ+ODk3PC90ZD4KKwkJCQk8
dGQ+MjItSmFuLTIwMTggMTE6NTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgtaTY4
Ni5yZWZ0ZXN0LnRlc3RzLnppcCI+ZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgtaTY4Ni5yZWZ0
ZXN0LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD41OE08L3RkPgorCQkJCTx0ZD4yMi1KYW4t
MjAxOCAxMTo1NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC1pNjg2LnRhbG9zLnRl
c3RzLnppcCI+ZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgtaTY4Ni50YWxvcy50ZXN0cy56aXA8
L2E+PC90ZD4KKwkJCQk8dGQ+MTNNPC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTE6NTU8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgtaTY4Ni50YXIuYnoyIj5maXJlZm94LTU5LjBh
MS5lbi1VUy5saW51eC1pNjg2LnRhci5iejI8L2E+PC90ZD4KKwkJCQk8dGQ+NTZNPC90ZD4KKwkJ
CQk8dGQ+MjItSmFuLTIwMTggMTE6NTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgt
aTY4Ni50YXIuYnoyLmFzYyI+ZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgtaTY4Ni50YXIuYnoy
LmFzYzwvYT48L3RkPgorCQkJCTx0ZD44MzY8L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMTo1
NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC1pNjg2LnRlc3RfcGFja2FnZXMuanNv
biI+ZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgtaTY4Ni50ZXN0X3BhY2thZ2VzLmpzb248L2E+
PC90ZD4KKwkJCQk8dGQ+MUs8L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMTo1NTwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC1pNjg2LnR4dCI+ZmlyZWZveC01OS4wYTEuZW4tVVMu
bGludXgtaTY4Ni50eHQ8L2E+PC90ZD4KKwkJCQk8dGQ+OTk8L3RkPgorCQkJCTx0ZD4yMi1KYW4t
MjAxOCAxMTo1NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC1pNjg2LndlYi1wbGF0
Zm9ybS50ZXN0cy50YXIuZ3oiPmZpcmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4LWk2ODYud2ViLXBs
YXRmb3JtLnRlc3RzLnRhci5nejwvYT48L3RkPgorCQkJCTx0ZD40N008L3RkPgorCQkJCTx0ZD4y
Mi1KYW4tMjAxOCAxMTo1NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC1pNjg2Lnhw
Y3NoZWxsLnRlc3RzLnppcCI+ZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgtaTY4Ni54cGNzaGVs
bC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTBNPC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIw
MTggMTE6NTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgtaTY4Nl9pbmZvLnR4dCI+
ZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgtaTY4Nl9pbmZvLnR4dDwvYT48L3RkPgorCQkJCTx0
ZD4yMzwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDExOjU1PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGEx
LmVuLVVTLmxpbnV4LXg4Nl82NC5hd3N5LnRlc3RzLnppcCI+ZmlyZWZveC01OS4wYTEuZW4tVVMu
bGludXgteDg2XzY0LmF3c3kudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjE1SzwvdGQ+CisJ
CQkJPHRkPjIyLUphbi0yMDE4IDExOjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4
LXg4Nl82NC5jaGVja3N1bXMiPmZpcmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC5jaGVj
a3N1bXM8L2E+PC90ZD4KKwkJCQk8dGQ+OEs8L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMTo1
NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC14ODZfNjQuY2hlY2tzdW1zLmFzYyI+
ZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgteDg2XzY0LmNoZWNrc3Vtcy5hc2M8L2E+PC90ZD4K
KwkJCQk8dGQ+ODM2PC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTE6NTQ8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC01OS4wYTEuZW4tVVMubGludXgteDg2XzY0LmNvbW1vbi50ZXN0cy56aXAiPmZpcmVmb3gtNTku
MGExLmVuLVVTLmxpbnV4LXg4Nl82NC5jb21tb24udGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRk
PjU1TTwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDExOjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGEx
LmVuLVVTLmxpbnV4LXg4Nl82NC5jb21wbGV0ZS5tYXIiPmZpcmVmb3gtNTkuMGExLmVuLVVTLmxp
bnV4LXg4Nl82NC5jb21wbGV0ZS5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NDhNPC90ZD4KKwkJCQk8
dGQ+MjItSmFuLTIwMTggMTE6NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgteDg2
XzY0LmNwcHVuaXR0ZXN0LnRlc3RzLnppcCI+ZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgteDg2
XzY0LmNwcHVuaXR0ZXN0LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4xM008L3RkPgorCQkJ
CTx0ZD4yMi1KYW4tMjAxOCAxMTo0ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC14
ODZfNjQuY3Jhc2hyZXBvcnRlci1zeW1ib2xzLnppcCI+ZmlyZWZveC01OS4wYTEuZW4tVVMubGlu
dXgteDg2XzY0LmNyYXNocmVwb3J0ZXItc3ltYm9scy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+OTFN
PC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTE6NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4t
VVMubGludXgteDg2XzY0Lmpzb24iPmZpcmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC5q
c29uPC9hPjwvdGQ+CisJCQkJPHRkPjgzMjwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDExOjQ4
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC5tb2NoaXRlc3QudGVzdHMu
emlwIj5maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC14ODZfNjQubW9jaGl0ZXN0LnRlc3RzLnpp
cDwvYT48L3RkPgorCQkJCTx0ZD43NE08L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMTo0ODwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC14ODZfNjQubW96aW5mby5qc29uIj5maXJl
Zm94LTU5LjBhMS5lbi1VUy5saW51eC14ODZfNjQubW96aW5mby5qc29uPC9hPjwvdGQ+CisJCQkJ
PHRkPjkwMjwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDExOjQ4PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTku
MGExLmVuLVVTLmxpbnV4LXg4Nl82NC5yZWZ0ZXN0LnRlc3RzLnppcCI+ZmlyZWZveC01OS4wYTEu
ZW4tVVMubGludXgteDg2XzY0LnJlZnRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjU4
TTwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDExOjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVu
LVVTLmxpbnV4LXg4Nl82NC50YWxvcy50ZXN0cy56aXAiPmZpcmVmb3gtNTkuMGExLmVuLVVTLmxp
bnV4LXg4Nl82NC50YWxvcy50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTNNPC90ZD4KKwkJ
CQk8dGQ+MjItSmFuLTIwMTggMTE6NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgt
eDg2XzY0LnRhci5iejIiPmZpcmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC50YXIuYnoy
PC9hPjwvdGQ+CisJCQkJPHRkPjYwTTwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDExOjQ4PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC50YXIuYnoyLmFzYyI+ZmlyZWZv
eC01OS4wYTEuZW4tVVMubGludXgteDg2XzY0LnRhci5iejIuYXNjPC9hPjwvdGQ+CisJCQkJPHRk
PjgzNjwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDExOjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGEx
LmVuLVVTLmxpbnV4LXg4Nl82NC50ZXN0X3BhY2thZ2VzLmpzb24iPmZpcmVmb3gtNTkuMGExLmVu
LVVTLmxpbnV4LXg4Nl82NC50ZXN0X3BhY2thZ2VzLmpzb248L2E+PC90ZD4KKwkJCQk8dGQ+MUs8
L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMTo0ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1V
Uy5saW51eC14ODZfNjQudHh0Ij5maXJlZm94LTU5LjBhMS5lbi1VUy5saW51eC14ODZfNjQudHh0
PC9hPjwvdGQ+CisJCQkJPHRkPjk5PC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTE6NDg8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgteDg2XzY0LndlYi1wbGF0Zm9ybS50ZXN0cy50
YXIuZ3oiPmZpcmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC53ZWItcGxhdGZvcm0udGVz
dHMudGFyLmd6PC9hPjwvdGQ+CisJCQkJPHRkPjQ3TTwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4
IDExOjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC54cGNzaGVsbC50
ZXN0cy56aXAiPmZpcmVmb3gtNTkuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC54cGNzaGVsbC50ZXN0
cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTBNPC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTE6
NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMubGludXgteDg2XzY0X2luZm8udHh0Ij5maXJl
Zm94LTU5LjBhMS5lbi1VUy5saW51eC14ODZfNjRfaW5mby50eHQ8L2E+PC90ZD4KKwkJCQk8dGQ+
MjM8L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMTo0ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5l
bi1VUy5tYWMuYXdzeS50ZXN0cy56aXAiPmZpcmVmb3gtNTkuMGExLmVuLVVTLm1hYy5hd3N5LnRl
c3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4xNUs8L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAx
MToxMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy5tYWMuY2hlY2tzdW1zIj5maXJlZm94LTU5
LjBhMS5lbi1VUy5tYWMuY2hlY2tzdW1zPC9hPjwvdGQ+CisJCQkJPHRkPjdLPC90ZD4KKwkJCQk8
dGQ+MjItSmFuLTIwMTggMTE6MTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMubWFjLmNoZWNr
c3Vtcy5hc2MiPmZpcmVmb3gtNTkuMGExLmVuLVVTLm1hYy5jaGVja3N1bXMuYXNjPC9hPjwvdGQ+
CisJCQkJPHRkPjgzNjwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDExOjExPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtNTkuMGExLmVuLVVTLm1hYy5jb21tb24udGVzdHMuemlwIj5maXJlZm94LTU5LjBhMS5lbi1V
Uy5tYWMuY29tbW9uLnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4zNE08L3RkPgorCQkJCTx0
ZD4yMi1KYW4tMjAxOCAxMToxMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy5tYWMuY29tcGxl
dGUubWFyIj5maXJlZm94LTU5LjBhMS5lbi1VUy5tYWMuY29tcGxldGUubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjQ3TTwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDExOjEwPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
NTkuMGExLmVuLVVTLm1hYy5jcHB1bml0dGVzdC50ZXN0cy56aXAiPmZpcmVmb3gtNTkuMGExLmVu
LVVTLm1hYy5jcHB1bml0dGVzdC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgor
CQkJCTx0ZD4yMi1KYW4tMjAxOCAxMToxMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy5tYWMu
Y3Jhc2hyZXBvcnRlci1zeW1ib2xzLnppcCI+ZmlyZWZveC01OS4wYTEuZW4tVVMubWFjLmNyYXNo
cmVwb3J0ZXItc3ltYm9scy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTAyTTwvdGQ+CisJCQkJPHRk
PjIyLUphbi0yMDE4IDExOjEwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLm1hYy5kbWciPmZp
cmVmb3gtNTkuMGExLmVuLVVTLm1hYy5kbWc8L2E+PC90ZD4KKwkJCQk8dGQ+NjRNPC90ZD4KKwkJ
CQk8dGQ+MjItSmFuLTIwMTggMTE6MTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMubWFjLmpz
b24iPmZpcmVmb3gtNTkuMGExLmVuLVVTLm1hYy5qc29uPC9hPjwvdGQ+CisJCQkJPHRkPjFLPC90
ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTE6MTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMu
bWFjLm1vY2hpdGVzdC50ZXN0cy56aXAiPmZpcmVmb3gtNTkuMGExLmVuLVVTLm1hYy5tb2NoaXRl
c3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjc0TTwvdGQ+CisJCQkJPHRkPjIyLUphbi0y
MDE4IDExOjEwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLm1hYy5tb3ppbmZvLmpzb24iPmZp
cmVmb3gtNTkuMGExLmVuLVVTLm1hYy5tb3ppbmZvLmpzb248L2E+PC90ZD4KKwkJCQk8dGQ+OTAz
PC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTE6MTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4t
VVMubWFjLnJlZnRlc3QudGVzdHMuemlwIj5maXJlZm94LTU5LjBhMS5lbi1VUy5tYWMucmVmdGVz
dC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+NThNPC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIw
MTggMTE6MTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMubWFjLnRhbG9zLnRlc3RzLnppcCI+
ZmlyZWZveC01OS4wYTEuZW4tVVMubWFjLnRhbG9zLnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0
ZD4xM008L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMToxMDwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBh
MS5lbi1VUy5tYWMudGVzdF9wYWNrYWdlcy5qc29uIj5maXJlZm94LTU5LjBhMS5lbi1VUy5tYWMu
dGVzdF9wYWNrYWdlcy5qc29uPC9hPjwvdGQ+CisJCQkJPHRkPjFLPC90ZD4KKwkJCQk8dGQ+MjIt
SmFuLTIwMTggMTE6MTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMubWFjLnR4dCI+ZmlyZWZv
eC01OS4wYTEuZW4tVVMubWFjLnR4dDwvYT48L3RkPgorCQkJCTx0ZD45OTwvdGQ+CisJCQkJPHRk
PjIyLUphbi0yMDE4IDExOjEwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLm1hYy53ZWItcGxh
dGZvcm0udGVzdHMudGFyLmd6Ij5maXJlZm94LTU5LjBhMS5lbi1VUy5tYWMud2ViLXBsYXRmb3Jt
LnRlc3RzLnRhci5nejwvYT48L3RkPgorCQkJCTx0ZD40N008L3RkPgorCQkJCTx0ZD4yMi1KYW4t
MjAxOCAxMToxMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy5tYWMueHBjc2hlbGwudGVzdHMu
emlwIj5maXJlZm94LTU5LjBhMS5lbi1VUy5tYWMueHBjc2hlbGwudGVzdHMuemlwPC9hPjwvdGQ+
CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTE6MTA8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC01OS4wYTEuZW4tVVMubWFjX2luZm8udHh0Ij5maXJlZm94LTU5LjBhMS5lbi1VUy5tYWNfaW5m
by50eHQ8L2E+PC90ZD4KKwkJCQk8dGQ+MjM8L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMTox
MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy53aW4zMi5hd3N5LnRlc3RzLnppcCI+ZmlyZWZv
eC01OS4wYTEuZW4tVVMud2luMzIuYXdzeS50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTVL
PC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTI6MjM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4t
VVMud2luMzIuY2hlY2tzdW1zIj5maXJlZm94LTU5LjBhMS5lbi1VUy53aW4zMi5jaGVja3N1bXM8
L2E+PC90ZD4KKwkJCQk8dGQ+OEs8L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMjoyNjwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LTU5LjBhMS5lbi1VUy53aW4zMi5jaGVja3N1bXMuYXNjIj5maXJlZm94LTU5LjBh
MS5lbi1VUy53aW4zMi5jaGVja3N1bXMuYXNjPC9hPjwvdGQ+CisJCQkJPHRkPjgzNjwvdGQ+CisJ
CQkJPHRkPjIyLUphbi0yMDE4IDEyOjI2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjMy
LmNvbW1vbi50ZXN0cy56aXAiPmZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjMyLmNvbW1vbi50ZXN0
cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MzZNPC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTI6
MjM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMud2luMzIuY29tcGxldGUubWFyIj5maXJlZm94
LTU5LjBhMS5lbi1VUy53aW4zMi5jb21wbGV0ZS5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NDBNPC90
ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTI6MjM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMu
d2luMzIuY3BwdW5pdHRlc3QudGVzdHMuemlwIj5maXJlZm94LTU5LjBhMS5lbi1VUy53aW4zMi5j
cHB1bml0dGVzdC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4y
Mi1KYW4tMjAxOCAxMjoyMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy53aW4zMi5jcmFzaHJl
cG9ydGVyLXN5bWJvbHMuemlwIj5maXJlZm94LTU5LjBhMS5lbi1VUy53aW4zMi5jcmFzaHJlcG9y
dGVyLXN5bWJvbHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjMyTTwvdGQ+CisJCQkJPHRkPjIyLUph
bi0yMDE4IDEyOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjMyLmluc3RhbGxlci1z
dHViLmV4ZSI+ZmlyZWZveC01OS4wYTEuZW4tVVMud2luMzIuaW5zdGFsbGVyLXN0dWIuZXhlPC9h
PjwvdGQ+CisJCQkJPHRkPjI2OUs8L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMjoyMzwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LTU5LjBhMS5lbi1VUy53aW4zMi5pbnN0YWxsZXIuZXhlIj5maXJlZm94LTU5LjBh
MS5lbi1VUy53aW4zMi5pbnN0YWxsZXIuZXhlPC9hPjwvdGQ+CisJCQkJPHRkPjM3TTwvdGQ+CisJ
CQkJPHRkPjIyLUphbi0yMDE4IDEyOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjMy
Lmpzb24iPmZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjMyLmpzb248L2E+PC90ZD4KKwkJCQk8dGQ+
ODQ2PC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTI6MjM8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEu
ZW4tVVMud2luMzIubW9jaGl0ZXN0LnRlc3RzLnppcCI+ZmlyZWZveC01OS4wYTEuZW4tVVMud2lu
MzIubW9jaGl0ZXN0LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD43NE08L3RkPgorCQkJCTx0
ZD4yMi1KYW4tMjAxOCAxMjoyMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy53aW4zMi5tb3pp
bmZvLmpzb24iPmZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjMyLm1vemluZm8uanNvbjwvYT48L3Rk
PgorCQkJCTx0ZD44NzA8L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMjoyMzwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LTU5LjBhMS5lbi1VUy53aW4zMi5yZWZ0ZXN0LnRlc3RzLnppcCI+ZmlyZWZveC01OS4wYTEu
ZW4tVVMud2luMzIucmVmdGVzdC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+NThNPC90ZD4K
KwkJCQk8dGQ+MjItSmFuLTIwMTggMTI6MjM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMud2lu
MzIudGFsb3MudGVzdHMuemlwIj5maXJlZm94LTU5LjBhMS5lbi1VUy53aW4zMi50YWxvcy50ZXN0
cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTNNPC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTI6
MjM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMud2luMzIudGVzdF9wYWNrYWdlcy5qc29uIj5m
aXJlZm94LTU5LjBhMS5lbi1VUy53aW4zMi50ZXN0X3BhY2thZ2VzLmpzb248L2E+PC90ZD4KKwkJ
CQk8dGQ+MUs8L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMjoyMzwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5
LjBhMS5lbi1VUy53aW4zMi50eHQiPmZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjMyLnR4dDwvYT48
L3RkPgorCQkJCTx0ZD45OTwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDEyOjIzPC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtNTkuMGExLmVuLVVTLndpbjMyLndlYi1wbGF0Zm9ybS50ZXN0cy50YXIuZ3oiPmZpcmVm
b3gtNTkuMGExLmVuLVVTLndpbjMyLndlYi1wbGF0Zm9ybS50ZXN0cy50YXIuZ3o8L2E+PC90ZD4K
KwkJCQk8dGQ+NDdNPC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTI6MjM8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC01OS4wYTEuZW4tVVMud2luMzIueHBjc2hlbGwudGVzdHMuemlwIj5maXJlZm94LTU5LjBhMS5l
bi1VUy53aW4zMi54cGNzaGVsbC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgor
CQkJCTx0ZD4yMi1KYW4tMjAxOCAxMjoyMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy53aW4z
Mi56aXAiPmZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjMyLnppcDwvYT48L3RkPgorCQkJCTx0ZD41
NU08L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMjoyMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5l
bi1VUy53aW4zMl9pbmZvLnR4dCI+ZmlyZWZveC01OS4wYTEuZW4tVVMud2luMzJfaW5mby50eHQ8
L2E+PC90ZD4KKwkJCQk8dGQ+MjM8L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMjoyMzwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LTU5LjBhMS5lbi1VUy53aW42NC5hd3N5LnRlc3RzLnppcCI+ZmlyZWZveC01OS4w
YTEuZW4tVVMud2luNjQuYXdzeS50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTVLPC90ZD4K
KwkJCQk8dGQ+MjItSmFuLTIwMTggMTI6MzA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMud2lu
NjQuY2hlY2tzdW1zIj5maXJlZm94LTU5LjBhMS5lbi1VUy53aW42NC5jaGVja3N1bXM8L2E+PC90
ZD4KKwkJCQk8dGQ+N0s8L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMjozMTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LTU5LjBhMS5lbi1VUy53aW42NC5jaGVja3N1bXMuYXNjIj5maXJlZm94LTU5LjBhMS5lbi1V
Uy53aW42NC5jaGVja3N1bXMuYXNjPC9hPjwvdGQ+CisJCQkJPHRkPjgzNjwvdGQ+CisJCQkJPHRk
PjIyLUphbi0yMDE4IDEyOjMxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjY0LmNvbW1v
bi50ZXN0cy56aXAiPmZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjY0LmNvbW1vbi50ZXN0cy56aXA8
L2E+PC90ZD4KKwkJCQk8dGQ+MzdNPC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTI6MzA8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC01OS4wYTEuZW4tVVMud2luNjQuY29tcGxldGUubWFyIj5maXJlZm94LTU5LjBh
MS5lbi1VUy53aW42NC5jb21wbGV0ZS5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NDNNPC90ZD4KKwkJ
CQk8dGQ+MjItSmFuLTIwMTggMTI6MzA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMud2luNjQu
Y3BwdW5pdHRlc3QudGVzdHMuemlwIj5maXJlZm94LTU5LjBhMS5lbi1VUy53aW42NC5jcHB1bml0
dGVzdC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4yMi1KYW4t
MjAxOCAxMjozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy53aW42NC5jcmFzaHJlcG9ydGVy
LXN5bWJvbHMuemlwIj5maXJlZm94LTU5LjBhMS5lbi1VUy53aW42NC5jcmFzaHJlcG9ydGVyLXN5
bWJvbHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjI3TTwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4
IDEyOjMwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjY0Lmluc3RhbGxlci5leGUiPmZp
cmVmb3gtNTkuMGExLmVuLVVTLndpbjY0Lmluc3RhbGxlci5leGU8L2E+PC90ZD4KKwkJCQk8dGQ+
NDBNPC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTI6MzA8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC01OS4wYTEu
ZW4tVVMud2luNjQuanNvbiI+ZmlyZWZveC01OS4wYTEuZW4tVVMud2luNjQuanNvbjwvYT48L3Rk
PgorCQkJCTx0ZD44NTY8L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMjozMDwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LTU5LjBhMS5lbi1VUy53aW42NC5tb2NoaXRlc3QudGVzdHMuemlwIj5maXJlZm94LTU5LjBh
MS5lbi1VUy53aW42NC5tb2NoaXRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjc0TTwv
dGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDEyOjMwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVT
LndpbjY0Lm1vemluZm8uanNvbiI+ZmlyZWZveC01OS4wYTEuZW4tVVMud2luNjQubW96aW5mby5q
c29uPC9hPjwvdGQ+CisJCQkJPHRkPjg3MzwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDEyOjMw
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjY0LnJlZnRlc3QudGVzdHMuemlwIj5maXJl
Zm94LTU5LjBhMS5lbi1VUy53aW42NC5yZWZ0ZXN0LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0
ZD41OE08L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMjozMDwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBh
MS5lbi1VUy53aW42NC50YWxvcy50ZXN0cy56aXAiPmZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjY0
LnRhbG9zLnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4xM008L3RkPgorCQkJCTx0ZD4yMi1K
YW4tMjAxOCAxMjozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy53aW42NC50ZXN0X3BhY2th
Z2VzLmpzb24iPmZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjY0LnRlc3RfcGFja2FnZXMuanNvbjwv
YT48L3RkPgorCQkJCTx0ZD4xSzwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDEyOjMwPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtNTkuMGExLmVuLVVTLndpbjY0LnR4dCI+ZmlyZWZveC01OS4wYTEuZW4tVVMud2lu
NjQudHh0PC9hPjwvdGQ+CisJCQkJPHRkPjk5PC90ZD4KKwkJCQk8dGQ+MjItSmFuLTIwMTggMTI6
MzA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC01OS4wYTEuZW4tVVMud2luNjQud2ViLXBsYXRmb3JtLnRlc3RzLnRh
ci5neiI+ZmlyZWZveC01OS4wYTEuZW4tVVMud2luNjQud2ViLXBsYXRmb3JtLnRlc3RzLnRhci5n
ejwvYT48L3RkPgorCQkJCTx0ZD40N008L3RkPgorCQkJCTx0ZD4yMi1KYW4tMjAxOCAxMjozMDwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LTU5LjBhMS5lbi1VUy53aW42NC54cGNzaGVsbC50ZXN0cy56aXAiPmZpcmVm
b3gtNTkuMGExLmVuLVVTLndpbjY0LnhwY3NoZWxsLnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0
ZD45TTwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDEyOjMwPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNTkuMGEx
LmVuLVVTLndpbjY0LnppcCI+ZmlyZWZveC01OS4wYTEuZW4tVVMud2luNjQuemlwPC9hPjwvdGQ+
CisJCQkJPHRkPjU5TTwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4IDEyOjMwPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtNTkuMGExLmVuLVVTLndpbjY0X2luZm8udHh0Ij5maXJlZm94LTU5LjBhMS5lbi1VUy53aW42
NF9pbmZvLnR4dDwvYT48L3RkPgorCQkJCTx0ZD4yMzwvdGQ+CisJCQkJPHRkPjIyLUphbi0yMDE4
IDEyOjMwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLmxhbmdwYWNrLnhwaSI+ZmlyZWZveC02
MC4wYTEuZW4tVVMubGFuZ3BhY2sueHBpPC9hPjwvdGQ+CisJCQkJPHRkPjQzNEs8L3RkPgorCQkJ
CTx0ZD4xNS1GZWItMjAxOCAxMzoyMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC1p
Njg2LmF3c3kudGVzdHMuemlwIj5maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC1pNjg2LmF3c3ku
dGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjE1SzwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4
IDEyOjM5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LWk2ODYuY2hlY2tzdW1zIj5m
aXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC1pNjg2LmNoZWNrc3VtczwvYT48L3RkPgorCQkJCTx0
ZD44SzwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEyOjU3PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGEx
LmVuLVVTLmxpbnV4LWk2ODYuY2hlY2tzdW1zLmFzYyI+ZmlyZWZveC02MC4wYTEuZW4tVVMubGlu
dXgtaTY4Ni5jaGVja3N1bXMuYXNjPC9hPjwvdGQ+CisJCQkJPHRkPjgzNjwvdGQ+CisJCQkJPHRk
PjE1LUZlYi0yMDE4IDEyOjU3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LWk2ODYu
Y29tbW9uLnRlc3RzLnppcCI+ZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgtaTY4Ni5jb21tb24u
dGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjUzTTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4
IDEyOjM5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LWk2ODYuY29tcGxldGUubWFy
Ij5maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC1pNjg2LmNvbXBsZXRlLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD40NE08L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMjozOTwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LTYwLjBhMS5lbi1VUy5saW51eC1pNjg2LmNwcHVuaXR0ZXN0LnRlc3RzLnppcCI+ZmlyZWZveC02
MC4wYTEuZW4tVVMubGludXgtaTY4Ni5jcHB1bml0dGVzdC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJ
CQk8dGQ+MTFNPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTI6Mzk8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02
MC4wYTEuZW4tVVMubGludXgtaTY4Ni5jcmFzaHJlcG9ydGVyLXN5bWJvbHMuemlwIj5maXJlZm94
LTYwLjBhMS5lbi1VUy5saW51eC1pNjg2LmNyYXNocmVwb3J0ZXItc3ltYm9scy56aXA8L2E+PC90
ZD4KKwkJCQk8dGQ+MTA0TTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEyOjM5PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LWk2ODYuanNvbiI+ZmlyZWZveC02MC4wYTEuZW4tVVMu
bGludXgtaTY4Ni5qc29uPC9hPjwvdGQ+CisJCQkJPHRkPjg1MDwvdGQ+CisJCQkJPHRkPjE1LUZl
Yi0yMDE4IDEyOjM5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LWk2ODYubW9jaGl0
ZXN0LnRlc3RzLnppcCI+ZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgtaTY4Ni5tb2NoaXRlc3Qu
dGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjc1TTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4
IDEyOjM5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LWk2ODYubW96aW5mby5qc29u
Ij5maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC1pNjg2Lm1vemluZm8uanNvbjwvYT48L3RkPgor
CQkJCTx0ZD44OTc8L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMjozOTwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LTYwLjBhMS5lbi1VUy5saW51eC1pNjg2LnJlZnRlc3QudGVzdHMuemlwIj5maXJlZm94LTYwLjBh
MS5lbi1VUy5saW51eC1pNjg2LnJlZnRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjU4
TTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEyOjM5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVu
LVVTLmxpbnV4LWk2ODYudGFsb3MudGVzdHMuemlwIj5maXJlZm94LTYwLjBhMS5lbi1VUy5saW51
eC1pNjg2LnRhbG9zLnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4xM008L3RkPgorCQkJCTx0
ZD4xNS1GZWItMjAxOCAxMjozOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC1pNjg2
LnRhci5iejIiPmZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LWk2ODYudGFyLmJ6MjwvYT48L3Rk
PgorCQkJCTx0ZD41Nk08L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMjozOTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LTYwLjBhMS5lbi1VUy5saW51eC1pNjg2LnRhci5iejIuYXNjIj5maXJlZm94LTYwLjBhMS5l
bi1VUy5saW51eC1pNjg2LnRhci5iejIuYXNjPC9hPjwvdGQ+CisJCQkJPHRkPjgzNjwvdGQ+CisJ
CQkJPHRkPjE1LUZlYi0yMDE4IDEyOjM5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4
LWk2ODYudGVzdF9wYWNrYWdlcy5qc29uIj5maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC1pNjg2
LnRlc3RfcGFja2FnZXMuanNvbjwvYT48L3RkPgorCQkJCTx0ZD4xSzwvdGQ+CisJCQkJPHRkPjE1
LUZlYi0yMDE4IDEyOjM5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LWk2ODYudHh0
Ij5maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC1pNjg2LnR4dDwvYT48L3RkPgorCQkJCTx0ZD45
OTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEyOjM5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVu
LVVTLmxpbnV4LWk2ODYud2ViLXBsYXRmb3JtLnRlc3RzLnRhci5neiI+ZmlyZWZveC02MC4wYTEu
ZW4tVVMubGludXgtaTY4Ni53ZWItcGxhdGZvcm0udGVzdHMudGFyLmd6PC9hPjwvdGQ+CisJCQkJ
PHRkPjQ4TTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEyOjM5PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAu
MGExLmVuLVVTLmxpbnV4LWk2ODYueHBjc2hlbGwudGVzdHMuemlwIj5maXJlZm94LTYwLjBhMS5l
bi1VUy5saW51eC1pNjg2LnhwY3NoZWxsLnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4xME08
L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMjozOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1V
Uy5saW51eC1pNjg2X2luZm8udHh0Ij5maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC1pNjg2X2lu
Zm8udHh0PC9hPjwvdGQ+CisJCQkJPHRkPjIzPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTI6
Mzk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgteDg2XzY0LmF3c3kudGVzdHMuemlw
Ij5maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC14ODZfNjQuYXdzeS50ZXN0cy56aXA8L2E+PC90
ZD4KKwkJCQk8dGQ+MTVLPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTI6MTM8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC02MC4wYTEuZW4tVVMubGludXgteDg2XzY0LmNoZWNrc3VtcyI+ZmlyZWZveC02MC4wYTEu
ZW4tVVMubGludXgteDg2XzY0LmNoZWNrc3VtczwvYT48L3RkPgorCQkJCTx0ZD44SzwvdGQ+CisJ
CQkJPHRkPjE1LUZlYi0yMDE4IDEyOjMzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4
LXg4Nl82NC5jaGVja3N1bXMuYXNjIj5maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC14ODZfNjQu
Y2hlY2tzdW1zLmFzYzwvYT48L3RkPgorCQkJCTx0ZD44MzY8L3RkPgorCQkJCTx0ZD4xNS1GZWIt
MjAxOCAxMjozMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC14ODZfNjQuY29tbW9u
LnRlc3RzLnppcCI+ZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgteDg2XzY0LmNvbW1vbi50ZXN0
cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+NTRNPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTI6
MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgteDg2XzY0LmNvbXBsZXRlLm1hciI+
ZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgteDg2XzY0LmNvbXBsZXRlLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD40OE08L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMjoxMzwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LTYwLjBhMS5lbi1VUy5saW51eC14ODZfNjQuY3BwdW5pdHRlc3QudGVzdHMuemlwIj5maXJlZm94
LTYwLjBhMS5lbi1VUy5saW51eC14ODZfNjQuY3BwdW5pdHRlc3QudGVzdHMuemlwPC9hPjwvdGQ+
CisJCQkJPHRkPjEzTTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEyOjEzPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtNjAuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC5jcmFzaHJlcG9ydGVyLXN5bWJvbHMuemlwIj5m
aXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC14ODZfNjQuY3Jhc2hyZXBvcnRlci1zeW1ib2xzLnpp
cDwvYT48L3RkPgorCQkJCTx0ZD45MU08L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMjoxMzwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC14ODZfNjQuanNvbiI+ZmlyZWZveC02MC4w
YTEuZW4tVVMubGludXgteDg2XzY0Lmpzb248L2E+PC90ZD4KKwkJCQk8dGQ+ODE2PC90ZD4KKwkJ
CQk8dGQ+MTUtRmViLTIwMTggMTI6MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgt
eDg2XzY0Lm1vY2hpdGVzdC50ZXN0cy56aXAiPmZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LXg4
Nl82NC5tb2NoaXRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjc1TTwvdGQ+CisJCQkJ
PHRkPjE1LUZlYi0yMDE4IDEyOjEzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LXg4
Nl82NC5tb3ppbmZvLmpzb24iPmZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC5tb3pp
bmZvLmpzb248L2E+PC90ZD4KKwkJCQk8dGQ+OTAyPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTgg
MTI6MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgteDg2XzY0LnJlZnRlc3QudGVz
dHMuemlwIj5maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC14ODZfNjQucmVmdGVzdC50ZXN0cy56
aXA8L2E+PC90ZD4KKwkJCQk8dGQ+NThNPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTI6MTM8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgteDg2XzY0LnRhbG9zLnRlc3RzLnppcCI+
ZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgteDg2XzY0LnRhbG9zLnRlc3RzLnppcDwvYT48L3Rk
PgorCQkJCTx0ZD4xM008L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMjoxMzwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LTYwLjBhMS5lbi1VUy5saW51eC14ODZfNjQudGFyLmJ6MiI+ZmlyZWZveC02MC4wYTEuZW4t
VVMubGludXgteDg2XzY0LnRhci5iejI8L2E+PC90ZD4KKwkJCQk8dGQ+NjBNPC90ZD4KKwkJCQk8
dGQ+MTUtRmViLTIwMTggMTI6MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgteDg2
XzY0LnRhci5iejIuYXNjIj5maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC14ODZfNjQudGFyLmJ6
Mi5hc2M8L2E+PC90ZD4KKwkJCQk8dGQ+ODM2PC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTI6
MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgteDg2XzY0LnRlc3RfcGFja2FnZXMu
anNvbiI+ZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgteDg2XzY0LnRlc3RfcGFja2FnZXMuanNv
bjwvYT48L3RkPgorCQkJCTx0ZD4xSzwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEyOjEzPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LXg4Nl82NC50eHQiPmZpcmVmb3gtNjAuMGEx
LmVuLVVTLmxpbnV4LXg4Nl82NC50eHQ8L2E+PC90ZD4KKwkJCQk8dGQ+OTk8L3RkPgorCQkJCTx0
ZD4xNS1GZWItMjAxOCAxMjoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy5saW51eC14ODZf
NjQud2ViLXBsYXRmb3JtLnRlc3RzLnRhci5neiI+ZmlyZWZveC02MC4wYTEuZW4tVVMubGludXgt
eDg2XzY0LndlYi1wbGF0Zm9ybS50ZXN0cy50YXIuZ3o8L2E+PC90ZD4KKwkJCQk8dGQ+NDhNPC90
ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTI6MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMu
bGludXgteDg2XzY0LnhwY3NoZWxsLnRlc3RzLnppcCI+ZmlyZWZveC02MC4wYTEuZW4tVVMubGlu
dXgteDg2XzY0LnhwY3NoZWxsLnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4xME08L3RkPgor
CQkJCTx0ZD4xNS1GZWItMjAxOCAxMjoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy5saW51
eC14ODZfNjRfaW5mby50eHQiPmZpcmVmb3gtNjAuMGExLmVuLVVTLmxpbnV4LXg4Nl82NF9pbmZv
LnR4dDwvYT48L3RkPgorCQkJCTx0ZD4yMzwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEyOjEz
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLm1hYy5hd3N5LnRlc3RzLnppcCI+ZmlyZWZveC02
MC4wYTEuZW4tVVMubWFjLmF3c3kudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjE1SzwvdGQ+
CisJCQkJPHRkPjE1LUZlYi0yMDE4IDExOjM3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLm1h
Yy5jaGVja3N1bXMiPmZpcmVmb3gtNjAuMGExLmVuLVVTLm1hYy5jaGVja3N1bXM8L2E+PC90ZD4K
KwkJCQk8dGQ+N0s8L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMTozODwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LTYwLjBhMS5lbi1VUy5tYWMuY2hlY2tzdW1zLmFzYyI+ZmlyZWZveC02MC4wYTEuZW4tVVMubWFj
LmNoZWNrc3Vtcy5hc2M8L2E+PC90ZD4KKwkJCQk8dGQ+ODM2PC90ZD4KKwkJCQk8dGQ+MTUtRmVi
LTIwMTggMTE6Mzg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMubWFjLmNvbW1vbi50ZXN0cy56
aXAiPmZpcmVmb3gtNjAuMGExLmVuLVVTLm1hYy5jb21tb24udGVzdHMuemlwPC9hPjwvdGQ+CisJ
CQkJPHRkPjM0TTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDExOjM3PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
NjAuMGExLmVuLVVTLm1hYy5jb21wbGV0ZS5tYXIiPmZpcmVmb3gtNjAuMGExLmVuLVVTLm1hYy5j
b21wbGV0ZS5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NDhNPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIw
MTggMTE6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMubWFjLmNwcHVuaXR0ZXN0LnRlc3Rz
LnppcCI+ZmlyZWZveC02MC4wYTEuZW4tVVMubWFjLmNwcHVuaXR0ZXN0LnRlc3RzLnppcDwvYT48
L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDExOjM3PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtNjAuMGExLmVuLVVTLm1hYy5jcmFzaHJlcG9ydGVyLXN5bWJvbHMuemlwIj5maXJlZm94
LTYwLjBhMS5lbi1VUy5tYWMuY3Jhc2hyZXBvcnRlci1zeW1ib2xzLnppcDwvYT48L3RkPgorCQkJ
CTx0ZD4xMTdNPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTE6Mzc8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02
MC4wYTEuZW4tVVMubWFjLmRtZyI+ZmlyZWZveC02MC4wYTEuZW4tVVMubWFjLmRtZzwvYT48L3Rk
PgorCQkJCTx0ZD42NU08L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMTozNzwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LTYwLjBhMS5lbi1VUy5tYWMuanNvbiI+ZmlyZWZveC02MC4wYTEuZW4tVVMubWFjLmpzb248
L2E+PC90ZD4KKwkJCQk8dGQ+MUs8L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMTozNzwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LTYwLjBhMS5lbi1VUy5tYWMubW9jaGl0ZXN0LnRlc3RzLnppcCI+ZmlyZWZveC02
MC4wYTEuZW4tVVMubWFjLm1vY2hpdGVzdC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+NzRN
PC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTE6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4t
VVMubWFjLm1vemluZm8uanNvbiI+ZmlyZWZveC02MC4wYTEuZW4tVVMubWFjLm1vemluZm8uanNv
bjwvYT48L3RkPgorCQkJCTx0ZD45MDM8L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMTozNzwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy5tYWMucmVmdGVzdC50ZXN0cy56aXAiPmZpcmVmb3gt
NjAuMGExLmVuLVVTLm1hYy5yZWZ0ZXN0LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD41OE08
L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMTozNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1V
Uy5tYWMudGFsb3MudGVzdHMuemlwIj5maXJlZm94LTYwLjBhMS5lbi1VUy5tYWMudGFsb3MudGVz
dHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjEzTTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEx
OjM3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLm1hYy50ZXN0X3BhY2thZ2VzLmpzb24iPmZp
cmVmb3gtNjAuMGExLmVuLVVTLm1hYy50ZXN0X3BhY2thZ2VzLmpzb248L2E+PC90ZD4KKwkJCQk8
dGQ+MUs8L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMTozNzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBh
MS5lbi1VUy5tYWMudHh0Ij5maXJlZm94LTYwLjBhMS5lbi1VUy5tYWMudHh0PC9hPjwvdGQ+CisJ
CQkJPHRkPjk5PC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTE6Mzc8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02
MC4wYTEuZW4tVVMubWFjLndlYi1wbGF0Zm9ybS50ZXN0cy50YXIuZ3oiPmZpcmVmb3gtNjAuMGEx
LmVuLVVTLm1hYy53ZWItcGxhdGZvcm0udGVzdHMudGFyLmd6PC9hPjwvdGQ+CisJCQkJPHRkPjQ4
TTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDExOjM3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVu
LVVTLm1hYy54cGNzaGVsbC50ZXN0cy56aXAiPmZpcmVmb3gtNjAuMGExLmVuLVVTLm1hYy54cGNz
aGVsbC50ZXN0cy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4xNS1GZWIt
MjAxOCAxMTozNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy5tYWNfaW5mby50eHQiPmZpcmVm
b3gtNjAuMGExLmVuLVVTLm1hY19pbmZvLnR4dDwvYT48L3RkPgorCQkJCTx0ZD4yMzwvdGQ+CisJ
CQkJPHRkPjE1LUZlYi0yMDE4IDExOjM3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjMy
LmF3c3kudGVzdHMuemlwIj5maXJlZm94LTYwLjBhMS5lbi1VUy53aW4zMi5hd3N5LnRlc3RzLnpp
cDwvYT48L3RkPgorCQkJCTx0ZD4xNUs8L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMzoyMTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy53aW4zMi5jaGVja3N1bXMiPmZpcmVmb3gtNjAuMGEx
LmVuLVVTLndpbjMyLmNoZWNrc3VtczwvYT48L3RkPgorCQkJCTx0ZD44SzwvdGQ+CisJCQkJPHRk
PjE1LUZlYi0yMDE4IDEzOjIyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjMyLmNoZWNr
c3Vtcy5hc2MiPmZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjMyLmNoZWNrc3Vtcy5hc2M8L2E+PC90
ZD4KKwkJCQk8dGQ+ODM2PC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTM6MjI8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC02MC4wYTEuZW4tVVMud2luMzIuY29tbW9uLnRlc3RzLnppcCI+ZmlyZWZveC02MC4wYTEu
ZW4tVVMud2luMzIuY29tbW9uLnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4zNk08L3RkPgor
CQkJCTx0ZD4xNS1GZWItMjAxOCAxMzoyMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy53aW4z
Mi5jb21wbGV0ZS5tYXIiPmZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjMyLmNvbXBsZXRlLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD40ME08L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMzoyMTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LTYwLjBhMS5lbi1VUy53aW4zMi5jcHB1bml0dGVzdC50ZXN0cy56aXAiPmZpcmVm
b3gtNjAuMGExLmVuLVVTLndpbjMyLmNwcHVuaXR0ZXN0LnRlc3RzLnppcDwvYT48L3RkPgorCQkJ
CTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEzOjIxPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAu
MGExLmVuLVVTLndpbjMyLmNyYXNocmVwb3J0ZXItc3ltYm9scy56aXAiPmZpcmVmb3gtNjAuMGEx
LmVuLVVTLndpbjMyLmNyYXNocmVwb3J0ZXItc3ltYm9scy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+
MzJNPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTM6MjE8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEu
ZW4tVVMud2luMzIuaW5zdGFsbGVyLXN0dWIuZXhlIj5maXJlZm94LTYwLjBhMS5lbi1VUy53aW4z
Mi5pbnN0YWxsZXItc3R1Yi5leGU8L2E+PC90ZD4KKwkJCQk8dGQ+MjY5SzwvdGQ+CisJCQkJPHRk
PjE1LUZlYi0yMDE4IDEzOjIxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjMyLmluc3Rh
bGxlci5leGUiPmZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjMyLmluc3RhbGxlci5leGU8L2E+PC90
ZD4KKwkJCQk8dGQ+MzdNPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTM6MjA8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC02MC4wYTEuZW4tVVMud2luMzIuanNvbiI+ZmlyZWZveC02MC4wYTEuZW4tVVMud2luMzIu
anNvbjwvYT48L3RkPgorCQkJCTx0ZD44MzA8L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMzoy
MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy53aW4zMi5tb2NoaXRlc3QudGVzdHMuemlwIj5m
aXJlZm94LTYwLjBhMS5lbi1VUy53aW4zMi5tb2NoaXRlc3QudGVzdHMuemlwPC9hPjwvdGQ+CisJ
CQkJPHRkPjc0TTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEzOjIxPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
NjAuMGExLmVuLVVTLndpbjMyLm1vemluZm8uanNvbiI+ZmlyZWZveC02MC4wYTEuZW4tVVMud2lu
MzIubW96aW5mby5qc29uPC9hPjwvdGQ+CisJCQkJPHRkPjg3MDwvdGQ+CisJCQkJPHRkPjE1LUZl
Yi0yMDE4IDEzOjIwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjMyLnJlZnRlc3QudGVz
dHMuemlwIj5maXJlZm94LTYwLjBhMS5lbi1VUy53aW4zMi5yZWZ0ZXN0LnRlc3RzLnppcDwvYT48
L3RkPgorCQkJCTx0ZD41OE08L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMzoyMDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LTYwLjBhMS5lbi1VUy53aW4zMi50YWxvcy50ZXN0cy56aXAiPmZpcmVmb3gtNjAuMGEx
LmVuLVVTLndpbjMyLnRhbG9zLnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4xM008L3RkPgor
CQkJCTx0ZD4xNS1GZWItMjAxOCAxMzoyMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy53aW4z
Mi50ZXN0X3BhY2thZ2VzLmpzb24iPmZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjMyLnRlc3RfcGFj
a2FnZXMuanNvbjwvYT48L3RkPgorCQkJCTx0ZD4xSzwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4
IDEzOjIwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjMyLnR4dCI+ZmlyZWZveC02MC4w
YTEuZW4tVVMud2luMzIudHh0PC9hPjwvdGQ+CisJCQkJPHRkPjk5PC90ZD4KKwkJCQk8dGQ+MTUt
RmViLTIwMTggMTM6MjE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMud2luMzIud2ViLXBsYXRm
b3JtLnRlc3RzLnRhci5neiI+ZmlyZWZveC02MC4wYTEuZW4tVVMud2luMzIud2ViLXBsYXRmb3Jt
LnRlc3RzLnRhci5nejwvYT48L3RkPgorCQkJCTx0ZD40OE08L3RkPgorCQkJCTx0ZD4xNS1GZWIt
MjAxOCAxMzoyMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy53aW4zMi54cGNzaGVsbC50ZXN0
cy56aXAiPmZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjMyLnhwY3NoZWxsLnRlc3RzLnppcDwvYT48
L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEzOjIxPC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtNjAuMGExLmVuLVVTLndpbjMyLnppcCI+ZmlyZWZveC02MC4wYTEuZW4tVVMud2luMzIu
emlwPC9hPjwvdGQ+CisJCQkJPHRkPjU1TTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEzOjIw
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjMyX2luZm8udHh0Ij5maXJlZm94LTYwLjBh
MS5lbi1VUy53aW4zMl9pbmZvLnR4dDwvYT48L3RkPgorCQkJCTx0ZD4yMzwvdGQ+CisJCQkJPHRk
PjE1LUZlYi0yMDE4IDEzOjIxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjY0LmF3c3ku
dGVzdHMuemlwIj5maXJlZm94LTYwLjBhMS5lbi1VUy53aW42NC5hd3N5LnRlc3RzLnppcDwvYT48
L3RkPgorCQkJCTx0ZD4xNUs8L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMzoyMDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LTYwLjBhMS5lbi1VUy53aW42NC5jaGVja3N1bXMiPmZpcmVmb3gtNjAuMGExLmVuLVVT
LndpbjY0LmNoZWNrc3VtczwvYT48L3RkPgorCQkJCTx0ZD43SzwvdGQ+CisJCQkJPHRkPjE1LUZl
Yi0yMDE4IDEzOjIxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjY0LmNoZWNrc3Vtcy5h
c2MiPmZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjY0LmNoZWNrc3Vtcy5hc2M8L2E+PC90ZD4KKwkJ
CQk8dGQ+ODM2PC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTM6MjE8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02
MC4wYTEuZW4tVVMud2luNjQuY29tbW9uLnRlc3RzLnppcCI+ZmlyZWZveC02MC4wYTEuZW4tVVMu
d2luNjQuY29tbW9uLnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD4zN008L3RkPgorCQkJCTx0
ZD4xNS1GZWItMjAxOCAxMzoyMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy53aW42NC5jb21w
bGV0ZS5tYXIiPmZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjY0LmNvbXBsZXRlLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD40M008L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMzoyMDwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LTYwLjBhMS5lbi1VUy53aW42NC5jcHB1bml0dGVzdC50ZXN0cy56aXAiPmZpcmVmb3gtNjAu
MGExLmVuLVVTLndpbjY0LmNwcHVuaXR0ZXN0LnRlc3RzLnppcDwvYT48L3RkPgorCQkJCTx0ZD45
TTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEzOjIwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVu
LVVTLndpbjY0LmNyYXNocmVwb3J0ZXItc3ltYm9scy56aXAiPmZpcmVmb3gtNjAuMGExLmVuLVVT
LndpbjY0LmNyYXNocmVwb3J0ZXItc3ltYm9scy56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MjhNPC90
ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTM6MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMu
d2luNjQuaW5zdGFsbGVyLmV4ZSI+ZmlyZWZveC02MC4wYTEuZW4tVVMud2luNjQuaW5zdGFsbGVy
LmV4ZTwvYT48L3RkPgorCQkJCTx0ZD40ME08L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMzoy
MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy53aW42NC5qc29uIj5maXJlZm94LTYwLjBhMS5l
bi1VUy53aW42NC5qc29uPC9hPjwvdGQ+CisJCQkJPHRkPjg0MDwvdGQ+CisJCQkJPHRkPjE1LUZl
Yi0yMDE4IDEzOjIwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjY0Lm1vY2hpdGVzdC50
ZXN0cy56aXAiPmZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjY0Lm1vY2hpdGVzdC50ZXN0cy56aXA8
L2E+PC90ZD4KKwkJCQk8dGQ+NzRNPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTM6MjA8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC02MC4wYTEuZW4tVVMud2luNjQubW96aW5mby5qc29uIj5maXJlZm94LTYwLjBh
MS5lbi1VUy53aW42NC5tb3ppbmZvLmpzb248L2E+PC90ZD4KKwkJCQk8dGQ+ODczPC90ZD4KKwkJ
CQk8dGQ+MTUtRmViLTIwMTggMTM6MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMud2luNjQu
cmVmdGVzdC50ZXN0cy56aXAiPmZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjY0LnJlZnRlc3QudGVz
dHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjU4TTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEz
OjIwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjY0LnRhbG9zLnRlc3RzLnppcCI+Zmly
ZWZveC02MC4wYTEuZW4tVVMud2luNjQudGFsb3MudGVzdHMuemlwPC9hPjwvdGQ+CisJCQkJPHRk
PjEzTTwvdGQ+CisJCQkJPHRkPjE1LUZlYi0yMDE4IDEzOjIwPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGEx
LmVuLVVTLndpbjY0LnRlc3RfcGFja2FnZXMuanNvbiI+ZmlyZWZveC02MC4wYTEuZW4tVVMud2lu
NjQudGVzdF9wYWNrYWdlcy5qc29uPC9hPjwvdGQ+CisJCQkJPHRkPjFLPC90ZD4KKwkJCQk8dGQ+
MTUtRmViLTIwMTggMTM6MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMud2luNjQudHh0Ij5m
aXJlZm94LTYwLjBhMS5lbi1VUy53aW42NC50eHQ8L2E+PC90ZD4KKwkJCQk8dGQ+OTk8L3RkPgor
CQkJCTx0ZD4xNS1GZWItMjAxOCAxMzoyMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LTYwLjBhMS5lbi1VUy53aW42
NC53ZWItcGxhdGZvcm0udGVzdHMudGFyLmd6Ij5maXJlZm94LTYwLjBhMS5lbi1VUy53aW42NC53
ZWItcGxhdGZvcm0udGVzdHMudGFyLmd6PC9hPjwvdGQ+CisJCQkJPHRkPjQ4TTwvdGQ+CisJCQkJ
PHRkPjE1LUZlYi0yMDE4IDEzOjIwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtNjAuMGExLmVuLVVTLndpbjY0Lnhw
Y3NoZWxsLnRlc3RzLnppcCI+ZmlyZWZveC02MC4wYTEuZW4tVVMud2luNjQueHBjc2hlbGwudGVz
dHMuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTM6
MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMud2luNjQuemlwIj5maXJlZm94LTYwLjBhMS5l
bi1VUy53aW42NC56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+NTlNPC90ZD4KKwkJCQk8dGQ+MTUtRmVi
LTIwMTggMTM6MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC02MC4wYTEuZW4tVVMud2luNjRfaW5mby50eHQiPmZp
cmVmb3gtNjAuMGExLmVuLVVTLndpbjY0X2luZm8udHh0PC9hPjwvdGQ+CisJCQkJPHRkPjIzPC90
ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTM6MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTcuMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MTcxMDAzMzQtMjAxNzA5MjAyMjA0MzEu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1saW51eC1pNjg2LWVu
LVVTLTIwMTcwOTE3MTAwMzM0LTIwMTcwOTIwMjIwNDMxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMDA6MjE8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MTcyMjAyNTUtMjAx
NzA5MjAyMjA0MzEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1s
aW51eC1pNjg2LWVuLVVTLTIwMTcwOTE3MjIwMjU1LTIwMTcwOTIwMjIwNDMxLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMDA6MjA8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5
MTcyMjAyNTUtMjAxNzA5MjExMDAxNDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU3LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTE3MjIwMjU1LTIwMTcwOTIxMTAwMTQx
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIw
MTcgMTI6Mjk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzA5MTgxMDAwNTktMjAxNzA5MjAyMjA0MzEucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU3LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTE4MTAwMDU5LTIw
MTcwOTIwMjIwNDMxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8
dGQ+MjEtU2VwLTIwMTcgMDA6MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MTgxMDAwNTktMjAxNzA5MjExMDAxNDEucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcw
OTE4MTAwMDU5LTIwMTcwOTIxMTAwMTQxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhN
PC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTI6Mjk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTcuMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MTgyMjAwNTQtMjAxNzA5MjAyMjA0
MzEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1saW51eC1pNjg2
LWVuLVVTLTIwMTcwOTE4MjIwMDU0LTIwMTcwOTIwMjIwNDMxLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMDA6MjA8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MTgyMjAwNTQt
MjAxNzA5MjExMDAxNDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBh
MS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTE4MjIwMDU0LTIwMTcwOTIxMTAwMTQxLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTI6Mjk8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzA5MjAyMjA0MzEtMjAxNzA5MjExMDAxNDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU3LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTIwMjIwNDMxLTIwMTcwOTIxMTAw
MTQxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjEtU2Vw
LTIwMTcgMTI6Mjk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MDkxNzEwMDMzNC0yMDE3MDkxOTEwMDQwNS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkxNzEw
MDMzNC0yMDE3MDkxOTEwMDQwNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+
CisJCQkJPHRkPjE5LVNlcC0yMDE3IDE0OjQ5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU3LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MTcyMjAyNTUtMjAxNzA5MTkxMDA0MDUu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzA5MTcyMjAyNTUtMjAxNzA5MTkxMDA0MDUucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xOS1TZXAtMjAxNyAxNDo0OTwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTE3MjIwMjU1
LTIwMTcwOTE5MjIwMjAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTE3MjIwMjU1LTIwMTcwOTE5MjIwMjAyLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjAtU2VwLTIwMTcgMDA6
MDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MDkxODEwMDA1OS0yMDE3MDkxOTEwMDQwNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkxODEwMDA1OS0yMDE3
MDkxOTEwMDQwNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRk
PjE5LVNlcC0yMDE3IDE0OjQ5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MTgxMDAwNTktMjAxNzA5MTkyMjAyMDIucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzA5MTgxMDAwNTktMjAxNzA5MTkyMjAyMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
N008L3RkPgorCQkJCTx0ZD4yMC1TZXAtMjAxNyAwMDowODwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01Ny4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTE4MTAwMDU5LTIwMTcwOTIw
MTAwNDI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcwOTE4MTAwMDU5LTIwMTcwOTIwMTAwNDI2LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjAtU2VwLTIwMTcgMTI6MDg8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkx
ODIyMDA1NC0yMDE3MDkxOTEwMDQwNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTcuMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkxODIyMDA1NC0yMDE3MDkxOTEwMDQw
NS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE5LVNlcC0y
MDE3IDE0OjQ5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzA5MTgyMjAwNTQtMjAxNzA5MTkyMjAyMDIucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MTgyMjAw
NTQtMjAxNzA5MTkyMjAyMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgor
CQkJCTx0ZD4yMC1TZXAtMjAxNyAwMDowOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
Ny4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTE4MjIwMDU0LTIwMTcwOTIwMTAwNDI2LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcwOTE4MjIwMDU0LTIwMTcwOTIwMTAwNDI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjAtU2VwLTIwMTcgMTI6MDg8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkxODIyMDA1NC0y
MDE3MDkyMDIyMDQzMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkxODIyMDA1NC0yMDE3MDkyMDIyMDQzMS5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDAwOjA5
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzA5MTkxMDA0MDUtMjAxNzA5MTkyMjAyMDIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU3LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MTkxMDA0MDUtMjAxNzA5
MTkyMjAyMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4y
MC1TZXAtMjAxNyAwMDowODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcwOTE5MTAwNDA1LTIwMTcwOTIwMTAwNDI2LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcw
OTE5MTAwNDA1LTIwMTcwOTIwMTAwNDI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdN
PC90ZD4KKwkJCQk8dGQ+MjAtU2VwLTIwMTcgMTI6MDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTcuMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkxOTEwMDQwNS0yMDE3MDkyMDIy
MDQzMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MDkxOTEwMDQwNS0yMDE3MDkyMDIyMDQzMS5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDAwOjEwPC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MTkx
MDA0MDUtMjAxNzA5MjExMDAxNDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU3LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MTkxMDA0MDUtMjAxNzA5MjExMDAxNDEu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAx
NyAxMjoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcwOTE5MjIwMjAyLTIwMTcwOTIwMTAwNDI2LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTE5MjIwMjAy
LTIwMTcwOTIwMTAwNDI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJ
CQk8dGQ+MjAtU2VwLTIwMTcgMTI6MDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkxOTIyMDIwMi0yMDE3MDkyMDIyMDQzMS5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MDkxOTIyMDIwMi0yMDE3MDkyMDIyMDQzMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDAwOjA5PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU3LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MTkyMjAyMDItMjAx
NzA5MjExMDAxNDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MTkyMjAyMDItMjAxNzA5MjExMDAxNDEucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMjoxMzwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcwOTIwMTAwNDI2LTIwMTcwOTIwMjIwNDMxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01Ny4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIwMTAwNDI2LTIwMTcwOTIw
MjIwNDMxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjEt
U2VwLTIwMTcgMDA6MTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4
LXg4Nl82NC1lbi1VUy0yMDE3MDkyMDEwMDQyNi0yMDE3MDkyMTEwMDE0MS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDky
MDEwMDQyNi0yMDE3MDkyMTEwMDE0MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwv
dGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEyOjEzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU3LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjAyMjA0MzEtMjAxNzA5MjExMDAx
NDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzA5MjAyMjA0MzEtMjAxNzA5MjExMDAxNDEucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMjoxNDwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbWFjLWVuLVVTLTIwMTcwOTE3MTAwMzM0LTIwMTcw
OTE5MTAwNDA1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbWFj
LWVuLVVTLTIwMTcwOTE3MTAwMzM0LTIwMTcwOTE5MTAwNDA1LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MTktU2VwLTIwMTcgMTI6MjY8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLW1hYy1lbi1VUy0yMDE3MDkxNzIyMDI1NS0yMDE3MDkx
OTEwMDQwNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLW1hYy1l
bi1VUy0yMDE3MDkxNzIyMDI1NS0yMDE3MDkxOTEwMDQwNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjE5LVNlcC0yMDE3IDEyOjI2PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU3LjBhMS1tYWMtZW4tVVMtMjAxNzA5MTcyMjAyNTUtMjAxNzA5MTky
MjAyMDIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1tYWMtZW4t
VVMtMjAxNzA5MTcyMjAyNTUtMjAxNzA5MTkyMjAyMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4xOS1TZXAtMjAxNyAyMzoxOTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01Ny4wYTEtbWFjLWVuLVVTLTIwMTcwOTE4MTAwMDU5LTIwMTcwOTE5MTAw
NDA1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbWFjLWVuLVVT
LTIwMTcwOTE4MTAwMDU5LTIwMTcwOTE5MTAwNDA1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjRNPC90ZD4KKwkJCQk8dGQ+MTktU2VwLTIwMTcgMTI6Mjc8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTcuMGExLW1hYy1lbi1VUy0yMDE3MDkxODEwMDA1OS0yMDE3MDkxOTIyMDIw
Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLW1hYy1lbi1VUy0y
MDE3MDkxODEwMDA1OS0yMDE3MDkxOTIyMDIwMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD40TTwvdGQ+CisJCQkJPHRkPjE5LVNlcC0yMDE3IDIzOjE5PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU3LjBhMS1tYWMtZW4tVVMtMjAxNzA5MTgxMDAwNTktMjAxNzA5MjAxMDA0MjYu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1tYWMtZW4tVVMtMjAx
NzA5MTgxMDAwNTktMjAxNzA5MjAxMDA0MjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
NE08L3RkPgorCQkJCTx0ZD4yMC1TZXAtMjAxNyAxMToyMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01Ny4wYTEtbWFjLWVuLVVTLTIwMTcwOTE4MjIwMDU0LTIwMTcwOTE5MTAwNDA1LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbWFjLWVuLVVTLTIwMTcw
OTE4MjIwMDU0LTIwMTcwOTE5MTAwNDA1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRN
PC90ZD4KKwkJCQk8dGQ+MTktU2VwLTIwMTcgMTI6MjY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTcuMGExLW1hYy1lbi1VUy0yMDE3MDkxODIyMDA1NC0yMDE3MDkxOTIyMDIwMi5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLW1hYy1lbi1VUy0yMDE3MDkx
ODIyMDA1NC0yMDE3MDkxOTIyMDIwMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwv
dGQ+CisJCQkJPHRkPjE5LVNlcC0yMDE3IDIzOjE4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU3LjBhMS1tYWMtZW4tVVMtMjAxNzA5MTgyMjAwNTQtMjAxNzA5MjAxMDA0MjYucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1tYWMtZW4tVVMtMjAxNzA5MTgy
MjAwNTQtMjAxNzA5MjAxMDA0MjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3Rk
PgorCQkJCTx0ZD4yMC1TZXAtMjAxNyAxMToyMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01Ny4wYTEtbWFjLWVuLVVTLTIwMTcwOTE4MjIwMDU0LTIwMTcwOTIwMjIwNDMxLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbWFjLWVuLVVTLTIwMTcwOTE4MjIw
MDU0LTIwMTcwOTIwMjIwNDMxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4K
KwkJCQk8dGQ+MjAtU2VwLTIwMTcgMjM6MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTcuMGExLW1hYy1lbi1VUy0yMDE3MDkxOTEwMDQwNS0yMDE3MDkxOTIyMDIwMi5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLW1hYy1lbi1VUy0yMDE3MDkxOTEwMDQw
NS0yMDE3MDkxOTIyMDIwMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJ
CQkJPHRkPjE5LVNlcC0yMDE3IDIzOjE4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3
LjBhMS1tYWMtZW4tVVMtMjAxNzA5MTkxMDA0MDUtMjAxNzA5MjAxMDA0MjYucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1tYWMtZW4tVVMtMjAxNzA5MTkxMDA0MDUt
MjAxNzA5MjAxMDA0MjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJ
CTx0ZD4yMC1TZXAtMjAxNyAxMToyMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4w
YTEtbWFjLWVuLVVTLTIwMTcwOTE5MTAwNDA1LTIwMTcwOTIwMjIwNDMxLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbWFjLWVuLVVTLTIwMTcwOTE5MTAwNDA1LTIw
MTcwOTIwMjIwNDMxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8
dGQ+MjAtU2VwLTIwMTcgMjM6MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGEx
LW1hYy1lbi1VUy0yMDE3MDkxOTEwMDQwNS0yMDE3MDkyMTEwMDE0MS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLW1hYy1lbi1VUy0yMDE3MDkxOTEwMDQwNS0yMDE3
MDkyMTEwMDE0MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRk
PjIxLVNlcC0yMDE3IDExOjI2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1t
YWMtZW4tVVMtMjAxNzA5MTkyMjAyMDItMjAxNzA5MjAxMDA0MjYucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1tYWMtZW4tVVMtMjAxNzA5MTkyMjAyMDItMjAxNzA5
MjAxMDA0MjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4y
MC1TZXAtMjAxNyAxMToyMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbWFj
LWVuLVVTLTIwMTcwOTE5MjIwMjAyLTIwMTcwOTIwMjIwNDMxLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbWFjLWVuLVVTLTIwMTcwOTE5MjIwMjAyLTIwMTcwOTIw
MjIwNDMxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjAt
U2VwLTIwMTcgMjM6MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLW1hYy1l
bi1VUy0yMDE3MDkxOTIyMDIwMi0yMDE3MDkyMTEwMDE0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTcuMGExLW1hYy1lbi1VUy0yMDE3MDkxOTIyMDIwMi0yMDE3MDkyMTEw
MDE0MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjIxLVNl
cC0yMDE3IDExOjI2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS1tYWMtZW4t
VVMtMjAxNzA5MjAxMDA0MjYtMjAxNzA5MjAyMjA0MzEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU3LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjAxMDA0MjYtMjAxNzA5MjAyMjA0
MzEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4yMC1TZXAt
MjAxNyAyMzoyMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtbWFjLWVuLVVT
LTIwMTcwOTIwMTAwNDI2LTIwMTcwOTIxMTAwMTQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01Ny4wYTEtbWFjLWVuLVVTLTIwMTcwOTIwMTAwNDI2LTIwMTcwOTIxMTAwMTQx
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIw
MTcgMTE6MjY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLW1hYy1lbi1VUy0y
MDE3MDkyMDIyMDQzMS0yMDE3MDkyMTEwMDE0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTcuMGExLW1hYy1lbi1VUy0yMDE3MDkyMDIyMDQzMS0yMDE3MDkyMTEwMDE0MS5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3
IDExOjI2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW4zMi1lbi1VUy0y
MDE3MDkxNzEwMDMzNC0yMDE3MDkxOTEwMDQwNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTcuMGExLXdpbjMyLWVuLVVTLTIwMTcwOTE3MTAwMzM0LTIwMTcwOTE5MTAwNDA1
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTktU2VwLTIw
MTcgMTU6MTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjMyLWVuLVVT
LTIwMTcwOTE3MjIwMjU1LTIwMTcwOTE5MTAwNDA1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01Ny4wYTEtd2luMzItZW4tVVMtMjAxNzA5MTcyMjAyNTUtMjAxNzA5MTkxMDA0
MDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4xOS1TZXAt
MjAxNyAxNToxMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luMzItZW4t
VVMtMjAxNzA5MTcyMjAyNTUtMjAxNzA5MTkyMjAyMDIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU3LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkxNzIyMDI1NS0yMDE3MDkxOTIy
MDIwMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIwLVNl
cC0yMDE3IDAwOjQ0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW4zMi1l
bi1VUy0yMDE3MDkxODEwMDA1OS0yMDE3MDkxOTEwMDQwNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjMyLWVuLVVTLTIwMTcwOTE4MTAwMDU5LTIwMTcwOTE5
MTAwNDA1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MTkt
U2VwLTIwMTcgMTU6MTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjMy
LWVuLVVTLTIwMTcwOTE4MTAwMDU5LTIwMTcwOTE5MjIwMjAyLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luMzItZW4tVVMtMjAxNzA5MTgxMDAwNTktMjAxNzA5
MTkyMjAyMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4y
MC1TZXAtMjAxNyAwMDo0NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2lu
MzItZW4tVVMtMjAxNzA5MTgxMDAwNTktMjAxNzA5MjAxMDA0MjYucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkxODEwMDA1OS0yMDE3
MDkyMDEwMDQyNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRk
PjIwLVNlcC0yMDE3IDEyOjQzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13
aW4zMi1lbi1VUy0yMDE3MDkxODIyMDA1NC0yMDE3MDkxOTEwMDQwNS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjMyLWVuLVVTLTIwMTcwOTE4MjIwMDU0LTIw
MTcwOTE5MTAwNDA1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8
dGQ+MTktU2VwLTIwMTcgMTU6MTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGEx
LXdpbjMyLWVuLVVTLTIwMTcwOTE4MjIwMDU0LTIwMTcwOTE5MjIwMjAyLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luMzItZW4tVVMtMjAxNzA5MTgyMjAwNTQt
MjAxNzA5MTkyMjAyMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJ
CTx0ZD4yMC1TZXAtMjAxNyAwMDo0NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4w
YTEtd2luMzItZW4tVVMtMjAxNzA5MTgyMjAwNTQtMjAxNzA5MjAxMDA0MjYucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkxODIyMDA1
NC0yMDE3MDkyMDEwMDQyNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJ
CQkJPHRkPjIwLVNlcC0yMDE3IDEyOjQzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3
LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkxODIyMDA1NC0yMDE3MDkyMDIyMDQzMS5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjMyLWVuLVVTLTIwMTcwOTE4MjIw
MDU0LTIwMTcwOTIwMjIwNDMxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4K
KwkJCQk8dGQ+MjEtU2VwLTIwMTcgMDA6NTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTcuMGExLXdpbjMyLWVuLVVTLTIwMTcwOTE5MTAwNDA1LTIwMTcwOTE5MjIwMjAyLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luMzItZW4tVVMtMjAxNzA5MTkx
MDA0MDUtMjAxNzA5MTkyMjAyMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3Rk
PgorCQkJCTx0ZD4yMC1TZXAtMjAxNyAwMDo0NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01Ny4wYTEtd2luMzItZW4tVVMtMjAxNzA5MTkxMDA0MDUtMjAxNzA5MjAxMDA0MjYucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkx
OTEwMDQwNS0yMDE3MDkyMDEwMDQyNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwv
dGQ+CisJCQkJPHRkPjIwLVNlcC0yMDE3IDEyOjQzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU3LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkxOTEwMDQwNS0yMDE3MDkyMDIyMDQzMS5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjMyLWVuLVVTLTIwMTcw
OTE5MTAwNDA1LTIwMTcwOTIwMjIwNDMxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVN
PC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMDE6MDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTcuMGExLXdpbjMyLWVuLVVTLTIwMTcwOTE5MTAwNDA1LTIwMTcwOTIxMTAwMTQxLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luMzItZW4tVVMtMjAx
NzA5MTkxMDA0MDUtMjAxNzA5MjExMDAxNDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
Nk08L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMzowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01Ny4wYTEtd2luMzItZW4tVVMtMjAxNzA5MTkyMjAyMDItMjAxNzA5MjAxMDA0MjYu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW4zMi1lbi1VUy0y
MDE3MDkxOTIyMDIwMi0yMDE3MDkyMDEwMDQyNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD41TTwvdGQ+CisJCQkJPHRkPjIwLVNlcC0yMDE3IDEyOjQzPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU3LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkxOTIyMDIwMi0yMDE3MDkyMDIyMDQz
MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjMyLWVuLVVT
LTIwMTcwOTE5MjIwMjAyLTIwMTcwOTIwMjIwNDMxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMDE6MDA8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTcuMGExLXdpbjMyLWVuLVVTLTIwMTcwOTE5MjIwMjAyLTIwMTcwOTIxMTAw
MTQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luMzItZW4t
VVMtMjAxNzA5MTkyMjAyMDItMjAxNzA5MjExMDAxNDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMzowMTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01Ny4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjAxMDA0MjYtMjAxNzA5MjAy
MjA0MzEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW4zMi1l
bi1VUy0yMDE3MDkyMDEwMDQyNi0yMDE3MDkyMDIyMDQzMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0yMDE3IDAwOjU5PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyMDEwMDQyNi0yMDE3MDky
MTEwMDE0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjMy
LWVuLVVTLTIwMTcwOTIwMTAwNDI2LTIwMTcwOTIxMTAwMTQxLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTM6MDE8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjMyLWVuLVVTLTIwMTcwOTIwMjIwNDMxLTIwMTcw
OTIxMTAwMTQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2lu
MzItZW4tVVMtMjAxNzA5MjAyMjA0MzEtMjAxNzA5MjExMDAxNDEucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAxMzowMTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MTcxMDAzMzQtMjAx
NzA5MTkxMDA0MDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13
aW42NC1lbi1VUy0yMDE3MDkxNzEwMDMzNC0yMDE3MDkxOTEwMDQwNS5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE5LVNlcC0yMDE3IDE1OjQ0PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW42NC1lbi1VUy0yMDE3MDkxNzIyMDI1NS0y
MDE3MDkxOTEwMDQwNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGEx
LXdpbjY0LWVuLVVTLTIwMTcwOTE3MjIwMjU1LTIwMTcwOTE5MTAwNDA1LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTktU2VwLTIwMTcgMTU6NDQ8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjY0LWVuLVVTLTIwMTcwOTE3MjIwMjU1
LTIwMTcwOTE5MjIwMjAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4w
YTEtd2luNjQtZW4tVVMtMjAxNzA5MTcyMjAyNTUtMjAxNzA5MTkyMjAyMDIucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMC1TZXAtMjAxNyAwMDo0NzwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MTgxMDAw
NTktMjAxNzA5MTkxMDA0MDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3
LjBhMS13aW42NC1lbi1VUy0yMDE3MDkxODEwMDA1OS0yMDE3MDkxOTEwMDQwNS5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE5LVNlcC0yMDE3IDE1OjQ0PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW42NC1lbi1VUy0yMDE3MDkxODEw
MDA1OS0yMDE3MDkxOTIyMDIwMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTcuMGExLXdpbjY0LWVuLVVTLTIwMTcwOTE4MTAwMDU5LTIwMTcwOTE5MjIwMjAyLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjAtU2VwLTIwMTcgMDA6NDc8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjY0LWVuLVVTLTIwMTcwOTE4
MTAwMDU5LTIwMTcwOTIwMTAwNDI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01Ny4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MTgxMDAwNTktMjAxNzA5MjAxMDA0MjYucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMC1TZXAtMjAxNyAxMjo0
NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luNjQtZW4tVVMtMjAxNzA5
MTgyMjAwNTQtMjAxNzA5MTkxMDA0MDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU3LjBhMS13aW42NC1lbi1VUy0yMDE3MDkxODIyMDA1NC0yMDE3MDkxOTEwMDQwNS5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE5LVNlcC0yMDE3IDE1
OjQ0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW42NC1lbi1VUy0yMDE3
MDkxODIyMDA1NC0yMDE3MDkxOTIyMDIwMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTcuMGExLXdpbjY0LWVuLVVTLTIwMTcwOTE4MjIwMDU0LTIwMTcwOTE5MjIwMjAyLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjAtU2VwLTIwMTcg
MDA6NDc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjY0LWVuLVVTLTIw
MTcwOTE4MjIwMDU0LTIwMTcwOTIwMTAwNDI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01Ny4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MTgyMjAwNTQtMjAxNzA5MjAxMDA0MjYu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMC1TZXAtMjAx
NyAxMjo0NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luNjQtZW4tVVMt
MjAxNzA5MTgyMjAwNTQtMjAxNzA5MjAyMjA0MzEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU3LjBhMS13aW42NC1lbi1VUy0yMDE3MDkxODIyMDA1NC0yMDE3MDkyMDIyMDQz
MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIxLVNlcC0y
MDE3IDAxOjA5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW42NC1lbi1V
Uy0yMDE3MDkxOTEwMDQwNS0yMDE3MDkxOTIyMDIwMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTcuMGExLXdpbjY0LWVuLVVTLTIwMTcwOTE5MTAwNDA1LTIwMTcwOTE5MjIw
MjAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjAtU2Vw
LTIwMTcgMDA6NDc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjY0LWVu
LVVTLTIwMTcwOTE5MTAwNDA1LTIwMTcwOTIwMTAwNDI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01Ny4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MTkxMDA0MDUtMjAxNzA5MjAx
MDA0MjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMC1T
ZXAtMjAxNyAxMjo0NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luNjQt
ZW4tVVMtMjAxNzA5MTkxMDA0MDUtMjAxNzA5MjAyMjA0MzEucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW42NC1lbi1VUy0yMDE3MDkxOTEwMDQwNS0yMDE3MDky
MDIyMDQzMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIx
LVNlcC0yMDE3IDAxOjA5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW42
NC1lbi1VUy0yMDE3MDkxOTEwMDQwNS0yMDE3MDkyMTEwMDE0MS5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjY0LWVuLVVTLTIwMTcwOTE5MTAwNDA1LTIwMTcw
OTIxMTAwMTQxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+
MjEtU2VwLTIwMTcgMTM6MDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdp
bjY0LWVuLVVTLTIwMTcwOTE5MjIwMjAyLTIwMTcwOTIwMTAwNDI2LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MTkyMjAyMDItMjAx
NzA5MjAxMDA0MjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0
ZD4yMC1TZXAtMjAxNyAxMjo0NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEt
d2luNjQtZW4tVVMtMjAxNzA5MTkyMjAyMDItMjAxNzA5MjAyMjA0MzEucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW42NC1lbi1VUy0yMDE3MDkxOTIyMDIwMi0y
MDE3MDkyMDIyMDQzMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJ
PHRkPjIxLVNlcC0yMDE3IDAxOjA5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBh
MS13aW42NC1lbi1VUy0yMDE3MDkxOTIyMDIwMi0yMDE3MDkyMTEwMDE0MS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjY0LWVuLVVTLTIwMTcwOTE5MjIwMjAy
LTIwMTcwOTIxMTAwMTQxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJ
CQk8dGQ+MjEtU2VwLTIwMTcgMTM6MDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcu
MGExLXdpbjY0LWVuLVVTLTIwMTcwOTIwMTAwNDI2LTIwMTcwOTIwMjIwNDMxLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01Ny4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjAxMDA0
MjYtMjAxNzA5MjAyMjA0MzEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgor
CQkJCTx0ZD4yMS1TZXAtMjAxNyAwMToxMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
Ny4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjAxMDA0MjYtMjAxNzA5MjExMDAxNDEucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU3LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyMDEw
MDQyNi0yMDE3MDkyMTEwMDE0MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+
CisJCQkJPHRkPjIxLVNlcC0yMDE3IDEzOjA5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU3LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyMDIyMDQzMS0yMDE3MDkyMTEwMDE0MS5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTcuMGExLXdpbjY0LWVuLVVTLTIwMTcwOTIw
MjIwNDMxLTIwMTcwOTIxMTAwMTQxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90
ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMTM6MDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MTgxMDAwNTktMjAxNzA5MjEyMjAyNDMu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVu
LVVTLTIwMTcwOTE4MTAwMDU5LTIwMTcwOTIxMjIwMjQzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjItU2VwLTIwMTcgMDA6NDM8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MTgyMjAwNTQtMjAx
NzA5MjEyMjAyNDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC1pNjg2LWVuLVVTLTIwMTcwOTE4MjIwMDU0LTIwMTcwOTIxMjIwMjQzLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjItU2VwLTIwMTcgMDA6NDM8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5
MTgyMjAwNTQtMjAxNzA5MjIxMDAwNTEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTE4MjIwMDU0LTIwMTcwOTIyMTAwMDUx
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MjItU2VwLTIw
MTcgMTI6NDU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzA5MjAyMjA0MzEtMjAxNzA5MjEyMjAyNDMucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTIwMjIwNDMxLTIw
MTcwOTIxMjIwMjQzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8
dGQ+MjItU2VwLTIwMTcgMDA6NDI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjAyMjA0MzEtMjAxNzA5MjIxMDAwNTEucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcw
OTIwMjIwNDMxLTIwMTcwOTIyMTAwMDUxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdN
PC90ZD4KKwkJCQk8dGQ+MjItU2VwLTIwMTcgMTI6NDU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjAyMjA0MzEtMjAxNzA5MjIyMjAx
MjkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2
LWVuLVVTLTIwMTcwOTIwMjIwNDMxLTIwMTcwOTIyMjIwMTI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjMtU2VwLTIwMTcgMDA6NTY8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjExMDAxNDEt
MjAxNzA5MjEyMjAyNDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTIxMTAwMTQxLTIwMTcwOTIxMjIwMjQzLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjItU2VwLTIwMTcgMDA6NDM8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzA5MjExMDAxNDEtMjAxNzA5MjIxMDAwNTEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTIxMTAwMTQxLTIwMTcwOTIyMTAw
MDUxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjItU2Vw
LTIwMTcgMTI6NDU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzA5MjExMDAxNDEtMjAxNzA5MjIyMjAxMjkucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTIxMTAwMTQx
LTIwMTcwOTIyMjIwMTI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJ
CQk8dGQ+MjMtU2VwLTIwMTcgMDA6NTY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjExMDAxNDEtMjAxNzA5MjMxMDAwNDUucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIw
MTcwOTIxMTAwMTQxLTIwMTcwOTIzMTAwMDQ1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjdNPC90ZD4KKwkJCQk8dGQ+MjMtU2VwLTIwMTcgMTM6MDc8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjEyMjAyNDMtMjAxNzA5MjIx
MDAwNTEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1p
Njg2LWVuLVVTLTIwMTcwOTIxMjIwMjQzLTIwMTcwOTIyMTAwMDUxLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjItU2VwLTIwMTcgMTI6NDU8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjEyMjAy
NDMtMjAxNzA5MjIyMjAxMjkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTIxMjIwMjQzLTIwMTcwOTIyMjIwMTI5LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjMtU2VwLTIwMTcgMDA6
NTY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzA5MjEyMjAyNDMtMjAxNzA5MjMxMDAwNDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTIxMjIwMjQzLTIwMTcwOTIz
MTAwMDQ1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjMt
U2VwLTIwMTcgMTM6MDc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzA5MjEyMjAyNDMtMjAxNzA5MjMyMjAzMzcucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTIxMjIw
MjQzLTIwMTcwOTIzMjIwMzM3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4K
KwkJCQk8dGQ+MjQtU2VwLTIwMTcgMDE6NTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjIxMDAwNTEtMjAxNzA5MjIyMjAxMjkucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVT
LTIwMTcwOTIyMTAwMDUxLTIwMTcwOTIyMjIwMTI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjMtU2VwLTIwMTcgMDA6NTY8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjIxMDAwNTEtMjAxNzA5
MjMxMDAwNDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC1pNjg2LWVuLVVTLTIwMTcwOTIyMTAwMDUxLTIwMTcwOTIzMTAwMDQ1LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjMtU2VwLTIwMTcgMTM6MDc8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjIx
MDAwNTEtMjAxNzA5MjMyMjAzMzcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTIyMTAwMDUxLTIwMTcwOTIzMjIwMzM3LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjQtU2VwLTIwMTcg
MDE6NTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzA5MjIxMDAwNTEtMjAxNzA5MjQxMDA1NTAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTIyMTAwMDUxLTIwMTcw
OTI0MTAwNTUwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+
MjQtU2VwLTIwMTcgMTM6MzE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzA5MjIyMjAxMjktMjAxNzA5MjMxMDAwNDUucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTIy
MjIwMTI5LTIwMTcwOTIzMTAwMDQ1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90
ZD4KKwkJCQk8dGQ+MjMtU2VwLTIwMTcgMTM6MDc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjIyMjAxMjktMjAxNzA5MjMyMjAzMzcu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVu
LVVTLTIwMTcwOTIyMjIwMTI5LTIwMTcwOTIzMjIwMzM3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjQtU2VwLTIwMTcgMDE6NTE8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjIyMjAxMjktMjAx
NzA5MjQxMDA1NTAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC1pNjg2LWVuLVVTLTIwMTcwOTIyMjIwMTI5LTIwMTcwOTI0MTAwNTUwLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjQtU2VwLTIwMTcgMTM6MzE8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5
MjIyMjAxMjktMjAxNzA5MjQyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTIyMjIwMTI5LTIwMTcwOTI0MjIwMTE2
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjUtU2VwLTIw
MTcgMDE6MDY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzA5MjMxMDAwNDUtMjAxNzA5MjMyMjAzMzcucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTIzMTAwMDQ1LTIw
MTcwOTIzMjIwMzM3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8
dGQ+MjQtU2VwLTIwMTcgMDE6NTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjMxMDAwNDUtMjAxNzA5MjQxMDA1NTAucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcw
OTIzMTAwMDQ1LTIwMTcwOTI0MTAwNTUwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVN
PC90ZD4KKwkJCQk8dGQ+MjQtU2VwLTIwMTcgMTM6MzA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjMxMDAwNDUtMjAxNzA5MjQyMjAx
MTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2
LWVuLVVTLTIwMTcwOTIzMTAwMDQ1LTIwMTcwOTI0MjIwMTE2LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjUtU2VwLTIwMTcgMDE6MDY8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjMxMDAwNDUt
MjAxNzA5MjUxMDAzMDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTIzMTAwMDQ1LTIwMTcwOTI1MTAwMzA3LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjUtU2VwLTIwMTcgMTI6MTQ8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzA5MjMyMjAzMzctMjAxNzA5MjQxMDA1NTAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTIzMjIwMzM3LTIwMTcwOTI0MTAw
NTUwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjQtU2Vw
LTIwMTcgMTM6MzA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzA5MjMyMjAzMzctMjAxNzA5MjQyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTIzMjIwMzM3
LTIwMTcwOTI0MjIwMTE2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJ
CQk8dGQ+MjUtU2VwLTIwMTcgMDE6MDY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjMyMjAzMzctMjAxNzA5MjUxMDAzMDcucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIw
MTcwOTIzMjIwMzM3LTIwMTcwOTI1MTAwMzA3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjZNPC90ZD4KKwkJCQk8dGQ+MjUtU2VwLTIwMTcgMTI6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjMyMjAzMzctMjAxNzA5MjUy
MjAyMDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1p
Njg2LWVuLVVTLTIwMTcwOTIzMjIwMzM3LTIwMTcwOTI1MjIwMjA3LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjYtU2VwLTIwMTcgMDA6MTI8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjQxMDA1
NTAtMjAxNzA5MjQyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI0MTAwNTUwLTIwMTcwOTI0MjIwMTE2LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjUtU2VwLTIwMTcgMDE6
MDY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzA5MjQxMDA1NTAtMjAxNzA5MjUxMDAzMDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI0MTAwNTUwLTIwMTcwOTI1
MTAwMzA3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjUt
U2VwLTIwMTcgMTI6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzA5MjQxMDA1NTAtMjAxNzA5MjUyMjAyMDcucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI0MTAw
NTUwLTIwMTcwOTI1MjIwMjA3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4K
KwkJCQk8dGQ+MjYtU2VwLTIwMTcgMDA6MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjQxMDA1NTAtMjAxNzA5MjYxMDAyNTkucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVT
LTIwMTcwOTI0MTAwNTUwLTIwMTcwOTI2MTAwMjU5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjYtU2VwLTIwMTcgMTI6MjQ8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjQyMjAxMTYtMjAxNzA5
MjUxMDAzMDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC1pNjg2LWVuLVVTLTIwMTcwOTI0MjIwMTE2LTIwMTcwOTI1MTAwMzA3LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjUtU2VwLTIwMTcgMTI6MTQ8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjQy
MjAxMTYtMjAxNzA5MjUyMjAyMDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI0MjIwMTE2LTIwMTcwOTI1MjIwMjA3LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjYtU2VwLTIwMTcg
MDA6MTI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzA5MjQyMjAxMTYtMjAxNzA5MjYxMDAyNTkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI0MjIwMTE2LTIwMTcw
OTI2MTAwMjU5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+
MjYtU2VwLTIwMTcgMTI6MjQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzA5MjQyMjAxMTYtMjAxNzA5MjYyMjAxMDYucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI0
MjIwMTE2LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90
ZD4KKwkJCQk8dGQ+MjctU2VwLTIwMTcgMDA6MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjUxMDAzMDctMjAxNzA5MjUyMjAyMDcu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVu
LVVTLTIwMTcwOTI1MTAwMzA3LTIwMTcwOTI1MjIwMjA3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjYtU2VwLTIwMTcgMDA6MTM8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjUxMDAzMDctMjAx
NzA5MjYxMDAyNTkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC1pNjg2LWVuLVVTLTIwMTcwOTI1MTAwMzA3LTIwMTcwOTI2MTAwMjU5LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjYtU2VwLTIwMTcgMTI6MjQ8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5
MjUxMDAzMDctMjAxNzA5MjYyMjAxMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI1MTAwMzA3LTIwMTcwOTI2MjIwMTA2
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjctU2VwLTIw
MTcgMDA6MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzA5MjUxMDAzMDctMjAxNzA5MjcxMDAxMjAucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI1MTAwMzA3LTIw
MTcwOTI3MTAwMTIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8
dGQ+MjctU2VwLTIwMTcgMTI6MTY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjUyMjAyMDctMjAxNzA5MjYxMDAyNTkucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcw
OTI1MjIwMjA3LTIwMTcwOTI2MTAwMjU5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdN
PC90ZD4KKwkJCQk8dGQ+MjYtU2VwLTIwMTcgMTI6MjU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjUyMjAyMDctMjAxNzA5MjYyMjAx
MDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2
LWVuLVVTLTIwMTcwOTI1MjIwMjA3LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjctU2VwLTIwMTcgMDA6MjA8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjUyMjAyMDct
MjAxNzA5MjcxMDAxMjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI1MjIwMjA3LTIwMTcwOTI3MTAwMTIwLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjctU2VwLTIwMTcgMTI6MTU8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzA5MjUyMjAyMDctMjAxNzA5MjgxMDAxMjMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI1MjIwMjA3LTIwMTcwOTI4MTAw
MTIzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MjgtU2Vw
LTIwMTcgMTI6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzA5MjYxMDAyNTktMjAxNzA5MjYyMjAxMDYucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI2MTAwMjU5
LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJ
CQk8dGQ+MjctU2VwLTIwMTcgMDA6MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjYxMDAyNTktMjAxNzA5MjcxMDAxMjAucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIw
MTcwOTI2MTAwMjU5LTIwMTcwOTI3MTAwMTIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjdNPC90ZD4KKwkJCQk8dGQ+MjctU2VwLTIwMTcgMTI6MTY8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjYxMDAyNTktMjAxNzA5Mjgx
MDAxMjMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1p
Njg2LWVuLVVTLTIwMTcwOTI2MTAwMjU5LTIwMTcwOTI4MTAwMTIzLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MjgtU2VwLTIwMTcgMTI6MTQ8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjYxMDAy
NTktMjAxNzA5MjgyMjA2NTgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI2MTAwMjU5LTIwMTcwOTI4MjIwNjU4LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjktU2VwLTIwMTcgMDA6
Mjc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzA5MjYyMjAxMDYtMjAxNzA5MjcxMDAxMjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI2MjIwMTA2LTIwMTcwOTI3
MTAwMTIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+Mjct
U2VwLTIwMTcgMTI6MTY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzA5MjYyMjAxMDYtMjAxNzA5MjgxMDAxMjMucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI2MjIw
MTA2LTIwMTcwOTI4MTAwMTIzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4K
KwkJCQk8dGQ+MjgtU2VwLTIwMTcgMTI6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjYyMjAxMDYtMjAxNzA5MjgyMjA2NTgucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVT
LTIwMTcwOTI2MjIwMTA2LTIwMTcwOTI4MjIwNjU4LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjktU2VwLTIwMTcgMDA6Mjc8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjYyMjAxMDYtMjAxNzA5
MjkxMDAxMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC1pNjg2LWVuLVVTLTIwMTcwOTI2MjIwMTA2LTIwMTcwOTI5MTAwMTIyLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjktU2VwLTIwMTcgMTI6MTc8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5Mjcx
MDAxMjAtMjAxNzA5MjgxMDAxMjMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI3MTAwMTIwLTIwMTcwOTI4MTAwMTIzLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjgtU2VwLTIwMTcg
MTI6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzA5MjcxMDAxMjAtMjAxNzA5MjgyMjA2NTgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI3MTAwMTIwLTIwMTcw
OTI4MjIwNjU4LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+
MjktU2VwLTIwMTcgMDA6Mjc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzA5MjcxMDAxMjAtMjAxNzA5MjkxMDAxMjIucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI3
MTAwMTIwLTIwMTcwOTI5MTAwMTIyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90
ZD4KKwkJCQk8dGQ+MjktU2VwLTIwMTcgMTI6MTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjcxMDAxMjAtMjAxNzA5MjkyMjAzNTYu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVu
LVVTLTIwMTcwOTI3MTAwMTIwLTIwMTcwOTI5MjIwMzU2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MzAtU2VwLTIwMTcgMDA6MTU8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjgxMDAxMjMtMjAx
NzA5MjgyMjA2NTgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC1pNjg2LWVuLVVTLTIwMTcwOTI4MTAwMTIzLTIwMTcwOTI4MjIwNjU4LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjktU2VwLTIwMTcgMDA6Mjc8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5
MjgxMDAxMjMtMjAxNzA5MjkxMDAxMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI4MTAwMTIzLTIwMTcwOTI5MTAwMTIy
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjktU2VwLTIw
MTcgMTI6MTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzA5MjgxMDAxMjMtMjAxNzA5MjkyMjAzNTYucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI4MTAwMTIzLTIw
MTcwOTI5MjIwMzU2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8
dGQ+MzAtU2VwLTIwMTcgMDA6MTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjgxMDAxMjMtMjAxNzA5MzAxMDAzMDIucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcw
OTI4MTAwMTIzLTIwMTcwOTMwMTAwMzAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlN
PC90ZD4KKwkJCQk8dGQ+MzAtU2VwLTIwMTcgMTI6MjI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjgyMjA2NTgtMjAxNzA5MjkxMDAx
MjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2
LWVuLVVTLTIwMTcwOTI4MjIwNjU4LTIwMTcwOTI5MTAwMTIyLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjktU2VwLTIwMTcgMTI6MTc8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjgyMjA2NTgt
MjAxNzA5MjkyMjAzNTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI4MjIwNjU4LTIwMTcwOTI5MjIwMzU2LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MzAtU2VwLTIwMTcgMDA6MTU8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzA5MjgyMjA2NTgtMjAxNzA5MzAxMDAzMDIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI4MjIwNjU4LTIwMTcwOTMwMTAw
MzAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MzAtU2Vw
LTIwMTcgMTI6MjI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzA5MjgyMjA2NTgtMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI4MjIwNjU4
LTIwMTcwOTMwMjIwMTE2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJ
CQk8dGQ+MDEtT2N0LTIwMTcgMDA6Mjg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjkxMDAxMjItMjAxNzA5MjkyMjAzNTYucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIw
MTcwOTI5MTAwMTIyLTIwMTcwOTI5MjIwMzU2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjdNPC90ZD4KKwkJCQk8dGQ+MzAtU2VwLTIwMTcgMDA6MTU8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjkxMDAxMjItMjAxNzA5MzAx
MDAzMDIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1p
Njg2LWVuLVVTLTIwMTcwOTI5MTAwMTIyLTIwMTcwOTMwMTAwMzAyLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MzAtU2VwLTIwMTcgMTI6MjI8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjkxMDAx
MjItMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI5MTAwMTIyLTIwMTcwOTMwMjIwMTE2LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDEtT2N0LTIwMTcgMDA6
Mjg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzA5MjkxMDAxMjItMjAxNzEwMDExMDAzMzUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI5MTAwMTIyLTIwMTcxMDAx
MTAwMzM1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDEt
T2N0LTIwMTcgMTI6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzA5MjkyMjAzNTYtMjAxNzA5MzAxMDAzMDIucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI5MjIw
MzU2LTIwMTcwOTMwMTAwMzAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4K
KwkJCQk8dGQ+MzAtU2VwLTIwMTcgMTI6MjI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjkyMjAzNTYtMjAxNzA5MzAyMjAxMTYucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVT
LTIwMTcwOTI5MjIwMzU2LTIwMTcwOTMwMjIwMTE2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDEtT2N0LTIwMTcgMDA6Mjg8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MjkyMjAzNTYtMjAxNzEw
MDExMDAzMzUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC1pNjg2LWVuLVVTLTIwMTcwOTI5MjIwMzU2LTIwMTcxMDAxMTAwMzM1LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDEtT2N0LTIwMTcgMTI6MTQ8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5Mjky
MjAzNTYtMjAxNzEwMDEyMjAzMDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTI5MjIwMzU2LTIwMTcxMDAxMjIwMzAxLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDItT2N0LTIwMTcg
MDA6MTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzA5MzAxMDAzMDItMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTMwMTAwMzAyLTIwMTcw
OTMwMjIwMTE2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+
MDEtT2N0LTIwMTcgMDA6Mjg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzA5MzAxMDAzMDItMjAxNzEwMDExMDAzMzUucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTMw
MTAwMzAyLTIwMTcxMDAxMTAwMzM1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90
ZD4KKwkJCQk8dGQ+MDEtT2N0LTIwMTcgMTI6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MzAxMDAzMDItMjAxNzEwMDEyMjAzMDEu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVu
LVVTLTIwMTcwOTMwMTAwMzAyLTIwMTcxMDAxMjIwMzAxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDItT2N0LTIwMTcgMDA6MTU8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MzAxMDAzMDItMjAx
NzEwMDIxMDAxMzQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC1pNjg2LWVuLVVTLTIwMTcwOTMwMTAwMzAyLTIwMTcxMDAyMTAwMTM0LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDItT2N0LTIwMTcgMTI6Mjk8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5
MzAyMjAxMTYtMjAxNzEwMDExMDAzMzUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTMwMjIwMTE2LTIwMTcxMDAxMTAwMzM1
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDEtT2N0LTIw
MTcgMTI6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzA5MzAyMjAxMTYtMjAxNzEwMDEyMjAzMDEucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcwOTMwMjIwMTE2LTIw
MTcxMDAxMjIwMzAxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8
dGQ+MDItT2N0LTIwMTcgMDA6MTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MzAyMjAxMTYtMjAxNzEwMDIxMDAxMzQucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcw
OTMwMjIwMTE2LTIwMTcxMDAyMTAwMTM0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZN
PC90ZD4KKwkJCQk8dGQ+MDItT2N0LTIwMTcgMTI6Mjk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzA5MzAyMjAxMTYtMjAxNzEwMDIyMjAy
MDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2
LWVuLVVTLTIwMTcwOTMwMjIwMTE2LTIwMTcxMDAyMjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDMtT2N0LTIwMTcgMDA6Mzc8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDExMDAzMzUt
MjAxNzEwMDEyMjAzMDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDAxMTAwMzM1LTIwMTcxMDAxMjIwMzAxLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDItT2N0LTIwMTcgMDA6MTU8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzEwMDExMDAzMzUtMjAxNzEwMDIxMDAxMzQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDAxMTAwMzM1LTIwMTcxMDAyMTAw
MTM0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDItT2N0
LTIwMTcgMTI6Mjk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzEwMDExMDAzMzUtMjAxNzEwMDIyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDAxMTAwMzM1
LTIwMTcxMDAyMjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJ
CQk8dGQ+MDMtT2N0LTIwMTcgMDA6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDExMDAzMzUtMjAxNzEwMDMxMDAyMjYucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIw
MTcxMDAxMTAwMzM1LTIwMTcxMDAzMTAwMjI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjdNPC90ZD4KKwkJCQk8dGQ+MDMtT2N0LTIwMTcgMTI6MTA8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDEyMjAzMDEtMjAxNzEwMDIx
MDAxMzQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1p
Njg2LWVuLVVTLTIwMTcxMDAxMjIwMzAxLTIwMTcxMDAyMTAwMTM0LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDItT2N0LTIwMTcgMTI6Mjk8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDEyMjAz
MDEtMjAxNzEwMDIyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDAxMjIwMzAxLTIwMTcxMDAyMjIwMjA0LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDMtT2N0LTIwMTcgMDA6
Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzEwMDEyMjAzMDEtMjAxNzEwMDMxMDAyMjYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDAxMjIwMzAxLTIwMTcxMDAz
MTAwMjI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDMt
T2N0LTIwMTcgMTI6MTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzEwMDEyMjAzMDEtMjAxNzEwMDMyMjAxMzgucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDAxMjIw
MzAxLTIwMTcxMDAzMjIwMTM4LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4K
KwkJCQk8dGQ+MDQtT2N0LTIwMTcgMDA6MTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDIxMDAxMzQtMjAxNzEwMDIyMjAyMDQucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVT
LTIwMTcxMDAyMTAwMTM0LTIwMTcxMDAyMjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDMtT2N0LTIwMTcgMDA6Mzc8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDIxMDAxMzQtMjAxNzEw
MDMxMDAyMjYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC1pNjg2LWVuLVVTLTIwMTcxMDAyMTAwMTM0LTIwMTcxMDAzMTAwMjI2LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDMtT2N0LTIwMTcgMTI6MTA8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDIx
MDAxMzQtMjAxNzEwMDMyMjAxMzgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDAyMTAwMTM0LTIwMTcxMDAzMjIwMTM4LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDQtT2N0LTIwMTcg
MDA6MTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzEwMDIxMDAxMzQtMjAxNzEwMDQxMDAwNDkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDAyMTAwMTM0LTIwMTcx
MDA0MTAwMDQ5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjEwTTwvdGQ+CisJCQkJPHRk
PjA0LU9jdC0yMDE3IDEzOjI1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC1pNjg2LWVuLVVTLTIwMTcxMDAyMjIwMjA0LTIwMTcxMDAzMTAwMjI2LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAw
MjIyMDIwNC0yMDE3MTAwMzEwMDIyNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwv
dGQ+CisJCQkJPHRkPjAzLU9jdC0yMDE3IDEyOjEwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDAyMjIwMjA0LTIwMTcxMDAzMjIwMTM4
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MTAwMjIyMDIwNC0yMDE3MTAwMzIyMDEzOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA0LU9jdC0yMDE3IDAwOjE3PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDAyMjIwMjA0LTIw
MTcxMDA0MTAwMDQ5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwMjIyMDIwNC0yMDE3MTAwNDEwMDA0OS5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD4xME08L3RkPgorCQkJCTx0ZD4wNC1PY3QtMjAxNyAxMzoyNTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MTAwMjIyMDIwNC0yMDE3MTAwNDIyMDMwOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDIyMjAyMDQtMjAxNzEwMDQyMjAz
MDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTFNPC90ZD4KKwkJCQk8dGQ+MDUtT2N0
LTIwMTcgMDA6MTY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzEwMDMxMDAyMjYtMjAxNzEwMDMyMjAxMzgucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDAzMTAwMjI2
LTIwMTcxMDAzMjIwMTM4LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJ
CQk8dGQ+MDQtT2N0LTIwMTcgMDA6MTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDMxMDAyMjYtMjAxNzEwMDQxMDAwNDkucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIw
MTcxMDAzMTAwMjI2LTIwMTcxMDA0MTAwMDQ5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjEwTTwvdGQ+CisJCQkJPHRkPjA0LU9jdC0yMDE3IDEzOjI1PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDAzMTAwMjI2LTIwMTcxMDA0
MjIwMzA5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MTAwMzEwMDIyNi0yMDE3MTAwNDIyMDMwOS5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD4xMU08L3RkPgorCQkJCTx0ZD4wNS1PY3QtMjAxNyAwMDoxNjwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwMzEw
MDIyNi0yMDE3MTAwNTEwMDIxMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDMxMDAyMjYtMjAxNzEwMDUxMDAyMTEucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTFNPC90ZD4KKwkJCQk8dGQ+MDUtT2N0LTIwMTcg
MTI6MTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzEwMDMyMjAxMzgtMjAxNzEwMDQxMDAwNDkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDAzMjIwMTM4LTIwMTcx
MDA0MTAwMDQ5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+
MDQtT2N0LTIwMTcgMTM6MjU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzEwMDMyMjAxMzgtMjAxNzEwMDQyMjAzMDkucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDAz
MjIwMTM4LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjEwTTwv
dGQ+CisJCQkJPHRkPjA1LU9jdC0yMDE3IDAwOjE2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDAzMjIwMTM4LTIwMTcxMDA1MTAwMjEx
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MTAwMzIyMDEzOC0yMDE3MTAwNTEwMDIxMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD4xME08L3RkPgorCQkJCTx0ZD4wNS1PY3QtMjAxNyAxMjoxNTwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwMzIyMDEzOC0y
MDE3MTAwNTIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDMyMjAxMzgtMjAxNzEwMDUyMjAyMDQucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTFNPC90ZD4KKwkJCQk8dGQ+MDYtT2N0LTIwMTcgMDA6MjI8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzEwMDQxMDAwNDktMjAxNzEwMDQyMjAzMDkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA0MTAwMDQ5LTIwMTcxMDA0MjIw
MzA5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MDUtT2N0
LTIwMTcgMDA6MTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzEwMDQxMDAwNDktMjAxNzEwMDUxMDAyMTEucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA0MTAwMDQ5
LTIwMTcxMDA1MTAwMjExLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJ
CQk8dGQ+MDUtT2N0LTIwMTcgMTI6MTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDQxMDAwNDktMjAxNzEwMDUyMjAyMDQucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIw
MTcxMDA0MTAwMDQ5LTIwMTcxMDA1MjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjhNPC90ZD4KKwkJCQk8dGQ+MDYtT2N0LTIwMTcgMDA6MjI8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDQxMDAwNDktMjAxNzEwMDYx
MDAzMjcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1p
Njg2LWVuLVVTLTIwMTcxMDA0MTAwMDQ5LTIwMTcxMDA2MTAwMzI3LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MDYtT2N0LTIwMTcgMTI6MTg8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDQyMjAz
MDktMjAxNzEwMDUxMDAyMTEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA0MjIwMzA5LTIwMTcxMDA1MTAwMjExLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDUtT2N0LTIwMTcgMTI6
MTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzEwMDQyMjAzMDktMjAxNzEwMDUyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA0MjIwMzA5LTIwMTcxMDA1
MjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDYt
T2N0LTIwMTcgMDA6MjI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzEwMDQyMjAzMDktMjAxNzEwMDYxMDAzMjcucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA0MjIw
MzA5LTIwMTcxMDA2MTAwMzI3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4K
KwkJCQk8dGQ+MDYtT2N0LTIwMTcgMTI6MTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDQyMjAzMDktMjAxNzEwMDYyMjAzMDYucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVT
LTIwMTcxMDA0MjIwMzA5LTIwMTcxMDA2MjIwMzA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDctT2N0LTIwMTcgMDA6MTM8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDUxMDAyMTEtMjAxNzEw
MDUyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC1pNjg2LWVuLVVTLTIwMTcxMDA1MTAwMjExLTIwMTcxMDA1MjIwMjA0LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDYtT2N0LTIwMTcgMDA6MjI8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDUx
MDAyMTEtMjAxNzEwMDYxMDAzMjcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA1MTAwMjExLTIwMTcxMDA2MTAwMzI3LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDYtT2N0LTIwMTcg
MTI6MTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzEwMDUxMDAyMTEtMjAxNzEwMDYyMjAzMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA1MTAwMjExLTIwMTcx
MDA2MjIwMzA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+
MDctT2N0LTIwMTcgMDA6MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzEwMDUxMDAyMTEtMjAxNzEwMDcxMDAxNDIucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA1
MTAwMjExLTIwMTcxMDA3MTAwMTQyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90
ZD4KKwkJCQk8dGQ+MDctT2N0LTIwMTcgMTI6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDUyMjAyMDQtMjAxNzEwMDYxMDAzMjcu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVu
LVVTLTIwMTcxMDA1MjIwMjA0LTIwMTcxMDA2MTAwMzI3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDYtT2N0LTIwMTcgMTI6MTg8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDUyMjAyMDQtMjAx
NzEwMDYyMjAzMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC1pNjg2LWVuLVVTLTIwMTcxMDA1MjIwMjA0LTIwMTcxMDA2MjIwMzA2LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDctT2N0LTIwMTcgMDA6MTM8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEw
MDUyMjAyMDQtMjAxNzEwMDcxMDAxNDIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA1MjIwMjA0LTIwMTcxMDA3MTAwMTQy
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MDctT2N0LTIw
MTcgMTI6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzEwMDUyMjAyMDQtMjAxNzEwMDcyMjAxNTYucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA1MjIwMjA0LTIw
MTcxMDA3MjIwMTU2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8
dGQ+MDgtT2N0LTIwMTcgMDA6MTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDYxMDAzMjctMjAxNzEwMDYyMjAzMDYucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcx
MDA2MTAwMzI3LTIwMTcxMDA2MjIwMzA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdN
PC90ZD4KKwkJCQk8dGQ+MDctT2N0LTIwMTcgMDA6MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDYxMDAzMjctMjAxNzEwMDcxMDAx
NDIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2
LWVuLVVTLTIwMTcxMDA2MTAwMzI3LTIwMTcxMDA3MTAwMTQyLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDctT2N0LTIwMTcgMTI6MTQ8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDYxMDAzMjct
MjAxNzEwMDcyMjAxNTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA2MTAwMzI3LTIwMTcxMDA3MjIwMTU2LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDgtT2N0LTIwMTcgMDA6MTA8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzEwMDYxMDAzMjctMjAxNzEwMDgxMzE3MDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA2MTAwMzI3LTIwMTcxMDA4MTMx
NzAwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MDgtT2N0
LTIwMTcgMTU6MzY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzEwMDYyMjAzMDYtMjAxNzEwMDcxMDAxNDIucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA2MjIwMzA2
LTIwMTcxMDA3MTAwMTQyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJ
CQk8dGQ+MDctT2N0LTIwMTcgMTI6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDYyMjAzMDYtMjAxNzEwMDcyMjAxNTYucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIw
MTcxMDA2MjIwMzA2LTIwMTcxMDA3MjIwMTU2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjhNPC90ZD4KKwkJCQk8dGQ+MDgtT2N0LTIwMTcgMDA6MTA8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDYyMjAzMDYtMjAxNzEwMDgx
MzE3MDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1p
Njg2LWVuLVVTLTIwMTcxMDA2MjIwMzA2LTIwMTcxMDA4MTMxNzAwLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDgtT2N0LTIwMTcgMTU6MzY8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDYyMjAz
MDYtMjAxNzEwMDgyMjAxMzAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA2MjIwMzA2LTIwMTcxMDA4MjIwMTMwLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MDktT2N0LTIwMTcgMDE6
MDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzEwMDcxMDAxNDItMjAxNzEwMDcyMjAxNTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA3MTAwMTQyLTIwMTcxMDA3
MjIwMTU2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDgt
T2N0LTIwMTcgMDA6MTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzEwMDcxMDAxNDItMjAxNzEwMDgxMzE3MDAucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA3MTAw
MTQyLTIwMTcxMDA4MTMxNzAwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4K
KwkJCQk8dGQ+MDgtT2N0LTIwMTcgMTU6MzY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDcxMDAxNDItMjAxNzEwMDgyMjAxMzAucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVT
LTIwMTcxMDA3MTAwMTQyLTIwMTcxMDA4MjIwMTMwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjlNPC90ZD4KKwkJCQk8dGQ+MDktT2N0LTIwMTcgMDE6MDM8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDcxMDAxNDItMjAxNzEw
MDkxMDAxMzQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC1pNjg2LWVuLVVTLTIwMTcxMDA3MTAwMTQyLTIwMTcxMDA5MTAwMTM0LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDktT2N0LTIwMTcgMTI6MjI8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDcy
MjAxNTYtMjAxNzEwMDgxMzE3MDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA3MjIwMTU2LTIwMTcxMDA4MTMxNzAwLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDgtT2N0LTIwMTcg
MTU6MzY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzEwMDcyMjAxNTYtMjAxNzEwMDgyMjAxMzAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA3MjIwMTU2LTIwMTcx
MDA4MjIwMTMwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+
MDktT2N0LTIwMTcgMDE6MDQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzEwMDcyMjAxNTYtMjAxNzEwMDkxMDAxMzQucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA3
MjIwMTU2LTIwMTcxMDA5MTAwMTM0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90
ZD4KKwkJCQk8dGQ+MDktT2N0LTIwMTcgMTI6MjI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDcyMjAxNTYtMjAxNzEwMDkyMjAxMDQu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVu
LVVTLTIwMTcxMDA3MjIwMTU2LTIwMTcxMDA5MjIwMTA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MTAtT2N0LTIwMTcgMDA6MzI8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDgxMzE3MDAtMjAx
NzEwMDgyMjAxMzAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC1pNjg2LWVuLVVTLTIwMTcxMDA4MTMxNzAwLTIwMTcxMDA4MjIwMTMwLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDktT2N0LTIwMTcgMDE6MDM8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEw
MDgxMzE3MDAtMjAxNzEwMDkxMDAxMzQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA4MTMxNzAwLTIwMTcxMDA5MTAwMTM0
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDktT2N0LTIw
MTcgMTI6MjI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzEwMDgxMzE3MDAtMjAxNzEwMDkyMjAxMDQucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA4MTMxNzAwLTIw
MTcxMDA5MjIwMTA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8
dGQ+MTAtT2N0LTIwMTcgMDA6MzI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDgxMzE3MDAtMjAxNzEwMTAxMDAyMDAucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcx
MDA4MTMxNzAwLTIwMTcxMDEwMTAwMjAwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlN
PC90ZD4KKwkJCQk8dGQ+MTAtT2N0LTIwMTcgMTI6MzY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDgyMjAxMzAtMjAxNzEwMDkxMDAx
MzQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2
LWVuLVVTLTIwMTcxMDA4MjIwMTMwLTIwMTcxMDA5MTAwMTM0LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MDktT2N0LTIwMTcgMTI6MjI8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDgyMjAxMzAt
MjAxNzEwMDkyMjAxMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA4MjIwMTMwLTIwMTcxMDA5MjIwMTA0LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MTAtT2N0LTIwMTcgMDA6MzI8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzEwMDgyMjAxMzAtMjAxNzEwMTAxMDAyMDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDA4MjIwMTMwLTIwMTcxMDEwMTAw
MjAwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjEwTTwvdGQ+CisJCQkJPHRkPjEwLU9j
dC0yMDE3IDEyOjM2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1p
Njg2LWVuLVVTLTIwMTcxMDA4MjIwMTMwLTIwMTcxMDEwMjIwMTAyLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwODIyMDEz
MC0yMDE3MTAxMDIyMDEwMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4xME08L3RkPgor
CQkJCTx0ZD4xMS1PY3QtMjAxNyAwMDozNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwOTEwMDEzNC0yMDE3MTAwOTIyMDEwNC5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzEwMDkxMDAxMzQtMjAxNzEwMDkyMjAxMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+OE08L3RkPgorCQkJCTx0ZD4xMC1PY3QtMjAxNyAwMDozMjwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwOTEwMDEzNC0yMDE3MTAx
MDEwMDIwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzEwMDkxMDAxMzQtMjAxNzEwMTAxMDAyMDAucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4xMC1PY3QtMjAxNyAxMjozNjwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwOTEw
MDEzNC0yMDE3MTAxMDIyMDEwMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDkxMDAxMzQtMjAxNzEwMTAyMjAxMDIucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4xMS1PY3QtMjAxNyAw
MDozNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MTAwOTEwMDEzNC0yMDE3MTAxMTEwMDEzMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDkxMDAxMzQtMjAxNzEw
MTExMDAxMzMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4x
MS1PY3QtMjAxNyAxNzowNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MTAwOTIyMDEwNC0yMDE3MTAxMDEwMDIwMC5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDky
MjAxMDQtMjAxNzEwMTAxMDAyMDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3Rk
PgorCQkJCTx0ZD4xMC1PY3QtMjAxNyAxMjozNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwOTIyMDEwNC0yMDE3MTAxMDIyMDEwMi5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzEwMDkyMjAxMDQtMjAxNzEwMTAyMjAxMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMS1PY3QtMjAxNyAwMDozNTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAwOTIyMDEwNC0yMDE3
MTAxMTEwMDEzMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzEwMDkyMjAxMDQtMjAxNzEwMTExMDAxMzMucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMS1PY3QtMjAxNyAxNzowNjwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAw
OTIyMDEwNC0yMDE3MTAxMTIyMDExMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMDkyMjAxMDQtMjAxNzEwMTEyMjAxMTMu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAx
NyAwMDo0MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MTAxMDEwMDIwMC0yMDE3MTAxMDIyMDEwMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTAxMDAyMDAtMjAx
NzEwMTAyMjAxMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0
ZD4xMS1PY3QtMjAxNyAwMDozNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMDEwMDIwMC0yMDE3MTAxMTEwMDEzMy5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEw
MTAxMDAyMDAtMjAxNzEwMTExMDAxMzMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08
L3RkPgorCQkJCTx0ZD4xMS1PY3QtMjAxNyAxNzowNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMDEwMDIwMC0yMDE3MTAxMTIyMDEx
My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzEwMTAxMDAyMDAtMjAxNzEwMTEyMjAxMTMucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAwMDo0MjwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMDEwMDIwMC0y
MDE3MTAxMjEwMDIyOC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTAxMDAyMDAtMjAxNzEwMTIxMDAyMjgucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAxMzowODwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MTAxMDEwMDIwMC0yMDE3MTAxMjEwNTgzMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTAxMDAyMDAtMjAxNzEwMTIxMDU4
MzMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMi1PY3Qt
MjAxNyAxNToxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MTAxMDIyMDEwMi0yMDE3MTAxMTEwMDEzMy5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTAyMjAxMDIt
MjAxNzEwMTExMDAxMzMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJ
CTx0ZD4xMS1PY3QtMjAxNyAxNzowNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMDIyMDEwMi0yMDE3MTAxMTIyMDExMy5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzEwMTAyMjAxMDItMjAxNzEwMTEyMjAxMTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
OE08L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAwMDo0MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMDIyMDEwMi0yMDE3MTAxMjEw
MDIyOC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzEwMTAyMjAxMDItMjAxNzEwMTIxMDAyMjgucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAxMzowODwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMDIyMDEw
Mi0yMDE3MTAxMjEwNTgzMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTAyMjAxMDItMjAxNzEwMTIxMDU4MzMucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAxNTox
MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MTAxMTEwMDEzMy0yMDE3MTAxMTIyMDExMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTExMDAxMzMtMjAxNzEwMTEy
MjAxMTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xMi1P
Y3QtMjAxNyAwMDo0MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MTAxMTEwMDEzMy0yMDE3MTAxMjEwMDIyOC5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTExMDAx
MzMtMjAxNzEwMTIxMDAyMjgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgor
CQkJCTx0ZD4xMi1PY3QtMjAxNyAxMzowODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMTEwMDEzMy0yMDE3MTAxMjEwNTgzMy5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzEwMTExMDAxMzMtMjAxNzEwMTIxMDU4MzMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+N008L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAxNToxMzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMTEwMDEzMy0yMDE3MTAx
MjIyMDExMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzEwMTExMDAxMzMtMjAxNzEwMTIyMjAxMTEucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4xMy1PY3QtMjAxNyAwMDo0NDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMTIy
MDExMy0yMDE3MTAxMjEwMDIyOC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTEyMjAxMTMtMjAxNzEwMTIxMDAyMjgucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAx
MzowODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MTAxMTIyMDExMy0yMDE3MTAxMjEwNTgzMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTEyMjAxMTMtMjAxNzEw
MTIxMDU4MzMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4x
Mi1PY3QtMjAxNyAxNToxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MTAxMTIyMDExMy0yMDE3MTAxMjIyMDExMS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTEy
MjAxMTMtMjAxNzEwMTIyMjAxMTEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3Rk
PgorCQkJCTx0ZD4xMy1PY3QtMjAxNyAwMDo0NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMTIyMDExMy0yMDE3MTAxMzEwMDExMi5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzEwMTEyMjAxMTMtMjAxNzEwMTMxMDAxMTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4xMy1PY3QtMjAxNyAxMjoyMTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMjEwMDIyOC0yMDE3
MTAxMjIyMDExMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzEwMTIxMDAyMjgtMjAxNzEwMTIyMjAxMTEucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMy1PY3QtMjAxNyAwMDo0NTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAx
MjEwMDIyOC0yMDE3MTAxMzEwMDExMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTIxMDAyMjgtMjAxNzEwMTMxMDAxMTIu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4xMy1PY3QtMjAx
NyAxMjoyMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MTAxMjEwMDIyOC0yMDE3MTAxMzIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTIxMDAyMjgtMjAx
NzEwMTMyMjAyMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0
ZD4xNC1PY3QtMjAxNyAwMToxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMjEwNTgzMy0yMDE3MTAxMjIyMDExMS5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEw
MTIxMDU4MzMtMjAxNzEwMTIyMjAxMTEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08
L3RkPgorCQkJCTx0ZD4xMy1PY3QtMjAxNyAwMDo0NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMjEwNTgzMy0yMDE3MTAxMzEwMDEx
Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzEwMTIxMDU4MzMtMjAxNzEwMTMxMDAxMTIucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4xMy1PY3QtMjAxNyAxMjoyMTwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMjEwNTgzMy0y
MDE3MTAxMzIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTIxMDU4MzMtMjAxNzEwMTMyMjAyMDQucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4xNC1PY3QtMjAxNyAwMToxNTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MTAxMjEwNTgzMy0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTIxMDU4MzMtMjAxNzEwMTQxMDAy
MTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTFNPC90ZD4KKwkJCQk8dGQ+MTQtT2N0
LTIwMTcgMTI6NDU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzEwMTIyMjAxMTEtMjAxNzEwMTMxMDAxMTIucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDEyMjIwMTEx
LTIwMTcxMDEzMTAwMTEyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJ
CQk8dGQ+MTMtT2N0LTIwMTcgMTI6MjE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTIyMjAxMTEtMjAxNzEwMTMyMjAyMDQucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIw
MTcxMDEyMjIwMTExLTIwMTcxMDEzMjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjlNPC90ZD4KKwkJCQk8dGQ+MTQtT2N0LTIwMTcgMDE6MTY8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTIyMjAxMTEtMjAxNzEwMTQx
MDAyMTkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1p
Njg2LWVuLVVTLTIwMTcxMDEyMjIwMTExLTIwMTcxMDE0MTAwMjE5LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjEwTTwvdGQ+CisJCQkJPHRkPjE0LU9jdC0yMDE3IDEyOjQ1PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDEyMjIw
MTExLTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMjIyMDExMS0yMDE3MTAxNDIyMDU0Mi5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4xMU08L3RkPgorCQkJCTx0ZD4xNS1PY3QtMjAxNyAw
MTozMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MTAxMzEwMDExMi0yMDE3MTAxMzIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTMxMDAxMTItMjAxNzEw
MTMyMjAyMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4x
NC1PY3QtMjAxNyAwMToxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MTAxMzEwMDExMi0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTMx
MDAxMTItMjAxNzEwMTQxMDAyMTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3Rk
PgorCQkJCTx0ZD4xNC1PY3QtMjAxNyAxMjo0NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMzEwMDExMi0yMDE3MTAxNDIyMDU0Mi5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzEwMTMxMDAxMTItMjAxNzEwMTQyMjA1NDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xNS1PY3QtMjAxNyAwMTozMzwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMzEwMDExMi0yMDE3
MTAxNTEwMDEyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzEwMTMxMDAxMTItMjAxNzEwMTUxMDAxMjcucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xNS1PY3QtMjAxNyAxNDozMjwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAx
MzIyMDIwNC0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTMyMjAyMDQtMjAxNzEwMTQxMDAyMTku
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xNC1PY3QtMjAx
NyAxMjo0NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MTAxMzIyMDIwNC0yMDE3MTAxNDIyMDU0Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTMyMjAyMDQtMjAx
NzEwMTQyMjA1NDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0
ZD4xNS1PY3QtMjAxNyAwMTozMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMzIyMDIwNC0yMDE3MTAxNTEwMDEyNy5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEw
MTMyMjAyMDQtMjAxNzEwMTUxMDAxMjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08
L3RkPgorCQkJCTx0ZD4xNS1PY3QtMjAxNyAxNDozMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxMzIyMDIwNC0yMDE3MTAxNTIyMDEw
Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzEwMTMyMjAyMDQtMjAxNzEwMTUyMjAxMDYucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4xNi1PY3QtMjAxNyAwMTo0ODwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNDEwMDIxOS0y
MDE3MTAxNDIyMDU0Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTQxMDAyMTktMjAxNzEwMTQyMjA1NDIucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xNS1PY3QtMjAxNyAwMTozMzwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MTAxNDEwMDIxOS0yMDE3MTAxNTEwMDEyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTQxMDAyMTktMjAxNzEwMTUxMDAx
MjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xNS1PY3Qt
MjAxNyAxNDozMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MTAxNDEwMDIxOS0yMDE3MTAxNTIyMDEwNi5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTQxMDAyMTkt
MjAxNzEwMTUyMjAxMDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJ
CTx0ZD4xNi1PY3QtMjAxNyAwMTo0ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNDEwMDIxOS0yMDE3MTAxNjEwMDExMy5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzEwMTQxMDAyMTktMjAxNzEwMTYxMDAxMTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
N008L3RkPgorCQkJCTx0ZD4xNi1PY3QtMjAxNyAxMjo0NzwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNDIyMDU0Mi0yMDE3MTAxNTEw
MDEyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzEwMTQyMjA1NDItMjAxNzEwMTUxMDAxMjcucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4xNS1PY3QtMjAxNyAxNDozMjwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNDIyMDU0
Mi0yMDE3MTAxNTIyMDEwNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTQyMjA1NDItMjAxNzEwMTUyMjAxMDYucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xNi1PY3QtMjAxNyAwMTo0
ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MTAxNDIyMDU0Mi0yMDE3MTAxNjEwMDExMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTQyMjA1NDItMjAxNzEwMTYx
MDAxMTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xNi1P
Y3QtMjAxNyAxMjo0NzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MTAxNDIyMDU0Mi0yMDE3MTAxNjIyMDQyNy5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTQyMjA1
NDItMjAxNzEwMTYyMjA0MjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgor
CQkJCTx0ZD4xNy1PY3QtMjAxNyAwMTozNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNTEwMDEyNy0yMDE3MTAxNTIyMDEwNi5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzEwMTUxMDAxMjctMjAxNzEwMTUyMjAxMDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+Nk08L3RkPgorCQkJCTx0ZD4xNi1PY3QtMjAxNyAwMTo0ODwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNTEwMDEyNy0yMDE3MTAx
NjEwMDExMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzEwMTUxMDAxMjctMjAxNzEwMTYxMDAxMTMucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xNi1PY3QtMjAxNyAxMjo0NzwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNTEw
MDEyNy0yMDE3MTAxNjIyMDQyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTUxMDAxMjctMjAxNzEwMTYyMjA0MjcucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xNy1PY3QtMjAxNyAw
MTozNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MTAxNTEwMDEyNy0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTUxMDAxMjctMjAxNzEw
MTcxMDAxMjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4x
Ny1PY3QtMjAxNyAxMjoyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MTAxNTIyMDEwNi0yMDE3MTAxNjEwMDExMy5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTUy
MjAxMDYtMjAxNzEwMTYxMDAxMTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3Rk
PgorCQkJCTx0ZD4xNi1PY3QtMjAxNyAxMjo0NzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNTIyMDEwNi0yMDE3MTAxNjIyMDQyNy5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzEwMTUyMjAxMDYtMjAxNzEwMTYyMjA0MjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xNy1PY3QtMjAxNyAwMTozNTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNTIyMDEwNi0yMDE3
MTAxNzEwMDEyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzEwMTUyMjAxMDYtMjAxNzEwMTcxMDAxMjcucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xNy1PY3QtMjAxNyAxMjoyOTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAx
NTIyMDEwNi0yMDE3MTAxNzE0MTIyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTUyMjAxMDYtMjAxNzEwMTcxNDEyMjku
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xNy1PY3QtMjAx
NyAxNzowNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MTAxNjEwMDExMy0yMDE3MTAxNjIyMDQyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTYxMDAxMTMtMjAx
NzEwMTYyMjA0MjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0
ZD4xNy1PY3QtMjAxNyAwMTozNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNjEwMDExMy0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEw
MTYxMDAxMTMtMjAxNzEwMTcxMDAxMjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08
L3RkPgorCQkJCTx0ZD4xNy1PY3QtMjAxNyAxMjoyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNjEwMDExMy0yMDE3MTAxNzE0MTIy
OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzEwMTYxMDAxMTMtMjAxNzEwMTcxNDEyMjkucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xNy1PY3QtMjAxNyAxNzowNzwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNjEwMDExMy0y
MDE3MTAxNzIyMDQxNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTYxMDAxMTMtMjAxNzEwMTcyMjA0MTUucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xOC1PY3QtMjAxNyAwMTowNDwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MTAxNjIyMDQyNy0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTYyMjA0MjctMjAxNzEwMTcxMDAx
MjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4xNy1PY3Qt
MjAxNyAxMjoyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MTAxNjIyMDQyNy0yMDE3MTAxNzE0MTIyOS5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTYyMjA0Mjct
MjAxNzEwMTcxNDEyMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJ
CTx0ZD4xNy1PY3QtMjAxNyAxNzowNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNjIyMDQyNy0yMDE3MTAxNzIyMDQxNS5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzEwMTYyMjA0MjctMjAxNzEwMTcyMjA0MTUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
OU08L3RkPgorCQkJCTx0ZD4xOC1PY3QtMjAxNyAwMTowNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNjIyMDQyNy0yMDE3MTAxODEw
MDE0MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzEwMTYyMjA0MjctMjAxNzEwMTgxMDAxNDAucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4xOC1PY3QtMjAxNyAxMjo0ODwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNzEwMDEy
Ny0yMDE3MTAxNzE0MTIyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTcxMDAxMjctMjAxNzEwMTcxNDEyMjkucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xNy1PY3QtMjAxNyAxNzow
NzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MTAxNzEwMDEyNy0yMDE3MTAxNzIyMDQxNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTcxMDAxMjctMjAxNzEwMTcy
MjA0MTUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xOC1P
Y3QtMjAxNyAwMTowNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MTAxNzEwMDEyNy0yMDE3MTAxODEwMDE0MC5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTcxMDAx
MjctMjAxNzEwMTgxMDAxNDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgor
CQkJCTx0ZD4xOC1PY3QtMjAxNyAxMjo0ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNzEwMDEyNy0yMDE3MTAxODIyMDA0OS5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzEwMTcxMDAxMjctMjAxNzEwMTgyMjAwNDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+N008L3RkPgorCQkJCTx0ZD4xOS1PY3QtMjAxNyAwMTowMTwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNzE0MTIyOS0yMDE3MTAx
NzIyMDQxNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzEwMTcxNDEyMjktMjAxNzEwMTcyMjA0MTUucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xOC1PY3QtMjAxNyAwMTowNDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNzE0
MTIyOS0yMDE3MTAxODEwMDE0MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTcxNDEyMjktMjAxNzEwMTgxMDAxNDAucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xOC1PY3QtMjAxNyAx
Mjo0ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MTAxNzE0MTIyOS0yMDE3MTAxODIyMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTcxNDEyMjktMjAxNzEw
MTgyMjAwNDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4x
OS1PY3QtMjAxNyAwMTowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MTAxNzE0MTIyOS0yMDE3MTAxOTEwMDEwNy5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTcx
NDEyMjktMjAxNzEwMTkxMDAxMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3Rk
PgorCQkJCTx0ZD4xOS1PY3QtMjAxNyAxMjo0MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNzIyMDQxNS0yMDE3MTAxODEwMDE0MC5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzEwMTcyMjA0MTUtMjAxNzEwMTgxMDAxNDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xOC1PY3QtMjAxNyAxMjo0ODwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxNzIyMDQxNS0yMDE3
MTAxODIyMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzEwMTcyMjA0MTUtMjAxNzEwMTgyMjAwNDkucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xOS1PY3QtMjAxNyAwMTowMTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAx
NzIyMDQxNS0yMDE3MTAxOTEwMDEwNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTcyMjA0MTUtMjAxNzEwMTkxMDAxMDcu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xOS1PY3QtMjAx
NyAxMjo0MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MTAxNzIyMDQxNS0yMDE3MTAxOTIyMjE0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTcyMjA0MTUtMjAx
NzEwMTkyMjIxNDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0
ZD4yMC1PY3QtMjAxNyAwMTozMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxODEwMDE0MC0yMDE3MTAxODIyMDA0OS5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEw
MTgxMDAxNDAtMjAxNzEwMTgyMjAwNDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08
L3RkPgorCQkJCTx0ZD4xOS1PY3QtMjAxNyAwMTowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxODEwMDE0MC0yMDE3MTAxOTEwMDEw
Ny5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzEwMTgxMDAxNDAtMjAxNzEwMTkxMDAxMDcucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xOS1PY3QtMjAxNyAxMjo0MzwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxODEwMDE0MC0y
MDE3MTAxOTIyMjE0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTgxMDAxNDAtMjAxNzEwMTkyMjIxNDEucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4yMC1PY3QtMjAxNyAwMTozMzwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MTAxODEwMDE0MC0yMDE3MTAyMDEwMDQyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTgxMDAxNDAtMjAxNzEwMjAxMDA0
MjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yMC1PY3Qt
MjAxNyAxMjozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MTAxODIyMDA0OS0yMDE3MTAxOTEwMDEwNy5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTgyMjAwNDkt
MjAxNzEwMTkxMDAxMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJ
CTx0ZD4xOS1PY3QtMjAxNyAxMjo0MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxODIyMDA0OS0yMDE3MTAxOTIyMjE0MS5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzEwMTgyMjAwNDktMjAxNzEwMTkyMjIxNDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
OU08L3RkPgorCQkJCTx0ZD4yMC1PY3QtMjAxNyAwMTozNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxODIyMDA0OS0yMDE3MTAyMDEw
MDQyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzEwMTgyMjAwNDktMjAxNzEwMjAxMDA0MjYucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yMC1PY3QtMjAxNyAxMjozMDwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxODIyMDA0
OS0yMDE3MTAyMDIyMTEyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTgyMjAwNDktMjAxNzEwMjAyMjExMjkucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4yMS1PY3QtMjAxNyAwMDo1
ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MTAxOTEwMDEwNy0yMDE3MTAxOTIyMjE0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTkxMDAxMDctMjAxNzEwMTky
MjIxNDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yMC1P
Y3QtMjAxNyAwMTozMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MTAxOTEwMDEwNy0yMDE3MTAyMDEwMDQyNi5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTkxMDAx
MDctMjAxNzEwMjAxMDA0MjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgor
CQkJCTx0ZD4yMC1PY3QtMjAxNyAxMjozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxOTEwMDEwNy0yMDE3MTAyMDIyMTEyOS5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzEwMTkxMDAxMDctMjAxNzEwMjAyMjExMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+OE08L3RkPgorCQkJCTx0ZD4yMS1PY3QtMjAxNyAwMDo1ODwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxOTEwMDEwNy0yMDE3MTAy
MTEwMDAyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzEwMTkxMDAxMDctMjAxNzEwMjExMDAwMjkucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMS1PY3QtMjAxNyAxMjozMDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxOTIy
MjE0MS0yMDE3MTAyMDEwMDQyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTkyMjIxNDEtMjAxNzEwMjAxMDA0MjYucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yMC1PY3QtMjAxNyAx
MjozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MTAxOTIyMjE0MS0yMDE3MTAyMDIyMTEyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTkyMjIxNDEtMjAxNzEw
MjAyMjExMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4y
MS1PY3QtMjAxNyAwMDo1ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MTAxOTIyMjE0MS0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMTky
MjIxNDEtMjAxNzEwMjExMDAwMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3Rk
PgorCQkJCTx0ZD4yMS1PY3QtMjAxNyAxMjozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAxOTIyMjE0MS0yMDE3MTAyMTIyMDEyMS5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzEwMTkyMjIxNDEtMjAxNzEwMjEyMjAxMjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMi1PY3QtMjAxNyAwMjowNjwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMDEwMDQyNi0yMDE3
MTAyMDIyMTEyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzEwMjAxMDA0MjYtMjAxNzEwMjAyMjExMjkucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yMS1PY3QtMjAxNyAwMDo1ODwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAy
MDEwMDQyNi0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjAxMDA0MjYtMjAxNzEwMjExMDAwMjku
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMS1PY3QtMjAx
NyAxMjozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MTAyMDEwMDQyNi0yMDE3MTAyMTIyMDEyMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjAxMDA0MjYtMjAx
NzEwMjEyMjAxMjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0
ZD4yMi1PY3QtMjAxNyAwMjowNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMDEwMDQyNi0yMDE3MTAyMjEwMDA1OC5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEw
MjAxMDA0MjYtMjAxNzEwMjIxMDAwNTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008
L3RkPgorCQkJCTx0ZD4yMi1PY3QtMjAxNyAxMjozNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMDIyMTEyOS0yMDE3MTAyMTEwMDAy
OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzEwMjAyMjExMjktMjAxNzEwMjExMDAwMjkucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yMS1PY3QtMjAxNyAxMjozMDwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMDIyMTEyOS0y
MDE3MTAyMTIyMDEyMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjAyMjExMjktMjAxNzEwMjEyMjAxMjEucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yMi1PY3QtMjAxNyAwMjowNjwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MTAyMDIyMTEyOS0yMDE3MTAyMjEwMDA1OC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjAyMjExMjktMjAxNzEwMjIxMDAw
NTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yMi1PY3Qt
MjAxNyAxMjozNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MTAyMDIyMTEyOS0yMDE3MTAyMjIyMDEwMy5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjAyMjExMjkt
MjAxNzEwMjIyMjAxMDMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJ
CTx0ZD4yMy1PY3QtMjAxNyAwMDozNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMTEwMDAyOS0yMDE3MTAyMTIyMDEyMS5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzEwMjExMDAwMjktMjAxNzEwMjEyMjAxMjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
N008L3RkPgorCQkJCTx0ZD4yMi1PY3QtMjAxNyAwMjowNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMTEwMDAyOS0yMDE3MTAyMjEw
MDA1OC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzEwMjExMDAwMjktMjAxNzEwMjIxMDAwNTgucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMi1PY3QtMjAxNyAxMjozNjwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMTEwMDAy
OS0yMDE3MTAyMjIyMDEwMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjExMDAwMjktMjAxNzEwMjIyMjAxMDMucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMy1PY3QtMjAxNyAwMDoz
NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MTAyMTEwMDAyOS0yMDE3MTAyMzEwMDI1Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjExMDAwMjktMjAxNzEwMjMx
MDAyNTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yMy1P
Y3QtMjAxNyAxMjozOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MTAyMTIyMDEyMS0yMDE3MTAyMjEwMDA1OC5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjEyMjAx
MjEtMjAxNzEwMjIxMDAwNTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgor
CQkJCTx0ZD4yMi1PY3QtMjAxNyAxMjozNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMTIyMDEyMS0yMDE3MTAyMjIyMDEwMy5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzEwMjEyMjAxMjEtMjAxNzEwMjIyMjAxMDMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMy1PY3QtMjAxNyAwMDozNDwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMTIyMDEyMS0yMDE3MTAy
MzEwMDI1Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzEwMjEyMjAxMjEtMjAxNzEwMjMxMDAyNTIucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMy1PY3QtMjAxNyAxMjozOTwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMTIy
MDEyMS0yMDE3MTAyMzIyMDIyMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjEyMjAxMjEtMjAxNzEwMjMyMjAyMjIucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTNNPC90ZD4KKwkJCQk8dGQ+MjQtT2N0LTIwMTcg
MDE6NDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzEwMjIxMDAwNTgtMjAxNzEwMjIyMjAxMDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDIyMTAwMDU4LTIwMTcx
MDIyMjIwMTAzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+
MjMtT2N0LTIwMTcgMDA6MzQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzEwMjIxMDAwNTgtMjAxNzEwMjMxMDAyNTIucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDIy
MTAwMDU4LTIwMTcxMDIzMTAwMjUyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90
ZD4KKwkJCQk8dGQ+MjMtT2N0LTIwMTcgMTI6Mzk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjIxMDAwNTgtMjAxNzEwMjMyMjAyMjIu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVu
LVVTLTIwMTcxMDIyMTAwMDU4LTIwMTcxMDIzMjIwMjIyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjEzTTwvdGQ+CisJCQkJPHRkPjI0LU9jdC0yMDE3IDAxOjQwPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDIyMTAwMDU4LTIw
MTcxMDI0MTAwMTM1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMjEwMDA1OC0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD4xM008L3RkPgorCQkJCTx0ZD4yNC1PY3QtMjAxNyAxMjozMzwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MTAyMjIyMDEwMy0yMDE3MTAyMzEwMDI1Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjIyMjAxMDMtMjAxNzEwMjMxMDAy
NTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMy1PY3Qt
MjAxNyAxMjozOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MTAyMjIyMDEwMy0yMDE3MTAyMzIyMDIyMi5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjIyMjAxMDMt
MjAxNzEwMjMyMjAyMjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTNNPC90ZD4KKwkJ
CQk8dGQ+MjQtT2N0LTIwMTcgMDE6NDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjIyMjAxMDMtMjAxNzEwMjQxMDAxMzUucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIw
MTcxMDIyMjIwMTAzLTIwMTcxMDI0MTAwMTM1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjEzTTwvdGQ+CisJCQkJPHRkPjI0LU9jdC0yMDE3IDEyOjMzPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDIyMjIwMTAzLTIwMTcxMDI0
MjIwMzI1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MTAyMjIyMDEwMy0yMDE3MTAyNDIyMDMyNS5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD4xM008L3RkPgorCQkJCTx0ZD4yNS1PY3QtMjAxNyAwMDoxNjwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMzEw
MDI1Mi0yMDE3MTAyMzIyMDIyMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjMxMDAyNTItMjAxNzEwMjMyMjAyMjIucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTNNPC90ZD4KKwkJCQk8dGQ+MjQtT2N0LTIwMTcg
MDE6NDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzEwMjMxMDAyNTItMjAxNzEwMjQxMDAxMzUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDIzMTAwMjUyLTIwMTcx
MDI0MTAwMTM1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjEzTTwvdGQ+CisJCQkJPHRk
PjI0LU9jdC0yMDE3IDEyOjMzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC1pNjg2LWVuLVVTLTIwMTcxMDIzMTAwMjUyLTIwMTcxMDI0MjIwMzI1LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAy
MzEwMDI1Mi0yMDE3MTAyNDIyMDMyNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4xM008
L3RkPgorCQkJCTx0ZD4yNS1PY3QtMjAxNyAwMDoxNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAyMzEwMDI1Mi0yMDE3MTAyNTEwMDQ0
OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzEwMjMxMDAyNTItMjAxNzEwMjUxMDA0NDkucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+MTNNPC90ZD4KKwkJCQk8dGQ+MjUtT2N0LTIwMTcgMTI6MzU8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjMyMjAyMjIt
MjAxNzEwMjQxMDAxMzUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDIzMjIwMjIyLTIwMTcxMDI0MTAwMTM1LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjQtT2N0LTIwMTcgMTI6MzM8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzEwMjMyMjAyMjItMjAxNzEwMjQyMjAzMjUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDIzMjIwMjIyLTIwMTcxMDI0MjIw
MzI1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjUtT2N0
LTIwMTcgMDA6MTY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzEwMjMyMjAyMjItMjAxNzEwMjUxMDA0NDkucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDIzMjIwMjIy
LTIwMTcxMDI1MTAwNDQ5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJ
CQk8dGQ+MjUtT2N0LTIwMTcgMTI6MzQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjMyMjAyMjItMjAxNzEwMjUyMzA0NDAucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIw
MTcxMDIzMjIwMjIyLTIwMTcxMDI1MjMwNDQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjZNPC90ZD4KKwkJCQk8dGQ+MjYtT2N0LTIwMTcgMDI6MzY8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjQxMDAxMzUtMjAxNzEwMjQy
MjAzMjUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1p
Njg2LWVuLVVTLTIwMTcxMDI0MTAwMTM1LTIwMTcxMDI0MjIwMzI1LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjUtT2N0LTIwMTcgMDA6MTY8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjQxMDAx
MzUtMjAxNzEwMjUxMDA0NDkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI0MTAwMTM1LTIwMTcxMDI1MTAwNDQ5LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjUtT2N0LTIwMTcgMTI6
MzU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzEwMjQxMDAxMzUtMjAxNzEwMjUyMzA0NDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI0MTAwMTM1LTIwMTcxMDI1
MjMwNDQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjYt
T2N0LTIwMTcgMDI6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzEwMjQxMDAxMzUtMjAxNzEwMjYxMDAwNDcucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI0MTAw
MTM1LTIwMTcxMDI2MTAwMDQ3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4K
KwkJCQk8dGQ+MjYtT2N0LTIwMTcgMTQ6Mjc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjQyMjAzMjUtMjAxNzEwMjUxMDA0NDkucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVT
LTIwMTcxMDI0MjIwMzI1LTIwMTcxMDI1MTAwNDQ5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjUtT2N0LTIwMTcgMTI6MzQ8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjQyMjAzMjUtMjAxNzEw
MjUyMzA0NDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC1pNjg2LWVuLVVTLTIwMTcxMDI0MjIwMzI1LTIwMTcxMDI1MjMwNDQwLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjYtT2N0LTIwMTcgMDI6MzY8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjQy
MjAzMjUtMjAxNzEwMjYxMDAwNDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI0MjIwMzI1LTIwMTcxMDI2MTAwMDQ3LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjYtT2N0LTIwMTcg
MTQ6Mjc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzEwMjQyMjAzMjUtMjAxNzEwMjYyMjE5NDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI0MjIwMzI1LTIwMTcx
MDI2MjIxOTQ1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+
MjctT2N0LTIwMTcgMDc6NTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzEwMjUxMDA0NDktMjAxNzEwMjUyMzA0NDAucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI1
MTAwNDQ5LTIwMTcxMDI1MjMwNDQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90
ZD4KKwkJCQk8dGQ+MjYtT2N0LTIwMTcgMDI6MzY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjUxMDA0NDktMjAxNzEwMjYxMDAwNDcu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVu
LVVTLTIwMTcxMDI1MTAwNDQ5LTIwMTcxMDI2MTAwMDQ3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjYtT2N0LTIwMTcgMTQ6Mjc8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjUxMDA0NDktMjAx
NzEwMjYyMjE5NDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC1pNjg2LWVuLVVTLTIwMTcxMDI1MTAwNDQ5LTIwMTcxMDI2MjIxOTQ1LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjctT2N0LTIwMTcgMDc6NTU8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEw
MjUxMDA0NDktMjAxNzEwMjcxMDAxMDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI1MTAwNDQ5LTIwMTcxMDI3MTAwMTAz
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjctT2N0LTIw
MTcgMTU6MDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzEwMjUyMzA0NDAtMjAxNzEwMjYxMDAwNDcucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI1MjMwNDQwLTIw
MTcxMDI2MTAwMDQ3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8
dGQ+MjYtT2N0LTIwMTcgMTQ6Mjc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjUyMzA0NDAtMjAxNzEwMjYyMjE5NDUucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcx
MDI1MjMwNDQwLTIwMTcxMDI2MjIxOTQ1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVN
PC90ZD4KKwkJCQk8dGQ+MjctT2N0LTIwMTcgMDc6NTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjUyMzA0NDAtMjAxNzEwMjcxMDAx
MDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2
LWVuLVVTLTIwMTcxMDI1MjMwNDQwLTIwMTcxMDI3MTAwMTAzLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjctT2N0LTIwMTcgMTU6MDA8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjUyMzA0NDAt
MjAxNzEwMjcyMjAwNTkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI1MjMwNDQwLTIwMTcxMDI3MjIwMDU5LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjgtT2N0LTIwMTcgMDI6NTk8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzEwMjYxMDAwNDctMjAxNzEwMjYyMjE5NDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI2MTAwMDQ3LTIwMTcxMDI2MjIx
OTQ1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjctT2N0
LTIwMTcgMDc6NTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzEwMjYxMDAwNDctMjAxNzEwMjcxMDAxMDMucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI2MTAwMDQ3
LTIwMTcxMDI3MTAwMTAzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJ
CQk8dGQ+MjctT2N0LTIwMTcgMTQ6NTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjYxMDAwNDctMjAxNzEwMjcyMjAwNTkucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIw
MTcxMDI2MTAwMDQ3LTIwMTcxMDI3MjIwMDU5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjVNPC90ZD4KKwkJCQk8dGQ+MjgtT2N0LTIwMTcgMDI6NTk8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjYxMDAwNDctMjAxNzEwMjgx
MDA0MjMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1p
Njg2LWVuLVVTLTIwMTcxMDI2MTAwMDQ3LTIwMTcxMDI4MTAwNDIzLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjgtT2N0LTIwMTcgMTM6NTg8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjYyMjE5
NDUtMjAxNzEwMjcxMDAxMDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI2MjIxOTQ1LTIwMTcxMDI3MTAwMTAzLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjctT2N0LTIwMTcgMTQ6
NTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzEwMjYyMjE5NDUtMjAxNzEwMjcyMjAwNTkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI2MjIxOTQ1LTIwMTcxMDI3
MjIwMDU5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+Mjgt
T2N0LTIwMTcgMDI6NTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzEwMjYyMjE5NDUtMjAxNzEwMjgxMDA0MjMucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI2MjIx
OTQ1LTIwMTcxMDI4MTAwNDIzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4K
KwkJCQk8dGQ+MjgtT2N0LTIwMTcgMTM6NTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjYyMjE5NDUtMjAxNzEwMjgyMjAzMjYucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVT
LTIwMTcxMDI2MjIxOTQ1LTIwMTcxMDI4MjIwMzI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjktT2N0LTIwMTcgMDE6MDA8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjcxMDAxMDMtMjAxNzEw
MjcyMjAwNTkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC1pNjg2LWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI3MjIwMDU5LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjgtT2N0LTIwMTcgMDI6NTk8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjcx
MDAxMDMtMjAxNzEwMjgxMDA0MjMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI4MTAwNDIzLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjgtT2N0LTIwMTcg
MTM6NTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzEwMjcxMDAxMDMtMjAxNzEwMjgyMjAzMjYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcx
MDI4MjIwMzI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+
MjktT2N0LTIwMTcgMDE6MDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzEwMjcxMDAxMDMtMjAxNzEwMjkxMDIzMDAucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI3
MTAwMTAzLTIwMTcxMDI5MTAyMzAwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90
ZD4KKwkJCQk8dGQ+MjktT2N0LTIwMTcgMTQ6Mzk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjcyMjAwNTktMjAxNzEwMjgxMDA0MjMu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVu
LVVTLTIwMTcxMDI3MjIwMDU5LTIwMTcxMDI4MTAwNDIzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjgtT2N0LTIwMTcgMTM6NTg8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjcyMjAwNTktMjAx
NzEwMjgyMjAzMjYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC1pNjg2LWVuLVVTLTIwMTcxMDI3MjIwMDU5LTIwMTcxMDI4MjIwMzI2LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjktT2N0LTIwMTcgMDE6MDA8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEw
MjcyMjAwNTktMjAxNzEwMjkxMDIzMDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI3MjIwMDU5LTIwMTcxMDI5MTAyMzAw
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjktT2N0LTIw
MTcgMTQ6Mzk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzEwMjcyMjAwNTktMjAxNzEwMjkyMjAxMTIucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI3MjIwMDU5LTIw
MTcxMDI5MjIwMTEyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8
dGQ+MzAtT2N0LTIwMTcgMDM6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjgxMDA0MjMtMjAxNzEwMjgyMjAzMjYucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcx
MDI4MTAwNDIzLTIwMTcxMDI4MjIwMzI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRN
PC90ZD4KKwkJCQk8dGQ+MjktT2N0LTIwMTcgMDE6MDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjgxMDA0MjMtMjAxNzEwMjkxMDIz
MDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2
LWVuLVVTLTIwMTcxMDI4MTAwNDIzLTIwMTcxMDI5MTAyMzAwLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjktT2N0LTIwMTcgMTQ6Mzk8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjgxMDA0MjMt
MjAxNzEwMjkyMjAxMTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI4MTAwNDIzLTIwMTcxMDI5MjIwMTEyLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MzAtT2N0LTIwMTcgMDM6MTQ8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzEwMjgxMDA0MjMtMjAxNzEwMzAxMDM2MDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI4MTAwNDIzLTIwMTcxMDMwMTAz
NjA1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MzAtT2N0
LTIwMTcgMjA6NDE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEwMjkxMDIzMDAucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI4MjIwMzI2
LTIwMTcxMDI5MTAyMzAwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjFNPC90ZD4KKwkJ
CQk8dGQ+MjktT2N0LTIwMTcgMTQ6Mzk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEwMjkyMjAxMTIucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIw
MTcxMDI4MjIwMzI2LTIwMTcxMDI5MjIwMTEyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjJNPC90ZD4KKwkJCQk8dGQ+MzAtT2N0LTIwMTcgMDM6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEwMzAx
MDM2MDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1p
Njg2LWVuLVVTLTIwMTcxMDI4MjIwMzI2LTIwMTcxMDMwMTAzNjA1LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MzAtT2N0LTIwMTcgMjA6NDI8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjgyMjAz
MjYtMjAxNzEwMzEyMjAxMzIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI4MjIwMzI2LTIwMTcxMDMxMjIwMTMyLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMDM6
MTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzEwMjgyMjAzMjYtMjAxNzEwMzEyMzUxMTgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI4MjIwMzI2LTIwMTcxMDMx
MjM1MTE4LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDEt
Tm92LTIwMTcgMTA6MTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzEwMjkxMDIzMDAtMjAxNzEwMjkyMjAxMTIucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI5MTAy
MzAwLTIwMTcxMDI5MjIwMTEyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjFNPC90ZD4K
KwkJCQk8dGQ+MzAtT2N0LTIwMTcgMDM6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjkxMDIzMDAtMjAxNzEwMzAxMDM2MDUucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVT
LTIwMTcxMDI5MTAyMzAwLTIwMTcxMDMwMTAzNjA1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjRNPC90ZD4KKwkJCQk8dGQ+MzAtT2N0LTIwMTcgMjA6NDE8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjkxMDIzMDAtMjAxNzEw
MzEyMjAxMzIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC1pNjg2LWVuLVVTLTIwMTcxMDI5MTAyMzAwLTIwMTcxMDMxMjIwMTMyLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMDM6MTc8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjkx
MDIzMDAtMjAxNzEwMzEyMzUxMTgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI5MTAyMzAwLTIwMTcxMDMxMjM1MTE4LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcg
MTA6MTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzEwMjkyMjAxMTItMjAxNzEwMzAxMDM2MDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI5MjIwMTEyLTIwMTcx
MDMwMTAzNjA1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+
MzAtT2N0LTIwMTcgMjA6NDI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzEwMjkyMjAxMTItMjAxNzEwMzEyMjAxMzIucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDI5
MjIwMTEyLTIwMTcxMDMxMjIwMTMyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90
ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMDM6MTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjkyMjAxMTItMjAxNzEwMzEyMzUxMTgu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVu
LVVTLTIwMTcxMDI5MjIwMTEyLTIwMTcxMDMxMjM1MTE4LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMTA6MTc8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMjkyMjAxMTItMjAx
NzExMDExMDQ0MzAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC1pNjg2LWVuLVVTLTIwMTcxMDI5MjIwMTEyLTIwMTcxMTAxMTA0NDMwLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjM4TTwvdGQ+CisJCQkJPHRkPjAxLU5vdi0yMDE3IDE3OjA2PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcx
MDMwMTAzNjA1LTIwMTcxMDMxMjIwMTMyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAzMDEwMzYwNS0yMDE3MTAzMTIyMDEz
Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjAxLU5vdi0y
MDE3IDAzOjE3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2
LWVuLVVTLTIwMTcxMDMwMTAzNjA1LTIwMTcxMDMxMjM1MTE4LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAzMDEwMzYwNS0y
MDE3MTAzMTIzNTExOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJ
PHRkPjAxLU5vdi0yMDE3IDEwOjE3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDMwMTAzNjA1LTIwMTcxMTAxMTA0NDMwLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MTAzMDEwMzYwNS0yMDE3MTEwMTEwNDQzMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4z
OE08L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAxNzowNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAzMDEwMzYwNS0yMDE3MTEwMTIy
MDEyMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzEwMzAxMDM2MDUtMjAxNzExMDEyMjAxMjAucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+MzhNPC90ZD4KKwkJCQk8dGQ+MDItTm92LTIwMTcgMDA6MjQ8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMzEyMjAx
MzItMjAxNzExMDExMDQ0MzAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMDMxMjIwMTMyLTIwMTcxMTAxMTA0NDMwLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjM4TTwvdGQ+CisJCQkJPHRkPjAxLU5vdi0yMDE3IDE3
OjA2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVT
LTIwMTcxMDMxMjIwMTMyLTIwMTcxMTAxMjIwMTIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAzMTIyMDEzMi0yMDE3MTEw
MTIyMDEyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zOE08L3RkPgorCQkJCTx0ZD4w
Mi1Ob3YtMjAxNyAwMDoyNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MTAzMTIyMDEzMi0yMDE3MTEwMjEwMDA0MS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMzEy
MjAxMzItMjAxNzExMDIxMDAwNDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3Rk
PgorCQkJCTx0ZD4wMi1Ob3YtMjAxNyAxMjowNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAzMTIzNTExOC0yMDE3MTEwMTEwNDQzMC5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzEwMzEyMzUxMTgtMjAxNzExMDExMDQ0MzAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+MzhNPC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMTc6MDY8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEwMzEyMzUxMTgtMjAx
NzExMDEyMjAxMjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC1pNjg2LWVuLVVTLTIwMTcxMDMxMjM1MTE4LTIwMTcxMTAxMjIwMTIwLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjM4TTwvdGQ+CisJCQkJPHRkPjAyLU5vdi0yMDE3IDAwOjI0PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcx
MDMxMjM1MTE4LTIwMTcxMTAyMTAwMDQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAzMTIzNTExOC0yMDE3MTEwMjEwMDA0
MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjAyLU5vdi0y
MDE3IDEyOjA3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2
LWVuLVVTLTIwMTcxMDMxMjM1MTE4LTIwMTcxMTAyMjIyNjIwLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTAzMTIzNTExOC0y
MDE3MTEwMjIyMjYyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJ
PHRkPjAzLU5vdi0yMDE3IDAwOjUxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMTAxMTA0NDMwLTIwMTcxMTAxMjIwMTIwLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MTEwMTEwNDQzMC0yMDE3MTEwMTIyMDEyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42
TTwvdGQ+CisJCQkJPHRkPjAyLU5vdi0yMDE3IDAwOjI1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMTAxMTA0NDMwLTIwMTcxMTAyMTAw
MDQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MTEwMTEwNDQzMC0yMDE3MTEwMjEwMDA0MS5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD4yNU08L3RkPgorCQkJCTx0ZD4wMi1Ob3YtMjAxNyAxMjowNzwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMTEwNDQz
MC0yMDE3MTEwMjIyMjYyMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzExMDExMDQ0MzAtMjAxNzExMDIyMjI2MjAucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MjVNPC90ZD4KKwkJCQk8dGQ+MDMtTm92LTIwMTcgMDA6
NTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzExMDExMDQ0MzAtMjAxNzExMDMxMDAzMzEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMTAxMTA0NDMwLTIwMTcxMTAz
MTAwMzMxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjI1TTwvdGQ+CisJCQkJPHRkPjAz
LU5vdi0yMDE3IDEyOjExPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC1pNjg2LWVuLVVTLTIwMTcxMTAxMjIwMTIwLTIwMTcxMTAyMTAwMDQxLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMTIy
MDEyMC0yMDE3MTEwMjEwMDA0MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4yNE08L3Rk
PgorCQkJCTx0ZD4wMi1Ob3YtMjAxNyAxMjowNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMTIyMDEyMC0yMDE3MTEwMjIyMjYyMC5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzExMDEyMjAxMjAtMjAxNzExMDIyMjI2MjAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+MjVNPC90ZD4KKwkJCQk8dGQ+MDMtTm92LTIwMTcgMDA6NTA8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzExMDEyMjAxMjAtMjAx
NzExMDMxMDAzMzEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC1pNjg2LWVuLVVTLTIwMTcxMTAxMjIwMTIwLTIwMTcxMTAzMTAwMzMxLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjI0TTwvdGQ+CisJCQkJPHRkPjAzLU5vdi0yMDE3IDEyOjExPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcx
MTAxMjIwMTIwLTIwMTcxMTAzMjIwNzE1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMTIyMDEyMC0yMDE3MTEwMzIyMDcx
NS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4yNE08L3RkPgorCQkJCTx0ZD4wNC1Ob3Yt
MjAxNyAwMDoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MTEwMjEwMDA0MS0yMDE3MTEwMjIyMjYyMC5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzExMDIxMDAwNDEt
MjAxNzExMDIyMjI2MjAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJ
CTx0ZD4wMy1Ob3YtMjAxNyAwMDo1MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMjEwMDA0MS0yMDE3MTEwMzEwMDMzMS5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzExMDIxMDAwNDEtMjAxNzExMDMxMDAzMzEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
NU08L3RkPgorCQkJCTx0ZD4wMy1Ob3YtMjAxNyAxMjoxMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMjEwMDA0MS0yMDE3MTEwMzIy
MDcxNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2
ODYtZW4tVVMtMjAxNzExMDIxMDAwNDEtMjAxNzExMDMyMjA3MTUucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wNC1Ob3YtMjAxNyAwMDoxNTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMjEwMDA0
MS0yMDE3MTEwNDEwMDQxMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzExMDIxMDAwNDEtMjAxNzExMDQxMDA0MTIucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wNC1Ob3YtMjAxNyAxMjox
NjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0y
MDE3MTEwMjIyMjYyMC0yMDE3MTEwMzEwMDMzMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzExMDIyMjI2MjAtMjAxNzExMDMx
MDAzMzEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4wMy1O
b3YtMjAxNyAxMjoxMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
aTY4Ni1lbi1VUy0yMDE3MTEwMjIyMjYyMC0yMDE3MTEwMzIyMDcxNS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzExMDIyMjI2
MjAtMjAxNzExMDMyMjA3MTUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgor
CQkJCTx0ZD4wNC1Ob3YtMjAxNyAwMDoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMjIyMjYyMC0yMDE3MTEwNDEwMDQxMi5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMt
MjAxNzExMDIyMjI2MjAtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+NU08L3RkPgorCQkJCTx0ZD4wNC1Ob3YtMjAxNyAxMjoxNTwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMjIyMjYyMC0yMDE3MTEw
NDIyMDQyMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LWk2ODYtZW4tVVMtMjAxNzExMDIyMjI2MjAtMjAxNzExMDQyMjA0MjAucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wNS1Ob3YtMjAxNyAwMDo0MDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMzEw
MDMzMS0yMDE3MTEwMzIyMDcxNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzExMDMxMDAzMzEtMjAxNzExMDMyMjA3MTUucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4wNC1Ob3YtMjAxNyAw
MDoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MTEwMzEwMDMzMS0yMDE3MTEwNDEwMDQxMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzExMDMxMDAzMzEtMjAxNzEx
MDQxMDA0MTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4w
NC1Ob3YtMjAxNyAxMjoxNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgtaTY4Ni1lbi1VUy0yMDE3MTEwMzEwMDMzMS0yMDE3MTEwNDIyMDQyMC5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzExMDMx
MDAzMzEtMjAxNzExMDQyMjA0MjAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3Rk
PgorCQkJCTx0ZD4wNS1Ob3YtMjAxNyAwMDo0MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMzEwMDMzMS0yMDE3MTEwNTEwMDM1My5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4t
VVMtMjAxNzExMDMxMDAzMzEtMjAxNzExMDUxMDAzNTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wNS1Ob3YtMjAxNyAxMjowODwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMzIyMDcxNS0yMDE3
MTEwNDEwMDQxMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LWk2ODYtZW4tVVMtMjAxNzExMDMyMjA3MTUtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wNC1Ob3YtMjAxNyAxMjoxNjwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEw
MzIyMDcxNS0yMDE3MTEwNDIyMDQyMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzExMDMyMjA3MTUtMjAxNzExMDQyMjA0MjAu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wNS1Ob3YtMjAx
NyAwMDo0MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MTEwMzIyMDcxNS0yMDE3MTEwNTEwMDM1My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzExMDMyMjA3MTUtMjAx
NzExMDUxMDAzNTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0
ZD4wNS1Ob3YtMjAxNyAxMjowODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwMzIyMDcxNS0yMDE3MTEwNTIyMDcyMS5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzEx
MDMyMjA3MTUtMjAxNzExMDUyMjA3MjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08
L3RkPgorCQkJCTx0ZD4wNi1Ob3YtMjAxNyAwMDoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwNDEwMDQxMi0yMDE3MTEwNDIyMDQy
MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYt
ZW4tVVMtMjAxNzExMDQxMDA0MTItMjAxNzExMDQyMjA0MjAucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4wNS1Ob3YtMjAxNyAwMDo0MDwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwNDEwMDQxMi0y
MDE3MTEwNTEwMDM1My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LWk2ODYtZW4tVVMtMjAxNzExMDQxMDA0MTItMjAxNzExMDUxMDAzNTMucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4wNS1Ob3YtMjAxNyAxMjowODwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3
MTEwNDEwMDQxMi0yMDE3MTEwNTIyMDcyMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzExMDQxMDA0MTItMjAxNzExMDUyMjA3
MjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4wNi1Ob3Yt
MjAxNyAwMDoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4
Ni1lbi1VUy0yMDE3MTEwNDEwMDQxMi0yMDE3MTEwNjEwMDEyMi5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzExMDQxMDA0MTIt
MjAxNzExMDYxMDAxMjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJ
CTx0ZD4wNi1Ob3YtMjAxNyAxMTo1OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwNDIyMDQyMC0yMDE3MTEwNTEwMDM1My5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAx
NzExMDQyMjA0MjAtMjAxNzExMDUxMDAzNTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
NDZLPC90ZD4KKwkJCQk8dGQ+MDUtTm92LTIwMTcgMTI6MDg8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzExMDQyMjA0MjAtMjAxNzExMDUy
MjA3MjEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC1p
Njg2LWVuLVVTLTIwMTcxMTA0MjIwNDIwLTIwMTcxMTA1MjIwNzIxLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjQ2OUs8L3RkPgorCQkJCTx0ZD4wNi1Ob3YtMjAxNyAwMDoxNTwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEwNDIy
MDQyMC0yMDE3MTEwNjEwMDEyMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzExMDQyMjA0MjAtMjAxNzExMDYxMDAxMjIucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4wNi1Ob3YtMjAxNyAx
MTo1ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1V
Uy0yMDE3MTEwNTEwMDM1My0yMDE3MTEwNTIyMDcyMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LWk2ODYtZW4tVVMtMjAxNzExMDUxMDAzNTMtMjAxNzEx
MDUyMjA3MjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NDY2SzwvdGQ+CisJCQkJPHRk
PjA2LU5vdi0yMDE3IDAwOjE1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC1pNjg2LWVuLVVTLTIwMTcxMTA1MTAwMzUzLTIwMTcxMTA2MTAwMTIyLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1lbi1VUy0yMDE3MTEw
NTEwMDM1My0yMDE3MTEwNjEwMDEyMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwv
dGQ+CisJCQkJPHRkPjA2LU5vdi0yMDE3IDExOjU4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC1pNjg2LWVuLVVTLTIwMTcxMTA1MjIwNzIxLTIwMTcxMTA2MTAwMTIy
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgtaTY4Ni1l
bi1VUy0yMDE3MTEwNTIyMDcyMS0yMDE3MTEwNjEwMDEyMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjA2LU5vdi0yMDE3IDExOjU4PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MTkyMjAyMDIt
MjAxNzA5MjEyMjAyNDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MTkyMjAyMDItMjAxNzA5MjEyMjAyNDMucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yMi1TZXAtMjAxNyAwMDoz
ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcwOTIwMTAwNDI2LTIwMTcwOTIxMjIwMjQzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIwMTAwNDI2LTIwMTcw
OTIxMjIwMjQzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+
MjItU2VwLTIwMTcgMDA6Mzg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyMDEwMDQyNi0yMDE3MDkyMjEwMDA1MS5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MDkyMDEwMDQyNi0yMDE3MDkyMjEwMDA1MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44
TTwvdGQ+CisJCQkJPHRkPjIyLVNlcC0yMDE3IDEyOjQyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjAyMjA0MzEtMjAxNzA5MjEy
MjAyNDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzA5MjAyMjA0MzEtMjAxNzA5MjEyMjAyNDMucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMi1TZXAtMjAxNyAwMDozODwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIw
MjIwNDMxLTIwMTcwOTIyMTAwMDUxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIwMjIwNDMxLTIwMTcwOTIyMTAwMDUx
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjItU2VwLTIw
MTcgMTI6NDI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82
NC1lbi1VUy0yMDE3MDkyMDIyMDQzMS0yMDE3MDkyMjIyMDEyOS5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyMDIyMDQz
MS0yMDE3MDkyMjIyMDEyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJ
CQkJPHRkPjIzLVNlcC0yMDE3IDAxOjAyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjExMDAxNDEtMjAxNzA5MjEyMjAyNDMucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzA5MjExMDAxNDEtMjAxNzA5MjEyMjAyNDMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMi1TZXAtMjAxNyAwMDozODwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIxMTAwMTQxLTIw
MTcwOTIyMTAwMDUxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIxMTAwMTQxLTIwMTcwOTIyMTAwMDUxLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjItU2VwLTIwMTcgMTI6NDI8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MDkyMTEwMDE0MS0yMDE3MDkyMjIyMDEyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyMTEwMDE0MS0yMDE3MDky
MjIyMDEyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjIz
LVNlcC0yMDE3IDAxOjAyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzA5MjExMDAxNDEtMjAxNzA5MjMxMDAwNDUucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5
MjExMDAxNDEtMjAxNzA5MjMxMDAwNDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08
L3RkPgorCQkJCTx0ZD4yMy1TZXAtMjAxNyAxMzowNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIxMjIwMjQzLTIwMTcwOTIyMTAw
MDUxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcwOTIxMjIwMjQzLTIwMTcwOTIyMTAwMDUxLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjItU2VwLTIwMTcgMTI6NDI8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyMTIy
MDI0My0yMDE3MDkyMjIyMDEyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyMTIyMDI0My0yMDE3MDkyMjIyMDEyOS5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjIzLVNlcC0yMDE3
IDAxOjAxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzA5MjEyMjAyNDMtMjAxNzA5MjMxMDAwNDUucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjEyMjAyNDMt
MjAxNzA5MjMxMDAwNDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJ
CTx0ZD4yMy1TZXAtMjAxNyAxMzowNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIxMjIwMjQzLTIwMTcwOTIzMjIwMzM3LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcwOTIxMjIwMjQzLTIwMTcwOTIzMjIwMzM3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjQtU2VwLTIwMTcgMDA6NDg8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyMjEwMDA1MS0yMDE3
MDkyMjIyMDEyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyMjEwMDA1MS0yMDE3MDkyMjIyMDEyOS5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIzLVNlcC0yMDE3IDAxOjAxPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzA5MjIxMDAwNTEtMjAxNzA5MjMxMDAwNDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjIxMDAwNTEtMjAxNzA5MjMx
MDAwNDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMy1T
ZXAtMjAxNyAxMzowNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcwOTIyMTAwMDUxLTIwMTcwOTIzMjIwMzM3LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIy
MTAwMDUxLTIwMTcwOTIzMjIwMzM3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90
ZD4KKwkJCQk8dGQ+MjQtU2VwLTIwMTcgMDA6NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyMjEwMDA1MS0yMDE3MDkyNDEwMDU1
MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82
NC1lbi1VUy0yMDE3MDkyMjEwMDA1MS0yMDE3MDkyNDEwMDU1MC5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI0LVNlcC0yMDE3IDEzOjM0PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjIyMjAx
MjktMjAxNzA5MjMxMDAwNDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjIyMjAxMjktMjAxNzA5MjMxMDAwNDUucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMy1TZXAtMjAxNyAx
MzowNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcwOTIyMjIwMTI5LTIwMTcwOTIzMjIwMzM3LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIyMjIwMTI5LTIw
MTcwOTIzMjIwMzM3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8
dGQ+MjQtU2VwLTIwMTcgMDA6NDc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyMjIyMDEyOS0yMDE3MDkyNDEwMDU1MC5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MDkyMjIyMDEyOS0yMDE3MDkyNDEwMDU1MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD43TTwvdGQ+CisJCQkJPHRkPjI0LVNlcC0yMDE3IDEzOjMzPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjIyMjAxMjktMjAxNzA5
MjQyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzA5MjIyMjAxMjktMjAxNzA5MjQyMjAxMTYucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNS1TZXAtMjAxNyAwMTowMzwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcw
OTIzMTAwMDQ1LTIwMTcwOTIzMjIwMzM3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIzMTAwMDQ1LTIwMTcwOTIzMjIw
MzM3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjQtU2Vw
LTIwMTcgMDA6NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MDkyMzEwMDA0NS0yMDE3MDkyNDEwMDU1MC5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyMzEw
MDA0NS0yMDE3MDkyNDEwMDU1MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+
CisJCQkJPHRkPjI0LVNlcC0yMDE3IDEzOjMzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjMxMDAwNDUtMjAxNzA5MjQyMjAxMTYu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzA5MjMxMDAwNDUtMjAxNzA5MjQyMjAxMTYucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNS1TZXAtMjAxNyAwMTowMzwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIzMTAwMDQ1
LTIwMTcwOTI1MTAwMzA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIzMTAwMDQ1LTIwMTcwOTI1MTAwMzA3LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjUtU2VwLTIwMTcgMTI6
MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MDkyMzIyMDMzNy0yMDE3MDkyNDEwMDU1MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyMzIyMDMzNy0yMDE3
MDkyNDEwMDU1MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRk
PjI0LVNlcC0yMDE3IDEzOjM1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjMyMjAzMzctMjAxNzA5MjQyMjAxMTYucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzA5MjMyMjAzMzctMjAxNzA5MjQyMjAxMTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
Nk08L3RkPgorCQkJCTx0ZD4yNS1TZXAtMjAxNyAwMTowMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTIzMjIwMzM3LTIwMTcwOTI1
MTAwMzA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcwOTIzMjIwMzM3LTIwMTcwOTI1MTAwMzA3LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjUtU2VwLTIwMTcgMTI6MTQ8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDky
MzIyMDMzNy0yMDE3MDkyNTIyMDIwNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyMzIyMDMzNy0yMDE3MDkyNTIyMDIw
Ny5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI2LVNlcC0y
MDE3IDAwOjE3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzA5MjQxMDA1NTAtMjAxNzA5MjQyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjQxMDA1
NTAtMjAxNzA5MjQyMjAxMTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgor
CQkJCTx0ZD4yNS1TZXAtMjAxNyAwMTowNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI0MTAwNTUwLTIwMTcwOTI1MTAwMzA3LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcwOTI0MTAwNTUwLTIwMTcwOTI1MTAwMzA3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjUtU2VwLTIwMTcgMTI6MTQ8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyNDEwMDU1MC0y
MDE3MDkyNTIyMDIwNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyNDEwMDU1MC0yMDE3MDkyNTIyMDIwNy5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI2LVNlcC0yMDE3IDAwOjE3
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzA5MjQxMDA1NTAtMjAxNzA5MjYxMDAyNTkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjQxMDA1NTAtMjAxNzA5
MjYxMDAyNTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4y
Ni1TZXAtMjAxNyAxMjoxMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcwOTI0MjIwMTE2LTIwMTcwOTI1MTAwMzA3LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcw
OTI0MjIwMTE2LTIwMTcwOTI1MTAwMzA3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZN
PC90ZD4KKwkJCQk8dGQ+MjUtU2VwLTIwMTcgMTI6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyNDIyMDExNi0yMDE3MDkyNTIy
MDIwNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MDkyNDIyMDExNi0yMDE3MDkyNTIyMDIwNy5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI2LVNlcC0yMDE3IDAwOjE3PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjQy
MjAxMTYtMjAxNzA5MjYxMDAyNTkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjQyMjAxMTYtMjAxNzA5MjYxMDAyNTku
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yNi1TZXAtMjAx
NyAxMjoxMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcwOTI0MjIwMTE2LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI0MjIwMTE2
LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJ
CQk8dGQ+MjctU2VwLTIwMTcgMDA6MTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyNTEwMDMwNy0yMDE3MDkyNTIyMDIwNy5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MDkyNTEwMDMwNy0yMDE3MDkyNTIyMDIwNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI2LVNlcC0yMDE3IDAwOjE3PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjUxMDAzMDctMjAx
NzA5MjYxMDAyNTkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjUxMDAzMDctMjAxNzA5MjYxMDAyNTkucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yNi1TZXAtMjAxNyAxMjoxMTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcwOTI1MTAwMzA3LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI1MTAwMzA3LTIwMTcwOTI2
MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+Mjct
U2VwLTIwMTcgMDA6MTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LXg4Nl82NC1lbi1VUy0yMDE3MDkyNTEwMDMwNy0yMDE3MDkyODEwMDEyMy5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDky
NTEwMDMwNy0yMDE3MDkyODEwMDEyMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwv
dGQ+CisJCQkJPHRkPjI4LVNlcC0yMDE3IDEyOjAzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjUyMjAyMDctMjAxNzA5MjYxMDAy
NTkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzA5MjUyMjAyMDctMjAxNzA5MjYxMDAyNTkucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNi1TZXAtMjAxNyAxMjoxMjwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI1MjIw
MjA3LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI1MjIwMjA3LTIwMTcwOTI2MjIwMTA2LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjctU2VwLTIwMTcg
MDA6MTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1l
bi1VUy0yMDE3MDkyNTIyMDIwNy0yMDE3MDkyODEwMDEyMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyNTIyMDIwNy0y
MDE3MDkyODEwMDEyMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJ
PHRkPjI4LVNlcC0yMDE3IDEyOjA0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjUyMjAyMDctMjAxNzA5MjgyMjA2NTgucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzA5MjUyMjAyMDctMjAxNzA5MjgyMjA2NTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+OU08L3RkPgorCQkJCTx0ZD4yOS1TZXAtMjAxNyAwMDoyODwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI2MTAwMjU5LTIwMTcw
OTI2MjIwMTA2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcwOTI2MTAwMjU5LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjctU2VwLTIwMTcgMDA6MTA8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MDkyNjEwMDI1OS0yMDE3MDkyODEwMDEyMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyNjEwMDI1OS0yMDE3MDkyODEw
MDEyMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjI4LVNl
cC0yMDE3IDEyOjA0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzA5MjYxMDAyNTktMjAxNzA5MjgyMjA2NTgucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjYx
MDAyNTktMjAxNzA5MjgyMjA2NTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3Rk
PgorCQkJCTx0ZD4yOS1TZXAtMjAxNyAwMDoyODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI2MTAwMjU5LTIwMTcwOTI5MTAwMTIy
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcwOTI2MTAwMjU5LTIwMTcwOTI5MTAwMTIyLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MjktU2VwLTIwMTcgMTI6MTU8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyNjIyMDEw
Ni0yMDE3MDkyODEwMDEyMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyNjIyMDEwNi0yMDE3MDkyODEwMDEyMy5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjI4LVNlcC0yMDE3IDEy
OjAzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzA5MjYyMjAxMDYtMjAxNzA5MjgyMjA2NTgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjYyMjAxMDYtMjAx
NzA5MjgyMjA2NTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0
ZD4yOS1TZXAtMjAxNyAwMDoyODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI2MjIwMTA2LTIwMTcwOTI5MTAwMTIyLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcwOTI2MjIwMTA2LTIwMTcwOTI5MTAwMTIyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjhNPC90ZD4KKwkJCQk8dGQ+MjktU2VwLTIwMTcgMTI6MTU8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyNjIyMDEwNi0yMDE3MDky
OTIyMDM1Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LXg4Nl82NC1lbi1VUy0yMDE3MDkyNjIyMDEwNi0yMDE3MDkyOTIyMDM1Ni5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjMwLVNlcC0yMDE3IDAwOjEzPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5
MjgxMDAxMjMtMjAxNzA5MjgyMjA2NTgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjgxMDAxMjMtMjAxNzA5MjgyMjA2
NTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yOS1TZXAt
MjAxNyAwMDoyODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcwOTI4MTAwMTIzLTIwMTcwOTI5MTAwMTIyLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI4MTAw
MTIzLTIwMTcwOTI5MTAwMTIyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4K
KwkJCQk8dGQ+MjktU2VwLTIwMTcgMTI6MTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyODEwMDEyMy0yMDE3MDkyOTIyMDM1Ni5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1l
bi1VUy0yMDE3MDkyODEwMDEyMy0yMDE3MDkyOTIyMDM1Ni5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjMwLVNlcC0yMDE3IDAwOjEzPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjgxMDAxMjMt
MjAxNzA5MzAxMDAzMDIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjgxMDAxMjMtMjAxNzA5MzAxMDAzMDIucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4zMC1TZXAtMjAxNyAxMjoy
MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcwOTI4MjIwNjU4LTIwMTcwOTI5MTAwMTIyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI4MjIwNjU4LTIwMTcw
OTI5MTAwMTIyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+
MjktU2VwLTIwMTcgMTI6MTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyODIyMDY1OC0yMDE3MDkyOTIyMDM1Ni5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MDkyODIyMDY1OC0yMDE3MDkyOTIyMDM1Ni5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44
TTwvdGQ+CisJCQkJPHRkPjMwLVNlcC0yMDE3IDAwOjEzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjgyMjA2NTgtMjAxNzA5MzAx
MDAzMDIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzA5MjgyMjA2NTgtMjAxNzA5MzAxMDAzMDIucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4zMC1TZXAtMjAxNyAxMjoyMjwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI4
MjIwNjU4LTIwMTcwOTMwMjIwMTE2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI4MjIwNjU4LTIwMTcwOTMwMjIwMTE2
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDEtT2N0LTIw
MTcgMDA6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82
NC1lbi1VUy0yMDE3MDkyOTEwMDEyMi0yMDE3MDkyOTIyMDM1Ni5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyOTEwMDEy
Mi0yMDE3MDkyOTIyMDM1Ni5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJ
CQkJPHRkPjMwLVNlcC0yMDE3IDAwOjEzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjkxMDAxMjItMjAxNzA5MzAxMDAzMDIucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzA5MjkxMDAxMjItMjAxNzA5MzAxMDAzMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+N008L3RkPgorCQkJCTx0ZD4zMC1TZXAtMjAxNyAxMjoyMjwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI5MTAwMTIyLTIw
MTcwOTMwMjIwMTE2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI5MTAwMTIyLTIwMTcwOTMwMjIwMTE2LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDEtT2N0LTIwMTcgMDA6MTQ8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MDkyOTEwMDEyMi0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyOTEwMDEyMi0yMDE3MTAw
MTEwMDMzNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAx
LU9jdC0yMDE3IDEyOjE1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzA5MjkyMjAzNTYtMjAxNzA5MzAxMDAzMDIucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5
MjkyMjAzNTYtMjAxNzA5MzAxMDAzMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08
L3RkPgorCQkJCTx0ZD4zMC1TZXAtMjAxNyAxMjoyMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTI5MjIwMzU2LTIwMTcwOTMwMjIw
MTE2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcwOTI5MjIwMzU2LTIwMTcwOTMwMjIwMTE2LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDEtT2N0LTIwMTcgMDA6MTQ8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyOTIy
MDM1Ni0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkyOTIyMDM1Ni0yMDE3MTAwMTEwMDMzNS5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAxLU9jdC0yMDE3
IDEyOjE1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzA5MjkyMjAzNTYtMjAxNzEwMDEyMjAzMDEucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MjkyMjAzNTYt
MjAxNzEwMDEyMjAzMDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJ
CTx0ZD4wMi1PY3QtMjAxNyAwMDoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTMwMTAwMzAyLTIwMTcwOTMwMjIwMTE2LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcwOTMwMTAwMzAyLTIwMTcwOTMwMjIwMTE2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDEtT2N0LTIwMTcgMDA6MTQ8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkzMDEwMDMwMi0yMDE3
MTAwMTEwMDMzNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkzMDEwMDMwMi0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAxLU9jdC0yMDE3IDEyOjE1PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzA5MzAxMDAzMDItMjAxNzEwMDEyMjAzMDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MzAxMDAzMDItMjAxNzEwMDEy
MjAzMDEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMi1P
Y3QtMjAxNyAwMDoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcwOTMwMTAwMzAyLTIwMTcxMDAyMTAwMTM0LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTMw
MTAwMzAyLTIwMTcxMDAyMTAwMTM0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90
ZD4KKwkJCQk8dGQ+MDItT2N0LTIwMTcgMTI6MjI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkzMDIyMDExNi0yMDE3MTAwMTEwMDMz
NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82
NC1lbi1VUy0yMDE3MDkzMDIyMDExNi0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjAxLU9jdC0yMDE3IDEyOjE1PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MzAyMjAx
MTYtMjAxNzEwMDEyMjAzMDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzA5MzAyMjAxMTYtMjAxNzEwMDEyMjAzMDEucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMi1PY3QtMjAxNyAw
MDoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcwOTMwMjIwMTE2LTIwMTcxMDAyMTAwMTM0LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcwOTMwMjIwMTE2LTIw
MTcxMDAyMTAwMTM0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8
dGQ+MDItT2N0LTIwMTcgMTI6MjM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MDkzMDIyMDExNi0yMDE3MTAwMjIyMDIwNC5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MDkzMDIyMDExNi0yMDE3MTAwMjIyMDIwNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD43TTwvdGQ+CisJCQkJPHRkPjAzLU9jdC0yMDE3IDAwOjI4PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDExMDAzMzUtMjAxNzEw
MDEyMjAzMDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzEwMDExMDAzMzUtMjAxNzEwMDEyMjAzMDEucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMi1PY3QtMjAxNyAwMDoxNDwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcx
MDAxMTAwMzM1LTIwMTcxMDAyMTAwMTM0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDAxMTAwMzM1LTIwMTcxMDAyMTAw
MTM0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDItT2N0
LTIwMTcgMTI6MjI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MTAwMTEwMDMzNS0yMDE3MTAwMjIyMDIwNC5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwMTEw
MDMzNS0yMDE3MTAwMjIyMDIwNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+
CisJCQkJPHRkPjAzLU9jdC0yMDE3IDAwOjI4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDExMDAzMzUtMjAxNzEwMDMxMDAyMjYu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzEwMDExMDAzMzUtMjAxNzEwMDMxMDAyMjYucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMy1PY3QtMjAxNyAxMjowOTwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDAxMjIwMzAx
LTIwMTcxMDAyMTAwMTM0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDAxMjIwMzAxLTIwMTcxMDAyMTAwMTM0LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDItT2N0LTIwMTcgMTI6
MjM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MTAwMTIyMDMwMS0yMDE3MTAwMjIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwMTIyMDMwMS0yMDE3
MTAwMjIyMDIwNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRk
PjAzLU9jdC0yMDE3IDAwOjI4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDEyMjAzMDEtMjAxNzEwMDMxMDAyMjYucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzEwMDEyMjAzMDEtMjAxNzEwMDMxMDAyMjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
N008L3RkPgorCQkJCTx0ZD4wMy1PY3QtMjAxNyAxMjowOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDAxMjIwMzAxLTIwMTcxMDAz
MjIwMTM4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcxMDAxMjIwMzAxLTIwMTcxMDAzMjIwMTM4LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDQtT2N0LTIwMTcgMDA6MjE8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAw
MjEwMDEzNC0yMDE3MTAwMjIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwMjEwMDEzNC0yMDE3MTAwMjIyMDIw
NC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjAzLU9jdC0y
MDE3IDAwOjI4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzEwMDIxMDAxMzQtMjAxNzEwMDMxMDAyMjYucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDIxMDAx
MzQtMjAxNzEwMDMxMDAyMjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgor
CQkJCTx0ZD4wMy1PY3QtMjAxNyAxMjowOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDAyMTAwMTM0LTIwMTcxMDAzMjIwMTM4LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcxMDAyMTAwMTM0LTIwMTcxMDAzMjIwMTM4LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDQtT2N0LTIwMTcgMDA6MjE8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwMjEwMDEzNC0y
MDE3MTAwNDIyMDMwOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwMjEwMDEzNC0yMDE3MTAwNDIyMDMwOS5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD4xMU08L3RkPgorCQkJCTx0ZD4wNS1PY3QtMjAxNyAwMDox
NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcxMDAyMjIwMjA0LTIwMTcxMDAzMTAwMjI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDAyMjIwMjA0LTIwMTcx
MDAzMTAwMjI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+
MDMtT2N0LTIwMTcgMTI6MDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwMjIyMDIwNC0yMDE3MTAwMzIyMDEzOC5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MTAwMjIyMDIwNC0yMDE3MTAwMzIyMDEzOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43
TTwvdGQ+CisJCQkJPHRkPjA0LU9jdC0yMDE3IDAwOjIxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDIyMjAyMDQtMjAxNzEwMDQy
MjAzMDkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzEwMDIyMjAyMDQtMjAxNzEwMDQyMjAzMDkucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+MTFNPC90ZD4KKwkJCQk8dGQ+MDUtT2N0LTIwMTcgMDA6MTQ8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAw
MjIyMDIwNC0yMDE3MTAwNTEwMDIxMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwMjIyMDIwNC0yMDE3MTAwNTEwMDIx
MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4xMU08L3RkPgorCQkJCTx0ZD4wNS1PY3Qt
MjAxNyAxMjoxNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcxMDAzMTAwMjI2LTIwMTcxMDAzMjIwMTM4LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDAzMTAw
MjI2LTIwMTcxMDAzMjIwMTM4LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4K
KwkJCQk8dGQ+MDQtT2N0LTIwMTcgMDA6MjE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwMzEwMDIyNi0yMDE3MTAwNDIyMDMwOS5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1l
bi1VUy0yMDE3MTAwMzEwMDIyNi0yMDE3MTAwNDIyMDMwOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD4xME08L3RkPgorCQkJCTx0ZD4wNS1PY3QtMjAxNyAwMDoxNDwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDAzMTAwMjI2
LTIwMTcxMDA1MTAwMjExLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDAzMTAwMjI2LTIwMTcxMDA1MTAwMjExLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjExTTwvdGQ+CisJCQkJPHRkPjA1LU9jdC0yMDE3IDEy
OjE2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzEwMDMxMDAyMjYtMjAxNzEwMDUyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDMxMDAyMjYtMjAx
NzEwMDUyMjAyMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTFNPC90ZD4KKwkJCQk8
dGQ+MDYtT2N0LTIwMTcgMDA6MTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwMzIyMDEzOC0yMDE3MTAwNDIyMDMwOS5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MTAwMzIyMDEzOC0yMDE3MTAwNDIyMDMwOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD4xME08L3RkPgorCQkJCTx0ZD4wNS1PY3QtMjAxNyAwMDoxNDwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDAzMjIwMTM4LTIwMTcx
MDA1MTAwMjExLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcxMDAzMjIwMTM4LTIwMTcxMDA1MTAwMjExLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjEwTTwvdGQ+CisJCQkJPHRkPjA1LU9jdC0yMDE3IDEyOjE2PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzEwMDMyMjAxMzgtMjAxNzEwMDUyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDMyMjAxMzgtMjAxNzEwMDUy
MjAyMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTFNPC90ZD4KKwkJCQk8dGQ+MDYt
T2N0LTIwMTcgMDA6MTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LXg4Nl82NC1lbi1VUy0yMDE3MTAwMzIyMDEzOC0yMDE3MTAwNjEwMDMyNy5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAw
MzIyMDEzOC0yMDE3MTAwNjEwMDMyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4xME08
L3RkPgorCQkJCTx0ZD4wNi1PY3QtMjAxNyAxMjoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA0MjIwMzA5LTIwMTcxMDA1MTAw
MjExLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcxMDA0MjIwMzA5LTIwMTcxMDA1MTAwMjExLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDUtT2N0LTIwMTcgMTI6MTY8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwNDIy
MDMwOS0yMDE3MTAwNTIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwNDIyMDMwOS0yMDE3MTAwNTIyMDIwNC5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA2LU9jdC0yMDE3
IDAwOjE3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzEwMDQyMjAzMDktMjAxNzEwMDYxMDAzMjcucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDQyMjAzMDkt
MjAxNzEwMDYxMDAzMjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJ
CTx0ZD4wNi1PY3QtMjAxNyAxMjoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA0MjIwMzA5LTIwMTcxMDA2MjIwMzA2LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcxMDA0MjIwMzA5LTIwMTcxMDA2MjIwMzA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDctT2N0LTIwMTcgMDA6MTE8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwNTEwMDIxMS0yMDE3
MTAwNTIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwNTEwMDIxMS0yMDE3MTAwNTIyMDIwNC5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA2LU9jdC0yMDE3IDAwOjE3PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzEwMDUxMDAyMTEtMjAxNzEwMDYxMDAzMjcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDUxMDAyMTEtMjAxNzEwMDYx
MDAzMjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wNi1P
Y3QtMjAxNyAxMjoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcxMDA1MTAwMjExLTIwMTcxMDA2MjIwMzA2LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA1
MTAwMjExLTIwMTcxMDA2MjIwMzA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90
ZD4KKwkJCQk8dGQ+MDctT2N0LTIwMTcgMDA6MTI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwNTEwMDIxMS0yMDE3MTAwNzEwMDE0
Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82
NC1lbi1VUy0yMDE3MTAwNTEwMDIxMS0yMDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjA3LU9jdC0yMDE3IDEyOjA5PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDUyMjAy
MDQtMjAxNzEwMDYxMDAzMjcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDUyMjAyMDQtMjAxNzEwMDYxMDAzMjcucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNi1PY3QtMjAxNyAx
MjoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcxMDA1MjIwMjA0LTIwMTcxMDA2MjIwMzA2LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA1MjIwMjA0LTIw
MTcxMDA2MjIwMzA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8
dGQ+MDctT2N0LTIwMTcgMDA6MTI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwNTIyMDIwNC0yMDE3MTAwNzEwMDE0Mi5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MTAwNTIyMDIwNC0yMDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD44TTwvdGQ+CisJCQkJPHRkPjA3LU9jdC0yMDE3IDEyOjA5PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDUyMjAyMDQtMjAxNzEw
MDcyMjAxNTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzEwMDUyMjAyMDQtMjAxNzEwMDcyMjAxNTYucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4wOC1PY3QtMjAxNyAwMDoxMDwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcx
MDA2MTAwMzI3LTIwMTcxMDA2MjIwMzA2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA2MTAwMzI3LTIwMTcxMDA2MjIw
MzA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDctT2N0
LTIwMTcgMDA6MTI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MTAwNjEwMDMyNy0yMDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwNjEw
MDMyNy0yMDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+
CisJCQkJPHRkPjA3LU9jdC0yMDE3IDEyOjA5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDYxMDAzMjctMjAxNzEwMDcyMjAxNTYu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzEwMDYxMDAzMjctMjAxNzEwMDcyMjAxNTYucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4wOC1PY3QtMjAxNyAwMDoxMDwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA2MTAwMzI3
LTIwMTcxMDA4MTMxNzAwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA2MTAwMzI3LTIwMTcxMDA4MTMxNzAwLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MDgtT2N0LTIwMTcgMTU6
MzI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MTAwNjIyMDMwNi0yMDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwNjIyMDMwNi0yMDE3
MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRk
PjA3LU9jdC0yMDE3IDEyOjA5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDYyMjAzMDYtMjAxNzEwMDcyMjAxNTYucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzEwMDYyMjAzMDYtMjAxNzEwMDcyMjAxNTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
OE08L3RkPgorCQkJCTx0ZD4wOC1PY3QtMjAxNyAwMDoxMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA2MjIwMzA2LTIwMTcxMDA4
MTMxNzAwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcxMDA2MjIwMzA2LTIwMTcxMDA4MTMxNzAwLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDgtT2N0LTIwMTcgMTU6MzI8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAw
NjIyMDMwNi0yMDE3MTAwODIyMDEzMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwNjIyMDMwNi0yMDE3MTAwODIyMDEz
MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjA5LU9jdC0y
MDE3IDAwOjIxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzEwMDcxMDAxNDItMjAxNzEwMDcyMjAxNTYucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDcxMDAx
NDItMjAxNzEwMDcyMjAxNTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgor
CQkJCTx0ZD4wOC1PY3QtMjAxNyAwMDoxMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA3MTAwMTQyLTIwMTcxMDA4MTMxNzAwLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcxMDA3MTAwMTQyLTIwMTcxMDA4MTMxNzAwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDgtT2N0LTIwMTcgMTU6MzI8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwNzEwMDE0Mi0y
MDE3MTAwODIyMDEzMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwNzEwMDE0Mi0yMDE3MTAwODIyMDEzMC5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA5LU9jdC0yMDE3IDAwOjIx
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzEwMDcxMDAxNDItMjAxNzEwMDkxMDAxMzQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDcxMDAxNDItMjAxNzEw
MDkxMDAxMzQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4w
OS1PY3QtMjAxNyAxMjoyMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcxMDA3MjIwMTU2LTIwMTcxMDA4MTMxNzAwLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcx
MDA3MjIwMTU2LTIwMTcxMDA4MTMxNzAwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdN
PC90ZD4KKwkJCQk8dGQ+MDgtT2N0LTIwMTcgMTU6MzI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwNzIyMDE1Ni0yMDE3MTAwODIy
MDEzMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MTAwNzIyMDE1Ni0yMDE3MTAwODIyMDEzMC5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjA5LU9jdC0yMDE3IDAwOjIxPC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDcy
MjAxNTYtMjAxNzEwMDkxMDAxMzQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDcyMjAxNTYtMjAxNzEwMDkxMDAxMzQu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wOS1PY3QtMjAx
NyAxMjoyMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcxMDA3MjIwMTU2LTIwMTcxMDA5MjIwMTA0LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA3MjIwMTU2
LTIwMTcxMDA5MjIwMTA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJ
CQk8dGQ+MTAtT2N0LTIwMTcgMDA6MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwODEzMTcwMC0yMDE3MTAwODIyMDEzMC5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MTAwODEzMTcwMC0yMDE3MTAwODIyMDEzMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD41TTwvdGQ+CisJCQkJPHRkPjA5LU9jdC0yMDE3IDAwOjIxPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDgxMzE3MDAtMjAx
NzEwMDkxMDAxMzQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDgxMzE3MDAtMjAxNzEwMDkxMDAxMzQucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wOS1PY3QtMjAxNyAxMjoyMTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcxMDA4MTMxNzAwLTIwMTcxMDA5MjIwMTA0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA4MTMxNzAwLTIwMTcxMDA5
MjIwMTA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTAt
T2N0LTIwMTcgMDA6MTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LXg4Nl82NC1lbi1VUy0yMDE3MTAwODEzMTcwMC0yMDE3MTAxMDEwMDIwMC5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAw
ODEzMTcwMC0yMDE3MTAxMDEwMDIwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwv
dGQ+CisJCQkJPHRkPjEwLU9jdC0yMDE3IDEyOjQ2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDgyMjAxMzAtMjAxNzEwMDkxMDAx
MzQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzEwMDgyMjAxMzAtMjAxNzEwMDkxMDAxMzQucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wOS1PY3QtMjAxNyAxMjoyMTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA4MjIw
MTMwLTIwMTcxMDA5MjIwMTA0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA4MjIwMTMwLTIwMTcxMDA5MjIwMTA0LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTAtT2N0LTIwMTcg
MDA6MTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1l
bi1VUy0yMDE3MTAwODIyMDEzMC0yMDE3MTAxMDEwMDIwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwODIyMDEzMC0y
MDE3MTAxMDEwMDIwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJ
PHRkPjEwLU9jdC0yMDE3IDEyOjQ1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDgyMjAxMzAtMjAxNzEwMTAyMjAxMDIucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzEwMDgyMjAxMzAtMjAxNzEwMTAyMjAxMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+OU08L3RkPgorCQkJCTx0ZD4xMS1PY3QtMjAxNyAwMDozMzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA5MTAwMTM0LTIwMTcx
MDA5MjIwMTA0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcxMDA5MTAwMTM0LTIwMTcxMDA5MjIwMTA0LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTAtT2N0LTIwMTcgMDA6MTk8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MTAwOTEwMDEzNC0yMDE3MTAxMDEwMDIwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwOTEwMDEzNC0yMDE3MTAxMDEw
MDIwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjEwLU9j
dC0yMDE3IDEyOjQ1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzEwMDkxMDAxMzQtMjAxNzEwMTAyMjAxMDIucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDkx
MDAxMzQtMjAxNzEwMTAyMjAxMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3Rk
PgorCQkJCTx0ZD4xMS1PY3QtMjAxNyAwMDozMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA5MTAwMTM0LTIwMTcxMDExMTAwMTMz
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcxMDA5MTAwMTM0LTIwMTcxMDExMTAwMTMzLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MTEtT2N0LTIwMTcgMTc6MDY8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwOTIyMDEw
NC0yMDE3MTAxMDEwMDIwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwOTIyMDEwNC0yMDE3MTAxMDEwMDIwMC5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjEwLU9jdC0yMDE3IDEy
OjQ1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzEwMDkyMjAxMDQtMjAxNzEwMTAyMjAxMDIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMDkyMjAxMDQtMjAx
NzEwMTAyMjAxMDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0
ZD4xMS1PY3QtMjAxNyAwMDozMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDA5MjIwMTA0LTIwMTcxMDExMTAwMTMzLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcxMDA5MjIwMTA0LTIwMTcxMDExMTAwMTMzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjhNPC90ZD4KKwkJCQk8dGQ+MTEtT2N0LTIwMTcgMTc6MDY8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAwOTIyMDEwNC0yMDE3MTAx
MTIyMDExMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LXg4Nl82NC1lbi1VUy0yMDE3MTAwOTIyMDEwNC0yMDE3MTAxMTIyMDExMy5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDAwOjMwPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEw
MTAxMDAyMDAtMjAxNzEwMTAyMjAxMDIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTAxMDAyMDAtMjAxNzEwMTAyMjAx
MDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xMS1PY3Qt
MjAxNyAwMDozMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcxMDEwMTAwMjAwLTIwMTcxMDExMTAwMTMzLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDEwMTAw
MjAwLTIwMTcxMDExMTAwMTMzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4K
KwkJCQk8dGQ+MTEtT2N0LTIwMTcgMTc6MDY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMDEwMDIwMC0yMDE3MTAxMTIyMDExMy5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1l
bi1VUy0yMDE3MTAxMDEwMDIwMC0yMDE3MTAxMTIyMDExMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDAwOjMwPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTAxMDAyMDAt
MjAxNzEwMTIxMDAyMjgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTAxMDAyMDAtMjAxNzEwMTIxMDAyMjgucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAxMzow
ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcxMDEwMTAwMjAwLTIwMTcxMDEyMTA1ODMzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDEwMTAwMjAwLTIwMTcx
MDEyMTA1ODMzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+
MTItT2N0LTIwMTcgMTU6MDU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMDIyMDEwMi0yMDE3MTAxMTEwMDEzMy5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MTAxMDIyMDEwMi0yMDE3MTAxMTEwMDEzMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43
TTwvdGQ+CisJCQkJPHRkPjExLU9jdC0yMDE3IDE3OjA2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTAyMjAxMDItMjAxNzEwMTEy
MjAxMTMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzEwMTAyMjAxMDItMjAxNzEwMTEyMjAxMTMucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAwMDozMDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDEw
MjIwMTAyLTIwMTcxMDEyMTAwMjI4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDEwMjIwMTAyLTIwMTcxMDEyMTAwMjI4
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTItT2N0LTIw
MTcgMTM6MDc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82
NC1lbi1VUy0yMDE3MTAxMDIyMDEwMi0yMDE3MTAxMjEwNTgzMy5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMDIyMDEw
Mi0yMDE3MTAxMjEwNTgzMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJ
CQkJPHRkPjEyLU9jdC0yMDE3IDE1OjA1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTExMDAxMzMtMjAxNzEwMTEyMjAxMTMucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzEwMTExMDAxMzMtMjAxNzEwMTEyMjAxMTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAwMDozMDwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDExMTAwMTMzLTIw
MTcxMDEyMTAwMjI4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDExMTAwMTMzLTIwMTcxMDEyMTAwMjI4LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTItT2N0LTIwMTcgMTM6MDc8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MTAxMTEwMDEzMy0yMDE3MTAxMjEwNTgzMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMTEwMDEzMy0yMDE3MTAx
MjEwNTgzMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjEy
LU9jdC0yMDE3IDE1OjA1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzEwMTExMDAxMzMtMjAxNzEwMTIyMjAxMTEucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEw
MTExMDAxMzMtMjAxNzEwMTIyMjAxMTEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08
L3RkPgorCQkJCTx0ZD4xMy1PY3QtMjAxNyAwMDoxNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDExMjIwMTEzLTIwMTcxMDEyMTAw
MjI4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcxMDExMjIwMTEzLTIwMTcxMDEyMTAwMjI4LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTItT2N0LTIwMTcgMTM6MDg8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMTIy
MDExMy0yMDE3MTAxMjEwNTgzMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMTIyMDExMy0yMDE3MTAxMjEwNTgzMy5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3
IDE1OjA1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzEwMTEyMjAxMTMtMjAxNzEwMTIyMjAxMTEucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTEyMjAxMTMt
MjAxNzEwMTIyMjAxMTEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJ
CTx0ZD4xMy1PY3QtMjAxNyAwMDoxNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDExMjIwMTEzLTIwMTcxMDEzMTAwMTEyLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcxMDExMjIwMTEzLTIwMTcxMDEzMTAwMTEyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjlNPC90ZD4KKwkJCQk8dGQ+MTMtT2N0LTIwMTcgMTI6MTk8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMjEwMDIyOC0yMDE3
MTAxMjIyMDExMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMjEwMDIyOC0yMDE3MTAxMjIyMDExMS5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjEzLU9jdC0yMDE3IDAwOjE3PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzEwMTIxMDAyMjgtMjAxNzEwMTMxMDAxMTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTIxMDAyMjgtMjAxNzEwMTMx
MDAxMTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4xMy1P
Y3QtMjAxNyAxMjoxOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcxMDEyMTAwMjI4LTIwMTcxMDEzMjIwMjA0LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDEy
MTAwMjI4LTIwMTcxMDEzMjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90
ZD4KKwkJCQk8dGQ+MTQtT2N0LTIwMTcgMDA6NTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMjEwNTgzMy0yMDE3MTAxMjIyMDEx
MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82
NC1lbi1VUy0yMDE3MTAxMjEwNTgzMy0yMDE3MTAxMjIyMDExMS5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjEzLU9jdC0yMDE3IDAwOjE3PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTIxMDU4
MzMtMjAxNzEwMTMxMDAxMTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTIxMDU4MzMtMjAxNzEwMTMxMDAxMTIucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4xMy1PY3QtMjAxNyAx
MjoxOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcxMDEyMTA1ODMzLTIwMTcxMDEzMjIwMjA0LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDEyMTA1ODMzLTIw
MTcxMDEzMjIwMjA0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8
dGQ+MTQtT2N0LTIwMTcgMDA6NTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMjEwNTgzMy0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MTAxMjEwNTgzMy0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD4xME08L3RkPgorCQkJCTx0ZD4xNC1PY3QtMjAxNyAxMjowOTwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDEyMjIwMTExLTIwMTcx
MDEzMTAwMTEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcxMDEyMjIwMTExLTIwMTcxMDEzMTAwMTEyLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTMtT2N0LTIwMTcgMTI6MTk8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MTAxMjIyMDExMS0yMDE3MTAxMzIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMjIyMDExMS0yMDE3MTAxMzIy
MDIwNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE0LU9j
dC0yMDE3IDAwOjUyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzEwMTIyMjAxMTEtMjAxNzEwMTQxMDAyMTkucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTIy
MjAxMTEtMjAxNzEwMTQxMDAyMTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTBNPC90
ZD4KKwkJCQk8dGQ+MTQtT2N0LTIwMTcgMTI6MDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMjIyMDExMS0yMDE3MTAxNDIyMDU0
Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82
NC1lbi1VUy0yMDE3MTAxMjIyMDExMS0yMDE3MTAxNDIyMDU0Mi5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD4xME08L3RkPgorCQkJCTx0ZD4xNS1PY3QtMjAxNyAwMToxODwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDEzMTAw
MTEyLTIwMTcxMDEzMjIwMjA0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDEzMTAwMTEyLTIwMTcxMDEzMjIwMjA0LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTQtT2N0LTIwMTcg
MDA6NTI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1l
bi1VUy0yMDE3MTAxMzEwMDExMi0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMzEwMDExMi0y
MDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJ
PHRkPjE0LU9jdC0yMDE3IDEyOjA5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTMxMDAxMTItMjAxNzEwMTQyMjA1NDIucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzEwMTMxMDAxMTItMjAxNzEwMTQyMjA1NDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+OU08L3RkPgorCQkJCTx0ZD4xNS1PY3QtMjAxNyAwMToxODwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDEzMTAwMTEyLTIwMTcx
MDE1MTAwMTI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcxMDEzMTAwMTEyLTIwMTcxMDE1MTAwMTI3LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MTUtT2N0LTIwMTcgMTM6MDE8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MTAxMzIyMDIwNC0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMzIyMDIwNC0yMDE3MTAxNDEw
MDIxOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE0LU9j
dC0yMDE3IDEyOjA5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzEwMTMyMjAyMDQtMjAxNzEwMTQyMjA1NDIucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTMy
MjAyMDQtMjAxNzEwMTQyMjA1NDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3Rk
PgorCQkJCTx0ZD4xNS1PY3QtMjAxNyAwMToxODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDEzMjIwMjA0LTIwMTcxMDE1MTAwMTI3
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcxMDEzMjIwMjA0LTIwMTcxMDE1MTAwMTI3LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTUtT2N0LTIwMTcgMTM6MDI8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMzIyMDIw
NC0yMDE3MTAxNTIyMDEwNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxMzIyMDIwNC0yMDE3MTAxNTIyMDEwNi5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE2LU9jdC0yMDE3IDAx
OjQxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzEwMTQxMDAyMTktMjAxNzEwMTQyMjA1NDIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTQxMDAyMTktMjAx
NzEwMTQyMjA1NDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0
ZD4xNS1PY3QtMjAxNyAwMToxODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE0MTAwMjE5LTIwMTcxMDE1MTAwMTI3LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcxMDE0MTAwMjE5LTIwMTcxMDE1MTAwMTI3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjZNPC90ZD4KKwkJCQk8dGQ+MTUtT2N0LTIwMTcgMTM6MDE8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNDEwMDIxOS0yMDE3MTAx
NTIyMDEwNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LXg4Nl82NC1lbi1VUy0yMDE3MTAxNDEwMDIxOS0yMDE3MTAxNTIyMDEwNi5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE2LU9jdC0yMDE3IDAxOjQwPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEw
MTQxMDAyMTktMjAxNzEwMTYxMDAxMTMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTQxMDAyMTktMjAxNzEwMTYxMDAx
MTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xNi1PY3Qt
MjAxNyAxMjo0ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcxMDE0MjIwNTQyLTIwMTcxMDE1MTAwMTI3LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE0MjIw
NTQyLTIwMTcxMDE1MTAwMTI3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4K
KwkJCQk8dGQ+MTUtT2N0LTIwMTcgMTM6MDE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNDIyMDU0Mi0yMDE3MTAxNTIyMDEwNi5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1l
bi1VUy0yMDE3MTAxNDIyMDU0Mi0yMDE3MTAxNTIyMDEwNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjE2LU9jdC0yMDE3IDAxOjQxPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTQyMjA1NDIt
MjAxNzEwMTYxMDAxMTMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTQyMjA1NDItMjAxNzEwMTYxMDAxMTMucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xNi1PY3QtMjAxNyAxMjo0
OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcxMDE0MjIwNTQyLTIwMTcxMDE2MjIwNDI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE0MjIwNTQyLTIwMTcx
MDE2MjIwNDI3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+
MTctT2N0LTIwMTcgMDE6Mjk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNTEwMDEyNy0yMDE3MTAxNTIyMDEwNi5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MTAxNTEwMDEyNy0yMDE3MTAxNTIyMDEwNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41
TTwvdGQ+CisJCQkJPHRkPjE2LU9jdC0yMDE3IDAxOjQwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTUxMDAxMjctMjAxNzEwMTYx
MDAxMTMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzEwMTUxMDAxMjctMjAxNzEwMTYxMDAxMTMucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xNi1PY3QtMjAxNyAxMjo0ODwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE1
MTAwMTI3LTIwMTcxMDE2MjIwNDI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE1MTAwMTI3LTIwMTcxMDE2MjIwNDI3
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTctT2N0LTIw
MTcgMDE6MzA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82
NC1lbi1VUy0yMDE3MTAxNTEwMDEyNy0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNTEwMDEy
Ny0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJ
CQkJPHRkPjE3LU9jdC0yMDE3IDEyOjQwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTUyMjAxMDYtMjAxNzEwMTYxMDAxMTMucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzEwMTUyMjAxMDYtMjAxNzEwMTYxMDAxMTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xNi1PY3QtMjAxNyAxMjo0ODwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE1MjIwMTA2LTIw
MTcxMDE2MjIwNDI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE1MjIwMTA2LTIwMTcxMDE2MjIwNDI3LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTctT2N0LTIwMTcgMDE6Mjk8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MTAxNTIyMDEwNi0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNTIyMDEwNi0yMDE3MTAx
NzEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE3
LU9jdC0yMDE3IDEyOjQwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzEwMTUyMjAxMDYtMjAxNzEwMTcxNDEyMjkucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEw
MTUyMjAxMDYtMjAxNzEwMTcxNDEyMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08
L3RkPgorCQkJCTx0ZD4xNy1PY3QtMjAxNyAxNzowODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE2MTAwMTEzLTIwMTcxMDE2MjIw
NDI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcxMDE2MTAwMTEzLTIwMTcxMDE2MjIwNDI3LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTctT2N0LTIwMTcgMDE6MzA8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNjEw
MDExMy0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNjEwMDExMy0yMDE3MTAxNzEwMDEyNy5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3
IDEyOjQwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzEwMTYxMDAxMTMtMjAxNzEwMTcxNDEyMjkucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTYxMDAxMTMt
MjAxNzEwMTcxNDEyMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJ
CTx0ZD4xNy1PY3QtMjAxNyAxNzowODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE2MTAwMTEzLTIwMTcxMDE3MjIwNDE1LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcxMDE2MTAwMTEzLTIwMTcxMDE3MjIwNDE1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTgtT2N0LTIwMTcgMDE6MTg8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNjIyMDQyNy0yMDE3
MTAxNzEwMDEyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNjIyMDQyNy0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDEyOjQwPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzEwMTYyMjA0MjctMjAxNzEwMTcxNDEyMjkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTYyMjA0MjctMjAxNzEwMTcx
NDEyMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xNy1P
Y3QtMjAxNyAxNzowODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcxMDE2MjIwNDI3LTIwMTcxMDE3MjIwNDE1LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE2
MjIwNDI3LTIwMTcxMDE3MjIwNDE1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90
ZD4KKwkJCQk8dGQ+MTgtT2N0LTIwMTcgMDE6MTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNjIyMDQyNy0yMDE3MTAxODEwMDE0
MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82
NC1lbi1VUy0yMDE3MTAxNjIyMDQyNy0yMDE3MTAxODEwMDE0MC5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE4LU9jdC0yMDE3IDEyOjM3PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTcxMDAx
MjctMjAxNzEwMTcxNDEyMjkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTcxMDAxMjctMjAxNzEwMTcxNDEyMjkucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4xNy1PY3QtMjAxNyAx
NzowODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcxMDE3MTAwMTI3LTIwMTcxMDE3MjIwNDE1LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE3MTAwMTI3LTIw
MTcxMDE3MjIwNDE1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8
dGQ+MTgtT2N0LTIwMTcgMDE6MTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNzEwMDEyNy0yMDE3MTAxODEwMDE0MC5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MTAxNzEwMDEyNy0yMDE3MTAxODEwMDE0MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD44TTwvdGQ+CisJCQkJPHRkPjE4LU9jdC0yMDE3IDEyOjM3PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTcxMDAxMjctMjAxNzEw
MTgyMjAwNDkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzEwMTcxMDAxMjctMjAxNzEwMTgyMjAwNDkucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xOS1PY3QtMjAxNyAwMTowNDwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcx
MDE3MTQxMjI5LTIwMTcxMDE3MjIwNDE1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE3MTQxMjI5LTIwMTcxMDE3MjIw
NDE1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTgtT2N0
LTIwMTcgMDE6MTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MTAxNzE0MTIyOS0yMDE3MTAxODEwMDE0MC5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNzE0
MTIyOS0yMDE3MTAxODEwMDE0MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+
CisJCQkJPHRkPjE4LU9jdC0yMDE3IDEyOjM3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTcxNDEyMjktMjAxNzEwMTgyMjAwNDku
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzEwMTcxNDEyMjktMjAxNzEwMTgyMjAwNDkucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xOS1PY3QtMjAxNyAwMTowNDwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE3MTQxMjI5
LTIwMTcxMDE5MTAwMTA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE3MTQxMjI5LTIwMTcxMDE5MTAwMTA3LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTktT2N0LTIwMTcgMTI6
NDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MTAxNzIyMDQxNS0yMDE3MTAxODEwMDE0MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNzIyMDQxNS0yMDE3
MTAxODEwMDE0MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRk
PjE4LU9jdC0yMDE3IDEyOjM3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTcyMjA0MTUtMjAxNzEwMTgyMjAwNDkucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzEwMTcyMjA0MTUtMjAxNzEwMTgyMjAwNDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
OE08L3RkPgorCQkJCTx0ZD4xOS1PY3QtMjAxNyAwMTowNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE3MjIwNDE1LTIwMTcxMDE5
MTAwMTA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcxMDE3MjIwNDE1LTIwMTcxMDE5MTAwMTA3LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTktT2N0LTIwMTcgMTI6NDM8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAx
NzIyMDQxNS0yMDE3MTAxOTIyMjE0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxNzIyMDQxNS0yMDE3MTAxOTIyMjE0
MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjIwLU9jdC0y
MDE3IDAxOjMyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzEwMTgxMDAxNDAtMjAxNzEwMTgyMjAwNDkucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTgxMDAx
NDAtMjAxNzEwMTgyMjAwNDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgor
CQkJCTx0ZD4xOS1PY3QtMjAxNyAwMTowNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE4MTAwMTQwLTIwMTcxMDE5MTAwMTA3LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcxMDE4MTAwMTQwLTIwMTcxMDE5MTAwMTA3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTktT2N0LTIwMTcgMTI6NDM8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxODEwMDE0MC0y
MDE3MTAxOTIyMjE0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxODEwMDE0MC0yMDE3MTAxOTIyMjE0MS5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjIwLU9jdC0yMDE3IDAxOjMy
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzEwMTgxMDAxNDAtMjAxNzEwMjAxMDA0MjYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTgxMDAxNDAtMjAxNzEw
MjAxMDA0MjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4y
MC1PY3QtMjAxNyAxMjozMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcxMDE4MjIwMDQ5LTIwMTcxMDE5MTAwMTA3LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcx
MDE4MjIwMDQ5LTIwMTcxMDE5MTAwMTA3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdN
PC90ZD4KKwkJCQk8dGQ+MTktT2N0LTIwMTcgMTI6NDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxODIyMDA0OS0yMDE3MTAxOTIy
MjE0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MTAxODIyMDA0OS0yMDE3MTAxOTIyMjE0MS5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjIwLU9jdC0yMDE3IDAxOjMyPC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTgy
MjAwNDktMjAxNzEwMjAxMDA0MjYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTgyMjAwNDktMjAxNzEwMjAxMDA0MjYu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yMC1PY3QtMjAx
NyAxMjozMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcxMDE4MjIwMDQ5LTIwMTcxMDIwMjIxMTI5LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE4MjIwMDQ5
LTIwMTcxMDIwMjIxMTI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJ
CQk8dGQ+MjEtT2N0LTIwMTcgMDE6MDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxOTEwMDEwNy0yMDE3MTAxOTIyMjE0MS5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MTAxOTEwMDEwNy0yMDE3MTAxOTIyMjE0MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIwLU9jdC0yMDE3IDAxOjMyPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTkxMDAxMDctMjAx
NzEwMjAxMDA0MjYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTkxMDAxMDctMjAxNzEwMjAxMDA0MjYucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMC1PY3QtMjAxNyAxMjozMTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcxMDE5MTAwMTA3LTIwMTcxMDIwMjIxMTI5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE5MTAwMTA3LTIwMTcxMDIw
MjIxMTI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjEt
T2N0LTIwMTcgMDE6MDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LXg4Nl82NC1lbi1VUy0yMDE3MTAxOTEwMDEwNy0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAx
OTEwMDEwNy0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwv
dGQ+CisJCQkJPHRkPjIxLU9jdC0yMDE3IDEyOjI5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTkyMjIxNDEtMjAxNzEwMjAxMDA0
MjYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzEwMTkyMjIxNDEtMjAxNzEwMjAxMDA0MjYucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMC1PY3QtMjAxNyAxMjozMTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE5MjIy
MTQxLTIwMTcxMDIwMjIxMTI5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDE5MjIyMTQxLTIwMTcxMDIwMjIxMTI5LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjEtT2N0LTIwMTcg
MDE6MDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1l
bi1VUy0yMDE3MTAxOTIyMjE0MS0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAxOTIyMjE0MS0y
MDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJ
PHRkPjIxLU9jdC0yMDE3IDEyOjMwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMTkyMjIxNDEtMjAxNzEwMjEyMjAxMjEucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzEwMTkyMjIxNDEtMjAxNzEwMjEyMjAxMjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+N008L3RkPgorCQkJCTx0ZD4yMi1PY3QtMjAxNyAwMjoxNDwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDIwMTAwNDI2LTIwMTcx
MDIwMjIxMTI5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcxMDIwMTAwNDI2LTIwMTcxMDIwMjIxMTI5LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjEtT2N0LTIwMTcgMDE6MDA8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MTAyMDEwMDQyNi0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMDEwMDQyNi0yMDE3MTAyMTEw
MDAyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIxLU9j
dC0yMDE3IDEyOjMwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzEwMjAxMDA0MjYtMjAxNzEwMjEyMjAxMjEucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjAx
MDA0MjYtMjAxNzEwMjEyMjAxMjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3Rk
PgorCQkJCTx0ZD4yMi1PY3QtMjAxNyAwMjoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDIwMTAwNDI2LTIwMTcxMDIyMTAwMDU4
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcxMDIwMTAwNDI2LTIwMTcxMDIyMTAwMDU4LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjItT2N0LTIwMTcgMTI6MzY8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMDIyMTEy
OS0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMDIyMTEyOS0yMDE3MTAyMTEwMDAyOS5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIxLU9jdC0yMDE3IDEy
OjI5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzEwMjAyMjExMjktMjAxNzEwMjEyMjAxMjEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjAyMjExMjktMjAx
NzEwMjEyMjAxMjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0
ZD4yMi1PY3QtMjAxNyAwMjoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDIwMjIxMTI5LTIwMTcxMDIyMTAwMDU4LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcxMDIwMjIxMTI5LTIwMTcxMDIyMTAwMDU4LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjdNPC90ZD4KKwkJCQk8dGQ+MjItT2N0LTIwMTcgMTI6MzY8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMDIyMTEyOS0yMDE3MTAy
MjIyMDEwMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LXg4Nl82NC1lbi1VUy0yMDE3MTAyMDIyMTEyOS0yMDE3MTAyMjIyMDEwMy5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjIzLU9jdC0yMDE3IDAwOjM0PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEw
MjExMDAwMjktMjAxNzEwMjEyMjAxMjEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjExMDAwMjktMjAxNzEwMjEyMjAx
MjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yMi1PY3Qt
MjAxNyAwMjoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcxMDIxMTAwMDI5LTIwMTcxMDIyMTAwMDU4LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDIxMTAw
MDI5LTIwMTcxMDIyMTAwMDU4LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4K
KwkJCQk8dGQ+MjItT2N0LTIwMTcgMTI6MzY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMTEwMDAyOS0yMDE3MTAyMjIyMDEwMy5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1l
bi1VUy0yMDE3MTAyMTEwMDAyOS0yMDE3MTAyMjIyMDEwMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIzLU9jdC0yMDE3IDAwOjM0PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjExMDAwMjkt
MjAxNzEwMjMxMDAyNTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjExMDAwMjktMjAxNzEwMjMxMDAyNTIucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMy1PY3QtMjAxNyAxMjoz
ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcxMDIxMjIwMTIxLTIwMTcxMDIyMTAwMDU4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDIxMjIwMTIxLTIwMTcx
MDIyMTAwMDU4LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+
MjItT2N0LTIwMTcgMTI6MzY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMTIyMDEyMS0yMDE3MTAyMjIyMDEwMy5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MTAyMTIyMDEyMS0yMDE3MTAyMjIyMDEwMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43
TTwvdGQ+CisJCQkJPHRkPjIzLU9jdC0yMDE3IDAwOjM0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjEyMjAxMjEtMjAxNzEwMjMx
MDAyNTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzEwMjEyMjAxMjEtMjAxNzEwMjMxMDAyNTIucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMy1PY3QtMjAxNyAxMjozODwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDIx
MjIwMTIxLTIwMTcxMDIzMjIwMjIyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDIxMjIwMTIxLTIwMTcxMDIzMjIwMjIy
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjQtT2N0LTIw
MTcgMDA6MDc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82
NC1lbi1VUy0yMDE3MTAyMjEwMDA1OC0yMDE3MTAyMjIyMDEwMy5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMjEwMDA1
OC0yMDE3MTAyMjIyMDEwMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJ
CQkJPHRkPjIzLU9jdC0yMDE3IDAwOjM0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjIxMDAwNTgtMjAxNzEwMjMxMDAyNTIucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzEwMjIxMDAwNTgtMjAxNzEwMjMxMDAyNTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMy1PY3QtMjAxNyAxMjozODwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDIyMTAwMDU4LTIw
MTcxMDIzMjIwMjIyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDIyMTAwMDU4LTIwMTcxMDIzMjIwMjIyLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjQtT2N0LTIwMTcgMDA6MDc8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MTAyMjEwMDA1OC0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMjEwMDA1OC0yMDE3MTAy
NDEwMDEzNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjI0
LU9jdC0yMDE3IDEyOjMyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzEwMjIyMjAxMDMtMjAxNzEwMjMxMDAyNTIucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEw
MjIyMjAxMDMtMjAxNzEwMjMxMDAyNTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008
L3RkPgorCQkJCTx0ZD4yMy1PY3QtMjAxNyAxMjozODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDIyMjIwMTAzLTIwMTcxMDIzMjIw
MjIyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcxMDIyMjIwMTAzLTIwMTcxMDIzMjIwMjIyLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjQtT2N0LTIwMTcgMDA6MDc8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMjIy
MDEwMy0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMjIyMDEwMy0yMDE3MTAyNDEwMDEzNS5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjI0LU9jdC0yMDE3
IDEyOjMyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzEwMjIyMjAxMDMtMjAxNzEwMjQyMjAzMjUucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjIyMjAxMDMt
MjAxNzEwMjQyMjAzMjUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJ
CTx0ZD4yNS1PY3QtMjAxNyAwMDoxODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDIzMTAwMjUyLTIwMTcxMDIzMjIwMjIyLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcxMDIzMTAwMjUyLTIwMTcxMDIzMjIwMjIyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjQtT2N0LTIwMTcgMDA6MDg8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMzEwMDI1Mi0yMDE3
MTAyNDEwMDEzNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMzEwMDI1Mi0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjI0LU9jdC0yMDE3IDEyOjMyPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzEwMjMxMDAyNTItMjAxNzEwMjQyMjAzMjUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjMxMDAyNTItMjAxNzEwMjQy
MjAzMjUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yNS1P
Y3QtMjAxNyAwMDoxODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcxMDIzMTAwMjUyLTIwMTcxMDI1MTAwNDQ5LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDIz
MTAwMjUyLTIwMTcxMDI1MTAwNDQ5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90
ZD4KKwkJCQk8dGQ+MjUtT2N0LTIwMTcgMTI6Mzg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMzIyMDIyMi0yMDE3MTAyNDEwMDEz
NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82
NC1lbi1VUy0yMDE3MTAyMzIyMDIyMi0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI0LU9jdC0yMDE3IDEyOjMyPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjMyMjAy
MjItMjAxNzEwMjQyMjAzMjUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjMyMjAyMjItMjAxNzEwMjQyMjAzMjUucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNS1PY3QtMjAxNyAw
MDoxODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcxMDIzMjIwMjIyLTIwMTcxMDI1MTAwNDQ5LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDIzMjIwMjIyLTIw
MTcxMDI1MTAwNDQ5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8
dGQ+MjUtT2N0LTIwMTcgMTI6Mzg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyMzIyMDIyMi0yMDE3MTAyNTIzMDQ0MC5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MTAyMzIyMDIyMi0yMDE3MTAyNTIzMDQ0MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD44TTwvdGQ+CisJCQkJPHRkPjI2LU9jdC0yMDE3IDAyOjI3PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjQxMDAxMzUtMjAxNzEw
MjQyMjAzMjUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzEwMjQxMDAxMzUtMjAxNzEwMjQyMjAzMjUucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNS1PY3QtMjAxNyAwMDoxODwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcx
MDI0MTAwMTM1LTIwMTcxMDI1MTAwNDQ5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI0MTAwMTM1LTIwMTcxMDI1MTAw
NDQ5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjUtT2N0
LTIwMTcgMTI6Mzg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MTAyNDEwMDEzNS0yMDE3MTAyNTIzMDQ0MC5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyNDEw
MDEzNS0yMDE3MTAyNTIzMDQ0MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+
CisJCQkJPHRkPjI2LU9jdC0yMDE3IDAyOjI3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjQxMDAxMzUtMjAxNzEwMjYxMDAwNDcu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzEwMjQxMDAxMzUtMjAxNzEwMjYxMDAwNDcucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yNi1PY3QtMjAxNyAxNDo1NDwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI0MjIwMzI1
LTIwMTcxMDI1MTAwNDQ5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI0MjIwMzI1LTIwMTcxMDI1MTAwNDQ5LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjUtT2N0LTIwMTcgMTI6
Mzg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MTAyNDIyMDMyNS0yMDE3MTAyNTIzMDQ0MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyNDIyMDMyNS0yMDE3
MTAyNTIzMDQ0MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRk
PjI2LU9jdC0yMDE3IDAyOjI3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjQyMjAzMjUtMjAxNzEwMjYxMDAwNDcucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzEwMjQyMjAzMjUtMjAxNzEwMjYxMDAwNDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
OE08L3RkPgorCQkJCTx0ZD4yNi1PY3QtMjAxNyAxNDo1NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI0MjIwMzI1LTIwMTcxMDI2
MjIxOTQ1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcxMDI0MjIwMzI1LTIwMTcxMDI2MjIxOTQ1LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjctT2N0LTIwMTcgMDI6Mjk8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAy
NTEwMDQ0OS0yMDE3MTAyNTIzMDQ0MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyNTEwMDQ0OS0yMDE3MTAyNTIzMDQ0
MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI2LU9jdC0y
MDE3IDAyOjI3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzEwMjUxMDA0NDktMjAxNzEwMjYxMDAwNDcucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjUxMDA0
NDktMjAxNzEwMjYxMDAwNDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgor
CQkJCTx0ZD4yNi1PY3QtMjAxNyAxNDo1NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI1MTAwNDQ5LTIwMTcxMDI2MjIxOTQ1LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcxMDI1MTAwNDQ5LTIwMTcxMDI2MjIxOTQ1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjctT2N0LTIwMTcgMDI6Mjk8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyNTEwMDQ0OS0y
MDE3MTAyNzEwMDEwMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyNTEwMDQ0OS0yMDE3MTAyNzEwMDEwMy5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjI3LU9jdC0yMDE3IDE1OjEx
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzEwMjUyMzA0NDAtMjAxNzEwMjYxMDAwNDcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjUyMzA0NDAtMjAxNzEw
MjYxMDAwNDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4y
Ni1PY3QtMjAxNyAxNDo1MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcxMDI1MjMwNDQwLTIwMTcxMDI2MjIxOTQ1LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcx
MDI1MjMwNDQwLTIwMTcxMDI2MjIxOTQ1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhN
PC90ZD4KKwkJCQk8dGQ+MjctT2N0LTIwMTcgMDI6Mjk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyNTIzMDQ0MC0yMDE3MTAyNzEw
MDEwMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MTAyNTIzMDQ0MC0yMDE3MTAyNzEwMDEwMy5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI3LU9jdC0yMDE3IDE1OjExPC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjUy
MzA0NDAtMjAxNzEwMjcyMjAwNTkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjUyMzA0NDAtMjAxNzEwMjcyMjAwNTku
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yOC1PY3QtMjAx
NyAwMjoyMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcxMDI2MTAwMDQ3LTIwMTcxMDI2MjIxOTQ1LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI2MTAwMDQ3
LTIwMTcxMDI2MjIxOTQ1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJ
CQk8dGQ+MjctT2N0LTIwMTcgMDI6Mjk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyNjEwMDA0Ny0yMDE3MTAyNzEwMDEwMy5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MTAyNjEwMDA0Ny0yMDE3MTAyNzEwMDEwMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI3LU9jdC0yMDE3IDE1OjExPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjYxMDAwNDctMjAx
NzEwMjcyMjAwNTkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjYxMDAwNDctMjAxNzEwMjcyMjAwNTkucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4yOC1PY3QtMjAxNyAwMjoyMzwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcxMDI2MTAwMDQ3LTIwMTcxMDI4MTAwNDIzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI2MTAwMDQ3LTIwMTcxMDI4
MTAwNDIzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+Mjgt
T2N0LTIwMTcgMTQ6MDE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LXg4Nl82NC1lbi1VUy0yMDE3MTAyNjIyMTk0NS0yMDE3MTAyNzEwMDEwMy5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAy
NjIyMTk0NS0yMDE3MTAyNzEwMDEwMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwv
dGQ+CisJCQkJPHRkPjI3LU9jdC0yMDE3IDE1OjExPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjYyMjE5NDUtMjAxNzEwMjcyMjAw
NTkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzEwMjYyMjE5NDUtMjAxNzEwMjcyMjAwNTkucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yOC1PY3QtMjAxNyAwMjoyMzwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI2MjIx
OTQ1LTIwMTcxMDI4MTAwNDIzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI2MjIxOTQ1LTIwMTcxMDI4MTAwNDIzLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjgtT2N0LTIwMTcg
MTQ6MDE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1l
bi1VUy0yMDE3MTAyNjIyMTk0NS0yMDE3MTAyODIyMDMyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyNjIyMTk0NS0y
MDE3MTAyODIyMDMyNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJ
PHRkPjI5LU9jdC0yMDE3IDAxOjEwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjcxMDAxMDMtMjAxNzEwMjcyMjAwNTkucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzEwMjcxMDAxMDMtMjAxNzEwMjcyMjAwNTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+N008L3RkPgorCQkJCTx0ZD4yOC1PY3QtMjAxNyAwMjoyMzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcx
MDI4MTAwNDIzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI4MTAwNDIzLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjgtT2N0LTIwMTcgMTQ6MDE8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MTAyNzEwMDEwMy0yMDE3MTAyODIyMDMyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyNzEwMDEwMy0yMDE3MTAyODIy
MDMyNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI5LU9j
dC0yMDE3IDAxOjEwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzEwMjcxMDAxMDMtMjAxNzEwMjkxMDIzMDAucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjcx
MDAxMDMtMjAxNzEwMjkxMDIzMDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3Rk
PgorCQkJCTx0ZD4yOS1PY3QtMjAxNyAxNDozNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI3MjIwMDU5LTIwMTcxMDI4MTAwNDIz
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcxMDI3MjIwMDU5LTIwMTcxMDI4MTAwNDIzLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjgtT2N0LTIwMTcgMTQ6MDE8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyNzIyMDA1
OS0yMDE3MTAyODIyMDMyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyNzIyMDA1OS0yMDE3MTAyODIyMDMyNi5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI5LU9jdC0yMDE3IDAx
OjEwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzEwMjcyMjAwNTktMjAxNzEwMjkxMDIzMDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjcyMjAwNTktMjAx
NzEwMjkxMDIzMDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0
ZD4yOS1PY3QtMjAxNyAxNDozNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI3MjIwMDU5LTIwMTcxMDI5MjIwMTEyLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcxMDI3MjIwMDU5LTIwMTcxMDI5MjIwMTEyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjdNPC90ZD4KKwkJCQk8dGQ+MzAtT2N0LTIwMTcgMDM6MDE8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyODEwMDQyMy0yMDE3MTAy
ODIyMDMyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LXg4Nl82NC1lbi1VUy0yMDE3MTAyODEwMDQyMy0yMDE3MTAyODIyMDMyNi5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI5LU9jdC0yMDE3IDAxOjEwPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEw
MjgxMDA0MjMtMjAxNzEwMjkxMDIzMDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjgxMDA0MjMtMjAxNzEwMjkxMDIz
MDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yOS1PY3Qt
MjAxNyAxNDozNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcxMDI4MTAwNDIzLTIwMTcxMDI5MjIwMTEyLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI4MTAw
NDIzLTIwMTcxMDI5MjIwMTEyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4K
KwkJCQk8dGQ+MzAtT2N0LTIwMTcgMDM6MDE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyODEwMDQyMy0yMDE3MTAzMDEwMzYwNS5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1l
bi1VUy0yMDE3MTAyODEwMDQyMy0yMDE3MTAzMDEwMzYwNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjMwLU9jdC0yMDE3IDE5OjQxPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjgyMjAzMjYt
MjAxNzEwMjkxMDIzMDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEwMjkxMDIzMDAucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yOS1PY3QtMjAxNyAxNDoz
NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcxMDI4MjIwMzI2LTIwMTcxMDI5MjIwMTEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI4MjIwMzI2LTIwMTcx
MDI5MjIwMTEyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+
MzAtT2N0LTIwMTcgMDM6MDE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyODIyMDMyNi0yMDE3MTAzMDEwMzYwNS5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MTAyODIyMDMyNi0yMDE3MTAzMDEwMzYwNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43
TTwvdGQ+CisJCQkJPHRkPjMwLU9jdC0yMDE3IDE5OjQxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEwMzEy
MjAxMzIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEwMzEyMjAxMzIucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAwMzoyMzwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI4
MjIwMzI2LTIwMTcxMDMxMjM1MTE4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI4MjIwMzI2LTIwMTcxMDMxMjM1MTE4
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIw
MTcgMTA6MTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82
NC1lbi1VUy0yMDE3MTAyOTEwMjMwMC0yMDE3MTAyOTIyMDExMi5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyOTEwMjMw
MC0yMDE3MTAyOTIyMDExMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJ
CQkJPHRkPjMwLU9jdC0yMDE3IDAzOjAxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjkxMDIzMDAtMjAxNzEwMzAxMDM2MDUucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzEwMjkxMDIzMDAtMjAxNzEwMzAxMDM2MDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+N008L3RkPgorCQkJCTx0ZD4zMC1PY3QtMjAxNyAxOTo0MTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI5MTAyMzAwLTIw
MTcxMDMxMjIwMTMyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI5MTAyMzAwLTIwMTcxMDMxMjIwMTMyLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMDM6MjM8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MTAyOTEwMjMwMC0yMDE3MTAzMTIzNTExOC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyOTEwMjMwMC0yMDE3MTAz
MTIzNTExOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjAx
LU5vdi0yMDE3IDEwOjE5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzEwMjkyMjAxMTItMjAxNzEwMzAxMDM2MDUucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEw
MjkyMjAxMTItMjAxNzEwMzAxMDM2MDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008
L3RkPgorCQkJCTx0ZD4zMC1PY3QtMjAxNyAxOTo0MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDI5MjIwMTEyLTIwMTcxMDMxMjIw
MTMyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2
XzY0LWVuLVVTLTIwMTcxMDI5MjIwMTEyLTIwMTcxMDMxMjIwMTMyLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMDM6MjQ8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyOTIy
MDExMi0yMDE3MTAzMTIzNTExOC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAyOTIyMDExMi0yMDE3MTAzMTIzNTExOC5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjAxLU5vdi0yMDE3
IDEwOjE5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzEwMjkyMjAxMTItMjAxNzExMDExMDQ0MzAucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMjkyMjAxMTIt
MjAxNzExMDExMDQ0MzAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJ
CTx0ZD4wMS1Ob3YtMjAxNyAxNjo1NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDMwMTAzNjA1LTIwMTcxMDMxMjIwMTMyLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVT
LTIwMTcxMDMwMTAzNjA1LTIwMTcxMDMxMjIwMTMyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMDM6MjM8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAzMDEwMzYwNS0yMDE3
MTAzMTIzNTExOC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxp
bnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAzMDEwMzYwNS0yMDE3MTAzMTIzNTExOC5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjAxLU5vdi0yMDE3IDEwOjIwPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzEwMzAxMDM2MDUtMjAxNzExMDExMDQ0MzAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMzAxMDM2MDUtMjAxNzExMDEx
MDQ0MzAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wMS1O
b3YtMjAxNyAxNjo1NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcxMDMwMTAzNjA1LTIwMTcxMTAxMjIwMTIwLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDMw
MTAzNjA1LTIwMTcxMTAxMjIwMTIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90
ZD4KKwkJCQk8dGQ+MDItTm92LTIwMTcgMDA6MDQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAzMTIyMDEzMi0yMDE3MTEwMTEwNDQz
MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82
NC1lbi1VUy0yMDE3MTAzMTIyMDEzMi0yMDE3MTEwMTEwNDQzMC5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAxLU5vdi0yMDE3IDE2OjU0PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMzEyMjAx
MzItMjAxNzExMDEyMjAxMjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMzEyMjAxMzItMjAxNzExMDEyMjAxMjAucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMi1Ob3YtMjAxNyAw
MDowNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcxMDMxMjIwMTMyLTIwMTcxMTAyMjIyNjIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDMxMjIwMTMyLTIw
MTcxMTAyMjIyNjIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8
dGQ+MDMtTm92LTIwMTcgMDA6NDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAzMTIzNTExOC0yMDE3MTEwMTEwNDQzMC5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0y
MDE3MTAzMTIzNTExOC0yMDE3MTEwMTEwNDQzMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD43TTwvdGQ+CisJCQkJPHRkPjAxLU5vdi0yMDE3IDE2OjU0PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzEwMzEyMzUxMTgtMjAxNzEx
MDEyMjAxMjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51
eC14ODZfNjQtZW4tVVMtMjAxNzEwMzEyMzUxMTgtMjAxNzExMDEyMjAxMjAucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMi1Ob3YtMjAxNyAwMDowNDwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcx
MDMxMjM1MTE4LTIwMTcxMTAyMjIyNjIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMDMxMjM1MTE4LTIwMTcxMTAyMjIy
NjIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDMtTm92
LTIwMTcgMDA6NDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MTAzMTIzNTExOC0yMDE3MTEwMzEwMDMzMS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTAzMTIz
NTExOC0yMDE3MTEwMzEwMDMzMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+
CisJCQkJPHRkPjAzLU5vdi0yMDE3IDEyOjEzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzExMDExMDQ0MzAtMjAxNzExMDEyMjAxMjAu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQt
ZW4tVVMtMjAxNzExMDExMDQ0MzAtMjAxNzExMDEyMjAxMjAucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMi1Ob3YtMjAxNyAwMDowNDwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMTAxMTA0NDMw
LTIwMTcxMTAyMjIyNjIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMTAxMTA0NDMwLTIwMTcxMTAyMjIyNjIwLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDMtTm92LTIwMTcgMDA6
NDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MTEwMTEwNDQzMC0yMDE3MTEwMzEwMDMzMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEwMTEwNDQzMC0yMDE3
MTEwMzEwMDMzMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRk
PjAzLU5vdi0yMDE3IDEyOjEzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzExMDExMDQ0MzAtMjAxNzExMDMyMjA3MTUucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAx
NzExMDExMDQ0MzAtMjAxNzExMDMyMjA3MTUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
OE08L3RkPgorCQkJCTx0ZD4wNC1Ob3YtMjAxNyAwMDoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMTAxMjIwMTIwLTIwMTcxMTAy
MjIyNjIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgt
eDg2XzY0LWVuLVVTLTIwMTcxMTAxMjIwMTIwLTIwMTcxMTAyMjIyNjIwLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDMtTm92LTIwMTcgMDA6NDk8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEw
MTIyMDEyMC0yMDE3MTEwMzEwMDMzMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEwMTIyMDEyMC0yMDE3MTEwMzEwMDMz
MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAzLU5vdi0y
MDE3IDEyOjEzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzExMDEyMjAxMjAtMjAxNzExMDMyMjA3MTUucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzExMDEyMjAx
MjAtMjAxNzExMDMyMjA3MTUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgor
CQkJCTx0ZD4wNC1Ob3YtMjAxNyAwMDoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMTAxMjIwMTIwLTIwMTcxMTA0MTAwNDEyLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVu
LVVTLTIwMTcxMTAxMjIwMTIwLTIwMTcxMTA0MTAwNDEyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDQtTm92LTIwMTcgMTI6MTQ8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEwMjIyMjYyMC0y
MDE3MTEwMzEwMDMzMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEwMjIyMjYyMC0yMDE3MTEwMzEwMDMzMS5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAzLU5vdi0yMDE3IDEyOjEz
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzExMDIyMjI2MjAtMjAxNzExMDMyMjA3MTUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzExMDIyMjI2MjAtMjAxNzEx
MDMyMjA3MTUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4w
NC1Ob3YtMjAxNyAwMDoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcxMTAyMjIyNjIwLTIwMTcxMTA0MTAwNDEyLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcx
MTAyMjIyNjIwLTIwMTcxMTA0MTAwNDEyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhN
PC90ZD4KKwkJCQk8dGQ+MDQtTm92LTIwMTcgMTI6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEwMjIyMjYyMC0yMDE3MTEwNDIy
MDQyMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4
Nl82NC1lbi1VUy0yMDE3MTEwMjIyMjYyMC0yMDE3MTEwNDIyMDQyMC5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjA0LU5vdi0yMDE3IDIzOjU5PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzExMDMx
MDAzMzEtMjAxNzExMDMyMjA3MTUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzExMDMxMDAzMzEtMjAxNzExMDMyMjA3MTUu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNC1Ob3YtMjAx
NyAwMDoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcxMTAzMTAwMzMxLTIwMTcxMTA0MTAwNDEyLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMTAzMTAwMzMx
LTIwMTcxMTA0MTAwNDEyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJ
CQk8dGQ+MDQtTm92LTIwMTcgMTI6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEwMzEwMDMzMS0yMDE3MTEwNDIyMDQyMC5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1V
Uy0yMDE3MTEwMzEwMDMzMS0yMDE3MTEwNDIyMDQyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA0LU5vdi0yMDE3IDIzOjU5PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzExMDMxMDAzMzEtMjAx
NzExMDUxMDAzNTMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1s
aW51eC14ODZfNjQtZW4tVVMtMjAxNzExMDMxMDAzMzEtMjAxNzExMDUxMDAzNTMucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wNS1Ob3YtMjAxNyAxMjowNjwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcxMTAzMjIwNzE1LTIwMTcxMTA0MTAwNDEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMTAzMjIwNzE1LTIwMTcxMTA0
MTAwNDEyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDQt
Tm92LTIwMTcgMTI6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LXg4Nl82NC1lbi1VUy0yMDE3MTEwMzIyMDcxNS0yMDE3MTEwNDIyMDQyMC5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEw
MzIyMDcxNS0yMDE3MTEwNDIyMDQyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwv
dGQ+CisJCQkJPHRkPjA0LU5vdi0yMDE3IDIzOjU5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzExMDMyMjA3MTUtMjAxNzExMDUxMDAz
NTMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZf
NjQtZW4tVVMtMjAxNzExMDMyMjA3MTUtMjAxNzExMDUxMDAzNTMucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wNS1Ob3YtMjAxNyAxMjowNTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMTAzMjIw
NzE1LTIwMTcxMTA1MjIwNzIxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMTAzMjIwNzE1LTIwMTcxMTA1MjIwNzIxLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDYtTm92LTIwMTcg
MDA6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1l
bi1VUy0yMDE3MTEwNDEwMDQxMi0yMDE3MTEwNDIyMDQyMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEwNDEwMDQxMi0y
MDE3MTEwNDIyMDQyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJ
PHRkPjA0LU5vdi0yMDE3IDIzOjU5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzExMDQxMDA0MTItMjAxNzExMDUxMDAzNTMucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMt
MjAxNzExMDQxMDA0MTItMjAxNzExMDUxMDAzNTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+Nk08L3RkPgorCQkJCTx0ZD4wNS1Ob3YtMjAxNyAxMjowNjwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMTA0MTAwNDEyLTIwMTcx
MTA1MjIwNzIxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGlu
dXgteDg2XzY0LWVuLVVTLTIwMTcxMTA0MTAwNDEyLTIwMTcxMTA1MjIwNzIxLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDYtTm92LTIwMTcgMDA6MTQ8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3
MTEwNDEwMDQxMi0yMDE3MTEwNjEwMDEyMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEwNDEwMDQxMi0yMDE3MTEwNjEw
MDEyMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjA2LU5v
di0yMDE3IDEyOjE0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14
ODZfNjQtZW4tVVMtMjAxNzExMDQyMjA0MjAtMjAxNzExMDUxMDAzNTMucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzExMDQy
MjA0MjAtMjAxNzExMDUxMDAzNTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3Rk
PgorCQkJCTx0ZD4wNS1Ob3YtMjAxNyAxMjowNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIwMTcxMTA0MjIwNDIwLTIwMTcxMTA1MjIwNzIx
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0
LWVuLVVTLTIwMTcxMTA0MjIwNDIwLTIwMTcxMTA1MjIwNzIxLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDYtTm92LTIwMTcgMDA6MTQ8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEwNDIyMDQy
MC0yMDE3MTEwNjEwMDEyMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEwNDIyMDQyMC0yMDE3MTEwNjEwMDEyMi5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjA2LU5vdi0yMDE3IDEy
OjE0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4t
VVMtMjAxNzExMDUxMDAzNTMtMjAxNzExMDUyMjA3MjEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1saW51eC14ODZfNjQtZW4tVVMtMjAxNzExMDUxMDAzNTMtMjAx
NzExMDUyMjA3MjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0
ZD4wNi1Ob3YtMjAxNyAwMDoxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bGludXgteDg2XzY0LWVuLVVTLTIwMTcxMTA1MTAwMzUzLTIwMTcxMTA2MTAwMTIyLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbGludXgteDg2XzY0LWVuLVVTLTIw
MTcxMTA1MTAwMzUzLTIwMTcxMTA2MTAwMTIyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjZNPC90ZD4KKwkJCQk8dGQ+MDYtTm92LTIwMTcgMTI6MTQ8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLWxpbnV4LXg4Nl82NC1lbi1VUy0yMDE3MTEwNTIyMDcyMS0yMDE3MTEw
NjEwMDEyMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLWxpbnV4
LXg4Nl82NC1lbi1VUy0yMDE3MTEwNTIyMDcyMS0yMDE3MTEwNjEwMDEyMi5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjA2LU5vdi0yMDE3IDEyOjE0PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MTkyMjAyMDIt
MjAxNzA5MjEyMjAyNDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzA5MTkyMjAyMDItMjAxNzA5MjEyMjAyNDMucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAyMzozNDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIwMTAwNDI2LTIw
MTcwOTIxMjIwMjQzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcwOTIwMTAwNDI2LTIwMTcwOTIxMjIwMjQzLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjEtU2VwLTIwMTcgMjM6MzQ8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyMDEwMDQyNi0yMDE3
MDkyMjEwMDA1MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MDkyMDEwMDQyNi0yMDE3MDkyMjEwMDA1MS5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjIyLVNlcC0yMDE3IDExOjQ0PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjAyMjA0MzEtMjAxNzA5
MjEyMjAyNDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzA5MjAyMjA0MzEtMjAxNzA5MjEyMjAyNDMucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAyMzozNDwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIwMjIwNDMxLTIwMTcwOTIy
MTAwMDUxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcwOTIwMjIwNDMxLTIwMTcwOTIyMTAwMDUxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjItU2VwLTIwMTcgMTE6NDQ8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyMDIyMDQzMS0yMDE3MDkyMjIy
MDEyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MDkyMDIyMDQzMS0yMDE3MDkyMjIyMDEyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD41TTwvdGQ+CisJCQkJPHRkPjIyLVNlcC0yMDE3IDIzOjMzPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjExMDAxNDEtMjAxNzA5MjEyMjAy
NDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzA5MjExMDAxNDEtMjAxNzA5MjEyMjAyNDMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+M008L3RkPgorCQkJCTx0ZD4yMS1TZXAtMjAxNyAyMzozNTwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIxMTAwMTQxLTIwMTcwOTIyMTAwMDUx
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcwOTIxMTAwMTQxLTIwMTcwOTIyMTAwMDUxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjRNPC90ZD4KKwkJCQk8dGQ+MjItU2VwLTIwMTcgMTE6NDQ8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyMTEwMDE0MS0yMDE3MDkyMjIyMDEyOS5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MDkyMTEwMDE0MS0yMDE3MDkyMjIyMDEyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41
TTwvdGQ+CisJCQkJPHRkPjIyLVNlcC0yMDE3IDIzOjMzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjExMDAxNDEtMjAxNzA5MjMxMDAwNDUucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5
MjExMDAxNDEtMjAxNzA5MjMxMDAwNDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08
L3RkPgorCQkJCTx0ZD4yMy1TZXAtMjAxNyAxMTo0OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIxMjIwMjQzLTIwMTcwOTIyMTAwMDUxLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIx
MjIwMjQzLTIwMTcwOTIyMTAwMDUxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90
ZD4KKwkJCQk8dGQ+MjItU2VwLTIwMTcgMTE6NDQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyMTIyMDI0My0yMDE3MDkyMjIyMDEyOS5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyMTIy
MDI0My0yMDE3MDkyMjIyMDEyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+
CisJCQkJPHRkPjIyLVNlcC0yMDE3IDIzOjM0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjEyMjAyNDMtMjAxNzA5MjMxMDAwNDUucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjEyMjAy
NDMtMjAxNzA5MjMxMDAwNDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgor
CQkJCTx0ZD4yMy1TZXAtMjAxNyAxMTo0OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIxMjIwMjQzLTIwMTcwOTIzMjIwMzM3LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIxMjIwMjQz
LTIwMTcwOTIzMjIwMzM3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJ
CQk8dGQ+MjMtU2VwLTIwMTcgMjM6MzM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MDkyMjEwMDA1MS0yMDE3MDkyMjIyMDEyOS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyMjEwMDA1MS0y
MDE3MDkyMjIyMDEyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJ
PHRkPjIyLVNlcC0yMDE3IDIzOjM0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzA5MjIxMDAwNTEtMjAxNzA5MjMxMDAwNDUucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjIxMDAwNTEtMjAx
NzA5MjMxMDAwNDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0
ZD4yMy1TZXAtMjAxNyAxMTo0ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcwOTIyMTAwMDUxLTIwMTcwOTIzMjIwMzM3LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIyMTAwMDUxLTIwMTcw
OTIzMjIwMzM3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+
MjMtU2VwLTIwMTcgMjM6MzI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MDkyMjEwMDA1MS0yMDE3MDkyNDEwMDU1MC5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyMjEwMDA1MS0yMDE3MDky
NDEwMDU1MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjI0
LVNlcC0yMDE3IDEyOjA0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzA5MjIyMjAxMjktMjAxNzA5MjMxMDAwNDUucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjIyMjAxMjktMjAxNzA5MjMx
MDAwNDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4yMy1T
ZXAtMjAxNyAxMTo0ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcwOTIyMjIwMTI5LTIwMTcwOTIzMjIwMzM3LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIyMjIwMTI5LTIwMTcwOTIzMjIw
MzM3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MjMtU2Vw
LTIwMTcgMjM6MzM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MDkyMjIyMDEyOS0yMDE3MDkyNDEwMDU1MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyMjIyMDEyOS0yMDE3MDkyNDEwMDU1
MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjI0LVNlcC0y
MDE3IDEyOjA1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzA5MjIyMjAxMjktMjAxNzA5MjQyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjIyMjAxMjktMjAxNzA5MjQyMjAxMTYu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4yNC1TZXAtMjAx
NyAyMzoxOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcwOTIzMTAwMDQ1LTIwMTcwOTIzMjIwMzM3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIzMTAwMDQ1LTIwMTcwOTIzMjIwMzM3LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjFNPC90ZD4KKwkJCQk8dGQ+MjMtU2VwLTIwMTcg
MjM6MzI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MDkyMzEwMDA0NS0yMDE3MDkyNDEwMDU1MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyMzEwMDA0NS0yMDE3MDkyNDEwMDU1MC5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4yTTwvdGQ+CisJCQkJPHRkPjI0LVNlcC0yMDE3IDEy
OjA1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5
MjMxMDAwNDUtMjAxNzA5MjQyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjMxMDAwNDUtMjAxNzA5MjQyMjAxMTYucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4yNC1TZXAtMjAxNyAyMzox
OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIz
MTAwMDQ1LTIwMTcwOTI1MTAwMzA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIzMTAwMDQ1LTIwMTcwOTI1MTAwMzA3LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjUtU2VwLTIwMTcgMTE6MTc8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyMzIy
MDMzNy0yMDE3MDkyNDEwMDU1MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLW1hYy1lbi1VUy0yMDE3MDkyMzIyMDMzNy0yMDE3MDkyNDEwMDU1MC5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD4yTTwvdGQ+CisJCQkJPHRkPjI0LVNlcC0yMDE3IDEyOjA0PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjMyMjAz
MzctMjAxNzA5MjQyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjMyMjAzMzctMjAxNzA5MjQyMjAxMTYucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4yNC1TZXAtMjAxNyAyMzoxOTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTIzMjIwMzM3
LTIwMTcwOTI1MTAwMzA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbWFjLWVuLVVTLTIwMTcwOTIzMjIwMzM3LTIwMTcwOTI1MTAwMzA3LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MjUtU2VwLTIwMTcgMTE6MTc8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyMzIyMDMzNy0y
MDE3MDkyNTIyMDIwNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MDkyMzIyMDMzNy0yMDE3MDkyNTIyMDIwNy5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjI1LVNlcC0yMDE3IDIzOjIyPC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjQxMDA1NTAtMjAx
NzA5MjQyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1t
YWMtZW4tVVMtMjAxNzA5MjQxMDA1NTAtMjAxNzA5MjQyMjAxMTYucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4yNC1TZXAtMjAxNyAyMzoxOTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI0MTAwNTUwLTIwMTcw
OTI1MTAwMzA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcwOTI0MTAwNTUwLTIwMTcwOTI1MTAwMzA3LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MjUtU2VwLTIwMTcgMTE6MTc8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyNDEwMDU1MC0yMDE3MDky
NTIyMDIwNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1l
bi1VUy0yMDE3MDkyNDEwMDU1MC0yMDE3MDkyNTIyMDIwNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjI1LVNlcC0yMDE3IDIzOjIyPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjQxMDA1NTAtMjAxNzA5MjYx
MDAyNTkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4t
VVMtMjAxNzA5MjQxMDA1NTAtMjAxNzA5MjYxMDAyNTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNi1TZXAtMjAxNyAxMToyNzwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI0MjIwMTE2LTIwMTcwOTI1MTAw
MzA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVT
LTIwMTcwOTI0MjIwMTE2LTIwMTcwOTI1MTAwMzA3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjNNPC90ZD4KKwkJCQk8dGQ+MjUtU2VwLTIwMTcgMTE6MTc8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyNDIyMDExNi0yMDE3MDkyNTIyMDIw
Ny5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0y
MDE3MDkyNDIyMDExNi0yMDE3MDkyNTIyMDIwNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD4zTTwvdGQ+CisJCQkJPHRkPjI1LVNlcC0yMDE3IDIzOjIyPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjQyMjAxMTYtMjAxNzA5MjYxMDAyNTku
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAx
NzA5MjQyMjAxMTYtMjAxNzA5MjYxMDAyNTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
NU08L3RkPgorCQkJCTx0ZD4yNi1TZXAtMjAxNyAxMToyNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI0MjIwMTE2LTIwMTcwOTI2MjIwMTA2LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcw
OTI0MjIwMTE2LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVN
PC90ZD4KKwkJCQk8dGQ+MjYtU2VwLTIwMTcgMjM6MjE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyNTEwMDMwNy0yMDE3MDkyNTIyMDIwNy5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDky
NTEwMDMwNy0yMDE3MDkyNTIyMDIwNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4xTTwv
dGQ+CisJCQkJPHRkPjI1LVNlcC0yMDE3IDIzOjIyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjUxMDAzMDctMjAxNzA5MjYxMDAyNTkucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjUx
MDAzMDctMjAxNzA5MjYxMDAyNTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3Rk
PgorCQkJCTx0ZD4yNi1TZXAtMjAxNyAxMToyNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI1MTAwMzA3LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI1MTAw
MzA3LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4K
KwkJCQk8dGQ+MjYtU2VwLTIwMTcgMjM6MjE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLW1hYy1lbi1VUy0yMDE3MDkyNTEwMDMwNy0yMDE3MDkyNzEwMDEyMC5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyNTEwMDMw
Ny0yMDE3MDkyNzEwMDEyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJ
CQkJPHRkPjI3LVNlcC0yMDE3IDExOjI2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjUyMjAyMDctMjAxNzA5MjYxMDAyNTkucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjUyMjAyMDct
MjAxNzA5MjYxMDAyNTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJ
CTx0ZD4yNi1TZXAtMjAxNyAxMToyNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbWFjLWVuLVVTLTIwMTcwOTI1MjIwMjA3LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI1MjIwMjA3LTIw
MTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8
dGQ+MjYtU2VwLTIwMTcgMjM6MjE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MDkyNTIyMDIwNy0yMDE3MDkyNzEwMDEyMC5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyNTIyMDIwNy0yMDE3
MDkyNzEwMDEyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRk
PjI3LVNlcC0yMDE3IDExOjI2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1t
YWMtZW4tVVMtMjAxNzA5MjUyMjAyMDctMjAxNzA5MjgxMDAxMjMucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjUyMjAyMDctMjAxNzA5
MjgxMDAxMjMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4y
OC1TZXAtMjAxNyAxMToyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcwOTI2MTAwMjU5LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI2MTAwMjU5LTIwMTcwOTI2
MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MjYt
U2VwLTIwMTcgMjM6MjE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1l
bi1VUy0yMDE3MDkyNjEwMDI1OS0yMDE3MDkyNzEwMDEyMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyNjEwMDI1OS0yMDE3MDkyNzEw
MDEyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjI3LVNl
cC0yMDE3IDExOjI2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4t
VVMtMjAxNzA5MjYxMDAyNTktMjAxNzA5MjgxMDAxMjMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjYxMDAyNTktMjAxNzA5MjgxMDAx
MjMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yOC1TZXAt
MjAxNyAxMToyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVT
LTIwMTcwOTI2MTAwMjU5LTIwMTcwOTI4MjIwNjU4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI2MTAwMjU5LTIwMTcwOTI4MjIwNjU4
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjgtU2VwLTIw
MTcgMjM6Mzg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0y
MDE3MDkyNjIyMDEwNi0yMDE3MDkyNzEwMDEyMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyNjIyMDEwNi0yMDE3MDkyNzEwMDEyMC5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjI3LVNlcC0yMDE3
IDExOjI2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAx
NzA5MjYyMjAxMDYtMjAxNzA5MjgxMDAxMjMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjYyMjAxMDYtMjAxNzA5MjgxMDAxMjMucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yOC1TZXAtMjAxNyAx
MToyODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcw
OTI2MjIwMTA2LTIwMTcwOTI4MjIwNjU4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI2MjIwMTA2LTIwMTcwOTI4MjIwNjU4LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjgtU2VwLTIwMTcgMjM6
Mzg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDky
NjIyMDEwNi0yMDE3MDkyOTEwMDEyMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyNjIyMDEwNi0yMDE3MDkyOTEwMDEyMi5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjI5LVNlcC0yMDE3IDExOjI2
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5Mjcx
MDAxMjAtMjAxNzA5MjgxMDAxMjMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjcxMDAxMjAtMjAxNzA5MjgxMDAxMjMucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yOC1TZXAtMjAxNyAxMToyODwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI3MTAw
MTIwLTIwMTcwOTI4MjIwNjU4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI3MTAwMTIwLTIwMTcwOTI4MjIwNjU4LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjgtU2VwLTIwMTcgMjM6Mzg8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyNzEwMDEy
MC0yMDE3MDkyOTEwMDEyMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MDkyNzEwMDEyMC0yMDE3MDkyOTEwMDEyMi5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjI5LVNlcC0yMDE3IDExOjI2PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjcxMDAxMjAt
MjAxNzA5MjkyMjAzNTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzA5MjcxMDAxMjAtMjAxNzA5MjkyMjAzNTYucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yOS1TZXAtMjAxNyAyMzoyNDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI4MTAwMTIzLTIw
MTcwOTI4MjIwNjU4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcwOTI4MTAwMTIzLTIwMTcwOTI4MjIwNjU4LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MjgtU2VwLTIwMTcgMjM6Mzg8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyODEwMDEyMy0yMDE3
MDkyOTEwMDEyMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MDkyODEwMDEyMy0yMDE3MDkyOTEwMDEyMi5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjI5LVNlcC0yMDE3IDExOjI2PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjgxMDAxMjMtMjAxNzA5
MjkyMjAzNTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzA5MjgxMDAxMjMtMjAxNzA5MjkyMjAzNTYucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yOS1TZXAtMjAxNyAyMzoyNDwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI4MTAwMTIzLTIwMTcwOTMw
MTAwMzAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcwOTI4MTAwMTIzLTIwMTcwOTMwMTAwMzAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MzAtU2VwLTIwMTcgMTE6MzE8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyODIyMDY1OC0yMDE3MDkyOTEw
MDEyMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MDkyODIyMDY1OC0yMDE3MDkyOTEwMDEyMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD40TTwvdGQ+CisJCQkJPHRkPjI5LVNlcC0yMDE3IDExOjI2PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjgyMjA2NTgtMjAxNzA5MjkyMjAz
NTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzA5MjgyMjA2NTgtMjAxNzA5MjkyMjAzNTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+NU08L3RkPgorCQkJCTx0ZD4yOS1TZXAtMjAxNyAyMzoyNDwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI4MjIwNjU4LTIwMTcwOTMwMTAwMzAy
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcwOTI4MjIwNjU4LTIwMTcwOTMwMTAwMzAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjVNPC90ZD4KKwkJCQk8dGQ+MzAtU2VwLTIwMTcgMTE6MzE8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyODIyMDY1OC0yMDE3MDkzMDIyMDExNi5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MDkyODIyMDY1OC0yMDE3MDkzMDIyMDExNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41
TTwvdGQ+CisJCQkJPHRkPjMwLVNlcC0yMDE3IDIzOjIyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjkxMDAxMjItMjAxNzA5MjkyMjAzNTYucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5
MjkxMDAxMjItMjAxNzA5MjkyMjAzNTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08
L3RkPgorCQkJCTx0ZD4yOS1TZXAtMjAxNyAyMzoyNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI5MTAwMTIyLTIwMTcwOTMwMTAwMzAyLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI5
MTAwMTIyLTIwMTcwOTMwMTAwMzAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90
ZD4KKwkJCQk8dGQ+MzAtU2VwLTIwMTcgMTE6MzE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyOTEwMDEyMi0yMDE3MDkzMDIyMDExNi5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyOTEw
MDEyMi0yMDE3MDkzMDIyMDExNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+
CisJCQkJPHRkPjMwLVNlcC0yMDE3IDIzOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjkxMDAxMjItMjAxNzEwMDExMDAzMzUucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjkxMDAx
MjItMjAxNzEwMDExMDAzMzUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgor
CQkJCTx0ZD4wMS1PY3QtMjAxNyAxMTozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI5MjIwMzU2LTIwMTcwOTMwMTAwMzAyLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI5MjIwMzU2
LTIwMTcwOTMwMTAwMzAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjJNPC90ZD4KKwkJ
CQk8dGQ+MzAtU2VwLTIwMTcgMTE6MzE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MDkyOTIyMDM1Ni0yMDE3MDkzMDIyMDExNi5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkyOTIyMDM1Ni0y
MDE3MDkzMDIyMDExNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJ
PHRkPjMwLVNlcC0yMDE3IDIzOjIyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzA5MjkyMjAzNTYtMjAxNzEwMDExMDAzMzUucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MjkyMjAzNTYtMjAx
NzEwMDExMDAzMzUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0
ZD4wMS1PY3QtMjAxNyAxMTozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcwOTI5MjIwMzU2LTIwMTcxMDAxMjIwMzAxLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTI5MjIwMzU2LTIwMTcx
MDAxMjIwMzAxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+
MDEtT2N0LTIwMTcgMjM6MjY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MDkzMDEwMDMwMi0yMDE3MDkzMDIyMDExNi5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkzMDEwMDMwMi0yMDE3MDkz
MDIyMDExNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4xMDA2SzwvdGQ+CisJCQkJPHRk
PjMwLVNlcC0yMDE3IDIzOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1t
YWMtZW4tVVMtMjAxNzA5MzAxMDAzMDItMjAxNzEwMDExMDAzMzUucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MzAxMDAzMDItMjAxNzEw
MDExMDAzMzUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4w
MS1PY3QtMjAxNyAxMTozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcwOTMwMTAwMzAyLTIwMTcxMDAxMjIwMzAxLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTMwMTAwMzAyLTIwMTcxMDAx
MjIwMzAxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MDEt
T2N0LTIwMTcgMjM6MjU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1l
bi1VUy0yMDE3MDkzMDEwMDMwMi0yMDE3MTAwMjEwMDEzNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkzMDEwMDMwMi0yMDE3MTAwMjEw
MDEzNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjAyLU9j
dC0yMDE3IDExOjE5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4t
VVMtMjAxNzA5MzAyMjAxMTYtMjAxNzEwMDExMDAzMzUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MzAyMjAxMTYtMjAxNzEwMDExMDAz
MzUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4wMS1PY3Qt
MjAxNyAxMTozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVT
LTIwMTcwOTMwMjIwMTE2LTIwMTcxMDAxMjIwMzAxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcwOTMwMjIwMTE2LTIwMTcxMDAxMjIwMzAx
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MDEtT2N0LTIw
MTcgMjM6MjY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0y
MDE3MDkzMDIyMDExNi0yMDE3MTAwMjEwMDEzNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MDkzMDIyMDExNi0yMDE3MTAwMjEwMDEzNC5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjAyLU9jdC0yMDE3
IDExOjE5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAx
NzA5MzAyMjAxMTYtMjAxNzEwMDIyMjM4NTkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzA5MzAyMjAxMTYtMjAxNzEwMDIyMjM4NTkucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4wMy1PY3QtMjAxNyAw
MDoyMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcx
MDAxMTAwMzM1LTIwMTcxMDAxMjIwMzAxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDAxMTAwMzM1LTIwMTcxMDAxMjIwMzAxLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjJNPC90ZD4KKwkJCQk8dGQ+MDEtT2N0LTIwMTcgMjM6
MjU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAw
MTEwMDMzNS0yMDE3MTAwMjEwMDEzNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwMTEwMDMzNS0yMDE3MTAwMjEwMDEzNC5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjAyLU9jdC0yMDE3IDExOjE5
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDEx
MDAzMzUtMjAxNzEwMDIyMjM4NTkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDExMDAzMzUtMjAxNzEwMDIyMjM4NTkucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4wMy1PY3QtMjAxNyAwMDoyMzwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDAxMTAw
MzM1LTIwMTcxMDAzMTAwMjI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDAxMTAwMzM1LTIwMTcxMDAzMTAwMjI2LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDMtT2N0LTIwMTcgMTE6Mjk8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwMTIyMDMw
MS0yMDE3MTAwMjEwMDEzNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MTAwMTIyMDMwMS0yMDE3MTAwMjEwMDEzNC5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjAyLU9jdC0yMDE3IDExOjE5PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDEyMjAzMDEt
MjAxNzEwMDIyMjM4NTkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzEwMDEyMjAzMDEtMjAxNzEwMDIyMjM4NTkucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4wMy1PY3QtMjAxNyAwMDoyMzwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDAxMjIwMzAxLTIw
MTcxMDAzMTAwMjI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcxMDAxMjIwMzAxLTIwMTcxMDAzMTAwMjI2LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDMtT2N0LTIwMTcgMTE6Mjk8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwMTIyMDMwMS0yMDE3
MTAwMzIyMDEzOC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MTAwMTIyMDMwMS0yMDE3MTAwMzIyMDEzOC5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjAzLU9jdC0yMDE3IDIzOjMxPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDIxMDAxMzQtMjAxNzEw
MDIyMjM4NTkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzEwMDIxMDAxMzQtMjAxNzEwMDIyMjM4NTkucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+MU08L3RkPgorCQkJCTx0ZD4wMy1PY3QtMjAxNyAwMDoyMzwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDAyMTAwMTM0LTIwMTcxMDAz
MTAwMjI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcxMDAyMTAwMTM0LTIwMTcxMDAzMTAwMjI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDMtT2N0LTIwMTcgMTE6Mjk8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwMjEwMDEzNC0yMDE3MTAwMzIy
MDEzOC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MTAwMjEwMDEzNC0yMDE3MTAwMzIyMDEzOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD40TTwvdGQ+CisJCQkJPHRkPjAzLU9jdC0yMDE3IDIzOjMxPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDIxMDAxMzQtMjAxNzEwMDQxMDAw
NDkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzEwMDIxMDAxMzQtMjAxNzEwMDQxMDAwNDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+Nk08L3RkPgorCQkJCTx0ZD4wNC1PY3QtMjAxNyAxMTo1NjwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDAyMjIzODU5LTIwMTcxMDAzMTAwMjI2
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcxMDAyMjIzODU5LTIwMTcxMDAzMTAwMjI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjRNPC90ZD4KKwkJCQk8dGQ+MDMtT2N0LTIwMTcgMTE6Mjk8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwMjIyMzg1OS0yMDE3MTAwMzIyMDEzOC5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MTAwMjIyMzg1OS0yMDE3MTAwMzIyMDEzOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40
TTwvdGQ+CisJCQkJPHRkPjAzLU9jdC0yMDE3IDIzOjMxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDIyMjM4NTktMjAxNzEwMDQxMDAwNDkucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEw
MDIyMjM4NTktMjAxNzEwMDQxMDAwNDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08
L3RkPgorCQkJCTx0ZD4wNC1PY3QtMjAxNyAxMTo1NjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDAyMjIzODU5LTIwMTcxMDA0MjIwMzA5LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDAy
MjIzODU5LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90
ZD4KKwkJCQk8dGQ+MDQtT2N0LTIwMTcgMjM6MjI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwMzEwMDIyNi0yMDE3MTAwMzIyMDEzOC5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwMzEw
MDIyNi0yMDE3MTAwMzIyMDEzOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+
CisJCQkJPHRkPjAzLU9jdC0yMDE3IDIzOjMxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDMxMDAyMjYtMjAxNzEwMDQxMDAwNDkucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDMxMDAy
MjYtMjAxNzEwMDQxMDAwNDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgor
CQkJCTx0ZD4wNC1PY3QtMjAxNyAxMTo1NjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDAzMTAwMjI2LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDAzMTAwMjI2
LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJ
CQk8dGQ+MDQtT2N0LTIwMTcgMjM6MjM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MTAwMzEwMDIyNi0yMDE3MTAwNTEwMDIxMS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwMzEwMDIyNi0y
MDE3MTAwNTEwMDIxMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJ
PHRkPjA1LU9jdC0yMDE3IDExOjI3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzEwMDMyMjAxMzgtMjAxNzEwMDQxMDAwNDkucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDMyMjAxMzgtMjAx
NzEwMDQxMDAwNDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0
ZD4wNC1PY3QtMjAxNyAxMTo1NjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcxMDAzMjIwMTM4LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDAzMjIwMTM4LTIwMTcx
MDA0MjIwMzA5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+
MDQtT2N0LTIwMTcgMjM6MjM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MTAwMzIyMDEzOC0yMDE3MTAwNTEwMDIxMS5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwMzIyMDEzOC0yMDE3MTAw
NTEwMDIxMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA1
LU9jdC0yMDE3IDExOjI3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzEwMDMyMjAxMzgtMjAxNzEwMDUyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDMyMjAxMzgtMjAxNzEwMDUy
MjAyMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNS1P
Y3QtMjAxNyAyMzozMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcxMDA0MTAwMDQ5LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA0MTAwMDQ5LTIwMTcxMDA0MjIw
MzA5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDQtT2N0
LTIwMTcgMjM6MjM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MTAwNDEwMDA0OS0yMDE3MTAwNTEwMDIxMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwNDEwMDA0OS0yMDE3MTAwNTEwMDIx
MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjA1LU9jdC0y
MDE3IDExOjI3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzEwMDQxMDAwNDktMjAxNzEwMDUyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDQxMDAwNDktMjAxNzEwMDUyMjAyMDQu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wNS1PY3QtMjAx
NyAyMzozMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcxMDA0MTAwMDQ5LTIwMTcxMDA2MTAwMzI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA0MTAwMDQ5LTIwMTcxMDA2MTAwMzI3LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDYtT2N0LTIwMTcg
MTE6Mjc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MTAwNDIyMDMwOS0yMDE3MTAwNTEwMDIxMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwNDIyMDMwOS0yMDE3MTAwNTEwMDIxMS5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjA1LU9jdC0yMDE3IDEx
OjI3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEw
MDQyMjAzMDktMjAxNzEwMDUyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDQyMjAzMDktMjAxNzEwMDUyMjAyMDQucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4wNS1PY3QtMjAxNyAyMzoz
MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA0
MjIwMzA5LTIwMTcxMDA2MTAwMzI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA0MjIwMzA5LTIwMTcxMDA2MTAwMzI3LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDYtT2N0LTIwMTcgMTE6Mjg8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwNDIy
MDMwOS0yMDE3MTAwNjIyMDMwNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLW1hYy1lbi1VUy0yMDE3MTAwNDIyMDMwOS0yMDE3MTAwNjIyMDMwNi5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjA2LU9jdC0yMDE3IDIzOjI2PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDUxMDAy
MTEtMjAxNzEwMDUyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDUxMDAyMTEtMjAxNzEwMDUyMjAyMDQucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+MTAzSzwvdGQ+CisJCQkJPHRkPjA1LU9jdC0yMDE3IDIzOjMwPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDUxMDAy
MTEtMjAxNzEwMDYxMDAzMjcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDUxMDAyMTEtMjAxNzEwMDYxMDAzMjcucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+MTA5SzwvdGQ+CisJCQkJPHRkPjA2LU9jdC0yMDE3IDExOjI4PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDUxMDAy
MTEtMjAxNzEwMDYyMjAzMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDUxMDAyMTEtMjAxNzEwMDYyMjAzMDYucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4wNi1PY3QtMjAxNyAyMzoyNjwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA1MTAwMjEx
LTIwMTcxMDA3MTAwMTQyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbWFjLWVuLVVTLTIwMTcxMDA1MTAwMjExLTIwMTcxMDA3MTAwMTQyLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDctT2N0LTIwMTcgMTE6MjI8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwNTIyMDIwNC0y
MDE3MTAwNjEwMDMyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MTAwNTIyMDIwNC0yMDE3MTAwNjEwMDMyNy5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD4xMDhLPC90ZD4KKwkJCQk8dGQ+MDYtT2N0LTIwMTcgMTE6Mjc8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwNTIyMDIwNC0y
MDE3MTAwNjIyMDMwNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MTAwNTIyMDIwNC0yMDE3MTAwNjIyMDMwNi5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjA2LU9jdC0yMDE3IDIzOjI2PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDUyMjAyMDQtMjAx
NzEwMDcxMDAxNDIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1t
YWMtZW4tVVMtMjAxNzEwMDUyMjAyMDQtMjAxNzEwMDcxMDAxNDIucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wNy1PY3QtMjAxNyAxMToyMjwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA1MjIwMjA0LTIwMTcx
MDA3MjIwMTU2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcxMDA1MjIwMjA0LTIwMTcxMDA3MjIwMTU2LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDctT2N0LTIwMTcgMjM6MTg8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwNjEwMDMyNy0yMDE3MTAw
NjIyMDMwNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1l
bi1VUy0yMDE3MTAwNjEwMDMyNy0yMDE3MTAwNjIyMDMwNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjA2LU9jdC0yMDE3IDIzOjI2PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDYxMDAzMjctMjAxNzEwMDcx
MDAxNDIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4t
VVMtMjAxNzEwMDYxMDAzMjctMjAxNzEwMDcxMDAxNDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wNy1PY3QtMjAxNyAxMToyMjwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA2MTAwMzI3LTIwMTcxMDA3MjIw
MTU2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVT
LTIwMTcxMDA2MTAwMzI3LTIwMTcxMDA3MjIwMTU2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDctT2N0LTIwMTcgMjM6MTk8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwNjEwMDMyNy0yMDE3MTAwODEzMTcw
MC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0y
MDE3MTAwNjEwMDMyNy0yMDE3MTAwODEzMTcwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD41TTwvdGQ+CisJCQkJPHRkPjA4LU9jdC0yMDE3IDE0OjQ1PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDYyMjAzMDYtMjAxNzEwMDcxMDAxNDIu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAx
NzEwMDYyMjAzMDYtMjAxNzEwMDcxMDAxNDIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
NE08L3RkPgorCQkJCTx0ZD4wNy1PY3QtMjAxNyAxMToyMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA2MjIwMzA2LTIwMTcxMDA3MjIwMTU2LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcx
MDA2MjIwMzA2LTIwMTcxMDA3MjIwMTU2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRN
PC90ZD4KKwkJCQk8dGQ+MDctT2N0LTIwMTcgMjM6MTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwNjIyMDMwNi0yMDE3MTAwODEzMTcwMC5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAw
NjIyMDMwNi0yMDE3MTAwODEzMTcwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwv
dGQ+CisJCQkJPHRkPjA4LU9jdC0yMDE3IDE0OjQ1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDYyMjAzMDYtMjAxNzEwMDgyMjAxMzAucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDYy
MjAzMDYtMjAxNzEwMDgyMjAxMzAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3Rk
PgorCQkJCTx0ZD4wOC1PY3QtMjAxNyAyMzozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA3MTAwMTQyLTIwMTcxMDA3MjIwMTU2LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA3MTAw
MTQyLTIwMTcxMDA3MjIwMTU2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjFNPC90ZD4K
KwkJCQk8dGQ+MDctT2N0LTIwMTcgMjM6MTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLW1hYy1lbi1VUy0yMDE3MTAwNzEwMDE0Mi0yMDE3MTAwODEzMTcwMC5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwNzEwMDE0
Mi0yMDE3MTAwODEzMTcwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJ
CQkJPHRkPjA4LU9jdC0yMDE3IDE0OjQ1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDcxMDAxNDItMjAxNzEwMDgyMjAxMzAucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDcxMDAxNDIt
MjAxNzEwMDgyMjAxMzAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJ
CTx0ZD4wOC1PY3QtMjAxNyAyMzozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbWFjLWVuLVVTLTIwMTcxMDA3MTAwMTQyLTIwMTcxMDA5MTAwMTM0LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA3MTAwMTQyLTIw
MTcxMDA5MTAwMTM0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8
dGQ+MDktT2N0LTIwMTcgMTE6Mjg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MTAwNzIyMDE1Ni0yMDE3MTAwODEzMTcwMC5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwNzIyMDE1Ni0yMDE3
MTAwODEzMTcwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRk
PjA4LU9jdC0yMDE3IDE0OjQ1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1t
YWMtZW4tVVMtMjAxNzEwMDcyMjAxNTYtMjAxNzEwMDgyMjAxMzAucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDcyMjAxNTYtMjAxNzEw
MDgyMjAxMzAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4w
OC1PY3QtMjAxNyAyMzozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcxMDA3MjIwMTU2LTIwMTcxMDA5MTAwMTM0LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA3MjIwMTU2LTIwMTcxMDA5
MTAwMTM0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDkt
T2N0LTIwMTcgMTE6Mjk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1l
bi1VUy0yMDE3MTAwNzIyMDE1Ni0yMDE3MTAwOTIyMDEwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwNzIyMDE1Ni0yMDE3MTAwOTIy
MDEwNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjA5LU9j
dC0yMDE3IDIzOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4t
VVMtMjAxNzEwMDgxMzE3MDAtMjAxNzEwMDgyMjAxMzAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDgxMzE3MDAtMjAxNzEwMDgyMjAx
MzAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MU08L3RkPgorCQkJCTx0ZD4wOC1PY3Qt
MjAxNyAyMzozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVT
LTIwMTcxMDA4MTMxNzAwLTIwMTcxMDA5MTAwMTM0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA4MTMxNzAwLTIwMTcxMDA5MTAwMTM0
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MDktT2N0LTIw
MTcgMTE6Mjg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0y
MDE3MTAwODEzMTcwMC0yMDE3MTAwOTIyMDEwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwODEzMTcwMC0yMDE3MTAwOTIyMDEwNC5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjA5LU9jdC0yMDE3
IDIzOjIzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAx
NzEwMDgxMzE3MDAtMjAxNzEwMTAxMDAyMDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDgxMzE3MDAtMjAxNzEwMTAxMDAyMDAucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4xMC1PY3QtMjAxNyAx
MToyODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcx
MDA4MjIwMTMwLTIwMTcxMDA5MTAwMTM0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA4MjIwMTMwLTIwMTcxMDA5MTAwMTM0LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MDktT2N0LTIwMTcgMTE6
Mjg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAw
ODIyMDEzMC0yMDE3MTAwOTIyMDEwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwODIyMDEzMC0yMDE3MTAwOTIyMDEwNC5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjA5LU9jdC0yMDE3IDIzOjIz
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDgy
MjAxMzAtMjAxNzEwMTAxMDAyMDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDgyMjAxMzAtMjAxNzEwMTAxMDAyMDAucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4xMC1PY3QtMjAxNyAxMToyODwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA4MjIw
MTMwLTIwMTcxMDEwMjIwMTAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA4MjIwMTMwLTIwMTcxMDEwMjIwMTAyLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTAtT2N0LTIwMTcgMjM6MjU8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwOTEwMDEz
NC0yMDE3MTAwOTIyMDEwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MTAwOTEwMDEzNC0yMDE3MTAwOTIyMDEwNC5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjA5LU9jdC0yMDE3IDIzOjIzPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDkxMDAxMzQt
MjAxNzEwMTAxMDAyMDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzEwMDkxMDAxMzQtMjAxNzEwMTAxMDAyMDAucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4xMC1PY3QtMjAxNyAxMToyODwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA5MTAwMTM0LTIw
MTcxMDEwMjIwMTAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcxMDA5MTAwMTM0LTIwMTcxMDEwMjIwMTAyLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MTAtT2N0LTIwMTcgMjM6MjU8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwOTEwMDEzNC0yMDE3
MTAxMTEwMDEzMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MTAwOTEwMDEzNC0yMDE3MTAxMTEwMDEzMy5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjExLU9jdC0yMDE3IDE4OjA0PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDkyMjAxMDQtMjAxNzEw
MTAxMDAyMDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzEwMDkyMjAxMDQtMjAxNzEwMTAxMDAyMDAucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4xMC1PY3QtMjAxNyAxMToyODwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDA5MjIwMTA0LTIwMTcxMDEw
MjIwMTAyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcxMDA5MjIwMTA0LTIwMTcxMDEwMjIwMTAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MTAtT2N0LTIwMTcgMjM6MjU8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAwOTIyMDEwNC0yMDE3MTAxMTEw
MDEzMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MTAwOTIyMDEwNC0yMDE3MTAxMTEwMDEzMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD41TTwvdGQ+CisJCQkJPHRkPjExLU9jdC0yMDE3IDE4OjA0PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMDkyMjAxMDQtMjAxNzEwMTEyMjAx
MTMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzEwMDkyMjAxMDQtMjAxNzEwMTEyMjAxMTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+Nk08L3RkPgorCQkJCTx0ZD4xMS1PY3QtMjAxNyAyMzozMjwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDEwMTAwMjAwLTIwMTcxMDEwMjIwMTAy
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcxMDEwMTAwMjAwLTIwMTcxMDEwMjIwMTAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjRNPC90ZD4KKwkJCQk8dGQ+MTAtT2N0LTIwMTcgMjM6MjU8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMDEwMDIwMC0yMDE3MTAxMTEwMDEzMy5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MTAxMDEwMDIwMC0yMDE3MTAxMTEwMDEzMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41
TTwvdGQ+CisJCQkJPHRkPjExLU9jdC0yMDE3IDE4OjA0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTAxMDAyMDAtMjAxNzEwMTEyMjAxMTMucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEw
MTAxMDAyMDAtMjAxNzEwMTEyMjAxMTMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08
L3RkPgorCQkJCTx0ZD4xMS1PY3QtMjAxNyAyMzozMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDEwMTAwMjAwLTIwMTcxMDEyMTAwMjI4LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDEw
MTAwMjAwLTIwMTcxMDEyMTAwMjI4LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90
ZD4KKwkJCQk8dGQ+MTItT2N0LTIwMTcgMTE6Mzg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMDEwMDIwMC0yMDE3MTAxMjEwNTgzMy5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMDEw
MDIwMC0yMDE3MTAxMjEwNTgzMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+
CisJCQkJPHRkPjEyLU9jdC0yMDE3IDEzOjE1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTAyMjAxMDItMjAxNzEwMTExMDAxMzMucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTAyMjAx
MDItMjAxNzEwMTExMDAxMzMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgor
CQkJCTx0ZD4xMS1PY3QtMjAxNyAxODowNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDEwMjIwMTAyLTIwMTcxMDExMjIwMTEzLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDEwMjIwMTAy
LTIwMTcxMDExMjIwMTEzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJ
CQk8dGQ+MTEtT2N0LTIwMTcgMjM6MzI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MTAxMDIyMDEwMi0yMDE3MTAxMjEwMDIyOC5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMDIyMDEwMi0y
MDE3MTAxMjEwMDIyOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJ
PHRkPjEyLU9jdC0yMDE3IDExOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzEwMTAyMjAxMDItMjAxNzEwMTIxMDU4MzMucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTAyMjAxMDItMjAx
NzEwMTIxMDU4MzMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0
ZD4xMi1PY3QtMjAxNyAxMzoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcxMDExMTAwMTMzLTIwMTcxMDExMjIwMTEzLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDExMTAwMTMzLTIwMTcx
MDExMjIwMTEzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+
MTEtT2N0LTIwMTcgMjM6MzI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MTAxMTEwMDEzMy0yMDE3MTAxMjEwMDIyOC5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMTEwMDEzMy0yMDE3MTAx
MjEwMDIyOC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjEy
LU9jdC0yMDE3IDExOjM5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzEwMTExMDAxMzMtMjAxNzEwMTIxMDU4MzMucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTExMDAxMzMtMjAxNzEwMTIx
MDU4MzMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4xMi1P
Y3QtMjAxNyAxMzoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcxMDExMTAwMTMzLTIwMTcxMDEyMjIwMTExLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDExMTAwMTMzLTIwMTcxMDEyMjIw
MTExLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MTItT2N0
LTIwMTcgMjM6MTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MTAxMTIyMDExMy0yMDE3MTAxMjEwMDIyOC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMTIyMDExMy0yMDE3MTAxMjEwMDIy
OC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0y
MDE3IDExOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzEwMTEyMjAxMTMtMjAxNzEwMTIxMDU4MzMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTEyMjAxMTMtMjAxNzEwMTIxMDU4MzMu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAx
NyAxMzoxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcxMDExMjIwMTEzLTIwMTcxMDEyMjIwMTExLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDExMjIwMTEzLTIwMTcxMDEyMjIwMTExLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MTItT2N0LTIwMTcg
MjM6MTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MTAxMTIyMDExMy0yMDE3MTAxMzEwMDExMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMTIyMDExMy0yMDE3MTAxMzEwMDExMi5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjEzLU9jdC0yMDE3IDEx
OjMwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEw
MTIxMDAyMjgtMjAxNzEwMTIyMjAxMTEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTIxMDAyMjgtMjAxNzEwMTIyMjAxMTEucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAyMzox
OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDEy
MTAwMjI4LTIwMTcxMDEzMTAwMTEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDEyMTAwMjI4LTIwMTcxMDEzMTAwMTEyLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTMtT2N0LTIwMTcgMTE6MzA8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMjEw
MDIyOC0yMDE3MTAxMzIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMjEwMDIyOC0yMDE3MTAxMzIyMDIwNC5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjEzLU9jdC0yMDE3IDIzOjQ5PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTIxMDU4
MzMtMjAxNzEwMTIyMjAxMTEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTIxMDU4MzMtMjAxNzEwMTIyMjAxMTEucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAyMzoxODwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDEyMTA1ODMz
LTIwMTcxMDEzMTAwMTEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbWFjLWVuLVVTLTIwMTcxMDEyMTA1ODMzLTIwMTcxMDEzMTAwMTEyLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTMtT2N0LTIwMTcgMTE6MzA8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMjEwNTgzMy0y
MDE3MTAxMzIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MTAxMjEwNTgzMy0yMDE3MTAxMzIyMDIwNC5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjEzLU9jdC0yMDE3IDIzOjQ5PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTIxMDU4MzMtMjAx
NzEwMTQxMDAyMTkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1t
YWMtZW4tVVMtMjAxNzEwMTIxMDU4MzMtMjAxNzEwMTQxMDAyMTkucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xNC1PY3QtMjAxNyAxMTozNTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDEyMjIwMTExLTIwMTcx
MDEzMTAwMTEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcxMDEyMjIwMTExLTIwMTcxMDEzMTAwMTEyLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTMtT2N0LTIwMTcgMTE6MzA8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMjIyMDExMS0yMDE3MTAx
MzIyMDIwNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1l
bi1VUy0yMDE3MTAxMjIyMDExMS0yMDE3MTAxMzIyMDIwNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjEzLU9jdC0yMDE3IDIzOjQ5PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTIyMjAxMTEtMjAxNzEwMTQx
MDAyMTkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4t
VVMtMjAxNzEwMTIyMjAxMTEtMjAxNzEwMTQxMDAyMTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xNC1PY3QtMjAxNyAxMTozNTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDEyMjIwMTExLTIwMTcxMDE0MjIw
NTQyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVT
LTIwMTcxMDEyMjIwMTExLTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTQtT2N0LTIwMTcgMjM6NTk8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMzEwMDExMi0yMDE3MTAxMzIyMDIw
NC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0y
MDE3MTAxMzEwMDExMi0yMDE3MTAxMzIyMDIwNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD40TTwvdGQ+CisJCQkJPHRkPjEzLU9jdC0yMDE3IDIzOjQ5PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTMxMDAxMTItMjAxNzEwMTQxMDAyMTku
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAx
NzEwMTMxMDAxMTItMjAxNzEwMTQxMDAyMTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
NU08L3RkPgorCQkJCTx0ZD4xNC1PY3QtMjAxNyAxMTozNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDEzMTAwMTEyLTIwMTcxMDE0MjIwNTQyLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcx
MDEzMTAwMTEyLTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZN
PC90ZD4KKwkJCQk8dGQ+MTQtT2N0LTIwMTcgMjM6NTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMzEwMDExMi0yMDE3MTAxNTEwMDEyNy5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAx
MzEwMDExMi0yMDE3MTAxNTEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwv
dGQ+CisJCQkJPHRkPjE1LU9jdC0yMDE3IDEyOjA2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTMyMjAyMDQtMjAxNzEwMTQxMDAyMTkucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTMy
MjAyMDQtMjAxNzEwMTQxMDAyMTkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3Rk
PgorCQkJCTx0ZD4xNC1PY3QtMjAxNyAxMTozNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDEzMjIwMjA0LTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDEzMjIw
MjA0LTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4K
KwkJCQk8dGQ+MTQtT2N0LTIwMTcgMjM6NTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMzIyMDIwNC0yMDE3MTAxNTEwMDEyNy5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxMzIyMDIw
NC0yMDE3MTAxNTEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJ
CQkJPHRkPjE1LU9jdC0yMDE3IDEyOjA2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTMyMjAyMDQtMjAxNzEwMTUyMjAxMDYucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTMyMjAyMDQt
MjAxNzEwMTUyMjAxMDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJ
CTx0ZD4xNS1PY3QtMjAxNyAyMzo1MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbWFjLWVuLVVTLTIwMTcxMDE0MTAwMjE5LTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE0MTAwMjE5LTIw
MTcxMDE0MjIwNTQyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8
dGQ+MTQtT2N0LTIwMTcgMjM6NTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MTAxNDEwMDIxOS0yMDE3MTAxNTEwMDEyNy5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNDEwMDIxOS0yMDE3
MTAxNTEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRk
PjE1LU9jdC0yMDE3IDEyOjA2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1t
YWMtZW4tVVMtMjAxNzEwMTQxMDAyMTktMjAxNzEwMTUyMjAxMDYucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTQxMDAyMTktMjAxNzEw
MTUyMjAxMDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4x
NS1PY3QtMjAxNyAyMzo1MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcxMDE0MTAwMjE5LTIwMTcxMDE2MTAwMTEzLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE0MTAwMjE5LTIwMTcxMDE2
MTAwMTEzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MTYt
T2N0LTIwMTcgMTE6MzE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1l
bi1VUy0yMDE3MTAxNDIyMDU0Mi0yMDE3MTAxNTEwMDEyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNDIyMDU0Mi0yMDE3MTAxNTEw
MDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjE1LU9j
dC0yMDE3IDEyOjA2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4t
VVMtMjAxNzEwMTQyMjA1NDItMjAxNzEwMTUyMjAxMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTQyMjA1NDItMjAxNzEwMTUyMjAx
MDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4xNS1PY3Qt
MjAxNyAyMzo1MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVT
LTIwMTcxMDE0MjIwNTQyLTIwMTcxMDE2MTAwMTEzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE0MjIwNTQyLTIwMTcxMDE2MTAwMTEz
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MTYtT2N0LTIw
MTcgMTE6MzE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0y
MDE3MTAxNDIyMDU0Mi0yMDE3MTAxNjIyMDQyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNDIyMDU0Mi0yMDE3MTAxNjIyMDQyNy5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjE2LU9jdC0yMDE3
IDIzOjU4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAx
NzEwMTUxMDAxMjctMjAxNzEwMTUyMjAxMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTUxMDAxMjctMjAxNzEwMTUyMjAxMDYucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Mk08L3RkPgorCQkJCTx0ZD4xNS1PY3QtMjAxNyAy
Mzo1MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcx
MDE1MTAwMTI3LTIwMTcxMDE2MTAwMTEzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE1MTAwMTI3LTIwMTcxMDE2MTAwMTEzLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MTYtT2N0LTIwMTcgMTE6
MzE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAx
NTEwMDEyNy0yMDE3MTAxNjIyMDQyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNTEwMDEyNy0yMDE3MTAxNjIyMDQyNy5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjE2LU9jdC0yMDE3IDIzOjU4
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTUx
MDAxMjctMjAxNzEwMTcxMDAxMjcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTUxMDAxMjctMjAxNzEwMTcxMDAxMjcucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4xNy1PY3QtMjAxNyAxMTo0Njwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE1MjIw
MTA2LTIwMTcxMDE2MTAwMTEzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE1MjIwMTA2LTIwMTcxMDE2MTAwMTEzLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MTYtT2N0LTIwMTcgMTE6MzE8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNTIyMDEw
Ni0yMDE3MTAxNjIyMDQyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MTAxNTIyMDEwNi0yMDE3MTAxNjIyMDQyNy5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjE2LU9jdC0yMDE3IDIzOjU4PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTUyMjAxMDYt
MjAxNzEwMTcxMDAxMjcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzEwMTUyMjAxMDYtMjAxNzEwMTcxMDAxMjcucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4xNy1PY3QtMjAxNyAxMTo0NjwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE1MjIwMTA2LTIw
MTcxMDE3MTQxMjI5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcxMDE1MjIwMTA2LTIwMTcxMDE3MTQxMjI5LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MTctT2N0LTIwMTcgMTU6NDc8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNjEwMDExMy0yMDE3
MTAxNjIyMDQyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MTAxNjEwMDExMy0yMDE3MTAxNjIyMDQyNy5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD4xMDNLPC90ZD4KKwkJCQk8dGQ+MTYtT2N0LTIwMTcgMjM6NTg8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNjEwMDExMy0yMDE3
MTAxNzEwMDEyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MTAxNjEwMDExMy0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDExOjQ2PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTYxMDAxMTMtMjAxNzEw
MTcxNDEyMjkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzEwMTYxMDAxMTMtMjAxNzEwMTcxNDEyMjkucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4xNy1PY3QtMjAxNyAxNTo0NzwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE2MTAwMTEzLTIwMTcxMDE3
MjIwNDE1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcxMDE2MTAwMTEzLTIwMTcxMDE3MjIwNDE1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MTctT2N0LTIwMTcgMjM6NTM8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNjIyMDQyNy0yMDE3MTAxNzEw
MDEyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MTAxNjIyMDQyNy0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD41TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDExOjQ2PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTYyMjA0MjctMjAxNzEwMTcxNDEy
MjkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzEwMTYyMjA0MjctMjAxNzEwMTcxNDEyMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+NU08L3RkPgorCQkJCTx0ZD4xNy1PY3QtMjAxNyAxNTo0NzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE2MjIwNDI3LTIwMTcxMDE3MjIwNDE1
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcxMDE2MjIwNDI3LTIwMTcxMDE3MjIwNDE1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjVNPC90ZD4KKwkJCQk8dGQ+MTctT2N0LTIwMTcgMjM6NTM8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNjIyMDQyNy0yMDE3MTAxODEwMDE0MC5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MTAxNjIyMDQyNy0yMDE3MTAxODEwMDE0MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41
TTwvdGQ+CisJCQkJPHRkPjE4LU9jdC0yMDE3IDExOjUwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTcxMDAxMjctMjAxNzEwMTcxNDEyMjkucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEw
MTcxMDAxMjctMjAxNzEwMTcxNDEyMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MTE1
SzwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDE1OjQ3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTcxMDAxMjctMjAxNzEwMTcyMjA0MTUucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEw
MTcxMDAxMjctMjAxNzEwMTcyMjA0MTUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08
L3RkPgorCQkJCTx0ZD4xNy1PY3QtMjAxNyAyMzo1MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE3MTAwMTI3LTIwMTcxMDE4MTAwMTQwLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE3
MTAwMTI3LTIwMTcxMDE4MTAwMTQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90
ZD4KKwkJCQk8dGQ+MTgtT2N0LTIwMTcgMTE6NTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNzEwMDEyNy0yMDE3MTAxODIyMDA0OS5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNzEw
MDEyNy0yMDE3MTAxODIyMDA0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+
CisJCQkJPHRkPjE4LU9jdC0yMDE3IDIzOjU2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTcxNDEyMjktMjAxNzEwMTcyMjA0MTUucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTcxNDEy
MjktMjAxNzEwMTcyMjA0MTUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgor
CQkJCTx0ZD4xNy1PY3QtMjAxNyAyMzo1MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE3MTQxMjI5LTIwMTcxMDE4MTAwMTQwLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE3MTQxMjI5
LTIwMTcxMDE4MTAwMTQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJ
CQk8dGQ+MTgtT2N0LTIwMTcgMTE6NTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MTAxNzE0MTIyOS0yMDE3MTAxODIyMDA0OS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNzE0MTIyOS0y
MDE3MTAxODIyMDA0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJ
PHRkPjE4LU9jdC0yMDE3IDIzOjU2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzEwMTcxNDEyMjktMjAxNzEwMTkxMDAxMDcucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTcxNDEyMjktMjAx
NzEwMTkxMDAxMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0
ZD4xOS1PY3QtMjAxNyAxMTozNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcxMDE3MjIwNDE1LTIwMTcxMDE4MTAwMTQwLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE3MjIwNDE1LTIwMTcx
MDE4MTAwMTQwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+
MTgtT2N0LTIwMTcgMTE6NTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MTAxNzIyMDQxNS0yMDE3MTAxODIyMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxNzIyMDQxNS0yMDE3MTAx
ODIyMDA0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjE4
LU9jdC0yMDE3IDIzOjU2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzEwMTcyMjA0MTUtMjAxNzEwMTkxMDAxMDcucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTcyMjA0MTUtMjAxNzEwMTkx
MDAxMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4xOS1P
Y3QtMjAxNyAxMTozNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcxMDE3MjIwNDE1LTIwMTcxMDE5MjIyMTQxLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE3MjIwNDE1LTIwMTcxMDE5MjIy
MTQxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjAtT2N0
LTIwMTcgMDA6MTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MTAxODEwMDE0MC0yMDE3MTAxODIyMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxODEwMDE0MC0yMDE3MTAxODIyMDA0
OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45OThLPC90ZD4KKwkJCQk8dGQ+MTgtT2N0
LTIwMTcgMjM6NTY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MTAxODEwMDE0MC0yMDE3MTAxOTEwMDEwNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxODEwMDE0MC0yMDE3MTAxOTEwMDEw
Ny5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjE5LU9jdC0y
MDE3IDExOjM2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzEwMTgxMDAxNDAtMjAxNzEwMTkyMjIxNDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTgxMDAxNDAtMjAxNzEwMTkyMjIxNDEu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yMC1PY3QtMjAx
NyAwMDoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcxMDE4MTAwMTQwLTIwMTcxMDIwMTAwNDI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE4MTAwMTQwLTIwMTcxMDIwMTAwNDI2LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjAtT2N0LTIwMTcg
MTE6NDI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MTAxODIyMDA0OS0yMDE3MTAxOTEwMDEwNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxODIyMDA0OS0yMDE3MTAxOTEwMDEwNy5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjE5LU9jdC0yMDE3IDEx
OjM2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEw
MTgyMjAwNDktMjAxNzEwMTkyMjIxNDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTgyMjAwNDktMjAxNzEwMTkyMjIxNDEucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yMC1PY3QtMjAxNyAwMDox
MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE4
MjIwMDQ5LTIwMTcxMDIwMTAwNDI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE4MjIwMDQ5LTIwMTcxMDIwMTAwNDI2LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjAtT2N0LTIwMTcgMTE6NDI8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxODIy
MDA0OS0yMDE3MTAyMDIyMTEyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLW1hYy1lbi1VUy0yMDE3MTAxODIyMDA0OS0yMDE3MTAyMDIyMTEyOS5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjIwLU9jdC0yMDE3IDIzOjU1PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTkxMDAx
MDctMjAxNzEwMTkyMjIxNDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTkxMDAxMDctMjAxNzEwMTkyMjIxNDEucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4yMC1PY3QtMjAxNyAwMDoxMzwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE5MTAwMTA3
LTIwMTcxMDIwMTAwNDI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbWFjLWVuLVVTLTIwMTcxMDE5MTAwMTA3LTIwMTcxMDIwMTAwNDI2LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjAtT2N0LTIwMTcgMTE6NDI8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxOTEwMDEwNy0y
MDE3MTAyMDIyMTEyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MTAxOTEwMDEwNy0yMDE3MTAyMDIyMTEyOS5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjIwLU9jdC0yMDE3IDIzOjU0PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTkxMDAxMDctMjAx
NzEwMjExMDAwMjkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1t
YWMtZW4tVVMtMjAxNzEwMTkxMDAxMDctMjAxNzEwMjExMDAwMjkucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yMS1PY3QtMjAxNyAxMTozNjwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE5MjIyMTQxLTIwMTcx
MDIwMTAwNDI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcxMDE5MjIyMTQxLTIwMTcxMDIwMTAwNDI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MjAtT2N0LTIwMTcgMTE6NDI8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAxOTIyMjE0MS0yMDE3MTAy
MDIyMTEyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1l
bi1VUy0yMDE3MTAxOTIyMjE0MS0yMDE3MTAyMDIyMTEyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjIwLU9jdC0yMDE3IDIzOjU1PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMTkyMjIxNDEtMjAxNzEwMjEx
MDAwMjkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4t
VVMtMjAxNzEwMTkyMjIxNDEtMjAxNzEwMjExMDAwMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yMS1PY3QtMjAxNyAxMTozNjwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDE5MjIyMTQxLTIwMTcxMDIxMjIw
MTIxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVT
LTIwMTcxMDE5MjIyMTQxLTIwMTcxMDIxMjIwMTIxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjItT2N0LTIwMTcgMDA6MTE8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyMDEwMDQyNi0yMDE3MTAyMDIyMTEy
OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0y
MDE3MTAyMDEwMDQyNi0yMDE3MTAyMDIyMTEyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD4zTTwvdGQ+CisJCQkJPHRkPjIwLU9jdC0yMDE3IDIzOjU0PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjAxMDA0MjYtMjAxNzEwMjExMDAwMjku
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAx
NzEwMjAxMDA0MjYtMjAxNzEwMjExMDAwMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
M008L3RkPgorCQkJCTx0ZD4yMS1PY3QtMjAxNyAxMTozNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIwMTAwNDI2LTIwMTcxMDIxMjIwMTIxLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcx
MDIwMTAwNDI2LTIwMTcxMDIxMjIwMTIxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNN
PC90ZD4KKwkJCQk8dGQ+MjItT2N0LTIwMTcgMDA6MTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyMDEwMDQyNi0yMDE3MTAyMjEwMDA1OC5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAy
MDEwMDQyNi0yMDE3MTAyMjEwMDA1OC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwv
dGQ+CisJCQkJPHRkPjIyLU9jdC0yMDE3IDExOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjAyMjExMjktMjAxNzEwMjExMDAwMjkucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjAy
MjExMjktMjAxNzEwMjExMDAwMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3Rk
PgorCQkJCTx0ZD4yMS1PY3QtMjAxNyAxMTozNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIwMjIxMTI5LTIwMTcxMDIxMjIwMTIxLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIwMjIx
MTI5LTIwMTcxMDIxMjIwMTIxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4K
KwkJCQk8dGQ+MjItT2N0LTIwMTcgMDA6MTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLW1hYy1lbi1VUy0yMDE3MTAyMDIyMTEyOS0yMDE3MTAyMjEwMDA1OC5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyMDIyMTEy
OS0yMDE3MTAyMjEwMDA1OC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJ
CQkJPHRkPjIyLU9jdC0yMDE3IDExOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjAyMjExMjktMjAxNzEwMjIyMjAxMDMucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjAyMjExMjkt
MjAxNzEwMjIyMjAxMDMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJ
CTx0ZD4yMi1PY3QtMjAxNyAyMzo0MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbWFjLWVuLVVTLTIwMTcxMDIxMTAwMDI5LTIwMTcxMDIxMjIwMTIxLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIxMTAwMDI5LTIw
MTcxMDIxMjIwMTIxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjFNPC90ZD4KKwkJCQk8
dGQ+MjItT2N0LTIwMTcgMDA6MTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MTAyMTEwMDAyOS0yMDE3MTAyMjEwMDA1OC5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyMTEwMDAyOS0yMDE3
MTAyMjEwMDA1OC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRk
PjIyLU9jdC0yMDE3IDExOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1t
YWMtZW4tVVMtMjAxNzEwMjExMDAwMjktMjAxNzEwMjIyMjAxMDMucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjExMDAwMjktMjAxNzEw
MjIyMjAxMDMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4y
Mi1PY3QtMjAxNyAyMzo0MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcxMDIxMTAwMDI5LTIwMTcxMDIzMTAwMjUyLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIxMTAwMDI5LTIwMTcxMDIz
MTAwMjUyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjMt
T2N0LTIwMTcgMTE6Mzg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1l
bi1VUy0yMDE3MTAyMTIyMDEyMS0yMDE3MTAyMjEwMDA1OC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyMTIyMDEyMS0yMDE3MTAyMjEw
MDA1OC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjIyLU9j
dC0yMDE3IDExOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4t
VVMtMjAxNzEwMjEyMjAxMjEtMjAxNzEwMjIyMjAxMDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjEyMjAxMjEtMjAxNzEwMjIyMjAx
MDMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4yMi1PY3Qt
MjAxNyAyMzozOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVT
LTIwMTcxMDIxMjIwMTIxLTIwMTcxMDIzMTAwMjUyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIxMjIwMTIxLTIwMTcxMDIzMTAwMjUy
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjMtT2N0LTIw
MTcgMTE6Mzg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0y
MDE3MTAyMTIyMDEyMS0yMDE3MTAyMzIyMDIyMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyMTIyMDEyMS0yMDE3MTAyMzIyMDIyMi5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjIzLU9jdC0yMDE3
IDIzOjMzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAx
NzEwMjIxMDAwNTgtMjAxNzEwMjIyMjAxMDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjIxMDAwNTgtMjAxNzEwMjIyMjAxMDMucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+MU08L3RkPgorCQkJCTx0ZD4yMi1PY3QtMjAxNyAy
MzozOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcx
MDIyMTAwMDU4LTIwMTcxMDIzMTAwMjUyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIyMTAwMDU4LTIwMTcxMDIzMTAwMjUyLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MjMtT2N0LTIwMTcgMTE6
Mzg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAy
MjEwMDA1OC0yMDE3MTAyMzIyMDIyMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyMjEwMDA1OC0yMDE3MTAyMzIyMDIyMi5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjIzLU9jdC0yMDE3IDIzOjMz
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjIx
MDAwNTgtMjAxNzEwMjQxMDAxMzUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjIxMDAwNTgtMjAxNzEwMjQxMDAxMzUucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNC1PY3QtMjAxNyAxMTo0Njwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIyMjIw
MTAzLTIwMTcxMDIzMTAwMjUyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIyMjIwMTAzLTIwMTcxMDIzMTAwMjUyLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MjMtT2N0LTIwMTcgMTE6Mzg8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyMjIyMDEw
My0yMDE3MTAyMzIyMDIyMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MTAyMjIyMDEwMy0yMDE3MTAyMzIyMDIyMi5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjIzLU9jdC0yMDE3IDIzOjMzPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjIyMjAxMDMt
MjAxNzEwMjQxMDAxMzUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzEwMjIyMjAxMDMtMjAxNzEwMjQxMDAxMzUucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNC1PY3QtMjAxNyAxMTo0NjwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIyMjIwMTAzLTIw
MTcxMDI0MjIwMzI1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcxMDIyMjIwMTAzLTIwMTcxMDI0MjIwMzI1LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjQtT2N0LTIwMTcgMjM6MzA8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyMzEwMDI1Mi0yMDE3
MTAyMzIyMDIyMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MTAyMzEwMDI1Mi0yMDE3MTAyMzIyMDIyMi5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjIzLU9jdC0yMDE3IDIzOjMzPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjMxMDAyNTItMjAxNzEw
MjQxMDAxMzUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzEwMjMxMDAyNTItMjAxNzEwMjQxMDAxMzUucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yNC1PY3QtMjAxNyAxMTo0NjwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIzMTAwMjUyLTIwMTcxMDI0
MjIwMzI1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcxMDIzMTAwMjUyLTIwMTcxMDI0MjIwMzI1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjQtT2N0LTIwMTcgMjM6MzA8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyMzEwMDI1Mi0yMDE3MTAyNTEw
MDQ0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MTAyMzEwMDI1Mi0yMDE3MTAyNTEwMDQ0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD41TTwvdGQ+CisJCQkJPHRkPjI1LU9jdC0yMDE3IDExOjM4PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjMyMjAyMjItMjAxNzEwMjQxMDAx
MzUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzEwMjMyMjAyMjItMjAxNzEwMjQxMDAxMzUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+NE08L3RkPgorCQkJCTx0ZD4yNC1PY3QtMjAxNyAxMTo0NjwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDIzMjIwMjIyLTIwMTcxMDI0MjIwMzI1
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcxMDIzMjIwMjIyLTIwMTcxMDI0MjIwMzI1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjRNPC90ZD4KKwkJCQk8dGQ+MjQtT2N0LTIwMTcgMjM6MzA8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyMzIyMDIyMi0yMDE3MTAyNTEwMDQ0OS5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MTAyMzIyMDIyMi0yMDE3MTAyNTEwMDQ0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41
TTwvdGQ+CisJCQkJPHRkPjI1LU9jdC0yMDE3IDExOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjMyMjAyMjItMjAxNzEwMjUyMzA0NDAucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEw
MjMyMjAyMjItMjAxNzEwMjUyMzA0NDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08
L3RkPgorCQkJCTx0ZD4yNi1PY3QtMjAxNyAwMTowMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI0MTAwMTM1LTIwMTcxMDI0MjIwMzI1LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI0
MTAwMTM1LTIwMTcxMDI0MjIwMzI1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90
ZD4KKwkJCQk8dGQ+MjQtT2N0LTIwMTcgMjM6MzA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNDEwMDEzNS0yMDE3MTAyNTEwMDQ0OS5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNDEw
MDEzNS0yMDE3MTAyNTEwMDQ0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+
CisJCQkJPHRkPjI1LU9jdC0yMDE3IDExOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjQxMDAxMzUtMjAxNzEwMjUyMzA0NDAucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjQxMDAx
MzUtMjAxNzEwMjUyMzA0NDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgor
CQkJCTx0ZD4yNi1PY3QtMjAxNyAwMTowMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI0MTAwMTM1LTIwMTcxMDI2MTAwMDQ3LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI0MTAwMTM1
LTIwMTcxMDI2MTAwMDQ3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJ
CQk8dGQ+MjYtT2N0LTIwMTcgMTI6MzA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MTAyNDIyMDMyNS0yMDE3MTAyNTEwMDQ0OS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNDIyMDMyNS0y
MDE3MTAyNTEwMDQ0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJ
PHRkPjI1LU9jdC0yMDE3IDExOjM4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzEwMjQyMjAzMjUtMjAxNzEwMjUyMzA0NDAucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjQyMjAzMjUtMjAx
NzEwMjUyMzA0NDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0
ZD4yNi1PY3QtMjAxNyAwMTowMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcxMDI0MjIwMzI1LTIwMTcxMDI2MTAwMDQ3LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI0MjIwMzI1LTIwMTcx
MDI2MTAwMDQ3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+
MjYtT2N0LTIwMTcgMTI6MzA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MTAyNDIyMDMyNS0yMDE3MTAyNjIyMTk0NS5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNDIyMDMyNS0yMDE3MTAy
NjIyMTk0NS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjI3
LU9jdC0yMDE3IDAwOjQyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzEwMjUxMDA0NDktMjAxNzEwMjUyMzA0NDAucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjUxMDA0NDktMjAxNzEwMjUy
MzA0NDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4yNi1P
Y3QtMjAxNyAwMTowMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcxMDI1MTAwNDQ5LTIwMTcxMDI2MTAwMDQ3LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI1MTAwNDQ5LTIwMTcxMDI2MTAw
MDQ3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjYtT2N0
LTIwMTcgMTI6MzA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MTAyNTEwMDQ0OS0yMDE3MTAyNjIyMTk0NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNTEwMDQ0OS0yMDE3MTAyNjIyMTk0
NS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjI3LU9jdC0y
MDE3IDAwOjQyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzEwMjUxMDA0NDktMjAxNzEwMjcxMDAxMDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjUxMDA0NDktMjAxNzEwMjcxMDAxMDMu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNy1PY3QtMjAx
NyAxMzowODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcxMDI1MjMwNDQwLTIwMTcxMDI2MTAwMDQ3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI1MjMwNDQwLTIwMTcxMDI2MTAwMDQ3LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjYtT2N0LTIwMTcg
MTI6Mjk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MTAyNTIzMDQ0MC0yMDE3MTAyNjIyMTk0NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNTIzMDQ0MC0yMDE3MTAyNjIyMTk0NS5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjI3LU9jdC0yMDE3IDAw
OjQyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEw
MjUyMzA0NDAtMjAxNzEwMjcxMDAxMDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjUyMzA0NDAtMjAxNzEwMjcxMDAxMDMucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNy1PY3QtMjAxNyAxMzow
ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI1
MjMwNDQwLTIwMTcxMDI3MjIwMDU5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI1MjMwNDQwLTIwMTcxMDI3MjIwMDU5LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjgtT2N0LTIwMTcgMDA6MDM8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNjEw
MDA0Ny0yMDE3MTAyNjIyMTk0NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNjEwMDA0Ny0yMDE3MTAyNjIyMTk0NS5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjI3LU9jdC0yMDE3IDAwOjQyPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjYxMDAw
NDctMjAxNzEwMjcxMDAxMDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjYxMDAwNDctMjAxNzEwMjcxMDAxMDMucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yNy1PY3QtMjAxNyAxMzowODwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI2MTAwMDQ3
LTIwMTcxMDI3MjIwMDU5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbWFjLWVuLVVTLTIwMTcxMDI2MTAwMDQ3LTIwMTcxMDI3MjIwMDU5LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjgtT2N0LTIwMTcgMDA6MDM8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNjEwMDA0Ny0y
MDE3MTAyODEwMDQyMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MTAyNjEwMDA0Ny0yMDE3MTAyODEwMDQyMy5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjI4LU9jdC0yMDE3IDEzOjMwPC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjYyMjE5NDUtMjAx
NzEwMjcxMDAxMDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1t
YWMtZW4tVVMtMjAxNzEwMjYyMjE5NDUtMjAxNzEwMjcxMDAxMDMucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yNy1PY3QtMjAxNyAxMzowODwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI2MjIxOTQ1LTIwMTcx
MDI3MjIwMDU5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcxMDI2MjIxOTQ1LTIwMTcxMDI3MjIwMDU5LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjgtT2N0LTIwMTcgMDA6MDI8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNjIyMTk0NS0yMDE3MTAy
ODEwMDQyMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1l
bi1VUy0yMDE3MTAyNjIyMTk0NS0yMDE3MTAyODEwMDQyMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjI4LU9jdC0yMDE3IDEzOjMwPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjYyMjE5NDUtMjAxNzEwMjgy
MjAzMjYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4t
VVMtMjAxNzEwMjYyMjE5NDUtMjAxNzEwMjgyMjAzMjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4yOC1PY3QtMjAxNyAyMzo0NzwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI3MjIw
MDU5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVT
LTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI3MjIwMDU5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjgtT2N0LTIwMTcgMDA6MDM8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNzEwMDEwMy0yMDE3MTAyODEwMDQy
My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0y
MDE3MTAyNzEwMDEwMy0yMDE3MTAyODEwMDQyMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD40TTwvdGQ+CisJCQkJPHRkPjI4LU9jdC0yMDE3IDEzOjMwPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjcxMDAxMDMtMjAxNzEwMjgyMjAzMjYu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAx
NzEwMjcxMDAxMDMtMjAxNzEwMjgyMjAzMjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
NE08L3RkPgorCQkJCTx0ZD4yOC1PY3QtMjAxNyAyMzo0NzwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI5MTAyMzAwLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcx
MDI3MTAwMTAzLTIwMTcxMDI5MTAyMzAwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRN
PC90ZD4KKwkJCQk8dGQ+MjktT2N0LTIwMTcgMTI6Mjk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNzIyMDA1OS0yMDE3MTAyODEwMDQyMy5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAy
NzIyMDA1OS0yMDE3MTAyODEwMDQyMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwv
dGQ+CisJCQkJPHRkPjI4LU9jdC0yMDE3IDEzOjMwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjcyMjAwNTktMjAxNzEwMjgyMjAzMjYucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjcy
MjAwNTktMjAxNzEwMjgyMjAzMjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3Rk
PgorCQkJCTx0ZD4yOC1PY3QtMjAxNyAyMzo0NzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI3MjIwMDU5LTIwMTcxMDI5MTAyMzAwLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI3MjIw
MDU5LTIwMTcxMDI5MTAyMzAwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4K
KwkJCQk8dGQ+MjktT2N0LTIwMTcgMTI6Mjk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNzIyMDA1OS0yMDE3MTAyOTIyMDExMi5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyNzIyMDA1
OS0yMDE3MTAyOTIyMDExMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJ
CQkJPHRkPjMwLU9jdC0yMDE3IDAyOjQ1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjgxMDA0MjMtMjAxNzEwMjgyMjAzMjYucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjgxMDA0MjMt
MjAxNzEwMjgyMjAzMjYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJ
CTx0ZD4yOC1PY3QtMjAxNyAyMzo0NzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbWFjLWVuLVVTLTIwMTcxMDI4MTAwNDIzLTIwMTcxMDI5MTAyMzAwLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI4MTAwNDIzLTIw
MTcxMDI5MTAyMzAwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8
dGQ+MjktT2N0LTIwMTcgMTI6Mjk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MTAyODEwMDQyMy0yMDE3MTAyOTIyMDExMi5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyODEwMDQyMy0yMDE3
MTAyOTIyMDExMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRk
PjMwLU9jdC0yMDE3IDAyOjQ1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1t
YWMtZW4tVVMtMjAxNzEwMjgxMDA0MjMtMjAxNzEwMzAxMDAxMzIucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjgxMDA0MjMtMjAxNzEw
MzAxMDAxMzIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4z
MC1PY3QtMjAxNyAxNDoyNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcxMDI4MTAwNDIzLTIwMTcxMDMwMTAzNjA1LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI4MTAwNDIzLTIwMTcxMDMw
MTAzNjA1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MzAt
T2N0LTIwMTcgMTg6MDU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1l
bi1VUy0yMDE3MTAyODIyMDMyNi0yMDE3MTAyOTEwMjMwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyODIyMDMyNi0yMDE3MTAyOTEw
MjMwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4xTTwvdGQ+CisJCQkJPHRkPjI5LU9j
dC0yMDE3IDEyOjI5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4t
VVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEwMjkyMjAxMTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEwMjkyMjAx
MTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Mk08L3RkPgorCQkJCTx0ZD4zMC1PY3Qt
MjAxNyAwMjo0NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVT
LTIwMTcxMDI4MjIwMzI2LTIwMTcxMDMwMTAwMTMyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI4MjIwMzI2LTIwMTcxMDMwMTAwMTMy
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjJNPC90ZD4KKwkJCQk8dGQ+MzAtT2N0LTIw
MTcgMTQ6Mjc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0y
MDE3MTAyODIyMDMyNi0yMDE3MTAzMDEwMzYwNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyODIyMDMyNi0yMDE3MTAzMDEwMzYwNS5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjMwLU9jdC0yMDE3
IDE4OjA1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAx
NzEwMjkxMDIzMDAtMjAxNzEwMjkyMjAxMTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjkxMDIzMDAtMjAxNzEwMjkyMjAxMTIucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Mk08L3RkPgorCQkJCTx0ZD4zMC1PY3QtMjAxNyAw
Mjo0NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcx
MDI5MTAyMzAwLTIwMTcxMDMwMTAwMTMyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI5MTAyMzAwLTIwMTcxMDMwMTAwMTMyLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjJNPC90ZD4KKwkJCQk8dGQ+MzAtT2N0LTIwMTcgMTQ6
Mjc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAy
OTEwMjMwMC0yMDE3MTAzMDEwMzYwNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyOTEwMjMwMC0yMDE3MTAzMDEwMzYwNS5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjMwLU9jdC0yMDE3IDE4OjA1
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjkx
MDIzMDAtMjAxNzEwMzEyMjAxMzIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjkxMDIzMDAtMjAxNzEwMzEyMjAxMzIucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAwMTo1OTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI5MTAy
MzAwLTIwMTcxMDMxMjM1MTE4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI5MTAyMzAwLTIwMTcxMDMxMjM1MTE4LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMTA6MDQ8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyOTIyMDEx
Mi0yMDE3MTAzMDEwMDEzMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MTAyOTIyMDExMi0yMDE3MTAzMDEwMDEzMi5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD4xMDBLPC90ZD4KKwkJCQk8dGQ+MzAtT2N0LTIwMTcgMTQ6Mjc8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAyOTIyMDEx
Mi0yMDE3MTAzMDEwMzYwNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MTAyOTIyMDExMi0yMDE3MTAzMDEwMzYwNS5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjMwLU9jdC0yMDE3IDE4OjA1PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMjkyMjAxMTIt
MjAxNzEwMzEyMjAxMzIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzEwMjkyMjAxMTItMjAxNzEwMzEyMjAxMzIucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAwMTo1OTwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDI5MjIwMTEyLTIw
MTcxMDMxMjM1MTE4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcxMDI5MjIwMTEyLTIwMTcxMDMxMjM1MTE4LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMTA6MDU8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAzMDEwMDEzMi0yMDE3
MTAzMTIyMDEzMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MTAzMDEwMDEzMi0yMDE3MTAzMTIyMDEzMi5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjAxLU5vdi0yMDE3IDAxOjU5PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMzAxMDAxMzItMjAxNzEw
MzEyMzUxMTgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzEwMzAxMDAxMzItMjAxNzEwMzEyMzUxMTgucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAxMDowNTwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDMwMTAwMTMyLTIwMTcxMTAx
MTA0NDMwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcxMDMwMTAwMTMyLTIwMTcxMTAxMTA0NDMwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMTY6NDk8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAzMDEwMzYwNS0yMDE3MTAzMTIy
MDEzMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MTAzMDEwMzYwNS0yMDE3MTAzMTIyMDEzMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD40TTwvdGQ+CisJCQkJPHRkPjAxLU5vdi0yMDE3IDAxOjU5PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMzAxMDM2MDUtMjAxNzEwMzEyMzUx
MTgucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzEwMzAxMDM2MDUtMjAxNzEwMzEyMzUxMTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+NE08L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAxMDowNDwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDMwMTAzNjA1LTIwMTcxMTAxMTA0NDMw
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcxMDMwMTAzNjA1LTIwMTcxMTAxMTA0NDMwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjVNPC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMTY6NDk8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAzMDEwMzYwNS0yMDE3MTEwMTIyMDEyMC5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MTAzMDEwMzYwNS0yMDE3MTEwMTIyMDEyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41
TTwvdGQ+CisJCQkJPHRkPjAxLU5vdi0yMDE3IDIzOjIyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMzEyMjAxMzItMjAxNzExMDExMDQ0MzAucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEw
MzEyMjAxMzItMjAxNzExMDExMDQ0MzAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08
L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAxNjo0OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDMxMjIwMTMyLTIwMTcxMTAxMjIwMTIwLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDMx
MjIwMTMyLTIwMTcxMTAxMjIwMTIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90
ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMjM6MjI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAzMTIyMDEzMi0yMDE3MTEwMjEwMDA0MS5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAzMTIy
MDEzMi0yMDE3MTEwMjEwMDA0MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+
CisJCQkJPHRkPjAyLU5vdi0yMDE3IDExOjI0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMzEyMzUxMTgtMjAxNzExMDExMDQ0MzAucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMzEyMzUx
MTgtMjAxNzExMDExMDQ0MzAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgor
CQkJCTx0ZD4wMS1Ob3YtMjAxNyAxNjo0OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDMxMjM1MTE4LTIwMTcxMTAxMjIwMTIwLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMDMxMjM1MTE4
LTIwMTcxMTAxMjIwMTIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJ
CQk8dGQ+MDEtTm92LTIwMTcgMjM6MjI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLW1hYy1lbi1VUy0yMDE3MTAzMTIzNTExOC0yMDE3MTEwMjEwMDA0MS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTAzMTIzNTExOC0y
MDE3MTEwMjEwMDA0MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJ
PHRkPjAyLU5vdi0yMDE3IDExOjI0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS1tYWMtZW4tVVMtMjAxNzEwMzEyMzUxMTgtMjAxNzExMDIyMjI2MjAucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEwMzEyMzUxMTgtMjAx
NzExMDIyMjI2MjAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0
ZD4wMy1Ob3YtMjAxNyAwMDowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
bWFjLWVuLVVTLTIwMTcxMTAxMTA0NDMwLTIwMTcxMTAxMjIwMTIwLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTAxMTA0NDMwLTIwMTcx
MTAxMjIwMTIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+
MDEtTm92LTIwMTcgMjM6MjI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1h
Yy1lbi1VUy0yMDE3MTEwMTEwNDQzMC0yMDE3MTEwMjEwMDA0MS5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEwMTEwNDQzMC0yMDE3MTEw
MjEwMDA0MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjAy
LU5vdi0yMDE3IDExOjI0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMt
ZW4tVVMtMjAxNzExMDExMDQ0MzAtMjAxNzExMDIyMjI2MjAucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzExMDExMDQ0MzAtMjAxNzExMDIy
MjI2MjAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4wMy1O
b3YtMjAxNyAwMDowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVu
LVVTLTIwMTcxMTAxMTA0NDMwLTIwMTcxMTAzMTAwMzMxLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTAxMTA0NDMwLTIwMTcxMTAzMTAw
MzMxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDMtTm92
LTIwMTcgMTE6MjQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1V
Uy0yMDE3MTEwMTIyMDEyMC0yMDE3MTEwMjEwMDA0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEwMTIyMDEyMC0yMDE3MTEwMjEwMDA0
MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjAyLU5vdi0y
MDE3IDExOjI0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMt
MjAxNzExMDEyMjAxMjAtMjAxNzExMDIyMjI2MjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzExMDEyMjAxMjAtMjAxNzExMDIyMjI2MjAu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4wMy1Ob3YtMjAx
NyAwMDowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIw
MTcxMTAxMjIwMTIwLTIwMTcxMTAzMTAwMzMxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTAxMjIwMTIwLTIwMTcxMTAzMTAwMzMxLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDMtTm92LTIwMTcg
MTE6MjQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3
MTEwMTIyMDEyMC0yMDE3MTEwMzIyMDcxNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEwMTIyMDEyMC0yMDE3MTEwMzIyMDcxNS5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjAzLU5vdi0yMDE3IDIz
OjI4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzEx
MDIxMDAwNDEtMjAxNzExMDIyMjI2MjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzExMDIxMDAwNDEtMjAxNzExMDIyMjI2MjAucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4wMy1Ob3YtMjAxNyAwMDow
MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTAy
MTAwMDQxLTIwMTcxMTAzMTAwMzMxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTAyMTAwMDQxLTIwMTcxMTAzMTAwMzMxLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDMtTm92LTIwMTcgMTE6MjQ8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEwMjEw
MDA0MS0yMDE3MTEwMzIyMDcxNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLW1hYy1lbi1VUy0yMDE3MTEwMjEwMDA0MS0yMDE3MTEwMzIyMDcxNS5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjAzLU5vdi0yMDE3IDIzOjI4PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzExMDIxMDAw
NDEtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzExMDIxMDAwNDEtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wNC1Ob3YtMjAxNyAxMToyNTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTAyMjIyNjIw
LTIwMTcxMTAzMTAwMzMxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbWFjLWVuLVVTLTIwMTcxMTAyMjIyNjIwLTIwMTcxMTAzMTAwMzMxLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8dGQ+MDMtTm92LTIwMTcgMTE6MjQ8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEwMjIyMjYyMC0y
MDE3MTEwMzIyMDcxNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MTEwMjIyMjYyMC0yMDE3MTEwMzIyMDcxNS5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjAzLU5vdi0yMDE3IDIzOjI4PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzExMDIyMjI2MjAtMjAx
NzExMDQxMDA0MTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1t
YWMtZW4tVVMtMjAxNzExMDIyMjI2MjAtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wNC1Ob3YtMjAxNyAxMToyNTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTAyMjIyNjIwLTIwMTcx
MTA0MjIwNDIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcxMTAyMjIyNjIwLTIwMTcxMTA0MjIwNDIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDQtTm92LTIwMTcgMjM6MzE8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEwMzEwMDMzMS0yMDE3MTEw
MzIyMDcxNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1l
bi1VUy0yMDE3MTEwMzEwMDMzMS0yMDE3MTEwMzIyMDcxNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjAzLU5vdi0yMDE3IDIzOjI4PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzExMDMxMDAzMzEtMjAxNzExMDQx
MDA0MTIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4t
VVMtMjAxNzExMDMxMDAzMzEtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4wNC1Ob3YtMjAxNyAxMToyNTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTAzMTAwMzMxLTIwMTcxMTA0MjIw
NDIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVT
LTIwMTcxMTAzMTAwMzMxLTIwMTcxMTA0MjIwNDIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDQtTm92LTIwMTcgMjM6MzE8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEwMzEwMDMzMS0yMDE3MTEwNTEwMDM1
My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0y
MDE3MTEwMzEwMDMzMS0yMDE3MTEwNTEwMDM1My5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD40TTwvdGQ+CisJCQkJPHRkPjA1LU5vdi0yMDE3IDExOjIwPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzExMDMyMjA3MTUtMjAxNzExMDQxMDA0MTIu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAx
NzExMDMyMjA3MTUtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
NE08L3RkPgorCQkJCTx0ZD4wNC1Ob3YtMjAxNyAxMToyNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTAzMjIwNzE1LTIwMTcxMTA0MjIwNDIwLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcx
MTAzMjIwNzE1LTIwMTcxMTA0MjIwNDIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRN
PC90ZD4KKwkJCQk8dGQ+MDQtTm92LTIwMTcgMjM6MzE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEwMzIyMDcxNS0yMDE3MTEwNTEwMDM1My5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEw
MzIyMDcxNS0yMDE3MTEwNTEwMDM1My5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwv
dGQ+CisJCQkJPHRkPjA1LU5vdi0yMDE3IDExOjIwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzExMDMyMjA3MTUtMjAxNzExMDUyMjA3MjEucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzExMDMy
MjA3MTUtMjAxNzExMDUyMjA3MjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3Rk
PgorCQkJCTx0ZD4wNS1Ob3YtMjAxNyAyMzozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTA0MTAwNDEyLTIwMTcxMTA0MjIwNDIwLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTA0MTAw
NDEyLTIwMTcxMTA0MjIwNDIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4K
KwkJCQk8dGQ+MDQtTm92LTIwMTcgMjM6MzE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLW1hYy1lbi1VUy0yMDE3MTEwNDEwMDQxMi0yMDE3MTEwNTEwMDM1My5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEwNDEwMDQx
Mi0yMDE3MTEwNTEwMDM1My5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJ
CQkJPHRkPjA1LU5vdi0yMDE3IDExOjIwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS1tYWMtZW4tVVMtMjAxNzExMDQxMDA0MTItMjAxNzExMDUyMjA3MjEucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzExMDQxMDA0MTIt
MjAxNzExMDUyMjA3MjEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJ
CTx0ZD4wNS1Ob3YtMjAxNyAyMzozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtbWFjLWVuLVVTLTIwMTcxMTA0MTAwNDEyLTIwMTcxMTA2MTAwMTIyLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTA0MTAwNDEyLTIw
MTcxMTA2MTAwMTIyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjNNPC90ZD4KKwkJCQk8
dGQ+MDYtTm92LTIwMTcgMTE6MjY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MTEwNDIyMDQyMC0yMDE3MTEwNTEwMDM1My5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEwNDIyMDQyMC0yMDE3
MTEwNTEwMDM1My5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4xMDRLPC90ZD4KKwkJCQk8
dGQ+MDUtTm92LTIwMTcgMTE6MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LW1hYy1lbi1VUy0yMDE3MTEwNDIyMDQyMC0yMDE3MTEwNTIyMDcyMS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEwNDIyMDQyMC0yMDE3
MTEwNTIyMDcyMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4xTTwvdGQ+CisJCQkJPHRk
PjA1LU5vdi0yMDE3IDIzOjMwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1t
YWMtZW4tVVMtMjAxNzExMDQyMjA0MjAtMjAxNzExMDYxMDAxMjIucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzExMDQyMjA0MjAtMjAxNzEx
MDYxMDAxMjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4w
Ni1Ob3YtMjAxNyAxMToyNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFj
LWVuLVVTLTIwMTcxMTA1MTAwMzUzLTIwMTcxMTA1MjIwNzIxLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtbWFjLWVuLVVTLTIwMTcxMTA1MTAwMzUzLTIwMTcxMTA1
MjIwNzIxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjFNPC90ZD4KKwkJCQk8dGQ+MDUt
Tm92LTIwMTcgMjM6MzA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1l
bi1VUy0yMDE3MTEwNTEwMDM1My0yMDE3MTEwNjEwMDEyMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLW1hYy1lbi1VUy0yMDE3MTEwNTEwMDM1My0yMDE3MTEwNjEw
MDEyMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4zTTwvdGQ+CisJCQkJPHRkPjA2LU5v
di0yMDE3IDExOjI2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4t
VVMtMjAxNzExMDUyMjA3MjEtMjAxNzExMDYxMDAxMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS1tYWMtZW4tVVMtMjAxNzExMDUyMjA3MjEtMjAxNzExMDYxMDAx
MjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+M008L3RkPgorCQkJCTx0ZD4wNi1Ob3Yt
MjAxNyAxMToyNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzA5MTkyMjAyMDItMjAxNzA5MjEyMjAyNDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkxOTIyMDIwMi0yMDE3MDkyMTIy
MDI0My5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjIyLVNl
cC0yMDE3IDAxOjE5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MDkyMDEwMDQyNi0yMDE3MDkyMTIyMDI0My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTIwMTAwNDI2LTIwMTcwOTIx
MjIwMjQzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjIt
U2VwLTIwMTcgMDE6MTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcwOTIwMTAwNDI2LTIwMTcwOTIyMTAwMDUxLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjAxMDA0MjYtMjAxNzA5
MjIxMDAwNTEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4y
Mi1TZXAtMjAxNyAxMzozNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzA5MjAyMjA0MzEtMjAxNzA5MjEyMjAyNDMucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyMDIyMDQzMS0yMDE3
MDkyMTIyMDI0My5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRk
PjIyLVNlcC0yMDE3IDAxOjE5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MDkyMDIyMDQzMS0yMDE3MDkyMjEwMDA1MS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTIwMjIwNDMxLTIw
MTcwOTIyMTAwMDUxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8
dGQ+MjItU2VwLTIwMTcgMTM6MzY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcwOTIwMjIwNDMxLTIwMTcwOTIyMjIwMTI5LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjAyMjA0MzEt
MjAxNzA5MjIyMjAxMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJ
CTx0ZD4yMy1TZXAtMjAxNyAwMTo1NjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luMzItZW4tVVMtMjAxNzA5MjExMDAxNDEtMjAxNzA5MjEyMjAyNDMucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyMTEwMDE0
MS0yMDE3MDkyMTIyMDI0My5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJ
CQkJPHRkPjIyLVNlcC0yMDE3IDAxOjE4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyMTEwMDE0MS0yMDE3MDkyMjEwMDA1MS5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTIxMTAw
MTQxLTIwMTcwOTIyMTAwMDUxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4K
KwkJCQk8dGQ+MjItU2VwLTIwMTcgMTM6MzY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTIxMTAwMTQxLTIwMTcwOTIyMjIwMTI5LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjEx
MDAxNDEtMjAxNzA5MjIyMjAxMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3Rk
PgorCQkJCTx0ZD4yMy1TZXAtMjAxNyAwMTo1NjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjExMDAxNDEtMjAxNzA5MjMxMDAwNDUucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDky
MTEwMDE0MS0yMDE3MDkyMzEwMDA0NS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwv
dGQ+CisJCQkJPHRkPjIzLVNlcC0yMDE3IDEzOjU1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyMTIyMDI0My0yMDE3MDkyMjEwMDA1MS5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcw
OTIxMjIwMjQzLTIwMTcwOTIyMTAwMDUxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVN
PC90ZD4KKwkJCQk8dGQ+MjItU2VwLTIwMTcgMTM6MzY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTIxMjIwMjQzLTIwMTcwOTIyMjIwMTI5LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAx
NzA5MjEyMjAyNDMtMjAxNzA5MjIyMjAxMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
Nk08L3RkPgorCQkJCTx0ZD4yMy1TZXAtMjAxNyAwMTo1NjwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjEyMjAyNDMtMjAxNzA5MjMxMDAwNDUu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MDkyMTIyMDI0My0yMDE3MDkyMzEwMDA0NS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD42TTwvdGQ+CisJCQkJPHRkPjIzLVNlcC0yMDE3IDEzOjU1PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyMTIyMDI0My0yMDE3MDkyMzIyMDMz
Ny5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcwOTIxMjIwMjQzLTIwMTcwOTIzMjIwMzM3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjQtU2VwLTIwMTcgMDE6NTY8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTIyMTAwMDUxLTIwMTcwOTIyMjIw
MTI5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzA5MjIxMDAwNTEtMjAxNzA5MjIyMjAxMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yMy1TZXAtMjAxNyAwMTo1NjwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjIxMDAwNTEtMjAxNzA5MjMx
MDAwNDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MDkyMjEwMDA1MS0yMDE3MDkyMzEwMDA0NS5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjIzLVNlcC0yMDE3IDEzOjU1PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyMjEwMDA1MS0yMDE3MDky
MzIyMDMzNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcwOTIyMTAwMDUxLTIwMTcwOTIzMjIwMzM3LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjQtU2VwLTIwMTcgMDE6NTY8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTIyMTAwMDUxLTIwMTcw
OTI0MTAwNTUwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzA5MjIxMDAwNTEtMjAxNzA5MjQxMDA1NTAucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNC1TZXAtMjAxNyAxNDoyODwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjIyMjAxMjktMjAx
NzA5MjMxMDAwNDUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MDkyMjIyMDEyOS0yMDE3MDkyMzEwMDA0NS5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjIzLVNlcC0yMDE3IDEzOjU1PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyMjIyMDEyOS0y
MDE3MDkyMzIyMDMzNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcwOTIyMjIwMTI5LTIwMTcwOTIzMjIwMzM3LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjQtU2VwLTIwMTcgMDE6NTY8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTIyMjIwMTI5
LTIwMTcwOTI0MTAwNTUwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luMzItZW4tVVMtMjAxNzA5MjIyMjAxMjktMjAxNzA5MjQxMDA1NTAucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNC1TZXAtMjAxNyAxNDoyODwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjIyMjAx
MjktMjAxNzA5MjQyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyMjIyMDEyOS0yMDE3MDkyNDIyMDExNi5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjI1LVNlcC0yMDE3IDAyOjMxPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyMzEw
MDA0NS0yMDE3MDkyMzIyMDMzNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTIzMTAwMDQ1LTIwMTcwOTIzMjIwMzM3LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjQtU2VwLTIwMTcgMDE6NTY8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTIz
MTAwMDQ1LTIwMTcwOTI0MTAwNTUwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjMxMDAwNDUtMjAxNzA5MjQxMDA1NTAucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNC1TZXAtMjAxNyAxNDoy
ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5
MjMxMDAwNDUtMjAxNzA5MjQyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyMzEwMDA0NS0yMDE3MDkyNDIyMDExNi5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjI1LVNlcC0yMDE3IDAy
OjMxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MDkyMzEwMDA0NS0yMDE3MDkyNTEwMDMwNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTIzMTAwMDQ1LTIwMTcwOTI1MTAwMzA3LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjUtU2VwLTIwMTcg
MTI6NTY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcwOTIzMjIwMzM3LTIwMTcwOTI0MTAwNTUwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjMyMjAzMzctMjAxNzA5MjQxMDA1NTAu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNC1TZXAtMjAx
NyAxNDoyODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMt
MjAxNzA5MjMyMjAzMzctMjAxNzA5MjQyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyMzIyMDMzNy0yMDE3MDkyNDIyMDEx
Ni5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjI1LVNlcC0y
MDE3IDAyOjMxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MDkyMzIyMDMzNy0yMDE3MDkyNTEwMDMwNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTIzMjIwMzM3LTIwMTcwOTI1MTAw
MzA3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjUtU2Vw
LTIwMTcgMTI6NTY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcwOTIzMjIwMzM3LTIwMTcwOTI1MjIwMjA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjMyMjAzMzctMjAxNzA5MjUy
MjAyMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yNi1T
ZXAtMjAxNyAwMDo1NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzIt
ZW4tVVMtMjAxNzA5MjQxMDA1NTAtMjAxNzA5MjQyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyNDEwMDU1MC0yMDE3MDky
NDIyMDExNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjI1
LVNlcC0yMDE3IDAyOjMxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4z
Mi1lbi1VUy0yMDE3MDkyNDEwMDU1MC0yMDE3MDkyNTEwMDMwNy5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI0MTAwNTUwLTIwMTcw
OTI1MTAwMzA3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+
MjUtU2VwLTIwMTcgMTI6NTY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcwOTI0MTAwNTUwLTIwMTcwOTI1MjIwMjA3LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjQxMDA1NTAtMjAx
NzA5MjUyMjAyMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0
ZD4yNi1TZXAtMjAxNyAwMDo1NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luMzItZW4tVVMtMjAxNzA5MjQxMDA1NTAtMjAxNzA5MjYxMDAyNTkucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyNDEwMDU1MC0y
MDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJ
PHRkPjI2LVNlcC0yMDE3IDEzOjAwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MDkyNDIyMDExNi0yMDE3MDkyNTEwMDMwNy5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI0MjIwMTE2
LTIwMTcwOTI1MTAwMzA3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJ
CQk8dGQ+MjUtU2VwLTIwMTcgMTI6NTY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcwOTI0MjIwMTE2LTIwMTcwOTI1MjIwMjA3LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjQyMjAx
MTYtMjAxNzA5MjUyMjAyMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgor
CQkJCTx0ZD4yNi1TZXAtMjAxNyAwMDo1NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjQyMjAxMTYtMjAxNzA5MjYxMDAyNTkucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyNDIy
MDExNi0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+
CisJCQkJPHRkPjI2LVNlcC0yMDE3IDEzOjAwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyNDIyMDExNi0yMDE3MDkyNjIyMDEwNi5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI0
MjIwMTE2LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90
ZD4KKwkJCQk8dGQ+MjctU2VwLTIwMTcgMDE6MDE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI1MTAwMzA3LTIwMTcwOTI1MjIwMjA3LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5
MjUxMDAzMDctMjAxNzA5MjUyMjAyMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08
L3RkPgorCQkJCTx0ZD4yNi1TZXAtMjAxNyAwMDo1NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjUxMDAzMDctMjAxNzA5MjYxMDAyNTkucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MDkyNTEwMDMwNy0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42
TTwvdGQ+CisJCQkJPHRkPjI2LVNlcC0yMDE3IDEzOjAwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyNTEwMDMwNy0yMDE3MDkyNjIyMDEwNi5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcwOTI1MTAwMzA3LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjZNPC90ZD4KKwkJCQk8dGQ+MjctU2VwLTIwMTcgMDE6MDE8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI1MTAwMzA3LTIwMTcwOTI3MTAwMTIw
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMt
MjAxNzA5MjUxMDAzMDctMjAxNzA5MjcxMDAxMjAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNy1TZXAtMjAxNyAxMzoxMjwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjUyMjAyMDctMjAxNzA5MjYxMDAy
NTkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MDkyNTIyMDIwNy0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI2LVNlcC0yMDE3IDEzOjAwPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyNTIyMDIwNy0yMDE3MDkyNjIy
MDEwNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcwOTI1MjIwMjA3LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjctU2VwLTIwMTcgMDE6MDE8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI1MjIwMjA3LTIwMTcwOTI3
MTAwMTIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzIt
ZW4tVVMtMjAxNzA5MjUyMjAyMDctMjAxNzA5MjcxMDAxMjAucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNy1TZXAtMjAxNyAxMzoxMjwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjUyMjAyMDctMjAxNzA5
MjgxMDAxMjMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4z
Mi1lbi1VUy0yMDE3MDkyNTIyMDIwNy0yMDE3MDkyODEwMDEyMy5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI4LVNlcC0yMDE3IDEzOjA3PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyNjEwMDI1OS0yMDE3
MDkyNjIyMDEwNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcwOTI2MTAwMjU5LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjctU2VwLTIwMTcgMDE6MDI8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI2MTAwMjU5LTIw
MTcwOTI3MTAwMTIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luMzItZW4tVVMtMjAxNzA5MjYxMDAyNTktMjAxNzA5MjcxMDAxMjAucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNy1TZXAtMjAxNyAxMzoxMjwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjYxMDAyNTkt
MjAxNzA5MjgxMDAxMjMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MDkyNjEwMDI1OS0yMDE3MDkyODEwMDEyMy5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI4LVNlcC0yMDE3IDEzOjA4PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyNjEwMDI1
OS0yMDE3MDkyODIyMDY1OC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcwOTI2MTAwMjU5LTIwMTcwOTI4MjIwNjU4LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjktU2VwLTIwMTcgMDE6MDM8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI2MjIw
MTA2LTIwMTcwOTI3MTAwMTIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjYyMjAxMDYtMjAxNzA5MjcxMDAxMjAucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNy1TZXAtMjAxNyAxMzoxMjwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjYy
MjAxMDYtMjAxNzA5MjgxMDAxMjMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyNjIyMDEwNi0yMDE3MDkyODEwMDEyMy5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI4LVNlcC0yMDE3IDEzOjA4
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDky
NjIyMDEwNi0yMDE3MDkyODIyMDY1OC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI2MjIwMTA2LTIwMTcwOTI4MjIwNjU4LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjktU2VwLTIwMTcgMDE6
MDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcw
OTI2MjIwMTA2LTIwMTcwOTI5MTAwMTIyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjYyMjAxMDYtMjAxNzA5MjkxMDAxMjIucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yOS1TZXAtMjAxNyAx
MzoxMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAx
NzA5MjcxMDAxMjAtMjAxNzA5MjgxMDAxMjMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyNzEwMDEyMC0yMDE3MDkyODEwMDEyMy5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI4LVNlcC0yMDE3
IDEzOjA4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MDkyNzEwMDEyMC0yMDE3MDkyODIyMDY1OC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI3MTAwMTIwLTIwMTcwOTI4MjIwNjU4
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjktU2VwLTIw
MTcgMDE6MDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcwOTI3MTAwMTIwLTIwMTcwOTI5MTAwMTIyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjcxMDAxMjAtMjAxNzA5MjkxMDAx
MjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yOS1TZXAt
MjAxNyAxMzoxMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzA5MjcxMDAxMjAtMjAxNzA5MjkyMjAzNTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyNzEwMDEyMC0yMDE3MDkyOTIy
MDM1Ni5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjMwLVNl
cC0yMDE3IDAxOjAzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MDkyODEwMDEyMy0yMDE3MDkyODIyMDY1OC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI4MTAwMTIzLTIwMTcwOTI4
MjIwNjU4LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+Mjkt
U2VwLTIwMTcgMDE6MDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcwOTI4MTAwMTIzLTIwMTcwOTI5MTAwMTIyLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjgxMDAxMjMtMjAxNzA5
MjkxMDAxMjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4y
OS1TZXAtMjAxNyAxMzoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzA5MjgxMDAxMjMtMjAxNzA5MjkyMjAzNTYucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyODEwMDEyMy0yMDE3
MDkyOTIyMDM1Ni5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRk
PjMwLVNlcC0yMDE3IDAxOjAzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MDkyODEwMDEyMy0yMDE3MDkzMDEwMDMwMi5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI4MTAwMTIzLTIw
MTcwOTMwMTAwMzAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8
dGQ+MzAtU2VwLTIwMTcgMTM6MDY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcwOTI4MjIwNjU4LTIwMTcwOTI5MTAwMTIyLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjgyMjA2NTgt
MjAxNzA5MjkxMDAxMjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJ
CTx0ZD4yOS1TZXAtMjAxNyAxMzoxMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luMzItZW4tVVMtMjAxNzA5MjgyMjA2NTgtMjAxNzA5MjkyMjAzNTYucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyODIyMDY1
OC0yMDE3MDkyOTIyMDM1Ni5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJ
CQkJPHRkPjMwLVNlcC0yMDE3IDAxOjAzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyODIyMDY1OC0yMDE3MDkzMDEwMDMwMi5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI4MjIw
NjU4LTIwMTcwOTMwMTAwMzAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4K
KwkJCQk8dGQ+MzAtU2VwLTIwMTcgMTM6MDY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI4MjIwNjU4LTIwMTcwOTMwMjIwMTE2LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5Mjgy
MjA2NTgtMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3Rk
PgorCQkJCTx0ZD4wMS1PY3QtMjAxNyAwMTowMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjkxMDAxMjItMjAxNzA5MjkyMjAzNTYucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDky
OTEwMDEyMi0yMDE3MDkyOTIyMDM1Ni5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwv
dGQ+CisJCQkJPHRkPjMwLVNlcC0yMDE3IDAxOjAzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyOTEwMDEyMi0yMDE3MDkzMDEwMDMwMi5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcw
OTI5MTAwMTIyLTIwMTcwOTMwMTAwMzAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZN
PC90ZD4KKwkJCQk8dGQ+MzAtU2VwLTIwMTcgMTM6MDY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI5MTAwMTIyLTIwMTcwOTMwMjIwMTE2LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAx
NzA5MjkxMDAxMjItMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
Nk08L3RkPgorCQkJCTx0ZD4wMS1PY3QtMjAxNyAwMTowMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjkxMDAxMjItMjAxNzEwMDExMDAzMzUu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MDkyOTEwMDEyMi0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD42TTwvdGQ+CisJCQkJPHRkPjAxLU9jdC0yMDE3IDEzOjA4PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyOTIyMDM1Ni0yMDE3MDkzMDEwMDMw
Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcwOTI5MjIwMzU2LTIwMTcwOTMwMTAwMzAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjVNPC90ZD4KKwkJCQk8dGQ+MzAtU2VwLTIwMTcgMTM6MDc8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTI5MjIwMzU2LTIwMTcwOTMwMjIw
MTE2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzA5MjkyMjAzNTYtMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wMS1PY3QtMjAxNyAwMTowMjwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MjkyMjAzNTYtMjAxNzEwMDEx
MDAzMzUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MDkyOTIyMDM1Ni0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjAxLU9jdC0yMDE3IDEzOjA4PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkyOTIyMDM1Ni0yMDE3MTAw
MTIyMDMwMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcwOTI5MjIwMzU2LTIwMTcxMDAxMjIwMzAxLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDItT2N0LTIwMTcgMDE6MDM8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTMwMTAwMzAyLTIwMTcw
OTMwMjIwMTE2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzA5MzAxMDAzMDItMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4wMS1PY3QtMjAxNyAwMTowMjwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MzAxMDAzMDItMjAx
NzEwMDExMDAzMzUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MDkzMDEwMDMwMi0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjAxLU9jdC0yMDE3IDEzOjA3PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkzMDEwMDMwMi0y
MDE3MTAwMTIyMDMwMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcwOTMwMTAwMzAyLTIwMTcxMDAxMjIwMzAxLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDItT2N0LTIwMTcgMDE6MDM8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTMwMTAwMzAy
LTIwMTcxMDAyMTAwMTM0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luMzItZW4tVVMtMjAxNzA5MzAxMDAzMDItMjAxNzEwMDIxMDAxMzQucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wMi1PY3QtMjAxNyAxMzoyNzwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MzAyMjAx
MTYtMjAxNzEwMDExMDAzMzUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkzMDIyMDExNi0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjAxLU9jdC0yMDE3IDEzOjA3PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkzMDIy
MDExNi0yMDE3MTAwMTIyMDMwMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTMwMjIwMTE2LTIwMTcxMDAxMjIwMzAxLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDItT2N0LTIwMTcgMDE6MDM8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcwOTMw
MjIwMTE2LTIwMTcxMDAyMTAwMTM0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5MzAyMjAxMTYtMjAxNzEwMDIxMDAxMzQucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wMi1PY3QtMjAxNyAxMzoy
NzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzA5
MzAyMjAxMTYtMjAxNzEwMDIyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MDkzMDIyMDExNi0yMDE3MTAwMjIyMDIwNC5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjAzLU9jdC0yMDE3IDAx
OjE5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MTAwMTEwMDMzNS0yMDE3MTAwMTIyMDMwMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDAxMTAwMzM1LTIwMTcxMDAxMjIwMzAxLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDItT2N0LTIwMTcg
MDE6MDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcxMDAxMTAwMzM1LTIwMTcxMDAyMTAwMTM0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDExMDAzMzUtMjAxNzEwMDIxMDAxMzQu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wMi1PY3QtMjAx
NyAxMzoyNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMt
MjAxNzEwMDExMDAzMzUtMjAxNzEwMDIyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwMTEwMDMzNS0yMDE3MTAwMjIyMDIw
NC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjAzLU9jdC0y
MDE3IDAxOjE5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MTAwMTEwMDMzNS0yMDE3MTAwMzEwMDIyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDAxMTAwMzM1LTIwMTcxMDAzMTAw
MjI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDMtT2N0
LTIwMTcgMTI6NDc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcxMDAxMjIwMzAxLTIwMTcxMDAyMTAwMTM0LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDEyMjAzMDEtMjAxNzEwMDIx
MDAxMzQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wMi1P
Y3QtMjAxNyAxMzoyODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzIt
ZW4tVVMtMjAxNzEwMDEyMjAzMDEtMjAxNzEwMDIyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwMTIyMDMwMS0yMDE3MTAw
MjIyMDIwNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjAz
LU9jdC0yMDE3IDAxOjE5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4z
Mi1lbi1VUy0yMDE3MTAwMTIyMDMwMS0yMDE3MTAwMzEwMDIyNi5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDAxMjIwMzAxLTIwMTcx
MDAzMTAwMjI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+
MDMtT2N0LTIwMTcgMTI6NDc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcxMDAxMjIwMzAxLTIwMTcxMDAzMjIwMTM4LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDEyMjAzMDEtMjAx
NzEwMDMyMjAxMzgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0
ZD4wNC1PY3QtMjAxNyAwMDo1MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luMzItZW4tVVMtMjAxNzEwMDIxMDAxMzQtMjAxNzEwMDIyMjAyMDQucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwMjEwMDEzNC0y
MDE3MTAwMjIyMDIwNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJ
PHRkPjAzLU9jdC0yMDE3IDAxOjE5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MTAwMjEwMDEzNC0yMDE3MTAwMzEwMDIyNi5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDAyMTAwMTM0
LTIwMTcxMDAzMTAwMjI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJ
CQk8dGQ+MDMtT2N0LTIwMTcgMTI6NDc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcxMDAyMTAwMTM0LTIwMTcxMDAzMjIwMTM4LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDIxMDAx
MzQtMjAxNzEwMDMyMjAxMzgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgor
CQkJCTx0ZD4wNC1PY3QtMjAxNyAwMDo1MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDIxMDAxMzQtMjAxNzEwMDQxMDAwNDkucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwMjEw
MDEzNC0yMDE3MTAwNDEwMDA0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+
CisJCQkJPHRkPjA0LU9jdC0yMDE3IDEyOjIwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwMjIyMDIwNC0yMDE3MTAwMzEwMDIyNi5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDAy
MjIwMjA0LTIwMTcxMDAzMTAwMjI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90
ZD4KKwkJCQk8dGQ+MDMtT2N0LTIwMTcgMTI6NDc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDAyMjIwMjA0LTIwMTcxMDAzMjIwMTM4LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEw
MDIyMjAyMDQtMjAxNzEwMDMyMjAxMzgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08
L3RkPgorCQkJCTx0ZD4wNC1PY3QtMjAxNyAwMDo1MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDIyMjAyMDQtMjAxNzEwMDQxMDAwNDkucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MTAwMjIyMDIwNC0yMDE3MTAwNDEwMDA0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43
TTwvdGQ+CisJCQkJPHRkPjA0LU9jdC0yMDE3IDEyOjIwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwMjIyMDIwNC0yMDE3MTAwNDIyMDMwOS5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcxMDAyMjIwMjA0LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjhNPC90ZD4KKwkJCQk8dGQ+MDUtT2N0LTIwMTcgMDA6NTg8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDAzMTAwMjI2LTIwMTcxMDAzMjIwMTM4
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMt
MjAxNzEwMDMxMDAyMjYtMjAxNzEwMDMyMjAxMzgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+NU08L3RkPgorCQkJCTx0ZD4wNC1PY3QtMjAxNyAwMDo1MjwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDMxMDAyMjYtMjAxNzEwMDQxMDAw
NDkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MTAwMzEwMDIyNi0yMDE3MTAwNDEwMDA0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA0LU9jdC0yMDE3IDEyOjIwPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwMzEwMDIyNi0yMDE3MTAwNDIy
MDMwOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcxMDAzMTAwMjI2LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDUtT2N0LTIwMTcgMDA6NTg8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDAzMTAwMjI2LTIwMTcxMDA1
MTAwMjExLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzIt
ZW4tVVMtMjAxNzEwMDMxMDAyMjYtMjAxNzEwMDUxMDAyMTEucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wNS1PY3QtMjAxNyAxMjo1ODwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDMyMjAxMzgtMjAxNzEw
MDQxMDAwNDkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4z
Mi1lbi1VUy0yMDE3MTAwMzIyMDEzOC0yMDE3MTAwNDEwMDA0OS5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA0LU9jdC0yMDE3IDEyOjIwPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwMzIyMDEzOC0yMDE3
MTAwNDIyMDMwOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcxMDAzMjIwMTM4LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDUtT2N0LTIwMTcgMDA6NTg8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDAzMjIwMTM4LTIw
MTcxMDA1MTAwMjExLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luMzItZW4tVVMtMjAxNzEwMDMyMjAxMzgtMjAxNzEwMDUxMDAyMTEucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wNS1PY3QtMjAxNyAxMjo1ODwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDMyMjAxMzgt
MjAxNzEwMDUyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MTAwMzIyMDEzOC0yMDE3MTAwNTIyMDIwNC5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjA2LU9jdC0yMDE3IDAxOjIwPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwNDEwMDA0
OS0yMDE3MTAwNDIyMDMwOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcxMDA0MTAwMDQ5LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDUtT2N0LTIwMTcgMDA6NTg8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA0MTAw
MDQ5LTIwMTcxMDA1MTAwMjExLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDQxMDAwNDktMjAxNzEwMDUxMDAyMTEucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wNS1PY3QtMjAxNyAxMjo1ODwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDQx
MDAwNDktMjAxNzEwMDUyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwNDEwMDA0OS0yMDE3MTAwNTIyMDIwNC5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjA2LU9jdC0yMDE3IDAxOjIw
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAw
NDEwMDA0OS0yMDE3MTAwNjEwMDMyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA0MTAwMDQ5LTIwMTcxMDA2MTAwMzI3LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDYtT2N0LTIwMTcgMTM6
MDQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcx
MDA0MjIwMzA5LTIwMTcxMDA1MTAwMjExLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDQyMjAzMDktMjAxNzEwMDUxMDAyMTEucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wNS1PY3QtMjAxNyAx
Mjo1ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAx
NzEwMDQyMjAzMDktMjAxNzEwMDUyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwNDIyMDMwOS0yMDE3MTAwNTIyMDIwNC5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjA2LU9jdC0yMDE3
IDAxOjIwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MTAwNDIyMDMwOS0yMDE3MTAwNjEwMDMyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA0MjIwMzA5LTIwMTcxMDA2MTAwMzI3
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDYtT2N0LTIw
MTcgMTM6MDQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcxMDA0MjIwMzA5LTIwMTcxMDA2MjIwMzA2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDQyMjAzMDktMjAxNzEwMDYyMjAz
MDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wNy1PY3Qt
MjAxNyAwMDo0NjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzEwMDUxMDAyMTEtMjAxNzEwMDUyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwNTEwMDIxMS0yMDE3MTAwNTIy
MDIwNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjA2LU9j
dC0yMDE3IDAxOjIwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MTAwNTEwMDIxMS0yMDE3MTAwNjEwMDMyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA1MTAwMjExLTIwMTcxMDA2
MTAwMzI3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDYt
T2N0LTIwMTcgMTM6MDQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcxMDA1MTAwMjExLTIwMTcxMDA2MjIwMzA2LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDUxMDAyMTEtMjAxNzEw
MDYyMjAzMDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4w
Ny1PY3QtMjAxNyAwMDo0NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzEwMDUxMDAyMTEtMjAxNzEwMDcxMDAxNDIucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwNTEwMDIxMS0yMDE3
MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRk
PjA3LU9jdC0yMDE3IDEyOjUyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MTAwNTIyMDIwNC0yMDE3MTAwNjEwMDMyNy5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA1MjIwMjA0LTIw
MTcxMDA2MTAwMzI3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8
dGQ+MDYtT2N0LTIwMTcgMTM6MDQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcxMDA1MjIwMjA0LTIwMTcxMDA2MjIwMzA2LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDUyMjAyMDQt
MjAxNzEwMDYyMjAzMDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJ
CTx0ZD4wNy1PY3QtMjAxNyAwMDo0NjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luMzItZW4tVVMtMjAxNzEwMDUyMjAyMDQtMjAxNzEwMDcxMDAxNDIucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwNTIyMDIw
NC0yMDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJ
CQkJPHRkPjA3LU9jdC0yMDE3IDEyOjUyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwNTIyMDIwNC0yMDE3MTAwNzIyMDE1Ni5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA1MjIw
MjA0LTIwMTcxMDA3MjIwMTU2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4K
KwkJCQk8dGQ+MDgtT2N0LTIwMTcgMDA6NTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA2MTAwMzI3LTIwMTcxMDA2MjIwMzA2LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDYx
MDAzMjctMjAxNzEwMDYyMjAzMDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3Rk
PgorCQkJCTx0ZD4wNy1PY3QtMjAxNyAwMDo0NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDYxMDAzMjctMjAxNzEwMDcxMDAxNDIucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAw
NjEwMDMyNy0yMDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwv
dGQ+CisJCQkJPHRkPjA3LU9jdC0yMDE3IDEyOjUyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwNjEwMDMyNy0yMDE3MTAwNzIyMDE1Ni5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcx
MDA2MTAwMzI3LTIwMTcxMDA3MjIwMTU2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZN
PC90ZD4KKwkJCQk8dGQ+MDgtT2N0LTIwMTcgMDA6NTE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA2MTAwMzI3LTIwMTcxMDA4MTMxNzAwLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAx
NzEwMDYxMDAzMjctMjAxNzEwMDgxMzE3MDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
Nk08L3RkPgorCQkJCTx0ZD4wOC1PY3QtMjAxNyAxNjoxODwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDYyMjAzMDYtMjAxNzEwMDcxMDAxNDIu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MTAwNjIyMDMwNi0yMDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD42TTwvdGQ+CisJCQkJPHRkPjA3LU9jdC0yMDE3IDEyOjUyPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwNjIyMDMwNi0yMDE3MTAwNzIyMDE1
Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcxMDA2MjIwMzA2LTIwMTcxMDA3MjIwMTU2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDgtT2N0LTIwMTcgMDA6NTE8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA2MjIwMzA2LTIwMTcxMDA4MTMx
NzAwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzEwMDYyMjAzMDYtMjAxNzEwMDgxMzE3MDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wOC1PY3QtMjAxNyAxNjoxODwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDYyMjAzMDYtMjAxNzEwMDgy
MjAxMzAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MTAwNjIyMDMwNi0yMDE3MTAwODIyMDEzMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjA5LU9jdC0yMDE3IDAwOjUxPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwNzEwMDE0Mi0yMDE3MTAw
NzIyMDE1Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcxMDA3MTAwMTQyLTIwMTcxMDA3MjIwMTU2LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDgtT2N0LTIwMTcgMDA6NTE8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA3MTAwMTQyLTIwMTcx
MDA4MTMxNzAwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzEwMDcxMDAxNDItMjAxNzEwMDgxMzE3MDAucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wOC1PY3QtMjAxNyAxNjoxODwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDcxMDAxNDItMjAx
NzEwMDgyMjAxMzAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MTAwNzEwMDE0Mi0yMDE3MTAwODIyMDEzMC5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjA5LU9jdC0yMDE3IDAwOjUwPC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwNzEwMDE0Mi0y
MDE3MTAwOTEwMDEzNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcxMDA3MTAwMTQyLTIwMTcxMDA5MTAwMTM0LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDktT2N0LTIwMTcgMTI6NTQ8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA3MjIwMTU2
LTIwMTcxMDA4MTMxNzAwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luMzItZW4tVVMtMjAxNzEwMDcyMjAxNTYtMjAxNzEwMDgxMzE3MDAucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wOC1PY3QtMjAxNyAxNjoxODwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDcyMjAx
NTYtMjAxNzEwMDgyMjAxMzAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwNzIyMDE1Ni0yMDE3MTAwODIyMDEzMC5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjA5LU9jdC0yMDE3IDAwOjUxPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwNzIy
MDE1Ni0yMDE3MTAwOTEwMDEzNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA3MjIwMTU2LTIwMTcxMDA5MTAwMTM0LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDktT2N0LTIwMTcgMTI6NTM8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA3
MjIwMTU2LTIwMTcxMDA5MjIwMTA0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDcyMjAxNTYtMjAxNzEwMDkyMjAxMDQucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xMC1PY3QtMjAxNyAwMTox
NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEw
MDgxMzE3MDAtMjAxNzEwMDgyMjAxMzAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwODEzMTcwMC0yMDE3MTAwODIyMDEzMC5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjA5LU9jdC0yMDE3IDAw
OjUwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MTAwODEzMTcwMC0yMDE3MTAwOTEwMDEzNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA4MTMxNzAwLTIwMTcxMDA5MTAwMTM0LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDktT2N0LTIwMTcg
MTI6NTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcxMDA4MTMxNzAwLTIwMTcxMDA5MjIwMTA0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDgxMzE3MDAtMjAxNzEwMDkyMjAxMDQu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xMC1PY3QtMjAx
NyAwMToxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMt
MjAxNzEwMDgxMzE3MDAtMjAxNzEwMTAxMDAyMDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwODEzMTcwMC0yMDE3MTAxMDEwMDIw
MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjEwLU9jdC0y
MDE3IDEzOjM2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MTAwODIyMDEzMC0yMDE3MTAwOTEwMDEzNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA4MjIwMTMwLTIwMTcxMDA5MTAw
MTM0LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDktT2N0
LTIwMTcgMTI6NTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcxMDA4MjIwMTMwLTIwMTcxMDA5MjIwMTA0LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDgyMjAxMzAtMjAxNzEwMDky
MjAxMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xMC1P
Y3QtMjAxNyAwMToxNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzIt
ZW4tVVMtMjAxNzEwMDgyMjAxMzAtMjAxNzEwMTAxMDAyMDAucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwODIyMDEzMC0yMDE3MTAx
MDEwMDIwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjEw
LU9jdC0yMDE3IDEzOjM2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4z
Mi1lbi1VUy0yMDE3MTAwODIyMDEzMC0yMDE3MTAxMDIyMDEwMi5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA4MjIwMTMwLTIwMTcx
MDEwMjIwMTAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+
MTEtT2N0LTIwMTcgMDE6NDQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcxMDA5MTAwMTM0LTIwMTcxMDA5MjIwMTA0LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDkxMDAxMzQtMjAx
NzEwMDkyMjAxMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0
ZD4xMC1PY3QtMjAxNyAwMToxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luMzItZW4tVVMtMjAxNzEwMDkxMDAxMzQtMjAxNzEwMTAxMDAyMDAucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwOTEwMDEzNC0y
MDE3MTAxMDEwMDIwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJ
PHRkPjEwLU9jdC0yMDE3IDEzOjM3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MTAwOTEwMDEzNC0yMDE3MTAxMDIyMDEwMi5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA5MTAwMTM0
LTIwMTcxMDEwMjIwMTAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJ
CQk8dGQ+MTEtT2N0LTIwMTcgMDE6NDQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcxMDA5MTAwMTM0LTIwMTcxMDExMTAwMTMzLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDkxMDAx
MzQtMjAxNzEwMTExMDAxMzMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgor
CQkJCTx0ZD4xMS1PY3QtMjAxNyAxNzoxMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDkyMjAxMDQtMjAxNzEwMTAxMDAyMDAucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwOTIy
MDEwNC0yMDE3MTAxMDEwMDIwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+
CisJCQkJPHRkPjEwLU9jdC0yMDE3IDEzOjM2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAwOTIyMDEwNC0yMDE3MTAxMDIyMDEwMi5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA5
MjIwMTA0LTIwMTcxMDEwMjIwMTAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90
ZD4KKwkJCQk8dGQ+MTEtT2N0LTIwMTcgMDE6NDQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDA5MjIwMTA0LTIwMTcxMDExMTAwMTMzLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEw
MDkyMjAxMDQtMjAxNzEwMTExMDAxMzMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008
L3RkPgorCQkJCTx0ZD4xMS1PY3QtMjAxNyAxNzoxMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMDkyMjAxMDQtMjAxNzEwMTEyMjAxMTMucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MTAwOTIyMDEwNC0yMDE3MTAxMTIyMDExMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43
TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDAxOjM5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMDEwMDIwMC0yMDE3MTAxMDIyMDEwMi5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcxMDEwMTAwMjAwLTIwMTcxMDEwMjIwMTAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjZNPC90ZD4KKwkJCQk8dGQ+MTEtT2N0LTIwMTcgMDE6NDQ8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDEwMTAwMjAwLTIwMTcxMDExMTAwMTMz
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMt
MjAxNzEwMTAxMDAyMDAtMjAxNzEwMTExMDAxMzMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+N008L3RkPgorCQkJCTx0ZD4xMS1PY3QtMjAxNyAxNzoxMDwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTAxMDAyMDAtMjAxNzEwMTEyMjAx
MTMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MTAxMDEwMDIwMC0yMDE3MTAxMTIyMDExMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD43TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDAxOjM5PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMDEwMDIwMC0yMDE3MTAxMjEw
MDIyOC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcxMDEwMTAwMjAwLTIwMTcxMDEyMTAwMjI4LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTItT2N0LTIwMTcgMTQ6MjE8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDEwMTAwMjAwLTIwMTcxMDEy
MTA1ODMzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzIt
ZW4tVVMtMjAxNzEwMTAxMDAyMDAtMjAxNzEwMTIxMDU4MzMucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAxNTozNTwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTAyMjAxMDItMjAxNzEw
MTExMDAxMzMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4z
Mi1lbi1VUy0yMDE3MTAxMDIyMDEwMi0yMDE3MTAxMTEwMDEzMy5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjExLU9jdC0yMDE3IDE3OjEwPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMDIyMDEwMi0yMDE3
MTAxMTIyMDExMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcxMDEwMjIwMTAyLTIwMTcxMDExMjIwMTEzLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTItT2N0LTIwMTcgMDE6NDA8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDEwMjIwMTAyLTIw
MTcxMDEyMTAwMjI4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luMzItZW4tVVMtMjAxNzEwMTAyMjAxMDItMjAxNzEwMTIxMDAyMjgucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAxNDoyMTwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTAyMjAxMDIt
MjAxNzEwMTIxMDU4MzMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MTAxMDIyMDEwMi0yMDE3MTAxMjEwNTgzMy5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDE1OjM1PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMTEwMDEz
My0yMDE3MTAxMTIyMDExMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcxMDExMTAwMTMzLTIwMTcxMDExMjIwMTEzLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MTItT2N0LTIwMTcgMDE6Mzk8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDExMTAw
MTMzLTIwMTcxMDEyMTAwMjI4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTExMDAxMzMtMjAxNzEwMTIxMDAyMjgucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAxNDoyMTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTEx
MDAxMzMtMjAxNzEwMTIxMDU4MzMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMTEwMDEzMy0yMDE3MTAxMjEwNTgzMy5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDE1OjM1
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAx
MTEwMDEzMy0yMDE3MTAxMjIyMDExMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDExMTAwMTMzLTIwMTcxMDEyMjIwMTExLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTMtT2N0LTIwMTcgMDA6
MzI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcx
MDExMjIwMTEzLTIwMTcxMDEyMTAwMjI4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTEyMjAxMTMtMjAxNzEwMTIxMDAyMjgucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAx
NDoyMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAx
NzEwMTEyMjAxMTMtMjAxNzEwMTIxMDU4MzMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMTIyMDExMy0yMDE3MTAxMjEwNTgzMy5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3
IDE1OjM1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MTAxMTIyMDExMy0yMDE3MTAxMjIyMDExMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDExMjIwMTEzLTIwMTcxMDEyMjIwMTEx
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTMtT2N0LTIw
MTcgMDA6MzI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcxMDExMjIwMTEzLTIwMTcxMDEzMTAwMTEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTEyMjAxMTMtMjAxNzEwMTMxMDAx
MTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xMy1PY3Qt
MjAxNyAxMzoxMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzEwMTIxMDAyMjgtMjAxNzEwMTIyMjAxMTEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMjEwMDIyOC0yMDE3MTAxMjIy
MDExMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjEzLU9j
dC0yMDE3IDAwOjMyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MTAxMjEwMDIyOC0yMDE3MTAxMzEwMDExMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDEyMTAwMjI4LTIwMTcxMDEz
MTAwMTEyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTMt
T2N0LTIwMTcgMTM6MTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcxMDEyMTAwMjI4LTIwMTcxMDEzMjIwMjA0LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTIxMDAyMjgtMjAxNzEw
MTMyMjAyMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4x
NC1PY3QtMjAxNyAwMToyNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzEwMTIxMDU4MzMtMjAxNzEwMTIyMjAxMTEucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMjEwNTgzMy0yMDE3
MTAxMjIyMDExMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRk
PjEzLU9jdC0yMDE3IDAwOjMyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MTAxMjEwNTgzMy0yMDE3MTAxMzEwMDExMi5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDEyMTA1ODMzLTIw
MTcxMDEzMTAwMTEyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8
dGQ+MTMtT2N0LTIwMTcgMTM6MTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcxMDEyMTA1ODMzLTIwMTcxMDEzMjIwMjA0LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTIxMDU4MzMt
MjAxNzEwMTMyMjAyMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJ
CTx0ZD4xNC1PY3QtMjAxNyAwMToyNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luMzItZW4tVVMtMjAxNzEwMTIxMDU4MzMtMjAxNzEwMTQxMDAyMTkucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMjEwNTgz
My0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJ
CQkJPHRkPjE0LU9jdC0yMDE3IDEyOjU5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMjIyMDExMS0yMDE3MTAxMzEwMDExMi5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDEyMjIw
MTExLTIwMTcxMDEzMTAwMTEyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4K
KwkJCQk8dGQ+MTMtT2N0LTIwMTcgMTM6MTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDEyMjIwMTExLTIwMTcxMDEzMjIwMjA0LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTIy
MjAxMTEtMjAxNzEwMTMyMjAyMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3Rk
PgorCQkJCTx0ZD4xNC1PY3QtMjAxNyAwMToyNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTIyMjAxMTEtMjAxNzEwMTQxMDAyMTkucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAx
MjIyMDExMS0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwv
dGQ+CisJCQkJPHRkPjE0LU9jdC0yMDE3IDEyOjU4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMjIyMDExMS0yMDE3MTAxNDIyMDU0Mi5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcx
MDEyMjIwMTExLTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhN
PC90ZD4KKwkJCQk8dGQ+MTUtT2N0LTIwMTcgMDE6NTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDEzMTAwMTEyLTIwMTcxMDEzMjIwMjA0LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAx
NzEwMTMxMDAxMTItMjAxNzEwMTMyMjAyMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
NU08L3RkPgorCQkJCTx0ZD4xNC1PY3QtMjAxNyAwMToyNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTMxMDAxMTItMjAxNzEwMTQxMDAyMTku
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MTAxMzEwMDExMi0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD43TTwvdGQ+CisJCQkJPHRkPjE0LU9jdC0yMDE3IDEyOjU5PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMzEwMDExMi0yMDE3MTAxNDIyMDU0
Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcxMDEzMTAwMTEyLTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTUtT2N0LTIwMTcgMDE6NTk8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDEzMTAwMTEyLTIwMTcxMDE1MTAw
MTI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzEwMTMxMDAxMTItMjAxNzEwMTUxMDAxMjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xNS1PY3QtMjAxNyAxNDozMjwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTMyMjAyMDQtMjAxNzEwMTQx
MDAyMTkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MTAxMzIyMDIwNC0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjE0LU9jdC0yMDE3IDEyOjU4PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxMzIyMDIwNC0yMDE3MTAx
NDIyMDU0Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcxMDEzMjIwMjA0LTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTUtT2N0LTIwMTcgMDE6NTk8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDEzMjIwMjA0LTIwMTcx
MDE1MTAwMTI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzEwMTMyMjAyMDQtMjAxNzEwMTUxMDAxMjcucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xNS1PY3QtMjAxNyAxNDozMjwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTMyMjAyMDQtMjAx
NzEwMTUyMjAxMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MTAxMzIyMDIwNC0yMDE3MTAxNTIyMDEwNi5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE2LU9jdC0yMDE3IDAyOjAzPC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNDEwMDIxOS0y
MDE3MTAxNDIyMDU0Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcxMDE0MTAwMjE5LTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTUtT2N0LTIwMTcgMDE6NTk8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE0MTAwMjE5
LTIwMTcxMDE1MTAwMTI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luMzItZW4tVVMtMjAxNzEwMTQxMDAyMTktMjAxNzEwMTUxMDAxMjcucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xNS1PY3QtMjAxNyAxNDozMjwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTQxMDAy
MTktMjAxNzEwMTUyMjAxMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNDEwMDIxOS0yMDE3MTAxNTIyMDEwNi5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjE2LU9jdC0yMDE3IDAyOjAzPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNDEw
MDIxOS0yMDE3MTAxNjEwMDExMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE0MTAwMjE5LTIwMTcxMDE2MTAwMTEzLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTYtT2N0LTIwMTcgMTQ6MjY8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE0
MjIwNTQyLTIwMTcxMDE1MTAwMTI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTQyMjA1NDItMjAxNzEwMTUxMDAxMjcucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4xNS1PY3QtMjAxNyAxNDoz
MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEw
MTQyMjA1NDItMjAxNzEwMTUyMjAxMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNDIyMDU0Mi0yMDE3MTAxNTIyMDEwNi5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjE2LU9jdC0yMDE3IDAy
OjAzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MTAxNDIyMDU0Mi0yMDE3MTAxNjEwMDExMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE0MjIwNTQyLTIwMTcxMDE2MTAwMTEzLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTYtT2N0LTIwMTcg
MTQ6MjU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcxMDE0MjIwNTQyLTIwMTcxMDE2MjIwNDI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTQyMjA1NDItMjAxNzEwMTYyMjA0Mjcu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xNy1PY3QtMjAx
NyAwMTo1NzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMt
MjAxNzEwMTUxMDAxMjctMjAxNzEwMTUyMjAxMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNTEwMDEyNy0yMDE3MTAxNTIyMDEw
Ni5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjE2LU9jdC0y
MDE3IDAyOjAzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MTAxNTEwMDEyNy0yMDE3MTAxNjEwMDExMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE1MTAwMTI3LTIwMTcxMDE2MTAw
MTEzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTYtT2N0
LTIwMTcgMTQ6MjU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcxMDE1MTAwMTI3LTIwMTcxMDE2MjIwNDI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTUxMDAxMjctMjAxNzEwMTYy
MjA0MjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xNy1P
Y3QtMjAxNyAwMTo1NzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzIt
ZW4tVVMtMjAxNzEwMTUxMDAxMjctMjAxNzEwMTcxMDAxMjcucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNTEwMDEyNy0yMDE3MTAx
NzEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjE3
LU9jdC0yMDE3IDEzOjA0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4z
Mi1lbi1VUy0yMDE3MTAxNTIyMDEwNi0yMDE3MTAxNjEwMDExMy5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE1MjIwMTA2LTIwMTcx
MDE2MTAwMTEzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+
MTYtT2N0LTIwMTcgMTQ6MjU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcxMDE1MjIwMTA2LTIwMTcxMDE2MjIwNDI3LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTUyMjAxMDYtMjAx
NzEwMTYyMjA0MjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0
ZD4xNy1PY3QtMjAxNyAwMTo1NzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luMzItZW4tVVMtMjAxNzEwMTUyMjAxMDYtMjAxNzEwMTcxMDAxMjcucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNTIyMDEwNi0y
MDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJ
PHRkPjE3LU9jdC0yMDE3IDEzOjA0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MTAxNTIyMDEwNi0yMDE3MTAxNzE0MTIyOS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE1MjIwMTA2
LTIwMTcxMDE3MTQxMjI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJ
CQk8dGQ+MTctT2N0LTIwMTcgMTg6MDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcxMDE2MTAwMTEzLTIwMTcxMDE2MjIwNDI3LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTYxMDAx
MTMtMjAxNzEwMTYyMjA0MjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgor
CQkJCTx0ZD4xNy1PY3QtMjAxNyAwMTo1NzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTYxMDAxMTMtMjAxNzEwMTcxMDAxMjcucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNjEw
MDExMy0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+
CisJCQkJPHRkPjE3LU9jdC0yMDE3IDEzOjA0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNjEwMDExMy0yMDE3MTAxNzE0MTIyOS5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE2
MTAwMTEzLTIwMTcxMDE3MTQxMjI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90
ZD4KKwkJCQk8dGQ+MTctT2N0LTIwMTcgMTg6MDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE2MTAwMTEzLTIwMTcxMDE3MjIwNDE1LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEw
MTYxMDAxMTMtMjAxNzEwMTcyMjA0MTUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08
L3RkPgorCQkJCTx0ZD4xOC1PY3QtMjAxNyAwMToxMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTYyMjA0MjctMjAxNzEwMTcxMDAxMjcucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MTAxNjIyMDQyNy0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42
TTwvdGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDEzOjA0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNjIyMDQyNy0yMDE3MTAxNzE0MTIyOS5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcxMDE2MjIwNDI3LTIwMTcxMDE3MTQxMjI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjZNPC90ZD4KKwkJCQk8dGQ+MTctT2N0LTIwMTcgMTg6MDM8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE2MjIwNDI3LTIwMTcxMDE3MjIwNDE1
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMt
MjAxNzEwMTYyMjA0MjctMjAxNzEwMTcyMjA0MTUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+Nk08L3RkPgorCQkJCTx0ZD4xOC1PY3QtMjAxNyAwMToxMTwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTYyMjA0MjctMjAxNzEwMTgxMDAx
NDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MTAxNjIyMDQyNy0yMDE3MTAxODEwMDE0MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD42TTwvdGQ+CisJCQkJPHRkPjE4LU9jdC0yMDE3IDEyOjUyPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNzEwMDEyNy0yMDE3MTAxNzE0
MTIyOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcxMDE3MTAwMTI3LTIwMTcxMDE3MTQxMjI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MTctT2N0LTIwMTcgMTg6MDM8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE3MTAwMTI3LTIwMTcxMDE3
MjIwNDE1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzIt
ZW4tVVMtMjAxNzEwMTcxMDAxMjctMjAxNzEwMTcyMjA0MTUucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4xOC1PY3QtMjAxNyAwMToxMTwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTcxMDAxMjctMjAxNzEw
MTgxMDAxNDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4z
Mi1lbi1VUy0yMDE3MTAxNzEwMDEyNy0yMDE3MTAxODEwMDE0MC5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjE4LU9jdC0yMDE3IDEyOjUyPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNzEwMDEyNy0yMDE3
MTAxODIyMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcxMDE3MTAwMTI3LTIwMTcxMDE4MjIwMDQ5LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MTktT2N0LTIwMTcgMDE6MjM8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE3MTQxMjI5LTIw
MTcxMDE3MjIwNDE1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luMzItZW4tVVMtMjAxNzEwMTcxNDEyMjktMjAxNzEwMTcyMjA0MTUucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4xOC1PY3QtMjAxNyAwMToxMDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTcxNDEyMjkt
MjAxNzEwMTgxMDAxNDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MTAxNzE0MTIyOS0yMDE3MTAxODEwMDE0MC5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjE4LU9jdC0yMDE3IDEyOjUyPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNzE0MTIy
OS0yMDE3MTAxODIyMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcxMDE3MTQxMjI5LTIwMTcxMDE4MjIwMDQ5LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MTktT2N0LTIwMTcgMDE6MjM8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE3MTQx
MjI5LTIwMTcxMDE5MTAwMTA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTcxNDEyMjktMjAxNzEwMTkxMDAxMDcucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xOS1PY3QtMjAxNyAxMzo0MTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTcy
MjA0MTUtMjAxNzEwMTgxMDAxNDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNzIyMDQxNS0yMDE3MTAxODEwMDE0MC5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjE4LU9jdC0yMDE3IDEyOjUy
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAx
NzIyMDQxNS0yMDE3MTAxODIyMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE3MjIwNDE1LTIwMTcxMDE4MjIwMDQ5LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MTktT2N0LTIwMTcgMDE6
MjM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcx
MDE3MjIwNDE1LTIwMTcxMDE5MTAwMTA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTcyMjA0MTUtMjAxNzEwMTkxMDAxMDcucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xOS1PY3QtMjAxNyAx
Mzo0MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAx
NzEwMTcyMjA0MTUtMjAxNzEwMTkyMjIxNDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxNzIyMDQxNS0yMDE3MTAxOTIyMjE0MS5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIwLU9jdC0yMDE3
IDAxOjQzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MTAxODEwMDE0MC0yMDE3MTAxODIyMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE4MTAwMTQwLTIwMTcxMDE4MjIwMDQ5
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MTktT2N0LTIw
MTcgMDE6MjM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcxMDE4MTAwMTQwLTIwMTcxMDE5MTAwMTA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTgxMDAxNDAtMjAxNzEwMTkxMDAx
MDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xOS1PY3Qt
MjAxNyAxMzo0MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzEwMTgxMDAxNDAtMjAxNzEwMTkyMjIxNDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxODEwMDE0MC0yMDE3MTAxOTIy
MjE0MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIwLU9j
dC0yMDE3IDAxOjQzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MTAxODEwMDE0MC0yMDE3MTAyMDEwMDQyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE4MTAwMTQwLTIwMTcxMDIw
MTAwNDI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjAt
T2N0LTIwMTcgMTM6MTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcxMDE4MjIwMDQ5LTIwMTcxMDE5MTAwMTA3LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTgyMjAwNDktMjAxNzEw
MTkxMDAxMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4x
OS1PY3QtMjAxNyAxMzo0MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzEwMTgyMjAwNDktMjAxNzEwMTkyMjIxNDEucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxODIyMDA0OS0yMDE3
MTAxOTIyMjE0MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRk
PjIwLU9jdC0yMDE3IDAxOjQzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MTAxODIyMDA0OS0yMDE3MTAyMDEwMDQyNi5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE4MjIwMDQ5LTIw
MTcxMDIwMTAwNDI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8
dGQ+MjAtT2N0LTIwMTcgMTM6MTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcxMDE4MjIwMDQ5LTIwMTcxMDIwMjIxMTI5LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTgyMjAwNDkt
MjAxNzEwMjAyMjExMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJ
CTx0ZD4yMS1PY3QtMjAxNyAwMToxMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luMzItZW4tVVMtMjAxNzEwMTkxMDAxMDctMjAxNzEwMTkyMjIxNDEucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxOTEwMDEw
Ny0yMDE3MTAxOTIyMjE0MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJ
CQkJPHRkPjIwLU9jdC0yMDE3IDAxOjQzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxOTEwMDEwNy0yMDE3MTAyMDEwMDQyNi5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE5MTAw
MTA3LTIwMTcxMDIwMTAwNDI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4K
KwkJCQk8dGQ+MjAtT2N0LTIwMTcgMTM6MTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE5MTAwMTA3LTIwMTcxMDIwMjIxMTI5LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTkx
MDAxMDctMjAxNzEwMjAyMjExMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3Rk
PgorCQkJCTx0ZD4yMS1PY3QtMjAxNyAwMToxMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTkxMDAxMDctMjAxNzEwMjExMDAwMjkucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAx
OTEwMDEwNy0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwv
dGQ+CisJCQkJPHRkPjIxLU9jdC0yMDE3IDEzOjE1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxOTIyMjE0MS0yMDE3MTAyMDEwMDQyNi5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcx
MDE5MjIyMTQxLTIwMTcxMDIwMTAwNDI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZN
PC90ZD4KKwkJCQk8dGQ+MjAtT2N0LTIwMTcgMTM6MTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDE5MjIyMTQxLTIwMTcxMDIwMjIxMTI5LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAx
NzEwMTkyMjIxNDEtMjAxNzEwMjAyMjExMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
Nk08L3RkPgorCQkJCTx0ZD4yMS1PY3QtMjAxNyAwMToxMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMTkyMjIxNDEtMjAxNzEwMjExMDAwMjku
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MTAxOTIyMjE0MS0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD42TTwvdGQ+CisJCQkJPHRkPjIxLU9jdC0yMDE3IDEzOjE1PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAxOTIyMjE0MS0yMDE3MTAyMTIyMDEy
MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcxMDE5MjIyMTQxLTIwMTcxMDIxMjIwMTIxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjItT2N0LTIwMTcgMDI6MjE8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIwMTAwNDI2LTIwMTcxMDIwMjIx
MTI5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzEwMjAxMDA0MjYtMjAxNzEwMjAyMjExMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yMS1PY3QtMjAxNyAwMToxMjwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjAxMDA0MjYtMjAxNzEwMjEx
MDAwMjkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MTAyMDEwMDQyNi0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjIxLU9jdC0yMDE3IDEzOjE1PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyMDEwMDQyNi0yMDE3MTAy
MTIyMDEyMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcxMDIwMTAwNDI2LTIwMTcxMDIxMjIwMTIxLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjItT2N0LTIwMTcgMDI6MjE8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIwMTAwNDI2LTIwMTcx
MDIyMTAwMDU4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzEwMjAxMDA0MjYtMjAxNzEwMjIxMDAwNTgucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMi1PY3QtMjAxNyAxMzoyNTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjAyMjExMjktMjAx
NzEwMjExMDAwMjkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MTAyMDIyMTEyOS0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjIxLU9jdC0yMDE3IDEzOjE1PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyMDIyMTEyOS0y
MDE3MTAyMTIyMDEyMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcxMDIwMjIxMTI5LTIwMTcxMDIxMjIwMTIxLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjItT2N0LTIwMTcgMDI6MjE8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIwMjIxMTI5
LTIwMTcxMDIyMTAwMDU4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luMzItZW4tVVMtMjAxNzEwMjAyMjExMjktMjAxNzEwMjIxMDAwNTgucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yMi1PY3QtMjAxNyAxMzoyNTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjAyMjEx
MjktMjAxNzEwMjIyMjAxMDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyMDIyMTEyOS0yMDE3MTAyMjIyMDEwMy5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjIzLU9jdC0yMDE3IDAxOjAzPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyMTEw
MDAyOS0yMDE3MTAyMTIyMDEyMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIxMTAwMDI5LTIwMTcxMDIxMjIwMTIxLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MjItT2N0LTIwMTcgMDI6MjE8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIx
MTAwMDI5LTIwMTcxMDIyMTAwMDU4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjExMDAwMjktMjAxNzEwMjIxMDAwNTgucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yMi1PY3QtMjAxNyAxMzoy
NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEw
MjExMDAwMjktMjAxNzEwMjIyMjAxMDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyMTEwMDAyOS0yMDE3MTAyMjIyMDEwMy5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjIzLU9jdC0yMDE3IDAx
OjAzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MTAyMTEwMDAyOS0yMDE3MTAyMzEwMDI1Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIxMTAwMDI5LTIwMTcxMDIzMTAwMjUyLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjMtT2N0LTIwMTcg
MTM6NDE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcxMDIxMjIwMTIxLTIwMTcxMDIyMTAwMDU4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjEyMjAxMjEtMjAxNzEwMjIxMDAwNTgu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4yMi1PY3QtMjAx
NyAxMzoyNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMt
MjAxNzEwMjEyMjAxMjEtMjAxNzEwMjIyMjAxMDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyMTIyMDEyMS0yMDE3MTAyMjIyMDEw
My5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjIzLU9jdC0y
MDE3IDAxOjAzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MTAyMTIyMDEyMS0yMDE3MTAyMzEwMDI1Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIxMjIwMTIxLTIwMTcxMDIzMTAw
MjUyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjMtT2N0
LTIwMTcgMTM6NDI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcxMDIxMjIwMTIxLTIwMTcxMDIzMjIwMjIyLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjEyMjAxMjEtMjAxNzEwMjMy
MjAyMjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNC1P
Y3QtMjAxNyAwMDozNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzIt
ZW4tVVMtMjAxNzEwMjIxMDAwNTgtMjAxNzEwMjIyMjAxMDMucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyMjEwMDA1OC0yMDE3MTAy
MjIyMDEwMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD40TTwvdGQ+CisJCQkJPHRkPjIz
LU9jdC0yMDE3IDAxOjAzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4z
Mi1lbi1VUy0yMDE3MTAyMjEwMDA1OC0yMDE3MTAyMzEwMDI1Mi5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIyMTAwMDU4LTIwMTcx
MDIzMTAwMjUyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+
MjMtT2N0LTIwMTcgMTM6NDI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcxMDIyMTAwMDU4LTIwMTcxMDIzMjIwMjIyLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjIxMDAwNTgtMjAx
NzEwMjMyMjAyMjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0
ZD4yNC1PY3QtMjAxNyAwMDozNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luMzItZW4tVVMtMjAxNzEwMjIxMDAwNTgtMjAxNzEwMjQxMDAxMzUucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyMjEwMDA1OC0y
MDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJ
PHRkPjI0LU9jdC0yMDE3IDEyOjQzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MTAyMjIyMDEwMy0yMDE3MTAyMzEwMDI1Mi5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIyMjIwMTAz
LTIwMTcxMDIzMTAwMjUyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJ
CQk8dGQ+MjMtT2N0LTIwMTcgMTM6NDI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcxMDIyMjIwMTAzLTIwMTcxMDIzMjIwMjIyLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjIyMjAx
MDMtMjAxNzEwMjMyMjAyMjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgor
CQkJCTx0ZD4yNC1PY3QtMjAxNyAwMDozNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjIyMjAxMDMtMjAxNzEwMjQxMDAxMzUucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyMjIy
MDEwMy0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+
CisJCQkJPHRkPjI0LU9jdC0yMDE3IDEyOjQzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyMjIyMDEwMy0yMDE3MTAyNDIyMDMyNS5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIy
MjIwMTAzLTIwMTcxMDI0MjIwMzI1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90
ZD4KKwkJCQk8dGQ+MjUtT2N0LTIwMTcgMDA6NTY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIzMTAwMjUyLTIwMTcxMDIzMjIwMjIyLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEw
MjMxMDAyNTItMjAxNzEwMjMyMjAyMjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08
L3RkPgorCQkJCTx0ZD4yNC1PY3QtMjAxNyAwMDozNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjMxMDAyNTItMjAxNzEwMjQxMDAxMzUucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MTAyMzEwMDI1Mi0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42
TTwvdGQ+CisJCQkJPHRkPjI0LU9jdC0yMDE3IDEyOjQzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyMzEwMDI1Mi0yMDE3MTAyNDIyMDMyNS5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcxMDIzMTAwMjUyLTIwMTcxMDI0MjIwMzI1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjZNPC90ZD4KKwkJCQk8dGQ+MjUtT2N0LTIwMTcgMDA6NTY8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIzMTAwMjUyLTIwMTcxMDI1MTAwNDQ5
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMt
MjAxNzEwMjMxMDAyNTItMjAxNzEwMjUxMDA0NDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNS1PY3QtMjAxNyAxMzoyMzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjMyMjAyMjItMjAxNzEwMjQxMDAx
MzUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MTAyMzIyMDIyMi0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI0LU9jdC0yMDE3IDEyOjQ0PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyMzIyMDIyMi0yMDE3MTAyNDIy
MDMyNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcxMDIzMjIwMjIyLTIwMTcxMDI0MjIwMzI1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjUtT2N0LTIwMTcgMDA6NTY8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDIzMjIwMjIyLTIwMTcxMDI1
MTAwNDQ5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzIt
ZW4tVVMtMjAxNzEwMjMyMjAyMjItMjAxNzEwMjUxMDA0NDkucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNS1PY3QtMjAxNyAxMzoyMzwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjMyMjAyMjItMjAxNzEw
MjUyMzA0NDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4z
Mi1lbi1VUy0yMDE3MTAyMzIyMDIyMi0yMDE3MTAyNTIzMDQ0MC5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI2LU9jdC0yMDE3IDAyOjM3PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyNDEwMDEzNS0yMDE3
MTAyNDIyMDMyNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcxMDI0MTAwMTM1LTIwMTcxMDI0MjIwMzI1LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjUtT2N0LTIwMTcgMDA6NTY8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI0MTAwMTM1LTIw
MTcxMDI1MTAwNDQ5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luMzItZW4tVVMtMjAxNzEwMjQxMDAxMzUtMjAxNzEwMjUxMDA0NDkucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNS1PY3QtMjAxNyAxMzoyMzwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjQxMDAxMzUt
MjAxNzEwMjUyMzA0NDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MTAyNDEwMDEzNS0yMDE3MTAyNTIzMDQ0MC5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI2LU9jdC0yMDE3IDAyOjM3PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyNDEwMDEz
NS0yMDE3MTAyNjEwMDA0Ny5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcxMDI0MTAwMTM1LTIwMTcxMDI2MTAwMDQ3LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjYtT2N0LTIwMTcgMTU6MTc8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI0MjIw
MzI1LTIwMTcxMDI1MTAwNDQ5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjQyMjAzMjUtMjAxNzEwMjUxMDA0NDkucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNS1PY3QtMjAxNyAxMzoyMzwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjQy
MjAzMjUtMjAxNzEwMjUyMzA0NDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyNDIyMDMyNS0yMDE3MTAyNTIzMDQ0MC5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI2LU9jdC0yMDE3IDAyOjM3
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAy
NDIyMDMyNS0yMDE3MTAyNjEwMDA0Ny5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI0MjIwMzI1LTIwMTcxMDI2MTAwMDQ3LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjYtT2N0LTIwMTcgMTU6
MTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcx
MDI0MjIwMzI1LTIwMTcxMDI2MjIxOTQ1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjQyMjAzMjUtMjAxNzEwMjYyMjE5NDUucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNy1PY3QtMjAxNyAw
MjozNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAx
NzEwMjUxMDA0NDktMjAxNzEwMjUyMzA0NDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyNTEwMDQ0OS0yMDE3MTAyNTIzMDQ0MC5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI2LU9jdC0yMDE3
IDAyOjM3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MTAyNTEwMDQ0OS0yMDE3MTAyNjEwMDA0Ny5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI1MTAwNDQ5LTIwMTcxMDI2MTAwMDQ3
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjYtT2N0LTIw
MTcgMTU6MTc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcxMDI1MTAwNDQ5LTIwMTcxMDI2MjIxOTQ1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjUxMDA0NDktMjAxNzEwMjYyMjE5
NDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNy1PY3Qt
MjAxNyAwMjozNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzEwMjUxMDA0NDktMjAxNzEwMjcxMDAxMDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyNTEwMDQ0OS0yMDE3MTAyNzEw
MDEwMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI3LU9j
dC0yMDE3IDE1OjI2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MTAyNTIzMDQ0MC0yMDE3MTAyNjEwMDA0Ny5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI1MjMwNDQwLTIwMTcxMDI2
MTAwMDQ3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjYt
T2N0LTIwMTcgMTU6MTY8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcxMDI1MjMwNDQwLTIwMTcxMDI2MjIxOTQ1LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjUyMzA0NDAtMjAxNzEw
MjYyMjE5NDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4y
Ny1PY3QtMjAxNyAwMjozNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzEwMjUyMzA0NDAtMjAxNzEwMjcxMDAxMDMucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyNTIzMDQ0MC0yMDE3
MTAyNzEwMDEwMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRk
PjI3LU9jdC0yMDE3IDE1OjI2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MTAyNTIzMDQ0MC0yMDE3MTAyNzIyMDA1OS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI1MjMwNDQwLTIw
MTcxMDI3MjIwMDU5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjE0TTwvdGQ+CisJCQkJ
PHRkPjI4LU9jdC0yMDE3IDAzOjAwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MTAyNjEwMDA0Ny0yMDE3MTAyNjIyMTk0NS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI2MTAwMDQ3
LTIwMTcxMDI2MjIxOTQ1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJ
CQk8dGQ+MjctT2N0LTIwMTcgMDI6MzU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcxMDI2MTAwMDQ3LTIwMTcxMDI3MTAwMTAzLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjYxMDAw
NDctMjAxNzEwMjcxMDAxMDMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgor
CQkJCTx0ZD4yNy1PY3QtMjAxNyAxNToyNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjYxMDAwNDctMjAxNzEwMjcyMjAwNTkucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyNjEw
MDA0Ny0yMDE3MTAyNzIyMDA1OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4xNE08L3Rk
PgorCQkJCTx0ZD4yOC1PY3QtMjAxNyAwMzowMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjYxMDAwNDctMjAxNzEwMjgxMDA0MjMucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAy
NjEwMDA0Ny0yMDE3MTAyODEwMDQyMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4xNE08
L3RkPgorCQkJCTx0ZD4yOC1PY3QtMjAxNyAxNTo0ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjYyMjE5NDUtMjAxNzEwMjcxMDAxMDMucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MTAyNjIyMTk0NS0yMDE3MTAyNzEwMDEwMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42
TTwvdGQ+CisJCQkJPHRkPjI3LU9jdC0yMDE3IDE1OjI2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyNjIyMTk0NS0yMDE3MTAyNzIyMDA1OS5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcxMDI2MjIxOTQ1LTIwMTcxMDI3MjIwMDU5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjE0TTwvdGQ+CisJCQkJPHRkPjI4LU9jdC0yMDE3IDAzOjAwPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyNjIyMTk0NS0yMDE3MTAyODEwMDQy
My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcxMDI2MjIxOTQ1LTIwMTcxMDI4MTAwNDIzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjE0TTwvdGQ+CisJCQkJPHRkPjI4LU9jdC0yMDE3IDE1OjQ4PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyNjIyMTk0NS0yMDE3MTAyODIy
MDMyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcxMDI2MjIxOTQ1LTIwMTcxMDI4MjIwMzI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjE0TTwvdGQ+CisJCQkJPHRkPjI5LU9jdC0yMDE3IDAxOjI4PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyNzEwMDEwMy0yMDE3MTAy
NzIyMDA1OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI3MjIwMDU5LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjE0TTwvdGQ+CisJCQkJPHRkPjI4LU9jdC0yMDE3IDAzOjAwPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyNzEwMDEwMy0yMDE3
MTAyODEwMDQyMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI4MTAwNDIzLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjE0TTwvdGQ+CisJCQkJPHRkPjI4LU9jdC0yMDE3IDE1OjQ4PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyNzEwMDEwMy0y
MDE3MTAyODIyMDMyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI4MjIwMzI2LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjE0TTwvdGQ+CisJCQkJPHRkPjI5LU9jdC0yMDE3IDAxOjI4PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyNzEwMDEw
My0yMDE3MTAyOTEwMjMwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI5MTAyMzAwLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjE0TTwvdGQ+CisJCQkJPHRkPjI5LU9jdC0yMDE3IDE0OjQ1PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyNzIy
MDA1OS0yMDE3MTAyODEwMDQyMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI3MjIwMDU5LTIwMTcxMDI4MTAwNDIzLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjgtT2N0LTIwMTcgMTU6NDg8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI3
MjIwMDU5LTIwMTcxMDI4MjIwMzI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjcyMjAwNTktMjAxNzEwMjgyMjAzMjYucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yOS1PY3QtMjAxNyAwMToy
ODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEw
MjcyMjAwNTktMjAxNzEwMjkxMDIzMDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyNzIyMDA1OS0yMDE3MTAyOTEwMjMwMC5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI5LU9jdC0yMDE3IDE0
OjQ1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MTAyNzIyMDA1OS0yMDE3MTAyOTIyMDExMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI3MjIwMDU5LTIwMTcxMDI5MjIwMTEyLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MzAtT2N0LTIwMTcg
MDQ6MTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcxMDI4MTAwNDIzLTIwMTcxMDI4MjIwMzI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjgxMDA0MjMtMjAxNzEwMjgyMjAzMjYu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yOS1PY3QtMjAx
NyAwMToyODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMt
MjAxNzEwMjgxMDA0MjMtMjAxNzEwMjkxMDIzMDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyODEwMDQyMy0yMDE3MTAyOTEwMjMw
MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI5LU9jdC0y
MDE3IDE0OjQ1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MTAyODEwMDQyMy0yMDE3MTAyOTIyMDExMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI4MTAwNDIzLTIwMTcxMDI5MjIw
MTEyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MzAtT2N0
LTIwMTcgMDQ6MTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcxMDI4MTAwNDIzLTIwMTcxMDMwMTAzNjA1LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjgxMDA0MjMtMjAxNzEwMzAx
MDM2MDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4zMC1P
Y3QtMjAxNyAyMDo0MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzIt
ZW4tVVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEwMjkxMDIzMDAucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyODIyMDMyNi0yMDE3MTAy
OTEwMjMwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI5
LU9jdC0yMDE3IDE0OjQ1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4z
Mi1lbi1VUy0yMDE3MTAyODIyMDMyNi0yMDE3MTAyOTIyMDExMi5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI4MjIwMzI2LTIwMTcx
MDI5MjIwMTEyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+
MzAtT2N0LTIwMTcgMDQ6MTk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcxMDI4MjIwMzI2LTIwMTcxMDMwMTAzNjA1LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjgyMjAzMjYtMjAx
NzEwMzAxMDM2MDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0
ZD4zMC1PY3QtMjAxNyAyMDo0MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luMzItZW4tVVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEwMzEyMjAxMzIucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyODIyMDMyNi0y
MDE3MTAzMTIyMDEzMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJ
PHRkPjAxLU5vdi0yMDE3IDA5OjU0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MTAyODIyMDMyNi0yMDE3MTAzMTIzNTExOC5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI4MjIwMzI2
LTIwMTcxMDMxMjM1MTE4LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJ
CQk8dGQ+MDEtTm92LTIwMTcgMTA6MzM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcxMDI5MTAyMzAwLTIwMTcxMDI5MjIwMTEyLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjkxMDIz
MDAtMjAxNzEwMjkyMjAxMTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgor
CQkJCTx0ZD4zMC1PY3QtMjAxNyAwNDoxODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjkxMDIzMDAtMjAxNzEwMzAxMDM2MDUucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyOTEw
MjMwMC0yMDE3MTAzMDEwMzYwNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+
CisJCQkJPHRkPjMwLU9jdC0yMDE3IDIwOjQyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyOTEwMjMwMC0yMDE3MTAzMTIyMDEzMi5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI5
MTAyMzAwLTIwMTcxMDMxMjIwMTMyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90
ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMDk6NTQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI5MTAyMzAwLTIwMTcxMDMxMjM1MTE4LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEw
MjkxMDIzMDAtMjAxNzEwMzEyMzUxMTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08
L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAxMDozMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjkyMjAxMTItMjAxNzEwMzAxMDM2MDUucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MTAyOTIyMDExMi0yMDE3MTAzMDEwMzYwNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42
TTwvdGQ+CisJCQkJPHRkPjMwLU9jdC0yMDE3IDIwOjQyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAyOTIyMDExMi0yMDE3MTAzMTIyMDEzMi5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcxMDI5MjIwMTEyLTIwMTcxMDMxMjIwMTMyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjZNPC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMDk6NTQ8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDI5MjIwMTEyLTIwMTcxMDMxMjM1MTE4
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMt
MjAxNzEwMjkyMjAxMTItMjAxNzEwMzEyMzUxMTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAxMDozMzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMjkyMjAxMTItMjAxNzExMDExMDQ0
MzAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MTAyOTIyMDExMi0yMDE3MTEwMTEwNDQzMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAxLU5vdi0yMDE3IDE2OjU2PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAzMDEwMzYwNS0yMDE3MTAzMTIy
MDEzMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcxMDMwMTAzNjA1LTIwMTcxMDMxMjIwMTMyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMDk6NTQ8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDMwMTAzNjA1LTIwMTcxMDMx
MjM1MTE4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzIt
ZW4tVVMtMjAxNzEwMzAxMDM2MDUtMjAxNzEwMzEyMzUxMTgucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAxMDozMzwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMzAxMDM2MDUtMjAxNzEx
MDExMDQ0MzAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4z
Mi1lbi1VUy0yMDE3MTAzMDEwMzYwNS0yMDE3MTEwMTEwNDQzMC5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjAxLU5vdi0yMDE3IDE2OjU2PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAzMDEwMzYwNS0yMDE3
MTEwMTIyMDEyMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjMyLWVuLVVTLTIwMTcxMDMwMTAzNjA1LTIwMTcxMTAxMjIwMTIwLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDItTm92LTIwMTcgMDA6Mzc8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDMxMjIwMTMyLTIw
MTcxMTAxMTA0NDMwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luMzItZW4tVVMtMjAxNzEwMzEyMjAxMzItMjAxNzExMDExMDQ0MzAucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAxNjo1NzwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMzEyMjAxMzIt
MjAxNzExMDEyMjAxMjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW4zMi1lbi1VUy0yMDE3MTAzMTIyMDEzMi0yMDE3MTEwMTIyMDEyMC5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjAyLU5vdi0yMDE3IDAwOjM3PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAzMTIyMDEz
Mi0yMDE3MTEwMjEwMDA0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjMyLWVuLVVTLTIwMTcxMDMxMjIwMTMyLTIwMTcxMTAyMTAwMDQxLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDItTm92LTIwMTcgMTI6NTA8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDMxMjM1
MTE4LTIwMTcxMTAxMTA0NDMwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMzEyMzUxMTgtMjAxNzExMDExMDQ0MzAucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAxNjo1Njwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMzEy
MzUxMTgtMjAxNzExMDEyMjAxMjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAzMTIzNTExOC0yMDE3MTEwMTIyMDEyMC5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjAyLU5vdi0yMDE3IDAwOjM3
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTAz
MTIzNTExOC0yMDE3MTEwMjEwMDA0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMDMxMjM1MTE4LTIwMTcxMTAyMTAwMDQxLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDItTm92LTIwMTcgMTI6
NTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcx
MDMxMjM1MTE4LTIwMTcxMTAyMjIyNjIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEwMzEyMzUxMTgtMjAxNzExMDIyMjI2MjAucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMy1Ob3YtMjAxNyAw
MToxNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAx
NzExMDExMDQ0MzAtMjAxNzExMDEyMjAxMjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwMTEwNDQzMC0yMDE3MTEwMTIyMDEyMC5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjAyLU5vdi0yMDE3
IDAwOjM3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MTEwMTEwNDQzMC0yMDE3MTEwMjEwMDA0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMTAxMTA0NDMwLTIwMTcxMTAyMTAwMDQx
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDItTm92LTIw
MTcgMTI6NTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcxMTAxMTA0NDMwLTIwMTcxMTAyMjIyNjIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzExMDExMDQ0MzAtMjAxNzExMDIyMjI2
MjAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMy1Ob3Yt
MjAxNyAwMToxNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzExMDExMDQ0MzAtMjAxNzExMDMxMDAzMzEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwMTEwNDQzMC0yMDE3MTEwMzEw
MDMzMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAzLU5v
di0yMDE3IDEyOjU3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MTEwMTIyMDEyMC0yMDE3MTEwMjEwMDA0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMTAxMjIwMTIwLTIwMTcxMTAy
MTAwMDQxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDIt
Tm92LTIwMTcgMTI6NTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcxMTAxMjIwMTIwLTIwMTcxMTAyMjIyNjIwLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzExMDEyMjAxMjAtMjAxNzEx
MDIyMjI2MjAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4w
My1Ob3YtMjAxNyAwMToxNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzExMDEyMjAxMjAtMjAxNzExMDMxMDAzMzEucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwMTIyMDEyMC0yMDE3
MTEwMzEwMDMzMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRk
PjAzLU5vdi0yMDE3IDEyOjU3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MTEwMTIyMDEyMC0yMDE3MTEwMzIyMDcxNS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMTAxMjIwMTIwLTIw
MTcxMTAzMjIwNzE1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8
dGQ+MDQtTm92LTIwMTcgMDA6NDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcxMTAyMTAwMDQxLTIwMTcxMTAyMjIyNjIwLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzExMDIxMDAwNDEt
MjAxNzExMDIyMjI2MjAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJ
CTx0ZD4wMy1Ob3YtMjAxNyAwMToxNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luMzItZW4tVVMtMjAxNzExMDIxMDAwNDEtMjAxNzExMDMxMDAzMzEucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwMjEwMDA0
MS0yMDE3MTEwMzEwMDMzMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJ
CQkJPHRkPjAzLU5vdi0yMDE3IDEyOjU3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwMjEwMDA0MS0yMDE3MTEwMzIyMDcxNS5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMTAyMTAw
MDQxLTIwMTcxMTAzMjIwNzE1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4K
KwkJCQk8dGQ+MDQtTm92LTIwMTcgMDA6NDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMTAyMTAwMDQxLTIwMTcxMTA0MTAwNDEyLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzExMDIx
MDAwNDEtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3Rk
PgorCQkJCTx0ZD4wNC1Ob3YtMjAxNyAxMjo0NjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzExMDIyMjI2MjAtMjAxNzExMDMxMDAzMzEucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEw
MjIyMjYyMC0yMDE3MTEwMzEwMDMzMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwv
dGQ+CisJCQkJPHRkPjAzLU5vdi0yMDE3IDEyOjU3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwMjIyMjYyMC0yMDE3MTEwMzIyMDcxNS5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcx
MTAyMjIyNjIwLTIwMTcxMTAzMjIwNzE1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZN
PC90ZD4KKwkJCQk8dGQ+MDQtTm92LTIwMTcgMDA6NDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMTAyMjIyNjIwLTIwMTcxMTA0MTAwNDEyLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAx
NzExMDIyMjI2MjAtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
N008L3RkPgorCQkJCTx0ZD4wNC1Ob3YtMjAxNyAxMjo0NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzExMDIyMjI2MjAtMjAxNzExMDQyMjA0MjAu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0y
MDE3MTEwMjIyMjYyMC0yMDE3MTEwNDIyMDQyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD44TTwvdGQ+CisJCQkJPHRkPjA1LU5vdi0yMDE3IDAxOjAwPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwMzEwMDMzMS0yMDE3MTEwMzIyMDcx
NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVT
LTIwMTcxMTAzMTAwMzMxLTIwMTcxMTAzMjIwNzE1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDQtTm92LTIwMTcgMDA6NDA8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMTAzMTAwMzMxLTIwMTcxMTA0MTAw
NDEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4t
VVMtMjAxNzExMDMxMDAzMzEtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNC1Ob3YtMjAxNyAxMjo0NTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzExMDMxMDAzMzEtMjAxNzExMDQy
MjA0MjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1l
bi1VUy0yMDE3MTEwMzEwMDMzMS0yMDE3MTEwNDIyMDQyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjA1LU5vdi0yMDE3IDAxOjAwPC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwMzEwMDMzMS0yMDE3MTEw
NTEwMDM1My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMy
LWVuLVVTLTIwMTcxMTAzMTAwMzMxLTIwMTcxMTA1MTAwMzUzLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDUtTm92LTIwMTcgMTI6NDE8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMTAzMjIwNzE1LTIwMTcx
MTA0MTAwNDEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
MzItZW4tVVMtMjAxNzExMDMyMjA3MTUtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNC1Ob3YtMjAxNyAxMjo0NTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzExMDMyMjA3MTUtMjAx
NzExMDQyMjA0MjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW4zMi1lbi1VUy0yMDE3MTEwMzIyMDcxNS0yMDE3MTEwNDIyMDQyMC5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjA1LU5vdi0yMDE3IDAxOjAwPC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwMzIyMDcxNS0y
MDE3MTEwNTEwMDM1My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjMyLWVuLVVTLTIwMTcxMTAzMjIwNzE1LTIwMTcxMTA1MTAwMzUzLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MDUtTm92LTIwMTcgMTI6NDE8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMTAzMjIwNzE1
LTIwMTcxMTA1MjIwNzIxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luMzItZW4tVVMtMjAxNzExMDMyMjA3MTUtMjAxNzExMDUyMjA3MjEucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wNi1Ob3YtMjAxNyAwMDo1MDwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzExMDQxMDA0
MTItMjAxNzExMDQyMjA0MjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwNDEwMDQxMi0yMDE3MTEwNDIyMDQyMC5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA1LU5vdi0yMDE3IDAxOjAwPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwNDEw
MDQxMi0yMDE3MTEwNTEwMDM1My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMTA0MTAwNDEyLTIwMTcxMTA1MTAwMzUzLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDUtTm92LTIwMTcgMTI6NDE8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMTA0
MTAwNDEyLTIwMTcxMTA1MjIwNzIxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzExMDQxMDA0MTItMjAxNzExMDUyMjA3MjEucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNi1Ob3YtMjAxNyAwMDo1
MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzEx
MDQxMDA0MTItMjAxNzExMDYxMDAxMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwNDEwMDQxMi0yMDE3MTEwNjEwMDEyMi5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA2LU5vdi0yMDE3IDEy
OjQyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3
MTEwNDIyMDQyMC0yMDE3MTEwNTEwMDM1My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMTA0MjIwNDIwLTIwMTcxMTA1MTAwMzUzLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDUtTm92LTIwMTcg
MTI6NDE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIw
MTcxMTA0MjIwNDIwLTIwMTcxMTA1MjIwNzIxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzExMDQyMjA0MjAtMjAxNzExMDUyMjA3MjEu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NE08L3RkPgorCQkJCTx0ZD4wNi1Ob3YtMjAx
NyAwMDo1MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMt
MjAxNzExMDQyMjA0MjAtMjAxNzExMDYxMDAxMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwNDIyMDQyMC0yMDE3MTEwNjEwMDEy
Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjA2LU5vdi0y
MDE3IDEyOjQyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1V
Uy0yMDE3MTEwNTEwMDM1My0yMDE3MTEwNTIyMDcyMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVuLVVTLTIwMTcxMTA1MTAwMzUzLTIwMTcxMTA1MjIw
NzIxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjRNPC90ZD4KKwkJCQk8dGQ+MDYtTm92
LTIwMTcgMDA6NTA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjMyLWVu
LVVTLTIwMTcxMTA1MTAwMzUzLTIwMTcxMTA2MTAwMTIyLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luMzItZW4tVVMtMjAxNzExMDUxMDAzNTMtMjAxNzExMDYx
MDAxMjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wNi1O
b3YtMjAxNyAxMjo0MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luMzIt
ZW4tVVMtMjAxNzExMDUyMjA3MjEtMjAxNzExMDYxMDAxMjIucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW4zMi1lbi1VUy0yMDE3MTEwNTIyMDcyMS0yMDE3MTEw
NjEwMDEyMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjA2
LU5vdi0yMDE3IDEyOjQyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MDkxOTIyMDIwMi0yMDE3MDkyMTIyMDI0My5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTE5MjIwMjAyLTIwMTcw
OTIxMjIwMjQzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+
MjItU2VwLTIwMTcgMDE6MzM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcwOTIwMTAwNDI2LTIwMTcwOTIxMjIwMjQzLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjAxMDA0MjYtMjAx
NzA5MjEyMjAyNDMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0
ZD4yMi1TZXAtMjAxNyAwMTozMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luNjQtZW4tVVMtMjAxNzA5MjAxMDA0MjYtMjAxNzA5MjIxMDAwNTEucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyMDEwMDQyNi0y
MDE3MDkyMjEwMDA1MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJ
PHRkPjIyLVNlcC0yMDE3IDEzOjM3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW42NC1lbi1VUy0yMDE3MDkyMDIyMDQzMS0yMDE3MDkyMTIyMDI0My5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTIwMjIwNDMx
LTIwMTcwOTIxMjIwMjQzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJ
CQk8dGQ+MjItU2VwLTIwMTcgMDE6MzI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcwOTIwMjIwNDMxLTIwMTcwOTIyMTAwMDUxLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjAyMjA0
MzEtMjAxNzA5MjIxMDAwNTEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgor
CQkJCTx0ZD4yMi1TZXAtMjAxNyAxMzozNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjAyMjA0MzEtMjAxNzA5MjIyMjAxMjkucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyMDIy
MDQzMS0yMDE3MDkyMjIyMDEyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+
CisJCQkJPHRkPjIzLVNlcC0yMDE3IDAyOjExPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyMTEwMDE0MS0yMDE3MDkyMTIyMDI0My5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTIx
MTAwMTQxLTIwMTcwOTIxMjIwMjQzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90
ZD4KKwkJCQk8dGQ+MjItU2VwLTIwMTcgMDE6MzM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTIxMTAwMTQxLTIwMTcwOTIyMTAwMDUxLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5
MjExMDAxNDEtMjAxNzA5MjIxMDAwNTEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008
L3RkPgorCQkJCTx0ZD4yMi1TZXAtMjAxNyAxMzozNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjExMDAxNDEtMjAxNzA5MjIyMjAxMjkucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MDkyMTEwMDE0MS0yMDE3MDkyMjIyMDEyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43
TTwvdGQ+CisJCQkJPHRkPjIzLVNlcC0yMDE3IDAyOjExPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyMTEwMDE0MS0yMDE3MDkyMzEwMDA0NS5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcwOTIxMTAwMTQxLTIwMTcwOTIzMTAwMDQ1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjdNPC90ZD4KKwkJCQk8dGQ+MjMtU2VwLTIwMTcgMTM6NTg8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTIxMjIwMjQzLTIwMTcwOTIyMTAwMDUx
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMt
MjAxNzA5MjEyMjAyNDMtMjAxNzA5MjIxMDAwNTEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+N008L3RkPgorCQkJCTx0ZD4yMi1TZXAtMjAxNyAxMzozNzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjEyMjAyNDMtMjAxNzA5MjIyMjAx
MjkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1V
Uy0yMDE3MDkyMTIyMDI0My0yMDE3MDkyMjIyMDEyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIzLVNlcC0yMDE3IDAyOjExPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyMTIyMDI0My0yMDE3MDkyMzEw
MDA0NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcwOTIxMjIwMjQzLTIwMTcwOTIzMTAwMDQ1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjMtU2VwLTIwMTcgMTM6NTg8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTIxMjIwMjQzLTIwMTcwOTI0
MTAwNTUwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQt
ZW4tVVMtMjAxNzA5MjEyMjAyNDMtMjAxNzA5MjQxMDA1NTAucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNC1TZXAtMjAxNyAxNDozMDwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjIxMDAwNTEtMjAxNzA5
MjIyMjAxMjkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MDkyMjEwMDA1MS0yMDE3MDkyMjIyMDEyOS5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIzLVNlcC0yMDE3IDAyOjExPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyMjEwMDA1MS0yMDE3
MDkyMzEwMDA0NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcwOTIyMTAwMDUxLTIwMTcwOTIzMTAwMDQ1LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjMtU2VwLTIwMTcgMTM6NTg8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTIyMTAwMDUxLTIw
MTcwOTI0MTAwNTUwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luNjQtZW4tVVMtMjAxNzA5MjIxMDAwNTEtMjAxNzA5MjQxMDA1NTAucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNC1TZXAtMjAxNyAxNDozMDwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjIxMDAwNTEt
MjAxNzA5MjQyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW42NC1lbi1VUy0yMDE3MDkyMjEwMDA1MS0yMDE3MDkyNDIyMDExNi5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI1LVNlcC0yMDE3IDAyOjQ4PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyMjIyMDEy
OS0yMDE3MDkyMzEwMDA0NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcwOTIyMjIwMTI5LTIwMTcwOTIzMTAwMDQ1LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjMtU2VwLTIwMTcgMTM6NTg8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTIyMjIw
MTI5LTIwMTcwOTI0MTAwNTUwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjIyMjAxMjktMjAxNzA5MjQxMDA1NTAucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNC1TZXAtMjAxNyAxNDozMDwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjIy
MjAxMjktMjAxNzA5MjQyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyMjIyMDEyOS0yMDE3MDkyNDIyMDExNi5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI1LVNlcC0yMDE3IDAyOjQ3
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDky
MjIyMDEyOS0yMDE3MDkyNTEwMDMwNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTIyMjIwMTI5LTIwMTcwOTI1MTAwMzA3LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjUtU2VwLTIwMTcgMTM6
MDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcw
OTIzMTAwMDQ1LTIwMTcwOTI0MTAwNTUwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjMxMDAwNDUtMjAxNzA5MjQxMDA1NTAucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNC1TZXAtMjAxNyAx
NDozMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAx
NzA5MjMxMDAwNDUtMjAxNzA5MjQyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyMzEwMDA0NS0yMDE3MDkyNDIyMDExNi5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI1LVNlcC0yMDE3
IDAyOjQ4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MDkyMzEwMDA0NS0yMDE3MDkyNTEwMDMwNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTIzMTAwMDQ1LTIwMTcwOTI1MTAwMzA3
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjUtU2VwLTIw
MTcgMTM6MDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcwOTIzMTAwMDQ1LTIwMTcwOTI1MjIwMjA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjMxMDAwNDUtMjAxNzA5MjUyMjAy
MDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNi1TZXAt
MjAxNyAwMTowNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4t
VVMtMjAxNzA5MjQxMDA1NTAtMjAxNzA5MjQyMjAxMTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyNDEwMDU1MC0yMDE3MDkyNDIy
MDExNi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI1LVNl
cC0yMDE3IDAyOjQ3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1l
bi1VUy0yMDE3MDkyNDEwMDU1MC0yMDE3MDkyNTEwMDMwNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI0MTAwNTUwLTIwMTcwOTI1
MTAwMzA3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjUt
U2VwLTIwMTcgMTM6MDQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcwOTI0MTAwNTUwLTIwMTcwOTI1MjIwMjA3LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjQxMDA1NTAtMjAxNzA5
MjUyMjAyMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4y
Ni1TZXAtMjAxNyAwMTowNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
NjQtZW4tVVMtMjAxNzA5MjQxMDA1NTAtMjAxNzA5MjYxMDAyNTkucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyNDEwMDU1MC0yMDE3
MDkyNjEwMDI1OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRk
PjI2LVNlcC0yMDE3IDEzOjA4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW42NC1lbi1VUy0yMDE3MDkyNDIyMDExNi0yMDE3MDkyNTEwMDMwNy5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI0MjIwMTE2LTIw
MTcwOTI1MTAwMzA3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8
dGQ+MjUtU2VwLTIwMTcgMTM6MDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcwOTI0MjIwMTE2LTIwMTcwOTI1MjIwMjA3LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjQyMjAxMTYt
MjAxNzA5MjUyMjAyMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJ
CTx0ZD4yNi1TZXAtMjAxNyAwMTowNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzA5MjQyMjAxMTYtMjAxNzA5MjYxMDAyNTkucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyNDIyMDEx
Ni0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJ
CQkJPHRkPjI2LVNlcC0yMDE3IDEzOjA3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyNDIyMDExNi0yMDE3MDkyNjIyMDEwNi5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI0MjIw
MTE2LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4K
KwkJCQk8dGQ+MjctU2VwLTIwMTcgMDE6MDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI1MTAwMzA3LTIwMTcwOTI1MjIwMjA3LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjUx
MDAzMDctMjAxNzA5MjUyMjAyMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3Rk
PgorCQkJCTx0ZD4yNi1TZXAtMjAxNyAwMTowNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjUxMDAzMDctMjAxNzA5MjYxMDAyNTkucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDky
NTEwMDMwNy0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwv
dGQ+CisJCQkJPHRkPjI2LVNlcC0yMDE3IDEzOjA4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyNTEwMDMwNy0yMDE3MDkyNjIyMDEwNi5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcw
OTI1MTAwMzA3LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdN
PC90ZD4KKwkJCQk8dGQ+MjctU2VwLTIwMTcgMDE6MDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI1MTAwMzA3LTIwMTcwOTI3MTAwMTIwLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAx
NzA5MjUxMDAzMDctMjAxNzA5MjcxMDAxMjAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
N008L3RkPgorCQkJCTx0ZD4yNy1TZXAtMjAxNyAxMzoyOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjUyMjAyMDctMjAxNzA5MjYxMDAyNTku
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MDkyNTIyMDIwNy0yMDE3MDkyNjEwMDI1OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD43TTwvdGQ+CisJCQkJPHRkPjI2LVNlcC0yMDE3IDEzOjA3PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyNTIyMDIwNy0yMDE3MDkyNjIyMDEw
Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcwOTI1MjIwMjA3LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjctU2VwLTIwMTcgMDE6MDM8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI1MjIwMjA3LTIwMTcwOTI3MTAw
MTIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4t
VVMtMjAxNzA5MjUyMjAyMDctMjAxNzA5MjcxMDAxMjAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNy1TZXAtMjAxNyAxMzoyOTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjUyMjAyMDctMjAxNzA5Mjgx
MDAxMjMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1l
bi1VUy0yMDE3MDkyNTIyMDIwNy0yMDE3MDkyODEwMDEyMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjI4LVNlcC0yMDE3IDEzOjA5PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyNjEwMDI1OS0yMDE3MDky
NjIyMDEwNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcwOTI2MTAwMjU5LTIwMTcwOTI2MjIwMTA2LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjctU2VwLTIwMTcgMDE6MDM8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI2MTAwMjU5LTIwMTcw
OTI3MTAwMTIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
NjQtZW4tVVMtMjAxNzA5MjYxMDAyNTktMjAxNzA5MjcxMDAxMjAucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNy1TZXAtMjAxNyAxMzoyOTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjYxMDAyNTktMjAx
NzA5MjgxMDAxMjMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW42NC1lbi1VUy0yMDE3MDkyNjEwMDI1OS0yMDE3MDkyODEwMDEyMy5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI4LVNlcC0yMDE3IDEzOjA5PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyNjEwMDI1OS0y
MDE3MDkyODIyMDY1OC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcwOTI2MTAwMjU5LTIwMTcwOTI4MjIwNjU4LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MjktU2VwLTIwMTcgMDE6MjQ8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI2MjIwMTA2
LTIwMTcwOTI3MTAwMTIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzA5MjYyMjAxMDYtMjAxNzA5MjcxMDAxMjAucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yNy1TZXAtMjAxNyAxMzoyOTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjYyMjAx
MDYtMjAxNzA5MjgxMDAxMjMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyNjIyMDEwNi0yMDE3MDkyODEwMDEyMy5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI4LVNlcC0yMDE3IDEzOjA5PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyNjIy
MDEwNi0yMDE3MDkyODIyMDY1OC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI2MjIwMTA2LTIwMTcwOTI4MjIwNjU4LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjktU2VwLTIwMTcgMDE6MjQ8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI2
MjIwMTA2LTIwMTcwOTI5MTAwMTIyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjYyMjAxMDYtMjAxNzA5MjkxMDAxMjIucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yOS1TZXAtMjAxNyAxMzox
MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5
MjcxMDAxMjAtMjAxNzA5MjgxMDAxMjMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyNzEwMDEyMC0yMDE3MDkyODEwMDEyMy5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI4LVNlcC0yMDE3IDEz
OjA5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MDkyNzEwMDEyMC0yMDE3MDkyODIyMDY1OC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI3MTAwMTIwLTIwMTcwOTI4MjIwNjU4LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjktU2VwLTIwMTcg
MDE6MjQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcwOTI3MTAwMTIwLTIwMTcwOTI5MTAwMTIyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjcxMDAxMjAtMjAxNzA5MjkxMDAxMjIu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yOS1TZXAtMjAx
NyAxMzoxMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMt
MjAxNzA5MjcxMDAxMjAtMjAxNzA5MjkyMjAzNTYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyNzEwMDEyMC0yMDE3MDkyOTIyMDM1
Ni5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjMwLVNlcC0y
MDE3IDAxOjA1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1V
Uy0yMDE3MDkyODEwMDEyMy0yMDE3MDkyODIyMDY1OC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI4MTAwMTIzLTIwMTcwOTI4MjIw
NjU4LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjktU2Vw
LTIwMTcgMDE6MjQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcwOTI4MTAwMTIzLTIwMTcwOTI5MTAwMTIyLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjgxMDAxMjMtMjAxNzA5Mjkx
MDAxMjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yOS1T
ZXAtMjAxNyAxMzoxMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQt
ZW4tVVMtMjAxNzA5MjgxMDAxMjMtMjAxNzA5MjkyMjAzNTYucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyODEwMDEyMy0yMDE3MDky
OTIyMDM1Ni5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjMw
LVNlcC0yMDE3IDAxOjA1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MDkyODEwMDEyMy0yMDE3MDkzMDEwMDMwMi5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI4MTAwMTIzLTIwMTcw
OTMwMTAwMzAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+
MzAtU2VwLTIwMTcgMTM6MTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcwOTI4MjIwNjU4LTIwMTcwOTI5MTAwMTIyLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjgyMjA2NTgtMjAx
NzA5MjkxMDAxMjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0
ZD4yOS1TZXAtMjAxNyAxMzoxMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luNjQtZW4tVVMtMjAxNzA5MjgyMjA2NTgtMjAxNzA5MjkyMjAzNTYucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyODIyMDY1OC0y
MDE3MDkyOTIyMDM1Ni5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJ
PHRkPjMwLVNlcC0yMDE3IDAxOjA1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW42NC1lbi1VUy0yMDE3MDkyODIyMDY1OC0yMDE3MDkzMDEwMDMwMi5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI4MjIwNjU4
LTIwMTcwOTMwMTAwMzAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJ
CQk8dGQ+MzAtU2VwLTIwMTcgMTM6MTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcwOTI4MjIwNjU4LTIwMTcwOTMwMjIwMTE2LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjgyMjA2
NTgtMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgor
CQkJCTx0ZD4wMS1PY3QtMjAxNyAwMTowNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjkxMDAxMjItMjAxNzA5MjkyMjAzNTYucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyOTEw
MDEyMi0yMDE3MDkyOTIyMDM1Ni5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+
CisJCQkJPHRkPjMwLVNlcC0yMDE3IDAxOjA1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyOTEwMDEyMi0yMDE3MDkzMDEwMDMwMi5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI5
MTAwMTIyLTIwMTcwOTMwMTAwMzAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90
ZD4KKwkJCQk8dGQ+MzAtU2VwLTIwMTcgMTM6MTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI5MTAwMTIyLTIwMTcwOTMwMjIwMTE2LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5
MjkxMDAxMjItMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008
L3RkPgorCQkJCTx0ZD4wMS1PY3QtMjAxNyAwMTowNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjkxMDAxMjItMjAxNzEwMDExMDAzMzUucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MDkyOTEwMDEyMi0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43
TTwvdGQ+CisJCQkJPHRkPjAxLU9jdC0yMDE3IDEzOjAzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyOTIyMDM1Ni0yMDE3MDkzMDEwMDMwMi5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcwOTI5MjIwMzU2LTIwMTcwOTMwMTAwMzAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjZNPC90ZD4KKwkJCQk8dGQ+MzAtU2VwLTIwMTcgMTM6MTg8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTI5MjIwMzU2LTIwMTcwOTMwMjIwMTE2
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMt
MjAxNzA5MjkyMjAzNTYtMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+N008L3RkPgorCQkJCTx0ZD4wMS1PY3QtMjAxNyAwMTowNTwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MjkyMjAzNTYtMjAxNzEwMDExMDAz
MzUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1V
Uy0yMDE3MDkyOTIyMDM1Ni0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAxLU9jdC0yMDE3IDEzOjAzPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkyOTIyMDM1Ni0yMDE3MTAwMTIy
MDMwMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcwOTI5MjIwMzU2LTIwMTcxMDAxMjIwMzAxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDItT2N0LTIwMTcgMDE6MDg8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTMwMTAwMzAyLTIwMTcwOTMw
MjIwMTE2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQt
ZW4tVVMtMjAxNzA5MzAxMDAzMDItMjAxNzA5MzAyMjAxMTYucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMS1PY3QtMjAxNyAwMTowNTwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MzAxMDAzMDItMjAxNzEw
MDExMDAzMzUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MDkzMDEwMDMwMi0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAxLU9jdC0yMDE3IDEzOjAzPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkzMDEwMDMwMi0yMDE3
MTAwMTIyMDMwMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcwOTMwMTAwMzAyLTIwMTcxMDAxMjIwMzAxLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDItT2N0LTIwMTcgMDE6MDg8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTMwMTAwMzAyLTIw
MTcxMDAyMTAwMTM0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luNjQtZW4tVVMtMjAxNzA5MzAxMDAzMDItMjAxNzEwMDIxMDAxMzQucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMi1PY3QtMjAxNyAxMzoyMzwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MzAyMjAxMTYt
MjAxNzEwMDExMDAzMzUucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW42NC1lbi1VUy0yMDE3MDkzMDIyMDExNi0yMDE3MTAwMTEwMDMzNS5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjAxLU9jdC0yMDE3IDEzOjAzPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkzMDIyMDEx
Ni0yMDE3MTAwMTIyMDMwMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcwOTMwMjIwMTE2LTIwMTcxMDAxMjIwMzAxLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDItT2N0LTIwMTcgMDE6MDg8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcwOTMwMjIw
MTE2LTIwMTcxMDAyMTAwMTM0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MzAyMjAxMTYtMjAxNzEwMDIxMDAxMzQucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMi1PY3QtMjAxNyAxMzoyMzwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzA5MzAy
MjAxMTYtMjAxNzEwMDIyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MDkzMDIyMDExNi0yMDE3MTAwMjIyMDIwNC5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAzLU9jdC0yMDE3IDAxOjE5
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAw
MTEwMDMzNS0yMDE3MTAwMTIyMDMwMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDAxMTAwMzM1LTIwMTcxMDAxMjIwMzAxLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDItT2N0LTIwMTcgMDE6
MDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcx
MDAxMTAwMzM1LTIwMTcxMDAyMTAwMTM0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDExMDAzMzUtMjAxNzEwMDIxMDAxMzQucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMi1PY3QtMjAxNyAx
MzoyMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAx
NzEwMDExMDAzMzUtMjAxNzEwMDIyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwMTEwMDMzNS0yMDE3MTAwMjIyMDIwNC5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAzLU9jdC0yMDE3
IDAxOjE5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MTAwMTEwMDMzNS0yMDE3MTAwMzEwMDIyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDAxMTAwMzM1LTIwMTcxMDAzMTAwMjI2
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDMtT2N0LTIw
MTcgMTI6NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcxMDAxMjIwMzAxLTIwMTcxMDAyMTAwMTM0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDEyMjAzMDEtMjAxNzEwMDIxMDAx
MzQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wMi1PY3Qt
MjAxNyAxMzoyMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4t
VVMtMjAxNzEwMDEyMjAzMDEtMjAxNzEwMDIyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwMTIyMDMwMS0yMDE3MTAwMjIy
MDIwNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAzLU9j
dC0yMDE3IDAxOjE5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1l
bi1VUy0yMDE3MTAwMTIyMDMwMS0yMDE3MTAwMzEwMDIyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDAxMjIwMzAxLTIwMTcxMDAz
MTAwMjI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDMt
T2N0LTIwMTcgMTI6NDk8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcxMDAxMjIwMzAxLTIwMTcxMDAzMjIwMTM4LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDEyMjAzMDEtMjAxNzEw
MDMyMjAxMzgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4w
NC1PY3QtMjAxNyAwMTowMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
NjQtZW4tVVMtMjAxNzEwMDIxMDAxMzQtMjAxNzEwMDIyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwMjEwMDEzNC0yMDE3
MTAwMjIyMDIwNC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRk
PjAzLU9jdC0yMDE3IDAxOjE5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW42NC1lbi1VUy0yMDE3MTAwMjEwMDEzNC0yMDE3MTAwMzEwMDIyNi5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDAyMTAwMTM0LTIw
MTcxMDAzMTAwMjI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8
dGQ+MDMtT2N0LTIwMTcgMTI6NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcxMDAyMTAwMTM0LTIwMTcxMDAzMjIwMTM4LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDIxMDAxMzQt
MjAxNzEwMDMyMjAxMzgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJ
CTx0ZD4wNC1PY3QtMjAxNyAwMTowMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzEwMDIxMDAxMzQtMjAxNzEwMDQxMDAwNDkucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwMjEwMDEz
NC0yMDE3MTAwNDEwMDA0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJ
CQkJPHRkPjA0LU9jdC0yMDE3IDEyOjI4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwMjIyMDIwNC0yMDE3MTAwMzEwMDIyNi5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDAyMjIw
MjA0LTIwMTcxMDAzMTAwMjI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4K
KwkJCQk8dGQ+MDMtT2N0LTIwMTcgMTI6NDg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDAyMjIwMjA0LTIwMTcxMDAzMjIwMTM4LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDIy
MjAyMDQtMjAxNzEwMDMyMjAxMzgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3Rk
PgorCQkJCTx0ZD4wNC1PY3QtMjAxNyAwMTowMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDIyMjAyMDQtMjAxNzEwMDQxMDAwNDkucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAw
MjIyMDIwNC0yMDE3MTAwNDEwMDA0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwv
dGQ+CisJCQkJPHRkPjA0LU9jdC0yMDE3IDEyOjI4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwMjIyMDIwNC0yMDE3MTAwNDIyMDMwOS5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcx
MDAyMjIwMjA0LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlN
PC90ZD4KKwkJCQk8dGQ+MDUtT2N0LTIwMTcgMDE6MDE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDAzMTAwMjI2LTIwMTcxMDAzMjIwMTM4LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAx
NzEwMDMxMDAyMjYtMjAxNzEwMDMyMjAxMzgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
N008L3RkPgorCQkJCTx0ZD4wNC1PY3QtMjAxNyAwMTowMDwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDMxMDAyMjYtMjAxNzEwMDQxMDAwNDku
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MTAwMzEwMDIyNi0yMDE3MTAwNDEwMDA0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD45TTwvdGQ+CisJCQkJPHRkPjA0LU9jdC0yMDE3IDEyOjI4PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwMzEwMDIyNi0yMDE3MTAwNDIyMDMw
OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcxMDAzMTAwMjI2LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjlNPC90ZD4KKwkJCQk8dGQ+MDUtT2N0LTIwMTcgMDE6MDE8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDAzMTAwMjI2LTIwMTcxMDA1MTAw
MjExLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4t
VVMtMjAxNzEwMDMxMDAyMjYtMjAxNzEwMDUxMDAyMTEucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4wNS1PY3QtMjAxNyAxMjo1OTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDMyMjAxMzgtMjAxNzEwMDQx
MDAwNDkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1l
bi1VUy0yMDE3MTAwMzIyMDEzOC0yMDE3MTAwNDEwMDA0OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjA0LU9jdC0yMDE3IDEyOjI4PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwMzIyMDEzOC0yMDE3MTAw
NDIyMDMwOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcxMDAzMjIwMTM4LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MDUtT2N0LTIwMTcgMDE6MDE8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDAzMjIwMTM4LTIwMTcx
MDA1MTAwMjExLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
NjQtZW4tVVMtMjAxNzEwMDMyMjAxMzgtMjAxNzEwMDUxMDAyMTEucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4wNS1PY3QtMjAxNyAxMjo1OTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDMyMjAxMzgtMjAx
NzEwMDUyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW42NC1lbi1VUy0yMDE3MTAwMzIyMDEzOC0yMDE3MTAwNTIyMDIwNC5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjA2LU9jdC0yMDE3IDAxOjI2PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwNDEwMDA0OS0y
MDE3MTAwNDIyMDMwOS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcxMDA0MTAwMDQ5LTIwMTcxMDA0MjIwMzA5LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDUtT2N0LTIwMTcgMDE6MDE8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA0MTAwMDQ5
LTIwMTcxMDA1MTAwMjExLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzEwMDQxMDAwNDktMjAxNzEwMDUxMDAyMTEucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNS1PY3QtMjAxNyAxMjo1OTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDQxMDAw
NDktMjAxNzEwMDUyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwNDEwMDA0OS0yMDE3MTAwNTIyMDIwNC5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA2LU9jdC0yMDE3IDAxOjI2PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwNDEw
MDA0OS0yMDE3MTAwNjEwMDMyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA0MTAwMDQ5LTIwMTcxMDA2MTAwMzI3LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDYtT2N0LTIwMTcgMTM6MDU8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA0
MjIwMzA5LTIwMTcxMDA1MTAwMjExLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDQyMjAzMDktMjAxNzEwMDUxMDAyMTEucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4wNS1PY3QtMjAxNyAxMjo1
OTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEw
MDQyMjAzMDktMjAxNzEwMDUyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwNDIyMDMwOS0yMDE3MTAwNTIyMDIwNC5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjA2LU9jdC0yMDE3IDAx
OjI2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MTAwNDIyMDMwOS0yMDE3MTAwNjEwMDMyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA0MjIwMzA5LTIwMTcxMDA2MTAwMzI3LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDYtT2N0LTIwMTcg
MTM6MDU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcxMDA0MjIwMzA5LTIwMTcxMDA2MjIwMzA2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDQyMjAzMDktMjAxNzEwMDYyMjAzMDYu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNy1PY3QtMjAx
NyAwMDo1NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMt
MjAxNzEwMDUxMDAyMTEtMjAxNzEwMDUyMjAyMDQucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwNTEwMDIxMS0yMDE3MTAwNTIyMDIw
NC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjA2LU9jdC0y
MDE3IDAxOjI2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1V
Uy0yMDE3MTAwNTEwMDIxMS0yMDE3MTAwNjEwMDMyNy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA1MTAwMjExLTIwMTcxMDA2MTAw
MzI3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDYtT2N0
LTIwMTcgMTM6MDU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcxMDA1MTAwMjExLTIwMTcxMDA2MjIwMzA2LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDUxMDAyMTEtMjAxNzEwMDYy
MjAzMDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNy1P
Y3QtMjAxNyAwMDo1NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQt
ZW4tVVMtMjAxNzEwMDUxMDAyMTEtMjAxNzEwMDcxMDAxNDIucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwNTEwMDIxMS0yMDE3MTAw
NzEwMDE0Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA3
LU9jdC0yMDE3IDEyOjU1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MTAwNTIyMDIwNC0yMDE3MTAwNjEwMDMyNy5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA1MjIwMjA0LTIwMTcx
MDA2MTAwMzI3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+
MDYtT2N0LTIwMTcgMTM6MDU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcxMDA1MjIwMjA0LTIwMTcxMDA2MjIwMzA2LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDUyMjAyMDQtMjAx
NzEwMDYyMjAzMDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0
ZD4wNy1PY3QtMjAxNyAwMDo1NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luNjQtZW4tVVMtMjAxNzEwMDUyMjAyMDQtMjAxNzEwMDcxMDAxNDIucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwNTIyMDIwNC0y
MDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJ
PHRkPjA3LU9jdC0yMDE3IDEyOjU1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW42NC1lbi1VUy0yMDE3MTAwNTIyMDIwNC0yMDE3MTAwNzIyMDE1Ni5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA1MjIwMjA0
LTIwMTcxMDA3MjIwMTU2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJ
CQk8dGQ+MDgtT2N0LTIwMTcgMDA6NTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcxMDA2MTAwMzI3LTIwMTcxMDA2MjIwMzA2LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDYxMDAz
MjctMjAxNzEwMDYyMjAzMDYucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgor
CQkJCTx0ZD4wNy1PY3QtMjAxNyAwMDo1NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDYxMDAzMjctMjAxNzEwMDcxMDAxNDIucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwNjEw
MDMyNy0yMDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+
CisJCQkJPHRkPjA3LU9jdC0yMDE3IDEyOjU1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwNjEwMDMyNy0yMDE3MTAwNzIyMDE1Ni5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA2
MTAwMzI3LTIwMTcxMDA3MjIwMTU2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90
ZD4KKwkJCQk8dGQ+MDgtT2N0LTIwMTcgMDA6NTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA2MTAwMzI3LTIwMTcxMDA4MTMxNzAwLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEw
MDYxMDAzMjctMjAxNzEwMDgxMzE3MDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008
L3RkPgorCQkJCTx0ZD4wOC1PY3QtMjAxNyAxNjoyMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDYyMjAzMDYtMjAxNzEwMDcxMDAxNDIucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MTAwNjIyMDMwNi0yMDE3MTAwNzEwMDE0Mi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44
TTwvdGQ+CisJCQkJPHRkPjA3LU9jdC0yMDE3IDEyOjU1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwNjIyMDMwNi0yMDE3MTAwNzIyMDE1Ni5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcxMDA2MjIwMzA2LTIwMTcxMDA3MjIwMTU2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjdNPC90ZD4KKwkJCQk8dGQ+MDgtT2N0LTIwMTcgMDA6NTM8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA2MjIwMzA2LTIwMTcxMDA4MTMxNzAw
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMt
MjAxNzEwMDYyMjAzMDYtMjAxNzEwMDgxMzE3MDAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+OE08L3RkPgorCQkJCTx0ZD4wOC1PY3QtMjAxNyAxNjoyMzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDYyMjAzMDYtMjAxNzEwMDgyMjAx
MzAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1V
Uy0yMDE3MTAwNjIyMDMwNi0yMDE3MTAwODIyMDEzMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD44TTwvdGQ+CisJCQkJPHRkPjA5LU9jdC0yMDE3IDAxOjEyPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwNzEwMDE0Mi0yMDE3MTAwNzIy
MDE1Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcxMDA3MTAwMTQyLTIwMTcxMDA3MjIwMTU2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDgtT2N0LTIwMTcgMDA6NTM8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA3MTAwMTQyLTIwMTcxMDA4
MTMxNzAwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQt
ZW4tVVMtMjAxNzEwMDcxMDAxNDItMjAxNzEwMDgxMzE3MDAucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wOC1PY3QtMjAxNyAxNjoyMzwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDcxMDAxNDItMjAxNzEw
MDgyMjAxMzAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MTAwNzEwMDE0Mi0yMDE3MTAwODIyMDEzMC5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA5LU9jdC0yMDE3IDAxOjExPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwNzEwMDE0Mi0yMDE3
MTAwOTEwMDEzNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcxMDA3MTAwMTQyLTIwMTcxMDA5MTAwMTM0LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDktT2N0LTIwMTcgMTM6MDA8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA3MjIwMTU2LTIw
MTcxMDA4MTMxNzAwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luNjQtZW4tVVMtMjAxNzEwMDcyMjAxNTYtMjAxNzEwMDgxMzE3MDAucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wOC1PY3QtMjAxNyAxNjoyMzwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDcyMjAxNTYt
MjAxNzEwMDgyMjAxMzAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW42NC1lbi1VUy0yMDE3MTAwNzIyMDE1Ni0yMDE3MTAwODIyMDEzMC5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA5LU9jdC0yMDE3IDAxOjExPC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwNzIyMDE1
Ni0yMDE3MTAwOTEwMDEzNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcxMDA3MjIwMTU2LTIwMTcxMDA5MTAwMTM0LnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MDktT2N0LTIwMTcgMTM6MDA8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA3MjIw
MTU2LTIwMTcxMDA5MjIwMTA0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDcyMjAxNTYtMjAxNzEwMDkyMjAxMDQucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMC1PY3QtMjAxNyAwMToxNDwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDgx
MzE3MDAtMjAxNzEwMDgyMjAxMzAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwODEzMTcwMC0yMDE3MTAwODIyMDEzMC5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjA5LU9jdC0yMDE3IDAxOjEx
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAw
ODEzMTcwMC0yMDE3MTAwOTEwMDEzNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA4MTMxNzAwLTIwMTcxMDA5MTAwMTM0LnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDktT2N0LTIwMTcgMTM6
MDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcx
MDA4MTMxNzAwLTIwMTcxMDA5MjIwMTA0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDgxMzE3MDAtMjAxNzEwMDkyMjAxMDQucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMC1PY3QtMjAxNyAw
MToxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAx
NzEwMDgxMzE3MDAtMjAxNzEwMTAxMDAyMDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwODEzMTcwMC0yMDE3MTAxMDEwMDIwMC5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjEwLU9jdC0yMDE3
IDEzOjM5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MTAwODIyMDEzMC0yMDE3MTAwOTEwMDEzNC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA4MjIwMTMwLTIwMTcxMDA5MTAwMTM0
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDktT2N0LTIw
MTcgMTM6MDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcxMDA4MjIwMTMwLTIwMTcxMDA5MjIwMTA0LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDgyMjAxMzAtMjAxNzEwMDkyMjAx
MDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMC1PY3Qt
MjAxNyAwMToxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4t
VVMtMjAxNzEwMDgyMjAxMzAtMjAxNzEwMTAxMDAyMDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwODIyMDEzMC0yMDE3MTAxMDEw
MDIwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjEwLU9j
dC0yMDE3IDEzOjM5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1l
bi1VUy0yMDE3MTAwODIyMDEzMC0yMDE3MTAxMDIyMDEwMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA4MjIwMTMwLTIwMTcxMDEw
MjIwMTAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MTEt
T2N0LTIwMTcgMDE6NDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcxMDA5MTAwMTM0LTIwMTcxMDA5MjIwMTA0LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDkxMDAxMzQtMjAxNzEw
MDkyMjAxMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4x
MC1PY3QtMjAxNyAwMToxNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
NjQtZW4tVVMtMjAxNzEwMDkxMDAxMzQtMjAxNzEwMTAxMDAyMDAucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwOTEwMDEzNC0yMDE3
MTAxMDEwMDIwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRk
PjEwLU9jdC0yMDE3IDEzOjM5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW42NC1lbi1VUy0yMDE3MTAwOTEwMDEzNC0yMDE3MTAxMDIyMDEwMi5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA5MTAwMTM0LTIw
MTcxMDEwMjIwMTAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8
dGQ+MTEtT2N0LTIwMTcgMDE6NDI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcxMDA5MTAwMTM0LTIwMTcxMDExMTAwMTMzLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDkxMDAxMzQt
MjAxNzEwMTExMDAxMzMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJ
CTx0ZD4xMS1PY3QtMjAxNyAxNzo0NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzEwMDkyMjAxMDQtMjAxNzEwMTAxMDAyMDAucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwOTIyMDEw
NC0yMDE3MTAxMDEwMDIwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJ
CQkJPHRkPjEwLU9jdC0yMDE3IDEzOjM5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW42NC1lbi1VUy0yMDE3MTAwOTIyMDEwNC0yMDE3MTAxMDIyMDEwMi5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA5MjIw
MTA0LTIwMTcxMDEwMjIwMTAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4K
KwkJCQk8dGQ+MTEtT2N0LTIwMTcgMDE6NDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDA5MjIwMTA0LTIwMTcxMDExMTAwMTMzLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDky
MjAxMDQtMjAxNzEwMTExMDAxMzMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3Rk
PgorCQkJCTx0ZD4xMS1PY3QtMjAxNyAxNzo0MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMDkyMjAxMDQtMjAxNzEwMTEyMjAxMTMucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAw
OTIyMDEwNC0yMDE3MTAxMTIyMDExMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwv
dGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDAxOjQ3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMDEwMDIwMC0yMDE3MTAxMDIyMDEwMi5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcx
MDEwMTAwMjAwLTIwMTcxMDEwMjIwMTAyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdN
PC90ZD4KKwkJCQk8dGQ+MTEtT2N0LTIwMTcgMDE6NDI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDEwMTAwMjAwLTIwMTcxMDExMTAwMTMzLnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAx
NzEwMTAxMDAyMDAtMjAxNzEwMTExMDAxMzMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
OE08L3RkPgorCQkJCTx0ZD4xMS1PY3QtMjAxNyAxNzo0NDwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTAxMDAyMDAtMjAxNzEwMTEyMjAxMTMu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MTAxMDEwMDIwMC0yMDE3MTAxMTIyMDExMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD44TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDAxOjQ3PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMDEwMDIwMC0yMDE3MTAxMjEwMDIy
OC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcxMDEwMTAwMjAwLTIwMTcxMDEyMTAwMjI4LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTItT2N0LTIwMTcgMTQ6NDA8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDEwMTAwMjAwLTIwMTcxMDEyMTA1
ODMzLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4t
VVMtMjAxNzEwMTAxMDAyMDAtMjAxNzEwMTIxMDU4MzMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAxNjowNjwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTAyMjAxMDItMjAxNzEwMTEx
MDAxMzMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1l
bi1VUy0yMDE3MTAxMDIyMDEwMi0yMDE3MTAxMTEwMDEzMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjExLU9jdC0yMDE3IDE3OjQ0PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMDIyMDEwMi0yMDE3MTAx
MTIyMDExMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcxMDEwMjIwMTAyLTIwMTcxMDExMjIwMTEzLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTItT2N0LTIwMTcgMDE6NDc8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDEwMjIwMTAyLTIwMTcx
MDEyMTAwMjI4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
NjQtZW4tVVMtMjAxNzEwMTAyMjAxMDItMjAxNzEwMTIxMDAyMjgucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAxNDo0MDwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTAyMjAxMDItMjAx
NzEwMTIxMDU4MzMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW42NC1lbi1VUy0yMDE3MTAxMDIyMDEwMi0yMDE3MTAxMjEwNTgzMy5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDE2OjA2PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMTEwMDEzMy0y
MDE3MTAxMTIyMDExMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcxMDExMTAwMTMzLTIwMTcxMDExMjIwMTEzLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTItT2N0LTIwMTcgMDE6NDc8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDExMTAwMTMz
LTIwMTcxMDEyMTAwMjI4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzEwMTExMDAxMzMtMjAxNzEwMTIxMDAyMjgucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAxNDozOTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTExMDAx
MzMtMjAxNzEwMTIxMDU4MzMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMTEwMDEzMy0yMDE3MTAxMjEwNTgzMy5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDE2OjA2PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMTEw
MDEzMy0yMDE3MTAxMjIyMDExMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDExMTAwMTMzLTIwMTcxMDEyMjIwMTExLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTMtT2N0LTIwMTcgMDA6Mzc8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDEx
MjIwMTEzLTIwMTcxMDEyMTAwMjI4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTEyMjAxMTMtMjAxNzEwMTIxMDAyMjgucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xMi1PY3QtMjAxNyAxNDo0
MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEw
MTEyMjAxMTMtMjAxNzEwMTIxMDU4MzMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMTIyMDExMy0yMDE3MTAxMjEwNTgzMy5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjEyLU9jdC0yMDE3IDE2
OjA2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MTAxMTIyMDExMy0yMDE3MTAxMjIyMDExMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDExMjIwMTEzLTIwMTcxMDEyMjIwMTExLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTMtT2N0LTIwMTcg
MDA6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcxMDExMjIwMTEzLTIwMTcxMDEzMTAwMTEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTEyMjAxMTMtMjAxNzEwMTMxMDAxMTIu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xMy1PY3QtMjAx
NyAxMzoxODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMt
MjAxNzEwMTIxMDAyMjgtMjAxNzEwMTIyMjAxMTEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMjEwMDIyOC0yMDE3MTAxMjIyMDEx
MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjEzLU9jdC0y
MDE3IDAwOjM3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1V
Uy0yMDE3MTAxMjEwMDIyOC0yMDE3MTAxMzEwMDExMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDEyMTAwMjI4LTIwMTcxMDEzMTAw
MTEyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTMtT2N0
LTIwMTcgMTM6MTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcxMDEyMTAwMjI4LTIwMTcxMDEzMjIwMjA0LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTIxMDAyMjgtMjAxNzEwMTMy
MjAyMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xNC1P
Y3QtMjAxNyAwMjowNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQt
ZW4tVVMtMjAxNzEwMTIxMDU4MzMtMjAxNzEwMTIyMjAxMTEucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMjEwNTgzMy0yMDE3MTAx
MjIyMDExMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjEz
LU9jdC0yMDE3IDAwOjM3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MTAxMjEwNTgzMy0yMDE3MTAxMzEwMDExMi5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDEyMTA1ODMzLTIwMTcx
MDEzMTAwMTEyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+
MTMtT2N0LTIwMTcgMTM6MTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcxMDEyMTA1ODMzLTIwMTcxMDEzMjIwMjA0LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTIxMDU4MzMtMjAx
NzEwMTMyMjAyMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0
ZD4xNC1PY3QtMjAxNyAwMjowNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luNjQtZW4tVVMtMjAxNzEwMTIxMDU4MzMtMjAxNzEwMTQxMDAyMTkucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMjEwNTgzMy0y
MDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJ
PHRkPjE0LU9jdC0yMDE3IDEzOjExPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW42NC1lbi1VUy0yMDE3MTAxMjIyMDExMS0yMDE3MTAxMzEwMDExMi5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDEyMjIwMTEx
LTIwMTcxMDEzMTAwMTEyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJ
CQk8dGQ+MTMtT2N0LTIwMTcgMTM6MTg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcxMDEyMjIwMTExLTIwMTcxMDEzMjIwMjA0LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTIyMjAx
MTEtMjAxNzEwMTMyMjAyMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgor
CQkJCTx0ZD4xNC1PY3QtMjAxNyAwMjowNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTIyMjAxMTEtMjAxNzEwMTQxMDAyMTkucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMjIy
MDExMS0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+
CisJCQkJPHRkPjE0LU9jdC0yMDE3IDEzOjExPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMjIyMDExMS0yMDE3MTAxNDIyMDU0Mi5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDEy
MjIwMTExLTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90
ZD4KKwkJCQk8dGQ+MTUtT2N0LTIwMTcgMDI6MTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDEzMTAwMTEyLTIwMTcxMDEzMjIwMjA0LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEw
MTMxMDAxMTItMjAxNzEwMTMyMjAyMDQucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008
L3RkPgorCQkJCTx0ZD4xNC1PY3QtMjAxNyAwMjowNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTMxMDAxMTItMjAxNzEwMTQxMDAyMTkucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MTAxMzEwMDExMi0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44
TTwvdGQ+CisJCQkJPHRkPjE0LU9jdC0yMDE3IDEzOjExPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMzEwMDExMi0yMDE3MTAxNDIyMDU0Mi5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcxMDEzMTAwMTEyLTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjhNPC90ZD4KKwkJCQk8dGQ+MTUtT2N0LTIwMTcgMDI6MTU8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDEzMTAwMTEyLTIwMTcxMDE1MTAwMTI3
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMt
MjAxNzEwMTMxMDAxMTItMjAxNzEwMTUxMDAxMjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+OE08L3RkPgorCQkJCTx0ZD4xNS1PY3QtMjAxNyAxNToxNjwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTMyMjAyMDQtMjAxNzEwMTQxMDAy
MTkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1V
Uy0yMDE3MTAxMzIyMDIwNC0yMDE3MTAxNDEwMDIxOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE0LU9jdC0yMDE3IDEzOjExPC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxMzIyMDIwNC0yMDE3MTAxNDIy
MDU0Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcxMDEzMjIwMjA0LTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTUtT2N0LTIwMTcgMDI6MTU8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDEzMjIwMjA0LTIwMTcxMDE1
MTAwMTI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQt
ZW4tVVMtMjAxNzEwMTMyMjAyMDQtMjAxNzEwMTUxMDAxMjcucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xNS1PY3QtMjAxNyAxNToxNjwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTMyMjAyMDQtMjAxNzEw
MTUyMjAxMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MTAxMzIyMDIwNC0yMDE3MTAxNTIyMDEwNi5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjE2LU9jdC0yMDE3IDAyOjA5PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNDEwMDIxOS0yMDE3
MTAxNDIyMDU0Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcxMDE0MTAwMjE5LTIwMTcxMDE0MjIwNTQyLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTUtT2N0LTIwMTcgMDI6MTU8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE0MTAwMjE5LTIw
MTcxMDE1MTAwMTI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luNjQtZW4tVVMtMjAxNzEwMTQxMDAyMTktMjAxNzEwMTUxMDAxMjcucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xNS1PY3QtMjAxNyAxNToxNjwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTQxMDAyMTkt
MjAxNzEwMTUyMjAxMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW42NC1lbi1VUy0yMDE3MTAxNDEwMDIxOS0yMDE3MTAxNTIyMDEwNi5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE2LU9jdC0yMDE3IDAyOjA5PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNDEwMDIx
OS0yMDE3MTAxNjEwMDExMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcxMDE0MTAwMjE5LTIwMTcxMDE2MTAwMTEzLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MTYtT2N0LTIwMTcgMTQ6Mjc8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE0MjIw
NTQyLTIwMTcxMDE1MTAwMTI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTQyMjA1NDItMjAxNzEwMTUxMDAxMjcucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xNS1PY3QtMjAxNyAxNToxNjwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTQy
MjA1NDItMjAxNzEwMTUyMjAxMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNDIyMDU0Mi0yMDE3MTAxNTIyMDEwNi5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjE2LU9jdC0yMDE3IDAyOjA5
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAx
NDIyMDU0Mi0yMDE3MTAxNjEwMDExMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE0MjIwNTQyLTIwMTcxMDE2MTAwMTEzLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTYtT2N0LTIwMTcgMTQ6
Mjc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcx
MDE0MjIwNTQyLTIwMTcxMDE2MjIwNDI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTQyMjA1NDItMjAxNzEwMTYyMjA0MjcucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xNy1PY3QtMjAxNyAw
MjowNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAx
NzEwMTUxMDAxMjctMjAxNzEwMTUyMjAxMDYucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNTEwMDEyNy0yMDE3MTAxNTIyMDEwNi5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjE2LU9jdC0yMDE3
IDAyOjA4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MTAxNTEwMDEyNy0yMDE3MTAxNjEwMDExMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE1MTAwMTI3LTIwMTcxMDE2MTAwMTEz
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTYtT2N0LTIw
MTcgMTQ6Mjc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcxMDE1MTAwMTI3LTIwMTcxMDE2MjIwNDI3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTUxMDAxMjctMjAxNzEwMTYyMjA0
MjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xNy1PY3Qt
MjAxNyAwMjowNDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4t
VVMtMjAxNzEwMTUxMDAxMjctMjAxNzEwMTcxMDAxMjcucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNTEwMDEyNy0yMDE3MTAxNzEw
MDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjE3LU9j
dC0yMDE3IDEzOjI1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1l
bi1VUy0yMDE3MTAxNTIyMDEwNi0yMDE3MTAxNjEwMDExMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE1MjIwMTA2LTIwMTcxMDE2
MTAwMTEzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTYt
T2N0LTIwMTcgMTQ6Mjc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcxMDE1MjIwMTA2LTIwMTcxMDE2MjIwNDI3LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTUyMjAxMDYtMjAxNzEw
MTYyMjA0MjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4x
Ny1PY3QtMjAxNyAwMjowNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
NjQtZW4tVVMtMjAxNzEwMTUyMjAxMDYtMjAxNzEwMTcxMDAxMjcucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNTIyMDEwNi0yMDE3
MTAxNzEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRk
PjE3LU9jdC0yMDE3IDEzOjI1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW42NC1lbi1VUy0yMDE3MTAxNTIyMDEwNi0yMDE3MTAxNzE0MTIyOS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE1MjIwMTA2LTIw
MTcxMDE3MTQxMjI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8
dGQ+MTctT2N0LTIwMTcgMTg6Mjg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcxMDE2MTAwMTEzLTIwMTcxMDE2MjIwNDI3LnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTYxMDAxMTMt
MjAxNzEwMTYyMjA0MjcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJ
CTx0ZD4xNy1PY3QtMjAxNyAwMjowNTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzEwMTYxMDAxMTMtMjAxNzEwMTcxMDAxMjcucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNjEwMDEx
My0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJ
CQkJPHRkPjE3LU9jdC0yMDE3IDEzOjI1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNjEwMDExMy0yMDE3MTAxNzE0MTIyOS5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE2MTAw
MTEzLTIwMTcxMDE3MTQxMjI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4K
KwkJCQk8dGQ+MTctT2N0LTIwMTcgMTg6Mjg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE2MTAwMTEzLTIwMTcxMDE3MjIwNDE1LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTYx
MDAxMTMtMjAxNzEwMTcyMjA0MTUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3Rk
PgorCQkJCTx0ZD4xOC1PY3QtMjAxNyAwMToxOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTYyMjA0MjctMjAxNzEwMTcxMDAxMjcucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAx
NjIyMDQyNy0yMDE3MTAxNzEwMDEyNy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwv
dGQ+CisJCQkJPHRkPjE3LU9jdC0yMDE3IDEzOjI1PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNjIyMDQyNy0yMDE3MTAxNzE0MTIyOS5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcx
MDE2MjIwNDI3LTIwMTcxMDE3MTQxMjI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdN
PC90ZD4KKwkJCQk8dGQ+MTctT2N0LTIwMTcgMTg6Mjg8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE2MjIwNDI3LTIwMTcxMDE3MjIwNDE1LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAx
NzEwMTYyMjA0MjctMjAxNzEwMTcyMjA0MTUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
N008L3RkPgorCQkJCTx0ZD4xOC1PY3QtMjAxNyAwMToxOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTYyMjA0MjctMjAxNzEwMTgxMDAxNDAu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MTAxNjIyMDQyNy0yMDE3MTAxODEwMDE0MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD43TTwvdGQ+CisJCQkJPHRkPjE4LU9jdC0yMDE3IDEzOjE5PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNzEwMDEyNy0yMDE3MTAxNzE0MTIy
OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcxMDE3MTAwMTI3LTIwMTcxMDE3MTQxMjI5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjVNPC90ZD4KKwkJCQk8dGQ+MTctT2N0LTIwMTcgMTg6Mjg8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE3MTAwMTI3LTIwMTcxMDE3MjIw
NDE1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4t
VVMtMjAxNzEwMTcxMDAxMjctMjAxNzEwMTcyMjA0MTUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xOC1PY3QtMjAxNyAwMToxOTwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTcxMDAxMjctMjAxNzEwMTgx
MDAxNDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1l
bi1VUy0yMDE3MTAxNzEwMDEyNy0yMDE3MTAxODEwMDE0MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjE4LU9jdC0yMDE3IDEzOjE5PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNzEwMDEyNy0yMDE3MTAx
ODIyMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcxMDE3MTAwMTI3LTIwMTcxMDE4MjIwMDQ5LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTktT2N0LTIwMTcgMDE6MjU8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE3MTQxMjI5LTIwMTcx
MDE3MjIwNDE1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
NjQtZW4tVVMtMjAxNzEwMTcxNDEyMjktMjAxNzEwMTcyMjA0MTUucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4xOC1PY3QtMjAxNyAwMToxOTwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTcxNDEyMjktMjAx
NzEwMTgxMDAxNDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW42NC1lbi1VUy0yMDE3MTAxNzE0MTIyOS0yMDE3MTAxODEwMDE0MC5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjE4LU9jdC0yMDE3IDEzOjE5PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNzE0MTIyOS0y
MDE3MTAxODIyMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcxMDE3MTQxMjI5LTIwMTcxMDE4MjIwMDQ5LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTktT2N0LTIwMTcgMDE6MjU8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE3MTQxMjI5
LTIwMTcxMDE5MTAwMTA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzEwMTcxNDEyMjktMjAxNzEwMTkxMDAxMDcucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xOS1PY3QtMjAxNyAxMzo1MTwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTcyMjA0
MTUtMjAxNzEwMTgxMDAxNDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNzIyMDQxNS0yMDE3MTAxODEwMDE0MC5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjE4LU9jdC0yMDE3IDEzOjE5PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNzIy
MDQxNS0yMDE3MTAxODIyMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE3MjIwNDE1LTIwMTcxMDE4MjIwMDQ5LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MTktT2N0LTIwMTcgMDE6MjU8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE3
MjIwNDE1LTIwMTcxMDE5MTAwMTA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTcyMjA0MTUtMjAxNzEwMTkxMDAxMDcucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xOS1PY3QtMjAxNyAxMzo1
MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEw
MTcyMjA0MTUtMjAxNzEwMTkyMjIxNDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxNzIyMDQxNS0yMDE3MTAxOTIyMjE0MS5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIwLU9jdC0yMDE3IDAy
OjMzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MTAxODEwMDE0MC0yMDE3MTAxODIyMDA0OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE4MTAwMTQwLTIwMTcxMDE4MjIwMDQ5LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MTktT2N0LTIwMTcg
MDE6MjU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcxMDE4MTAwMTQwLTIwMTcxMDE5MTAwMTA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTgxMDAxNDAtMjAxNzEwMTkxMDAxMDcu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xOS1PY3QtMjAx
NyAxMzo1MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMt
MjAxNzEwMTgxMDAxNDAtMjAxNzEwMTkyMjIxNDEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxODEwMDE0MC0yMDE3MTAxOTIyMjE0
MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIwLU9jdC0y
MDE3IDAyOjMzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1V
Uy0yMDE3MTAxODEwMDE0MC0yMDE3MTAyMDEwMDQyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE4MTAwMTQwLTIwMTcxMDIwMTAw
NDI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjAtT2N0
LTIwMTcgMTM6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcxMDE4MjIwMDQ5LTIwMTcxMDE5MTAwMTA3LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTgyMjAwNDktMjAxNzEwMTkx
MDAxMDcucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4xOS1P
Y3QtMjAxNyAxMzo1MTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQt
ZW4tVVMtMjAxNzEwMTgyMjAwNDktMjAxNzEwMTkyMjIxNDEucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxODIyMDA0OS0yMDE3MTAx
OTIyMjE0MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIw
LU9jdC0yMDE3IDAyOjMzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MTAxODIyMDA0OS0yMDE3MTAyMDEwMDQyNi5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE4MjIwMDQ5LTIwMTcx
MDIwMTAwNDI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+
MjAtT2N0LTIwMTcgMTM6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcxMDE4MjIwMDQ5LTIwMTcxMDIwMjIxMTI5LnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTgyMjAwNDktMjAx
NzEwMjAyMjExMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0
ZD4yMS1PY3QtMjAxNyAwMToyMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luNjQtZW4tVVMtMjAxNzEwMTkxMDAxMDctMjAxNzEwMTkyMjIxNDEucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxOTEwMDEwNy0y
MDE3MTAxOTIyMjE0MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJ
PHRkPjIwLU9jdC0yMDE3IDAyOjMzPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW42NC1lbi1VUy0yMDE3MTAxOTEwMDEwNy0yMDE3MTAyMDEwMDQyNi5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE5MTAwMTA3
LTIwMTcxMDIwMTAwNDI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJ
CQk8dGQ+MjAtT2N0LTIwMTcgMTM6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcxMDE5MTAwMTA3LTIwMTcxMDIwMjIxMTI5LnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTkxMDAx
MDctMjAxNzEwMjAyMjExMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgor
CQkJCTx0ZD4yMS1PY3QtMjAxNyAwMToyMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTkxMDAxMDctMjAxNzEwMjExMDAwMjkucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxOTEw
MDEwNy0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+
CisJCQkJPHRkPjIxLU9jdC0yMDE3IDEzOjE4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxOTIyMjE0MS0yMDE3MTAyMDEwMDQyNi5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE5
MjIyMTQxLTIwMTcxMDIwMTAwNDI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90
ZD4KKwkJCQk8dGQ+MjAtT2N0LTIwMTcgMTM6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDE5MjIyMTQxLTIwMTcxMDIwMjIxMTI5LnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEw
MTkyMjIxNDEtMjAxNzEwMjAyMjExMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008
L3RkPgorCQkJCTx0ZD4yMS1PY3QtMjAxNyAwMToyMzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMTkyMjIxNDEtMjAxNzEwMjExMDAwMjkucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MTAxOTIyMjE0MS0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43
TTwvdGQ+CisJCQkJPHRkPjIxLU9jdC0yMDE3IDEzOjE4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAxOTIyMjE0MS0yMDE3MTAyMTIyMDEyMS5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcxMDE5MjIyMTQxLTIwMTcxMDIxMjIwMTIxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjdNPC90ZD4KKwkJCQk8dGQ+MjItT2N0LTIwMTcgMDI6MjA8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDIwMTAwNDI2LTIwMTcxMDIwMjIxMTI5
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMt
MjAxNzEwMjAxMDA0MjYtMjAxNzEwMjAyMjExMjkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+N008L3RkPgorCQkJCTx0ZD4yMS1PY3QtMjAxNyAwMToyMzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjAxMDA0MjYtMjAxNzEwMjExMDAw
MjkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1V
Uy0yMDE3MTAyMDEwMDQyNi0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIxLU9jdC0yMDE3IDEzOjE4PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyMDEwMDQyNi0yMDE3MTAyMTIy
MDEyMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcxMDIwMTAwNDI2LTIwMTcxMDIxMjIwMTIxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjItT2N0LTIwMTcgMDI6MTk8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDIwMTAwNDI2LTIwMTcxMDIy
MTAwMDU4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQt
ZW4tVVMtMjAxNzEwMjAxMDA0MjYtMjAxNzEwMjIxMDAwNTgucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMi1PY3QtMjAxNyAxMzozMTwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjAyMjExMjktMjAxNzEw
MjExMDAwMjkucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MTAyMDIyMTEyOS0yMDE3MTAyMTEwMDAyOS5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIxLU9jdC0yMDE3IDEzOjE4PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyMDIyMTEyOS0yMDE3
MTAyMTIyMDEyMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcxMDIwMjIxMTI5LTIwMTcxMDIxMjIwMTIxLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjItT2N0LTIwMTcgMDI6MjA8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDIwMjIxMTI5LTIw
MTcxMDIyMTAwMDU4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luNjQtZW4tVVMtMjAxNzEwMjAyMjExMjktMjAxNzEwMjIxMDAwNTgucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yMi1PY3QtMjAxNyAxMzozMTwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjAyMjExMjkt
MjAxNzEwMjIyMjAxMDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW42NC1lbi1VUy0yMDE3MTAyMDIyMTEyOS0yMDE3MTAyMjIyMDEwMy5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjIzLU9jdC0yMDE3IDAxOjE0PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyMTEwMDAy
OS0yMDE3MTAyMTIyMDEyMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcxMDIxMTAwMDI5LTIwMTcxMDIxMjIwMTIxLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MjItT2N0LTIwMTcgMDI6MTk8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDIxMTAw
MDI5LTIwMTcxMDIyMTAwMDU4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjExMDAwMjktMjAxNzEwMjIxMDAwNTgucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMi1PY3QtMjAxNyAxMzozMTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjEx
MDAwMjktMjAxNzEwMjIyMjAxMDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyMTEwMDAyOS0yMDE3MTAyMjIyMDEwMy5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIzLU9jdC0yMDE3IDAxOjE0
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAy
MTEwMDAyOS0yMDE3MTAyMzEwMDI1Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDIxMTAwMDI5LTIwMTcxMDIzMTAwMjUyLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjMtT2N0LTIwMTcgMTM6
Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcx
MDIxMjIwMTIxLTIwMTcxMDIyMTAwMDU4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjEyMjAxMjEtMjAxNzEwMjIxMDAwNTgucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJCTx0ZD4yMi1PY3QtMjAxNyAx
MzozMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAx
NzEwMjEyMjAxMjEtMjAxNzEwMjIyMjAxMDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyMTIyMDEyMS0yMDE3MTAyMjIyMDEwMy5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjIzLU9jdC0yMDE3
IDAxOjE0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MTAyMTIyMDEyMS0yMDE3MTAyMzEwMDI1Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDIxMjIwMTIxLTIwMTcxMDIzMTAwMjUy
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjMtT2N0LTIw
MTcgMTM6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcxMDIxMjIwMTIxLTIwMTcxMDIzMjIwMjIyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjEyMjAxMjEtMjAxNzEwMjMyMjAy
MjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNC1PY3Qt
MjAxNyAwMDozODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4t
VVMtMjAxNzEwMjIxMDAwNTgtMjAxNzEwMjIyMjAxMDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyMjEwMDA1OC0yMDE3MTAyMjIy
MDEwMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD41TTwvdGQ+CisJCQkJPHRkPjIzLU9j
dC0yMDE3IDAxOjE0PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1l
bi1VUy0yMDE3MTAyMjEwMDA1OC0yMDE3MTAyMzEwMDI1Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDIyMTAwMDU4LTIwMTcxMDIz
MTAwMjUyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MjMt
T2N0LTIwMTcgMTM6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcxMDIyMTAwMDU4LTIwMTcxMDIzMjIwMjIyLnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjIxMDAwNTgtMjAxNzEw
MjMyMjAyMjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4y
NC1PY3QtMjAxNyAwMDozODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
NjQtZW4tVVMtMjAxNzEwMjIxMDAwNTgtMjAxNzEwMjQxMDAxMzUucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyMjEwMDA1OC0yMDE3
MTAyNDEwMDEzNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRk
PjI0LU9jdC0yMDE3IDEzOjE4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW42NC1lbi1VUy0yMDE3MTAyMjIyMDEwMy0yMDE3MTAyMzEwMDI1Mi5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDIyMjIwMTAzLTIw
MTcxMDIzMTAwMjUyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8
dGQ+MjMtT2N0LTIwMTcgMTM6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcxMDIyMjIwMTAzLTIwMTcxMDIzMjIwMjIyLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjIyMjAxMDMt
MjAxNzEwMjMyMjAyMjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJ
CTx0ZD4yNC1PY3QtMjAxNyAwMDozODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzEwMjIyMjAxMDMtMjAxNzEwMjQxMDAxMzUucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyMjIyMDEw
My0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJ
CQkJPHRkPjI0LU9jdC0yMDE3IDEzOjE5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyMjIyMDEwMy0yMDE3MTAyNDIyMDMyNS5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDIyMjIw
MTAzLTIwMTcxMDI0MjIwMzI1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4K
KwkJCQk8dGQ+MjUtT2N0LTIwMTcgMDE6MDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDIzMTAwMjUyLTIwMTcxMDIzMjIwMjIyLnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjMx
MDAyNTItMjAxNzEwMjMyMjAyMjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3Rk
PgorCQkJCTx0ZD4yNC1PY3QtMjAxNyAwMDozODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjMxMDAyNTItMjAxNzEwMjQxMDAxMzUucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAy
MzEwMDI1Mi0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwv
dGQ+CisJCQkJPHRkPjI0LU9jdC0yMDE3IDEzOjE4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyMzEwMDI1Mi0yMDE3MTAyNDIyMDMyNS5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcx
MDIzMTAwMjUyLTIwMTcxMDI0MjIwMzI1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjhN
PC90ZD4KKwkJCQk8dGQ+MjUtT2N0LTIwMTcgMDE6MDA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDIzMTAwMjUyLTIwMTcxMDI1MTAwNDQ5LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAx
NzEwMjMxMDAyNTItMjAxNzEwMjUxMDA0NDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
OE08L3RkPgorCQkJCTx0ZD4yNS1PY3QtMjAxNyAxMzozMjwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjMyMjAyMjItMjAxNzEwMjQxMDAxMzUu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MTAyMzIyMDIyMi0yMDE3MTAyNDEwMDEzNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD43TTwvdGQ+CisJCQkJPHRkPjI0LU9jdC0yMDE3IDEzOjE5PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyMzIyMDIyMi0yMDE3MTAyNDIyMDMy
NS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcxMDIzMjIwMjIyLTIwMTcxMDI0MjIwMzI1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjUtT2N0LTIwMTcgMDE6MDA8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDIzMjIwMjIyLTIwMTcxMDI1MTAw
NDQ5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4t
VVMtMjAxNzEwMjMyMjAyMjItMjAxNzEwMjUxMDA0NDkucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNS1PY3QtMjAxNyAxMzozMjwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjMyMjAyMjItMjAxNzEwMjUy
MzA0NDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1l
bi1VUy0yMDE3MTAyMzIyMDIyMi0yMDE3MTAyNTIzMDQ0MC5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI2LU9jdC0yMDE3IDAyOjM2PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNDEwMDEzNS0yMDE3MTAy
NDIyMDMyNS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcxMDI0MTAwMTM1LTIwMTcxMDI0MjIwMzI1LnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjUtT2N0LTIwMTcgMDE6MDA8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI0MTAwMTM1LTIwMTcx
MDI1MTAwNDQ5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
NjQtZW4tVVMtMjAxNzEwMjQxMDAxMzUtMjAxNzEwMjUxMDA0NDkucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNS1PY3QtMjAxNyAxMzozMjwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjQxMDAxMzUtMjAx
NzEwMjUyMzA0NDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW42NC1lbi1VUy0yMDE3MTAyNDEwMDEzNS0yMDE3MTAyNTIzMDQ0MC5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI2LU9jdC0yMDE3IDAyOjM2PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNDEwMDEzNS0y
MDE3MTAyNjEwMDA0Ny5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcxMDI0MTAwMTM1LTIwMTcxMDI2MTAwMDQ3LnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjYtT2N0LTIwMTcgMTU6MjM8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI0MjIwMzI1
LTIwMTcxMDI1MTAwNDQ5LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzEwMjQyMjAzMjUtMjAxNzEwMjUxMDA0NDkucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNS1PY3QtMjAxNyAxMzozMjwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjQyMjAz
MjUtMjAxNzEwMjUyMzA0NDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNDIyMDMyNS0yMDE3MTAyNTIzMDQ0MC5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI2LU9jdC0yMDE3IDAyOjM2PC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNDIy
MDMyNS0yMDE3MTAyNjEwMDA0Ny5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI0MjIwMzI1LTIwMTcxMDI2MTAwMDQ3LnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjYtT2N0LTIwMTcgMTU6MjM8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI0
MjIwMzI1LTIwMTcxMDI2MjIxOTQ1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjQyMjAzMjUtMjAxNzEwMjYyMjE5NDUucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNy1PY3QtMjAxNyAwMjo0
MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEw
MjUxMDA0NDktMjAxNzEwMjUyMzA0NDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNTEwMDQ0OS0yMDE3MTAyNTIzMDQ0MC5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI2LU9jdC0yMDE3IDAy
OjM2PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MTAyNTEwMDQ0OS0yMDE3MTAyNjEwMDA0Ny5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI1MTAwNDQ5LTIwMTcxMDI2MTAwMDQ3LnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjYtT2N0LTIwMTcg
MTU6MjM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcxMDI1MTAwNDQ5LTIwMTcxMDI2MjIxOTQ1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjUxMDA0NDktMjAxNzEwMjYyMjE5NDUu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNy1PY3QtMjAx
NyAwMjo0MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMt
MjAxNzEwMjUxMDA0NDktMjAxNzEwMjcxMDAxMDMucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNTEwMDQ0OS0yMDE3MTAyNzEwMDEw
My5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjI3LU9jdC0y
MDE3IDE1OjI4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1V
Uy0yMDE3MTAyNTIzMDQ0MC0yMDE3MTAyNjEwMDA0Ny5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI1MjMwNDQwLTIwMTcxMDI2MTAw
MDQ3LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjYtT2N0
LTIwMTcgMTU6MjM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcxMDI1MjMwNDQwLTIwMTcxMDI2MjIxOTQ1LnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjUyMzA0NDAtMjAxNzEwMjYy
MjE5NDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yNy1P
Y3QtMjAxNyAwMjo0MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQt
ZW4tVVMtMjAxNzEwMjUyMzA0NDAtMjAxNzEwMjcxMDAxMDMucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNTIzMDQ0MC0yMDE3MTAy
NzEwMDEwMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjI3
LU9jdC0yMDE3IDE1OjI3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MTAyNTIzMDQ0MC0yMDE3MTAyNzIyMDA1OS5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI1MjMwNDQwLTIwMTcx
MDI3MjIwMDU5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjE3TTwvdGQ+CisJCQkJPHRk
PjI4LU9jdC0yMDE3IDAzOjE3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW42NC1lbi1VUy0yMDE3MTAyNjEwMDA0Ny0yMDE3MTAyNjIyMTk0NS5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI2MTAwMDQ3LTIw
MTcxMDI2MjIxOTQ1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8
dGQ+MjctT2N0LTIwMTcgMDI6NDI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcxMDI2MTAwMDQ3LTIwMTcxMDI3MTAwMTAzLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjYxMDAwNDct
MjAxNzEwMjcxMDAxMDMucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJ
CTx0ZD4yNy1PY3QtMjAxNyAxNToyODwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzEwMjYxMDAwNDctMjAxNzEwMjcyMjAwNTkucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNjEwMDA0
Ny0yMDE3MTAyNzIyMDA1OS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4xN008L3RkPgor
CQkJCTx0ZD4yOC1PY3QtMjAxNyAwMzoxNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjYxMDAwNDctMjAxNzEwMjgxMDA0MjMucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNjEw
MDA0Ny0yMDE3MTAyODEwMDQyMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD4xN008L3Rk
PgorCQkJCTx0ZD4yOC1PY3QtMjAxNyAxNzowMTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjYyMjE5NDUtMjAxNzEwMjcxMDAxMDMucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAy
NjIyMTk0NS0yMDE3MTAyNzEwMDEwMy5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwv
dGQ+CisJCQkJPHRkPjI3LU9jdC0yMDE3IDE1OjI4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNjIyMTk0NS0yMDE3MTAyNzIyMDA1OS5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcx
MDI2MjIxOTQ1LTIwMTcxMDI3MjIwMDU5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjE3
TTwvdGQ+CisJCQkJPHRkPjI4LU9jdC0yMDE3IDAzOjE3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNjIyMTk0NS0yMDE3MTAyODEwMDQyMy5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcxMDI2MjIxOTQ1LTIwMTcxMDI4MTAwNDIzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjE3TTwvdGQ+CisJCQkJPHRkPjI4LU9jdC0yMDE3IDE3OjAxPC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNjIyMTk0NS0yMDE3MTAyODIyMDMy
Ni5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcxMDI2MjIxOTQ1LTIwMTcxMDI4MjIwMzI2LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjE3TTwvdGQ+CisJCQkJPHRkPjI5LU9jdC0yMDE3IDAxOjM3PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNzEwMDEwMy0yMDE3MTAyNzIy
MDA1OS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI3MjIwMDU5LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjE2TTwvdGQ+CisJCQkJPHRkPjI4LU9jdC0yMDE3IDAzOjE3PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNzEwMDEwMy0yMDE3MTAy
ODEwMDQyMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI4MTAwNDIzLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjE2TTwvdGQ+CisJCQkJPHRkPjI4LU9jdC0yMDE3IDE3OjAxPC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNzEwMDEwMy0yMDE3
MTAyODIyMDMyNi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI4MjIwMzI2LnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjE2TTwvdGQ+CisJCQkJPHRkPjI5LU9jdC0yMDE3IDAxOjM3PC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNzEwMDEwMy0y
MDE3MTAyOTEwMjMwMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcxMDI3MTAwMTAzLTIwMTcxMDI5MTAyMzAwLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjE2TTwvdGQ+CisJCQkJPHRkPjI5LU9jdC0yMDE3IDE0OjU3PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNzIyMDA1
OS0yMDE3MTAyODEwMDQyMy5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcxMDI3MjIwMDU5LTIwMTcxMDI4MTAwNDIzLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MjgtT2N0LTIwMTcgMTc6MDE8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI3MjIw
MDU5LTIwMTcxMDI4MjIwMzI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjcyMjAwNTktMjAxNzEwMjgyMjAzMjYucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yOS1PY3QtMjAxNyAwMTozNjwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjcy
MjAwNTktMjAxNzEwMjkxMDIzMDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyNzIyMDA1OS0yMDE3MTAyOTEwMjMwMC5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI5LU9jdC0yMDE3IDE0OjU3
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAy
NzIyMDA1OS0yMDE3MTAyOTIyMDExMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI3MjIwMDU5LTIwMTcxMDI5MjIwMTEyLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MzAtT2N0LTIwMTcgMDU6
MDc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcx
MDI4MTAwNDIzLTIwMTcxMDI4MjIwMzI2LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjgxMDA0MjMtMjAxNzEwMjgyMjAzMjYucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4yOS1PY3QtMjAxNyAw
MTozNjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAx
NzEwMjgxMDA0MjMtMjAxNzEwMjkxMDIzMDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyODEwMDQyMy0yMDE3MTAyOTEwMjMwMC5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjI5LU9jdC0yMDE3
IDE0OjU3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MTAyODEwMDQyMy0yMDE3MTAyOTIyMDExMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI4MTAwNDIzLTIwMTcxMDI5MjIwMTEy
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MzAtT2N0LTIw
MTcgMDU6MDc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcxMDI4MTAwNDIzLTIwMTcxMDMwMTAzNjA1LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjgxMDA0MjMtMjAxNzEwMzAxMDM2
MDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4zMC1PY3Qt
MjAxNyAyMDo0MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4t
VVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEwMjkxMDIzMDAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyODIyMDMyNi0yMDE3MTAyOTEw
MjMwMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD42TTwvdGQ+CisJCQkJPHRkPjI5LU9j
dC0yMDE3IDE0OjU3PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1l
bi1VUy0yMDE3MTAyODIyMDMyNi0yMDE3MTAyOTIyMDExMi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI4MjIwMzI2LTIwMTcxMDI5
MjIwMTEyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjZNPC90ZD4KKwkJCQk8dGQ+MzAt
T2N0LTIwMTcgMDU6MDc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJ
CQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xh
dGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcxMDI4MjIwMzI2LTIwMTcxMDMwMTAzNjA1LnBhcnRpYWwubWFyIj5maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEw
MzAxMDM2MDUucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4z
MC1PY3QtMjAxNyAyMDo0MjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgor
CQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkv
bGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
NjQtZW4tVVMtMjAxNzEwMjgyMjAzMjYtMjAxNzEwMzEyMjAxMzIucGFydGlhbC5tYXIiPmZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyODIyMDMyNi0yMDE3
MTAzMTIyMDEzMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRk
PjAxLU5vdi0yMDE3IDA4OjEyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW42NC1lbi1VUy0yMDE3MTAyODIyMDMyNi0yMDE3MTAzMTIzNTExOC5wYXJ0aWFsLm1hciI+Zmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI4MjIwMzI2LTIw
MTcxMDMxMjM1MTE4LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8
dGQ+MDEtTm92LTIwMTcgMTA6Mzc8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcxMDI5MTAyMzAwLTIwMTcxMDI5MjIwMTEyLnBhcnRpYWwubWFyIj5m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjkxMDIzMDAt
MjAxNzEwMjkyMjAxMTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+Nk08L3RkPgorCQkJ
CTx0ZD4zMC1PY3QtMjAxNyAwNTowNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJ
PHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25p
Z2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzEwMjkxMDIzMDAtMjAxNzEwMzAxMDM2MDUucGFydGlhbC5tYXIi
PmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyOTEwMjMw
MC0yMDE3MTAzMDEwMzYwNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJ
CQkJPHRkPjMwLU9jdC0yMDE3IDIwOjQyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJ
CQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gv
bmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyOTEwMjMwMC0yMDE3MTAzMTIyMDEzMi5wYXJ0aWFsLm1h
ciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI5MTAy
MzAwLTIwMTcxMDMxMjIwMTMyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4K
KwkJCQk8dGQ+MDEtTm92LTIwMTcgMDg6MTI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkK
KwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZv
eC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI5MTAyMzAwLTIwMTcxMDMxMjM1MTE4LnBhcnRpYWwu
bWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjkx
MDIzMDAtMjAxNzEwMzEyMzUxMTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3Rk
PgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAxMDozNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJ
CQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJl
Zm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjkyMjAxMTItMjAxNzEwMzAxMDM2MDUucGFydGlh
bC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAy
OTIyMDExMi0yMDE3MTAzMDEwMzYwNS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwv
dGQ+CisJCQkJPHRkPjMwLU9jdC0yMDE3IDIwOjQyPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQor
CQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2Zp
cmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAyOTIyMDExMi0yMDE3MTAzMTIyMDEzMi5wYXJ0
aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcx
MDI5MjIwMTEyLTIwMTcxMDMxMjIwMTMyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdN
PC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMDg6MTI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJ
CisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIv
ZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDI5MjIwMTEyLTIwMTcxMDMxMjM1MTE4LnBh
cnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAx
NzEwMjkyMjAxMTItMjAxNzEwMzEyMzUxMTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+
N008L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAxMDozNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJ
CQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1
Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMjkyMjAxMTItMjAxNzExMDExMDQ0MzAu
cGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MTAyOTIyMDExMi0yMDE3MTEwMTEwNDQzMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0
ZD43TTwvdGQ+CisJCQkJPHRkPjAxLU5vdi0yMDE3IDE2OjU2PC90ZD4KKwkJCTwvdHI+CisJCQkK
KwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIv
cHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAzMDEwMzYwNS0yMDE3MTAzMTIyMDEz
Mi5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcxMDMwMTAzNjA1LTIwMTcxMDMxMjIwMTMyLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJ
PHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDEtTm92LTIwMTcgMDg6MTI8L3RkPgorCQkJPC90cj4KKwkJ
CQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9
Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDMwMTAzNjA1LTIwMTcxMDMxMjM1
MTE4LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4t
VVMtMjAxNzEwMzAxMDM2MDUtMjAxNzEwMzEyMzUxMTgucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJ
CQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAxMDozNzwvdGQ+CisJCQk8L3RyPgor
CQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJl
Zj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMzAxMDM2MDUtMjAxNzExMDEx
MDQ0MzAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1l
bi1VUy0yMDE3MTAzMDEwMzYwNS0yMDE3MTEwMTEwNDQzMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgor
CQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAxLU5vdi0yMDE3IDE2OjU2PC90ZD4KKwkJCTwvdHI+
CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBo
cmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAzMDEwMzYwNS0yMDE3MTEw
MTIyMDEyMC5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0
LWVuLVVTLTIwMTcxMDMwMTAzNjA1LTIwMTcxMTAxMjIwMTIwLnBhcnRpYWwubWFyPC9hPjwvdGQ+
CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDItTm92LTIwMTcgMDA6NDA8L3RkPgorCQkJPC90
cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxh
IGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDMxMjIwMTMyLTIwMTcx
MTAxMTA0NDMwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2lu
NjQtZW4tVVMtMjAxNzEwMzEyMjAxMzItMjAxNzExMDExMDQ0MzAucGFydGlhbC5tYXI8L2E+PC90
ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAxNjo1NjwvdGQ+CisJCQk8
L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+
PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMzEyMjAxMzItMjAx
NzExMDEyMjAxMjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13
aW42NC1lbi1VUy0yMDE3MTAzMTIyMDEzMi0yMDE3MTEwMTIyMDEyMC5wYXJ0aWFsLm1hcjwvYT48
L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAyLU5vdi0yMDE3IDAwOjQxPC90ZD4KKwkJ
CTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0
ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2Zp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAzMTIyMDEzMi0y
MDE3MTEwMjEwMDA0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGEx
LXdpbjY0LWVuLVVTLTIwMTcxMDMxMjIwMTMyLTIwMTcxMTAyMTAwMDQxLnBhcnRpYWwubWFyPC9h
PjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDItTm92LTIwMTcgMTI6NTM8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDMxMjM1MTE4
LTIwMTcxMTAxMTA0NDMwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4w
YTEtd2luNjQtZW4tVVMtMjAxNzEwMzEyMzUxMTgtMjAxNzExMDExMDQ0MzAucGFydGlhbC5tYXI8
L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMS1Ob3YtMjAxNyAxNjo1NjwvdGQ+
CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJ
CQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJh
bC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMzEyMzUx
MTgtMjAxNzExMDEyMjAxMjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4
LjBhMS13aW42NC1lbi1VUy0yMDE3MTAzMTIzNTExOC0yMDE3MTEwMTIyMDEyMC5wYXJ0aWFsLm1h
cjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAyLU5vdi0yMDE3IDAwOjQwPC90
ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgor
CQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50
cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTAzMTIz
NTExOC0yMDE3MTEwMjEwMDA0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwt
NTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDMxMjM1MTE4LTIwMTcxMTAyMTAwMDQxLnBhcnRpYWwu
bWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDItTm92LTIwMTcgMTI6NTM8
L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+
CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNl
bnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMDMx
MjM1MTE4LTIwMTcxMTAyMjIyNjIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJh
bC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEwMzEyMzUxMTgtMjAxNzExMDIyMjI2MjAucGFydGlh
bC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMy1Ob3YtMjAxNyAwMToy
NzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEx
MDExMDQ0MzAtMjAxNzExMDEyMjAxMjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50
cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwMTEwNDQzMC0yMDE3MTEwMTIyMDEyMC5wYXJ0
aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAyLU5vdi0yMDE3IDAw
OjQwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8
L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxs
YS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MTEwMTEwNDQzMC0yMDE3MTEwMjEwMDA0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNl
bnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMTAxMTA0NDMwLTIwMTcxMTAyMTAwMDQxLnBh
cnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDItTm92LTIwMTcg
MTI6NTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+Rmls
ZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3pp
bGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcxMTAxMTA0NDMwLTIwMTcxMTAyMjIyNjIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEt
Y2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzExMDExMDQ0MzAtMjAxNzExMDIyMjI2MjAu
cGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMy1Ob3YtMjAx
NyAwMToyNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5G
aWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1v
emlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMt
MjAxNzExMDExMDQ0MzAtMjAxNzExMDMxMDAzMzEucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxs
YS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwMTEwNDQzMC0yMDE3MTEwMzEwMDMz
MS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJPHRkPjAzLU5vdi0y
MDE3IDEyOjU5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRk
PkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3Qt
bW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1V
Uy0yMDE3MTEwMTIyMDEyMC0yMDE3MTEwMjEwMDA0MS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3pp
bGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMTAxMjIwMTIwLTIwMTcxMTAyMTAw
MDQxLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDItTm92
LTIwMTcgMTI6NTM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8
dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVz
dC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcxMTAxMjIwMTIwLTIwMTcxMTAyMjIyNjIwLnBhcnRpYWwubWFyIj5maXJlZm94LW1v
emlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzExMDEyMjAxMjAtMjAxNzExMDIy
MjI2MjAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wMy1O
b3YtMjAxNyAwMToyNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJ
CTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0
ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQt
ZW4tVVMtMjAxNzExMDEyMjAxMjAtMjAxNzExMDMxMDAzMzEucGFydGlhbC5tYXIiPmZpcmVmb3gt
bW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwMTIyMDEyMC0yMDE3MTEw
MzEwMDMzMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjAz
LU5vdi0yMDE3IDEzOjAwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJ
CQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9s
YXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MTEwMTIyMDEyMC0yMDE3MTEwMzIyMDcxNS5wYXJ0aWFsLm1hciI+ZmlyZWZv
eC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMTAxMjIwMTIwLTIwMTcx
MTAzMjIwNzE1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+
MDQtTm92LTIwMTcgMDA6NDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcxMTAyMTAwMDQxLTIwMTcxMTAyMjIyNjIwLnBhcnRpYWwubWFyIj5maXJl
Zm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzExMDIxMDAwNDEtMjAx
NzExMDIyMjI2MjAucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0
ZD4wMy1Ob3YtMjAxNyAwMToyNzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRy
PgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0
bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luNjQtZW4tVVMtMjAxNzExMDIxMDAwNDEtMjAxNzExMDMxMDAzMzEucGFydGlhbC5tYXIiPmZp
cmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwMjEwMDA0MS0y
MDE3MTEwMzEwMDMzMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD44TTwvdGQ+CisJCQkJ
PHRkPjAzLU5vdi0yMDE3IDEzOjAwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8
dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmln
aHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW42NC1lbi1VUy0yMDE3MTEwMjEwMDA0MS0yMDE3MTEwMzIyMDcxNS5wYXJ0aWFsLm1hciI+
ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMTAyMTAwMDQx
LTIwMTcxMTAzMjIwNzE1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJ
CQk8dGQ+MDQtTm92LTIwMTcgMDA6NDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJ
CTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9u
aWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcxMTAyMTAwMDQxLTIwMTcxMTA0MTAwNDEyLnBhcnRpYWwubWFy
Ij5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzExMDIxMDAw
NDEtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgor
CQkJCTx0ZD4wNC1Ob3YtMjAxNyAxMjo0NzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQor
CQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94
L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzExMDIyMjI2MjAtMjAxNzExMDMxMDAzMzEucGFydGlhbC5t
YXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwMjIy
MjYyMC0yMDE3MTEwMzEwMDMzMS5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+
CisJCQkJPHRkPjAzLU5vdi0yMDE3IDEyOjU5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJ
CisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVm
b3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwMjIyMjYyMC0yMDE3MTEwMzIyMDcxNS5wYXJ0aWFs
Lm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMTAy
MjIyNjIwLTIwMTcxMTAzMjIwNzE1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90
ZD4KKwkJCQk8dGQ+MDQtTm92LTIwMTcgMDA6NDM8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJ
CQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmly
ZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMTAyMjIyNjIwLTIwMTcxMTA0MTAwNDEyLnBhcnRp
YWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzEx
MDIyMjI2MjAtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+OE08
L3RkPgorCQkJCTx0ZD4wNC1Ob3YtMjAxNyAxMjo0NjwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkK
KwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9m
aXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzExMDIyMjI2MjAtMjAxNzExMDQyMjA0MjAucGFy
dGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3
MTEwMjIyMjYyMC0yMDE3MTEwNDIyMDQyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD45
TTwvdGQ+CisJCQkJPHRkPjA1LU5vdi0yMDE3IDAwOjU4PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJ
CQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHVi
L2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwMzEwMDMzMS0yMDE3MTEwMzIyMDcxNS5w
YXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIw
MTcxMTAzMTAwMzMxLTIwMTcxMTAzMjIwNzE1LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRk
PjdNPC90ZD4KKwkJCQk8dGQ+MDQtTm92LTIwMTcgMDA6NDM8L3RkPgorCQkJPC90cj4KKwkJCQor
CQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9w
dWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMTAzMTAwMzMxLTIwMTcxMTA0MTAwNDEy
LnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMt
MjAxNzExMDMxMDAzMzEtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8
dGQ+OE08L3RkPgorCQkJCTx0ZD4wNC1Ob3YtMjAxNyAxMjo0NjwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzExMDMxMDAzMzEtMjAxNzExMDQyMjA0
MjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1V
Uy0yMDE3MTEwMzEwMDMzMS0yMDE3MTEwNDIyMDQyMC5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJ
CTx0ZD45TTwvdGQ+CisJCQkJPHRkPjA1LU5vdi0yMDE3IDAwOjU4PC90ZD4KKwkJCTwvdHI+CisJ
CQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVm
PSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwMzEwMDMzMS0yMDE3MTEwNTEw
MDM1My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVu
LVVTLTIwMTcxMTAzMTAwMzMxLTIwMTcxMTA1MTAwMzUzLnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJ
CQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MDUtTm92LTIwMTcgMTI6NDQ8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmlyZWZveC1t
b3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMTAzMjIwNzE1LTIwMTcxMTA0
MTAwNDEyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQt
ZW4tVVMtMjAxNzExMDMyMjA3MTUtMjAxNzExMDQxMDA0MTIucGFydGlhbC5tYXI8L2E+PC90ZD4K
KwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4wNC1Ob3YtMjAxNyAxMjo0NzwvdGQ+CisJCQk8L3Ry
PgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEg
aHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9maXJlZm94
LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzExMDMyMjA3MTUtMjAxNzEx
MDQyMjA0MjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42
NC1lbi1VUy0yMDE3MTEwMzIyMDcxNS0yMDE3MTEwNDIyMDQyMC5wYXJ0aWFsLm1hcjwvYT48L3Rk
PgorCQkJCTx0ZD45TTwvdGQ+CisJCQkJPHRkPjA1LU5vdi0yMDE3IDAwOjU4PC90ZD4KKwkJCTwv
dHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48
YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL2ZpcmVm
b3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwMzIyMDcxNS0yMDE3
MTEwNTEwMDM1My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdp
bjY0LWVuLVVTLTIwMTcxMTAzMjIwNzE1LTIwMTcxMTA1MTAwMzUzLnBhcnRpYWwubWFyPC9hPjwv
dGQ+CisJCQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MDUtTm92LTIwMTcgMTI6NDM8L3RkPgorCQkJ
PC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRk
PjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvZmly
ZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMTAzMjIwNzE1LTIw
MTcxMTA1MjIwNzIxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEt
d2luNjQtZW4tVVMtMjAxNzExMDMyMjA3MTUtMjAxNzExMDUyMjA3MjEucGFydGlhbC5tYXI8L2E+
PC90ZD4KKwkJCQk8dGQ+OU08L3RkPgorCQkJCTx0ZD4wNi1Ob3YtMjAxNyAwMDo1NTwvdGQ+CisJ
CQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8
dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9m
aXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzExMDQxMDA0MTIt
MjAxNzExMDQyMjA0MjAucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBh
MS13aW42NC1lbi1VUy0yMDE3MTEwNDEwMDQxMi0yMDE3MTEwNDIyMDQyMC5wYXJ0aWFsLm1hcjwv
YT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA1LU5vdi0yMDE3IDAwOjU4PC90ZD4K
KwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJ
CTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1jZW50cmFs
L2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwNDEwMDQx
Mi0yMDE3MTEwNTEwMDM1My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTgu
MGExLXdpbjY0LWVuLVVTLTIwMTcxMTA0MTAwNDEyLTIwMTcxMTA1MTAwMzUzLnBhcnRpYWwubWFy
PC9hPjwvdGQ+CisJCQkJPHRkPjdNPC90ZD4KKwkJCQk8dGQ+MDUtTm92LTIwMTcgMTI6NDQ8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJ
CQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRy
YWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMTA0MTAw
NDEyLTIwMTcxMTA1MjIwNzIxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2VudHJhbC01
OC4wYTEtd2luNjQtZW4tVVMtMjAxNzExMDQxMDA0MTItMjAxNzExMDUyMjA3MjEucGFydGlhbC5t
YXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNi1Ob3YtMjAxNyAwMDo1NTwv
dGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4K
KwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2Vu
dHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzExMDQx
MDA0MTItMjAxNzExMDYxMDAxMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1jZW50cmFs
LTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwNDEwMDQxMi0yMDE3MTEwNjEwMDEyMi5wYXJ0aWFs
Lm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA2LU5vdi0yMDE3IDEyOjUw
PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZpbGU8L3Rk
PgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96aWxsYS1j
ZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEw
NDIyMDQyMC0yMDE3MTEwNTEwMDM1My5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxhLWNlbnRy
YWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMTA0MjIwNDIwLTIwMTcxMTA1MTAwMzUzLnBhcnRp
YWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDUtTm92LTIwMTcgMTI6
NDQ8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcx
MTA0MjIwNDIwLTIwMTcxMTA1MjIwNzIxLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemlsbGEtY2Vu
dHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzExMDQyMjA0MjAtMjAxNzExMDUyMjA3MjEucGFy
dGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+NU08L3RkPgorCQkJCTx0ZD4wNi1Ob3YtMjAxNyAw
MDo1NTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAx
NzExMDQyMjA0MjAtMjAxNzExMDYxMDAxMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96aWxsYS1j
ZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwNDIyMDQyMC0yMDE3MTEwNjEwMDEyMi5w
YXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA2LU5vdi0yMDE3
IDEyOjUxPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJPHRkPkZp
bGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRlc3QtbW96
aWxsYS1jZW50cmFsL2ZpcmVmb3gtbW96aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0y
MDE3MTEwNTEwMDM1My0yMDE3MTEwNTIyMDcyMS5wYXJ0aWFsLm1hciI+ZmlyZWZveC1tb3ppbGxh
LWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVTLTIwMTcxMTA1MTAwMzUzLTIwMTcxMTA1MjIwNzIx
LnBhcnRpYWwubWFyPC9hPjwvdGQ+CisJCQkJPHRkPjVNPC90ZD4KKwkJCQk8dGQ+MDYtTm92LTIw
MTcgMDA6NTU8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+
RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1t
b3ppbGxhLWNlbnRyYWwvZmlyZWZveC1tb3ppbGxhLWNlbnRyYWwtNTguMGExLXdpbjY0LWVuLVVT
LTIwMTcxMTA1MTAwMzUzLTIwMTcxMTA2MTAwMTIyLnBhcnRpYWwubWFyIj5maXJlZm94LW1vemls
bGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4tVVMtMjAxNzExMDUxMDAzNTMtMjAxNzExMDYxMDAx
MjIucGFydGlhbC5tYXI8L2E+PC90ZD4KKwkJCQk8dGQ+N008L3RkPgorCQkJCTx0ZD4wNi1Ob3Yt
MjAxNyAxMjo1MDwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0
ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0
LW1vemlsbGEtY2VudHJhbC9maXJlZm94LW1vemlsbGEtY2VudHJhbC01OC4wYTEtd2luNjQtZW4t
VVMtMjAxNzExMDUyMjA3MjEtMjAxNzExMDYxMDAxMjIucGFydGlhbC5tYXIiPmZpcmVmb3gtbW96
aWxsYS1jZW50cmFsLTU4LjBhMS13aW42NC1lbi1VUy0yMDE3MTEwNTIyMDcyMS0yMDE3MTEwNjEw
MDEyMi5wYXJ0aWFsLm1hcjwvYT48L3RkPgorCQkJCTx0ZD43TTwvdGQ+CisJCQkJPHRkPjA2LU5v
di0yMDE3IDEyOjUwPC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+CisJCQkJ
PHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRseS9sYXRl
c3QtbW96aWxsYS1jZW50cmFsL2pzc2hlbGwtbGludXgtaTY4Ni56aXAiPmpzc2hlbGwtbGludXgt
aTY4Ni56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+OE08L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAx
MjozOTwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxl
PC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemls
bGEtY2VudHJhbC9qc3NoZWxsLWxpbnV4LXg4Nl82NC56aXAiPmpzc2hlbGwtbGludXgteDg2XzY0
LnppcDwvYT48L3RkPgorCQkJCTx0ZD4xME08L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMjox
MzwvdGQ+CisJCQk8L3RyPgorCQkJCisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90
ZD4KKwkJCQk8dGQ+PGEgaHJlZj0iL3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEt
Y2VudHJhbC9qc3NoZWxsLW1hYy56aXAiPmpzc2hlbGwtbWFjLnppcDwvYT48L3RkPgorCQkJCTx0
ZD4xME08L3RkPgorCQkJCTx0ZD4xNS1GZWItMjAxOCAxMTozNzwvdGQ+CisJCQk8L3RyPgorCQkJ
CisJCQkKKwkJCQorCQkJPHRyPgorCQkJCTx0ZD5GaWxlPC90ZD4KKwkJCQk8dGQ+PGEgaHJlZj0i
L3B1Yi9maXJlZm94L25pZ2h0bHkvbGF0ZXN0LW1vemlsbGEtY2VudHJhbC9qc3NoZWxsLW1hYzY0
LnppcCI+anNzaGVsbC1tYWM2NC56aXA8L2E+PC90ZD4KKwkJCQk8dGQ+MTBNPC90ZD4KKwkJCQk8
dGQ+MTMtRGVjLTIwMTYgMTI6MDI8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0
cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdo
dGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvanNzaGVsbC13aW4zMi56aXAiPmpzc2hlbGwtd2lu
MzIuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjhNPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTM6
MjA8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwv
dGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxh
LWNlbnRyYWwvanNzaGVsbC13aW42NC56aXAiPmpzc2hlbGwtd2luNjQuemlwPC9hPjwvdGQ+CisJ
CQkJPHRkPjlNPC90ZD4KKwkJCQk8dGQ+MTUtRmViLTIwMTggMTM6MjA8L3RkPgorCQkJPC90cj4K
KwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhy
ZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvbW96aGFybmVz
cy56aXAiPm1vemhhcm5lc3MuemlwPC9hPjwvdGQ+CisJCQkJPHRkPjJNPC90ZD4KKwkJCQk8dGQ+
MTUtRmViLTIwMTggMTM6MjE8L3RkPgorCQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4K
KwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJPHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5
L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwvc2V0dXAtc3R1Yi5leGUiPnNldHVwLXN0dWIuZXhlPC9h
PjwvdGQ+CisJCQkJPHRkPjFNPC90ZD4KKwkJCQk8dGQ+MjYtSnVsLTIwMTcgMTE6NTY8L3RkPgor
CQkJPC90cj4KKwkJCQorCQkJCisJCQkKKwkJCTx0cj4KKwkJCQk8dGQ+RmlsZTwvdGQ+CisJCQkJ
PHRkPjxhIGhyZWY9Ii9wdWIvZmlyZWZveC9uaWdodGx5L2xhdGVzdC1tb3ppbGxhLWNlbnRyYWwv
c2V0dXAuZXhlIj5zZXR1cC5leGU8L2E+PC90ZD4KKwkJCQk8dGQ+NjQzSzwvdGQ+CisJCQkJPHRk
PjI2LUp1bC0yMDE3IDEyOjA5PC90ZD4KKwkJCTwvdHI+CisJCQkKKwkJCQorCQkJCisJCQk8dHI+
CisJCQkJPHRkPkZpbGU8L3RkPgorCQkJCTx0ZD48YSBocmVmPSIvcHViL2ZpcmVmb3gvbmlnaHRs
eS9sYXRlc3QtbW96aWxsYS1jZW50cmFsL3Rvb2xjaGFpbnMuanNvbiI+dG9vbGNoYWlucy5qc29u
PC9hPjwvdGQ+CisJCQkJPHRkPjFLPC90ZD4KKwkJCQk8dGQ+MjYtSnVsLTIwMTcgMTI6MDk8L3Rk
PgorCQkJPC90cj4KKwkJCQorCQkJCisJCTwvdGFibGU+CisJPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHQvdGVzdHMvdGVzdF9zdGFiaWxpdHkucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3N0YWJpbGl0eS5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mMmRkMDEyMDg3YzZhMWFiNTI4ODA0MTQ0ZDVkYWRlNzcwMDQzN2NiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHQvdGVzdHMvdGVzdF9zdGFiaWxpdHkucHkKQEAgLTAsMCArMSw3IEBACitmcm9tIHRv
b2xzLndwdCBpbXBvcnQgc3RhYmlsaXR5CisKK2RlZiB0ZXN0X2lzX2luY29uc2lzdGVudCgpOgor
ICAgIGFzc2VydCBzdGFiaWxpdHkuaXNfaW5jb25zaXN0ZW50KHsiUEFTUyI6IDEwfSwgMTApIGlz
IEZhbHNlCisgICAgYXNzZXJ0IHN0YWJpbGl0eS5pc19pbmNvbnNpc3RlbnQoeyJQQVNTIjogOX0s
IDEwKSBpcyBUcnVlCisgICAgYXNzZXJ0IHN0YWJpbGl0eS5pc19pbmNvbnNpc3RlbnQoeyJQQVNT
IjogOSwgIkZBSUwiOiAxfSwgMTApIGlzIFRydWUKKyAgICBhc3NlcnQgc3RhYmlsaXR5LmlzX2lu
Y29uc2lzdGVudCh7IlBBU1MiOiA4LCAiRkFJTCI6IDF9LCAxMCkgaXMgVHJ1ZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQv
dGVzdHMvdGVzdF93cHQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3dwdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZDYyODBkNzIz
MDA4ZjViOTJkMzc1MzkyYzA1YWNlYmVlNWM5MDRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVz
dF93cHQucHkKQEAgLTAsMCArMSwyMjggQEAKK2ltcG9ydCBlcnJubworaW1wb3J0IG9zCitpbXBv
cnQgc2h1dGlsCitpbXBvcnQgc29ja2V0CitpbXBvcnQgc3VicHJvY2VzcworaW1wb3J0IHN5cwor
aW1wb3J0IHRlbXBmaWxlCitpbXBvcnQgdGltZQoraW1wb3J0IHVybGxpYjIKKworaW1wb3J0IHB5
dGVzdAorCitmcm9tIHRvb2xzLndwdCBpbXBvcnQgd3B0CisKKworZGVmIGlzX3BvcnRfODAwMF9p
bl91c2UoKToKKyAgICBzID0gc29ja2V0LnNvY2tldChzb2NrZXQuQUZfSU5FVCwgc29ja2V0LlNP
Q0tfU1RSRUFNKQorICAgIHRyeToKKyAgICAgICAgcy5iaW5kKCgiMTI3LjAuMC4xIiwgODAwMCkp
CisgICAgZXhjZXB0IHNvY2tldC5lcnJvciBhcyBlOgorICAgICAgICBpZiBlLmVycm5vID09IGVy
cm5vLkVBRERSSU5VU0U6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgcmFpc2UgZQorICAgIGZpbmFsbHk6CisgICAgICAgIHMuY2xvc2UoKQorICAg
IHJldHVybiBGYWxzZQorCisKK0BweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxlIikKK2RlZiBt
YW5pZmVzdF9kaXIoKToKKyAgICBkZWYgdXBkYXRlX21hbmlmZXN0KCk6CisgICAgICAgIHdpdGgg
cHl0ZXN0LnJhaXNlcyhTeXN0ZW1FeGl0KSBhcyBleGNpbmZvOgorICAgICAgICAgICAgd3B0Lm1h
aW4oYXJndj1bIm1hbmlmZXN0IiwgIi0tbm8tZG93bmxvYWQiLCAiLS1wYXRoIiwgb3MucGF0aC5q
b2luKHBhdGgsICJNQU5JRkVTVC5qc29uIildKQorICAgICAgICBhc3NlcnQgZXhjaW5mby52YWx1
ZS5jb2RlID09IDAKKworICAgIGlmIG9zLmVudmlyb24uZ2V0KCdUUkFWSVMnKSA9PSAidHJ1ZSI6
CisgICAgICAgIHBhdGggPSAifi9tZXRhIgorICAgICAgICB1cGRhdGVfbWFuaWZlc3QoKQorICAg
ICAgICB5aWVsZCBwYXRoCisgICAgZWxzZToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcGF0
aCA9IHRlbXBmaWxlLm1rZHRlbXAoKQorICAgICAgICAgICAgb2xkX3BhdGggPSBvcy5wYXRoLmpv
aW4od3B0LmxvY2FscGF0aHMucmVwb19yb290LCAiTUFOSUZFU1QuanNvbiIpCisgICAgICAgICAg
ICBpZiBvcy5wYXRoLmV4aXN0cyhvcy5wYXRoLmpvaW4od3B0LmxvY2FscGF0aHMucmVwb19yb290
LCAiTUFOSUZFU1QuanNvbiIpKToKKyAgICAgICAgICAgICAgICBzaHV0aWwuY29weWZpbGUob2xk
X3BhdGgsIG9zLnBhdGguam9pbihwYXRoLCAiTUFOSUZFU1QuanNvbiIpKQorICAgICAgICAgICAg
dXBkYXRlX21hbmlmZXN0KCkKKyAgICAgICAgICAgIHlpZWxkIHBhdGgKKyAgICAgICAgZmluYWxs
eToKKyAgICAgICAgICAgIHNodXRpbC5ybXRyZWUocGF0aCkKKworCitkZWYgdGVzdF9taXNzaW5n
KCk6CisgICAgd2l0aCBweXRlc3QucmFpc2VzKFN5c3RlbUV4aXQpOgorICAgICAgICB3cHQubWFp
bihhcmd2PVsiI21pc3NpbmctY29tbWFuZCJdKQorCisKK2RlZiB0ZXN0X2hlbHAoKToKKyAgICAj
IFRPRE86IEl0IHNlZW1zIGxpa2UgdGhlcmUncyBhIGJ1ZyBpbiBhcmdwYXJzZSB0aGF0IG1ha2Vz
IHRoaXMgYXJndW1lbnQgb3JkZXIgcmVxdWlyZWQKKyAgICAjIHNob3VsZCB0cnkgdG8gd29yayBh
cm91bmQgdGhhdAorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhTeXN0ZW1FeGl0KSBhcyBleGNpbmZv
OgorICAgICAgICB3cHQubWFpbihhcmd2PVsiLS1oZWxwIl0pCisgICAgYXNzZXJ0IGV4Y2luZm8u
dmFsdWUuY29kZSA9PSAwCisKKworQHB5dGVzdC5tYXJrLnNsb3cKK0BweXRlc3QubWFyay5yZW1v
dGVfbmV0d29yaworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiLAor
ICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iVGVzdHMgY3VycmVudGx5IGRvbid0IHdvcmsgb24g
V2luZG93cyBmb3IgcGF0aCByZWFzb25zIikKK2RlZiB0ZXN0X3J1bl9maXJlZm94KG1hbmlmZXN0
X2Rpcik6CisgICAgIyBUT0RPOiBJdCBzZWVtcyBsaWtlIHRoZXJlJ3MgYSBidWcgaW4gYXJncGFy
c2UgdGhhdCBtYWtlcyB0aGlzIGFyZ3VtZW50IG9yZGVyIHJlcXVpcmVkCisgICAgIyBzaG91bGQg
dHJ5IHRvIHdvcmsgYXJvdW5kIHRoYXQKKyAgICBpZiBpc19wb3J0XzgwMDBfaW5fdXNlKCk6Cisg
ICAgICAgIHB5dGVzdC5za2lwKCJwb3J0IDgwMDAgYWxyZWFkeSBpbiB1c2UiKQorCisgICAgb3Mu
ZW52aXJvblsiTU9aX0hFQURMRVNTIl0gPSAiMSIKKyAgICB0cnk6CisgICAgICAgIGlmIHN5cy5w
bGF0Zm9ybSA9PSAiZGFyd2luIjoKKyAgICAgICAgICAgIGZ4X3BhdGggPSBvcy5wYXRoLmpvaW4o
d3B0LmxvY2FscGF0aHMucmVwb19yb290LCAiX3ZlbnYiLCAiYnJvd3NlcnMiLCAiRmlyZWZveCBO
aWdodGx5LmFwcCIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmeF9wYXRoID0gb3MucGF0
aC5qb2luKHdwdC5sb2NhbHBhdGhzLnJlcG9fcm9vdCwgIl92ZW52IiwgImJyb3dzZXJzIiwgImZp
cmVmb3giKQorICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhmeF9wYXRoKToKKyAgICAgICAgICAg
IHNodXRpbC5ybXRyZWUoZnhfcGF0aCkKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFN5c3Rl
bUV4aXQpIGFzIGV4Y2luZm86CisgICAgICAgICAgICB3cHQubWFpbihhcmd2PVsicnVuIiwgIi0t
bm8tcGF1c2UiLCAiLS1pbnN0YWxsLWJyb3dzZXIiLCAiLS15ZXMiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIi0tbWV0YWRhdGEiLCBtYW5pZmVzdF9kaXIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiZmlyZWZveCIsICIvZG9tL25vZGVzL0VsZW1lbnQtdGFnTmFtZS5odG1sIl0p
CisgICAgICAgIGFzc2VydCBvcy5wYXRoLmV4aXN0cyhmeF9wYXRoKQorICAgICAgICBzaHV0aWwu
cm10cmVlKGZ4X3BhdGgpCisgICAgICAgIGFzc2VydCBleGNpbmZvLnZhbHVlLmNvZGUgPT0gMAor
ICAgIGZpbmFsbHk6CisgICAgICAgIGRlbCBvcy5lbnZpcm9uWyJNT1pfSEVBRExFU1MiXQorCisK
K0BweXRlc3QubWFyay5zbG93CitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnBsYXRmb3JtID09ICJ3
aW4zMiIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJUZXN0cyBjdXJyZW50bHkgZG9uJ3Qg
d29yayBvbiBXaW5kb3dzIGZvciBwYXRoIHJlYXNvbnMiKQorZGVmIHRlc3RfcnVuX2Nocm9tZSht
YW5pZmVzdF9kaXIpOgorICAgIGlmIGlzX3BvcnRfODAwMF9pbl91c2UoKToKKyAgICAgICAgcHl0
ZXN0LnNraXAoInBvcnQgODAwMCBhbHJlYWR5IGluIHVzZSIpCisKKyAgICB3aXRoIHB5dGVzdC5y
YWlzZXMoU3lzdGVtRXhpdCkgYXMgZXhjaW5mbzoKKyAgICAgICAgd3B0Lm1haW4oYXJndj1bInJ1
biIsICItLXllcyIsICItLW5vLXBhdXNlIiwgIi0tYmluYXJ5LWFyZyIsICJoZWFkbGVzcyIsCisg
ICAgICAgICAgICAgICAgICAgICAgICItLW1ldGFkYXRhIiwgbWFuaWZlc3RfZGlyLAorICAgICAg
ICAgICAgICAgICAgICAgICAiY2hyb21lIiwgIi9kb20vbm9kZXMvRWxlbWVudC10YWdOYW1lLmh0
bWwiXSkKKyAgICBhc3NlcnQgZXhjaW5mby52YWx1ZS5jb2RlID09IDAKKworCitAcHl0ZXN0Lm1h
cmsuc2xvdworQHB5dGVzdC5tYXJrLnJlbW90ZV9uZXR3b3JrCitAcHl0ZXN0Lm1hcmsueGZhaWwo
c3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJUZXN0
cyBjdXJyZW50bHkgZG9uJ3Qgd29yayBvbiBXaW5kb3dzIGZvciBwYXRoIHJlYXNvbnMiKQorZGVm
IHRlc3RfaW5zdGFsbF9jaHJvbWVkcml2ZXIoKToKKyAgICBjaHJvbWVkcml2ZXJfcGF0aCA9IG9z
LnBhdGguam9pbih3cHQubG9jYWxwYXRocy5yZXBvX3Jvb3QsICJfdmVudiIsICJiaW4iLCAiY2hy
b21lZHJpdmVyIikKKyAgICBpZiBvcy5wYXRoLmV4aXN0cyhjaHJvbWVkcml2ZXJfcGF0aCk6Cisg
ICAgICAgIG9zLnVubGluayhjaHJvbWVkcml2ZXJfcGF0aCkKKyAgICB3aXRoIHB5dGVzdC5yYWlz
ZXMoU3lzdGVtRXhpdCkgYXMgZXhjaW5mbzoKKyAgICAgICAgd3B0Lm1haW4oYXJndj1bImluc3Rh
bGwiLCAiY2hyb21lIiwgIndlYmRyaXZlciJdKQorICAgIGFzc2VydCBleGNpbmZvLnZhbHVlLmNv
ZGUgPT0gMAorICAgIGFzc2VydCBvcy5wYXRoLmV4aXN0cyhjaHJvbWVkcml2ZXJfcGF0aCkKKyAg
ICBvcy51bmxpbmsoY2hyb21lZHJpdmVyX3BhdGgpCisKKworQHB5dGVzdC5tYXJrLnNsb3cKK0Bw
eXRlc3QubWFyay5yZW1vdGVfbmV0d29yaworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy5wbGF0Zm9y
bSA9PSAid2luMzIiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iVGVzdHMgY3VycmVudGx5
IGRvbid0IHdvcmsgb24gV2luZG93cyBmb3IgcGF0aCByZWFzb25zIikKK2RlZiB0ZXN0X2luc3Rh
bGxfZmlyZWZveCgpOgorCisgICAgaWYgc3lzLnBsYXRmb3JtID09ICJkYXJ3aW4iOgorICAgICAg
ICBmeF9wYXRoID0gb3MucGF0aC5qb2luKHdwdC5sb2NhbHBhdGhzLnJlcG9fcm9vdCwgIl92ZW52
IiwgImJyb3dzZXJzIiwgIkZpcmVmb3ggTmlnaHRseS5hcHAiKQorICAgIGVsc2U6CisgICAgICAg
IGZ4X3BhdGggPSBvcy5wYXRoLmpvaW4od3B0LmxvY2FscGF0aHMucmVwb19yb290LCAiX3ZlbnYi
LCAiYnJvd3NlcnMiLCAiZmlyZWZveCIpCisgICAgaWYgb3MucGF0aC5leGlzdHMoZnhfcGF0aCk6
CisgICAgICAgIHNodXRpbC5ybXRyZWUoZnhfcGF0aCkKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMo
U3lzdGVtRXhpdCkgYXMgZXhjaW5mbzoKKyAgICAgICAgd3B0Lm1haW4oYXJndj1bImluc3RhbGwi
LCAiZmlyZWZveCIsICJicm93c2VyIl0pCisgICAgYXNzZXJ0IGV4Y2luZm8udmFsdWUuY29kZSA9
PSAwCisgICAgYXNzZXJ0IG9zLnBhdGguZXhpc3RzKGZ4X3BhdGgpCisgICAgc2h1dGlsLnJtdHJl
ZShmeF9wYXRoKQorCisKK0BweXRlc3QubWFyay54ZmFpbChzeXMucGxhdGZvcm0gPT0gIndpbjMy
IiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249IlRlc3RzIGN1cnJlbnRseSBkb24ndCB3b3Jr
IG9uIFdpbmRvd3MgZm9yIHBhdGggcmVhc29ucyIpCitkZWYgdGVzdF9maWxlc19jaGFuZ2VkKGNh
cHN5cyk6CisgICAgY29tbWl0ID0gIjkwNDdhYzFkOWY1MWIxZTlmYWE0ZjlmYWQ5YzQ3ZDEwOTYw
OWFiMDkiCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFN5c3RlbUV4aXQpIGFzIGV4Y2luZm86Cisg
ICAgICAgIHdwdC5tYWluKGFyZ3Y9WyJmaWxlcy1jaGFuZ2VkIiwgIiVzfi4uJXMiICUgKGNvbW1p
dCwgY29tbWl0KV0pCisgICAgYXNzZXJ0IGV4Y2luZm8udmFsdWUuY29kZSA9PSAwCisgICAgb3V0
LCBlcnIgPSBjYXBzeXMucmVhZG91dGVycigpCisgICAgYXNzZXJ0IG91dCA9PSAiIiJodG1sL2Jy
b3dzZXJzL29mZmxpbmUvYXBwY2FjaGUvd29ya2Vycy9hcHBjYWNoZS13b3JrZXIuaHRtbAoraHRt
bC9icm93c2Vycy9vZmZsaW5lL2FwcGNhY2hlL3dvcmtlcnMvcmVzb3VyY2VzL2FwcGNhY2hlLWRl
ZGljYXRlZC13b3JrZXItbm90LWluLWNhY2hlLmpzCitodG1sL2Jyb3dzZXJzL29mZmxpbmUvYXBw
Y2FjaGUvd29ya2Vycy9yZXNvdXJjZXMvYXBwY2FjaGUtc2hhcmVkLXdvcmtlci1ub3QtaW4tY2Fj
aGUuanMKK2h0bWwvYnJvd3NlcnMvb2ZmbGluZS9hcHBjYWNoZS93b3JrZXJzL3Jlc291cmNlcy9h
cHBjYWNoZS13b3JrZXItZGF0YS5weQoraHRtbC9icm93c2Vycy9vZmZsaW5lL2FwcGNhY2hlL3dv
cmtlcnMvcmVzb3VyY2VzL2FwcGNhY2hlLXdvcmtlci1pbXBvcnQucHkKK2h0bWwvYnJvd3NlcnMv
b2ZmbGluZS9hcHBjYWNoZS93b3JrZXJzL3Jlc291cmNlcy9hcHBjYWNoZS13b3JrZXIubWFuaWZl
c3QKK2h0bWwvYnJvd3NlcnMvb2ZmbGluZS9hcHBjYWNoZS93b3JrZXJzL3Jlc291cmNlcy9hcHBj
YWNoZS13b3JrZXIucHkKKyIiIgorICAgIGFzc2VydCBlcnIgPT0gIiIKKworCitkZWYgdGVzdF9m
aWxlc19jaGFuZ2VkX2lnbm9yZSgpOgorICAgIGZyb20gdG9vbHMud3B0LnRlc3RmaWxlcyBpbXBv
cnQgZXhjbHVkZV9pZ25vcmVkCisgICAgZmlsZXMgPSBbInJlc291cmNlcy90ZXN0aGFybmVzcy5q
cyIsICJyZXNvdXJjZXMvd2ViaWRsMi9pbmRleC5qcyIsICJ0ZXN0L3Rlc3QuanMiXQorICAgIGNo
YW5nZWQsIGlnbm9yZWQgPSBleGNsdWRlX2lnbm9yZWQoZmlsZXMsIGlnbm9yZV9ydWxlcz1bInJl
c291cmNlcy90ZXN0aGFybmVzcyoiXSkKKyAgICBhc3NlcnQgY2hhbmdlZCA9PSBbb3MucGF0aC5q
b2luKHdwdC53cHRfcm9vdCwgaXRlbSkgZm9yIGl0ZW0gaW4KKyAgICAgICAgICAgICAgICAgICAg
ICAgWyJyZXNvdXJjZXMvd2ViaWRsMi9pbmRleC5qcyIsICJ0ZXN0L3Rlc3QuanMiXV0KKyAgICBh
c3NlcnQgaWdub3JlZCA9PSBbb3MucGF0aC5qb2luKHdwdC53cHRfcm9vdCwgaXRlbSkgZm9yIGl0
ZW0gaW4KKyAgICAgICAgICAgICAgICAgICAgICAgWyJyZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
XV0KKworCitkZWYgdGVzdF9maWxlc19jaGFuZ2VkX2lnbm9yZV9ydWxlcygpOgorICAgIGZyb20g
dG9vbHMud3B0LnRlc3RmaWxlcyBpbXBvcnQgY29tcGlsZV9pZ25vcmVfcnVsZQorICAgIGFzc2Vy
dCBjb21waWxlX2lnbm9yZV9ydWxlKCJmb28qYmFyKi9iYXoiKS5wYXR0ZXJuID09ICJeZm9vXCpi
YXJbXi9dKi9iYXokIgorICAgIGFzc2VydCBjb21waWxlX2lnbm9yZV9ydWxlKCJmb28qKmJhcioq
L2JheiIpLnBhdHRlcm4gPT0gIl5mb29cKlwqYmFyLiovYmF6JCIKKyAgICBhc3NlcnQgY29tcGls
ZV9pZ25vcmVfcnVsZSgiZm9vYmFyL2Jhei8qIikucGF0dGVybiA9PSAiXmZvb2Jhci9iYXovW14v
XSokIgorICAgIGFzc2VydCBjb21waWxlX2lnbm9yZV9ydWxlKCJmb29iYXIvYmF6LyoqIikucGF0
dGVybiA9PSAiXmZvb2Jhci9iYXovLiokIgorCisKK0BweXRlc3QubWFyay5zbG93ICAjIHRoaXMg
dXBkYXRlcyB0aGUgbWFuaWZlc3QKK0BweXRlc3QubWFyay54ZmFpbChzeXMucGxhdGZvcm0gPT0g
IndpbjMyIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249IlRlc3RzIGN1cnJlbnRseSBkb24n
dCB3b3JrIG9uIFdpbmRvd3MgZm9yIHBhdGggcmVhc29ucyIpCitkZWYgdGVzdF90ZXN0c19hZmZl
Y3RlZChjYXBzeXMsIG1hbmlmZXN0X2Rpcik6CisgICAgIyBUaGlzIGRvZXNuJ3QgcmVhbGx5IHdv
cmsgcHJvcGVybHkgZm9yIHJhbmRvbSBjb21taXRzIGJlY2F1c2Ugd2UgdGVzdCB0aGUgZmlsZXMg
aW4KKyAgICAjIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IGZvciByZWZlcmVuY2VzIHRv
IHRoZSBjaGFuZ2VkIGZpbGVzLCBub3QgdGhlIG9uZXMgYXQKKyAgICAjIHRoYXQgc3BlY2lmaWMg
Y29tbWl0LiBCdXQgd2UgY2FuIGF0IGxlYXN0IHRlc3QgaXQgcmV0dXJucyBzb21ldGhpbmcgc2Vu
c2libGUKKyAgICBjb21taXQgPSAiOTA0N2FjMWQ5ZjUxYjFlOWZhYTRmOWZhZDljNDdkMTA5NjA5
YWIwOSIKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoU3lzdGVtRXhpdCkgYXMgZXhjaW5mbzoKKyAg
ICAgICAgd3B0Lm1haW4oYXJndj1bInRlc3RzLWFmZmVjdGVkIiwgIi0tbWV0YWRhdGEiLCBtYW5p
ZmVzdF9kaXIsICIlc34uLiVzIiAlIChjb21taXQsIGNvbW1pdCldKQorICAgIGFzc2VydCBleGNp
bmZvLnZhbHVlLmNvZGUgPT0gMAorICAgIG91dCwgZXJyID0gY2Fwc3lzLnJlYWRvdXRlcnIoKQor
ICAgIGFzc2VydCAiaHRtbC9icm93c2Vycy9vZmZsaW5lL2FwcGNhY2hlL3dvcmtlcnMvYXBwY2Fj
aGUtd29ya2VyLmh0bWwiIGluIG91dAorCisKK0BweXRlc3QubWFyay5zbG93CitAcHl0ZXN0Lm1h
cmsueGZhaWwoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsCisgICAgICAgICAgICAgICAgICAgcmVh
c29uPSJUZXN0cyBjdXJyZW50bHkgZG9uJ3Qgd29yayBvbiBXaW5kb3dzIGZvciBwYXRoIHJlYXNv
bnMiKQorZGVmIHRlc3Rfc2VydmUoKToKKyAgICBpZiBpc19wb3J0XzgwMDBfaW5fdXNlKCk6Cisg
ICAgICAgIHB5dGVzdC5za2lwKCJwb3J0IDgwMDAgYWxyZWFkeSBpbiB1c2UiKQorCisgICAgcCA9
IHN1YnByb2Nlc3MuUG9wZW4oW29zLnBhdGguam9pbih3cHQubG9jYWxwYXRocy5yZXBvX3Jvb3Qs
ICJ3cHQiKSwgInNlcnZlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZXhlY19mbj1v
cy5zZXRzaWQpCisKKyAgICBzdGFydCA9IHRpbWUudGltZSgpCisgICAgdHJ5OgorICAgICAgICB3
aGlsZSBUcnVlOgorICAgICAgICAgICAgaWYgcC5wb2xsKCkgaXMgbm90IE5vbmU6CisgICAgICAg
ICAgICAgICAgYXNzZXJ0IEZhbHNlLCAic2VydmVyIG5vdCBydW5uaW5nIgorICAgICAgICAgICAg
aWYgdGltZS50aW1lKCkgLSBzdGFydCA+IDYwOgorICAgICAgICAgICAgICAgIGFzc2VydCBGYWxz
ZSwgInNlcnZlciBkaWQgbm90IHN0YXJ0IHJlc3BvbmRpbmcgd2l0aGluIDYwcyIKKyAgICAgICAg
ICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXNwID0gdXJsbGliMi51cmxvcGVuKCJodHRwOi8v
d2ViLXBsYXRmb3JtLnRlc3Q6ODAwMCIpCisgICAgICAgICAgICAgICAgcHJpbnQgcmVzcAorICAg
ICAgICAgICAgZXhjZXB0IHVybGxpYjIuVVJMRXJyb3I6CisgICAgICAgICAgICAgICAgcHJpbnQg
IlVSTEVycm9yIgorICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMSkKKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHJlc3AuY29kZSA9PSAyMDAKKyAgICAgICAgICAg
ICAgICBicmVhaworICAgIGZpbmFsbHk6CisgICAgICAgIG9zLmtpbGxwZyhwLnBpZCwgMTUpCisK
KyMgVGhlIGZvbGxvd2luZyBjb21tYW5kcyBhcmUgc2xvdyBydW5uaW5nIGFuZCB1c2VkIGltcGxp
Y2l0bHkgaW4gb3RoZXIgQ0kKKyMgam9icywgc28gd2Ugc2tpcCB0aGVtIGhlcmU6CisjIHdwdCBj
aGVjay1zdGFiaWxpdHkKKyMgd3B0IG1hbmlmZXN0CisjIHdwdCBsaW50CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0
cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllNTIyZDJl
MTAzNjE3OTlkZDI1NGJkYWY2OTgyYmMyMzFkZGQ0NTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy93
M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE5IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
K05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy9sYXRlc3RfbW96aWxs
YV9jZW50cmFsLnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3Rfc3RhYmlsaXR5LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF93cHQucHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0L3RveC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdC90b3guaW5pCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyOWJjNGJmYzVjNTAyODQ5MzljMTYz
ZGQwZThiYjVjODI3NGEwMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90b3guaW5pCkBAIC0wLDAgKzEsNTIg
QEAKK1t0b3hdCitlbnZsaXN0ID0gcHkyNyxweTI3LWZsYWtlOAorc2tpcHNkaXN0PVRydWUKKwor
W3Rlc3RlbnZdCitkZXBzID0KKyAgcHl0ZXN0CisgIHB5dGVzdC1jb3YKKyAgaHlwb3RoZXNpcwor
ICAtcnt0b3hpbmlkaXJ9Ly4uL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMudHh0CisgIC1ye3RveGlu
aWRpcn0vLi4vd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWUudHh0CisgIC1ye3RveGluaWRp
cn0vLi4vd3B0cnVubmVyL3JlcXVpcmVtZW50c19maXJlZm94LnR4dAorCitjb21tYW5kcyA9Cisg
IHB5dGVzdCAtLWNvdiB7cG9zYXJnc30KKworW3Rlc3RlbnY6cHkyNy1mbGFrZThdCisjIGZsYWtl
OCB2ZXJzaW9ucyBzaG91bGQgYmUga2VwdCBpbiBzeW5jIGFjcm9zcyB0b29scy90b3guaW5pLCB0
b29scy93cHQvdG94LmluaSwgYW5kIHRvb2xzL3dwdHJ1bm5lci90b3guaW5pCitkZXBzID0KKyAg
ICAgZmxha2U4PT0zLjUuMAorICAgICBweWNvZGVzdHlsZT09Mi4zLjEKKyAgICAgcHlmbGFrZXM9
PTEuNi4wCisgICAgIHBlcDgtbmFtaW5nPT0wLjQuMQorCitjb21tYW5kcyA9CisgICAgIGZsYWtl
OCB7cG9zYXJnc30KKworW2ZsYWtlOF0KKyMgZmxha2U4IGNvbmZpZyBzaG91bGQgYmUga2VwdCBp
biBzeW5jIGFjcm9zcyB0b29scy90b3guaW5pLCB0b29scy93cHQvdG94LmluaSwgYW5kIHRvb2xz
L3dwdHJ1bm5lci90b3guaW5pCitzZWxlY3QgPSBFLFcsRixOCisjIEUxMjg6IGNvbnRpbnVhdGlv
biBsaW5lIHVuZGVyLWluZGVudGVkIGZvciB2aXN1YWwgaW5kZW50CisjIEUxMjk6IHZpc3VhbGx5
IGluZGVudGVkIGxpbmUgd2l0aCBzYW1lIGluZGVudCBhcyBuZXh0IGxvZ2ljYWwgbGluZQorIyBF
MjIxOiBtdWx0aXBsZSBzcGFjZXMgYmVmb3JlIG9wZXJhdG9yCisjIEUyMjY6IG1pc3Npbmcgd2hp
dGVzcGFjZSBhcm91bmQgYXJpdGhtZXRpYyBvcGVyYXRvcgorIyBFMjMxOiBtaXNzaW5nIHdoaXRl
c3BhY2UgYWZ0ZXIg4oCYLOKAmSwg4oCYO+KAmSwgb3Ig4oCYOuKAmQorIyBFMjUxOiB1bmV4cGVj
dGVkIHNwYWNlcyBhcm91bmQga2V5d29yZCAvIHBhcmFtZXRlciBlcXVhbHMKKyMgRTI2NTogYmxv
Y2sgY29tbWVudCBzaG91bGQgc3RhcnQgd2l0aCDigJgjIOKAmAorIyBFMzAyOiBleHBlY3RlZCAy
IGJsYW5rIGxpbmVzLCBmb3VuZCAwCisjIEUzMDM6IHRvbyBtYW55IGJsYW5rIGxpbmVzICgzKQor
IyBFMzA1OiBleHBlY3RlZCAyIGJsYW5rIGxpbmVzIGFmdGVyIGVuZCBvZiBmdW5jdGlvbiBvciBj
bGFzcworIyBFNDAyOiBtb2R1bGUgbGV2ZWwgaW1wb3J0IG5vdCBhdCB0b3Agb2YgZmlsZQorIyBF
NzMxOiBkbyBub3QgYXNzaWduIGEgbGFtYmRhIGV4cHJlc3Npb24sIHVzZSBhIGRlZgorIyBFOTAx
OiBTeW50YXhFcnJvciBvciBJbmRlbnRhdGlvbkVycm9yCisjIFc2MDE6IC5oYXNfa2V5KCkgaXMg
ZGVwcmVjYXRlZCwgdXNlIOKAmGlu4oCZCisjIEY0MDE6IG1vZHVsZSBpbXBvcnRlZCBidXQgdW51
c2VkCisjIEY0MDM6IOKAmGZyb20gbW9kdWxlIGltcG9ydCAq4oCZIHVzZWQ7IHVuYWJsZSB0byBk
ZXRlY3QgdW5kZWZpbmVkIG5hbWVzCisjIEY0MDU6IG5hbWUgbWF5IGJlIHVuZGVmaW5lZCwgb3Ig
ZGVmaW5lZCBmcm9tIHN0YXIgaW1wb3J0czogbW9kdWxlCisjIEY4NDE6IGxvY2FsIHZhcmlhYmxl
IG5hbWUgaXMgYXNzaWduZWQgdG8gYnV0IG5ldmVyIHVzZWQKKyMgTjgwMTogY2xhc3MgbmFtZXMg
c2hvdWxkIHVzZSBDYXBXb3JkcyBjb252ZW50aW9uCisjIE44MDI6IGZ1bmN0aW9uIG5hbWUgc2hv
dWxkIGJlIGxvd2VyY2FzZQoraWdub3JlID0gRTEyOCxFMTI5LEUyMjEsRTIyNixFMjMxLEUyNTEs
RTI2NSxFMzAyLEUzMDMsRTMwNSxFNDAyLEU3MzEsRTkwMSxXNjAxLEY0MDEsRjQwMyxGNDA1LEY4
NDEsTjgwMSxOODAyCittYXgtbGluZS1sZW5ndGggPSAxNDEKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3VwZGF0ZS5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Vw
ZGF0ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hNGE3YjYyYjg2MDgzZmQwNWJlMGJlNmNhNzRkZDM1NDkyMDg3
MWU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHQvdXBkYXRlLnB5CkBAIC0wLDAgKzEsMzIgQEAKK2ltcG9ydCBv
cworaW1wb3J0IHN5cworCit3cHRfcm9vdCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4o
b3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgb3MucGFyZGlyLCBvcy5wYXJkaXIpKQorc3lzLnBh
dGguaW5zZXJ0KDAsIG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4od3B0X3Jvb3QsICJ0b29s
cyIpKSkKKworCitkZWYgY3JlYXRlX3BhcnNlcl91cGRhdGUoKToKKyAgICBmcm9tIHdwdHJ1bm5l
ciBpbXBvcnQgd3B0Y29tbWFuZGxpbmUKKworICAgIHJldHVybiB3cHRjb21tYW5kbGluZS5jcmVh
dGVfcGFyc2VyX3VwZGF0ZSgpCisKKworZGVmIHVwZGF0ZV9leHBlY3RhdGlvbnModmVudiwgKipr
d2FyZ3MpOgorICAgIGZyb20gd3B0cnVubmVyIGltcG9ydCB3cHRjb21tYW5kbGluZQorICAgIGZy
b20gd3B0cnVubmVyLnVwZGF0ZSBpbXBvcnQgc2V0dXBfbG9nZ2luZywgV1BUVXBkYXRlCisKKyAg
ICBpZiBub3Qga3dhcmdzWyJ0ZXN0c19yb290Il06CisgICAgICAgIGt3YXJnc1sidGVzdHNfcm9v
dCJdID0gd3B0X3Jvb3QKKworICAgIGlmIG5vdCBrd2FyZ3NbIm1hbmlmZXN0X3BhdGgiXToKKyAg
ICAgICAga3dhcmdzWyJtYW5pZmVzdF9wYXRoIl0gPSBvcy5wYXRoLmpvaW4od3B0X3Jvb3QsICJN
QU5JRkVTVC5qc29uIikKKworICAgIGlmICJwcm9kdWN0IiBub3QgaW4ga3dhcmdzWyJleHRyYV9w
cm9wZXJ0eSJdOgorICAgICAgICBrd2FyZ3NbImV4dHJhX3Byb3BlcnR5Il0uYXBwZW5kKCJwcm9k
dWN0IikKKworICAgIHdwdGNvbW1hbmRsaW5lLmNoZWNrX2FyZ3NfdXBkYXRlKGt3YXJncykKKwor
ICAgIGxvZ2dlciA9IHNldHVwX2xvZ2dpbmcoa3dhcmdzLCB7Im1hY2giOiBzeXMuc3Rkb3V0fSkK
KworICAgIHVwZGF0ZXIgPSBXUFRVcGRhdGUobG9nZ2VyLCAqKmt3YXJncykKKyAgICB1cGRhdGVy
LnJ1bigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdC91dGlscy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3V0aWxzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4ZWRjMGJlNDkz
NzMxNTgxMTJiNjJjZmE4MDY0YTczMjEyOWI5NzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC91dGlscy5weQpA
QCAtMCwwICsxLDExOSBAQAoraW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcworaW1wb3J0IHN1YnBy
b2Nlc3MKK2ltcG9ydCBzeXMKK2ltcG9ydCB0YXJmaWxlCitpbXBvcnQgemlwZmlsZQorZnJvbSBp
byBpbXBvcnQgQnl0ZXNJTworCitsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykK
KworCitjbGFzcyBLd2FyZ3MoZGljdCk6CisgICAgZGVmIHNldF9pZl9ub25lKHNlbGYsCisgICAg
ICAgICAgICAgICAgICAgIG5hbWUsICAgICAgICAgICAgIyB0eXBlOiBzdHIKKyAgICAgICAgICAg
ICAgICAgICAgdmFsdWUsICAgICAgICAgICAjIHR5cGU6IEFueQorICAgICAgICAgICAgICAgICAg
ICBlcnJfZm49Tm9uZSwgICAgICMgdHlwZTogKEt3YXJncywgc3RyKSAtPiBBbnkKKyAgICAgICAg
ICAgICAgICAgICAgZGVzYz1Ob25lLCAgICAgICAjIHR5cGU6IHN0cgorICAgICAgICAgICAgICAg
ICAgICBleHRyYV9jb25kPU5vbmUgICMgdHlwZTogKEt3YXJncykgLT4gYm9vbAorICAgICAgICAg
ICAgICAgICAgICApOgorICAgICAgICBpZiBkZXNjIGlzIE5vbmU6CisgICAgICAgICAgICBkZXNj
ID0gbmFtZQorCisgICAgICAgIGlmIG5hbWUgbm90IGluIHNlbGYgb3Igc2VsZltuYW1lXSBpcyBO
b25lOgorICAgICAgICAgICAgaWYgZXh0cmFfY29uZCBpcyBub3QgTm9uZSBhbmQgbm90IGV4dHJh
X2NvbmQoc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICBpZiBjYWxs
YWJsZSh2YWx1ZSk6CisgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSgpCisgICAgICAgICAg
ICBpZiBub3QgdmFsdWU6CisgICAgICAgICAgICAgICAgaWYgZXJyX2ZuIGlzIG5vdCBOb25lOgor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJyX2ZuKHNlbGYsICJGYWlsZWQgdG8gZmluZCAl
cyIgJSBkZXNjKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybgorICAgICAgICAgICAgc2VsZltuYW1lXSA9IHZhbHVlCisgICAgICAgICAgICBsb2dnZXIu
aW5mbygiU2V0ICVzIHRvICVzIiAlIChkZXNjLCB2YWx1ZSkpCisKKworZGVmIGNhbGwoKmFyZ3Mp
OgorICAgICIiIkxvZyB0ZXJtaW5hbCBjb21tYW5kLCBpbnZva2UgaXQgYXMgYSBzdWJwcm9jZXNz
LgorCisgICAgUmV0dXJucyBhIGJ5dGVzdHJpbmcgb2YgdGhlIHN1YnByb2Nlc3Mgb3V0cHV0IGlm
IG5vIGVycm9yLgorICAgICIiIgorICAgIGxvZ2dlci5kZWJ1ZygiJXMiICUgIiAiLmpvaW4oYXJn
cykpCisgICAgdHJ5OgorICAgICAgICByZXR1cm4gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoYXJn
cykKKyAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3IgYXMgZToKKyAgICAg
ICAgbG9nZ2VyLmNyaXRpY2FsKCIlcyBleGl0ZWQgd2l0aCByZXR1cm4gY29kZSAlaSIgJQorICAg
ICAgICAgICAgICAgICAgICAgICAgKGUuY21kLCBlLnJldHVybmNvZGUpKQorICAgICAgICBsb2dn
ZXIuY3JpdGljYWwoZS5vdXRwdXQpCisgICAgICAgIHJhaXNlCisKKworZGVmIGdldF9naXRfY21k
KHJlcG9fcGF0aCk6CisgICAgIiIiQ3JlYXRlIGEgZnVuY3Rpb24gZm9yIGludm9raW5nIGdpdCBj
b21tYW5kcyBhcyBhIHN1YnByb2Nlc3MuIiIiCisgICAgZGVmIGdpdChjbWQsICphcmdzKToKKyAg
ICAgICAgZnVsbF9jbWQgPSBbImdpdCIsIGNtZF0gKyBsaXN0KGFyZ3MpCisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZygiICIuam9pbihmdWxsX2NtZCkpCisgICAgICAgICAg
ICByZXR1cm4gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoZnVsbF9jbWQsIGN3ZD1yZXBvX3BhdGgs
IHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCkuc3RyaXAoKQorICAgICAgICBleGNlcHQgc3VicHJv
Y2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3IgYXMgZToKKyAgICAgICAgICAgIGxvZ2dlci5lcnJvcigi
R2l0IGNvbW1hbmQgZXhpdGVkIHdpdGggc3RhdHVzICVpIiAlIGUucmV0dXJuY29kZSkKKyAgICAg
ICAgICAgIGxvZ2dlci5lcnJvcihlLm91dHB1dCkKKyAgICAgICAgICAgIHN5cy5leGl0KDEpCisg
ICAgcmV0dXJuIGdpdAorCisKK2RlZiBzZWVrYWJsZShmaWxlb2JqKToKKyAgICAiIiJBdHRlbXB0
IHRvIHVzZSBmaWxlLnNlZWsgb24gZ2l2ZW4gZmlsZSwgd2l0aCBmYWxsYmFja3MuIiIiCisgICAg
dHJ5OgorICAgICAgICBmaWxlb2JqLnNlZWsoZmlsZW9iai50ZWxsKCkpCisgICAgZXhjZXB0IEV4
Y2VwdGlvbjoKKyAgICAgICAgcmV0dXJuIEJ5dGVzSU8oZmlsZW9iai5yZWFkKCkpCisgICAgZWxz
ZToKKyAgICAgICAgcmV0dXJuIGZpbGVvYmoKKworCitkZWYgdW50YXIoZmlsZW9iaiwgZGVzdD0i
LiIpOgorICAgICIiIkV4dHJhY3QgdGFyIGFyY2hpdmUuIiIiCisgICAgbG9nZ2VyLmRlYnVnKCJ1
bnRhciIpCisgICAgZmlsZW9iaiA9IHNlZWthYmxlKGZpbGVvYmopCisgICAgd2l0aCB0YXJmaWxl
Lm9wZW4oZmlsZW9iaj1maWxlb2JqKSBhcyB0YXJfZGF0YToKKyAgICAgICAgdGFyX2RhdGEuZXh0
cmFjdGFsbChwYXRoPWRlc3QpCisKKworZGVmIHVuemlwKGZpbGVvYmosIGRlc3Q9Tm9uZSwgbGlt
aXQ9Tm9uZSk6CisgICAgIiIiRXh0cmFjdCB6aXAgYXJjaGl2ZS4iIiIKKyAgICBsb2dnZXIuZGVi
dWcoInVuemlwIikKKyAgICBmaWxlb2JqID0gc2Vla2FibGUoZmlsZW9iaikKKyAgICB3aXRoIHpp
cGZpbGUuWmlwRmlsZShmaWxlb2JqKSBhcyB6aXBfZGF0YToKKyAgICAgICAgZm9yIGluZm8gaW4g
emlwX2RhdGEuaW5mb2xpc3QoKToKKyAgICAgICAgICAgIGlmIGxpbWl0IGlzIG5vdCBOb25lIGFu
ZCBpbmZvLmZpbGVuYW1lIG5vdCBpbiBsaW1pdDoKKyAgICAgICAgICAgICAgICBjb250aW51ZQor
ICAgICAgICAgICAgemlwX2RhdGEuZXh0cmFjdChpbmZvLCBwYXRoPWRlc3QpCisgICAgICAgICAg
ICBwZXJtID0gaW5mby5leHRlcm5hbF9hdHRyID4+IDE2ICYgMHgxRkYKKyAgICAgICAgICAgIG9z
LmNobW9kKG9zLnBhdGguam9pbihkZXN0LCBpbmZvLmZpbGVuYW1lKSwgcGVybSkKKworCitjbGFz
cyBwd2Qob2JqZWN0KToKKyAgICAiIiJDcmVhdGUgY29udGV4dCBmb3IgdGVtcG9yYXJpbHkgY2hh
bmdpbmcgcHJlc2VudCB3b3JraW5nIGRpcmVjdG9yeS4iIiIKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgZGlyKToKKyAgICAgICAgc2VsZi5kaXIgPSBkaXIKKyAgICAgICAgc2VsZi5vbGRfZGlyID0g
Tm9uZQorCisgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAgICAgICAgc2VsZi5vbGRfZGlyID0g
b3MucGF0aC5hYnNwYXRoKG9zLmN1cmRpcikKKyAgICAgICAgb3MuY2hkaXIoc2VsZi5kaXIpCisK
KyAgICBkZWYgX19leGl0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgb3MuY2hk
aXIoc2VsZi5vbGRfZGlyKQorICAgICAgICBzZWxmLm9sZF9kaXIgPSBOb25lCisKKworZGVmIGdl
dCh1cmwpOgorICAgICIiIklzc3VlIEdFVCByZXF1ZXN0IHRvIGEgZ2l2ZW4gVVJMIGFuZCByZXR1
cm4gdGhlIHJlc3BvbnNlLiIiIgorICAgIGltcG9ydCByZXF1ZXN0cworCisgICAgbG9nZ2VyLmRl
YnVnKCJHRVQgJXMiICUgdXJsKQorICAgIHJlc3AgPSByZXF1ZXN0cy5nZXQodXJsLCBzdHJlYW09
VHJ1ZSkKKyAgICByZXNwLnJhaXNlX2Zvcl9zdGF0dXMoKQorICAgIHJldHVybiByZXNwCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdC92aXJ0dWFsZW52LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHQvdmlydHVhbGVudi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iODQ1NGM5NzljMmM0
YmEyMDk5NWJhODgwNWNlYmI2MThmZDhiYWVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdmlydHVhbGVudi5w
eQpAQCAtMCwwICsxLDUzIEBACitpbXBvcnQgb3MKK2ltcG9ydCBzaHV0aWwKK2ltcG9ydCBzeXMK
K2ltcG9ydCBsb2dnaW5nCitmcm9tIGRpc3R1dGlscy5zcGF3biBpbXBvcnQgZmluZF9leGVjdXRh
YmxlCisKK2Zyb20gdG9vbHMud3B0LnV0aWxzIGltcG9ydCBjYWxsCisKK2xvZ2dlciA9IGxvZ2dp
bmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCitjbGFzcyBWaXJ0dWFsZW52KG9iamVjdCk6CisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgpOgorICAgICAgICBzZWxmLnBhdGggPSBwYXRoCisgICAg
ICAgIHNlbGYudmlydHVhbGVudiA9IGZpbmRfZXhlY3V0YWJsZSgidmlydHVhbGVudiIpCisgICAg
ICAgIGlmIG5vdCBzZWxmLnZpcnR1YWxlbnY6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCJ2aXJ0dWFsZW52IG11c3QgYmUgaW5zdGFsbGVkIGFuZCBvbiB0aGUgUEFUSCIpCisKKyAgICBA
cHJvcGVydHkKKyAgICBkZWYgZXhpc3RzKHNlbGYpOgorICAgICAgICByZXR1cm4gb3MucGF0aC5p
c2RpcihzZWxmLnBhdGgpCisKKyAgICBkZWYgY3JlYXRlKHNlbGYpOgorICAgICAgICBpZiBvcy5w
YXRoLmV4aXN0cyhzZWxmLnBhdGgpOgorICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShzZWxmLnBh
dGgpCisgICAgICAgIGNhbGwoc2VsZi52aXJ0dWFsZW52LCBzZWxmLnBhdGgsICItcCIsIHN5cy5l
eGVjdXRhYmxlKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGJpbl9wYXRoKHNlbGYpOgorICAg
ICAgICBpZiBzeXMucGxhdGZvcm0gaW4gKCJ3aW4zMiIsICJjeWd3aW4iKToKKyAgICAgICAgICAg
IHJldHVybiBvcy5wYXRoLmpvaW4oc2VsZi5wYXRoLCAiU2NyaXB0cyIpCisgICAgICAgIHJldHVy
biBvcy5wYXRoLmpvaW4oc2VsZi5wYXRoLCAiYmluIikKKworICAgIEBwcm9wZXJ0eQorICAgIGRl
ZiBwaXBfcGF0aChzZWxmKToKKyAgICAgICAgcGF0aCA9IGZpbmRfZXhlY3V0YWJsZSgicGlwIiwg
c2VsZi5iaW5fcGF0aCkKKyAgICAgICAgaWYgcGF0aCBpcyBOb25lOgorICAgICAgICAgICAgcmFp
c2UgVmFsdWVFcnJvcigicGlwIG5vdCBmb3VuZCIpCisgICAgICAgIHJldHVybiBwYXRoCisKKyAg
ICBkZWYgYWN0aXZhdGUoc2VsZik6CisgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5i
aW5fcGF0aCwgImFjdGl2YXRlX3RoaXMucHkiKQorICAgICAgICBleGVjZmlsZShwYXRoLCB7Il9f
ZmlsZV9fIjogcGF0aH0pCisKKyAgICBkZWYgc3RhcnQoc2VsZik6CisgICAgICAgIGlmIG5vdCBz
ZWxmLmV4aXN0czoKKyAgICAgICAgICAgIHNlbGYuY3JlYXRlKCkKKyAgICAgICAgc2VsZi5hY3Rp
dmF0ZSgpCisKKyAgICBkZWYgaW5zdGFsbChzZWxmLCAqcmVxdWlyZW1lbnRzKToKKyAgICAgICAg
Y2FsbChzZWxmLnBpcF9wYXRoLCAiaW5zdGFsbCIsICpyZXF1aXJlbWVudHMpCisKKyAgICBkZWYg
aW5zdGFsbF9yZXF1aXJlbWVudHMoc2VsZiwgcmVxdWlyZW1lbnRzX3BhdGgpOgorICAgICAgICBj
YWxsKHNlbGYucGlwX3BhdGgsICJpbnN0YWxsIiwgIi1yIiwgcmVxdWlyZW1lbnRzX3BhdGgpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0L3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5ZWQ3YjQ3
OTNhYjE0YTJmY2M0Y2M4MWFmZTAwYzkzOTgwMmJhNjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC93M2MtaW1w
b3J0LmxvZwpAQCAtMCwwICsxLDMxIEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
KworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUK
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9fX2luaXRfXy5weQorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L2Jyb3dzZXIucHkKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9jb21t
YW5kcy5qc29uCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHQvaW5zdGFsbC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0L21hcmtkb3duLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcGF0aHMKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9yZXF1aXJlbWVudHMudHh0CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcnVuLnB5
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQv
c3RhYmlsaXR5LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHQvdGVzdGZpbGVzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHQvdG94LmluaQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3VwZGF0ZS5weQorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3V0aWxzLnB5CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdmlydHVhbGVu
di5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0L3dwdC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHQvd3B0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvd3B0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5ZjQ2M2QyYTll
ZDFlZTNjNDNjODVkM2FjZWI1ZjA1OGNhZjExYWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC93cHQucHkKQEAg
LTAsMCArMSwxNDUgQEAKK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IGpzb24KK2ltcG9ydCBsb2dn
aW5nCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworZnJvbSB0b29scyBpbXBvcnQgbG9jYWxwYXRo
cworCitmcm9tIHNpeCBpbXBvcnQgaXRlcml0ZW1zCitmcm9tIC4gaW1wb3J0IHZpcnR1YWxlbnYK
KworCitoZXJlID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQord3B0X3Jvb3QgPSBvcy5wYXRo
LmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsIG9zLnBhcmRpciwgb3MucGFyZGlyKSkKKworCitk
ZWYgbG9hZF9jb21tYW5kcygpOgorICAgIHJ2ID0ge30KKyAgICB3aXRoIG9wZW4ob3MucGF0aC5q
b2luKGhlcmUsICJwYXRocyIpLCAiciIpIGFzIGY6CisgICAgICAgIHBhdGhzID0gW2l0ZW0uc3Ry
aXAoKS5yZXBsYWNlKCIvIiwgb3MucGF0aC5zZXApIGZvciBpdGVtIGluIGYgaWYgaXRlbS5zdHJp
cCgpXQorICAgIGZvciBwYXRoIGluIHBhdGhzOgorICAgICAgICBhYnNfcGF0aCA9IG9zLnBhdGgu
am9pbih3cHRfcm9vdCwgcGF0aCwgImNvbW1hbmRzLmpzb24iKQorICAgICAgICBiYXNlX2RpciA9
IG9zLnBhdGguZGlybmFtZShhYnNfcGF0aCkKKyAgICAgICAgd2l0aCBvcGVuKGFic19wYXRoLCAi
ciIpIGFzIGY6CisgICAgICAgICAgICBkYXRhID0ganNvbi5sb2FkKGYpCisgICAgICAgICAgICBm
b3IgY29tbWFuZCwgcHJvcHMgaW4gaXRlcml0ZW1zKGRhdGEpOgorICAgICAgICAgICAgICAgIGFz
c2VydCAicGF0aCIgaW4gcHJvcHMKKyAgICAgICAgICAgICAgICBhc3NlcnQgInNjcmlwdCIgaW4g
cHJvcHMKKyAgICAgICAgICAgICAgICBydltjb21tYW5kXSA9IHsKKyAgICAgICAgICAgICAgICAg
ICAgInBhdGgiOiBvcy5wYXRoLmpvaW4oYmFzZV9kaXIsIHByb3BzWyJwYXRoIl0pLAorICAgICAg
ICAgICAgICAgICAgICAic2NyaXB0IjogcHJvcHNbInNjcmlwdCJdLAorICAgICAgICAgICAgICAg
ICAgICAicGFyc2VyIjogcHJvcHMuZ2V0KCJwYXJzZXIiKSwKKyAgICAgICAgICAgICAgICAgICAg
InBhcnNlX2tub3duIjogcHJvcHMuZ2V0KCJwYXJzZV9rbm93biIsIEZhbHNlKSwKKyAgICAgICAg
ICAgICAgICAgICAgImhlbHAiOiBwcm9wcy5nZXQoImhlbHAiKSwKKyAgICAgICAgICAgICAgICAg
ICAgInZpcnR1YWxlbnYiOiBwcm9wcy5nZXQoInZpcnR1YWxlbnYiLCBUcnVlKSwKKyAgICAgICAg
ICAgICAgICAgICAgImluc3RhbGwiOiBwcm9wcy5nZXQoImluc3RhbGwiLCBbXSksCisgICAgICAg
ICAgICAgICAgICAgICJyZXF1aXJlbWVudHMiOiBbb3MucGF0aC5qb2luKGJhc2VfZGlyLCBpdGVt
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpdGVtIGluIHByb3Bz
LmdldCgicmVxdWlyZW1lbnRzIiwgW10pXQorICAgICAgICAgICAgICAgIH0KKyAgICByZXR1cm4g
cnYKKworCitkZWYgcGFyc2VfYXJncyhhcmd2LCBjb21tYW5kcyk6CisgICAgcGFyc2VyID0gYXJn
cGFyc2UuQXJndW1lbnRQYXJzZXIoKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tdmVudiIs
IGFjdGlvbj0ic3RvcmUiLCBoZWxwPSJQYXRoIHRvIGFuIGV4aXN0aW5nIHZpcnR1YWxlbnYgdG8g
dXNlIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWRlYnVnIiwgYWN0aW9uPSJzdG9yZV90
cnVlIiwgaGVscD0iUnVuIHRoZSBkZWJ1Z2dlciBpbiBjYXNlIG9mIGFuIGV4Y2VwdGlvbiIpCisg
ICAgc3VicGFyc2VycyA9IHBhcnNlci5hZGRfc3VicGFyc2VycyhkZXN0PSJjb21tYW5kIikKKyAg
ICBmb3IgY29tbWFuZCwgcHJvcHMgaW4gaXRlcml0ZW1zKGNvbW1hbmRzKToKKyAgICAgICAgc3Vi
X3BhcnNlciA9IHN1YnBhcnNlcnMuYWRkX3BhcnNlcihjb21tYW5kLCBoZWxwPXByb3BzWyJoZWxw
Il0sIGFkZF9oZWxwPUZhbHNlKQorCisgICAgYXJncywgZXh0cmEgPSBwYXJzZXIucGFyc2Vfa25v
d25fYXJncyhhcmd2KQorCisgICAgcmV0dXJuIGFyZ3MsIGV4dHJhCisKKworZGVmIGltcG9ydF9j
b21tYW5kKHByb2csIGNvbW1hbmQsIHByb3BzKToKKyAgICAjIFRoaXMgY3VycmVudGx5IHJlcXVp
cmVzIHRoZSBwYXRoIHRvIGJlIGEgbW9kdWxlLAorICAgICMgd2hpY2ggcHJvYmFibHkgaXNuJ3Qg
aWRlYWwgYnV0IGl0IG1lYW5zIHRoYXQgcmVsYXRpdmUKKyAgICAjIGltcG9ydHMgaW5zaWRlIHRo
ZSBzY3JpcHQgd29yaworICAgIHJlbF9wYXRoID0gb3MucGF0aC5yZWxwYXRoKHByb3BzWyJwYXRo
Il0sIHdwdF9yb290KQorCisgICAgcGFydHMgPSBvcy5wYXRoLnNwbGl0ZXh0KHJlbF9wYXRoKVsw
XS5zcGxpdChvcy5wYXRoLnNlcCkKKworICAgIG1vZF9uYW1lID0gIi4iLmpvaW4ocGFydHMpCisK
KyAgICBtb2QgPSBfX2ltcG9ydF9fKG1vZF9uYW1lKQorICAgIGZvciBwYXJ0IGluIHBhcnRzWzE6
XToKKyAgICAgICAgbW9kID0gZ2V0YXR0cihtb2QsIHBhcnQpCisKKyAgICBzY3JpcHQgPSBnZXRh
dHRyKG1vZCwgcHJvcHNbInNjcmlwdCJdKQorICAgIGlmIHByb3BzWyJwYXJzZXIiXSBpcyBub3Qg
Tm9uZToKKyAgICAgICAgcGFyc2VyID0gZ2V0YXR0cihtb2QsIHByb3BzWyJwYXJzZXIiXSkoKQor
ICAgICAgICBwYXJzZXIucHJvZyA9ICIlcyAlcyIgJSAob3MucGF0aC5iYXNlbmFtZShwcm9nKSwg
Y29tbWFuZCkKKyAgICBlbHNlOgorICAgICAgICBwYXJzZXIgPSBOb25lCisKKyAgICByZXR1cm4g
c2NyaXB0LCBwYXJzZXIKKworCitkZWYgc2V0dXBfdmlydHVhbGVudihwYXRoLCBwcm9wcyk6Cisg
ICAgaWYgcGF0aCBpcyBOb25lOgorICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKHdwdF9yb290
LCAiX3ZlbnYiKQorICAgIHZlbnYgPSB2aXJ0dWFsZW52LlZpcnR1YWxlbnYocGF0aCkKKyAgICB2
ZW52LnN0YXJ0KCkKKyAgICBmb3IgbmFtZSBpbiBwcm9wc1siaW5zdGFsbCJdOgorICAgICAgICB2
ZW52Lmluc3RhbGwobmFtZSkKKyAgICBmb3IgcGF0aCBpbiBwcm9wc1sicmVxdWlyZW1lbnRzIl06
CisgICAgICAgIHZlbnYuaW5zdGFsbF9yZXF1aXJlbWVudHMocGF0aCkKKyAgICByZXR1cm4gdmVu
dgorCisKK2RlZiBtYWluKHByb2c9Tm9uZSwgYXJndj1Ob25lKToKKyAgICBsb2dnaW5nLmJhc2lj
Q29uZmlnKGxldmVsPWxvZ2dpbmcuSU5GTykKKworICAgIGlmIHByb2cgaXMgTm9uZToKKyAgICAg
ICAgcHJvZyA9IHN5cy5hcmd2WzBdCisgICAgaWYgYXJndiBpcyBOb25lOgorICAgICAgICBhcmd2
ID0gc3lzLmFyZ3ZbMTpdCisKKyAgICBjb21tYW5kcyA9IGxvYWRfY29tbWFuZHMoKQorCisgICAg
bWFpbl9hcmdzLCBjb21tYW5kX2FyZ3MgPSBwYXJzZV9hcmdzKGFyZ3YsIGNvbW1hbmRzKQorCisg
ICAgaWYgbm90KGxlbihhcmd2KSBhbmQgYXJndlswXSBpbiBjb21tYW5kcyk6CisgICAgICAgIHN5
cy5leGl0KDEpCisKKyAgICBjb21tYW5kID0gbWFpbl9hcmdzLmNvbW1hbmQKKyAgICBwcm9wcyA9
IGNvbW1hbmRzW2NvbW1hbmRdCisgICAgdmVudiA9IE5vbmUKKyAgICBpZiBwcm9wc1sidmlydHVh
bGVudiJdOgorICAgICAgICB2ZW52ID0gc2V0dXBfdmlydHVhbGVudihtYWluX2FyZ3MudmVudiwg
cHJvcHMpCisgICAgc2NyaXB0LCBwYXJzZXIgPSBpbXBvcnRfY29tbWFuZChwcm9nLCBjb21tYW5k
LCBwcm9wcykKKyAgICBpZiBwYXJzZXI6CisgICAgICAgIGlmIHByb3BzWyJwYXJzZV9rbm93biJd
OgorICAgICAgICAgICAga3dhcmdzLCBleHRyYXMgPSBwYXJzZXIucGFyc2Vfa25vd25fYXJncyhj
b21tYW5kX2FyZ3MpCisgICAgICAgICAgICBleHRyYXMgPSAoZXh0cmFzLCkKKyAgICAgICAgICAg
IGt3YXJncyA9IHZhcnMoa3dhcmdzKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZXh0cmFz
ID0gKCkKKyAgICAgICAgICAgIGt3YXJncyA9IHZhcnMocGFyc2VyLnBhcnNlX2FyZ3MoY29tbWFu
ZF9hcmdzKSkKKyAgICBlbHNlOgorICAgICAgICBleHRyYXMgPSAoKQorICAgICAgICBrd2FyZ3Mg
PSB7fQorCisgICAgaWYgdmVudiBpcyBub3QgTm9uZToKKyAgICAgICAgYXJncyA9ICh2ZW52LCkg
KyBleHRyYXMKKyAgICBlbHNlOgorICAgICAgICBhcmdzID0gZXh0cmFzCisKKyAgICBpZiBzY3Jp
cHQ6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJ2ID0gc2NyaXB0KCphcmdzLCAqKmt3YXJn
cykKKyAgICAgICAgICAgIGlmIHJ2IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHN5cy5l
eGl0KGludChydikpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICBpZiBt
YWluX2FyZ3MuZGVidWc6CisgICAgICAgICAgICAgICAgaW1wb3J0IHBkYgorICAgICAgICAgICAg
ICAgIHBkYi5wb3N0X21vcnRlbSgpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
IHJhaXNlCisgICAgc3lzLmV4aXQoMCkKKworCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgor
ICAgIG1haW4oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvTElDRU5TRSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL0xJQ0VOU0UKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDU4OTZlNmJlMmJkNTFmNGI3OGU5NzAzY2FlZmI5YjY3MmUxMGE1NQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL0xJQ0VOU0UKQEAgLTAsMCArMSwzMCBAQAorVzNDIDMtY2xhdXNlIEJTRCBMaWNl
bnNlCisKK2h0dHA6Ly93d3cudzMub3JnL0NvbnNvcnRpdW0vTGVnYWwvMjAwOC8wMy1ic2QtbGlj
ZW5zZS5odG1sCisKK1JlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorbWV0OgorCisqIFJlZGlzdHJp
YnV0aW9ucyBvZiB3b3JrcyBtdXN0IHJldGFpbiB0aGUgb3JpZ2luYWwgY29weXJpZ2h0IG5vdGlj
ZSwKKyAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKworKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IG9yaWdpbmFsIGNvcHlyaWdodAorICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisKKyogTmVp
dGhlciB0aGUgbmFtZSBvZiB0aGUgVzNDIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9y
cyBtYXkgYmUKKyAgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tIHRoaXMgd29yayB3aXRob3V0CisgIHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKworVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKK0xJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKK09X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCitEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKK1RIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyhJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL01BTklGRVNULmlu
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvTUFOSUZFU1QuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDM2MzQ0Zjk2Njg5MTlmOWRmYzhmMmU2MGE0
NzBhNWQwNDg0YzI5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL01BTklGRVNULmluCkBAIC0wLDAg
KzEsNiBAQAorZXhjbHVkZSBNQU5JRkVTVC5pbgoraW5jbHVkZSByZXF1aXJlbWVudHMudHh0Citp
bmNsdWRlIHdwdHJ1bm5lci5kZWZhdWx0LmluaQoraW5jbHVkZSB3cHRydW5uZXIvdGVzdGhhcm5l
c3NfcnVubmVyLmh0bWwKK2luY2x1ZGUgd3B0cnVubmVyLyouanMKK2luY2x1ZGUgd3B0cnVubmVy
L2V4ZWN1dG9ycy8qLmpzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9SRUFETUUucnN0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvUkVBRE1FLnJz
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44OTE3OTIyODI3MjIyZTk3OWJkYTQ1NTg2MzQxNjI4MDJiYzUxNTcyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvUkVBRE1FLnJzdApAQCAtMCwwICsxLDIzNiBAQAord3B0cnVu
bmVyOiBBIHdlYi1wbGF0Zm9ybS10ZXN0cyBoYXJuZXNzCis9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KKword3B0cnVubmVyIGlzIGEgaGFybmVzcyBmb3IgcnVubmluZyB0
aGUgVzNDIGB3ZWItcGxhdGZvcm0tdGVzdHMgdGVzdHN1aXRlYF8uCisKKy4uIGNvbnRlbnRzOjoK
KworSW5zdGFsbGF0aW9uCit+fn5+fn5+fn5+fn4KKword3B0cnVubmVyIGlzIGV4cGVjdGVkIHRv
IGJlIGluc3RhbGxlZCBpbnRvIGEgdmlydHVhbGVudiB1c2luZyBwaXAuIEZvcgorZGV2ZWxvcG1l
bnQsIGl0IGNhbiBiZSBpbnN0YWxsZWQgdXNpbmcgdGhlIGAtZWAgb3B0aW9uOjoKKworICBwaXAg
aW5zdGFsbCAtZSAuLworCitSdW5uaW5nIHRoZSBUZXN0cworfn5+fn5+fn5+fn5+fn5+fn4KKwor
QWZ0ZXIgaW5zdGFsbGF0aW9uLCB0aGUgY29tbWFuZCBgYHdwdHJ1bm5lcmBgIHNob3VsZCBiZSBh
dmFpbGFibGUgdG8gcnVuCit0aGUgdGVzdHMuCisKK1RoZSBgYHdwdHJ1bm5lcmBgIGNvbW1hbmQg
IHRha2VzIG11bHRpcGxlIG9wdGlvbnMsIG9mIHdoaWNoIHRoZQorZm9sbG93aW5nIGFyZSBtb3N0
IHNpZ25pZmljYW50OgorCitgYC0tcHJvZHVjdGBgIChkZWZhdWx0cyB0byBgZmlyZWZveGApCisg
IFRoZSBwcm9kdWN0IHRvIHRlc3QgYWdhaW5zdDogYGNocm9tZWAsIGBmaXJlZm94YCwgb3IgYHNl
cnZvYC4KKworYGAtLWJpbmFyeWBgIChyZXF1aXJlZCBpZiBwcm9kdWN0IGlzIGBmaXJlZm94YCBv
ciBgc2Vydm9gKQorICBUaGUgcGF0aCB0byBhIGJpbmFyeSBmaWxlIGZvciB0aGUgcHJvZHVjdCAo
YnJvd3NlcikgdG8gdGVzdCBhZ2FpbnN0LgorCitgYC0td2ViZHJpdmVyLWJpbmFyeWBgIChyZXF1
aXJlZCBpZiBwcm9kdWN0IGlzIGBjaHJvbWVgKQorICBUaGUgcGF0aCB0byBhIGBkcml2ZXJgIGJp
bmFyeTsgZS5nLiwgYSBgY2hyb21lZHJpdmVyYCBiaW5hcnkuCisKK2BgLS1jZXJ0dXRpbC1iaW5h
cnlgYCAocmVxdWlyZWQgaWYgcHJvZHVjdCBpcyBgZmlyZWZveGAgWyNdXykKKyAgVGhlIHBhdGgg
dG8gYSBgY2VydHV0aWxgIGJpbmFyeSAoZm9yIHRlc3RzIHRoYXQgbXVzdCBiZSBydW4gb3ZlciBo
dHRwcykuCisKK2BgLS1tZXRhZGF0YWBgIChyZXF1aXJlZCkKKyAgVGhlIHBhdGggdG8gYSBkaXJl
Y3RvcnkgY29udGFpbmluZyB0ZXN0IG1ldGFkYXRhLiBbI11fCisKK2BgLS10ZXN0c2BgIChyZXF1
aXJlZCkKKyAgVGhlIHBhdGggdG8gYSBkaXJlY3RvcnkgY29udGFpbmluZyBhIHdlYi1wbGF0Zm9y
bS10ZXN0cyBjaGVja291dC4KKworYGAtLXByZWZzLXJvb3RgYCAocmVxdWlyZWQgb25seSB3aGVu
IHRlc3RpbmcgYSBGaXJlZm94IGJpbmFyeSkKKyAgVGhlIHBhdGggdG8gYSBkaXJlY3RvcnkgY29u
dGFpbmluZyBGaXJlZm94IHRlc3QtaGFybmVzcyBwcmVmZXJlbmNlcy4gWyNdXworCitgYC0tY29u
ZmlnYGAgKHNob3VsZCBkZWZhdWx0IHRvIGB3cHRydW5uZXIuZGVmYXVsdC5pbmlgKQorICBUaGUg
cGF0aCB0byB0aGUgY29uZmlnIChpbmkpIGZpbGUuCisKKy4uIFsjXSBUaGUgYGAtLWNlcnR1dGls
LWJpbmFyeWBgIG9wdGlvbiBpcyByZXF1aXJlZCB3aGVuIHRoZSBwcm9kdWN0IGlzCisgICBgYGZp
cmVmb3hgYCB1bmxlc3MgYGAtLXNzbC10eXBlPW5vbmVgYCBpcyBzcGVjaWZpZWQuCisKKy4uIFsj
XSBUaGUgYGAtLW1ldGFkYXRhYGAgcGF0aCBpcyB0byBhIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5z
OgorCisgICogYSBgYE1BTklGRVNULmpzb25gYCBmaWxlIChpbnN0cnVjdGlvbnMgb24gZ2VuZXJh
dGluZyB0aGlzIGZpbGUgYXJlCisgICAgYXZhaWxhYmxlIGluIHRoZSBgZGV0YWlsZWQgZG9jdW1l
bnRhdGlvbgorICAgIDxodHRwOi8vd3B0cnVubmVyLnJlYWR0aGVkb2NzLm9yZy9lbi9sYXRlc3Qv
dXNhZ2UuaHRtbCNpbnN0YWxsaW5nLXdwdHJ1bm5lcj5gXyk7CisgICAgYW5kCisgICogKG9wdGlv
bmFsbHkpIGFueSBleHBlY3RhdGlvbiBmaWxlcyAoc2VlIGJlbG93KQorCisuLiBbI10gRXhhbXBs
ZSBgYC0tcHJlZnMtcm9vdGBgIHZhbHVlOiBgYH4vbW96aWxsYS1jZW50cmFsL3Rlc3RpbmcvcHJv
ZmlsZXNgYC4KKworVGhlcmUgYXJlIGFsc28gYSB2YXJpZXR5IG9mIG90aGVyIG9wdGlvbnMgYXZh
aWxhYmxlOyB1c2UgYGAtLWhlbHBgYCB0bworbGlzdCB0aGVtLgorCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCitFeGFtcGxlOiBIb3cgdG8gc3RhcnQgd3B0cnVubmVyCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RvIHRlc3QgYSBGaXJlZm94IE5pZ2h0bHkgYnVp
bGQgaW4gYW4gT1MgWCBlbnZpcm9ubWVudCwgeW91IG1pZ2h0IHN0YXJ0Cit3cHRydW5uZXIgdXNp
bmcgc29tZXRoaW5nIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZyBleGFtcGxlOjoKKworICB3cHRy
dW5uZXIgLS1tZXRhZGF0YT1+L3dlYi1wbGF0Zm9ybS10ZXN0cy8gLS10ZXN0cz1+L3dlYi1wbGF0
Zm9ybS10ZXN0cy8gXAorICAgIC0tYmluYXJ5PX4vbW96aWxsYS1jZW50cmFsL29iai14ODZfNjQt
YXBwbGUtZGFyd2luMTQuMy4wL2Rpc3QvTmlnaHRseS5hcHAvQ29udGVudHMvTWFjT1MvZmlyZWZv
eCBcCisgICAgLS1jZXJ0dXRpbC1iaW5hcnk9fi9tb3ppbGxhLWNlbnRyYWwvb2JqLXg4Nl82NC1h
cHBsZS1kYXJ3aW4xNC4zLjAvc2VjdXJpdHkvbnNzL2NtZC9jZXJ0dXRpbC9jZXJ0dXRpbCBcCisg
ICAgLS1wcmVmcy1yb290PX4vbW96aWxsYS1jZW50cmFsL3Rlc3RpbmcvcHJvZmlsZXMKKworQW5k
IHRvIHRlc3QgYSBDaHJvbWl1bSBidWlsZCBpbiBhbiBPUyBYIGVudmlyb25tZW50LCB5b3UgbWln
aHQgc3RhcnQKK3dwdHJ1bm5lciB1c2luZyBzb21ldGhpbmcgc2ltaWxhciB0byB0aGUgZm9sbG93
aW5nIGV4YW1wbGU6OgorCisgIHdwdHJ1bm5lciAtLW1ldGFkYXRhPX4vd2ViLXBsYXRmb3JtLXRl
c3RzLyAtLXRlc3RzPX4vd2ViLXBsYXRmb3JtLXRlc3RzLyBcCisgICAgLS1iaW5hcnk9fi9jaHJv
bWl1bS9zcmMvb3V0L1JlbGVhc2UvQ2hyb21pdW0uYXBwL0NvbnRlbnRzL01hY09TL0Nocm9taXVt
IFwKKyAgICAtLXdlYmRyaXZlci1iaW5hcnk9L3Vzci9sb2NhbC9iaW4vY2hyb21lZHJpdmVyIC0t
cHJvZHVjdD1jaHJvbWUKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
RXhhbXBsZTogSG93IHRvIHJ1biBhIHN1YnNldCBvZiB0ZXN0cworLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorCitUbyByZXN0cmljdCBhIHRlc3QgcnVuIGp1c3QgdG8gdGVz
dHMgaW4gYSBwYXJ0aWN1bGFyIHdlYi1wbGF0Zm9ybS10ZXN0cworc3ViZGlyZWN0b3J5LCBzcGVj
aWZ5IHRoZSBkaXJlY3RvcnkgbmFtZSBpbiB0aGUgcG9zaXRpb25hbCBhcmd1bWVudHMgYWZ0ZXIK
K3RoZSBvcHRpb25zOyBmb3IgZXhhbXBsZSwgcnVuIGp1c3QgdGhlIHRlc3RzIGluIHRoZSBgZG9t
YCBzdWJkaXJlY3Rvcnk6OgorCisgIHdwdHJ1bm5lciAtLW1ldGFkYXRhPX4vd2ViLXBsYXRmb3Jt
LXRlc3RzLyAtLXRlc3RzPX4vd2ViLXBsYXRmb3JtLXRlc3RzLyBcCisgICAgLS1iaW5hcnk9L3Bh
dGgvdG8vZmlyZWZveCAtLWNlcnR1dGlsLWJpbmFyeT0vcGF0aC90by9jZXJ0dXRpbCBcCisgICAg
LS1wcmVmcy1yb290PS9wYXRoL3RvL3Rlc3RpbmcvcHJvZmlsZXMgXAorICAgIGRvbQorCitPdXRw
dXQKK35+fn5+fgorCitCeSBkZWZhdWx0IHdwdHJ1bm5lciBqdXN0IGR1bXBzIGl0cyBlbnRpcmUg
b3V0cHV0IGFzIHJhdyBKU09OIG1lc3NhZ2VzCit0byBzdGRvdXQuIFRoaXMgaXMgY29udmVuaWVu
dCBmb3IgcGlwaW5nIGludG8gb3RoZXIgdG9vbHMsIGJ1dCBub3QgaWRlYWwKK2ZvciBodW1hbnMg
cmVhZGluZyB0aGUgb3V0cHV0LgorCitBcyBhbiBhbHRlcm5hdGl2ZSwgeW91IGNhbiB1c2UgdGhl
IGBgLS1sb2ctbWFjaGBgIG9wdGlvbiwgd2hpY2ggcHJvdmlkZXMKK291dHB1dCBpbiBhIHJlYXNv
bmFibGUgZm9ybWF0IGZvciBodW1hbnMuIFRoZSBvcHRpb24gcmVxdWlyZXMgYSB2YWx1ZToKK2Vp
dGhlciB0aGUgcGF0aCBmb3IgYSBmaWxlIHRvIHdyaXRlIHRoZSBgbWFjaGAtZm9ybWF0dGVkIG91
dHB1dCB0bywgb3IKKyJgLWAiIChhIGh5cGhlbikgdG8gd3JpdGUgdGhlIGBtYWNoYC1mb3JtYXR0
ZWQgb3V0cHV0IHRvIHN0ZG91dC4KKworV2hlbiB1c2luZyBgYC0tbG9nLW1hY2hgYCwgb3V0cHV0
IG9mIHRoZSBmdWxsIHJhdyBKU09OIGxvZyBpcyBzdGlsbAorYXZhaWxhYmxlLCBmcm9tIHRoZSBg
YC0tbG9nLXJhd2BgIG9wdGlvbi4gU28gdG8gb3V0cHV0IHRoZSBmdWxsIHJhdyBKU09OCitsb2cg
dG8gYSBmaWxlIGFuZCBhIGh1bWFuLXJlYWRhYmxlIHN1bW1hcnkgdG8gc3Rkb3V0LCB5b3UgbWln
aHQgc3RhcnQKK3dwdHJ1bm5lciB1c2luZyBzb21ldGhpbmcgc2ltaWxhciB0byB0aGUgZm9sbG93
aW5nIGV4YW1wbGU6OgorCisgIHdwdHJ1bm5lciAtLW1ldGFkYXRhPX4vd2ViLXBsYXRmb3JtLXRl
c3RzLyAtLXRlc3RzPX4vd2ViLXBsYXRmb3JtLXRlc3RzLyBcCisgICAgLS1iaW5hcnk9L3BhdGgv
dG8vZmlyZWZveCAtLWNlcnR1dGlsLWJpbmFyeT0vcGF0aC90by9jZXJ0dXRpbCBcCisgICAgLS1w
cmVmcy1yb290PS9wYXRoL3RvL3Rlc3RpbmcvcHJvZmlsZXMgXAorICAgIC0tbG9nLXJhdz1vdXRw
dXQubG9nIC0tbG9nLW1hY2g9LQorCitFeHBlY3RhdGlvbiBEYXRhCit+fn5+fn5+fn5+fn5+fn5+
CisKK3dwdHJ1bm5lciBpcyBkZXNpZ25lZCB0byBiZSB1c2VkIGluIGFuIGVudmlyb25tZW50IHdo
ZXJlIGl0IGlzIG5vdAoranVzdCBuZWNlc3NhcnkgdG8ga25vdyB3aGljaCB0ZXN0cyBwYXNzZWQs
IGJ1dCB0byBjb21wYXJlIHRoZSByZXN1bHRzCitiZXR3ZWVuIHJ1bnMuIEZvciB0aGlzIHJlYXNv
biBpdCBpcyBwb3NzaWJsZSB0byBzdG9yZSB0aGUgcmVzdWx0cyBvZiBhCitwcmV2aW91cyBydW4g
aW4gYSBzZXQgb2YgaW5pLWxpa2UgImV4cGVjdGF0aW9uIGZpbGVzIi4gVGhpcyBmb3JtYXQgaXMK
K2RvY3VtZW50ZWQgYmVsb3cuIFRvIGdlbmVyYXRlIHRoZSBleHBlY3RhdGlvbiBmaWxlcyB1c2Ug
YHdwdHJ1bm5lcmAgd2l0aAordGhlIGAtLWxvZy1yYXc9L3BhdGgvdG8vbG9nL2ZpbGVgIG9wdGlv
bi4gVGhpcyBjYW4gdGhlbiBiZSB1c2VkIGFzCitpbnB1dCB0byB0aGUgYHdwdHVwZGF0ZWAgdG9v
bC4KKworRXhwZWN0YXRpb24gRmlsZSBGb3JtYXQKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisK
K01ldGFkYXRhIGFib3V0IHRlc3RzLCBub3RhYmx5IGluY2x1ZGluZyB0aGVpciBleHBlY3RlZCBy
ZXN1bHRzLCBpcworc3RvcmVkIGluIGEgbW9kaWZpZWQgaW5pLWxpa2UgZm9ybWF0IHRoYXQgaXMg
ZGVzaWduZWQgdG8gYmUgaHVtYW4KK2VkaXRhYmxlLCBidXQgYWxzbyB0byBiZSBtYWNoaW5lIHVw
ZGF0YWJsZS4KKworRWFjaCB0ZXN0IGZpbGUgdGhhdCByZXF1aXJlcyBtZXRhZGF0YSB0byBiZSBz
cGVjaWZpZWQgKGJlY2F1c2UgaXQgaGFzCithIG5vbi1kZWZhdWx0IGV4cGVjdGF0aW9uIG9yIGJl
Y2F1c2UgaXQgaXMgZGlzYWJsZWQsIGZvciBleGFtcGxlKSBoYXMKK2EgY29ycmVzcG9uZGluZyBl
eHBlY3RhdGlvbiBmaWxlIGluIHRoZSBgbWV0YWRhdGFgIGRpcmVjdG9yeS4gRm9yCitleGFtcGxl
IGEgdGVzdCBmaWxlIGBodG1sL3Rlc3QxLmh0bWxgIGNvbnRhaW5pbmcgYSBmYWlsaW5nIHRlc3Qg
d291bGQKK2hhdmUgYW4gZXhwZWN0YXRpb24gZmlsZSBjYWxsZWQgYGh0bWwvdGVzdDEuaHRtbC5p
bmlgIGluIHRoZQorYG1ldGFkYXRhYCBkaXJlY3RvcnkuCisKK0FuIGV4YW1wbGUgb2YgYW4gZXhw
ZWN0YXRpb24gZmlsZSBpczo6CisKKyAgZXhhbXBsZV9kZWZhdWx0X2tleTogZXhhbXBsZV92YWx1
ZQorCisgIFtmaWxlbmFtZS5odG1sXQorICAgIFtzdWJ0ZXN0MV0KKyAgICAgIGV4cGVjdGVkOiBG
QUlMCisKKyAgICBbc3VidGVzdDJdCisgICAgICBleHBlY3RlZDoKKyAgICAgICAgaWYgcGxhdGZv
cm0gPT0gJ3dpbic6IFRJTUVPVVQKKyAgICAgICAgaWYgcGxhdGZvcm0gPT0gJ29zeCc6IEVSUk9S
CisgICAgICAgIEZBSUwKKworICBbZmlsZW5hbWUuaHRtbD9xdWVyeT1zb21ldGhpbmddCisgICAg
ZGlzYWJsZWQ6IGJ1ZzEyMzQ1CisKK1RoZSBmaWxlIGNvbnNpc3RzIG9mIHR3byBlbGVtZW50cywg
a2V5LXZhbHVlIHBhaXJzIGFuZAorc2VjdGlvbnMuCisKK1NlY3Rpb25zIGFyZSBkZWxpbWl0ZWQg
YnkgaGVhZGluZ3MgZW5jbG9zZWQgaW4gc3F1YXJlIGJyYWNrZXRzLiBBbnkKK2Nsb3Npbmcgc3F1
YXJlIGJyYWNrZXQgaW4gdGhlIGhlYWRpbmcgaXRzZWxmIG15IGJlIGVzY2FwZWQgd2l0aCBhCiti
YWNrc2xhc2guIEVhY2ggc2VjdGlvbiBtYXkgdGhlbiBjb250YWluIGFueSBudW1iZXIgb2Yga2V5
LXZhbHVlIHBhaXJzCitmb2xsb3dlZCBieSBhbnkgbnVtYmVyIG9mIHN1YnNlY3Rpb25zLiBTbyB0
aGF0IGl0IGlzIGNsZWFyIHdoaWNoIGRhdGEKK2JlbG9uZ3MgdG8gZWFjaCBzZWN0aW9uIHdpdGhv
dXQgdGhlIHVzZSBvZiBlbmQtc2VjdGlvbiBtYXJrZXJzLCB0aGUKK2RhdGEgZm9yIGVhY2ggc2Vj
dGlvbiAoaS5lLiB0aGUga2V5LXZhbHVlIHBhaXJzIGFuZCBzdWJzZWN0aW9ucykgbXVzdAorYmUg
aW5kZW50ZWQgdXNpbmcgc3BhY2VzLiBJbmRlbnRhdGlvbiBuZWVkIG9ubHkgYmUgY29uc2lzdGVu
dCwgYnV0Cit1c2luZyB0d28gc3BhY2VzIHBlciBsZXZlbCBpcyByZWNvbW1lbmRlZC4KKworSW4g
YSB0ZXN0IGV4cGVjdGF0aW9uIGZpbGUsIGVhY2ggcmVzb3VyY2UgcHJvdmlkZWQgYnkgdGhlIGZp
bGUgaGFzIGEKK3NpbmdsZSBzZWN0aW9uLCB3aXRoIHRoZSBzZWN0aW9uIGhlYWRpbmcgYmVpbmcg
dGhlIHBhcnQgYWZ0ZXIgdGhlIGxhc3QKK2AvYCBpbiB0aGUgdGVzdCB1cmwuIFRlc3RzIHRoYXQg
aGF2ZSBzdWJzZWN0aW9ucyBtYXkgaGF2ZSBzdWJzZWN0aW9ucworZm9yIHRob3NlIHN1YnRlc3Rz
IGluIHdoaWNoIHRoZSBoZWFkaW5nIGlzIHRoZSBuYW1lIG9mIHRoZSBzdWJ0ZXN0LgorCitTaW1w
bGUga2V5LXZhbHVlIHBhaXJzIGFyZSBvZiB0aGUgZm9ybTo6CisKKyAga2V5OiB2YWx1ZQorCitO
b3RlIHRoYXQgdW5saWtlIGluaSBmaWxlcywgb25seSBgOmAgaXMgYSB2YWxpZCBzZXBhcmF0b3I7
IGA9YCB3aWxsCitub3Qgd29yayBhcyBleHBlY3RlZC4gS2V5LXZhbHVlIHBhaXJzIG1heSBhbHNv
IGhhdmUgY29uZGl0aW9uYWwKK3ZhbHVlcyBvZiB0aGUgZm9ybTo6CisKKyAga2V5OgorICAgIGlm
IGNvbmRpdGlvbjE6IHZhbHVlMQorICAgIGlmIGNvbmRpdGlvbjI6IHZhbHVlMgorICAgIGRlZmF1
bHQKKworSW4gdGhpcyBjYXNlIGVhY2ggY29uZGl0aW9uYWwgaXMgZXZhbHVhdGVkIGluIHR1cm4g
YW5kIHRoZSB2YWx1ZSBpcwordGhhdCBvbiB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mIHRoZSBmaXJz
dCBtYXRjaGluZyBjb25kaXRpb25hbC4gSW4gdGhlCitjYXNlIHRoYXQgbm8gY29uZGl0aW9uIG1h
dGNoZXMsIHRoZSB1bmNvbmRpdGlvbmFsIGRlZmF1bHQgaXMgdXNlZC4gSWYKK25vIGNvbmRpdGlv
biBtYXRjaGVzIGFuZCBubyBkZWZhdWx0IGlzIHByb3ZpZGVkIGl0IGlzIGVxdWl2YWxlbnQgdG8K
K3RoZSBrZXkgbm90IGJlaW5nIHByZXNlbnQuIENvbmRpdGlvbmFscyB1c2UgYSBzaW1wbGUgcHl0
aG9uLWxpa2UgZXhwcmVzc2lvbgorbGFuZ3VhZ2UgZS5nLjo6CisKKyAgaWYgZGVidWcgYW5kIChw
bGF0Zm9ybSA9PSAibGludXgiIG9yIHBsYXRmb3JtID09ICJvc3giKTogRkFJTAorCitGb3IgdGVz
dCBleHBlY3RhdGlvbnMgdGhlIGF2YWlsYWJsZSB2YXJpYWJsZXMgYXJlIHRob3NlIGluIHRoZQor
YHJ1bl9pbmZvYCB3aGljaCBmb3IgZGVza3RvcCBhcmUgYHZlcnNpb25gLCBgb3NgLCBgYml0c2As
IGBwcm9jZXNzb3JgLAorYGRlYnVnYCBhbmQgYHByb2R1Y3RgLgorCitLZXktdmFsdWUgcGFpcnMg
c3BlY2lmaWVkIGF0IHRoZSB0b3AgbGV2ZWwgb2YgdGhlIGZpbGUgYmVmb3JlIGFueQorc2VjdGlv
bnMgYXJlIHNwZWNpYWwgYXMgdGhleSBwcm92aWRlIGRlZmF1bHRzIGZvciB0aGUgcmVzdCBvZiB0
aGUgZmlsZQorZS5nLjo6CisKKyAga2V5MTogdmFsdWUxCisKKyAgW3NlY3Rpb24gMV0KKyAgICBr
ZXkyOiB2YWx1ZTIKKworICBbc2VjdGlvbiAyXQorICAgIGtleTE6IHZhbHVlMworCitJbiB0aGlz
IGNhc2UsIGluc2lkZSBzZWN0aW9uIDEsIGBrZXkxYCB3b3VsZCBoYXZlIHRoZSB2YWx1ZSBgdmFs
dWUxYAorYW5kIGBrZXkyYCB0aGUgdmFsdWUgYHZhbHVlMmAgd2hlcmVhcyBpbiBzZWN0aW9uIDIg
YGtleTFgIHdvdWxkIGhhdmUKK3RoZSB2YWx1ZSBgdmFsdWUzYCBhbmQgYGtleTJgIHdvdWxkIGJl
IHVuZGVmaW5lZC4KKworVGhlIHdlYi1wbGF0Zm9ybS10ZXN0IGhhcm5lc3Mga25vd3MgYWJvdXQg
c2V2ZXJhbCBrZXlzOgorCitgZXhwZWN0ZWRgCisgIE11c3QgZXZhbHVhdGUgdG8gYSBwb3NzaWJs
ZSB0ZXN0IHN0YXR1cyBpbmRpY2F0aW5nIHRoZSBleHBlY3RlZAorICByZXN1bHQgb2YgdGhlIHRl
c3QuIFRoZSBpbXBsaWNpdCBkZWZhdWx0IGlzIFBBU1Mgb3IgT0sgd2hlbiB0aGUKKyAgZmllbGQg
aXNuJ3QgcHJlc2VudC4KKworYGRpc2FibGVkYAorICBBbnkgdmFsdWUgaW5kaWNhdGVzIHRoYXQg
dGhlIHRlc3QgaXMgZGlzYWJsZWQuCisKK2ByZWZ0eXBlYAorICBUaGUgdHlwZSBvZiBjb21wYXJp
c29uIGZvciByZWZ0ZXN0czsgZWl0aGVyIGA9PWAgb3IgYCE9YC4KKworYHJlZnVybGAKKyAgVGhl
IHJlZmVyZW5jZSB1cmwgZm9yIHJlZnRlc3RzLgorCisuLiBfYHdlYi1wbGF0Zm9ybS10ZXN0cyB0
ZXN0c3VpdGVgOiBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvZG9jcy9NYWtlZmlsZSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvTWFrZWZpbGUKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDAyYjZjNWU3YzRmMjY3MDMxYmQzOTAxM2MzODg0YWI1ODUzMzhmOAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL2RvY3MvTWFrZWZpbGUKQEAgLTAsMCArMSwxNzcgQEAKKyMgTWFrZWZpbGUgZm9yIFNw
aGlueCBkb2N1bWVudGF0aW9uCisjCisKKyMgWW91IGNhbiBzZXQgdGhlc2UgdmFyaWFibGVzIGZy
b20gdGhlIGNvbW1hbmQgbGluZS4KK1NQSElOWE9QVFMgICAgPQorU1BISU5YQlVJTEQgICA9IHNw
aGlueC1idWlsZAorUEFQRVIgICAgICAgICA9CitCVUlMRERJUiAgICAgID0gX2J1aWxkCisKKyMg
VXNlci1mcmllbmRseSBjaGVjayBmb3Igc3BoaW54LWJ1aWxkCitpZmVxICgkKHNoZWxsIHdoaWNo
ICQoU1BISU5YQlVJTEQpID4vZGV2L251bGwgMj4mMTsgZWNobyAkJD8pLCAxKQorJChlcnJvciBU
aGUgJyQoU1BISU5YQlVJTEQpJyBjb21tYW5kIHdhcyBub3QgZm91bmQuIE1ha2Ugc3VyZSB5b3Ug
aGF2ZSBTcGhpbnggaW5zdGFsbGVkLCB0aGVuIHNldCB0aGUgU1BISU5YQlVJTEQgZW52aXJvbm1l
bnQgdmFyaWFibGUgdG8gcG9pbnQgdG8gdGhlIGZ1bGwgcGF0aCBvZiB0aGUgJyQoU1BISU5YQlVJ
TEQpJyBleGVjdXRhYmxlLiBBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gYWRkIHRoZSBkaXJlY3Rvcnkg
d2l0aCB0aGUgZXhlY3V0YWJsZSB0byB5b3VyIFBBVEguIElmIHlvdSBkb24ndCBoYXZlIFNwaGlu
eCBpbnN0YWxsZWQsIGdyYWIgaXQgZnJvbSBodHRwOi8vc3BoaW54LWRvYy5vcmcvKQorZW5kaWYK
KworIyBJbnRlcm5hbCB2YXJpYWJsZXMuCitQQVBFUk9QVF9hNCAgICAgPSAtRCBsYXRleF9wYXBl
cl9zaXplPWE0CitQQVBFUk9QVF9sZXR0ZXIgPSAtRCBsYXRleF9wYXBlcl9zaXplPWxldHRlcgor
QUxMU1BISU5YT1BUUyAgID0gLWQgJChCVUlMRERJUikvZG9jdHJlZXMgJChQQVBFUk9QVF8kKFBB
UEVSKSkgJChTUEhJTlhPUFRTKSAuCisjIHRoZSBpMThuIGJ1aWxkZXIgY2Fubm90IHNoYXJlIHRo
ZSBlbnZpcm9ubWVudCBhbmQgZG9jdHJlZXMgd2l0aCB0aGUgb3RoZXJzCitJMThOU1BISU5YT1BU
UyAgPSAkKFBBUEVST1BUXyQoUEFQRVIpKSAkKFNQSElOWE9QVFMpIC4KKworLlBIT05ZOiBoZWxw
IGNsZWFuIGh0bWwgZGlyaHRtbCBzaW5nbGVodG1sIHBpY2tsZSBqc29uIGh0bWxoZWxwIHF0aGVs
cCBkZXZoZWxwIGVwdWIgbGF0ZXggbGF0ZXhwZGYgdGV4dCBtYW4gY2hhbmdlcyBsaW5rY2hlY2sg
ZG9jdGVzdCBnZXR0ZXh0CisKK2hlbHA6CisJQGVjaG8gIlBsZWFzZSB1c2UgXGBtYWtlIDx0YXJn
ZXQ+JyB3aGVyZSA8dGFyZ2V0PiBpcyBvbmUgb2YiCisJQGVjaG8gIiAgaHRtbCAgICAgICB0byBt
YWtlIHN0YW5kYWxvbmUgSFRNTCBmaWxlcyIKKwlAZWNobyAiICBkaXJodG1sICAgIHRvIG1ha2Ug
SFRNTCBmaWxlcyBuYW1lZCBpbmRleC5odG1sIGluIGRpcmVjdG9yaWVzIgorCUBlY2hvICIgIHNp
bmdsZWh0bWwgdG8gbWFrZSBhIHNpbmdsZSBsYXJnZSBIVE1MIGZpbGUiCisJQGVjaG8gIiAgcGlj
a2xlICAgICB0byBtYWtlIHBpY2tsZSBmaWxlcyIKKwlAZWNobyAiICBqc29uICAgICAgIHRvIG1h
a2UgSlNPTiBmaWxlcyIKKwlAZWNobyAiICBodG1saGVscCAgIHRvIG1ha2UgSFRNTCBmaWxlcyBh
bmQgYSBIVE1MIGhlbHAgcHJvamVjdCIKKwlAZWNobyAiICBxdGhlbHAgICAgIHRvIG1ha2UgSFRN
TCBmaWxlcyBhbmQgYSBxdGhlbHAgcHJvamVjdCIKKwlAZWNobyAiICBkZXZoZWxwICAgIHRvIG1h
a2UgSFRNTCBmaWxlcyBhbmQgYSBEZXZoZWxwIHByb2plY3QiCisJQGVjaG8gIiAgZXB1YiAgICAg
ICB0byBtYWtlIGFuIGVwdWIiCisJQGVjaG8gIiAgbGF0ZXggICAgICB0byBtYWtlIExhVGVYIGZp
bGVzLCB5b3UgY2FuIHNldCBQQVBFUj1hNCBvciBQQVBFUj1sZXR0ZXIiCisJQGVjaG8gIiAgbGF0
ZXhwZGYgICB0byBtYWtlIExhVGVYIGZpbGVzIGFuZCBydW4gdGhlbSB0aHJvdWdoIHBkZmxhdGV4
IgorCUBlY2hvICIgIGxhdGV4cGRmamEgdG8gbWFrZSBMYVRlWCBmaWxlcyBhbmQgcnVuIHRoZW0g
dGhyb3VnaCBwbGF0ZXgvZHZpcGRmbXgiCisJQGVjaG8gIiAgdGV4dCAgICAgICB0byBtYWtlIHRl
eHQgZmlsZXMiCisJQGVjaG8gIiAgbWFuICAgICAgICB0byBtYWtlIG1hbnVhbCBwYWdlcyIKKwlA
ZWNobyAiICB0ZXhpbmZvICAgIHRvIG1ha2UgVGV4aW5mbyBmaWxlcyIKKwlAZWNobyAiICBpbmZv
ICAgICAgIHRvIG1ha2UgVGV4aW5mbyBmaWxlcyBhbmQgcnVuIHRoZW0gdGhyb3VnaCBtYWtlaW5m
byIKKwlAZWNobyAiICBnZXR0ZXh0ICAgIHRvIG1ha2UgUE8gbWVzc2FnZSBjYXRhbG9ncyIKKwlA
ZWNobyAiICBjaGFuZ2VzICAgIHRvIG1ha2UgYW4gb3ZlcnZpZXcgb2YgYWxsIGNoYW5nZWQvYWRk
ZWQvZGVwcmVjYXRlZCBpdGVtcyIKKwlAZWNobyAiICB4bWwgICAgICAgIHRvIG1ha2UgRG9jdXRp
bHMtbmF0aXZlIFhNTCBmaWxlcyIKKwlAZWNobyAiICBwc2V1ZG94bWwgIHRvIG1ha2UgcHNldWRv
eG1sLVhNTCBmaWxlcyBmb3IgZGlzcGxheSBwdXJwb3NlcyIKKwlAZWNobyAiICBsaW5rY2hlY2sg
IHRvIGNoZWNrIGFsbCBleHRlcm5hbCBsaW5rcyBmb3IgaW50ZWdyaXR5IgorCUBlY2hvICIgIGRv
Y3Rlc3QgICAgdG8gcnVuIGFsbCBkb2N0ZXN0cyBlbWJlZGRlZCBpbiB0aGUgZG9jdW1lbnRhdGlv
biAoaWYgZW5hYmxlZCkiCisKK2NsZWFuOgorCXJtIC1yZiAkKEJVSUxERElSKS8qCisKK2h0bWw6
CisJJChTUEhJTlhCVUlMRCkgLWIgaHRtbCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2h0
bWwKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIEhUTUwgcGFnZXMgYXJlIGlu
ICQoQlVJTERESVIpL2h0bWwuIgorCitkaXJodG1sOgorCSQoU1BISU5YQlVJTEQpIC1iIGRpcmh0
bWwgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9kaXJodG1sCisJQGVjaG8KKwlAZWNobyAi
QnVpbGQgZmluaXNoZWQuIFRoZSBIVE1MIHBhZ2VzIGFyZSBpbiAkKEJVSUxERElSKS9kaXJodG1s
LiIKKworc2luZ2xlaHRtbDoKKwkkKFNQSElOWEJVSUxEKSAtYiBzaW5nbGVodG1sICQoQUxMU1BI
SU5YT1BUUykgJChCVUlMRERJUikvc2luZ2xlaHRtbAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZp
bmlzaGVkLiBUaGUgSFRNTCBwYWdlIGlzIGluICQoQlVJTERESVIpL3NpbmdsZWh0bWwuIgorCitw
aWNrbGU6CisJJChTUEhJTlhCVUlMRCkgLWIgcGlja2xlICQoQUxMU1BISU5YT1BUUykgJChCVUlM
RERJUikvcGlja2xlCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQ7IG5vdyB5b3UgY2Fu
IHByb2Nlc3MgdGhlIHBpY2tsZSBmaWxlcy4iCisKK2pzb246CisJJChTUEhJTlhCVUlMRCkgLWIg
anNvbiAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2pzb24KKwlAZWNobworCUBlY2hvICJC
dWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcHJvY2VzcyB0aGUgSlNPTiBmaWxlcy4iCisKK2h0
bWxoZWxwOgorCSQoU1BISU5YQlVJTEQpIC1iIGh0bWxoZWxwICQoQUxMU1BISU5YT1BUUykgJChC
VUlMRERJUikvaHRtbGhlbHAKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgbm93IHlv
dSBjYW4gcnVuIEhUTUwgSGVscCBXb3Jrc2hvcCB3aXRoIHRoZSIgXAorCSAgICAgICIuaGhwIHBy
b2plY3QgZmlsZSBpbiAkKEJVSUxERElSKS9odG1saGVscC4iCisKK3F0aGVscDoKKwkkKFNQSElO
WEJVSUxEKSAtYiBxdGhlbHAgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9xdGhlbHAKKwlA
ZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcnVuICJxY29sbGVjdGlv
bmdlbmVyYXRvciIgd2l0aCB0aGUiIFwKKwkgICAgICAiLnFoY3AgcHJvamVjdCBmaWxlIGluICQo
QlVJTERESVIpL3F0aGVscCwgbGlrZSB0aGlzOiIKKwlAZWNobyAiIyBxY29sbGVjdGlvbmdlbmVy
YXRvciAkKEJVSUxERElSKS9xdGhlbHAvd3B0cnVubmVyLnFoY3AiCisJQGVjaG8gIlRvIHZpZXcg
dGhlIGhlbHAgZmlsZToiCisJQGVjaG8gIiMgYXNzaXN0YW50IC1jb2xsZWN0aW9uRmlsZSAkKEJV
SUxERElSKS9xdGhlbHAvd3B0cnVubmVyLnFoYyIKKworZGV2aGVscDoKKwkkKFNQSElOWEJVSUxE
KSAtYiBkZXZoZWxwICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvZGV2aGVscAorCUBlY2hv
CisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiIKKwlAZWNobyAiVG8gdmlldyB0aGUgaGVscCBmaWxl
OiIKKwlAZWNobyAiIyBta2RpciAtcCAkJEhPTUUvLmxvY2FsL3NoYXJlL2RldmhlbHAvd3B0cnVu
bmVyIgorCUBlY2hvICIjIGxuIC1zICQoQlVJTERESVIpL2RldmhlbHAgJCRIT01FLy5sb2NhbC9z
aGFyZS9kZXZoZWxwL3dwdHJ1bm5lciIKKwlAZWNobyAiIyBkZXZoZWxwIgorCitlcHViOgorCSQo
U1BISU5YQlVJTEQpIC1iIGVwdWIgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9lcHViCisJ
QGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBlcHViIGZpbGUgaXMgaW4gJChCVUlM
RERJUikvZXB1Yi4iCisKK2xhdGV4OgorCSQoU1BISU5YQlVJTEQpIC1iIGxhdGV4ICQoQUxMU1BI
SU5YT1BUUykgJChCVUlMRERJUikvbGF0ZXgKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hl
ZDsgdGhlIExhVGVYIGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS9sYXRleC4iCisJQGVjaG8gIlJ1
biBcYG1ha2UnIGluIHRoYXQgZGlyZWN0b3J5IHRvIHJ1biB0aGVzZSB0aHJvdWdoIChwZGYpbGF0
ZXgiIFwKKwkgICAgICAiKHVzZSBcYG1ha2UgbGF0ZXhwZGYnIGhlcmUgdG8gZG8gdGhhdCBhdXRv
bWF0aWNhbGx5KS4iCisKK2xhdGV4cGRmOgorCSQoU1BISU5YQlVJTEQpIC1iIGxhdGV4ICQoQUxM
U1BISU5YT1BUUykgJChCVUlMRERJUikvbGF0ZXgKKwlAZWNobyAiUnVubmluZyBMYVRlWCBmaWxl
cyB0aHJvdWdoIHBkZmxhdGV4Li4uIgorCSQoTUFLRSkgLUMgJChCVUlMRERJUikvbGF0ZXggYWxs
LXBkZgorCUBlY2hvICJwZGZsYXRleCBmaW5pc2hlZDsgdGhlIFBERiBmaWxlcyBhcmUgaW4gJChC
VUlMRERJUikvbGF0ZXguIgorCitsYXRleHBkZmphOgorCSQoU1BISU5YQlVJTEQpIC1iIGxhdGV4
ICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvbGF0ZXgKKwlAZWNobyAiUnVubmluZyBMYVRl
WCBmaWxlcyB0aHJvdWdoIHBsYXRleCBhbmQgZHZpcGRmbXguLi4iCisJJChNQUtFKSAtQyAkKEJV
SUxERElSKS9sYXRleCBhbGwtcGRmLWphCisJQGVjaG8gInBkZmxhdGV4IGZpbmlzaGVkOyB0aGUg
UERGIGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS9sYXRleC4iCisKK3RleHQ6CisJJChTUEhJTlhC
VUlMRCkgLWIgdGV4dCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3RleHQKKwlAZWNobwor
CUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIHRleHQgZmlsZXMgYXJlIGluICQoQlVJTERESVIp
L3RleHQuIgorCittYW46CisJJChTUEhJTlhCVUlMRCkgLWIgbWFuICQoQUxMU1BISU5YT1BUUykg
JChCVUlMRERJUikvbWFuCisJQGVjaG8KKwlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBtYW51
YWwgcGFnZXMgYXJlIGluICQoQlVJTERESVIpL21hbi4iCisKK3RleGluZm86CisJJChTUEhJTlhC
VUlMRCkgLWIgdGV4aW5mbyAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3RleGluZm8KKwlA
ZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIFRleGluZm8gZmlsZXMgYXJlIGluICQo
QlVJTERESVIpL3RleGluZm8uIgorCUBlY2hvICJSdW4gXGBtYWtlJyBpbiB0aGF0IGRpcmVjdG9y
eSB0byBydW4gdGhlc2UgdGhyb3VnaCBtYWtlaW5mbyIgXAorCSAgICAgICIodXNlIFxgbWFrZSBp
bmZvJyBoZXJlIHRvIGRvIHRoYXQgYXV0b21hdGljYWxseSkuIgorCitpbmZvOgorCSQoU1BISU5Y
QlVJTEQpIC1iIHRleGluZm8gJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS90ZXhpbmZvCisJ
QGVjaG8gIlJ1bm5pbmcgVGV4aW5mbyBmaWxlcyB0aHJvdWdoIG1ha2VpbmZvLi4uIgorCW1ha2Ug
LUMgJChCVUlMRERJUikvdGV4aW5mbyBpbmZvCisJQGVjaG8gIm1ha2VpbmZvIGZpbmlzaGVkOyB0
aGUgSW5mbyBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvdGV4aW5mby4iCisKK2dldHRleHQ6CisJ
JChTUEhJTlhCVUlMRCkgLWIgZ2V0dGV4dCAkKEkxOE5TUEhJTlhPUFRTKSAkKEJVSUxERElSKS9s
b2NhbGUKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIG1lc3NhZ2UgY2F0YWxv
Z3MgYXJlIGluICQoQlVJTERESVIpL2xvY2FsZS4iCisKK2NoYW5nZXM6CisJJChTUEhJTlhCVUlM
RCkgLWIgY2hhbmdlcyAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2NoYW5nZXMKKwlAZWNo
bworCUBlY2hvICJUaGUgb3ZlcnZpZXcgZmlsZSBpcyBpbiAkKEJVSUxERElSKS9jaGFuZ2VzLiIK
KworbGlua2NoZWNrOgorCSQoU1BISU5YQlVJTEQpIC1iIGxpbmtjaGVjayAkKEFMTFNQSElOWE9Q
VFMpICQoQlVJTERESVIpL2xpbmtjaGVjaworCUBlY2hvCisJQGVjaG8gIkxpbmsgY2hlY2sgY29t
cGxldGU7IGxvb2sgZm9yIGFueSBlcnJvcnMgaW4gdGhlIGFib3ZlIG91dHB1dCAiIFwKKwkgICAg
ICAib3IgaW4gJChCVUlMRERJUikvbGlua2NoZWNrL291dHB1dC50eHQuIgorCitkb2N0ZXN0Ogor
CSQoU1BISU5YQlVJTEQpIC1iIGRvY3Rlc3QgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9k
b2N0ZXN0CisJQGVjaG8gIlRlc3Rpbmcgb2YgZG9jdGVzdHMgaW4gdGhlIHNvdXJjZXMgZmluaXNo
ZWQsIGxvb2sgYXQgdGhlICIgXAorCSAgICAgICJyZXN1bHRzIGluICQoQlVJTERESVIpL2RvY3Rl
c3Qvb3V0cHV0LnR4dC4iCisKK3htbDoKKwkkKFNQSElOWEJVSUxEKSAtYiB4bWwgJChBTExTUEhJ
TlhPUFRTKSAkKEJVSUxERElSKS94bWwKKwlAZWNobworCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4g
VGhlIFhNTCBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikveG1sLiIKKworcHNldWRveG1sOgorCSQo
U1BISU5YQlVJTEQpIC1iIHBzZXVkb3htbCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3Bz
ZXVkb3htbAorCUBlY2hvCisJQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgcHNldWRvLVhNTCBm
aWxlcyBhcmUgaW4gJChCVUlMRERJUikvcHNldWRveG1sLiIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3Mv
YXJjaGl0ZWN0dXJlLnN2ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvYXJjaGl0ZWN0dXJlLnN2ZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
OGQ1YWEyMWMxOWE3MGFmODIwMjJhNDM4ZjRmNjM3MjM0OTZkMzYwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvZG9jcy9hcmNoaXRlY3R1cmUuc3ZnCkBAIC0wLDAgKzEgQEAKKzxzdmcgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcv
MTk5OS94bGluayIgd2lkdGg9Ijc4MHB4IiBoZWlnaHQ9IjEwODdweCIgdmVyc2lvbj0iMS4xIj48
ZGVmcz48bGluZWFyR3JhZGllbnQgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiIGlk
PSJteC1ncmFkaWVudC1hOWM0ZWItMS1hOWM0ZWItMS1zLTAiPjxzdG9wIG9mZnNldD0iMCUiIHN0
eWxlPSJzdG9wLWNvbG9yOiNBOUM0RUIiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0eWxlPSJzdG9w
LWNvbG9yOiNBOUM0RUIiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48ZyB0cmFuc2Zvcm09InRy
YW5zbGF0ZSgwLjUsMC41KSI+PHJlY3QgeD0iNDk4IiB5PSI0OTgiIHdpZHRoPSIxMjAiIGhlaWdo
dD0iNjAiIGZpbGw9IiNlNmQwZGUiIHN0cm9rZT0iIzAwMDAwMCIgcG9pbnRlci1ldmVudHM9Im5v
bmUiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MDAsNTIxKSI+PHN3aXRjaD48Zm9yZWlnbk9i
amVjdCBwb2ludGVyLWV2ZW50cz0iYWxsIiB3aWR0aD0iMTE2IiBoZWlnaHQ9IjE1IiByZXF1aXJl
ZEZlYXR1cmVzPSJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI0V4dGVuc2liaWxp
dHkiPjxkaXYgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHN0eWxlPSJkaXNw
bGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTogMTJweDsgZm9udC1mYW1pbHk6IEhlbHZldGlj
YTsgY29sb3I6IHJnYigwLCAwLCAwKTsgbGluZS1oZWlnaHQ6IDEuMjY7IHZlcnRpY2FsLWFsaWdu
OiB0b3A7IHdpZHRoOiAxMTZweDsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgdGV4dC1hbGlnbjogY2Vu
dGVyOyI+VGVzdFJ1bm5lcjwvZGl2PjwvZm9yZWlnbk9iamVjdD48dGV4dCB4PSI1OCIgeT0iMTQi
IGZpbGw9IiMwMDAwMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTJweCIgZm9u
dC1mYW1pbHk9IkhlbHZldGljYSI+W05vdCBzdXBwb3J0ZWQgYnkgdmlld2VyXTwvdGV4dD48L3N3
aXRjaD48L2c+PHJlY3QgeD0iMzM4IiB5PSI3NzgiIHdpZHRoPSIxMjAiIGhlaWdodD0iNjAiIGZp
bGw9IiNmMTljOTkiIHN0cm9rZT0iIzAwMDAwMCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48ZyB0
cmFuc2Zvcm09InRyYW5zbGF0ZSgzNDAsODAxKSI+PHN3aXRjaD48Zm9yZWlnbk9iamVjdCBwb2lu
dGVyLWV2ZW50cz0iYWxsIiB3aWR0aD0iMTE2IiBoZWlnaHQ9IjE1IiByZXF1aXJlZEZlYXR1cmVz
PSJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI0V4dGVuc2liaWxpdHkiPjxkaXYg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxp
bmUtYmxvY2s7IGZvbnQtc2l6ZTogMTJweDsgZm9udC1mYW1pbHk6IEhlbHZldGljYTsgY29sb3I6
IHJnYigwLCAwLCAwKTsgbGluZS1oZWlnaHQ6IDEuMjY7IHZlcnRpY2FsLWFsaWduOiB0b3A7IHdp
ZHRoOiAxMTZweDsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgdGV4dC1hbGlnbjogY2VudGVyOyI+UHJv
ZHVjdCB1bmRlciB0ZXN0PC9kaXY+PC9mb3JlaWduT2JqZWN0Pjx0ZXh0IHg9IjU4IiB5PSIxNCIg
ZmlsbD0iIzAwMDAwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMnB4IiBmb250
LWZhbWlseT0iSGVsdmV0aWNhIj5bTm90IHN1cHBvcnRlZCBieSB2aWV3ZXJdPC90ZXh0Pjwvc3dp
dGNoPjwvZz48cmVjdCB4PSIzMzgiIHk9IjM4OCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSI2MCIgZmls
bD0iI2U2ZDBkZSIgc3Ryb2tlPSIjMDAwMDAwIiBwb2ludGVyLWV2ZW50cz0ibm9uZSIvPjxnIHRy
YW5zZm9ybT0idHJhbnNsYXRlKDM0MCw0MTEpIj48c3dpdGNoPjxmb3JlaWduT2JqZWN0IHBvaW50
ZXItZXZlbnRzPSJhbGwiIHdpZHRoPSIxMTYiIGhlaWdodD0iMTUiIHJlcXVpcmVkRmVhdHVyZXM9
Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjRXh0ZW5zaWJpbGl0eSI+PGRpdiB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3R5bGU9ImRpc3BsYXk6IGlubGlu
ZS1ibG9jazsgZm9udC1zaXplOiAxMnB4OyBmb250LWZhbWlseTogSGVsdmV0aWNhOyBjb2xvcjog
cmdiKDAsIDAsIDApOyBsaW5lLWhlaWdodDogMS4yNjsgdmVydGljYWwtYWxpZ246IHRvcDsgd2lk
dGg6IDExNnB4OyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij5UZXN0
UnVubmVyTWFuYWdlcjwvZGl2PjwvZm9yZWlnbk9iamVjdD48dGV4dCB4PSI1OCIgeT0iMTQiIGZp
bGw9IiMwMDAwMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTJweCIgZm9udC1m
YW1pbHk9IkhlbHZldGljYSI+W05vdCBzdXBwb3J0ZWQgYnkgdmlld2VyXTwvdGV4dD48L3N3aXRj
aD48L2c+PHJlY3QgeD0iMzM4IiB5PSIyMjgiIHdpZHRoPSIxMjAiIGhlaWdodD0iNjAiIGZpbGw9
IiNlNmQwZGUiIHN0cm9rZT0iIzAwMDAwMCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48ZyB0cmFu
c2Zvcm09InRyYW5zbGF0ZSgzNDAsMjUxKSI+PHN3aXRjaD48Zm9yZWlnbk9iamVjdCBwb2ludGVy
LWV2ZW50cz0iYWxsIiB3aWR0aD0iMTE2IiBoZWlnaHQ9IjE1IiByZXF1aXJlZEZlYXR1cmVzPSJo
dHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI0V4dGVuc2liaWxpdHkiPjxkaXYgeG1s
bnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUt
YmxvY2s7IGZvbnQtc2l6ZTogMTJweDsgZm9udC1mYW1pbHk6IEhlbHZldGljYTsgY29sb3I6IHJn
YigwLCAwLCAwKTsgbGluZS1oZWlnaHQ6IDEuMjY7IHZlcnRpY2FsLWFsaWduOiB0b3A7IHdpZHRo
OiAxMTZweDsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgdGV4dC1hbGlnbjogY2VudGVyOyI+TWFuYWdl
ckdyb3VwPC9kaXY+PC9mb3JlaWduT2JqZWN0Pjx0ZXh0IHg9IjU4IiB5PSIxNCIgZmlsbD0iIzAw
MDAwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMnB4IiBmb250LWZhbWlseT0i
SGVsdmV0aWNhIj5bTm90IHN1cHBvcnRlZCBieSB2aWV3ZXJdPC90ZXh0Pjwvc3dpdGNoPjwvZz48
cmVjdCB4PSI2NTgiIHk9IjYwOCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSI2MCIgZmlsbD0iI2ZmY2U5
ZiIgc3Ryb2tlPSIjMDAwMDAwIiBwb2ludGVyLWV2ZW50cz0ibm9uZSIvPjxnIHRyYW5zZm9ybT0i
dHJhbnNsYXRlKDY2MCw2MzEpIj48c3dpdGNoPjxmb3JlaWduT2JqZWN0IHBvaW50ZXItZXZlbnRz
PSJhbGwiIHdpZHRoPSIxMTYiIGhlaWdodD0iMTUiIHJlcXVpcmVkRmVhdHVyZXM9Imh0dHA6Ly93
d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjRXh0ZW5zaWJpbGl0eSI+PGRpdiB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsg
Zm9udC1zaXplOiAxMnB4OyBmb250LWZhbWlseTogSGVsdmV0aWNhOyBjb2xvcjogcmdiKDAsIDAs
IDApOyBsaW5lLWhlaWdodDogMS4yNjsgdmVydGljYWwtYWxpZ246IHRvcDsgd2lkdGg6IDExNnB4
OyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij5FeGVjdXRvcjwvZGl2
PjwvZm9yZWlnbk9iamVjdD48dGV4dCB4PSI1OCIgeT0iMTQiIGZpbGw9IiMwMDAwMDAiIHRleHQt
YW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTJweCIgZm9udC1mYW1pbHk9IkhlbHZldGljYSI+
W05vdCBzdXBwb3J0ZWQgYnkgdmlld2VyXTwvdGV4dD48L3N3aXRjaD48L2c+PHJlY3QgeD0iMzM4
IiB5PSI0OTgiIHdpZHRoPSIxMjAiIGhlaWdodD0iNjAiIGZpbGw9InVybCgjbXgtZ3JhZGllbnQt
YTljNGViLTEtYTljNGViLTEtcy0wKSIgc3Ryb2tlPSIjMDAwMDAwIiBwb2ludGVyLWV2ZW50cz0i
bm9uZSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDM0MCw1MjEpIj48c3dpdGNoPjxmb3JlaWdu
T2JqZWN0IHBvaW50ZXItZXZlbnRzPSJhbGwiIHdpZHRoPSIxMTYiIGhlaWdodD0iMTUiIHJlcXVp
cmVkRmVhdHVyZXM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjRXh0ZW5zaWJp
bGl0eSI+PGRpdiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3R5bGU9ImRp
c3BsYXk6IGlubGluZS1ibG9jazsgZm9udC1zaXplOiAxMnB4OyBmb250LWZhbWlseTogSGVsdmV0
aWNhOyBjb2xvcjogcmdiKDAsIDAsIDApOyBsaW5lLWhlaWdodDogMS4yNjsgdmVydGljYWwtYWxp
Z246IHRvcDsgd2lkdGg6IDExNnB4OyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB0ZXh0LWFsaWduOiBj
ZW50ZXI7Ij5Ccm93c2VyPC9kaXY+PC9mb3JlaWduT2JqZWN0Pjx0ZXh0IHg9IjU4IiB5PSIxNCIg
ZmlsbD0iIzAwMDAwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMnB4IiBmb250
LWZhbWlseT0iSGVsdmV0aWNhIj5bTm90IHN1cHBvcnRlZCBieSB2aWV3ZXJdPC90ZXh0Pjwvc3dp
dGNoPjwvZz48cGF0aCBkPSJNIDM5OCAyODggTCAzOTggMzgyIiBmaWxsPSJub25lIiBzdHJva2U9
IiMwMDAwMDAiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48
cGF0aCBkPSJNIDM5OCAzODcgTCAzOTUgMzgwIEwgMzk4IDM4MiBMIDQwMiAzODAgWiIgZmlsbD0i
IzAwMDAwMCIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHBvaW50ZXIt
ZXZlbnRzPSJub25lIi8+PHBhdGggZD0iTSAzOTggNDQ4IEwgMzk4IDQ5MiIgZmlsbD0ibm9uZSIg
c3Ryb2tlPSIjMDAwMDAwIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHBvaW50ZXItZXZlbnRzPSJu
b25lIi8+PHBhdGggZD0iTSAzOTggNDk3IEwgMzk1IDQ5MCBMIDM5OCA0OTIgTCA0MDIgNDkwIFoi
IGZpbGw9IiMwMDAwMDAiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBw
b2ludGVyLWV2ZW50cz0ibm9uZSIvPjxwYXRoIGQ9Ik0gNjE4IDUyOCBMIDY4NCA2MDMiIGZpbGw9
Im5vbmUiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBwb2ludGVyLWV2
ZW50cz0ibm9uZSIvPjxwYXRoIGQ9Ik0gNjg3IDYwNyBMIDY4MCA2MDQgTCA2ODQgNjAzIEwgNjg1
IDYwMCBaIiBmaWxsPSIjMDAwMDAwIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS1taXRlcmxpbWl0
PSIxMCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48cmVjdCB4PSI0OTgiIHk9IjYwOCIgd2lkdGg9
IjEyMCIgaGVpZ2h0PSI2MCIgZmlsbD0iI2E5YzRlYiIgc3Ryb2tlPSIjMDAwMDAwIiBwb2ludGVy
LWV2ZW50cz0ibm9uZSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDUwMCw2MzEpIj48c3dpdGNo
Pjxmb3JlaWduT2JqZWN0IHBvaW50ZXItZXZlbnRzPSJhbGwiIHdpZHRoPSIxMTYiIGhlaWdodD0i
MTUiIHJlcXVpcmVkRmVhdHVyZXM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUj
RXh0ZW5zaWJpbGl0eSI+PGRpdiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIg
c3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgZm9udC1zaXplOiAxMnB4OyBmb250LWZhbWls
eTogSGVsdmV0aWNhOyBjb2xvcjogcmdiKDAsIDAsIDApOyBsaW5lLWhlaWdodDogMS4yNjsgdmVy
dGljYWwtYWxpZ246IHRvcDsgd2lkdGg6IDExNnB4OyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB0ZXh0
LWFsaWduOiBjZW50ZXI7Ij5FeGVjdXRvckJyb3dzZXI8L2Rpdj48L2ZvcmVpZ25PYmplY3Q+PHRl
eHQgeD0iNTgiIHk9IjE0IiBmaWxsPSIjMDAwMDAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250
LXNpemU9IjEycHgiIGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EiPltOb3Qgc3VwcG9ydGVkIGJ5IHZp
ZXdlcl08L3RleHQ+PC9zd2l0Y2g+PC9nPjxwYXRoIGQ9Ik0gNjI0IDYzOCBMIDY1OCA2MzgiIGZp
bGw9Im5vbmUiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBwb2ludGVy
LWV2ZW50cz0ibm9uZSIvPjxwYXRoIGQ9Ik0gNjE5IDYzOCBMIDYyNiA2MzUgTCA2MjQgNjM4IEwg
NjI2IDY0MiBaIiBmaWxsPSIjMDAwMDAwIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS1taXRlcmxp
bWl0PSIxMCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48cGF0aCBkPSJNIDQyOCA0NDggTCA1NTIg
NDk2IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIg
c3Ryb2tlLWRhc2hhcnJheT0iMyAzIiBwb2ludGVyLWV2ZW50cz0ibm9uZSIvPjxwYXRoIGQ9Ik0g
NTU3IDQ5OCBMIDU0OSA0OTggTCA1NTIgNDk2IEwgNTUyIDQ5MiBaIiBmaWxsPSIjMDAwMDAwIiBz
dHJva2U9IiMwMDAwMDAiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgcG9pbnRlci1ldmVudHM9Im5v
bmUiLz48cGF0aCBkPSJNIDM5OCA1NTggTCAzOTggNzcyIiBmaWxsPSJub25lIiBzdHJva2U9IiMw
MDAwMDAiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLWRhc2hhcnJheT0iMyAzIiBwb2lu
dGVyLWV2ZW50cz0ibm9uZSIvPjxwYXRoIGQ9Ik0gMzk4IDc3NyBMIDM5NSA3NzAgTCAzOTggNzcy
IEwgNDAyIDc3MCBaIiBmaWxsPSIjMDAwMDAwIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS1taXRl
cmxpbWl0PSIxMCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48cmVjdCB4PSIzMzgiIHk9IjQ4IiB3
aWR0aD0iMTIwIiBoZWlnaHQ9IjYwIiBmaWxsPSIjZTZkMGRlIiBzdHJva2U9IiMwMDAwMDAiIHBv
aW50ZXItZXZlbnRzPSJub25lIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMzQwLDcxKSI+PHN3
aXRjaD48Zm9yZWlnbk9iamVjdCBwb2ludGVyLWV2ZW50cz0iYWxsIiB3aWR0aD0iMTE2IiBoZWln
aHQ9IjE1IiByZXF1aXJlZEZlYXR1cmVzPSJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0
dXJlI0V4dGVuc2liaWxpdHkiPjxkaXYgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGZvbnQtc2l6ZTogMTJweDsgZm9udC1m
YW1pbHk6IEhlbHZldGljYTsgY29sb3I6IHJnYigwLCAwLCAwKTsgbGluZS1oZWlnaHQ6IDEuMjY7
IHZlcnRpY2FsLWFsaWduOiB0b3A7IHdpZHRoOiAxMTZweDsgd2hpdGUtc3BhY2U6IG5vcm1hbDsg
dGV4dC1hbGlnbjogY2VudGVyOyI+cnVuX3Rlc3RzPC9kaXY+PC9mb3JlaWduT2JqZWN0Pjx0ZXh0
IHg9IjU4IiB5PSIxNCIgZmlsbD0iIzAwMDAwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1z
aXplPSIxMnB4IiBmb250LWZhbWlseT0iSGVsdmV0aWNhIj5bTm90IHN1cHBvcnRlZCBieSB2aWV3
ZXJdPC90ZXh0Pjwvc3dpdGNoPjwvZz48cGF0aCBkPSJNIDQ1OCA3OCBMIDY1MiA3OCIgZmlsbD0i
bm9uZSIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHBvaW50ZXItZXZl
bnRzPSJub25lIi8+PHBhdGggZD0iTSA2NTcgNzggTCA2NTAgODIgTCA2NTIgNzggTCA2NTAgNzUg
WiIgZmlsbD0iIzAwMDAwMCIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAi
IHBvaW50ZXItZXZlbnRzPSJub25lIi8+PHJlY3QgeD0iNjU4IiB5PSI0OCIgd2lkdGg9IjEyMCIg
aGVpZ2h0PSI2MCIgZmlsbD0iI2U2ZDBkZSIgc3Ryb2tlPSIjMDAwMDAwIiBwb2ludGVyLWV2ZW50
cz0ibm9uZSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDY2MCw3MSkiPjxzd2l0Y2g+PGZvcmVp
Z25PYmplY3QgcG9pbnRlci1ldmVudHM9ImFsbCIgd2lkdGg9IjExNiIgaGVpZ2h0PSIxNSIgcmVx
dWlyZWRGZWF0dXJlcz0iaHR0cDovL3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNFeHRlbnNp
YmlsaXR5Ij48ZGl2IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzdHlsZT0i
ZGlzcGxheTogaW5saW5lLWJsb2NrOyBmb250LXNpemU6IDEycHg7IGZvbnQtZmFtaWx5OiBIZWx2
ZXRpY2E7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGxpbmUtaGVpZ2h0OiAxLjI2OyB2ZXJ0aWNhbC1h
bGlnbjogdG9wOyB3aWR0aDogMTE2cHg7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHRleHQtYWxpZ246
IGNlbnRlcjsiPlRlc3RMb2FkZXI8L2Rpdj48L2ZvcmVpZ25PYmplY3Q+PHRleHQgeD0iNTgiIHk9
IjE0IiBmaWxsPSIjMDAwMDAwIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEycHgi
IGZvbnQtZmFtaWx5PSJIZWx2ZXRpY2EiPltOb3Qgc3VwcG9ydGVkIGJ5IHZpZXdlcl08L3RleHQ+
PC9zd2l0Y2g+PC9nPjxyZWN0IHg9IjcxIiB5PSI0OCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSI2MCIg
ZmlsbD0iI2U2ZDBkZSIgc3Ryb2tlPSIjMDAwMDAwIiBwb2ludGVyLWV2ZW50cz0ibm9uZSIvPjxn
IHRyYW5zZm9ybT0idHJhbnNsYXRlKDczLDcxKSI+PHN3aXRjaD48Zm9yZWlnbk9iamVjdCBwb2lu
dGVyLWV2ZW50cz0iYWxsIiB3aWR0aD0iMTE2IiBoZWlnaHQ9IjE1IiByZXF1aXJlZEZlYXR1cmVz
PSJodHRwOi8vd3d3LnczLm9yZy9UUi9TVkcxMS9mZWF0dXJlI0V4dGVuc2liaWxpdHkiPjxkaXYg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHN0eWxlPSJkaXNwbGF5OiBpbmxp
bmUtYmxvY2s7IGZvbnQtc2l6ZTogMTJweDsgZm9udC1mYW1pbHk6IEhlbHZldGljYTsgY29sb3I6
IHJnYigwLCAwLCAwKTsgbGluZS1oZWlnaHQ6IDEuMjY7IHZlcnRpY2FsLWFsaWduOiB0b3A7IHdp
ZHRoOiAxMTZweDsgd2hpdGUtc3BhY2U6IG5vcm1hbDsgdGV4dC1hbGlnbjogY2VudGVyOyI+VGVz
dEVudmlyb25tZW50PC9kaXY+PC9mb3JlaWduT2JqZWN0Pjx0ZXh0IHg9IjU4IiB5PSIxNCIgZmls
bD0iIzAwMDAwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMnB4IiBmb250LWZh
bWlseT0iSGVsdmV0aWNhIj5bTm90IHN1cHBvcnRlZCBieSB2aWV3ZXJdPC90ZXh0Pjwvc3dpdGNo
PjwvZz48cmVjdCB4PSIxNTEiIHk9IjYxOCIgd2lkdGg9IjEyMCIgaGVpZ2h0PSI2MCIgZmlsbD0i
I2I5ZTBhNSIgc3Ryb2tlPSIjMDAwMDAwIiBwb2ludGVyLWV2ZW50cz0ibm9uZSIvPjxnIHRyYW5z
Zm9ybT0idHJhbnNsYXRlKDE1Myw2NDEpIj48c3dpdGNoPjxmb3JlaWduT2JqZWN0IHBvaW50ZXIt
ZXZlbnRzPSJhbGwiIHdpZHRoPSIxMTYiIGhlaWdodD0iMTUiIHJlcXVpcmVkRmVhdHVyZXM9Imh0
dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUjRXh0ZW5zaWJpbGl0eSI+PGRpdiB4bWxu
cz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1i
bG9jazsgZm9udC1zaXplOiAxMnB4OyBmb250LWZhbWlseTogSGVsdmV0aWNhOyBjb2xvcjogcmdi
KDAsIDAsIDApOyBsaW5lLWhlaWdodDogMS4yNjsgdmVydGljYWwtYWxpZ246IHRvcDsgd2lkdGg6
IDExNnB4OyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij53cHRzZXJ2
ZTwvZGl2PjwvZm9yZWlnbk9iamVjdD48dGV4dCB4PSI1OCIgeT0iMTQiIGZpbGw9IiMwMDAwMDAi
IHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTJweCIgZm9udC1mYW1pbHk9IkhlbHZl
dGljYSI+W05vdCBzdXBwb3J0ZWQgYnkgdmlld2VyXTwvdGV4dD48L3N3aXRjaD48L2c+PHJlY3Qg
eD0iMSIgeT0iNjE4IiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjYwIiBmaWxsPSIjYjllMGE1IiBzdHJv
a2U9IiMwMDAwMDAiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xh
dGUoMyw2NDEpIj48c3dpdGNoPjxmb3JlaWduT2JqZWN0IHBvaW50ZXItZXZlbnRzPSJhbGwiIHdp
ZHRoPSIxMTYiIGhlaWdodD0iMTUiIHJlcXVpcmVkRmVhdHVyZXM9Imh0dHA6Ly93d3cudzMub3Jn
L1RSL1NWRzExL2ZlYXR1cmUjRXh0ZW5zaWJpbGl0eSI+PGRpdiB4bWxucz0iaHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCIgc3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgZm9udC1zaXpl
OiAxMnB4OyBmb250LWZhbWlseTogSGVsdmV0aWNhOyBjb2xvcjogcmdiKDAsIDAsIDApOyBsaW5l
LWhlaWdodDogMS4yNjsgdmVydGljYWwtYWxpZ246IHRvcDsgd2lkdGg6IDExNnB4OyB3aGl0ZS1z
cGFjZTogbm9ybWFsOyB0ZXh0LWFsaWduOiBjZW50ZXI7Ij5weXdlYnNvY2tldDwvZGl2PjwvZm9y
ZWlnbk9iamVjdD48dGV4dCB4PSI1OCIgeT0iMTQiIGZpbGw9IiMwMDAwMDAiIHRleHQtYW5jaG9y
PSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTJweCIgZm9udC1mYW1pbHk9IkhlbHZldGljYSI+W05vdCBz
dXBwb3J0ZWQgYnkgdmlld2VyXTwvdGV4dD48L3N3aXRjaD48L2c+PHBhdGggZD0iTSAzMzggNzgg
TCAxOTcgNzgiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLW1pdGVybGltaXQ9
IjEwIiBwb2ludGVyLWV2ZW50cz0ibm9uZSIvPjxwYXRoIGQ9Ik0gMTkyIDc4IEwgMTk5IDc1IEwg
MTk3IDc4IEwgMTk5IDgyIFoiIGZpbGw9IiMwMDAwMDAiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tl
LW1pdGVybGltaXQ9IjEwIiBwb2ludGVyLWV2ZW50cz0ibm9uZSIvPjxwYXRoIGQ9Ik0gMTAxIDMw
OCBMIDYyIDYxMiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2UtbWl0ZXJsaW1p
dD0iMTAiIHN0cm9rZS1kYXNoYXJyYXk9IjMgMyIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48cGF0
aCBkPSJNIDYxIDYxNyBMIDU5IDYxMCBMIDYyIDYxMiBMIDY2IDYxMCBaIiBmaWxsPSIjMDAwMDAw
IiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgcG9pbnRlci1ldmVudHM9
Im5vbmUiLz48cGF0aCBkPSJNIDE2MSAzMDggTCAyMDQgNjEyIiBmaWxsPSJub25lIiBzdHJva2U9
IiMwMDAwMDAiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLWRhc2hhcnJheT0iMyAzIiBw
b2ludGVyLWV2ZW50cz0ibm9uZSIvPjxwYXRoIGQ9Ik0gMjA0IDYxNyBMIDIwMCA2MTAgTCAyMDQg
NjEyIEwgMjA3IDYwOSBaIiBmaWxsPSIjMDAwMDAwIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS1t
aXRlcmxpbWl0PSIxMCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48cGF0aCBkPSJNIDMzOCA4MjMg
TCA2MSA2NzgiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLW1pdGVybGltaXQ9
IjEwIiBzdHJva2UtZGFzaGFycmF5PSIzIDMiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PHBhdGgg
ZD0iTSAyMTEgNjc4IEwgMzM4IDc5MyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJv
a2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS1kYXNoYXJyYXk9IjMgMyIgcG9pbnRlci1ldmVudHM9
Im5vbmUiLz48cGF0aCBkPSJNIDM5OCAxMDggTCAzOTggMjIyIiBmaWxsPSJub25lIiBzdHJva2U9
IiMwMDAwMDAiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48
cGF0aCBkPSJNIDM5OCAyMjcgTCAzOTUgMjIwIEwgMzk4IDIyMiBMIDQwMiAyMjAgWiIgZmlsbD0i
IzAwMDAwMCIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHBvaW50ZXIt
ZXZlbnRzPSJub25lIi8+PHBhdGggZD0iTSA3MDYgMjg4IEwgNjE4IDUxMyIgZmlsbD0ibm9uZSIg
c3Ryb2tlPSIjMDAwMDAwIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS1kYXNoYXJyYXk9
IjMgMyIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48cmVjdCB4PSI2NTgiIHk9IjM4OCIgd2lkdGg9
IjcwIiBoZWlnaHQ9IjQwIiBmaWxsPSJub25lIiBzdHJva2U9Im5vbmUiIHBvaW50ZXItZXZlbnRz
PSJub25lIi8+PGcgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IkhlbHZldGljYSIgdGV4dC1h
bmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMnB4Ij48dGV4dCB4PSI2OTMiIHk9IjQxMiI+UXVl
dWUuZ2V0PC90ZXh0PjwvZz48cGF0aCBkPSJNIDQ1OCA4MDggTCA3MTggNjY4IiBmaWxsPSJub25l
IiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgc3Ryb2tlLWRhc2hhcnJh
eT0iMyAzIiBwb2ludGVyLWV2ZW50cz0ibm9uZSIvPjxyZWN0IHg9IjcxIiB5PSIyNDgiIHdpZHRo
PSIxMjAiIGhlaWdodD0iNjAiIGZpbGw9IiNiOWUwYTUiIHN0cm9rZT0iIzAwMDAwMCIgcG9pbnRl
ci1ldmVudHM9Im5vbmUiLz48ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg3MywyNzEpIj48c3dpdGNo
Pjxmb3JlaWduT2JqZWN0IHBvaW50ZXItZXZlbnRzPSJhbGwiIHdpZHRoPSIxMTYiIGhlaWdodD0i
MTUiIHJlcXVpcmVkRmVhdHVyZXM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1NWRzExL2ZlYXR1cmUj
RXh0ZW5zaWJpbGl0eSI+PGRpdiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIg
c3R5bGU9ImRpc3BsYXk6IGlubGluZS1ibG9jazsgZm9udC1zaXplOiAxMnB4OyBmb250LWZhbWls
eTogSGVsdmV0aWNhOyBjb2xvcjogcmdiKDAsIDAsIDApOyBsaW5lLWhlaWdodDogMS4yNjsgdmVy
dGljYWwtYWxpZ246IHRvcDsgd2lkdGg6IDExNnB4OyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB0ZXh0
LWFsaWduOiBjZW50ZXI7Ij5zZXJ2ZS5weTwvZGl2PjwvZm9yZWlnbk9iamVjdD48dGV4dCB4PSI1
OCIgeT0iMTQiIGZpbGw9IiMwMDAwMDAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0i
MTJweCIgZm9udC1mYW1pbHk9IkhlbHZldGljYSI+W05vdCBzdXBwb3J0ZWQgYnkgdmlld2VyXTwv
dGV4dD48L3N3aXRjaD48L2c+PHBhdGggZD0iTSAxMzEgMTA4IEwgMTMxIDI0MiIgZmlsbD0ibm9u
ZSIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS1kYXNoYXJy
YXk9IjMgMyIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48cGF0aCBkPSJNIDEzMSAyNDcgTCAxMjgg
MjQwIEwgMTMxIDI0MiBMIDEzNSAyNDAgWiIgZmlsbD0iIzAwMDAwMCIgc3Ryb2tlPSIjMDAwMDAw
IiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PHBhdGggZD0i
TSA4OCA5NzMgTCAxMzIgOTczIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS1t
aXRlcmxpbWl0PSIxMCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48cGF0aCBkPSJNIDEzNyA5NzMg
TCAxMzAgOTc3IEwgMTMyIDk3MyBMIDEzMCA5NzAgWiIgZmlsbD0iIzAwMDAwMCIgc3Ryb2tlPSIj
MDAwMDAwIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PHJl
Y3QgeD0iMTM4IiB5PSIxMDE4IiB3aWR0aD0iMTgwIiBoZWlnaHQ9IjMwIiBmaWxsPSJub25lIiBz
dHJva2U9Im5vbmUiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PGcgZmlsbD0iIzAwMDAwMCIgZm9u
dC1mYW1pbHk9IkhlbHZldGljYSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMnB4
Ij48dGV4dCB4PSIyMjgiIHk9IjEwMzciPkNvbW11bmljYXRpb24gKGNyb3NzIHByb2Nlc3MpPC90
ZXh0PjwvZz48cGF0aCBkPSJNIDg4IDEwMDIgTCAxMzIgMTAwMiIgZmlsbD0ibm9uZSIgc3Ryb2tl
PSIjMDAwMDAwIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHN0cm9rZS1kYXNoYXJyYXk9IjMgMyIg
cG9pbnRlci1ldmVudHM9Im5vbmUiLz48cGF0aCBkPSJNIDEzNyAxMDAyIEwgMTMwIDEwMDYgTCAx
MzIgMTAwMiBMIDEzMCA5OTkgWiIgZmlsbD0iIzAwMDAwMCIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJv
a2UtbWl0ZXJsaW1pdD0iMTAiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PHJlY3QgeD0iMTM4IiB5
PSI5NTgiIHdpZHRoPSIxODAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHN0cm9rZT0ibm9uZSIg
cG9pbnRlci1ldmVudHM9Im5vbmUiLz48ZyBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0iSGVs
dmV0aWNhIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEycHgiPjx0ZXh0IHg9IjIy
OCIgeT0iOTc3Ij5Pd25lcnNoaXAgKHNhbWUgcHJvY2Vzcyk8L3RleHQ+PC9nPjxwYXRoIGQ9Ik0g
ODggMTAzMyBMIDEzOCAxMDMzIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS1t
aXRlcmxpbWl0PSIxMCIgc3Ryb2tlLWRhc2hhcnJheT0iMyAzIiBwb2ludGVyLWV2ZW50cz0ibm9u
ZSIvPjxyZWN0IHg9IjE0MyIgeT0iOTg4IiB3aWR0aD0iMTgwIiBoZWlnaHQ9IjMwIiBmaWxsPSJu
b25lIiBzdHJva2U9Im5vbmUiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PGcgZmlsbD0iIzAwMDAw
MCIgZm9udC1mYW1pbHk9IkhlbHZldGljYSIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXpl
PSIxMnB4Ij48dGV4dCB4PSIyMzMiIHk9IjEwMDciPk93bmVyc2hpcCAoY3Jvc3MgcHJvY2Vzcyk8
L3RleHQ+PC9nPjxyZWN0IHg9IjQyOCIgeT0iOTY2IiB3aWR0aD0iNTAiIGhlaWdodD0iMTUiIGZp
bGw9IiNlNmQwZGUiIHN0cm9rZT0iIzAwMDAwMCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48cmVj
dCB4PSI0MjgiIHk9Ijk5MCIgd2lkdGg9IjUwIiBoZWlnaHQ9IjE1IiBmaWxsPSIjYTljNGViIiBz
dHJva2U9IiMwMDAwMDAiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PHJlY3QgeD0iNDI4IiB5PSIx
MDE1IiB3aWR0aD0iNTAiIGhlaWdodD0iMTUiIGZpbGw9IiNmZmNlOWYiIHN0cm9rZT0iIzAwMDAw
MCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48cmVjdCB4PSI0MjgiIHk9IjEwNjMiIHdpZHRoPSI1
MCIgaGVpZ2h0PSIxNSIgZmlsbD0iI2YxOWM5OSIgc3Ryb2tlPSIjMDAwMDAwIiBwb2ludGVyLWV2
ZW50cz0ibm9uZSIvPjxyZWN0IHg9IjQyOCIgeT0iMTAzOCIgd2lkdGg9IjUwIiBoZWlnaHQ9IjE1
IiBmaWxsPSIjYjllMGE1IiBzdHJva2U9IiMwMDAwMDAiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+
PHJlY3QgeD0iNDg1IiB5PSI5NTgiIHdpZHRoPSI5MCIgaGVpZ2h0PSIzMCIgZmlsbD0ibm9uZSIg
c3Ryb2tlPSJub25lIiBwb2ludGVyLWV2ZW50cz0ibm9uZSIvPjxnIGZpbGw9IiMwMDAwMDAiIGZv
bnQtZmFtaWx5PSJIZWx2ZXRpY2EiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTJw
eCI+PHRleHQgeD0iNTMwIiB5PSI5NzciPndwdHJ1bm5lciBjbGFzczwvdGV4dD48L2c+PHJlY3Qg
eD0iNDg2IiB5PSI5ODMiIHdpZHRoPSIxNTAiIGhlaWdodD0iMzAiIGZpbGw9Im5vbmUiIHN0cm9r
ZT0ibm9uZSIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48ZyBmaWxsPSIjMDAwMDAwIiBmb250LWZh
bWlseT0iSGVsdmV0aWNhIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEycHgiPjx0
ZXh0IHg9IjU2MSIgeT0iMTAwMiI+UGVyLXByb2R1Y3Qgd3B0cnVubmVyIGNsYXNzPC90ZXh0Pjwv
Zz48cmVjdCB4PSI0ODYiIHk9IjEwMDgiIHdpZHRoPSIxNTAiIGhlaWdodD0iMzAiIGZpbGw9Im5v
bmUiIHN0cm9rZT0ibm9uZSIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48ZyBmaWxsPSIjMDAwMDAw
IiBmb250LWZhbWlseT0iSGVsdmV0aWNhIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9
IjEycHgiPjx0ZXh0IHg9IjU2MSIgeT0iMTAyNyI+UGVyLXByb3RvY29sIHdwdHJ1bm5lciBjbGFz
czwvdGV4dD48L2c+PHJlY3QgeD0iNDkxIiB5PSIxMDMxIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjMw
IiBmaWxsPSJub25lIiBzdHJva2U9Im5vbmUiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PGcgZmls
bD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IkhlbHZldGljYSIgdGV4dC1hbmNob3I9Im1pZGRsZSIg
Zm9udC1zaXplPSIxMnB4Ij48dGV4dCB4PSI1NjYiIHk9IjEwNTAiPldlYi1wbGF0Zm9ybS10ZXN0
cyBjb21wb25lbnQ8L3RleHQ+PC9nPjxyZWN0IHg9IjQ4NiIgeT0iMTA1NSIgd2lkdGg9IjkwIiBo
ZWlnaHQ9IjMwIiBmaWxsPSJub25lIiBzdHJva2U9Im5vbmUiIHBvaW50ZXItZXZlbnRzPSJub25l
Ii8+PGcgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IkhlbHZldGljYSIgdGV4dC1hbmNob3I9
Im1pZGRsZSIgZm9udC1zaXplPSIxMnB4Ij48dGV4dCB4PSI1MzEiIHk9IjEwNzQiPkJyb3dzZXIg
cHJvY2VzczwvdGV4dD48L2c+PHBhdGggZD0iTSAzOTggOCBMIDM5OCA0MiIgZmlsbD0ibm9uZSIg
c3Ryb2tlPSIjMDAwMDAwIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHBvaW50ZXItZXZlbnRzPSJu
b25lIi8+PHBhdGggZD0iTSAzOTggNDcgTCAzOTUgNDAgTCAzOTggNDIgTCA0MDIgNDAgWiIgZmls
bD0iIzAwMDAwMCIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHBvaW50
ZXItZXZlbnRzPSJub25lIi8+PHJlY3QgeD0iNDc4IiB5PSIzODgiIHdpZHRoPSIxMjAiIGhlaWdo
dD0iNjAiIGZpbGwtb3BhY2l0eT0iMC41IiBmaWxsPSIjZTZkMGRlIiBzdHJva2U9IiMwMDAwMDAi
IHN0cm9rZS1vcGFjaXR5PSIwLjUiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PGcgdHJhbnNmb3Jt
PSJ0cmFuc2xhdGUoNDgwLDQxMSkiPjxzd2l0Y2g+PGZvcmVpZ25PYmplY3QgcG9pbnRlci1ldmVu
dHM9ImFsbCIgd2lkdGg9IjExNiIgaGVpZ2h0PSIxNSIgcmVxdWlyZWRGZWF0dXJlcz0iaHR0cDov
L3d3dy53My5vcmcvVFIvU1ZHMTEvZmVhdHVyZSNFeHRlbnNpYmlsaXR5Ij48ZGl2IHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2Nr
OyBmb250LXNpemU6IDEycHg7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7IGNvbG9yOiByZ2IoMCwg
MCwgMCk7IGxpbmUtaGVpZ2h0OiAxLjI2OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB3aWR0aDogMTE2
cHg7IHdoaXRlLXNwYWNlOiBub3JtYWw7IHRleHQtYWxpZ246IGNlbnRlcjsiPlRlc3RSdW5uZXJN
YW5hZ2VyPC9kaXY+PC9mb3JlaWduT2JqZWN0Pjx0ZXh0IHg9IjU4IiB5PSIxNCIgZmlsbD0iIzAw
MDAwMCIgdGV4dC1hbmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMnB4IiBmb250LWZhbWlseT0i
SGVsdmV0aWNhIj5bTm90IHN1cHBvcnRlZCBieSB2aWV3ZXJdPC90ZXh0Pjwvc3dpdGNoPjwvZz48
cGF0aCBkPSJNIDM5OCAyODggTCA1MzMgMzg0IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAwMDAi
IHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48cGF0aCBkPSJN
IDUzNyAzODcgTCA1MjkgMzg2IEwgNTMzIDM4NCBMIDUzMyAzODAgWiIgZmlsbD0iIzAwMDAwMCIg
c3Ryb2tlPSIjMDAwMDAwIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHBvaW50ZXItZXZlbnRzPSJu
b25lIi8+PHJlY3QgeD0iMTk4IiB5PSIzODgiIHdpZHRoPSIxMjAiIGhlaWdodD0iNjAiIGZpbGwt
b3BhY2l0eT0iMC41IiBmaWxsPSIjZTZkMGRlIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS1vcGFj
aXR5PSIwLjUiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUo
MjAwLDQxMSkiPjxzd2l0Y2g+PGZvcmVpZ25PYmplY3QgcG9pbnRlci1ldmVudHM9ImFsbCIgd2lk
dGg9IjExNiIgaGVpZ2h0PSIxNSIgcmVxdWlyZWRGZWF0dXJlcz0iaHR0cDovL3d3dy53My5vcmcv
VFIvU1ZHMTEvZmVhdHVyZSNFeHRlbnNpYmlsaXR5Ij48ZGl2IHhtbG5zPSJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyBmb250LXNpemU6
IDEycHg7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGxpbmUt
aGVpZ2h0OiAxLjI2OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB3aWR0aDogMTE2cHg7IHdoaXRlLXNw
YWNlOiBub3JtYWw7IHRleHQtYWxpZ246IGNlbnRlcjsiPlRlc3RSdW5uZXJNYW5hZ2VyPC9kaXY+
PC9mb3JlaWduT2JqZWN0Pjx0ZXh0IHg9IjU4IiB5PSIxNCIgZmlsbD0iIzAwMDAwMCIgdGV4dC1h
bmNob3I9Im1pZGRsZSIgZm9udC1zaXplPSIxMnB4IiBmb250LWZhbWlseT0iSGVsdmV0aWNhIj5b
Tm90IHN1cHBvcnRlZCBieSB2aWV3ZXJdPC90ZXh0Pjwvc3dpdGNoPjwvZz48cGF0aCBkPSJNIDM5
OCAyODggTCAyNjMgMzg0IiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS1taXRl
cmxpbWl0PSIxMCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48cGF0aCBkPSJNIDI1OSAzODcgTCAy
NjMgMzgwIEwgMjYzIDM4NCBMIDI2NyAzODYgWiIgZmlsbD0iIzAwMDAwMCIgc3Ryb2tlPSIjMDAw
MDAwIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PHJlY3Qg
eD0iNTc1IiB5PSI3NDgiIHdpZHRoPSIxMTAiIGhlaWdodD0iNDAiIGZpbGw9Im5vbmUiIHN0cm9r
ZT0ibm9uZSIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48ZyBmaWxsPSIjMDAwMDAwIiBmb250LWZh
bWlseT0iSGVsdmV0aWNhIiB0ZXh0LWFuY2hvcj0ibWlkZGxlIiBmb250LXNpemU9IjEycHgiPjx0
ZXh0IHg9IjYzMCIgeT0iNzU4Ij5Ccm93c2VyIGNvbnRyb2w8L3RleHQ+PHRleHQgeD0iNjMwIiB5
PSI3NzIiPnByb3RvY29sPC90ZXh0Pjx0ZXh0IHg9IjYzMCIgeT0iNzg2Ij4oZS5nLiBXZWJEcml2
ZXIpPC90ZXh0PjwvZz48cmVjdCB4PSIyNTgiIHk9IjcwOCIgd2lkdGg9IjgwIiBoZWlnaHQ9IjQw
IiBmaWxsPSJub25lIiBzdHJva2U9Im5vbmUiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PGcgZmls
bD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9IkhlbHZldGljYSIgdGV4dC1hbmNob3I9Im1pZGRsZSIg
Zm9udC1zaXplPSIxMnB4Ij48dGV4dCB4PSIyOTgiIHk9IjczMiI+SFRUUDwvdGV4dD48L2c+PHJl
Y3QgeD0iMTExIiB5PSI3MjgiIHdpZHRoPSI4MCIgaGVpZ2h0PSI0MCIgZmlsbD0ibm9uZSIgc3Ry
b2tlPSJub25lIiBwb2ludGVyLWV2ZW50cz0ibm9uZSIvPjxnIGZpbGw9IiMwMDAwMDAiIGZvbnQt
ZmFtaWx5PSJIZWx2ZXRpY2EiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZvbnQtc2l6ZT0iMTJweCI+
PHRleHQgeD0iMTUxIiB5PSI3NTIiPndlYnNvY2tldHM8L3RleHQ+PC9nPjxyZWN0IHg9IjY1OCIg
eT0iMjI4IiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjYwIiBmaWxsPSIjZTZkMGRlIiBzdHJva2U9IiMw
MDAwMDAiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNjYw
LDI1MSkiPjxzd2l0Y2g+PGZvcmVpZ25PYmplY3QgcG9pbnRlci1ldmVudHM9ImFsbCIgd2lkdGg9
IjExNiIgaGVpZ2h0PSIxNSIgcmVxdWlyZWRGZWF0dXJlcz0iaHR0cDovL3d3dy53My5vcmcvVFIv
U1ZHMTEvZmVhdHVyZSNFeHRlbnNpYmlsaXR5Ij48ZGl2IHhtbG5zPSJodHRwOi8vd3d3LnczLm9y
Zy8xOTk5L3hodG1sIiBzdHlsZT0iZGlzcGxheTogaW5saW5lLWJsb2NrOyBmb250LXNpemU6IDEy
cHg7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2E7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGxpbmUtaGVp
Z2h0OiAxLjI2OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB3aWR0aDogMTE2cHg7IHdoaXRlLXNwYWNl
OiBub3JtYWw7IHRleHQtYWxpZ246IGNlbnRlcjsiPlRlc3RzIFF1ZXVlPC9kaXY+PC9mb3JlaWdu
T2JqZWN0Pjx0ZXh0IHg9IjU4IiB5PSIxNCIgZmlsbD0iIzAwMDAwMCIgdGV4dC1hbmNob3I9Im1p
ZGRsZSIgZm9udC1zaXplPSIxMnB4IiBmb250LWZhbWlseT0iSGVsdmV0aWNhIj5bTm90IHN1cHBv
cnRlZCBieSB2aWV3ZXJdPC90ZXh0Pjwvc3dpdGNoPjwvZz48cGF0aCBkPSJNIDcxOCAxMDggTCA3
MTggMjIyIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAwMDAiIHN0cm9rZS1taXRlcmxpbWl0PSIx
MCIgcG9pbnRlci1ldmVudHM9Im5vbmUiLz48cGF0aCBkPSJNIDcxOCAyMjcgTCA3MTUgMjIwIEwg
NzE4IDIyMiBMIDcyMiAyMjAgWiIgZmlsbD0iIzAwMDAwMCIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJv
a2UtbWl0ZXJsaW1pdD0iMTAiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PHBhdGggZD0iTSA0Mjgg
OTcwIEwgNDI4IDk3MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2UtbWl0ZXJs
aW1pdD0iMTAiIHBvaW50ZXItZXZlbnRzPSJub25lIi8+PC9nPjwvc3ZnPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvZG9jcy9jb25mLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9jb25mLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1OGYzMTNlOTQ2
YWE5M2Y5YTY2YTlmMzIyYzY0NjYzOTBkZWExM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2Nz
L2NvbmYucHkKQEAgLTAsMCArMSwyNjcgQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCisjCisj
IHdwdHJ1bm5lciBkb2N1bWVudGF0aW9uIGJ1aWxkIGNvbmZpZ3VyYXRpb24gZmlsZSwgY3JlYXRl
ZCBieQorIyBzcGhpbngtcXVpY2tzdGFydCBvbiBNb24gTWF5IDE5IDE4OjE0OjIwIDIwMTQuCisj
CisjIFRoaXMgZmlsZSBpcyBleGVjZmlsZSgpZCB3aXRoIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBz
ZXQgdG8gaXRzCisjIGNvbnRhaW5pbmcgZGlyLgorIworIyBOb3RlIHRoYXQgbm90IGFsbCBwb3Nz
aWJsZSBjb25maWd1cmF0aW9uIHZhbHVlcyBhcmUgcHJlc2VudCBpbiB0aGlzCisjIGF1dG9nZW5l
cmF0ZWQgZmlsZS4KKyMKKyMgQWxsIGNvbmZpZ3VyYXRpb24gdmFsdWVzIGhhdmUgYSBkZWZhdWx0
OyB2YWx1ZXMgdGhhdCBhcmUgY29tbWVudGVkIG91dAorIyBzZXJ2ZSB0byBzaG93IHRoZSBkZWZh
dWx0LgorCitpbXBvcnQgc3lzCitpbXBvcnQgb3MKKworIyBJZiBleHRlbnNpb25zIChvciBtb2R1
bGVzIHRvIGRvY3VtZW50IHdpdGggYXV0b2RvYykgYXJlIGluIGFub3RoZXIgZGlyZWN0b3J5LAor
IyBhZGQgdGhlc2UgZGlyZWN0b3JpZXMgdG8gc3lzLnBhdGggaGVyZS4gSWYgdGhlIGRpcmVjdG9y
eSBpcyByZWxhdGl2ZSB0byB0aGUKKyMgZG9jdW1lbnRhdGlvbiByb290LCB1c2Ugb3MucGF0aC5h
YnNwYXRoIHRvIG1ha2UgaXQgYWJzb2x1dGUsIGxpa2Ugc2hvd24gaGVyZS4KKyNzeXMucGF0aC5p
bnNlcnQoMCwgb3MucGF0aC5hYnNwYXRoKCcuJykpCisKKyMgLS0gR2VuZXJhbCBjb25maWd1cmF0
aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisj
IElmIHlvdXIgZG9jdW1lbnRhdGlvbiBuZWVkcyBhIG1pbmltYWwgU3BoaW54IHZlcnNpb24sIHN0
YXRlIGl0IGhlcmUuCisjbmVlZHNfc3BoaW54ID0gJzEuMCcKKworIyBBZGQgYW55IFNwaGlueCBl
eHRlbnNpb24gbW9kdWxlIG5hbWVzIGhlcmUsIGFzIHN0cmluZ3MuIFRoZXkgY2FuIGJlCisjIGV4
dGVuc2lvbnMgY29taW5nIHdpdGggU3BoaW54IChuYW1lZCAnc3BoaW54LmV4dC4qJykgb3IgeW91
ciBjdXN0b20KKyMgb25lcy4KK2V4dGVuc2lvbnMgPSBbCisgICAgJ3NwaGlueC5leHQuYXV0b2Rv
YycsCisgICAgJ3NwaGlueC5leHQuaW50ZXJzcGhpbngnLAorICAgICdzcGhpbnguZXh0LnZpZXdj
b2RlJywKK10KKworIyBBZGQgYW55IHBhdGhzIHRoYXQgY29udGFpbiB0ZW1wbGF0ZXMgaGVyZSwg
cmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuCit0ZW1wbGF0ZXNfcGF0aCA9IFsnX3RlbXBsYXRl
cyddCisKKyMgVGhlIHN1ZmZpeCBvZiBzb3VyY2UgZmlsZW5hbWVzLgorc291cmNlX3N1ZmZpeCA9
ICcucnN0JworCisjIFRoZSBlbmNvZGluZyBvZiBzb3VyY2UgZmlsZXMuCisjc291cmNlX2VuY29k
aW5nID0gJ3V0Zi04LXNpZycKKworIyBUaGUgbWFzdGVyIHRvY3RyZWUgZG9jdW1lbnQuCittYXN0
ZXJfZG9jID0gJ2luZGV4JworCisjIEdlbmVyYWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHByb2pl
Y3QuCitwcm9qZWN0ID0gdSd3cHRydW5uZXInCitjb3B5cmlnaHQgPSB1JycKKworIyBUaGUgdmVy
c2lvbiBpbmZvIGZvciB0aGUgcHJvamVjdCB5b3UncmUgZG9jdW1lbnRpbmcsIGFjdHMgYXMgcmVw
bGFjZW1lbnQgZm9yCisjIHx2ZXJzaW9ufCBhbmQgfHJlbGVhc2V8LCBhbHNvIHVzZWQgaW4gdmFy
aW91cyBvdGhlciBwbGFjZXMgdGhyb3VnaG91dCB0aGUKKyMgYnVpbHQgZG9jdW1lbnRzLgorIwor
IyBUaGUgc2hvcnQgWC5ZIHZlcnNpb24uCit2ZXJzaW9uID0gJzAuMycKKyMgVGhlIGZ1bGwgdmVy
c2lvbiwgaW5jbHVkaW5nIGFscGhhL2JldGEvcmMgdGFncy4KK3JlbGVhc2UgPSAnMC4zJworCisj
IFRoZSBsYW5ndWFnZSBmb3IgY29udGVudCBhdXRvZ2VuZXJhdGVkIGJ5IFNwaGlueC4gUmVmZXIg
dG8gZG9jdW1lbnRhdGlvbgorIyBmb3IgYSBsaXN0IG9mIHN1cHBvcnRlZCBsYW5ndWFnZXMuCisj
bGFuZ3VhZ2UgPSBOb25lCisKKyMgVGhlcmUgYXJlIHR3byBvcHRpb25zIGZvciByZXBsYWNpbmcg
fHRvZGF5fDogZWl0aGVyLCB5b3Ugc2V0IHRvZGF5IHRvIHNvbWUKKyMgbm9uLWZhbHNlIHZhbHVl
LCB0aGVuIGl0IGlzIHVzZWQ6CisjdG9kYXkgPSAnJworIyBFbHNlLCB0b2RheV9mbXQgaXMgdXNl
ZCBhcyB0aGUgZm9ybWF0IGZvciBhIHN0cmZ0aW1lIGNhbGwuCisjdG9kYXlfZm10ID0gJyVCICVk
LCAlWScKKworIyBMaXN0IG9mIHBhdHRlcm5zLCByZWxhdGl2ZSB0byBzb3VyY2UgZGlyZWN0b3J5
LCB0aGF0IG1hdGNoIGZpbGVzIGFuZAorIyBkaXJlY3RvcmllcyB0byBpZ25vcmUgd2hlbiBsb29r
aW5nIGZvciBzb3VyY2UgZmlsZXMuCitleGNsdWRlX3BhdHRlcm5zID0gWydfYnVpbGQnXQorCisj
IFRoZSByZVNUIGRlZmF1bHQgcm9sZSAodXNlZCBmb3IgdGhpcyBtYXJrdXA6IGB0ZXh0YCkgdG8g
dXNlIGZvciBhbGwKKyMgZG9jdW1lbnRzLgorI2RlZmF1bHRfcm9sZSA9IE5vbmUKKworIyBJZiB0
cnVlLCAnKCknIHdpbGwgYmUgYXBwZW5kZWQgdG8gOmZ1bmM6IGV0Yy4gY3Jvc3MtcmVmZXJlbmNl
IHRleHQuCisjYWRkX2Z1bmN0aW9uX3BhcmVudGhlc2VzID0gVHJ1ZQorCisjIElmIHRydWUsIHRo
ZSBjdXJyZW50IG1vZHVsZSBuYW1lIHdpbGwgYmUgcHJlcGVuZGVkIHRvIGFsbCBkZXNjcmlwdGlv
bgorIyB1bml0IHRpdGxlcyAoc3VjaCBhcyAuLiBmdW5jdGlvbjo6KS4KKyNhZGRfbW9kdWxlX25h
bWVzID0gVHJ1ZQorCisjIElmIHRydWUsIHNlY3Rpb25hdXRob3IgYW5kIG1vZHVsZWF1dGhvciBk
aXJlY3RpdmVzIHdpbGwgYmUgc2hvd24gaW4gdGhlCisjIG91dHB1dC4gVGhleSBhcmUgaWdub3Jl
ZCBieSBkZWZhdWx0LgorI3Nob3dfYXV0aG9ycyA9IEZhbHNlCisKKyMgVGhlIG5hbWUgb2YgdGhl
IFB5Z21lbnRzIChzeW50YXggaGlnaGxpZ2h0aW5nKSBzdHlsZSB0byB1c2UuCitweWdtZW50c19z
dHlsZSA9ICdzcGhpbngnCisKKyMgQSBsaXN0IG9mIGlnbm9yZWQgcHJlZml4ZXMgZm9yIG1vZHVs
ZSBpbmRleCBzb3J0aW5nLgorI21vZGluZGV4X2NvbW1vbl9wcmVmaXggPSBbXQorCisjIElmIHRy
dWUsIGtlZXAgd2FybmluZ3MgYXMgInN5c3RlbSBtZXNzYWdlIiBwYXJhZ3JhcGhzIGluIHRoZSBi
dWlsdCBkb2N1bWVudHMuCisja2VlcF93YXJuaW5ncyA9IEZhbHNlCisKKworIyAtLSBPcHRpb25z
IGZvciBIVE1MIG91dHB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCisKKyMgVGhlIHRoZW1lIHRvIHVzZSBmb3IgSFRNTCBhbmQgSFRNTCBIZWxwIHBhZ2Vz
LiAgU2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvcgorIyBhIGxpc3Qgb2YgYnVpbHRpbiB0aGVtZXMu
CitodG1sX3RoZW1lID0gJ2RlZmF1bHQnCisKKyMgVGhlbWUgb3B0aW9ucyBhcmUgdGhlbWUtc3Bl
Y2lmaWMgYW5kIGN1c3RvbWl6ZSB0aGUgbG9vayBhbmQgZmVlbCBvZiBhIHRoZW1lCisjIGZ1cnRo
ZXIuICBGb3IgYSBsaXN0IG9mIG9wdGlvbnMgYXZhaWxhYmxlIGZvciBlYWNoIHRoZW1lLCBzZWUg
dGhlCisjIGRvY3VtZW50YXRpb24uCisjaHRtbF90aGVtZV9vcHRpb25zID0ge30KKworIyBBZGQg
YW55IHBhdGhzIHRoYXQgY29udGFpbiBjdXN0b20gdGhlbWVzIGhlcmUsIHJlbGF0aXZlIHRvIHRo
aXMgZGlyZWN0b3J5LgorI2h0bWxfdGhlbWVfcGF0aCA9IFtdCisKKyMgVGhlIG5hbWUgZm9yIHRo
aXMgc2V0IG9mIFNwaGlueCBkb2N1bWVudHMuICBJZiBOb25lLCBpdCBkZWZhdWx0cyB0bworIyAi
PHByb2plY3Q+IHY8cmVsZWFzZT4gZG9jdW1lbnRhdGlvbiIuCisjaHRtbF90aXRsZSA9IE5vbmUK
KworIyBBIHNob3J0ZXIgdGl0bGUgZm9yIHRoZSBuYXZpZ2F0aW9uIGJhci4gIERlZmF1bHQgaXMg
dGhlIHNhbWUgYXMgaHRtbF90aXRsZS4KKyNodG1sX3Nob3J0X3RpdGxlID0gTm9uZQorCisjIFRo
ZSBuYW1lIG9mIGFuIGltYWdlIGZpbGUgKHJlbGF0aXZlIHRvIHRoaXMgZGlyZWN0b3J5KSB0byBw
bGFjZSBhdCB0aGUgdG9wCisjIG9mIHRoZSBzaWRlYmFyLgorI2h0bWxfbG9nbyA9IE5vbmUKKwor
IyBUaGUgbmFtZSBvZiBhbiBpbWFnZSBmaWxlICh3aXRoaW4gdGhlIHN0YXRpYyBwYXRoKSB0byB1
c2UgYXMgZmF2aWNvbiBvZiB0aGUKKyMgZG9jcy4gIFRoaXMgZmlsZSBzaG91bGQgYmUgYSBXaW5k
b3dzIGljb24gZmlsZSAoLmljbykgYmVpbmcgMTZ4MTYgb3IgMzJ4MzIKKyMgcGl4ZWxzIGxhcmdl
LgorI2h0bWxfZmF2aWNvbiA9IE5vbmUKKworIyBBZGQgYW55IHBhdGhzIHRoYXQgY29udGFpbiBj
dXN0b20gc3RhdGljIGZpbGVzIChzdWNoIGFzIHN0eWxlIHNoZWV0cykgaGVyZSwKKyMgcmVsYXRp
dmUgdG8gdGhpcyBkaXJlY3RvcnkuIFRoZXkgYXJlIGNvcGllZCBhZnRlciB0aGUgYnVpbHRpbiBz
dGF0aWMgZmlsZXMsCisjIHNvIGEgZmlsZSBuYW1lZCAiZGVmYXVsdC5jc3MiIHdpbGwgb3Zlcndy
aXRlIHRoZSBidWlsdGluICJkZWZhdWx0LmNzcyIuCitodG1sX3N0YXRpY19wYXRoID0gWydfc3Rh
dGljJ10KKworIyBBZGQgYW55IGV4dHJhIHBhdGhzIHRoYXQgY29udGFpbiBjdXN0b20gZmlsZXMg
KHN1Y2ggYXMgcm9ib3RzLnR4dCBvcgorIyAuaHRhY2Nlc3MpIGhlcmUsIHJlbGF0aXZlIHRvIHRo
aXMgZGlyZWN0b3J5LiBUaGVzZSBmaWxlcyBhcmUgY29waWVkCisjIGRpcmVjdGx5IHRvIHRoZSBy
b290IG9mIHRoZSBkb2N1bWVudGF0aW9uLgorI2h0bWxfZXh0cmFfcGF0aCA9IFtdCisKKyMgSWYg
bm90ICcnLCBhICdMYXN0IHVwZGF0ZWQgb246JyB0aW1lc3RhbXAgaXMgaW5zZXJ0ZWQgYXQgZXZl
cnkgcGFnZSBib3R0b20sCisjIHVzaW5nIHRoZSBnaXZlbiBzdHJmdGltZSBmb3JtYXQuCisjaHRt
bF9sYXN0X3VwZGF0ZWRfZm10ID0gJyViICVkLCAlWScKKworIyBJZiB0cnVlLCBTbWFydHlQYW50
cyB3aWxsIGJlIHVzZWQgdG8gY29udmVydCBxdW90ZXMgYW5kIGRhc2hlcyB0bworIyB0eXBvZ3Jh
cGhpY2FsbHkgY29ycmVjdCBlbnRpdGllcy4KKyNodG1sX3VzZV9zbWFydHlwYW50cyA9IFRydWUK
KworIyBDdXN0b20gc2lkZWJhciB0ZW1wbGF0ZXMsIG1hcHMgZG9jdW1lbnQgbmFtZXMgdG8gdGVt
cGxhdGUgbmFtZXMuCisjaHRtbF9zaWRlYmFycyA9IHt9CisKKyMgQWRkaXRpb25hbCB0ZW1wbGF0
ZXMgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQgdG8gcGFnZXMsIG1hcHMgcGFnZSBuYW1lcyB0bwor
IyB0ZW1wbGF0ZSBuYW1lcy4KKyNodG1sX2FkZGl0aW9uYWxfcGFnZXMgPSB7fQorCisjIElmIGZh
bHNlLCBubyBtb2R1bGUgaW5kZXggaXMgZ2VuZXJhdGVkLgorI2h0bWxfZG9tYWluX2luZGljZXMg
PSBUcnVlCisKKyMgSWYgZmFsc2UsIG5vIGluZGV4IGlzIGdlbmVyYXRlZC4KKyNodG1sX3VzZV9p
bmRleCA9IFRydWUKKworIyBJZiB0cnVlLCB0aGUgaW5kZXggaXMgc3BsaXQgaW50byBpbmRpdmlk
dWFsIHBhZ2VzIGZvciBlYWNoIGxldHRlci4KKyNodG1sX3NwbGl0X2luZGV4ID0gRmFsc2UKKwor
IyBJZiB0cnVlLCBsaW5rcyB0byB0aGUgcmVTVCBzb3VyY2VzIGFyZSBhZGRlZCB0byB0aGUgcGFn
ZXMuCisjaHRtbF9zaG93X3NvdXJjZWxpbmsgPSBUcnVlCisKKyMgSWYgdHJ1ZSwgIkNyZWF0ZWQg
dXNpbmcgU3BoaW54IiBpcyBzaG93biBpbiB0aGUgSFRNTCBmb290ZXIuIERlZmF1bHQgaXMgVHJ1
ZS4KKyNodG1sX3Nob3dfc3BoaW54ID0gVHJ1ZQorCisjIElmIHRydWUsICIoQykgQ29weXJpZ2h0
IC4uLiIgaXMgc2hvd24gaW4gdGhlIEhUTUwgZm9vdGVyLiBEZWZhdWx0IGlzIFRydWUuCisjaHRt
bF9zaG93X2NvcHlyaWdodCA9IFRydWUKKworIyBJZiB0cnVlLCBhbiBPcGVuU2VhcmNoIGRlc2Ny
aXB0aW9uIGZpbGUgd2lsbCBiZSBvdXRwdXQsIGFuZCBhbGwgcGFnZXMgd2lsbAorIyBjb250YWlu
IGEgPGxpbms+IHRhZyByZWZlcnJpbmcgdG8gaXQuICBUaGUgdmFsdWUgb2YgdGhpcyBvcHRpb24g
bXVzdCBiZSB0aGUKKyMgYmFzZSBVUkwgZnJvbSB3aGljaCB0aGUgZmluaXNoZWQgSFRNTCBpcyBz
ZXJ2ZWQuCisjaHRtbF91c2Vfb3BlbnNlYXJjaCA9ICcnCisKKyMgVGhpcyBpcyB0aGUgZmlsZSBu
YW1lIHN1ZmZpeCBmb3IgSFRNTCBmaWxlcyAoZS5nLiAiLnhodG1sIikuCisjaHRtbF9maWxlX3N1
ZmZpeCA9IE5vbmUKKworIyBPdXRwdXQgZmlsZSBiYXNlIG5hbWUgZm9yIEhUTUwgaGVscCBidWls
ZGVyLgoraHRtbGhlbHBfYmFzZW5hbWUgPSAnd3B0cnVubmVyZG9jJworCisKKyMgLS0gT3B0aW9u
cyBmb3IgTGFUZVggb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorCitsYXRleF9lbGVtZW50cyA9IHsKKyAgICAjIFRoZSBwYXBlciBzaXplICgnbGV0
dGVycGFwZXInIG9yICdhNHBhcGVyJykuCisgICAgIydwYXBlcnNpemUnOiAnbGV0dGVycGFwZXIn
LAorCisgICAgIyBUaGUgZm9udCBzaXplICgnMTBwdCcsICcxMXB0JyBvciAnMTJwdCcpLgorICAg
ICMncG9pbnRzaXplJzogJzEwcHQnLAorCisgICAgIyBBZGRpdGlvbmFsIHN0dWZmIGZvciB0aGUg
TGFUZVggcHJlYW1ibGUuCisgICAgIydwcmVhbWJsZSc6ICcnLAorfQorCisjIEdyb3VwaW5nIHRo
ZSBkb2N1bWVudCB0cmVlIGludG8gTGFUZVggZmlsZXMuIExpc3Qgb2YgdHVwbGVzCisjIChzb3Vy
Y2Ugc3RhcnQgZmlsZSwgdGFyZ2V0IG5hbWUsIHRpdGxlLAorIyAgYXV0aG9yLCBkb2N1bWVudGNs
YXNzIFtob3d0bywgbWFudWFsLCBvciBvd24gY2xhc3NdKS4KK2xhdGV4X2RvY3VtZW50cyA9IFsK
KyAgICAoJ2luZGV4JywgJ3dwdHJ1bm5lci50ZXgnLCB1J3dwdHJ1bm5lciBEb2N1bWVudGF0aW9u
JywKKyAgICAgdSdKYW1lcyBHcmFoYW0nLCAnbWFudWFsJyksCitdCisKKyMgVGhlIG5hbWUgb2Yg
YW4gaW1hZ2UgZmlsZSAocmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkpIHRvIHBsYWNlIGF0IHRo
ZSB0b3Agb2YKKyMgdGhlIHRpdGxlIHBhZ2UuCisjbGF0ZXhfbG9nbyA9IE5vbmUKKworIyBGb3Ig
Im1hbnVhbCIgZG9jdW1lbnRzLCBpZiB0aGlzIGlzIHRydWUsIHRoZW4gdG9wbGV2ZWwgaGVhZGlu
Z3MgYXJlIHBhcnRzLAorIyBub3QgY2hhcHRlcnMuCisjbGF0ZXhfdXNlX3BhcnRzID0gRmFsc2UK
KworIyBJZiB0cnVlLCBzaG93IHBhZ2UgcmVmZXJlbmNlcyBhZnRlciBpbnRlcm5hbCBsaW5rcy4K
KyNsYXRleF9zaG93X3BhZ2VyZWZzID0gRmFsc2UKKworIyBJZiB0cnVlLCBzaG93IFVSTCBhZGRy
ZXNzZXMgYWZ0ZXIgZXh0ZXJuYWwgbGlua3MuCisjbGF0ZXhfc2hvd191cmxzID0gRmFsc2UKKwor
IyBEb2N1bWVudHMgdG8gYXBwZW5kIGFzIGFuIGFwcGVuZGl4IHRvIGFsbCBtYW51YWxzLgorI2xh
dGV4X2FwcGVuZGljZXMgPSBbXQorCisjIElmIGZhbHNlLCBubyBtb2R1bGUgaW5kZXggaXMgZ2Vu
ZXJhdGVkLgorI2xhdGV4X2RvbWFpbl9pbmRpY2VzID0gVHJ1ZQorCisKKyMgLS0gT3B0aW9ucyBm
b3IgbWFudWFsIHBhZ2Ugb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorCisjIE9uZSBlbnRyeSBwZXIgbWFudWFsIHBhZ2UuIExpc3Qgb2YgdHVwbGVzCisjIChz
b3VyY2Ugc3RhcnQgZmlsZSwgbmFtZSwgZGVzY3JpcHRpb24sIGF1dGhvcnMsIG1hbnVhbCBzZWN0
aW9uKS4KK21hbl9wYWdlcyA9IFsKKyAgICAoJ2luZGV4JywgJ3dwdHJ1bm5lcicsIHUnd3B0cnVu
bmVyIERvY3VtZW50YXRpb24nLAorICAgICBbdSdKYW1lcyBHcmFoYW0nXSwgMSkKK10KKworIyBJ
ZiB0cnVlLCBzaG93IFVSTCBhZGRyZXNzZXMgYWZ0ZXIgZXh0ZXJuYWwgbGlua3MuCisjbWFuX3No
b3dfdXJscyA9IEZhbHNlCisKKworIyAtLSBPcHRpb25zIGZvciBUZXhpbmZvIG91dHB1dCAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyMgR3JvdXBpbmcgdGhl
IGRvY3VtZW50IHRyZWUgaW50byBUZXhpbmZvIGZpbGVzLiBMaXN0IG9mIHR1cGxlcworIyAoc291
cmNlIHN0YXJ0IGZpbGUsIHRhcmdldCBuYW1lLCB0aXRsZSwgYXV0aG9yLAorIyAgZGlyIG1lbnUg
ZW50cnksIGRlc2NyaXB0aW9uLCBjYXRlZ29yeSkKK3RleGluZm9fZG9jdW1lbnRzID0gWworICAg
ICgnaW5kZXgnLCAnd3B0cnVubmVyJywgdSd3cHRydW5uZXIgRG9jdW1lbnRhdGlvbicsCisgICAg
IHUnSmFtZXMgR3JhaGFtJywgJ3dwdHJ1bm5lcicsICdPbmUgbGluZSBkZXNjcmlwdGlvbiBvZiBw
cm9qZWN0LicsCisgICAgICdNaXNjZWxsYW5lb3VzJyksCitdCisKKyMgRG9jdW1lbnRzIHRvIGFw
cGVuZCBhcyBhbiBhcHBlbmRpeCB0byBhbGwgbWFudWFscy4KKyN0ZXhpbmZvX2FwcGVuZGljZXMg
PSBbXQorCisjIElmIGZhbHNlLCBubyBtb2R1bGUgaW5kZXggaXMgZ2VuZXJhdGVkLgorI3RleGlu
Zm9fZG9tYWluX2luZGljZXMgPSBUcnVlCisKKyMgSG93IHRvIGRpc3BsYXkgVVJMIGFkZHJlc3Nl
czogJ2Zvb3Rub3RlJywgJ25vJywgb3IgJ2lubGluZScuCisjdGV4aW5mb19zaG93X3VybHMgPSAn
Zm9vdG5vdGUnCisKKyMgSWYgdHJ1ZSwgZG8gbm90IGdlbmVyYXRlIGEgQGRldGFpbG1lbnUgaW4g
dGhlICJUb3AiIG5vZGUncyBtZW51LgorI3RleGluZm9fbm9fZGV0YWlsbWVudSA9IEZhbHNlCisK
KworIyBFeGFtcGxlIGNvbmZpZ3VyYXRpb24gZm9yIGludGVyc3BoaW54OiByZWZlciB0byB0aGUg
UHl0aG9uIHN0YW5kYXJkIGxpYnJhcnkuCitpbnRlcnNwaGlueF9tYXBwaW5nID0geydweXRob24n
OiAoJ2h0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvJywgTm9uZSksCisgICAgICAgICAgICAgICAgICAg
ICAgICdtb3psb2cnOiAoJ2h0dHBzOi8vZmlyZWZveC1zb3VyY2UtZG9jcy5tb3ppbGxhLm9yZy8n
LCBOb25lKX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvZGVzaWduLnJzdCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvZGVzaWdu
LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iZjEwOGEwMDg3ZGEwYzZlYzEyMzE2OWM3MTU4NmY2Y2UzYmZiYTcy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9kZXNpZ24ucnN0CkBAIC0wLDAgKzEsMTA2IEBA
Cit3cHRydW5uZXIgRGVzaWduCis9PT09PT09PT09PT09PT09CisKK1RoZSBkZXNpZ24gb2Ygd3B0
cnVubmVyIGlzIGludGVuZGVkIHRvIG1lZXQgdGhlIGZvbGxvd2luZworcmVxdWlyZW1lbnRzOgor
CisgKiBQb3NzaWJsZSB0byBydW4gdGVzdHMgZnJvbSBXM0Mgd2ViLXBsYXRmb3JtLXRlc3RzLgor
CisgKiBUZXN0cyBzaG91bGQgYmUgcnVuIGFzIGZhc3QgYXMgcG9zc2libGUuIEluIHBhcnRpY3Vs
YXIgaXQgc2hvdWxkCisgICBub3QgYmUgbmVjZXNzYXJ5IHRvIHJlc3RhcnQgdGhlIGJyb3dzZXIg
YmV0d2VlbiB0ZXN0cywgb3Igc2ltaWxhci4KKworICogQXMgZmFyIGFzIHBvc3NpYmxlLCB0aGUg
dGVzdHMgc2hvdWxkIHJ1biBpbiBhICJub3JtYWwiIGJyb3dzZXIgYW5kCisgICBicm93c2luZyBj
b250ZXh0LiBJbiBwYXJ0aWN1bGFyIG1hbnkgdGVzdHMgYXNzdW1lIHRoYXQgdGhleSBhcmUKKyAg
IHJ1bm5pbmcgaW4gYSB0b3AtbGV2ZWwgYnJvd3NpbmcgY29udGV4dCwgc28gd2UgbXVzdCBhdm9p
ZCB0aGUgdXNlCisgICBvZiBhbiBgYGlmcmFtZWBgIHRlc3QgY29udGFpbmVyLgorCisgKiBJdCBt
dXN0IGJlIHBvc3NpYmxlIHRvIGRlYWwgd2l0aCBhbGwga2luZHMgb2YgYmVoYXZpb3VyIG9mIHRo
ZQorICAgYnJvd3NlciBydW5kZXIgdGVzdCwgZm9yIGV4YW1wbGUsIGNyYXNoaW5nLCBoYW5naW5n
LCBldGMuCisKKyAqIEl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBhZGQgc3VwcG9ydCBmb3IgbmV3
IHBsYXRmb3JtcyBhbmQgYnJvd3NlcnMKKyAgIHdpdGggbWluaW1hbCBjb2RlIGNoYW5nZXMuCisK
KyAqIEl0IG11c3QgYmUgcG9zc2libGUgdG8gcnVuIHRlc3RzIGluIHBhcmFsbGVsIHRvIGZ1cnRo
ZXIgaW1wcm92ZQorICAgcGVyZm9ybWFuY2UuCisKKyAqIFRlc3Qgb3V0cHV0IG11c3QgYmUgaW4g
YSBtYWNoaW5lIHJlYWRhYmxlIGZvcm0uCisKK0FyY2hpdGVjdHVyZQorLS0tLS0tLS0tLS0tCisK
K0luIG9yZGVyIHRvIG1lZXQgdGhlIGFib3ZlIHJlcXVpcmVtZW50cywgd3B0cnVubmVyIGlzIGRl
c2lnbmVkIHRvCitwdXNoIGFzIG11Y2ggb2YgdGhlIHRlc3Qgc2NoZWR1bGluZyBhcyBwb3NzaWJs
ZSBpbnRvIHRoZSBoYXJuZXNzLiBUaGlzCithbGxvd3MgdGhlIGhhcm5lc3MgdG8gbW9uaXRvciB0
aGUgc3RhdGUgb2YgdGhlIGJyb3dzZXIgYW5kIHBlcmZvcm0KK2FwcHJvcHJpYXRlIGFjdGlvbiBp
ZiBpdCBnZXRzIGludG8gYW4gdW53YW50ZWQgc3RhdGUgZS5nLiBraWxsIHRoZQorYnJvd3NlciBp
ZiBpdCBhcHBlYXJzIHRvIGJlIGh1bmcuCisKK1RoZSBoYXJuZXNzIHdpbGwgdHlwaWNhbGx5IGNv
bW11bmljYXRlIHdpdGggdGhlIGJyb3dzZXIgdmlhIHNvbWUgcmVtb3RlCitjb250cm9sIHByb3Rv
Y29sIHN1Y2ggYXMgV2ViRHJpdmVyLiBIb3dldmVyIGZvciBicm93c2VycyB3aGVyZSBubyBzdWNo
Citwcm90b2NvbCBpcyBzdXBwb3J0ZWQsIG90aGVyIGltcGxlbWVudGF0aW9uIHN0cmF0ZWdpZXMg
YXJlIHBvc3NpYmxlLAordHlwaWNhbGx5IGF0IHRoZSBleHBlbnNlIG9mIHNwZWVkLgorCitUaGUg
b3ZlcmFsbCBhcmNoaXRlY3R1cmUgb2Ygd3B0cnVubmVyIGlzIHNob3duIGluIHRoZSBkaWFncmFt
IGJlbG93OgorCisuLiBpbWFnZTo6IGFyY2hpdGVjdHVyZS5zdmcKKworVGhlIG1haW4gZW50cnkg
cG9pbnQgdG8gdGhlIGNvZGUgaXMgOnB5OmZ1bmM6YHJ1bl90ZXN0c2AgaW4KK2Bgd3B0cnVubmVy
LnB5YGAuIFRoaXMgaXMgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgdXAgdGhlIHRlc3QKK2Vudmly
b25tZW50LCBsb2FkaW5nIHRoZSBsaXN0IG9mIHRlc3RzIHRvIGJlIGV4ZWN1dGVkLCBhbmQgaW52
b2tpbmcKK3RoZSByZW1haW5kZXIgb2YgdGhlIGNvZGUgdG8gYWN0dWFsbHkgZXhlY3V0ZSBzb21l
IHRlc3RzLgorCitUaGUgdGVzdCBlbnZpcm9ubWVudCBpcyBlbmNhcHN1bGF0ZWQgaW4gdGhlCis6
cHk6Y2xhc3M6YFRlc3RFbnZpcm9ubWVudGAgY2xhc3MuIFRoaXMgZGVmZXJzIHRvIGNvZGUgaW4K
K2Bgd2ViLXBsYXRmb3JtLXRlc3RzYGAgd2hpY2ggYWN0dWFsbHkgc3RhcnRzIHRoZSByZXF1aXJl
ZCBzZXJ2ZXJzIHRvCitydW4gdGhlIHRlc3RzLgorCitUaGUgc2V0IG9mIHRlc3RzIHRvIHJ1biBp
cyBkZWZpbmVkIGJ5IHRoZQorOnB5OmNsYXNzOmBUZXN0TG9hZGVyYC4gVGhpcyBpcyBjb25zdHJ1
Y3RlZCB3aXRoIGEKKzpweTpjbGFzczpgVGVzdEZpbHRlcmAgKG5vdCBzaG93biksIHdoaWNoIHRh
a2VzIGFueSBmaWx0ZXIgYXJndW1lbnRzCitmcm9tIHRoZSBjb21tYW5kIGxpbmUgdG8gcmVzdHJp
Y3QgdGhlIHNldCBvZiB0ZXN0cyB0aGF0IHdpbGwgYmUKK3J1bi4gVGhlIDpweTpjbGFzczpgVGVz
dExvYWRlcmAgcmVhZHMgYm90aCB0aGUgYGB3ZWItcGxhdGZvcm0tdGVzdHNgYAorSlNPTiBtYW5p
ZmVzdCBhbmQgdGhlIGV4cGVjdGF0aW9uIGRhdGEgc3RvcmVkIGluIGluaSBmaWxlcyBhbmQKK3By
b2R1Y2VzIGEgOnB5OmNsYXNzOmBtdWx0aXByb2Nlc3NpbmcuUXVldWVgIG9mIHRlc3RzIHRvIHJ1
biwgYW5kCit0aGVpciBleHBlY3RlZCByZXN1bHRzLgorCitBY3R1YWxseSBydW5uaW5nIHRoZSB0
ZXN0cyBoYXBwZW5zIHRocm91Z2ggdGhlCis6cHk6Y2xhc3M6YE1hbmFnZXJHcm91cGAgb2JqZWN0
LiBUaGlzIHRha2VzIHRoZSA6cHk6Y2xhc3M6YFF1ZXVlYCBvZgordGVzdHMgdG8gYmUgcnVuIGFu
ZCBzdGFydHMgYSA6cHk6Y2xhc3M6YHRlc3RydW5uZXIuVGVzdFJ1bm5lck1hbmFnZXJgIGZvciBl
YWNoCitpbnN0YW5jZSBvZiB0aGUgYnJvd3NlciB1bmRlciB0ZXN0IHRoYXQgd2lsbCBiZSBzdGFy
dGVkLiBUaGVzZQorOnB5OmNsYXNzOmBUZXN0UnVubmVyTWFuYWdlcmAgaW5zdGFuY2VzIGFyZSBl
YWNoIHN0YXJ0ZWQgaW4gdGhlaXIgb3duCit0aHJlYWQuCisKK0EgOnB5OmNsYXNzOmBUZXN0UnVu
bmVyTWFuYWdlcmAgY29vcmRpbmF0ZXMgc3RhcnRpbmcgdGhlIHByb2R1Y3QgdW5kZXIKK3Rlc3Qs
IGFuZCBvdXRwdXR0aW5nIHJlc3VsdHMgZnJvbSB0aGUgdGVzdC4gSW4gdGhlIGNhc2UgdGhhdCB0
aGUgdGVzdAoraGFzIHRpbWVkIG91dCBvciB0aGUgYnJvd3NlciBoYXMgY3Jhc2hlZCwgaXQgaGFz
IHRvIHJlc3RhcnQgdGhlCiticm93c2VyIHRvIGVuc3VyZSB0aGUgdGVzdCBydW4gY2FuIGNvbnRp
bnVlLiBUaGUgZnVuY3Rpb25hbGl0eSBmb3IKK2luaXRpYWxpc2luZyB0aGUgYnJvd3NlciB1bmRl
ciB0ZXN0LCBhbmQgcHJvYmluZyBpdHMgc3RhdGUKKyhlLmcuIHdoZXRoZXIgdGhlIHByb2Nlc3Mg
aXMgc3RpbGwgYWxpdmUpIGlzIGltcGxlbWVudGVkIHRocm91Z2ggYQorOnB5OmNsYXNzOmBCcm93
c2VyYCBvYmplY3QuIEFuIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgY2xhc3MgbXVzdCBiZQorcHJv
dmlkZWQgZm9yIGVhY2ggcHJvZHVjdCB0aGF0IGlzIHN1cHBvcnRlZC4KKworVGhlIGZ1bmN0aW9u
YWxpdHkgZm9yIGFjdHVhbGx5IHJ1bm5pbmcgdGhlIHRlc3RzIGlzIHByb3ZpZGVkIGJ5IGEKKzpw
eTpjbGFzczpgVGVzdFJ1bm5lcmAgb2JqZWN0LiA6cHk6Y2xhc3M6YFRlc3RSdW5uZXJgIGluc3Rh
bmNlcyBhcmUKK3J1biBpbiB0aGVpciBvd24gY2hpbGQgcHJvY2VzcyBjcmVhdGVkIHdpdGggdGhl
Cis6cHk6bW9kOmBtdWx0aXByb2Nlc3NpbmdgIG1vZHVsZS4gVGhpcyBhbGxvd3MgdGhlbSB0byBy
dW4gY29uY3VycmVudGx5CithbmQgdG8gYmUga2lsbGVkIGFuZCByZXN0YXJ0ZWQgYXMgcmVxdWly
ZWQuIENvbW11bmljYXRpb24gYmV0d2VlbiB0aGUKKzpweTpjbGFzczpgVGVzdFJ1bm5lck1hbmFn
ZXJgIGFuZCB0aGUgOnB5OmNsYXNzOmBUZXN0UnVubmVyYCBpcworcHJvdmlkZWQgYnkgYSBwYWly
IG9mIHF1ZXVlcywgb25lIGZvciBzZW5kaW5nIG1lc3NhZ2VzIGluIGVhY2gKK2RpcmVjdGlvbi4g
SW4gcGFydGljdWxhciB0ZXN0IHJlc3VsdHMgYXJlIHNlbnQgZnJvbSB0aGUKKzpweTpjbGFzczpg
VGVzdFJ1bm5lcmAgdG8gdGhlIDpweTpjbGFzczpgVGVzdFJ1bm5lck1hbmFnZXJgIHVzaW5nIG9u
ZQorb2YgdGhlc2UgcXVldWVzLgorCitUaGUgOnB5OmNsYXNzOmBUZXN0UnVubmVyYCBvYmplY3Qg
aXMgZ2VuZXJpYyBpbiB0aGF0IHRoZSBzYW1lCis6cHk6Y2xhc3M6YFRlc3RSdW5uZXJgIGlzIHVz
ZWQgcmVnYXJkbGVzcyBvZiB0aGUgcHJvZHVjdCB1bmRlcgordGVzdC4gSG93ZXZlciB0aGUgZGV0
YWlscyBvZiBob3cgdG8gcnVuIHRoZSB0ZXN0IG1heSB2YXJ5IGdyZWF0bHkgd2l0aAordGhlIHBy
b2R1Y3Qgc2luY2UgZGlmZmVyZW50IHByb2R1Y3RzIHN1cHBvcnQgZGlmZmVyZW50IHJlbW90ZSBj
b250cm9sCitwcm90b2NvbHMgKG9yIG5vbmUgYXQgYWxsKS4gVGhlc2UgcHJvdG9jb2wtc3BlY2lm
aWMgcGFydHMgYXJlIHBsYWNlZAoraW4gdGhlIDpweTpjbGFzczpgRXhlY3V0b3JgIG9iamVjdC4g
VGhlcmUgaXMgdHlwaWNhbGx5IGEgZGlmZmVyZW50Cis6cHk6Y2xhc3M6YEV4ZWN1dG9yYCBjbGFz
cyBmb3IgZWFjaCBjb21iaW5hdGlvbiBvZiBjb250cm9sIHByb3RvY29sCithbmQgdGVzdCB0eXBl
LiBUaGUgOnB5OmNsYXNzOmBUZXN0UnVubmVyYCBpcyByZXNwb25zaWJsZSBmb3IgcHVsbGluZwor
ZWFjaCB0ZXN0IG9mZiB0aGUgOnB5OmNsYXNzOmBRdWV1ZWAgb2YgdGVzdHMgYW5kIHBhc3Npbmcg
aXQgZG93biB0bwordGhlIDpweTpjbGFzczpgRXhlY3V0b3JgLgorCitUaGUgZXhlY3V0b3Igb2Z0
ZW4gcmVxdWlyZXMgYWNjZXNzIHRvIGRldGFpbHMgb2YgdGhlIHBhcnRpY3VsYXIKK2Jyb3dzZXIg
aW5zdGFuY2UgdGhhdCBpdCBpcyB0ZXN0aW5nIHNvIHRoYXQgaXQga25vd3MgZS5nLiB3aGljaCBw
b3J0Cit0byBjb25uZWN0IHRvIHRvIHNlbmQgY29tbWFuZHMgdG8gdGhlIGJyb3dzZXIuIFRoZXNl
IGRldGFpbHMgYXJlCitlbmNhcHN1bGF0ZWQgaW4gdGhlIDpweTpjbGFzczpgRXhlY3V0b3JCcm93
c2VyYCBjbGFzcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvZXhwZWN0YXRpb24ucnN0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9j
cy9leHBlY3RhdGlvbi5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmEwYzc3Njg0YTNiODNhYmE4ODQzNmU4NGIz
OTlmZDhmYjY0ZTMyNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvZXhwZWN0YXRpb24ucnN0
CkBAIC0wLDAgKzEsMjQ4IEBACitFeHBlY3RhdGlvbiBEYXRhCis9PT09PT09PT09PT09PT09CisK
K0ludHJvZHVjdGlvbgorLS0tLS0tLS0tLS0tCisKK0ZvciB1c2UgaW4gY29udGludW91cyBpbnRl
Z3JhdGlvbiBzeXN0ZW1zLCBhbmQgb3RoZXIgc2NlbmFyaW9zIHdoZXJlCityZWdyZXNzaW9uIHRy
YWNraW5nIGlzIHJlcXVpcmVkLCB3cHRydW5uZXIgc3VwcG9ydHMgc3RvcmluZyBhbmQKK2xvYWRp
bmcgdGhlIGV4cGVjdGVkIHJlc3VsdCBvZiBlYWNoIHRlc3QgaW4gYSB0ZXN0IHJ1bi4gVHlwaWNh
bGx5Cit0aGVzZSBleHBlY3RlZCByZXN1bHRzIHdpbGwgaW5pdGlhbGx5IGJlIGdlbmVyYXRlZCBi
eSBydW5uaW5nIHRoZQordGVzdHN1aXRlIGluIGEgYmFzZWxpbmUgYnVpbGQuIFRoZXkgbWF5IHRo
ZW4gYmUgZWRpdGVkIGJ5IGh1bWFucyBhcworbmV3IGZlYXR1cmVzIGFyZSBhZGRlZCB0byB0aGUg
cHJvZHVjdCB0aGF0IGNoYW5nZSB0aGUgZXhwZWN0ZWQKK3Jlc3VsdHMuIFRoZSBleHBlY3RlZCBy
ZXN1bHRzIG1heSBhbHNvIHZhcnkgZm9yIGEgc2luZ2xlIHByb2R1Y3QKK2RlcGVuZGluZyBvbiB0
aGUgcGxhdGZvcm0gb24gd2hpY2ggaXQgaXMgcnVuLiBUaGVyZWZvcmUsIHRoZSByYXcKK3N0cnVj
dHVyZWQgbG9nIGRhdGEgaXMgbm90IGEgc3VpdGFibGUgZm9ybWF0IGZvciBzdG9yaW5nIHRoZXNl
CitmaWxlcy4gSW5zdGVhZCBzb21ldGhpbmcgaXMgcmVxdWlyZWQgdGhhdCBpczoKKworICogSHVt
YW4gcmVhZGFibGUKKworICogSHVtYW4gZWRpdGFibGUKKworICogTWFjaGluZSByZWFkYWJsZSAv
IHdyaXRhYmxlCisKKyAqIENhcGFibGUgb2Ygc3RvcmluZyB0ZXN0IGlkIC8gcmVzdWx0IHBhaXJz
CisKKyAqIFN1aXRhYmxlIGZvciBzdG9yaW5nIGluIGEgdmVyc2lvbiBjb250cm9sIHN5c3RlbSAo
aS5lLiB0ZXh0LWJhc2VkKQorCitUaGUgbmVlZCBmb3IgZGlmZmVyZW50IHJlc3VsdHMgcGVyIHBs
YXRmb3JtIG1lYW5zIGVpdGhlciBoYXZpbmcKK211bHRpcGxlIGV4cGVjdGF0aW9uIGZpbGVzIGZv
ciBlYWNoIHBsYXRmb3JtLCBvciBoYXZpbmcgYSB3YXkgdG8KK2V4cHJlc3MgY29uZGl0aW9uYWwg
dmFsdWVzIHdpdGhpbiBhIGNlcnRhaW4gZmlsZS4gVGhlIGZvcm1lciB3b3VsZCBiZQorcmF0aGVy
IGN1bWJlcnNvbWUgZm9yIGh1bWFucyB1cGRhdGluZyB0aGUgZXhwZWN0YXRpb24gZmlsZXMsIHNv
IHRoZQorbGF0dGVyIGFwcHJvYWNoIGhhcyBiZWVuIGFkb3B0ZWQsIGxlYWRpbmcgdG8gdGhlIHJl
cXVpcmVtZW50OgorCisgKiBDYXBhYmxlIG9mIHN0b3JpbmcgcmVzdWx0IHZhbHVlcyB0aGF0IGFy
ZSBjb25kaXRpb25hbCBvbiB0aGUgcGxhdGZvcm0uCisKK1RoZXJlIGFyZSBmZXcgZXh0YW50IGZv
cm1hdHMgdGhhdCBtZWV0IHRoZXNlIHJlcXVpcmVtZW50cywgc28KK3dwdHJ1bm5lciB1c2VzIGEg
YmVzcG9rZSBgYGV4cGVjdGF0aW9uIG1hbmlmZXN0YGAgZm9ybWF0LCB3aGljaCBpcworY2xvc2Vs
eSBiYXNlZCBvbiB0aGUgc3RhbmRhcmQgYGBpbmlgYCBmb3JtYXQuCisKK0RpcmVjdG9yeSBMYXlv
dXQKKy0tLS0tLS0tLS0tLS0tLS0KKworRXhwZWN0YXRpb24gbWFuaWZlc3QgZmlsZXMgbXVzdCBi
ZSBzdG9yZWQgdW5kZXIgdGhlIGBgbWV0YWRhdGFgYAorZGlyZWN0b3J5IHBhc3NlZCB0byB0aGUg
dGVzdCBydW5uZXIuIFRoZSBkaXJlY3RvcnkgbGF5b3V0IGZvbGxvd3MgdGhhdAorb2Ygd2ViLXBs
YXRmb3JtLXRlc3RzIHdpdGggZWFjaCB0ZXN0IHBhdGggaGF2aW5nIGEgY29ycmVzcG9uZGluZwor
bWFuaWZlc3QgZmlsZS4gVGVzdHMgdGhhdCBkaWZmZXIgb25seSBieSBxdWVyeSBzdHJpbmcsIG9y
IHJlZnRlc3RzCit3aXRoIHRoZSBzYW1lIHRlc3QgcGF0aCBidXQgZGlmZmVyZW50IHJlZiBwYXRo
cyBzaGFyZSB0aGUgc2FtZQorcmVmZXJlbmNlIGZpbGUuIFRoZSBmaWxlIG5hbWUgaXMgdGFrZW4g
ZnJvbSB0aGUgbGFzdCAvLXNlcGFyYXRlZCBwYXJ0CitvZiB0aGUgcGF0aCwgc3VmZml4ZWQgd2l0
aCBgYC5pbmlgYC4KKworQXMgYW4gb3B0aW1pc2F0aW9uLCBmaWxlcyB3aGljaCBwcm9kdWNlIG9u
bHkgZGVmYXVsdCByZXN1bHRzCisoaS5lLiBgYFBBU1NgYCBvciBgYE9LYGApIGRvbid0IHJlcXVp
cmUgYSBjb3JyZXNwb25kaW5nIG1hbmlmZXN0IGZpbGUuCisKK0ZvciBleGFtcGxlIGEgdGVzdCB3
aXRoIHVybDo6CisKKyAgL3NwZWMvc2VjdGlvbi9maWxlLmh0bWw/cXVlcnk9cGFyYW0KKword291
bGQgaGF2ZSBhbiBleHBlY3RhdGlvbiBmaWxlIDo6CisKKyAgbWV0YWRhdGEvc3BlYy9zZWN0aW9u
L2ZpbGUuaHRtbC5pbmkKKworCisuLiBfd3B0dXBkYXRlLWxhYmVsOgorCitHZW5lcmF0aW5nIEV4
cGVjdGF0aW9uIEZpbGVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK3dwdHJ1bm5l
ciBwcm92aWRlcyB0aGUgdG9vbCBgYHdwdHVwZGF0ZWBgIHRvIGdlbmVyYXRlIGV4cGVjdGF0aW9u
CitmaWxlcyBmcm9tIHRoZSByZXN1bHRzIG9mIGEgc2V0IG9mIGJhc2VsaW5lIHRlc3QgcnVucy4g
VGhlIGJhc2ljCitzeW50YXggZm9yIHRoaXMgaXM6OgorCisgIHdwdHVwZGF0ZSBbb3B0aW9uc10g
W2xvZ2ZpbGVdLi4uCisKK0VhY2ggYGBsb2dmaWxlYGAgaXMgYSBzdHJ1Y3R1cmVkIGxvZyBmaWxl
IGZyb20gYSBwcmV2aW91cyBydW4uIFRoZXNlCitjYW4gYmUgZ2VuZXJhdGVkIGZyb20gd3B0cnVu
bmVyIHVzaW5nIHRoZSBgYC0tbG9nLXJhd2BgIG9wdGlvbgorZS5nLiBgYC0tbG9nLXJhdz1zdHJ1
Y3R1cmVkLmxvZ2BgLiBUaGUgZGVmYXVsdCBiZWhhdmlvdXIgaXMgdG8gdXBkYXRlCithbGwgdGhl
IHRlc3QgZGF0YSBmb3IgdGhlIHBhcnRpY3VsYXIgY29tYmluYXRpb24gb2YgaGFyZHdhcmUgYW5k
IE9TCit1c2VkIGluIHRoZSBydW4gY29ycmVzcG9uZGluZyB0byB0aGUgbG9nIGRhdGEsIHdoaWxz
dCBsZWF2aW5nIGFueQorb3RoZXIgZXhwZWN0YXRpb25zIHVudG91Y2hlZC4KKword3B0dXBkYXRl
IHRha2VzIHNldmVyYWwgdXNlZnVsIG9wdGlvbnM6CisKK2BgLS1zeW5jYGAKKyAgUHVsbCB0aGUg
bGF0ZXN0IHZlcnNpb24gb2Ygd2ViLXBsYXRmb3JtLXRlc3RzIGZyb20gdGhlCisgIHVwc3RyZWFt
IHNwZWNpZmllZCBpbiB0aGUgY29uZmlnIGZpbGUuIElmIHRoaXMgaXMgc3BlY2lmaWVkIGluCisg
IGNvbWJpbmF0aW9uIHdpdGggbG9nZmlsZXMsIGl0IGlzIGFzc3VtZWQgdGhhdCB0aGUgcmVzdWx0
cyBpbiB0aGUgbG9nCisgIGZpbGVzIGFwcGx5IHRvIHRoZSBwb3N0LXVwZGF0ZSB0ZXN0cy4KKwor
YGAtLW5vLWNoZWNrLWNsZWFuYGAKKyAgRG9uJ3QgYXR0ZW1wdCB0byBjaGVjayBpZiB0aGUgd29y
a2luZyBkaXJlY3RvcnkgaXMgY2xlYW4gYmVmb3JlCisgIGRvaW5nIHRoZSB1cGRhdGUgKGFzc3Vt
aW5nIHRoYXQgdGhlIHdvcmtpbmcgZGlyZWN0b3J5IGlzIGEgZ2l0IG9yCisgIG1lcmN1cmlhbCB0
cmVlKS4KKworYGAtLXBhdGNoYGAKKyAgQ3JlYXRlIGEgYSBnaXQgY29tbWl0LCBvciBhIG1xIHBh
dGNoLCB3aXRoIHRoZSBjaGFuZ2VzIG1hZGUgYnkgd3B0dXBkYXRlLgorCitgYC0taWdub3JlLWV4
aXN0aW5nYGAKKyAgT3ZlcndyaXRlIGFsbCB0aGUgZXhwZWN0YXRpb24gZGF0YSBmb3IgYW55IHRl
c3RzIHRoYXQgaGF2ZSBhIHJlc3VsdAorICBpbiB0aGUgcGFzc2VkIGxvZyBmaWxlcywgbm90IGp1
c3QgZGF0YSBmb3IgdGhlIHNhbWUgcGxhdGZvcm0uCisKK0V4YW1wbGVzCit+fn5+fn5+fgorCitV
cGRhdGUgdGhlIGxvY2FsIGNvcHkgb2Ygd2ViLXBsYXRmb3JtLXRlc3RzIHdpdGhvdXQgY2hhbmdp
bmcgdGhlCitleHBlY3RhdGlvbiBkYXRhIGFuZCBjb21taXQgKG9yIGNyZWF0ZSBhIG1xIHBhdGNo
IGZvcikgdGhlIHJlc3VsdDo6CisKKyAgd3B0dXBkYXRlIC0tcGF0Y2ggLS1zeW5jCisKK1VwZGF0
ZSBhbGwgdGhlIGV4cGVjdGF0aW9ucyBmcm9tIGEgc2V0IG9mIGNyb3NzLXBsYXRmb3JtIHRlc3Qg
cnVuczo6CisKKyAgd3B0dXBkYXRlIC0tbm8tY2hlY2stY2xlYW4gLS1wYXRjaCBvc3gubG9nIGxp
bnV4LmxvZyB3aW5kb3dzLmxvZworCitBZGQgZXhwZWN0YXRpb24gZGF0YSBmb3Igc29tZSBuZXcg
dGVzdHMgdGhhdCBhcmUgZXhwZWN0ZWQgdG8gYmUKK3BsYXRmb3JtLWluZGVwZW5kZW50OjoKKwor
ICB3cHR1cGRhdGUgLS1uby1jaGVjay1jbGVhbiAtLXBhdGNoIC0taWdub3JlLWV4aXN0aW5nIHRl
c3RzLmxvZworCitNYW5pZmVzdCBGb3JtYXQKKy0tLS0tLS0tLS0tLS0tLQorVGhlIGZvcm1hdCBv
ZiB0aGUgbWFuaWZlc3QgZmlsZXMgaXMgYmFzZWQgb24gdGhlIGluaSBmb3JtYXQuIEZpbGVzIGFy
ZQorZGl2aWRlZCBpbnRvIHNlY3Rpb25zLCBlYWNoIChhcGFydCBmcm9tIHRoZSByb290IHNlY3Rp
b24pIGhhdmluZyBhCitoZWFkaW5nIGVuY2xvc2VkIGluIHNxdWFyZSBicmFjZXMuIFdpdGhpbiBl
YWNoIHNlY3Rpb24gYXJlIGtleS12YWx1ZQorcGFpcnMuIFRoZXJlIGFyZSBzZXZlcmFsIG5vdGFi
bGUgZGlmZmVyZW5jZXMgZnJvbSBzdGFuZGFyZCAuaW5pIGZpbGVzLAoraG93ZXZlcjoKKworICog
U2VjdGlvbnMgbWF5IGJlIGhpZXJhcmNoaWNhbGx5IG5lc3RlZCwgd2l0aCBzaWduaWZpY2FudCB3
aGl0ZXNwYWNlCisgICBpbmRpY2F0aW5nIG5lc3RpbmcgZGVwdGguCisKKyAqIE9ubHkgYGA6YGAg
aXMgdmFsaWQgYXMgYSBrZXkvdmFsdWUgc2VwYXJhdG9yCisKK0Egc2ltcGxlIGV4YW1wbGUgb2Yg
YSBtYW5pZmVzdCBmaWxlIGlzOjoKKworICByb290X2tleTogcm9vdF92YWx1ZQorCisgIFtzZWN0
aW9uXQorICAgIHNlY3Rpb25fa2V5OiBzZWN0aW9uX3ZhbHVlCisKKyAgICBbc3Vic2VjdGlvbl0K
KyAgICAgICBzdWJzZWN0aW9uX2tleTogc3Vic2VjdGlvbl92YWx1ZQorCisgIFthbm90aGVyX3Nl
Y3Rpb25dCisgICAgYW5vdGhlcl9rZXk6IGFub3RoZXJfdmFsdWUKKworQ29uZGl0aW9uYWwgVmFs
dWVzCit+fn5+fn5+fn5+fn5+fn5+fn4KKworSW4gb3JkZXIgdG8gc3VwcG9ydCB2YWx1ZXMgdGhh
dCBkZXBlbmQgb24gc29tZSBleHRlcm5hbCBkYXRhLCB0aGUKK3JpZ2h0IGhhbmQgc2lkZSBvZiBh
IGtleS92YWx1ZSBwYWlyIGNhbiB0YWtlIGEgc2V0IG9mIGNvbmRpdGlvbmFscworcmF0aGVyIHRo
YW4gYSBwbGFpbiB2YWx1ZS4gVGhlc2UgdmFsdWVzIGFyZSBwbGFjZWQgb24gYSBuZXcgbGluZQor
Zm9sbG93aW5nIHRoZSBrZXksIHdpdGggc2lnbmlmaWNhbnQgaW5kZW50YXRpb24uIENvbmRpdGlv
bmFsIHZhbHVlcworYXJlIHByZWZpeGVkIHdpdGggYGBpZmBgIGFuZCB0ZXJtaW5hdGVkIHdpdGgg
YSBjb2xvbiwgZm9yIGV4YW1wbGU6OgorCisgIGtleToKKyAgICBpZiBjb25kMTogdmFsdWUxCisg
ICAgaWYgY29uZDI6IHZhbHVlMgorICAgIHZhbHVlMworCitJbiB0aGlzIGV4YW1wbGUsIHRoZSB2
YWx1ZSBhc3NvY2lhdGVkIHdpdGggYGBrZXlgYCBpcyBkZXRlcm1pbmVkIGJ5CitmaXJzdCBldmFs
dWF0aW5nIGBgY29uZDFgYCBhZ2FpbnN0IGV4dGVybmFsIGRhdGEuIElmIHRoYXQgaXMgdHJ1ZSwK
K2Bga2V5YGAgaXMgYXNzaWduZWQgdGhlIHZhbHVlIGBgdmFsdWUxYGAsIG90aGVyd2lzZSBgYGNv
bmQyYGAgaXMKK2V2YWx1YXRlZCBpbiB0aGUgc2FtZSB3YXkuIElmIGJvdGggYGBjb25kMWBgIGFu
ZCBgYGNvbmQyYGAgYXJlIGZhbHNlLAordGhlIHVuY29uZGl0aW9uYWwgYGB2YWx1ZTNgYCBpcyB1
c2VkLgorCitDb25kaXRpb25zIHRoZW1zZWx2ZXMgdXNlIGEgUHl0aG9uLWxpa2UgZXhwcmVzc2lv
biBzeW50YXguIE9wZXJhbmRzCitjYW4gZWl0aGVyIGJlIHZhcmlhYmxlcywgY29ycmVzcG9uZGlu
ZyB0byBkYXRhIHBhc3NlZCBpbiwgbnVtYmVycworKGludGVnZXIgb3IgZmxvYXRpbmcgcG9pbnQ7
IGV4cG9uZW50aWFsIG5vdGF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQpIG9yCitxdW90ZS1kZWxpbWl0
ZWQgc3RyaW5ncy4gRXF1YWxpdHkgaXMgdGVzdGVkIHVzaW5nIGBgPT1gYCBhbmQKK2luZXF1YWxp
dHkgYnkgYGAhPWBgLiBUaGUgb3BlcmF0b3JzIGBgYW5kYGAsIGBgb3JgYCBhbmQgYGBub3RgYCBh
cmUKK3VzZWQgaW4gdGhlIGV4cGVjdGVkIHdheS4gUGFyZW50aGVzZXMgY2FuIGFsc28gYmUgdXNl
ZCBmb3IKK2dyb3VwaW5nLiBGb3IgZXhhbXBsZTo6CisKKyAga2V5OgorICAgIGlmIChhID09IDIg
b3IgYSA9PSAzKSBhbmQgYiA9PSAiYWJjIjogdmFsdWUxCisgICAgaWYgYSA9PSAxIG9yIGIgIT0g
ImFiYyI6IHZhbHVlMgorICAgIHZhbHVlMworCitIZXJlIGBgYWBgIGFuZCBgYGJgYCBhcmUgdmFy
aWFibGVzLCB0aGUgdmFsdWUgb2Ygd2hpY2ggd2lsbCBiZQorc3VwcGxpZWQgd2hlbiB0aGUgbWFu
aWZlc3QgaXMgdXNlZC4KKworRXhwZWN0YXRpb24gTWFuaWZlc3RzCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKworV2hlbiB1c2VkIGZvciBleHBlY3RhdGlvbiBkYXRhLCBtYW5pZmVzdHMgaGF2ZSB0
aGUgZm9sbG93aW5nIGZvcm1hdDoKKworICogQSBzZWN0aW9uIHBlciB0ZXN0IFVSTCBkZXNjcmli
ZWQgYnkgdGhlIG1hbmlmZXN0LCB3aXRoIHRoZSBzZWN0aW9uCisgICBoZWFkaW5nIGJlaW5nIHRo
ZSBwYXJ0IG9mIHRoZSB0ZXN0IFVSTCBmb2xsb3dpbmcgdGhlIGxhc3QgYGAvYGAgaW4KKyAgIHRo
ZSBwYXRoICh0aGlzIGFsbG93cyBtdWx0aXBsZSB0ZXN0cyBpbiBhIHNpbmdsZSBtYW5pZmVzdCBm
aWxlIHdpdGgKKyAgIHRoZSBzYW1lIHBhdGggcGFydCBvZiB0aGUgVVJMLCBidXQgZGlmZmVyZW50
IHF1ZXJ5IHBhcnRzKS4KKworICogQSBzdWJzZWN0aW9uIHBlciBzdWJ0ZXN0LCB3aXRoIHRoZSBo
ZWFkaW5nIGJlaW5nIHRoZSB0aXRsZSBvZiB0aGUKKyAgIHN1YnRlc3QuCisKKyAqIEEga2V5IGBg
dHlwZWBgIGluZGljYXRpbmcgdGhlIHRlc3QgdHlwZS4gVGhpcyB0YWtlcyB0aGUgdmFsdWVzCisg
ICBgYHRlc3RoYXJuZXNzYGAgYW5kIGBgcmVmdGVzdGBgLgorCisgKiBGb3IgcmVmdGVzdHMsIGtl
eXMgYGByZWZ0eXBlYGAgaW5kaWNhdGluZyB0aGUgcmVmZXJlbmNlIHR5cGUKKyAgIChgYD09YGAg
b3IgYGAhPWBgKSBhbmQgYGByZWZ1cmxgYCBpbmRpY2F0aW5nIHRoZSBVUkwgb2YgdGhlCisgICBy
ZWZlcmVuY2UuCisKKyAqIEEga2V5IGBgZXhwZWN0ZWRgYCBnaXZpbmcgdGhlIGV4cGVjdGF0aW9u
IHZhbHVlIG9mIGVhY2ggKHN1Yil0ZXN0LgorCisgKiBBIGtleSBgYGRpc2FibGVkYGAgd2hpY2gg
Y2FuIGJlIHNldCB0byBhbnkgdmFsdWUgdG8gaW5kaWNhdGUgdGhhdAorICAgdGhlIChzdWIpdGVz
dCBpcyBkaXNhYmxlZCBhbmQgc2hvdWxkIGVpdGhlciBub3QgYmUgcnVuIChmb3IgdGVzdHMpCisg
ICBvciB0aGF0IGl0cyByZXN1bHRzIHNob3VsZCBiZSBpZ25vcmVkIChzdWJ0ZXN0cykuCisKKyAq
IEEga2V5IGBgcmVzdGFydC1hZnRlcmBgIHdoaWNoIGNhbiBiZSBzZXQgdG8gYW55IHZhbHVlIHRv
IGluZGljYXRlIHRoYXQKKyAgIHRoZSBydW5uZXIgc2hvdWxkIHJlc3RhcnQgdGhlIGJyb3dzZXIg
YWZ0ZXIgcnVubmluZyB0aGlzIHRlc3QgKGUuZy4gdG8KKyAgIGNsZWFyIG91dCB1bndhbnRlZCBz
dGF0ZSkuCisKKyAqIFZhcmlhYmxlcyBgYGRlYnVnYGAsIGBgb3NgYCwgYGB2ZXJzaW9uYGAsIGBg
cHJvY2Vzc29yYGAgYW5kCisgICBgYGJpdHNgYCB0aGF0IGRlc2NyaWJlIHRoZSBjb25maWd1cmF0
aW9uIG9mIHRoZSBicm93c2VyIHVuZGVyCisgICB0ZXN0LiBgYGRlYnVnYGAgaXMgYSBib29sZWFu
IGluZGljYXRpbmcgd2hldGhlciBhIGJ1aWxkIGlzIGEgZGVidWcKKyAgIGJ1aWxkLiBgYG9zYGAg
aXMgYSBzdHJpbmcgaW5kaWNhdGluZyB0aGUgb3BlcmF0aW5nIHN5c3RlbSwgYW5kCisgICBgYHZl
cnNpb25gYCBhIHN0cmluZyBpbmRpY2F0aW5nIHRoZSBwYXJ0aWN1bGFyIHZlcnNpb24gb2YgdGhh
dAorICAgb3BlcmF0aW5nIHN5c3RlbS4gYGBwcm9jZXNzb3JgYCBpcyBhIHN0cmluZyBpbmRpY2F0
aW5nIHRoZQorICAgcHJvY2Vzc29yIGFyY2hpdGVjdHVyZSBhbmQgYGBiaXRzYGAgYW4gaW50ZWdl
ciBpbmRpY2F0aW5nIHRoZQorICAgbnVtYmVyIG9mIGJpdHMuIFRoaXMgaW5mb3JtYXRpb24gaXMg
dHlwaWNhbGx5IHByb3ZpZGVkIGJ5CisgICA6cHk6bW9kOmBtb3ppbmZvYC4KKworICogVG9wIGxl
dmVsIGtleXMgYXJlIHRha2VuIGFzIGRlZmF1bHRzIGZvciB0aGUgd2hvbGUgZmlsZS4gU28sIGZv
cgorICAgZXhhbXBsZSwgYSB0b3AgbGV2ZWwga2V5IHdpdGggYGBleHBlY3RlZDogRkFJTGBgIHdv
dWxkIGluZGljYXRlCisgICB0aGF0IGFsbCB0ZXN0cyBhbmQgc3VidGVzdHMgaW4gdGhlIGZpbGUg
YXJlIGV4cGVjdGVkIHRvIGZhaWwsCisgICB1bmxlc3MgdGhleSBoYXZlIGFuIGBgZXhwZWN0ZWRg
YCBrZXkgb2YgdGhlaXIgb3duLgorCitBbiBzaW1wbGUgZXhhbXBsZSBtYW5pZmVzdCBtaWdodCBs
b29rIGxpa2U6OgorCisgIFt0ZXN0Lmh0bWw/dmFyaWFudD1iYXNpY10KKyAgICB0eXBlOiB0ZXN0
aGFybmVzcworCisgICAgW1Rlc3Qgc29tZXRoaW5nIHVuc3VwcG9ydGVkXQorICAgICAgIGV4cGVj
dGVkOiBGQUlMCisKKyAgW3Rlc3QuaHRtbD92YXJpYW50PWJyb2tlbl0KKyAgICBleHBlY3RlZDog
RVJST1IKKworICBbdGVzdC5odG1sP3ZhcmlhbnQ9dW5zdGFibGVdCisgICAgZGlzYWJsZWQ6IGh0
dHA6Ly90ZXN0LmJ1Z3MuZXhhbXBsZS5vcmcvYnVncy8xMjM0NQorCitBIG1vcmUgY29tcGxleCBt
YW5pZmVzdCB3aXRoIGNvbmRpdGlvbmFsIHByb3BlcnRpZXMgbWlnaHQgYmU6OgorCisgIFtjYW52
YXNfdGVzdC5odG1sXQorICAgIGV4cGVjdGVkOgorICAgICAgaWYgb3MgPT0gIm9zeCI6IEZBSUwK
KyAgICAgIGlmIG9zID09ICJ3aW5kb3dzIiBhbmQgdmVyc2lvbiA9PSAiWFAiOiBGQUlMCisgICAg
ICBQQVNTCisKK05vdGUgdGhhdCBgYFBBU1NgYCBpbiB0aGUgYWJvdmUgd29ya3MsIGJ1dCBpcyB1
bm5lY2Vzc2FyeTsgYGBQQVNTYGAKKyhvciBgYE9LYGApIGlzIGFsd2F5cyB0aGUgZGVmYXVsdCBl
eHBlY3RhdGlvbiBmb3IgKHN1Yil0ZXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvaW5kZXgucnN0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvZG9jcy9pbmRleC5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTE0N2QzZTMxYzNiYzQ0YjEyMTZlNDZi
YmMwM2EwNGMzODBjYjNhZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvaW5kZXgucnN0CkBA
IC0wLDAgKzEsMjQgQEAKKy4uIHdwdHJ1bm5lciBkb2N1bWVudGF0aW9uIG1hc3RlciBmaWxlLCBj
cmVhdGVkIGJ5CisgICBzcGhpbngtcXVpY2tzdGFydCBvbiBNb24gTWF5IDE5IDE4OjE0OjIwIDIw
MTQuCisgICBZb3UgY2FuIGFkYXB0IHRoaXMgZmlsZSBjb21wbGV0ZWx5IHRvIHlvdXIgbGlraW5n
LCBidXQgaXQgc2hvdWxkIGF0IGxlYXN0CisgICBjb250YWluIHRoZSByb290IGB0b2N0cmVlYCBk
aXJlY3RpdmUuCisKK1dlbGNvbWUgdG8gd3B0cnVubmVyJ3MgZG9jdW1lbnRhdGlvbiEKKz09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworQ29udGVudHM6CisKKy4uIHRvY3Ry
ZWU6OgorICAgOm1heGRlcHRoOiAyCisKKyAgIHVzYWdlCisgICBleHBlY3RhdGlvbgorICAgZGVz
aWduCisKK0luZGljZXMgYW5kIHRhYmxlcworPT09PT09PT09PT09PT09PT09CisKKyogOnJlZjpg
Z2VuaW5kZXhgCisqIDpyZWY6YG1vZGluZGV4YAorKiA6cmVmOmBzZWFyY2hgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL2RvY3MvbWFrZS5iYXQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL21ha2UuYmF0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1OWMx
NjE1YTI4OWRiMGIxYTkwYTA5MGQ4OTRmYTRiNTRiNGZhM2YKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci9kb2NzL21ha2UuYmF0CkBAIC0wLDAgKzEsMjQyIEBACitARUNITyBPRkYNCisNCitSRU0gQ29t
bWFuZCBmaWxlIGZvciBTcGhpbnggZG9jdW1lbnRhdGlvbg0KKw0KK2lmICIlU1BISU5YQlVJTEQl
IiA9PSAiIiAoDQorCXNldCBTUEhJTlhCVUlMRD1zcGhpbngtYnVpbGQNCispDQorc2V0IEJVSUxE
RElSPV9idWlsZA0KK3NldCBBTExTUEhJTlhPUFRTPS1kICVCVUlMRERJUiUvZG9jdHJlZXMgJVNQ
SElOWE9QVFMlIC4NCitzZXQgSTE4TlNQSElOWE9QVFM9JVNQSElOWE9QVFMlIC4NCitpZiBOT1Qg
IiVQQVBFUiUiID09ICIiICgNCisJc2V0IEFMTFNQSElOWE9QVFM9LUQgbGF0ZXhfcGFwZXJfc2l6
ZT0lUEFQRVIlICVBTExTUEhJTlhPUFRTJQ0KKwlzZXQgSTE4TlNQSElOWE9QVFM9LUQgbGF0ZXhf
cGFwZXJfc2l6ZT0lUEFQRVIlICVJMThOU1BISU5YT1BUUyUNCispDQorDQoraWYgIiUxIiA9PSAi
IiBnb3RvIGhlbHANCisNCitpZiAiJTEiID09ICJoZWxwIiAoDQorCTpoZWxwDQorCWVjaG8uUGxl
YXNlIHVzZSBgbWFrZSBePHRhcmdldF4+YCB3aGVyZSBePHRhcmdldF4+IGlzIG9uZSBvZg0KKwll
Y2hvLiAgaHRtbCAgICAgICB0byBtYWtlIHN0YW5kYWxvbmUgSFRNTCBmaWxlcw0KKwllY2hvLiAg
ZGlyaHRtbCAgICB0byBtYWtlIEhUTUwgZmlsZXMgbmFtZWQgaW5kZXguaHRtbCBpbiBkaXJlY3Rv
cmllcw0KKwllY2hvLiAgc2luZ2xlaHRtbCB0byBtYWtlIGEgc2luZ2xlIGxhcmdlIEhUTUwgZmls
ZQ0KKwllY2hvLiAgcGlja2xlICAgICB0byBtYWtlIHBpY2tsZSBmaWxlcw0KKwllY2hvLiAganNv
biAgICAgICB0byBtYWtlIEpTT04gZmlsZXMNCisJZWNoby4gIGh0bWxoZWxwICAgdG8gbWFrZSBI
VE1MIGZpbGVzIGFuZCBhIEhUTUwgaGVscCBwcm9qZWN0DQorCWVjaG8uICBxdGhlbHAgICAgIHRv
IG1ha2UgSFRNTCBmaWxlcyBhbmQgYSBxdGhlbHAgcHJvamVjdA0KKwllY2hvLiAgZGV2aGVscCAg
ICB0byBtYWtlIEhUTUwgZmlsZXMgYW5kIGEgRGV2aGVscCBwcm9qZWN0DQorCWVjaG8uICBlcHVi
ICAgICAgIHRvIG1ha2UgYW4gZXB1Yg0KKwllY2hvLiAgbGF0ZXggICAgICB0byBtYWtlIExhVGVY
IGZpbGVzLCB5b3UgY2FuIHNldCBQQVBFUj1hNCBvciBQQVBFUj1sZXR0ZXINCisJZWNoby4gIHRl
eHQgICAgICAgdG8gbWFrZSB0ZXh0IGZpbGVzDQorCWVjaG8uICBtYW4gICAgICAgIHRvIG1ha2Ug
bWFudWFsIHBhZ2VzDQorCWVjaG8uICB0ZXhpbmZvICAgIHRvIG1ha2UgVGV4aW5mbyBmaWxlcw0K
KwllY2hvLiAgZ2V0dGV4dCAgICB0byBtYWtlIFBPIG1lc3NhZ2UgY2F0YWxvZ3MNCisJZWNoby4g
IGNoYW5nZXMgICAgdG8gbWFrZSBhbiBvdmVydmlldyBvdmVyIGFsbCBjaGFuZ2VkL2FkZGVkL2Rl
cHJlY2F0ZWQgaXRlbXMNCisJZWNoby4gIHhtbCAgICAgICAgdG8gbWFrZSBEb2N1dGlscy1uYXRp
dmUgWE1MIGZpbGVzDQorCWVjaG8uICBwc2V1ZG94bWwgIHRvIG1ha2UgcHNldWRveG1sLVhNTCBm
aWxlcyBmb3IgZGlzcGxheSBwdXJwb3Nlcw0KKwllY2hvLiAgbGlua2NoZWNrICB0byBjaGVjayBh
bGwgZXh0ZXJuYWwgbGlua3MgZm9yIGludGVncml0eQ0KKwllY2hvLiAgZG9jdGVzdCAgICB0byBy
dW4gYWxsIGRvY3Rlc3RzIGVtYmVkZGVkIGluIHRoZSBkb2N1bWVudGF0aW9uIGlmIGVuYWJsZWQN
CisJZ290byBlbmQNCispDQorDQoraWYgIiUxIiA9PSAiY2xlYW4iICgNCisJZm9yIC9kICUlaSBp
biAoJUJVSUxERElSJVwqKSBkbyBybWRpciAvcSAvcyAlJWkNCisJZGVsIC9xIC9zICVCVUlMRERJ
UiVcKg0KKwlnb3RvIGVuZA0KKykNCisNCisNCislU1BISU5YQlVJTEQlIDI+IG51bA0KK2lmIGVy
cm9ybGV2ZWwgOTAwOSAoDQorCWVjaG8uDQorCWVjaG8uVGhlICdzcGhpbngtYnVpbGQnIGNvbW1h
bmQgd2FzIG5vdCBmb3VuZC4gTWFrZSBzdXJlIHlvdSBoYXZlIFNwaGlueA0KKwllY2hvLmluc3Rh
bGxlZCwgdGhlbiBzZXQgdGhlIFNQSElOWEJVSUxEIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHBv
aW50DQorCWVjaG8udG8gdGhlIGZ1bGwgcGF0aCBvZiB0aGUgJ3NwaGlueC1idWlsZCcgZXhlY3V0
YWJsZS4gQWx0ZXJuYXRpdmVseSB5b3UNCisJZWNoby5tYXkgYWRkIHRoZSBTcGhpbnggZGlyZWN0
b3J5IHRvIFBBVEguDQorCWVjaG8uDQorCWVjaG8uSWYgeW91IGRvbid0IGhhdmUgU3BoaW54IGlu
c3RhbGxlZCwgZ3JhYiBpdCBmcm9tDQorCWVjaG8uaHR0cDovL3NwaGlueC1kb2Mub3JnLw0KKwll
eGl0IC9iIDENCispDQorDQoraWYgIiUxIiA9PSAiaHRtbCIgKA0KKwklU1BISU5YQlVJTEQlIC1i
IGh0bWwgJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvaHRtbA0KKwlpZiBlcnJvcmxldmVsIDEg
ZXhpdCAvYiAxDQorCWVjaG8uDQorCWVjaG8uQnVpbGQgZmluaXNoZWQuIFRoZSBIVE1MIHBhZ2Vz
IGFyZSBpbiAlQlVJTERESVIlL2h0bWwuDQorCWdvdG8gZW5kDQorKQ0KKw0KK2lmICIlMSIgPT0g
ImRpcmh0bWwiICgNCisJJVNQSElOWEJVSUxEJSAtYiBkaXJodG1sICVBTExTUEhJTlhPUFRTJSAl
QlVJTERESVIlL2Rpcmh0bWwNCisJaWYgZXJyb3JsZXZlbCAxIGV4aXQgL2IgMQ0KKwllY2hvLg0K
KwllY2hvLkJ1aWxkIGZpbmlzaGVkLiBUaGUgSFRNTCBwYWdlcyBhcmUgaW4gJUJVSUxERElSJS9k
aXJodG1sLg0KKwlnb3RvIGVuZA0KKykNCisNCitpZiAiJTEiID09ICJzaW5nbGVodG1sIiAoDQor
CSVTUEhJTlhCVUlMRCUgLWIgc2luZ2xlaHRtbCAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9z
aW5nbGVodG1sDQorCWlmIGVycm9ybGV2ZWwgMSBleGl0IC9iIDENCisJZWNoby4NCisJZWNoby5C
dWlsZCBmaW5pc2hlZC4gVGhlIEhUTUwgcGFnZXMgYXJlIGluICVCVUlMRERJUiUvc2luZ2xlaHRt
bC4NCisJZ290byBlbmQNCispDQorDQoraWYgIiUxIiA9PSAicGlja2xlIiAoDQorCSVTUEhJTlhC
VUlMRCUgLWIgcGlja2xlICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL3BpY2tsZQ0KKwlpZiBl
cnJvcmxldmVsIDEgZXhpdCAvYiAxDQorCWVjaG8uDQorCWVjaG8uQnVpbGQgZmluaXNoZWQ7IG5v
dyB5b3UgY2FuIHByb2Nlc3MgdGhlIHBpY2tsZSBmaWxlcy4NCisJZ290byBlbmQNCispDQorDQor
aWYgIiUxIiA9PSAianNvbiIgKA0KKwklU1BISU5YQlVJTEQlIC1iIGpzb24gJUFMTFNQSElOWE9Q
VFMlICVCVUlMRERJUiUvanNvbg0KKwlpZiBlcnJvcmxldmVsIDEgZXhpdCAvYiAxDQorCWVjaG8u
DQorCWVjaG8uQnVpbGQgZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHByb2Nlc3MgdGhlIEpTT04gZmls
ZXMuDQorCWdvdG8gZW5kDQorKQ0KKw0KK2lmICIlMSIgPT0gImh0bWxoZWxwIiAoDQorCSVTUEhJ
TlhCVUlMRCUgLWIgaHRtbGhlbHAgJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvaHRtbGhlbHAN
CisJaWYgZXJyb3JsZXZlbCAxIGV4aXQgL2IgMQ0KKwllY2hvLg0KKwllY2hvLkJ1aWxkIGZpbmlz
aGVkOyBub3cgeW91IGNhbiBydW4gSFRNTCBIZWxwIFdvcmtzaG9wIHdpdGggdGhlIF4NCisuaGhw
IHByb2plY3QgZmlsZSBpbiAlQlVJTERESVIlL2h0bWxoZWxwLg0KKwlnb3RvIGVuZA0KKykNCisN
CitpZiAiJTEiID09ICJxdGhlbHAiICgNCisJJVNQSElOWEJVSUxEJSAtYiBxdGhlbHAgJUFMTFNQ
SElOWE9QVFMlICVCVUlMRERJUiUvcXRoZWxwDQorCWlmIGVycm9ybGV2ZWwgMSBleGl0IC9iIDEN
CisJZWNoby4NCisJZWNoby5CdWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcnVuICJxY29sbGVj
dGlvbmdlbmVyYXRvciIgd2l0aCB0aGUgXg0KKy5xaGNwIHByb2plY3QgZmlsZSBpbiAlQlVJTERE
SVIlL3F0aGVscCwgbGlrZSB0aGlzOg0KKwllY2hvLl4+IHFjb2xsZWN0aW9uZ2VuZXJhdG9yICVC
VUlMRERJUiVccXRoZWxwXHdwdHJ1bm5lci5xaGNwDQorCWVjaG8uVG8gdmlldyB0aGUgaGVscCBm
aWxlOg0KKwllY2hvLl4+IGFzc2lzdGFudCAtY29sbGVjdGlvbkZpbGUgJUJVSUxERElSJVxxdGhl
bHBcd3B0cnVubmVyLmdoYw0KKwlnb3RvIGVuZA0KKykNCisNCitpZiAiJTEiID09ICJkZXZoZWxw
IiAoDQorCSVTUEhJTlhCVUlMRCUgLWIgZGV2aGVscCAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElS
JS9kZXZoZWxwDQorCWlmIGVycm9ybGV2ZWwgMSBleGl0IC9iIDENCisJZWNoby4NCisJZWNoby5C
dWlsZCBmaW5pc2hlZC4NCisJZ290byBlbmQNCispDQorDQoraWYgIiUxIiA9PSAiZXB1YiIgKA0K
KwklU1BISU5YQlVJTEQlIC1iIGVwdWIgJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvZXB1Yg0K
KwlpZiBlcnJvcmxldmVsIDEgZXhpdCAvYiAxDQorCWVjaG8uDQorCWVjaG8uQnVpbGQgZmluaXNo
ZWQuIFRoZSBlcHViIGZpbGUgaXMgaW4gJUJVSUxERElSJS9lcHViLg0KKwlnb3RvIGVuZA0KKykN
CisNCitpZiAiJTEiID09ICJsYXRleCIgKA0KKwklU1BISU5YQlVJTEQlIC1iIGxhdGV4ICVBTExT
UEhJTlhPUFRTJSAlQlVJTERESVIlL2xhdGV4DQorCWlmIGVycm9ybGV2ZWwgMSBleGl0IC9iIDEN
CisJZWNoby4NCisJZWNoby5CdWlsZCBmaW5pc2hlZDsgdGhlIExhVGVYIGZpbGVzIGFyZSBpbiAl
QlVJTERESVIlL2xhdGV4Lg0KKwlnb3RvIGVuZA0KKykNCisNCitpZiAiJTEiID09ICJsYXRleHBk
ZiIgKA0KKwklU1BISU5YQlVJTEQlIC1iIGxhdGV4ICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIl
L2xhdGV4DQorCWNkICVCVUlMRERJUiUvbGF0ZXgNCisJbWFrZSBhbGwtcGRmDQorCWNkICVCVUlM
RERJUiUvLi4NCisJZWNoby4NCisJZWNoby5CdWlsZCBmaW5pc2hlZDsgdGhlIFBERiBmaWxlcyBh
cmUgaW4gJUJVSUxERElSJS9sYXRleC4NCisJZ290byBlbmQNCispDQorDQoraWYgIiUxIiA9PSAi
bGF0ZXhwZGZqYSIgKA0KKwklU1BISU5YQlVJTEQlIC1iIGxhdGV4ICVBTExTUEhJTlhPUFRTJSAl
QlVJTERESVIlL2xhdGV4DQorCWNkICVCVUlMRERJUiUvbGF0ZXgNCisJbWFrZSBhbGwtcGRmLWph
DQorCWNkICVCVUlMRERJUiUvLi4NCisJZWNoby4NCisJZWNoby5CdWlsZCBmaW5pc2hlZDsgdGhl
IFBERiBmaWxlcyBhcmUgaW4gJUJVSUxERElSJS9sYXRleC4NCisJZ290byBlbmQNCispDQorDQor
aWYgIiUxIiA9PSAidGV4dCIgKA0KKwklU1BISU5YQlVJTEQlIC1iIHRleHQgJUFMTFNQSElOWE9Q
VFMlICVCVUlMRERJUiUvdGV4dA0KKwlpZiBlcnJvcmxldmVsIDEgZXhpdCAvYiAxDQorCWVjaG8u
DQorCWVjaG8uQnVpbGQgZmluaXNoZWQuIFRoZSB0ZXh0IGZpbGVzIGFyZSBpbiAlQlVJTERESVIl
L3RleHQuDQorCWdvdG8gZW5kDQorKQ0KKw0KK2lmICIlMSIgPT0gIm1hbiIgKA0KKwklU1BISU5Y
QlVJTEQlIC1iIG1hbiAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9tYW4NCisJaWYgZXJyb3Js
ZXZlbCAxIGV4aXQgL2IgMQ0KKwllY2hvLg0KKwllY2hvLkJ1aWxkIGZpbmlzaGVkLiBUaGUgbWFu
dWFsIHBhZ2VzIGFyZSBpbiAlQlVJTERESVIlL21hbi4NCisJZ290byBlbmQNCispDQorDQoraWYg
IiUxIiA9PSAidGV4aW5mbyIgKA0KKwklU1BISU5YQlVJTEQlIC1iIHRleGluZm8gJUFMTFNQSElO
WE9QVFMlICVCVUlMRERJUiUvdGV4aW5mbw0KKwlpZiBlcnJvcmxldmVsIDEgZXhpdCAvYiAxDQor
CWVjaG8uDQorCWVjaG8uQnVpbGQgZmluaXNoZWQuIFRoZSBUZXhpbmZvIGZpbGVzIGFyZSBpbiAl
QlVJTERESVIlL3RleGluZm8uDQorCWdvdG8gZW5kDQorKQ0KKw0KK2lmICIlMSIgPT0gImdldHRl
eHQiICgNCisJJVNQSElOWEJVSUxEJSAtYiBnZXR0ZXh0ICVJMThOU1BISU5YT1BUUyUgJUJVSUxE
RElSJS9sb2NhbGUNCisJaWYgZXJyb3JsZXZlbCAxIGV4aXQgL2IgMQ0KKwllY2hvLg0KKwllY2hv
LkJ1aWxkIGZpbmlzaGVkLiBUaGUgbWVzc2FnZSBjYXRhbG9ncyBhcmUgaW4gJUJVSUxERElSJS9s
b2NhbGUuDQorCWdvdG8gZW5kDQorKQ0KKw0KK2lmICIlMSIgPT0gImNoYW5nZXMiICgNCisJJVNQ
SElOWEJVSUxEJSAtYiBjaGFuZ2VzICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL2NoYW5nZXMN
CisJaWYgZXJyb3JsZXZlbCAxIGV4aXQgL2IgMQ0KKwllY2hvLg0KKwllY2hvLlRoZSBvdmVydmll
dyBmaWxlIGlzIGluICVCVUlMRERJUiUvY2hhbmdlcy4NCisJZ290byBlbmQNCispDQorDQoraWYg
IiUxIiA9PSAibGlua2NoZWNrIiAoDQorCSVTUEhJTlhCVUlMRCUgLWIgbGlua2NoZWNrICVBTExT
UEhJTlhPUFRTJSAlQlVJTERESVIlL2xpbmtjaGVjaw0KKwlpZiBlcnJvcmxldmVsIDEgZXhpdCAv
YiAxDQorCWVjaG8uDQorCWVjaG8uTGluayBjaGVjayBjb21wbGV0ZTsgbG9vayBmb3IgYW55IGVy
cm9ycyBpbiB0aGUgYWJvdmUgb3V0cHV0IF4NCitvciBpbiAlQlVJTERESVIlL2xpbmtjaGVjay9v
dXRwdXQudHh0Lg0KKwlnb3RvIGVuZA0KKykNCisNCitpZiAiJTEiID09ICJkb2N0ZXN0IiAoDQor
CSVTUEhJTlhCVUlMRCUgLWIgZG9jdGVzdCAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9kb2N0
ZXN0DQorCWlmIGVycm9ybGV2ZWwgMSBleGl0IC9iIDENCisJZWNoby4NCisJZWNoby5UZXN0aW5n
IG9mIGRvY3Rlc3RzIGluIHRoZSBzb3VyY2VzIGZpbmlzaGVkLCBsb29rIGF0IHRoZSBeDQorcmVz
dWx0cyBpbiAlQlVJTERESVIlL2RvY3Rlc3Qvb3V0cHV0LnR4dC4NCisJZ290byBlbmQNCispDQor
DQoraWYgIiUxIiA9PSAieG1sIiAoDQorCSVTUEhJTlhCVUlMRCUgLWIgeG1sICVBTExTUEhJTlhP
UFRTJSAlQlVJTERESVIlL3htbA0KKwlpZiBlcnJvcmxldmVsIDEgZXhpdCAvYiAxDQorCWVjaG8u
DQorCWVjaG8uQnVpbGQgZmluaXNoZWQuIFRoZSBYTUwgZmlsZXMgYXJlIGluICVCVUlMRERJUiUv
eG1sLg0KKwlnb3RvIGVuZA0KKykNCisNCitpZiAiJTEiID09ICJwc2V1ZG94bWwiICgNCisJJVNQ
SElOWEJVSUxEJSAtYiBwc2V1ZG94bWwgJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvcHNldWRv
eG1sDQorCWlmIGVycm9ybGV2ZWwgMSBleGl0IC9iIDENCisJZWNoby4NCisJZWNoby5CdWlsZCBm
aW5pc2hlZC4gVGhlIHBzZXVkby1YTUwgZmlsZXMgYXJlIGluICVCVUlMRERJUiUvcHNldWRveG1s
Lg0KKwlnb3RvIGVuZA0KKykNCisNCis6ZW5kDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy91c2FnZS5y
c3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci9kb2NzL3VzYWdlLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNThjY2E2ZWNhOWU3OWU2NTFkODU0
MTNlM2U2YTI5YTE2MTRmODViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy91c2FnZS5yc3QK
QEAgLTAsMCArMSwyMzggQEAKK0dldHRpbmcgU3RhcnRlZAorPT09PT09PT09PT09PT09CisKK0lu
c3RhbGxpbmcgd3B0cnVubmVyCistLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgZWFzaWVzdCB3
YXkgdG8gaW5zdGFsbCB3cHRydW5uZXIgaXMgaW50byBhIHZpcnR1YWxlbnYsIHVzaW5nIHBpcDo6
CisKKyAgdmlydHVhbGVudiB3cHRydW5uZXIKKyAgY2Qgd3B0cnVubmVyCisgIHNvdXJjZSBiaW4v
YWN0aXZhdGUKKyAgcGlwIGluc3RhbGwgd3B0cnVubmVyCisKK1RoaXMgd2lsbCBpbnN0YWxsIHRo
ZSBiYXNlIGRlcGVuZGVuY2llcyBmb3Igd3B0cnVubmVyLCBidXQgbm90IGFueQorZXh0cmEgZGVw
ZW5kZW5jaWVzIHJlcXVpcmVkIHRvIHRlc3QgYWdhaW5zdCBzcGVjaWZpYyBicm93c2Vycy4gSW4K
K29yZGVyIHRvIGRvIHRoaXMgeW91IG11c3QgdXNlIHVzZSB0aGUgZXh0cmEgcmVxdWlyZW1lbnRz
IGZpbGVzIGluCitgYCRWSVJUVUFMX0VOVi9yZXF1aXJlbWVudHMvcmVxdWlyZW1lbnRzX2Jyb3dz
ZXIudHh0YGAuIEZvciBleGFtcGxlLAoraW4gb3JkZXIgdG8gdGVzdCBhZ2FpbnN0IEZpcmVmb3gg
eW91IHdvdWxkIGhhdmUgdG8gcnVuOjoKKworICBwaXAgaW5zdGFsbCAtciByZXF1aXJlbWVudHMv
cmVxdWlyZW1lbnRzX2ZpcmVmb3gudHh0CisKK0lmIHlvdSBpbnRlbmQgdG8gd29yayBvbiB0aGUg
Y29kZSwgdGhlIGBgLWVgYCBvcHRpb24gdG8gcGlwIHNob3VsZCBiZQordXNlZCBpbiBjb21iaW5h
dGlvbiB3aXRoIGEgc291cmNlIGNoZWNrb3V0IGkuZS4gaW5zaWRlIGEgdmlydHVhbAorZW52aXJv
bm1lbnQgY3JlYXRlZCBhcyBhYm92ZTo6CisKKyAgZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNv
bS93M2Mvd3B0cnVubmVyLmdpdAorICBjZCB3cHRydW5uZXIKKyAgcGlwIGluc3RhbGwgLWUgLi8K
KworSW4gYWRkaXRpb24gdG8gdGhlIGRlcGVuZGVuY2llcyBpbnN0YWxsZWQgYnkgcGlwLCB3cHRy
dW5uZXIgcmVxdWlyZXMKK2EgY29weSBvZiB0aGUgd2ViLXBsYXRmb3JtLXRlc3RzIHJlcG9zaXRv
cnkuIFRoaXMgY2FuIGJlIGxvY2F0ZWQKK2FueXdoZXJlIG9uIHRoZSBmaWxlc3lzdGVtLCBidXQg
dGhlIGVhc2llc3Qgb3B0aW9uIGlzIHRvIHB1dCBpdAordW5kZXIgdGhlIHNhbWUgcGFyZW50IGRp
cmVjdG9yeSBhcyB0aGUgd3B0cnVubmVyIGNoZWNrb3V0OjoKKworICBnaXQgY2xvbmUgaHR0cHM6
Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMuZ2l0CisKK0l0IGlzIGFsc28gbmVj
ZXNzYXJ5IHRvIGdlbmVyYXRlIGEgd2ViLXBsYXRmb3JtLXRlc3RzIGBgTUFOSUZFU1QuanNvbmBg
CitmaWxlLiBJdCdzIHJlY29tbWVuZGVkIHRvIGFsc28gcHV0IHRoYXQgdW5kZXIgdGhlIHNhbWUg
cGFyZW50IGRpcmVjdG9yeSBhcwordGhlIHdwdHJ1bm5lciBjaGVja291dCwgaW4gYSBkaXJlY3Rv
cnkgbmFtZWQgYGBtZXRhYGA6OgorCisgIG1rZGlyIG1ldGEKKyAgY2Qgd2ViLXBsYXRmb3JtLXRl
c3RzCisgIHB5dGhvbiBtYW5pZmVzdCAtLXBhdGggLi4vbWV0YS9NQU5JRkVTVC5qc29uCisKK1Ro
ZSBgYE1BTklGRVNULmpzb25gYCBmaWxlIG5lZWRzIHRvIGJlIHJlZ2VuZXJhdGVkIGVhY2ggdGlt
ZSB0aGUKK3dlYi1wbGF0Zm9ybS10ZXN0cyBjaGVja291dCBpcyB1cGRhdGVkLiBUbyBhaWQgd2l0
aCB0aGUgdXBkYXRlIHByb2Nlc3MKK3RoZXJlIGlzIGEgdG9vbCBjYWxsZWQgYGB3cHR1cGRhdGVg
YCwgd2hpY2ggaXMgZGVzY3JpYmVkIGluCis6cmVmOmB3cHR1cGRhdGUtbGFiZWxgLgorCitSdW5u
aW5nIHRoZSBUZXN0cworLS0tLS0tLS0tLS0tLS0tLS0KKworQSB0ZXN0IHJ1biBpcyBzdGFydGVk
IHVzaW5nIHRoZSBgYHdwdHJ1bm5lcmBgIGNvbW1hbmQuICBUaGUgY29tbWFuZAordGFrZXMgbXVs
dGlwbGUgb3B0aW9ucywgb2Ygd2hpY2ggdGhlIGZvbGxvd2luZyBhcmUgbW9zdCBzaWduaWZpY2Fu
dDoKKworYGAtLXByb2R1Y3RgYCAoZGVmYXVsdHMgdG8gYGZpcmVmb3hgKQorICBUaGUgcHJvZHVj
dCB0byB0ZXN0IGFnYWluc3Q6IGBjaHJvbWVgLCBgZmlyZWZveGAsIG9yIGBzZXJ2b2AuCisKK2Bg
LS1iaW5hcnlgYCAocmVxdWlyZWQgaWYgcHJvZHVjdCBpcyBgZmlyZWZveGAgb3IgYHNlcnZvYCkK
KyAgVGhlIHBhdGggdG8gYSBiaW5hcnkgZmlsZSBmb3IgdGhlIHByb2R1Y3QgKGJyb3dzZXIpIHRv
IHRlc3QgYWdhaW5zdC4KKworYGAtLXdlYmRyaXZlci1iaW5hcnlgYCAocmVxdWlyZWQgaWYgcHJv
ZHVjdCBpcyBgY2hyb21lYCkKKyAgVGhlIHBhdGggdG8gYSBgKmRyaXZlcmAgYmluYXJ5OyBlLmcu
LCBhIGBjaHJvbWVkcml2ZXJgIGJpbmFyeS4KKworYGAtLWNlcnR1dGlsLWJpbmFyeWBgIChyZXF1
aXJlZCBpZiBwcm9kdWN0IGlzIGBmaXJlZm94YCBbI11fKQorICBUaGUgcGF0aCB0byBhIGBjZXJ0
dXRpbGAgYmluYXJ5IChmb3IgdGVzdHMgdGhhdCBtdXN0IGJlIHJ1biBvdmVyIGh0dHBzKS4KKwor
YGAtLW1ldGFkYXRhYGAgKHJlcXVpcmVkIG9ubHkgd2hlbiBub3QgYHVzaW5nIGRlZmF1bHQgcGF0
aHNgXykKKyAgVGhlIHBhdGggdG8gYSBkaXJlY3RvcnkgY29udGFpbmluZyB0ZXN0IG1ldGFkYXRh
LiBbI11fCisKK2BgLS10ZXN0c2BgIChyZXF1aXJlZCBvbmx5IHdoZW4gbm90IGB1c2luZyBkZWZh
dWx0IHBhdGhzYF8pCisgIFRoZSBwYXRoIHRvIGEgZGlyZWN0b3J5IGNvbnRhaW5pbmcgYSB3ZWIt
cGxhdGZvcm0tdGVzdHMgY2hlY2tvdXQuCisKK2BgLS1wcmVmcy1yb290YGAgKHJlcXVpcmVkIG9u
bHkgd2hlbiB0ZXN0aW5nIGEgRmlyZWZveCBiaW5hcnkpCisgIFRoZSBwYXRoIHRvIGEgZGlyZWN0
b3J5IGNvbnRhaW5pbmcgRmlyZWZveCB0ZXN0LWhhcm5lc3MgcHJlZmVyZW5jZXMuIFsjXV8KKwor
YGAtLWNvbmZpZ2BgIChzaG91bGQgZGVmYXVsdCB0byBgd3B0cnVubmVyLmRlZmF1bHQuaW5pYCkK
KyAgVGhlIHBhdGggdG8gdGhlIGNvbmZpZyAoaW5pKSBmaWxlLgorCisuLiBbI10gVGhlIGBgLS1j
ZXJ0dXRpbC1iaW5hcnlgYCBvcHRpb24gaXMgcmVxdWlyZWQgd2hlbiB0aGUgcHJvZHVjdCBpcwor
ICAgYGBmaXJlZm94YGAgdW5sZXNzIGBgLS1zc2wtdHlwZT1ub25lYGAgaXMgc3BlY2lmaWVkLgor
CisuLiBbI10gVGhlIGBgLS1tZXRhZGF0YWBgIHBhdGggaXMgdG8gYSBkaXJlY3RvcnkgdGhhdCBj
b250YWluczoKKworICAqIGEgYGBNQU5JRkVTVC5qc29uYGAgZmlsZSAodGhlIHdlYi1wbGF0Zm9y
bS10ZXN0cyBkb2N1bWVudGF0aW9uIGhhcworICAgIGluc3RydWN0aW9ucyBvbiBnZW5lcmF0aW5n
IHRoaXMgZmlsZSkKKyAgKiAob3B0aW9uYWxseSkgYW55IGV4cGVjdGF0aW9uIGZpbGVzIChzZWUg
OnJlZjpgd3B0dXBkYXRlLWxhYmVsYCkKKworLi4gWyNdIEV4YW1wbGUgYGAtLXByZWZzLXJvb3Rg
YCB2YWx1ZTogYGB+L21vemlsbGEtY2VudHJhbC90ZXN0aW5nL3Byb2ZpbGVzYGAuCisKK1RoZXJl
IGFyZSBhbHNvIGEgdmFyaWV0eSBvZiBvdGhlciBjb21tYW5kLWxpbmUgb3B0aW9ucyBhdmFpbGFi
bGU7IHVzZQorYGAtLWhlbHBgYCB0byBsaXN0IHRoZW0uCisKK1RoZSBmb2xsb3dpbmcgZXhhbXBs
ZXMgc2hvdyBob3cgdG8gc3RhcnQgd3B0cnVubmVyIHdpdGggdmFyaW91cyBvcHRpb25zLgorCist
LS0tLS0tLS0tLS0tLS0tLS0KK1N0YXJ0aW5nIHdwdHJ1bm5lcgorLS0tLS0tLS0tLS0tLS0tLS0t
CisKK1RoZSBleGFtcGxlcyBiZWxvdyBhc3N1bWUgdGhlIGZvbGxvd2luZyBkaXJlY3RvcnkgbGF5
b3V0LAordGhvdWdoIG5vIHNwZWNpZmljIGZvbGRlciBzdHJ1Y3R1cmUgaXMgcmVxdWlyZWQ6Ogor
CisgIH4vdGVzdHR3Zi93cHRydW5uZXIgICAgICAgICAgIyB3cHRydW5uZXIgY2hlY2tvdXQKKyAg
fi90ZXN0dHdmL3dlYi1wbGF0Zm9ybS10ZXN0cyAjIHdlYi1wbGF0Zm9ybS10ZXN0cyBjaGVja291
dAorICB+L3Rlc3R0d2YvbWV0YSAgICAgICAgICAgICAgICMgbWV0YWRhdGEKKworVG8gdGVzdCBh
IEZpcmVmb3ggTmlnaHRseSBidWlsZCBpbiBhbiBPUyBYIGVudmlyb25tZW50LCB5b3UgbWlnaHQg
c3RhcnQKK3dwdHJ1bm5lciB1c2luZyBzb21ldGhpbmcgc2ltaWxhciB0byB0aGUgZm9sbG93aW5n
IGV4YW1wbGU6OgorCisgIHdwdHJ1bm5lciAtLW1ldGFkYXRhPX4vdGVzdHR3Zi9tZXRhLyAtLXRl
c3RzPX4vdGVzdHR3Zi93ZWItcGxhdGZvcm0tdGVzdHMvIFwKKyAgICAtLWJpbmFyeT1+L21vemls
bGEtY2VudHJhbC9vYmoteDg2XzY0LWFwcGxlLWRhcndpbjE0LjMuMC9kaXN0L05pZ2h0bHkuYXBw
L0NvbnRlbnRzL01hY09TL2ZpcmVmb3ggXAorICAgIC0tY2VydHV0aWwtYmluYXJ5PX4vbW96aWxs
YS1jZW50cmFsL29iai14ODZfNjQtYXBwbGUtZGFyd2luMTQuMy4wL3NlY3VyaXR5L25zcy9jbWQv
Y2VydHV0aWwvY2VydHV0aWwgXAorICAgIC0tcHJlZnMtcm9vdD1+L21vemlsbGEtY2VudHJhbC90
ZXN0aW5nL3Byb2ZpbGVzCisKKworQW5kIHRvIHRlc3QgYSBDaHJvbWl1bSBidWlsZCBpbiBhbiBP
UyBYIGVudmlyb25tZW50LCB5b3UgbWlnaHQgc3RhcnQKK3dwdHJ1bm5lciB1c2luZyBzb21ldGhp
bmcgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nIGV4YW1wbGU6OgorCisgIHdwdHJ1bm5lciAtLW1l
dGFkYXRhPX4vdGVzdHR3Zi9tZXRhLyAtLXRlc3RzPX4vdGVzdHR3Zi93ZWItcGxhdGZvcm0tdGVz
dHMvIFwKKyAgICAtLWJpbmFyeT1+L2Nocm9taXVtL3NyYy9vdXQvUmVsZWFzZS9DaHJvbWl1bS5h
cHAvQ29udGVudHMvTWFjT1MvQ2hyb21pdW0gXAorICAgIC0td2ViZHJpdmVyLWJpbmFyeT0vdXNy
L2xvY2FsL2Jpbi9jaHJvbWVkcml2ZXIgLS1wcm9kdWN0PWNocm9tZQorCistLS0tLS0tLS0tLS0t
LS0tLS0tLQorUnVubmluZyB0ZXN0IHN1YnNldHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1Rv
IHJlc3RyaWN0IGEgdGVzdCBydW4ganVzdCB0byB0ZXN0cyBpbiBhIHBhcnRpY3VsYXIgd2ViLXBs
YXRmb3JtLXRlc3RzCitzdWJkaXJlY3RvcnksIHNwZWNpZnkgdGhlIGRpcmVjdG9yeSBuYW1lIGlu
IHRoZSBwb3NpdGlvbmFsIGFyZ3VtZW50cyBhZnRlcgordGhlIG9wdGlvbnM7IGZvciBleGFtcGxl
LCBydW4ganVzdCB0aGUgdGVzdHMgaW4gdGhlIGBkb21gIHN1YmRpcmVjdG9yeTo6CisKKyAgd3B0
cnVubmVyIC0tbWV0YWRhdGE9fi90ZXN0dHdmL21ldGEgLS10ZXN0cz1+L3Rlc3R0d2Yvd2ViLXBs
YXRmb3JtLXRlc3RzLyBcCisgICAgLS1iaW5hcnk9L3BhdGgvdG8vZmlyZWZveCAtLWNlcnR1dGls
LWJpbmFyeT0vcGF0aC90by9jZXJ0dXRpbCBcCisgICAgLS1wcmVmcy1yb290PS9wYXRoL3RvL3Rl
c3RpbmcvcHJvZmlsZXMgXAorICAgIGRvbQorCistLS0tLS0tLS0tLS0tLS0tLS0tCitSdW5uaW5n
IGluIHBhcmFsbGVsCistLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RvIHNwZWVkIHVwIHRoZSB0ZXN0
aW5nIHByb2Nlc3MsIHVzZSB0aGUgYGAtLXByb2Nlc3Nlc2BgIG9wdGlvbiB0byBoYXZlCit3cHRy
dW5uZXIgcnVuIG11bHRpcGxlIGJyb3dzZXIgaW5zdGFuY2VzIGluIHBhcmFsbGVsLiBGb3IgZXhh
bXBsZSwgdG8KK2hhdmUgd3B0cnVubmVyIGF0dGVtcHQgdG8gcnVuIHRlc3RzIGFnYWluc3Qgd2l0
aCBzaXggYnJvd3NlciBpbnN0YW5jZXMKK2luIHBhcmFsbGVsLCBzcGVjaWZ5IGBgLS1wcm9jZXNz
ZXM9NmBgLiBCdXQgbm90ZSB0aGF0IGJlaGF2aW91ciBpbiB0aGlzCittb2RlIGlzIG5lY2Vzc2Fy
aWx5IGxlc3MgZGV0ZXJtaW5pc3RpYyB0aGFuIHdpdGggYGAtLXByb2Nlc3Nlcz0xYGAgKHRoZQor
ZGVmYXVsdCksIHNvIHRoZXJlIG1heSBiZSBtb3JlIG5vaXNlIGluIHRoZSB0ZXN0IHJlc3VsdHMu
CisKKy0tLS0tLS0tLS0tLS0tLS0tLS0KK1VzaW5nIGRlZmF1bHQgcGF0aHMKKy0tLS0tLS0tLS0t
LS0tLS0tLS0KKworVGhlIChvdGhlcndpc2UtcmVxdWlyZWQpIGBgLS10ZXN0c2BgIGFuZCBgYC0t
bWV0YWRhdGFgYCBjb21tYW5kLWxpbmUKK29wdGlvbnMvZmxhZ3MgYmUgb21pdHRlZCBpZiBhbnkg
Y29uZmlndXJhdGlvbiBmaWxlIGlzIGZvdW5kIHRoYXQKK2NvbnRhaW5zIGEgc2VjdGlvbiBzcGVj
aWZ5aW5nIHRoZSBgYHRlc3RzYGAgYW5kIGBgbWV0YWRhdGFgYCBrZXlzLgorCitTZWUgdGhlIGBD
b25maWd1cmF0aW9uIEZpbGVgXyBzZWN0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0Citj
b25maWd1cmF0aW9uIGZpbGVzLCBpbmNsdWRpbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlaXIgZXhw
ZWN0ZWQKK2xvY2F0aW9ucy4KKworVGhlIGNvbnRlbnQgb2YgdGhlIGBgd3B0cnVubmVyLmRlZmF1
bHQuaW5pYGAgZGVmYXVsdCBjb25maWd1cmF0aW9uIGZpbGUKK21ha2VzIHdwdHJ1bm5lciBsb29r
IGZvciB0ZXN0cyAodGhhdCBpcywgYSB3ZWItcGxhdGZvcm0tdGVzdHMgY2hlY2tvdXQpCithcyBh
IHN1YmRpcmVjdG9yeSBvZiB0aGUgY3VycmVudCBkaXJlY3RvcnkgbmFtZWQgYGB0ZXN0c2BgLCBh
bmQgZm9yCittZXRhZGF0YSBmaWxlcyBpbiBhIHN1YmRpcmVjdG9yeSBvZiB0aGUgY3VycmVudCBk
aXJlY3RvcnkgbmFtZWQgYGBtZXRhYGAuCisKK091dHB1dAorLS0tLS0tCisKK3dwdHJ1bm5lciB1
c2VzIHRoZSA6cHk6bW9kOmBtb3psb2dgIHBhY2thZ2UgZm9yIG91dHB1dC4gVGhpcworc3RydWN0
dXJlcyBldmVudHMgc3VjaCBhcyB0ZXN0IHJlc3VsdHMgb3IgbG9nIG1lc3NhZ2VzIGFzIEpTT04g
b2JqZWN0cwordGhhdCBjYW4gdGhlbiBiZSBmZWQgdG8gb3RoZXIgdG9vbHMgZm9yIGludGVycHJl
dGF0aW9uLiBNb3JlIGRldGFpbHMKK2Fib3V0IHRoZSBtZXNzYWdlIGZvcm1hdCBhcmUgZ2l2ZW4g
aW4gdGhlCis6cHk6bW9kOmBtb3psb2dgIGRvY3VtZW50YXRpb24uCisKK0J5IGRlZmF1bHQgdGhl
IHJhdyBKU09OIG1lc3NhZ2VzIGFyZSBkdW1wZWQgdG8gc3Rkb3V0LiBUaGlzIGlzCitjb252ZW5p
ZW50IGZvciBwaXBpbmcgaW50byBvdGhlciB0b29scywgYnV0IG5vdCBpZGVhbCBmb3IgaHVtYW5z
CityZWFkaW5nIHRoZSBvdXRwdXQuIDpweTptb2Q6YG1vemxvZ2AgY29tZXMgd2l0aCBzZXZlcmFs
IG90aGVyCitmb3JtYXR0ZXJzLCB3aGljaCBhcmUgYWNjZXNzaWJsZSB0aHJvdWdoIGNvbW1hbmQg
bGluZSBvcHRpb25zLiBUaGUKK2dlbmVyYWwgZm9ybWF0IG9mIHRoZXNlIG9wdGlvbnMgaXMgYGAt
LWxvZy1uYW1lPWRlc3RgYCwgd2hlcmUgYGBuYW1lYGAKK2lzIHRoZSBuYW1lIG9mIHRoZSBmb3Jt
YXQgYW5kIGBgZGVzdGBgIGlzIGEgcGF0aCB0byBhIGRlc3RpbmF0aW9uCitmaWxlLCBvciBgYC1g
YCBmb3Igc3Rkb3V0LiBUaGUgcmF3IEpTT04gZGF0YSBpcyB3cml0dGVuIGJ5IHRoZSBgYHJhd2Bg
Citmb3JtYXR0ZXIgc28sIHRoZSBkZWZhdWx0IHNldHVwIGNvcnJlc3BvbmRzIHRvIGBgLS1sb2ct
cmF3PS1gYC4KKworQSByZWFzb25hYmxlIG91dHB1dCBmb3JtYXQgZm9yIGh1bWFucyBpcyBwcm92
aWRlZCBhcyBgYG1hY2hgYC4gU28gaW4KK29yZGVyIHRvIG91dHB1dCB0aGUgZnVsbCByYXcgbG9n
IHRvIGEgZmlsZSBhbmQgYSBodW1hbi1yZWFkYWJsZQorc3VtbWFyeSB0byBzdGRvdXQsIG9uZSBt
aWdodCBwYXNzIHRoZSBvcHRpb25zOjoKKworICAtLWxvZy1yYXc9b3V0cHV0LmxvZyAtLWxvZy1t
YWNoPS0KKworQ29uZmlndXJhdGlvbiBGaWxlCistLS0tLS0tLS0tLS0tLS0tLS0KKword3B0cnVu
bmVyIHVzZXMgYSBgYC5pbmlgYCBmaWxlIHRvIGNvbnRyb2wgc29tZSBjb25maWd1cmF0aW9uCitz
ZWN0aW9ucy4gVGhlIGZpbGUgaGFzIHRocmVlIHNlY3Rpb25zOyBgYFtwcm9kdWN0c11gYCwKK2Bg
W21hbmlmZXN0OmRlZmF1bHRdYGAgYW5kIGBgW3dlYi1wbGF0Zm9ybS10ZXN0c11gYC4KKworYGBb
cHJvZHVjdHNdYGAgaXMgdXNlZCB0bworZGVmaW5lIHRoZSBzZXQgb2YgYXZhaWxhYmxlIHByb2R1
Y3RzLiBCeSBkZWZhdWx0IHRoaXMgc2VjdGlvbiBpcyBlbXB0eQord2hpY2ggbWVhbnMgdGhhdCBh
bGwgdGhlIHByb2R1Y3RzIGRpc3RyaWJ1dGVkIHdpdGggd3B0cnVubmVyIGFyZQorZW5hYmxlZCAo
YWx0aG91Z2ggdGhlaXIgZGVwZW5kZW5jaWVzIG1heSBub3QgYmUgaW5zdGFsbGVkKS4gVGhlIHNl
dAorb2YgZW5hYmxlZCBwcm9kdWN0cyBjYW4gYmUgc2V0IGJ5IHVzaW5nIHRoZSBwcm9kdWN0IG5h
bWUgYXMgdGhlCitrZXkuIEZvciBidWlsdCBpbiBwcm9kdWN0cyB0aGUgdmFsdWUgaXMgZW1wdHku
IEl0IGlzIGFsc28gcG9zc2libGUgdG8KK3Byb3ZpZGUgdGhlIHBhdGggdG8gYSBzY3JpcHQgaW1w
bGVtZW50aW5nIHRoZSBicm93c2VyIGZ1bmN0aW9uYWxpdHkKK2UuZy46OgorCisgIFtwcm9kdWN0
c10KKyAgY2hyb21lID0KKyAgbmV0c2NhcGU0ID0gcGF0aC90by9uZXRzY2FwZS5weQorCitgYFtt
YW5pZmVzdDpkZWZhdWx0XWBgIHNwZWNpZmllcyB0aGUgZGVmYXVsdCBwYXRocyBmb3IgdGhlIHRl
c3RzIGFuZCBtZXRhZGF0YSwKK3JlbGF0aXZlIHRvIHRoZSBjb25maWcgZmlsZS4gRm9yIGV4YW1w
bGU6OgorCisgIFttYW5pZmVzdDpkZWZhdWx0XQorICB0ZXN0cyA9IH4vdGVzdHR3Zi93ZWItcGxh
dGZvcm0tdGVzdHMKKyAgbWV0YWRhdGEgPSB+L3Rlc3R0d2YvbWV0YQorCisKK2BgW3dlYi1wbGF0
Zm9ybS10ZXN0c11gYCBpcyB1c2VkIHRvIHNldCB0aGUgcHJvcGVydGllcyBvZiB0aGUgdXBzdHJl
YW0KK3JlcG9zaXRvcnkgd2hlbiB1cGRhdGluZyB0aGUgcGF0aHMuIGBgcmVtb3RlX3VybGBgIHNw
ZWNpZmllcyB0aGUgZ2l0Cit1cmwgdG8gcHVsbCBmcm9tOyBgYGJyYW5jaGBgIHRoZSBicmFuY2gg
dG8gc3luYyBhZ2FpbnN0IGFuZAorYGBzeW5jX3BhdGhgYCB0aGUgbG9jYWwgcGF0aCwgcmVsYXRp
dmUgdG8gdGhlIGNvbmZpZ3VyYXRpb24gZmlsZSwgdG8KK3VzZSB3aGVuIGNoZWNraW5nIG91dCB0
aGUgdGVzdHMgZS5nLjo6CisKKyAgW3dlYi1wbGF0Zm9ybS10ZXN0c10KKyAgcmVtb3RlX3VybCA9
IGh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzLmdpdAorICBicmFuY2gg
PSBtYXN0ZXIKKyAgc3luY19wYXRoID0gc3luYworCitBIGNvbmZpZ3VyYXRpb24gZmlsZSBtdXN0
IGNvbnRhaW4gYWxsIHRoZSBhYm92ZSBmaWVsZHM7IGZhbGxpbmcgYmFjawordG8gdGhlIGRlZmF1
bHQgdmFsdWVzIGZvciB1bnNwZWNpZmllZCBmaWVsZHMgaXMgbm90IHlldCBzdXBwb3J0ZWQuCisK
K1RoZSBgYHdwdHJ1bm5lcmBgIGFuZCBgYHdwdHVwZGF0ZWBgIGNvbW1hbmRzIHdpbGwgdXNlIGNv
bmZpZ3VyYXRpb24KK2ZpbGVzIGluIHRoZSBmb2xsb3dpbmcgb3JkZXI6CisKKyAqIEFueSBwYXRo
IHN1cHBsaWVkIHdpdGggYSBgYC0tY29uZmlnYGAgZmxhZyB0byB0aGUgY29tbWFuZC4KKworICog
QSBmaWxlIGNhbGxlZCBgYHdwdHJ1bm5lci5pbmlgYCBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkK
KworICogVGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmaWxlIChgYHdwdHJ1bm5lci5kZWZhdWx0
LmluaWBgIGluIHRoZQorICAgc291cmNlIGRpcmVjdG9yeSkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3Mv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiYzYx
YWY4ZTJlMDNhMTMxNWJhYTY5OWVlNWQ5YjhhYjMzNzg3MTgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci9kb2NzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjQgQEAKK1RoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0
LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1v
dmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3Mv
TWFrZWZpbGUKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci9kb2NzL2FyY2hpdGVjdHVyZS5zdmcKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL2NvbmYucHkKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci9kb2NzL2Rlc2lnbi5yc3QKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL2V4cGVjdGF0aW9uLnJzdAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvaW5k
ZXgucnN0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvZG9jcy9tYWtlLmJhdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvdXNhZ2UucnN0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci9yZXF1aXJlbWVudHMudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
ZGEzYTMzNGQzNzllZGU3OGVhOTZjMTUzMDkyOTQzZTBmNDQxYzdlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvcmVxdWlyZW1lbnRzLnR4dApAQCAtMCwwICsxLDUgQEAKK2h0bWw1bGliID09IDEuMC4x
Cittb3ppbmZvID09IDAuMTAKK21vemxvZyA9PSAzLjcKK21vemRlYnVnID09IDAuMQordXJsbGli
M1tzZWN1cmVdID09IDEuMjIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWUudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjVlNDgwNjg3MjJlZDMw
MTIzNTQzNjljMGQ3NGRkMmJkYTNkNzkyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVt
ZW50c19jaHJvbWUudHh0CkBAIC0wLDAgKzEsMiBAQAorbW96cHJvY2VzcyA9PSAwLjI2CitzZWxl
bml1bT09My4xMS4wCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lX2FuZHJvaWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9hbmRyb2lkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNWU0
ODA2ODcyMmVkMzAxMjM1NDM2OWMwZDc0ZGQyYmRhM2Q3OTI5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9hbmRyb2lkLnR4dApAQCAtMCwwICsxLDIgQEAKK21venBy
b2Nlc3MgPT0gMC4yNgorc2VsZW5pdW09PTMuMTEuMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1l
bnRzX2VkZ2UudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2VkZ2UudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI1ZTQ4
MDY4NzIyZWQzMDEyMzU0MzY5YzBkNzRkZDJiZGEzZDc5MjkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci9yZXF1aXJlbWVudHNfZWRnZS50eHQKQEAgLTAsMCArMSwyIEBACittb3pwcm9jZXNzID09IDAu
MjYKK3NlbGVuaXVtPT0zLjExLjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19maXJlZm94
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3JlcXVpcmVtZW50c19maXJlZm94LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ODJhNmEwOTIy
MWNlMTA4NjcyYWNmZjkyMTZhNzRkZWUwYjRkMTFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVx
dWlyZW1lbnRzX2ZpcmVmb3gudHh0CkBAIC0wLDAgKzEsOCBAQAorbWFyaW9uZXR0ZV9kcml2ZXIg
PT0gMi41LjAKK21venByb2ZpbGUgPT0gMC4yOQorbW96cHJvY2VzcyA9PSAwLjI2Cittb3pjcmFz
aCA9PSAxLjAKK21venJ1bm5lciA9PSA2LjE0Cittb3psZWFrID09IDAuMQorbW96aW5zdGFsbCA9
PSAxLjE1Cittb3pkb3dubG9hZCA9PSAxLjIzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNf
aWUudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2llLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNWU0ODA2ODcyMmVk
MzAxMjM1NDM2OWMwZDc0ZGQyYmRhM2Q3OTI5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWly
ZW1lbnRzX2llLnR4dApAQCAtMCwwICsxLDIgQEAKK21venByb2Nlc3MgPT0gMC4yNgorc2VsZW5p
dW09PTMuMTEuMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX29wZXJhLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Jl
cXVpcmVtZW50c19vcGVyYS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjVlNDgwNjg3MjJlZDMwMTIzNTQzNjlj
MGQ3NGRkMmJkYTNkNzkyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19vcGVy
YS50eHQKQEAgLTAsMCArMSwyIEBACittb3pwcm9jZXNzID09IDAuMjYKK3NlbGVuaXVtPT0zLjEx
LjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zYWZhcmkudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1l
bnRzX3NhZmFyaS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjVlNDgwNjg3MjJlZDMwMTIzNTQzNjljMGQ3NGRk
MmJkYTNkNzkyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zYWZhcmkudHh0
CkBAIC0wLDAgKzEsMiBAQAorbW96cHJvY2VzcyA9PSAwLjI2CitzZWxlbml1bT09My4xMS4wCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2F1Y2UudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3Nh
dWNlLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lMGFlN2UyNjJjNWZmNDhmNDgwNGE1MDhkYmM4OTRhNWFhYzFl
M2ZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NhdWNlLnR4dApAQCAtMCww
ICsxLDMgQEAKK21venByb2Nlc3MgPT0gMC4yNgorc2VsZW5pdW09PTMuMTEuMAorcmVxdWVzdHM9
PTIuMTguNApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NlcnZvLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVp
cmVtZW50c19zZXJ2by50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTExNWI3YWM0ZThmNmE2ZTQ3MDNhN2I2MWQy
NzE1MDc1ZTJmNjA1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zZXJ2by50
eHQKQEAgLTAsMCArMSBAQAorbW96cHJvY2VzcyA9PSAwLjI2CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1
aXJlbWVudHNfd2Via2l0LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c193ZWJraXQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjI1Y2M1ODQ2ZWU3MjA0OTIzMjE3Mzk2MTkxOTk2ZTE1ZmQyM2RjMTMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfd2Via2l0LnR4dApAQCAtMCwwICsxLDIgQEAKK21venBy
b2Nlc3MgPT0gMC4yNgorc2VsZW5pdW0gPT0gMy45LjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3NldHVwLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvc2V0dXAucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjNkM2VkZGUyNDRkMGI5ZTg4YWJiZGFhOGM1Nzlh
NGE4ODA3MjM2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3NldHVwLnB5CkBAIC0wLDAgKzEsNzEg
QEAKKyMgVGhpcyBTb3VyY2UgQ29kZSBGb3JtIGlzIHN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRo
ZSBNb3ppbGxhIFB1YmxpYworIyBMaWNlbnNlLCB2LiAyLjAuIElmIGEgY29weSBvZiB0aGUgTVBM
IHdhcyBub3QgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIGZpbGUsCisjIFlvdSBjYW4gb2J0YWluIG9u
ZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uCisKK2ltcG9ydCBnbG9iCitpbXBvcnQg
b3MKK2ltcG9ydCBzeXMKK2ltcG9ydCB0ZXh0d3JhcAorCitmcm9tIHNldHVwdG9vbHMgaW1wb3J0
IHNldHVwLCBmaW5kX3BhY2thZ2VzCisKK2hlcmUgPSBvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVsw
XQorCitQQUNLQUdFX05BTUUgPSAnd3B0cnVubmVyJworUEFDS0FHRV9WRVJTSU9OID0gJzEuMTQn
CisKKyMgRGVwZW5kZW5jaWVzCit3aXRoIG9wZW4ob3MucGF0aC5qb2luKGhlcmUsICJyZXF1aXJl
bWVudHMudHh0IikpIGFzIGY6CisgICAgZGVwcyA9IGYucmVhZCgpLnNwbGl0bGluZXMoKQorCisj
IEJyb3dzZXItc3BlY2lmaWMgcmVxdWlyZW1lbnRzCityZXF1aXJlbWVudHNfZmlsZXMgPSBnbG9i
Lmdsb2IoInJlcXVpcmVtZW50c18qLnR4dCIpCisKK3Byb2ZpbGVfZGVzdCA9IE5vbmUKK2Rlc3Rf
ZXhpc3RzID0gRmFsc2UKKworc2V0dXAobmFtZT1QQUNLQUdFX05BTUUsCisgICAgICB2ZXJzaW9u
PVBBQ0tBR0VfVkVSU0lPTiwKKyAgICAgIGRlc2NyaXB0aW9uPSJIYXJuZXNzIGZvciBydW5uaW5n
IHRoZSBXM0Mgd2ViLXBsYXRmb3JtLXRlc3RzIGFnYWluc3QgdmFyaW91cyBwcm9kdWN0cyIsCisg
ICAgICBhdXRob3I9J01vemlsbGEgQXV0b21hdGlvbiBhbmQgVGVzdGluZyBUZWFtJywKKyAgICAg
IGF1dGhvcl9lbWFpbD0ndG9vbHNAbGlzdHMubW96aWxsYS5vcmcnLAorICAgICAgbGljZW5zZT0n
TVBMIDIuMCcsCisgICAgICBwYWNrYWdlcz1maW5kX3BhY2thZ2VzKGV4Y2x1ZGU9WyJ0ZXN0cyIs
ICJtZXRhZGF0YSIsICJwcmVmcyJdKSwKKyAgICAgIGVudHJ5X3BvaW50cz17CisgICAgICAgICAg
J2NvbnNvbGVfc2NyaXB0cyc6IFsKKyAgICAgICAgICAgICAgJ3dwdHJ1bm5lciA9IHdwdHJ1bm5l
ci53cHRydW5uZXI6bWFpbicsCisgICAgICAgICAgICAgICd3cHR1cGRhdGUgPSB3cHRydW5uZXIu
dXBkYXRlOm1haW4nLAorICAgICAgICAgIF0KKyAgICAgIH0sCisgICAgICB6aXBfc2FmZT1GYWxz
ZSwKKyAgICAgIHBsYXRmb3Jtcz1bJ0FueSddLAorICAgICAgY2xhc3NpZmllcnM9WydEZXZlbG9w
bWVudCBTdGF0dXMgOjogNCAtIEJldGEnLAorICAgICAgICAgICAgICAgICAgICdFbnZpcm9ubWVu
dCA6OiBDb25zb2xlJywKKyAgICAgICAgICAgICAgICAgICAnSW50ZW5kZWQgQXVkaWVuY2UgOjog
RGV2ZWxvcGVycycsCisgICAgICAgICAgICAgICAgICAgJ0xpY2Vuc2UgOjogT1NJIEFwcHJvdmVk
IDo6IEJTRCBMaWNlbnNlJywKKyAgICAgICAgICAgICAgICAgICAnT3BlcmF0aW5nIFN5c3RlbSA6
OiBPUyBJbmRlcGVuZGVudCddLAorICAgICAgcGFja2FnZV9kYXRhPXsid3B0cnVubmVyIjogWyJl
eGVjdXRvcnMvdGVzdGhhcm5lc3NfbWFyaW9uZXR0ZS5qcyIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImV4ZWN1dG9ycy90ZXN0aGFybmVzc193ZWJkcml2ZXIuanMiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleGVjdXRvcnMvcmVmdGVzdC5qcyIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4ZWN1dG9ycy9yZWZ0ZXN0LXdhaXQu
anMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0aGFybmVzc3JlcG9y
dC5qcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3RoYXJuZXNzX3J1
bm5lci5odG1sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid3B0cnVubmVy
LmRlZmF1bHQuaW5pIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYnJvd3Nl
cnMvc2F1Y2Vfc2V0dXAvKiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBy
ZWZzLyoiXX0sCisgICAgICBpbmNsdWRlX3BhY2thZ2VfZGF0YT1UcnVlLAorICAgICAgZGF0YV9m
aWxlcz1bKCJyZXF1aXJlbWVudHMiLCByZXF1aXJlbWVudHNfZmlsZXMpXSwKKyAgICAgIGluc3Rh
bGxfcmVxdWlyZXM9ZGVwcworICAgICAgKQorCitpZiAiaW5zdGFsbCIgaW4gc3lzLmFyZ3Y6Cisg
ICAgcGF0aCA9IG9zLnBhdGgucmVscGF0aChvcy5wYXRoLmpvaW4oc3lzLnByZWZpeCwgInJlcXVp
cmVtZW50cyIpLCBvcy5jdXJkaXIpCisgICAgcHJpbnQgdGV4dHdyYXAuZmlsbCgiIiJJbiBvcmRl
ciB0byB1c2Ugd2l0aCBvbmUgb2YgdGhlIGJ1aWx0LWluIGJyb3dzZXIKK3Byb2R1Y3RzLCB5b3Ug
d2lsbCBuZWVkIHRvIGluc3RhbGwgdGhlIGV4dHJhIGRlcGVuZGVuY2llcy4gVGhlc2UgYXJlIHBy
b3ZpZGVkCithcyByZXF1aXJlbWVudHNfW25hbWVdLnR4dCBpbiB0aGUgJXMgZGlyZWN0b3J5IGFu
ZCBjYW4gYmUgaW5zdGFsbGVkIHVzaW5nCitlLmcuIiIiICUgcGF0aCwgODApCisKKyAgICBwcmlu
dCAiIiIKKworcGlwIGluc3RhbGwgLXIgJXMvcmVxdWlyZW1lbnRzX2ZpcmVmb3gudHh0CisiIiIg
JSBwYXRoCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRf
ZmFpbC5odG1sLmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2FuZF9mYWls
Lmh0bWwuaW5pCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxYWVmMDQ5Y2QxMjJmNzMzMmM2NmY1YTA4Nzk0N2U1MTJh
NTlkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVz
dF9hbmRfZmFpbC5odG1sLmluaQpAQCAtMCwwICsxLDMgQEAKK1tyZWZ0ZXN0X2FuZF9mYWlsLmh0
bWxdCisgIHR5cGU6IHJlZnRlc3QKKyAgZXhwZWN0ZWQ6IEZBSUwKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlX2ZhaWwuaHRtbC5pbmkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsLmh0bWwuaW5pCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQ3MmIzM2Y3NzY0YmRlNmUyYWVhN2JjMmNjZDhiZjM3MzliYWJhZDIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsLmh0bWwuaW5p
CkBAIC0wLDAgKzEsMyBAQAorW3JlZnRlc3RfY3ljbGVfZmFpbC5odG1sXQorICB0eXBlOiByZWZ0
ZXN0CisgIGV4cGVjdGVkOiBGQUlMCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRl
c3QvcmVmdGVzdF9tYXRjaF9mYWlsLmh0bWwuaW5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0
L3JlZnRlc3RfbWF0Y2hfZmFpbC5odG1sLmluaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mM2RjMzM2MmZhYzQxYmJl
OGRlZDQ0NTg5ZTg5OGVmNTg5Y2IxYTg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRh
ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hfZmFpbC5odG1sLmluaQpAQCAtMCwwICsxLDMgQEAK
K1tyZWZ0ZXN0X21hdGNoX2ZhaWwuaHRtbF0KKyAgdHlwZTogcmVmdGVzdAorICBleHBlY3RlZDog
RkFJTApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0
Y2hfZmFpbC5odG1sLmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21h
dGNoX2ZhaWwuaHRtbC5pbmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTA1NTMzN2UyZDY1Y2I4ZjIxZDJjZWFjNjJl
MzVjZTdiYjk5YTk3NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVz
dC9yZWZ0ZXN0X21pc21hdGNoX2ZhaWwuaHRtbC5pbmkKQEAgLTAsMCArMSwzIEBACitbcmVmdGVz
dF9taXNtYXRjaF9mYWlsLmh0bWxdCisgIHR5cGU6IHJlZnRlc3QKKyAgZXhwZWN0ZWQ6IEZBSUwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3JlZl90aW1lb3V0
Lmh0bWwuaW5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfcmVmX3RpbWVvdXQu
aHRtbC5pbmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODkzNjI0MWFkMjljZDE2MmY5NjEwNzZjMmJhOGViOTYwZjc2
OThjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0
X3JlZl90aW1lb3V0Lmh0bWwuaW5pCkBAIC0wLDAgKzEsMyBAQAorW3JlZnRlc3RfcmVmX3RpbWVv
dXQuaHRtbF0KKyAgdHlwZTogcmVmdGVzdAorICBleHBlY3RlZDogVElNRU9VVApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfdGltZW91dC5odG1sLmluaSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQuaHRtbC5pbmkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMGQxYjliYWRlOTVkN2IxMDFjOGRiZjUxNTQ3ZmZiYWVjMjI2MGMyNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQuaHRtbC5pbmkK
QEAgLTAsMCArMSwzIEBACitbcmVmdGVzdF90aW1lb3V0Lmh0bWxdCisgIHR5cGU6IHJlZnRlc3QK
KyAgZXhwZWN0ZWQ6IFRJTUVPVVQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVz
dC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC93M2MtaW1wb3J0Lmxv
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hZWU0ZmJiNzYzOTZlYjI2NDFiM2E0MGZmMWFmYTQ3ZmFhZTNkOGYzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3czYy1pbXBvcnQubG9n
CkBAIC0wLDAgKzEsMjIgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9y
dGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBk
aXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhl
IFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMK
KworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQg
dG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUK
K1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0
ZXN0X2FuZF9mYWlsLmh0bWwuaW5pCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rf
Y3ljbGVfZmFpbC5odG1sLmluaQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21h
dGNoX2ZhaWwuaHRtbC5pbmkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNt
YXRjaF9mYWlsLmh0bWwuaW5pCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfcmVm
X3RpbWVvdXQuaHRtbC5pbmkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF90aW1l
b3V0Lmh0bWwuaW5pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL2Zp
cmVmb3gvX19kaXJfXy5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gv
X19kaXJfXy5pbmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzlkMTY0Y2Q0MThhMmE3N2M3OTM2NjljN2NmNmIwOWZm
YzYxOGU2NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3Mv
ZmlyZWZveC9fX2Rpcl9fLmluaQpAQCAtMCwwICsxLDIgQEAKK3ByZWZzOiBbImJyb3dzZXIuZGlz
cGxheS5mb3JlZ3JvdW5kX2NvbG9yOiNGRjAwMDAiLAorICAgICAgICAiYnJvd3Nlci5kaXNwbGF5
LmJhY2tncm91bmRfY29sb3I6IzAwMDAwMCJdClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3N1YmRpci90
ZXN0X3ByZWZfcmVzZXQuaHRtbC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL2Zp
cmVmb3gvc3ViZGlyL3Rlc3RfcHJlZl9yZXNldC5odG1sLmluaQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzkxOThk
OWJiZjFjNzc5YmU0MmY0N2JiNTJjNjg5NmY5YWQ2MjRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3N1YmRpci90ZXN0X3ByZWZfcmVzZXQu
aHRtbC5pbmkKQEAgLTAsMCArMSwyIEBACitbdGVzdF9wcmVmX3Jlc2V0Lmh0bWxdCisgIHByZWZz
OiBbQFJlc2V0XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9maXJl
Zm94L3N1YmRpci93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3Mv
ZmlyZWZveC9zdWJkaXIvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQ1NTk2NTA2YjdkODgx
MjY3NzU0ODRjMDZhMzE0NjY4NGNjOGRjMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0
YWRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC9zdWJkaXIvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCAr
MSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3N1
YmRpci90ZXN0X3ByZWZfcmVzZXQuaHRtbC5pbmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRh
dGEvdGVzdGhhcm5lc3MvZmlyZWZveC90ZXN0X3ByZWZfc2V0Lmh0bWwuaW5pIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9t
ZXRhZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3Rlc3RfcHJlZl9zZXQuaHRtbC5pbmkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYmM5YmZiOWM0MTM5N2RjMTdkY2FmZjBhNDQ5ZGY4MTBlZjQ5Y2E3OAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC90ZXN0X3ByZWZf
c2V0Lmh0bWwuaW5pCkBAIC0wLDAgKzEsMyBAQAorW3Rlc3RfcHJlZl9zZXQuaHRtbF0KKyAgcHJl
ZnM6IFsiYnJvd3Nlci5kaXNwbGF5LmZvcmVncm91bmRfY29sb3I6IzAwRkYwMCIsCisgICAgICAg
ICAgImJyb3dzZXIuZGlzcGxheS5iYWNrZ3JvdW5kX2NvbG9yOiMwMDAwMDAiXQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3czYy1pbXBvcnQubG9nCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjRkMGZmZTFjZDg2YWM2OWU0NjJjMTE5NDg2MjExYTFmMTJlOGEzYzAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvdzNjLWltcG9y
dC5sb2cKQEAgLTAsMCArMSwxOCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisK
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgor
Tm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCist
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFy
bmVzcy9maXJlZm94L19fZGlyX18uaW5pCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9m
aXJlZm94L3Rlc3RfcHJlZl9zZXQuaHRtbC5pbmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRh
dGEvdGVzdGhhcm5lc3Mvc3ViZGlyL19fZGlyX18uaW5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0
aGFybmVzcy9zdWJkaXIvX19kaXJfXy5pbmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTkxNTdmYmM2YTlmNGE5YTZi
YjNjODk0YjNlMDk1YmZhNTFlMzE0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRh
dGEvdGVzdGhhcm5lc3Mvc3ViZGlyL19fZGlyX18uaW5pCkBAIC0wLDAgKzEgQEAKK2Rpc2FibGVk
OiB0cnVlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9t
ZXRhZGF0YS90ZXN0aGFybmVzcy9zdWJkaXIvdGVzdGhhcm5lc3NfMS5odG1sLmluaSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvbWV0YWRhdGEvdGVzdGhhcm5lc3Mvc3ViZGlyL3Rlc3RoYXJuZXNzXzEuaHRtbC5pbmkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZGI5MzkzOTg3YjZjNzNlNjkxMGFmY2YwY2EwYjc1MzhmY2RiOTE5YgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3Mvc3ViZGlyL3Rlc3RoYXJu
ZXNzXzEuaHRtbC5pbmkKQEAgLTAsMCArMSwyIEBACitbdGVzdGhhcm5lc3NfMS5odG1sXQorICBk
aXNhYmxlZDogQEZhbHNlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9zdWJkaXIvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL3N1YmRpci93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42NmM5MTM3ODkyNmU0MTE0ZGI3ZTEzNzZmMTNkZjgzMmEzM2I4ZmU0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9zdWJkaXIvdzNjLWltcG9ydC5sb2cK
QEAgLTAsMCArMSwxOCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0
ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRp
cmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUg
V1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwor
CitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0
byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQor
UHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9z
dWJkaXIvX19kaXJfXy5pbmkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL3N1YmRpci90
ZXN0aGFybmVzc18xLmh0bWwuaW5pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3Ro
YXJuZXNzL3Rlc3RoYXJuZXNzXzAuaHRtbC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJu
ZXNzL3Rlc3RoYXJuZXNzXzAuaHRtbC5pbmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTBiOWE2ZTlmMDEyYjVlMjM0
YzE1ZDI5ODA1YzYxZjZiZThkNWE1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRh
dGEvdGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfMC5odG1sLmluaQpAQCAtMCwwICsxLDQgQEAKK1t0
ZXN0aGFybmVzc18wLmh0bWxdCisgIHR5cGU6IHRlc3RoYXJuZXNzCisgIFtUZXN0IHRoYXQgc2hv
dWxkIGZhaWxdCisgICAgZXhwZWN0ZWQ6IEZBSUwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRh
dGEvdGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfZXJyb3IuaHRtbC5pbmkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFk
YXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzX2Vycm9yLmh0bWwuaW5pCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZh
NTNlMDczM2FiY2IxNzM5MTliM2Q0OGE3NzY3YjViYmFkOGIwZTgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzX2Vycm9yLmh0bWwuaW5p
CkBAIC0wLDAgKzEsMyBAQAorW3Rlc3RoYXJuZXNzX2Vycm9yLmh0bWxdCisgIHR5cGU6IHRlc3Ro
YXJuZXNzCisgIGV4cGVjdGVkOiBFUlJPUgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90
ZXN0aGFybmVzcy90ZXN0aGFybmVzc190aW1lb3V0Lmh0bWwuaW5pIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0
YS90ZXN0aGFybmVzcy90ZXN0aGFybmVzc190aW1lb3V0Lmh0bWwuaW5pCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1
ZWNhNTE5MWFiMWZhNmM1ZDU1MzFhMWUwNWI5OTJkMDk3MjNkZWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzX3RpbWVvdXQuaHRtbC5p
bmkKQEAgLTAsMCArMSwzIEBACitbdGVzdGhhcm5lc3NfdGltZW91dC5odG1sXQorICB0eXBlOiB0
ZXN0aGFybmVzcworICBleHBlY3RlZDogVElNRU9VVApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRh
ZGF0YS90ZXN0aGFybmVzcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhh
cm5lc3MvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzBkYjU1N2U2MGIzMmYxNDU5NTRjODM4
NjM4NDg3ZmQ1YmQ3ZGI5NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVz
dGhhcm5lc3MvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOSBAQAorVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20v
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC9tZXRhZGF0YS90ZXN0aGFybmVzcy90ZXN0aGFybmVzc18wLmh0bWwuaW5pCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9t
ZXRhZGF0YS90ZXN0aGFybmVzcy90ZXN0aGFybmVzc19lcnJvci5odG1sLmluaQorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
bWV0YWRhdGEvdGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfdGltZW91dC5odG1sLmluaQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0LmNmZy5leGFtcGxlIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0LmNmZy5leGFtcGxl
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmRiNDgyMjYyMTZjMzBlYjdkOGIwNzgxODk2MzY5NjRiN2Y3Y2U1MjAKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3QuY2ZnLmV4YW1wbGUKQEAgLTAsMCArMSwyMCBA
QAorW2dlbmVyYWxdCit0ZXN0cz0vcGF0aC90by93ZWItcGxhdGZvcm0tdGVzdHMvCittZXRhZGF0
YT0vcGF0aC90by93ZWItcGxhdGZvcm0tdGVzdHMvCitzc2wtdHlwZT1ub25lCisKKyMgW2ZpcmVm
b3hdCisjIGJpbmFyeT0vcGF0aC90by9maXJlZm94CisjIHByZWZzLXJvb3Q9L3BhdGgvdG8vZ2Vj
a28tc3JjL3Rlc3RpbmcvcHJvZmlsZXMvCisKKyMgW3NlcnZvXQorIyBiaW5hcnk9L3BhdGgvdG8v
c2Vydm8tc3JjL3RhcmdldC9yZWxlYXNlL3NlcnZvCisjIGV4Y2x1ZGU9dGVzdGhhcm5lc3MgIyBC
ZWNhdXNlIGl0IG5lZWRzIGEgc3BlY2lhbCB0ZXN0aGFybmVzcy5qcworCisjIFtzZXJ2b2RyaXZl
cl0KKyMgYmluYXJ5PS9wYXRoL3RvL3NlcnZvLXNyYy90YXJnZXQvcmVsZWFzZS9zZXJ2bworIyBl
eGNsdWRlPXRlc3RoYXJuZXNzICMgQmVjYXVzZSBpdCBuZWVkcyBhIHNwZWNpYWwgdGVzdGhhcm5l
c3MuanMKKworIyBbY2hyb21lXQorIyBiaW5hcnk9L3BhdGgvdG8vY2hyb21lCisjIHdlYmRyaXZl
ci1iaW5hcnk9L3BhdGgvdG8vY2hyb21lZHJpdmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Qu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjIyOTM0YTQyYjBjYzAzOWViN2EwNDkw
NzQ2YmViY2MwMjJlYTQyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdC5weQpAQCAt
MCwwICsxLDE2NyBAQAoraW1wb3J0IENvbmZpZ1BhcnNlcgoraW1wb3J0IGFyZ3BhcnNlCitpbXBv
cnQganNvbgoraW1wb3J0IG9zCitpbXBvcnQgc3lzCitpbXBvcnQgdGVtcGZpbGUKK2ltcG9ydCB0
aHJlYWRpbmcKK2ltcG9ydCB0aW1lCitmcm9tIFN0cmluZ0lPIGltcG9ydCBTdHJpbmdJTworCitm
cm9tIG1vemxvZyBpbXBvcnQgc3RydWN0dXJlZGxvZywgcmVhZGVyCitmcm9tIG1vemxvZy5oYW5k
bGVycyBpbXBvcnQgQmFzZUhhbmRsZXIsIFN0cmVhbUhhbmRsZXIsIFN0YXR1c0hhbmRsZXIKK2Zy
b20gbW96bG9nLmZvcm1hdHRlcnMgaW1wb3J0IE1hY2hGb3JtYXR0ZXIKK2Zyb20gd3B0cnVubmVy
IGltcG9ydCB3cHRjb21tYW5kbGluZSwgd3B0cnVubmVyCisKK2hlcmUgPSBvcy5wYXRoLmFic3Bh
dGgob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKKworZGVmIHNldHVwX3dwdHJ1bm5lcl9sb2dn
aW5nKGxvZ2dlcik6CisgICAgc3RydWN0dXJlZGxvZy5zZXRfZGVmYXVsdF9sb2dnZXIobG9nZ2Vy
KQorICAgIHdwdHJ1bm5lci5sb2dnZXIgPSBsb2dnZXIKKyAgICB3cHRydW5uZXIud3B0bG9nZ2lu
Zy5zZXR1cF9zdGRsaWJfbG9nZ2VyKCkKKworY2xhc3MgUmVzdWx0SGFuZGxlcihCYXNlSGFuZGxl
cik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHZlcmJvc2U9RmFsc2UsIGxvZ2dlcj1Ob25lKToK
KyAgICAgICAgc2VsZi5pbm5lciA9IFN0cmVhbUhhbmRsZXIoc3lzLnN0ZG91dCwgTWFjaEZvcm1h
dHRlcigpKQorICAgICAgICBCYXNlSGFuZGxlci5fX2luaXRfXyhzZWxmLCBzZWxmLmlubmVyKQor
ICAgICAgICBzZWxmLnByb2R1Y3QgPSBOb25lCisgICAgICAgIHNlbGYudmVyYm9zZSA9IHZlcmJv
c2UKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKKworICAgICAgICBzZWxmLnJlZ2lzdGVy
X21lc3NhZ2VfaGFuZGxlcnMoIndwdHJ1bm5lci10ZXN0IiwgeyJzZXQtcHJvZHVjdCI6IHNlbGYu
c2V0X3Byb2R1Y3R9KQorCisgICAgZGVmIHNldF9wcm9kdWN0KHNlbGYsIHByb2R1Y3QpOgorICAg
ICAgICBzZWxmLnByb2R1Y3QgPSBwcm9kdWN0CisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZGF0
YSk6CisgICAgICAgIGlmIHNlbGYucHJvZHVjdCBpcyBub3QgTm9uZSBhbmQgZGF0YVsiYWN0aW9u
Il0gaW4gWyJzdWl0ZV9zdGFydCIsICJzdWl0ZV9lbmQiXToKKyAgICAgICAgICAgICMgSGFjazog
bW96bG9nIHNldHMgc29tZSBpbnRlcm5hbCBzdGF0ZSB0byBwcmV2ZW50IG11bHRpcGxlIHN1aXRl
X3N0YXJ0IG9yCisgICAgICAgICAgICAjIHN1aXRlX2VuZCBtZXNzYWdlcy4gV2UgYWN0dWFsbHkg
d2FudCB0aGF0IGhlcmUgKG9uZSBmcm9tIHRoZSBtZXRhaGFybmVzcworICAgICAgICAgICAgIyBh
bmQgb25lIGZyb20gdGhlIGluZGl2aWR1YWwgdGVzdCB0eXBlIGhhcm5lc3MpLCBzbyBvdmVycmlk
ZSB0aGF0IGludGVybmFsCisgICAgICAgICAgICAjIHN0YXRlIChhIGJldHRlciBzb2x1dGlvbiBt
aWdodCBiZSB0byBub3Qgc2hhcmUgbG9nZ2VycywgYnV0IHRoaXMgd29ya3Mgd2VsbAorICAgICAg
ICAgICAgIyBlbm91Z2gpCisgICAgICAgICAgICBzZWxmLmxvZ2dlci5fc3RhdGUuc3VpdGVfc3Rh
cnRlZCA9IFRydWUKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIGlmIChub3Qgc2VsZi52
ZXJib3NlIGFuZAorICAgICAgICAgICAgKGRhdGFbImFjdGlvbiJdID09ICJwcm9jZXNzX291dHB1
dCIgb3IKKyAgICAgICAgICAgICBkYXRhWyJhY3Rpb24iXSA9PSAibG9nIiBhbmQgZGF0YVsibGV2
ZWwiXSBub3QgaW4gWyJlcnJvciIsICJjcml0aWNhbCJdKSk6CisgICAgICAgICAgICByZXR1cm4K
KworICAgICAgICBpZiAidGVzdCIgaW4gZGF0YToKKyAgICAgICAgICAgIGRhdGEgPSBkYXRhLmNv
cHkoKQorICAgICAgICAgICAgZGF0YVsidGVzdCJdID0gIiVzOiAlcyIgJSAoc2VsZi5wcm9kdWN0
LCBkYXRhWyJ0ZXN0Il0pCisKKyAgICAgICAgcmV0dXJuIHNlbGYuaW5uZXIoZGF0YSkKKworZGVm
IHRlc3Rfc2V0dGluZ3MoKToKKyAgICByZXR1cm4geworICAgICAgICAiaW5jbHVkZSI6ICJfdGVz
dCIsCisgICAgICAgICJtYW5pZmVzdC11cGRhdGUiOiAiIiwKKyAgICAgICAgIm5vLWNhcHR1cmUt
c3RkaW8iOiAiIgorICAgIH0KKworZGVmIHJlYWRfY29uZmlnKCk6CisgICAgcGFyc2VyID0gQ29u
ZmlnUGFyc2VyLkNvbmZpZ1BhcnNlcigpCisgICAgcGFyc2VyLnJlYWQoInRlc3QuY2ZnIikKKwor
ICAgIHJ2ID0geyJnZW5lcmFsIjp7fSwKKyAgICAgICAgICAicHJvZHVjdHMiOnt9fQorCisgICAg
cnZbImdlbmVyYWwiXS51cGRhdGUoZGljdChwYXJzZXIuaXRlbXMoImdlbmVyYWwiKSkpCisKKyAg
ICAjIFRoaXMgb25seSBhbGxvd3Mgb25lIHByb2R1Y3QgcGVyIHdoYXRldmVyIGZvciBub3cKKyAg
ICBmb3IgcHJvZHVjdCBpbiBwYXJzZXIuc2VjdGlvbnMoKToKKyAgICAgICAgaWYgcHJvZHVjdCAh
PSAiZ2VuZXJhbCI6CisgICAgICAgICAgICBkZXN0ID0gcnZbInByb2R1Y3RzIl1bcHJvZHVjdF0g
PSB7fQorICAgICAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gcGFyc2VyLml0ZW1zKHByb2R1Y3Qp
OgorICAgICAgICAgICAgICAgIHJ2WyJwcm9kdWN0cyJdW3Byb2R1Y3RdW2tleV0gPSB2YWx1ZQor
CisgICAgcmV0dXJuIHJ2CisKK2RlZiBydW5fdGVzdHMocHJvZHVjdCwga3dhcmdzKToKKyAgICBr
d2FyZ3NbInRlc3RfcGF0aHMiXVsiL190ZXN0LyJdID0geyJ0ZXN0c19wYXRoIjogb3MucGF0aC5q
b2luKGhlcmUsICJ0ZXN0ZGF0YSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIm1ldGFkYXRhX3BhdGgiOiBvcy5wYXRoLmpvaW4oaGVyZSwgIm1ldGFkYXRhIil9CisK
KyAgICB3cHRydW5uZXIucnVuX3Rlc3RzKCoqa3dhcmdzKQorCitkZWYgc2V0dGluZ3NfdG9fYXJn
dihzZXR0aW5ncyk6CisgICAgcnYgPSBbXQorICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBzZXR0aW5n
cy5pdGVyaXRlbXMoKToKKyAgICAgICAga2V5ID0gIi0tJXMiICUgbmFtZQorICAgICAgICBpZiBu
b3QgdmFsdWU6CisgICAgICAgICAgICBydi5hcHBlbmQoa2V5KQorICAgICAgICBlbGlmIGlzaW5z
dGFuY2UodmFsdWUsIGxpc3QpOgorICAgICAgICAgICAgZm9yIGl0ZW0gaW4gdmFsdWU6CisgICAg
ICAgICAgICAgICAgcnYuZXh0ZW5kKFtrZXksIGl0ZW1dKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgcnYuZXh0ZW5kKFtrZXksIHZhbHVlXSkKKyAgICByZXR1cm4gcnYKKworZGVmIHNldF9m
cm9tX2FyZ3Moc2V0dGluZ3MsIGFyZ3MpOgorICAgIGlmIGFyZ3MudGVzdDoKKyAgICAgICAgc2V0
dGluZ3NbImluY2x1ZGUiXSA9IGFyZ3MudGVzdAorICAgIGlmIGFyZ3MudGFnczoKKyAgICAgICAg
c2V0dGluZ3NbInRhZ3MiXSA9IGFyZ3MudGFncworCitkZWYgcnVuKGNvbmZpZywgYXJncyk6Cisg
ICAgbG9nZ2VyID0gc3RydWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKCJ3ZWItcGxhdGZvcm0t
dGVzdHMiKQorICAgIGxvZ2dlci5hZGRfaGFuZGxlcihSZXN1bHRIYW5kbGVyKGxvZ2dlcj1sb2dn
ZXIsIHZlcmJvc2U9YXJncy52ZXJib3NlKSkKKyAgICBzZXR1cF93cHRydW5uZXJfbG9nZ2luZyhs
b2dnZXIpCisKKyAgICBwYXJzZXIgPSB3cHRjb21tYW5kbGluZS5jcmVhdGVfcGFyc2VyKCkKKwor
ICAgIGxvZ2dlci5zdWl0ZV9zdGFydCh0ZXN0cz1bXSkKKworICAgIGZvciBwcm9kdWN0LCBwcm9k
dWN0X3NldHRpbmdzIGluIGNvbmZpZ1sicHJvZHVjdHMiXS5pdGVyaXRlbXMoKToKKyAgICAgICAg
aWYgYXJncy5wcm9kdWN0IGFuZCBwcm9kdWN0IG5vdCBpbiBhcmdzLnByb2R1Y3Q6CisgICAgICAg
ICAgICBjb250aW51ZQorCisgICAgICAgIHNldHRpbmdzID0gdGVzdF9zZXR0aW5ncygpCisgICAg
ICAgIHNldHRpbmdzLnVwZGF0ZShjb25maWdbImdlbmVyYWwiXSkKKyAgICAgICAgc2V0dGluZ3Mu
dXBkYXRlKHByb2R1Y3Rfc2V0dGluZ3MpCisgICAgICAgIHNldHRpbmdzWyJwcm9kdWN0Il0gPSBw
cm9kdWN0CisgICAgICAgIHNldF9mcm9tX2FyZ3Moc2V0dGluZ3MsIGFyZ3MpCisKKyAgICAgICAg
a3dhcmdzID0gdmFycyhwYXJzZXIucGFyc2VfYXJncyhzZXR0aW5nc190b19hcmd2KHNldHRpbmdz
KSkpCisgICAgICAgIHdwdGNvbW1hbmRsaW5lLmNoZWNrX2FyZ3Moa3dhcmdzKQorCisgICAgICAg
IGxvZ2dlci5zZW5kX21lc3NhZ2UoIndwdHJ1bm5lci10ZXN0IiwgInNldC1wcm9kdWN0IiwgcHJv
ZHVjdCkKKworICAgICAgICBydW5fdGVzdHMocHJvZHVjdCwga3dhcmdzKQorCisgICAgbG9nZ2Vy
LnNlbmRfbWVzc2FnZSgid3B0cnVubmVyLXRlc3QiLCAic2V0LXByb2R1Y3QiLCBOb25lKQorICAg
IGxvZ2dlci5zdWl0ZV9lbmQoKQorCitkZWYgZ2V0X3BhcnNlcigpOgorICAgIHBhcnNlciA9IGFy
Z3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItdiIsICIt
LXZlcmJvc2UiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgaGVscD0idmVyYm9zZSBsb2cgb3V0cHV0IikKKyAgICBwYXJzZXIuYWRk
X2FyZ3VtZW50KCItLXByb2R1Y3QiLCBhY3Rpb249ImFwcGVuZCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSJTcGVjaWZpYyBwcm9kdWN0IHRvIGluY2x1ZGUgaW4gdGVzdCBydW4iKQor
ICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tcGRiIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9Ikludm9rZSBwZGIgb24gdW5jYXVnaHQgZXhjZXB0
aW9uIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLXRhZyIsIGFjdGlvbj0iYXBwZW5kIiwg
ZGVzdD0idGFncyIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJ0YWdzIHRvIHNlbGVj
dCB0ZXN0cyIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgidGVzdCIsIG5hcmdzPSIqIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlNwZWNpZmljIHRlc3RzIHRvIGluY2x1ZGUgaW4g
dGVzdCBydW4iKQorICAgIHJldHVybiBwYXJzZXIKKworZGVmIG1haW4oKToKKyAgICBjb25maWcg
PSByZWFkX2NvbmZpZygpCisKKyAgICBhcmdzID0gZ2V0X3BhcnNlcigpLnBhcnNlX2FyZ3MoKQor
CisgICAgdHJ5OgorICAgICAgICBydW4oY29uZmlnLCBhcmdzKQorICAgIGV4Y2VwdCBFeGNlcHRp
b246CisgICAgICAgIGlmIGFyZ3MucGRiOgorICAgICAgICAgICAgaW1wb3J0IHBkYgorICAgICAg
ICAgICAgaW1wb3J0IHRyYWNlYmFjaworICAgICAgICAgICAgcHJpbnQgdHJhY2ViYWNrLmZvcm1h
dF9leGMoKQorICAgICAgICAgICAgcGRiLnBvc3RfbW9ydGVtKCkKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIHJhaXNlCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgbWFpbigp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4tZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9ncmVlbi1leHBlY3RlZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBlMTQ1ZDYwYjU1YjM1MDI2MzlkMTVmMTBkNGQ2M2E2YjBmNzliN2QKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4tZXhwZWN0ZWQuaHRtbApAQCAt
MCwwICsxLDQgQEAKKzxsaW5rIHJlbD1tYXRjaCBocmVmPWdyZWVuLmh0bWw+Cis8c3R5bGU+Cis6
cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KKzwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVuLXJl
Zi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVuLXJlZi1leHBl
Y3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM4MTY3YmI1OGQ1NzFlNzVmNTQ5MDgxNjZjNTQyYWNhODQ3
MzFhZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4t
cmVmLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzIEBACis8c3R5bGU+Cis6cm9vdCB7YmFja2dy
b3VuZC1jb2xvcjpncmVlbn0KKzwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVuLXJlZi5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVuLXJlZi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlMTQ1ZDYw
YjU1YjM1MDI2MzlkMTVmMTBkNGQ2M2E2YjBmNzliN2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4tcmVmLmh0bWwKQEAgLTAsMCArMSw0IEBACis8bGlu
ayByZWw9bWF0Y2ggaHJlZj1ncmVlbi5odG1sPgorPHN0eWxlPgorOnJvb3Qge2JhY2tncm91bmQt
Y29sb3I6Z3JlZW59Cis8L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9ncmVlbi5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0
ZGF0YS9yZWZ0ZXN0L2dyZWVuLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzgxNjdiYjU4ZDU3MWU3NWY1NDkw
ODE2NmM1NDJhY2E4NDczMWFlYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
cmVmdGVzdC9ncmVlbi5odG1sCkBAIC0wLDAgKzEsMyBAQAorPHN0eWxlPgorOnJvb3Qge2JhY2tn
cm91bmQtY29sb3I6Z3JlZW59Cis8L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWQuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
dGVzdGRhdGEvcmVmdGVzdC9yZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjY3N2UwMDYzNGJjZDE2YzMy
YmE4ZDAyOWNjYWIwNDBmMDE2NzgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0
YS9yZWZ0ZXN0L3JlZC5odG1sCkBAIC0wLDAgKzEsMyBAQAorPHN0eWxlPgorOnJvb3Qge2JhY2tn
cm91bmQtY29sb3I6cmVkfQorPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdC5odHRwcy1leHBlY3Rl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3QuaHR0cHMtZXhwZWN0ZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zODE2N2JiNThkNTcxZTc1ZjU0OTA4MTY2YzU0MmFjYTg0NzMxYWVj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3QuaHR0
cHMtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDMgQEAKKzxzdHlsZT4KKzpyb290IHtiYWNrZ3Jv
dW5kLWNvbG9yOmdyZWVufQorPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdC5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3QuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
YTQ1ZjEwZjM1ZWI0NzJlYzEzY2M1ZGQyNDdmZjhkZjVjMjY1Mzg1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3QuaHR0cHMuaHRtbApAQCAtMCwwICsx
LDkgQEAKKzxsaW5rIHJlbD1tYXRjaCBocmVmPWdyZWVuLmh0bWw+Cis8c3R5bGU+Cis6cm9vdCB7
YmFja2dyb3VuZC1jb2xvcjpyZWR9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubG9j
YXRpb24ucHJvdG9jb2wgPT09ICJodHRwczoiKSB7CisgICBkb2N1bWVudC5kb2N1bWVudEVsZW1l
bnQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gImdyZWVuIjsKK30KKzwvc2NyaXB0PgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVz
dC9yZWZ0ZXN0X2FuZF9mYWlsLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRl
c3QvcmVmdGVzdF9hbmRfZmFpbC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0ZmI5YWExNTE3
NmU2MTkxZGVkNWVjY2Y0NDJmY2ZkNmNkY2Y1NjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbC1leHBlY3RlZC5odG1sCkBAIC0wLDAg
KzEsNSBAQAorPHRpdGxlPlJlZnRlc3QgY2hhaW4gdGhhdCBzaG91bGQgZmFpbDwvdGl0bGU+Cis8
bGluayByZWw9bWF0Y2ggaHJlZj1yZWQuaHRtbD4KKzxzdHlsZT4KKzpyb290IHtiYWNrZ3JvdW5k
LWNvbG9yOmdyZWVufQorPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbC5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWwuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yOTYwMTk1MzU2MjM4ZjAzNTQzMjA3ZTllNmEzNTk5MzYxZGFlYjkxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWwuaHRtbApAQCAt
MCwwICsxLDUgQEAKKzx0aXRsZT5SZWZ0ZXN0IGNoYWluIHRoYXQgc2hvdWxkIGZhaWw8L3RpdGxl
PgorPGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVmdGVzdF9hbmRfZmFpbF8wLXJlZi5odG1sPgorPHN0
eWxlPgorOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Cis8L3N0eWxlPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X2FuZF9mYWlsXzAtcmVmLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Jl
ZnRlc3QvcmVmdGVzdF9hbmRfZmFpbF8wLXJlZi1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJi
Njc3ZTAwNjM0YmNkMTZjMzJiYThkMDI5Y2NhYjA0MGYwMTY3ODAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbF8wLXJlZi1leHBlY3Rl
ZC5odG1sCkBAIC0wLDAgKzEsMyBAQAorPHN0eWxlPgorOnJvb3Qge2JhY2tncm91bmQtY29sb3I6
cmVkfQorPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbF8wLXJlZi5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWxfMC1yZWYuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wNGZiOWFhMTUxNzZlNjE5MWRlZDVlY2NmNDQyZmNmZDZjZGNmNTY2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWxfMC1yZWYu
aHRtbApAQCAtMCwwICsxLDUgQEAKKzx0aXRsZT5SZWZ0ZXN0IGNoYWluIHRoYXQgc2hvdWxkIGZh
aWw8L3RpdGxlPgorPGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVkLmh0bWw+Cis8c3R5bGU+Cis6cm9v
dCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KKzwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3lj
bGUtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xl
LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTE4YmZkODg0NDdiNDgyMTJhZjI5ZTU0ODYxYmI2
ZDUwOWE1ZTFiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X2N5Y2xlLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw1IEBACis8dGl0bGU+T1IgbWF0
Y2ggdGhhdCBzaG91bGQgcGFzczwvdGl0bGU+Cis8bGluayByZWw9bWF0Y2ggaHJlZj1yZWZ0ZXN0
X2N5Y2xlXzEtcmVmLmh0bWw+Cis8c3R5bGU+Cis6cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVl
bn0KKzwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGUuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGE4NGEzYjY3NDFlZTQx
ZmU2MTg3YTliZGM3NjZkNzQ5MjA2YzgzYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlLmh0bWwKQEAgLTAsMCArMSw1IEBACis8dGl0bGU+
UmVmdGVzdCB3aXRoIGN5Y2xlLCBhbGwgbWF0Y2g8L3RpdGxlPgorPGxpbmsgcmVsPW1hdGNoIGhy
ZWY9cmVmdGVzdF9jeWNsZV8wLXJlZi5odG1sPgorPHN0eWxlPgorOnJvb3Qge2JhY2tncm91bmQt
Y29sb3I6Z3JlZW59Cis8L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzAtcmVmLWV4cGVj
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV8wLXJlZi1l
eHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5YmUwYjY0MWRlZjZiZDczYTBjY2E3MmYxN2QzMzA0
NjQxYjQ4ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVm
dGVzdF9jeWNsZV8wLXJlZi1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNSBAQAorPHRpdGxlPlJl
ZnRlc3Qgd2l0aCBjeWNsZSwgYWxsIG1hdGNoPC90aXRsZT4KKzxsaW5rIHJlbD1tYXRjaCBocmVm
PXJlZnRlc3RfY3ljbGUuaHRtbD4KKzxzdHlsZT4KKzpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdy
ZWVufQorPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV8wLXJlZi5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfMC1yZWYuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
MThiZmQ4ODQ0N2I0ODIxMmFmMjllNTQ4NjFiYjZkNTA5YTVlMWIxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfMC1yZWYuaHRtbApAQCAt
MCwwICsxLDUgQEAKKzx0aXRsZT5PUiBtYXRjaCB0aGF0IHNob3VsZCBwYXNzPC90aXRsZT4KKzxs
aW5rIHJlbD1tYXRjaCBocmVmPXJlZnRlc3RfY3ljbGVfMS1yZWYuaHRtbD4KKzxzdHlsZT4KKzpy
b290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQorPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9j
eWNsZV8xLXJlZi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRl
c3RfY3ljbGVfMS1yZWYtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YTg0YTNiNjc0MWVlNDFm
ZTYxODdhOWJkYzc2NmQ3NDkyMDZjODNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0
ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfMS1yZWYtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsx
LDUgQEAKKzx0aXRsZT5SZWZ0ZXN0IHdpdGggY3ljbGUsIGFsbCBtYXRjaDwvdGl0bGU+Cis8bGlu
ayByZWw9bWF0Y2ggaHJlZj1yZWZ0ZXN0X2N5Y2xlXzAtcmVmLmh0bWw+Cis8c3R5bGU+Cis6cm9v
dCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KKzwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3lj
bGVfMS1yZWYuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzEt
cmVmLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTliZTBiNjQxZGVmNmJkNzNhMGNjYTcyZjE3ZDMzMDQ2NDFi
NDhlYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0
X2N5Y2xlXzEtcmVmLmh0bWwKQEAgLTAsMCArMSw1IEBACis8dGl0bGU+UmVmdGVzdCB3aXRoIGN5
Y2xlLCBhbGwgbWF0Y2g8L3RpdGxlPgorPGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVmdGVzdF9jeWNs
ZS5odG1sPgorPHN0eWxlPgorOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Cis8L3N0eWxl
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlX2ZhaWwtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlX2ZhaWwtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jOGU1NDhjNDYyMjU1NjM4YTMyYzQ3NGExNzc3NTlmZjZkN2NjZWFmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfZmFpbC1leHBlY3Rl
ZC5odG1sCkBAIC0wLDAgKzEsNSBAQAorPHRpdGxlPlJlZnRlc3Qgd2l0aCBjeWNsZSwgZmFpbHM8
L3RpdGxlPgorPGxpbmsgcmVsPW1pc21hdGNoIGhyZWY9cmVmdGVzdF9jeWNsZV9mYWlsLmh0bWw+
Cis8c3R5bGU+Cis6cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KKzwvc3R5bGU+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0
ZXN0L3JlZnRlc3RfY3ljbGVfZmFpbC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3Jl
ZnRlc3RfY3ljbGVfZmFpbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3NWU3NmM0Y2M5YmI3NjVmOGZjOGRm
YzM0NDU1YWQyZWI5YmM0MDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Jl
ZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsLmh0bWwKQEAgLTAsMCArMSw1IEBACis8dGl0bGU+UmVm
dGVzdCB3aXRoIGN5Y2xlLCBmYWlsczwvdGl0bGU+Cis8bGluayByZWw9bWF0Y2ggaHJlZj1yZWZ0
ZXN0X2N5Y2xlX2ZhaWxfMC1yZWYuaHRtbD4KKzxzdHlsZT4KKzpyb290IHtiYWNrZ3JvdW5kLWNv
bG9yOmdyZWVufQorPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsXzAtcmVmLWV4
cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWls
XzAtcmVmLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTc1ZTc2YzRjYzliYjc2NWY4ZmM4ZGZj
MzQ0NTVhZDJlYjliYzQwNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVm
dGVzdC9yZWZ0ZXN0X2N5Y2xlX2ZhaWxfMC1yZWYtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDUg
QEAKKzx0aXRsZT5SZWZ0ZXN0IHdpdGggY3ljbGUsIGZhaWxzPC90aXRsZT4KKzxsaW5rIHJlbD1t
YXRjaCBocmVmPXJlZnRlc3RfY3ljbGVfZmFpbF8wLXJlZi5odG1sPgorPHN0eWxlPgorOnJvb3Qg
e2JhY2tncm91bmQtY29sb3I6Z3JlZW59Cis8L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xl
X2ZhaWxfMC1yZWYuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xl
X2ZhaWxfMC1yZWYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jOGU1NDhjNDYyMjU1NjM4YTMyYzQ3NGExNzc3
NTlmZjZkN2NjZWFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L3JlZnRlc3RfY3ljbGVfZmFpbF8wLXJlZi5odG1sCkBAIC0wLDAgKzEsNSBAQAorPHRpdGxlPlJl
ZnRlc3Qgd2l0aCBjeWNsZSwgZmFpbHM8L3RpdGxlPgorPGxpbmsgcmVsPW1pc21hdGNoIGhyZWY9
cmVmdGVzdF9jeWNsZV9mYWlsLmh0bWw+Cis8c3R5bGU+Cis6cm9vdCB7YmFja2dyb3VuZC1jb2xv
cjpncmVlbn0KKzwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2gtZXhwZWN0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNoLWV4cGVjdGVkLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzgxNjdiYjU4ZDU3MWU3NWY1NDkwODE2NmM1NDJhY2E4NDczMWFlYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNoLWV4cGVj
dGVkLmh0bWwKQEAgLTAsMCArMSwzIEBACis8c3R5bGU+Cis6cm9vdCB7YmFja2dyb3VuZC1jb2xv
cjpncmVlbn0KKzwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2guaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
dGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzMzY2M2YzFl
Y2RmMjAwMGU0YjExODU2NTY2MTc2MWI4NzZhNzI5OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNoLmh0bWwKQEAgLTAsMCArMSw1IEBACis8
dGl0bGU+cmVsPW1hdGNoIHRoYXQgc2hvdWxkIHBhc3M8L3RpdGxlPgorPGxpbmsgcmVsPW1hdGNo
IGhyZWY9Z3JlZW4uaHRtbD4KKzxzdHlsZT4KKzpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVu
fQorPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRjaF9mYWlsLWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRjaF9mYWlsLWV4cGVjdGVkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMmI2NzdlMDA2MzRiY2QxNmMzMmJhOGQwMjljY2FiMDQwZjAxNjc4MAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNoX2Zh
aWwtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDMgQEAKKzxzdHlsZT4KKzpyb290IHtiYWNrZ3Jv
dW5kLWNvbG9yOnJlZH0KKzwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hfZmFpbC5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hfZmFpbC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmE5MjcyZWY3NGRhODczMzdhMDIyM2ZjYjAwZjA1M2NlYmE1ZmI1MmIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRjaF9mYWlsLmh0
bWwKQEAgLTAsMCArMSw1IEBACis8dGl0bGU+cmVsPW1hdGNoIHRoYXQgc2hvdWxkIGZhaWw8L3Rp
dGxlPgorPGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVkLmh0bWw+Cis8c3R5bGU+Cis6cm9vdCB7YmFj
a2dyb3VuZC1jb2xvcjpncmVlbn0KKzwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2gt
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNo
LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmI2NzdlMDA2MzRiY2QxNmMzMmJhOGQwMjljY2Fi
MDQwZjAxNjc4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X21pc21hdGNoLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzIEBACis8c3R5bGU+Cis6
cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpyZWR9Cis8L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21p
c21hdGNoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNtYXRjaC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmFmNWZhMDc1MGQ4M2I2NzU5YzMwZWE0MzRmYzUwOTI1NTI0NmNmODMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNt
YXRjaC5odG1sCkBAIC0wLDAgKzEsNSBAQAorPHRpdGxlPnJlbD1taXNtYXRjaCB0aGF0IHNob3Vs
ZCBwYXNzPC90aXRsZT4KKzxsaW5rIHJlbD1taXNtYXRjaCBocmVmPXJlZC5odG1sPgorPHN0eWxl
PgorOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Cis8L3N0eWxlPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0
ZXN0X21pc21hdGNoX2ZhaWwtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVz
dC9yZWZ0ZXN0X21pc21hdGNoX2ZhaWwtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODE2N2Ji
NThkNTcxZTc1ZjU0OTA4MTY2YzU0MmFjYTg0NzMxYWVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2hfZmFpbC1leHBlY3RlZC5odG1s
CkBAIC0wLDAgKzEsMyBAQAorPHN0eWxlPgorOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59
Cis8L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoX2ZhaWwuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
dGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoX2ZhaWwuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
ZDE2MGM0ZmMyMDBjYTk3NjMxYjE4NTA1ODQ3ZDUxZmQ3NjJhYmE5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2hfZmFpbC5odG1sCkBA
IC0wLDAgKzEsNSBAQAorPHRpdGxlPnJlbD1taXNtYXRjaCB0aGF0IHNob3VsZCBmYWlsPC90aXRs
ZT4KKzxsaW5rIHJlbD1taXNtYXRjaCBocmVmPWdyZWVuLmh0bWw+Cis8c3R5bGU+Cis6cm9vdCB7
YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KKzwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rfb3JfMC1l
eHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rfb3JfMC1leHBl
Y3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiNjc3ZTAwNjM0YmNkMTZjMzJiYThkMDI5Y2NhYjA0MGYw
MTY3ODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVz
dF9vcl8wLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzIEBACis8c3R5bGU+Cis6cm9vdCB7YmFj
a2dyb3VuZC1jb2xvcjpyZWR9Cis8L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X29yXzAuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X29yXzAuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
YTUxZGUyMTY0NDEwM2E5M2Y1OWQ0YzU2NTQyOGNjMmQxNjA2ZTU0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rfb3JfMC5odG1sCkBAIC0wLDAgKzEs
NiBAQAorPHRpdGxlPk9SIG1hdGNoIHRoYXQgc2hvdWxkIHBhc3M8L3RpdGxlPgorPGxpbmsgcmVs
PW1hdGNoIGhyZWY9cmVkLmh0bWw+Cis8bGluayByZWw9bWF0Y2ggaHJlZj1ncmVlbi5odG1sPgor
PHN0eWxlPgorOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Cis8L3N0eWxlPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVz
dC9yZWZ0ZXN0X3JlZl90aW1lb3V0LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Jl
ZnRlc3QvcmVmdGVzdF9yZWZfdGltZW91dC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0Y2Ji
NzFlMGMzYzQyODZjMDBkNGMwMWVjZTZhYjFhMWJlYzYxYjgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9yZWZfdGltZW91dC1leHBlY3RlZC5odG1s
CkBAIC0wLDAgKzEsNiBAQAorPGh0bWwgY2xhc3M9InJlZnRlc3Qtd2FpdCI+Cis8dGl0bGU+cmVs
PW1hdGNoIHRoYXQgc2hvdWxkIHRpbWUgb3V0IGluIHRoZSByZWY8L3RpdGxlPgorPGxpbmsgcmVs
PW1hdGNoIGhyZWY9cmVmdGVzdF9yZWZfdGltZW91dC1yZWYuaHRtbD4KKzxzdHlsZT4KKzpyb290
IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQorPC9zdHlsZT4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
dGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3JlZl90aW1lb3V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Rk
YXRhL3JlZnRlc3QvcmVmdGVzdF9yZWZfdGltZW91dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhZjY4ZjVj
YjVmYTA0Y2QzNjVhNzE5MWVlY2VhZmEzNWNjM2NlNGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9yZWZfdGltZW91dC5odG1sCkBAIC0wLDAgKzEs
NiBAQAorPGh0bWw+Cis8dGl0bGU+cmVsPW1hdGNoIHRoYXQgc2hvdWxkIHRpbWUgb3V0IGluIHRo
ZSByZWY8L3RpdGxlPgorPGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVmdGVzdF9yZWZfdGltZW91dC1y
ZWYuaHRtbD4KKzxzdHlsZT4KKzpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQorPC9zdHls
ZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQt
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQt
ZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODE2N2JiNThkNTcxZTc1ZjU0OTA4MTY2YzU0MmFj
YTg0NzMxYWVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3Jl
ZnRlc3RfdGltZW91dC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMyBAQAorPHN0eWxlPgorOnJv
b3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Cis8L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3Rp
bWVvdXQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iMTBlNjc2YmYwMDUyZTdiY2JlMmU5MjE0YTY5MGIzY2U2NjVkYTg4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfdGltZW91
dC5odG1sCkBAIC0wLDAgKzEsNiBAQAorPGh0bWwgY2xhc3M9InJlZnRlc3Qtd2FpdCI+Cis8dGl0
bGU+cmVsPW1hdGNoIHRoYXQgc2hvdWxkIHRpbWVvdXQ8L3RpdGxlPgorPGxpbmsgcmVsPW1hdGNo
IGhyZWY9Z3JlZW4uaHRtbD4KKzxzdHlsZT4KKzpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVu
fQorPC9zdHlsZT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0
X3dhaXRfMC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rf
d2FpdF8wLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmI2NzdlMDA2MzRiY2QxNmMzMmJhOGQw
MjljY2FiMDQwZjAxNjc4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVm
dGVzdC9yZWZ0ZXN0X3dhaXRfMC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMyBAQAorPHN0eWxl
PgorOnJvb3Qge2JhY2tncm91bmQtY29sb3I6cmVkfQorPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVz
dF93YWl0XzAuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3dhaXRfMC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjRmOTI3MTVjNjFlN2Q5MjJhOTQ5NWU5NzM3Yzk5NmU3YzA2YzM3ZDQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF93YWl0
XzAuaHRtbApAQCAtMCwwICsxLDEzIEBACis8aHRtbCBjbGFzcz0icmVmdGVzdC13YWl0Ij4KKzx0
aXRsZT5yZWw9bWF0Y2ggdGhhdCBzaG91bGQgZmFpbDwvdGl0bGU+Cis8bGluayByZWw9bWF0Y2gg
aHJlZj1yZWQuaHRtbD4KKzxzdHlsZT4KKzpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOnJlZH0KKzwv
c3R5bGU+Cis8c2NyaXB0Pgorc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgZG9jdW1lbnQuZG9j
dW1lbnRFbGVtZW50LnN0eWxlLmJhY2tncm91bmRDb2xvciA9ICJncmVlbiI7CisgIGRvY3VtZW50
LmRvY3VtZW50RWxlbWVudC5jbGFzc05hbWUgPSAiIjsKK30sIDIwMDApOworPC9zY3JpcHQ+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OWVkMTAwODE0MWVjZWJmNWQzN2FiMDQyMjgxZDI1NGViMDZjZmM0YgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDUz
IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgor
CWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisK
K0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQ
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlz
dCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4tZXhwZWN0ZWQuaHRt
bAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9ncmVlbi1yZWYtZXhwZWN0ZWQuaHRtbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9ncmVlbi1yZWYuaHRtbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
cmVmdGVzdC9ncmVlbi5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZC5odG1sCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3QuaHR0cHMtZXhwZWN0ZWQuaHRtbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0Lmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Rk
YXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbC1leHBlY3RlZC5odG1sCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0
ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWwuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVm
dGVzdC9yZWZ0ZXN0X2FuZF9mYWlsXzAtcmVmLWV4cGVjdGVkLmh0bWwKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Rk
YXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbF8wLXJlZi5odG1sCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0
YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGUtZXhwZWN0ZWQuaHRtbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
cmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVm
dGVzdF9jeWNsZV8wLXJlZi1leHBlY3RlZC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L3JlZnRlc3RfY3ljbGVfMC1yZWYuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0
ZXN0X2N5Y2xlXzEtcmVmLWV4cGVjdGVkLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3Qv
cmVmdGVzdF9jeWNsZV8xLXJlZi5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRl
c3RfY3ljbGVfZmFpbC1leHBlY3RlZC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3Jl
ZnRlc3RfY3ljbGVfZmFpbC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rf
Y3ljbGVfZmFpbF8wLXJlZi1leHBlY3RlZC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L3JlZnRlc3RfY3ljbGVfZmFpbF8wLXJlZi5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L3JlZnRlc3RfbWF0Y2gtZXhwZWN0ZWQuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X21hdGNoLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRj
aF9mYWlsLWV4cGVjdGVkLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9t
YXRjaF9mYWlsLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNtYXRj
aC1leHBlY3RlZC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0
Y2guaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoX2ZhaWwt
ZXhwZWN0ZWQuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNo
X2ZhaWwuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X29yXzAtZXhwZWN0
ZWQuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X29yXzAuaHRtbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3JlZl90aW1lb3V0LWV4cGVjdGVkLmh0bWwK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9yZWZfdGltZW91dC5odG1sCisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfdGltZW91dC1leHBlY3RlZC5odG1sCisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfdGltZW91dC5odG1sCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0
ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rfd2FpdF8wLWV4cGVjdGVkLmh0bWwKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Rk
YXRhL3JlZnRlc3QvcmVmdGVzdF93YWl0XzAuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0
ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3N1YmRpci90ZXN0X3ByZWZfaW5oZXJpdC5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3N1YmRpci90ZXN0X3ByZWZfaW5o
ZXJpdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwYjI4NTE5NGI0YWUwMTBjNjk5YzdhZWNmNzdkNzcxYzIy
MTMyZDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL2Zp
cmVmb3gvc3ViZGlyL3Rlc3RfcHJlZl9pbmhlcml0Lmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFk
b2N0eXBlIGh0bWw+Cis8dGl0bGU+RXhhbXBsZSBwcmVmIHRlc3Q8L3RpdGxlPgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHA+VGVzdCByZXF1aXJl
cyB0aGUgcHJlZiBicm93c2VyLmRpc3BsYXkuZm9yZWdyb3VuZF9jb2xvciB0byBiZSBzZXQgdG8g
IzAwRkYwMDwvcD4KKzxzY3JpcHQ+Cit0ZXN0KGZ1bmN0aW9uKCkgeworICBhc3NlcnRfZXF1YWxz
KGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuY29sb3IsICJyZ2IoMjU1LCAwLCAwKSIp
OworfSwgIlRlc3QgdGhhdCBwcmVmIHdhcyBzZXQiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3N1YmRpci90ZXN0X3ByZWZfcmVz
ZXQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC9zdWJkaXIvdGVz
dF9wcmVmX3Jlc2V0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWM3NWMxMTYwNTIyY2U4MTQxNGVkZGVlNGI5
NGNjYWUyMTc4NWEyMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhh
cm5lc3MvZmlyZWZveC9zdWJkaXIvdGVzdF9wcmVmX3Jlc2V0Lmh0bWwKQEAgLTAsMCArMSwxMCBA
QAorPCFkb2N0eXBlIGh0bWw+Cis8dGl0bGU+RXhhbXBsZSBwcmVmIHRlc3Q8L3RpdGxlPgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHA+VGVzdCBy
ZXF1aXJlcyB0aGUgcHJlZiBicm93c2VyLmRpc3BsYXkuZm9yZWdyb3VuZF9jb2xvciB0byBiZSBz
ZXQgdG8gIzAwRkYwMDwvcD4KKzxzY3JpcHQ+Cit0ZXN0KGZ1bmN0aW9uKCkgeworICBhc3NlcnRf
ZXF1YWxzKGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuY29sb3IsICJyZ2IoMCwgMCwg
MCkiKTsKK30sICJUZXN0IHRoYXQgcHJlZiB3YXMgcmVzZXQiKTsKKzwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3N1YmRpci93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC9zdWJkaXIvdzNj
LWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjM2N2FiMzhhNjAzZmZkZTlmNTY5MDdiZjlhZGNhZmQ0
YmM2Y2ZmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3Mv
ZmlyZWZveC9zdWJkaXIvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOCBAQAorVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
CitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1
Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3N1YmRpci90ZXN0X3ByZWZfaW5o
ZXJpdC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3N1YmRpci90
ZXN0X3ByZWZfcmVzZXQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFy
bmVzcy9maXJlZm94L3Rlc3RfcHJlZl9kaXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhh
cm5lc3MvZmlyZWZveC90ZXN0X3ByZWZfZGlyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTA1ZDkwNzBjOWRj
ZWFkY2RiMGNjNjQ3MTM4OTY3OGM4ZDI3MTlhYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
dGVzdGRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC90ZXN0X3ByZWZfZGlyLmh0bWwKQEAgLTAsMCAr
MSwxMCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8dGl0bGU+RXhhbXBsZSBwcmVmIHRlc3Q8L3RpdGxl
PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHA+
VGVzdCByZXF1aXJlcyB0aGUgcHJlZiBicm93c2VyLmRpc3BsYXkuZm9yZWdyb3VuZF9jb2xvciB0
byBiZSBzZXQgdG8gI0ZGMDAwMDwvcD4KKzxzY3JpcHQ+Cit0ZXN0KGZ1bmN0aW9uKCkgeworICBh
c3NlcnRfZXF1YWxzKGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuY29sb3IsICJyZ2Io
MjU1LCAwLCAwKSIpOworfSwgIlRlc3QgdGhhdCBwcmVmIHdhcyBzZXQiKTsKKzwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3Rlc3RfcHJl
Zl9zZXQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC90ZXN0X3By
ZWZfc2V0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGU1ZTI5ODliZjcyOTlmNDIyYzlkYzBjMTNmMmM3Mjk4
ZjBkZmY1MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3Mv
ZmlyZWZveC90ZXN0X3ByZWZfc2V0Lmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFkb2N0eXBlIGh0
bWw+Cis8dGl0bGU+RXhhbXBsZSBwcmVmIHRlc3Q8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHA+VGVzdCByZXF1aXJlcyB0aGUgcHJl
ZiBicm93c2VyLmRpc3BsYXkuZm9yZWdyb3VuZF9jb2xvciB0byBiZSBzZXQgdG8gIzAwRkYwMDwv
cD4KKzxzY3JpcHQ+Cit0ZXN0KGZ1bmN0aW9uKCkgeworICBhc3NlcnRfZXF1YWxzKGdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuY29sb3IsICJyZ2IoMCwgMjU1LCAwKSIpOworfSwgIlRl
c3QgdGhhdCBwcmVmIHdhcyBzZXQiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90
ZXN0ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0
ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1OWRk
MGUwNjFiZGY5MDMwN2YyODgyYTEwMjI1MTdjNjJlZjRhNTkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvdzNjLWltcG9ydC5sb2cKQEAgLTAs
MCArMSwxOCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94
L3Rlc3RfcHJlZl9kaXIuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvZmlyZWZv
eC90ZXN0X3ByZWZfc2V0Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhh
cm5lc3Mvc3ViZGlyL3Rlc3RoYXJuZXNzXzEuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhh
cm5lc3Mvc3ViZGlyL3Rlc3RoYXJuZXNzXzEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZDJmYzQzMWQzOTk5
OGQ2YmZhNjNiYzBlM2I3ODg0NzkxMDE0YzMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90
ZXN0ZGF0YS90ZXN0aGFybmVzcy9zdWJkaXIvdGVzdGhhcm5lc3NfMS5odG1sCkBAIC0wLDAgKzEs
OSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8dGl0bGU+VGVzdCBzaG91bGQgYmUgZW5hYmxlZDwvdGl0
bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgordGVzdChmdW5jdGlvbigpIHsKKyAgYXNzZXJ0X3RydWUodHJ1ZSk7Cit9LCAiVGVz
dCB0aGF0IHNob3VsZCBwYXNzIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvdGVzdGhhcm5lc3Mvc3ViZGlyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0
YS90ZXN0aGFybmVzcy9zdWJkaXIvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjBiNjEzNWZh
MDg3YjM5M2ZkY2I2NGJmM2U0OWVkMmExMzYwMDUyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvdGVzdGRhdGEvdGVzdGhhcm5lc3Mvc3ViZGlyL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEs
MTcgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
KworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitM
aXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3Mvc3ViZGlyL3Rlc3Ro
YXJuZXNzXzEuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy90
ZXN0aGFybmVzcy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy90ZXN0
aGFybmVzcy5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4NzFlYWMwMDE0OGQ0NGE4YmViZGM0Mzk0
ZTFjYjhiNGQ1OGRhYzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3Ro
YXJuZXNzL3Rlc3RoYXJuZXNzLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFkb2N0eXBl
IGh0bWw+Cis8dGl0bGU+RXhhbXBsZSBodHRwcyB0ZXN0PC90aXRsZT4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit0ZXN0KGZ1bmN0
aW9uKCkgeworICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCwgImh0dHBz
OiIpOworfSwgIlRlc3QgdGhhdCBmaWxlIHdhcyBsb2FkZWQgd2l0aCB0aGUgY29ycmVjdCBwcm90
b2NvbCIpOworCis8L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzXzAuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfMC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmZmMDY1NGNiOWEwOTI1MWFkMDA4MmU4ZDg0OTE4YjIwNjhjMTJlMWUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzXzAuaHRtbApAQCAt
MCwwICsxLDkgQEAKKzwhZG9jdHlwZSBodG1sPgorPHRpdGxlPlRlc3Qgc2hvdWxkIGJlIGRpc2Fi
bGVkPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+Cit0ZXN0KGZ1bmN0aW9uKCkgeworICBhc3NlcnRfdHJ1ZShmYWxzZSk7
Cit9LCAiVGVzdCB0aGF0IHNob3VsZCBmYWlsIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfZXJyb3IuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfZXJyb3IuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wYWM1YmE0NmEzMzA1ZjZmYmM2M2RkOGQxZmM3NDk2MDM0ZGE5YWZlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy90ZXN0aGFybmVzc19lcnJvci5odG1s
CkBAIC0wLDAgKzEsNyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8dGl0bGU+dGVzdGhhcm5lc3MuanMg
dGVzdCB0aGF0IHNob3VsZCBlcnJvcjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgordW5kZWZpbmVkX2Z1bmN0aW9uKCkK
Kzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy90ZXN0
aGFybmVzc19sb25nX3RpbWVvdXQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3Mv
dGVzdGhhcm5lc3NfbG9uZ190aW1lb3V0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmM5NGUwNTViZTBjNTU0
NTRjMTJlMDg1MDFjYzk4MWZkYWY0NTgzNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvdGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfbG9uZ190aW1lb3V0Lmh0bWwKQEAgLTAsMCAr
MSw5IEBACis8IWRvY3R5cGUgaHRtbD4KKzx0aXRsZT50ZXN0aGFybmVzcy5qcyB0ZXN0IHdpdGgg
bG9uZyB0aW1lb3V0PC90aXRsZT4KKzxtZXRhIG5hbWU9dGltZW91dCBjb250ZW50PWxvbmc+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgordmFyIHQgPSBhc3luY190ZXN0KCJMb25nIHRpbWVvdXQgdGVzdCIpOworc2V0VGltZW91dCh0
LnN0ZXBfZnVuY19kb25lKGZ1bmN0aW9uKCkge2Fzc2VydF90cnVlKHRydWUpfSksIDE1KjEwMDAp
OworPC9zY3JpcHQ+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy90ZXN0aGFybmVzc190aW1lb3V0Lmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzX3RpbWVvdXQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iOTk5MTVhYzc0NTM5NTJhYTE5OWM3YWMyNGU5MTk0NTlmNjY1YTQyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy90ZXN0aGFybmVzc190aW1lb3V0
Lmh0bWwKQEAgLTAsMCArMSw2IEBACis8IWRvY3R5cGUgaHRtbD4KKzx0aXRsZT5TaW1wbGUgdGVz
dGhhcm5lc3MuanMgdXNhZ2U8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorCisvLyBUaGlzIGZpbGUgc2hvdWxkIHRpbWUgb3V0LCBvYnZp
b3VzbHkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rl
c3RkYXRhL3Rlc3RoYXJuZXNzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0
aGFybmVzcy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZjkyNTVkMGYxNzlmODEyZjM3OGY5
ZDQ4NGI1MjUzZjk1YjM2M2RjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90
ZXN0aGFybmVzcy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDIxIEBACitUaGUgdGVzdHMgaW4g
dGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0Rv
IE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3Jl
YXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNv
bS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2lt
cG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3Ig
cmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzLmh0dHBzLmh0bWwKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzXzAuaHRtbAorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvdGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfZXJyb3IuaHRtbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
dGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfbG9uZ190aW1lb3V0Lmh0bWwKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Rk
YXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzX3RpbWVvdXQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTQ5OThmMDgwZGJlMzZiMzcyNDU5OTMxOWZmNTcyNTA0MjUwZmJiMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOCBAQAorVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitE
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5j
b20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC90ZXN0LmNmZy5leGFtcGxlCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0LnB5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
b3guaW5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdG94LmluaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYjMwMjU4NWZmNDE2MjI3NGNhYWMwNmQ0
YTYwMTU4NzVmYzBhYmU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdG94LmluaQpAQCAtMCwwICsx
LDYyIEBACitbcHl0ZXN0XQoreGZhaWxfc3RyaWN0PXRydWUKKworW3RveF0KK2Vudmxpc3QgPSB7
cHkyNyxweXB5fS17YmFzZSxjaHJvbWUsZWRnZSxmaXJlZm94LGllLG9wZXJhLHNhZmFyaSxzYXVj
ZSxzZXJ2b30scHkyNy1mbGFrZTgKKworW3Rlc3RlbnZdCitkZXBzID0KKyAgICAgcHl0ZXN0Pj0y
LjkKKyAgICAgcHl0ZXN0LWNvdgorICAgICBweXRlc3QteGRpc3QKKyAgICAgbW9jaworICAgICAt
cnt0b3hpbmlkaXJ9L3JlcXVpcmVtZW50cy50eHQKKyAgICAgY2hyb21lOiAtcnt0b3hpbmlkaXJ9
L3JlcXVpcmVtZW50c19jaHJvbWUudHh0CisgICAgIGVkZ2U6IC1ye3RveGluaWRpcn0vcmVxdWly
ZW1lbnRzX2VkZ2UudHh0CisgICAgIGZpcmVmb3g6IC1ye3RveGluaWRpcn0vcmVxdWlyZW1lbnRz
X2ZpcmVmb3gudHh0CisgICAgIGllOiAtcnt0b3hpbmlkaXJ9L3JlcXVpcmVtZW50c19pZS50eHQK
KyAgICAgb3BlcmE6IC1ye3RveGluaWRpcn0vcmVxdWlyZW1lbnRzX29wZXJhLnR4dAorICAgICBz
YWZhcmk6IC1ye3RveGluaWRpcn0vcmVxdWlyZW1lbnRzX3NhZmFyaS50eHQKKyAgICAgc2F1Y2U6
IC1ye3RveGluaWRpcn0vcmVxdWlyZW1lbnRzX3NhdWNlLnR4dAorICAgICBzZXJ2bzogLXJ7dG94
aW5pZGlyfS9yZXF1aXJlbWVudHNfc2Vydm8udHh0CisKK2NvbW1hbmRzID0gcHl0ZXN0IHtwb3Nh
cmdzOi0tY292fQorCitzZXRlbnYgPSBDVVJSRU5UX1RPWF9FTlYgPSB7ZW52bmFtZX0KKworW3Rl
c3RlbnY6cHkyNy1mbGFrZThdCisjIGZsYWtlOCB2ZXJzaW9ucyBzaG91bGQgYmUga2VwdCBpbiBz
eW5jIGFjcm9zcyB0b29scy90b3guaW5pLCB0b29scy93cHQvdG94LmluaSwgYW5kIHRvb2xzL3dw
dHJ1bm5lci90b3guaW5pCitkZXBzID0KKyAgICAgZmxha2U4PT0zLjUuMAorICAgICBweWNvZGVz
dHlsZT09Mi4zLjEKKyAgICAgcHlmbGFrZXM9PTEuNi4wCisgICAgIHBlcDgtbmFtaW5nPT0wLjQu
MQorCitjb21tYW5kcyA9CisgICAgIGZsYWtlOAorCitbZmxha2U4XQorIyBmbGFrZTggY29uZmln
IHNob3VsZCBiZSBrZXB0IGluIHN5bmMgYWNyb3NzIHRvb2xzL3RveC5pbmksIHRvb2xzL3dwdC90
b3guaW5pLCBhbmQgdG9vbHMvd3B0cnVubmVyL3RveC5pbmkKK3NlbGVjdCA9IEUsVyxGLE4KKyMg
RTEyODogY29udGludWF0aW9uIGxpbmUgdW5kZXItaW5kZW50ZWQgZm9yIHZpc3VhbCBpbmRlbnQK
KyMgRTEyOTogdmlzdWFsbHkgaW5kZW50ZWQgbGluZSB3aXRoIHNhbWUgaW5kZW50IGFzIG5leHQg
bG9naWNhbCBsaW5lCisjIEUyMjE6IG11bHRpcGxlIHNwYWNlcyBiZWZvcmUgb3BlcmF0b3IKKyMg
RTIyNjogbWlzc2luZyB3aGl0ZXNwYWNlIGFyb3VuZCBhcml0aG1ldGljIG9wZXJhdG9yCisjIEUy
MzE6IG1pc3Npbmcgd2hpdGVzcGFjZSBhZnRlciDigJgs4oCZLCDigJg74oCZLCBvciDigJg64oCZ
CisjIEUyNTE6IHVuZXhwZWN0ZWQgc3BhY2VzIGFyb3VuZCBrZXl3b3JkIC8gcGFyYW1ldGVyIGVx
dWFscworIyBFMjY1OiBibG9jayBjb21tZW50IHNob3VsZCBzdGFydCB3aXRoIOKAmCMg4oCYCisj
IEUzMDI6IGV4cGVjdGVkIDIgYmxhbmsgbGluZXMsIGZvdW5kIDAKKyMgRTMwMzogdG9vIG1hbnkg
YmxhbmsgbGluZXMgKDMpCisjIEUzMDU6IGV4cGVjdGVkIDIgYmxhbmsgbGluZXMgYWZ0ZXIgZW5k
IG9mIGZ1bmN0aW9uIG9yIGNsYXNzCisjIEU0MDI6IG1vZHVsZSBsZXZlbCBpbXBvcnQgbm90IGF0
IHRvcCBvZiBmaWxlCisjIEU3MzE6IGRvIG5vdCBhc3NpZ24gYSBsYW1iZGEgZXhwcmVzc2lvbiwg
dXNlIGEgZGVmCisjIEU5MDE6IFN5bnRheEVycm9yIG9yIEluZGVudGF0aW9uRXJyb3IKKyMgVzYw
MTogLmhhc19rZXkoKSBpcyBkZXByZWNhdGVkLCB1c2Ug4oCYaW7igJkKKyMgRjQwMTogbW9kdWxl
IGltcG9ydGVkIGJ1dCB1bnVzZWQKKyMgRjQwMzog4oCYZnJvbSBtb2R1bGUgaW1wb3J0ICrigJkg
dXNlZDsgdW5hYmxlIHRvIGRldGVjdCB1bmRlZmluZWQgbmFtZXMKKyMgRjQwNTogbmFtZSBtYXkg
YmUgdW5kZWZpbmVkLCBvciBkZWZpbmVkIGZyb20gc3RhciBpbXBvcnRzOiBtb2R1bGUKKyMgRjg0
MTogbG9jYWwgdmFyaWFibGUgbmFtZSBpcyBhc3NpZ25lZCB0byBidXQgbmV2ZXIgdXNlZAorIyBO
ODAxOiBjbGFzcyBuYW1lcyBzaG91bGQgdXNlIENhcFdvcmRzIGNvbnZlbnRpb24KKyMgTjgwMjog
ZnVuY3Rpb24gbmFtZSBzaG91bGQgYmUgbG93ZXJjYXNlCitpZ25vcmUgPSBFMTI4LEUxMjksRTIy
MSxFMjI2LEUyMzEsRTI1MSxFMjY1LEUzMDIsRTMwMyxFMzA1LEU0MDIsRTczMSxFOTAxLFc2MDEs
RjQwMSxGNDAzLEY0MDUsRjg0MSxOODAxLE44MDIKK21heC1saW5lLWxlbmd0aCA9IDE0MQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40MzI0N2VhMDE2MzQwODIwMWI5NDFhMTdmMWYwMTY5ZmMwY2Y5MTk3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwzMyBAQAorVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20v
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvTElD
RU5TRQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL01BTklGRVNULmluCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvUkVBRE1FLnJzdAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50cy50
eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lLnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWVf
YW5kcm9pZC50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZWRnZS50eHQKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNf
ZmlyZWZveC50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfaWUudHh0CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX29w
ZXJhLnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zYWZhcmkudHh0CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3Nh
dWNlLnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zZXJ2by50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfd2Vi
a2l0LnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3NldHVwLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdG94LmluaQorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci5kZWZhdWx0
LmluaQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyLmRlZmF1bHQuaW5pIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
LmRlZmF1bHQuaW5pCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0ZDI1ZjgwNTZiMGNmNzBmNjhhODIyNjA4ZTQ3NGY2
M2IwNjY2ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIuZGVmYXVsdC5pbmkKQEAg
LTAsMCArMSwxMSBAQAorW3Byb2R1Y3RzXQorCitbd2ViLXBsYXRmb3JtLXRlc3RzXQorcmVtb3Rl
X3VybCA9IGh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzLmdpdAorYnJh
bmNoID0gbWFzdGVyCitzeW5jX3BhdGggPSAlKHB3ZClzL3N5bmMKKworW21hbmlmZXN0OmRlZmF1
bHRdCit0ZXN0cyA9ICUocHdkKXMvdGVzdHMKK21ldGFkYXRhID0gJShwd2Qpcy9tZXRhCit1cmxf
YmFzZSA9IC8KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvX19pbml0X18ucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9fX2luaXRfXy5weQpAQCAtMCwwICsxIEBACisjIFRoaXMgZmlsZSBp
cyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxl
cy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
YnJvd3NlcnMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvX19pbml0X18ucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNmYwYzQ5ZThiMWZhNTY3Nzk1ZGU0MjlhYzllNDA4ZmNjMjRlZDllMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9fX2luaXRfXy5weQpAQCAtMCww
ICsxLDM1IEBACisiIiJTdWJwYWNrYWdlIHdoZXJlIGVhY2ggcHJvZHVjdCBpcyBkZWZpbmVkLiBF
YWNoIHByb2R1Y3QgaXMgY3JlYXRlZCBieSBhZGRpbmcgYQorYSAucHkgZmlsZSBjb250YWluaW5n
IGEgX193cHRydW5uZXJfXyB2YXJpYWJsZSBpbiB0aGUgZ2xvYmFsIHNjb3BlLiBUaGlzIG11c3Qg
YmUKK2EgZGljdGlvbmFyeSB3aXRoIHRoZSBmaWVsZHMKKworInByb2R1Y3QiOiBOYW1lIG9mIHRo
ZSBwcm9kdWN0LCBhc3N1bWVkIHRvIGJlIHVuaXF1ZS4KKyJicm93c2VyIjogU3RyaW5nIGluZGlj
YXRpbmcgdGhlIEJyb3dzZXIgaW1wbGVtZW50YXRpb24gdXNlZCB0byBsYXVuY2ggdGhhdAorICAg
ICAgICAgICBwcm9kdWN0LgorImV4ZWN1dG9yIjogRGljdGlvbmFyeSB3aXRoIGtleXMgYXMgc3Vw
cG9ydGVkIHRlc3QgdHlwZXMgYW5kIHZhbHVlcyBhcyB0aGUgbmFtZQorICAgICAgICAgICAgb2Yg
dGhlIEV4ZWN1dG9yIGltcGxlbWFudGF0aW9uIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHJ1biB0aGF0
IHRlc3QKKyAgICAgICAgICAgIHR5cGUuCisiYnJvd3Nlcl9rd2FyZ3MiOiBTdHJpbmcgbmFtaW5n
IGZ1bmN0aW9uIHRoYXQgdGFrZXMgcHJvZHVjdCwgYmluYXJ5LAorICAgICAgICAgICAgICAgICAg
cHJlZnNfcm9vdCBhbmQgdGhlIHdwdHJ1bm5lci5ydW5fdGVzdHMga3dhcmdzIGRpY3QgYXMgYXJn
dW1lbnRzCisgICAgICAgICAgICAgICAgICBhbmQgcmV0dXJucyBhIGRpY3Rpb25hcnkgb2Yga3dh
cmdzIHRvIHVzZSB3aGVuIGNyZWF0aW5nIHRoZQorICAgICAgICAgICAgICAgICAgQnJvd3NlciBj
bGFzcy4KKyJleGVjdXRvcl9rd2FyZ3MiOiBTdHJpbmcgbmFtaW5nIGEgZnVuY3Rpb24gdGhhdCB0
YWtlcyBodHRwIHNlcnZlciB1cmwgYW5kCisgICAgICAgICAgICAgICAgICAgdGltZW91dCBtdWx0
aXBsaWVyIGFuZCByZXR1cm5zIGt3YXJncyB0byB1c2Ugd2hlbiBjcmVhdGluZworICAgICAgICAg
ICAgICAgICAgIHRoZSBleGVjdXRvciBjbGFzcy4KKyJlbnZfb3B0aW9ucyI6IFN0cmluZyBuYW1p
bmcgYSBmdW50aW9uIG9mIG5vIGFyZ3VtZW50cyB0aGF0IHJldHVybnMgdGhlCisgICAgICAgICAg
ICAgICBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBUZXN0RW52aXJvbm1lbnQuCisKK0FsbCBjbGFz
c2VzIGFuZCBmdW5jdGlvbnMgbmFtZWQgaW4gdGhlIGFib3ZlIGRpY3QgbXVzdCBiZSBpbXBvcnRl
ZCBpbnRvIHRoZQorbW9kdWxlIGdsb2JhbCBzY29wZS4KKyIiIgorCitwcm9kdWN0X2xpc3QgPSBb
ImNocm9tZSIsCisgICAgICAgICAgICAgICAgImNocm9tZV9hbmRyb2lkIiwKKyAgICAgICAgICAg
ICAgICAiZWRnZSIsCisgICAgICAgICAgICAgICAgImZpcmVmb3giLAorICAgICAgICAgICAgICAg
ICJpZSIsCisgICAgICAgICAgICAgICAgInNhZmFyaSIsCisgICAgICAgICAgICAgICAgInNhdWNl
IiwKKyAgICAgICAgICAgICAgICAic2Vydm8iLAorICAgICAgICAgICAgICAgICJzZXJ2b2RyaXZl
ciIsCisgICAgICAgICAgICAgICAgIm9wZXJhIiwKKyAgICAgICAgICAgICAgICAid2Via2l0Il0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9iYXNlLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Jyb3dzZXJzL2Jhc2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTRjOWMzMDFiZDU4Mzg5MWI0ODFkMmQzYTI3
MjY5MmEwOGI0MTk0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9i
YXNlLnB5CkBAIC0wLDAgKzEsMTY2IEBACitpbXBvcnQgb3MKK2ltcG9ydCBwbGF0Zm9ybQoraW1w
b3J0IHNvY2tldAorZnJvbSBhYmMgaW1wb3J0IEFCQ01ldGEsIGFic3RyYWN0bWV0aG9kCisKK2Zy
b20gLi53cHRjb21tYW5kbGluZSBpbXBvcnQgcmVxdWlyZV9hcmcKKworaGVyZSA9IG9zLnBhdGgu
c3BsaXQoX19maWxlX18pWzBdCisKKworZGVmIGNtZF9hcmcobmFtZSwgdmFsdWU9Tm9uZSk6Cisg
ICAgcHJlZml4ID0gIi0iIGlmIHBsYXRmb3JtLnN5c3RlbSgpID09ICJXaW5kb3dzIiBlbHNlICIt
LSIKKyAgICBydiA9IHByZWZpeCArIG5hbWUKKyAgICBpZiB2YWx1ZSBpcyBub3QgTm9uZToKKyAg
ICAgICAgcnYgKz0gIj0iICsgdmFsdWUKKyAgICByZXR1cm4gcnYKKworCitkZWYgZ2V0X2ZyZWVf
cG9ydChzdGFydF9wb3J0LCBleGNsdWRlPU5vbmUpOgorICAgICIiIkdldCB0aGUgZmlyc3QgcG9y
dCBudW1iZXIgYWZ0ZXIgc3RhcnRfcG9ydCAoaW5jbHVzaXZlKSB0aGF0IGlzCisgICAgbm90IGN1
cnJlbnRseSBib3VuZC4KKworICAgIDpwYXJhbSBzdGFydF9wb3J0OiBJbnRlZ2VyIHBvcnQgbnVt
YmVyIGF0IHdoaWNoIHRvIHN0YXJ0IHRlc3RpbmcuCisgICAgOnBhcmFtIGV4Y2x1ZGU6IFNldCBv
ZiBwb3J0IG51bWJlcnMgdG8gc2tpcCIiIgorICAgIHBvcnQgPSBzdGFydF9wb3J0CisgICAgd2hp
bGUgVHJ1ZToKKyAgICAgICAgaWYgZXhjbHVkZSBhbmQgcG9ydCBpbiBleGNsdWRlOgorICAgICAg
ICAgICAgcG9ydCArPSAxCisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBzID0gc29ja2V0
LnNvY2tldCgpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHMuYmluZCgoIjEyNy4wLjAuMSIs
IHBvcnQpKQorICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yOgorICAgICAgICAgICAgcG9ydCAr
PSAxCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gcG9ydAorICAgICAgICBmaW5h
bGx5OgorICAgICAgICAgICAgcy5jbG9zZSgpCisKK2RlZiBicm93c2VyX2NvbW1hbmQoYmluYXJ5
LCBhcmdzLCBkZWJ1Z19pbmZvKToKKyAgICBpZiBkZWJ1Z19pbmZvOgorICAgICAgICBpZiBkZWJ1
Z19pbmZvLnJlcXVpcmVzRXNjYXBlZEFyZ3M6CisgICAgICAgICAgICBhcmdzID0gW2l0ZW0ucmVw
bGFjZSgiJiIsICJcXCYiKSBmb3IgaXRlbSBpbiBhcmdzXQorICAgICAgICBkZWJ1Z19hcmdzID0g
W2RlYnVnX2luZm8ucGF0aF0gKyBkZWJ1Z19pbmZvLmFyZ3MKKyAgICBlbHNlOgorICAgICAgICBk
ZWJ1Z19hcmdzID0gW10KKworICAgIGNvbW1hbmQgPSBbYmluYXJ5XSArIGFyZ3MKKworICAgIHJl
dHVybiBkZWJ1Z19hcmdzLCBjb21tYW5kCisKKworY2xhc3MgQnJvd3NlckVycm9yKEV4Y2VwdGlv
bik6CisgICAgcGFzcworCisKK2NsYXNzIEJyb3dzZXIob2JqZWN0KToKKyAgICBfX21ldGFjbGFz
c19fID0gQUJDTWV0YQorCisgICAgcHJvY2Vzc19jbHMgPSBOb25lCisgICAgaW5pdF90aW1lb3V0
ID0gMzAKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIpOgorICAgICAgICAiIiJBYnN0
cmFjdCBjbGFzcyBzZXJ2aW5nIGFzIHRoZSBiYXNpcyBmb3IgQnJvd3NlciBpbXBsZW1lbnRhdGlv
bnMuCisKKyAgICAgICAgVGhlIEJyb3dzZXIgaXMgdXNlZCBpbiB0aGUgVGVzdFJ1bm5lck1hbmFn
ZXIgdG8gc3RhcnQgYW5kIHN0b3AgdGhlIGJyb3dzZXIKKyAgICAgICAgcHJvY2VzcywgYW5kIHRv
IGNoZWNrIHRoZSBzdGF0ZSBvZiB0aGF0IHByb2Nlc3MuIFRoaXMgY2xhc3MgYWxzbyBhY3RzIGFz
IGEKKyAgICAgICAgY29udGV4dCBtYW5hZ2VyLCBlbmFibGluZyBpdCB0byBkbyBicm93c2VyLXNw
ZWNpZmljIHNldHVwIGF0IHRoZSBzdGFydCBvZgorICAgICAgICB0aGUgdGVzdHJ1biBhbmQgY2xl
YW51cCBhZnRlciB0aGUgcnVuIGlzIGNvbXBsZXRlLgorCisgICAgICAgIDpwYXJhbSBsb2dnZXI6
IFN0cnVjdHVyZWQgbG9nZ2VyIHRvIHVzZSBmb3Igb3V0cHV0LgorICAgICAgICAiIiIKKyAgICAg
ICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKKworICAgIGRlZiBfX2VudGVyX18oc2VsZik6CisgICAg
ICAgIHNlbGYuc2V0dXAoKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9fZXhpdF9f
KHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYuY2xlYW51cCgpCisKKyAgICBk
ZWYgc2V0dXAoc2VsZik6CisgICAgICAgICIiIlVzZWQgZm9yIGJyb3dzZXItc3BlY2lmaWMgc2V0
dXAgdGhhdCBoYXBwZW5zIGF0IHRoZSBzdGFydCBvZiBhIHRlc3QgcnVuIiIiCisgICAgICAgIHBh
c3MKKworICAgIGRlZiBzZXR0aW5ncyhzZWxmLCB0ZXN0KToKKyAgICAgICAgcmV0dXJuIHt9CisK
KyAgICBAYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgc3RhcnQoc2VsZiwgKiprd2FyZ3MpOgorICAg
ICAgICAiIiJMYXVuY2ggdGhlIGJyb3dzZXIgb2JqZWN0IGFuZCBnZXQgaXQgaW50byBhIHN0YXRl
IHdoZXJlIGlzIGlzIHJlYWR5IHRvIHJ1biB0ZXN0cyIiIgorICAgICAgICBwYXNzCisKKyAgICBA
YWJzdHJhY3RtZXRob2QKKyAgICBkZWYgc3RvcChzZWxmLCBmb3JjZT1GYWxzZSk6CisgICAgICAg
ICIiIlN0b3AgdGhlIHJ1bm5pbmcgYnJvd3NlciBwcm9jZXNzLiIiIgorICAgICAgICBwYXNzCisK
KyAgICBAYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgcGlkKHNlbGYpOgorICAgICAgICAiIiJwaWQg
b2YgdGhlIGJyb3dzZXIgcHJvY2VzcyBvciBOb25lIGlmIHRoZXJlIGlzIG5vIHBpZCIiIgorICAg
ICAgICBwYXNzCisKKyAgICBAYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgaXNfYWxpdmUoc2VsZik6
CisgICAgICAgICIiIkJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBicm93c2VyIHByb2Nl
c3MgaXMgc3RpbGwgcnVubmluZyIiIgorICAgICAgICBwYXNzCisKKyAgICBkZWYgc2V0dXBfc3Ns
KHNlbGYsIGhvc3RzKToKKyAgICAgICAgIiIiUmV0dXJuIGEgY2VydGlmaWNhdGUgdG8gdXNlIGZv
ciB0ZXN0cyByZXF1aXJpbmcgc3NsIHRoYXQgd2lsbCBiZSB0cnVzdGVkIGJ5IHRoZSBicm93c2Vy
IiIiCisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoInNzbCB0ZXN0aW5nIG5vdCBz
dXBwb3J0ZWQiKQorCisgICAgZGVmIGNsZWFudXAoc2VsZik6CisgICAgICAgICIiIkJyb3dzZXIt
c3BlY2lmaWMgY2xlYW51cCB0aGF0IGlzIHJ1biBhZnRlciB0aGUgdGVzdHJ1biBpcyBmaW5pc2hl
ZCIiIgorICAgICAgICBwYXNzCisKKyAgICBkZWYgZXhlY3V0b3JfYnJvd3NlcihzZWxmKToKKyAg
ICAgICAgIiIiUmV0dXJucyB0aGUgRXhlY3V0b3JCcm93c2VyIHN1YmNsYXNzIGZvciB0aGlzIEJy
b3dzZXIgc3ViY2xhc3MgYW5kIHRoZSBrZXl3b3JkIGFyZ3VtZW50cworICAgICAgICB3aXRoIHdo
aWNoIGl0IHNob3VsZCBiZSBpbnN0YW50aWF0ZWQiIiIKKyAgICAgICAgcmV0dXJuIEV4ZWN1dG9y
QnJvd3Nlciwge30KKworICAgIGRlZiBjaGVja19mb3JfY3Jhc2hlcyhzZWxmKToKKyAgICAgICAg
IiIiQ2hlY2sgZm9yIGNyYXNoZXMgdGhhdCBkaWRuJ3QgY2F1c2UgdGhlIGJyb3dzZXIgcHJvY2Vz
cyB0byB0ZXJtaW5hdGUiIiIKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgbG9nX2Ny
YXNoKHNlbGYsIHByb2Nlc3MsIHRlc3QpOgorICAgICAgICAiIiJSZXR1cm4gYSBsaXN0IG9mIGRp
Y3Rpb25hcmllcyBjb250YWluaW5nIGluZm9ybWF0aW9uIGFib3V0IGNyYXNoZXMgdGhhdCBoYXBw
ZW5kCisgICAgICAgIGluIHRoZSBicm93c2VyLCBvciBhbiBlbXB0eSBsaXN0IGlmIG5vIGNyYXNo
ZXMgb2NjdXJyZWQiIiIKKyAgICAgICAgc2VsZi5sb2dnZXIuY3Jhc2gocHJvY2VzcywgdGVzdCkK
KworCitjbGFzcyBOdWxsQnJvd3NlcihCcm93c2VyKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
bG9nZ2VyLCAqKmt3YXJncyk6CisgICAgICAgIHN1cGVyKE51bGxCcm93c2VyLCBzZWxmKS5fX2lu
aXRfXyhsb2dnZXIpCisKKyAgICBkZWYgc3RhcnQoc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICAi
IiJOby1vcCBicm93c2VyIHRvIHVzZSBpbiBzY2VuYXJpb3Mgd2hlcmUgdGhlIFRlc3RSdW5uZXJN
YW5hZ2VyIHNob3VsZG4ndAorICAgICAgICBhY3R1YWxseSBvd24gdGhlIGJyb3dzZXIgcHJvY2Vz
cyAoZS5nLiBTZXJ2byB3aGVyZSB3ZSBzdGFydCBvbmUgYnJvd3NlcgorICAgICAgICBwZXIgdGVz
dCkiIiIKKyAgICAgICAgcGFzcworCisgICAgZGVmIHN0b3Aoc2VsZiwgZm9yY2U9RmFsc2UpOgor
ICAgICAgICBwYXNzCisKKyAgICBkZWYgcGlkKHNlbGYpOgorICAgICAgICByZXR1cm4gTm9uZQor
CisgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVm
IG9uX291dHB1dChzZWxmLCBsaW5lKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJv
cgorCisKK2NsYXNzIEV4ZWN1dG9yQnJvd3NlcihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCAqKmt3YXJncyk6CisgICAgICAgICIiIlZpZXcgb2YgdGhlIEJyb3dzZXIgdXNlZCBieSB0
aGUgRXhlY3V0b3Igb2JqZWN0LgorICAgICAgICBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHRoZSBF
eGVjdXRvciBydW5zIGluIGEgY2hpbGQgcHJvY2VzcyBhbmQKKyAgICAgICAgd2UgY2FuJ3Qgc2hp
cCBCcm93c2VyIGluc3RhbmNlcyBiZXR3ZWVuIHByb2Nlc3NlcyBvbiBXaW5kb3dzLgorCisgICAg
ICAgIFR5cGljYWxseSB0aGlzIHdpbGwgaGF2ZSBhIGZldyBwcm9kdWN0LXNwZWNpZmljIHByb3Bl
cnRpZXMgc2V0LAorICAgICAgICBidXQgaW4gc29tZSBjYXNlcyBpdCBtYXkgaGF2ZSBtb3JlIGVs
YWJvcmF0ZSBtZXRob2RzIGZvciBzZXR0aW5nCisgICAgICAgIHVwIHRoZSBicm93c2VyIGZyb20g
dGhlIHJ1bm5lciBwcm9jZXNzLgorICAgICAgICAiIiIKKyAgICAgICAgZm9yIGssIHYgaW4ga3dh
cmdzLml0ZXJpdGVtcygpOgorICAgICAgICAgICAgc2V0YXR0cihzZWxmLCBrLCB2KQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZS5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93
c2Vycy9jaHJvbWUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTUwYzU5MjIxY2Q1NGU1ODQxYjg4ODgzMjFiMDM3
ZmY2ZDVhMjEyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJv
bWUucHkKQEAgLTAsMCArMSwxMDAgQEAKK2Zyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1
dG9yQnJvd3NlciwgcmVxdWlyZV9hcmcKK2Zyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBD
aHJvbWVEcml2ZXJTZXJ2ZXIKK2Zyb20gLi5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJn
cyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncworZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcnNlbGVu
aXVtIGltcG9ydCAoU2VsZW5pdW1UZXN0aGFybmVzc0V4ZWN1dG9yLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VsZW5pdW1SZWZUZXN0RXhlY3V0b3IpCitmcm9t
IC4uZXhlY3V0b3JzLmV4ZWN1dG9yY2hyb21lIGltcG9ydCBDaHJvbWVEcml2ZXJXZHNwZWNFeGVj
dXRvcgorCisKK19fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiY2hyb21lIiwKKyAgICAgICAg
ICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCisgICAgICAgICAgICAgICAgICJi
cm93c2VyIjogIkNocm9tZUJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7
InRlc3RoYXJuZXNzIjogIlNlbGVuaXVtVGVzdGhhcm5lc3NFeGVjdXRvciIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJTZWxlbml1bVJlZlRlc3RFeGVjdXRvciIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIkNocm9tZURyaXZlcldk
c3BlY0V4ZWN1dG9yIn0sCisgICAgICAgICAgICAgICAgICJicm93c2VyX2t3YXJncyI6ICJicm93
c2VyX2t3YXJncyIsCisgICAgICAgICAgICAgICAgICJleGVjdXRvcl9rd2FyZ3MiOiAiZXhlY3V0
b3Jfa3dhcmdzIiwKKyAgICAgICAgICAgICAgICAgImVudl9leHRyYXMiOiAiZW52X2V4dHJhcyIs
CisgICAgICAgICAgICAgICAgICJlbnZfb3B0aW9ucyI6ICJlbnZfb3B0aW9ucyJ9CisKKworZGVm
IGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgorICAgIHJlcXVpcmVfYXJnKGt3YXJncywgIndlYmRyaXZl
cl9iaW5hcnkiKQorCisKK2RlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2Rh
dGEsICoqa3dhcmdzKToKKyAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAor
ICAgICAgICAgICAgIndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnki
XSwKKyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9h
cmdzIil9CisKKworZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcs
IGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICoqa3dh
cmdzKToKKyAgICBmcm9tIHNlbGVuaXVtLndlYmRyaXZlciBpbXBvcnQgRGVzaXJlZENhcGFiaWxp
dGllcworCisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90
eXBlLCBzZXJ2ZXJfY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNhY2hlX21hbmFnZXIsICoqa3dhcmdzKQorICAgIGV4ZWN1dG9yX2t3YXJnc1siY2xv
c2VfYWZ0ZXJfZG9uZSJdID0gVHJ1ZQorICAgIGNhcGFiaWxpdGllcyA9IGRpY3QoRGVzaXJlZENh
cGFiaWxpdGllcy5DSFJPTUUuaXRlbXMoKSkKKyAgICBjYXBhYmlsaXRpZXMuc2V0ZGVmYXVsdCgi
Y2hyb21lT3B0aW9ucyIsIHt9KVsicHJlZnMiXSA9IHsKKyAgICAgICAgInByb2ZpbGUiOiB7Cisg
ICAgICAgICAgICAiZGVmYXVsdF9jb250ZW50X3NldHRpbmdfdmFsdWVzIjogeworICAgICAgICAg
ICAgICAgICJwb3B1cHMiOiAxCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAg
Zm9yIChrd2FyZywgY2FwYWJpbGl0eSkgaW4gWygiYmluYXJ5IiwgImJpbmFyeSIpLCAoImJpbmFy
eV9hcmdzIiwgImFyZ3MiKV06CisgICAgICAgIGlmIGt3YXJnc1trd2FyZ10gaXMgbm90IE5vbmU6
CisgICAgICAgICAgICBjYXBhYmlsaXRpZXNbImNocm9tZU9wdGlvbnMiXVtjYXBhYmlsaXR5XSA9
IGt3YXJnc1trd2FyZ10KKyAgICBpZiB0ZXN0X3R5cGUgPT0gInRlc3RoYXJuZXNzIjoKKyAgICAg
ICAgY2FwYWJpbGl0aWVzWyJjaHJvbWVPcHRpb25zIl1bInVzZUF1dG9tYXRpb25FeHRlbnNpb24i
XSA9IEZhbHNlCisgICAgICAgIGNhcGFiaWxpdGllc1siY2hyb21lT3B0aW9ucyJdWyJleGNsdWRl
U3dpdGNoZXMiXSA9IFsiZW5hYmxlLWF1dG9tYXRpb24iXQorICAgIGlmIHRlc3RfdHlwZSA9PSAi
d2RzcGVjIjoKKyAgICAgICAgY2FwYWJpbGl0aWVzWyJjaHJvbWVPcHRpb25zIl1bInczYyJdID0g
VHJ1ZQorICAgIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl0gPSBjYXBhYmlsaXRpZXMK
KyAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCisKKworZGVmIGVudl9leHRyYXMoKiprd2FyZ3Mp
OgorICAgIHJldHVybiBbXQorCisKK2RlZiBlbnZfb3B0aW9ucygpOgorICAgIHJldHVybiB7fQor
CisKK2NsYXNzIENocm9tZUJyb3dzZXIoQnJvd3Nlcik6CisgICAgIiIiQ2hyb21lIGlzIGJhY2tl
ZCBieSBjaHJvbWVkcml2ZXIsIHdoaWNoIGlzIHN1cHBsaWVkIHRocm91Z2gKKyAgICBgYHdwdHJ1
bm5lci53ZWJkcml2ZXIuQ2hyb21lRHJpdmVyU2VydmVyYGAuCisgICAgIiIiCisKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHdlYmRyaXZlcl9iaW5hcnk9ImNocm9tZWRy
aXZlciIsCisgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUpOgorICAgICAgICAi
IiJDcmVhdGVzIGEgbmV3IHJlcHJlc2VudGF0aW9uIG9mIENocm9tZS4gIFRoZSBgYmluYXJ5YCBh
cmd1bWVudCBnaXZlcworICAgICAgICB0aGUgYnJvd3NlciBiaW5hcnkgdG8gdXNlIGZvciB0ZXN0
aW5nLiIiIgorICAgICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKKyAgICAgICAg
c2VsZi5iaW5hcnkgPSBiaW5hcnkKKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBDaHJvbWVEcml2ZXJT
ZXJ2ZXIoc2VsZi5sb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJpbmFyeT13ZWJkcml2ZXJfYmluYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhcmdzPXdlYmRyaXZlcl9hcmdzKQorCisgICAgZGVmIHN0YXJ0KHNlbGYs
ICoqa3dhcmdzKToKKyAgICAgICAgc2VsZi5zZXJ2ZXIuc3RhcnQoYmxvY2s9RmFsc2UpCisKKyAg
ICBkZWYgc3RvcChzZWxmLCBmb3JjZT1GYWxzZSk6CisgICAgICAgIHNlbGYuc2VydmVyLnN0b3Ao
Zm9yY2U9Zm9yY2UpCisKKyAgICBkZWYgcGlkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5z
ZXJ2ZXIucGlkCisKKyAgICBkZWYgaXNfYWxpdmUoc2VsZik6CisgICAgICAgICMgVE9ETyhhdG8p
OiBUaGlzIG9ubHkgaW5kaWNhdGVzIHRoZSBkcml2ZXIgaXMgYWxpdmUsCisgICAgICAgICMgYW5k
IGRvZXNuJ3Qgc2F5IGFueXRoaW5nIGFib3V0IHdoZXRoZXIgYSBicm93c2VyIHNlc3Npb24KKyAg
ICAgICAgIyBpcyBhY3RpdmUuCisgICAgICAgIHJldHVybiBzZWxmLnNlcnZlci5pc19hbGl2ZSgp
CisKKyAgICBkZWYgY2xlYW51cChzZWxmKToKKyAgICAgICAgc2VsZi5zdG9wKCkKKworICAgIGRl
ZiBleGVjdXRvcl9icm93c2VyKHNlbGYpOgorICAgICAgICByZXR1cm4gRXhlY3V0b3JCcm93c2Vy
LCB7IndlYmRyaXZlcl91cmwiOiBzZWxmLnNlcnZlci51cmx9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvYnJvd3NlcnMvY2hyb21lX2FuZHJvaWQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMv
Y2hyb21lX2FuZHJvaWQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTg1YjFmZTU3ZWQyYzNiMDdlNDFlMGU5OTlj
NjFmZWQwOGNhOGRlMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9j
aHJvbWVfYW5kcm9pZC5weQpAQCAtMCwwICsxLDEyMSBAQAoraW1wb3J0IHN1YnByb2Nlc3MKKwor
ZnJvbSAuLmNvbmZpZyBpbXBvcnQgKgorZnJvbSAuYmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0
b3JCcm93c2VyLCByZXF1aXJlX2FyZworZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IENo
cm9tZURyaXZlclNlcnZlcgorZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdz
IGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yc2VsZW5p
dW0gaW1wb3J0IChTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3IsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlbml1bVJlZlRlc3RFeGVjdXRvcikKK2Zyb20g
Li5leGVjdXRvcnMuZXhlY3V0b3JjaHJvbWUgaW1wb3J0IENocm9tZURyaXZlcldkc3BlY0V4ZWN1
dG9yCisKKworX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJjaHJvbWVfYW5kcm9pZCIsCisg
ICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAorICAgICAgICAgICAg
ICAgICAiYnJvd3NlciI6ICJDaHJvbWVBbmRyb2lkQnJvd3NlciIsCisgICAgICAgICAgICAgICAg
ICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiU2VsZW5pdW1UZXN0aGFybmVzc0V4ZWN1dG9y
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0IjogIlNlbGVuaXVtUmVm
VGVzdEV4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAi
Q2hyb21lRHJpdmVyV2RzcGVjRXhlY3V0b3IifSwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXJf
a3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwKKyAgICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3
YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLAorICAgICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6
ICJlbnZfZXh0cmFzIiwKKyAgICAgICAgICAgICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRp
b25zIn0KKworX3dwdHNlcnZlX3BvcnRzID0gc2V0KCkKKworCitkZWYgY2hlY2tfYXJncygqKmt3
YXJncyk6CisgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVyX2JpbmFyeSIpCisKKwor
ZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpOgor
ICAgIHJldHVybiB7ImJpbmFyeSI6IGt3YXJnc1siYmluYXJ5Il0sCisgICAgICAgICAgICAid2Vi
ZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAorICAgICAgICAgICAg
IndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKX0KKworCitkZWYg
ZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwg
cnVuX2luZm9fZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgorICAgIGZyb20g
c2VsZW5pdW0ud2ViZHJpdmVyIGltcG9ydCBEZXNpcmVkQ2FwYWJpbGl0aWVzCisKKyAgICAjIFVz
ZSBleHRlbmQoKSB0byBtb2RpZnkgdGhlIGdsb2JhbCBsaXN0IGluIHBsYWNlLgorICAgIF93cHRz
ZXJ2ZV9wb3J0cy51cGRhdGUoc2V0KAorICAgICAgICBzZXJ2ZXJfY29uZmlnWydwb3J0cyddWydo
dHRwJ10gKyBzZXJ2ZXJfY29uZmlnWydwb3J0cyddWydodHRwcyddICsKKyAgICAgICAgc2VydmVy
X2NvbmZpZ1sncG9ydHMnXVsnd3MnXSArIHNlcnZlcl9jb25maWdbJ3BvcnRzJ11bJ3dzcyddCisg
ICAgKSkKKworICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3Rf
dHlwZSwgc2VydmVyX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjYWNoZV9tYW5hZ2VyLCAqKmt3YXJncykKKyAgICBleGVjdXRvcl9rd2FyZ3NbImNs
b3NlX2FmdGVyX2RvbmUiXSA9IFRydWUKKyAgICBjYXBhYmlsaXRpZXMgPSBkaWN0KERlc2lyZWRD
YXBhYmlsaXRpZXMuQ0hST01FLml0ZW1zKCkpCisgICAgY2FwYWJpbGl0aWVzWyJjaHJvbWVPcHRp
b25zIl0gPSB7fQorICAgICMgcmVxdWlyZWQgdG8gc3RhcnQgb24gbW9iaWxlCisgICAgY2FwYWJp
bGl0aWVzWyJjaHJvbWVPcHRpb25zIl1bImFuZHJvaWRQYWNrYWdlIl0gPSAiY29tLmdvb2dsZS5h
bmRyb2lkLmFwcHMuY2hyb21lIgorCisgICAgZm9yIChrd2FyZywgY2FwYWJpbGl0eSkgaW4gWygi
YmluYXJ5IiwgImJpbmFyeSIpLCAoImJpbmFyeV9hcmdzIiwgImFyZ3MiKV06CisgICAgICAgIGlm
IGt3YXJnc1trd2FyZ10gaXMgbm90IE5vbmU6CisgICAgICAgICAgICBjYXBhYmlsaXRpZXNbImNo
cm9tZU9wdGlvbnMiXVtjYXBhYmlsaXR5XSA9IGt3YXJnc1trd2FyZ10KKyAgICBpZiB0ZXN0X3R5
cGUgPT0gInRlc3RoYXJuZXNzIjoKKyAgICAgICAgY2FwYWJpbGl0aWVzWyJ1c2VBdXRvbWF0aW9u
RXh0ZW5zaW9uIl0gPSBGYWxzZQorICAgICAgICBjYXBhYmlsaXRpZXNbImV4Y2x1ZGVTd2l0Y2hl
cyJdID0gWyJlbmFibGUtYXV0b21hdGlvbiJdCisgICAgaWYgdGVzdF90eXBlID09ICJ3ZHNwZWMi
OgorICAgICAgICBjYXBhYmlsaXRpZXNbImNocm9tZU9wdGlvbnMiXVsidzNjIl0gPSBUcnVlCisg
ICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9IGNhcGFiaWxpdGllcworICAgIHJl
dHVybiBleGVjdXRvcl9rd2FyZ3MKKworCitkZWYgZW52X2V4dHJhcygqKmt3YXJncyk6CisgICAg
cmV0dXJuIFtdCisKKworZGVmIGVudl9vcHRpb25zKCk6CisgICAgcmV0dXJuIHt9CisKKworY2xh
c3MgQ2hyb21lQW5kcm9pZEJyb3dzZXIoQnJvd3Nlcik6CisgICAgIiIiQ2hyb21lIGlzIGJhY2tl
ZCBieSBjaHJvbWVkcml2ZXIsIHdoaWNoIGlzIHN1cHBsaWVkIHRocm91Z2gKKyAgICBgYHdwdHJ1
bm5lci53ZWJkcml2ZXIuQ2hyb21lRHJpdmVyU2VydmVyYGAuCisgICAgIiIiCisKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHdlYmRyaXZlcl9iaW5hcnk9ImNocm9tZWRy
aXZlciIsCisgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUpOgorICAgICAgICAi
IiJDcmVhdGVzIGEgbmV3IHJlcHJlc2VudGF0aW9uIG9mIENocm9tZS4gIFRoZSBgYmluYXJ5YCBh
cmd1bWVudCBnaXZlcworICAgICAgICB0aGUgYnJvd3NlciBiaW5hcnkgdG8gdXNlIGZvciB0ZXN0
aW5nLiIiIgorICAgICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKKyAgICAgICAg
c2VsZi5iaW5hcnkgPSBiaW5hcnkKKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBDaHJvbWVEcml2ZXJT
ZXJ2ZXIoc2VsZi5sb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJpbmFyeT13ZWJkcml2ZXJfYmluYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhcmdzPXdlYmRyaXZlcl9hcmdzKQorCisgICAgZGVmIF9hZGJfcnVuKHNl
bGYsIGFyZ3MpOgorICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCdhZGIgJyArICcgJy5qb2luKGFy
Z3MpKQorICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoWydhZGInXSArIGFyZ3MpCisKKyAg
ICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNlbGYuX2FkYl9ydW4oWyd3YWl0LWZvci1kZXZp
Y2UnXSkKKyAgICAgICAgc2VsZi5fYWRiX3J1bihbJ2ZvcndhcmQnLCAnLS1yZW1vdmUtYWxsJ10p
CisgICAgICAgIHNlbGYuX2FkYl9ydW4oWydyZXZlcnNlJywgJy0tcmVtb3ZlLWFsbCddKQorICAg
ICAgICBmb3IgcG9ydCBpbiBfd3B0c2VydmVfcG9ydHM6CisgICAgICAgICAgICBzZWxmLl9hZGJf
cnVuKFsncmV2ZXJzZScsICd0Y3A6JWQnICUgcG9ydCwgJ3RjcDolZCcgJSBwb3J0XSkKKworICAg
IGRlZiBzdGFydChzZWxmLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KGJs
b2NrPUZhbHNlKQorCisgICAgZGVmIHN0b3Aoc2VsZiwgZm9yY2U9RmFsc2UpOgorICAgICAgICBz
ZWxmLnNlcnZlci5zdG9wKGZvcmNlPWZvcmNlKQorCisgICAgZGVmIHBpZChzZWxmKToKKyAgICAg
ICAgcmV0dXJuIHNlbGYuc2VydmVyLnBpZAorCisgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgorICAg
ICAgICAjIFRPRE8oYXRvKTogVGhpcyBvbmx5IGluZGljYXRlcyB0aGUgZHJpdmVyIGlzIGFsaXZl
LAorICAgICAgICAjIGFuZCBkb2Vzbid0IHNheSBhbnl0aGluZyBhYm91dCB3aGV0aGVyIGEgYnJv
d3NlciBzZXNzaW9uCisgICAgICAgICMgaXMgYWN0aXZlLgorICAgICAgICByZXR1cm4gc2VsZi5z
ZXJ2ZXIuaXNfYWxpdmUoKQorCisgICAgZGVmIGNsZWFudXAoc2VsZik6CisgICAgICAgIHNlbGYu
c3RvcCgpCisgICAgICAgIHNlbGYuX2FkYl9ydW4oWydmb3J3YXJkJywgJy0tcmVtb3ZlLWFsbCdd
KQorICAgICAgICBzZWxmLl9hZGJfcnVuKFsncmV2ZXJzZScsICctLXJlbW92ZS1hbGwnXSkKKwor
ICAgIGRlZiBleGVjdXRvcl9icm93c2VyKHNlbGYpOgorICAgICAgICByZXR1cm4gRXhlY3V0b3JC
cm93c2VyLCB7IndlYmRyaXZlcl91cmwiOiBzZWxmLnNlcnZlci51cmx9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdl
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjE4NGFlMzJhYzlhNTk2OGFiYWUwNjA2ZDc0ZGYxMzRjNTE5ODE0MDIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZS5weQpAQCAtMCww
ICsxLDc0IEBACitmcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJl
cXVpcmVfYXJnCitmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgRWRnZURyaXZlclNlcnZl
cgorZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0
b3Jfa3dhcmdzCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yc2VsZW5pdW0gaW1wb3J0IChTZWxl
bml1bVRlc3RoYXJuZXNzRXhlY3V0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBTZWxlbml1bVJlZlRlc3RFeGVjdXRvcikKK2Zyb20gLi5leGVjdXRvcnMuZXhl
Y3V0b3JlZGdlIGltcG9ydCBFZGdlRHJpdmVyV2RzcGVjRXhlY3V0b3IKKworX193cHRydW5uZXJf
XyA9IHsicHJvZHVjdCI6ICJlZGdlIiwKKyAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAi
Y2hlY2tfYXJncyIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjogIkVkZ2VCcm93c2VyIiwK
KyAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJTZWxlbml1bVRl
c3RoYXJuZXNzRXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRl
c3QiOiAiU2VsZW5pdW1SZWZUZXN0RXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIndkc3BlYyI6ICJFZGdlRHJpdmVyV2RzcGVjRXhlY3V0b3IifSwKKyAgICAgICAgICAg
ICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwKKyAgICAgICAgICAgICAg
ICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLAorICAgICAgICAgICAgICAg
ICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKKyAgICAgICAgICAgICAgICAgImVudl9vcHRp
b25zIjogImVudl9vcHRpb25zIn0KKworCitkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CisgICAg
cmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVyX2JpbmFyeSIpCisKK2RlZiBicm93c2VyX2t3
YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKToKKyAgICByZXR1cm4geyJ3
ZWJkcml2ZXJfYmluYXJ5Ijoga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0sCisgICAgICAgICAg
ICAid2ViZHJpdmVyX2FyZ3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpfQorCitkZWYg
ZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwg
cnVuX2luZm9fZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgorICAgIGZyb20g
c2VsZW5pdW0ud2ViZHJpdmVyIGltcG9ydCBEZXNpcmVkQ2FwYWJpbGl0aWVzCisKKyAgICBleGVj
dXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25m
aWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFu
YWdlciwgKiprd2FyZ3MpCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRlcl9kb25lIl0g
PSBUcnVlCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9IGRpY3QoRGVzaXJl
ZENhcGFiaWxpdGllcy5FREdFLml0ZW1zKCkpCisgICAgcmV0dXJuIGV4ZWN1dG9yX2t3YXJncwor
CitkZWYgZW52X2V4dHJhcygqKmt3YXJncyk6CisgICAgcmV0dXJuIFtdCisKK2RlZiBlbnZfb3B0
aW9ucygpOgorICAgIHJldHVybiB7InN1cHBvcnRzX2RlYnVnZ2VyIjogRmFsc2V9CisKK2NsYXNz
IEVkZ2VCcm93c2VyKEJyb3dzZXIpOgorICAgIHVzZWRfcG9ydHMgPSBzZXQoKQorCisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgd2ViZHJpdmVyX2JpbmFyeSwgd2ViZHJpdmVyX2FyZ3M9
Tm9uZSk6CisgICAgICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQorICAgICAgICBz
ZWxmLnNlcnZlciA9IEVkZ2VEcml2ZXJTZXJ2ZXIoc2VsZi5sb2dnZXIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5hcnk9d2ViZHJpdmVyX2JpbmFyeSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9d2ViZHJpdmVyX2FyZ3MpCisg
ICAgICAgIHNlbGYud2ViZHJpdmVyX2hvc3QgPSAibG9jYWxob3N0IgorICAgICAgICBzZWxmLndl
YmRyaXZlcl9wb3J0ID0gc2VsZi5zZXJ2ZXIucG9ydAorCisgICAgZGVmIHN0YXJ0KHNlbGYsICoq
a3dhcmdzKToKKyAgICAgICAgcHJpbnQgc2VsZi5zZXJ2ZXIudXJsCisgICAgICAgIHNlbGYuc2Vy
dmVyLnN0YXJ0KCkKKworICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKKyAgICAgICAg
c2VsZi5zZXJ2ZXIuc3RvcChmb3JjZT1mb3JjZSkKKworICAgIGRlZiBwaWQoc2VsZik6CisgICAg
ICAgIHJldHVybiBzZWxmLnNlcnZlci5waWQKKworICAgIGRlZiBpc19hbGl2ZShzZWxmKToKKyAg
ICAgICAgIyBUT0RPKGF0byk6IFRoaXMgb25seSBpbmRpY2F0ZXMgdGhlIHNlcnZlciBpcyBhbGl2
ZSwKKyAgICAgICAgIyBhbmQgZG9lc24ndCBzYXkgYW55dGhpbmcgYWJvdXQgd2hldGhlciBhIGJy
b3dzZXIgc2Vzc2lvbgorICAgICAgICAjIGlzIGFjdGl2ZS4KKyAgICAgICAgcmV0dXJuIHNlbGYu
c2VydmVyLmlzX2FsaXZlKCkKKworICAgIGRlZiBjbGVhbnVwKHNlbGYpOgorICAgICAgICBzZWxm
LnN0b3AoKQorCisgICAgZGVmIGV4ZWN1dG9yX2Jyb3dzZXIoc2VsZik6CisgICAgICAgIHJldHVy
biBFeGVjdXRvckJyb3dzZXIsIHsid2ViZHJpdmVyX3VybCI6IHNlbGYuc2VydmVyLnVybH0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9maXJlZm94LnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Jyb3dzZXJzL2ZpcmVmb3gucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2FjYjBmN2Q5MjQwMTI2OTY0ZmQxNDEx
NTc0MTU1NDNlYjQwMGUzNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9maXJlZm94LnB5CkBAIC0wLDAgKzEsMzk2IEBACitpbXBvcnQgb3MKK2ltcG9ydCBwbGF0Zm9y
bQoraW1wb3J0IHNpZ25hbAoraW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCBzeXMKK2ltcG9ydCB0
ZW1wZmlsZQorCitpbXBvcnQgbW96aW5mbworaW1wb3J0IG1vemxlYWsKK2Zyb20gbW96cHJvY2Vz
cyBpbXBvcnQgUHJvY2Vzc0hhbmRsZXIKK2Zyb20gbW96cHJvZmlsZSBpbXBvcnQgRmlyZWZveFBy
b2ZpbGUsIFByZWZlcmVuY2VzCitmcm9tIG1venJ1bm5lciBpbXBvcnQgRmlyZWZveFJ1bm5lcgor
ZnJvbSBtb3pydW5uZXIudXRpbHMgaW1wb3J0IGdldF9zdGFja19maXhlcl9mdW5jdGlvbgorZnJv
bSBtb3pjcmFzaCBpbXBvcnQgbW96Y3Jhc2gKKworZnJvbSAuYmFzZSBpbXBvcnQgKGdldF9mcmVl
X3BvcnQsCisgICAgICAgICAgICAgICAgICAgQnJvd3NlciwKKyAgICAgICAgICAgICAgICAgICBF
eGVjdXRvckJyb3dzZXIsCisgICAgICAgICAgICAgICAgICAgcmVxdWlyZV9hcmcsCisgICAgICAg
ICAgICAgICAgICAgY21kX2FyZywKKyAgICAgICAgICAgICAgICAgICBicm93c2VyX2NvbW1hbmQp
Citmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRv
cl9rd2FyZ3MKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JtYXJpb25ldHRlIGltcG9ydCAoTWFy
aW9uZXR0ZVRlc3RoYXJuZXNzRXhlY3V0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVSZWZUZXN0RXhlY3V0b3IsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVXZHNwZWNFeGVjdXRvcikK
KworCitoZXJlID0gb3MucGF0aC5qb2luKG9zLnBhdGguc3BsaXQoX19maWxlX18pWzBdKQorCitf
X3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogImZpcmVmb3giLAorICAgICAgICAgICAgICAgICAi
Y2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAi
RmlyZWZveEJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJu
ZXNzIjogIk1hcmlvbmV0dGVUZXN0aGFybmVzc0V4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJyZWZ0ZXN0IjogIk1hcmlvbmV0dGVSZWZUZXN0RXhlY3V0b3IiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJNYXJpb25ldHRlV2RzcGVjRXhl
Y3V0b3IifSwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dh
cmdzIiwKKyAgICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2Fy
Z3MiLAorICAgICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKKyAgICAg
ICAgICAgICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIiwKKyAgICAgICAgICAgICAg
ICAgInJ1bl9pbmZvX2V4dHJhcyI6ICJydW5faW5mb19leHRyYXMiLAorICAgICAgICAgICAgICAg
ICAidXBkYXRlX3Byb3BlcnRpZXMiOiAidXBkYXRlX3Byb3BlcnRpZXMifQorCisKK2RlZiBnZXRf
dGltZW91dF9tdWx0aXBsaWVyKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpOgor
ICAgIGlmIGt3YXJnc1sidGltZW91dF9tdWx0aXBsaWVyIl0gaXMgbm90IE5vbmU6CisgICAgICAg
IHJldHVybiBrd2FyZ3NbInRpbWVvdXRfbXVsdGlwbGllciJdCisgICAgaWYgdGVzdF90eXBlID09
ICJyZWZ0ZXN0IjoKKyAgICAgICAgaWYgcnVuX2luZm9fZGF0YVsiZGVidWciXSBvciBydW5faW5m
b19kYXRhLmdldCgiYXNhbiIpOgorICAgICAgICAgICAgcmV0dXJuIDQKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIHJldHVybiAyCisgICAgZWxpZiBydW5faW5mb19kYXRhWyJkZWJ1ZyJdIG9y
IHJ1bl9pbmZvX2RhdGEuZ2V0KCJhc2FuIik6CisgICAgICAgIGlmIHJ1bl9pbmZvX2RhdGEuZ2V0
KCJjY292Iik6CisgICAgICAgICAgICByZXR1cm4gNAorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgcmV0dXJuIDMKKyAgICByZXR1cm4gMQorCisKK2RlZiBjaGVja19hcmdzKCoqa3dhcmdzKToK
KyAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJiaW5hcnkiKQorCisKK2RlZiBicm93c2VyX2t3YXJn
cyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKToKKyAgICByZXR1cm4geyJiaW5h
cnkiOiBrd2FyZ3NbImJpbmFyeSJdLAorICAgICAgICAgICAgInByZWZzX3Jvb3QiOiBrd2FyZ3Nb
InByZWZzX3Jvb3QiXSwKKyAgICAgICAgICAgICJleHRyYV9wcmVmcyI6IGt3YXJnc1siZXh0cmFf
cHJlZnMiXSwKKyAgICAgICAgICAgICJ0ZXN0X3R5cGUiOiB0ZXN0X3R5cGUsCisgICAgICAgICAg
ICAiZGVidWdfaW5mbyI6IGt3YXJnc1siZGVidWdfaW5mbyJdLAorICAgICAgICAgICAgInN5bWJv
bHNfcGF0aCI6IGt3YXJnc1sic3ltYm9sc19wYXRoIl0sCisgICAgICAgICAgICAic3RhY2t3YWxr
X2JpbmFyeSI6IGt3YXJnc1sic3RhY2t3YWxrX2JpbmFyeSJdLAorICAgICAgICAgICAgImNlcnR1
dGlsX2JpbmFyeSI6IGt3YXJnc1siY2VydHV0aWxfYmluYXJ5Il0sCisgICAgICAgICAgICAiY2Ff
Y2VydGlmaWNhdGVfcGF0aCI6IGt3YXJnc1sic3NsX2VudiJdLmNhX2NlcnRfcGF0aCgpLAorICAg
ICAgICAgICAgImUxMHMiOiBrd2FyZ3NbImdlY2tvX2UxMHMiXSwKKyAgICAgICAgICAgICJzdGFj
a2ZpeF9kaXIiOiBrd2FyZ3NbInN0YWNrZml4X2RpciJdLAorICAgICAgICAgICAgImJpbmFyeV9h
cmdzIjoga3dhcmdzWyJiaW5hcnlfYXJncyJdLAorICAgICAgICAgICAgInRpbWVvdXRfbXVsdGlw
bGllciI6IGdldF90aW1lb3V0X211bHRpcGxpZXIodGVzdF90eXBlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm9fZGF0YSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICoqa3dhcmdzKSwKKyAgICAgICAgICAgICJsZWFrX2NoZWNrIjoga3dhcmdzWyJsZWFrX2NoZWNr
Il0sCisgICAgICAgICAgICAic3R5bG9fdGhyZWFkcyI6IGt3YXJnc1sic3R5bG9fdGhyZWFkcyJd
LAorICAgICAgICAgICAgImNoYW9zX21vZGVfZmxhZ3MiOiBrd2FyZ3NbImNoYW9zX21vZGVfZmxh
Z3MiXSwKKyAgICAgICAgICAgICJjb25maWciOiBrd2FyZ3NbImNvbmZpZyJdfQorCisKK2RlZiBl
eGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBy
dW5faW5mb19kYXRhLAorICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CisgICAgZXhlY3V0
b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmln
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFn
ZXIsICoqa3dhcmdzKQorICAgIGV4ZWN1dG9yX2t3YXJnc1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0g
dGVzdF90eXBlICE9ICJyZWZ0ZXN0IgorICAgIGV4ZWN1dG9yX2t3YXJnc1sidGltZW91dF9tdWx0
aXBsaWVyIl0gPSBnZXRfdGltZW91dF9tdWx0aXBsaWVyKHRlc3RfdHlwZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
dW5faW5mb19kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQorICAgIGNhcGFiaWxpdGllcyA9IHt9
CisgICAgaWYgdGVzdF90eXBlID09ICJyZWZ0ZXN0IjoKKyAgICAgICAgZXhlY3V0b3Jfa3dhcmdz
WyJyZWZ0ZXN0X2ludGVybmFsIl0gPSBrd2FyZ3NbInJlZnRlc3RfaW50ZXJuYWwiXQorICAgICAg
ICBleGVjdXRvcl9rd2FyZ3NbInJlZnRlc3Rfc2NyZWVuc2hvdCJdID0ga3dhcmdzWyJyZWZ0ZXN0
X3NjcmVlbnNob3QiXQorICAgIGlmIHRlc3RfdHlwZSA9PSAid2RzcGVjIjoKKyAgICAgICAgb3B0
aW9ucyA9IHt9CisgICAgICAgIGlmIGt3YXJnc1siYmluYXJ5Il06CisgICAgICAgICAgICBvcHRp
b25zWyJiaW5hcnkiXSA9IGt3YXJnc1siYmluYXJ5Il0KKyAgICAgICAgaWYga3dhcmdzWyJiaW5h
cnlfYXJncyJdOgorICAgICAgICAgICAgb3B0aW9uc1siYXJncyJdID0ga3dhcmdzWyJiaW5hcnlf
YXJncyJdCisgICAgICAgIG9wdGlvbnNbInByZWZzIl0gPSB7CisgICAgICAgICAgICAibmV0d29y
ay5kbnMubG9jYWxEb21haW5zIjogIiwiLmpvaW4oc2VydmVyX2NvbmZpZ1snZG9tYWlucyddLnZh
bHVlcygpKQorICAgICAgICB9CisgICAgICAgIGNhcGFiaWxpdGllc1sibW96OmZpcmVmb3hPcHRp
b25zIl0gPSBvcHRpb25zCisgICAgaWYga3dhcmdzWyJjZXJ0dXRpbF9iaW5hcnkiXSBpcyBOb25l
OgorICAgICAgICBjYXBhYmlsaXRpZXNbImFjY2VwdEluc2VjdXJlQ2VydHMiXSA9IFRydWUKKyAg
ICBpZiBjYXBhYmlsaXRpZXM6CisgICAgICAgIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVz
Il0gPSBjYXBhYmlsaXRpZXMKKyAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCisKKworZGVmIGVu
dl9leHRyYXMoKiprd2FyZ3MpOgorICAgIHJldHVybiBbXQorCisKK2RlZiBlbnZfb3B0aW9ucygp
OgorICAgICMgVGhlIHNlcnZlciBob3N0IGlzIHNldCB0byAxMjcuMC4wLjEgYXMgRmlyZWZveCBp
cyBjb25maWd1cmVkICh0aHJvdWdoIHRoZQorICAgICMgbmV0d29yay5kbnMubG9jYWxEb21haW5z
IHByZWZlcmVuY2Ugc2V0IGJlbG93KSB0byByZXNvbHZlIHRoZSB0ZXN0CisgICAgIyBkb21haW5z
IHRvIGxvY2FsaG9zdCB3aXRob3V0IHJlbHlpbmcgb24gdGhlIG5ldHdvcmsgc3RhY2suCisgICAg
IworICAgICMgaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvcHVsbC85
NDgwCisgICAgcmV0dXJuIHsic2VydmVyX2hvc3QiOiAiMTI3LjAuMC4xIiwKKyAgICAgICAgICAg
ICJiaW5kX2FkZHJlc3MiOiBGYWxzZSwKKyAgICAgICAgICAgICJzdXBwb3J0c19kZWJ1Z2dlciI6
IFRydWV9CisKKworZGVmIHJ1bl9pbmZvX2V4dHJhcygqKmt3YXJncyk6CisgICAgcmV0dXJuIHsi
ZTEwcyI6IGt3YXJnc1siZ2Vja29fZTEwcyJdLAorICAgICAgICAgICAgImhlYWRsZXNzIjogIk1P
Wl9IRUFETEVTUyIgaW4gb3MuZW52aXJvbn0KKworCitkZWYgdXBkYXRlX3Byb3BlcnRpZXMoKToK
KyAgICByZXR1cm4gKFsiZGVidWciLCAic3R5bG8iLCAiZTEwcyIsICJvcyIsICJ2ZXJzaW9uIiwg
InByb2Nlc3NvciIsICJiaXRzIl0sCisgICAgICAgICAgICB7ImRlYnVnIiwgImUxMHMiLCAic3R5
bG8ifSkKKworCitjbGFzcyBGaXJlZm94QnJvd3NlcihCcm93c2VyKToKKyAgICB1c2VkX3BvcnRz
ID0gc2V0KCkKKyAgICBpbml0X3RpbWVvdXQgPSA2MAorICAgIHNodXRkb3duX3RpbWVvdXQgPSA2
MAorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBwcmVmc19yb290LCB0
ZXN0X3R5cGUsIGV4dHJhX3ByZWZzPU5vbmUsIGRlYnVnX2luZm89Tm9uZSwKKyAgICAgICAgICAg
ICAgICAgc3ltYm9sc19wYXRoPU5vbmUsIHN0YWNrd2Fsa19iaW5hcnk9Tm9uZSwgY2VydHV0aWxf
YmluYXJ5PU5vbmUsCisgICAgICAgICAgICAgICAgIGNhX2NlcnRpZmljYXRlX3BhdGg9Tm9uZSwg
ZTEwcz1GYWxzZSwgc3RhY2tmaXhfZGlyPU5vbmUsCisgICAgICAgICAgICAgICAgIGJpbmFyeV9h
cmdzPU5vbmUsIHRpbWVvdXRfbXVsdGlwbGllcj1Ob25lLCBsZWFrX2NoZWNrPUZhbHNlLCBzdHls
b190aHJlYWRzPTEsCisgICAgICAgICAgICAgICAgIGNoYW9zX21vZGVfZmxhZ3M9Tm9uZSwgY29u
ZmlnPU5vbmUpOgorICAgICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKKyAgICAg
ICAgc2VsZi5iaW5hcnkgPSBiaW5hcnkKKyAgICAgICAgc2VsZi5wcmVmc19yb290ID0gcHJlZnNf
cm9vdAorICAgICAgICBzZWxmLnRlc3RfdHlwZSA9IHRlc3RfdHlwZQorICAgICAgICBzZWxmLmV4
dHJhX3ByZWZzID0gZXh0cmFfcHJlZnMKKyAgICAgICAgc2VsZi5tYXJpb25ldHRlX3BvcnQgPSBO
b25lCisgICAgICAgIHNlbGYucnVubmVyID0gTm9uZQorICAgICAgICBzZWxmLmRlYnVnX2luZm8g
PSBkZWJ1Z19pbmZvCisgICAgICAgIHNlbGYucHJvZmlsZSA9IE5vbmUKKyAgICAgICAgc2VsZi5z
eW1ib2xzX3BhdGggPSBzeW1ib2xzX3BhdGgKKyAgICAgICAgc2VsZi5zdGFja3dhbGtfYmluYXJ5
ID0gc3RhY2t3YWxrX2JpbmFyeQorICAgICAgICBzZWxmLmNhX2NlcnRpZmljYXRlX3BhdGggPSBj
YV9jZXJ0aWZpY2F0ZV9wYXRoCisgICAgICAgIHNlbGYuY2VydHV0aWxfYmluYXJ5ID0gY2VydHV0
aWxfYmluYXJ5CisgICAgICAgIHNlbGYuZTEwcyA9IGUxMHMKKyAgICAgICAgc2VsZi5iaW5hcnlf
YXJncyA9IGJpbmFyeV9hcmdzCisgICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnCisgICAgICAg
IGlmIHN0YWNrZml4X2RpcjoKKyAgICAgICAgICAgIHNlbGYuc3RhY2tfZml4ZXIgPSBnZXRfc3Rh
Y2tfZml4ZXJfZnVuY3Rpb24oc3RhY2tmaXhfZGlyLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnN5bWJvbHNfcGF0aCkKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuc3RhY2tfZml4ZXIgPSBOb25lCisKKyAgICAgICAg
aWYgdGltZW91dF9tdWx0aXBsaWVyOgorICAgICAgICAgICAgc2VsZi5pbml0X3RpbWVvdXQgPSBz
ZWxmLmluaXRfdGltZW91dCAqIHRpbWVvdXRfbXVsdGlwbGllcgorCisgICAgICAgIHNlbGYubGVh
a19yZXBvcnRfZmlsZSA9IE5vbmUKKyAgICAgICAgc2VsZi5sZWFrX2NoZWNrID0gbGVha19jaGVj
aworICAgICAgICBzZWxmLnN0eWxvX3RocmVhZHMgPSBzdHlsb190aHJlYWRzCisgICAgICAgIHNl
bGYuY2hhb3NfbW9kZV9mbGFncyA9IGNoYW9zX21vZGVfZmxhZ3MKKworICAgIGRlZiBzZXR0aW5n
cyhzZWxmLCB0ZXN0KToKKyAgICAgICAgcmV0dXJuIHsiY2hlY2tfbGVha3MiOiBzZWxmLmxlYWtf
Y2hlY2sgYW5kIG5vdCB0ZXN0LmxlYWtzfQorCisgICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdz
KToKKyAgICAgICAgaWYgc2VsZi5tYXJpb25ldHRlX3BvcnQgaXMgTm9uZToKKyAgICAgICAgICAg
IHNlbGYubWFyaW9uZXR0ZV9wb3J0ID0gZ2V0X2ZyZWVfcG9ydCgyODI4LCBleGNsdWRlPXNlbGYu
dXNlZF9wb3J0cykKKyAgICAgICAgICAgIHNlbGYudXNlZF9wb3J0cy5hZGQoc2VsZi5tYXJpb25l
dHRlX3BvcnQpCisKKyAgICAgICAgZW52ID0gb3MuZW52aXJvbi5jb3B5KCkKKyAgICAgICAgZW52
WyJNT1pfQ1JBU0hSRVBPUlRFUiJdID0gIjEiCisgICAgICAgIGVudlsiTU9aX0NSQVNIUkVQT1JU
RVJfU0hVVERPV04iXSA9ICIxIgorICAgICAgICBlbnZbIk1PWl9ESVNBQkxFX05PTkxPQ0FMX0NP
Tk5FQ1RJT05TIl0gPSAiMSIKKyAgICAgICAgZW52WyJTVFlMT19USFJFQURTIl0gPSBzdHIoc2Vs
Zi5zdHlsb190aHJlYWRzKQorICAgICAgICBpZiBzZWxmLmNoYW9zX21vZGVfZmxhZ3MgaXMgbm90
IE5vbmU6CisgICAgICAgICAgICBlbnZbIk1PWl9DSEFPU01PREUiXSA9IHN0cihzZWxmLmNoYW9z
X21vZGVfZmxhZ3MpCisKKyAgICAgICAgcHJlZmVyZW5jZXMgPSBzZWxmLmxvYWRfcHJlZnMoKQor
CisgICAgICAgIHNlbGYucHJvZmlsZSA9IEZpcmVmb3hQcm9maWxlKHByZWZlcmVuY2VzPXByZWZl
cmVuY2VzKQorICAgICAgICBzZWxmLnByb2ZpbGUuc2V0X3ByZWZlcmVuY2VzKHsibWFyaW9uZXR0
ZS5wb3J0Ijogc2VsZi5tYXJpb25ldHRlX3BvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJkb20uZGlzYWJsZV9vcGVuX2R1cmluZ19sb2FkIjogRmFsc2UsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuZXR3b3JrLmRucy5sb2NhbERvbWFp
bnMiOiAiLCIuam9pbihzZWxmLmNvbmZpZ1snZG9tYWlucyddLnZhbHVlcygpKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5ldHdvcmsucHJveHkudHlwZSI6IDAsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwbGFjZXMuaGlzdG9yeS5lbmFi
bGVkIjogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkb20u
c2VuZF9hZnRlcl9wYWludF90b19jb250ZW50IjogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIm5ldHdvcmsucHJlbG9hZCI6IFRydWV9KQorICAgICAgICBpZiBz
ZWxmLmUxMHM6CisgICAgICAgICAgICBzZWxmLnByb2ZpbGUuc2V0X3ByZWZlcmVuY2VzKHsiYnJv
d3Nlci50YWJzLnJlbW90ZS5hdXRvc3RhcnQiOiBUcnVlfSkKKworICAgICAgICBpZiBzZWxmLnRl
c3RfdHlwZSA9PSAicmVmdGVzdCI6CisgICAgICAgICAgICBzZWxmLnByb2ZpbGUuc2V0X3ByZWZl
cmVuY2VzKHsibGF5b3V0LmludGVycnVwdGlibGUtcmVmbG93LmVuYWJsZWQiOiBGYWxzZX0pCisK
KyAgICAgICAgaWYgc2VsZi5sZWFrX2NoZWNrIGFuZCBrd2FyZ3MuZ2V0KCJjaGVja19sZWFrcyIs
IFRydWUpOgorICAgICAgICAgICAgc2VsZi5sZWFrX3JlcG9ydF9maWxlID0gb3MucGF0aC5qb2lu
KHNlbGYucHJvZmlsZS5wcm9maWxlLCAicnVudGVzdHNfbGVha3MubG9nIikKKyAgICAgICAgICAg
IGlmIG9zLnBhdGguZXhpc3RzKHNlbGYubGVha19yZXBvcnRfZmlsZSk6CisgICAgICAgICAgICAg
ICAgb3MucmVtb3ZlKHNlbGYubGVha19yZXBvcnRfZmlsZSkKKyAgICAgICAgICAgIGVudlsiWFBD
T01fTUVNX0JMT0FUX0xPRyJdID0gc2VsZi5sZWFrX3JlcG9ydF9maWxlCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBzZWxmLmxlYWtfcmVwb3J0X2ZpbGUgPSBOb25lCisKKyAgICAgICAgIyBC
dWcgMTI2Mjk1NDogd2lueHAgKyBlMTBzLCBkaXNhYmxlIGh3YWNjZWwKKyAgICAgICAgaWYgKHNl
bGYuZTEwcyBhbmQgcGxhdGZvcm0uc3lzdGVtKCkgaW4gKCJXaW5kb3dzIiwgIk1pY3Jvc29mdCIp
IGFuZAorICAgICAgICAgICAgJzUuMScgaW4gcGxhdGZvcm0udmVyc2lvbigpKToKKyAgICAgICAg
ICAgIHNlbGYucHJvZmlsZS5zZXRfcHJlZmVyZW5jZXMoeyJsYXllcnMuYWNjZWxlcmF0aW9uLmRp
c2FibGVkIjogVHJ1ZX0pCisKKyAgICAgICAgaWYgc2VsZi5jYV9jZXJ0aWZpY2F0ZV9wYXRoIGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5zZXR1cF9zc2woKQorCisgICAgICAgIGRlYnVn
X2FyZ3MsIGNtZCA9IGJyb3dzZXJfY29tbWFuZChzZWxmLmJpbmFyeSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYmluYXJ5X2FyZ3MgaWYgc2VsZi5iaW5h
cnlfYXJncyBlbHNlIFtdICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFtjbWRfYXJnKCJtYXJpb25ldHRlIiksICJhYm91dDpibGFuayJdLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kZWJ1Z19pbmZvKQorCisgICAgICAg
IHNlbGYucnVubmVyID0gRmlyZWZveFJ1bm5lcihwcm9maWxlPXNlbGYucHJvZmlsZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmFyeT1jbWRbMF0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjbWRhcmdzPWNtZFsxOl0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbnY9ZW52LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHJvY2Vzc19jbGFzcz1Qcm9jZXNzSGFuZGxlciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NfYXJncz17InByb2Nlc3NPdXRwdXRMaW5lIjog
W3NlbGYub25fb3V0cHV0XX0pCisKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlN0YXJ0aW5n
IEZpcmVmb3giKQorCisgICAgICAgIHNlbGYucnVubmVyLnN0YXJ0KGRlYnVnX2FyZ3M9ZGVidWdf
YXJncywgaW50ZXJhY3RpdmU9c2VsZi5kZWJ1Z19pbmZvIGFuZCBzZWxmLmRlYnVnX2luZm8uaW50
ZXJhY3RpdmUpCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJGaXJlZm94IFN0YXJ0ZWQiKQor
CisgICAgZGVmIGxvYWRfcHJlZnMoc2VsZik6CisgICAgICAgIHByZWZzID0gUHJlZmVyZW5jZXMo
KQorCisgICAgICAgIHByZWZzX3BhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5wcmVmc19yb290LCAi
cHJlZnNfZ2VuZXJhbC5qcyIpCisgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHByZWZzX3BhdGgp
OgorICAgICAgICAgICAgcHJlZnMuYWRkKFByZWZlcmVuY2VzLnJlYWRfcHJlZnMocHJlZnNfcGF0
aCkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJGYWls
ZWQgdG8gZmluZCBiYXNlIHByZWZzIGZpbGUgaW4gJXMiICUgcHJlZnNfcGF0aCkKKworICAgICAg
ICAjIEFkZCBhbnkgY3VzdG9tIHByZWZlcmVuY2VzCisgICAgICAgIHByZWZzLmFkZChzZWxmLmV4
dHJhX3ByZWZzLCBjYXN0PVRydWUpCisKKyAgICAgICAgcmV0dXJuIHByZWZzKCkKKworICAgIGRl
ZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKKyAgICAgICAgaWYgc2VsZi5ydW5uZXIgaXMgbm90
IE5vbmUgYW5kIHNlbGYucnVubmVyLmlzX3J1bm5pbmcoKToKKyAgICAgICAgICAgIHRyeToKKyAg
ICAgICAgICAgICAgICAjIEZvciBGaXJlZm94IHdlIGFzc3VtZSB0aGF0IHN0b3BwaW5nIHRoZSBy
dW5uZXIgcHJvbXB0cyB0aGUKKyAgICAgICAgICAgICAgICAjIGJyb3dzZXIgdG8gc2h1dCBkb3du
LiBUaGlzIGFsbG93cyB0aGUgbGVhayBsb2cgdG8gYmUgd3JpdHRlbgorICAgICAgICAgICAgICAg
IGZvciBjbGVhbiwgc3RvcF9mIGluIFsoVHJ1ZSwgbGFtYmRhOiBzZWxmLnJ1bm5lci53YWl0KHNl
bGYuc2h1dGRvd25fdGltZW91dCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoRmFsc2UsIGxhbWJkYTogc2VsZi5ydW5uZXIuc3RvcChzaWduYWwuU0lHVEVSTSkpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRmFsc2UsIGxhbWJkYTogc2Vs
Zi5ydW5uZXIuc3RvcChzaWduYWwuU0lHS0lMTCkpXToKKyAgICAgICAgICAgICAgICAgICAgaWYg
bm90IGZvcmNlIG9yIG5vdCBjbGVhbjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldGNvZGUg
PSBzdG9wX2YoKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgcmV0Y29kZSBpcyBub3QgTm9u
ZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJCcm93c2Vy
IGV4aXRlZCB3aXRoIHJldHVybiBjb2RlICVzIiAlIHJldGNvZGUpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICAg
ICAgICAgICMgVGhpcyBjYW4gaGFwcGVuIG9uIFdpbmRvd3MgaWYgdGhlIHByb2Nlc3MgaXMgYWxy
ZWFkeSBkZWFkCisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1
Zygic3RvcHBlZCIpCisKKyAgICBkZWYgcHJvY2Vzc19sZWFrcyhzZWxmKToKKyAgICAgICAgc2Vs
Zi5sb2dnZXIuZGVidWcoIlBST0NFU1MgTEVBS1MgJXMiICUgc2VsZi5sZWFrX3JlcG9ydF9maWxl
KQorICAgICAgICBpZiBzZWxmLmxlYWtfcmVwb3J0X2ZpbGUgaXMgTm9uZToKKyAgICAgICAgICAg
IHJldHVybgorICAgICAgICBtb3psZWFrLnByb2Nlc3NfbGVha19sb2coCisgICAgICAgICAgICBz
ZWxmLmxlYWtfcmVwb3J0X2ZpbGUsCisgICAgICAgICAgICBsZWFrX3RocmVzaG9sZHM9eworICAg
ICAgICAgICAgICAgICJkZWZhdWx0IjogMCwKKyAgICAgICAgICAgICAgICAidGFiIjogMTAwMDAs
ICAjIFNlZSBkZXBlbmRlbmNpZXMgb2YgYnVnIDEwNTEyMzAuCisgICAgICAgICAgICAgICAgIyBH
TVAgcmFyZWx5IGdldHMgYSBsb2csIGJ1dCB3aGVuIGl0IGRvZXMsIGl0IGxlYWtzIGEgbGl0dGxl
LgorICAgICAgICAgICAgICAgICJnZWNrb21lZGlhcGx1Z2luIjogMjAwMDAsCisgICAgICAgICAg
ICB9LAorICAgICAgICAgICAgaWdub3JlX21pc3NpbmdfbGVha3M9WyJnZWNrb21lZGlhcGx1Z2lu
Il0sCisgICAgICAgICAgICBsb2c9c2VsZi5sb2dnZXIsCisgICAgICAgICAgICBzdGFja19maXhl
cj1zZWxmLnN0YWNrX2ZpeGVyCisgICAgICAgICkKKworICAgIGRlZiBwaWQoc2VsZik6CisgICAg
ICAgIGlmIHNlbGYucnVubmVyLnByb2Nlc3NfaGFuZGxlciBpcyBOb25lOgorICAgICAgICAgICAg
cmV0dXJuIE5vbmUKKworICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5ydW5u
ZXIucHJvY2Vzc19oYW5kbGVyLnBpZAorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Cisg
ICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgZGVmIG9uX291dHB1dChzZWxmLCBsaW5lKToK
KyAgICAgICAgIiIiV3JpdGUgYSBsaW5lIG9mIG91dHB1dCBmcm9tIHRoZSBmaXJlZm94IHByb2Nl
c3MgdG8gdGhlIGxvZyIiIgorICAgICAgICBpZiAiR0xpYi1HT2JqZWN0LUNSSVRJQ0FMIiBpbiBs
aW5lOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGlmIGxpbmU6CisgICAgICAgICAgICBk
YXRhID0gbGluZS5kZWNvZGUoInV0ZjgiLCAicmVwbGFjZSIpCisgICAgICAgICAgICBpZiBzZWxm
LnN0YWNrX2ZpeGVyOgorICAgICAgICAgICAgICAgIGRhdGEgPSBzZWxmLnN0YWNrX2ZpeGVyKGRh
dGEpCisgICAgICAgICAgICBzZWxmLmxvZ2dlci5wcm9jZXNzX291dHB1dChzZWxmLnBpZCgpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kPSIgIi5qb2luKHNlbGYucnVubmVyLmNv
bW1hbmQpKQorCisgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgorICAgICAgICBpZiBzZWxmLnJ1bm5l
cjoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnJ1bm5lci5pc19ydW5uaW5nKCkKKyAgICAgICAg
cmV0dXJuIEZhbHNlCisKKyAgICBkZWYgY2xlYW51cChzZWxmKToKKyAgICAgICAgc2VsZi5zdG9w
KCkKKyAgICAgICAgc2VsZi5wcm9jZXNzX2xlYWtzKCkKKworICAgIGRlZiBleGVjdXRvcl9icm93
c2VyKHNlbGYpOgorICAgICAgICBhc3NlcnQgc2VsZi5tYXJpb25ldHRlX3BvcnQgaXMgbm90IE5v
bmUKKyAgICAgICAgcmV0dXJuIEV4ZWN1dG9yQnJvd3NlciwgeyJtYXJpb25ldHRlX3BvcnQiOiBz
ZWxmLm1hcmlvbmV0dGVfcG9ydH0KKworICAgIGRlZiBjaGVja19mb3JfY3Jhc2hlcyhzZWxmKToK
KyAgICAgICAgZHVtcF9kaXIgPSBvcy5wYXRoLmpvaW4oc2VsZi5wcm9maWxlLnByb2ZpbGUsICJt
aW5pZHVtcHMiKQorCisgICAgICAgIHJldHVybiBib29sKG1vemNyYXNoLmNoZWNrX2Zvcl9jcmFz
aGVzKGR1bXBfZGlyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzeW1ib2xzX3BhdGg9c2VsZi5zeW1ib2xzX3BhdGgsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrd2Fsa19iaW5hcnk9c2VsZi5zdGFja3dh
bGtfYmluYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBxdWlldD1UcnVlKSkKKworICAgIGRlZiBsb2dfY3Jhc2goc2VsZiwgcHJvY2VzcywgdGVzdCk6
CisgICAgICAgIGR1bXBfZGlyID0gb3MucGF0aC5qb2luKHNlbGYucHJvZmlsZS5wcm9maWxlLCAi
bWluaWR1bXBzIikKKworICAgICAgICBtb3pjcmFzaC5sb2dfY3Jhc2hlcyhzZWxmLmxvZ2dlciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVtcF9kaXIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN5bWJvbHNfcGF0aD1zZWxmLnN5bWJvbHNfcGF0aCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RhY2t3YWxrX2JpbmFyeT1zZWxmLnN0YWNrd2Fsa19iaW5hcnks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3M9cHJvY2VzcywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdD10ZXN0KQorCisgICAgZGVmIHNldHVwX3NzbChzZWxm
KToKKyAgICAgICAgIiIiQ3JlYXRlIGEgY2VydGlmaWNhdGUgZGF0YWJhc2UgdG8gdXNlIGluIHRo
ZSB0ZXN0IHByb2ZpbGUuIFRoaXMgaXMgY29uZmlndXJlZAorICAgICAgICB0byB0cnVzdCB0aGUg
Q0EgQ2VydGlmaWNhdGUgdGhhdCBoYXMgc2lnbmVkIHRoZSB3ZWItcGxhdGZvcm0udGVzdCBzZXJ2
ZXIKKyAgICAgICAgY2VydGlmaWNhdGUuIiIiCisgICAgICAgIGlmIHNlbGYuY2VydHV0aWxfYmlu
YXJ5IGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCItLWNlcnR1dGlsLWJp
bmFyeSBub3Qgc3VwcGxpZWQ7IEZpcmVmb3ggd2lsbCBub3QgY2hlY2sgY2VydGlmaWNhdGVzIikK
KyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIlNldHRpbmcg
dXAgc3NsIikKKworICAgICAgICAjIE1ha2Ugc3VyZSB0aGUgY2VydHV0aWwgbGlicmFyaWVzIGZy
b20gdGhlIHNvdXJjZSB0cmVlIGFyZSBsb2FkZWQgd2hlbiB1c2luZyBhCisgICAgICAgICMgbG9j
YWwgY29weSBvZiBjZXJ0dXRpbAorICAgICAgICAjIFRPRE86IE1heWJlIG9ubHkgc2V0IHRoaXMg
aWYgY2VydHV0aWwgd29uJ3QgbGF1bmNoPworICAgICAgICBlbnYgPSBvcy5lbnZpcm9uLmNvcHko
KQorICAgICAgICBjZXJ0dXRpbF9kaXIgPSBvcy5wYXRoLmRpcm5hbWUoc2VsZi5iaW5hcnkpCisg
ICAgICAgIGlmIG1vemluZm8uaXNNYWM6CisgICAgICAgICAgICBlbnZfdmFyID0gIkRZTERfTElC
UkFSWV9QQVRIIgorICAgICAgICBlbGlmIG1vemluZm8uaXNVbml4OgorICAgICAgICAgICAgZW52
X3ZhciA9ICJMRF9MSUJSQVJZX1BBVEgiCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBlbnZf
dmFyID0gIlBBVEgiCisKKworICAgICAgICBlbnZbZW52X3Zhcl0gPSAob3MucGF0aC5wYXRoc2Vw
LmpvaW4oW2NlcnR1dGlsX2RpciwgZW52W2Vudl92YXJdXSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIGVudl92YXIgaW4gZW52IGVsc2UgY2VydHV0aWxfZGlyKS5lbmNvZGUoCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3lzLmdldGZpbGVzeXN0ZW1lbmNvZGluZygpIG9yICd1dGYt
OCcsICdyZXBsYWNlJykKKworICAgICAgICBkZWYgY2VydHV0aWwoKmFyZ3MpOgorICAgICAgICAg
ICAgY21kID0gW3NlbGYuY2VydHV0aWxfYmluYXJ5XSArIGxpc3QoYXJncykKKyAgICAgICAgICAg
IHNlbGYubG9nZ2VyLnByb2Nlc3Nfb3V0cHV0KCJjZXJ0dXRpbCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX291dHB1dChjbWQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlbnY9ZW52LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuU1RET1VUKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIi5qb2luKGNtZCkpCisKKyAgICAgICAgcHdf
cGF0aCA9IG9zLnBhdGguam9pbihzZWxmLnByb2ZpbGUucHJvZmlsZSwgIi5jcnRkYnB3IikKKyAg
ICAgICAgd2l0aCBvcGVuKHB3X3BhdGgsICJ3IikgYXMgZjoKKyAgICAgICAgICAgICMgVXNlIGVt
cHR5IHBhc3N3b3JkIGZvciBjZXJ0aWZpY2F0ZSBkYgorICAgICAgICAgICAgZi53cml0ZSgiXG4i
KQorCisgICAgICAgIGNlcnRfZGJfcGF0aCA9IHNlbGYucHJvZmlsZS5wcm9maWxlCisKKyAgICAg
ICAgIyBDcmVhdGUgYSBuZXcgY2VydGlmaWNhdGUgZGIKKyAgICAgICAgY2VydHV0aWwoIi1OIiwg
Ii1kIiwgY2VydF9kYl9wYXRoLCAiLWYiLCBwd19wYXRoKQorCisgICAgICAgICMgQWRkIHRoZSBD
QSBjZXJ0aWZpY2F0ZSB0byB0aGUgZGF0YWJhc2UgYW5kIG1hcmsgYXMgdHJ1c3RlZCB0byBpc3N1
ZSBzZXJ2ZXIgY2VydHMKKyAgICAgICAgY2VydHV0aWwoIi1BIiwgIi1kIiwgY2VydF9kYl9wYXRo
LCAiLWYiLCBwd19wYXRoLCAiLXQiLCAiQ1QsLCIsCisgICAgICAgICAgICAgICAgICItbiIsICJ3
ZWItcGxhdGZvcm0tdGVzdHMiLCAiLWkiLCBzZWxmLmNhX2NlcnRpZmljYXRlX3BhdGgpCisKKyAg
ICAgICAgIyBMaXN0IGFsbCBjZXJ0cyBpbiB0aGUgZGF0YWJhc2UKKyAgICAgICAgY2VydHV0aWwo
Ii1MIiwgIi1kIiwgY2VydF9kYl9wYXRoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dz
ZXJzL2llLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2llLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3ZDk2
ZWM5MWUwN2JmMTIxNGQxOWIzMGYxMGU3YWNlYjFmOWIwM2EKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvYnJvd3NlcnMvaWUucHkKQEAgLTAsMCArMSw3NyBAQAorZnJvbSAuYmFzZSBp
bXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZworZnJvbSAuLndlYmRy
aXZlcl9zZXJ2ZXIgaW1wb3J0IEludGVybmV0RXhwbG9yZXJEcml2ZXJTZXJ2ZXIKK2Zyb20gLi5l
eGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncwor
ZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcnNlbGVuaXVtIGltcG9ydCAoU2VsZW5pdW1UZXN0aGFy
bmVzc0V4ZWN1dG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U2VsZW5pdW1SZWZUZXN0RXhlY3V0b3IpCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yaW50ZXJu
ZXRleHBsb3JlciBpbXBvcnQgSW50ZXJuZXRFeHBsb3JlckRyaXZlcldkc3BlY0V4ZWN1dG9yCisK
K19fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiaWUiLAorICAgICAgICAgICAgICAgICAiY2hl
Y2tfYXJncyI6ICJjaGVja19hcmdzIiwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAiSW50
ZXJuZXRFeHBsb3JlckJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRl
c3RoYXJuZXNzIjogIlNlbGVuaXVtVGVzdGhhcm5lc3NFeGVjdXRvciIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJTZWxlbml1bVJlZlRlc3RFeGVjdXRvciIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIkludGVybmV0RXhwbG9yZXJE
cml2ZXJXZHNwZWNFeGVjdXRvciJ9LAorICAgICAgICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3Mi
OiAiYnJvd3Nlcl9rd2FyZ3MiLAorICAgICAgICAgICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjog
ImV4ZWN1dG9yX2t3YXJncyIsCisgICAgICAgICAgICAgICAgICJlbnZfZXh0cmFzIjogImVudl9l
eHRyYXMiLAorICAgICAgICAgICAgICAgICAiZW52X29wdGlvbnMiOiAiZW52X29wdGlvbnMifQor
CisKK2RlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKKyAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3
ZWJkcml2ZXJfYmluYXJ5IikKKworZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2lu
Zm9fZGF0YSwgKiprd2FyZ3MpOgorICAgIHJldHVybiB7IndlYmRyaXZlcl9iaW5hcnkiOiBrd2Fy
Z3NbIndlYmRyaXZlcl9iaW5hcnkiXSwKKyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3
YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIil9CisKK2RlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90
eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorICAgICAg
ICAgICAgICAgICAgICAqKmt3YXJncyk6CisgICAgZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIgaW1w
b3J0IERlc2lyZWRDYXBhYmlsaXRpZXMKKworICAgIG9wdGlvbnMgPSB7fQorICAgIG9wdGlvbnNb
InJlcXVpcmVXaW5kb3dGb2N1cyJdID0gVHJ1ZQorICAgIGNhcGFiaWxpdGllcyA9IHt9CisgICAg
Y2FwYWJpbGl0aWVzWyJzZTppZU9wdGlvbnMiXSA9IG9wdGlvbnMKKyAgICBleGVjdXRvcl9rd2Fy
Z3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgKipr
d2FyZ3MpCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRlcl9kb25lIl0gPSBUcnVlCisg
ICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9IGNhcGFiaWxpdGllcworICAgIHJl
dHVybiBleGVjdXRvcl9rd2FyZ3MKKworZGVmIGVudl9leHRyYXMoKiprd2FyZ3MpOgorICAgIHJl
dHVybiBbXQorCitkZWYgZW52X29wdGlvbnMoKToKKyAgICByZXR1cm4geyJzdXBwb3J0c19kZWJ1
Z2dlciI6IEZhbHNlfQorCitjbGFzcyBJbnRlcm5ldEV4cGxvcmVyQnJvd3NlcihCcm93c2VyKToK
KyAgICB1c2VkX3BvcnRzID0gc2V0KCkKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIs
IHdlYmRyaXZlcl9iaW5hcnksIHdlYmRyaXZlcl9hcmdzPU5vbmUpOgorICAgICAgICBCcm93c2Vy
Ll9faW5pdF9fKHNlbGYsIGxvZ2dlcikKKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBJbnRlcm5ldEV4
cGxvcmVyRHJpdmVyU2VydmVyKHNlbGYubG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPXdlYmRy
aXZlcl9hcmdzKQorICAgICAgICBzZWxmLndlYmRyaXZlcl9ob3N0ID0gImxvY2FsaG9zdCIKKyAg
ICAgICAgc2VsZi53ZWJkcml2ZXJfcG9ydCA9IHNlbGYuc2VydmVyLnBvcnQKKworICAgIGRlZiBz
dGFydChzZWxmLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KCkKKworICAg
IGRlZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKKyAgICAgICAgc2VsZi5zZXJ2ZXIuc3RvcChm
b3JjZT1mb3JjZSkKKworICAgIGRlZiBwaWQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnNl
cnZlci5waWQKKworICAgIGRlZiBpc19hbGl2ZShzZWxmKToKKyAgICAgICAgIyBUT0RPKGF0byk6
IFRoaXMgb25seSBpbmRpY2F0ZXMgdGhlIHNlcnZlciBpcyBhbGl2ZSwKKyAgICAgICAgIyBhbmQg
ZG9lc24ndCBzYXkgYW55dGhpbmcgYWJvdXQgd2hldGhlciBhIGJyb3dzZXIgc2Vzc2lvbgorICAg
ICAgICAjIGlzIGFjdGl2ZS4KKyAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2FsaXZlKCkK
KworICAgIGRlZiBjbGVhbnVwKHNlbGYpOgorICAgICAgICBzZWxmLnN0b3AoKQorCisgICAgZGVm
IGV4ZWN1dG9yX2Jyb3dzZXIoc2VsZik6CisgICAgICAgIHJldHVybiBFeGVjdXRvckJyb3dzZXIs
IHsid2ViZHJpdmVyX3VybCI6IHNlbGYuc2VydmVyLnVybH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9icm93c2Vycy9vcGVyYS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9vcGVyYS5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iZmFjZmE1YTdkODBhZDI0ZTdiZDgxMzU5MTNmODMyZWFkZTU5YzBiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL29wZXJhLnB5CkBAIC0wLDAgKzEs
MTAwIEBACitmcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVp
cmVfYXJnCitmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgT3BlcmFEcml2ZXJTZXJ2ZXIK
K2Zyb20gLi5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9y
X2t3YXJncworZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcnNlbGVuaXVtIGltcG9ydCAoU2VsZW5p
dW1UZXN0aGFybmVzc0V4ZWN1dG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgU2VsZW5pdW1SZWZUZXN0RXhlY3V0b3IpCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1
dG9yb3BlcmEgaW1wb3J0IE9wZXJhRHJpdmVyV2RzcGVjRXhlY3V0b3IKKworCitfX3dwdHJ1bm5l
cl9fID0geyJwcm9kdWN0IjogIm9wZXJhIiwKKyAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3Mi
OiAiY2hlY2tfYXJncyIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjogIk9wZXJhQnJvd3Nl
ciIsCisgICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiU2VsZW5p
dW1UZXN0aGFybmVzc0V4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJy
ZWZ0ZXN0IjogIlNlbGVuaXVtUmVmVGVzdEV4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJ3ZHNwZWMiOiAiT3BlcmFEcml2ZXJXZHNwZWNFeGVjdXRvciJ9LAorICAgICAg
ICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAorICAgICAgICAg
ICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCisgICAgICAgICAg
ICAgICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLAorICAgICAgICAgICAgICAgICAiZW52
X29wdGlvbnMiOiAiZW52X29wdGlvbnMifQorCisKK2RlZiBjaGVja19hcmdzKCoqa3dhcmdzKToK
KyAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikKKworCitkZWYgYnJv
d3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCAqKmt3YXJncyk6CisgICAgcmV0
dXJuIHsiYmluYXJ5Ijoga3dhcmdzWyJiaW5hcnkiXSwKKyAgICAgICAgICAgICJ3ZWJkcml2ZXJf
YmluYXJ5Ijoga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0sCisgICAgICAgICAgICAid2ViZHJp
dmVyX2FyZ3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpfQorCisKK2RlZiBleGVjdXRv
cl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5m
b19kYXRhLAorICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CisgICAgZnJvbSBzZWxlbml1
bS53ZWJkcml2ZXIgaW1wb3J0IERlc2lyZWRDYXBhYmlsaXRpZXMKKworICAgIGV4ZWN1dG9yX2t3
YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9tYW5hZ2VyLCAq
Kmt3YXJncykKKyAgICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRydWUK
KyAgICBjYXBhYmlsaXRpZXMgPSBkaWN0KERlc2lyZWRDYXBhYmlsaXRpZXMuT1BFUkEuaXRlbXMo
KSkKKyAgICBjYXBhYmlsaXRpZXMuc2V0ZGVmYXVsdCgib3BlcmFPcHRpb25zIiwge30pWyJwcmVm
cyJdID0geworICAgICAgICAicHJvZmlsZSI6IHsKKyAgICAgICAgICAgICJkZWZhdWx0X2NvbnRl
bnRfc2V0dGluZ192YWx1ZXMiOiB7CisgICAgICAgICAgICAgICAgInBvcHVwcyI6IDEKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBmb3IgKGt3YXJnLCBjYXBhYmlsaXR5KSBp
biBbKCJiaW5hcnkiLCAiYmluYXJ5IiksICgiYmluYXJ5X2FyZ3MiLCAiYXJncyIpXToKKyAgICAg
ICAgaWYga3dhcmdzW2t3YXJnXSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGNhcGFiaWxpdGll
c1sib3BlcmFPcHRpb25zIl1bY2FwYWJpbGl0eV0gPSBrd2FyZ3Nba3dhcmddCisgICAgaWYgdGVz
dF90eXBlID09ICJ0ZXN0aGFybmVzcyI6CisgICAgICAgIGNhcGFiaWxpdGllc1sib3BlcmFPcHRp
b25zIl1bInVzZUF1dG9tYXRpb25FeHRlbnNpb24iXSA9IEZhbHNlCisgICAgICAgIGNhcGFiaWxp
dGllc1sib3BlcmFPcHRpb25zIl1bImV4Y2x1ZGVTd2l0Y2hlcyJdID0gWyJlbmFibGUtYXV0b21h
dGlvbiJdCisgICAgaWYgdGVzdF90eXBlID09ICJ3ZHNwZWMiOgorICAgICAgICBjYXBhYmlsaXRp
ZXNbIm9wZXJhT3B0aW9ucyJdWyJ3M2MiXSA9IFRydWUKKyAgICBleGVjdXRvcl9rd2FyZ3NbImNh
cGFiaWxpdGllcyJdID0gY2FwYWJpbGl0aWVzCisgICAgcmV0dXJuIGV4ZWN1dG9yX2t3YXJncwor
CisKK2RlZiBlbnZfZXh0cmFzKCoqa3dhcmdzKToKKyAgICByZXR1cm4gW10KKworCitkZWYgZW52
X29wdGlvbnMoKToKKyAgICByZXR1cm4ge30KKworCitjbGFzcyBPcGVyYUJyb3dzZXIoQnJvd3Nl
cik6CisgICAgIiIiT3BlcmEgaXMgYmFja2VkIGJ5IG9wZXJhZHJpdmVyLCB3aGljaCBpcyBzdXBw
bGllZCB0aHJvdWdoCisgICAgYGB3cHRydW5uZXIud2ViZHJpdmVyLk9wZXJhRHJpdmVyU2VydmVy
YGAuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHdl
YmRyaXZlcl9iaW5hcnk9Im9wZXJhZHJpdmVyIiwKKyAgICAgICAgICAgICAgICAgd2ViZHJpdmVy
X2FyZ3M9Tm9uZSk6CisgICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgcmVwcmVzZW50YXRpb24gb2Yg
T3BlcmEuICBUaGUgYGJpbmFyeWAgYXJndW1lbnQgZ2l2ZXMKKyAgICAgICAgdGhlIGJyb3dzZXIg
YmluYXJ5IHRvIHVzZSBmb3IgdGVzdGluZy4iIiIKKyAgICAgICAgQnJvd3Nlci5fX2luaXRfXyhz
ZWxmLCBsb2dnZXIpCisgICAgICAgIHNlbGYuYmluYXJ5ID0gYmluYXJ5CisgICAgICAgIHNlbGYu
c2VydmVyID0gT3BlcmFEcml2ZXJTZXJ2ZXIoc2VsZi5sb2dnZXIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz13ZWJkcml2ZXJfYXJncykKKwor
ICAgIGRlZiBzdGFydChzZWxmLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0
KGJsb2NrPUZhbHNlKQorCisgICAgZGVmIHN0b3Aoc2VsZiwgZm9yY2U9RmFsc2UpOgorICAgICAg
ICBzZWxmLnNlcnZlci5zdG9wKGZvcmNlPWZvcmNlKQorCisgICAgZGVmIHBpZChzZWxmKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLnBpZAorCisgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgor
ICAgICAgICAjIFRPRE8oYXRvKTogVGhpcyBvbmx5IGluZGljYXRlcyB0aGUgZHJpdmVyIGlzIGFs
aXZlLAorICAgICAgICAjIGFuZCBkb2Vzbid0IHNheSBhbnl0aGluZyBhYm91dCB3aGV0aGVyIGEg
YnJvd3NlciBzZXNzaW9uCisgICAgICAgICMgaXMgYWN0aXZlLgorICAgICAgICByZXR1cm4gc2Vs
Zi5zZXJ2ZXIuaXNfYWxpdmUoKQorCisgICAgZGVmIGNsZWFudXAoc2VsZik6CisgICAgICAgIHNl
bGYuc3RvcCgpCisKKyAgICBkZWYgZXhlY3V0b3JfYnJvd3NlcihzZWxmKToKKyAgICAgICAgcmV0
dXJuIEV4ZWN1dG9yQnJvd3NlciwgeyJ3ZWJkcml2ZXJfdXJsIjogc2VsZi5zZXJ2ZXIudXJsfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhZmFyaS5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9icm93c2Vycy9zYWZhcmkucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2I5OWQyMmJiYzM1NWVmYzYxYTcwNGZl
ZDcxYTQ3OTU0M2M3MjBkZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9zYWZhcmkucHkKQEAgLTAsMCArMSw4NCBAQAorZnJvbSAuYmFzZSBpbXBvcnQgQnJvd3Nlciwg
RXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZworZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1w
b3J0IFNhZmFyaURyaXZlclNlcnZlcgorZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jf
a3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9y
c2VsZW5pdW0gaW1wb3J0IChTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3IsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlbml1bVJlZlRlc3RFeGVjdXRvcikK
KworCitfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogInNhZmFyaSIsCisgICAgICAgICAgICAg
ICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAorICAgICAgICAgICAgICAgICAiYnJvd3Nl
ciI6ICJTYWZhcmlCcm93c2VyIiwKKyAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0
aGFybmVzcyI6ICJTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3IiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiU2VsZW5pdW1SZWZUZXN0RXhlY3V0b3IifSwKKyAg
ICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwKKyAgICAg
ICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLAorICAgICAg
ICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKKyAgICAgICAgICAgICAgICAg
ImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIn0KKworCitkZWYgY2hlY2tfYXJncygqKmt3YXJn
cyk6CisgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVyX2JpbmFyeSIpCisKKworZGVm
IGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpOgorICAg
IHJldHVybiB7IndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwK
KyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdz
Iil9CisKKworZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNh
Y2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICoqa3dhcmdz
KToKKyAgICBmcm9tIHNlbGVuaXVtLndlYmRyaXZlciBpbXBvcnQgRGVzaXJlZENhcGFiaWxpdGll
cworCisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBl
LCBzZXJ2ZXJfY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNhY2hlX21hbmFnZXIsICoqa3dhcmdzKQorICAgIGV4ZWN1dG9yX2t3YXJnc1siY2xvc2Vf
YWZ0ZXJfZG9uZSJdID0gVHJ1ZQorICAgIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl0g
PSBkaWN0KERlc2lyZWRDYXBhYmlsaXRpZXMuU0FGQVJJLml0ZW1zKCkpCisgICAgaWYga3dhcmdz
WyJiaW5hcnkiXSBpcyBub3QgTm9uZToKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiU2FmYXJp
IGRvZXNuJ3Qgc3VwcG9ydCBzZXR0aW5nIGV4ZWN1dGFibGUgbG9jYXRpb24iKQorCisgICAgcmV0
dXJuIGV4ZWN1dG9yX2t3YXJncworCisKK2RlZiBlbnZfZXh0cmFzKCoqa3dhcmdzKToKKyAgICBy
ZXR1cm4gW10KKworCitkZWYgZW52X29wdGlvbnMoKToKKyAgICByZXR1cm4ge30KKworCitjbGFz
cyBTYWZhcmlCcm93c2VyKEJyb3dzZXIpOgorICAgICIiIlNhZmFyaSBpcyBiYWNrZWQgYnkgc2Fm
YXJpZHJpdmVyLCB3aGljaCBpcyBzdXBwbGllZCB0aHJvdWdoCisgICAgYGB3cHRydW5uZXIud2Vi
ZHJpdmVyLlNhZmFyaURyaXZlclNlcnZlcmBgLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIGxvZ2dlciwgd2ViZHJpdmVyX2JpbmFyeSwgd2ViZHJpdmVyX2FyZ3M9Tm9uZSk6Cisg
ICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgcmVwcmVzZW50YXRpb24gb2YgU2FmYXJpLiAgVGhlIGB3
ZWJkcml2ZXJfYmluYXJ5YAorICAgICAgICBhcmd1bWVudCBnaXZlcyB0aGUgV2ViRHJpdmVyIGJp
bmFyeSB0byB1c2UgZm9yIHRlc3RpbmcuIChUaGUgYnJvd3NlcgorICAgICAgICBiaW5hcnkgbG9j
YXRpb24gY2Fubm90IGJlIHNwZWNpZmllZCwgYXMgU2FmYXJpIGFuZCBTYWZhcmlEcml2ZXIgYXJl
CisgICAgICAgIGNvdXBsZWQuKSIiIgorICAgICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxv
Z2dlcikKKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBTYWZhcmlEcml2ZXJTZXJ2ZXIoc2VsZi5sb2dn
ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmFyeT13ZWJk
cml2ZXJfYmluYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
cmdzPXdlYmRyaXZlcl9hcmdzKQorCisgICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdzKToKKyAg
ICAgICAgc2VsZi5zZXJ2ZXIuc3RhcnQoYmxvY2s9RmFsc2UpCisKKyAgICBkZWYgc3RvcChzZWxm
LCBmb3JjZT1GYWxzZSk6CisgICAgICAgIHNlbGYuc2VydmVyLnN0b3AoZm9yY2U9Zm9yY2UpCisK
KyAgICBkZWYgcGlkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIucGlkCisKKyAg
ICBkZWYgaXNfYWxpdmUoc2VsZik6CisgICAgICAgICMgVE9ETyhhdG8pOiBUaGlzIG9ubHkgaW5k
aWNhdGVzIHRoZSBkcml2ZXIgaXMgYWxpdmUsCisgICAgICAgICMgYW5kIGRvZXNuJ3Qgc2F5IGFu
eXRoaW5nIGFib3V0IHdoZXRoZXIgYSBicm93c2VyIHNlc3Npb24KKyAgICAgICAgIyBpcyBhY3Rp
dmUuCisgICAgICAgIHJldHVybiBzZWxmLnNlcnZlci5pc19hbGl2ZSgpCisKKyAgICBkZWYgY2xl
YW51cChzZWxmKToKKyAgICAgICAgc2VsZi5zdG9wKCkKKworICAgIGRlZiBleGVjdXRvcl9icm93
c2VyKHNlbGYpOgorICAgICAgICByZXR1cm4gRXhlY3V0b3JCcm93c2VyLCB7IndlYmRyaXZlcl91
cmwiOiBzZWxmLnNlcnZlci51cmx9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMv
c2F1Y2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2F1Y2UucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWFl
MmY3ZWNmNTRkODA3YWE0NjZlMWE5MjhkMzE2MjBjNjFiZjc0OAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYXVjZS5weQpAQCAtMCwwICsxLDI0MCBAQAorIyBUaGlz
IFNvdXJjZSBDb2RlIEZvcm0gaXMgc3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhlIE1vemlsbGEg
UHVibGljCisjIExpY2Vuc2UsIHYuIDIuMC4gSWYgYSBjb3B5IG9mIHRoZSBNUEwgd2FzIG5vdCBk
aXN0cmlidXRlZCB3aXRoIHRoaXMgZmlsZSwKKyMgWW91IGNhbiBvYnRhaW4gb25lIGF0IGh0dHA6
Ly9tb3ppbGxhLm9yZy9NUEwvMi4wLy4KKworaW1wb3J0IGdsb2IKK2ltcG9ydCBvcworaW1wb3J0
IHNodXRpbAoraW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCB0YXJmaWxlCitpbXBvcnQgdGVtcGZp
bGUKK2ltcG9ydCB0aW1lCitmcm9tIGNTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8gYXMgQ1N0cmlu
Z0lPCisKK2ltcG9ydCByZXF1ZXN0cworCitmcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVj
dXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCitmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRv
cl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0
b3JzZWxlbml1bSBpbXBvcnQgKFNlbGVuaXVtVGVzdGhhcm5lc3NFeGVjdXRvciwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVuaXVtUmVmVGVzdEV4ZWN1dG9y
KQorCitoZXJlID0gb3MucGF0aC5zcGxpdChfX2ZpbGVfXylbMF0KKworCitfX3dwdHJ1bm5lcl9f
ID0geyJwcm9kdWN0IjogInNhdWNlIiwKKyAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAi
Y2hlY2tfYXJncyIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjogIlNhdWNlQnJvd3NlciIs
CisgICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiU2VsZW5pdW1U
ZXN0aGFybmVzc0V4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0
ZXN0IjogIlNlbGVuaXVtUmVmVGVzdEV4ZWN1dG9yIn0sCisgICAgICAgICAgICAgICAgICJicm93
c2VyX2t3YXJncyI6ICJicm93c2VyX2t3YXJncyIsCisgICAgICAgICAgICAgICAgICJleGVjdXRv
cl9rd2FyZ3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwKKyAgICAgICAgICAgICAgICAgImVudl9leHRy
YXMiOiAiZW52X2V4dHJhcyIsCisgICAgICAgICAgICAgICAgICJlbnZfb3B0aW9ucyI6ICJlbnZf
b3B0aW9ucyJ9CisKKworZGVmIGdldF9jYXBhYmlsaXRpZXMoKiprd2FyZ3MpOgorICAgIGJyb3dz
ZXJfbmFtZSA9IGt3YXJnc1sic2F1Y2VfYnJvd3NlciJdCisgICAgcGxhdGZvcm0gPSBrd2FyZ3Nb
InNhdWNlX3BsYXRmb3JtIl0KKyAgICB2ZXJzaW9uID0ga3dhcmdzWyJzYXVjZV92ZXJzaW9uIl0K
KyAgICBidWlsZCA9IGt3YXJnc1sic2F1Y2VfYnVpbGQiXQorICAgIHRhZ3MgPSBrd2FyZ3NbInNh
dWNlX3RhZ3MiXQorICAgIHR1bm5lbF9pZCA9IGt3YXJnc1sic2F1Y2VfdHVubmVsX2lkIl0KKyAg
ICBwcmVydW5fc2NyaXB0ID0geworICAgICAgICAiTWljcm9zb2Z0RWRnZSI6IHsKKyAgICAgICAg
ICAgICJleGVjdXRhYmxlIjogInNhdWNlLXN0b3JhZ2U6ZWRnZS1wcmVydW4uYmF0IiwKKyAgICAg
ICAgICAgICJiYWNrZ3JvdW5kIjogRmFsc2UsCisgICAgICAgIH0sCisgICAgICAgICJzYWZhcmki
OiB7CisgICAgICAgICAgICAiZXhlY3V0YWJsZSI6ICJzYXVjZS1zdG9yYWdlOnNhZmFyaS1wcmVy
dW4uc2giLAorICAgICAgICAgICAgImJhY2tncm91bmQiOiBGYWxzZSwKKyAgICAgICAgfQorICAg
IH0KKyAgICBjYXBhYmlsaXRpZXMgPSB7CisgICAgICAgICJicm93c2VyTmFtZSI6IGJyb3dzZXJf
bmFtZSwKKyAgICAgICAgImJ1aWxkIjogYnVpbGQsCisgICAgICAgICJkaXNhYmxlUG9wdXBIYW5k
bGVyIjogVHJ1ZSwKKyAgICAgICAgIm5hbWUiOiAiJXMgJXMgb24gJXMiICUgKGJyb3dzZXJfbmFt
ZSwgdmVyc2lvbiwgcGxhdGZvcm0pLAorICAgICAgICAicGxhdGZvcm0iOiBwbGF0Zm9ybSwKKyAg
ICAgICAgInB1YmxpYyI6ICJwdWJsaWMiLAorICAgICAgICAic2VsZW5pdW0tdmVyc2lvbiI6ICIz
LjMuMSIsCisgICAgICAgICJ0YWdzIjogdGFncywKKyAgICAgICAgInR1bm5lbC1pZGVudGlmaWVy
IjogdHVubmVsX2lkLAorICAgICAgICAidmVyc2lvbiI6IHZlcnNpb24sCisgICAgICAgICJwcmVy
dW4iOiBwcmVydW5fc2NyaXB0LmdldChicm93c2VyX25hbWUpCisgICAgfQorCisgICAgaWYgYnJv
d3Nlcl9uYW1lID09ICdNaWNyb3NvZnRFZGdlJzoKKyAgICAgICAgY2FwYWJpbGl0aWVzWydzZWxl
bml1bS12ZXJzaW9uJ10gPSAnMi40LjgnCisKKyAgICByZXR1cm4gY2FwYWJpbGl0aWVzCisKKwor
ZGVmIGdldF9zYXVjZV9jb25maWcoKiprd2FyZ3MpOgorICAgIGJyb3dzZXJfbmFtZSA9IGt3YXJn
c1sic2F1Y2VfYnJvd3NlciJdCisgICAgc2F1Y2VfdXNlciA9IGt3YXJnc1sic2F1Y2VfdXNlciJd
CisgICAgc2F1Y2Vfa2V5ID0ga3dhcmdzWyJzYXVjZV9rZXkiXQorCisgICAgaHViX3VybCA9ICIl
czolc0Bsb2NhbGhvc3Q6NDQ0NSIgJSAoc2F1Y2VfdXNlciwgc2F1Y2Vfa2V5KQorICAgIGRhdGEg
PSB7CisgICAgICAgICJ1cmwiOiAiaHR0cDovLyVzL3dkL2h1YiIgJSBodWJfdXJsLAorICAgICAg
ICAiYnJvd3Nlck5hbWUiOiBicm93c2VyX25hbWUsCisgICAgICAgICJjYXBhYmlsaXRpZXMiOiBn
ZXRfY2FwYWJpbGl0aWVzKCoqa3dhcmdzKQorICAgIH0KKworICAgIHJldHVybiBkYXRhCisKKwor
ZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgorICAgIHJlcXVpcmVfYXJnKGt3YXJncywgInNhdWNl
X2Jyb3dzZXIiKQorICAgIHJlcXVpcmVfYXJnKGt3YXJncywgInNhdWNlX3BsYXRmb3JtIikKKyAg
ICByZXF1aXJlX2FyZyhrd2FyZ3MsICJzYXVjZV92ZXJzaW9uIikKKyAgICByZXF1aXJlX2FyZyhr
d2FyZ3MsICJzYXVjZV91c2VyIikKKyAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJzYXVjZV9rZXki
KQorCisKK2RlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsICoqa3dh
cmdzKToKKyAgICBzYXVjZV9jb25maWcgPSBnZXRfc2F1Y2VfY29uZmlnKCoqa3dhcmdzKQorCisg
ICAgcmV0dXJuIHsic2F1Y2VfY29uZmlnIjogc2F1Y2VfY29uZmlnfQorCisKK2RlZiBleGVjdXRv
cl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5m
b19kYXRhLAorICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CisgICAgZXhlY3V0b3Jfa3dh
cmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIsICoq
a3dhcmdzKQorCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9IGdldF9jYXBh
YmlsaXRpZXMoKiprd2FyZ3MpCisKKyAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCisKKworZGVm
IGVudl9leHRyYXMoKiprd2FyZ3MpOgorICAgIHJldHVybiBbU2F1Y2VDb25uZWN0KCoqa3dhcmdz
KV0KKworCitkZWYgZW52X29wdGlvbnMoKToKKyAgICByZXR1cm4geyJzdXBwb3J0c19kZWJ1Z2dl
ciI6IEZhbHNlfQorCisKK2RlZiBnZXRfdGFyKHVybCwgZGVzdCk6CisgICAgcmVzcCA9IHJlcXVl
c3RzLmdldCh1cmwsIHN0cmVhbT1UcnVlKQorICAgIHJlc3AucmFpc2VfZm9yX3N0YXR1cygpCisg
ICAgd2l0aCB0YXJmaWxlLm9wZW4oZmlsZW9iaj1DU3RyaW5nSU8ocmVzcC5yYXcucmVhZCgpKSkg
YXMgZjoKKyAgICAgICAgZi5leHRyYWN0YWxsKHBhdGg9ZGVzdCkKKworCitjbGFzcyBTYXVjZUNv
bm5lY3QoKToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6CisgICAgICAgIHNl
bGYuc2F1Y2VfdXNlciA9IGt3YXJnc1sic2F1Y2VfdXNlciJdCisgICAgICAgIHNlbGYuc2F1Y2Vf
a2V5ID0ga3dhcmdzWyJzYXVjZV9rZXkiXQorICAgICAgICBzZWxmLnNhdWNlX3R1bm5lbF9pZCA9
IGt3YXJnc1sic2F1Y2VfdHVubmVsX2lkIl0KKyAgICAgICAgc2VsZi5zYXVjZV9jb25uZWN0X2Jp
bmFyeSA9IGt3YXJncy5nZXQoInNhdWNlX2Nvbm5lY3RfYmluYXJ5IikKKyAgICAgICAgc2VsZi5z
Y19wcm9jZXNzID0gTm9uZQorICAgICAgICBzZWxmLnRlbXBfZGlyID0gTm9uZQorICAgICAgICBz
ZWxmLmVudl9jb25maWcgPSBOb25lCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZW52X29wdGlv
bnMsIGVudl9jb25maWcpOgorICAgICAgICBzZWxmLmVudl9jb25maWcgPSBlbnZfY29uZmlnCisK
KyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBfX2VudGVyX18oc2VsZik6CisgICAgICAg
ICMgQmVjYXVzZSB0aGlzIGNsYXNzIGltcGxlbWVudHMgdGhlIGNvbnRleHQgbWFuYWdlciBwcm90
b2NvbCwgaXQgaXMKKyAgICAgICAgIyBwb3NzaWJsZSBmb3IgaW5zdGFuY2VzIHRvIGJlIHByb3Zp
ZGVkIHRvIHRoZSBgd2l0aGAgc3RhdGVtZW50CisgICAgICAgICMgZGlyZWN0bHkuIFRoaXMgY2xh
c3MgaW1wbGVtZW50cyB0aGUgY2FsbGFibGUgcHJvdG9jb2wgc28gdGhhdCBkYXRhCisgICAgICAg
ICMgd2hpY2ggaXMgbm90IGF2YWlsYWJsZSBkdXJpbmcgb2JqZWN0IGluaXRpYWxpemF0aW9uIGNh
biBiZSBwcm92aWRlZAorICAgICAgICAjIHByaW9yIHRvIHRoaXMgbW9tZW50LiBJbnN0YW5jZXMg
bXVzdCBiZSBpbnZva2VkIGluIHByZXBhcmF0aW9uIGZvcgorICAgICAgICAjIHRoZSBjb250ZXh0
IG1hbmFnZXIgcHJvdG9jb2wsIGJ1dCB0aGlzIGFkZGl0aW9uYWwgY29uc3RyYWludCBpcyBub3QK
KyAgICAgICAgIyBpdHNlbGYgcGFydCBvZiB0aGUgcHJvdG9jb2wuCisgICAgICAgIGFzc2VydCBz
ZWxmLmVudl9jb25maWcgaXMgbm90IE5vbmUsICdUaGUgaW5zdGFuY2UgaGFzIGJlZW4gaW52b2tl
ZC4nCisKKyAgICAgICAgaWYgbm90IHNlbGYuc2F1Y2VfY29ubmVjdF9iaW5hcnk6CisgICAgICAg
ICAgICBzZWxmLnRlbXBfZGlyID0gdGVtcGZpbGUubWtkdGVtcCgpCisgICAgICAgICAgICBnZXRf
dGFyKCJodHRwczovL3NhdWNlbGFicy5jb20vZG93bmxvYWRzL3NjLTQuNC45LWxpbnV4LnRhci5n
eiIsIHNlbGYudGVtcF9kaXIpCisgICAgICAgICAgICBzZWxmLnNhdWNlX2Nvbm5lY3RfYmluYXJ5
ID0gZ2xvYi5nbG9iKG9zLnBhdGguam9pbihzZWxmLnRlbXBfZGlyLCAic2MtKi1saW51eC9iaW4v
c2MiKSlbMF0KKworICAgICAgICBzZWxmLnVwbG9hZF9wcmVydW5fZXhlYygnZWRnZS1wcmVydW4u
YmF0JykKKyAgICAgICAgc2VsZi51cGxvYWRfcHJlcnVuX2V4ZWMoJ3NhZmFyaS1wcmVydW4uc2gn
KQorCisgICAgICAgIHNlbGYuc2NfcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4oWworICAgICAg
ICAgICAgc2VsZi5zYXVjZV9jb25uZWN0X2JpbmFyeSwKKyAgICAgICAgICAgICItLXVzZXI9JXMi
ICUgc2VsZi5zYXVjZV91c2VyLAorICAgICAgICAgICAgIi0tYXBpLWtleT0lcyIgJSBzZWxmLnNh
dWNlX2tleSwKKyAgICAgICAgICAgICItLW5vLXJlbW92ZS1jb2xsaWRpbmctdHVubmVscyIsCisg
ICAgICAgICAgICAiLS10dW5uZWwtaWRlbnRpZmllcj0lcyIgJSBzZWxmLnNhdWNlX3R1bm5lbF9p
ZCwKKyAgICAgICAgICAgICItLW1ldHJpY3MtYWRkcmVzcz0wLjAuMC4wOjk4NzYiLAorICAgICAg
ICAgICAgIi0tcmVhZHlmaWxlPS4vc2F1Y2VfaXNfcmVhZHkiLAorICAgICAgICAgICAgIi0tdHVu
bmVsLWRvbWFpbnMiLAorICAgICAgICAgICAgIiwiLmpvaW4oc2VsZi5lbnZfY29uZmlnWydkb21h
aW5zJ10udmFsdWVzKCkpCisgICAgICAgIF0pCisKKyAgICAgICAgIyBUaW1lb3V0IGNvbmZpZyB2
YXJzCisgICAgICAgIGVhY2hfc2xlZXBfc2VjcyA9IDEKKyAgICAgICAgbWF4X3dhaXQgPSAzMAor
ICAgICAgICBraWxsX3dhaXQgPSA1CisKKyAgICAgICAgdG90X3dhaXQgPSAwCisgICAgICAgIHdo
aWxlIG5vdCBvcy5wYXRoLmV4aXN0cygnLi9zYXVjZV9pc19yZWFkeScpIGFuZCBzZWxmLnNjX3By
b2Nlc3MucG9sbCgpIGlzIE5vbmU6CisgICAgICAgICAgICBpZiB0b3Rfd2FpdCA+PSBtYXhfd2Fp
dDoKKyAgICAgICAgICAgICAgICBzZWxmLnNjX3Byb2Nlc3MudGVybWluYXRlKCkKKyAgICAgICAg
ICAgICAgICB3aGlsZSBzZWxmLnNjX3Byb2Nlc3MucG9sbCgpIGlzIE5vbmU6CisgICAgICAgICAg
ICAgICAgICAgIHRpbWUuc2xlZXAoZWFjaF9zbGVlcF9zZWNzKQorICAgICAgICAgICAgICAgICAg
ICB0b3Rfd2FpdCArPSBlYWNoX3NsZWVwX3NlY3MKKyAgICAgICAgICAgICAgICAgICAgaWYgdG90
X3dhaXQgPj0gKG1heF93YWl0ICsga2lsbF93YWl0KToKKyAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuc2NfcHJvY2Vzcy5raWxsKCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisg
ICAgICAgICAgICAgICAgcmFpc2UgU2F1Y2VFeGNlcHRpb24oIlNhdWNlIENvbm5lY3QgUHJveHkg
d2FzIG5vdCByZWFkeSBhZnRlciAlZCBzZWNvbmRzIiAlIHRvdF93YWl0KQorCisgICAgICAgICAg
ICB0aW1lLnNsZWVwKGVhY2hfc2xlZXBfc2VjcykKKyAgICAgICAgICAgIHRvdF93YWl0ICs9IGVh
Y2hfc2xlZXBfc2VjcworCisgICAgICAgIGlmIHNlbGYuc2NfcHJvY2Vzcy5yZXR1cm5jb2RlIGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgcmFpc2UgU2F1Y2VFeGNlcHRpb24oIlVuYWJsZSB0byBz
dGFydCBTYXVjZSBDb25uZWN0IFByb3h5LiBQcm9jZXNzIGV4aXRlZCB3aXRoIGNvZGUgJXMiLCBz
ZWxmLnNjX3Byb2Nlc3MucmV0dXJuY29kZSkKKworICAgIGRlZiBfX2V4aXRfXyhzZWxmLCBleGNf
dHlwZSwgZXhjX3ZhbCwgZXhjX3RiKToKKyAgICAgICAgc2VsZi5lbnZfY29uZmlnID0gTm9uZQor
ICAgICAgICBzZWxmLnNjX3Byb2Nlc3MudGVybWluYXRlKCkKKyAgICAgICAgaWYgc2VsZi50ZW1w
X2RpciBhbmQgb3MucGF0aC5leGlzdHMoc2VsZi50ZW1wX2Rpcik6CisgICAgICAgICAgICB0cnk6
CisgICAgICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShzZWxmLnRlbXBfZGlyKQorICAgICAgICAg
ICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgZGVmIHVwbG9h
ZF9wcmVydW5fZXhlYyhzZWxmLCBmaWxlX25hbWUpOgorICAgICAgICBhdXRoID0gKHNlbGYuc2F1
Y2VfdXNlciwgc2VsZi5zYXVjZV9rZXkpCisgICAgICAgIHVybCA9ICJodHRwczovL3NhdWNlbGFi
cy5jb20vcmVzdC92MS9zdG9yYWdlLyVzLyVzP292ZXJ3cml0ZT10cnVlIiAlIChzZWxmLnNhdWNl
X3VzZXIsIGZpbGVfbmFtZSkKKworICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKGhlcmUs
ICdzYXVjZV9zZXR1cCcsIGZpbGVfbmFtZSksICdyYicpIGFzIGY6CisgICAgICAgICAgICByZXF1
ZXN0cy5wb3N0KHVybCwgZGF0YT1mLCBhdXRoPWF1dGgpCisKKworY2xhc3MgU2F1Y2VFeGNlcHRp
b24oRXhjZXB0aW9uKToKKyAgICBwYXNzCisKKworY2xhc3MgU2F1Y2VCcm93c2VyKEJyb3dzZXIp
OgorICAgIGluaXRfdGltZW91dCA9IDMwMAorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dl
ciwgc2F1Y2VfY29uZmlnKToKKyAgICAgICAgQnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIp
CisgICAgICAgIHNlbGYuc2F1Y2VfY29uZmlnID0gc2F1Y2VfY29uZmlnCisKKyAgICBkZWYgc3Rh
cnQoc2VsZik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNl
KToKKyAgICAgICAgcGFzcworCisgICAgZGVmIHBpZChzZWxmKToKKyAgICAgICAgcmV0dXJuIE5v
bmUKKworICAgIGRlZiBpc19hbGl2ZShzZWxmKToKKyAgICAgICAgIyBUT0RPOiBTaG91bGQgdGhp
cyBjaGVjayBzb21ldGhpbmcgYWJvdXQgdGhlIGNvbm5lY3Rpb24/CisgICAgICAgIHJldHVybiBU
cnVlCisKKyAgICBkZWYgY2xlYW51cChzZWxmKToKKyAgICAgICAgcGFzcworCisgICAgZGVmIGV4
ZWN1dG9yX2Jyb3dzZXIoc2VsZik6CisgICAgICAgIHJldHVybiBFeGVjdXRvckJyb3dzZXIsIHsi
d2ViZHJpdmVyX3VybCI6IHNlbGYuc2F1Y2VfY29uZmlnWyJ1cmwiXX0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9icm93c2Vycy9zYXVjZV9zZXR1cC9lZGdlLXByZXJ1bi5iYXQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvYnJvd3NlcnMvc2F1Y2Vfc2V0dXAvZWRnZS1wcmVydW4uYmF0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1
NTQ4OTQ4OTZiOTgwZTNkM2FiODhmNzM5ZjY0OWMwMGJlMTdiOTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2F1Y2Vfc2V0dXAvZWRnZS1wcmVydW4uYmF0CkBAIC0w
LDAgKzEsMiBAQAorQGVjaG8gb2ZmCityZWcgYWRkICJIS0NVXFNvZnR3YXJlXENsYXNzZXNcTG9j
YWwgU2V0dGluZ3NcU29mdHdhcmVcTWljcm9zb2Z0XFdpbmRvd3NcQ3VycmVudFZlcnNpb25cQXBw
Q29udGFpbmVyXFN0b3JhZ2VcbWljcm9zb2Z0Lm1pY3Jvc29mdGVkZ2VfOHdla3liM2Q4YmJ3ZVxN
aWNyb3NvZnRFZGdlXE5ldyBXaW5kb3dzIiAvdiAiUG9wdXBNZ3IiIC90IFJFR19TWiAvZCBubwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhdWNlX3NldHVwL3NhZmFyaS1wcmVy
dW4uc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2F1Y2Vfc2V0dXAvc2FmYXJpLXByZXJ1bi5z
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44NWM3MmU2YmU2YTA3Y2NmYWJiODk1ODg3ZTFjOGFhM2ZlZWY2OWVjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhdWNlX3NldHVwL3NhZmFy
aS1wcmVydW4uc2gKQEAgLTAsMCArMSwyIEBACisjIS9iaW4vYmFzaAorZGVmYXVsdHMgd3JpdGUg
Y29tLmFwcGxlLlNhZmFyaSBjb20uYXBwbGUuU2FmYXJpLkNvbnRlbnRQYWdlR3JvdXBJZGVudGlm
aWVyLldlYktpdDJKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5IC1ib29sIHRy
dWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYXVjZV9zZXR1cC93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYXVjZV9zZXR1cC93M2MtaW1wb3J0Lmxv
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zNGYxYzE2ZWM4YmQ0NzhkNmNhOGZkN2RiYmE2YzgwMTlkMThlNDRiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhdWNlX3NldHVwL3czYy1p
bXBvcnQubG9nCkBAIC0wLDAgKzEsMTggQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9u
ZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9zYXVjZV9zZXR1cC9lZGdlLXByZXJ1bi5iYXQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2F1
Y2Vfc2V0dXAvc2FmYXJpLXByZXJ1bi5zaApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dz
ZXJzL3NlcnZvLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZvLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRkNTRmYjA1MjVlYzBkODBhNThkNjY2ODc1YWU4ZTc1YzlkNzBhZTAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm8ucHkKQEAgLTAsMCArMSw4MiBAQAoraW1w
b3J0IG9zCisKK2Zyb20gLmJhc2UgaW1wb3J0IE51bGxCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIs
IHJlcXVpcmVfYXJnCitmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMg
YmFzZV9leGVjdXRvcl9rd2FyZ3MKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JzZXJ2byBpbXBv
cnQgU2Vydm9UZXN0aGFybmVzc0V4ZWN1dG9yLCBTZXJ2b1JlZlRlc3RFeGVjdXRvciwgU2Vydm9X
ZHNwZWNFeGVjdXRvcgorCitoZXJlID0gb3MucGF0aC5qb2luKG9zLnBhdGguc3BsaXQoX19maWxl
X18pWzBdKQorCitfX3dwdHJ1bm5lcl9fID0geworICAgICJwcm9kdWN0IjogInNlcnZvIiwKKyAg
ICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKKyAgICAiYnJvd3NlciI6ICJTZXJ2b0Jyb3dz
ZXIiLAorICAgICJleGVjdXRvciI6IHsKKyAgICAgICAgInRlc3RoYXJuZXNzIjogIlNlcnZvVGVz
dGhhcm5lc3NFeGVjdXRvciIsCisgICAgICAgICJyZWZ0ZXN0IjogIlNlcnZvUmVmVGVzdEV4ZWN1
dG9yIiwKKyAgICAgICAgIndkc3BlYyI6ICJTZXJ2b1dkc3BlY0V4ZWN1dG9yIiwKKyAgICB9LAor
ICAgICJicm93c2VyX2t3YXJncyI6ICJicm93c2VyX2t3YXJncyIsCisgICAgImV4ZWN1dG9yX2t3
YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLAorICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMi
LAorICAgICJlbnZfb3B0aW9ucyI6ICJlbnZfb3B0aW9ucyIsCisgICAgInVwZGF0ZV9wcm9wZXJ0
aWVzIjogInVwZGF0ZV9wcm9wZXJ0aWVzIiwKK30KKworCitkZWYgY2hlY2tfYXJncygqKmt3YXJn
cyk6CisgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAiYmluYXJ5IikKKworCitkZWYgYnJvd3Nlcl9r
d2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCAqKmt3YXJncyk6CisgICAgcmV0dXJuIHsK
KyAgICAgICAgImJpbmFyeSI6IGt3YXJnc1siYmluYXJ5Il0sCisgICAgICAgICJkZWJ1Z19pbmZv
Ijoga3dhcmdzWyJkZWJ1Z19pbmZvIl0sCisgICAgICAgICJiaW5hcnlfYXJncyI6IGt3YXJnc1si
YmluYXJ5X2FyZ3MiXSwKKyAgICAgICAgInVzZXJfc3R5bGVzaGVldHMiOiBrd2FyZ3MuZ2V0KCJ1
c2VyX3N0eWxlc2hlZXRzIiksCisgICAgICAgICJjYV9jZXJ0aWZpY2F0ZV9wYXRoIjoga3dhcmdz
WyJzc2xfZW52Il0uY2FfY2VydF9wYXRoKCksCisgICAgfQorCisKK2RlZiBleGVjdXRvcl9rd2Fy
Z3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRh
LAorICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CisgICAgcnYgPSBiYXNlX2V4ZWN1dG9y
X2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjYWNoZV9tYW5hZ2VyLCAqKmt3YXJncykKKyAgICBydlsicGF1c2VfYWZ0ZXJfdGVz
dCJdID0ga3dhcmdzWyJwYXVzZV9hZnRlcl90ZXN0Il0KKyAgICBpZiB0ZXN0X3R5cGUgPT0gIndk
c3BlYyI6CisgICAgICAgIHJ2WyJjYXBhYmlsaXRpZXMiXSA9IHt9CisgICAgcmV0dXJuIHJ2CisK
KworZGVmIGVudl9leHRyYXMoKiprd2FyZ3MpOgorICAgIHJldHVybiBbXQorCisKK2RlZiBlbnZf
b3B0aW9ucygpOgorICAgIHJldHVybiB7InNlcnZlcl9ob3N0IjogIjEyNy4wLjAuMSIsCisgICAg
ICAgICAgICAiYmluZF9hZGRyZXNzIjogRmFsc2UsCisgICAgICAgICAgICAidGVzdGhhcm5lc3Ny
ZXBvcnQiOiAidGVzdGhhcm5lc3NyZXBvcnQtc2Vydm8uanMiLAorICAgICAgICAgICAgInN1cHBv
cnRzX2RlYnVnZ2VyIjogVHJ1ZX0KKworCitkZWYgdXBkYXRlX3Byb3BlcnRpZXMoKToKKyAgICBy
ZXR1cm4gWyJkZWJ1ZyIsICJvcyIsICJ2ZXJzaW9uIiwgInByb2Nlc3NvciIsICJiaXRzIl0sIE5v
bmUKKworCitjbGFzcyBTZXJ2b0Jyb3dzZXIoTnVsbEJyb3dzZXIpOgorICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgZGVidWdfaW5mbz1Ob25lLCBiaW5hcnlfYXJncz1Ob25l
LAorICAgICAgICAgICAgICAgICB1c2VyX3N0eWxlc2hlZXRzPU5vbmUsIGNhX2NlcnRpZmljYXRl
X3BhdGg9Tm9uZSk6CisgICAgICAgIE51bGxCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikK
KyAgICAgICAgc2VsZi5iaW5hcnkgPSBiaW5hcnkKKyAgICAgICAgc2VsZi5kZWJ1Z19pbmZvID0g
ZGVidWdfaW5mbworICAgICAgICBzZWxmLmJpbmFyeV9hcmdzID0gYmluYXJ5X2FyZ3Mgb3IgW10K
KyAgICAgICAgc2VsZi51c2VyX3N0eWxlc2hlZXRzID0gdXNlcl9zdHlsZXNoZWV0cyBvciBbXQor
ICAgICAgICBzZWxmLmNhX2NlcnRpZmljYXRlX3BhdGggPSBjYV9jZXJ0aWZpY2F0ZV9wYXRoCisK
KyAgICBkZWYgZXhlY3V0b3JfYnJvd3NlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIEV4ZWN1dG9y
QnJvd3NlciwgeworICAgICAgICAgICAgImJpbmFyeSI6IHNlbGYuYmluYXJ5LAorICAgICAgICAg
ICAgImRlYnVnX2luZm8iOiBzZWxmLmRlYnVnX2luZm8sCisgICAgICAgICAgICAiYmluYXJ5X2Fy
Z3MiOiBzZWxmLmJpbmFyeV9hcmdzLAorICAgICAgICAgICAgInVzZXJfc3R5bGVzaGVldHMiOiBz
ZWxmLnVzZXJfc3R5bGVzaGVldHMsCisgICAgICAgICAgICAiY2FfY2VydGlmaWNhdGVfcGF0aCI6
IHNlbGYuY2FfY2VydGlmaWNhdGVfcGF0aCwKKyAgICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2Jyb3dzZXJzL3NlcnZvZHJpdmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3Nl
cnZvZHJpdmVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyZWUwMGE3YWIwZjI3YmQ5Mzg5YzI5MWMyZjAyYzg2
MGY3NTMyMWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm9k
cml2ZXIucHkKQEAgLTAsMCArMSwxNTkgQEAKK2ltcG9ydCBvcworaW1wb3J0IHNodXRpbAoraW1w
b3J0IHN1YnByb2Nlc3MKK2ltcG9ydCB0ZW1wZmlsZQorCitmcm9tIG1venByb2Nlc3MgaW1wb3J0
IFByb2Nlc3NIYW5kbGVyCisKK2Zyb20gc2VydmUuc2VydmUgaW1wb3J0IG1ha2VfaG9zdHNfZmls
ZQorCitmcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCByZXF1aXJlX2FyZywgZ2V0X2ZyZWVfcG9y
dCwgYnJvd3Nlcl9jb21tYW5kLCBFeGVjdXRvckJyb3dzZXIKK2Zyb20gLi5leGVjdXRvcnMgaW1w
b3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncworZnJvbSAuLmV4ZWN1
dG9ycy5leGVjdXRvcnNlcnZvZHJpdmVyIGltcG9ydCAoU2Vydm9XZWJEcml2ZXJUZXN0aGFybmVz
c0V4ZWN1dG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U2Vydm9XZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IpCisKK2hlcmUgPSBvcy5wYXRoLmpvaW4ob3Mu
cGF0aC5zcGxpdChfX2ZpbGVfXylbMF0pCisKK19fd3B0cnVubmVyX18gPSB7CisgICAgInByb2R1
Y3QiOiAic2Vydm9kcml2ZXIiLAorICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAorICAg
ICJicm93c2VyIjogIlNlcnZvV2ViRHJpdmVyQnJvd3NlciIsCisgICAgImV4ZWN1dG9yIjogewor
ICAgICAgICAidGVzdGhhcm5lc3MiOiAiU2Vydm9XZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9y
IiwKKyAgICAgICAgInJlZnRlc3QiOiAiU2Vydm9XZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IiLAor
ICAgIH0sCisgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwKKyAgICAiZXhl
Y3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCisgICAgImVudl9leHRyYXMiOiAiZW52
X2V4dHJhcyIsCisgICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIiwKKyAgICAidXBkYXRl
X3Byb3BlcnRpZXMiOiAidXBkYXRlX3Byb3BlcnRpZXMiLAorfQorCisKK2RlZiBjaGVja19hcmdz
KCoqa3dhcmdzKToKKyAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJiaW5hcnkiKQorCisKK2RlZiBi
cm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKToKKyAgICBy
ZXR1cm4geworICAgICAgICAiYmluYXJ5Ijoga3dhcmdzWyJiaW5hcnkiXSwKKyAgICAgICAgImRl
YnVnX2luZm8iOiBrd2FyZ3NbImRlYnVnX2luZm8iXSwKKyAgICAgICAgInVzZXJfc3R5bGVzaGVl
dHMiOiBrd2FyZ3MuZ2V0KCJ1c2VyX3N0eWxlc2hlZXRzIiksCisgICAgfQorCisKK2RlZiBleGVj
dXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5f
aW5mb19kYXRhLCAqKmt3YXJncyk6CisgICAgcnYgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0
X3R5cGUsIHNlcnZlcl9jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNo
ZV9tYW5hZ2VyLCAqKmt3YXJncykKKyAgICByZXR1cm4gcnYKKworCitkZWYgZW52X2V4dHJhcygq
Kmt3YXJncyk6CisgICAgcmV0dXJuIFtdCisKKworZGVmIGVudl9vcHRpb25zKCk6CisgICAgcmV0
dXJuIHsic2VydmVyX2hvc3QiOiAiMTI3LjAuMC4xIiwKKyAgICAgICAgICAgICJ0ZXN0aGFybmVz
c3JlcG9ydCI6ICJ0ZXN0aGFybmVzc3JlcG9ydC1zZXJ2b2RyaXZlci5qcyIsCisgICAgICAgICAg
ICAic3VwcG9ydHNfZGVidWdnZXIiOiBUcnVlfQorCisKK2RlZiB1cGRhdGVfcHJvcGVydGllcygp
OgorICAgIHJldHVybiBbImRlYnVnIiwgIm9zIiwgInZlcnNpb24iLCAicHJvY2Vzc29yIiwgImJp
dHMiXSwgTm9uZQorCisKK2RlZiB3cml0ZV9ob3N0c19maWxlKGNvbmZpZyk6CisgICAgaG9zdHNf
ZmQsIGhvc3RzX3BhdGggPSB0ZW1wZmlsZS5ta3N0ZW1wKCkKKyAgICB3aXRoIG9zLmZkb3Blbiho
b3N0c19mZCwgInciKSBhcyBmOgorICAgICAgICBmLndyaXRlKG1ha2VfaG9zdHNfZmlsZShjb25m
aWcsICIxMjcuMC4wLjEiKSkKKyAgICByZXR1cm4gaG9zdHNfcGF0aAorCisKK2NsYXNzIFNlcnZv
V2ViRHJpdmVyQnJvd3NlcihCcm93c2VyKToKKyAgICB1c2VkX3BvcnRzID0gc2V0KCkKKworICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgZGVidWdfaW5mbz1Ob25lLCB3ZWJk
cml2ZXJfaG9zdD0iMTI3LjAuMC4xIiwKKyAgICAgICAgICAgICAgICAgdXNlcl9zdHlsZXNoZWV0
cz1Ob25lKToKKyAgICAgICAgQnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIpCisgICAgICAg
IHNlbGYuYmluYXJ5ID0gYmluYXJ5CisgICAgICAgIHNlbGYud2ViZHJpdmVyX2hvc3QgPSB3ZWJk
cml2ZXJfaG9zdAorICAgICAgICBzZWxmLndlYmRyaXZlcl9wb3J0ID0gTm9uZQorICAgICAgICBz
ZWxmLnByb2MgPSBOb25lCisgICAgICAgIHNlbGYuZGVidWdfaW5mbyA9IGRlYnVnX2luZm8KKyAg
ICAgICAgc2VsZi5ob3N0c19wYXRoID0gd3JpdGVfaG9zdHNfZmlsZSgpCisgICAgICAgIHNlbGYu
Y29tbWFuZCA9IE5vbmUKKyAgICAgICAgc2VsZi51c2VyX3N0eWxlc2hlZXRzID0gdXNlcl9zdHls
ZXNoZWV0cyBpZiB1c2VyX3N0eWxlc2hlZXRzIGVsc2UgW10KKworICAgIGRlZiBzdGFydChzZWxm
LCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYud2ViZHJpdmVyX3BvcnQgPSBnZXRfZnJlZV9wb3J0
KDQ0NDQsIGV4Y2x1ZGU9c2VsZi51c2VkX3BvcnRzKQorICAgICAgICBzZWxmLnVzZWRfcG9ydHMu
YWRkKHNlbGYud2ViZHJpdmVyX3BvcnQpCisKKyAgICAgICAgZW52ID0gb3MuZW52aXJvbi5jb3B5
KCkKKyAgICAgICAgZW52WyJIT1NUX0ZJTEUiXSA9IHNlbGYuaG9zdHNfcGF0aAorICAgICAgICBl
bnZbIlJVU1RfQkFDS1RSQUNFIl0gPSAiMSIKKworICAgICAgICBkZWJ1Z19hcmdzLCBjb21tYW5k
ID0gYnJvd3Nlcl9jb21tYW5kKAorICAgICAgICAgICAgc2VsZi5iaW5hcnksCisgICAgICAgICAg
ICBbCisgICAgICAgICAgICAgICAgIi0taGFyZC1mYWlsIiwKKyAgICAgICAgICAgICAgICAiLS13
ZWJkcml2ZXIiLCBzdHIoc2VsZi53ZWJkcml2ZXJfcG9ydCksCisgICAgICAgICAgICAgICAgImFi
b3V0OmJsYW5rIiwKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICBzZWxmLmRlYnVnX2luZm8K
KyAgICAgICAgKQorCisgICAgICAgIGZvciBzdHlsZXNoZWV0IGluIHNlbGYudXNlcl9zdHlsZXNo
ZWV0czoKKyAgICAgICAgICAgIGNvbW1hbmQgKz0gWyItLXVzZXItc3R5bGVzaGVldCIsIHN0eWxl
c2hlZXRdCisKKyAgICAgICAgc2VsZi5jb21tYW5kID0gY29tbWFuZAorCisgICAgICAgIHNlbGYu
Y29tbWFuZCA9IGRlYnVnX2FyZ3MgKyBzZWxmLmNvbW1hbmQKKworICAgICAgICBpZiBub3Qgc2Vs
Zi5kZWJ1Z19pbmZvIG9yIG5vdCBzZWxmLmRlYnVnX2luZm8uaW50ZXJhY3RpdmU6CisgICAgICAg
ICAgICBzZWxmLnByb2MgPSBQcm9jZXNzSGFuZGxlcihzZWxmLmNvbW1hbmQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzT3V0cHV0TGluZT1bc2VsZi5vbl9v
dXRwdXRdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52PWVudiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JlT3V0cHV0PUZhbHNl
KQorICAgICAgICAgICAgc2VsZi5wcm9jLnJ1bigpCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICBzZWxmLnByb2MgPSBzdWJwcm9jZXNzLlBvcGVuKHNlbGYuY29tbWFuZCwgZW52PWVudikKKwor
ICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiU2Vydm8gU3RhcnRlZCIpCisKKyAgICBkZWYgc3Rv
cChzZWxmLCBmb3JjZT1GYWxzZSk6CisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJTdG9wcGlu
ZyBicm93c2VyIikKKyAgICAgICAgaWYgc2VsZi5wcm9jIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYucHJvYy5raWxsKCkKKyAgICAgICAgICAgIGV4
Y2VwdCBPU0Vycm9yOgorICAgICAgICAgICAgICAgICMgVGhpcyBjYW4gaGFwcGVuIG9uIFdpbmRv
d3MgaWYgdGhlIHByb2Nlc3MgaXMgYWxyZWFkeSBkZWFkCisgICAgICAgICAgICAgICAgcGFzcwor
CisgICAgZGVmIHBpZChzZWxmKToKKyAgICAgICAgaWYgc2VsZi5wcm9jIGlzIE5vbmU6CisgICAg
ICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBz
ZWxmLnByb2MucGlkCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAg
IHJldHVybiBOb25lCisKKyAgICBkZWYgb25fb3V0cHV0KHNlbGYsIGxpbmUpOgorICAgICAgICAi
IiJXcml0ZSBhIGxpbmUgb2Ygb3V0cHV0IGZyb20gdGhlIHByb2Nlc3MgdG8gdGhlIGxvZyIiIgor
ICAgICAgICBzZWxmLmxvZ2dlci5wcm9jZXNzX291dHB1dChzZWxmLnBpZCgpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLmRlY29kZSgidXRmOCIsICJyZXBsYWNlIiks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ9IiAiLmpvaW4oc2Vs
Zi5jb21tYW5kKSkKKworICAgIGRlZiBpc19hbGl2ZShzZWxmKToKKyAgICAgICAgaWYgc2VsZi5y
dW5uZXI6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5ydW5uZXIuaXNfcnVubmluZygpCisgICAg
ICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIGNsZWFudXAoc2VsZik6CisgICAgICAgIHNlbGYu
c3RvcCgpCisgICAgICAgIHNodXRpbC5ybXRyZWUob3MucGF0aC5kaXJuYW1lKHNlbGYuaG9zdHNf
ZmlsZSkpCisKKyAgICBkZWYgZXhlY3V0b3JfYnJvd3NlcihzZWxmKToKKyAgICAgICAgYXNzZXJ0
IHNlbGYud2ViZHJpdmVyX3BvcnQgaXMgbm90IE5vbmUKKyAgICAgICAgcmV0dXJuIEV4ZWN1dG9y
QnJvd3NlciwgeyJ3ZWJkcml2ZXJfaG9zdCI6IHNlbGYud2ViZHJpdmVyX2hvc3QsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAid2ViZHJpdmVyX3BvcnQiOiBzZWxmLndlYmRyaXZl
cl9wb3J0fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljZTcx
ZWRiMmNjNjJkMDBiNTdlMzFhNjNmMDYyMzI2NGZhYWQwYTkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvYnJvd3NlcnMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyOSBAQAorVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0lu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczov
L2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cworCitUaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmls
ZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jy
b3dzZXJzL2Jhc2UucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lLnB5CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2Jyb3dzZXJzL2Nocm9tZV9hbmRyb2lkLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJz
L2VkZ2UucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZmlyZWZveC5weQorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9icm93c2Vycy9pZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9vcGVyYS5weQorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9icm93c2Vycy9zYWZhcmkucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2F1Y2Uu
cHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm8ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3Nl
cnMvc2Vydm9kcml2ZXIucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0LnB5CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0LnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jy
b3dzZXJzL3dlYmtpdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDk1ZDQzNTVkNWExMWMyMGQxNzRhNTA4ZGEy
YjM5N2UyOWRhMzM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3dl
YmtpdC5weQpAQCAtMCwwICsxLDk4IEBACitmcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVj
dXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCitmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRv
cl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0
b3JzZWxlbml1bSBpbXBvcnQgKFNlbGVuaXVtVGVzdGhhcm5lc3NFeGVjdXRvciwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVuaXVtUmVmVGVzdEV4ZWN1dG9y
KQorZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcndlYmtpdCBpbXBvcnQgV2ViS2l0RHJpdmVyV2Rz
cGVjRXhlY3V0b3IKK2Zyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBXZWJLaXREcml2ZXJT
ZXJ2ZXIKKworCitfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogIndlYmtpdCIsCisgICAgICAg
ICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAorICAgICAgICAgICAgICAgICAi
YnJvd3NlciI6ICJXZWJLaXRCcm93c2VyIiwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dh
cmdzIjogImJyb3dzZXJfa3dhcmdzIiwKKyAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0
ZXN0aGFybmVzcyI6ICJTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3IiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiU2VsZW5pdW1SZWZUZXN0RXhlY3V0b3IiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJXZWJLaXREcml2ZXJXZHNw
ZWNFeGVjdXRvciJ9LAorICAgICAgICAgICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1
dG9yX2t3YXJncyIsCisgICAgICAgICAgICAgICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMi
LAorICAgICAgICAgICAgICAgICAiZW52X29wdGlvbnMiOiAiZW52X29wdGlvbnMifQorCisKK2Rl
ZiBjaGVja19hcmdzKCoqa3dhcmdzKToKKyAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJiaW5hcnki
KQorICAgIHJlcXVpcmVfYXJnKGt3YXJncywgIndlYmRyaXZlcl9iaW5hcnkiKQorICAgIHJlcXVp
cmVfYXJnKGt3YXJncywgIndlYmtpdF9wb3J0IikKKworCitkZWYgYnJvd3Nlcl9rd2FyZ3ModGVz
dF90eXBlLCBydW5faW5mb19kYXRhLCAqKmt3YXJncyk6CisgICAgcmV0dXJuIHsiYmluYXJ5Ijog
a3dhcmdzWyJiaW5hcnkiXSwKKyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYmluYXJ5Ijoga3dhcmdz
WyJ3ZWJkcml2ZXJfYmluYXJ5Il0sCisgICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2Fy
Z3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpfQorCisKK2RlZiBjYXBhYmlsaXRpZXNfZm9yX3BvcnQo
d2Via2l0X3BvcnQsIGJpbmFyeSwgYmluYXJ5X2FyZ3MpOgorICAgIGZyb20gc2VsZW5pdW0ud2Vi
ZHJpdmVyIGltcG9ydCBEZXNpcmVkQ2FwYWJpbGl0aWVzCisKKyAgICBpZiB3ZWJraXRfcG9ydCA9
PSAiZ3RrIjoKKyAgICAgICAgY2FwYWJpbGl0aWVzID0gZGljdChEZXNpcmVkQ2FwYWJpbGl0aWVz
LldFQktJVEdUSy5jb3B5KCkpCisgICAgICAgIGNhcGFiaWxpdGllc1sid2Via2l0Z3RrOmJyb3dz
ZXJPcHRpb25zIl0gPSB7CisgICAgICAgICAgICAiYmluYXJ5IjogYmluYXJ5LAorICAgICAgICAg
ICAgImFyZ3MiOiBiaW5hcnlfYXJncworICAgICAgICB9CisgICAgICAgIHJldHVybiBjYXBhYmls
aXRpZXMKKworICAgIHJldHVybiB7fQorCisKK2RlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBl
LCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorICAgICAgICAg
ICAgICAgICAgICAqKmt3YXJncyk6CisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRv
cl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIsICoqa3dhcmdzKQorICAgIGV4ZWN1
dG9yX2t3YXJnc1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0gVHJ1ZQorICAgIGNhcGFiaWxpdGllcyA9
IGNhcGFiaWxpdGllc19mb3JfcG9ydChrd2FyZ3NbIndlYmtpdF9wb3J0Il0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1siYmluYXJ5Il0sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJncy5nZXQoImJpbmFyeV9hcmdz
IiwgW10pKQorICAgIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl0gPSBjYXBhYmlsaXRp
ZXMKKyAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCisKKworZGVmIGVudl9leHRyYXMoKiprd2Fy
Z3MpOgorICAgIHJldHVybiBbXQorCisKK2RlZiBlbnZfb3B0aW9ucygpOgorICAgIHJldHVybiB7
fQorCisKK2NsYXNzIFdlYktpdEJyb3dzZXIoQnJvd3Nlcik6CisgICAgIiIiR2VuZXJpYyBXZWJL
aXQgYnJvd3NlciBpcyBiYWNrZWQgYnkgV2ViS2l0J3MgV2ViRHJpdmVyIGltcGxlbWVudGF0aW9u
LAorICAgIHdoaWNoIGlzIHN1cHBsaWVkIHRocm91Z2ggYGB3cHRydW5uZXIud2ViZHJpdmVyLldl
YktpdERyaXZlclNlcnZlcmBgLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxv
Z2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJfYmluYXJ5PU5vbmUsCisgICAgICAgICAgICAgICAgIHdl
YmRyaXZlcl9hcmdzPU5vbmUpOgorICAgICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dl
cikKKyAgICAgICAgc2VsZi5iaW5hcnkgPSBiaW5hcnkKKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBX
ZWJLaXREcml2ZXJTZXJ2ZXIoc2VsZi5sb2dnZXIsIGJpbmFyeT13ZWJkcml2ZXJfYmluYXJ5LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPXdlYmRyaXZlcl9h
cmdzKQorCisgICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdzKToKKyAgICAgICAgc2VsZi5zZXJ2
ZXIuc3RhcnQoYmxvY2s9RmFsc2UpCisKKyAgICBkZWYgc3RvcChzZWxmLCBmb3JjZT1GYWxzZSk6
CisgICAgICAgIHNlbGYuc2VydmVyLnN0b3AoZm9yY2U9Zm9yY2UpCisKKyAgICBkZWYgcGlkKHNl
bGYpOgorICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIucGlkCisKKyAgICBkZWYgaXNfYWxpdmUo
c2VsZik6CisgICAgICAgICMgVE9ETyhhdG8pOiBUaGlzIG9ubHkgaW5kaWNhdGVzIHRoZSBkcml2
ZXIgaXMgYWxpdmUsCisgICAgICAgICMgYW5kIGRvZXNuJ3Qgc2F5IGFueXRoaW5nIGFib3V0IHdo
ZXRoZXIgYSBicm93c2VyIHNlc3Npb24KKyAgICAgICAgIyBpcyBhY3RpdmUuCisgICAgICAgIHJl
dHVybiBzZWxmLnNlcnZlci5pc19hbGl2ZSgpCisKKyAgICBkZWYgY2xlYW51cChzZWxmKToKKyAg
ICAgICAgc2VsZi5zdG9wKCkKKworICAgIGRlZiBleGVjdXRvcl9icm93c2VyKHNlbGYpOgorICAg
ICAgICByZXR1cm4gRXhlY3V0b3JCcm93c2VyLCB7IndlYmRyaXZlcl91cmwiOiBzZWxmLnNlcnZl
ci51cmx9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvY29uZmlnLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2NvbmZpZy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YmQzZjQ2N2YzZWRhNWY1NjRjYTVjNTE1NDBmMjNiMjUy
MWEyYTU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2NvbmZpZy5weQpAQCAtMCww
ICsxLDYwIEBACitpbXBvcnQgQ29uZmlnUGFyc2VyCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKK2Zy
b20gY29sbGVjdGlvbnMgaW1wb3J0IE9yZGVyZWREaWN0CisKK2hlcmUgPSBvcy5wYXRoLnNwbGl0
KF9fZmlsZV9fKVswXQorCitjbGFzcyBDb25maWdEaWN0KGRpY3QpOgorICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBiYXNlX3BhdGgsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYuYmFzZV9w
YXRoID0gYmFzZV9wYXRoCisgICAgICAgIGRpY3QuX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dh
cmdzKQorCisgICAgZGVmIGdldF9wYXRoKHNlbGYsIGtleSwgZGVmYXVsdD1Ob25lKToKKyAgICAg
ICAgaWYga2V5IG5vdCBpbiBzZWxmOgorICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHQKKyAgICAg
ICAgcGF0aCA9IHNlbGZba2V5XQorICAgICAgICBvcy5wYXRoLmV4cGFuZHVzZXIocGF0aCkKKyAg
ICAgICAgcmV0dXJuIG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oc2VsZi5iYXNlX3BhdGgs
IHBhdGgpKQorCitkZWYgcmVhZChjb25maWdfcGF0aCk6CisgICAgY29uZmlnX3BhdGggPSBvcy5w
YXRoLmFic3BhdGgoY29uZmlnX3BhdGgpCisgICAgY29uZmlnX3Jvb3QgPSBvcy5wYXRoLnNwbGl0
KGNvbmZpZ19wYXRoKVswXQorICAgIHBhcnNlciA9IENvbmZpZ1BhcnNlci5TYWZlQ29uZmlnUGFy
c2VyKCkKKyAgICBzdWNjZXNzID0gcGFyc2VyLnJlYWQoY29uZmlnX3BhdGgpCisgICAgYXNzZXJ0
IGNvbmZpZ19wYXRoIGluIHN1Y2Nlc3MsIHN1Y2Nlc3MKKworICAgIHN1Ym5zID0geyJwd2QiOiBv
cy5wYXRoLmFic3BhdGgob3MucGF0aC5jdXJkaXIpfQorCisgICAgcnYgPSBPcmRlcmVkRGljdCgp
CisgICAgZm9yIHNlY3Rpb24gaW4gcGFyc2VyLnNlY3Rpb25zKCk6CisgICAgICAgIHJ2W3NlY3Rp
b25dID0gQ29uZmlnRGljdChjb25maWdfcm9vdCkKKyAgICAgICAgZm9yIGtleSBpbiBwYXJzZXIu
b3B0aW9ucyhzZWN0aW9uKToKKyAgICAgICAgICAgIHJ2W3NlY3Rpb25dW2tleV0gPSBwYXJzZXIu
Z2V0KHNlY3Rpb24sIGtleSwgRmFsc2UsIHN1Ym5zKQorCisgICAgcmV0dXJuIHJ2CisKK2RlZiBw
YXRoKGFyZ3Y9Tm9uZSk6CisgICAgaWYgYXJndiBpcyBOb25lOgorICAgICAgICBhcmd2ID0gW10K
KyAgICBwYXRoID0gTm9uZQorCisgICAgZm9yIGksIGFyZyBpbiBlbnVtZXJhdGUoYXJndik6Cisg
ICAgICAgIGlmIGFyZyA9PSAiLS1jb25maWciOgorICAgICAgICAgICAgaWYgaSArIDEgPCBsZW4o
YXJndik6CisgICAgICAgICAgICAgICAgcGF0aCA9IGFyZ3ZbaSArIDFdCisgICAgICAgIGVsaWYg
YXJnLnN0YXJ0c3dpdGgoIi0tY29uZmlnPSIpOgorICAgICAgICAgICAgcGF0aCA9IGFyZy5zcGxp
dCgiPSIsIDEpWzFdCisgICAgICAgIGlmIHBhdGggaXMgbm90IE5vbmU6CisgICAgICAgICAgICBi
cmVhaworCisgICAgaWYgcGF0aCBpcyBOb25lOgorICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cygi
d3B0cnVubmVyLmluaSIpOgorICAgICAgICAgICAgcGF0aCA9IG9zLnBhdGguYWJzcGF0aCgid3B0
cnVubmVyLmluaSIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwYXRoID0gb3MucGF0aC5q
b2luKGhlcmUsICIuLiIsICJ3cHRydW5uZXIuZGVmYXVsdC5pbmkiKQorCisgICAgcmV0dXJuIG9z
LnBhdGguYWJzcGF0aChwYXRoKQorCitkZWYgbG9hZCgpOgorICAgIHJldHVybiByZWFkKHBhdGgo
c3lzLmFyZ3YpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Vudmlyb25tZW50LnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Vudmlyb25tZW50LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1MzkxOTk3OGI4YjY3YjczYWM0
YWQ3NGYxZGZmZDAxMTYwNjcxMTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZW52
aXJvbm1lbnQucHkKQEAgLTAsMCArMSwyNTcgQEAKK2ltcG9ydCBqc29uCitpbXBvcnQgb3MKK2lt
cG9ydCBtdWx0aXByb2Nlc3NpbmcKK2ltcG9ydCBzaWduYWwKK2ltcG9ydCBzb2NrZXQKK2ltcG9y
dCBzeXMKK2ltcG9ydCB0aW1lCisKK2Zyb20gbW96bG9nIGltcG9ydCBnZXRfZGVmYXVsdF9sb2dn
ZXIsIGhhbmRsZXJzLCBwcm94eQorCitmcm9tIHdwdGxvZ2dpbmcgaW1wb3J0IExvZ0xldmVsUmV3
cml0ZXIKK2Zyb20gd3B0c2VydmUuaGFuZGxlcnMgaW1wb3J0IFN0cmluZ0hhbmRsZXIKKworaGVy
ZSA9IG9zLnBhdGguc3BsaXQoX19maWxlX18pWzBdCityZXBvX3Jvb3QgPSBvcy5wYXRoLmFic3Bh
dGgob3MucGF0aC5qb2luKGhlcmUsIG9zLnBhcmRpciwgb3MucGFyZGlyLCBvcy5wYXJkaXIpKQor
CitzZXJ2ZSA9IE5vbmUKK3NzbHV0aWxzID0gTm9uZQorCisKK2RlZiBkb19kZWxheWVkX2ltcG9y
dHMobG9nZ2VyLCB0ZXN0X3BhdGhzKToKKyAgICBnbG9iYWwgc2VydmUsIHNzbHV0aWxzCisKKyAg
ICBzZXJ2ZV9yb290ID0gc2VydmVfcGF0aCh0ZXN0X3BhdGhzKQorICAgIHN5cy5wYXRoLmluc2Vy
dCgwLCBzZXJ2ZV9yb290KQorCisgICAgZmFpbGVkID0gW10KKworICAgIHRyeToKKyAgICAgICAg
ZnJvbSB0b29scy5zZXJ2ZSBpbXBvcnQgc2VydmUKKyAgICBleGNlcHQgSW1wb3J0RXJyb3I6Cisg
ICAgICAgIGZhaWxlZC5hcHBlbmQoInNlcnZlIikKKworICAgIHRyeToKKyAgICAgICAgaW1wb3J0
IHNzbHV0aWxzCisgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICBmYWlsZWQuYXBwZW5k
KCJzc2x1dGlscyIpCisKKyAgICBpZiBmYWlsZWQ6CisgICAgICAgIGxvZ2dlci5jcml0aWNhbCgK
KyAgICAgICAgICAgICJGYWlsZWQgdG8gaW1wb3J0ICVzLiBFbnN1cmUgdGhhdCB0ZXN0cyBwYXRo
ICVzIGNvbnRhaW5zIHdlYi1wbGF0Zm9ybS10ZXN0cyIgJQorICAgICAgICAgICAgKCIsICIuam9p
bihmYWlsZWQpLCBzZXJ2ZV9yb290KSkKKyAgICAgICAgc3lzLmV4aXQoMSkKKworCitkZWYgc2Vy
dmVfcGF0aCh0ZXN0X3BhdGhzKToKKyAgICByZXR1cm4gdGVzdF9wYXRoc1siLyJdWyJ0ZXN0c19w
YXRoIl0KKworCitkZWYgZ2V0X3NzbF9rd2FyZ3MoKiprd2FyZ3MpOgorICAgIGlmIGt3YXJnc1si
c3NsX3R5cGUiXSA9PSAib3BlbnNzbCI6CisgICAgICAgIGFyZ3MgPSB7Im9wZW5zc2xfYmluYXJ5
Ijoga3dhcmdzWyJvcGVuc3NsX2JpbmFyeSJdfQorICAgIGVsaWYga3dhcmdzWyJzc2xfdHlwZSJd
ID09ICJwcmVnZW5lcmF0ZWQiOgorICAgICAgICBhcmdzID0geyJob3N0X2tleV9wYXRoIjoga3dh
cmdzWyJob3N0X2tleV9wYXRoIl0sCisgICAgICAgICAgICAgICAgImhvc3RfY2VydF9wYXRoIjog
a3dhcmdzWyJob3N0X2NlcnRfcGF0aCJdLAorICAgICAgICAgICAgICAgICJjYV9jZXJ0X3BhdGgi
OiBrd2FyZ3NbImNhX2NlcnRfcGF0aCJdfQorICAgIGVsc2U6CisgICAgICAgIGFyZ3MgPSB7fQor
ICAgIHJldHVybiBhcmdzCisKKworZGVmIHNzbF9lbnYobG9nZ2VyLCAqKmt3YXJncyk6CisgICAg
c3NsX2Vudl9jbHMgPSBzc2x1dGlscy5lbnZpcm9ubWVudHNba3dhcmdzWyJzc2xfdHlwZSJdXQor
ICAgIHJldHVybiBzc2xfZW52X2Nscyhsb2dnZXIsICoqZ2V0X3NzbF9rd2FyZ3MoKiprd2FyZ3Mp
KQorCisKK2NsYXNzIFRlc3RFbnZpcm9ubWVudEVycm9yKEV4Y2VwdGlvbik6CisgICAgcGFzcwor
CisKK2NsYXNzIFRlc3RFbnZpcm9ubWVudChvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxm
LCB0ZXN0X3BhdGhzLCBzc2xfZW52LCBwYXVzZV9hZnRlcl90ZXN0LCBkZWJ1Z19pbmZvLCBvcHRp
b25zLCBlbnZfZXh0cmFzKToKKyAgICAgICAgIiIiQ29udGV4dCBtYW5hZ2VyIHRoYXQgb3ducyB0
aGUgdGVzdCBlbnZpcm9ubWVudCBpLmUuIHRoZSBodHRwIGFuZAorICAgICAgICB3ZWJzb2NrZXRz
IHNlcnZlcnMiIiIKKyAgICAgICAgc2VsZi50ZXN0X3BhdGhzID0gdGVzdF9wYXRocworICAgICAg
ICBzZWxmLnNzbF9lbnYgPSBzc2xfZW52CisgICAgICAgIHNlbGYuc2VydmVyID0gTm9uZQorICAg
ICAgICBzZWxmLmNvbmZpZyA9IE5vbmUKKyAgICAgICAgc2VsZi5wYXVzZV9hZnRlcl90ZXN0ID0g
cGF1c2VfYWZ0ZXJfdGVzdAorICAgICAgICBzZWxmLnRlc3Rfc2VydmVyX3BvcnQgPSBvcHRpb25z
LnBvcCgidGVzdF9zZXJ2ZXJfcG9ydCIsIFRydWUpCisgICAgICAgIHNlbGYuZGVidWdfaW5mbyA9
IGRlYnVnX2luZm8KKyAgICAgICAgc2VsZi5vcHRpb25zID0gb3B0aW9ucyBpZiBvcHRpb25zIGlz
IG5vdCBOb25lIGVsc2Uge30KKworICAgICAgICBzZWxmLmNhY2hlX21hbmFnZXIgPSBtdWx0aXBy
b2Nlc3NpbmcuTWFuYWdlcigpCisgICAgICAgIHNlbGYuc3Rhc2ggPSBzZXJ2ZS5zdGFzaC5TdGFz
aFNlcnZlcigpCisgICAgICAgIHNlbGYuZW52X2V4dHJhcyA9IGVudl9leHRyYXMKKyAgICAgICAg
c2VsZi5lbnZfZXh0cmFzX2NtcyA9IE5vbmUKKworCisgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToK
KyAgICAgICAgc2VsZi5zdGFzaC5fX2VudGVyX18oKQorICAgICAgICBzZWxmLnNzbF9lbnYuX19l
bnRlcl9fKCkKKyAgICAgICAgc2VsZi5jYWNoZV9tYW5hZ2VyLl9fZW50ZXJfXygpCisKKyAgICAg
ICAgc2VsZi5jb25maWcgPSBzZWxmLmxvYWRfY29uZmlnKCkKKyAgICAgICAgc2VsZi5zZXR1cF9z
ZXJ2ZXJfbG9nZ2luZygpCisgICAgICAgIHBvcnRzID0gc2VydmUuZ2V0X3BvcnRzKHNlbGYuY29u
ZmlnLCBzZWxmLnNzbF9lbnYpCisgICAgICAgIHNlbGYuY29uZmlnID0gc2VydmUubm9ybWFsaXNl
X2NvbmZpZyhzZWxmLmNvbmZpZywgcG9ydHMpCisKKyAgICAgICAgYXNzZXJ0IHNlbGYuZW52X2V4
dHJhc19jbXMgaXMgTm9uZSwgKAorICAgICAgICAgICAgIkEgVGVzdEVudmlyb25tZW50IG9iamVj
dCBjYW5ub3QgYmUgbmVzdGVkIikKKworICAgICAgICBzZWxmLmVudl9leHRyYXNfY21zID0gW10K
KworICAgICAgICBmb3IgZW52IGluIHNlbGYuZW52X2V4dHJhczoKKyAgICAgICAgICAgIGNtID0g
ZW52KHNlbGYub3B0aW9ucywgc2VsZi5jb25maWcpCisgICAgICAgICAgICBjbS5fX2VudGVyX18o
KQorICAgICAgICAgICAgc2VsZi5lbnZfZXh0cmFzX2Ntcy5hcHBlbmQoY20pCisKKyAgICAgICAg
c2VsZi5zZXJ2ZXJzID0gc2VydmUuc3RhcnQoc2VsZi5jb25maWcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuc3NsX2VudiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5nZXRfcm91dGVzKCkpCisgICAgICAgIGlmIHNlbGYub3B0aW9ucy5n
ZXQoInN1cHBvcnRzX2RlYnVnZ2VyIikgYW5kIHNlbGYuZGVidWdfaW5mbyBhbmQgc2VsZi5kZWJ1
Z19pbmZvLmludGVyYWN0aXZlOgorICAgICAgICAgICAgc2VsZi5pZ25vcmVfaW50ZXJydXB0cygp
CisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgX19leGl0X18oc2VsZiwgZXhjX3R5cGUs
IGV4Y192YWwsIGV4Y190Yik6CisgICAgICAgIHNlbGYucHJvY2Vzc19pbnRlcnJ1cHRzKCkKKwor
ICAgICAgICBmb3Igc2NoZW1lLCBzZXJ2ZXJzIGluIHNlbGYuc2VydmVycy5pdGVyaXRlbXMoKToK
KyAgICAgICAgICAgIGZvciBwb3J0LCBzZXJ2ZXIgaW4gc2VydmVyczoKKyAgICAgICAgICAgICAg
ICBzZXJ2ZXIua2lsbCgpCisgICAgICAgIGZvciBjbSBpbiBzZWxmLmVudl9leHRyYXNfY21zOgor
ICAgICAgICAgICAgY20uX19leGl0X18oZXhjX3R5cGUsIGV4Y192YWwsIGV4Y190YikKKworICAg
ICAgICBzZWxmLmVudl9leHRyYXNfY21zID0gTm9uZQorCisgICAgICAgIHNlbGYuY2FjaGVfbWFu
YWdlci5fX2V4aXRfXyhleGNfdHlwZSwgZXhjX3ZhbCwgZXhjX3RiKQorICAgICAgICBzZWxmLnNz
bF9lbnYuX19leGl0X18oZXhjX3R5cGUsIGV4Y192YWwsIGV4Y190YikKKyAgICAgICAgc2VsZi5z
dGFzaC5fX2V4aXRfXygpCisKKyAgICBkZWYgaWdub3JlX2ludGVycnVwdHMoc2VsZik6CisgICAg
ICAgIHNpZ25hbC5zaWduYWwoc2lnbmFsLlNJR0lOVCwgc2lnbmFsLlNJR19JR04pCisKKyAgICBk
ZWYgcHJvY2Vzc19pbnRlcnJ1cHRzKHNlbGYpOgorICAgICAgICBzaWduYWwuc2lnbmFsKHNpZ25h
bC5TSUdJTlQsIHNpZ25hbC5TSUdfREZMKQorCisgICAgZGVmIGxvYWRfY29uZmlnKHNlbGYpOgor
ICAgICAgICBkZWZhdWx0X2NvbmZpZ19wYXRoID0gb3MucGF0aC5qb2luKHNlcnZlX3BhdGgoc2Vs
Zi50ZXN0X3BhdGhzKSwgImNvbmZpZy5kZWZhdWx0Lmpzb24iKQorICAgICAgICBsb2NhbF9jb25m
aWcgPSB7CisgICAgICAgICAgICAicG9ydHMiOiB7CisgICAgICAgICAgICAgICAgImh0dHAiOiBb
ODAwMCwgODAwMV0sCisgICAgICAgICAgICAgICAgImh0dHBzIjogWzg0NDNdLAorICAgICAgICAg
ICAgICAgICJ3cyI6IFs4ODg4XQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICJjaGVja19z
dWJkb21haW5zIjogRmFsc2UsCisgICAgICAgICAgICAic3NsIjoge30KKyAgICAgICAgfQorCisg
ICAgICAgIGlmICJicm93c2VyX2hvc3QiIGluIHNlbGYub3B0aW9uczoKKyAgICAgICAgICAgIGxv
Y2FsX2NvbmZpZ1siYnJvd3Nlcl9ob3N0Il0gPSBzZWxmLm9wdGlvbnNbImJyb3dzZXJfaG9zdCJd
CisKKyAgICAgICAgaWYgImJpbmRfYWRkcmVzcyIgaW4gc2VsZi5vcHRpb25zOgorICAgICAgICAg
ICAgbG9jYWxfY29uZmlnWyJiaW5kX2FkZHJlc3MiXSA9IHNlbGYub3B0aW9uc1siYmluZF9hZGRy
ZXNzIl0KKworICAgICAgICB3aXRoIG9wZW4oZGVmYXVsdF9jb25maWdfcGF0aCkgYXMgZjoKKyAg
ICAgICAgICAgIGRlZmF1bHRfY29uZmlnID0ganNvbi5sb2FkKGYpCisKKyAgICAgICAgbG9jYWxf
Y29uZmlnWyJzZXJ2ZXJfaG9zdCJdID0gc2VsZi5vcHRpb25zLmdldCgic2VydmVyX2hvc3QiLCBO
b25lKQorICAgICAgICBsb2NhbF9jb25maWdbInNzbCJdWyJlbmNyeXB0X2FmdGVyX2Nvbm5lY3Qi
XSA9IHNlbGYub3B0aW9ucy5nZXQoImVuY3J5cHRfYWZ0ZXJfY29ubmVjdCIsIEZhbHNlKQorCisg
ICAgICAgIGNvbmZpZyA9IHNlcnZlLm1lcmdlX2pzb24oZGVmYXVsdF9jb25maWcsIGxvY2FsX2Nv
bmZpZykKKyAgICAgICAgY29uZmlnWyJkb2Nfcm9vdCJdID0gc2VydmVfcGF0aChzZWxmLnRlc3Rf
cGF0aHMpCisKKyAgICAgICAgaWYgbm90IHNlbGYuc3NsX2Vudi5zc2xfZW5hYmxlZDoKKyAgICAg
ICAgICAgIGNvbmZpZ1sicG9ydHMiXVsiaHR0cHMiXSA9IFtOb25lXQorCisgICAgICAgIGhvc3Qg
PSBjb25maWdbImJyb3dzZXJfaG9zdCJdCisgICAgICAgIGhvc3RzID0gW2hvc3RdCisgICAgICAg
IGhvc3RzLmV4dGVuZCgiJXMuJXMiICUgKGl0ZW1bMF0sIGhvc3QpIGZvciBpdGVtIGluIHNlcnZl
LmdldF9zdWJkb21haW5zKGhvc3QpLnZhbHVlcygpKQorICAgICAgICBrZXlfZmlsZSwgY2VydGlm
aWNhdGUgPSBzZWxmLnNzbF9lbnYuaG9zdF9jZXJ0X3BhdGgoaG9zdHMpCisKKyAgICAgICAgY29u
ZmlnWyJrZXlfZmlsZSJdID0ga2V5X2ZpbGUKKyAgICAgICAgY29uZmlnWyJjZXJ0aWZpY2F0ZSJd
ID0gY2VydGlmaWNhdGUKKworICAgICAgICBzZXJ2ZS5zZXRfY29tcHV0ZWRfZGVmYXVsdHMoY29u
ZmlnKQorCisgICAgICAgIHJldHVybiBjb25maWcKKworICAgIGRlZiBzZXR1cF9zZXJ2ZXJfbG9n
Z2luZyhzZWxmKToKKyAgICAgICAgc2VydmVyX2xvZ2dlciA9IGdldF9kZWZhdWx0X2xvZ2dlcihj
b21wb25lbnQ9IndwdHNlcnZlIikKKyAgICAgICAgYXNzZXJ0IHNlcnZlcl9sb2dnZXIgaXMgbm90
IE5vbmUKKyAgICAgICAgbG9nX2ZpbHRlciA9IGhhbmRsZXJzLkxvZ0xldmVsRmlsdGVyKGxhbWJk
YSB4OngsICJpbmZvIikKKyAgICAgICAgIyBEb3duZ3JhZGUgZXJyb3JzIHRvIHdhcm5pbmdzIGZv
ciB0aGUgc2VydmVyCisgICAgICAgIGxvZ19maWx0ZXIgPSBMb2dMZXZlbFJld3JpdGVyKGxvZ19m
aWx0ZXIsIFsiZXJyb3IiXSwgIndhcm5pbmciKQorICAgICAgICBzZXJ2ZXJfbG9nZ2VyLmNvbXBv
bmVudF9maWx0ZXIgPSBsb2dfZmlsdGVyCisKKyAgICAgICAgc2VydmVyX2xvZ2dlciA9IHByb3h5
LlF1ZXVlZFByb3h5TG9nZ2VyKHNlcnZlcl9sb2dnZXIpCisKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgI1NldCBhcyB0aGUgZGVmYXVsdCBsb2dnZXIgZm9yIHdwdHNlcnZlCisgICAgICAgICAg
ICBzZXJ2ZS5zZXRfbG9nZ2VyKHNlcnZlcl9sb2dnZXIpCisgICAgICAgICAgICBzZXJ2ZS5sb2dn
ZXIgPSBzZXJ2ZXJfbG9nZ2VyCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAg
ICAjIFRoaXMgaGFwcGVucyBpZiBsb2dnaW5nIGhhcyBhbHJlYWR5IGJlZW4gc2V0IHVwIGZvciB3
cHRzZXJ2ZQorICAgICAgICAgICAgcGFzcworCisgICAgZGVmIGdldF9yb3V0ZXMoc2VsZik6Cisg
ICAgICAgIHJvdXRlX2J1aWxkZXIgPSBzZXJ2ZS5Sb3V0ZXNCdWlsZGVyKCkKKworICAgICAgICBm
b3IgcGF0aCwgZm9ybWF0X2FyZ3MsIGNvbnRlbnRfdHlwZSwgcm91dGUgaW4gWworICAgICAgICAg
ICAgICAgICgidGVzdGhhcm5lc3NfcnVubmVyLmh0bWwiLCB7fSwgInRleHQvaHRtbCIsICIvdGVz
dGhhcm5lc3NfcnVubmVyLmh0bWwiKSwKKyAgICAgICAgICAgICAgICAoc2VsZi5vcHRpb25zLmdl
dCgidGVzdGhhcm5lc3NyZXBvcnQiLCAidGVzdGhhcm5lc3NyZXBvcnQuanMiKSwKKyAgICAgICAg
ICAgICAgICAgeyJvdXRwdXQiOiBzZWxmLnBhdXNlX2FmdGVyX3Rlc3R9LCAidGV4dC9qYXZhc2Ny
aXB0O2NoYXJzZXQ9dXRmOCIsCisgICAgICAgICAgICAgICAgICIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIildOgorICAgICAgICAgICAgcGF0aCA9IG9zLnBhdGgubm9ybXBhdGgob3Mu
cGF0aC5qb2luKGhlcmUsIHBhdGgpKQorICAgICAgICAgICAgIyBOb3RlIHRoYXQgLmhlYWRlcnMu
IGZpbGVzIGRvbid0IGFwcGx5IHRvIHN0YXRpYyByb3V0ZXMsIHNvIHdlIG5lZWQgdG8KKyAgICAg
ICAgICAgICMgcmVhZGQgYW55IHN0YXRpYyBoZWFkZXJzIGhlcmUuCisgICAgICAgICAgICBoZWFk
ZXJzID0geyJDYWNoZS1Db250cm9sIjogIm1heC1hZ2U9MzYwMCJ9CisgICAgICAgICAgICByb3V0
ZV9idWlsZGVyLmFkZF9zdGF0aWMocGF0aCwgZm9ybWF0X2FyZ3MsIGNvbnRlbnRfdHlwZSwgcm91
dGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycz1oZWFkZXJz
KQorCisgICAgICAgIGRhdGEgPSBiIiIKKyAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihy
ZXBvX3Jvb3QsICJyZXNvdXJjZXMiLCAidGVzdGRyaXZlci5qcyIpLCAicmIiKSBhcyBmcDoKKyAg
ICAgICAgICAgIGRhdGEgKz0gZnAucmVhZCgpCisgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpv
aW4oaGVyZSwgInRlc3Rkcml2ZXItZXh0cmEuanMiKSwgInJiIikgYXMgZnA6CisgICAgICAgICAg
ICBkYXRhICs9IGZwLnJlYWQoKQorICAgICAgICByb3V0ZV9idWlsZGVyLmFkZF9oYW5kbGVyKGIi
R0VUIiwgYiIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFN0cmluZ0hhbmRsZXIoZGF0YSwgInRleHQvamF2YXNjcmlwdCIpKQorCisg
ICAgICAgIGZvciB1cmxfYmFzZSwgcGF0aHMgaW4gc2VsZi50ZXN0X3BhdGhzLml0ZXJpdGVtcygp
OgorICAgICAgICAgICAgaWYgdXJsX2Jhc2UgPT0gIi8iOgorICAgICAgICAgICAgICAgIGNvbnRp
bnVlCisgICAgICAgICAgICByb3V0ZV9idWlsZGVyLmFkZF9tb3VudF9wb2ludCh1cmxfYmFzZSwg
cGF0aHNbInRlc3RzX3BhdGgiXSkKKworICAgICAgICBpZiAiLyIgbm90IGluIHNlbGYudGVzdF9w
YXRoczoKKyAgICAgICAgICAgIGRlbCByb3V0ZV9idWlsZGVyLm1vdW50cG9pbnRfcm91dGVzWyIv
Il0KKworICAgICAgICByZXR1cm4gcm91dGVfYnVpbGRlci5nZXRfcm91dGVzKCkKKworICAgIGRl
ZiBlbnN1cmVfc3RhcnRlZChzZWxmKToKKyAgICAgICAgIyBQYXVzZSBmb3IgYSB3aGlsZSB0byBl
bnN1cmUgdGhhdCB0aGUgc2VydmVyIGhhcyBhIGNoYW5jZSB0byBzdGFydAorICAgICAgICBmb3Ig
XyBpbiB4cmFuZ2UoMjApOgorICAgICAgICAgICAgZmFpbGVkID0gc2VsZi50ZXN0X3NlcnZlcnMo
KQorICAgICAgICAgICAgaWYgbm90IGZhaWxlZDoKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAg
ICAgICAgICAgIHRpbWUuc2xlZXAoMC41KQorICAgICAgICByYWlzZSBFbnZpcm9ubWVudEVycm9y
KCJTZXJ2ZXJzIGZhaWxlZCB0byBzdGFydDogJXMiICUKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiLCAiLmpvaW4oIiVzOiVzIiAlIGl0ZW0gZm9yIGl0ZW0gaW4gZmFpbGVkKSkKKwor
ICAgIGRlZiB0ZXN0X3NlcnZlcnMoc2VsZik6CisgICAgICAgIGZhaWxlZCA9IFtdCisgICAgICAg
IGhvc3QgPSBzZWxmLmNvbmZpZ1sic2VydmVyX2hvc3QiXQorICAgICAgICBmb3Igc2NoZW1lLCBz
ZXJ2ZXJzIGluIHNlbGYuc2VydmVycy5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgIGZvciBwb3J0
LCBzZXJ2ZXIgaW4gc2VydmVyczoKKyAgICAgICAgICAgICAgICBpZiBzZWxmLnRlc3Rfc2VydmVy
X3BvcnQ6CisgICAgICAgICAgICAgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KCkKKyAgICAgICAg
ICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAgcy5jb25uZWN0KChob3N0
LCBwb3J0KSkKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGZhaWxlZC5hcHBlbmQoKGhvc3QsIHBvcnQpKQorICAgICAgICAg
ICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgICAgICAgICAgcy5jbG9zZSgpCisK
KyAgICAgICAgICAgICAgICBpZiBub3Qgc2VydmVyLmlzX2FsaXZlKCk6CisgICAgICAgICAgICAg
ICAgICAgIGZhaWxlZC5hcHBlbmQoKHNjaGVtZSwgcG9ydCkpCisgICAgICAgIHJldHVybiBmYWls
ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvX19pbml0X18ucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZXhlY3V0b3JzL19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0NzYxYjgzODMwOTRk
YzJjODMwNzVhOTNkOTI0YWE0ZDQ2NmQwZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZXhlY3V0b3JzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNCBAQAorZnJvbSBiYXNlIGltcG9y
dCAoZXhlY3V0b3Jfa3dhcmdzLAorICAgICAgICAgICAgICAgICAgdGVzdGhhcm5lc3NfcmVzdWx0
X2NvbnZlcnRlciwKKyAgICAgICAgICAgICAgICAgIHJlZnRlc3RfcmVzdWx0X2NvbnZlcnRlciwK
KyAgICAgICAgICAgICAgICAgIFRlc3RFeGVjdXRvcikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9leGVjdXRvcnMvYmFzZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvYmFzZS5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43MDg5MDNmNWRjZDhmMzc2MDcxYjk2M2EwZGFlNGUyMWVlZTgyNDIzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9iYXNlLnB5CkBAIC0wLDAgKzEsNTQ1
IEBACitpbXBvcnQgaGFzaGxpYgoraW1wb3J0IGh0dHBsaWIKK2ltcG9ydCBvcworaW1wb3J0IHRo
cmVhZGluZworaW1wb3J0IHRyYWNlYmFjaworaW1wb3J0IHNvY2tldAoraW1wb3J0IHVybHBhcnNl
Citmcm9tIGFiYyBpbXBvcnQgQUJDTWV0YSwgYWJzdHJhY3RtZXRob2QKKworZnJvbSAuLnRlc3Ry
dW5uZXIgaW1wb3J0IFN0b3AKK2Zyb20gcHJvdG9jb2wgaW1wb3J0IFByb3RvY29sCisKK2hlcmUg
PSBvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVswXQorCisjIEV4dHJhIHRpbWVvdXQgdG8gdXNlIGFm
dGVyIGludGVybmFsIHRlc3QgdGltZW91dCBhdCB3aGljaCB0aGUgaGFybmVzcworIyBzaG91bGQg
Zm9yY2UgYSB0aW1lb3V0CitleHRyYV90aW1lb3V0ID0gNSAgIyBzZWNvbmRzCisKKworZGVmIGV4
ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsICoq
a3dhcmdzKToKKyAgICB0aW1lb3V0X211bHRpcGxpZXIgPSBrd2FyZ3NbInRpbWVvdXRfbXVsdGlw
bGllciJdCisgICAgaWYgdGltZW91dF9tdWx0aXBsaWVyIGlzIE5vbmU6CisgICAgICAgIHRpbWVv
dXRfbXVsdGlwbGllciA9IDEKKworICAgIGV4ZWN1dG9yX2t3YXJncyA9IHsic2VydmVyX2NvbmZp
ZyI6IHNlcnZlcl9jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICJ0aW1lb3V0X211bHRp
cGxpZXIiOiB0aW1lb3V0X211bHRpcGxpZXIsCisgICAgICAgICAgICAgICAgICAgICAgICJkZWJ1
Z19pbmZvIjoga3dhcmdzWyJkZWJ1Z19pbmZvIl19CisKKyAgICBpZiB0ZXN0X3R5cGUgPT0gInJl
ZnRlc3QiOgorICAgICAgICBleGVjdXRvcl9rd2FyZ3NbInNjcmVlbnNob3RfY2FjaGUiXSA9IGNh
Y2hlX21hbmFnZXIuZGljdCgpCisKKyAgICBpZiB0ZXN0X3R5cGUgPT0gIndkc3BlYyI6CisgICAg
ICAgIGV4ZWN1dG9yX2t3YXJnc1siYmluYXJ5Il0gPSBrd2FyZ3MuZ2V0KCJiaW5hcnkiKQorICAg
ICAgICBleGVjdXRvcl9rd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSA9IGt3YXJncy5nZXQoIndl
YmRyaXZlcl9iaW5hcnkiKQorICAgICAgICBleGVjdXRvcl9rd2FyZ3NbIndlYmRyaXZlcl9hcmdz
Il0gPSBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpCisKKyAgICByZXR1cm4gZXhlY3V0b3Jf
a3dhcmdzCisKKworZGVmIHN0cmlwX3NlcnZlcih1cmwpOgorICAgICIiIlJlbW92ZSB0aGUgc2No
ZW1lIGFuZCBuZXRsb2MgZnJvbSBhIHVybCwgbGVhdmluZyBvbmx5IHRoZSBwYXRoIGFuZCBhbnkg
cXVlcnkKKyAgICBvciBmcmFnbWVudC4KKworICAgIHVybCAtIHRoZSB1cmwgdG8gc3RyaXAKKwor
ICAgIGUuZy4gaHR0cDovL2V4YW1wbGUub3JnOjgwMDAvdGVzdHM/aWQ9MSMyIGJlY29tZXMgL3Rl
c3RzP2lkPTEjMiIiIgorCisgICAgdXJsX3BhcnRzID0gbGlzdCh1cmxwYXJzZS51cmxzcGxpdCh1
cmwpKQorICAgIHVybF9wYXJ0c1swXSA9ICIiCisgICAgdXJsX3BhcnRzWzFdID0gIiIKKyAgICBy
ZXR1cm4gdXJscGFyc2UudXJsdW5zcGxpdCh1cmxfcGFydHMpCisKKworY2xhc3MgVGVzdGhhcm5l
c3NSZXN1bHRDb252ZXJ0ZXIob2JqZWN0KToKKyAgICBoYXJuZXNzX2NvZGVzID0gezA6ICJPSyIs
CisgICAgICAgICAgICAgICAgICAgICAxOiAiRVJST1IiLAorICAgICAgICAgICAgICAgICAgICAg
MjogIlRJTUVPVVQifQorCisgICAgdGVzdF9jb2RlcyA9IHswOiAiUEFTUyIsCisgICAgICAgICAg
ICAgICAgICAxOiAiRkFJTCIsCisgICAgICAgICAgICAgICAgICAyOiAiVElNRU9VVCIsCisgICAg
ICAgICAgICAgICAgICAzOiAiTk9UUlVOIn0KKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCB0ZXN0
LCByZXN1bHQpOgorICAgICAgICAiIiJDb252ZXJ0IGEgSlNPTiByZXN1bHQgaW50byBhIChUZXN0
UmVzdWx0LCBbU3VidGVzdFJlc3VsdF0pIHR1cGxlIiIiCisgICAgICAgIHJlc3VsdF91cmwsIHN0
YXR1cywgbWVzc2FnZSwgc3RhY2ssIHN1YnRlc3RfcmVzdWx0cyA9IHJlc3VsdAorICAgICAgICBh
c3NlcnQgcmVzdWx0X3VybCA9PSB0ZXN0LnVybCwgKCJHb3QgcmVzdWx0cyBmcm9tICVzLCBleHBl
Y3RlZCAlcyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzdWx0
X3VybCwgdGVzdC51cmwpKQorICAgICAgICBoYXJuZXNzX3Jlc3VsdCA9IHRlc3QucmVzdWx0X2Ns
cyhzZWxmLmhhcm5lc3NfY29kZXNbc3RhdHVzXSwgbWVzc2FnZSkKKyAgICAgICAgcmV0dXJuICho
YXJuZXNzX3Jlc3VsdCwKKyAgICAgICAgICAgICAgICBbdGVzdC5zdWJ0ZXN0X3Jlc3VsdF9jbHMo
c3RfbmFtZSwgc2VsZi50ZXN0X2NvZGVzW3N0X3N0YXR1c10sIHN0X21lc3NhZ2UsIHN0X3N0YWNr
KQorICAgICAgICAgICAgICAgICBmb3Igc3RfbmFtZSwgc3Rfc3RhdHVzLCBzdF9tZXNzYWdlLCBz
dF9zdGFjayBpbiBzdWJ0ZXN0X3Jlc3VsdHNdKQorCisKK3Rlc3RoYXJuZXNzX3Jlc3VsdF9jb252
ZXJ0ZXIgPSBUZXN0aGFybmVzc1Jlc3VsdENvbnZlcnRlcigpCisKKworZGVmIHJlZnRlc3RfcmVz
dWx0X2NvbnZlcnRlcihzZWxmLCB0ZXN0LCByZXN1bHQpOgorICAgIHJldHVybiAodGVzdC5yZXN1
bHRfY2xzKHJlc3VsdFsic3RhdHVzIl0sIHJlc3VsdFsibWVzc2FnZSJdLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGV4dHJhPXJlc3VsdC5nZXQoImV4dHJhIikpLCBbXSkKKworCitkZWYg
cHl0ZXN0X3Jlc3VsdF9jb252ZXJ0ZXIoc2VsZiwgdGVzdCwgZGF0YSk6CisgICAgaGFybmVzc19k
YXRhLCBzdWJ0ZXN0X2RhdGEgPSBkYXRhCisKKyAgICBpZiBzdWJ0ZXN0X2RhdGEgaXMgTm9uZToK
KyAgICAgICAgc3VidGVzdF9kYXRhID0gW10KKworICAgIGhhcm5lc3NfcmVzdWx0ID0gdGVzdC5y
ZXN1bHRfY2xzKCpoYXJuZXNzX2RhdGEpCisgICAgc3VidGVzdF9yZXN1bHRzID0gW3Rlc3Quc3Vi
dGVzdF9yZXN1bHRfY2xzKCppdGVtKSBmb3IgaXRlbSBpbiBzdWJ0ZXN0X2RhdGFdCisKKyAgICBy
ZXR1cm4gKGhhcm5lc3NfcmVzdWx0LCBzdWJ0ZXN0X3Jlc3VsdHMpCisKKworY2xhc3MgRXhlY3V0
b3JFeGNlcHRpb24oRXhjZXB0aW9uKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgc3RhdHVzLCBt
ZXNzYWdlKToKKyAgICAgICAgc2VsZi5zdGF0dXMgPSBzdGF0dXMKKyAgICAgICAgc2VsZi5tZXNz
YWdlID0gbWVzc2FnZQorCisKK2NsYXNzIFRlc3RFeGVjdXRvcihvYmplY3QpOgorICAgIF9fbWV0
YWNsYXNzX18gPSBBQkNNZXRhCisKKyAgICB0ZXN0X3R5cGUgPSBOb25lCisgICAgY29udmVydF9y
ZXN1bHQgPSBOb25lCisgICAgc3VwcG9ydHNfdGVzdGRyaXZlciA9IEZhbHNlCisKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywgdGltZW91dF9tdWx0aXBsaWVy
PTEsCisgICAgICAgICAgICAgICAgIGRlYnVnX2luZm89Tm9uZSwgKiprd2FyZ3MpOgorICAgICAg
ICAiIiJBYnN0cmFjdCBCYXNlIGNsYXNzIGZvciBvYmplY3QgdGhhdCBhY3R1YWxseSBleGVjdXRl
cyB0aGUgdGVzdHMgaW4gYQorICAgICAgICBzcGVjaWZpYyBicm93c2VyLiBUeXBpY2FsbHkgdGhl
cmUgd2lsbCBiZSBhIGRpZmZlcmVudCBUZXN0RXhlY3V0b3IKKyAgICAgICAgc3ViY2xhc3MgZm9y
IGVhY2ggdGVzdCB0eXBlIGFuZCBtZXRob2Qgb2YgZXhlY3V0aW5nIHRlc3RzLgorCisgICAgICAg
IDpwYXJhbSBicm93c2VyOiBFeGVjdXRvckJyb3dzZXIgaW5zdGFuY2UgcHJvdmlkaW5nIHByb3Bl
cnRpZXMgb2YgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICBicm93c2VyIHRoYXQgd2lsbCBi
ZSB0ZXN0ZWQuCisgICAgICAgIDpwYXJhbSBzZXJ2ZXJfY29uZmlnOiBEaWN0aW9uYXJ5IG9mIHdw
dHNlcnZlIHNlcnZlciBjb25maWd1cmF0aW9uIG9mIHRoZQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZm9ybSBzdG9yZWQgaW4gVGVzdEVudmlyb25tZW50LmNvbmZpZworICAgICAgICA6
cGFyYW0gdGltZW91dF9tdWx0aXBsaWVyOiBNdWx0aXBsaWVyIHJlbGF0aXZlIHRvIGJhc2UgdGlt
ZW91dCB0byB1c2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hlbiBzZXR0
aW5nIHRlc3QgdGltZW91dC4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYucnVubmVyID0gTm9u
ZQorICAgICAgICBzZWxmLmJyb3dzZXIgPSBicm93c2VyCisgICAgICAgIHNlbGYuc2VydmVyX2Nv
bmZpZyA9IHNlcnZlcl9jb25maWcKKyAgICAgICAgc2VsZi50aW1lb3V0X211bHRpcGxpZXIgPSB0
aW1lb3V0X211bHRpcGxpZXIKKyAgICAgICAgc2VsZi5kZWJ1Z19pbmZvID0gZGVidWdfaW5mbwor
ICAgICAgICBzZWxmLmxhc3RfZW52aXJvbm1lbnQgPSB7InByb3RvY29sIjogImh0dHAiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByZWZzIjoge319CisgICAgICAgIHNlbGYu
cHJvdG9jb2wgPSBOb25lICAjIFRoaXMgbXVzdCBiZSBzZXQgaW4gc3ViY2xhc3NlcworCisgICAg
QHByb3BlcnR5CisgICAgZGVmIGxvZ2dlcihzZWxmKToKKyAgICAgICAgIiIiU3RydWN0dXJlZExv
Z2dlciBmb3IgdGhpcyBleGVjdXRvciIiIgorICAgICAgICBpZiBzZWxmLnJ1bm5lciBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnJ1bm5lci5sb2dnZXIKKworICAgIGRlZiBz
ZXR1cChzZWxmLCBydW5uZXIpOgorICAgICAgICAiIiJSdW4gc3RlcHMgbmVlZGVkIGJlZm9yZSB0
ZXN0cyBjYW4gYmUgc3RhcnRlZCBlLmcuIGNvbm5lY3RpbmcgdG8KKyAgICAgICAgYnJvd3NlciBp
bnN0YW5jZQorCisgICAgICAgIDpwYXJhbSBydW5uZXI6IFRlc3RSdW5uZXIgaW5zdGFuY2UgdGhh
dCBpcyBnb2luZyB0byBydW4gdGhlIHRlc3RzIiIiCisgICAgICAgIHNlbGYucnVubmVyID0gcnVu
bmVyCisgICAgICAgIGlmIHNlbGYucHJvdG9jb2wgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBz
ZWxmLnByb3RvY29sLnNldHVwKHJ1bm5lcikKKworICAgIGRlZiB0ZWFyZG93bihzZWxmKToKKyAg
ICAgICAgIiIiUnVuIGNsZWFudXAgc3RlcHMgYWZ0ZXIgdGVzdHMgaGF2ZSBmaW5pc2hlZCIiIgor
ICAgICAgICBpZiBzZWxmLnByb3RvY29sIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5w
cm90b2NvbC50ZWFyZG93bigpCisKKyAgICBkZWYgcnVuX3Rlc3Qoc2VsZiwgdGVzdCk6CisgICAg
ICAgICIiIlJ1biBhIHBhcnRpY3VsYXIgdGVzdC4KKworICAgICAgICA6cGFyYW0gdGVzdDogVGhl
IHRlc3QgdG8gcnVuIiIiCisgICAgICAgIGlmIHRlc3QuZW52aXJvbm1lbnQgIT0gc2VsZi5sYXN0
X2Vudmlyb25tZW50OgorICAgICAgICAgICAgc2VsZi5vbl9lbnZpcm9ubWVudF9jaGFuZ2UodGVz
dC5lbnZpcm9ubWVudCkKKworICAgICAgICB0cnk6CisgICAgICAgICAgICByZXN1bHQgPSBzZWxm
LmRvX3Rlc3QodGVzdCkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAg
ICAgcmVzdWx0ID0gc2VsZi5yZXN1bHRfZnJvbV9leGNlcHRpb24odGVzdCwgZSkKKworICAgICAg
ICBpZiByZXN1bHQgaXMgU3RvcDoKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQKKworICAgICAg
ICAjIGxvZyByZXN1bHQgb2YgcGFyZW50IHRlc3QKKyAgICAgICAgaWYgcmVzdWx0WzBdLnN0YXR1
cyA9PSAiRVJST1IiOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcocmVzdWx0WzBdLm1l
c3NhZ2UpCisKKyAgICAgICAgc2VsZi5sYXN0X2Vudmlyb25tZW50ID0gdGVzdC5lbnZpcm9ubWVu
dAorCisgICAgICAgIHNlbGYucnVubmVyLnNlbmRfbWVzc2FnZSgidGVzdF9lbmRlZCIsIHRlc3Qs
IHJlc3VsdCkKKworICAgIGRlZiBzZXJ2ZXJfdXJsKHNlbGYsIHByb3RvY29sKToKKyAgICAgICAg
cmV0dXJuICIlczovLyVzOiVzIiAlIChwcm90b2NvbCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLnNlcnZlcl9jb25maWdbImJyb3dzZXJfaG9zdCJdLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2NvbmZpZ1sicG9ydHMiXVtwcm90b2NvbF1b
MF0pCisKKyAgICBkZWYgdGVzdF91cmwoc2VsZiwgdGVzdCk6CisgICAgICAgIHJldHVybiB1cmxw
YXJzZS51cmxqb2luKHNlbGYuc2VydmVyX3VybCh0ZXN0LmVudmlyb25tZW50WyJwcm90b2NvbCJd
KSwgdGVzdC51cmwpCisKKyAgICBAYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgZG9fdGVzdChzZWxm
LCB0ZXN0KToKKyAgICAgICAgIiIiVGVzdC10eXBlIGFuZCBwcm90b2NvbCBzcGVjaWZpYyBpbXBs
ZW1lbnRhdGlvbiBvZiBydW5uaW5nIGEKKyAgICAgICAgc3BlY2lmaWMgdGVzdC4KKworICAgICAg
ICA6cGFyYW0gdGVzdDogVGhlIHRlc3QgdG8gcnVuLiIiIgorICAgICAgICBwYXNzCisKKyAgICBk
ZWYgb25fZW52aXJvbm1lbnRfY2hhbmdlKHNlbGYsIG5ld19lbnZpcm9ubWVudCk6CisgICAgICAg
IHBhc3MKKworICAgIGRlZiByZXN1bHRfZnJvbV9leGNlcHRpb24oc2VsZiwgdGVzdCwgZSk6Cisg
ICAgICAgIGlmIGhhc2F0dHIoZSwgInN0YXR1cyIpIGFuZCBlLnN0YXR1cyBpbiB0ZXN0LnJlc3Vs
dF9jbHMuc3RhdHVzZXM6CisgICAgICAgICAgICBzdGF0dXMgPSBlLnN0YXR1cworICAgICAgICBl
bHNlOgorICAgICAgICAgICAgc3RhdHVzID0gIkVSUk9SIgorICAgICAgICBtZXNzYWdlID0gdW5p
Y29kZShnZXRhdHRyKGUsICJtZXNzYWdlIiwgIiIpKQorICAgICAgICBpZiBtZXNzYWdlOgorICAg
ICAgICAgICAgbWVzc2FnZSArPSAiXG4iCisgICAgICAgIG1lc3NhZ2UgKz0gdHJhY2ViYWNrLmZv
cm1hdF9leGMoZSkKKyAgICAgICAgcmV0dXJuIHRlc3QucmVzdWx0X2NscyhzdGF0dXMsIG1lc3Nh
Z2UpLCBbXQorCisgICAgZGVmIHdhaXQoc2VsZik6CisgICAgICAgIHNlbGYucHJvdG9jb2wuYmFz
ZS53YWl0KCkKKworCitjbGFzcyBUZXN0aGFybmVzc0V4ZWN1dG9yKFRlc3RFeGVjdXRvcik6Cisg
ICAgY29udmVydF9yZXN1bHQgPSB0ZXN0aGFybmVzc19yZXN1bHRfY29udmVydGVyCisKKworY2xh
c3MgUmVmVGVzdEV4ZWN1dG9yKFRlc3RFeGVjdXRvcik6CisgICAgY29udmVydF9yZXN1bHQgPSBy
ZWZ0ZXN0X3Jlc3VsdF9jb252ZXJ0ZXIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBicm93c2Vy
LCBzZXJ2ZXJfY29uZmlnLCB0aW1lb3V0X211bHRpcGxpZXI9MSwgc2NyZWVuc2hvdF9jYWNoZT1O
b25lLAorICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPU5vbmUsICoqa3dhcmdzKToKKyAgICAg
ICAgVGVzdEV4ZWN1dG9yLl9faW5pdF9fKHNlbGYsIGJyb3dzZXIsIHNlcnZlcl9jb25maWcsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0X211bHRpcGxpZXI9dGltZW91dF9t
dWx0aXBsaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWdfaW5mbz1kZWJ1
Z19pbmZvKQorCisgICAgICAgIHNlbGYuc2NyZWVuc2hvdF9jYWNoZSA9IHNjcmVlbnNob3RfY2Fj
aGUKKworCitjbGFzcyBSZWZUZXN0SW1wbGVtZW50YXRpb24ob2JqZWN0KToKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgZXhlY3V0b3IpOgorICAgICAgICBzZWxmLnRpbWVvdXRfbXVsdGlwbGllciA9
IGV4ZWN1dG9yLnRpbWVvdXRfbXVsdGlwbGllcgorICAgICAgICBzZWxmLmV4ZWN1dG9yID0gZXhl
Y3V0b3IKKyAgICAgICAgIyBDYWNoZSBvZiB1cmw6KHNjcmVlbnNob3QgaGFzaCwgc2NyZWVuc2hv
dCkuIFR5cGljYWxseSB0aGUKKyAgICAgICAgIyBzY3JlZW5zaG90IGlzIE5vbmUsIGJ1dCB3ZSBz
ZXQgdGhpcyB2YWx1ZSBpZiBhIHRlc3QgZmFpbHMKKyAgICAgICAgIyBhbmQgdGhlIHNjcmVlbnNo
b3Qgd2FzIHRha2VuIGZyb20gdGhlIGNhY2hlIHNvIHRoYXQgd2UgbWF5CisgICAgICAgICMgcmV0
cmlldmUgdGhlIHNjcmVlbnNob3QgZnJvbSB0aGUgY2FjaGUgZGlyZWN0bHkgaW4gdGhlIGZ1dHVy
ZQorICAgICAgICBzZWxmLnNjcmVlbnNob3RfY2FjaGUgPSBzZWxmLmV4ZWN1dG9yLnNjcmVlbnNo
b3RfY2FjaGUKKyAgICAgICAgc2VsZi5tZXNzYWdlID0gTm9uZQorCisgICAgZGVmIHNldHVwKHNl
bGYpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgdGVhcmRvd24oc2VsZik6CisgICAgICAgIHBh
c3MKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBsb2dnZXIoc2VsZik6CisgICAgICAgIHJldHVy
biBzZWxmLmV4ZWN1dG9yLmxvZ2dlcgorCisgICAgZGVmIGdldF9oYXNoKHNlbGYsIHRlc3QsIHZp
ZXdwb3J0X3NpemUsIGRwaSk6CisgICAgICAgIHRpbWVvdXQgPSB0ZXN0LnRpbWVvdXQgKiBzZWxm
LnRpbWVvdXRfbXVsdGlwbGllcgorICAgICAgICBrZXkgPSAodGVzdC51cmwsIHZpZXdwb3J0X3Np
emUsIGRwaSkKKworICAgICAgICBpZiBrZXkgbm90IGluIHNlbGYuc2NyZWVuc2hvdF9jYWNoZToK
KyAgICAgICAgICAgIHN1Y2Nlc3MsIGRhdGEgPSBzZWxmLmV4ZWN1dG9yLnNjcmVlbnNob3QodGVz
dCwgdmlld3BvcnRfc2l6ZSwgZHBpKQorCisgICAgICAgICAgICBpZiBub3Qgc3VjY2VzczoKKyAg
ICAgICAgICAgICAgICByZXR1cm4gRmFsc2UsIGRhdGEKKworICAgICAgICAgICAgc2NyZWVuc2hv
dCA9IGRhdGEKKyAgICAgICAgICAgIGhhc2hfdmFsdWUgPSBoYXNobGliLnNoYTEoc2NyZWVuc2hv
dCkuaGV4ZGlnZXN0KCkKKworICAgICAgICAgICAgc2VsZi5zY3JlZW5zaG90X2NhY2hlW2tleV0g
PSAoaGFzaF92YWx1ZSwgTm9uZSkKKworICAgICAgICAgICAgcnYgPSAoaGFzaF92YWx1ZSwgc2Ny
ZWVuc2hvdCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJ2ID0gc2VsZi5zY3JlZW5zaG90
X2NhY2hlW2tleV0KKworICAgICAgICBzZWxmLm1lc3NhZ2UuYXBwZW5kKCIlcyAlcyIgJSAodGVz
dC51cmwsIHJ2WzBdKSkKKyAgICAgICAgcmV0dXJuIFRydWUsIHJ2CisKKyAgICBkZWYgaXNfcGFz
cyhzZWxmLCBsaHNfaGFzaCwgcmhzX2hhc2gsIHJlbGF0aW9uKToKKyAgICAgICAgYXNzZXJ0IHJl
bGF0aW9uIGluICgiPT0iLCAiIT0iKQorICAgICAgICBzZWxmLm1lc3NhZ2UuYXBwZW5kKCJUZXN0
aW5nICVzICVzICVzIiAlIChsaHNfaGFzaCwgcmVsYXRpb24sIHJoc19oYXNoKSkKKyAgICAgICAg
cmV0dXJuICgocmVsYXRpb24gPT0gIj09IiBhbmQgbGhzX2hhc2ggPT0gcmhzX2hhc2gpIG9yCisg
ICAgICAgICAgICAgICAgKHJlbGF0aW9uID09ICIhPSIgYW5kIGxoc19oYXNoICE9IHJoc19oYXNo
KSkKKworICAgIGRlZiBydW5fdGVzdChzZWxmLCB0ZXN0KToKKyAgICAgICAgdmlld3BvcnRfc2l6
ZSA9IHRlc3Qudmlld3BvcnRfc2l6ZQorICAgICAgICBkcGkgPSB0ZXN0LmRwaQorICAgICAgICBz
ZWxmLm1lc3NhZ2UgPSBbXQorCisgICAgICAgICMgRGVwdGgtZmlyc3Qgc2VhcmNoIG9mIHJlZmVy
ZW5jZSB0cmVlLCB3aXRoIHRoZSBnb2FsCisgICAgICAgICMgb2YgcmVhY2hpbmdzIGEgbGVhZiBu
b2RlIHdpdGggb25seSBwYXNzIHJlc3VsdHMKKworICAgICAgICBzdGFjayA9IGxpc3QoKCh0ZXN0
LCBpdGVtWzBdKSwgaXRlbVsxXSkgZm9yIGl0ZW0gaW4gcmV2ZXJzZWQodGVzdC5yZWZlcmVuY2Vz
KSkKKyAgICAgICAgd2hpbGUgc3RhY2s6CisgICAgICAgICAgICBoYXNoZXMgPSBbTm9uZSwgTm9u
ZV0KKyAgICAgICAgICAgIHNjcmVlbnNob3RzID0gW05vbmUsIE5vbmVdCisKKyAgICAgICAgICAg
IG5vZGVzLCByZWxhdGlvbiA9IHN0YWNrLnBvcCgpCisKKyAgICAgICAgICAgIGZvciBpLCBub2Rl
IGluIGVudW1lcmF0ZShub2Rlcyk6CisgICAgICAgICAgICAgICAgc3VjY2VzcywgZGF0YSA9IHNl
bGYuZ2V0X2hhc2gobm9kZSwgdmlld3BvcnRfc2l6ZSwgZHBpKQorICAgICAgICAgICAgICAgIGlm
IHN1Y2Nlc3MgaXMgRmFsc2U6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB7InN0YXR1cyI6
IGRhdGFbMF0sICJtZXNzYWdlIjogZGF0YVsxXX0KKworICAgICAgICAgICAgICAgIGhhc2hlc1tp
XSwgc2NyZWVuc2hvdHNbaV0gPSBkYXRhCisKKyAgICAgICAgICAgIGlmIHNlbGYuaXNfcGFzcyho
YXNoZXNbMF0sIGhhc2hlc1sxXSwgcmVsYXRpb24pOgorICAgICAgICAgICAgICAgIGlmIG5vZGVz
WzFdLnJlZmVyZW5jZXM6CisgICAgICAgICAgICAgICAgICAgIHN0YWNrLmV4dGVuZChsaXN0KCgo
bm9kZXNbMV0sIGl0ZW1bMF0pLCBpdGVtWzFdKSBmb3IgaXRlbSBpbiByZXZlcnNlZChub2Rlc1sx
XS5yZWZlcmVuY2VzKSkpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAg
ICAgIyBXZSBwYXNzZWQKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsic3RhdHVzIjoiUEFT
UyIsICJtZXNzYWdlIjogTm9uZX0KKworICAgICAgICAjIFdlIGZhaWxlZCwgc28gY29uc3RydWN0
IGEgZmFpbHVyZSBtZXNzYWdlCisKKyAgICAgICAgZm9yIGksIChub2RlLCBzY3JlZW5zaG90KSBp
biBlbnVtZXJhdGUoemlwKG5vZGVzLCBzY3JlZW5zaG90cykpOgorICAgICAgICAgICAgaWYgc2Ny
ZWVuc2hvdCBpcyBOb25lOgorICAgICAgICAgICAgICAgIHN1Y2Nlc3MsIHNjcmVlbnNob3QgPSBz
ZWxmLnJldGFrZV9zY3JlZW5zaG90KG5vZGUsIHZpZXdwb3J0X3NpemUsIGRwaSkKKyAgICAgICAg
ICAgICAgICBpZiBzdWNjZXNzOgorICAgICAgICAgICAgICAgICAgICBzY3JlZW5zaG90c1tpXSA9
IHNjcmVlbnNob3QKKworICAgICAgICBsb2dfZGF0YSA9IFt7InVybCI6IG5vZGVzWzBdLnVybCwg
InNjcmVlbnNob3QiOiBzY3JlZW5zaG90c1swXX0sIHJlbGF0aW9uLAorICAgICAgICAgICAgICAg
ICAgICB7InVybCI6IG5vZGVzWzFdLnVybCwgInNjcmVlbnNob3QiOiBzY3JlZW5zaG90c1sxXX1d
CisKKyAgICAgICAgcmV0dXJuIHsic3RhdHVzIjogIkZBSUwiLAorICAgICAgICAgICAgICAgICJt
ZXNzYWdlIjogIlxuIi5qb2luKHNlbGYubWVzc2FnZSksCisgICAgICAgICAgICAgICAgImV4dHJh
IjogeyJyZWZ0ZXN0X3NjcmVlbnNob3RzIjogbG9nX2RhdGF9fQorCisgICAgZGVmIHJldGFrZV9z
Y3JlZW5zaG90KHNlbGYsIG5vZGUsIHZpZXdwb3J0X3NpemUsIGRwaSk6CisgICAgICAgIHN1Y2Nl
c3MsIGRhdGEgPSBzZWxmLmV4ZWN1dG9yLnNjcmVlbnNob3Qobm9kZSwgdmlld3BvcnRfc2l6ZSwg
ZHBpKQorICAgICAgICBpZiBub3Qgc3VjY2VzczoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZSwg
ZGF0YQorCisgICAgICAgIGtleSA9IChub2RlLnVybCwgdmlld3BvcnRfc2l6ZSwgZHBpKQorICAg
ICAgICBoYXNoX3ZhbCwgXyA9IHNlbGYuc2NyZWVuc2hvdF9jYWNoZVtrZXldCisgICAgICAgIHNl
bGYuc2NyZWVuc2hvdF9jYWNoZVtrZXldID0gaGFzaF92YWwsIGRhdGEKKyAgICAgICAgcmV0dXJu
IFRydWUsIGRhdGEKKworCitjbGFzcyBXZHNwZWNFeGVjdXRvcihUZXN0RXhlY3V0b3IpOgorICAg
IGNvbnZlcnRfcmVzdWx0ID0gcHl0ZXN0X3Jlc3VsdF9jb252ZXJ0ZXIKKyAgICBwcm90b2NvbF9j
bHMgPSBOb25lCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYnJvd3Nlciwgc2VydmVyX2NvbmZp
Zywgd2ViZHJpdmVyX2JpbmFyeSwKKyAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3MsIHRp
bWVvdXRfbXVsdGlwbGllcj0xLCBjYXBhYmlsaXRpZXM9Tm9uZSwKKyAgICAgICAgICAgICAgICAg
ZGVidWdfaW5mbz1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYuZG9fZGVsYXllZF9pbXBv
cnRzKCkKKyAgICAgICAgVGVzdEV4ZWN1dG9yLl9faW5pdF9fKHNlbGYsIGJyb3dzZXIsIHNlcnZl
cl9jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0X211bHRpcGxp
ZXI9dGltZW91dF9tdWx0aXBsaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVi
dWdfaW5mbz1kZWJ1Z19pbmZvKQorICAgICAgICBzZWxmLndlYmRyaXZlcl9iaW5hcnkgPSB3ZWJk
cml2ZXJfYmluYXJ5CisgICAgICAgIHNlbGYud2ViZHJpdmVyX2FyZ3MgPSB3ZWJkcml2ZXJfYXJn
cworICAgICAgICBzZWxmLnRpbWVvdXRfbXVsdGlwbGllciA9IHRpbWVvdXRfbXVsdGlwbGllcgor
ICAgICAgICBzZWxmLmNhcGFiaWxpdGllcyA9IGNhcGFiaWxpdGllcworICAgICAgICBzZWxmLnBy
b3RvY29sID0gc2VsZi5wcm90b2NvbF9jbHMoc2VsZiwgYnJvd3NlcikKKworICAgIGRlZiBpc19h
bGl2ZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYucHJvdG9jb2wuaXNfYWxpdmUKKworICAg
IGRlZiBvbl9lbnZpcm9ubWVudF9jaGFuZ2Uoc2VsZiwgbmV3X2Vudmlyb25tZW50KToKKyAgICAg
ICAgcGFzcworCisgICAgZGVmIGRvX3Rlc3Qoc2VsZiwgdGVzdCk6CisgICAgICAgIHRpbWVvdXQg
PSB0ZXN0LnRpbWVvdXQgKiBzZWxmLnRpbWVvdXRfbXVsdGlwbGllciArIGV4dHJhX3RpbWVvdXQK
KworICAgICAgICBzdWNjZXNzLCBkYXRhID0gV2RzcGVjUnVuKHNlbGYuZG9fd2RzcGVjLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJvdG9jb2wuc2Vzc2lvbl9jb25m
aWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdC5hYnNfcGF0aCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0KS5ydW4oKQorCisgICAgICAg
IGlmIHN1Y2Nlc3M6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5jb252ZXJ0X3Jlc3VsdCh0ZXN0
LCBkYXRhKQorCisgICAgICAgIHJldHVybiAodGVzdC5yZXN1bHRfY2xzKCpkYXRhKSwgW10pCisK
KyAgICBkZWYgZG9fd2RzcGVjKHNlbGYsIHNlc3Npb25fY29uZmlnLCBwYXRoLCB0aW1lb3V0KToK
KyAgICAgICAgcmV0dXJuIHB5dGVzdHJ1bm5lci5ydW4ocGF0aCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZXNzaW9uX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGltZW91dD10aW1lb3V0KQorCisgICAgZGVmIGRvX2RlbGF5ZWRfaW1wb3J0cyhzZWxmKToK
KyAgICAgICAgZ2xvYmFsIHB5dGVzdHJ1bm5lcgorICAgICAgICBmcm9tIC4gaW1wb3J0IHB5dGVz
dHJ1bm5lcgorCisKK2NsYXNzIFdkc3BlY1J1bihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBmdW5jLCBzZXNzaW9uLCBwYXRoLCB0aW1lb3V0KToKKyAgICAgICAgc2VsZi5mdW5jID0g
ZnVuYworICAgICAgICBzZWxmLnJlc3VsdCA9IChOb25lLCBOb25lKQorICAgICAgICBzZWxmLnNl
c3Npb24gPSBzZXNzaW9uCisgICAgICAgIHNlbGYucGF0aCA9IHBhdGgKKyAgICAgICAgc2VsZi50
aW1lb3V0ID0gdGltZW91dAorICAgICAgICBzZWxmLnJlc3VsdF9mbGFnID0gdGhyZWFkaW5nLkV2
ZW50KCkKKworICAgIGRlZiBydW4oc2VsZik6CisgICAgICAgICIiIlJ1bnMgZnVuY3Rpb24gaW4g
YSB0aHJlYWQgYW5kIGludGVycnVwdHMgaXQgaWYgaXQgZXhjZWVkcyB0aGUKKyAgICAgICAgZ2l2
ZW4gdGltZW91dC4gIFJldHVybnMgKFRydWUsIChSZXN1bHQsIFtTdWJ0ZXN0UmVzdWx0IC4uLl0p
KSBpbgorICAgICAgICBjYXNlIG9mIHN1Y2Nlc3MsIG9yIChGYWxzZSwgKHN0YXR1cywgZXh0cmEg
aW5mb3JtYXRpb24pKSBpbiB0aGUKKyAgICAgICAgZXZlbnQgb2YgZmFpbHVyZS4KKyAgICAgICAg
IiIiCisKKyAgICAgICAgZXhlY3V0b3IgPSB0aHJlYWRpbmcuVGhyZWFkKHRhcmdldD1zZWxmLl9y
dW4pCisgICAgICAgIGV4ZWN1dG9yLnN0YXJ0KCkKKworICAgICAgICBmbGFnID0gc2VsZi5yZXN1
bHRfZmxhZy53YWl0KHNlbGYudGltZW91dCkKKyAgICAgICAgaWYgc2VsZi5yZXN1bHRbMV0gaXMg
Tm9uZToKKyAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgiRVhURVJOQUwtVElNRU9V
VCIsIE5vbmUpCisKKyAgICAgICAgcmV0dXJuIHNlbGYucmVzdWx0CisKKyAgICBkZWYgX3J1bihz
ZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBUcnVlLCBzZWxm
LmZ1bmMoc2VsZi5zZXNzaW9uLCBzZWxmLnBhdGgsIHNlbGYudGltZW91dCkKKyAgICAgICAgZXhj
ZXB0IChzb2NrZXQudGltZW91dCwgSU9FcnJvcik6CisgICAgICAgICAgICBzZWxmLnJlc3VsdCA9
IEZhbHNlLCAoIkNSQVNIIiwgTm9uZSkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgor
ICAgICAgICAgICAgbWVzc2FnZSA9IGdldGF0dHIoZSwgIm1lc3NhZ2UiKQorICAgICAgICAgICAg
aWYgbWVzc2FnZToKKyAgICAgICAgICAgICAgICBtZXNzYWdlICs9ICJcbiIKKyAgICAgICAgICAg
IG1lc3NhZ2UgKz0gdHJhY2ViYWNrLmZvcm1hdF9leGMoZSkKKyAgICAgICAgICAgIHNlbGYucmVz
dWx0ID0gRmFsc2UsICgiRVJST1IiLCBtZXNzYWdlKQorICAgICAgICBmaW5hbGx5OgorICAgICAg
ICAgICAgc2VsZi5yZXN1bHRfZmxhZy5zZXQoKQorCisKK2NsYXNzIENvbm5lY3Rpb25sZXNzUHJv
dG9jb2woUHJvdG9jb2wpOgorICAgIGRlZiBjb25uZWN0KHNlbGYpOgorICAgICAgICBwYXNzCisK
KyAgICBkZWYgYWZ0ZXJfY29ubmVjdChzZWxmKToKKyAgICAgICAgcGFzcworCisKK2NsYXNzIFdl
YkRyaXZlclByb3RvY29sKFByb3RvY29sKToKKyAgICBzZXJ2ZXJfY2xzID0gTm9uZQorCisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGV4ZWN1dG9yLCBicm93c2VyKToKKyAgICAgICAgUHJvdG9jb2wu
X19pbml0X18oc2VsZiwgZXhlY3V0b3IsIGJyb3dzZXIpCisgICAgICAgIHNlbGYud2ViZHJpdmVy
X2JpbmFyeSA9IGV4ZWN1dG9yLndlYmRyaXZlcl9iaW5hcnkKKyAgICAgICAgc2VsZi53ZWJkcml2
ZXJfYXJncyA9IGV4ZWN1dG9yLndlYmRyaXZlcl9hcmdzCisgICAgICAgIHNlbGYuY2FwYWJpbGl0
aWVzID0gc2VsZi5leGVjdXRvci5jYXBhYmlsaXRpZXMKKyAgICAgICAgc2VsZi5zZXNzaW9uX2Nv
bmZpZyA9IE5vbmUKKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBOb25lCisKKyAgICBkZWYgY29ubmVj
dChzZWxmKToKKyAgICAgICAgIiIiQ29ubmVjdCB0byBicm93c2VyIHZpYSB0aGUgSFRUUCBzZXJ2
ZXIuIiIiCisgICAgICAgIHNlbGYuc2VydmVyID0gc2VsZi5zZXJ2ZXJfY2xzKAorICAgICAgICAg
ICAgc2VsZi5sb2dnZXIsCisgICAgICAgICAgICBiaW5hcnk9c2VsZi53ZWJkcml2ZXJfYmluYXJ5
LAorICAgICAgICAgICAgYXJncz1zZWxmLndlYmRyaXZlcl9hcmdzKQorICAgICAgICBzZWxmLnNl
cnZlci5zdGFydChibG9jaz1GYWxzZSkKKyAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygKKyAgICAg
ICAgICAgICJXZWJEcml2ZXIgSFRUUCBzZXJ2ZXIgbGlzdGVuaW5nIGF0ICVzIiAlIHNlbGYuc2Vy
dmVyLnVybCkKKyAgICAgICAgc2VsZi5zZXNzaW9uX2NvbmZpZyA9IHsiaG9zdCI6IHNlbGYuc2Vy
dmVyLmhvc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvcnQiOiBzZWxmLnNl
cnZlci5wb3J0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjYXBhYmlsaXRpZXMi
OiBzZWxmLmNhcGFiaWxpdGllc30KKworICAgIGRlZiBhZnRlcl9jb25uZWN0KHNlbGYpOgorICAg
ICAgICBwYXNzCisKKyAgICBkZWYgdGVhcmRvd24oc2VsZik6CisgICAgICAgIGlmIHNlbGYuc2Vy
dmVyIGlzIG5vdCBOb25lIGFuZCBzZWxmLnNlcnZlci5pc19hbGl2ZToKKyAgICAgICAgICAgIHNl
bGYuc2VydmVyLnN0b3AoKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGlzX2FsaXZlKHNlbGYp
OgorICAgICAgICAiIiJUZXN0IHRoYXQgdGhlIGNvbm5lY3Rpb24gaXMgc3RpbGwgYWxpdmUuCisK
KyAgICAgICAgQmVjYXVzZSB0aGUgcmVtb3RlIGNvbW11bmljYXRpb24gaGFwcGVucyBvdmVyIEhU
VFAgd2UgbmVlZCB0bworICAgICAgICBtYWtlIGFuIGV4cGxpY2l0IHJlcXVlc3QgdG8gdGhlIHJl
bW90ZS4gIEl0IGlzIGFsbG93ZWQgZm9yCisgICAgICAgIFdlYkRyaXZlciBzcGVjIHRlc3RzIHRv
IG5vdCBoYXZlIGEgV2ViRHJpdmVyIHNlc3Npb24sIHNpbmNlIHRoaXMKKyAgICAgICAgbWF5IGJl
IHdoYXQgaXMgdGVzdGVkLgorCisgICAgICAgIEFuIEhUVFAgcmVxdWVzdCB0byBhbiBpbnZhbGlk
IHBhdGggdGhhdCByZXN1bHRzIGluIGEgNDA0IGlzCisgICAgICAgIHByb29mIGVub3VnaCB0byB1
cyB0aGF0IHRoZSBzZXJ2ZXIgaXMgYWxpdmUgYW5kIGtpY2tpbmcuCisgICAgICAgICIiIgorICAg
ICAgICBjb25uID0gaHR0cGxpYi5IVFRQQ29ubmVjdGlvbihzZWxmLnNlcnZlci5ob3N0LCBzZWxm
LnNlcnZlci5wb3J0KQorICAgICAgICBjb25uLnJlcXVlc3QoIkhFQUQiLCBzZWxmLnNlcnZlci5i
YXNlX3BhdGggKyAiaW52YWxpZCIpCisgICAgICAgIHJlcyA9IGNvbm4uZ2V0cmVzcG9uc2UoKQor
ICAgICAgICByZXR1cm4gcmVzLnN0YXR1cyA9PSA0MDQKKworCitjbGFzcyBDYWxsYmFja0hhbmRs
ZXIob2JqZWN0KToKKyAgICAiIiJIYW5kbGUgY2FsbGJhY2tzIGZyb20gdGVzdGRyaXZlci11c2lu
ZyB0ZXN0cy4KKworICAgIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGhlcmUgbWFrZXMgc2Vu
c2UgZm9yIHRoaW5ncyB0aGF0IGFyZSByb3VnaGx5IGxpa2UKKyAgICBXZWJEcml2ZXIuIFRoaW5n
cyB0aGF0IGFyZSBtb3JlIGRpZmZlcmVudCB0byBXZWJEcml2ZXIgbWF5IG5lZWQgdG8gY3JlYXRl
IGEKKyAgICBmdWxseSBjdXN0b20gaW1wbGVtZW50YXRpb24uIiIiCisKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgbG9nZ2VyLCBwcm90b2NvbCwgdGVzdF93aW5kb3cpOgorICAgICAgICBzZWxmLnBy
b3RvY29sID0gcHJvdG9jb2wKKyAgICAgICAgc2VsZi50ZXN0X3dpbmRvdyA9IHRlc3Rfd2luZG93
CisgICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCisgICAgICAgIHNlbGYuY2FsbGJhY2tzID0g
eworICAgICAgICAgICAgImFjdGlvbiI6IHNlbGYucHJvY2Vzc19hY3Rpb24sCisgICAgICAgICAg
ICAiY29tcGxldGUiOiBzZWxmLnByb2Nlc3NfY29tcGxldGUKKyAgICAgICAgfQorCisgICAgICAg
IHNlbGYuYWN0aW9ucyA9IHsKKyAgICAgICAgICAgICJjbGljayI6IENsaWNrQWN0aW9uKHNlbGYu
bG9nZ2VyLCBzZWxmLnByb3RvY29sKQorICAgICAgICB9CisKKyAgICBkZWYgX19jYWxsX18oc2Vs
ZiwgcmVzdWx0KToKKyAgICAgICAgdXJsLCBjb21tYW5kLCBwYXlsb2FkID0gcmVzdWx0CisgICAg
ICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJHb3QgYXN5bmMgY2FsbGJhY2s6ICVzIiAlIHJlc3VsdFsx
XSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgY2FsbGJhY2sgPSBzZWxmLmNhbGxiYWNrc1tj
b21tYW5kXQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICByYWlzZSBWYWx1
ZUVycm9yKCJVbmtub3duIGNhbGxiYWNrIHR5cGUgJXIiICUgcmVzdWx0WzFdKQorICAgICAgICBy
ZXR1cm4gY2FsbGJhY2sodXJsLCBwYXlsb2FkKQorCisgICAgZGVmIHByb2Nlc3NfY29tcGxldGUo
c2VsZiwgdXJsLCBwYXlsb2FkKToKKyAgICAgICAgcnYgPSBbdXJsXSArIHBheWxvYWQKKyAgICAg
ICAgcmV0dXJuIFRydWUsIHJ2CisKKyAgICBkZWYgcHJvY2Vzc19hY3Rpb24oc2VsZiwgdXJsLCBw
YXlsb2FkKToKKyAgICAgICAgcGFyZW50ID0gc2VsZi5wcm90b2NvbC5iYXNlLmN1cnJlbnRfd2lu
ZG93CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYucHJvdG9jb2wuYmFzZS5zZXRfd2lu
ZG93KHNlbGYudGVzdF93aW5kb3cpCisgICAgICAgICAgICBhY3Rpb24gPSBwYXlsb2FkWyJhY3Rp
b24iXQorICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkdvdCBhY3Rpb246ICVzIiAlIGFj
dGlvbikKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBhY3Rpb25faGFuZGxlciA9
IHNlbGYuYWN0aW9uc1thY3Rpb25dCisgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAg
ICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVW5rbm93biBhY3Rpb24gJXMiICUgYWN0aW9u
KQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGFjdGlvbl9oYW5kbGVyKHBheWxv
YWQpCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAg
c2VsZi5sb2dnZXIud2FybmluZygiQWN0aW9uICVzIGZhaWxlZCIgJSBhY3Rpb24pCisgICAgICAg
ICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZyh0cmFjZWJhY2suZm9ybWF0X2V4YygpKQorICAg
ICAgICAgICAgICAgIHNlbGYuX3NlbmRfbWVzc2FnZSgiY29tcGxldGUiLCAiZmFpbHVyZSIpCisg
ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJBY3Rp
b24gJXMgY29tcGxldGVkIiAlIGFjdGlvbikKKyAgICAgICAgICAgICAgICBzZWxmLl9zZW5kX21l
c3NhZ2UoImNvbXBsZXRlIiwgInN1Y2Nlc3MiKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAg
ICAgc2VsZi5wcm90b2NvbC5iYXNlLnNldF93aW5kb3cocGFyZW50KQorCisgICAgICAgIHJldHVy
biBGYWxzZSwgTm9uZQorCisgICAgZGVmIF9zZW5kX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZV90eXBl
LCBzdGF0dXMsIG1lc3NhZ2U9Tm9uZSk6CisgICAgICAgIHNlbGYucHJvdG9jb2wudGVzdGRyaXZl
ci5zZW5kX21lc3NhZ2UobWVzc2FnZV90eXBlLCBzdGF0dXMsIG1lc3NhZ2U9bWVzc2FnZSkKKwor
CitjbGFzcyBDbGlja0FjdGlvbihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dn
ZXIsIHByb3RvY29sKToKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKKyAgICAgICAgc2Vs
Zi5wcm90b2NvbCA9IHByb3RvY29sCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgcGF5bG9hZCk6
CisgICAgICAgIHNlbGVjdG9yID0gcGF5bG9hZFsic2VsZWN0b3IiXQorICAgICAgICBlbGVtZW50
cyA9IHNlbGYucHJvdG9jb2wuc2VsZWN0LmVsZW1lbnRzX2J5X3NlbGVjdG9yKHNlbGVjdG9yKQor
ICAgICAgICBpZiBsZW4oZWxlbWVudHMpID09IDA6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCJTZWxlY3RvciBtYXRjaGVzIG5vIGVsZW1lbnRzIikKKyAgICAgICAgZWxpZiBsZW4oZWxl
bWVudHMpID4gMToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlNlbGVjdG9yIG1hdGNo
ZXMgbXVsdGlwbGUgZWxlbWVudHMiKQorICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiQ2xpY2tp
bmcgZWxlbWVudDogJXMiICUgc2VsZWN0b3IpCisgICAgICAgIHNlbGYucHJvdG9jb2wuY2xpY2su
ZWxlbWVudChlbGVtZW50c1swXSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMv
ZXhlY3V0b3JjaHJvbWUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yY2hyb21l
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjNlMDQwMGRlMTFjZTRjMzdhZjRiY2E0ZGU5MTJiMmEwYWVjYzY3ZGYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yY2hyb21l
LnB5CkBAIC0wLDAgKzEsMTAgQEAKK2Zyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBDaHJv
bWVEcml2ZXJTZXJ2ZXIKK2Zyb20gLmJhc2UgaW1wb3J0IFdkc3BlY0V4ZWN1dG9yLCBXZWJEcml2
ZXJQcm90b2NvbAorCisKK2NsYXNzIENocm9tZURyaXZlclByb3RvY29sKFdlYkRyaXZlclByb3Rv
Y29sKToKKyAgICBzZXJ2ZXJfY2xzID0gQ2hyb21lRHJpdmVyU2VydmVyCisKKworY2xhc3MgQ2hy
b21lRHJpdmVyV2RzcGVjRXhlY3V0b3IoV2RzcGVjRXhlY3V0b3IpOgorICAgIHByb3RvY29sX2Ns
cyA9IENocm9tZURyaXZlclByb3RvY29sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0
b3JzL2V4ZWN1dG9yZWRnZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JlZGdl
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJkNjU1M2ZhZGNiMTZkYjE3N2U1MjJhMGU2MGM4MmU4YzU1YmNhMDMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yZWRnZS5w
eQpAQCAtMCwwICsxLDEwIEBACitmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgRWRnZURy
aXZlclNlcnZlcgorZnJvbSAuYmFzZSBpbXBvcnQgV2RzcGVjRXhlY3V0b3IsIFdlYkRyaXZlclBy
b3RvY29sCisKKworY2xhc3MgRWRnZURyaXZlclByb3RvY29sKFdlYkRyaXZlclByb3RvY29sKToK
KyAgICBzZXJ2ZXJfY2xzID0gRWRnZURyaXZlclNlcnZlcgorCisKK2NsYXNzIEVkZ2VEcml2ZXJX
ZHNwZWNFeGVjdXRvcihXZHNwZWNFeGVjdXRvcik6CisgICAgcHJvdG9jb2xfY2xzID0gRWRnZURy
aXZlclByb3RvY29sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9y
aW50ZXJuZXRleHBsb3Jlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JpbnRl
cm5ldGV4cGxvcmVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5OGZmMTQ0NTkzODc3YzNiZTMzYTMzYmU1Njc4
MTZlODY5ZGNmM2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4
ZWN1dG9yaW50ZXJuZXRleHBsb3Jlci5weQpAQCAtMCwwICsxLDEwIEBACitmcm9tIC4ud2ViZHJp
dmVyX3NlcnZlciBpbXBvcnQgSW50ZXJuZXRFeHBsb3JlckRyaXZlclNlcnZlcgorZnJvbSAuYmFz
ZSBpbXBvcnQgV2RzcGVjRXhlY3V0b3IsIFdlYkRyaXZlclByb3RvY29sCisKKworY2xhc3MgSW50
ZXJuZXRFeHBsb3JlckRyaXZlclByb3RvY29sKFdlYkRyaXZlclByb3RvY29sKToKKyAgICBzZXJ2
ZXJfY2xzID0gSW50ZXJuZXRFeHBsb3JlckRyaXZlclNlcnZlcgorCisKK2NsYXNzIEludGVybmV0
RXhwbG9yZXJEcml2ZXJXZHNwZWNFeGVjdXRvcihXZHNwZWNFeGVjdXRvcik6CisgICAgcHJvdG9j
b2xfY2xzID0gSW50ZXJuZXRFeHBsb3JlckRyaXZlclByb3RvY29sCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9ybWFyaW9uZXR0ZS5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9l
eGVjdXRvcnMvZXhlY3V0b3JtYXJpb25ldHRlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjNDlhYjI1NzJjODA2
MjBjNzVmZTUyNWNhZTI1ODg3ZTFjYmNjNTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZXhlY3V0b3JzL2V4ZWN1dG9ybWFyaW9uZXR0ZS5weQpAQCAtMCwwICsxLDY5OCBAQAoraW1w
b3J0IGpzb24KK2ltcG9ydCBvcworaW1wb3J0IHNvY2tldAoraW1wb3J0IHRocmVhZGluZworaW1w
b3J0IHRyYWNlYmFjaworaW1wb3J0IHVybHBhcnNlCitpbXBvcnQgdXVpZAorCitlcnJvcnMgPSBO
b25lCittYXJpb25ldHRlID0gTm9uZQorcHl0ZXN0cnVubmVyID0gTm9uZQorCitoZXJlID0gb3Mu
cGF0aC5qb2luKG9zLnBhdGguc3BsaXQoX19maWxlX18pWzBdKQorCitmcm9tIC5iYXNlIGltcG9y
dCAoQ2FsbGJhY2tIYW5kbGVyLAorICAgICAgICAgICAgICAgICAgIEV4ZWN1dG9yRXhjZXB0aW9u
LAorICAgICAgICAgICAgICAgICAgIFJlZlRlc3RFeGVjdXRvciwKKyAgICAgICAgICAgICAgICAg
ICBSZWZUZXN0SW1wbGVtZW50YXRpb24sCisgICAgICAgICAgICAgICAgICAgVGVzdEV4ZWN1dG9y
LAorICAgICAgICAgICAgICAgICAgIFRlc3RoYXJuZXNzRXhlY3V0b3IsCisgICAgICAgICAgICAg
ICAgICAgV2RzcGVjRXhlY3V0b3IsCisgICAgICAgICAgICAgICAgICAgV2RzcGVjUnVuLAorICAg
ICAgICAgICAgICAgICAgIFdlYkRyaXZlclByb3RvY29sLAorICAgICAgICAgICAgICAgICAgIGV4
dHJhX3RpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgdGVzdGhhcm5lc3NfcmVzdWx0X2NvbnZl
cnRlciwKKyAgICAgICAgICAgICAgICAgICByZWZ0ZXN0X3Jlc3VsdF9jb252ZXJ0ZXIsCisgICAg
ICAgICAgICAgICAgICAgc3RyaXBfc2VydmVyKQorZnJvbSAucHJvdG9jb2wgaW1wb3J0IChCYXNl
UHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBUZXN0aGFybmVzc1Byb3RvY29s
UGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgUHJlZnNQcm90b2NvbFBhcnQsCisgICAgICAg
ICAgICAgICAgICAgICAgIFByb3RvY29sLAorICAgICAgICAgICAgICAgICAgICAgICBTdG9yYWdl
UHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBTZWxlY3RvclByb3RvY29sUGFy
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgQ2xpY2tQcm90b2NvbFBhcnQsCisgICAgICAgICAg
ICAgICAgICAgICAgIFRlc3REcml2ZXJQcm90b2NvbFBhcnQpCitmcm9tIC4udGVzdHJ1bm5lciBp
bXBvcnQgU3RvcAorZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IEdlY2tvRHJpdmVyU2Vy
dmVyCisKKworZGVmIGRvX2RlbGF5ZWRfaW1wb3J0cygpOgorICAgIGdsb2JhbCBlcnJvcnMsIG1h
cmlvbmV0dGUKKworICAgICMgTWFyaW9uZXR0ZSBjbGllbnQgdXNlZCB0byBiZSBjYWxsZWQgbWFy
aW9uZXR0ZSwgcmVjZW50bHkgaXQgY2hhbmdlZAorICAgICMgdG8gbWFyaW9uZXR0ZV9kcml2ZXIg
Zm9yIHVuZmF0aG9tYWJsZSByZWFzb25zCisgICAgdHJ5OgorICAgICAgICBpbXBvcnQgbWFyaW9u
ZXR0ZQorICAgICAgICBmcm9tIG1hcmlvbmV0dGUgaW1wb3J0IGVycm9ycworICAgIGV4Y2VwdCBJ
bXBvcnRFcnJvcjoKKyAgICAgICAgZnJvbSBtYXJpb25ldHRlX2RyaXZlciBpbXBvcnQgbWFyaW9u
ZXR0ZSwgZXJyb3JzCisKKworY2xhc3MgTWFyaW9uZXR0ZUJhc2VQcm90b2NvbFBhcnQoQmFzZVBy
b3RvY29sUGFydCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCk6CisgICAgICAgIHN1
cGVyKE1hcmlvbmV0dGVCYXNlUHJvdG9jb2xQYXJ0LCBzZWxmKS5fX2luaXRfXyhwYXJlbnQpCisg
ICAgICAgIHNlbGYudGltZW91dCA9IE5vbmUKKworICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAg
ICAgc2VsZi5tYXJpb25ldHRlID0gc2VsZi5wYXJlbnQubWFyaW9uZXR0ZQorCisgICAgZGVmIGV4
ZWN1dGVfc2NyaXB0KHNlbGYsIHNjcmlwdCwgYXN5bmM9RmFsc2UpOgorICAgICAgICBtZXRob2Qg
PSBzZWxmLm1hcmlvbmV0dGUuZXhlY3V0ZV9hc3luY19zY3JpcHQgaWYgYXN5bmMgZWxzZSBzZWxm
Lm1hcmlvbmV0dGUuZXhlY3V0ZV9zY3JpcHQKKyAgICAgICAgcmV0dXJuIG1ldGhvZChzY3JpcHQs
IG5ld19zYW5kYm94PUZhbHNlKQorCisgICAgZGVmIHNldF90aW1lb3V0KHNlbGYsIHRpbWVvdXQp
OgorICAgICAgICAiIiJTZXQgdGhlIE1hcmlvbmV0dGUgc2NyaXB0IHRpbWVvdXQuCisKKyAgICAg
ICAgOnBhcmFtIHRpbWVvdXQ6IFNjcmlwdCB0aW1lb3V0IGluIHNlY29uZHMKKworICAgICAgICAi
IiIKKyAgICAgICAgaWYgdGltZW91dCAhPSBzZWxmLnRpbWVvdXQ6CisgICAgICAgICAgICBzZWxm
Lm1hcmlvbmV0dGUudGltZW91dC5zY3JpcHQgPSB0aW1lb3V0CisgICAgICAgICAgICBzZWxmLnRp
bWVvdXQgPSB0aW1lb3V0CisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgY3VycmVudF93aW5kb3co
c2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLm1hcmlvbmV0dGUuY3VycmVudF93aW5kb3dfaGFu
ZGxlCisKKyAgICBkZWYgc2V0X3dpbmRvdyhzZWxmLCBoYW5kbGUpOgorICAgICAgICBzZWxmLm1h
cmlvbmV0dGUuc3dpdGNoX3RvX3dpbmRvdyhoYW5kbGUpCisKKyAgICBkZWYgd2FpdChzZWxmKToK
KyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc29ja2V0X3RpbWVvdXQgPSBzZWxmLm1hcmlvbmV0
dGUuY2xpZW50LnNvY2tldF90aW1lb3V0CisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoK
KyAgICAgICAgICAgICMgVGhpcyBjYW4gaGFwcGVuIGlmIHRoZXJlIHdhcyBhIGNyYXNoCisgICAg
ICAgICAgICByZXR1cm4KKyAgICAgICAgaWYgc29ja2V0X3RpbWVvdXQ6CisgICAgICAgICAgICB0
cnk6CisgICAgICAgICAgICAgICAgc2VsZi5tYXJpb25ldHRlLnRpbWVvdXQuc2NyaXB0ID0gc29j
a2V0X3RpbWVvdXQgLyAyCisgICAgICAgICAgICBleGNlcHQgKHNvY2tldC5lcnJvciwgSU9FcnJv
cik6CisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlNvY2tldCBjbG9zZWQiKQor
ICAgICAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAg
ICB0cnk6CisgICAgICAgICAgICAgICAgc2VsZi5tYXJpb25ldHRlLmV4ZWN1dGVfYXN5bmNfc2Ny
aXB0KCIiKQorICAgICAgICAgICAgZXhjZXB0IGVycm9ycy5Ob1N1Y2hXaW5kb3dFeGNlcHRpb246
CisgICAgICAgICAgICAgICAgIyBUaGUgd2luZG93IGNsb3NlZAorICAgICAgICAgICAgICAgIGJy
ZWFrCisgICAgICAgICAgICBleGNlcHQgZXJyb3JzLlNjcmlwdFRpbWVvdXRFeGNlcHRpb246Cisg
ICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlNjcmlwdCB0aW1lZCBvdXQiKQorICAg
ICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGV4Y2VwdCAoc29ja2V0LnRpbWVvdXQsIElP
RXJyb3IpOgorICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJTb2NrZXQgY2xvc2Vk
IikKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBh
cyBlOgorICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcodHJhY2ViYWNrLmZvcm1h
dF9leGMoZSkpCisgICAgICAgICAgICAgICAgYnJlYWsKKworCitjbGFzcyBNYXJpb25ldHRlVGVz
dGhhcm5lc3NQcm90b2NvbFBhcnQoVGVzdGhhcm5lc3NQcm90b2NvbFBhcnQpOgorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBwYXJlbnQpOgorICAgICAgICBzdXBlcihNYXJpb25ldHRlVGVzdGhhcm5l
c3NQcm90b2NvbFBhcnQsIHNlbGYpLl9faW5pdF9fKHBhcmVudCkKKyAgICAgICAgc2VsZi5ydW5u
ZXJfaGFuZGxlID0gTm9uZQorCisgICAgZGVmIHNldHVwKHNlbGYpOgorICAgICAgICBzZWxmLm1h
cmlvbmV0dGUgPSBzZWxmLnBhcmVudC5tYXJpb25ldHRlCisKKyAgICBkZWYgbG9hZF9ydW5uZXIo
c2VsZiwgdXJsX3Byb3RvY29sKToKKyAgICAgICAgIyBDaGVjayBpZiB3ZSBwcmV2aW91c2x5IGhh
ZCBhIHRlc3Qgd2luZG93IG9wZW4sIGFuZCBpZiB3ZSBkaWQgbWFrZSBzdXJlIGl0J3MgY2xvc2Vk
CisgICAgICAgIHNlbGYubWFyaW9uZXR0ZS5leGVjdXRlX3NjcmlwdCgiaWYgKHdpbmRvdy53aW4p
IHt3aW5kb3cud2luLmNsb3NlKCl9IikKKyAgICAgICAgdXJsID0gdXJscGFyc2UudXJsam9pbihz
ZWxmLnBhcmVudC5leGVjdXRvci5zZXJ2ZXJfdXJsKHVybF9wcm90b2NvbCksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIi90ZXN0aGFybmVzc19ydW5uZXIuaHRtbCIpCisgICAgICAg
IHNlbGYubG9nZ2VyLmRlYnVnKCJMb2FkaW5nICVzIiAlIHVybCkKKyAgICAgICAgc2VsZi5ydW5u
ZXJfaGFuZGxlID0gc2VsZi5tYXJpb25ldHRlLmN1cnJlbnRfd2luZG93X2hhbmRsZQorICAgICAg
ICB0cnk6CisgICAgICAgICAgICBzZWxmLmRpc21pc3NfYWxlcnQobGFtYmRhOiBzZWxmLm1hcmlv
bmV0dGUubmF2aWdhdGUodXJsKSkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAg
ICAgICAgICAgc2VsZi5sb2dnZXIuY3JpdGljYWwoCisgICAgICAgICAgICAgICAgIkxvYWRpbmcg
aW5pdGlhbCBwYWdlICVzIGZhaWxlZC4gRW5zdXJlIHRoYXQgdGhlICIKKyAgICAgICAgICAgICAg
ICAidGhlcmUgYXJlIG5vIG90aGVyIHByb2dyYW1zIGJvdW5kIHRvIHRoaXMgcG9ydCBhbmQgIgor
ICAgICAgICAgICAgICAgICJ0aGF0IHlvdXIgZmlyZXdhbGwgcnVsZXMgb3IgbmV0d29yayBzZXR1
cCBkb2VzIG5vdCAiCisgICAgICAgICAgICAgICAgInByZXZlbnQgYWNjZXNzLlxlJXMiICUgKHVy
bCwgdHJhY2ViYWNrLmZvcm1hdF9leGMoZSkpKQorICAgICAgICAgICAgcmFpc2UKKyAgICAgICAg
c2VsZi5tYXJpb25ldHRlLmV4ZWN1dGVfc2NyaXB0KAorICAgICAgICAgICAgImRvY3VtZW50LnRp
dGxlID0gJyVzJyIgJSB0aHJlYWRpbmcuY3VycmVudF90aHJlYWQoKS5uYW1lLnJlcGxhY2UoIici
LCAnIicpKQorCisgICAgZGVmIGNsb3NlX29sZF93aW5kb3dzKHNlbGYsIHVybF9wcm90b2NvbCk6
CisgICAgICAgIGhhbmRsZXMgPSBzZWxmLm1hcmlvbmV0dGUud2luZG93X2hhbmRsZXMKKyAgICAg
ICAgcnVubmVyX2hhbmRsZSA9IE5vbmUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaGFuZGxl
cy5yZW1vdmUoc2VsZi5ydW5uZXJfaGFuZGxlKQorICAgICAgICAgICAgcnVubmVyX2hhbmRsZSA9
IHNlbGYucnVubmVyX2hhbmRsZQorICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAg
ICAgICMgVGhlIHJ1bm5lciB3aW5kb3cgcHJvYmFibHkgY2hhbmdlZCBpZCBidXQgd2UgY2FuIHJl
c3RvcmUgaXQKKyAgICAgICAgICAgICMgVGhpcyBpc24ndCBzdXBwb3NlZCB0byBoYXBwZW4sIGJ1
dCBtYXJpb25ldHRlIGlkcyBhcmUgbm90IHlldCBzdGFibGUKKyAgICAgICAgICAgICMgV2UgYXNz
dW1lIHRoYXQgdGhlIGZpcnN0IGhhbmRsZSByZXR1cm5lZCBjb3JyZXNwb25kcyB0byB0aGUgcnVu
bmVyLAorICAgICAgICAgICAgIyBidXQgaXQgaG9wZWZ1bGx5IGRvZXNuJ3QgbWF0dGVyIHRvbyBt
dWNoIGlmIHRoYXQgYXNzdW1wdGlvbiBpcworICAgICAgICAgICAgIyB3cm9uZyBzaW5jZSB3ZSBy
ZWxvYWQgdGhlIHJ1bm5lciBpbiB0aGF0IHRhYiBhbnl3YXkuCisgICAgICAgICAgICBydW5uZXJf
aGFuZGxlID0gaGFuZGxlcy5wb3AoMCkKKworICAgICAgICBmb3IgaGFuZGxlIGluIGhhbmRsZXM6
CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2VsZi5kaXNtaXNzX2FsZXJ0KGxh
bWJkYTogc2VsZi5tYXJpb25ldHRlLnN3aXRjaF90b193aW5kb3coaGFuZGxlKSkKKyAgICAgICAg
ICAgICAgICBzZWxmLm1hcmlvbmV0dGUuc3dpdGNoX3RvX3dpbmRvdyhoYW5kbGUpCisgICAgICAg
ICAgICAgICAgc2VsZi5tYXJpb25ldHRlLmNsb3NlKCkKKyAgICAgICAgICAgIGV4Y2VwdCBlcnJv
cnMuTm9TdWNoV2luZG93RXhjZXB0aW9uOgorICAgICAgICAgICAgICAgICMgV2UgbWlnaHQgaGF2
ZSByYWNlZCB3aXRoIHRoZSBwcmV2aW91cyB0ZXN0IHRvIGNsb3NlIHRoaXMKKyAgICAgICAgICAg
ICAgICAjIHdpbmRvdywgc2tpcCBpdC4KKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAg
c2VsZi5tYXJpb25ldHRlLnN3aXRjaF90b193aW5kb3cocnVubmVyX2hhbmRsZSkKKyAgICAgICAg
aWYgcnVubmVyX2hhbmRsZSAhPSBzZWxmLnJ1bm5lcl9oYW5kbGU6CisgICAgICAgICAgICBzZWxm
LmxvYWRfcnVubmVyKHVybF9wcm90b2NvbCkKKyAgICAgICAgcmV0dXJuIHNlbGYucnVubmVyX2hh
bmRsZQorCisgICAgZGVmIGRpc21pc3NfYWxlcnQoc2VsZiwgZik6CisgICAgICAgIHdoaWxlIFRy
dWU6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZigpCisgICAgICAgICAgICBl
eGNlcHQgZXJyb3JzLlVuZXhwZWN0ZWRBbGVydE9wZW46CisgICAgICAgICAgICAgICAgYWxlcnQg
PSBzZWxmLm1hcmlvbmV0dGUuc3dpdGNoX3RvX2FsZXJ0KCkKKyAgICAgICAgICAgICAgICB0cnk6
CisgICAgICAgICAgICAgICAgICAgIGFsZXJ0LmRpc21pc3MoKQorICAgICAgICAgICAgICAgIGV4
Y2VwdCBlcnJvcnMuTm9BbGVydFByZXNlbnRFeGNlcHRpb246CisgICAgICAgICAgICAgICAgICAg
IHBhc3MKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgYnJlYWsKKworICAgIGRl
ZiBnZXRfdGVzdF93aW5kb3coc2VsZiwgd2luZG93X2lkLCBwYXJlbnQpOgorICAgICAgICB0ZXN0
X3dpbmRvdyA9IE5vbmUKKyAgICAgICAgaWYgd2luZG93X2lkOgorICAgICAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgICAgICMgVHJ5IHRoaXMsIGl0J3MgaW4gTGV2ZWwgMSBidXQgbm90aGluZyBz
dXBwb3J0cyBpdCB5ZXQKKyAgICAgICAgICAgICAgICB3aW5fcyA9IHNlbGYubWFyaW9uZXR0ZS5l
eGVjdXRlX3NjcmlwdCgicmV0dXJuIHdpbmRvd1snJXMnXTsiICUgc2VsZi53aW5kb3dfaWQpCisg
ICAgICAgICAgICAgICAgd2luX29iaiA9IGpzb24ubG9hZHMod2luX3MpCisgICAgICAgICAgICAg
ICAgdGVzdF93aW5kb3cgPSB3aW5fb2JqWyJ3aW5kb3ctZmNjNi0xMWU1LWI0ZjgtMzMwYTg4YWI5
ZDdmIl0KKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICAgICAgcGFz
cworCisgICAgICAgIGlmIHRlc3Rfd2luZG93IGlzIE5vbmU6CisgICAgICAgICAgICBhZnRlciA9
IHNlbGYubWFyaW9uZXR0ZS53aW5kb3dfaGFuZGxlcworICAgICAgICAgICAgaWYgbGVuKGFmdGVy
KSA9PSAyOgorICAgICAgICAgICAgICAgIHRlc3Rfd2luZG93ID0gbmV4dChpdGVyKHNldChhZnRl
cikgLSBzZXQoW3BhcmVudF0pKSkKKyAgICAgICAgICAgIGVsaWYgYWZ0ZXJbMF0gPT0gcGFyZW50
IGFuZCBsZW4oYWZ0ZXIpID4gMjoKKyAgICAgICAgICAgICAgICAjIEhvcGUgdGhlIGZpcnN0IG9u
ZSBoZXJlIGlzIHRoZSB0ZXN0IHdpbmRvdworICAgICAgICAgICAgICAgIHRlc3Rfd2luZG93ID0g
YWZ0ZXJbMV0KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCJ1bmFibGUgdG8gZmluZCB0ZXN0IHdpbmRvdyIpCisKKyAgICAgICAgYXNzZXJ0IHRlc3Rf
d2luZG93ICE9IHBhcmVudAorICAgICAgICByZXR1cm4gdGVzdF93aW5kb3cKKworCitjbGFzcyBN
YXJpb25ldHRlUHJlZnNQcm90b2NvbFBhcnQoUHJlZnNQcm90b2NvbFBhcnQpOgorICAgIGRlZiBz
ZXR1cChzZWxmKToKKyAgICAgICAgc2VsZi5tYXJpb25ldHRlID0gc2VsZi5wYXJlbnQubWFyaW9u
ZXR0ZQorCisgICAgZGVmIHNldChzZWxmLCBuYW1lLCB2YWx1ZSk6CisgICAgICAgIGlmIHZhbHVl
Lmxvd2VyKCkgbm90IGluICgidHJ1ZSIsICJmYWxzZSIpOgorICAgICAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgICAgIGludCh2YWx1ZSkKKyAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgor
ICAgICAgICAgICAgICAgIHZhbHVlID0gIiclcyciICUgdmFsdWUKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIHZhbHVlID0gdmFsdWUubG93ZXIoKQorCisgICAgICAgIHNlbGYubG9nZ2VyLmlu
Zm8oIlNldHRpbmcgcHJlZiAlcyAoJXMpIiAlIChuYW1lLCB2YWx1ZSkpCisKKyAgICAgICAgc2Ny
aXB0ID0gIiIiCisgICAgICAgICAgICBsZXQgcHJlZkludGVyZmFjZSA9IENvbXBvbmVudHMuY2xh
c3Nlc1siQG1vemlsbGEub3JnL3ByZWZlcmVuY2VzLXNlcnZpY2U7MSJdCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0U2VydmljZShDb21wb25lbnRzLmludGVy
ZmFjZXMubnNJUHJlZkJyYW5jaCk7CisgICAgICAgICAgICBsZXQgcHJlZiA9ICclcyc7CisgICAg
ICAgICAgICBsZXQgdHlwZSA9IHByZWZJbnRlcmZhY2UuZ2V0UHJlZlR5cGUocHJlZik7CisgICAg
ICAgICAgICBsZXQgdmFsdWUgPSAlczsKKyAgICAgICAgICAgIHN3aXRjaCh0eXBlKSB7CisgICAg
ICAgICAgICAgICAgY2FzZSBwcmVmSW50ZXJmYWNlLlBSRUZfU1RSSU5HOgorICAgICAgICAgICAg
ICAgICAgICBwcmVmSW50ZXJmYWNlLnNldENoYXJQcmVmKHByZWYsIHZhbHVlKTsKKyAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBwcmVmSW50ZXJmYWNlLlBS
RUZfQk9PTDoKKyAgICAgICAgICAgICAgICAgICAgcHJlZkludGVyZmFjZS5zZXRCb29sUHJlZihw
cmVmLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IGNhc2UgcHJlZkludGVyZmFjZS5QUkVGX0lOVDoKKyAgICAgICAgICAgICAgICAgICAgcHJlZklu
dGVyZmFjZS5zZXRJbnRQcmVmKHByZWYsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAiIiIgJSAobmFtZSwgdmFsdWUpCisgICAg
ICAgIHdpdGggc2VsZi5tYXJpb25ldHRlLnVzaW5nX2NvbnRleHQoc2VsZi5tYXJpb25ldHRlLkNP
TlRFWFRfQ0hST01FKToKKyAgICAgICAgICAgIHNlbGYubWFyaW9uZXR0ZS5leGVjdXRlX3Njcmlw
dChzY3JpcHQpCisKKyAgICBkZWYgY2xlYXIoc2VsZiwgbmFtZSk6CisgICAgICAgIHNlbGYubG9n
Z2VyLmluZm8oIkNsZWFyaW5nIHByZWYgJXMiICUgKG5hbWUpKQorICAgICAgICBzY3JpcHQgPSAi
IiIKKyAgICAgICAgICAgIGxldCBwcmVmSW50ZXJmYWNlID0gQ29tcG9uZW50cy5jbGFzc2VzWyJA
bW96aWxsYS5vcmcvcHJlZmVyZW5jZXMtc2VydmljZTsxIl0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC5nZXRTZXJ2aWNlKENvbXBvbmVudHMuaW50ZXJmYWNlcy5u
c0lQcmVmQnJhbmNoKTsKKyAgICAgICAgICAgIGxldCBwcmVmID0gJyVzJzsKKyAgICAgICAgICAg
IHByZWZJbnRlcmZhY2UuY2xlYXJVc2VyUHJlZihwcmVmKTsKKyAgICAgICAgICAgICIiIiAlIG5h
bWUKKyAgICAgICAgd2l0aCBzZWxmLm1hcmlvbmV0dGUudXNpbmdfY29udGV4dChzZWxmLm1hcmlv
bmV0dGUuQ09OVEVYVF9DSFJPTUUpOgorICAgICAgICAgICAgc2VsZi5tYXJpb25ldHRlLmV4ZWN1
dGVfc2NyaXB0KHNjcmlwdCkKKworICAgIGRlZiBnZXQoc2VsZiwgbmFtZSk6CisgICAgICAgIHNj
cmlwdCA9ICIiIgorICAgICAgICAgICAgbGV0IHByZWZJbnRlcmZhY2UgPSBDb21wb25lbnRzLmNs
YXNzZXNbIkBtb3ppbGxhLm9yZy9wcmVmZXJlbmNlcy1zZXJ2aWNlOzEiXQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldFNlcnZpY2UoQ29tcG9uZW50cy5pbnRl
cmZhY2VzLm5zSVByZWZCcmFuY2gpOworICAgICAgICAgICAgbGV0IHByZWYgPSAnJXMnOworICAg
ICAgICAgICAgbGV0IHR5cGUgPSBwcmVmSW50ZXJmYWNlLmdldFByZWZUeXBlKHByZWYpOworICAg
ICAgICAgICAgc3dpdGNoKHR5cGUpIHsKKyAgICAgICAgICAgICAgICBjYXNlIHByZWZJbnRlcmZh
Y2UuUFJFRl9TVFJJTkc6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmVmSW50ZXJmYWNl
LmdldENoYXJQcmVmKHByZWYpOworICAgICAgICAgICAgICAgIGNhc2UgcHJlZkludGVyZmFjZS5Q
UkVGX0JPT0w6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmVmSW50ZXJmYWNlLmdldEJv
b2xQcmVmKHByZWYpOworICAgICAgICAgICAgICAgIGNhc2UgcHJlZkludGVyZmFjZS5QUkVGX0lO
VDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZWZJbnRlcmZhY2UuZ2V0SW50UHJlZihw
cmVmKTsKKyAgICAgICAgICAgICAgICBjYXNlIHByZWZJbnRlcmZhY2UuUFJFRl9JTlZBTElEOgor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICIiIiAlIG5hbWUKKyAgICAgICAgd2l0aCBzZWxmLm1hcmlvbmV0dGUudXNpbmdfY29udGV4
dChzZWxmLm1hcmlvbmV0dGUuQ09OVEVYVF9DSFJPTUUpOgorICAgICAgICAgICAgc2VsZi5tYXJp
b25ldHRlLmV4ZWN1dGVfc2NyaXB0KHNjcmlwdCkKKworCitjbGFzcyBNYXJpb25ldHRlU3RvcmFn
ZVByb3RvY29sUGFydChTdG9yYWdlUHJvdG9jb2xQYXJ0KToKKyAgICBkZWYgc2V0dXAoc2VsZik6
CisgICAgICAgIHNlbGYubWFyaW9uZXR0ZSA9IHNlbGYucGFyZW50Lm1hcmlvbmV0dGUKKworICAg
IGRlZiBjbGVhcl9vcmlnaW4oc2VsZiwgdXJsKToKKyAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygi
Q2xlYXJpbmcgb3JpZ2luICVzIiAlICh1cmwpKQorICAgICAgICBzY3JpcHQgPSAiIiIKKyAgICAg
ICAgICAgIGxldCB1cmwgPSAnJXMnOworICAgICAgICAgICAgbGV0IHVyaSA9IENvbXBvbmVudHMu
Y2xhc3Nlc1siQG1vemlsbGEub3JnL25ldHdvcmsvaW8tc2VydmljZTsxIl0KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgLmdldFNlcnZpY2UoQ2kubnNJSU9TZXJ2aWNlKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAubmV3VVJJKHVybCk7CisgICAgICAgICAgICBsZXQg
c3NtID0gQ29tcG9uZW50cy5jbGFzc2VzWyJAbW96aWxsYS5vcmcvc2NyaXB0c2VjdXJpdHltYW5h
Z2VyOzEiXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0U2VydmljZShDaS5u
c0lTY3JpcHRTZWN1cml0eU1hbmFnZXIpOworICAgICAgICAgICAgbGV0IHByaW5jaXBhbCA9IHNz
bS5jcmVhdGVDb2RlYmFzZVByaW5jaXBhbCh1cmksIHt9KTsKKyAgICAgICAgICAgIGxldCBxbXMg
PSBDb21wb25lbnRzLmNsYXNzZXNbIkBtb3ppbGxhLm9yZy9kb20vcXVvdGEtbWFuYWdlci1zZXJ2
aWNlOzEiXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0U2VydmljZShDb21w
b25lbnRzLmludGVyZmFjZXMubnNJUXVvdGFNYW5hZ2VyU2VydmljZSk7CisgICAgICAgICAgICBx
bXMuY2xlYXJTdG9yYWdlc0ZvclByaW5jaXBhbChwcmluY2lwYWwsICJkZWZhdWx0IiwgdHJ1ZSk7
CisgICAgICAgICAgICAiIiIgJSB1cmwKKyAgICAgICAgd2l0aCBzZWxmLm1hcmlvbmV0dGUudXNp
bmdfY29udGV4dChzZWxmLm1hcmlvbmV0dGUuQ09OVEVYVF9DSFJPTUUpOgorICAgICAgICAgICAg
c2VsZi5tYXJpb25ldHRlLmV4ZWN1dGVfc2NyaXB0KHNjcmlwdCkKKworCitjbGFzcyBNYXJpb25l
dHRlU2VsZWN0b3JQcm90b2NvbFBhcnQoU2VsZWN0b3JQcm90b2NvbFBhcnQpOgorICAgIGRlZiBz
ZXR1cChzZWxmKToKKyAgICAgICAgc2VsZi5tYXJpb25ldHRlID0gc2VsZi5wYXJlbnQubWFyaW9u
ZXR0ZQorCisgICAgZGVmIGVsZW1lbnRzX2J5X3NlbGVjdG9yKHNlbGYsIHNlbGVjdG9yKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYubWFyaW9uZXR0ZS5maW5kX2VsZW1lbnRzKCJjc3Mgc2VsZWN0b3Ii
LCBzZWxlY3RvcikKKworCitjbGFzcyBNYXJpb25ldHRlQ2xpY2tQcm90b2NvbFBhcnQoQ2xpY2tQ
cm90b2NvbFBhcnQpOgorICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAgc2VsZi5tYXJpb25l
dHRlID0gc2VsZi5wYXJlbnQubWFyaW9uZXR0ZQorCisgICAgZGVmIGVsZW1lbnQoc2VsZiwgZWxl
bWVudCk6CisgICAgICAgIHJldHVybiBlbGVtZW50LmNsaWNrKCkKKworCitjbGFzcyBNYXJpb25l
dHRlVGVzdERyaXZlclByb3RvY29sUGFydChUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0KToKKyAgICBk
ZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNlbGYubWFyaW9uZXR0ZSA9IHNlbGYucGFyZW50Lm1h
cmlvbmV0dGUKKworICAgIGRlZiBzZW5kX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZV90eXBlLCBzdGF0
dXMsIG1lc3NhZ2U9Tm9uZSk6CisgICAgICAgIG9iaiA9IHsKKyAgICAgICAgICAgICJ0eXBlIjog
InRlc3Rkcml2ZXItJXMiICUgc3RyKG1lc3NhZ2VfdHlwZSksCisgICAgICAgICAgICAic3RhdHVz
Ijogc3RyKHN0YXR1cykKKyAgICAgICAgfQorICAgICAgICBpZiBtZXNzYWdlOgorICAgICAgICAg
ICAgb2JqWyJtZXNzYWdlIl0gPSBzdHIobWVzc2FnZSkKKyAgICAgICAgc2VsZi5tYXJpb25ldHRl
LmV4ZWN1dGVfc2NyaXB0KCJ3aW5kb3cucG9zdE1lc3NhZ2UoJXMsICcqJykiICUganNvbi5kdW1w
cyhvYmopKQorCisKK2NsYXNzIE1hcmlvbmV0dGVQcm90b2NvbChQcm90b2NvbCk6CisgICAgaW1w
bGVtZW50cyA9IFtNYXJpb25ldHRlQmFzZVByb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAg
IE1hcmlvbmV0dGVUZXN0aGFybmVzc1Byb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgIE1h
cmlvbmV0dGVQcmVmc1Byb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVT
dG9yYWdlUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVNlbGVjdG9y
UHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZUNsaWNrUHJvdG9jb2xQ
YXJ0LAorICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVRlc3REcml2ZXJQcm90b2NvbFBhcnRd
CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZXhlY3V0b3IsIGJyb3dzZXIsIGNhcGFiaWxpdGll
cz1Ob25lLCB0aW1lb3V0X211bHRpcGxpZXI9MSk6CisgICAgICAgIGRvX2RlbGF5ZWRfaW1wb3J0
cygpCisKKyAgICAgICAgc3VwZXIoTWFyaW9uZXR0ZVByb3RvY29sLCBzZWxmKS5fX2luaXRfXyhl
eGVjdXRvciwgYnJvd3NlcikKKyAgICAgICAgc2VsZi5tYXJpb25ldHRlID0gTm9uZQorICAgICAg
ICBzZWxmLm1hcmlvbmV0dGVfcG9ydCA9IGJyb3dzZXIubWFyaW9uZXR0ZV9wb3J0CisgICAgICAg
IHNlbGYuY2FwYWJpbGl0aWVzID0gY2FwYWJpbGl0aWVzCisgICAgICAgIHNlbGYudGltZW91dF9t
dWx0aXBsaWVyID0gdGltZW91dF9tdWx0aXBsaWVyCisgICAgICAgIHNlbGYucnVubmVyX2hhbmRs
ZSA9IE5vbmUKKworICAgIGRlZiBjb25uZWN0KHNlbGYpOgorICAgICAgICBzZWxmLmxvZ2dlci5k
ZWJ1ZygiQ29ubmVjdGluZyB0byBNYXJpb25ldHRlIG9uIHBvcnQgJWkiICUgc2VsZi5tYXJpb25l
dHRlX3BvcnQpCisgICAgICAgIHN0YXJ0dXBfdGltZW91dCA9IG1hcmlvbmV0dGUuTWFyaW9uZXR0
ZS5ERUZBVUxUX1NUQVJUVVBfVElNRU9VVCAqIHNlbGYudGltZW91dF9tdWx0aXBsaWVyCisgICAg
ICAgIHNlbGYubWFyaW9uZXR0ZSA9IG1hcmlvbmV0dGUuTWFyaW9uZXR0ZShob3N0PSdsb2NhbGhv
c3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9y
dD1zZWxmLm1hcmlvbmV0dGVfcG9ydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNvY2tldF90aW1lb3V0PU5vbmUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydHVwX3RpbWVvdXQ9c3RhcnR1cF90aW1l
b3V0KQorCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJXYWl0aW5nIGZvciBNYXJpb25ldHRl
IGNvbm5lY3Rpb24iKQorICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgICAgIHNlbGYubWFyaW9uZXR0ZS5yYWlzZV9mb3JfcG9ydCgpCisgICAgICAgICAg
ICAgICAgYnJlYWsKKyAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAgICAg
ICMgV2hlbiBydW5uaW5nIGluIGEgZGVidWdnZXIgd2FpdCBpbmRlZmluaXRlbHkgZm9yIEZpcmVm
b3ggdG8gc3RhcnQKKyAgICAgICAgICAgICAgICBpZiBzZWxmLmV4ZWN1dG9yLmRlYnVnX2luZm8g
aXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UKKworICAgICAgICBzZWxmLmxvZ2dl
ci5kZWJ1ZygiU3RhcnRpbmcgTWFyaW9uZXR0ZSBzZXNzaW9uIikKKyAgICAgICAgc2VsZi5tYXJp
b25ldHRlLnN0YXJ0X3Nlc3Npb24oKQorICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiTWFyaW9u
ZXR0ZSBzZXNzaW9uIHN0YXJ0ZWQiKQorCisgICAgZGVmIGFmdGVyX2Nvbm5lY3Qoc2VsZik6Cisg
ICAgICAgIHNlbGYudGVzdGhhcm5lc3MubG9hZF9ydW5uZXIoc2VsZi5leGVjdXRvci5sYXN0X2Vu
dmlyb25tZW50WyJwcm90b2NvbCJdKQorCisgICAgZGVmIHRlYXJkb3duKHNlbGYpOgorICAgICAg
ICB0cnk6CisgICAgICAgICAgICBzZWxmLm1hcmlvbmV0dGUuX3JlcXVlc3RfaW5fYXBwX3NodXRk
b3duKCkKKyAgICAgICAgICAgIHNlbGYubWFyaW9uZXR0ZS5kZWxldGVfc2Vzc2lvbihzZW5kX3Jl
cXVlc3Q9RmFsc2UpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICAjIFRo
aXMgaXMgdHlwaWNhbGx5IGJlY2F1c2UgdGhlIHNlc3Npb24gbmV2ZXIgc3RhcnRlZAorICAgICAg
ICAgICAgcGFzcworICAgICAgICBpZiBzZWxmLm1hcmlvbmV0dGUgaXMgbm90IE5vbmU6CisgICAg
ICAgICAgICBkZWwgc2VsZi5tYXJpb25ldHRlCisgICAgICAgIHN1cGVyKE1hcmlvbmV0dGVQcm90
b2NvbCwgc2VsZikudGVhcmRvd24oKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGlzX2FsaXZl
KHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLm1hcmlvbmV0dGUuY3VycmVu
dF93aW5kb3dfaGFuZGxlCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICBy
ZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiBvbl9lbnZpcm9ubWVu
dF9jaGFuZ2Uoc2VsZiwgb2xkX2Vudmlyb25tZW50LCBuZXdfZW52aXJvbm1lbnQpOgorICAgICAg
ICAjVW5zZXQgYWxsIHRoZSBvbGQgcHJlZnMKKyAgICAgICAgZm9yIG5hbWUgaW4gb2xkX2Vudmly
b25tZW50LmdldCgicHJlZnMiLCB7fSkuaXRlcmtleXMoKToKKyAgICAgICAgICAgIHZhbHVlID0g
c2VsZi5leGVjdXRvci5vcmlnaW5hbF9wcmVmX3ZhbHVlc1tuYW1lXQorICAgICAgICAgICAgaWYg
dmFsdWUgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBzZWxmLnByZWZzLmNsZWFyKG5hbWUpCisg
ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYucHJlZnMuc2V0KG5hbWUsIHZh
bHVlKQorCisgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBuZXdfZW52aXJvbm1lbnQuZ2V0KCJw
cmVmcyIsIHt9KS5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgIHNlbGYuZXhlY3V0b3Iub3JpZ2lu
YWxfcHJlZl92YWx1ZXNbbmFtZV0gPSBzZWxmLmdldF9wcmVmKG5hbWUpCisgICAgICAgICAgICBz
ZWxmLnByZWZzLnNldChuYW1lLCB2YWx1ZSkKKworCitjbGFzcyBFeGVjdXRlQXN5bmNTY3JpcHRS
dW4ob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBmdW5jLCBwcm90b2Nv
bCwgdXJsLCB0aW1lb3V0KToKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKKyAgICAgICAg
c2VsZi5yZXN1bHQgPSAoTm9uZSwgTm9uZSkKKyAgICAgICAgc2VsZi5wcm90b2NvbCA9IHByb3Rv
Y29sCisgICAgICAgIHNlbGYuZnVuYyA9IGZ1bmMKKyAgICAgICAgc2VsZi51cmwgPSB1cmwKKyAg
ICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91dAorICAgICAgICBzZWxmLnJlc3VsdF9mbGFnID0g
dGhyZWFkaW5nLkV2ZW50KCkKKworICAgIGRlZiBydW4oc2VsZik6CisgICAgICAgIGluZGV4ID0g
c2VsZi51cmwucmZpbmQoIi9zdG9yYWdlLyIpCisgICAgICAgIGlmIGluZGV4ICE9IC0xOgorICAg
ICAgICAgICAgIyBDbGVhciBzdG9yYWdlCisgICAgICAgICAgICBzZWxmLnByb3RvY29sLnN0b3Jh
Z2UuY2xlYXJfb3JpZ2luKHNlbGYudXJsKQorCisgICAgICAgIHRpbWVvdXQgPSBzZWxmLnRpbWVv
dXQKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBpZiB0aW1lb3V0IGlzIG5vdCBOb25lOgor
ICAgICAgICAgICAgICAgIHNlbGYucHJvdG9jb2wuYmFzZS5zZXRfdGltZW91dCh0aW1lb3V0ICsg
ZXh0cmFfdGltZW91dCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBXZSBq
dXN0IHdhbnQgaXQgdG8gbmV2ZXIgdGltZSBvdXQsIHJlYWxseSwgYnV0IG1hcmlvbmV0dGUgZG9l
c24ndAorICAgICAgICAgICAgICAgICMgbWFrZSB0aGF0IHBvc3NpYmxlLiBJdCBhbHNvIHNlZW1z
IHRvIHRpbWUgb3V0IGltbWVkaWF0ZWx5IGlmIHRoZQorICAgICAgICAgICAgICAgICMgdGltZW91
dCBpcyBzZXQgdG9vIGhpZ2guIFRoaXMgd29ya3MgYXQgbGVhc3QuCisgICAgICAgICAgICAgICAg
c2VsZi5wcm90b2NvbC5iYXNlLnNldF90aW1lb3V0KDIqKjI4IC0gMSkKKyAgICAgICAgZXhjZXB0
IElPRXJyb3I6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcigiTG9zdCBtYXJpb25ldHRl
IGNvbm5lY3Rpb24gYmVmb3JlIHN0YXJ0aW5nIHRlc3QiKQorICAgICAgICAgICAgcmV0dXJuIFN0
b3AKKworICAgICAgICBleGVjdXRvciA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0ID0gc2VsZi5f
cnVuKQorICAgICAgICBleGVjdXRvci5zdGFydCgpCisKKyAgICAgICAgaWYgdGltZW91dCBpcyBu
b3QgTm9uZToKKyAgICAgICAgICAgIHdhaXRfdGltZW91dCA9IHRpbWVvdXQgKyAyICogZXh0cmFf
dGltZW91dAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgd2FpdF90aW1lb3V0ID0gTm9uZQor
CisgICAgICAgIGZsYWcgPSBzZWxmLnJlc3VsdF9mbGFnLndhaXQod2FpdF90aW1lb3V0KQorCisg
ICAgICAgIGlmIHNlbGYucmVzdWx0ID09IChOb25lLCBOb25lKToKKyAgICAgICAgICAgIHNlbGYu
bG9nZ2VyLmRlYnVnKCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgYSByZXN1bHQiKQorICAgICAgICAg
ICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJFWFRFUk5BTC1USU1FT1VUIiwgTm9uZSkKKyAgICAg
ICAgZWxpZiBzZWxmLnJlc3VsdFsxXSBpcyBOb25lOgorICAgICAgICAgICAgIyBXZSBkaWRuJ3Qg
Z2V0IGFueSBkYXRhIGJhY2sgZnJvbSB0aGUgdGVzdCwgc28gY2hlY2sgaWYgdGhlCisgICAgICAg
ICAgICAjIGJyb3dzZXIgaXMgc3RpbGwgcmVzcG9uc2l2ZQorICAgICAgICAgICAgaWYgc2VsZi5w
cm90b2NvbC5pc19hbGl2ZToKKyAgICAgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNlLCAo
IkVSUk9SIiwgTm9uZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi5y
ZXN1bHQgPSBGYWxzZSwgKCJDUkFTSCIsIE5vbmUpCisgICAgICAgIHJldHVybiBzZWxmLnJlc3Vs
dAorCisgICAgZGVmIF9ydW4oc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYu
cmVzdWx0ID0gVHJ1ZSwgc2VsZi5mdW5jKHNlbGYucHJvdG9jb2wsIHNlbGYudXJsLCBzZWxmLnRp
bWVvdXQpCisgICAgICAgIGV4Y2VwdCBlcnJvcnMuU2NyaXB0VGltZW91dEV4Y2VwdGlvbjoKKyAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJHb3QgYSBtYXJpb25ldHRlIHRpbWVvdXQiKQor
ICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJFWFRFUk5BTC1USU1FT1VUIiwgTm9u
ZSkKKyAgICAgICAgZXhjZXB0IChzb2NrZXQudGltZW91dCwgSU9FcnJvcik6CisgICAgICAgICAg
ICAjIFRoaXMgY2FuIGhhcHBlbiBvbiBhIGNyYXNoCisgICAgICAgICAgICAjIEFsc28sIHNob3Vs
ZCBjaGVjayBhZnRlciB0aGUgdGVzdCBpZiB0aGUgZmlyZWZveCBwcm9jZXNzIGlzIHN0aWxsIHJ1
bm5pbmcKKyAgICAgICAgICAgICMgYW5kIG90aGVyd2lzZSBpZ25vcmUgYW55IG90aGVyIHJlc3Vs
dCBhbmQgc2V0IGl0IHRvIGNyYXNoCisgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNlLCAo
IkNSQVNIIiwgTm9uZSkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAg
ICAgbWVzc2FnZSA9IGdldGF0dHIoZSwgIm1lc3NhZ2UiLCAiIikKKyAgICAgICAgICAgIGlmIG1l
c3NhZ2U6CisgICAgICAgICAgICAgICAgbWVzc2FnZSArPSAiXG4iCisgICAgICAgICAgICBtZXNz
YWdlICs9IHRyYWNlYmFjay5mb3JtYXRfZXhjKGUpCisgICAgICAgICAgICBzZWxmLnJlc3VsdCA9
IEZhbHNlLCAoIkVSUk9SIiwgZSkKKworICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2Vs
Zi5yZXN1bHRfZmxhZy5zZXQoKQorCisKK2NsYXNzIE1hcmlvbmV0dGVUZXN0aGFybmVzc0V4ZWN1
dG9yKFRlc3RoYXJuZXNzRXhlY3V0b3IpOgorICAgIHN1cHBvcnRzX3Rlc3Rkcml2ZXIgPSBUcnVl
CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywgdGltZW91
dF9tdWx0aXBsaWVyPTEsCisgICAgICAgICAgICAgICAgIGNsb3NlX2FmdGVyX2RvbmU9VHJ1ZSwg
ZGVidWdfaW5mbz1Ob25lLCBjYXBhYmlsaXRpZXM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgKipr
d2FyZ3MpOgorICAgICAgICAiIiJNYXJpb25ldHRlLWJhc2VkIGV4ZWN1dG9yIGZvciB0ZXN0aGFy
bmVzcy5qcyB0ZXN0cyIiIgorICAgICAgICBUZXN0aGFybmVzc0V4ZWN1dG9yLl9faW5pdF9fKHNl
bGYsIGJyb3dzZXIsIHNlcnZlcl9jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGltZW91dF9tdWx0aXBsaWVyPXRpbWVvdXRfbXVsdGlwbGllciwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPWRlYnVnX2luZm8pCisKKyAg
ICAgICAgc2VsZi5wcm90b2NvbCA9IE1hcmlvbmV0dGVQcm90b2NvbChzZWxmLCBicm93c2VyLCBj
YXBhYmlsaXRpZXMsIHRpbWVvdXRfbXVsdGlwbGllcikKKyAgICAgICAgc2VsZi5zY3JpcHQgPSBv
cGVuKG9zLnBhdGguam9pbihoZXJlLCAidGVzdGhhcm5lc3NfbWFyaW9uZXR0ZS5qcyIpKS5yZWFk
KCkKKyAgICAgICAgc2VsZi5zY3JpcHRfcmVzdW1lID0gb3Blbihvcy5wYXRoLmpvaW4oaGVyZSwg
InRlc3RoYXJuZXNzX21hcmlvbmV0dGVfcmVzdW1lLmpzIikpLnJlYWQoKQorICAgICAgICBzZWxm
LmNsb3NlX2FmdGVyX2RvbmUgPSBjbG9zZV9hZnRlcl9kb25lCisgICAgICAgIHNlbGYud2luZG93
X2lkID0gc3RyKHV1aWQudXVpZDQoKSkKKworICAgICAgICBzZWxmLm9yaWdpbmFsX3ByZWZfdmFs
dWVzID0ge30KKworICAgICAgICBpZiBtYXJpb25ldHRlIGlzIE5vbmU6CisgICAgICAgICAgICBk
b19kZWxheWVkX2ltcG9ydHMoKQorCisgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gc2VsZi5wcm90b2NvbC5pc19hbGl2ZQorCisgICAgZGVmIG9uX2Vudmlyb25tZW50X2No
YW5nZShzZWxmLCBuZXdfZW52aXJvbm1lbnQpOgorICAgICAgICBzZWxmLnByb3RvY29sLm9uX2Vu
dmlyb25tZW50X2NoYW5nZShzZWxmLmxhc3RfZW52aXJvbm1lbnQsIG5ld19lbnZpcm9ubWVudCkK
KworICAgICAgICBpZiBuZXdfZW52aXJvbm1lbnRbInByb3RvY29sIl0gIT0gc2VsZi5sYXN0X2Vu
dmlyb25tZW50WyJwcm90b2NvbCJdOgorICAgICAgICAgICAgc2VsZi5wcm90b2NvbC50ZXN0aGFy
bmVzcy5sb2FkX3J1bm5lcihuZXdfZW52aXJvbm1lbnRbInByb3RvY29sIl0pCisKKyAgICBkZWYg
ZG9fdGVzdChzZWxmLCB0ZXN0KToKKyAgICAgICAgdGltZW91dCA9ICh0ZXN0LnRpbWVvdXQgKiBz
ZWxmLnRpbWVvdXRfbXVsdGlwbGllciBpZiBzZWxmLmRlYnVnX2luZm8gaXMgTm9uZQorICAgICAg
ICAgICAgICAgICAgIGVsc2UgTm9uZSkKKworICAgICAgICBzdWNjZXNzLCBkYXRhID0gRXhlY3V0
ZUFzeW5jU2NyaXB0UnVuKHNlbGYubG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuZG9fdGVzdGhhcm5lc3MsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wcm90b2NvbCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRlc3RfdXJsKHRlc3QpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQpLnJ1
bigpCisgICAgICAgIGlmIHN1Y2Nlc3M6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5jb252ZXJ0
X3Jlc3VsdCh0ZXN0LCBkYXRhKQorCisgICAgICAgIHJldHVybiAodGVzdC5yZXN1bHRfY2xzKCpk
YXRhKSwgW10pCisKKyAgICBkZWYgZG9fdGVzdGhhcm5lc3Moc2VsZiwgcHJvdG9jb2wsIHVybCwg
dGltZW91dCk6CisgICAgICAgIHByb3RvY29sLmJhc2UuZXhlY3V0ZV9zY3JpcHQoImlmICh3aW5k
b3cud2luKSB7d2luZG93Lndpbi5jbG9zZSgpfSIpCisgICAgICAgIHBhcmVudF93aW5kb3cgPSBw
cm90b2NvbC50ZXN0aGFybmVzcy5jbG9zZV9vbGRfd2luZG93cyhwcm90b2NvbCkKKworICAgICAg
ICBpZiB0aW1lb3V0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgdGltZW91dF9tcyA9IHN0cih0
aW1lb3V0ICogMTAwMCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHRpbWVvdXRfbXMgPSAi
bnVsbCIKKworICAgICAgICBmb3JtYXRfbWFwID0geyJhYnNfdXJsIjogdXJsLAorICAgICAgICAg
ICAgICAgICAgICAgICJ1cmwiOiBzdHJpcF9zZXJ2ZXIodXJsKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAid2luZG93X2lkIjogc2VsZi53aW5kb3dfaWQsCisgICAgICAgICAgICAgICAgICAgICAg
InRpbWVvdXRfbXVsdGlwbGllciI6IHNlbGYudGltZW91dF9tdWx0aXBsaWVyLAorICAgICAgICAg
ICAgICAgICAgICAgICJ0aW1lb3V0IjogdGltZW91dF9tcywKKyAgICAgICAgICAgICAgICAgICAg
ICAiZXhwbGljaXRfdGltZW91dCI6IHRpbWVvdXQgaXMgTm9uZX0KKworICAgICAgICBzY3JpcHQg
PSBzZWxmLnNjcmlwdCAlIGZvcm1hdF9tYXAKKworICAgICAgICBydiA9IHByb3RvY29sLmJhc2Uu
ZXhlY3V0ZV9zY3JpcHQoc2NyaXB0KQorICAgICAgICB0ZXN0X3dpbmRvdyA9IHByb3RvY29sLnRl
c3RoYXJuZXNzLmdldF90ZXN0X3dpbmRvdyhzZWxmLndpbmRvd19pZCwgcGFyZW50X3dpbmRvdykK
KworICAgICAgICBoYW5kbGVyID0gQ2FsbGJhY2tIYW5kbGVyKHNlbGYubG9nZ2VyLCBwcm90b2Nv
bCwgdGVzdF93aW5kb3cpCisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICByZXN1bHQg
PSBwcm90b2NvbC5iYXNlLmV4ZWN1dGVfc2NyaXB0KAorICAgICAgICAgICAgICAgIHNlbGYuc2Ny
aXB0X3Jlc3VtZSAlIGZvcm1hdF9tYXAsIGFzeW5jPVRydWUpCisgICAgICAgICAgICBkb25lLCBy
diA9IGhhbmRsZXIocmVzdWx0KQorICAgICAgICAgICAgaWYgZG9uZToKKyAgICAgICAgICAgICAg
ICBicmVhaworICAgICAgICByZXR1cm4gcnYKKworCitjbGFzcyBNYXJpb25ldHRlUmVmVGVzdEV4
ZWN1dG9yKFJlZlRlc3RFeGVjdXRvcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGJyb3dzZXIs
IHNlcnZlcl9jb25maWcsIHRpbWVvdXRfbXVsdGlwbGllcj0xLAorICAgICAgICAgICAgICAgICBz
Y3JlZW5zaG90X2NhY2hlPU5vbmUsIGNsb3NlX2FmdGVyX2RvbmU9VHJ1ZSwKKyAgICAgICAgICAg
ICAgICAgZGVidWdfaW5mbz1Ob25lLCByZWZ0ZXN0X2ludGVybmFsPUZhbHNlLAorICAgICAgICAg
ICAgICAgICByZWZ0ZXN0X3NjcmVlbnNob3Q9InVuZXhwZWN0ZWQiLAorICAgICAgICAgICAgICAg
ICBncm91cF9tZXRhZGF0YT1Ob25lLCBjYXBhYmlsaXRpZXM9Tm9uZSwgKiprd2FyZ3MpOgorICAg
ICAgICAiIiJNYXJpb25ldHRlLWJhc2VkIGV4ZWN1dG9yIGZvciByZWZ0ZXN0cyIiIgorICAgICAg
ICBSZWZUZXN0RXhlY3V0b3IuX19pbml0X18oc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJyb3dzZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2
ZXJfY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyZWVuc2hvdF9j
YWNoZT1zY3JlZW5zaG90X2NhY2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGltZW91dF9tdWx0aXBsaWVyPXRpbWVvdXRfbXVsdGlwbGllciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRlYnVnX2luZm89ZGVidWdfaW5mbykKKyAgICAgICAgc2VsZi5wcm90
b2NvbCA9IE1hcmlvbmV0dGVQcm90b2NvbChzZWxmLCBicm93c2VyLCBjYXBhYmlsaXRpZXMsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dF9tdWx0aXBs
aWVyKQorICAgICAgICBzZWxmLmltcGxlbWVudGF0aW9uID0gKEludGVybmFsUmVmVGVzdEltcGxl
bWVudGF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgcmVmdGVzdF9pbnRl
cm5hbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgUmVmVGVzdEltcGxlbWVu
dGF0aW9uKShzZWxmKQorICAgICAgICBzZWxmLmltcGxlbWVudGF0aW9uX2t3YXJncyA9ICh7InNj
cmVlbnNob3QiOiByZWZ0ZXN0X3NjcmVlbnNob3R9IGlmCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlZnRlc3RfaW50ZXJuYWwgZWxzZSB7fSkKKworICAgICAgICBzZWxm
LmNsb3NlX2FmdGVyX2RvbmUgPSBjbG9zZV9hZnRlcl9kb25lCisgICAgICAgIHNlbGYuaGFzX3dp
bmRvdyA9IEZhbHNlCisgICAgICAgIHNlbGYub3JpZ2luYWxfcHJlZl92YWx1ZXMgPSB7fQorICAg
ICAgICBzZWxmLmdyb3VwX21ldGFkYXRhID0gZ3JvdXBfbWV0YWRhdGEKKworICAgICAgICB3aXRo
IG9wZW4ob3MucGF0aC5qb2luKGhlcmUsICJyZWZ0ZXN0LmpzIikpIGFzIGY6CisgICAgICAgICAg
ICBzZWxmLnNjcmlwdCA9IGYucmVhZCgpCisgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4o
aGVyZSwgInJlZnRlc3Qtd2FpdF9tYXJpb25ldHRlLmpzIikpIGFzIGY6CisgICAgICAgICAgICBz
ZWxmLndhaXRfc2NyaXB0ID0gZi5yZWFkKCkKKworICAgIGRlZiBzZXR1cChzZWxmLCBydW5uZXIp
OgorICAgICAgICBzdXBlcihzZWxmLl9fY2xhc3NfXywgc2VsZikuc2V0dXAocnVubmVyKQorICAg
ICAgICBzZWxmLmltcGxlbWVudGF0aW9uLnNldHVwKCoqc2VsZi5pbXBsZW1lbnRhdGlvbl9rd2Fy
Z3MpCisKKyAgICBkZWYgdGVhcmRvd24oc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IHNlbGYuaW1wbGVtZW50YXRpb24udGVhcmRvd24oKQorICAgICAgICAgICAgaGFuZGxlID0gc2Vs
Zi5wcm90b2NvbC5tYXJpb25ldHRlLndpbmRvd19oYW5kbGVzWzBdCisgICAgICAgICAgICBzZWxm
LnByb3RvY29sLm1hcmlvbmV0dGUuc3dpdGNoX3RvX3dpbmRvdyhoYW5kbGUpCisgICAgICAgICAg
ICBzdXBlcihzZWxmLl9fY2xhc3NfXywgc2VsZikudGVhcmRvd24oKQorICAgICAgICBleGNlcHQg
RXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAjIElnbm9yZSBlcnJvcnMgZHVyaW5nIHRlYXJk
b3duCisgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKHRyYWNlYmFjay5mb3JtYXRfZXhj
KGUpKQorCisgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5wcm90
b2NvbC5pc19hbGl2ZQorCisgICAgZGVmIG9uX2Vudmlyb25tZW50X2NoYW5nZShzZWxmLCBuZXdf
ZW52aXJvbm1lbnQpOgorICAgICAgICBzZWxmLnByb3RvY29sLm9uX2Vudmlyb25tZW50X2NoYW5n
ZShzZWxmLmxhc3RfZW52aXJvbm1lbnQsIG5ld19lbnZpcm9ubWVudCkKKworICAgIGRlZiBkb190
ZXN0KHNlbGYsIHRlc3QpOgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShzZWxmLmltcGxlbWVu
dGF0aW9uLCBJbnRlcm5hbFJlZlRlc3RJbXBsZW1lbnRhdGlvbik6CisgICAgICAgICAgICBpZiBz
ZWxmLmNsb3NlX2FmdGVyX2RvbmUgYW5kIHNlbGYuaGFzX3dpbmRvdzoKKyAgICAgICAgICAgICAg
ICBzZWxmLnByb3RvY29sLm1hcmlvbmV0dGUuY2xvc2UoKQorICAgICAgICAgICAgICAgIHNlbGYu
cHJvdG9jb2wubWFyaW9uZXR0ZS5zd2l0Y2hfdG9fd2luZG93KAorICAgICAgICAgICAgICAgICAg
ICBzZWxmLnByb3RvY29sLm1hcmlvbmV0dGUud2luZG93X2hhbmRsZXNbLTFdKQorICAgICAgICAg
ICAgICAgIHNlbGYuaGFzX3dpbmRvdyA9IEZhbHNlCisKKyAgICAgICAgICAgIGlmIG5vdCBzZWxm
Lmhhc193aW5kb3c6CisgICAgICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5iYXNlLmV4ZWN1dGVf
c2NyaXB0KHNlbGYuc2NyaXB0KQorICAgICAgICAgICAgICAgIHNlbGYucHJvdG9jb2wuYmFzZS5z
ZXRfd2luZG93KHNlbGYucHJvdG9jb2wubWFyaW9uZXR0ZS53aW5kb3dfaGFuZGxlc1stMV0pCisg
ICAgICAgICAgICAgICAgc2VsZi5oYXNfd2luZG93ID0gVHJ1ZQorCisgICAgICAgIHJlc3VsdCA9
IHNlbGYuaW1wbGVtZW50YXRpb24ucnVuX3Rlc3QodGVzdCkKKyAgICAgICAgcmV0dXJuIHNlbGYu
Y29udmVydF9yZXN1bHQodGVzdCwgcmVzdWx0KQorCisgICAgZGVmIHNjcmVlbnNob3Qoc2VsZiwg
dGVzdCwgdmlld3BvcnRfc2l6ZSwgZHBpKToKKyAgICAgICAgIyBodHRwczovL2dpdGh1Yi5jb20v
dzNjL3dwdHJ1bm5lci9pc3N1ZXMvMTY2CisgICAgICAgIGFzc2VydCB2aWV3cG9ydF9zaXplIGlz
IE5vbmUKKyAgICAgICAgYXNzZXJ0IGRwaSBpcyBOb25lCisKKyAgICAgICAgdGltZW91dCA9IHNl
bGYudGltZW91dF9tdWx0aXBsaWVyICogdGVzdC50aW1lb3V0IGlmIHNlbGYuZGVidWdfaW5mbyBp
cyBOb25lIGVsc2UgTm9uZQorCisgICAgICAgIHRlc3RfdXJsID0gc2VsZi50ZXN0X3VybCh0ZXN0
KQorCisgICAgICAgIHJldHVybiBFeGVjdXRlQXN5bmNTY3JpcHRSdW4oc2VsZi5sb2dnZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2NyZWVuc2hvdCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnByb3RvY29sLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfdXJsLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQpLnJ1bigpCisKKyAgICBkZWYgX3NjcmVlbnNo
b3Qoc2VsZiwgbWFyaW9uZXR0ZSwgdXJsLCB0aW1lb3V0KToKKyAgICAgICAgbWFyaW9uZXR0ZS5u
YXZpZ2F0ZSh1cmwpCisKKyAgICAgICAgbWFyaW9uZXR0ZS5leGVjdXRlX2FzeW5jX3NjcmlwdChz
ZWxmLndhaXRfc2NyaXB0KQorCisgICAgICAgIHNjcmVlbnNob3QgPSBtYXJpb25ldHRlLnNjcmVl
bnNob3QoZnVsbD1GYWxzZSkKKyAgICAgICAgIyBzdHJpcCBvZmYgdGhlIGRhdGE6aW1nL3BuZywg
cGFydCBvZiB0aGUgdXJsCisgICAgICAgIGlmIHNjcmVlbnNob3Quc3RhcnRzd2l0aCgiZGF0YTpp
bWFnZS9wbmc7YmFzZTY0LCIpOgorICAgICAgICAgICAgc2NyZWVuc2hvdCA9IHNjcmVlbnNob3Qu
c3BsaXQoIiwiLCAxKVsxXQorCisgICAgICAgIHJldHVybiBzY3JlZW5zaG90CisKKworY2xhc3Mg
SW50ZXJuYWxSZWZUZXN0SW1wbGVtZW50YXRpb24ob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgZXhlY3V0b3IpOgorICAgICAgICBzZWxmLnRpbWVvdXRfbXVsdGlwbGllciA9IGV4ZWN1
dG9yLnRpbWVvdXRfbXVsdGlwbGllcgorICAgICAgICBzZWxmLmV4ZWN1dG9yID0gZXhlY3V0b3IK
KworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBsb2dnZXIoc2VsZik6CisgICAgICAgIHJldHVybiBz
ZWxmLmV4ZWN1dG9yLmxvZ2dlcgorCisgICAgZGVmIHNldHVwKHNlbGYsIHNjcmVlbnNob3Q9InVu
ZXhwZWN0ZWQiKToKKyAgICAgICAgZGF0YSA9IHsic2NyZWVuc2hvdCI6IHNjcmVlbnNob3R9Cisg
ICAgICAgIGlmIHNlbGYuZXhlY3V0b3IuZ3JvdXBfbWV0YWRhdGEgaXMgbm90IE5vbmU6CisgICAg
ICAgICAgICBkYXRhWyJ1cmxDb3VudCJdID0ge3VybHBhcnNlLnVybGpvaW4oc2VsZi5leGVjdXRv
ci5zZXJ2ZXJfdXJsKGtleVswXSksIGtleVsxXSk6dmFsdWUKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gc2VsZi5leGVjdXRvci5ncm91cF9tZXRhZGF0
YS5nZXQoInVybF9jb3VudCIsIHt9KS5pdGVyaXRlbXMoKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiB2YWx1ZSA+IDF9CisgICAgICAgIHNlbGYuZXhlY3V0b3IucHJvdG9jb2wu
bWFyaW9uZXR0ZS5zZXRfY29udGV4dChzZWxmLmV4ZWN1dG9yLnByb3RvY29sLm1hcmlvbmV0dGUu
Q09OVEVYVF9DSFJPTUUpCisgICAgICAgIHNlbGYuZXhlY3V0b3IucHJvdG9jb2wubWFyaW9uZXR0
ZS5fc2VuZF9tZXNzYWdlKCJyZWZ0ZXN0OnNldHVwIiwgZGF0YSkKKworICAgIGRlZiBydW5fdGVz
dChzZWxmLCB0ZXN0KToKKyAgICAgICAgdmlld3BvcnRfc2l6ZSA9IHRlc3Qudmlld3BvcnRfc2l6
ZQorICAgICAgICBkcGkgPSB0ZXN0LmRwaQorCisgICAgICAgIHJlZmVyZW5jZXMgPSBzZWxmLmdl
dF9yZWZlcmVuY2VzKHRlc3QpCisgICAgICAgIHJ2ID0gc2VsZi5leGVjdXRvci5wcm90b2NvbC5t
YXJpb25ldHRlLl9zZW5kX21lc3NhZ2UoInJlZnRlc3Q6cnVuIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7InRlc3QiOiBzZWxm
LmV4ZWN1dG9yLnRlc3RfdXJsKHRlc3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmZXJlbmNlcyI6IHJlZmVyZW5jZXMs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJleHBlY3RlZCI6IHRlc3QuZXhwZWN0ZWQoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRpbWVvdXQiOiB0ZXN0
LnRpbWVvdXQgKiAxMDAwfSlbInZhbHVlIl0KKyAgICAgICAgcmV0dXJuIHJ2CisKKyAgICBkZWYg
Z2V0X3JlZmVyZW5jZXMoc2VsZiwgbm9kZSk6CisgICAgICAgIHJ2ID0gW10KKyAgICAgICAgZm9y
IGl0ZW0sIHJlbGF0aW9uIGluIG5vZGUucmVmZXJlbmNlczoKKyAgICAgICAgICAgIHJ2LmFwcGVu
ZChbc2VsZi5leGVjdXRvci50ZXN0X3VybChpdGVtKSwgc2VsZi5nZXRfcmVmZXJlbmNlcyhpdGVt
KSwgcmVsYXRpb25dKQorICAgICAgICByZXR1cm4gcnYKKworICAgIGRlZiB0ZWFyZG93bihzZWxm
KToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5leGVjdXRvci5wcm90b2NvbC5tYXJp
b25ldHRlLl9zZW5kX21lc3NhZ2UoInJlZnRlc3Q6dGVhcmRvd24iLCB7fSkKKyAgICAgICAgICAg
IHNlbGYuZXhlY3V0b3IucHJvdG9jb2wubWFyaW9uZXR0ZS5zZXRfY29udGV4dChzZWxmLmV4ZWN1
dG9yLnByb3RvY29sLm1hcmlvbmV0dGUuQ09OVEVYVF9DT05URU5UKQorICAgICAgICBleGNlcHQg
RXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAjIElnbm9yZSBlcnJvcnMgZHVyaW5nIHRlYXJk
b3duCisgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKHRyYWNlYmFjay5mb3JtYXRfZXhj
KGUpKQorCisKKworY2xhc3MgR2Vja29Ecml2ZXJQcm90b2NvbChXZWJEcml2ZXJQcm90b2NvbCk6
CisgICAgc2VydmVyX2NscyA9IEdlY2tvRHJpdmVyU2VydmVyCisKKworY2xhc3MgTWFyaW9uZXR0
ZVdkc3BlY0V4ZWN1dG9yKFdkc3BlY0V4ZWN1dG9yKToKKyAgICBwcm90b2NvbF9jbHMgPSBHZWNr
b0RyaXZlclByb3RvY29sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1
dG9yb3BlcmEucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yb3BlcmEucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNTVmMWYwZDU5NTkwODA3NDUyYTlmZmMyMDFhZDhkMGY4Zjk3MmZjZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JvcGVyYS5weQpAQCAt
MCwwICsxLDEwIEBACitmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgT3BlcmFEcml2ZXJT
ZXJ2ZXIKK2Zyb20gLmJhc2UgaW1wb3J0IFdkc3BlY0V4ZWN1dG9yLCBXZWJEcml2ZXJQcm90b2Nv
bAorCisKK2NsYXNzIE9wZXJhRHJpdmVyUHJvdG9jb2woV2ViRHJpdmVyUHJvdG9jb2wpOgorICAg
IHNlcnZlcl9jbHMgPSBPcGVyYURyaXZlclNlcnZlcgorCisKK2NsYXNzIE9wZXJhRHJpdmVyV2Rz
cGVjRXhlY3V0b3IoV2RzcGVjRXhlY3V0b3IpOgorICAgIHByb3RvY29sX2NscyA9IE9wZXJhRHJp
dmVyUHJvdG9jb2wKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3Jz
ZWxlbml1bS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZWxlbml1bS5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wYjcxMTg5OTNkODI3NjZlZGU5Mzc4ZWM0ZjNkOGMxZDkzMjgzN2Q1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlbGVuaXVtLnB5
CkBAIC0wLDAgKzEsMzYwIEBACitpbXBvcnQganNvbgoraW1wb3J0IG9zCitpbXBvcnQgc29ja2V0
CitpbXBvcnQgc3lzCitpbXBvcnQgdGhyZWFkaW5nCitpbXBvcnQgdGltZQoraW1wb3J0IHRyYWNl
YmFjaworaW1wb3J0IHVybHBhcnNlCitpbXBvcnQgdXVpZAorCitmcm9tIC5iYXNlIGltcG9ydCAo
Q2FsbGJhY2tIYW5kbGVyLAorICAgICAgICAgICAgICAgICAgIFJlZlRlc3RFeGVjdXRvciwKKyAg
ICAgICAgICAgICAgICAgICBSZWZUZXN0SW1wbGVtZW50YXRpb24sCisgICAgICAgICAgICAgICAg
ICAgVGVzdGhhcm5lc3NFeGVjdXRvciwKKyAgICAgICAgICAgICAgICAgICBleHRyYV90aW1lb3V0
LAorICAgICAgICAgICAgICAgICAgIHN0cmlwX3NlcnZlcikKK2Zyb20gLnByb3RvY29sIGltcG9y
dCAoQmFzZVByb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgVGVzdGhhcm5lc3NQ
cm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIFByb3RvY29sLAorICAgICAgICAg
ICAgICAgICAgICAgICBTZWxlY3RvclByb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgQ2xpY2tQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIFRlc3REcml2ZXJQ
cm90b2NvbFBhcnQpCitmcm9tIC4udGVzdHJ1bm5lciBpbXBvcnQgU3RvcAorCitoZXJlID0gb3Mu
cGF0aC5qb2luKG9zLnBhdGguc3BsaXQoX19maWxlX18pWzBdKQorCit3ZWJkcml2ZXIgPSBOb25l
CitleGNlcHRpb25zID0gTm9uZQorUmVtb3RlQ29ubmVjdGlvbiA9IE5vbmUKKworCitkZWYgZG9f
ZGVsYXllZF9pbXBvcnRzKCk6CisgICAgZ2xvYmFsIHdlYmRyaXZlcgorICAgIGdsb2JhbCBleGNl
cHRpb25zCisgICAgZ2xvYmFsIFJlbW90ZUNvbm5lY3Rpb24KKyAgICBmcm9tIHNlbGVuaXVtIGlt
cG9ydCB3ZWJkcml2ZXIKKyAgICBmcm9tIHNlbGVuaXVtLmNvbW1vbiBpbXBvcnQgZXhjZXB0aW9u
cworICAgIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnJlbW90ZS5yZW1vdGVfY29ubmVjdGlvbiBp
bXBvcnQgUmVtb3RlQ29ubmVjdGlvbgorCisKK2NsYXNzIFNlbGVuaXVtQmFzZVByb3RvY29sUGFy
dChCYXNlUHJvdG9jb2xQYXJ0KToKKyAgICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNlbGYu
d2ViZHJpdmVyID0gc2VsZi5wYXJlbnQud2ViZHJpdmVyCisKKyAgICBkZWYgZXhlY3V0ZV9zY3Jp
cHQoc2VsZiwgc2NyaXB0LCBhc3luYz1GYWxzZSk6CisgICAgICAgIG1ldGhvZCA9IHNlbGYud2Vi
ZHJpdmVyLmV4ZWN1dGVfYXN5bmNfc2NyaXB0IGlmIGFzeW5jIGVsc2Ugc2VsZi53ZWJkcml2ZXIu
ZXhlY3V0ZV9zY3JpcHQKKyAgICAgICAgcmV0dXJuIG1ldGhvZChzY3JpcHQpCisKKyAgICBkZWYg
c2V0X3RpbWVvdXQoc2VsZiwgdGltZW91dCk6CisgICAgICAgIHNlbGYud2ViZHJpdmVyLnNldF9z
Y3JpcHRfdGltZW91dCh0aW1lb3V0ICogMTAwMCkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBj
dXJyZW50X3dpbmRvdyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYud2ViZHJpdmVyLmN1cnJl
bnRfd2luZG93X2hhbmRsZQorCisgICAgZGVmIHNldF93aW5kb3coc2VsZiwgaGFuZGxlKToKKyAg
ICAgICAgc2VsZi53ZWJkcml2ZXIuc3dpdGNoX3RvX3dpbmRvdyhoYW5kbGUpCisKKyAgICBkZWYg
d2FpdChzZWxmKToKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIHRyeToKKyAgICAg
ICAgICAgICAgICBzZWxmLndlYmRyaXZlci5leGVjdXRlX2FzeW5jX3NjcmlwdCgiIikKKyAgICAg
ICAgICAgIGV4Y2VwdCBleGNlcHRpb25zLlRpbWVvdXRFeGNlcHRpb246CisgICAgICAgICAgICAg
ICAgcGFzcworICAgICAgICAgICAgZXhjZXB0IChzb2NrZXQudGltZW91dCwgZXhjZXB0aW9ucy5O
b1N1Y2hXaW5kb3dFeGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbnMuRXJy
b3JJblJlc3BvbnNlRXhjZXB0aW9uLCBJT0Vycm9yKToKKyAgICAgICAgICAgICAgICBicmVhawor
ICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgIHNlbGYu
bG9nZ2VyLmVycm9yKHRyYWNlYmFjay5mb3JtYXRfZXhjKGUpKQorICAgICAgICAgICAgICAgIGJy
ZWFrCisKKworY2xhc3MgU2VsZW5pdW1UZXN0aGFybmVzc1Byb3RvY29sUGFydChUZXN0aGFybmVz
c1Byb3RvY29sUGFydCk6CisgICAgZGVmIHNldHVwKHNlbGYpOgorICAgICAgICBzZWxmLndlYmRy
aXZlciA9IHNlbGYucGFyZW50LndlYmRyaXZlcgorCisgICAgZGVmIGxvYWRfcnVubmVyKHNlbGYs
IHVybF9wcm90b2NvbCk6CisgICAgICAgIHVybCA9IHVybHBhcnNlLnVybGpvaW4oc2VsZi5wYXJl
bnQuZXhlY3V0b3Iuc2VydmVyX3VybCh1cmxfcHJvdG9jb2wpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIvdGVzdGhhcm5lc3NfcnVubmVyLmh0bWwiKQorICAgICAgICBzZWxmLmxv
Z2dlci5kZWJ1ZygiTG9hZGluZyAlcyIgJSB1cmwpCisgICAgICAgIHNlbGYud2ViZHJpdmVyLmdl
dCh1cmwpCisgICAgICAgIHNlbGYud2ViZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJkb2N1bWVudC50
aXRsZSA9ICclcyciICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhy
ZWFkaW5nLmN1cnJlbnRfdGhyZWFkKCkubmFtZS5yZXBsYWNlKCInIiwgJyInKSkKKworICAgIGRl
ZiBjbG9zZV9vbGRfd2luZG93cyhzZWxmKToKKyAgICAgICAgZXhjbHVkZSA9IHNlbGYud2ViZHJp
dmVyLmN1cnJlbnRfd2luZG93X2hhbmRsZQorICAgICAgICBoYW5kbGVzID0gW2l0ZW0gZm9yIGl0
ZW0gaW4gc2VsZi53ZWJkcml2ZXIud2luZG93X2hhbmRsZXMgaWYgaXRlbSAhPSBleGNsdWRlXQor
ICAgICAgICBmb3IgaGFuZGxlIGluIGhhbmRsZXM6CisgICAgICAgICAgICB0cnk6CisgICAgICAg
ICAgICAgICAgc2VsZi53ZWJkcml2ZXIuc3dpdGNoX3RvX3dpbmRvdyhoYW5kbGUpCisgICAgICAg
ICAgICAgICAgc2VsZi53ZWJkcml2ZXIuY2xvc2UoKQorICAgICAgICAgICAgZXhjZXB0IGV4Y2Vw
dGlvbnMuTm9TdWNoV2luZG93RXhjZXB0aW9uOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAg
ICAgc2VsZi53ZWJkcml2ZXIuc3dpdGNoX3RvX3dpbmRvdyhleGNsdWRlKQorICAgICAgICByZXR1
cm4gZXhjbHVkZQorCisgICAgZGVmIGdldF90ZXN0X3dpbmRvdyhzZWxmLCB3aW5kb3dfaWQsIHBh
cmVudCk6CisgICAgICAgIHRlc3Rfd2luZG93ID0gTm9uZQorICAgICAgICBpZiB3aW5kb3dfaWQ6
CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgIyBUcnkgdGhpcywgaXQncyBpbiBM
ZXZlbCAxIGJ1dCBub3RoaW5nIHN1cHBvcnRzIGl0IHlldAorICAgICAgICAgICAgICAgIHdpbl9z
ID0gc2VsZi53ZWJkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInJldHVybiB3aW5kb3dbJyVzJ107IiAl
IHNlbGYud2luZG93X2lkKQorICAgICAgICAgICAgICAgIHdpbl9vYmogPSBqc29uLmxvYWRzKHdp
bl9zKQorICAgICAgICAgICAgICAgIHRlc3Rfd2luZG93ID0gd2luX29ialsid2luZG93LWZjYzYt
MTFlNS1iNGY4LTMzMGE4OGFiOWQ3ZiJdCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgor
ICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICBpZiB0ZXN0X3dpbmRvdyBpcyBOb25lOgor
ICAgICAgICAgICAgYWZ0ZXIgPSBzZWxmLndlYmRyaXZlci53aW5kb3dfaGFuZGxlcworICAgICAg
ICAgICAgaWYgbGVuKGFmdGVyKSA9PSAyOgorICAgICAgICAgICAgICAgIHRlc3Rfd2luZG93ID0g
bmV4dChpdGVyKHNldChhZnRlcikgLSBzZXQoW3BhcmVudF0pKSkKKyAgICAgICAgICAgIGVsaWYg
YWZ0ZXJbMF0gPT0gcGFyZW50IGFuZCBsZW4oYWZ0ZXIpID4gMjoKKyAgICAgICAgICAgICAgICAj
IEhvcGUgdGhlIGZpcnN0IG9uZSBoZXJlIGlzIHRoZSB0ZXN0IHdpbmRvdworICAgICAgICAgICAg
ICAgIHRlc3Rfd2luZG93ID0gYWZ0ZXJbMV0KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJ1bmFibGUgdG8gZmluZCB0ZXN0IHdpbmRvdyIpCisKKyAg
ICAgICAgYXNzZXJ0IHRlc3Rfd2luZG93ICE9IHBhcmVudAorICAgICAgICByZXR1cm4gdGVzdF93
aW5kb3cKKworCitjbGFzcyBTZWxlbml1bVNlbGVjdG9yUHJvdG9jb2xQYXJ0KFNlbGVjdG9yUHJv
dG9jb2xQYXJ0KToKKyAgICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNlbGYud2ViZHJpdmVy
ID0gc2VsZi5wYXJlbnQud2ViZHJpdmVyCisKKyAgICBkZWYgZWxlbWVudHNfYnlfc2VsZWN0b3Io
c2VsZiwgc2VsZWN0b3IpOgorICAgICAgICByZXR1cm4gc2VsZi53ZWJkcml2ZXIuZmluZF9lbGVt
ZW50c19ieV9jc3Nfc2VsZWN0b3Ioc2VsZWN0b3IpCisKKworY2xhc3MgU2VsZW5pdW1DbGlja1By
b3RvY29sUGFydChDbGlja1Byb3RvY29sUGFydCk6CisgICAgZGVmIHNldHVwKHNlbGYpOgorICAg
ICAgICBzZWxmLndlYmRyaXZlciA9IHNlbGYucGFyZW50LndlYmRyaXZlcgorCisgICAgZGVmIGVs
ZW1lbnQoc2VsZiwgZWxlbWVudCk6CisgICAgICAgIHJldHVybiBlbGVtZW50LmNsaWNrKCkKKwor
CitjbGFzcyBTZWxlbml1bVRlc3REcml2ZXJQcm90b2NvbFBhcnQoVGVzdERyaXZlclByb3RvY29s
UGFydCk6CisgICAgZGVmIHNldHVwKHNlbGYpOgorICAgICAgICBzZWxmLndlYmRyaXZlciA9IHNl
bGYucGFyZW50LndlYmRyaXZlcgorCisgICAgZGVmIHNlbmRfbWVzc2FnZShzZWxmLCBtZXNzYWdl
X3R5cGUsIHN0YXR1cywgbWVzc2FnZT1Ob25lKToKKyAgICAgICAgb2JqID0geworICAgICAgICAg
ICAgInR5cGUiOiAidGVzdGRyaXZlci0lcyIgJSBzdHIobWVzc2FnZV90eXBlKSwKKyAgICAgICAg
ICAgICJzdGF0dXMiOiBzdHIoc3RhdHVzKQorICAgICAgICB9CisgICAgICAgIGlmIG1lc3NhZ2U6
CisgICAgICAgICAgICBvYmpbIm1lc3NhZ2UiXSA9IHN0cihtZXNzYWdlKQorICAgICAgICBzZWxm
LndlYmRyaXZlci5leGVjdXRlX3NjcmlwdCgid2luZG93LnBvc3RNZXNzYWdlKCVzLCAnKicpIiAl
IGpzb24uZHVtcHMob2JqKSkKKworCitjbGFzcyBTZWxlbml1bVByb3RvY29sKFByb3RvY29sKToK
KyAgICBpbXBsZW1lbnRzID0gW1NlbGVuaXVtQmFzZVByb3RvY29sUGFydCwKKyAgICAgICAgICAg
ICAgICAgIFNlbGVuaXVtVGVzdGhhcm5lc3NQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAg
ICBTZWxlbml1bVNlbGVjdG9yUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgU2VsZW5p
dW1DbGlja1Byb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgIFNlbGVuaXVtVGVzdERyaXZl
clByb3RvY29sUGFydF0KKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleGVjdXRvciwgYnJvd3Nl
ciwgY2FwYWJpbGl0aWVzLCAqKmt3YXJncyk6CisgICAgICAgIGRvX2RlbGF5ZWRfaW1wb3J0cygp
CisKKyAgICAgICAgc3VwZXIoU2VsZW5pdW1Qcm90b2NvbCwgc2VsZikuX19pbml0X18oZXhlY3V0
b3IsIGJyb3dzZXIpCisgICAgICAgIHNlbGYuY2FwYWJpbGl0aWVzID0gY2FwYWJpbGl0aWVzCisg
ICAgICAgIHNlbGYudXJsID0gYnJvd3Nlci53ZWJkcml2ZXJfdXJsCisgICAgICAgIHNlbGYud2Vi
ZHJpdmVyID0gTm9uZQorCisgICAgZGVmIGNvbm5lY3Qoc2VsZik6CisgICAgICAgICIiIkNvbm5l
Y3QgdG8gYnJvd3NlciB2aWEgU2VsZW5pdW0ncyBXZWJEcml2ZXIgaW1wbGVtZW50YXRpb24uIiIi
CisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJDb25uZWN0aW5nIHRvIFNlbGVuaXVtIG9uIFVS
TDogJXMiICUgc2VsZi51cmwpCisKKyAgICAgICAgc2VsZi53ZWJkcml2ZXIgPSB3ZWJkcml2ZXIu
UmVtb3RlKGNvbW1hbmRfZXhlY3V0b3I9UmVtb3RlQ29ubmVjdGlvbihzZWxmLnVybC5zdHJpcCgi
LyIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVfaXA9RmFsc2UpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzaXJlZF9jYXBhYmlsaXRpZXM9c2VsZi5j
YXBhYmlsaXRpZXMpCisKKyAgICBkZWYgYWZ0ZXJfY29uZWN0KHNlbGYpOgorICAgICAgICBwYXNz
CisKKyAgICBkZWYgdGVhcmRvd24oc2VsZik6CisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJI
YW5naW5nIHVwIG9uIFNlbGVuaXVtIHNlc3Npb24iKQorICAgICAgICB0cnk6CisgICAgICAgICAg
ICBzZWxmLndlYmRyaXZlci5xdWl0KCkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAg
ICAgICAgIHBhc3MKKyAgICAgICAgZGVsIHNlbGYud2ViZHJpdmVyCisKKyAgICBkZWYgaXNfYWxp
dmUoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgR2V0IGEgc2ltcGxlIHByb3Bl
cnR5IG92ZXIgdGhlIGNvbm5lY3Rpb24KKyAgICAgICAgICAgIHNlbGYud2ViZHJpdmVyLmN1cnJl
bnRfd2luZG93X2hhbmRsZQorICAgICAgICAjIFRPRE8gd2hhdCBleGNlcHRpb24/CisgICAgICAg
IGV4Y2VwdCAoc29ja2V0LnRpbWVvdXQsIGV4Y2VwdGlvbnMuRXJyb3JJblJlc3BvbnNlRXhjZXB0
aW9uKToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICByZXR1cm4gVHJ1ZQorCisg
ICAgZGVmIGFmdGVyX2Nvbm5lY3Qoc2VsZik6CisgICAgICAgIHNlbGYudGVzdGhhcm5lc3MubG9h
ZF9ydW5uZXIoc2VsZi5leGVjdXRvci5sYXN0X2Vudmlyb25tZW50WyJwcm90b2NvbCJdKQorCisK
K2NsYXNzIFNlbGVuaXVtUnVuKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZ1bmMs
IHByb3RvY29sLCB1cmwsIHRpbWVvdXQpOgorICAgICAgICBzZWxmLmZ1bmMgPSBmdW5jCisgICAg
ICAgIHNlbGYucmVzdWx0ID0gTm9uZQorICAgICAgICBzZWxmLnByb3RvY29sID0gcHJvdG9jb2wK
KyAgICAgICAgc2VsZi51cmwgPSB1cmwKKyAgICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91dAor
ICAgICAgICBzZWxmLnJlc3VsdF9mbGFnID0gdGhyZWFkaW5nLkV2ZW50KCkKKworICAgIGRlZiBy
dW4oc2VsZik6CisgICAgICAgIHRpbWVvdXQgPSBzZWxmLnRpbWVvdXQKKworICAgICAgICB0cnk6
CisgICAgICAgICAgICBzZWxmLnByb3RvY29sLmJhc2Uuc2V0X3RpbWVvdXQoKHRpbWVvdXQgKyBl
eHRyYV90aW1lb3V0KSkKKyAgICAgICAgZXhjZXB0IGV4Y2VwdGlvbnMuRXJyb3JJblJlc3BvbnNl
RXhjZXB0aW9uOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIuZXJyb3IoIkxvc3QgV2ViRHJpdmVy
IGNvbm5lY3Rpb24iKQorICAgICAgICAgICAgcmV0dXJuIFN0b3AKKworICAgICAgICBleGVjdXRv
ciA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PXNlbGYuX3J1bikKKyAgICAgICAgZXhlY3V0b3Iu
c3RhcnQoKQorCisgICAgICAgIGZsYWcgPSBzZWxmLnJlc3VsdF9mbGFnLndhaXQodGltZW91dCAr
IDIgKiBleHRyYV90aW1lb3V0KQorICAgICAgICBpZiBzZWxmLnJlc3VsdCBpcyBOb25lOgorICAg
ICAgICAgICAgYXNzZXJ0IG5vdCBmbGFnCisgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNl
LCAoIkVYVEVSTkFMLVRJTUVPVVQiLCBOb25lKQorCisgICAgICAgIHJldHVybiBzZWxmLnJlc3Vs
dAorCisgICAgZGVmIF9ydW4oc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYu
cmVzdWx0ID0gVHJ1ZSwgc2VsZi5mdW5jKHNlbGYucHJvdG9jb2wsIHNlbGYudXJsLCBzZWxmLnRp
bWVvdXQpCisgICAgICAgIGV4Y2VwdCBleGNlcHRpb25zLlRpbWVvdXRFeGNlcHRpb246CisgICAg
ICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNlLCAoIkVYVEVSTkFMLVRJTUVPVVQiLCBOb25lKQor
ICAgICAgICBleGNlcHQgKHNvY2tldC50aW1lb3V0LCBleGNlcHRpb25zLkVycm9ySW5SZXNwb25z
ZUV4Y2VwdGlvbik6CisgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNlLCAoIkNSQVNIIiwg
Tm9uZSkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgbWVzc2Fn
ZSA9IGdldGF0dHIoZSwgIm1lc3NhZ2UiLCAiIikKKyAgICAgICAgICAgIGlmIG1lc3NhZ2U6Cisg
ICAgICAgICAgICAgICAgbWVzc2FnZSArPSAiXG4iCisgICAgICAgICAgICBtZXNzYWdlICs9IHRy
YWNlYmFjay5mb3JtYXRfZXhjKGUpCisgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNlLCAo
IkVSUk9SIiwgZSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNlbGYucmVzdWx0X2Zs
YWcuc2V0KCkKKworCitjbGFzcyBTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3IoVGVzdGhhcm5l
c3NFeGVjdXRvcik6CisgICAgc3VwcG9ydHNfdGVzdGRyaXZlciA9IFRydWUKKworICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBicm93c2VyLCBzZXJ2ZXJfY29uZmlnLCB0aW1lb3V0X211bHRpcGxpZXI9
MSwKKyAgICAgICAgICAgICAgICAgY2xvc2VfYWZ0ZXJfZG9uZT1UcnVlLCBjYXBhYmlsaXRpZXM9
Tm9uZSwgZGVidWdfaW5mbz1Ob25lLAorICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CisgICAg
ICAgICIiIlNlbGVuaXVtLWJhc2VkIGV4ZWN1dG9yIGZvciB0ZXN0aGFybmVzcy5qcyB0ZXN0cyIi
IgorICAgICAgICBUZXN0aGFybmVzc0V4ZWN1dG9yLl9faW5pdF9fKHNlbGYsIGJyb3dzZXIsIHNl
cnZlcl9jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91
dF9tdWx0aXBsaWVyPXRpbWVvdXRfbXVsdGlwbGllciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkZWJ1Z19pbmZvPWRlYnVnX2luZm8pCisgICAgICAgIHNlbGYucHJvdG9j
b2wgPSBTZWxlbml1bVByb3RvY29sKHNlbGYsIGJyb3dzZXIsIGNhcGFiaWxpdGllcykKKyAgICAg
ICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihoZXJlLCAidGVzdGhhcm5lc3Nfd2ViZHJpdmVyLmpz
IikpIGFzIGY6CisgICAgICAgICAgICBzZWxmLnNjcmlwdCA9IGYucmVhZCgpCisgICAgICAgIHdp
dGggb3Blbihvcy5wYXRoLmpvaW4oaGVyZSwgInRlc3RoYXJuZXNzX3dlYmRyaXZlcl9yZXN1bWUu
anMiKSkgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuc2NyaXB0X3Jlc3VtZSA9IGYucmVhZCgpCisg
ICAgICAgIHNlbGYuY2xvc2VfYWZ0ZXJfZG9uZSA9IGNsb3NlX2FmdGVyX2RvbmUKKyAgICAgICAg
c2VsZi53aW5kb3dfaWQgPSBzdHIodXVpZC51dWlkNCgpKQorCisgICAgZGVmIGlzX2FsaXZlKHNl
bGYpOgorICAgICAgICByZXR1cm4gc2VsZi5wcm90b2NvbC5pc19hbGl2ZSgpCisKKyAgICBkZWYg
b25fZW52aXJvbm1lbnRfY2hhbmdlKHNlbGYsIG5ld19lbnZpcm9ubWVudCk6CisgICAgICAgIGlm
IG5ld19lbnZpcm9ubWVudFsicHJvdG9jb2wiXSAhPSBzZWxmLmxhc3RfZW52aXJvbm1lbnRbInBy
b3RvY29sIl06CisgICAgICAgICAgICBzZWxmLnByb3RvY29sLnRlc3RoYXJuZXNzLmxvYWRfcnVu
bmVyKG5ld19lbnZpcm9ubWVudFsicHJvdG9jb2wiXSkKKworICAgIGRlZiBkb190ZXN0KHNlbGYs
IHRlc3QpOgorICAgICAgICB1cmwgPSBzZWxmLnRlc3RfdXJsKHRlc3QpCisKKyAgICAgICAgc3Vj
Y2VzcywgZGF0YSA9IFNlbGVuaXVtUnVuKHNlbGYuZG9fdGVzdGhhcm5lc3MsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnByb3RvY29sLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdC50aW1lb3V0ICogc2VsZi50aW1lb3V0X211bHRpcGxpZXIpLnJ1bigpCisKKyAg
ICAgICAgaWYgc3VjY2VzczoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmNvbnZlcnRfcmVzdWx0
KHRlc3QsIGRhdGEpCisKKyAgICAgICAgcmV0dXJuICh0ZXN0LnJlc3VsdF9jbHMoKmRhdGEpLCBb
XSkKKworICAgIGRlZiBkb190ZXN0aGFybmVzcyhzZWxmLCBwcm90b2NvbCwgdXJsLCB0aW1lb3V0
KToKKyAgICAgICAgZm9ybWF0X21hcCA9IHsiYWJzX3VybCI6IHVybCwKKyAgICAgICAgICAgICAg
ICAgICAgICAidXJsIjogc3RyaXBfc2VydmVyKHVybCksCisgICAgICAgICAgICAgICAgICAgICAg
IndpbmRvd19pZCI6IHNlbGYud2luZG93X2lkLAorICAgICAgICAgICAgICAgICAgICAgICJ0aW1l
b3V0X211bHRpcGxpZXIiOiBzZWxmLnRpbWVvdXRfbXVsdGlwbGllciwKKyAgICAgICAgICAgICAg
ICAgICAgICAidGltZW91dCI6IHRpbWVvdXQgKiAxMDAwfQorCisgICAgICAgIHBhcmVudF93aW5k
b3cgPSBwcm90b2NvbC50ZXN0aGFybmVzcy5jbG9zZV9vbGRfd2luZG93cygpCisgICAgICAgICMg
Tm93IHN0YXJ0IHRoZSB0ZXN0IGhhcm5lc3MKKyAgICAgICAgcHJvdG9jb2wuYmFzZS5leGVjdXRl
X3NjcmlwdChzZWxmLnNjcmlwdCAlIGZvcm1hdF9tYXApCisgICAgICAgIHRlc3Rfd2luZG93ID0g
cHJvdG9jb2wudGVzdGhhcm5lc3MuZ2V0X3Rlc3Rfd2luZG93KHdlYmRyaXZlciwgcGFyZW50X3dp
bmRvdykKKworICAgICAgICBoYW5kbGVyID0gQ2FsbGJhY2tIYW5kbGVyKHNlbGYubG9nZ2VyLCBw
cm90b2NvbCwgdGVzdF93aW5kb3cpCisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICBy
ZXN1bHQgPSBwcm90b2NvbC5iYXNlLmV4ZWN1dGVfc2NyaXB0KAorICAgICAgICAgICAgICAgIHNl
bGYuc2NyaXB0X3Jlc3VtZSAlIGZvcm1hdF9tYXAsIGFzeW5jPVRydWUpCisgICAgICAgICAgICBk
b25lLCBydiA9IGhhbmRsZXIocmVzdWx0KQorICAgICAgICAgICAgaWYgZG9uZToKKyAgICAgICAg
ICAgICAgICBicmVhaworICAgICAgICByZXR1cm4gcnYKKworCitjbGFzcyBTZWxlbml1bVJlZlRl
c3RFeGVjdXRvcihSZWZUZXN0RXhlY3V0b3IpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBicm93
c2VyLCBzZXJ2ZXJfY29uZmlnLCB0aW1lb3V0X211bHRpcGxpZXI9MSwKKyAgICAgICAgICAgICAg
ICAgc2NyZWVuc2hvdF9jYWNoZT1Ob25lLCBjbG9zZV9hZnRlcl9kb25lPVRydWUsCisgICAgICAg
ICAgICAgICAgIGRlYnVnX2luZm89Tm9uZSwgY2FwYWJpbGl0aWVzPU5vbmUsICoqa3dhcmdzKToK
KyAgICAgICAgIiIiU2VsZW5pdW0gV2ViRHJpdmVyLWJhc2VkIGV4ZWN1dG9yIGZvciByZWZ0ZXN0
cyIiIgorICAgICAgICBSZWZUZXN0RXhlY3V0b3IuX19pbml0X18oc2VsZiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJyb3dzZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZXJ2ZXJfY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2NyZWVuc2hvdF9jYWNoZT1zY3JlZW5zaG90X2NhY2hlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGltZW91dF9tdWx0aXBsaWVyPXRpbWVvdXRfbXVsdGlwbGllciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnX2luZm89ZGVidWdfaW5mbykKKyAgICAg
ICAgc2VsZi5wcm90b2NvbCA9IFNlbGVuaXVtUHJvdG9jb2woc2VsZiwgYnJvd3NlciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzPWNhcGFiaWxp
dGllcykKKyAgICAgICAgc2VsZi5pbXBsZW1lbnRhdGlvbiA9IFJlZlRlc3RJbXBsZW1lbnRhdGlv
bihzZWxmKQorICAgICAgICBzZWxmLmNsb3NlX2FmdGVyX2RvbmUgPSBjbG9zZV9hZnRlcl9kb25l
CisgICAgICAgIHNlbGYuaGFzX3dpbmRvdyA9IEZhbHNlCisKKyAgICAgICAgd2l0aCBvcGVuKG9z
LnBhdGguam9pbihoZXJlLCAicmVmdGVzdC5qcyIpKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5z
Y3JpcHQgPSBmLnJlYWQoKQorICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKGhlcmUsICJy
ZWZ0ZXN0LXdhaXRfd2ViZHJpdmVyLmpzIikpIGFzIGY6CisgICAgICAgICAgICBzZWxmLndhaXRf
c2NyaXB0ID0gZi5yZWFkKCkKKworICAgIGRlZiBpc19hbGl2ZShzZWxmKToKKyAgICAgICAgcmV0
dXJuIHNlbGYucHJvdG9jb2wuaXNfYWxpdmUoKQorCisgICAgZGVmIGRvX3Rlc3Qoc2VsZiwgdGVz
dCk6CisgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIlRlc3QgcmVxdWlyZXMgT1MtbGV2ZWwgd2lu
ZG93IGZvY3VzIikKKworICAgICAgICBzZWxmLnByb3RvY29sLndlYmRyaXZlci5zZXRfd2luZG93
X3NpemUoNjAwLCA2MDApCisKKyAgICAgICAgcmVzdWx0ID0gc2VsZi5pbXBsZW1lbnRhdGlvbi5y
dW5fdGVzdCh0ZXN0KQorCisgICAgICAgIHJldHVybiBzZWxmLmNvbnZlcnRfcmVzdWx0KHRlc3Qs
IHJlc3VsdCkKKworICAgIGRlZiBzY3JlZW5zaG90KHNlbGYsIHRlc3QsIHZpZXdwb3J0X3NpemUs
IGRwaSk6CisgICAgICAgICMgaHR0cHM6Ly9naXRodWIuY29tL3czYy93cHRydW5uZXIvaXNzdWVz
LzE2NgorICAgICAgICBhc3NlcnQgdmlld3BvcnRfc2l6ZSBpcyBOb25lCisgICAgICAgIGFzc2Vy
dCBkcGkgaXMgTm9uZQorCisgICAgICAgIHJldHVybiBTZWxlbml1bVJ1bihzZWxmLl9zY3JlZW5z
aG90LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wcm90b2NvbCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdF91cmwodGVzdCksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0LnRpbWVvdXQpLnJ1bigpCisKKyAgICBkZWYgX3NjcmVlbnNob3Qoc2Vs
ZiwgcHJvdG9jb2wsIHVybCwgdGltZW91dCk6CisgICAgICAgIHdlYmRyaXZlciA9IHByb3RvY29s
LndlYmRyaXZlcgorICAgICAgICB3ZWJkcml2ZXIuZ2V0KHVybCkKKworICAgICAgICB3ZWJkcml2
ZXIuZXhlY3V0ZV9hc3luY19zY3JpcHQoc2VsZi53YWl0X3NjcmlwdCkKKworICAgICAgICBzY3Jl
ZW5zaG90ID0gd2ViZHJpdmVyLmdldF9zY3JlZW5zaG90X2FzX2Jhc2U2NCgpCisKKyAgICAgICAg
IyBzdHJpcCBvZmYgdGhlIGRhdGE6aW1nL3BuZywgcGFydCBvZiB0aGUgdXJsCisgICAgICAgIGlm
IHNjcmVlbnNob3Quc3RhcnRzd2l0aCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LCIpOgorICAgICAg
ICAgICAgc2NyZWVuc2hvdCA9IHNjcmVlbnNob3Quc3BsaXQoIiwiLCAxKVsxXQorCisgICAgICAg
IHJldHVybiBzY3JlZW5zaG90CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4
ZWN1dG9yc2Vydm8ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vydm8ucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZmI3OWNmMjRkOTMwODI0NGM5ZDc2YTFiNTEwMWZkZTcyYjBiNTc0YwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2by5weQpA
QCAtMCwwICsxLDI5MCBAQAoraW1wb3J0IGJhc2U2NAoraW1wb3J0IGhhc2hsaWIKK2ltcG9ydCBo
dHRwbGliCitpbXBvcnQganNvbgoraW1wb3J0IG9zCitpbXBvcnQgc3VicHJvY2VzcworaW1wb3J0
IHRlbXBmaWxlCitpbXBvcnQgdGhyZWFkaW5nCitpbXBvcnQgdHJhY2ViYWNrCitpbXBvcnQgdXJs
cGFyc2UKK2ltcG9ydCB1dWlkCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAor
Citmcm9tIG1venByb2Nlc3MgaW1wb3J0IFByb2Nlc3NIYW5kbGVyCisKK2Zyb20gc2VydmUuc2Vy
dmUgaW1wb3J0IG1ha2VfaG9zdHNfZmlsZQorCitmcm9tIC5iYXNlIGltcG9ydCAoRXhlY3V0b3JF
eGNlcHRpb24sCisgICAgICAgICAgICAgICAgICAgQ29ubmVjdGlvbmxlc3NQcm90b2NvbCwKKyAg
ICAgICAgICAgICAgICAgICBSZWZUZXN0SW1wbGVtZW50YXRpb24sCisgICAgICAgICAgICAgICAg
ICAgdGVzdGhhcm5lc3NfcmVzdWx0X2NvbnZlcnRlciwKKyAgICAgICAgICAgICAgICAgICByZWZ0
ZXN0X3Jlc3VsdF9jb252ZXJ0ZXIsCisgICAgICAgICAgICAgICAgICAgV2RzcGVjRXhlY3V0b3Is
CisgICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyUHJvdG9jb2wpCitmcm9tIC5wcm9jZXNzIGlt
cG9ydCBQcm9jZXNzVGVzdEV4ZWN1dG9yCitmcm9tIC4uYnJvd3NlcnMuYmFzZSBpbXBvcnQgYnJv
d3Nlcl9jb21tYW5kCitmcm9tIC4ud3B0dGVzdCBpbXBvcnQgV2RzcGVjUmVzdWx0LCBXZHNwZWNT
dWJ0ZXN0UmVzdWx0Citmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgU2Vydm9Ecml2ZXJT
ZXJ2ZXIKK2Zyb20gLmV4ZWN1dG9ybWFyaW9uZXR0ZSBpbXBvcnQgV2RzcGVjUnVuCisKK3B5dGVz
dHJ1bm5lciA9IE5vbmUKK3dlYmRyaXZlciA9IE5vbmUKKworZXh0cmFfdGltZW91dCA9IDUgICMg
c2Vjb25kcworCitkZWYgd3JpdGVfaG9zdHNfZmlsZShjb25maWcpOgorICAgIGhvc3RzX2ZkLCBo
b3N0c19wYXRoID0gdGVtcGZpbGUubWtzdGVtcCgpCisgICAgd2l0aCBvcy5mZG9wZW4oaG9zdHNf
ZmQsICJ3IikgYXMgZjoKKyAgICAgICAgZi53cml0ZShtYWtlX2hvc3RzX2ZpbGUoY29uZmlnLCAi
MTI3LjAuMC4xIikpCisgICAgcmV0dXJuIGhvc3RzX3BhdGgKKworCitjbGFzcyBTZXJ2b1Rlc3Ro
YXJuZXNzRXhlY3V0b3IoUHJvY2Vzc1Rlc3RFeGVjdXRvcik6CisgICAgY29udmVydF9yZXN1bHQg
PSB0ZXN0aGFybmVzc19yZXN1bHRfY29udmVydGVyCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
YnJvd3Nlciwgc2VydmVyX2NvbmZpZywgdGltZW91dF9tdWx0aXBsaWVyPTEsIGRlYnVnX2luZm89
Tm9uZSwKKyAgICAgICAgICAgICAgICAgcGF1c2VfYWZ0ZXJfdGVzdD1GYWxzZSwgKiprd2FyZ3Mp
OgorICAgICAgICBQcm9jZXNzVGVzdEV4ZWN1dG9yLl9faW5pdF9fKHNlbGYsIGJyb3dzZXIsIHNl
cnZlcl9jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91
dF9tdWx0aXBsaWVyPXRpbWVvdXRfbXVsdGlwbGllciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkZWJ1Z19pbmZvPWRlYnVnX2luZm8pCisgICAgICAgIHNlbGYucGF1c2Vf
YWZ0ZXJfdGVzdCA9IHBhdXNlX2FmdGVyX3Rlc3QKKyAgICAgICAgc2VsZi5yZXN1bHRfZGF0YSA9
IE5vbmUKKyAgICAgICAgc2VsZi5yZXN1bHRfZmxhZyA9IE5vbmUKKyAgICAgICAgc2VsZi5wcm90
b2NvbCA9IENvbm5lY3Rpb25sZXNzUHJvdG9jb2woc2VsZiwgYnJvd3NlcikKKyAgICAgICAgc2Vs
Zi5ob3N0c19wYXRoID0gd3JpdGVfaG9zdHNfZmlsZShzZXJ2ZXJfY29uZmlnKQorCisgICAgZGVm
IHRlYXJkb3duKHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBvcy51bmxpbmsoc2Vs
Zi5ob3N0c19wYXRoKQorICAgICAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgICAgICAgIHBhc3MK
KyAgICAgICAgUHJvY2Vzc1Rlc3RFeGVjdXRvci50ZWFyZG93bihzZWxmKQorCisgICAgZGVmIGRv
X3Rlc3Qoc2VsZiwgdGVzdCk6CisgICAgICAgIHNlbGYucmVzdWx0X2RhdGEgPSBOb25lCisgICAg
ICAgIHNlbGYucmVzdWx0X2ZsYWcgPSB0aHJlYWRpbmcuRXZlbnQoKQorCisgICAgICAgIGFyZ3Mg
PSBbCisgICAgICAgICAgICAiLS1oYXJkLWZhaWwiLCAiLXUiLCAiU2Vydm8vd3B0cnVubmVyIiwK
KyAgICAgICAgICAgICItWiIsICJyZXBsYWNlLXN1cnJvZ2F0ZXMiLCAiLXoiLCBzZWxmLnRlc3Rf
dXJsKHRlc3QpLAorICAgICAgICBdCisgICAgICAgIGZvciBzdHlsZXNoZWV0IGluIHNlbGYuYnJv
d3Nlci51c2VyX3N0eWxlc2hlZXRzOgorICAgICAgICAgICAgYXJncyArPSBbIi0tdXNlci1zdHls
ZXNoZWV0Iiwgc3R5bGVzaGVldF0KKyAgICAgICAgZm9yIHByZWYsIHZhbHVlIGluIHRlc3QuZW52
aXJvbm1lbnQuZ2V0KCdwcmVmcycsIHt9KS5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgIGFyZ3Mg
Kz0gWyItLXByZWYiLCAiJXM9JXMiICUgKHByZWYsIHZhbHVlKV0KKyAgICAgICAgaWYgc2VsZi5i
cm93c2VyLmNhX2NlcnRpZmljYXRlX3BhdGg6CisgICAgICAgICAgICBhcmdzICs9IFsiLS1jZXJ0
aWZpY2F0ZS1wYXRoIiwgc2VsZi5icm93c2VyLmNhX2NlcnRpZmljYXRlX3BhdGhdCisgICAgICAg
IGFyZ3MgKz0gc2VsZi5icm93c2VyLmJpbmFyeV9hcmdzCisgICAgICAgIGRlYnVnX2FyZ3MsIGNv
bW1hbmQgPSBicm93c2VyX2NvbW1hbmQoc2VsZi5iaW5hcnksIGFyZ3MsIHNlbGYuZGVidWdfaW5m
bykKKworICAgICAgICBzZWxmLmNvbW1hbmQgPSBjb21tYW5kCisKKyAgICAgICAgaWYgc2VsZi5w
YXVzZV9hZnRlcl90ZXN0OgorICAgICAgICAgICAgc2VsZi5jb21tYW5kLnJlbW92ZSgiLXoiKQor
CisgICAgICAgIHNlbGYuY29tbWFuZCA9IGRlYnVnX2FyZ3MgKyBzZWxmLmNvbW1hbmQKKworICAg
ICAgICBlbnYgPSBvcy5lbnZpcm9uLmNvcHkoKQorICAgICAgICBlbnZbIkhPU1RfRklMRSJdID0g
c2VsZi5ob3N0c19wYXRoCisgICAgICAgIGVudlsiUlVTVF9CQUNLVFJBQ0UiXSA9ICIxIgorCisK
KyAgICAgICAgaWYgbm90IHNlbGYuaW50ZXJhY3RpdmU6CisgICAgICAgICAgICBzZWxmLnByb2Mg
PSBQcm9jZXNzSGFuZGxlcihzZWxmLmNvbW1hbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwcm9jZXNzT3V0cHV0TGluZT1bc2VsZi5vbl9vdXRwdXRdLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25GaW5pc2g9c2VsZi5vbl9maW5pc2gs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9ZW52LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmVPdXRwdXQ9RmFsc2UpCisgICAg
ICAgICAgICBzZWxmLnByb2MucnVuKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYu
cHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oc2VsZi5jb21tYW5kLCBlbnY9ZW52KQorCisgICAgICAg
IHRyeToKKyAgICAgICAgICAgIHRpbWVvdXQgPSB0ZXN0LnRpbWVvdXQgKiBzZWxmLnRpbWVvdXRf
bXVsdGlwbGllcgorCisgICAgICAgICAgICAjIE5vdyB3YWl0IHRvIGdldCB0aGUgb3V0cHV0IHdl
IGV4cGVjdCwgb3IgdW50aWwgd2UgcmVhY2ggdGhlIHRpbWVvdXQKKyAgICAgICAgICAgIGlmIG5v
dCBzZWxmLmludGVyYWN0aXZlIGFuZCBub3Qgc2VsZi5wYXVzZV9hZnRlcl90ZXN0OgorICAgICAg
ICAgICAgICAgIHdhaXRfdGltZW91dCA9IHRpbWVvdXQgKyA1CisgICAgICAgICAgICAgICAgc2Vs
Zi5yZXN1bHRfZmxhZy53YWl0KHdhaXRfdGltZW91dCkKKyAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgd2FpdF90aW1lb3V0ID0gTm9uZQorICAgICAgICAgICAgICAgIHNlbGYucHJv
Yy53YWl0KCkKKworICAgICAgICAgICAgcHJvY19pc19ydW5uaW5nID0gVHJ1ZQorCisgICAgICAg
ICAgICBpZiBzZWxmLnJlc3VsdF9mbGFnLmlzX3NldCgpOgorICAgICAgICAgICAgICAgIGlmIHNl
bGYucmVzdWx0X2RhdGEgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9
IHNlbGYuY29udmVydF9yZXN1bHQodGVzdCwgc2VsZi5yZXN1bHRfZGF0YSkKKyAgICAgICAgICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBzZWxmLnByb2Mud2FpdCgpCisgICAgICAg
ICAgICAgICAgICAgIHJlc3VsdCA9ICh0ZXN0LnJlc3VsdF9jbHMoIkNSQVNIIiwgTm9uZSksIFtd
KQorICAgICAgICAgICAgICAgICAgICBwcm9jX2lzX3J1bm5pbmcgPSBGYWxzZQorICAgICAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXN1bHQgPSAodGVzdC5yZXN1bHRfY2xzKCJUSU1F
T1VUIiwgTm9uZSksIFtdKQorCisKKyAgICAgICAgICAgIGlmIHByb2NfaXNfcnVubmluZzoKKyAg
ICAgICAgICAgICAgICBpZiBzZWxmLnBhdXNlX2FmdGVyX3Rlc3Q6CisgICAgICAgICAgICAgICAg
ICAgIHNlbGYubG9nZ2VyLmluZm8oIlBhdXNpbmcgdW50aWwgdGhlIGJyb3dzZXIgZXhpdHMiKQor
ICAgICAgICAgICAgICAgICAgICBzZWxmLnByb2Mud2FpdCgpCisgICAgICAgICAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5wcm9jLmtpbGwoKQorICAgICAgICBleGNlcHQg
S2V5Ym9hcmRJbnRlcnJ1cHQ6CisgICAgICAgICAgICBzZWxmLnByb2Mua2lsbCgpCisgICAgICAg
ICAgICByYWlzZQorCisgICAgICAgIHJldHVybiByZXN1bHQKKworICAgIGRlZiBvbl9vdXRwdXQo
c2VsZiwgbGluZSk6CisgICAgICAgIHByZWZpeCA9ICJBTEVSVDogUkVTVUxUOiAiCisgICAgICAg
IGxpbmUgPSBsaW5lLmRlY29kZSgidXRmOCIsICJyZXBsYWNlIikKKyAgICAgICAgaWYgbGluZS5z
dGFydHN3aXRoKHByZWZpeCk6CisgICAgICAgICAgICBzZWxmLnJlc3VsdF9kYXRhID0ganNvbi5s
b2FkcyhsaW5lW2xlbihwcmVmaXgpOl0pCisgICAgICAgICAgICBzZWxmLnJlc3VsdF9mbGFnLnNl
dCgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBzZWxmLmludGVyYWN0aXZlOgorICAg
ICAgICAgICAgICAgIHByaW50IGxpbmUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgc2VsZi5sb2dnZXIucHJvY2Vzc19vdXRwdXQoc2VsZi5wcm9jLnBpZCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIgIi5qb2luKHNlbGYuY29tbWFuZCkpCisKKyAgICBk
ZWYgb25fZmluaXNoKHNlbGYpOgorICAgICAgICBzZWxmLnJlc3VsdF9mbGFnLnNldCgpCisKKwor
Y2xhc3MgVGVtcEZpbGVuYW1lKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRpcmVj
dG9yeSk6CisgICAgICAgIHNlbGYuZGlyZWN0b3J5ID0gZGlyZWN0b3J5CisgICAgICAgIHNlbGYu
cGF0aCA9IE5vbmUKKworICAgIGRlZiBfX2VudGVyX18oc2VsZik6CisgICAgICAgIHNlbGYucGF0
aCA9IG9zLnBhdGguam9pbihzZWxmLmRpcmVjdG9yeSwgc3RyKHV1aWQudXVpZDQoKSkpCisgICAg
ICAgIHJldHVybiBzZWxmLnBhdGgKKworICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAqYXJncywgKipr
d2FyZ3MpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBvcy51bmxpbmsoc2VsZi5wYXRoKQor
ICAgICAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKworCitjbGFzcyBTZXJ2
b1JlZlRlc3RFeGVjdXRvcihQcm9jZXNzVGVzdEV4ZWN1dG9yKToKKyAgICBjb252ZXJ0X3Jlc3Vs
dCA9IHJlZnRlc3RfcmVzdWx0X2NvbnZlcnRlcgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGJy
b3dzZXIsIHNlcnZlcl9jb25maWcsIGJpbmFyeT1Ob25lLCB0aW1lb3V0X211bHRpcGxpZXI9MSwK
KyAgICAgICAgICAgICAgICAgc2NyZWVuc2hvdF9jYWNoZT1Ob25lLCBkZWJ1Z19pbmZvPU5vbmUs
IHBhdXNlX2FmdGVyX3Rlc3Q9RmFsc2UsCisgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKKyAg
ICAgICAgUHJvY2Vzc1Rlc3RFeGVjdXRvci5fX2luaXRfXyhzZWxmLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJyb3dzZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2VydmVyX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aW1lb3V0X211bHRpcGxpZXI9dGltZW91dF9tdWx0aXBsaWVyLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnX2luZm89ZGVidWdfaW5mbykKKworICAg
ICAgICBzZWxmLnByb3RvY29sID0gQ29ubmVjdGlvbmxlc3NQcm90b2NvbChzZWxmLCBicm93c2Vy
KQorICAgICAgICBzZWxmLnNjcmVlbnNob3RfY2FjaGUgPSBzY3JlZW5zaG90X2NhY2hlCisgICAg
ICAgIHNlbGYuaW1wbGVtZW50YXRpb24gPSBSZWZUZXN0SW1wbGVtZW50YXRpb24oc2VsZikKKyAg
ICAgICAgc2VsZi50ZW1wZGlyID0gdGVtcGZpbGUubWtkdGVtcCgpCisgICAgICAgIHNlbGYuaG9z
dHNfcGF0aCA9IHdyaXRlX2hvc3RzX2ZpbGUoc2VydmVyX2NvbmZpZykKKworICAgIGRlZiB0ZWFy
ZG93bihzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgb3MudW5saW5rKHNlbGYuaG9z
dHNfcGF0aCkKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAgICAgICBwYXNzCisgICAg
ICAgIG9zLnJtZGlyKHNlbGYudGVtcGRpcikKKyAgICAgICAgUHJvY2Vzc1Rlc3RFeGVjdXRvci50
ZWFyZG93bihzZWxmKQorCisgICAgZGVmIHNjcmVlbnNob3Qoc2VsZiwgdGVzdCwgdmlld3BvcnRf
c2l6ZSwgZHBpKToKKyAgICAgICAgZnVsbF91cmwgPSBzZWxmLnRlc3RfdXJsKHRlc3QpCisKKyAg
ICAgICAgd2l0aCBUZW1wRmlsZW5hbWUoc2VsZi50ZW1wZGlyKSBhcyBvdXRwdXRfcGF0aDoKKyAg
ICAgICAgICAgIGRlYnVnX2FyZ3MsIGNvbW1hbmQgPSBicm93c2VyX2NvbW1hbmQoCisgICAgICAg
ICAgICAgICAgc2VsZi5iaW5hcnksCisgICAgICAgICAgICAgICAgWworICAgICAgICAgICAgICAg
ICAgICAiLS1oYXJkLWZhaWwiLCAiLS1leGl0IiwKKyAgICAgICAgICAgICAgICAgICAgIi11Iiwg
IlNlcnZvL3dwdHJ1bm5lciIsCisgICAgICAgICAgICAgICAgICAgICItWiIsICJkaXNhYmxlLXRl
eHQtYWEsbG9hZC13ZWJmb250cy1zeW5jaHJvbm91c2x5LHJlcGxhY2Utc3Vycm9nYXRlcyIsCisg
ICAgICAgICAgICAgICAgICAgICItLW91dHB1dD0lcyIgJSBvdXRwdXRfcGF0aCwgZnVsbF91cmwK
KyAgICAgICAgICAgICAgICBdICsgc2VsZi5icm93c2VyLmJpbmFyeV9hcmdzLAorICAgICAgICAg
ICAgICAgIHNlbGYuZGVidWdfaW5mbykKKworICAgICAgICAgICAgZm9yIHN0eWxlc2hlZXQgaW4g
c2VsZi5icm93c2VyLnVzZXJfc3R5bGVzaGVldHM6CisgICAgICAgICAgICAgICAgY29tbWFuZCAr
PSBbIi0tdXNlci1zdHlsZXNoZWV0Iiwgc3R5bGVzaGVldF0KKworICAgICAgICAgICAgZm9yIHBy
ZWYsIHZhbHVlIGluIHRlc3QuZW52aXJvbm1lbnQuZ2V0KCdwcmVmcycsIHt9KS5pdGVyaXRlbXMo
KToKKyAgICAgICAgICAgICAgICBjb21tYW5kICs9IFsiLS1wcmVmIiwgIiVzPSVzIiAlIChwcmVm
LCB2YWx1ZSldCisKKyAgICAgICAgICAgIGNvbW1hbmQgKz0gWyItLXJlc29sdXRpb24iLCB2aWV3
cG9ydF9zaXplIG9yICI4MDB4NjAwIl0KKworICAgICAgICAgICAgaWYgc2VsZi5icm93c2VyLmNh
X2NlcnRpZmljYXRlX3BhdGg6CisgICAgICAgICAgICAgICAgY29tbWFuZCArPSBbIi0tY2VydGlm
aWNhdGUtcGF0aCIsIHNlbGYuYnJvd3Nlci5jYV9jZXJ0aWZpY2F0ZV9wYXRoXQorCisgICAgICAg
ICAgICBpZiBkcGk6CisgICAgICAgICAgICAgICAgY29tbWFuZCArPSBbIi0tZGV2aWNlLXBpeGVs
LXJhdGlvIiwgZHBpXQorCisgICAgICAgICAgICAjIFJ1biByZWYgdGVzdHMgaW4gaGVhZGxlc3Mg
bW9kZQorICAgICAgICAgICAgY29tbWFuZCArPSBbIi16Il0KKworICAgICAgICAgICAgc2VsZi5j
b21tYW5kID0gZGVidWdfYXJncyArIGNvbW1hbmQKKworICAgICAgICAgICAgZW52ID0gb3MuZW52
aXJvbi5jb3B5KCkKKyAgICAgICAgICAgIGVudlsiSE9TVF9GSUxFIl0gPSBzZWxmLmhvc3RzX3Bh
dGgKKyAgICAgICAgICAgIGVudlsiUlVTVF9CQUNLVFJBQ0UiXSA9ICIxIgorCisgICAgICAgICAg
ICBpZiBub3Qgc2VsZi5pbnRlcmFjdGl2ZToKKyAgICAgICAgICAgICAgICBzZWxmLnByb2MgPSBQ
cm9jZXNzSGFuZGxlcihzZWxmLmNvbW1hbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHJvY2Vzc091dHB1dExpbmU9W3NlbGYub25fb3V0cHV0XSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnY9ZW52KQorCisKKyAgICAg
ICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYucHJvYy5ydW4oKQorICAg
ICAgICAgICAgICAgICAgICB0aW1lb3V0ID0gdGVzdC50aW1lb3V0ICogc2VsZi50aW1lb3V0X211
bHRpcGxpZXIgKyA1CisgICAgICAgICAgICAgICAgICAgIHJ2ID0gc2VsZi5wcm9jLndhaXQodGlt
ZW91dD10aW1lb3V0KQorICAgICAgICAgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoK
KyAgICAgICAgICAgICAgICAgICAgc2VsZi5wcm9jLmtpbGwoKQorICAgICAgICAgICAgICAgICAg
ICByYWlzZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLnByb2MgPSBz
dWJwcm9jZXNzLlBvcGVuKHNlbGYuY29tbWFuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVudj1lbnYpCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgICAgICAgICBydiA9IHNlbGYucHJvYy53YWl0KCkKKyAgICAgICAgICAgICAgICBleGNl
cHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CisgICAgICAgICAgICAgICAgICAgIHNlbGYucHJvYy5raWxs
KCkKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UKKworICAgICAgICAgICAgaWYgcnYgaXMgTm9u
ZToKKyAgICAgICAgICAgICAgICBzZWxmLnByb2Mua2lsbCgpCisgICAgICAgICAgICAgICAgcmV0
dXJuIEZhbHNlLCAoIkVYVEVSTkFMLVRJTUVPVVQiLCBOb25lKQorCisgICAgICAgICAgICBpZiBy
diAhPSAwIG9yIG5vdCBvcy5wYXRoLmV4aXN0cyhvdXRwdXRfcGF0aCk6CisgICAgICAgICAgICAg
ICAgcmV0dXJuIEZhbHNlLCAoIkNSQVNIIiwgTm9uZSkKKworICAgICAgICAgICAgd2l0aCBvcGVu
KG91dHB1dF9wYXRoKSBhcyBmOgorICAgICAgICAgICAgICAgICMgTWlnaHQgbmVlZCB0byBzdHJp
cCB2YXJpYWJsZSBoZWFkZXJzIG9yIHNvbWV0aGluZyBoZXJlCisgICAgICAgICAgICAgICAgZGF0
YSA9IGYucmVhZCgpCisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUsIGJhc2U2NC5iNjRlbmNv
ZGUoZGF0YSkKKworICAgIGRlZiBkb190ZXN0KHNlbGYsIHRlc3QpOgorICAgICAgICByZXN1bHQg
PSBzZWxmLmltcGxlbWVudGF0aW9uLnJ1bl90ZXN0KHRlc3QpCisKKyAgICAgICAgcmV0dXJuIHNl
bGYuY29udmVydF9yZXN1bHQodGVzdCwgcmVzdWx0KQorCisgICAgZGVmIG9uX291dHB1dChzZWxm
LCBsaW5lKToKKyAgICAgICAgbGluZSA9IGxpbmUuZGVjb2RlKCJ1dGY4IiwgInJlcGxhY2UiKQor
ICAgICAgICBpZiBzZWxmLmludGVyYWN0aXZlOgorICAgICAgICAgICAgcHJpbnQgbGluZQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIucHJvY2Vzc19vdXRwdXQoc2VsZi5w
cm9jLnBpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICIuam9pbihzZWxmLmNvbW1h
bmQpKQorCisKK2NsYXNzIFNlcnZvRHJpdmVyUHJvdG9jb2woV2ViRHJpdmVyUHJvdG9jb2wpOgor
ICAgIHNlcnZlcl9jbHMgPSBTZXJ2b0RyaXZlclNlcnZlcgorCisKK2NsYXNzIFNlcnZvV2RzcGVj
RXhlY3V0b3IoV2RzcGVjRXhlY3V0b3IpOgorICAgIHByb3RvY29sX2NscyA9IFNlcnZvRHJpdmVy
UHJvdG9jb2wKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2
b2RyaXZlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2b2RyaXZlci5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44ZjI5NjRhN2QzYWZjZTIzNmFjZjNjOGJkNDNkOGE4ZmZiYzA0YzJmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvZHJp
dmVyLnB5CkBAIC0wLDAgKzEsMjQzIEBACitpbXBvcnQganNvbgoraW1wb3J0IG9zCitpbXBvcnQg
c29ja2V0CitpbXBvcnQgdGhyZWFkaW5nCitpbXBvcnQgdGltZQoraW1wb3J0IHRyYWNlYmFjawor
Citmcm9tIC5iYXNlIGltcG9ydCAoUHJvdG9jb2wsCisgICAgICAgICAgICAgICAgICAgUmVmVGVz
dEV4ZWN1dG9yLAorICAgICAgICAgICAgICAgICAgIFJlZlRlc3RJbXBsZW1lbnRhdGlvbiwKKyAg
ICAgICAgICAgICAgICAgICBUZXN0aGFybmVzc0V4ZWN1dG9yLAorICAgICAgICAgICAgICAgICAg
IHN0cmlwX3NlcnZlcikKK2Zyb20gLi50ZXN0cnVubmVyIGltcG9ydCBTdG9wCisKK3dlYmRyaXZl
ciA9IE5vbmUKKworaGVyZSA9IG9zLnBhdGguam9pbihvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVsw
XSkKKworZXh0cmFfdGltZW91dCA9IDUKKworCitkZWYgZG9fZGVsYXllZF9pbXBvcnRzKCk6Cisg
ICAgZ2xvYmFsIHdlYmRyaXZlcgorICAgIGltcG9ydCB3ZWJkcml2ZXIKKworCitjbGFzcyBTZXJ2
b1dlYkRyaXZlclByb3RvY29sKFByb3RvY29sKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZXhl
Y3V0b3IsIGJyb3dzZXIsIGNhcGFiaWxpdGllcywgKiprd2FyZ3MpOgorICAgICAgICBkb19kZWxh
eWVkX2ltcG9ydHMoKQorICAgICAgICBQcm90b2NvbC5fX2luaXRfXyhzZWxmLCBleGVjdXRvciwg
YnJvd3NlcikKKyAgICAgICAgc2VsZi5jYXBhYmlsaXRpZXMgPSBjYXBhYmlsaXRpZXMKKyAgICAg
ICAgc2VsZi5ob3N0ID0gYnJvd3Nlci53ZWJkcml2ZXJfaG9zdAorICAgICAgICBzZWxmLnBvcnQg
PSBicm93c2VyLndlYmRyaXZlcl9wb3J0CisgICAgICAgIHNlbGYuc2Vzc2lvbiA9IE5vbmUKKwor
ICAgIGRlZiBjb25uZWN0KHNlbGYpOgorICAgICAgICAiIiJDb25uZWN0IHRvIGJyb3dzZXIgdmlh
IFdlYkRyaXZlci4iIiIKKyAgICAgICAgdXJsID0gImh0dHA6Ly8lczolZCIgJSAoc2VsZi5ob3N0
LCBzZWxmLnBvcnQpCisgICAgICAgIHNlbGYuc2Vzc2lvbiA9IHdlYmRyaXZlci5TZXNzaW9uKHNl
bGYuaG9zdCwgc2VsZi5wb3J0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBleHRlbnNpb249d2ViZHJpdmVyLnNlcnZvLlNlcnZvQ29tbWFuZEV4dGVuc2lvbnMpCisg
ICAgICAgIHNlbGYuc2Vzc2lvbi5zdGFydCgpCisKKyAgICBkZWYgYWZ0ZXJfY29ubmVjdChzZWxm
KToKKyAgICAgICAgcGFzcworCisgICAgZGVmIHRlYXJkb3duKHNlbGYpOgorICAgICAgICBzZWxm
LmxvZ2dlci5kZWJ1ZygiSGFuZ2luZyB1cCBvbiBXZWJEcml2ZXIgc2Vzc2lvbiIpCisgICAgICAg
IHRyeToKKyAgICAgICAgICAgIHNlbGYuc2Vzc2lvbi5lbmQoKQorICAgICAgICBleGNlcHQgRXhj
ZXB0aW9uOgorICAgICAgICAgICAgcGFzcworCisgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgorICAg
ICAgICB0cnk6CisgICAgICAgICAgICAjIEdldCBhIHNpbXBsZSBwcm9wZXJ0eSBvdmVyIHRoZSBj
b25uZWN0aW9uCisgICAgICAgICAgICBzZWxmLnNlc3Npb24ud2luZG93X2hhbmRsZQorICAgICAg
ICAjIFRPRE8gd2hhdCBleGNlcHRpb24/CisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAg
ICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiB3YWl0
KHNlbGYpOgorICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgICAgIHNlbGYuc2Vzc2lvbi5leGVjdXRlX2FzeW5jX3NjcmlwdCgiIikKKyAgICAgICAgICAg
IGV4Y2VwdCB3ZWJkcml2ZXIuVGltZW91dEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICBwYXNz
CisgICAgICAgICAgICBleGNlcHQgKHNvY2tldC50aW1lb3V0LCBJT0Vycm9yKToKKyAgICAgICAg
ICAgICAgICBicmVhaworICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKHRyYWNlYmFjay5mb3JtYXRfZXhjKGUpKQorICAg
ICAgICAgICAgICAgIGJyZWFrCisKKyAgICBkZWYgb25fZW52aXJvbm1lbnRfY2hhbmdlKHNlbGYs
IG9sZF9lbnZpcm9ubWVudCwgbmV3X2Vudmlyb25tZW50KToKKyAgICAgICAgI1Vuc2V0IGFsbCB0
aGUgb2xkIHByZWZzCisgICAgICAgIHNlbGYuc2Vzc2lvbi5leHRlbnNpb24ucmVzZXRfcHJlZnMo
Km9sZF9lbnZpcm9ubWVudC5nZXQoInByZWZzIiwge30pLmtleXMoKSkKKyAgICAgICAgc2VsZi5z
ZXNzaW9uLmV4dGVuc2lvbi5zZXRfcHJlZnMobmV3X2Vudmlyb25tZW50LmdldCgicHJlZnMiLCB7
fSkpCisKKworY2xhc3MgU2Vydm9XZWJEcml2ZXJSdW4ob2JqZWN0KToKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgZnVuYywgc2Vzc2lvbiwgdXJsLCB0aW1lb3V0LCBjdXJyZW50X3RpbWVvdXQ9Tm9u
ZSk6CisgICAgICAgIHNlbGYuZnVuYyA9IGZ1bmMKKyAgICAgICAgc2VsZi5yZXN1bHQgPSBOb25l
CisgICAgICAgIHNlbGYuc2Vzc2lvbiA9IHNlc3Npb24KKyAgICAgICAgc2VsZi51cmwgPSB1cmwK
KyAgICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91dAorICAgICAgICBzZWxmLnJlc3VsdF9mbGFn
ID0gdGhyZWFkaW5nLkV2ZW50KCkKKworICAgIGRlZiBydW4oc2VsZik6CisgICAgICAgIGV4ZWN1
dG9yID0gdGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9c2VsZi5fcnVuKQorICAgICAgICBleGVjdXRv
ci5zdGFydCgpCisKKyAgICAgICAgZmxhZyA9IHNlbGYucmVzdWx0X2ZsYWcud2FpdChzZWxmLnRp
bWVvdXQgKyBleHRyYV90aW1lb3V0KQorICAgICAgICBpZiBzZWxmLnJlc3VsdCBpcyBOb25lOgor
ICAgICAgICAgICAgYXNzZXJ0IG5vdCBmbGFnCisgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZh
bHNlLCAoIkVYVEVSTkFMLVRJTUVPVVQiLCBOb25lKQorCisgICAgICAgIHJldHVybiBzZWxmLnJl
c3VsdAorCisgICAgZGVmIF9ydW4oc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNl
bGYucmVzdWx0ID0gVHJ1ZSwgc2VsZi5mdW5jKHNlbGYuc2Vzc2lvbiwgc2VsZi51cmwsIHNlbGYu
dGltZW91dCkKKyAgICAgICAgZXhjZXB0IHdlYmRyaXZlci5UaW1lb3V0RXhjZXB0aW9uOgorICAg
ICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJFWFRFUk5BTC1USU1FT1VUIiwgTm9uZSkK
KyAgICAgICAgZXhjZXB0IChzb2NrZXQudGltZW91dCwgSU9FcnJvcik6CisgICAgICAgICAgICBz
ZWxmLnJlc3VsdCA9IEZhbHNlLCAoIkNSQVNIIiwgTm9uZSkKKyAgICAgICAgZXhjZXB0IEV4Y2Vw
dGlvbiBhcyBlOgorICAgICAgICAgICAgbWVzc2FnZSA9IGdldGF0dHIoZSwgIm1lc3NhZ2UiLCAi
IikKKyAgICAgICAgICAgIGlmIG1lc3NhZ2U6CisgICAgICAgICAgICAgICAgbWVzc2FnZSArPSAi
XG4iCisgICAgICAgICAgICBtZXNzYWdlICs9IHRyYWNlYmFjay5mb3JtYXRfZXhjKGUpCisgICAg
ICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNlLCAoIkVSUk9SIiwgZSkKKyAgICAgICAgZmluYWxs
eToKKyAgICAgICAgICAgIHNlbGYucmVzdWx0X2ZsYWcuc2V0KCkKKworCitkZWYgdGltZW91dF9m
dW5jKHRpbWVvdXQpOgorICAgIGlmIHRpbWVvdXQ6CisgICAgICAgIHQwID0gdGltZS50aW1lKCkK
KyAgICAgICAgcmV0dXJuIGxhbWJkYTogdGltZS50aW1lKCkgLSB0MCA+IHRpbWVvdXQgKyBleHRy
YV90aW1lb3V0CisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIGxhbWJkYTogRmFsc2UKKworCitj
bGFzcyBTZXJ2b1dlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IoVGVzdGhhcm5lc3NFeGVjdXRv
cik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGJyb3dzZXIsIHNlcnZlcl9jb25maWcsIHRpbWVv
dXRfbXVsdGlwbGllcj0xLAorICAgICAgICAgICAgICAgICBjbG9zZV9hZnRlcl9kb25lPVRydWUs
IGNhcGFiaWxpdGllcz1Ob25lLCBkZWJ1Z19pbmZvPU5vbmUsCisgICAgICAgICAgICAgICAgICoq
a3dhcmdzKToKKyAgICAgICAgVGVzdGhhcm5lc3NFeGVjdXRvci5fX2luaXRfXyhzZWxmLCBicm93
c2VyLCBzZXJ2ZXJfY29uZmlnLCB0aW1lb3V0X211bHRpcGxpZXI9MSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPU5vbmUpCisgICAgICAgIHNlbGYucHJv
dG9jb2wgPSBTZXJ2b1dlYkRyaXZlclByb3RvY29sKHNlbGYsIGJyb3dzZXIsIGNhcGFiaWxpdGll
cz1jYXBhYmlsaXRpZXMpCisgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oaGVyZSwgInRl
c3RoYXJuZXNzX3NlcnZvZHJpdmVyLmpzIikpIGFzIGY6CisgICAgICAgICAgICBzZWxmLnNjcmlw
dCA9IGYucmVhZCgpCisgICAgICAgIHNlbGYudGltZW91dCA9IE5vbmUKKworICAgIGRlZiBvbl9w
cm90b2NvbF9jaGFuZ2Uoc2VsZiwgbmV3X3Byb3RvY29sKToKKyAgICAgICAgcGFzcworCisgICAg
ZGVmIGlzX2FsaXZlKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5wcm90b2NvbC5pc19hbGl2
ZSgpCisKKyAgICBkZWYgZG9fdGVzdChzZWxmLCB0ZXN0KToKKyAgICAgICAgdXJsID0gc2VsZi50
ZXN0X3VybCh0ZXN0KQorCisgICAgICAgIHRpbWVvdXQgPSB0ZXN0LnRpbWVvdXQgKiBzZWxmLnRp
bWVvdXRfbXVsdGlwbGllciArIGV4dHJhX3RpbWVvdXQKKworICAgICAgICBpZiB0aW1lb3V0ICE9
IHNlbGYudGltZW91dDoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLnBy
b3RvY29sLnNlc3Npb24udGltZW91dHMuc2NyaXB0ID0gdGltZW91dAorICAgICAgICAgICAgICAg
IHNlbGYudGltZW91dCA9IHRpbWVvdXQKKyAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAg
ICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKCJMb3N0IHdlYmRyaXZlciBjb25uZWN0aW9u
IikKKyAgICAgICAgICAgICAgICByZXR1cm4gU3RvcAorCisgICAgICAgIHN1Y2Nlc3MsIGRhdGEg
PSBTZXJ2b1dlYkRyaXZlclJ1bihzZWxmLmRvX3Rlc3RoYXJuZXNzLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5zZXNzaW9uLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dCkucnVuKCkKKworICAgICAgICBpZiBz
dWNjZXNzOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuY29udmVydF9yZXN1bHQodGVzdCwgZGF0
YSkKKworICAgICAgICByZXR1cm4gKHRlc3QucmVzdWx0X2NscygqZGF0YSksIFtdKQorCisgICAg
ZGVmIGRvX3Rlc3RoYXJuZXNzKHNlbGYsIHNlc3Npb24sIHVybCwgdGltZW91dCk6CisgICAgICAg
IHNlc3Npb24udXJsID0gdXJsCisgICAgICAgIHJlc3VsdCA9IGpzb24ubG9hZHMoCisgICAgICAg
ICAgICBzZXNzaW9uLmV4ZWN1dGVfYXN5bmNfc2NyaXB0KAorICAgICAgICAgICAgICAgIHNlbGYu
c2NyaXB0ICUgeyJhYnNfdXJsIjogdXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJ1cmwiOiBzdHJpcF9zZXJ2ZXIodXJsKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAidGltZW91dF9tdWx0aXBsaWVyIjogc2VsZi50aW1lb3V0X211bHRpcGxpZXIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInRpbWVvdXQiOiB0aW1lb3V0ICogMTAwMH0pKQorICAg
ICAgICAjIFByZXZlbnQgbGVha2luZyBldmVyeSBwYWdlIGluIGhpc3RvcnkgdW50aWwgU2Vydm8g
ZGV2ZWxvcHMgYSBtb3JlIHNhbmUKKyAgICAgICAgIyBwYWdlIGNhY2hlCisgICAgICAgIHNlc3Np
b24uYmFjaygpCisgICAgICAgIHJldHVybiByZXN1bHQKKworCitjbGFzcyBUaW1lb3V0RXJyb3Io
RXhjZXB0aW9uKToKKyAgICBwYXNzCisKKworY2xhc3MgU2Vydm9XZWJEcml2ZXJSZWZUZXN0RXhl
Y3V0b3IoUmVmVGVzdEV4ZWN1dG9yKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYnJvd3Nlciwg
c2VydmVyX2NvbmZpZywgdGltZW91dF9tdWx0aXBsaWVyPTEsCisgICAgICAgICAgICAgICAgIHNj
cmVlbnNob3RfY2FjaGU9Tm9uZSwgY2FwYWJpbGl0aWVzPU5vbmUsIGRlYnVnX2luZm89Tm9uZSwK
KyAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgorICAgICAgICAiIiJTZWxlbml1bSBXZWJEcml2
ZXItYmFzZWQgZXhlY3V0b3IgZm9yIHJlZnRlc3RzIiIiCisgICAgICAgIFJlZlRlc3RFeGVjdXRv
ci5fX2luaXRfXyhzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3Nl
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9jb25maWcsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JlZW5zaG90X2NhY2hlPXNjcmVlbnNob3Rf
Y2FjaGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0X211bHRpcGxp
ZXI9dGltZW91dF9tdWx0aXBsaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGVidWdfaW5mbz1kZWJ1Z19pbmZvKQorICAgICAgICBzZWxmLnByb3RvY29sID0gU2Vydm9XZWJE
cml2ZXJQcm90b2NvbChzZWxmLCBicm93c2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjYXBhYmlsaXRpZXM9Y2FwYWJpbGl0aWVzKQorICAgICAgICBz
ZWxmLmltcGxlbWVudGF0aW9uID0gUmVmVGVzdEltcGxlbWVudGF0aW9uKHNlbGYpCisgICAgICAg
IHNlbGYudGltZW91dCA9IE5vbmUKKyAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihoZXJl
LCAicmVmdGVzdC13YWl0X3dlYmRyaXZlci5qcyIpKSBhcyBmOgorICAgICAgICAgICAgc2VsZi53
YWl0X3NjcmlwdCA9IGYucmVhZCgpCisKKyAgICBkZWYgaXNfYWxpdmUoc2VsZik6CisgICAgICAg
IHJldHVybiBzZWxmLnByb3RvY29sLmlzX2FsaXZlKCkKKworICAgIGRlZiBkb190ZXN0KHNlbGYs
IHRlc3QpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXN1bHQgPSBzZWxmLmltcGxlbWVu
dGF0aW9uLnJ1bl90ZXN0KHRlc3QpCisgICAgICAgICAgICByZXR1cm4gc2VsZi5jb252ZXJ0X3Jl
c3VsdCh0ZXN0LCByZXN1bHQpCisgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAg
cmV0dXJuIHRlc3QucmVzdWx0X2NscygiQ1JBU0giLCBOb25lKSwgW10KKyAgICAgICAgZXhjZXB0
IFRpbWVvdXRFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiB0ZXN0LnJlc3VsdF9jbHMoIlRJTUVP
VVQiLCBOb25lKSwgW10KKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAg
ICAgbWVzc2FnZSA9IGdldGF0dHIoZSwgIm1lc3NhZ2UiLCAiIikKKyAgICAgICAgICAgIGlmIG1l
c3NhZ2U6CisgICAgICAgICAgICAgICAgbWVzc2FnZSArPSAiXG4iCisgICAgICAgICAgICBtZXNz
YWdlICs9IHRyYWNlYmFjay5mb3JtYXRfZXhjKGUpCisgICAgICAgICAgICByZXR1cm4gdGVzdC5y
ZXN1bHRfY2xzKCJFUlJPUiIsIG1lc3NhZ2UpLCBbXQorCisgICAgZGVmIHNjcmVlbnNob3Qoc2Vs
ZiwgdGVzdCwgdmlld3BvcnRfc2l6ZSwgZHBpKToKKyAgICAgICAgIyBodHRwczovL2dpdGh1Yi5j
b20vdzNjL3dwdHJ1bm5lci9pc3N1ZXMvMTY2CisgICAgICAgIGFzc2VydCB2aWV3cG9ydF9zaXpl
IGlzIE5vbmUKKyAgICAgICAgYXNzZXJ0IGRwaSBpcyBOb25lCisKKyAgICAgICAgdGltZW91dCA9
ICh0ZXN0LnRpbWVvdXQgKiBzZWxmLnRpbWVvdXRfbXVsdGlwbGllciArIGV4dHJhX3RpbWVvdXQK
KyAgICAgICAgICAgICAgICAgICBpZiBzZWxmLmRlYnVnX2luZm8gaXMgTm9uZSBlbHNlIE5vbmUp
CisKKyAgICAgICAgaWYgc2VsZi50aW1lb3V0ICE9IHRpbWVvdXQ6CisgICAgICAgICAgICB0cnk6
CisgICAgICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5zZXNzaW9uLnRpbWVvdXRzLnNjcmlwdCA9
IHRpbWVvdXQKKyAgICAgICAgICAgICAgICBzZWxmLnRpbWVvdXQgPSB0aW1lb3V0CisgICAgICAg
ICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcigi
TG9zdCB3ZWJkcml2ZXIgY29ubmVjdGlvbiIpCisgICAgICAgICAgICAgICAgcmV0dXJuIFN0b3AK
KworICAgICAgICByZXR1cm4gU2Vydm9XZWJEcml2ZXJSdW4oc2VsZi5fc2NyZWVuc2hvdCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJvdG9jb2wuc2Vzc2lvbiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdF91cmwodGVzdCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0KS5ydW4oKQorCisgICAgZGVmIF9z
Y3JlZW5zaG90KHNlbGYsIHNlc3Npb24sIHVybCwgdGltZW91dCk6CisgICAgICAgIHNlc3Npb24u
dXJsID0gdXJsCisgICAgICAgIHNlc3Npb24uZXhlY3V0ZV9hc3luY19zY3JpcHQoc2VsZi53YWl0
X3NjcmlwdCkKKyAgICAgICAgcmV0dXJuIHNlc3Npb24uc2NyZWVuc2hvdCgpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yd2Via2l0LnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2V4ZWN1dG9ycy9leGVjdXRvcndlYmtpdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNzI4YWUxOGUwM2IwOWY2
YzY5MGJlODJlZmM3OGJkMGMyZmY3MzQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2V4ZWN1dG9ycy9leGVjdXRvcndlYmtpdC5weQpAQCAtMCwwICsxLDEwIEBACitmcm9tIC4ud2Vi
ZHJpdmVyX3NlcnZlciBpbXBvcnQgV2ViS2l0RHJpdmVyU2VydmVyCitmcm9tIC5iYXNlIGltcG9y
dCBXZHNwZWNFeGVjdXRvciwgV2ViRHJpdmVyUHJvdG9jb2wKKworCitjbGFzcyBXZWJLaXREcml2
ZXJQcm90b2NvbChXZWJEcml2ZXJQcm90b2NvbCk6CisgICAgc2VydmVyX2NscyA9IFdlYktpdERy
aXZlclNlcnZlcgorCisKK2NsYXNzIFdlYktpdERyaXZlcldkc3BlY0V4ZWN1dG9yKFdkc3BlY0V4
ZWN1dG9yKToKKyAgICBwcm90b2NvbF9jbHMgPSBXZWJLaXREcml2ZXJQcm90b2NvbApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9wcm9jZXNzLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4
ZWN1dG9ycy9wcm9jZXNzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiOGMxN2E5NmJhMDRjZTYwMWFkM2NiOWFk
NGM3NTg4Zjk0N2U5NDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3Jz
L3Byb2Nlc3MucHkKQEAgLTAsMCArMSwyMCBAQAorZnJvbSAuYmFzZSBpbXBvcnQgVGVzdEV4ZWN1
dG9yCisKKworY2xhc3MgUHJvY2Vzc1Rlc3RFeGVjdXRvcihUZXN0RXhlY3V0b3IpOgorICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBUZXN0RXhlY3V0b3Iu
X19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBzZWxmLmJpbmFyeSA9IHNl
bGYuYnJvd3Nlci5iaW5hcnkKKyAgICAgICAgc2VsZi5pbnRlcmFjdGl2ZSA9IChGYWxzZSBpZiBz
ZWxmLmRlYnVnX2luZm8gaXMgTm9uZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ug
c2VsZi5kZWJ1Z19pbmZvLmludGVyYWN0aXZlKQorCisgICAgZGVmIHNldHVwKHNlbGYsIHJ1bm5l
cik6CisgICAgICAgIHNlbGYucnVubmVyID0gcnVubmVyCisgICAgICAgIHNlbGYucnVubmVyLnNl
bmRfbWVzc2FnZSgiaW5pdF9zdWNjZWVkZWQiKQorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAg
ZGVmIGlzX2FsaXZlKHNlbGYpOgorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIGRvX3Rl
c3Qoc2VsZiwgdGVzdCk6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHJvdG9jb2wucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
ZXhlY3V0b3JzL3Byb3RvY29sLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjNjlkMjRmNTIzZjIzZWRjM2NmOWY1
ZTk0NTY2ZGJjOTEzNjZhMjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0
b3JzL3Byb3RvY29sLnB5CkBAIC0wLDAgKzEsMjc4IEBACitpbXBvcnQgdHJhY2ViYWNrCitmcm9t
IGFiYyBpbXBvcnQgQUJDTWV0YSwgYWJzdHJhY3RtZXRob2QKKworCitjbGFzcyBQcm90b2NvbChv
YmplY3QpOgorICAgICIiIkJhY2tlbmQgZm9yIGEgc3BlY2lmaWMgYnJvd3Nlci1jb250cm9sIHBy
b3RvY29sLgorCisgICAgRWFjaCBQcm90b2NvbCBpcyBjb21wb3NlZCBvZiBhIHNldCBvZiBQcm90
b2NvbFBhcnRzIHRoYXQgaW1wbGVtZW50CisgICAgdGhlIEFQSXMgcmVxdWlyZWQgZm9yIHNwZWNp
ZmljIGludGVyYWN0aW9ucy4gVGhpcyByZWZsZWN0cyB0aGUgZmFjdAorICAgIHRoYXQgbm90IGFs
bCBpbXBsZW1lbnRhaW9ucyB3aWxsIHN1cHBvcnQgZXhhY3RseSB0aGUgc2FtZSBmZWF0dXJlIHNl
dC4KKyAgICBFYWNoIFByb3RvY29sUGFydCBpcyBleHBvc2VkIGRpcmVjdGx5IG9uIHRoZSBwcm90
b2NvbCB0aHJvdWdoIGFuIGFjY2Vzc29yCisgICAgYXR0cmlidXRlIHdpdGggYSBuYW1lIGdpdmVu
IGJ5IGl0cyBgbmFtZWAgcHJvcGVydHkuCisKKyAgICA6cGFyYW0gRXhlY3V0b3IgZXhlY3V0b3I6
IFRoZSBFeGVjdXRvciBpbnN0YW5jZSB0aGF0J3MgdXNpbmcgdGhpcyBQcm90b2NvbAorICAgIDpw
YXJhbSBCcm93c2VyIGJyb3dzZXI6IFRoZSBCcm93c2VyIHVzaW5nIHRoaXMgcHJvdG9jb2wiIiIK
KyAgICBfX21ldGFjbGFzc19fID0gQUJDTWV0YQorCisgICAgaW1wbGVtZW50cyA9IFtdCisKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgZXhlY3V0b3IsIGJyb3dzZXIpOgorICAgICAgICBzZWxmLmV4
ZWN1dG9yID0gZXhlY3V0b3IKKyAgICAgICAgc2VsZi5icm93c2VyID0gYnJvd3NlcgorCisgICAg
ICAgIGZvciBjbHMgaW4gc2VsZi5pbXBsZW1lbnRzOgorICAgICAgICAgICAgbmFtZSA9IGNscy5u
YW1lCisgICAgICAgICAgICBhc3NlcnQgbm90IGhhc2F0dHIoc2VsZiwgbmFtZSkKKyAgICAgICAg
ICAgIHNldGF0dHIoc2VsZiwgbmFtZSwgY2xzKHNlbGYpKQorCisgICAgQHByb3BlcnR5CisgICAg
ZGVmIGxvZ2dlcihzZWxmKToKKyAgICAgICAgIiIiOnJldHVybnM6IEN1cnJlbnQgbG9nZ2VyIiIi
CisgICAgICAgIHJldHVybiBzZWxmLmV4ZWN1dG9yLmxvZ2dlcgorCisgICAgQHByb3BlcnR5Cisg
ICAgZGVmIGlzX2FsaXZlKHNlbGYpOgorICAgICAgICAiIiJJcyB0aGUgYnJvd3NlciBjb25uZWN0
aW9uIHN0aWxsIGFjdGl2ZQorCisgICAgICAgIDpyZXR1cm5zOiBBIGJvb2xlYW4gaW5kaWNhdGlu
ZyB3aGV0aGVyIHRoZSBjb25uZWN0aW9uIGlzIHN0aWxsIGFjdGl2ZS4iIiIKKyAgICAgICAgcmV0
dXJuIFRydWUKKworICAgIGRlZiBzZXR1cChzZWxmLCBydW5uZXIpOgorICAgICAgICAiIiJIYW5k
bGUgcHJvdG9jb2wgc2V0dXAsIGFuZCBzZW5kIGEgbWVzc2FnZSB0byB0aGUgcnVubmVyIHRvIGlu
ZGljYXRlCisgICAgICAgIHN1Y2Nlc3Mgb3IgZmFpbHVyZS4iIiIKKyAgICAgICAgbXNnID0gTm9u
ZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBtc2cgPSAiRmFpbGVkIHRvIHN0YXJ0IHByb3Rv
Y29sIGNvbm5lY3Rpb24iCisgICAgICAgICAgICBzZWxmLmNvbm5lY3QoKQorCisgICAgICAgICAg
ICBtc2cgPSBOb25lCisKKyAgICAgICAgICAgIGZvciBjbHMgaW4gc2VsZi5pbXBsZW1lbnRzOgor
ICAgICAgICAgICAgICAgIGdldGF0dHIoc2VsZiwgY2xzLm5hbWUpLnNldHVwKCkKKworICAgICAg
ICAgICAgbXNnID0gIlBvc3QtY29ubmVjdGlvbiBzdGVwcyBmYWlsZWQiCisgICAgICAgICAgICBz
ZWxmLmFmdGVyX2Nvbm5lY3QoKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAg
ICAgaWYgbXNnIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5p
bmcobXNnKQorICAgICAgICAgICAgc2VsZi5sb2dnZXIuZXJyb3IodHJhY2ViYWNrLmZvcm1hdF9l
eGMoKSkKKyAgICAgICAgICAgIHNlbGYuZXhlY3V0b3IucnVubmVyLnNlbmRfbWVzc2FnZSgiaW5p
dF9mYWlsZWQiKQorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICBzZWxmLmV4ZWN1dG9yLnJ1bm5lci5zZW5kX21lc3NhZ2UoImluaXRfc3VjY2VlZGVkIikKKwor
ICAgIEBhYnN0cmFjdG1ldGhvZAorICAgIGRlZiBjb25uZWN0KHNlbGYpOgorICAgICAgICAiIiJN
YWtlIGEgY29ubmVjdGlvbiB0byB0aGUgcmVtb3RlIGJyb3dzZXIiIiIKKyAgICAgICAgcGFzcwor
CisgICAgQGFic3RyYWN0bWV0aG9kCisgICAgZGVmIGFmdGVyX2Nvbm5lY3Qoc2VsZik6CisgICAg
ICAgICIiIlJ1biBhbnkgcG9zdC1jb25uZWN0aW9uIHN0ZXBzLiBUaGlzIGhhcHBlbnMgYWZ0ZXIg
dGhlIFByb3RvY29sUGFydHMgYXJlCisgICAgICAgIGluaXRhbGl6ZWQgc28gY2FuIGRlcGVuZCBv
biBhIGZ1bGx5LXBvcHVsYXRlZCBvYmplY3QuIiIiCisgICAgICAgIHBhc3MKKworICAgIGRlZiB0
ZWFyZG93bihzZWxmKToKKyAgICAgICAgIiIiUnVuIGNsZWFudXAgc3RlcHMgYWZ0ZXIgdGhlIHRl
c3RzIGFyZSBmaW5pc2hlZC4iIiIKKyAgICAgICAgZm9yIGNscyBpbiBzZWxmLmltcGxlbWVudHM6
CisgICAgICAgICAgICBnZXRhdHRyKHNlbGYsIGNscy5uYW1lKS50ZWFyZG93bigpCisKKworY2xh
c3MgUHJvdG9jb2xQYXJ0KG9iamVjdCk6CisgICAgIiIiQmFzZSBjbGFzcyAgZm9yIGFsbCBQcm90
b2NvbFBhcnRzLgorCisgICAgOnBhcmFtIFByb3RvY29sIHBhcmVudDogVGhlIHBhcmVudCBwcm90
b2NvbCIiIgorICAgIF9fbWV0YWNsYXNzX18gPSBBQkNNZXRhCisKKyAgICBuYW1lID0gTm9uZQor
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCk6CisgICAgICAgIHNlbGYucGFyZW50ID0g
cGFyZW50CisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbG9nZ2VyKHNlbGYpOgorICAgICAgICAi
IiI6cmV0dXJuczogQ3VycmVudCBsb2dnZXIiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50
LmxvZ2dlcgorCisgICAgZGVmIHNldHVwKHNlbGYpOgorICAgICAgICAiIiJSdW4gYW55IHNldHVw
IHN0ZXBzIHJlcXVpcmVkIGZvciB0aGUgUHJvdG9jb2xQYXJ0LiIiIgorICAgICAgICBwYXNzCisK
KyAgICBkZWYgdGVhcmRvd24oc2VsZik6CisgICAgICAgICIiIlJ1biBhbnkgdGVhcmRvd24gc3Rl
cHMgcmVxdWlyZWQgZm9yIHRoZSBQcm90b2NvbFBhcnQuIiIiCisgICAgICAgIHBhc3MKKworCitj
bGFzcyBCYXNlUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CisgICAgIiIiR2VuZXJpYyBiaXRz
IG9mIHByb3RvY29sIHRoYXQgYXJlIHJlcXVpcmVkIGZvciBtdWx0aXBsZSB0ZXN0IHR5cGVzIiIi
CisgICAgX19tZXRhY2xhc3NfXyA9IEFCQ01ldGEKKworICAgIG5hbWUgPSAiYmFzZSIKKworICAg
IEBhYnN0cmFjdG1ldGhvZAorICAgIGRlZiBleGVjdXRlX3NjcmlwdChzZWxmLCBzY3JpcHQsIGFz
eW5jPUZhbHNlKToKKyAgICAgICAgIiIiRXhlY3V0ZSBqYXZhc2NyaXB0IGluIHRoZSBjdXJyZW50
IFdpbmRvdy4KKworICAgICAgICA6cGFyYW0gc3RyIHNjcmlwdDogVGhlIGpzIHNvdXJjZSB0byBl
eGVjdXRlLiBUaGlzIGlzIGltcGxpY2l0bHkgd3JhcHBlZCBpbiBhIGZ1bmN0aW9uLgorICAgICAg
ICA6cGFyYW0gYm9vbCBhc3luYzogV2hldGhlciB0aGUgc2NyaXB0IGlzIGFzeW5jaHJvbm91cyBp
biB0aGUgd2ViZHJpdmVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW5zZSBpLmUuIHdo
ZXRoZXIgdGhlIHJldHVybiB2YWx1ZSBpcyB0aGUgcmVzdWx0IG9mCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aGUgaW5pdGlhbCBmdW5jdGlvbiBjYWxsIG9yIGlmIGl0IHdhaXRzIGZvciBz
b21lIGNhbGxiYWNrLgorICAgICAgICA6cmV0dXJuczogVGhlIHJlc3VsdCBvZiB0aGUgc2NyaXB0
IGV4ZWN1dGlvbi4KKyAgICAgICAgIiIiCisgICAgICAgIHBhc3MKKworICAgIEBhYnN0cmFjdG1l
dGhvZAorICAgIGRlZiBzZXRfdGltZW91dChzZWxmLCB0aW1lb3V0KToKKyAgICAgICAgIiIiU2V0
IHRoZSB0aW1lb3V0IGZvciBzY3JpcHQgZXhlY3V0aW9uLgorCisgICAgICAgIDpwYXJhbSB0aW1l
b3V0OiBTY3JpcHQgdGltZW91dCBpbiBzZWNvbmRzIiIiCisgICAgICAgIHBhc3MKKworICAgIEBh
YnN0cmFjdG1ldGhvZAorICAgIGRlZiB3YWl0KHNlbGYpOgorICAgICAgICAiIiJXYWl0IGluZGVm
aW5pdGVseSBmb3IgdGhlIGJyb3dzZXIgdG8gY2xvc2UiIiIKKyAgICAgICAgcGFzcworCisgICAg
QHByb3BlcnR5CisgICAgZGVmIGN1cnJlbnRfd2luZG93KHNlbGYpOgorICAgICAgICAiIiJSZXR1
cm4gYSBoYW5kbGUgaWRlbnRpZnlpbmcgdGhlIGN1cnJlbnQgdG9wIGxldmVsIGJyb3dzaW5nIGNv
bnRleHQKKworICAgICAgICA6cmV0dXJuczogQSBwcm90b2NvbC1zcGVjaWZpYyBoYW5kbGUiIiIK
KyAgICAgICAgcGFzcworCisgICAgQGFic3RyYWN0bWV0aG9kCisgICAgZGVmIHNldF93aW5kb3co
c2VsZiwgaGFuZGxlKToKKyAgICAgICAgIiIiU2V0IHRoZSB0b3AgbGV2ZWwgYnJvd3NpbmcgY29u
dGV4dCB0byBvbmUgc3BlY2lmaWVkIGJ5IGEgZ2l2ZW4gaGFuZGxlLgorCisgICAgICAgIDpwYXJh
bSBoYW5kbGU6IEEgcHJvdG9jb2wtc3BlY2lmaWMgaGFuZGxlIGlkZW50aWZ5aW5nIGEgdG9wIGxl
dmVsIGJyb3dzaW5nCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuIiIiCisgICAgICAg
IHBhc3MKKworCitjbGFzcyBUZXN0aGFybmVzc1Byb3RvY29sUGFydChQcm90b2NvbFBhcnQpOgor
ICAgICIiIlByb3RvY29sIHBhcnQgcmVxdWlyZWQgdG8gcnVuIHRlc3RoYXJuZXNzIHRlc3RzLiIi
IgorICAgIF9fbWV0YWNsYXNzX18gPSBBQkNNZXRhCisKKyAgICBuYW1lID0gInRlc3RoYXJuZXNz
IgorCisgICAgQGFic3RyYWN0bWV0aG9kCisgICAgZGVmIGxvYWRfcnVubmVyKHNlbGYsIHVybF9w
cm90b2NvbCk6CisgICAgICAgICIiIkxvYWQgdGhlIGluaXRpYWwgcGFnZSB1c2VkIHRvIGNvbnRy
b2wgdGhlIHRlc3RzLgorCisgICAgICAgIDpwYXJhbSBzdHIgdXJsX3Byb3RvY29sOiAiaHR0cHMi
IG9yICJodHRwIiBkZXBlbmRpbmcgb24gdGhlIHRlc3QgbWV0YWRhdGEuCisgICAgICAgICIiIgor
ICAgICAgICBwYXNzCisKKyAgICBAYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgY2xvc2Vfb2xkX3dp
bmRvd3Moc2VsZiwgdXJsX3Byb3RvY29sKToKKyAgICAgICAgIiIiQ2xvc2UgZXhpc3Rpbmcgd2lu
ZG93cyBleGNlcHQgZm9yIHRoZSBpbml0aWFsIHJ1bm5lciB3aW5kb3cuCisgICAgICAgIEFmdGVy
IGNhbGxpbmcgdGhpcyBtZXRob2QgdGhlcmUgbXVzdCBiZSBleGFjdGx5IG9uZSBvcGVuIHdpbmRv
dyB0aGF0CisgICAgICAgIGNvbnRhaW5zIHRoZSBpbml0aWFsIHJ1bm5lciBwYWdlLgorCisgICAg
ICAgIDpwYXJhbSBzdHIgdXJsX3Byb3RvY29sOiAiaHR0cHMiIG9yICJodHRwIiBkZXBlbmRpbmcg
b24gdGhlIHRlc3QgbWV0YWRhdGEuCisgICAgICAgICIiIgorICAgICAgICBwYXNzCisKKyAgICBA
YWJzdHJhY3RtZXRob2QKKyAgICBkZWYgZ2V0X3Rlc3Rfd2luZG93KHNlbGYsIHdpbmRvd19pZCwg
cGFyZW50KToKKyAgICAgICAgIiIiR2V0IHRoZSB3aW5kb3cgaGFuZGxlIGRvcnJlc3BvbmRpbmcg
dG8gdGhlIHdpbmRvdyBjb250YWluaW5nIHRoZQorICAgICAgICBjdXJyZW50bHkgYWN0aXZlIHRl
c3QuCisKKyAgICAgICAgOnBhcmFtIHdpbmRvd19pZDogQSBzdHJpbmcgY29udGFpbmluZyB0aGUg
RE9NIG5hbWUgb2YgdGhlIFdpbmRvdyB0aGF0CisgICAgICAgIGNvbnRhaW5zIHRoZSB0ZXN0LCBv
ciBOb25lLgorICAgICAgICA6cGFyYW0gcGFyZW50OiBUaGUgaGFuZGxlIG9mIHRoZSBydW5uZXIg
d2luZG93LgorICAgICAgICA6cmV0dXJuczogQSBwcm90b2NvbC1zcGVjaWZpYyB3aW5kb3cgaGFu
ZGxlLgorICAgICAgICAiIiIKKyAgICAgICAgcGFzcworCisKK2NsYXNzIFByZWZzUHJvdG9jb2xQ
YXJ0KFByb3RvY29sUGFydCk6CisgICAgIiIiUHJvdG9jb2wgcGFydCB0aGF0IGFsbG93cyBnZXR0
aW5nIGFuZCBzZXR0aW5nIGJyb3dzZXIgcHJlZnMuIiIiCisgICAgX19tZXRhY2xhc3NfXyA9IEFC
Q01ldGEKKworICAgIG5hbWUgPSAicHJlZnMiCisKKyAgICBAYWJzdHJhY3RtZXRob2QKKyAgICBk
ZWYgc2V0KHNlbGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgIiIiU2V0IHRoZSBuYW1lZCBwcmVm
IHRvIHZhbHVlLgorCisgICAgICAgIDpwYXJhbSBuYW1lOiBBIHByZWYgbmFtZSBvZiBicm93c2Vy
LXNwZWNpZmljIHR5cGUKKyAgICAgICAgOnBhcmFtIHZhbHVlOiBBIHByZWYgdmFsdWUgb2YgYnJv
d3Nlci1zcGVjaWZpYyB0eXBlIiIiCisgICAgICAgIHBhc3MKKworICAgIEBhYnN0cmFjdG1ldGhv
ZAorICAgIGRlZiBnZXQoc2VsZiwgbmFtZSk6CisgICAgICAgICIiIkdldCB0aGUgY3VycmVudCB2
YWx1ZSBvZiBhIG5hbWVkIHByZWYKKworICAgICAgICA6cGFyYW0gbmFtZTogQSBwcmVmIG5hbWUg
b2YgYnJvd3Nlci1zcGVjaWZpYyB0eXBlCisgICAgICAgIDpyZXR1cm5zOiBBIHByZWYgdmFsdWUg
b2YgYnJvd3Nlci1zcGVjaWZpYyB0eXBlIiIiCisgICAgICAgIHBhc3MKKworICAgIEBhYnN0cmFj
dG1ldGhvZAorICAgIGRlZiBjbGVhcihzZWxmLCBuYW1lKToKKyAgICAgICAgIiIiUmVzZXQgdGhl
IHZhbHVlIG9mIGEgbmFtZWQgcHJlZiBiYWNrIHRvIHRoZSBkZWZhdWx0LgorCisgICAgICAgIDpw
YXJhbSBuYW1lOiBBIHByZWYgbmFtZSBvZiBicm93c2VyLXNwZWNpZmljIHR5cGUiIiIKKyAgICAg
ICAgcGFzcworCisKK2NsYXNzIFN0b3JhZ2VQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKKyAg
ICAiIiJQcm90b2NvbCBwYXJ0IGZvciBtYW5pcHVsYXRpbmcgYnJvd3NlciBzdG9yYWdlLiIiIgor
ICAgIF9fbWV0YWNsYXNzX18gPSBBQkNNZXRhCisKKyAgICBuYW1lID0gInN0b3JhZ2UiCisKKyAg
ICBAYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgY2xlYXJfb3JpZ2luKHNlbGYsIHVybCk6CisgICAg
ICAgICIiIkNsZWFyIGFsbCB0aGUgc3RvcmFnZSBmb3IgYSBzcGVjaWZpZWQgb3JpZ2luLgorCisg
ICAgICAgIDpwYXJhbSB1cmw6IEEgdXJsIGJlbG9uZ2luZyB0byB0aGUgb3JpZ2luIiIiCisgICAg
ICAgIHBhc3MKKworCitjbGFzcyBTZWxlY3RvclByb3RvY29sUGFydChQcm90b2NvbFBhcnQpOgor
ICAgICIiIlByb3RvY29sIHBhcnQgZm9yIHNlbGVjdGluZyBlbGVtZW50cyBvbiB0aGUgcGFnZS4i
IiIKKyAgICBfX21ldGFjbGFzc19fID0gQUJDTWV0YQorCisgICAgbmFtZSA9ICJzZWxlY3QiCisK
KyAgICBAYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgZWxlbWVudHNfYnlfc2VsZWN0b3Ioc2VsZiwg
c2VsZWN0b3IpOgorICAgICAgICAiIiJTZWxlY3QgZWxlbWVudHMgbWF0Y2hpbmcgYSBDU1Mgc2Vs
ZWN0b3IKKworICAgICAgICA6cGFyYW0gc3RyIHNlbGVjdG9yOiBUaGUgQ1NTIHNlbGVjdG9yCisg
ICAgICAgIDpyZXR1cm5zOiBBIGxpc3Qgb2YgcHJvdG9jb2wtc3BlY2lmaWMgaGFuZGxlcyB0byBl
bGVtZW50cyIiIgorICAgICAgICBwYXNzCisKKworY2xhc3MgQ2xpY2tQcm90b2NvbFBhcnQoUHJv
dG9jb2xQYXJ0KToKKyAgICAiIiJQcm90b2NvbCBwYXJ0IGZvciBwZXJmb3JtaW5nIHRydXN0ZWQg
Y2xpY2tzIiIiCisgICAgX19tZXRhY2xhc3NfXyA9IEFCQ01ldGEKKworICAgIG5hbWUgPSAiY2xp
Y2siCisKKyAgICBAYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgZWxlbWVudChzZWxmLCBlbGVtZW50
KToKKyAgICAgICAgIiIiUGVyZm9ybSBhIHRydXN0ZWQgY2xpY2sgc29tZXdoZXJlIG9uIGEgc3Bl
Y2lmaWMgZWxlbWVudC4KKworICAgICAgICA6cGFyYW0gZWxlbWVudDogQSBwcm90b2NvbC1zcGVj
aWZpYyBoYW5kbGUgdG8gYW4gZWxlbWVudC4iIiIKKyAgICAgICAgcGFzcworCisKK2NsYXNzIFRl
c3REcml2ZXJQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKKyAgICAiIiJQcm90b2NvbCBwYXJ0
IHRoYXQgaW1wbGVtZW50cyB0aGUgYmFzaWMgZnVuY3Rpb25hbGl0eSByZXF1aXJlZCBmb3IKKyAg
ICBhbGwgdGVzdGRyaXZlci1iYXNlZCB0ZXN0cy4iIiIKKyAgICBfX21ldGFjbGFzc19fID0gQUJD
TWV0YQorCisgICAgbmFtZSA9ICJ0ZXN0ZHJpdmVyIgorCisgICAgQGFic3RyYWN0bWV0aG9kCisg
ICAgZGVmIHNlbmRfbWVzc2FnZShzZWxmLCBtZXNzYWdlX3R5cGUsIHN0YXR1cywgbWVzc2FnZT1O
b25lKToKKyAgICAgICAgIiIiU2VuZCBhIHRlc3Rkcml2ZXIgbWVzc2FnZSB0byB0aGUgYnJvd3Nl
ci4KKworICAgICAgICA6cGFyYW0gc3RyIG1lc3NhZ2VfdHlwZTogVGhlIGtpbmQgb2YgdGhlIG1l
c3NhZ2UuCisgICAgICAgIDpwYXJhbSBzdHIgc3RhdHVzOiBFaXRoZXIgImZhaWx1cmUiIG9yICJz
dWNjZXNzIiBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHByZXZpb3VzIGNvbW1hbmQgc3VjY2VlZGVkLgorICAgICAgICA6cGFyYW0gc3RyIG1lc3Nh
Z2U6IEFkZGl0aW9uYWwgZGF0YSB0byBhZGQgdG8gdGhlIG1lc3NhZ2UuIiIiCisgICAgICAgIHBh
c3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHl0ZXN0cnVubmVyL19faW5p
dF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9weXRlc3RydW5uZXIvX19pbml0X18ucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTkyYjNhODE1MWRhN2QwYzZkYWU5ZGY5ZjZhMWJjNzcwOWIyY2JhZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHl0ZXN0cnVubmVyL19faW5p
dF9fLnB5CkBAIC0wLDAgKzEgQEAKK2Zyb20gLnJ1bm5lciBpbXBvcnQgcnVuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3B5dGVzdHJ1bm5lci9ydW5uZXIucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvZXhlY3V0b3JzL3B5dGVzdHJ1bm5lci9ydW5uZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGVhYmYy
N2Y0N2Y5YzFlYjNhODI2OWQ4OTk4NTBkMTQyZjdhZTc3NwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9leGVjdXRvcnMvcHl0ZXN0cnVubmVyL3J1bm5lci5weQpAQCAtMCwwICsxLDEz
NiBAQAorIiIiCitQcm92aWRlcyBpbnRlcmZhY2UgdG8gZGVhbCB3aXRoIHB5dGVzdC4KKworVXNh
Z2U6OgorCisgICAgc2Vzc2lvbiA9IHdlYmRyaXZlci5jbGllbnQuU2Vzc2lvbigiMTI3LjAuMC4x
IiwgIjQ0NDQiLCAiLyIpCisgICAgaGFybmVzc19yZXN1bHQgPSAoIk9LIiwgTm9uZSkKKyAgICBz
dWJ0ZXN0X3Jlc3VsdHMgPSBweXRlc3RydW5uZXIucnVuKCIvcGF0aC90by90ZXN0Iiwgc2Vzc2lv
bi51cmwpCisgICAgcmV0dXJuIChoYXJuZXNzX3Jlc3VsdCwgc3VidGVzdF9yZXN1bHRzKQorIiIi
CisKK2ltcG9ydCBlcnJubworaW1wb3J0IGpzb24KK2ltcG9ydCBvcworaW1wb3J0IHNodXRpbAor
aW1wb3J0IHRlbXBmaWxlCisKKworcHl0ZXN0ID0gTm9uZQorCisKK2RlZiBkb19kZWxheWVkX2lt
cG9ydHMoKToKKyAgICBnbG9iYWwgcHl0ZXN0CisgICAgaW1wb3J0IHB5dGVzdAorCisKK2RlZiBy
dW4ocGF0aCwgc2VydmVyX2NvbmZpZywgc2Vzc2lvbl9jb25maWcsIHRpbWVvdXQ9MCk6CisgICAg
IiIiCisgICAgUnVuIFB5dGhvbiB0ZXN0IGF0IGBgcGF0aGBgIGluIHB5dGVzdC4gIFRoZSBwcm92
aWRlZCBgYHNlc3Npb25gYAorICAgIGlzIGV4cG9zZWQgYXMgYSBmaXh0dXJlIGF2YWlsYWJsZSBp
biB0aGUgc2NvcGUgb2YgdGhlIHRlc3QgZnVuY3Rpb25zLgorCisgICAgOnBhcmFtIHBhdGg6IFBh
dGggdG8gdGhlIHRlc3QgZmlsZS4KKyAgICA6cGFyYW0gc2Vzc2lvbl9jb25maWc6IGRpY3Rpb25h
cnkgb2YgaG9zdCwgcG9ydCxjYXBhYmlsaXRpZXMgcGFyYW1ldGVycworICAgIHRvIHBhc3MgdGhy
b3VnaCB0byB0aGUgd2ViZHJpdmVyIHNlc3Npb24KKyAgICA6cGFyYW0gdGltZW91dDogRHVyYXRp
b24gYmVmb3JlIGludGVycnVwdGluZyBwb3RlbnRpYWxseSBoYW5naW5nCisgICAgICAgIHRlc3Rz
LiAgSWYgMCwgdGhlcmUgaXMgbm8gdGltZW91dC4KKworICAgIDpyZXR1cm5zOiAoPGhhcm5lc3Mg
cmVzdWx0PiwgWzxzdWJ0ZXN0IHJlc3VsdD4sIC4uLl0pLAorICAgICAgICB3aGVyZSA8c3VidGVz
dCByZXN1bHQ+IGlzICh0ZXN0IGlkLCBzdGF0dXMsIG1lc3NhZ2UsIHN0YWNrdHJhY2UpLgorICAg
ICIiIgorICAgIGlmIHB5dGVzdCBpcyBOb25lOgorICAgICAgICBkb19kZWxheWVkX2ltcG9ydHMo
KQorCisgICAgb3MuZW52aXJvblsiV0RfSE9TVCJdID0gc2Vzc2lvbl9jb25maWdbImhvc3QiXQor
ICAgIG9zLmVudmlyb25bIldEX1BPUlQiXSA9IHN0cihzZXNzaW9uX2NvbmZpZ1sicG9ydCJdKQor
ICAgIG9zLmVudmlyb25bIldEX0NBUEFCSUxJVElFUyJdID0ganNvbi5kdW1wcyhzZXNzaW9uX2Nv
bmZpZ1siY2FwYWJpbGl0aWVzIl0pCisgICAgb3MuZW52aXJvblsiV0RfU0VSVkVSX0NPTkZJRyJd
ID0ganNvbi5kdW1wcyhzZXJ2ZXJfY29uZmlnKQorCisgICAgaGFybmVzcyA9IEhhcm5lc3NSZXN1
bHRSZWNvcmRlcigpCisgICAgc3VidGVzdHMgPSBTdWJ0ZXN0UmVzdWx0UmVjb3JkZXIoKQorCisg
ICAgd2l0aCBUZW1wb3JhcnlEaXJlY3RvcnkoKSBhcyBjYWNoZToKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgcHl0ZXN0Lm1haW4oWyItLXN0cmljdCIsICAjIHR1cm4gd2FybmluZ3MgaW50byBl
cnJvcnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAiLXZ2IiwgICMgc2hvdyBlYWNoIGluZGl2
aWR1YWwgc3VidGVzdCBhbmQgZnVsbCBmYWlsdXJlIGxvZ3MKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAiLS1jYXB0dXJlIiwgIm5vIiwgICMgZW5hYmxlIHN0ZG91dC9zdGRlcnIgZnJvbSB0ZXN0
cworICAgICAgICAgICAgICAgICAgICAgICAgICItLWJhc2V0ZW1wIiwgY2FjaGUsICAjIHRlbXBv
cmFyeSBkaXJlY3RvcnkKKyAgICAgICAgICAgICAgICAgICAgICAgICAiLS1zaG93bG9jYWxzIiwg
ICMgZGlzcGxheSBjb250ZW50cyBvZiB2YXJpYWJsZXMgaW4gbG9jYWwgc2NvcGUKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAiLXAiLCAibm86bW96bG9nIiwgICMgdXNlIHRoZSBXUFQgcmVzdWx0
IHJlY29yZGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgIi1wIiwgIm5vOmNhY2hlcHJvdmlk
ZXIiLCAgIyBkaXNhYmxlIHN0YXRlIHByZXNlcnZhdGlvbiBhY3Jvc3MgaW52b2NhdGlvbnMKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAiLW89Y29uc29sZV9vdXRwdXRfc3R5bGU9Y2xhc3NpYyIs
ICAjIGRpc2FibGUgdGVzdCBwcm9ncmVzcyBiYXIKKyAgICAgICAgICAgICAgICAgICAgICAgICBw
YXRoXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBsdWdpbnM9W2hhcm5lc3MsIHN1YnRlc3Rz
XSkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgaGFybmVzcy5v
dXRjb21lID0gKCJFUlJPUiIsIHN0cihlKSkKKworICAgIHJldHVybiAoaGFybmVzcy5vdXRjb21l
LCBzdWJ0ZXN0cy5yZXN1bHRzKQorCisKK2NsYXNzIEhhcm5lc3NSZXN1bHRSZWNvcmRlcihvYmpl
Y3QpOgorICAgIG91dGNvbWVzID0geworICAgICAgICAiZmFpbGVkIjogIkVSUk9SIiwKKyAgICAg
ICAgInBhc3NlZCI6ICJPSyIsCisgICAgICAgICJza2lwcGVkIjogIlNLSVAiLAorICAgIH0KKwor
ICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgIyB3ZSBhcmUgb2sgdW5sZXNzIHRvbGQg
b3RoZXJ3aXNlCisgICAgICAgIHNlbGYub3V0Y29tZSA9ICgiT0siLCBOb25lKQorCisgICAgZGVm
IHB5dGVzdF9jb2xsZWN0cmVwb3J0KHNlbGYsIHJlcG9ydCk6CisgICAgICAgIGhhcm5lc3NfcmVz
dWx0ID0gc2VsZi5vdXRjb21lc1tyZXBvcnQub3V0Y29tZV0KKyAgICAgICAgc2VsZi5vdXRjb21l
ID0gKGhhcm5lc3NfcmVzdWx0LCBOb25lKQorCisKK2NsYXNzIFN1YnRlc3RSZXN1bHRSZWNvcmRl
cihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5yZXN1bHRz
ID0gW10KKworICAgIGRlZiBweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQoc2VsZiwgcmVwb3J0KToK
KyAgICAgICAgaWYgcmVwb3J0LnBhc3NlZCBhbmQgcmVwb3J0LndoZW4gPT0gImNhbGwiOgorICAg
ICAgICAgICAgc2VsZi5yZWNvcmRfcGFzcyhyZXBvcnQpCisgICAgICAgIGVsaWYgcmVwb3J0LmZh
aWxlZDoKKyAgICAgICAgICAgIGlmIHJlcG9ydC53aGVuICE9ICJjYWxsIjoKKyAgICAgICAgICAg
ICAgICBzZWxmLnJlY29yZF9lcnJvcihyZXBvcnQpCisgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgIHNlbGYucmVjb3JkX2ZhaWwocmVwb3J0KQorICAgICAgICBlbGlmIHJlcG9ydC5z
a2lwcGVkOgorICAgICAgICAgICAgc2VsZi5yZWNvcmRfc2tpcChyZXBvcnQpCisKKyAgICBkZWYg
cmVjb3JkX3Bhc3Moc2VsZiwgcmVwb3J0KToKKyAgICAgICAgc2VsZi5yZWNvcmQocmVwb3J0Lm5v
ZGVpZCwgIlBBU1MiKQorCisgICAgZGVmIHJlY29yZF9mYWlsKHNlbGYsIHJlcG9ydCk6CisgICAg
ICAgIHNlbGYucmVjb3JkKHJlcG9ydC5ub2RlaWQsICJGQUlMIiwgc3RhY2s9cmVwb3J0Lmxvbmdy
ZXByKQorCisgICAgZGVmIHJlY29yZF9lcnJvcihzZWxmLCByZXBvcnQpOgorICAgICAgICAjIGVy
cm9yIGluIHNldHVwL3RlYXJkb3duCisgICAgICAgIGlmIHJlcG9ydC53aGVuICE9ICJjYWxsIjoK
KyAgICAgICAgICAgIG1lc3NhZ2UgPSAiJXMgZXJyb3IiICUgcmVwb3J0LndoZW4KKyAgICAgICAg
c2VsZi5yZWNvcmQocmVwb3J0Lm5vZGVpZCwgIkVSUk9SIiwgbWVzc2FnZSwgcmVwb3J0Lmxvbmdy
ZXByKQorCisgICAgZGVmIHJlY29yZF9za2lwKHNlbGYsIHJlcG9ydCk6CisgICAgICAgIHNlbGYu
cmVjb3JkKHJlcG9ydC5ub2RlaWQsICJFUlJPUiIsCisgICAgICAgICAgICAgICAgICAgICJJbi10
ZXN0IHNraXAgZGVjb3JhdG9ycyBhcmUgZGlzYWxsb3dlZCwgIgorICAgICAgICAgICAgICAgICAg
ICAicGxlYXNlIHVzZSBXUFQgbWV0YWRhdGEgdG8gaWdub3JlIHRlc3RzLiIpCisKKyAgICBkZWYg
cmVjb3JkKHNlbGYsIHRlc3QsIHN0YXR1cywgbWVzc2FnZT1Ob25lLCBzdGFjaz1Ob25lKToKKyAg
ICAgICAgaWYgc3RhY2sgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzdGFjayA9IHN0cihzdGFj
aykKKyAgICAgICAgbmV3X3Jlc3VsdCA9ICh0ZXN0LnNwbGl0KCI6OiIpWy0xXSwgc3RhdHVzLCBt
ZXNzYWdlLCBzdGFjaykKKyAgICAgICAgc2VsZi5yZXN1bHRzLmFwcGVuZChuZXdfcmVzdWx0KQor
CisKK2NsYXNzIFRlbXBvcmFyeURpcmVjdG9yeShvYmplY3QpOgorICAgIGRlZiBfX2VudGVyX18o
c2VsZik6CisgICAgICAgIHNlbGYucGF0aCA9IHRlbXBmaWxlLm1rZHRlbXAocHJlZml4PSJweXRl
c3QtIikKKyAgICAgICAgcmV0dXJuIHNlbGYucGF0aAorCisgICAgZGVmIF9fZXhpdF9fKHNlbGYs
ICphcmdzKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShzZWxmLnBh
dGgpCisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CisgICAgICAgICAgICAjIG5vIHN1Y2gg
ZmlsZSBvciBkaXJlY3RvcnkKKyAgICAgICAgICAgIGlmIGUuZXJybm8gIT0gZXJybm8uRU5PRU5U
OgorICAgICAgICAgICAgICAgIHJhaXNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0
b3JzL3B5dGVzdHJ1bm5lci93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMv
cHl0ZXN0cnVubmVyL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwZGE4YTA4ODAxNmViZjNl
MjA4NTNkNzM0ZjJhMTkyNzMxYWRlNGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
ZXhlY3V0b3JzL3B5dGVzdHJ1bm5lci93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDE4IEBACitU
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgor
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBz
Oi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBm
aWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3B5dGVzdHJ1bm5lci9fX2luaXRfXy5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHl0ZXN0cnVubmVyL3J1bm5lci5weQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9yZWZ0ZXN0LXdhaXRfbWFyaW9uZXR0ZS5qcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9leGVjdXRvcnMvcmVmdGVzdC13YWl0X21hcmlvbmV0dGUuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYzIyNjAyNzI4MWUyNzExNGU3ODM5YjJlYmUyOGY4NDJiZWNkZDYyNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcmVmdGVzdC13YWl0X21hcmlvbmV0dGUuanMK
QEAgLTAsMCArMSwxNyBAQAorZnVuY3Rpb24gdGVzdCh4KSB7CisgIGlmICghcm9vdC5jbGFzc0xp
c3QuY29udGFpbnMoInJlZnRlc3Qtd2FpdCIpKSB7CisgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgp
OworICAgIG1hcmlvbmV0dGVTY3JpcHRGaW5pc2hlZCgpOworICB9Cit9CisKK3ZhciByb290ID0g
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OwordmFyIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2Jz
ZXJ2ZXIodGVzdCk7CisKK29ic2VydmVyLm9ic2VydmUocm9vdCwge2F0dHJpYnV0ZXM6IHRydWV9
KTsKKworaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgIT0gImNvbXBsZXRlIikgeworICBvbmxvYWQg
PSB0ZXN0Cit9IGVsc2UgeworICB0ZXN0KCk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
ZXhlY3V0b3JzL3JlZnRlc3Qtd2FpdF93ZWJkcml2ZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0
b3JzL3JlZnRlc3Qtd2FpdF93ZWJkcml2ZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzFjYzY0OWUzMjNmOTc0
MjM5NmI3M2UzMDFmZjMwNjI3MWIxNjBkMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9leGVjdXRvcnMvcmVmdGVzdC13YWl0X3dlYmRyaXZlci5qcwpAQCAtMCwwICsxLDQ0IEBACit2
YXIgY2FsbGJhY2sgPSBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdOworCitmdW5jdGlv
biByb290X3dhaXQoKSB7CisgIGlmICghcm9vdC5jbGFzc0xpc3QuY29udGFpbnMoInJlZnRlc3Qt
d2FpdCIpKSB7CisgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpOworCisgICAgaWYgKERvY3VtZW50
LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSgiZm9udHMiKSkgeworICAgICAgZG9jdW1lbnQuZm9u
dHMucmVhZHkudGhlbihyZWFkeV9mb3Jfc2NyZWVuc2hvdCk7CisgICAgfSBlbHNlIHsKKyAgICAg
IC8vIFRoaXMgbWlnaHQgdGFrZSB0aGUgc2NyZWVuc2hvdCB0b28gZWFybHksIGRlcGVuZGluZyBv
biB3aGV0aGVyIHRoZQorICAgICAgLy8gbG9hZCBldmVudCBpcyBibG9ja2VkIG9uIGZvbnRzIGJl
aW5nIGxvYWRlZC4gU2VlOgorICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1k
cmFmdHMvaXNzdWVzLzEwODgKKyAgICAgIHJlYWR5X2Zvcl9zY3JlZW5zaG90KCk7CisgICAgfQor
ICB9Cit9CisKK2Z1bmN0aW9uIHJlYWR5X2Zvcl9zY3JlZW5zaG90KCkgeworICAvLyBBcyBvZiAy
MDE3LTA0LTA1LCB0aGUgQ2hyb21pdW0gd2ViIGJyb3dzZXIgZXhoaWJpdHMgYSByZW5kZXJpbmcg
YnVnCisgIC8vIChodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2Rl
dGFpbD9pZD03MDg3NTcpIHRoYXQKKyAgLy8gcHJvZHVjZXMgaW5zdGFiaWxpdHkgZHVyaW5nIHNj
cmVlbiBjYXB0dXJlLiBUaGUgZm9sbG93aW5nIHVzZSBvZgorICAvLyBgcmVxdWVzdEFuaW1hdGlv
bkZyYW1lYCBpcyBpbnRlbmRlZCBhcyBhIHNob3J0LXRlcm0gd29ya2Fyb3VuZCwgdGhvdWdoCisg
IC8vIGl0IGlzIG5vdCBndWFyYW50ZWVkIHRvIHJlc29sdmUgdGhlIGlzc3VlLgorICAvLworICAv
LyBGb3IgZnVydGhlciBkZXRhaWwsIHNlZToKKyAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2p1Z2ds
aW5taWtlL2Nocm9tZS1zY3JlZW5zaG90LXJhY2UvaXNzdWVzLzEKKworICByZXF1ZXN0QW5pbWF0
aW9uRnJhbWUoZnVuY3Rpb24oKSB7CisgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9u
KCkgeworICAgICAgY2FsbGJhY2soKTsKKyAgICB9KTsKKyAgfSk7Cit9CisKK3ZhciByb290ID0g
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OwordmFyIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2Jz
ZXJ2ZXIocm9vdF93YWl0KTsKKworb2JzZXJ2ZXIub2JzZXJ2ZShyb290LCB7YXR0cmlidXRlczog
dHJ1ZX0pOworCitpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSAhPSAiY29tcGxldGUiKSB7CisgICAg
b25sb2FkID0gcm9vdF93YWl0OworfSBlbHNlIHsKKyAgICByb290X3dhaXQoKTsKK30KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcmVmdGVzdC5qcyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9l
eGVjdXRvcnMvcmVmdGVzdC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YmQ1YzYwOWNiZDVlNzk5Nzg3YzkzYmFj
NjczZmI4ZTM5MmE3YzMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9y
cy9yZWZ0ZXN0LmpzCkBAIC0wLDAgKzEgQEAKK3ZhciB3aW4gPSB3aW5kb3cub3BlbigiYWJvdXQ6
YmxhbmsiLCAidGVzdCIsICJ3aWR0aD02MDAsaGVpZ2h0PTYwMCIpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2V4ZWN1dG9ycy90ZXN0aGFybmVzc19tYXJpb25ldHRlLmpzIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2V4ZWN1dG9ycy90ZXN0aGFybmVzc19tYXJpb25ldHRlLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0OWNh
YTQ2ODhjNTc4NTM2ZTM4YjI1NDBjM2RiNDkxMjM0ZjBmMTkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvZXhlY3V0b3JzL3Rlc3RoYXJuZXNzX21hcmlvbmV0dGUuanMKQEAgLTAsMCAr
MSwyNCBAQAord2luZG93LnRpbWVvdXRfbXVsdGlwbGllciA9ICUodGltZW91dF9tdWx0aXBsaWVy
KWQ7Cit3aW5kb3cuZXhwbGljaXRfdGltZW91dCA9ICUoZXhwbGljaXRfdGltZW91dClkOworCit3
aW5kb3cubWVzc2FnZV9xdWV1ZSA9IFtdOworCit3aW5kb3cuc2V0TWVzc2FnZUxpc3RlbmVyID0g
ZnVuY3Rpb24oZnVuYykgeworICB3aW5kb3cuY3VycmVudF9saXN0ZW5lciA9IGZ1bmM7CisgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKAorICAgICJtZXNzYWdlIiwKKyAgICBmdW5jLAorICAgIGZh
bHNlCisgICk7Cit9OworCit3aW5kb3cuc2V0TWVzc2FnZUxpc3RlbmVyKGZ1bmN0aW9uKGV2ZW50
KSB7CisgIHdpbmRvdy5tZXNzYWdlX3F1ZXVlLnB1c2goZXZlbnQpOworfSk7CisKK3dpbmRvdy53
aW4gPSB3aW5kb3cub3BlbigiJShhYnNfdXJsKXMiLCAiJSh3aW5kb3dfaWQpcyIpOworCit3aW5k
b3cudGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICB3aW5kb3cud2luLnRpbWVvdXQo
KTsKKyAgd2luZG93Lndpbi5jbG9zZSgpOworfSwgJSh0aW1lb3V0KXMpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy90ZXN0aGFybmVzc19tYXJpb25ldHRlX3Jlc3VtZS5qcyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvdGVzdGhhcm5lc3NfbWFyaW9uZXR0ZV9yZXN1bWUuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uN2EyZGY5OGVkNGU3M2JmNDYxOGIxNjlhYTI5N2YwYzA3NWZmOGExOQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvdGVzdGhhcm5lc3NfbWFyaW9u
ZXR0ZV9yZXN1bWUuanMKQEAgLTAsMCArMSw0NiBAQAordmFyIGNhbGxiYWNrID0gYXJndW1lbnRz
W2FyZ3VtZW50cy5sZW5ndGggLSAxXTsKKworZnVuY3Rpb24gcHJvY2Vzc19ldmVudChldmVudCkg
eworICB2YXIgZGF0YSA9IGV2ZW50LmRhdGE7CisKKyAgdmFyIHBheWxvYWQgPSB1bmRlZmluZWQ7
CisKKyAgc3dpdGNoKGRhdGEudHlwZSkgeworICBjYXNlICJjb21wbGV0ZSI6CisgICAgdmFyIHRl
c3RzID0gZXZlbnQuZGF0YS50ZXN0czsKKyAgICB2YXIgc3RhdHVzID0gZXZlbnQuZGF0YS5zdGF0
dXM7CisKKyAgICB2YXIgc3VidGVzdF9yZXN1bHRzID0gdGVzdHMubWFwKGZ1bmN0aW9uKHgpIHsK
KyAgICAgIHJldHVybiBbeC5uYW1lLCB4LnN0YXR1cywgeC5tZXNzYWdlLCB4LnN0YWNrXTsKKyAg
ICB9KTsKKyAgICBwYXlsb2FkID0gW3N0YXR1cy5zdGF0dXMsCisgICAgICAgICAgICAgICBzdGF0
dXMubWVzc2FnZSwKKyAgICAgICAgICAgICAgIHN0YXR1cy5zdGFjaywKKyAgICAgICAgICAgICAg
IHN1YnRlc3RfcmVzdWx0c107CisgICAgY2xlYXJUaW1lb3V0KHdpbmRvdy50aW1lcik7CisgICAg
YnJlYWs7CisKKyAgY2FzZSAiYWN0aW9uIjoKKyAgICB3aW5kb3cuc2V0TWVzc2FnZUxpc3RlbmVy
KGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICB3aW5kb3cubWVzc2FnZV9xdWV1ZS5wdXNoKGV2ZW50
KTsKKyAgICB9KTsKKyAgICBwYXlsb2FkID0gZGF0YTsKKyAgICBicmVhazsKKyAgZGVmYXVsdDoK
KyAgICByZXR1cm47CisgIH0KKworICBjYWxsYmFjayhbIiUodXJsKXMiLCBkYXRhLnR5cGUsIHBh
eWxvYWRdKTsKK30KKword2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCB3aW5k
b3cuY3VycmVudF9saXN0ZW5lcik7CitpZiAod2luZG93Lm1lc3NhZ2VfcXVldWUubGVuZ3RoKSB7
CisgIHZhciBuZXh0ID0gd2luZG93Lm1lc3NhZ2VfcXVldWUuc2hpZnQoKTsKKyAgcHJvY2Vzc19l
dmVudChuZXh0KTsKK30gZWxzZSB7CisgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKAorICAgICJt
ZXNzYWdlIiwgZnVuY3Rpb24gZihldmVudCkgeworICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlz
dGVuZXIoIm1lc3NhZ2UiLCBmKTsKKyAgICAgIHByb2Nlc3NfZXZlbnQoZXZlbnQpOworICAgIH0s
IGZhbHNlKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvdGVzdGhhcm5l
c3Nfc2Vydm9kcml2ZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Rlc3RoYXJuZXNzX3Nl
cnZvZHJpdmVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3MzFjYzA0ZDcwMTE3NTljZTYzMDc5ZmJkMTI0MmZk
NjQyNjYwM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Rlc3Ro
YXJuZXNzX3NlcnZvZHJpdmVyLmpzCkBAIC0wLDAgKzEsMiBAQAord2luZG93Ll9fd2RfcmVzdWx0
c19jYWxsYmFja19fID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXTsKK3dpbmRvdy5f
X3dkX3Jlc3VsdHNfdGltZXJfXyA9IHNldFRpbWVvdXQodGltZW91dCwgJSh0aW1lb3V0KXMpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy90ZXN0aGFybmVzc193ZWJkcml2ZXIu
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Rlc3RoYXJuZXNzX3dlYmRyaXZlci5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yMjY3NWYwNzAzZDMzYjAzOTViNThiNmUyYjhjNzBjMmFkYzc2NDM5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy90ZXN0aGFybmVzc193ZWJkcml2ZXIu
anMKQEAgLTAsMCArMSwyMyBAQAord2luZG93LnRpbWVvdXRfbXVsdGlwbGllciA9ICUodGltZW91
dF9tdWx0aXBsaWVyKWQ7CisKK3dpbmRvdy5tZXNzYWdlX3F1ZXVlID0gW107CisKK3dpbmRvdy5z
ZXRNZXNzYWdlTGlzdGVuZXIgPSBmdW5jdGlvbihmdW5jKSB7CisgIHdpbmRvdy5jdXJyZW50X2xp
c3RlbmVyID0gZnVuYzsKKyAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoCisgICAgIm1lc3NhZ2Ui
LAorICAgIGZ1bmMsCisgICAgZmFsc2UKKyAgKTsKK307CisKK3dpbmRvdy5zZXRNZXNzYWdlTGlz
dGVuZXIoZnVuY3Rpb24oZXZlbnQpIHsKKyAgd2luZG93Lm1lc3NhZ2VfcXVldWUucHVzaChldmVu
dCk7Cit9KTsKKword2luZG93LndpbiA9IHdpbmRvdy5vcGVuKCIlKGFic191cmwpcyIsICIlKHdp
bmRvd19pZClzIik7CisKK3dpbmRvdy50aW1lciA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Cisg
IHdpbmRvdy53aW4udGltZW91dCgpOworICB3aW5kb3cud2luLmNsb3NlKCk7Cit9LCAlKHRpbWVv
dXQpcyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Rlc3RoYXJuZXNzX3dl
YmRyaXZlcl9yZXN1bWUuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Rlc3RoYXJuZXNzX3dl
YmRyaXZlcl9yZXN1bWUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2EyZGY5OGVkNGU3M2JmNDYxOGIxNjlhYTI5
N2YwYzA3NWZmOGExOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMv
dGVzdGhhcm5lc3Nfd2ViZHJpdmVyX3Jlc3VtZS5qcwpAQCAtMCwwICsxLDQ2IEBACit2YXIgY2Fs
bGJhY2sgPSBhcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdOworCitmdW5jdGlvbiBwcm9j
ZXNzX2V2ZW50KGV2ZW50KSB7CisgIHZhciBkYXRhID0gZXZlbnQuZGF0YTsKKworICB2YXIgcGF5
bG9hZCA9IHVuZGVmaW5lZDsKKworICBzd2l0Y2goZGF0YS50eXBlKSB7CisgIGNhc2UgImNvbXBs
ZXRlIjoKKyAgICB2YXIgdGVzdHMgPSBldmVudC5kYXRhLnRlc3RzOworICAgIHZhciBzdGF0dXMg
PSBldmVudC5kYXRhLnN0YXR1czsKKworICAgIHZhciBzdWJ0ZXN0X3Jlc3VsdHMgPSB0ZXN0cy5t
YXAoZnVuY3Rpb24oeCkgeworICAgICAgcmV0dXJuIFt4Lm5hbWUsIHguc3RhdHVzLCB4Lm1lc3Nh
Z2UsIHguc3RhY2tdOworICAgIH0pOworICAgIHBheWxvYWQgPSBbc3RhdHVzLnN0YXR1cywKKyAg
ICAgICAgICAgICAgIHN0YXR1cy5tZXNzYWdlLAorICAgICAgICAgICAgICAgc3RhdHVzLnN0YWNr
LAorICAgICAgICAgICAgICAgc3VidGVzdF9yZXN1bHRzXTsKKyAgICBjbGVhclRpbWVvdXQod2lu
ZG93LnRpbWVyKTsKKyAgICBicmVhazsKKworICBjYXNlICJhY3Rpb24iOgorICAgIHdpbmRvdy5z
ZXRNZXNzYWdlTGlzdGVuZXIoZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgIHdpbmRvdy5tZXNzYWdl
X3F1ZXVlLnB1c2goZXZlbnQpOworICAgIH0pOworICAgIHBheWxvYWQgPSBkYXRhOworICAgIGJy
ZWFrOworICBkZWZhdWx0OgorICAgIHJldHVybjsKKyAgfQorCisgIGNhbGxiYWNrKFsiJSh1cmwp
cyIsIGRhdGEudHlwZSwgcGF5bG9hZF0pOworfQorCit3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5l
cigibWVzc2FnZSIsIHdpbmRvdy5jdXJyZW50X2xpc3RlbmVyKTsKK2lmICh3aW5kb3cubWVzc2Fn
ZV9xdWV1ZS5sZW5ndGgpIHsKKyAgdmFyIG5leHQgPSB3aW5kb3cubWVzc2FnZV9xdWV1ZS5zaGlm
dCgpOworICBwcm9jZXNzX2V2ZW50KG5leHQpOworfSBlbHNlIHsKKyAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoCisgICAgIm1lc3NhZ2UiLCBmdW5jdGlvbiBmKGV2ZW50KSB7CisgICAgICB3aW5k
b3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGYpOworICAgICAgcHJvY2Vzc19ldmVu
dChldmVudCk7CisgICAgfSwgZmFsc2UpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4
ZWN1dG9ycy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvdzNjLWltcG9y
dC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzU0ZjdhNTJlZDg2NTQ5ZTY3ZjQxMDlkZjgxZmQ3ODIwYzZjYmM3
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvdzNjLWltcG9ydC5s
b2cKQEAgLTAsMCArMSwzNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cworCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9u
ZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9fX2lu
aXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvYmFzZS5weQorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9l
eGVjdXRvcnMvZXhlY3V0b3JjaHJvbWUucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1
dG9yZWRnZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JpbnRlcm5ldGV4cGxv
cmVyLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcm1hcmlvbmV0dGUucHkKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yb3BlcmEucHkKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhl
Y3V0b3JzL2V4ZWN1dG9yc2VsZW5pdW0ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1
dG9yc2Vydm8ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vydm9kcml2ZXIu
cHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yd2Via2l0LnB5CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2V4ZWN1dG9ycy9wcm9jZXNzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9wcm90b2Nv
bC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcmVmdGVzdC13YWl0X21hcmlvbmV0dGUuanMK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3JlZnRlc3Qtd2FpdF93ZWJkcml2ZXIuanMKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZXhlY3V0b3JzL3JlZnRlc3QuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Rl
c3RoYXJuZXNzX21hcmlvbmV0dGUuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Rlc3RoYXJu
ZXNzX21hcmlvbmV0dGVfcmVzdW1lLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy90ZXN0aGFy
bmVzc19zZXJ2b2RyaXZlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvdGVzdGhhcm5lc3Nf
d2ViZHJpdmVyLmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy90ZXN0aGFybmVzc193ZWJkcml2
ZXJfcmVzdW1lLmpzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhwZWN0ZWQucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZXhwZWN0ZWQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjA2YWJiOTQ2YWYxNmY2OTBkNDM0NzE1
YzdiOTMzZjEyZDVhMzMzNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leHBlY3Rl
ZC5weQpAQCAtMCwwICsxLDE0IEBACitpbXBvcnQgb3MKKworCitkZWYgZXhwZWN0ZWRfcGF0aCht
ZXRhZGF0YV9wYXRoLCB0ZXN0X3BhdGgpOgorICAgICIiIlBhdGggdG8gdGhlIGV4cGVjdGF0aW9u
IGRhdGEgZmlsZSBmb3IgYSBnaXZlbiB0ZXN0IHBhdGguCisKKyAgICBUaGlzIGlzIGRlZmluZWQg
YXMgbWV0YWRhdGFfcGF0aCArIHJlbGF0aXZlX3Rlc3RfcGF0aCArIC5pbmkKKworICAgIDpwYXJh
bSBtZXRhZGF0YV9wYXRoOiBQYXRoIHRvIHRoZSByb290IG9mIHRoZSBtZXRhZGF0YSBkaXJlY3Rv
cnkKKyAgICA6cGFyYW0gdGVzdF9wYXRoOiBSZWxhdGl2ZSBwYXRoIHRvIHRoZSB0ZXN0IGZpbGUg
ZnJvbSB0aGUgdGVzdCByb290CisgICAgIiIiCisgICAgYXJncyA9IGxpc3QodGVzdF9wYXRoLnNw
bGl0KCIvIikpCisgICAgYXJnc1stMV0gKz0gIi5pbmkiCisgICAgcmV0dXJuIG9zLnBhdGguam9p
bihtZXRhZGF0YV9wYXRoLCAqYXJncykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb250LnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2ZvbnQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzlmY2E0MjhjZWI2OWY5MWQyYzEw
MWQyZjlkYzUyYzg1YjJiNGVmOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb250
LnB5CkBAIC0wLDAgKzEsMTEzIEBACitpbXBvcnQgY3R5cGVzCitpbXBvcnQgbG9nZ2luZworaW1w
b3J0IG9zCitpbXBvcnQgcGxhdGZvcm0KKworZnJvbSBzaHV0aWwgaW1wb3J0IGNvcHkyLCBybXRy
ZWUKK2Zyb20gc3VicHJvY2VzcyBpbXBvcnQgY2FsbAorCitIRVJFID0gb3MucGF0aC5zcGxpdChf
X2ZpbGVfXylbMF0KK1NZU1RFTSA9IHBsYXRmb3JtLnN5c3RlbSgpLmxvd2VyKCkKKworCitjbGFz
cyBGb250SW5zdGFsbGVyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZvbnRfZGly
PU5vbmUsICoqZm9udHMpOgorICAgICAgICBzZWxmLmZvbnRfZGlyID0gZm9udF9kaXIKKyAgICAg
ICAgc2VsZi5pbnN0YWxsZWRfZm9udHMgPSBGYWxzZQorICAgICAgICBzZWxmLmNyZWF0ZWRfZGly
ID0gRmFsc2UKKyAgICAgICAgc2VsZi5mb250cyA9IGZvbnRzCisKKyAgICBkZWYgX19jYWxsX18o
c2VsZiwgZW52X29wdGlvbnM9Tm9uZSwgZW52X2NvbmZpZz1Ob25lKToKKyAgICAgICAgcmV0dXJu
IHNlbGYKKworICAgIGRlZiBfX2VudGVyX18oc2VsZik6CisgICAgICAgIGZvciBfLCBmb250X3Bh
dGggaW4gc2VsZi5mb250cy5pdGVtcygpOgorICAgICAgICAgICAgZm9udF9uYW1lID0gZm9udF9w
YXRoLnNwbGl0KCcvJylbLTFdCisgICAgICAgICAgICBpbnN0YWxsID0gZ2V0YXR0cihzZWxmLCAn
aW5zdGFsbF8lc19mb250JyAlIFNZU1RFTSwgTm9uZSkKKyAgICAgICAgICAgIGlmIG5vdCBpbnN0
YWxsOgorICAgICAgICAgICAgICAgIGxvZ2dpbmcud2FybmluZygnRm9udCBpbnN0YWxsYXRpb24g
bm90IHN1cHBvcnRlZCBvbiAlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNZ
U1RFTSkKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIGlmIGluc3Rh
bGwoZm9udF9uYW1lLCBmb250X3BhdGgpOgorICAgICAgICAgICAgICAgIHNlbGYuaW5zdGFsbGVk
X2ZvbnRzID0gVHJ1ZQorICAgICAgICAgICAgICAgIGxvZ2dpbmcuaW5mbygnSW5zdGFsbGVkIGZv
bnQ6ICVzJywgZm9udF9uYW1lKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBs
b2dnaW5nLndhcm5pbmcoJ1VuYWJsZSB0byBpbnN0YWxsIGZvbnQ6ICVzJywgZm9udF9uYW1lKQor
CisgICAgZGVmIF9fZXhpdF9fKHNlbGYsIGV4Y190eXBlLCBleGNfdmFsLCBleGNfdGIpOgorICAg
ICAgICBpZiBub3Qgc2VsZi5pbnN0YWxsZWRfZm9udHM6CisgICAgICAgICAgICByZXR1cm4gRmFs
c2UKKworICAgICAgICBmb3IgXywgZm9udF9wYXRoIGluIHNlbGYuZm9udHMuaXRlbXMoKToKKyAg
ICAgICAgICAgIGZvbnRfbmFtZSA9IGZvbnRfcGF0aC5zcGxpdCgnLycpWy0xXQorICAgICAgICAg
ICAgcmVtb3ZlID0gZ2V0YXR0cihzZWxmLCAncmVtb3ZlXyVzX2ZvbnQnICUgU1lTVEVNLCBOb25l
KQorICAgICAgICAgICAgaWYgbm90IHJlbW92ZToKKyAgICAgICAgICAgICAgICBsb2dnaW5nLndh
cm5pbmcoJ0ZvbnQgcmVtb3ZhbCBub3Qgc3VwcG9ydGVkIG9uICVzJywgU1lTVEVNKQorICAgICAg
ICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgaWYgcmVtb3ZlKGZvbnRfbmFtZSwg
Zm9udF9wYXRoKToKKyAgICAgICAgICAgICAgICBsb2dnaW5nLmluZm8oJ1JlbW92ZWQgZm9udDog
JXMnLCBmb250X25hbWUpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGxvZ2dp
bmcud2FybmluZygnVW5hYmxlIHRvIHJlbW92ZSBmb250OiAlcycsIGZvbnRfbmFtZSkKKworICAg
IGRlZiBpbnN0YWxsX2xpbnV4X2ZvbnQoc2VsZiwgZm9udF9uYW1lLCBmb250X3BhdGgpOgorICAg
ICAgICBpZiBub3Qgc2VsZi5mb250X2RpcjoKKyAgICAgICAgICAgIHNlbGYuZm9udF9kaXIgPSBv
cy5wYXRoLmpvaW4ob3MucGF0aC5leHBhbmR1c2VyKCd+JyksICcuZm9udHMnKQorICAgICAgICBp
ZiBub3Qgb3MucGF0aC5leGlzdHMoc2VsZi5mb250X2Rpcik6CisgICAgICAgICAgICBvcy5tYWtl
ZGlycyhzZWxmLmZvbnRfZGlyKQorICAgICAgICAgICAgc2VsZi5jcmVhdGVkX2RpciA9IFRydWUK
KyAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKG9zLnBhdGguam9pbihzZWxmLmZvbnRfZGly
LCBmb250X25hbWUpKToKKyAgICAgICAgICAgIGNvcHkyKGZvbnRfcGF0aCwgc2VsZi5mb250X2Rp
cikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZmNfY2FjaGVfcmV0dXJuY29kZSA9IGNhbGwo
J2ZjLWNhY2hlJykKKyAgICAgICAgICAgIHJldHVybiBub3QgZmNfY2FjaGVfcmV0dXJuY29kZQor
ICAgICAgICBleGNlcHQgT1NFcnJvcjogICMgSWYgZm9udGNvbmZpZyBkb2Vzbid0IGV4aXN0LCBy
ZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIGxvZ2dpbmcuZXJyb3IoJ2ZvbnRjb25maWcgbm90IGF2
YWlsYWJsZSBvbiB0aGlzIExpbnV4IHN5c3RlbS4nKQorICAgICAgICAgICAgcmV0dXJuIEZhbHNl
CisKKyAgICBkZWYgaW5zdGFsbF9kYXJ3aW5fZm9udChzZWxmLCBmb250X25hbWUsIGZvbnRfcGF0
aCk6CisgICAgICAgIGlmIG5vdCBzZWxmLmZvbnRfZGlyOgorICAgICAgICAgICAgc2VsZi5mb250
X2RpciA9IG9zLnBhdGguam9pbihvcy5wYXRoLmV4cGFuZHVzZXIoJ34nKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0xpYnJhcnkvRm9udHMnKQorICAgICAgICBp
ZiBub3Qgb3MucGF0aC5leGlzdHMoc2VsZi5mb250X2Rpcik6CisgICAgICAgICAgICBvcy5tYWtl
ZGlycyhzZWxmLmZvbnRfZGlyKQorICAgICAgICAgICAgc2VsZi5jcmVhdGVkX2RpciA9IFRydWUK
KyAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKG9zLnBhdGguam9pbihzZWxmLmZvbnRfZGly
LCBmb250X25hbWUpKToKKyAgICAgICAgICAgIGNvcHkyKGZvbnRfcGF0aCwgc2VsZi5mb250X2Rp
cikKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiBpbnN0YWxsX3dpbmRvd3NfZm9udChz
ZWxmLCBfLCBmb250X3BhdGgpOgorICAgICAgICBod25kX2Jyb2FkY2FzdCA9IDB4RkZGRgorICAg
ICAgICB3bV9mb250Y2hhbmdlID0gMHgwMDFECisKKyAgICAgICAgZ2RpMzIgPSBjdHlwZXMuV2lu
RExMKCdnZGkzMicpCisgICAgICAgIGlmIGdkaTMyLkFkZEZvbnRSZXNvdXJjZVcoZm9udF9wYXRo
KToKKyAgICAgICAgICAgIHJldHVybiBib29sKGN0eXBlcy53aW5kbGwudXNlcjMyLlNlbmRNZXNz
YWdlVyhod25kX2Jyb2FkY2FzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB3bV9mb250Y2hhbmdlKSkKKworICAgIGRlZiByZW1vdmVf
bGludXhfZm9udChzZWxmLCBmb250X25hbWUsIF8pOgorICAgICAgICBpZiBzZWxmLmNyZWF0ZWRf
ZGlyOgorICAgICAgICAgICAgcm10cmVlKHNlbGYuZm9udF9kaXIpCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICBvcy5yZW1vdmUoJyVzLyVzJyAlIChzZWxmLmZvbnRfZGlyLCBmb250X25hbWUp
KQorICAgICAgICB0cnk6CisgICAgICAgICAgICBmY19jYWNoZV9yZXR1cm5jb2RlID0gY2FsbCgn
ZmMtY2FjaGUnKQorICAgICAgICAgICAgcmV0dXJuIG5vdCBmY19jYWNoZV9yZXR1cm5jb2RlCisg
ICAgICAgIGV4Y2VwdCBPU0Vycm9yOiAgIyBJZiBmb250Y29uZmlnIGRvZXNuJ3QgZXhpc3QsIHJl
dHVybiBGYWxzZQorICAgICAgICAgICAgbG9nZ2luZy5lcnJvcignZm9udGNvbmZpZyBub3QgYXZh
aWxhYmxlIG9uIHRoaXMgTGludXggc3lzdGVtLicpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UK
KworICAgIGRlZiByZW1vdmVfZGFyd2luX2ZvbnQoc2VsZiwgZm9udF9uYW1lLCBfKToKKyAgICAg
ICAgaWYgc2VsZi5jcmVhdGVkX2RpcjoKKyAgICAgICAgICAgIHJtdHJlZShzZWxmLmZvbnRfZGly
KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgb3MucmVtb3ZlKG9zLnBhdGguam9pbihzZWxm
LmZvbnRfZGlyLCBmb250X25hbWUpKQorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIHJl
bW92ZV93aW5kb3dzX2ZvbnQoc2VsZiwgXywgZm9udF9wYXRoKToKKyAgICAgICAgaHduZF9icm9h
ZGNhc3QgPSAweEZGRkYKKyAgICAgICAgd21fZm9udGNoYW5nZSA9IDB4MDAxRAorCisgICAgICAg
IGdkaTMyID0gY3R5cGVzLldpbkRMTCgnZ2RpMzInKQorICAgICAgICBpZiBnZGkzMi5SZW1vdmVG
b250UmVzb3VyY2VXKGZvbnRfcGF0aCk6CisgICAgICAgICAgICByZXR1cm4gYm9vbChjdHlwZXMu
d2luZGxsLnVzZXIzMi5TZW5kTWVzc2FnZVcoaHduZF9icm9hZGNhc3QsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd21fZm9udGNoYW5n
ZSkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9mb3JtYXR0ZXJzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlODg4Y2UyNjlkZDk4ZmFhNjE4ZGVkNTRiMDNh
OTJlMjhlMGVmMGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy5w
eQpAQCAtMCwwICsxLDU0IEBACitpbXBvcnQganNvbgorCitmcm9tIG1vemxvZy5zdHJ1Y3R1cmVk
LmZvcm1hdHRlcnMuYmFzZSBpbXBvcnQgQmFzZUZvcm1hdHRlcgorCisKK2NsYXNzIFdwdHJlcG9y
dEZvcm1hdHRlcihCYXNlRm9ybWF0dGVyKToKKyAgICAiIiJGb3JtYXR0ZXIgdGhhdCBwcm9kdWNl
cyByZXN1bHRzIGluIHRoZSBmb3JtYXQgdGhhdCB3cHJlcG9ydCBleHBlY3RzLiIiIgorCisgICAg
ZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLnJhd19yZXN1bHRzID0ge30KKworICAg
IGRlZiBzdWl0ZV9lbmQoc2VsZiwgZGF0YSk6CisgICAgICAgIHJlc3VsdHMgPSB7fQorICAgICAg
ICByZXN1bHRzWyJyZXN1bHRzIl0gPSBbXQorICAgICAgICBmb3IgdGVzdF9uYW1lIGluIHNlbGYu
cmF3X3Jlc3VsdHM6CisgICAgICAgICAgICByZXN1bHQgPSB7InRlc3QiOiB0ZXN0X25hbWV9Cisg
ICAgICAgICAgICByZXN1bHQudXBkYXRlKHNlbGYucmF3X3Jlc3VsdHNbdGVzdF9uYW1lXSkKKyAg
ICAgICAgICAgIHJlc3VsdHNbInJlc3VsdHMiXS5hcHBlbmQocmVzdWx0KQorICAgICAgICByZXR1
cm4ganNvbi5kdW1wcyhyZXN1bHRzKQorCisgICAgZGVmIGZpbmRfb3JfY3JlYXRlX3Rlc3Qoc2Vs
ZiwgZGF0YSk6CisgICAgICAgIHRlc3RfbmFtZSA9IGRhdGFbInRlc3QiXQorICAgICAgICBpZiB0
ZXN0X25hbWUgbm90IGluIHNlbGYucmF3X3Jlc3VsdHM6CisgICAgICAgICAgICBzZWxmLnJhd19y
ZXN1bHRzW3Rlc3RfbmFtZV0gPSB7CisgICAgICAgICAgICAgICAgInN1YnRlc3RzIjogW10sCisg
ICAgICAgICAgICAgICAgInN0YXR1cyI6ICIiLAorICAgICAgICAgICAgICAgICJtZXNzYWdlIjog
Tm9uZQorICAgICAgICAgICAgfQorICAgICAgICByZXR1cm4gc2VsZi5yYXdfcmVzdWx0c1t0ZXN0
X25hbWVdCisKKyAgICBkZWYgY3JlYXRlX3N1YnRlc3Qoc2VsZiwgZGF0YSk6CisgICAgICAgIHRl
c3QgPSBzZWxmLmZpbmRfb3JfY3JlYXRlX3Rlc3QoZGF0YSkKKyAgICAgICAgc3VidGVzdF9uYW1l
ID0gZGF0YVsic3VidGVzdCJdCisKKyAgICAgICAgc3VidGVzdCA9IHsKKyAgICAgICAgICAgICJu
YW1lIjogc3VidGVzdF9uYW1lLAorICAgICAgICAgICAgInN0YXR1cyI6ICIiLAorICAgICAgICAg
ICAgIm1lc3NhZ2UiOiBOb25lCisgICAgICAgIH0KKyAgICAgICAgdGVzdFsic3VidGVzdHMiXS5h
cHBlbmQoc3VidGVzdCkKKworICAgICAgICByZXR1cm4gc3VidGVzdAorCisgICAgZGVmIHRlc3Rf
c3RhdHVzKHNlbGYsIGRhdGEpOgorICAgICAgICBzdWJ0ZXN0ID0gc2VsZi5jcmVhdGVfc3VidGVz
dChkYXRhKQorICAgICAgICBzdWJ0ZXN0WyJzdGF0dXMiXSA9IGRhdGFbInN0YXR1cyJdCisgICAg
ICAgIGlmICJtZXNzYWdlIiBpbiBkYXRhOgorICAgICAgICAgICAgc3VidGVzdFsibWVzc2FnZSJd
ID0gZGF0YVsibWVzc2FnZSJdCisKKyAgICBkZWYgdGVzdF9lbmQoc2VsZiwgZGF0YSk6CisgICAg
ICAgIHRlc3QgPSBzZWxmLmZpbmRfb3JfY3JlYXRlX3Rlc3QoZGF0YSkKKyAgICAgICAgdGVzdFsi
c3RhdHVzIl0gPSBkYXRhWyJzdGF0dXMiXQorICAgICAgICBpZiAibWVzc2FnZSIgaW4gZGF0YToK
KyAgICAgICAgICAgIHRlc3RbIm1lc3NhZ2UiXSA9IGRhdGFbIm1lc3NhZ2UiXQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL21hbmlmZXN0ZXhwZWN0ZWQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZl
c3RleHBlY3RlZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZDU3YjcwZTUxN2MwODY0OGY2MmNmNGEwYzYxZDdk
N2Y3NGY5NDliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0ZXhwZWN0
ZWQucHkKQEAgLTAsMCArMSwyNjIgQEAKK2ltcG9ydCBvcworaW1wb3J0IHVybHBhcnNlCisKK2Zy
b20gd3B0bWFuaWZlc3QuYmFja2VuZHMgaW1wb3J0IHN0YXRpYworZnJvbSB3cHRtYW5pZmVzdC5i
YWNrZW5kcy5zdGF0aWMgaW1wb3J0IE1hbmlmZXN0SXRlbQorCitpbXBvcnQgZXhwZWN0ZWQKKwor
IiIiTWFuaWZlc3Qgc3RydWN0dXJlIHVzZWQgdG8gc3RvcmUgZXhwZWN0ZWQgcmVzdWx0cyBvZiBh
IHRlc3QuCisKK0VhY2ggbWFuaWZlc3QgZmlsZSBpcyByZXByZXNlbnRlZCBieSBhbiBFeHBlY3Rl
ZE1hbmlmZXN0IHRoYXQKK2hhcyBvbmUgb3IgbW9yZSBUZXN0Tm9kZSBjaGlsZHJlbiwgb25lIHBl
ciB0ZXN0IGluIHRoZSBtYW5pZmVzdC4KK0VhY2ggVGVzdE5vZGUgaGFzIHplcm8gb3IgbW9yZSBT
dWJ0ZXN0Tm9kZSBjaGlsZHJlbiwgb25lIGZvciBlYWNoCitrbm93biBzdWJ0ZXN0IG9mIHRoZSB0
ZXN0LgorIiIiCisKK2RlZiBkYXRhX2Nsc19nZXR0ZXIob3V0cHV0X25vZGUsIHZpc2l0ZWRfbm9k
ZSk6CisgICAgIyB2aXNpdGVkX25vZGUgaXMgaW50ZW50aW9uYWxseSB1bnVzZWQKKyAgICBpZiBv
dXRwdXRfbm9kZSBpcyBOb25lOgorICAgICAgICByZXR1cm4gRXhwZWN0ZWRNYW5pZmVzdAorICAg
IGlmIGlzaW5zdGFuY2Uob3V0cHV0X25vZGUsIEV4cGVjdGVkTWFuaWZlc3QpOgorICAgICAgICBy
ZXR1cm4gVGVzdE5vZGUKKyAgICBpZiBpc2luc3RhbmNlKG91dHB1dF9ub2RlLCBUZXN0Tm9kZSk6
CisgICAgICAgIHJldHVybiBTdWJ0ZXN0Tm9kZQorICAgIHJhaXNlIFZhbHVlRXJyb3IKKworCitk
ZWYgYm9vbF9wcm9wKG5hbWUsIG5vZGUpOgorICAgICIiIkJvb2xlYW4gcHJvcGVydHkiIiIKKyAg
ICB0cnk6CisgICAgICAgIHJldHVybiBub2RlLmdldChuYW1lKQorICAgIGV4Y2VwdCBLZXlFcnJv
cjoKKyAgICAgICAgcmV0dXJuIE5vbmUKKworCitkZWYgdGFncyhub2RlKToKKyAgICAiIiJTZXQg
b2YgdGFncyB0aGF0IGhhdmUgYmVlbiBhcHBsaWVkIHRvIHRoZSB0ZXN0IiIiCisgICAgdHJ5Ogor
ICAgICAgICB2YWx1ZSA9IG5vZGUuZ2V0KCJ0YWdzIikKKyAgICAgICAgaWYgaXNpbnN0YW5jZSh2
YWx1ZSwgKHN0ciwgdW5pY29kZSkpOgorICAgICAgICAgICAgcmV0dXJuIHt2YWx1ZX0KKyAgICAg
ICAgcmV0dXJuIHNldCh2YWx1ZSkKKyAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgIHJldHVy
biBzZXQoKQorCisKK2RlZiBwcmVmcyhub2RlKToKKyAgICBkZWYgdmFsdWUoaW5pX3ZhbHVlKToK
KyAgICAgICAgaWYgaXNpbnN0YW5jZShpbmlfdmFsdWUsIChzdHIsIHVuaWNvZGUpKToKKyAgICAg
ICAgICAgIHJldHVybiB0dXBsZShpbmlfdmFsdWUuc3BsaXQoIjoiLCAxKSkKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHJldHVybiAoaW5pX3ZhbHVlLCBOb25lKQorCisgICAgdHJ5OgorICAg
ICAgICBub2RlX3ByZWZzID0gbm9kZS5nZXQoInByZWZzIikKKyAgICAgICAgaWYgdHlwZShub2Rl
X3ByZWZzKSBpbiAoc3RyLCB1bmljb2RlKToKKyAgICAgICAgICAgIHByZWZzID0ge3ZhbHVlKG5v
ZGVfcHJlZnMpfQorICAgICAgICBydiA9IGRpY3QodmFsdWUoaXRlbSkgZm9yIGl0ZW0gaW4gbm9k
ZV9wcmVmcykKKyAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgIHJ2ID0ge30KKyAgICByZXR1
cm4gcnYKKworCitjbGFzcyBFeHBlY3RlZE1hbmlmZXN0KE1hbmlmZXN0SXRlbSk6CisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIG5hbWUsIHRlc3RfcGF0aCwgdXJsX2Jhc2UpOgorICAgICAgICAiIiJP
YmplY3QgcmVwcmVzZW50aW5nIGFsbCB0aGUgdGVzdHMgaW4gYSBwYXJ0aWN1bGFyIG1hbmlmZXN0
CisKKyAgICAgICAgOnBhcmFtIG5hbWU6IE5hbWUgb2YgdGhlIEFTVCBOb2RlIGFzc29jaWF0ZWQg
d2l0aCB0aGlzIG9iamVjdC4KKyAgICAgICAgICAgICAgICAgICAgIFNob3VsZCBhbHdheXMgYmUg
Tm9uZSBzaW5jZSB0aGlzIHNob3VsZCBhbHdheXMgYmUgYXNzb2NpYXRlZCB3aXRoCisgICAgICAg
ICAgICAgICAgICAgICB0aGUgcm9vdCBub2RlIG9mIHRoZSBBU1QuCisgICAgICAgIDpwYXJhbSB0
ZXN0X3BhdGg6IFBhdGggb2YgdGhlIHRlc3QgZmlsZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBtYW5p
ZmVzdC4KKyAgICAgICAgOnBhcmFtIHVybF9iYXNlOiBCYXNlIHVybCBmb3Igc2VydmluZyB0aGUg
dGVzdHMgaW4gdGhpcyBtYW5pZmVzdAorICAgICAgICAiIiIKKyAgICAgICAgaWYgbmFtZSBpcyBu
b3QgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkV4cGVjdGVkTWFuaWZlc3Qg
c2hvdWxkIHJlcHJlc2VudCB0aGUgcm9vdCBub2RlIikKKyAgICAgICAgaWYgdGVzdF9wYXRoIGlz
IE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJFeHBlY3RlZE1hbmlmZXN0IHJl
cXVpcmVzIGEgdGVzdCBwYXRoIikKKyAgICAgICAgaWYgdXJsX2Jhc2UgaXMgTm9uZToKKyAgICAg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkV4cGVjdGVkTWFuaWZlc3QgcmVxdWlyZXMgYSBiYXNl
IHVybCIpCisgICAgICAgIE1hbmlmZXN0SXRlbS5fX2luaXRfXyhzZWxmLCBuYW1lKQorICAgICAg
ICBzZWxmLmNoaWxkX21hcCA9IHt9CisgICAgICAgIHNlbGYudGVzdF9wYXRoID0gdGVzdF9wYXRo
CisgICAgICAgIHNlbGYudXJsX2Jhc2UgPSB1cmxfYmFzZQorCisgICAgZGVmIGFwcGVuZChzZWxm
LCBjaGlsZCk6CisgICAgICAgICIiIkFkZCBhIHRlc3QgdG8gdGhlIG1hbmlmZXN0IiIiCisgICAg
ICAgIE1hbmlmZXN0SXRlbS5hcHBlbmQoc2VsZiwgY2hpbGQpCisgICAgICAgIHNlbGYuY2hpbGRf
bWFwW2NoaWxkLmlkXSA9IGNoaWxkCisKKyAgICBkZWYgX3JlbW92ZV9jaGlsZChzZWxmLCBjaGls
ZCk6CisgICAgICAgIGRlbCBzZWxmLmNoaWxkX21hcFtjaGlsZC5pZF0KKyAgICAgICAgTWFuaWZl
c3RJdGVtLnJlbW92ZV9jaGlsZChzZWxmLCBjaGlsZCkKKyAgICAgICAgYXNzZXJ0IGxlbihzZWxm
LmNoaWxkX21hcCkgPT0gbGVuKHNlbGYuY2hpbGRyZW4pCisKKyAgICBkZWYgZ2V0X3Rlc3Qoc2Vs
ZiwgdGVzdF9pZCk6CisgICAgICAgICIiIkdldCBhIHRlc3QgZnJvbSB0aGUgbWFuaWZlc3QgYnkg
SUQKKworICAgICAgICA6cGFyYW0gdGVzdF9pZDogSUQgb2YgdGhlIHRlc3QgdG8gcmV0dXJuLiIi
IgorICAgICAgICByZXR1cm4gc2VsZi5jaGlsZF9tYXAuZ2V0KHRlc3RfaWQpCisKKyAgICBAcHJv
cGVydHkKKyAgICBkZWYgdXJsKHNlbGYpOgorICAgICAgICByZXR1cm4gdXJscGFyc2UudXJsam9p
bihzZWxmLnVybF9iYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLyIuam9p
bihzZWxmLnRlc3RfcGF0aC5zcGxpdChvcy5wYXRoLnNlcCkpKQorCisgICAgQHByb3BlcnR5Cisg
ICAgZGVmIGRpc2FibGVkKHNlbGYpOgorICAgICAgICByZXR1cm4gYm9vbF9wcm9wKCJkaXNhYmxl
ZCIsIHNlbGYpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcmVzdGFydF9hZnRlcihzZWxmKToK
KyAgICAgICAgcmV0dXJuIGJvb2xfcHJvcCgicmVzdGFydC1hZnRlciIsIHNlbGYpCisKKyAgICBA
cHJvcGVydHkKKyAgICBkZWYgbGVha3Moc2VsZik6CisgICAgICAgIHJldHVybiBib29sX3Byb3Ao
ImxlYWtzIiwgc2VsZikKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiB0YWdzKHNlbGYpOgorICAg
ICAgICByZXR1cm4gdGFncyhzZWxmKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHByZWZzKHNl
bGYpOgorICAgICAgICByZXR1cm4gcHJlZnMoc2VsZikKKworCitjbGFzcyBEaXJlY3RvcnlNYW5p
ZmVzdChNYW5pZmVzdEl0ZW0pOgorICAgIEBwcm9wZXJ0eQorICAgIGRlZiBkaXNhYmxlZChzZWxm
KToKKyAgICAgICAgcmV0dXJuIGJvb2xfcHJvcCgiZGlzYWJsZWQiLCBzZWxmKQorCisgICAgQHBy
b3BlcnR5CisgICAgZGVmIHJlc3RhcnRfYWZ0ZXIoc2VsZik6CisgICAgICAgIHJldHVybiBib29s
X3Byb3AoInJlc3RhcnQtYWZ0ZXIiLCBzZWxmKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGxl
YWtzKHNlbGYpOgorICAgICAgICByZXR1cm4gYm9vbF9wcm9wKCJsZWFrcyIsIHNlbGYpCisKKyAg
ICBAcHJvcGVydHkKKyAgICBkZWYgdGFncyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHRhZ3Moc2Vs
ZikKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBwcmVmcyhzZWxmKToKKyAgICAgICAgcmV0dXJu
IHByZWZzKHNlbGYpCisKKworY2xhc3MgVGVzdE5vZGUoTWFuaWZlc3RJdGVtKToKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgbmFtZSk6CisgICAgICAgICIiIlRyZWUgbm9kZSBhc3NvY2lhdGVkIHdp
dGggYSBwYXJ0aWN1bGFyIHRlc3QgaW4gYSBtYW5pZmVzdAorCisgICAgICAgIDpwYXJhbSBuYW1l
OiBuYW1lIG9mIHRoZSB0ZXN0IiIiCisgICAgICAgIGFzc2VydCBuYW1lIGlzIG5vdCBOb25lCisg
ICAgICAgIE1hbmlmZXN0SXRlbS5fX2luaXRfXyhzZWxmLCBuYW1lKQorICAgICAgICBzZWxmLnVw
ZGF0ZWRfZXhwZWN0ZWQgPSBbXQorICAgICAgICBzZWxmLm5ld19leHBlY3RlZCA9IFtdCisgICAg
ICAgIHNlbGYuc3VidGVzdHMgPSB7fQorICAgICAgICBzZWxmLmRlZmF1bHRfc3RhdHVzID0gTm9u
ZQorICAgICAgICBzZWxmLl9mcm9tX2ZpbGUgPSBUcnVlCisKKyAgICBAcHJvcGVydHkKKyAgICBk
ZWYgaXNfZW1wdHkoc2VsZik6CisgICAgICAgIHJlcXVpcmVkX2tleXMgPSBzZXQoWyJ0eXBlIl0p
CisgICAgICAgIGlmIHNldChzZWxmLl9kYXRhLmtleXMoKSkgIT0gcmVxdWlyZWRfa2V5czoKKyAg
ICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICByZXR1cm4gYWxsKGNoaWxkLmlzX2VtcHR5
IGZvciBjaGlsZCBpbiBzZWxmLmNoaWxkcmVuKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHRl
c3RfdHlwZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZ2V0KCJ0eXBlIikKKworICAgIEBw
cm9wZXJ0eQorICAgIGRlZiBpZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHVybHBhcnNlLnVybGpv
aW4oc2VsZi5wYXJlbnQudXJsLCBzZWxmLm5hbWUpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYg
ZGlzYWJsZWQoc2VsZik6CisgICAgICAgIHJldHVybiBib29sX3Byb3AoImRpc2FibGVkIiwgc2Vs
ZikKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiByZXN0YXJ0X2FmdGVyKHNlbGYpOgorICAgICAg
ICByZXR1cm4gYm9vbF9wcm9wKCJyZXN0YXJ0LWFmdGVyIiwgc2VsZikKKworICAgIEBwcm9wZXJ0
eQorICAgIGRlZiBsZWFrcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGJvb2xfcHJvcCgibGVha3Mi
LCBzZWxmKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHRhZ3Moc2VsZik6CisgICAgICAgIHJl
dHVybiB0YWdzKHNlbGYpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcHJlZnMoc2VsZik6Cisg
ICAgICAgIHJldHVybiBwcmVmcyhzZWxmKQorCisgICAgZGVmIGFwcGVuZChzZWxmLCBub2RlKToK
KyAgICAgICAgIiIiQWRkIGEgc3VidGVzdCB0byB0aGUgY3VycmVudCB0ZXN0CisKKyAgICAgICAg
OnBhcmFtIG5vZGU6IEFTVCBOb2RlIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3VidGVzdCIiIgorICAg
ICAgICBjaGlsZCA9IE1hbmlmZXN0SXRlbS5hcHBlbmQoc2VsZiwgbm9kZSkKKyAgICAgICAgc2Vs
Zi5zdWJ0ZXN0c1tjaGlsZC5uYW1lXSA9IGNoaWxkCisKKyAgICBkZWYgZ2V0X3N1YnRlc3Qoc2Vs
ZiwgbmFtZSk6CisgICAgICAgICIiIkdldCB0aGUgU3VidGVzdE5vZGUgY29ycmVzcG9uZGluZyB0
byBhIHBhcnRpY3VsYXIgc3VidGVzdCwgYnkgbmFtZQorCisgICAgICAgIDpwYXJhbSBuYW1lOiBO
YW1lIG9mIHRoZSBub2RlIHRvIHJldHVybiIiIgorICAgICAgICBpZiBuYW1lIGluIHNlbGYuc3Vi
dGVzdHM6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5zdWJ0ZXN0c1tuYW1lXQorICAgICAgICBy
ZXR1cm4gTm9uZQorCisKK2NsYXNzIFN1YnRlc3ROb2RlKFRlc3ROb2RlKToKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgbmFtZSk6CisgICAgICAgICIiIlRyZWUgbm9kZSBhc3NvY2lhdGVkIHdpdGgg
YSBwYXJ0aWN1bGFyIHN1YnRlc3QgaW4gYSBtYW5pZmVzdAorCisgICAgICAgIDpwYXJhbSBuYW1l
OiBuYW1lIG9mIHRoZSBzdWJ0ZXN0IiIiCisgICAgICAgIFRlc3ROb2RlLl9faW5pdF9fKHNlbGYs
IG5hbWUpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaXNfZW1wdHkoc2VsZik6CisgICAgICAg
IGlmIHNlbGYuX2RhdGE6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJu
IFRydWUKKworCitkZWYgZ2V0X21hbmlmZXN0KG1ldGFkYXRhX3Jvb3QsIHRlc3RfcGF0aCwgdXJs
X2Jhc2UsIHJ1bl9pbmZvKToKKyAgICAiIiJHZXQgdGhlIEV4cGVjdGVkTWFuaWZlc3QgZm9yIGEg
cGFydGljdWxhciB0ZXN0IHBhdGgsIG9yIE5vbmUgaWYgdGhlcmUgaXMgbm8KKyAgICBtZXRhZGF0
YSBzdG9yZWQgZm9yIHRoYXQgdGVzdCBwYXRoLgorCisgICAgOnBhcmFtIG1ldGFkYXRhX3Jvb3Q6
IEFic29sdXRlIHBhdGggdG8gdGhlIHJvb3Qgb2YgdGhlIG1ldGFkYXRhIGRpcmVjdG9yeQorICAg
IDpwYXJhbSB0ZXN0X3BhdGg6IFBhdGggdG8gdGhlIHRlc3QocykgcmVsYXRpdmUgdG8gdGhlIHRl
c3Qgcm9vdAorICAgIDpwYXJhbSB1cmxfYmFzZTogQmFzZSB1cmwgZm9yIHNlcnZpbmcgdGhlIHRl
c3RzIGluIHRoaXMgbWFuaWZlc3QKKyAgICA6cGFyYW0gcnVuX2luZm86IERpY3Rpb25hcnkgb2Yg
cHJvcGVydGllcyBvZiB0aGUgdGVzdCBydW4gZm9yIHdoaWNoIHRoZSBleHBlY3RhdGlvbgorICAg
ICAgICAgICAgICAgICAgICAgdmFsdWVzIHNob3VsZCBiZSBjb21wdXRlZC4KKyAgICAiIiIKKyAg
ICBtYW5pZmVzdF9wYXRoID0gZXhwZWN0ZWQuZXhwZWN0ZWRfcGF0aChtZXRhZGF0YV9yb290LCB0
ZXN0X3BhdGgpCisgICAgdHJ5OgorICAgICAgICB3aXRoIG9wZW4obWFuaWZlc3RfcGF0aCkgYXMg
ZjoKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWMuY29tcGlsZShmLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRhdGFfY2xzX2dldHRlcj1kYXRhX2Nsc19nZXR0ZXIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGVzdF9wYXRoPXRlc3RfcGF0aCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1cmxfYmFzZT11cmxfYmFzZSkKKyAgICBleGNlcHQgSU9FcnJvcjoK
KyAgICAgICAgcmV0dXJuIE5vbmUKKworZGVmIGdldF9kaXJfbWFuaWZlc3QocGF0aCwgcnVuX2lu
Zm8pOgorICAgICIiIkdldCB0aGUgRXhwZWN0ZWRNYW5pZmVzdCBmb3IgYSBwYXJ0aWN1bGFyIHRl
c3QgcGF0aCwgb3IgTm9uZSBpZiB0aGVyZSBpcyBubworICAgIG1ldGFkYXRhIHN0b3JlZCBmb3Ig
dGhhdCB0ZXN0IHBhdGguCisKKyAgICA6cGFyYW0gcGF0aDogRnVsbCBwYXRoIHRvIHRoZSBpbmkg
ZmlsZQorICAgIDpwYXJhbSBydW5faW5mbzogRGljdGlvbmFyeSBvZiBwcm9wZXJ0aWVzIG9mIHRo
ZSB0ZXN0IHJ1biBmb3Igd2hpY2ggdGhlIGV4cGVjdGF0aW9uCisgICAgICAgICAgICAgICAgICAg
ICB2YWx1ZXMgc2hvdWxkIGJlIGNvbXB1dGVkLgorICAgICIiIgorICAgIHRyeToKKyAgICAgICAg
d2l0aCBvcGVuKHBhdGgpIGFzIGY6CisgICAgICAgICAgICByZXR1cm4gc3RhdGljLmNvbXBpbGUo
ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhX2Nsc19nZXR0ZXI9bGFtYmRhIHgseTogRGly
ZWN0b3J5TWFuaWZlc3QpCisgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgIHJldHVybiBOb25l
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3RpbmNsdWRlLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL21hbmlmZXN0aW5jbHVkZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjhmZGViMzliYzZmNjNkMzg3NTQ0
OTUyYTFlZTI4ZWE2YTJmMThkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlm
ZXN0aW5jbHVkZS5weQpAQCAtMCwwICsxLDE1NCBAQAorIiIiTWFuaWZlc3Qgc3RydWN0dXJlIHVz
ZWQgdG8gc3RvcmUgcGF0aHMgdGhhdCBzaG91bGQgYmUgaW5jbHVkZWQgaW4gYSB0ZXN0IHJ1bi4K
KworVGhlIG1hbmlmZXN0IGlzIHJlcHJlc2VudGVkIGJ5IGEgdHJlZSBvZiBJbmNsdWRlTWFuaWZl
c3Qgb2JqZWN0cywgdGhlIHJvb3QKK3JlcHJlc2VudGluZyB0aGUgZmlsZSBhbmQgZWFjaCBzdWJu
b2RlIHJlcHJlc2VudGluZyBhIHN1YmRpcmVjdG9yeSB0aGF0IHNob3VsZAorYmUgaW5jbHVkZWQg
b3IgZXhjbHVkZWQuCisiIiIKK2ltcG9ydCBnbG9iCitpbXBvcnQgb3MKK2ltcG9ydCB1cmxwYXJz
ZQorCitmcm9tIHdwdG1hbmlmZXN0Lm5vZGUgaW1wb3J0IERhdGFOb2RlCitmcm9tIHdwdG1hbmlm
ZXN0LmJhY2tlbmRzIGltcG9ydCBjb25kaXRpb25hbAorZnJvbSB3cHRtYW5pZmVzdC5iYWNrZW5k
cy5jb25kaXRpb25hbCBpbXBvcnQgTWFuaWZlc3RJdGVtCisKKworY2xhc3MgSW5jbHVkZU1hbmlm
ZXN0KE1hbmlmZXN0SXRlbSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5vZGUpOgorICAgICAg
ICAiIiJOb2RlIGluIGEgdHJlZSBzdHJ1Y3R1cmUgcmVwcmVzZW50aW5nIHRoZSBwYXRocworICAg
ICAgICB0aGF0IHNob3VsZCBiZSBpbmNsdWRlZCBvciBleGNsdWRlZCBmcm9tIHRoZSB0ZXN0IHJ1
bi4KKworICAgICAgICA6cGFyYW0gbm9kZTogQVNUIE5vZGUgY29ycmVzcG9uZGluZyB0byB0aGlz
IE5vZGUuCisgICAgICAgICIiIgorICAgICAgICBNYW5pZmVzdEl0ZW0uX19pbml0X18oc2VsZiwg
bm9kZSkKKyAgICAgICAgc2VsZi5jaGlsZF9tYXAgPSB7fQorCisgICAgQGNsYXNzbWV0aG9kCisg
ICAgZGVmIGNyZWF0ZShjbHMpOgorICAgICAgICAiIiJDcmVhdGUgYW4gZW1wdHkgSW5jbHVkZU1h
bmlmZXN0IHRyZWUiIiIKKyAgICAgICAgbm9kZSA9IERhdGFOb2RlKE5vbmUpCisgICAgICAgIHJl
dHVybiBjbHMobm9kZSkKKworICAgIGRlZiBzZXRfZGVmYXVsdHMoc2VsZik6CisgICAgICAgIGlm
IG5vdCBzZWxmLmhhc19rZXkoInNraXAiKToKKyAgICAgICAgICAgIHNlbGYuc2V0KCJza2lwIiwg
IkZhbHNlIikKKworICAgIGRlZiBhcHBlbmQoc2VsZiwgY2hpbGQpOgorICAgICAgICBNYW5pZmVz
dEl0ZW0uYXBwZW5kKHNlbGYsIGNoaWxkKQorICAgICAgICBzZWxmLmNoaWxkX21hcFtjaGlsZC5u
YW1lXSA9IGNoaWxkCisgICAgICAgIGFzc2VydCBsZW4oc2VsZi5jaGlsZF9tYXApID09IGxlbihz
ZWxmLmNoaWxkcmVuKQorCisgICAgZGVmIGluY2x1ZGUoc2VsZiwgdGVzdCk6CisgICAgICAgICIi
IlJldHVybiBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIGEgcGFydGljdWxhciB0ZXN0IHNo
b3VsZCBiZQorICAgICAgICBpbmNsdWRlZCBpbiBhIHRlc3QgcnVuLCBiYXNlZCBvbiB0aGUgSW5j
bHVkZU1hbmlmZXN0IHRyZWUgcm9vdGVkIG9uCisgICAgICAgIHRoaXMgb2JqZWN0LgorCisgICAg
ICAgIDpwYXJhbSB0ZXN0OiBUaGUgdGVzdCBvYmplY3QiIiIKKyAgICAgICAgcGF0aF9jb21wb25l
bnRzID0gc2VsZi5fZ2V0X2NvbXBvbmVudHModGVzdC51cmwpCisgICAgICAgIHJldHVybiBzZWxm
Ll9pbmNsdWRlKHRlc3QsIHBhdGhfY29tcG9uZW50cykKKworICAgIGRlZiBfaW5jbHVkZShzZWxm
LCB0ZXN0LCBwYXRoX2NvbXBvbmVudHMpOgorICAgICAgICBpZiBwYXRoX2NvbXBvbmVudHM6Cisg
ICAgICAgICAgICBuZXh0X3BhdGhfcGFydCA9IHBhdGhfY29tcG9uZW50cy5wb3AoKQorICAgICAg
ICAgICAgaWYgbmV4dF9wYXRoX3BhcnQgaW4gc2VsZi5jaGlsZF9tYXA6CisgICAgICAgICAgICAg
ICAgcmV0dXJuIHNlbGYuY2hpbGRfbWFwW25leHRfcGF0aF9wYXJ0XS5faW5jbHVkZSh0ZXN0LCBw
YXRoX2NvbXBvbmVudHMpCisKKyAgICAgICAgbm9kZSA9IHNlbGYKKyAgICAgICAgd2hpbGUgbm9k
ZToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBza2lwX3ZhbHVlID0gc2VsZi5n
ZXQoInNraXAiLCB7InRlc3RfdHlwZSI6IHRlc3QuaXRlbV90eXBlfSkubG93ZXIoKQorICAgICAg
ICAgICAgICAgIGFzc2VydCBza2lwX3ZhbHVlIGluICgidHJ1ZSIsICJmYWxzZSIpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHNraXBfdmFsdWUgIT0gInRydWUiCisgICAgICAgICAgICBleGNlcHQg
S2V5RXJyb3I6CisgICAgICAgICAgICAgICAgaWYgbm9kZS5wYXJlbnQgaXMgbm90IE5vbmU6Cisg
ICAgICAgICAgICAgICAgICAgIG5vZGUgPSBub2RlLnBhcmVudAorICAgICAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgICAgICMgSW5jbHVkZSBieSBkZWZhdWx0CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgX2dldF9jb21wb25lbnRzKHNlbGYsIHVy
bCk6CisgICAgICAgIHJ2ID0gW10KKyAgICAgICAgdXJsX3BhcnRzID0gdXJscGFyc2UudXJsc3Bs
aXQodXJsKQorICAgICAgICB2YXJpYW50ID0gIiIKKyAgICAgICAgaWYgdXJsX3BhcnRzLnF1ZXJ5
OgorICAgICAgICAgICAgdmFyaWFudCArPSAiPyIgKyB1cmxfcGFydHMucXVlcnkKKyAgICAgICAg
aWYgdXJsX3BhcnRzLmZyYWdtZW50OgorICAgICAgICAgICAgdmFyaWFudCArPSAiIyIgKyB1cmxf
cGFydHMuZnJhZ21lbnQKKyAgICAgICAgaWYgdmFyaWFudDoKKyAgICAgICAgICAgIHJ2LmFwcGVu
ZCh2YXJpYW50KQorICAgICAgICBydi5leHRlbmQoW2l0ZW0gZm9yIGl0ZW0gaW4gcmV2ZXJzZWQo
dXJsX3BhcnRzLnBhdGguc3BsaXQoIi8iKSkgaWYgaXRlbV0pCisgICAgICAgIHJldHVybiBydgor
CisgICAgZGVmIF9hZGRfcnVsZShzZWxmLCB0ZXN0X21hbmlmZXN0cywgdXJsLCBkaXJlY3Rpb24p
OgorICAgICAgICBtYXliZV9wYXRoID0gb3MucGF0aC5qb2luKG9zLnBhdGguYWJzcGF0aChvcy5j
dXJkaXIpLCB1cmwpCisgICAgICAgIHJlc3QsIGxhc3QgPSBvcy5wYXRoLnNwbGl0KG1heWJlX3Bh
dGgpCisgICAgICAgIGZyYWdtZW50ID0gcXVlcnkgPSBOb25lCisgICAgICAgIGlmICIjIiBpbiBs
YXN0OgorICAgICAgICAgICAgbGFzdCwgZnJhZ21lbnQgPSBsYXN0LnJzcGxpdCgiIyIsIDEpCisg
ICAgICAgIGlmICI/IiBpbiBsYXN0OgorICAgICAgICAgICAgbGFzdCwgcXVlcnkgPSBsYXN0LnJz
cGxpdCgiPyIsIDEpCisKKyAgICAgICAgbWF5YmVfcGF0aCA9IG9zLnBhdGguam9pbihyZXN0LCBs
YXN0KQorICAgICAgICBwYXRocyA9IGdsb2IuZ2xvYihtYXliZV9wYXRoKQorCisgICAgICAgIGlm
IHBhdGhzOgorICAgICAgICAgICAgdXJscyA9IFtdCisgICAgICAgICAgICBmb3IgcGF0aCBpbiBw
YXRoczoKKyAgICAgICAgICAgICAgICBmb3IgbWFuaWZlc3QsIGRhdGEgaW4gdGVzdF9tYW5pZmVz
dHMuaXRlcml0ZW1zKCk6CisgICAgICAgICAgICAgICAgICAgIGZvdW5kID0gRmFsc2UKKyAgICAg
ICAgICAgICAgICAgICAgcmVsX3BhdGggPSBvcy5wYXRoLnJlbHBhdGgocGF0aCwgZGF0YVsidGVz
dHNfcGF0aCJdKQorICAgICAgICAgICAgICAgICAgICBpdGVyYXRvciA9IG1hbmlmZXN0Lml0ZXJw
YXRoIGlmIG9zLnBhdGguaXNmaWxlKHBhdGgpIGVsc2UgbWFuaWZlc3QuaXRlcmRpcgorICAgICAg
ICAgICAgICAgICAgICBmb3IgdGVzdCBpbiBpdGVyYXRvcihyZWxfcGF0aCk6CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiBub3QgaGFzYXR0cih0ZXN0LCAidXJsIik6CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9IHRl
c3QudXJsCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBxdWVyeSBvciBmcmFnbWVudDoKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZWQgPSB1cmxwYXJzZS51cmxwYXJzZSh1cmwp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChxdWVyeSBhbmQgcXVlcnkgIT0gcGFy
c2VkLnF1ZXJ5KSBvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZnJhZ21lbnQg
YW5kIGZyYWdtZW50ICE9IHBhcnNlZC5mcmFnbWVudCkpOgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgICAgICAgICAgdXJscy5hcHBlbmQo
dXJsKQorICAgICAgICAgICAgICAgICAgICAgICAgZm91bmQgPSBUcnVlCisgICAgICAgICAgICAg
ICAgICAgIGlmIGZvdW5kOgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIHVybHMgPSBbdXJsXQorCisgICAgICAgIGFzc2VydCBkaXJlY3Rp
b24gaW4gKCJpbmNsdWRlIiwgImV4Y2x1ZGUiKQorCisgICAgICAgIGZvciB1cmwgaW4gdXJsczoK
KyAgICAgICAgICAgIGNvbXBvbmVudHMgPSBzZWxmLl9nZXRfY29tcG9uZW50cyh1cmwpCisKKyAg
ICAgICAgICAgIG5vZGUgPSBzZWxmCisgICAgICAgICAgICB3aGlsZSBjb21wb25lbnRzOgorICAg
ICAgICAgICAgICAgIGNvbXBvbmVudCA9IGNvbXBvbmVudHMucG9wKCkKKyAgICAgICAgICAgICAg
ICBpZiBjb21wb25lbnQgbm90IGluIG5vZGUuY2hpbGRfbWFwOgorICAgICAgICAgICAgICAgICAg
ICBuZXdfbm9kZSA9IEluY2x1ZGVNYW5pZmVzdChEYXRhTm9kZShjb21wb25lbnQpKQorICAgICAg
ICAgICAgICAgICAgICBub2RlLmFwcGVuZChuZXdfbm9kZSkKKyAgICAgICAgICAgICAgICAgICAg
bmV3X25vZGUuc2V0KCJza2lwIiwgbm9kZS5nZXQoInNraXAiLCB7fSkpCisKKyAgICAgICAgICAg
ICAgICBub2RlID0gbm9kZS5jaGlsZF9tYXBbY29tcG9uZW50XQorCisgICAgICAgICAgICBza2lw
ID0gRmFsc2UgaWYgZGlyZWN0aW9uID09ICJpbmNsdWRlIiBlbHNlIFRydWUKKyAgICAgICAgICAg
IG5vZGUuc2V0KCJza2lwIiwgc3RyKHNraXApKQorCisgICAgZGVmIGFkZF9pbmNsdWRlKHNlbGYs
IHRlc3RfbWFuaWZlc3RzLCB1cmxfcHJlZml4KToKKyAgICAgICAgIiIiQWRkIGEgcnVsZSBpbmRp
Y2F0aW5nIHRoYXQgdGVzdHMgdW5kZXIgYSB1cmwgcGF0aAorICAgICAgICBzaG91bGQgYmUgaW5j
bHVkZWQgaW4gdGVzdCBydW5zCisKKyAgICAgICAgOnBhcmFtIHVybF9wcmVmaXg6IFRoZSB1cmwg
cHJlZml4IHRvIGluY2x1ZGUKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9hZGRf
cnVsZSh0ZXN0X21hbmlmZXN0cywgdXJsX3ByZWZpeCwgImluY2x1ZGUiKQorCisgICAgZGVmIGFk
ZF9leGNsdWRlKHNlbGYsIHRlc3RfbWFuaWZlc3RzLCB1cmxfcHJlZml4KToKKyAgICAgICAgIiIi
QWRkIGEgcnVsZSBpbmRpY2F0aW5nIHRoYXQgdGVzdHMgdW5kZXIgYSB1cmwgcGF0aAorICAgICAg
ICBzaG91bGQgYmUgZXhjbHVkZWQgZnJvbSB0ZXN0IHJ1bnMKKworICAgICAgICA6cGFyYW0gdXJs
X3ByZWZpeDogVGhlIHVybCBwcmVmaXggdG8gZXhjbHVkZQorICAgICAgICAiIiIKKyAgICAgICAg
cmV0dXJuIHNlbGYuX2FkZF9ydWxlKHRlc3RfbWFuaWZlc3RzLCB1cmxfcHJlZml4LCAiZXhjbHVk
ZSIpCisKKworZGVmIGdldF9tYW5pZmVzdChtYW5pZmVzdF9wYXRoKToKKyAgICB3aXRoIG9wZW4o
bWFuaWZlc3RfcGF0aCkgYXMgZjoKKyAgICAgICAgcmV0dXJuIGNvbmRpdGlvbmFsLmNvbXBpbGUo
ZiwgZGF0YV9jbHNfZ2V0dGVyPWxhbWJkYSB4LCB5OiBJbmNsdWRlTWFuaWZlc3QpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3R1cGRhdGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZl
c3R1cGRhdGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWQzYzE3MzkyOGYwM2Y3OTcwY2VhMmNlMTI4Y2MwNjk2
NWQxNWFlYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdHVwZGF0ZS5w
eQpAQCAtMCwwICsxLDQ3MCBAQAoraW1wb3J0IG9zCitpbXBvcnQgdXJscGFyc2UKK2Zyb20gY29s
bGVjdGlvbnMgaW1wb3J0IG5hbWVkdHVwbGUsIGRlZmF1bHRkaWN0CisKK2Zyb20gd3B0bWFuaWZl
c3Qubm9kZSBpbXBvcnQgKERhdGFOb2RlLCBDb25kaXRpb25hbE5vZGUsIEJpbmFyeUV4cHJlc3Np
b25Ob2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmluYXJ5T3BlcmF0b3JOb2Rl
LCBWYXJpYWJsZU5vZGUsIFN0cmluZ05vZGUsIE51bWJlck5vZGUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBVbmFyeUV4cHJlc3Npb25Ob2RlLCBVbmFyeU9wZXJhdG9yTm9kZSwgS2V5
VmFsdWVOb2RlKQorZnJvbSB3cHRtYW5pZmVzdC5iYWNrZW5kcyBpbXBvcnQgY29uZGl0aW9uYWwK
K2Zyb20gd3B0bWFuaWZlc3QuYmFja2VuZHMuY29uZGl0aW9uYWwgaW1wb3J0IE1hbmlmZXN0SXRl
bQorCitpbXBvcnQgZXhwZWN0ZWQKKworIiIiTWFuaWZlc3Qgc3RydWN0dXJlIHVzZWQgdG8gdXBk
YXRlIHRoZSBleHBlY3RlZCByZXN1bHRzIG9mIGEgdGVzdAorCitFYWNoIG1hbmlmZXN0IGZpbGUg
aXMgcmVwcmVzZW50ZWQgYnkgYW4gRXhwZWN0ZWRNYW5pZmVzdCB0aGF0IGhhcyBvbmUKK29yIG1v
cmUgVGVzdE5vZGUgY2hpbGRyZW4sIG9uZSBwZXIgdGVzdCBpbiB0aGUgbWFuaWZlc3QuICBFYWNo
CitUZXN0Tm9kZSBoYXMgemVybyBvciBtb3JlIFN1YnRlc3ROb2RlIGNoaWxkcmVuLCBvbmUgZm9y
IGVhY2gga25vd24KK3N1YnRlc3Qgb2YgdGhlIHRlc3QuCisKK0luIHRoZXNlIHJlcHJlc2VudGF0
aW9ucywgY29uZGl0aW9uYWxzIGV4cHJlc3Npb25zIGluIHRoZSBtYW5pZmVzdCBhcmUKK25vdCBl
dmFsdWF0ZWQgdXBmcm9udCBidXQgc3RvcmVkIGFzIHB5dGhvbiBmdW5jdGlvbnMgdG8gYmUgZXZh
bHVhdGVkCithdCBydW50aW1lLgorCitXaGVuIGEgcmVzdWx0IGZvciBhIHRlc3QgaXMgdG8gYmUg
dXBkYXRlZCBzZXRfcmVzdWx0IG9uIHRoZQorW1N1Yl1UZXN0Tm9kZSBpcyBjYWxsZWQgdG8gc3Rv
cmUgdGhlIG5ldyByZXN1bHQsIGFsb25nc2lkZSB0aGUKK2V4aXN0aW5nIGNvbmRpdGlvbmFsIHRo
YXQgcmVzdWx0J3MgcnVuIGluZm8gbWF0Y2hlZCwgaWYgYW55LiBPbmNlIGFsbAorbmV3IHJlc3Vs
dHMgYXJlIGtub3duLCBjb2FsZXNjZV9leHBlY3RlZCBpcyBjYWxsZWQgdG8gY29tcHV0ZSB0aGUg
bmV3CitzZXQgb2YgcmVzdWx0cyBhbmQgY29uZGl0aW9uYWxzLiBUaGUgQVNUIG9mIHRoZSB1bmRl
cmx5aW5nIHBhcnNlZCBtYW5pZmVzdAoraXMgdXBkYXRlZCB3aXRoIHRoZSBjaGFuZ2VzLCBhbmQg
dGhlIHJlc3VsdCBpcyBzZXJpYWxpc2VkIHRvIGEgZmlsZS4KKyIiIgorCisKK2NsYXNzIENvbmRp
dGlvbkVycm9yKEV4Y2VwdGlvbik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbmQ9Tm9uZSk6
CisgICAgICAgIHNlbGYuY29uZCA9IGNvbmQKKworCitSZXN1bHQgPSBuYW1lZHR1cGxlKCJSZXN1
bHQiLCBbInJ1bl9pbmZvIiwgInN0YXR1cyJdKQorCisKK2RlZiBkYXRhX2Nsc19nZXR0ZXIob3V0
cHV0X25vZGUsIHZpc2l0ZWRfbm9kZSk6CisgICAgIyB2aXNpdGVkX25vZGUgaXMgaW50ZW50aW9u
YWxseSB1bnVzZWQKKyAgICBpZiBvdXRwdXRfbm9kZSBpcyBOb25lOgorICAgICAgICByZXR1cm4g
RXhwZWN0ZWRNYW5pZmVzdAorICAgIGVsaWYgaXNpbnN0YW5jZShvdXRwdXRfbm9kZSwgRXhwZWN0
ZWRNYW5pZmVzdCk6CisgICAgICAgIHJldHVybiBUZXN0Tm9kZQorICAgIGVsaWYgaXNpbnN0YW5j
ZShvdXRwdXRfbm9kZSwgVGVzdE5vZGUpOgorICAgICAgICByZXR1cm4gU3VidGVzdE5vZGUKKyAg
ICBlbHNlOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yCisKKworY2xhc3MgRXhwZWN0ZWRNYW5p
ZmVzdChNYW5pZmVzdEl0ZW0pOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBub2RlLCB0ZXN0X3Bh
dGg9Tm9uZSwgdXJsX2Jhc2U9Tm9uZSwgcHJvcGVydHlfb3JkZXI9Tm9uZSwKKyAgICAgICAgICAg
ICAgICAgYm9vbGVhbl9wcm9wZXJ0aWVzPU5vbmUpOgorICAgICAgICAiIiJPYmplY3QgcmVwcmVz
ZW50aW5nIGFsbCB0aGUgdGVzdHMgaW4gYSBwYXJ0aWN1bGFyIG1hbmlmZXN0CisKKyAgICAgICAg
OnBhcmFtIG5vZGU6IEFTVCBOb2RlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG9iamVjdC4gSWYgdGhp
cyBpcyBOb25lLAorICAgICAgICAgICAgICAgICAgICAgYSBuZXcgQVNUIGlzIGNyZWF0ZWQgdG8g
YXNzb2NpYXRlIHdpdGggdGhpcyBtYW5pZmVzdC4KKyAgICAgICAgOnBhcmFtIHRlc3RfcGF0aDog
UGF0aCBvZiB0aGUgdGVzdCBmaWxlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG1hbmlmZXN0LgorICAg
ICAgICA6cGFyYW0gdXJsX2Jhc2U6IEJhc2UgdXJsIGZvciBzZXJ2aW5nIHRoZSB0ZXN0cyBpbiB0
aGlzIG1hbmlmZXN0LgorICAgICAgICA6cGFyYW0gcHJvcGVydHlfb3JkZXI6IExpc3Qgb2YgcHJv
cGVydGllcyB0byB1c2UgaW4gZXhwZWN0YXRpb24gbWV0YWRhdGEKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmcm9tIG1vc3QgdG8gbGVhc3Qgc2lnbmlmaWNhbnQuCisgICAgICAgIDpw
YXJhbSBib29sZWFuX3Byb3BlcnRpZXM6IFNldCBvZiBwcm9wZXJ0aWVzIGluIHByb3BlcnR5X29y
ZGVyIHRoYXQgc2hvdWxkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlIHRy
ZWF0ZWQgYXMgYm9vbGVhbi4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vZGUgaXMgTm9uZToK
KyAgICAgICAgICAgIG5vZGUgPSBEYXRhTm9kZShOb25lKQorICAgICAgICBNYW5pZmVzdEl0ZW0u
X19pbml0X18oc2VsZiwgbm9kZSkKKyAgICAgICAgc2VsZi5jaGlsZF9tYXAgPSB7fQorICAgICAg
ICBzZWxmLnRlc3RfcGF0aCA9IHRlc3RfcGF0aAorICAgICAgICBzZWxmLnVybF9iYXNlID0gdXJs
X2Jhc2UKKyAgICAgICAgYXNzZXJ0IHNlbGYudXJsX2Jhc2UgaXMgbm90IE5vbmUKKyAgICAgICAg
c2VsZi5tb2RpZmllZCA9IEZhbHNlCisgICAgICAgIHNlbGYuYm9vbGVhbl9wcm9wZXJ0aWVzID0g
Ym9vbGVhbl9wcm9wZXJ0aWVzCisgICAgICAgIHNlbGYucHJvcGVydHlfb3JkZXIgPSBwcm9wZXJ0
eV9vcmRlcgorCisgICAgZGVmIGFwcGVuZChzZWxmLCBjaGlsZCk6CisgICAgICAgIE1hbmlmZXN0
SXRlbS5hcHBlbmQoc2VsZiwgY2hpbGQpCisgICAgICAgIGlmIGNoaWxkLmlkIGluIHNlbGYuY2hp
bGRfbWFwOgorICAgICAgICAgICAgcHJpbnQgIldhcm5pbmc6IER1cGxpY2F0ZSBoZWFkaW5nICVz
IiAlIGNoaWxkLmlkCisgICAgICAgIHNlbGYuY2hpbGRfbWFwW2NoaWxkLmlkXSA9IGNoaWxkCisK
KyAgICBkZWYgX3JlbW92ZV9jaGlsZChzZWxmLCBjaGlsZCk6CisgICAgICAgIGRlbCBzZWxmLmNo
aWxkX21hcFtjaGlsZC5pZF0KKyAgICAgICAgTWFuaWZlc3RJdGVtLl9yZW1vdmVfY2hpbGQoc2Vs
ZiwgY2hpbGQpCisKKyAgICBkZWYgZ2V0X3Rlc3Qoc2VsZiwgdGVzdF9pZCk6CisgICAgICAgICIi
IlJldHVybiBhIFRlc3ROb2RlIGJ5IHRlc3QgaWQsIG9yIE5vbmUgaWYgbm8gdGVzdCBtYXRjaGVz
CisKKyAgICAgICAgOnBhcmFtIHRlc3RfaWQ6IFRoZSBpZCBvZiB0aGUgdGVzdCB0byBsb29rIHVw
IiIiCisKKyAgICAgICAgcmV0dXJuIHNlbGYuY2hpbGRfbWFwW3Rlc3RfaWRdCisKKyAgICBkZWYg
aGFzX3Rlc3Qoc2VsZiwgdGVzdF9pZCk6CisgICAgICAgICIiIkJvb2xlYW4gaW5kaWNhdGluZyB3
aGV0aGVyIHRoZSBjdXJyZW50IHRlc3QgaGFzIGEga25vd24gY2hpbGQgdGVzdAorICAgICAgICB3
aXRoIGlkIHRlc3QgaWQKKworICAgICAgICA6cGFyYW0gdGVzdF9pZDogVGhlIGlkIG9mIHRoZSB0
ZXN0IHRvIGxvb2sgdXAiIiIKKworICAgICAgICByZXR1cm4gdGVzdF9pZCBpbiBzZWxmLmNoaWxk
X21hcAorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHVybChzZWxmKToKKyAgICAgICAgcmV0dXJu
IHVybHBhcnNlLnVybGpvaW4oc2VsZi51cmxfYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIi8iLmpvaW4oc2VsZi50ZXN0X3BhdGguc3BsaXQob3MucGF0aC5zZXApKSkKKwor
CitjbGFzcyBUZXN0Tm9kZShNYW5pZmVzdEl0ZW0pOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBu
b2RlKToKKyAgICAgICAgIiIiVHJlZSBub2RlIGFzc29jaWF0ZWQgd2l0aCBhIHBhcnRpY3VsYXIg
dGVzdCBpbiBhIG1hbmlmZXN0CisKKyAgICAgICAgOnBhcmFtIG5vZGU6IEFTVCBub2RlIGFzc29j
aWF0ZWQgd2l0aCB0aGUgdGVzdCIiIgorCisgICAgICAgIE1hbmlmZXN0SXRlbS5fX2luaXRfXyhz
ZWxmLCBub2RlKQorICAgICAgICBzZWxmLnVwZGF0ZWRfZXhwZWN0ZWQgPSBbXQorICAgICAgICBz
ZWxmLm5ld19leHBlY3RlZCA9IFtdCisgICAgICAgIHNlbGYubmV3X2Rpc2FibGVkID0gRmFsc2UK
KyAgICAgICAgc2VsZi5zdWJ0ZXN0cyA9IHt9CisgICAgICAgIHNlbGYuZGVmYXVsdF9zdGF0dXMg
PSBOb25lCisgICAgICAgIHNlbGYuX2Zyb21fZmlsZSA9IFRydWUKKworICAgIEBjbGFzc21ldGhv
ZAorICAgIGRlZiBjcmVhdGUoY2xzLCB0ZXN0X2lkKToKKyAgICAgICAgIiIiQ3JlYXRlIGEgVGVz
dE5vZGUgY29ycmVzcG9uZGluZyB0byBhIGdpdmVuIHRlc3QKKworICAgICAgICA6cGFyYW0gdGVz
dF90eXBlOiBUaGUgdHlwZSBvZiB0aGUgdGVzdAorICAgICAgICA6cGFyYW0gdGVzdF9pZDogVGhl
IGlkIG9mIHRoZSB0ZXN0IiIiCisKKyAgICAgICAgdXJsID0gdGVzdF9pZAorICAgICAgICBuYW1l
ID0gdXJsLnNwbGl0KCIvIilbLTFdCisgICAgICAgIG5vZGUgPSBEYXRhTm9kZShuYW1lKQorICAg
ICAgICBzZWxmID0gY2xzKG5vZGUpCisKKyAgICAgICAgc2VsZi5fZnJvbV9maWxlID0gRmFsc2UK
KyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBpc19lbXB0eShz
ZWxmKToKKyAgICAgICAgaWdub3JlX2tleXMgPSBzZXQoWyJ0eXBlIl0pCisgICAgICAgIGlmIHNl
dChzZWxmLl9kYXRhLmtleXMoKSkgLSBpZ25vcmVfa2V5czoKKyAgICAgICAgICAgIHJldHVybiBG
YWxzZQorICAgICAgICByZXR1cm4gYWxsKGNoaWxkLmlzX2VtcHR5IGZvciBjaGlsZCBpbiBzZWxm
LmNoaWxkcmVuKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHRlc3RfdHlwZShzZWxmKToKKyAg
ICAgICAgIiIiVGhlIHR5cGUgb2YgdGhlIHRlc3QgcmVwcmVzZW50ZWQgYnkgdGhpcyBUZXN0Tm9k
ZSIiIgorCisgICAgICAgIHJldHVybiBzZWxmLmdldCgidHlwZSIsIE5vbmUpCisKKyAgICBAcHJv
cGVydHkKKyAgICBkZWYgaWQoc2VsZik6CisgICAgICAgICIiIlRoZSBpZCBvZiB0aGUgdGVzdCBy
ZXByZXNlbnRlZCBieSB0aGlzIFRlc3ROb2RlIiIiCisgICAgICAgIHJldHVybiB1cmxwYXJzZS51
cmxqb2luKHNlbGYucGFyZW50LnVybCwgc2VsZi5uYW1lKQorCisgICAgZGVmIGRpc2FibGVkKHNl
bGYsIHJ1bl9pbmZvKToKKyAgICAgICAgIiIiQm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhp
cyB0ZXN0IGlzIGRpc2FibGVkIHdoZW4gcnVuIGluIGFuCisgICAgICAgIGVudmlyb25tZW50IHdp
dGggdGhlIGdpdmVuIHJ1bl9pbmZvCisKKyAgICAgICAgOnBhcmFtIHJ1bl9pbmZvOiBEaWN0aW9u
YXJ5IG9mIHJ1bl9pbmZvIHBhcmFtZXRlcnMiIiIKKworICAgICAgICByZXR1cm4gc2VsZi5nZXQo
ImRpc2FibGVkIiwgcnVuX2luZm8pIGlzIG5vdCBOb25lCisKKyAgICBkZWYgc2V0X3Jlc3VsdChz
ZWxmLCBydW5faW5mbywgcmVzdWx0KToKKyAgICAgICAgIiIiU2V0IHRoZSByZXN1bHQgb2YgdGhl
IHRlc3QgaW4gYSBwYXJ0aWN1bGFyIHJ1bgorCisgICAgICAgIDpwYXJhbSBydW5faW5mbzogRGlj
dGlvbmFyeSBvZiBydW5faW5mbyBwYXJhbWV0ZXJzIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgICAg
ICAgICAgICAgICAgICB0byB0aGlzIHJ1bgorICAgICAgICA6cGFyYW0gcmVzdWx0OiBTdGF0dXMg
b2YgdGhlIHRlc3QgaW4gdGhpcyBydW4iIiIKKworICAgICAgICBpZiBzZWxmLmRlZmF1bHRfc3Rh
dHVzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgYXNzZXJ0IHNlbGYuZGVmYXVsdF9zdGF0dXMg
PT0gcmVzdWx0LmRlZmF1bHRfZXhwZWN0ZWQKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNl
bGYuZGVmYXVsdF9zdGF0dXMgPSByZXN1bHQuZGVmYXVsdF9leHBlY3RlZAorCisgICAgICAgICMg
QWRkIHRoaXMgcmVzdWx0IHRvIHRoZSBsaXN0IG9mIHJlc3VsdHMgc2F0aXNmeWluZworICAgICAg
ICAjIGFueSBjb25kaXRpb24gaW4gdGhlIGxpc3Qgb2YgdXBkYXRlZCByZXN1bHRzIGl0IG1hdGNo
ZXMKKyAgICAgICAgZm9yIChjb25kLCB2YWx1ZXMpIGluIHNlbGYudXBkYXRlZF9leHBlY3RlZDoK
KyAgICAgICAgICAgIGlmIGNvbmQocnVuX2luZm8pOgorICAgICAgICAgICAgICAgIHZhbHVlcy5h
cHBlbmQoUmVzdWx0KHJ1bl9pbmZvLCByZXN1bHQuc3RhdHVzKSkKKyAgICAgICAgICAgICAgICBp
ZiByZXN1bHQuc3RhdHVzICE9IGNvbmQudmFsdWU6CisgICAgICAgICAgICAgICAgICAgIHNlbGYu
cm9vdC5tb2RpZmllZCA9IFRydWUKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICBlbHNl
OgorICAgICAgICAgICAgIyBXZSBkaWRuJ3QgZmluZCBhIHByZXZpb3VzIHZhbHVlIGZvciB0aGlz
CisgICAgICAgICAgICBzZWxmLm5ld19leHBlY3RlZC5hcHBlbmQoUmVzdWx0KHJ1bl9pbmZvLCBy
ZXN1bHQuc3RhdHVzKSkKKyAgICAgICAgICAgIHNlbGYucm9vdC5tb2RpZmllZCA9IFRydWUKKwor
ICAgIGRlZiBjb2FsZXNjZV9leHBlY3RlZChzZWxmLCBzdGFiaWxpdHk9Tm9uZSk6CisgICAgICAg
ICIiIlVwZGF0ZSB0aGUgdW5kZXJseWluZyBtYW5pZmVzdCBBU1QgZm9yIHRoaXMgdGVzdCBiYXNl
ZCBvbiBhbGwgdGhlCisgICAgICAgIGFkZGVkIHJlc3VsdHMuCisKKyAgICAgICAgVGhpcyB3aWxs
IHVwZGF0ZSBleGlzdGluZyBjb25kaXRpb25hbHMgaWYgdGhleSBnb3QgdGhlIHNhbWUgcmVzdWx0
IGluCisgICAgICAgIGFsbCBtYXRjaGluZyBydW5zIGluIHRoZSB1cGRhdGVkIHJlc3VsdHMsIHdp
bGwgZGVsZXRlIGV4aXN0aW5nIGNvbmRpdGlvbmFscworICAgICAgICB0aGF0IGdldCBtb3JlIHRo
YW4gb25lIGRpZmZlcmVudCByZXN1bHQgaW4gdGhlIHVwZGF0ZWQgcnVuLCBhbmQgYWRkIG5ldwor
ICAgICAgICBjb25kaXRpb25hbHMgZm9yIGFueXRoaW5nIHRoYXQgZG9lc24ndCBtYXRjaCBhbiBl
eGlzdGluZyBjb25kaXRpb25hbC4KKworICAgICAgICBDb25kaXRpb25hbHMgbm90IG1hdGNoZWQg
YnkgYW55IGFkZGVkIHJlc3VsdCBhcmUgbm90IGNoYW5nZWQuCisKKyAgICAgICAgV2hlbiBgc3Rh
YmlsaXR5YCBpcyBub3QgTm9uZSwgZGlzYWJsZSBhbnkgdGVzdCB0aGF0IHNob3dzIG11bHRpcGxl
CisgICAgICAgIHVuZXhwZWN0ZWQgcmVzdWx0cyBmb3IgdGhlIHNhbWUgc2V0IG9mIHBhcmFtZXRl
cnMuCisgICAgICAgICIiIgorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHVuY29uZGl0aW9u
YWxfc3RhdHVzID0gc2VsZi5nZXQoImV4cGVjdGVkIikKKyAgICAgICAgZXhjZXB0IEtleUVycm9y
OgorICAgICAgICAgICAgdW5jb25kaXRpb25hbF9zdGF0dXMgPSBzZWxmLmRlZmF1bHRfc3RhdHVz
CisKKyAgICAgICAgZm9yIGNvbmRpdGlvbmFsX3ZhbHVlLCByZXN1bHRzIGluIHNlbGYudXBkYXRl
ZF9leHBlY3RlZDoKKyAgICAgICAgICAgIGlmIG5vdCByZXN1bHRzOgorICAgICAgICAgICAgICAg
ICMgVGhlIGNvbmRpdGlvbmFsIGRpZG4ndCBtYXRjaCBhbnl0aGluZyBpbiB0aGVzZSBydW5zIHNv
IGxlYXZlIGl0IGFsb25lCisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxpZiBh
bGwocmVzdWx0c1swXS5zdGF0dXMgPT0gcmVzdWx0LnN0YXR1cyBmb3IgcmVzdWx0IGluIHJlc3Vs
dHMpOgorICAgICAgICAgICAgICAgICMgQWxsIHRoZSBuZXcgdmFsdWVzIGZvciB0aGlzIGNvbmRp
dGlvbmFsIG1hdGNoZWQsIHNvIHVwZGF0ZSB0aGUgbm9kZQorICAgICAgICAgICAgICAgIHJlc3Vs
dCA9IHJlc3VsdHNbMF0KKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0LnN0YXR1cyA9PSB1bmNv
bmRpdGlvbmFsX3N0YXR1cyBhbmQKKyAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uYWxfdmFs
dWUuY29uZGl0aW9uX25vZGUgaXMgbm90IE5vbmUpOgorICAgICAgICAgICAgICAgICAgICBpZiAi
ZXhwZWN0ZWQiIGluIHNlbGY6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJlbW92ZV92
YWx1ZSgiZXhwZWN0ZWQiLCBjb25kaXRpb25hbF92YWx1ZSkKKyAgICAgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25hbF92YWx1ZS52YWx1ZSA9IHJlc3VsdC5z
dGF0dXMKKyAgICAgICAgICAgIGVsaWYgY29uZGl0aW9uYWxfdmFsdWUuY29uZGl0aW9uX25vZGUg
aXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgIyBCbG93IGF3YXkgdGhlIGV4aXN0aW5nIGNv
bmRpdGlvbiBhbmQgcmVidWlsZCBmcm9tIHNjcmF0Y2gKKyAgICAgICAgICAgICAgICAjIFRoaXMg
aXNuJ3Qgc3VyZSB0byB3b3JrIGlmIHdlIGhhdmUgYSBjb25kaXRpb25hbCBsYXRlciB0aGF0IG1h
dGNoZXMKKyAgICAgICAgICAgICAgICAjIHRoZXNlIHZhbHVlcyB0b28sIGJ1dCB3ZSBjYW4gaG9w
ZSwgdmVyaWZ5IHRoYXQgd2UgZ2V0IHRoZSByZXN1bHRzCisgICAgICAgICAgICAgICAgIyB3ZSBl
eHBlY3QsIGFuZCBpZiBub3QgbGV0IGEgaHVtYW4gc29ydCBpdCBvdXQKKyAgICAgICAgICAgICAg
ICBzZWxmLnJlbW92ZV92YWx1ZSgiZXhwZWN0ZWQiLCBjb25kaXRpb25hbF92YWx1ZSkKKyAgICAg
ICAgICAgICAgICBzZWxmLm5ld19leHBlY3RlZC5leHRlbmQocmVzdWx0cykKKyAgICAgICAgICAg
IGVsaWYgY29uZGl0aW9uYWxfdmFsdWUuY29uZGl0aW9uX25vZGUgaXMgTm9uZToKKyAgICAgICAg
ICAgICAgICBzZWxmLm5ld19leHBlY3RlZC5leHRlbmQocmVzdWx0IGZvciByZXN1bHQgaW4gcmVz
dWx0cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiByZXN1bHQu
c3RhdHVzICE9IHVuY29uZGl0aW9uYWxfc3RhdHVzKQorCisgICAgICAgICMgSXQgaXMgYW4gaW52
YXJpYW50IHRoYXQgbm90aGluZyBpbiBuZXdfZXhwZWN0ZWQgbWF0Y2hlcyBhbiBleGlzdGluZwor
ICAgICAgICAjIGNvbmRpdGlvbiBleGNlcHQgZm9yIHRoZSBkZWZhdWx0IGNvbmRpdGlvbgorCisg
ICAgICAgIGlmIHNlbGYubmV3X2V4cGVjdGVkOgorICAgICAgICAgICAgaWYgYWxsKHNlbGYubmV3
X2V4cGVjdGVkWzBdLnN0YXR1cyA9PSByZXN1bHQuc3RhdHVzCisgICAgICAgICAgICAgICAgICAg
Zm9yIHJlc3VsdCBpbiBzZWxmLm5ld19leHBlY3RlZCkgYW5kIG5vdCBzZWxmLnVwZGF0ZWRfZXhw
ZWN0ZWQ6CisgICAgICAgICAgICAgICAgc3RhdHVzID0gc2VsZi5uZXdfZXhwZWN0ZWRbMF0uc3Rh
dHVzCisgICAgICAgICAgICAgICAgaWYgc3RhdHVzICE9IHNlbGYuZGVmYXVsdF9zdGF0dXM6Cisg
ICAgICAgICAgICAgICAgICAgIHNlbGYuc2V0KCJleHBlY3RlZCIsIHN0YXR1cywgY29uZGl0aW9u
PU5vbmUpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAg
ICAgICAgICAgICAgY29uZGl0aW9uYWxzID0gZ3JvdXBfY29uZGl0aW9uYWxzKAorICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5uZXdfZXhwZWN0ZWQsCisgICAgICAgICAgICAgICAgICAgICAg
ICBwcm9wZXJ0eV9vcmRlcj1zZWxmLnJvb3QucHJvcGVydHlfb3JkZXIsCisgICAgICAgICAgICAg
ICAgICAgICAgICBib29sZWFuX3Byb3BlcnRpZXM9c2VsZi5yb290LmJvb2xlYW5fcHJvcGVydGll
cykKKyAgICAgICAgICAgICAgICBleGNlcHQgQ29uZGl0aW9uRXJyb3IgYXMgZToKKyAgICAgICAg
ICAgICAgICAgICAgaWYgc3RhYmlsaXR5IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5zZXQoImRpc2FibGVkIiwgc3RhYmlsaXR5IG9yICJ1bnN0YWJsZSIsIGUuY29u
ZC5jaGlsZHJlblswXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubmV3X2Rpc2FibGVk
ID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAg
ICAgcHJpbnQgIkNvbmZsaWN0aW5nIHRlc3QgcmVzdWx0cyBmb3IgJXMsIGNhbm5vdCB1cGRhdGUi
ICUgc2VsZi5yb290LnRlc3RfcGF0aAorICAgICAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAg
ICAgICAgICAgICBmb3IgY29uZGl0aW9uYWxfbm9kZSwgc3RhdHVzIGluIGNvbmRpdGlvbmFsczoK
KyAgICAgICAgICAgICAgICAgICAgaWYgc3RhdHVzICE9IHVuY29uZGl0aW9uYWxfc3RhdHVzOgor
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXQoImV4cGVjdGVkIiwgc3RhdHVzLCBjb25k
aXRpb249Y29uZGl0aW9uYWxfbm9kZS5jaGlsZHJlblswXSkKKworICAgICAgICBpZiAoImV4cGVj
dGVkIiBpbiBzZWxmLl9kYXRhIGFuZAorICAgICAgICAgICAgbGVuKHNlbGYuX2RhdGFbImV4cGVj
dGVkIl0pID4gMCBhbmQKKyAgICAgICAgICAgIHNlbGYuX2RhdGFbImV4cGVjdGVkIl1bLTFdLmNv
bmRpdGlvbl9ub2RlIGlzIE5vbmUgYW5kCisgICAgICAgICAgICBzZWxmLl9kYXRhWyJleHBlY3Rl
ZCJdWy0xXS52YWx1ZSA9PSBzZWxmLmRlZmF1bHRfc3RhdHVzKToKKworICAgICAgICAgICAgc2Vs
Zi5yZW1vdmVfdmFsdWUoImV4cGVjdGVkIiwgc2VsZi5fZGF0YVsiZXhwZWN0ZWQiXVstMV0pCisK
KyAgICAgICAgaWYgKCJleHBlY3RlZCIgaW4gc2VsZi5fZGF0YSBhbmQKKyAgICAgICAgICAgIGxl
bihzZWxmLl9kYXRhWyJleHBlY3RlZCJdKSA9PSAwKToKKyAgICAgICAgICAgIGZvciBjaGlsZCBp
biBzZWxmLm5vZGUuY2hpbGRyZW46CisgICAgICAgICAgICAgICAgaWYgKGlzaW5zdGFuY2UoY2hp
bGQsIEtleVZhbHVlTm9kZSkgYW5kCisgICAgICAgICAgICAgICAgICAgIGNoaWxkLmRhdGEgPT0g
ImV4cGVjdGVkIik6CisgICAgICAgICAgICAgICAgICAgIGNoaWxkLnJlbW92ZSgpCisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrCisKKyAgICBkZWYgX2FkZF9rZXlfdmFsdWUoc2VsZiwgbm9kZSwg
dmFsdWVzKToKKyAgICAgICAgTWFuaWZlc3RJdGVtLl9hZGRfa2V5X3ZhbHVlKHNlbGYsIG5vZGUs
IHZhbHVlcykKKyAgICAgICAgaWYgbm9kZS5kYXRhID09ICJleHBlY3RlZCI6CisgICAgICAgICAg
ICBzZWxmLnVwZGF0ZWRfZXhwZWN0ZWQgPSBbXQorICAgICAgICAgICAgZm9yIHZhbHVlIGluIHZh
bHVlczoKKyAgICAgICAgICAgICAgICBzZWxmLnVwZGF0ZWRfZXhwZWN0ZWQuYXBwZW5kKCh2YWx1
ZSwgW10pKQorCisgICAgZGVmIGNsZWFyX2V4cGVjdGVkKHNlbGYpOgorICAgICAgICAiIiJDbGVh
ciBhbGwgdGhlIGV4cGVjdGVkIGRhdGEgZm9yIHRoaXMgdGVzdCBhbmQgYWxsIG9mIGl0cyBzdWJ0
ZXN0cyIiIgorCisgICAgICAgIHNlbGYudXBkYXRlZF9leHBlY3RlZCA9IFtdCisgICAgICAgIGlm
ICJleHBlY3RlZCIgaW4gc2VsZi5fZGF0YToKKyAgICAgICAgICAgIGZvciBjaGlsZCBpbiBzZWxm
Lm5vZGUuY2hpbGRyZW46CisgICAgICAgICAgICAgICAgaWYgKGlzaW5zdGFuY2UoY2hpbGQsIEtl
eVZhbHVlTm9kZSkgYW5kCisgICAgICAgICAgICAgICAgICAgIGNoaWxkLmRhdGEgPT0gImV4cGVj
dGVkIik6CisgICAgICAgICAgICAgICAgICAgIGNoaWxkLnJlbW92ZSgpCisgICAgICAgICAgICAg
ICAgICAgIGRlbCBzZWxmLl9kYXRhWyJleHBlY3RlZCJdCisgICAgICAgICAgICAgICAgICAgIGJy
ZWFrCisKKyAgICAgICAgZm9yIHN1YnRlc3QgaW4gc2VsZi5zdWJ0ZXN0cy5pdGVydmFsdWVzKCk6
CisgICAgICAgICAgICBzdWJ0ZXN0LmNsZWFyX2V4cGVjdGVkKCkKKworICAgIGRlZiBhcHBlbmQo
c2VsZiwgbm9kZSk6CisgICAgICAgIGNoaWxkID0gTWFuaWZlc3RJdGVtLmFwcGVuZChzZWxmLCBu
b2RlKQorICAgICAgICBzZWxmLnN1YnRlc3RzW2NoaWxkLm5hbWVdID0gY2hpbGQKKworICAgIGRl
ZiBnZXRfc3VidGVzdChzZWxmLCBuYW1lKToKKyAgICAgICAgIiIiUmV0dXJuIGEgU3VidGVzdE5v
ZGUgY29ycmVzcG9uZGluZyB0byBhIHBhcnRpY3VsYXIgc3VidGVzdCBvZgorICAgICAgICB0aGUg
Y3VycmVudCB0ZXN0LCBjcmVhdGluZyBhIG5ldyBvbmUgaWYgbm8gc3VidGVzdCB3aXRoIHRoYXQg
bmFtZQorICAgICAgICBhbHJlYWR5IGV4aXN0cy4KKworICAgICAgICA6cGFyYW0gbmFtZTogTmFt
ZSBvZiB0aGUgc3VidGVzdCIiIgorCisgICAgICAgIGlmIG5hbWUgaW4gc2VsZi5zdWJ0ZXN0czoK
KyAgICAgICAgICAgIHJldHVybiBzZWxmLnN1YnRlc3RzW25hbWVdCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICBzdWJ0ZXN0ID0gU3VidGVzdE5vZGUuY3JlYXRlKG5hbWUpCisgICAgICAgICAg
ICBzZWxmLmFwcGVuZChzdWJ0ZXN0KQorICAgICAgICAgICAgcmV0dXJuIHN1YnRlc3QKKworCitj
bGFzcyBTdWJ0ZXN0Tm9kZShUZXN0Tm9kZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5vZGUp
OgorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShub2RlLCBEYXRhTm9kZSkKKyAgICAgICAgVGVz
dE5vZGUuX19pbml0X18oc2VsZiwgbm9kZSkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBj
cmVhdGUoY2xzLCBuYW1lKToKKyAgICAgICAgbm9kZSA9IERhdGFOb2RlKG5hbWUpCisgICAgICAg
IHNlbGYgPSBjbHMobm9kZSkKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIEBwcm9wZXJ0eQor
ICAgIGRlZiBpc19lbXB0eShzZWxmKToKKyAgICAgICAgaWYgc2VsZi5fZGF0YToKKyAgICAgICAg
ICAgIHJldHVybiBGYWxzZQorICAgICAgICByZXR1cm4gVHJ1ZQorCisKK2RlZiBncm91cF9jb25k
aXRpb25hbHModmFsdWVzLCBwcm9wZXJ0eV9vcmRlcj1Ob25lLCBib29sZWFuX3Byb3BlcnRpZXM9
Tm9uZSk6CisgICAgIiIiR2l2ZW4gYSBsaXN0IG9mIFJlc3VsdCBvYmplY3RzLCByZXR1cm4gYSBs
aXN0IG9mCisgICAgKGNvbmRpdGlvbmFsX25vZGUsIHN0YXR1cykgcGFpcnMgcmVwcmVzZW50aW5n
IHRoZSBjb25kaXRpb25hbAorICAgIGV4cHJlc3Npb25zIHRoYXQgYXJlIHJlcXVpcmVkIHRvIG1h
dGNoIGVhY2ggc3RhdHVzCisKKyAgICA6cGFyYW0gdmFsdWVzOiBMaXN0IG9mIFJlc3VsdHMKKyAg
ICA6cGFyYW0gcHJvcGVydHlfb3JkZXI6IExpc3Qgb2YgcHJvcGVydGllcyB0byB1c2UgaW4gZXhw
ZWN0YXRpb24gbWV0YWRhdGEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gbW9zdCB0
byBsZWFzdCBzaWduaWZpY2FudC4KKyAgICA6cGFyYW0gYm9vbGVhbl9wcm9wZXJ0aWVzOiBTZXQg
b2YgcHJvcGVydGllcyBpbiBwcm9wZXJ0eV9vcmRlciB0aGF0IHNob3VsZAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJlIHRyZWF0ZWQgYXMgYm9vbGVhbi4iIiIKKworICAgIGJ5X3By
b3BlcnR5ID0gZGVmYXVsdGRpY3Qoc2V0KQorICAgIGZvciBydW5faW5mbywgc3RhdHVzIGluIHZh
bHVlczoKKyAgICAgICAgZm9yIHByb3BfbmFtZSwgcHJvcF92YWx1ZSBpbiBydW5faW5mby5pdGVy
aXRlbXMoKToKKyAgICAgICAgICAgIGJ5X3Byb3BlcnR5Wyhwcm9wX25hbWUsIHByb3BfdmFsdWUp
XS5hZGQoc3RhdHVzKQorCisgICAgaWYgcHJvcGVydHlfb3JkZXIgaXMgTm9uZToKKyAgICAgICAg
cHJvcGVydHlfb3JkZXIgPSBbImRlYnVnIiwgIm9zIiwgInZlcnNpb24iLCAicHJvY2Vzc29yIiwg
ImJpdHMiXQorCisgICAgaWYgYm9vbGVhbl9wcm9wZXJ0aWVzIGlzIE5vbmU6CisgICAgICAgIGJv
b2xlYW5fcHJvcGVydGllcyA9IHNldChbImRlYnVnIl0pCisgICAgZWxzZToKKyAgICAgICAgYm9v
bGVhbl9wcm9wZXJ0aWVzID0gc2V0KGJvb2xlYW5fcHJvcGVydGllcykKKworICAgICMgSWYgd2Ug
aGF2ZSBtb3JlIHRoYW4gb25lIHZhbHVlLCByZW1vdmUgYW55IHByb3BlcnRpZXMgdGhhdCBhcmUg
Y29tbW9uCisgICAgIyBmb3IgYWxsIHRoZSB2YWx1ZXMKKyAgICBpZiBsZW4odmFsdWVzKSA+IDE6
CisgICAgICAgIGZvciBrZXksIHN0YXR1c2VzIGluIGJ5X3Byb3BlcnR5LmNvcHkoKS5pdGVyaXRl
bXMoKToKKyAgICAgICAgICAgIGlmIGxlbihzdGF0dXNlcykgPT0gbGVuKHZhbHVlcyk6CisgICAg
ICAgICAgICAgICAgZGVsIGJ5X3Byb3BlcnR5W2tleV0KKyAgICAgICAgaWYgbm90IGJ5X3Byb3Bl
cnR5OgorICAgICAgICAgICAgcmFpc2UgQ29uZGl0aW9uRXJyb3IKKworICAgIHByb3BlcnRpZXMg
PSBzZXQoaXRlbVswXSBmb3IgaXRlbSBpbiBieV9wcm9wZXJ0eS5pdGVya2V5cygpKQorICAgIGlu
Y2x1ZGVfcHJvcHMgPSBbXQorCisgICAgZm9yIHByb3AgaW4gcHJvcGVydHlfb3JkZXI6CisgICAg
ICAgIGlmIHByb3AgaW4gcHJvcGVydGllczoKKyAgICAgICAgICAgIGluY2x1ZGVfcHJvcHMuYXBw
ZW5kKHByb3ApCisKKyAgICBjb25kaXRpb25zID0ge30KKworICAgIGZvciBydW5faW5mbywgc3Rh
dHVzIGluIHZhbHVlczoKKyAgICAgICAgcHJvcF9zZXQgPSB0dXBsZSgocHJvcCwgcnVuX2luZm9b
cHJvcF0pIGZvciBwcm9wIGluIGluY2x1ZGVfcHJvcHMpCisgICAgICAgIGlmIHByb3Bfc2V0IGlu
IGNvbmRpdGlvbnM6CisgICAgICAgICAgICBpZiBjb25kaXRpb25zW3Byb3Bfc2V0XVsxXSAhPSBz
dGF0dXM6CisgICAgICAgICAgICAgICAgIyBBIHByb3Bfc2V0IGNvbnRhaW5zIGNvbnRyYWRpY3Rv
cnkgcmVzdWx0cworICAgICAgICAgICAgICAgIHJhaXNlIENvbmRpdGlvbkVycm9yKG1ha2VfZXhw
cihwcm9wX3NldCwgc3RhdHVzLCBib29sZWFuX3Byb3BlcnRpZXMpKQorICAgICAgICAgICAgY29u
dGludWUKKworICAgICAgICBleHByID0gbWFrZV9leHByKHByb3Bfc2V0LCBzdGF0dXMsIGJvb2xl
YW5fcHJvcGVydGllcz1ib29sZWFuX3Byb3BlcnRpZXMpCisgICAgICAgIGNvbmRpdGlvbnNbcHJv
cF9zZXRdID0gKGV4cHIsIHN0YXR1cykKKworICAgIHJldHVybiBjb25kaXRpb25zLnZhbHVlcygp
CisKKworZGVmIG1ha2VfZXhwcihwcm9wX3NldCwgc3RhdHVzLCBib29sZWFuX3Byb3BlcnRpZXM9
Tm9uZSk6CisgICAgIiIiQ3JlYXRlIGFuIEFTVCB0aGF0IHJldHVybnMgdGhlIHZhbHVlIGBgc3Rh
dHVzYGAgZ2l2ZW4gYWxsIHRoZQorICAgIHByb3BlcnRpZXMgaW4gcHJvcF9zZXQgbWF0Y2guCisK
KyAgICA6cGFyYW0gcHJvcF9zZXQ6IHR1cGxlIG9mIChwcm9wZXJ0eSBuYW1lLCB2YWx1ZSkgcGFp
cnMgZm9yIGVhY2gKKyAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5IGluIHRoaXMgZXhwcmVz
c2lvbiBhbmQgdGhlIHZhbHVlIGl0IG11c3QgbWF0Y2gKKyAgICA6cGFyYW0gc3RhdHVzOiBTdGF0
dXMgb24gUkhTIHdoZW4gYWxsIHRoZSBnaXZlbiBwcm9wZXJ0aWVzIG1hdGNoCisgICAgOnBhcmFt
IGJvb2xlYW5fcHJvcGVydGllczogU2V0IG9mIHByb3BlcnRpZXMgaW4gcHJvcGVydHlfb3JkZXIg
dGhhdCBzaG91bGQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZSB0cmVhdGVkIGFz
IGJvb2xlYW4uCisgICAgIiIiCisgICAgcm9vdCA9IENvbmRpdGlvbmFsTm9kZSgpCisKKyAgICBh
c3NlcnQgbGVuKHByb3Bfc2V0KSA+IDAKKworICAgIGV4cHJlc3Npb25zID0gW10KKyAgICBmb3Ig
cHJvcCwgdmFsdWUgaW4gcHJvcF9zZXQ6CisgICAgICAgIG51bWJlcl90eXBlcyA9IChpbnQsIGZs
b2F0LCBsb25nKQorICAgICAgICB2YWx1ZV9jbHMgPSAoTnVtYmVyTm9kZQorICAgICAgICAgICAg
ICAgICAgICAgaWYgdHlwZSh2YWx1ZSkgaW4gbnVtYmVyX3R5cGVzCisgICAgICAgICAgICAgICAg
ICAgICBlbHNlIFN0cmluZ05vZGUpCisgICAgICAgIGlmIHByb3Agbm90IGluIGJvb2xlYW5fcHJv
cGVydGllczoKKyAgICAgICAgICAgIGV4cHJlc3Npb25zLmFwcGVuZCgKKyAgICAgICAgICAgICAg
ICBCaW5hcnlFeHByZXNzaW9uTm9kZSgKKyAgICAgICAgICAgICAgICAgICAgQmluYXJ5T3BlcmF0
b3JOb2RlKCI9PSIpLAorICAgICAgICAgICAgICAgICAgICBWYXJpYWJsZU5vZGUocHJvcCksCisg
ICAgICAgICAgICAgICAgICAgIHZhbHVlX2Nscyh1bmljb2RlKHZhbHVlKSkKKyAgICAgICAgICAg
ICAgICApKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgdmFsdWU6CisgICAgICAgICAg
ICAgICAgZXhwcmVzc2lvbnMuYXBwZW5kKFZhcmlhYmxlTm9kZShwcm9wKSkKKyAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgZXhwcmVzc2lvbnMuYXBwZW5kKAorICAgICAgICAgICAg
ICAgICAgICBVbmFyeUV4cHJlc3Npb25Ob2RlKAorICAgICAgICAgICAgICAgICAgICAgICAgVW5h
cnlPcGVyYXRvck5vZGUoIm5vdCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGVO
b2RlKHByb3ApCisgICAgICAgICAgICAgICAgICAgICkpCisgICAgaWYgbGVuKGV4cHJlc3Npb25z
KSA+IDE6CisgICAgICAgIHByZXYgPSBleHByZXNzaW9uc1stMV0KKyAgICAgICAgZm9yIGN1cnIg
aW4gcmV2ZXJzZWQoZXhwcmVzc2lvbnNbOi0xXSk6CisgICAgICAgICAgICBub2RlID0gQmluYXJ5
RXhwcmVzc2lvbk5vZGUoCisgICAgICAgICAgICAgICAgQmluYXJ5T3BlcmF0b3JOb2RlKCJhbmQi
KSwKKyAgICAgICAgICAgICAgICBjdXJyLAorICAgICAgICAgICAgICAgIHByZXYpCisgICAgICAg
ICAgICBwcmV2ID0gbm9kZQorICAgIGVsc2U6CisgICAgICAgIG5vZGUgPSBleHByZXNzaW9uc1sw
XQorCisgICAgcm9vdC5hcHBlbmQobm9kZSkKKyAgICByb290LmFwcGVuZChTdHJpbmdOb2RlKHN0
YXR1cykpCisKKyAgICByZXR1cm4gcm9vdAorCisKK2RlZiBnZXRfbWFuaWZlc3QobWV0YWRhdGFf
cm9vdCwgdGVzdF9wYXRoLCB1cmxfYmFzZSwgcHJvcGVydHlfb3JkZXI9Tm9uZSwKKyAgICAgICAg
ICAgICAgICAgYm9vbGVhbl9wcm9wZXJ0aWVzPU5vbmUpOgorICAgICIiIkdldCB0aGUgRXhwZWN0
ZWRNYW5pZmVzdCBmb3IgYSBwYXJ0aWN1bGFyIHRlc3QgcGF0aCwgb3IgTm9uZSBpZiB0aGVyZSBp
cyBubworICAgIG1ldGFkYXRhIHN0b3JlZCBmb3IgdGhhdCB0ZXN0IHBhdGguCisKKyAgICA6cGFy
YW0gbWV0YWRhdGFfcm9vdDogQWJzb2x1dGUgcGF0aCB0byB0aGUgcm9vdCBvZiB0aGUgbWV0YWRh
dGEgZGlyZWN0b3J5CisgICAgOnBhcmFtIHRlc3RfcGF0aDogUGF0aCB0byB0aGUgdGVzdChzKSBy
ZWxhdGl2ZSB0byB0aGUgdGVzdCByb290CisgICAgOnBhcmFtIHVybF9iYXNlOiBCYXNlIHVybCBm
b3Igc2VydmluZyB0aGUgdGVzdHMgaW4gdGhpcyBtYW5pZmVzdAorICAgIDpwYXJhbSBwcm9wZXJ0
eV9vcmRlcjogTGlzdCBvZiBwcm9wZXJ0aWVzIHRvIHVzZSBpbiBleHBlY3RhdGlvbiBtZXRhZGF0
YQorICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSBtb3N0IHRvIGxlYXN0IHNpZ25pZmlj
YW50LgorICAgIDpwYXJhbSBib29sZWFuX3Byb3BlcnRpZXM6IFNldCBvZiBwcm9wZXJ0aWVzIGlu
IHByb3BlcnR5X29yZGVyIHRoYXQgc2hvdWxkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYmUgdHJlYXRlZCBhcyBib29sZWFuLiIiIgorICAgIG1hbmlmZXN0X3BhdGggPSBleHBlY3Rl
ZC5leHBlY3RlZF9wYXRoKG1ldGFkYXRhX3Jvb3QsIHRlc3RfcGF0aCkKKyAgICB0cnk6CisgICAg
ICAgIHdpdGggb3BlbihtYW5pZmVzdF9wYXRoKSBhcyBmOgorICAgICAgICAgICAgcmV0dXJuIGNv
bXBpbGUoZiwgdGVzdF9wYXRoLCB1cmxfYmFzZSwgcHJvcGVydHlfb3JkZXI9cHJvcGVydHlfb3Jk
ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuX3Byb3BlcnRpZXM9Ym9vbGVh
bl9wcm9wZXJ0aWVzKQorICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICByZXR1cm4gTm9uZQor
CisKK2RlZiBjb21waWxlKG1hbmlmZXN0X2ZpbGUsIHRlc3RfcGF0aCwgdXJsX2Jhc2UsIHByb3Bl
cnR5X29yZGVyPU5vbmUsCisgICAgICAgICAgICBib29sZWFuX3Byb3BlcnRpZXM9Tm9uZSk6Cisg
ICAgcmV0dXJuIGNvbmRpdGlvbmFsLmNvbXBpbGUobWFuaWZlc3RfZmlsZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkYXRhX2Nsc19nZXR0ZXI9ZGF0YV9jbHNfZ2V0dGVyLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfcGF0aD10ZXN0X3BhdGgsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdXJsX2Jhc2U9dXJsX2Jhc2UsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHJvcGVydHlfb3JkZXI9cHJvcGVydHlfb3JkZXIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbl9wcm9wZXJ0aWVzPWJvb2xlYW5fcHJvcGVy
dGllcykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tZXRhZGF0YS5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9tZXRhZGF0YS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmQ3N2JhOGQ5NGZlODQ3MGRlZjk5NmU5YTljOTY3
ZTFiMWM4YjAxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21ldGFkYXRhLnB5CkBA
IC0wLDAgKzEsMzY2IEBACitpbXBvcnQgb3MKK2ltcG9ydCBzaHV0aWwKK2ltcG9ydCBzeXMKK2lt
cG9ydCB0ZW1wZmlsZQoraW1wb3J0IHR5cGVzCitpbXBvcnQgdXVpZAorZnJvbSBjb2xsZWN0aW9u
cyBpbXBvcnQgZGVmYXVsdGRpY3QKKworZnJvbSBtb3psb2cgaW1wb3J0IHJlYWRlcgorZnJvbSBt
b3psb2cgaW1wb3J0IHN0cnVjdHVyZWRsb2cKKworaW1wb3J0IGV4cGVjdGVkCitpbXBvcnQgbWFu
aWZlc3R1cGRhdGUKK2ltcG9ydCB0ZXN0bG9hZGVyCitpbXBvcnQgd3B0bWFuaWZlc3QKK2ltcG9y
dCB3cHR0ZXN0Citmcm9tIHZjcyBpbXBvcnQgZ2l0CittYW5pZmVzdCA9IE5vbmUgICMgTW9kdWxl
IHRoYXQgd2lsbCBiZSBpbXBvcnRlZCByZWxhdGl2ZSB0byB0ZXN0X3Jvb3QKK21hbmlmZXN0aXRl
bSA9IE5vbmUKKworbG9nZ2VyID0gc3RydWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKCJ3ZWIt
cGxhdGZvcm0tdGVzdHMiKQorCisKK2RlZiBsb2FkX3Rlc3RfbWFuaWZlc3RzKHNlcnZlX3Jvb3Qs
IHRlc3RfcGF0aHMpOgorICAgIGRvX2RlbGF5ZWRfaW1wb3J0cyhzZXJ2ZV9yb290KQorICAgIG1h
bmlmZXN0X2xvYWRlciA9IHRlc3Rsb2FkZXIuTWFuaWZlc3RMb2FkZXIodGVzdF9wYXRocywgRmFs
c2UpCisgICAgcmV0dXJuIG1hbmlmZXN0X2xvYWRlci5sb2FkKCkKKworCitkZWYgdXBkYXRlX2V4
cGVjdGVkKHRlc3RfcGF0aHMsIHNlcnZlX3Jvb3QsIGxvZ19maWxlX25hbWVzLAorICAgICAgICAg
ICAgICAgICAgICByZXZfb2xkPU5vbmUsIHJldl9uZXc9IkhFQUQiLCBpZ25vcmVfZXhpc3Rpbmc9
RmFsc2UsCisgICAgICAgICAgICAgICAgICAgIHN5bmNfcm9vdD1Ob25lLCBwcm9wZXJ0eV9vcmRl
cj1Ob25lLCBib29sZWFuX3Byb3BlcnRpZXM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgc3Rh
YmlsaXR5PU5vbmUpOgorICAgICIiIlVwZGF0ZSB0aGUgbWV0YWRhdGEgZmlsZXMgZm9yIHdlYi1w
bGF0Zm9ybS10ZXN0cyBiYXNlZCBvbgorICAgIHRoZSByZXN1bHRzIG9idGFpbmVkIGluIGEgcHJl
dmlvdXMgcnVuIG9yIHJ1bnMKKworICAgIElmIHN0YWJpbGl0eSBpcyBub3QgTm9uZSwgYXNzdW1l
IGxvZ19maWxlX25hbWVzIHJlZmVycyB0byBsb2dzIGZyb20gcmVwZWF0ZWQKKyAgICB0ZXN0IGpv
YnMsIGRpc2FibGUgdGVzdHMgdGhhdCBkb24ndCBiZWhhdmUgYXMgZXhwZWN0ZWQgb24gYWxsIHJ1
bnMiIiIKKworICAgIG1hbmlmZXN0cyA9IGxvYWRfdGVzdF9tYW5pZmVzdHMoc2VydmVfcm9vdCwg
dGVzdF9wYXRocykKKworICAgIGNoYW5nZV9kYXRhID0ge30KKworICAgIGlmIHN5bmNfcm9vdCBp
cyBub3QgTm9uZToKKyAgICAgICAgaWYgcmV2X29sZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
IHJldl9vbGQgPSBnaXQoInJldi1wYXJzZSIsIHJldl9vbGQsIHJlcG89c3luY19yb290KS5zdHJp
cCgpCisgICAgICAgIHJldl9uZXcgPSBnaXQoInJldi1wYXJzZSIsIHJldl9uZXcsIHJlcG89c3lu
Y19yb290KS5zdHJpcCgpCisKKyAgICAgICAgaWYgcmV2X29sZCBpcyBub3QgTm9uZToKKyAgICAg
ICAgICAgIGNoYW5nZV9kYXRhID0gbG9hZF9jaGFuZ2VfZGF0YShyZXZfb2xkLCByZXZfbmV3LCBy
ZXBvPXN5bmNfcm9vdCkKKworICAgIGV4cGVjdGVkX21hcF9ieV9tYW5pZmVzdCA9IHVwZGF0ZV9m
cm9tX2xvZ3MobWFuaWZlc3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKmxvZ19maWxlX25hbWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWdub3JlX2V4aXN0aW5nPWlnbm9yZV9leGlzdGluZywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5X29y
ZGVyPXByb3BlcnR5X29yZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYm9vbGVhbl9wcm9wZXJ0aWVzPWJvb2xlYW5fcHJvcGVydGllcywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWJpbGl0eT1zdGFi
aWxpdHkpCisKKyAgICBmb3IgdGVzdF9tYW5pZmVzdCwgZXhwZWN0ZWRfbWFwIGluIGV4cGVjdGVk
X21hcF9ieV9tYW5pZmVzdC5pdGVyaXRlbXMoKToKKyAgICAgICAgdXJsX2Jhc2UgPSBtYW5pZmVz
dHNbdGVzdF9tYW5pZmVzdF1bInVybF9iYXNlIl0KKyAgICAgICAgbWV0YWRhdGFfcGF0aCA9IHRl
c3RfcGF0aHNbdXJsX2Jhc2VdWyJtZXRhZGF0YV9wYXRoIl0KKyAgICAgICAgd3JpdGVfY2hhbmdl
cyhtZXRhZGF0YV9wYXRoLCBleHBlY3RlZF9tYXApCisgICAgICAgIGlmIHN0YWJpbGl0eSBpcyBu
b3QgTm9uZToKKyAgICAgICAgICAgIGZvciB0cmVlIGluIGV4cGVjdGVkX21hcC5pdGVydmFsdWVz
KCk6CisgICAgICAgICAgICAgICAgZm9yIHRlc3QgaW4gdHJlZS5pdGVyY2hpbGRyZW4oKToKKyAg
ICAgICAgICAgICAgICAgICAgZm9yIHN1YnRlc3QgaW4gdGVzdC5pdGVyY2hpbGRyZW4oKToKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIHN1YnRlc3QubmV3X2Rpc2FibGVkOgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHByaW50ICJkaXNhYmxlZDogJXMiICUgb3MucGF0aC5kaXJuYW1l
KHN1YnRlc3Qucm9vdC50ZXN0X3BhdGgpICsgIi8iICsgc3VidGVzdC5uYW1lCisgICAgICAgICAg
ICAgICAgICAgIGlmIHRlc3QubmV3X2Rpc2FibGVkOgorICAgICAgICAgICAgICAgICAgICAgICAg
cHJpbnQgImRpc2FibGVkOiAlcyIgJSB0ZXN0LnJvb3QudGVzdF9wYXRoCisKKyAgICByZXN1bHRz
X2NoYW5nZWQgPSBbaXRlbS50ZXN0X3BhdGggZm9yIGl0ZW0gaW4gZXhwZWN0ZWRfbWFwLml0ZXJ2
YWx1ZXMoKSBpZiBpdGVtLm1vZGlmaWVkXQorCisgICAgcmV0dXJuIHVuZXhwZWN0ZWRfY2hhbmdl
cyhtYW5pZmVzdHMsIGNoYW5nZV9kYXRhLCByZXN1bHRzX2NoYW5nZWQpCisKKworZGVmIGRvX2Rl
bGF5ZWRfaW1wb3J0cyhzZXJ2ZV9yb290KToKKyAgICBnbG9iYWwgbWFuaWZlc3QsIG1hbmlmZXN0
aXRlbQorICAgIGZyb20gbWFuaWZlc3QgaW1wb3J0IG1hbmlmZXN0LCBpdGVtIGFzIG1hbmlmZXN0
aXRlbQorCisKK2RlZiBmaWxlc19pbl9yZXBvKHJlcG9fcm9vdCk6CisgICAgcmV0dXJuIGdpdCgi
bHMtdHJlZSIsICItciIsICItLW5hbWUtb25seSIsICJIRUFEIikuc3BsaXQoIlxuIikKKworCitk
ZWYgcmV2X3JhbmdlKHJldl9vbGQsIHJldl9uZXcsIHN5bW1ldHJpYz1GYWxzZSk6CisgICAgam9p
bmVyID0gIi4uIiBpZiBub3Qgc3ltbWV0cmljIGVsc2UgIi4uLiIKKyAgICByZXR1cm4gIiIuam9p
bihbcmV2X29sZCwgam9pbmVyLCByZXZfbmV3XSkKKworCitkZWYgcGF0aHNfY2hhbmdlZChyZXZf
b2xkLCByZXZfbmV3LCByZXBvKToKKyAgICBkYXRhID0gZ2l0KCJkaWZmIiwgIi0tbmFtZS1zdGF0
dXMiLCByZXZfcmFuZ2UocmV2X29sZCwgcmV2X25ldyksIHJlcG89cmVwbykKKyAgICBsaW5lcyA9
IFt0dXBsZShpdGVtLnN0cmlwKCkgZm9yIGl0ZW0gaW4gbGluZS5zdHJpcCgpLnNwbGl0KCJcdCIs
IDEpKQorICAgICAgICAgICAgIGZvciBsaW5lIGluIGRhdGEuc3BsaXQoIlxuIikgaWYgbGluZS5z
dHJpcCgpXQorICAgIG91dHB1dCA9IHNldChsaW5lcykKKyAgICByZXR1cm4gb3V0cHV0CisKKwor
ZGVmIGxvYWRfY2hhbmdlX2RhdGEocmV2X29sZCwgcmV2X25ldywgcmVwbyk6CisgICAgY2hhbmdl
cyA9IHBhdGhzX2NoYW5nZWQocmV2X29sZCwgcmV2X25ldywgcmVwbykKKyAgICBydiA9IHt9Cisg
ICAgc3RhdHVzX2tleXMgPSB7Ik0iOiAibW9kaWZpZWQiLAorICAgICAgICAgICAgICAgICAgICJB
IjogIm5ldyIsCisgICAgICAgICAgICAgICAgICAgIkQiOiAiZGVsZXRlZCJ9CisgICAgIyBUT0RP
OiBkZWFsIHdpdGggcmVuYW1lcworICAgIGZvciBpdGVtIGluIGNoYW5nZXM6CisgICAgICAgIHJ2
W2l0ZW1bMV1dID0gc3RhdHVzX2tleXNbaXRlbVswXV0KKyAgICByZXR1cm4gcnYKKworCitkZWYg
dW5leHBlY3RlZF9jaGFuZ2VzKG1hbmlmZXN0cywgY2hhbmdlX2RhdGEsIGZpbGVzX2NoYW5nZWQp
OgorICAgIGZpbGVzX2NoYW5nZWQgPSBzZXQoZmlsZXNfY2hhbmdlZCkKKworICAgIHJvb3RfbWFu
aWZlc3QgPSBOb25lCisgICAgZm9yIG1hbmlmZXN0LCBwYXRocyBpbiBtYW5pZmVzdHMuaXRlcml0
ZW1zKCk6CisgICAgICAgIGlmIHBhdGhzWyJ1cmxfYmFzZSJdID09ICIvIjoKKyAgICAgICAgICAg
IHJvb3RfbWFuaWZlc3QgPSBtYW5pZmVzdAorICAgICAgICAgICAgYnJlYWsKKyAgICBlbHNlOgor
ICAgICAgICByZXR1cm4gW10KKworICAgIHJ2ID0gW10KKworICAgIHJldHVybiBbZm4gZm9yIF8s
IGZuLCBfIGluIHJvb3RfbWFuaWZlc3QgaWYgZm4gaW4gZmlsZXNfY2hhbmdlZCBhbmQgY2hhbmdl
X2RhdGEuZ2V0KGZuKSAhPSAiTSJdCisKKyMgRm9yIGVhY2ggdGVzdHJ1bgorIyBMb2FkIGFsbCBm
aWxlcyBhbmQgc2NhbiBmb3IgdGhlIHN1aXRlX3N0YXJ0IGVudHJ5CisjIEJ1aWxkIGEgaGFzaCBv
ZiBmaWxlbmFtZTogcHJvcGVydGllcworIyBGb3IgZWFjaCBkaWZmZXJlbnQgc2V0IG9mIHByb3Bl
cnRpZXMsIGdhdGhlciBhbGwgY2h1bmtzCisjIEZvciBlYWNoIGNodW5rIGluIHRoZSBzZXQgb2Yg
Y2h1bmtzLCBnbyB0aHJvdWdoIGFsbCB0ZXN0cworIyBmb3IgZWFjaCB0ZXN0LCBtYWtlIGEgbWFw
IG9mIHtjb25kaXRpb25hbHM6IFsocGxhdGZvcm0sIG5ld192YWx1ZSldfQorIyBSZXBlYXQgZm9y
IGVhY2ggcGxhdGZvcm0KKyMgRm9yIGVhY2ggdGVzdCBpbiB0aGUgbGlzdCBvZiB0ZXN0czoKKyMg
ICBmb3IgZWFjaCBjb25kaXRpb25hbDoKKyMgICAgICBJZiBhbGwgdGhlIG5ldyB2YWx1ZXMgbWF0
Y2ggKG9yIHRoZXJlIGFyZW4ndCBhbnkpIHJldGFpbiB0aGF0IGNvbmRpdGlvbmFsCisjICAgICAg
SWYgYW55IG5ldyB2YWx1ZXMgbWlzbWF0Y2g6CisjICAgICAgICAgICBJZiBzdGFiaWxpdHkgYW5k
IGFueSByZXBlYXRlZCB2YWx1ZXMgZG9uJ3QgbWF0Y2gsIGRpc2FibGUgdGhlIHRlc3QKKyMgICAg
ICAgICAgIGVsc2UgbWFyayB0aGUgdGVzdCBhcyBuZWVkaW5nIGh1bWFuIGF0dGVudGlvbgorIyAg
IENoZWNrIGlmIGFsbCB0aGUgUkhTIHZhbHVlcyBhcmUgdGhlIHNhbWU7IGlmIHNvIGNvbGxhcHNl
IHRoZSBjb25kaXRpb25hbHMKKworCitkZWYgdXBkYXRlX2Zyb21fbG9ncyhtYW5pZmVzdHMsICps
b2dfZmlsZW5hbWVzLCAqKmt3YXJncyk6CisgICAgaWdub3JlX2V4aXN0aW5nID0ga3dhcmdzLmdl
dCgiaWdub3JlX2V4aXN0aW5nIiwgRmFsc2UpCisgICAgcHJvcGVydHlfb3JkZXIgPSBrd2FyZ3Mu
Z2V0KCJwcm9wZXJ0eV9vcmRlciIpCisgICAgYm9vbGVhbl9wcm9wZXJ0aWVzID0ga3dhcmdzLmdl
dCgiYm9vbGVhbl9wcm9wZXJ0aWVzIikKKyAgICBzdGFiaWxpdHkgPSBrd2FyZ3MuZ2V0KCJzdGFi
aWxpdHkiKQorCisgICAgZXhwZWN0ZWRfbWFwID0ge30KKyAgICBpZF90ZXN0X21hcCA9IHt9CisK
KyAgICBmb3IgdGVzdF9tYW5pZmVzdCwgcGF0aHMgaW4gbWFuaWZlc3RzLml0ZXJpdGVtcygpOgor
ICAgICAgICBleHBlY3RlZF9tYXBfbWFuaWZlc3QsIGlkX3BhdGhfbWFwX21hbmlmZXN0ID0gY3Jl
YXRlX3Rlc3RfdHJlZSgKKyAgICAgICAgICAgIHBhdGhzWyJtZXRhZGF0YV9wYXRoIl0sCisgICAg
ICAgICAgICB0ZXN0X21hbmlmZXN0LAorICAgICAgICAgICAgcHJvcGVydHlfb3JkZXI9cHJvcGVy
dHlfb3JkZXIsCisgICAgICAgICAgICBib29sZWFuX3Byb3BlcnRpZXM9Ym9vbGVhbl9wcm9wZXJ0
aWVzKQorICAgICAgICBleHBlY3RlZF9tYXBbdGVzdF9tYW5pZmVzdF0gPSBleHBlY3RlZF9tYXBf
bWFuaWZlc3QKKyAgICAgICAgaWRfdGVzdF9tYXAudXBkYXRlKGlkX3BhdGhfbWFwX21hbmlmZXN0
KQorCisgICAgdXBkYXRlciA9IEV4cGVjdGVkVXBkYXRlcihtYW5pZmVzdHMsIGV4cGVjdGVkX21h
cCwgaWRfdGVzdF9tYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVfZXhp
c3Rpbmc9aWdub3JlX2V4aXN0aW5nKQorICAgIGZvciBsb2dfZmlsZW5hbWUgaW4gbG9nX2ZpbGVu
YW1lczoKKyAgICAgICAgd2l0aCBvcGVuKGxvZ19maWxlbmFtZSkgYXMgZjoKKyAgICAgICAgICAg
IHVwZGF0ZXIudXBkYXRlX2Zyb21fbG9nKGYpCisKKyAgICBmb3IgbWFuaWZlc3RfZXhwZWN0ZWQg
aW4gZXhwZWN0ZWRfbWFwLml0ZXJ2YWx1ZXMoKToKKyAgICAgICAgZm9yIHRyZWUgaW4gbWFuaWZl
c3RfZXhwZWN0ZWQuaXRlcnZhbHVlcygpOgorICAgICAgICAgICAgZm9yIHRlc3QgaW4gdHJlZS5p
dGVyY2hpbGRyZW4oKToKKyAgICAgICAgICAgICAgICBmb3Igc3VidGVzdCBpbiB0ZXN0Lml0ZXJj
aGlsZHJlbigpOgorICAgICAgICAgICAgICAgICAgICBzdWJ0ZXN0LmNvYWxlc2NlX2V4cGVjdGVk
KHN0YWJpbGl0eT1zdGFiaWxpdHkpCisgICAgICAgICAgICAgICAgdGVzdC5jb2FsZXNjZV9leHBl
Y3RlZChzdGFiaWxpdHk9c3RhYmlsaXR5KQorCisgICAgcmV0dXJuIGV4cGVjdGVkX21hcAorCitk
ZWYgZGlyZWN0b3J5X21hbmlmZXN0cyhtZXRhZGF0YV9wYXRoKToKKyAgICBydiA9IFtdCisgICAg
Zm9yIGRpcnBhdGgsIGRpcm5hbWUsIGZpbGVuYW1lcyBpbiBvcy53YWxrKG1ldGFkYXRhX3BhdGgp
OgorICAgICAgICBpZiAiX19kaXJfXy5pbmkiIGluIGZpbGVuYW1lczoKKyAgICAgICAgICAgIHJl
bF9wYXRoID0gb3MucGF0aC5yZWxwYXRoKGRpcnBhdGgsIG1ldGFkYXRhX3BhdGgpCisgICAgICAg
ICAgICBydi5hcHBlbmQob3MucGF0aC5qb2luKHJlbF9wYXRoLCAiX19kaXJfXy5pbmkiKSkKKyAg
ICByZXR1cm4gcnYKKworZGVmIHdyaXRlX2NoYW5nZXMobWV0YWRhdGFfcGF0aCwgZXhwZWN0ZWRf
bWFwKToKKyAgICAjIEZpcnN0IHdyaXRlIHRoZSBuZXcgbWFuaWZlc3QgZmlsZXMgdG8gYSB0ZW1w
b3JhcnkgZGlyZWN0b3J5CisgICAgdGVtcF9wYXRoID0gdGVtcGZpbGUubWtkdGVtcChkaXI9b3Mu
cGF0aC5zcGxpdChtZXRhZGF0YV9wYXRoKVswXSkKKyAgICB3cml0ZV9uZXdfZXhwZWN0ZWQodGVt
cF9wYXRoLCBleHBlY3RlZF9tYXApCisKKyAgICAjIEtlZXAgYWxsIF9fZGlyX18uaW5pIGZpbGVz
ICh0aGVzZSBhcmUgbm90IGluIGV4cGVjdGVkX21hcCBiZWNhdXNlIHRoZXkKKyAgICAjIGFyZW4n
dCBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyB0ZXN0KQorICAgIGtlZXBfZmlsZXMgPSBkaXJl
Y3RvcnlfbWFuaWZlc3RzKG1ldGFkYXRhX3BhdGgpCisKKyAgICAjIENvcHkgYWxsIGZpbGVzIGlu
IHRoZSByb290IHRvIHRoZSB0ZW1wb3JhcnkgbG9jYXRpb24gc2luY2UKKyAgICAjIHRoZXNlIGNh
bm5vdCBiZSBpbmkgZmlsZXMKKyAgICBrZWVwX2ZpbGVzLmV4dGVuZChpdGVtIGZvciBpdGVtIGlu
IG9zLmxpc3RkaXIobWV0YWRhdGFfcGF0aCkgaWYKKyAgICAgICAgICAgICAgICAgICAgICBub3Qg
b3MucGF0aC5pc2Rpcihvcy5wYXRoLmpvaW4obWV0YWRhdGFfcGF0aCwgaXRlbSkpKQorCisgICAg
Zm9yIGl0ZW0gaW4ga2VlcF9maWxlczoKKyAgICAgICAgZGVzdF9kaXIgPSBvcy5wYXRoLmRpcm5h
bWUob3MucGF0aC5qb2luKHRlbXBfcGF0aCwgaXRlbSkpCisgICAgICAgIGlmIG5vdCBvcy5wYXRo
LmV4aXN0cyhkZXN0X2Rpcik6CisgICAgICAgICAgICBvcy5tYWtlZGlycyhkZXN0X2RpcikKKyAg
ICAgICAgc2h1dGlsLmNvcHlmaWxlKG9zLnBhdGguam9pbihtZXRhZGF0YV9wYXRoLCBpdGVtKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbih0ZW1wX3BhdGgsIGl0ZW0pKQor
CisgICAgIyBUaGVuIG1vdmUgdGhlIG9sZCBtYW5pZmVzdCBmaWxlcyB0byBhIG5ldyBsb2NhdGlv
bgorICAgIHRlbXBfcGF0aF8yID0gbWV0YWRhdGFfcGF0aCArIHN0cih1dWlkLnV1aWQ0KCkpCisg
ICAgb3MucmVuYW1lKG1ldGFkYXRhX3BhdGgsIHRlbXBfcGF0aF8yKQorICAgICMgTW92ZSB0aGUg
bmV3IGZpbGVzIHRvIHRoZSBkZXN0aW5hdGlvbiBsb2NhdGlvbiBhbmQgcmVtb3ZlIHRoZSBvbGQg
ZmlsZXMKKyAgICBvcy5yZW5hbWUodGVtcF9wYXRoLCBtZXRhZGF0YV9wYXRoKQorICAgIHNodXRp
bC5ybXRyZWUodGVtcF9wYXRoXzIpCisKKworZGVmIHdyaXRlX25ld19leHBlY3RlZChtZXRhZGF0
YV9wYXRoLCBleHBlY3RlZF9tYXApOgorICAgICMgU2VyaWFsaXplIHRoZSBkYXRhIGJhY2sgdG8g
YSBmaWxlCisgICAgZm9yIHRyZWUgaW4gZXhwZWN0ZWRfbWFwLml0ZXJ2YWx1ZXMoKToKKyAgICAg
ICAgaWYgbm90IHRyZWUuaXNfZW1wdHk6CisgICAgICAgICAgICBtYW5pZmVzdF9zdHIgPSB3cHRt
YW5pZmVzdC5zZXJpYWxpemUodHJlZS5ub2RlLCBza2lwX2VtcHR5X2RhdGE9VHJ1ZSkKKyAgICAg
ICAgICAgIGFzc2VydCBtYW5pZmVzdF9zdHIgIT0gIiIKKyAgICAgICAgICAgIHBhdGggPSBleHBl
Y3RlZC5leHBlY3RlZF9wYXRoKG1ldGFkYXRhX3BhdGgsIHRyZWUudGVzdF9wYXRoKQorICAgICAg
ICAgICAgZGlyID0gb3MucGF0aC5zcGxpdChwYXRoKVswXQorICAgICAgICAgICAgaWYgbm90IG9z
LnBhdGguZXhpc3RzKGRpcik6CisgICAgICAgICAgICAgICAgb3MubWFrZWRpcnMoZGlyKQorICAg
ICAgICAgICAgd2l0aCBvcGVuKHBhdGgsICJ3YiIpIGFzIGY6CisgICAgICAgICAgICAgICAgZi53
cml0ZShtYW5pZmVzdF9zdHIpCisKKworY2xhc3MgRXhwZWN0ZWRVcGRhdGVyKG9iamVjdCk6Cisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RfbWFuaWZlc3RzLCBleHBlY3RlZF90cmVlLCBpZF9w
YXRoX21hcCwgaWdub3JlX2V4aXN0aW5nPUZhbHNlKToKKyAgICAgICAgc2VsZi50ZXN0X21hbmlm
ZXN0cyA9IHRlc3RfbWFuaWZlc3RzCisgICAgICAgIHNlbGYuZXhwZWN0ZWRfdHJlZSA9IGV4cGVj
dGVkX3RyZWUKKyAgICAgICAgc2VsZi5pZF9wYXRoX21hcCA9IGlkX3BhdGhfbWFwCisgICAgICAg
IHNlbGYuaWdub3JlX2V4aXN0aW5nID0gaWdub3JlX2V4aXN0aW5nCisgICAgICAgIHNlbGYucnVu
X2luZm8gPSBOb25lCisgICAgICAgIHNlbGYuYWN0aW9uX21hcCA9IHsic3VpdGVfc3RhcnQiOiBz
ZWxmLnN1aXRlX3N0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3Rfc3RhcnQi
OiBzZWxmLnRlc3Rfc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9zdGF0
dXMiOiBzZWxmLnRlc3Rfc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3Rf
ZW5kIjogc2VsZi50ZXN0X2VuZH0KKyAgICAgICAgc2VsZi50ZXN0c192aXNpdGVkID0ge30KKwor
ICAgICAgICBzZWxmLnRlc3RfY2FjaGUgPSB7fQorCisgICAgZGVmIHVwZGF0ZV9mcm9tX2xvZyhz
ZWxmLCBsb2dfZmlsZSk6CisgICAgICAgIHNlbGYucnVuX2luZm8gPSBOb25lCisgICAgICAgIGxv
Z19yZWFkZXIgPSByZWFkZXIucmVhZChsb2dfZmlsZSkKKyAgICAgICAgcmVhZGVyLmVhY2hfbG9n
KGxvZ19yZWFkZXIsIHNlbGYuYWN0aW9uX21hcCkKKworICAgIGRlZiBzdWl0ZV9zdGFydChzZWxm
LCBkYXRhKToKKyAgICAgICAgc2VsZi5ydW5faW5mbyA9IGRhdGFbInJ1bl9pbmZvIl0KKworICAg
IGRlZiB0ZXN0X3R5cGUoc2VsZiwgcGF0aCk6CisgICAgICAgIGZvciBtYW5pZmVzdCBpbiBzZWxm
LnRlc3RfbWFuaWZlc3RzLml0ZXJrZXlzKCk6CisgICAgICAgICAgICB0ZXN0cyA9IGxpc3QobWFu
aWZlc3QuaXRlcnBhdGgocGF0aCkpCisgICAgICAgICAgICBpZiBsZW4odGVzdHMpOgorICAgICAg
ICAgICAgICAgIGFzc2VydCBhbGwodGVzdC5pdGVtX3R5cGUgPT0gdGVzdHNbMF0uaXRlbV90eXBl
IGZvciB0ZXN0IGluIHRlc3RzKQorICAgICAgICAgICAgICAgIHJldHVybiB0ZXN0c1swXS5pdGVt
X3R5cGUKKyAgICAgICAgYXNzZXJ0IEZhbHNlCisKKyAgICBkZWYgdGVzdF9zdGFydChzZWxmLCBk
YXRhKToKKyAgICAgICAgdGVzdF9pZCA9IGRhdGFbInRlc3QiXQorICAgICAgICB0cnk6CisgICAg
ICAgICAgICB0ZXN0X21hbmlmZXN0LCB0ZXN0ID0gc2VsZi5pZF9wYXRoX21hcFt0ZXN0X2lkXQor
ICAgICAgICAgICAgZXhwZWN0ZWRfbm9kZSA9IHNlbGYuZXhwZWN0ZWRfdHJlZVt0ZXN0X21hbmlm
ZXN0XVt0ZXN0XS5nZXRfdGVzdCh0ZXN0X2lkKQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6Cisg
ICAgICAgICAgICBwcmludCAiVGVzdCBub3QgZm91bmQgJXMsIHNraXBwaW5nIiAlIHRlc3RfaWQK
KyAgICAgICAgICAgIHJldHVybgorICAgICAgICBzZWxmLnRlc3RfY2FjaGVbdGVzdF9pZF0gPSBl
eHBlY3RlZF9ub2RlCisKKyAgICAgICAgaWYgdGVzdF9pZCBub3QgaW4gc2VsZi50ZXN0c192aXNp
dGVkOgorICAgICAgICAgICAgaWYgc2VsZi5pZ25vcmVfZXhpc3Rpbmc6CisgICAgICAgICAgICAg
ICAgZXhwZWN0ZWRfbm9kZS5jbGVhcl9leHBlY3RlZCgpCisgICAgICAgICAgICBzZWxmLnRlc3Rz
X3Zpc2l0ZWRbdGVzdF9pZF0gPSBzZXQoKQorCisgICAgZGVmIHRlc3Rfc3RhdHVzKHNlbGYsIGRh
dGEpOgorICAgICAgICB0ZXN0ID0gc2VsZi50ZXN0X2NhY2hlLmdldChkYXRhWyJ0ZXN0Il0pCisg
ICAgICAgIGlmIHRlc3QgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICB0ZXN0
X2NscyA9IHdwdHRlc3QubWFuaWZlc3RfdGVzdF9jbHNbc2VsZi50ZXN0X3R5cGUodGVzdC5yb290
LnRlc3RfcGF0aCldCisKKyAgICAgICAgc3VidGVzdCA9IHRlc3QuZ2V0X3N1YnRlc3QoZGF0YVsi
c3VidGVzdCJdKQorCisgICAgICAgIHNlbGYudGVzdHNfdmlzaXRlZFt0ZXN0LmlkXS5hZGQoZGF0
YVsic3VidGVzdCJdKQorCisgICAgICAgIHJlc3VsdCA9IHRlc3RfY2xzLnN1YnRlc3RfcmVzdWx0
X2NscygKKyAgICAgICAgICAgIGRhdGFbInN1YnRlc3QiXSwKKyAgICAgICAgICAgIGRhdGFbInN0
YXR1cyJdLAorICAgICAgICAgICAgZGF0YS5nZXQoIm1lc3NhZ2UiKSkKKworICAgICAgICBzdWJ0
ZXN0LnNldF9yZXN1bHQoc2VsZi5ydW5faW5mbywgcmVzdWx0KQorCisgICAgZGVmIHRlc3RfZW5k
KHNlbGYsIGRhdGEpOgorICAgICAgICB0ZXN0X2lkID0gZGF0YVsidGVzdCJdCisgICAgICAgIHRl
c3QgPSBzZWxmLnRlc3RfY2FjaGUuZ2V0KHRlc3RfaWQpCisgICAgICAgIGlmIHRlc3QgaXMgTm9u
ZToKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICB0ZXN0X2NscyA9IHdwdHRlc3QubWFuaWZl
c3RfdGVzdF9jbHNbc2VsZi50ZXN0X3R5cGUodGVzdC5yb290LnRlc3RfcGF0aCldCisKKyAgICAg
ICAgaWYgZGF0YVsic3RhdHVzIl0gPT0gIlNLSVAiOgorICAgICAgICAgICAgcmV0dXJuCisKKyAg
ICAgICAgcmVzdWx0ID0gdGVzdF9jbHMucmVzdWx0X2NscygKKyAgICAgICAgICAgIGRhdGFbInN0
YXR1cyJdLAorICAgICAgICAgICAgZGF0YS5nZXQoIm1lc3NhZ2UiKSkKKyAgICAgICAgdGVzdC5z
ZXRfcmVzdWx0KHNlbGYucnVuX2luZm8sIHJlc3VsdCkKKyAgICAgICAgZGVsIHNlbGYudGVzdF9j
YWNoZVt0ZXN0X2lkXQorCisKK2RlZiBjcmVhdGVfdGVzdF90cmVlKG1ldGFkYXRhX3BhdGgsIHRl
c3RfbWFuaWZlc3QsIHByb3BlcnR5X29yZGVyPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICBi
b29sZWFuX3Byb3BlcnRpZXM9Tm9uZSk6CisgICAgZXhwZWN0ZWRfbWFwID0ge30KKyAgICBpZF90
ZXN0X21hcCA9IHt9CisgICAgZXhjbHVkZV90eXBlcyA9IGZyb3plbnNldChbInN0dWIiLCAiaGVs
cGVyIiwgIm1hbnVhbCIsICJzdXBwb3J0IiwgImNvbmZvcm1hbmNlY2hlY2tlciJdKQorICAgIGFs
bF90eXBlcyA9IFtpdGVtLml0ZW1fdHlwZSBmb3IgaXRlbSBpbiBtYW5pZmVzdGl0ZW0uX19kaWN0
X18uaXRlcnZhbHVlcygpCisgICAgICAgICAgICAgICAgIGlmIHR5cGUoaXRlbSkgPT0gdHlwZSBh
bmQKKyAgICAgICAgICAgICAgICAgaXNzdWJjbGFzcyhpdGVtLCBtYW5pZmVzdGl0ZW0uTWFuaWZl
c3RJdGVtKSBhbmQKKyAgICAgICAgICAgICAgICAgaXRlbS5pdGVtX3R5cGUgaXMgbm90IE5vbmVd
CisgICAgaW5jbHVkZV90eXBlcyA9IHNldChhbGxfdHlwZXMpIC0gZXhjbHVkZV90eXBlcworICAg
IGZvciBfLCB0ZXN0X3BhdGgsIHRlc3RzIGluIHRlc3RfbWFuaWZlc3QuaXRlcnR5cGVzKCppbmNs
dWRlX3R5cGVzKToKKyAgICAgICAgZXhwZWN0ZWRfZGF0YSA9IGxvYWRfZXhwZWN0ZWQodGVzdF9t
YW5pZmVzdCwgbWV0YWRhdGFfcGF0aCwgdGVzdF9wYXRoLCB0ZXN0cywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlfb3JkZXI9cHJvcGVydHlfb3JkZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW5fcHJvcGVydGllcz1i
b29sZWFuX3Byb3BlcnRpZXMpCisgICAgICAgIGlmIGV4cGVjdGVkX2RhdGEgaXMgTm9uZToKKyAg
ICAgICAgICAgIGV4cGVjdGVkX2RhdGEgPSBjcmVhdGVfZXhwZWN0ZWQodGVzdF9tYW5pZmVzdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9wYXRoLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0cywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlfb3JkZXI9cHJv
cGVydHlfb3JkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJvb2xlYW5fcHJvcGVydGllcz1ib29sZWFuX3Byb3BlcnRpZXMpCisKKyAgICAgICAgZm9yIHRl
c3QgaW4gdGVzdHM6CisgICAgICAgICAgICBpZF90ZXN0X21hcFt0ZXN0LmlkXSA9ICh0ZXN0X21h
bmlmZXN0LCB0ZXN0KQorICAgICAgICAgICAgZXhwZWN0ZWRfbWFwW3Rlc3RdID0gZXhwZWN0ZWRf
ZGF0YQorCisgICAgcmV0dXJuIGV4cGVjdGVkX21hcCwgaWRfdGVzdF9tYXAKKworCitkZWYgY3Jl
YXRlX2V4cGVjdGVkKHRlc3RfbWFuaWZlc3QsIHRlc3RfcGF0aCwgdGVzdHMsIHByb3BlcnR5X29y
ZGVyPU5vbmUsCisgICAgICAgICAgICAgICAgICAgIGJvb2xlYW5fcHJvcGVydGllcz1Ob25lKToK
KyAgICBleHBlY3RlZCA9IG1hbmlmZXN0dXBkYXRlLkV4cGVjdGVkTWFuaWZlc3QoTm9uZSwgdGVz
dF9wYXRoLCB0ZXN0X21hbmlmZXN0LnVybF9iYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eV9vcmRlcj1wcm9wZXJ0eV9vcmRlciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbl9wcm9w
ZXJ0aWVzPWJvb2xlYW5fcHJvcGVydGllcykKKyAgICBmb3IgdGVzdCBpbiB0ZXN0czoKKyAgICAg
ICAgZXhwZWN0ZWQuYXBwZW5kKG1hbmlmZXN0dXBkYXRlLlRlc3ROb2RlLmNyZWF0ZSh0ZXN0Lmlk
KSkKKyAgICByZXR1cm4gZXhwZWN0ZWQKKworCitkZWYgbG9hZF9leHBlY3RlZCh0ZXN0X21hbmlm
ZXN0LCBtZXRhZGF0YV9wYXRoLCB0ZXN0X3BhdGgsIHRlc3RzLCBwcm9wZXJ0eV9vcmRlcj1Ob25l
LAorICAgICAgICAgICAgICAgICAgYm9vbGVhbl9wcm9wZXJ0aWVzPU5vbmUpOgorICAgIGV4cGVj
dGVkX21hbmlmZXN0ID0gbWFuaWZlc3R1cGRhdGUuZ2V0X21hbmlmZXN0KG1ldGFkYXRhX3BhdGgs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dF9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RfbWFuaWZlc3QudXJsX2Jhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlfb3JkZXI9cHJvcGVydHlfb3JkZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVh
bl9wcm9wZXJ0aWVzPWJvb2xlYW5fcHJvcGVydGllcykKKyAgICBpZiBleHBlY3RlZF9tYW5pZmVz
dCBpcyBOb25lOgorICAgICAgICByZXR1cm4KKworICAgIHRlc3RzX2J5X2lkID0ge2l0ZW0uaWQ6
IGl0ZW0gZm9yIGl0ZW0gaW4gdGVzdHN9CisKKyAgICAjIFJlbW92ZSBleHBlY3RlZCBkYXRhIGZv
ciB0ZXN0cyB0aGF0IG5vIGxvbmdlciBleGlzdAorICAgIGZvciB0ZXN0IGluIGV4cGVjdGVkX21h
bmlmZXN0Lml0ZXJjaGlsZHJlbigpOgorICAgICAgICBpZiB0ZXN0LmlkIG5vdCBpbiB0ZXN0c19i
eV9pZDoKKyAgICAgICAgICAgIHRlc3QucmVtb3ZlKCkKKworICAgICMgQWRkIHRlc3RzIHRoYXQg
ZG9uJ3QgaGF2ZSBleHBlY3RlZCBkYXRhCisgICAgZm9yIHRlc3QgaW4gdGVzdHM6CisgICAgICAg
IGlmIG5vdCBleHBlY3RlZF9tYW5pZmVzdC5oYXNfdGVzdCh0ZXN0LmlkKToKKyAgICAgICAgICAg
IGV4cGVjdGVkX21hbmlmZXN0LmFwcGVuZChtYW5pZmVzdHVwZGF0ZS5UZXN0Tm9kZS5jcmVhdGUo
dGVzdC5pZCkpCisKKyAgICByZXR1cm4gZXhwZWN0ZWRfbWFuaWZlc3QKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9wcm9kdWN0cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9wcm9kdWN0cy5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jMDc3Zjk1ZGZkOTU2Yjg5ZjM3YzQ1ZmU3ZGE2Mjk5ZjVhNWZiODU4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3Byb2R1Y3RzLnB5CkBAIC0wLDAgKzEsNjkgQEAKK2ltcG9y
dCBvcworaW1wb3J0IGltcG9ydGxpYgoraW1wb3J0IGltcAorCitmcm9tIC5icm93c2VycyBpbXBv
cnQgcHJvZHVjdF9saXN0CisKK2RlZiBwcm9kdWN0c19lbmFibGVkKGNvbmZpZyk6CisgICAgbmFt
ZXMgPSBjb25maWcuZ2V0KCJwcm9kdWN0cyIsIHt9KS5rZXlzKCkKKyAgICBpZiBub3QgbmFtZXM6
CisgICAgICAgIHJldHVybiBwcm9kdWN0X2xpc3QKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4g
bmFtZXMKKworZGVmIHByb2R1Y3RfbW9kdWxlKGNvbmZpZywgcHJvZHVjdCk6CisgICAgaGVyZSA9
IG9zLnBhdGguam9pbihvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVswXSkKKyAgICBwcm9kdWN0X2Rp
ciA9IG9zLnBhdGguam9pbihoZXJlLCAiYnJvd3NlcnMiKQorCisgICAgaWYgcHJvZHVjdCBub3Qg
aW4gcHJvZHVjdHNfZW5hYmxlZChjb25maWcpOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJV
bmtub3duIHByb2R1Y3QgJXMiICUgcHJvZHVjdCkKKworICAgIHBhdGggPSBjb25maWcuZ2V0KCJw
cm9kdWN0cyIsIHt9KS5nZXQocHJvZHVjdCwgTm9uZSkKKyAgICBpZiBwYXRoOgorICAgICAgICBt
b2R1bGUgPSBpbXAubG9hZF9zb3VyY2UoJ3dwdHJ1bm5lci5icm93c2Vycy4nICsgcHJvZHVjdCwg
cGF0aCkKKyAgICBlbHNlOgorICAgICAgICBtb2R1bGUgPSBpbXBvcnRsaWIuaW1wb3J0X21vZHVs
ZSgid3B0cnVubmVyLmJyb3dzZXJzLiIgKyBwcm9kdWN0KQorCisgICAgaWYgbm90IGhhc2F0dHIo
bW9kdWxlLCAiX193cHRydW5uZXJfXyIpOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJQcm9k
dWN0IG1vZHVsZSBkb2VzIG5vdCBkZWZpbmUgX193cHRydW5uZXJfXyB2YXJpYWJsZSIpCisKKyAg
ICByZXR1cm4gbW9kdWxlCisKKworZGVmIGxvYWRfcHJvZHVjdChjb25maWcsIHByb2R1Y3QpOgor
ICAgIG1vZHVsZSA9IHByb2R1Y3RfbW9kdWxlKGNvbmZpZywgcHJvZHVjdCkKKyAgICBkYXRhID0g
bW9kdWxlLl9fd3B0cnVubmVyX18KKworICAgIGNoZWNrX2FyZ3MgPSBnZXRhdHRyKG1vZHVsZSwg
ZGF0YVsiY2hlY2tfYXJncyJdKQorICAgIGJyb3dzZXJfY2xzID0gZ2V0YXR0cihtb2R1bGUsIGRh
dGFbImJyb3dzZXIiXSkKKyAgICBicm93c2VyX2t3YXJncyA9IGdldGF0dHIobW9kdWxlLCBkYXRh
WyJicm93c2VyX2t3YXJncyJdKQorICAgIGV4ZWN1dG9yX2t3YXJncyA9IGdldGF0dHIobW9kdWxl
LCBkYXRhWyJleGVjdXRvcl9rd2FyZ3MiXSkKKyAgICBlbnZfb3B0aW9ucyA9IGdldGF0dHIobW9k
dWxlLCBkYXRhWyJlbnZfb3B0aW9ucyJdKSgpCisgICAgZW52X2V4dHJhcyA9IGdldGF0dHIobW9k
dWxlLCBkYXRhWyJlbnZfZXh0cmFzIl0pCisgICAgcnVuX2luZm9fZXh0cmFzID0gKGdldGF0dHIo
bW9kdWxlLCBkYXRhWyJydW5faW5mb19leHRyYXMiXSkKKyAgICAgICAgICAgICAgICAgICAgICAg
aWYgInJ1bl9pbmZvX2V4dHJhcyIgaW4gZGF0YSBlbHNlIGxhbWJkYSAqKmt3YXJnczp7fSkKKwor
ICAgIGV4ZWN1dG9yX2NsYXNzZXMgPSB7fQorICAgIGZvciB0ZXN0X3R5cGUsIGNsc19uYW1lIGlu
IGRhdGFbImV4ZWN1dG9yIl0uaXRlcml0ZW1zKCk6CisgICAgICAgIGNscyA9IGdldGF0dHIobW9k
dWxlLCBjbHNfbmFtZSkKKyAgICAgICAgZXhlY3V0b3JfY2xhc3Nlc1t0ZXN0X3R5cGVdID0gY2xz
CisKKyAgICByZXR1cm4gKGNoZWNrX2FyZ3MsCisgICAgICAgICAgICBicm93c2VyX2NscywgYnJv
d3Nlcl9rd2FyZ3MsCisgICAgICAgICAgICBleGVjdXRvcl9jbGFzc2VzLCBleGVjdXRvcl9rd2Fy
Z3MsCisgICAgICAgICAgICBlbnZfb3B0aW9ucywgZW52X2V4dHJhcywgcnVuX2luZm9fZXh0cmFz
KQorCisKK2RlZiBsb2FkX3Byb2R1Y3RfdXBkYXRlKGNvbmZpZywgcHJvZHVjdCk6CisgICAgIiIi
UmV0dXJuIHR1cGxlIG9mIChwcm9wZXJ0eV9vcmRlciwgYm9vbGVhbl9wcm9wZXJ0aWVzKSBpbmRp
Y2F0aW5nIHRoZQorICAgIHJ1bl9pbmZvIHByb3BlcnRpZXMgdG8gdXNlIHdoZW4gY29uc3RydWN0
aW5nIHRoZSBleHBlY3RhdGlvbiBkYXRhIGZvcgorICAgIHRoaXMgcHJvZHVjdC4gTm9uZSBmb3Ig
ZWl0aGVyIGtleSBpbmRpY2F0ZXMgdGhhdCB0aGUgZGVmYXVsdCBrZXlzCisgICAgYXBwcm9wcmlh
dGUgZm9yIGRpc3Rpbmd1aXNoaW5nIGJhc2VkIG9uIHBsYXRmb3JtIHdpbGwgYmUgdXNlZC4iIiIK
KworICAgIG1vZHVsZSA9IHByb2R1Y3RfbW9kdWxlKGNvbmZpZywgcHJvZHVjdCkKKyAgICBkYXRh
ID0gbW9kdWxlLl9fd3B0cnVubmVyX18KKworICAgIHVwZGF0ZV9wcm9wZXJ0aWVzID0gKGdldGF0
dHIobW9kdWxlLCBkYXRhWyJ1cGRhdGVfcHJvcGVydGllcyJdKSgpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgInVwZGF0ZV9wcm9wZXJ0aWVzIiBpbiBkYXRhIGVsc2UgKE5vbmUsIE5vbmUp
KQorCisgICAgcmV0dXJuIHVwZGF0ZV9wcm9wZXJ0aWVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvcmVkdWNlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3JlZHVjZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjQ1ZWUz
NjAyYjk3ZTE0NDYzYTU3Yzg0ZjEzMmZiNGQ2NDRmOGY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3JlZHVjZS5weQpAQCAtMCwwICsxLDE5MyBAQAoraW1wb3J0IHN5cworaW1wb3J0
IHRlbXBmaWxlCitmcm9tIGNTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8KK2Zyb20gY29sbGVjdGlv
bnMgaW1wb3J0IGRlZmF1bHRkaWN0CisKK2ltcG9ydCB3cHRydW5uZXIKK2ltcG9ydCB3cHR0ZXN0
CisKK2Zyb20gbW96bG9nIGltcG9ydCBjb21tYW5kbGluZSwgcmVhZGVyCisKK2xvZ2dlciA9IE5v
bmUKKworCitkZWYgc2V0dXBfbG9nZ2luZyhhcmdzLCBkZWZhdWx0cyk6CisgICAgZ2xvYmFsIGxv
Z2dlcgorICAgIGxvZ2dlciA9IGNvbW1hbmRsaW5lLnNldHVwX2xvZ2dpbmcoIndlYi1wbGF0Zm9y
bS10ZXN0cy11bnN0YWJsZSIsIGFyZ3MsIGRlZmF1bHRzKQorICAgIHdwdHJ1bm5lci5zZXR1cF9z
dGRsaWJfbG9nZ2VyKCkKKworICAgIGZvciBuYW1lIGluIGFyZ3Mua2V5cygpOgorICAgICAgICBp
ZiBuYW1lLnN0YXJ0c3dpdGgoImxvZ18iKToKKyAgICAgICAgICAgIGFyZ3MucG9wKG5hbWUpCisK
KyAgICByZXR1cm4gbG9nZ2VyCisKKworZGVmIGdyb3VwKGl0ZW1zLCBzaXplKToKKyAgICBydiA9
IFtdCisgICAgaSA9IDAKKyAgICB3aGlsZSBpIDwgbGVuKGl0ZW1zKToKKyAgICAgICAgcnYuYXBw
ZW5kKGl0ZW1zW2k6aSArIHNpemVdKQorICAgICAgICBpICs9IHNpemUKKworICAgIHJldHVybiBy
dgorCisKK2RlZiBuZXh0X3Bvd2VyX29mX3R3byhudW0pOgorICAgIHJ2ID0gMQorICAgIHdoaWxl
IHJ2IDwgbnVtOgorICAgICAgICBydiA9IHJ2IDw8IDEKKyAgICByZXR1cm4gcnYKKworCitjbGFz
cyBSZWR1Y2VyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRhcmdldCwgKiprd2Fy
Z3MpOgorICAgICAgICBzZWxmLnRhcmdldCA9IHRhcmdldAorCisgICAgICAgIHNlbGYudGVzdF90
eXBlID0ga3dhcmdzWyJ0ZXN0X3R5cGVzIl1bMF0KKyAgICAgICAgcnVuX2luZm8gPSB3cHR0ZXN0
LmdldF9ydW5faW5mbyhrd2FyZ3NbIm1ldGFkYXRhX3Jvb3QiXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbInByb2R1Y3QiXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1Zz1GYWxzZSkKKyAgICAgICAgdGVzdF9maWx0
ZXIgPSB3cHRydW5uZXIuVGVzdEZpbHRlcihpbmNsdWRlPWt3YXJnc1siaW5jbHVkZSJdKQorICAg
ICAgICBzZWxmLnRlc3RfbG9hZGVyID0gd3B0cnVubmVyLlRlc3RMb2FkZXIoa3dhcmdzWyJ0ZXN0
c19yb290Il0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBrd2FyZ3NbIm1ldGFkYXRhX3Jvb3QiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFtzZWxmLnRlc3RfdHlwZV0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X2ZpbGVyPXRlc3RfZmlsdGVy
KQorICAgICAgICBpZiBrd2FyZ3NbInJlcGVhdCJdID09IDE6CisgICAgICAgICAgICBsb2dnZXIu
Y3JpdGljYWwoIk5lZWQgdG8gc3BlY2lmeSAtLXJlcGVhdCB3aXRoIG1vcmUgdGhhbiBvbmUgcmVw
ZXRpdGlvbiIpCisgICAgICAgICAgICBzeXMuZXhpdCgxKQorICAgICAgICBzZWxmLmt3YXJncyA9
IGt3YXJncworCisgICAgZGVmIHJ1bihzZWxmKToKKyAgICAgICAgYWxsX3Rlc3RzID0gc2VsZi5n
ZXRfaW5pdGlhbF90ZXN0cygpCisKKyAgICAgICAgdGVzdHMgPSBhbGxfdGVzdHNbOi0xXQorICAg
ICAgICB0YXJnZXRfdGVzdCA9IFthbGxfdGVzdHNbLTFdXQorCisgICAgICAgIGlmIHNlbGYudW5z
dGFibGUodGFyZ2V0X3Rlc3QpOgorICAgICAgICAgICAgcmV0dXJuIHRhcmdldF90ZXN0CisKKyAg
ICAgICAgaWYgbm90IHNlbGYudW5zdGFibGUoYWxsX3Rlc3RzKToKKyAgICAgICAgICAgIHJldHVy
biBbXQorCisgICAgICAgIGNodW5rX3NpemUgPSBuZXh0X3Bvd2VyX29mX3R3byhpbnQobGVuKHRl
c3RzKSAvIDIpKQorICAgICAgICBsb2dnZXIuZGVidWcoIlVzaW5nIGNodW5rIHNpemUgJWkiICUg
Y2h1bmtfc2l6ZSkKKworICAgICAgICB3aGlsZSBjaHVua19zaXplID49IDE6CisgICAgICAgICAg
ICBsb2dnZXIuZGVidWcoIiVpIHRlc3RzIHJlbWFpbiIgJSBsZW4odGVzdHMpKQorICAgICAgICAg
ICAgY2h1bmtzID0gZ3JvdXAodGVzdHMsIGNodW5rX3NpemUpCisgICAgICAgICAgICBjaHVua19y
ZXN1bHRzID0gW05vbmVdICogbGVuKGNodW5rcykKKworICAgICAgICAgICAgZm9yIGksIGNodW5r
IGluIGVudW1lcmF0ZShjaHVua3MpOgorICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZygiUnVu
bmluZyBjaHVuayAlaS8laSBvZiBzaXplICVpIiAlIChpICsgMSwgbGVuKGNodW5rcyksIGNodW5r
X3NpemUpKQorICAgICAgICAgICAgICAgIHRyaWFsX3Rlc3RzID0gW10KKyAgICAgICAgICAgICAg
ICBjaHVua19zdHIgPSAiIgorICAgICAgICAgICAgICAgIGZvciBqLCBpbmNfY2h1bmsgaW4gZW51
bWVyYXRlKGNodW5rcyk6CisgICAgICAgICAgICAgICAgICAgIGlmIGkgIT0gaiBhbmQgY2h1bmtf
cmVzdWx0c1tqXSBpbiAoTm9uZSwgRmFsc2UpOgorICAgICAgICAgICAgICAgICAgICAgICAgY2h1
bmtfc3RyICs9ICIrIgorICAgICAgICAgICAgICAgICAgICAgICAgdHJpYWxfdGVzdHMuZXh0ZW5k
KGluY19jaHVuaykKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGNodW5rX3N0ciArPSAiLSIKKyAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoIlVz
aW5nIGNodW5rcyAlcyIgJSBjaHVua19zdHIpCisgICAgICAgICAgICAgICAgdHJpYWxfdGVzdHMu
ZXh0ZW5kKHRhcmdldF90ZXN0KQorCisgICAgICAgICAgICAgICAgY2h1bmtfcmVzdWx0c1tpXSA9
IHNlbGYudW5zdGFibGUodHJpYWxfdGVzdHMpCisKKyAgICAgICAgICAgICAgICAjIGlmIGkgPT0g
bGVuKGNodW5rcykgLSAyIGFuZCBhbGwoaXRlbSBpcyBGYWxzZSBmb3IgaXRlbSBpbiBjaHVua19y
ZXN1bHRzWzotMV0pOgorICAgICAgICAgICAgICAgICMgRGFuZ2Vyb3VzPyBvcHRpbWlzYXRpb24g
dGhhdCBpZiB5b3UgZ290IHN0YWJpbGl0eSBmb3IgMC4uTi0xIGNodW5rcworICAgICAgICAgICAg
ICAgICMgaXQgbXVzdCBiZSB1bnN0YWJsZSB3aXRoIHRoZSBOdGggY2h1bmsKKyAgICAgICAgICAg
ICAgICAjICAgICBjaHVua19yZXN1bHRzW2krMV0gPSBUcnVlCisgICAgICAgICAgICAgICAgIyAg
ICAgY29udGludWUKKworICAgICAgICAgICAgbmV3X3Rlc3RzID0gW10KKyAgICAgICAgICAgIGtl
ZXBfc3RyID0gIiIKKyAgICAgICAgICAgIGZvciByZXN1bHQsIGNodW5rIGluIHppcChjaHVua19y
ZXN1bHRzLCBjaHVua3MpOgorICAgICAgICAgICAgICAgIGlmIG5vdCByZXN1bHQ6CisgICAgICAg
ICAgICAgICAgICAgIGtlZXBfc3RyICs9ICIrIgorICAgICAgICAgICAgICAgICAgICBuZXdfdGVz
dHMuZXh0ZW5kKGNodW5rKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg
ICAgIGtlZXBfc3RyICs9ICItIgorCisgICAgICAgICAgICBsb2dnZXIuZGVidWcoIktlZXBpbmcg
Y2h1bmtzICVzIiAlIGtlZXBfc3RyKQorCisgICAgICAgICAgICB0ZXN0cyA9IG5ld190ZXN0cwor
CisgICAgICAgICAgICBjaHVua19zaXplID0gaW50KGNodW5rX3NpemUgLyAyKQorCisgICAgICAg
IHJldHVybiB0ZXN0cyArIHRhcmdldF90ZXN0CisKKyAgICBkZWYgdW5zdGFibGUoc2VsZiwgdGVz
dHMpOgorICAgICAgICBsb2dnZXIuZGVidWcoIlJ1bm5pbmcgd2l0aCAlaSB0ZXN0cyIgJSBsZW4o
dGVzdHMpKQorCisgICAgICAgIHNlbGYudGVzdF9sb2FkZXIudGVzdHMgPSB7c2VsZi50ZXN0X3R5
cGU6IHRlc3RzfQorCisgICAgICAgIHN0ZG91dCwgc3RkZXJyID0gc3lzLnN0ZG91dCwgc3lzLnN0
ZGVycgorICAgICAgICBzeXMuc3Rkb3V0ID0gU3RyaW5nSU8oKQorICAgICAgICBzeXMuc3RkZXJy
ID0gU3RyaW5nSU8oKQorCisgICAgICAgIHdpdGggdGVtcGZpbGUuTmFtZWRUZW1wb3JhcnlGaWxl
KCkgYXMgZjoKKyAgICAgICAgICAgIGFyZ3MgPSBzZWxmLmt3YXJncy5jb3B5KCkKKyAgICAgICAg
ICAgIGFyZ3NbImxvZ19yYXciXSA9IFtmXQorICAgICAgICAgICAgYXJnc1siY2FwdHVyZV9zdGRp
byJdID0gRmFsc2UKKyAgICAgICAgICAgIHdwdHJ1bm5lci5zZXR1cF9sb2dnaW5nKGFyZ3MsIHt9
KQorICAgICAgICAgICAgd3B0cnVubmVyLnJ1bl90ZXN0cyh0ZXN0X2xvYWRlcj1zZWxmLnRlc3Rf
bG9hZGVyLCAqKmFyZ3MpCisgICAgICAgICAgICB3cHRydW5uZXIubG9nZ2VyLnJlbW92ZV9oYW5k
bGVyKHdwdHJ1bm5lci5sb2dnZXIuaGFuZGxlcnNbMF0pCisgICAgICAgICAgICBpc191bnN0YWJs
ZSA9IHNlbGYubG9nX2lzX3Vuc3RhYmxlKGYpCisKKyAgICAgICAgICAgIHN5cy5zdGRvdXQsIHN5
cy5zdGRlcnIgPSBzdGRvdXQsIHN0ZGVycgorCisgICAgICAgIGxvZ2dlci5kZWJ1ZygiUmVzdWx0
IHdhcyB1bnN0YWJsZSB3aXRoIGNodW5rIHJlbW92ZWQiCisgICAgICAgICAgICAgICAgICAgICBp
ZiBpc191bnN0YWJsZSBlbHNlICJzdGFibGUiKQorCisgICAgICAgIHJldHVybiBpc191bnN0YWJs
ZQorCisgICAgZGVmIGxvZ19pc191bnN0YWJsZShzZWxmLCBsb2dfZik6CisgICAgICAgIGxvZ19m
LnNlZWsoMCkKKworICAgICAgICBzdGF0dXNlcyA9IGRlZmF1bHRkaWN0KHNldCkKKworICAgICAg
ICBkZWYgaGFuZGxlX3N0YXR1cyhpdGVtKToKKyAgICAgICAgICAgIGlmIGl0ZW1bInRlc3QiXSA9
PSBzZWxmLnRhcmdldDoKKyAgICAgICAgICAgICAgICBzdGF0dXNlc1tpdGVtWyJzdWJ0ZXN0Il1d
LmFkZChpdGVtWyJzdGF0dXMiXSkKKworICAgICAgICBkZWYgaGFuZGxlX2VuZChpdGVtKToKKyAg
ICAgICAgICAgIGlmIGl0ZW1bInRlc3QiXSA9PSBzZWxmLnRhcmdldDoKKyAgICAgICAgICAgICAg
ICBzdGF0dXNlc1tOb25lXS5hZGQoaXRlbVsic3RhdHVzIl0pCisKKyAgICAgICAgcmVhZGVyLmVh
Y2hfbG9nKHJlYWRlci5yZWFkKGxvZ19mKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsidGVz
dF9zdGF0dXMiOiBoYW5kbGVfc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0
X2VuZCI6IGhhbmRsZV9lbmR9KQorCisgICAgICAgIGxvZ2dlci5kZWJ1ZyhzdHIoc3RhdHVzZXMp
KQorCisgICAgICAgIGlmIG5vdCBzdGF0dXNlczoKKyAgICAgICAgICAgIGxvZ2dlci5lcnJvcigi
RGlkbid0IGdldCBhbnkgdXNlZnVsIG91dHB1dCBmcm9tIHdwdHJ1bm5lciIpCisgICAgICAgICAg
ICBsb2dfZi5zZWVrKDApCisgICAgICAgICAgICBmb3IgaXRlbSBpbiByZWFkZXIucmVhZChsb2df
Zik6CisgICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKGl0ZW0pCisgICAgICAgICAgICByZXR1
cm4gTm9uZQorCisgICAgICAgIHJldHVybiBhbnkobGVuKGl0ZW0pID4gMSBmb3IgaXRlbSBpbiBz
dGF0dXNlcy5pdGVydmFsdWVzKCkpCisKKyAgICBkZWYgZ2V0X2luaXRpYWxfdGVzdHMoc2VsZik6
CisgICAgICAgICMgTmVlZCB0byBwYXNzIGluIGFyZ3VtZW50cworCisgICAgICAgIGFsbF90ZXN0
cyA9IHNlbGYudGVzdF9sb2FkZXIudGVzdHNbc2VsZi50ZXN0X3R5cGVdCisgICAgICAgIHRlc3Rz
ID0gW10KKyAgICAgICAgZm9yIGl0ZW0gaW4gYWxsX3Rlc3RzOgorICAgICAgICAgICAgdGVzdHMu
YXBwZW5kKGl0ZW0pCisgICAgICAgICAgICBpZiBpdGVtLnVybCA9PSBzZWxmLnRhcmdldDoKKyAg
ICAgICAgICAgICAgICBicmVhaworCisgICAgICAgIGxvZ2dlci5kZWJ1ZygiU3RhcnRpbmcgd2l0
aCB0ZXN0czogJXMiICUgKCJcbiIuam9pbihpdGVtLmlkIGZvciBpdGVtIGluIHRlc3RzKSkpCisK
KyAgICAgICAgcmV0dXJuIHRlc3RzCisKKworZGVmIGRvX3JlZHVjZSgqKmt3YXJncyk6CisgICAg
dGFyZ2V0ID0ga3dhcmdzLnBvcCgidGFyZ2V0IikKKyAgICByZWR1Y2VyID0gUmVkdWNlcih0YXJn
ZXQsICoqa3dhcmdzKQorCisgICAgdW5zdGFibGVfc2V0ID0gcmVkdWNlci5ydW4oKQorICAgIHJl
dHVybiB1bnN0YWJsZV9zZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9zdGFiaWxpdHkucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvc3RhYmlsaXR5LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxNzA5YzU3NDlhNDMzNTFl
MDYxMjA1ZThmZTQwOTc2Y2NmMTVhNzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
c3RhYmlsaXR5LnB5CkBAIC0wLDAgKzEsMjc5IEBACitpbXBvcnQgY29weQoraW1wb3J0IGZ1bmN0
b29scworaW1wb3J0IGltcAoraW1wb3J0IGlvCitpbXBvcnQgb3MKK2Zyb20gY29sbGVjdGlvbnMg
aW1wb3J0IE9yZGVyZWREaWN0LCBkZWZhdWx0ZGljdAorZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0
ZXRpbWUKKworZnJvbSBtb3psb2cgaW1wb3J0IHJlYWRlcgorZnJvbSBtb3psb2cuZm9ybWF0dGVy
cyBpbXBvcnQgSlNPTkZvcm1hdHRlcgorZnJvbSBtb3psb2cuaGFuZGxlcnMgaW1wb3J0IEJhc2VI
YW5kbGVyLCBTdHJlYW1IYW5kbGVyLCBMb2dMZXZlbEZpbHRlcgorCitoZXJlID0gb3MucGF0aC5k
aXJuYW1lKF9fZmlsZV9fKQorbG9jYWxwYXRocyA9IGltcC5sb2FkX3NvdXJjZSgibG9jYWxwYXRo
cyIsIG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oaGVyZSwgb3MucGFyZGlyLCBvcy5wYXJk
aXIsICJsb2NhbHBhdGhzLnB5IikpKQorZnJvbSB3cHQubWFya2Rvd24gaW1wb3J0IG1hcmtkb3du
X2FkanVzdCwgdGFibGUKKworCitjbGFzcyBMb2dBY3Rpb25GaWx0ZXIoQmFzZUhhbmRsZXIpOgor
CisgICAgIiIiSGFuZGxlciB0aGF0IGZpbHRlcnMgb3V0IG1lc3NhZ2VzIG5vdCBvZiBhIGdpdmVu
IHNldCBvZiBhY3Rpb25zLgorCisgICAgU3ViY2xhc3NlcyBCYXNlSGFuZGxlci4KKworICAgIDpw
YXJhbSBpbm5lcjogSGFuZGxlciB0byB1c2UgZm9yIG1lc3NhZ2VzIHRoYXQgcGFzcyB0aGlzIGZp
bHRlcgorICAgIDpwYXJhbSBhY3Rpb25zOiBMaXN0IG9mIGFjdGlvbnMgZm9yIHdoaWNoIHRvIGZp
cmUgdGhlIGhhbmRsZXIKKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBpbm5lciwg
YWN0aW9ucyk6CisgICAgICAgICIiIkV4dGVuZCBCYXNlSGFuZGxlciBhbmQgc2V0IGlubmVyIGFu
ZCBhY3Rpb25zIHByb3BzIG9uIHNlbGYuIiIiCisgICAgICAgIEJhc2VIYW5kbGVyLl9faW5pdF9f
KHNlbGYsIGlubmVyKQorICAgICAgICBzZWxmLmlubmVyID0gaW5uZXIKKyAgICAgICAgc2VsZi5h
Y3Rpb25zID0gYWN0aW9ucworCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGl0ZW0pOgorICAgICAg
ICAiIiJJbnZva2UgaGFuZGxlciBpZiBhY3Rpb24gaXMgaW4gbGlzdCBwYXNzZWQgYXMgY29uc3Ry
dWN0b3IgcGFyYW0uIiIiCisgICAgICAgIGlmIGl0ZW1bImFjdGlvbiJdIGluIHNlbGYuYWN0aW9u
czoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmlubmVyKGl0ZW0pCisKKworY2xhc3MgTG9nSGFu
ZGxlcihyZWFkZXIuTG9nSGFuZGxlcik6CisKKyAgICAiIiJIYW5kbGUgdXBkYXRpbmcgdGVzdCBh
bmQgc3VidGVzdCBzdGF0dXMgaW4gbG9nLgorCisgICAgU3ViY2xhc3NlcyByZWFkZXIuTG9nSGFu
ZGxlci4KKyAgICAiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHNlbGYucmVz
dWx0cyA9IE9yZGVyZWREaWN0KCkKKworICAgIGRlZiBmaW5kX29yX2NyZWF0ZV90ZXN0KHNlbGYs
IGRhdGEpOgorICAgICAgICB0ZXN0X25hbWUgPSBkYXRhWyJ0ZXN0Il0KKyAgICAgICAgaWYgc2Vs
Zi5yZXN1bHRzLmdldCh0ZXN0X25hbWUpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVzdWx0
c1t0ZXN0X25hbWVdCisKKyAgICAgICAgdGVzdCA9IHsKKyAgICAgICAgICAgICJzdWJ0ZXN0cyI6
IE9yZGVyZWREaWN0KCksCisgICAgICAgICAgICAic3RhdHVzIjogZGVmYXVsdGRpY3QoaW50KQor
ICAgICAgICB9CisgICAgICAgIHNlbGYucmVzdWx0c1t0ZXN0X25hbWVdID0gdGVzdAorICAgICAg
ICByZXR1cm4gdGVzdAorCisgICAgZGVmIGZpbmRfb3JfY3JlYXRlX3N1YnRlc3Qoc2VsZiwgZGF0
YSk6CisgICAgICAgIHRlc3QgPSBzZWxmLmZpbmRfb3JfY3JlYXRlX3Rlc3QoZGF0YSkKKyAgICAg
ICAgc3VidGVzdF9uYW1lID0gZGF0YVsic3VidGVzdCJdCisKKyAgICAgICAgaWYgdGVzdFsic3Vi
dGVzdHMiXS5nZXQoc3VidGVzdF9uYW1lKToKKyAgICAgICAgICAgIHJldHVybiB0ZXN0WyJzdWJ0
ZXN0cyJdW3N1YnRlc3RfbmFtZV0KKworICAgICAgICBzdWJ0ZXN0ID0geworICAgICAgICAgICAg
InN0YXR1cyI6IGRlZmF1bHRkaWN0KGludCksCisgICAgICAgICAgICAibWVzc2FnZXMiOiBzZXQo
KQorICAgICAgICB9CisgICAgICAgIHRlc3RbInN1YnRlc3RzIl1bc3VidGVzdF9uYW1lXSA9IHN1
YnRlc3QKKworICAgICAgICByZXR1cm4gc3VidGVzdAorCisgICAgZGVmIHRlc3Rfc3RhdHVzKHNl
bGYsIGRhdGEpOgorICAgICAgICBzdWJ0ZXN0ID0gc2VsZi5maW5kX29yX2NyZWF0ZV9zdWJ0ZXN0
KGRhdGEpCisgICAgICAgIHN1YnRlc3RbInN0YXR1cyJdW2RhdGFbInN0YXR1cyJdXSArPSAxCisg
ICAgICAgIGlmIGRhdGEuZ2V0KCJtZXNzYWdlIik6CisgICAgICAgICAgICBzdWJ0ZXN0WyJtZXNz
YWdlcyJdLmFkZChkYXRhWyJtZXNzYWdlIl0pCisKKyAgICBkZWYgdGVzdF9lbmQoc2VsZiwgZGF0
YSk6CisgICAgICAgIHRlc3QgPSBzZWxmLmZpbmRfb3JfY3JlYXRlX3Rlc3QoZGF0YSkKKyAgICAg
ICAgdGVzdFsic3RhdHVzIl1bZGF0YVsic3RhdHVzIl1dICs9IDEKKworCitkZWYgaXNfaW5jb25z
aXN0ZW50KHJlc3VsdHNfZGljdCwgaXRlcmF0aW9ucyk6CisgICAgIiIiUmV0dXJuIHdoZXRoZXIg
b3Igbm90IGEgc2luZ2xlIHRlc3QgaXMgaW5jb25zaXN0ZW50LiIiIgorICAgIGlmICdTS0lQJyBp
biByZXN1bHRzX2RpY3Q6CisgICAgICAgIHJldHVybiBGYWxzZQorICAgIHJldHVybiBsZW4ocmVz
dWx0c19kaWN0KSA+IDEgb3Igc3VtKHJlc3VsdHNfZGljdC52YWx1ZXMoKSkgIT0gaXRlcmF0aW9u
cworCisKK2RlZiBwcm9jZXNzX3Jlc3VsdHMobG9nLCBpdGVyYXRpb25zKToKKyAgICAiIiJQcm9j
ZXNzIHRlc3QgbG9nIGFuZCByZXR1cm4gb3ZlcmFsbCByZXN1bHRzIGFuZCBsaXN0IG9mIGluY29u
c2lzdGVudCB0ZXN0cy4iIiIKKyAgICBpbmNvbnNpc3RlbnQgPSBbXQorICAgIGhhbmRsZXIgPSBM
b2dIYW5kbGVyKCkKKyAgICByZWFkZXIuaGFuZGxlX2xvZyhyZWFkZXIucmVhZChsb2cpLCBoYW5k
bGVyKQorICAgIHJlc3VsdHMgPSBoYW5kbGVyLnJlc3VsdHMKKyAgICBmb3IgdGVzdF9uYW1lLCB0
ZXN0IGluIHJlc3VsdHMuaXRlcml0ZW1zKCk6CisgICAgICAgIGlmIGlzX2luY29uc2lzdGVudCh0
ZXN0WyJzdGF0dXMiXSwgaXRlcmF0aW9ucyk6CisgICAgICAgICAgICBpbmNvbnNpc3RlbnQuYXBw
ZW5kKCh0ZXN0X25hbWUsIE5vbmUsIHRlc3RbInN0YXR1cyJdLCBbXSkpCisgICAgICAgIGZvciBz
dWJ0ZXN0X25hbWUsIHN1YnRlc3QgaW4gdGVzdFsic3VidGVzdHMiXS5pdGVyaXRlbXMoKToKKyAg
ICAgICAgICAgIGlmIGlzX2luY29uc2lzdGVudChzdWJ0ZXN0WyJzdGF0dXMiXSwgaXRlcmF0aW9u
cyk6CisgICAgICAgICAgICAgICAgaW5jb25zaXN0ZW50LmFwcGVuZCgodGVzdF9uYW1lLCBzdWJ0
ZXN0X25hbWUsIHN1YnRlc3RbInN0YXR1cyJdLCBzdWJ0ZXN0WyJtZXNzYWdlcyJdKSkKKyAgICBy
ZXR1cm4gcmVzdWx0cywgaW5jb25zaXN0ZW50CisKKworZGVmIGVycl9zdHJpbmcocmVzdWx0c19k
aWN0LCBpdGVyYXRpb25zKToKKyAgICAiIiJDcmVhdGUgYW5kIHJldHVybiBzdHJpbmcgd2l0aCBl
cnJvcnMgZnJvbSB0ZXN0IHJ1bi4iIiIKKyAgICBydiA9IFtdCisgICAgdG90YWxfcmVzdWx0cyA9
IHN1bShyZXN1bHRzX2RpY3QudmFsdWVzKCkpCisgICAgZm9yIGtleSwgdmFsdWUgaW4gc29ydGVk
KHJlc3VsdHNfZGljdC5pdGVtcygpKToKKyAgICAgICAgcnYuYXBwZW5kKCIlcyVzIiAlCisgICAg
ICAgICAgICAgICAgICAoa2V5LCAiOiAlcy8lcyIgJSAodmFsdWUsIGl0ZXJhdGlvbnMpIGlmIHZh
bHVlICE9IGl0ZXJhdGlvbnMgZWxzZSAiIikpCisgICAgaWYgdG90YWxfcmVzdWx0cyA8IGl0ZXJh
dGlvbnM6CisgICAgICAgIHJ2LmFwcGVuZCgiTUlTU0lORzogJXMvJXMiICUgKGl0ZXJhdGlvbnMg
LSB0b3RhbF9yZXN1bHRzLCBpdGVyYXRpb25zKSkKKyAgICBydiA9ICIsICIuam9pbihydikKKyAg
ICBpZiBpc19pbmNvbnNpc3RlbnQocmVzdWx0c19kaWN0LCBpdGVyYXRpb25zKToKKyAgICAgICAg
cnYgPSAiKiolcyoqIiAlIHJ2CisgICAgcmV0dXJuIHJ2CisKKworZGVmIHdyaXRlX2luY29uc2lz
dGVudChsb2csIGluY29uc2lzdGVudCwgaXRlcmF0aW9ucyk6CisgICAgIiIiT3V0cHV0IGluY29u
c2lzdGVudCB0ZXN0cyB0byBsb2dnZXIuZXJyb3IuIiIiCisgICAgbG9nKCIjIyBVbnN0YWJsZSBy
ZXN1bHRzICMjXG4iKQorICAgIHN0cmluZ3MgPSBbKAorICAgICAgICAiYCVzYCIgJSBtYXJrZG93
bl9hZGp1c3QodGVzdCksCisgICAgICAgICgiYCVzYCIgJSBtYXJrZG93bl9hZGp1c3Qoc3VidGVz
dCkpIGlmIHN1YnRlc3QgZWxzZSAiIiwKKyAgICAgICAgZXJyX3N0cmluZyhyZXN1bHRzLCBpdGVy
YXRpb25zKSwKKyAgICAgICAgKCJgJXNgIiAlIG1hcmtkb3duX2FkanVzdCgiOyIuam9pbihtZXNz
YWdlcykpKSBpZiBsZW4obWVzc2FnZXMpIGVsc2UgIiIpCisgICAgICAgIGZvciB0ZXN0LCBzdWJ0
ZXN0LCByZXN1bHRzLCBtZXNzYWdlcyBpbiBpbmNvbnNpc3RlbnRdCisgICAgdGFibGUoWyJUZXN0
IiwgIlN1YnRlc3QiLCAiUmVzdWx0cyIsICJNZXNzYWdlcyJdLCBzdHJpbmdzLCBsb2cpCisKKwor
ZGVmIHdyaXRlX3Jlc3VsdHMobG9nLCByZXN1bHRzLCBpdGVyYXRpb25zLCBwcl9udW1iZXI9Tm9u
ZSwgdXNlX2RldGFpbHM9RmFsc2UpOgorICAgIGxvZygiIyMgQWxsIHJlc3VsdHMgIyNcbiIpCisg
ICAgaWYgdXNlX2RldGFpbHM6CisgICAgICAgIGxvZygiPGRldGFpbHM+XG4iKQorICAgICAgICBs
b2coIjxzdW1tYXJ5PiVpICVzIHJhbjwvc3VtbWFyeT5cblxuIiAlIChsZW4ocmVzdWx0cyksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0cyIg
aWYgbGVuKHJlc3VsdHMpID4gMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBlbHNlICJ0ZXN0IikpCisKKyAgICBmb3IgdGVzdF9uYW1lLCB0ZXN0IGlu
IHJlc3VsdHMuaXRlcml0ZW1zKCk6CisgICAgICAgIGJhc2V1cmwgPSAiaHR0cDovL3czYy10ZXN0
Lm9yZy9zdWJtaXNzaW9ucyIKKyAgICAgICAgaWYgImh0dHBzIiBpbiBvcy5wYXRoLnNwbGl0ZXh0
KHRlc3RfbmFtZSlbMF0uc3BsaXQoIi4iKVsxOl06CisgICAgICAgICAgICBiYXNldXJsID0gImh0
dHBzOi8vdzNjLXRlc3Qub3JnL3N1Ym1pc3Npb25zIgorICAgICAgICB0aXRsZSA9IHRlc3RfbmFt
ZQorICAgICAgICBpZiB1c2VfZGV0YWlsczoKKyAgICAgICAgICAgIGxvZygiPGRldGFpbHM+XG4i
KQorICAgICAgICAgICAgaWYgcHJfbnVtYmVyOgorICAgICAgICAgICAgICAgIHRpdGxlID0gIjxh
IGhyZWY9XCIlcy8lcyVzXCI+JXM8L2E+IiAlIChiYXNldXJsLCBwcl9udW1iZXIsIHRlc3RfbmFt
ZSwgdGl0bGUpCisgICAgICAgICAgICBsb2coJzxzdW1tYXJ5PiVzPC9zdW1tYXJ5PlxuXG4nICUg
dGl0bGUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBsb2coIiMjIyAlcyAjIyMiICUgdGl0
bGUpCisgICAgICAgIHN0cmluZ3MgPSBbKCIiLCBlcnJfc3RyaW5nKHRlc3RbInN0YXR1cyJdLCBp
dGVyYXRpb25zKSwgIiIpXQorCisgICAgICAgIHN0cmluZ3MuZXh0ZW5kKCgoCisgICAgICAgICAg
ICAoImAlc2AiICUgbWFya2Rvd25fYWRqdXN0KHN1YnRlc3RfbmFtZSkpIGlmIHN1YnRlc3QgZWxz
ZSAiIiwKKyAgICAgICAgICAgIGVycl9zdHJpbmcoc3VidGVzdFsic3RhdHVzIl0sIGl0ZXJhdGlv
bnMpLAorICAgICAgICAgICAgKCJgJXNgIiAlIG1hcmtkb3duX2FkanVzdCgnOycuam9pbihzdWJ0
ZXN0WyJtZXNzYWdlcyJdKSkpIGlmIGxlbihzdWJ0ZXN0WyJtZXNzYWdlcyJdKSBlbHNlICIiKQor
ICAgICAgICAgICAgZm9yIHN1YnRlc3RfbmFtZSwgc3VidGVzdCBpbiB0ZXN0WyJzdWJ0ZXN0cyJd
Lml0ZW1zKCkpKQorICAgICAgICB0YWJsZShbIlN1YnRlc3QiLCAiUmVzdWx0cyIsICJNZXNzYWdl
cyJdLCBzdHJpbmdzLCBsb2cpCisgICAgICAgIGlmIHVzZV9kZXRhaWxzOgorICAgICAgICAgICAg
bG9nKCI8L2RldGFpbHM+XG4iKQorCisgICAgaWYgdXNlX2RldGFpbHM6CisgICAgICAgIGxvZygi
PC9kZXRhaWxzPlxuIikKKworCitkZWYgcnVuX3N0ZXAobG9nZ2VyLCBpdGVyYXRpb25zLCByZXN0
YXJ0X2FmdGVyX2l0ZXJhdGlvbiwga3dhcmdzX2V4dHJhcywgKiprd2FyZ3MpOgorICAgIGltcG9y
dCB3cHRydW5uZXIKKyAgICBrd2FyZ3MgPSBjb3B5LmRlZXBjb3B5KGt3YXJncykKKworICAgIGlm
IHJlc3RhcnRfYWZ0ZXJfaXRlcmF0aW9uOgorICAgICAgICBrd2FyZ3NbInJlcGVhdCJdID0gaXRl
cmF0aW9ucworICAgIGVsc2U6CisgICAgICAgIGt3YXJnc1sicmVydW4iXSA9IGl0ZXJhdGlvbnMK
KworICAgIGt3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdID0gRmFsc2UKKyAgICBrd2FyZ3MudXBk
YXRlKGt3YXJnc19leHRyYXMpCisKKyAgICBkZWYgd3JhcF9oYW5kbGVyKHgpOgorICAgICAgICB4
ID0gTG9nTGV2ZWxGaWx0ZXIoeCwgIldBUk5JTkciKQorICAgICAgICBpZiBub3Qga3dhcmdzWyJ2
ZXJpZnlfbG9nX2Z1bGwiXToKKyAgICAgICAgICAgIHggPSBMb2dBY3Rpb25GaWx0ZXIoeCwgWyJs
b2ciLCAicHJvY2Vzc19vdXRwdXQiXSkKKyAgICAgICAgcmV0dXJuIHgKKworICAgIGluaXRpYWxf
aGFuZGxlcnMgPSBsb2dnZXIuX3N0YXRlLmhhbmRsZXJzCisgICAgbG9nZ2VyLl9zdGF0ZS5oYW5k
bGVycyA9IFt3cmFwX2hhbmRsZXIoaGFuZGxlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZvciBoYW5kbGVyIGluIGluaXRpYWxfaGFuZGxlcnNdCisKKyAgICBsb2cgPSBpby5CeXRl
c0lPKCkKKyAgICAjIFNldHVwIGxvZ2dpbmcgZm9yIHdwdHJ1bm5lciB0aGF0IGtlZXBzIHByb2Nl
c3Mgb3V0cHV0IGFuZAorICAgICMgd2FybmluZysgbGV2ZWwgbG9ncyBvbmx5CisgICAgbG9nZ2Vy
LmFkZF9oYW5kbGVyKFN0cmVhbUhhbmRsZXIobG9nLCBKU09ORm9ybWF0dGVyKCkpKQorCisgICAg
d3B0cnVubmVyLnJ1bl90ZXN0cygqKmt3YXJncykKKworICAgIGxvZ2dlci5fc3RhdGUuaGFuZGxl
cnMgPSBpbml0aWFsX2hhbmRsZXJzCisgICAgbG9nZ2VyLl9zdGF0ZS5ydW5uaW5nX3Rlc3RzID0g
c2V0KCkKKyAgICBsb2dnZXIuX3N0YXRlLnN1aXRlX3N0YXJ0ZWQgPSBGYWxzZQorCisgICAgbG9n
LnNlZWsoMCkKKyAgICByZXN1bHRzLCBpbmNvbnNpc3RlbnQgPSBwcm9jZXNzX3Jlc3VsdHMobG9n
LCBpdGVyYXRpb25zKQorICAgIHJldHVybiByZXN1bHRzLCBpbmNvbnNpc3RlbnQsIGl0ZXJhdGlv
bnMKKworCitkZWYgZ2V0X3N0ZXBzKGxvZ2dlciwgcmVwZWF0X2xvb3AsIHJlcGVhdF9yZXN0YXJ0
LCBrd2FyZ3NfZXh0cmFzKToKKyAgICBzdGVwcyA9IFtdCisgICAgZm9yIGt3YXJnc19leHRyYSBp
biBrd2FyZ3NfZXh0cmFzOgorICAgICAgICBpZiBrd2FyZ3NfZXh0cmE6CisgICAgICAgICAgICBm
bGFnc19zdHJpbmcgPSAiIHdpdGggZmxhZ3MgJXMiICUgIiAiLmpvaW4oCisgICAgICAgICAgICAg
ICAgIiVzPSVzIiAlIGl0ZW0gZm9yIGl0ZW0gaW4ga3dhcmdzX2V4dHJhLml0ZXJpdGVtcygpKQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgZmxhZ3Nfc3RyaW5nID0gIiIKKworICAgICAgICBp
ZiByZXBlYXRfbG9vcDoKKyAgICAgICAgICAgIGRlc2MgPSAiUnVubmluZyB0ZXN0cyBpbiBhIGxv
b3AgJWQgdGltZXMlcyIgJSAocmVwZWF0X2xvb3AsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzX3N0cmluZykKKyAgICAgICAg
ICAgIHN0ZXBzLmFwcGVuZCgoZGVzYywgZnVuY3Rvb2xzLnBhcnRpYWwocnVuX3N0ZXAsIGxvZ2dl
ciwgcmVwZWF0X2xvb3AsIEZhbHNlLCBrd2FyZ3NfZXh0cmEpKSkKKworICAgICAgICBpZiByZXBl
YXRfcmVzdGFydDoKKyAgICAgICAgICAgIGRlc2MgPSAiUnVubmluZyB0ZXN0cyBpbiBhIGxvb3Ag
d2l0aCByZXN0YXJ0cyAlcyB0aW1lcyVzIiAlIChyZXBlYXRfcmVzdGFydCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmbGFnc19zdHJpbmcpCisgICAgICAgICAgICBzdGVwcy5hcHBlbmQoKGRlc2MsIGZ1bmN0
b29scy5wYXJ0aWFsKHJ1bl9zdGVwLCBsb2dnZXIsIHJlcGVhdF9yZXN0YXJ0LCBUcnVlLCBrd2Fy
Z3NfZXh0cmEpKSkKKworICAgIHJldHVybiBzdGVwcworCisKK2RlZiB3cml0ZV9zdW1tYXJ5KGxv
Z2dlciwgc3RlcF9yZXN1bHRzLCBmaW5hbF9yZXN1bHQpOgorICAgIGZvciBkZXNjLCByZXN1bHQg
aW4gc3RlcF9yZXN1bHRzOgorICAgICAgICBsb2dnZXIuaW5mbygnOjo6ICVzIDogJXMnICUgKGRl
c2MsIHJlc3VsdCkpCisgICAgbG9nZ2VyLmluZm8oJzo6OicpCisgICAgaWYgZmluYWxfcmVzdWx0
ID09ICJQQVNTIjoKKyAgICAgICAgbG9nID0gbG9nZ2VyLmluZm8KKyAgICBlbGlmIGZpbmFsX3Jl
c3VsdCA9PSAiVElNRU9VVCI6CisgICAgICAgIGxvZyA9IGxvZ2dlci53YXJuaW5nCisgICAgZWxz
ZToKKyAgICAgICAgbG9nID0gbG9nZ2VyLmVycm9yCisgICAgbG9nKCc6OjogVGVzdCB2ZXJpZmlj
YXRpb24gJXMnICUgZmluYWxfcmVzdWx0KQorCisgICAgbG9nZ2VyLmluZm8oJzo6OicpCisKKwor
ZGVmIGNoZWNrX3N0YWJpbGl0eShsb2dnZXIsIHJlcGVhdF9sb29wPTEwLCByZXBlYXRfcmVzdGFy
dD01LCBjaGFvc19tb2RlPVRydWUsIG1heF90aW1lPU5vbmUsCisgICAgICAgICAgICAgICAgICAg
IG91dHB1dF9yZXN1bHRzPVRydWUsICoqa3dhcmdzKToKKyAgICBrd2FyZ3NfZXh0cmFzID0gW3t9
XQorICAgIGlmIGNoYW9zX21vZGUgYW5kIGt3YXJnc1sicHJvZHVjdCJdID09ICJmaXJlZm94IjoK
KyAgICAgICAga3dhcmdzX2V4dHJhcy5hcHBlbmQoeyJjaGFvc19tb2RlX2ZsYWdzIjogM30pCisK
KyAgICBzdGVwcyA9IGdldF9zdGVwcyhsb2dnZXIsIHJlcGVhdF9sb29wLCByZXBlYXRfcmVzdGFy
dCwga3dhcmdzX2V4dHJhcykKKworICAgIHN0YXJ0X3RpbWUgPSBkYXRldGltZS5ub3coKQorICAg
IHN0ZXBfcmVzdWx0cyA9IFtdCisKKyAgICBmb3IgZGVzYywgc3RlcF9mdW5jIGluIHN0ZXBzOgor
ICAgICAgICBpZiBtYXhfdGltZSBhbmQgZGF0ZXRpbWUubm93KCkgLSBzdGFydF90aW1lID4gbWF4
X3RpbWU6CisgICAgICAgICAgICBsb2dnZXIuaW5mbygiOjo6IFRlc3QgdmVyaWZpY2F0aW9uIGlz
IHRha2luZyB0b28gbG9uZzogR2l2aW5nIHVwISIpCisgICAgICAgICAgICBsb2dnZXIuaW5mbygi
Ojo6IFNvIGZhciwgYWxsIGNoZWNrcyBwYXNzZWQsIGJ1dCBub3QgYWxsIGNoZWNrcyB3ZXJlIHJ1
bi4iKQorICAgICAgICAgICAgd3JpdGVfc3VtbWFyeShsb2dnZXIsIHN0ZXBfcmVzdWx0cywgIlRJ
TUVPVVQiKQorICAgICAgICAgICAgcmV0dXJuIDIKKworICAgICAgICBsb2dnZXIuaW5mbygnOjo6
JykKKyAgICAgICAgbG9nZ2VyLmluZm8oJzo6OiBSdW5uaW5nIHRlc3QgdmVyaWZpY2F0aW9uIHN0
ZXAgIiVzIi4uLicgJSBkZXNjKQorICAgICAgICBsb2dnZXIuaW5mbygnOjo6JykKKyAgICAgICAg
cmVzdWx0cywgaW5jb25zaXN0ZW50LCBpdGVyYXRpb25zID0gc3RlcF9mdW5jKCoqa3dhcmdzKQor
ICAgICAgICBpZiBvdXRwdXRfcmVzdWx0czoKKyAgICAgICAgICAgIHdyaXRlX3Jlc3VsdHMobG9n
Z2VyLmluZm8sIHJlc3VsdHMsIGl0ZXJhdGlvbnMpCisKKyAgICAgICAgaWYgaW5jb25zaXN0ZW50
OgorICAgICAgICAgICAgc3RlcF9yZXN1bHRzLmFwcGVuZCgoZGVzYywgIkZBSUwiKSkKKyAgICAg
ICAgICAgIHdyaXRlX2luY29uc2lzdGVudChsb2dnZXIuaW5mbywgaW5jb25zaXN0ZW50LCBpdGVy
YXRpb25zKQorICAgICAgICAgICAgd3JpdGVfc3VtbWFyeShsb2dnZXIsIHN0ZXBfcmVzdWx0cywg
IkZBSUwiKQorICAgICAgICAgICAgcmV0dXJuIDEKKworICAgICAgICBzdGVwX3Jlc3VsdHMuYXBw
ZW5kKChkZXNjLCAiUEFTUyIpKQorCisgICAgd3JpdGVfc3VtbWFyeShsb2dnZXIsIHN0ZXBfcmVz
dWx0cywgIlBBU1MiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rkcml2ZXItZXh0cmEu
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvdGVzdGRyaXZlci1leHRyYS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NTZhMzNl
ZGJhZGQ1ZTY5ZDczY2Q2ZDE0OTZiYjc0N2E3YzFkMjQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3Rlc3Rkcml2ZXItZXh0cmEuanMKQEAgLTAsMCArMSw2MyBAQAorInVzZSBzdHJp
Y3QiOworCisoZnVuY3Rpb24oKXsKKyAgICBsZXQgcGVuZGluZ19yZXNvbHZlID0gbnVsbDsKKyAg
ICBsZXQgcGVuZGluZ19yZWplY3QgPSBudWxsOworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCJtZXNzYWdlIiwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgY29uc3QgZGF0YSA9IGV2ZW50
LmRhdGE7CisKKyAgICAgICAgaWYgKHR5cGVvZiBkYXRhICE9PSAib2JqZWN0IiAmJiBkYXRhICE9
PSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAo
ZGF0YS50eXBlICE9PSAidGVzdGRyaXZlci1jb21wbGV0ZSIpIHsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChkYXRhLnN0YXR1cyA9PT0gInN1Y2Nlc3MiKSB7
CisgICAgICAgICAgICBwZW5kaW5nX3Jlc29sdmUoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIHBlbmRpbmdfcmVqZWN0KCk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIGNvbnN0
IGdldF9zZWxlY3RvciA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsKKyAgICAgICAgbGV0IHNlbGVjdG9y
OworCisgICAgICAgIGlmIChlbGVtZW50LmlkICYmIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVs
ZW1lbnQuaWQpID09PSBlbGVtZW50KSB7CisgICAgICAgICAgICBjb25zdCBpZCA9IGVsZW1lbnQu
aWQ7CisKKyAgICAgICAgICAgIHNlbGVjdG9yID0gIiMiOworICAgICAgICAgICAgLy8gZXNjYXBl
IGV2ZXJ5dGhpbmcsIGJlY2F1c2UgaXQncyBlYXN5IHRvIGltcGxlbWVudAorICAgICAgICAgICAg
Zm9yIChsZXQgaSA9IDAsIGxlbiA9IGlkLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7CisgICAgICAg
ICAgICAgICAgc2VsZWN0b3IgKz0gJ1xcJyArIGlkLmNoYXJDb2RlQXQoaSkudG9TdHJpbmcoMTYp
ICsgJyAnOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8g
cHVzaCBhbmQgdGhlbiByZXZlcnNlIHRvIGF2b2lkIE8obikgdW5zaGlmdCBpbiB0aGUgbG9vcAor
ICAgICAgICAgICAgbGV0IHNlZ21lbnRzID0gW107CisgICAgICAgICAgICBmb3IgKGxldCBub2Rl
ID0gZWxlbWVudDsKKyAgICAgICAgICAgICAgICAgbm9kZS5wYXJlbnRFbGVtZW50OworICAgICAg
ICAgICAgICAgICBub2RlID0gbm9kZS5wYXJlbnRFbGVtZW50KSB7CisgICAgICAgICAgICAgICAg
bGV0IHNlZ21lbnQgPSAiKnwiICsgbm9kZS5sb2NhbE5hbWU7CisgICAgICAgICAgICAgICAgbGV0
IG50aCA9IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwobm9kZS5wYXJlbnRFbGVtZW50LmNo
aWxkcmVuLCBub2RlKSArIDE7CisgICAgICAgICAgICAgICAgc2VnbWVudHMucHVzaChzZWdtZW50
ICsgIjpudGgtY2hpbGQoIiArIG50aCArICIpIik7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBzZWdtZW50cy5wdXNoKCI6cm9vdCIpOworICAgICAgICAgICAgc2VnbWVudHMucmV2ZXJzZSgp
OworCisgICAgICAgICAgICBzZWxlY3RvciA9IHNlZ21lbnRzLmpvaW4oIiA+ICIpOworICAgICAg
ICB9CisKKyAgICAgICAgcmV0dXJuIHNlbGVjdG9yOworICAgIH07CisKKyAgICB3aW5kb3cudGVz
dF9kcml2ZXJfaW50ZXJuYWwuY2xpY2sgPSBmdW5jdGlvbihlbGVtZW50KSB7CisgICAgICAgIGNv
bnN0IHNlbGVjdG9yID0gZ2V0X3NlbGVjdG9yKGVsZW1lbnQpOworICAgICAgICBjb25zdCBwZW5k
aW5nX3Byb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAg
ICAgICAgICAgIHBlbmRpbmdfcmVzb2x2ZSA9IHJlc29sdmU7CisgICAgICAgICAgICBwZW5kaW5n
X3JlamVjdCA9IHJlamVjdDsKKyAgICAgICAgfSk7CisgICAgICAgIHdpbmRvdy5vcGVuZXIucG9z
dE1lc3NhZ2UoeyJ0eXBlIjogImFjdGlvbiIsICJhY3Rpb24iOiAiY2xpY2siLCAic2VsZWN0b3Ii
OiBzZWxlY3Rvcn0sICIqIik7CisgICAgICAgIHJldHVybiBwZW5kaW5nX3Byb21pc2U7CisgICAg
fTsKK30pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGRyaXZlci12ZW5kb3IuanMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdGRyaXZlci12ZW5kb3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2U4ODQwMzYz
NjM5NmM0Mzk3NTk3MDVjNzUxNDMzYjI4ZTA1ZjNhYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci90ZXN0ZHJpdmVyLXZlbmRvci5qcwpAQCAtMCwwICsxIEBACisvLyBUaGlzIGZpbGUg
aW50ZW50aW9uYWxseSBsZWZ0IGJsYW5rCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhh
cm5lc3NfcnVubmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NfcnVubmVyLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMWNjODBhMjcwZTJjMWU4ZjBiY2I4ZGM0ODc4YTc1ZDljZTAxNzE3YQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc19ydW5uZXIuaHRtbApAQCAt
MCwwICsxLDYgQEAKKzwhZG9jdHlwZSBodG1sPgorPHRpdGxlPjwvdGl0bGU+Cis8c2NyaXB0Pgor
dmFyIHRpbWVvdXRfbXVsdGlwbGllciA9IDE7Cit2YXIgd2luID0gbnVsbDsKKzwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVwb3J0LXNlcnZvLmpzIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVwb3J0LXNlcnZvLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2NzJhZWE5
YTI1NDBiZjE0NDZhMjNkZGIyODhjOTMwMDliYjI2YmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vydm8uanMKQEAgLTAsMCArMSwxNyBAQAordmFy
IHByb3BzID0ge291dHB1dDolKG91dHB1dClkfTsKK3ZhciBzdGFydF9sb2MgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdhJyk7CitzdGFydF9sb2MuaHJlZiA9IGxvY2F0aW9uLmhyZWY7CitzZXR1
cChwcm9wcyk7CisKK2FkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uICh0ZXN0cywgaGFy
bmVzc19zdGF0dXMpIHsKKyAgICB2YXIgaWQgPSBzdGFydF9sb2MucGF0aG5hbWUgKyBzdGFydF9s
b2Muc2VhcmNoICsgc3RhcnRfbG9jLmhhc2g7CisgICAgY29uc29sZS5sb2coIkFMRVJUOiBSRVNV
TFQ6ICIgKyBKU09OLnN0cmluZ2lmeShbCisgICAgICAgIGlkLAorICAgICAgICBoYXJuZXNzX3N0
YXR1cy5zdGF0dXMsCisgICAgICAgIGhhcm5lc3Nfc3RhdHVzLm1lc3NhZ2UsCisgICAgICAgIGhh
cm5lc3Nfc3RhdHVzLnN0YWNrLAorICAgICAgICB0ZXN0cy5tYXAoZnVuY3Rpb24odCkgeworICAg
ICAgICAgICAgcmV0dXJuIFt0Lm5hbWUsIHQuc3RhdHVzLCB0Lm1lc3NhZ2UsIHQuc3RhY2tdCisg
ICAgICAgIH0pLAorICAgIF0pKTsKK30pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Ro
YXJuZXNzcmVwb3J0LXNlcnZvZHJpdmVyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVw
b3J0LXNlcnZvZHJpdmVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM4ODg0MTM2MDQ3MGY4ZGQzYWVjMjIyNDQ5
MjlkZGE0OWZhZGFmMzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5l
c3NyZXBvcnQtc2Vydm9kcml2ZXIuanMKQEAgLTAsMCArMSwyMyBAQAorc2V0dXAoe291dHB1dDol
KG91dHB1dClkfSk7CisKK2FkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uKCkgeworICAg
IGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uICh0ZXN0cywgc3RhdHVzKSB7CisgICAg
ICAgIHZhciBzdWJ0ZXN0X3Jlc3VsdHMgPSB0ZXN0cy5tYXAoZnVuY3Rpb24oeCkgeworICAgICAg
ICAgICAgcmV0dXJuIFt4Lm5hbWUsIHguc3RhdHVzLCB4Lm1lc3NhZ2UsIHguc3RhY2tdCisgICAg
ICAgIH0pOworICAgICAgICB2YXIgaWQgPSBsb2NhdGlvbi5wYXRobmFtZSArIGxvY2F0aW9uLnNl
YXJjaCArIGxvY2F0aW9uLmhhc2g7CisgICAgICAgIHZhciByZXN1bHRzID0gSlNPTi5zdHJpbmdp
ZnkoW2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMuc3Rh
dHVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMubWVzc2Fn
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzLnN0YWNrLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJ0ZXN0X3Jlc3VsdHNdKTsK
KyAgICAgICAgKGZ1bmN0aW9uIGRvbmUoKSB7CisgICAgICAgICAgICBpZiAod2luZG93Ll9fd2Rf
cmVzdWx0c19jYWxsYmFja19fKSB7CisgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KF9fd2Rf
cmVzdWx0c190aW1lcl9fKTsKKyAgICAgICAgICAgICAgICBfX3dkX3Jlc3VsdHNfY2FsbGJhY2tf
XyhyZXN1bHRzKQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBzZXRUaW1l
b3V0KGRvbmUsIDIwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSkoKQorICAgIH0pCit9KTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC5qcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci90ZXN0aGFybmVzc3JlcG9ydC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MmRkYWZmYjQ0M2M5NDUwNTM4
MzA4MzkyM2RjMTNmY2IxY2Y1NjYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzCkBAIC0wLDAgKzEsMTMgQEAKK3ZhciBwcm9wcyA9IHtvdXRwdXQ6
JShvdXRwdXQpZCwKKyAgICAgICAgICAgICBleHBsaWNpdF90aW1lb3V0OiB0cnVlLAorICAgICAg
ICAgICAgIG1lc3NhZ2VfZXZlbnRzOiBbImNvbXBsZXRpb24iXX07CisKK2lmICh3aW5kb3cub3Bl
bmVyICYmICJ0aW1lb3V0X211bHRpcGxpZXIiIGluIHdpbmRvdy5vcGVuZXIpIHsKKyAgICBwcm9w
c1sidGltZW91dF9tdWx0aXBsaWVyIl0gPSB3aW5kb3cub3BlbmVyLnRpbWVvdXRfbXVsdGlwbGll
cjsKK30KKworaWYgKHdpbmRvdy5vcGVuZXIgJiYgd2luZG93Lm9wZW5lci5leHBsaWNpdF90aW1l
b3V0KSB7CisgICAgcHJvcHNbImV4cGxpY2l0X3RpbWVvdXQiXSA9IHdpbmRvdy5vcGVuZXIuZXhw
bGljaXRfdGltZW91dDsKK30KKworc2V0dXAocHJvcHMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3Rlc3Rsb2FkZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGxvYWRlci5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45YWMyZTk0NzJiNGE2OWJlMjExOGVjMjRmYTcxZjA5MjQ4MWFkZjUwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rsb2FkZXIucHkKQEAgLTAsMCArMSw2NTkgQEAKK2ltcG9y
dCBoYXNobGliCitpbXBvcnQganNvbgoraW1wb3J0IG9zCitpbXBvcnQgdXJscGFyc2UKK2Zyb20g
YWJjIGltcG9ydCBBQkNNZXRhLCBhYnN0cmFjdG1ldGhvZAorZnJvbSBRdWV1ZSBpbXBvcnQgRW1w
dHkKK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0LCBPcmRlcmVkRGljdCwgZGVx
dWUKK2Zyb20gbXVsdGlwcm9jZXNzaW5nIGltcG9ydCBRdWV1ZQorCitpbXBvcnQgbWFuaWZlc3Rp
bmNsdWRlCitpbXBvcnQgbWFuaWZlc3RleHBlY3RlZAoraW1wb3J0IHdwdHRlc3QKK2Zyb20gbW96
bG9nIGltcG9ydCBzdHJ1Y3R1cmVkCisKK21hbmlmZXN0ID0gTm9uZQorbWFuaWZlc3RfdXBkYXRl
ID0gTm9uZQorZG93bmxvYWRfZnJvbV9naXRodWIgPSBOb25lCittYW5pZmVzdF9sb2cgPSBOb25l
CisKK2RlZiBkb19kZWxheWVkX2ltcG9ydHMoKToKKyAgICAjIFRoaXMgcmVsaWVzIG9uIGFuIGFs
cmVhZHkgbG9hZGVkIG1vZHVsZSBoYXZpbmcgc2V0IHRoZSBzeXMucGF0aCBjb3JyZWN0bHkgOigK
KyAgICBnbG9iYWwgbWFuaWZlc3QsIG1hbmlmZXN0X3VwZGF0ZSwgZG93bmxvYWRfZnJvbV9naXRo
dWIsIG1hbmlmZXN0X2xvZworICAgIGZyb20gbWFuaWZlc3QgaW1wb3J0IG1hbmlmZXN0CisgICAg
ZnJvbSBtYW5pZmVzdCBpbXBvcnQgdXBkYXRlIGFzIG1hbmlmZXN0X3VwZGF0ZQorICAgIGZyb20g
bWFuaWZlc3QuZG93bmxvYWQgaW1wb3J0IGRvd25sb2FkX2Zyb21fZ2l0aHViCisgICAgZnJvbSBt
YW5pZmVzdCBpbXBvcnQgbG9nIGFzIG1hbmlmZXN0X2xvZworCisKK2NsYXNzIFRlc3RDaHVua2Vy
KG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRvdGFsX2NodW5rcywgY2h1bmtfbnVt
YmVyKToKKyAgICAgICAgc2VsZi50b3RhbF9jaHVua3MgPSB0b3RhbF9jaHVua3MKKyAgICAgICAg
c2VsZi5jaHVua19udW1iZXIgPSBjaHVua19udW1iZXIKKyAgICAgICAgYXNzZXJ0IHNlbGYuY2h1
bmtfbnVtYmVyIDw9IHNlbGYudG90YWxfY2h1bmtzCisgICAgICAgIHNlbGYubG9nZ2VyID0gc3Ry
dWN0dXJlZC5nZXRfZGVmYXVsdF9sb2dnZXIoKQorICAgICAgICBhc3NlcnQgc2VsZi5sb2dnZXIK
KworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBtYW5pZmVzdCk6CisgICAgICAgIHJhaXNlIE5vdElt
cGxlbWVudGVkRXJyb3IKKworCitjbGFzcyBVbmNodW5rZWQoVGVzdENodW5rZXIpOgorICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBUZXN0Q2h1bmtlci5f
X2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpCisgICAgICAgIGFzc2VydCBzZWxmLnRvdGFs
X2NodW5rcyA9PSAxCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgbWFuaWZlc3QpOgorICAgICAg
ICBmb3IgaXRlbSBpbiBtYW5pZmVzdDoKKyAgICAgICAgICAgIHlpZWxkIGl0ZW0KKworCitjbGFz
cyBIYXNoQ2h1bmtlcihUZXN0Q2h1bmtlcik6CisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIG1hbmlm
ZXN0KToKKyAgICAgICAgY2h1bmtfaW5kZXggPSBzZWxmLmNodW5rX251bWJlciAtIDEKKyAgICAg
ICAgZm9yIHRlc3RfdHlwZSwgdGVzdF9wYXRoLCB0ZXN0cyBpbiBtYW5pZmVzdDoKKyAgICAgICAg
ICAgIGggPSBpbnQoaGFzaGxpYi5tZDUodGVzdF9wYXRoKS5oZXhkaWdlc3QoKSwgMTYpCisgICAg
ICAgICAgICBpZiBoICUgc2VsZi50b3RhbF9jaHVua3MgPT0gY2h1bmtfaW5kZXg6CisgICAgICAg
ICAgICAgICAgeWllbGQgdGVzdF90eXBlLCB0ZXN0X3BhdGgsIHRlc3RzCisKKworY2xhc3MgRGly
ZWN0b3J5SGFzaENodW5rZXIoVGVzdENodW5rZXIpOgorICAgICIiIkxpa2UgSGFzaENodW5rZXIg
ZXhjZXB0IHRoZSBkaXJlY3RvcnkgaXMgaGFzaGVkLgorCisgICAgVGhpcyBlbnN1cmVzIHRoYXQg
YWxsIHRlc3RzIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBlbmQgdXAgaW4gdGhlIHNhbWUKKyAgICBj
aHVuay4KKyAgICAiIiIKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgbWFuaWZlc3QpOgorICAgICAg
ICBjaHVua19pbmRleCA9IHNlbGYuY2h1bmtfbnVtYmVyIC0gMQorICAgICAgICBmb3IgdGVzdF90
eXBlLCB0ZXN0X3BhdGgsIHRlc3RzIGluIG1hbmlmZXN0OgorICAgICAgICAgICAgaCA9IGludCho
YXNobGliLm1kNShvcy5wYXRoLmRpcm5hbWUodGVzdF9wYXRoKSkuaGV4ZGlnZXN0KCksIDE2KQor
ICAgICAgICAgICAgaWYgaCAlIHNlbGYudG90YWxfY2h1bmtzID09IGNodW5rX2luZGV4OgorICAg
ICAgICAgICAgICAgIHlpZWxkIHRlc3RfdHlwZSwgdGVzdF9wYXRoLCB0ZXN0cworCisKK2NsYXNz
IEVxdWFsVGltZUNodW5rZXIoVGVzdENodW5rZXIpOgorICAgIGRlZiBfZ3JvdXBfYnlfZGlyZWN0
b3J5KHNlbGYsIG1hbmlmZXN0X2l0ZW1zKToKKyAgICAgICAgIiIiU3BsaXQgdGhlIGxpc3Qgb2Yg
bWFuaWZlc3QgaXRlbXMgaW50byBhIG9yZGVyZWQgZGljdCB0aGF0IGdyb3VwcyB0ZXN0cyBpbgor
ICAgICAgICBzbyB0aGF0IGFueXRoaW5nIGluIHRoZSBzYW1lIHN1YmRpcmVjdG9yeSBiZXlvbmQg
YSBkZXB0aCBvZiAzIGlzIGluIHRoZSBzYW1lCisgICAgICAgIGdyb3VwLiBTbyBhbGwgdGVzdHMg
aW4gYS9iL2MsIGEvYi9jL2QgYW5kIGEvYi9jL2Ugd2lsbCBiZSBncm91cGVkIHRvZ2V0aGVyCisg
ICAgICAgIGFuZCBzZXBhcmF0ZSB0byB0ZXN0cyBpbiBhL2IvZgorCisgICAgICAgIFJldHVybnM6
IHR1cGxlIChvcmRlcmVkIGRpY3Qgb2Yge3Rlc3RfZGlyOiBQYXRoRGF0YX0sIHRvdGFsIGVzdGlt
YXRlZCBydW50aW1lKQorICAgICAgICAiIiIKKworICAgICAgICBjbGFzcyBQYXRoRGF0YShvYmpl
Y3QpOgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgpOgorICAgICAgICAgICAg
ICAgIHNlbGYucGF0aCA9IHBhdGgKKyAgICAgICAgICAgICAgICBzZWxmLnRpbWUgPSAwCisgICAg
ICAgICAgICAgICAgc2VsZi50ZXN0cyA9IFtdCisKKyAgICAgICAgYnlfZGlyID0gT3JkZXJlZERp
Y3QoKQorICAgICAgICB0b3RhbF90aW1lID0gMAorCisgICAgICAgIGZvciBpLCAodGVzdF90eXBl
LCB0ZXN0X3BhdGgsIHRlc3RzKSBpbiBlbnVtZXJhdGUobWFuaWZlc3RfaXRlbXMpOgorICAgICAg
ICAgICAgdGVzdF9kaXIgPSB0dXBsZShvcy5wYXRoLnNwbGl0KHRlc3RfcGF0aClbMF0uc3BsaXQo
b3MucGF0aC5zZXApWzozXSkKKworICAgICAgICAgICAgaWYgdGVzdF9kaXIgbm90IGluIGJ5X2Rp
cjoKKyAgICAgICAgICAgICAgICBieV9kaXJbdGVzdF9kaXJdID0gUGF0aERhdGEodGVzdF9kaXIp
CisKKyAgICAgICAgICAgIGRhdGEgPSBieV9kaXJbdGVzdF9kaXJdCisgICAgICAgICAgICB0aW1l
ID0gc3VtKHRlc3QuZGVmYXVsdF90aW1lb3V0IGlmIHRlc3QudGltZW91dCAhPQorICAgICAgICAg
ICAgICAgICAgICAgICAibG9uZyIgZWxzZSB0ZXN0LmxvbmdfdGltZW91dCBmb3IgdGVzdCBpbiB0
ZXN0cykKKyAgICAgICAgICAgIGRhdGEudGltZSArPSB0aW1lCisgICAgICAgICAgICB0b3RhbF90
aW1lICs9IHRpbWUKKyAgICAgICAgICAgIGRhdGEudGVzdHMuYXBwZW5kKCh0ZXN0X3R5cGUsIHRl
c3RfcGF0aCwgdGVzdHMpKQorCisgICAgICAgIHJldHVybiBieV9kaXIsIHRvdGFsX3RpbWUKKwor
ICAgIGRlZiBfbWF5YmVfcmVtb3ZlKHNlbGYsIGNodW5rcywgaSwgZGlyZWN0aW9uKToKKyAgICAg
ICAgIiIiVHJpYWwgcmVtb3ZpbmcgYSBjaHVuayBmcm9tIG9uZSBjaHVuayB0byBhbiBhZGphY2Vu
dCBvbmUuCisKKyAgICAgICAgOnBhcmFtIGNodW5rczogLSB0aGUgbGlzdCBvZiBhbGwgY2h1bmtz
CisgICAgICAgIDpwYXJhbSBpOiAtIHRoZSBjaHVuayBpbmRleCBpbiB0aGUgbGlzdCBvZiBjaHVu
a3MgdG8gdHJ5IHJlbW92aW5nIGZyb20KKyAgICAgICAgOnBhcmFtIGRpcmVjdGlvbjogZWl0aGVy
ICJuZXh0IiBpZiB3ZSBhcmUgZ29pbmcgdG8gbW92ZSBmcm9tIHRoZSBlbmQgdG8KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGhlIHN1YnNlcXVlbnQgY2h1bmssIG9yICJwcmV2IiBpZiB3ZSBh
cmUgZ29pbmcgdG8gbW92ZQorICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tIHRoZSBzdGFy
dCBpbnRvIHRoZSBwcmV2aW91cyBjaHVuay4KKworICAgICAgICA6cmV0dXJucyBib29sOiBEaWQg
YSBjaHVuayBnZXQgbW92ZWQ/IiIiCisgICAgICAgIHNvdXJjZV9jaHVuayA9IGNodW5rc1tpXQor
ICAgICAgICBpZiBkaXJlY3Rpb24gPT0gIm5leHQiOgorICAgICAgICAgICAgdGFyZ2V0X2NodW5r
ID0gY2h1bmtzW2krMV0KKyAgICAgICAgICAgIHBhdGhfaW5kZXggPSAtMQorICAgICAgICAgICAg
bW92ZV9mdW5jID0gbGFtYmRhOiB0YXJnZXRfY2h1bmsuYXBwZW5kbGVmdChzb3VyY2VfY2h1bmsu
cG9wKCkpCisgICAgICAgIGVsaWYgZGlyZWN0aW9uID09ICJwcmV2IjoKKyAgICAgICAgICAgIHRh
cmdldF9jaHVuayA9IGNodW5rc1tpLTFdCisgICAgICAgICAgICBwYXRoX2luZGV4ID0gMAorICAg
ICAgICAgICAgbW92ZV9mdW5jID0gbGFtYmRhOiB0YXJnZXRfY2h1bmsuYXBwZW5kKHNvdXJjZV9j
aHVuay5wb3BsZWZ0KCkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCJVbmV4cGVjdGVkIG1vdmUgZGlyZWN0aW9uICVzIiAlIGRpcmVjdGlvbikKKworICAgICAg
ICByZXR1cm4gc2VsZi5fbWF5YmVfbW92ZShzb3VyY2VfY2h1bmssIHRhcmdldF9jaHVuaywgcGF0
aF9pbmRleCwgbW92ZV9mdW5jKQorCisgICAgZGVmIF9tYXliZV9hZGQoc2VsZiwgY2h1bmtzLCBp
LCBkaXJlY3Rpb24pOgorICAgICAgICAiIiJUcmlhbCBhZGRpbmcgYSBjaHVuayBmcm9tIG9uZSBj
aHVuayB0byBhbiBhZGphY2VudCBvbmUuCisKKyAgICAgICAgOnBhcmFtIGNodW5rczogLSB0aGUg
bGlzdCBvZiBhbGwgY2h1bmtzCisgICAgICAgIDpwYXJhbSBpOiAtIHRoZSBjaHVuayBpbmRleCBp
biB0aGUgbGlzdCBvZiBjaHVua3MgdG8gdHJ5IGFkZGluZyB0bworICAgICAgICA6cGFyYW0gZGly
ZWN0aW9uOiBlaXRoZXIgIm5leHQiIGlmIHdlIGFyZSBnb2luZyB0byByZW1vdmUgZnJvbSB0aGUK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHN1YnNlcXVlbnQgY2h1bmssIG9yICJwcmV2
IiBpZiB3ZSBhcmUgZ29pbmcgdG8gcmVtb3ZlCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZy
b20gdGhlIHRoZSBwcmV2aW91cyBjaHVuay4KKworICAgICAgICA6cmV0dXJucyBib29sOiBEaWQg
YSBjaHVuayBnZXQgbW92ZWQ/IiIiCisgICAgICAgIHRhcmdldF9jaHVuayA9IGNodW5rc1tpXQor
ICAgICAgICBpZiBkaXJlY3Rpb24gPT0gIm5leHQiOgorICAgICAgICAgICAgc291cmNlX2NodW5r
ID0gY2h1bmtzW2krMV0KKyAgICAgICAgICAgIHBhdGhfaW5kZXggPSAwCisgICAgICAgICAgICBt
b3ZlX2Z1bmMgPSBsYW1iZGE6IHRhcmdldF9jaHVuay5hcHBlbmQoc291cmNlX2NodW5rLnBvcGxl
ZnQoKSkKKyAgICAgICAgZWxpZiBkaXJlY3Rpb24gPT0gInByZXYiOgorICAgICAgICAgICAgc291
cmNlX2NodW5rID0gY2h1bmtzW2ktMV0KKyAgICAgICAgICAgIHBhdGhfaW5kZXggPSAtMQorICAg
ICAgICAgICAgbW92ZV9mdW5jID0gbGFtYmRhOiB0YXJnZXRfY2h1bmsuYXBwZW5kbGVmdChzb3Vy
Y2VfY2h1bmsucG9wKCkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCJVbmV4cGVjdGVkIG1vdmUgZGlyZWN0aW9uICVzIiAlIGRpcmVjdGlvbikKKworICAgICAg
ICByZXR1cm4gc2VsZi5fbWF5YmVfbW92ZShzb3VyY2VfY2h1bmssIHRhcmdldF9jaHVuaywgcGF0
aF9pbmRleCwgbW92ZV9mdW5jKQorCisgICAgZGVmIF9tYXliZV9tb3ZlKHNlbGYsIHNvdXJjZV9j
aHVuaywgdGFyZ2V0X2NodW5rLCBwYXRoX2luZGV4LCBtb3ZlX2Z1bmMpOgorICAgICAgICAiIiJN
b3ZlIGZyb20gb25lIGNodW5rIHRvIGFub3RoZXIsIGFzc2VzcyB0aGUgY2hhbmdlIGluIGJhZG5l
c3MsCisgICAgICAgIGFuZCBrZWVwIHRoZSBtb3ZlIGlmZiBpdCBkZWNyZWFzZXMgdGhlIGJhZG5l
c3Mgc2NvcmUuCisKKyAgICAgICAgOnBhcmFtIHNvdXJjZV9jaHVuazogY2h1bmsgdG8gbW92ZSBm
cm9tCisgICAgICAgIDpwYXJhbSB0YXJnZXRfY2h1bms6IGNodW5rIHRvIG1vdmUgdG8KKyAgICAg
ICAgOnBhcmFtIHBhdGhfaW5kZXg6IDAgaWYgd2UgYXJlIG1vdmluZyBmcm9tIHRoZSBzdGFydCBv
ciAtMSBpZiB3ZSBhcmUgbW92aW5nIGZyb20gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlbmQKKyAgICAgICAgOnBhcmFtIG1vdmVfZnVuYzogRnVuY3Rpb24gdGhhdCBhY3R1YWxseSBt
b3ZlcyBiZXR3ZWVuIGNodW5rcyIiIgorICAgICAgICBpZiBsZW4oc291cmNlX2NodW5rLnBhdGhz
KSA8PSAxOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgbW92ZV90aW1lID0g
c291cmNlX2NodW5rLnBhdGhzW3BhdGhfaW5kZXhdLnRpbWUKKworICAgICAgICBuZXdfc291cmNl
X2JhZG5lc3MgPSBzZWxmLl9iYWRuZXNzKHNvdXJjZV9jaHVuay50aW1lIC0gbW92ZV90aW1lKQor
ICAgICAgICBuZXdfdGFyZ2V0X2JhZG5lc3MgPSBzZWxmLl9iYWRuZXNzKHRhcmdldF9jaHVuay50
aW1lICsgbW92ZV90aW1lKQorCisgICAgICAgIGRlbHRhX2JhZG5lc3MgPSAoKG5ld19zb3VyY2Vf
YmFkbmVzcyArIG5ld190YXJnZXRfYmFkbmVzcykgLQorICAgICAgICAgICAgICAgICAgICAgICAg
IChzb3VyY2VfY2h1bmsuYmFkbmVzcyArIHRhcmdldF9jaHVuay5iYWRuZXNzKSkKKyAgICAgICAg
aWYgZGVsdGFfYmFkbmVzcyA8IDA6CisgICAgICAgICAgICBtb3ZlX2Z1bmMoKQorICAgICAgICAg
ICAgcmV0dXJuIFRydWUKKworICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBfYmFkbmVz
cyhzZWxmLCB0aW1lKToKKyAgICAgICAgIiIiTWV0cmljIG9mIGJhZG5lc3MgZm9yIGEgc3BlY2lm
aWMgY2h1bmsKKworICAgICAgICA6cGFyYW0gdGltZTogdGhlIHRpbWUgZm9yIGEgc3BlY2lmaWMg
Y2h1bmsiIiIKKyAgICAgICAgcmV0dXJuICh0aW1lIC0gc2VsZi5leHBlY3RlZF90aW1lKSoqMgor
CisgICAgZGVmIF9nZXRfY2h1bmsoc2VsZiwgbWFuaWZlc3RfaXRlbXMpOgorICAgICAgICBieV9k
aXIsIHRvdGFsX3RpbWUgPSBzZWxmLl9ncm91cF9ieV9kaXJlY3RvcnkobWFuaWZlc3RfaXRlbXMp
CisKKyAgICAgICAgaWYgbGVuKGJ5X2RpcikgPCBzZWxmLnRvdGFsX2NodW5rczoKKyAgICAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoIlRyaWVkIHRvIHNwbGl0IGludG8gJWkgY2h1bmtzLCBidXQg
b25seSAlaSBzdWJkaXJlY3RvcmllcyBpbmNsdWRlZCIgJSAoCisgICAgICAgICAgICAgICAgc2Vs
Zi50b3RhbF9jaHVua3MsIGxlbihieV9kaXIpKSkKKworICAgICAgICBzZWxmLmV4cGVjdGVkX3Rp
bWUgPSBmbG9hdCh0b3RhbF90aW1lKSAvIHNlbGYudG90YWxfY2h1bmtzCisKKyAgICAgICAgY2h1
bmtzID0gc2VsZi5fY3JlYXRlX2luaXRpYWxfY2h1bmtzKGJ5X2RpcikKKworICAgICAgICB3aGls
ZSBUcnVlOgorICAgICAgICAgICAgIyBNb3ZlIGEgdGVzdCBmcm9tIG9uZSBjaHVuayB0byB0aGUg
bmV4dCB1bnRpbCBkb2luZyBzbyBubyBsb25nZXIKKyAgICAgICAgICAgICMgcmVkdWNlcyB0aGUg
YmFkbmVzcworICAgICAgICAgICAgZ290X2ltcHJvdmVtZW50ID0gc2VsZi5fdXBkYXRlX2NodW5r
cyhjaHVua3MpCisgICAgICAgICAgICBpZiBub3QgZ290X2ltcHJvdmVtZW50OgorICAgICAgICAg
ICAgICAgIGJyZWFrCisKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoc2VsZi5leHBlY3RlZF90
aW1lKQorICAgICAgICBmb3IgaSwgY2h1bmsgaW4gY2h1bmtzLml0ZXJpdGVtcygpOgorICAgICAg
ICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIiVpOiAlaSwgJWkiICUgKGkgKyAxLCBjaHVuay50aW1l
LCBjaHVuay5iYWRuZXNzKSkKKworICAgICAgICBhc3NlcnQgc2VsZi5fYWxsX3Rlc3RzKGJ5X2Rp
cikgPT0gc2VsZi5fY2h1bmtlZF90ZXN0cyhjaHVua3MpCisKKyAgICAgICAgcmV0dXJuIHNlbGYu
X2dldF90ZXN0cyhjaHVua3MpCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIF9hbGxfdGVz
dHMoYnlfZGlyKToKKyAgICAgICAgIiIiUmV0dXJuIGEgc2V0IG9mIGFsbCB0ZXN0cyBpbiB0aGUg
bWFuaWZlc3QgZnJvbSBhIGdyb3VwaW5nIGJ5IGRpcmVjdG9yeSIiIgorICAgICAgICByZXR1cm4g
c2V0KHhbMF0gZm9yIGl0ZW0gaW4gYnlfZGlyLml0ZXJ2YWx1ZXMoKQorICAgICAgICAgICAgICAg
ICAgIGZvciB4IGluIGl0ZW0udGVzdHMpCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIF9j
aHVua2VkX3Rlc3RzKGNodW5rcyk6CisgICAgICAgICIiIlJldHVybiBhIHNldCBvZiBhbGwgdGVz
dHMgaW4gdGhlIG1hbmlmZXN0IGZyb20gdGhlIGNodW5rIGxpc3QiIiIKKyAgICAgICAgcmV0dXJu
IHNldCh4WzBdIGZvciBjaHVuayBpbiBjaHVua3MuaXRlcnZhbHVlcygpCisgICAgICAgICAgICAg
ICAgICAgZm9yIHBhdGggaW4gY2h1bmsucGF0aHMKKyAgICAgICAgICAgICAgICAgICBmb3IgeCBp
biBwYXRoLnRlc3RzKQorCisKKyAgICBkZWYgX2NyZWF0ZV9pbml0aWFsX2NodW5rcyhzZWxmLCBi
eV9kaXIpOgorICAgICAgICAiIiJDcmVhdGUgYW4gaW5pdGlhbCB1bmJhbGFuY2VkIGxpc3Qgb2Yg
Y2h1bmtzLgorCisgICAgICAgIDpwYXJhbSBieV9kaXI6IEFsbCB0ZXN0cyBpbiB0aGUgbWFuaWZl
c3QgZ3JvdXBlZCBieSBzdWJkaXJlY3RvcnkKKyAgICAgICAgOnJldHVybnMgbGlzdDogQSBsaXN0
IG9mIENodW5rIG9iamVjdHMiIiIKKworICAgICAgICBjbGFzcyBDaHVuayhvYmplY3QpOgorICAg
ICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGhzLCBpbmRleCk6CisgICAgICAgICAgICAg
ICAgIiIiTGlzdCBvZiBQYXRoRGF0YSBvYmplY3RzIHRoYXQgdG9nZXRoZXIgZm9ybSBhIHNpbmds
ZSBjaHVuayBvZgorICAgICAgICAgICAgICAgIHRlc3RzIiIiCisgICAgICAgICAgICAgICAgc2Vs
Zi5wYXRocyA9IGRlcXVlKHBhdGhzKQorICAgICAgICAgICAgICAgIHNlbGYudGltZSA9IHN1bShp
dGVtLnRpbWUgZm9yIGl0ZW0gaW4gcGF0aHMpCisgICAgICAgICAgICAgICAgc2VsZi5pbmRleCA9
IGluZGV4CisKKyAgICAgICAgICAgIGRlZiBhcHBlbmRsZWZ0KHNlbGYsIHBhdGgpOgorICAgICAg
ICAgICAgICAgICIiIkFkZCBhIFBhdGhEYXRhIG9iamVjdCB0byB0aGUgc3RhcnQgb2YgdGhlIGNo
dW5rIiIiCisgICAgICAgICAgICAgICAgc2VsZi5wYXRocy5hcHBlbmRsZWZ0KHBhdGgpCisgICAg
ICAgICAgICAgICAgc2VsZi50aW1lICs9IHBhdGgudGltZQorCisgICAgICAgICAgICBkZWYgYXBw
ZW5kKHNlbGYsIHBhdGgpOgorICAgICAgICAgICAgICAgICIiIkFkZCBhIFBhdGhEYXRhIG9iamVj
dCB0byB0aGUgZW5kIG9mIHRoZSBjaHVuayIiIgorICAgICAgICAgICAgICAgIHNlbGYucGF0aHMu
YXBwZW5kKHBhdGgpCisgICAgICAgICAgICAgICAgc2VsZi50aW1lICs9IHBhdGgudGltZQorCisg
ICAgICAgICAgICBkZWYgcG9wKHNlbGYpOgorICAgICAgICAgICAgICAgICIiIlJlbW92ZSBQYXRo
RGF0YSBvYmplY3QgZnJvbSB0aGUgZW5kIG9mIHRoZSBjaHVuayIiIgorICAgICAgICAgICAgICAg
IGFzc2VydCBsZW4oc2VsZi5wYXRocykgPiAxCisgICAgICAgICAgICAgICAgc2VsZi50aW1lIC09
IHNlbGYucGF0aHNbLTFdLnRpbWUKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5wYXRocy5w
b3AoKQorCisgICAgICAgICAgICBkZWYgcG9wbGVmdChzZWxmKToKKyAgICAgICAgICAgICAgICAi
IiJSZW1vdmUgUGF0aERhdGEgb2JqZWN0IGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBjaHVuayIiIgor
ICAgICAgICAgICAgICAgIGFzc2VydCBsZW4oc2VsZi5wYXRocykgPiAxCisgICAgICAgICAgICAg
ICAgc2VsZi50aW1lIC09IHNlbGYucGF0aHNbMF0udGltZQorICAgICAgICAgICAgICAgIHJldHVy
biBzZWxmLnBhdGhzLnBvcGxlZnQoKQorCisgICAgICAgICAgICBAcHJvcGVydHkKKyAgICAgICAg
ICAgIGRlZiBiYWRuZXNzKHNlbGZfKTogICMgbm9xYTogTjgwNQorICAgICAgICAgICAgICAgICIi
IkJhZG5lc3MgbWV0cmljIGZvciB0aGlzIGNodW5rIiIiCisgICAgICAgICAgICAgICAgcmV0dXJu
IHNlbGYuX2JhZG5lc3Moc2VsZl8udGltZSkKKworICAgICAgICBpbml0aWFsX3NpemUgPSBsZW4o
YnlfZGlyKSAvIHNlbGYudG90YWxfY2h1bmtzCisgICAgICAgIGNodW5rX2JvdW5kYXJpZXMgPSBb
aW5pdGlhbF9zaXplICogaQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIHhy
YW5nZShzZWxmLnRvdGFsX2NodW5rcyldICsgW2xlbihieV9kaXIpXQorCisgICAgICAgIGNodW5r
cyA9IE9yZGVyZWREaWN0KCkKKyAgICAgICAgZm9yIGksIGxvd2VyIGluIGVudW1lcmF0ZShjaHVu
a19ib3VuZGFyaWVzWzotMV0pOgorICAgICAgICAgICAgdXBwZXIgPSBjaHVua19ib3VuZGFyaWVz
W2kgKyAxXQorICAgICAgICAgICAgcGF0aHMgPSBieV9kaXIudmFsdWVzKClbbG93ZXI6dXBwZXJd
CisgICAgICAgICAgICBjaHVua3NbaV0gPSBDaHVuayhwYXRocywgaSkKKworICAgICAgICBhc3Nl
cnQgc2VsZi5fYWxsX3Rlc3RzKGJ5X2RpcikgPT0gc2VsZi5fY2h1bmtlZF90ZXN0cyhjaHVua3Mp
CisKKyAgICAgICAgcmV0dXJuIGNodW5rcworCisgICAgZGVmIF91cGRhdGVfY2h1bmtzKHNlbGYs
IGNodW5rcyk6CisgICAgICAgICIiIlJ1biBhIHNpbmdsZSBpdGVyYXRpb24gb2YgdGhlIGNodW5r
IHVwZGF0ZSBhbGdvcml0aG0uCisKKyAgICAgICAgOnBhcmFtIGNodW5rczogLSBMaXN0IG9mIGNo
dW5rcworICAgICAgICAiIiIKKyAgICAgICAgI1RPRE86IGNvbnNpZGVyIHJlcGxhY2luZyB0aGlz
IHdpdGggYSBoZWFwCisgICAgICAgIHNvcnRlZF9jaHVua3MgPSBzb3J0ZWQoY2h1bmtzLnZhbHVl
cygpLCBrZXk9bGFtYmRhIHg6LXguYmFkbmVzcykKKyAgICAgICAgZ290X2ltcHJvdmVtZW50ID0g
RmFsc2UKKyAgICAgICAgZm9yIGNodW5rIGluIHNvcnRlZF9jaHVua3M6CisgICAgICAgICAgICBp
ZiBjaHVuay50aW1lIDwgc2VsZi5leHBlY3RlZF90aW1lOgorICAgICAgICAgICAgICAgIGYgPSBz
ZWxmLl9tYXliZV9hZGQKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZiA9IHNl
bGYuX21heWJlX3JlbW92ZQorCisgICAgICAgICAgICBpZiBjaHVuay5pbmRleCA9PSAwOgorICAg
ICAgICAgICAgICAgIG9yZGVyID0gWyJuZXh0Il0KKyAgICAgICAgICAgIGVsaWYgY2h1bmsuaW5k
ZXggPT0gc2VsZi50b3RhbF9jaHVua3MgLSAxOgorICAgICAgICAgICAgICAgIG9yZGVyID0gWyJw
cmV2Il0KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaWYgY2h1bmsudGltZSA8
IHNlbGYuZXhwZWN0ZWRfdGltZToKKyAgICAgICAgICAgICAgICAgICAgIyBGaXJzdCB0cnkgdG8g
YWRkIGEgdGVzdCBmcm9tIHRoZSBuZWlnaGJvcmluZyBjaHVuayB3aXRoIHRoZQorICAgICAgICAg
ICAgICAgICAgICAjIGdyZWF0ZXN0IHRvdGFsIHRpbWUKKyAgICAgICAgICAgICAgICAgICAgaWYg
Y2h1bmtzW2NodW5rLmluZGV4ICsgMV0udGltZSA+IGNodW5rc1tjaHVuay5pbmRleCAtIDFdLnRp
bWU6CisgICAgICAgICAgICAgICAgICAgICAgICBvcmRlciA9IFsibmV4dCIsICJwcmV2Il0KKyAg
ICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyID0g
WyJwcmV2IiwgIm5leHQiXQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg
ICAgICMgRmlyc3QgdHJ5IHRvIHJlbW92ZSBhIHRlc3QgYW5kIGFkZCB0byB0aGUgbmVpZ2hib3Jp
bmcgY2h1bmsgd2l0aCB0aGUKKyAgICAgICAgICAgICAgICAgICAgIyBsb3dlc3QgdG90YWwgdGlt
ZQorICAgICAgICAgICAgICAgICAgICBpZiBjaHVua3NbY2h1bmsuaW5kZXggKyAxXS50aW1lID4g
Y2h1bmtzW2NodW5rLmluZGV4IC0gMV0udGltZToKKyAgICAgICAgICAgICAgICAgICAgICAgIG9y
ZGVyID0gWyJwcmV2IiwgIm5leHQiXQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgICAgICAgICAgb3JkZXIgPSBbIm5leHQiLCAicHJldiJdCisKKyAgICAgICAgICAg
IGZvciBkaXJlY3Rpb24gaW4gb3JkZXI6CisgICAgICAgICAgICAgICAgaWYgZihjaHVua3MsIGNo
dW5rLmluZGV4LCBkaXJlY3Rpb24pOgorICAgICAgICAgICAgICAgICAgICBnb3RfaW1wcm92ZW1l
bnQgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgICAgIGlmIGdv
dF9pbXByb3ZlbWVudDoKKyAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAgIHJldHVybiBn
b3RfaW1wcm92ZW1lbnQKKworICAgIGRlZiBfZ2V0X3Rlc3RzKHNlbGYsIGNodW5rcyk6CisgICAg
ICAgICIiIlJldHVybiB0aGUgbGlzdCBvZiB0ZXN0cyBjb3JyZXNwb25kaW5nIHRvIHRoZSBjaHVu
ayBudW1iZXIgd2UgYXJlIHJ1bm5pbmcuCisKKyAgICAgICAgOnBhcmFtIGNodW5rczogTGlzdCBv
ZiBjaHVua3MiIiIKKyAgICAgICAgdGVzdHMgPSBbXQorICAgICAgICBmb3IgcGF0aCBpbiBjaHVu
a3Nbc2VsZi5jaHVua19udW1iZXIgLSAxXS5wYXRoczoKKyAgICAgICAgICAgIHRlc3RzLmV4dGVu
ZChwYXRoLnRlc3RzKQorCisgICAgICAgIHJldHVybiB0ZXN0cworCisgICAgZGVmIF9fY2FsbF9f
KHNlbGYsIG1hbmlmZXN0X2l0ZXIpOgorICAgICAgICBtYW5pZmVzdCA9IGxpc3QobWFuaWZlc3Rf
aXRlcikKKyAgICAgICAgdGVzdHMgPSBzZWxmLl9nZXRfY2h1bmsobWFuaWZlc3QpCisgICAgICAg
IGZvciBpdGVtIGluIHRlc3RzOgorICAgICAgICAgICAgeWllbGQgaXRlbQorCisKK2NsYXNzIFRl
c3RGaWx0ZXIob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9tYW5pZmVzdHMs
IGluY2x1ZGU9Tm9uZSwgZXhjbHVkZT1Ob25lLCBtYW5pZmVzdF9wYXRoPU5vbmUpOgorICAgICAg
ICBpZiBtYW5pZmVzdF9wYXRoIGlzIG5vdCBOb25lIGFuZCBpbmNsdWRlIGlzIE5vbmU6CisgICAg
ICAgICAgICBzZWxmLm1hbmlmZXN0ID0gbWFuaWZlc3RpbmNsdWRlLmdldF9tYW5pZmVzdChtYW5p
ZmVzdF9wYXRoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5tYW5pZmVzdCA9IG1h
bmlmZXN0aW5jbHVkZS5JbmNsdWRlTWFuaWZlc3QuY3JlYXRlKCkKKyAgICAgICAgICAgIHNlbGYu
bWFuaWZlc3Quc2V0X2RlZmF1bHRzKCkKKworICAgICAgICBpZiBpbmNsdWRlOgorICAgICAgICAg
ICAgc2VsZi5tYW5pZmVzdC5zZXQoInNraXAiLCAidHJ1ZSIpCisgICAgICAgICAgICBmb3IgaXRl
bSBpbiBpbmNsdWRlOgorICAgICAgICAgICAgICAgIHNlbGYubWFuaWZlc3QuYWRkX2luY2x1ZGUo
dGVzdF9tYW5pZmVzdHMsIGl0ZW0pCisKKyAgICAgICAgaWYgZXhjbHVkZToKKyAgICAgICAgICAg
IGZvciBpdGVtIGluIGV4Y2x1ZGU6CisgICAgICAgICAgICAgICAgc2VsZi5tYW5pZmVzdC5hZGRf
ZXhjbHVkZSh0ZXN0X21hbmlmZXN0cywgaXRlbSkKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBt
YW5pZmVzdF9pdGVyKToKKyAgICAgICAgZm9yIHRlc3RfdHlwZSwgdGVzdF9wYXRoLCB0ZXN0cyBp
biBtYW5pZmVzdF9pdGVyOgorICAgICAgICAgICAgaW5jbHVkZV90ZXN0cyA9IHNldCgpCisgICAg
ICAgICAgICBmb3IgdGVzdCBpbiB0ZXN0czoKKyAgICAgICAgICAgICAgICBpZiBzZWxmLm1hbmlm
ZXN0LmluY2x1ZGUodGVzdCk6CisgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVfdGVzdHMuYWRk
KHRlc3QpCisKKyAgICAgICAgICAgIGlmIGluY2x1ZGVfdGVzdHM6CisgICAgICAgICAgICAgICAg
eWllbGQgdGVzdF90eXBlLCB0ZXN0X3BhdGgsIGluY2x1ZGVfdGVzdHMKKworY2xhc3MgVGFnRmls
dGVyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRhZ3MpOgorICAgICAgICBzZWxm
LnRhZ3MgPSBzZXQodGFncykKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCB0ZXN0X2l0ZXIpOgor
ICAgICAgICBmb3IgdGVzdCBpbiB0ZXN0X2l0ZXI6CisgICAgICAgICAgICBpZiB0ZXN0LnRhZ3Mg
JiBzZWxmLnRhZ3M6CisgICAgICAgICAgICAgICAgeWllbGQgdGVzdAorCisKK2NsYXNzIE1hbmlm
ZXN0TG9hZGVyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RfcGF0aHMsIGZv
cmNlX21hbmlmZXN0X3VwZGF0ZT1GYWxzZSwgbWFuaWZlc3RfZG93bmxvYWQ9RmFsc2UpOgorICAg
ICAgICBkb19kZWxheWVkX2ltcG9ydHMoKQorICAgICAgICBzZWxmLnRlc3RfcGF0aHMgPSB0ZXN0
X3BhdGhzCisgICAgICAgIHNlbGYuZm9yY2VfbWFuaWZlc3RfdXBkYXRlID0gZm9yY2VfbWFuaWZl
c3RfdXBkYXRlCisgICAgICAgIHNlbGYubWFuaWZlc3RfZG93bmxvYWQgPSBtYW5pZmVzdF9kb3du
bG9hZAorICAgICAgICBzZWxmLmxvZ2dlciA9IHN0cnVjdHVyZWQuZ2V0X2RlZmF1bHRfbG9nZ2Vy
KCkKKyAgICAgICAgaWYgc2VsZi5sb2dnZXIgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYubG9n
Z2VyID0gc3RydWN0dXJlZC5zdHJ1Y3R1cmVkbG9nLlN0cnVjdHVyZWRMb2dnZXIoIk1hbmlmZXN0
TG9hZGVyIikKKworICAgIGRlZiBsb2FkKHNlbGYpOgorICAgICAgICBydiA9IHt9CisgICAgICAg
IGZvciB1cmxfYmFzZSwgcGF0aHMgaW4gc2VsZi50ZXN0X3BhdGhzLml0ZXJpdGVtcygpOgorICAg
ICAgICAgICAgbWFuaWZlc3RfZmlsZSA9IHNlbGYubG9hZF9tYW5pZmVzdCh1cmxfYmFzZT11cmxf
YmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKipw
YXRocykKKyAgICAgICAgICAgIHBhdGhfZGF0YSA9IHsidXJsX2Jhc2UiOiB1cmxfYmFzZX0KKyAg
ICAgICAgICAgIHBhdGhfZGF0YS51cGRhdGUocGF0aHMpCisgICAgICAgICAgICBydlttYW5pZmVz
dF9maWxlXSA9IHBhdGhfZGF0YQorICAgICAgICByZXR1cm4gcnYKKworICAgIGRlZiBjcmVhdGVf
bWFuaWZlc3Qoc2VsZiwgbWFuaWZlc3RfcGF0aCwgdGVzdHNfcGF0aCwgdXJsX2Jhc2U9Ii8iKToK
KyAgICAgICAgc2VsZi51cGRhdGVfbWFuaWZlc3QobWFuaWZlc3RfcGF0aCwgdGVzdHNfcGF0aCwg
dXJsX2Jhc2UsIHJlY3JlYXRlPVRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRv
d25sb2FkPXNlbGYubWFuaWZlc3RfZG93bmxvYWQpCisKKyAgICBkZWYgdXBkYXRlX21hbmlmZXN0
KHNlbGYsIG1hbmlmZXN0X3BhdGgsIHRlc3RzX3BhdGgsIHVybF9iYXNlPSIvIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJlY3JlYXRlPUZhbHNlLCBkb3dubG9hZD1GYWxzZSk6CisgICAgICAg
IHNlbGYubG9nZ2VyLmluZm8oIlVwZGF0aW5nIHRlc3QgbWFuaWZlc3QgJXMiICUgbWFuaWZlc3Rf
cGF0aCkKKyAgICAgICAgbWFuaWZlc3RfbG9nLnNldHVwKCkKKworICAgICAgICBqc29uX2RhdGEg
PSBOb25lCisgICAgICAgIGlmIGRvd25sb2FkOgorICAgICAgICAgICAgIyBUT0RPOiBtYWtlIHRo
aXMgbm90IGdpdGh1Yi1zcGVjaWZpYworICAgICAgICAgICAgZG93bmxvYWRfZnJvbV9naXRodWIo
bWFuaWZlc3RfcGF0aCwgdGVzdHNfcGF0aCkKKworICAgICAgICBpZiBub3QgcmVjcmVhdGU6Cisg
ICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgd2l0aCBvcGVuKG1hbmlmZXN0X3BhdGgp
IGFzIGY6CisgICAgICAgICAgICAgICAgICAgIGpzb25fZGF0YSA9IGpzb24ubG9hZChmKQorICAg
ICAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICAgICAgI0lmIHRoZSBleGlzdGlu
ZyBmaWxlIGRvZXNuJ3QgZXhpc3QganVzdCBjcmVhdGUgb25lIGZyb20gc2NyYXRjaAorICAgICAg
ICAgICAgICAgIHBhc3MKKworICAgICAgICBpZiBub3QganNvbl9kYXRhOgorICAgICAgICAgICAg
bWFuaWZlc3RfZmlsZSA9IG1hbmlmZXN0Lk1hbmlmZXN0KHVybF9iYXNlKQorICAgICAgICBlbHNl
OgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG1hbmlmZXN0X2ZpbGUgPSBtYW5p
ZmVzdC5NYW5pZmVzdC5mcm9tX2pzb24odGVzdHNfcGF0aCwganNvbl9kYXRhKQorICAgICAgICAg
ICAgZXhjZXB0IG1hbmlmZXN0Lk1hbmlmZXN0VmVyc2lvbk1pc21hdGNoOgorICAgICAgICAgICAg
ICAgIG1hbmlmZXN0X2ZpbGUgPSBtYW5pZmVzdC5NYW5pZmVzdCh1cmxfYmFzZSkKKworICAgICAg
ICBtYW5pZmVzdF91cGRhdGUudXBkYXRlKHRlc3RzX3BhdGgsIG1hbmlmZXN0X2ZpbGUsIFRydWUp
CisKKyAgICAgICAgbWFuaWZlc3Qud3JpdGUobWFuaWZlc3RfZmlsZSwgbWFuaWZlc3RfcGF0aCkK
KworICAgIGRlZiBsb2FkX21hbmlmZXN0KHNlbGYsIHRlc3RzX3BhdGgsIG1hbmlmZXN0X3BhdGgs
IHVybF9iYXNlPSIvIiwgKiprd2FyZ3MpOgorICAgICAgICBpZiAobm90IG9zLnBhdGguZXhpc3Rz
KG1hbmlmZXN0X3BhdGgpIG9yCisgICAgICAgICAgICBzZWxmLmZvcmNlX21hbmlmZXN0X3VwZGF0
ZSk6CisgICAgICAgICAgICBzZWxmLnVwZGF0ZV9tYW5pZmVzdChtYW5pZmVzdF9wYXRoLCB0ZXN0
c19wYXRoLCB1cmxfYmFzZSwgZG93bmxvYWQ9c2VsZi5tYW5pZmVzdF9kb3dubG9hZCkKKyAgICAg
ICAgbWFuaWZlc3RfZmlsZSA9IG1hbmlmZXN0LmxvYWQodGVzdHNfcGF0aCwgbWFuaWZlc3RfcGF0
aCkKKyAgICAgICAgaWYgbWFuaWZlc3RfZmlsZS51cmxfYmFzZSAhPSB1cmxfYmFzZToKKyAgICAg
ICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIlVwZGF0aW5nIHVybF9iYXNlIGluIG1hbmlmZXN0IGZy
b20gJXMgdG8gJXMiICUgKG1hbmlmZXN0X2ZpbGUudXJsX2Jhc2UsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1cmxfYmFzZSkpCisgICAgICAgICAgICBtYW5pZmVzdF9maWxlLnVybF9iYXNlID0gdXJs
X2Jhc2UKKyAgICAgICAgICAgIG1hbmlmZXN0LndyaXRlKG1hbmlmZXN0X2ZpbGUsIG1hbmlmZXN0
X3BhdGgpCisKKyAgICAgICAgcmV0dXJuIG1hbmlmZXN0X2ZpbGUKKworCitkZWYgaXRlcmZpbHRl
cihmaWx0ZXJzLCBpdGVyKToKKyAgICBmb3IgZiBpbiBmaWx0ZXJzOgorICAgICAgICBpdGVyID0g
ZihpdGVyKQorICAgIGZvciBpdGVtIGluIGl0ZXI6CisgICAgICAgIHlpZWxkIGl0ZW0KKworY2xh
c3MgVGVzdExvYWRlcihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLAorICAgICAgICAg
ICAgICAgICB0ZXN0X21hbmlmZXN0cywKKyAgICAgICAgICAgICAgICAgdGVzdF90eXBlcywKKyAg
ICAgICAgICAgICAgICAgcnVuX2luZm8sCisgICAgICAgICAgICAgICAgIG1hbmlmZXN0X2ZpbHRl
cnM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgbWV0YV9maWx0ZXJzPU5vbmUsCisgICAgICAgICAg
ICAgICAgIGNodW5rX3R5cGU9Im5vbmUiLAorICAgICAgICAgICAgICAgICB0b3RhbF9jaHVua3M9
MSwKKyAgICAgICAgICAgICAgICAgY2h1bmtfbnVtYmVyPTEsCisgICAgICAgICAgICAgICAgIGlu
Y2x1ZGVfaHR0cHM9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgc2tpcF90aW1lb3V0PUZhbHNlKToK
KworICAgICAgICBzZWxmLnRlc3RfdHlwZXMgPSB0ZXN0X3R5cGVzCisgICAgICAgIHNlbGYucnVu
X2luZm8gPSBydW5faW5mbworCisgICAgICAgIHNlbGYubWFuaWZlc3RfZmlsdGVycyA9IG1hbmlm
ZXN0X2ZpbHRlcnMgaWYgbWFuaWZlc3RfZmlsdGVycyBpcyBub3QgTm9uZSBlbHNlIFtdCisgICAg
ICAgIHNlbGYubWV0YV9maWx0ZXJzID0gbWV0YV9maWx0ZXJzIGlmIG1ldGFfZmlsdGVycyBpcyBu
b3QgTm9uZSBlbHNlIFtdCisKKyAgICAgICAgc2VsZi5tYW5pZmVzdHMgPSB0ZXN0X21hbmlmZXN0
cworICAgICAgICBzZWxmLnRlc3RzID0gTm9uZQorICAgICAgICBzZWxmLmRpc2FibGVkX3Rlc3Rz
ID0gTm9uZQorICAgICAgICBzZWxmLmluY2x1ZGVfaHR0cHMgPSBpbmNsdWRlX2h0dHBzCisgICAg
ICAgIHNlbGYuc2tpcF90aW1lb3V0ID0gc2tpcF90aW1lb3V0CisKKyAgICAgICAgc2VsZi5jaHVu
a190eXBlID0gY2h1bmtfdHlwZQorICAgICAgICBzZWxmLnRvdGFsX2NodW5rcyA9IHRvdGFsX2No
dW5rcworICAgICAgICBzZWxmLmNodW5rX251bWJlciA9IGNodW5rX251bWJlcgorCisgICAgICAg
IHNlbGYuY2h1bmtlciA9IHsibm9uZSI6IFVuY2h1bmtlZCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICJoYXNoIjogSGFzaENodW5rZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAiZGlyX2hh
c2giOiBEaXJlY3RvcnlIYXNoQ2h1bmtlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJlcXVh
bF90aW1lIjogRXF1YWxUaW1lQ2h1bmtlcn1bY2h1bmtfdHlwZV0odG90YWxfY2h1bmtzLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjaHVua19udW1iZXIpCisKKyAgICAgICAgc2VsZi5fdGVzdF9pZHMgPSBOb25lCisK
KyAgICAgICAgc2VsZi5kaXJlY3RvcnlfbWFuaWZlc3RzID0ge30KKworICAgICAgICBzZWxmLl9s
b2FkX3Rlc3RzKCkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiB0ZXN0X2lkcyhzZWxmKToKKyAg
ICAgICAgaWYgc2VsZi5fdGVzdF9pZHMgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX3Rlc3Rf
aWRzID0gW10KKyAgICAgICAgICAgIGZvciB0ZXN0X2RpY3QgaW4gW3NlbGYuZGlzYWJsZWRfdGVz
dHMsIHNlbGYudGVzdHNdOgorICAgICAgICAgICAgICAgIGZvciB0ZXN0X3R5cGUgaW4gc2VsZi50
ZXN0X3R5cGVzOgorICAgICAgICAgICAgICAgICAgICBzZWxmLl90ZXN0X2lkcyArPSBbaXRlbS5p
ZCBmb3IgaXRlbSBpbiB0ZXN0X2RpY3RbdGVzdF90eXBlXV0KKyAgICAgICAgcmV0dXJuIHNlbGYu
X3Rlc3RfaWRzCisKKyAgICBkZWYgZ2V0X3Rlc3Qoc2VsZiwgbWFuaWZlc3RfdGVzdCwgaW5oZXJp
dF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSk6CisgICAgICAgIGlmIHRlc3RfbWV0YWRhdGEgaXMg
bm90IE5vbmU6CisgICAgICAgICAgICBpbmhlcml0X21ldGFkYXRhLmFwcGVuZCh0ZXN0X21ldGFk
YXRhKQorICAgICAgICAgICAgdGVzdF9tZXRhZGF0YSA9IHRlc3RfbWV0YWRhdGEuZ2V0X3Rlc3Qo
bWFuaWZlc3RfdGVzdC5pZCkKKworICAgICAgICByZXR1cm4gd3B0dGVzdC5mcm9tX21hbmlmZXN0
KG1hbmlmZXN0X3Rlc3QsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEpCisKKyAgICBk
ZWYgbG9hZF9kaXJfbWV0YWRhdGEoc2VsZiwgdGVzdF9tYW5pZmVzdCwgbWV0YWRhdGFfcGF0aCwg
dGVzdF9wYXRoKToKKyAgICAgICAgcnYgPSBbXQorICAgICAgICBwYXRoX3BhcnRzID0gb3MucGF0
aC5kaXJuYW1lKHRlc3RfcGF0aCkuc3BsaXQob3MucGF0aC5zZXApCisgICAgICAgIGZvciBpIGlu
IHhyYW5nZSgxLGxlbihwYXRoX3BhcnRzKSArIDEpOgorICAgICAgICAgICAgcGF0aCA9IG9zLnBh
dGguam9pbihtZXRhZGF0YV9wYXRoLCBvcy5wYXRoLnNlcC5qb2luKHBhdGhfcGFydHNbOmldKSwg
Il9fZGlyX18uaW5pIikKKyAgICAgICAgICAgIGlmIHBhdGggbm90IGluIHNlbGYuZGlyZWN0b3J5
X21hbmlmZXN0czoKKyAgICAgICAgICAgICAgICBzZWxmLmRpcmVjdG9yeV9tYW5pZmVzdHNbcGF0
aF0gPSBtYW5pZmVzdGV4cGVjdGVkLmdldF9kaXJfbWFuaWZlc3QocGF0aCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5ydW5faW5mbykKKyAgICAgICAgICAgIG1hbmlmZXN0ID0gc2Vs
Zi5kaXJlY3RvcnlfbWFuaWZlc3RzW3BhdGhdCisgICAgICAgICAgICBpZiBtYW5pZmVzdCBpcyBu
b3QgTm9uZToKKyAgICAgICAgICAgICAgICBydi5hcHBlbmQobWFuaWZlc3QpCisgICAgICAgIHJl
dHVybiBydgorCisgICAgZGVmIGxvYWRfbWV0YWRhdGEoc2VsZiwgdGVzdF9tYW5pZmVzdCwgbWV0
YWRhdGFfcGF0aCwgdGVzdF9wYXRoKToKKyAgICAgICAgaW5oZXJpdF9tZXRhZGF0YSA9IHNlbGYu
bG9hZF9kaXJfbWV0YWRhdGEodGVzdF9tYW5pZmVzdCwgbWV0YWRhdGFfcGF0aCwgdGVzdF9wYXRo
KQorICAgICAgICB0ZXN0X21ldGFkYXRhID0gbWFuaWZlc3RleHBlY3RlZC5nZXRfbWFuaWZlc3Qo
CisgICAgICAgICAgICBtZXRhZGF0YV9wYXRoLCB0ZXN0X3BhdGgsIHRlc3RfbWFuaWZlc3QudXJs
X2Jhc2UsIHNlbGYucnVuX2luZm8pCisgICAgICAgIHJldHVybiBpbmhlcml0X21ldGFkYXRhLCB0
ZXN0X21ldGFkYXRhCisKKyAgICBkZWYgaXRlcl90ZXN0cyhzZWxmKToKKyAgICAgICAgbWFuaWZl
c3RfaXRlbXMgPSBbXQorCisgICAgICAgIGZvciBtYW5pZmVzdCBpbiBzb3J0ZWQoc2VsZi5tYW5p
ZmVzdHMua2V5cygpLCBrZXk9bGFtYmRhIHg6eC51cmxfYmFzZSk6CisgICAgICAgICAgICBtYW5p
ZmVzdF9pdGVyID0gaXRlcmZpbHRlcihzZWxmLm1hbmlmZXN0X2ZpbHRlcnMsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5pZmVzdC5pdGVydHlwZXMoKnNlbGYudGVz
dF90eXBlcykpCisgICAgICAgICAgICBtYW5pZmVzdF9pdGVtcy5leHRlbmQobWFuaWZlc3RfaXRl
cikKKworICAgICAgICBpZiBzZWxmLmNodW5rZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBt
YW5pZmVzdF9pdGVtcyA9IHNlbGYuY2h1bmtlcihtYW5pZmVzdF9pdGVtcykKKworICAgICAgICBm
b3IgdGVzdF90eXBlLCB0ZXN0X3BhdGgsIHRlc3RzIGluIG1hbmlmZXN0X2l0ZW1zOgorICAgICAg
ICAgICAgbWFuaWZlc3RfZmlsZSA9IGl0ZXIodGVzdHMpLm5leHQoKS5tYW5pZmVzdAorICAgICAg
ICAgICAgbWV0YWRhdGFfcGF0aCA9IHNlbGYubWFuaWZlc3RzW21hbmlmZXN0X2ZpbGVdWyJtZXRh
ZGF0YV9wYXRoIl0KKyAgICAgICAgICAgIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEg
PSBzZWxmLmxvYWRfbWV0YWRhdGEobWFuaWZlc3RfZmlsZSwgbWV0YWRhdGFfcGF0aCwgdGVzdF9w
YXRoKQorCisgICAgICAgICAgICBmb3IgdGVzdCBpbiBpdGVyZmlsdGVyKHNlbGYubWV0YV9maWx0
ZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLml0ZXJfd3B0dGVz
dChpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhLCB0ZXN0cykpOgorICAgICAgICAgICAg
ICAgIHlpZWxkIHRlc3RfcGF0aCwgdGVzdF90eXBlLCB0ZXN0CisKKyAgICBkZWYgaXRlcl93cHR0
ZXN0KHNlbGYsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEsIHRlc3RzKToKKyAgICAg
ICAgZm9yIG1hbmlmZXN0X3Rlc3QgaW4gdGVzdHM6CisgICAgICAgICAgICB5aWVsZCBzZWxmLmdl
dF90ZXN0KG1hbmlmZXN0X3Rlc3QsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEpCisK
KyAgICBkZWYgX2xvYWRfdGVzdHMoc2VsZik6CisgICAgICAgICIiIlJlYWQgaW4gdGhlIHRlc3Rz
IGZyb20gdGhlIG1hbmlmZXN0IGZpbGUgYW5kIGFkZCB0aGVtIHRvIGEgcXVldWUiIiIKKyAgICAg
ICAgdGVzdHMgPSB7ImVuYWJsZWQiOmRlZmF1bHRkaWN0KGxpc3QpLAorICAgICAgICAgICAgICAg
ICAiZGlzYWJsZWQiOmRlZmF1bHRkaWN0KGxpc3QpfQorCisgICAgICAgIGZvciB0ZXN0X3BhdGgs
IHRlc3RfdHlwZSwgdGVzdCBpbiBzZWxmLml0ZXJfdGVzdHMoKToKKyAgICAgICAgICAgIGVuYWJs
ZWQgPSBub3QgdGVzdC5kaXNhYmxlZCgpCisgICAgICAgICAgICBpZiBub3Qgc2VsZi5pbmNsdWRl
X2h0dHBzIGFuZCB0ZXN0LmVudmlyb25tZW50WyJwcm90b2NvbCJdID09ICJodHRwcyI6CisgICAg
ICAgICAgICAgICAgZW5hYmxlZCA9IEZhbHNlCisgICAgICAgICAgICBpZiBzZWxmLnNraXBfdGlt
ZW91dCBhbmQgdGVzdC5leHBlY3RlZCgpID09ICJUSU1FT1VUIjoKKyAgICAgICAgICAgICAgICBl
bmFibGVkID0gRmFsc2UKKyAgICAgICAgICAgIGtleSA9ICJlbmFibGVkIiBpZiBlbmFibGVkIGVs
c2UgImRpc2FibGVkIgorICAgICAgICAgICAgdGVzdHNba2V5XVt0ZXN0X3R5cGVdLmFwcGVuZCh0
ZXN0KQorCisgICAgICAgIHNlbGYudGVzdHMgPSB0ZXN0c1siZW5hYmxlZCJdCisgICAgICAgIHNl
bGYuZGlzYWJsZWRfdGVzdHMgPSB0ZXN0c1siZGlzYWJsZWQiXQorCisgICAgZGVmIGdyb3Vwcyhz
ZWxmLCB0ZXN0X3R5cGVzLCBjaHVua190eXBlPSJub25lIiwgdG90YWxfY2h1bmtzPTEsIGNodW5r
X251bWJlcj0xKToKKyAgICAgICAgZ3JvdXBzID0gc2V0KCkKKworICAgICAgICBmb3IgdGVzdF90
eXBlIGluIHRlc3RfdHlwZXM6CisgICAgICAgICAgICBmb3IgdGVzdCBpbiBzZWxmLnRlc3RzW3Rl
c3RfdHlwZV06CisgICAgICAgICAgICAgICAgZ3JvdXAgPSB0ZXN0LnVybC5zcGxpdCgiLyIpWzFd
CisgICAgICAgICAgICAgICAgZ3JvdXBzLmFkZChncm91cCkKKworICAgICAgICByZXR1cm4gZ3Jv
dXBzCisKKworY2xhc3MgVGVzdFNvdXJjZShvYmplY3QpOgorICAgIF9fbWV0YWNsYXNzX18gPSBB
QkNNZXRhCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9xdWV1ZSk6CisgICAgICAgIHNl
bGYudGVzdF9xdWV1ZSA9IHRlc3RfcXVldWUKKyAgICAgICAgc2VsZi5jdXJyZW50X2dyb3VwID0g
Tm9uZQorICAgICAgICBzZWxmLmN1cnJlbnRfbWV0YWRhdGEgPSBOb25lCisKKyAgICBAYWJzdHJh
Y3RtZXRob2QKKyAgICAjIG5vcWE6IE44MDUKKyAgICAjQGNsYXNzbWV0aG9kIChkb2Vzbid0IGNv
bXBvc2Ugd2l0aCBAYWJzdHJhY3RtZXRob2QpCisgICAgZGVmIG1ha2VfcXVldWUoY2xzLCB0ZXN0
cywgKiprd2FyZ3MpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgZ3JvdXAoc2VsZik6CisgICAg
ICAgIGlmIG5vdCBzZWxmLmN1cnJlbnRfZ3JvdXAgb3IgbGVuKHNlbGYuY3VycmVudF9ncm91cCkg
PT0gMDoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLmN1cnJlbnRfZ3Jv
dXAsIHNlbGYuY3VycmVudF9tZXRhZGF0YSA9IHNlbGYudGVzdF9xdWV1ZS5nZXQoYmxvY2s9RmFs
c2UpCisgICAgICAgICAgICBleGNlcHQgRW1wdHk6CisgICAgICAgICAgICAgICAgcmV0dXJuIE5v
bmUsIE5vbmUKKyAgICAgICAgcmV0dXJuIHNlbGYuY3VycmVudF9ncm91cCwgc2VsZi5jdXJyZW50
X21ldGFkYXRhCisKKworY2xhc3MgR3JvdXBlZFNvdXJjZShUZXN0U291cmNlKToKKyAgICBAY2xh
c3NtZXRob2QKKyAgICBkZWYgbmV3X2dyb3VwKGNscywgc3RhdGUsIHRlc3QsICoqa3dhcmdzKToK
KyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAgQGNsYXNzbWV0aG9kCisg
ICAgZGVmIG1ha2VfcXVldWUoY2xzLCB0ZXN0cywgKiprd2FyZ3MpOgorICAgICAgICB0ZXN0X3F1
ZXVlID0gUXVldWUoKQorICAgICAgICBncm91cHMgPSBbXQorCisgICAgICAgIHN0YXRlID0ge30K
KworICAgICAgICBmb3IgdGVzdCBpbiB0ZXN0czoKKyAgICAgICAgICAgIGlmIGNscy5uZXdfZ3Jv
dXAoc3RhdGUsIHRlc3QsICoqa3dhcmdzKToKKyAgICAgICAgICAgICAgICBncm91cHMuYXBwZW5k
KChkZXF1ZSgpLCB7fSkpCisKKyAgICAgICAgICAgIGdyb3VwLCBtZXRhZGF0YSA9IGdyb3Vwc1st
MV0KKyAgICAgICAgICAgIGdyb3VwLmFwcGVuZCh0ZXN0KQorICAgICAgICAgICAgdGVzdC51cGRh
dGVfbWV0YWRhdGEobWV0YWRhdGEpCisKKyAgICAgICAgZm9yIGl0ZW0gaW4gZ3JvdXBzOgorICAg
ICAgICAgICAgdGVzdF9xdWV1ZS5wdXQoaXRlbSkKKyAgICAgICAgcmV0dXJuIHRlc3RfcXVldWUK
KworCitjbGFzcyBTaW5nbGVUZXN0U291cmNlKFRlc3RTb3VyY2UpOgorICAgIEBjbGFzc21ldGhv
ZAorICAgIGRlZiBtYWtlX3F1ZXVlKGNscywgdGVzdHMsICoqa3dhcmdzKToKKyAgICAgICAgdGVz
dF9xdWV1ZSA9IFF1ZXVlKCkKKyAgICAgICAgcHJvY2Vzc2VzID0ga3dhcmdzWyJwcm9jZXNzZXMi
XQorICAgICAgICBxdWV1ZXMgPSBbZGVxdWUoW10pIGZvciBfIGluIHhyYW5nZShwcm9jZXNzZXMp
XQorICAgICAgICBtZXRhZGF0YXMgPSBbe30gZm9yIF8gaW4geHJhbmdlKHByb2Nlc3NlcyldCisg
ICAgICAgIGZvciB0ZXN0IGluIHRlc3RzOgorICAgICAgICAgICAgaWR4ID0gaGFzaCh0ZXN0Lmlk
KSAlIHByb2Nlc3NlcworICAgICAgICAgICAgZ3JvdXAgPSBxdWV1ZXNbaWR4XQorICAgICAgICAg
ICAgbWV0YWRhdGEgPSBtZXRhZGF0YXNbaWR4XQorICAgICAgICAgICAgZ3JvdXAuYXBwZW5kKHRl
c3QpCisgICAgICAgICAgICB0ZXN0LnVwZGF0ZV9tZXRhZGF0YShtZXRhZGF0YSkKKworICAgICAg
ICBmb3IgaXRlbSBpbiB6aXAocXVldWVzLCBtZXRhZGF0YXMpOgorICAgICAgICAgICAgdGVzdF9x
dWV1ZS5wdXQoaXRlbSkKKworICAgICAgICByZXR1cm4gdGVzdF9xdWV1ZQorCisKK2NsYXNzIFBh
dGhHcm91cGVkU291cmNlKEdyb3VwZWRTb3VyY2UpOgorICAgIEBjbGFzc21ldGhvZAorICAgIGRl
ZiBuZXdfZ3JvdXAoY2xzLCBzdGF0ZSwgdGVzdCwgKiprd2FyZ3MpOgorICAgICAgICBkZXB0aCA9
IGt3YXJncy5nZXQoImRlcHRoIikKKyAgICAgICAgaWYgZGVwdGggaXMgVHJ1ZToKKyAgICAgICAg
ICAgIGRlcHRoID0gTm9uZQorICAgICAgICBwYXRoID0gdXJscGFyc2UudXJsc3BsaXQodGVzdC51
cmwpLnBhdGguc3BsaXQoIi8iKVsxOi0xXVs6ZGVwdGhdCisgICAgICAgIHJ2ID0gcGF0aCAhPSBz
dGF0ZS5nZXQoInByZXZfcGF0aCIpCisgICAgICAgIHN0YXRlWyJwcmV2X3BhdGgiXSA9IHBhdGgK
KyAgICAgICAgcmV0dXJuIHJ2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHJ1bm5lci5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci90ZXN0cnVubmVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkMmQ3NjhiZmE3MGE4
NzRjMzY2ZTFhZTA4YWIxY2E0M2Q1M2JlZWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdGVzdHJ1bm5lci5weQpAQCAtMCwwICsxLDc5OCBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCB1bmljb2RlX2xpdGVyYWxzCisKK2ltcG9ydCBtdWx0aXByb2Nlc3NpbmcKK2ltcG9ydCBzeXMK
K2ltcG9ydCB0aHJlYWRpbmcKK2ltcG9ydCB0cmFjZWJhY2sKK2Zyb20gUXVldWUgaW1wb3J0IEVt
cHR5Citmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBuYW1lZHR1cGxlCitmcm9tIG11bHRpcHJvY2Vz
c2luZyBpbXBvcnQgUHJvY2VzcywgY3VycmVudF9wcm9jZXNzLCBRdWV1ZQorCitmcm9tIG1vemxv
ZyBpbXBvcnQgc3RydWN0dXJlZGxvZworCisjIFNwZWNpYWwgdmFsdWUgdXNlZCBhcyBhIHNlbnRp
bmFsIGluIHZhcmlvdXMgY29tbWFuZHMKK1N0b3AgPSBvYmplY3QoKQorCisKK2NsYXNzIE1lc3Nh
Z2VMb2dnZXIob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZV9mdW5jKToK
KyAgICAgICAgc2VsZi5zZW5kX21lc3NhZ2UgPSBtZXNzYWdlX2Z1bmMKKworICAgIGRlZiBfbG9n
X2RhdGEoc2VsZiwgYWN0aW9uLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYuc2VuZF9tZXNzYWdl
KCJsb2ciLCBhY3Rpb24sIGt3YXJncykKKworICAgIGRlZiBwcm9jZXNzX291dHB1dChzZWxmLCBw
cm9jZXNzLCBkYXRhLCBjb21tYW5kKToKKyAgICAgICAgc2VsZi5fbG9nX2RhdGEoInByb2Nlc3Nf
b3V0cHV0IiwgcHJvY2Vzcz1wcm9jZXNzLCBkYXRhPWRhdGEsIGNvbW1hbmQ9Y29tbWFuZCkKKwor
CitkZWYgX2xvZ19mdW5jKGxldmVsX25hbWUpOgorICAgIGRlZiBsb2coc2VsZiwgbWVzc2FnZSk6
CisgICAgICAgIHNlbGYuX2xvZ19kYXRhKGxldmVsX25hbWUubG93ZXIoKSwgbWVzc2FnZT1tZXNz
YWdlKQorICAgIGxvZy5fX2RvY19fID0gIiIiTG9nIGEgbWVzc2FnZSB3aXRoIGxldmVsICVzCisK
KzpwYXJhbSBtZXNzYWdlOiBUaGUgc3RyaW5nIG1lc3NhZ2UgdG8gbG9nCisiIiIgJSBsZXZlbF9u
YW1lCisgICAgbG9nLl9fbmFtZV9fID0gc3RyKGxldmVsX25hbWUpLmxvd2VyKCkKKyAgICByZXR1
cm4gbG9nCisKKyMgQ3JlYXRlIGFsbCB0aGUgbWV0aG9kcyBvbiBTdHJ1Y3R1cmVkTG9nIGZvciBk
ZWJ1ZyBsZXZlbHMKK2ZvciBsZXZlbF9uYW1lIGluIHN0cnVjdHVyZWRsb2cubG9nX2xldmVsczoK
KyAgICBzZXRhdHRyKE1lc3NhZ2VMb2dnZXIsIGxldmVsX25hbWUubG93ZXIoKSwgX2xvZ19mdW5j
KGxldmVsX25hbWUpKQorCisKK2NsYXNzIFRlc3RSdW5uZXIob2JqZWN0KToKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgY29tbWFuZF9xdWV1ZSwgcmVzdWx0X3F1ZXVlLCBleGVjdXRvcik6CisgICAg
ICAgICIiIkNsYXNzIGltcGxlbWVudGluZyB0aGUgbWFpbiBsb29wIGZvciBydW5uaW5nIHRlc3Rz
LgorCisgICAgICAgIFRoaXMgY2xhc3MgZGVsZWdhdGVzIHRoZSBqb2Igb2YgYWN0dWFsbHkgcnVu
bmluZyBhIHRlc3QgdG8gdGhlIGV4ZWN1dG9yCisgICAgICAgIHRoYXQgaXMgcGFzc2VkIGluLgor
CisgICAgICAgIDpwYXJhbSBjb21tYW5kX3F1ZXVlOiBzdWJwcm9jZXNzLlF1ZXVlIHVzZWQgdG8g
c2VuZCBjb21tYW5kcyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nl
c3MKKyAgICAgICAgOnBhcmFtIHJlc3VsdF9xdWV1ZTogc3VicHJvY2Vzcy5RdWV1ZSB1c2VkIHRv
IHNlbmQgcmVzdWx0cyB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50
IFRlc3RNYW5hZ2VyIHByb2Nlc3MKKyAgICAgICAgOnBhcmFtIGV4ZWN1dG9yOiBUZXN0RXhlY3V0
b3Igb2JqZWN0IHRoYXQgd2lsbCBhY3R1YWxseSBydW4gYSB0ZXN0LgorICAgICAgICAiIiIKKyAg
ICAgICAgc2VsZi5jb21tYW5kX3F1ZXVlID0gY29tbWFuZF9xdWV1ZQorICAgICAgICBzZWxmLnJl
c3VsdF9xdWV1ZSA9IHJlc3VsdF9xdWV1ZQorCisgICAgICAgIHNlbGYuZXhlY3V0b3IgPSBleGVj
dXRvcgorICAgICAgICBzZWxmLm5hbWUgPSBjdXJyZW50X3Byb2Nlc3MoKS5uYW1lCisgICAgICAg
IHNlbGYubG9nZ2VyID0gTWVzc2FnZUxvZ2dlcihzZWxmLnNlbmRfbWVzc2FnZSkKKworICAgIGRl
ZiBfX2VudGVyX18oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgX19leGl0
X18oc2VsZiwgZXhjX3R5cGUsIGV4Y192YWx1ZSwgdHJhY2ViYWNrKToKKyAgICAgICAgc2VsZi50
ZWFyZG93bigpCisKKyAgICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNlbGYubG9nZ2VyLmRl
YnVnKCJFeGVjdXRvciBzZXR1cCIpCisgICAgICAgIHNlbGYuZXhlY3V0b3Iuc2V0dXAoc2VsZikK
KyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkV4ZWN1dG9yIHNldHVwIGRvbmUiKQorCisgICAg
ZGVmIHRlYXJkb3duKHNlbGYpOgorICAgICAgICBzZWxmLmV4ZWN1dG9yLnRlYXJkb3duKCkKKyAg
ICAgICAgc2VsZi5zZW5kX21lc3NhZ2UoInJ1bm5lcl90ZWFyZG93biIpCisgICAgICAgIHNlbGYu
cmVzdWx0X3F1ZXVlID0gTm9uZQorICAgICAgICBzZWxmLmNvbW1hbmRfcXVldWUgPSBOb25lCisg
ICAgICAgIHNlbGYuYnJvd3NlciA9IE5vbmUKKworICAgIGRlZiBydW4oc2VsZik6CisgICAgICAg
ICIiIk1haW4gbG9vcCBhY2NlcHRpbmcgY29tbWFuZHMgb3ZlciB0aGUgcGlwZSBhbmQgdHJpZ2dl
cmluZworICAgICAgICB0aGUgYXNzb2NpYXRlZCBtZXRob2RzIiIiCisgICAgICAgIHNlbGYuc2V0
dXAoKQorICAgICAgICBjb21tYW5kcyA9IHsicnVuX3Rlc3QiOiBzZWxmLnJ1bl90ZXN0LAorICAg
ICAgICAgICAgICAgICAgICAic3RvcCI6IHNlbGYuc3RvcCwKKyAgICAgICAgICAgICAgICAgICAg
IndhaXQiOiBzZWxmLndhaXR9CisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICBjb21t
YW5kLCBhcmdzID0gc2VsZi5jb21tYW5kX3F1ZXVlLmdldCgpCisgICAgICAgICAgICB0cnk6Cisg
ICAgICAgICAgICAgICAgcnYgPSBjb21tYW5kc1tjb21tYW5kXSgqYXJncykKKyAgICAgICAgICAg
IGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICAgICAgc2VsZi5zZW5kX21lc3NhZ2UoImVy
cm9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXJyb3IgcnVubmluZyBj
b21tYW5kICVzIHdpdGggYXJndW1lbnRzICVyOlxuJXMiICUKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoY29tbWFuZCwgYXJncywgdHJhY2ViYWNrLmZvcm1hdF9leGMoKSkpCisg
ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIHJ2IGlzIFN0b3A6CisgICAgICAg
ICAgICAgICAgICAgIGJyZWFrCisKKyAgICBkZWYgc3RvcChzZWxmKToKKyAgICAgICAgcmV0dXJu
IFN0b3AKKworICAgIGRlZiBydW5fdGVzdChzZWxmLCB0ZXN0KToKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgcmV0dXJuIHNlbGYuZXhlY3V0b3IucnVuX3Rlc3QodGVzdCkKKyAgICAgICAgZXhj
ZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmNyaXRpY2FsKHRyYWNlYmFj
ay5mb3JtYXRfZXhjKCkpCisgICAgICAgICAgICByYWlzZQorCisgICAgZGVmIHdhaXQoc2VsZik6
CisgICAgICAgIHNlbGYuZXhlY3V0b3Iud2FpdCgpCisgICAgICAgIHNlbGYuc2VuZF9tZXNzYWdl
KCJ3YWl0X2ZpbmlzaGVkIikKKworICAgIGRlZiBzZW5kX21lc3NhZ2Uoc2VsZiwgY29tbWFuZCwg
KmFyZ3MpOgorICAgICAgICBzZWxmLnJlc3VsdF9xdWV1ZS5wdXQoKGNvbW1hbmQsIGFyZ3MpKQor
CisKK2RlZiBzdGFydF9ydW5uZXIocnVubmVyX2NvbW1hbmRfcXVldWUsIHJ1bm5lcl9yZXN1bHRf
cXVldWUsCisgICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2NscywgZXhlY3V0b3Jfa3dhcmdzLAor
ICAgICAgICAgICAgICAgICBleGVjdXRvcl9icm93c2VyX2NscywgZXhlY3V0b3JfYnJvd3Nlcl9r
d2FyZ3MsCisgICAgICAgICAgICAgICAgIHN0b3BfZmxhZyk6CisgICAgIiIiTGF1bmNoIGEgVGVz
dFJ1bm5lciBpbiBhIG5ldyBwcm9jZXNzIiIiCisgICAgZGVmIGxvZyhsZXZlbCwgbXNnKToKKyAg
ICAgICAgcnVubmVyX3Jlc3VsdF9xdWV1ZS5wdXQoKCJsb2ciLCAobGV2ZWwsIHsibWVzc2FnZSI6
IG1zZ30pKSkKKworICAgIGRlZiBoYW5kbGVfZXJyb3IoZSk6CisgICAgICAgIGxvZygiY3JpdGlj
YWwiLCB0cmFjZWJhY2suZm9ybWF0X2V4YygpKQorICAgICAgICBzdG9wX2ZsYWcuc2V0KCkKKwor
ICAgIHRyeToKKyAgICAgICAgYnJvd3NlciA9IGV4ZWN1dG9yX2Jyb3dzZXJfY2xzKCoqZXhlY3V0
b3JfYnJvd3Nlcl9rd2FyZ3MpCisgICAgICAgIGV4ZWN1dG9yID0gZXhlY3V0b3JfY2xzKGJyb3dz
ZXIsICoqZXhlY3V0b3Jfa3dhcmdzKQorICAgICAgICB3aXRoIFRlc3RSdW5uZXIocnVubmVyX2Nv
bW1hbmRfcXVldWUsIHJ1bm5lcl9yZXN1bHRfcXVldWUsIGV4ZWN1dG9yKSBhcyBydW5uZXI6Cisg
ICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcnVubmVyLnJ1bigpCisgICAgICAgICAg
ICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CisgICAgICAgICAgICAgICAgc3RvcF9mbGFnLnNl
dCgpCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAg
aGFuZGxlX2Vycm9yKGUpCisgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICBoYW5k
bGVfZXJyb3IoZSkKKyAgICBmaW5hbGx5OgorICAgICAgICBydW5uZXJfY29tbWFuZF9xdWV1ZSA9
IE5vbmUKKyAgICAgICAgcnVubmVyX3Jlc3VsdF9xdWV1ZSA9IE5vbmUKKworCittYW5hZ2VyX2Nv
dW50ID0gMAorCisKK2RlZiBuZXh0X21hbmFnZXJfbnVtYmVyKCk6CisgICAgZ2xvYmFsIG1hbmFn
ZXJfY291bnQKKyAgICBsb2NhbCA9IG1hbmFnZXJfY291bnQgPSBtYW5hZ2VyX2NvdW50ICsgMQor
ICAgIHJldHVybiBsb2NhbAorCisKK2NsYXNzIEJyb3dzZXJNYW5hZ2VyKG9iamVjdCk6CisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYnJvd3NlciwgY29tbWFuZF9xdWV1ZSwgbm9fdGlt
ZW91dD1GYWxzZSk6CisgICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCisgICAgICAgIHNlbGYu
YnJvd3NlciA9IGJyb3dzZXIKKyAgICAgICAgc2VsZi5ub190aW1lb3V0ID0gbm9fdGltZW91dAor
ICAgICAgICBzZWxmLmJyb3dzZXJfc2V0dGluZ3MgPSBOb25lCisgICAgICAgIHNlbGYubGFzdF90
ZXN0ID0gTm9uZQorCisgICAgICAgIHNlbGYuc3RhcnRlZCA9IEZhbHNlCisKKyAgICAgICAgc2Vs
Zi5pbml0X3RpbWVyID0gTm9uZQorICAgICAgICBzZWxmLmNvbW1hbmRfcXVldWUgPSBjb21tYW5k
X3F1ZXVlCisKKyAgICBkZWYgdXBkYXRlX3NldHRpbmdzKHNlbGYsIHRlc3QpOgorICAgICAgICBi
cm93c2VyX3NldHRpbmdzID0gc2VsZi5icm93c2VyLnNldHRpbmdzKHRlc3QpCisgICAgICAgIHJl
c3RhcnRfcmVxdWlyZWQgPSAoKHNlbGYuYnJvd3Nlcl9zZXR0aW5ncyBpcyBub3QgTm9uZSBhbmQK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5icm93c2VyX3NldHRpbmdzICE9IGJy
b3dzZXJfc2V0dGluZ3MpIG9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYubGFz
dF90ZXN0ICE9IHRlc3QgYW5kIHRlc3QuZXhwZWN0ZWQoKSA9PSAiQ1JBU0giKSkKKyAgICAgICAg
c2VsZi5icm93c2VyX3NldHRpbmdzID0gYnJvd3Nlcl9zZXR0aW5ncworICAgICAgICBzZWxmLmxh
c3RfdGVzdCA9IHRlc3QKKyAgICAgICAgcmV0dXJuIHJlc3RhcnRfcmVxdWlyZWQKKworICAgIGRl
ZiBpbml0KHNlbGYpOgorICAgICAgICAiIiJMYXVuY2ggdGhlIGJyb3dzZXIgdGhhdCBpcyBiZWlu
ZyB0ZXN0ZWQsCisgICAgICAgIGFuZCB0aGUgVGVzdFJ1bm5lciBwcm9jZXNzIHRoYXQgd2lsbCBy
dW4gdGhlIHRlc3RzLiIiIgorICAgICAgICAjIEl0IHNlZW1zIHRoYXQgdGhpcyBsb2NrIGlzIGhl
bHBmdWwgdG8gcHJldmVudCBzb21lIHJhY2UgdGhhdCBvdGhlcndpc2UKKyAgICAgICAgIyBzb21l
dGltZXMgc3RvcHMgdGhlIHNwYXduZWQgcHJvY2Vzc2VzIGluaXRpYWxpc2luZyBjb3JyZWN0bHks
IGFuZAorICAgICAgICAjIGxlYXZlcyB0aGlzIHRocmVhZCBodW5nCisgICAgICAgIGlmIHNlbGYu
aW5pdF90aW1lciBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYuaW5pdF90aW1lci5jYW5j
ZWwoKQorCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJJbml0IGNhbGxlZCwgc3RhcnRpbmcg
YnJvd3NlciBhbmQgcnVubmVyIikKKworICAgICAgICBpZiBub3Qgc2VsZi5ub190aW1lb3V0Ogor
ICAgICAgICAgICAgc2VsZi5pbml0X3RpbWVyID0gdGhyZWFkaW5nLlRpbWVyKHNlbGYuYnJvd3Nl
ci5pbml0X3RpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5pbml0X3RpbWVvdXQpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIHNl
bGYuaW5pdF90aW1lciBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBzZWxmLmluaXRfdGlt
ZXIuc3RhcnQoKQorICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlN0YXJ0aW5nIGJyb3dz
ZXIgd2l0aCBzZXR0aW5ncyAlciIgJSBzZWxmLmJyb3dzZXJfc2V0dGluZ3MpCisgICAgICAgICAg
ICBzZWxmLmJyb3dzZXIuc3RhcnQoKipzZWxmLmJyb3dzZXJfc2V0dGluZ3MpCisgICAgICAgICAg
ICBzZWxmLmJyb3dzZXJfcGlkID0gc2VsZi5icm93c2VyLnBpZCgpCisgICAgICAgIGV4Y2VwdCBF
eGNlcHRpb246CisgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJGYWlsdXJlIGR1cmlu
ZyBpbml0ICVzIiAlIHRyYWNlYmFjay5mb3JtYXRfZXhjKCkpCisgICAgICAgICAgICBpZiBzZWxm
LmluaXRfdGltZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgc2VsZi5pbml0X3RpbWVy
LmNhbmNlbCgpCisgICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcih0cmFjZWJhY2suZm9ybWF0
X2V4YygpKQorICAgICAgICAgICAgc3VjY2VlZGVkID0gRmFsc2UKKyAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgIHN1Y2NlZWRlZCA9IFRydWUKKyAgICAgICAgICAgIHNlbGYuc3RhcnRlZCA9IFRy
dWUKKworICAgICAgICByZXR1cm4gc3VjY2VlZGVkCisKKyAgICBkZWYgc2VuZF9tZXNzYWdlKHNl
bGYsIGNvbW1hbmQsICphcmdzKToKKyAgICAgICAgc2VsZi5jb21tYW5kX3F1ZXVlLnB1dCgoY29t
bWFuZCwgYXJncykpCisKKyAgICBkZWYgaW5pdF90aW1lb3V0KHNlbGYpOgorICAgICAgICAjIFRo
aXMgaXMgY2FsbGVkIGZyb20gYSBzZXBlcmF0ZSB0aHJlYWQsIHNvIHdlIHNlbmQgYSBtZXNzYWdl
IHRvIHRoZQorICAgICAgICAjIG1haW4gbG9vcCBzbyB3ZSBnZXQgYmFjayBvbnRvIHRoZSBtYW5h
Z2VyIHRocmVhZAorICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiaW5pdF9mYWlsZWQgY2FsbGVk
IGZyb20gdGltZXIiKQorICAgICAgICBzZWxmLnNlbmRfbWVzc2FnZSgiaW5pdF9mYWlsZWQiKQor
CisgICAgZGVmIGFmdGVyX2luaXQoc2VsZik6CisgICAgICAgICIiIkNhbGxiYWNrIHdoZW4gd2Ug
aGF2ZSBzdGFydGVkIHRoZSBicm93c2VyLCBzdGFydGVkIHRoZSByZW1vdGUKKyAgICAgICAgY29u
dHJvbCBjb25uZWN0aW9uLCBhbmQgd2UgYXJlIHJlYWR5IHRvIHN0YXJ0IHRlc3RpbmcuIiIiCisg
ICAgICAgIGlmIHNlbGYuaW5pdF90aW1lciBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYu
aW5pdF90aW1lci5jYW5jZWwoKQorCisgICAgZGVmIHN0b3Aoc2VsZiwgZm9yY2U9RmFsc2UpOgor
ICAgICAgICBzZWxmLmJyb3dzZXIuc3RvcChmb3JjZT1mb3JjZSkKKyAgICAgICAgc2VsZi5zdGFy
dGVkID0gRmFsc2UKKworICAgIGRlZiBjbGVhbnVwKHNlbGYpOgorICAgICAgICBpZiBzZWxmLmlu
aXRfdGltZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLmluaXRfdGltZXIuY2FuY2Vs
KCkKKworICAgIGRlZiBjaGVja19mb3JfY3Jhc2hlcyhzZWxmKToKKyAgICAgICAgc2VsZi5icm93
c2VyLmNoZWNrX2Zvcl9jcmFzaGVzKCkKKworICAgIGRlZiBsb2dfY3Jhc2goc2VsZiwgdGVzdF9p
ZCk6CisgICAgICAgIHNlbGYuYnJvd3Nlci5sb2dfY3Jhc2gocHJvY2Vzcz1zZWxmLmJyb3dzZXJf
cGlkLCB0ZXN0PXRlc3RfaWQpCisKKyAgICBkZWYgaXNfYWxpdmUoc2VsZik6CisgICAgICAgIHJl
dHVybiBzZWxmLmJyb3dzZXIuaXNfYWxpdmUoKQorCisKK2NsYXNzIF9SdW5uZXJNYW5hZ2VyU3Rh
dGUob2JqZWN0KToKKyAgICBiZWZvcmVfaW5pdCA9IG5hbWVkdHVwbGUoImJlZm9yZV9pbml0Iiwg
W10pCisgICAgaW5pdGlhbGl6aW5nID0gbmFtZWR0dXBsZSgiaW5pdGlhbGl6aW5nX2Jyb3dzZXIi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJ0ZXN0IiwgInRlc3RfZ3JvdXAiLCAi
Z3JvdXBfbWV0YWRhdGEiLCAiZmFpbHVyZV9jb3VudCJdKQorICAgIHJ1bm5pbmcgPSBuYW1lZHR1
cGxlKCJydW5uaW5nIiwgWyJ0ZXN0IiwgInRlc3RfZ3JvdXAiLCAiZ3JvdXBfbWV0YWRhdGEiXSkK
KyAgICByZXN0YXJ0aW5nID0gbmFtZWR0dXBsZSgicmVzdGFydGluZyIsIFsidGVzdCIsICJ0ZXN0
X2dyb3VwIiwgImdyb3VwX21ldGFkYXRhIl0pCisgICAgZXJyb3IgPSBuYW1lZHR1cGxlKCJlcnJv
ciIsIFtdKQorICAgIHN0b3AgPSBuYW1lZHR1cGxlKCJzdG9wIiwgW10pCisKKworUnVubmVyTWFu
YWdlclN0YXRlID0gX1J1bm5lck1hbmFnZXJTdGF0ZSgpCisKKworY2xhc3MgVGVzdFJ1bm5lck1h
bmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHN1aXRlX25h
bWUsIHRlc3RfcXVldWUsIHRlc3Rfc291cmNlX2NscywgYnJvd3Nlcl9jbHMsIGJyb3dzZXJfa3dh
cmdzLAorICAgICAgICAgICAgICAgICBleGVjdXRvcl9jbHMsIGV4ZWN1dG9yX2t3YXJncywgc3Rv
cF9mbGFnLCByZXJ1bj0xLCBwYXVzZV9hZnRlcl90ZXN0PUZhbHNlLAorICAgICAgICAgICAgICAg
ICBwYXVzZV9vbl91bmV4cGVjdGVkPUZhbHNlLCByZXN0YXJ0X29uX3VuZXhwZWN0ZWQ9VHJ1ZSwg
ZGVidWdfaW5mbz1Ob25lKToKKyAgICAgICAgIiIiVGhyZWFkIHRoYXQgb3ducyBhIHNpbmdsZSBU
ZXN0UnVubmVyIHByb2Nlc3MgYW5kIGFueSBwcm9jZXNzZXMgcmVxdWlyZWQKKyAgICAgICAgYnkg
dGhlIFRlc3RSdW5uZXIgKGUuZy4gdGhlIEZpcmVmb3ggYmluYXJ5KS4KKworICAgICAgICBUZXN0
UnVubmVyTWFuYWdlcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBsYXVuY2hpbmcgdGhlIGJyb3dzZXIg
cHJvY2VzcyBhbmQgdGhlCisgICAgICAgIHJ1bm5lciBwcm9jZXNzLCBhbmQgZm9yIGxvZ2dpbmcg
dGhlIHRlc3QgcHJvZ3Jlc3MuIFRoZSBhY3R1YWwgdGVzdCBydW5uaW5nCisgICAgICAgIGlzIGRv
bmUgYnkgdGhlIFRlc3RSdW5uZXIuIEluIHBhcnRpY3VsYXIgdGhleToKKworICAgICAgICAqIFN0
YXJ0IHRoZSBiaW5hcnkgb2YgdGhlIHByb2dyYW0gdW5kZXIgdGVzdAorICAgICAgICAqIFN0YXJ0
IHRoZSBUZXN0UnVubmVyCisgICAgICAgICogVGVsbCB0aGUgVGVzdFJ1bm5lciB0byBzdGFydCBh
IHRlc3QsIGlmIGFueQorICAgICAgICAqIExvZyB0aGF0IHRoZSB0ZXN0IHN0YXJ0ZWQKKyAgICAg
ICAgKiBMb2cgdGhlIHRlc3QgcmVzdWx0cworICAgICAgICAqIFRha2UgYW55IHJlbWVkaWFsIGFj
dGlvbiByZXF1aXJlZCBlLmcuIHJlc3RhcnQgY3Jhc2hlZCBvciBodW5nCisgICAgICAgICAgcHJv
Y2Vzc2VzCisgICAgICAgICIiIgorICAgICAgICBzZWxmLnN1aXRlX25hbWUgPSBzdWl0ZV9uYW1l
CisKKyAgICAgICAgc2VsZi50ZXN0X3NvdXJjZSA9IHRlc3Rfc291cmNlX2Nscyh0ZXN0X3F1ZXVl
KQorCisgICAgICAgIHNlbGYuYnJvd3Nlcl9jbHMgPSBicm93c2VyX2NscworICAgICAgICBzZWxm
LmJyb3dzZXJfa3dhcmdzID0gYnJvd3Nlcl9rd2FyZ3MKKworICAgICAgICBzZWxmLmV4ZWN1dG9y
X2NscyA9IGV4ZWN1dG9yX2NscworICAgICAgICBzZWxmLmV4ZWN1dG9yX2t3YXJncyA9IGV4ZWN1
dG9yX2t3YXJncworCisgICAgICAgICMgRmxhZ3MgdXNlZCB0byBzaHV0IGRvd24gdGhpcyB0aHJl
YWQgaWYgd2UgZ2V0IGEgc2lnaW50CisgICAgICAgIHNlbGYucGFyZW50X3N0b3BfZmxhZyA9IHN0
b3BfZmxhZworICAgICAgICBzZWxmLmNoaWxkX3N0b3BfZmxhZyA9IG11bHRpcHJvY2Vzc2luZy5F
dmVudCgpCisKKyAgICAgICAgc2VsZi5yZXJ1biA9IHJlcnVuCisgICAgICAgIHNlbGYucnVuX2Nv
dW50ID0gMAorICAgICAgICBzZWxmLnBhdXNlX2FmdGVyX3Rlc3QgPSBwYXVzZV9hZnRlcl90ZXN0
CisgICAgICAgIHNlbGYucGF1c2Vfb25fdW5leHBlY3RlZCA9IHBhdXNlX29uX3VuZXhwZWN0ZWQK
KyAgICAgICAgc2VsZi5yZXN0YXJ0X29uX3VuZXhwZWN0ZWQgPSByZXN0YXJ0X29uX3VuZXhwZWN0
ZWQKKyAgICAgICAgc2VsZi5kZWJ1Z19pbmZvID0gZGVidWdfaW5mbworCisgICAgICAgIHNlbGYu
bWFuYWdlcl9udW1iZXIgPSBuZXh0X21hbmFnZXJfbnVtYmVyKCkKKworICAgICAgICBzZWxmLmNv
bW1hbmRfcXVldWUgPSBRdWV1ZSgpCisgICAgICAgIHNlbGYucmVtb3RlX3F1ZXVlID0gUXVldWUo
KQorCisgICAgICAgIHNlbGYudGVzdF9ydW5uZXJfcHJvYyA9IE5vbmUKKworICAgICAgICB0aHJl
YWRpbmcuVGhyZWFkLl9faW5pdF9fKHNlbGYsIG5hbWU9IlRocmVhZC1UZXN0cnVubmVyTWFuYWdl
ci0laSIgJSBzZWxmLm1hbmFnZXJfbnVtYmVyKQorICAgICAgICAjIFRoaXMgaXMgc3RhcnRlZCBp
biB0aGUgYWN0dWFsIG5ldyB0aHJlYWQKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBOb25lCisKKyAg
ICAgICAgc2VsZi50ZXN0X2NvdW50ID0gMAorICAgICAgICBzZWxmLnVuZXhwZWN0ZWRfY291bnQg
PSAwCisKKyAgICAgICAgIyBUaGlzIG1heSBub3QgcmVhbGx5IGJlIHdoYXQgd2Ugd2FudAorICAg
ICAgICBzZWxmLmRhZW1vbiA9IFRydWUKKworICAgICAgICBzZWxmLm1heF9yZXN0YXJ0cyA9IDUK
KworICAgICAgICBzZWxmLmJyb3dzZXIgPSBOb25lCisKKyAgICBkZWYgcnVuKHNlbGYpOgorICAg
ICAgICAiIiJNYWluIGxvb3AgZm9yIHRoZSBUZXN0TWFuYWdlci4KKworICAgICAgICBUZXN0TWFu
YWdlcnMgZ2VuZXJhbGx5IHJlY2VpdmUgY29tbWFuZHMgZnJvbSB0aGVpcgorICAgICAgICBUZXN0
UnVubmVyIHVwZGF0aW5nIHRoZW0gb24gdGhlIHN0YXR1cyBvZiBhIHRlc3QuIFRoZXkKKyAgICAg
ICAgbWF5IGFsc28gaGF2ZSBhIHN0b3AgZmxhZyBzZXQgYnkgdGhlIG1haW4gdGhyZWFkIGluZGlj
YXRpbmcKKyAgICAgICAgdGhhdCB0aGUgbWFuYWdlciBzaG91bGQgc2h1dCBkb3duIHRoZSBuZXh0
IHRpbWUgdGhlIGV2ZW50IGxvb3AKKyAgICAgICAgc3BpbnMuIiIiCisgICAgICAgIHNlbGYubG9n
Z2VyID0gc3RydWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKHNlbGYuc3VpdGVfbmFtZSkKKyAg
ICAgICAgd2l0aCBzZWxmLmJyb3dzZXJfY2xzKHNlbGYubG9nZ2VyLCAqKnNlbGYuYnJvd3Nlcl9r
d2FyZ3MpIGFzIGJyb3dzZXI6CisgICAgICAgICAgICBzZWxmLmJyb3dzZXIgPSBCcm93c2VyTWFu
YWdlcihzZWxmLmxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJyb3dzZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLmNvbW1hbmRfcXVldWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBub190aW1lb3V0PXNlbGYuZGVidWdfaW5mbyBpcyBub3QgTm9uZSkKKyAgICAgICAgICAg
IGRpc3BhdGNoID0geworICAgICAgICAgICAgICAgIFJ1bm5lck1hbmFnZXJTdGF0ZS5iZWZvcmVf
aW5pdDogc2VsZi5zdGFydF9pbml0LAorICAgICAgICAgICAgICAgIFJ1bm5lck1hbmFnZXJTdGF0
ZS5pbml0aWFsaXppbmc6IHNlbGYuaW5pdCwKKyAgICAgICAgICAgICAgICBSdW5uZXJNYW5hZ2Vy
U3RhdGUucnVubmluZzogc2VsZi5ydW5fdGVzdCwKKyAgICAgICAgICAgICAgICBSdW5uZXJNYW5h
Z2VyU3RhdGUucmVzdGFydGluZzogc2VsZi5yZXN0YXJ0X3J1bm5lcgorICAgICAgICAgICAgfQor
CisgICAgICAgICAgICBzZWxmLnN0YXRlID0gUnVubmVyTWFuYWdlclN0YXRlLmJlZm9yZV9pbml0
KCkKKyAgICAgICAgICAgIGVuZF9zdGF0ZXMgPSAoUnVubmVyTWFuYWdlclN0YXRlLnN0b3AsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bm5lck1hbmFnZXJTdGF0ZS5lcnJvcikKKworICAg
ICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHdoaWxlIG5vdCBpc2luc3RhbmNlKHNlbGYu
c3RhdGUsIGVuZF9zdGF0ZXMpOgorICAgICAgICAgICAgICAgICAgICBmID0gZGlzcGF0Y2guZ2V0
KHNlbGYuc3RhdGUuX19jbGFzc19fKQorICAgICAgICAgICAgICAgICAgICB3aGlsZSBmOgorICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkRpc3BhdGNoICVzIiAlIGYu
X19uYW1lX18pCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLnNob3VsZF9zdG9wKCk6
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICAgICAgICAg
ICAgICBuZXdfc3RhdGUgPSBmKCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5ld19zdGF0
ZSBpcyBOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gbmV3X3N0YXRlCisgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygibmV3IHN0YXRlOiAlcyIgJSBzZWxmLnN0YXRlLl9fY2xh
c3NfXy5fX25hbWVfXykKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc2Vs
Zi5zdGF0ZSwgZW5kX3N0YXRlcyk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
CisgICAgICAgICAgICAgICAgICAgICAgICBmID0gZGlzcGF0Y2guZ2V0KHNlbGYuc3RhdGUuX19j
bGFzc19fKQorCisgICAgICAgICAgICAgICAgICAgIG5ld19zdGF0ZSA9IE5vbmUKKyAgICAgICAg
ICAgICAgICAgICAgd2hpbGUgbmV3X3N0YXRlIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgICAg
ICAgICBuZXdfc3RhdGUgPSBzZWxmLndhaXRfZXZlbnQoKQorICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgc2VsZi5zaG91bGRfc3RvcCgpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybgorICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gbmV3X3N0YXRlCisgICAgICAg
ICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJuZXcgc3RhdGU6ICVzIiAlIHNlbGYuc3Rh
dGUuX19jbGFzc19fLl9fbmFtZV9fKQorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBl
OgorICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKHRyYWNlYmFjay5mb3JtYXRfZXhj
KGUpKQorICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJUZXN0UnVubmVyTWFuYWdlciBtYWluIGxvb3Ag
dGVybWluYXRpbmcsIHN0YXJ0aW5nIGNsZWFudXAiKQorICAgICAgICAgICAgICAgIGNsZWFuID0g
aXNpbnN0YW5jZShzZWxmLnN0YXRlLCBSdW5uZXJNYW5hZ2VyU3RhdGUuc3RvcCkKKyAgICAgICAg
ICAgICAgICBzZWxmLnN0b3BfcnVubmVyKGZvcmNlPW5vdCBjbGVhbikKKyAgICAgICAgICAgICAg
ICBzZWxmLnRlYXJkb3duKCkKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlRlc3RSdW5uZXJN
YW5hZ2VyIG1haW4gbG9vcCB0ZXJtaW5hdGVkIikKKworICAgIGRlZiB3YWl0X2V2ZW50KHNlbGYp
OgorICAgICAgICBkaXNwYXRjaCA9IHsKKyAgICAgICAgICAgIFJ1bm5lck1hbmFnZXJTdGF0ZS5i
ZWZvcmVfaW5pdDoge30sCisgICAgICAgICAgICBSdW5uZXJNYW5hZ2VyU3RhdGUuaW5pdGlhbGl6
aW5nOgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICJpbml0X3N1Y2NlZWRlZCI6IHNl
bGYuaW5pdF9zdWNjZWVkZWQsCisgICAgICAgICAgICAgICAgImluaXRfZmFpbGVkIjogc2VsZi5p
bml0X2ZhaWxlZCwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBSdW5uZXJNYW5hZ2VyU3Rh
dGUucnVubmluZzoKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAidGVzdF9lbmRlZCI6
IHNlbGYudGVzdF9lbmRlZCwKKyAgICAgICAgICAgICAgICAid2FpdF9maW5pc2hlZCI6IHNlbGYu
d2FpdF9maW5pc2hlZCwKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBSdW5uZXJNYW5hZ2Vy
U3RhdGUucmVzdGFydGluZzoge30sCisgICAgICAgICAgICBSdW5uZXJNYW5hZ2VyU3RhdGUuZXJy
b3I6IHt9LAorICAgICAgICAgICAgUnVubmVyTWFuYWdlclN0YXRlLnN0b3A6IHt9LAorICAgICAg
ICAgICAgTm9uZTogeworICAgICAgICAgICAgICAgICJydW5uZXJfdGVhcmRvd24iOiBzZWxmLnJ1
bm5lcl90ZWFyZG93biwKKyAgICAgICAgICAgICAgICAibG9nIjogc2VsZi5sb2csCisgICAgICAg
ICAgICAgICAgImVycm9yIjogc2VsZi5lcnJvcgorICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIGNvbW1hbmQsIGRhdGEgPSBzZWxmLmNvbW1hbmRfcXVl
dWUuZ2V0KFRydWUsIDEpCisgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiR290IGNvbW1h
bmQ6ICVyIiAlIGNvbW1hbmQpCisgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAg
c2VsZi5sb2dnZXIuZXJyb3IoIkdvdCBJT0Vycm9yIGZyb20gcG9sbCIpCisgICAgICAgICAgICBy
ZXR1cm4gUnVubmVyTWFuYWdlclN0YXRlLnJlc3RhcnRpbmcoMCkKKyAgICAgICAgZXhjZXB0IEVt
cHR5OgorICAgICAgICAgICAgaWYgKHNlbGYuZGVidWdfaW5mbyBhbmQgc2VsZi5kZWJ1Z19pbmZv
LmludGVyYWN0aXZlIGFuZAorICAgICAgICAgICAgICAgIHNlbGYuYnJvd3Nlci5zdGFydGVkIGFu
ZCBub3Qgc2VsZi5icm93c2VyLmlzX2FsaXZlKCkpOgorICAgICAgICAgICAgICAgIHNlbGYubG9n
Z2VyLmRlYnVnKCJEZWJ1Z2dlciBleGl0ZWQiKQorICAgICAgICAgICAgICAgIHJldHVybiBSdW5u
ZXJNYW5hZ2VyU3RhdGUuc3RvcCgpCisKKyAgICAgICAgICAgIGlmIChpc2luc3RhbmNlKHNlbGYu
c3RhdGUsIFJ1bm5lck1hbmFnZXJTdGF0ZS5ydW5uaW5nKSBhbmQKKyAgICAgICAgICAgICAgICBu
b3Qgc2VsZi50ZXN0X3J1bm5lcl9wcm9jLmlzX2FsaXZlKCkpOgorICAgICAgICAgICAgICAgIGlm
IG5vdCBzZWxmLmNvbW1hbmRfcXVldWUuZW1wdHkoKToKKyAgICAgICAgICAgICAgICAgICAgIyBX
ZSBnb3QgYSBuZXcgbWVzc2FnZSBzbyBwcm9jZXNzIHRoYXQKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuCisKKyAgICAgICAgICAgICAgICAjIElmIHdlIGdvdCB0byBoZXJlIHRoZSBydW5uZXIg
cHJlc3VtYWJseSBzaHV0IGRvd24KKyAgICAgICAgICAgICAgICAjIHVuZXhwZWN0ZWRseQorICAg
ICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIlRlc3QgcnVubmVyIHByb2Nlc3Mgc2h1dCBk
b3duIikKKworICAgICAgICAgICAgICAgIGlmIHNlbGYuc3RhdGUudGVzdCBpcyBub3QgTm9uZToK
KyAgICAgICAgICAgICAgICAgICAgIyBUaGlzIGNvdWxkIGhhcHBlbiBpZiB0aGUgdGVzdCBydW5u
ZXIgY3Jhc2hlZCBmb3Igc29tZSBvdGhlcgorICAgICAgICAgICAgICAgICAgICAjIHJlYXNvbgor
ICAgICAgICAgICAgICAgICAgICAjIE5lZWQgdG8gY29uc2lkZXIgdGhlIHVubGlrZWx5IGNhc2Ug
d2hlcmUgb25lIHRlc3QgY2F1c2VzIHRoZQorICAgICAgICAgICAgICAgICAgICAjIHJ1bm5lciBw
cm9jZXNzIHRvIHJlcGVhdGVkbHkgZGllCisgICAgICAgICAgICAgICAgICAgIHNlbGYubG9nZ2Vy
LmNyaXRpY2FsKCJMYXN0IHRlc3QgZGlkIG5vdCBjb21wbGV0ZSIpCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBSdW5uZXJNYW5hZ2VyU3RhdGUuZXJyb3IoKQorICAgICAgICAgICAgICAgIHNl
bGYubG9nZ2VyLndhcm5pbmcoIk1vcmUgdGVzdHMgZm91bmQsIGJ1dCBydW5uZXIgcHJvY2VzcyBk
aWVkLCByZXN0YXJ0aW5nIikKKyAgICAgICAgICAgICAgICByZXR1cm4gUnVubmVyTWFuYWdlclN0
YXRlLnJlc3RhcnRpbmcoMCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGYgPSAoZGlzcGF0
Y2guZ2V0KHNlbGYuc3RhdGUuX19jbGFzc19fLCB7fSkuZ2V0KGNvbW1hbmQpIG9yCisgICAgICAg
ICAgICAgICAgIGRpc3BhdGNoLmdldChOb25lLCB7fSkuZ2V0KGNvbW1hbmQpKQorICAgICAgICAg
ICAgaWYgbm90IGY6CisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiR290IGNv
bW1hbmQgJXMgaW4gc3RhdGUgJXMiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChjb21tYW5kLCBzZWxmLnN0YXRlLl9fY2xhc3NfXy5fX25hbWVfXykpCisgICAgICAgICAg
ICAgICAgcmV0dXJuCisgICAgICAgICAgICByZXR1cm4gZigqZGF0YSkKKworICAgIGRlZiBzaG91
bGRfc3RvcChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuY2hpbGRfc3RvcF9mbGFnLmlzX3Nl
dCgpIG9yIHNlbGYucGFyZW50X3N0b3BfZmxhZy5pc19zZXQoKQorCisgICAgZGVmIHN0YXJ0X2lu
aXQoc2VsZik6CisgICAgICAgIHRlc3QsIHRlc3RfZ3JvdXAsIGdyb3VwX21ldGFkYXRhID0gc2Vs
Zi5nZXRfbmV4dF90ZXN0KCkKKyAgICAgICAgaWYgdGVzdCBpcyBOb25lOgorICAgICAgICAgICAg
cmV0dXJuIFJ1bm5lck1hbmFnZXJTdGF0ZS5zdG9wKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIHJldHVybiBSdW5uZXJNYW5hZ2VyU3RhdGUuaW5pdGlhbGl6aW5nKHRlc3QsIHRlc3RfZ3Jv
dXAsIGdyb3VwX21ldGFkYXRhLCAwKQorCisgICAgZGVmIGluaXQoc2VsZik6CisgICAgICAgIGFz
c2VydCBpc2luc3RhbmNlKHNlbGYuc3RhdGUsIFJ1bm5lck1hbmFnZXJTdGF0ZS5pbml0aWFsaXpp
bmcpCisgICAgICAgIGlmIHNlbGYuc3RhdGUuZmFpbHVyZV9jb3VudCA+IHNlbGYubWF4X3Jlc3Rh
cnRzOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIuZXJyb3IoIk1heCByZXN0YXJ0cyBleGNlZWRl
ZCIpCisgICAgICAgICAgICByZXR1cm4gUnVubmVyTWFuYWdlclN0YXRlLmVycm9yKCkKKworICAg
ICAgICBzZWxmLmJyb3dzZXIudXBkYXRlX3NldHRpbmdzKHNlbGYuc3RhdGUudGVzdCkKKworICAg
ICAgICByZXN1bHQgPSBzZWxmLmJyb3dzZXIuaW5pdCgpCisgICAgICAgIGlmIHJlc3VsdCBpcyBT
dG9wOgorICAgICAgICAgICAgcmV0dXJuIFJ1bm5lck1hbmFnZXJTdGF0ZS5lcnJvcigpCisgICAg
ICAgIGVsaWYgbm90IHJlc3VsdDoKKyAgICAgICAgICAgIHJldHVybiBSdW5uZXJNYW5hZ2VyU3Rh
dGUuaW5pdGlhbGl6aW5nKHNlbGYuc3RhdGUudGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUudGVzdF9ncm91cCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUu
Z3JvdXBfbWV0YWRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLnN0YXRlLmZhaWx1cmVfY291bnQgKyAxKQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgc2VsZi5leGVjdXRvcl9rd2FyZ3NbImdyb3VwX21ldGFkYXRhIl0gPSBzZWxm
LnN0YXRlLmdyb3VwX21ldGFkYXRhCisgICAgICAgICAgICBzZWxmLnN0YXJ0X3Rlc3RfcnVubmVy
KCkKKworICAgIGRlZiBzdGFydF90ZXN0X3J1bm5lcihzZWxmKToKKyAgICAgICAgIyBOb3RlIHRo
YXQgd2UgbmVlZCB0byBiZSBjYXJlZnVsIHRvIHN0YXJ0IHRoZSBicm93c2VyIGJlZm9yZSB0aGUK
KyAgICAgICAgIyB0ZXN0IHJ1bm5lciB0byBlbnN1cmUgdGhhdCBhbnkgc3RhdGUgc2V0IHdoZW4g
dGhlIGJyb3dzZXIgaXMgc3RhcnRlZAorICAgICAgICAjIGNhbiBiZSBwYXNzZWQgaW4gdG8gdGhl
IHRlc3QgcnVubmVyLgorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShzZWxmLnN0YXRlLCBSdW5u
ZXJNYW5hZ2VyU3RhdGUuaW5pdGlhbGl6aW5nKQorICAgICAgICBhc3NlcnQgc2VsZi5jb21tYW5k
X3F1ZXVlIGlzIG5vdCBOb25lCisgICAgICAgIGFzc2VydCBzZWxmLnJlbW90ZV9xdWV1ZSBpcyBu
b3QgTm9uZQorICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJTdGFydGluZyBydW5uZXIiKQorICAg
ICAgICBleGVjdXRvcl9icm93c2VyX2NscywgZXhlY3V0b3JfYnJvd3Nlcl9rd2FyZ3MgPSBzZWxm
LmJyb3dzZXIuYnJvd3Nlci5leGVjdXRvcl9icm93c2VyKCkKKworICAgICAgICBhcmdzID0gKHNl
bGYucmVtb3RlX3F1ZXVlLAorICAgICAgICAgICAgICAgIHNlbGYuY29tbWFuZF9xdWV1ZSwKKyAg
ICAgICAgICAgICAgICBzZWxmLmV4ZWN1dG9yX2NscywKKyAgICAgICAgICAgICAgICBzZWxmLmV4
ZWN1dG9yX2t3YXJncywKKyAgICAgICAgICAgICAgICBleGVjdXRvcl9icm93c2VyX2NscywKKyAg
ICAgICAgICAgICAgICBleGVjdXRvcl9icm93c2VyX2t3YXJncywKKyAgICAgICAgICAgICAgICBz
ZWxmLmNoaWxkX3N0b3BfZmxhZykKKyAgICAgICAgc2VsZi50ZXN0X3J1bm5lcl9wcm9jID0gUHJv
Y2Vzcyh0YXJnZXQ9c3RhcnRfcnVubmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFyZ3M9YXJncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBuYW1lPSJUaHJlYWQtVGVzdFJ1bm5lci0laSIgJSBzZWxmLm1hbmFnZXJfbnVtYmVyKQor
ICAgICAgICBzZWxmLnRlc3RfcnVubmVyX3Byb2Muc3RhcnQoKQorICAgICAgICBzZWxmLmxvZ2dl
ci5kZWJ1ZygiVGVzdCBydW5uZXIgc3RhcnRlZCIpCisgICAgICAgICMgTm93IHdlIHdhaXQgZm9y
IGVpdGhlciBhbiBpbml0X3N1Y2NlZWRlZCBldmVudCBvciBhbiBpbml0X2ZhaWxlZCBldmVudAor
CisgICAgZGVmIGluaXRfc3VjY2VlZGVkKHNlbGYpOgorICAgICAgICBhc3NlcnQgaXNpbnN0YW5j
ZShzZWxmLnN0YXRlLCBSdW5uZXJNYW5hZ2VyU3RhdGUuaW5pdGlhbGl6aW5nKQorICAgICAgICBz
ZWxmLmJyb3dzZXIuYWZ0ZXJfaW5pdCgpCisgICAgICAgIHJldHVybiBSdW5uZXJNYW5hZ2VyU3Rh
dGUucnVubmluZyhzZWxmLnN0YXRlLnRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLnN0YXRlLnRlc3RfZ3JvdXAsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnN0YXRlLmdyb3VwX21ldGFkYXRhKQorCisgICAg
ZGVmIGluaXRfZmFpbGVkKHNlbGYpOgorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShzZWxmLnN0
YXRlLCBSdW5uZXJNYW5hZ2VyU3RhdGUuaW5pdGlhbGl6aW5nKQorICAgICAgICBzZWxmLmJyb3dz
ZXIuYWZ0ZXJfaW5pdCgpCisgICAgICAgIHNlbGYuc3RvcF9ydW5uZXIoZm9yY2U9VHJ1ZSkKKyAg
ICAgICAgcmV0dXJuIFJ1bm5lck1hbmFnZXJTdGF0ZS5pbml0aWFsaXppbmcoc2VsZi5zdGF0ZS50
ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
LnN0YXRlLnRlc3RfZ3JvdXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuc3RhdGUuZ3JvdXBfbWV0YWRhdGEsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUuZmFpbHVyZV9jb3VudCArIDEp
CisKKyAgICBkZWYgZ2V0X25leHRfdGVzdChzZWxmLCB0ZXN0X2dyb3VwPU5vbmUpOgorICAgICAg
ICB0ZXN0ID0gTm9uZQorICAgICAgICB3aGlsZSB0ZXN0IGlzIE5vbmU6CisgICAgICAgICAgICB3
aGlsZSB0ZXN0X2dyb3VwIGlzIE5vbmUgb3IgbGVuKHRlc3RfZ3JvdXApID09IDA6CisgICAgICAg
ICAgICAgICAgdGVzdF9ncm91cCwgZ3JvdXBfbWV0YWRhdGEgPSBzZWxmLnRlc3Rfc291cmNlLmdy
b3VwKCkKKyAgICAgICAgICAgICAgICBpZiB0ZXN0X2dyb3VwIGlzIE5vbmU6CisgICAgICAgICAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIk5vIG1vcmUgdGVzdHMiKQorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gTm9uZSwgTm9uZSwgTm9uZQorICAgICAgICAgICAgdGVzdCA9IHRlc3Rf
Z3JvdXAucG9wbGVmdCgpCisgICAgICAgIHNlbGYucnVuX2NvdW50ID0gMAorICAgICAgICByZXR1
cm4gdGVzdCwgdGVzdF9ncm91cCwgZ3JvdXBfbWV0YWRhdGEKKworICAgIGRlZiBydW5fdGVzdChz
ZWxmKToKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uoc2VsZi5zdGF0ZSwgUnVubmVyTWFuYWdl
clN0YXRlLnJ1bm5pbmcpCisgICAgICAgIGFzc2VydCBzZWxmLnN0YXRlLnRlc3QgaXMgbm90IE5v
bmUKKworICAgICAgICBpZiBzZWxmLmJyb3dzZXIudXBkYXRlX3NldHRpbmdzKHNlbGYuc3RhdGUu
dGVzdCk6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJSZXN0YXJ0aW5nIGJyb3dzZXIg
Zm9yIG5ldyB0ZXN0IGVudmlyb25tZW50IikKKyAgICAgICAgICAgIHJldHVybiBSdW5uZXJNYW5h
Z2VyU3RhdGUucmVzdGFydGluZyhzZWxmLnN0YXRlLnRlc3QsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZS50ZXN0X2dyb3VwLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUu
Z3JvdXBfbWV0YWRhdGEpCisKKyAgICAgICAgc2VsZi5sb2dnZXIudGVzdF9zdGFydChzZWxmLnN0
YXRlLnRlc3QuaWQpCisgICAgICAgIGlmIHNlbGYucmVydW4gPiAxOgorICAgICAgICAgICAgc2Vs
Zi5sb2dnZXIuaW5mbygiUnVuICVkLyVkIiAlIChzZWxmLnJ1bl9jb3VudCwgc2VsZi5yZXJ1bikp
CisgICAgICAgIHNlbGYucnVuX2NvdW50ICs9IDEKKyAgICAgICAgc2VsZi5zZW5kX21lc3NhZ2Uo
InJ1bl90ZXN0Iiwgc2VsZi5zdGF0ZS50ZXN0KQorCisgICAgZGVmIHRlc3RfZW5kZWQoc2VsZiwg
dGVzdCwgcmVzdWx0cyk6CisgICAgICAgICIiIkhhbmRsZSB0aGUgZW5kIG9mIGEgdGVzdC4KKwor
ICAgICAgICBPdXRwdXQgdGhlIHJlc3VsdCBvZiBlYWNoIHN1YnRlc3QsIGFuZCB0aGUgcmVzdWx0
IG9mIHRoZSBvdmVyYWxsCisgICAgICAgIGhhcm5lc3MgdG8gdGhlIGxvZ3MuCisgICAgICAgICIi
IgorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShzZWxmLnN0YXRlLCBSdW5uZXJNYW5hZ2VyU3Rh
dGUucnVubmluZykKKyAgICAgICAgYXNzZXJ0IHRlc3QgPT0gc2VsZi5zdGF0ZS50ZXN0CisgICAg
ICAgICMgV3JpdGUgdGhlIHJlc3VsdCBvZiBlYWNoIHN1YnRlc3QKKyAgICAgICAgZmlsZV9yZXN1
bHQsIHRlc3RfcmVzdWx0cyA9IHJlc3VsdHMKKyAgICAgICAgc3VidGVzdF91bmV4cGVjdGVkID0g
RmFsc2UKKyAgICAgICAgZm9yIHJlc3VsdCBpbiB0ZXN0X3Jlc3VsdHM6CisgICAgICAgICAgICBp
ZiB0ZXN0LmRpc2FibGVkKHJlc3VsdC5uYW1lKToKKyAgICAgICAgICAgICAgICBjb250aW51ZQor
ICAgICAgICAgICAgZXhwZWN0ZWQgPSB0ZXN0LmV4cGVjdGVkKHJlc3VsdC5uYW1lKQorICAgICAg
ICAgICAgaXNfdW5leHBlY3RlZCA9IGV4cGVjdGVkICE9IHJlc3VsdC5zdGF0dXMKKworICAgICAg
ICAgICAgaWYgaXNfdW5leHBlY3RlZDoKKyAgICAgICAgICAgICAgICBzZWxmLnVuZXhwZWN0ZWRf
Y291bnQgKz0gMQorICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJVbmV4cGVjdGVk
IGNvdW50IGluIHRoaXMgdGhyZWFkICVpIiAlIHNlbGYudW5leHBlY3RlZF9jb3VudCkKKyAgICAg
ICAgICAgICAgICBzdWJ0ZXN0X3VuZXhwZWN0ZWQgPSBUcnVlCisgICAgICAgICAgICBzZWxmLmxv
Z2dlci50ZXN0X3N0YXR1cyh0ZXN0LmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0Lm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXN1bHQuc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2Fn
ZT1yZXN1bHQubWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4
cGVjdGVkPWV4cGVjdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rh
Y2s9cmVzdWx0LnN0YWNrKQorCisgICAgICAgICMgVE9ETzogY29uc2lkZXIgY2hhbmdpbmcgcmVz
dWx0IGlmIHRoZXJlIGlzIGEgY3Jhc2ggZHVtcCBmaWxlCisKKyAgICAgICAgIyBXcml0ZSB0aGUg
cmVzdWx0IG9mIHRoZSB0ZXN0IGhhcm5lc3MKKyAgICAgICAgZXhwZWN0ZWQgPSB0ZXN0LmV4cGVj
dGVkKCkKKyAgICAgICAgc3RhdHVzID0gZmlsZV9yZXN1bHQuc3RhdHVzIGlmIGZpbGVfcmVzdWx0
LnN0YXR1cyAhPSAiRVhURVJOQUwtVElNRU9VVCIgZWxzZSAiVElNRU9VVCIKKworICAgICAgICBp
ZiBmaWxlX3Jlc3VsdC5zdGF0dXMgaW4gKCJUSU1FT1VUIiwgIkVYVEVSTkFMLVRJTUVPVVQiKToK
KyAgICAgICAgICAgIGlmIHNlbGYuYnJvd3Nlci5jaGVja19mb3JfY3Jhc2hlcygpOgorICAgICAg
ICAgICAgICAgIHN0YXR1cyA9ICJDUkFTSCIKKworICAgICAgICBzZWxmLnRlc3RfY291bnQgKz0g
MQorICAgICAgICBpc191bmV4cGVjdGVkID0gZXhwZWN0ZWQgIT0gc3RhdHVzCisgICAgICAgIGlm
IGlzX3VuZXhwZWN0ZWQ6CisgICAgICAgICAgICBzZWxmLnVuZXhwZWN0ZWRfY291bnQgKz0gMQor
ICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlVuZXhwZWN0ZWQgY291bnQgaW4gdGhpcyB0
aHJlYWQgJWkiICUgc2VsZi51bmV4cGVjdGVkX2NvdW50KQorICAgICAgICBpZiBzdGF0dXMgPT0g
IkNSQVNIIjoKKyAgICAgICAgICAgIHNlbGYuYnJvd3Nlci5sb2dfY3Jhc2godGVzdC5pZCkKKwor
ICAgICAgICBzZWxmLmxvZ2dlci50ZXN0X2VuZCh0ZXN0LmlkLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9
ZmlsZV9yZXN1bHQubWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0
ZWQ9ZXhwZWN0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhPWZpbGVfcmVz
dWx0LmV4dHJhKQorCisgICAgICAgIHJlc3RhcnRfYmVmb3JlX25leHQgPSAodGVzdC5yZXN0YXJ0
X2FmdGVyIG9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZV9yZXN1bHQuc3Rh
dHVzIGluICgiQ1JBU0giLCAiRVhURVJOQUwtVElNRU9VVCIpIG9yCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKChzdWJ0ZXN0X3VuZXhwZWN0ZWQgb3IgaXNfdW5leHBlY3RlZCkgYW5k
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmVzdGFydF9vbl91bmV4cGVj
dGVkKSkKKworICAgICAgICBpZiAoc2VsZi5wYXVzZV9hZnRlcl90ZXN0IG9yCisgICAgICAgICAg
ICAoc2VsZi5wYXVzZV9vbl91bmV4cGVjdGVkIGFuZCAoc3VidGVzdF91bmV4cGVjdGVkIG9yIGlz
X3VuZXhwZWN0ZWQpKSk6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJQYXVzaW5nIHVu
dGlsIHRoZSBicm93c2VyIGV4aXRzIikKKyAgICAgICAgICAgIHNlbGYuc2VuZF9tZXNzYWdlKCJ3
YWl0IikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmFmdGVyX3Rlc3Rf
ZW5kKHRlc3QsIHJlc3RhcnRfYmVmb3JlX25leHQpCisKKyAgICBkZWYgd2FpdF9maW5pc2hlZChz
ZWxmKToKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uoc2VsZi5zdGF0ZSwgUnVubmVyTWFuYWdl
clN0YXRlLnJ1bm5pbmcpCisgICAgICAgICMgVGhlIGJyb3dzZXIgc2hvdWxkIGJlIHN0b3BwZWQg
YWxyZWFkeSwgYnV0IHRoaXMgZW5zdXJlcyB3ZSBkbyBhbnkgcG9zdC1zdG9wCisgICAgICAgICMg
cHJvY2Vzc2luZworICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiV2FpdCBmaW5pc2hlZCIpCisK
KyAgICAgICAgcmV0dXJuIHNlbGYuYWZ0ZXJfdGVzdF9lbmQoc2VsZi5zdGF0ZS50ZXN0LCBUcnVl
KQorCisgICAgZGVmIGFmdGVyX3Rlc3RfZW5kKHNlbGYsIHRlc3QsIHJlc3RhcnQpOgorICAgICAg
ICBhc3NlcnQgaXNpbnN0YW5jZShzZWxmLnN0YXRlLCBSdW5uZXJNYW5hZ2VyU3RhdGUucnVubmlu
ZykKKyAgICAgICAgaWYgc2VsZi5ydW5fY291bnQgPT0gc2VsZi5yZXJ1bjoKKyAgICAgICAgICAg
IHRlc3QsIHRlc3RfZ3JvdXAsIGdyb3VwX21ldGFkYXRhID0gc2VsZi5nZXRfbmV4dF90ZXN0KCkK
KyAgICAgICAgICAgIGlmIHRlc3QgaXMgTm9uZToKKyAgICAgICAgICAgICAgICByZXR1cm4gUnVu
bmVyTWFuYWdlclN0YXRlLnN0b3AoKQorICAgICAgICAgICAgaWYgdGVzdF9ncm91cCAhPSBzZWxm
LnN0YXRlLnRlc3RfZ3JvdXA6CisgICAgICAgICAgICAgICAgIyBXZSBhcmUgc3RhcnRpbmcgYSBu
ZXcgZ3JvdXAgb2YgdGVzdHMsIHNvIGZvcmNlIGEgcmVzdGFydAorICAgICAgICAgICAgICAgIHJl
c3RhcnQgPSBUcnVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0ZXN0ID0gdGVzdAorICAg
ICAgICAgICAgdGVzdF9ncm91cCA9IHNlbGYuc3RhdGUudGVzdF9ncm91cAorICAgICAgICAgICAg
Z3JvdXBfbWV0YWRhdGEgPSBzZWxmLnN0YXRlLmdyb3VwX21ldGFkYXRhCisgICAgICAgIGlmIHJl
c3RhcnQ6CisgICAgICAgICAgICByZXR1cm4gUnVubmVyTWFuYWdlclN0YXRlLnJlc3RhcnRpbmco
dGVzdCwgdGVzdF9ncm91cCwgZ3JvdXBfbWV0YWRhdGEpCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICByZXR1cm4gUnVubmVyTWFuYWdlclN0YXRlLnJ1bm5pbmcodGVzdCwgdGVzdF9ncm91cCwg
Z3JvdXBfbWV0YWRhdGEpCisKKyAgICBkZWYgcmVzdGFydF9ydW5uZXIoc2VsZik6CisgICAgICAg
ICIiIlN0b3AgYW5kIHJlc3RhcnQgdGhlIFRlc3RSdW5uZXIiIiIKKyAgICAgICAgYXNzZXJ0IGlz
aW5zdGFuY2Uoc2VsZi5zdGF0ZSwgUnVubmVyTWFuYWdlclN0YXRlLnJlc3RhcnRpbmcpCisgICAg
ICAgIHNlbGYuc3RvcF9ydW5uZXIoKQorICAgICAgICByZXR1cm4gUnVubmVyTWFuYWdlclN0YXRl
LmluaXRpYWxpemluZyhzZWxmLnN0YXRlLnRlc3QsIHNlbGYuc3RhdGUudGVzdF9ncm91cCwgc2Vs
Zi5zdGF0ZS5ncm91cF9tZXRhZGF0YSwgMCkKKworICAgIGRlZiBsb2coc2VsZiwgYWN0aW9uLCBr
d2FyZ3MpOgorICAgICAgICBnZXRhdHRyKHNlbGYubG9nZ2VyLCBhY3Rpb24pKCoqa3dhcmdzKQor
CisgICAgZGVmIGVycm9yKHNlbGYsIG1lc3NhZ2UpOgorICAgICAgICBzZWxmLmxvZ2dlci5lcnJv
cihtZXNzYWdlKQorICAgICAgICBzZWxmLnJlc3RhcnRfcnVubmVyKCkKKworICAgIGRlZiBzdG9w
X3J1bm5lcihzZWxmLCBmb3JjZT1GYWxzZSk6CisgICAgICAgICIiIlN0b3AgdGhlIFRlc3RSdW5u
ZXIgYW5kIHRoZSBicm93c2VyIGJpbmFyeS4iIiIKKyAgICAgICAgaWYgc2VsZi50ZXN0X3J1bm5l
cl9wcm9jIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBpZiBzZWxmLnRl
c3RfcnVubmVyX3Byb2MuaXNfYWxpdmUoKToKKyAgICAgICAgICAgIHNlbGYuc2VuZF9tZXNzYWdl
KCJzdG9wIikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5icm93c2VyLnN0b3AoZm9y
Y2U9Zm9yY2UpCisgICAgICAgICAgICBzZWxmLmVuc3VyZV9ydW5uZXJfc3RvcHBlZCgpCisgICAg
ICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLmNsZWFudXAoKQorCisgICAgZGVmIHRlYXJk
b3duKHNlbGYpOgorICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygidGVhcmRvd24gaW4gdGVzdHJ1
bm5lcm1hbmFnZXIiKQorICAgICAgICBzZWxmLnRlc3RfcnVubmVyX3Byb2MgPSBOb25lCisgICAg
ICAgIHNlbGYuY29tbWFuZF9xdWV1ZS5jbG9zZSgpCisgICAgICAgIHNlbGYucmVtb3RlX3F1ZXVl
LmNsb3NlKCkKKyAgICAgICAgc2VsZi5jb21tYW5kX3F1ZXVlID0gTm9uZQorICAgICAgICBzZWxm
LnJlbW90ZV9xdWV1ZSA9IE5vbmUKKworICAgIGRlZiBlbnN1cmVfcnVubmVyX3N0b3BwZWQoc2Vs
Zik6CisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJlbnN1cmVfcnVubmVyX3N0b3BwZWQiKQor
ICAgICAgICBpZiBzZWxmLnRlc3RfcnVubmVyX3Byb2MgaXMgTm9uZToKKyAgICAgICAgICAgIHJl
dHVybgorCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJ3YWl0aW5nIGZvciBydW5uZXIgcHJv
Y2VzcyB0byBlbmQiKQorICAgICAgICBzZWxmLnRlc3RfcnVubmVyX3Byb2Muam9pbigxMCkKKyAg
ICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkFmdGVyIGpvaW4iKQorICAgICAgICBpZiBzZWxmLnRl
c3RfcnVubmVyX3Byb2MuaXNfYWxpdmUoKToKKyAgICAgICAgICAgICMgVGhpcyBtaWdodCBsZWFr
IGEgZmlsZSBoYW5kbGUgZnJvbSB0aGUgcXVldWUKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLndh
cm5pbmcoIkZvcmNpYmx5IHRlcm1pbmF0aW5nIHJ1bm5lciBwcm9jZXNzIikKKyAgICAgICAgICAg
IHNlbGYudGVzdF9ydW5uZXJfcHJvYy50ZXJtaW5hdGUoKQorICAgICAgICAgICAgc2VsZi50ZXN0
X3J1bm5lcl9wcm9jLmpvaW4oMTApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmxv
Z2dlci5kZWJ1ZygiVGVzdHJ1bm5lciBleGl0ZWQgd2l0aCBjb2RlICVpIiAlIHNlbGYudGVzdF9y
dW5uZXJfcHJvYy5leGl0Y29kZSkKKworICAgIGRlZiBydW5uZXJfdGVhcmRvd24oc2VsZik6Cisg
ICAgICAgIHNlbGYuZW5zdXJlX3J1bm5lcl9zdG9wcGVkKCkKKyAgICAgICAgcmV0dXJuIFJ1bm5l
ck1hbmFnZXJTdGF0ZS5zdG9wKCkKKworICAgIGRlZiBzZW5kX21lc3NhZ2Uoc2VsZiwgY29tbWFu
ZCwgKmFyZ3MpOgorICAgICAgICBzZWxmLnJlbW90ZV9xdWV1ZS5wdXQoKGNvbW1hbmQsIGFyZ3Mp
KQorCisgICAgZGVmIGNsZWFudXAoc2VsZik6CisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJU
ZXN0TWFuYWdlciBjbGVhbnVwIikKKyAgICAgICAgaWYgc2VsZi5icm93c2VyOgorICAgICAgICAg
ICAgc2VsZi5icm93c2VyLmNsZWFudXAoKQorICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgICAgIGNtZCwgZGF0YSA9IHNlbGYuY29tbWFuZF9xdWV1ZS5n
ZXRfbm93YWl0KCkKKyAgICAgICAgICAgIGV4Y2VwdCBFbXB0eToKKyAgICAgICAgICAgICAgICBi
cmVhaworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBpZiBjbWQgPT0gImxvZyI6
CisgICAgICAgICAgICAgICAgICAgIHNlbGYubG9nKCpkYXRhKQorICAgICAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIiVyOiAlciIgJSAo
Y21kLCBkYXRhKSkKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIHRyeToKKyAgICAg
ICAgICAgICAgICBjbWQsIGRhdGEgPSBzZWxmLnJlbW90ZV9xdWV1ZS5nZXRfbm93YWl0KCkKKyAg
ICAgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCIlcjogJXIiICUgKGNtZCwgZGF0YSkp
CisgICAgICAgICAgICBleGNlcHQgRW1wdHk6CisgICAgICAgICAgICAgICAgYnJlYWsKKworCitk
ZWYgbWFrZV90ZXN0X3F1ZXVlKHRlc3RzLCB0ZXN0X3NvdXJjZV9jbHMsICoqdGVzdF9zb3VyY2Vf
a3dhcmdzKToKKyAgICBxdWV1ZSA9IHRlc3Rfc291cmNlX2Nscy5tYWtlX3F1ZXVlKHRlc3RzLCAq
KnRlc3Rfc291cmNlX2t3YXJncykKKworICAgICMgVGhlcmUgaXMgYSByYWNlIGNvbmRpdGlvbiB0
aGF0IG1lYW5zIHNvbWV0aW1lcyB3ZSBjb250aW51ZQorICAgICMgYmVmb3JlIHRoZSB0ZXN0cyBo
YXZlIGJlZW4gd3JpdHRlbiB0byB0aGUgdW5kZXJseWluZyBwaXBlLgorICAgICMgUG9sbGluZyB0
aGUgcGlwZSBmb3IgZGF0YSBoZXJlIGF2b2lkcyB0aGF0CisgICAgcXVldWUuX3JlYWRlci5wb2xs
KDEwKQorICAgIGFzc2VydCBub3QgcXVldWUuZW1wdHkoKQorICAgIHJldHVybiBxdWV1ZQorCisK
K2NsYXNzIE1hbmFnZXJHcm91cChvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzdWl0
ZV9uYW1lLCBzaXplLCB0ZXN0X3NvdXJjZV9jbHMsIHRlc3Rfc291cmNlX2t3YXJncywKKyAgICAg
ICAgICAgICAgICAgYnJvd3Nlcl9jbHMsIGJyb3dzZXJfa3dhcmdzLAorICAgICAgICAgICAgICAg
ICBleGVjdXRvcl9jbHMsIGV4ZWN1dG9yX2t3YXJncywKKyAgICAgICAgICAgICAgICAgcmVydW49
MSwKKyAgICAgICAgICAgICAgICAgcGF1c2VfYWZ0ZXJfdGVzdD1GYWxzZSwKKyAgICAgICAgICAg
ICAgICAgcGF1c2Vfb25fdW5leHBlY3RlZD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgcmVzdGFy
dF9vbl91bmV4cGVjdGVkPVRydWUsCisgICAgICAgICAgICAgICAgIGRlYnVnX2luZm89Tm9uZSk6
CisgICAgICAgICIiIk1haW4gdGhyZWFkIG9iamVjdCB0aGF0IG93bnMgYWxsIHRoZSBUZXN0TWFu
YWdlciB0aHJlYWRzLiIiIgorICAgICAgICBzZWxmLnN1aXRlX25hbWUgPSBzdWl0ZV9uYW1lCisg
ICAgICAgIHNlbGYuc2l6ZSA9IHNpemUKKyAgICAgICAgc2VsZi50ZXN0X3NvdXJjZV9jbHMgPSB0
ZXN0X3NvdXJjZV9jbHMKKyAgICAgICAgc2VsZi50ZXN0X3NvdXJjZV9rd2FyZ3MgPSB0ZXN0X3Nv
dXJjZV9rd2FyZ3MKKyAgICAgICAgc2VsZi5icm93c2VyX2NscyA9IGJyb3dzZXJfY2xzCisgICAg
ICAgIHNlbGYuYnJvd3Nlcl9rd2FyZ3MgPSBicm93c2VyX2t3YXJncworICAgICAgICBzZWxmLmV4
ZWN1dG9yX2NscyA9IGV4ZWN1dG9yX2NscworICAgICAgICBzZWxmLmV4ZWN1dG9yX2t3YXJncyA9
IGV4ZWN1dG9yX2t3YXJncworICAgICAgICBzZWxmLnBhdXNlX2FmdGVyX3Rlc3QgPSBwYXVzZV9h
ZnRlcl90ZXN0CisgICAgICAgIHNlbGYucGF1c2Vfb25fdW5leHBlY3RlZCA9IHBhdXNlX29uX3Vu
ZXhwZWN0ZWQKKyAgICAgICAgc2VsZi5yZXN0YXJ0X29uX3VuZXhwZWN0ZWQgPSByZXN0YXJ0X29u
X3VuZXhwZWN0ZWQKKyAgICAgICAgc2VsZi5kZWJ1Z19pbmZvID0gZGVidWdfaW5mbworICAgICAg
ICBzZWxmLnJlcnVuID0gcmVydW4KKworICAgICAgICBzZWxmLnBvb2wgPSBzZXQoKQorICAgICAg
ICAjIEV2ZW50IHRoYXQgaXMgcG9sbGVkIGJ5IHRocmVhZHMgc28gdGhhdCB0aGV5IGNhbiBncmFj
ZWZ1bGx5IGV4aXQgaW4gdGhlIGZhY2UKKyAgICAgICAgIyBvZiBzaWdpbnQKKyAgICAgICAgc2Vs
Zi5zdG9wX2ZsYWcgPSB0aHJlYWRpbmcuRXZlbnQoKQorICAgICAgICBzZWxmLmxvZ2dlciA9IHN0
cnVjdHVyZWRsb2cuU3RydWN0dXJlZExvZ2dlcihzdWl0ZV9uYW1lKQorCisgICAgZGVmIF9fZW50
ZXJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBfX2V4aXRfXyhzZWxm
LCBleGNfdHlwZSwgZXhjX3ZhbCwgZXhjX3RiKToKKyAgICAgICAgc2VsZi5zdG9wKCkKKworICAg
IGRlZiBydW4oc2VsZiwgdGVzdF90eXBlLCB0ZXN0cyk6CisgICAgICAgICIiIlN0YXJ0IGFsbCBt
YW5hZ2VycyBpbiB0aGUgZ3JvdXAiIiIKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlVzaW5n
ICVpIHByb2Nlc3NlcyIgJSBzZWxmLnNpemUpCisgICAgICAgIHR5cGVfdGVzdHMgPSB0ZXN0c1t0
ZXN0X3R5cGVdCisgICAgICAgIGlmIG5vdCB0eXBlX3Rlc3RzOgorICAgICAgICAgICAgc2VsZi5s
b2dnZXIuaW5mbygiTm8gJXMgdGVzdHMgdG8gcnVuIiAlIHRlc3RfdHlwZSkKKyAgICAgICAgICAg
IHJldHVybgorCisgICAgICAgIHRlc3RfcXVldWUgPSBtYWtlX3Rlc3RfcXVldWUodHlwZV90ZXN0
cywgc2VsZi50ZXN0X3NvdXJjZV9jbHMsICoqc2VsZi50ZXN0X3NvdXJjZV9rd2FyZ3MpCisKKyAg
ICAgICAgZm9yIF8gaW4gcmFuZ2Uoc2VsZi5zaXplKToKKyAgICAgICAgICAgIG1hbmFnZXIgPSBU
ZXN0UnVubmVyTWFuYWdlcihzZWxmLnN1aXRlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGVzdF9xdWV1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLnRlc3Rfc291cmNlX2NscywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLmJyb3dzZXJfY2xzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYnJvd3Nlcl9rd2FyZ3MsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRvcl9jbHMsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRvcl9rd2FyZ3MsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdG9wX2ZsYWcsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZXJ1biwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBhdXNlX2FmdGVyX3Rlc3QsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wYXVzZV9vbl91bmV4
cGVjdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmVz
dGFydF9vbl91bmV4cGVjdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYuZGVidWdfaW5mbykKKyAgICAgICAgICAgIG1hbmFnZXIuc3RhcnQoKQorICAgICAg
ICAgICAgc2VsZi5wb29sLmFkZChtYW5hZ2VyKQorICAgICAgICBzZWxmLndhaXQoKQorCisgICAg
ZGVmIGlzX2FsaXZlKHNlbGYpOgorICAgICAgICAiIiJCb29sZWFuIGluZGljYXRpbmcgd2hldGhl
ciBhbnkgbWFuYWdlciBpbiB0aGUgZ3JvdXAgaXMgc3RpbGwgYWxpdmUiIiIKKyAgICAgICAgcmV0
dXJuIGFueShtYW5hZ2VyLmlzX2FsaXZlKCkgZm9yIG1hbmFnZXIgaW4gc2VsZi5wb29sKQorCisg
ICAgZGVmIHdhaXQoc2VsZik6CisgICAgICAgICIiIldhaXQgZm9yIGFsbCB0aGUgbWFuYWdlcnMg
aW4gdGhlIGdyb3VwIHRvIGZpbmlzaCIiIgorICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLnBvb2w6
CisgICAgICAgICAgICBpdGVtLmpvaW4oKQorCisgICAgZGVmIHN0b3Aoc2VsZik6CisgICAgICAg
ICIiIlNldCB0aGUgc3RvcCBmbGFnIHNvIHRoYXQgYWxsIG1hbmFnZXJzIGluIHRoZSBncm91cCBz
dG9wIGFzIHNvb24KKyAgICAgICAgYXMgcG9zc2libGUiIiIKKyAgICAgICAgc2VsZi5zdG9wX2Zs
YWcuc2V0KCkKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlN0b3AgZmxhZyBzZXQgaW4gTWFu
YWdlckdyb3VwIikKKworICAgIGRlZiB0ZXN0X2NvdW50KHNlbGYpOgorICAgICAgICByZXR1cm4g
c3VtKGl0ZW0udGVzdF9jb3VudCBmb3IgaXRlbSBpbiBzZWxmLnBvb2wpCisKKyAgICBkZWYgdW5l
eHBlY3RlZF9jb3VudChzZWxmKToKKyAgICAgICAgcmV0dXJuIHN1bShpdGVtLnVuZXhwZWN0ZWRf
Y291bnQgZm9yIGl0ZW0gaW4gc2VsZi5wb29sKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rl
c3RzL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL19faW5pdF9fLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvX19pbml0X18ucHkKQEAgLTAsMCArMSBAQAorIyBU
aGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3Rvcnkg
Zm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3Rlc3RzL2Jhc2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYmFzZS5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iNTE3M2YzYjUxM2VhNGYwYTM3ZGIyY2NkYzBhOTQ4ODkzYzRmZTQ1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jhc2UucHkKQEAgLTAsMCArMSw2MCBAQAor
aW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK2Zyb20gb3MucGF0aCBpbXBvcnQgZGlybmFtZSwgam9p
bgorCitpbXBvcnQgcHl0ZXN0CisKK3N5cy5wYXRoLmluc2VydCgwLCBqb2luKGRpcm5hbWUoX19m
aWxlX18pLCAiLi4iLCAiLi4iKSkKKworZnJvbSB3cHRydW5uZXIgaW1wb3J0IGJyb3dzZXJzCisK
KworX3Byb2R1Y3RzID0gYnJvd3NlcnMucHJvZHVjdF9saXN0CitfYWN0aXZlX3Byb2R1Y3RzID0g
c2V0KCkKKworaWYgIkNVUlJFTlRfVE9YX0VOViIgaW4gb3MuZW52aXJvbjoKKyAgICBjdXJyZW50
X3RveF9lbnZfc3BsaXQgPSBvcy5lbnZpcm9uWyJDVVJSRU5UX1RPWF9FTlYiXS5zcGxpdCgiLSIp
CisKKyAgICB0b3hfZW52X2V4dHJhX2Jyb3dzZXJzID0geworICAgICAgICAiY2hyb21lIjogeyJj
aHJvbWVfYW5kcm9pZCJ9LAorICAgICAgICAic2Vydm8iOiB7InNlcnZvZHJpdmVyIn0sCisgICAg
fQorCisgICAgX2FjdGl2ZV9wcm9kdWN0cyA9IHNldChfcHJvZHVjdHMpICYgc2V0KGN1cnJlbnRf
dG94X2Vudl9zcGxpdCkKKyAgICBmb3IgcHJvZHVjdCBpbiBmcm96ZW5zZXQoX2FjdGl2ZV9wcm9k
dWN0cyk6CisgICAgICAgIF9hY3RpdmVfcHJvZHVjdHMgfD0gdG94X2Vudl9leHRyYV9icm93c2Vy
cy5nZXQocHJvZHVjdCwgc2V0KCkpCitlbHNlOgorICAgIF9hY3RpdmVfcHJvZHVjdHMgPSBzZXQo
X3Byb2R1Y3RzKQorCisKK2NsYXNzIGFsbF9wcm9kdWN0cyhvYmplY3QpOgorICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBhcmcsIG1hcmtzPXt9KToKKyAgICAgICAgc2VsZi5hcmcgPSBhcmcKKyAgICAg
ICAgc2VsZi5tYXJrcyA9IG1hcmtzCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZik6CisgICAg
ICAgIHBhcmFtcyA9IFtdCisgICAgICAgIGZvciBwcm9kdWN0IGluIF9wcm9kdWN0czoKKyAgICAg
ICAgICAgIGlmIHByb2R1Y3QgaW4gc2VsZi5tYXJrczoKKyAgICAgICAgICAgICAgICBwYXJhbXMu
YXBwZW5kKHB5dGVzdC5wYXJhbShwcm9kdWN0LCBtYXJrcz1zZWxmLm1hcmtzW3Byb2R1Y3RdKSkK
KyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcGFyYW1zLmFwcGVuZChwcm9kdWN0
KQorICAgICAgICByZXR1cm4gcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoc2VsZi5hcmcsIHBhcmFt
cykoZikKKworCitjbGFzcyBhY3RpdmVfcHJvZHVjdHMob2JqZWN0KToKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgYXJnLCBtYXJrcz17fSk6CisgICAgICAgIHNlbGYuYXJnID0gYXJnCisgICAgICAg
IHNlbGYubWFya3MgPSBtYXJrcworCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGYpOgorICAgICAg
ICBwYXJhbXMgPSBbXQorICAgICAgICBmb3IgcHJvZHVjdCBpbiBfcHJvZHVjdHM6CisgICAgICAg
ICAgICBpZiBwcm9kdWN0IG5vdCBpbiBfYWN0aXZlX3Byb2R1Y3RzOgorICAgICAgICAgICAgICAg
IHBhcmFtcy5hcHBlbmQocHl0ZXN0LnBhcmFtKHByb2R1Y3QsIG1hcmtzPXB5dGVzdC5tYXJrLnNr
aXAocmVhc29uPSJ3cm9uZyB0b3hlbnYiKSkpCisgICAgICAgICAgICBlbGlmIHByb2R1Y3QgaW4g
c2VsZi5tYXJrczoKKyAgICAgICAgICAgICAgICBwYXJhbXMuYXBwZW5kKHB5dGVzdC5wYXJhbShw
cm9kdWN0LCBtYXJrcz1zZWxmLm1hcmtzW3Byb2R1Y3RdKSkKKyAgICAgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICAgICAgcGFyYW1zLmFwcGVuZChwcm9kdWN0KQorICAgICAgICByZXR1cm4gcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoc2VsZi5hcmcsIHBhcmFtcykoZikKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0
cy9icm93c2Vycy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjgzNGI4Mjg1YTU2YmVmMGUxNTQz
ZmQ5MDFjN2U2ZjJmOGJjMjAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rz
L2Jyb3dzZXJzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEgQEAKKyMgVGhpcyBmaWxlIGlzIHJlcXVp
cmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9i
cm93c2Vycy90ZXN0X3NhdWNlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL3Rlc3Rf
c2F1Y2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNGQ0NGU2NDY2YTE4Y2NjOTE1NzZhMmExN2MyMDRhNGI5NWZl
NGFjMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy90ZXN0
X3NhdWNlLnB5CkBAIC0wLDAgKzEsMTMwIEBACitpbXBvcnQgc3lzCitmcm9tIG9zLnBhdGggaW1w
b3J0IGpvaW4sIGRpcm5hbWUKKworaW1wb3J0IG1vY2sKK2ltcG9ydCBweXRlc3QKKworc3lzLnBh
dGguaW5zZXJ0KDAsIGpvaW4oZGlybmFtZShfX2ZpbGVfXyksICIuLiIsICIuLiIsICIuLiIpKQor
CitzYXVjZSA9IHB5dGVzdC5pbXBvcnRvcnNraXAoIndwdHJ1bm5lci5icm93c2Vycy5zYXVjZSIp
CisKKworZGVmIHRlc3Rfc2F1Y2Vjb25uZWN0X3N1Y2Nlc3MoKToKKyAgICB3aXRoIG1vY2sucGF0
Y2gub2JqZWN0KHNhdWNlLlNhdWNlQ29ubmVjdCwgInVwbG9hZF9wcmVydW5fZXhlYyIpLFwKKyAg
ICAgICAgICAgIG1vY2sucGF0Y2gub2JqZWN0KHNhdWNlLnN1YnByb2Nlc3MsICJQb3BlbiIpIGFz
IFBvcGVuLFwKKyAgICAgICAgICAgIG1vY2sucGF0Y2gub2JqZWN0KHNhdWNlLm9zLnBhdGgsICJl
eGlzdHMiKSBhcyBleGlzdHM6CisgICAgICAgICMgQWN0IGFzIGlmIGl0J3Mgc3RpbGwgcnVubmlu
ZworICAgICAgICBQb3Blbi5yZXR1cm5fdmFsdWUucG9sbC5yZXR1cm5fdmFsdWUgPSBOb25lCisg
ICAgICAgIFBvcGVuLnJldHVybl92YWx1ZS5yZXR1cm5jb2RlID0gTm9uZQorICAgICAgICAjIEFj
dCBhcyBpZiBmaWxlIGNyZWF0ZWQKKyAgICAgICAgZXhpc3RzLnJldHVybl92YWx1ZSA9IFRydWUK
KworICAgICAgICBzYXVjZV9jb25uZWN0ID0gc2F1Y2UuU2F1Y2VDb25uZWN0KAorICAgICAgICAg
ICAgc2F1Y2VfdXNlcj0iYWFhIiwKKyAgICAgICAgICAgIHNhdWNlX2tleT0iYmJiIiwKKyAgICAg
ICAgICAgIHNhdWNlX3R1bm5lbF9pZD0iY2NjIiwKKyAgICAgICAgICAgIHNhdWNlX2Nvbm5lY3Rf
YmluYXJ5PSJkZGQiKQorCisgICAgICAgIGVudl9jb25maWcgPSB7CisgICAgICAgICAgICAiZG9t
YWlucyI6IHsiIjogImV4YW1wbGUubmV0In0KKyAgICAgICAgfQorICAgICAgICBzYXVjZV9jb25u
ZWN0KE5vbmUsIGVudl9jb25maWcpCisgICAgICAgIHdpdGggc2F1Y2VfY29ubmVjdDoKKyAgICAg
ICAgICAgIHBhc3MKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInJlYWR5ZmlsZSxyZXR1
cm5jb2RlIiwgWworICAgIChUcnVlLCAwKSwKKyAgICAoVHJ1ZSwgMSksCisgICAgKFRydWUsIDIp
LAorICAgIChGYWxzZSwgMCksCisgICAgKEZhbHNlLCAxKSwKKyAgICAoRmFsc2UsIDIpLAorXSkK
K2RlZiB0ZXN0X3NhdWNlY29ubmVjdF9mYWlsdXJlX2V4aXQocmVhZHlmaWxlLCByZXR1cm5jb2Rl
KToKKyAgICB3aXRoIG1vY2sucGF0Y2gub2JqZWN0KHNhdWNlLlNhdWNlQ29ubmVjdCwgInVwbG9h
ZF9wcmVydW5fZXhlYyIpLFwKKyAgICAgICAgICAgIG1vY2sucGF0Y2gub2JqZWN0KHNhdWNlLnN1
YnByb2Nlc3MsICJQb3BlbiIpIGFzIFBvcGVuLFwKKyAgICAgICAgICAgIG1vY2sucGF0Y2gub2Jq
ZWN0KHNhdWNlLm9zLnBhdGgsICJleGlzdHMiKSBhcyBleGlzdHMsXAorICAgICAgICAgICAgbW9j
ay5wYXRjaC5vYmplY3Qoc2F1Y2UudGltZSwgInNsZWVwIikgYXMgc2xlZXA6CisgICAgICAgIFBv
cGVuLnJldHVybl92YWx1ZS5wb2xsLnJldHVybl92YWx1ZSA9IHJldHVybmNvZGUKKyAgICAgICAg
UG9wZW4ucmV0dXJuX3ZhbHVlLnJldHVybmNvZGUgPSByZXR1cm5jb2RlCisgICAgICAgIGV4aXN0
cy5yZXR1cm5fdmFsdWUgPSByZWFkeWZpbGUKKworICAgICAgICBzYXVjZV9jb25uZWN0ID0gc2F1
Y2UuU2F1Y2VDb25uZWN0KAorICAgICAgICAgICAgc2F1Y2VfdXNlcj0iYWFhIiwKKyAgICAgICAg
ICAgIHNhdWNlX2tleT0iYmJiIiwKKyAgICAgICAgICAgIHNhdWNlX3R1bm5lbF9pZD0iY2NjIiwK
KyAgICAgICAgICAgIHNhdWNlX2Nvbm5lY3RfYmluYXJ5PSJkZGQiKQorCisgICAgICAgIGVudl9j
b25maWcgPSB7CisgICAgICAgICAgICAiZG9tYWlucyI6IHsiIjogImV4YW1wbGUubmV0In0KKyAg
ICAgICAgfQorICAgICAgICBzYXVjZV9jb25uZWN0KE5vbmUsIGVudl9jb25maWcpCisgICAgICAg
IHdpdGggcHl0ZXN0LnJhaXNlcyhzYXVjZS5TYXVjZUV4Y2VwdGlvbik6CisgICAgICAgICAgICB3
aXRoIHNhdWNlX2Nvbm5lY3Q6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgICMgR2l2
ZW4gd2UgYXBwZWFyIHRvIGV4aXQgaW1tZWRpYXRlbHkgd2l0aCB0aGVzZSBtb2Nrcywgc2xlZXAg
c2hvdWxkbid0IGJlIGNhbGxlZAorICAgICAgICBzbGVlcC5hc3NlcnRfbm90X2NhbGxlZCgpCisK
KworZGVmIHRlc3Rfc2F1Y2Vjb25uZWN0X2ZhaWx1cmVfbmV2ZXJfcmVhZHkoKToKKyAgICB3aXRo
IG1vY2sucGF0Y2gub2JqZWN0KHNhdWNlLlNhdWNlQ29ubmVjdCwgInVwbG9hZF9wcmVydW5fZXhl
YyIpLFwKKyAgICAgICAgICAgIG1vY2sucGF0Y2gub2JqZWN0KHNhdWNlLnN1YnByb2Nlc3MsICJQ
b3BlbiIpIGFzIFBvcGVuLFwKKyAgICAgICAgICAgIG1vY2sucGF0Y2gub2JqZWN0KHNhdWNlLm9z
LnBhdGgsICJleGlzdHMiKSBhcyBleGlzdHMsXAorICAgICAgICAgICAgbW9jay5wYXRjaC5vYmpl
Y3Qoc2F1Y2UudGltZSwgInNsZWVwIikgYXMgc2xlZXA6CisgICAgICAgIFBvcGVuLnJldHVybl92
YWx1ZS5wb2xsLnJldHVybl92YWx1ZSA9IE5vbmUKKyAgICAgICAgUG9wZW4ucmV0dXJuX3ZhbHVl
LnJldHVybmNvZGUgPSBOb25lCisgICAgICAgIGV4aXN0cy5yZXR1cm5fdmFsdWUgPSBGYWxzZQor
CisgICAgICAgIHNhdWNlX2Nvbm5lY3QgPSBzYXVjZS5TYXVjZUNvbm5lY3QoCisgICAgICAgICAg
ICBzYXVjZV91c2VyPSJhYWEiLAorICAgICAgICAgICAgc2F1Y2Vfa2V5PSJiYmIiLAorICAgICAg
ICAgICAgc2F1Y2VfdHVubmVsX2lkPSJjY2MiLAorICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9i
aW5hcnk9ImRkZCIpCisKKyAgICAgICAgZW52X2NvbmZpZyA9IHsKKyAgICAgICAgICAgICJkb21h
aW5zIjogeyIiOiAiZXhhbXBsZS5uZXQifQorICAgICAgICB9CisgICAgICAgIHNhdWNlX2Nvbm5l
Y3QoTm9uZSwgZW52X2NvbmZpZykKKyAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKHNhdWNlLlNh
dWNlRXhjZXB0aW9uKToKKyAgICAgICAgICAgIHdpdGggc2F1Y2VfY29ubmVjdDoKKyAgICAgICAg
ICAgICAgICBwYXNzCisKKyAgICAgICAgIyBXZSBzaG91bGQgc2xlZXAgd2hpbGUgd2FpdGluZyBm
b3IgaXQgdG8gY3JlYXRlIHRoZSByZWFkeWZpbGUKKyAgICAgICAgc2xlZXAuYXNzZXJ0X2NhbGxl
ZCgpCisKKyAgICAgICAgIyBDaGVjayB3ZSBhY3R1YWxseSBraWxsIGl0IGFmdGVyIHRlcm1pbmF0
aW9uIGZhaWxzCisgICAgICAgIFBvcGVuLnJldHVybl92YWx1ZS50ZXJtaW5hdGUuYXNzZXJ0X2Nh
bGxlZCgpCisgICAgICAgIFBvcGVuLnJldHVybl92YWx1ZS5raWxsLmFzc2VydF9jYWxsZWQoKQor
CisKK2RlZiB0ZXN0X3NhdWNlY29ubmVjdF90dW5uZWxfZG9tYWlucygpOgorICAgIHdpdGggbW9j
ay5wYXRjaC5vYmplY3Qoc2F1Y2UuU2F1Y2VDb25uZWN0LCAidXBsb2FkX3ByZXJ1bl9leGVjIiks
XAorICAgICAgICAgICAgbW9jay5wYXRjaC5vYmplY3Qoc2F1Y2Uuc3VicHJvY2VzcywgIlBvcGVu
IikgYXMgUG9wZW4sXAorICAgICAgICAgICAgbW9jay5wYXRjaC5vYmplY3Qoc2F1Y2Uub3MucGF0
aCwgImV4aXN0cyIpIGFzIGV4aXN0czoKKyAgICAgICAgUG9wZW4ucmV0dXJuX3ZhbHVlLnBvbGwu
cmV0dXJuX3ZhbHVlID0gTm9uZQorICAgICAgICBQb3Blbi5yZXR1cm5fdmFsdWUucmV0dXJuY29k
ZSA9IE5vbmUKKyAgICAgICAgZXhpc3RzLnJldHVybl92YWx1ZSA9IFRydWUKKworICAgICAgICBz
YXVjZV9jb25uZWN0ID0gc2F1Y2UuU2F1Y2VDb25uZWN0KAorICAgICAgICAgICAgc2F1Y2VfdXNl
cj0iYWFhIiwKKyAgICAgICAgICAgIHNhdWNlX2tleT0iYmJiIiwKKyAgICAgICAgICAgIHNhdWNl
X3R1bm5lbF9pZD0iY2NjIiwKKyAgICAgICAgICAgIHNhdWNlX2Nvbm5lY3RfYmluYXJ5PSJkZGQi
KQorCisgICAgICAgIGVudl9jb25maWcgPSB7CisgICAgICAgICAgICAiZG9tYWlucyI6IHsiZm9v
IjogImZvby5iYXIuZXhhbXBsZS5jb20iLCAiIjogImV4YW1wbGUubmV0In0KKyAgICAgICAgfQor
ICAgICAgICBzYXVjZV9jb25uZWN0KE5vbmUsIGVudl9jb25maWcpCisgICAgICAgIHdpdGggc2F1
Y2VfY29ubmVjdDoKKyAgICAgICAgICAgIFBvcGVuLmFzc2VydF9jYWxsZWRfb25jZSgpCisgICAg
ICAgICAgICBhcmdzLCBrd2FyZ3MgPSBQb3Blbi5jYWxsX2FyZ3MKKyAgICAgICAgICAgIGNtZCA9
IGFyZ3NbMF0KKyAgICAgICAgICAgIGFzc2VydCAiLS10dW5uZWwtZG9tYWlucyIgaW4gY21kCisg
ICAgICAgICAgICBpID0gY21kLmluZGV4KCItLXR1bm5lbC1kb21haW5zIikKKyAgICAgICAgICAg
IHJlc3QgPSBjbWRbaSsxOl0KKyAgICAgICAgICAgIGFzc2VydCBsZW4ocmVzdCkgPj0gMQorICAg
ICAgICAgICAgaWYgbGVuKHJlc3QpID4gMToKKyAgICAgICAgICAgICAgICBhc3NlcnQgcmVzdFsx
XS5zdGFydHN3aXRoKCItIiksICItLXR1bm5lbC1kb21haW5zIHRha2VzIGEgY29tbWEgc2VwYXJh
dGVkIGxpc3QgKG5vdCBhIHNwYWNlIHNlcGFyYXRlZCBsaXN0KSIKKyAgICAgICAgICAgIGFzc2Vy
dCBzZXQocmVzdFswXS5zcGxpdCgiLCIpKSA9PSB7ImZvby5iYXIuZXhhbXBsZS5jb20iLCAiZXhh
bXBsZS5uZXQifQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL3czYy1pbXBvcnQubG9nCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjE3MDVlNTA0MDcwNzYxZDA0ZmYxYjk4NjBhNmJiMGY1Nzg3ZWJlNTAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvdzNjLWltcG9ydC5sb2cK
QEAgLTAsMCArMSwxOCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0
ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRp
cmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUg
V1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwor
CitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0
byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQor
UHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL19f
aW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL3Rlc3Rfc2F1Y2UucHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X2NodW5rZXIucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdGVzdHMvdGVzdF9jaHVua2VyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2MmI2ODdmYWI5YWZmY2NkZTcy
ZmU4YzFkOTYwZDg3ZGQzZDhmNzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVz
dHMvdGVzdF9jaHVua2VyLnB5CkBAIC0wLDAgKzEsOTEgQEAKK2ltcG9ydCB1bml0dGVzdAoraW1w
b3J0IHN5cworZnJvbSBvcy5wYXRoIGltcG9ydCBqb2luLCBkaXJuYW1lCitmcm9tIG1vemxvZyBp
bXBvcnQgc3RydWN0dXJlZAorCitpbXBvcnQgcHl0ZXN0CisKK3N5cy5wYXRoLmluc2VydCgwLCBq
b2luKGRpcm5hbWUoX19maWxlX18pLCAiLi4iLCAiLi4iKSkKKworZnJvbSB3cHRydW5uZXIudGVz
dGxvYWRlciBpbXBvcnQgRXF1YWxUaW1lQ2h1bmtlcgorCitzdHJ1Y3R1cmVkLnNldF9kZWZhdWx0
X2xvZ2dlcihzdHJ1Y3R1cmVkLnN0cnVjdHVyZWRsb2cuU3RydWN0dXJlZExvZ2dlcigiVGVzdENo
dW5rZXIiKSkKKworY2xhc3MgTW9ja1Rlc3Qob2JqZWN0KToKKyAgICBkZWZhdWx0X3RpbWVvdXQg
PSAxMAorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGlkLCB0aW1lb3V0PTEwKToKKyAgICAgICAg
c2VsZi5pZCA9IGlkCisgICAgICAgIHNlbGYuaXRlbV90eXBlID0gInRlc3RoYXJuZXNzIgorICAg
ICAgICBzZWxmLnRpbWVvdXQgPSB0aW1lb3V0CisKKworZGVmIG1ha2VfbW9ja19tYW5pZmVzdCgq
aXRlbXMpOgorICAgIHJ2ID0gW10KKyAgICBmb3IgdGVzdF90eXBlLCBkaXJfcGF0aCwgbnVtX3Rl
c3RzIGluIGl0ZW1zOgorICAgICAgICBmb3IgaSBpbiByYW5nZShudW1fdGVzdHMpOgorICAgICAg
ICAgICAgcnYuYXBwZW5kKCh0ZXN0X3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgIGRpcl9w
YXRoICsgIi8laS50ZXN0IiAlIGksCisgICAgICAgICAgICAgICAgICAgICAgIHNldChbTW9ja1Rl
c3QoaSldKSkpCisgICAgcmV0dXJuIHJ2CisKKworY2xhc3MgVGVzdEVxdWFsVGltZUNodW5rZXIo
dW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RfaW5jbHVkZV9hbGwoc2VsZik6Cisg
ICAgICAgIHRlc3RzID0gbWFrZV9tb2NrX21hbmlmZXN0KCgidGVzdCIsICJhIiwgMTApLCAoInRl
c3QiLCAiYS9iIiwgMTApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInRl
c3QiLCAiYyIsIDEwKSkKKworICAgICAgICBjaHVua18xID0gbGlzdChFcXVhbFRpbWVDaHVua2Vy
KDMsIDEpKHRlc3RzKSkKKyAgICAgICAgY2h1bmtfMiA9IGxpc3QoRXF1YWxUaW1lQ2h1bmtlcigz
LCAyKSh0ZXN0cykpCisgICAgICAgIGNodW5rXzMgPSBsaXN0KEVxdWFsVGltZUNodW5rZXIoMywg
MykodGVzdHMpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHRlc3RzWzoxMF0sIGNodW5r
XzEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHRlc3RzWzEwOjIwXSwgY2h1bmtfMikKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHModGVzdHNbMjA6XSwgY2h1bmtfMykKKworICAgIGRlZiB0
ZXN0X2luY2x1ZGVfYWxsXzEoc2VsZik6CisgICAgICAgIHRlc3RzID0gbWFrZV9tb2NrX21hbmlm
ZXN0KCgidGVzdCIsICJhIiwgNSksICgidGVzdCIsICJhL2IiLCA1KSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0IiwgImMiLCAxMCksICgidGVzdCIsICJkIiwgMTAp
KQorCisgICAgICAgIGNodW5rXzEgPSBsaXN0KEVxdWFsVGltZUNodW5rZXIoMywgMSkodGVzdHMp
KQorICAgICAgICBjaHVua18yID0gbGlzdChFcXVhbFRpbWVDaHVua2VyKDMsIDIpKHRlc3RzKSkK
KyAgICAgICAgY2h1bmtfMyA9IGxpc3QoRXF1YWxUaW1lQ2h1bmtlcigzLCAzKSh0ZXN0cykpCisK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHModGVzdHNbOjEwXSwgY2h1bmtfMSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHModGVzdHNbMTA6MjBdLCBjaHVua18yKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFscyh0ZXN0c1syMDpdLCBjaHVua18zKQorCisgICAgZGVmIHRlc3RfbG9uZyhzZWxm
KToKKyAgICAgICAgdGVzdHMgPSBtYWtlX21vY2tfbWFuaWZlc3QoKCJ0ZXN0IiwgImEiLCAxMDAp
LCAoInRlc3QiLCAiYS9iIiwgMSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgidGVzdCIsICJjIiwgMSkpCisKKyAgICAgICAgY2h1bmtfMSA9IGxpc3QoRXF1YWxUaW1lQ2h1
bmtlcigzLCAxKSh0ZXN0cykpCisgICAgICAgIGNodW5rXzIgPSBsaXN0KEVxdWFsVGltZUNodW5r
ZXIoMywgMikodGVzdHMpKQorICAgICAgICBjaHVua18zID0gbGlzdChFcXVhbFRpbWVDaHVua2Vy
KDMsIDMpKHRlc3RzKSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFscyh0ZXN0c1s6MTAwXSwg
Y2h1bmtfMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHModGVzdHNbMTAwOjEwMV0sIGNodW5r
XzIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHRlc3RzWzEwMToxMDJdLCBjaHVua18zKQor
CisgICAgZGVmIHRlc3RfbG9uZ18xKHNlbGYpOgorICAgICAgICB0ZXN0cyA9IG1ha2VfbW9ja19t
YW5pZmVzdCgoInRlc3QiLCAiYSIsIDEpLCAoInRlc3QiLCAiYS9iIiwgMTAwKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0IiwgImMiLCAxKSkKKworICAgICAgICBj
aHVua18xID0gbGlzdChFcXVhbFRpbWVDaHVua2VyKDMsIDEpKHRlc3RzKSkKKyAgICAgICAgY2h1
bmtfMiA9IGxpc3QoRXF1YWxUaW1lQ2h1bmtlcigzLCAyKSh0ZXN0cykpCisgICAgICAgIGNodW5r
XzMgPSBsaXN0KEVxdWFsVGltZUNodW5rZXIoMywgMykodGVzdHMpKQorCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKHRlc3RzWzoxXSwgY2h1bmtfMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHModGVzdHNbMToxMDFdLCBjaHVua18yKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyh0ZXN0
c1sxMDE6MTAyXSwgY2h1bmtfMykKKworICAgIGRlZiB0ZXN0X3Rvb19mZXdfZGlycyhzZWxmKToK
KyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAg
IHRlc3RzID0gbWFrZV9tb2NrX21hbmlmZXN0KCgidGVzdCIsICJhIiwgMSksICgidGVzdCIsICJh
L2IiLCAxMDApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0
IiwgImMiLCAxKSkKKyAgICAgICAgICAgIGxpc3QoRXF1YWxUaW1lQ2h1bmtlcig0LCAxKSh0ZXN0
cykpCisKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICB1bml0dGVzdC5tYWluKCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3Byb2R1Y3RzLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3Rlc3RzL3Rlc3RfcHJvZHVjdHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzcxMDljNTI1ZmRmYjQy
ZDUzOTFiMjBiMTNiZjcyYzQ3NjEzZjZhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci90ZXN0cy90ZXN0X3Byb2R1Y3RzLnB5CkBAIC0wLDAgKzEsNjUgQEAKK2ltcG9ydCBvcworaW1w
b3J0IHN5cworCitmcm9tIG9zLnBhdGggaW1wb3J0IGpvaW4sIGRpcm5hbWUKKworaW1wb3J0IG1v
Y2sKK2ltcG9ydCBweXRlc3QKKworZnJvbSAuYmFzZSBpbXBvcnQgYWxsX3Byb2R1Y3RzLCBhY3Rp
dmVfcHJvZHVjdHMKKworc3lzLnBhdGguaW5zZXJ0KDAsIGpvaW4oZGlybmFtZShfX2ZpbGVfXyks
ICIuLiIsICIuLiIsICIuLiIsICIuLiIpKSAgIyByZXBvIHJvb3QKKworZnJvbSB0b29scyBpbXBv
cnQgbG9jYWxwYXRocworCitpbXBvcnQgc3NsdXRpbHMKKworZnJvbSB3cHRydW5uZXIgaW1wb3J0
IGVudmlyb25tZW50Citmcm9tIHdwdHJ1bm5lciBpbXBvcnQgcHJvZHVjdHMKKwordGVzdF9wYXRo
cyA9IHsiLyI6IHsidGVzdHNfcGF0aCI6IGpvaW4oZGlybmFtZShfX2ZpbGVfXyksICIuLiIsICIu
LiIsICIuLiIsICIuLiIpfX0gICMgcmVwbyByb290CitlbnZpcm9ubWVudC5kb19kZWxheWVkX2lt
cG9ydHMoTm9uZSwgdGVzdF9wYXRocykKKworCitAYWN0aXZlX3Byb2R1Y3RzKCJwcm9kdWN0IikK
K2RlZiB0ZXN0X2xvYWRfYWN0aXZlX3Byb2R1Y3QocHJvZHVjdCk6CisgICAgIiIidGVzdCB3ZSBj
YW4gc3VjY2Vzc2Z1bGx5IGxvYWQgdGhlIHByb2R1Y3Qgb2YgdGhlIGN1cnJlbnQgdGVzdGVudiIi
IgorICAgIHByb2R1Y3RzLmxvYWRfcHJvZHVjdCh7fSwgcHJvZHVjdCkKKyAgICAjIHRlc3QgcGFz
c2VzIGlmIGl0IGRvZXNuJ3QgdGhyb3cKKworCitAYWxsX3Byb2R1Y3RzKCJwcm9kdWN0IikKK2Rl
ZiB0ZXN0X2xvYWRfYWxsX3Byb2R1Y3RzKHByb2R1Y3QpOgorICAgICIiInRlc3QgZXZlcnkgcHJv
ZHVjdCBlaXRoZXIgbG9hZHMgb3IgdGhyb3dzIEltcG9ydEVycm9yIiIiCisgICAgdHJ5OgorICAg
ICAgICBwcm9kdWN0cy5sb2FkX3Byb2R1Y3Qoe30sIHByb2R1Y3QpCisgICAgZXhjZXB0IEltcG9y
dEVycm9yOgorICAgICAgICBwYXNzCisKKworQGFjdGl2ZV9wcm9kdWN0cygicHJvZHVjdCIsIG1h
cmtzPXsKKyAgICAic2F1Y2UiOiBweXRlc3QubWFyay5za2lwKCJuZWVkcyBlbnYgZXh0cmFzIGt3
YXJncyIpLAorfSkKK2RlZiB0ZXN0X3NlcnZlcl9zdGFydF9jb25maWcocHJvZHVjdCk6CisgICAg
KGNoZWNrX2FyZ3MsCisgICAgIHRhcmdldF9icm93c2VyX2NscywgZ2V0X2Jyb3dzZXJfa3dhcmdz
LAorICAgICBleGVjdXRvcl9jbGFzc2VzLCBnZXRfZXhlY3V0b3Jfa3dhcmdzLAorICAgICBlbnZf
b3B0aW9ucywgZ2V0X2Vudl9leHRyYXMsIHJ1bl9pbmZvX2V4dHJhcykgPSBwcm9kdWN0cy5sb2Fk
X3Byb2R1Y3Qoe30sIHByb2R1Y3QpCisKKyAgICBlbnZfZXh0cmFzID0gZ2V0X2Vudl9leHRyYXMo
KQorCisgICAgd2l0aCBtb2NrLnBhdGNoLm9iamVjdChlbnZpcm9ubWVudC5zZXJ2ZSwgInN0YXJ0
IikgYXMgc3RhcnQ6CisgICAgICAgIHdpdGggZW52aXJvbm1lbnQuVGVzdEVudmlyb25tZW50KHRl
c3RfcGF0aHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNzbHV0
aWxzLmVudmlyb25tZW50c1sibm9uZSJdKE5vbmUpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZW52X29wdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVu
dl9leHRyYXMpIGFzIHRlc3RfZW52aXJvbm1lbnQ6CisgICAgICAgICAgICBzdGFydC5hc3NlcnRf
Y2FsbGVkX29uY2UoKQorICAgICAgICAgICAgYXJncyA9IHN0YXJ0LmNhbGxfYXJncworICAgICAg
ICAgICAgY29uZmlnID0gYXJnc1swXVswXQorICAgICAgICAgICAgaWYgInNlcnZlcl9ob3N0IiBp
biBlbnZfb3B0aW9uczoKKyAgICAgICAgICAgICAgICBhc3NlcnQgY29uZmlnWyJzZXJ2ZXJfaG9z
dCJdID09IGVudl9vcHRpb25zWyJzZXJ2ZXJfaG9zdCJdCisgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgIGFzc2VydCBjb25maWdbInNlcnZlcl9ob3N0Il0gPT0gY29uZmlnWyJicm93
c2VyX2hvc3QiXQorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29uZmlnWyJiaW5kX2Fk
ZHJlc3MiXSwgYm9vbCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3Rlc3Rs
b2FkZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF90ZXN0bG9hZGVyLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjU1NmIyYjdmM2ZhNDgyMTJmYmY5YzJiMDI3OTc5M2YyZWM0OGJhY2IKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF90ZXN0bG9hZGVyLnB5CkBAIC0wLDAgKzEs
MzAgQEAKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFscworCitpbXBvcnQg
b3MKK2ltcG9ydCBzeXMKK2ltcG9ydCB0ZW1wZmlsZQorCitzeXMucGF0aC5pbnNlcnQoMCwgb3Mu
cGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICIuLiIsICIuLiIpKQorCitmcm9t
IG1vemxvZyBpbXBvcnQgc3RydWN0dXJlZAorZnJvbSB3cHRydW5uZXIudGVzdGxvYWRlciBpbXBv
cnQgVGVzdEZpbHRlciBhcyBGaWx0ZXIKK2Zyb20gLnRlc3RfY2h1bmtlciBpbXBvcnQgbWFrZV9t
b2NrX21hbmlmZXN0CisKK3N0cnVjdHVyZWQuc2V0X2RlZmF1bHRfbG9nZ2VyKHN0cnVjdHVyZWQu
c3RydWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKCJUZXN0TG9hZGVyIikpCisKK2luY2x1ZGVf
aW5pID0gIiIiXAorc2tpcDogdHJ1ZQorW3Rlc3RfXHU1M0YwXQorICBza2lwOiBmYWxzZQorIiIi
CisKKworZGVmIHRlc3RfZmlsdGVyX3VuaWNvZGUoKToKKyAgICB0ZXN0cyA9IG1ha2VfbW9ja19t
YW5pZmVzdCgoInRlc3QiLCAiYSIsIDEwKSwgKCJ0ZXN0IiwgImEvYiIsIDEwKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoInRlc3QiLCAiYyIsIDEwKSkKKworICAgIHdpdGggdGVt
cGZpbGUuTmFtZWRUZW1wb3JhcnlGaWxlKCJ3YiIsIHN1ZmZpeD0iLmluaSIpIGFzIGY6CisgICAg
ICAgIGYud3JpdGUoaW5jbHVkZV9pbmkuZW5jb2RlKCd1dGYtOCcpKQorICAgICAgICBmLmZsdXNo
KCkKKworICAgICAgICBGaWx0ZXIobWFuaWZlc3RfcGF0aD1mLm5hbWUsIHRlc3RfbWFuaWZlc3Rz
PXRlc3RzKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfdXBkYXRlLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfdXBkYXRlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU1ZWI0Y2Y0OWM3
ZmE5YzMxZDZjNDZkYzFkNTIwMWQyMWVlYzEwZjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvdGVzdHMvdGVzdF91cGRhdGUucHkKQEAgLTAsMCArMSwzMjggQEAKK2ltcG9ydCB1bml0
dGVzdAoraW1wb3J0IFN0cmluZ0lPCisKK2ltcG9ydCBweXRlc3QKKworZnJvbSAuLiBpbXBvcnQg
bWV0YWRhdGEsIG1hbmlmZXN0dXBkYXRlCitmcm9tIG1vemxvZyBpbXBvcnQgc3RydWN0dXJlZGxv
ZywgaGFuZGxlcnMsIGZvcm1hdHRlcnMKKworCitjbGFzcyBUZXN0RXhwZWN0ZWRVcGRhdGVyKHVu
aXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgY3JlYXRlX21hbmlmZXN0KHNlbGYsIGRhdGEsIHRl
c3RfcGF0aD0icGF0aC90by90ZXN0LmluaSIpOgorICAgICAgICBmID0gU3RyaW5nSU8uU3RyaW5n
SU8oZGF0YSkKKyAgICAgICAgcmV0dXJuIG1hbmlmZXN0dXBkYXRlLmNvbXBpbGUoZiwgdGVzdF9w
YXRoKQorCisgICAgZGVmIGNyZWF0ZV91cGRhdGVyKHNlbGYsIGRhdGEsICoqa3dhcmdzKToKKyAg
ICAgICAgZXhwZWN0ZWRfdHJlZSA9IHt9CisgICAgICAgIGlkX3BhdGhfbWFwID0ge30KKyAgICAg
ICAgZm9yIHRlc3RfcGF0aCwgdGVzdF9pZHMsIG1hbmlmZXN0X3N0ciBpbiBkYXRhOgorICAgICAg
ICAgICAgaWYgaXNpbnN0YW5jZSh0ZXN0X2lkcywgKHN0ciwgdW5pY29kZSkpOgorICAgICAgICAg
ICAgICAgIHRlc3RfaWRzID0gW3Rlc3RfaWRzXQorICAgICAgICAgICAgZXhwZWN0ZWRfdHJlZVt0
ZXN0X3BhdGhdID0gc2VsZi5jcmVhdGVfbWFuaWZlc3QobWFuaWZlc3Rfc3RyLCB0ZXN0X3BhdGgp
CisgICAgICAgICAgICBmb3IgdGVzdF9pZCBpbiB0ZXN0X2lkczoKKyAgICAgICAgICAgICAgICBp
ZF9wYXRoX21hcFt0ZXN0X2lkXSA9IHRlc3RfcGF0aAorCisgICAgICAgIHJldHVybiBtZXRhZGF0
YS5FeHBlY3RlZFVwZGF0ZXIoZXhwZWN0ZWRfdHJlZSwgaWRfcGF0aF9tYXAsICoqa3dhcmdzKQor
CisgICAgZGVmIGNyZWF0ZV9sb2coc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgbG9n
Z2VyID0gc3RydWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKCJleHBlY3RlZF90ZXN0IikKKyAg
ICAgICAgZGF0YSA9IFN0cmluZ0lPLlN0cmluZ0lPKCkKKyAgICAgICAgaGFuZGxlciA9IGhhbmRs
ZXJzLlN0cmVhbUhhbmRsZXIoZGF0YSwgZm9ybWF0dGVycy5KU09ORm9ybWF0dGVyKCkpCisgICAg
ICAgIGxvZ2dlci5hZGRfaGFuZGxlcihoYW5kbGVyKQorCisgICAgICAgIGxvZ19lbnRyaWVzID0g
KFsoInN1aXRlX3N0YXJ0IiwgeyJ0ZXN0cyI6IFtdLCAicnVuX2luZm8iOiBrd2FyZ3MuZ2V0KCJy
dW5faW5mbyIsIHt9KX0pXSArCisgICAgICAgICAgICAgICAgICAgICAgIGxpc3QoYXJncykgKwor
ICAgICAgICAgICAgICAgICAgICAgICBbKCJzdWl0ZV9lbmQiLCB7fSldKQorCisgICAgICAgIGZv
ciBpdGVtIGluIGxvZ19lbnRyaWVzOgorICAgICAgICAgICAgYWN0aW9uLCBrd2FyZ3MgPSBpdGVt
CisgICAgICAgICAgICBnZXRhdHRyKGxvZ2dlciwgYWN0aW9uKSgqKmt3YXJncykKKyAgICAgICAg
bG9nZ2VyLnJlbW92ZV9oYW5kbGVyKGhhbmRsZXIpCisgICAgICAgIGRhdGEuc2VlaygwKQorICAg
ICAgICByZXR1cm4gZGF0YQorCisKKyAgICBkZWYgY29hbGVzY2VfcmVzdWx0cyhzZWxmLCB0cmVl
cyk6CisgICAgICAgIGZvciB0cmVlIGluIHRyZWVzOgorICAgICAgICAgICAgZm9yIHRlc3QgaW4g
dHJlZS5pdGVyY2hpbGRyZW4oKToKKyAgICAgICAgICAgICAgICBmb3Igc3VidGVzdCBpbiB0ZXN0
Lml0ZXJjaGlsZHJlbigpOgorICAgICAgICAgICAgICAgICAgICBzdWJ0ZXN0LmNvYWxlc2NlX2V4
cGVjdGVkKCkKKyAgICAgICAgICAgICAgICB0ZXN0LmNvYWxlc2NlX2V4cGVjdGVkKCkKKworICAg
IEBweXRlc3QubWFyay54ZmFpbAorICAgIGRlZiB0ZXN0X3VwZGF0ZV8wKHNlbGYpOgorICAgICAg
ICBwcmV2X2RhdGEgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtLmluaSIsIFsiL3BhdGgvdG8vdGVzdC5o
dG0iXSwgIiIiW3Rlc3QuaHRtXQorICB0eXBlOiB0ZXN0aGFybmVzcworICBbdGVzdDFdCisgICAg
ZXhwZWN0ZWQ6IEZBSUwiIiIpXQorCisgICAgICAgIG5ld19kYXRhID0gc2VsZi5jcmVhdGVfbG9n
KCgidGVzdF9zdGFydCIsIHsidGVzdCI6ICIvcGF0aC90by90ZXN0Lmh0bSJ9KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6ICIvcGF0
aC90by90ZXN0Lmh0bSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiUEFTUyIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIkZB
SUwifSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7
InRlc3QiOiAiL3BhdGgvdG8vdGVzdC5odG0iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSkpCisgICAgICAgIHVwZGF0ZXIg
PSBzZWxmLmNyZWF0ZV91cGRhdGVyKHByZXZfZGF0YSkKKyAgICAgICAgdXBkYXRlci51cGRhdGVf
ZnJvbV9sb2cobmV3X2RhdGEpCisKKyAgICAgICAgbmV3X21hbmlmZXN0ID0gdXBkYXRlci5leHBl
Y3RlZF90cmVlWyJwYXRoL3RvL3Rlc3QuaHRtLmluaSJdCisgICAgICAgIHNlbGYuY29hbGVzY2Vf
cmVzdWx0cyhbbmV3X21hbmlmZXN0XSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5ld19tYW5p
ZmVzdC5pc19lbXB0eSkKKworICAgIEBweXRlc3QubWFyay54ZmFpbAorICAgIGRlZiB0ZXN0X3Vw
ZGF0ZV8xKHNlbGYpOgorICAgICAgICB0ZXN0X2lkID0gIi9wYXRoL3RvL3Rlc3QuaHRtIgorICAg
ICAgICBwcmV2X2RhdGEgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtLmluaSIsIFt0ZXN0X2lkXSwgIiIi
W3Rlc3QuaHRtXQorICB0eXBlOiB0ZXN0aGFybmVzcworICBbdGVzdDFdCisgICAgZXhwZWN0ZWQ6
IEVSUk9SIiIiKV0KKworICAgICAgICBuZXdfZGF0YSA9IHNlbGYuY3JlYXRlX2xvZygoInRlc3Rf
c3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3Rh
dHVzIjogIkZBSUwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJleHBlY3RlZCI6ICJFUlJPUiJ9KSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KSkKKyAg
ICAgICAgdXBkYXRlciA9IHNlbGYuY3JlYXRlX3VwZGF0ZXIocHJldl9kYXRhKQorICAgICAgICB1
cGRhdGVyLnVwZGF0ZV9mcm9tX2xvZyhuZXdfZGF0YSkKKworICAgICAgICBuZXdfbWFuaWZlc3Qg
PSB1cGRhdGVyLmV4cGVjdGVkX3RyZWVbInBhdGgvdG8vdGVzdC5odG0uaW5pIl0KKyAgICAgICAg
c2VsZi5jb2FsZXNjZV9yZXN1bHRzKFtuZXdfbWFuaWZlc3RdKQorICAgICAgICBzZWxmLmFzc2Vy
dEZhbHNlKG5ld19tYW5pZmVzdC5pc19lbXB0eSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
bmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgiZXhwZWN0ZWQi
KSwgIkZBSUwiKQorCisgICAgQHB5dGVzdC5tYXJrLnhmYWlsCisgICAgZGVmIHRlc3RfbmV3X3N1
YnRlc3Qoc2VsZik6CisgICAgICAgIHRlc3RfaWQgPSAiL3BhdGgvdG8vdGVzdC5odG0iCisgICAg
ICAgIHByZXZfZGF0YSA9IFsoInBhdGgvdG8vdGVzdC5odG0uaW5pIiwgW3Rlc3RfaWRdLCAiIiJb
dGVzdC5odG1dCisgIHR5cGU6IHRlc3RoYXJuZXNzCisgIFt0ZXN0MV0KKyAgICBleHBlY3RlZDog
RkFJTCIiIildCisKKyAgICAgICAgbmV3X2RhdGEgPSBzZWxmLmNyZWF0ZV9sb2coKCJ0ZXN0X3N0
YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1
cyI6ICJGQUlMIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiZXhwZWN0ZWQiOiAiRkFJTCJ9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDIi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
dGF0dXMiOiAiRkFJTCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImV4cGVjdGVkIjogIlBBU1MifSksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSkpCisg
ICAgICAgIHVwZGF0ZXIgPSBzZWxmLmNyZWF0ZV91cGRhdGVyKHByZXZfZGF0YSkKKyAgICAgICAg
dXBkYXRlci51cGRhdGVfZnJvbV9sb2cobmV3X2RhdGEpCisKKyAgICAgICAgbmV3X21hbmlmZXN0
ID0gdXBkYXRlci5leHBlY3RlZF90cmVlWyJwYXRoL3RvL3Rlc3QuaHRtLmluaSJdCisgICAgICAg
IHNlbGYuY29hbGVzY2VfcmVzdWx0cyhbbmV3X21hbmlmZXN0XSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRGYWxzZShuZXdfbWFuaWZlc3QuaXNfZW1wdHkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoImV4cGVjdGVk
IiksICJGQUlMIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobmV3X21hbmlmZXN0LmdldF90
ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzFdLmdldCgiZXhwZWN0ZWQiKSwgIkZBSUwiKQorCisgICAg
QHB5dGVzdC5tYXJrLnhmYWlsCisgICAgZGVmIHRlc3RfdXBkYXRlX211bHRpcGxlXzAoc2VsZik6
CisgICAgICAgIHRlc3RfaWQgPSAiL3BhdGgvdG8vdGVzdC5odG0iCisgICAgICAgIHByZXZfZGF0
YSA9IFsoInBhdGgvdG8vdGVzdC5odG0uaW5pIiwgW3Rlc3RfaWRdLCAiIiJbdGVzdC5odG1dCisg
IHR5cGU6IHRlc3RoYXJuZXNzCisgIFt0ZXN0MV0KKyAgICBleHBlY3RlZDogRkFJTCIiIildCisK
KyAgICAgICAgbmV3X2RhdGFfMCA9IHNlbGYuY3JlYXRlX2xvZygoInRlc3Rfc3RhcnQiLCB7InRl
c3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0
ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjog
IkZBSUwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImV4cGVjdGVkIjogIkZBSUwifSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsiZGVidWciOiBGYWxz
ZSwgIm9zIjogIm9zeCJ9KQorCisgICAgICAgIG5ld19kYXRhXzEgPSBzZWxmLmNyZWF0ZV9sb2co
KCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3Qi
OiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInN0YXR1cyI6ICJUSU1FT1VUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJGQUlMIn0pLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0
X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InN0YXR1cyI6ICJPSyJ9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
dW5faW5mbz17ImRlYnVnIjogRmFsc2UsICJvcyI6ICJsaW51eCJ9KQorICAgICAgICB1cGRhdGVy
ID0gc2VsZi5jcmVhdGVfdXBkYXRlcihwcmV2X2RhdGEpCisKKyAgICAgICAgdXBkYXRlci51cGRh
dGVfZnJvbV9sb2cobmV3X2RhdGFfMCkKKyAgICAgICAgdXBkYXRlci51cGRhdGVfZnJvbV9sb2co
bmV3X2RhdGFfMSkKKworICAgICAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVyLmV4cGVjdGVkX3Ry
ZWVbInBhdGgvdG8vdGVzdC5odG0uaW5pIl0KKworICAgICAgICBzZWxmLmNvYWxlc2NlX3Jlc3Vs
dHMoW25ld19tYW5pZmVzdF0pCisKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShuZXdfbWFuaWZl
c3QuaXNfZW1wdHkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG5ld19tYW5pZmVzdC5nZXRf
dGVzdCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoCisgICAgICAgICAgICAiZXhwZWN0ZWQiLCB7
ImRlYnVnIjogRmFsc2UsICJvcyI6ICJvc3gifSksICJGQUlMIikKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMobmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgK
KyAgICAgICAgICAgICJleHBlY3RlZCIsIHsiZGVidWciOiBGYWxzZSwgIm9zIjogImxpbnV4In0p
LCAiVElNRU9VVCIpCisKKyAgICBAcHl0ZXN0Lm1hcmsueGZhaWwKKyAgICBkZWYgdGVzdF91cGRh
dGVfbXVsdGlwbGVfMShzZWxmKToKKyAgICAgICAgdGVzdF9pZCA9ICIvcGF0aC90by90ZXN0Lmh0
bSIKKyAgICAgICAgcHJldl9kYXRhID0gWygicGF0aC90by90ZXN0Lmh0bS5pbmkiLCBbdGVzdF9p
ZF0sICIiIlt0ZXN0Lmh0bV0KKyAgdHlwZTogdGVzdGhhcm5lc3MKKyAgW3Rlc3QxXQorICAgIGV4
cGVjdGVkOiBGQUlMIiIiKV0KKworICAgICAgICBuZXdfZGF0YV8wID0gc2VsZi5jcmVhdGVfbG9n
KCgidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJ0ZXN0
IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzdGF0dXMiOiAiRkFJTCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiRkFJTCJ9KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9p
ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
dGF0dXMiOiAiT0sifSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVu
X2luZm89eyJkZWJ1ZyI6IEZhbHNlLCAib3MiOiAib3N4In0pCisKKyAgICAgICAgbmV3X2RhdGFf
MSA9IHNlbGYuY3JlYXRlX2xvZygoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVz
dCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIlRJTUVPVVQiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVk
IjogIkZBSUwifSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0
X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsiZGVidWciOiBGYWxzZSwgIm9zIjogImxpbnV4
In0pCisgICAgICAgIHVwZGF0ZXIgPSBzZWxmLmNyZWF0ZV91cGRhdGVyKHByZXZfZGF0YSkKKwor
ICAgICAgICB1cGRhdGVyLnVwZGF0ZV9mcm9tX2xvZyhuZXdfZGF0YV8wKQorICAgICAgICB1cGRh
dGVyLnVwZGF0ZV9mcm9tX2xvZyhuZXdfZGF0YV8xKQorCisgICAgICAgIG5ld19tYW5pZmVzdCA9
IHVwZGF0ZXIuZXhwZWN0ZWRfdHJlZVsicGF0aC90by90ZXN0Lmh0bS5pbmkiXQorCisgICAgICAg
IHNlbGYuY29hbGVzY2VfcmVzdWx0cyhbbmV3X21hbmlmZXN0XSkKKworICAgICAgICBzZWxmLmFz
c2VydEZhbHNlKG5ld19tYW5pZmVzdC5pc19lbXB0eSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMobmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKKyAgICAg
ICAgICAgICJleHBlY3RlZCIsIHsiZGVidWciOiBGYWxzZSwgIm9zIjogIm9zeCJ9KSwgIkZBSUwi
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9p
ZCkuY2hpbGRyZW5bMF0uZ2V0KAorICAgICAgICAgICAgImV4cGVjdGVkIiwgeyJkZWJ1ZyI6IEZh
bHNlLCAib3MiOiAibGludXgifSksICJUSU1FT1VUIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMobmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKKyAgICAg
ICAgICAgICJleHBlY3RlZCIsIHsiZGVidWciOiBGYWxzZSwgIm9zIjogIndpbmRvd3MifSksICJG
QUlMIikKKworICAgIEBweXRlc3QubWFyay54ZmFpbAorICAgIGRlZiB0ZXN0X3VwZGF0ZV9tdWx0
aXBsZV8yKHNlbGYpOgorICAgICAgICB0ZXN0X2lkID0gIi9wYXRoL3RvL3Rlc3QuaHRtIgorICAg
ICAgICBwcmV2X2RhdGEgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtLmluaSIsIFt0ZXN0X2lkXSwgIiIi
W3Rlc3QuaHRtXQorICB0eXBlOiB0ZXN0aGFybmVzcworICBbdGVzdDFdCisgICAgZXhwZWN0ZWQ6
IEZBSUwiIiIpXQorCisgICAgICAgIG5ld19kYXRhXzAgPSBzZWxmLmNyZWF0ZV9sb2coKCJ0ZXN0
X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVz
dDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInN0YXR1cyI6ICJGQUlMIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJGQUlMIn0pLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6
ICJPSyJ9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbz17
ImRlYnVnIjogRmFsc2UsICJvcyI6ICJvc3gifSkKKworICAgICAgICBuZXdfZGF0YV8xID0gc2Vs
Zi5jcmVhdGVfbG9nKCgidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVz
dF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiVElNRU9VVCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiRkFJ
TCJ9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwg
eyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcnVuX2luZm89eyJkZWJ1ZyI6IFRydWUsICJvcyI6ICJvc3gifSkKKyAgICAg
ICAgdXBkYXRlciA9IHNlbGYuY3JlYXRlX3VwZGF0ZXIocHJldl9kYXRhKQorCisgICAgICAgIHVw
ZGF0ZXIudXBkYXRlX2Zyb21fbG9nKG5ld19kYXRhXzApCisgICAgICAgIHVwZGF0ZXIudXBkYXRl
X2Zyb21fbG9nKG5ld19kYXRhXzEpCisKKyAgICAgICAgbmV3X21hbmlmZXN0ID0gdXBkYXRlci5l
eHBlY3RlZF90cmVlWyJwYXRoL3RvL3Rlc3QuaHRtLmluaSJdCisKKyAgICAgICAgc2VsZi5jb2Fs
ZXNjZV9yZXN1bHRzKFtuZXdfbWFuaWZlc3RdKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uo
bmV3X21hbmlmZXN0LmlzX2VtcHR5KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhuZXdfbWFu
aWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAorICAgICAgICAgICAgImV4
cGVjdGVkIiwgeyJkZWJ1ZyI6IEZhbHNlLCAib3MiOiAib3N4In0pLCAiRkFJTCIpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJl
blswXS5nZXQoCisgICAgICAgICAgICAiZXhwZWN0ZWQiLCB7ImRlYnVnIjogVHJ1ZSwgIm9zIjog
Im9zeCJ9KSwgIlRJTUVPVVQiKQorCisgICAgQHB5dGVzdC5tYXJrLnhmYWlsCisgICAgZGVmIHRl
c3RfdXBkYXRlX211bHRpcGxlXzMoc2VsZik6CisgICAgICAgIHRlc3RfaWQgPSAiL3BhdGgvdG8v
dGVzdC5odG0iCisgICAgICAgIHByZXZfZGF0YSA9IFsoInBhdGgvdG8vdGVzdC5odG0uaW5pIiwg
W3Rlc3RfaWRdLCAiIiJbdGVzdC5odG1dCisgIHR5cGU6IHRlc3RoYXJuZXNzCisgIFt0ZXN0MV0K
KyAgICBleHBlY3RlZDoKKyAgICAgIGlmIGRlYnVnOiBGQUlMCisgICAgICBpZiBub3QgZGVidWcg
YW5kIG9zID09ICJvc3giOiBUSU1FT1VUIiIiKV0KKworICAgICAgICBuZXdfZGF0YV8wID0gc2Vs
Zi5jcmVhdGVfbG9nKCgidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVz
dF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiRkFJTCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiRkFJTCJ9
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0
ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzdGF0dXMiOiAiT0sifSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcnVuX2luZm89eyJkZWJ1ZyI6IEZhbHNlLCAib3MiOiAib3N4In0pCisKKyAgICAg
ICAgbmV3X2RhdGFfMSA9IHNlbGYuY3JlYXRlX2xvZygoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0
ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0
YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIlRJTUVP
VVQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImV4cGVjdGVkIjogIkZBSUwifSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsiZGVidWciOiBUcnVlLCAi
b3MiOiAib3N4In0pCisgICAgICAgIHVwZGF0ZXIgPSBzZWxmLmNyZWF0ZV91cGRhdGVyKHByZXZf
ZGF0YSkKKworICAgICAgICB1cGRhdGVyLnVwZGF0ZV9mcm9tX2xvZyhuZXdfZGF0YV8wKQorICAg
ICAgICB1cGRhdGVyLnVwZGF0ZV9mcm9tX2xvZyhuZXdfZGF0YV8xKQorCisgICAgICAgIG5ld19t
YW5pZmVzdCA9IHVwZGF0ZXIuZXhwZWN0ZWRfdHJlZVsicGF0aC90by90ZXN0Lmh0bS5pbmkiXQor
CisgICAgICAgIHNlbGYuY29hbGVzY2VfcmVzdWx0cyhbbmV3X21hbmlmZXN0XSkKKworICAgICAg
ICBzZWxmLmFzc2VydEZhbHNlKG5ld19tYW5pZmVzdC5pc19lbXB0eSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMobmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdl
dCgKKyAgICAgICAgICAgICJleHBlY3RlZCIsIHsiZGVidWciOiBGYWxzZSwgIm9zIjogIm9zeCJ9
KSwgIkZBSUwiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhuZXdfbWFuaWZlc3QuZ2V0X3Rl
c3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAorICAgICAgICAgICAgImV4cGVjdGVkIiwgeyJk
ZWJ1ZyI6IFRydWUsICJvcyI6ICJvc3gifSksICJUSU1FT1VUIikKKworICAgIEBweXRlc3QubWFy
ay54ZmFpbAorICAgIGRlZiB0ZXN0X3VwZGF0ZV9pZ25vcmVfZXhpc3Rpbmcoc2VsZik6CisgICAg
ICAgIHRlc3RfaWQgPSAiL3BhdGgvdG8vdGVzdC5odG0iCisgICAgICAgIHByZXZfZGF0YSA9IFso
InBhdGgvdG8vdGVzdC5odG0uaW5pIiwgW3Rlc3RfaWRdLCAiIiJbdGVzdC5odG1dCisgIHR5cGU6
IHRlc3RoYXJuZXNzCisgIFt0ZXN0MV0KKyAgICBleHBlY3RlZDoKKyAgICAgIGlmIGRlYnVnOiBU
SU1FT1VUCisgICAgICBpZiBub3QgZGVidWcgYW5kIG9zID09ICJvc3giOiBOT1RSVU4iIiIpXQor
CisgICAgICAgIG5ld19kYXRhXzAgPSBzZWxmLmNyZWF0ZV9sb2coKCJ0ZXN0X3N0YXJ0IiwgeyJ0
ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgi
dGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6
ICJGQUlMIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJleHBlY3RlZCI6ICJQQVNTIn0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbz17ImRlYnVnIjogRmFs
c2UsICJvcyI6ICJsaW51eCJ9KQorCisgICAgICAgIG5ld19kYXRhXzEgPSBzZWxmLmNyZWF0ZV9s
b2coKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRl
c3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInN0YXR1cyI6ICJGQUlMIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIn0pLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0
X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InN0YXR1cyI6ICJPSyJ9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
dW5faW5mbz17ImRlYnVnIjogVHJ1ZSwgIm9zIjogIndpbmRvd3MifSkKKyAgICAgICAgdXBkYXRl
ciA9IHNlbGYuY3JlYXRlX3VwZGF0ZXIocHJldl9kYXRhLCBpZ25vcmVfZXhpc3Rpbmc9VHJ1ZSkK
KworICAgICAgICB1cGRhdGVyLnVwZGF0ZV9mcm9tX2xvZyhuZXdfZGF0YV8wKQorICAgICAgICB1
cGRhdGVyLnVwZGF0ZV9mcm9tX2xvZyhuZXdfZGF0YV8xKQorCisgICAgICAgIG5ld19tYW5pZmVz
dCA9IHVwZGF0ZXIuZXhwZWN0ZWRfdHJlZVsicGF0aC90by90ZXN0Lmh0bS5pbmkiXQorCisgICAg
ICAgIHNlbGYuY29hbGVzY2VfcmVzdWx0cyhbbmV3X21hbmlmZXN0XSkKKworICAgICAgICBzZWxm
LmFzc2VydEZhbHNlKG5ld19tYW5pZmVzdC5pc19lbXB0eSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMobmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKKyAg
ICAgICAgICAgICJleHBlY3RlZCIsIHsiZGVidWciOiBUcnVlLCAib3MiOiAib3N4In0pLCAiRkFJ
TCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0
X2lkKS5jaGlsZHJlblswXS5nZXQoCisgICAgICAgICAgICAiZXhwZWN0ZWQiLCB7ImRlYnVnIjog
RmFsc2UsICJvcyI6ICJvc3gifSksICJGQUlMIikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90
ZXN0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy93M2MtaW1wb3J0LmxvZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iN2ZiYzUyNGIwNjdjNjBmZTY0ZTQxMGVjZmNiYWYzOTM3NzkyMzNkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAg
KzEsMjIgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9fX2luaXRfXy5weQorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci90ZXN0cy9iYXNlLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfY2h1bmtlci5w
eQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3Byb2R1Y3RzLnB5CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rl
c3RzL3Rlc3RfdGVzdGxvYWRlci5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3VwZGF0ZS5w
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9fX2luaXRfXy5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci91cGRhdGUvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTlkYWM2YmNjY2NhN2VlMTc1MjAx
M2NjYjZmZTRhZDg2NjA3NWYzMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRh
dGUvX19pbml0X18ucHkKQEAgLTAsMCArMSw0NiBAQAoraW1wb3J0IG9zCitpbXBvcnQgc3lzCisK
K2Zyb20gbW96bG9nLnN0cnVjdHVyZWQgaW1wb3J0IHN0cnVjdHVyZWRsb2csIGNvbW1hbmRsaW5l
CisKK2Zyb20gLi4gaW1wb3J0IHdwdGNvbW1hbmRsaW5lCisKK2Zyb20gdXBkYXRlIGltcG9ydCBX
UFRVcGRhdGUKKworZGVmIHJlbW92ZV9sb2dnaW5nX2FyZ3MoYXJncyk6CisgICAgIiIiVGFrZSBs
b2dnaW5nIGFyZ3Mgb3V0IG9mIHRoZSBkaWN0aW9uYXJ5IG9mIGNvbW1hbmQgbGluZSBhcmd1bWVu
dHMgc28KKyAgICB0aGV5IGFyZSBub3QgcGFzc2VkIGluIGFzIGt3YXJncyB0byB0aGUgdXBkYXRl
IGNvZGUuIFRoaXMgaXMgcGFydGljdWxhcmx5CisgICAgbmVjZXNzYXJ5IGhlcmUgYmVjYXVzZSB0
aGUgYXJndW1lbnRzIGFyZSBvZnRlbiBvZiB0eXBlIGZpbGUsIHdoaWNoIGNhbm5vdAorICAgIGJl
IHNlcmlhbGl6ZWQuCisKKyAgICA6cGFyYW0gYXJnczogRGljdGlvbmFyeSBvZiBjb21tYW5kIGxp
bmUgYXJndW1lbnRzLgorICAgICIiIgorICAgIGZvciBuYW1lIGluIGFyZ3Mua2V5cygpOgorICAg
ICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgoImxvZ18iKToKKyAgICAgICAgICAgIGFyZ3MucG9wKG5h
bWUpCisKKworZGVmIHNldHVwX2xvZ2dpbmcoYXJncywgZGVmYXVsdHMpOgorICAgICIiIlVzZSB0
aGUgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyB0byBzZXQgdXAgdGhlIGxvZ2dlci4KKworICAgIDpw
YXJhbSBhcmdzOiBEaWN0aW9uYXJ5IG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMuCisgICAgOnBh
cmFtIGRlZmF1bHRzOiBEaWN0aW9uYXJ5IG9mIHtmb3JtYXR0ZXJfbmFtZTogc3RyZWFtfSB0byB1
c2UgaWYKKyAgICAgICAgICAgICAgICAgICAgIG5vIGNvbW1hbmQgbGluZSBsb2dnaW5nIGlzIHNw
ZWNpZmllZCIiIgorICAgIGxvZ2dlciA9IGNvbW1hbmRsaW5lLnNldHVwX2xvZ2dpbmcoIndlYi1w
bGF0Zm9ybS10ZXN0cy11cGRhdGUiLCBhcmdzLCBkZWZhdWx0cykKKworICAgIHJlbW92ZV9sb2dn
aW5nX2FyZ3MoYXJncykKKworICAgIHJldHVybiBsb2dnZXIKKworCitkZWYgcnVuX3VwZGF0ZShs
b2dnZXIsICoqa3dhcmdzKToKKyAgICB1cGRhdGVyID0gV1BUVXBkYXRlKGxvZ2dlciwgKiprd2Fy
Z3MpCisgICAgcmV0dXJuIHVwZGF0ZXIucnVuKCkKKworCitkZWYgbWFpbigpOgorICAgIGFyZ3Mg
PSB3cHRjb21tYW5kbGluZS5wYXJzZV9hcmdzX3VwZGF0ZSgpCisgICAgbG9nZ2VyID0gc2V0dXBf
bG9nZ2luZyhhcmdzLCB7Im1hY2giOiBzeXMuc3Rkb3V0fSkKKyAgICBhc3NlcnQgc3RydWN0dXJl
ZGxvZy5nZXRfZGVmYXVsdF9sb2dnZXIoKSBpcyBub3QgTm9uZQorICAgIHN1Y2Nlc3MgPSBydW5f
dXBkYXRlKGxvZ2dlciwgKiphcmdzKQorICAgIHN5cy5leGl0KDAgaWYgc3VjY2VzcyBlbHNlIDEp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL2Jhc2UucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
dXBkYXRlL2Jhc2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQ3ODA4ZTUyOTMzMGUzYzEwZTYxZjUwZTdkY2I4
MGE4MzhmMjg5NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvYmFzZS5w
eQpAQCAtMCwwICsxLDY1IEBACitleGl0X3VuY2xlYW4gPSBvYmplY3QoKQorZXhpdF9jbGVhbiA9
IG9iamVjdCgpCisKKworY2xhc3MgU3RlcChvYmplY3QpOgorICAgIHByb3ZpZGVzID0gW10KKwor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIpOgorICAgICAgICBzZWxmLmxvZ2dlciA9IGxv
Z2dlcgorCisgICAgZGVmIHJ1bihzZWxmLCBzdGVwX2luZGV4LCBzdGF0ZSk6CisgICAgICAgICIi
IkJhc2UgY2xhc3MgZm9yIHN0YXRlLWNyZWF0aW5nIHN0ZXBzLgorCisgICAgICAgIFdoZW4gYSBT
dGVwIGlzIHJ1bigpIHRoZSBjdXJyZW50IHN0YXRlIGlzIGNoZWNrZWQgdG8gc2VlCisgICAgICAg
IGlmIHRoZSBzdGF0ZSBmcm9tIHRoaXMgc3RlcCBoYXMgYWxyZWFkeSBiZWVuIGNyZWF0ZWQuIElm
IGl0CisgICAgICAgIGhhcyB0aGUgcmVzdG9yZSgpIG1ldGhvZCBpcyBpbnZva2VkLiBPdGhlcndp
c2UgdGhlIGNyZWF0ZSgpCisgICAgICAgIG1ldGhvZCBpcyBpbnZva2VkIHdpdGggdGhlIHN0YXRl
IG9iamVjdC4gVGhpcyBpcyBleHBlY3RlZCB0bworICAgICAgICBhZGQgaXRlbXMgd2l0aCBhbGwg
dGhlIGtleXMgaW4gX19jbGFzc19fLnByb3ZpZGVzIHRvIHRoZSBzdGF0ZQorICAgICAgICBvYmpl
Y3QuCisgICAgICAgICIiIgorCisgICAgICAgIG5hbWUgPSBzZWxmLl9fY2xhc3NfXy5fX25hbWVf
XworCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHN0b3JlZF9zdGVwID0gc3RhdGUuc3RlcHNb
c3RlcF9pbmRleF0KKyAgICAgICAgZXhjZXB0IEluZGV4RXJyb3I6CisgICAgICAgICAgICBzdG9y
ZWRfc3RlcCA9IE5vbmUKKworICAgICAgICBpZiBzdG9yZWRfc3RlcCA9PSBuYW1lOgorICAgICAg
ICAgICAgc2VsZi5yZXN0b3JlKHN0YXRlKQorICAgICAgICBlbGlmIHN0b3JlZF9zdGVwIGlzIE5v
bmU6CisgICAgICAgICAgICBzZWxmLmNyZWF0ZShzdGF0ZSkKKyAgICAgICAgICAgIGFzc2VydCBz
ZXQoc2VsZi5wcm92aWRlcykuaXNzdWJzZXQoc2V0KHN0YXRlLmtleXMoKSkpCisgICAgICAgICAg
ICBzdGF0ZS5zdGVwcyA9IHN0YXRlLnN0ZXBzICsgW25hbWVdCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJFeHBlY3RlZCBhICVzIHN0ZXAsIGdvdCBhICVzIHN0
ZXAiICUgKG5hbWUsIHN0b3JlZF9zdGVwKSkKKworICAgIGRlZiBjcmVhdGUoc2VsZiwgZGF0YSk6
CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAgIGRlZiByZXN0b3JlKHNl
bGYsIHN0YXRlKToKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlN0ZXAgJXMgdXNpbmcgc3Rv
cmVkIHN0YXRlIiAlIChzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywpKQorICAgICAgICBmb3Iga2V5
IGluIHNlbGYucHJvdmlkZXM6CisgICAgICAgICAgICBhc3NlcnQga2V5IGluIHN0YXRlCisKKwor
Y2xhc3MgU3RlcFJ1bm5lcihvYmplY3QpOgorICAgIHN0ZXBzID0gW10KKworICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBsb2dnZXIsIHN0YXRlKToKKyAgICAgICAgIiIiQ2xhc3MgdGhhdCBydW5zIGEg
c3BlY2lmaWVkIHNlcmllcyBvZiBTdGVwcyB3aXRoIGEgY29tbW9uIFN0YXRlIiIiCisgICAgICAg
IHNlbGYuc3RhdGUgPSBzdGF0ZQorICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgorICAgICAg
ICBpZiAic3RlcHMiIG5vdCBpbiBzdGF0ZToKKyAgICAgICAgICAgIHN0YXRlLnN0ZXBzID0gW10K
KworICAgIGRlZiBydW4oc2VsZik6CisgICAgICAgIHJ2ID0gTm9uZQorICAgICAgICBmb3Igc3Rl
cF9pbmRleCwgc3RlcCBpbiBlbnVtZXJhdGUoc2VsZi5zdGVwcyk6CisgICAgICAgICAgICBzZWxm
LmxvZ2dlci5kZWJ1ZygiU3RhcnRpbmcgc3RlcCAlcyIgJSBzdGVwLl9fbmFtZV9fKQorICAgICAg
ICAgICAgcnYgPSBzdGVwKHNlbGYubG9nZ2VyKS5ydW4oc3RlcF9pbmRleCwgc2VsZi5zdGF0ZSkK
KyAgICAgICAgICAgIGlmIHJ2IGluIChleGl0X2NsZWFuLCBleGl0X3VuY2xlYW4pOgorICAgICAg
ICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgcmV0dXJuIHJ2CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvdXBkYXRlL21ldGFkYXRhLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9tZXRhZGF0YS5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jNzBlYzYxYTliM2E5MmEyNjAxMmI1ZWJmYWRjZGNiYmE1ZTA4OTFhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9tZXRhZGF0YS5weQpAQCAtMCww
ICsxLDcyIEBACitpbXBvcnQgb3MKKworZnJvbSAuLiBpbXBvcnQgbWV0YWRhdGEsIHByb2R1Y3Rz
CisKK2Zyb20gYmFzZSBpbXBvcnQgU3RlcCwgU3RlcFJ1bm5lcgorCisKK2NsYXNzIEdldFVwZGF0
ZVByb3BlcnR5TGlzdChTdGVwKToKKyAgICBwcm92aWRlcyA9IFsicHJvcGVydHlfb3JkZXIiLCAi
Ym9vbGVhbl9wcm9wZXJ0aWVzIl0KKworICAgIGRlZiBjcmVhdGUoc2VsZiwgc3RhdGUpOgorICAg
ICAgICBwcm9wZXJ0eV9vcmRlciwgYm9vbGVhbl9wcm9wZXJ0aWVzID0gcHJvZHVjdHMubG9hZF9w
cm9kdWN0X3VwZGF0ZSgKKyAgICAgICAgICAgIHN0YXRlLmNvbmZpZywgc3RhdGUucHJvZHVjdCkK
KyAgICAgICAgc3RhdGUucHJvcGVydHlfb3JkZXIgPSBwcm9wZXJ0eV9vcmRlciArIHN0YXRlLmV4
dHJhX3Byb3BlcnRpZXMKKyAgICAgICAgc3RhdGUuYm9vbGVhbl9wcm9wZXJ0aWVzID0gYm9vbGVh
bl9wcm9wZXJ0aWVzCisKKworY2xhc3MgVXBkYXRlRXhwZWN0ZWQoU3RlcCk6CisgICAgIiIiRG8g
dGhlIG1ldGFkYXRhIHVwZGF0ZSBvbiB0aGUgbG9jYWwgY2hlY2tvdXQiIiIKKworICAgIHByb3Zp
ZGVzID0gWyJuZWVkc19odW1hbiJdCisKKyAgICBkZWYgY3JlYXRlKHNlbGYsIHN0YXRlKToKKyAg
ICAgICAgaWYgc3RhdGUuc3luY190cmVlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc3luY19y
b290ID0gc3RhdGUuc3luY190cmVlLnJvb3QKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHN5
bmNfcm9vdCA9IE5vbmUKKworICAgICAgICBzdGF0ZS5uZWVkc19odW1hbiA9IG1ldGFkYXRhLnVw
ZGF0ZV9leHBlY3RlZChzdGF0ZS5wYXRocywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2VydmVfcm9vdCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUucnVuX2xvZywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV2X29s
ZD1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZ25vcmVfZXhpc3Rpbmc9c3RhdGUuaWdub3JlX2V4aXN0aW5nLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5jX3Jvb3Q9c3luY19y
b290LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwcm9wZXJ0eV9vcmRlcj1zdGF0ZS5wcm9wZXJ0eV9vcmRlciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbl9wcm9wZXJ0aWVzPXN0
YXRlLmJvb2xlYW5fcHJvcGVydGllcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3RhYmlsaXR5PXN0YXRlLnN0YWJpbGl0eSkKKworCitjbGFz
cyBDcmVhdGVNZXRhZGF0YVBhdGNoKFN0ZXApOgorICAgICIiIkNyZWF0ZSBhIHBhdGNoL2NvbW1p
dCBmb3IgdGhlIG1ldGFkYXRhIGNoZWNrb3V0IiIiCisKKyAgICBkZWYgY3JlYXRlKHNlbGYsIHN0
YXRlKToKKyAgICAgICAgaWYgbm90IHN0YXRlLnBhdGNoOgorICAgICAgICAgICAgcmV0dXJuCisK
KyAgICAgICAgbG9jYWxfdHJlZSA9IHN0YXRlLmxvY2FsX3RyZWUKKyAgICAgICAgc3luY190cmVl
ID0gc3RhdGUuc3luY190cmVlCisKKyAgICAgICAgaWYgc3luY190cmVlIGlzIG5vdCBOb25lOgor
ICAgICAgICAgICAgbmFtZSA9ICJ3ZWItcGxhdGZvcm0tdGVzdHNfdXBkYXRlXyVzX21ldGFkYXRh
IiAlIHN5bmNfdHJlZS5yZXYKKyAgICAgICAgICAgIG1lc3NhZ2UgPSAiVXBkYXRlICVzIGV4cGVj
dGVkIGRhdGEgdG8gcmV2aXNpb24gJXMiICUgKHN0YXRlLnN1aXRlX25hbWUsIHN5bmNfdHJlZS5y
ZXYpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBuYW1lID0gIndlYi1wbGF0Zm9ybS10ZXN0
c191cGRhdGVfbWV0YWRhdGEiCisgICAgICAgICAgICBtZXNzYWdlID0gIlVwZGF0ZSAlcyBleHBl
Y3RlZCBkYXRhIiAlIHN0YXRlLnN1aXRlX25hbWUKKworICAgICAgICBsb2NhbF90cmVlLmNyZWF0
ZV9wYXRjaChuYW1lLCBtZXNzYWdlKQorCisgICAgICAgIGlmIG5vdCBsb2NhbF90cmVlLmlzX2Ns
ZWFuOgorICAgICAgICAgICAgbWV0YWRhdGFfcGF0aHMgPSBbbWFuaWZlc3RfcGF0aFsibWV0YWRh
dGFfcGF0aCJdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgbWFuaWZlc3RfcGF0
aCBpbiBzdGF0ZS5wYXRocy5pdGVydmFsdWVzKCldCisgICAgICAgICAgICBmb3IgcGF0aCBpbiBt
ZXRhZGF0YV9wYXRoczoKKyAgICAgICAgICAgICAgICBsb2NhbF90cmVlLmFkZF9uZXcob3MucGF0
aC5yZWxwYXRoKHBhdGgsIGxvY2FsX3RyZWUucm9vdCkpCisgICAgICAgICAgICBsb2NhbF90cmVl
LnVwZGF0ZV9wYXRjaChpbmNsdWRlPW1ldGFkYXRhX3BhdGhzKQorICAgICAgICAgICAgbG9jYWxf
dHJlZS5jb21taXRfcGF0Y2goKQorCisKK2NsYXNzIE1ldGFkYXRhVXBkYXRlUnVubmVyKFN0ZXBS
dW5uZXIpOgorICAgICIiIihTdWIpUnVubmVyIGZvciB1cGRhdGluZyBtZXRhZGF0YSIiIgorICAg
IHN0ZXBzID0gW0dldFVwZGF0ZVByb3BlcnR5TGlzdCwKKyAgICAgICAgICAgICBVcGRhdGVFeHBl
Y3RlZCwKKyAgICAgICAgICAgICBDcmVhdGVNZXRhZGF0YVBhdGNoXQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3VwZGF0ZS9zdGF0ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3RhdGUucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZGM0NTlkYTdlMmU1YTZiNWRmZDA4OGI3MTFlNGZhOWM3ZDY5M2FmOQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3RhdGUucHkKQEAgLTAsMCArMSwx
MzUgQEAKK2ltcG9ydCBvcworaW1wb3J0IGNQaWNrbGUgYXMgcGlja2xlCisKK2hlcmUgPSBvcy5w
YXRoLmFic3BhdGgob3MucGF0aC5zcGxpdChfX2ZpbGVfXylbMF0pCisKK2NsYXNzIFN0YXRlKG9i
amVjdCk6CisgICAgZmlsZW5hbWUgPSBvcy5wYXRoLmpvaW4oaGVyZSwgIi53cHQtdXBkYXRlLmxv
Y2siKQorCisgICAgZGVmIF9fbmV3X18oY2xzLCBsb2dnZXIpOgorICAgICAgICBydiA9IGNscy5s
b2FkKGxvZ2dlcikKKyAgICAgICAgaWYgcnYgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBsb2dn
ZXIuZGVidWcoIkV4aXN0aW5nIHN0YXRlIGZvdW5kIikKKyAgICAgICAgICAgIHJldHVybiBydgor
CisgICAgICAgIGxvZ2dlci5kZWJ1ZygiTm8gZXhpc3Rpbmcgc3RhdGUgZm91bmQiKQorICAgICAg
ICByZXR1cm4gb2JqZWN0Ll9fbmV3X18oY2xzLCBsb2dnZXIpCisKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgbG9nZ2VyKToKKyAgICAgICAgIiIiT2JqZWN0IGNvbnRhaW5pbmcgc3RhdGUgdmFyaWFi
bGVzIGNyZWF0ZWQgd2hlbiBydW5uaW5nIFN0ZXBzLgorCisgICAgICAgIE9uIHdyaXRlIHRoZSBz
dGF0ZSBpcyBzZXJpYWxpemVkIHRvIGRpc2ssIHN1Y2ggdGhhdCBpdCBjYW4gYmUgcmVzdG9yZWQg
aW4KKyAgICAgICAgdGhlIGV2ZW50IHRoYXQgdGhlIHByb2dyYW0gaXMgaW50ZXJydXB0ZWQgYmVm
b3JlIGFsbCBzdGVwcyBhcmUgY29tcGxldGUuCisgICAgICAgIE5vdGUgdGhhdCB0aGlzIG9ubHkg
d29ya3Mgd2VsbCBpZiB0aGUgdmFsdWVzIGFyZSBpbW11dGFibGU7IG11dGF0aW5nIGFuCisgICAg
ICAgIGV4aXN0aW5nIHZhbHVlIHdpbGwgbm90IGNhdXNlIHRoZSBkYXRhIHRvIGJlIHNlcmlhbGl6
ZWQuCisKKyAgICAgICAgVmFyaWFibGVzIGFyZSBzZXQgYW5kIGdldCBhcyBhdHRyaWJ1dGVzIGUu
Zy4gc3RhdGVfb2JqLnNwYW0gPSAiZWdncyIuCisKKyAgICAgICAgOnBhcmFtIHBhcmVudDogUGFy
ZW50IFN0YXRlIG9iamVjdCBvciBOb25lIGlmIHRoaXMgaXMgdGhlIHJvb3Qgb2JqZWN0LgorICAg
ICAgICAiIiIKKworICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJfZGF0YSIpOgorICAgICAgICAg
ICAgcmV0dXJuCisKKyAgICAgICAgc2VsZi5fZGF0YSA9IFt7fV0KKyAgICAgICAgc2VsZi5fbG9n
Z2VyID0gbG9nZ2VyCisgICAgICAgIHNlbGYuX2luZGV4ID0gMAorCisgICAgZGVmIF9fZ2V0c3Rh
dGVfXyhzZWxmKToKKyAgICAgICAgcnYgPSBzZWxmLl9fZGljdF9fLmNvcHkoKQorICAgICAgICBk
ZWwgcnZbIl9sb2dnZXIiXQorICAgICAgICByZXR1cm4gcnYKKworICAgIEBjbGFzc21ldGhvZAor
ICAgIGRlZiBsb2FkKGNscywgbG9nZ2VyKToKKyAgICAgICAgIiIiTG9hZCBzYXZlZCBzdGF0ZSBm
cm9tIGEgZmlsZSIiIgorICAgICAgICB0cnk6CisgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5p
c2ZpbGUoY2xzLmZpbGVuYW1lKToKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAg
ICAgICAgd2l0aCBvcGVuKGNscy5maWxlbmFtZSkgYXMgZjoKKyAgICAgICAgICAgICAgICB0cnk6
CisgICAgICAgICAgICAgICAgICAgIHJ2ID0gcGlja2xlLmxvYWQoZikKKyAgICAgICAgICAgICAg
ICAgICAgbG9nZ2VyLmRlYnVnKCJMb2FkaW5nIGRhdGEgJXIiICUgKHJ2Ll9kYXRhLCkpCisgICAg
ICAgICAgICAgICAgICAgIHJ2Ll9sb2dnZXIgPSBsb2dnZXIKKyAgICAgICAgICAgICAgICAgICAg
cnYuX2luZGV4ID0gMAorICAgICAgICAgICAgICAgICAgICByZXR1cm4gcnYKKyAgICAgICAgICAg
ICAgICBleGNlcHQgRU9GRXJyb3I6CisgICAgICAgICAgICAgICAgICAgIGxvZ2dlci53YXJuaW5n
KCJGb3VuZCBlbXB0eSBzdGF0ZSBmaWxlIikKKyAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAg
ICAgICAgICBsb2dnZXIuZGVidWcoIklPRXJyb3IgbG9hZGluZyBzdG9yZWQgc3RhdGUiKQorCisg
ICAgZGVmIHB1c2goc2VsZiwgaW5pdF92YWx1ZXMpOgorICAgICAgICAiIiJQdXNoIGEgbmV3IGNs
ZWFuIHN0YXRlIGRpY3Rpb25hcnkKKworICAgICAgICA6cGFyYW0gaW5pdF92YWx1ZXM6IExpc3Qg
b2YgdmFyaWFibGUgbmFtZXMgaW4gdGhlIGN1cnJlbnQgc3RhdGUgZGljdCB0byBjb3B5CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW50byB0aGUgbmV3IHN0YXRlIGRpY3QuIiIiCisKKyAg
ICAgICAgcmV0dXJuIFN0YXRlQ29udGV4dChzZWxmLCBpbml0X3ZhbHVlcykKKworICAgIGRlZiBz
YXZlKHNlbGYpOgorICAgICAgICAiIiJXcml0ZSB0aGUgc3RhdGUgdG8gZGlzayIiIgorICAgICAg
ICB3aXRoIG9wZW4oc2VsZi5maWxlbmFtZSwgInciKSBhcyBmOgorICAgICAgICAgICAgcGlja2xl
LmR1bXAoc2VsZiwgZikKKworICAgIGRlZiBpc19lbXB0eShzZWxmKToKKyAgICAgICAgcmV0dXJu
IGxlbihzZWxmLl9kYXRhKSA9PSAxIGFuZCBzZWxmLl9kYXRhWzBdID09IHt9CisKKyAgICBkZWYg
Y2xlYXIoc2VsZik6CisgICAgICAgICIiIlJlbW92ZSBhbGwgc3RhdGUgYW5kIGRlbGV0ZSB0aGUg
c3RvcmVkIGNvcHkuIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG9zLnVubGluayhzZWxm
LmZpbGVuYW1lKQorICAgICAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgc2VsZi5fZGF0YSA9IFt7fV0KKworCisgICAgZGVmIF9fc2V0YXR0cl9fKHNlbGYsIGtl
eSwgdmFsdWUpOgorICAgICAgICBpZiBrZXkuc3RhcnRzd2l0aCgiXyIpOgorICAgICAgICAgICAg
b2JqZWN0Ll9fc2V0YXR0cl9fKHNlbGYsIGtleSwgdmFsdWUpCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICBzZWxmLl9kYXRhW3NlbGYuX2luZGV4XVtrZXldID0gdmFsdWUKKyAgICAgICAgICAg
IHNlbGYuc2F2ZSgpCisKKyAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwga2V5KToKKyAgICAgICAg
aWYga2V5LnN0YXJ0c3dpdGgoIl8iKToKKyAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9y
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9kYXRhW3NlbGYuX2luZGV4
XVtrZXldCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlIEF0dHJp
YnV0ZUVycm9yCisKKyAgICBkZWYgX19jb250YWluc19fKHNlbGYsIGtleSk6CisgICAgICAgIHJl
dHVybiBrZXkgaW4gc2VsZi5fZGF0YVtzZWxmLl9pbmRleF0KKworICAgIGRlZiB1cGRhdGUoc2Vs
ZiwgaXRlbXMpOgorICAgICAgICAiIiJBZGQgYSBkaWN0aW9uYXJ5IG9mIHtuYW1lOiB2YWx1ZX0g
cGFpcnMgdG8gdGhlIHN0YXRlIiIiCisgICAgICAgIHNlbGYuX2RhdGFbc2VsZi5faW5kZXhdLnVw
ZGF0ZShpdGVtcykKKyAgICAgICAgc2VsZi5zYXZlKCkKKworICAgIGRlZiBrZXlzKHNlbGYpOgor
ICAgICAgICByZXR1cm4gc2VsZi5fZGF0YVtzZWxmLl9pbmRleF0ua2V5cygpCisKK2NsYXNzIFN0
YXRlQ29udGV4dChvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzdGF0ZSwgaW5pdF92
YWx1ZXMpOgorICAgICAgICBzZWxmLnN0YXRlID0gc3RhdGUKKyAgICAgICAgc2VsZi5pbml0X3Zh
bHVlcyA9IGluaXRfdmFsdWVzCisKKyAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICBp
ZiBsZW4oc2VsZi5zdGF0ZS5fZGF0YSkgPT0gc2VsZi5zdGF0ZS5faW5kZXggKyAxOgorICAgICAg
ICAgICAgIyBUaGlzIGlzIHRoZSBjYXNlIHdoZXJlIHRoZXJlIGlzIG5vIHN0b3JlZCBzdGF0ZQor
ICAgICAgICAgICAgbmV3X3N0YXRlID0ge30KKyAgICAgICAgICAgIGZvciBrZXkgaW4gc2VsZi5p
bml0X3ZhbHVlczoKKyAgICAgICAgICAgICAgICBuZXdfc3RhdGVba2V5XSA9IHNlbGYuc3RhdGUu
X2RhdGFbc2VsZi5zdGF0ZS5faW5kZXhdW2tleV0KKyAgICAgICAgICAgIHNlbGYuc3RhdGUuX2Rh
dGEuYXBwZW5kKG5ld19zdGF0ZSkKKyAgICAgICAgc2VsZi5zdGF0ZS5faW5kZXggKz0gMQorICAg
ICAgICBzZWxmLnN0YXRlLl9sb2dnZXIuZGVidWcoIkluY3JlbWVudGVkIGluZGV4IHRvICVzIiAl
IHNlbGYuc3RhdGUuX2luZGV4KQorCisgICAgZGVmIF9fZXhpdF9fKHNlbGYsICphcmdzLCAqKmt3
YXJncyk6CisgICAgICAgIGlmIGxlbihzZWxmLnN0YXRlLl9kYXRhKSA+IDE6CisgICAgICAgICAg
ICBhc3NlcnQgc2VsZi5zdGF0ZS5faW5kZXggPT0gbGVuKHNlbGYuc3RhdGUuX2RhdGEpIC0gMQor
ICAgICAgICAgICAgc2VsZi5zdGF0ZS5fZGF0YS5wb3AoKQorICAgICAgICAgICAgc2VsZi5zdGF0
ZS5faW5kZXggLT0gMQorICAgICAgICAgICAgc2VsZi5zdGF0ZS5fbG9nZ2VyLmRlYnVnKCJEZWNy
ZW1lbnRlZCBpbmRleCB0byAlcyIgJSBzZWxmLnN0YXRlLl9pbmRleCkKKyAgICAgICAgICAgIGFz
c2VydCBzZWxmLnN0YXRlLl9pbmRleCA+PSAwCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKCJUcmllZCB0byBwb3AgdGhlIHRvcCBzdGF0ZSIpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdXBkYXRlL3N5bmMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3N5bmMu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjI2NjBlNWEzM2VjM2EyNjAyZWY1ZjdiMTk0MjUzY2NiMmE3ZDQzNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3luYy5weQpAQCAtMCwwICsx
LDE5NyBAQAoraW1wb3J0IGZubWF0Y2gKK2ltcG9ydCBvcworaW1wb3J0IHJlCitpbXBvcnQgc2h1
dGlsCitpbXBvcnQgc3lzCitpbXBvcnQgdXVpZAorCitmcm9tIC4uIGltcG9ydCB0ZXN0bG9hZGVy
CisKK2Zyb20gYmFzZSBpbXBvcnQgU3RlcCwgU3RlcFJ1bm5lcgorZnJvbSB0cmVlIGltcG9ydCBD
b21taXQKKworaGVyZSA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVsw
XSkKKworYnNkX2xpY2Vuc2UgPSAiIiJXM0MgMy1jbGF1c2UgQlNEIExpY2Vuc2UKKworUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Cittb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCittZXQ6CisKKyogUmVkaXN0cmlidXRpb25zIG9mIHdvcmtzIG11
c3QgcmV0YWluIHRoZSBvcmlnaW5hbCBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCisgIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorCisqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgb3JpZ2luYWwgY29weXJpZ2h0
CisgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKworKiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRo
ZSBXM0Mgbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzIG1heSBiZQorICB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyB3b3JrIHdpdGhv
dXQKKyAgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorCisKK1RISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMg
IkFTCitJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKK0FSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRQorTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKK1NVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KK0NPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCitBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQorUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisiIiIKKworCitkZWYgY29weV93cHRfdHJlZSh0cmVlLCBkZXN0LCBleGNs
dWRlcz1Ob25lLCBpbmNsdWRlcz1Ob25lKToKKyAgICAiIiJDb3B5IHRoZSB3b3JraW5nIGNvcHkg
b2YgYSBUcmVlIHRvIGEgZGVzdGluYXRpb24gZGlyZWN0b3J5LgorCisgICAgOnBhcmFtIHRyZWU6
IFRoZSBUcmVlIHRvIGNvcHkuCisgICAgOnBhcmFtIGRlc3Q6IFRoZSBkZXN0aW5hdGlvbiBkaXJl
Y3RvcnkiIiIKKyAgICBpZiBvcy5wYXRoLmV4aXN0cyhkZXN0KToKKyAgICAgICAgYXNzZXJ0IG9z
LnBhdGguaXNkaXIoZGVzdCkKKworICAgIHNodXRpbC5ybXRyZWUoZGVzdCkKKworICAgIG9zLm1r
ZGlyKGRlc3QpCisKKyAgICBpZiBleGNsdWRlcyBpcyBOb25lOgorICAgICAgICBleGNsdWRlcyA9
IFtdCisKKyAgICBleGNsdWRlcyA9IFtyZS5jb21waWxlKGZubWF0Y2gudHJhbnNsYXRlKGl0ZW0p
KSBmb3IgaXRlbSBpbiBleGNsdWRlc10KKworICAgIGlmIGluY2x1ZGVzIGlzIE5vbmU6CisgICAg
ICAgIGluY2x1ZGVzID0gW10KKworICAgIGluY2x1ZGVzID0gW3JlLmNvbXBpbGUoZm5tYXRjaC50
cmFuc2xhdGUoaXRlbSkpIGZvciBpdGVtIGluIGluY2x1ZGVzXQorCisgICAgZm9yIHRyZWVfcGF0
aCBpbiB0cmVlLnBhdGhzKCk6CisgICAgICAgIGlmIChhbnkoaXRlbS5tYXRjaCh0cmVlX3BhdGgp
IGZvciBpdGVtIGluIGV4Y2x1ZGVzKSBhbmQKKyAgICAgICAgICAgIG5vdCBhbnkoaXRlbS5tYXRj
aCh0cmVlX3BhdGgpIGZvciBpdGVtIGluIGluY2x1ZGVzKSk6CisgICAgICAgICAgICBjb250aW51
ZQorCisgICAgICAgIHNvdXJjZV9wYXRoID0gb3MucGF0aC5qb2luKHRyZWUucm9vdCwgdHJlZV9w
YXRoKQorICAgICAgICBkZXN0X3BhdGggPSBvcy5wYXRoLmpvaW4oZGVzdCwgdHJlZV9wYXRoKQor
CisgICAgICAgIGRlc3RfZGlyID0gb3MucGF0aC5zcGxpdChkZXN0X3BhdGgpWzBdCisgICAgICAg
IGlmIG5vdCBvcy5wYXRoLmlzZGlyKHNvdXJjZV9wYXRoKToKKyAgICAgICAgICAgIGlmIG5vdCBv
cy5wYXRoLmV4aXN0cyhkZXN0X2Rpcik6CisgICAgICAgICAgICAgICAgb3MubWFrZWRpcnMoZGVz
dF9kaXIpCisgICAgICAgICAgICBzaHV0aWwuY29weTIoc291cmNlX3BhdGgsIGRlc3RfcGF0aCkK
KworICAgIGZvciBzb3VyY2UsIGRlc3RpbmF0aW9uIGluIFsoInRlc3RoYXJuZXNzX3J1bm5lci5o
dG1sIiwgIiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInRlc3Rkcml2ZXIt
dmVuZG9yLmpzIiwgInJlc291cmNlcy8iKV06CisgICAgICAgIHNvdXJjZV9wYXRoID0gb3MucGF0
aC5qb2luKGhlcmUsIG9zLnBhcmRpciwgc291cmNlKQorICAgICAgICBkZXN0X3BhdGggPSBvcy5w
YXRoLmpvaW4oZGVzdCwgZGVzdGluYXRpb24sIG9zLnBhdGguc3BsaXQoc291cmNlKVsxXSkKKyAg
ICAgICAgc2h1dGlsLmNvcHkyKHNvdXJjZV9wYXRoLCBkZXN0X3BhdGgpCisKKyAgICBhZGRfbGlj
ZW5zZShkZXN0KQorCisKK2RlZiBhZGRfbGljZW5zZShkZXN0KToKKyAgICAiIiJXcml0ZSB0aGUg
YnNkIGxpY2Vuc2Ugc3RyaW5nIHRvIGEgTElDRU5TRSBmaWxlLgorCisgICAgOnBhcmFtIGRlc3Q6
IERpcmVjdG9yeSBpbiB3aGljaCB0byBwbGFjZSB0aGUgTElDRU5TRSBmaWxlLiIiIgorICAgIHdp
dGggb3Blbihvcy5wYXRoLmpvaW4oZGVzdCwgIkxJQ0VOU0UiKSwgInciKSBhcyBmOgorICAgICAg
ICBmLndyaXRlKGJzZF9saWNlbnNlKQorCisKK2NsYXNzIFVwZGF0ZUNoZWNrb3V0KFN0ZXApOgor
ICAgICIiIlB1bGwgY2hhbmdlcyBmcm9tIHVwc3RyZWFtIGludG8gdGhlIGxvY2FsIHN5bmMgdHJl
ZS4iIiIKKworICAgIHByb3ZpZGVzID0gWyJsb2NhbF9icmFuY2giXQorCisgICAgZGVmIGNyZWF0
ZShzZWxmLCBzdGF0ZSk6CisgICAgICAgIHN5bmNfdHJlZSA9IHN0YXRlLnN5bmNfdHJlZQorICAg
ICAgICBzdGF0ZS5sb2NhbF9icmFuY2ggPSB1dWlkLnV1aWQ0KCkuaGV4CisgICAgICAgIHN5bmNf
dHJlZS51cGRhdGUoc3RhdGUuc3luY1sicmVtb3RlX3VybCJdLAorICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXRlLnN5bmNbImJyYW5jaCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0
YXRlLmxvY2FsX2JyYW5jaCkKKyAgICAgICAgc3luY19wYXRoID0gb3MucGF0aC5hYnNwYXRoKHN5
bmNfdHJlZS5yb290KQorICAgICAgICBpZiBzeW5jX3BhdGggbm90IGluIHN5cy5wYXRoOgorICAg
ICAgICAgICAgZnJvbSB1cGRhdGUgaW1wb3J0IHNldHVwX3BhdGhzCisgICAgICAgICAgICBzZXR1
cF9wYXRocyhzeW5jX3BhdGgpCisKKyAgICBkZWYgcmVzdG9yZShzZWxmLCBzdGF0ZSk6CisgICAg
ICAgIGFzc2VydCBvcy5wYXRoLmFic3BhdGgoc3RhdGUuc3luY190cmVlLnJvb3QpIGluIHN5cy5w
YXRoCisgICAgICAgIFN0ZXAucmVzdG9yZShzZWxmLCBzdGF0ZSkKKworCitjbGFzcyBHZXRTeW5j
VGFyZ2V0Q29tbWl0KFN0ZXApOgorICAgICIiIkZpbmQgdGhlIGNvbW1pdCB0aGF0IHdlIHdpbGwg
c3luYyB0by4iIiIKKworICAgIHByb3ZpZGVzID0gWyJzeW5jX2NvbW1pdCJdCisKKyAgICBkZWYg
Y3JlYXRlKHNlbGYsIHN0YXRlKToKKyAgICAgICAgaWYgc3RhdGUudGFyZ2V0X3JldiBpcyBOb25l
OgorICAgICAgICAgICAgI1VzZSB1cHN0cmVhbSBicmFuY2ggSEVBRCBhcyB0aGUgYmFzZSBjb21t
aXQKKyAgICAgICAgICAgIHN0YXRlLnN5bmNfY29tbWl0ID0gc3RhdGUuc3luY190cmVlLmdldF9y
ZW1vdGVfc2hhMShzdGF0ZS5zeW5jWyJyZW1vdGVfdXJsIl0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuc3luY1si
YnJhbmNoIl0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzdGF0ZS5zeW5jX2NvbW1pdCA9
IENvbW1pdChzdGF0ZS5zeW5jX3RyZWUsIHN0YXRlLnJldikKKworICAgICAgICBzdGF0ZS5zeW5j
X3RyZWUuY2hlY2tvdXQoc3RhdGUuc3luY19jb21taXQuc2hhMSwgc3RhdGUubG9jYWxfYnJhbmNo
LCBmb3JjZT1UcnVlKQorICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiTmV3IGJhc2UgY29tbWl0
IGlzICVzIiAlIHN0YXRlLnN5bmNfY29tbWl0LnNoYTEpCisKKworY2xhc3MgTG9hZE1hbmlmZXN0
KFN0ZXApOgorICAgICIiIkxvYWQgdGhlIHRlc3QgbWFuaWZlc3QiIiIKKworICAgIHByb3ZpZGVz
ID0gWyJtYW5pZmVzdF9wYXRoIiwgInRlc3RfbWFuaWZlc3QiXQorCisgICAgZGVmIGNyZWF0ZShz
ZWxmLCBzdGF0ZSk6CisgICAgICAgIGZyb20gbWFuaWZlc3QgaW1wb3J0IG1hbmlmZXN0CisgICAg
ICAgIHN0YXRlLm1hbmlmZXN0X3BhdGggPSBvcy5wYXRoLmpvaW4oc3RhdGUubWV0YWRhdGFfcGF0
aCwgIk1BTklGRVNULmpzb24iKQorICAgICAgICBzdGF0ZS50ZXN0X21hbmlmZXN0ID0gbWFuaWZl
c3QuTWFuaWZlc3QoIi8iKQorCisKK2NsYXNzIFVwZGF0ZU1hbmlmZXN0KFN0ZXApOgorICAgICIi
IlVwZGF0ZSB0aGUgbWFuaWZlc3QgdG8gbWF0Y2ggdGhlIHRlc3RzIGluIHRoZSBzeW5jIHRyZWUg
Y2hlY2tvdXQiIiIKKworICAgIGRlZiBjcmVhdGUoc2VsZiwgc3RhdGUpOgorICAgICAgICBmcm9t
IG1hbmlmZXN0IGltcG9ydCBtYW5pZmVzdCwgdXBkYXRlCisgICAgICAgIHVwZGF0ZS51cGRhdGUo
c3RhdGUuc3luY1sicGF0aCJdLCBzdGF0ZS50ZXN0X21hbmlmZXN0KQorICAgICAgICBtYW5pZmVz
dC53cml0ZShzdGF0ZS50ZXN0X21hbmlmZXN0LCBzdGF0ZS5tYW5pZmVzdF9wYXRoKQorCisKK2Ns
YXNzIENvcHlXb3JrVHJlZShTdGVwKToKKyAgICAiIiJDb3B5IHRoZSBzeW5jIHRyZWUgb3ZlciB0
byB0aGUgZGVzdGluYXRpb24gaW4gdGhlIGxvY2FsIHRyZWUiIiIKKworICAgIGRlZiBjcmVhdGUo
c2VsZiwgc3RhdGUpOgorICAgICAgICBjb3B5X3dwdF90cmVlKHN0YXRlLnN5bmNfdHJlZSwKKyAg
ICAgICAgICAgICAgICAgICAgICBzdGF0ZS50ZXN0c19wYXRoLAorICAgICAgICAgICAgICAgICAg
ICAgIGV4Y2x1ZGVzPXN0YXRlLnBhdGhfZXhjbHVkZXMsCisgICAgICAgICAgICAgICAgICAgICAg
aW5jbHVkZXM9c3RhdGUucGF0aF9pbmNsdWRlcykKKworCitjbGFzcyBDcmVhdGVTeW5jUGF0Y2go
U3RlcCk6CisgICAgIiIiQWRkIHRoZSB1cGRhdGVkIHRlc3QgZmlsZXMgdG8gYSBjb21taXQvcGF0
Y2ggaW4gdGhlIGxvY2FsIHRyZWUuIiIiCisKKyAgICBkZWYgY3JlYXRlKHNlbGYsIHN0YXRlKToK
KyAgICAgICAgaWYgbm90IHN0YXRlLnBhdGNoOgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAg
ICAgbG9jYWxfdHJlZSA9IHN0YXRlLmxvY2FsX3RyZWUKKyAgICAgICAgc3luY190cmVlID0gc3Rh
dGUuc3luY190cmVlCisKKyAgICAgICAgbG9jYWxfdHJlZS5jcmVhdGVfcGF0Y2goIndlYi1wbGF0
Zm9ybS10ZXN0c191cGRhdGVfJXMiICUgc3luY190cmVlLnJldiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIlVwZGF0ZSAlcyB0byByZXZpc2lvbiAlcyIgJSAoc3RhdGUuc3VpdGVf
bmFtZSwgc3luY190cmVlLnJldikpCisgICAgICAgIGxvY2FsX3RyZWUuYWRkX25ldyhvcy5wYXRo
LnJlbHBhdGgoc3RhdGUudGVzdHNfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsb2NhbF90cmVlLnJvb3QpKQorICAgICAgICB1cGRhdGVkID0gbG9jYWxf
dHJlZS51cGRhdGVfcGF0Y2goaW5jbHVkZT1bc3RhdGUudGVzdHNfcGF0aCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLm1ldGFkYXRhX3Bh
dGhdKQorICAgICAgICBsb2NhbF90cmVlLmNvbW1pdF9wYXRjaCgpCisKKyAgICAgICAgaWYgbm90
IHVwZGF0ZWQ6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJOb3RoaW5nIHRvIHN5bmMi
KQorCisKK2NsYXNzIFN5bmNGcm9tVXBzdHJlYW1SdW5uZXIoU3RlcFJ1bm5lcik6CisgICAgIiIi
KFN1YilSdW5uZXIgZm9yIGRvaW5nIGFuIHVwc3RyZWFtIHN5bmMiIiIKKyAgICBzdGVwcyA9IFtV
cGRhdGVDaGVja291dCwKKyAgICAgICAgICAgICBHZXRTeW5jVGFyZ2V0Q29tbWl0LAorICAgICAg
ICAgICAgIExvYWRNYW5pZmVzdCwKKyAgICAgICAgICAgICBVcGRhdGVNYW5pZmVzdCwKKyAgICAg
ICAgICAgICBDb3B5V29ya1RyZWUsCisgICAgICAgICAgICAgQ3JlYXRlU3luY1BhdGNoXQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS90cmVlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0
ZS90cmVlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3OWRkYmExZjZmM2Q2NjA1MTBlNTgyY2M4ZDQ2YjgwYjk1
OWZmOTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3RyZWUucHkKQEAg
LTAsMCArMSwzODIgQEAKK2ltcG9ydCBvcworaW1wb3J0IHJlCitpbXBvcnQgc3VicHJvY2Vzcwor
Citmcm9tIC4uIGltcG9ydCB2Y3MKK2Zyb20gLi52Y3MgaW1wb3J0IGJpbmRfdG9fcmVwbywgZ2l0
LCBoZworCisKK2RlZiBnZXRfdW5pcXVlX25hbWUoZXhpc3RpbmcsIGluaXRpYWwpOgorICAgICIi
IkdldCBhIG5hbWUgZWl0aGVyIGVxdWFsIHRvIGluaXRpYWwgb3Igb2YgdGhlIGZvcm0gaW5pdGlh
bF9OLCBmb3Igc29tZQorICAgIGludGVnZXIgTiwgdGhhdCBpcyBub3QgaW4gdGhlIHNldCBleGlz
dGluZy4KKworCisgICAgOnBhcmFtIGV4aXN0aW5nOiBTZXQgb2YgbmFtZXMgdGhhdCBtdXN0IG5v
dCBiZSBjaG9zZW4uCisgICAgOnBhcmFtIGluaXRpYWw6IE5hbWUsIG9yIG5hbWUgcHJlZml4LCB0
byB1c2UiIiIKKyAgICBpZiBpbml0aWFsIG5vdCBpbiBleGlzdGluZzoKKyAgICAgICAgcmV0dXJu
IGluaXRpYWwKKyAgICBmb3IgaSBpbiB4cmFuZ2UobGVuKGV4aXN0aW5nKSArIDEpOgorICAgICAg
ICB0ZXN0ID0gIiVzXyVzIiAlIChpbml0aWFsLCBpICsgMSkKKyAgICAgICAgaWYgdGVzdCBub3Qg
aW4gZXhpc3Rpbmc6CisgICAgICAgICAgICByZXR1cm4gdGVzdAorICAgIGFzc2VydCBGYWxzZQor
CitjbGFzcyBOb1ZDU1RyZWUob2JqZWN0KToKKyAgICBuYW1lID0gIm5vbi12Y3MiCisKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgcm9vdD1Ob25lKToKKyAgICAgICAgaWYgcm9vdCBpcyBOb25lOgor
ICAgICAgICAgICAgcm9vdCA9IG9zLnBhdGguYWJzcGF0aChvcy5jdXJkaXIpCisgICAgICAgIHNl
bGYucm9vdCA9IHJvb3QKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBpc190eXBlKGNscywg
cGF0aD1Ob25lKToKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIEBwcm9wZXJ0eQorICAgIGRl
ZiBpc19jbGVhbihzZWxmKToKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiBhZGRfbmV3
KHNlbGYsIHByZWZpeD1Ob25lKToKKyAgICAgICAgcGFzcworCisgICAgZGVmIGNyZWF0ZV9wYXRj
aChzZWxmLCBwYXRjaF9uYW1lLCBtZXNzYWdlKToKKyAgICAgICAgcGFzcworCisgICAgZGVmIHVw
ZGF0ZV9wYXRjaChzZWxmLCBpbmNsdWRlPU5vbmUpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYg
Y29tbWl0X3BhdGNoKHNlbGYpOgorICAgICAgICBwYXNzCisKKworY2xhc3MgSGdUcmVlKG9iamVj
dCk6CisgICAgbmFtZSA9ICJtZXJjdXJpYWwiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcm9v
dD1Ob25lKToKKyAgICAgICAgaWYgcm9vdCBpcyBOb25lOgorICAgICAgICAgICAgcm9vdCA9IGhn
KCJyb290Iikuc3RyaXAoKQorICAgICAgICBzZWxmLnJvb3QgPSByb290CisgICAgICAgIHNlbGYu
aGcgPSB2Y3MuYmluZF90b19yZXBvKGhnLCBzZWxmLnJvb3QpCisKKyAgICBkZWYgX19nZXRzdGF0
ZV9fKHNlbGYpOgorICAgICAgICBydiA9IHNlbGYuX19kaWN0X18uY29weSgpCisgICAgICAgIGRl
bCBydlsnaGcnXQorICAgICAgICByZXR1cm4gcnYKKworICAgIGRlZiBfX3NldHN0YXRlX18oc2Vs
ZiwgZGljdCk6CisgICAgICAgIHNlbGYuX19kaWN0X18udXBkYXRlKGRpY3QpCisgICAgICAgIHNl
bGYuaGcgPSB2Y3MuYmluZF90b19yZXBvKHZjcy5oZywgc2VsZi5yb290KQorCisgICAgQGNsYXNz
bWV0aG9kCisgICAgZGVmIGlzX3R5cGUoY2xzLCBwYXRoPU5vbmUpOgorICAgICAgICBrd2FyZ3Mg
PSB7ImxvZ19lcnJvciI6IEZhbHNlfQorICAgICAgICBpZiBwYXRoIGlzIG5vdCBOb25lOgorICAg
ICAgICAgICAga3dhcmdzWyJyZXBvIl0gPSBwYXRoCisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IGhnKCJyb290IiwgKiprd2FyZ3MpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAg
ICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIEBwcm9wZXJ0eQor
ICAgIGRlZiBpc19jbGVhbihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuaGcoInN0YXR1cyIp
LnN0cmlwKCkgPT0gIiIKKworICAgIGRlZiBhZGRfbmV3KHNlbGYsIHByZWZpeD1Ob25lKToKKyAg
ICAgICAgaWYgcHJlZml4IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgYXJncyA9ICgiLUkiLCBw
cmVmaXgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhcmdzID0gKCkKKyAgICAgICAgc2Vs
Zi5oZygiYWRkIiwgKmFyZ3MpCisKKyAgICBkZWYgY3JlYXRlX3BhdGNoKHNlbGYsIHBhdGNoX25h
bWUsIG1lc3NhZ2UpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmhnKCJxaW5pdCIs
IGxvZ19lcnJvcj1GYWxzZSkKKyAgICAgICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vz
c0Vycm9yOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIHBhdGNoX25hbWVzID0gW2l0ZW0u
c3RyaXAoKSBmb3IgaXRlbSBpbiBzZWxmLmhnKCJxc2VyaWVzIikuc3BsaXQoIlxuIikgaWYgaXRl
bS5zdHJpcCgpXQorCisgICAgICAgIHN1ZmZpeCA9IDAKKyAgICAgICAgdGVzdF9uYW1lID0gcGF0
Y2hfbmFtZQorICAgICAgICB3aGlsZSB0ZXN0X25hbWUgaW4gcGF0Y2hfbmFtZXM6CisgICAgICAg
ICAgICBzdWZmaXggKz0gMQorICAgICAgICAgICAgdGVzdF9uYW1lID0gIiVzLSVpIiAlIChwYXRj
aF9uYW1lLCBzdWZmaXgpCisKKyAgICAgICAgc2VsZi5oZygicW5ldyIsIHRlc3RfbmFtZSwgIi1Y
Iiwgc2VsZi5yb290LCAiLW0iLCBtZXNzYWdlKQorCisgICAgZGVmIHVwZGF0ZV9wYXRjaChzZWxm
LCBpbmNsdWRlPU5vbmUpOgorICAgICAgICBpZiBpbmNsdWRlIGlzIG5vdCBOb25lOgorICAgICAg
ICAgICAgYXJncyA9IFtdCisgICAgICAgICAgICBmb3IgaXRlbSBpbiBpbmNsdWRlOgorICAgICAg
ICAgICAgICAgIGFyZ3MuZXh0ZW5kKFsiLUkiLCBpdGVtXSkKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIGFyZ3MgPSAoKQorCisgICAgICAgIHNlbGYuaGcoInFyZWZyZXNoIiwgKmFyZ3MpCisg
ICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgY29tbWl0X3BhdGNoKHNlbGYpOgorICAgICAg
ICBzZWxmLmhnKCJxZmluaXNoIikKKworICAgIGRlZiBjb250YWluc19jb21taXQoc2VsZiwgY29t
bWl0KToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5oZygiaWRlbnRpZnkiLCAiLXIi
LCBjb21taXQuc2hhMSkKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIGV4Y2VwdCBz
dWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQor
CisKK2NsYXNzIEdpdFRyZWUob2JqZWN0KToKKyAgICBuYW1lID0gImdpdCIKKworICAgIGRlZiBf
X2luaXRfXyhzZWxmLCByb290PU5vbmUpOgorICAgICAgICBpZiByb290IGlzIE5vbmU6CisgICAg
ICAgICAgICByb290ID0gZ2l0KCJyZXYtcGFyc2UiLCAiLS1zaG93LXRvcGxldmVsIikuc3RyaXAo
KQorICAgICAgICBzZWxmLnJvb3QgPSByb290CisgICAgICAgIHNlbGYuZ2l0ID0gdmNzLmJpbmRf
dG9fcmVwbyhnaXQsIHNlbGYucm9vdCkKKyAgICAgICAgc2VsZi5tZXNzYWdlID0gTm9uZQorICAg
ICAgICBzZWxmLmNvbW1pdF9jbHMgPSBDb21taXQKKworICAgIGRlZiBfX2dldHN0YXRlX18oc2Vs
Zik6CisgICAgICAgIHJ2ID0gc2VsZi5fX2RpY3RfXy5jb3B5KCkKKyAgICAgICAgZGVsIHJ2Wydn
aXQnXQorICAgICAgICByZXR1cm4gcnYKKworICAgIGRlZiBfX3NldHN0YXRlX18oc2VsZiwgZGlj
dCk6CisgICAgICAgIHNlbGYuX19kaWN0X18udXBkYXRlKGRpY3QpCisgICAgICAgIHNlbGYuZ2l0
ID0gdmNzLmJpbmRfdG9fcmVwbyh2Y3MuZ2l0LCBzZWxmLnJvb3QpCisKKyAgICBAY2xhc3NtZXRo
b2QKKyAgICBkZWYgaXNfdHlwZShjbHMsIHBhdGg9Tm9uZSk6CisgICAgICAgIGt3YXJncyA9IHsi
bG9nX2Vycm9yIjogRmFsc2V9CisgICAgICAgIGlmIHBhdGggaXMgbm90IE5vbmU6CisgICAgICAg
ICAgICBrd2FyZ3NbInJlcG8iXSA9IHBhdGgKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZ2l0
KCJyZXYtcGFyc2UiLCAiLS1zaG93LXRvcGxldmVsIiwgKiprd2FyZ3MpCisgICAgICAgIGV4Y2Vw
dCBFeGNlcHRpb246CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJuIFRy
dWUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiByZXYoc2VsZik6CisgICAgICAgICIiIkN1cnJl
bnQgSEVBRCByZXZpc2lvbiIiIgorICAgICAgICBpZiB2Y3MuaXNfZ2l0X3Jvb3Qoc2VsZi5yb290
KToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmdpdCgicmV2LXBhcnNlIiwgIkhFQUQiKS5zdHJp
cCgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgQHByb3Bl
cnR5CisgICAgZGVmIGlzX2NsZWFuKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5naXQoInN0
YXR1cyIpLnN0cmlwKCkgPT0gIiIKKworICAgIGRlZiBhZGRfbmV3KHNlbGYsIHByZWZpeD1Ob25l
KToKKyAgICAgICAgIiIiQWRkIGZpbGVzIHRvIHRoZSBzdGFnaW5nIGFyZWEuCisKKyAgICAgICAg
OnBhcmFtIHByZWZpeDogTm9uZSB0byBpbmNsdWRlIGFsbCBmaWxlcyBvciBhIHBhdGggcHJlZml4
IHRvCisgICAgICAgICAgICAgICAgICAgICAgIGFkZCBhbGwgZmlsZXMgdW5kZXIgdGhhdCBwYXRo
LgorICAgICAgICAiIiIKKyAgICAgICAgaWYgcHJlZml4IGlzIE5vbmU6CisgICAgICAgICAgICBh
cmdzID0gKCItYSIsKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYXJncyA9ICgiLS1uby1p
Z25vcmUtcmVtb3ZhbCIsIHByZWZpeCkKKyAgICAgICAgc2VsZi5naXQoImFkZCIsICphcmdzKQor
CisgICAgZGVmIGxpc3RfcmVmcyhzZWxmLCByZWZfZmlsdGVyPU5vbmUpOgorICAgICAgICAiIiJH
ZXQgYSBsaXN0IG9mIHNoYTEsIG5hbWUgdHVwbGVzIGZvciByZWZlcmVuY2VzIGluIGEgcmVwb3Np
dG9yeS4KKworICAgICAgICA6cGFyYW0gcmVmX2ZpbHRlcjogUGF0dGVybiB0aGF0IHJlZmVyZW5j
ZSBuYW1lIG11c3QgbWF0Y2ggKGZyb20gdGhlIGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1hdGNoaW5nIHdob2xlIC8tZGVsaW1pdGVkIHNlZ21lbnRzIG9ubHkKKyAgICAgICAgIiIi
CisgICAgICAgIGFyZ3MgPSBbXQorICAgICAgICBpZiByZWZfZmlsdGVyIGlzIG5vdCBOb25lOgor
ICAgICAgICAgICAgYXJncy5hcHBlbmQocmVmX2ZpbHRlcikKKyAgICAgICAgZGF0YSA9IHNlbGYu
Z2l0KCJzaG93LXJlZiIsICphcmdzKQorICAgICAgICBydiA9IFtdCisgICAgICAgIGZvciBsaW5l
IGluIGRhdGEuc3BsaXQoIlxuIik6CisgICAgICAgICAgICBpZiBub3QgbGluZS5zdHJpcCgpOgor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBzaGExLCByZWYgPSBsaW5lLnNw
bGl0KCkKKyAgICAgICAgICAgIHJ2LmFwcGVuZCgoc2hhMSwgcmVmKSkKKyAgICAgICAgcmV0dXJu
IHJ2CisKKyAgICBkZWYgbGlzdF9yZW1vdGUoc2VsZiwgcmVtb3RlLCByZWZfZmlsdGVyPU5vbmUp
OgorICAgICAgICAiIiJSZXR1cm4gYSBsaXN0IG9mIChzaGExLCBuYW1lKSB0dXBlcyBmb3IgcmVm
ZXJlbmNlcyBpbiBhIHJlbW90ZS4KKworICAgICAgICA6cGFyYW0gcmVtb3RlOiBVUkwgb2YgdGhl
IHJlbW90ZSB0byBsaXN0LgorICAgICAgICA6cGFyYW0gcmVmX2ZpbHRlcjogUGF0dGVybiB0aGF0
IHRoZSByZWZlcmVuY2UgbmFtZSBtdXN0IG1hdGNoLgorICAgICAgICAiIiIKKyAgICAgICAgYXJn
cyA9IFtdCisgICAgICAgIGlmIHJlZl9maWx0ZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBh
cmdzLmFwcGVuZChyZWZfZmlsdGVyKQorICAgICAgICBkYXRhID0gc2VsZi5naXQoImxzLXJlbW90
ZSIsIHJlbW90ZSwgKmFyZ3MpCisgICAgICAgIHJ2ID0gW10KKyAgICAgICAgZm9yIGxpbmUgaW4g
ZGF0YS5zcGxpdCgiXG4iKToKKyAgICAgICAgICAgIGlmIG5vdCBsaW5lLnN0cmlwKCk6CisgICAg
ICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIHNoYTEsIHJlZiA9IGxpbmUuc3BsaXQo
KQorICAgICAgICAgICAgcnYuYXBwZW5kKChzaGExLCByZWYpKQorICAgICAgICByZXR1cm4gcnYK
KworICAgIGRlZiBnZXRfcmVtb3RlX3NoYTEoc2VsZiwgcmVtb3RlLCBicmFuY2gpOgorICAgICAg
ICAiIiJSZXR1cm4gdGhlIFNIQTEgb2YgYSBwYXJ0aWN1bGFyIGJyYW5jaCBpbiBhIHJlbW90ZS4K
KworICAgICAgICA6cGFyYW0gcmVtb3RlOiB0aGUgcmVtb3RlIFVSTAorICAgICAgICA6cGFyYW0g
YnJhbmNoOiB0aGUgYnJhbmNoIG5hbWUiIiIKKyAgICAgICAgZm9yIHNoYTEsIHJlZiBpbiBzZWxm
Lmxpc3RfcmVtb3RlKHJlbW90ZSwgYnJhbmNoKToKKyAgICAgICAgICAgIGlmIHJlZiA9PSAicmVm
cy9oZWFkcy8lcyIgJSBicmFuY2g6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuY29tbWl0
X2NscyhzZWxmLCBzaGExKQorICAgICAgICBhc3NlcnQgRmFsc2UKKworICAgIGRlZiBjcmVhdGVf
cGF0Y2goc2VsZiwgcGF0Y2hfbmFtZSwgbWVzc2FnZSk6CisgICAgICAgICMgSW4gZ2l0IGEgcGF0
Y2ggaXMgYWN0dWFsbHkgYSBjb21taXQKKyAgICAgICAgc2VsZi5tZXNzYWdlID0gbWVzc2FnZQor
CisgICAgZGVmIHVwZGF0ZV9wYXRjaChzZWxmLCBpbmNsdWRlPU5vbmUpOgorICAgICAgICAiIiJD
b21taXQgdGhlIHN0YWdlZCBjaGFuZ2VzLCBvciBjaGFuZ2VzIHRvIGxpc3RlZCBmaWxlcy4KKwor
ICAgICAgICA6cGFyYW0gaW5jbHVkZTogRWl0aGVyIE5vbmUsIHRvIGNvbW1pdCBzdGFnZWQgY2hh
bmdlcywgb3IgYSBsaXN0CisgICAgICAgICAgICAgICAgICAgICAgICBvZiBmaWxlbmFtZXMgKHdo
aWNoIG11c3QgYWxyZWFkeSBiZSBpbiB0aGUgcmVwbykKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRvIGNvbW1pdAorICAgICAgICAiIiIKKyAgICAgICAgaWYgaW5jbHVkZSBpcyBub3QgTm9uZToK
KyAgICAgICAgICAgIGFyZ3MgPSB0dXBsZShpbmNsdWRlKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgYXJncyA9ICgpCisKKyAgICAgICAgaWYgc2VsZi5naXQoInN0YXR1cyIsICItdW5vIiwg
Ii16IiwgKmFyZ3MpLnN0cmlwKCk6CisgICAgICAgICAgICBzZWxmLmdpdCgiYWRkIiwgKmFyZ3Mp
CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRl
ZiBjb21taXRfcGF0Y2goc2VsZik6CisgICAgICAgIGFzc2VydCBzZWxmLm1lc3NhZ2UgaXMgbm90
IE5vbmUKKworICAgICAgICBpZiBzZWxmLmdpdCgiZGlmZiIsICItLW5hbWUtb25seSIsICItLXN0
YWdlZCIsICIteiIpLnN0cmlwKCk6CisgICAgICAgICAgICBzZWxmLmdpdCgiY29tbWl0IiwgIi1t
Iiwgc2VsZi5tZXNzYWdlKQorICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAgICAgICByZXR1
cm4gRmFsc2UKKworICAgIGRlZiBpbml0KHNlbGYpOgorICAgICAgICBzZWxmLmdpdCgiaW5pdCIp
CisgICAgICAgIGFzc2VydCB2Y3MuaXNfZ2l0X3Jvb3Qoc2VsZi5yb290KQorCisgICAgZGVmIGNo
ZWNrb3V0KHNlbGYsIHJldiwgYnJhbmNoPU5vbmUsIGZvcmNlPUZhbHNlKToKKyAgICAgICAgIiIi
Q2hlY2tvdXQgYSBwYXJ0aWN1bGFyIHJldmlzaW9uLCBvcHRpb25hbGx5IGludG8gYSBuYW1lZCBi
cmFuY2guCisKKyAgICAgICAgOnBhcmFtIHJldjogUmV2aXNpb24gaWRlbnRpZmllciAoZS5nLiBT
SEExKSB0byBjaGVja291dAorICAgICAgICA6cGFyYW0gYnJhbmNoOiBCcmFuY2ggbmFtZSB0byB1
c2UKKyAgICAgICAgOnBhcmFtIGZvcmNlOiBGb3JjZS1jaGVja291dAorICAgICAgICAiIiIKKyAg
ICAgICAgYXNzZXJ0IHJldiBpcyBub3QgTm9uZQorCisgICAgICAgIGFyZ3MgPSBbXQorICAgICAg
ICBpZiBicmFuY2g6CisgICAgICAgICAgICBicmFuY2hlcyA9IFtyZWZbbGVuKCJyZWZzL2hlYWRz
LyIpOl0gZm9yIHNoYTEsIHJlZiBpbiBzZWxmLmxpc3RfcmVmcygpCisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiByZWYuc3RhcnRzd2l0aCgicmVmcy9oZWFkcy8iKV0KKyAgICAgICAgICAgIGJy
YW5jaCA9IGdldF91bmlxdWVfbmFtZShicmFuY2hlcywgYnJhbmNoKQorCisgICAgICAgICAgICBh
cmdzICs9IFsiLWIiLCBicmFuY2hdCisKKyAgICAgICAgaWYgZm9yY2U6CisgICAgICAgICAgICBh
cmdzLmFwcGVuZCgiLWYiKQorICAgICAgICBhcmdzLmFwcGVuZChyZXYpCisgICAgICAgIHNlbGYu
Z2l0KCJjaGVja291dCIsICphcmdzKQorCisgICAgZGVmIHVwZGF0ZShzZWxmLCByZW1vdGUsIHJl
bW90ZV9icmFuY2gsIGxvY2FsX2JyYW5jaCk6CisgICAgICAgICIiIkZldGNoIGZyb20gdGhlIHJl
bW90ZSBhbmQgY2hlY2tvdXQgaW50byBhIGxvY2FsIGJyYW5jaC4KKworICAgICAgICA6cGFyYW0g
cmVtb3RlOiBVUkwgdG8gdGhlIHJlbW90ZSByZXBvc2l0b3J5CisgICAgICAgIDpwYXJhbSByZW1v
dGVfYnJhbmNoOiBCcmFuY2ggb24gdGhlIHJlbW90ZSByZXBvc2l0b3J5IHRvIGNoZWNrIG91dAor
ICAgICAgICA6cGFyYW0gbG9jYWxfYnJhbmNoOiBMb2NhbCBicmFuY2ggbmFtZSB0byBjaGVjayBv
dXQgaW50bworICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IHZjcy5pc19naXRfcm9vdChzZWxm
LnJvb3QpOgorICAgICAgICAgICAgc2VsZi5pbml0KCkKKyAgICAgICAgc2VsZi5naXQoImNsZWFu
IiwgIi14ZGYiKQorICAgICAgICBzZWxmLmdpdCgiZmV0Y2giLCByZW1vdGUsICIlczolcyIgJSAo
cmVtb3RlX2JyYW5jaCwgbG9jYWxfYnJhbmNoKSkKKyAgICAgICAgc2VsZi5jaGVja291dChsb2Nh
bF9icmFuY2gpCisgICAgICAgIHNlbGYuZ2l0KCJzdWJtb2R1bGUiLCAidXBkYXRlIiwgIi0taW5p
dCIsICItLXJlY3Vyc2l2ZSIpCisKKyAgICBkZWYgY2xlYW4oc2VsZik6CisgICAgICAgIHNlbGYu
Z2l0KCJjaGVja291dCIsIHNlbGYucmV2KQorICAgICAgICBzZWxmLmdpdCgiYnJhbmNoIiwgIi1E
Iiwgc2VsZi5sb2NhbF9icmFuY2gpCisKKyAgICBkZWYgcGF0aHMoc2VsZik6CisgICAgICAgICIi
Ikxpc3QgcGF0aHMgaW4gdGhlIHRyZWUiIiIKKyAgICAgICAgcmVwb19wYXRocyA9IFtzZWxmLnJv
b3RdICsgW29zLnBhdGguam9pbihzZWxmLnJvb3QsIHBhdGgpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmb3IgcGF0aCBpbiBzZWxmLnN1Ym1vZHVsZXMoKV0KKworICAgICAg
ICBydiA9IFtdCisKKyAgICAgICAgZm9yIHJlcG9fcGF0aCBpbiByZXBvX3BhdGhzOgorICAgICAg
ICAgICAgcGF0aHMgPSB2Y3MuZ2l0KCJscy10cmVlIiwgIi1yIiwgIi0tbmFtZS1vbmx5IiwgIkhF
QUQiLCByZXBvPXJlcG9fcGF0aCkuc3BsaXQoIlxuIikKKyAgICAgICAgICAgIHJ2LmV4dGVuZChv
cy5wYXRoLnJlbHBhdGgob3MucGF0aC5qb2luKHJlcG9fcGF0aCwgaXRlbSksIHNlbGYucm9vdCkg
Zm9yIGl0ZW0gaW4gcGF0aHMKKyAgICAgICAgICAgICAgICAgICAgICBpZiBpdGVtLnN0cmlwKCkp
CisgICAgICAgIHJldHVybiBydgorCisgICAgZGVmIHN1Ym1vZHVsZXMoc2VsZik6CisgICAgICAg
ICIiIkxpc3Qgc3VibW9kdWxlIGRpcmVjdG9yaWVzIiIiCisgICAgICAgIG91dHB1dCA9IHNlbGYu
Z2l0KCJzdWJtb2R1bGUiLCAic3RhdHVzIiwgIi0tcmVjdXJzaXZlIikKKyAgICAgICAgcnYgPSBb
XQorICAgICAgICBmb3IgbGluZSBpbiBvdXRwdXQuc3BsaXQoIlxuIik6CisgICAgICAgICAgICBs
aW5lID0gbGluZS5zdHJpcCgpCisgICAgICAgICAgICBpZiBub3QgbGluZToKKyAgICAgICAgICAg
ICAgICBjb250aW51ZQorICAgICAgICAgICAgcGFydHMgPSBsaW5lLnNwbGl0KCIgIikKKyAgICAg
ICAgICAgIHJ2LmFwcGVuZChwYXJ0c1sxXSkKKyAgICAgICAgcmV0dXJuIHJ2CisKKyAgICBkZWYg
Y29udGFpbnNfY29tbWl0KHNlbGYsIGNvbW1pdCk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IHNlbGYuZ2l0KCJyZXYtcGFyc2UiLCAiLS12ZXJpZnkiLCBjb21taXQuc2hhMSkKKyAgICAgICAg
ICAgIHJldHVybiBUcnVlCisgICAgICAgIGV4Y2VwdCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NF
cnJvcjoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisKK2NsYXNzIENvbW1pdE1lc3NhZ2Uo
b2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGV4dCk6CisgICAgICAgIHNlbGYudGV4
dCA9IHRleHQKKyAgICAgICAgc2VsZi5fcGFyc2VfbWVzc2FnZSgpCisKKyAgICBkZWYgX19zdHJf
XyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYudGV4dAorCisgICAgZGVmIF9wYXJzZV9tZXNz
YWdlKHNlbGYpOgorICAgICAgICBsaW5lcyA9IHNlbGYudGV4dC5zcGxpdGxpbmVzKCkKKyAgICAg
ICAgc2VsZi5mdWxsX3N1bW1hcnkgPSBsaW5lc1swXQorICAgICAgICBzZWxmLmJvZHkgPSAiXG4i
LmpvaW4obGluZXNbMTpdKQorCisKK2NsYXNzIENvbW1pdChvYmplY3QpOgorICAgIG1zZ19jbHMg
PSBDb21taXRNZXNzYWdlCisKKyAgICBfc2hhMV9yZSA9IHJlLmNvbXBpbGUoIl5bMC05YS1mXXs0
MH0kIikKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0cmVlLCBzaGExKToKKyAgICAgICAgIiIi
T2JqZWN0IHJlcHJlc2VudGluZyBhIGNvbW1pdCBpbiBhIHNwZWNpZmljIEdpdFRyZWUuCisKKyAg
ICAgICAgOnBhcmFtIHRyZWU6IEdpdFRyZWUgdG8gd2hpY2ggdGhpcyBjb21taXQgYmVsb25ncy4K
KyAgICAgICAgOnBhcmFtIHNoYTE6IEZ1bGwgc2hhMSBzdHJpbmcgZm9yIHRoZSBjb21taXQKKyAg
ICAgICAgIiIiCisgICAgICAgIGFzc2VydCBzZWxmLl9zaGExX3JlLm1hdGNoKHNoYTEpCisKKyAg
ICAgICAgc2VsZi50cmVlID0gdHJlZQorICAgICAgICBzZWxmLmdpdCA9IHRyZWUuZ2l0CisgICAg
ICAgIHNlbGYuc2hhMSA9IHNoYTEKKyAgICAgICAgc2VsZi5hdXRob3IsIHNlbGYuZW1haWwsIHNl
bGYubWVzc2FnZSA9IHNlbGYuX2dldF9tZXRhKCkKKworICAgIGRlZiBfX2dldHN0YXRlX18oc2Vs
Zik6CisgICAgICAgIHJ2ID0gc2VsZi5fX2RpY3RfXy5jb3B5KCkKKyAgICAgICAgZGVsIHJ2Wydn
aXQnXQorICAgICAgICByZXR1cm4gcnYKKworICAgIGRlZiBfX3NldHN0YXRlX18oc2VsZiwgZGlj
dCk6CisgICAgICAgIHNlbGYuX19kaWN0X18udXBkYXRlKGRpY3QpCisgICAgICAgIHNlbGYuZ2l0
ID0gc2VsZi50cmVlLmdpdAorCisgICAgZGVmIF9nZXRfbWV0YShzZWxmKToKKyAgICAgICAgYXV0
aG9yLCBlbWFpbCwgbWVzc2FnZSA9IHNlbGYuZ2l0KCJzaG93IiwgIi1zIiwgIi0tZm9ybWF0PWZv
cm1hdDolYW5cbiVhZVxuJUIiLCBzZWxmLnNoYTEpLnNwbGl0KCJcbiIsIDIpCisgICAgICAgIHJl
dHVybiBhdXRob3IsIGVtYWlsLCBzZWxmLm1zZ19jbHMobWVzc2FnZSkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci91cGRhdGUvdXBkYXRlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS91cGRhdGUu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTEwMjljNTEyOWZkY2M1ODBjYTE5ODBlNTNiZTc5NWM1MDBhNjIwYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvdXBkYXRlLnB5CkBAIC0wLDAg
KzEsMTU4IEBACitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworZnJvbSBtZXRhZGF0YSBpbXBvcnQg
TWV0YWRhdGFVcGRhdGVSdW5uZXIKK2Zyb20gc3luYyBpbXBvcnQgU3luY0Zyb21VcHN0cmVhbVJ1
bm5lcgorZnJvbSB0cmVlIGltcG9ydCBHaXRUcmVlLCBIZ1RyZWUsIE5vVkNTVHJlZQorCitmcm9t
IC4uIGltcG9ydCBlbnZpcm9ubWVudCBhcyBlbnYKK2Zyb20gYmFzZSBpbXBvcnQgU3RlcCwgU3Rl
cFJ1bm5lciwgZXhpdF9jbGVhbiwgZXhpdF91bmNsZWFuCitmcm9tIHN0YXRlIGltcG9ydCBTdGF0
ZQorCitkZWYgc2V0dXBfcGF0aHMoc3luY19wYXRoKToKKyAgICBzeXMucGF0aC5pbnNlcnQoMCwg
b3MucGF0aC5hYnNwYXRoKHN5bmNfcGF0aCkpCisgICAgZnJvbSB0b29scyBpbXBvcnQgbG9jYWxw
YXRocworCitjbGFzcyBMb2FkQ29uZmlnKFN0ZXApOgorICAgICIiIlN0ZXAgZm9yIGxvYWRpbmcg
Y29uZmlndXJhdGlvbiBmcm9tIHRoZSBpbmkgZmlsZSBhbmQga3dhcmdzLiIiIgorCisgICAgcHJv
dmlkZXMgPSBbInN5bmMiLCAicGF0aHMiLCAibWV0YWRhdGFfcGF0aCIsICJ0ZXN0c19wYXRoIl0K
KworICAgIGRlZiBjcmVhdGUoc2VsZiwgc3RhdGUpOgorICAgICAgICBzdGF0ZS5zeW5jID0geyJy
ZW1vdGVfdXJsIjogc3RhdGUua3dhcmdzWyJyZW1vdGVfdXJsIl0sCisgICAgICAgICAgICAgICAg
ICAgICAgImJyYW5jaCI6IHN0YXRlLmt3YXJnc1siYnJhbmNoIl0sCisgICAgICAgICAgICAgICAg
ICAgICAgInBhdGgiOiBzdGF0ZS5rd2FyZ3NbInN5bmNfcGF0aCJdfQorCisgICAgICAgIHN0YXRl
LnBhdGhzID0gc3RhdGUua3dhcmdzWyJ0ZXN0X3BhdGhzIl0KKyAgICAgICAgc3RhdGUudGVzdHNf
cGF0aCA9IHN0YXRlLnBhdGhzWyIvIl1bInRlc3RzX3BhdGgiXQorICAgICAgICBzdGF0ZS5tZXRh
ZGF0YV9wYXRoID0gc3RhdGUucGF0aHNbIi8iXVsibWV0YWRhdGFfcGF0aCJdCisKKyAgICAgICAg
YXNzZXJ0IG9zLnBhdGguaXNhYnMoc3RhdGUudGVzdHNfcGF0aCkKKworCitjbGFzcyBMb2FkVHJl
ZXMoU3RlcCk6CisgICAgIiIiU3RlcCBmb3IgY3JlYXRpbmcgYSBUcmVlIGZvciB0aGUgbG9jYWwg
Y29weSBhbmQgYSBHaXRUcmVlIGZvciB0aGUKKyAgICB1cHN0cmVhbSBzeW5jLiIiIgorCisgICAg
cHJvdmlkZXMgPSBbImxvY2FsX3RyZWUiLCAic3luY190cmVlIl0KKworICAgIGRlZiBjcmVhdGUo
c2VsZiwgc3RhdGUpOgorICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhzdGF0ZS5zeW5jWyJwYXRo
Il0pOgorICAgICAgICAgICAgc3luY190cmVlID0gR2l0VHJlZShyb290PXN0YXRlLnN5bmNbInBh
dGgiXSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHN5bmNfdHJlZSA9IE5vbmUKKworICAg
ICAgICBpZiBHaXRUcmVlLmlzX3R5cGUoKToKKyAgICAgICAgICAgIGxvY2FsX3RyZWUgPSBHaXRU
cmVlKCkKKyAgICAgICAgZWxpZiBIZ1RyZWUuaXNfdHlwZSgpOgorICAgICAgICAgICAgbG9jYWxf
dHJlZSA9IEhnVHJlZSgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBsb2NhbF90cmVlID0g
Tm9WQ1NUcmVlKCkKKworICAgICAgICBzdGF0ZS51cGRhdGUoeyJsb2NhbF90cmVlIjogbG9jYWxf
dHJlZSwKKyAgICAgICAgICAgICAgICAgICAgICAic3luY190cmVlIjogc3luY190cmVlfSkKKwor
CitjbGFzcyBTeW5jRnJvbVVwc3RyZWFtKFN0ZXApOgorICAgICIiIlN0ZXAgdGhhdCBzeW5jaHJv
bmlzZXMgYSBsb2NhbCBjb3B5IG9mIHRoZSBjb2RlIHdpdGggdXBzdHJlYW0uIiIiCisKKyAgICBk
ZWYgY3JlYXRlKHNlbGYsIHN0YXRlKToKKyAgICAgICAgaWYgbm90IHN0YXRlLmt3YXJnc1sic3lu
YyJdOgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgaWYgbm90IHN0YXRlLnN5bmNfdHJl
ZToKKyAgICAgICAgICAgIG9zLm1rZGlyKHN0YXRlLnN5bmNbInBhdGgiXSkKKyAgICAgICAgICAg
IHN0YXRlLnN5bmNfdHJlZSA9IEdpdFRyZWUocm9vdD1zdGF0ZS5zeW5jWyJwYXRoIl0pCisKKyAg
ICAgICAga3dhcmdzID0gc3RhdGUua3dhcmdzCisgICAgICAgIHdpdGggc3RhdGUucHVzaChbInN5
bmMiLCAicGF0aHMiLCAibWV0YWRhdGFfcGF0aCIsICJ0ZXN0c19wYXRoIiwgImxvY2FsX3RyZWUi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICJzeW5jX3RyZWUiXSk6CisgICAgICAgICAgICBz
dGF0ZS50YXJnZXRfcmV2ID0ga3dhcmdzWyJyZXYiXQorICAgICAgICAgICAgc3RhdGUucGF0Y2gg
PSBrd2FyZ3NbInBhdGNoIl0KKyAgICAgICAgICAgIHN0YXRlLnN1aXRlX25hbWUgPSBrd2FyZ3Nb
InN1aXRlX25hbWUiXQorICAgICAgICAgICAgc3RhdGUucGF0aF9leGNsdWRlcyA9IGt3YXJnc1si
ZXhjbHVkZSJdCisgICAgICAgICAgICBzdGF0ZS5wYXRoX2luY2x1ZGVzID0ga3dhcmdzWyJpbmNs
dWRlIl0KKyAgICAgICAgICAgIHJ1bm5lciA9IFN5bmNGcm9tVXBzdHJlYW1SdW5uZXIoc2VsZi5s
b2dnZXIsIHN0YXRlKQorICAgICAgICAgICAgcnVubmVyLnJ1bigpCisKKworY2xhc3MgVXBkYXRl
TWV0YWRhdGEoU3RlcCk6CisgICAgIiIiVXBkYXRlIHRoZSBleHBlY3RhdGlvbiBtZXRhZGF0YSBm
cm9tIGEgc2V0IG9mIHJ1biBsb2dzIiIiCisKKyAgICBkZWYgY3JlYXRlKHNlbGYsIHN0YXRlKToK
KyAgICAgICAgaWYgbm90IHN0YXRlLmt3YXJnc1sicnVuX2xvZyJdOgorICAgICAgICAgICAgcmV0
dXJuCisKKyAgICAgICAga3dhcmdzID0gc3RhdGUua3dhcmdzCisgICAgICAgIHdpdGggc3RhdGUu
cHVzaChbImxvY2FsX3RyZWUiLCAic3luY190cmVlIiwgInBhdGhzIiwgInNlcnZlX3Jvb3QiXSk6
CisgICAgICAgICAgICBzdGF0ZS5ydW5fbG9nID0ga3dhcmdzWyJydW5fbG9nIl0KKyAgICAgICAg
ICAgIHN0YXRlLmlnbm9yZV9leGlzdGluZyA9IGt3YXJnc1siaWdub3JlX2V4aXN0aW5nIl0KKyAg
ICAgICAgICAgIHN0YXRlLnN0YWJpbGl0eSA9IGt3YXJnc1sic3RhYmlsaXR5Il0KKyAgICAgICAg
ICAgIHN0YXRlLnBhdGNoID0ga3dhcmdzWyJwYXRjaCJdCisgICAgICAgICAgICBzdGF0ZS5zdWl0
ZV9uYW1lID0ga3dhcmdzWyJzdWl0ZV9uYW1lIl0KKyAgICAgICAgICAgIHN0YXRlLnByb2R1Y3Qg
PSBrd2FyZ3NbInByb2R1Y3QiXQorICAgICAgICAgICAgc3RhdGUuY29uZmlnID0ga3dhcmdzWyJj
b25maWciXQorICAgICAgICAgICAgc3RhdGUuZXh0cmFfcHJvcGVydGllcyA9IGt3YXJnc1siZXh0
cmFfcHJvcGVydHkiXQorICAgICAgICAgICAgcnVubmVyID0gTWV0YWRhdGFVcGRhdGVSdW5uZXIo
c2VsZi5sb2dnZXIsIHN0YXRlKQorICAgICAgICAgICAgcnVubmVyLnJ1bigpCisKKworY2xhc3Mg
VXBkYXRlUnVubmVyKFN0ZXBSdW5uZXIpOgorICAgICIiIlJ1bm5lciBmb3IgZG9pbmcgYW4gb3Zl
cmFsbCB1cGRhdGUuIiIiCisgICAgc3RlcHMgPSBbTG9hZENvbmZpZywKKyAgICAgICAgICAgICBM
b2FkVHJlZXMsCisgICAgICAgICAgICAgU3luY0Zyb21VcHN0cmVhbSwKKyAgICAgICAgICAgICBV
cGRhdGVNZXRhZGF0YV0KKworCitjbGFzcyBXUFRVcGRhdGUob2JqZWN0KToKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgbG9nZ2VyLCBydW5uZXJfY2xzPVVwZGF0ZVJ1bm5lciwgKiprd2FyZ3MpOgor
ICAgICAgICAiIiJPYmplY3QgdGhhdCBjb250cm9scyB0aGUgcnVubmluZyBvZiBhIHdob2xlIHdw
dHVwZGF0ZS4KKworICAgICAgICA6cGFyYW0gcnVubmVyX2NsczogUnVubmVyIHN1YmNsYXNzIGhv
bGRpbmcgdGhlIG92ZXJhbGwgbGlzdCBvZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rl
cHMgdG8gcnVuLgorICAgICAgICA6cGFyYW0ga3dhcmdzOiBDb21tYW5kIGxpbmUgYXJndW1lbnRz
CisgICAgICAgICIiIgorICAgICAgICBzZWxmLnJ1bm5lcl9jbHMgPSBydW5uZXJfY2xzCisgICAg
ICAgIHNlbGYuc2VydmVfcm9vdCA9IGt3YXJnc1sidGVzdF9wYXRocyJdWyIvIl1bInRlc3RzX3Bh
dGgiXQorCisgICAgICAgIGlmIG5vdCBrd2FyZ3NbInN5bmMiXToKKyAgICAgICAgICAgIHNldHVw
X3BhdGhzKHNlbGYuc2VydmVfcm9vdCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIG9z
LnBhdGguZXhpc3RzKGt3YXJnc1sic3luY19wYXRoIl0pOgorICAgICAgICAgICAgICAgICMgSWYg
dGhlIHN5bmMgcGF0aCBkb2Vzbid0IGV4aXN0IHdlIGRlZmVyIHRoaXMgdW50aWwgaXQgZG9lcwor
ICAgICAgICAgICAgICAgIHNldHVwX3BhdGhzKGt3YXJnc1sic3luY19wYXRoIl0pCisKKyAgICAg
ICAgc2VsZi5zdGF0ZSA9IFN0YXRlKGxvZ2dlcikKKyAgICAgICAgc2VsZi5rd2FyZ3MgPSBrd2Fy
Z3MKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKKworICAgIGRlZiBydW4oc2VsZiwgKipr
d2FyZ3MpOgorICAgICAgICBpZiBzZWxmLmt3YXJnc1siYWJvcnQiXToKKyAgICAgICAgICAgIHNl
bGYuYWJvcnQoKQorICAgICAgICAgICAgcmV0dXJuIGV4aXRfY2xlYW4KKworICAgICAgICBpZiBu
b3Qgc2VsZi5rd2FyZ3NbImNvbnRpbnVlIl0gYW5kIG5vdCBzZWxmLnN0YXRlLmlzX2VtcHR5KCk6
CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcigiRm91bmQgZXhpc3Rpbmcgc3RhdGUuIFJ1
biB3aXRoIC0tY29udGludWUgdG8gcmVzdW1lIG9yIC0tYWJvcnQgdG8gY2xlYXIgc3RhdGUiKQor
ICAgICAgICAgICAgcmV0dXJuIGV4aXRfdW5jbGVhbgorCisgICAgICAgIGlmIHNlbGYua3dhcmdz
WyJjb250aW51ZSJdOgorICAgICAgICAgICAgaWYgc2VsZi5zdGF0ZS5pc19lbXB0eSgpOgorICAg
ICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKCJObyBzeW5jIGluIHByb2dyZXNzPyIpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGV4aXRfY2xlYW4KKworICAgICAgICAgICAgc2VsZi5rd2Fy
Z3MgPSBzZWxmLnN0YXRlLmt3YXJncworICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5z
dGF0ZS5rd2FyZ3MgPSBzZWxmLmt3YXJncworCisgICAgICAgIHNlbGYuc3RhdGUuc2VydmVfcm9v
dCA9IHNlbGYuc2VydmVfcm9vdAorCisgICAgICAgIHVwZGF0ZV9ydW5uZXIgPSBzZWxmLnJ1bm5l
cl9jbHMoc2VsZi5sb2dnZXIsIHNlbGYuc3RhdGUpCisgICAgICAgIHJ2ID0gdXBkYXRlX3J1bm5l
ci5ydW4oKQorICAgICAgICBpZiBydiBpbiAoZXhpdF9jbGVhbiwgTm9uZSk6CisgICAgICAgICAg
ICBzZWxmLnN0YXRlLmNsZWFyKCkKKworICAgICAgICByZXR1cm4gcnYKKworICAgIGRlZiBhYm9y
dChzZWxmKToKKyAgICAgICAgc2VsZi5zdGF0ZS5jbGVhcigpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvdXBkYXRlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS93M2MtaW1w
b3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kM2RlZmM4NzI5NDY5MzIxMGE1ZjA5OWI3NzdmMjJmMjI1OTk3
NTdmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS93M2MtaW1wb3J0Lmxv
ZwpAQCAtMCwwICsxLDIzIEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25l
CitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL19faW5pdF9f
LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9iYXNlLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9t
ZXRhZGF0YS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3RhdGUucHkKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
dXBkYXRlL3N5bmMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3RyZWUucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdXBkYXRlL3VwZGF0ZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Zjcy5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci92Y3MucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTUxMzEyZDM5MzdhMDViYjdiOGE3OGFiNTBk
ZmZjMzI0OGM3MmU4YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci92Y3MucHkKQEAg
LTAsMCArMSw0OSBAQAoraW1wb3J0IHN1YnByb2Nlc3MKK2Zyb20gZnVuY3Rvb2xzIGltcG9ydCBw
YXJ0aWFsCisKK2Zyb20gbW96bG9nIGltcG9ydCBnZXRfZGVmYXVsdF9sb2dnZXIKKworbG9nZ2Vy
ID0gTm9uZQorCitkZWYgdmNzKGJpbl9uYW1lKToKKyAgICBkZWYgaW5uZXIoY29tbWFuZCwgKmFy
Z3MsICoqa3dhcmdzKToKKyAgICAgICAgZ2xvYmFsIGxvZ2dlcgorCisgICAgICAgIGlmIGxvZ2dl
ciBpcyBOb25lOgorICAgICAgICAgICAgbG9nZ2VyID0gZ2V0X2RlZmF1bHRfbG9nZ2VyKCJ2Y3Mi
KQorCisgICAgICAgIHJlcG8gPSBrd2FyZ3MucG9wKCJyZXBvIiwgTm9uZSkKKyAgICAgICAgbG9n
X2Vycm9yID0ga3dhcmdzLnBvcCgibG9nX2Vycm9yIiwgVHJ1ZSkKKyAgICAgICAgaWYga3dhcmdz
OgorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKGt3YXJncykKKworICAgICAgICBhcmdzID0g
bGlzdChhcmdzKQorCisgICAgICAgIHByb2Nfa3dhcmdzID0ge30KKyAgICAgICAgaWYgcmVwbyBp
cyBub3QgTm9uZToKKyAgICAgICAgICAgIHByb2Nfa3dhcmdzWyJjd2QiXSA9IHJlcG8KKworICAg
ICAgICBjb21tYW5kX2xpbmUgPSBbYmluX25hbWUsIGNvbW1hbmRdICsgYXJncworICAgICAgICBs
b2dnZXIuZGVidWcoIiAiLmpvaW4oY29tbWFuZF9saW5lKSkKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0KGNvbW1hbmRfbGluZSwgc3RkZXJy
PXN1YnByb2Nlc3MuU1RET1VULCAqKnByb2Nfa3dhcmdzKQorICAgICAgICBleGNlcHQgc3VicHJv
Y2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3IgYXMgZToKKyAgICAgICAgICAgIGlmIGxvZ19lcnJvcjoK
KyAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoZS5vdXRwdXQpCisgICAgICAgICAgICByYWlz
ZQorICAgIHJldHVybiBpbm5lcgorCitnaXQgPSB2Y3MoImdpdCIpCitoZyA9IHZjcygiaGciKQor
CisKK2RlZiBiaW5kX3RvX3JlcG8odmNzX2Z1bmMsIHJlcG8pOgorICAgIHJldHVybiBwYXJ0aWFs
KHZjc19mdW5jLCByZXBvPXJlcG8pCisKKworZGVmIGlzX2dpdF9yb290KHBhdGgpOgorICAgIHRy
eToKKyAgICAgICAgcnYgPSBnaXQoInJldi1wYXJzZSIsICItLXNob3ctY2R1cCIsIHJlcG89cGF0
aCkKKyAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3I6CisgICAgICAgIHJl
dHVybiBGYWxzZQorICAgIHJldHVybiBydiA9PSAiXG4iCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOThiNzA3NzhjZjIxZmE4YWY5ZGE4ZGMwYjVmNzdmODM5MDRlN2EzNQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDQzIEBACitUaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8v
Z2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxl
czoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvY29uZmlnLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Vudmlyb25tZW50LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4cGVjdGVkLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2ZvbnQucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy5weQorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9tYW5pZmVzdGV4cGVjdGVkLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0aW5jbHVk
ZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdHVwZGF0ZS5weQorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tZXRh
ZGF0YS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9wcm9kdWN0cy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9yZWR1Y2Uu
cHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvc3RhYmlsaXR5LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rkcml2ZXIt
ZXh0cmEuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGRyaXZlci12ZW5kb3IuanMKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdGVzdGhhcm5lc3NfcnVubmVyLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBv
cnQtc2Vydm8uanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vydm9kcml2ZXIu
anMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQuanMKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVz
dGxvYWRlci5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cnVubmVyLnB5CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Zj
cy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci93ZWJkcml2ZXJfc2VydmVyLnB5CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dw
dGNvbW1hbmRsaW5lLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGxvZ2dpbmcucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvd3B0cnVubmVyLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHRlc3QucHkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci93ZWJkcml2ZXJfc2VydmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dlYmRyaXZlcl9z
ZXJ2ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTgyMmIzNjBjYzFiZTQwNjMxZWEzOTRhYmRhYzQ0YzViOGQ4
YzgxNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93ZWJkcml2ZXJfc2VydmVyLnB5
CkBAIC0wLDAgKzEsMjY3IEBACitpbXBvcnQgYWJjCitpbXBvcnQgZXJybm8KK2ltcG9ydCBvcwor
aW1wb3J0IHBsYXRmb3JtCitpbXBvcnQgc29ja2V0CitpbXBvcnQgdGhyZWFkaW5nCitpbXBvcnQg
dGltZQoraW1wb3J0IHRyYWNlYmFjaworaW1wb3J0IHVybHBhcnNlCisKK2ltcG9ydCBtb3pwcm9j
ZXNzCisKKworX19hbGxfXyA9IFsiU2VsZW5pdW1TZXJ2ZXIiLCAiQ2hyb21lRHJpdmVyU2VydmVy
IiwgIk9wZXJhRHJpdmVyU2VydmVyIiwKKyAgICAgICAgICAgIkdlY2tvRHJpdmVyU2VydmVyIiwg
IkludGVybmV0RXhwbG9yZXJEcml2ZXJTZXJ2ZXIiLCAiRWRnZURyaXZlclNlcnZlciIsCisgICAg
ICAgICAgICJTZXJ2b0RyaXZlclNlcnZlciIsICJXZWJLaXREcml2ZXJTZXJ2ZXIiLCAiV2ViRHJp
dmVyU2VydmVyIl0KKworCitjbGFzcyBXZWJEcml2ZXJTZXJ2ZXIob2JqZWN0KToKKyAgICBfX21l
dGFjbGFzc19fID0gYWJjLkFCQ01ldGEKKworICAgIGRlZmF1bHRfYmFzZV9wYXRoID0gIi8iCisg
ICAgX3VzZWRfcG9ydHMgPSBzZXQoKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwg
YmluYXJ5LCBob3N0PSIxMjcuMC4wLjEiLCBwb3J0PU5vbmUsCisgICAgICAgICAgICAgICAgIGJh
c2VfcGF0aD0iIiwgZW52PU5vbmUsIGFyZ3M9Tm9uZSk6CisgICAgICAgIGlmIGJpbmFyeSBpcyBO
b25lOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiV2ViRHJpdmVyIHNlcnZlciBiaW5h
cnkgbXVzdCBiZSBnaXZlbiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0byAtLXdl
YmRyaXZlci1iaW5hcnkgYXJndW1lbnQiKQorCisgICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2Vy
CisgICAgICAgIHNlbGYuYmluYXJ5ID0gYmluYXJ5CisgICAgICAgIHNlbGYuaG9zdCA9IGhvc3QK
KyAgICAgICAgaWYgYmFzZV9wYXRoID09ICIiOgorICAgICAgICAgICAgc2VsZi5iYXNlX3BhdGgg
PSBzZWxmLmRlZmF1bHRfYmFzZV9wYXRoCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxm
LmJhc2VfcGF0aCA9IGJhc2VfcGF0aAorICAgICAgICBzZWxmLmVudiA9IG9zLmVudmlyb24uY29w
eSgpIGlmIGVudiBpcyBOb25lIGVsc2UgZW52CisKKyAgICAgICAgc2VsZi5fcG9ydCA9IHBvcnQK
KyAgICAgICAgc2VsZi5fY21kID0gTm9uZQorICAgICAgICBzZWxmLl9hcmdzID0gYXJncyBpZiBh
cmdzIGlzIG5vdCBOb25lIGVsc2UgW10KKyAgICAgICAgc2VsZi5fcHJvYyA9IE5vbmUKKworICAg
IEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgorICAgICAg
ICAiIiJSZXR1cm5zIHRoZSBmdWxsIGNvbW1hbmQgZm9yIHN0YXJ0aW5nIHRoZSBzZXJ2ZXIgcHJv
Y2VzcyBhcyBhIGxpc3QuIiIiCisKKyAgICBkZWYgc3RhcnQoc2VsZiwgYmxvY2s9RmFsc2UpOgor
ICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLl9ydW4oYmxvY2spCisgICAgICAgIGV4Y2Vw
dCBLZXlib2FyZEludGVycnVwdDoKKyAgICAgICAgICAgIHNlbGYuc3RvcCgpCisKKyAgICBkZWYg
X3J1bihzZWxmLCBibG9jayk6CisgICAgICAgIHNlbGYuX2NtZCA9IHNlbGYubWFrZV9jb21tYW5k
KCkKKyAgICAgICAgc2VsZi5fcHJvYyA9IG1venByb2Nlc3MuUHJvY2Vzc0hhbmRsZXIoCisgICAg
ICAgICAgICBzZWxmLl9jbWQsCisgICAgICAgICAgICBwcm9jZXNzT3V0cHV0TGluZT1zZWxmLm9u
X291dHB1dCwKKyAgICAgICAgICAgIGVudj1zZWxmLmVudiwKKyAgICAgICAgICAgIHN0b3JlT3V0
cHV0PUZhbHNlKQorCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJTdGFydGluZyBXZWJEcml2
ZXI6ICVzIiAlICcgJy5qb2luKHNlbGYuX2NtZCkpCisgICAgICAgIHRyeToKKyAgICAgICAgICAg
IHNlbGYuX3Byb2MucnVuKCkKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKKyAgICAgICAg
ICAgIGlmIGUuZXJybm8gPT0gZXJybm8uRU5PRU5UOgorICAgICAgICAgICAgICAgIHJhaXNlIElP
RXJyb3IoCisgICAgICAgICAgICAgICAgICAgICJXZWJEcml2ZXIgZXhlY3V0YWJsZSBub3QgZm91
bmQ6ICVzIiAlIHNlbGYuYmluYXJ5KQorICAgICAgICAgICAgcmFpc2UKKworICAgICAgICBzZWxm
LmxvZ2dlci5kZWJ1ZygKKyAgICAgICAgICAgICJXYWl0aW5nIGZvciBXZWJEcml2ZXIgdG8gYmVj
b21lIGFjY2Vzc2libGU6ICVzIiAlIHNlbGYudXJsKQorICAgICAgICB0cnk6CisgICAgICAgICAg
ICB3YWl0X2Zvcl9zZXJ2aWNlKChzZWxmLmhvc3QsIHNlbGYucG9ydCkpCisgICAgICAgIGV4Y2Vw
dCBFeGNlcHRpb246CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcigKKyAgICAgICAgICAg
ICAgICAiV2ViRHJpdmVyIHdhcyBub3QgYWNjZXNzaWJsZSAiCisgICAgICAgICAgICAgICAgIndp
dGhpbiB0aGUgdGltZW91dDpcbiVzIiAlIHRyYWNlYmFjay5mb3JtYXRfZXhjKCkpCisgICAgICAg
ICAgICByYWlzZQorCisgICAgICAgIGlmIGJsb2NrOgorICAgICAgICAgICAgc2VsZi5fcHJvYy53
YWl0KCkKKworICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKKyAgICAgICAgaWYgc2Vs
Zi5pc19hbGl2ZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9wcm9jLmtpbGwoKQorICAgICAg
ICByZXR1cm4gbm90IHNlbGYuaXNfYWxpdmUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBpc19h
bGl2ZShzZWxmKToKKyAgICAgICAgcmV0dXJuIGhhc2F0dHIoc2VsZi5fcHJvYywgInByb2MiKSBh
bmQgc2VsZi5fcHJvYy5wb2xsKCkgaXMgTm9uZQorCisgICAgZGVmIG9uX291dHB1dChzZWxmLCBs
aW5lKToKKyAgICAgICAgc2VsZi5sb2dnZXIucHJvY2Vzc19vdXRwdXQoc2VsZi5waWQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUuZGVjb2RlKCJ1dGY4IiwgInJlcGxh
Y2UiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZD0iICIuam9p
bihzZWxmLl9jbWQpKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHBpZChzZWxmKToKKyAgICAg
ICAgaWYgc2VsZi5fcHJvYyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9w
cm9jLnBpZAorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHVybChzZWxmKToKKyAgICAgICAgcmV0
dXJuICJodHRwOi8vJXM6JWklcyIgJSAoc2VsZi5ob3N0LCBzZWxmLnBvcnQsIHNlbGYuYmFzZV9w
YXRoKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHBvcnQoc2VsZik6CisgICAgICAgIGlmIHNl
bGYuX3BvcnQgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX3BvcnQgPSBzZWxmLl9maW5kX25l
eHRfZnJlZV9wb3J0KCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3BvcnQKKworICAgIEBzdGF0aWNt
ZXRob2QKKyAgICBkZWYgX2ZpbmRfbmV4dF9mcmVlX3BvcnQoKToKKyAgICAgICAgcG9ydCA9IGdl
dF9mcmVlX3BvcnQoNDQ0NCwgZXhjbHVkZT1XZWJEcml2ZXJTZXJ2ZXIuX3VzZWRfcG9ydHMpCisg
ICAgICAgIFdlYkRyaXZlclNlcnZlci5fdXNlZF9wb3J0cy5hZGQocG9ydCkKKyAgICAgICAgcmV0
dXJuIHBvcnQKKworCitjbGFzcyBTZWxlbml1bVNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgorICAg
IGRlZmF1bHRfYmFzZV9wYXRoID0gIi93ZC9odWIiCisKKyAgICBkZWYgbWFrZV9jb21tYW5kKHNl
bGYpOgorICAgICAgICByZXR1cm4gWyJqYXZhIiwgIi1qYXIiLCBzZWxmLmJpbmFyeSwgIi1wb3J0
Iiwgc3RyKHNlbGYucG9ydCldICsgc2VsZi5fYXJncworCisKK2NsYXNzIENocm9tZURyaXZlclNl
cnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJp
bmFyeT0iY2hyb21lZHJpdmVyIiwgcG9ydD1Ob25lLAorICAgICAgICAgICAgICAgICBiYXNlX3Bh
dGg9IiIsIGFyZ3M9Tm9uZSk6CisgICAgICAgIFdlYkRyaXZlclNlcnZlci5fX2luaXRfXygKKyAg
ICAgICAgICAgIHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBwb3J0PXBvcnQsIGJhc2VfcGF0aD1iYXNl
X3BhdGgsIGFyZ3M9YXJncykKKworICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6CisgICAgICAg
IHJldHVybiBbc2VsZi5iaW5hcnksCisgICAgICAgICAgICAgICAgY21kX2FyZygicG9ydCIsIHN0
cihzZWxmLnBvcnQpKSwKKyAgICAgICAgICAgICAgICBjbWRfYXJnKCJ1cmwtYmFzZSIsIHNlbGYu
YmFzZV9wYXRoKSBpZiBzZWxmLmJhc2VfcGF0aCBlbHNlICIiXSArIHNlbGYuX2FyZ3MKKworY2xh
c3MgRWRnZURyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgorICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBsb2dnZXIsIGJpbmFyeT0ibWljcm9zb2Z0d2ViZHJpdmVyLmV4ZSIsIHBvcnQ9Tm9uZSwK
KyAgICAgICAgICAgICAgICAgYmFzZV9wYXRoPSIiLCBob3N0PSJsb2NhbGhvc3QiLCBhcmdzPU5v
bmUpOgorICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19pbml0X18oCisgICAgICAgICAgICBzZWxm
LCBsb2dnZXIsIGJpbmFyeSwgaG9zdD1ob3N0LCBwb3J0PXBvcnQsIGFyZ3M9YXJncykKKworICAg
IGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6CisgICAgICAgIHJldHVybiBbc2VsZi5iaW5hcnksCisg
ICAgICAgICAgICAgICAgIi0tcG9ydD0lcyIgJSBzdHIoc2VsZi5wb3J0KV0gKyBzZWxmLl9hcmdz
CisKK2NsYXNzIE9wZXJhRHJpdmVyU2VydmVyKENocm9tZURyaXZlclNlcnZlcik6CisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5PSJvcGVyYWRyaXZlciIsIHBvcnQ9Tm9uZSwK
KyAgICAgICAgICAgICAgICAgYmFzZV9wYXRoPSIiLCBhcmdzPU5vbmUpOgorICAgICAgICBDaHJv
bWVEcml2ZXJTZXJ2ZXIuX19pbml0X18oCisgICAgICAgICAgICBzZWxmLCBsb2dnZXIsIGJpbmFy
eSwgcG9ydD1wb3J0LCBiYXNlX3BhdGg9YmFzZV9wYXRoLCBhcmdzPWFyZ3MpCisKKworY2xhc3Mg
SW50ZXJuZXRFeHBsb3JlckRyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeT0iSUVEcml2ZXJTZXJ2ZXIuZXhlIiwgcG9ydD1O
b25lLAorICAgICAgICAgICAgICAgICBiYXNlX3BhdGg9IiIsIGhvc3Q9ImxvY2FsaG9zdCIsIGFy
Z3M9Tm9uZSk6CisgICAgICAgIFdlYkRyaXZlclNlcnZlci5fX2luaXRfXygKKyAgICAgICAgICAg
IHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBob3N0PWhvc3QsIHBvcnQ9cG9ydCwgYXJncz1hcmdzKQor
CisgICAgZGVmIG1ha2VfY29tbWFuZChzZWxmKToKKyAgICAgICAgcmV0dXJuIFtzZWxmLmJpbmFy
eSwKKyAgICAgICAgICAgICAgICAiLS1wb3J0PSVzIiAlIHN0cihzZWxmLnBvcnQpXSArIHNlbGYu
X2FyZ3MKKworCitjbGFzcyBHZWNrb0RyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgorICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIG1hcmlvbmV0dGVfcG9ydD0yODI4LCBiaW5hcnk9
ImdlY2tvZHJpdmVyIiwKKyAgICAgICAgICAgICAgICAgaG9zdD0iMTI3LjAuMC4xIiwgcG9ydD1O
b25lLCBhcmdzPU5vbmUpOgorICAgICAgICBlbnYgPSBvcy5lbnZpcm9uLmNvcHkoKQorICAgICAg
ICBlbnZbIlJVU1RfQkFDS1RSQUNFIl0gPSAiMSIKKyAgICAgICAgV2ViRHJpdmVyU2VydmVyLl9f
aW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBob3N0PWhvc3QsIHBvcnQ9cG9ydCwgZW52PWVu
diwgYXJncz1hcmdzKQorICAgICAgICBzZWxmLm1hcmlvbmV0dGVfcG9ydCA9IG1hcmlvbmV0dGVf
cG9ydAorCisgICAgZGVmIG1ha2VfY29tbWFuZChzZWxmKToKKyAgICAgICAgcmV0dXJuIFtzZWxm
LmJpbmFyeSwKKyAgICAgICAgICAgICAgICAiLS1tYXJpb25ldHRlLXBvcnQiLCBzdHIoc2VsZi5t
YXJpb25ldHRlX3BvcnQpLAorICAgICAgICAgICAgICAgICItLWhvc3QiLCBzZWxmLmhvc3QsCisg
ICAgICAgICAgICAgICAgIi0tcG9ydCIsIHN0cihzZWxmLnBvcnQpXSArIHNlbGYuX2FyZ3MKKwor
CitjbGFzcyBTYWZhcmlEcml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnk9InNhZmFyaWRyaXZlciIsIHBvcnQ9Tm9uZSwgYXJn
cz1Ob25lKToKKyAgICAgICAgV2ViRHJpdmVyU2VydmVyLl9faW5pdF9fKAorICAgICAgICAgICAg
c2VsZiwgbG9nZ2VyLCBiaW5hcnksIHBvcnQ9cG9ydCwgYXJncz1hcmdzKQorCisgICAgZGVmIG1h
a2VfY29tbWFuZChzZWxmKToKKyAgICAgICAgcmV0dXJuIFtzZWxmLmJpbmFyeSwKKyAgICAgICAg
ICAgICAgICAiLS1wb3J0PSVzIiAlIHN0cihzZWxmLnBvcnQpXSArIHNlbGYuX2FyZ3MKKworCitj
bGFzcyBTZXJ2b0RyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgorICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBsb2dnZXIsIGJpbmFyeT0ic2Vydm8iLCBiaW5hcnlfYXJncz1Ob25lLCBob3N0PSIx
MjcuMC4wLjEiLAorICAgICAgICAgICAgICAgICBwb3J0PU5vbmUsIGFyZ3M9Tm9uZSk6CisgICAg
ICAgIGVudiA9IG9zLmVudmlyb24uY29weSgpCisgICAgICAgIGVudlsiUlVTVF9CQUNLVFJBQ0Ui
XSA9ICIxIgorICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyLCBi
aW5hcnksIGhvc3Q9aG9zdCwgcG9ydD1wb3J0LCBlbnY9ZW52LCBhcmdzPWFyZ3MpCisgICAgICAg
IHNlbGYuYmluYXJ5X2FyZ3MgPSBiaW5hcnlfYXJncworCisgICAgZGVmIG1ha2VfY29tbWFuZChz
ZWxmKToKKyAgICAgICAgY29tbWFuZCA9IFtzZWxmLmJpbmFyeSwKKyAgICAgICAgICAgICAgICAg
ICAiLS13ZWJkcml2ZXIiLCBzdHIoc2VsZi5wb3J0KSwKKyAgICAgICAgICAgICAgICAgICAiLS1o
YXJkLWZhaWwiLAorICAgICAgICAgICAgICAgICAgICItLWhlYWRsZXNzIl0gKyBzZWxmLl9hcmdz
CisgICAgICAgIGlmIHNlbGYuYmluYXJ5X2FyZ3M6CisgICAgICAgICAgICBjb21tYW5kICs9IHNl
bGYuYmluYXJ5X2FyZ3MKKyAgICAgICAgcmV0dXJuIGNvbW1hbmQKKworCitjbGFzcyBXZWJLaXRE
cml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9n
Z2VyLCBiaW5hcnk9Tm9uZSwgcG9ydD1Ob25lLCBhcmdzPU5vbmUpOgorICAgICAgICBXZWJEcml2
ZXJTZXJ2ZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHBvcnQ9cG9ydCwgYXJncz1h
cmdzKQorCisgICAgZGVmIG1ha2VfY29tbWFuZChzZWxmKToKKyAgICAgICAgcmV0dXJuIFtzZWxm
LmJpbmFyeSwgIi0tcG9ydD0lcyIgJSBzdHIoc2VsZi5wb3J0KV0gKyBzZWxmLl9hcmdzCisKKwor
ZGVmIGNtZF9hcmcobmFtZSwgdmFsdWU9Tm9uZSk6CisgICAgcHJlZml4ID0gIi0iIGlmIHBsYXRm
b3JtLnN5c3RlbSgpID09ICJXaW5kb3dzIiBlbHNlICItLSIKKyAgICBydiA9IHByZWZpeCArIG5h
bWUKKyAgICBpZiB2YWx1ZSBpcyBub3QgTm9uZToKKyAgICAgICAgcnYgKz0gIj0iICsgdmFsdWUK
KyAgICByZXR1cm4gcnYKKworCitkZWYgZ2V0X2ZyZWVfcG9ydChzdGFydF9wb3J0LCBleGNsdWRl
PU5vbmUpOgorICAgICIiIkdldCB0aGUgZmlyc3QgcG9ydCBudW1iZXIgYWZ0ZXIgc3RhcnRfcG9y
dCAoaW5jbHVzaXZlKSB0aGF0IGlzCisgICAgbm90IGN1cnJlbnRseSBib3VuZC4KKworICAgIDpw
YXJhbSBzdGFydF9wb3J0OiBJbnRlZ2VyIHBvcnQgbnVtYmVyIGF0IHdoaWNoIHRvIHN0YXJ0IHRl
c3RpbmcuCisgICAgOnBhcmFtIGV4Y2x1ZGU6IFNldCBvZiBwb3J0IG51bWJlcnMgdG8gc2tpcCIi
IgorICAgIHBvcnQgPSBzdGFydF9wb3J0CisgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgaWYgZXhj
bHVkZSBhbmQgcG9ydCBpbiBleGNsdWRlOgorICAgICAgICAgICAgcG9ydCArPSAxCisgICAgICAg
ICAgICBjb250aW51ZQorICAgICAgICBzID0gc29ja2V0LnNvY2tldCgpCisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIHMuYmluZCgoIjEyNy4wLjAuMSIsIHBvcnQpKQorICAgICAgICBleGNlcHQg
c29ja2V0LmVycm9yOgorICAgICAgICAgICAgcG9ydCArPSAxCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICByZXR1cm4gcG9ydAorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgcy5jbG9z
ZSgpCisKKworZGVmIHdhaXRfZm9yX3NlcnZpY2UoYWRkciwgdGltZW91dD0xNSk6CisgICAgIiIi
V2FpdHMgdW50aWwgbmV0d29yayBzZXJ2aWNlIGdpdmVuIGFzIGEgdHVwbGUgb2YgKGhvc3QsIHBv
cnQpIGJlY29tZXMKKyAgICBhdmFpbGFibGUgb3IgdGhlIGB0aW1lb3V0YCBkdXJhdGlvbiBpcyBy
ZWFjaGVkLCBhdCB3aGljaCBwb2ludAorICAgIGBgc29ja2V0LmVycm9yYGAgaXMgcmFpc2VkLiIi
IgorICAgIGVuZCA9IHRpbWUudGltZSgpICsgdGltZW91dAorICAgIHdoaWxlIGVuZCA+IHRpbWUu
dGltZSgpOgorICAgICAgICBzbyA9IHNvY2tldC5zb2NrZXQoKQorICAgICAgICB0cnk6CisgICAg
ICAgICAgICBzby5jb25uZWN0KGFkZHIpCisgICAgICAgIGV4Y2VwdCBzb2NrZXQudGltZW91dDoK
KyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvciBhcyBlOgorICAg
ICAgICAgICAgaWYgZVswXSAhPSBlcnJuby5FQ09OTlJFRlVTRUQ6CisgICAgICAgICAgICAgICAg
cmFpc2UKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIGZp
bmFsbHk6CisgICAgICAgICAgICBzby5jbG9zZSgpCisgICAgICAgIHRpbWUuc2xlZXAoMC41KQor
ICAgIHJhaXNlIHNvY2tldC5lcnJvcigiU2VydmljZSBpcyB1bmF2YWlsYWJsZTogJXM6JWkiICUg
YWRkcikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRjb21tYW5kbGluZS5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci93cHRjb21tYW5kbGluZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NWU1ZDhhY2E0MzM1NjI0MWZj
ZWMzODkyMGI3OTViM2NlMzY0NTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dw
dGNvbW1hbmRsaW5lLnB5CkBAIC0wLDAgKzEsNTg4IEBACitpbXBvcnQgYXJncGFyc2UKK2ltcG9y
dCBhc3QKK2ltcG9ydCBvcworaW1wb3J0IHN5cworZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgT3Jk
ZXJlZERpY3QKK2Zyb20gZGlzdHV0aWxzLnNwYXduIGltcG9ydCBmaW5kX2V4ZWN1dGFibGUKK2Zy
b20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lLCB0aW1lZGVsdGEKKworaW1wb3J0IGNvbmZpZwor
aW1wb3J0IHdwdHRlc3QKK2ltcG9ydCBmb3JtYXR0ZXJzCisKKworZGVmIGFic19wYXRoKHBhdGgp
OgorICAgIHJldHVybiBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5leHBhbmR1c2VyKHBhdGgpKQor
CisKK2RlZiB1cmxfb3JfcGF0aChwYXRoKToKKyAgICBpbXBvcnQgdXJscGFyc2UKKworICAgIHBh
cnNlZCA9IHVybHBhcnNlLnVybHBhcnNlKHBhdGgpCisgICAgaWYgbGVuKHBhcnNlZC5zY2hlbWUp
ID4gMjoKKyAgICAgICAgcmV0dXJuIHBhdGgKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gYWJz
X3BhdGgocGF0aCkKKworCitkZWYgcmVxdWlyZV9hcmcoa3dhcmdzLCBuYW1lLCB2YWx1ZV9mdW5j
PU5vbmUpOgorICAgIGlmIHZhbHVlX2Z1bmMgaXMgTm9uZToKKyAgICAgICAgdmFsdWVfZnVuYyA9
IGxhbWJkYSB4OiB4IGlzIG5vdCBOb25lCisKKyAgICBpZiBuYW1lIG5vdCBpbiBrd2FyZ3Mgb3Ig
bm90IHZhbHVlX2Z1bmMoa3dhcmdzW25hbWVdKToKKyAgICAgICAgcHJpbnQgPj4gc3lzLnN0ZGVy
ciwgIk1pc3NpbmcgcmVxdWlyZWQgYXJndW1lbnQgJXMiICUgbmFtZQorICAgICAgICBzeXMuZXhp
dCgxKQorCisKK2RlZiBjcmVhdGVfcGFyc2VyKHByb2R1Y3RfY2hvaWNlcz1Ob25lKToKKyAgICBm
cm9tIG1vemxvZyBpbXBvcnQgY29tbWFuZGxpbmUKKworICAgIGltcG9ydCBwcm9kdWN0cworCisg
ICAgaWYgcHJvZHVjdF9jaG9pY2VzIGlzIE5vbmU6CisgICAgICAgIGNvbmZpZ19kYXRhID0gY29u
ZmlnLmxvYWQoKQorICAgICAgICBwcm9kdWN0X2Nob2ljZXMgPSBwcm9kdWN0cy5wcm9kdWN0c19l
bmFibGVkKGNvbmZpZ19kYXRhKQorCisgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJz
ZXIoZGVzY3JpcHRpb249IiIiUnVubmVyIGZvciB3ZWItcGxhdGZvcm0tdGVzdHMgdGVzdHMuIiIi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzYWdlPSIiIiUocHJvZylz
IFtPUFRJT05dLi4uIFtURVNUXS4uLgorCitURVNUIGlzIGVpdGhlciB0aGUgZnVsbCBwYXRoIHRv
IGEgdGVzdCBmaWxlIHRvIHJ1biwgb3IgdGhlIFVSTCBvZiBhIHRlc3QgZXhjbHVkaW5nCitzY2hl
bWUgaG9zdCBhbmQgcG9ydC4iIiIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1tYW5pZmVz
dC11cGRhdGUiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0PU5vbmUsCisgICAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSJSZWdlbmVyYXRlIHRoZSB0ZXN0IG1hbmlmZXN0LiIpCisgICAg
cGFyc2VyLmFkZF9hcmd1bWVudCgiLS1uby1tYW5pZmVzdC11cGRhdGUiLCBhY3Rpb249InN0b3Jl
X2ZhbHNlIiwgZGVzdD0ibWFuaWZlc3RfdXBkYXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGhlbHA9IlByZXZlbnQgcmVnZW5lcmF0aW9uIG9mIHRoZSB0ZXN0IG1hbmlmZXN0LiIpCisgICAg
cGFyc2VyLmFkZF9hcmd1bWVudCgiLS1tYW5pZmVzdC1kb3dubG9hZCIsIGFjdGlvbj0ic3RvcmVf
dHJ1ZSIsIGRlZmF1bHQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkF0dGVt
cHQgdG8gZG93bmxvYWQgYSBwcmVleGlzdGluZyBtYW5pZmVzdCB3aGVuIHVwZGF0aW5nLiIpCisK
KyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLXRpbWVvdXQtbXVsdGlwbGllciIsIGFjdGlvbj0i
c3RvcmUiLCB0eXBlPWZsb2F0LCBkZWZhdWx0PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAg
ICBoZWxwPSJNdWx0aXBsaWVyIHJlbGF0aXZlIHRvIHN0YW5kYXJkIHRlc3QgdGltZW91dCB0byB1
c2UiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tcnVuLWJ5LWRpciIsIHR5cGU9aW50LCBu
YXJncz0iPyIsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJT
cGxpdCBydW4gaW50byBncm91cHMgYnkgZGlyZWN0b3JpZXMuIFdpdGggYSBwYXJhbWV0ZXIsIgor
ICAgICAgICAgICAgICAgICAgICAgICAgImxpbWl0IHRoZSBkZXB0aCBvZiBzcGxpdHMgZS5nLiAt
LXJ1bi1ieS1kaXI9MSB0byBzcGxpdCBieSB0b3AtbGV2ZWwiCisgICAgICAgICAgICAgICAgICAg
ICAgICAiZGlyZWN0b3J5IikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLXByb2Nlc3NlcyIs
IGFjdGlvbj0ic3RvcmUiLCB0eXBlPWludCwgZGVmYXVsdD1Ob25lLAorICAgICAgICAgICAgICAg
ICAgICAgICAgaGVscD0iTnVtYmVyIG9mIHNpbXVsdGFuZW91cyBwcm9jZXNzZXMgdG8gdXNlIikK
KworICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tbm8tY2FwdHVyZS1zdGRpbyIsIGFjdGlvbj0i
c3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSJEb24ndCBjYXB0dXJlIHN0ZGlvIGFuZCB3cml0ZSB0byBsb2dnaW5nIikKKworICAgIG1vZGVf
Z3JvdXAgPSBwYXJzZXIuYWRkX2FyZ3VtZW50X2dyb3VwKCJNb2RlIikKKyAgICBtb2RlX2dyb3Vw
LmFkZF9hcmd1bWVudCgiLS1saXN0LXRlc3QtZ3JvdXBzIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9Ikxpc3QgdGhlIHRvcCBsZXZlbCBkaXJlY3RvcmllcyBjb250
YWluaW5nIHRlc3RzIHRoYXQgd2lsbCBydW4uIikKKyAgICBtb2RlX2dyb3VwLmFkZF9hcmd1bWVu
dCgiLS1saXN0LWRpc2FibGVkIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkZWZhdWx0PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhlbHA9Ikxpc3QgdGhlIHRlc3RzIHRoYXQgYXJlIGRpc2FibGVkIG9uIHRoZSBjdXJyZW50IHBs
YXRmb3JtIikKKyAgICBtb2RlX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1saXN0LXRlc3RzIiwgYWN0
aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PUZh
bHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9Ikxpc3QgYWxsIHRlc3RzIHRo
YXQgd2lsbCBydW4iKQorICAgIG1vZGVfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXZlcmlmeSIsIGFj
dGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1G
YWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJSdW4gYSBzdGFiaWxpdHkg
Y2hlY2sgb24gdGhlIHNlbGVjdGVkIHRlc3RzIikKKyAgICBtb2RlX2dyb3VwLmFkZF9hcmd1bWVu
dCgiLS12ZXJpZnktbG9nLWZ1bGwiLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaGVscD0iT3V0cHV0IHBlci1pdGVyYXRpb24gdGVzdCByZXN1bHRzIHdoZW4gcnVubmluZyB2
ZXJpZnkiKQorICAgIG1vZGVfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXZlcmlmeS1yZXBlYXQtbG9v
cCIsIGFjdGlvbj0ic3RvcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9
MTAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iTnVtYmVyIG9mIGl0ZXJhdGlv
bnMgZm9yIGEgcnVuIHRoYXQgcmVsb2FkcyBlYWNoIHRlc3Qgd2l0aG91dCByZXN0YXJ0LiIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1pbnQpCisgICAgbW9kZV9ncm91cC5hZGRf
YXJndW1lbnQoIi0tdmVyaWZ5LXJlcGVhdC1yZXN0YXJ0IiwgYWN0aW9uPSJzdG9yZSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD01LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhlbHA9Ik51bWJlciBvZiBpdGVyYXRpb25zLCBmb3IgYSBydW4gdGhhdCByZXN0YXJ0
cyB0aGUgcnVubmVyIGJldHdlZW4gZWFjaCBpdGVyYXRpb24iLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHR5cGU9aW50KQorICAgIGNoYW9zX21vZGVfZ3JvdXAgPSBtb2RlX2dyb3VwLmFk
ZF9tdXR1YWxseV9leGNsdXNpdmVfZ3JvdXAoKQorICAgIGNoYW9zX21vZGVfZ3JvdXAuYWRkX2Fy
Z3VtZW50KCItLXZlcmlmeS1uby1jaGFvcy1tb2RlIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1UcnVlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9InZlcmlmeV9jaGFvc19tb2RlIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJEaXNhYmxlIGNoYW9zIG1vZGUgd2hl
biBydW5uaW5nIG9uIEZpcmVmb3giKQorICAgIGNoYW9zX21vZGVfZ3JvdXAuYWRkX2FyZ3VtZW50
KCItLXZlcmlmeS1jaGFvcy1tb2RlIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PVRydWUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGVzdD0idmVyaWZ5X2NoYW9zX21vZGUiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9IkVuYWJsZSBjaGFvcyBtb2RlIHdoZW4gcnVubmluZyBv
biBGaXJlZm94IikKKyAgICBtb2RlX2dyb3VwLmFkZF9hcmd1bWVudCgiLS12ZXJpZnktbWF4LXRp
bWUiLCBhY3Rpb249InN0b3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0
PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iVGhlIG1heGltdW0gbnVt
YmVyIG9mIG1pbnV0ZXMgZm9yIHRoZSBqb2IgdG8gcnVuIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0eXBlPWxhbWJkYSB4OiB0aW1lZGVsdGEobWludXRlcz1mbG9hdCh4KSkpCisgICAg
b3V0cHV0X3Jlc3VsdHNfZ3JvdXAgPSBtb2RlX2dyb3VwLmFkZF9tdXR1YWxseV9leGNsdXNpdmVf
Z3JvdXAoKQorICAgIG91dHB1dF9yZXN1bHRzX2dyb3VwLmFkZF9hcmd1bWVudCgiLS12ZXJpZnkt
bm8tb3V0cHV0LXJlc3VsdHMiLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGVzdD0idmVyaWZ5X291dHB1dF9yZXN1bHRzIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1UcnVlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQcmludHMgaW5kaXZpZHVhbHMg
dGVzdCByZXN1bHRzIGFuZCBtZXNzYWdlcyIpCisgICAgb3V0cHV0X3Jlc3VsdHNfZ3JvdXAuYWRk
X2FyZ3VtZW50KCItLXZlcmlmeS1vdXRwdXQtcmVzdWx0cyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9InZlcmlmeV9vdXRw
dXRfcmVzdWx0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1
bHQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iRGlz
YWJsZSBwcmludGluZyBpbmRpdmlkdWFscyB0ZXN0IHJlc3VsdHMgYW5kIG1lc3NhZ2VzIikKKwor
ICAgIHRlc3Rfc2VsZWN0aW9uX2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVudF9ncm91cCgiVGVz
dCBTZWxlY3Rpb24iKQorICAgIHRlc3Rfc2VsZWN0aW9uX2dyb3VwLmFkZF9hcmd1bWVudCgiLS10
ZXN0LXR5cGVzIiwgYWN0aW9uPSJzdG9yZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG5hcmdzPSIqIiwgZGVmYXVsdD13cHR0ZXN0LmVuYWJsZWRfdGVzdHMsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNob2ljZXM9d3B0dGVzdC5lbmFibGVk
X3Rlc3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJUZXN0
IHR5cGVzIHRvIHJ1biIpCisgICAgdGVzdF9zZWxlY3Rpb25fZ3JvdXAuYWRkX2FyZ3VtZW50KCIt
LWluY2x1ZGUiLCBhY3Rpb249ImFwcGVuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9IlVSTCBwcmVmaXggdG8gaW5jbHVkZSIpCisgICAgdGVzdF9zZWxlY3Rp
b25fZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWV4Y2x1ZGUiLCBhY3Rpb249ImFwcGVuZCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlVSTCBwcmVmaXggdG8gZXhj
bHVkZSIpCisgICAgdGVzdF9zZWxlY3Rpb25fZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWluY2x1ZGUt
bWFuaWZlc3QiLCB0eXBlPWFic19wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSJQYXRoIHRvIG1hbmlmZXN0IGxpc3RpbmcgdGVzdHMgdG8gaW5jbHVkZSIp
CisgICAgdGVzdF9zZWxlY3Rpb25fZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXNraXAtdGltZW91dCIs
IGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9IlNraXAgdGVzdHMgdGhhdCBhcmUgZXhwZWN0ZWQgdG8gdGltZSBvdXQiKQorICAg
IHRlc3Rfc2VsZWN0aW9uX2dyb3VwLmFkZF9hcmd1bWVudCgiLS10YWciLCBhY3Rpb249ImFwcGVu
ZCIsIGRlc3Q9InRhZ3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
ZWxwPSJMYWJlbHMgYXBwbGllZCB0byB0ZXN0cyB0byBpbmNsdWRlIGluIHRoZSBydW4uICIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTGFiZWxzIHN0YXJ0aW5n
IGRpcjogYXJlIGVxdWl2YWxlbnQgdG8gdG9wLWxldmVsIGRpcmVjdG9yaWVzLiIpCisKKyAgICBk
ZWJ1Z2dpbmdfZ3JvdXAgPSBwYXJzZXIuYWRkX2FyZ3VtZW50X2dyb3VwKCJEZWJ1Z2dpbmciKQor
ICAgIGRlYnVnZ2luZ19ncm91cC5hZGRfYXJndW1lbnQoJy0tZGVidWdnZXInLCBjb25zdD0iX19k
ZWZhdWx0X18iLCBuYXJncz0iPyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
ZWxwPSJydW4gdW5kZXIgYSBkZWJ1Z2dlciwgZS5nLiBnZGIgb3IgdmFsZ3JpbmQiKQorICAgIGRl
YnVnZ2luZ19ncm91cC5hZGRfYXJndW1lbnQoJy0tZGVidWdnZXItYXJncycsIGhlbHA9ImFyZ3Vt
ZW50cyB0byB0aGUgZGVidWdnZXIiKQorICAgIGRlYnVnZ2luZ19ncm91cC5hZGRfYXJndW1lbnQo
Ii0tcmVydW4iLCBhY3Rpb249InN0b3JlIiwgdHlwZT1pbnQsIGRlZmF1bHQ9MSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9Ik51bWJlciBvZiB0aW1lcyB0byByZSBydW4g
ZWFjaCB0ZXN0IHdpdGhvdXQgcmVzdGFydHMiKQorICAgIGRlYnVnZ2luZ19ncm91cC5hZGRfYXJn
dW1lbnQoIi0tcmVwZWF0IiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9aW50LCBkZWZhdWx0PTEsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJOdW1iZXIgb2YgdGltZXMgdG8g
cnVuIHRoZSB0ZXN0cywgcmVzdGFydGluZyBiZXR3ZWVuIGVhY2ggcnVuIikKKyAgICBkZWJ1Z2dp
bmdfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXJlcGVhdC11bnRpbC11bmV4cGVjdGVkIiwgYWN0aW9u
PSJzdG9yZV90cnVlIiwgZGVmYXVsdD1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaGVscD0iUnVuIHRlc3RzIGluIGEgbG9vcCB1bnRpbCBvbmUgcmV0dXJucyBhbiB1bmV4
cGVjdGVkIHJlc3VsdCIpCisgICAgZGVidWdnaW5nX2dyb3VwLmFkZF9hcmd1bWVudCgnLS1wYXVz
ZS1hZnRlci10ZXN0JywgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1Ob25lLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iSGFsdCB0aGUgdGVzdCBydW5uZXIgYWZ0
ZXIgZWFjaCB0ZXN0ICh0aGlzIGhhcHBlbnMgYnkgZGVmYXVsdCBpZiBvbmx5IGEgc2luZ2xlIHRl
c3QgaXMgcnVuKSIpCisgICAgZGVidWdnaW5nX2dyb3VwLmFkZF9hcmd1bWVudCgnLS1uby1wYXVz
ZS1hZnRlci10ZXN0JywgZGVzdD0icGF1c2VfYWZ0ZXJfdGVzdCIsIGFjdGlvbj0ic3RvcmVfZmFs
c2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iRG9uJ3QgaGFsdCB0
aGUgdGVzdCBydW5uZXIgaXJyZXNwZWN0aXZlIG9mIHRoZSBudW1iZXIgb2YgdGVzdHMgcnVuIikK
KworICAgIGRlYnVnZ2luZ19ncm91cC5hZGRfYXJndW1lbnQoJy0tcGF1c2Utb24tdW5leHBlY3Rl
ZCcsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBoZWxwPSJIYWx0IHRoZSB0ZXN0IHJ1bm5lciB3aGVuIGFuIHVuZXhwZWN0ZWQgcmVzdWx0IGlz
IGVuY291bnRlcmVkIikKKyAgICBkZWJ1Z2dpbmdfZ3JvdXAuYWRkX2FyZ3VtZW50KCctLW5vLXJl
c3RhcnQtb24tdW5leHBlY3RlZCcsIGRlc3Q9InJlc3RhcnRfb25fdW5leHBlY3RlZCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PVRydWUsIGFjdGlvbj0ic3RvcmVf
ZmFsc2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iRG9uJ3QgcmVz
dGFydCBvbiBhbiB1bmV4cGVjdGVkIHJlc3VsdCIpCisKKyAgICBkZWJ1Z2dpbmdfZ3JvdXAuYWRk
X2FyZ3VtZW50KCItLXN5bWJvbHMtcGF0aCIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPXVybF9vcl9w
YXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUGF0aCBvciB1cmwg
dG8gc3ltYm9scyBmaWxlIHVzZWQgdG8gYW5hbHlzZSBjcmFzaCBtaW5pZHVtcHMuIikKKyAgICBk
ZWJ1Z2dpbmdfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXN0YWNrd2Fsay1iaW5hcnkiLCBhY3Rpb249
InN0b3JlIiwgdHlwZT1hYnNfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhlbHA9IlBhdGggdG8gc3RhY2t3YWxrZXIgcHJvZ3JhbSB1c2VkIHRvIGFuYWx5c2UgbWluaWR1
bXBzLiIpCisKKyAgICBkZWJ1Z2dpbmdfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXBkYiIsIGFjdGlv
bj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJE
cm9wIGludG8gcGRiIG9uIHB5dGhvbiBleGNlcHRpb24iKQorCisgICAgY29uZmlnX2dyb3VwID0g
cGFyc2VyLmFkZF9hcmd1bWVudF9ncm91cCgiQ29uZmlndXJhdGlvbiIpCisgICAgY29uZmlnX2dy
b3VwLmFkZF9hcmd1bWVudCgiLS1iaW5hcnkiLCBhY3Rpb249InN0b3JlIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHR5cGU9YWJzX3BhdGgsIGhlbHA9IkJpbmFyeSB0byBydW4gdGVz
dHMgYWdhaW5zdCIpCisgICAgY29uZmlnX2dyb3VwLmFkZF9hcmd1bWVudCgnLS1iaW5hcnktYXJn
JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9W10sIGFjdGlvbj0iYXBw
ZW5kIiwgZGVzdD0iYmluYXJ5X2FyZ3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aGVscD0iRXh0cmEgYXJndW1lbnQgZm9yIHRoZSBiaW5hcnkiKQorICAgIGNvbmZpZ19ncm91cC5h
ZGRfYXJndW1lbnQoIi0td2ViZHJpdmVyLWJpbmFyeSIsIGFjdGlvbj0ic3RvcmUiLCBtZXRhdmFy
PSJCSU5BUlkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1hYnNfcGF0aCwg
aGVscD0iV2ViRHJpdmVyIHNlcnZlciBiaW5hcnkgdG8gdXNlIikKKyAgICBjb25maWdfZ3JvdXAu
YWRkX2FyZ3VtZW50KCctLXdlYmRyaXZlci1hcmcnLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGVmYXVsdD1bXSwgYWN0aW9uPSJhcHBlbmQiLCBkZXN0PSJ3ZWJkcml2ZXJfYXJncyIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJFeHRyYSBhcmd1bWVudCBmb3Ig
dGhlIFdlYkRyaXZlciBiaW5hcnkiKQorCisgICAgY29uZmlnX2dyb3VwLmFkZF9hcmd1bWVudCgi
LS1tZXRhZGF0YSIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPWFic19wYXRoLCBkZXN0PSJtZXRhZGF0
YV9yb290IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8gcm9v
dCBkaXJlY3RvcnkgY29udGFpbmluZyB0ZXN0IG1ldGFkYXRhIiksCisgICAgY29uZmlnX2dyb3Vw
LmFkZF9hcmd1bWVudCgiLS10ZXN0cyIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPWFic19wYXRoLCBk
ZXN0PSJ0ZXN0c19yb290IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlBh
dGggdG8gcm9vdCBkaXJlY3RvcnkgY29udGFpbmluZyB0ZXN0IGZpbGVzIiksCisgICAgY29uZmln
X2dyb3VwLmFkZF9hcmd1bWVudCgiLS1tYW5pZmVzdCIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPWFi
c19wYXRoLCBkZXN0PSJtYW5pZmVzdF9wYXRoIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9IlBhdGggdG8gdGVzdCBtYW5pZmVzdCAoZGVmYXVsdCBpcyAke21ldGFkYXRhX3Jv
b3R9L01BTklGRVNULmpzb24pIikKKyAgICBjb25maWdfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXJ1
bi1pbmZvIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9YWJzX3BhdGgsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIGRpcmVjdG9yeSBjb250YWluaW5nIGV4dHJhIGpz
b24gZmlsZXMgdG8gYWRkIHRvIHJ1biBpbmZvIikKKyAgICBjb25maWdfZ3JvdXAuYWRkX2FyZ3Vt
ZW50KCItLXByb2R1Y3QiLCBhY3Rpb249InN0b3JlIiwgY2hvaWNlcz1wcm9kdWN0X2Nob2ljZXMs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsIGhlbHA9IkJyb3dz
ZXIgYWdhaW5zdCB3aGljaCB0byBydW4gdGVzdHMiKQorICAgIGNvbmZpZ19ncm91cC5hZGRfYXJn
dW1lbnQoIi0tY29uZmlnIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9YWJzX3BhdGgsIGRlc3Q9ImNv
bmZpZyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIGNvbmZp
ZyBmaWxlIikKKyAgICBjb25maWdfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWluc3RhbGwtZm9udHMi
LCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVm
YXVsdD1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iQWxsb3cgdGhl
IHdwdHJ1bm5lciB0byBpbnN0YWxsIGZvbnRzIG9uIHlvdXIgc3lzdGVtIikKKyAgICBjb25maWdf
Z3JvdXAuYWRkX2FyZ3VtZW50KCItLWZvbnQtZGlyIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9YWJz
X3BhdGgsIGRlc3Q9ImZvbnRfZGlyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhl
bHA9IlBhdGggdG8gbG9jYWwgZm9udCBpbnN0YWxsYXRpb24gZGlyZWN0b3J5IiwgZGVmYXVsdD1O
b25lKQorCisgICAgYnVpbGRfdHlwZSA9IHBhcnNlci5hZGRfbXV0dWFsbHlfZXhjbHVzaXZlX2dy
b3VwKCkKKyAgICBidWlsZF90eXBlLmFkZF9hcmd1bWVudCgiLS1kZWJ1Zy1idWlsZCIsIGRlc3Q9
ImRlYnVnIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkZWZhdWx0PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iQnVpbGQg
aXMgYSBkZWJ1ZyBidWlsZCAob3ZlcnJpZGVzIGFueSBtb3ppbmZvIGZpbGUpIikKKyAgICBidWls
ZF90eXBlLmFkZF9hcmd1bWVudCgiLS1yZWxlYXNlLWJ1aWxkIiwgZGVzdD0iZGVidWciLCBhY3Rp
b249InN0b3JlX2ZhbHNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5v
bmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iQnVpbGQgaXMgYSByZWxlYXNl
IChvdmVycmlkZXMgYW55IG1vemluZm8gZmlsZSkiKQorCisKKyAgICBjaHVua2luZ19ncm91cCA9
IHBhcnNlci5hZGRfYXJndW1lbnRfZ3JvdXAoIlRlc3QgQ2h1bmtpbmciKQorICAgIGNodW5raW5n
X2dyb3VwLmFkZF9hcmd1bWVudCgiLS10b3RhbC1jaHVua3MiLCBhY3Rpb249InN0b3JlIiwgdHlw
ZT1pbnQsIGRlZmF1bHQ9MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0i
VG90YWwgbnVtYmVyIG9mIGNodW5rcyB0byB1c2UiKQorICAgIGNodW5raW5nX2dyb3VwLmFkZF9h
cmd1bWVudCgiLS10aGlzLWNodW5rIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9aW50LCBkZWZhdWx0
PTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkNodW5rIG51bWJlciB0
byBydW4iKQorICAgIGNodW5raW5nX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1jaHVuay10eXBlIiwg
YWN0aW9uPSJzdG9yZSIsIGNob2ljZXM9WyJub25lIiwgImVxdWFsX3RpbWUiLCAiaGFzaCIsICJk
aXJfaGFzaCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUs
IGhlbHA9IkNodW5raW5nIHR5cGUgdG8gdXNlIikKKworICAgIHNzbF9ncm91cCA9IHBhcnNlci5h
ZGRfYXJndW1lbnRfZ3JvdXAoIlNTTC9UTFMiKQorICAgIHNzbF9ncm91cC5hZGRfYXJndW1lbnQo
Ii0tc3NsLXR5cGUiLCBhY3Rpb249InN0b3JlIiwgZGVmYXVsdD1Ob25lLAorICAgICAgICAgICAg
ICAgICAgICAgICAgY2hvaWNlcz1bIm9wZW5zc2wiLCAicHJlZ2VuZXJhdGVkIiwgIm5vbmUiXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlR5cGUgb2Ygc3NsIHN1cHBvcnQgdG8gZW5h
YmxlIChydW5uaW5nIHdpdGhvdXQgc3NsIG1heSBsZWFkIHRvIHNwdXJpb3VzIGVycm9ycykiKQor
CisgICAgc3NsX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1vcGVuc3NsLWJpbmFyeSIsIGFjdGlvbj0i
c3RvcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUGF0aCB0byBvcGVuc3NsIGJp
bmFyeSIsIGRlZmF1bHQ9Im9wZW5zc2wiKQorICAgIHNzbF9ncm91cC5hZGRfYXJndW1lbnQoIi0t
Y2VydHV0aWwtYmluYXJ5IiwgYWN0aW9uPSJzdG9yZSIsCisgICAgICAgICAgICAgICAgICAgICAg
ICBoZWxwPSJQYXRoIHRvIGNlcnR1dGlsIGJpbmFyeSBmb3IgdXNlIHdpdGggRmlyZWZveCArIHNz
bCIpCisKKyAgICBzc2xfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWNhLWNlcnQtcGF0aCIsIGFjdGlv
bj0ic3RvcmUiLCB0eXBlPWFic19wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0i
UGF0aCB0byBjYSBjZXJ0aWZpY2F0ZSB3aGVuIHVzaW5nIHByZWdlbmVyYXRlZCBzc2wgY2VydGlm
aWNhdGVzIikKKyAgICBzc2xfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWhvc3Qta2V5LXBhdGgiLCBh
Y3Rpb249InN0b3JlIiwgdHlwZT1hYnNfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhl
bHA9IlBhdGggdG8gaG9zdCBwcml2YXRlIGtleSB3aGVuIHVzaW5nIHByZWdlbmVyYXRlZCBzc2wg
Y2VydGlmaWNhdGVzIikKKyAgICBzc2xfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWhvc3QtY2VydC1w
YXRoIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9YWJzX3BhdGgsCisgICAgICAgICAgICAgICAgICAg
ICAgICBoZWxwPSJQYXRoIHRvIGhvc3QgY2VydGlmaWNhdGUgd2hlbiB1c2luZyBwcmVnZW5lcmF0
ZWQgc3NsIGNlcnRpZmljYXRlcyIpCisKKyAgICBnZWNrb19ncm91cCA9IHBhcnNlci5hZGRfYXJn
dW1lbnRfZ3JvdXAoIkdlY2tvLXNwZWNpZmljIikKKyAgICBnZWNrb19ncm91cC5hZGRfYXJndW1l
bnQoIi0tcHJlZnMtcm9vdCIsIGRlc3Q9InByZWZzX3Jvb3QiLCBhY3Rpb249InN0b3JlIiwgdHlw
ZT1hYnNfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUGF0aCB0byB0
aGUgZm9sZGVyIGNvbnRhaW5pbmcgYnJvd3NlciBwcmVmcyIpCisgICAgZ2Vja29fZ3JvdXAuYWRk
X2FyZ3VtZW50KCItLWRpc2FibGUtZTEwcyIsIGRlc3Q9ImdlY2tvX2UxMHMiLCBhY3Rpb249InN0
b3JlX2ZhbHNlIiwgZGVmYXVsdD1UcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
ZWxwPSJSdW4gdGVzdHMgd2l0aG91dCBlbGVjdHJvbHlzaXMgcHJlZmVyZW5jZXMiKQorICAgIGdl
Y2tvX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1zdGFja2ZpeC1kaXIiLCBkZXN0PSJzdGFja2ZpeF9k
aXIiLCBhY3Rpb249InN0b3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0i
UGF0aCB0byBkaXJlY3RvcnkgY29udGFpbmluZyBhc3NlcnRpb24gc3RhY2sgZml4aW5nIHNjcmlw
dHMiKQorICAgIGdlY2tvX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1zZXRwcmVmIiwgZGVzdD0iZXh0
cmFfcHJlZnMiLCBhY3Rpb249J2FwcGVuZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRlZmF1bHQ9W10sIG1ldGF2YXI9IlBSRUY9VkFMVUUiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSJEZWZpbmVzIGFuIGV4dHJhIHVzZXIgcHJlZmVyZW5jZSAob3ZlcnJpZGVz
IHRob3NlIGluIHByZWZzX3Jvb3QpIikKKyAgICBnZWNrb19ncm91cC5hZGRfYXJndW1lbnQoIi0t
bGVhay1jaGVjayIsIGRlc3Q9ImxlYWtfY2hlY2siLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJFbmFibGUgbGVhayBjaGVja2luZyIpCisg
ICAgZ2Vja29fZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXN0eWxvLXRocmVhZHMiLCBhY3Rpb249InN0
b3JlIiwgdHlwZT1pbnQsIGRlZmF1bHQ9MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aGVscD0iTnVtYmVyIG9mIHBhcmFsbGVsIHRocmVhZHMgdG8gdXNlIGZvciBzdHlsbyIpCisgICAg
Z2Vja29fZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXJlZnRlc3QtaW50ZXJuYWwiLCBkZXN0PSJyZWZ0
ZXN0X2ludGVybmFsIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGVmYXVsdD1Ob25lLCBoZWxwPSJFbmFibGUgcmVmdGVzdCBydW5uZXIgaW1wbGVt
ZW50ZWQgaW5zaWRlIE1hcmlvbmV0dGUiKQorICAgIGdlY2tvX2dyb3VwLmFkZF9hcmd1bWVudCgi
LS1yZWZ0ZXN0LWV4dGVybmFsIiwgZGVzdD0icmVmdGVzdF9pbnRlcm5hbCIsIGFjdGlvbj0ic3Rv
cmVfZmFsc2UiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJEaXNhYmxlIHJl
ZnRlc3QgcnVubmVyIGltcGxlbWVudGVkIGluc2lkZSBNYXJpb25ldHRlIikKKyAgICBnZWNrb19n
cm91cC5hZGRfYXJndW1lbnQoIi0tcmVmdGVzdC1zY3JlZW5zaG90IiwgZGVzdD0icmVmdGVzdF9z
Y3JlZW5zaG90IiwgYWN0aW9uPSJzdG9yZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNob2ljZXM9WyJhbHdheXMiLCAiZmFpbCIsICJ1bmV4cGVjdGVkIl0sIGRlZmF1bHQ9InVuZXhw
ZWN0ZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJXaXRoIC0tcmVmdGVz
dC1pbnRlcm5hbCwgd2hlbiB0byB0YWtlIGEgc2NyZWVuc2hvdCIpCisgICAgZ2Vja29fZ3JvdXAu
YWRkX2FyZ3VtZW50KCItLWNoYW9zIiwgZGVzdD0iY2hhb3NfbW9kZV9mbGFncyIsIGFjdGlvbj0i
c3RvcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYXJncz0iPyIsIGNvbnN0PTB4
RkZGRkZGRkYsIHR5cGU9aW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJF
bmFibGUgY2hhb3MgbW9kZSB3aXRoIHRoZSBzcGVjaWZpZWQgZmVhdHVyZSBmbGFnICIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIihzZWUgaHR0cDovL3NlYXJjaGZveC5vcmcvbW96aWxs
YS1jZW50cmFsL3NvdXJjZS9tZmJ0L0NoYW9zTW9kZS5oIGZvciAiCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJkZXRhaWxzKS4gSWYgbm8gdmFsdWUgaXMgc3VwcGxpZWQsIGFsbCBmZWF0
dXJlcyBhcmUgYWN0aXZhdGVkIikKKworICAgIHNlcnZvX2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1
bWVudF9ncm91cCgiU2Vydm8tc3BlY2lmaWMiKQorICAgIHNlcnZvX2dyb3VwLmFkZF9hcmd1bWVu
dCgiLS11c2VyLXN0eWxlc2hlZXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZh
dWx0PVtdLCBhY3Rpb249ImFwcGVuZCIsIGRlc3Q9InVzZXJfc3R5bGVzaGVldHMiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJJbmplY3QgYSB1c2VyIENTUyBzdHlsZXNoZWV0
IGludG8gZXZlcnkgdGVzdC4iKQorCisgICAgc2F1Y2VfZ3JvdXAgPSBwYXJzZXIuYWRkX2FyZ3Vt
ZW50X2dyb3VwKCJTYXVjZSBMYWJzLXNwZWNpZmljIikKKyAgICBzYXVjZV9ncm91cC5hZGRfYXJn
dW1lbnQoIi0tc2F1Y2UtYnJvd3NlciIsIGRlc3Q9InNhdWNlX2Jyb3dzZXIiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSJTYXVjZSBMYWJzIGJyb3dzZXIgbmFtZSIpCisgICAg
c2F1Y2VfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXNhdWNlLXBsYXRmb3JtIiwgZGVzdD0ic2F1Y2Vf
cGxhdGZvcm0iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJTYXVjZSBMYWJz
IE9TIHBsYXRmb3JtIikKKyAgICBzYXVjZV9ncm91cC5hZGRfYXJndW1lbnQoIi0tc2F1Y2UtdmVy
c2lvbiIsIGRlc3Q9InNhdWNlX3ZlcnNpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBoZWxwPSJTYXVjZSBMYWJzIGJyb3dzZXIgdmVyc2lvbiIpCisgICAgc2F1Y2VfZ3JvdXAuYWRk
X2FyZ3VtZW50KCItLXNhdWNlLWJ1aWxkIiwgZGVzdD0ic2F1Y2VfYnVpbGQiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSJTYXVjZSBMYWJzIGJ1aWxkIGlkZW50aWZpZXIiKQor
ICAgIHNhdWNlX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1zYXVjZS10YWdzIiwgZGVzdD0ic2F1Y2Vf
dGFncyIsIG5hcmdzPSIqIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iU2F1
Y2UgTGFicyBpZGVudGlmeWluZyB0YWciLCBkZWZhdWx0PVtdKQorICAgIHNhdWNlX2dyb3VwLmFk
ZF9hcmd1bWVudCgiLS1zYXVjZS10dW5uZWwtaWQiLCBkZXN0PSJzYXVjZV90dW5uZWxfaWQiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJTYXVjZSBDb25uZWN0IHR1bm5lbCBp
ZGVudGlmaWVyIikKKyAgICBzYXVjZV9ncm91cC5hZGRfYXJndW1lbnQoIi0tc2F1Y2UtdXNlciIs
IGRlc3Q9InNhdWNlX3VzZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJT
YXVjZSBMYWJzIHVzZXIgbmFtZSIpCisgICAgc2F1Y2VfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXNh
dWNlLWtleSIsIGRlc3Q9InNhdWNlX2tleSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRlZmF1bHQ9b3MuZW52aXJvbi5nZXQoIlNBVUNFX0FDQ0VTU19LRVkiKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaGVscD0iU2F1Y2UgTGFicyBhY2Nlc3Mga2V5IikKKyAgICBzYXVj
ZV9ncm91cC5hZGRfYXJndW1lbnQoIi0tc2F1Y2UtY29ubmVjdC1iaW5hcnkiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkZXN0PSJzYXVjZV9jb25uZWN0X2JpbmFyeSIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8gU2F1Y2UgQ29ubmVjdCBiaW5hcnki
KQorCisgICAgd2Via2l0X2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVudF9ncm91cCgiV2ViS2l0
LXNwZWNpZmljIikKKyAgICB3ZWJraXRfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXdlYmtpdC1wb3J0
IiwgZGVzdD0id2Via2l0X3BvcnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSJXZWJLaXQgcG9ydCIpCisKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCJ0ZXN0X2xpc3QiLCBu
YXJncz0iKiIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJMaXN0IG9mIFVSTHMgZm9y
IHRlc3RzIHRvIHJ1biwgb3IgcGF0aHMgaW5jbHVkaW5nIHRlc3RzIHRvIHJ1bi4gIgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiKGVxdWl2YWxlbnQgdG8gLS1pbmNsdWRlKSIpCisKKyAg
ICBjb21tYW5kbGluZS5sb2dfZm9ybWF0dGVyc1sid3B0cmVwb3J0Il0gPSAoZm9ybWF0dGVycy5X
cHRyZXBvcnRGb3JtYXR0ZXIsICJ3cHRyZXBvcnQgZm9ybWF0IikKKworICAgIGNvbW1hbmRsaW5l
LmFkZF9sb2dnaW5nX2dyb3VwKHBhcnNlcikKKyAgICByZXR1cm4gcGFyc2VyCisKKworZGVmIHNl
dF9mcm9tX2NvbmZpZyhrd2FyZ3MpOgorICAgIGlmIGt3YXJnc1siY29uZmlnIl0gaXMgTm9uZToK
KyAgICAgICAgY29uZmlnX3BhdGggPSBjb25maWcucGF0aCgpCisgICAgZWxzZToKKyAgICAgICAg
Y29uZmlnX3BhdGggPSBrd2FyZ3NbImNvbmZpZyJdCisKKyAgICBrd2FyZ3NbImNvbmZpZ19wYXRo
Il0gPSBjb25maWdfcGF0aAorCisgICAga3dhcmdzWyJjb25maWciXSA9IGNvbmZpZy5yZWFkKGt3
YXJnc1siY29uZmlnX3BhdGgiXSkKKworICAgIGtleXMgPSB7InBhdGhzIjogWygicHJlZnMiLCAi
cHJlZnNfcm9vdCIsIFRydWUpLAorICAgICAgICAgICAgICAgICAgICAgICgicnVuX2luZm8iLCAi
cnVuX2luZm8iLCBUcnVlKV0sCisgICAgICAgICAgICAid2ViLXBsYXRmb3JtLXRlc3RzIjogWygi
cmVtb3RlX3VybCIsICJyZW1vdGVfdXJsIiwgRmFsc2UpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoImJyYW5jaCIsICJicmFuY2giLCBGYWxzZSksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICgic3luY19wYXRoIiwgInN5bmNfcGF0aCIsIFRydWUpXSwK
KyAgICAgICAgICAgICJTU0wiOiBbKCJvcGVuc3NsX2JpbmFyeSIsICJvcGVuc3NsX2JpbmFyeSIs
IFRydWUpLAorICAgICAgICAgICAgICAgICAgICAoImNlcnR1dGlsX2JpbmFyeSIsICJjZXJ0dXRp
bF9iaW5hcnkiLCBUcnVlKSwKKyAgICAgICAgICAgICAgICAgICAgKCJjYV9jZXJ0X3BhdGgiLCAi
Y2FfY2VydF9wYXRoIiwgVHJ1ZSksCisgICAgICAgICAgICAgICAgICAgICgiaG9zdF9jZXJ0X3Bh
dGgiLCAiaG9zdF9jZXJ0X3BhdGgiLCBUcnVlKSwKKyAgICAgICAgICAgICAgICAgICAgKCJob3N0
X2tleV9wYXRoIiwgImhvc3Rfa2V5X3BhdGgiLCBUcnVlKV19CisKKyAgICBmb3Igc2VjdGlvbiwg
dmFsdWVzIGluIGtleXMuaXRlcml0ZW1zKCk6CisgICAgICAgIGZvciBjb25maWdfdmFsdWUsIGt3
X3ZhbHVlLCBpc19wYXRoIGluIHZhbHVlczoKKyAgICAgICAgICAgIGlmIGt3X3ZhbHVlIGluIGt3
YXJncyBhbmQga3dhcmdzW2t3X3ZhbHVlXSBpcyBOb25lOgorICAgICAgICAgICAgICAgIGlmIG5v
dCBpc19wYXRoOgorICAgICAgICAgICAgICAgICAgICBuZXdfdmFsdWUgPSBrd2FyZ3NbImNvbmZp
ZyJdLmdldChzZWN0aW9uLCBjb25maWcuQ29uZmlnRGljdCh7fSkpLmdldChjb25maWdfdmFsdWUp
CisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgbmV3X3ZhbHVlID0g
a3dhcmdzWyJjb25maWciXS5nZXQoc2VjdGlvbiwgY29uZmlnLkNvbmZpZ0RpY3Qoe30pKS5nZXRf
cGF0aChjb25maWdfdmFsdWUpCisgICAgICAgICAgICAgICAga3dhcmdzW2t3X3ZhbHVlXSA9IG5l
d192YWx1ZQorCisgICAga3dhcmdzWyJ0ZXN0X3BhdGhzIl0gPSBnZXRfdGVzdF9wYXRocyhrd2Fy
Z3NbImNvbmZpZyJdKQorCisgICAgaWYga3dhcmdzWyJ0ZXN0c19yb290Il06CisgICAgICAgIGlm
ICIvIiBub3QgaW4ga3dhcmdzWyJ0ZXN0X3BhdGhzIl06CisgICAgICAgICAgICBrd2FyZ3NbInRl
c3RfcGF0aHMiXVsiLyJdID0ge30KKyAgICAgICAga3dhcmdzWyJ0ZXN0X3BhdGhzIl1bIi8iXVsi
dGVzdHNfcGF0aCJdID0ga3dhcmdzWyJ0ZXN0c19yb290Il0KKworICAgIGlmIGt3YXJnc1sibWV0
YWRhdGFfcm9vdCJdOgorICAgICAgICBpZiAiLyIgbm90IGluIGt3YXJnc1sidGVzdF9wYXRocyJd
OgorICAgICAgICAgICAga3dhcmdzWyJ0ZXN0X3BhdGhzIl1bIi8iXSA9IHt9CisgICAgICAgIGt3
YXJnc1sidGVzdF9wYXRocyJdWyIvIl1bIm1ldGFkYXRhX3BhdGgiXSA9IGt3YXJnc1sibWV0YWRh
dGFfcm9vdCJdCisKKyAgICBpZiBrd2FyZ3NbIm1hbmlmZXN0X3BhdGgiXToKKyAgICAgICAgaWYg
Ii8iIG5vdCBpbiBrd2FyZ3NbInRlc3RfcGF0aHMiXToKKyAgICAgICAgICAgIGt3YXJnc1sidGVz
dF9wYXRocyJdWyIvIl0gPSB7fQorICAgICAgICBrd2FyZ3NbInRlc3RfcGF0aHMiXVsiLyJdWyJt
YW5pZmVzdF9wYXRoIl0gPSBrd2FyZ3NbIm1hbmlmZXN0X3BhdGgiXQorCisgICAga3dhcmdzWyJz
dWl0ZV9uYW1lIl0gPSBrd2FyZ3NbImNvbmZpZyJdLmdldCgid2ViLXBsYXRmb3JtLXRlc3RzIiwg
e30pLmdldCgibmFtZSIsICJ3ZWItcGxhdGZvcm0tdGVzdHMiKQorCisKK2RlZiBnZXRfdGVzdF9w
YXRocyhjb25maWcpOgorICAgICMgU2V0IHVwIHRlc3RfcGF0aHMKKyAgICB0ZXN0X3BhdGhzID0g
T3JkZXJlZERpY3QoKQorCisgICAgZm9yIHNlY3Rpb24gaW4gY29uZmlnLml0ZXJrZXlzKCk6Cisg
ICAgICAgIGlmIHNlY3Rpb24uc3RhcnRzd2l0aCgibWFuaWZlc3Q6Iik6CisgICAgICAgICAgICBt
YW5pZmVzdF9vcHRzID0gY29uZmlnLmdldChzZWN0aW9uKQorICAgICAgICAgICAgdXJsX2Jhc2Ug
PSBtYW5pZmVzdF9vcHRzLmdldCgidXJsX2Jhc2UiLCAiLyIpCisgICAgICAgICAgICB0ZXN0X3Bh
dGhzW3VybF9iYXNlXSA9IHsKKyAgICAgICAgICAgICAgICAidGVzdHNfcGF0aCI6IG1hbmlmZXN0
X29wdHMuZ2V0X3BhdGgoInRlc3RzIiksCisgICAgICAgICAgICAgICAgIm1ldGFkYXRhX3BhdGgi
OiBtYW5pZmVzdF9vcHRzLmdldF9wYXRoKCJtZXRhZGF0YSIpLAorICAgICAgICAgICAgfQorICAg
ICAgICAgICAgaWYgIm1hbmlmZXN0IiBpbiBtYW5pZmVzdF9vcHRzOgorICAgICAgICAgICAgICAg
IHRlc3RfcGF0aHNbdXJsX2Jhc2VdWyJtYW5pZmVzdF9wYXRoIl0gPSBtYW5pZmVzdF9vcHRzLmdl
dF9wYXRoKCJtYW5pZmVzdCIpCisKKyAgICByZXR1cm4gdGVzdF9wYXRocworCisKK2RlZiBleGVf
cGF0aChuYW1lKToKKyAgICBpZiBuYW1lIGlzIE5vbmU6CisgICAgICAgIHJldHVybgorCisgICAg
cGF0aCA9IGZpbmRfZXhlY3V0YWJsZShuYW1lKQorICAgIGlmIHBhdGggYW5kIG9zLmFjY2Vzcyhw
YXRoLCBvcy5YX09LKToKKyAgICAgICAgcmV0dXJuIHBhdGgKKyAgICBlbHNlOgorICAgICAgICBy
ZXR1cm4gTm9uZQorCisKK2RlZiBjaGVja19wYXRocyhrd2FyZ3MpOgorICAgIGZvciB0ZXN0X3Bh
dGhzIGluIGt3YXJnc1sidGVzdF9wYXRocyJdLml0ZXJ2YWx1ZXMoKToKKyAgICAgICAgaWYgbm90
ICgidGVzdHNfcGF0aCIgaW4gdGVzdF9wYXRocyBhbmQKKyAgICAgICAgICAgICAgICAibWV0YWRh
dGFfcGF0aCIgaW4gdGVzdF9wYXRocyk6CisgICAgICAgICAgICBwcmludCAiRmF0YWw6IG11c3Qg
c3BlY2lmeSBib3RoIGEgdGVzdCBwYXRoIGFuZCBtZXRhZGF0YSBwYXRoIgorICAgICAgICAgICAg
c3lzLmV4aXQoMSkKKyAgICAgICAgaWYgIm1hbmlmZXN0X3BhdGgiIG5vdCBpbiB0ZXN0X3BhdGhz
OgorICAgICAgICAgICAgdGVzdF9wYXRoc1sibWFuaWZlc3RfcGF0aCJdID0gb3MucGF0aC5qb2lu
KHRlc3RfcGF0aHNbIm1ldGFkYXRhX3BhdGgiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTUFOSUZFU1QuanNvbiIpCisgICAgICAgIGZv
ciBrZXksIHBhdGggaW4gdGVzdF9wYXRocy5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgIG5hbWUg
PSBrZXkuc3BsaXQoIl8iLCAxKVswXQorCisgICAgICAgICAgICBpZiBuYW1lID09ICJtYW5pZmVz
dCI6CisgICAgICAgICAgICAgICAgIyBGb3IgdGhlIG1hbmlmZXN0IHdlIGNhbiBjcmVhdGUgaXQg
bGF0ZXIsIHNvIGp1c3QgY2hlY2sgdGhlIHBhdGgKKyAgICAgICAgICAgICAgICAjIGFjdHVhbGx5
IGV4aXN0cworICAgICAgICAgICAgICAgIHBhdGggPSBvcy5wYXRoLmRpcm5hbWUocGF0aCkKKwor
ICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHBhdGgpOgorICAgICAgICAgICAgICAg
IHByaW50ICJGYXRhbDogJXMgcGF0aCAlcyBkb2VzIG5vdCBleGlzdCIgJSAobmFtZSwgcGF0aCkK
KyAgICAgICAgICAgICAgICBzeXMuZXhpdCgxKQorCisgICAgICAgICAgICBpZiBub3Qgb3MucGF0
aC5pc2RpcihwYXRoKToKKyAgICAgICAgICAgICAgICBwcmludCAiRmF0YWw6ICVzIHBhdGggJXMg
aXMgbm90IGEgZGlyZWN0b3J5IiAlIChuYW1lLCBwYXRoKQorICAgICAgICAgICAgICAgIHN5cy5l
eGl0KDEpCisKKworZGVmIGNoZWNrX2FyZ3Moa3dhcmdzKToKKyAgICBzZXRfZnJvbV9jb25maWco
a3dhcmdzKQorCisgICAgY2hlY2tfcGF0aHMoa3dhcmdzKQorCisgICAgaWYga3dhcmdzWyJwcm9k
dWN0Il0gaXMgTm9uZToKKyAgICAgICAga3dhcmdzWyJwcm9kdWN0Il0gPSAiZmlyZWZveCIKKwor
ICAgIGlmICJzYXVjZSIgaW4ga3dhcmdzWyJwcm9kdWN0Il06CisgICAgICAgIGt3YXJnc1sicGF1
c2VfYWZ0ZXJfdGVzdCJdID0gRmFsc2UKKworICAgIGlmIGt3YXJnc1sidGVzdF9saXN0Il06Cisg
ICAgICAgIGlmIGt3YXJnc1siaW5jbHVkZSJdIGlzIG5vdCBOb25lOgorICAgICAgICAgICAga3dh
cmdzWyJpbmNsdWRlIl0uZXh0ZW5kKGt3YXJnc1sidGVzdF9saXN0Il0pCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBrd2FyZ3NbImluY2x1ZGUiXSA9IGt3YXJnc1sidGVzdF9saXN0Il0KKwor
ICAgIGlmIGt3YXJnc1sicnVuX2luZm8iXSBpcyBOb25lOgorICAgICAgICBrd2FyZ3NbInJ1bl9p
bmZvIl0gPSBrd2FyZ3NbImNvbmZpZ19wYXRoIl0KKworICAgIGlmIGt3YXJnc1sidGhpc19jaHVu
ayJdID4gMToKKyAgICAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAidG90YWxfY2h1bmtzIiwgbGFt
YmRhIHg6IHggPj0ga3dhcmdzWyJ0aGlzX2NodW5rIl0pCisKKyAgICBpZiBrd2FyZ3NbImNodW5r
X3R5cGUiXSBpcyBOb25lOgorICAgICAgICBpZiBrd2FyZ3NbInRvdGFsX2NodW5rcyJdID4gMToK
KyAgICAgICAgICAgIGt3YXJnc1siY2h1bmtfdHlwZSJdID0gImRpcl9oYXNoIgorICAgICAgICBl
bHNlOgorICAgICAgICAgICAga3dhcmdzWyJjaHVua190eXBlIl0gPSAibm9uZSIKKworICAgIGlm
IGt3YXJnc1sicHJvY2Vzc2VzIl0gaXMgTm9uZToKKyAgICAgICAga3dhcmdzWyJwcm9jZXNzZXMi
XSA9IDEKKworICAgIGlmIGt3YXJnc1siZGVidWdnZXIiXSBpcyBub3QgTm9uZToKKyAgICAgICAg
aW1wb3J0IG1vemRlYnVnCisgICAgICAgIGlmIGt3YXJnc1siZGVidWdnZXIiXSA9PSAiX19kZWZh
dWx0X18iOgorICAgICAgICAgICAga3dhcmdzWyJkZWJ1Z2dlciJdID0gbW96ZGVidWcuZ2V0X2Rl
ZmF1bHRfZGVidWdnZXJfbmFtZSgpCisgICAgICAgIGRlYnVnX2luZm8gPSBtb3pkZWJ1Zy5nZXRf
ZGVidWdnZXJfaW5mbyhrd2FyZ3NbImRlYnVnZ2VyIl0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImRlYnVnZ2VyX2FyZ3MiXSkKKyAgICAg
ICAgaWYgZGVidWdfaW5mbyBhbmQgZGVidWdfaW5mby5pbnRlcmFjdGl2ZToKKyAgICAgICAgICAg
IGlmIGt3YXJnc1sicHJvY2Vzc2VzIl0gIT0gMToKKyAgICAgICAgICAgICAgICBrd2FyZ3NbInBy
b2Nlc3NlcyJdID0gMQorICAgICAgICAgICAga3dhcmdzWyJub19jYXB0dXJlX3N0ZGlvIl0gPSBU
cnVlCisgICAgICAgIGt3YXJnc1siZGVidWdfaW5mbyJdID0gZGVidWdfaW5mbworICAgIGVsc2U6
CisgICAgICAgIGt3YXJnc1siZGVidWdfaW5mbyJdID0gTm9uZQorCisgICAgaWYga3dhcmdzWyJi
aW5hcnkiXSBpcyBub3QgTm9uZToKKyAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGt3YXJn
c1siYmluYXJ5Il0pOgorICAgICAgICAgICAgcHJpbnQgPj4gc3lzLnN0ZGVyciwgIkJpbmFyeSBw
YXRoICVzIGRvZXMgbm90IGV4aXN0IiAlIGt3YXJnc1siYmluYXJ5Il0KKyAgICAgICAgICAgIHN5
cy5leGl0KDEpCisKKyAgICBpZiBrd2FyZ3NbInNzbF90eXBlIl0gaXMgTm9uZToKKyAgICAgICAg
aWYgTm9uZSBub3QgaW4gKGt3YXJnc1siY2FfY2VydF9wYXRoIl0sIGt3YXJnc1siaG9zdF9jZXJ0
X3BhdGgiXSwga3dhcmdzWyJob3N0X2tleV9wYXRoIl0pOgorICAgICAgICAgICAga3dhcmdzWyJz
c2xfdHlwZSJdID0gInByZWdlbmVyYXRlZCIKKyAgICAgICAgZWxpZiBleGVfcGF0aChrd2FyZ3Nb
Im9wZW5zc2xfYmluYXJ5Il0pIGlzIG5vdCBOb25lOgorICAgICAgICAgICAga3dhcmdzWyJzc2xf
dHlwZSJdID0gIm9wZW5zc2wiCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBrd2FyZ3NbInNz
bF90eXBlIl0gPSAibm9uZSIKKworICAgIGlmIGt3YXJnc1sic3NsX3R5cGUiXSA9PSAicHJlZ2Vu
ZXJhdGVkIjoKKyAgICAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAiY2FfY2VydF9wYXRoIiwgbGFt
YmRhIHg6b3MucGF0aC5leGlzdHMoeCkpCisgICAgICAgIHJlcXVpcmVfYXJnKGt3YXJncywgImhv
c3RfY2VydF9wYXRoIiwgbGFtYmRhIHg6b3MucGF0aC5leGlzdHMoeCkpCisgICAgICAgIHJlcXVp
cmVfYXJnKGt3YXJncywgImhvc3Rfa2V5X3BhdGgiLCBsYW1iZGEgeDpvcy5wYXRoLmV4aXN0cyh4
KSkKKworICAgIGVsaWYga3dhcmdzWyJzc2xfdHlwZSJdID09ICJvcGVuc3NsIjoKKyAgICAgICAg
cGF0aCA9IGV4ZV9wYXRoKGt3YXJnc1sib3BlbnNzbF9iaW5hcnkiXSkKKyAgICAgICAgaWYgcGF0
aCBpcyBOb25lOgorICAgICAgICAgICAgcHJpbnQgPj4gc3lzLnN0ZGVyciwgIm9wZW5zc2wtYmlu
YXJ5IGFyZ3VtZW50IG1pc3Npbmcgb3Igbm90IGEgdmFsaWQgZXhlY3V0YWJsZSIKKyAgICAgICAg
ICAgIHN5cy5leGl0KDEpCisgICAgICAgIGt3YXJnc1sib3BlbnNzbF9iaW5hcnkiXSA9IHBhdGgK
KworICAgIGlmIGt3YXJnc1sic3NsX3R5cGUiXSAhPSAibm9uZSIgYW5kIGt3YXJnc1sicHJvZHVj
dCJdID09ICJmaXJlZm94IiBhbmQga3dhcmdzWyJjZXJ0dXRpbF9iaW5hcnkiXToKKyAgICAgICAg
cGF0aCA9IGV4ZV9wYXRoKGt3YXJnc1siY2VydHV0aWxfYmluYXJ5Il0pCisgICAgICAgIGlmIHBh
dGggaXMgTm9uZToKKyAgICAgICAgICAgIHByaW50ID4+IHN5cy5zdGRlcnIsICJjZXJ0dXRpbC1i
aW5hcnkgYXJndW1lbnQgbWlzc2luZyBvciBub3QgYSB2YWxpZCBleGVjdXRhYmxlIgorICAgICAg
ICAgICAgc3lzLmV4aXQoMSkKKyAgICAgICAga3dhcmdzWyJjZXJ0dXRpbF9iaW5hcnkiXSA9IHBh
dGgKKworICAgIGlmIGt3YXJnc1snZXh0cmFfcHJlZnMnXToKKyAgICAgICAgbWlzc2luZyA9IGFu
eSgnPScgbm90IGluIHByZWZhcmcgZm9yIHByZWZhcmcgaW4ga3dhcmdzWydleHRyYV9wcmVmcydd
KQorICAgICAgICBpZiBtaXNzaW5nOgorICAgICAgICAgICAgcHJpbnQgPj4gc3lzLnN0ZGVyciwg
IlByZWZlcmVuY2VzIHZpYSAtLXNldHByZWYgbXVzdCBiZSBpbiBrZXk9dmFsdWUgZm9ybWF0Igor
ICAgICAgICAgICAgc3lzLmV4aXQoMSkKKyAgICAgICAga3dhcmdzWydleHRyYV9wcmVmcyddID0g
W3R1cGxlKHByZWZhcmcuc3BsaXQoJz0nLCAxKSkgZm9yIHByZWZhcmcgaW4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1snZXh0cmFfcHJlZnMnXV0KKworICAgIGlmIGt3
YXJnc1sicmVmdGVzdF9pbnRlcm5hbCJdIGlzIE5vbmU6CisgICAgICAgICMgRGVmYXVsdCB0byB0
aGUgaW50ZXJuYWwgcmVmdGVzdCBpbXBsZW1lbnRhdGlvbiBvbiBMaW51eCBhbmQgT1NYCisgICAg
ICAgIGt3YXJnc1sicmVmdGVzdF9pbnRlcm5hbCJdID0gc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgo
ImxpbnV4Iikgb3Igc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoImRhcndpbiIpCisKKyAgICByZXR1
cm4ga3dhcmdzCisKKworZGVmIGNoZWNrX2FyZ3NfdXBkYXRlKGt3YXJncyk6CisgICAgc2V0X2Zy
b21fY29uZmlnKGt3YXJncykKKworICAgIGNoZWNrX3BhdGhzKGt3YXJncykKKworICAgIGlmIGt3
YXJnc1sicHJvZHVjdCJdIGlzIE5vbmU6CisgICAgICAgIGt3YXJnc1sicHJvZHVjdCJdID0gImZp
cmVmb3giCisgICAgaWYga3dhcmdzWyJwYXRjaCJdIGlzIE5vbmU6CisgICAgICAgIGt3YXJnc1si
cGF0Y2giXSA9IGt3YXJnc1sic3luYyJdCisKKyAgICBmb3IgaXRlbSBpbiBrd2FyZ3NbInJ1bl9s
b2ciXToKKyAgICAgICAgaWYgb3MucGF0aC5pc2RpcihpdGVtKToKKyAgICAgICAgICAgIHByaW50
ID4+IHN5cy5zdGRlcnIsICJMb2cgZmlsZSAlcyBpcyBhIGRpcmVjdG9yeSIgJSBpdGVtCisgICAg
ICAgICAgICBzeXMuZXhpdCgxKQorCisgICAgcmV0dXJuIGt3YXJncworCisKK2RlZiBjcmVhdGVf
cGFyc2VyX3VwZGF0ZShwcm9kdWN0X2Nob2ljZXM9Tm9uZSk6CisgICAgZnJvbSBtb3psb2cuc3Ry
dWN0dXJlZCBpbXBvcnQgY29tbWFuZGxpbmUKKworICAgIGltcG9ydCBwcm9kdWN0cworCisgICAg
aWYgcHJvZHVjdF9jaG9pY2VzIGlzIE5vbmU6CisgICAgICAgIGNvbmZpZ19kYXRhID0gY29uZmln
LmxvYWQoKQorICAgICAgICBwcm9kdWN0X2Nob2ljZXMgPSBwcm9kdWN0cy5wcm9kdWN0c19lbmFi
bGVkKGNvbmZpZ19kYXRhKQorCisgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIo
IndlYi1wbGF0Zm9ybS10ZXN0cy11cGRhdGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRlc2NyaXB0aW9uPSJVcGRhdGUgc2NyaXB0IGZvciB3ZWItcGxhdGZvcm0tdGVz
dHMgdGVzdHMuIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLXByb2R1Y3QiLCBhY3Rpb249
InN0b3JlIiwgY2hvaWNlcz1wcm9kdWN0X2Nob2ljZXMsCisgICAgICAgICAgICAgICAgICAgICAg
ICBkZWZhdWx0PU5vbmUsIGhlbHA9IkJyb3dzZXIgZm9yIHdoaWNoIG1ldGFkYXRhIGlzIGJlaW5n
IHVwZGF0ZWQiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tY29uZmlnIiwgYWN0aW9uPSJz
dG9yZSIsIHR5cGU9YWJzX3BhdGgsIGhlbHA9IlBhdGggdG8gY29uZmlnIGZpbGUiKQorICAgIHBh
cnNlci5hZGRfYXJndW1lbnQoIi0tbWV0YWRhdGEiLCBhY3Rpb249InN0b3JlIiwgdHlwZT1hYnNf
cGF0aCwgZGVzdD0ibWV0YWRhdGFfcm9vdCIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSJQYXRoIHRvIHRoZSBmb2xkZXIgY29udGFpbmluZyB0ZXN0IG1ldGFkYXRhIiksCisgICAgcGFy
c2VyLmFkZF9hcmd1bWVudCgiLS10ZXN0cyIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPWFic19wYXRo
LCBkZXN0PSJ0ZXN0c19yb290IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlBhdGgg
dG8gd2ViLXBsYXRmb3JtLXRlc3RzIiksCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1tYW5p
ZmVzdCIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPWFic19wYXRoLCBkZXN0PSJtYW5pZmVzdF9wYXRo
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8gdGVzdCBtYW5pZmVzdCAo
ZGVmYXVsdCBpcyAke21ldGFkYXRhX3Jvb3R9L01BTklGRVNULmpzb24pIikKKyAgICBwYXJzZXIu
YWRkX2FyZ3VtZW50KCItLXN5bmMtcGF0aCIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPWFic19wYXRo
LAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUGF0aCB0byBzdG9yZSBnaXQgY2hlY2tv
dXQgb2Ygd2ViLXBsYXRmb3JtLXRlc3RzIGR1cmluZyB1cGRhdGUiKSwKKyAgICBwYXJzZXIuYWRk
X2FyZ3VtZW50KCItLXJlbW90ZV91cmwiLCBhY3Rpb249InN0b3JlIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9IlVSTCBvZiB3ZWItcGxhdGZyb20tdGVzdHMgcmVwb3NpdG9yeSB0byBz
eW5jIGFnYWluc3QiKSwKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWJyYW5jaCIsIGFjdGlv
bj0ic3RvcmUiLCB0eXBlPWFic19wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0i
UmVtb3RlIGJyYW5jaCB0byBzeW5jIGFnYWluc3QiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQo
Ii0tcmV2IiwgYWN0aW9uPSJzdG9yZSIsIGhlbHA9IlJldmlzaW9uIHRvIHN5bmMgdG8iKQorICAg
IHBhcnNlci5hZGRfYXJndW1lbnQoIi0tcGF0Y2giLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0
PSJwYXRjaCIsIGRlZmF1bHQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkNy
ZWF0ZSBhIFZDUyBjb21taXQgY29udGFpbmluZyB0aGUgY2hhbmdlcy4iKQorICAgIHBhcnNlci5h
ZGRfYXJndW1lbnQoIi0tbm8tcGF0Y2giLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0icGF0
Y2giLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iRG9uJ3QgY3JlYXRlIGEgVkNTIGNv
bW1pdCBjb250YWluaW5nIHRoZSBjaGFuZ2VzLiIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgi
LS1zeW5jIiwgZGVzdD0ic3luYyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2Us
CisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJTeW5jIHRoZSB0ZXN0cyB3aXRoIHRoZSBs
YXRlc3QgZnJvbSB1cHN0cmVhbSAoaW1wbGllcyAtLXBhdGNoKSIpCisgICAgcGFyc2VyLmFkZF9h
cmd1bWVudCgiLS1pZ25vcmUtZXhpc3RpbmciLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgaGVscD0iV2hlbiB1cGRhdGluZyB0ZXN0IHJlc3VsdHMgb25seSBj
b25zaWRlciByZXN1bHRzIGZyb20gdGhlIGxvZ2ZpbGVzIHByb3ZpZGVkLCBub3QgZXhpc3Rpbmcg
ZXhwZWN0YXRpb25zLiIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1zdGFiaWxpdHkiLCBu
YXJncz0iPyIsIGFjdGlvbj0ic3RvcmUiLCBjb25zdD0idW5zdGFibGUiLCBkZWZhdWx0PU5vbmUs
CisgICAgICAgIGhlbHA9KCJSZWFzb24gZm9yIGRpc2FibGluZyB0ZXN0cy4gV2hlbiB1cGRhdGlu
ZyB0ZXN0IHJlc3VsdHMsIGRpc2FibGUgdGVzdHMgdGhhdCBoYXZlICIKKyAgICAgICAgICAgICAg
ImluY29uc2lzdGVudCByZXN1bHRzIGFjcm9zcyBtYW55IHJ1bnMgd2l0aCB0aGUgZ2l2ZW4gcmVh
c29uLiIpKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tY29udGludWUiLCBhY3Rpb249InN0
b3JlX3RydWUiLCBoZWxwPSJDb250aW51ZSBhIHByZXZpb3VzbHkgc3RhcnRlZCBydW4gb2YgdGhl
IHVwZGF0ZSBzY3JpcHQiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tYWJvcnQiLCBhY3Rp
b249InN0b3JlX3RydWUiLCBoZWxwPSJDbGVhciBzdGF0ZSBmcm9tIGEgcHJldmlvdXMgaW5jb21w
bGV0ZSBydW4gb2YgdGhlIHVwZGF0ZSBzY3JpcHQiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQo
Ii0tZXhjbHVkZSIsIGFjdGlvbj0ic3RvcmUiLCBuYXJncz0iKiIsCisgICAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSJMaXN0IG9mIGdsb2Itc3R5bGUgcGF0aHMgdG8gZXhjbHVkZSB3aGVuIHN5
bmNpbmcgdGVzdHMiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0taW5jbHVkZSIsIGFjdGlv
bj0ic3RvcmUiLCBuYXJncz0iKiIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJMaXN0
IG9mIGdsb2Itc3R5bGUgcGF0aHMgdG8gaW5jbHVkZSB3aGljaCB3b3VsZCBvdGhlcndpc2UgYmUg
ZXhjbHVkZWQgd2hlbiBzeW5jaW5nIHRlc3RzIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCIt
LWV4dHJhLXByb3BlcnR5IiwgYWN0aW9uPSJhcHBlbmQiLCBkZWZhdWx0PVtdLAorICAgICAgICAg
ICAgICAgICAgICAgICAgaGVscD0iRXh0cmEgcHJvcGVydHkgZnJvbSBydW5faW5mby5qc29uIHRv
IHVzZSBpbiBtZXRhZGF0YSB1cGRhdGUiKQorICAgICMgU2hvdWxkIG1ha2UgdGhpcyByZXF1aXJl
ZCBpZmYgcnVuPWxvZ2ZpbGUKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCJydW5fbG9nIiwgbmFy
Z3M9IioiLCB0eXBlPWFic19wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iTG9n
IGZpbGUgZnJvbSBydW4gb2YgdGVzdHMiKQorICAgIGNvbW1hbmRsaW5lLmFkZF9sb2dnaW5nX2dy
b3VwKHBhcnNlcikKKyAgICByZXR1cm4gcGFyc2VyCisKKworZGVmIGNyZWF0ZV9wYXJzZXJfcmVk
dWNlKHByb2R1Y3RfY2hvaWNlcz1Ob25lKToKKyAgICBwYXJzZXIgPSBjcmVhdGVfcGFyc2VyKHBy
b2R1Y3RfY2hvaWNlcykKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCJ0YXJnZXQiLCBhY3Rpb249
InN0b3JlIiwgaGVscD0iVGVzdCBpZCB0aGF0IGlzIHVuc3RhYmxlIikKKyAgICByZXR1cm4gcGFy
c2VyCisKKworZGVmIHBhcnNlX2FyZ3MoKToKKyAgICBwYXJzZXIgPSBjcmVhdGVfcGFyc2VyKCkK
KyAgICBydiA9IHZhcnMocGFyc2VyLnBhcnNlX2FyZ3MoKSkKKyAgICBjaGVja19hcmdzKHJ2KQor
ICAgIHJldHVybiBydgorCisKK2RlZiBwYXJzZV9hcmdzX3VwZGF0ZSgpOgorICAgIHBhcnNlciA9
IGNyZWF0ZV9wYXJzZXJfdXBkYXRlKCkKKyAgICBydiA9IHZhcnMocGFyc2VyLnBhcnNlX2FyZ3Mo
KSkKKyAgICBjaGVja19hcmdzX3VwZGF0ZShydikKKyAgICByZXR1cm4gcnYKKworCitkZWYgcGFy
c2VfYXJnc19yZWR1Y2UoKToKKyAgICBwYXJzZXIgPSBjcmVhdGVfcGFyc2VyX3JlZHVjZSgpCisg
ICAgcnYgPSB2YXJzKHBhcnNlci5wYXJzZV9hcmdzKCkpCisgICAgY2hlY2tfYXJncyhydikKKyAg
ICByZXR1cm4gcnYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRsb2dnaW5nLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3dwdGxvZ2dpbmcucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjZkMTc0YzA2NmJjMzgxYmMzYjE2
ODg2MzIyNTgwZTRlMjBmZThhNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRs
b2dnaW5nLnB5CkBAIC0wLDAgKzEsMTM1IEBACitpbXBvcnQgbG9nZ2luZworaW1wb3J0IHN5cwor
aW1wb3J0IHRocmVhZGluZworZnJvbSBRdWV1ZSBpbXBvcnQgRW1wdHkKK2Zyb20gU3RyaW5nSU8g
aW1wb3J0IFN0cmluZ0lPCitmcm9tIG11bHRpcHJvY2Vzc2luZyBpbXBvcnQgUXVldWUKKworZnJv
bSBtb3psb2cgaW1wb3J0IGNvbW1hbmRsaW5lLCBzdGRhZGFwdGVyLCBzZXRfZGVmYXVsdF9sb2dn
ZXIKK2Zyb20gbW96bG9nLnN0cnVjdHVyZWRsb2cgaW1wb3J0IFN0cnVjdHVyZWRMb2dnZXIKKwor
ZGVmIHNldHVwKGFyZ3MsIGRlZmF1bHRzKToKKyAgICBsb2dnZXIgPSBhcmdzLnBvcCgnbG9nJywg
Tm9uZSkKKyAgICBpZiBsb2dnZXI6CisgICAgICAgIHNldF9kZWZhdWx0X2xvZ2dlcihsb2dnZXIp
CisgICAgICAgIFN0cnVjdHVyZWRMb2dnZXIuX2xvZ2dlcl9zdGF0ZXNbIndlYi1wbGF0Zm9ybS10
ZXN0cyJdID0gbG9nZ2VyLl9zdGF0ZQorICAgIGVsc2U6CisgICAgICAgIGxvZ2dlciA9IGNvbW1h
bmRsaW5lLnNldHVwX2xvZ2dpbmcoIndlYi1wbGF0Zm9ybS10ZXN0cyIsIGFyZ3MsIGRlZmF1bHRz
KQorICAgIHNldHVwX3N0ZGxpYl9sb2dnZXIoKQorCisgICAgZm9yIG5hbWUgaW4gYXJncy5rZXlz
KCk6CisgICAgICAgIGlmIG5hbWUuc3RhcnRzd2l0aCgibG9nXyIpOgorICAgICAgICAgICAgYXJn
cy5wb3AobmFtZSkKKworICAgIHJldHVybiBsb2dnZXIKKworCitkZWYgc2V0dXBfc3RkbGliX2xv
Z2dlcigpOgorICAgIGxvZ2dpbmcucm9vdC5oYW5kbGVycyA9IFtdCisgICAgbG9nZ2luZy5yb290
ID0gc3RkYWRhcHRlci5zdGRfbG9nZ2luZ19hZGFwdGVyKGxvZ2dpbmcucm9vdCkKKworCitjbGFz
cyBMb2dMZXZlbFJld3JpdGVyKG9iamVjdCk6CisgICAgIiIiRmlsdGVyIHRoYXQgcmVwbGFjZXMg
bG9nIG1lc3NhZ2VzIGF0IHNwZWNpZmllZCBsZXZlbHMgd2l0aCBtZXNzYWdlcworICAgIGF0IGEg
ZGlmZmVyZW50IGxldmVsLgorCisgICAgVGhpcyBjYW4gYmUgdXNlZCB0byBlLmcuIGRvd25ncmFk
ZSBsb2cgbWVzc2FnZXMgZnJvbSBFUlJPUiB0byBXQVJOSU5HCisgICAgaW4gc29tZSBjb21wb25l
bnQgd2hlcmUgRVJST1JzIGFyZSBub3QgY3JpdGljYWwuCisKKyAgICA6cGFyYW0gaW5uZXI6IEhh
bmRsZXIgdG8gdXNlIGZvciBtZXNzYWdlcyB0aGF0IHBhc3MgdGhpcyBmaWx0ZXIKKyAgICA6cGFy
YW0gZnJvbV9sZXZlbHM6IExpc3Qgb2YgbGV2ZWxzIHdoaWNoIHNob3VsZCBiZSBhZmZlY3RlZAor
ICAgIDpwYXJhbSB0b19sZXZlbDogTG9nIGxldmVsIHRvIHNldCBmb3IgdGhlIGFmZmVjdGVkIG1l
c3NhZ2VzCisgICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGlubmVyLCBmcm9tX2xldmVs
cywgdG9fbGV2ZWwpOgorICAgICAgICBzZWxmLmlubmVyID0gaW5uZXIKKyAgICAgICAgc2VsZi5m
cm9tX2xldmVscyA9IFtpdGVtLnVwcGVyKCkgZm9yIGl0ZW0gaW4gZnJvbV9sZXZlbHNdCisgICAg
ICAgIHNlbGYudG9fbGV2ZWwgPSB0b19sZXZlbC51cHBlcigpCisKKyAgICBkZWYgX19jYWxsX18o
c2VsZiwgZGF0YSk6CisgICAgICAgIGlmIGRhdGFbImFjdGlvbiJdID09ICJsb2ciIGFuZCBkYXRh
WyJsZXZlbCJdLnVwcGVyKCkgaW4gc2VsZi5mcm9tX2xldmVsczoKKyAgICAgICAgICAgIGRhdGEg
PSBkYXRhLmNvcHkoKQorICAgICAgICAgICAgZGF0YVsibGV2ZWwiXSA9IHNlbGYudG9fbGV2ZWwK
KyAgICAgICAgcmV0dXJuIHNlbGYuaW5uZXIoZGF0YSkKKworCitjbGFzcyBMb2dUaHJlYWQodGhy
ZWFkaW5nLlRocmVhZCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHF1ZXVlLCBsb2dnZXIsIGxl
dmVsKToKKyAgICAgICAgc2VsZi5xdWV1ZSA9IHF1ZXVlCisgICAgICAgIHNlbGYubG9nX2Z1bmMg
PSBnZXRhdHRyKGxvZ2dlciwgbGV2ZWwpCisgICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0
X18oc2VsZiwgbmFtZT0iVGhyZWFkLUxvZyIpCisgICAgICAgIHNlbGYuZGFlbW9uID0gVHJ1ZQor
CisgICAgZGVmIHJ1bihzZWxmKToKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIHRy
eToKKyAgICAgICAgICAgICAgICBtc2cgPSBzZWxmLnF1ZXVlLmdldCgpCisgICAgICAgICAgICBl
eGNlcHQgKEVPRkVycm9yLCBJT0Vycm9yKToKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAg
ICAgICAgaWYgbXNnIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi5sb2dfZnVuYyhtc2cpCisKKworY2xhc3MgTG9n
Z2luZ1dyYXBwZXIoU3RyaW5nSU8pOgorICAgICIiIldyYXBwZXIgZm9yIGZpbGUgbGlrZSBvYmpl
Y3RzIHRvIHJlZGlyZWN0IG91dHB1dCB0byBsb2dnZXIKKyAgICBpbnN0ZWFkIiIiCisKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgcXVldWUsIHByZWZpeD1Ob25lKToKKyAgICAgICAgU3RyaW5nSU8u
X19pbml0X18oc2VsZikKKyAgICAgICAgc2VsZi5xdWV1ZSA9IHF1ZXVlCisgICAgICAgIHNlbGYu
cHJlZml4ID0gcHJlZml4CisKKyAgICBkZWYgd3JpdGUoc2VsZiwgZGF0YSk6CisgICAgICAgIGlm
IGlzaW5zdGFuY2UoZGF0YSwgc3RyKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAg
ICBkYXRhID0gZGF0YS5kZWNvZGUoInV0ZjgiKQorICAgICAgICAgICAgZXhjZXB0IFVuaWNvZGVE
ZWNvZGVFcnJvcjoKKyAgICAgICAgICAgICAgICBkYXRhID0gZGF0YS5lbmNvZGUoInN0cmluZ19l
c2NhcGUiKS5kZWNvZGUoImFzY2lpIikKKworICAgICAgICBpZiBkYXRhLmVuZHN3aXRoKCJcbiIp
OgorICAgICAgICAgICAgZGF0YSA9IGRhdGFbOi0xXQorICAgICAgICBpZiBkYXRhLmVuZHN3aXRo
KCJcciIpOgorICAgICAgICAgICAgZGF0YSA9IGRhdGFbOi0xXQorICAgICAgICBpZiBub3QgZGF0
YToKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBpZiBzZWxmLnByZWZpeCBpcyBub3QgTm9u
ZToKKyAgICAgICAgICAgIGRhdGEgPSAiJXM6ICVzIiAlIChzZWxmLnByZWZpeCwgZGF0YSkKKyAg
ICAgICAgc2VsZi5xdWV1ZS5wdXQoZGF0YSkKKworICAgIGRlZiBmbHVzaChzZWxmKToKKyAgICAg
ICAgcGFzcworCisKK2NsYXNzIENhcHR1cmVJTyhvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBsb2dnZXIsIGRvX2NhcHR1cmUpOgorICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgor
ICAgICAgICBzZWxmLmRvX2NhcHR1cmUgPSBkb19jYXB0dXJlCisgICAgICAgIHNlbGYubG9nZ2lu
Z19xdWV1ZSA9IE5vbmUKKyAgICAgICAgc2VsZi5sb2dnaW5nX3RocmVhZCA9IE5vbmUKKyAgICAg
ICAgc2VsZi5vcmlnaW5hbF9zdGRpbyA9IE5vbmUKKworICAgIGRlZiBfX2VudGVyX18oc2VsZik6
CisgICAgICAgIGlmIHNlbGYuZG9fY2FwdHVyZToKKyAgICAgICAgICAgIHNlbGYub3JpZ2luYWxf
c3RkaW8gPSAoc3lzLnN0ZG91dCwgc3lzLnN0ZGVycikKKyAgICAgICAgICAgIHNlbGYubG9nZ2lu
Z19xdWV1ZSA9IFF1ZXVlKCkKKyAgICAgICAgICAgIHNlbGYubG9nZ2luZ190aHJlYWQgPSBMb2dU
aHJlYWQoc2VsZi5sb2dnaW5nX3F1ZXVlLCBzZWxmLmxvZ2dlciwgImluZm8iKQorICAgICAgICAg
ICAgc3lzLnN0ZG91dCA9IExvZ2dpbmdXcmFwcGVyKHNlbGYubG9nZ2luZ19xdWV1ZSwgcHJlZml4
PSJTVERPVVQiKQorICAgICAgICAgICAgc3lzLnN0ZGVyciA9IExvZ2dpbmdXcmFwcGVyKHNlbGYu
bG9nZ2luZ19xdWV1ZSwgcHJlZml4PSJTVERFUlIiKQorICAgICAgICAgICAgc2VsZi5sb2dnaW5n
X3RocmVhZC5zdGFydCgpCisKKyAgICBkZWYgX19leGl0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdz
KToKKyAgICAgICAgaWYgc2VsZi5kb19jYXB0dXJlOgorICAgICAgICAgICAgc3lzLnN0ZG91dCwg
c3lzLnN0ZGVyciA9IHNlbGYub3JpZ2luYWxfc3RkaW8KKyAgICAgICAgICAgIGlmIHNlbGYubG9n
Z2luZ19xdWV1ZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZv
KCJDbG9zaW5nIGxvZ2dpbmcgcXVldWUiKQorICAgICAgICAgICAgICAgIHNlbGYubG9nZ2luZ19x
dWV1ZS5wdXQoTm9uZSkKKyAgICAgICAgICAgICAgICBpZiBzZWxmLmxvZ2dpbmdfdGhyZWFkIGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dpbmdfdGhyZWFkLmpvaW4o
MTApCisgICAgICAgICAgICAgICAgd2hpbGUgbm90IHNlbGYubG9nZ2luZ19xdWV1ZS5lbXB0eSgp
OgorICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
LmxvZ2dlci53YXJuaW5nKCJEcm9wcGluZyBsb2cgbWVzc2FnZTogJXIiLCBzZWxmLmxvZ2dpbmdf
cXVldWUuZ2V0KCkpCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgc2VsZi5sb2dnaW5nX3F1
ZXVlLmNsb3NlKCkKKyAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJxdWV1ZSBjbG9z
ZWQiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L19faW5pdF9fLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L19faW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiNjQ3ODRj
N2U2Njc4MjY1OGJjY2VmMDFlY2M5MTBjNzY4NDViZWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvd3B0bWFuaWZlc3QvX19pbml0X18ucHkKQEAgLTAsMCArMSw0IEBACitmcm9tIHNl
cmlhbGl6ZXIgaW1wb3J0IHNlcmlhbGl6ZQorZnJvbSBwYXJzZXIgaW1wb3J0IHBhcnNlCitmcm9t
IGJhY2tlbmRzLnN0YXRpYyBpbXBvcnQgY29tcGlsZSBhcyBjb21waWxlX3N0YXRpYworZnJvbSBi
YWNrZW5kcy5jb25kaXRpb25hbCBpbXBvcnQgY29tcGlsZSBhcyBjb21waWxlX2NvbmRpdGlvbgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL19faW5pdF9fLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL19faW5pdF9fLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvX19pbml0X18ucHkKQEAg
LTAsMCArMSBAQAorIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2gg
dGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL2NvbmRpdGlvbmFs
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL2NvbmRpdGlvbmFsLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjYyOWQwMWQ3MTU4MTI3YTJlZGQwODZjYWQyMTc2YTE5ZmE1OGZmYmYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvY29uZGl0aW9u
YWwucHkKQEAgLTAsMCArMSwzMzIgQEAKK2ltcG9ydCBvcGVyYXRvcgorCitmcm9tIC4ubm9kZSBp
bXBvcnQgTm9kZVZpc2l0b3IsIERhdGFOb2RlLCBDb25kaXRpb25hbE5vZGUsIEtleVZhbHVlTm9k
ZSwgTGlzdE5vZGUsIFZhbHVlTm9kZQorZnJvbSAuLnBhcnNlciBpbXBvcnQgcGFyc2UKKworCitj
bGFzcyBDb25kaXRpb25hbFZhbHVlKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5v
ZGUsIGNvbmRpdGlvbl9mdW5jKToKKyAgICAgICAgc2VsZi5ub2RlID0gbm9kZQorICAgICAgICBz
ZWxmLmNvbmRpdGlvbl9mdW5jID0gY29uZGl0aW9uX2Z1bmMKKyAgICAgICAgaWYgaXNpbnN0YW5j
ZShub2RlLCBDb25kaXRpb25hbE5vZGUpOgorICAgICAgICAgICAgYXNzZXJ0IGxlbihub2RlLmNo
aWxkcmVuKSA9PSAyCisgICAgICAgICAgICBzZWxmLmNvbmRpdGlvbl9ub2RlID0gc2VsZi5ub2Rl
LmNoaWxkcmVuWzBdCisgICAgICAgICAgICBzZWxmLnZhbHVlX25vZGUgPSBzZWxmLm5vZGUuY2hp
bGRyZW5bMV0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG5v
ZGUsIChWYWx1ZU5vZGUsIExpc3ROb2RlKSkKKyAgICAgICAgICAgIHNlbGYuY29uZGl0aW9uX25v
ZGUgPSBOb25lCisgICAgICAgICAgICBzZWxmLnZhbHVlX25vZGUgPSBzZWxmLm5vZGUKKworICAg
IEBwcm9wZXJ0eQorICAgIGRlZiB2YWx1ZShzZWxmKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShz
ZWxmLnZhbHVlX25vZGUsIFZhbHVlTm9kZSk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi52YWx1
ZV9ub2RlLmRhdGEKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBbaXRlbS5kYXRh
IGZvciBpdGVtIGluIHNlbGYudmFsdWVfbm9kZS5jaGlsZHJlbl0KKworICAgIEB2YWx1ZS5zZXR0
ZXIKKyAgICBkZWYgdmFsdWUoc2VsZiwgdmFsdWUpOgorICAgICAgICBzZWxmLnZhbHVlX25vZGUu
ZGF0YSA9IHZhbHVlCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgcnVuX2luZm8pOgorICAgICAg
ICByZXR1cm4gc2VsZi5jb25kaXRpb25fZnVuYyhydW5faW5mbykKKworICAgIGRlZiBzZXRfdmFs
dWUoc2VsZiwgdmFsdWUpOgorICAgICAgICBzZWxmLnZhbHVlID0gdmFsdWUKKworICAgIGRlZiBy
ZW1vdmUoc2VsZik6CisgICAgICAgIGlmIGxlbihzZWxmLm5vZGUucGFyZW50LmNoaWxkcmVuKSA9
PSAxOgorICAgICAgICAgICAgc2VsZi5ub2RlLnBhcmVudC5yZW1vdmUoKQorICAgICAgICBzZWxm
Lm5vZGUucmVtb3ZlKCkKKworCitjbGFzcyBDb21waWxlcihOb2RlVmlzaXRvcik6CisgICAgZGVm
IGNvbXBpbGUoc2VsZiwgdHJlZSwgZGF0YV9jbHNfZ2V0dGVyPU5vbmUsICoqa3dhcmdzKToKKyAg
ICAgICAgIiIiQ29tcGlsZSBhIHJhdyBBU1QgaW50byBhIGZvcm0gd2hlcmUgY29uZGl0aW9uYWwg
ZXhwcmVzc2lvbnMKKyAgICAgICAgYXJlIHJlcHJlc2VudGVkIGJ5IENvbmRpdGlvbmFsVmFsdWUg
b2JqZWN0cyB0aGF0IGNhbiBiZSBldmFsdWF0ZWQKKyAgICAgICAgYXQgcnVudGltZS4KKworICAg
ICAgICB0cmVlIC0gVGhlIHJvb3Qgbm9kZSBvZiB0aGUgd3B0bWFuaWZlc3QgQVNUIHRvIGNvbXBp
bGUKKworICAgICAgICBkYXRhX2Nsc19nZXR0ZXIgLSBBIGZ1bmN0aW9uIHRha2luZyB0d28gcGFy
YW1ldGVyczsgdGhlIHByZXZpb3VzCisgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCBu
b2RlIGFuZCB0aGUgY3VycmVudCBhc3Qgbm9kZSBhbmQgcmV0dXJuaW5nCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRoZSBjbGFzcyBvZiB0aGUgb3V0cHV0IG5vZGUgdG8gdXNlIGZvciB0aGUg
Y3VycmVudAorICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Qgbm9kZQorICAgICAgICAiIiIK
KyAgICAgICAgaWYgZGF0YV9jbHNfZ2V0dGVyIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLmRh
dGFfY2xzX2dldHRlciA9IGxhbWJkYSB4LCB5OiBNYW5pZmVzdEl0ZW0KKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIHNlbGYuZGF0YV9jbHNfZ2V0dGVyID0gZGF0YV9jbHNfZ2V0dGVyCisKKyAg
ICAgICAgc2VsZi50cmVlID0gdHJlZQorICAgICAgICBzZWxmLm91dHB1dF9ub2RlID0gc2VsZi5f
aW5pdGlhbF9vdXRwdXRfbm9kZSh0cmVlLCAqKmt3YXJncykKKyAgICAgICAgc2VsZi52aXNpdCh0
cmVlKQorICAgICAgICBpZiBoYXNhdHRyKHNlbGYub3V0cHV0X25vZGUsICJzZXRfZGVmYXVsdHMi
KToKKyAgICAgICAgICAgIHNlbGYub3V0cHV0X25vZGUuc2V0X2RlZmF1bHRzKCkKKyAgICAgICAg
YXNzZXJ0IHNlbGYub3V0cHV0X25vZGUgaXMgbm90IE5vbmUKKyAgICAgICAgcmV0dXJuIHNlbGYu
b3V0cHV0X25vZGUKKworICAgIGRlZiBjb21waWxlX2NvbmRpdGlvbihzZWxmLCBjb25kaXRpb24p
OgorICAgICAgICAiIiJDb21waWxlIGEgQ29uZGl0aW9uYWxOb2RlIGludG8gYSBDb25kaXRpb25h
bFZhbHVlLgorCisgICAgICAgIGNvbmRpdGlvbjogQSBDb25kaXRpb25hbE5vZGUiIiIKKyAgICAg
ICAgZGF0YV9ub2RlID0gRGF0YU5vZGUoKQorICAgICAgICBrZXlfdmFsdWVfbm9kZSA9IEtleVZh
bHVlTm9kZSgpCisgICAgICAgIGtleV92YWx1ZV9ub2RlLmFwcGVuZChjb25kaXRpb24uY29weSgp
KQorICAgICAgICBkYXRhX25vZGUuYXBwZW5kKGtleV92YWx1ZV9ub2RlKQorICAgICAgICBtYW5p
ZmVzdF9pdGVtID0gc2VsZi5jb21waWxlKGRhdGFfbm9kZSkKKyAgICAgICAgcmV0dXJuIG1hbmlm
ZXN0X2l0ZW0uX2RhdGFbTm9uZV1bMF0KKworICAgIGRlZiBfaW5pdGlhbF9vdXRwdXRfbm9kZShz
ZWxmLCBub2RlLCAqKmt3YXJncyk6CisgICAgICAgIHJldHVybiBzZWxmLmRhdGFfY2xzX2dldHRl
cihOb25lLCBOb25lKShub2RlLCAqKmt3YXJncykKKworICAgIGRlZiB2aXNpdF9EYXRhTm9kZShz
ZWxmLCBub2RlKToKKyAgICAgICAgaWYgbm9kZSAhPSBzZWxmLnRyZWU6CisgICAgICAgICAgICBv
dXRwdXRfcGFyZW50ID0gc2VsZi5vdXRwdXRfbm9kZQorICAgICAgICAgICAgc2VsZi5vdXRwdXRf
bm9kZSA9IHNlbGYuZGF0YV9jbHNfZ2V0dGVyKHNlbGYub3V0cHV0X25vZGUsIG5vZGUpKG5vZGUp
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBvdXRwdXRfcGFyZW50ID0gTm9uZQorCisgICAg
ICAgIGFzc2VydCBzZWxmLm91dHB1dF9ub2RlIGlzIG5vdCBOb25lCisKKyAgICAgICAgZm9yIGNo
aWxkIGluIG5vZGUuY2hpbGRyZW46CisgICAgICAgICAgICBzZWxmLnZpc2l0KGNoaWxkKQorCisg
ICAgICAgIGlmIG91dHB1dF9wYXJlbnQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAjIEFwcGVu
ZCB0byB0aGUgcGFyZW50ICphZnRlciogcHJvY2Vzc2luZyBhbGwgdGhlIG5vZGUgZGF0YQorICAg
ICAgICAgICAgb3V0cHV0X3BhcmVudC5hcHBlbmQoc2VsZi5vdXRwdXRfbm9kZSkKKyAgICAgICAg
ICAgIHNlbGYub3V0cHV0X25vZGUgPSBzZWxmLm91dHB1dF9ub2RlLnBhcmVudAorCisgICAgICAg
IGFzc2VydCBzZWxmLm91dHB1dF9ub2RlIGlzIG5vdCBOb25lCisKKyAgICBkZWYgdmlzaXRfS2V5
VmFsdWVOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBrZXlfdmFsdWVzID0gW10KKyAgICAgICAg
Zm9yIGNoaWxkIGluIG5vZGUuY2hpbGRyZW46CisgICAgICAgICAgICBjb25kaXRpb24sIHZhbHVl
ID0gc2VsZi52aXNpdChjaGlsZCkKKyAgICAgICAgICAgIGtleV92YWx1ZXMuYXBwZW5kKENvbmRp
dGlvbmFsVmFsdWUoY2hpbGQsIGNvbmRpdGlvbikpCisKKyAgICAgICAgc2VsZi5vdXRwdXRfbm9k
ZS5fYWRkX2tleV92YWx1ZShub2RlLCBrZXlfdmFsdWVzKQorCisgICAgZGVmIHZpc2l0X0xpc3RO
b2RlKHNlbGYsIG5vZGUpOgorICAgICAgICByZXR1cm4gKGxhbWJkYSB4OlRydWUsIFtzZWxmLnZp
c2l0KGNoaWxkKSBmb3IgY2hpbGQgaW4gbm9kZS5jaGlsZHJlbl0pCisKKyAgICBkZWYgdmlzaXRf
VmFsdWVOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICByZXR1cm4gKGxhbWJkYSB4OiBUcnVlLCBu
b2RlLmRhdGEpCisKKyAgICBkZWYgdmlzaXRfQXRvbU5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAg
IHJldHVybiAobGFtYmRhIHg6IFRydWUsIG5vZGUuZGF0YSkKKworICAgIGRlZiB2aXNpdF9Db25k
aXRpb25hbE5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIHJldHVybiBzZWxmLnZpc2l0KG5vZGUu
Y2hpbGRyZW5bMF0pLCBzZWxmLnZpc2l0KG5vZGUuY2hpbGRyZW5bMV0pCisKKyAgICBkZWYgdmlz
aXRfU3RyaW5nTm9kZShzZWxmLCBub2RlKToKKyAgICAgICAgaW5kZXhlcyA9IFtzZWxmLnZpc2l0
KGNoaWxkKSBmb3IgY2hpbGQgaW4gbm9kZS5jaGlsZHJlbl0KKworICAgICAgICBkZWYgdmFsdWUo
eCk6CisgICAgICAgICAgICBydiA9IG5vZGUuZGF0YQorICAgICAgICAgICAgZm9yIGluZGV4IGlu
IGluZGV4ZXM6CisgICAgICAgICAgICAgICAgcnYgPSBydltpbmRleCh4KV0KKyAgICAgICAgICAg
IHJldHVybiBydgorICAgICAgICByZXR1cm4gdmFsdWUKKworICAgIGRlZiB2aXNpdF9OdW1iZXJO
b2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBpZiAiLiIgaW4gbm9kZS5kYXRhOgorICAgICAgICAg
ICAgcmV0dXJuIGxhbWJkYSB4OiBmbG9hdChub2RlLmRhdGEpCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICByZXR1cm4gbGFtYmRhIHg6IGludChub2RlLmRhdGEpCisKKyAgICBkZWYgdmlzaXRf
VmFyaWFibGVOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBpbmRleGVzID0gW3NlbGYudmlzaXQo
Y2hpbGQpIGZvciBjaGlsZCBpbiBub2RlLmNoaWxkcmVuXQorCisgICAgICAgIGRlZiB2YWx1ZSh4
KToKKyAgICAgICAgICAgIGRhdGEgPSB4W25vZGUuZGF0YV0KKyAgICAgICAgICAgIGZvciBpbmRl
eCBpbiBpbmRleGVzOgorICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhW2luZGV4KHgpXQorICAg
ICAgICAgICAgcmV0dXJuIGRhdGEKKyAgICAgICAgcmV0dXJuIHZhbHVlCisKKyAgICBkZWYgdmlz
aXRfSW5kZXhOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBhc3NlcnQgbGVuKG5vZGUuY2hpbGRy
ZW4pID09IDEKKyAgICAgICAgcmV0dXJuIHNlbGYudmlzaXQobm9kZS5jaGlsZHJlblswXSkKKwor
ICAgIGRlZiB2aXNpdF9VbmFyeUV4cHJlc3Npb25Ob2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBh
c3NlcnQgbGVuKG5vZGUuY2hpbGRyZW4pID09IDIKKyAgICAgICAgb3BlcmF0b3IgPSBzZWxmLnZp
c2l0KG5vZGUuY2hpbGRyZW5bMF0pCisgICAgICAgIG9wZXJhbmQgPSBzZWxmLnZpc2l0KG5vZGUu
Y2hpbGRyZW5bMV0pCisKKyAgICAgICAgcmV0dXJuIGxhbWJkYSB4OiBvcGVyYXRvcihvcGVyYW5k
KHgpKQorCisgICAgZGVmIHZpc2l0X0JpbmFyeUV4cHJlc3Npb25Ob2RlKHNlbGYsIG5vZGUpOgor
ICAgICAgICBhc3NlcnQgbGVuKG5vZGUuY2hpbGRyZW4pID09IDMKKyAgICAgICAgb3BlcmF0b3Ig
PSBzZWxmLnZpc2l0KG5vZGUuY2hpbGRyZW5bMF0pCisgICAgICAgIG9wZXJhbmRfMCA9IHNlbGYu
dmlzaXQobm9kZS5jaGlsZHJlblsxXSkKKyAgICAgICAgb3BlcmFuZF8xID0gc2VsZi52aXNpdChu
b2RlLmNoaWxkcmVuWzJdKQorCisgICAgICAgIGFzc2VydCBvcGVyYW5kXzAgaXMgbm90IE5vbmUK
KyAgICAgICAgYXNzZXJ0IG9wZXJhbmRfMSBpcyBub3QgTm9uZQorCisgICAgICAgIHJldHVybiBs
YW1iZGEgeDogb3BlcmF0b3Iob3BlcmFuZF8wKHgpLCBvcGVyYW5kXzEoeCkpCisKKyAgICBkZWYg
dmlzaXRfVW5hcnlPcGVyYXRvck5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIHJldHVybiB7Im5v
dCI6IG9wZXJhdG9yLm5vdF99W25vZGUuZGF0YV0KKworICAgIGRlZiB2aXNpdF9CaW5hcnlPcGVy
YXRvck5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIHJldHVybiB7ImFuZCI6IG9wZXJhdG9yLmFu
ZF8sCisgICAgICAgICAgICAgICAgIm9yIjogb3BlcmF0b3Iub3JfLAorICAgICAgICAgICAgICAg
ICI9PSI6IG9wZXJhdG9yLmVxLAorICAgICAgICAgICAgICAgICIhPSI6IG9wZXJhdG9yLm5lfVtu
b2RlLmRhdGFdCisKKworY2xhc3MgTWFuaWZlc3RJdGVtKG9iamVjdCk6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIG5vZGU9Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICBzZWxmLm5vZGUgPSBub2Rl
CisgICAgICAgIHNlbGYucGFyZW50ID0gTm9uZQorICAgICAgICBzZWxmLmNoaWxkcmVuID0gW10K
KyAgICAgICAgc2VsZi5fZGF0YSA9IHt9CisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAg
ICAgIHJldHVybiAiPE1hbmlmZXN0SXRlbSAlcz4iICUgKHNlbGYubm9kZS5kYXRhKQorCisgICAg
ZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHJ2ID0gW3JlcHIoc2VsZildCisgICAgICAgIGZv
ciBpdGVtIGluIHNlbGYuY2hpbGRyZW46CisgICAgICAgICAgICBydi5leHRlbmQoIiAgJXMiICUg
bGluZSBmb3IgbGluZSBpbiBzdHIoaXRlbSkuc3BsaXQoIlxuIikpCisgICAgICAgIHJldHVybiAi
XG4iLmpvaW4ocnYpCisKKyAgICBkZWYgX19jb250YWluc19fKHNlbGYsIGtleSk6CisgICAgICAg
IHJldHVybiBrZXkgaW4gc2VsZi5fZGF0YQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGlzX2Vt
cHR5KHNlbGYpOgorICAgICAgICBpZiBzZWxmLl9kYXRhOgorICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCisgICAgICAgIHJldHVybiBhbGwoY2hpbGQuaXNfZW1wdHkgZm9yIGNoaWxkIGluIHNlbGYu
Y2hpbGRyZW4pCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcm9vdChzZWxmKToKKyAgICAgICAg
bm9kZSA9IHNlbGYKKyAgICAgICAgd2hpbGUgbm9kZS5wYXJlbnQgaXMgbm90IE5vbmU6CisgICAg
ICAgICAgICBub2RlID0gbm9kZS5wYXJlbnQKKyAgICAgICAgcmV0dXJuIG5vZGUKKworICAgIEBw
cm9wZXJ0eQorICAgIGRlZiBuYW1lKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5ub2RlLmRh
dGEKKworICAgIGRlZiBoYXNfa2V5KHNlbGYsIGtleSk6CisgICAgICAgIGZvciBub2RlIGluIFtz
ZWxmLCBzZWxmLnJvb3RdOgorICAgICAgICAgICAgaWYga2V5IGluIG5vZGUuX2RhdGE6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYg
Z2V0KHNlbGYsIGtleSwgcnVuX2luZm89Tm9uZSk6CisgICAgICAgIGlmIHJ1bl9pbmZvIGlzIE5v
bmU6CisgICAgICAgICAgICBydW5faW5mbyA9IHt9CisKKyAgICAgICAgZm9yIG5vZGUgaW4gW3Nl
bGYsIHNlbGYucm9vdF06CisgICAgICAgICAgICBpZiBrZXkgaW4gbm9kZS5fZGF0YToKKyAgICAg
ICAgICAgICAgICBmb3IgY29uZF92YWx1ZSBpbiBub2RlLl9kYXRhW2tleV06CisgICAgICAgICAg
ICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoZXMgPSBjb25kX3Zh
bHVlKHJ1bl9pbmZvKQorICAgICAgICAgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAg
ICAgICAgICAgICAgICAgICAgICBtYXRjaGVzID0gRmFsc2UKKyAgICAgICAgICAgICAgICAgICAg
aWYgbWF0Y2hlczoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb25kX3ZhbHVlLnZh
bHVlCisgICAgICAgIHJhaXNlIEtleUVycm9yCisKKyAgICBkZWYgc2V0KHNlbGYsIGtleSwgdmFs
dWUsIGNvbmRpdGlvbj1Ob25lKToKKyAgICAgICAgIyBGaXJzdCB0cnkgdG8gdXBkYXRlIHRoZSBl
eGlzdGluZyB2YWx1ZQorICAgICAgICBpZiBrZXkgaW4gc2VsZi5fZGF0YToKKyAgICAgICAgICAg
IGNvbmRfdmFsdWVzID0gc2VsZi5fZGF0YVtrZXldCisgICAgICAgICAgICBmb3IgY29uZF92YWx1
ZSBpbiBjb25kX3ZhbHVlczoKKyAgICAgICAgICAgICAgICBpZiBjb25kX3ZhbHVlLmNvbmRpdGlv
bl9ub2RlID09IGNvbmRpdGlvbjoKKyAgICAgICAgICAgICAgICAgICAgY29uZF92YWx1ZS52YWx1
ZSA9IHZhbHVlCisgICAgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgIyBJZiB0
aGVyZSBpc24ndCBhIGNvbmRpdGlvbmFsIG1hdGNoIHJldXNlIHRoZSBleGlzdGluZyBLZXlWYWx1
ZU5vZGUgYXMgdGhlCisgICAgICAgICAgICAjIHBhcmVudAorICAgICAgICAgICAgbm9kZSA9IE5v
bmUKKyAgICAgICAgICAgIGZvciBjaGlsZCBpbiBzZWxmLm5vZGUuY2hpbGRyZW46CisgICAgICAg
ICAgICAgICAgaWYgY2hpbGQuZGF0YSA9PSBrZXk6CisgICAgICAgICAgICAgICAgICAgIG5vZGUg
PSBjaGlsZAorICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgYXNzZXJ0IG5v
ZGUgaXMgbm90IE5vbmUKKworICAgICAgICBlbHNlOgorICAgICAgICAgICAgbm9kZSA9IEtleVZh
bHVlTm9kZShrZXkpCisgICAgICAgICAgICBzZWxmLm5vZGUuYXBwZW5kKG5vZGUpCisKKyAgICAg
ICAgdmFsdWVfbm9kZSA9IFZhbHVlTm9kZSh2YWx1ZSkKKyAgICAgICAgaWYgY29uZGl0aW9uIGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgY29uZGl0aW9uYWxfbm9kZSA9IENvbmRpdGlvbmFsTm9k
ZSgpCisgICAgICAgICAgICBjb25kaXRpb25hbF9ub2RlLmFwcGVuZChjb25kaXRpb24pCisgICAg
ICAgICAgICBjb25kaXRpb25hbF9ub2RlLmFwcGVuZCh2YWx1ZV9ub2RlKQorICAgICAgICAgICAg
bm9kZS5hcHBlbmQoY29uZGl0aW9uYWxfbm9kZSkKKyAgICAgICAgICAgIGNvbmRfdmFsdWUgPSBD
b21waWxlcigpLmNvbXBpbGVfY29uZGl0aW9uKGNvbmRpdGlvbmFsX25vZGUpCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICBub2RlLmFwcGVuZCh2YWx1ZV9ub2RlKQorICAgICAgICAgICAgY29u
ZF92YWx1ZSA9IENvbmRpdGlvbmFsVmFsdWUodmFsdWVfbm9kZSwgbGFtYmRhIHg6IFRydWUpCisK
KyAgICAgICAgIyBVcGRhdGUgdGhlIGNhY2hlIG9mIGNoaWxkIHZhbHVlcy4gVGhpcyBpcyBwcmV0
dHkgYW5ub3lpbmcgYW5kIG1heWJlCisgICAgICAgICMgaXQgc2hvdWxkIGp1c3Qgd29yayBkaXJl
Y3RseSBvbiB0aGUgdHJlZQorICAgICAgICBpZiBrZXkgbm90IGluIHNlbGYuX2RhdGE6CisgICAg
ICAgICAgICBzZWxmLl9kYXRhW2tleV0gPSBbXQorICAgICAgICBpZiBzZWxmLl9kYXRhW2tleV0g
YW5kIHNlbGYuX2RhdGFba2V5XVstMV0uY29uZGl0aW9uX25vZGUgaXMgTm9uZToKKyAgICAgICAg
ICAgIHNlbGYuX2RhdGFba2V5XS5pbnNlcnQobGVuKHNlbGYuX2RhdGFba2V5XSkgLSAxLCBjb25k
X3ZhbHVlKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fZGF0YVtrZXldLmFwcGVu
ZChjb25kX3ZhbHVlKQorCisgICAgZGVmIF9hZGRfa2V5X3ZhbHVlKHNlbGYsIG5vZGUsIHZhbHVl
cyk6CisgICAgICAgICIiIkNhbGxlZCBkdXJpbmcgY29uc3RydWN0aW9uIHRvIHNldCBhIGtleS12
YWx1ZSBub2RlIiIiCisgICAgICAgIHNlbGYuX2RhdGFbbm9kZS5kYXRhXSA9IHZhbHVlcworCisg
ICAgZGVmIGFwcGVuZChzZWxmLCBjaGlsZCk6CisgICAgICAgIHNlbGYuY2hpbGRyZW4uYXBwZW5k
KGNoaWxkKQorICAgICAgICBjaGlsZC5wYXJlbnQgPSBzZWxmCisgICAgICAgIGlmIGNoaWxkLm5v
ZGUucGFyZW50ICE9IHNlbGYubm9kZToKKyAgICAgICAgICAgIHNlbGYubm9kZS5hcHBlbmQoY2hp
bGQubm9kZSkKKyAgICAgICAgcmV0dXJuIGNoaWxkCisKKyAgICBkZWYgcmVtb3ZlKHNlbGYpOgor
ICAgICAgICBpZiBzZWxmLnBhcmVudDoKKyAgICAgICAgICAgIHNlbGYucGFyZW50Ll9yZW1vdmVf
Y2hpbGQoc2VsZikKKworICAgIGRlZiBfcmVtb3ZlX2NoaWxkKHNlbGYsIGNoaWxkKToKKyAgICAg
ICAgc2VsZi5jaGlsZHJlbi5yZW1vdmUoY2hpbGQpCisgICAgICAgIGNoaWxkLnBhcmVudCA9IE5v
bmUKKworICAgIGRlZiBpdGVyY2hpbGRyZW4oc2VsZiwgbmFtZT1Ob25lKToKKyAgICAgICAgZm9y
IGl0ZW0gaW4gc2VsZi5jaGlsZHJlbjoKKyAgICAgICAgICAgIGlmIGl0ZW0ubmFtZSA9PSBuYW1l
IG9yIG5hbWUgaXMgTm9uZToKKyAgICAgICAgICAgICAgICB5aWVsZCBpdGVtCisKKyAgICBkZWYg
X2ZsYXR0ZW4oc2VsZik6CisgICAgICAgIHJ2ID0ge30KKyAgICAgICAgZm9yIG5vZGUgaW4gW3Nl
bGYsIHNlbGYucm9vdF06CisgICAgICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gbm9kZS5fZGF0
YS5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgICAgICBpZiBuYW1lIG5vdCBpbiBydjoKKyAgICAg
ICAgICAgICAgICAgICAgcnZbbmFtZV0gPSB2YWx1ZQorICAgICAgICByZXR1cm4gcnYKKworICAg
IGRlZiBpdGVyaXRlbXMoc2VsZik6CisgICAgICAgIGZvciBpdGVtIGluIHNlbGYuX2ZsYXR0ZW4o
KS5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgIHlpZWxkIGl0ZW0KKworICAgIGRlZiBpdGVya2V5
cyhzZWxmKToKKyAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5fZmxhdHRlbigpLml0ZXJrZXlzKCk6
CisgICAgICAgICAgICB5aWVsZCBpdGVtCisKKyAgICBkZWYgcmVtb3ZlX3ZhbHVlKHNlbGYsIGtl
eSwgdmFsdWUpOgorICAgICAgICBzZWxmLl9kYXRhW2tleV0ucmVtb3ZlKHZhbHVlKQorICAgICAg
ICBpZiBub3Qgc2VsZi5fZGF0YVtrZXldOgorICAgICAgICAgICAgZGVsIHNlbGYuX2RhdGFba2V5
XQorICAgICAgICB2YWx1ZS5yZW1vdmUoKQorCisKK2RlZiBjb21waWxlX2FzdChhc3QsIGRhdGFf
Y2xzX2dldHRlcj1Ob25lLCAqKmt3YXJncyk6CisgICAgcmV0dXJuIENvbXBpbGVyKCkuY29tcGls
ZShhc3QsIGRhdGFfY2xzX2dldHRlcj1kYXRhX2Nsc19nZXR0ZXIsICoqa3dhcmdzKQorCisKK2Rl
ZiBjb21waWxlKHN0cmVhbSwgZGF0YV9jbHNfZ2V0dGVyPU5vbmUsICoqa3dhcmdzKToKKyAgICBy
ZXR1cm4gY29tcGlsZV9hc3QocGFyc2Uoc3RyZWFtKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ZGF0YV9jbHNfZ2V0dGVyPWRhdGFfY2xzX2dldHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAg
Kiprd2FyZ3MpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMv
c3RhdGljLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL3N0YXRpYy5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iM2NiZWRjMzgxOGVlOGYwNGZiNjlkOTA5ZjJkOGQxOWMzYTVmNTk0Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL3N0YXRpYy5w
eQpAQCAtMCwwICsxLDIyMyBAQAoraW1wb3J0IG9wZXJhdG9yCisKK2Zyb20gLi5ub2RlIGltcG9y
dCBOb2RlVmlzaXRvcgorZnJvbSAuLnBhcnNlciBpbXBvcnQgcGFyc2UKKworCitjbGFzcyBDb21w
aWxlcihOb2RlVmlzaXRvcik6CisgICAgIiIiQ29tcGlsZXIgYmFja2VuZCB0aGF0IGV2YWx1YXRl
cyBjb25kaXRpb25hbCBleHByZXNzaW9ucworICAgIHRvIGdpdmUgc3RhdGljIG91dHB1dCIiIgor
CisgICAgZGVmIGNvbXBpbGUoc2VsZiwgdHJlZSwgZXhwcl9kYXRhLCBkYXRhX2Nsc19nZXR0ZXI9
Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICAiIiJDb21waWxlIGEgcmF3IEFTVCBpbnRvIGEgZm9y
bSB3aXRoIGNvbmRpdGlvbmFsIGV4cHJlc3Npb25zCisgICAgICAgIGV2YWx1YXRlZC4KKworICAg
ICAgICB0cmVlIC0gVGhlIHJvb3Qgbm9kZSBvZiB0aGUgd3B0bWFuaWZlc3QgQVNUIHRvIGNvbXBp
bGUKKworICAgICAgICBleHByX2RhdGEgLSBBIGRpY3Rpb25hcnkgb2Yga2V5IC8gdmFsdWUgcGFp
cnMgdG8gdXNlIHdoZW4KKyAgICAgICAgICAgICAgICAgICAgZXZhbHVhdGluZyBjb25kaXRpb25h
bCBleHByZXNzaW9ucworCisgICAgICAgIGRhdGFfY2xzX2dldHRlciAtIEEgZnVuY3Rpb24gdGFr
aW5nIHR3byBwYXJhbWV0ZXJzOyB0aGUgcHJldmlvdXMKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3V0cHV0IG5vZGUgYW5kIHRoZSBjdXJyZW50IGFzdCBub2RlIGFuZCByZXR1cm5pbmcKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGNsYXNzIG9mIHRoZSBvdXRwdXQgbm9kZSB0byB1
c2UgZm9yIHRoZSBjdXJyZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgIGFzdCBub2RlCisg
ICAgICAgICIiIgorCisgICAgICAgIHNlbGYuX2t3YXJncyA9IGt3YXJncworICAgICAgICBzZWxm
LmV4cHJfZGF0YSA9IGV4cHJfZGF0YQorCisgICAgICAgIGlmIGRhdGFfY2xzX2dldHRlciBpcyBO
b25lOgorICAgICAgICAgICAgc2VsZi5kYXRhX2Nsc19nZXR0ZXIgPSBsYW1iZGEgeCwgeTogTWFu
aWZlc3RJdGVtCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmRhdGFfY2xzX2dldHRl
ciA9IGRhdGFfY2xzX2dldHRlcgorCisgICAgICAgIHNlbGYub3V0cHV0X25vZGUgPSBOb25lCisg
ICAgICAgIHNlbGYudmlzaXQodHJlZSkKKyAgICAgICAgcmV0dXJuIHNlbGYub3V0cHV0X25vZGUK
KworICAgIGRlZiB2aXNpdF9EYXRhTm9kZShzZWxmLCBub2RlKToKKyAgICAgICAgb3V0cHV0X3Bh
cmVudCA9IHNlbGYub3V0cHV0X25vZGUKKyAgICAgICAgaWYgc2VsZi5vdXRwdXRfbm9kZSBpcyBO
b25lOgorICAgICAgICAgICAgYXNzZXJ0IG5vZGUucGFyZW50IGlzIE5vbmUKKyAgICAgICAgICAg
IHNlbGYub3V0cHV0X25vZGUgPSBzZWxmLmRhdGFfY2xzX2dldHRlcihOb25lLCBOb25lKShOb25l
LCAqKnNlbGYuX2t3YXJncykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYub3V0cHV0
X25vZGUgPSBzZWxmLmRhdGFfY2xzX2dldHRlcihzZWxmLm91dHB1dF9ub2RlLCBub2RlKShub2Rl
LmRhdGEpCisKKyAgICAgICAgZm9yIGNoaWxkIGluIG5vZGUuY2hpbGRyZW46CisgICAgICAgICAg
ICBzZWxmLnZpc2l0KGNoaWxkKQorCisgICAgICAgIGlmIG91dHB1dF9wYXJlbnQgaXMgbm90IE5v
bmU6CisgICAgICAgICAgICBvdXRwdXRfcGFyZW50LmFwcGVuZChzZWxmLm91dHB1dF9ub2RlKQor
ICAgICAgICAgICAgc2VsZi5vdXRwdXRfbm9kZSA9IHNlbGYub3V0cHV0X25vZGUucGFyZW50CisK
KyAgICBkZWYgdmlzaXRfS2V5VmFsdWVOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBrZXlfbmFt
ZSA9IG5vZGUuZGF0YQorICAgICAgICBrZXlfdmFsdWUgPSBOb25lCisgICAgICAgIGZvciBjaGls
ZCBpbiBub2RlLmNoaWxkcmVuOgorICAgICAgICAgICAgdmFsdWUgPSBzZWxmLnZpc2l0KGNoaWxk
KQorICAgICAgICAgICAgaWYgdmFsdWUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAga2V5
X3ZhbHVlID0gdmFsdWUKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICBpZiBrZXlfdmFs
dWUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLm91dHB1dF9ub2RlLnNldChrZXlfbmFt
ZSwga2V5X3ZhbHVlKQorCisgICAgZGVmIHZpc2l0X1ZhbHVlTm9kZShzZWxmLCBub2RlKToKKyAg
ICAgICAgcmV0dXJuIG5vZGUuZGF0YQorCisgICAgZGVmIHZpc2l0X0F0b21Ob2RlKHNlbGYsIG5v
ZGUpOgorICAgICAgICByZXR1cm4gbm9kZS5kYXRhCisKKyAgICBkZWYgdmlzaXRfTGlzdE5vZGUo
c2VsZiwgbm9kZSk6CisgICAgICAgIHJldHVybiBbc2VsZi52aXNpdChjaGlsZCkgZm9yIGNoaWxk
IGluIG5vZGUuY2hpbGRyZW5dCisKKyAgICBkZWYgdmlzaXRfQ29uZGl0aW9uYWxOb2RlKHNlbGYs
IG5vZGUpOgorICAgICAgICBhc3NlcnQgbGVuKG5vZGUuY2hpbGRyZW4pID09IDIKKyAgICAgICAg
aWYgc2VsZi52aXNpdChub2RlLmNoaWxkcmVuWzBdKToKKyAgICAgICAgICAgIHJldHVybiBzZWxm
LnZpc2l0KG5vZGUuY2hpbGRyZW5bMV0pCisKKyAgICBkZWYgdmlzaXRfU3RyaW5nTm9kZShzZWxm
LCBub2RlKToKKyAgICAgICAgdmFsdWUgPSBub2RlLmRhdGEKKyAgICAgICAgZm9yIGNoaWxkIGlu
IG5vZGUuY2hpbGRyZW46CisgICAgICAgICAgICB2YWx1ZSA9IHNlbGYudmlzaXQoY2hpbGQpKHZh
bHVlKQorICAgICAgICByZXR1cm4gdmFsdWUKKworICAgIGRlZiB2aXNpdF9OdW1iZXJOb2RlKHNl
bGYsIG5vZGUpOgorICAgICAgICBpZiAiLiIgaW4gbm9kZS5kYXRhOgorICAgICAgICAgICAgcmV0
dXJuIGZsb2F0KG5vZGUuZGF0YSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBp
bnQobm9kZS5kYXRhKQorCisgICAgZGVmIHZpc2l0X1ZhcmlhYmxlTm9kZShzZWxmLCBub2RlKToK
KyAgICAgICAgdmFsdWUgPSBzZWxmLmV4cHJfZGF0YVtub2RlLmRhdGFdCisgICAgICAgIGZvciBj
aGlsZCBpbiBub2RlLmNoaWxkcmVuOgorICAgICAgICAgICAgdmFsdWUgPSBzZWxmLnZpc2l0KGNo
aWxkKSh2YWx1ZSkKKyAgICAgICAgcmV0dXJuIHZhbHVlCisKKyAgICBkZWYgdmlzaXRfSW5kZXhO
b2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBhc3NlcnQgbGVuKG5vZGUuY2hpbGRyZW4pID09IDEK
KyAgICAgICAgaW5kZXggPSBzZWxmLnZpc2l0KG5vZGUuY2hpbGRyZW5bMF0pCisgICAgICAgIHJl
dHVybiBsYW1iZGEgeDogeFtpbmRleF0KKworICAgIGRlZiB2aXNpdF9VbmFyeUV4cHJlc3Npb25O
b2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBhc3NlcnQgbGVuKG5vZGUuY2hpbGRyZW4pID09IDIK
KyAgICAgICAgb3BlcmF0b3IgPSBzZWxmLnZpc2l0KG5vZGUuY2hpbGRyZW5bMF0pCisgICAgICAg
IG9wZXJhbmQgPSBzZWxmLnZpc2l0KG5vZGUuY2hpbGRyZW5bMV0pCisKKyAgICAgICAgcmV0dXJu
IG9wZXJhdG9yKG9wZXJhbmQpCisKKyAgICBkZWYgdmlzaXRfQmluYXJ5RXhwcmVzc2lvbk5vZGUo
c2VsZiwgbm9kZSk6CisgICAgICAgIGFzc2VydCBsZW4obm9kZS5jaGlsZHJlbikgPT0gMworICAg
ICAgICBvcGVyYXRvciA9IHNlbGYudmlzaXQobm9kZS5jaGlsZHJlblswXSkKKyAgICAgICAgb3Bl
cmFuZF8wID0gc2VsZi52aXNpdChub2RlLmNoaWxkcmVuWzFdKQorICAgICAgICBvcGVyYW5kXzEg
PSBzZWxmLnZpc2l0KG5vZGUuY2hpbGRyZW5bMl0pCisKKyAgICAgICAgcmV0dXJuIG9wZXJhdG9y
KG9wZXJhbmRfMCwgb3BlcmFuZF8xKQorCisgICAgZGVmIHZpc2l0X1VuYXJ5T3BlcmF0b3JOb2Rl
KHNlbGYsIG5vZGUpOgorICAgICAgICByZXR1cm4geyJub3QiOiBvcGVyYXRvci5ub3RffVtub2Rl
LmRhdGFdCisKKyAgICBkZWYgdmlzaXRfQmluYXJ5T3BlcmF0b3JOb2RlKHNlbGYsIG5vZGUpOgor
ICAgICAgICByZXR1cm4geyJhbmQiOiBvcGVyYXRvci5hbmRfLAorICAgICAgICAgICAgICAgICJv
ciI6IG9wZXJhdG9yLm9yXywKKyAgICAgICAgICAgICAgICAiPT0iOiBvcGVyYXRvci5lcSwKKyAg
ICAgICAgICAgICAgICAiIT0iOiBvcGVyYXRvci5uZX1bbm9kZS5kYXRhXQorCisKK2NsYXNzIE1h
bmlmZXN0SXRlbShvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCAqKmt3YXJn
cyk6CisgICAgICAgIHNlbGYucGFyZW50ID0gTm9uZQorICAgICAgICBzZWxmLm5hbWUgPSBuYW1l
CisgICAgICAgIHNlbGYuY2hpbGRyZW4gPSBbXQorICAgICAgICBzZWxmLl9kYXRhID0ge30KKwor
ICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICI8TWFuaWZlc3RJdGVtICVz
PiIgJSAoc2VsZi5uYW1lKQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHJ2ID0g
W3JlcHIoc2VsZildCisgICAgICAgIGZvciBpdGVtIGluIHNlbGYuY2hpbGRyZW46CisgICAgICAg
ICAgICBydi5leHRlbmQoIiAgJXMiICUgbGluZSBmb3IgbGluZSBpbiBzdHIoaXRlbSkuc3BsaXQo
IlxuIikpCisgICAgICAgIHJldHVybiAiXG4iLmpvaW4ocnYpCisKKyAgICBkZWYgc2V0X2RlZmF1
bHRzKHNlbGYpOgorICAgICAgICBwYXNzCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaXNfZW1w
dHkoc2VsZik6CisgICAgICAgIGlmIHNlbGYuX2RhdGE6CisgICAgICAgICAgICByZXR1cm4gRmFs
c2UKKyAgICAgICAgcmV0dXJuIGFsbChjaGlsZC5pc19lbXB0eSBmb3IgY2hpbGQgaW4gc2VsZi5j
aGlsZHJlbikKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiByb290KHNlbGYpOgorICAgICAgICBu
b2RlID0gc2VsZgorICAgICAgICB3aGlsZSBub2RlLnBhcmVudCBpcyBub3QgTm9uZToKKyAgICAg
ICAgICAgIG5vZGUgPSBub2RlLnBhcmVudAorICAgICAgICByZXR1cm4gbm9kZQorCisgICAgZGVm
IGhhc19rZXkoc2VsZiwga2V5KToKKyAgICAgICAgZm9yIG5vZGUgaW4gW3NlbGYsIHNlbGYucm9v
dF06CisgICAgICAgICAgICBpZiBrZXkgaW4gbm9kZS5fZGF0YToKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gVHJ1ZQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBnZXQoc2VsZiwga2V5
KToKKyAgICAgICAgZm9yIG5vZGUgaW4gW3NlbGYsIHNlbGYucm9vdF06CisgICAgICAgICAgICBp
ZiBrZXkgaW4gbm9kZS5fZGF0YToKKyAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5fZGF0YVtr
ZXldCisgICAgICAgIHJhaXNlIEtleUVycm9yCisKKyAgICBkZWYgc2V0KHNlbGYsIG5hbWUsIHZh
bHVlKToKKyAgICAgICAgc2VsZi5fZGF0YVtuYW1lXSA9IHZhbHVlCisKKyAgICBkZWYgcmVtb3Zl
KHNlbGYpOgorICAgICAgICBpZiBzZWxmLnBhcmVudDoKKyAgICAgICAgICAgIHNlbGYucGFyZW50
Ll9yZW1vdmVfY2hpbGQoc2VsZikKKworICAgIGRlZiBfcmVtb3ZlX2NoaWxkKHNlbGYsIGNoaWxk
KToKKyAgICAgICAgc2VsZi5jaGlsZHJlbi5yZW1vdmUoY2hpbGQpCisgICAgICAgIGNoaWxkLnBh
cmVudCA9IE5vbmUKKworICAgIGRlZiBpdGVyY2hpbGRyZW4oc2VsZiwgbmFtZT1Ob25lKToKKyAg
ICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5jaGlsZHJlbjoKKyAgICAgICAgICAgIGlmIGl0ZW0ubmFt
ZSA9PSBuYW1lIG9yIG5hbWUgaXMgTm9uZToKKyAgICAgICAgICAgICAgICB5aWVsZCBpdGVtCisK
KyAgICBkZWYgX2ZsYXR0ZW4oc2VsZik6CisgICAgICAgIHJ2ID0ge30KKyAgICAgICAgZm9yIG5v
ZGUgaW4gW3NlbGYsIHNlbGYucm9vdF06CisgICAgICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4g
bm9kZS5fZGF0YS5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgICAgICBpZiBuYW1lIG5vdCBpbiBy
djoKKyAgICAgICAgICAgICAgICAgICAgcnZbbmFtZV0gPSB2YWx1ZQorICAgICAgICByZXR1cm4g
cnYKKworICAgIGRlZiBpdGVyaXRlbXMoc2VsZik6CisgICAgICAgIGZvciBpdGVtIGluIHNlbGYu
X2ZsYXR0ZW4oKS5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgIHlpZWxkIGl0ZW0KKworICAgIGRl
ZiBpdGVya2V5cyhzZWxmKToKKyAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5fZmxhdHRlbigpLml0
ZXJrZXlzKCk6CisgICAgICAgICAgICB5aWVsZCBpdGVtCisKKyAgICBkZWYgaXRlcnZhbHVlcyhz
ZWxmKToKKyAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5fZmxhdHRlbigpLml0ZXJ2YWx1ZXMoKToK
KyAgICAgICAgICAgIHlpZWxkIGl0ZW0KKworICAgIGRlZiBhcHBlbmQoc2VsZiwgY2hpbGQpOgor
ICAgICAgICBjaGlsZC5wYXJlbnQgPSBzZWxmCisgICAgICAgIHNlbGYuY2hpbGRyZW4uYXBwZW5k
KGNoaWxkKQorICAgICAgICByZXR1cm4gY2hpbGQKKworCitkZWYgY29tcGlsZV9hc3QoYXN0LCBl
eHByX2RhdGEsIGRhdGFfY2xzX2dldHRlcj1Ob25lLCAqKmt3YXJncyk6CisgICAgcmV0dXJuIENv
bXBpbGVyKCkuY29tcGlsZShhc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBy
X2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhX2Nsc19nZXR0ZXI9ZGF0
YV9jbHNfZ2V0dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCisK
KworZGVmIGNvbXBpbGUoc3RyZWFtLCBleHByX2RhdGEsIGRhdGFfY2xzX2dldHRlcj1Ob25lLCAq
Kmt3YXJncyk6CisgICAgcmV0dXJuIGNvbXBpbGVfYXN0KHBhcnNlKHN0cmVhbSksCisgICAgICAg
ICAgICAgICAgICAgICAgIGV4cHJfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9j
bHNfZ2V0dGVyPWRhdGFfY2xzX2dldHRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgKiprd2Fy
Z3MpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvdzNjLWltcG9ydC5s
b2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTc5M2EyYWRkMDBiYzNmZjViNzVkMjI3OTQ2NzllMTU3NGMxMWNlYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy93M2Mt
aW1wb3J0LmxvZwpAQCAtMCwwICsxLDE5IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05v
bmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFu
aWZlc3QvYmFja2VuZHMvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFj
a2VuZHMvY29uZGl0aW9uYWwucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMv
c3RhdGljLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qvbm9kZS5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9ub2RlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzZTk3OTZjNDMw
YzMzYWEwMzI4NTU5ZjEyMDc5ZjIyMTE4MGQ2NzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvd3B0bWFuaWZlc3Qvbm9kZS5weQpAQCAtMCwwICsxLDE1NyBAQAorY2xhc3MgTm9kZVZp
c2l0b3Iob2JqZWN0KToKKyAgICBkZWYgdmlzaXQoc2VsZiwgbm9kZSk6CisgICAgICAgICMgVGhp
cyBpcyB1Z2x5IGFzIGhlbGwsIGJ1dCB3ZSBkb24ndCBoYXZlIG11bHRpbWV0aG9kcyBhbmQKKyAg
ICAgICAgIyB0aGV5IGFyZW4ndCB0cml2aWFsIHRvIGZha2Ugd2l0aG91dCBhY2Nlc3MgdG8gdGhl
IGNsYXNzCisgICAgICAgICMgb2JqZWN0IGZyb20gdGhlIGNsYXNzIGJvZHkKKyAgICAgICAgZnVu
YyA9IGdldGF0dHIoc2VsZiwgInZpc2l0XyVzIiAlIChub2RlLl9fY2xhc3NfXy5fX25hbWVfXykp
CisgICAgICAgIHJldHVybiBmdW5jKG5vZGUpCisKKworY2xhc3MgTm9kZShvYmplY3QpOgorICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBkYXRhPU5vbmUpOgorICAgICAgICBzZWxmLmRhdGEgPSBkYXRh
CisgICAgICAgIHNlbGYucGFyZW50ID0gTm9uZQorICAgICAgICBzZWxmLmNoaWxkcmVuID0gW10K
KworICAgIGRlZiBhcHBlbmQoc2VsZiwgb3RoZXIpOgorICAgICAgICBvdGhlci5wYXJlbnQgPSBz
ZWxmCisgICAgICAgIHNlbGYuY2hpbGRyZW4uYXBwZW5kKG90aGVyKQorCisgICAgZGVmIHJlbW92
ZShzZWxmKToKKyAgICAgICAgc2VsZi5wYXJlbnQuY2hpbGRyZW4ucmVtb3ZlKHNlbGYpCisKKyAg
ICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAiPCVzICVzPiIgJSAoc2VsZi5f
X2NsYXNzX18uX19uYW1lX18sIHNlbGYuZGF0YSkKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgor
ICAgICAgICBydiA9IFtyZXByKHNlbGYpXQorICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLmNoaWxk
cmVuOgorICAgICAgICAgICAgcnYuZXh0ZW5kKCIgICVzIiAlIGxpbmUgZm9yIGxpbmUgaW4gc3Ry
KGl0ZW0pLnNwbGl0KCJcbiIpKQorICAgICAgICByZXR1cm4gIlxuIi5qb2luKHJ2KQorCisgICAg
ZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIGlmIG5vdCAoc2VsZi5fX2NsYXNzX18g
PT0gb3RoZXIuX19jbGFzc19fIGFuZAorICAgICAgICAgICAgICAgIHNlbGYuZGF0YSA9PSBvdGhl
ci5kYXRhIGFuZAorICAgICAgICAgICAgICAgIGxlbihzZWxmLmNoaWxkcmVuKSA9PSBsZW4ob3Ro
ZXIuY2hpbGRyZW4pKToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBmb3IgY2hp
bGQsIG90aGVyX2NoaWxkIGluIHppcChzZWxmLmNoaWxkcmVuLCBvdGhlci5jaGlsZHJlbik6Cisg
ICAgICAgICAgICBpZiBub3QgY2hpbGQgPT0gb3RoZXJfY2hpbGQ6CisgICAgICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgY29weShzZWxmKToK
KyAgICAgICAgbmV3ID0gc2VsZi5fX2NsYXNzX18oc2VsZi5kYXRhKQorICAgICAgICBmb3IgaXRl
bSBpbiBzZWxmLmNoaWxkcmVuOgorICAgICAgICAgICAgbmV3LmFwcGVuZChpdGVtLmNvcHkoKSkK
KyAgICAgICAgcmV0dXJuIG5ldworCisKK2NsYXNzIERhdGFOb2RlKE5vZGUpOgorICAgIGRlZiBh
cHBlbmQoc2VsZiwgb3RoZXIpOgorICAgICAgICAjIEFwcGVuZCB0aGF0IHJldGFpbnMgdGhlIGlu
dmFyaWFudCB0aGF0IGNoaWxkIGRhdGEgbm9kZXMKKyAgICAgICAgIyBjb21lIGFmdGVyIGNoaWxk
IG5vZGVzIG9mIG90aGVyIHR5cGVzCisgICAgICAgIG90aGVyLnBhcmVudCA9IHNlbGYKKyAgICAg
ICAgaWYgaXNpbnN0YW5jZShvdGhlciwgRGF0YU5vZGUpOgorICAgICAgICAgICAgc2VsZi5jaGls
ZHJlbi5hcHBlbmQob3RoZXIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpbmRleCA9IGxl
bihzZWxmLmNoaWxkcmVuKQorICAgICAgICAgICAgd2hpbGUgaW5kZXggPiAwIGFuZCBpc2luc3Rh
bmNlKHNlbGYuY2hpbGRyZW5baW5kZXggLSAxXSwgRGF0YU5vZGUpOgorICAgICAgICAgICAgICAg
IGluZGV4IC09IDEKKyAgICAgICAgICAgIGZvciBpIGluIHhyYW5nZShpbmRleCk6CisgICAgICAg
ICAgICAgICAgYXNzZXJ0IG90aGVyLmRhdGEgIT0gc2VsZi5jaGlsZHJlbltpXS5kYXRhCisgICAg
ICAgICAgICBzZWxmLmNoaWxkcmVuLmluc2VydChpbmRleCwgb3RoZXIpCisKKworY2xhc3MgS2V5
VmFsdWVOb2RlKE5vZGUpOgorICAgIGRlZiBhcHBlbmQoc2VsZiwgb3RoZXIpOgorICAgICAgICAj
IEFwcGVuZCB0aGF0IHJldGFpbnMgdGhlIGludmFyaWFudCB0aGF0IGNvbmRpdGlvbmFsIG5vZGVz
CisgICAgICAgICMgY29tZSBiZWZvcmUgdW5jb25kaXRpb25hbCBub2RlcworICAgICAgICBvdGhl
ci5wYXJlbnQgPSBzZWxmCisgICAgICAgIGlmIGlzaW5zdGFuY2Uob3RoZXIsIFZhbHVlTm9kZSk6
CisgICAgICAgICAgICBpZiBzZWxmLmNoaWxkcmVuOgorICAgICAgICAgICAgICAgIGFzc2VydCBu
b3QgaXNpbnN0YW5jZShzZWxmLmNoaWxkcmVuWy0xXSwgVmFsdWVOb2RlKQorICAgICAgICAgICAg
c2VsZi5jaGlsZHJlbi5hcHBlbmQob3RoZXIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBp
ZiBzZWxmLmNoaWxkcmVuIGFuZCBpc2luc3RhbmNlKHNlbGYuY2hpbGRyZW5bLTFdLCBWYWx1ZU5v
ZGUpOgorICAgICAgICAgICAgICAgIHNlbGYuY2hpbGRyZW4uaW5zZXJ0KGxlbihzZWxmLmNoaWxk
cmVuKSAtIDEsIG90aGVyKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxm
LmNoaWxkcmVuLmFwcGVuZChvdGhlcikKKworCitjbGFzcyBMaXN0Tm9kZShOb2RlKToKKyAgICBk
ZWYgYXBwZW5kKHNlbGYsIG90aGVyKToKKyAgICAgICAgb3RoZXIucGFyZW50ID0gc2VsZgorICAg
ICAgICBzZWxmLmNoaWxkcmVuLmFwcGVuZChvdGhlcikKKworCitjbGFzcyBWYWx1ZU5vZGUoTm9k
ZSk6CisgICAgZGVmIGFwcGVuZChzZWxmLCBvdGhlcik6CisgICAgICAgIHJhaXNlIFR5cGVFcnJv
cgorCisKK2NsYXNzIEF0b21Ob2RlKFZhbHVlTm9kZSk6CisgICAgcGFzcworCisKK2NsYXNzIENv
bmRpdGlvbmFsTm9kZShOb2RlKToKKyAgICBwYXNzCisKKworY2xhc3MgVW5hcnlFeHByZXNzaW9u
Tm9kZShOb2RlKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgb3BlcmF0b3IsIG9wZXJhbmQpOgor
ICAgICAgICBOb2RlLl9faW5pdF9fKHNlbGYpCisgICAgICAgIHNlbGYuYXBwZW5kKG9wZXJhdG9y
KQorICAgICAgICBzZWxmLmFwcGVuZChvcGVyYW5kKQorCisgICAgZGVmIGFwcGVuZChzZWxmLCBv
dGhlcik6CisgICAgICAgIE5vZGUuYXBwZW5kKHNlbGYsIG90aGVyKQorICAgICAgICBhc3NlcnQg
bGVuKHNlbGYuY2hpbGRyZW4pIDw9IDIKKworICAgIGRlZiBjb3B5KHNlbGYpOgorICAgICAgICBu
ZXcgPSBzZWxmLl9fY2xhc3NfXyhzZWxmLmNoaWxkcmVuWzBdLmNvcHkoKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2VsZi5jaGlsZHJlblsxXS5jb3B5KCkpCisgICAgICAgIHJldHVy
biBuZXcKKworCitjbGFzcyBCaW5hcnlFeHByZXNzaW9uTm9kZShOb2RlKToKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgb3BlcmF0b3IsIG9wZXJhbmRfMCwgb3BlcmFuZF8xKToKKyAgICAgICAgTm9k
ZS5fX2luaXRfXyhzZWxmKQorICAgICAgICBzZWxmLmFwcGVuZChvcGVyYXRvcikKKyAgICAgICAg
c2VsZi5hcHBlbmQob3BlcmFuZF8wKQorICAgICAgICBzZWxmLmFwcGVuZChvcGVyYW5kXzEpCisK
KyAgICBkZWYgYXBwZW5kKHNlbGYsIG90aGVyKToKKyAgICAgICAgTm9kZS5hcHBlbmQoc2VsZiwg
b3RoZXIpCisgICAgICAgIGFzc2VydCBsZW4oc2VsZi5jaGlsZHJlbikgPD0gMworCisgICAgZGVm
IGNvcHkoc2VsZik6CisgICAgICAgIG5ldyA9IHNlbGYuX19jbGFzc19fKHNlbGYuY2hpbGRyZW5b
MF0uY29weSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNoaWxkcmVuWzFd
LmNvcHkoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jaGlsZHJlblsyXS5j
b3B5KCkpCisgICAgICAgIHJldHVybiBuZXcKKworCitjbGFzcyBVbmFyeU9wZXJhdG9yTm9kZShO
b2RlKToKKyAgICBkZWYgYXBwZW5kKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmFpc2UgVHlwZUVy
cm9yCisKKworY2xhc3MgQmluYXJ5T3BlcmF0b3JOb2RlKE5vZGUpOgorICAgIGRlZiBhcHBlbmQo
c2VsZiwgb3RoZXIpOgorICAgICAgICByYWlzZSBUeXBlRXJyb3IKKworCitjbGFzcyBJbmRleE5v
ZGUoTm9kZSk6CisgICAgcGFzcworCisKK2NsYXNzIFZhcmlhYmxlTm9kZShOb2RlKToKKyAgICBw
YXNzCisKKworY2xhc3MgU3RyaW5nTm9kZShOb2RlKToKKyAgICBwYXNzCisKKworY2xhc3MgTnVt
YmVyTm9kZShWYWx1ZU5vZGUpOgorICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93
cHRtYW5pZmVzdC9wYXJzZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvcGFyc2VyLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQ4NGE5MTQzZmE2M2JkZDQ3NDllMWQxYzcxMmU5NDE1YTcwNjNiYWUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvcGFyc2VyLnB5CkBAIC0w
LDAgKzEsNzQ2IEBACisjZGVmYXVsdF92YWx1ZTpmb28KKyNpbmNsdWRlOiBvdGhlci5tYW5pZmVz
dAorIworI1t0ZXN0X25hbWUuanNdCisjICBleHBlY3RlZDogRVJST1IKKyMKKyMgIFtzdWJ0ZXN0
IDFdCisjICAgIGV4cGVjdGVkOgorIyAgICAgIG9zID09IHdpbjogRkFJTCAjVGhpcyBpcyBhIGNv
bW1lbnQKKyMgICAgICBQQVNTCisjCisKKyMgVE9ETzoga2VlcCBjb21tZW50cyBpbiB0aGUgdHJl
ZQorCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHVuaWNvZGVfbGl0ZXJhbHMKKworaW1wb3J0IHR5
cGVzCitmcm9tIGNTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8KKworZnJvbSBub2RlIGltcG9ydCAq
CisKKworY2xhc3MgUGFyc2VFcnJvcihFeGNlcHRpb24pOgorICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBmaWxlbmFtZSwgbGluZSwgZGV0YWlsKToKKyAgICAgICAgc2VsZi5saW5lID0gbGluZQorICAg
ICAgICBzZWxmLmZpbGVuYW1lID0gZmlsZW5hbWUKKyAgICAgICAgc2VsZi5kZXRhaWwgPSBkZXRh
aWwKKyAgICAgICAgc2VsZi5tZXNzYWdlID0gIiVzOiAlcyBsaW5lICVzIiAlIChzZWxmLmRldGFp
bCwgc2VsZi5maWxlbmFtZSwgc2VsZi5saW5lKQorICAgICAgICBFeGNlcHRpb24uX19pbml0X18o
c2VsZiwgc2VsZi5tZXNzYWdlKQorCitlb2wgPSBvYmplY3QKK2dyb3VwX3N0YXJ0ID0gb2JqZWN0
Citncm91cF9lbmQgPSBvYmplY3QKK2RpZ2l0cyA9ICIwMTIzNDU2Nzg5Igorb3Blbl9wYXJlbnMg
PSAiWygiCitjbG9zZV9wYXJlbnMgPSAiXSkiCitwYXJlbnMgPSBvcGVuX3BhcmVucyArIGNsb3Nl
X3BhcmVucworb3BlcmF0b3JfY2hhcnMgPSAiPSEiCisKK3VuYXJ5X29wZXJhdG9ycyA9IFsibm90
Il0KK2JpbmFyeV9vcGVyYXRvcnMgPSBbIj09IiwgIiE9IiwgImFuZCIsICJvciJdCisKK29wZXJh
dG9ycyA9IFsiPT0iLCAiIT0iLCAibm90IiwgImFuZCIsICJvciJdCisKK2F0b21zID0geyJUcnVl
IjogVHJ1ZSwKKyAgICAgICAgICJGYWxzZSI6IEZhbHNlLAorICAgICAgICAgIlJlc2V0Ijogb2Jq
ZWN0KCl9CisKK2RlZiBkZWNvZGUocyk6CisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocywgdW5pY29k
ZSkKKyAgICByZXR1cm4gcworCisKK2RlZiBwcmVjZWRlbmNlKG9wZXJhdG9yX25vZGUpOgorICAg
IHJldHVybiBsZW4ob3BlcmF0b3JzKSAtIG9wZXJhdG9ycy5pbmRleChvcGVyYXRvcl9ub2RlLmRh
dGEpCisKKworY2xhc3MgVG9rZW5UeXBlcyhvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxm
KToKKyAgICAgICAgZm9yIHR5cGUgaW4gWyJncm91cF9zdGFydCIsICJncm91cF9lbmQiLCAicGFy
ZW4iLCAibGlzdF9zdGFydCIsICJsaXN0X2VuZCIsICJzZXBhcmF0b3IiLCAiaWRlbnQiLCAic3Ry
aW5nIiwgIm51bWJlciIsICJhdG9tIiwgImVvZiJdOgorICAgICAgICAgICAgc2V0YXR0cihzZWxm
LCB0eXBlLCB0eXBlKQorCit0b2tlbl90eXBlcyA9IFRva2VuVHlwZXMoKQorCisKK2NsYXNzIFRv
a2VuaXplcihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5y
ZXNldCgpCisKKyAgICBkZWYgcmVzZXQoc2VsZik6CisgICAgICAgIHNlbGYuaW5kZW50X2xldmVs
cyA9IFswXQorICAgICAgICBzZWxmLnN0YXRlID0gc2VsZi5saW5lX3N0YXJ0X3N0YXRlCisgICAg
ICAgIHNlbGYubmV4dF9zdGF0ZSA9IHNlbGYuZGF0YV9saW5lX3N0YXRlCisgICAgICAgIHNlbGYu
bGluZV9udW1iZXIgPSAwCisKKyAgICBkZWYgdG9rZW5pemUoc2VsZiwgc3RyZWFtKToKKyAgICAg
ICAgc2VsZi5yZXNldCgpCisgICAgICAgIGFzc2VydCBub3QgaXNpbnN0YW5jZShzdHJlYW0sIHVu
aWNvZGUpCisgICAgICAgIGlmIGlzaW5zdGFuY2Uoc3RyZWFtLCBzdHIpOgorICAgICAgICAgICAg
c3RyZWFtID0gU3RyaW5nSU8oc3RyZWFtKQorICAgICAgICBpZiBub3QgaGFzYXR0cihzdHJlYW0s
ICJuYW1lIik6CisgICAgICAgICAgICBzZWxmLmZpbGVuYW1lID0gIiIKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIHNlbGYuZmlsZW5hbWUgPSBzdHJlYW0ubmFtZQorCisgICAgICAgIHNlbGYu
bmV4dF9saW5lX3N0YXRlID0gc2VsZi5saW5lX3N0YXJ0X3N0YXRlCisgICAgICAgIGZvciBpLCBs
aW5lIGluIGVudW1lcmF0ZShzdHJlYW0pOgorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
bGluZSwgc3RyKQorICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IHNlbGYubmV4dF9saW5lX3N0YXRl
CisgICAgICAgICAgICBhc3NlcnQgc2VsZi5zdGF0ZSBpcyBub3QgTm9uZQorICAgICAgICAgICAg
c3RhdGVzID0gW10KKyAgICAgICAgICAgIHNlbGYubmV4dF9saW5lX3N0YXRlID0gTm9uZQorICAg
ICAgICAgICAgc2VsZi5saW5lX251bWJlciA9IGkgKyAxCisgICAgICAgICAgICBzZWxmLmluZGV4
ID0gMAorICAgICAgICAgICAgc2VsZi5saW5lID0gbGluZS5kZWNvZGUoJ3V0Zi04JykucnN0cmlw
KCkKKyAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHNlbGYubGluZSwgdW5pY29kZSkKKyAg
ICAgICAgICAgIHdoaWxlIHNlbGYuc3RhdGUgIT0gc2VsZi5lb2xfc3RhdGU6CisgICAgICAgICAg
ICAgICAgc3RhdGVzLmFwcGVuZChzZWxmLnN0YXRlKQorICAgICAgICAgICAgICAgIHRva2VucyA9
IHNlbGYuc3RhdGUoKQorICAgICAgICAgICAgICAgIGlmIHRva2VuczoKKyAgICAgICAgICAgICAg
ICAgICAgZm9yIHRva2VuIGluIHRva2VuczoKKyAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxk
IHRva2VuCisgICAgICAgICAgICBzZWxmLnN0YXRlKCkKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAg
ICAgICAgICAgIHlpZWxkICh0b2tlbl90eXBlcy5lb2YsIE5vbmUpCisKKyAgICBkZWYgY2hhcihz
ZWxmKToKKyAgICAgICAgaWYgc2VsZi5pbmRleCA9PSBsZW4oc2VsZi5saW5lKToKKyAgICAgICAg
ICAgIHJldHVybiBlb2wKKyAgICAgICAgcmV0dXJuIHNlbGYubGluZVtzZWxmLmluZGV4XQorCisg
ICAgZGVmIGNvbnN1bWUoc2VsZik6CisgICAgICAgIGlmIHNlbGYuaW5kZXggPCBsZW4oc2VsZi5s
aW5lKToKKyAgICAgICAgICAgIHNlbGYuaW5kZXggKz0gMQorCisgICAgZGVmIHBlZWsoc2VsZiwg
bGVuZ3RoKToKKyAgICAgICAgcmV0dXJuIHNlbGYubGluZVtzZWxmLmluZGV4OnNlbGYuaW5kZXgg
KyBsZW5ndGhdCisKKyAgICBkZWYgc2tpcF93aGl0ZXNwYWNlKHNlbGYpOgorICAgICAgICB3aGls
ZSBzZWxmLmNoYXIoKSA9PSAiICI6CisgICAgICAgICAgICBzZWxmLmNvbnN1bWUoKQorCisgICAg
ZGVmIGVvbF9zdGF0ZShzZWxmKToKKyAgICAgICAgaWYgc2VsZi5uZXh0X2xpbmVfc3RhdGUgaXMg
Tm9uZToKKyAgICAgICAgICAgIHNlbGYubmV4dF9saW5lX3N0YXRlID0gc2VsZi5saW5lX3N0YXJ0
X3N0YXRlCisKKyAgICBkZWYgbGluZV9zdGFydF9zdGF0ZShzZWxmKToKKyAgICAgICAgc2VsZi5z
a2lwX3doaXRlc3BhY2UoKQorICAgICAgICBpZiBzZWxmLmNoYXIoKSA9PSBlb2w6CisgICAgICAg
ICAgICBzZWxmLnN0YXRlID0gc2VsZi5lb2xfc3RhdGUKKyAgICAgICAgICAgIHJldHVybgorICAg
ICAgICBpZiBzZWxmLmluZGV4ID4gc2VsZi5pbmRlbnRfbGV2ZWxzWy0xXToKKyAgICAgICAgICAg
IHNlbGYuaW5kZW50X2xldmVscy5hcHBlbmQoc2VsZi5pbmRleCkKKyAgICAgICAgICAgIHlpZWxk
ICh0b2tlbl90eXBlcy5ncm91cF9zdGFydCwgTm9uZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIHdoaWxlIHNlbGYuaW5kZXggPCBzZWxmLmluZGVudF9sZXZlbHNbLTFdOgorICAgICAgICAg
ICAgICAgIHNlbGYuaW5kZW50X2xldmVscy5wb3AoKQorICAgICAgICAgICAgICAgIHlpZWxkICh0
b2tlbl90eXBlcy5ncm91cF9lbmQsIE5vbmUpCisgICAgICAgICAgICAgICAgIyBUaGlzIGlzIHRl
cnJpYmxlOyBpZiB3ZSB3ZXJlIHBhcnNpbmcgYW4gZXhwcmVzc2lvbgorICAgICAgICAgICAgICAg
ICMgdGhlbiB0aGUgbmV4dF9zdGF0ZSB3aWxsIGJlIGV4cHJfb3JfdmFsdWUgYnV0IHdoZW4gd2Ug
ZGVpbmRlbnQKKyAgICAgICAgICAgICAgICAjIGl0IG11c3QgYWx3YXlzIGJlIGEgaGVhZGluZyBv
ciBrZXkgbmV4dCBzbyB3ZSBnbyBiYWNrIHRvIGRhdGFfbGluZV9zdGF0ZQorICAgICAgICAgICAg
ICAgIHNlbGYubmV4dF9zdGF0ZSA9IHNlbGYuZGF0YV9saW5lX3N0YXRlCisgICAgICAgICAgICBp
ZiBzZWxmLmluZGV4ICE9IHNlbGYuaW5kZW50X2xldmVsc1stMV06CisgICAgICAgICAgICAgICAg
cmFpc2UgUGFyc2VFcnJvcihzZWxmLmZpbGVuYW1lLCBzZWxmLmxpbmVfbnVtYmVyLCAiVW5leHBl
Y3RlZCBpbmRlbnQiKQorCisgICAgICAgIHNlbGYuc3RhdGUgPSBzZWxmLm5leHRfc3RhdGUKKwor
ICAgIGRlZiBkYXRhX2xpbmVfc3RhdGUoc2VsZik6CisgICAgICAgIGlmIHNlbGYuY2hhcigpID09
ICJbIjoKKyAgICAgICAgICAgIHlpZWxkICh0b2tlbl90eXBlcy5wYXJlbiwgc2VsZi5jaGFyKCkp
CisgICAgICAgICAgICBzZWxmLmNvbnN1bWUoKQorICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IHNl
bGYuaGVhZGluZ19zdGF0ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5zdGF0ZSA9
IHNlbGYua2V5X3N0YXRlCisKKyAgICBkZWYgaGVhZGluZ19zdGF0ZShzZWxmKToKKyAgICAgICAg
cnYgPSAiIgorICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgYyA9IHNlbGYuY2hhcigp
CisgICAgICAgICAgICBpZiBjID09ICJcXCI6CisgICAgICAgICAgICAgICAgcnYgKz0gc2VsZi5j
b25zdW1lX2VzY2FwZSgpCisgICAgICAgICAgICBlbGlmIGMgPT0gIl0iOgorICAgICAgICAgICAg
ICAgIGJyZWFrCisgICAgICAgICAgICBlbGlmIGMgPT0gZW9sOgorICAgICAgICAgICAgICAgIHJh
aXNlIFBhcnNlRXJyb3Ioc2VsZi5maWxlbmFtZSwgc2VsZi5saW5lX251bWJlciwgIkVPTCBpbiBo
ZWFkaW5nIikKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcnYgKz0gYworICAg
ICAgICAgICAgICAgIHNlbGYuY29uc3VtZSgpCisKKyAgICAgICAgeWllbGQgKHRva2VuX3R5cGVz
LnN0cmluZywgZGVjb2RlKHJ2KSkKKyAgICAgICAgeWllbGQgKHRva2VuX3R5cGVzLnBhcmVuLCAi
XSIpCisgICAgICAgIHNlbGYuY29uc3VtZSgpCisgICAgICAgIHNlbGYuc3RhdGUgPSBzZWxmLmxp
bmVfZW5kX3N0YXRlCisgICAgICAgIHNlbGYubmV4dF9zdGF0ZSA9IHNlbGYuZGF0YV9saW5lX3N0
YXRlCisKKyAgICBkZWYga2V5X3N0YXRlKHNlbGYpOgorICAgICAgICBydiA9ICIiCisgICAgICAg
IHdoaWxlIFRydWU6CisgICAgICAgICAgICBjID0gc2VsZi5jaGFyKCkKKyAgICAgICAgICAgIGlm
IGMgPT0gIiAiOgorICAgICAgICAgICAgICAgIHNlbGYuc2tpcF93aGl0ZXNwYWNlKCkKKyAgICAg
ICAgICAgICAgICBpZiBzZWxmLmNoYXIoKSAhPSAiOiI6CisgICAgICAgICAgICAgICAgICAgIHJh
aXNlIFBhcnNlRXJyb3Ioc2VsZi5maWxlbmFtZSwgc2VsZi5saW5lX251bWJlciwgIlNwYWNlIGlu
IGtleSBuYW1lIikKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgZWxpZiBjID09
ICI6IjoKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgZWxpZiBjID09IGVvbDoK
KyAgICAgICAgICAgICAgICByYWlzZSBQYXJzZUVycm9yKHNlbGYuZmlsZW5hbWUsIHNlbGYubGlu
ZV9udW1iZXIsICJFT0wgaW4ga2V5IG5hbWUgKG1pc3NpbmcgJzonPykiKQorICAgICAgICAgICAg
ZWxpZiBjID09ICJcXCI6CisgICAgICAgICAgICAgICAgcnYgKz0gc2VsZi5jb25zdW1lX2VzY2Fw
ZSgpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJ2ICs9IGMKKyAgICAgICAg
ICAgICAgICBzZWxmLmNvbnN1bWUoKQorICAgICAgICB5aWVsZCAodG9rZW5fdHlwZXMuc3RyaW5n
LCBkZWNvZGUocnYpKQorICAgICAgICB5aWVsZCAodG9rZW5fdHlwZXMuc2VwYXJhdG9yLCAiOiIp
CisgICAgICAgIHNlbGYuY29uc3VtZSgpCisgICAgICAgIHNlbGYuc3RhdGUgPSBzZWxmLmFmdGVy
X2tleV9zdGF0ZQorCisgICAgZGVmIGFmdGVyX2tleV9zdGF0ZShzZWxmKToKKyAgICAgICAgc2Vs
Zi5za2lwX3doaXRlc3BhY2UoKQorICAgICAgICBjID0gc2VsZi5jaGFyKCkKKyAgICAgICAgaWYg
YyA9PSAiIyI6CisgICAgICAgICAgICBzZWxmLm5leHRfc3RhdGUgPSBzZWxmLmV4cHJfb3JfdmFs
dWVfc3RhdGUKKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSBzZWxmLmNvbW1lbnRfc3RhdGUKKyAg
ICAgICAgZWxpZiBjID09IGVvbDoKKyAgICAgICAgICAgIHNlbGYubmV4dF9zdGF0ZSA9IHNlbGYu
ZXhwcl9vcl92YWx1ZV9zdGF0ZQorICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IHNlbGYuZW9sX3N0
YXRlCisgICAgICAgIGVsaWYgYyA9PSAiWyI6CisgICAgICAgICAgICBzZWxmLnN0YXRlID0gc2Vs
Zi5saXN0X3N0YXJ0X3N0YXRlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnN0YXRl
ID0gc2VsZi52YWx1ZV9zdGF0ZQorCisgICAgZGVmIGxpc3Rfc3RhcnRfc3RhdGUoc2VsZik6Cisg
ICAgICAgIHlpZWxkICh0b2tlbl90eXBlcy5saXN0X3N0YXJ0LCAiWyIpCisgICAgICAgIHNlbGYu
Y29uc3VtZSgpCisgICAgICAgIHNlbGYuc3RhdGUgPSBzZWxmLmxpc3RfdmFsdWVfc3RhcnRfc3Rh
dGUKKworICAgIGRlZiBsaXN0X3ZhbHVlX3N0YXJ0X3N0YXRlKHNlbGYpOgorICAgICAgICBzZWxm
LnNraXBfd2hpdGVzcGFjZSgpCisgICAgICAgIGlmIHNlbGYuY2hhcigpID09ICJdIjoKKyAgICAg
ICAgICAgIHNlbGYuc3RhdGUgPSBzZWxmLmxpc3RfZW5kX3N0YXRlCisgICAgICAgIGVsaWYgc2Vs
Zi5jaGFyKCkgaW4gKCInIiwgJyInKToKKyAgICAgICAgICAgIHF1b3RlX2NoYXIgPSBzZWxmLmNo
YXIoKQorICAgICAgICAgICAgc2VsZi5jb25zdW1lKCkKKyAgICAgICAgICAgIHlpZWxkICh0b2tl
bl90eXBlcy5zdHJpbmcsIHNlbGYuY29uc3VtZV9zdHJpbmcocXVvdGVfY2hhcikpCisgICAgICAg
ICAgICBzZWxmLnNraXBfd2hpdGVzcGFjZSgpCisgICAgICAgICAgICBpZiBzZWxmLmNoYXIoKSA9
PSAiXSI6CisgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IHNlbGYubGlzdF9lbmRfc3RhdGUK
KyAgICAgICAgICAgIGVsaWYgc2VsZi5jaGFyKCkgIT0gIiwiOgorICAgICAgICAgICAgICAgIHJh
aXNlIFBhcnNlRXJyb3Ioc2VsZi5maWxlbmFtZSwgc2VsZi5saW5lX251bWJlciwgIkp1bmsgYWZ0
ZXIgcXVvdGVkIHN0cmluZyIpCisgICAgICAgICAgICBzZWxmLmNvbnN1bWUoKQorICAgICAgICBl
bGlmIHNlbGYuY2hhcigpID09ICIjIjoKKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSBzZWxmLmNv
bW1lbnRfc3RhdGUKKyAgICAgICAgICAgIHNlbGYubmV4dF9saW5lX3N0YXRlID0gc2VsZi5saXN0
X3ZhbHVlX3N0YXJ0X3N0YXRlCisgICAgICAgIGVsaWYgc2VsZi5jaGFyKCkgPT0gZW9sOgorICAg
ICAgICAgICAgc2VsZi5uZXh0X2xpbmVfc3RhdGUgPSBzZWxmLmxpc3RfdmFsdWVfc3RhcnRfc3Rh
dGUKKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSBzZWxmLmVvbF9zdGF0ZQorICAgICAgICBlbGlm
IHNlbGYuY2hhcigpID09ICIsIjoKKyAgICAgICAgICAgIHJhaXNlIFBhcnNlRXJyb3Ioc2VsZi5m
aWxlbmFtZSwgc2VsZi5saW5lX251bWJlciwgIkxpc3QgaXRlbSBzdGFydGVkIHdpdGggc2VwYXJh
dG9yIikKKyAgICAgICAgZWxpZiBzZWxmLmNoYXIoKSA9PSAiQCI6CisgICAgICAgICAgICBzZWxm
LnN0YXRlID0gc2VsZi5saXN0X3ZhbHVlX2F0b21fc3RhdGUKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIHNlbGYuc3RhdGUgPSBzZWxmLmxpc3RfdmFsdWVfc3RhdGUKKworICAgIGRlZiBsaXN0
X3ZhbHVlX3N0YXRlKHNlbGYpOgorICAgICAgICBydiA9ICIiCisgICAgICAgIHNwYWNlcyA9IDAK
KyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIGMgPSBzZWxmLmNoYXIoKQorICAgICAg
ICAgICAgaWYgYyA9PSAiXFwiOgorICAgICAgICAgICAgICAgIGVzY2FwZSA9IHNlbGYuY29uc3Vt
ZV9lc2NhcGUoKQorICAgICAgICAgICAgICAgIHJ2ICs9IGVzY2FwZQorICAgICAgICAgICAgZWxp
ZiBjID09IGVvbDoKKyAgICAgICAgICAgICAgICByYWlzZSBQYXJzZUVycm9yKHNlbGYuZmlsZW5h
bWUsIHNlbGYubGluZV9udW1iZXIsICJFT0wgaW4gbGlzdCB2YWx1ZSIpCisgICAgICAgICAgICBl
bGlmIGMgPT0gIiMiOgorICAgICAgICAgICAgICAgIHJhaXNlIFBhcnNlRXJyb3Ioc2VsZi5maWxl
bmFtZSwgc2VsZi5saW5lX251bWJlciwgIkVPTCBpbiBsaXN0IHZhbHVlIChjb21tZW50KSIpCisg
ICAgICAgICAgICBlbGlmIGMgPT0gIiwiOgorICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSBz
ZWxmLmxpc3RfdmFsdWVfc3RhcnRfc3RhdGUKKyAgICAgICAgICAgICAgICBzZWxmLmNvbnN1bWUo
KQorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBlbGlmIGMgPT0gIiAiOgorICAg
ICAgICAgICAgICAgIHNwYWNlcyArPSAxCisgICAgICAgICAgICAgICAgc2VsZi5jb25zdW1lKCkK
KyAgICAgICAgICAgIGVsaWYgYyA9PSAiXSI6CisgICAgICAgICAgICAgICAgc2VsZi5zdGF0ZSA9
IHNlbGYubGlzdF9lbmRfc3RhdGUKKyAgICAgICAgICAgICAgICBzZWxmLmNvbnN1bWUoKQorICAg
ICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJ2
ICs9ICIgIiAqIHNwYWNlcworICAgICAgICAgICAgICAgIHNwYWNlcyA9IDAKKyAgICAgICAgICAg
ICAgICBydiArPSBjCisgICAgICAgICAgICAgICAgc2VsZi5jb25zdW1lKCkKKworICAgICAgICBp
ZiBydjoKKyAgICAgICAgICAgIHlpZWxkICh0b2tlbl90eXBlcy5zdHJpbmcsIGRlY29kZShydikp
CisKKyAgICBkZWYgbGlzdF92YWx1ZV9hdG9tX3N0YXRlKHNlbGYpOgorICAgICAgICBzZWxmLmNv
bnN1bWUoKQorICAgICAgICBmb3IgXywgdmFsdWUgaW4gc2VsZi5saXN0X3ZhbHVlX3N0YXRlKCk6
CisgICAgICAgICAgICB5aWVsZCB0b2tlbl90eXBlcy5hdG9tLCB2YWx1ZQorCisgICAgZGVmIGxp
c3RfZW5kX3N0YXRlKHNlbGYpOgorICAgICAgICBzZWxmLmNvbnN1bWUoKQorICAgICAgICB5aWVs
ZCAodG9rZW5fdHlwZXMubGlzdF9lbmQsICJdIikKKyAgICAgICAgc2VsZi5zdGF0ZSA9IHNlbGYu
bGluZV9lbmRfc3RhdGUKKworICAgIGRlZiB2YWx1ZV9zdGF0ZShzZWxmKToKKyAgICAgICAgc2Vs
Zi5za2lwX3doaXRlc3BhY2UoKQorICAgICAgICBpZiBzZWxmLmNoYXIoKSBpbiAoIiciLCAnIicp
OgorICAgICAgICAgICAgcXVvdGVfY2hhciA9IHNlbGYuY2hhcigpCisgICAgICAgICAgICBzZWxm
LmNvbnN1bWUoKQorICAgICAgICAgICAgeWllbGQgKHRva2VuX3R5cGVzLnN0cmluZywgc2VsZi5j
b25zdW1lX3N0cmluZyhxdW90ZV9jaGFyKSkKKyAgICAgICAgICAgIGlmIHNlbGYuY2hhcigpID09
ICIjIjoKKyAgICAgICAgICAgICAgICBzZWxmLnN0YXRlID0gc2VsZi5jb21tZW50X3N0YXRlCisg
ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSBzZWxmLmxpbmVf
ZW5kX3N0YXRlCisgICAgICAgIGVsaWYgc2VsZi5jaGFyKCkgPT0gIkAiOgorICAgICAgICAgICAg
c2VsZi5jb25zdW1lKCkKKyAgICAgICAgICAgIGZvciBfLCB2YWx1ZSBpbiBzZWxmLnZhbHVlX2lu
bmVyX3N0YXRlKCk6CisgICAgICAgICAgICAgICAgeWllbGQgdG9rZW5fdHlwZXMuYXRvbSwgdmFs
dWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSBzZWxmLnZhbHVlX2lu
bmVyX3N0YXRlCisKKyAgICBkZWYgdmFsdWVfaW5uZXJfc3RhdGUoc2VsZik6CisgICAgICAgIHJ2
ID0gIiIKKyAgICAgICAgc3BhY2VzID0gMAorICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAg
ICAgYyA9IHNlbGYuY2hhcigpCisgICAgICAgICAgICBpZiBjID09ICJcXCI6CisgICAgICAgICAg
ICAgICAgcnYgKz0gc2VsZi5jb25zdW1lX2VzY2FwZSgpCisgICAgICAgICAgICBlbGlmIGMgPT0g
IiMiOgorICAgICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSBzZWxmLmNvbW1lbnRfc3RhdGUKKyAg
ICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgZWxpZiBjID09ICIgIjoKKyAgICAgICAg
ICAgICAgICAjIHByZXZlbnQgd2hpdGVzcGFjZSBiZWZvcmUgY29tbWVudHMgZnJvbSBiZWluZyBp
bmNsdWRlZCBpbiB0aGUgdmFsdWUKKyAgICAgICAgICAgICAgICBzcGFjZXMgKz0gMQorICAgICAg
ICAgICAgICAgIHNlbGYuY29uc3VtZSgpCisgICAgICAgICAgICBlbGlmIGMgPT0gZW9sOgorICAg
ICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSBzZWxmLmxpbmVfZW5kX3N0YXRlCisgICAgICAgICAg
ICAgICAgYnJlYWsKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcnYgKz0gIiAi
ICogc3BhY2VzCisgICAgICAgICAgICAgICAgc3BhY2VzID0gMAorICAgICAgICAgICAgICAgIHJ2
ICs9IGMKKyAgICAgICAgICAgICAgICBzZWxmLmNvbnN1bWUoKQorICAgICAgICB5aWVsZCAodG9r
ZW5fdHlwZXMuc3RyaW5nLCBkZWNvZGUocnYpKQorCisgICAgZGVmIGNvbW1lbnRfc3RhdGUoc2Vs
Zik6CisgICAgICAgIHdoaWxlIHNlbGYuY2hhcigpIGlzIG5vdCBlb2w6CisgICAgICAgICAgICBz
ZWxmLmNvbnN1bWUoKQorICAgICAgICBzZWxmLnN0YXRlID0gc2VsZi5lb2xfc3RhdGUKKworICAg
IGRlZiBsaW5lX2VuZF9zdGF0ZShzZWxmKToKKyAgICAgICAgc2VsZi5za2lwX3doaXRlc3BhY2Uo
KQorICAgICAgICBjID0gc2VsZi5jaGFyKCkKKyAgICAgICAgaWYgYyA9PSAiIyI6CisgICAgICAg
ICAgICBzZWxmLnN0YXRlID0gc2VsZi5jb21tZW50X3N0YXRlCisgICAgICAgIGVsaWYgYyA9PSBl
b2w6CisgICAgICAgICAgICBzZWxmLnN0YXRlID0gc2VsZi5lb2xfc3RhdGUKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHJhaXNlIFBhcnNlRXJyb3Ioc2VsZi5maWxlbmFtZSwgc2VsZi5saW5l
X251bWJlciwgIkp1bmsgYmVmb3JlIEVPTCAlcyIgJSBjKQorCisgICAgZGVmIGNvbnN1bWVfc3Ry
aW5nKHNlbGYsIHF1b3RlX2NoYXIpOgorICAgICAgICBydiA9ICIiCisgICAgICAgIHdoaWxlIFRy
dWU6CisgICAgICAgICAgICBjID0gc2VsZi5jaGFyKCkKKyAgICAgICAgICAgIGlmIGMgPT0gIlxc
IjoKKyAgICAgICAgICAgICAgICBydiArPSBzZWxmLmNvbnN1bWVfZXNjYXBlKCkKKyAgICAgICAg
ICAgIGVsaWYgYyA9PSBxdW90ZV9jaGFyOgorICAgICAgICAgICAgICAgIHNlbGYuY29uc3VtZSgp
CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGVsaWYgYyA9PSBlb2w6CisgICAg
ICAgICAgICAgICAgcmFpc2UgUGFyc2VFcnJvcihzZWxmLmZpbGVuYW1lLCBzZWxmLmxpbmVfbnVt
YmVyLCAiRU9MIGluIHF1b3RlZCBzdHJpbmciKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgICAgICBydiArPSBjCisgICAgICAgICAgICAgICAgc2VsZi5jb25zdW1lKCkKKworICAgICAg
ICByZXR1cm4gZGVjb2RlKHJ2KQorCisgICAgZGVmIGV4cHJfb3JfdmFsdWVfc3RhdGUoc2VsZik6
CisgICAgICAgIGlmIHNlbGYucGVlaygzKSA9PSAiaWYgIjoKKyAgICAgICAgICAgIHNlbGYuc3Rh
dGUgPSBzZWxmLmV4cHJfc3RhdGUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuc3Rh
dGUgPSBzZWxmLnZhbHVlX3N0YXRlCisKKyAgICBkZWYgZXhwcl9zdGF0ZShzZWxmKToKKyAgICAg
ICAgc2VsZi5za2lwX3doaXRlc3BhY2UoKQorICAgICAgICBjID0gc2VsZi5jaGFyKCkKKyAgICAg
ICAgaWYgYyA9PSBlb2w6CisgICAgICAgICAgICByYWlzZSBQYXJzZUVycm9yKHNlbGYuZmlsZW5h
bWUsIHNlbGYubGluZV9udW1iZXIsICJFT0wgaW4gZXhwcmVzc2lvbiIpCisgICAgICAgIGVsaWYg
YyBpbiAiJ1wiIjoKKyAgICAgICAgICAgIHNlbGYuY29uc3VtZSgpCisgICAgICAgICAgICB5aWVs
ZCAodG9rZW5fdHlwZXMuc3RyaW5nLCBzZWxmLmNvbnN1bWVfc3RyaW5nKGMpKQorICAgICAgICBl
bGlmIGMgPT0gIiMiOgorICAgICAgICAgICAgcmFpc2UgUGFyc2VFcnJvcihzZWxmLmZpbGVuYW1l
LCBzZWxmLmxpbmVfbnVtYmVyLCAiQ29tbWVudCBiZWZvcmUgZW5kIG9mIGV4cHJlc3Npb24iKQor
ICAgICAgICBlbGlmIGMgPT0gIjoiOgorICAgICAgICAgICAgeWllbGQgKHRva2VuX3R5cGVzLnNl
cGFyYXRvciwgYykKKyAgICAgICAgICAgIHNlbGYuY29uc3VtZSgpCisgICAgICAgICAgICBzZWxm
LnN0YXRlID0gc2VsZi52YWx1ZV9zdGF0ZQorICAgICAgICBlbGlmIGMgaW4gcGFyZW5zOgorICAg
ICAgICAgICAgc2VsZi5jb25zdW1lKCkKKyAgICAgICAgICAgIHlpZWxkICh0b2tlbl90eXBlcy5w
YXJlbiwgYykKKyAgICAgICAgZWxpZiBjIGluICgiISIsICI9Iik6CisgICAgICAgICAgICBzZWxm
LnN0YXRlID0gc2VsZi5vcGVyYXRvcl9zdGF0ZQorICAgICAgICBlbGlmIGMgaW4gZGlnaXRzOgor
ICAgICAgICAgICAgc2VsZi5zdGF0ZSA9IHNlbGYuZGlnaXRfc3RhdGUKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSBzZWxmLmlkZW50X3N0YXRlCisKKyAgICBkZWYgb3Bl
cmF0b3Jfc3RhdGUoc2VsZik6CisgICAgICAgICMgT25seSBzeW1ib2xpYyBvcGVyYXRvcnMKKyAg
ICAgICAgaW5kZXhfMCA9IHNlbGYuaW5kZXgKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAg
ICAgIGMgPSBzZWxmLmNoYXIoKQorICAgICAgICAgICAgaWYgYyA9PSBlb2w6CisgICAgICAgICAg
ICAgICAgYnJlYWsKKyAgICAgICAgICAgIGVsaWYgYyBpbiBvcGVyYXRvcl9jaGFyczoKKyAgICAg
ICAgICAgICAgICBzZWxmLmNvbnN1bWUoKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICAgICBzZWxmLnN0YXRlID0gc2VsZi5leHByX3N0YXRlCisgICAgICAgICAgICAgICAgYnJlYWsK
KyAgICAgICAgeWllbGQgKHRva2VuX3R5cGVzLmlkZW50LCBzZWxmLmxpbmVbaW5kZXhfMDpzZWxm
LmluZGV4XSkKKworICAgIGRlZiBkaWdpdF9zdGF0ZShzZWxmKToKKyAgICAgICAgaW5kZXhfMCA9
IHNlbGYuaW5kZXgKKyAgICAgICAgc2Vlbl9kb3QgPSBGYWxzZQorICAgICAgICB3aGlsZSBUcnVl
OgorICAgICAgICAgICAgYyA9IHNlbGYuY2hhcigpCisgICAgICAgICAgICBpZiBjID09IGVvbDoK
KyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgZWxpZiBjIGluIGRpZ2l0czoKKyAg
ICAgICAgICAgICAgICBzZWxmLmNvbnN1bWUoKQorICAgICAgICAgICAgZWxpZiBjID09ICIuIjoK
KyAgICAgICAgICAgICAgICBpZiBzZWVuX2RvdDoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2Ug
UGFyc2VFcnJvcihzZWxmLmZpbGVuYW1lLCBzZWxmLmxpbmVfbnVtYmVyLCAiSW52YWxpZCBudW1i
ZXIiKQorICAgICAgICAgICAgICAgIHNlbGYuY29uc3VtZSgpCisgICAgICAgICAgICAgICAgc2Vl
bl9kb3QgPSBUcnVlCisgICAgICAgICAgICBlbGlmIGMgaW4gcGFyZW5zOgorICAgICAgICAgICAg
ICAgIGJyZWFrCisgICAgICAgICAgICBlbGlmIGMgaW4gb3BlcmF0b3JfY2hhcnM6CisgICAgICAg
ICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGVsaWYgYyA9PSAiICI6CisgICAgICAgICAgICAg
ICAgYnJlYWsKKyAgICAgICAgICAgIGVsaWYgYyA9PSAiOiI6CisgICAgICAgICAgICAgICAgYnJl
YWsKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UgUGFyc2VFcnJvcihz
ZWxmLmZpbGVuYW1lLCBzZWxmLmxpbmVfbnVtYmVyLCAiSW52YWxpZCBjaGFyYWN0ZXIgaW4gbnVt
YmVyIikKKworICAgICAgICBzZWxmLnN0YXRlID0gc2VsZi5leHByX3N0YXRlCisgICAgICAgIHlp
ZWxkICh0b2tlbl90eXBlcy5udW1iZXIsIHNlbGYubGluZVtpbmRleF8wOnNlbGYuaW5kZXhdKQor
CisgICAgZGVmIGlkZW50X3N0YXRlKHNlbGYpOgorICAgICAgICBpbmRleF8wID0gc2VsZi5pbmRl
eAorICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgYyA9IHNlbGYuY2hhcigpCisgICAg
ICAgICAgICBpZiBjID09IGVvbDoKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAg
ZWxpZiBjID09ICIuIjoKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgZWxpZiBj
IGluIHBhcmVuczoKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgZWxpZiBjIGlu
IG9wZXJhdG9yX2NoYXJzOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBlbGlm
IGMgPT0gIiAiOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBlbGlmIGMgPT0g
IjoiOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgICAgIHNlbGYuY29uc3VtZSgpCisgICAgICAgIHNlbGYuc3RhdGUgPSBzZWxmLmV4cHJfc3Rh
dGUKKyAgICAgICAgeWllbGQgKHRva2VuX3R5cGVzLmlkZW50LCBzZWxmLmxpbmVbaW5kZXhfMDpz
ZWxmLmluZGV4XSkKKworICAgIGRlZiBjb25zdW1lX2VzY2FwZShzZWxmKToKKyAgICAgICAgYXNz
ZXJ0IHNlbGYuY2hhcigpID09ICJcXCIKKyAgICAgICAgc2VsZi5jb25zdW1lKCkKKyAgICAgICAg
YyA9IHNlbGYuY2hhcigpCisgICAgICAgIHNlbGYuY29uc3VtZSgpCisgICAgICAgIGlmIGMgPT0g
IngiOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZGVjb2RlX2VzY2FwZSgyKQorICAgICAgICBl
bGlmIGMgPT0gInUiOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZGVjb2RlX2VzY2FwZSg0KQor
ICAgICAgICBlbGlmIGMgPT0gIlUiOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZGVjb2RlX2Vz
Y2FwZSg2KQorICAgICAgICBlbGlmIGMgaW4gWyJhIiwgImIiLCAiZiIsICJuIiwgInIiLCAidCIs
ICJ2Il06CisgICAgICAgICAgICByZXR1cm4gZXZhbCgiJ1wlcyciICUgYykKKyAgICAgICAgZWxp
ZiBjIGlzIGVvbDoKKyAgICAgICAgICAgIHJhaXNlIFBhcnNlRXJyb3Ioc2VsZi5maWxlbmFtZSwg
c2VsZi5saW5lX251bWJlciwgIkVPTCBpbiBlc2NhcGUiKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgcmV0dXJuIGMKKworICAgIGRlZiBkZWNvZGVfZXNjYXBlKHNlbGYsIGxlbmd0aCk6Cisg
ICAgICAgIHZhbHVlID0gMAorICAgICAgICBmb3IgaSBpbiB4cmFuZ2UobGVuZ3RoKToKKyAgICAg
ICAgICAgIGMgPSBzZWxmLmNoYXIoKQorICAgICAgICAgICAgdmFsdWUgKj0gMTYKKyAgICAgICAg
ICAgIHZhbHVlICs9IHNlbGYuZXNjYXBlX3ZhbHVlKGMpCisgICAgICAgICAgICBzZWxmLmNvbnN1
bWUoKQorCisgICAgICAgIHJldHVybiB1bmljaHIodmFsdWUpCisKKyAgICBkZWYgZXNjYXBlX3Zh
bHVlKHNlbGYsIGMpOgorICAgICAgICBpZiAnMCcgPD0gYyA8PSAnOSc6CisgICAgICAgICAgICBy
ZXR1cm4gb3JkKGMpIC0gb3JkKCcwJykKKyAgICAgICAgZWxpZiAnYScgPD0gYyA8PSAnZic6Cisg
ICAgICAgICAgICByZXR1cm4gb3JkKGMpIC0gb3JkKCdhJykgKyAxMAorICAgICAgICBlbGlmICdB
JyA8PSBjIDw9ICdGJzoKKyAgICAgICAgICAgIHJldHVybiBvcmQoYykgLSBvcmQoJ0EnKSArIDEw
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBQYXJzZUVycm9yKHNlbGYuZmlsZW5h
bWUsIHNlbGYubGluZV9udW1iZXIsICJJbnZhbGlkIGNoYXJhY3RlciBlc2NhcGUiKQorCisKK2Ns
YXNzIFBhcnNlcihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2Vs
Zi5yZXNldCgpCisKKyAgICBkZWYgcmVzZXQoc2VsZik6CisgICAgICAgIHNlbGYudG9rZW4gPSBO
b25lCisgICAgICAgIHNlbGYudW5hcnlfb3BlcmF0b3JzID0gIiEiCisgICAgICAgIHNlbGYuYmlu
YXJ5X29wZXJhdG9ycyA9IGZyb3plbnNldChbIiYmIiwgInx8IiwgIj09Il0pCisgICAgICAgIHNl
bGYudG9rZW5pemVyID0gVG9rZW5pemVyKCkKKyAgICAgICAgc2VsZi50b2tlbl9nZW5lcmF0b3Ig
PSBOb25lCisgICAgICAgIHNlbGYudHJlZSA9IFRyZWVidWlsZGVyKERhdGFOb2RlKE5vbmUpKQor
ICAgICAgICBzZWxmLmV4cHJfYnVpbGRlciA9IE5vbmUKKyAgICAgICAgc2VsZi5leHByX2J1aWxk
ZXJzID0gW10KKworICAgIGRlZiBwYXJzZShzZWxmLCBpbnB1dCk6CisgICAgICAgIHNlbGYucmVz
ZXQoKQorICAgICAgICBzZWxmLnRva2VuX2dlbmVyYXRvciA9IHNlbGYudG9rZW5pemVyLnRva2Vu
aXplKGlucHV0KQorICAgICAgICBzZWxmLmNvbnN1bWUoKQorICAgICAgICBzZWxmLm1hbmlmZXN0
KCkKKyAgICAgICAgcmV0dXJuIHNlbGYudHJlZS5ub2RlCisKKyAgICBkZWYgY29uc3VtZShzZWxm
KToKKyAgICAgICAgc2VsZi50b2tlbiA9IHNlbGYudG9rZW5fZ2VuZXJhdG9yLm5leHQoKQorCisg
ICAgZGVmIGV4cGVjdChzZWxmLCB0eXBlLCB2YWx1ZT1Ob25lKToKKyAgICAgICAgaWYgc2VsZi50
b2tlblswXSAhPSB0eXBlOgorICAgICAgICAgICAgcmFpc2UgUGFyc2VFcnJvcgorICAgICAgICBp
ZiB2YWx1ZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGlmIHNlbGYudG9rZW5bMV0gIT0gdmFs
dWU6CisgICAgICAgICAgICAgICAgcmFpc2UgUGFyc2VFcnJvcgorCisgICAgICAgIHNlbGYuY29u
c3VtZSgpCisKKyAgICBkZWYgbWFuaWZlc3Qoc2VsZik6CisgICAgICAgIHNlbGYuZGF0YV9ibG9j
aygpCisgICAgICAgIHNlbGYuZXhwZWN0KHRva2VuX3R5cGVzLmVvZikKKworICAgIGRlZiBkYXRh
X2Jsb2NrKHNlbGYpOgorICAgICAgICB3aGlsZSBzZWxmLnRva2VuWzBdID09IHRva2VuX3R5cGVz
LnN0cmluZzoKKyAgICAgICAgICAgIHNlbGYudHJlZS5hcHBlbmQoS2V5VmFsdWVOb2RlKHNlbGYu
dG9rZW5bMV0pKQorICAgICAgICAgICAgc2VsZi5jb25zdW1lKCkKKyAgICAgICAgICAgIHNlbGYu
ZXhwZWN0KHRva2VuX3R5cGVzLnNlcGFyYXRvcikKKyAgICAgICAgICAgIHNlbGYudmFsdWVfYmxv
Y2soKQorICAgICAgICAgICAgc2VsZi50cmVlLnBvcCgpCisKKyAgICAgICAgd2hpbGUgc2VsZi50
b2tlbiA9PSAodG9rZW5fdHlwZXMucGFyZW4sICJbIik6CisgICAgICAgICAgICBzZWxmLmNvbnN1
bWUoKQorICAgICAgICAgICAgaWYgc2VsZi50b2tlblswXSAhPSB0b2tlbl90eXBlcy5zdHJpbmc6
CisgICAgICAgICAgICAgICAgcmFpc2UgUGFyc2VFcnJvcgorICAgICAgICAgICAgc2VsZi50cmVl
LmFwcGVuZChEYXRhTm9kZShzZWxmLnRva2VuWzFdKSkKKyAgICAgICAgICAgIHNlbGYuY29uc3Vt
ZSgpCisgICAgICAgICAgICBzZWxmLmV4cGVjdCh0b2tlbl90eXBlcy5wYXJlbiwgIl0iKQorICAg
ICAgICAgICAgaWYgc2VsZi50b2tlblswXSA9PSB0b2tlbl90eXBlcy5ncm91cF9zdGFydDoKKyAg
ICAgICAgICAgICAgICBzZWxmLmNvbnN1bWUoKQorICAgICAgICAgICAgICAgIHNlbGYuZGF0YV9i
bG9jaygpCisgICAgICAgICAgICAgICAgc2VsZi5lb2Zfb3JfZW5kX2dyb3VwKCkKKyAgICAgICAg
ICAgIHNlbGYudHJlZS5wb3AoKQorCisgICAgZGVmIGVvZl9vcl9lbmRfZ3JvdXAoc2VsZik6Cisg
ICAgICAgIGlmIHNlbGYudG9rZW5bMF0gIT0gdG9rZW5fdHlwZXMuZW9mOgorICAgICAgICAgICAg
c2VsZi5leHBlY3QodG9rZW5fdHlwZXMuZ3JvdXBfZW5kKQorCisgICAgZGVmIHZhbHVlX2Jsb2Nr
KHNlbGYpOgorICAgICAgICBpZiBzZWxmLnRva2VuWzBdID09IHRva2VuX3R5cGVzLmxpc3Rfc3Rh
cnQ6CisgICAgICAgICAgICBzZWxmLmNvbnN1bWUoKQorICAgICAgICAgICAgc2VsZi5saXN0X3Zh
bHVlKCkKKyAgICAgICAgZWxpZiBzZWxmLnRva2VuWzBdID09IHRva2VuX3R5cGVzLnN0cmluZzoK
KyAgICAgICAgICAgIHNlbGYudmFsdWUoKQorICAgICAgICBlbGlmIHNlbGYudG9rZW5bMF0gPT0g
dG9rZW5fdHlwZXMuZ3JvdXBfc3RhcnQ6CisgICAgICAgICAgICBzZWxmLmNvbnN1bWUoKQorICAg
ICAgICAgICAgc2VsZi5leHByZXNzaW9uX3ZhbHVlcygpCisgICAgICAgICAgICBpZiBzZWxmLnRv
a2VuWzBdID09IHRva2VuX3R5cGVzLnN0cmluZzoKKyAgICAgICAgICAgICAgICBzZWxmLnZhbHVl
KCkKKyAgICAgICAgICAgIHNlbGYuZW9mX29yX2VuZF9ncm91cCgpCisgICAgICAgIGVsaWYgc2Vs
Zi50b2tlblswXSA9PSB0b2tlbl90eXBlcy5hdG9tOgorICAgICAgICAgICAgc2VsZi5hdG9tKCkK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIFBhcnNlRXJyb3IKKworICAgIGRlZiBs
aXN0X3ZhbHVlKHNlbGYpOgorICAgICAgICBzZWxmLnRyZWUuYXBwZW5kKExpc3ROb2RlKCkpCisg
ICAgICAgIHdoaWxlIHNlbGYudG9rZW5bMF0gaW4gKHRva2VuX3R5cGVzLmF0b20sIHRva2VuX3R5
cGVzLnN0cmluZyk6CisgICAgICAgICAgICBpZiBzZWxmLnRva2VuWzBdID09IHRva2VuX3R5cGVz
LmF0b206CisgICAgICAgICAgICAgICAgc2VsZi5hdG9tKCkKKyAgICAgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICAgICAgc2VsZi52YWx1ZSgpCisgICAgICAgIHNlbGYuZXhwZWN0KHRva2VuX3R5
cGVzLmxpc3RfZW5kKQorICAgICAgICBzZWxmLnRyZWUucG9wKCkKKworICAgIGRlZiBleHByZXNz
aW9uX3ZhbHVlcyhzZWxmKToKKyAgICAgICAgd2hpbGUgc2VsZi50b2tlbiA9PSAodG9rZW5fdHlw
ZXMuaWRlbnQsICJpZiIpOgorICAgICAgICAgICAgc2VsZi5jb25zdW1lKCkKKyAgICAgICAgICAg
IHNlbGYudHJlZS5hcHBlbmQoQ29uZGl0aW9uYWxOb2RlKCkpCisgICAgICAgICAgICBzZWxmLmV4
cHJfc3RhcnQoKQorICAgICAgICAgICAgc2VsZi5leHBlY3QodG9rZW5fdHlwZXMuc2VwYXJhdG9y
KQorICAgICAgICAgICAgaWYgc2VsZi50b2tlblswXSA9PSB0b2tlbl90eXBlcy5zdHJpbmc6Cisg
ICAgICAgICAgICAgICAgc2VsZi52YWx1ZSgpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgICAgIHJhaXNlIFBhcnNlRXJyb3IKKyAgICAgICAgICAgIHNlbGYudHJlZS5wb3AoKQorCisg
ICAgZGVmIHZhbHVlKHNlbGYpOgorICAgICAgICBzZWxmLnRyZWUuYXBwZW5kKFZhbHVlTm9kZShz
ZWxmLnRva2VuWzFdKSkKKyAgICAgICAgc2VsZi5jb25zdW1lKCkKKyAgICAgICAgc2VsZi50cmVl
LnBvcCgpCisKKyAgICBkZWYgYXRvbShzZWxmKToKKyAgICAgICAgaWYgc2VsZi50b2tlblsxXSBu
b3QgaW4gYXRvbXM6CisgICAgICAgICAgICByYWlzZSBQYXJzZUVycm9yKHNlbGYudG9rZW5pemVy
LmZpbGVuYW1lLCBzZWxmLnRva2VuaXplci5saW5lX251bWJlciwgIlVucmVjb2duaXNlZCBzeW1i
b2wgQCVzIiAlIHNlbGYudG9rZW5bMV0pCisgICAgICAgIHNlbGYudHJlZS5hcHBlbmQoQXRvbU5v
ZGUoYXRvbXNbc2VsZi50b2tlblsxXV0pKQorICAgICAgICBzZWxmLmNvbnN1bWUoKQorICAgICAg
ICBzZWxmLnRyZWUucG9wKCkKKworICAgIGRlZiBleHByX3N0YXJ0KHNlbGYpOgorICAgICAgICBz
ZWxmLmV4cHJfYnVpbGRlciA9IEV4cHJlc3Npb25CdWlsZGVyKHNlbGYudG9rZW5pemVyKQorICAg
ICAgICBzZWxmLmV4cHJfYnVpbGRlcnMuYXBwZW5kKHNlbGYuZXhwcl9idWlsZGVyKQorICAgICAg
ICBzZWxmLmV4cHIoKQorICAgICAgICBleHByZXNzaW9uID0gc2VsZi5leHByX2J1aWxkZXIuZmlu
aXNoKCkKKyAgICAgICAgc2VsZi5leHByX2J1aWxkZXJzLnBvcCgpCisgICAgICAgIHNlbGYuZXhw
cl9idWlsZGVyID0gc2VsZi5leHByX2J1aWxkZXJzWy0xXSBpZiBzZWxmLmV4cHJfYnVpbGRlcnMg
ZWxzZSBOb25lCisgICAgICAgIGlmIHNlbGYuZXhwcl9idWlsZGVyOgorICAgICAgICAgICAgc2Vs
Zi5leHByX2J1aWxkZXIub3BlcmFuZHNbLTFdLmNoaWxkcmVuWy0xXS5hcHBlbmQoZXhwcmVzc2lv
bikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYudHJlZS5hcHBlbmQoZXhwcmVzc2lv
bikKKyAgICAgICAgICAgIHNlbGYudHJlZS5wb3AoKQorCisgICAgZGVmIGV4cHIoc2VsZik6Cisg
ICAgICAgIHNlbGYuZXhwcl9vcGVyYW5kKCkKKyAgICAgICAgd2hpbGUgKHNlbGYudG9rZW5bMF0g
PT0gdG9rZW5fdHlwZXMuaWRlbnQgYW5kIHNlbGYudG9rZW5bMV0gaW4gYmluYXJ5X29wZXJhdG9y
cyk6CisgICAgICAgICAgICBzZWxmLmV4cHJfYmluX29wKCkKKyAgICAgICAgICAgIHNlbGYuZXhw
cl9vcGVyYW5kKCkKKworICAgIGRlZiBleHByX29wZXJhbmQoc2VsZik6CisgICAgICAgIGlmIHNl
bGYudG9rZW4gPT0gKHRva2VuX3R5cGVzLnBhcmVuLCAiKCIpOgorICAgICAgICAgICAgc2VsZi5j
b25zdW1lKCkKKyAgICAgICAgICAgIHNlbGYuZXhwcl9idWlsZGVyLmxlZnRfcGFyZW4oKQorICAg
ICAgICAgICAgc2VsZi5leHByKCkKKyAgICAgICAgICAgIHNlbGYuZXhwZWN0KHRva2VuX3R5cGVz
LnBhcmVuLCAiKSIpCisgICAgICAgICAgICBzZWxmLmV4cHJfYnVpbGRlci5yaWdodF9wYXJlbigp
CisgICAgICAgIGVsaWYgc2VsZi50b2tlblswXSA9PSB0b2tlbl90eXBlcy5pZGVudCBhbmQgc2Vs
Zi50b2tlblsxXSBpbiB1bmFyeV9vcGVyYXRvcnM6CisgICAgICAgICAgICBzZWxmLmV4cHJfdW5h
cnlfb3AoKQorICAgICAgICAgICAgc2VsZi5leHByX29wZXJhbmQoKQorICAgICAgICBlbGlmIHNl
bGYudG9rZW5bMF0gaW4gW3Rva2VuX3R5cGVzLnN0cmluZywgdG9rZW5fdHlwZXMuaWRlbnRdOgor
ICAgICAgICAgICAgc2VsZi5leHByX3ZhbHVlKCkKKyAgICAgICAgZWxpZiBzZWxmLnRva2VuWzBd
ID09IHRva2VuX3R5cGVzLm51bWJlcjoKKyAgICAgICAgICAgIHNlbGYuZXhwcl9udW1iZXIoKQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgUGFyc2VFcnJvcihzZWxmLnRva2VuaXpl
ci5maWxlbmFtZSwgc2VsZi50b2tlbml6ZXIubGluZV9udW1iZXIsICJVbnJlY29nbmlzZWQgb3Bl
cmFuZCIpCisKKyAgICBkZWYgZXhwcl91bmFyeV9vcChzZWxmKToKKyAgICAgICAgaWYgc2VsZi50
b2tlblsxXSBpbiB1bmFyeV9vcGVyYXRvcnM6CisgICAgICAgICAgICBzZWxmLmV4cHJfYnVpbGRl
ci5wdXNoX29wZXJhdG9yKFVuYXJ5T3BlcmF0b3JOb2RlKHNlbGYudG9rZW5bMV0pKQorICAgICAg
ICAgICAgc2VsZi5jb25zdW1lKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIFBh
cnNlRXJyb3Ioc2VsZi50b2tlbml6ZXIuZmlsZW5hbWUsIHNlbGYudG9rZW5pemVyLmxpbmVfbnVt
YmVyLCAiRXhwZWN0ZWQgdW5hcnkgb3BlcmF0b3IiKQorCisgICAgZGVmIGV4cHJfYmluX29wKHNl
bGYpOgorICAgICAgICBpZiBzZWxmLnRva2VuWzFdIGluIGJpbmFyeV9vcGVyYXRvcnM6CisgICAg
ICAgICAgICBzZWxmLmV4cHJfYnVpbGRlci5wdXNoX29wZXJhdG9yKEJpbmFyeU9wZXJhdG9yTm9k
ZShzZWxmLnRva2VuWzFdKSkKKyAgICAgICAgICAgIHNlbGYuY29uc3VtZSgpCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICByYWlzZSBQYXJzZUVycm9yKHNlbGYudG9rZW5pemVyLmZpbGVuYW1l
LCBzZWxmLnRva2VuaXplci5saW5lX251bWJlciwgIkV4cGVjdGVkIGJpbmFyeSBvcGVyYXRvciIp
CisKKyAgICBkZWYgZXhwcl92YWx1ZShzZWxmKToKKyAgICAgICAgbm9kZV90eXBlID0ge3Rva2Vu
X3R5cGVzLnN0cmluZzogU3RyaW5nTm9kZSwKKyAgICAgICAgICAgICAgICAgICAgIHRva2VuX3R5
cGVzLmlkZW50OiBWYXJpYWJsZU5vZGV9W3NlbGYudG9rZW5bMF1dCisgICAgICAgIHNlbGYuZXhw
cl9idWlsZGVyLnB1c2hfb3BlcmFuZChub2RlX3R5cGUoc2VsZi50b2tlblsxXSkpCisgICAgICAg
IHNlbGYuY29uc3VtZSgpCisgICAgICAgIGlmIHNlbGYudG9rZW4gPT0gKHRva2VuX3R5cGVzLnBh
cmVuLCAiWyIpOgorICAgICAgICAgICAgc2VsZi5jb25zdW1lKCkKKyAgICAgICAgICAgIHNlbGYu
ZXhwcl9idWlsZGVyLm9wZXJhbmRzWy0xXS5hcHBlbmQoSW5kZXhOb2RlKCkpCisgICAgICAgICAg
ICBzZWxmLmV4cHJfc3RhcnQoKQorICAgICAgICAgICAgc2VsZi5leHBlY3QodG9rZW5fdHlwZXMu
cGFyZW4sICJdIikKKworICAgIGRlZiBleHByX251bWJlcihzZWxmKToKKyAgICAgICAgc2VsZi5l
eHByX2J1aWxkZXIucHVzaF9vcGVyYW5kKE51bWJlck5vZGUoc2VsZi50b2tlblsxXSkpCisgICAg
ICAgIHNlbGYuY29uc3VtZSgpCisKKworY2xhc3MgVHJlZWJ1aWxkZXIob2JqZWN0KToKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgcm9vdCk6CisgICAgICAgIHNlbGYucm9vdCA9IHJvb3QKKyAgICAg
ICAgc2VsZi5ub2RlID0gcm9vdAorCisgICAgZGVmIGFwcGVuZChzZWxmLCBub2RlKToKKyAgICAg
ICAgc2VsZi5ub2RlLmFwcGVuZChub2RlKQorICAgICAgICBzZWxmLm5vZGUgPSBub2RlCisgICAg
ICAgIHJldHVybiBub2RlCisKKyAgICBkZWYgcG9wKHNlbGYpOgorICAgICAgICBub2RlID0gc2Vs
Zi5ub2RlCisgICAgICAgIHNlbGYubm9kZSA9IHNlbGYubm9kZS5wYXJlbnQKKyAgICAgICAgcmV0
dXJuIG5vZGUKKworCitjbGFzcyBFeHByZXNzaW9uQnVpbGRlcihvYmplY3QpOgorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCB0b2tlbml6ZXIpOgorICAgICAgICBzZWxmLm9wZXJhbmRzID0gW10KKyAg
ICAgICAgc2VsZi5vcGVyYXRvcnMgPSBbTm9uZV0KKyAgICAgICAgc2VsZi50b2tlbml6ZXIgPSB0
b2tlbml6ZXIKKworICAgIGRlZiBmaW5pc2goc2VsZik6CisgICAgICAgIHdoaWxlIHNlbGYub3Bl
cmF0b3JzWy0xXSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYucG9wX29wZXJhdG9yKCkK
KyAgICAgICAgcnYgPSBzZWxmLnBvcF9vcGVyYW5kKCkKKyAgICAgICAgYXNzZXJ0IHNlbGYuaXNf
ZW1wdHkoKQorICAgICAgICByZXR1cm4gcnYKKworICAgIGRlZiBsZWZ0X3BhcmVuKHNlbGYpOgor
ICAgICAgICBzZWxmLm9wZXJhdG9ycy5hcHBlbmQoTm9uZSkKKworICAgIGRlZiByaWdodF9wYXJl
bihzZWxmKToKKyAgICAgICAgd2hpbGUgc2VsZi5vcGVyYXRvcnNbLTFdIGlzIG5vdCBOb25lOgor
ICAgICAgICAgICAgc2VsZi5wb3Bfb3BlcmF0b3IoKQorICAgICAgICAgICAgaWYgbm90IHNlbGYu
b3BlcmF0b3JzOgorICAgICAgICAgICAgICAgIHJhaXNlIFBhcnNlRXJyb3Ioc2VsZi50b2tlbml6
ZXIuZmlsZW5hbWUsIHNlbGYudG9rZW5pemVyLmxpbmUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiVW5iYWxhbmNlZCBwYXJlbnMiKQorCisgICAgICAgIGFzc2VydCBzZWxmLm9w
ZXJhdG9ycy5wb3AoKSBpcyBOb25lCisKKyAgICBkZWYgcHVzaF9vcGVyYXRvcihzZWxmLCBvcGVy
YXRvcik6CisgICAgICAgIGFzc2VydCBvcGVyYXRvciBpcyBub3QgTm9uZQorICAgICAgICB3aGls
ZSBzZWxmLnByZWNlZGVuY2Uoc2VsZi5vcGVyYXRvcnNbLTFdKSA+IHNlbGYucHJlY2VkZW5jZShv
cGVyYXRvcik6CisgICAgICAgICAgICBzZWxmLnBvcF9vcGVyYXRvcigpCisKKyAgICAgICAgc2Vs
Zi5vcGVyYXRvcnMuYXBwZW5kKG9wZXJhdG9yKQorCisgICAgZGVmIHBvcF9vcGVyYXRvcihzZWxm
KToKKyAgICAgICAgb3BlcmF0b3IgPSBzZWxmLm9wZXJhdG9ycy5wb3AoKQorICAgICAgICBpZiBp
c2luc3RhbmNlKG9wZXJhdG9yLCBCaW5hcnlPcGVyYXRvck5vZGUpOgorICAgICAgICAgICAgb3Bl
cmFuZF8xID0gc2VsZi5vcGVyYW5kcy5wb3AoKQorICAgICAgICAgICAgb3BlcmFuZF8wID0gc2Vs
Zi5vcGVyYW5kcy5wb3AoKQorICAgICAgICAgICAgc2VsZi5vcGVyYW5kcy5hcHBlbmQoQmluYXJ5
RXhwcmVzc2lvbk5vZGUob3BlcmF0b3IsIG9wZXJhbmRfMCwgb3BlcmFuZF8xKSkKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIG9wZXJhbmRfMCA9IHNlbGYub3BlcmFuZHMucG9wKCkKKyAgICAg
ICAgICAgIHNlbGYub3BlcmFuZHMuYXBwZW5kKFVuYXJ5RXhwcmVzc2lvbk5vZGUob3BlcmF0b3Is
IG9wZXJhbmRfMCkpCisKKyAgICBkZWYgcHVzaF9vcGVyYW5kKHNlbGYsIG5vZGUpOgorICAgICAg
ICBzZWxmLm9wZXJhbmRzLmFwcGVuZChub2RlKQorCisgICAgZGVmIHBvcF9vcGVyYW5kKHNlbGYp
OgorICAgICAgICByZXR1cm4gc2VsZi5vcGVyYW5kcy5wb3AoKQorCisgICAgZGVmIGlzX2VtcHR5
KHNlbGYpOgorICAgICAgICByZXR1cm4gbGVuKHNlbGYub3BlcmFuZHMpID09IDAgYW5kIGFsbChp
dGVtIGlzIE5vbmUgZm9yIGl0ZW0gaW4gc2VsZi5vcGVyYXRvcnMpCisKKyAgICBkZWYgcHJlY2Vk
ZW5jZShzZWxmLCBvcGVyYXRvcik6CisgICAgICAgIGlmIG9wZXJhdG9yIGlzIE5vbmU6CisgICAg
ICAgICAgICByZXR1cm4gMAorICAgICAgICByZXR1cm4gcHJlY2VkZW5jZShvcGVyYXRvcikKKwor
CitkZWYgcGFyc2Uoc3RyZWFtKToKKyAgICBwID0gUGFyc2VyKCkKKyAgICByZXR1cm4gcC5wYXJz
ZShzdHJlYW0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qvc2VyaWFsaXpl
ci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9zZXJpYWxpemVyLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjNiZTJhNmQ5NGQ2MjI3MmJkNmU1MTdlMzQyZDYwODUzNjk3OGMyYzcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qvc2VyaWFsaXplci5weQpAQCAtMCwwICsxLDEz
OCBAQAorZnJvbSBub2RlIGltcG9ydCBOb2RlVmlzaXRvciwgVmFsdWVOb2RlLCBMaXN0Tm9kZSwg
QmluYXJ5RXhwcmVzc2lvbk5vZGUKK2Zyb20gcGFyc2VyIGltcG9ydCBhdG9tcywgcHJlY2VkZW5j
ZQorCithdG9tX25hbWVzID0ge3Y6IkAlcyIgJSBrIGZvciAoayx2KSBpbiBhdG9tcy5pdGVyaXRl
bXMoKX0KKworbmFtZWRfZXNjYXBlcyA9IHNldChbIlxhIiwgIlxiIiwgIlxmIiwgIlxuIiwgIlxy
IiwgIlx0IiwgIlx2Il0pCisKK2RlZiBlc2NhcGUoc3RyaW5nLCBleHRyYXM9IiIpOgorICAgIHJ2
ID0gIiIKKyAgICBmb3IgYyBpbiBzdHJpbmc6CisgICAgICAgIGlmIGMgaW4gbmFtZWRfZXNjYXBl
czoKKyAgICAgICAgICAgIHJ2ICs9IGMuZW5jb2RlKCJ1bmljb2RlX2VzY2FwZSIpCisgICAgICAg
IGVsaWYgYyA9PSAiXFwiOgorICAgICAgICAgICAgcnYgKz0gIlxcXFwiCisgICAgICAgIGVsaWYg
YyA8ICdceDIwJzoKKyAgICAgICAgICAgIHJ2ICs9ICJcXHglMDJ4IiAlIG9yZChjKQorICAgICAg
ICBlbGlmIGMgaW4gZXh0cmFzOgorICAgICAgICAgICAgcnYgKz0gIlxcIiArIGMKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIHJ2ICs9IGMKKyAgICByZXR1cm4gcnYuZW5jb2RlKCJ1dGY4IikK
KworCitjbGFzcyBNYW5pZmVzdFNlcmlhbGl6ZXIoTm9kZVZpc2l0b3IpOgorICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBza2lwX2VtcHR5X2RhdGE9RmFsc2UpOgorICAgICAgICBzZWxmLnNraXBfZW1w
dHlfZGF0YSA9IHNraXBfZW1wdHlfZGF0YQorCisgICAgZGVmIHNlcmlhbGl6ZShzZWxmLCByb290
KToKKyAgICAgICAgc2VsZi5pbmRlbnQgPSAyCisgICAgICAgIHJ2ID0gIlxuIi5qb2luKHNlbGYu
dmlzaXQocm9vdCkpCisgICAgICAgIGlmIG5vdCBydjoKKyAgICAgICAgICAgIHJldHVybiBydgor
ICAgICAgICBpZiBydlstMV0gIT0gIlxuIjoKKyAgICAgICAgICAgIHJ2ID0gcnYgKyAiXG4iCisg
ICAgICAgIHJldHVybiBydgorCisgICAgZGVmIHZpc2l0X0RhdGFOb2RlKHNlbGYsIG5vZGUpOgor
ICAgICAgICBydiA9IFtdCisgICAgICAgIGlmIG5vdCBzZWxmLnNraXBfZW1wdHlfZGF0YSBvciBu
b2RlLmNoaWxkcmVuOgorICAgICAgICAgICAgaWYgbm9kZS5kYXRhOgorICAgICAgICAgICAgICAg
IHJ2LmFwcGVuZCgiWyVzXSIgJSBlc2NhcGUobm9kZS5kYXRhLCBleHRyYXM9Il0iKSkKKyAgICAg
ICAgICAgICAgICBpbmRlbnQgPSBzZWxmLmluZGVudCAqICIgIgorICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICBpbmRlbnQgPSAiIgorCisgICAgICAgICAgICBmb3IgY2hpbGQgaW4g
bm9kZS5jaGlsZHJlbjoKKyAgICAgICAgICAgICAgICBydi5leHRlbmQoIiVzJXMiICUgKGluZGVu
dCBpZiBpdGVtIGVsc2UgIiIsIGl0ZW0pIGZvciBpdGVtIGluIHNlbGYudmlzaXQoY2hpbGQpKQor
CisgICAgICAgICAgICBpZiBub2RlLnBhcmVudDoKKyAgICAgICAgICAgICAgICBydi5hcHBlbmQo
IiIpCisKKyAgICAgICAgcmV0dXJuIHJ2CisKKyAgICBkZWYgdmlzaXRfS2V5VmFsdWVOb2RlKHNl
bGYsIG5vZGUpOgorICAgICAgICBydiA9IFtlc2NhcGUobm9kZS5kYXRhLCAiOiIpICsgIjoiXQor
ICAgICAgICBpbmRlbnQgPSAiICIgKiBzZWxmLmluZGVudAorCisgICAgICAgIGlmIGxlbihub2Rl
LmNoaWxkcmVuKSA9PSAxIGFuZCBpc2luc3RhbmNlKG5vZGUuY2hpbGRyZW5bMF0sIChWYWx1ZU5v
ZGUsIExpc3ROb2RlKSk6CisgICAgICAgICAgICBydlswXSArPSAiICVzIiAlIHNlbGYudmlzaXQo
bm9kZS5jaGlsZHJlblswXSlbMF0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGZvciBjaGls
ZCBpbiBub2RlLmNoaWxkcmVuOgorICAgICAgICAgICAgICAgIHJ2LmFwcGVuZChpbmRlbnQgKyBz
ZWxmLnZpc2l0KGNoaWxkKVswXSkKKworICAgICAgICByZXR1cm4gcnYKKworICAgIGRlZiB2aXNp
dF9MaXN0Tm9kZShzZWxmLCBub2RlKToKKyAgICAgICAgcnYgPSBbIlsiXQorICAgICAgICBydi5l
eHRlbmQoIiwgIi5qb2luKHNlbGYudmlzaXQoY2hpbGQpWzBdIGZvciBjaGlsZCBpbiBub2RlLmNo
aWxkcmVuKSkKKyAgICAgICAgcnYuYXBwZW5kKCJdIikKKyAgICAgICAgcmV0dXJuIFsiIi5qb2lu
KHJ2KV0KKworICAgIGRlZiB2aXNpdF9WYWx1ZU5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIGlm
ICIjIiBpbiBub2RlLmRhdGEgb3IgKGlzaW5zdGFuY2Uobm9kZS5wYXJlbnQsIExpc3ROb2RlKSBh
bmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCIsIiBpbiBub2RlLmRhdGEgb3Ig
Il0iIGluIG5vZGUuZGF0YSkpOgorICAgICAgICAgICAgaWYgIlwiIiBpbiBub2RlLmRhdGE6Cisg
ICAgICAgICAgICAgICAgcXVvdGUgPSAiJyIKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgcXVvdGUgPSAiXCIiCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBxdW90ZSA9ICIi
CisgICAgICAgIHJldHVybiBbcXVvdGUgKyBlc2NhcGUobm9kZS5kYXRhLCBleHRyYXM9cXVvdGUp
ICsgcXVvdGVdCisKKyAgICBkZWYgdmlzaXRfQXRvbU5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAg
IHJldHVybiBbYXRvbV9uYW1lc1tub2RlLmRhdGFdXQorCisgICAgZGVmIHZpc2l0X0NvbmRpdGlv
bmFsTm9kZShzZWxmLCBub2RlKToKKyAgICAgICAgcmV0dXJuIFsiaWYgJXM6ICVzIiAlIHR1cGxl
KHNlbGYudmlzaXQoaXRlbSlbMF0gZm9yIGl0ZW0gaW4gbm9kZS5jaGlsZHJlbildCisKKyAgICBk
ZWYgdmlzaXRfU3RyaW5nTm9kZShzZWxmLCBub2RlKToKKyAgICAgICAgcnYgPSBbIlwiJXNcIiIg
JSBlc2NhcGUobm9kZS5kYXRhLCBleHRyYXM9IlwiIildCisgICAgICAgIGZvciBjaGlsZCBpbiBu
b2RlLmNoaWxkcmVuOgorICAgICAgICAgICAgcnZbMF0gKz0gc2VsZi52aXNpdChjaGlsZClbMF0K
KyAgICAgICAgcmV0dXJuIHJ2CisKKyAgICBkZWYgdmlzaXRfTnVtYmVyTm9kZShzZWxmLCBub2Rl
KToKKyAgICAgICAgcmV0dXJuIFtzdHIobm9kZS5kYXRhKV0KKworICAgIGRlZiB2aXNpdF9WYXJp
YWJsZU5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIHJ2ID0gZXNjYXBlKG5vZGUuZGF0YSkKKyAg
ICAgICAgZm9yIGNoaWxkIGluIG5vZGUuY2hpbGRyZW46CisgICAgICAgICAgICBydiArPSBzZWxm
LnZpc2l0KGNoaWxkKQorICAgICAgICByZXR1cm4gW3J2XQorCisgICAgZGVmIHZpc2l0X0luZGV4
Tm9kZShzZWxmLCBub2RlKToKKyAgICAgICAgYXNzZXJ0IGxlbihub2RlLmNoaWxkcmVuKSA9PSAx
CisgICAgICAgIHJldHVybiBbIlslc10iICUgc2VsZi52aXNpdChub2RlLmNoaWxkcmVuWzBdKVsw
XV0KKworICAgIGRlZiB2aXNpdF9VbmFyeUV4cHJlc3Npb25Ob2RlKHNlbGYsIG5vZGUpOgorICAg
ICAgICBjaGlsZHJlbiA9IFtdCisgICAgICAgIGZvciBjaGlsZCBpbiBub2RlLmNoaWxkcmVuOgor
ICAgICAgICAgICAgY2hpbGRfc3RyID0gc2VsZi52aXNpdChjaGlsZClbMF0KKyAgICAgICAgICAg
IGlmIGlzaW5zdGFuY2UoY2hpbGQsIEJpbmFyeUV4cHJlc3Npb25Ob2RlKToKKyAgICAgICAgICAg
ICAgICBjaGlsZF9zdHIgPSAiKCVzKSIgJSBjaGlsZF9zdHIKKyAgICAgICAgICAgIGNoaWxkcmVu
LmFwcGVuZChjaGlsZF9zdHIpCisgICAgICAgIHJldHVybiBbIiAiLmpvaW4oY2hpbGRyZW4pXQor
CisgICAgZGVmIHZpc2l0X0JpbmFyeUV4cHJlc3Npb25Ob2RlKHNlbGYsIG5vZGUpOgorICAgICAg
ICBhc3NlcnQgbGVuKG5vZGUuY2hpbGRyZW4pID09IDMKKyAgICAgICAgY2hpbGRyZW4gPSBbXQor
ICAgICAgICBmb3IgY2hpbGRfaW5kZXggaW4gWzEsIDAsIDJdOgorICAgICAgICAgICAgY2hpbGQg
PSBub2RlLmNoaWxkcmVuW2NoaWxkX2luZGV4XQorICAgICAgICAgICAgY2hpbGRfc3RyID0gc2Vs
Zi52aXNpdChjaGlsZClbMF0KKyAgICAgICAgICAgIGlmIChpc2luc3RhbmNlKGNoaWxkLCBCaW5h
cnlFeHByZXNzaW9uTm9kZSkgYW5kCisgICAgICAgICAgICAgICAgcHJlY2VkZW5jZShub2RlLmNo
aWxkcmVuWzBdKSA8IHByZWNlZGVuY2UoY2hpbGQuY2hpbGRyZW5bMF0pKToKKyAgICAgICAgICAg
ICAgICBjaGlsZF9zdHIgPSAiKCVzKSIgJSBjaGlsZF9zdHIKKyAgICAgICAgICAgIGNoaWxkcmVu
LmFwcGVuZChjaGlsZF9zdHIpCisgICAgICAgIHJldHVybiBbIiAiLmpvaW4oY2hpbGRyZW4pXQor
CisgICAgZGVmIHZpc2l0X1VuYXJ5T3BlcmF0b3JOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBy
ZXR1cm4gW3N0cihub2RlLmRhdGEpXQorCisgICAgZGVmIHZpc2l0X0JpbmFyeU9wZXJhdG9yTm9k
ZShzZWxmLCBub2RlKToKKyAgICAgICAgcmV0dXJuIFtzdHIobm9kZS5kYXRhKV0KKworCitkZWYg
c2VyaWFsaXplKHRyZWUsICphcmdzLCAqKmt3YXJncyk6CisgICAgcyA9IE1hbmlmZXN0U2VyaWFs
aXplcigqYXJncywgKiprd2FyZ3MpCisgICAgcmV0dXJuIHMuc2VyaWFsaXplKHRyZWUpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvX19pbml0X18ucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTY4MzRi
ODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy9fX2luaXRfXy5weQpAQCAtMCwwICsxIEBACisj
IFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9y
eSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVzdF9jb25kaXRpb25hbC5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X2NvbmRpdGlvbmFsLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmQ5ZmZkZjI1NTA3MmUyMTdhYTAyM2QyYTA0ZTI5ZDA4YjVkMmZhN2IKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVzdF9jb25kaXRpb25hbC5weQpA
QCAtMCwwICsxLDE0MyBAQAoraW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gY1N0cmluZ0lPIGltcG9y
dCBTdHJpbmdJTworCitmcm9tIC4uYmFja2VuZHMgaW1wb3J0IGNvbmRpdGlvbmFsCitmcm9tIC4u
bm9kZSBpbXBvcnQgQmluYXJ5RXhwcmVzc2lvbk5vZGUsIEJpbmFyeU9wZXJhdG9yTm9kZSwgVmFy
aWFibGVOb2RlLCBOdW1iZXJOb2RlCisKKworY2xhc3MgVGVzdENvbmRpdGlvbmFsKHVuaXR0ZXN0
LlRlc3RDYXNlKToKKyAgICBkZWYgY29tcGlsZShzZWxmLCBpbnB1dF90ZXh0KToKKyAgICAgICAg
cmV0dXJuIGNvbmRpdGlvbmFsLmNvbXBpbGUoaW5wdXRfdGV4dCkKKworICAgIGRlZiB0ZXN0X2dl
dF8wKHNlbGYpOgorICAgICAgICBkYXRhID0gIiIiCitrZXk6IHZhbHVlCisKK1tIZWFkaW5nIDFd
CisgIG90aGVyX2tleToKKyAgICBpZiBhID09IDE6IHZhbHVlXzEKKyAgICBpZiBhID09IDI6IHZh
bHVlXzIKKyAgICB2YWx1ZV8zCisiIiIKKworICAgICAgICBtYW5pZmVzdCA9IHNlbGYuY29tcGls
ZShkYXRhKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG1hbmlmZXN0LmdldCgia2V5Iiks
ICJ2YWx1ZSIpCisgICAgICAgIGNoaWxkcmVuID0gbGlzdChpdGVtIGZvciBpdGVtIGluIG1hbmlm
ZXN0Lml0ZXJjaGlsZHJlbigpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhsZW4oY2hpbGRy
ZW4pLCAxKQorICAgICAgICBzZWN0aW9uID0gY2hpbGRyZW5bMF0KKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbHMoc2VjdGlvbi5uYW1lLCAiSGVhZGluZyAxIikKKworICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhzZWN0aW9uLmdldCgib3RoZXJfa2V5IiwgeyJhIjogMX0pLCAidmFsdWVfMSIpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlY3Rpb24uZ2V0KCJvdGhlcl9rZXkiLCB7ImEiOiAy
fSksICJ2YWx1ZV8yIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VjdGlvbi5nZXQoIm90
aGVyX2tleSIsIHsiYSI6IDd9KSwgInZhbHVlXzMiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhzZWN0aW9uLmdldCgia2V5IiksICJ2YWx1ZSIpCisKKyAgICBkZWYgdGVzdF9nZXRfMShzZWxm
KToKKyAgICAgICAgZGF0YSA9ICIiIgora2V5OiB2YWx1ZQorCitbSGVhZGluZyAxXQorICBvdGhl
cl9rZXk6CisgICAgaWYgYSA9PSAiMSI6IHZhbHVlXzEKKyAgICBpZiBhID09IDI6IHZhbHVlXzIK
KyAgICB2YWx1ZV8zCisiIiIKKworICAgICAgICBtYW5pZmVzdCA9IHNlbGYuY29tcGlsZShkYXRh
KQorCisgICAgICAgIGNoaWxkcmVuID0gbGlzdChpdGVtIGZvciBpdGVtIGluIG1hbmlmZXN0Lml0
ZXJjaGlsZHJlbigpKQorICAgICAgICBzZWN0aW9uID0gY2hpbGRyZW5bMF0KKworICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhzZWN0aW9uLmdldCgib3RoZXJfa2V5IiwgeyJhIjogIjEifSksICJ2
YWx1ZV8xIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VjdGlvbi5nZXQoIm90aGVyX2tl
eSIsIHsiYSI6IDF9KSwgInZhbHVlXzMiKQorCisgICAgZGVmIHRlc3RfZ2V0XzIoc2VsZik6Cisg
ICAgICAgIGRhdGEgPSAiIiIKK2tleToKKyAgaWYgYVsxXSA9PSAiYiI6IHZhbHVlXzEKKyAgaWYg
YVsxXSA9PSAyOiB2YWx1ZV8yCisgIHZhbHVlXzMKKyIiIgorCisgICAgICAgIG1hbmlmZXN0ID0g
c2VsZi5jb21waWxlKGRhdGEpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobWFuaWZlc3Qu
Z2V0KCJrZXkiLCB7ImEiOiAiYWIifSksICJ2YWx1ZV8xIikKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHMobWFuaWZlc3QuZ2V0KCJrZXkiLCB7ImEiOiBbMSwgMl19KSwgInZhbHVlXzIiKQorCisg
ICAgZGVmIHRlc3RfZ2V0XzMoc2VsZik6CisgICAgICAgIGRhdGEgPSAiIiIKK2tleToKKyAgaWYg
YVsxXSA9PSAiYWIiWzFdOiB2YWx1ZV8xCisgIGlmIGFbMV0gPT0gMjogdmFsdWVfMgorICB2YWx1
ZV8zCisiIiIKKworICAgICAgICBtYW5pZmVzdCA9IHNlbGYuY29tcGlsZShkYXRhKQorCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG1hbmlmZXN0LmdldCgia2V5IiwgeyJhIjogImFiIn0pLCAi
dmFsdWVfMSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG1hbmlmZXN0LmdldCgia2V5Iiwg
eyJhIjogWzEsIDJdfSksICJ2YWx1ZV8yIikKKworICAgIGRlZiB0ZXN0X3NldF8wKHNlbGYpOgor
ICAgICAgICBkYXRhID0gIiIiCitrZXk6CisgIGlmIGEgPT0gImEiOiB2YWx1ZV8xCisgIGlmIGEg
PT0gImIiOiB2YWx1ZV8yCisgIHZhbHVlXzMKKyIiIgorICAgICAgICBtYW5pZmVzdCA9IHNlbGYu
Y29tcGlsZShkYXRhKQorCisgICAgICAgIG1hbmlmZXN0LnNldCgibmV3X2tleSIsICJ2YWx1ZV9u
ZXciKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG1hbmlmZXN0LmdldCgibmV3X2tleSIp
LCAidmFsdWVfbmV3IikKKworICAgIGRlZiB0ZXN0X3NldF8xKHNlbGYpOgorICAgICAgICBkYXRh
ID0gIiIiCitrZXk6CisgIGlmIGEgPT0gImEiOiB2YWx1ZV8xCisgIGlmIGEgPT0gImIiOiB2YWx1
ZV8yCisgIHZhbHVlXzMKKyIiIgorCisgICAgICAgIG1hbmlmZXN0ID0gc2VsZi5jb21waWxlKGRh
dGEpCisKKyAgICAgICAgbWFuaWZlc3Quc2V0KCJrZXkiLCAidmFsdWVfbmV3IikKKworICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhtYW5pZmVzdC5nZXQoImtleSIpLCAidmFsdWVfbmV3IikKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobWFuaWZlc3QuZ2V0KCJrZXkiLCB7ImEiOiAiYSJ9KSwg
InZhbHVlXzEiKQorCisgICAgZGVmIHRlc3Rfc2V0XzIoc2VsZik6CisgICAgICAgIGRhdGEgPSAi
IiIKK2tleToKKyAgaWYgYSA9PSAiYSI6IHZhbHVlXzEKKyAgaWYgYSA9PSAiYiI6IHZhbHVlXzIK
KyAgdmFsdWVfMworIiIiCisKKyAgICAgICAgbWFuaWZlc3QgPSBzZWxmLmNvbXBpbGUoZGF0YSkK
KworICAgICAgICBleHByID0gQmluYXJ5RXhwcmVzc2lvbk5vZGUoQmluYXJ5T3BlcmF0b3JOb2Rl
KCI9PSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGVOb2Rl
KCJhIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOdW1iZXJOb2RlKCIx
IikpCisKKyAgICAgICAgbWFuaWZlc3Quc2V0KCJrZXkiLCAidmFsdWVfbmV3IiwgZXhwcikKKwor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhtYW5pZmVzdC5nZXQoImtleSIsIHsiYSI6IDF9KSwg
InZhbHVlX25ldyIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG1hbmlmZXN0LmdldCgia2V5
IiwgeyJhIjogImEifSksICJ2YWx1ZV8xIikKKworICAgIGRlZiB0ZXN0X2FwaV8wKHNlbGYpOgor
ICAgICAgICBkYXRhID0gIiIiCitrZXk6CisgIGlmIGEgPT0gMS41OiB2YWx1ZV8xCisgIHZhbHVl
XzIKK2tleV8xOiBvdGhlcl92YWx1ZQorIiIiCisgICAgICAgIG1hbmlmZXN0ID0gc2VsZi5jb21w
aWxlKGRhdGEpCisKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShtYW5pZmVzdC5pc19lbXB0eSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobWFuaWZlc3Qucm9vdCwgbWFuaWZlc3QpCisgICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYW5pZmVzdC5oYXNfa2V5KCJrZXlfMSIpKQorICAgICAgICBz
ZWxmLmFzc2VydEZhbHNlKG1hbmlmZXN0Lmhhc19rZXkoImtleV8yIikpCisKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoc2V0KG1hbmlmZXN0Lml0ZXJrZXlzKCkpLCBzZXQoWyJrZXkiLCAia2V5
XzEiXSkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVzdF9w
YXJzZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVzdF9wYXJzZXIucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzY1Yzk4NGY0MmY1NmQ0Yjg4OGE1YTVlYjgxNzE0NzQ4NTJmZmJlMwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3BhcnNl
ci5weQpAQCAtMCwwICsxLDc1IEBACitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSBjU3RyaW5nSU8g
aW1wb3J0IFN0cmluZ0lPCisKK2Zyb20gLi4gaW1wb3J0IHBhcnNlcgorCisjIFRoZXJlIGFyZW4n
dCBtYW55IHRlc3RzIGhlcmUgYmVjYXVzZSBpdCB0dXJucyBvdXQgdG8gYmUgd2F5IG1vcmUgY29u
dmVuaWVudCB0bworIyB1c2UgdGVzdF9zZXJpYWxpemVyIGZvciB0aGUgbWFqb3JpdHkgb2YgY2Fz
ZXMKKworCitjbGFzcyBUZXN0RXhwcmVzc2lvbih1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVm
IHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLnBhcnNlciA9IHBhcnNlci5QYXJzZXIoKQorCisg
ICAgZGVmIHBhcnNlKHNlbGYsIGlucHV0X3N0cik6CisgICAgICAgIHJldHVybiBzZWxmLnBhcnNl
ci5wYXJzZShTdHJpbmdJTyhpbnB1dF9zdHIpKQorCisgICAgZGVmIGNvbXBhcmUoc2VsZiwgaW5w
dXRfdGV4dCwgZXhwZWN0ZWQpOgorICAgICAgICBhY3R1YWwgPSBzZWxmLnBhcnNlKGlucHV0X3Rl
eHQpCisgICAgICAgIHNlbGYubWF0Y2goZXhwZWN0ZWQsIGFjdHVhbCkKKworICAgIGRlZiBtYXRj
aChzZWxmLCBleHBlY3RlZF9ub2RlLCBhY3R1YWxfbm9kZSk6CisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKGV4cGVjdGVkX25vZGVbMF0sIGFjdHVhbF9ub2RlLl9fY2xhc3NfXy5fX25hbWVfXykK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZXhwZWN0ZWRfbm9kZVsxXSwgYWN0dWFsX25vZGUu
ZGF0YSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobGVuKGV4cGVjdGVkX25vZGVbMl0pLCBs
ZW4oYWN0dWFsX25vZGUuY2hpbGRyZW4pKQorICAgICAgICBmb3IgZXhwZWN0ZWRfY2hpbGQsIGFj
dHVhbF9jaGlsZCBpbiB6aXAoZXhwZWN0ZWRfbm9kZVsyXSwgYWN0dWFsX25vZGUuY2hpbGRyZW4p
OgorICAgICAgICAgICAgc2VsZi5tYXRjaChleHBlY3RlZF9jaGlsZCwgYWN0dWFsX2NoaWxkKQor
CisgICAgZGVmIHRlc3RfZXhwcl8wKHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUoCisgICAg
ICAgICAgICAiIiIKK2tleToKKyAgaWYgeCA9PSAxIDogdmFsdWUiIiIsCisgICAgICAgICAgICBb
IkRhdGFOb2RlIiwgTm9uZSwKKyAgICAgICAgICAgICBbWyJLZXlWYWx1ZU5vZGUiLCAia2V5IiwK
KyAgICAgICAgICAgICAgIFtbIkNvbmRpdGlvbmFsTm9kZSIsIE5vbmUsCisgICAgICAgICAgICAg
ICAgIFtbIkJpbmFyeUV4cHJlc3Npb25Ob2RlIiwgTm9uZSwKKyAgICAgICAgICAgICAgICAgICBb
WyJCaW5hcnlPcGVyYXRvck5vZGUiLCAiPT0iLCBbXV0sCisgICAgICAgICAgICAgICAgICAgIFsi
VmFyaWFibGVOb2RlIiwgIngiLCBbXV0sCisgICAgICAgICAgICAgICAgICAgICAgIFsiTnVtYmVy
Tm9kZSIsICIxIiwgW11dCisgICAgICAgICAgICAgICAgICAgIF1dLAorICAgICAgICAgICAgICAg
ICAgICAgWyJWYWx1ZU5vZGUiLCAidmFsdWUiLCBbXV0sCisgICAgICAgICAgICAgICAgICBdXV1d
XV0KKyAgICAgICAgKQorCisgICAgZGVmIHRlc3RfZXhwcl8xKHNlbGYpOgorICAgICAgICBzZWxm
LmNvbXBhcmUoCisgICAgICAgICAgICAiIiIKK2tleToKKyAgaWYgbm90IHggYW5kIHkgOiB2YWx1
ZSIiIiwKKyAgICAgICAgICAgIFsiRGF0YU5vZGUiLCBOb25lLAorICAgICAgICAgICAgIFtbIktl
eVZhbHVlTm9kZSIsICJrZXkiLAorICAgICAgICAgICAgICAgW1siQ29uZGl0aW9uYWxOb2RlIiwg
Tm9uZSwKKyAgICAgICAgICAgICAgICAgW1siQmluYXJ5RXhwcmVzc2lvbk5vZGUiLCBOb25lLAor
ICAgICAgICAgICAgICAgICAgIFtbIkJpbmFyeU9wZXJhdG9yTm9kZSIsICJhbmQiLCBbXV0sCisg
ICAgICAgICAgICAgICAgICAgIFsiVW5hcnlFeHByZXNzaW9uTm9kZSIsIE5vbmUsCisgICAgICAg
ICAgICAgICAgICAgICAgIFtbIlVuYXJ5T3BlcmF0b3JOb2RlIiwgIm5vdCIsIFtdXSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIFsiVmFyaWFibGVOb2RlIiwgIngiLCBbXV0KKyAgICAgICAgICAg
ICAgICAgICAgICAgIF1dLAorICAgICAgICAgICAgICAgICAgICAgICBbIlZhcmlhYmxlTm9kZSIs
ICJ5IiwgW11dCisgICAgICAgICAgICAgICAgICAgIF1dLAorICAgICAgICAgICAgICAgICAgICAg
WyJWYWx1ZU5vZGUiLCAidmFsdWUiLCBbXV0sCisgICAgICAgICAgICAgICAgICBdXV1dXV0KKyAg
ICAgICAgKQorCisgICAgZGVmIHRlc3RfYXRvbV8wKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYu
YXNzZXJ0UmFpc2VzKHBhcnNlci5QYXJzZUVycm9yKToKKyAgICAgICAgICAgIHNlbGYucGFyc2Uo
ImtleTogQFVua25vd24iKQorCisgICAgZGVmIHRlc3RfYXRvbV8xKHNlbGYpOgorICAgICAgICB3
aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHBhcnNlci5QYXJzZUVycm9yKToKKyAgICAgICAgICAgIHNl
bGYucGFyc2UoImtleTogQHRydWUiKQorCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAg
IHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rl
c3RzL3Rlc3Rfc2VyaWFsaXplci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90
ZXN0X3NlcmlhbGl6ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjkwOGVhNGMxZTAyMGRkMWFhZmRkOGRhMTRm
Mzg3YzdjNDhjMDAwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVz
dC90ZXN0cy90ZXN0X3NlcmlhbGl6ZXIucHkKQEAgLTAsMCArMSwyMjcgQEAKK2ltcG9ydCBzeXMK
K2ltcG9ydCB1bml0dGVzdAorCitmcm9tIGNTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8KKworaW1w
b3J0IHB5dGVzdAorCitmcm9tIC4uIGltcG9ydCBwYXJzZXIsIHNlcmlhbGl6ZXIKKworCitjbGFz
cyBUb2tlbml6ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgc2V0VXAoc2VsZik6
CisgICAgICAgIHNlbGYuc2VyaWFsaXplciA9IHNlcmlhbGl6ZXIuTWFuaWZlc3RTZXJpYWxpemVy
KCkKKyAgICAgICAgc2VsZi5wYXJzZXIgPSBwYXJzZXIuUGFyc2VyKCkKKworICAgIGRlZiBzZXJp
YWxpemUoc2VsZiwgaW5wdXRfc3RyKToKKyAgICAgICAgcmV0dXJuIHNlbGYuc2VyaWFsaXplci5z
ZXJpYWxpemUoc2VsZi5wYXJzZXIucGFyc2UoaW5wdXRfc3RyKSkKKworICAgIGRlZiBjb21wYXJl
KHNlbGYsIGlucHV0X3N0ciwgZXhwZWN0ZWQ9Tm9uZSk6CisgICAgICAgIGlmIGV4cGVjdGVkIGlz
IE5vbmU6CisgICAgICAgICAgICBleHBlY3RlZCA9IGlucHV0X3N0cgorICAgICAgICBleHBlY3Rl
ZCA9IGV4cGVjdGVkLmVuY29kZSgidXRmOCIpCisgICAgICAgIGFjdHVhbCA9IHNlbGYuc2VyaWFs
aXplKGlucHV0X3N0cikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoYWN0dWFsLCBleHBlY3Rl
ZCkKKworICAgIGRlZiB0ZXN0XzAoc2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZSgiIiJrZXk6
IHZhbHVlCitbSGVhZGluZyAxXQorICBvdGhlcl9rZXk6IG90aGVyX3ZhbHVlCisiIiIpCisKKyAg
ICBkZWYgdGVzdF8xKHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUoIiIia2V5OiB2YWx1ZQor
W0hlYWRpbmcgMV0KKyAgb3RoZXJfa2V5OgorICAgIGlmIGEgb3IgYjogb3RoZXJfdmFsdWUKKyIi
IikKKworICAgIGRlZiB0ZXN0XzIoc2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZSgiIiJrZXk6
IHZhbHVlCitbSGVhZGluZyAxXQorICBvdGhlcl9rZXk6CisgICAgaWYgYSBvciBiOiBvdGhlcl92
YWx1ZQorICAgIGZhbGxiYWNrX3ZhbHVlCisiIiIpCisKKyAgICBkZWYgdGVzdF8zKHNlbGYpOgor
ICAgICAgICBzZWxmLmNvbXBhcmUoIiIia2V5OiB2YWx1ZQorW0hlYWRpbmcgMV0KKyAgb3RoZXJf
a2V5OgorICAgIGlmIGEgPT0gMTogb3RoZXJfdmFsdWUKKyAgICBmYWxsYmFja192YWx1ZQorIiIi
KQorCisgICAgZGVmIHRlc3RfNChzZWxmKToKKyAgICAgICAgc2VsZi5jb21wYXJlKCIiImtleTog
dmFsdWUKK1tIZWFkaW5nIDFdCisgIG90aGVyX2tleToKKyAgICBpZiBhID09ICIxIjogb3RoZXJf
dmFsdWUKKyAgICBmYWxsYmFja192YWx1ZQorIiIiKQorCisgICAgZGVmIHRlc3RfNShzZWxmKToK
KyAgICAgICAgc2VsZi5jb21wYXJlKCIiImtleTogdmFsdWUKK1tIZWFkaW5nIDFdCisgIG90aGVy
X2tleToKKyAgICBpZiBhID09ICJhYmMiWzFdOiBvdGhlcl92YWx1ZQorICAgIGZhbGxiYWNrX3Zh
bHVlCisiIiIpCisKKyAgICBkZWYgdGVzdF82KHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUo
IiIia2V5OiB2YWx1ZQorW0hlYWRpbmcgMV0KKyAgb3RoZXJfa2V5OgorICAgIGlmIGEgPT0gImFi
YyJbY106IG90aGVyX3ZhbHVlCisgICAgZmFsbGJhY2tfdmFsdWUKKyIiIikKKworICAgIGRlZiB0
ZXN0Xzcoc2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZSgiIiJrZXk6IHZhbHVlCitbSGVhZGlu
ZyAxXQorICBvdGhlcl9rZXk6CisgICAgaWYgKGEgb3IgYikgYW5kIGM6IG90aGVyX3ZhbHVlCisg
ICAgZmFsbGJhY2tfdmFsdWUKKyIiIiwKKyIiImtleTogdmFsdWUKK1tIZWFkaW5nIDFdCisgIG90
aGVyX2tleToKKyAgICBpZiBhIG9yIGIgYW5kIGM6IG90aGVyX3ZhbHVlCisgICAgZmFsbGJhY2tf
dmFsdWUKKyIiIikKKworICAgIGRlZiB0ZXN0Xzgoc2VsZik6CisgICAgICAgIHNlbGYuY29tcGFy
ZSgiIiJrZXk6IHZhbHVlCitbSGVhZGluZyAxXQorICBvdGhlcl9rZXk6CisgICAgaWYgYSBvciAo
YiBhbmQgYyk6IG90aGVyX3ZhbHVlCisgICAgZmFsbGJhY2tfdmFsdWUKKyIiIikKKworICAgIGRl
ZiB0ZXN0Xzkoc2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZSgiIiJrZXk6IHZhbHVlCitbSGVh
ZGluZyAxXQorICBvdGhlcl9rZXk6CisgICAgaWYgbm90IChhIGFuZCBiKTogb3RoZXJfdmFsdWUK
KyAgICBmYWxsYmFja192YWx1ZQorIiIiKQorCisgICAgZGVmIHRlc3RfMTAoc2VsZik6CisgICAg
ICAgIHNlbGYuY29tcGFyZSgiIiJrZXk6IHZhbHVlCitbSGVhZGluZyAxXQorICBzb21lX2tleTog
c29tZV92YWx1ZQorCitbSGVhZGluZyAyXQorICBvdGhlcl9rZXk6IG90aGVyX3ZhbHVlCisiIiIp
CisKKyAgICBkZWYgdGVzdF8xMShzZWxmKToKKyAgICAgICAgc2VsZi5jb21wYXJlKCIiImtleToK
KyAgaWYgbm90IGEgYW5kIGIgYW5kIGMgYW5kIGQ6IHRydWUKKyIiIikKKworICAgIGRlZiB0ZXN0
XzEyKHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUoIiIiW0hlYWRpbmcgMV0KKyAga2V5OiBb
YToxLCBiOjJdCisiIiIpCisKKyAgICBkZWYgdGVzdF8xMyhzZWxmKToKKyAgICAgICAgc2VsZi5j
b21wYXJlKCIiImtleTogW2E6MSwgImI6IyJdCisiIiIpCisKKyAgICBkZWYgdGVzdF8xNChzZWxm
KToKKyAgICAgICAgc2VsZi5jb21wYXJlKCIiImtleTogWyIsIl0KKyIiIikKKworICAgIGRlZiB0
ZXN0XzE1KHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUoIiIia2V5OiAsCisiIiIpCisKKyAg
ICBkZWYgdGVzdF8xNihzZWxmKToKKyAgICAgICAgc2VsZi5jb21wYXJlKCIiImtleTogWyJdIiwg
Yl0KKyIiIikKKworICAgIGRlZiB0ZXN0XzE3KHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUo
IiIia2V5OiBdCisiIiIpCisKKyAgICBkZWYgdGVzdF8xOChzZWxmKToKKyAgICAgICAgc2VsZi5j
b21wYXJlKCIiImtleTogXF0KKyAgICAgICAgIiIiLCAiIiJrZXk6IF0KKyIiIikKKworICAgIGRl
ZiB0ZXN0X2VzY2FwZV8wKHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUociIiImtcdFw6eTog
XGFcYlxmXG5cclx0XHYiIiIsCisgICAgICAgICAgICAgICAgICAgICByIiIia1x0XDp5OiBceDA3
XHgwOFx4MGNcblxyXHRceDBiCisiIiIpCisKKyAgICBkZWYgdGVzdF9lc2NhcGVfMShzZWxmKToK
KyAgICAgICAgc2VsZi5jb21wYXJlKHIiIiJrXHgwMDogXHgxMkFceDQ1IiIiLAorICAgICAgICAg
ICAgICAgICAgICAgciIiImtceDAwOiBceDEyQUUKKyIiIikKKworICAgIGRlZiB0ZXN0X2VzY2Fw
ZV8yKHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUociIiImtcdTAwNDV5OiBcdTEyMzRBXHVB
QmM2IiIiLAorICAgICAgICAgICAgICAgICAgICAgdSIiImtFeTogXHUxMjM0QVx1YWJjNgorIiIi
KQorCisgICAgZGVmIHRlc3RfZXNjYXBlXzMoc2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZShy
IiIia1x1MDA0NXk6IFx1MTIzNEFcdUFCYzYiIiIsCisgICAgICAgICAgICAgICAgICAgICB1IiIi
a0V5OiBcdTEyMzRBXHVhYmM2CisiIiIpCisKKyAgICBkZWYgdGVzdF9lc2NhcGVfNChzZWxmKToK
KyAgICAgICAgc2VsZi5jb21wYXJlKHIiIiJrZXk6ICdcdTEyMzRBXHVBQmM2JyIiIiwKKyAgICAg
ICAgICAgICAgICAgICAgIHUiIiJrZXk6IFx1MTIzNEFcdWFiYzYKKyIiIikKKworICAgIGRlZiB0
ZXN0X2VzY2FwZV81KHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUociIiImtleTogW1x1MTIz
NEFcdUFCYzZdIiIiLAorICAgICAgICAgICAgICAgICAgICAgdSIiImtleTogW1x1MTIzNEFcdWFi
YzZdCisiIiIpCisKKyAgICBkZWYgdGVzdF9lc2NhcGVfNihzZWxmKToKKyAgICAgICAgc2VsZi5j
b21wYXJlKHIiIiJrZXk6IFtcdTEyMzRBXHVBQmM2XCxdIiIiLAorICAgICAgICAgICAgICAgICAg
ICAgdSIiImtleTogWyJcdTEyMzRBXHVhYmM2LCJdCisiIiIpCisKKyAgICBkZWYgdGVzdF9lc2Nh
cGVfNyhzZWxmKToKKyAgICAgICAgc2VsZi5jb21wYXJlKHIiIiJrZXk6IFtcLFxdXCNdIiIiLAor
ICAgICAgICAgICAgICAgICAgICAgciIiImtleTogWyIsXSMiXQorIiIiKQorCisgICAgZGVmIHRl
c3RfZXNjYXBlXzgoc2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZShyIiIia2V5OiBcIyIiIiwK
KyAgICAgICAgICAgICAgICAgICAgIHIiIiJrZXk6ICIjIgorIiIiKQorCisgICAgQHB5dGVzdC5t
YXJrLnhmYWlsKHN5cy5tYXh1bmljb2RlID09IDB4RkZGRiwgcmVhc29uPSJuYXJyb3cgdW5pY29k
ZSIpCisgICAgZGVmIHRlc3RfZXNjYXBlXzkoc2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZShy
IiIia2V5OiBcVTEwRkZGRmFiYyIiIiwKKyAgICAgICAgICAgICAgICAgICAgIHUiIiJrZXk6IFxV
MDAxMEZGRkZhYmMKKyIiIikKKworICAgIGRlZiB0ZXN0X2VzY2FwZV8xMChzZWxmKToKKyAgICAg
ICAgc2VsZi5jb21wYXJlKHIiIiJrZXk6IFx1MTBGRmFiIiIiLAorICAgICAgICAgICAgICAgICAg
ICAgdSIiImtleTogXHUxMEZGYWIKKyIiIikKKworICAgIGRlZiB0ZXN0X2VzY2FwZV8xMShzZWxm
KToKKyAgICAgICAgc2VsZi5jb21wYXJlKHIiIiJrZXk6IFxcYWIKKyIiIikKKworICAgIGRlZiB0
ZXN0X2F0b21fMShzZWxmKToKKyAgICAgICAgc2VsZi5jb21wYXJlKHIiIiJrZXk6IEBUcnVlCisi
IiIpCisKKyAgICBkZWYgdGVzdF9hdG9tXzIoc2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZShy
IiIia2V5OiBARmFsc2UKKyIiIikKKworICAgIGRlZiB0ZXN0X2F0b21fMyhzZWxmKToKKyAgICAg
ICAgc2VsZi5jb21wYXJlKHIiIiJrZXk6IEBSZXNldAorIiIiKQorCisgICAgZGVmIHRlc3RfYXRv
bV80KHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUociIiImtleTogW2EsIEBSZXNldCwgYl0K
KyIiIikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3N0
YXRpYy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3N0YXRpYy5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lZDI4NTc4ZDNiZmMzYTVlMTM1NjE3YTMyYzNlNzE5M2M0YzUzYmI5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3Rfc3RhdGlj
LnB5CkBAIC0wLDAgKzEsOTggQEAKK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIGNTdHJpbmdJTyBp
bXBvcnQgU3RyaW5nSU8KKworZnJvbSAuLmJhY2tlbmRzIGltcG9ydCBzdGF0aWMKKworIyBUaGVy
ZSBhcmVuJ3QgbWFueSB0ZXN0cyBoZXJlIGJlY2F1c2UgaXQgdHVybnMgb3V0IHRvIGJlIHdheSBt
b3JlIGNvbnZlbmllbnQgdG8KKyMgdXNlIHRlc3Rfc2VyaWFsaXplciBmb3IgdGhlIG1ham9yaXR5
IG9mIGNhc2VzCisKKworY2xhc3MgVGVzdFN0YXRpYyh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAg
ZGVmIGNvbXBpbGUoc2VsZiwgaW5wdXRfdGV4dCwgaW5wdXRfZGF0YSk6CisgICAgICAgIHJldHVy
biBzdGF0aWMuY29tcGlsZShpbnB1dF90ZXh0LCBpbnB1dF9kYXRhKQorCisgICAgZGVmIHRlc3Rf
Z2V0XzAoc2VsZik6CisgICAgICAgIGRhdGEgPSAiIiIKK2tleTogdmFsdWUKKworW0hlYWRpbmcg
MV0KKyAgb3RoZXJfa2V5OgorICAgIGlmIGEgPT0gMTogdmFsdWVfMQorICAgIGlmIGEgPT0gMjog
dmFsdWVfMgorICAgIHZhbHVlXzMKKyIiIgorCisgICAgICAgIG1hbmlmZXN0ID0gc2VsZi5jb21w
aWxlKGRhdGEsIHsiYSI6IDJ9KQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG1hbmlmZXN0
LmdldCgia2V5IiksICJ2YWx1ZSIpCisgICAgICAgIGNoaWxkcmVuID0gbGlzdChpdGVtIGZvciBp
dGVtIGluIG1hbmlmZXN0Lml0ZXJjaGlsZHJlbigpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cyhsZW4oY2hpbGRyZW4pLCAxKQorICAgICAgICBzZWN0aW9uID0gY2hpbGRyZW5bMF0KKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VjdGlvbi5uYW1lLCAiSGVhZGluZyAxIikKKworICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhzZWN0aW9uLmdldCgib3RoZXJfa2V5IiksICJ2YWx1ZV8yIikK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VjdGlvbi5nZXQoImtleSIpLCAidmFsdWUiKQor
CisgICAgZGVmIHRlc3RfZ2V0XzEoc2VsZik6CisgICAgICAgIGRhdGEgPSAiIiIKK2tleTogdmFs
dWUKKworW0hlYWRpbmcgMV0KKyAgb3RoZXJfa2V5OgorICAgIGlmIGEgPT0gMTogdmFsdWVfMQor
ICAgIGlmIGEgPT0gMjogdmFsdWVfMgorICAgIHZhbHVlXzMKKyIiIgorICAgICAgICBtYW5pZmVz
dCA9IHNlbGYuY29tcGlsZShkYXRhLCB7ImEiOiAzfSkKKworICAgICAgICBjaGlsZHJlbiA9IGxp
c3QoaXRlbSBmb3IgaXRlbSBpbiBtYW5pZmVzdC5pdGVyY2hpbGRyZW4oKSkKKyAgICAgICAgc2Vj
dGlvbiA9IGNoaWxkcmVuWzBdCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNlY3Rpb24uZ2V0
KCJvdGhlcl9rZXkiKSwgInZhbHVlXzMiKQorCisgICAgZGVmIHRlc3RfZ2V0XzMoc2VsZik6Cisg
ICAgICAgIGRhdGEgPSAiIiJrZXk6CisgIGlmIGEgPT0gIjEiOiB2YWx1ZV8xCisgIGlmIGFbMF0g
PT0gImFiIlswXTogdmFsdWVfMgorIiIiCisgICAgICAgIG1hbmlmZXN0ID0gc2VsZi5jb21waWxl
KGRhdGEsIHsiYSI6ICIxIn0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKG1hbmlmZXN0Lmdl
dCgia2V5IiksICJ2YWx1ZV8xIikKKworICAgICAgICBtYW5pZmVzdCA9IHNlbGYuY29tcGlsZShk
YXRhLCB7ImEiOiAiYWMifSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMobWFuaWZlc3QuZ2V0
KCJrZXkiKSwgInZhbHVlXzIiKQorCisgICAgZGVmIHRlc3RfZ2V0XzQoc2VsZik6CisgICAgICAg
IGRhdGEgPSAiIiJrZXk6CisgIGlmIG5vdCBhOiB2YWx1ZV8xCisgIHZhbHVlXzIKKyIiIgorICAg
ICAgICBtYW5pZmVzdCA9IHNlbGYuY29tcGlsZShkYXRhLCB7ImEiOiBUcnVlfSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMobWFuaWZlc3QuZ2V0KCJrZXkiKSwgInZhbHVlXzIiKQorCisgICAg
ICAgIG1hbmlmZXN0ID0gc2VsZi5jb21waWxlKGRhdGEsIHsiYSI6IEZhbHNlfSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMobWFuaWZlc3QuZ2V0KCJrZXkiKSwgInZhbHVlXzEiKQorCisgICAg
ZGVmIHRlc3RfYXBpKHNlbGYpOgorICAgICAgICBkYXRhID0gIiIia2V5OgorICBpZiBhID09IDEu
NTogdmFsdWVfMQorICB2YWx1ZV8yCitrZXlfMTogb3RoZXJfdmFsdWUKKyIiIgorICAgICAgICBt
YW5pZmVzdCA9IHNlbGYuY29tcGlsZShkYXRhLCB7ImEiOiAxLjV9KQorCisgICAgICAgIHNlbGYu
YXNzZXJ0RmFsc2UobWFuaWZlc3QuaXNfZW1wdHkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KG1hbmlmZXN0LnJvb3QsIG1hbmlmZXN0KQorICAgICAgICBzZWxmLmFzc2VydFRydWUobWFuaWZl
c3QuaGFzX2tleSgia2V5XzEiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShtYW5pZmVzdC5o
YXNfa2V5KCJrZXlfMiIpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNldChtYW5pZmVz
dC5pdGVya2V5cygpKSwgc2V0KFsia2V5IiwgImtleV8xIl0pKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyhzZXQobWFuaWZlc3QuaXRlcnZhbHVlcygpKSwgc2V0KFsidmFsdWVfMSIsICJvdGhl
cl92YWx1ZSJdKSkKKworICAgIGRlZiB0ZXN0X2lzX2VtcHR5XzEoc2VsZik6CisgICAgICAgIGRh
dGEgPSAiIiIKK1tTZWN0aW9uXQorICBbU3Vic2VjdGlvbl0KKyIiIgorICAgICAgICBtYW5pZmVz
dCA9IHNlbGYuY29tcGlsZShkYXRhLCB7fSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUobWFu
aWZlc3QuaXNfZW1wdHkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVz
dHMvdGVzdF90b2tlbml6ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVz
dF90b2tlbml6ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTY0Y2UwYzdiYjdkOGQwODlhOGNiMTM2NWMwNDc3
YTA4NjUyZWFjYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90
ZXN0cy90ZXN0X3Rva2VuaXplci5weQpAQCAtMCwwICsxLDM0NCBAQAoraW1wb3J0IHN5cworaW1w
b3J0IG9zCitpbXBvcnQgdW5pdHRlc3QKKworc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguYWJz
cGF0aCgiLi4iKSkKK2Zyb20gY1N0cmluZ0lPIGltcG9ydCBTdHJpbmdJTworCitmcm9tIC4uIGlt
cG9ydCBwYXJzZXIKK2Zyb20gLi5wYXJzZXIgaW1wb3J0IHRva2VuX3R5cGVzCisKKworY2xhc3Mg
VG9rZW5pemVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHNldFVwKHNlbGYpOgor
ICAgICAgICBzZWxmLnRva2VuaXplciA9IHBhcnNlci5Ub2tlbml6ZXIoKQorCisgICAgZGVmIHRv
a2VuaXplKHNlbGYsIGlucHV0X3N0cik6CisgICAgICAgIHJ2ID0gW10KKyAgICAgICAgZm9yIGl0
ZW0gaW4gc2VsZi50b2tlbml6ZXIudG9rZW5pemUoU3RyaW5nSU8oaW5wdXRfc3RyKSk6CisgICAg
ICAgICAgICBydi5hcHBlbmQoaXRlbSkKKyAgICAgICAgICAgIGlmIGl0ZW1bMF0gPT0gdG9rZW5f
dHlwZXMuZW9mOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIHJldHVybiBydgorCisg
ICAgZGVmIGNvbXBhcmUoc2VsZiwgaW5wdXRfdGV4dCwgZXhwZWN0ZWQpOgorICAgICAgICBleHBl
Y3RlZCA9IGV4cGVjdGVkICsgWyh0b2tlbl90eXBlcy5lb2YsIE5vbmUpXQorICAgICAgICBhY3R1
YWwgPSBzZWxmLnRva2VuaXplKGlucHV0X3RleHQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KGFjdHVhbCwgZXhwZWN0ZWQpCisKKyAgICBkZWYgdGVzdF9oZWFkaW5nXzAoc2VsZik6CisgICAg
ICAgIHNlbGYuY29tcGFyZSgiIiJbSGVhZGluZyB0ZXh0XSIiIiwKKyAgICAgICAgICAgICAgICAg
ICAgIFsodG9rZW5fdHlwZXMucGFyZW4sICJbIiksCisgICAgICAgICAgICAgICAgICAgICAgKHRv
a2VuX3R5cGVzLnN0cmluZywgIkhlYWRpbmcgdGV4dCIpLAorICAgICAgICAgICAgICAgICAgICAg
ICh0b2tlbl90eXBlcy5wYXJlbiwgIl0iKV0pCisKKyAgICBkZWYgdGVzdF9oZWFkaW5nXzEoc2Vs
Zik6CisgICAgICAgIHNlbGYuY29tcGFyZSgiIiJbSGVhZGluZyBbdGV4dFxdXSIiIiwKKyAgICAg
ICAgICAgICAgICAgICAgIFsodG9rZW5fdHlwZXMucGFyZW4sICJbIiksCisgICAgICAgICAgICAg
ICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywgIkhlYWRpbmcgW3RleHRdIiksCisgICAgICAg
ICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnBhcmVuLCAiXSIpXSkKKworICAgIGRlZiB0ZXN0
X2hlYWRpbmdfMihzZWxmKToKKyAgICAgICAgc2VsZi5jb21wYXJlKCIiIltIZWFkaW5nICN0ZXh0
XSIiIiwKKyAgICAgICAgICAgICAgICAgICAgIFsodG9rZW5fdHlwZXMucGFyZW4sICJbIiksCisg
ICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywgIkhlYWRpbmcgI3RleHQi
KSwKKyAgICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMucGFyZW4sICJdIildKQorCisg
ICAgZGVmIHRlc3RfaGVhZGluZ18zKHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUoIiIiW0hl
YWRpbmcgW1xddGV4dF0iIiIsCisgICAgICAgICAgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnBh
cmVuLCAiWyIpLAorICAgICAgICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcsICJI
ZWFkaW5nIFtddGV4dCIpLAorICAgICAgICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5wYXJl
biwgIl0iKV0pCisKKyAgICBkZWYgdGVzdF9oZWFkaW5nXzQoc2VsZik6CisgICAgICAgIHdpdGgg
c2VsZi5hc3NlcnRSYWlzZXMocGFyc2VyLlBhcnNlRXJyb3IpOgorICAgICAgICAgICAgc2VsZi50
b2tlbml6ZSgiW0hlYWRpbmciKQorCisgICAgZGVmIHRlc3RfaGVhZGluZ181KHNlbGYpOgorICAg
ICAgICBzZWxmLmNvbXBhcmUoIiIiW0hlYWRpbmcgW1xddGV4dF0gI2NvbW1lbnQiIiIsCisgICAg
ICAgICAgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnBhcmVuLCAiWyIpLAorICAgICAgICAgICAg
ICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcsICJIZWFkaW5nIFtddGV4dCIpLAorICAgICAg
ICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5wYXJlbiwgIl0iKV0pCisKKyAgICBkZWYgdGVz
dF9oZWFkaW5nXzYoc2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZShyIiIiW0hlYWRpbmcgXHR0
ZXh0XSIiIiwKKyAgICAgICAgICAgICAgICAgICAgIFsodG9rZW5fdHlwZXMucGFyZW4sICJbIiks
CisgICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywgIkhlYWRpbmcgXHR0
ZXh0IiksCisgICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnBhcmVuLCAiXSIpXSkK
KworICAgIGRlZiB0ZXN0X2tleV8wKHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUoIiIia2V5
OnZhbHVlIiIiLAorICAgICAgICAgICAgICAgICAgICAgWyh0b2tlbl90eXBlcy5zdHJpbmcsICJr
ZXkiKSwKKyAgICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc2VwYXJhdG9yLCAiOiIp
LAorICAgICAgICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcsICJ2YWx1ZSIpXSkK
KworICAgIGRlZiB0ZXN0X2tleV8xKHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUoIiIia2V5
ICA6ICB2YWx1ZSIiIiwKKyAgICAgICAgICAgICAgICAgICAgIFsodG9rZW5fdHlwZXMuc3RyaW5n
LCAia2V5IiksCisgICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnNlcGFyYXRvciwg
IjoiKSwKKyAgICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCAidmFsdWUi
KV0pCisKKyAgICBkZWYgdGVzdF9rZXlfMihzZWxmKToKKyAgICAgICAgc2VsZi5jb21wYXJlKCIi
ImtleSAgOiAgdmFsIHVlIiIiLAorICAgICAgICAgICAgICAgICAgICAgWyh0b2tlbl90eXBlcy5z
dHJpbmcsICJrZXkiKSwKKyAgICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc2VwYXJh
dG9yLCAiOiIpLAorICAgICAgICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcsICJ2
YWwgdWUiKV0pCisKKyAgICBkZWYgdGVzdF9rZXlfMyhzZWxmKToKKyAgICAgICAgc2VsZi5jb21w
YXJlKCIiImtleTogdmFsdWUjY29tbWVudCIiIiwKKyAgICAgICAgICAgICAgICAgICAgIFsodG9r
ZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCisgICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5
cGVzLnNlcGFyYXRvciwgIjoiKSwKKyAgICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMu
c3RyaW5nLCAidmFsdWUiKV0pCisKKyAgICBkZWYgdGVzdF9rZXlfNChzZWxmKToKKyAgICAgICAg
d2l0aCBzZWxmLmFzc2VydFJhaXNlcyhwYXJzZXIuUGFyc2VFcnJvcik6CisgICAgICAgICAgICBz
ZWxmLnRva2VuaXplKCIiImtlIHk6IHZhbHVlIiIiKQorCisgICAgZGVmIHRlc3Rfa2V5XzUoc2Vs
Zik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMocGFyc2VyLlBhcnNlRXJyb3IpOgor
ICAgICAgICAgICAgc2VsZi50b2tlbml6ZSgiIiJrZXkiIiIpCisKKyAgICBkZWYgdGVzdF9rZXlf
NihzZWxmKToKKyAgICAgICAgc2VsZi5jb21wYXJlKCIiImtleTogInZhbHVlXCIiIiIsCisgICAg
ICAgICAgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnN0cmluZywgImtleSIpLAorICAgICAgICAg
ICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zZXBhcmF0b3IsICI6IiksCisgICAgICAgICAgICAg
ICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywgInZhbHVlIildKQorCisgICAgZGVmIHRlc3Rf
a2V5Xzcoc2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZSgiIiJrZXk6ICd2YWx1ZSciIiIsCisg
ICAgICAgICAgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnN0cmluZywgImtleSIpLAorICAgICAg
ICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zZXBhcmF0b3IsICI6IiksCisgICAgICAgICAg
ICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywgInZhbHVlIildKQorCisgICAgZGVmIHRl
c3Rfa2V5Xzgoc2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZSgiIiJrZXk6ICIjdmFsdWVcIiIi
IiwKKyAgICAgICAgICAgICAgICAgICAgIFsodG9rZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCisg
ICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnNlcGFyYXRvciwgIjoiKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCAiI3ZhbHVlIildKQorCisgICAg
ZGVmIHRlc3Rfa2V5Xzkoc2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZSgiIiJrZXk6ICcjdmFs
dWVcJyIiIiwKKyAgICAgICAgICAgICAgICAgICAgIFsodG9rZW5fdHlwZXMuc3RyaW5nLCAia2V5
IiksCisgICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnNlcGFyYXRvciwgIjoiKSwK
KyAgICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCAiI3ZhbHVlIildKQor
CisgICAgZGVmIHRlc3Rfa2V5XzEwKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFp
c2VzKHBhcnNlci5QYXJzZUVycm9yKToKKyAgICAgICAgICAgIHNlbGYudG9rZW5pemUoIiIia2V5
OiAidmFsdWUiIiIpCisKKyAgICBkZWYgdGVzdF9rZXlfMTEoc2VsZik6CisgICAgICAgIHdpdGgg
c2VsZi5hc3NlcnRSYWlzZXMocGFyc2VyLlBhcnNlRXJyb3IpOgorICAgICAgICAgICAgc2VsZi50
b2tlbml6ZSgiIiJrZXk6ICd2YWx1ZSIiIikKKworICAgIGRlZiB0ZXN0X2tleV8xMihzZWxmKToK
KyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhwYXJzZXIuUGFyc2VFcnJvcik6CisgICAg
ICAgICAgICBzZWxmLnRva2VuaXplKCIiImtleTogJ3ZhbHVlIiIiKQorCisgICAgZGVmIHRlc3Rf
a2V5XzEzKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHBhcnNlci5QYXJz
ZUVycm9yKToKKyAgICAgICAgICAgIHNlbGYudG9rZW5pemUoIiIia2V5OiAndmFsdWUnIGFiYyIi
IikKKworICAgIGRlZiB0ZXN0X2tleV8xNChzZWxmKToKKyAgICAgICAgc2VsZi5jb21wYXJlKHIi
IiJrZXk6IFxcbmIiIiIsCisgICAgICAgICAgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnN0cmlu
ZywgImtleSIpLAorICAgICAgICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zZXBhcmF0b3Is
ICI6IiksCisgICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywgciJcbmIi
KV0pCisKKyAgICBkZWYgdGVzdF9saXN0XzAoc2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZSgi
IiIKK2tleTogW10iIiIsCisgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnN0cmluZywgImtleSIp
LAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zZXBhcmF0b3IsICI6IiksCisgICAgICAgICAg
ICAgKHRva2VuX3R5cGVzLmxpc3Rfc3RhcnQsICJbIiksCisgICAgICAgICAgICAgKHRva2VuX3R5
cGVzLmxpc3RfZW5kLCAiXSIpXSkKKworICAgIGRlZiB0ZXN0X2xpc3RfMShzZWxmKToKKyAgICAg
ICAgc2VsZi5jb21wYXJlKCIiIgora2V5OiBbYSwgImIiXSIiIiwKKyAgICAgICAgICAgIFsodG9r
ZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnNlcGFy
YXRvciwgIjoiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMubGlzdF9zdGFydCwgIlsiKSwK
KyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCAiYSIpLAorICAgICAgICAgICAgICh0
b2tlbl90eXBlcy5zdHJpbmcsICJiIiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLmxpc3Rf
ZW5kLCAiXSIpXSkKKworICAgIGRlZiB0ZXN0X2xpc3RfMihzZWxmKToKKyAgICAgICAgc2VsZi5j
b21wYXJlKCIiIgora2V5OiBbYSwKKyAgICAgIGJdIiIiLAorICAgICAgICAgICAgWyh0b2tlbl90
eXBlcy5zdHJpbmcsICJrZXkiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc2VwYXJhdG9y
LCAiOiIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5saXN0X3N0YXJ0LCAiWyIpLAorICAg
ICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcsICJhIiksCisgICAgICAgICAgICAgKHRva2Vu
X3R5cGVzLnN0cmluZywgImIiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMubGlzdF9lbmQs
ICJdIildKQorCisgICAgZGVmIHRlc3RfbGlzdF8zKHNlbGYpOgorICAgICAgICBzZWxmLmNvbXBh
cmUoIiIiCitrZXk6IFthLCAjYl0KKyAgICAgIGNdIiIiLAorICAgICAgICAgICAgWyh0b2tlbl90
eXBlcy5zdHJpbmcsICJrZXkiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc2VwYXJhdG9y
LCAiOiIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5saXN0X3N0YXJ0LCAiWyIpLAorICAg
ICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcsICJhIiksCisgICAgICAgICAgICAgKHRva2Vu
X3R5cGVzLnN0cmluZywgImMiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMubGlzdF9lbmQs
ICJdIildKQorCisgICAgZGVmIHRlc3RfbGlzdF80KHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYu
YXNzZXJ0UmFpc2VzKHBhcnNlci5QYXJzZUVycm9yKToKKyAgICAgICAgICAgIHNlbGYudG9rZW5p
emUoIiIia2V5OiBbYSAjYl0KKyAgICAgICAgICAgIGNdIiIiKQorCisgICAgZGVmIHRlc3RfbGlz
dF81KHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHBhcnNlci5QYXJzZUVy
cm9yKToKKyAgICAgICAgICAgIHNlbGYudG9rZW5pemUoIiIia2V5OiBbYSBcXAorICAgICAgICAg
ICAgY10iIiIpCisKKyAgICBkZWYgdGVzdF9saXN0XzYoc2VsZik6CisgICAgICAgIHNlbGYuY29t
cGFyZSgiIiJrZXk6IFthICwgYl0iIiIsCisgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnN0cmlu
ZywgImtleSIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zZXBhcmF0b3IsICI6IiksCisg
ICAgICAgICAgICAgKHRva2VuX3R5cGVzLmxpc3Rfc3RhcnQsICJbIiksCisgICAgICAgICAgICAg
KHRva2VuX3R5cGVzLnN0cmluZywgImEiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc3Ry
aW5nLCAiYiIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5saXN0X2VuZCwgIl0iKV0pCisK
KyAgICBkZWYgdGVzdF9leHByXzAoc2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZSgiIiIKK2tl
eToKKyAgaWYgY29uZCA9PSAxOiB2YWx1ZSIiIiwKKyAgICAgICAgICAgIFsodG9rZW5fdHlwZXMu
c3RyaW5nLCAia2V5IiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnNlcGFyYXRvciwgIjoi
KSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuZ3JvdXBfc3RhcnQsIE5vbmUpLAorICAgICAg
ICAgICAgICh0b2tlbl90eXBlcy5pZGVudCwgImlmIiksCisgICAgICAgICAgICAgKHRva2VuX3R5
cGVzLmlkZW50LCAiY29uZCIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5pZGVudCwgIj09
IiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLm51bWJlciwgIjEiKSwKKyAgICAgICAgICAg
ICAodG9rZW5fdHlwZXMuc2VwYXJhdG9yLCAiOiIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBl
cy5zdHJpbmcsICJ2YWx1ZSIpXSkKKworICAgIGRlZiB0ZXN0X2V4cHJfMShzZWxmKToKKyAgICAg
ICAgc2VsZi5jb21wYXJlKCIiIgora2V5OgorICBpZiBjb25kID09IDE6IHZhbHVlMQorICB2YWx1
ZTIiIiIsCisgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnN0cmluZywgImtleSIpLAorICAgICAg
ICAgICAgICh0b2tlbl90eXBlcy5zZXBhcmF0b3IsICI6IiksCisgICAgICAgICAgICAgKHRva2Vu
X3R5cGVzLmdyb3VwX3N0YXJ0LCBOb25lKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuaWRl
bnQsICJpZiIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5pZGVudCwgImNvbmQiKSwKKyAg
ICAgICAgICAgICAodG9rZW5fdHlwZXMuaWRlbnQsICI9PSIpLAorICAgICAgICAgICAgICh0b2tl
bl90eXBlcy5udW1iZXIsICIxIiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnNlcGFyYXRv
ciwgIjoiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCAidmFsdWUxIiksCisg
ICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywgInZhbHVlMiIpXSkKKworICAgIGRlZiB0
ZXN0X2V4cHJfMihzZWxmKToKKyAgICAgICAgc2VsZi5jb21wYXJlKCIiIgora2V5OgorICBpZiBj
b25kPT0iMSI6IHZhbHVlIiIiLAorICAgICAgICAgICAgWyh0b2tlbl90eXBlcy5zdHJpbmcsICJr
ZXkiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc2VwYXJhdG9yLCAiOiIpLAorICAgICAg
ICAgICAgICh0b2tlbl90eXBlcy5ncm91cF9zdGFydCwgTm9uZSksCisgICAgICAgICAgICAgKHRv
a2VuX3R5cGVzLmlkZW50LCAiaWYiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuaWRlbnQs
ICJjb25kIiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLmlkZW50LCAiPT0iKSwKKyAgICAg
ICAgICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCAiMSIpLAorICAgICAgICAgICAgICh0b2tlbl90
eXBlcy5zZXBhcmF0b3IsICI6IiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywg
InZhbHVlIildKQorCisgICAgZGVmIHRlc3RfZXhwcl8zKHNlbGYpOgorICAgICAgICBzZWxmLmNv
bXBhcmUoIiIiCitrZXk6CisgIGlmIGNvbmQ9PTEuMTogdmFsdWUiIiIsCisgICAgICAgICAgICBb
KHRva2VuX3R5cGVzLnN0cmluZywgImtleSIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5z
ZXBhcmF0b3IsICI6IiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLmdyb3VwX3N0YXJ0LCBO
b25lKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuaWRlbnQsICJpZiIpLAorICAgICAgICAg
ICAgICh0b2tlbl90eXBlcy5pZGVudCwgImNvbmQiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlw
ZXMuaWRlbnQsICI9PSIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5udW1iZXIsICIxLjEi
KSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc2VwYXJhdG9yLCAiOiIpLAorICAgICAgICAg
ICAgICh0b2tlbl90eXBlcy5zdHJpbmcsICJ2YWx1ZSIpXSkKKworICAgIGRlZiB0ZXN0X2V4cHJf
NChzZWxmKToKKyAgICAgICAgc2VsZi5jb21wYXJlKCIiIgora2V5OgorICBpZiBjb25kPT0xLjEg
YW5kIGNvbmQyID09ICJhIjogdmFsdWUiIiIsCisgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnN0
cmluZywgImtleSIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zZXBhcmF0b3IsICI6Iiks
CisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLmdyb3VwX3N0YXJ0LCBOb25lKSwKKyAgICAgICAg
ICAgICAodG9rZW5fdHlwZXMuaWRlbnQsICJpZiIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBl
cy5pZGVudCwgImNvbmQiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuaWRlbnQsICI9PSIp
LAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5udW1iZXIsICIxLjEiKSwKKyAgICAgICAgICAg
ICAodG9rZW5fdHlwZXMuaWRlbnQsICJhbmQiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMu
aWRlbnQsICJjb25kMiIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5pZGVudCwgIj09Iiks
CisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywgImEiKSwKKyAgICAgICAgICAgICAo
dG9rZW5fdHlwZXMuc2VwYXJhdG9yLCAiOiIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5z
dHJpbmcsICJ2YWx1ZSIpXSkKKworICAgIGRlZiB0ZXN0X2V4cHJfNShzZWxmKToKKyAgICAgICAg
c2VsZi5jb21wYXJlKCIiIgora2V5OgorICBpZiAoY29uZD09MS4xICk6IHZhbHVlIiIiLAorICAg
ICAgICAgICAgWyh0b2tlbl90eXBlcy5zdHJpbmcsICJrZXkiKSwKKyAgICAgICAgICAgICAodG9r
ZW5fdHlwZXMuc2VwYXJhdG9yLCAiOiIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5ncm91
cF9zdGFydCwgTm9uZSksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLmlkZW50LCAiaWYiKSwK
KyAgICAgICAgICAgICAodG9rZW5fdHlwZXMucGFyZW4sICIoIiksCisgICAgICAgICAgICAgKHRv
a2VuX3R5cGVzLmlkZW50LCAiY29uZCIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5pZGVu
dCwgIj09IiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLm51bWJlciwgIjEuMSIpLAorICAg
ICAgICAgICAgICh0b2tlbl90eXBlcy5wYXJlbiwgIikiKSwKKyAgICAgICAgICAgICAodG9rZW5f
dHlwZXMuc2VwYXJhdG9yLCAiOiIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcs
ICJ2YWx1ZSIpXSkKKworICAgIGRlZiB0ZXN0X2V4cHJfNihzZWxmKToKKyAgICAgICAgc2VsZi5j
b21wYXJlKCIiIgora2V5OgorICBpZiAiXFx0dGVzdCI6IHZhbHVlIiIiLAorICAgICAgICAgICAg
Wyh0b2tlbl90eXBlcy5zdHJpbmcsICJrZXkiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMu
c2VwYXJhdG9yLCAiOiIpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5ncm91cF9zdGFydCwg
Tm9uZSksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLmlkZW50LCAiaWYiKSwKKyAgICAgICAg
ICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCAiXHR0ZXN0IiksCisgICAgICAgICAgICAgKHRva2Vu
X3R5cGVzLnNlcGFyYXRvciwgIjoiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc3RyaW5n
LCAidmFsdWUiKV0pCisKKyAgICBkZWYgdGVzdF9leHByXzcoc2VsZik6CisgICAgICAgIHdpdGgg
c2VsZi5hc3NlcnRSYWlzZXMocGFyc2VyLlBhcnNlRXJyb3IpOgorICAgICAgICAgICAgc2VsZi50
b2tlbml6ZSgKKyAgICAgICAgICAgICAgICAiIiIKK2tleToKKyAgaWYgMUE6IHZhbHVlIiIiKQor
CisgICAgZGVmIHRlc3RfZXhwcl84KHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFp
c2VzKHBhcnNlci5QYXJzZUVycm9yKToKKyAgICAgICAgICAgIHNlbGYudG9rZW5pemUoCisgICAg
ICAgICAgICAgICAgIiIiCitrZXk6CisgIGlmIDFhOiB2YWx1ZSIiIikKKworICAgIGRlZiB0ZXN0
X2V4cHJfOShzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhwYXJzZXIuUGFy
c2VFcnJvcik6CisgICAgICAgICAgICBzZWxmLnRva2VuaXplKAorICAgICAgICAgICAgICAgICIi
Igora2V5OgorICBpZiAxLjEuMTogdmFsdWUiIiIpCisKKyAgICBkZWYgdGVzdF9leHByXzEwKHNl
bGYpOgorICAgICAgICBzZWxmLmNvbXBhcmUoIiIiCitrZXk6CisgIGlmIDEuOiB2YWx1ZSIiIiwK
KyAgICAgICAgICAgIFsodG9rZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCisgICAgICAgICAgICAg
KHRva2VuX3R5cGVzLnNlcGFyYXRvciwgIjoiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlwZXMu
Z3JvdXBfc3RhcnQsIE5vbmUpLAorICAgICAgICAgICAgICh0b2tlbl90eXBlcy5pZGVudCwgImlm
IiksCisgICAgICAgICAgICAgKHRva2VuX3R5cGVzLm51bWJlciwgIjEuIiksCisgICAgICAgICAg
ICAgKHRva2VuX3R5cGVzLnNlcGFyYXRvciwgIjoiKSwKKyAgICAgICAgICAgICAodG9rZW5fdHlw
ZXMuc3RyaW5nLCAidmFsdWUiKV0pCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAg
dW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVz
dHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdzNjLWlt
cG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdkNDc2NGFjZWEzZjk1M2E0YWEzYjBmYTYyOGJmYjJiMWM0
MjY3MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy93
M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDIyIEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzCisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
K05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0
bWFuaWZlc3QvdGVzdHMvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVz
dHMvdGVzdF9jb25kaXRpb25hbC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90
ZXN0X3BhcnNlci5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3Nlcmlh
bGl6ZXIucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVzdF9zdGF0aWMucHkK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVzdF90b2tlbml6ZXIucHkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci93cHRtYW5pZmVzdC93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTNjNTQ2ZTNmZDc5
NjlkZGJmYzM0YzYwNjJjYTcxNWJmMzA3ZDU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3dwdG1hbmlmZXN0L3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjAgQEAKK1RoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRo
dWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKKworVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9fX2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRt
YW5pZmVzdC9ub2RlLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3BhcnNlci5weQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci93cHRtYW5pZmVzdC9zZXJpYWxpemVyLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvd3B0cnVubmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHJ1bm5lci5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40MDg2M2Q4ZDg2MmQ0YzM3OTIxNmFmZTI2YmI0OWIxYzVhMTkwYWU3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3dwdHJ1bm5lci5weQpAQCAtMCwwICsxLDMzMCBAQAorZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCB1bmljb2RlX2xpdGVyYWxzCisKK2ltcG9ydCBqc29uCitpbXBvcnQg
b3MKK2ltcG9ydCBzeXMKKworaW1wb3J0IGVudmlyb25tZW50IGFzIGVudgoraW1wb3J0IHByb2R1
Y3RzCitpbXBvcnQgdGVzdGxvYWRlcgoraW1wb3J0IHdwdGNvbW1hbmRsaW5lCitpbXBvcnQgd3B0
bG9nZ2luZworaW1wb3J0IHdwdHRlc3QKK2Zyb20gZm9udCBpbXBvcnQgRm9udEluc3RhbGxlcgor
ZnJvbSB0ZXN0cnVubmVyIGltcG9ydCBNYW5hZ2VyR3JvdXAKK2Zyb20gYnJvd3NlcnMuYmFzZSBp
bXBvcnQgTnVsbEJyb3dzZXIKKworaGVyZSA9IG9zLnBhdGguc3BsaXQoX19maWxlX18pWzBdCisK
K2xvZ2dlciA9IE5vbmUKKworIiIiUnVubmVyIGZvciB3ZWItcGxhdGZvcm0tdGVzdHMKKworVGhl
IHJ1bm5lciBoYXMgc2V2ZXJhbCBkZXNpZ24gZ29hbHM6CisKKyogVGVzdHMgc2hvdWxkIHJ1biB3
aXRoIG5vIG1vZGlmaWNhdGlvbiBmcm9tIHVwc3RyZWFtLgorCisqIFRlc3RzIHNob3VsZCBiZSBy
ZWdhcmRlZCBhcyAidW50cnVzdGVkIiBzbyB0aGF0IGVycm9ycywgdGltZW91dHMgYW5kIGV2ZW4K
KyAgY3Jhc2hlcyBpbiB0aGUgdGVzdHMgY2FuIGJlIGhhbmRsZWQgd2l0aG91dCBmYWlsaW5nIHRo
ZSBlbnRpcmUgdGVzdCBydW4uCisKKyogRm9yIHBlcmZvcm1hbmNlIHRlc3RzIGNhbiBiZSBydW4g
aW4gbXVsdGlwbGUgYnJvd3NlcnMgaW4gcGFyYWxsZWwuCisKK1RoZSB1cHN0cmVhbSByZXBvc2l0
b3J5IGhhcyB0aGUgZmFjaWxpdHkgZm9yIGNyZWF0aW5nIGEgdGVzdCBtYW5pZmVzdCBpbiBKU09O
Citmb3JtYXQuIFRoaXMgbWFuaWZlc3QgaXMgdXNlZCBkaXJlY3RseSB0byBkZXRlcm1pbmUgd2hp
Y2ggdGVzdHMgZXhpc3QuIExvY2FsCittZXRhZGF0YSBmaWxlcyBhcmUgdXNlZCB0byBzdG9yZSB0
aGUgZXhwZWN0ZWQgdGVzdCByZXN1bHRzLgorIiIiCisKK2RlZiBzZXR1cF9sb2dnaW5nKCphcmdz
LCAqKmt3YXJncyk6CisgICAgZ2xvYmFsIGxvZ2dlcgorICAgIGxvZ2dlciA9IHdwdGxvZ2dpbmcu
c2V0dXAoKmFyZ3MsICoqa3dhcmdzKQorCisKK2RlZiBnZXRfbG9hZGVyKHRlc3RfcGF0aHMsIHBy
b2R1Y3QsIHNzbF9lbnYsIGRlYnVnPU5vbmUsIHJ1bl9pbmZvX2V4dHJhcz1Ob25lLCAqKmt3YXJn
cyk6CisgICAgaWYgcnVuX2luZm9fZXh0cmFzIGlzIE5vbmU6CisgICAgICAgIHJ1bl9pbmZvX2V4
dHJhcyA9IHt9CisKKyAgICBydW5faW5mbyA9IHdwdHRlc3QuZ2V0X3J1bl9pbmZvKGt3YXJnc1si
cnVuX2luZm8iXSwgcHJvZHVjdCwgZGVidWc9ZGVidWcsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBleHRyYXM9cnVuX2luZm9fZXh0cmFzKQorCisgICAgdGVzdF9tYW5pZmVz
dHMgPSB0ZXN0bG9hZGVyLk1hbmlmZXN0TG9hZGVyKHRlc3RfcGF0aHMsIGZvcmNlX21hbmlmZXN0
X3VwZGF0ZT1rd2FyZ3NbIm1hbmlmZXN0X3VwZGF0ZSJdLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF9kb3dubG9hZD1rd2FyZ3NbIm1hbmlm
ZXN0X2Rvd25sb2FkIl0pLmxvYWQoKQorCisgICAgbWFuaWZlc3RfZmlsdGVycyA9IFtdCisgICAg
bWV0YV9maWx0ZXJzID0gW10KKworICAgIGlmIGt3YXJnc1siaW5jbHVkZSJdIG9yIGt3YXJnc1si
ZXhjbHVkZSJdIG9yIGt3YXJnc1siaW5jbHVkZV9tYW5pZmVzdCJdOgorICAgICAgICBtYW5pZmVz
dF9maWx0ZXJzLmFwcGVuZCh0ZXN0bG9hZGVyLlRlc3RGaWx0ZXIoaW5jbHVkZT1rd2FyZ3NbImlu
Y2x1ZGUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGV4Y2x1ZGU9a3dhcmdzWyJleGNsdWRlIl0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF9wYXRoPWt3YXJnc1siaW5j
bHVkZV9tYW5pZmVzdCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdF9tYW5pZmVzdHM9dGVzdF9tYW5pZmVzdHMpKQorICAgIGlmIGt3
YXJnc1sidGFncyJdOgorICAgICAgICBtZXRhX2ZpbHRlcnMuYXBwZW5kKHRlc3Rsb2FkZXIuVGFn
RmlsdGVyKHRhZ3M9a3dhcmdzWyJ0YWdzIl0pKQorCisgICAgdGVzdF9sb2FkZXIgPSB0ZXN0bG9h
ZGVyLlRlc3RMb2FkZXIodGVzdF9tYW5pZmVzdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAga3dhcmdzWyJ0ZXN0X3R5cGVzIl0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbWFuaWZlc3RfZmlsdGVycz1tYW5pZmVzdF9maWx0ZXJzLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFfZmlsdGVycz1tZXRhX2ZpbHRl
cnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2h1bmtfdHlwZT1r
d2FyZ3NbImNodW5rX3R5cGUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0b3RhbF9jaHVua3M9a3dhcmdzWyJ0b3RhbF9jaHVua3MiXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjaHVua19udW1iZXI9a3dhcmdzWyJ0aGlzX2NodW5r
Il0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZV9odHRw
cz1zc2xfZW52LnNzbF9lbmFibGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNraXBfdGltZW91dD1rd2FyZ3NbInNraXBfdGltZW91dCJdKQorICAgIHJldHVybiBy
dW5faW5mbywgdGVzdF9sb2FkZXIKKworCitkZWYgbGlzdF90ZXN0X2dyb3Vwcyh0ZXN0X3BhdGhz
LCBwcm9kdWN0LCAqKmt3YXJncyk6CisgICAgZW52LmRvX2RlbGF5ZWRfaW1wb3J0cyhsb2dnZXIs
IHRlc3RfcGF0aHMpCisKKyAgICBzc2xfZW52ID0gZW52LnNzbF9lbnYobG9nZ2VyLCAqKmt3YXJn
cykKKworICAgIHJ1bl9pbmZvX2V4dHJhcyA9IHByb2R1Y3RzLmxvYWRfcHJvZHVjdChrd2FyZ3Nb
ImNvbmZpZyJdLCBwcm9kdWN0KVstMV0oKiprd2FyZ3MpCisKKyAgICBydW5faW5mbywgdGVzdF9s
b2FkZXIgPSBnZXRfbG9hZGVyKHRlc3RfcGF0aHMsIHByb2R1Y3QsIHNzbF9lbnYsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mb19leHRyYXM9cnVuX2luZm9f
ZXh0cmFzLCAqKmt3YXJncykKKworICAgIGZvciBpdGVtIGluIHNvcnRlZCh0ZXN0X2xvYWRlci5n
cm91cHMoa3dhcmdzWyJ0ZXN0X3R5cGVzIl0pKToKKyAgICAgICAgcHJpbnQgaXRlbQorCisKK2Rl
ZiBsaXN0X2Rpc2FibGVkKHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKKyAgICBlbnYu
ZG9fZGVsYXllZF9pbXBvcnRzKGxvZ2dlciwgdGVzdF9wYXRocykKKworICAgIHJ2ID0gW10KKwor
ICAgIHJ1bl9pbmZvX2V4dHJhcyA9IHByb2R1Y3RzLmxvYWRfcHJvZHVjdChrd2FyZ3NbImNvbmZp
ZyJdLCBwcm9kdWN0KVstMV0oKiprd2FyZ3MpCisKKyAgICBzc2xfZW52ID0gZW52LnNzbF9lbnYo
bG9nZ2VyLCAqKmt3YXJncykKKworICAgIHJ1bl9pbmZvLCB0ZXN0X2xvYWRlciA9IGdldF9sb2Fk
ZXIodGVzdF9wYXRocywgcHJvZHVjdCwgc3NsX2VudiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJ1bl9pbmZvX2V4dHJhcz1ydW5faW5mb19leHRyYXMsICoqa3dhcmdz
KQorCisgICAgZm9yIHRlc3RfdHlwZSwgdGVzdHMgaW4gdGVzdF9sb2FkZXIuZGlzYWJsZWRfdGVz
dHMuaXRlcml0ZW1zKCk6CisgICAgICAgIGZvciB0ZXN0IGluIHRlc3RzOgorICAgICAgICAgICAg
cnYuYXBwZW5kKHsidGVzdCI6IHRlc3QuaWQsICJyZWFzb24iOiB0ZXN0LmRpc2FibGVkKCl9KQor
ICAgIHByaW50IGpzb24uZHVtcHMocnYsIGluZGVudD0yKQorCisKK2RlZiBsaXN0X3Rlc3RzKHRl
c3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKKyAgICBlbnYuZG9fZGVsYXllZF9pbXBvcnRz
KGxvZ2dlciwgdGVzdF9wYXRocykKKworICAgIHJ2ID0gW10KKworICAgIHNzbF9lbnYgPSBlbnYu
c3NsX2Vudihsb2dnZXIsICoqa3dhcmdzKQorCisgICAgcnVuX2luZm9fZXh0cmFzID0gcHJvZHVj
dHMubG9hZF9wcm9kdWN0KGt3YXJnc1siY29uZmlnIl0sIHByb2R1Y3QpWy0xXSgqKmt3YXJncykK
KworICAgIHJ1bl9pbmZvLCB0ZXN0X2xvYWRlciA9IGdldF9sb2FkZXIodGVzdF9wYXRocywgcHJv
ZHVjdCwgc3NsX2VudiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1
bl9pbmZvX2V4dHJhcz1ydW5faW5mb19leHRyYXMsICoqa3dhcmdzKQorCisgICAgZm9yIHRlc3Qg
aW4gdGVzdF9sb2FkZXIudGVzdF9pZHM6CisgICAgICAgIHByaW50IHRlc3QKKworCitkZWYgZ2V0
X3BhdXNlX2FmdGVyX3Rlc3QodGVzdF9sb2FkZXIsICoqa3dhcmdzKToKKyAgICB0b3RhbF90ZXN0
cyA9IHN1bShsZW4oaXRlbSkgZm9yIGl0ZW0gaW4gdGVzdF9sb2FkZXIudGVzdHMuaXRlcnZhbHVl
cygpKQorICAgIGlmIGt3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdIGlzIE5vbmU6CisgICAgICAg
IGlmIGt3YXJnc1sicmVwZWF0X3VudGlsX3VuZXhwZWN0ZWQiXToKKyAgICAgICAgICAgIHJldHVy
biBGYWxzZQorICAgICAgICBpZiBrd2FyZ3NbInJlcGVhdCJdID09IDEgYW5kIGt3YXJnc1sicmVy
dW4iXSA9PSAxIGFuZCB0b3RhbF90ZXN0cyA9PSAxOgorICAgICAgICAgICAgcmV0dXJuIFRydWUK
KyAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgcmV0dXJuIGt3YXJnc1sicGF1c2VfYWZ0ZXJfdGVz
dCJdCisKKworZGVmIHJ1bl90ZXN0cyhjb25maWcsIHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dh
cmdzKToKKyAgICB3aXRoIHdwdGxvZ2dpbmcuQ2FwdHVyZUlPKGxvZ2dlciwgbm90IGt3YXJnc1si
bm9fY2FwdHVyZV9zdGRpbyJdKToKKyAgICAgICAgZW52LmRvX2RlbGF5ZWRfaW1wb3J0cyhsb2dn
ZXIsIHRlc3RfcGF0aHMpCisKKyAgICAgICAgKGNoZWNrX2FyZ3MsCisgICAgICAgICB0YXJnZXRf
YnJvd3Nlcl9jbHMsIGdldF9icm93c2VyX2t3YXJncywKKyAgICAgICAgIGV4ZWN1dG9yX2NsYXNz
ZXMsIGdldF9leGVjdXRvcl9rd2FyZ3MsCisgICAgICAgICBlbnZfb3B0aW9ucywgZ2V0X2Vudl9l
eHRyYXMsIHJ1bl9pbmZvX2V4dHJhcykgPSBwcm9kdWN0cy5sb2FkX3Byb2R1Y3QoY29uZmlnLCBw
cm9kdWN0KQorCisgICAgICAgIHNzbF9lbnYgPSBlbnYuc3NsX2Vudihsb2dnZXIsICoqa3dhcmdz
KQorICAgICAgICBlbnZfZXh0cmFzID0gZ2V0X2Vudl9leHRyYXMoKiprd2FyZ3MpCisKKyAgICAg
ICAgY2hlY2tfYXJncygqKmt3YXJncykKKworICAgICAgICBpZiBrd2FyZ3NbImluc3RhbGxfZm9u
dHMiXToKKyAgICAgICAgICAgIGVudl9leHRyYXMuYXBwZW5kKEZvbnRJbnN0YWxsZXIoCisgICAg
ICAgICAgICAgICAgZm9udF9kaXI9a3dhcmdzWyJmb250X2RpciJdLAorICAgICAgICAgICAgICAg
IGFoZW09b3MucGF0aC5qb2luKGt3YXJnc1sidGVzdHNfcm9vdCJdLCAiZm9udHMvQWhlbS50dGYi
KQorICAgICAgICAgICAgKSkKKworICAgICAgICBpZiAidGVzdF9sb2FkZXIiIGluIGt3YXJnczoK
KyAgICAgICAgICAgIHJ1bl9pbmZvID0gd3B0dGVzdC5nZXRfcnVuX2luZm8oa3dhcmdzWyJydW5f
aW5mbyJdLCBwcm9kdWN0LCBkZWJ1Zz1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBleHRyYXM9cnVuX2luZm9fZXh0cmFzKCoqa3dhcmdzKSkKKyAgICAg
ICAgICAgIHRlc3RfbG9hZGVyID0ga3dhcmdzWyJ0ZXN0X2xvYWRlciJdCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBydW5faW5mbywgdGVzdF9sb2FkZXIgPSBnZXRfbG9hZGVyKHRlc3RfcGF0
aHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1
Y3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNzbF9l
bnYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9p
bmZvX2V4dHJhcz1ydW5faW5mb19leHRyYXMoKiprd2FyZ3MpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKKworICAgICAgICB0ZXN0X3Nv
dXJjZV9rd2FyZ3MgPSB7InByb2Nlc3NlcyI6IGt3YXJnc1sicHJvY2Vzc2VzIl19CisgICAgICAg
IGlmIGt3YXJnc1sicnVuX2J5X2RpciJdIGlzIEZhbHNlOgorICAgICAgICAgICAgdGVzdF9zb3Vy
Y2VfY2xzID0gdGVzdGxvYWRlci5TaW5nbGVUZXN0U291cmNlCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAjIEEgdmFsdWUgb2YgTm9uZSBpbmRpY2F0ZXMgaW5maW5pdGUgZGVwdGgKKyAgICAg
ICAgICAgIHRlc3Rfc291cmNlX2NscyA9IHRlc3Rsb2FkZXIuUGF0aEdyb3VwZWRTb3VyY2UKKyAg
ICAgICAgICAgIHRlc3Rfc291cmNlX2t3YXJnc1siZGVwdGgiXSA9IGt3YXJnc1sicnVuX2J5X2Rp
ciJdCisKKyAgICAgICAgbG9nZ2VyLmluZm8oIlVzaW5nICVpIGNsaWVudCBwcm9jZXNzZXMiICUg
a3dhcmdzWyJwcm9jZXNzZXMiXSkKKworICAgICAgICB0ZXN0X3RvdGFsID0gMAorICAgICAgICB1
bmV4cGVjdGVkX3RvdGFsID0gMAorCisgICAgICAgIGt3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJd
ID0gZ2V0X3BhdXNlX2FmdGVyX3Rlc3QodGVzdF9sb2FkZXIsICoqa3dhcmdzKQorCisgICAgICAg
IHdpdGggZW52LlRlc3RFbnZpcm9ubWVudCh0ZXN0X3BhdGhzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3NsX2VudiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGt3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAga3dhcmdzWyJkZWJ1Z19pbmZvIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBlbnZfb3B0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudl9l
eHRyYXMpIGFzIHRlc3RfZW52aXJvbm1lbnQ6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAg
ICAgICAgdGVzdF9lbnZpcm9ubWVudC5lbnN1cmVfc3RhcnRlZCgpCisgICAgICAgICAgICBleGNl
cHQgZW52LlRlc3RFbnZpcm9ubWVudEVycm9yIGFzIGU6CisgICAgICAgICAgICAgICAgbG9nZ2Vy
LmNyaXRpY2FsKCJFcnJvciBzdGFydGluZyB0ZXN0IGVudmlyb25tZW50OiAlcyIgJSBlLm1lc3Nh
Z2UpCisgICAgICAgICAgICAgICAgcmFpc2UKKworICAgICAgICAgICAgcmVwZWF0ID0ga3dhcmdz
WyJyZXBlYXQiXQorICAgICAgICAgICAgcmVwZWF0X2NvdW50ID0gMAorICAgICAgICAgICAgcmVw
ZWF0X3VudGlsX3VuZXhwZWN0ZWQgPSBrd2FyZ3NbInJlcGVhdF91bnRpbF91bmV4cGVjdGVkIl0K
KworICAgICAgICAgICAgd2hpbGUgcmVwZWF0X2NvdW50IDwgcmVwZWF0IG9yIHJlcGVhdF91bnRp
bF91bmV4cGVjdGVkOgorICAgICAgICAgICAgICAgIHJlcGVhdF9jb3VudCArPSAxCisgICAgICAg
ICAgICAgICAgaWYgcmVwZWF0X3VudGlsX3VuZXhwZWN0ZWQ6CisgICAgICAgICAgICAgICAgICAg
IGxvZ2dlci5pbmZvKCJSZXBldGl0aW9uICVpIiAlIChyZXBlYXRfY291bnQpKQorICAgICAgICAg
ICAgICAgIGVsaWYgcmVwZWF0ID4gMToKKyAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8o
IlJlcGV0aXRpb24gJWkgLyAlaSIgJSAocmVwZWF0X2NvdW50LCByZXBlYXQpKQorCisgICAgICAg
ICAgICAgICAgdGVzdF9jb3VudCA9IDAKKyAgICAgICAgICAgICAgICB1bmV4cGVjdGVkX2NvdW50
ID0gMAorICAgICAgICAgICAgICAgIGxvZ2dlci5zdWl0ZV9zdGFydCh0ZXN0X2xvYWRlci50ZXN0
X2lkcywgbmFtZT0nd2ViLXBsYXRmb3JtLXRlc3QnLCBydW5faW5mbz1ydW5faW5mbykKKyAgICAg
ICAgICAgICAgICBmb3IgdGVzdF90eXBlIGluIGt3YXJnc1sidGVzdF90eXBlcyJdOgorICAgICAg
ICAgICAgICAgICAgICBsb2dnZXIuaW5mbygiUnVubmluZyAlcyB0ZXN0cyIgJSB0ZXN0X3R5cGUp
CisKKyAgICAgICAgICAgICAgICAgICAgIyBXZWJEcml2ZXIgdGVzdHMgbWF5IGNyZWF0ZSBhbmQg
ZGVzdHJveSBtdWx0aXBsZSBicm93c2VyCisgICAgICAgICAgICAgICAgICAgICMgcHJvY2Vzc2Vz
IGFzIHBhcnQgb2YgdGhlaXIgZXhwZWN0ZWQgYmVoYXZpb3IuIFRoZXNlCisgICAgICAgICAgICAg
ICAgICAgICMgcHJvY2Vzc2VzIGFyZSBtYW5hZ2VkIGJ5IGEgV2ViRHJpdmVyIHNlcnZlciBiaW5h
cnkuIFRoaXMKKyAgICAgICAgICAgICAgICAgICAgIyBvYnZpYXRlcyB0aGUgbmVlZCBmb3Igd3B0
cnVubmVyIHRvIHByb3ZpZGUgYSBicm93c2VyLCBzbworICAgICAgICAgICAgICAgICAgICAjIHRo
ZSBOdWxsQnJvd3NlciBpcyB1c2VkIGluIHBsYWNlIG9mIHRoZSAidGFyZ2V0IiBicm93c2VyCisg
ICAgICAgICAgICAgICAgICAgIGlmIHRlc3RfdHlwZSA9PSAid2RzcGVjIjoKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyb3dzZXJfY2xzID0gTnVsbEJyb3dzZXIKKyAgICAgICAgICAgICAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfY2xzID0gdGFyZ2V0X2Jy
b3dzZXJfY2xzCisKKyAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9rd2FyZ3MgPSBnZXRfYnJv
d3Nlcl9rd2FyZ3ModGVzdF90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3NsX2Vudj1zc2xfZW52LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9
dGVzdF9lbnZpcm9ubWVudC5jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQorCisgICAgICAgICAgICAgICAgICAg
IGV4ZWN1dG9yX2NscyA9IGV4ZWN1dG9yX2NsYXNzZXMuZ2V0KHRlc3RfdHlwZSkKKyAgICAgICAg
ICAgICAgICAgICAgZXhlY3V0b3Jfa3dhcmdzID0gZ2V0X2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5
cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdF9lbnZpcm9ubWVudC5jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5jYWNoZV9t
YW5hZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJ1bl9pbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQorCisgICAgICAgICAgICAgICAgICAgIGlm
IGV4ZWN1dG9yX2NscyBpcyBOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmVy
cm9yKCJVbnN1cHBvcnRlZCB0ZXN0IHR5cGUgJXMgZm9yIHByb2R1Y3QgJXMiICUKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGVzdF90eXBlLCBwcm9kdWN0KSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgICAgICAgICAgZm9yIHRl
c3QgaW4gdGVzdF9sb2FkZXIuZGlzYWJsZWRfdGVzdHNbdGVzdF90eXBlXToKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGxvZ2dlci50ZXN0X3N0YXJ0KHRlc3QuaWQpCisgICAgICAgICAgICAgICAg
ICAgICAgICBsb2dnZXIudGVzdF9lbmQodGVzdC5pZCwgc3RhdHVzPSJTS0lQIikKKworICAgICAg
ICAgICAgICAgICAgICBpZiB0ZXN0X3R5cGUgPT0gInRlc3RoYXJuZXNzIjoKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJ1bl90ZXN0cyA9IHsidGVzdGhhcm5lc3MiOiBbXX0KKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZvciB0ZXN0IGluIHRlc3RfbG9hZGVyLnRlc3RzWyJ0ZXN0aGFybmVzcyJd
OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QudGVzdGRyaXZlciBhbmQgbm90
IGV4ZWN1dG9yX2Nscy5zdXBwb3J0c190ZXN0ZHJpdmVyOgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBsb2dnZXIudGVzdF9zdGFydCh0ZXN0LmlkKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsb2dnZXIudGVzdF9lbmQodGVzdC5pZCwgc3RhdHVzPSJTS0lQIikKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBydW5fdGVzdHNbInRlc3RoYXJuZXNzIl0uYXBwZW5kKHRlc3QpCisgICAgICAgICAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBydW5fdGVzdHMgPSB0ZXN0
X2xvYWRlci50ZXN0cworCisgICAgICAgICAgICAgICAgICAgIHdpdGggTWFuYWdlckdyb3VwKCJ3
ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBrd2FyZ3NbInByb2Nlc3NlcyJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0X3NvdXJjZV9jbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3Rfc291cmNlX2t3YXJncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYnJvd3Nlcl9jbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJyb3dzZXJfa3dhcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
eGVjdXRvcl9jbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1
dG9yX2t3YXJncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdz
WyJyZXJ1biJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3Nb
InBhdXNlX2FmdGVyX3Rlc3QiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAga3dhcmdzWyJwYXVzZV9vbl91bmV4cGVjdGVkIl0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGt3YXJnc1sicmVzdGFydF9vbl91bmV4cGVjdGVkIl0sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1siZGVidWdfaW5mbyJdKSBhcyBt
YW5hZ2VyX2dyb3VwOgorICAgICAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1hbmFnZXJfZ3JvdXAucnVuKHRlc3RfdHlwZSwgcnVuX3Rlc3RzKQor
ICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5jcml0aWNhbCgiTWFpbiB0aHJlYWQgZ290IHNp
Z25hbCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFuYWdlcl9ncm91cC5zdG9wKCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgICAgICAgICB0
ZXN0X2NvdW50ICs9IG1hbmFnZXJfZ3JvdXAudGVzdF9jb3VudCgpCisgICAgICAgICAgICAgICAg
ICAgIHVuZXhwZWN0ZWRfY291bnQgKz0gbWFuYWdlcl9ncm91cC51bmV4cGVjdGVkX2NvdW50KCkK
KworICAgICAgICAgICAgICAgIHRlc3RfdG90YWwgKz0gdGVzdF9jb3VudAorICAgICAgICAgICAg
ICAgIHVuZXhwZWN0ZWRfdG90YWwgKz0gdW5leHBlY3RlZF9jb3VudAorICAgICAgICAgICAgICAg
IGxvZ2dlci5pbmZvKCJHb3QgJWkgdW5leHBlY3RlZCByZXN1bHRzIiAlIHVuZXhwZWN0ZWRfY291
bnQpCisgICAgICAgICAgICAgICAgaWYgcmVwZWF0X3VudGlsX3VuZXhwZWN0ZWQgYW5kIHVuZXhw
ZWN0ZWRfdG90YWwgPiAwOgorICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAg
ICAgIGxvZ2dlci5zdWl0ZV9lbmQoKQorCisgICAgaWYgdGVzdF90b3RhbCA9PSAwOgorICAgICAg
ICBsb2dnZXIuZXJyb3IoIk5vIHRlc3RzIHJhbiIpCisgICAgICAgIHJldHVybiBGYWxzZQorCisg
ICAgcmV0dXJuIHVuZXhwZWN0ZWRfdG90YWwgPT0gMAorCisKK2RlZiBjaGVja19zdGFiaWxpdHko
Kiprd2FyZ3MpOgorICAgIGltcG9ydCBzdGFiaWxpdHkKKyAgICByZXR1cm4gc3RhYmlsaXR5LmNo
ZWNrX3N0YWJpbGl0eShsb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWF4X3RpbWU9a3dhcmdzWyd2ZXJpZnlfbWF4X3RpbWUnXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjaGFvc19tb2RlPWt3YXJnc1sndmVyaWZ5X2NoYW9zX21vZGUn
XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBlYXRfbG9vcD1rd2Fy
Z3NbJ3ZlcmlmeV9yZXBlYXRfbG9vcCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcGVhdF9yZXN0YXJ0PWt3YXJnc1sndmVyaWZ5X3JlcGVhdF9yZXN0YXJ0J10sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0X3Jlc3VsdHM9a3dhcmdz
Wyd2ZXJpZnlfb3V0cHV0X3Jlc3VsdHMnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqKmt3YXJncykKKworZGVmIHN0YXJ0KCoqa3dhcmdzKToKKyAgICBpZiBrd2FyZ3Nb
Imxpc3RfdGVzdF9ncm91cHMiXToKKyAgICAgICAgbGlzdF90ZXN0X2dyb3VwcygqKmt3YXJncykK
KyAgICBlbGlmIGt3YXJnc1sibGlzdF9kaXNhYmxlZCJdOgorICAgICAgICBsaXN0X2Rpc2FibGVk
KCoqa3dhcmdzKQorICAgIGVsaWYga3dhcmdzWyJsaXN0X3Rlc3RzIl06CisgICAgICAgIGxpc3Rf
dGVzdHMoKiprd2FyZ3MpCisgICAgZWxpZiBrd2FyZ3NbInZlcmlmeSJdOgorICAgICAgICBjaGVj
a19zdGFiaWxpdHkoKiprd2FyZ3MpCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIG5vdCBydW5f
dGVzdHMoKiprd2FyZ3MpCisKKworZGVmIG1haW4oKToKKyAgICAiIiJNYWluIGVudHJ5IHBvaW50
IHdoZW4gY2FsbGluZyBmcm9tIHRoZSBjb21tYW5kIGxpbmUiIiIKKyAgICBrd2FyZ3MgPSB3cHRj
b21tYW5kbGluZS5wYXJzZV9hcmdzKCkKKworICAgIHRyeToKKyAgICAgICAgaWYga3dhcmdzWyJw
cmVmc19yb290Il0gaXMgTm9uZToKKyAgICAgICAgICAgIGt3YXJnc1sicHJlZnNfcm9vdCJdID0g
b3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihoZXJlLCAicHJlZnMiKSkKKworICAgICAgICBz
ZXR1cF9sb2dnaW5nKGt3YXJncywgeyJyYXciOiBzeXMuc3Rkb3V0fSkKKworICAgICAgICByZXR1
cm4gc3RhcnQoKiprd2FyZ3MpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgaWYga3dh
cmdzWyJwZGIiXToKKyAgICAgICAgICAgIGltcG9ydCBwZGIKKyAgICAgICAgICAgIGltcG9ydCB0
cmFjZWJhY2sKKyAgICAgICAgICAgIHByaW50IHRyYWNlYmFjay5mb3JtYXRfZXhjKCkKKyAgICAg
ICAgICAgIHBkYi5wb3N0X21vcnRlbSgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlz
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHRlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0
dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45ZjRjMWJlZDEzNTUzNjhiMTg1ZGRhNmYwYjQzMzVlNzkxZDQ0
ZGFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHRlc3QucHkKQEAgLTAsMCAr
MSwzOTYgQEAKK2ltcG9ydCBvcworZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRpY3QK
KworZnJvbSB3cHRtYW5pZmVzdC5wYXJzZXIgaW1wb3J0IGF0b21zCisKK2F0b21fcmVzZXQgPSBh
dG9tc1siUmVzZXQiXQorZW5hYmxlZF90ZXN0cyA9IHNldChbInRlc3RoYXJuZXNzIiwgInJlZnRl
c3QiLCAid2RzcGVjIl0pCisKKworY2xhc3MgUmVzdWx0KG9iamVjdCk6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIHN0YXR1cywgbWVzc2FnZSwgZXhwZWN0ZWQ9Tm9uZSwgZXh0cmE9Tm9uZSk6Cisg
ICAgICAgIGlmIHN0YXR1cyBub3QgaW4gc2VsZi5zdGF0dXNlczoKKyAgICAgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoIlVucmVjb2duaXNlZCBzdGF0dXMgJXMiICUgc3RhdHVzKQorICAgICAgICBz
ZWxmLnN0YXR1cyA9IHN0YXR1cworICAgICAgICBzZWxmLm1lc3NhZ2UgPSBtZXNzYWdlCisgICAg
ICAgIHNlbGYuZXhwZWN0ZWQgPSBleHBlY3RlZAorICAgICAgICBzZWxmLmV4dHJhID0gZXh0cmEK
KworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICI8JXMuJXMgJXM+IiAl
IChzZWxmLl9fbW9kdWxlX18sIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCBzZWxmLnN0YXR1cykK
KworCitjbGFzcyBTdWJ0ZXN0UmVzdWx0KG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IG5hbWUsIHN0YXR1cywgbWVzc2FnZSwgc3RhY2s9Tm9uZSwgZXhwZWN0ZWQ9Tm9uZSk6CisgICAg
ICAgIHNlbGYubmFtZSA9IG5hbWUKKyAgICAgICAgaWYgc3RhdHVzIG5vdCBpbiBzZWxmLnN0YXR1
c2VzOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVW5yZWNvZ25pc2VkIHN0YXR1cyAl
cyIgJSBzdGF0dXMpCisgICAgICAgIHNlbGYuc3RhdHVzID0gc3RhdHVzCisgICAgICAgIHNlbGYu
bWVzc2FnZSA9IG1lc3NhZ2UKKyAgICAgICAgc2VsZi5zdGFjayA9IHN0YWNrCisgICAgICAgIHNl
bGYuZXhwZWN0ZWQgPSBleHBlY3RlZAorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAg
ICByZXR1cm4gIjwlcy4lcyAlcyAlcz4iICUgKHNlbGYuX19tb2R1bGVfXywgc2VsZi5fX2NsYXNz
X18uX19uYW1lX18sIHNlbGYubmFtZSwgc2VsZi5zdGF0dXMpCisKKworY2xhc3MgVGVzdGhhcm5l
c3NSZXN1bHQoUmVzdWx0KToKKyAgICBkZWZhdWx0X2V4cGVjdGVkID0gIk9LIgorICAgIHN0YXR1
c2VzID0gc2V0KFsiT0siLCAiRVJST1IiLCAiVElNRU9VVCIsICJFWFRFUk5BTC1USU1FT1VUIiwg
IkNSQVNIIl0pCisKKworY2xhc3MgVGVzdGhhcm5lc3NTdWJ0ZXN0UmVzdWx0KFN1YnRlc3RSZXN1
bHQpOgorICAgIGRlZmF1bHRfZXhwZWN0ZWQgPSAiUEFTUyIKKyAgICBzdGF0dXNlcyA9IHNldChb
IlBBU1MiLCAiRkFJTCIsICJUSU1FT1VUIiwgIk5PVFJVTiJdKQorCisKK2NsYXNzIFJlZnRlc3RS
ZXN1bHQoUmVzdWx0KToKKyAgICBkZWZhdWx0X2V4cGVjdGVkID0gIlBBU1MiCisgICAgc3RhdHVz
ZXMgPSBzZXQoWyJQQVNTIiwgIkZBSUwiLCAiRVJST1IiLCAiVElNRU9VVCIsICJFWFRFUk5BTC1U
SU1FT1VUIiwgIkNSQVNIIl0pCisKKworY2xhc3MgV2RzcGVjUmVzdWx0KFJlc3VsdCk6CisgICAg
ZGVmYXVsdF9leHBlY3RlZCA9ICJPSyIKKyAgICBzdGF0dXNlcyA9IHNldChbIk9LIiwgIkVSUk9S
IiwgIlRJTUVPVVQiLCAiRVhURVJOQUwtVElNRU9VVCIsICJDUkFTSCJdKQorCisKK2NsYXNzIFdk
c3BlY1N1YnRlc3RSZXN1bHQoU3VidGVzdFJlc3VsdCk6CisgICAgZGVmYXVsdF9leHBlY3RlZCA9
ICJQQVNTIgorICAgIHN0YXR1c2VzID0gc2V0KFsiUEFTUyIsICJGQUlMIiwgIkVSUk9SIl0pCisK
KworZGVmIGdldF9ydW5faW5mbyhtZXRhZGF0YV9yb290LCBwcm9kdWN0LCAqKmt3YXJncyk6Cisg
ICAgcmV0dXJuIFJ1bkluZm8obWV0YWRhdGFfcm9vdCwgcHJvZHVjdCwgKiprd2FyZ3MpCisKKwor
Y2xhc3MgUnVuSW5mbyhkaWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWV0YWRhdGFfcm9v
dCwgcHJvZHVjdCwgZGVidWcsIGV4dHJhcz1Ob25lKToKKyAgICAgICAgaW1wb3J0IG1vemluZm8K
KworICAgICAgICBzZWxmLl91cGRhdGVfbW96aW5mbyhtZXRhZGF0YV9yb290KQorICAgICAgICBz
ZWxmLnVwZGF0ZShtb3ppbmZvLmluZm8pCisgICAgICAgIHNlbGZbInByb2R1Y3QiXSA9IHByb2R1
Y3QKKyAgICAgICAgaWYgZGVidWcgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmWyJkZWJ1
ZyJdID0gZGVidWcKKyAgICAgICAgZWxpZiAiZGVidWciIG5vdCBpbiBzZWxmOgorICAgICAgICAg
ICAgIyBEZWZhdWx0IHRvIHJlbGVhc2UKKyAgICAgICAgICAgIHNlbGZbImRlYnVnIl0gPSBGYWxz
ZQorICAgICAgICBpZiBwcm9kdWN0ID09ICJmaXJlZm94IiBhbmQgInN0eWxvIiBub3QgaW4gc2Vs
ZjoKKyAgICAgICAgICAgIHNlbGZbInN0eWxvIl0gPSBGYWxzZQorICAgICAgICBpZiAiU1RZTE9f
Rk9SQ0VfRU5BQkxFRCIgaW4gb3MuZW52aXJvbjoKKyAgICAgICAgICAgIHNlbGZbInN0eWxvIl0g
PSBUcnVlCisgICAgICAgIGlmICJTVFlMT19GT1JDRV9ESVNBQkxFRCIgaW4gb3MuZW52aXJvbjoK
KyAgICAgICAgICAgIHNlbGZbInN0eWxvIl0gPSBGYWxzZQorICAgICAgICBpZiBleHRyYXMgaXMg
bm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLnVwZGF0ZShleHRyYXMpCisKKyAgICBkZWYgX3Vw
ZGF0ZV9tb3ppbmZvKHNlbGYsIG1ldGFkYXRhX3Jvb3QpOgorICAgICAgICAiIiJBZGQgZXh0cmEg
YnVpbGQgaW5mb3JtYXRpb24gZnJvbSBhIG1vemluZm8uanNvbiBmaWxlIGluIGEgcGFyZW50Cisg
ICAgICAgIGRpcmVjdG9yeSIiIgorICAgICAgICBpbXBvcnQgbW96aW5mbworCisgICAgICAgIHBh
dGggPSBtZXRhZGF0YV9yb290CisgICAgICAgIGRpcnMgPSBzZXQoKQorICAgICAgICB3aGlsZSBw
YXRoICE9IG9zLnBhdGguZXhwYW5kdXNlcignficpOgorICAgICAgICAgICAgaWYgcGF0aCBpbiBk
aXJzOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBkaXJzLmFkZChzdHIocGF0
aCkpCisgICAgICAgICAgICBwYXRoID0gb3MucGF0aC5zcGxpdChwYXRoKVswXQorCisgICAgICAg
IG1vemluZm8uZmluZF9hbmRfdXBkYXRlX2Zyb21fanNvbigqZGlycykKKworCitjbGFzcyBUZXN0
KG9iamVjdCk6CisKKyAgICByZXN1bHRfY2xzID0gTm9uZQorICAgIHN1YnRlc3RfcmVzdWx0X2Ns
cyA9IE5vbmUKKyAgICB0ZXN0X3R5cGUgPSBOb25lCisKKyAgICBkZWZhdWx0X3RpbWVvdXQgPSAx
MCAgIyBzZWNvbmRzCisgICAgbG9uZ190aW1lb3V0ID0gNjAgICMgc2Vjb25kcworCisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIHRlc3RzX3Jvb3QsIHVybCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9t
ZXRhZGF0YSwKKyAgICAgICAgICAgICAgICAgdGltZW91dD1Ob25lLCBwYXRoPU5vbmUsIHByb3Rv
Y29sPSJodHRwIik6CisgICAgICAgIHNlbGYudGVzdHNfcm9vdCA9IHRlc3RzX3Jvb3QKKyAgICAg
ICAgc2VsZi51cmwgPSB1cmwKKyAgICAgICAgc2VsZi5faW5oZXJpdF9tZXRhZGF0YSA9IGluaGVy
aXRfbWV0YWRhdGEKKyAgICAgICAgc2VsZi5fdGVzdF9tZXRhZGF0YSA9IHRlc3RfbWV0YWRhdGEK
KyAgICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91dCBpZiB0aW1lb3V0IGlzIG5vdCBOb25lIGVs
c2Ugc2VsZi5kZWZhdWx0X3RpbWVvdXQKKyAgICAgICAgc2VsZi5wYXRoID0gcGF0aAorICAgICAg
ICBzZWxmLmVudmlyb25tZW50ID0geyJwcm90b2NvbCI6IHByb3RvY29sLCAicHJlZnMiOiBzZWxm
LnByZWZzfQorCisgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBz
ZWxmLmlkID09IG90aGVyLmlkCisKKyAgICBkZWYgdXBkYXRlX21ldGFkYXRhKHNlbGYsIG1ldGFk
YXRhPU5vbmUpOgorICAgICAgICBpZiBtZXRhZGF0YSBpcyBOb25lOgorICAgICAgICAgICAgbWV0
YWRhdGEgPSB7fQorICAgICAgICByZXR1cm4gbWV0YWRhdGEKKworICAgIEBjbGFzc21ldGhvZAor
ICAgIGRlZiBmcm9tX21hbmlmZXN0KGNscywgbWFuaWZlc3RfaXRlbSwgaW5oZXJpdF9tZXRhZGF0
YSwgdGVzdF9tZXRhZGF0YSk6CisgICAgICAgIHRpbWVvdXQgPSBjbHMubG9uZ190aW1lb3V0IGlm
IG1hbmlmZXN0X2l0ZW0udGltZW91dCA9PSAibG9uZyIgZWxzZSBjbHMuZGVmYXVsdF90aW1lb3V0
CisgICAgICAgIHByb3RvY29sID0gImh0dHBzIiBpZiBoYXNhdHRyKG1hbmlmZXN0X2l0ZW0sICJo
dHRwcyIpIGFuZCBtYW5pZmVzdF9pdGVtLmh0dHBzIGVsc2UgImh0dHAiCisgICAgICAgIHJldHVy
biBjbHMobWFuaWZlc3RfaXRlbS5zb3VyY2VfZmlsZS50ZXN0c19yb290LAorICAgICAgICAgICAg
ICAgICAgIG1hbmlmZXN0X2l0ZW0udXJsLAorICAgICAgICAgICAgICAgICAgIGluaGVyaXRfbWV0
YWRhdGEsCisgICAgICAgICAgICAgICAgICAgdGVzdF9tZXRhZGF0YSwKKyAgICAgICAgICAgICAg
ICAgICB0aW1lb3V0PXRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgcGF0aD1tYW5pZmVzdF9p
dGVtLnNvdXJjZV9maWxlLnBhdGgsCisgICAgICAgICAgICAgICAgICAgcHJvdG9jb2w9cHJvdG9j
b2wpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaWQoc2VsZik6CisgICAgICAgIHJldHVybiBz
ZWxmLnVybAorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGtleXMoc2VsZik6CisgICAgICAgIHJl
dHVybiB0dXBsZSgpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgYWJzX3BhdGgoc2VsZik6Cisg
ICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4oc2VsZi50ZXN0c19yb290LCBzZWxmLnBhdGgpCisK
KyAgICBkZWYgX2dldF9tZXRhZGF0YShzZWxmLCBzdWJ0ZXN0PU5vbmUpOgorICAgICAgICBpZiBz
ZWxmLl90ZXN0X21ldGFkYXRhIGlzIG5vdCBOb25lIGFuZCBzdWJ0ZXN0IGlzIG5vdCBOb25lOgor
ICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfbWV0YWRhdGEuZ2V0X3N1YnRlc3Qoc3VidGVz
dCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl90ZXN0X21ldGFkYXRh
CisKKyAgICBkZWYgaXRlcm1ldGEoc2VsZiwgc3VidGVzdD1Ob25lKToKKyAgICAgICAgZm9yIG1l
dGFkYXRhIGluIHNlbGYuX2luaGVyaXRfbWV0YWRhdGE6CisgICAgICAgICAgICB5aWVsZCBtZXRh
ZGF0YQorCisgICAgICAgIGlmIHNlbGYuX3Rlc3RfbWV0YWRhdGEgaXMgbm90IE5vbmU6CisgICAg
ICAgICAgICB5aWVsZCBzZWxmLl9nZXRfbWV0YWRhdGEoKQorICAgICAgICAgICAgaWYgc3VidGVz
dCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBzdWJ0ZXN0X21ldGEgPSBzZWxmLl9nZXRf
bWV0YWRhdGEoc3VidGVzdCkKKyAgICAgICAgICAgICAgICBpZiBzdWJ0ZXN0X21ldGEgaXMgbm90
IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHlpZWxkIHN1YnRlc3RfbWV0YQorCisgICAgZGVm
IGRpc2FibGVkKHNlbGYsIHN1YnRlc3Q9Tm9uZSk6CisgICAgICAgIGZvciBtZXRhIGluIHNlbGYu
aXRlcm1ldGEoc3VidGVzdCk6CisgICAgICAgICAgICBkaXNhYmxlZCA9IG1ldGEuZGlzYWJsZWQK
KyAgICAgICAgICAgIGlmIGRpc2FibGVkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHJl
dHVybiBkaXNhYmxlZAorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgQHByb3BlcnR5CisgICAg
ZGVmIHJlc3RhcnRfYWZ0ZXIoc2VsZik6CisgICAgICAgIGZvciBtZXRhIGluIHNlbGYuaXRlcm1l
dGEoTm9uZSk6CisgICAgICAgICAgICByZXN0YXJ0X2FmdGVyID0gbWV0YS5yZXN0YXJ0X2FmdGVy
CisgICAgICAgICAgICBpZiByZXN0YXJ0X2FmdGVyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAg
ICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgQHByb3BlcnR5Cisg
ICAgZGVmIGxlYWtzKHNlbGYpOgorICAgICAgICBmb3IgbWV0YSBpbiBzZWxmLml0ZXJtZXRhKE5v
bmUpOgorICAgICAgICAgICAgbGVha3MgPSBtZXRhLmxlYWtzCisgICAgICAgICAgICBpZiBsZWFr
cyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICByZXR1cm4gbGVha3MKKyAgICAgICAgcmV0
dXJuIEZhbHNlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgdGFncyhzZWxmKToKKyAgICAgICAg
dGFncyA9IHNldCgpCisgICAgICAgIGZvciBtZXRhIGluIHNlbGYuaXRlcm1ldGEoKToKKyAgICAg
ICAgICAgIG1ldGFfdGFncyA9IG1ldGEudGFncworICAgICAgICAgICAgaWYgYXRvbV9yZXNldCBp
biBtZXRhX3RhZ3M6CisgICAgICAgICAgICAgICAgdGFncyA9IG1ldGFfdGFncy5jb3B5KCkKKyAg
ICAgICAgICAgICAgICB0YWdzLnJlbW92ZShhdG9tX3Jlc2V0KQorICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICB0YWdzIHw9IG1ldGFfdGFncworCisgICAgICAgIHRhZ3MuYWRkKCJk
aXI6JXMiICUgc2VsZi5pZC5sc3RyaXAoIi8iKS5zcGxpdCgiLyIpWzBdKQorCisgICAgICAgIHJl
dHVybiB0YWdzCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcHJlZnMoc2VsZik6CisgICAgICAg
IHByZWZzID0ge30KKyAgICAgICAgZm9yIG1ldGEgaW4gc2VsZi5pdGVybWV0YSgpOgorICAgICAg
ICAgICAgbWV0YV9wcmVmcyA9IG1ldGEucHJlZnMKKyAgICAgICAgICAgIGlmIGF0b21fcmVzZXQg
aW4gcHJlZnM6CisgICAgICAgICAgICAgICAgcHJlZnMgPSBtZXRhX3ByZWZzLmNvcHkoKQorICAg
ICAgICAgICAgICAgIGRlbCBwcmVmc1thdG9tX3Jlc2V0XQorICAgICAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgICAgICBwcmVmcy51cGRhdGUobWV0YV9wcmVmcykKKyAgICAgICAgcmV0dXJuIHBy
ZWZzCisKKyAgICBkZWYgZXhwZWN0ZWQoc2VsZiwgc3VidGVzdD1Ob25lKToKKyAgICAgICAgaWYg
c3VidGVzdCBpcyBOb25lOgorICAgICAgICAgICAgZGVmYXVsdCA9IHNlbGYucmVzdWx0X2Nscy5k
ZWZhdWx0X2V4cGVjdGVkCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBkZWZhdWx0ID0gc2Vs
Zi5zdWJ0ZXN0X3Jlc3VsdF9jbHMuZGVmYXVsdF9leHBlY3RlZAorCisgICAgICAgIG1ldGFkYXRh
ID0gc2VsZi5fZ2V0X21ldGFkYXRhKHN1YnRlc3QpCisgICAgICAgIGlmIG1ldGFkYXRhIGlzIE5v
bmU6CisgICAgICAgICAgICByZXR1cm4gZGVmYXVsdAorCisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIHJldHVybiBtZXRhZGF0YS5nZXQoImV4cGVjdGVkIikKKyAgICAgICAgZXhjZXB0IEtleUVy
cm9yOgorICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHQKKworICAgIGRlZiBfX3JlcHJfXyhzZWxm
KToKKyAgICAgICAgcmV0dXJuICI8JXMuJXMgJXM+IiAlIChzZWxmLl9fbW9kdWxlX18sIHNlbGYu
X19jbGFzc19fLl9fbmFtZV9fLCBzZWxmLmlkKQorCisKK2NsYXNzIFRlc3RoYXJuZXNzVGVzdChU
ZXN0KToKKyAgICByZXN1bHRfY2xzID0gVGVzdGhhcm5lc3NSZXN1bHQKKyAgICBzdWJ0ZXN0X3Jl
c3VsdF9jbHMgPSBUZXN0aGFybmVzc1N1YnRlc3RSZXN1bHQKKyAgICB0ZXN0X3R5cGUgPSAidGVz
dGhhcm5lc3MiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdHNfcm9vdCwgdXJsLCBpbmhl
cml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhLAorICAgICAgICAgICAgICAgICB0aW1lb3V0PU5v
bmUsIHBhdGg9Tm9uZSwgcHJvdG9jb2w9Imh0dHAiLCB0ZXN0ZHJpdmVyPUZhbHNlKToKKyAgICAg
ICAgVGVzdC5fX2luaXRfXyhzZWxmLCB0ZXN0c19yb290LCB1cmwsIGluaGVyaXRfbWV0YWRhdGEs
IHRlc3RfbWV0YWRhdGEsIHRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgcGF0aCwgcHJv
dG9jb2wpCisKKyAgICAgICAgc2VsZi50ZXN0ZHJpdmVyID0gdGVzdGRyaXZlcgorCisgICAgQGNs
YXNzbWV0aG9kCisgICAgZGVmIGZyb21fbWFuaWZlc3QoY2xzLCBtYW5pZmVzdF9pdGVtLCBpbmhl
cml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhKToKKyAgICAgICAgdGltZW91dCA9IGNscy5sb25n
X3RpbWVvdXQgaWYgbWFuaWZlc3RfaXRlbS50aW1lb3V0ID09ICJsb25nIiBlbHNlIGNscy5kZWZh
dWx0X3RpbWVvdXQKKyAgICAgICAgcHJvdG9jb2wgPSAiaHR0cHMiIGlmIGhhc2F0dHIobWFuaWZl
c3RfaXRlbSwgImh0dHBzIikgYW5kIG1hbmlmZXN0X2l0ZW0uaHR0cHMgZWxzZSAiaHR0cCIKKyAg
ICAgICAgdGVzdGRyaXZlciA9IG1hbmlmZXN0X2l0ZW0udGVzdGRyaXZlciBpZiBoYXNhdHRyKG1h
bmlmZXN0X2l0ZW0sICJ0ZXN0ZHJpdmVyIikgZWxzZSBGYWxzZQorICAgICAgICByZXR1cm4gY2xz
KG1hbmlmZXN0X2l0ZW0uc291cmNlX2ZpbGUudGVzdHNfcm9vdCwKKyAgICAgICAgICAgICAgICAg
ICBtYW5pZmVzdF9pdGVtLnVybCwKKyAgICAgICAgICAgICAgICAgICBpbmhlcml0X21ldGFkYXRh
LAorICAgICAgICAgICAgICAgICAgIHRlc3RfbWV0YWRhdGEsCisgICAgICAgICAgICAgICAgICAg
dGltZW91dD10aW1lb3V0LAorICAgICAgICAgICAgICAgICAgIHBhdGg9bWFuaWZlc3RfaXRlbS5z
b3VyY2VfZmlsZS5wYXRoLAorICAgICAgICAgICAgICAgICAgIHByb3RvY29sPXByb3RvY29sLAor
ICAgICAgICAgICAgICAgICAgIHRlc3Rkcml2ZXI9dGVzdGRyaXZlcikKKworICAgIEBwcm9wZXJ0
eQorICAgIGRlZiBpZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYudXJsCisKKworY2xhc3Mg
TWFudWFsVGVzdChUZXN0KToKKyAgICB0ZXN0X3R5cGUgPSAibWFudWFsIgorCisgICAgQHByb3Bl
cnR5CisgICAgZGVmIGlkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi51cmwKKworCitjbGFz
cyBSZWZ0ZXN0VGVzdChUZXN0KToKKyAgICByZXN1bHRfY2xzID0gUmVmdGVzdFJlc3VsdAorICAg
IHRlc3RfdHlwZSA9ICJyZWZ0ZXN0IgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RzX3Jv
b3QsIHVybCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSwgcmVmZXJlbmNlcywKKyAg
ICAgICAgICAgICAgICAgdGltZW91dD1Ob25lLCBwYXRoPU5vbmUsIHZpZXdwb3J0X3NpemU9Tm9u
ZSwgZHBpPU5vbmUsIHByb3RvY29sPSJodHRwIik6CisgICAgICAgIFRlc3QuX19pbml0X18oc2Vs
ZiwgdGVzdHNfcm9vdCwgdXJsLCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhLCB0aW1l
b3V0LAorICAgICAgICAgICAgICAgICAgICAgIHBhdGgsIHByb3RvY29sKQorCisgICAgICAgIGZv
ciBfLCByZWZfdHlwZSBpbiByZWZlcmVuY2VzOgorICAgICAgICAgICAgaWYgcmVmX3R5cGUgbm90
IGluICgiPT0iLCAiIT0iKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yCisKKyAg
ICAgICAgc2VsZi5yZWZlcmVuY2VzID0gcmVmZXJlbmNlcworICAgICAgICBzZWxmLnZpZXdwb3J0
X3NpemUgPSB2aWV3cG9ydF9zaXplCisgICAgICAgIHNlbGYuZHBpID0gZHBpCisKKyAgICBAY2xh
c3NtZXRob2QKKyAgICBkZWYgZnJvbV9tYW5pZmVzdChjbHMsCisgICAgICAgICAgICAgICAgICAg
ICAgbWFuaWZlc3RfdGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICBpbmhlcml0X21ldGFkYXRh
LAorICAgICAgICAgICAgICAgICAgICAgIHRlc3RfbWV0YWRhdGEsCisgICAgICAgICAgICAgICAg
ICAgICAgbm9kZXM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VzX3NlZW49
Tm9uZSk6CisKKyAgICAgICAgdGltZW91dCA9IGNscy5sb25nX3RpbWVvdXQgaWYgbWFuaWZlc3Rf
dGVzdC50aW1lb3V0ID09ICJsb25nIiBlbHNlIGNscy5kZWZhdWx0X3RpbWVvdXQKKworICAgICAg
ICBpZiBub2RlcyBpcyBOb25lOgorICAgICAgICAgICAgbm9kZXMgPSB7fQorICAgICAgICBpZiBy
ZWZlcmVuY2VzX3NlZW4gaXMgTm9uZToKKyAgICAgICAgICAgIHJlZmVyZW5jZXNfc2VlbiA9IHNl
dCgpCisKKyAgICAgICAgdXJsID0gbWFuaWZlc3RfdGVzdC51cmwKKworICAgICAgICBub2RlID0g
Y2xzKG1hbmlmZXN0X3Rlc3Quc291cmNlX2ZpbGUudGVzdHNfcm9vdCwKKyAgICAgICAgICAgICAg
ICAgICBtYW5pZmVzdF90ZXN0LnVybCwKKyAgICAgICAgICAgICAgICAgICBpbmhlcml0X21ldGFk
YXRhLAorICAgICAgICAgICAgICAgICAgIHRlc3RfbWV0YWRhdGEsCisgICAgICAgICAgICAgICAg
ICAgW10sCisgICAgICAgICAgICAgICAgICAgdGltZW91dD10aW1lb3V0LAorICAgICAgICAgICAg
ICAgICAgIHBhdGg9bWFuaWZlc3RfdGVzdC5wYXRoLAorICAgICAgICAgICAgICAgICAgIHZpZXdw
b3J0X3NpemU9bWFuaWZlc3RfdGVzdC52aWV3cG9ydF9zaXplLAorICAgICAgICAgICAgICAgICAg
IGRwaT1tYW5pZmVzdF90ZXN0LmRwaSwKKyAgICAgICAgICAgICAgICAgICBwcm90b2NvbD0iaHR0
cHMiIGlmIGhhc2F0dHIobWFuaWZlc3RfdGVzdCwgImh0dHBzIikgYW5kIG1hbmlmZXN0X3Rlc3Qu
aHR0cHMgZWxzZSAiaHR0cCIpCisKKyAgICAgICAgbm9kZXNbdXJsXSA9IG5vZGUKKworICAgICAg
ICBmb3IgcmVmX3VybCwgcmVmX3R5cGUgaW4gbWFuaWZlc3RfdGVzdC5yZWZlcmVuY2VzOgorICAg
ICAgICAgICAgY29tcGFyaXNvbl9rZXkgPSAocmVmX3R5cGUsKSArIHR1cGxlKHNvcnRlZChbdXJs
LCByZWZfdXJsXSkpCisgICAgICAgICAgICBpZiByZWZfdXJsIGluIG5vZGVzOgorICAgICAgICAg
ICAgICAgIG1hbmlmZXN0X25vZGUgPSByZWZfdXJsCisgICAgICAgICAgICAgICAgaWYgY29tcGFy
aXNvbl9rZXkgaW4gcmVmZXJlbmNlc19zZWVuOgorICAgICAgICAgICAgICAgICAgICAjIFdlIGhh
dmUgcmVhY2hlZCBhIGN5Y2xlIHNvIHN0b3AgaGVyZQorICAgICAgICAgICAgICAgICAgICAjIE5v
dGUgdGhhdCBqdXN0IHNlZWluZyBhIG5vZGUgZm9yIHRoZSBzZWNvbmQgdGltZSBpcyBub3QKKyAg
ICAgICAgICAgICAgICAgICAgIyBlbm91Z2ggdG8gZGV0ZWN0IGEgY3ljbGUgYmVjYXVzZQorICAg
ICAgICAgICAgICAgICAgICAjIEEgIT0gQiAhPSBDICE9IEEgbXVzdCBpbmNsdWRlIEMgIT0gQQor
ICAgICAgICAgICAgICAgICAgICAjIGJ1dCBBID09IEIgPT0gQSBzaG91bGQgbm90IGluY2x1ZGUg
dGhlIHJlZHVuZGFudCBCID09IEEuCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAg
ICAgICAgICAgIHJlZmVyZW5jZXNfc2Vlbi5hZGQoY29tcGFyaXNvbl9rZXkpCisKKyAgICAgICAg
ICAgIG1hbmlmZXN0X25vZGUgPSBtYW5pZmVzdF90ZXN0Lm1hbmlmZXN0LmdldF9yZWZlcmVuY2Uo
cmVmX3VybCkKKyAgICAgICAgICAgIGlmIG1hbmlmZXN0X25vZGU6CisgICAgICAgICAgICAgICAg
cmVmZXJlbmNlID0gUmVmdGVzdFRlc3QuZnJvbV9tYW5pZmVzdChtYW5pZmVzdF9ub2RlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb25l
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bm9kZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZWZlcmVuY2VzX3NlZW4pCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
IHJlZmVyZW5jZSA9IFJlZnRlc3RUZXN0KG1hbmlmZXN0X3Rlc3Quc291cmNlX2ZpbGUudGVzdHNf
cm9vdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZfdXJsLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgW10pCisKKyAgICAgICAgICAgIG5vZGUucmVmZXJlbmNlcy5hcHBl
bmQoKHJlZmVyZW5jZSwgcmVmX3R5cGUpKQorCisgICAgICAgIHJldHVybiBub2RlCisKKyAgICBk
ZWYgdXBkYXRlX21ldGFkYXRhKHNlbGYsIG1ldGFkYXRhKToKKyAgICAgICAgaWYgInVybF9jb3Vu
dCIgbm90IGluIG1ldGFkYXRhOgorICAgICAgICAgICAgbWV0YWRhdGFbInVybF9jb3VudCJdID0g
ZGVmYXVsdGRpY3QoaW50KQorICAgICAgICBmb3IgcmVmZXJlbmNlLCBfIGluIHNlbGYucmVmZXJl
bmNlczoKKyAgICAgICAgICAgICMgV2UgYXNzdW1lIGEgbmFpdmUgaW1wbGVtZW50YXRpb24gaW4g
d2hpY2ggYSB1cmwgd2l0aCBtdWx0aXBsZQorICAgICAgICAgICAgIyBwb3NzaWJsZSBzY3JlZW5z
aG90cyB3aWxsIG5lZWQgdG8gdGFrZSBib3RoIHRoZSBsaHMgYW5kIHJocyBzY3JlZW5zaG90cwor
ICAgICAgICAgICAgIyBmb3IgZWFjaCBwb3NzaWJsZSBtYXRjaAorICAgICAgICAgICAgbWV0YWRh
dGFbInVybF9jb3VudCJdWyhzZWxmLmVudmlyb25tZW50WyJwcm90b2NvbCJdLCByZWZlcmVuY2Uu
dXJsKV0gKz0gMQorICAgICAgICAgICAgcmVmZXJlbmNlLnVwZGF0ZV9tZXRhZGF0YShtZXRhZGF0
YSkKKyAgICAgICAgcmV0dXJuIG1ldGFkYXRhCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaWQo
c2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnVybAorCisgICAgQHByb3BlcnR5CisgICAgZGVm
IGtleXMoc2VsZik6CisgICAgICAgIHJldHVybiAoInJlZnR5cGUiLCAicmVmdXJsIikKKworCitj
bGFzcyBXZHNwZWNUZXN0KFRlc3QpOgorCisgICAgcmVzdWx0X2NscyA9IFdkc3BlY1Jlc3VsdAor
ICAgIHN1YnRlc3RfcmVzdWx0X2NscyA9IFdkc3BlY1N1YnRlc3RSZXN1bHQKKyAgICB0ZXN0X3R5
cGUgPSAid2RzcGVjIgorCisgICAgZGVmYXVsdF90aW1lb3V0ID0gMjUKKyAgICBsb25nX3RpbWVv
dXQgPSAxMjAKKworCittYW5pZmVzdF90ZXN0X2NscyA9IHsicmVmdGVzdCI6IFJlZnRlc3RUZXN0
LAorICAgICAgICAgICAgICAgICAgICAgInRlc3RoYXJuZXNzIjogVGVzdGhhcm5lc3NUZXN0LAor
ICAgICAgICAgICAgICAgICAgICAgIm1hbnVhbCI6IE1hbnVhbFRlc3QsCisgICAgICAgICAgICAg
ICAgICAgICAid2RzcGVjIjogV2RzcGVjVGVzdH0KKworCitkZWYgZnJvbV9tYW5pZmVzdChtYW5p
ZmVzdF90ZXN0LCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhKToKKyAgICB0ZXN0X2Ns
cyA9IG1hbmlmZXN0X3Rlc3RfY2xzW21hbmlmZXN0X3Rlc3QuaXRlbV90eXBlXQorICAgIHJldHVy
biB0ZXN0X2Nscy5mcm9tX21hbmlmZXN0KG1hbmlmZXN0X3Rlc3QsIGluaGVyaXRfbWV0YWRhdGEs
IHRlc3RfbWV0YWRhdGEpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3MvcGlwZXMucnN0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9kb2NzL3Bp
cGVzLnJzdAppbmRleCBjNjA2MTQwZDQ3NDkxMjdlZDBhODljZjM0NGUzMzkwNWUzZjQ3NjY0Li44
ZmFlZWU0ODljOWZhYjcxMzg3NTQwZjk5NjAyM2UwMWE0Njk1NWQ3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2Rv
Y3MvcGlwZXMucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0c2VydmUvZG9jcy9waXBlcy5yc3QKQEAgLTExLDYgKzExLDEwIEBAIGZ1
bmN0aW9ucyBhcmUgYXBwbGllZCB0byB0aGUgcmVzcG9uc2UgZnJvbSBsZWZ0IHRvIHJpZ2h0LiBG
b3IgZXhhbXBsZTo6CiBUaGlzIHdvdWxkIHNlcnZlIGJ5dGVzIDEgdG8gMTk5LCBpbmNsdXNpdmUs
IG9mIGZvby50eHQgd2l0aCB0aGUgSFRUUCBzdGF0dXMKIGNvZGUgNDA0LgogCisuLiBub3RlOjoK
KyAgIElmIHlvdSB3cml0ZSBkaXJlY3RseSB0byB0aGUgcmVzcG9uc2Ugc29ja2V0IHVzaW5nIFJl
c3BvbnNlV3JpdGVyLAorICAgb3Igd2hlbiB1c2luZyB0aGUgYXNpcyBoYW5kbGVyLCBvbmx5IHRo
ZSB0cmlja2xlIHBpcGUgd2lsbCBhZmZlY3QgdGhlIHJlc3BvbnNlLgorCiBUaGVyZSBhcmUgc2V2
ZXJhbCBidWlsdC1pbiBwaXBlIGZ1bmN0aW9ucywgYW5kIGl0IGlzIHBvc3NpYmxlIHRvIGFkZAog
bW9yZSB1c2luZyB0aGUgYEBwaXBlYCBkZWNvcmF0b3Igb24gYSBmdW5jdGlvbiwgaWYgcmVxdWly
ZWQuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0c2VydmUvZG9jcy9zdGFzaC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3Mvc3Rhc2gucnN0Cmlu
ZGV4IDgyMWMyZDM0NDU1ZmVhMmYxODM2Yjc5ZDE5Yjg4ZDcwYWU0MDZjOTguLjQ5ODQ2ZjIxMDYx
YjMwYjRkNGE1NGU3ZTdjZmZjOWRkMTIyYTdhNjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvZG9jcy9zdGFzaC5y
c3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRzZXJ2ZS9kb2NzL3N0YXNoLnJzdApAQCAtMyw3ICszLDcgQEAgU3Rhc2gKIAogT2JqZWN0
IGZvciBzdG9yaW5nIGNyb3NzLXJlcXVlc3Qgc3RhdGUuIFRoaXMgaXMgdW51c3VhbCBpbiB0aGF0
IGtleXMKIG11c3QgYmUgVVVJRHMsIGluIG9yZGVyIHRvIHByZXZlbnQgZGlmZmVyZW50IGNsaWVu
dHMgc2V0dGluZyB0aGUgc2FtZQota2V5LCBhbmQgdmFsdWVzIGFyZSB3cml0ZS1vbmNlLCByZWFk
LW9uY2UgdG8gbWluaW1pc2UgdGhlIGNoYW5jZXMgb2YKK2tleSwgYW5kIHZhbHVlcyBhcmUgd3Jp
dGUtb25jZSwgcmVhZC1vbmNlIHRvIG1pbmltaXplIHRoZSBjaGFuY2VzIG9mCiBzdGF0ZSBwZXJz
aXN0aW5nIGluZGVmaW5pdGVseS4gVGhlIHN0YXNoIGRlZmluZXMgdHdvIG9wZXJhdGlvbnM7CiBg
cHV0YCwgdG8gYWRkIHN0YXRlIGFuZCBgdGFrZWAgdG8gcmVtb3ZlIHN0YXRlLiBGdXJ0aGVybW9y
ZSwgdGhlIHZpZXcKIG9mIHRoZSBzdGFzaCBpcyBwYXRoLXNwZWNpZmljOyBieSBkZWZhdWx0IGEg
cmVxdWVzdCB3aWxsIG9ubHkgc2VlIHRoZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFs
L3Rlc3RfcGlwZXMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvdGVzdF9waXBlcy5weQppbmRleCA5
NWRhNzBmYWVhOWY1NDcxNzg1NWIzNTQ1ZmMwNmU4MDhkNGRhOTE2Li4xNDdhZDE1NjIyNTExNTEz
ODZjMDFkMTNhZmQxOTdmY2U1ZDhjZGQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwv
dGVzdF9waXBlcy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvdGVzdF9waXBlcy5weQpAQCAt
MSw5ICsxLDExIEBACiBpbXBvcnQgb3MKIGltcG9ydCB1bml0dGVzdAogaW1wb3J0IHRpbWUKK2lt
cG9ydCBqc29uCiAKIGltcG9ydCBweXRlc3QKIAord3B0c2VydmUgPSBweXRlc3QuaW1wb3J0b3Jz
a2lwKCJ3cHRzZXJ2ZSIpCiBmcm9tIC5iYXNlIGltcG9ydCBUZXN0VXNpbmdTZXJ2ZXIsIGRvY19y
b290CiAKIApAQCAtNzYsNSArNzgsNzggQEAgY2xhc3MgVGVzdFRyaWNrbGUoVGVzdFVzaW5nU2Vy
dmVyKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwLnJlYWQoKSwgZXhwZWN0ZWQpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlcig2LCB0MS10MCkKIAorICAgIGRlZiB0ZXN0X2hlYWRl
cnMoc2VsZik6CisgICAgICAgIHJlc3AgPSBzZWxmLnJlcXVlc3QoIi9kb2N1bWVudC50eHQiLCBx
dWVyeT0icGlwZT10cmlja2xlKGQwLjAxKSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVz
cC5pbmZvKClbIkNhY2hlLUNvbnRyb2wiXSwgIm5vLWNhY2hlLCBuby1zdG9yZSwgbXVzdC1yZXZh
bGlkYXRlIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwLmluZm8oKVsiUHJhZ21hIl0s
ICJuby1jYWNoZSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcC5pbmZvKClbIkV4cGly
ZXMiXSwgIjAiKQorCitjbGFzcyBUZXN0UGlwZXNXaXRoVmFyaW91c0hhbmRsZXJzKFRlc3RVc2lu
Z1NlcnZlcik6CisgICAgZGVmIHRlc3Rfd2l0aF9weXRob25fZmlsZV9oYW5kbGVyKHNlbGYpOgor
ICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvdGVzdF9zdHJpbmcucHkiLCBxdWVyeT0icGlw
ZT1zbGljZShudWxsLDIpIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwLnJlYWQoKSwg
IlBBIikKKworICAgIGRlZiB0ZXN0X3dpdGhfcHl0aG9uX2Z1bmNfaGFuZGxlcihzZWxmKToKKyAg
ICAgICAgQHdwdHNlcnZlLmhhbmRsZXJzLmhhbmRsZXIKKyAgICAgICAgZGVmIGhhbmRsZXIocmVx
dWVzdCwgcmVzcG9uc2UpOgorICAgICAgICAgICAgcmV0dXJuICJQQVNTIgorICAgICAgICByb3V0
ZSA9ICgiR0VUIiwgIi90ZXN0L3Rlc3RfcGlwZXNfMS8iLCBoYW5kbGVyKQorICAgICAgICBzZWxm
LnNlcnZlci5yb3V0ZXIucmVnaXN0ZXIoKnJvdXRlKQorICAgICAgICByZXNwID0gc2VsZi5yZXF1
ZXN0KHJvdXRlWzFdLCBxdWVyeT0icGlwZT1zbGljZShudWxsLDIpIikKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChyZXNwLnJlYWQoKSwgIlBBIikKKworICAgIGRlZiB0ZXN0X3dpdGhfcHl0aG9u
X2Z1bmNfaGFuZGxlcl91c2luZ19yZXNwb25zZV93cml0ZXIoc2VsZik6CisgICAgICAgIEB3cHRz
ZXJ2ZS5oYW5kbGVycy5oYW5kbGVyCisgICAgICAgIGRlZiBoYW5kbGVyKHJlcXVlc3QsIHJlc3Bv
bnNlKToKKyAgICAgICAgICAgIHJlc3BvbnNlLndyaXRlci53cml0ZV9jb250ZW50KCJQQVNTIikK
KyAgICAgICAgcm91dGUgPSAoIkdFVCIsICIvdGVzdC90ZXN0X3BpcGVzXzEvIiwgaGFuZGxlcikK
KyAgICAgICAgc2VsZi5zZXJ2ZXIucm91dGVyLnJlZ2lzdGVyKCpyb3V0ZSkKKyAgICAgICAgcmVz
cCA9IHNlbGYucmVxdWVzdChyb3V0ZVsxXSwgcXVlcnk9InBpcGU9c2xpY2UobnVsbCwyKSIpCisg
ICAgICAgICMgc2xpY2UgaGFzIG5vdCBiZWVuIGFwcGxpZWQgdG8gdGhlIHJlc3BvbnNlLCBiZWNh
dXNlIHJlc3BvbnNlLndyaXRlciB3YXMgdXNlZC4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChy
ZXNwLnJlYWQoKSwgIlBBU1MiKQorCisgICAgZGVmIHRlc3RfaGVhZGVyX3BpcGVfd2l0aF9weXRo
b25fZnVuY191c2luZ19yZXNwb25zZV93cml0ZXIoc2VsZik6CisgICAgICAgIEB3cHRzZXJ2ZS5o
YW5kbGVycy5oYW5kbGVyCisgICAgICAgIGRlZiBoYW5kbGVyKHJlcXVlc3QsIHJlc3BvbnNlKToK
KyAgICAgICAgICAgIHJlc3BvbnNlLndyaXRlci53cml0ZV9jb250ZW50KCJDT05URU5UIikKKyAg
ICAgICAgcm91dGUgPSAoIkdFVCIsICIvdGVzdC90ZXN0X3BpcGVzXzEvIiwgaGFuZGxlcikKKyAg
ICAgICAgc2VsZi5zZXJ2ZXIucm91dGVyLnJlZ2lzdGVyKCpyb3V0ZSkKKyAgICAgICAgcmVzcCA9
IHNlbGYucmVxdWVzdChyb3V0ZVsxXSwgcXVlcnk9InBpcGU9aGVhZGVyKFgtVEVTVCxGQUlMKSIp
CisgICAgICAgICMgaGVhZGVyIHBpcGUgd2FzIGlnbm9yZWQsIGJlY2F1c2UgcmVzcG9uc2Uud3Jp
dGVyIHdhcyB1c2VkLgorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJlc3AuaW5mbygpLmdldCgi
WC1URVNUIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcC5yZWFkKCksICJDT05URU5U
IikKKworICAgIGRlZiB0ZXN0X3dpdGhfanNvbl9oYW5kbGVyKHNlbGYpOgorICAgICAgICBAd3B0
c2VydmUuaGFuZGxlcnMuanNvbl9oYW5kbGVyCisgICAgICAgIGRlZiBoYW5kbGVyKHJlcXVlc3Qs
IHJlc3BvbnNlKToKKyAgICAgICAgICAgIHJldHVybiBqc29uLmR1bXBzKHsnZGF0YSc6ICdQQVNT
J30pCisgICAgICAgIHJvdXRlID0gKCJHRVQiLCAiL3Rlc3QvdGVzdF9waXBlc18yLyIsIGhhbmRs
ZXIpCisgICAgICAgIHNlbGYuc2VydmVyLnJvdXRlci5yZWdpc3Rlcigqcm91dGUpCisgICAgICAg
IHJlc3AgPSBzZWxmLnJlcXVlc3Qocm91dGVbMV0sIHF1ZXJ5PSJwaXBlPXNsaWNlKG51bGwsMiki
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3AucmVhZCgpLCAnInsnKQorCisgICAgZGVm
IHRlc3Rfc2xpY2Vfd2l0aF9hc19pc19oYW5kbGVyKHNlbGYpOgorICAgICAgICByZXNwID0gc2Vs
Zi5yZXF1ZXN0KCIvdGVzdC5hc2lzIiwgcXVlcnk9InBpcGU9c2xpY2UobnVsbCwyKSIpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoMjAyLCByZXNwLmdldGNvZGUoKSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgiR2lyYWZmZSIsIHJlc3AubXNnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCJQQVNTIiwgcmVzcC5pbmZvKClbIlgtVGVzdCJdKQorICAgICAgICAjIHNsaWNlIGhhcyBub3Qg
YmVlbiBhcHBsaWVkIHRvIHRoZSByZXNwb25zZSwgYmVjYXVzZSByZXNwb25zZS53cml0ZXIgd2Fz
IHVzZWQuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIkNvbnRlbnQiLCByZXNwLnJlYWQoKSkK
KworICAgIGRlZiB0ZXN0X2hlYWRlcnNfd2l0aF9hc19pc19oYW5kbGVyKHNlbGYpOgorICAgICAg
ICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvdGVzdC5hc2lzIiwgcXVlcnk9InBpcGU9aGVhZGVyKFgt
VEVTVCxGQUlMKSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMjAyLCByZXNwLmdldGNvZGUo
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiR2lyYWZmZSIsIHJlc3AubXNnKQorICAgICAg
ICAjIGhlYWRlciBwaXBlIHdhcyBpZ25vcmVkLgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJQ
QVNTIiwgcmVzcC5pbmZvKClbIlgtVEVTVCJdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJD
b250ZW50IiwgcmVzcC5yZWFkKCkpCisKKyAgICBkZWYgdGVzdF90cmlja2xlX3dpdGhfYXNfaXNf
aGFuZGxlcihzZWxmKToKKyAgICAgICAgdDAgPSB0aW1lLnRpbWUoKQorICAgICAgICByZXNwID0g
c2VsZi5yZXF1ZXN0KCIvdGVzdC5hc2lzIiwgcXVlcnk9InBpcGU9dHJpY2tsZSgxOmQyOjU6ZDE6
cjIpIikKKyAgICAgICAgdDEgPSB0aW1lLnRpbWUoKQorICAgICAgICBzZWxmLmFzc2VydFRydWUo
J0NvbnRlbnQnIGluIHJlc3AucmVhZCgpKQorICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXIoNiwg
dDEtdDApCisKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgdW5pdHRlc3QubWFpbigp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2hhbmRsZXJzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9oYW5kbGVy
cy5weQppbmRleCAzMWYzNjFjYzIzYmVmYzZiYWEyYmJiMTM3NzEwNmZmOGI2ZDVkOTQzLi42YzAy
OTdmMjU3OTc0M2NjNjFlODUwM2JhNzViZjkxNTVlODVjYTc2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNl
cnZlL2hhbmRsZXJzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvaGFuZGxlcnMucHkKQEAgLTIzNyw2ICsy
MzcsNyBAQCBjbGFzcyBQeXRob25TY3JpcHRIYW5kbGVyKG9iamVjdCk6CiAgICAgICAgICAgICBp
ZiAibWFpbiIgaW4gZW52aXJvbjoKICAgICAgICAgICAgICAgICBoYW5kbGVyID0gRnVuY3Rpb25I
YW5kbGVyKGVudmlyb25bIm1haW4iXSkKICAgICAgICAgICAgICAgICBoYW5kbGVyKHJlcXVlc3Qs
IHJlc3BvbnNlKQorICAgICAgICAgICAgICAgIHdyYXBfcGlwZWxpbmUocGF0aCwgcmVxdWVzdCwg
cmVzcG9uc2UpCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHJhaXNlIEhUVFBF
eGNlcHRpb24oNTAwLCAiTm8gbWFpbiBmdW5jdGlvbiBpbiBzY3JpcHQgJXMiICUgcGF0aCkKICAg
ICAgICAgZXhjZXB0IElPRXJyb3I6CkBAIC0yNjcsNiArMjY4LDcgQEAgY2xhc3MgRnVuY3Rpb25I
YW5kbGVyKG9iamVjdCk6CiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIGNvbnRl
bnQgPSBydgogICAgICAgICAgICAgcmVzcG9uc2UuY29udGVudCA9IGNvbnRlbnQKKyAgICAgICAg
ICAgIHdyYXBfcGlwZWxpbmUoJycsIHJlcXVlc3QsIHJlc3BvbnNlKQogCiAKICNUaGUgZ2VuZXJp
YyBuYW1lIGhlcmUgaXMgc28gdGhhdCB0aGlzIGNhbiBiZSB1c2VkIGFzIGEgZGVjb3JhdG9yCkBA
IC0zMDksNiArMzExLDcgQEAgY2xhc3MgQXNJc0hhbmRsZXIob2JqZWN0KToKICAgICAgICAgdHJ5
OgogICAgICAgICAgICAgd2l0aCBvcGVuKHBhdGgpIGFzIGY6CiAgICAgICAgICAgICAgICAgcmVz
cG9uc2Uud3JpdGVyLndyaXRlX2NvbnRlbnQoZi5yZWFkKCkpCisgICAgICAgICAgICB3cmFwX3Bp
cGVsaW5lKHBhdGgsIHJlcXVlc3QsIHJlc3BvbnNlKQogICAgICAgICAgICAgcmVzcG9uc2UuY2xv
c2VfY29ubmVjdGlvbiA9IFRydWUKICAgICAgICAgZXhjZXB0IElPRXJyb3I6CiAgICAgICAgICAg
ICByYWlzZSBIVFRQRXhjZXB0aW9uKDQwNCkKQEAgLTM1MSwyMSArMzU0LDE5IEBAIGNsYXNzIEVy
cm9ySGFuZGxlcihvYmplY3QpOgogICAgICAgICByZXNwb25zZS5zZXRfZXJyb3Ioc2VsZi5zdGF0
dXMpCiAKIAotY2xhc3MgU3RhdGljSGFuZGxlcihvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBwYXRoLCBmb3JtYXRfYXJncywgY29udGVudF90eXBlLCAqKmhlYWRlcnMpOgorY2xhc3Mg
U3RyaW5nSGFuZGxlcihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkYXRhLCBjb250
ZW50X3R5cGUsICoqaGVhZGVycyk6CiAgICAgICAgICIiIkhhbmRlciB0aGF0IHJlYWRzIGEgZmls
ZSBmcm9tIGEgcGF0aCBhbmQgc3Vic3RpdHV0ZXMgc29tZSBmaXhlZCBkYXRhCiAKLSAgICAgICAg
OnBhcmFtIHBhdGg6IFBhdGggdG8gdGhlIHRlbXBsYXRlIGZpbGUgdG8gdXNlCi0gICAgICAgIDpw
YXJhbSBmb3JtYXRfYXJnczogRGljdGlvbmFyeSBvZiB2YWx1ZXMgdG8gc3Vic3RpdHV0ZSBpbnRv
IHRoZSB0ZW1wbGF0ZSBmaWxlCisgICAgICAgIDpwYXJhbSBkYXRhOiBTdHJpbmcgdG8gdXNlCiAg
ICAgICAgIDpwYXJhbSBjb250ZW50X3R5cGU6IENvbnRlbnQgdHlwZSBoZWFkZXIgdG8gc2VydmVy
IHRoZSByZXNwb25zZSB3aXRoCiAgICAgICAgIDpwYXJhbSBoZWFkZXJzOiBMaXN0IG9mIGhlYWRl
cnMgdG8gc2VuZCB3aXRoIHJlc3BvbnNlcyIiIgogCi0gICAgICAgIHdpdGggb3BlbihwYXRoKSBh
cyBmOgotICAgICAgICAgICAgc2VsZi5kYXRhID0gZi5yZWFkKCkgJSBmb3JtYXRfYXJncworICAg
ICAgICBzZWxmLmRhdGEgPSBkYXRhCiAKICAgICAgICAgc2VsZi5yZXNwX2hlYWRlcnMgPSBbKCJD
b250ZW50LVR5cGUiLCBjb250ZW50X3R5cGUpXQogICAgICAgICBmb3IgaywgdiBpbiBoZWFkZXJz
Lml0ZXJpdGVtcygpOgotICAgICAgICAgICAgcmVzcF9oZWFkZXJzLmFwcGVuZCgoay5yZXBsYWNl
KCJfIiwgIi0iKSwgdikpCisgICAgICAgICAgICBzZWxmLnJlc3BfaGVhZGVycy5hcHBlbmQoKGsu
cmVwbGFjZSgiXyIsICItIiksIHYpKQogCiAgICAgICAgIHNlbGYuaGFuZGxlciA9IGhhbmRsZXIo
c2VsZi5oYW5kbGVfcmVxdWVzdCkKIApAQCAtMzc1LDMgKzM3NiwxOCBAQCBjbGFzcyBTdGF0aWNI
YW5kbGVyKG9iamVjdCk6CiAgICAgZGVmIF9fY2FsbF9fKHNlbGYsIHJlcXVlc3QsIHJlc3BvbnNl
KToKICAgICAgICAgcnYgPSBzZWxmLmhhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UpCiAgICAgICAg
IHJldHVybiBydgorCisKK2NsYXNzIFN0YXRpY0hhbmRsZXIoU3RyaW5nSGFuZGxlcik6CisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgsIGZvcm1hdF9hcmdzLCBjb250ZW50X3R5cGUsICoqaGVh
ZGVycyk6CisgICAgICAgICIiIkhhbmRlciB0aGF0IHJlYWRzIGEgZmlsZSBmcm9tIGEgcGF0aCBh
bmQgc3Vic3RpdHV0ZXMgc29tZSBmaXhlZCBkYXRhCisKKyAgICAgICAgOnBhcmFtIHBhdGg6IFBh
dGggdG8gdGhlIHRlbXBsYXRlIGZpbGUgdG8gdXNlCisgICAgICAgIDpwYXJhbSBmb3JtYXRfYXJn
czogRGljdGlvbmFyeSBvZiB2YWx1ZXMgdG8gc3Vic3RpdHV0ZSBpbnRvIHRoZSB0ZW1wbGF0ZSBm
aWxlCisgICAgICAgIDpwYXJhbSBjb250ZW50X3R5cGU6IENvbnRlbnQgdHlwZSBoZWFkZXIgdG8g
c2VydmVyIHRoZSByZXNwb25zZSB3aXRoCisgICAgICAgIDpwYXJhbSBoZWFkZXJzOiBMaXN0IG9m
IGhlYWRlcnMgdG8gc2VuZCB3aXRoIHJlc3BvbnNlcyIiIgorCisgICAgICAgIHdpdGggb3Blbihw
YXRoKSBhcyBmOgorICAgICAgICAgICAgZGF0YSA9IGYucmVhZCgpICUgZm9ybWF0X2FyZ3MKKwor
ICAgICAgICByZXR1cm4gc3VwZXIoU3RhdGljSGFuZGxlciwgc2VsZikuX19pbml0X18oZGF0YSwg
Y29udGVudF90eXBlLCAqKmhlYWRlcnMpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3BpcGVzLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS93cHRzZXJ2ZS9waXBlcy5weQppbmRleCA5NTEwOGJhN2U5M2RmNzQ5MDFmYmJjOGNkMjEx
NDYzNWIwNjQ3MTFkLi4xMjZhNjhlMzJlYmEwNDczM2YyMWQxMmViNWY2NmIxNGFlM2RmM2ZlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHNlcnZlL3dwdHNlcnZlL3BpcGVzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvcGlwZXMucHkK
QEAgLTYsNiArNiw3IEBAIGltcG9ydCB0eXBlcwogaW1wb3J0IHV1aWQKIGZyb20gY1N0cmluZ0lP
IGltcG9ydCBTdHJpbmdJTwogCitmcm9tIHNpeCBpbXBvcnQgdGV4dF90eXBlCiAKIGRlZiByZXNv
bHZlX2NvbnRlbnQocmVzcG9uc2UpOgogICAgIHJldHVybiBiIiIuam9pbihpdGVtIGZvciBpdGVt
IGluIHJlc3BvbnNlLml0ZXJfY29udGVudChyZWFkX2ZpbGU9VHJ1ZSkpCkBAIC0yMzEsNiArMjMy
LDEzIEBAIGRlZiB0cmlja2xlKHJlcXVlc3QsIHJlc3BvbnNlLCBkZWxheXMpOgogICAgIGNvbnRl
bnQgPSByZXNvbHZlX2NvbnRlbnQocmVzcG9uc2UpCiAgICAgb2Zmc2V0ID0gWzBdCiAKKyAgICBp
ZiBub3QgKCJDYWNoZS1Db250cm9sIiBpbiByZXNwb25zZS5oZWFkZXJzIG9yCisgICAgICAgICAg
ICAiUHJhZ21hIiBpbiByZXNwb25zZS5oZWFkZXJzIG9yCisgICAgICAgICAgICAiRXhwaXJlcyIg
aW4gcmVzcG9uc2UuaGVhZGVycyk6CisgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KCJDYWNo
ZS1Db250cm9sIiwgIm5vLWNhY2hlLCBuby1zdG9yZSwgbXVzdC1yZXZhbGlkYXRlIikKKyAgICAg
ICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIlByYWdtYSIsICJuby1jYWNoZSIpCisgICAgICAgIHJl
c3BvbnNlLmhlYWRlcnMuc2V0KCJFeHBpcmVzIiwgIjAiKQorCiAgICAgZGVmIGFkZF9jb250ZW50
KGRlbGF5cywgcmVwZWF0PUZhbHNlKToKICAgICAgICAgZm9yIGksIChpdGVtX3R5cGUsIHZhbHVl
KSBpbiBlbnVtZXJhdGUoZGVsYXlzKToKICAgICAgICAgICAgIGlmIGl0ZW1fdHlwZSA9PSAiYnl0
ZXMiOgpAQCAtMjY5LDE4ICsyNzcsMTggQEAgZGVmIHNsaWNlKHJlcXVlc3QsIHJlc3BvbnNlLCBz
dGFydCwgZW5kPU5vbmUpOgogCiAKIGNsYXNzIFJlcGxhY2VtZW50VG9rZW5pemVyKG9iamVjdCk6
Ci0gICAgZGVmIGlkZW50KHNjYW5uZXIsIHRva2VuKToKKyAgICBkZWYgaWRlbnQoc2VsZiwgdG9r
ZW4pOgogICAgICAgICByZXR1cm4gKCJpZGVudCIsIHRva2VuKQogCi0gICAgZGVmIGluZGV4KHNj
YW5uZXIsIHRva2VuKToKKyAgICBkZWYgaW5kZXgoc2VsZiwgdG9rZW4pOgogICAgICAgICB0b2tl
biA9IHRva2VuWzE6LTFdCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHRva2VuID0gaW50KHRv
a2VuKQogICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKLSAgICAgICAgICAgIHRva2VuID0gdW5p
Y29kZSh0b2tlbiwgInV0ZjgiKQorICAgICAgICAgICAgdG9rZW4gPSB0b2tlbi5kZWNvZGUoJ3V0
ZjgnKQogICAgICAgICByZXR1cm4gKCJpbmRleCIsIHRva2VuKQogCi0gICAgZGVmIHZhcihzY2Fu
bmVyLCB0b2tlbik6CisgICAgZGVmIHZhcihzZWxmLCB0b2tlbik6CiAgICAgICAgIHRva2VuID0g
dG9rZW5bOi0xXQogICAgICAgICByZXR1cm4gKCJ2YXIiLCB0b2tlbikKIApAQCAtMzg0LDYgKzM5
MiwxNCBAQCBkZWYgdGVtcGxhdGUocmVxdWVzdCwgY29udGVudCwgZXNjYXBlX3R5cGU9Imh0bWwi
KToKICAgICAgICAgICAgIHZhbHVlID0gcmVxdWVzdC5oZWFkZXJzCiAgICAgICAgIGVsaWYgZmll
bGQgPT0gIkdFVCI6CiAgICAgICAgICAgICB2YWx1ZSA9IEZpcnN0V3JhcHBlcihyZXF1ZXN0LkdF
VCkKKyAgICAgICAgZWxpZiBmaWVsZCA9PSAiZG9tYWlucyI6CisgICAgICAgICAgICBpZiAoJ25v
dF9kb21haW5zJyBpbiByZXF1ZXN0LnNlcnZlci5jb25maWcgYW5kCisgICAgICAgICAgICAgICAg
ICAgIHRva2Vuc1sxXVsxXSBpbiByZXF1ZXN0LnNlcnZlci5jb25maWdbJ25vdF9kb21haW5zJ10p
OgorICAgICAgICAgICAgICAgIHZhbHVlID0gcmVxdWVzdC5zZXJ2ZXIuY29uZmlnWydub3RfZG9t
YWlucyddCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHZhbHVlID0gcmVxdWVz
dC5zZXJ2ZXIuY29uZmlnWydkb21haW5zJ10KKyAgICAgICAgZWxpZiBmaWVsZCA9PSAiaG9zdCI6
CisgICAgICAgICAgICB2YWx1ZSA9IHJlcXVlc3Quc2VydmVyLmNvbmZpZ1siYnJvd3Nlcl9ob3N0
Il0KICAgICAgICAgZWxpZiBmaWVsZCBpbiByZXF1ZXN0LnNlcnZlci5jb25maWc6CiAgICAgICAg
ICAgICB2YWx1ZSA9IHJlcXVlc3Quc2VydmVyLmNvbmZpZ1t0b2tlbnNbMF1bMV1dCiAgICAgICAg
IGVsaWYgZmllbGQgPT0gImxvY2F0aW9uIjoKQEAgLTQxOCw3ICs0MzQsNyBAQCBkZWYgdGVtcGxh
dGUocmVxdWVzdCwgY29udGVudCwgZXNjYXBlX3R5cGU9Imh0bWwiKToKIAogICAgICAgICAjU2hv
dWxkIHBvc3NpYmx5IHN1cHBvcnQgZXNjYXBpbmcgZm9yIG90aGVyIGNvbnRleHRzIGUuZy4gc2Ny
aXB0CiAgICAgICAgICNUT0RPOiByZWFkIHRoZSBlbmNvZGluZyBvZiB0aGUgcmVzcG9uc2UKLSAg
ICAgICAgcmV0dXJuIGVzY2FwZV9mdW5jKHVuaWNvZGUodmFsdWUpKS5lbmNvZGUoInV0Zi04IikK
KyAgICAgICAgcmV0dXJuIGVzY2FwZV9mdW5jKHRleHRfdHlwZSh2YWx1ZSkpLmVuY29kZSgidXRm
LTgiKQogCiAgICAgdGVtcGxhdGVfcmVnZXhwID0gcmUuY29tcGlsZShyInt7KFtefV0qKX19IikK
ICAgICBuZXdfY29udGVudCA9IHRlbXBsYXRlX3JlZ2V4cC5zdWIoY29uZmlnX3JlcGxhY2VtZW50
LCBjb250ZW50KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9yZXNwb25zZS5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2Vy
dmUvcmVzcG9uc2UucHkKaW5kZXggNTBmZjAwZGRlOTQ0MGU5NmM4M2E5YmQ3ZTE0NzJiYWQzYjk5
ODg0NC4uMjBiN2I0MjY5OTYyMWU1ODBjY2QwODZjYzVjNGZhZjkxOGI4YWZlZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS93cHRzZXJ2ZS9yZXNwb25zZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3Jlc3BvbnNlLnB5CkBA
IC05LDYgKzksOCBAQCBpbXBvcnQgc29ja2V0CiBmcm9tIC5jb25zdGFudHMgaW1wb3J0IHJlc3Bv
bnNlX2NvZGVzCiBmcm9tIC5sb2dnZXIgaW1wb3J0IGdldF9sb2dnZXIKIAorZnJvbSBzaXggaW1w
b3J0IHN0cmluZ190eXBlcywgYmluYXJ5X3R5cGUsIHRleHRfdHlwZQorCiBtaXNzaW5nID0gb2Jq
ZWN0KCkKIAogY2xhc3MgUmVzcG9uc2Uob2JqZWN0KToKQEAgLTQwMCw3ICs0MDIsNyBAQCBjbGFz
cyBSZXNwb25zZVdyaXRlcihvYmplY3QpOgogICAgICAgICAgICAgaWYgbmFtZS5sb3dlcigpIG5v
dCBpbiBzZWxmLl9oZWFkZXJzX3NlZW46CiAgICAgICAgICAgICAgICAgc2VsZi53cml0ZV9oZWFk
ZXIobmFtZSwgZigpKQogCi0gICAgICAgIGlmICh0eXBlKHNlbGYuX3Jlc3BvbnNlLmNvbnRlbnQp
IGluIChzdHIsIHVuaWNvZGUpIGFuZAorICAgICAgICBpZiAoaXNpbnN0YW5jZShzZWxmLl9yZXNw
b25zZS5jb250ZW50LCBzdHJpbmdfdHlwZXMpIGFuZAogICAgICAgICAgICAgImNvbnRlbnQtbGVu
Z3RoIiBub3QgaW4gc2VsZi5faGVhZGVyc19zZWVuKToKICAgICAgICAgICAgICNXb3VsZCBiZSBu
aWNlIHRvIGF2b2lkIGRvdWJsZS1lbmNvZGluZyBoZXJlCiAgICAgICAgICAgICBzZWxmLndyaXRl
X2hlYWRlcigiQ29udGVudC1MZW5ndGgiLCBsZW4oc2VsZi5lbmNvZGUoc2VsZi5fcmVzcG9uc2Uu
Y29udGVudCkpKQpAQCAtNDU3LDkgKzQ1OSw5IEBAIGNsYXNzIFJlc3BvbnNlV3JpdGVyKG9iamVj
dCk6CiAKICAgICBkZWYgZW5jb2RlKHNlbGYsIGRhdGEpOgogICAgICAgICAiIiJDb252ZXJ0IHVu
aWNvZGUgdG8gYnl0ZXMgYWNjb3JkaW5nIHRvIHJlc3BvbnNlLmVuY29kaW5nLiIiIgotICAgICAg
ICBpZiBpc2luc3RhbmNlKGRhdGEsIHN0cik6CisgICAgICAgIGlmIGlzaW5zdGFuY2UoZGF0YSwg
YmluYXJ5X3R5cGUpOgogICAgICAgICAgICAgcmV0dXJuIGRhdGEKLSAgICAgICAgZWxpZiBpc2lu
c3RhbmNlKGRhdGEsIHVuaWNvZGUpOgorICAgICAgICBlbGlmIGlzaW5zdGFuY2UoZGF0YSwgdGV4
dF90eXBlKToKICAgICAgICAgICAgIHJldHVybiBkYXRhLmVuY29kZShzZWxmLl9yZXNwb25zZS5l
bmNvZGluZykKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0c2VydmUvd3B0c2VydmUvc2VydmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zZXJ2ZXIucHkKaW5k
ZXggMGFiNTEyY2IyYTU2MjZjYTA1MWVlMmU3NTVlZWYyMDUwMzdlN2Q0Yy4uZDFlZjc1MDg2MWNl
ZTgwZjk2YzRlZjNjZjUxMTgyNWM2M2MwMWQzOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zZXJ2
ZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zZXJ2ZXIucHkKQEAgLTExMCwxNCArMTEwLDE1IEBAIGNs
YXNzIFdlYlRlc3RTZXJ2ZXIoVGhyZWFkaW5nTWl4SW4sIEJhc2VIVFRQU2VydmVyLkhUVFBTZXJ2
ZXIpOgogICAgICMgRW5zdXJlIHRoYXQgd2UgZG9uJ3QgaGFuZyBvbiBzaHV0ZG93biB3YWl0aW5n
IGZvciByZXF1ZXN0cwogICAgIGRhZW1vbl90aHJlYWRzID0gVHJ1ZQogCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIHNlcnZlcl9hZGRyZXNzLCBSZXF1ZXN0SGFuZGxlckNsYXNzLCByb3V0ZXIsIHJl
d3JpdGVyLCBiaW5kX2hvc3RuYW1lLAorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzZXJ2ZXJfYWRk
cmVzcywgcmVxdWVzdF9oYW5kbGVyX2NscywKKyAgICAgICAgICAgICAgICAgcm91dGVyLCByZXdy
aXRlciwgYmluZF9hZGRyZXNzLAogICAgICAgICAgICAgICAgICBjb25maWc9Tm9uZSwgdXNlX3Nz
bD1GYWxzZSwga2V5X2ZpbGU9Tm9uZSwgY2VydGlmaWNhdGU9Tm9uZSwKICAgICAgICAgICAgICAg
ICAgZW5jcnlwdF9hZnRlcl9jb25uZWN0PUZhbHNlLCBsYXRlbmN5PU5vbmUsICoqa3dhcmdzKToK
ICAgICAgICAgIiIiU2VydmVyIGZvciBIVFRQKHMpIFJlcXVlc3RzCiAKICAgICAgICAgOnBhcmFt
IHNlcnZlcl9hZGRyZXNzOiB0dXBsZSBvZiAoc2VydmVyX25hbWUsIHBvcnQpCiAKLSAgICAgICAg
OnBhcmFtIFJlcXVlc3RIYW5kbGVyQ2xhc3M6IEJhc2VIVFRQUmVxdWVzdEhhbmRsZXItbGlrZSBj
bGFzcyB0byB1c2UgZm9yCisgICAgICAgIDpwYXJhbSByZXF1ZXN0X2hhbmRsZXJfY2xzOiBCYXNl
SFRUUFJlcXVlc3RIYW5kbGVyLWxpa2UgY2xhc3MgdG8gdXNlIGZvcgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaGFuZGxpbmcgcmVxdWVzdHMuCiAKICAgICAgICAgOnBhcmFt
IHJvdXRlcjogUm91dGVyIGluc3RhbmNlIHRvIHVzZSBmb3IgbWF0Y2hpbmcgcmVxdWVzdHMgdG8g
aGFuZGxlcgpAQCAtMTQwLDEwICsxNDEsMTAgQEAgY2xhc3MgV2ViVGVzdFNlcnZlcihUaHJlYWRp
bmdNaXhJbiwgQmFzZUhUVFBTZXJ2ZXIuSFRUUFNlcnZlcik6CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFRoaXMgZW5hYmxlcyB0aGUgc2VydmVyIHRvIGFjdCBhcyBhCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYtcHJveHkuCiAKLSAgICAg
ICAgOnBhcmFtIGJpbmRfaG9zdG5hbWUgVHJ1ZSB0byBiaW5kIHRoZSBzZXJ2ZXIgdG8gYm90aCB0
aGUgaG9zdG5hbWUgYW5kCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQgc3BlY2lm
aWVkIGluIHRoZSBzZXJ2ZXJfYWRkcmVzcyBwYXJhbWV0ZXIuCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEZhbHNlIHRvIGJpbmQgdGhlIHNlcnZlciBvbmx5IHRvIHRoZSBwb3J0IGluIHRo
ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfYWRkcmVzcyBwYXJhbWV0ZXIs
IGJ1dCBub3QgdG8gdGhlIGhvc3RuYW1lLgorICAgICAgICA6cGFyYW0gYmluZF9hZGRyZXNzIFRy
dWUgdG8gYmluZCB0aGUgc2VydmVyIHRvIGJvdGggdGhlIElQIGFkZHJlc3MgYW5kCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcG9ydCBzcGVjaWZpZWQgaW4gdGhlIHNlcnZlcl9hZGRyZXNz
IHBhcmFtZXRlci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSB0byBiaW5kIHRo
ZSBzZXJ2ZXIgb25seSB0byB0aGUgcG9ydCBpbiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZXJ2ZXJfYWRkcmVzcyBwYXJhbWV0ZXIsIGJ1dCBub3QgdG8gdGhlIGFkZHJlc3MuCiAg
ICAgICAgIDpwYXJhbSBsYXRlbmN5OiBEZWxheSBpbiBtcyB0byB3YWl0IGJlZm9yZSBzZXZpbmcg
ZWFjaCByZXNwb25zZSwgb3IKICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxhYmxlIHRoYXQg
cmV0dXJucyBhIGRlbGF5IGluIG1zCiAgICAgICAgICIiIgpAQCAtMTU1LDE5ICsxNTYsMjAgQEAg
Y2xhc3MgV2ViVGVzdFNlcnZlcihUaHJlYWRpbmdNaXhJbiwgQmFzZUhUVFBTZXJ2ZXIuSFRUUFNl
cnZlcik6CiAKICAgICAgICAgc2VsZi5sYXRlbmN5ID0gbGF0ZW5jeQogCi0gICAgICAgIGlmIGJp
bmRfaG9zdG5hbWU6CisgICAgICAgIGlmIGJpbmRfYWRkcmVzczoKICAgICAgICAgICAgIGhvc3Ru
YW1lX3BvcnQgPSBzZXJ2ZXJfYWRkcmVzcwogICAgICAgICBlbHNlOgogICAgICAgICAgICAgaG9z
dG5hbWVfcG9ydCA9ICgiIixzZXJ2ZXJfYWRkcmVzc1sxXSkKIAogICAgICAgICAjc3VwZXIgZG9l
c24ndCB3b3JrIGhlcmUgYmVjYXVzZSBCYXNlSFRUUFNlcnZlci5IVFRQU2VydmVyIGlzIG9sZC1z
dHlsZQotICAgICAgICBCYXNlSFRUUFNlcnZlci5IVFRQU2VydmVyLl9faW5pdF9fKHNlbGYsIGhv
c3RuYW1lX3BvcnQsIFJlcXVlc3RIYW5kbGVyQ2xhc3MsICoqa3dhcmdzKQorICAgICAgICBCYXNl
SFRUUFNlcnZlci5IVFRQU2VydmVyLl9faW5pdF9fKHNlbGYsIGhvc3RuYW1lX3BvcnQsIHJlcXVl
c3RfaGFuZGxlcl9jbHMsICoqa3dhcmdzKQogCiAgICAgICAgIGlmIGNvbmZpZyBpcyBub3QgTm9u
ZToKICAgICAgICAgICAgIFNlcnZlci5jb25maWcgPSBjb25maWcKICAgICAgICAgZWxzZToKICAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJVc2luZyBkZWZhdWx0IGNvbmZpZ3VyYXRpb24i
KQotICAgICAgICAgICAgU2VydmVyLmNvbmZpZyA9IHsiaG9zdCI6IHNlcnZlcl9hZGRyZXNzWzBd
LAorICAgICAgICAgICAgU2VydmVyLmNvbmZpZyA9IHsiYnJvd3Nlcl9ob3N0Ijogc2VydmVyX2Fk
ZHJlc3NbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZXJ2ZXJfaG9zdCI6IHNl
cnZlcl9hZGRyZXNzWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZG9tYWlucyI6
IHsiIjogc2VydmVyX2FkZHJlc3NbMF19LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
cG9ydHMiOiB7Imh0dHAiOiBbc2VsZi5zZXJ2ZXJfYWRkcmVzc1sxXV19fQogCkBAIC0zNDIsNyAr
MzQ0LDcgQEAgY2xhc3MgV2ViVGVzdEh0dHBkKG9iamVjdCk6CiAgICAgOnBhcmFtIHJld3JpdGVz
OiBMaXN0IG9mIHJld3JpdGVzIHdpdGggd2hpY2ggdG8gaW5pdGlhbGl6ZSB0aGUgcmV3cml0ZXJf
Y2xzCiAgICAgOnBhcmFtIGNvbmZpZzogRGljdGlvbmFyeSBob2xkaW5nIGVudmlyb25tZW50IGNv
bmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yCiAgICAgICAgICAgICAgICAgICAgaGFuZGxlcnMgdG8g
cmVhZCwgb3IgTm9uZSB0byB1c2UgdGhlIGRlZmF1bHQgdmFsdWVzLgotICAgIDpwYXJhbSBiaW5k
X2hvc3RuYW1lOiBCb29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0byBiaW5kIHNlcnZlciB0byBo
b3N0bmFtZS4KKyAgICA6cGFyYW0gYmluZF9hZGRyZXNzOiBCb29sZWFuIGluZGljYXRpbmcgd2hl
dGhlciB0byBiaW5kIHNlcnZlciB0byBJUCBhZGRyZXNzLgogICAgIDpwYXJhbSBsYXRlbmN5OiBE
ZWxheSBpbiBtcyB0byB3YWl0IGJlZm9yZSBzZXZpbmcgZWFjaCByZXNwb25zZSwgb3IKICAgICAg
ICAgICAgICAgICAgICAgY2FsbGFibGUgdGhhdCByZXR1cm5zIGEgZGVsYXkgaW4gbXMKIApAQCAt
MzgwLDcgKzM4Miw3IEBAIGNsYXNzIFdlYlRlc3RIdHRwZChvYmplY3QpOgogICAgICAgICAgICAg
ICAgICBzZXJ2ZXJfY2xzPU5vbmUsIGhhbmRsZXJfY2xzPVdlYlRlc3RSZXF1ZXN0SGFuZGxlciwK
ICAgICAgICAgICAgICAgICAgdXNlX3NzbD1GYWxzZSwga2V5X2ZpbGU9Tm9uZSwgY2VydGlmaWNh
dGU9Tm9uZSwgZW5jcnlwdF9hZnRlcl9jb25uZWN0PUZhbHNlLAogICAgICAgICAgICAgICAgICBy
b3V0ZXJfY2xzPVJvdXRlciwgZG9jX3Jvb3Q9b3MuY3VyZGlyLCByb3V0ZXM9Tm9uZSwKLSAgICAg
ICAgICAgICAgICAgcmV3cml0ZXJfY2xzPVJlcXVlc3RSZXdyaXRlciwgYmluZF9ob3N0bmFtZT1U
cnVlLCByZXdyaXRlcz1Ob25lLAorICAgICAgICAgICAgICAgICByZXdyaXRlcl9jbHM9UmVxdWVz
dFJld3JpdGVyLCBiaW5kX2FkZHJlc3M9VHJ1ZSwgcmV3cml0ZXM9Tm9uZSwKICAgICAgICAgICAg
ICAgICAgbGF0ZW5jeT1Ob25lLCBjb25maWc9Tm9uZSk6CiAKICAgICAgICAgaWYgcm91dGVzIGlz
IE5vbmU6CkBAIC00MDgsNyArNDEwLDcgQEAgY2xhc3MgV2ViVGVzdEh0dHBkKG9iamVjdCk6CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJvdXRlciwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmV3cml0ZXIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9Y29uZmlnLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYmluZF9ob3N0bmFtZT1iaW5kX2hvc3RuYW1lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluZF9hZGRyZXNzPWJpbmRfYWRkcmVzcywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZV9zc2w9dXNlX3NzbCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleV9maWxlPWtleV9maWxlLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydGlmaWNhdGU9Y2VydGlmaWNhdGUsCkBA
IC00MTgsNyArNDIwLDggQEAgY2xhc3MgV2ViVGVzdEh0dHBkKG9iamVjdCk6CiAKICAgICAgICAg
ICAgIF9ob3N0LCBzZWxmLnBvcnQgPSBzZWxmLmh0dHBkLnNvY2tldC5nZXRzb2NrbmFtZSgpCiAg
ICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcign
SW5pdCBmYWlsZWQhIFlvdSBtYXkgbmVlZCB0byBtb2RpZnkgeW91ciBob3N0cyBmaWxlLiBSZWZl
ciB0byBSRUFETUUubWQuJykKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKCJGYWlsZWQg
dG8gc3RhcnQgSFRUUCBzZXJ2ZXIuICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJZ
b3UgbWF5IG5lZWQgdG8gZWRpdCAvZXRjL2hvc3RzIG9yIHNpbWlsYXIsIHNlZSBSRUFETUUubWQu
IikKICAgICAgICAgICAgIHJhaXNlCiAKICAgICBkZWYgc3RhcnQoc2VsZiwgYmxvY2s9RmFsc2Up
OgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zdGFzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3Rhc2gucHkK
aW5kZXggYjZiZDZlZWQ0NDJhMmMxZTIyYzhjZmI2ZDI5NGZhODEwOTkxYTNkZS4uNjlmYTQ0MTgz
ODM2YjhhZGE2MThiMjdmODQwZjgzNWJmYjk4NDNmZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9z
dGFzaC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3N0YXNoLnB5CkBAIC0yLDcgKzIsOCBAQCBpbXBvcnQg
YmFzZTY0CiBpbXBvcnQganNvbgogaW1wb3J0IG9zCiBpbXBvcnQgdXVpZAotZnJvbSBtdWx0aXBy
b2Nlc3NpbmcubWFuYWdlcnMgaW1wb3J0IEJhc2VNYW5hZ2VyLCBEaWN0UHJveHkKK2ltcG9ydCB0
aHJlYWRpbmcKK2Zyb20gbXVsdGlwcm9jZXNzaW5nLm1hbmFnZXJzIGltcG9ydCBBY3F1aXJlclBy
b3h5LCBCYXNlTWFuYWdlciwgRGljdFByb3h5CiAKIGNsYXNzIFNlcnZlckRpY3RNYW5hZ2VyKEJh
c2VNYW5hZ2VyKToKICAgICBzaGFyZWRfZGF0YSA9IHt9CkBAIC0xMywxMSArMTQsMTMgQEAgZGVm
IF9nZXRfc2hhcmVkKCk6CiBTZXJ2ZXJEaWN0TWFuYWdlci5yZWdpc3RlcigiZ2V0X2RpY3QiLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGFibGU9X2dldF9zaGFyZWQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwcm94eXR5cGU9RGljdFByb3h5KQorU2VydmVyRGljdE1hbmFn
ZXIucmVnaXN0ZXIoJ0xvY2snLCB0aHJlYWRpbmcuTG9jaywgQWNxdWlyZXJQcm94eSkKIAogY2xh
c3MgQ2xpZW50RGljdE1hbmFnZXIoQmFzZU1hbmFnZXIpOgogICAgIHBhc3MKIAogQ2xpZW50RGlj
dE1hbmFnZXIucmVnaXN0ZXIoImdldF9kaWN0IikKK0NsaWVudERpY3RNYW5hZ2VyLnJlZ2lzdGVy
KCJMb2NrIikKIAogY2xhc3MgU3Rhc2hTZXJ2ZXIob2JqZWN0KToKICAgICBkZWYgX19pbml0X18o
c2VsZiwgYWRkcmVzcz1Ob25lLCBhdXRoa2V5PU5vbmUpOgpAQCAtNTMsNiArNTYsMjIgQEAgZGVm
IHN0YXJ0X3NlcnZlcihhZGRyZXNzPU5vbmUsIGF1dGhrZXk9Tm9uZSk6CiAgICAgcmV0dXJuICht
YW5hZ2VyLCBtYW5hZ2VyLl9hZGRyZXNzLCBtYW5hZ2VyLl9hdXRoa2V5KQogCiAKK2NsYXNzIExv
Y2tXcmFwcGVyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvY2spOgorICAgICAg
ICBzZWxmLmxvY2sgPSBsb2NrCisKKyAgICBkZWYgYWNxdWlyZShzZWxmKToKKyAgICAgICAgc2Vs
Zi5sb2NrLmFjcXVpcmUoKQorCisgICAgZGVmIHJlbGVhc2Uoc2VsZik6CisgICAgICAgIHNlbGYu
bG9jay5yZWxlYXNlKCkKKworICAgIGRlZiBfX2VudGVyX18oc2VsZik6CisgICAgICAgIHNlbGYu
YWNxdWlyZSgpCisKKyAgICBkZWYgX19leGl0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAg
ICAgICAgc2VsZi5yZWxlYXNlKCkKKwogI1RPRE86IENvbnNpZGVyIGV4cGlyaW5nIHZhbHVlcyBh
ZnRlciBzb21lIGZpeGVkIHRpbWUgZm9yIGxvbmctcnVubmluZwogI3NlcnZlcnMKIApAQCAtODEs
MjEgKzEwMCwyMyBAQCBjbGFzcyBTdGFzaChvYmplY3QpOgogICAgICIiIgogCiAgICAgX3Byb3h5
ID0gTm9uZQorICAgIGxvY2sgPSBOb25lCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgZGVmYXVs
dF9wYXRoLCBhZGRyZXNzPU5vbmUsIGF1dGhrZXk9Tm9uZSk6CiAgICAgICAgIHNlbGYuZGVmYXVs
dF9wYXRoID0gZGVmYXVsdF9wYXRoCi0gICAgICAgIHNlbGYuZGF0YSA9IHNlbGYuX2dldF9wcm94
eShhZGRyZXNzLCBhdXRoa2V5KQorICAgICAgICBzZWxmLl9nZXRfcHJveHkoYWRkcmVzcywgYXV0
aGtleSkKKyAgICAgICAgc2VsZi5kYXRhID0gU3Rhc2guX3Byb3h5CiAKICAgICBkZWYgX2dldF9w
cm94eShzZWxmLCBhZGRyZXNzPU5vbmUsIGF1dGhrZXk9Tm9uZSk6CiAgICAgICAgIGlmIGFkZHJl
c3MgaXMgTm9uZSBhbmQgYXV0aGtleSBpcyBOb25lOgogICAgICAgICAgICAgU3Rhc2guX3Byb3h5
ID0ge30KKyAgICAgICAgICAgIFN0YXNoLmxvY2sgPSB0aHJlYWRpbmcuTG9jaygpCiAKICAgICAg
ICAgaWYgU3Rhc2guX3Byb3h5IGlzIE5vbmU6CiAgICAgICAgICAgICBtYW5hZ2VyID0gQ2xpZW50
RGljdE1hbmFnZXIoYWRkcmVzcywgYXV0aGtleSkKICAgICAgICAgICAgIG1hbmFnZXIuY29ubmVj
dCgpCiAgICAgICAgICAgICBTdGFzaC5fcHJveHkgPSBtYW5hZ2VyLmdldF9kaWN0KCkKLQotICAg
ICAgICByZXR1cm4gU3Rhc2guX3Byb3h5CisgICAgICAgICAgICBTdGFzaC5sb2NrID0gTG9ja1dy
YXBwZXIobWFuYWdlci5Mb2NrKCkpCiAKICAgICBkZWYgX3dyYXBfa2V5KHNlbGYsIGtleSwgcGF0
aCk6CiAgICAgICAgIGlmIHBhdGggaXMgTm9uZToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvYW5pbWF0aW9uLW1v
ZGVsL2FuaW1hdGlvbi10eXBlcy9hY2N1bXVsYXRpb24tcGVyLXByb3BlcnR5LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1h
dGlvbnMvYW5pbWF0aW9uLW1vZGVsL2FuaW1hdGlvbi10eXBlcy9hY2N1bXVsYXRpb24tcGVyLXBy
b3BlcnR5LWV4cGVjdGVkLnR4dAppbmRleCAwYTdkNWNhNGQ2YTA4ZmE1ZWUyOGI4NGViNzI2OGI5
YzQyNDYyZDRhLi5kOTAwN2EwMDE2MjRlNTFmMzNmNWY4OWJiOWYwZTU0NTk4MmI4NGZjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1h
bmltYXRpb25zL2FuaW1hdGlvbi1tb2RlbC9hbmltYXRpb24tdHlwZXMvYWNjdW11bGF0aW9uLXBl
ci1wcm9wZXJ0eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy9hbmltYXRpb24tbW9kZWwvYW5pbWF0aW9u
LXR5cGVzL2FjY3VtdWxhdGlvbi1wZXItcHJvcGVydHktZXhwZWN0ZWQudHh0CkBAIC0yMDcsMTIg
KzIwNywxMiBAQCBGQUlMIHRyYW5zZm9ybTogbWF0cml4IGFzc2VydF9hcHByb3hfZXF1YWxzOiBl
eHBlY3RlZCBtYXRyaXgoMCwxLC0xLDAsMTAwLDApIGJ1dAogRkFJTCB0cmFuc2Zvcm06IHJvdGF0
ZTNkIGFzc2VydF9hcHByb3hfZXF1YWxzOiBleHBlY3RlZCBtYXRyaXgzZCgwLjg1MzU1MzM5MDU5
MzI3MzcsMC4xNDY0NDY2MDk0MDY3MjYyLDAuNSwwLDAuMTQ2NDQ2NjA5NDA2NzI2MiwwLjg1MzU1
MzM5MDU5MzI3MzcsLTAuNSwwLC0wLjUsMC41LDAuNzA3MTA2NzgxMTg2NTQ3NiwwLDAsMCwwLDEp
IGJ1dCBnb3QgbWF0cml4M2QoMC40OTk5OTk5OTk5OTk5OTk5LCAwLjQ5OTk5OTk5OTk5OTk5OTgs
IDAuNzA3MTA2NzgxMTg2NTQ3NSwgMCwgMC40OTk5OTk5OTk5OTk5OTk2NywgMC41LCAtMC43MDcx
MDY3ODExODY1NDc1LCAwLCAtMC43MDcxMDY3ODExODY1NDc1LCAwLjcwNzEwNjc4MTE4NjU0NzQs
IDAuMDAwMDAwMDAwMDAwMDAwMjQ4MzQyNzA0MTU5NTA5OCwgMCwgMCwgMCwgMCwgMSk6IFRoZSB2
YWx1ZSBzaG91bGQgYmUgbWF0cml4M2QoMC44NTM1NTMzOTA1OTMyNzM3LDAuMTQ2NDQ2NjA5NDA2
NzI2MiwwLjUsMCwwLjE0NjQ0NjYwOTQwNjcyNjIsMC44NTM1NTMzOTA1OTMyNzM3LC0wLjUsMCwt
MC41LDAuNSwwLjcwNzEwNjc4MTE4NjU0NzYsMCwwLDAsMCwxKSBhdCAwbXMgYnV0IGdvdCBtYXRy
aXgzZCgwLjQ5OTk5OTk5OTk5OTk5OTksIDAuNDk5OTk5OTk5OTk5OTk5OCwgMC43MDcxMDY3ODEx
ODY1NDc1LCAwLCAwLjQ5OTk5OTk5OTk5OTk5OTY3LCAwLjUsIC0wLjcwNzEwNjc4MTE4NjU0NzUs
IDAsIC0wLjcwNzEwNjc4MTE4NjU0NzUsIDAuNzA3MTA2NzgxMTg2NTQ3NCwgMC4wMDAwMDAwMDAw
MDAwMDAyNDgzNDI3MDQxNTk1MDk4LCAwLCAwLCAwLCAwLCAxKSBleHBlY3RlZCAwLjg1MzU1MzM5
MDU5MzI3MzcgKy8tIDAuMDAwMSBidXQgZ290IDAuNDk5OTk5OTk5OTk5OTk5OQogRkFJTCB0cmFu
c2Zvcm06IG1hdHJpeDNkIGFzc2VydF9hcHByb3hfZXF1YWxzOiBleHBlY3RlZCBtYXRyaXgzZCgw
Ljg1MzU1MzM5MDU5MzI3MzcsMC4xNDY0NDY2MDk0MDY3MjYyLDAuNSwwLDAuMTQ2NDQ2NjA5NDA2
NzI2MiwwLjg1MzU1MzM5MDU5MzI3MzcsLTAuNSwwLC0wLjUsMC41LDAuNzA3MTA2NzgxMTg2NTQ3
NiwwLDAsMCwwLDEpIGJ1dCBnb3QgbWF0cml4M2QoMC41MDAwMDAwMDAwMDAwMDAxLCAwLjQ5OTk5
OTk5OTk5OTk5OTgzLCAwLjcwNzEwNjc4MTE4NjU0NzQsIDAsIDAuNDk5OTk5OTk5OTk5OTk5Nywg
MC41MDAwMDAwMDAwMDAwMDAyLCAtMC43MDcxMDY3ODExODY1NDc2LCAwLCAtMC43MDcxMDY3ODEx
ODY1NDc2LCAwLjcwNzEwNjc4MTE4NjU0NzQsIDAuMDAwMDAwMDAwMDAwMDAwNDA0MjU5MTU4MzAw
MjEzLCAwLCAwLCAwLCAwLCAxKTogVGhlIHZhbHVlIHNob3VsZCBiZSBtYXRyaXgzZCgwLjg1MzU1
MzM5MDU5MzI3MzcsMC4xNDY0NDY2MDk0MDY3MjYyLDAuNSwwLDAuMTQ2NDQ2NjA5NDA2NzI2Miww
Ljg1MzU1MzM5MDU5MzI3MzcsLTAuNSwwLC0wLjUsMC41LDAuNzA3MTA2NzgxMTg2NTQ3NiwwLDAs
MCwwLDEpIGF0IDBtcyBidXQgZ290IG1hdHJpeDNkKDAuNTAwMDAwMDAwMDAwMDAwMSwgMC40OTk5
OTk5OTk5OTk5OTk4MywgMC43MDcxMDY3ODExODY1NDc0LCAwLCAwLjQ5OTk5OTk5OTk5OTk5OTcs
IDAuNTAwMDAwMDAwMDAwMDAwMiwgLTAuNzA3MTA2NzgxMTg2NTQ3NiwgMCwgLTAuNzA3MTA2Nzgx
MTg2NTQ3NiwgMC43MDcxMDY3ODExODY1NDc0LCAwLjAwMDAwMDAwMDAwMDAwMDQwNDI1OTE1ODMw
MDIxMywgMCwgMCwgMCwgMCwgMSkgZXhwZWN0ZWQgMC44NTM1NTMzOTA1OTMyNzM3ICsvLSAwLjAw
MDEgYnV0IGdvdCAwLjUwMDAwMDAwMDAwMDAwMDEKIEZBSUwgdHJhbnNmb3JtOiBub25lIGFzc2Vy
dF9lcXVhbHM6IGRpbWVuc2lvbiBvZiB0aGUgbWF0cml4OiBUaGUgdmFsdWUgc2hvdWxkIGJlIG1h
dHJpeDNkKDEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAsMCwxLDEpIGF0IDBtcyBidXQgZ290IG1h
dHJpeCgxLCAwLCAwLCAxLCAwLCAwKSBleHBlY3RlZCAxNiBidXQgZ290IDYKLUZBSUwgdHJhbnNm
b3JtOiBub24taW52ZXJ0aWJsZSBtYXRyaWNlcyAobm9uLWludmVydGlibGUgb250byBpbnZlcnRp
YmxlKSBhc3NlcnRfcmVnZXhwX21hdGNoOiBBY3R1YWwgdmFsdWUgaXMgbm90IGEgbWF0cml4IGV4
cGVjdGVkIG9iamVjdCAiL15tYXRyaXgoPzozZCkqXCgoLispXCkvIiBidXQgZ290ICJub25lIgot
RkFJTCB0cmFuc2Zvcm06IG5vbi1pbnZlcnRpYmxlIG1hdHJpY2VzIChpbnZlcnRpYmxlIG9udG8g
bm9uLWludmVydGlibGUpIGFzc2VydF9yZWdleHBfbWF0Y2g6IEFjdHVhbCB2YWx1ZSBpcyBub3Qg
YSBtYXRyaXggZXhwZWN0ZWQgb2JqZWN0ICIvXm1hdHJpeCg/OjNkKSpcKCguKylcKS8iIGJ1dCBn
b3QgIm5vbmUiCi1GQUlMIHRyYW5zZm9ybTogbm9uLWludmVydGlibGUgbWF0cmljZXMgaW4gbWF0
Y2hlZCB0cmFuc2Zvcm0gbGlzdHMgKG5vbi1pbnZlcnRpYmxlIG9udG8gaW52ZXJ0aWJsZSkgYXNz
ZXJ0X3JlZ2V4cF9tYXRjaDogQWN0dWFsIHZhbHVlIGlzIG5vdCBhIG1hdHJpeCBleHBlY3RlZCBv
YmplY3QgIi9ebWF0cml4KD86M2QpKlwoKC4rKVwpLyIgYnV0IGdvdCAibm9uZSIKLUZBSUwgdHJh
bnNmb3JtOiBub24taW52ZXJ0aWJsZSBtYXRyaWNlcyBpbiBtYXRjaGVkIHRyYW5zZm9ybSBsaXN0
cyAoaW52ZXJ0aWJsZSBvbnRvIG5vbi1pbnZlcnRpYmxlKSBhc3NlcnRfcmVnZXhwX21hdGNoOiBB
Y3R1YWwgdmFsdWUgaXMgbm90IGEgbWF0cml4IGV4cGVjdGVkIG9iamVjdCAiL15tYXRyaXgoPzoz
ZCkqXCgoLispXCkvIiBidXQgZ290ICJub25lIgotRkFJTCB0cmFuc2Zvcm06IG5vbi1pbnZlcnRp
YmxlIG1hdHJpY2VzIGluIG1pc21hdGNoZWQgdHJhbnNmb3JtIGxpc3RzIChub24taW52ZXJ0aWJs
ZSBvbnRvIGludmVydGlibGUpIGFzc2VydF9yZWdleHBfbWF0Y2g6IEFjdHVhbCB2YWx1ZSBpcyBu
b3QgYSBtYXRyaXggZXhwZWN0ZWQgb2JqZWN0ICIvXm1hdHJpeCg/OjNkKSpcKCguKylcKS8iIGJ1
dCBnb3QgIm5vbmUiCi1GQUlMIHRyYW5zZm9ybTogbm9uLWludmVydGlibGUgbWF0cmljZXMgaW4g
bWlzbWF0Y2hlZCB0cmFuc2Zvcm0gbGlzdHMgKGludmVydGlibGUgb250byBub24taW52ZXJ0aWJs
ZSkgYXNzZXJ0X3JlZ2V4cF9tYXRjaDogQWN0dWFsIHZhbHVlIGlzIG5vdCBhIG1hdHJpeCBleHBl
Y3RlZCBvYmplY3QgIi9ebWF0cml4KD86M2QpKlwoKC4rKVwpLyIgYnV0IGdvdCAibm9uZSIKK0ZB
SUwgdHJhbnNmb3JtOiBub24taW52ZXJ0aWJsZSBtYXRyaWNlcyAobm9uLWludmVydGlibGUgb250
byBpbnZlcnRpYmxlKSBhc3NlcnRfYXBwcm94X2VxdWFsczogZXhwZWN0ZWQgbWF0cml4KDEsMSww
LDAsMCwxMDApIGJ1dCBnb3QgbWF0cml4KDEsIDEsIDAsIDAsIDQ5Ljk5OTk5OTk5OTk5OTk4Niwg
NDkuOTk5OTk5OTk5OTk5OTg2KTogVGhlIHZhbHVlIHNob3VsZCBiZSBtYXRyaXgoMSwxLDAsMCww
LDEwMCkgYXQgMG1zIGJ1dCBnb3QgbWF0cml4KDEsIDEsIDAsIDAsIDQ5Ljk5OTk5OTk5OTk5OTk4
NiwgNDkuOTk5OTk5OTk5OTk5OTg2KSBleHBlY3RlZCAwICsvLSAwLjAwMDEgYnV0IGdvdCA0OS45
OTk5OTk5OTk5OTk5ODYKK1BBU1MgdHJhbnNmb3JtOiBub24taW52ZXJ0aWJsZSBtYXRyaWNlcyAo
aW52ZXJ0aWJsZSBvbnRvIG5vbi1pbnZlcnRpYmxlKSAKK1BBU1MgdHJhbnNmb3JtOiBub24taW52
ZXJ0aWJsZSBtYXRyaWNlcyBpbiBtYXRjaGVkIHRyYW5zZm9ybSBsaXN0cyAobm9uLWludmVydGli
bGUgb250byBpbnZlcnRpYmxlKSAKK1BBU1MgdHJhbnNmb3JtOiBub24taW52ZXJ0aWJsZSBtYXRy
aWNlcyBpbiBtYXRjaGVkIHRyYW5zZm9ybSBsaXN0cyAoaW52ZXJ0aWJsZSBvbnRvIG5vbi1pbnZl
cnRpYmxlKSAKK1BBU1MgdHJhbnNmb3JtOiBub24taW52ZXJ0aWJsZSBtYXRyaWNlcyBpbiBtaXNt
YXRjaGVkIHRyYW5zZm9ybSBsaXN0cyAobm9uLWludmVydGlibGUgb250byBpbnZlcnRpYmxlKSAK
K1BBU1MgdHJhbnNmb3JtOiBub24taW52ZXJ0aWJsZSBtYXRyaWNlcyBpbiBtaXNtYXRjaGVkIHRy
YW5zZm9ybSBsaXN0cyAoaW52ZXJ0aWJsZSBvbnRvIG5vbi1pbnZlcnRpYmxlKSAKIFBBU1Mgdmlz
aWJpbGl0eSAodHlwZTogdmlzaWJpbGl0eSkgaGFzIHRlc3RBY2N1bXVsYXRpb24gZnVuY3Rpb24g
CiBGQUlMIHZpc2liaWxpdHk6IG9udG8gInZpc2libGUiIGFzc2VydF9lcXVhbHM6IFRoZSB2YWx1
ZSBzaG91bGQgYmUgdmlzaWJsZSBhdCAxMDAwbXMgZXhwZWN0ZWQgInZpc2libGUiIGJ1dCBnb3Qg
ImhpZGRlbiIKIFBBU1MgdmlzaWJpbGl0eTogb250byAiaGlkZGVuIiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMv
YW5pbWF0aW9uLW1vZGVsL2FuaW1hdGlvbi10eXBlcy9pbnRlcnBvbGF0aW9uLXBlci1wcm9wZXJ0
eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYi1hbmltYXRpb25zL2FuaW1hdGlvbi1tb2RlbC9hbmltYXRpb24tdHlwZXMvaW50ZXJw
b2xhdGlvbi1wZXItcHJvcGVydHktZXhwZWN0ZWQudHh0CmluZGV4IDI0ZjE0YzY0OTI1Y2UxODdj
YWU5MGI0MmJiNWQ3YjQxMTNhMTUxZWIuLjBiMDVkOWIyOWUzNWU5ZTVjMGU1MTQzNjhiOWQ3ZmRj
Y2ViODA0MDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvYW5pbWF0aW9uLW1vZGVsL2FuaW1hdGlvbi10eXBlcy9p
bnRlcnBvbGF0aW9uLXBlci1wcm9wZXJ0eS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy9hbmltYXRpb24t
bW9kZWwvYW5pbWF0aW9uLXR5cGVzL2ludGVycG9sYXRpb24tcGVyLXByb3BlcnR5LWV4cGVjdGVk
LnR4dApAQCAtMjM2LDIxICsyMzYsMjEgQEAgRkFJTCB0ZXh0LXNoYWRvdzogbWlzbWF0Y2hlZCBs
aXN0IGxlbmd0aCAoZnJvbSBsb25nZXIgdG8gc2hvcnRlcikgYXNzZXJ0X2VxdWFsczoKIEZBSUwg
dGV4dC1zaGFkb3c6IG1pc21hdGNoZWQgbGlzdCBsZW5ndGggKGZyb20gc2hvcnRlciB0byBsb25n
ZXIpIGFzc2VydF9lcXVhbHM6IFRoZSB2YWx1ZSBzaG91bGQgYmUgcmdiKDE1MCwgMTUwLCAxNTAp
IDE1cHggMTVweCAxNXB4LCByZ2JhKDEwMCwgMTAwLCAxMDAsIDAuNSkgNXB4IDVweCA1cHggYXQg
NTAwbXMgZXhwZWN0ZWQgInJnYigxNTAsIDE1MCwgMTUwKSAxNXB4IDE1cHggMTVweCwgcmdiYSgx
MDAsIDEwMCwgMTAwLCAwLjUpIDVweCA1cHggNXB4IiBidXQgZ290ICJyZ2IoMTUwLCAxNTAsIDE1
MCkgMTVweCAxNXB4IDE1cHgsIHJnYmEoMTAwLCAxMDAsIDEwMCwgMC41MDE5NjEpIDVweCA1cHgg
NXB4IgogRkFJTCB0ZXh0LXNoYWRvdzogd2l0aCBjdXJyZW50Y29sb3IgYXNzZXJ0X2VxdWFsczog
VGhlIHZhbHVlIHNob3VsZCBiZSByZ2IoMCwgMjU1LCAwKSA1cHggNXB4IDVweCBhdCA1MDBtcyBl
eHBlY3RlZCAicmdiKDAsIDI1NSwgMCkgNXB4IDVweCA1cHgiIGJ1dCBnb3QgInJnYigwLCAwLCAw
KSA1cHggNXB4IDVweCIKIFBBU1MgdHJhbnNmb3JtICh0eXBlOiB0cmFuc2Zvcm1MaXN0KSBoYXMg
dGVzdEludGVycG9sYXRpb24gZnVuY3Rpb24gCi1GQUlMIHRyYW5zZm9ybTogdHJhbnNsYXRlIGFz
c2VydF9yZWdleHBfbWF0Y2g6IEFjdHVhbCB2YWx1ZSBpcyBub3QgYSBtYXRyaXggZXhwZWN0ZWQg
b2JqZWN0ICIvXm1hdHJpeCg/OjNkKSpcKCguKylcKS8iIGJ1dCBnb3QgIm5vbmUiCi1GQUlMIHRy
YW5zZm9ybTogcm90YXRlIGFzc2VydF9yZWdleHBfbWF0Y2g6IEFjdHVhbCB2YWx1ZSBpcyBub3Qg
YSBtYXRyaXggZXhwZWN0ZWQgb2JqZWN0ICIvXm1hdHJpeCg/OjNkKSpcKCguKylcKS8iIGJ1dCBn
b3QgIm5vbmUiCi1GQUlMIHRyYW5zZm9ybTogc2NhbGUgYXNzZXJ0X3JlZ2V4cF9tYXRjaDogQWN0
dWFsIHZhbHVlIGlzIG5vdCBhIG1hdHJpeCBleHBlY3RlZCBvYmplY3QgIi9ebWF0cml4KD86M2Qp
KlwoKC4rKVwpLyIgYnV0IGdvdCAibm9uZSIKLUZBSUwgdHJhbnNmb3JtOiBza2V3IGFzc2VydF9y
ZWdleHBfbWF0Y2g6IEFjdHVhbCB2YWx1ZSBpcyBub3QgYSBtYXRyaXggZXhwZWN0ZWQgb2JqZWN0
ICIvXm1hdHJpeCg/OjNkKSpcKCguKylcKS8iIGJ1dCBnb3QgIm5vbmUiCi1GQUlMIHRyYW5zZm9y
bTogcm90YXRlIGFuZCB0cmFuc2xhdGUgYXNzZXJ0X3JlZ2V4cF9tYXRjaDogQWN0dWFsIHZhbHVl
IGlzIG5vdCBhIG1hdHJpeCBleHBlY3RlZCBvYmplY3QgIi9ebWF0cml4KD86M2QpKlwoKC4rKVwp
LyIgYnV0IGdvdCAibm9uZSIKLUZBSUwgdHJhbnNmb3JtOiB0cmFuc2xhdGUgYW5kIHJvdGF0ZSBh
c3NlcnRfcmVnZXhwX21hdGNoOiBBY3R1YWwgdmFsdWUgaXMgbm90IGEgbWF0cml4IGV4cGVjdGVk
IG9iamVjdCAiL15tYXRyaXgoPzozZCkqXCgoLispXCkvIiBidXQgZ290ICJub25lIgotRkFJTCB0
cmFuc2Zvcm06IG1pc21hdGNoIG9yZGVyIG9mIHRyYW5zbGF0ZSBhbmQgcm90YXRlIGFzc2VydF9y
ZWdleHBfbWF0Y2g6IEFjdHVhbCB2YWx1ZSBpcyBub3QgYSBtYXRyaXggZXhwZWN0ZWQgb2JqZWN0
ICIvXm1hdHJpeCg/OjNkKSpcKCguKylcKS8iIGJ1dCBnb3QgIm5vbmUiCi1GQUlMIHRyYW5zZm9y
bTogbWF0cml4IGFzc2VydF9yZWdleHBfbWF0Y2g6IEFjdHVhbCB2YWx1ZSBpcyBub3QgYSBtYXRy
aXggZXhwZWN0ZWQgb2JqZWN0ICIvXm1hdHJpeCg/OjNkKSpcKCguKylcKS8iIGJ1dCBnb3QgIm5v
bmUiCi1GQUlMIHRyYW5zZm9ybTogcm90YXRlM2QgYXNzZXJ0X3JlZ2V4cF9tYXRjaDogQWN0dWFs
IHZhbHVlIGlzIG5vdCBhIG1hdHJpeCBleHBlY3RlZCBvYmplY3QgIi9ebWF0cml4KD86M2QpKlwo
KC4rKVwpLyIgYnV0IGdvdCAibm9uZSIKLUZBSUwgdHJhbnNmb3JtOiBtYXRyaXgzZCBhc3NlcnRf
cmVnZXhwX21hdGNoOiBBY3R1YWwgdmFsdWUgaXMgbm90IGEgbWF0cml4IGV4cGVjdGVkIG9iamVj
dCAiL15tYXRyaXgoPzozZCkqXCgoLispXCkvIiBidXQgZ290ICJub25lIgotRkFJTCB0cmFuc2Zv
cm06IG1pc21hdGNoZWQgM0QgdHJhbnNmb3JtcyBhc3NlcnRfcmVnZXhwX21hdGNoOiBBY3R1YWwg
dmFsdWUgaXMgbm90IGEgbWF0cml4IGV4cGVjdGVkIG9iamVjdCAiL15tYXRyaXgoPzozZCkqXCgo
LispXCkvIiBidXQgZ290ICJub25lIgotRkFJTCB0cmFuc2Zvcm06IHJvdGF0ZVkgYXNzZXJ0X3Jl
Z2V4cF9tYXRjaDogQWN0dWFsIHZhbHVlIGlzIG5vdCBhIG1hdHJpeCBleHBlY3RlZCBvYmplY3Qg
Ii9ebWF0cml4KD86M2QpKlwoKC4rKVwpLyIgYnV0IGdvdCAibm9uZSIKLUZBSUwgdHJhbnNmb3Jt
OiBub24taW52ZXJ0aWJsZSBtYXRyaWNlcyBhc3NlcnRfcmVnZXhwX21hdGNoOiBBY3R1YWwgdmFs
dWUgaXMgbm90IGEgbWF0cml4IGV4cGVjdGVkIG9iamVjdCAiL15tYXRyaXgoPzozZCkqXCgoLisp
XCkvIiBidXQgZ290ICJub25lIgotRkFJTCB0cmFuc2Zvcm06IG5vbi1pbnZlcnRpYmxlIG1hdHJp
Y2VzIGluIG1hdGNoZWQgdHJhbnNmb3JtIGxpc3RzIGFzc2VydF9yZWdleHBfbWF0Y2g6IEFjdHVh
bCB2YWx1ZSBpcyBub3QgYSBtYXRyaXggZXhwZWN0ZWQgb2JqZWN0ICIvXm1hdHJpeCg/OjNkKSpc
KCguKylcKS8iIGJ1dCBnb3QgIm5vbmUiCi1GQUlMIHRyYW5zZm9ybTogbm9uLWludmVydGlibGUg
bWF0cmljZXMgaW4gbWlzbWF0Y2hlZCB0cmFuc2Zvcm0gbGlzdHMgYXNzZXJ0X3JlZ2V4cF9tYXRj
aDogQWN0dWFsIHZhbHVlIGlzIG5vdCBhIG1hdHJpeCBleHBlY3RlZCBvYmplY3QgIi9ebWF0cml4
KD86M2QpKlwoKC4rKVwpLyIgYnV0IGdvdCAibm9uZSIKK1BBU1MgdHJhbnNmb3JtOiB0cmFuc2xh
dGUgCitQQVNTIHRyYW5zZm9ybTogcm90YXRlIAorUEFTUyB0cmFuc2Zvcm06IHNjYWxlIAorRkFJ
TCB0cmFuc2Zvcm06IHNrZXcgYXNzZXJ0X2FwcHJveF9lcXVhbHM6IGV4cGVjdGVkIG1hdHJpeCgx
LDAuOTk5OTk5OTk5OTk5OTk5OSwwLjk5OTk5OTk5OTk5OTk5OTksMSwwLDApIGJ1dCBnb3QgbWF0
cml4KDEuMTE1MzU1MDcxNjUwNDEwNiwgMC45NjU5MjU4MjYyODkwNjgyLCAwLjk2NTkyNTgyNjI4
OTA2ODEsIDEuMTE1MzU1MDcxNjUwNDEwNiwgMCwgMCk6IFRoZSB2YWx1ZSBzaG91bGQgYmUgbWF0
cml4KDEsMC45OTk5OTk5OTk5OTk5OTk5LDAuOTk5OTk5OTk5OTk5OTk5OSwxLDAsMCkgYXQgNTAw
bXMgYnV0IGdvdCBtYXRyaXgoMS4xMTUzNTUwNzE2NTA0MTA2LCAwLjk2NTkyNTgyNjI4OTA2ODIs
IDAuOTY1OTI1ODI2Mjg5MDY4MSwgMS4xMTUzNTUwNzE2NTA0MTA2LCAwLCAwKSBleHBlY3RlZCAx
ICsvLSAwLjAwMDEgYnV0IGdvdCAxLjExNTM1NTA3MTY1MDQxMDYKK1BBU1MgdHJhbnNmb3JtOiBy
b3RhdGUgYW5kIHRyYW5zbGF0ZSAKK0ZBSUwgdHJhbnNmb3JtOiB0cmFuc2xhdGUgYW5kIHJvdGF0
ZSBhc3NlcnRfYXBwcm94X2VxdWFsczogZXhwZWN0ZWQgbWF0cml4KDYuMTIzMjMzOTk1NzM2NzY2
ZS0xNywxLC0xLDYuMTIzMjMzOTk1NzM2NzY2ZS0xNyw5LjE4NDg1MDk5MzYwNTE0OWUtMTUsMTUw
KSBidXQgZ290IG1hdHJpeCgwLjAwMDAwMDAwMDAwMDAwMDA2MTIzMjMzOTk1NzM2NzY2LCAxLCAt
MSwgMC4wMDAwMDAwMDAwMDAwMDAwNjEyMzIzMzk5NTczNjc2NiwgLTM1LjM1NTMzOTA1OTMyNzM2
LCAxMDYuMDY2MDE3MTc3OTgyMTMpOiBUaGUgdmFsdWUgc2hvdWxkIGJlIG1hdHJpeCg2LjEyMzIz
Mzk5NTczNjc2NmUtMTcsMSwtMSw2LjEyMzIzMzk5NTczNjc2NmUtMTcsOS4xODQ4NTA5OTM2MDUx
NDllLTE1LDE1MCkgYXQgNTAwbXMgYnV0IGdvdCBtYXRyaXgoMC4wMDAwMDAwMDAwMDAwMDAwNjEy
MzIzMzk5NTczNjc2NiwgMSwgLTEsIDAuMDAwMDAwMDAwMDAwMDAwMDYxMjMyMzM5OTU3MzY3NjYs
IC0zNS4zNTUzMzkwNTkzMjczNiwgMTA2LjA2NjAxNzE3Nzk4MjEzKSBleHBlY3RlZCA5LjE4NDg1
MDk5MzYwNTE0OWUtMTUgKy8tIDAuMDAwMSBidXQgZ290IC0zNS4zNTUzMzkwNTkzMjczNgorUEFT
UyB0cmFuc2Zvcm06IG1pc21hdGNoIG9yZGVyIG9mIHRyYW5zbGF0ZSBhbmQgcm90YXRlIAorUEFT
UyB0cmFuc2Zvcm06IG1hdHJpeCAKK0ZBSUwgdHJhbnNmb3JtOiByb3RhdGUzZCBhc3NlcnRfYXBw
cm94X2VxdWFsczogZXhwZWN0ZWQgbWF0cml4M2QoMC44NTM1NTMzOTA1OTMyNzM3LDAuMTQ2NDQ2
NjA5NDA2NzI2MiwtMC41LDAsMC4xNDY0NDY2MDk0MDY3MjYyLDAuODUzNTUzMzkwNTkzMjczNyww
LjUsMCwwLjUsLTAuNSwwLjcwNzEwNjc4MTE4NjU0NzYsMCwwLDAsMCwxKSBidXQgZ290IG1hdHJp
eDNkKDAuNzQ5OTk5OTk5OTk5OTk5OSwgMC4yNDk5OTk5OTk5OTk5OTk5LCAtMC4zNTM1NTMzOTA1
OTMyNzM3LCAwLCAwLjI0OTk5OTk5OTk5OTk5OTgzLCAwLjc1LCAwLjM1MzU1MzM5MDU5MzI3Mzcs
IDAsIDAuMzUzNTUzMzkwNTkzMjczNzMsIC0wLjM1MzU1MzM5MDU5MzI3MzcsIDAuNTAwMDAwMDAw
MDAwMDAwMiwgMCwgMCwgMCwgMCwgMSk6IFRoZSB2YWx1ZSBzaG91bGQgYmUgbWF0cml4M2QoMC44
NTM1NTMzOTA1OTMyNzM3LDAuMTQ2NDQ2NjA5NDA2NzI2MiwtMC41LDAsMC4xNDY0NDY2MDk0MDY3
MjYyLDAuODUzNTUzMzkwNTkzMjczNywwLjUsMCwwLjUsLTAuNSwwLjcwNzEwNjc4MTE4NjU0NzYs
MCwwLDAsMCwxKSBhdCA1MDBtcyBidXQgZ290IG1hdHJpeDNkKDAuNzQ5OTk5OTk5OTk5OTk5OSwg
MC4yNDk5OTk5OTk5OTk5OTk5LCAtMC4zNTM1NTMzOTA1OTMyNzM3LCAwLCAwLjI0OTk5OTk5OTk5
OTk5OTgzLCAwLjc1LCAwLjM1MzU1MzM5MDU5MzI3MzcsIDAsIDAuMzUzNTUzMzkwNTkzMjczNzMs
IC0wLjM1MzU1MzM5MDU5MzI3MzcsIDAuNTAwMDAwMDAwMDAwMDAwMiwgMCwgMCwgMCwgMCwgMSkg
ZXhwZWN0ZWQgMC44NTM1NTMzOTA1OTMyNzM3ICsvLSAwLjAwMDEgYnV0IGdvdCAwLjc0OTk5OTk5
OTk5OTk5OTkKK1BBU1MgdHJhbnNmb3JtOiBtYXRyaXgzZCAKK1BBU1MgdHJhbnNmb3JtOiBtaXNt
YXRjaGVkIDNEIHRyYW5zZm9ybXMgCitGQUlMIHRyYW5zZm9ybTogcm90YXRlWSBhc3NlcnRfYXBw
cm94X2VxdWFsczogZXhwZWN0ZWQgbWF0cml4M2QoMC44NjYwMjU0MDM3ODQ0Mzg3LDAsLTAuNDk5
OTk5OTk5OTk5OTk5OTQsMCwwLDEsMCwwLDAuNDk5OTk5OTk5OTk5OTk5OTQsMCwwLjg2NjAyNTQw
Mzc4NDQzODcsMCwwLDAsMCwxKSBidXQgZ290IG1hdHJpeDNkKDAuNzUsIDAsIC0wLjQzMzAxMjcw
MTg5MjIxOTIsIDAsIDAsIDEsIDAsIDAsIDAuNDMzMDEyNzAxODkyMjE5MiwgMCwgMC43NSwgMCwg
MCwgMCwgMCwgMSk6IFRoZSB2YWx1ZSBzaG91bGQgYmUgbWF0cml4M2QoMC44NjYwMjU0MDM3ODQ0
Mzg3LDAsLTAuNDk5OTk5OTk5OTk5OTk5OTQsMCwwLDEsMCwwLDAuNDk5OTk5OTk5OTk5OTk5OTQs
MCwwLjg2NjAyNTQwMzc4NDQzODcsMCwwLDAsMCwxKSBhdCA1MDBtcyBidXQgZ290IG1hdHJpeDNk
KDAuNzUsIDAsIC0wLjQzMzAxMjcwMTg5MjIxOTIsIDAsIDAsIDEsIDAsIDAsIDAuNDMzMDEyNzAx
ODkyMjE5MiwgMCwgMC43NSwgMCwgMCwgMCwgMCwgMSkgZXhwZWN0ZWQgMC44NjYwMjU0MDM3ODQ0
Mzg3ICsvLSAwLjAwMDEgYnV0IGdvdCAwLjc1CitGQUlMIHRyYW5zZm9ybTogbm9uLWludmVydGli
bGUgbWF0cmljZXMgYXNzZXJ0X2FwcHJveF9lcXVhbHM6IGV4cGVjdGVkIG1hdHJpeCgtMSwwLDAs
LTEsMjAwLDApIGJ1dCBnb3QgbWF0cml4KC0wLjA3MDY1NzI4MDE0Mjc2NzMsIDAuNzE5OTk3OTU5
NTUwNTIyLCAtMC4zOTUxNDYzNzk5Mjc5NTE2NSwgLTAuMjYwMDc4NzA0NjYwMDcyMDUsIDg3LjY1
MDE1LCA2Mi40NDk4NDk5OTk5OTk5OSk6IFRoZSB2YWx1ZSBzaG91bGQgYmUgbWF0cml4KC0xLDAs
MCwtMSwyMDAsMCkgYXQgNDk5bXMgYnV0IGdvdCBtYXRyaXgoLTAuMDcwNjU3MjgwMTQyNzY3Mywg
MC43MTk5OTc5NTk1NTA1MjIsIC0wLjM5NTE0NjM3OTkyNzk1MTY1LCAtMC4yNjAwNzg3MDQ2NjAw
NzIwNSwgODcuNjUwMTUsIDYyLjQ0OTg0OTk5OTk5OTk5KSBleHBlY3RlZCAtMSArLy0gMC4wMDAx
IGJ1dCBnb3QgLTAuMDcwNjU3MjgwMTQyNzY3MworRkFJTCB0cmFuc2Zvcm06IG5vbi1pbnZlcnRp
YmxlIG1hdHJpY2VzIGluIG1hdGNoZWQgdHJhbnNmb3JtIGxpc3RzIGFzc2VydF9hcHByb3hfZXF1
YWxzOiBleHBlY3RlZCBtYXRyaXgoMCwtMSwxLDAsMjUwLDApIGJ1dCBnb3QgbWF0cml4KC0wLjc4
NzM5ODkxNTkyNTQyMjIsIC0xLjExNTIwMDkwMzUyODQxOSwgMC4xMzY0ODEwMTIyNjI3MDU3LCAt
MC4xOTEzNjA4MDgyNjIzNTc0NiwgMTEyLjY1MDI1LCA0OS44OTk5OTk5OTk5OTk5OSk6IFRoZSB2
YWx1ZSBzaG91bGQgYmUgbWF0cml4KDAsLTEsMSwwLDI1MCwwKSBhdCA0OTltcyBidXQgZ290IG1h
dHJpeCgtMC43ODczOTg5MTU5MjU0MjIyLCAtMS4xMTUyMDA5MDM1Mjg0MTksIDAuMTM2NDgxMDEy
MjYyNzA1NywgLTAuMTkxMzYwODA4MjYyMzU3NDYsIDExMi42NTAyNSwgNDkuODk5OTk5OTk5OTk5
OTkpIGV4cGVjdGVkIDAgKy8tIDAuMDAwMSBidXQgZ290IC0wLjc4NzM5ODkxNTkyNTQyMjIKK0ZB
SUwgdHJhbnNmb3JtOiBub24taW52ZXJ0aWJsZSBtYXRyaWNlcyBpbiBtaXNtYXRjaGVkIHRyYW5z
Zm9ybSBsaXN0cyBhc3NlcnRfYXBwcm94X2VxdWFsczogZXhwZWN0ZWQgbWF0cml4KC0yLDAsMCwt
MiwyNTAsMCkgYnV0IGdvdCBtYXRyaXgoMC40NTcyMzUwMzk1NTc5MDUsIDEuNTc2MTU4MDQ2NjI5
Nzk0NCwgLTEuMTE3NjA4NTY0NjUzODgzOCwgLTAuNjU3MjIxMjA5MDAyNzE4OSwgMTEyLjY1MDI1
LCA0OS44OTk5OTk5OTk5OTk5OSk6IFRoZSB2YWx1ZSBzaG91bGQgYmUgbWF0cml4KC0yLDAsMCwt
MiwyNTAsMCkgYXQgNDk5bXMgYnV0IGdvdCBtYXRyaXgoMC40NTcyMzUwMzk1NTc5MDUsIDEuNTc2
MTU4MDQ2NjI5Nzk0NCwgLTEuMTE3NjA4NTY0NjUzODgzOCwgLTAuNjU3MjIxMjA5MDAyNzE4OSwg
MTEyLjY1MDI1LCA0OS44OTk5OTk5OTk5OTk5OSkgZXhwZWN0ZWQgLTIgKy8tIDAuMDAwMSBidXQg
Z290IDAuNDU3MjM1MDM5NTU3OTA1CiBQQVNTIHZpc2liaWxpdHkgKHR5cGU6IHZpc2liaWxpdHkp
IGhhcyB0ZXN0SW50ZXJwb2xhdGlvbiBmdW5jdGlvbiAKIFBBU1MgdmlzaWJpbGl0eSB1c2VzIHZp
c2liaWxpdHkgYW5pbWF0aW9uIHdoZW4gYW5pbWF0aW5nIGZyb20gInZpc2libGUiIHRvICJoaWRk
ZW4iIAogUEFTUyB2aXNpYmlsaXR5IHVzZXMgdmlzaWJpbGl0eSBhbmltYXRpb24gd2hlbiBhbmlt
YXRpbmcgZnJvbSAiaGlkZGVuIiB0byAidmlzaWJsZSIgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL2FuaW1hdGlv
bi1tb2RlbC9rZXlmcmFtZS1lZmZlY3RzL2VmZmVjdC12YWx1ZS1pdGVyYXRpb24tY29tcG9zaXRl
LW9wZXJhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL2FuaW1hdGlvbi1tb2RlbC9rZXlmcmFtZS1lZmZl
Y3RzL2VmZmVjdC12YWx1ZS1pdGVyYXRpb24tY29tcG9zaXRlLW9wZXJhdGlvbi1leHBlY3RlZC50
eHQKaW5kZXggZDMyYmZhOTMzMTJlOTU1YWVkODhlNDgyZmI0NmRkYTA0MjU2OTBiMS4uNmI3YmUy
NjdmMThmMTRkODNlMTNlZmM3YjYwNTE4ZGE0MDc4NjI0ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy9hbmltYXRp
b24tbW9kZWwva2V5ZnJhbWUtZWZmZWN0cy9lZmZlY3QtdmFsdWUtaXRlcmF0aW9uLWNvbXBvc2l0
ZS1vcGVyYXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvYW5pbWF0aW9uLW1vZGVsL2tleWZyYW1l
LWVmZmVjdHMvZWZmZWN0LXZhbHVlLWl0ZXJhdGlvbi1jb21wb3NpdGUtb3BlcmF0aW9uLWV4cGVj
dGVkLnR4dApAQCAtMTcsMTcgKzE3LDE3IEBAIEZBSUwgaXRlcmF0aW9uIGNvbXBvc2l0aW9uIG9m
IGZpbHRlciBkcm9wLXNoYWRvdyBhbmltYXRpb24gYXNzZXJ0X2VxdWFsczogQW5pbWF0CiBGQUlM
IGl0ZXJhdGlvbiBjb21wb3NpdGlvbiBvZiBzYW1lIGZpbHRlciBsaXN0IGFuaW1hdGlvbiBhc3Nl
cnRfZXF1YWxzOiBBbmltYXRlZCBmaWx0ZXIgbGlzdCBhdCA1MHMgb2YgdGhlIGZpcnN0IGl0ZXJh
dGlvbiBleHBlY3RlZCAiYnJpZ2h0bmVzcygxLjUpIGNvbnRyYXN0KDEuNSkiIGJ1dCBnb3QgImJy
aWdodG5lc3MoMikgY29udHJhc3QoMikiCiBGQUlMIGl0ZXJhdGlvbiBjb21wb3NpdGlvbiBvZiBk
aXNjcmV0ZSBmaWx0ZXIgbGlzdCBiZWNhdXNlIG9mIG1pc21hdGNoIG9mIHRoZSBvcmRlciBhc3Nl
cnRfZXF1YWxzOiBBbmltYXRlZCBmaWx0ZXIgbGlzdCBhdCAwcyBvZiB0aGUgdGhpcmQgaXRlcmF0
aW9uIGV4cGVjdGVkICJicmlnaHRuZXNzKDEpIGNvbnRyYXN0KDEpIiBidXQgZ290ICJjb250cmFz
dCgyKSBicmlnaHRuZXNzKDIpIgogRkFJTCBpdGVyYXRpb24gY29tcG9zaXRpb24gb2YgZGlmZmVy
ZW50IGxlbmd0aCBmaWx0ZXIgbGlzdCBhbmltYXRpb24gYXNzZXJ0X2VxdWFsczogQW5pbWF0ZWQg
ZmlsdGVyIGxpc3QgYXQgNTBzIG9mIHRoZSBmaXJzdCBpdGVyYXRpb24gZXhwZWN0ZWQgInNlcGlh
KDAuNSkgY29udHJhc3QoMS41KSIgYnV0IGdvdCAic2VwaWEoMSkgY29udHJhc3QoMikiCi1GQUlM
IGl0ZXJhdGlvbiBjb21wb3NpdGlvbiBvZiB0cmFuc2Zvcm0ocm90YXRlKSBhbmltYXRpb24gYXNz
ZXJ0X3JlZ2V4cF9tYXRjaDogQWN0dWFsIHZhbHVlIGlzIG5vdCBhIG1hdHJpeCBleHBlY3RlZCBv
YmplY3QgIi9ebWF0cml4KD86M2QpKlwoKC4rKVwpLyIgYnV0IGdvdCAibm9uZSIKLUZBSUwgaXRl
cmF0aW9uIGNvbXBvc2l0aW9uIG9mIHRyYW5zZm9ybTogWyBzY2FsZSgwKSwgc2NhbGUoMSkgXSBh
bmltYXRpb24gYXNzZXJ0X3JlZ2V4cF9tYXRjaDogQWN0dWFsIHZhbHVlIGlzIG5vdCBhIG1hdHJp
eCBleHBlY3RlZCBvYmplY3QgIi9ebWF0cml4KD86M2QpKlwoKC4rKVwpLyIgYnV0IGdvdCAibm9u
ZSIKLUZBSUwgaXRlcmF0aW9uIGNvbXBvc2l0aW9uIG9mIHRyYW5zZm9ybTogWyBzY2FsZSgxKSwg
c2NhbGUoMikgXSBhbmltYXRpb24gYXNzZXJ0X3JlZ2V4cF9tYXRjaDogQWN0dWFsIHZhbHVlIGlz
IG5vdCBhIG1hdHJpeCBleHBlY3RlZCBvYmplY3QgIi9ebWF0cml4KD86M2QpKlwoKC4rKVwpLyIg
YnV0IGdvdCAibm9uZSIKLUZBSUwgaXRlcmF0aW9uIGNvbXBvc2l0aW9uIG9mIHRyYW5zZm9ybTog
c2NhbGUoMikgYW5pbWF0aW9uIGFzc2VydF9yZWdleHBfbWF0Y2g6IEFjdHVhbCB2YWx1ZSBpcyBu
b3QgYSBtYXRyaXggZXhwZWN0ZWQgb2JqZWN0ICIvXm1hdHJpeCg/OjNkKSpcKCguKylcKS8iIGJ1
dCBnb3QgIm5vbmUiCi1GQUlMIGl0ZXJhdGlvbiBjb21wb3NpdGlvbiBvZiB0cmFuc2Zvcm0gbGlz
dCBhbmltYXRpb24gYXNzZXJ0X3JlZ2V4cF9tYXRjaDogQWN0dWFsIHZhbHVlIGlzIG5vdCBhIG1h
dHJpeCBleHBlY3RlZCBvYmplY3QgIi9ebWF0cml4KD86M2QpKlwoKC4rKVwpLyIgYnV0IGdvdCAi
bm9uZSIKLUZBSUwgaXRlcmF0aW9uIGNvbXBvc2l0aW9uIG9mIHRyYW5zZm9ybSBvZiBtYXRyaXgg
ZnVuY3Rpb24gYXNzZXJ0X3JlZ2V4cF9tYXRjaDogQWN0dWFsIHZhbHVlIGlzIG5vdCBhIG1hdHJp
eCBleHBlY3RlZCBvYmplY3QgIi9ebWF0cml4KD86M2QpKlwoKC4rKVwpLyIgYnV0IGdvdCAibm9u
ZSIKLUZBSUwgaXRlcmF0aW9uIGNvbXBvc2l0aW9uIG9mIHRyYW5zZm9ybSBsaXN0IGFuaW1hdGlv
biB3aG9zZSBvcmRlciBpcyBtaXNtYXRjaGVkIGFzc2VydF9yZWdleHBfbWF0Y2g6IEFjdHVhbCB2
YWx1ZSBpcyBub3QgYSBtYXRyaXggZXhwZWN0ZWQgb2JqZWN0ICIvXm1hdHJpeCg/OjNkKSpcKCgu
KylcKS8iIGJ1dCBnb3QgIm5vbmUiCi1GQUlMIGl0ZXJhdGlvbiBjb21wb3NpdGlvbiBvZiB0cmFu
c2Zvcm0gbGlzdCBhbmltYXRpb24gd2hvc2Ugb3JkZXIgaXMgbWlzbWF0Y2hlZCBiZWNhdXNlIG9m
IG1pc3NpbmcgZnVuY3Rpb25zIGFzc2VydF9yZWdleHBfbWF0Y2g6IEFjdHVhbCB2YWx1ZSBpcyBu
b3QgYSBtYXRyaXggZXhwZWN0ZWQgb2JqZWN0ICIvXm1hdHJpeCg/OjNkKSpcKCguKylcKS8iIGJ1
dCBnb3QgIm5vbmUiCi1GQUlMIGl0ZXJhdGlvbiBjb21wb3NpdGlvbiBvZiB0cmFuc2Zvcm0gZnJv
bSBub25lIHRvIHRyYW5zbGF0ZSBhc3NlcnRfcmVnZXhwX21hdGNoOiBBY3R1YWwgdmFsdWUgaXMg
bm90IGEgbWF0cml4IGV4cGVjdGVkIG9iamVjdCAiL15tYXRyaXgoPzozZCkqXCgoLispXCkvIiBi
dXQgZ290ICJub25lIgotRkFJTCBpdGVyYXRpb24gY29tcG9zaXRpb24gb2YgdHJhbnNmb3JtIG9m
IG1hdHJpeDNkIGZ1bmN0aW9uIGFzc2VydF9yZWdleHBfbWF0Y2g6IEFjdHVhbCB2YWx1ZSBpcyBu
b3QgYSBtYXRyaXggZXhwZWN0ZWQgb2JqZWN0ICIvXm1hdHJpeCg/OjNkKSpcKCguKylcKS8iIGJ1
dCBnb3QgIm5vbmUiCi1GQUlMIGl0ZXJhdGlvbiBjb21wb3NpdGlvbiBvZiB0cmFuc2Zvcm0gb2Yg
cm90YXRlM2QgZnVuY3Rpb24gYXNzZXJ0X3JlZ2V4cF9tYXRjaDogQWN0dWFsIHZhbHVlIGlzIG5v
dCBhIG1hdHJpeCBleHBlY3RlZCBvYmplY3QgIi9ebWF0cml4KD86M2QpKlwoKC4rKVwpLyIgYnV0
IGdvdCAibm9uZSIKK0ZBSUwgaXRlcmF0aW9uIGNvbXBvc2l0aW9uIG9mIHRyYW5zZm9ybShyb3Rh
dGUpIGFuaW1hdGlvbiBhc3NlcnRfYXBwcm94X2VxdWFsczogZXhwZWN0ZWQgbWF0cml4KDAsIDEs
IC0xLCAwLCAwLCAwKSBidXQgZ290IG1hdHJpeCgtMC4wMDAwMDAwMDAwMDAwMDAxODM2OTcwMTk4
NzIxMDI5NywgLTEsIDEsIC0wLjAwMDAwMDAwMDAwMDAwMDE4MzY5NzAxOTg3MjEwMjk3LCAwLCAw
KTogQW5pbWF0ZWQgdHJhbnNmb3JtKHJvdGF0ZSkgc3R5bGUgYXQgNTBzIG9mIHRoZSBmaXJzdCBp
dGVyYXRpb24gZXhwZWN0ZWQgMSArLy0gMC4wMDAxIGJ1dCBnb3QgLTEKK0ZBSUwgaXRlcmF0aW9u
IGNvbXBvc2l0aW9uIG9mIHRyYW5zZm9ybTogWyBzY2FsZSgwKSwgc2NhbGUoMSkgXSBhbmltYXRp
b24gYXNzZXJ0X2FwcHJveF9lcXVhbHM6IGV4cGVjdGVkIG1hdHJpeCgwLjUsIDAsIDAsIDAuNSwg
MCwgMCkgYnV0IGdvdCBtYXRyaXgoMC4yNSwgLTAuMDAwMDAwMDAwMDAwMDAwMDYxMjMyMzM5OTU3
MzY3NjYsIDAuMDAwMDAwMDAwMDAwMDAwMDYxMjMyMzM5OTU3MzY3NjYsIDAuMjUsIDAsIDApOiBB
bmltYXRlZCB0cmFuc2Zvcm0oc2NhbGUpIHN0eWxlIGF0IDUwcyBvZiB0aGUgZmlyc3QgaXRlcmF0
aW9uIGV4cGVjdGVkIDAuNSArLy0gMC4wMDAxIGJ1dCBnb3QgMC4yNQorRkFJTCBpdGVyYXRpb24g
Y29tcG9zaXRpb24gb2YgdHJhbnNmb3JtOiBbIHNjYWxlKDEpLCBzY2FsZSgyKSBdIGFuaW1hdGlv
biBhc3NlcnRfYXBwcm94X2VxdWFsczogZXhwZWN0ZWQgbWF0cml4KDMsIDAsIDAsIDMsIDAsIDAp
IGJ1dCBnb3QgbWF0cml4KDEsIC0wLjAwMDAwMDAwMDAwMDAwMDI0NDkyOTM1OTgyOTQ3MDY0LCAw
LjAwMDAwMDAwMDAwMDAwMDI0NDkyOTM1OTgyOTQ3MDY0LCAxLCAwLCAwKTogQW5pbWF0ZWQgdHJh
bnNmb3JtKHNjYWxlKSBzdHlsZSBhdCAwcyBvZiB0aGUgdGhpcmQgaXRlcmF0aW9uIGV4cGVjdGVk
IDMgKy8tIDAuMDAwMSBidXQgZ290IDEKK0ZBSUwgaXRlcmF0aW9uIGNvbXBvc2l0aW9uIG9mIHRy
YW5zZm9ybTogc2NhbGUoMikgYW5pbWF0aW9uIGFzc2VydF9hcHByb3hfZXF1YWxzOiBleHBlY3Rl
ZCBtYXRyaXgoMSwgMCwgMCwgMSwgMCwgMCkgYnV0IGdvdCBtYXRyaXgoMC41LCAtMC4wMDAwMDAw
MDAwMDAwMDAxMjI0NjQ2Nzk5MTQ3MzUzMiwgMC4wMDAwMDAwMDAwMDAwMDAxMjI0NjQ2Nzk5MTQ3
MzUzMiwgMC41LCAwLCAwKTogQW5pbWF0ZWQgdHJhbnNmb3JtKHNjYWxlKSBzdHlsZSBhdCA1MHMg
b2YgdGhlIGZpcnN0IGl0ZXJhdGlvbiBleHBlY3RlZCAxICsvLSAwLjAwMDEgYnV0IGdvdCAwLjUK
K0ZBSUwgaXRlcmF0aW9uIGNvbXBvc2l0aW9uIG9mIHRyYW5zZm9ybSBsaXN0IGFuaW1hdGlvbiBh
c3NlcnRfYXBwcm94X2VxdWFsczogZXhwZWN0ZWQgbWF0cml4KDAsIDEsIC0xLCAwLCAwLCA1KSBi
dXQgZ290IG1hdHJpeCgtMC4wMDAwMDAwMDAwMDAwMDAxODM2OTcwMTk4NzIxMDI5NywgLTEsIDEs
IC0wLjAwMDAwMDAwMDAwMDAwMDE4MzY5NzAxOTg3MjEwMjk3LCAtNSwgMC4wMDAwMDAwMDAwMDAw
MDA2MTIzMjMzOTk1NzM2NzY2KTogQW5pbWF0ZWQgdHJhbnNmb3JtIGxpc3QgYXQgNTBzIG9mIHRo
ZSBmaXJzdCBpdGVyYXRpb24gZXhwZWN0ZWQgMSArLy0gMC4wMDAxIGJ1dCBnb3QgLTEKK0ZBSUwg
aXRlcmF0aW9uIGNvbXBvc2l0aW9uIG9mIHRyYW5zZm9ybSBvZiBtYXRyaXggZnVuY3Rpb24gYXNz
ZXJ0X2FwcHJveF9lcXVhbHM6IGV4cGVjdGVkIG1hdHJpeCg2LCAwLCAwLCA2LCA2MCwgMCkgYnV0
IGdvdCBtYXRyaXgoMiwgLTAuMDAwMDAwMDAwMDAwMDAwNDg5ODU4NzE5NjU4OTQxMywgMC4wMDAw
MDAwMDAwMDAwMDA0ODk4NTg3MTk2NTg5NDEzLCAyLCAwLCAwKTogQW5pbWF0ZWQgdHJhbnNmb3Jt
IG9mIG1hdHJpeCBmdW5jdGlvbiBhdCAwcyBvZiB0aGUgdGhpcmQgaXRlcmF0aW9uIGV4cGVjdGVk
IDYgKy8tIDAuMDAwMSBidXQgZ290IDIKK0ZBSUwgaXRlcmF0aW9uIGNvbXBvc2l0aW9uIG9mIHRy
YW5zZm9ybSBsaXN0IGFuaW1hdGlvbiB3aG9zZSBvcmRlciBpcyBtaXNtYXRjaGVkIGFzc2VydF9h
cHByb3hfZXF1YWxzOiBleHBlY3RlZCBtYXRyaXgoNiwgMCwgMCwgNiwgNjAsIDApIGJ1dCBnb3Qg
bWF0cml4KDIsIC0wLjAwMDAwMDAwMDAwMDAwMDQ4OTg1ODcxOTY1ODk0MTMsIDAuMDAwMDAwMDAw
MDAwMDAwNDg5ODU4NzE5NjU4OTQxMywgMiwgMCwgMCk6IEFuaW1hdGVkIHRyYW5zZm9ybSBsaXN0
IGF0IDBzIG9mIHRoZSB0aGlyZCBpdGVyYXRpb24gZXhwZWN0ZWQgNiArLy0gMC4wMDAxIGJ1dCBn
b3QgMgorRkFJTCBpdGVyYXRpb24gY29tcG9zaXRpb24gb2YgdHJhbnNmb3JtIGxpc3QgYW5pbWF0
aW9uIHdob3NlIG9yZGVyIGlzIG1pc21hdGNoZWQgYmVjYXVzZSBvZiBtaXNzaW5nIGZ1bmN0aW9u
cyBhc3NlcnRfYXBwcm94X2VxdWFsczogZXhwZWN0ZWQgbWF0cml4KDMsIDAsIDAsIDMsIDQwLCAw
KSBidXQgZ290IG1hdHJpeCgxLCAtMC4wMDAwMDAwMDAwMDAwMDAyNDQ5MjkzNTk4Mjk0NzA2NCwg
MC4wMDAwMDAwMDAwMDAwMDAyNDQ5MjkzNTk4Mjk0NzA2NCwgMSwgMCwgMCk6IEFuaW1hdGVkIHRy
YW5zZm9ybSBsaXN0IGF0IDBzIG9mIHRoZSB0aGlyZCBpdGVyYXRpb24gZXhwZWN0ZWQgMyArLy0g
MC4wMDAxIGJ1dCBnb3QgMQorRkFJTCBpdGVyYXRpb24gY29tcG9zaXRpb24gb2YgdHJhbnNmb3Jt
IGZyb20gbm9uZSB0byB0cmFuc2xhdGUgYXNzZXJ0X2FwcHJveF9lcXVhbHM6IGV4cGVjdGVkIG1h
dHJpeCgxLCAwLCAwLCAxLCAyMCwgMCkgYnV0IGdvdCBtYXRyaXgoMSwgLTAuMDAwMDAwMDAwMDAw
MDAwMjQ0OTI5MzU5ODI5NDcwNjQsIDAuMDAwMDAwMDAwMDAwMDAwMjQ0OTI5MzU5ODI5NDcwNjQs
IDEsIDAsIDApOiBBbmltYXRlZCB0cmFuc2Zvcm0gbGlzdCBhdCAwcyBvZiB0aGUgdGhpcmQgaXRl
cmF0aW9uIGV4cGVjdGVkIDIwICsvLSAwLjAwMDEgYnV0IGdvdCAwCitGQUlMIGl0ZXJhdGlvbiBj
b21wb3NpdGlvbiBvZiB0cmFuc2Zvcm0gb2YgbWF0cml4M2QgZnVuY3Rpb24gYXNzZXJ0X2FwcHJv
eF9lcXVhbHM6IGV4cGVjdGVkIG1hdHJpeDNkKDEsIDAsIDAsIDAsIDAsIDEsIDAsIDAsIDAsIDAs
IDEsIDAsIDAsIDAsIDEzMCwgMSkgYnV0IGdvdCBtYXRyaXgzZCgxLCAwLCAwLCAwLCAwLCAxLCAw
LCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAzMCwgMSk6IEFuaW1hdGVkIHRyYW5zZm9ybSBvZiBtYXRy
aXgzZCBmdW5jdGlvbiBhdCAwcyBvZiB0aGUgdGhpcmQgaXRlcmF0aW9uIGV4cGVjdGVkIDEzMCAr
Ly0gMC4wMDAxIGJ1dCBnb3QgMzAKK0ZBSUwgaXRlcmF0aW9uIGNvbXBvc2l0aW9uIG9mIHRyYW5z
Zm9ybSBvZiByb3RhdGUzZCBmdW5jdGlvbiBhc3NlcnRfZXF1YWxzOiBkaW1lbnNpb24gb2YgdGhl
IG1hdHJpeDogQW5pbWF0ZWQgdHJhbnNmb3JtIG9mIHJvdGF0ZTNkIGZ1bmN0aW9uIGF0IDBzIG9m
IHRoZSB0aGlyZCBpdGVyYXRpb24gZXhwZWN0ZWQgMTYgYnV0IGdvdCA2CiBGQUlMIGl0ZXJhdGlv
biBjb21wb3NpdGlvbiBzdGFydHMgd2l0aCBub24temVybyB2YWx1ZSBhbmltYXRpb24gYXNzZXJ0
X2VxdWFsczogQW5pbWF0ZWQgbWFyZ2luLWxlZnQgc3R5bGUgYXQgMHMgb2YgdGhlIHRoaXJkIGl0
ZXJhdGlvbiBleHBlY3RlZCAiNTBweCIgYnV0IGdvdCAiMTBweCIKIEZBSUwgaXRlcmF0aW9uIGNv
bXBvc2l0aW9uIHdpdGggbmVnYXRpdmUgZmluYWwgdmFsdWUgYW5pbWF0aW9uIGFzc2VydF9lcXVh
bHM6IEFuaW1hdGVkIG1hcmdpbi1sZWZ0IHN0eWxlIGF0IDBzIG9mIHRoZSB0aGlyZCBpdGVyYXRp
b24gZXhwZWN0ZWQgIi0xMHB4IiBidXQgZ290ICIxMHB4IgogRkFJTCBkdXJhdGlvbiBjaGFuZ2Vz
IHdpdGggYW4gaXRlcmF0aW9uIGNvbXBvc2l0aW9uIG9wZXJhdGlvbiBvZiBhY2N1bXVsYXRlIGFz
c2VydF9lcXVhbHM6IEFuaW1hdGVkIHN0eWxlIGF0IDUwcyBvZiB0aGUgdGhpcmQgaXRlcmF0aW9u
IGV4cGVjdGVkICIyNXB4IiBidXQgZ290ICI1cHgiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL2ludGVyZmFjZXMv
QW5pbWF0aW9uL2NhbmNlbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL2ludGVyZmFjZXMvQW5pbWF0aW9uL2Nh
bmNlbC1leHBlY3RlZC50eHQKaW5kZXggNTE4ZWQxODg3NjBmYmFkZjE4NzU4MTQ1MTUzODI4ZDBk
YmRmNGJjOS4uZWZmOGE0ZTJlODQ5NDAwMDllYWE4ZmMyYTE0N2E3N2RkZjExNDAyYyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5p
bWF0aW9ucy9pbnRlcmZhY2VzL0FuaW1hdGlvbi9jYW5jZWwtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMv
aW50ZXJmYWNlcy9BbmltYXRpb24vY2FuY2VsLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAK
IAotRkFJTCBBbmltYXRlZCBzdHlsZSBpcyBjbGVhcmVkIGFmdGVyIGNhbGxpbmcgQW5pbWF0aW9u
LmNhbmNlbCgpIGFzc2VydF9ub3RfZXF1YWxzOiB0cmFuc2Zvcm0gc3R5bGUgaXMgYW5pbWF0ZWQg
YmVmb3JlIGNhbmNlbGxpbmcgZ290IGRpc2FsbG93ZWQgdmFsdWUgIm5vbmUiCitQQVNTIEFuaW1h
dGVkIHN0eWxlIGlzIGNsZWFyZWQgYWZ0ZXIgY2FsbGluZyBBbmltYXRpb24uY2FuY2VsKCkgCiBQ
QVNTIEFmdGVyIGNhbmNlbGxpbmcgYW4gYW5pbWF0aW9uLCBpdCBjYW4gc3RpbGwgYmUgc2Vla2Vk
IAogUEFTUyBBZnRlciBjYW5jZWxsaW5nIGFuIGFuaW1hdGlvbiwgaXQgY2FuIHN0aWxsIGJlIHJl
LXVzZWQgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWRpc2FibGVkLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWRpc2FibGVkLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41OGRjNjRkM2NlYmIwY2U1NDVjZDdhYjYwNmRmNTRkZTNkMWY2MDZjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZGlzYWJsZWQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0TWVkaWFF
bmFibGVkKGZhbHNlKSkKK1JVTih2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInZpZGVv
IikpCitFWFBFQ1RFRCAodmlkZW8gaW5zdGFuY2VvZiBIVE1MVmlkZW9FbGVtZW50ID09ICdmYWxz
ZScpIE9LCitFWFBFQ1RFRCAodmlkZW8gaW5zdGFuY2VvZiBIVE1MVW5rbm93bkVsZW1lbnQgPT0g
J3RydWUnKSBPSworUlVOKGF1ZGlvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYXVkaW8iKSkK
K0VYUEVDVEVEIChhdWRpbyBpbnN0YW5jZW9mIEhUTUxBdWRpb0VsZW1lbnQgPT0gJ2ZhbHNlJykg
T0sKK0VYUEVDVEVEIChhdWRpbyBpbnN0YW5jZW9mIEhUTUxVbmtub3duRWxlbWVudCA9PSAndHJ1
ZScpIE9LCisKK1JVTihpbnRlcm5hbHMuc2V0dGluZ3Muc2V0TWVkaWFFbmFibGVkKHRydWUpKQor
UlVOKHZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidmlkZW8iKSkKK0VYUEVDVEVEICh2
aWRlbyBpbnN0YW5jZW9mIEhUTUxWaWRlb0VsZW1lbnQgPT0gJ3RydWUnKSBPSworUlVOKGF1ZGlv
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYXVkaW8iKSkKK0VYUEVDVEVEIChhdWRpbyBpbnN0
YW5jZW9mIEhUTUxBdWRpb0VsZW1lbnQgPT0gJ3RydWUnKSBPSworRU5EIE9GIFRFU1QKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtZGlzYWJsZWQuaHRtbCBiL0xheW91dFRl
c3RzL21lZGlhL21lZGlhLWRpc2FibGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzAxYjgwOWY5OTc0NDBh
NTlhYmQ1MGQzMzBmMGZkMmExMGU0YWExYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L21lZGlhL21lZGlhLWRpc2FibGVkLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5tZWRpYS1kaXNhYmxlZDwvdGl0bGU+Cisg
ICAgPHNjcmlwdCBzcmM9dmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAg
ICAgICAKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBldmVudCA9PiB7
CisgICAgICAgICAgICBydW4oImludGVybmFscy5zZXR0aW5ncy5zZXRNZWRpYUVuYWJsZWQoZmFs
c2UpIik7CisgICAgICAgICAgICBydW4oJ3ZpZGVvID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
dmlkZW8iKScpOworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRlbyBpbnN0YW5jZW9mIEhU
TUxWaWRlb0VsZW1lbnQnLCBmYWxzZSk7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVv
IGluc3RhbmNlb2YgSFRNTFVua25vd25FbGVtZW50JywgdHJ1ZSk7CisKKyAgICAgICAgICAgIHJ1
bignYXVkaW8gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhdWRpbyIpJyk7CisgICAgICAgICAg
ICB0ZXN0RXhwZWN0ZWQoJ2F1ZGlvIGluc3RhbmNlb2YgSFRNTEF1ZGlvRWxlbWVudCcsIGZhbHNl
KTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgnYXVkaW8gaW5zdGFuY2VvZiBIVE1MVW5rbm93
bkVsZW1lbnQnLCB0cnVlKTsKKworICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAg
ICAgICAgIHJ1bigiaW50ZXJuYWxzLnNldHRpbmdzLnNldE1lZGlhRW5hYmxlZCh0cnVlKSIpOwor
ICAgICAgICAgICAgcnVuKCd2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInZpZGVvIikn
KTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8gaW5zdGFuY2VvZiBIVE1MVmlkZW9F
bGVtZW50JywgdHJ1ZSk7CisKKyAgICAgICAgICAgIHJ1bignYXVkaW8gPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJhdWRpbyIpJyk7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ2F1ZGlvIGlu
c3RhbmNlb2YgSFRNTEF1ZGlvRWxlbWVudCcsIHRydWUpOworCisgICAgICAgICAgICBlbmRUZXN0
KCk7CisgICAgICAgIH0pOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+
Cis8L2h0bWw+CisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCA4YWE2MDQ3OWQ0ZTUwMGJiM2VkZmMyYzVhMjkwZTVmOWNmNmJjYzAxLi5hMjA5YzIyNWFj
MzM4NzhhOTIzZDRiZGQ1YjFhMTRmNDZkYWE1MzgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzI0LDggKzMyNCw2IEBAIHdlYmtpdC5vcmcvYi8xNjk5
MTYgaW5zcGVjdG9yL2xheWVycy9sYXllcnMtYmxlbmRpbmctY29tcG9zaXRpbmctcmVhc29ucy5o
dG1sIFsKIHdlYmtpdC5vcmcvYi8xNjk5MTggY29tcG9zaXRpbmcvYW5pbWF0aW9uL2FuaW1hdGlv
bi1iYWNraW5nLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogd2Via2l0Lm9yZy9iLzE2OTkxOCBjb21w
b3NpdGluZy9jYW52YXMvYWNjZWxlcmF0ZWQtY2FudmFzLWNvbXBvc2l0aW5nLXNpemUtbGltaXQu
aHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE2OTkxOCBjb21wb3NpdGluZy9jbGlwcGlu
Zy9ib3JkZXItcmFkaXVzLW92ZXJmbG93LWhpZGRlbi1zdGFja2luZy1jb250ZXh0Lmh0bWwgWyBG
YWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNjk5MTggY29tcG9zaXRpbmcvY29sdW1ucy9jb21wb3Np
dGVkLWxyLXBhZ2luYXRlZC1yZXBhaW50Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8x
Njk5MTggY29tcG9zaXRpbmcvY29sdW1ucy9jb21wb3NpdGVkLXJsLXBhZ2luYXRlZC1yZXBhaW50
Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNjk5MTggY29tcG9zaXRpbmcvY29udGVu
dHMtZm9ybWF0L3N1YnBpeGVsLWFudGlhbGlhc2VkLXRleHQtY29uZmlncy1hbnRpYWxpYXNpbmct
c3R5bGUuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE2OTkxOCBjb21wb3NpdGluZy9j
b250ZW50cy1mb3JtYXQvc3VicGl4ZWwtYW50aWFsaWFzZWQtdGV4dC1jb25maWdzLmh0bWwgWyBG
YWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNjk5MTggY29tcG9zaXRpbmcvY29udGVudHMtZm9ybWF0
L3N1YnBpeGVsLWFudGlhbGlhc2VkLXRleHQtZW5hYmxlZC5odG1sIFsgRmFpbHVyZSBdCkBAIC0z
NzMsNyArMzcxLDYgQEAgd2Via2l0Lm9yZy9iLzE2OTkxOCBjb21wb3NpdGluZy9wbHVnaW5zL3Nt
YWxsLXRvLWxhcmdlLWNvbXBvc2l0ZWQtcGx1Z2luLmh0bWwgWwogd2Via2l0Lm9yZy9iLzE2OTkx
OCBjb21wb3NpdGluZy9yZWZsZWN0aW9ucy9kaXJlY3QtaW1hZ2Utb2JqZWN0LWZpdC1yZWZsZWN0
ZWQuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE2OTkxOCBjb21wb3NpdGluZy9yZXBh
aW50L2ludmFsaWRhdGlvbnMtb24tY29tcG9zaXRlZC1sYXllcnMuaHRtbCBbIEZhaWx1cmUgXQog
d2Via2l0Lm9yZy9iLzE2OTkxOCBjb21wb3NpdGluZy9yZXBhaW50L3Bvc2l0aW9uZWQtbW92ZW1l
bnQuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE2OTkxOCBjb21wb3NpdGluZy9yZXBh
aW50L3JlcGFpbnQtb24tbGF5ZXItZ3JvdXBpbmctY2hhbmdlLmh0bWwgWyBGYWlsdXJlIF0KIHdl
YmtpdC5vcmcvYi8xNjk5MTggY29tcG9zaXRpbmcvcmVwYWludC9yZXNpemUtcmVwYWludC5odG1s
IFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTY5OTE4IGNvbXBvc2l0aW5nL3J0bC9ydGwtZml4
ZWQtb3ZlcmZsb3ctc2Nyb2xsZWQuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE2OTkx
OCBjb21wb3NpdGluZy9ydGwvcnRsLWZpeGVkLW92ZXJmbG93Lmh0bWwgWyBGYWlsdXJlIF0KQEAg
LTExMjUsNyArMTEyMiw3IEBAIHdlYmtpdC5vcmcvYi8xNzgzMTYgaHR0cC90ZXN0cy9jYWNoZS1z
dG9yYWdlIFsgU2tpcCBdCiAKICMgU2VydmljZS13b3JrZXJzIGltcGxlbWVudGF0aW9uIGlzIG5v
dCBjb21wbGV0ZSB5ZXQKIHdlYmtpdC5vcmcvYi8xNzU0MTkgaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2UgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xNzU0MTkgaHR0cC93cHQvc2VydmljZS13b3Jr
ZXJzIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMTc1NDE5IGh0dHAvd3B0L3NlcnZpY2Utd29y
a2VycyBbIEZhaWx1cmUgUGFzcyBdCiB3ZWJraXQub3JnL2IvMTc1NDE5IGh0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc2VydmljZS13b3JrZXIuaHRtbCBbIFNr
aXAgXQogd2Via2l0Lm9yZy9iLzE3NTQxOSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2VycyBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE3NTQxOSBodHRwL3Rlc3Rz
L2FwcGNhY2hlL21haW4tcmVzb3VyY2UtcmVkaXJlY3Qtd2l0aC1zdy5odG1sIFsgU2tpcCBdCkBA
IC0xMTQ5LDMzICsxMTQ2LDYgQEAgd2Via2l0Lm9yZy9iLzE3NTQxOSBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9hYm9ydC9nZW5lcmFsLXNlcnYKIHdlYmtpdC5vcmcv
Yi8xNzU0MTkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYWJvcnQv
c2VydmljZXdvcmtlci1pbnRlcmNlcHRlZC5odHRwcy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQu
b3JnL2IvMTc1NDE5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC93ZWJhcHBh
cGlzL3NjcmlwdGluZy9ldmVudHMvbWVzc2FnZWV2ZW50LWNvbnN0cnVjdG9yLmh0dHBzLmh0bWwg
WyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNzU0MTkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3dlYmFwcGFwaXMvc2NyaXB0aW5nL3Byb2Nlc3NpbmctbW9kZWwtMi9pbnRl
Z3JhdGlvbi13aXRoLXRoZS1qYXZhc2NyaXB0LWFnZW50LWZvcm1hbGlzbS9jYW5ibG9jay1zZXJ2
aWNld29ya2VyLmh0dHBzLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNzU0MTkgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL2J5dGUtbGVuZ3RoLXF1ZXVpbmct
c3RyYXRlZ3kuc2VydmljZXdvcmtlci5odHRwcy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3Jn
L2IvMTc1NDE5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9jb3VudC1x
dWV1aW5nLXN0cmF0ZWd5LnNlcnZpY2V3b3JrZXIuaHR0cHMuaHRtbCBbIEZhaWx1cmUgXQotd2Vi
a2l0Lm9yZy9iLzE3NTQxOSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMv
cGlwaW5nL2Nsb3NlLXByb3BhZ2F0aW9uLWJhY2t3YXJkLnNlcnZpY2V3b3JrZXIuaHR0cHMuaHRt
bCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE3NTQxOSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3N0cmVhbXMvcGlwaW5nL2Nsb3NlLXByb3BhZ2F0aW9uLWZvcndhcmQuc2Vydmlj
ZXdvcmtlci5odHRwcy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTc1NDE5IGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvZXJyb3ItcHJvcGFnYXRp
b24tYmFja3dhcmQuc2VydmljZXdvcmtlci5odHRwcy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQu
b3JnL2IvMTc1NDE5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBp
bmcvZXJyb3ItcHJvcGFnYXRpb24tZm9yd2FyZC5zZXJ2aWNld29ya2VyLmh0dHBzLmh0bWwgWyBG
YWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNzU0MTkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zdHJlYW1zL3BpcGluZy9mbG93LWNvbnRyb2wuc2VydmljZXdvcmtlci5odHRwcy5odG1s
IFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTc1NDE5IGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvZ2VuZXJhbC5zZXJ2aWNld29ya2VyLmh0dHBzLmh0bWwg
WyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNzU0MTkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zdHJlYW1zL3BpcGluZy9tdWx0aXBsZS1wcm9wYWdhdGlvbi5zZXJ2aWNld29ya2Vy
Lmh0dHBzLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNzU0MTkgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3BpcGluZy9waXBlLXRocm91Z2guc2VydmljZXdv
cmtlci5odHRwcy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTc1NDE5IGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9waXBpbmcvdHJhbnNmb3JtLXN0cmVhbXMu
c2VydmljZXdvcmtlci5odHRwcy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTc1NDE5
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW1z
L2JhZC1zdHJhdGVnaWVzLnNlcnZpY2V3b3JrZXIuaHR0cHMuaHRtbCBbIEZhaWx1cmUgXQotd2Vi
a2l0Lm9yZy9iLzE3NTQxOSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMv
cmVhZGFibGUtc3RyZWFtcy9iYWQtdW5kZXJseWluZy1zb3VyY2VzLnNlcnZpY2V3b3JrZXIuaHR0
cHMuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE3NTQxOSBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtcy9icmFuZC1jaGVja3Muc2Vy
dmljZXdvcmtlci5odHRwcy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTc1NDE5IGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW1zL2Nh
bmNlbC5zZXJ2aWNld29ya2VyLmh0dHBzLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8x
NzU0MTkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0
cmVhbXMvY291bnQtcXVldWluZy1zdHJhdGVneS1pbnRlZ3JhdGlvbi5zZXJ2aWNld29ya2VyLmh0
dHBzLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNzU0MTkgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbXMvZGVmYXVsdC1yZWFkZXIu
c2VydmljZXdvcmtlci5odHRwcy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTc1NDE5
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW1z
L2Zsb2F0aW5nLXBvaW50LXRvdGFsLXF1ZXVlLXNpemUuc2VydmljZXdvcmtlci5odHRwcy5odG1s
IFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTc1NDE5IGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1zdHJlYW1zL2dhcmJhZ2UtY29sbGVjdGlvbi5zZXJ2
aWNld29ya2VyLmh0dHBzLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNzU0MTkgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbXMvZ2Vu
ZXJhbC5zZXJ2aWNld29ya2VyLmh0dHBzLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8x
NzU0MTkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0
cmVhbXMvcmVhZGFibGUtc3RyZWFtLXJlYWRlci5zZXJ2aWNld29ya2VyLmh0dHBzLmh0bWwgWyBG
YWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNzU0MTkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbXMvdGVlLnNlcnZpY2V3b3JrZXIuaHR0cHMuaHRt
bCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE3NTQxOSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtcy90ZW1wbGF0ZWQuc2VydmljZXdvcmtl
ci5odHRwcy5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTc1NDE5IGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc3RyZWFtcy9yZWFkYWJsZS1ieXRlLXN0cmVhbXMvZ2VuZXJh
bC5zZXJ2aWNld29ya2VyLmh0dHBzLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNzU0
MTkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3JlYWRhYmxlLWJ5dGUt
c3RyZWFtcy9icmFuZC1jaGVja3Muc2VydmljZXdvcmtlci5odHRwcy5odG1sIFsgRmFpbHVyZSBd
Ci13ZWJraXQub3JnL2IvMTc1NDE5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3Ry
ZWFtcy9yZWFkYWJsZS1ieXRlLXN0cmVhbXMvcHJvcGVydGllcy5zZXJ2aWNld29ya2VyLmh0dHBz
Lmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNzU0MTkgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zdHJlYW1zL3JlYWRhYmxlLWJ5dGUtc3RyZWFtcy9kZXRhY2hlZC1idWZm
ZXJzLnNlcnZpY2V3b3JrZXIuaHR0cHMuaHRtbCBbIEZhaWx1cmUgXQogCiAjIExvYWRpbmcgTVA0
IGFzIGFuIGltYWdlIGlzIG5vdCBzdXBwb3J0ZWQgYnkgR1RLCiB3ZWJraXQub3JnL2IvMTgwMzcw
IGZhc3QvaW1hZ2VzL2FuaW1hdGVkLWltYWdlLW1wNC5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9jc3MvYXBwbGUtc3lzdGVtLWNvbnRyb2wt
Y29sb3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9mYXN0L2Nzcy9h
cHBsZS1zeXN0ZW0tY29udHJvbC1jb2xvcnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmZmU0
ZDczZjdlMmE4YWU2ZDMzOThhNTU1MjA1Y2FjNzZmMzI3OTgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvZmFzdC9jc3MvYXBwbGUtc3lzdGVtLWNvbnRyb2wtY29s
b3JzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKKy1hcHBsZS1zeXN0ZW0taGVhZGVyLXRl
eHQgOiByZ2JhKDAsIDAsIDAsIDApCistYXBwbGUtc3lzdGVtLXRleHQtYmFja2dyb3VuZCA6IHJn
YmEoMCwgMCwgMCwgMCkKKy1hcHBsZS1zeXN0ZW0tYWx0ZXJuYXRlLXNlbGVjdGVkLXRleHQgOiBy
Z2JhKDAsIDAsIDAsIDApCistYXBwbGUtc3lzdGVtLWxhYmVsIDogcmdiYSgwLCAwLCAwLCAwKQor
LWFwcGxlLXN5c3RlbS1zZWNvbmRhcnktbGFiZWwgOiByZ2JhKDAsIDAsIDAsIDApCistYXBwbGUt
c3lzdGVtLXRlcnRpYXJ5LWxhYmVsIDogcmdiYSgwLCAwLCAwLCAwKQorLWFwcGxlLXN5c3RlbS1x
dWF0ZXJuYXJ5LWxhYmVsIDogcmdiYSgwLCAwLCAwLCAwKQorLWFwcGxlLXN5c3RlbS1ncmlkIDog
cmdiYSgwLCAwLCAwLCAwKQorY3VycmVudC1jb2xvciB3aXRoIGluaGVyaXRlZCAtYXBwbGUtc3lz
dGVtLWxhYmVsIDogcmdiYSgwLCAwLCAwLCAwKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
LXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGQ3YTQ0YzgxYTcyNGFiYjVmNmUxNTM2NDZjN2Rk
MzVhZGY4MzJkZDcuLjUxYTkwNTk3MjQwMTM1NDQ3NzRjNGQ5NjkzZTY1ZDU2NmYwNzVmMzUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEz
LDcgKzEzLDcgQEAgZmFzdC92aWV3cG9ydC9pb3MgWyBQYXNzIF0KIGZhc3QvdmlzdWFsLXZpZXdw
b3J0L2lvcy8gWyBQYXNzIF0KIHNjcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcyBbIFBhc3MgXQogdGls
ZWQtZHJhd2luZy9pb3MgWyBQYXNzIF0KLWVkaXRpbmcvc2VsZWN0aW9uL2NoYXJhY3Rlci1ncmFu
dWxhcml0eS1yZWN0Lmh0bWwgWyBQYXNzIF0KK2VkaXRpbmcvc2VsZWN0aW9uL2NoYXJhY3Rlci1n
cmFudWxhcml0eS1yZWN0Lmh0bWwgWyBGYWlsdXJlIF0KIAogYWNjZXNzaWJpbGl0eS9zbWFydC1p
bnZlcnQuaHRtbCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0eS9zbWFydC1pbnZlcnQtcmVmZXJlbmNl
Lmh0bWwgWyBQYXNzIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zaWVy
cmEvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy9hbmltYXRp
b24tbW9kZWwvYW5pbWF0aW9uLXR5cGVzL2FjY3VtdWxhdGlvbi1wZXItcHJvcGVydHktZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNpZXJyYS9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL2FuaW1hdGlvbi1tb2RlbC9hbmltYXRpb24t
dHlwZXMvYWNjdW11bGF0aW9uLXBlci1wcm9wZXJ0eS1leHBlY3RlZC50eHQKaW5kZXggN2Q2MGUy
MTAwMGQ3MTdmZjA5YTg2YWI3MGVkOGExM2YyZTVlMjA0MC4uYjEzZGY0NWMxNjBmZmM1YTVlZGJh
ZWQ1YTZmZjJlNTVmYWI3ZTJkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXNpZXJyYS9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL2Fu
aW1hdGlvbi1tb2RlbC9hbmltYXRpb24tdHlwZXMvYWNjdW11bGF0aW9uLXBlci1wcm9wZXJ0eS1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNpZXJyYS9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL2FuaW1hdGlvbi1tb2RlbC9h
bmltYXRpb24tdHlwZXMvYWNjdW11bGF0aW9uLXBlci1wcm9wZXJ0eS1leHBlY3RlZC50eHQKQEAg
LTIwMCwxMiArMjAwLDEyIEBAIEZBSUwgdHJhbnNmb3JtOiBtYXRyaXggYXNzZXJ0X2FwcHJveF9l
cXVhbHM6IGV4cGVjdGVkIG1hdHJpeCgwLDEsLTEsMCwxMDAsMCkgYnV0CiBGQUlMIHRyYW5zZm9y
bTogcm90YXRlM2QgYXNzZXJ0X2FwcHJveF9lcXVhbHM6IGV4cGVjdGVkIG1hdHJpeDNkKDAuODUz
NTUzMzkwNTkzMjczNywwLjE0NjQ0NjYwOTQwNjcyNjIsMC41LDAsMC4xNDY0NDY2MDk0MDY3MjYy
LDAuODUzNTUzMzkwNTkzMjczNywtMC41LDAsLTAuNSwwLjUsMC43MDcxMDY3ODExODY1NDc2LDAs
MCwwLDAsMSkgYnV0IGdvdCBtYXRyaXgzZCgwLjQ5OTk5OTk5OTk5OTk5OTksIDAuNDk5OTk5OTk5
OTk5OTk5OCwgMC43MDcxMDY3ODExODY1NDc1LCAwLCAwLjQ5OTk5OTk5OTk5OTk5OTY3LCAwLjUs
IC0wLjcwNzEwNjc4MTE4NjU0NzUsIDAsIC0wLjcwNzEwNjc4MTE4NjU0NzUsIDAuNzA3MTA2Nzgx
MTg2NTQ3NCwgMC4wMDAwMDAwMDAwMDAwMDAyNDgzNDI3MDQxNTk1MDk4LCAwLCAwLCAwLCAwLCAx
KTogVGhlIHZhbHVlIHNob3VsZCBiZSBtYXRyaXgzZCgwLjg1MzU1MzM5MDU5MzI3MzcsMC4xNDY0
NDY2MDk0MDY3MjYyLDAuNSwwLDAuMTQ2NDQ2NjA5NDA2NzI2MiwwLjg1MzU1MzM5MDU5MzI3Mzcs
LTAuNSwwLC0wLjUsMC41LDAuNzA3MTA2NzgxMTg2NTQ3NiwwLDAsMCwwLDEpIGF0IDBtcyBidXQg
Z290IG1hdHJpeDNkKDAuNDk5OTk5OTk5OTk5OTk5OSwgMC40OTk5OTk5OTk5OTk5OTk4LCAwLjcw
NzEwNjc4MTE4NjU0NzUsIDAsIDAuNDk5OTk5OTk5OTk5OTk5NjcsIDAuNSwgLTAuNzA3MTA2Nzgx
MTg2NTQ3NSwgMCwgLTAuNzA3MTA2NzgxMTg2NTQ3NSwgMC43MDcxMDY3ODExODY1NDc0LCAwLjAw
MDAwMDAwMDAwMDAwMDI0ODM0MjcwNDE1OTUwOTgsIDAsIDAsIDAsIDAsIDEpIGV4cGVjdGVkIDAu
ODUzNTUzMzkwNTkzMjczNyArLy0gMC4wMDAxIGJ1dCBnb3QgMC40OTk5OTk5OTk5OTk5OTk5CiBG
QUlMIHRyYW5zZm9ybTogbWF0cml4M2QgYXNzZXJ0X2FwcHJveF9lcXVhbHM6IGV4cGVjdGVkIG1h
dHJpeDNkKDAuODUzNTUzMzkwNTkzMjczNywwLjE0NjQ0NjYwOTQwNjcyNjIsMC41LDAsMC4xNDY0
NDY2MDk0MDY3MjYyLDAuODUzNTUzMzkwNTkzMjczNywtMC41LDAsLTAuNSwwLjUsMC43MDcxMDY3
ODExODY1NDc2LDAsMCwwLDAsMSkgYnV0IGdvdCBtYXRyaXgzZCgwLjUwMDAwMDAwMDAwMDAwMDEs
IDAuNDk5OTk5OTk5OTk5OTk5ODMsIDAuNzA3MTA2NzgxMTg2NTQ3NCwgMCwgMC40OTk5OTk5OTk5
OTk5OTk3LCAwLjUwMDAwMDAwMDAwMDAwMDIsIC0wLjcwNzEwNjc4MTE4NjU0NzYsIDAsIC0wLjcw
NzEwNjc4MTE4NjU0NzYsIDAuNzA3MTA2NzgxMTg2NTQ3NCwgMC4wMDAwMDAwMDAwMDAwMDA0MDQy
NTkxNTgzMDAyMTMsIDAsIDAsIDAsIDAsIDEpOiBUaGUgdmFsdWUgc2hvdWxkIGJlIG1hdHJpeDNk
KDAuODUzNTUzMzkwNTkzMjczNywwLjE0NjQ0NjYwOTQwNjcyNjIsMC41LDAsMC4xNDY0NDY2MDk0
MDY3MjYyLDAuODUzNTUzMzkwNTkzMjczNywtMC41LDAsLTAuNSwwLjUsMC43MDcxMDY3ODExODY1
NDc2LDAsMCwwLDAsMSkgYXQgMG1zIGJ1dCBnb3QgbWF0cml4M2QoMC41MDAwMDAwMDAwMDAwMDAx
LCAwLjQ5OTk5OTk5OTk5OTk5OTgzLCAwLjcwNzEwNjc4MTE4NjU0NzQsIDAsIDAuNDk5OTk5OTk5
OTk5OTk5NywgMC41MDAwMDAwMDAwMDAwMDAyLCAtMC43MDcxMDY3ODExODY1NDc2LCAwLCAtMC43
MDcxMDY3ODExODY1NDc2LCAwLjcwNzEwNjc4MTE4NjU0NzQsIDAuMDAwMDAwMDAwMDAwMDAwNDA0
MjU5MTU4MzAwMjEzLCAwLCAwLCAwLCAwLCAxKSBleHBlY3RlZCAwLjg1MzU1MzM5MDU5MzI3Mzcg
Ky8tIDAuMDAwMSBidXQgZ290IDAuNTAwMDAwMDAwMDAwMDAwMQogRkFJTCB0cmFuc2Zvcm06IG5v
bmUgYXNzZXJ0X2VxdWFsczogZGltZW5zaW9uIG9mIHRoZSBtYXRyaXg6IFRoZSB2YWx1ZSBzaG91
bGQgYmUgbWF0cml4M2QoMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDEsMSkgYXQgMG1zIGJ1
dCBnb3QgbWF0cml4KDEsIDAsIDAsIDEsIDAsIDApIGV4cGVjdGVkIDE2IGJ1dCBnb3QgNgotRkFJ
TCB0cmFuc2Zvcm06IG5vbi1pbnZlcnRpYmxlIG1hdHJpY2VzIChub24taW52ZXJ0aWJsZSBvbnRv
IGludmVydGlibGUpIGFzc2VydF9yZWdleHBfbWF0Y2g6IEFjdHVhbCB2YWx1ZSBpcyBub3QgYSBt
YXRyaXggZXhwZWN0ZWQgb2JqZWN0ICIvXm1hdHJpeCg/OjNkKSpcKCguKylcKS8iIGJ1dCBnb3Qg
Im5vbmUiCi1GQUlMIHRyYW5zZm9ybTogbm9uLWludmVydGlibGUgbWF0cmljZXMgKGludmVydGli
bGUgb250byBub24taW52ZXJ0aWJsZSkgYXNzZXJ0X3JlZ2V4cF9tYXRjaDogQWN0dWFsIHZhbHVl
IGlzIG5vdCBhIG1hdHJpeCBleHBlY3RlZCBvYmplY3QgIi9ebWF0cml4KD86M2QpKlwoKC4rKVwp
LyIgYnV0IGdvdCAibm9uZSIKLUZBSUwgdHJhbnNmb3JtOiBub24taW52ZXJ0aWJsZSBtYXRyaWNl
cyBpbiBtYXRjaGVkIHRyYW5zZm9ybSBsaXN0cyAobm9uLWludmVydGlibGUgb250byBpbnZlcnRp
YmxlKSBhc3NlcnRfcmVnZXhwX21hdGNoOiBBY3R1YWwgdmFsdWUgaXMgbm90IGEgbWF0cml4IGV4
cGVjdGVkIG9iamVjdCAiL15tYXRyaXgoPzozZCkqXCgoLispXCkvIiBidXQgZ290ICJub25lIgot
RkFJTCB0cmFuc2Zvcm06IG5vbi1pbnZlcnRpYmxlIG1hdHJpY2VzIGluIG1hdGNoZWQgdHJhbnNm
b3JtIGxpc3RzIChpbnZlcnRpYmxlIG9udG8gbm9uLWludmVydGlibGUpIGFzc2VydF9yZWdleHBf
bWF0Y2g6IEFjdHVhbCB2YWx1ZSBpcyBub3QgYSBtYXRyaXggZXhwZWN0ZWQgb2JqZWN0ICIvXm1h
dHJpeCg/OjNkKSpcKCguKylcKS8iIGJ1dCBnb3QgIm5vbmUiCi1GQUlMIHRyYW5zZm9ybTogbm9u
LWludmVydGlibGUgbWF0cmljZXMgaW4gbWlzbWF0Y2hlZCB0cmFuc2Zvcm0gbGlzdHMgKG5vbi1p
bnZlcnRpYmxlIG9udG8gaW52ZXJ0aWJsZSkgYXNzZXJ0X3JlZ2V4cF9tYXRjaDogQWN0dWFsIHZh
bHVlIGlzIG5vdCBhIG1hdHJpeCBleHBlY3RlZCBvYmplY3QgIi9ebWF0cml4KD86M2QpKlwoKC4r
KVwpLyIgYnV0IGdvdCAibm9uZSIKLUZBSUwgdHJhbnNmb3JtOiBub24taW52ZXJ0aWJsZSBtYXRy
aWNlcyBpbiBtaXNtYXRjaGVkIHRyYW5zZm9ybSBsaXN0cyAoaW52ZXJ0aWJsZSBvbnRvIG5vbi1p
bnZlcnRpYmxlKSBhc3NlcnRfcmVnZXhwX21hdGNoOiBBY3R1YWwgdmFsdWUgaXMgbm90IGEgbWF0
cml4IGV4cGVjdGVkIG9iamVjdCAiL15tYXRyaXgoPzozZCkqXCgoLispXCkvIiBidXQgZ290ICJu
b25lIgorRkFJTCB0cmFuc2Zvcm06IG5vbi1pbnZlcnRpYmxlIG1hdHJpY2VzIChub24taW52ZXJ0
aWJsZSBvbnRvIGludmVydGlibGUpIGFzc2VydF9hcHByb3hfZXF1YWxzOiBleHBlY3RlZCBtYXRy
aXgoMSwxLDAsMCwwLDEwMCkgYnV0IGdvdCBtYXRyaXgoMSwgMSwgMCwgMCwgNDkuOTk5OTk5OTk5
OTk5OTg2LCA0OS45OTk5OTk5OTk5OTk5ODYpOiBUaGUgdmFsdWUgc2hvdWxkIGJlIG1hdHJpeCgx
LDEsMCwwLDAsMTAwKSBhdCAwbXMgYnV0IGdvdCBtYXRyaXgoMSwgMSwgMCwgMCwgNDkuOTk5OTk5
OTk5OTk5OTg2LCA0OS45OTk5OTk5OTk5OTk5ODYpIGV4cGVjdGVkIDAgKy8tIDAuMDAwMSBidXQg
Z290IDQ5Ljk5OTk5OTk5OTk5OTk4NgorUEFTUyB0cmFuc2Zvcm06IG5vbi1pbnZlcnRpYmxlIG1h
dHJpY2VzIChpbnZlcnRpYmxlIG9udG8gbm9uLWludmVydGlibGUpIAorUEFTUyB0cmFuc2Zvcm06
IG5vbi1pbnZlcnRpYmxlIG1hdHJpY2VzIGluIG1hdGNoZWQgdHJhbnNmb3JtIGxpc3RzIChub24t
aW52ZXJ0aWJsZSBvbnRvIGludmVydGlibGUpIAorUEFTUyB0cmFuc2Zvcm06IG5vbi1pbnZlcnRp
YmxlIG1hdHJpY2VzIGluIG1hdGNoZWQgdHJhbnNmb3JtIGxpc3RzIChpbnZlcnRpYmxlIG9udG8g
bm9uLWludmVydGlibGUpIAorUEFTUyB0cmFuc2Zvcm06IG5vbi1pbnZlcnRpYmxlIG1hdHJpY2Vz
IGluIG1pc21hdGNoZWQgdHJhbnNmb3JtIGxpc3RzIChub24taW52ZXJ0aWJsZSBvbnRvIGludmVy
dGlibGUpIAorUEFTUyB0cmFuc2Zvcm06IG5vbi1pbnZlcnRpYmxlIG1hdHJpY2VzIGluIG1pc21h
dGNoZWQgdHJhbnNmb3JtIGxpc3RzIChpbnZlcnRpYmxlIG9udG8gbm9uLWludmVydGlibGUpIAog
UEFTUyB2aXNpYmlsaXR5ICh0eXBlOiB2aXNpYmlsaXR5KSBoYXMgdGVzdEFjY3VtdWxhdGlvbiBm
dW5jdGlvbiAKIEZBSUwgdmlzaWJpbGl0eTogb250byAidmlzaWJsZSIgYXNzZXJ0X2VxdWFsczog
VGhlIHZhbHVlIHNob3VsZCBiZSB2aXNpYmxlIGF0IDEwMDBtcyBleHBlY3RlZCAidmlzaWJsZSIg
YnV0IGdvdCAiaGlkZGVuIgogUEFTUyB2aXNpYmlsaXR5OiBvbnRvICJoaWRkZW4iIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXNpZXJyYS9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL2FuaW1hdGlvbi1tb2RlbC9hbmltYXRpb24tdHlw
ZXMvaW50ZXJwb2xhdGlvbi1wZXItcHJvcGVydHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXNpZXJyYS9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1h
bmltYXRpb25zL2FuaW1hdGlvbi1tb2RlbC9hbmltYXRpb24tdHlwZXMvaW50ZXJwb2xhdGlvbi1w
ZXItcHJvcGVydHktZXhwZWN0ZWQudHh0CmluZGV4IDE5N2U1YzczZGIzOWMxNWMyYmIwZjI4NDA1
MzVmMDc3ZWEzOTg2NzguLjQ4Njc0ZDY5MzhiMDA1NjdkY2EwMDBhN2U4YzUzYzdhZTM5MGU0MjQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1zaWVycmEvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy9hbmltYXRpb24tbW9kZWwvYW5pbWF0
aW9uLXR5cGVzL2ludGVycG9sYXRpb24tcGVyLXByb3BlcnR5LWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc2llcnJhL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2ViLWFuaW1hdGlvbnMvYW5pbWF0aW9uLW1vZGVsL2FuaW1hdGlvbi10eXBlcy9pbnRl
cnBvbGF0aW9uLXBlci1wcm9wZXJ0eS1leHBlY3RlZC50eHQKQEAgLTIyNSwyMSArMjI1LDIxIEBA
IEZBSUwgdGV4dC1zaGFkb3c6IG1pc21hdGNoZWQgbGlzdCBsZW5ndGggKGZyb20gbG9uZ2VyIHRv
IHNob3J0ZXIpIGFzc2VydF9lcXVhbHM6CiBGQUlMIHRleHQtc2hhZG93OiBtaXNtYXRjaGVkIGxp
c3QgbGVuZ3RoIChmcm9tIHNob3J0ZXIgdG8gbG9uZ2VyKSBhc3NlcnRfZXF1YWxzOiBUaGUgdmFs
dWUgc2hvdWxkIGJlIHJnYigxNTAsIDE1MCwgMTUwKSAxNXB4IDE1cHggMTVweCwgcmdiYSgxMDAs
IDEwMCwgMTAwLCAwLjUpIDVweCA1cHggNXB4IGF0IDUwMG1zIGV4cGVjdGVkICJyZ2IoMTUwLCAx
NTAsIDE1MCkgMTVweCAxNXB4IDE1cHgsIHJnYmEoMTAwLCAxMDAsIDEwMCwgMC41KSA1cHggNXB4
IDVweCIgYnV0IGdvdCAicmdiKDE1MCwgMTUwLCAxNTApIDE1cHggMTVweCAxNXB4LCByZ2JhKDEw
MCwgMTAwLCAxMDAsIDAuNTAxOTYxKSA1cHggNXB4IDVweCIKIEZBSUwgdGV4dC1zaGFkb3c6IHdp
dGggY3VycmVudGNvbG9yIGFzc2VydF9lcXVhbHM6IFRoZSB2YWx1ZSBzaG91bGQgYmUgcmdiKDAs
IDI1NSwgMCkgNXB4IDVweCA1cHggYXQgNTAwbXMgZXhwZWN0ZWQgInJnYigwLCAyNTUsIDApIDVw
eCA1cHggNXB4IiBidXQgZ290ICJyZ2IoMCwgMCwgMCkgNXB4IDVweCA1cHgiCiBQQVNTIHRyYW5z
Zm9ybSAodHlwZTogdHJhbnNmb3JtTGlzdCkgaGFzIHRlc3RJbnRlcnBvbGF0aW9uIGZ1bmN0aW9u
IAotRkFJTCB0cmFuc2Zvcm06IHRyYW5zbGF0ZSBhc3NlcnRfcmVnZXhwX21hdGNoOiBBY3R1YWwg
dmFsdWUgaXMgbm90IGEgbWF0cml4IGV4cGVjdGVkIG9iamVjdCAiL15tYXRyaXgoPzozZCkqXCgo
LispXCkvIiBidXQgZ290ICJub25lIgotRkFJTCB0cmFuc2Zvcm06IHJvdGF0ZSBhc3NlcnRfcmVn
ZXhwX21hdGNoOiBBY3R1YWwgdmFsdWUgaXMgbm90IGEgbWF0cml4IGV4cGVjdGVkIG9iamVjdCAi
L15tYXRyaXgoPzozZCkqXCgoLispXCkvIiBidXQgZ290ICJub25lIgotRkFJTCB0cmFuc2Zvcm06
IHNjYWxlIGFzc2VydF9yZWdleHBfbWF0Y2g6IEFjdHVhbCB2YWx1ZSBpcyBub3QgYSBtYXRyaXgg
ZXhwZWN0ZWQgb2JqZWN0ICIvXm1hdHJpeCg/OjNkKSpcKCguKylcKS8iIGJ1dCBnb3QgIm5vbmUi
Ci1GQUlMIHRyYW5zZm9ybTogc2tldyBhc3NlcnRfcmVnZXhwX21hdGNoOiBBY3R1YWwgdmFsdWUg
aXMgbm90IGEgbWF0cml4IGV4cGVjdGVkIG9iamVjdCAiL15tYXRyaXgoPzozZCkqXCgoLispXCkv
IiBidXQgZ290ICJub25lIgotRkFJTCB0cmFuc2Zvcm06IHJvdGF0ZSBhbmQgdHJhbnNsYXRlIGFz
c2VydF9yZWdleHBfbWF0Y2g6IEFjdHVhbCB2YWx1ZSBpcyBub3QgYSBtYXRyaXggZXhwZWN0ZWQg
b2JqZWN0ICIvXm1hdHJpeCg/OjNkKSpcKCguKylcKS8iIGJ1dCBnb3QgIm5vbmUiCi1GQUlMIHRy
YW5zZm9ybTogdHJhbnNsYXRlIGFuZCByb3RhdGUgYXNzZXJ0X3JlZ2V4cF9tYXRjaDogQWN0dWFs
IHZhbHVlIGlzIG5vdCBhIG1hdHJpeCBleHBlY3RlZCBvYmplY3QgIi9ebWF0cml4KD86M2QpKlwo
KC4rKVwpLyIgYnV0IGdvdCAibm9uZSIKLUZBSUwgdHJhbnNmb3JtOiBtaXNtYXRjaCBvcmRlciBv
ZiB0cmFuc2xhdGUgYW5kIHJvdGF0ZSBhc3NlcnRfcmVnZXhwX21hdGNoOiBBY3R1YWwgdmFsdWUg
aXMgbm90IGEgbWF0cml4IGV4cGVjdGVkIG9iamVjdCAiL15tYXRyaXgoPzozZCkqXCgoLispXCkv
IiBidXQgZ290ICJub25lIgotRkFJTCB0cmFuc2Zvcm06IG1hdHJpeCBhc3NlcnRfcmVnZXhwX21h
dGNoOiBBY3R1YWwgdmFsdWUgaXMgbm90IGEgbWF0cml4IGV4cGVjdGVkIG9iamVjdCAiL15tYXRy
aXgoPzozZCkqXCgoLispXCkvIiBidXQgZ290ICJub25lIgotRkFJTCB0cmFuc2Zvcm06IHJvdGF0
ZTNkIGFzc2VydF9yZWdleHBfbWF0Y2g6IEFjdHVhbCB2YWx1ZSBpcyBub3QgYSBtYXRyaXggZXhw
ZWN0ZWQgb2JqZWN0ICIvXm1hdHJpeCg/OjNkKSpcKCguKylcKS8iIGJ1dCBnb3QgIm5vbmUiCi1G
QUlMIHRyYW5zZm9ybTogbWF0cml4M2QgYXNzZXJ0X3JlZ2V4cF9tYXRjaDogQWN0dWFsIHZhbHVl
IGlzIG5vdCBhIG1hdHJpeCBleHBlY3RlZCBvYmplY3QgIi9ebWF0cml4KD86M2QpKlwoKC4rKVwp
LyIgYnV0IGdvdCAibm9uZSIKLUZBSUwgdHJhbnNmb3JtOiBtaXNtYXRjaGVkIDNEIHRyYW5zZm9y
bXMgYXNzZXJ0X3JlZ2V4cF9tYXRjaDogQWN0dWFsIHZhbHVlIGlzIG5vdCBhIG1hdHJpeCBleHBl
Y3RlZCBvYmplY3QgIi9ebWF0cml4KD86M2QpKlwoKC4rKVwpLyIgYnV0IGdvdCAibm9uZSIKLUZB
SUwgdHJhbnNmb3JtOiByb3RhdGVZIGFzc2VydF9yZWdleHBfbWF0Y2g6IEFjdHVhbCB2YWx1ZSBp
cyBub3QgYSBtYXRyaXggZXhwZWN0ZWQgb2JqZWN0ICIvXm1hdHJpeCg/OjNkKSpcKCguKylcKS8i
IGJ1dCBnb3QgIm5vbmUiCi1GQUlMIHRyYW5zZm9ybTogbm9uLWludmVydGlibGUgbWF0cmljZXMg
YXNzZXJ0X3JlZ2V4cF9tYXRjaDogQWN0dWFsIHZhbHVlIGlzIG5vdCBhIG1hdHJpeCBleHBlY3Rl
ZCBvYmplY3QgIi9ebWF0cml4KD86M2QpKlwoKC4rKVwpLyIgYnV0IGdvdCAibm9uZSIKLUZBSUwg
dHJhbnNmb3JtOiBub24taW52ZXJ0aWJsZSBtYXRyaWNlcyBpbiBtYXRjaGVkIHRyYW5zZm9ybSBs
aXN0cyBhc3NlcnRfcmVnZXhwX21hdGNoOiBBY3R1YWwgdmFsdWUgaXMgbm90IGEgbWF0cml4IGV4
cGVjdGVkIG9iamVjdCAiL15tYXRyaXgoPzozZCkqXCgoLispXCkvIiBidXQgZ290ICJub25lIgot
RkFJTCB0cmFuc2Zvcm06IG5vbi1pbnZlcnRpYmxlIG1hdHJpY2VzIGluIG1pc21hdGNoZWQgdHJh
bnNmb3JtIGxpc3RzIGFzc2VydF9yZWdleHBfbWF0Y2g6IEFjdHVhbCB2YWx1ZSBpcyBub3QgYSBt
YXRyaXggZXhwZWN0ZWQgb2JqZWN0ICIvXm1hdHJpeCg/OjNkKSpcKCguKylcKS8iIGJ1dCBnb3Qg
Im5vbmUiCitQQVNTIHRyYW5zZm9ybTogdHJhbnNsYXRlIAorUEFTUyB0cmFuc2Zvcm06IHJvdGF0
ZSAKK1BBU1MgdHJhbnNmb3JtOiBzY2FsZSAKK0ZBSUwgdHJhbnNmb3JtOiBza2V3IGFzc2VydF9h
cHByb3hfZXF1YWxzOiBleHBlY3RlZCBtYXRyaXgoMSwwLjk5OTk5OTk5OTk5OTk5OTksMC45OTk5
OTk5OTk5OTk5OTk5LDEsMCwwKSBidXQgZ290IG1hdHJpeCgxLjExNTM1NTA3MTY1MDQxMDYsIDAu
OTY1OTI1ODI2Mjg5MDY4MiwgMC45NjU5MjU4MjYyODkwNjgxLCAxLjExNTM1NTA3MTY1MDQxMDYs
IDAsIDApOiBUaGUgdmFsdWUgc2hvdWxkIGJlIG1hdHJpeCgxLDAuOTk5OTk5OTk5OTk5OTk5OSww
Ljk5OTk5OTk5OTk5OTk5OTksMSwwLDApIGF0IDUwMG1zIGJ1dCBnb3QgbWF0cml4KDEuMTE1MzU1
MDcxNjUwNDEwNiwgMC45NjU5MjU4MjYyODkwNjgyLCAwLjk2NTkyNTgyNjI4OTA2ODEsIDEuMTE1
MzU1MDcxNjUwNDEwNiwgMCwgMCkgZXhwZWN0ZWQgMSArLy0gMC4wMDAxIGJ1dCBnb3QgMS4xMTUz
NTUwNzE2NTA0MTA2CitQQVNTIHRyYW5zZm9ybTogcm90YXRlIGFuZCB0cmFuc2xhdGUgCitGQUlM
IHRyYW5zZm9ybTogdHJhbnNsYXRlIGFuZCByb3RhdGUgYXNzZXJ0X2FwcHJveF9lcXVhbHM6IGV4
cGVjdGVkIG1hdHJpeCg2LjEyMzIzMzk5NTczNjc2NmUtMTcsMSwtMSw2LjEyMzIzMzk5NTczNjc2
NmUtMTcsOS4xODQ4NTA5OTM2MDUxNDllLTE1LDE1MCkgYnV0IGdvdCBtYXRyaXgoMC4wMDAwMDAw
MDAwMDAwMDAwNjEyMzIzMzk5NTczNjc2NiwgMSwgLTEsIDAuMDAwMDAwMDAwMDAwMDAwMDYxMjMy
MzM5OTU3MzY3NjYsIC0zNS4zNTUzMzkwNTkzMjczNiwgMTA2LjA2NjAxNzE3Nzk4MjEzKTogVGhl
IHZhbHVlIHNob3VsZCBiZSBtYXRyaXgoNi4xMjMyMzM5OTU3MzY3NjZlLTE3LDEsLTEsNi4xMjMy
MzM5OTU3MzY3NjZlLTE3LDkuMTg0ODUwOTkzNjA1MTQ5ZS0xNSwxNTApIGF0IDUwMG1zIGJ1dCBn
b3QgbWF0cml4KDAuMDAwMDAwMDAwMDAwMDAwMDYxMjMyMzM5OTU3MzY3NjYsIDEsIC0xLCAwLjAw
MDAwMDAwMDAwMDAwMDA2MTIzMjMzOTk1NzM2NzY2LCAtMzUuMzU1MzM5MDU5MzI3MzYsIDEwNi4w
NjYwMTcxNzc5ODIxMykgZXhwZWN0ZWQgOS4xODQ4NTA5OTM2MDUxNDllLTE1ICsvLSAwLjAwMDEg
YnV0IGdvdCAtMzUuMzU1MzM5MDU5MzI3MzYKK1BBU1MgdHJhbnNmb3JtOiBtaXNtYXRjaCBvcmRl
ciBvZiB0cmFuc2xhdGUgYW5kIHJvdGF0ZSAKK1BBU1MgdHJhbnNmb3JtOiBtYXRyaXggCitGQUlM
IHRyYW5zZm9ybTogcm90YXRlM2QgYXNzZXJ0X2FwcHJveF9lcXVhbHM6IGV4cGVjdGVkIG1hdHJp
eDNkKDAuODUzNTUzMzkwNTkzMjczNywwLjE0NjQ0NjYwOTQwNjcyNjIsLTAuNSwwLDAuMTQ2NDQ2
NjA5NDA2NzI2MiwwLjg1MzU1MzM5MDU5MzI3MzcsMC41LDAsMC41LC0wLjUsMC43MDcxMDY3ODEx
ODY1NDc2LDAsMCwwLDAsMSkgYnV0IGdvdCBtYXRyaXgzZCgwLjc0OTk5OTk5OTk5OTk5OTksIDAu
MjQ5OTk5OTk5OTk5OTk5OSwgLTAuMzUzNTUzMzkwNTkzMjczNywgMCwgMC4yNDk5OTk5OTk5OTk5
OTk4MywgMC43NSwgMC4zNTM1NTMzOTA1OTMyNzM3LCAwLCAwLjM1MzU1MzM5MDU5MzI3MzczLCAt
MC4zNTM1NTMzOTA1OTMyNzM3LCAwLjUwMDAwMDAwMDAwMDAwMDIsIDAsIDAsIDAsIDAsIDEpOiBU
aGUgdmFsdWUgc2hvdWxkIGJlIG1hdHJpeDNkKDAuODUzNTUzMzkwNTkzMjczNywwLjE0NjQ0NjYw
OTQwNjcyNjIsLTAuNSwwLDAuMTQ2NDQ2NjA5NDA2NzI2MiwwLjg1MzU1MzM5MDU5MzI3MzcsMC41
LDAsMC41LC0wLjUsMC43MDcxMDY3ODExODY1NDc2LDAsMCwwLDAsMSkgYXQgNTAwbXMgYnV0IGdv
dCBtYXRyaXgzZCgwLjc0OTk5OTk5OTk5OTk5OTksIDAuMjQ5OTk5OTk5OTk5OTk5OSwgLTAuMzUz
NTUzMzkwNTkzMjczNywgMCwgMC4yNDk5OTk5OTk5OTk5OTk4MywgMC43NSwgMC4zNTM1NTMzOTA1
OTMyNzM3LCAwLCAwLjM1MzU1MzM5MDU5MzI3MzczLCAtMC4zNTM1NTMzOTA1OTMyNzM3LCAwLjUw
MDAwMDAwMDAwMDAwMDIsIDAsIDAsIDAsIDAsIDEpIGV4cGVjdGVkIDAuODUzNTUzMzkwNTkzMjcz
NyArLy0gMC4wMDAxIGJ1dCBnb3QgMC43NDk5OTk5OTk5OTk5OTk5CitQQVNTIHRyYW5zZm9ybTog
bWF0cml4M2QgCitQQVNTIHRyYW5zZm9ybTogbWlzbWF0Y2hlZCAzRCB0cmFuc2Zvcm1zIAorRkFJ
TCB0cmFuc2Zvcm06IHJvdGF0ZVkgYXNzZXJ0X2FwcHJveF9lcXVhbHM6IGV4cGVjdGVkIG1hdHJp
eDNkKDAuODY2MDI1NDAzNzg0NDM4NywwLC0wLjQ5OTk5OTk5OTk5OTk5OTk0LDAsMCwxLDAsMCww
LjQ5OTk5OTk5OTk5OTk5OTk0LDAsMC44NjYwMjU0MDM3ODQ0Mzg3LDAsMCwwLDAsMSkgYnV0IGdv
dCBtYXRyaXgzZCgwLjc1LCAwLCAtMC40MzMwMTI3MDE4OTIyMTkyLCAwLCAwLCAxLCAwLCAwLCAw
LjQzMzAxMjcwMTg5MjIxOTIsIDAsIDAuNzUsIDAsIDAsIDAsIDAsIDEpOiBUaGUgdmFsdWUgc2hv
dWxkIGJlIG1hdHJpeDNkKDAuODY2MDI1NDAzNzg0NDM4NywwLC0wLjQ5OTk5OTk5OTk5OTk5OTk0
LDAsMCwxLDAsMCwwLjQ5OTk5OTk5OTk5OTk5OTk0LDAsMC44NjYwMjU0MDM3ODQ0Mzg3LDAsMCww
LDAsMSkgYXQgNTAwbXMgYnV0IGdvdCBtYXRyaXgzZCgwLjc1LCAwLCAtMC40MzMwMTI3MDE4OTIy
MTkyLCAwLCAwLCAxLCAwLCAwLCAwLjQzMzAxMjcwMTg5MjIxOTIsIDAsIDAuNzUsIDAsIDAsIDAs
IDAsIDEpIGV4cGVjdGVkIDAuODY2MDI1NDAzNzg0NDM4NyArLy0gMC4wMDAxIGJ1dCBnb3QgMC43
NQorRkFJTCB0cmFuc2Zvcm06IG5vbi1pbnZlcnRpYmxlIG1hdHJpY2VzIGFzc2VydF9hcHByb3hf
ZXF1YWxzOiBleHBlY3RlZCBtYXRyaXgoLTEsMCwwLC0xLDIwMCwwKSBidXQgZ290IG1hdHJpeCgt
MC4wNzA2NTcyODAxNDI3NjczLCAwLjcxOTk5Nzk1OTU1MDUyMiwgLTAuMzk1MTQ2Mzc5OTI3OTUx
NjUsIC0wLjI2MDA3ODcwNDY2MDA3MjA1LCA4Ny42NTAxNSwgNjIuNDQ5ODQ5OTk5OTk5OTkpOiBU
aGUgdmFsdWUgc2hvdWxkIGJlIG1hdHJpeCgtMSwwLDAsLTEsMjAwLDApIGF0IDQ5OW1zIGJ1dCBn
b3QgbWF0cml4KC0wLjA3MDY1NzI4MDE0Mjc2NzMsIDAuNzE5OTk3OTU5NTUwNTIyLCAtMC4zOTUx
NDYzNzk5Mjc5NTE2NSwgLTAuMjYwMDc4NzA0NjYwMDcyMDUsIDg3LjY1MDE1LCA2Mi40NDk4NDk5
OTk5OTk5OSkgZXhwZWN0ZWQgLTEgKy8tIDAuMDAwMSBidXQgZ290IC0wLjA3MDY1NzI4MDE0Mjc2
NzMKK0ZBSUwgdHJhbnNmb3JtOiBub24taW52ZXJ0aWJsZSBtYXRyaWNlcyBpbiBtYXRjaGVkIHRy
YW5zZm9ybSBsaXN0cyBhc3NlcnRfYXBwcm94X2VxdWFsczogZXhwZWN0ZWQgbWF0cml4KDAsLTEs
MSwwLDI1MCwwKSBidXQgZ290IG1hdHJpeCgtMC43ODczOTg5MTU5MjU0MjIyLCAtMS4xMTUyMDA5
MDM1Mjg0MTksIDAuMTM2NDgxMDEyMjYyNzA1NywgLTAuMTkxMzYwODA4MjYyMzU3NDYsIDExMi42
NTAyNSwgNDkuODk5OTk5OTk5OTk5OTkpOiBUaGUgdmFsdWUgc2hvdWxkIGJlIG1hdHJpeCgwLC0x
LDEsMCwyNTAsMCkgYXQgNDk5bXMgYnV0IGdvdCBtYXRyaXgoLTAuNzg3Mzk4OTE1OTI1NDIyMiwg
LTEuMTE1MjAwOTAzNTI4NDE5LCAwLjEzNjQ4MTAxMjI2MjcwNTcsIC0wLjE5MTM2MDgwODI2MjM1
NzQ2LCAxMTIuNjUwMjUsIDQ5Ljg5OTk5OTk5OTk5OTk5KSBleHBlY3RlZCAwICsvLSAwLjAwMDEg
YnV0IGdvdCAtMC43ODczOTg5MTU5MjU0MjIyCitGQUlMIHRyYW5zZm9ybTogbm9uLWludmVydGli
bGUgbWF0cmljZXMgaW4gbWlzbWF0Y2hlZCB0cmFuc2Zvcm0gbGlzdHMgYXNzZXJ0X2FwcHJveF9l
cXVhbHM6IGV4cGVjdGVkIG1hdHJpeCgtMiwwLDAsLTIsMjUwLDApIGJ1dCBnb3QgbWF0cml4KDAu
NDU3MjM1MDM5NTU3OTA1LCAxLjU3NjE1ODA0NjYyOTc5NDQsIC0xLjExNzYwODU2NDY1Mzg4Mzgs
IC0wLjY1NzIyMTIwOTAwMjcxODksIDExMi42NTAyNSwgNDkuODk5OTk5OTk5OTk5OTkpOiBUaGUg
dmFsdWUgc2hvdWxkIGJlIG1hdHJpeCgtMiwwLDAsLTIsMjUwLDApIGF0IDQ5OW1zIGJ1dCBnb3Qg
bWF0cml4KDAuNDU3MjM1MDM5NTU3OTA1LCAxLjU3NjE1ODA0NjYyOTc5NDQsIC0xLjExNzYwODU2
NDY1Mzg4MzgsIC0wLjY1NzIyMTIwOTAwMjcxODksIDExMi42NTAyNSwgNDkuODk5OTk5OTk5OTk5
OTkpIGV4cGVjdGVkIC0yICsvLSAwLjAwMDEgYnV0IGdvdCAwLjQ1NzIzNTAzOTU1NzkwNQogUEFT
UyB2aXNpYmlsaXR5ICh0eXBlOiB2aXNpYmlsaXR5KSBoYXMgdGVzdEludGVycG9sYXRpb24gZnVu
Y3Rpb24gCiBQQVNTIHZpc2liaWxpdHkgdXNlcyB2aXNpYmlsaXR5IGFuaW1hdGlvbiB3aGVuIGFu
aW1hdGluZyBmcm9tICJ2aXNpYmxlIiB0byAiaGlkZGVuIiAKIFBBU1MgdmlzaWJpbGl0eSB1c2Vz
IHZpc2liaWxpdHkgYW5pbWF0aW9uIHdoZW4gYW5pbWF0aW5nIGZyb20gImhpZGRlbiIgdG8gInZp
c2libGUiIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBh
OTAyOGE0NjY1MjRhOTY5YzNhZGIyMDAzZGRlMWVlYjRlOTY4ZjI1Li5mNGQzZjI0M2QwYTczYWNm
MDJhMjdjODlkYjNmYTRiZTI5NzgyMzJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtMTczNCwzICsxNzM0LDUgQEAgd2Via2l0Lm9yZy9iLzE4MzQ5MCBt
ZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvc3RhcnQtc3VwcG9ydC9zdGFydC1zdXBwb3J0LWZ1
bGwKIHdlYmtpdC5vcmcvYi8xODM0OTAgbWVkaWEvdmlkZW8tcGxheXNpbmxpbmUuaHRtbCBbIEZh
aWx1cmUgXQogd2Via2l0Lm9yZy9iLzE4MzQ5MCBtZWRpYS92aWRlby13ZWJraXQtcGxheXNpbmxp
bmUuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE4MzQ5MCBtZWRpYS9tb2Rlcm4tbWVk
aWEtY29udHJvbHMvbWVkaWEtY29udHJvbGxlci9tZWRpYS1jb250cm9sbGVyLWlubGluZS10by1m
dWxsc2NyZWVuLXRvLXBpcC10by1pbmxpbmUuaHRtbCBbIEZhaWx1cmUgXQorCit3ZWJraXQub3Jn
L2IvMTgzNzY0IGZhc3QvY3NzL2FwcGxlLXN5c3RlbS1jb250cm9sLWNvbG9ycy5odG1sIFsgUGFz
cyBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGFhNmRi
MzFhZGJlNTIyYmQwNDY1YjkyYmNiY2M3YTM5YTQxNjMxZDMuLmJlYTliMWI2ZTE1ZDJmYjBiYWQ3
Y2ZmNDMwNTFjNzc2Y2E4YmEwMjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhw
ZWN0YXRpb25zCkBAIC0zOTI5LDMgKzM5MjksMTMgQEAgd2Via2l0Lm9yZy9iLzE4MzM5MyBmYXN0
L2xvYWRlci93aW5kb3ctb3Blbi10by1pbnZhbGlkLXVybC1kaXNhbGxvd2VkLmh0bWwgWyBTa2kK
IAogd2Via2l0Lm9yZy9iLzE4MzU2OSB3ZWJhbmltYXRpb25zL2Nzcy1hbmltYXRpb25zLmh0bWwg
WyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xODM1Njkgd2ViYW5pbWF0aW9ucy9jc3MtdHJhbnNp
dGlvbnMuaHRtbCBbIEZhaWx1cmUgXQorCit3ZWJraXQub3JnL2IvMTgzOTUzIGltcG9ydGVkL21v
emlsbGEvY3NzLWFuaW1hdGlvbnMvdGVzdF9hbmltYXRpb24tY2FuY2VsLmh0bWwgWyBGYWlsdXJl
IF0KK3dlYmtpdC5vcmcvYi8xODM5NTMgaW1wb3J0ZWQvbW96aWxsYS9jc3MtYW5pbWF0aW9ucy90
ZXN0X2FuaW1hdGlvbi1maW5pc2guaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzE4Mzk1
MyBpbXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25zL3Rlc3RfZWZmZWN0LXRhcmdldC5odG1s
IFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMTgzOTUzIGltcG9ydGVkL21vemlsbGEvY3NzLXRy
YW5zaXRpb25zL3Rlc3RfZWZmZWN0LXRhcmdldC5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3Jn
L2IvMTgzOTUzIGltcG9ydGVkL21vemlsbGEvY3NzLWFuaW1hdGlvbnMvdGVzdF9ldmVudC1kaXNw
YXRjaC5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTgzOTUzIGltcG9ydGVkL21vemlsbGEv
Y3NzLXRyYW5zaXRpb25zL3Rlc3RfZXZlbnQtZGlzcGF0Y2guaHRtbCBbIFNraXAgXQord2Via2l0
Lm9yZy9iLzE4Mzk1MyBpbXBvcnRlZC9tb3ppbGxhL2Nzcy1hbmltYXRpb25zL3Rlc3Rfa2V5ZnJh
bWVlZmZlY3QtZ2V0a2V5ZnJhbWVzLmh0bWwgWyBTa2lwIF0KKword2Via2l0Lm9yZy9iLzE4Mzk1
NSBhY2Nlc3NpYmlsaXR5L3Jvdy13aXRoLWFyaWEtcm9sZS1pbi1uYXRpdmUtdGFibGUuaHRtbCBb
IEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCAwYWI0MDEwZmUyZmQyY2UyYzJlMTg3ZjUwNjlmNjYxNDljNDQwNGUyLi4yMThhODVjMzgwYmRk
MGEyMDIwNGEyMWZkYjNjODk1NWJiNzNhNWY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMTkzLDcgKzE5Myw2IEBAIEJ1ZyhXUEUpIHNlY3VyaXR5L2Nv
bnRlbnRTZWN1cml0eVBvbGljeS92aWRlby13aXRoLWZpbGUtdXJsLWFsbG93ZWQtYnktbWVkaWEt
c3JjCiBCdWcoV1BFKSB1c2Vyc2NyaXB0cy91c2VyLXNjcmlwdC1wbHVnaW4tZG9jdW1lbnQuaHRt
bCBbIEZhaWx1cmUgXQogCiBCdWcoV1BFKSBpbXBvcnRlZC9ibGluayBbIFNraXAgXQotQnVnKFdQ
RSkgaW1wb3J0ZWQvbWF0aG1sLWluLWh0bWw1IFsgU2tpcCBdCiBCdWcoV1BFKSBpbXBvcnRlZC9t
b3ppbGxhIFsgU2tpcCBdCiAKIEJ1ZyhXUEUpIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvbWVkaWFjYXB0dXJlLWZyb21lbGVtZW50IFsgU2tpcCBdCkBAIC00NDQsNiArNDQzLDggQEAg
QnVnKFdQRSkgZmFzdC9zcGVlY2hzeW50aGVzaXMgWyBTa2lwIF0KIEJ1ZyhXUEUpIGZhc3Qvc3Vi
LXBpeGVsIFsgU2tpcCBdCiBCdWcoV1BFKSBmYXN0L3RhYmxlIFsgU2tpcCBdCiBCdWcoV1BFKSBm
YXN0L3RleHQgWyBTa2lwIF0KK0J1ZyhXUEUpIGZhc3QvdGV4dC93b2ZmMi10b3RhbHNmbnRzaXpl
Lmh0bWwgWyBQYXNzIF0KK0J1ZyhXUEUpIGZhc3QvdGV4dC93b2ZmMi5odG1sIFsgUGFzcyBdCiBC
dWcoV1BFKSBmYXN0L3RleHQtYXV0b3NpemluZyBbIFNraXAgXQogQnVnKFdQRSkgZmFzdC92aXN1
YWwtdmlld3BvcnQgWyBTa2lwIF0KIEJ1ZyhXUEUpIGZhc3Qvd3JpdGluZy1tb2RlIFsgU2tpcCBd
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2Nzcy1hbmltYXRpb25zLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvY3NzLWFuaW1hdGlvbnMtZXhw
ZWN0ZWQudHh0CmluZGV4IDc4MjM1NGY2OGQ4MzllNGMyMTBiMjk5ZWZlNzI2MGM4YzliM2M0Yzcu
LmRhYTk4YTYyZTg1NTczMjM2M2VhMmMxYWY2ZTY4YmU4Mjk0ZmU4NGEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvY3NzLWFuaW1hdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvY3NzLWFuaW1hdGlvbnMtZXhwZWN0ZWQudHh0CkBA
IC03LDcgKzcsNyBAQCBQQVNTIFdlYiBBbmltYXRpb25zIHNob3VsZCByZWZsZWN0IHRoZSBhbmlt
YXRpb24tZmlsbC1tb2RlIHByb3BlcnR5LgogUEFTUyBXZWIgQW5pbWF0aW9ucyBzaG91bGQgcmVm
bGVjdCB0aGUgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCBwcm9wZXJ0eS4gCiBQQVNTIFdlYiBB
bmltYXRpb25zIHNob3VsZCByZWZsZWN0IHRoZSBhbmltYXRpb24tbmFtZSBwcm9wZXJ0eS4gCiBQ
QVNTIFdlYiBBbmltYXRpb25zIHNob3VsZCByZWZsZWN0IHRoZSBhbmltYXRpb24tcGxheS1zdGF0
ZSBwcm9wZXJ0eS4gCi1QQVNTIFdlYiBBbmltYXRpb25zIHNob3VsZCByZWZsZWN0IHRoZSBhbmlt
YXRpb24tdGltaW5nLWZ1bmN0aW9uIHByb3BlcnR5LiAKK1BBU1MgV2ViIEFuaW1hdGlvbnMgc2hv
dWxkIG5vdCByZWZsZWN0IHRoZSBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uIHByb3BlcnR5IG9u
IHRoZSBlZmZlY3QncyB0aW1pbmcuIAogUEFTUyBDYWxsaW5nIGZpbmlzaCgpIG9uIHRoZSBhbmlt
YXRpb24gbm8gbG9uZ2VyIGxpc3RzIHRoZSBhbmltYXRpb24gYWZ0ZXIgaXQgaGFzIGJlZW4gcnVu
bmluZy4gCiBQQVNTIFNlZWtpbmcgdGhlIGFuaW1hdGlvbiB0byBpdHMgZW5kIHRpbWUgbm8gbG9u
Z2VyIGxpc3RzIHRoZSBhbmltYXRpb24gYWZ0ZXIgaXQgaGFzIGJlZW4gcnVubmluZy4gCiBQQVNT
IFNldHRpbmcgdGhlIHRhcmdldCdzIGFuaW1hdGlvbi1uYW1lIHRvIG5vbmUgbm8gbG9uZ2VyIGxp
c3RzIHRoZSBhbmltYXRpb24gYWZ0ZXIgaXQgaGFzIGJlZW4gcnVubmluZy4gCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2Nzcy1hbmltYXRpb25zLmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJhbmltYXRpb25zL2Nzcy1hbmltYXRpb25zLmh0bWwKaW5kZXggNDc5NzcyZTBhOGVj
Yzk2YzA1OGZlNzk0MzAxYmU4ZGY5ZmFhNmIxNC4uOTQ5YjJjZWQ3NzJkM2UwYWI0OGJkMDc4MDUx
MWMwYjI2NmU1YTBhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9jc3Mt
YW5pbWF0aW9ucy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvY3NzLWFuaW1h
dGlvbnMuaHRtbApAQCAtNTksNyArNTksNiBAQCB0YXJnZXRUZXN0KHRhcmdldCA9PiB7CiAgICAg
YXNzZXJ0X2VxdWFscyh0aW1pbmcuZHVyYXRpb24sIDIwMDAsICJUaGUgYW5pbWF0aW9uJ3MgZHVy
YXRpb24gcHJvcGVydHkgbWF0Y2hlcyB0aGUgYW5pbWF0aW9uLWR1cmF0aW9uIHByb3BlcnR5LiIp
OwogICAgIGFzc2VydF9lcXVhbHModGltaW5nLml0ZXJhdGlvbnMsIDIsICJUaGUgYW5pbWF0aW9u
J3MgaXRlcmF0aW9ucyBwcm9wZXJ0eSBtYXRjaGVzIHRoZSBhbmltYXRpb24taXRlcmF0aW9uLWNv
dW50IHByb3BlcnR5LiIpOwogICAgIGFzc2VydF9lcXVhbHModGltaW5nLmRpcmVjdGlvbiwgImFs
dGVybmF0ZSIsICJUaGUgYW5pbWF0aW9uJ3MgZGlyZWN0aW9uIHByb3BlcnR5IG1hdGNoZXMgdGhl
IGFuaW1hdGlvbi1kaXJlY3Rpb24gcHJvcGVydHkuIik7Ci0gICAgYXNzZXJ0X2VxdWFscyh0aW1p
bmcuZWFzaW5nLCAibGluZWFyIiwgIlRoZSBhbmltYXRpb24ncyBlYXNpbmcgcHJvcGVydHkgbWF0
Y2hlcyB0aGUgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiBwcm9wZXJ0eS4iKTsKIAogICAgIGNv
bnN0IGNvbXB1dGVkVGltaW5nID0gYW5pbWF0aW9uLmVmZmVjdC5nZXRDb21wdXRlZFRpbWluZygp
OwogICAgIGFzc2VydF9lcXVhbHMoY29tcHV0ZWRUaW1pbmcuYWN0aXZlRHVyYXRpb24sIDQwMDAs
ICJUaGUgYW5pbWF0aW9ucydzIGNvbXB1dGVkIHRpbWluZyBhY3RpdmVEdXJhdGlvbiBwcm9wZXJ0
eSBtYXRjaGVzIHRoZSBwcm9wZXJ0aWVzIHNldCBieSBDU1MiKTsKQEAgLTE5NiwxNCArMTk1LDE0
IEBAIHRhcmdldFRlc3QodGFyZ2V0ID0+IHsKICAgICB0YXJnZXQuc3R5bGUuYW5pbWF0aW9uVGlt
aW5nRnVuY3Rpb24gPSAiZWFzZS1vdXQiOwogICAgIHRhcmdldC5zdHlsZS5hbmltYXRpb25OYW1l
ID0gImFuaW1hdGlvbiI7CiAKLSAgICBhc3NlcnRfZXF1YWxzKHRhcmdldC5nZXRBbmltYXRpb25z
KClbMF0uZWZmZWN0LnRpbWluZy5lYXNpbmcsICJlYXNlLW91dCIsICJUaGUgYW5pbWF0aW9uJ3Mg
ZWFzaW5nIG1hdGNoZXMgdGhlIGluaXRpYWwgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiBwcm9w
ZXJ0eS4iKTsKKyAgICBhc3NlcnRfZXF1YWxzKHRhcmdldC5nZXRBbmltYXRpb25zKClbMF0uZWZm
ZWN0LnRpbWluZy5lYXNpbmcsICJsaW5lYXIiLCAiVGhlIGFuaW1hdGlvbidzIGVhc2luZyBkb2Vz
IG5vdCBtYXRjaCB0aGUgaW5pdGlhbCBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uIHByb3BlcnR5
LiIpOwogCiAgICAgdGFyZ2V0LnN0eWxlLmFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uID0gImVhc2Ut
aW4iOwotICAgIGFzc2VydF9lcXVhbHModGFyZ2V0LmdldEFuaW1hdGlvbnMoKVswXS5lZmZlY3Qu
dGltaW5nLmVhc2luZywgImVhc2UtaW4iLCAiVGhlIGFuaW1hdGlvbidzIGVhc2luZyBtYXRjaGVz
IHRoZSB1cGRhdGVkIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24gcHJvcGVydHkuIik7CisgICAg
YXNzZXJ0X2VxdWFscyh0YXJnZXQuZ2V0QW5pbWF0aW9ucygpWzBdLmVmZmVjdC50aW1pbmcuZWFz
aW5nLCAibGluZWFyIiwgIlRoZSBhbmltYXRpb24ncyBlYXNpbmcgZG9lcyBub3QgbWF0Y2ggdGhl
IHVwZGF0ZWQgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiBwcm9wZXJ0eS4iKTsKIAogICAgIHRh
cmdldC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbiIpOwot
ICAgIGFzc2VydF9lcXVhbHModGFyZ2V0LmdldEFuaW1hdGlvbnMoKVswXS5lZmZlY3QudGltaW5n
LmVhc2luZywgImVhc2UiLCAiVGhlIGFuaW1hdGlvbidzIGVhc2luZyBtYXRjaGVzIHRoZSBkZWZh
dWx0IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24gdmFsdWUgd2hlbiB0aGUgcHJvcGVydHkgaXMg
bm90IHNldC4iKTsKLX0sICJXZWIgQW5pbWF0aW9ucyBzaG91bGQgcmVmbGVjdCB0aGUgYW5pbWF0
aW9uLXRpbWluZy1mdW5jdGlvbiBwcm9wZXJ0eS4iKTsKKyAgICBhc3NlcnRfZXF1YWxzKHRhcmdl
dC5nZXRBbmltYXRpb25zKClbMF0uZWZmZWN0LnRpbWluZy5lYXNpbmcsICJsaW5lYXIiLCAiVGhl
IGFuaW1hdGlvbidzIGVhc2luZyBkb2VzIG5vdCBtYXRjaCB0aGUgZGVmYXVsdCBhbmltYXRpb24t
dGltaW5nLWZ1bmN0aW9uIHZhbHVlIHdoZW4gdGhlIHByb3BlcnR5IGlzIG5vdCBzZXQuIik7Cit9
LCAiV2ViIEFuaW1hdGlvbnMgc2hvdWxkIG5vdCByZWZsZWN0IHRoZSBhbmltYXRpb24tdGltaW5n
LWZ1bmN0aW9uIHByb3BlcnR5IG9uIHRoZSBlZmZlY3QncyB0aW1pbmcuIik7CiAKIGZ1bmN0aW9u
IHJ1bkFuaW1hdGlvbkNvbXBsZXRpb25UZXN0KGZpbmFsQXNzZXJ0aW9uQ2FsbGJhY2ssIGRlc2Ny
aXB0aW9uKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9jc3MtdHJh
bnNpdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9jc3MtdHJh
bnNpdGlvbnMtZXhwZWN0ZWQudHh0CmluZGV4IDg1ODZlN2E2YzIzZGQxOTY0MTA1ZWU2MWY4Y2Q5
MDEwNjA4NDNjNDcuLjJjYmFlNDBhZDA4ODYzNTVmMzI1Y2YxZjExNjBiNDhhMzczNjYyMzQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvY3NzLXRyYW5zaXRpb25zLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2Nzcy10cmFuc2l0aW9ucy1l
eHBlY3RlZC50eHQKQEAgLTMsNyArMyw3IEBAIFBBU1MgQSBDU1MgVHJhbnNpdGlvbiBzaG91bGQg
YmUgcmVmbGVjdGVkIGVudGlyZWx5IGFzIGEgQ1NTVHJhbnNpdGlvbiBvYmplY3Qgb24KIFBBU1Mg
V2ViIEFuaW1hdGlvbnMgc2hvdWxkIHJlZmxlY3QgdGhlIHRyYW5zaXRpb24tZGVsYXkgcHJvcGVy
dHkuIAogUEFTUyBXZWIgQW5pbWF0aW9ucyBzaG91bGQgcmVmbGVjdCB0aGUgdHJhbnNpdGlvbi1k
dXJhdGlvbiBwcm9wZXJ0eS4gCiBQQVNTIFdlYiBBbmltYXRpb25zIHNob3VsZCByZWZsZWN0IHRo
ZSB0cmFuc2l0aW9uLXByb3BlcnR5IHByb3BlcnR5LiAKLVBBU1MgV2ViIEFuaW1hdGlvbnMgc2hv
dWxkIHJlZmxlY3QgdGhlIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uIHByb3BlcnR5LiAKK1BB
U1MgV2ViIEFuaW1hdGlvbnMgc2hvdWxkIG5vdCByZWZsZWN0IHRoZSB0cmFuc2l0aW9uLXRpbWlu
Zy1mdW5jdGlvbiBwcm9wZXJ0eSBvbiB0aGUgZWZmZWN0J3MgdGltaW5nLiAKIFBBU1MgQ2FsbGlu
ZyBmaW5pc2goKSBvbiB0aGUgYW5pbWF0aW9uIG5vIGxvbmdlciBsaXN0cyB0aGUgYW5pbWF0aW9u
IGFmdGVyIGl0IGhhcyBiZWVuIHJ1bm5pbmcuIAogUEFTUyBTZWVraW5nIHRoZSBhbmltYXRpb24g
dG8gaXRzIGVuZCB0aW1lIG5vIGxvbmdlciBsaXN0cyB0aGUgYW5pbWF0aW9uIGFmdGVyIGl0IGhh
cyBiZWVuIHJ1bm5pbmcuIAogUEFTUyBTZXR0aW5nIHRoZSB0YXJnZXQncyB0cmFuc2l0aW9uLXBy
b3BlcnR5IHRvIG5vbmUgbm8gbG9uZ2VyIGxpc3RzIHRoZSBhbmltYXRpb24gYWZ0ZXIgaXQgaGFz
IGJlZW4gcnVubmluZy4gCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2Nz
cy10cmFuc2l0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9jc3MtdHJhbnNp
dGlvbnMuaHRtbAppbmRleCA3YmU4NjA3NmZjNjk2ZGM3MDYxYzgyMTM3MWFmNjAxMTJlZjczZDVm
Li4zYzQ1MmFhMjFlMGJhZTYzMzVkZWMyYWMxN2EwYjYwMGMyNjgwOTk4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2Nzcy10cmFuc2l0aW9ucy5odG1sCisrKyBiL0xheW91
dFRlc3RzL3dlYmFuaW1hdGlvbnMvY3NzLXRyYW5zaXRpb25zLmh0bWwKQEAgLTUyLDcgKzUyLDYg
QEAgdGFyZ2V0VGVzdCh0YXJnZXQgPT4gewogICAgIGNvbnN0IHRpbWluZyA9IGFuaW1hdGlvbi5l
ZmZlY3QudGltaW5nOwogICAgIGFzc2VydF9lcXVhbHModGltaW5nLmRlbGF5LCAtMTAwMCwgIlRo
ZSBhbmltYXRpb24ncyBkZWxheSBwcm9wZXJ0eSBtYXRjaGVzIHRoZSB0cmFuc2l0aW9uLWRlbGF5
IHByb3BlcnR5LiIpOwogICAgIGFzc2VydF9lcXVhbHModGltaW5nLmR1cmF0aW9uLCAyMDAwLCAi
VGhlIGFuaW1hdGlvbidzIGR1cmF0aW9uIHByb3BlcnR5IG1hdGNoZXMgdGhlIHRyYW5zaXRpb24t
ZHVyYXRpb24gcHJvcGVydHkuIik7Ci0gICAgYXNzZXJ0X2VxdWFscyh0aW1pbmcuZWFzaW5nLCAi
bGluZWFyIiwgIlRoZSBhbmltYXRpb24ncyBlYXNpbmcgcHJvcGVydHkgbWF0Y2hlcyB0aGUgdHJh
bnNpdGlvbi10aW1pbmctZnVuY3Rpb24gcHJvcGVydHkuIik7CiAKICAgICBjb25zdCBjb21wdXRl
ZFRpbWluZyA9IGFuaW1hdGlvbi5lZmZlY3QuZ2V0Q29tcHV0ZWRUaW1pbmcoKTsKICAgICBhc3Nl
cnRfZXF1YWxzKGNvbXB1dGVkVGltaW5nLmFjdGl2ZUR1cmF0aW9uLCAyMDAwLCAiVGhlIGFuaW1h
dGlvbnMncyBjb21wdXRlZCB0aW1pbmcgYWN0aXZlRHVyYXRpb24gcHJvcGVydHkgbWF0Y2hlcyB0
aGUgcHJvcGVydGllcyBzZXQgYnkgQ1NTIik7CkBAIC0xNTMsMTkgKzE1MiwxNiBAQCB0YXJnZXRU
ZXN0KHRhcmdldCA9PiB7CiAKIHRyYW5zaXRpb25Qcm9wZXJ0eVVwZGF0ZVRlc3QodGFyZ2V0ID0+
IHsKICAgICBjb25zdCBpbml0aWFsQW5pbWF0aW9uID0gdGFyZ2V0LmdldEFuaW1hdGlvbnMoKVsw
XTsKLSAgICBhc3NlcnRfZXF1YWxzKGluaXRpYWxBbmltYXRpb24uZWZmZWN0LnRpbWluZy5lYXNp
bmcsICJlYXNlIiwgIlRoZSBhbmltYXRpb24ncyBlYXNpbmcgbWF0Y2hlcyB0aGUgZGVmYXVsdCB0
cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiBwcm9wZXJ0eS4iKTsKKyAgICBhc3NlcnRfZXF1YWxz
KGluaXRpYWxBbmltYXRpb24uZWZmZWN0LnRpbWluZy5lYXNpbmcsICJsaW5lYXIiLCAiVGhlIGFu
aW1hdGlvbidzIGVhc2luZyBkb2VzIG5vdCBtYXRjaCB0aGUgZGVmYXVsdCB0cmFuc2l0aW9uLXRp
bWluZy1mdW5jdGlvbiBwcm9wZXJ0eS4iKTsKIAogICAgIHRhcmdldC5zdHlsZS50cmFuc2l0aW9u
VGltaW5nRnVuY3Rpb24gPSAiZWFzZS1pbiI7CiAgICAgY29uc3QgdXBkYXRlZEFuaW1hdGlvbiA9
IHRhcmdldC5nZXRBbmltYXRpb25zKClbMF07Ci0gICAgYXNzZXJ0X2VxdWFscyh1cGRhdGVkQW5p
bWF0aW9uLmVmZmVjdC50aW1pbmcuZWFzaW5nLCAiZWFzZS1pbiIsICJUaGUgYW5pbWF0aW9uJ3Mg
ZWFzaW5nIG1hdGNoZXMgdGhlIHVwZGF0ZWQgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24gcHJv
cGVydHkuIik7CisgICAgYXNzZXJ0X2VxdWFscyh1cGRhdGVkQW5pbWF0aW9uLmVmZmVjdC50aW1p
bmcuZWFzaW5nLCAibGluZWFyIiwgIlRoZSBhbmltYXRpb24ncyBlYXNpbmcgZG9lcyBub3QgbWF0
Y2ggdGhlIHVwZGF0ZWQgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24gcHJvcGVydHkuIik7CiAK
ICAgICB0YXJnZXQuc3R5bGUucmVtb3ZlUHJvcGVydHkoInRyYW5zaXRpb24tdGltaW5nLWZ1bmN0
aW9uIik7CiAgICAgY29uc3QgZmluYWxBbmltYXRpb24gPSB0YXJnZXQuZ2V0QW5pbWF0aW9ucygp
WzBdOwotICAgIGFzc2VydF9lcXVhbHModGFyZ2V0LmdldEFuaW1hdGlvbnMoKVswXS5lZmZlY3Qu
dGltaW5nLmVhc2luZywgImVhc2UiLCAiVGhlIGFuaW1hdGlvbidzIGVhc2luZyBtYXRjaGVzIHRo
ZSBkZWZhdWx0IHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uIHZhbHVlIHdoZW4gdGhlIHByb3Bl
cnR5IGlzIG5vdCBzZXQuIik7Ci0KLSAgICBhc3NlcnRfbm90X2VxdWFscyhpbml0aWFsQW5pbWF0
aW9uLCB1cGRhdGVkQW5pbWF0aW9uLCAiVGhlIGFuaW1hdGlvbnMgYmVmb3JlIGFuZCBhZnRlciB1
cGRhdGluZyB0aGUgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24gcHJvcGVydHkgZGlmZmVyLiIp
OwotICAgIGFzc2VydF9ub3RfZXF1YWxzKHVwZGF0ZWRBbmltYXRpb24sIGZpbmFsQW5pbWF0aW9u
LCAiVGhlIGFuaW1hdGlvbnMgYmVmb3JlIGFuZCBhZnRlciB1cGRhdGluZyB0aGUgdHJhbnNpdGlv
bi10aW1pbmctZnVuY3Rpb24gcHJvcGVydHkgZGlmZmVyLiIpOwotfSwgIldlYiBBbmltYXRpb25z
IHNob3VsZCByZWZsZWN0IHRoZSB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiBwcm9wZXJ0eS4i
KTsKKyAgICBhc3NlcnRfZXF1YWxzKHRhcmdldC5nZXRBbmltYXRpb25zKClbMF0uZWZmZWN0LnRp
bWluZy5lYXNpbmcsICJsaW5lYXIiLCAiVGhlIGFuaW1hdGlvbidzIGVhc2luZyBkb2VzIG5vdCBt
YXRjaCB0aGUgZGVmYXVsdCB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiB2YWx1ZSB3aGVuIHRo
ZSBwcm9wZXJ0eSBpcyBub3Qgc2V0LiIpOworfSwgIldlYiBBbmltYXRpb25zIHNob3VsZCBub3Qg
cmVmbGVjdCB0aGUgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24gcHJvcGVydHkgb24gdGhlIGVm
ZmVjdCdzIHRpbWluZy4iKTsKIAogZnVuY3Rpb24gcnVuQW5pbWF0aW9uQ29tcGxldGlvblRlc3Qo
ZmluYWxBc3NlcnRpb25DYWxsYmFjaywgZGVzY3JpcHRpb24pCiB7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy93ZWJydGMvdmlkZW8tdXBkYXRlLW9mdGVuLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3dlYnJ0Yy92aWRlby11cGRhdGUtb2Z0ZW4tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNk
NTQ5NTI0MzU1NzExOTcyZjBiYzUzYjg2NDQ1MjUwNDBlZDhmYTcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tdXBkYXRlLW9mdGVuLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBWaWRlbyBlbGVtZW50IGJlaW5nIHVwZGF0ZWQgZGlkIG5vdCBj
cmFzaCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLXVwZGF0ZS1vZnRl
bi5odG1sIGIvTGF5b3V0VGVzdHMvd2VicnRjL3ZpZGVvLXVwZGF0ZS1vZnRlbi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmMyN2I0M2Q1MWFlY2NkZjBkOWQ4NTFiZTk2M2ZlYzhjZGYxOTg4YWUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvdmlkZW8tdXBkYXRlLW9mdGVuLmh0bWwKQEAg
LTAsMCArMSw1NiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAg
ICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgICAgICA8dGl0bGU+VGVzdGluZyB2aWRlbyBi
ZWluZyB1cGRhdGVkIGFuZCBjaGFuZ2VkIG9mdGVuPC90aXRsZT4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9nYy5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8L2hl
YWQ+CisgICAgPGJvZHk+CisgICAgICAgIDx2aWRlbyBpZD0idmlkZW8iIGF1dG9wbGF5PSIiPjwv
dmlkZW8+CisgICAgICAgIDxzY3JpcHQgc3JjID0icm91dGluZXMuanMiPjwvc2NyaXB0PgorICAg
ICAgICA8c2NyaXB0PgordmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidmlkZW8iKTsK
K3ZhciBjb3VudGVyID0wOwordmFyIHJlc29sdmVGdW5jdGlvbjsKKworYXN5bmMgZnVuY3Rpb24g
dXBkYXRlVmlkZW9FbGVtZW50KCkKK3sKKyAgICBhd2FpdCB2aWRlby5wbGF5KCk7CisgICAgaWYg
KCsrY291bnRlciA+PSA0KSB7CisgICAgICAgIHZpZGVvLnNyY09iamVjdCA9IG51bGw7CisgICAg
ICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodmlkZW8pOworICAgICAgICByZXNvbHZlRnVu
Y3Rpb24oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGRvY3VtZW50LmJvZHkucmVt
b3ZlQ2hpbGQodmlkZW8pOworICAgIHZpZGVvLnNyY09iamVjdCA9IG51bGw7CisgICAgdmlkZW8g
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd2aWRlbycpOworICAgIHZpZGVvLnNldEF0dHJpYnV0
ZSgiaWQiLCAidmlkZW8iKTsKKyAgICB2aWRlby5hdXRvcGxheSA9IHRydWU7CisgICAgdmlkZW8u
c3JjT2JqZWN0ID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoe2F1
ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX0pOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
dmlkZW8pOworICAgIGlmICh3aW5kb3cuZ2MpCisgICAgICAgIGdjKCk7CisgICAgc2V0VGltZW91
dCh1cGRhdGVWaWRlb0VsZW1lbnQsIDApOworfQorCitwcm9taXNlX3Rlc3QoKHRlc3QpID0+IHsK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuc2V0VXNlck1l
ZGlhUGVybWlzc2lvbih0cnVlKTsKKworICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2Vz
LmdldFVzZXJNZWRpYSh7YXVkaW86IHRydWUsIHZpZGVvOiB0cnVlfSkudGhlbigoc3RyZWFtKSA9
PiB7CisgICAgICAgIHZpZGVvLnNyY09iamVjdCA9IHN0cmVhbTsKKyAgICAgICAgcmV0dXJuIHZp
ZGVvLnBsYXkoKTsKKyAgICB9KS50aGVuKGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgbmV3
IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICAgICAgICAgIHJlc29sdmVGdW5jdGlvbiA9IHJl
c29sdmU7CisgICAgICAgICAgICB1cGRhdGVWaWRlb0VsZW1lbnQoKTsKKyAgICAgICAgfSk7Cisg
ICAgfSk7Cit9LCAiVmlkZW8gZWxlbWVudCBiZWluZyB1cGRhdGVkIGRpZCBub3QgY3Jhc2giKTsK
KyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvQ2hh
bmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDQ1MzhhZTA3OTgwZGVkZmYzNDEyNjUzZGRhYmI5ZTE0
N2E3NDU4MjUuLjk5M2I2MTExNTdjYmNlN2VjNDNmZGZhNjY2YmU0N2QxY2MxMmI1MDIgMTAwNjQ0
Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxOC0w
My0yNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW0dUS11bV1BFXSBBZGQgQVBJIHRvIGNvbnZlcnQgYmV0d2VlbiBET00gYW5kIEpTQ1ZhbHVl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM0NDgK
KworICAgICAgICBSZXZpZXdlZCBieSBNaWNoYWVsIENhdGFuemFyby4KKworICAgICAgICBEZWZp
bmUgRk9SV0FSRElOR19IRUFERVJTX1dQRV9ET01fRElSLgorCisgICAgICAgICogU291cmNlL2Nt
YWtlL09wdGlvbnNXUEUuY21ha2U6CisKKzIwMTgtMDMtMjIgIEFkcmlhbiBQZXJleiBkZSBDYXN0
cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbV1BFXSBFbmFibGUgV09GRjIgc3Vw
cG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4
MTU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRnLDqWTDqXJpYyBXYW5nLgorCisgICAgICAgICog
U291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2U6IEFkZCBuZWVkZWQgbG9naWMgdG8gZGV0ZWN0
IHRoZSBCcm90bGkgYW5kIFdPRkYyIGxpYnJhcmllcy4KKwogMjAxOC0wMy0yMSAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBJ
bml0aWFsIGltcGxlbWVudGF0aW9uIG9mIEphdmFTY3JpcHRDb3JlIGdsaWIgYmluZGluZ3MKZGlm
ZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZGNh
ZTQ4OWQ5NWIxNDM3MTc5YTE5ZDhjNTZjYzM5MjU4NzAwYzNkOS4uNjI0ODJhMmQyN2M3Yzg5ZDIw
OGRhNTM5MzgyYzI4ZWExZGYwZDIyYyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxOC0wMy0yMiAgWXVzdWtl
IFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBbREZHXSBJbnRyb2R1
Y2VzIGZ1c2VkIGNvbXBhcmUgYW5kIGp1bXAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3NzEwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFt
LgorCisgICAgICAgICogc3RyZXNzL2Z1c2VkLWplcS1zbG93LmpzOiBBZGRlZC4KKyAgICAgICAg
KHNob3VsZEJlKToKKyAgICAgICAgKHRlc3RKRVEpOgorICAgICAgICAodGVzdEpORVFCKToKKyAg
ICAgICAgKHRlc3RKRVFCKToKKyAgICAgICAgKHRlc3RKTkVRRik6CisgICAgICAgICh0ZXN0SkVR
Rik6CisgICAgICAgICogc3RyZXNzL2Z1c2VkLWplcS5qczogQWRkZWQuCisgICAgICAgIChzaG91
bGRCZSk6CisgICAgICAgICh0ZXN0SkVRKToKKyAgICAgICAgKHRlc3RKTkVRQik6CisgICAgICAg
ICh0ZXN0SkVRQik6CisgICAgICAgICh0ZXN0Sk5FUUYpOgorICAgICAgICAodGVzdEpFUUYpOgor
ICAgICAgICAqIHN0cmVzcy9mdXNlZC1qc3RyaWN0ZXEtc2xvdy5qczogQWRkZWQuCisgICAgICAg
IChzaG91bGRCZSk6CisgICAgICAgICh0ZXN0SlNUUklDVEVRKToKKyAgICAgICAgKHRlc3RKTlNU
UklDVEVRQik6CisgICAgICAgICh0ZXN0SlNUUklDVEVRQik6CisgICAgICAgICh0ZXN0Sk5TVFJJ
Q1RFUUYpOgorICAgICAgICAodGVzdEpTVFJJQ1RFUUYpOgorICAgICAgICAqIHN0cmVzcy9mdXNl
ZC1qc3RyaWN0ZXEuanM6IEFkZGVkLgorICAgICAgICAoc2hvdWxkQmUpOgorICAgICAgICAodGVz
dEpTVFJJQ1RFUSk6CisgICAgICAgICh0ZXN0Sk5TVFJJQ1RFUUIpOgorICAgICAgICAodGVzdEpT
VFJJQ1RFUUIpOgorICAgICAgICAodGVzdEpOU1RSSUNURVFGKToKKyAgICAgICAgKHRlc3RKU1RS
SUNURVFGKToKKwogMjAxOC0wMy0yMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAogICAgICAgICBbSlNDXSBDbGVhciBNdXN0R2VuZXJhdGUgZm9yIFRvU3RyaW5nKE51
bWJlcikgY29udmVydGVkIGZyb20gTnVtYmVyVG9TdHJpbmdXaXRoUmFkaXgKZGlmZiAtLWdpdCBh
L0pTVGVzdHMvc3RyZXNzL2Z1c2VkLWplcS1zbG93LmpzIGIvSlNUZXN0cy9zdHJlc3MvZnVzZWQt
amVxLXNsb3cuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIzNGIzZGNiYWFiYzk1MGQyM2I3MDc2YWY2M2IxZTE4
MzAwOTFmNgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2Z1c2VkLWplcS1zbG93
LmpzCkBAIC0wLDAgKzEsOTEgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQp
IHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9y
KGBiYWQgdmFsdWU6ICR7U3RyaW5nKGFjdHVhbCl9ICR7U3RyaW5nKGV4cGVjdGVkKX1gKTsKK30K
KworZnVuY3Rpb24gdGVzdEpORVEoYSwgYikKK3sKKyAgICBpZiAoYSA9PSBiKSB7CisgICAgICAg
IHJldHVybiA0MjsKKyAgICB9CisgICAgcmV0dXJuIDMwOworfQorbm9JbmxpbmUodGVzdEpORVEp
OworCitmdW5jdGlvbiB0ZXN0SkVRKGEsIGIpCit7CisgICAgaWYgKGEgIT0gYikgeworICAgICAg
ICByZXR1cm4gNDI7CisgICAgfQorICAgIHJldHVybiAzMDsKK30KK25vSW5saW5lKHRlc3RKRVEp
OworCitmdW5jdGlvbiB0ZXN0Sk5FUUIoYSwgYikKK3sKKyAgICB2YXIgaSA9IDA7CisgICAgZG8g
eworICAgICAgICArK2k7CisgICAgfSB3aGlsZSAoIShhID09IGIpKTsKKyAgICByZXR1cm4gaTsK
K30KK25vSW5saW5lKHRlc3RKTkVRQik7CisKK2Z1bmN0aW9uIHRlc3RKRVFCKGEsIGIpCit7Cisg
ICAgdmFyIGkgPSAwOworICAgIGRvIHsKKyAgICAgICAgKytpOworICAgIH0gd2hpbGUgKCEoYSAh
PSBiKSk7CisgICAgcmV0dXJuIGk7Cit9Citub0lubGluZSh0ZXN0SkVRQik7CisKK2Z1bmN0aW9u
IHRlc3RKTkVRRihhLCBiKQoreworICAgIHZhciBpID0gMDsKKyAgICB3aGlsZSAoIShhID09IGIp
KQorICAgICAgICArK2k7CisgICAgcmV0dXJuIGk7Cit9Citub0lubGluZSh0ZXN0Sk5FUUYpOwor
CitmdW5jdGlvbiB0ZXN0SkVRRihhLCBiKQoreworICAgIHZhciBpID0gMDsKKyAgICB3aGlsZSAo
IShhICE9IGIpKQorICAgICAgICArK2k7CisgICAgcmV0dXJuIGk7Cit9Citub0lubGluZSh0ZXN0
SkVRRik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKKyAgICBzaG91bGRCZSh0
ZXN0Sk5FUSgnaGVsbG8nLCAnd29ybGQnKSwgMzApOworICAgIHNob3VsZEJlKHRlc3RKRVEoJ2hl
bGxvJywgJ3dvcmxkJyksIDQyKTsKKyAgICBzaG91bGRCZSh0ZXN0Sk5FUSgnd29ybGQnLCAnd29y
bGQnKSwgNDIpOworICAgIHNob3VsZEJlKHRlc3RKRVEoJ3dvcmxkJywgJ3dvcmxkJyksIDMwKTsK
KyAgICBzaG91bGRCZSh0ZXN0Sk5FUSgyMC41LCAnd29ybGQnKSwgMzApOworICAgIHNob3VsZEJl
KHRlc3RKRVEoMjAuNSwgJ3dvcmxkJyksIDQyKTsKKworICAgIHNob3VsZEJlKHRlc3RKTkVRKDIw
LjUsIDIxLjMpLCAzMCk7CisgICAgc2hvdWxkQmUodGVzdEpFUSgyMC41LCAyMS4zKSwgNDIpOwor
ICAgIHNob3VsZEJlKHRlc3RKTkVRKDIwLjUsIDIwLjUpLCA0Mik7CisgICAgc2hvdWxkQmUodGVz
dEpFUSgyMC41LCAyMC41KSwgMzApOworCisgICAgc2hvdWxkQmUodGVzdEpORVFCKDAsIDApLCAx
KTsKKyAgICBzaG91bGRCZSh0ZXN0SkVRQigwLCAxKSwgMSk7CisgICAgc2hvdWxkQmUodGVzdEpO
RVFCKCdoZWxsbycsICdoZWxsbycpLCAxKTsKKyAgICBzaG91bGRCZSh0ZXN0SkVRQignaGVsbG8n
LCAnd29ybGQnKSwgMSk7CisgICAgc2hvdWxkQmUodGVzdEpORVFCKDIwLjQsIDIwLjQpLCAxKTsK
KyAgICBzaG91bGRCZSh0ZXN0SkVRQignaGVsbG8nLCAyMC40KSwgMSk7CisgICAgc2hvdWxkQmUo
dGVzdEpORVFCKDAsIC0wKSwgMSk7CisKKyAgICBzaG91bGRCZSh0ZXN0Sk5FUUYoMCwgMCksIDAp
OworICAgIHNob3VsZEJlKHRlc3RKRVFGKDAsIDEpLCAwKTsKKyAgICBzaG91bGRCZSh0ZXN0Sk5F
UUYoMjAuNCwgMjAuNCksIDApOworICAgIHNob3VsZEJlKHRlc3RKRVFGKDIwLjQsIDEwLjUpLCAw
KTsKKyAgICBzaG91bGRCZSh0ZXN0Sk5FUUYoMCwgLTApLCAwKTsKKyAgICBzaG91bGRCZSh0ZXN0
SkVRRignaGVsbG8nLCAxMC41KSwgMCk7CisgICAgc2hvdWxkQmUodGVzdEpORVFGKCdoZWxsbycs
ICdoZWxsbycpLCAwKTsKKyAgICBzaG91bGRCZSh0ZXN0SkVRRignaGVsbG8nLCAnd29ybGQnKSwg
MCk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9mdXNlZC1qZXEuanMgYi9KU1Rlc3Rz
L3N0cmVzcy9mdXNlZC1qZXEuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjM0YmYyZDQxMThjZTNlYjU3MGM2OGQ5
ZjIyM2NjMGUzZDUwNzdiMAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2Z1c2Vk
LWplcS5qcwpAQCAtMCwwICsxLDY5IEBACitmdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVj
dGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQpCisgICAgICAgIHRocm93IG5ldyBF
cnJvcihgYmFkIHZhbHVlOiAke1N0cmluZyhhY3R1YWwpfSAke1N0cmluZyhleHBlY3RlZCl9YCk7
Cit9CisKK2Z1bmN0aW9uIHRlc3RKTkVRKGEsIGIpCit7CisgICAgaWYgKGEgPT0gYikgeworICAg
ICAgICByZXR1cm4gNDI7CisgICAgfQorICAgIHJldHVybiAzMDsKK30KK25vSW5saW5lKHRlc3RK
TkVRKTsKKworZnVuY3Rpb24gdGVzdEpFUShhLCBiKQoreworICAgIGlmIChhICE9IGIpIHsKKyAg
ICAgICAgcmV0dXJuIDQyOworICAgIH0KKyAgICByZXR1cm4gMzA7Cit9Citub0lubGluZSh0ZXN0
SkVRKTsKKworZnVuY3Rpb24gdGVzdEpORVFCKGEsIGIpCit7CisgICAgdmFyIGkgPSAwOworICAg
IGRvIHsKKyAgICAgICAgKytpOworICAgIH0gd2hpbGUgKCEoYSA9PSBiKSk7CisgICAgcmV0dXJu
IGk7Cit9Citub0lubGluZSh0ZXN0Sk5FUUIpOworCitmdW5jdGlvbiB0ZXN0SkVRQihhLCBiKQor
eworICAgIHZhciBpID0gMDsKKyAgICBkbyB7CisgICAgICAgICsraTsKKyAgICB9IHdoaWxlICgh
KGEgIT0gYikpOworICAgIHJldHVybiBpOworfQorbm9JbmxpbmUodGVzdEpFUUIpOworCitmdW5j
dGlvbiB0ZXN0Sk5FUUYoYSwgYikKK3sKKyAgICB2YXIgaSA9IDA7CisgICAgd2hpbGUgKCEoYSA9
PSBiKSkKKyAgICAgICAgKytpOworICAgIHJldHVybiBpOworfQorbm9JbmxpbmUodGVzdEpORVFG
KTsKKworZnVuY3Rpb24gdGVzdEpFUUYoYSwgYikKK3sKKyAgICB2YXIgaSA9IDA7CisgICAgd2hp
bGUgKCEoYSAhPSBiKSkKKyAgICAgICAgKytpOworICAgIHJldHVybiBpOworfQorbm9JbmxpbmUo
dGVzdEpFUUYpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgc2hvdWxk
QmUodGVzdEpORVEoMCwgNDIpLCAzMCk7CisgICAgc2hvdWxkQmUodGVzdEpFUSgwLCA0MiksIDQy
KTsKKyAgICBzaG91bGRCZSh0ZXN0Sk5FUUIoMCwgMCksIDEpOworICAgIHNob3VsZEJlKHRlc3RK
RVFCKDAsIDEpLCAxKTsKKyAgICBzaG91bGRCZSh0ZXN0Sk5FUUYoMCwgMCksIDApOworICAgIHNo
b3VsZEJlKHRlc3RKRVFGKDAsIDEpLCAwKTsKK30KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L2Z1c2VkLWpzdHJpY3RlcS1zbG93LmpzIGIvSlNUZXN0cy9zdHJlc3MvZnVzZWQtanN0cmljdGVx
LXNsb3cuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uM2IzMjFmZWMzNmNmNGQ1MTQ4ODQ2ZDEzOWViNjdmN2ZmYjQw
YWQ4YQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL2Z1c2VkLWpzdHJpY3RlcS1z
bG93LmpzCkBAIC0wLDAgKzEsOTEgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0
ZWQpIHsKKyAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKGBiYWQgdmFsdWU6ICR7U3RyaW5nKGFjdHVhbCl9ICR7U3RyaW5nKGV4cGVjdGVkKX1gKTsK
K30KKworZnVuY3Rpb24gdGVzdEpOU1RSSUNURVEoYSwgYikKK3sKKyAgICBpZiAoYSA9PT0gYikg
eworICAgICAgICByZXR1cm4gNDI7CisgICAgfQorICAgIHJldHVybiAzMDsKK30KK25vSW5saW5l
KHRlc3RKTlNUUklDVEVRKTsKKworZnVuY3Rpb24gdGVzdEpTVFJJQ1RFUShhLCBiKQoreworICAg
IGlmIChhICE9PSBiKSB7CisgICAgICAgIHJldHVybiA0MjsKKyAgICB9CisgICAgcmV0dXJuIDMw
OworfQorbm9JbmxpbmUodGVzdEpTVFJJQ1RFUSk7CisKK2Z1bmN0aW9uIHRlc3RKTlNUUklDVEVR
QihhLCBiKQoreworICAgIHZhciBpID0gMDsKKyAgICBkbyB7CisgICAgICAgICsraTsKKyAgICB9
IHdoaWxlICghKGEgPT09IGIpKTsKKyAgICByZXR1cm4gaTsKK30KK25vSW5saW5lKHRlc3RKTlNU
UklDVEVRQik7CisKK2Z1bmN0aW9uIHRlc3RKU1RSSUNURVFCKGEsIGIpCit7CisgICAgdmFyIGkg
PSAwOworICAgIGRvIHsKKyAgICAgICAgKytpOworICAgIH0gd2hpbGUgKCEoYSAhPT0gYikpOwor
ICAgIHJldHVybiBpOworfQorbm9JbmxpbmUodGVzdEpTVFJJQ1RFUUIpOworCitmdW5jdGlvbiB0
ZXN0Sk5TVFJJQ1RFUUYoYSwgYikKK3sKKyAgICB2YXIgaSA9IDA7CisgICAgd2hpbGUgKCEoYSA9
PT0gYikpCisgICAgICAgICsraTsKKyAgICByZXR1cm4gaTsKK30KK25vSW5saW5lKHRlc3RKTlNU
UklDVEVRRik7CisKK2Z1bmN0aW9uIHRlc3RKU1RSSUNURVFGKGEsIGIpCit7CisgICAgdmFyIGkg
PSAwOworICAgIHdoaWxlICghKGEgIT09IGIpKQorICAgICAgICArK2k7CisgICAgcmV0dXJuIGk7
Cit9Citub0lubGluZSh0ZXN0SlNUUklDVEVRRik7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMWU0
OyArK2kpIHsKKyAgICBzaG91bGRCZSh0ZXN0Sk5TVFJJQ1RFUSgnaGVsbG8nLCAnd29ybGQnKSwg
MzApOworICAgIHNob3VsZEJlKHRlc3RKU1RSSUNURVEoJ2hlbGxvJywgJ3dvcmxkJyksIDQyKTsK
KyAgICBzaG91bGRCZSh0ZXN0Sk5TVFJJQ1RFUSgnd29ybGQnLCAnd29ybGQnKSwgNDIpOworICAg
IHNob3VsZEJlKHRlc3RKU1RSSUNURVEoJ3dvcmxkJywgJ3dvcmxkJyksIDMwKTsKKyAgICBzaG91
bGRCZSh0ZXN0Sk5TVFJJQ1RFUSgyMC41LCAnd29ybGQnKSwgMzApOworICAgIHNob3VsZEJlKHRl
c3RKU1RSSUNURVEoMjAuNSwgJ3dvcmxkJyksIDQyKTsKKworICAgIHNob3VsZEJlKHRlc3RKTlNU
UklDVEVRKDIwLjUsIDIxLjMpLCAzMCk7CisgICAgc2hvdWxkQmUodGVzdEpTVFJJQ1RFUSgyMC41
LCAyMS4zKSwgNDIpOworICAgIHNob3VsZEJlKHRlc3RKTlNUUklDVEVRKDIwLjUsIDIwLjUpLCA0
Mik7CisgICAgc2hvdWxkQmUodGVzdEpTVFJJQ1RFUSgyMC41LCAyMC41KSwgMzApOworCisgICAg
c2hvdWxkQmUodGVzdEpOU1RSSUNURVFCKDAsIDApLCAxKTsKKyAgICBzaG91bGRCZSh0ZXN0SlNU
UklDVEVRQigwLCAxKSwgMSk7CisgICAgc2hvdWxkQmUodGVzdEpOU1RSSUNURVFCKCdoZWxsbycs
ICdoZWxsbycpLCAxKTsKKyAgICBzaG91bGRCZSh0ZXN0SlNUUklDVEVRQignaGVsbG8nLCAnd29y
bGQnKSwgMSk7CisgICAgc2hvdWxkQmUodGVzdEpOU1RSSUNURVFCKDIwLjQsIDIwLjQpLCAxKTsK
KyAgICBzaG91bGRCZSh0ZXN0SlNUUklDVEVRQignaGVsbG8nLCAyMC40KSwgMSk7CisgICAgc2hv
dWxkQmUodGVzdEpOU1RSSUNURVFCKDAsIC0wKSwgMSk7CisKKyAgICBzaG91bGRCZSh0ZXN0Sk5T
VFJJQ1RFUUYoMCwgMCksIDApOworICAgIHNob3VsZEJlKHRlc3RKU1RSSUNURVFGKDAsIDEpLCAw
KTsKKyAgICBzaG91bGRCZSh0ZXN0Sk5TVFJJQ1RFUUYoMjAuNCwgMjAuNCksIDApOworICAgIHNo
b3VsZEJlKHRlc3RKU1RSSUNURVFGKDIwLjQsIDEwLjUpLCAwKTsKKyAgICBzaG91bGRCZSh0ZXN0
Sk5TVFJJQ1RFUUYoMCwgLTApLCAwKTsKKyAgICBzaG91bGRCZSh0ZXN0SlNUUklDVEVRRignaGVs
bG8nLCAxMC41KSwgMCk7CisgICAgc2hvdWxkQmUodGVzdEpOU1RSSUNURVFGKCdoZWxsbycsICdo
ZWxsbycpLCAwKTsKKyAgICBzaG91bGRCZSh0ZXN0SlNUUklDVEVRRignaGVsbG8nLCAnd29ybGQn
KSwgMCk7Cit9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9mdXNlZC1qc3RyaWN0ZXEuanMg
Yi9KU1Rlc3RzL3N0cmVzcy9mdXNlZC1qc3RyaWN0ZXEuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2U4ZmU2YzI1
ZTM4Mjg4YmZhY2U3MzI5Nzc5NjIzMjgwM2EyODE0MgotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVz
dHMvc3RyZXNzL2Z1c2VkLWpzdHJpY3RlcS5qcwpAQCAtMCwwICsxLDY5IEBACitmdW5jdGlvbiBz
aG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAgaWYgKGFjdHVhbCAhPT0gZXhwZWN0ZWQp
CisgICAgICAgIHRocm93IG5ldyBFcnJvcihgYmFkIHZhbHVlOiAke1N0cmluZyhhY3R1YWwpfSAk
e1N0cmluZyhleHBlY3RlZCl9YCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RKTlNUUklDVEVRKGEsIGIp
Cit7CisgICAgaWYgKGEgPT09IGIpIHsKKyAgICAgICAgcmV0dXJuIDQyOworICAgIH0KKyAgICBy
ZXR1cm4gMzA7Cit9Citub0lubGluZSh0ZXN0Sk5TVFJJQ1RFUSk7CisKK2Z1bmN0aW9uIHRlc3RK
U1RSSUNURVEoYSwgYikKK3sKKyAgICBpZiAoYSAhPT0gYikgeworICAgICAgICByZXR1cm4gNDI7
CisgICAgfQorICAgIHJldHVybiAzMDsKK30KK25vSW5saW5lKHRlc3RKU1RSSUNURVEpOworCitm
dW5jdGlvbiB0ZXN0Sk5TVFJJQ1RFUUIoYSwgYikKK3sKKyAgICB2YXIgaSA9IDA7CisgICAgZG8g
eworICAgICAgICArK2k7CisgICAgfSB3aGlsZSAoIShhID09PSBiKSk7CisgICAgcmV0dXJuIGk7
Cit9Citub0lubGluZSh0ZXN0Sk5TVFJJQ1RFUUIpOworCitmdW5jdGlvbiB0ZXN0SlNUUklDVEVR
QihhLCBiKQoreworICAgIHZhciBpID0gMDsKKyAgICBkbyB7CisgICAgICAgICsraTsKKyAgICB9
IHdoaWxlICghKGEgIT09IGIpKTsKKyAgICByZXR1cm4gaTsKK30KK25vSW5saW5lKHRlc3RKU1RS
SUNURVFCKTsKKworZnVuY3Rpb24gdGVzdEpOU1RSSUNURVFGKGEsIGIpCit7CisgICAgdmFyIGkg
PSAwOworICAgIHdoaWxlICghKGEgPT09IGIpKQorICAgICAgICArK2k7CisgICAgcmV0dXJuIGk7
Cit9Citub0lubGluZSh0ZXN0Sk5TVFJJQ1RFUUYpOworCitmdW5jdGlvbiB0ZXN0SlNUUklDVEVR
RihhLCBiKQoreworICAgIHZhciBpID0gMDsKKyAgICB3aGlsZSAoIShhICE9PSBiKSkKKyAgICAg
ICAgKytpOworICAgIHJldHVybiBpOworfQorbm9JbmxpbmUodGVzdEpTVFJJQ1RFUUYpOworCitm
b3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKSB7CisgICAgc2hvdWxkQmUodGVzdEpOU1RSSUNU
RVEoMCwgNDIpLCAzMCk7CisgICAgc2hvdWxkQmUodGVzdEpTVFJJQ1RFUSgwLCA0MiksIDQyKTsK
KyAgICBzaG91bGRCZSh0ZXN0Sk5TVFJJQ1RFUUIoMCwgMCksIDEpOworICAgIHNob3VsZEJlKHRl
c3RKU1RSSUNURVFCKDAsIDEpLCAxKTsKKyAgICBzaG91bGRCZSh0ZXN0Sk5TVFJJQ1RFUUYoMCwg
MCksIDApOworICAgIHNob3VsZEJlKHRlc3RKU1RSSUNURVFGKDAsIDEpLCAwKTsKK30K
</data>
<flag name="commit-queue"
          id="355078"
          type_id="3"
          status="-"
          setter="ross.kirsling"
    />
          </attachment>
      

    </bug>

</bugzilla>